{"version":3,"file":"static/js/main.d7b65a40.js","mappings":";mVAAAA,EAAAC,EAAA,iBAGAA,EAAA,OAEAC,EAAAD,EAAA,6DAEqBE,EAAAA,SAAAA,GAgBnB,SAAAA,EAAYC,gGAAOC,CAAA,KAAAF,GAAA,IAAAG,qKAAAC,CAAA,MAAAJ,EAAAK,WAAAC,OAAAC,eAAAP,IAAAQ,KAAA,KACXP,IADW,OAEjBE,EAAKM,YAAcN,EAAKM,YAAYC,KAAjBP,GAFFA,CAGlB,yXAEqBQ,GACpB,OACEA,EAAUC,SAAWC,KAAKZ,MAAMW,QAChCD,EAAUG,aAAeD,KAAKZ,MAAMa,YACpCH,EAAUI,KAAKC,aAAeH,KAAKZ,MAAMc,KAAKC,YAC9CL,EAAUI,KAAKE,gBAAkBJ,KAAKZ,MAAMc,KAAKE,aAEpD,qCAEWC,GACNA,EAAEC,UAAYpB,EAAAqB,OAChBP,KAAKZ,MAAMoB,QAAQH,EAEtB,kCAEQ,IAAAI,EAQHT,KAAKZ,MANPa,EAFKQ,EAELR,WACAC,EAHKO,EAGLP,KACAQ,EAJKD,EAILC,OACAX,EALKU,EAKLV,OACAY,EANKF,EAMLE,YACAH,EAPKC,EAOLD,QAEF,OACEI,EAAAC,QAAAC,cAAA,OAAKC,UAAWd,EAAWe,QAASC,KAAK,UAAU,YAAU,UAC3DL,EAAAC,QAAAC,cAAA,OAAKN,QAASA,EAASU,QAASlB,KAAKJ,aAClCc,EACMA,EAAOR,EAAKC,YADlB,IACiCD,EAAKE,cACnCO,EAAYQ,iBAAiBjB,EAAMH,IAI9C,OAtDkBZ,CAAgBH,EAAAoC,WAAhBjC,EAYZkC,aAAe,CACpBV,YAAaW,EAAAT,mBAbI1B,6BCAd,SAASoC,EAAMC,GACpB,OAAO,IAAIC,KAAKD,EAAEE,UACnB,CASM,SAASC,EAAOC,GACrB,OAAOA,aAAiBH,OAASI,MAAMD,EAAME,UAC9C,CASM,SAASC,EAAUP,EAAGQ,GAC3B,IAAMC,EAAUV,EAAMC,GAEtB,OADAS,EAAQC,SAASV,EAAErB,WAAa6B,GACzBC,CACR,CAUM,SAASE,EAAUC,EAAIC,GAC5B,SAAKD,IAAOC,KAIVD,EAAGE,YAAcD,EAAGC,WACpBF,EAAGjC,aAAekC,EAAGlC,YACrBiC,EAAGhC,gBAAkBiC,EAAGjC,cAE3B,CAUM,SAASmC,EAAYH,EAAIC,GAC9B,SAAKD,IAAOC,KAIVD,EAAGjC,aAAekC,EAAGlC,YAAciC,EAAGhC,gBAAkBiC,EAAGjC,cAE9D,CAUM,SAASoC,EAAYJ,EAAIC,GAG9B,OAFad,EAAMa,GAAIK,SAAS,EAAG,EAAG,EAAG,GAC5BlB,EAAMc,GAAII,SAAS,EAAG,EAAG,EAAG,EAE1C,CAUM,SAASC,EAAWN,EAAIC,GAG7B,OAFad,EAAMa,GAAIK,SAAS,EAAG,EAAG,EAAG,GAC5BlB,EAAMc,GAAII,SAAS,EAAG,EAAG,EAAG,EAE1C,CAUM,SAASE,EAAUnB,GACxB,IAAMoB,EAAQ,IAAInB,KAElB,OADAmB,EAAMH,SAAS,EAAG,EAAG,EAAG,GACjBD,EAAYhB,EAAGoB,EACvB,CAUM,SAASC,EAAYrB,GAC1B,IAAMsB,EAAW,IAAIrB,MAAK,IAAIA,MAAOC,UAAY,OAEjD,OADAoB,EAASL,SAAS,EAAG,EAAG,EAAG,GACpBjB,GAAKsB,CACb,CAYM,SAASC,EAAavB,EAAGY,EAAIC,GAClC,IAAMnC,EAAOqB,EAAMC,GAEnB,OADAtB,EAAKuC,SAAS,EAAG,EAAG,EAAG,GAEpBC,EAAWxC,EAAMkC,IAAOI,EAAYtC,EAAMmC,IAC1CK,EAAWxC,EAAMmC,IAAOG,EAAYtC,EAAMkC,EAE9C,CAWM,SAASY,EAAcC,GAAuC,IAAlCC,EAAkCC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAA1B,CAAEG,KAAM,KAAMC,GAAI,MACrDD,EAAaJ,EAAbI,KAAMC,EAAOL,EAAPK,GAmBZ,OAlBKD,EAEMA,GAAQC,GAAMpB,EAAUmB,EAAMC,IAAOpB,EAAUc,EAAKK,IAC7DA,EAAO,KACPC,EAAK,MACIA,GAAMf,EAAYS,EAAKK,GAChCA,EAAOL,EACEM,GAAMpB,EAAUc,EAAKM,IAC9BD,EAAOL,EACPM,EAAKN,GAGDT,EADJe,EAAKN,EACeK,KAClBC,EAAKD,EACLA,EAAOL,GAbTK,EAAOL,EAiBF,CAAEK,KAAAA,EAAMC,GAAAA,EAChB,CAUM,SAASC,EAAaP,EAAKC,GAAO,IAC/BI,EAAaJ,EAAbI,KAAMC,EAAOL,EAAPK,GACd,OACGD,GAAQnB,EAAUc,EAAKK,IACvBC,GAAMpB,EAAUc,EAAKM,IACrBD,GAAQC,GAAMR,EAAaE,EAAKK,EAAMC,EAE1C,CAUM,SAASE,EAAcR,GAC5B,IAAM/C,EAAOqB,EAAM0B,GAGnB,OAFA/C,EAAKuC,SAAS,EAAG,EAAG,GACpBvC,EAAKwD,QAAQxD,EAAKoC,UAAY,GAAKpC,EAAKyD,UAAY,IAC7CC,KAAKC,OACR3D,EAAO,IAAIuB,KAAKvB,EAAKE,cAAe,EAAG,IAAM,MAAS,GAAK,EAEhE,0DA3MemB,WAWAI,cAWAI,cAcAI,gBAmBAI,gBAiBAC,eAcAE,cAcAC,gBAcAE,iBAgBAE,kBAkBAC,iBA+BAQ,kBAiBAC,YASD,CACbT,cAAAA,EACAjB,UAAAA,EACAR,MAAAA,EACAkC,cAAAA,EACA9B,OAAAA,EACAe,WAAAA,EACAF,YAAAA,EACAO,aAAAA,EACAS,aAAAA,EACAX,YAAAA,EACAF,UAAAA,EACAR,UAAAA,EACAI,YAAAA,8eC/NFvD,EAAAC,EAAA,aAEA6E,EAAA7E,EAAA,MACA8E,EAAA9E,EAAA,UAEAA,EAAA,0DAEA,SAAS+E,EAAYC,EAAShB,EAAKiB,GACjC,GAAKD,EAGL,OAAO,SAAA5D,GACLA,EAAE8D,UACFF,EAAQhB,EAAKiB,EAAW7D,EACzB,CACF,KAEoB+D,EAAAA,SAAAA,4tBAqCGtE,GAAW,IAAAuE,EAAA,KACzBC,EAAY7E,OAAO8E,KAAKvE,KAAKZ,OAC7BoF,EAAgB/E,OAAO8E,KAAKzE,GAClC,OAAIwE,EAAUlB,SAAWoB,EAAcpB,QAGhCkB,EAAUG,MAAK,SAAAC,GACpB,GACW,cAATA,GACS,oBAATA,GACS,eAATA,EACA,CACA,IAAMC,EAAON,EAAKjF,MAAMsF,GAClBE,EAAW9E,EAAU4E,GACrBR,EAAYzE,OAAO8E,KAAKI,GACxBE,EAAgBpF,OAAO8E,KAAKK,GAClC,OAAIV,EAAUd,SAAWyB,EAAczB,QAGhCc,EAAUO,MACf,SAAAK,GAAA,QAAQ,EAAAf,EAAAgB,YAAWH,EAAUE,IAAQH,EAAKG,KAASF,EAASE,EAA5D,GAEH,CACD,MAAa,QAATJ,IACM,EAAAZ,EAAA3B,WAAUkC,EAAKjF,MAAMsF,GAAO5E,EAAU4E,MAG7C,EAAAX,EAAAgB,YAAWjF,EAAW4E,IAASL,EAAKjF,MAAMsF,KAAU5E,EAAU4E,EAElE,GACF,kCAEQ,IAAAjE,EAqBHT,KAAKZ,MAnBPa,EAFKQ,EAELR,WACA+E,EAHKvE,EAGLuE,gBACA/B,EAJKxC,EAILwC,IACAgC,EALKxE,EAKLwE,SACAC,EANKzE,EAMLyE,MACAhB,EAPKzD,EAOLyD,UACAiB,EARK1E,EAQL0E,aACAC,EATK3E,EASL2E,aACAC,EAVK5E,EAUL4E,UACAC,EAXK7E,EAWL6E,YACA9E,EAZKC,EAYLD,QACA+E,EAbK9E,EAaL8E,UACAC,EAdK/E,EAcL+E,aACAC,EAfKhF,EAeLgF,WACAC,EAhBKjF,EAgBLiF,QACAC,EAjBKlF,EAiBLkF,UACAC,EAlBKnF,EAkBLmF,aACAC,EAnBKpF,EAmBLoF,aACAC,EApBKrF,EAoBLqF,SAGE/E,EAAYd,EAAWgD,IACvBhD,IAAe8F,EAAAlF,QAEjBE,GAAA,IAAiBtB,OAAO8E,KAAKL,GAAW8B,KAAK,KAE7CjF,GAAatB,OAAO8E,KAAKL,GACtB+B,KAAI,SAAAC,GAAA,UAAgBnF,EAAhB,KAA8BmF,CAA9B,IACJF,KAAK,IAGV,IAAIG,OAAA,EASJ,OARInB,GACFvF,OAAO8E,KAAKL,GACTkC,QAAO,SAAAF,GAAA,QAAclB,EAAgBkB,EAA9B,IACPG,SAAQ,SAAAH,GACPC,EAAAG,EAAA,GAAaH,EAAUnB,EAAgBkB,GACxC,IAGDhB,EACKtE,EAAAC,QAAAC,cAAA,OAAK,mBAAcC,UAAWA,EAAWoF,MAAOA,IAGvDvF,EAAAC,QAAAC,cAAA,OACEC,UAAWA,EACXkE,SAAUA,EACVkB,MAAOA,EACPlF,KAAK,WACL,aAAY0E,EACZ,gBAAeC,EACf,gBAAeC,EACfrF,QAASwD,EAAYxD,EAASyC,EAAKiB,GACnCqB,UAAWvB,EAAYuB,EAAWtC,EAAKiB,GACvCiB,aAAcnB,EAAYmB,EAAclC,EAAKiB,GAC7CkB,aAAcpB,EAAYoB,EAAcnC,EAAKiB,GAC7CmB,UAAWrB,EAAYqB,EAAWpC,EAAKiB,GACvCoB,YAAatB,EAAYsB,EAAarC,EAAKiB,GAC3CuB,WAAYzB,EAAYyB,EAAYxC,EAAKiB,GACzCsB,aAAcxB,EAAYwB,EAAcvC,EAAKiB,GAC7CwB,QAAS1B,EAAY0B,EAASzC,EAAKiB,IAElC4B,EAGN,OAxIkB1B,CAAYpF,EAAAoC,WAAZgD,EA2BZ/C,aAAe,CACpB4D,UAAW,GA5BMb,EA+BZ/C,aAAe,CACpB6C,UAAW,CAAC,EACZc,gBAAiB,CAAC,EAClBE,OAAO,aAlCUd,2iBCnBrBpF,EAAAC,EAAA,iBAGAA,EAAA,WACAA,EAAA,WACAA,EAAA,WACAA,EAAA,OAEYsH,EAAAA,EAAZtH,EAAA,OACYuH,EAAAA,EAAZvH,EAAA,OACYwH,EAAAA,EAAZxH,EAAA,OACYyH,EAAAA,EAAZzH,EAAA,WACAA,EAAA,OAEAC,EAAAD,EAAA,sNAEa0H,EAAAA,EAAAA,UAAAA,SAAAA,GA4IX,SAAAA,EAAYvH,gGAAOC,CAAA,KAAAsH,GAAA,IAAArH,qKAAAC,CAAA,MAAAoH,EAAAnH,WAAAC,OAAAC,eAAAiH,IAAAhH,KAAA,KACXP,IADWE,EA3InBsH,UAAY,KA2IOtH,EA6GnBuH,cAAgB,SAAAC,GACd,GAAKxH,EAAKyH,iBAAV,CAGA,IAAMC,EAAc1H,EAAKF,MAAM6H,gBAC3B3H,EAAKF,MAAM8H,eACX,EACEC,EAAYX,EAAUzE,UAAUzC,EAAK8H,MAAMC,aAAcL,GAC/D1H,EAAKgI,UAAUH,EAAWL,EALzB,CAMF,EAtHkBxH,EAwHnBiI,kBAAoB,SAAAT,GAClB,GAAKxH,EAAKkI,qBAAV,CAGA,IAAMR,EAAc1H,EAAKF,MAAM6H,gBAC3B3H,EAAKF,MAAM8H,eACX,EACEO,EAAgBjB,EAAUzE,UAC9BzC,EAAK8H,MAAMC,cACVL,GAEH1H,EAAKgI,UAAUG,EAAeX,EAR7B,CASF,EApIkBxH,EAiOnBoI,cAAgB,SAAArH,GAGd,OAFAA,EAAE8D,UAEM9D,EAAEC,SACR,KAAKpB,EAAAyI,KACoB,QAAnBrI,EAAKF,MAAMwI,IACbtI,EAAKuH,gBAELvH,EAAKiI,oBAEPhB,EAAQsB,YAAYxH,GACpB,MACF,KAAKnB,EAAA4I,MACoB,QAAnBxI,EAAKF,MAAMwI,IACbtI,EAAKiI,oBAELjI,EAAKuH,gBAEPN,EAAQsB,YAAYxH,GACpB,MACF,KAAKnB,EAAA6I,GACHzI,EAAK0I,mBACLzB,EAAQsB,YAAYxH,GACpB,MACF,KAAKnB,EAAA+I,KACH3I,EAAK4I,eACL3B,EAAQsB,YAAYxH,GAMpBf,EAAKF,MAAMmG,WACbjG,EAAKF,MAAMmG,UAAUlF,EAExB,EApQkBf,EAsQnB6I,iBAAmB,SAAClF,EAAKiB,EAAW7D,GAGlC,OAFAA,EAAE8D,UAEM9D,EAAEC,SACR,KAAKpB,EAAAyI,KACHpB,EAAQsB,YAAYxH,GACG,QAAnBf,EAAKF,MAAMwI,IACbtI,EAAK8I,aAAa/H,EAAEgI,QAEpB/I,EAAKgJ,iBAAiBjI,EAAEgI,QAE1B,MACF,KAAKnJ,EAAA4I,MACHvB,EAAQsB,YAAYxH,GACG,QAAnBf,EAAKF,MAAMwI,IACbtI,EAAKgJ,iBAAiBjI,EAAEgI,QAExB/I,EAAK8I,aAAa/H,EAAEgI,QAEtB,MACF,KAAKnJ,EAAA6I,GACHxB,EAAQsB,YAAYxH,GACpBf,EAAKiJ,kBAAkBlI,EAAEgI,QACzB,MACF,KAAKnJ,EAAA+I,KACH1B,EAAQsB,YAAYxH,GACpBf,EAAKkJ,cAAcnI,EAAEgI,QACrB,MACF,KAAKnJ,EAAAqB,MACL,KAAKrB,EAAAuJ,MACHlC,EAAQsB,YAAYxH,GAChBf,EAAKF,MAAMsJ,YACbpJ,EAAKqJ,eAAe1F,EAAKiB,EAAW7D,GAMtCf,EAAKF,MAAMwJ,cACbtJ,EAAKF,MAAMwJ,aAAa3F,EAAKiB,EAAW7D,EAE3C,EA/SkBf,EAiTnBqJ,eAAiB,SAAC1F,EAAKiB,EAAW7D,GAChCA,EAAE8D,UAGAD,EAAU5E,EAAKF,MAAMa,WAAW4I,UAChCvJ,EAAKF,MAAM0J,wBAEXxJ,EAAKyJ,sBAAsB9F,GAEzB3D,EAAKF,MAAMsJ,YACbpJ,EAAKF,MAAMsJ,WAAWzF,EAAKiB,EAAW7D,EAEzC,EA7TkBf,EA0UnB0J,uBAAyB,SAAA3I,GACvB,IAAMuC,EAAQ,IAAInB,KACZwH,EAAQ,IAAIxH,KAAKmB,EAAMxC,cAAewC,EAAMzC,YAClDb,EAAKgI,UAAU2B,GACf5I,EAAEgI,OAAOa,OACL5J,EAAKF,MAAM+J,qBACb9I,EAAE8D,UACF7E,EAAKF,MAAM+J,mBACT,IAAI1H,KAAKmB,EAAMxC,cAAewC,EAAMzC,WAAYyC,EAAMN,WACtDoE,EAAe0C,mBAAmBxG,EAAOtD,EAAKF,MAAM8E,WACpD7D,GAGL,EApVC,IAAMgH,EAAe/H,EAAK+J,yBAAyBjK,GAHlC,OAIjBE,EAAK8H,MAAQ,CAAEC,aAAAA,GAJE/H,CAKlB,sXAEkBgK,GAEjB,GACEA,EAAUL,QAAUjJ,KAAKZ,MAAM6J,QAC9BzC,EAAUjE,YAAY+G,EAAUL,MAAOjJ,KAAKZ,MAAM6J,OACnD,CACA,IAAM5B,EAAerH,KAAKqJ,yBAAyBrJ,KAAKZ,OAExDY,KAAKuJ,SAAS,CAAElC,aAAAA,GACjB,CACF,kDAYwBjI,GACvB,IAGIiI,EAHiBd,EAAQiD,aAC3BpK,EAAM6J,OAAS7J,EAAMqK,cAAgB,IAAIhI,MAI3C,GAAIrC,EAAM6H,iBAAmB7H,EAAM8H,eAAiB,GAAK9H,EAAMsK,UAAW,CACxE,IAAMA,EAAYnD,EAAQiD,aAAapK,EAAMsK,WACvCC,EAAepD,EAAQqD,cAAcF,EAAWrC,GACtDA,EAAeb,EAAUzE,UACvB2H,EACA9F,KAAKiG,MAAMF,EAAevK,EAAM8H,gBAAkB9H,EAAM8H,eAE3D,MACC9H,EAAM0K,SACN1K,EAAM8H,eAAiB,GACvBX,EAAQqD,cAAcvC,EAAcjI,EAAM0K,UAAY,IAEtDzC,EAAeb,EAAUzE,UACvBwE,EAAQiD,aAAapK,EAAM0K,SAC3B,EAAI9J,KAAKZ,MAAM8H,iBAGnB,OAAOG,CACR,iDAGC,OAAOb,EAAUzE,UACf/B,KAAKoH,MAAMC,aACXrH,KAAKZ,MAAM8H,eAEd,qDAGC,OAAOV,EAAUzE,UAAU/B,KAAKoH,MAAMC,cAAe,EACtD,8CAGC,IAAMI,EAAgBjB,EAAUzE,UAAU/B,KAAKoH,MAAMC,cAAe,GACpE,OAAOrH,KAAK+J,WAAWtC,EACxB,0CAGC,IAAMN,EAAYX,EAAUzE,UAC1B/B,KAAKoH,MAAMC,aACXrH,KAAKZ,MAAM8H,gBAEb,OAAOlH,KAAK+J,WAAW5C,EACxB,oCAEU3F,GAAG,IAAAf,EACmCT,KAAKZ,MAA5CsK,EADIjJ,EACJiJ,UAAWI,EADPrJ,EACOqJ,QACnB,SAFYrJ,EACgBuJ,gBAGzBN,GAAanD,EAAQqD,cAAcF,EAAWlI,GAAK,GACnDsI,GAAWvD,EAAQqD,cAAcE,EAAStI,GAAK,EAKnD,2CAGC,OAAOxB,KAAKZ,MAAM4K,cACnB,mCAESxI,EAAGsF,GAAU,IAAAzC,EAAA,KAChBrE,KAAK+J,WAAWvI,IAGrBxB,KAAKuJ,SAAS,CAAElC,aAAcd,EAAQiD,aAAahI,KAAM,WACnDsF,GACFA,IAEEzC,EAAKjF,MAAM6K,eACb5F,EAAKjF,MAAM6K,cAAc5F,EAAK+C,MAAMC,aAEvC,GACF,wCA4BC,GAAKrH,KAAKkK,kBAAV,CAGA,IAAM/C,EAAYX,EAAUzE,UAAU/B,KAAKoH,MAAMC,aAAc,IAC/DrH,KAAKsH,UAAUH,EAFd,CAGF,4CAGC,GAAKnH,KAAKkK,kBAAV,CAGA,IAAM/C,EAAYX,EAAUzE,UAAU/B,KAAKoH,MAAMC,cAAe,IAChErH,KAAKsH,UAAUH,EAFd,CAGF,iCAGCnH,KAAKmK,QAAQC,OACd,gDAGC7D,EAAQ8D,YAAYrK,KAAK4G,UAAW5G,KAAKZ,MAAMa,YAAY,GAAGmK,OAC/D,+CAGC,IAAME,EAAW/D,EAAQ8D,YAAYrK,KAAK4G,UAAW5G,KAAKZ,MAAMa,YAChEqK,EAASA,EAASlH,OAAS,GAAGgH,OAC/B,0CAEgBG,GAAS,IAAAC,EAAA,KAClBF,EAAW/D,EAAQ8D,YAAYrK,KAAK4G,UAAW5G,KAAKZ,MAAMa,YAC1DwK,EAAelE,EAAQmE,gBAAgBJ,GAAUK,QAAQJ,IACzC,IAAlBE,IACiB,IAAjBA,EACFzK,KAAKuH,mBAAkB,kBAAMiD,EAAKI,qBAAX,IAEvBN,EAASG,EAAe,GAAGL,QAE9B,sCAEYG,GAAS,IAAAM,EAAA,KACdP,EAAW/D,EAAQ8D,YAAYrK,KAAK4G,UAAW5G,KAAKZ,MAAMa,YAC1DwK,EAAelE,EAAQmE,gBAAgBJ,GAAUK,QAAQJ,IACzC,IAAlBE,IACAA,IAAiBH,EAASlH,OAAS,EACrCpD,KAAK6G,eAAc,kBAAMgE,EAAKC,sBAAX,IAEnBR,EAASG,EAAe,GAAGL,QAE9B,uCAEaG,GAAS,IAAAQ,EAAA,KACfT,EAAW/D,EAAQ8D,YAAYrK,KAAK4G,UAAW5G,KAAKZ,MAAMa,YAC1DwK,EAAelE,EAAQmE,gBAAgBJ,GAAUK,QAAQJ,GACnCE,EAAeH,EAASlH,OAAS,EAG3DpD,KAAK6G,eAAc,WACjB,IACMmE,EAAwB,GADPV,EAASlH,OAASqH,GAEzClE,EAAQ8D,YAAYU,EAAKnE,UAAWmE,EAAK3L,MAAMa,YAC7C+K,GACAZ,OACH,IAEDE,EAASG,EAAe,GAAGL,OAE9B,2CAEiBG,GAAS,IAAAU,EAAA,KACnBX,EAAW/D,EAAQ8D,YAAYrK,KAAK4G,UAAW5G,KAAKZ,MAAMa,YAC1DwK,EAAelE,EAAQmE,gBAAgBJ,GAAUK,QAAQJ,GAClCE,GAAgB,EAG3CzK,KAAKuH,mBAAkB,WACrB,IAAM2D,EAAwB3E,EAAQ8D,YACpCY,EAAKrE,UACLqE,EAAK7L,MAAMa,YAIbiL,EAF+BA,EAAsB9H,OAAS,EACHqH,GACVL,OAClD,IAEDE,EAASG,EAAe,GAAGL,OAE9B,+CAkGqBnH,GAAK,IACjBoE,EAAiBrH,KAAKoH,MAAtBC,aACAH,EAAmBlH,KAAKZ,MAAxB8H,eACFyC,EAAepD,EAAQqD,cAAcvC,EAAcpE,GACrD0G,EAAe,GAAKA,GAAgBzC,EACtClH,KAAK6G,gBACI8C,EAAe,GACxB3J,KAAKuH,mBAER,wCAiBc,IAAA4D,EAQTnL,KAAKZ,MANPgM,EAFWD,EAEXC,OACArL,EAHWoL,EAGXpL,OACAY,EAJWwK,EAIXxK,YACAqJ,EALWmB,EAKXnB,eACAqB,EANWF,EAMXE,cACGC,yHAPQC,CAAAJ,EAAA,oEAUb,IAAKnB,EAAgB,OAAO,KAE5B,IAAM5K,EAAQ,CACZ6J,MAAOjJ,KAAKoH,MAAMC,aAClBpH,WAAYD,KAAKZ,MAAMa,WACvBc,UAAWf,KAAKZ,MAAMa,WAAWuL,OACjCrE,UAAWnH,KAAKyL,wBAChBhE,cAAezH,KAAK0L,4BACpBC,mBAAoB3L,KAAKwH,qBACzBoE,eAAgB5L,KAAK+G,iBACrB8E,YAAa7L,KAAK6G,cAClBiF,gBAAiB9L,KAAKuH,kBACtBK,IAAK0D,EAAW1D,IAChBwD,OAAAA,EACArL,OAAAA,EACAY,YAAAA,GAEF,OAAOC,EAAAC,QAAMkL,eAAeV,GACxBzK,EAAAC,QAAMmL,aAAaX,EAAejM,GAClCwB,EAAAC,QAAMC,cAAcuK,EAAejM,EACxC,wCAKC,IAFA,IAAMsB,EAAS,GACTuL,EAAiB1F,EAAQ2F,2BAA2BlM,KAAKZ,OACtD+M,EAAI,EAAGA,EAAInM,KAAKZ,MAAM8H,eAAgBiF,GAAK,EAAG,CACrD,IAAMlD,EAAQzC,EAAUzE,UAAU/B,KAAKoH,MAAMC,aAAc8E,GAC3DzL,EAAO0L,KACLxL,EAAAC,QAAAC,cAACuL,EAAAxL,QAADyF,EAAA,CACEgG,IAAKH,GACDnM,KAAKZ,MAFX,CAGE6J,MAAOA,EACPgD,eAAgBA,EAChBrD,aAAc5I,KAAKmI,iBACnBO,WAAY1I,KAAK2I,kBAGtB,CAKD,OAHI3I,KAAKZ,MAAMmN,eACb7L,EAAO8L,UAEF9L,CACR,wCAGC,OAAIV,KAAKZ,MAAMqN,YAEX7L,EAAAC,QAAAC,cAAA,OAAKC,UAAWf,KAAKZ,MAAMa,WAAWyM,QACnC1M,KAAK2M,qBAIL,IACR,6CAGC,OACE/L,EAAAC,QAAAC,cAAA,UACE8L,KAAK,SACL3H,SAAU,EACVlE,UAAWf,KAAKZ,MAAMa,WAAWwM,YACjC,aAAYzM,KAAKZ,MAAMqN,YACvBjM,QAASR,KAAKgJ,wBAEbhJ,KAAKZ,MAAMqN,YAGjB,kCAEQ,IAAAI,EAAA,KACH9L,EAAYf,KAAKZ,MAAMa,WAAW6M,UAQtC,OANK9M,KAAKZ,MAAMsJ,aACd3H,EAAeA,EAAf,IAA4Bf,KAAKZ,MAAMa,WAAW8M,qBAEhD/M,KAAKZ,MAAM2B,YACbA,EAAeA,EAAf,IAA4Bf,KAAKZ,MAAM2B,WAGvCH,EAAAC,QAAAC,cAAA,MAAAwF,EAAA,GACMtG,KAAKZ,MAAM4N,eADjB,CAEEjM,UAAWA,EACXkM,IAAK,SAAAC,GAAA,OAAOL,EAAKjG,UAAYsG,CAAxB,EACLC,KAAMnN,KAAKZ,MAAMW,SAEjBa,EAAAC,QAAAC,cAAA,OACEC,UAAWf,KAAKZ,MAAMa,WAAWkK,QACjC8C,IAAK,SAAAC,GAAA,OAAOL,EAAK1C,QAAU+C,CAAtB,EACLjI,SACEjF,KAAKZ,MAAM4K,gBACoB,qBAAxBhK,KAAKZ,MAAM6F,SACdjF,KAAKZ,MAAM6F,UACV,EAEPM,UAAWvF,KAAK0H,cAChBhC,QAAS1F,KAAKZ,MAAMsG,QACpB0H,OAAQpN,KAAKZ,MAAMgO,QAElBpN,KAAKqN,eACNzM,EAAAC,QAAAC,cAAA,OAAKC,UAAWf,KAAKZ,MAAMa,WAAWS,QACnCV,KAAKsN,gBAEPtN,KAAKuN,gBAIb,OA1lBU5G,CAAkB3H,EAAAoC,WAAlBuF,EAmHJtF,aAAe,CACpBpB,WAAA8F,EAAAlF,QACAoE,SAAU,EACViC,eAAgB,EAChBkE,OAAQ,CACN3D,cAAe,iBACfN,UAAW,cAEbpH,OAAQ,KACRY,YAAa8F,EACb+G,iBAAiB,EACjB1E,wBAAwB,EACxB2E,YAAY,EACZzD,gBAAgB,EAChBuC,eAAe,EACftF,iBAAiB,EACjByG,iBAAiB,EACjBC,cAAc,EACdC,UAAW,SAAA3K,GAAA,OAAOA,EAAIX,SAAX,EACXuL,WAAY,SAAAC,GAAA,OAAcA,CAAd,EACZC,eAAgBnN,EAAAC,QAAAC,cAACkN,EAAAnN,QAAD,MAChBwK,cAAezK,EAAAC,QAAAC,cAACmN,EAAApN,QAAD,CAAQZ,WAAY8F,EAAAlF,UACnCqN,eAAgBtN,EAAAC,QAAAC,cAACqN,EAAAtN,QAAD,CAASZ,WAAY8F,EAAAlF,WAzI5B8F,EA+JJyH,QAAU,QA8bnBzH,EAAUH,UAAYA,EACtBG,EAAUF,YAAcA,EACxBE,EAAUD,eAAiBA,cAElBF,gBAAWC,mBAAaC,YAElBC,sQC/mBR,SAAqBtG,GAC1BA,EAAEgO,iBACFhO,EAAEiO,iBACH,uBAEeC,mBAIAC,0BAST,SAA+BpP,GACpC,IAAM8E,EAAAoC,EAAA,GAAiBlH,EAAM8E,WACzB9E,EAAMqP,eACRvK,EAAU9E,EAAMa,WAAWyO,UAAYtP,EAAMqP,cAE3CrP,EAAMuP,eACRzK,EAAU9E,EAAMa,WAAW2O,UAAYxP,EAAMuP,cAE/C,OAAOzK,CACR,+BAEM,SAAoC9E,GAAO,IACxC6M,EAAoD7M,EAApD6M,eADwC4C,EACYzP,EAApCW,OAAAA,OADwBsD,IAAAwL,EACf,KADeA,EAAAC,EACY1P,EAArBuB,YAAAA,OADS0C,IAAAyL,EACK,CAAC,EADNA,EAEhD,IAAKjN,MAAMoK,GACT,OAAOA,EAET,GAAItL,EAAYoO,kBACd,OAAOpO,EAAYoO,kBAAkBhP,GAEvC,OAAO,CACR,mBAEM,SAAwB6B,GAC7B,SAAUA,GAASA,EAAM0B,MAAQ1B,EAAM2B,GACxC,kBAEM,SAAuBnB,EAAIC,GAChC,OACEA,EAAGlC,WAAaiC,EAAGjC,WAAa,IAAMkC,EAAGjC,cAAgBgC,EAAGhC,cAE/D,iBAEM,SACLoB,GAUA,IAPA,IAFAyK,EAEA9I,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,IAFiB,EAAA6L,EAAAD,qBACjBtB,EACAtK,UAAA,GACM8L,EAAcT,EAAehN,GAC7B0N,EAAW,GAEbC,EAAO,GACLC,EAAY,GAETjD,EAAI,EAAGA,GAAK8C,EAAa9C,GAAK,EACrC+C,EAAS9C,KAAK,IAAI3K,KAAKD,EAAEpB,cAAeoB,EAAErB,WAAYgM,EAAG,KAG3D+C,EAAS7I,SAAQ,SAAApD,GACXkM,EAAK/L,OAAS,GAAKH,EAAIU,WAAasI,IACtCmD,EAAUhD,KAAK+C,GACfA,EAAO,IAETA,EAAK/C,KAAKnJ,GACNiM,EAASvE,QAAQ1H,KAASiM,EAAS9L,OAAS,GAC9CgM,EAAUhD,KAAK+C,EAElB,IAID,IADA,IAAME,EAAYD,EAAU,GACnBE,EAAI,EAAID,EAAUjM,OAAQkM,EAAI,EAAGA,GAAK,EAAG,CAChD,IAAMC,GAAc,EAAAzL,EAAAvC,OAAM8N,EAAU,IACpCE,EAAY7L,QAAQ2L,EAAU,GAAG/M,UAAY,GAC7C+M,EAAUG,QAAQD,EACnB,CAID,IADA,IAAME,EAAWL,EAAUA,EAAUhM,OAAS,GACrCsM,EAAID,EAASrM,OAAQsM,EAAI,EAAGA,GAAK,EAAG,CAC3C,IAAMC,GAAc,EAAA7L,EAAAvC,OAAMkO,EAASA,EAASrM,OAAS,IACrDuM,EAAYjM,QAAQ+L,EAASA,EAASrM,OAAS,GAAGd,UAAY,GAC9DmN,EAASrD,KAAKuD,EACf,CAGD,GAAIlC,GAAc2B,EAAUhM,OAAS,EAGnC,IAFA,IAAIwM,OAAA,EAEKC,EAAIT,EAAUhM,OAAQyM,EAAI,EAAGA,GAAK,EAAG,CAK5C,IAHA,IAAMC,GADNF,EAAgBR,EAAUA,EAAUhM,OAAS,IACfwM,EAAcxM,OAAS,GAC/C2M,EAAY,GAETC,EAAI,EAAGA,EAAI,EAAGA,GAAK,EAAG,CAC7B,IAAMC,GAAc,EAAAnM,EAAAvC,OAAMuO,GAC1BG,EAAYvM,QAAQoM,EAAQxN,UAAY0N,EAAI,GAC5CD,EAAU3D,KAAK6D,EAChB,CAEDb,EAAUhD,KAAK2D,EAChB,CAGH,OAAOX,CACR,iBAEM,SAAsB5N,GAC3B,IAAMS,GAAU,EAAA6B,EAAAvC,OAAMC,GAGtB,OAFAS,EAAQyB,QAAQ,GAChBzB,EAAQQ,SAAS,GAAI,EAAG,EAAG,GACpBR,CACR,gBAEM,SAAqBiO,EAAMjQ,GAChC,IAAIkQ,OAAA,EAGFA,EAFElQ,IAAe8F,EAAAlF,QAEKZ,EAAWgD,IAAjC,KAAyChD,EAAW4I,QAEpD,GAAsB5I,EAAW4I,QAEnC,IAAMuH,EAAWnQ,EAAWgD,IAAIoN,QAAQ,KAAM,KACxCC,EAAkBH,EAAiBE,QAAQ,KAAM,KACjDE,EAAA,IAAeH,EAAf,SAAgCE,EAAhC,IACN,OAAOJ,EAAKM,iBAAiBD,EAC9B,oBAEM,SAAyBE,GAC9B,OAAOC,MAAMC,UAAUC,MAAMjR,KAAK8Q,EAAU,EAC7C,eAEM,SAAoBI,EAAKlM,GAC9B,OAAOlF,OAAOkR,UAAUG,eAAenR,KAAKkR,EAAKlM,EAClD,EAjJD,MAAAb,EAAA7E,EAAA,MACA+P,EAAA/P,EAAA,MACA8R,EAAA9R,EAAA,0CAOO,SAASsP,EAAmB/M,GACjC,OAAO,IAAIC,KAAKD,EAAEpB,cAAeoB,EAAErB,WAAY,EAAG,GACnD,CAEM,SAASqO,EAAehN,GAC7B,IAAMwP,EAAazC,EAAmB/M,GAKtC,OAHAwP,EAAW9O,SAAS8O,EAAW7Q,WAAa,GAC5C6Q,EAAWtN,QAAQsN,EAAW1O,UAAY,GAEnC0O,EAAW1O,SACnB,0FCOe2O,qBAIA9P,uBAIA+P,sBAIAC,sBAIApC,cAIAqC,EA/ChB,IAAMC,EAAgB,CACpB,SACA,SACA,UACA,YACA,WACA,SACA,YAGIC,EAAiB,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAEtDC,EAAS,CACb,UACA,WACA,QACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,YAGK,SAASN,EAAUhO,GACxB,OAAOA,EAAIuO,cACZ,CAEM,SAASrQ,EAAiBK,GAC/B,OAAU+P,EAAO/P,EAAErB,YAAnB,IAAkCqB,EAAEpB,aACrC,CAEM,SAAS8Q,EAAmB/E,GACjC,OAAOmF,EAAenF,EACvB,CAEM,SAASgF,EAAkBhF,GAChC,OAAOkF,EAAclF,EACtB,CAEM,SAAS4C,IACd,OAAO,CACR,CAEM,SAASqC,IACd,OAAOG,CACR,WAEc,CACbN,UAAAA,EACA9P,iBAAAA,EACA+P,mBAAAA,EACAC,kBAAAA,EACApC,kBAAAA,EACAqC,UAAAA,sGC9CcK,uBAkDArI,EA7DhB,IAAAtF,EAAA7E,EAAA,MACA8E,EAAA9E,EAAA,MAUO,SAASwS,EAAmBxO,EAAKiD,GACtC,QAAKA,IAGOwK,MAAMgB,QAAQxL,GAAYA,EAAW,CAACA,IACvCzB,MAAK,SAAAK,GACd,QAAKA,IAGDA,aAAerD,MACV,EAAAqC,EAAA3B,WAAUc,EAAK6B,IAEpB,EAAAf,EAAA4N,gBAAe7M,IACV,EAAAhB,EAAAN,cAAaP,EAAK6B,GAEvBA,EAAI8M,OAAS9M,EAAI+M,SAAU,EAAA/N,EAAApB,YAAWoC,EAAI+M,OAAQ/M,EAAI8M,QACjD,EAAA9N,EAAApB,YAAWO,EAAK6B,EAAI8M,SAAU,EAAA9N,EAAAtB,aAAYS,EAAK6B,EAAI+M,QAG1D/M,EAAI8M,OACJ9M,EAAI+M,UACH,EAAA/N,EAAApB,YAAWoC,EAAI8M,MAAO9M,EAAI+M,UAAW,EAAA/N,EAAA3B,WAAU2C,EAAI8M,MAAO9M,EAAI+M,UAExD,EAAA/N,EAAApB,YAAWO,EAAK6B,EAAI8M,SAAU,EAAA9N,EAAAtB,aAAYS,EAAK6B,EAAI+M,QAExD/M,EAAI8M,OACC,EAAA9N,EAAApB,YAAWO,EAAK6B,EAAI8M,OAEzB9M,EAAI+M,QACC,EAAA/N,EAAAtB,aAAYS,EAAK6B,EAAI+M,QAE1B/M,EAAIgN,WACChN,EAAIgN,WAAWrN,MAAK,SAAAsN,GAAA,OAAa9O,EAAIU,WAAaoO,CAA9B,IAEV,oBAARjN,GACFA,EAAI7B,GAGd,GACF,CAWM,SAASmG,EAAmBnG,GAAwB,IAAnB+O,EAAmB7O,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAJ,CAAC,EACtD,OAAO1D,OAAO8E,KAAKyN,GAAcC,QAAO,SAAC/N,EAAWgO,GAClD,IAAMtQ,EAAQoQ,EAAaE,GAI3B,OAHIT,EAAmBxO,EAAKrB,IAC1BsC,EAAUkI,KAAK8F,GAEVhO,CACR,GAAE,GACJ,WAEc,CAAEuN,mBAAAA,EAAoBrI,mBAAAA,0UCvErCpK,EAAAC,EAAA,iBAGAA,EAAA,WACAA,EAAA,OACAC,EAAAD,EAAA,MAEYyH,EAAAA,EAAZzH,EAAA,OACYsH,EAAAA,EAAZtH,EAAA,OACYuH,EAAAA,EAAZvH,EAAA,4XAEqBkT,EAAAA,SAAAA,kSA0DnBvE,UAAY,SAAA3K,GACV,IAAMmP,EAAc9S,EAAKF,MAAM6J,MAAM9I,WAC/BkS,EAAgB9L,EAAQ+L,sBAAsBhT,EAAKF,OACnDmT,EAAe7L,EAAe0C,mBAAmBnG,EAAKoP,GAE1D7L,EAAUrE,UAAUc,EAAK,IAAIxB,QAC5BhC,OAAOkR,UAAUG,eAAenR,KAC/B0S,EACA/S,EAAKF,MAAMa,WAAW2C,QAGxB2P,EAAanG,KAAK9M,EAAKF,MAAMa,WAAW2C,OAEtCK,EAAI9C,aAAeiS,GACrBG,EAAanG,KAAK9M,EAAKF,MAAMa,WAAW4I,SAG1C,IAAM2J,EAAYvP,EAAI9C,aAAeiS,EACjCnN,GAAY,EAEZ3F,EAAKF,MAAMsJ,aAAe8J,GAA+B,IAAlBvP,EAAIX,YAC7C2C,EAAW3F,EAAKF,MAAM6F,UAExB,IAAMqH,EAAA,GAASrJ,EAAI7C,cAAgB6C,EAAI9C,WAAa8C,EAAIX,UAClD4B,EAAY,CAAC,EAKnB,OAJAqO,EAAalM,SAAQ,SAAAH,GACnBhC,EAAUgC,IAAY,CACvB,IAGCtF,EAAAC,QAAAC,cAAC2R,EAAA5R,QAAD,CACEyL,KAAQkG,EAAY,WAAa,IAAKlG,EACtCrM,WAAYX,EAAKF,MAAMa,WACvBgD,IAAKA,EACLiB,UAAWA,EACXc,gBAAiB1F,EAAKF,MAAM4F,gBAC5BE,MACEsN,IAAclT,EAAKF,MAAMoO,kBAAoBlO,EAAKF,MAAMqO,WAE1DxI,SAAUA,EACVU,UAAWrG,EAAKF,MAAMuB,YAAYsQ,UAAUhO,EAAK3D,EAAKF,MAAMW,QAC5D6F,aACE4M,GAAaD,EAAa5H,QAAQrL,EAAKF,MAAMa,WAAW2O,WAAa,EAEvE/I,aAAc0M,EAAa5H,QAAQrL,EAAKF,MAAMa,WAAWyO,WAAa,EACtElO,QAASlB,EAAKF,MAAMsJ,WACpBhD,QAASpG,EAAKF,MAAMsT,WACpBnN,UAAWjG,EAAKF,MAAMwJ,aACtBzD,aAAc7F,EAAKF,MAAMuT,gBACzBvN,aAAc9F,EAAKF,MAAMwT,gBACzBtN,YAAahG,EAAKF,MAAMyT,eACxBxN,UAAW/F,EAAKF,MAAM0T,aACtBrN,WAAYnG,EAAKF,MAAM2T,cACvBvN,aAAclG,EAAKF,MAAM4T,iBAExB1T,EAAKF,MAAMwO,UAAU3K,EAAKiB,GAGhC,oXAEQ,IAAAG,EAAA,KAAA5D,EAsBHT,KAAKZ,MApBPa,EAFKQ,EAELR,WAEAgJ,EAJKxI,EAILwI,MACAvI,EALKD,EAKLC,OAEA+M,EAPKhN,EAOLgN,WACAS,EARKzN,EAQLyN,eACAH,EATKtN,EASLsN,eAEAhO,EAXKU,EAWLV,OACAY,EAZKF,EAYLE,YACAsS,EAbKxS,EAaLwS,aACAC,EAdKzS,EAcLyS,cACAjH,EAfKxL,EAeLwL,eAEAkH,EAjBK1S,EAiBL0S,eAEAzF,EAnBKjN,EAmBLiN,gBACAC,EApBKlN,EAoBLkN,aACAyF,EArBK3S,EAqBL2S,YAGIC,EAAe,CACnBnT,KAAM+I,EACNhJ,WAAAA,EACAS,OAAAA,EACAC,YAAAA,EACAZ,OAAAA,EACAS,QAAS2S,EAAiB,SAAA9S,GAAA,OAAK8S,EAAelK,EAAO5I,EAA3B,OAAgCgD,GAEtDrC,EAAUJ,EAAAC,QAAMkL,eAAemC,GACjCtN,EAAAC,QAAMmL,aAAakC,EAAgBmF,GACnCzS,EAAAC,QAAMC,cAAcoN,EAAgBmF,GAElCC,EAAQ/M,EAAQgN,aAAatK,EAAOgD,EAAgBwB,GAC1D,OACE7M,EAAAC,QAAAC,cAAA,OAAKC,UAAWd,EAAWgJ,MAAOhI,KAAK,QACpCD,EACA2M,GACC/M,EAAAC,QAAAC,cAAC0S,EAAA3S,QAAD,CACEZ,WAAYA,EACZiT,cAAeA,EACfD,aAAcA,EACdhH,eAAgBA,EAChByB,gBAAiBA,EACjB3N,OAAQA,EACRY,YAAaA,EACboN,eAAgBA,IAGpBnN,EAAAC,QAAAC,cAAA,OAAKC,UAAWd,EAAWwT,KAAMxS,KAAK,YACnCqS,EAAMrN,KAAI,SAAAkJ,GACT,IAAIrB,OAAA,EAIJ,OAHIJ,IACFI,EAAatH,EAAU/C,cAAc0L,EAAK,KAG1CvO,EAAAC,QAAAC,cAAA,OACEwL,IAAK6C,EAAK,GAAGzN,UACbX,UAAWd,EAAWkP,KACtBlO,KAAK,OAEJyM,GACC9M,EAAAC,QAAAC,cAAA,OACEC,UAAWd,EAAW6N,WACtB7I,SAAUmO,EAAc,GAAK,EAC7BnS,KAAK,WACLT,QACE4S,EACI,SAAA/S,GAAA,OAAK+S,EAAYtF,EAAYqB,EAAM9O,EAAnC,OACAgD,EAENnC,QACEkS,EACI,SAAA/S,GAAA,OACEA,EAAEC,UAAYpB,EAAAqB,OACd6S,EAAYtF,EAAYqB,EAAM9O,EAFhC,OAGAgD,GAGLgB,EAAKjF,MAAMyO,WAAWC,EAAYqB,EAAMlG,IAG5CkG,EAAKlJ,IAAI5B,EAAKuJ,WAGpB,KAIR,OAlNkBuE,CAAcnT,EAAAoC,qBAAd+Q,yUCXrBnT,EAAAC,EAAA,iBAGAA,EAAA,OACAC,EAAAD,EAAA,kOAEqByU,EAAAA,SAAAA,kSAwCnBC,gBAAkB,WACZrU,EAAKF,MAAMyM,aACbvM,EAAKF,MAAMyM,aAEd,IAED+H,oBAAsB,WAChBtU,EAAKF,MAAM0M,iBACbxM,EAAKF,MAAM0M,iBAEd,IAED+H,kBAAoB,SAAAxT,GACdA,EAAEC,UAAYpB,EAAAqB,OAASF,EAAEC,UAAYpB,EAAAuJ,QAGzCpI,EAAEgO,iBACF/O,EAAKqU,kBACN,IAEDG,sBAAwB,SAAAzT,GAClBA,EAAEC,UAAYpB,EAAAqB,OAASF,EAAEC,UAAYpB,EAAAuJ,QAGzCpI,EAAEgO,iBACF/O,EAAKsU,sBACN,iYAnCqB9T,GACpB,OACEA,EAAUsL,SAAWpL,KAAKZ,MAAMgM,QAChCtL,EAAU8H,MAAQ5H,KAAKZ,MAAMwI,KAC7B5H,KAAKZ,MAAMuM,qBAAuB7L,EAAU6L,oBAC5C3L,KAAKZ,MAAMwM,iBAAmB9L,EAAU8L,cAE3C,kCA8BQ,IAAAnL,EAQHT,KAAKZ,MANPa,EAFKQ,EAELR,WACAc,EAHKN,EAGLM,UACA4K,EAJKlL,EAILkL,mBACAC,EALKnL,EAKLmL,eACAR,EANK3K,EAML2K,OACAxD,EAPKnH,EAOLmH,IAGEmM,OAAA,EACAC,OAAA,EACAC,OAAA,EACAC,OAAA,EACAC,OAAA,EACAC,OAAA,EAEQ,QAARxM,GACFmM,EAAuB/T,KAAK2T,gBAC5BK,EAAmBhU,KAAK4T,oBACxBK,EAAyBjU,KAAK6T,kBAC9BK,EAAqBlU,KAAK8T,sBAC1BM,EAAiBzI,EACjBwI,EAAqBvI,IAErBmI,EAAuB/T,KAAK4T,oBAC5BI,EAAmBhU,KAAK2T,gBACxBM,EAAyBjU,KAAK8T,sBAC9BI,EAAqBlU,KAAK6T,kBAC1BO,EAAiBxI,EACjBuI,EAAqBxI,GAGvB,IAAM0I,EAAoBF,EACtBlU,EAAWqU,cACRrU,EAAWqU,cAFQ,IAESrU,EAAWsU,6BAExCC,EAAgBJ,EAClBnU,EAAWwU,cACRxU,EAAWwU,cAFI,IAEaxU,EAAWsU,6BAExCG,EACJ9T,EAAAC,QAAAC,cAAA,QACEmE,SAAS,IACThE,KAAK,SACL,aAAYmK,EAAO3D,cACnB6E,IAAI,WACJvL,UAAWsT,EACX9O,UAAW4O,EAAqBF,OAAyB5Q,EACzD7C,QAAS2T,EAAqBJ,OAAuB1Q,IAInDsR,EACJ/T,EAAAC,QAAAC,cAAA,QACEmE,SAAS,IACThE,KAAK,SACL,aAAYmK,EAAOjE,UACnBmF,IAAI,QACJvL,UAAWyT,EACXjP,UAAW6O,EAAiBF,OAAqB7Q,EACjD7C,QAAS4T,EAAiBJ,OAAmB3Q,IAIjD,OACEzC,EAAAC,QAAAC,cAAA,OAAKC,UAAWA,GAAad,EAAWuL,QAC7B,QAAR5D,EACG,CAAC+M,EAAYD,GACb,CAACA,EAAgBC,GAG1B,OA5IkBjB,CAAe1U,EAAAoC,WAAfsS,EAoBZrS,aAAe,CACpBpB,WAAY8F,EAAAlF,QACZ+G,IAAK,MACLwD,OAAQ,CACN3D,cAAe,iBACfN,UAAW,cAEbwE,oBAAoB,EACpBC,gBAAgB,aA5BC8H,2UCNrB1U,EAAAC,EAAA,8CAGqB2V,EAAAA,SAAAA,4tBAWG9U,GACpB,OAAOE,KAAKZ,QAAUU,CACvB,kCAEQ,IAAAW,EAQHT,KAAKZ,MANPyV,EAFKpU,EAELoU,QACA9T,EAHKN,EAGLM,UACAkS,EAJKxS,EAILwS,aACAC,EALKzS,EAKLyS,cACAvS,EANKF,EAMLE,YACAZ,EAPKU,EAOLV,OAEE+U,OAAA,EAEFA,EADE7B,EACMA,EAAa4B,GAEblU,EAAYwQ,kBAAkB0D,EAAS9U,GAEjD,IAAIgV,OAAA,EAOJ,OALEA,EADE7B,EACQA,EAAc2B,GAEdlU,EAAYuQ,mBAAmB2D,EAAS9U,GAIlDa,EAAAC,QAAAC,cAAA,OAAKC,UAAWA,EAAWE,KAAK,gBAC9BL,EAAAC,QAAAC,cAAA,QAAMgU,MAAOA,GAAQC,GAG1B,OA1CkBH,CAAgB5V,EAAAoC,qBAAhBwT,2UCHrB5V,EAAAC,EAAA,8CAGqB+V,EAAAA,SAAAA,4tBAqBGlV,GACpB,OAAOE,KAAKZ,QAAUU,CACvB,kCAcC,IAZO,IAAAW,EAUHT,KAAKZ,MARPa,EAFKQ,EAELR,WACAgM,EAHKxL,EAGLwL,eACAyB,EAJKjN,EAILiN,gBACAuF,EALKxS,EAKLwS,aACAC,EANKzS,EAMLyS,cACAnT,EAPKU,EAOLV,OACAY,EARKF,EAQLE,YACAoN,EATKtN,EASLsN,eAEIkH,EAAO,GACJ9I,EAAI,EAAGA,EAAI,EAAGA,GAAK,EAAG,CAC7B,IAAM0I,GAAW1I,EAAIF,GAAkB,EACjCiJ,EAAe,CACnB5I,IAAKH,EACLpL,UAAWd,EAAW4U,QACtBA,QAAAA,EACA5B,aAAAA,EACAC,cAAAA,EACAvS,YAAAA,EACAZ,OAAAA,GAEIoV,EAAUvU,EAAAC,QAAMkL,eAAegC,GACjCnN,EAAAC,QAAMmL,aAAa+B,EAAgBmH,GACnCtU,EAAAC,QAAMC,cAAciN,EAAgBmH,GACxCD,EAAK7I,KAAK+I,EACX,CAED,OACEvU,EAAAC,QAAAC,cAAA,OAAKC,UAAWd,EAAWmV,SAAUnU,KAAK,YACxCL,EAAAC,QAAAC,cAAA,OAAKC,UAAWd,EAAWoV,YAAapU,KAAK,OAC1CyM,GAAmB9M,EAAAC,QAAAC,cAAA,OAAKC,UAAWd,EAAW4U,UAC9CI,GAIR,OA9DkBD,CAAiBhW,EAAAoC,qBAAjB4T,wFCDN,CACblI,UAAW,YACX3C,QAAS,oBACT4C,oBAAqB,iCACrBrM,OAAQ,mBACRuI,MAAO,kBAEPuC,OAAQ,mBACR8I,cAAe,gDACfG,cAAe,gDACfF,6BAA8B,2CAE9BvT,QAAS,oBACToU,SAAU,qBACVC,YAAa,wBACbR,QAAS,oBACTpB,KAAM,iBACNtE,KAAM,iBACNrB,WAAY,uBACZ7K,IAAK,gBACLyJ,OAAQ,mBACRD,YAAa,wBAGb7J,MAAO,QACP8L,SAAU,WACVE,SAAU,WACV/F,QAAS,6HC7BFhI,qLCAIyU,EAAAA,KAAO,GACPA,EAAAA,GAAK,GACLA,EAAAA,MAAQ,GACRA,EAAAA,KAAO,GACPA,EAAAA,MAAQ,GACRA,EAAAA,MAAQ,GACRA,EAAAA,IAAM,GACNA,EAAAA,IAAM,YCLnB,IAAIC,EAAoC,qBAAZC,QACxBC,EAAwB,oBAARC,IAChBC,EAAwB,oBAARC,IAChBC,EAAwC,oBAAhBC,eAAgCA,YAAYC,OAIxE,SAASC,EAAMC,EAAGC,GAEhB,GAAID,IAAMC,EAAG,OAAO,EAEpB,GAAID,GAAKC,GAAiB,iBAALD,GAA6B,iBAALC,EAAe,CAC1D,GAAID,EAAEE,cAAgBD,EAAEC,YAAa,OAAO,EAE5C,IAAI/S,EAAQ+I,EAAG5H,EA6BX6R,EA5BJ,GAAI1F,MAAMgB,QAAQuE,GAAI,CAEpB,IADA7S,EAAS6S,EAAE7S,SACG8S,EAAE9S,OAAQ,OAAO,EAC/B,IAAK+I,EAAI/I,EAAgB,IAAR+I,KACf,IAAK6J,EAAMC,EAAE9J,GAAI+J,EAAE/J,IAAK,OAAO,EACjC,OAAO,CACT,CAuBA,GAAIsJ,GAAWQ,aAAaP,KAASQ,aAAaR,IAAM,CACtD,GAAIO,EAAEI,OAASH,EAAEG,KAAM,OAAO,EAE9B,IADAD,EAAKH,EAAEK,YACEnK,EAAIiK,EAAGG,QAAQC,UACjBN,EAAEO,IAAItK,EAAEvK,MAAM,IAAK,OAAO,EAEjC,IADAwU,EAAKH,EAAEK,YACEnK,EAAIiK,EAAGG,QAAQC,UACjBR,EAAM7J,EAAEvK,MAAM,GAAIsU,EAAEQ,IAAIvK,EAAEvK,MAAM,KAAM,OAAO,EACpD,OAAO,CACT,CAEA,GAAI+T,GAAWM,aAAaL,KAASM,aAAaN,IAAM,CACtD,GAAIK,EAAEI,OAASH,EAAEG,KAAM,OAAO,EAE9B,IADAD,EAAKH,EAAEK,YACEnK,EAAIiK,EAAGG,QAAQC,UACjBN,EAAEO,IAAItK,EAAEvK,MAAM,IAAK,OAAO,EACjC,OAAO,CACT,CAGA,GAAIiU,GAAkBC,YAAYC,OAAOE,IAAMH,YAAYC,OAAOG,GAAI,CAEpE,IADA9S,EAAS6S,EAAE7S,SACG8S,EAAE9S,OAAQ,OAAO,EAC/B,IAAK+I,EAAI/I,EAAgB,IAAR+I,KACf,GAAI8J,EAAE9J,KAAO+J,EAAE/J,GAAI,OAAO,EAC5B,OAAO,CACT,CAEA,GAAI8J,EAAEE,cAAgBQ,OAAQ,OAAOV,EAAEW,SAAWV,EAAEU,QAAUX,EAAEY,QAAUX,EAAEW,MAK5E,GAAIZ,EAAEnU,UAAYrC,OAAOkR,UAAU7O,SAAgC,oBAAdmU,EAAEnU,SAA+C,oBAAdoU,EAAEpU,QAAwB,OAAOmU,EAAEnU,YAAcoU,EAAEpU,UAC3I,GAAImU,EAAEa,WAAarX,OAAOkR,UAAUmG,UAAkC,oBAAfb,EAAEa,UAAiD,oBAAfZ,EAAEY,SAAyB,OAAOb,EAAEa,aAAeZ,EAAEY,WAKhJ,IADA1T,GADAmB,EAAO9E,OAAO8E,KAAK0R,IACL7S,UACC3D,OAAO8E,KAAK2R,GAAG9S,OAAQ,OAAO,EAE7C,IAAK+I,EAAI/I,EAAgB,IAAR+I,KACf,IAAK1M,OAAOkR,UAAUG,eAAenR,KAAKuW,EAAG3R,EAAK4H,IAAK,OAAO,EAKhE,GAAIoJ,GAAkBU,aAAaT,QAAS,OAAO,EAGnD,IAAKrJ,EAAI/I,EAAgB,IAAR+I,KACf,IAAiB,WAAZ5H,EAAK4H,IAA+B,QAAZ5H,EAAK4H,IAA4B,QAAZ5H,EAAK4H,KAAiB8J,EAAEc,YAarEf,EAAMC,EAAE1R,EAAK4H,IAAK+J,EAAE3R,EAAK4H,KAAM,OAAO,EAK7C,OAAO,CACT,CAEA,OAAO8J,IAAMA,GAAKC,IAAMA,CAC1B,CAGAc,EAAO1B,QAAU,SAAiBW,EAAGC,GACnC,IACE,OAAOF,EAAMC,EAAGC,EAClB,CAAE,MAAOe,GACP,IAAMA,EAAMC,SAAW,IAAIC,MAAM,oBAO/B,OADAC,QAAQC,KAAK,mDACN,EAGT,MAAMJ,CACR,CACF,+BCxIA3B,EAAQgC,YAAa,EAErB,IAAItY,EAASC,EAAQ,MAMjBsY,GAJUC,EAAuBxY,GAInBwY,EAFDvY,EAAQ,QAMrBwY,EAAQD,EAFDvY,EAAQ,OAMHuY,EAFDvY,EAAQ,OAIvB,SAASuY,EAAuB3G,GAAO,OAAOA,GAAOA,EAAIyG,WAAazG,EAAM,CAAEhQ,QAASgQ,EAAO,CAE9F,SAASxR,EAAgBqY,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIC,UAAU,oCAAwC,CAExJ,SAASrY,EAA2BsY,EAAMlY,GAAQ,IAAKkY,EAAQ,MAAM,IAAIC,eAAe,6DAAgE,OAAOnY,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BkY,EAAPlY,CAAa,CAE/O,SAASoY,EAAUC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIL,UAAU,kEAAoEK,GAAeD,EAASrH,UAAYlR,OAAOyY,OAAOD,GAAcA,EAAWtH,UAAW,CAAEwF,YAAa,CAAEvU,MAAOoW,EAAUG,YAAY,EAAOC,UAAU,EAAMC,cAAc,KAAeJ,IAAYxY,OAAO6Y,eAAiB7Y,OAAO6Y,eAAeN,EAAUC,GAAcD,EAASxY,UAAYyY,EAAY,CAE7e,IAAIM,EAAwB,WAsK5BjD,EAAAA,QA/HA,SAA4BkD,EAAcC,GACxC,IAAIC,EAAuBC,EAEvBC,EAAc,2BAA4B,EAAInB,EAAM5W,WAAa,KAEjEgY,EAAW,SAAUC,GAGvB,SAASD,IACP,IAAIE,EAAOzZ,EAEXD,EAAgBW,KAAM6Y,GAEtB,IAAK,IAAIG,EAAO7V,UAAUC,OAAQ6V,EAAOvI,MAAMsI,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC3ED,EAAKC,GAAQ/V,UAAU+V,GAGzB,OAAeH,EAASzZ,EAAQC,EAA2BS,KAAM8Y,EAAWnZ,KAAKwZ,MAAML,EAAY,CAAC9Y,MAAMoZ,OAAOH,KAAiB3Z,EAAM+Z,QA5C9I,SAA4BzX,GAC1B,IAAI0X,EAAW,GACf,MAAO,CACLC,GAAI,SAAYtV,GACdqV,EAASlN,KAAKnI,EAChB,EACAuV,IAAK,SAAavV,GAChBqV,EAAWA,EAASlT,QAAO,SAAUqT,GACnC,OAAOA,IAAMxV,CACf,GACF,EACAyS,IAAK,WACH,OAAO9U,CACT,EACA8X,IAAK,SAAaC,EAAUC,GAC1BhY,EAAQ+X,EACRL,EAASjT,SAAQ,SAAUpC,GACzB,OAAOA,EAAQrC,EAAOgY,EACxB,GACF,EAEJ,CAuBwJC,CAAmBva,EAAMF,MAAMwC,OAAgBrC,EAA2BD,EAAnCyZ,EAC3L,CAmCA,OA/CAhB,EAAUc,EAAUC,GAcpBD,EAASlI,UAAUmJ,gBAAkB,WACnC,IAAIC,EAEJ,OAAOA,EAAO,CAAC,GAAQnB,GAAe5Y,KAAKqZ,QAASU,CACtD,EAEAlB,EAASlI,UAAUqJ,0BAA4B,SAAmCla,GAChF,GAAIE,KAAKZ,MAAMwC,QAAU9B,EAAU8B,MAAO,CACxC,IAAIqY,EAAWja,KAAKZ,MAAMwC,MACtB+X,EAAW7Z,EAAU8B,MACrBgY,OAAc,IAjERM,EAmEGD,MAnEAE,EAmEUR,GAjEd,IAANO,GAAW,EAAIA,IAAM,EAAIC,EAEzBD,IAAMA,GAAKC,IAAMA,GAgElBP,EAAc,GAEdA,EAA8C,oBAAzBnB,EAAsCA,EAAqBwB,EAAUN,GAAYpB,EAOlF,KAFpBqB,GAAe,IAGb5Z,KAAKqZ,QAAQK,IAAI5Z,EAAU8B,MAAOgY,GAGxC,CAjFN,IAAkBM,EAAGC,CAkFjB,EAEAtB,EAASlI,UAAUyJ,OAAS,WAC1B,OAAOpa,KAAKZ,MAAM0G,QACpB,EAEO+S,CACT,CAjDe,CAiDb7Z,EAAOoC,WAETyX,EAASwB,oBAAqB3B,EAAwB,CAAC,GAAyBE,GAAerB,EAAY1W,QAAQyZ,OAAOC,WAAY7B,GAEtI,IAAI8B,EAAW,SAAUC,GAGvB,SAASD,IACP,IAAIE,EAAQrW,EAEZhF,EAAgBW,KAAMwa,GAEtB,IAAK,IAAIG,EAAQxX,UAAUC,OAAQ6V,EAAOvI,MAAMiK,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IAChF3B,EAAK2B,GAASzX,UAAUyX,GAG1B,OAAgBF,EAAUrW,EAAS9E,EAA2BS,KAAMya,EAAY9a,KAAKwZ,MAAMsB,EAAa,CAACza,MAAMoZ,OAAOH,KAAkB5U,EAAO+C,MAAQ,CACrJxF,MAAOyC,EAAOwW,YACbxW,EAAOyW,SAAW,SAAUnB,EAAUC,GAEF,MADI,EAAtBvV,EAAO0W,cACNnB,IAClBvV,EAAOkF,SAAS,CAAE3H,MAAOyC,EAAOwW,YAEpC,EAAYtb,EAA2B8E,EAApCqW,EACL,CAqCA,OAxDA3C,EAAUyC,EAAUC,GAqBpBD,EAAS7J,UAAUqJ,0BAA4B,SAAmCla,GAChF,IAAIib,EAAejb,EAAUib,aAE7B/a,KAAK+a,kBAAgC1X,IAAjB0X,GAA+C,OAAjBA,EAAwBxC,EACxEwC,CACJ,EAEAP,EAAS7J,UAAUqK,kBAAoB,WACjChb,KAAKib,QAAQrC,IACf5Y,KAAKib,QAAQrC,GAAaW,GAAGvZ,KAAK8a,UAEpC,IAAIC,EAAe/a,KAAKZ,MAAM2b,aAE9B/a,KAAK+a,kBAAgC1X,IAAjB0X,GAA+C,OAAjBA,EAAwBxC,EACxEwC,CACJ,EAEAP,EAAS7J,UAAUuK,qBAAuB,WACpClb,KAAKib,QAAQrC,IACf5Y,KAAKib,QAAQrC,GAAaY,IAAIxZ,KAAK8a,SAEvC,EAEAN,EAAS7J,UAAUkK,SAAW,WAC5B,OAAI7a,KAAKib,QAAQrC,GACR5Y,KAAKib,QAAQrC,GAAalC,MAE1B8B,CAEX,EAEAgC,EAAS7J,UAAUyJ,OAAS,WAC1B,OApHatU,EAoHI9F,KAAKZ,MAAM0G,SAnHzB4K,MAAMgB,QAAQ5L,GAAYA,EAAS,GAAKA,GAmHL9F,KAAKoH,MAAMxF,OApHvD,IAAmBkE,CAqHf,EAEO0U,CACT,CA1De,CA0Dbxb,EAAOoC,WAKT,OAHAoZ,EAASW,eAAgBxC,EAAwB,CAAC,GAAyBC,GAAerB,EAAY1W,QAAQyZ,OAAQ3B,GAG/G,CACLE,SAAUA,EACV2B,SAAUA,EAEd,EAGAxD,EAAO1B,QAAUA,EAAiB,qCCjMlCA,EAAQgC,YAAa,EAErB,IAEI1W,EAAU4W,EAFDvY,EAAQ,OAMjBmc,EAAmB5D,EAFDvY,EAAQ,OAI9B,SAASuY,EAAuB3G,GAAO,OAAOA,GAAOA,EAAIyG,WAAazG,EAAM,CAAEhQ,QAASgQ,EAAO,CAE9FyE,EAAAA,QAAkB1U,EAAQC,QAAQwa,eAAiBD,EAAiBva,QACpEmW,EAAO1B,QAAUA,EAAiB,qCCblC,IAAIgG,EAAerc,EAAQ,MAEvBsc,EAAWtc,EAAQ,MAEnBuc,EAAWD,EAASD,EAAa,6BAErCtE,EAAO1B,QAAU,SAA4B5Q,EAAM+W,GAClD,IAAIC,EAAYJ,EAAa5W,IAAQ+W,GACrC,MAAyB,oBAAdC,GAA4BF,EAAS9W,EAAM,gBAAkB,EAChE6W,EAASG,GAEVA,CACR,+BCZA,IAAI7b,EAAOZ,EAAQ,KACfqc,EAAerc,EAAQ,MACvB0c,EAAoB1c,EAAQ,MAE5B2c,EAAa3c,EAAQ,MACrB4c,EAASP,EAAa,8BACtBQ,EAAQR,EAAa,6BACrBS,EAAgBT,EAAa,mBAAmB,IAASzb,EAAKF,KAAKmc,EAAOD,GAE1EG,EAAkB/c,EAAQ,MAC1Bgd,EAAOX,EAAa,cAExBtE,EAAO1B,QAAU,SAAkB4G,GAClC,GAAgC,oBAArBA,EACV,MAAM,IAAIN,EAAW,0BAEtB,IAAIO,EAAOJ,EAAclc,EAAMic,EAAO3Y,WACtC,OAAOwY,EACNQ,EACA,EAAIF,EAAK,EAAGC,EAAiB9Y,QAAUD,UAAUC,OAAS,KAC1D,EAEF,EAEA,IAAIgZ,EAAY,WACf,OAAOL,EAAclc,EAAMgc,EAAQ1Y,UACpC,EAEI6Y,EACHA,EAAgBhF,EAAO1B,QAAS,QAAS,CAAE1T,MAAOwa,IAElDpF,EAAO1B,QAAQ6D,MAAQiD,6BC/BxB3c,OAAO4c,eAAe/G,EAAS,aAAc,CAC3C1T,OAAO,IAET0T,EAAAA,QACA,SAAyBgH,EAAQC,GAC/B,IAAIC,EAAOF,EAAS,EAAI,IAAM,GAC1BG,EAAS7Y,KAAK8Y,IAAIJ,GAAQxF,WAC9B,KAAO2F,EAAOrZ,OAASmZ,GACrBE,EAAS,IAAMA,EAEjB,OAAOD,EAAOC,CAChB,EACAzF,EAAO1B,QAAUA,EAAQzU,mCCZzBpB,OAAO4c,eAAe/G,EAAS,aAAc,CAC3C1T,OAAO,IAET0T,EAAAA,QACA,SAAgBjN,EAAQiS,GACtB,GAAc,MAAVjS,EACF,MAAM,IAAIuP,UAAU,iEAEtB,IAAK,IAAI+E,KAAYrC,EACf7a,OAAOkR,UAAUG,eAAenR,KAAK2a,EAAQqC,KAE/CtU,EAAOsU,GAAYrC,EAAOqC,IAG9B,OAAOtU,CACT,EACA2O,EAAO1B,QAAUA,EAAQzU,qCChBzB,IAAI2W,EAAyBvY,EAAAA,MAAAA,QAC7BQ,OAAO4c,eAAe/G,EAAS,aAAc,CAC3C1T,OAAO,IAET0T,EAAAA,QAEA,SAAqBgF,GACnB,OAAO,EAAIsC,EAAO/b,SAAS,CAAC,EAAGyZ,EACjC,EAHA,IAAIsC,EAASpF,EAAuBvY,EAAQ,OAI5C+X,EAAO1B,QAAUA,EAAQzU,qCCTzB,IAAI2W,EAAyBvY,EAAAA,MAAAA,QAC7BQ,OAAO4c,eAAe/G,EAAS,aAAc,CAC3C1T,OAAO,IAET0T,EAAAA,aAAkB,EAClB,IACIuH,EADSrF,EAAuBvY,EAAQ,MACtB4B,QACtByU,EAAAA,QAAkBuH,EAClB7F,EAAO1B,QAAUA,EAAQzU,mCCRzBpB,OAAO4c,eAAe/G,EAAS,aAAc,CAC3C1T,OAAO,IAET0T,EAAQwH,kBAGR,WACE,OAAOC,CACT,EAJAzH,EAAQ0H,kBAKR,SAA2BC,GACzBF,EAAiBE,CACnB,EANA,IAAIF,EAAiB,CAAC,8BCLtB,IAAIvF,EAAyBvY,EAAAA,MAAAA,QAC7BQ,OAAO4c,eAAe/G,EAAS,aAAc,CAC3C1T,OAAO,IAET0T,EAAAA,aAAkB,EAClB,IAAIsH,EAASpF,EAAuBvY,EAAQ,OACxCie,EAAU1F,EAAuBvY,EAAQ,OACzCke,EAAU3F,EAAuBvY,EAAQ,OACzCme,EAAU5F,EAAuBvY,EAAQ,OACzCoe,EAAU7F,EAAuBvY,EAAQ,OACzCqe,EAAU9F,EAAuBvY,EAAQ,OACzCse,EAAU/F,EAAuBvY,EAAQ,OACzCue,EAGQ,WAHRA,EAII,OAJJA,EAKO,UALPA,EAMS,YANTA,EAOO,UAPPA,EAQK,QA0tBT,SAASC,EAAoBC,EAAQC,GACnC,IAAInB,EAAOkB,EAAS,EAAI,IAAM,IAC1BE,EAAYha,KAAK8Y,IAAIgB,GACrBG,EAAQja,KAAKiG,MAAM+T,EAAY,IAC/BE,EAAUF,EAAY,GAC1B,GAAgB,IAAZE,EACF,OAAOtB,EAAOuB,OAAOF,GAEvB,IAAIG,EAAYL,GAAkB,GAClC,OAAOnB,EAAOuB,OAAOF,GAASG,GAAY,EAAIV,EAAQzc,SAASid,EAAS,EAC1E,CACA,SAASG,EAAkCP,EAAQC,GACjD,OAAID,EAAS,KAAO,GACPA,EAAS,EAAI,IAAM,MAChB,EAAIJ,EAAQzc,SAAS+C,KAAK8Y,IAAIgB,GAAU,GAAI,GAErDQ,EAAeR,EAAQC,EAChC,CACA,SAASO,EAAeR,EAAQC,GAC9B,IAAIK,EAAYL,GAAkB,GAC9BnB,EAAOkB,EAAS,EAAI,IAAM,IAC1BE,EAAYha,KAAK8Y,IAAIgB,GAGzB,OAAOlB,GAFK,EAAIc,EAAQzc,SAAS+C,KAAKiG,MAAM+T,EAAY,IAAK,GAEvCI,GADR,EAAIV,EAAQzc,SAAS+c,EAAY,GAAI,EAErD,CACA,IAAIf,EApsBa,CAEfsB,EAAG,SAAWje,EAAMke,EAAOC,GACzB,IAAIC,EAAMpe,EAAKqe,iBAAmB,EAAI,EAAI,EAC1C,OAAQH,GAEN,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAOC,EAASC,IAAIA,EAAK,CACvBE,MAAO,gBAGX,IAAK,QACH,OAAOH,EAASC,IAAIA,EAAK,CACvBE,MAAO,WAIX,QACE,OAAOH,EAASC,IAAIA,EAAK,CACvBE,MAAO,SAGf,EAEArE,EAAG,SAAWja,EAAMke,EAAOC,GAEzB,GAAc,OAAVD,EAAgB,CAClB,IAAIK,EAAave,EAAKqe,iBAElBG,EAAOD,EAAa,EAAIA,EAAa,EAAIA,EAC7C,OAAOJ,EAASM,cAAcD,EAAM,CAClCE,KAAM,QAEV,CACA,OAAOrB,EAAQ1c,QAAQsZ,EAAEja,EAAMke,EACjC,EAEAS,EAAG,SAAW3e,EAAMke,EAAOC,EAAUS,GACnC,IAAIC,GAAiB,EAAI1B,EAAQxc,SAASX,EAAM4e,GAE5CE,EAAWD,EAAiB,EAAIA,EAAiB,EAAIA,EAGzD,GAAc,OAAVX,EAAgB,CAClB,IAAIa,EAAeD,EAAW,IAC9B,OAAO,EAAI1B,EAAQzc,SAASoe,EAAc,EAC5C,CAGA,MAAc,OAAVb,EACKC,EAASM,cAAcK,EAAU,CACtCJ,KAAM,UAKH,EAAItB,EAAQzc,SAASme,EAAUZ,EAAMhb,OAC9C,EAEA8b,EAAG,SAAWhf,EAAMke,GAClB,IAAIe,GAAc,EAAIhC,EAAQtc,SAASX,GAGvC,OAAO,EAAIod,EAAQzc,SAASse,EAAaf,EAAMhb,OACjD,EAUAgc,EAAG,SAAWlf,EAAMke,GAClB,IAAIM,EAAOxe,EAAKqe,iBAChB,OAAO,EAAIjB,EAAQzc,SAAS6d,EAAMN,EAAMhb,OAC1C,EAEAic,EAAG,SAAWnf,EAAMke,EAAOC,GACzB,IAAIiB,EAAU1b,KAAKC,MAAM3D,EAAKqf,cAAgB,GAAK,GACnD,OAAQnB,GAEN,IAAK,IACH,OAAOL,OAAOuB,GAEhB,IAAK,KACH,OAAO,EAAIhC,EAAQzc,SAASye,EAAS,GAEvC,IAAK,KACH,OAAOjB,EAASM,cAAcW,EAAS,CACrCV,KAAM,YAGV,IAAK,MACH,OAAOP,EAASiB,QAAQA,EAAS,CAC/Bd,MAAO,cACPvD,QAAS,eAGb,IAAK,QACH,OAAOoD,EAASiB,QAAQA,EAAS,CAC/Bd,MAAO,SACPvD,QAAS,eAIb,QACE,OAAOoD,EAASiB,QAAQA,EAAS,CAC/Bd,MAAO,OACPvD,QAAS,eAGjB,EAEAuE,EAAG,SAAWtf,EAAMke,EAAOC,GACzB,IAAIiB,EAAU1b,KAAKC,MAAM3D,EAAKqf,cAAgB,GAAK,GACnD,OAAQnB,GAEN,IAAK,IACH,OAAOL,OAAOuB,GAEhB,IAAK,KACH,OAAO,EAAIhC,EAAQzc,SAASye,EAAS,GAEvC,IAAK,KACH,OAAOjB,EAASM,cAAcW,EAAS,CACrCV,KAAM,YAGV,IAAK,MACH,OAAOP,EAASiB,QAAQA,EAAS,CAC/Bd,MAAO,cACPvD,QAAS,eAGb,IAAK,QACH,OAAOoD,EAASiB,QAAQA,EAAS,CAC/Bd,MAAO,SACPvD,QAAS,eAIb,QACE,OAAOoD,EAASiB,QAAQA,EAAS,CAC/Bd,MAAO,OACPvD,QAAS,eAGjB,EAEAwE,EAAG,SAAWvf,EAAMke,EAAOC,GACzB,IAAIpV,EAAQ/I,EAAKqf,cACjB,OAAQnB,GACN,IAAK,IACL,IAAK,KACH,OAAOb,EAAQ1c,QAAQ4e,EAAEvf,EAAMke,GAEjC,IAAK,KACH,OAAOC,EAASM,cAAc1V,EAAQ,EAAG,CACvC2V,KAAM,UAGV,IAAK,MACH,OAAOP,EAASpV,MAAMA,EAAO,CAC3BuV,MAAO,cACPvD,QAAS,eAGb,IAAK,QACH,OAAOoD,EAASpV,MAAMA,EAAO,CAC3BuV,MAAO,SACPvD,QAAS,eAIb,QACE,OAAOoD,EAASpV,MAAMA,EAAO,CAC3BuV,MAAO,OACPvD,QAAS,eAGjB,EAEAyE,EAAG,SAAWxf,EAAMke,EAAOC,GACzB,IAAIpV,EAAQ/I,EAAKqf,cACjB,OAAQnB,GAEN,IAAK,IACH,OAAOL,OAAO9U,EAAQ,GAExB,IAAK,KACH,OAAO,EAAIqU,EAAQzc,SAASoI,EAAQ,EAAG,GAEzC,IAAK,KACH,OAAOoV,EAASM,cAAc1V,EAAQ,EAAG,CACvC2V,KAAM,UAGV,IAAK,MACH,OAAOP,EAASpV,MAAMA,EAAO,CAC3BuV,MAAO,cACPvD,QAAS,eAGb,IAAK,QACH,OAAOoD,EAASpV,MAAMA,EAAO,CAC3BuV,MAAO,SACPvD,QAAS,eAIb,QACE,OAAOoD,EAASpV,MAAMA,EAAO,CAC3BuV,MAAO,OACPvD,QAAS,eAGjB,EAEA0E,EAAG,SAAWzf,EAAMke,EAAOC,EAAUS,GACnC,IAAI3P,GAAO,EAAIiO,EAAQvc,SAASX,EAAM4e,GACtC,MAAc,OAAVV,EACKC,EAASM,cAAcxP,EAAM,CAClCyP,KAAM,UAGH,EAAItB,EAAQzc,SAASsO,EAAMiP,EAAMhb,OAC1C,EAEAwc,EAAG,SAAW1f,EAAMke,EAAOC,GACzB,IAAIwB,GAAU,EAAI3C,EAAQrc,SAASX,GACnC,MAAc,OAAVke,EACKC,EAASM,cAAckB,EAAS,CACrCjB,KAAM,UAGH,EAAItB,EAAQzc,SAASgf,EAASzB,EAAMhb,OAC7C,EAEA5B,EAAG,SAAWtB,EAAMke,EAAOC,GACzB,MAAc,OAAVD,EACKC,EAASM,cAAcze,EAAK4f,aAAc,CAC/ClB,KAAM,SAGHrB,EAAQ1c,QAAQW,EAAEtB,EAAMke,EACjC,EAEA2B,EAAG,SAAW7f,EAAMke,EAAOC,GACzB,IAAI2B,GAAY,EAAIpD,EAAO/b,SAASX,GACpC,MAAc,OAAVke,EACKC,EAASM,cAAcqB,EAAW,CACvCpB,KAAM,eAGH,EAAItB,EAAQzc,SAASmf,EAAW5B,EAAMhb,OAC/C,EAEA6c,EAAG,SAAW/f,EAAMke,EAAOC,GACzB,IAAItM,EAAY7R,EAAKggB,YACrB,OAAQ9B,GAEN,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAOC,EAASpb,IAAI8O,EAAW,CAC7ByM,MAAO,cACPvD,QAAS,eAGb,IAAK,QACH,OAAOoD,EAASpb,IAAI8O,EAAW,CAC7ByM,MAAO,SACPvD,QAAS,eAGb,IAAK,SACH,OAAOoD,EAASpb,IAAI8O,EAAW,CAC7ByM,MAAO,QACPvD,QAAS,eAIb,QACE,OAAOoD,EAASpb,IAAI8O,EAAW,CAC7ByM,MAAO,OACPvD,QAAS,eAGjB,EAEA5a,EAAG,SAAWH,EAAMke,EAAOC,EAAUS,GACnC,IAAI/M,EAAY7R,EAAKggB,YACjBC,GAAkBpO,EAAY+M,EAAQsB,aAAe,GAAK,GAAK,EACnE,OAAQhC,GAEN,IAAK,IACH,OAAOL,OAAOoC,GAEhB,IAAK,KACH,OAAO,EAAI7C,EAAQzc,SAASsf,EAAgB,GAE9C,IAAK,KACH,OAAO9B,EAASM,cAAcwB,EAAgB,CAC5CvB,KAAM,QAEV,IAAK,MACH,OAAOP,EAASpb,IAAI8O,EAAW,CAC7ByM,MAAO,cACPvD,QAAS,eAGb,IAAK,QACH,OAAOoD,EAASpb,IAAI8O,EAAW,CAC7ByM,MAAO,SACPvD,QAAS,eAGb,IAAK,SACH,OAAOoD,EAASpb,IAAI8O,EAAW,CAC7ByM,MAAO,QACPvD,QAAS,eAIb,QACE,OAAOoD,EAASpb,IAAI8O,EAAW,CAC7ByM,MAAO,OACPvD,QAAS,eAGjB,EAEAoF,EAAG,SAAWngB,EAAMke,EAAOC,EAAUS,GACnC,IAAI/M,EAAY7R,EAAKggB,YACjBC,GAAkBpO,EAAY+M,EAAQsB,aAAe,GAAK,GAAK,EACnE,OAAQhC,GAEN,IAAK,IACH,OAAOL,OAAOoC,GAEhB,IAAK,KACH,OAAO,EAAI7C,EAAQzc,SAASsf,EAAgB/B,EAAMhb,QAEpD,IAAK,KACH,OAAOib,EAASM,cAAcwB,EAAgB,CAC5CvB,KAAM,QAEV,IAAK,MACH,OAAOP,EAASpb,IAAI8O,EAAW,CAC7ByM,MAAO,cACPvD,QAAS,eAGb,IAAK,QACH,OAAOoD,EAASpb,IAAI8O,EAAW,CAC7ByM,MAAO,SACPvD,QAAS,eAGb,IAAK,SACH,OAAOoD,EAASpb,IAAI8O,EAAW,CAC7ByM,MAAO,QACPvD,QAAS,eAIb,QACE,OAAOoD,EAASpb,IAAI8O,EAAW,CAC7ByM,MAAO,OACPvD,QAAS,eAGjB,EAEA9O,EAAG,SAAWjM,EAAMke,EAAOC,GACzB,IAAItM,EAAY7R,EAAKggB,YACjBI,EAA6B,IAAdvO,EAAkB,EAAIA,EACzC,OAAQqM,GAEN,IAAK,IACH,OAAOL,OAAOuC,GAEhB,IAAK,KACH,OAAO,EAAIhD,EAAQzc,SAASyf,EAAclC,EAAMhb,QAElD,IAAK,KACH,OAAOib,EAASM,cAAc2B,EAAc,CAC1C1B,KAAM,QAGV,IAAK,MACH,OAAOP,EAASpb,IAAI8O,EAAW,CAC7ByM,MAAO,cACPvD,QAAS,eAGb,IAAK,QACH,OAAOoD,EAASpb,IAAI8O,EAAW,CAC7ByM,MAAO,SACPvD,QAAS,eAGb,IAAK,SACH,OAAOoD,EAASpb,IAAI8O,EAAW,CAC7ByM,MAAO,QACPvD,QAAS,eAIb,QACE,OAAOoD,EAASpb,IAAI8O,EAAW,CAC7ByM,MAAO,OACPvD,QAAS,eAGjB,EAEAhF,EAAG,SAAW/V,EAAMke,EAAOC,GACzB,IACIkC,EADQrgB,EAAKsgB,cACgB,IAAM,EAAI,KAAO,KAClD,OAAQpC,GACN,IAAK,IACL,IAAK,KACH,OAAOC,EAASoC,UAAUF,EAAoB,CAC5C/B,MAAO,cACPvD,QAAS,eAEb,IAAK,MACH,OAAOoD,EAASoC,UAAUF,EAAoB,CAC5C/B,MAAO,cACPvD,QAAS,eACRyF,cACL,IAAK,QACH,OAAOrC,EAASoC,UAAUF,EAAoB,CAC5C/B,MAAO,SACPvD,QAAS,eAGb,QACE,OAAOoD,EAASoC,UAAUF,EAAoB,CAC5C/B,MAAO,OACPvD,QAAS,eAGjB,EAEA/E,EAAG,SAAWhW,EAAMke,EAAOC,GACzB,IACIkC,EADA1C,EAAQ3d,EAAKsgB,cASjB,OANED,EADY,KAAV1C,EACmBL,EACF,IAAVK,EACYL,EAEAK,EAAQ,IAAM,EAAI,KAAO,KAExCO,GACN,IAAK,IACL,IAAK,KACH,OAAOC,EAASoC,UAAUF,EAAoB,CAC5C/B,MAAO,cACPvD,QAAS,eAEb,IAAK,MACH,OAAOoD,EAASoC,UAAUF,EAAoB,CAC5C/B,MAAO,cACPvD,QAAS,eACRyF,cACL,IAAK,QACH,OAAOrC,EAASoC,UAAUF,EAAoB,CAC5C/B,MAAO,SACPvD,QAAS,eAGb,QACE,OAAOoD,EAASoC,UAAUF,EAAoB,CAC5C/B,MAAO,OACPvD,QAAS,eAGjB,EAEA0F,EAAG,SAAWzgB,EAAMke,EAAOC,GACzB,IACIkC,EADA1C,EAAQ3d,EAAKsgB,cAWjB,OARED,EADE1C,GAAS,GACUL,EACZK,GAAS,GACGL,EACZK,GAAS,EACGL,EAEAA,EAEfY,GACN,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAOC,EAASoC,UAAUF,EAAoB,CAC5C/B,MAAO,cACPvD,QAAS,eAEb,IAAK,QACH,OAAOoD,EAASoC,UAAUF,EAAoB,CAC5C/B,MAAO,SACPvD,QAAS,eAGb,QACE,OAAOoD,EAASoC,UAAUF,EAAoB,CAC5C/B,MAAO,OACPvD,QAAS,eAGjB,EAEAxB,EAAG,SAAWvZ,EAAMke,EAAOC,GACzB,GAAc,OAAVD,EAAgB,CAClB,IAAIP,EAAQ3d,EAAKsgB,cAAgB,GAEjC,OADc,IAAV3C,IAAaA,EAAQ,IAClBQ,EAASM,cAAcd,EAAO,CACnCe,KAAM,QAEV,CACA,OAAOrB,EAAQ1c,QAAQ4Y,EAAEvZ,EAAMke,EACjC,EAEAwC,EAAG,SAAW1gB,EAAMke,EAAOC,GACzB,MAAc,OAAVD,EACKC,EAASM,cAAcze,EAAKsgB,cAAe,CAChD5B,KAAM,SAGHrB,EAAQ1c,QAAQ+f,EAAE1gB,EAAMke,EACjC,EAEAyC,EAAG,SAAW3gB,EAAMke,EAAOC,GACzB,IAAIR,EAAQ3d,EAAKsgB,cAAgB,GACjC,MAAc,OAAVpC,EACKC,EAASM,cAAcd,EAAO,CACnCe,KAAM,UAGH,EAAItB,EAAQzc,SAASgd,EAAOO,EAAMhb,OAC3C,EAEA0d,EAAG,SAAW5gB,EAAMke,EAAOC,GACzB,IAAIR,EAAQ3d,EAAKsgB,cAEjB,OADc,IAAV3C,IAAaA,EAAQ,IACX,OAAVO,EACKC,EAASM,cAAcd,EAAO,CACnCe,KAAM,UAGH,EAAItB,EAAQzc,SAASgd,EAAOO,EAAMhb,OAC3C,EAEA2d,EAAG,SAAW7gB,EAAMke,EAAOC,GACzB,MAAc,OAAVD,EACKC,EAASM,cAAcze,EAAK8gB,gBAAiB,CAClDpC,KAAM,WAGHrB,EAAQ1c,QAAQkgB,EAAE7gB,EAAMke,EACjC,EAEA6C,EAAG,SAAW/gB,EAAMke,EAAOC,GACzB,MAAc,OAAVD,EACKC,EAASM,cAAcze,EAAKghB,gBAAiB,CAClDtC,KAAM,WAGHrB,EAAQ1c,QAAQogB,EAAE/gB,EAAMke,EACjC,EAEA+C,EAAG,SAAWjhB,EAAMke,GAClB,OAAOb,EAAQ1c,QAAQsgB,EAAEjhB,EAAMke,EACjC,EAEAgD,EAAG,SAAWlhB,EAAMke,EAAOiD,EAAWvC,GACpC,IACIwC,GADexC,EAAQyC,eAAiBrhB,GACVshB,oBAClC,GAAuB,IAAnBF,EACF,MAAO,IAET,OAAQlD,GAEN,IAAK,IACH,OAAOH,EAAkCqD,GAK3C,IAAK,OACL,IAAK,KAEH,OAAOpD,EAAeoD,GAOxB,QACE,OAAOpD,EAAeoD,EAAgB,KAE5C,EAEApH,EAAG,SAAWha,EAAMke,EAAOiD,EAAWvC,GACpC,IACIwC,GADexC,EAAQyC,eAAiBrhB,GACVshB,oBAClC,OAAQpD,GAEN,IAAK,IACH,OAAOH,EAAkCqD,GAK3C,IAAK,OACL,IAAK,KAEH,OAAOpD,EAAeoD,GAOxB,QACE,OAAOpD,EAAeoD,EAAgB,KAE5C,EAEAG,EAAG,SAAWvhB,EAAMke,EAAOiD,EAAWvC,GACpC,IACIwC,GADexC,EAAQyC,eAAiBrhB,GACVshB,oBAClC,OAAQpD,GAEN,IAAK,IACL,IAAK,KACL,IAAK,MACH,MAAO,MAAQX,EAAoB6D,EAAgB,KAGrD,QACE,MAAO,MAAQpD,EAAeoD,EAAgB,KAEpD,EAEAI,EAAG,SAAWxhB,EAAMke,EAAOiD,EAAWvC,GACpC,IACIwC,GADexC,EAAQyC,eAAiBrhB,GACVshB,oBAClC,OAAQpD,GAEN,IAAK,IACL,IAAK,KACL,IAAK,MACH,MAAO,MAAQX,EAAoB6D,EAAgB,KAGrD,QACE,MAAO,MAAQpD,EAAeoD,EAAgB,KAEpD,EAEAK,EAAG,SAAWzhB,EAAMke,EAAOiD,EAAWvC,GACpC,IAAI8C,EAAe9C,EAAQyC,eAAiBrhB,EACxC2hB,EAAYje,KAAKiG,MAAM+X,EAAalgB,UAAY,KACpD,OAAO,EAAI4b,EAAQzc,SAASghB,EAAWzD,EAAMhb,OAC/C,EAEA0e,EAAG,SAAW5hB,EAAMke,EAAOiD,EAAWvC,GACpC,IACI+C,GADe/C,EAAQyC,eAAiBrhB,GACfwB,UAC7B,OAAO,EAAI4b,EAAQzc,SAASghB,EAAWzD,EAAMhb,OAC/C,GA6BFkS,EAAAA,QAAkBuH,EAClB7F,EAAO1B,QAAUA,EAAQzU,qCC1wBzB,IAAI2W,EAAyBvY,EAAAA,MAAAA,QAC7BQ,OAAO4c,eAAe/G,EAAS,aAAc,CAC3C1T,OAAO,IAET0T,EAAAA,aAAkB,EAClB,IAAIsH,EAASpF,EAAuBvY,EAAQ,OAgFxC4d,EAlEa,CAEf1C,EAAG,SAAWja,EAAMke,GAUlB,IAAIK,EAAave,EAAKqe,iBAElBG,EAAOD,EAAa,EAAIA,EAAa,EAAIA,EAC7C,OAAO,EAAI7B,EAAO/b,SAAmB,OAAVud,EAAiBM,EAAO,IAAMA,EAAMN,EAAMhb,OACvE,EAEAqc,EAAG,SAAWvf,EAAMke,GAClB,IAAInV,EAAQ/I,EAAKqf,cACjB,MAAiB,MAAVnB,EAAgBL,OAAO9U,EAAQ,IAAK,EAAI2T,EAAO/b,SAASoI,EAAQ,EAAG,EAC5E,EAEAzH,EAAG,SAAWtB,EAAMke,GAClB,OAAO,EAAIxB,EAAO/b,SAASX,EAAK4f,aAAc1B,EAAMhb,OACtD,EAEA6S,EAAG,SAAW/V,EAAMke,GAClB,IAAImC,EAAqBrgB,EAAKsgB,cAAgB,IAAM,EAAI,KAAO,KAC/D,OAAQpC,GACN,IAAK,IACL,IAAK,KACH,OAAOmC,EAAmBwB,cAC5B,IAAK,MACH,OAAOxB,EACT,IAAK,QACH,OAAOA,EAAmB,GAE5B,QACE,MAA8B,OAAvBA,EAA8B,OAAS,OAEpD,EAEA9G,EAAG,SAAWvZ,EAAMke,GAClB,OAAO,EAAIxB,EAAO/b,SAASX,EAAKsgB,cAAgB,IAAM,GAAIpC,EAAMhb,OAClE,EAEAwd,EAAG,SAAW1gB,EAAMke,GAClB,OAAO,EAAIxB,EAAO/b,SAASX,EAAKsgB,cAAepC,EAAMhb,OACvD,EAEA2d,EAAG,SAAW7gB,EAAMke,GAClB,OAAO,EAAIxB,EAAO/b,SAASX,EAAK8gB,gBAAiB5C,EAAMhb,OACzD,EAEA6d,EAAG,SAAW/gB,EAAMke,GAClB,OAAO,EAAIxB,EAAO/b,SAASX,EAAKghB,gBAAiB9C,EAAMhb,OACzD,EAEA+d,EAAG,SAAWjhB,EAAMke,GAClB,IAAI4D,EAAiB5D,EAAMhb,OACvB6e,EAAe/hB,EAAKgiB,qBACpBC,EAAoBve,KAAKiG,MAAMoY,EAAere,KAAKwe,IAAI,GAAIJ,EAAiB,IAChF,OAAO,EAAIpF,EAAO/b,SAASshB,EAAmB/D,EAAMhb,OACtD,GAGFkS,EAAAA,QAAkBuH,EAClB7F,EAAO1B,QAAUA,EAAQzU,mCCvFzBpB,OAAO4c,eAAe/G,EAAS,aAAc,CAC3C1T,OAAO,IAET0T,EAAAA,aAAkB,EAClB,IAAI+M,EAAoB,SAA2BC,EAASC,GAC1D,OAAQD,GACN,IAAK,IACH,OAAOC,EAAWriB,KAAK,CACrBse,MAAO,UAEX,IAAK,KACH,OAAO+D,EAAWriB,KAAK,CACrBse,MAAO,WAEX,IAAK,MACH,OAAO+D,EAAWriB,KAAK,CACrBse,MAAO,SAGX,QACE,OAAO+D,EAAWriB,KAAK,CACrBse,MAAO,SAGf,EACIgE,EAAoB,SAA2BF,EAASC,GAC1D,OAAQD,GACN,IAAK,IACH,OAAOC,EAAWE,KAAK,CACrBjE,MAAO,UAEX,IAAK,KACH,OAAO+D,EAAWE,KAAK,CACrBjE,MAAO,WAEX,IAAK,MACH,OAAO+D,EAAWE,KAAK,CACrBjE,MAAO,SAGX,QACE,OAAO+D,EAAWE,KAAK,CACrBjE,MAAO,SAGf,EAsCI3B,EAJiB,CACnB6F,EAAGF,EACHG,EAnC0B,SAA+BL,EAASC,GAClE,IAMIK,EANAC,EAAcP,EAAQnL,MAAM,cAAgB,GAC5C2L,EAAcD,EAAY,GAC1BE,EAAcF,EAAY,GAC9B,IAAKE,EACH,OAAOV,EAAkBC,EAASC,GAGpC,OAAQO,GACN,IAAK,IACHF,EAAiBL,EAAWS,SAAS,CACnCxE,MAAO,UAET,MACF,IAAK,KACHoE,EAAiBL,EAAWS,SAAS,CACnCxE,MAAO,WAET,MACF,IAAK,MACHoE,EAAiBL,EAAWS,SAAS,CACnCxE,MAAO,SAET,MAEF,QACEoE,EAAiBL,EAAWS,SAAS,CACnCxE,MAAO,SAIb,OAAOoE,EAAevS,QAAQ,WAAYgS,EAAkBS,EAAaP,IAAalS,QAAQ,WAAYmS,EAAkBO,EAAaR,GAC3I,GAMAjN,EAAAA,QAAkBuH,EAClB7F,EAAO1B,QAAUA,EAAQzU,mCCrFzBpB,OAAO4c,eAAe/G,EAAS,aAAc,CAC3C1T,OAAO,IAET0T,EAAAA,QAYA,SAAyCpV,GACvC,IAAI+iB,EAAU,IAAIxhB,KAAKA,KAAKyhB,IAAIhjB,EAAKE,cAAeF,EAAKC,WAAYD,EAAKoC,UAAWpC,EAAKijB,WAAYjjB,EAAKkjB,aAAcljB,EAAKmjB,aAAcnjB,EAAKojB,oBAEjJ,OADAL,EAAQM,eAAerjB,EAAKE,eACrBF,EAAKwB,UAAYuhB,EAAQvhB,SAClC,EACAsV,EAAO1B,QAAUA,EAAQzU,qCCpBzB,IAAI2W,EAAyBvY,EAAAA,MAAAA,QAC7BQ,OAAO4c,eAAe/G,EAAS,aAAc,CAC3C1T,OAAO,IAET0T,EAAAA,QAIA,SAAyBkO,IACvB,EAAItG,EAAQrc,SAAS,EAAGsC,WACxB,IAAIjD,GAAO,EAAI0c,EAAO/b,SAAS2iB,GAC3B3B,EAAY3hB,EAAKwB,UACrBxB,EAAKujB,YAAY,EAAG,GACpBvjB,EAAKwjB,YAAY,EAAG,EAAG,EAAG,GAC1B,IAAIC,EAAuBzjB,EAAKwB,UAC5BkiB,EAAa/B,EAAY8B,EAC7B,OAAO/f,KAAKiG,MAAM+Z,EAAaC,GAAuB,CACxD,EAZA,IAAIjH,EAASpF,EAAuBvY,EAAQ,OACxCie,EAAU1F,EAAuBvY,EAAQ,OACzC4kB,EAAsB,MAW1B7M,EAAO1B,QAAUA,EAAQzU,qCClBzB,IAAI2W,EAAyBvY,EAAAA,MAAAA,QAC7BQ,OAAO4c,eAAe/G,EAAS,aAAc,CAC3C1T,OAAO,IAET0T,EAAAA,QAMA,SAAuBkO,IACrB,EAAIpG,EAAQvc,SAAS,EAAGsC,WACxB,IAAIjD,GAAO,EAAI0c,EAAO/b,SAAS2iB,GAC3BM,GAAO,EAAI5G,EAAQrc,SAASX,GAAMwB,WAAY,EAAIyb,EAAQtc,SAASX,GAAMwB,UAK7E,OAAOkC,KAAKmgB,MAAMD,EAAOE,GAAwB,CACnD,EAdA,IAAIpH,EAASpF,EAAuBvY,EAAQ,OACxCie,EAAU1F,EAAuBvY,EAAQ,OACzCke,EAAU3F,EAAuBvY,EAAQ,OACzCme,EAAU5F,EAAuBvY,EAAQ,OACzC+kB,EAAuB,OAW3BhN,EAAO1B,QAAUA,EAAQzU,qCCpBzB,IAAI2W,EAAyBvY,EAAAA,MAAAA,QAC7BQ,OAAO4c,eAAe/G,EAAS,aAAc,CAC3C1T,OAAO,IAET0T,EAAAA,QAIA,SAA2BkO,IACzB,EAAItG,EAAQrc,SAAS,EAAGsC,WACxB,IAAIjD,GAAO,EAAI0c,EAAO/b,SAAS2iB,GAC3B9E,EAAOxe,EAAKqe,iBACZ0F,EAA4B,IAAIxiB,KAAK,GACzCwiB,EAA0BV,eAAe7E,EAAO,EAAG,EAAG,GACtDuF,EAA0BP,YAAY,EAAG,EAAG,EAAG,GAC/C,IAAIQ,GAAkB,EAAI/G,EAAQtc,SAASojB,GACvCE,EAA4B,IAAI1iB,KAAK,GACzC0iB,EAA0BZ,eAAe7E,EAAM,EAAG,GAClDyF,EAA0BT,YAAY,EAAG,EAAG,EAAG,GAC/C,IAAIU,GAAkB,EAAIjH,EAAQtc,SAASsjB,GAC3C,OAAIjkB,EAAKwB,WAAawiB,EAAgBxiB,UAC7Bgd,EAAO,EACLxe,EAAKwB,WAAa0iB,EAAgB1iB,UACpCgd,EAEAA,EAAO,CAElB,EAtBA,IAAI9B,EAASpF,EAAuBvY,EAAQ,OACxCie,EAAU1F,EAAuBvY,EAAQ,OACzCke,EAAU3F,EAAuBvY,EAAQ,OAqB7C+X,EAAO1B,QAAUA,EAAQzU,qCC5BzB,IAAI2W,EAAyBvY,EAAAA,MAAAA,QAC7BQ,OAAO4c,eAAe/G,EAAS,aAAc,CAC3C1T,OAAO,IAET0T,EAAAA,QAMA,SAAoBkO,EAAW1E,IAC7B,EAAI1B,EAAQvc,SAAS,EAAGsC,WACxB,IAAIjD,GAAO,EAAI0c,EAAO/b,SAAS2iB,GAC3BM,GAAO,EAAI5G,EAAQrc,SAASX,EAAM4e,GAASpd,WAAY,EAAIyb,EAAQtc,SAASX,EAAM4e,GAASpd,UAK/F,OAAOkC,KAAKmgB,MAAMD,EAAOE,GAAwB,CACnD,EAdA,IAAIpH,EAASpF,EAAuBvY,EAAQ,OACxCie,EAAU1F,EAAuBvY,EAAQ,OACzCke,EAAU3F,EAAuBvY,EAAQ,OACzCme,EAAU5F,EAAuBvY,EAAQ,OACzC+kB,EAAuB,OAW3BhN,EAAO1B,QAAUA,EAAQzU,qCCpBzB,IAAI2W,EAAyBvY,EAAAA,MAAAA,QAC7BQ,OAAO4c,eAAe/G,EAAS,aAAc,CAC3C1T,OAAO,IAET0T,EAAAA,QAMA,SAAwBkO,EAAW1E,GACjC,IAAI/E,EAAMsK,EAAOC,EAAOC,EAAuBC,EAAiBC,EAAuBC,EAAuBC,GAC9G,EAAIzH,EAAQrc,SAAS,EAAGsC,WACxB,IAAIjD,GAAO,EAAI0c,EAAO/b,SAAS2iB,GAC3B9E,EAAOxe,EAAKqe,iBACZxB,GAAiB,EAAIM,EAAQP,qBAC7B8H,GAAwB,EAAIxH,EAAQvc,SAAk3B,QAAx2BkZ,EAAyjB,QAAjjBsK,EAAoe,QAA3dC,EAAsH,QAA7GC,EAAoC,OAAZzF,QAAgC,IAAZA,OAAqB,EAASA,EAAQ8F,6BAA6D,IAA1BL,EAAmCA,EAAoC,OAAZzF,QAAgC,IAAZA,GAAqE,QAAtC0F,EAAkB1F,EAAQ/e,cAAwC,IAApBykB,GAA4F,QAArDC,EAAwBD,EAAgB1F,eAA+C,IAA1B2F,OAA5J,EAAwMA,EAAsBG,6BAA6C,IAAVN,EAAmBA,EAAQvH,EAAe6H,6BAA6C,IAAVP,EAAmBA,EAA4D,QAAnDK,EAAwB3H,EAAehd,cAA8C,IAA1B2kB,GAAyG,QAA5DC,EAAyBD,EAAsB5F,eAAgD,IAA3B6F,OAA9E,EAA2HA,EAAuBC,6BAA4C,IAAT7K,EAAkBA,EAAO,GAG37B,KAAM6K,GAAyB,GAAKA,GAAyB,GAC3D,MAAM,IAAIC,WAAW,6DAEvB,IAAIC,EAAsB,IAAIrjB,KAAK,GACnCqjB,EAAoBvB,eAAe7E,EAAO,EAAG,EAAGkG,GAChDE,EAAoBpB,YAAY,EAAG,EAAG,EAAG,GACzC,IAAIQ,GAAkB,EAAI/G,EAAQtc,SAASikB,EAAqBhG,GAC5DiG,EAAsB,IAAItjB,KAAK,GACnCsjB,EAAoBxB,eAAe7E,EAAM,EAAGkG,GAC5CG,EAAoBrB,YAAY,EAAG,EAAG,EAAG,GACzC,IAAIU,GAAkB,EAAIjH,EAAQtc,SAASkkB,EAAqBjG,GAChE,OAAI5e,EAAKwB,WAAawiB,EAAgBxiB,UAC7Bgd,EAAO,EACLxe,EAAKwB,WAAa0iB,EAAgB1iB,UACpCgd,EAEAA,EAAO,CAElB,EAhCA,IAAI9B,EAASpF,EAAuBvY,EAAQ,OACxCie,EAAU1F,EAAuBvY,EAAQ,OACzCke,EAAU3F,EAAuBvY,EAAQ,OACzCme,EAAU5F,EAAuBvY,EAAQ,MACzCoe,EAAUpe,EAAQ,MA6BtB+X,EAAO1B,QAAUA,EAAQzU,mCCtCzBpB,OAAO4c,eAAe/G,EAAS,aAAc,CAC3C1T,OAAO,IAET0T,EAAQ0P,0BAKR,SAAmC5G,GACjC,OAAoD,IAA7C6G,EAAyBta,QAAQyT,EAC1C,EANA9I,EAAQ4P,yBAOR,SAAkC9G,GAChC,OAAmD,IAA5C+G,EAAwBxa,QAAQyT,EACzC,EARA9I,EAAQ8P,oBASR,SAA6BhH,EAAOiH,EAAQC,GAC1C,GAAc,SAAVlH,EACF,MAAM,IAAIyG,WAAW,qCAAqCzL,OAAOiM,EAAQ,0CAA0CjM,OAAOkM,EAAO,mFAC5H,GAAc,OAAVlH,EACT,MAAM,IAAIyG,WAAW,iCAAiCzL,OAAOiM,EAAQ,0CAA0CjM,OAAOkM,EAAO,mFACxH,GAAc,MAAVlH,EACT,MAAM,IAAIyG,WAAW,+BAA+BzL,OAAOiM,EAAQ,sDAAsDjM,OAAOkM,EAAO,mFAClI,GAAc,OAAVlH,EACT,MAAM,IAAIyG,WAAW,iCAAiCzL,OAAOiM,EAAQ,sDAAsDjM,OAAOkM,EAAO,kFAE7I,EAlBA,IAAIL,EAA2B,CAAC,IAAK,MACjCE,EAA0B,CAAC,KAAM,mCCPrC1lB,OAAO4c,eAAe/G,EAAS,aAAc,CAC3C1T,OAAO,IAET0T,EAAAA,QACA,SAAsBiQ,EAAUtM,GAC9B,GAAIA,EAAK7V,OAASmiB,EAChB,MAAM,IAAI3N,UAAU2N,EAAW,aAAeA,EAAW,EAAI,IAAM,IAAM,uBAAyBtM,EAAK7V,OAAS,WAEpH,EACA4T,EAAO1B,QAAUA,EAAQzU,qCCTzB,IAAI2W,EAAyBvY,EAAAA,MAAAA,QAC7BQ,OAAO4c,eAAe/G,EAAS,aAAc,CAC3C1T,OAAO,IAET0T,EAAAA,QAGA,SAA2BkO,IACzB,EAAItG,EAAQrc,SAAS,EAAGsC,WACxB,IACIjD,GAAO,EAAI0c,EAAO/b,SAAS2iB,GAC3BvgB,EAAM/C,EAAKggB,YACX4D,GAAQ7gB,EAHO,EAGc,EAAI,GAAKA,EAHvB,EAMnB,OAFA/C,EAAKslB,WAAWtlB,EAAK4f,aAAegE,GACpC5jB,EAAKwjB,YAAY,EAAG,EAAG,EAAG,GACnBxjB,CACT,EAXA,IAAI0c,EAASpF,EAAuBvY,EAAQ,OACxCie,EAAU1F,EAAuBvY,EAAQ,OAW7C+X,EAAO1B,QAAUA,EAAQzU,qCCjBzB,IAAI2W,EAAyBvY,EAAAA,MAAAA,QAC7BQ,OAAO4c,eAAe/G,EAAS,aAAc,CAC3C1T,OAAO,IAET0T,EAAAA,QAIA,SAA+BkO,IAC7B,EAAIrG,EAAQtc,SAAS,EAAGsC,WACxB,IAAIub,GAAO,EAAI9B,EAAO/b,SAAS2iB,GAC3BiC,EAAkB,IAAIhkB,KAAK,GAI/B,OAHAgkB,EAAgBlC,eAAe7E,EAAM,EAAG,GACxC+G,EAAgB/B,YAAY,EAAG,EAAG,EAAG,IAC1B,EAAIxG,EAAQrc,SAAS4kB,EAElC,EAXA,IAAI7I,EAASpF,EAAuBvY,EAAQ,OACxCie,EAAU1F,EAAuBvY,EAAQ,OACzCke,EAAU3F,EAAuBvY,EAAQ,OAU7C+X,EAAO1B,QAAUA,EAAQzU,qCCjBzB,IAAI2W,EAAyBvY,EAAAA,MAAAA,QAC7BQ,OAAO4c,eAAe/G,EAAS,aAAc,CAC3C1T,OAAO,IAET0T,EAAAA,QAKA,SAAwBkO,EAAW1E,GACjC,IAAI/E,EAAMsK,EAAOC,EAAOoB,EAAuBlB,EAAiBC,EAAuBC,EAAuBC,GAC9G,EAAIzH,EAAQrc,SAAS,EAAGsC,WACxB,IAAI4Z,GAAiB,EAAIK,EAAQN,qBAC7BsD,GAAe,EAAIjD,EAAQtc,SAA80B,QAAp0BkZ,EAA8hB,QAAthBsK,EAAkd,QAAzcC,EAA6G,QAApGoB,EAAoC,OAAZ5G,QAAgC,IAAZA,OAAqB,EAASA,EAAQsB,oBAAoD,IAA1BsF,EAAmCA,EAAoC,OAAZ5G,QAAgC,IAAZA,GAAqE,QAAtC0F,EAAkB1F,EAAQ/e,cAAwC,IAApBykB,GAA4F,QAArDC,EAAwBD,EAAgB1F,eAA+C,IAA1B2F,OAA5J,EAAwMA,EAAsBrE,oBAAoC,IAAVkE,EAAmBA,EAAQvH,EAAeqD,oBAAoC,IAAViE,EAAmBA,EAA4D,QAAnDK,EAAwB3H,EAAehd,cAA8C,IAA1B2kB,GAAyG,QAA5DC,EAAyBD,EAAsB5F,eAAgD,IAA3B6F,OAA9E,EAA2HA,EAAuBvE,oBAAmC,IAATrG,EAAkBA,EAAO,GAG94B,KAAMqG,GAAgB,GAAKA,GAAgB,GACzC,MAAM,IAAIyE,WAAW,oDAEvB,IAAI3kB,GAAO,EAAI0c,EAAO/b,SAAS2iB,GAC3BvgB,EAAM/C,EAAKggB,YACX4D,GAAQ7gB,EAAMmd,EAAe,EAAI,GAAKnd,EAAMmd,EAGhD,OAFAlgB,EAAKslB,WAAWtlB,EAAK4f,aAAegE,GACpC5jB,EAAKwjB,YAAY,EAAG,EAAG,EAAG,GACnBxjB,CACT,EApBA,IAAI0c,EAASpF,EAAuBvY,EAAQ,OACxCie,EAAU1F,EAAuBvY,EAAQ,OACzCke,EAAU3F,EAAuBvY,EAAQ,MACzCme,EAAUne,EAAQ,MAkBtB+X,EAAO1B,QAAUA,EAAQzU,qCC1BzB,IAAI2W,EAAyBvY,EAAAA,MAAAA,QAC7BQ,OAAO4c,eAAe/G,EAAS,aAAc,CAC3C1T,OAAO,IAET0T,EAAAA,QAMA,SAA4BkO,EAAW1E,GACrC,IAAI/E,EAAMsK,EAAOC,EAAOC,EAAuBC,EAAiBC,EAAuBC,EAAuBC,GAC9G,EAAIzH,EAAQrc,SAAS,EAAGsC,WACxB,IAAI4Z,GAAiB,EAAIM,EAAQP,qBAC7B8H,GAAwB,EAAIxH,EAAQvc,SAAk3B,QAAx2BkZ,EAAyjB,QAAjjBsK,EAAoe,QAA3dC,EAAsH,QAA7GC,EAAoC,OAAZzF,QAAgC,IAAZA,OAAqB,EAASA,EAAQ8F,6BAA6D,IAA1BL,EAAmCA,EAAoC,OAAZzF,QAAgC,IAAZA,GAAqE,QAAtC0F,EAAkB1F,EAAQ/e,cAAwC,IAApBykB,GAA4F,QAArDC,EAAwBD,EAAgB1F,eAA+C,IAA1B2F,OAA5J,EAAwMA,EAAsBG,6BAA6C,IAAVN,EAAmBA,EAAQvH,EAAe6H,6BAA6C,IAAVP,EAAmBA,EAA4D,QAAnDK,EAAwB3H,EAAehd,cAA8C,IAA1B2kB,GAAyG,QAA5DC,EAAyBD,EAAsB5F,eAAgD,IAA3B6F,OAA9E,EAA2HA,EAAuBC,6BAA4C,IAAT7K,EAAkBA,EAAO,GACv7B2E,GAAO,EAAI9B,EAAO/b,SAAS2iB,EAAW1E,GACtCzP,EAAY,IAAI5N,KAAK,GAIzB,OAHA4N,EAAUkU,eAAe7E,EAAM,EAAGkG,GAClCvV,EAAUqU,YAAY,EAAG,EAAG,EAAG,IACpB,EAAIvG,EAAQtc,SAASwO,EAAWyP,EAE7C,EAhBA,IAAIlC,EAASpF,EAAuBvY,EAAQ,OACxCie,EAAU1F,EAAuBvY,EAAQ,OACzCke,EAAU3F,EAAuBvY,EAAQ,OACzCme,EAAU5F,EAAuBvY,EAAQ,MACzCoe,EAAUpe,EAAQ,MAatB+X,EAAO1B,QAAUA,EAAQzU,kCCtBzBpB,OAAO4c,eAAe/G,EAAS,aAAc,CAC3C1T,OAAO,IAET0T,EAAAA,QACA,SAAmBqQ,GACjB,GAAoB,OAAhBA,IAAwC,IAAhBA,IAAwC,IAAhBA,EAClD,OAAOC,IAET,IAAItJ,EAASuJ,OAAOF,GACpB,GAAI9jB,MAAMya,GACR,OAAOA,EAET,OAAOA,EAAS,EAAI1Y,KAAKC,KAAKyY,GAAU1Y,KAAKiG,MAAMyS,EACrD,EACAtF,EAAO1B,QAAUA,EAAQzU,qCCdzB,IAAI2W,EAAyBvY,EAAAA,MAAAA,QAC7BQ,OAAO4c,eAAe/G,EAAS,aAAc,CAC3C1T,OAAO,IAET0T,EAAAA,QAsBA,SAAyBkO,EAAWsC,IAClC,EAAI3I,EAAQtc,SAAS,EAAGsC,WACxB,IAAI0e,GAAY,EAAI3E,EAAQrc,SAAS2iB,GAAW9hB,UAC5CqkB,GAAS,EAAInJ,EAAO/b,SAASilB,GACjC,OAAO,IAAIrkB,KAAKogB,EAAYkE,EAC9B,EA1BA,IAAInJ,EAASpF,EAAuBvY,EAAQ,MACxCie,EAAU1F,EAAuBvY,EAAQ,OACzCke,EAAU3F,EAAuBvY,EAAQ,OAyB7C+X,EAAO1B,QAAUA,EAAQzU,qCChCzB,IAAI2W,EAAyBvY,EAAAA,MAAAA,QAC7BQ,OAAO4c,eAAe/G,EAAS,aAAc,CAC3C1T,OAAO,IAET0T,EAAAA,QAoUA,SAAgBkO,EAAWwC,EAAgBlH,GACzC,IAAI/E,EAAMyK,EAAiBH,EAAOC,EAAO2B,EAAO1B,EAAuB2B,EAAkBC,EAAuBzB,EAAuBC,EAAwByB,EAAOC,EAAOC,EAAOZ,EAAuBa,EAAkBC,EAAuBC,EAAwBC,GAC5Q,EAAIC,EAAQ9lB,SAAS,EAAGsC,WACxB,IAAIyjB,EAAY7I,OAAOiI,GACnBjJ,GAAiB,EAAI8J,EAAS/J,qBAC9B/c,EAA4L,QAAlLga,EAAgG,QAAxFyK,EAA8B,OAAZ1F,QAAgC,IAAZA,OAAqB,EAASA,EAAQ/e,cAAwC,IAApBykB,EAA6BA,EAAkBzH,EAAehd,cAA6B,IAATga,EAAkBA,EAAO+M,EAASjmB,QACtO+jB,GAAwB,EAAImC,EAAQlmB,SAAs3B,QAA52BwjB,EAA6jB,QAApjBC,EAAue,QAA9d2B,EAAsH,QAA7G1B,EAAoC,OAAZzF,QAAgC,IAAZA,OAAqB,EAASA,EAAQ8F,6BAA6D,IAA1BL,EAAmCA,EAAoC,OAAZzF,QAAgC,IAAZA,GAAsE,QAAvCoH,EAAmBpH,EAAQ/e,cAAyC,IAArBmmB,GAA8F,QAAtDC,EAAwBD,EAAiBpH,eAA+C,IAA1BqH,OAA/J,EAA2MA,EAAsBvB,6BAA6C,IAAVqB,EAAmBA,EAAQlJ,EAAe6H,6BAA6C,IAAVN,EAAmBA,EAA4D,QAAnDI,EAAwB3H,EAAehd,cAA8C,IAA1B2kB,GAAyG,QAA5DC,EAAyBD,EAAsB5F,eAAgD,IAA3B6F,OAA9E,EAA2HA,EAAuBC,6BAA6C,IAAVP,EAAmBA,EAAQ,GAGj8B,KAAMO,GAAyB,GAAKA,GAAyB,GAC3D,MAAM,IAAIC,WAAW,6DAEvB,IAAIzE,GAAe,EAAI2G,EAAQlmB,SAAq1B,QAA30BulB,EAAkiB,QAAzhBC,EAAqd,QAA5cC,EAA6G,QAApGZ,EAAoC,OAAZ5G,QAAgC,IAAZA,OAAqB,EAASA,EAAQsB,oBAAoD,IAA1BsF,EAAmCA,EAAoC,OAAZ5G,QAAgC,IAAZA,GAAsE,QAAvCyH,EAAmBzH,EAAQ/e,cAAyC,IAArBwmB,GAA8F,QAAtDC,EAAwBD,EAAiBzH,eAA+C,IAA1B0H,OAA/J,EAA2MA,EAAsBpG,oBAAoC,IAAVkG,EAAmBA,EAAQvJ,EAAeqD,oBAAoC,IAAViG,EAAmBA,EAA6D,QAApDI,EAAyB1J,EAAehd,cAA+C,IAA3B0mB,GAA2G,QAA7DC,EAAyBD,EAAuB3H,eAAgD,IAA3B4H,OAA/E,EAA4HA,EAAuBtG,oBAAoC,IAAVgG,EAAmBA,EAAQ,GAGv5B,KAAMhG,GAAgB,GAAKA,GAAgB,GACzC,MAAM,IAAIyE,WAAW,oDAEvB,IAAK9kB,EAAOse,SACV,MAAM,IAAIwG,WAAW,yCAEvB,IAAK9kB,EAAOwiB,WACV,MAAM,IAAIsC,WAAW,2CAEvB,IAAIjD,GAAe,EAAIzE,EAAQtc,SAAS2iB,GACxC,KAAK,EAAI5G,EAAO/b,SAAS+gB,GACvB,MAAM,IAAIiD,WAAW,sBAMvB,IAAIvD,GAAiB,EAAIhE,EAAQzc,SAAS+gB,GACtCqB,GAAU,EAAI/F,EAAQrc,SAAS+gB,EAAcN,GAC7C0F,EAAmB,CACrBpC,sBAAuBA,EACvBxE,aAAcA,EACdrgB,OAAQA,EACRwhB,cAAeK,GAiCjB,OA/BagF,EAAUzP,MAAM8P,GAA4BhhB,KAAI,SAAUihB,GACrE,IAAIC,EAAiBD,EAAU,GAC/B,MAAuB,MAAnBC,GAA6C,MAAnBA,GAErBC,EADa/J,EAAQxc,QAAQsmB,IACfD,EAAWnnB,EAAOwiB,YAElC2E,CACT,IAAGlhB,KAAK,IAAImR,MAAMkQ,GAAwBphB,KAAI,SAAUihB,GAEtD,GAAkB,OAAdA,EACF,MAAO,IAET,IAAIC,EAAiBD,EAAU,GAC/B,GAAuB,MAAnBC,EACF,OAmBN,SAA4B7B,GAC1B,IAAIgC,EAAUhC,EAAMnO,MAAMoQ,GAC1B,IAAKD,EACH,OAAOhC,EAET,OAAOgC,EAAQ,GAAGjX,QAAQmX,EAAmB,IAC/C,CAzBaC,CAAmBP,GAE5B,IAAIQ,EAAYtK,EAAQvc,QAAQsmB,GAChC,GAAIO,EAOF,OANkB,OAAZ5I,QAAgC,IAAZA,GAAsBA,EAAQ6I,+BAAgC,EAAIpK,EAAQ2H,0BAA0BgC,KAC5H,EAAI3J,EAAQ6H,qBAAqB8B,EAAWlB,EAAgBjI,OAAOyF,IAEnD,OAAZ1E,QAAgC,IAAZA,GAAsBA,EAAQ8I,gCAAiC,EAAIrK,EAAQyH,2BAA2BkC,KAC9H,EAAI3J,EAAQ6H,qBAAqB8B,EAAWlB,EAAgBjI,OAAOyF,IAE9DkE,EAAUzE,EAASiE,EAAWnnB,EAAOse,SAAU2I,GAExD,GAAIG,EAAehQ,MAAM0Q,GACvB,MAAM,IAAIhD,WAAW,iEAAmEsC,EAAiB,KAE3G,OAAOD,CACT,IAAGlhB,KAAK,GAEV,EA3YA,IAAI4W,EAASpF,EAAuBvY,EAAQ,OACxCie,EAAU1F,EAAuBvY,EAAQ,OACzCke,EAAU3F,EAAuBvY,EAAQ,OACzCme,EAAU5F,EAAuBvY,EAAQ,MACzCoe,EAAU7F,EAAuBvY,EAAQ,OACzCqe,EAAU9F,EAAuBvY,EAAQ,OACzCse,EAAUte,EAAQ,MAClB8nB,EAAUvP,EAAuBvY,EAAQ,MACzC0nB,EAAUnP,EAAuBvY,EAAQ,OACzC4nB,EAAW5nB,EAAQ,MACnB6nB,EAAWtP,EAAuBvY,EAAQ,OAY1CooB,EAAyB,wDAIzBJ,EAA6B,oCAC7BM,EAAsB,eACtBC,EAAoB,MACpBK,EAAgC,WAsXpC7Q,EAAO1B,QAAUA,EAAQzU,oCCxZzB,IAAI2W,EAAyBvY,EAAAA,MAAAA,QAC7BQ,OAAO4c,eAAe/G,EAAS,aAAc,CAC3C1T,OAAO,IAET0T,EAAAA,QAmCA,SAAgB1T,GAEd,OADA,EAAIgb,EAAO/b,SAAS,EAAGsC,WAChBvB,aAAiBH,MAAyC,YAAjC,EAAIqmB,EAASjnB,SAASe,IAAiE,kBAA1CnC,OAAOkR,UAAUmG,SAASnX,KAAKiC,EAC9G,EArCA,IAAIkmB,EAAWtQ,EAAuBvY,EAAQ,OAC1C2d,EAASpF,EAAuBvY,EAAQ,OAqC5C+X,EAAO1B,QAAUA,EAAQzU,qCC3CzB,IAAI2W,EAAyBvY,EAAAA,MAAAA,QAC7BQ,OAAO4c,eAAe/G,EAAS,aAAc,CAC3C1T,OAAO,IAET0T,EAAAA,QAmCA,SAAiBkO,GAEf,IADA,EAAIrG,EAAQtc,SAAS,EAAGsC,aACnB,EAAIyZ,EAAO/b,SAAS2iB,IAAmC,kBAAdA,EAC5C,OAAO,EAET,IAAItjB,GAAO,EAAIgd,EAAQrc,SAAS2iB,GAChC,OAAQ3hB,MAAMgkB,OAAO3lB,GACvB,EAzCA,IAAI0c,EAASpF,EAAuBvY,EAAQ,MACxCie,EAAU1F,EAAuBvY,EAAQ,OACzCke,EAAU3F,EAAuBvY,EAAQ,OAwC7C+X,EAAO1B,QAAUA,EAAQzU,mCC/CzBpB,OAAO4c,eAAe/G,EAAS,aAAc,CAC3C1T,OAAO,IAET0T,EAAAA,QACA,SAA2B2D,GACzB,OAAO,WACL,IAAI6F,EAAU3b,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAE/Eqb,EAAQM,EAAQN,MAAQT,OAAOe,EAAQN,OAASvF,EAAK8O,aAEzD,OADa9O,EAAK+O,QAAQxJ,IAAUvF,EAAK+O,QAAQ/O,EAAK8O,aAExD,CACF,EACA/Q,EAAO1B,QAAUA,EAAQzU,mCCbzBpB,OAAO4c,eAAe/G,EAAS,aAAc,CAC3C1T,OAAO,IAET0T,EAAAA,QACA,SAAyB2D,GACvB,OAAO,SAAUgP,EAAYnJ,GAC3B,IACIoJ,EACJ,GAAgB,gBAFU,OAAZpJ,QAAgC,IAAZA,GAAsBA,EAAQ7D,QAAU8C,OAAOe,EAAQ7D,SAAW,eAEpEhC,EAAKkP,iBAAkB,CACrD,IAAIJ,EAAe9O,EAAKmP,wBAA0BnP,EAAK8O,aACnDvJ,EAAoB,OAAZM,QAAgC,IAAZA,GAAsBA,EAAQN,MAAQT,OAAOe,EAAQN,OAASuJ,EAC9FG,EAAcjP,EAAKkP,iBAAiB3J,IAAUvF,EAAKkP,iBAAiBJ,EACtE,KAAO,CACL,IAAIM,EAAgBpP,EAAK8O,aACrBO,EAAqB,OAAZxJ,QAAgC,IAAZA,GAAsBA,EAAQN,MAAQT,OAAOe,EAAQN,OAASvF,EAAK8O,aACpGG,EAAcjP,EAAKsP,OAAOD,IAAWrP,EAAKsP,OAAOF,EACnD,CAGA,OAAOH,EAFKjP,EAAKuP,iBAAmBvP,EAAKuP,iBAAiBP,GAAcA,EAG1E,CACF,EACAjR,EAAO1B,QAAUA,EAAQzU,mCCtBzBpB,OAAO4c,eAAe/G,EAAS,aAAc,CAC3C1T,OAAO,IAET0T,EAAAA,QACA,SAAsB2D,GACpB,OAAO,SAAUwP,GACf,IAAI3J,EAAU3b,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC/Eqb,EAAQM,EAAQN,MAChBkK,EAAelK,GAASvF,EAAK0P,cAAcnK,IAAUvF,EAAK0P,cAAc1P,EAAK2P,mBAC7E/F,EAAc4F,EAAOtR,MAAMuR,GAC/B,IAAK7F,EACH,OAAO,KAET,IAOIjhB,EAPAinB,EAAgBhG,EAAY,GAC5BiG,EAAgBtK,GAASvF,EAAK6P,cAActK,IAAUvF,EAAK6P,cAAc7P,EAAK8P,mBAC9Ezc,EAAMoE,MAAMgB,QAAQoX,GAuB5B,SAAmBE,EAAOC,GACxB,IAAK,IAAI3c,EAAM,EAAGA,EAAM0c,EAAM5lB,OAAQkJ,IACpC,GAAI2c,EAAUD,EAAM1c,IAClB,OAAOA,EAGX,MACF,CA9B6C4c,CAAUJ,GAAe,SAAUxG,GAC1E,OAAOA,EAAQ6G,KAAKN,EACtB,IAaJ,SAAiBvO,EAAQ2O,GACvB,IAAK,IAAI3c,KAAOgO,EACd,GAAIA,EAAOxJ,eAAexE,IAAQ2c,EAAU3O,EAAOhO,IACjD,OAAOA,EAGX,MACF,CApBS8c,CAAQN,GAAe,SAAUxG,GACpC,OAAOA,EAAQ6G,KAAKN,EACtB,IAKA,OAHAjnB,EAAQqX,EAAKoQ,cAAgBpQ,EAAKoQ,cAAc/c,GAAOA,EAGhD,CACL1K,MAHFA,EAAQkd,EAAQuK,cAAgBvK,EAAQuK,cAAcznB,GAASA,EAI7D0nB,KAHSb,EAAO7X,MAAMiY,EAAczlB,QAKxC,CACF,EAiBA4T,EAAO1B,QAAUA,EAAQzU,mCC9CzBpB,OAAO4c,eAAe/G,EAAS,aAAc,CAC3C1T,OAAO,IAET0T,EAAAA,QACA,SAA6B2D,GAC3B,OAAO,SAAUwP,GACf,IAAI3J,EAAU3b,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC/E0f,EAAc4F,EAAOtR,MAAM8B,EAAKyP,cACpC,IAAK7F,EAAa,OAAO,KACzB,IAAIgG,EAAgBhG,EAAY,GAC5B0G,EAAcd,EAAOtR,MAAM8B,EAAKuQ,cACpC,IAAKD,EAAa,OAAO,KACzB,IAAI3nB,EAAQqX,EAAKoQ,cAAgBpQ,EAAKoQ,cAAcE,EAAY,IAAMA,EAAY,GAGlF,MAAO,CACL3nB,MAHFA,EAAQkd,EAAQuK,cAAgBvK,EAAQuK,cAAcznB,GAASA,EAI7D0nB,KAHSb,EAAO7X,MAAMiY,EAAczlB,QAKxC,CACF,EACA4T,EAAO1B,QAAUA,EAAQzU,mCCrBzBpB,OAAO4c,eAAe/G,EAAS,aAAc,CAC3C1T,OAAO,IAET0T,EAAAA,aAAkB,EAClB,IAAImU,EAAuB,CACzBC,iBAAkB,CAChBC,IAAK,qBACLC,MAAO,+BAETC,SAAU,CACRF,IAAK,WACLC,MAAO,qBAETE,YAAa,gBACbC,iBAAkB,CAChBJ,IAAK,qBACLC,MAAO,+BAETI,SAAU,CACRL,IAAK,WACLC,MAAO,qBAETK,YAAa,CACXN,IAAK,eACLC,MAAO,yBAETM,OAAQ,CACNP,IAAK,SACLC,MAAO,mBAETO,MAAO,CACLR,IAAK,QACLC,MAAO,kBAETQ,YAAa,CACXT,IAAK,eACLC,MAAO,yBAETS,OAAQ,CACNV,IAAK,SACLC,MAAO,mBAETU,aAAc,CACZX,IAAK,gBACLC,MAAO,0BAETW,QAAS,CACPZ,IAAK,UACLC,MAAO,oBAETY,YAAa,CACXb,IAAK,eACLC,MAAO,yBAETa,OAAQ,CACNd,IAAK,SACLC,MAAO,mBAETc,WAAY,CACVf,IAAK,cACLC,MAAO,wBAETe,aAAc,CACZhB,IAAK,gBACLC,MAAO,2BAsBP/M,EAnBiB,SAAwBuB,EAAOwM,EAAO9L,GACzD,IAAI+L,EACAC,EAAarB,EAAqBrL,GAQtC,OANEyM,EADwB,kBAAfC,EACAA,EACU,IAAVF,EACAE,EAAWnB,IAEXmB,EAAWlB,MAAMvZ,QAAQ,YAAaua,EAAM9T,YAEvC,OAAZgI,QAAgC,IAAZA,GAAsBA,EAAQiM,UAChDjM,EAAQkM,YAAclM,EAAQkM,WAAa,EACtC,MAAQH,EAERA,EAAS,OAGbA,CACT,EAEAvV,EAAAA,QAAkBuH,EAClB7F,EAAO1B,QAAUA,EAAQzU,qCCxFzB,IAAI2W,EAAyBvY,EAAAA,MAAAA,QAC7BQ,OAAO4c,eAAe/G,EAAS,aAAc,CAC3C1T,OAAO,IAET0T,EAAAA,aAAkB,EAClB,IAAIsH,EAASpF,EAAuBvY,EAAQ,OAiCxC4d,EAda,CACf3c,MAAM,EAAI0c,EAAO/b,SAAS,CACxBmnB,QApBc,CAChBiD,KAAM,mBACNC,KAAM,aACNC,OAAQ,WACRC,MAAO,cAiBLrD,aAAc,SAEhBtF,MAAM,EAAI7F,EAAO/b,SAAS,CACxBmnB,QAlBc,CAChBiD,KAAM,iBACNC,KAAM,cACNC,OAAQ,YACRC,MAAO,UAeLrD,aAAc,SAEhB/E,UAAU,EAAIpG,EAAO/b,SAAS,CAC5BmnB,QAhBkB,CACpBiD,KAAM,yBACNC,KAAM,yBACNC,OAAQ,qBACRC,MAAO,sBAaLrD,aAAc,UAIlBzS,EAAAA,QAAkBuH,EAClB7F,EAAO1B,QAAUA,EAAQzU,mCCxCzBpB,OAAO4c,eAAe/G,EAAS,aAAc,CAC3C1T,OAAO,IAET0T,EAAAA,aAAkB,EAClB,IAAI+V,EAAuB,CACzB5b,SAAU,qBACV6b,UAAW,mBACX1oB,MAAO,eACPE,SAAU,kBACVyoB,SAAU,cACV3B,MAAO,KAKL/M,EAHiB,SAAwBuB,EAAOoN,EAAOC,EAAWC,GACpE,OAAOL,EAAqBjN,EAC9B,EAEA9I,EAAAA,QAAkBuH,EAClB7F,EAAO1B,QAAUA,EAAQzU,oCCjBzB,IAAI2W,EAAyBvY,EAAAA,MAAAA,QAC7BQ,OAAO4c,eAAe/G,EAAS,aAAc,CAC3C1T,OAAO,IAET0T,EAAAA,aAAkB,EAClB,IAAIsH,EAASpF,EAAuBvY,EAAQ,OA8IxC4d,EA5BW,CACb8B,cAxBkB,SAAuBgH,EAAa+F,GACtD,IAAIpP,EAASuJ,OAAOF,GAShBgG,EAASrP,EAAS,IACtB,GAAIqP,EAAS,IAAMA,EAAS,GAC1B,OAAQA,EAAS,IACf,KAAK,EACH,OAAOrP,EAAS,KAClB,KAAK,EACH,OAAOA,EAAS,KAClB,KAAK,EACH,OAAOA,EAAS,KAGtB,OAAOA,EAAS,IAClB,EAGEgC,KAAK,EAAI1B,EAAO/b,SAAS,CACvB0nB,OApHY,CACdqD,OAAQ,CAAC,IAAK,KACdC,YAAa,CAAC,KAAM,MACpBC,KAAM,CAAC,gBAAiB,gBAkHtB/D,aAAc,SAEhBzI,SAAS,EAAI1C,EAAO/b,SAAS,CAC3B0nB,OAnHgB,CAClBqD,OAAQ,CAAC,IAAK,IAAK,IAAK,KACxBC,YAAa,CAAC,KAAM,KAAM,KAAM,MAChCC,KAAM,CAAC,cAAe,cAAe,cAAe,gBAiHlD/D,aAAc,OACdS,iBAAkB,SAA0BlJ,GAC1C,OAAOA,EAAU,CACnB,IAEFrW,OAAO,EAAI2T,EAAO/b,SAAS,CACzB0nB,OAhHc,CAChBqD,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAChEC,YAAa,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAC3FC,KAAM,CAAC,UAAW,WAAY,QAAS,QAAS,MAAO,OAAQ,OAAQ,SAAU,YAAa,UAAW,WAAY,aA8GnH/D,aAAc,SAEhB9kB,KAAK,EAAI2Z,EAAO/b,SAAS,CACvB0nB,OA/GY,CACdqD,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACvCR,MAAO,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAC5CS,YAAa,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACxDC,KAAM,CAAC,SAAU,SAAU,UAAW,YAAa,WAAY,SAAU,aA4GvE/D,aAAc,SAEhBtH,WAAW,EAAI7D,EAAO/b,SAAS,CAC7B0nB,OA7GkB,CACpBqD,OAAQ,CACNG,GAAI,IACJC,GAAI,IACJC,SAAU,KACVC,KAAM,IACNC,QAAS,UACTC,UAAW,YACXC,QAAS,UACTC,MAAO,SAETT,YAAa,CACXE,GAAI,KACJC,GAAI,KACJC,SAAU,WACVC,KAAM,OACNC,QAAS,UACTC,UAAW,YACXC,QAAS,UACTC,MAAO,SAETR,KAAM,CACJC,GAAI,OACJC,GAAI,OACJC,SAAU,WACVC,KAAM,OACNC,QAAS,UACTC,UAAW,YACXC,QAAS,UACTC,MAAO,UAiFPvE,aAAc,OACdI,iBA/E4B,CAC9ByD,OAAQ,CACNG,GAAI,IACJC,GAAI,IACJC,SAAU,KACVC,KAAM,IACNC,QAAS,iBACTC,UAAW,mBACXC,QAAS,iBACTC,MAAO,YAETT,YAAa,CACXE,GAAI,KACJC,GAAI,KACJC,SAAU,WACVC,KAAM,OACNC,QAAS,iBACTC,UAAW,mBACXC,QAAS,iBACTC,MAAO,YAETR,KAAM,CACJC,GAAI,OACJC,GAAI,OACJC,SAAU,WACVC,KAAM,OACNC,QAAS,iBACTC,UAAW,mBACXC,QAAS,iBACTC,MAAO,aAmDPlE,uBAAwB,UAI5B9S,EAAAA,QAAkBuH,EAClB7F,EAAO1B,QAAUA,EAAQzU,qCCrJzB,IAAI2W,EAAyBvY,EAAAA,MAAAA,QAC7BQ,OAAO4c,eAAe/G,EAAS,aAAc,CAC3C1T,OAAO,IAET0T,EAAAA,aAAkB,EAClB,IAAIsH,EAASpF,EAAuBvY,EAAQ,OAiGxC4d,EA1CQ,CACV8B,eAAe,EAvDHnH,EAAuBvY,EAAQ,OAuDhB4B,SAAS,CAClC6nB,aAvD4B,wBAwD5Bc,aAvD4B,OAwD5BH,cAAe,SAAuBznB,GACpC,OAAO2qB,SAAS3qB,EAAO,GACzB,IAEF0c,KAAK,EAAI1B,EAAO/b,SAAS,CACvB8nB,cA5DmB,CACrBiD,OAAQ,UACRC,YAAa,6DACbC,KAAM,8DA0DJlD,kBAAmB,OACnBE,cAzDmB,CACrB0D,IAAK,CAAC,MAAO,YAyDXzD,kBAAmB,QAErBzJ,SAAS,EAAI1C,EAAO/b,SAAS,CAC3B8nB,cA1DuB,CACzBiD,OAAQ,WACRC,YAAa,YACbC,KAAM,kCAwDJlD,kBAAmB,OACnBE,cAvDuB,CACzB0D,IAAK,CAAC,KAAM,KAAM,KAAM,OAuDtBzD,kBAAmB,MACnBM,cAAe,SAAuBoD,GACpC,OAAOA,EAAQ,CACjB,IAEFxjB,OAAO,EAAI2T,EAAO/b,SAAS,CACzB8nB,cA3DqB,CACvBiD,OAAQ,eACRC,YAAa,sDACbC,KAAM,6FAyDJlD,kBAAmB,OACnBE,cAxDqB,CACvB8C,OAAQ,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACtFY,IAAK,CAAC,OAAQ,MAAO,QAAS,OAAQ,QAAS,QAAS,QAAS,OAAQ,MAAO,MAAO,MAAO,QAuD5FzD,kBAAmB,QAErB9lB,KAAK,EAAI2Z,EAAO/b,SAAS,CACvB8nB,cAxDmB,CACrBiD,OAAQ,YACRR,MAAO,2BACPS,YAAa,kCACbC,KAAM,gEAqDJlD,kBAAmB,OACnBE,cApDmB,CACrB8C,OAAQ,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACnDY,IAAK,CAAC,OAAQ,MAAO,OAAQ,MAAO,OAAQ,MAAO,SAmDjDzD,kBAAmB,QAErBtI,WAAW,EAAI7D,EAAO/b,SAAS,CAC7B8nB,cApDyB,CAC3BiD,OAAQ,6DACRY,IAAK,kFAmDH5D,kBAAmB,MACnBE,cAlDyB,CAC3B0D,IAAK,CACHT,GAAI,MACJC,GAAI,MACJC,SAAU,OACVC,KAAM,OACNC,QAAS,WACTC,UAAW,aACXC,QAAS,WACTC,MAAO,WA0CPvD,kBAAmB,SAIvBzT,EAAAA,QAAkBuH,EAClB7F,EAAO1B,QAAUA,EAAQzU,oCCxGzB,IAAI2W,EAAyBvY,EAAAA,MAAAA,QAC7BQ,OAAO4c,eAAe/G,EAAS,aAAc,CAC3C1T,OAAO,IAET0T,EAAAA,aAAkB,EAClB,IAAIsH,EAASpF,EAAuBvY,EAAQ,OACxCie,EAAU1F,EAAuBvY,EAAQ,OACzCke,EAAU3F,EAAuBvY,EAAQ,OACzCme,EAAU5F,EAAuBvY,EAAQ,MACzCoe,EAAU7F,EAAuBvY,EAAQ,OAsBzC4d,EAZS,CACX6P,KAAM,QACNC,eAAgB/P,EAAO/b,QACvB0hB,WAAYrF,EAAQrc,QACpB+rB,eAAgBzP,EAAQtc,QACxBwd,SAAUjB,EAAQvc,QAClBsW,MAAOkG,EAAQxc,QACfie,QAAS,CACPsB,aAAc,EACdwE,sBAAuB,IAI3BtP,EAAAA,QAAkBuH,EAClB7F,EAAO1B,QAAUA,EAAQzU,qCCjCzB,IAAI2W,EAAyBvY,EAAAA,MAAAA,QAC7BQ,OAAO4c,eAAe/G,EAAS,aAAc,CAC3C1T,OAAO,IAET0T,EAAAA,QAsBA,SAAyBkO,EAAWsC,IAClC,EAAI5I,EAAQrc,SAAS,EAAGsC,WACxB,IAAI4iB,GAAS,EAAI5I,EAAQtc,SAASilB,GAClC,OAAO,EAAIlJ,EAAO/b,SAAS2iB,GAAYuC,EACzC,EAzBA,IAAInJ,EAASpF,EAAuBvY,EAAQ,OACxCie,EAAU1F,EAAuBvY,EAAQ,OACzCke,EAAU3F,EAAuBvY,EAAQ,MAwB7C+X,EAAO1B,QAAUA,EAAQzU,qCC/BzB,IAAI2W,EAAyBvY,EAAAA,MAAAA,QAC7BQ,OAAO4c,eAAe/G,EAAS,aAAc,CAC3C1T,OAAO,IAET0T,EAAAA,QAiCA,SAAgBuX,IACd,EAAIjQ,EAAO/b,SAAS,EAAGsC,WACvB,IAAI2pB,EAASrtB,OAAOkR,UAAUmG,SAASnX,KAAKktB,GAG5C,OAAIA,aAAoBprB,MAA4C,YAApC,EAAIqmB,EAASjnB,SAASgsB,IAAqC,kBAAXC,EAEvE,IAAIrrB,KAAKorB,EAASnrB,WACI,kBAAbmrB,GAAoC,oBAAXC,EAClC,IAAIrrB,KAAKorB,IAES,kBAAbA,GAAoC,oBAAXC,GAAoD,qBAAZ1V,UAE3EA,QAAQC,KAAK,sNAEbD,QAAQC,MAAK,IAAI0V,OAAQC,QAEpB,IAAIvrB,KAAKmkB,KAEpB,EAnDA,IAAIkC,EAAWtQ,EAAuBvY,EAAQ,OAC1C2d,EAASpF,EAAuBvY,EAAQ,OAmD5C+X,EAAO1B,QAAUA,EAAQzU,uBC3DzB,IAAIosB,EAAahuB,EAAQ,KACrBiuB,EAAcjuB,EAAQ,MACtBkuB,EAAKluB,EAAQ,MACbmuB,EAAUnuB,EAAQ,MAClB4X,EAAQ5X,EAAQ,MAChB0C,EAAS1C,EAAQ,MAEjByC,EAAUD,KAAKkP,UAAUjP,QAE7B,SAAS2rB,EAAUC,EAAQC,EAAUzO,GACnC,IAAI0O,EAAO1O,GAAW,CAAC,EAGvB,SAAI0O,EAAKC,OAASN,EAAGG,EAAQC,GAAYD,IAAWC,MAK/CD,IAAWC,GAA+B,kBAAXD,GAA2C,kBAAbC,EACzDC,EAAKC,OAASN,EAAGG,EAAQC,GAAYD,GAAUC,EAgC1D,SAAkBtX,EAAGC,EAAGsX,GAEtB,IAAIrhB,EAAGG,EACP,UAAW2J,WAAaC,EAAK,OAAO,EACpC,GAAIwX,EAAkBzX,IAAMyX,EAAkBxX,GAAM,OAAO,EAG3D,GAAID,EAAEtF,YAAcuF,EAAEvF,UAAa,OAAO,EAE1C,GAAIuc,EAAYjX,KAAOiX,EAAYhX,GAAM,OAAO,EAEhD,IAAIyX,EAAWP,EAAQnX,GACnB2X,EAAWR,EAAQlX,GACvB,GAAIyX,IAAaC,EAAY,OAAO,EACpC,GAAID,GAAYC,EACd,OAAO3X,EAAEW,SAAWV,EAAEU,QAAUC,EAAMZ,KAAOY,EAAMX,GAGrD,GAAIvU,EAAOsU,IAAMtU,EAAOuU,GACtB,OAAOxU,EAAQ/B,KAAKsW,KAAOvU,EAAQ/B,KAAKuW,GAG1C,IAAI2X,EAAYC,EAAS7X,GACrB8X,EAAYD,EAAS5X,GACzB,GAAI2X,IAAcE,EAAa,OAAO,EACtC,GAAIF,GAAaE,EAAW,CAC1B,GAAI9X,EAAE7S,SAAW8S,EAAE9S,OAAU,OAAO,EACpC,IAAK+I,EAAI,EAAGA,EAAI8J,EAAE7S,OAAQ+I,IACxB,GAAI8J,EAAE9J,KAAO+J,EAAE/J,GAAM,OAAO,EAE9B,OAAO,CACT,CAEA,UAAW8J,WAAaC,EAAK,OAAO,EAEpC,IACE,IAAI8X,EAAKf,EAAWhX,GAChBgY,EAAKhB,EAAW/W,EACtB,CAAE,MAAO7V,GACP,OAAO,CACT,CAEA,GAAI2tB,EAAG5qB,SAAW6qB,EAAG7qB,OAAU,OAAO,EAMtC,IAHA4qB,EAAGE,OACHD,EAAGC,OAEE/hB,EAAI6hB,EAAG5qB,OAAS,EAAG+I,GAAK,EAAGA,IAC9B,GAAI6hB,EAAG7hB,IAAM8hB,EAAG9hB,GAAM,OAAO,EAG/B,IAAKA,EAAI6hB,EAAG5qB,OAAS,EAAG+I,GAAK,EAAGA,IAE9B,IAAKkhB,EAAUpX,EADf3J,EAAM0hB,EAAG7hB,IACc+J,EAAE5J,GAAMkhB,GAAS,OAAO,EAGjD,OAAO,CACT,CA9ESW,CAASb,EAAQC,EAAUC,GACpC,CAEA,SAASE,EAAkB9rB,GACzB,OAAiB,OAAVA,QAA4ByB,IAAVzB,CAC3B,CAEA,SAASksB,EAAS5T,GAChB,SAAKA,GAAkB,kBAANA,GAAsC,kBAAbA,EAAE9W,UAGtB,oBAAX8W,EAAEkU,MAA0C,oBAAZlU,EAAEtJ,SAGzCsJ,EAAE9W,OAAS,GAAqB,kBAAT8W,EAAE,IAI/B,CA8DAlD,EAAO1B,QAAU+X,yBC7GjB,IAAIgB,EAAoB,SAA2BzsB,GAClD,OAID,SAAyBA,GACxB,QAASA,GAA0B,kBAAVA,CAC1B,CANQ0sB,CAAgB1sB,KAQxB,SAAmBA,GAClB,IAAI2sB,EAAc9uB,OAAOkR,UAAUmG,SAASnX,KAAKiC,GAEjD,MAAuB,oBAAhB2sB,GACa,kBAAhBA,GAQL,SAAwB3sB,GACvB,OAAOA,EAAMmV,WAAayX,CAC3B,CATKC,CAAe7sB,EACpB,CAbM8sB,CAAU9sB,EAChB,EAeA,IACI4sB,EADiC,oBAAXG,QAAyBA,OAAOC,IAClBD,OAAOC,IAAI,iBAAmB,MAUtE,SAASC,EAA8BjtB,EAAOkd,GAC7C,OAA0B,IAAlBA,EAAQvd,OAAmBud,EAAQuP,kBAAkBzsB,GAC1DktB,GANiBC,EAMKntB,EALlB8O,MAAMgB,QAAQqd,GAAO,GAAK,CAAC,GAKDntB,EAAOkd,GACrCld,EAPJ,IAAqBmtB,CAQrB,CAEA,SAASC,EAAkB3mB,EAAQuO,EAAQkI,GAC1C,OAAOzW,EAAO+Q,OAAOxC,GAAQ3Q,KAAI,SAASkP,GACzC,OAAO0Z,EAA8B1Z,EAAS2J,EAC/C,GACD,CAkBA,SAASmQ,EAAQ5mB,GAChB,OAAO5I,OAAO8E,KAAK8D,GAAQ+Q,OAT5B,SAAyC/Q,GACxC,OAAO5I,OAAOyvB,sBACXzvB,OAAOyvB,sBAAsB7mB,GAAQjC,QAAO,SAAS+oB,GACtD,OAAO1vB,OAAO2vB,qBAAqBzvB,KAAK0I,EAAQ8mB,EACjD,IACE,EACJ,CAGmCE,CAAgChnB,GACnE,CAEA,SAASinB,EAAmBhV,EAAQqC,GACnC,IACC,OAAOA,KAAYrC,CACpB,CAAE,MAAMiV,GACP,OAAO,CACR,CACD,CASA,SAASC,EAAYnnB,EAAQuO,EAAQkI,GACpC,IAAI2Q,EAAc,CAAC,EAiBnB,OAhBI3Q,EAAQuP,kBAAkBhmB,IAC7B4mB,EAAQ5mB,GAAQhC,SAAQ,SAASiG,GAChCmjB,EAAYnjB,GAAOuiB,EAA8BxmB,EAAOiE,GAAMwS,EAC/D,IAEDmQ,EAAQrY,GAAQvQ,SAAQ,SAASiG,IAblC,SAA0BjE,EAAQiE,GACjC,OAAOgjB,EAAmBjnB,EAAQiE,MAC5B7M,OAAOqR,eAAenR,KAAK0I,EAAQiE,IACpC7M,OAAO2vB,qBAAqBzvB,KAAK0I,EAAQiE,GAC/C,EAUMojB,CAAiBrnB,EAAQiE,KAIzBgjB,EAAmBjnB,EAAQiE,IAAQwS,EAAQuP,kBAAkBzX,EAAOtK,IACvEmjB,EAAYnjB,GAhDf,SAA0BA,EAAKwS,GAC9B,IAAKA,EAAQ6Q,YACZ,OAAOb,EAER,IAAIa,EAAc7Q,EAAQ6Q,YAAYrjB,GACtC,MAA8B,oBAAhBqjB,EAA6BA,EAAcb,CAC1D,CA0CsBc,CAAiBtjB,EAAKwS,EAAtB8Q,CAA+BvnB,EAAOiE,GAAMsK,EAAOtK,GAAMwS,GAE5E2Q,EAAYnjB,GAAOuiB,EAA8BjY,EAAOtK,GAAMwS,GAEhE,IACO2Q,CACR,CAEA,SAASX,EAAUzmB,EAAQuO,EAAQkI,IAClCA,EAAUA,GAAW,CAAC,GACd+Q,WAAa/Q,EAAQ+Q,YAAcb,EAC3ClQ,EAAQuP,kBAAoBvP,EAAQuP,mBAAqBA,EAGzDvP,EAAQ+P,8BAAgCA,EAExC,IAAIiB,EAAgBpf,MAAMgB,QAAQkF,GAIlC,OAFgCkZ,IADZpf,MAAMgB,QAAQrJ,GAKvBynB,EACHhR,EAAQ+Q,WAAWxnB,EAAQuO,EAAQkI,GAEnC0Q,EAAYnnB,EAAQuO,EAAQkI,GAJ5B+P,EAA8BjY,EAAQkI,EAM/C,CAEAgQ,EAAUiB,IAAM,SAAsB/G,EAAOlK,GAC5C,IAAKpO,MAAMgB,QAAQsX,GAClB,MAAM,IAAI+D,MAAM,qCAGjB,OAAO/D,EAAM/W,QAAO,SAAS+d,EAAMzZ,GAClC,OAAOuY,EAAUkB,EAAMzZ,EAAMuI,EAC9B,GAAG,CAAC,EACL,EAEA,IAAImR,EAAcnB,EAElB9X,EAAO1B,QAAU2a,+BClIjB,IAAIjU,EAAkB/c,EAAQ,MAE1BixB,EAAejxB,EAAQ,MACvB2c,EAAa3c,EAAQ,MAErBkxB,EAAOlxB,EAAQ,MAGnB+X,EAAO1B,QAAU,SAChBzE,EACA8L,EACA/a,GAEA,IAAKiP,GAAuB,kBAARA,GAAmC,oBAARA,EAC9C,MAAM,IAAI+K,EAAW,0CAEtB,GAAwB,kBAAbe,GAA6C,kBAAbA,EAC1C,MAAM,IAAIf,EAAW,4CAEtB,GAAIzY,UAAUC,OAAS,GAA6B,mBAAjBD,UAAU,IAAqC,OAAjBA,UAAU,GAC1E,MAAM,IAAIyY,EAAW,2DAEtB,GAAIzY,UAAUC,OAAS,GAA6B,mBAAjBD,UAAU,IAAqC,OAAjBA,UAAU,GAC1E,MAAM,IAAIyY,EAAW,yDAEtB,GAAIzY,UAAUC,OAAS,GAA6B,mBAAjBD,UAAU,IAAqC,OAAjBA,UAAU,GAC1E,MAAM,IAAIyY,EAAW,6DAEtB,GAAIzY,UAAUC,OAAS,GAA6B,mBAAjBD,UAAU,GAC5C,MAAM,IAAIyY,EAAW,2CAGtB,IAAIwU,EAAgBjtB,UAAUC,OAAS,EAAID,UAAU,GAAK,KACtDktB,EAAcltB,UAAUC,OAAS,EAAID,UAAU,GAAK,KACpDmtB,EAAkBntB,UAAUC,OAAS,EAAID,UAAU,GAAK,KACxDotB,EAAQptB,UAAUC,OAAS,GAAID,UAAU,GAGzCqtB,IAASL,GAAQA,EAAKtf,EAAK8L,GAE/B,GAAIX,EACHA,EAAgBnL,EAAK8L,EAAU,CAC9BtE,aAAkC,OAApBiY,GAA4BE,EAAOA,EAAKnY,cAAgBiY,EACtEnY,WAA8B,OAAlBiY,GAA0BI,EAAOA,EAAKrY,YAAciY,EAChExuB,MAAOA,EACPwW,SAA0B,OAAhBiY,GAAwBG,EAAOA,EAAKpY,UAAYiY,QAErD,KAAIE,IAAWH,GAAkBC,GAAgBC,GAIvD,MAAM,IAAIJ,EAAa,+GAFvBrf,EAAI8L,GAAY/a,CAGjB,CACD,+BCrDA,IAAI2C,EAAOtF,EAAQ,KACfwxB,EAA+B,oBAAX9B,QAAkD,kBAAlBA,OAAO,OAE3D+B,EAAQjxB,OAAOkR,UAAUmG,SACzBsC,EAAS1I,MAAMC,UAAUyI,OACzBuX,EAAqB1xB,EAAQ,MAM7B2xB,EAAsB3xB,EAAQ,IAARA,GAEtBod,EAAiB,SAAU/B,EAAQ5V,EAAM9C,EAAOqnB,GACnD,GAAIvkB,KAAQ4V,EACX,IAAkB,IAAd2O,GACH,GAAI3O,EAAO5V,KAAU9C,EACpB,YAEK,GAXa,oBADKivB,EAYF5H,IAX8B,sBAAnByH,EAAM/wB,KAAKkxB,KAWP5H,IACrC,OAbc,IAAU4H,EAiBtBD,EACHD,EAAmBrW,EAAQ5V,EAAM9C,GAAO,GAExC+uB,EAAmBrW,EAAQ5V,EAAM9C,EAEnC,EAEIkvB,EAAmB,SAAUxW,EAAQrU,GACxC,IAAI8qB,EAAa5tB,UAAUC,OAAS,EAAID,UAAU,GAAK,CAAC,EACpD/D,EAAQmF,EAAK0B,GACbwqB,IACHrxB,EAAQga,EAAOzZ,KAAKP,EAAOK,OAAOyvB,sBAAsBjpB,KAEzD,IAAK,IAAIkG,EAAI,EAAGA,EAAI/M,EAAMgE,OAAQ+I,GAAK,EACtCkQ,EAAe/B,EAAQlb,EAAM+M,GAAIlG,EAAI7G,EAAM+M,IAAK4kB,EAAW3xB,EAAM+M,IAEnE,EAEA2kB,EAAiBF,sBAAwBA,EAEzC5Z,EAAO1B,QAAUwb,cCxBhB,SAASE,GAAQ,aAIhB,SAASC,IACP,OAAOC,EAASD,wBAClB,CAEA,SAASnwB,EAAcqwB,GACrB,OAAOD,EAASpwB,cAAcqwB,EAChC,CAEA,SAASC,EAAgBhuB,EAAQsB,GAC/B,IAAKtB,EAAQ,MAAM,IAAI2pB,MACrB,uBACEroB,EACF,6CAEJ,CAEA,SAAS2sB,EAAcC,GACrB,GAAqB,IAAjBA,EAAMluB,OACR,OAAOmuB,EAAoBD,EAAM,IAEnC,IAAK,IACHE,EAAWP,IACXQ,EAAO7gB,EAAMjR,KAAK2xB,GAClBnlB,EAAI,EAAGA,EAAImlB,EAAMluB,OAAQ+I,IAEzBqlB,EAASE,YAAYH,EAAoBE,EAAKtlB,KAEhD,OAAOqlB,CACT,CAEA,SAASD,EAAoBrhB,GAC3B,MAAuB,kBAATA,EAAoBA,EAAOghB,EAASS,eAAezhB,EACnE,CAEA,IAAI,IACF0hB,EACAjV,EACAkV,EACAC,EACAC,EACAb,EAAWF,EAAOE,SAClBc,EAAMvyB,OAAOkR,UAAUG,eACvBuL,EAAiB5c,OAAO4c,gBAAkB,SAAU/B,EAAQqC,EAAUsV,GASpE,OARID,EAAIryB,KAAKsyB,EAAY,SACvB3X,EAAOqC,GAAYsV,EAAWrwB,OAE1BowB,EAAIryB,KAAKsyB,EAAY,QACvB3X,EAAO4X,iBAAiBvV,EAAUsV,EAAWvb,KAC3Csb,EAAIryB,KAAKsyB,EAAY,QACvB3X,EAAO6X,iBAAiBxV,EAAUsV,EAAWvY,MAE1CY,CACT,EACA3P,EAAU,GAAGA,SAAW,SAAiB/I,GAEvC,IADA,IAAIwB,EAASpD,KAAKoD,OACZA,KACApD,KAAKoD,KAAYxB,IAIvB,OAAOwB,CACT,EAUAgvB,EAAe,SAAUliB,GACvB,IACEmiB,EAAwC,qBAAnBniB,EAAKnP,UAC1BA,EAAYsxB,EACTniB,EAAKoiB,aAAa,UAAY,GAAMpiB,EAAKnP,UAC5CwxB,EAAQF,GAAoC,kBAAdtxB,EAC9Ba,GAAS2wB,EACNF,EAActxB,EAAYA,EAAUyxB,QACrCzxB,GACAsP,QAAQoiB,EAAM,IAEd7wB,EAAMwB,QACRsvB,EAAWtmB,KAAK+M,MACdnZ,KACA4B,EAAM+wB,MAAMC,IAGhB5yB,KAAK6yB,OAASN,EACdvyB,KAAKuvB,EAAIrf,CACX,EACA4iB,EAAsB,CACpBpc,IAAK,WACH,OAAO,IAAI0b,EAAapyB,KAC1B,EACA0Z,IAAK,WAAW,GAElB+Y,EAAO,aACPG,EAAS,MAETG,EAAa,YACbC,EAAS,SAAgB5U,EAAO6U,GAU9B,OATIjzB,KAAKkzB,SAAS9U,GACX6U,GAEHjzB,KAAKmzB,OAAO/U,SAEI/a,IAAV4vB,GAAuBA,KAC/BA,GAAQ,EACRjzB,KAAKozB,IAAIhV,MAEF6U,CACX,EACAI,EAA4BrC,EAAOsC,kBAAoBA,iBAAiB3iB,UACxE4iB,EAAOvC,EAAOuC,KACdC,GAAiBD,GAAQ/d,SAAS7E,UAClC8iB,EAAgBzC,EAAOyC,eAAiBF,EACxCG,EAAyBD,GAAiBA,EAAc9iB,UACxDgjB,EAAe3C,EAAO2C,aACtBC,EAAwBD,GAAgBA,EAAahjB,UACrDkjB,GAAoB7C,EAAOxb,SAAW+d,GAAQvC,EAAO8C,aAAanjB,UAClEojB,EAAoB/C,EAAO+C,mBAAqBjzB,EAAc,UAAUqV,YACxE6d,EAAeD,EAAkBpjB,UAAUwiB,OAC3Cc,EAAajD,EAAOiD,WACpBvB,EAAa,CACX,UACEmB,EAAiBK,iBACjBL,EAAiBM,uBACjBN,EAAiBO,sBACjBP,EAAiBQ,oBACjBR,EAAiBS,mBACjBT,EAAiBU,kBACjB,SAAiBhkB,GACf,IAAIikB,EAAax0B,KAAKw0B,WACtB,QAASA,IAAe,EAAI7pB,EAAQhL,KAClC60B,EAAWhkB,iBAAiBD,GAC5BvQ,KAEJ,EAEF,UAAW,SAAiBuQ,GAE1B,IADA,IAAuBkkB,EAAnBD,EAAax0B,MAGdy0B,EAAUD,GAAcA,EAAWC,WACnCD,EAAWC,QAAQlkB,IAEpBikB,EAAaA,EAAWA,WAE1B,OAAOC,EAAUD,EAAa,IAChC,EACA,UAAW,WACT,IAAIE,EAAa10B,KAAK00B,WAClBxkB,EAAOmhB,EAAcluB,WACrBuxB,EACF10B,KAAK20B,aAAazkB,EAAMwkB,GAExB10B,KAAK0xB,YAAYxhB,EAErB,EACA,SAAU,WACRlQ,KAAK0xB,YAAYL,EAAcluB,WACjC,EACA,SAAU,WACR,IAAIqxB,EAAax0B,KAAKw0B,WAClBA,GACFA,EAAWG,aACTtD,EAAcluB,WAAYnD,KAGhC,EACA,QAAS,WACP,IAAIw0B,EAAax0B,KAAKw0B,WAClBI,EAAc50B,KAAK40B,YACnB1kB,EAAOmhB,EAAcluB,WACrBqxB,IACEI,EACFJ,EAAWG,aAAazkB,EAAM0kB,GAE9BJ,EAAW9C,YAAYxhB,GAG7B,EAEA,kBAAmB,SAAyBxL,EAAMuuB,GAChD,IAAI4B,EAAM70B,KAAK80B,aAAapwB,GAW5B,OAVI,EAAIvB,UAAUC,OACZyxB,IAAQ5B,EACVjzB,KAAK+0B,gBAAgBrwB,GACduuB,IAAU4B,GACjB70B,KAAKg1B,aAAatwB,EAAM,IAEnBmwB,EACP70B,KAAK+0B,gBAAgBrwB,GAErB1E,KAAKg1B,aAAatwB,EAAM,IACnB1E,KAAK80B,aAAapwB,EAC3B,EAEA,UAAW,WACT1E,KAAKi1B,YAAY9b,MAAMnZ,KAAMmD,UAC/B,EACA,cAAe,WACb,IAAIqxB,EAAax0B,KAAKw0B,WAClBA,GACFA,EAAWU,aACT7D,EAAcluB,WACdnD,KAGN,EACA,SAAU,WACR,IAAIw0B,EAAax0B,KAAKw0B,WAClBA,GACFA,EAAWW,YAAYn1B,KAE3B,GAEF4Q,EAAQ8hB,EAAW9hB,MACnBzE,EAAIumB,EAAWtvB,OAAQ+I,EAAGA,GAAK,EA2B/B,IAzBAwQ,EAAW+V,EAAWvmB,EAAI,MACR0nB,IAChBA,EAAiBlX,GAAY+V,EAAWvmB,EAAI,IAK7B,WAAbwQ,GAA0BqX,EAAaoB,SAExCrB,EAAkBpjB,UAAUgM,GAAY,WACvC,OAAO,EAAIxZ,UAAUC,OACnB4wB,EAAa7a,MAAMnZ,KAAMmD,WACzB0wB,EAAiBV,OAAOxzB,KAAKK,KACjC,GAAGo1B,OAAQ,GAGT,gDAAgDjM,KAAKxM,KACnD8W,KAAmB9W,KAAY+W,KACjCA,EAAuB/W,GAAY+V,EAAWvmB,EAAI,IAEhDwnB,KAAkBhX,KAAYiX,KAChCA,EAAsBjX,GAAY+V,EAAWvmB,EAAI,KAIjD,uBAAuBgd,KAAKxM,GAC9B,GAAI0W,EACI1W,KAAY0W,IAChBA,EAA0B1W,GAAY+V,EAAWvmB,EAAI,SAGvD,IACE8kB,IAAyB9a,YAAYxF,UAAUgM,GAAY+V,EAAWvmB,EAAI,EAC5E,CAAE,MAAMkpB,GAAM,CAQW,IAASZ,EADnC3zB,EAAc,KAAK2zB,QAAQ,OAC9BZ,EAAiBlX,IAAqB8X,EASpCZ,EAAiBlX,GARV,SAAUpM,GACf,OAAOkkB,EAAQ90B,KACbK,KAAKw0B,WACHx0B,KACAixB,IAAyBS,YAAY1xB,MACvCuQ,EAEJ,IAKJ6hB,EAAazhB,UAAY,CACvBvN,OAAQ,EACRgwB,IAAK,WACH,IAAI,IAAWhV,EAAPpO,EAAI,EAAUA,EAAI7M,UAAUC,OAAQ4M,IAC1CoO,EAAQjb,UAAU6M,GACdhQ,KAAKkzB,SAAS9U,IAChBsU,EAAWtmB,KAAKzM,KAAKK,KAAM2c,GAG3B3c,KAAK6yB,OACP7yB,KAAKuvB,EAAEyF,aAAa,QAAS,GAAKh1B,MAElCA,KAAKuvB,EAAExuB,UAAY,GAAKf,IAE5B,EACAkzB,SAAW,SAASvoB,GAClB,OAAO,SAAkByT,GAEvB,OADAjS,EAAIxB,EAAQhL,KAAKK,KAAM2c,EArOb,SAAUyB,GACtB,IAAKA,EACH,KAAM,cACD,GAAIwU,EAAOzJ,KAAK/K,GACrB,KAAM,wBAER,OAAOA,CACT,CA8NsCkX,CAAYlX,KACtC,EAAIjS,CACd,CACF,CALW,CAKT,GAAGxB,SAAW,SAAUyT,GAExB,IADAjS,EAAInM,KAAKoD,OACH+I,KAAOnM,KAAKmM,KAAOiS,IACzB,OAAOjS,CACT,GACAopB,KAAM,SAAcppB,GAClB,OAAOnM,KAAKmM,IAAM,IACpB,EACAgnB,OAAQ,WACN,IAAI,IAAW/U,EAAPpO,EAAI,EAAUA,EAAI7M,UAAUC,OAAQ4M,IAC1CoO,EAAQjb,UAAU6M,GACfhQ,KAAKkzB,SAAS9U,IACfsU,EAAW8C,OAAO71B,KAAKK,KAAMmM,EAAG,GAGhCnM,KAAK6yB,OACP7yB,KAAKuvB,EAAEyF,aAAa,QAAS,GAAKh1B,MAElCA,KAAKuvB,EAAExuB,UAAY,GAAKf,IAE5B,EACAgzB,OAAQA,EACRlc,SAAU,WACR,OAAO4b,EAAW1sB,KAAKrG,KAAKK,KA3NtB,IA4NR,GAGEi0B,KAAgBlB,KAAckB,EAAWtjB,YAC3C0L,EAAe4X,EAAWtjB,UAAWoiB,EAAYD,GAO7CC,KAAc7B,EAASuE,kBAK3B3D,EAAqBhxB,EAAc,OAAOiyB,IACvBK,IAAI,IAAK,IAAK,KAC7B,OAAYtB,IAGR,QADND,EAAqBC,EAAmB3b,YAAYxF,aAGlDkhB,EAAqBb,EAAOc,mBAAmBnhB,WAEjDohB,EAAkB,SAAU2D,GAC1B,OAAO,WAEL,IADA,IAAIvpB,EAAI,EACDA,EAAIhJ,UAAUC,QACnBsyB,EAAS/1B,KAAKK,KAAMmD,UAAUgJ,KAElC,CACF,EACA0lB,EAAmBuB,IAAMrB,EAAgBF,EAAmBuB,KAC5DvB,EAAmBsB,OAASpB,EAAgBF,EAAmBsB,QAE/DtB,EAAmBmB,OAASA,IAxB9B3W,EAAewX,EAAkBd,EAAYD,GA4BzC,aAAcU,GAClBnX,EAAemX,EAAe,WAAY,CACxC5xB,MAAO,SAAUsL,GACf,KAAOA,GAAMA,IAAOlN,MAAMkN,EAAKA,EAAGsnB,WAClC,OAAOx0B,OAASkN,CAClB,IAIE,SAAUgkB,GACd7U,EAAe6U,EAAU,OAAQ,CAC/Bxa,IAAK,WACH,OAAOkb,IACLA,EAAOV,EAASyE,qBAAqB,QAAQ,GAEjD,IAKH,WACC,IAAK,IACHC,EACAC,EAAM7E,EAAO8E,sBACbC,EAAM/E,EAAOgF,qBACbC,EAAW,CAAC,IAAK,KAAM,MAAO,UAC9B9pB,EAAI8pB,EAAS7yB,QACZ2yB,GAAO5pB,KAER0pB,EAAMA,GAAO7E,EAAOiF,EAAS9pB,GAAK,yBAClC4pB,EAAM/E,EAAOiF,EAAS9pB,GAAK,yBACrB6kB,EAAOiF,EAAS9pB,GAAK,+BAExB4pB,IAECF,GACFD,EAAMC,EACNA,EAAM,SAAU/uB,GACd,IAAIovB,GAAO,EAIX,OAHAN,GAAI,WACEM,GAAMpvB,EAASqS,MAAMnZ,KAAMmD,UACjC,IACO,WACL+yB,GAAO,CACT,CACF,EACAH,EAAM,SAAUI,GACdA,GACF,IAEAN,EAAM,SAAU/uB,GACd,OAAOsvB,WAAWtvB,EAAU,GAAI,GAClC,EACAivB,EAAM,SAAUI,GACdE,aAAaF,EACf,IAGJnF,EAAO8E,sBAAwBD,EAC/B7E,EAAOgF,qBAAuBD,CAC/B,CAxCA,GA2CD,IAAI,IAAI/E,EAAOsF,YAAY,IAAK,CAAC,MAAMjB,GACrCrE,EAAOsF,YAAc,SACnBC,EACAC,GA0BA,SAASC,EACP7pB,EAAM8pB,EAASC,EAAYC,GAG3B52B,KAAK62B,UAAUjqB,EAAM8pB,EAASC,GAC9B32B,KAAK42B,OAASA,CAChB,CAGA,OA/BA,SAAqBhqB,EAAMkqB,GAEzB,IAAIC,EAAQ7F,EAAS8F,YAAYT,GACjC,GAAmB,iBAAR3pB,EACT,MAAM,IAAImgB,MAAM,kCAclB,MAZiB,SAAbwJ,IACFQ,EAAMN,gBAAkBA,GAEL,MAAjBK,IACFA,EAAgBN,GAElBO,EAAMN,gBACJ7pB,EACAkqB,EAAcJ,QACdI,EAAcH,WACdG,EAAcF,QAETG,CACT,CAaF,CAtCqB,CA0CnB/F,EAAOsF,YAEL,cAAgB,QAElB,CACEI,SAAS,EACTC,YAAY,EACZC,OAAQ,MAGd,CAGA,IAAM,IAAIK,MAAM,IAAM,CAAE,MAAO5B,GAE7BA,EAAO,SAAU6B,GACf,SAASD,EAAMrqB,EAAMuqB,GACnB/F,EAAgBjuB,UAAUC,OAAQ,SAClC,IAAIg0B,EAAMlG,EAAS8F,YAAY,SAO/B,OANKG,IAAMA,EAAO,CAAC,GACnBC,EAAIP,UACFjqB,IACEuqB,EAAKT,UACLS,EAAKR,YAEFS,CACT,CAEA,OADAH,EAAMtmB,UAAYumB,EAAOvmB,UAClBsmB,CACT,CAdO,CAcLjG,EAAOiG,OAAS,WAAkB,GACpC5a,EAAe2U,EAAQ,QAAS,CAACpvB,MAAOyzB,IAEpC4B,QAAU5B,IAAK4B,MAAQ5B,EAC7B,CAGA,IAAM,IAAIgC,cAAc,IAAK,CAAC,EAAI,CAAE,MAAOhC,GAEzCA,EAAO,SAAUiC,GAEf,IAoBEC,EAnBAC,EAAW,EACXC,EAAW,CACTC,KAAM,GACNprB,IAAK,GACLqrB,SAAU,EACVC,SAAS,EACTC,UAAU,EACVC,QAAQ,EACRC,SAAS,EACTC,aAAa,EACbC,QAAQ,EACRl4B,OAAQm4B,UAAUC,SAClBvB,OAAQ,EACRF,SAAS,EACTC,YAAY,EACZr2B,QAAS,EACT83B,SAAU,EACVC,MAAO,GAIX,IACE,IAAIh4B,EAAI6wB,EAAS8F,YAAY,iBAC7B32B,EAAEi4B,kBACA,SAAS,GAAO,EAAOtH,EAAQ,IAAK,GACpC,GAAM,GAAO,GAAM,GAAO,GAE5BwG,EACgC,MAA7Bn3B,EAAEk4B,eAAiBl4B,EAAEiM,MACW,IAAhCjM,EAAEm4B,aAAen4B,EAAEs3B,YAEpBt3B,EAAEu3B,QAAUv3B,EAAEy3B,OAAS,EAAI,EAAIz3B,EAAEw3B,SAAW,EAAI,IAC7C,CACP,CAAE,MAAMxC,GAAM,CAoCd,SAASoD,EAAensB,EAAK8qB,EAAKD,GAChC,IACEC,EAAI9qB,GAAO6qB,EAAK7qB,EAClB,CAAE,MAAM+oB,GAAM,CAChB,CAEA,SAASgC,EAAczqB,EAAMuqB,GAC3B/F,EAAgBjuB,UAAUC,OAAQ,iBAClC+zB,EAlBF,SAAsB9uB,EAAQuO,GAC5B,IAAK,IAAItK,KAAOsK,EAEZA,EAAO9F,eAAexE,KACrBsK,EAAO9F,eAAenR,KAAK0I,EAAQiE,KACpCjE,EAAOiE,GAAOsK,EAAOtK,IAEzB,OAAOjE,CACT,CAUSqwB,CAAavB,GAAQ,CAAC,EAAGM,GAChC,IAwBExe,EAvBAme,EAAMlG,EAAS8F,YAAYO,GAC3BK,EAAUT,EAAKS,QACfC,EAAWV,EAAKU,SAChBC,EAASX,EAAKW,OACdC,EAAUZ,EAAKY,QACfC,EAAcb,EAAKa,YACnB9zB,EAAYszB,EAAW,EAjD3B,SAAqBL,GACnB,IAAK,IACHC,EAAM,GACN7yB,EAAO,CACL,UACA,UACA,WACA,QACA,SACA,MACA,UACA,OACA,cACA,YAEF4H,EAAI,EAAGA,EAAI5H,EAAKnB,OAAQ+I,GAAK,EAEzBgrB,EAAK5yB,EAAK4H,KACZirB,EAAIhrB,KAAK7H,EAAK4H,EAAI,IAEtB,OAAOirB,EAAIpxB,KAAK,IAClB,CA4B+B2yB,CAAYxB,GAAQ,KAC/C7qB,EAAMyR,OAAOoZ,EAAK7qB,KAClBssB,EAAM7a,OAAOoZ,EAAKO,MAClBC,EAAWR,EAAKQ,SAChBr3B,EAAU62B,EAAK72B,UACZ62B,EAAK72B,QAAUgM,IAChBA,EAAIusB,WAAW,IACZ,EACLT,EAAWjB,EAAKiB,WACbjB,EAAKiB,SAAWQ,IACjBA,EAAIC,WAAW,IACZ,EACLnC,EAAUS,EAAKT,QACfC,EAAaQ,EAAKR,WAClBsB,EAASd,EAAKc,OACdl4B,EAASo3B,EAAKp3B,OACd+4B,EAAO3B,EAAK2B,MAAQ9H,EAItB,GADKmG,EAAKkB,QAAOlB,EAAKkB,MAAQlB,EAAK72B,SAC/B,iBAAkB82B,EACpBA,EAAI2B,aACFnsB,EAAM8pB,EAASC,EAAYmC,EAC3BlB,EAASE,EAAQD,EAAUE,EAASz3B,EAAS83B,QAE1C,GAAI,EAAIZ,GAAY,sBAAuBJ,EAAK,CAErD,OADAne,EAAO,CAACrM,EAAM8pB,EAASC,EAAYmC,GAC3BtB,GACN,KAAK,EACHve,EAAK7M,KAAKE,EAAKqrB,EAAUC,EAASC,EAAUC,EAAQC,EAASC,GAC7D,MACF,KAAK,EACH/e,EAAK7M,KAAKwrB,EAASE,EAAQD,EAAUE,EAASz3B,EAAS83B,GACvD,MACF,KAAK,EACHnf,EAAK7M,KAAKE,EAAKqrB,EAAUC,EAASE,EAAQD,EAAUE,EAASC,GAC7D,MACF,KAAK,EACH/e,EAAK7M,KAAKE,EAAKqrB,EAAUzzB,EAAW+zB,EAAQl4B,GAC5C,MACF,QACEkZ,EAAK7M,KAAKsrB,KAAMprB,EAAKqrB,EAAUzzB,EAAW+zB,EAAQl4B,GAEtDq3B,EAAIkB,kBAAkBnf,MAAMie,EAAKne,EACnC,MACEme,EAAIP,UAAUjqB,EAAM8pB,EAASC,GAE/B,IAAKrqB,KAAO8qB,EACNK,EAAS3mB,eAAexE,IAAQ8qB,EAAI9qB,KAAS6qB,EAAK7qB,IACpDmsB,EAAensB,EAAK8qB,EAAKD,GAG7B,OAAOC,CACT,CAEA,OA1GAG,EAAY,EAAIC,EAAW,gBAAkB,QAyG7CH,EAAc1mB,UAAY2mB,EAAe3mB,UAClC0mB,CACT,CAhJO,CAgJLrG,EAAOqG,eAAiB,WAA0B,GACpDhb,EAAe2U,EAAQ,gBAAiB,CAACpvB,MAAOyzB,IAE5CgC,gBAAkBhC,IAAKgC,cAAgBhC,EAC7C,CAGA,IAAM,IAAI2D,WAAW,IAAK,CAAC,EAAI,CAAE,MAAO3D,GAEtCA,EAAO,SAAU4D,GACf,SAASD,EAAWpsB,EAAMuqB,GACxB/F,EAAgBjuB,UAAUC,OAAQ,cAClC,IAAIg0B,EAAMlG,EAAS8F,YAAY,cAmB/B,OAlBKG,IAAMA,EAAO,CAAC,GACnBC,EAAI8B,eACFtsB,IACEuqB,EAAKT,UACLS,EAAKR,WACPQ,EAAK2B,MAAQ9H,EACbmG,EAAKP,QAAU,EACfO,EAAKgC,SAAW,EAChBhC,EAAKiC,SAAW,EAChBjC,EAAKkC,SAAW,EAChBlC,EAAKmC,SAAW,IACdnC,EAAKS,UACLT,EAAKW,SACLX,EAAKU,WACLV,EAAKY,QACPZ,EAAKoC,QAAU,EACfpC,EAAKqC,eAAiB,MAEjBpC,CACT,CAEA,OADA4B,EAAWroB,UAAYsoB,EAAYtoB,UAC5BqoB,CACT,CA1BO,CA0BLhI,EAAOgI,YAAc,WAAuB,GAC9C3c,EAAe2U,EAAQ,aAAc,CAACpvB,MAAOyzB,IAEzC2D,aAAe3D,IAAK2D,WAAa3D,EACvC,CAEKnE,EAAS1gB,iBAAiB,KAAKnK,SACjC,WACC,SAASozB,EAAMC,GACb,IAAIlpB,EAAmBkpB,EAAKlpB,iBAC5BkpB,EAAKlpB,iBAAmB,SAAampB,GACnC,IAAI9O,EAASra,EAAiB7Q,KAAKK,KAAM25B,GAEzC,OADA9O,EAAOxkB,QAAUqK,MAAMC,UAAUtK,QAC1BwkB,CACT,CACF,CACA4O,EAAMvI,GACNuI,EAAMjkB,QAAQ7E,UACf,CAXA,GAcH,IAEEugB,EAAS0I,cAAc,WACzB,CAAE,MAAMvE,IACL,WACC,IAAIwE,EAAY,eAAiC,IAAhBj2B,KAAKk2B,WAAmB,GACrDC,EAAQvkB,QAAQ7E,UAChBipB,EAAgBG,EAAMH,cACtBppB,EAAmBupB,EAAMvpB,iBAO7B,SAASwpB,EAAK9pB,EAAM+pB,EAAQN,GAC1B,GAAIzpB,EAAKtD,MAAQskB,EAASgJ,aAAc,OAAOD,EAAOt6B,KAAKuQ,EAAMypB,GACjEzpB,EAAK8kB,aAAa6E,EAAW,MAC7B,IAAIhP,EAASoP,EAAOt6B,KAClBuQ,EACA6N,OAAO4b,GAAKtpB,QACV,6BACA,SAAU8pB,EAAIC,EAAIC,EAAIC,GACpB,OAAOF,EAAK,IAAMP,EAAY,KAAOS,GAAM,IAC7C,KAIJ,OADApqB,EAAK6kB,gBAAgB8E,GACdhP,CACT,CApBAkP,EAAMH,cAAgB,SAAYD,GAChC,OAAOK,EAAKh6B,KAAM45B,EAAeD,EACnC,EACAI,EAAMvpB,iBAAmB,SAAampB,GACpC,OAAOK,EAAKh6B,KAAMwQ,EAAkBmpB,EACtC,CAgBD,CA1BA,EA2BH,CACD,CAnuBA,CAmuBC3I,QACD,SAAUuJ,GAAQ,aAGjB,IAAIC,EAASD,EAAOE,SAAY,WAE9B,IAIE74B,EAHA84B,EAAU,EACVC,GAAa,EACbC,GAAO,EAIT,SAASC,EAASvuB,EAAKwuB,EAAIC,GACzBH,EAAOG,EACPJ,GAAa,EACb/4B,OAAQyB,EACRiJ,EAAI0uB,cAAcF,EACpB,CAEA,SAASG,EAAQr5B,GACf5B,KAAK4B,MAAQA,CACf,CAWA,SAAS44B,IACPE,IACA16B,KAAKk7B,OAAS,IAAIjE,EAAO,WAAayD,EAAW92B,KAAKk2B,SACxD,CAuBA,OAnCAmB,EAAQtqB,UAAU3M,YAAc,SAAqB3D,GACnDs6B,GAAa,EACTC,EACFv6B,EAAE86B,cAAcC,oBAAoB/6B,EAAEuM,KAAM5M,MAAM,GAElD4B,EAAQ5B,KAAK4B,KAEjB,EAOA44B,EAAO7pB,UAAY,CACjB,YAAe6pB,EACf,OAAU,SAAaluB,GACrB,OAAOuuB,EAASvuB,EAAKtM,KAAKk7B,QAAQ,GAAOP,CAC3C,EACA,IAAO,SAAaruB,GAClBuuB,EAASvuB,EAAKtM,KAAKk7B,QAAQ,GAC3B,IAAIG,EAAIz5B,EAER,OADAA,OAAQyB,EACDg4B,CACT,EACA,IAAO,SAAa/uB,GAClB,OAAOuuB,EAASvuB,EAAKtM,KAAKk7B,QAAQ,GAAQP,CAC5C,EACA,IAAO,SAAaruB,EAAK1K,GAGvB,OAFAi5B,EAASvuB,EAAKtM,KAAKk7B,QAAQ,GAC3B5uB,EAAIgvB,iBAAiBt7B,KAAKk7B,OAAOtuB,KAAM,IAAIquB,EAAQr5B,IAAQ,GACpD5B,IACT,GAGKw6B,CAET,CAzDgC,GA2DhC,SAASe,IAAQ,CAKjB,SAASC,EAAoB5uB,EAAM9F,EAAUgY,GAC3C,SAAS2c,EAAcp7B,GACjBo7B,EAAcC,OAChBr7B,EAAE86B,cAAcC,oBACd/6B,EAAEuM,KACF9F,EACA20B,GAEFA,EAAcE,SAAU,GAEtBF,EAAcG,UAChBv7B,EAAEgO,eAAiBmtB,EAAoBntB,gBAEH,oBAA3BotB,EAAc30B,SAEvB20B,EAAc30B,SAASnH,KAAKK,KAAMK,GACzBo7B,EAAc30B,UACvB20B,EAAc30B,SAAS9C,YAAY3D,GAEjCo7B,EAAcG,gBACTv7B,EAAEgO,cAEb,CAQA,OAPAotB,EAAc7uB,KAAOA,EACrB6uB,EAAc30B,SAAWA,EACzB20B,EAAcI,UAAY/c,EAAQ+c,QAClCJ,EAAcG,UAAY9c,EAAQ8c,QAClCH,EAAcC,OAAS5c,EAAQ4c,KAE/BD,EAAcE,SAAU,EACjBF,CACT,CAnCAF,EAAK5qB,WAAalR,OAAOyY,QAAUzY,QAAQ,MAqC3C+7B,EAAoBntB,eAAiB,WAA2B,EAEhE,IAuBEytB,EAtBA7E,EAAQsD,EAAOjE,YACfyF,EAAKxB,EAAOS,cACZgB,EAAMzB,EAAOe,iBACbW,EAAM1B,EAAOa,oBACbV,EAAU,EACVwB,EAAY,WAAcxB,GAAW,EACrC/vB,EAAU,GAAGA,SAAW,SAAiB/I,GAEvC,IADA,IAAIwB,EAASpD,KAAKoD,OACZA,KACApD,KAAKoD,KAAYxB,IAIvB,OAAOwB,CACT,EACA+4B,EAAiB,SAAUrd,GACzB,MAAO,GAAG1F,OACR0F,EAAQ+c,QAAU,IAAM,IACxB/c,EAAQ8c,QAAU,IAAM,IACxB9c,EAAQ4c,KAAO,IAAM,IAEzB,EAIF,IACEM,EAAI,IAAKE,EAAW,CAACR,MAAM,IAC3BK,EAAG,IAAI9E,EAAM,MACb8E,EAAG,IAAI9E,EAAM,MACbgF,EAAI,IAAKC,EAAW,CAACR,MAAM,GAC7B,CAAE,MAAMrG,GAAM,CAEE,IAAZqF,GACD,WACC,IAAI0B,EAAK,IAAI5B,EAiEbsB,EAAU,SAAUnkB,GAClB,GAAKA,EAAL,CACA,IAAIoiB,EAAQpiB,EAAYhH,UACxBopB,EAAMuB,iBAnER,SAAmBU,GACjB,OAAO,SAA0BpvB,EAAM3I,EAAS6a,GAC9C,GAAIA,GAA8B,mBAAZA,EAAuB,CAC3C,IAGE3S,EAAGkwB,EAAKC,EAFRC,EAAOH,EAAG1lB,IAAI1W,MACdsM,EAAM6vB,EAAerd,GAGlByd,GAAMH,EAAG1iB,IAAI1Z,KAAOu8B,EAAO,IAAIhB,GAC9B3uB,KAAQ2vB,IAAOA,EAAK3vB,GAAQ,CAChC3I,QAAS,GACTq4B,KAAM,KAERD,EAAME,EAAK3vB,IACXT,EAAIxB,EAAQhL,KAAK08B,EAAIp4B,QAASA,IACtB,GACNkI,EAAIkwB,EAAIp4B,QAAQmI,KAAKnI,GAAW,EAChCo4B,EAAIC,KAAKnwB,GAAMmwB,EAAO,IAAIf,GAE1Be,EAAOD,EAAIC,KAAKnwB,GAEZG,KAAOgwB,IACXA,EAAKhwB,GAAOkvB,EAAoB5uB,EAAM3I,EAAS6a,GAC/Ckd,EAAIr8B,KAAKK,KAAM4M,EAAM0vB,EAAKhwB,GAAMgwB,EAAKhwB,GAAKuvB,SAE9C,MACEG,EAAIr8B,KAAKK,KAAM4M,EAAM3I,EAAS6a,EAElC,CACF,CAsC2B0d,CAAUzC,EAAMuB,kBACzCvB,EAAMqB,oBAtCR,SAAmBa,GACjB,OAAO,SAA6BrvB,EAAM3I,EAAS6a,GACjD,GAAIA,GAA8B,mBAAZA,EAAuB,CAC3C,IAEExS,EAAKH,EAAGkwB,EAAKC,EADbC,EAAOH,EAAG1lB,IAAI1W,MAGhB,GAAIu8B,GAAS3vB,KAAQ2vB,IACnBF,EAAME,EAAK3vB,IAEN,GADLT,EAAIxB,EAAQhL,KAAK08B,EAAIp4B,QAASA,MAE5BqI,EAAM6vB,EAAerd,MACrBwd,EAAOD,EAAIC,KAAKnwB,KACC,CAIf,IAAKG,KAHL2vB,EAAIt8B,KAAKK,KAAM4M,EAAM0vB,EAAKhwB,GAAMgwB,EAAKhwB,GAAKuvB,gBACnCS,EAAKhwB,GAEAgwB,EAAM,OAElBD,EAAIp4B,QAAQuxB,OAAOrpB,EAAG,GACtBkwB,EAAIC,KAAK9G,OAAOrpB,EAAG,GAEQ,IAAvBkwB,EAAIp4B,QAAQb,eAEPm5B,EAAK3vB,EAChB,CAGN,MACEqvB,EAAIt8B,KAAKK,KAAM4M,EAAM3I,EAAS6a,EAElC,CACF,CAM8B2d,CAAU1C,EAAMqB,oBAHpB,CAI1B,EAEIb,EAAOmC,YACTZ,EAAQY,cAERZ,EAAQvB,EAAOoC,MACfb,EAAQvB,EAAO/kB,SAAW+kB,EAAOzG,aACjCgI,EAAQvB,EAAOqC,cACfd,EAAQvB,EAAOsC,QAAU,CAAClsB,UAAU4pB,IACpCuB,EAAQvB,EAAOuC,gBAGlB,CAnFA,EAsFJ,CA9NA,CA8NCjlB,iCCp9BF,IAAIklB,EAHJt9B,OAAO4c,eAAe/G,EAAS,aAAc,CAAE1T,OAAO,IACtD0T,EAAQ0nB,QAAU1nB,EAAQ2nB,MAAQ3nB,EAAQ4nB,IAAM5nB,EAAQ6nB,MAAQ7nB,EAAQ8nB,OAAS9nB,EAAQ+nB,QAAU/nB,EAAQgoB,UAAYhoB,EAAQqnB,KAAOrnB,EAAQioB,KAAOjoB,EAAQkoB,MAAQloB,EAAQynB,iBAAc,EAG3L,SAAWA,GAEPA,EAAkB,KAAI,OAEtBA,EAAkB,KAAI,OAEtBA,EAAuB,UAAI,YAE3BA,EAAqB,QAAI,UAEzBA,EAAoB,OAAI,SAExBA,EAAmB,MAAI,QAEvBA,EAAiB,IAAI,MAErBA,EAAmB,MAAI,QAEvBA,EAAqB,QAAI,SAC5B,CAnBD,CAmBGA,EAAcznB,EAAQynB,cAAgBznB,EAAQynB,YAAc,CAAC,IAWhEznB,EAAQkoB,MALR,SAAeC,GACX,OAAQA,EAAK7wB,OAASmwB,EAAYG,KAC9BO,EAAK7wB,OAASmwB,EAAYK,QAC1BK,EAAK7wB,OAASmwB,EAAYI,KAClC,EAIA7nB,EAAQioB,KAAOR,EAAYQ,KAE3BjoB,EAAQqnB,KAAOI,EAAYJ,KAE3BrnB,EAAQgoB,UAAYP,EAAYO,UAEhChoB,EAAQ+nB,QAAUN,EAAYM,QAE9B/nB,EAAQ8nB,OAASL,EAAYK,OAE7B9nB,EAAQ6nB,MAAQJ,EAAYI,MAE5B7nB,EAAQ4nB,IAAMH,EAAYG,IAE1B5nB,EAAQ2nB,MAAQF,EAAYE,MAE5B3nB,EAAQ0nB,QAAUD,EAAYC,4DCtD9B,MAAM,QACJ1mB,EAAO,eACPgC,EAAc,SACdolB,EAAQ,eACRh+B,EAAc,yBACdi+B,GACEl+B,OAEJ,IAAI,OAAEm+B,EAAM,KAAEC,EAAI,OAAE3lB,GAAWzY,QAC3B,MAAE0Z,EAAK,UAAE2kB,GAAiC,qBAAZC,SAA2BA,QAExDH,IACHA,EAAS,SAAU1jB,GACjB,OAAOA,IAIN2jB,IACHA,EAAO,SAAU3jB,GACf,OAAOA,IAINf,IACHA,EAAQ,SAAU6kB,EAAKC,EAAWhlB,GAChC,OAAO+kB,EAAI7kB,MAAM8kB,EAAWhlB,KAI3B6kB,IACHA,EAAY,SAAUI,EAAMjlB,GAC1B,OAAO,IAAIilB,KAAQjlB,KAIvB,MAAMklB,EAAeC,EAAQ1tB,MAAMC,UAAUtK,SAEvCg4B,EAAWD,EAAQ1tB,MAAMC,UAAU2tB,KACnCC,EAAYH,EAAQ1tB,MAAMC,UAAUvE,MAGpCoyB,EAAoBJ,EAAQrgB,OAAOpN,UAAU+P,aAC7C+d,EAAiBL,EAAQrgB,OAAOpN,UAAUmG,UAC1C4nB,EAAcN,EAAQrgB,OAAOpN,UAAUwG,OACvCwnB,EAAgBP,EAAQrgB,OAAOpN,UAAUN,SACzCuuB,EAAgBR,EAAQrgB,OAAOpN,UAAUhG,SACzCk0B,EAAaT,EAAQrgB,OAAOpN,UAAU8hB,MAEtCqM,EAAuBV,EAAQ3+B,OAAOkR,UAAUG,gBAEhDiuB,EAAaX,EAAQznB,OAAOhG,UAAUwY,MAEtC6V,EAAkBC,EAAYrnB,WAQpC,SAASwmB,EAAQjiB,GACf,OAAO,SAAC+iB,GAAO,QAAAlmB,EAAA7V,UAAAC,OAAK6V,EAAI,IAAAvI,MAAAsI,EAAA,EAAAA,EAAA,KAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJD,EAAIC,EAAA,GAAA/V,UAAA+V,GAAA,OAAKC,EAAMgD,EAAM+iB,EAASjmB,EAAK,CACzD,CAQA,SAASgmB,EAAY9iB,GACnB,OAAO,mBAAAxB,EAAAxX,UAAAC,OAAI6V,EAAI,IAAAvI,MAAAiK,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJ3B,EAAI2B,GAAAzX,UAAAyX,GAAA,OAAKkjB,EAAU3hB,EAAMlD,EAAK,CAC3C,CAUA,SAASkmB,EAASzlB,EAAKsP,GAA8C,IAAvCoW,EAAiBj8B,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAGq7B,EAC5ClmB,GAIFA,EAAeoB,EAAK,MAGtB,IAAI2lB,EAAIrW,EAAM5lB,OACd,KAAOi8B,KAAK,CACV,IAAIlqB,EAAU6T,EAAMqW,GACpB,GAAuB,kBAAZlqB,EAAsB,CAC/B,MAAMmqB,EAAYF,EAAkBjqB,GAChCmqB,IAAcnqB,IAEXuoB,EAAS1U,KACZA,EAAMqW,GAAKC,GAGbnqB,EAAUmqB,EAEd,CAEA5lB,EAAIvE,IAAW,CACjB,CAEA,OAAOuE,CACT,CAQA,SAAS6lB,EAAWvW,GAClB,IAAK,IAAIyD,EAAQ,EAAGA,EAAQzD,EAAM5lB,OAAQqpB,IAChBqS,EAAqB9V,EAAOyD,KAGlDzD,EAAMyD,GAAS,MAInB,OAAOzD,CACT,CAQA,SAASznB,EAAM+Y,GACb,MAAMklB,EAAYtnB,EAAO,MAEzB,IAAK,MAAOyE,EAAU/a,KAAU0U,EAAQgE,GACdwkB,EAAqBxkB,EAAQqC,KAG/CjM,MAAMgB,QAAQ9P,GAChB49B,EAAU7iB,GAAY4iB,EAAW39B,GAEjCA,GACiB,kBAAVA,GACPA,EAAMuU,cAAgB1W,OAEtB+/B,EAAU7iB,GAAYpb,EAAMK,GAE5B49B,EAAU7iB,GAAY/a,GAK5B,OAAO49B,CACT,CASA,SAASC,EAAanlB,EAAQ3V,GAC5B,KAAkB,OAAX2V,GAAiB,CACtB,MAAMkW,EAAOmN,EAAyBrjB,EAAQ3V,GAE9C,GAAI6rB,EAAM,CACR,GAAIA,EAAK9Z,IACP,OAAO0nB,EAAQ5N,EAAK9Z,KAGtB,GAA0B,oBAAf8Z,EAAK5uB,MACd,OAAOw8B,EAAQ5N,EAAK5uB,MAExB,CAEA0Y,EAAS5a,EAAe4a,EAC1B,CAEA,SAASolB,IACP,OAAO,IACT,CAEA,OAAOA,CACT,CC1LO,MAAMC,EAAO/B,EAAO,CACzB,IACA,OACA,UACA,UACA,OACA,UACA,QACA,QACA,IACA,MACA,MACA,MACA,QACA,aACA,OACA,KACA,SACA,SACA,UACA,SACA,OACA,OACA,MACA,WACA,UACA,OACA,WACA,KACA,YACA,MACA,UACA,MACA,SACA,MACA,MACA,KACA,KACA,UACA,KACA,WACA,aACA,SACA,OACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,OACA,SACA,SACA,KACA,OACA,IACA,MACA,QACA,MACA,MACA,QACA,SACA,KACA,OACA,MACA,OACA,UACA,OACA,WACA,QACA,MACA,OACA,KACA,WACA,SACA,SACA,IACA,UACA,MACA,WACA,IACA,KACA,KACA,OACA,IACA,OACA,UACA,SACA,SACA,QACA,SACA,SACA,OACA,SACA,SACA,QACA,MACA,UACA,MACA,QACA,QACA,KACA,WACA,WACA,QACA,KACA,QACA,OACA,KACA,QACA,KACA,IACA,KACA,MACA,QACA,QAIWgC,EAAMhC,EAAO,CACxB,MACA,IACA,WACA,cACA,eACA,eACA,gBACA,mBACA,SACA,WACA,OACA,OACA,UACA,SACA,OACA,IACA,QACA,WACA,QACA,QACA,OACA,iBACA,SACA,OACA,WACA,QACA,OACA,UACA,UACA,WACA,iBACA,OACA,OACA,QACA,SACA,SACA,OACA,WACA,QACA,OACA,QACA,OACA,UAGWiC,EAAajC,EAAO,CAC/B,UACA,gBACA,sBACA,cACA,mBACA,oBACA,oBACA,iBACA,eACA,UACA,UACA,UACA,UACA,UACA,iBACA,UACA,UACA,cACA,eACA,WACA,eACA,qBACA,cACA,SACA,iBAOWkC,EAAgBlC,EAAO,CAClC,UACA,gBACA,SACA,UACA,YACA,mBACA,iBACA,gBACA,gBACA,gBACA,QACA,YACA,OACA,eACA,YACA,UACA,gBACA,SACA,MACA,aACA,UACA,QAGWmC,EAASnC,EAAO,CAC3B,OACA,WACA,SACA,UACA,QACA,SACA,KACA,aACA,gBACA,KACA,KACA,QACA,UACA,WACA,QACA,OACA,KACA,SACA,QACA,SACA,OACA,OACA,UACA,SACA,MACA,QACA,MACA,SACA,aACA,gBAKWoC,EAAmBpC,EAAO,CACrC,UACA,cACA,aACA,WACA,YACA,UACA,UACA,SACA,SACA,QACA,YACA,aACA,iBACA,cACA,SAGWqC,EAAOrC,EAAO,CAAC,UCrRfsC,EAAOtC,EAAO,CACzB,SACA,SACA,QACA,MACA,iBACA,eACA,uBACA,WACA,aACA,UACA,SACA,UACA,cACA,cACA,UACA,OACA,QACA,QACA,QACA,OACA,UACA,WACA,eACA,SACA,cACA,WACA,WACA,UACA,MACA,WACA,0BACA,wBACA,WACA,YACA,UACA,eACA,OACA,MACA,UACA,SACA,SACA,OACA,OACA,WACA,KACA,YACA,YACA,QACA,OACA,QACA,OACA,OACA,UACA,OACA,MACA,MACA,YACA,QACA,SACA,MACA,YACA,WACA,QACA,OACA,QACA,UACA,aACA,SACA,OACA,UACA,UACA,cACA,cACA,UACA,gBACA,sBACA,SACA,UACA,UACA,aACA,WACA,MACA,WACA,MACA,WACA,OACA,OACA,UACA,aACA,QACA,WACA,QACA,OACA,QACA,OACA,UACA,QACA,MACA,SACA,OACA,QACA,UACA,WACA,QACA,YACA,OACA,SACA,SACA,QACA,QACA,OACA,QACA,SAGWuC,EAAMvC,EAAO,CACxB,gBACA,aACA,WACA,qBACA,YACA,SACA,gBACA,gBACA,UACA,gBACA,iBACA,QACA,OACA,KACA,QACA,OACA,gBACA,YACA,YACA,QACA,sBACA,8BACA,gBACA,kBACA,KACA,KACA,IACA,KACA,KACA,kBACA,YACA,UACA,UACA,MACA,WACA,YACA,MACA,WACA,OACA,eACA,YACA,SACA,cACA,cACA,gBACA,cACA,YACA,mBACA,eACA,aACA,eACA,cACA,KACA,KACA,KACA,KACA,aACA,WACA,gBACA,oBACA,SACA,OACA,KACA,kBACA,KACA,MACA,YACA,IACA,KACA,KACA,KACA,KACA,UACA,YACA,aACA,WACA,OACA,eACA,iBACA,eACA,mBACA,iBACA,QACA,aACA,aACA,eACA,eACA,cACA,cACA,mBACA,YACA,MACA,OACA,QACA,SACA,OACA,MACA,OACA,aACA,SACA,WACA,UACA,QACA,SACA,cACA,SACA,WACA,cACA,OACA,aACA,sBACA,mBACA,eACA,SACA,gBACA,sBACA,iBACA,IACA,KACA,KACA,SACA,OACA,OACA,cACA,YACA,UACA,SACA,SACA,QACA,OACA,kBACA,QACA,mBACA,mBACA,eACA,cACA,eACA,cACA,aACA,eACA,mBACA,oBACA,iBACA,kBACA,oBACA,iBACA,SACA,eACA,QACA,eACA,iBACA,WACA,cACA,UACA,UACA,YACA,mBACA,cACA,kBACA,iBACA,aACA,OACA,KACA,KACA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,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,YAAY,CAAC,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,EAAE,SAAS,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,YAAY,CAAC,EAAE,UAAU,CAAC,EAAE,SAAS,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,GAAG,UAAU,CAAC,GAAG,WAAW,CAAC,GAAG,YAAY,CAAC,GAAG,WAAW,CAAC,IAAI,UAAU,CAAC,EAAE,WAAW,CAAC,GAAG,WAAW,CAAC,EAAE,oBAAoB,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,sBAAsB,CAAC,EAAE,WAAW,CAAC,GAAG,eAAe,CAAC,IAAI,WAAW,CAAC,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,aAAa,CAAC,EAAE,UAAU,CAAC,EAAE,SAAS,CAAC,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,EAAE,YAAY,CAAC,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,EAAE,aAAa,CAAC,EAAE,QAAQ,CAAC,EAAE,SAAS,CAAC,EAAE,WAAW,CAAC,EAAE,SAAS,CAAC,EAAE,aAAa,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,SAAS,CAAC,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,EAAE,YAAY,CAAC,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,EAAE,aAAa,CAAC,EAAE,QAAQ,CAAC,EAAE,SAAS,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,SAAS,CAAC,EAAE,UAAU,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,WAAW,CAAC,EAAE,cAAc,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,SAAS,CAAC,EAAE,YAAY,CAAC,EAAE,aAAa,CAAC,GAAG,YAAY,CAAC,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,EAAE,iBAAiB,CAAC,GAAG,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,EAAE,YAAY,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,SAAS,CAAC,EAAE,YAAY,CAAC,EAAE,SAAS,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,SAAS,CAAC,EAAE,YAAY,CAAC,EAAE,SAAS,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,EAAE,YAAY,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,KAAK,UAA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,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC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AAgB,6JCAhB,IAAgB,wJCAhB,IAAgB,wLCAhB,IAAgB,+SCAhB,IAAgB,0SCAhB,IAAgB,mbCAhB,IAAgB,+pCCAhB,IAAgB,qjBCAhB,IAAgB,gOAAiO,8ECAjP,IAAgB,wqBCAhB,IAAgB,gTCAhB,IAAgB,2HCAhB,IAAgB,guBCAhB,IAAgB,8GCAQ,SAAJ,GCApB,IAAgB,+zBCAhB,IAAgB,yNCAhB,IAAgB,iHCAhB,IAAgB,wMCAhB,IAAgB,sSCAhB,IAAgB,qMCAhB,IAAgB,kXCAhB,IAAgB,weCAhB,IAAgB,iiBCAhB,IAAgB,4VCAhB,IAAgB,8MCAhB,IAAgB,sVCAhB,IAAgB,qTCAhB,IAAgB,yHCAhB,IAAgB,0HCAhB,IAAgB,2GCAhB,IAAgB,uHCAhB,IAAgB,q4BCAhB,IAAgB,6hBAA8hB,8SCA9iB,IAAgB,mbCAhB,IAAgB,keCAhB,IAAgB,oQCAhB,IAAgB,mMCAhB,IAAgB,0ICAhB,IAAgB,uLCAhB,IAAgB,qJCAhB,IAAgB,6JCAhB,IAAgB,mJCAhB,IAAgB,4GCAhB,IAAgB,8RCAhB,IAAgB,uSCAhB,IAAgB,gTCAhB,IAAgB,qSCAhB,IAAgB,4WCAhB,IAAgB,+HCAhB,IAAgB,iPCAhB,IAAgB,gLCAhB,IAAgB,wICAhB,IAAgB,seCAhB,IAAgB,uaCAhB,IAAgB,gbCAhB,IAAgB,gaCAhB,IAAgB,ouBCAhB,IAAgB,+QCAhB,IAAgB,oYCAhB,IAAgB,+HCAhB,IAAgB,kUCAhB,IAAgB,6aCAhB,IAAgB,sMCAhB,IAAgB,gWCAhB,IAAgB,kVCAhB,IAAgB,sSCAhB,IAAgB,4qBCAhB,IAAgB,4ICAhB,IAAgB,+PCAhB,IAAgB,+OCAhB,IAAgB,sQCAhB,IAAgB,2ICAhB,IAAgB,kOCAhB,IAAgB,yXCAhB,IAAgB,6QCAhB,IAAgB,4QCAhB,IAAgB,sZCAhB,IAAgB,geCAhB,IAAgB,ibCAhB,IAAgB,gbCAhB,IAAgB,ohBCAhB,IAAgB,+NCAhB,IAAgB,oWCAhB,IAAgB,qCCAhB,IAAgB,ugDCAhB,IAAgB,oLCAhB,IAAgB,mNAAoN,gFCApO,IAAgB,uVCAhB,IAAgB,sUCAhB,IAAgB,4BCAhB,IAAgB,2BCAhB,IAAgB,8OCAhB,IAAgB,8HCAhB,IAAgB,yFCAhB,IAAgB,wPCAhB,IAAgB,uSCAhB,IAAgB,umCCAhB,IAAgB,iCCAhB,IAAgB,oOCAhB,IAAgB,sMCAhB,IAAgB,uQCAhB,IAAgB,kSCAhB,IAAgB,6SCAhB,IAAgB,wSCAhB,IAAgB,6JCAhB,IAAgB,wPCAhB,IAAgB,qaCAhB,IAAgB,qaCAhB,IAAgB,6TCAhB,IAAgB,wOCAhB,IAAgB,0NCAhB,IAAgB,0OCAhB,IAAgB,yNCAhB,IAAgB,6cCAhB,IAAgB,+KCAhB,IAAgB,6MCAhB,IAAgB,oLCAhB,IAAgB,yOCAhB,IAAgB,8mBCAhB,IAAgB,sLCAhB,IAAgB,wECAhB,IAAgB,2NCAhB,IAAgB,iGCAhB,IAAgB,+xBCAhB,IAAgB,mcCAhB,IAAgB,waCAhB,IAAgB,iSCAhB,IAAgB,0SCAhB,IAAgB,0wBCAhB,IAAgB,+xBCAhB,IAAgB,orBCAhB,IAAgB,mQCAhB,IAAgB,8QCAhB,IAAgB,oVCAhB,IAAgB,8tBCAhB,IAAgB,iOCAhB,IAAgB,mJCAhB,IAAgB,mTCAhB,IAAgB,0VCAhB,IAAgB,8OCAhB,IAAgB,2ZCAhB,IAAgB,oMCAhB,IAAgB,gTCAhB,IAAgB,+tBCAhB,IAAgB,m/BCAhB,IAAgB,4LCAhB,IAAgB,+lBCAhB,IAAgB,ufCAhB,IAAgB,ucCAhB,IAAgB,koBCAhB,IAAgB,m1BCAhB,IAAgB,mICAhB,IAAgB,2ICAhB,IAAgB,yWCAhB,IAAgB,mQCAhB,IAAgB,kcCAhB,IAAgB,+eCAhB,IAAgB,8yBCAhB,IAAgB,yyBCAhB,IAAgB,6JCAhB,IAAgB,+UCAhB,IAAgB,+WCAhB,IAAgB,iNCAhB,IAAgB,kCCAhB,IAAgB,mYCAhB,IAAgB,qlBCAhB,IAAgB,i+CCAhB,IAAgB,kSCAhB,IAAgB,wpBCAhB,IAAgB,qCCAhB,IAAgB,27CCAhB,IAAgB,+dCAhB,IAAgB,4MCAhB,IAAgB,4aCAhB,IAAgB,8hBCAhB,IAAgB,kkBCAhB,IAAgB,uUCAhB,IAAgB,iMCAhB,IAAgB,kICAhB,IAAgB,gnECAhB,IAAgB,+rBCAhB,IAAgB,0ZCAhB,IAAgB,sgBCAhB,IAAgB,8GCAhB,IAAgB,iJCAhB,IAAgB,icCAhB,IAAgB,0HCAhB,IAAgB,6OCAhB,IAAgB,oVCAhB,IAAgB,8XCAhB,IAAgB,uWCAhB,IAAgB,sWCAhB,IAAgB,2WCAhB,IAAgB,4WCAhB,IAAgB,6UCAhB,IAAgB,yICAhB,IAAgB,6QCAhB,IAAgB,ogCCAhB,IAAgB,szBCAhB,IAAgB,6WCAhB,IAAgB,mYCAhB,IAAgB,6iBCAhB,IAAgB,2OCAhB,IAAgB,ycCAhB,IAAgB,yTCAhB,IAAgB,kgBCAhB,IAAgB,oKCAhB,IAAgB,sCCAhB,IAAgB,mRCAhB,IAAgB,8PCAhB,IAAgB,2bCAhB,IAAgB,4PCAhB,IAAgB,mTCAhB,IAAgB,oQCAhB,IAAgB,oQCAhB,IAAgB,2NCAhB,IAAgB,wRCAhB,IAAgB,oSCAhB,IAAgB,2FAA4F,oqBCA5G,IAAgB,2YCAhB,IAAgB,6XCAhB,IAAgB,mRCAhB,IAAgB,oNCAhB,IAAgB,wbCAhB,IAAgB,yjFCAhB,IAAgB,s1BCAhB,IAAgB,wOCAhB,IAAgB,oGCAhB,IAAgB,uQCAhB,IAAgB,ojDCAhB,IAAgB,keCAhB,IAAgB,+MCAhB,IAAgB,0zBCAhB,IAAgB,uYCAhB,IAAgB,6PCAhB,IAAgB,4FCAhB,IAAgB,yTCAhB,IAAgB,sUCAhB,IAAgB,wICAhB,IAAgB,2NCAhB,IAAgB,mbCAhB,IAAgB,yWCAhB,IAAgB,oaCAhB,IAAgB,mJCAhB,IAAgB,2WCAhB,IAAgB,qOCAhB,IAAgB,kPCAhB,IAAgB,gNCAhB,IAAgB,oJCAhB,IAAgB,6cCAhB,IAAgB,srBCAhB,IAAgB,kICAhB,IAAgB,iICAhB,IAAgB,0OCAhB,IAAgB,6ICAhB,IAAgB,0fCAhB,IAAgB,uoBCAhB,IAAgB,shBCAhB,IAAgB,upBCAhB,IAAgB,0mCCAhB,IAAgB,mbCAhB,IAAgB,mYCAhB,IAAgB,onBCAhB,IAAgB,mQCAhB,IAAgB,mYCAhB,IAAgB,kSCAhB,IAAgB,6IAA8I,oQCA9J,IAAgB,wYCAhB,IAAgB,iYCAhB,IAAgB,kHCAhB,IAAgB,qJCAhB,IAAgB,gmBCAhB,IAAgB,gSCAhB,IAAgB,qJCAhB,IAAgB,0tBCAhB,IAAgB,sQCAhB,IAAgB,igBCAhB,IAAgB,gVCAhB,IAAgB,sgBCAhB,IAAgB,kNCAhB,IAAgB,+VAAgW,mJCAhX,IAAgB,iSCAhB,IAAgB,wSCAhB,IAAgB,6MCAhB,IAAgB,klBCAhB,IAAgB,ubCAhB,IAAgB,6nBCAhB,IAAgB,sfCAhB,IAAgB,kXCAhB,IAAgB,sjBCAhB,IAAgB,oJCAhB,IAAgB,8TCAhB,IAAgB,iLCAhB,IAAgB,qMCAhB,IAAgB,mTCAhB,IAAgB,wTCAhB,IAAgB,8lBCAhB,IAAgB,kcCAhB,IAAgB,mTCAhB,IAAgB,qECAhB,IAAgB,qJCAhB,IAAgB,iLCAhB,IAAgB,iHCAhB,IAAgB,iHCAhB,IAAgB,ifCAhB,IAAgB,6JCAhB,IAAgB,qGCAhB,IAAgB,2GCAhB,IAAgB,2jBCAhB,IAAgB,8tBCAhB,IAAgB,4OCAhB,IAAgB,8NCAhB,IAAgB,iOCAhB,IAAgB,8sBCAhB,IAAgB,+iBCAhB,IAAgB,oYCAhB,IAAgB,uqBCAhB,IAAgB,8MCAhB,IAAgB,gUCAhB,IAAgB,6wBCAhB,IAAgB,i0BCAhB,IAAgB,2XCAhB,IAAgB,uRCAhB,IAAgB,6KCAhB,IAAgB,kPCAhB,IAAgB,kUAAmU,4NCAnV,IAAgB,qhBCAhB,IAAgB,s5BCAhB,IAAgB,8hDCAhB,IAAgB,kMCAhB,IAAgB,uFCAhB,IAAgB,8YCAhB,IAAgB,kMCAhB,IAAgB,4dCAhB,IAAgB,0HCAhB,IAAgB,+cCAhB,IAAgB,gXCAhB,IAAgB,qICAhB,IAAgB,wDAAyD,uGCAzE,IAAgB,0KCAhB,IAAgB,+gBCAhB,IAAgB,uHCAhB,IAAgB,uQCAhB,IAAgB,60BCAhB,IAAgB,+JCAhB,IAAgB,2tCCAhB,IAAgB,kaCAhB,IAAgB,2oBCAhB,IAAgB,geCAhB,IAAgB,0FAA2F,+BCA3G,IAAgB,oLCAhB,IAAgB,mWCAhB,IAAgB,ujBCAhB,IAAgB,oKCAhB,IAAgB,yKAA0K,wOAAyO,mECAna,IAAgB,oICAhB,IAAgB,qhBCAhB,IAAgB,4OCAhB,IAAgB,w8DCAhB,IAAgB,wnBCAhB,IAAgB,qTCAhB,IAAgB,uNCAhB,IAAgB,qOCAhB,IAAgB,gVCAhB,IAAgB,0VCAhB,IAAgB,ykDCAhB,IAAgB,oVCAhB,IAAgB,uPCAhB,IAAgB,2jBCAhB,IAAgB,kCCAhB,IAAgB,sRCAhB,IAAgB,yRCAhB,IAAgB,gGCAhB,IAAgB,wRCAhB,IAAgB,iaCAhB,IAAgB,iPCAhB,IAAgB,gZCAhB,IAAgB,+LCAhB,IAAgB,8TCAhB,IAAgB,iLCAhB,IAAgB,+KCAhB,IAAgB,iLCAhB,IAAgB,iLCAhB,IAAgB,0VCAhB,IAAgB,yVCAhB,IAAgB,0RCAhB,IAAgB,oUCAhB,IAAgB,wXCAhB,IAAgB,sHCAhB,IAAgB,2QCAhB,IAAgB,8TCAhB,IAAgB,wWCAhB,IAAgB,mTCAhB,IAAgB,oxBCAhB,IAAgB,6gBCAhB,IAAgB,wPCAhB,IAAgB,mXCAhB,IAAgB,2NCAhB,IAAgB,u1BCAhB,IAAgB,mbCAhB,IAAgB,gTCAhB,IAAgB,iGCAhB,IAAgB,oWCAhB,IAAgB,8KCAhB,IAAgB,gLCAhB,IAAgB,0UCAhB,IAAgB,+hBCAhB,IAAgB,0bCAhB,IAAgB,qFAAsF,8JAA+J,gLAAiL,iCCAtb,IAAgB,uXCAhB,IAAgB,m9BCAhB,IAAgB,maCAhB,IAAgB,2aCAhB,IAAgB,k0BCAhB,IAAgB,idCAhB,IAAgB,0SCAhB,IAAgB,gQCAhB,IAAgB,0qBAA2qB,u5BCA3rB,IAAgB,kNCAhB,IAAgB,y6BCAhB,IAAgB,8RCAhB,IAAgB,uRCAhB,IAAgB,uUCAhB,IAAgB,usBAAwsB,ktBCAxtB,IAAgB,sNCAhB,IAAgB,iHCAhB,IAAgB,+OCAhB,IAAgB,0ECAhB,IAAgB,oECAhB,IAAgB,oICAhB,IAAgB,gFCAhB,IAAgB,0ICAhB,IAAgB,qpBCAhB,IAAgB,seCAhB,IAAgB,wbCAhB,IAAgB,gYCAhB,IAAgB,kXCAhB,IAAgB,ybCAhB,IAAgB,ybCAhB,IAAgB,kqCCAhB,IAAgB,+sCCAhB,IAAgB,gYCAhB,IAAgB,0iBCAhB,IAAgB,oGCAhB,IAAgB,sWCAhB,IAAgB,uECAhB,IAAgB,qECAhB,IAAgB,yLCAhB,IAAgB,gMCAhB,IAAgB,uPCAhB,IAAgB,8LCAhB,IAAgB,kFCAhB,IAAgB,yGCAhB,IAAgB,86BCAhB,IAAgB,+PCAhB,IAAgB,0yBCAhB,IAAgB,yyBCAhB,IAAgB,+ZCAhB,IAAgB,mcCAhB,IAAgB,uJCAhB,IAAgB,sCCAhB,IAAgB,yKCAhB,IAAgB,6OCAhB,IAAgB,2ECAhB,IAAgB,sFCAhB,IAAgB,mJCAhB,IAAgB,+JCAhB,IAAgB,6rBCAhB,IAAgB,gMCAhB,IAAgB,gWCAhB,IAAgB,wLCAhB,IAAgB,sKAAuK,iECAvL,IAAgB,6mBCAhB,IAAgB,qQCAhB,IAAgB,sUCAhB,IAAgB,6JCAhB,IAAgB,yUCAhB,IAAgB,6UCAhB,IAAgB,qLAAsL,kMCAtM,IAAgB,yHCAhB,IAAgB,q7ECAhB,IAAgB,ooBCAhB,IAAgB,4oBCAhB,IAAgB,2ICAhB,IAAgB,oMCAhB,IAAgB,oNCAhB,IAAgB,8LCAhB,IAAgB,8SCAhB,IAAgB,mYCAhB,IAAgB,uOCAhB,IAAgB,8GCAhB,IAAgB,oLCAhB,IAAgB,2dCAhB,IAAgB,gJCAhB,IAAgB,slBCAhB,IAAgB,qZCAhB,IAAgB,8GCAhB,IAAgB,uSCAhB,IAAgB,oSCAhB,IAAgB,qeCAhB,IAAgB,8RCAhB,IAAgB,uVCAhB,IAAgB,mMCAhB,IAAgB,2QCAhB,IAAgB,mJCAhB,IAAgB,4jCCAhB,IAAgB,4LCAhB,IAAgB,uLCAhB,IAAgB,ikBCAhB,IAAgB,8dCAhB,IAAgB,sOCAhB,IAAgB,g0CCAhB,IAAgB,2vCCAhB,IAAgB,mRCAhB,IAAgB,mRCAhB,IAAgB,kNCAhB,IAAgB,sRCAhB,IAAgB,oGCAhB,IAAgB,w5BCAhB,IAAgB,wQCAhB,IAAgB,4ICAhB,IAAgB,2ZCAhB,IAAgB,scCAhB,IAAgB,4MCAhB,IAAgB,4WCAhB,IAAgB,kkECAhB,IAAgB,8PCAhB,IAAgB,4PCAhB,IAAgB,mHCAhB,IAAgB,kHCAhB,IAAgB,gMCAhB,IAAgB,iPCAhB,IAAgB,kWCAhB,IAAgB,gSCAhB,IAAgB,66BCAhB,IAAgB,iQCAhB,IAAgB,kRCAhB,IAAgB,oPCAhB,IAAgB,sPCAhB,IAAgB,2PCAhB,IAAgB,sPCAhB,IAAgB,mPCAhB,IAAgB,uYCAhB,IAAgB,sUCAhB,IAAgB,iaAAka,wLCAlb,IAAgB,4KCAhB,IAAgB,qUCAhB,IAAgB,uUCAhB,IAAgB,sUCAhB,IAAgB,wUCAhB,IAAgB,mOCAhB,IAAgB,wOCAhB,IAAgB,qOCAhB,IAAgB,uOCAhB,IAAgB,iOCAhB,IAAgB,qOCAhB,IAAgB,ySCAhB,IAAgB,gVCAhB,IAAgB,iRCAhB,IAAgB,+rBCAhB,IAAgB,4LCAhB,IAAgB,4TCAhB,IAAgB,wYCAhB,IAAgB,2WCAhB,IAAgB,mXCAhB,IAAgB,0WCAhB,IAAgB,4YCAhB,IAAgB,2dCAhB,IAAgB,uTAAwT,yJAA0J,+yBAAgzB,0CCAlxC,IAAgB,mjECAhB,IAAgB,yiCCAhB,IAAgB,seCAhB,IAAgB,+JCAhB,IAAgB,gJCAhB,IAAgB,uLCAhB,IAAgB,uLCAhB,IAAgB,kMCAhB,IAAgB,+JCAhB,IAAgB,uICAhB,IAAgB,yLCAhB,IAAgB,iTCAhB,IAAgB,+SCAhB,IAAgB,uaCAhB,IAAgB,0tCCAhB,IAAgB,8lBCAhB,IAAgB,oPAAqP,+BAAgC,mFCArS,IAAgB,kqBCAhB,IAAgB,qTCAhB,IAAgB,uICAhB,IAAgB,6uBCAhB,IAAgB,mJCAQ,SAAJ,GCApB,IAAgB,q1BCAhB,IAAgB,8NCAhB,IAAgB,kHCAhB,IAAgB,mICAhB,IAAgB,kSCAhB,IAAgB,+LCAhB,IAAgB,oXCAhB,IAAgB,gmBCAhB,IAAgB,giBCAhB,IAAgB,uWCAhB,IAAgB,kNCAhB,IAAgB,wVCAhB,IAAgB,gUCAhB,IAAgB,6JCAhB,IAAgB,6JCAhB,IAAgB,wKCAhB,IAAgB,4KCAhB,IAAgB,49BCAhB,IAAgB,oXAAqX,uTAAwT,mLCA7rB,IAAgB,waCAhB,IAAgB,ieCAhB,IAAgB,0QCAhB,IAAgB,uMCAhB,IAAgB,4ICAhB,IAAgB,2LCAhB,IAAgB,wJCAhB,IAAgB,+JCAhB,IAAgB,wJCAhB,IAAgB,sHCAhB,IAAgB,6TCAhB,IAAgB,mTCAhB,IAAgB,6TCAhB,IAAgB,kTCAhB,IAAgB,iSCAhB,IAAgB,oHCAhB,IAAgB,kPCAhB,IAAgB,6EAA8E,6FCA9F,IAAgB,gKCAhB,IAAgB,0bCAhB,IAAgB,qbCAhB,IAAgB,ibCAhB,IAAgB,sbCAhB,IAAgB,yrBCAhB,IAAgB,qRCAhB,IAAgB,uVCAhB,IAAgB,gICAhB,IAAgB,0QCAhB,IAAgB,ykBCAhB,IAAgB,kOCAhB,IAAgB,8WCAhB,IAAgB,6UCAhB,IAAgB,wSCAhB,IAAgB,0qBCAhB,IAAgB,iJCAhB,IAAgB,iPCAhB,IAAgB,uPCAhB,IAAgB,qTCAhB,IAAgB,2ICAhB,IAAgB,2UCAhB,IAAgB,obCAhB,IAAgB,2WCAhB,IAAgB,wRCAhB,IAAgB,2bCAhB,IAAgB,keCAhB,IAAgB,0bCAhB,IAAgB,4aCAhB,IAAgB,uiBCAhB,IAAgB,gRCAhB,IAAgB,+WCAhB,IAAgB,uCCAhB,IAAgB,6hDCAhB,IAAgB,sLCAhB,IAAgB,mNAAoN,gFCApO,IAAgB,mUCAhB,IAAgB,2UCAhB,IAAgB,4BCAhB,IAAgB,4BCAhB,IAAgB,sOCAhB,IAAgB,qKCAhB,IAAgB,kGCAhB,IAAgB,4PCAhB,IAAgB,2VCAhB,IAAgB,6jCCAhB,IAAgB,kCCAhB,IAAgB,kUCAhB,IAAgB,2TCAhB,IAAgB,0QCAhB,IAAgB,ySCAhB,IAAgB,kTCAhB,IAAgB,oTCAhB,IAAgB,0KCAhB,IAAgB,4PCAhB,IAAgB,kkBCAhB,IAAgB,gkBCAhB,IAAgB,wUCAhB,IAAgB,0OCAhB,IAAgB,4NCAhB,IAAgB,+OCAhB,IAAgB,+NCAhB,IAAgB,wrBCAhB,IAAgB,mLCAhB,IAAgB,wKCAhB,IAAgB,oPCAhB,IAAgB,+TCAhB,IAAgB,opBCAhB,IAAgB,4MCAhB,IAAgB,wECAhB,IAAgB,oQCAhB,IAAgB,kGCAhB,IAAgB,u0BCAhB,IAAgB,qbCAhB,IAAgB,yaCAhB,IAAgB,yTCAhB,IAAgB,6SCAhB,IAAgB,i1BCAhB,IAAgB,+xBCAhB,IAAgB,ouBCAhB,IAAgB,oQCAhB,IAAgB,sRCAhB,IAAgB,8UCAhB,IAAgB,wnBCAhB,IAAgB,+PCAhB,IAAgB,sJCAhB,IAAgB,kTCAhB,IAAgB,4VCAhB,IAAgB,+OCAhB,IAAgB,+WCAhB,IAAgB,gMCAhB,IAAgB,wSCAhB,IAAgB,guBCAhB,IAAgB,wiCCAhB,IAAgB,6LCAhB,IAAgB,0mBCAhB,IAAgB,iZCAhB,IAAgB,0XCAhB,IAAgB,6kBCAhB,IAAgB,w4BCAhB,IAAgB,yICAhB,IAAgB,mICAhB,IAAgB,yWCAhB,IAAgB,uRCAhB,IAAgB,mYCAhB,IAAgB,oeCAhB,IAAgB,42BCAhB,IAAgB,20BCAhB,IAAgB,6JCAhB,IAAgB,mYCAhB,IAAgB,iXCAhB,IAAgB,yOCAhB,IAAgB,0CCAhB,IAAgB,qYCAhB,IAAgB,2mBCAhB,IAAgB,q/CCAhB,IAAgB,kUCAhB,IAAgB,ymBCAhB,IAAgB,mCCAhB,IAAgB,k5CCAhB,IAAgB,0eCAhB,IAAgB,qKCAhB,IAAgB,8aCAhB,IAAgB,+gBCAhB,IAAgB,ukBCAhB,IAAgB,gVCAhB,IAAgB,kLCAhB,IAAgB,qICAhB,IAAgB,wiECAhB,IAAgB,4rBCAhB,IAAgB,mbCAhB,IAAgB,wgBCAhB,IAAgB,oHCAhB,IAAgB,yJCAhB,IAAgB,wcCAhB,IAAgB,+HCAhB,IAAgB,iQCAhB,IAAgB,kYCAhB,IAAgB,+rBCAhB,IAAgB,4YCAhB,IAAgB,kZCAhB,IAAgB,kaCAhB,IAAgB,kaCAhB,IAAgB,mWCAhB,IAAgB,8ECAhB,IAAgB,mMCAhB,IAAgB,khCCAhB,IAAgB,8xBCAhB,IAAgB,wVCAhB,IAAgB,2jBCAhB,IAAgB,6jBCAhB,IAAgB,gPCAhB,IAAgB,iCAAkC,2CAA4C,2JCA9F,IAAgB,kSCAhB,IAAgB,shBCAhB,IAAgB,uKCAhB,IAAgB,wCCAhB,IAAgB,+XCAhB,IAAgB,yQCAhB,IAAgB,6VCAhB,IAAgB,gQCAhB,IAAgB,kTCAhB,IAAgB,gUCAhB,IAAgB,+TCAhB,IAAgB,2NCAhB,IAAgB,8XCAhB,IAAgB,+OCAhB,IAAgB,6FAA8F,mqBCA9G,IAAgB,yZCAhB,IAAgB,wYCAhB,IAAgB,sRCAhB,IAAgB,0NCAhB,IAAgB,yZCAhB,IAAgB,6tFCAhB,IAAgB,qvBCAhB,IAAgB,mRCAhB,IAAgB,8GCAhB,IAAgB,2QCAhB,IAAgB,4/CCAhB,IAAgB,sdCAhB,IAAgB,kNCAhB,IAAgB,8zBCAhB,IAAgB,saCAhB,IAAgB,+QCAhB,IAAgB,uICAhB,IAAgB,sWCAhB,IAAgB,wVCAhB,IAAgB,2ICAhB,IAAgB,6NCAhB,IAAgB,kTCAhB,IAAgB,+WCAhB,IAAgB,ijBCAhB,IAAgB,uJCAhB,IAAgB,+WCAhB,IAAgB,qOCAhB,IAAgB,iSCAhB,IAAgB,qNCAhB,IAAgB,2MCAhB,IAAgB,kdCAhB,IAAgB,+kBCAhB,IAAgB,yGCAhB,IAAgB,oICAhB,IAAgB,4ICAhB,IAAgB,sJCAhB,IAAgB,yIAA0I,mJAAoJ,wJCA9S,IAAgB,wqBCAhB,IAAgB,8rBCAhB,IAAgB,yoBCAhB,IAAgB,q7BCAhB,IAAgB,kRCAhB,IAAgB,oPCAhB,IAAgB,ynBCAhB,IAAgB,0HCAhB,IAAgB,oPCAhB,IAAgB,oSCAhB,IAAgB,oKAAqK,sQCArL,IAAgB,wYCAhB,IAAgB,8aCAhB,IAAgB,mHCAhB,IAAgB,0JCAhB,IAAgB,uoBCAhB,IAAgB,iRCAhB,IAAgB,yJCAhB,IAAgB,qrBCAhB,IAAgB,keCAhB,IAAgB,gjCCAhB,IAAgB,0YCAhB,IAAgB,uhBCAhB,IAAgB,kMCAhB,IAAgB,uZAAwZ,iPCAxa,IAAgB,uSCAhB,IAAgB,0SCAhB,IAAgB,2MCAhB,IAAgB,sxBCAhB,IAAgB,8cCAhB,IAAgB,6tBCAhB,IAAgB,2nBCAhB,IAAgB,mZCAhB,IAAgB,mnBCAhB,IAAgB,0JCAhB,IAAgB,0TCAhB,IAAgB,oKCAhB,IAAgB,qMCAhB,IAAgB,sTCAhB,IAAgB,qTCAhB,IAAgB,kpBCAhB,IAAgB,sZCAhB,IAAgB,+SCAhB,IAAgB,qECAhB,IAAgB,wJCAhB,IAAgB,mLCAhB,IAAgB,mHCAhB,IAAgB,oGCAhB,IAAgB,ifCAhB,IAAgB,iKCAhB,IAAgB,2HCAhB,IAAgB,6GCAhB,IAAgB,8kBCAhB,IAAgB,4uBCAhB,IAAgB,2OCAhB,IAAgB,kRCAhB,IAAgB,iOCAhB,IAAgB,6rBCAhB,IAAgB,skBCAhB,IAAgB,wQCAhB,IAAgB,mpBCAhB,IAAgB,+MCAhB,IAAgB,kSCAhB,IAAgB,iyBCAhB,IAAgB,suBCAhB,IAAgB,scCAhB,IAAgB,yPCAhB,IAAgB,6LCAhB,IAAgB,kNCAhB,IAAgB,kTAAmT,0OCAnU,IAAgB,icCAhB,IAAgB,46BCAhB,IAAgB,8iDCAhB,IAAgB,oMCAhB,IAAgB,iGCAhB,IAAgB,iaCAhB,IAAgB,wMCAhB,IAAgB,gnBCAhB,IAAgB,2HCAhB,IAAgB,ubCAhB,IAAgB,qRCAhB,IAAgB,gICAhB,IAAgB,kNCAhB,IAAgB,iLCAhB,IAAgB,6jBCAhB,IAAgB,iKCAhB,IAAgB,6LCAhB,IAAgB,miCCAhB,IAAgB,iKCAhB,IAAgB,+uCCAhB,IAAgB,oXCAhB,IAAgB,qmBCAhB,IAAgB,6bCAhB,IAAgB,wFAAyF,wCCAzG,IAAgB,4LCAhB,IAAgB,kVCAhB,IAAgB,+jBCAhB,IAAgB,uKCAhB,IAAgB,+KAAgL,+DAAgE,sOCAhQ,IAAgB,sICAhB,IAAgB,ghBCAhB,IAAgB,kOCAhB,IAAgB,2gECAhB,IAAgB,wmBCAhB,IAAgB,6TCAhB,IAAgB,oNCAhB,IAAgB,4OCAhB,IAAgB,qVCAhB,IAAgB,2VCAhB,IAAgB,8mDCAhB,IAAgB,8VCAhB,IAAgB,oPCAhB,IAAgB,0kBCAhB,IAAgB,oCCAhB,IAAgB,2XCAhB,IAAgB,4ZCAhB,IAAgB,iGCAhB,IAAgB,2RCAhB,IAAgB,+ZCAhB,IAAgB,4PCAhB,IAAgB,wTCAhB,IAAgB,gMCAhB,IAAgB,mVCAhB,IAAgB,mLCAhB,IAAgB,mLCAhB,IAAgB,mLCAhB,IAAgB,kLCAhB,IAAgB,mQCAhB,IAAgB,6PCAhB,IAAgB,iSCAhB,IAAgB,gUCAhB,IAAgB,kXCAhB,IAAgB,gICAhB,IAAgB,gWCAhB,IAAgB,kdCAhB,IAAgB,4WCAhB,IAAgB,uTCAhB,IAAgB,m1BCAhB,IAAgB,2hBCAhB,IAAgB,uRCAhB,IAAgB,0RCAhB,IAAgB,gNCAhB,IAAgB,icAAkc,uDAAwD,8CA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,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAmEpHrC,EAAYsC,aA5DZ,SAAsBC,GAClB,IAAIvtU,EAAMutU,EAAMluU,UACZ2G,EAAQunU,EAAMrwU,WACdue,EAAO8xT,EAAMpwU,cACbqwU,EAASxnU,EAAQ,EACjBynU,EAAQhyT,EACR+xT,EAAS,IACTC,GAAS,EACTD,GAAU,IAEd,IAAIE,EAAU/sU,KAAKiG,MAAM6mU,EAAQ,KAC7BE,EAAgBD,EAAU/sU,KAAKiG,MAAM8mU,EAAU,GAAM,EACrDE,EAAejtU,KAAKiG,MAAM,QAAU6mU,EAAQ,OAAS9sU,KAAKiG,MAAM,SAAW4mU,EAAS,IAAMxtU,EAAM2tU,EAAgB,KAGhH16T,EAAI26T,GADRD,GADAD,EAAU/sU,KAAKiG,OAAOgnU,EAAe,YAAc,WACzBjtU,KAAKiG,MAAM8mU,EAAU,GAAM,GACd,KACnCtwT,EAAIzc,KAAKiG,OAAOqM,EAAI,OAAS,QAC7B1U,EAAIoC,KAAKiG,MAAM,OAASwW,GACxBywT,EAAYltU,KAAKiG,OAAOqM,EAAI1U,GAAK,SACrCyB,EAAOiT,EAAI1U,EAAKoC,KAAKiG,MAAM,QAAUinU,IACrC7nU,EAAQrF,KAAKiG,OAAOqM,EAAI1U,GAAK,UACjB,KACR6e,GAAK,EACLpX,GAAS,IAEbA,GAAS,EACTyV,EAAO2B,EAAI,KACX,IAAI0wT,EAAqBF,EAAe,KAEpCG,EAAQ,MAAS,GACjBtvT,EAAImvT,EAAe,QACnBI,EAAMrtU,KAAKiG,MAAM6X,EAAI,OACzBA,GAAQ,MAAQuvT,EAChB,IAAIjhU,EAAIpM,KAAKiG,OAAO6X,EAAI,OAAUsvT,GAC9BE,EAAK,GAAKD,EAAMjhU,EACpB0R,GAAQ9d,KAAKiG,MAAMmG,EAAIghU,EAAQ,OAC/B,IAAIG,EAAKvtU,KAAKiG,OAAO6X,EAAI,SAAW,MAEzB,KAAPyvT,IACAA,EAAK,IAIT,IAFA,IAAIC,EAAU1vT,EAAI9d,KAAKiG,MAAM,QAAUsnU,EAAK,IACxChlU,EAAI,EACDA,EAAImkU,EAAeltU,UAClBktU,EAAe/jT,SAASpgB,EAAE2K,WAAY,KAAOi6T,GADnB5kU,KAKlC,IAAIklU,EAAMllU,EAAI,MACVg6F,EAAKviG,KAAKiG,OAAOwnU,EAAM,GAAK,IAC5BC,EAAQnrO,EAAK,EACborO,EAASF,EAAM,GAAKlrO,EACpBqrO,EAAQT,EAAqBT,EAAenkU,EAAI,GAAK,EAMzD,OALKqlU,EAAQ,IAAIpuU,OAAS,IACtBouU,EAAQJ,EACRG,EAASJ,EACTG,EAAQJ,GAEL,CAAExyT,KAAM4yT,EAAOroU,MAAOsoU,EAAQrxU,KAAMsxU,EAC/C,EAkCAvD,EAAYwD,YAzBZ,SAAqB/yT,EAAMzV,EAAOhG,GAC9B,IAOIyuU,EALKzuU,EAIQqtU,EAFD,IAJP5xT,EAGK,GACQ,GAHbzV,EAGuB,GAClB,MACsB,GAAK,EAChB,KACrByY,EAAI9d,KAAKiG,MAAM6nU,EAAa,IAC5Bz7T,EAAIrS,KAAKiG,OAAO6X,EAAI,YAAc,UAElCxL,GADJD,EAAIyL,EAAI,EAAIzL,EAAIrS,KAAKiG,MAAMoM,EAAI,IACnB,KACRoK,EAAIzc,KAAKiG,OAAOqM,EAAI,OAAS,QAC7B1U,EAAIoC,KAAKiG,MAAM,OAASwW,GACxBhgB,EAAIuD,KAAKiG,OAAOqM,EAAI1U,GAAK,SACzBmwU,EAAOz7T,EAAI1U,EAAIoC,KAAKiG,MAAU,QAAJxJ,GAC1BuxU,EAASvxU,GAAKA,EAAI,KAAO,GAAK,GAC9BwxU,EAAQxxT,GAAKuxT,EAAS,IAAM,KAAO,MAKvC,OAHIC,GAAS,GACTD,IAEG,IAAInwU,KAAKowU,EAAQ,IAAOD,EAAU,IAAMD,EACnD,CAEH,CAtMD,CAsMG1D,KAAgBA,GAAc,CAAC,ICtMlC,IAAI6D,GAAwB,mEACxBC,GAAa,cACbC,GAAa,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAExDC,GAAa,CACblxT,EAAG,aACHtH,EAAG,WACHmH,EAAG,WACHK,EAAG,aACHzf,EAAG,UACHkiH,EAAG,mBAEIwuN,GAAkB,CACzB,EAAK,QACL,EAAK,MACL,EAAK,UACL,EAAK,UACL,EAAK,OACL,EAAK,SACL,EAAK,OACL,EAAK,OACL,EAAK,SACL,EAAK,QACL,EAAK,aACL,EAAK,WACL,EAAK,WACL,EAAK,MACL,EAAK,gBASLC,GAA4B,WAC5B,SAASA,IACT,CA0QA,OAjQAA,EAAW7iO,WAAa,SAAU8iO,EAASx0B,EAAQy0B,GAC/C,IAAI/yU,EAAQU,KACRsyU,EAAa7jR,GAAK8jR,eAAeF,EAAMD,EAASx0B,EAAOjiN,UACvD62O,EAAY33T,GAAS,uBAAwBy3T,GAC7CG,EAAaH,EAAWG,WACxBC,EAAgB,CAAEC,UAAWlkR,GAAKmkR,aAAazpT,KAAKy0R,EAAOjiN,WAC3DmxO,MAAclvB,EAAOi1B,mBACrBj1B,EAASnvP,GAAKqkR,yBAAyBl1B,EAAQw0B,IAEnD,IAAIW,EAAan1B,EAAOv4R,QACpBopC,GAAKukR,oBAAoBp1B,EAAOq1B,SAAUX,EAAWG,WAAY70B,EAAOhxS,MAAM,EAAOkgU,KAAasF,EAAU,IAEhH,GADAM,EAAcQ,cAAgBpG,KAAajyT,GAAS,gBAAiB43T,GAAchkR,GAAK0kR,iBAAiBb,EAAWG,YAChHlnP,GAAYwnP,GACZ5F,GAAW,oDAEV,CACD4F,EAAatkR,GAAK2kR,wBAAwBL,GACtCjG,OACAiG,EAAaA,EAAW1iU,QAAQ,KAAM,MAE1CqiU,EAAcpwT,QAAUywT,EACxBL,EAAcW,UAAYvG,KACtBrjP,GAAO,CAAC,EAAG+oP,GAAa3sR,GAAOkqR,gBAAgBuC,EAAWgB,aAAcztR,GAAO2oR,mBAAmB6D,IAEtG,IADA,IACS/iU,EAAK,EAAGikU,EADER,EAAW57T,MAAM26T,KAA0B,GACdxiU,EAAKikU,EAAenwU,OAAQkM,IAAM,CAC9E,IAAIq+B,EAAM4lS,EAAejkU,GACrBqgD,EAAMhiB,EAAIvqC,OACVs0B,EAAOiW,EAAI,GAIf,OAHa,MAATjW,IACAA,EAAO,KAEHA,GACJ,IAAK,IACL,IAAK,IACGo1S,KAEA4F,EAAc79T,QAAUgG,GAAS,QAAU4zC,GAAK+kR,WAAW7jR,GAAM8iR,GAIjEC,EAAc79T,QAAUy9T,EAAWG,WAAWhkR,GAAKx5C,MAAM88T,IAAYtjR,GAAK+kR,WAAW7jR,IAEzF,MACJ,IAAK,IACL,IAAK,IACGm9Q,KAEA4F,EAAczpU,MAAQ4R,GAAS,UAAY4zC,GAAK+kR,WAAW7jR,GAAM8iR,GAIjEC,EAAczpU,MAAQqpU,EAAWG,WAAWhkR,GAAKxlD,OAAO8oU,IAAYtjR,GAAK+kR,WAAW7jR,IAExF,MACJ,IAAK,IACD+iR,EAAce,WAAa3G,KACvBjyT,GAAS,aAAc43T,GAAc53T,GAAS,yBAA0B43T,GAC5E,MACJ,IAAK,IAED,IAAIiB,EAAS/jR,GAAO,EAAK,UAAqB,IAARA,EAAa,WAAa,YAChE+iR,EAAcp0T,IAAMwuT,KAAajyT,GAAS,OAAQ43T,GAAc53T,GAAS,QAAU64T,EAAOpB,EAAWG,YACrG,MACJ,IAAK,IACDC,EAAc3+O,SAAWl5E,GAAS,sBAAuBy3T,EAAWgB,cAGhF,CACJ,CACA,OAAO,SAAU1xU,GACb,OAAIC,MAAMD,EAAMU,WACL,KAEJhD,EAAMq0U,iBAAiB/xU,EAAO8wU,EACzC,CACJ,EAQAP,EAAWwB,iBAAmB,SAAU/xU,EAAOkd,GAK3C,IAJA,IACI0wC,EAAM,GACN/6B,EAFU3V,EAAQwD,QAEAnL,MAAMs3C,GAAKmlR,gBAC7BC,EAAU7zU,KAAK8zU,oBAAoBlyU,EAAOkd,EAAQ6zT,WAC7CrjU,EAAK,EAAGykU,EAAYt/S,EAASnlB,EAAKykU,EAAU3wU,OAAQkM,IAAM,CAC/D,IAAI6H,EAAQ48T,EAAUzkU,GAClByxS,EAAW5pS,EAAM/T,OACjBs0B,EAAOvgB,EAAM,GACJ,MAATugB,IACAA,EAAO,KAEX,IAAIs8S,OAAS,EACTC,EAAY,GACZx5R,OAAW,EACXy5R,OAAgB,EAChBC,EAAS,GACb,OAAQz8S,GACJ,IAAK,IACL,IAAK,IACDs8S,EAASH,EAAQ5qU,MACb83S,EAAW,EAEXvxP,GAAO1wC,EAAQ7V,MAAM+qU,GAGrBv5R,GAAW,EAEf,MACJ,IAAK,IACL,IAAK,IAED+U,GAAO1wC,EAAQjK,QAAQm9T,GAAWpwU,EAAM+B,WACxC,MACJ,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IAED,GADA82C,GAAW,EACE,MAAT/iB,EACAs8S,EAASH,EAAQ3zU,UAEhB,GAAa,MAATw3B,EAAc,CACnB+iB,GAAW,EACXy5R,GAAgB,EAIhB,IAAIE,GADJH,GADAA,EAAYryU,EAAMqwU,GAAWv6S,MAAS5gB,YAChBoQ,UAAU,EAAG65R,IACT39S,OAC1B,GAAI29S,IAAaqzB,EAAW,CACxB,GAAIrzB,EAAW,EACX,SAEJ,IAAK,IAAI50S,EAAI,EAAGA,EAAI40S,EAAWqzB,EAAWjoU,IACtC8nU,EAAY,IAAMA,EAAUn9T,UAEpC,CACAq9T,GAAUF,CACd,MAGID,EAASpyU,EAAMqwU,GAAWv6S,MAEjB,MAATA,IACAs8S,EAASA,EAAS,IAAM,IAE5B,MACJ,IAAK,IACDE,GAAgB,EAChBC,GAAUN,EAAQn1T,KACD,IAAbqiS,IACAozB,EAASA,EAAOh8R,OAAOg8R,EAAO/wU,OAAS,IAE3C,MACJ,IAAK,IAED,IAAIixU,EAAQzyU,EAAMuhB,WAAa,GAAK,KAAO,KAE3CqsC,GAAO1wC,EAAQ20T,WAAWY,GAC1B,MACJ,IAAK,IAED,IAAIC,EAAM1yU,EAAMxB,cAAgB,EAAI,EAAI,EAEpCm0U,EAAOz1T,EAAQR,IAAIg2T,GACnBvI,GAAkBwI,KAElBA,EAAOz1T,EAAQR,IAAIg2T,EAAM,EAAI,IAEjC9kR,GAAO+kR,GAAQ,GACf,MACJ,IAAK,IACD/kR,GAAkB,OAAVr4C,EAAoB,IAAOA,EAAM9G,QAAQ,KAAM,IACvD,MACJ,IAAK,IAED,IAAIiqK,EAAW14K,EAAM4f,oBAEjBgzT,EAAazzB,EAAW,EAAK,QAAUjiS,EAAQi1E,SAAS0gP,WAC5DD,EAAYA,EAAUnkU,QAAQ,KAAMyO,EAAQu0T,UAAUpD,eACrC,IAAb31J,EACA9qH,GAAO1wC,EAAQi1E,SAAS2gP,eAGxBR,GAAgB,EAChBC,EAASn0U,KAAK20U,iBAAiBr6J,EAAUk6J,IAE7CL,EAASr1T,EAAQi1E,SAAS6gP,UAAUvkU,QAAQ,QAAS8jU,GACrD,MACJ,IAAK,IAED3kR,GAAO1wC,EAAQu0T,UAAUrD,cAA2B,cACpD,MACJ,IAAK,IACDxgR,GAAO1wC,EAAQo0T,cACf,MACJ,IAAK,IACDz4R,GAAW,EACXu5R,EAASvlR,GAAKomR,cAAcjzU,GAC5B,MACJ,QACI4tD,GAAOr4C,EAEXsjC,IACAy5R,GAAgB,EAChBC,EAASn0U,KAAK80U,oBAAoBd,EAAQjzB,IAE1CmzB,IACA1kR,GAAO3J,GAAOopR,kBAAkBkF,EAAQ1lR,GAAKsmR,eAAgBj2T,EAAQu0T,UAAU9pD,QAEvF,CACA,OAAO/5N,CACX,EACA2iR,EAAW2B,oBAAsB,SAAUlyU,EAAO+wU,GAC9C,OAAIA,EACO1E,GAAYsC,aAAa3uU,GAE7B,CAAE8c,KAAM9c,EAAMxB,cAAe6I,MAAOrH,EAAMzB,WAAa,EAAGD,KAAM0B,EAAMU,UACjF,EAQA6vU,EAAW2C,oBAAsB,SAAU/lT,EAAK4gC,GAC5C,IAAIH,EAAMzgC,EAAM,GAChB,OAAY,IAAR4gC,GAA4B,IAAfH,EAAIpsD,OACV,IAAMosD,EAEVA,CACX,EASA2iR,EAAWwC,iBAAmB,SAAUK,EAAM1yT,GAC1C,IAAIhjB,EAAQU,KAERi1U,EADO3yT,EAAQqQ,MAAM,KACHqiT,EAAO,EAAI,EAAI,GACjCE,EAAKtxU,KAAK8Y,IAAIs4T,GAClB,OAAoBC,EAAW5kU,QAAQ,WAAW,SAAUs9B,GACxD,IAAIgiB,EAAMhiB,EAAIvqC,OACV+xU,GAA+B,IAAtBxnS,EAAIhjC,QAAQ,KACzB,OAAOrL,EAAMw1U,oBAAoBlxU,KAAKiG,MAAMsrU,EAAUD,EAAK,GAAOA,EAAK,IAAMvlR,EACjF,GACJ,EACOwiR,CACX,CA7QgC,GCrC5BiD,GAAY,CACZ,GAAM,2BACN,GAAM,2BACN,GAAM,wBACN,GAAM,yBAMN7rD,GAAS,CAAC,WAAY,MAAO,QAAS,UAAW,eAQjD8rD,GAA8B,WAC9B,SAASA,IACT,CA4VA,OAnVAA,EAAaC,gBAAkB,SAAUlD,EAASx0B,EAAQy0B,GACtD,IAIIkD,EAJAj2U,EAAQU,KACRw1U,EAAW/rP,GAAO,CAAC,EAAGm0N,GACtB63B,EAAW,CAAC,EACZC,EAAW,CAAC,EAEZpD,EAAa7jR,GAAK8jR,eAAeF,EAAMD,EAAS,IAAI,GACpDI,EAAYF,EAAWqD,cAC3BD,EAASE,aAAe9I,KAAarjP,GAAO,CAAC,EAAG+oP,GAC5C3sR,GAAOkqR,gBAAgBuC,EAAWgB,aAAcztR,GAAO2oR,mBAAmB6D,IAAO,GACrFqD,EAASG,eAAiB/I,KAAajyT,GAAS,iBAAkB23T,GAAa/jR,GAAKqnR,kBAAkBxD,EAAWqD,cAAeH,EAASO,UAAYC,GAAqBp4B,EAAOq4B,WAEjLP,EAASQ,cAAgBpJ,KAAajyT,GAAS,4BAA6B23T,GACxEkD,EAASE,aAAa5F,cAA8B,YACxD0F,EAASS,YAAcrJ,KAAajyT,GAAS,0BAA2B23T,GACpEkD,EAASE,aAAa5F,cAA4B,UACtD,IAAI30H,EAAUq6H,EAASE,aAAa5F,cACpC,GAAKpyB,EAAOv4R,SAAaopC,GAAK2nR,YAAYjtT,KAAKy0R,EAAOv4R,QAClDowT,EAAWhnR,GAAK4nR,aAAaz4B,EAAOv4R,OAAQqwT,EAAUpD,EAAWqD,mBAEhE,CAkBD,GAjBAlsP,GAAO+rP,EAAU/mR,GAAK6nR,yBAAyB14B,EAAOv4R,QAAU,MAChEmwT,EAASe,WAA+B,aAAlBf,EAAS5oU,KAC/B4oU,EAASgB,UAA8B,YAAlBhB,EAAS5oU,KACzBkgU,OACDyI,EAAgB9mR,GAAKgoR,iBAAiBjB,EAAS5oU,KAAM8oU,EAASE,aAAatG,aAAcgD,EAAWqD,cAAeH,EAASkB,YAEhIlB,EAASmB,SAAW32U,KAAK42U,gBAAgBpB,EAASqB,yBAA0BrB,EAASsB,0BAA0B,GAC/G92U,KAAK42U,gBAAgBpB,EAASuB,sBAAuBvB,EAASwB,uBAAuB,GAAO,GACvFzrP,GAAYiqP,EAASyB,kBACtBzB,EAASwB,sBAAwBxB,EAASuB,sBAAwBvB,EAASyB,gBAE3E1rP,GAAYiqP,EAAS0B,eACrB1B,EAAS0B,aAAc,GAEvB1B,EAASe,aAAezJ,OACxByI,EAAgBA,EAAcllU,QAAQ,UAAWo+C,GAAK0oR,kBAErDrK,KAUD2I,EAAS2B,MAAQ3tP,GAAO,CAAC,EAAG,CAAC,EAAG5uE,GAAS26T,EAAS5oU,KAAO,QAAS4lU,IAClEiD,EAAS4B,MAAQ5tP,GAAO,CAAC,EAAG,CAAC,EAAG5uE,GAAS26T,EAAS5oU,KAAO,QAAS4lU,IAC5C,aAAlBgD,EAAS5oU,MAAuBgxS,EAAOm4B,UACvCtnR,GAAK6oR,sBAAsB,CAAC7B,EAAS4B,MAAO5B,EAAS2B,OAAQ1B,EAASG,eAAgBj4B,EAAOm4B,cAbpF,CACb,IAAIpjT,EAAQ4iT,EAAc5iT,MAAM,KAChC8iT,EAAS2B,MAAQ3oR,GAAK8oR,cAAc5kT,EAAM,IAAM,IAAMA,EAAM,IAAI,EAAM+iT,EAASG,gBAC/EJ,EAAS4B,MAAQ5oR,GAAK8oR,cAAc5kT,EAAM,IAAI,EAAO+iT,EAASG,gBAC1DL,EAAS0B,cACT1B,EAASgC,eAAiBn8H,EAAQkuE,GAAO,IACzCisD,EAASiC,UAAYz3U,KAAK03U,mBAAmB/kT,EAAM,IAE3D,CAYA,GAJc44D,GAAYiqP,EAASwB,yBAE/BxB,EAASwB,sBAAwBvB,EAAS2B,MAAMO,iBAEhDpsP,GAAYiqP,EAASuB,uBAAwB,CAC7C,IAAIa,EAAOnC,EAAS2B,MAAMS,gBAC1BrC,EAASuB,sBAAwBxrP,GAAYqsP,IAASpC,EAASgB,UAAY,EAAIoB,CACnF,CACA,IAAIE,EAAQtC,EAASwB,sBACjBe,EAAQvC,EAASuB,sBAChBxrP,GAAYusP,IAAWvsP,GAAYwsP,IAChCD,EAAQC,IACRvC,EAASuB,sBAAwBe,EAG7C,CAGA,OAFAruP,GAAOgsP,EAAS2B,MAAO5B,GACvB/rP,GAAOgsP,EAAS4B,MAAO7B,GAChB,SAAU5zU,GACb,OAAIC,MAAMD,GACCy5M,EAAQkuE,GAAO,IAEhB/4O,SAAS5uC,GAGZtC,EAAM04U,mBAAmBp2U,EAAO6zU,EAAUC,GAFtCr6H,EAAQkuE,GAAO,GAG9B,CACJ,EAOA8rD,EAAaqC,mBAAqB,SAAUp1T,GACxC,IAAIktC,EAAM,CAAC,EACPr4C,EAAQmL,EAAQnL,MAAMs3C,GAAKwpR,mBAC/B,GAAI9gU,GAASA,EAAM,GAAI,CACnB,IAAIq9T,EAAYr9T,EAAM,GAClBuL,EAAI8xT,EAAUr9R,YAAY,KAC9B,IAAW,IAAPz0B,EAAU,CACV,IAAIgqE,EAAO8nP,EAAU7hT,MAAM,KAAK,GAChC68B,EAAI0oR,QAAWxrP,EAAKtpF,OAASsf,EAAK,EAClC,IAAIzB,EAAIuzT,EAAUr9R,YAAY,IAAKz0B,EAAI,IAC5B,IAAPzB,IACAuuC,EAAI2oR,UAAYz1T,EAAI,EAAIzB,EAEhC,CACJ,CACA,OAAOuuC,CACX,EAUA6lR,EAAauB,gBAAkB,SAAUwB,EAAMC,EAAMC,EAAgBC,GACjE,IAAIC,EAASD,EAAa,IAAM,IAC5BE,EAAO,EACPC,EAAOtD,GAAU,IAAMoD,GAEvBG,EAAOvD,GAAU,IAAMoD,GAS3B,GARKjtP,GAAY6sP,KACbp4U,KAAK44U,WAAWR,EAAMM,EAAMH,GAC5BE,KAECltP,GAAY8sP,KACbr4U,KAAK44U,WAAWP,EAAMM,EAAMJ,GAC5BE,KAES,IAATA,EAAY,CACZ,KAAIL,EAAOC,GAIP,OAAO,EAHPlL,GAAWwL,EAAO,kCAAoCD,EAK9D,MACSJ,GAA2B,IAATG,GACvBtL,GAAW,OAASwL,EAAO,MAAQA,EAAO,mBAE9C,OAAO,CACX,EASAtD,EAAauD,WAAa,SAAU7pT,EAAKkR,EAAMs4S,GAC3C,IAAIr1U,EAAQq1U,EAAa,CAAC,EAAG,IAAM,CAAC,EAAG,KACnCxpT,EAAM7rB,EAAM,IAAM6rB,EAAM7rB,EAAM,KAC9BiqU,GAAWltS,EAAO,iCAAmC/8B,EAAM,GAAK,KAAOA,EAAM,GAErF,EASAmyU,EAAa2C,mBAAqB,SAAUp2U,EAAO4zU,EAAUE,GACzD,IAAImD,EACJ,IAAIttP,GAAYiqP,EAAS4B,MAAMxqU,MAA/B,CAIQhL,EAAQ,GACRA,IAAiB,EACjBi3U,EAAUrD,EAAS4B,OAGnByB,EADe,IAAVj3U,GACK4zU,EAASsD,UAGTtD,EAAS6B,MAEvB,IAAI0B,EAAS,GAIb,GAHIF,EAAQrC,YACR50U,GAAgB,KAEhBi3U,EAAQlC,SACRoC,EAAS/4U,KAAKg5U,yBAAyBp3U,EAAOi3U,EAAQ/B,yBAA0B+B,EAAQhC,+BAOxF,GAJAkC,EAAS/4U,KAAKi5U,gBAAgBr3U,EAAOi3U,EAAQ7B,sBAAuB6B,EAAQ9B,uBACxE8B,EAAQK,uBACRH,EAAS/4U,KAAKm5U,uBAAuBJ,EAAQF,EAAQK,uBAErDxD,EAAS0D,gBAAkBP,EAAQ7B,sBAAwB6B,EAAQ9B,uBAChE,WAAW5tT,KAAK4vT,GAAS,CAI5B,IAHA,IAAIrsP,EAAOqsP,EAAOpmT,MAAM,KACpB0mT,EAAc3sP,EAAK,GAEdvgF,EADCktU,EAAYj2U,OACH,EAAG+I,GAAK,IACK,MAAxBktU,EAAY,GAAKltU,IAAcA,GAAK0sU,EAAQ7B,uBADtB7qU,IAEtBktU,EAAcA,EAAYzoU,MAAM,EAAGzE,GAM3C4sU,EAASrsP,EAAK,GAAK,IAAM2sP,CAC7B,CAaJ,MAXqB,eAAjBR,EAAQjsU,OAERmsU,GADAA,EAASn3U,EAAM03U,cAAcT,EAAQ9B,wBACrB1mU,QAAQ,IAAKqlU,EAASE,aAAa5F,cAAczmD,GAAO,MAE5EwvD,EAASA,EAAO1oU,QAAQ,IAAKqlU,EAASE,aAAa5F,cAAczmD,GAAO,KACxEwvD,EAA4B,sBAAnBF,EAAQxzT,OAAiCrlB,KAAKu5U,kBAAkBhtT,SAASwsT,IAAWA,EACzFF,EAAQ3B,cAER6B,EAAS/4U,KAAKw5U,aAAaT,EAAQF,EAAQpB,UAAUS,QAASW,EAAQrB,gBAAkB,IAAK9B,EAASE,aAAa5F,cAAczmD,GAAO,KAAO,IAAKsvD,EAAQpB,UAAUU,YAE1KY,EAASlzR,GAAOopR,kBAAkB8J,EAAQtqR,GAAKsmR,eAAgBW,EAASE,aAAarsD,QAC/D,QAAlBsvD,EAAQY,MACDZ,EAAQY,MAGRZ,EAAQY,MAAQV,EAASF,EAAQa,IAEhD,CACJ,EASArE,EAAa2D,yBAA2B,SAAUp3U,EAAOgoD,EAAK3c,GAC1D,IAAIy/C,EAAO9qF,EAAQ,GAGnB,OADa8qF,EAAKtpF,OACLwmD,EACFhoD,EAAM+3U,YAAY/vR,KAGzB8iC,EAAO9qF,EAAM+3U,YAAY1sS,IAEb,EAEpB,EAWAooS,EAAamE,aAAe,SAAUzqT,EAAK6qT,EAAQr7M,EAAKs7M,EAAeC,GAMnE,IALA,IAAIC,GAAQhO,GAAkB+N,IAAsB,IAAXA,EACrCnnT,EAAQ5D,EAAI4D,MAAMknT,GAClB7yR,EAASr0B,EAAM,GACfvvB,EAAS4jD,EAAO5jD,OAChBuqC,EAAM,GACHvqC,EAASw2U,GACZjsS,EAAMqZ,EAAOp2C,MAAMxN,EAASw2U,EAAQx2U,IAAWuqC,EAAIvqC,OAC9Cm7H,EAAM5wF,EAAO,IAClBvqC,GAAUw2U,EACNG,IACAH,EAASE,EACTC,GAAO,GAIf,OADApnT,EAAM,GAAKq0B,EAAOp2C,MAAM,EAAGxN,IAAWuqC,EAAIvqC,OAASm7H,EAAM,IAAM5wF,EACxDhb,EAAM3sB,KAAK6zU,EACtB,EASAxE,EAAa4D,gBAAkB,SAAUr3U,EAAOgoD,EAAK3c,GACjD,IAAIy/C,GAAQ9qF,EAAQ,IAAI+wB,MAAM,KAAK,GAC/BvvB,EAASspF,EAAOA,EAAKtpF,OAAS,EAClC,GAAIwmD,GAAOxmD,EAASwmD,EAAK,CACrB,IAAI4F,EAAM,GACV,GAAe,IAAXpsD,EAGC,CACDosD,GAAO5tD,EACP,IAAK,IAAIoO,EAAI,EAAGA,EAAI45C,EAAMxmD,EAAQ4M,IAC9Bw/C,GAAO,IAEX,OAAOA,CACX,CACA,OATIA,EAAM5tD,EAAM8gH,QAAQ94D,GASjBhoD,EAAM8gH,QAAQ94D,EACzB,CACK,OAAKmiR,GAAkB9+R,KAAS7pC,EAAS6pC,GAAe,IAARA,GAC1CrrC,EAAM8gH,QAAQz1E,GAElBrrC,EAAQ,EACnB,EAQAyzU,EAAa8D,uBAAyB,SAAUv3U,EAAOgoD,GACnD,IAAI8iC,EAAO9qF,EAAM+wB,MAAM,KACnBqnT,EAAOttP,EAAK,GACZ/8B,EAAMqqR,EAAK52U,OACf,GAAIusD,EAAM/F,EAAK,CACX,IAAK,IAAIz9C,EAAI,EAAGA,EAAIy9C,EAAM+F,EAAKxjD,IAC3B6tU,EAAO,IAAMA,EAEjBttP,EAAK,GAAKstP,CACd,CACA,OAAOttP,EAAK1mF,KAAK,IACrB,EAMAqvU,EAAakE,kBAAoB,SAAU33U,GACvC,GAAIA,GAAS,IAAQ,CAEjB,IAAI0zC,GADJ1zC,GAAS,KACMkV,WAAW6b,MAAM,KAAuBsnT,GAAP3kS,EAAG,GAAcA,EAAG,IACpE,OAAO2kS,IAAYA,EAAQ/yT,UAAU,EAAG,IAAM,EACxCtjB,KAAKC,KAAKjC,GAAOkV,WACjBlT,KAAKiG,MAAMjI,GAAOkV,UAC5B,CACA,MAAO,EACX,EACOu+T,CACX,CA/VkC,GCjB9BtD,GAAa,cACbmI,GAAY,WACZjI,GAAa,CACb3yO,OAAQ,aACRH,KAAM,WACNM,OAAQ,aACRx8F,IAAK,UACLgG,MAAO,WACPgZ,aAAc,mBASdk4T,GAA4B,WAC5B,SAASA,IACT,CAuYA,OA9XAA,EAAWC,WAAa,SAAUhI,EAASx0B,EAAQy0B,GAC/C,IAAI/yU,EAAQU,KACRsyU,EAAa7jR,GAAK8jR,eAAeF,EAAMD,EAASx0B,EAAOjiN,UACvD0+O,EAAax0R,GAAOupR,yBAAyBkD,EAAWgB,aAAcztR,GAAO2oR,mBAAmB6D,IAAO,EAAOvF,MAC9GwN,EAAe,CAAC,EAChBxN,MAAclvB,EAAOi1B,mBACrBj1B,EAASnvP,GAAKqkR,yBAAyBl1B,EAAQw0B,IAEnD,IAGImI,EAHAxH,EAAan1B,EAAOv4R,QACpBopC,GAAKukR,oBAAoBp1B,EAAOq1B,SAAUX,EAAWG,WAAY70B,EAAOhxS,MAAM,EAAOkgU,KAAasF,EAAU,IAC5GoI,EAAc,GAElB,GAAIjvP,GAAYwnP,GACZ5F,GAAW,oDAEV,CACD4F,EAAatkR,GAAK2kR,wBAAwBL,GAC1CuH,EAAe,CAAE3H,UAAWlkR,GAAKmkR,aAAazpT,KAAKy0R,EAAOjiN,UAAWr5E,QAASywT,EAAY0H,aAAc,CAAC,EAAGrI,QAASA,GAUrH,IATA,IAAIsI,EAAe3H,EAAW57T,MAAMs3C,GAAKmlR,iBAAmB,GACxD7yB,EAAW25B,EAAat3U,OACxBu3U,EAAgB,EAChBC,EAAe,EACfC,GAAiB,EACjBC,EAAQT,EAAWzK,aAEnByD,EAAYvG,KAAawF,EAAWgB,aAAa76B,QACjD5yP,GAAOkqR,gBAAgBuC,EAAWgB,aAAcztR,GAAO2oR,mBAAmB6D,IACrElmU,EAAI,EAAGA,EAAI40S,EAAU50S,IAAK,CAC/B,IAAIwhC,EAAM+sS,EAAanuT,SAASpgB,EAAE2K,WAAY,KAC1C64C,EAAMhiB,EAAIvqC,OACVs0B,EAAmB,MAAXiW,EAAI,GAAc,IAAMA,EAAI,GACpC8M,OAAW,EACXsgS,OAAY,EAEZC,EAAU9I,GAAgBx6S,GAC1BujT,EAAoB,IAARtrR,EAAa,GAAK,IAKlC,OAJIkrR,IACAF,EAAgBC,EAChBC,GAAiB,GAEbnjT,GACJ,IAAK,IACL,IAAK,IAED,IAAIwjT,OAAW,EAGXA,EAFApO,KAEWjyT,GAAS,QAAU4zC,GAAK+kR,WAAW7jR,GAAM2iR,EAAWG,YAIpDH,EAAWG,WAAWhkR,GAAKx5C,MAAM88T,IAAYtjR,GAAK+kR,WAAW7jR,IAG5E,IAAIwrR,EAAat1R,GAAO6oR,cAAcwM,GAEtCV,GAAe,IAAM/6U,OAAO8E,KAAK42U,GAAYn1U,KAAK,KAAO,IACzD,MACJ,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IAED,GADA+0U,GAAY,GACE,MAATrjT,GAAyB,MAATA,IAAiBi4B,EAAM,EAAG,CAC3C,IAAIyrR,OAAY,EAGZA,EAFAtO,KAEYjyT,GAAS,UAAY4zC,GAAK+kR,WAAW7jR,GAAM2iR,EAAWG,YAItDH,EAAWG,WAAgB,OAAEV,IAAYtjR,GAAK+kR,WAAW7jR,IAGzE2qR,EAAaU,GAAWn1R,GAAO6oR,cAAc0M,GAE7CZ,GAAe,IAAM/6U,OAAO8E,KAAK+1U,EAAaU,IAAUh1U,KAAK,KAAO,GACxE,MACK,GAAa,MAAT0xB,EAAc,CACnB,GAAIi4B,EAAM,EACN,SAEJlV,GAAW,EACX+/R,GAAe,IAAMM,EAAQA,EAAQ,IAAMA,EAA5B,IACnB,MAEIrgS,GAAW,EACX+/R,GAAe,IAAMM,EAAQA,EAAQG,EAAW,IAEvC,MAATvjT,IACA4iT,EAAa3/J,QAAS,GAE1B,MACJ,IAAK,IAGD6/J,GAAe,IAAMM,GADH,IAARnrR,EAAY,IAAM,IACOmrR,EAAQ,IAC3C,MACJ,IAAK,IACDC,EAAYtgS,GAAW,EAEnB+/R,GADQ,IAAR7qR,EACe,IAAMmrR,EAAQA,EAAQ,IAGtB,IAAMA,EAAQ,IAAMnrR,EAAM,MAE7C,MACJ,IAAK,IACDorR,GAAY,EAEZ,IAAIM,EAAcvO,KACdjyT,GAAS,aAAcy3T,EAAWG,YAClC53T,GAAS,yBAA0By3T,EAAWG,YAElD6H,EAAaU,GAAWn1R,GAAO6oR,cAAc2M,GAE7Cb,GAAe,IAAM/6U,OAAO8E,KAAK+1U,EAAaU,IAAUh1U,KAAK,KAAO,IACpE,MACJ,IAAK,IACD+0U,GAAY,EAEZ,IAAIrH,EAAS/jR,GAAO,EAAK,UAAqB,IAARA,EAAa,WAAa,YAEhE2qR,EAAaU,GAAWn1R,GAAO6oR,cAAc5B,KACzCjyT,GAAS,OAAQy3T,EAAWG,YAAc53T,GAAS,QAAU64T,EAAOpB,EAAWG,aAEnF+H,GAAe,IAAM/6U,OAAO8E,KAAK+1U,EAAaU,IAAUh1U,KAAK,KAAO,KACpE,MACJ,IAAK,IAGD+0U,EAAsB,KADX,IAAIt5U,MAAO+f,oBAGtB84T,EAAaU,GAAWngU,GAAS,sBAAuBy3T,EAAWgB,cAEnE,IAAIgI,EAAQhB,EAAaU,GAGrBO,GAFJhB,EAAY5qR,EAAM,GAEQ,QAAU2rR,EAAM7G,WAC1C8G,EAAWA,EAASlrU,QAAQ,KAAMgjU,EAAUpD,eAC5CuK,GAAe,IAAMx6U,KAAKw7U,kBAAkBD,EAAUD,EAAOR,GAAS,KACtED,GAAiB,EACjBD,EAAeL,EAAW,EAAI,GAC9B,MACJ,IAAK,IAGDC,GAAe,IADD7sS,EAAIt9B,QAAQ,KAAM,IACD,KAC/B,MACJ,QACImqU,GAAe,UAMvB,GAHIO,IACAT,EAAaG,aAAa,GAAKO,GAAW,CAAEvgS,SAAUA,EAAUvD,IAAK/qC,EAAI,EAAIwuU,EAAeJ,SAAUA,IAEtGpuU,IAAM40S,EAAW,IAAMgrB,GAAkByO,GAAc,CACvD,IAAIxpR,EAASr6C,OACb2jU,EAAamB,YAAc,IAAIzqR,EAAO,IAAMwpR,EAAc,IAAK,IACnE,CACJ,CACJ,CACA,OAAO,SAAU54U,GACb,IAAIq3F,EAAkB35F,EAAMo8U,kBAAkB95U,EAAO04U,EAAcD,GACnE,GAAItO,GAAkB9yO,KAAqBx5F,OAAO8E,KAAK00F,GAAiB71F,OACpE,OAAO,KAEX,GAAIk3U,EAAa3H,UAAW,CACxB,IAAIgJ,EAAO,CAAC,EACRjL,EAAQz3O,EAAgBv6E,KACxBk9T,EAAQ3iP,EAAgBh2F,IACxBwtU,EAASx3O,EAAgBhwF,MACzB4yU,EAASnL,EAASA,EAAQ,GAAM,GAChCoL,EAAkC,IAAlBD,EAAOz4U,OACtBstU,GAAUD,GAAWmL,IAASE,IAC/BH,EAAO1N,GAAYsC,aAAa,IAAI9uU,OAEpCq6U,IACApL,EAAQnkT,UAAUovT,EAAKj9T,KAAO,IAAI9N,MAAM,EAAG,GAAKirU,EAAQ,KAG5D,IAAIpJ,EAAaxE,GAAYwD,YAAYf,GAASiL,EAAKj9T,KAAM+xT,GAAUkL,EAAK1yU,MAAO2yU,GAASD,EAAKz7U,MACjG+4F,EAAgBv6E,KAAO+zT,EAAWryU,cAClC64F,EAAgBhwF,MAAQwpU,EAAWtyU,WAAa,EAChD84F,EAAgBh2F,IAAMwvU,EAAWnwU,SACrC,CACA,OAAOhD,EAAMy8U,cAAc9iP,EAC/B,CACJ,EASAkhP,EAAW4B,cAAgB,SAAUj9T,EAASld,GAC1C,IAAIs2F,EAAMt2F,GAAS,IAAIH,KACvBy2F,EAAIsM,gBAAgB,GACpB,IACIrqF,EAAI2E,EAAQJ,KACZ21T,EAAQv1T,EAAQ20T,WAChB6H,EAAQx8T,EAAQi1E,SACpB,IAAKxI,GAAYpxE,GAAI,CAEjB,IADWA,EAAI,IAAI/W,QACR,EAEP+W,GADoD,IAAtCvW,KAAKiG,MAAMquF,EAAI93F,cAAgB,KAGjD83F,EAAI2M,YAAY1qF,EACpB,CACA,IAAK,IAAI7K,EAAK,EAAG0sU,EAZL,CAAC,OAAQ,SAAU,SAAU,eAAgB,QAAS,OAYhC1sU,EAAK0sU,EAAQ54U,OAAQkM,IAAM,CACzD,IAAIhD,EAAM0vU,EAAQ1sU,GAEd2sU,EAASn9T,EAAQxS,GAIrB,GAHIi/E,GAAY0wP,IAAmB,QAAR3vU,GACvB4rF,EAAIx0F,QAAQ,IAEX6nF,GAAY0wP,GACb,GAAY,UAAR3vU,EAAiB,CAEjB,IADA2vU,GAAU,GACG,GAAKA,EAAS,GACvB,OAAO,IAAIx6U,KAAK,WAEpB,IAAIy6U,EAAQhkP,EAAI51F,UAChB41F,EAAIx0F,QAAQ,GAEZw0F,EAAI+5O,GAAW3lU,IAAM2vU,GACrB,IAAIE,EAAQ,IAAI16U,KAAKy2F,EAAI93F,cAAe67U,EAAS,EAAG,GAAG35U,UACvD41F,EAAIx0F,QAAQw4U,EAAQC,EAAQD,EAAQC,EACxC,KACK,CACD,GAAY,QAAR7vU,EAAe,CACf,IAAIwD,EAAU,IAAIrO,KAAKy2F,EAAI93F,cAAe83F,EAAI/3F,WAAa,EAAG,GAAGmC,UACjE,GAAK25U,EAAS,GAAKA,EAASnsU,EACxB,OAAO,IAEf,CAEAooF,EAAI+5O,GAAW3lU,IAAM2vU,EACzB,CAER,CACA,IAAK1wP,GAAY8oP,GAAQ,CACrB,IAAIl1O,EAAOjH,EAAI/0E,WACD,OAAVkxT,EACAn8O,EAAIz1F,SAAS08F,GAAiB,KAATA,EAAc,EAAI,KAEzB,KAATA,GACLjH,EAAIz1F,SAAS,EAErB,CACA,IAAK8oF,GAAY+vP,GAAQ,CACrB,IAAIc,EAAUd,EAAQpjP,EAAI12E,oBACV,IAAZ46T,GACAlkP,EAAI0M,WAAW1M,EAAI90E,aAAeg5T,EAE1C,CACA,OAAOlkP,CACX,EASAiiP,EAAWuB,kBAAoB,SAAU95U,EAAO04U,EAAc9kP,GAC1D,IAAI/gE,EAAU7yB,EAAMuV,MAAMmjU,EAAamB,aACnCY,EAAa,CAAE,KAAQ,EAAG,OAAU,EAAG,OAAU,GACrD,GAAItQ,GAAkBt3S,GAClB,OAAO,KAIP,IADA,IACSnlB,EAAK,EAAGgtU,EADL78U,OAAO8E,KAAK+1U,EAAaG,cACHnrU,EAAKgtU,EAAQl5U,OAAQkM,IAAM,CACzD,IAAI3K,EAAO23U,EAAQhtU,GACfitU,EAAYjC,EAAaG,aAAa,GAAK91U,GAC3C63U,EAAc/nT,EAAQ8nT,EAAUrlS,KACpC,GAAIqlS,EAAU9hS,SAEV4hS,EAAW13U,GAAQ3E,KAAKy8U,qBAAqBD,EAAahnP,QAG1D,GAAa,aAAT7wF,GAAwB4mF,GAAYixP,GAkBpCA,EAAyB,UAAT73U,GAAuB21U,EAAa3H,WAAwC,OAAzB2H,EAAalI,SAA6C,UAAzBkI,EAAalI,SAAgD,UAAzBkI,EAAalI,QACvEoK,EAAxEA,EAAY,GAAGz6T,cAAgBy6T,EAAYt1T,UAAU,GAAGxG,cAE9D27T,EAAW13U,GAAQ21U,EAAa31U,GAAM63U,OArBY,CAClD,IAAItlS,EAAMqlS,EAAUrlS,IAChBnoB,OAAM,EACN2tT,EAASjoT,EAAQyiB,EAAM,GACvB6iS,GAAQxuP,GAAYmxP,GACpBH,EAAUhC,SACVxrT,EAA+D,GAAzD/uB,KAAK28U,aAAa5C,EAAM2C,EAAQjoT,EAAQyiB,EAAM,GAAIs+C,IAGxDzmE,EAA+D,GAAzD/uB,KAAK28U,aAAa5C,EAAM2C,EAAQjoT,EAAQyiB,EAAM,GAAIs+C,GACxDzmE,GAAO/uB,KAAK28U,aAAa5C,EAAMtlT,EAAQyiB,EAAM,GAAIziB,EAAQyiB,EAAM,IAAKs+C,IAEnEu2O,GAAkBh9S,KACnBstT,EAAW,GAAK13U,GAAQoqB,EAEhC,CASR,CAKJ,OAJQurT,EAAa3/J,SACb0hK,EAAW1hK,QAAS,GAGrB0hK,CACX,EAQAlC,EAAWsC,qBAAuB,SAAU76U,EAAOg8S,GAE/C,OADAh8S,EAAQikD,GAAOopR,kBAAkBrtU,EAAOg8S,EAAO+xB,iBAAkB/xB,EAAO8xB,aACpEwK,GAAU/wT,KAAKvnB,IACPA,EAEL,IACX,EASAu4U,EAAWqB,kBAAoB,SAAU/G,EAAY1+N,EAAOq6N,GACxD,IACI5gR,EAEAotR,EAHAt6T,EAAUyzF,EAAM6+N,UAEhBiI,EAAS,IAAMzM,EAAN,KAA2BA,EAAS,IAcjD,OAZA5gR,EAAMilR,EAAWpkU,QAAQ,IAAK,OAQ9BusU,GANIptR,GAD8B,IAA9BilR,EAAW9pU,QAAQ,MACb6kD,EAAIn/C,QAAQ,SAAU,IAAMwsU,EAAS,KAGrCrtR,EAAIn/C,QAAQ,OAAQ,IAAMwsU,EAAS,OAG7BlqT,MAAM,KAAK1sB,KAAI,SAAU0nC,GACrC,OAAOrrB,EAAQjS,QAAQ,MAAOs9B,EAClC,IACA6hB,EAAMotR,EAAS52U,KAAK,KAAO,IAAM+vG,EAAM2+N,aAE3C,EAUAyF,EAAWwC,aAAe,SAAU5C,EAAM3B,EAAMC,EAAM7iP,GAClD,IAAIsnP,EAAO/C,EAAO3B,EAAOC,EACzB,IAAKyE,EACD,OAAO,EAEX,IAAIl7U,EAAQ5B,KAAKy8U,qBAAqBK,EAAMtnP,GAC5C,OAAIukP,GACQn4U,EAELA,CACX,EACOu4U,CACX,CA1YgC,GClB5B4C,GAAa,IADJpmU,OACe,qEACxBqmU,GAAa,KACbz4U,GAAO,CAAC,YAAa,YAMrB04U,GAA8B,WAC9B,SAASA,IACT,CAwHA,OA/GAA,EAAaC,aAAe,SAAU9K,EAASx0B,EAAQy0B,GACnD,IAGIgI,EAHA/6U,EAAQU,KACRsyU,EAAa7jR,GAAK8jR,eAAeF,EAAMD,EAAS,IAAI,GACpDkI,EAAe,CAAE6C,QAAQ,GAExB1uR,GAAK2nR,YAAYjtT,KAAKy0R,EAAOv4R,UAAcu4R,EAAOv4R,QACnDokE,GAAO6wP,EAAc7rR,GAAK6nR,yBAAyB14B,EAAOv4R,QAAU,MACpEi1T,EAAa6C,QAAS,EACjB7C,EAAarD,gBACVr5B,EAAOm5B,wBACPuD,EAAavD,sBAAwBn5B,EAAOm5B,wBAKpDttP,GAAO6wP,EAAc7rR,GAAK4nR,aAAaz4B,EAAOv4R,OAAQ,KAAM,OAEhE,IAMI+3T,EANA3kC,EAAU59R,GAAS,UAAWy3T,EAAWgB,cAO7C,GALA+G,EAAax0R,GAAOupR,yBAAyBkD,EAAWgB,aAAcztR,GAAO2oR,mBAAmB6D,IAAO,EAAMvF,MAC7GwN,EAAa+C,YAAcx3R,GAAO+oR,eAAenvU,OAAO8E,KAAK81U,EAAWvK,cAExEwK,EAAagD,SAAWjD,EAAWxK,mBAAmBtrU,GAAK,IAEtDuoU,KAUDwN,EAAalD,MAAQ3tP,GAAO,CAAC,EAAG,CAAC,EAAG5uE,GAASy/T,EAAa1tU,KAAO,QAAS6rS,IAC1E6hC,EAAajD,MAAQ5tP,GAAO,CAAC,EAAG,CAAC,EAAG5uE,GAASy/T,EAAa1tU,KAAO,QAAS6rS,IAChD,aAAtB6hC,EAAa1tU,MAAuBgxS,EAAOm4B,UAC3CtnR,GAAK6oR,sBAAsB,CAACgD,EAAajD,MAAOiD,EAAalD,OAAQv8T,GAAS,iBAAkB49R,GAAUmF,EAAOm4B,eAXrH,GADAqH,EAAgB3uR,GAAKgoR,iBAAiB6D,EAAa1tU,KAAMytU,EAAW/K,aAAcgD,EAAWqD,cAAe2E,EAAa5D,WACtG,CAEf,IAAI/jT,GADJyqT,EAAgBA,EAAc/sU,QAAQ,UAAWo+C,GAAK0oR,kBAC5BxkT,MAAM,KAChC2nT,EAAalD,MAAQ3oR,GAAK8oR,cAAc5kT,EAAM,IAAM,IAAMA,EAAM,IAAI,EAAM,IAC1E2nT,EAAajD,MAAQ5oR,GAAK8oR,cAAc5kT,EAAM,IAAI,EAAM,GAC5D,CASJ,OAAO,SAAU/wB,GACb,OAAOtC,EAAMi+U,gBAAgB37U,EAAO04U,EAAcD,EACtD,CACJ,EASA4C,EAAaM,gBAAkB,SAAU37U,EAAOkd,EAASu7T,GACrD,IAAImD,EACAhH,EACAiH,EACAzD,EACA5gS,EACAoW,EACJ,IAAyC,IAArC5tD,EAAM+I,QAAQmU,EAAQw+T,UACtB,OAAOlyR,IAGPxpD,EAAQikD,GAAOopR,kBAAkBrtU,EAAOkd,EAAQu+T,YAAahD,EAAWvK,aAG7C,KAD3BluU,GAAgC,KADhCA,EAAQikD,GAAOopR,kBAAkBrtU,EAAOy4U,EAAW1K,iBAAkB0K,EAAW3K,cAClE/kU,QAAQ,KAAc/I,EAAMyO,QAAQ,KAAM,OAASzO,GACvD+I,QAAQ,OACd/I,EAAQ,IAAMA,GAElB,IAAI6yB,EAAU7yB,EAAMuV,MAAM4lU,IAC1B,GAAIhR,GAAkBt3S,GAClB,OAAO7O,IAEXo0T,EAAOvlT,EAAQ,GACfgpT,EAAYhpT,EAAQ,GACpB,IAAIipT,EAAWjpT,EAAQ,GAyBvB,OAxBA2kB,EAAM3kB,EAAQ,GAGd+hT,GAFAgH,EAAa1+T,EAAQq+T,OAAWnD,IAASl7T,EAAQs4T,MAAMqC,OAAWrgS,IAAQt6B,EAAQs4T,MAAMsC,MAC3C,IAAvCM,EAAKrvU,QAAQmU,EAAQs4T,MAAMqC,SAAwD,IAArCrgS,EAAIzuC,QAAQmU,EAAQs4T,MAAMsC,OAE1E56T,EAAQs4T,MAAMZ,UACd13T,EAAQu4T,MAAMb,UAClBiH,EAAYA,EAAUptU,QAAQ2sU,GAAY,IACtCU,IACAD,GAAaC,GAEjBluR,GAAOiuR,GACc,YAAjB3+T,EAAQlS,MAAsB4pU,KAC9BhnR,GAAY,MAEZ1wC,EAAQq+T,QAAUr+T,EAAQm4T,kBAC1BznR,EAAM9e,WAAW8e,EAAIkzD,QAAQ5jG,EAAQq+T,OAChCK,EAAa1+T,EAAQs4T,MAAML,sBAAwBj4T,EAAQu4T,MAAMN,sBAAyBj4T,EAAQm4T,kBAEvGn4T,EAAQi4T,wBACRvnR,EAAMxvD,KAAK29U,qBAAqBF,EAAW3+T,EAAS0wC,EAAKguR,IAEzDA,IACAhuR,IAAQ,GAELA,CAEf,EACAytR,EAAaU,qBAAuB,SAAU/7U,EAAOkd,EAAS0wC,EAAKguR,GAC/D,IAAII,EAAoBh8U,EAAM+wB,MAAM,KAKpC,OAJIirT,EAAkB,IAAMA,EAAkB,GAAGx6U,OAAS0b,EAAQi4T,wBAC9DvnR,GAAQA,EAAIkzD,QAAQ5jG,EAAQq+T,OACvBK,EAAa1+T,EAAQs4T,MAAML,sBAAwBj4T,EAAQu4T,MAAMN,sBAAyBj4T,EAAQi4T,wBAEpGvnR,CACX,EACOytR,CACX,CA3HkC,GCX9BY,GAA0B,WAC1B,SAASA,EAAS5iU,GACdjb,KAAK89U,SAAW,GAChB99U,KAAK+9U,cAAgB,CAAC,EAClBhS,GAAkB9wT,KAGtBjb,KAAKib,QAAUA,EACnB,CAuLA,OA7KA4iU,EAASltU,UAAU4I,GAAK,SAAUoD,EAAU1Y,EAASgX,EAASkb,GAC1D,IAAI41S,GAAkB9nU,GAAtB,CAGA,IAAI+5U,EAAQ/iU,GAAWjb,KAAKib,QACxBjb,KAAKi+U,SAASthU,GACd3c,KAAK+9U,cAAc,GAAKphU,GAAY,CAAC,CAAE1Y,QAASA,EAASgX,QAAS+iU,IAGjEjS,GAAkB51S,GAMbn2B,KAAKk+U,iBAAiBl+U,KAAK+9U,cAAc,GAAKphU,GAAW1Y,IAC/DjE,KAAK+9U,cAAc,GAAKphU,GAAUvQ,KAAK,CAAEnI,QAASA,EAASgX,QAAS+iU,KANjC,IAA/Bh+U,KAAK89U,SAASnzU,QAAQwrB,KACtBn2B,KAAK89U,SAAS1xU,KAAK+pB,GACnBn2B,KAAK+9U,cAAc,GAAKphU,GAAUvQ,KAAK,CAAEnI,QAASA,EAASgX,QAAS+iU,EAAO7nT,GAAIA,IATvF,CAeJ,EASA0nT,EAASltU,UAAU6I,IAAM,SAAUmD,EAAU1Y,EAASkyB,GAClD,IAAIn2B,KAAKi+U,SAASthU,GAAlB,CAGA,IAAI4/T,EAAY1hU,GAAS8B,EAAU3c,KAAK+9U,eACxC,GAAI95U,GACA,IAAK,IAAIkI,EAAI,EAAGA,EAAIowU,EAAUn5U,OAAQ+I,IAClC,GAAIgqB,GACA,GAAIomT,EAAUhwT,SAASpgB,EAAE2K,WAAY,KAAKqf,KAAOA,EAAI,CACjDomT,EAAU/mT,OAAOrpB,EAAG,GACpB,IAAIgyU,EAAgBn+U,KAAK89U,SAASnzU,QAAQwrB,IACnB,IAAnBgoT,GACAn+U,KAAK89U,SAAStoT,OAAO2oT,EAAe,GAExC,KACJ,OAEC,GAAIl6U,IAAYs4U,EAAUhwT,SAASpgB,EAAE2K,WAAY,KAAK7S,QAAS,CAChEs4U,EAAU/mT,OAAOrpB,EAAG,GACpB,KACJ,cAIGnM,KAAK+9U,cAAc,GAAKphU,EArBnC,CAuBJ,EAUAkhU,EAASltU,UAAU0oM,OAAS,SAAU18L,EAAUkQ,EAAUuxT,EAAgBnqI,GACtE,GAAIj0M,KAAKi+U,SAASthU,GACVyhU,GACAA,EAAez+U,KAAKK,KAAM6sB,OAFlC,CAMIA,IACAA,EAASnoB,KAAOiY,GAEpB,IACI4/T,EAAY1hU,GAAS8B,EAAU3c,KAAK+9U,eAAentU,MAAM,GAC7D,GAAIogB,OAAkB,OAClB,OAAOhxB,KAAKq+U,eAAe9B,EAAW1vT,EAAUuxT,EAAgBnqI,EAAc,GAG9E,IAAK,IAAI3kM,EAAK,EAAGgvU,EAAc/B,EAAWjtU,EAAKgvU,EAAYl7U,OAAQkM,IAAM,CACrE,IAAI2oR,EAAMqmD,EAAYhvU,GACtB2oR,EAAIh0R,QAAQtE,KAAKs4R,EAAIh9Q,QAAS4R,EAClC,CACIuxT,GACAA,EAAez+U,KAAKK,KAAM6sB,EAflC,CAkBJ,EACAgxT,EAASltU,UAAU0tU,eAAiB,SAAUE,EAAM1xT,EAAUuxT,EAAgBnqI,EAAcxnL,GACxF,IAAIntB,EAAQU,KACRw+U,EAAY/xT,IAAU8xT,EAAKn7U,OAAS,EACxC,GAAIqpB,EAAQ8xT,EAAKn7U,OAAQ,CACrB,IAAIq7U,EAAQF,EAAKhyT,SAASE,EAAM3V,WAAY,KACxCkmH,EAAUyhN,EAAMx6U,QAAQtE,KAAK8+U,EAAMxjU,QAAS4R,GAChD,GAAImwG,GAAmC,oBAAjBA,EAAQ/B,KAAqB,CAC/C,IAAKmjN,EACD,OAAOphN,EAEXA,EAAQ/B,MAAK,SAAU/wF,GAGnB,GAFAA,EAAuB,kBAATA,GAAqB5qC,EAAMo/U,OAAOx0S,GAAQuG,KAAKuL,MAAM9R,EAAM5qC,EAAMq/U,aAAez0S,EAC9Fu/C,GAAO58D,EAAUA,EAAUqd,GAAM,IAC7Bk0S,IAAkBI,EAIlB,OAAOl/U,EAAM++U,eAAeE,EAAM1xT,EAAUuxT,EAAgBnqI,EAAcxnL,EAAQ,GAHlF2xT,EAAez+U,KAAK8+U,EAAMxjU,QAAS4R,EAK3C,IAAGuvG,OAAM,SAAUlyF,GACX+pK,GACAA,EAAat0M,KAAK8+U,EAAMxjU,QAAyB,kBAATivB,GACpC5qC,EAAMo/U,OAAOx0S,GAAQuG,KAAKuL,MAAM9R,EAAM5qC,EAAMq/U,aAAez0S,EAEvE,GACJ,KACK,KAAIk0S,IAAkBI,EAIvB,OAAOx+U,KAAKq+U,eAAeE,EAAM1xT,EAAUuxT,EAAgBnqI,EAAcxnL,EAAQ,GAHjF2xT,EAAez+U,KAAK8+U,EAAMxjU,QAAS4R,EAIvC,CACJ,CACJ,EAEAgxT,EAASltU,UAAUguU,YAAc,SAAUryU,EAAK1K,GAE5C,OAAIkrU,IAA6B,kBAAVlrU,GAAgD,OAA1BA,EAAMuV,MADpC,wCAEH,IAAI1V,KAAKG,GAEbA,CACZ,EACAi8U,EAASltU,UAAU+tU,OAAS,SAAU98U,GAClC,IACI6uC,KAAKuL,MAAMp6C,EACf,CACA,MAAOvB,GACH,OAAO,CACX,CACA,OAAO,CACX,EAMAw9U,EAASltU,UAAUymI,QAAU,WACzBp3I,KAAK+9U,cAAgB/9U,KAAKib,aAAU5X,CACxC,EAOAw6U,EAASltU,UAAUstU,SAAW,SAAUt5U,GAEpC,OAAmD,IAA5C3E,KAAK+9U,cAAcjtU,eAAenM,IAAmB3E,KAAK+9U,cAAcp5U,GAAMvB,QAAU,CACnG,EAQAy6U,EAASltU,UAAUutU,iBAAmB,SAAUH,EAAe95U,GAC3D,IAAK,IAAIqL,EAAK,EAAGsvU,EAAkBb,EAAezuU,EAAKsvU,EAAgBx7U,OAAQkM,IAAM,CAEjF,GADUsvU,EAAgBtvU,GAClBrL,UAAYA,EAChB,OAAO,CAEf,CACA,OAAO,CACX,EACO45U,CACX,CAhM8B,GCSnBgB,GAAe,IAAIhB,GAInBiB,IAAc,EAMdC,GAAW,CAAC,EAMZC,GAAiB,QAMjBhJ,GAAsB,MAC7BzsD,GAAS,CAAC,gBAAiB,cAoC3B01D,GAAsC,WACtC,SAASA,EAAqBC,GACtBA,IACAl/U,KAAKoyU,QAAU8M,EAEvB,CA4HA,OArHAD,EAAqBtuU,UAAUwuU,cAAgB,SAAUrgU,GACrD,OAAOqzT,GAAW7iO,WAAWtvG,KAAKo/U,aAActgU,GAAW,CAAElS,KAAM,OAAQqmU,SAAU,SAAW8L,GACpG,EAOAE,EAAqBtuU,UAAU0uU,gBAAkB,SAAUvgU,GAOvD,OANIA,IAAYA,EAAQi3T,WACpBj3T,EAAQi3T,SAAWC,IAEnBlJ,MAAchuT,IAAYA,EAAQuG,SAClCvG,EAAQk4T,sBAAwB,GAE7B3B,GAAaC,gBAAgBt1U,KAAKo/U,aAActgU,GAAW,CAAC,EAAGigU,GAC1E,EAOAE,EAAqBtuU,UAAU2uU,cAAgB,SAAUxgU,GACrD,OAAOq7T,GAAWC,WAAWp6U,KAAKo/U,aAActgU,GAAW,CAAEm0T,SAAU,QAASrmU,KAAM,QAAUmyU,GACpG,EAOAE,EAAqBtuU,UAAU4uU,gBAAkB,SAAUzgU,GAIvD,OAHIguT,MAAchuT,IAAYA,EAAQuG,SAClCvG,EAAQk4T,sBAAwB,GAE7BiG,GAAaC,aAAal9U,KAAKo/U,aAActgU,GAAW,CAAEuG,OAAQ,KAAO05T,GACpF,EAQAE,EAAqBtuU,UAAU6uU,aAAe,SAAU59U,EAAOg8S,GAC3D,OAAO59S,KAAKq/U,gBAAgBzhC,EAArB59S,CAA6B4B,EACxC,EAQAq9U,EAAqBtuU,UAAU8uU,WAAa,SAAU79U,EAAOg8S,GACzD,OAAO59S,KAAKm/U,cAAcvhC,EAAnB59S,CAA2B4B,EACtC,EAQAq9U,EAAqBtuU,UAAU8sK,UAAY,SAAU77K,EAAOg8S,GACxD,OAAO59S,KAAKs/U,cAAc1hC,EAAnB59S,CAA2B4B,EACtC,EAQAq9U,EAAqBtuU,UAAU+uU,YAAc,SAAU99U,EAAOg8S,GAC1D,OAAO59S,KAAKu/U,gBAAgB3hC,EAArB59S,CAA6B4B,EACxC,EASAq9U,EAAqBtuU,UAAUgvU,eAAiB,SAAU/hC,EAAQgiC,GAC9D,OAAOC,GAASC,wBAAwB9/U,KAAKo/U,aAAcxhC,EAAQmhC,GAAUa,EACjF,EASAX,EAAqBtuU,UAAUovU,iBAAmB,SAAUniC,EAAQoiC,GAChE,OAAOH,GAASI,sBAAsBjgV,KAAKo/U,aAAcxhC,EAAQmhC,GAAUiB,EAC/E,EAMAf,EAAqBtuU,UAAU5B,kBAAoB,WAC/C,OAAO8wU,GAASK,YAAYlgV,KAAKo/U,aAAcL,GACnD,EAMAE,EAAqBtuU,UAAUyuU,WAAa,WACxC,OAAOp/U,KAAKoyU,SAAW4M,EAC3B,EACOC,CACX,CAlI0C,GA4LnC,SAASkB,GAAiBpgV,EAAQ6M,GAErC,IAAI4lU,EAAYqN,GAAStN,eAAewM,GAAUh/U,EAAQ,IAAI,GAAMwpR,GAAO,IAEvEkpD,EAAaoN,GAAStN,eAAewM,GAAUh/U,EAAQ,IAAIwpR,GAAO,IAClE62D,EAAYvlU,GAAS,yBAA0B23T,GAC/C6N,EAAcvT,KAAajyT,GAAS,gBAAiB23T,GAAa33T,GAAS,wBAA0BulU,EAAW5N,GAChHlwT,EAAUu9T,GAASpJ,iBAAiB7pU,GAAQ,UAAWwzU,EAAW5N,GAAW,GACjF,OAAO/oP,GAAO42P,EAAaR,GAAStI,cAAcj1T,GAAS,EAAM,IAAI,GAAO,CAAE,cAAiBu9T,GAAS1M,iBAAiBV,IAC7H,CAwBO,SAAS6N,GAAqB/vR,GAEjC,OAAOsvR,GAAStN,eAAewM,GAAU,GAAIxuR,GAAM,GAAOg5N,GAAO,GACrE,CC/RA,IA0BWs2D,GA1BP7uR,GAASr6C,OACF4pU,GAAuB,CAC9B,QAAS,CACL,EAAK,QACL,EAAK,kBACL,EAAK,yBACL,EAAK,2BACL,EAAK,eACL,EAAK,sBACL,EAAK,SACL,EAAK,SACL,EAAK,sCACL,EAAK,sCACL,EAAK,gCACL,EAAK,UACL,EAAK,WACL,EAAK,iCACL,EAAK,gCACL,EAAK,YACL,EAAK,eAQb,SAAWV,GAGPA,EAAS5H,kBAAoB,qHAC7B4H,EAASW,YAAc,0HACvBX,EAAS9K,eAAiB,uBAC1B,IAAI0L,EAAgB,SACpBZ,EAAS1I,gBAAkB,IAC3B,IAAI5tD,EAAS,CAAC,WAAY,MAAO,QAAS,WACtCm3D,EAAe,8BACfhG,EAAe,CACf,EAAK,GACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,IAAM,IACN,KAAM,SACN,GAAM,KACN,EAAK,OACL,KAAQ,OACR,EAAK,OAETmF,EAASc,oBAAsB,aAE/Bd,EAASjN,aAAe,WACxB,IAAIgO,EAAiB,CACjB,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,GAEXf,EAASzJ,YAAc,IAAIplR,GAAO,kCAAmC,KACrE6uR,EAASgB,oBAAsB,IAAI7vR,GAAO,+BAAgC,KAC1E6uR,EAASiB,sBAAwB,WACjC,IAAIC,EAAa,CACb,EAAK,aACL,IAAK,YACL,IAAK,aACL,EAAG,QACH,EAAG,QA4kBP,SAAS/N,EAAoBC,EAAUR,EAAY7lU,EAAM+lU,EAAWqO,GAChE,IAAIjO,EACAkO,EAAQr0U,GAAQ,OACpB,GAAIo0U,EACAjO,EAAaD,EAAyB,CAAEG,SAAUA,GAAY+N,GAAe37T,QACzEytT,EAAyB,CAAEG,SAAU,KAAO,SAAS5tT,WAExD,CACD,IAAkD,IAA9Cw6T,EAASqB,cAAcv2U,QAAQsoU,IAE/B,GADAF,EAAal4T,GAASomU,EAAQ,WAAahO,EAAUR,GACvC,aAAVwO,EAAsB,CACtB,IAAIE,EAAWtmU,GAAS,eAAiBo4T,EAAUR,GAC/C2O,EAAWvmU,GAAS,eAAiBo4T,EAAUR,GACnDM,EAAaA,EAAW1iU,QAAQ,MAAO8wU,GAAU9wU,QAAQ,MAAO+wU,EACpE,OAGArO,EAAal4T,GAAS,oCAAsCo4T,EAAUR,GAEtElnP,GAAYwnP,IAA4B,QAAbE,IAC3BF,EAAa,QAErB,CACA,OAAOA,CACX,CAYA,SAASR,EAAeF,EAAMD,EAAS7hR,EAAM9V,GACzC,IAAI+U,EAAM,CAAC,EACP6xR,EAAe9wR,GAAQ,YAE3B,GADAf,EAAI8jR,aAAeztR,GAAOyoR,cAAc+D,EAAMD,KAAatF,KAAa+S,EAASyB,oBAAsBzB,EAAS0B,eAC5G9mS,EACA+U,EAAImmR,cAAgB96T,GAAS,UAAW20C,EAAI8jR,kBAE3C,CACD,IAAIn3J,EAAa2wJ,KAAa,QAAW,mBAAqBuU,EAC9D7xR,EAAIijR,WAAa53T,GAASshK,EAAY3sH,EAAI8jR,aAC9C,CACA,OAAO9jR,CACX,CAYA,SAASinR,EAAiB7pU,EAAMwzU,EAAWvvU,EAAK6lU,GAC5C,OAAO77T,GAASjO,EAAO,wBACnBwzU,GAAa1J,EAAY,cAAgB,aAAc7lU,KAAS6lU,EAAY77T,GAASjO,EAAO,wBAC5FwzU,EAAY,YAAavvU,GAAO,GACxC,CAOA,SAASuiU,EAAwB/tT,GAC7B,IAAIm8T,EAAgBn8T,EAAOlO,MAAM0oU,EAASc,qBAC1C,GAAIa,GAAiB1U,KAAY,CAC7B,IAAI2U,EAAyC,IAA5BD,EAAc,GAAGp+U,OAAe,MAAQ,OACzD,OAAOiiB,EAAOhV,QAAQwvU,EAASc,oBAAqBc,EACxD,CACA,OAAOp8T,CACX,CAQA,SAASytT,EAAyBJ,EAAeN,GAC7C,IAAI/sT,EAASqtT,EAAcrtT,QAAUqtT,EAAcO,SAC/CyO,EAAkB7mU,IAAUu3T,GAAW,SAAW,IAAM/sT,EAAQk7T,IAQpE,OAPKmB,IACDA,EAAkB7mU,GAAS,SAAWwK,EAAQk7T,KAE9CmB,IACAA,EAAkBtO,EAAwBsO,GAC1ChP,EAAcrtT,OAASq8T,EAAgBrxU,QAAQ,KAAM,MAElDqiU,CACX,CASA,SAAS4D,EAAyBrD,GAC9B,IAAIx+S,EAAUw+S,EAAS97T,MAAM0oU,EAASzJ,aAClC5mR,EAAM,CAAC,EACPltC,EAAUmS,EAAQ,GAAG1S,cAOzB,OANAytC,EAAIknR,UAAyB,MAAZp0T,EAEjBktC,EAAI5iD,KAAOizU,EAAS8B,eAAer/T,GAC/B2wT,EAAS7vU,OAAS,IAClBosD,EAAIynR,eAAiB1qT,SAASkI,EAAQ,GAAI,KAEvC+6B,CACX,CAYA,SAAS+nR,EAAcj1T,EAASs/T,EAAcC,EAASC,GACnD,IAAI1K,EAAQ0K,EAAe,CAAC,EAAI,CAAErI,MAAO,GAAIC,KAAM,IAC/CviU,EAAQmL,EAAQnL,MAAM0oU,EAASW,aACnC,GAAIrpU,EAAO,CACF2qU,IACD1K,EAAMqC,MAAQsI,EAAqB5qU,EAAM,GAAI0qU,GAC7CzK,EAAMsC,KAAOqI,EAAqB5qU,EAAM,IAAK0qU,GAC7CzK,EAAM4K,aAAe7qU,EAAM,IAE/B,IAAI8qU,EAAW9qU,EAAM,GACrB,GAAI8qU,GAAYL,EAAc,CAC1B,IAAIM,EAASD,EAAS9qU,MAAMspU,GACvB1U,GAAkBmW,GAInB9K,EAAMO,gBAAkB,EAHxBP,EAAMO,gBAAkBuK,EAAO9+U,OAKnCg0U,EAAMS,gBAAkBoK,EAAS7+U,OAAS,CAC9C,CACJ,CACA,OAAOg0U,CACX,CAUA,SAAS2K,EAAqBhzT,EAAKqkB,GAC/B,OAAIrkB,EACOA,EAAI1e,QAAQwvU,EAAS1I,gBAAiB/jS,GAE1C,EACX,CAWA,SAAS0iS,EAAkBH,EAAewM,EAAclM,GAIpD,OAFkBp7T,GAAS,cAAgBsnU,GAD9BlM,EAAa,IAAMA,EAAa,WACqBN,IAC9D96T,GAAS,cAAgBsnU,EAAe,qBAAsBxM,IAAkB,GAExF,CAmCA,SAASyM,EAAmB/8T,EAAQqwT,EAAUlD,GAC1C,IAAIiD,EAAW,CAAE7oU,KAAM,UAAWoqU,sBAAuB,EAAGD,sBAAuB,GAC/Ez0T,EAAU+C,EAAOlO,MAAM0oU,EAASW,aACpC,GAAIzU,GAAkBzpT,IAA4B,KAAfA,EAAQ,IAAwB,QAAX+C,EAEpD,OADAowT,EAAS7oU,UAAOvJ,EACToyU,EAEXA,EAASgE,MAAQn3T,EAAQ,GACzBmzT,EAASiE,KAAOp3T,EAAQ,IACxB,IAAI+/T,EAAc//T,EAAQ,GACtBggU,IAAeD,EAAYlrU,MAAM,QACjCorU,GAAkE,IAAlDF,EAAYhyU,QAAQ,OAAQ,IAAI1F,QAAQ,KAC5D8qU,EAASyB,aAA4C,IAA9BmL,EAAY13U,QAAQ,MAAe43U,EAC1DF,EAAcA,EAAYhyU,QAAQ,KAAM,IACxC,IAAImyU,EAAelgU,EAAQ,GAwB3B,IAvBkC,IAA9B+/T,EAAY13U,QAAQ,OACpB8qU,EAASyD,qBAAuBmJ,EAAYj/U,OAASi/U,EAAY13U,QAAQ,MAExEohU,GAAkByW,KACnB/M,EAASuB,sBAAwBwL,EAAarrS,YAAY,KAC1Ds+R,EAASsB,sBAAwByL,EAAarrS,YAAY,MAClB,IAApCs+R,EAASuB,wBACTvB,EAASuB,sBAAwB,KAEG,IAApCvB,EAASsB,uBAAgCtB,EAASsB,sBAAwBtB,EAASuB,yBACnFvB,EAASsB,sBAAwBtB,EAASuB,wBAG7CjL,GAAkB2J,GAQnBjsP,GAAOgsP,EAAUgN,EAAkB,CAAChN,EAASgE,MAAOhE,EAASiE,MAAO,IAAK,OAPzEhE,EAAS0D,gBAAiB,EAC1B3vP,GAAOgsP,EAAUgN,EAAkB,CAAChN,EAASgE,MAAOhE,EAASiE,MAAO,IAAKhE,EAASG,iBAC7EJ,EAASc,YACV9sP,GAAOgsP,EAAUgN,EAAkB,CAAChN,EAASgE,MAAOhE,EAASiE,MAAO,IAAKhE,EAASQ,kBAMrFnK,GAAkByG,GAAY,CAC/B,IAAI+C,EAAgBkB,EAAiBhB,EAAS7oU,KAAM8oU,EAASE,aAAatG,aAAckD,GAAW,GAC/FiD,EAASyB,cAETzB,EAAS+B,eAAiB+K,EAAgB,IAAM7M,EAASE,aAAa5F,cAAczmD,EAAO,IAC3FksD,EAASgC,UAAYpC,GAAaqC,mBAAmBnC,EAAc5iT,MAAM,KAAK,KAElF8iT,EAASgE,MAAQhE,EAASgE,MAAMppU,QAAQ,KAAM,IAC9ColU,EAASiE,KAAO4I,EAAe,IAAM7M,EAASiE,KAAKrpU,QAAQ,KAAM,IAAMolU,EAASiE,KAAKrpU,QAAQ,KAAM,GACvG,CACA,OAAOolU,CACX,CAWA,SAASgN,EAAkBtwS,EAAO7kB,EAAQ6B,GAEtC,IADA,IAAIrQ,EAAU,CAAE26T,MAAOtnS,EAAM,GAAIunS,KAAMvnS,EAAM,IACpChmC,EAAI,EAAGA,EAAI,EAAGA,IAAK,CACxB,IAAI0mC,EAAOV,EAAM5lB,SAASpgB,EAAE2K,WAAY,KACpC4rU,EAAM7vS,EAAKloC,QAAQ2iB,GACvB,IAAc,IAATo1T,IAAiBA,EAAM7vS,EAAKloC,QAAQ,MAAW+3U,EAAM7vS,EAAKsE,YAAY,MAAS,CAEhFr4B,EAAQiiU,EAAW50U,IAAM0mC,EAAKsF,OAAO,EAAGuqS,GAAOvzT,EAAS0jB,EAAKsF,OAAOuqS,EAAM,GAE1E5jU,EAAQiiU,EAAWzzT,KAAW,EAC9BxO,EAAQlS,KAAOkS,EAAQy3T,WAAa,WAAa,UACjD,KACJ,CACJ,CACA,OAAOz3T,CACX,CAqKA,SAAS6jU,EAAsBrgU,EAASsgU,EAAWC,GAC/CvgU,GAAW,IACX,IAAK,IAAIrM,EAAI,EAAGA,EAAI2sU,EAAW3sU,IAC3BqM,GAAW,IAEf,GAAIsgU,EAAYC,EAEZ,IADA,IAAI/+T,EAAO++T,EAAYD,EACd1sU,EAAI,EAAGA,EAAI4N,EAAM5N,IACtBoM,GAAW,IAGnB,OAAOA,CACX,CAQA,SAASwgU,EAAsBxgU,EAASmtT,GAGpC,IAFA,IAAI/iP,EAAOpqE,EAAQqQ,MAAM,KACrBowT,EAAU,GACL7oU,EAAI,EAAGA,EAAIu1T,EAAQv1T,IACxB6oU,GAAW,IAEf,OAAOr2P,EAAK,GAAMq2P,EAAU,IAAMr2P,EAAK,GAAMq2P,CACjD,CAOA,SAASC,EAAgB1gU,GACrB,IAAIoqE,EAAOpqE,EAAQqQ,MAAM,KACrBowT,EAAUr2P,EAAK,GACfwoP,EAAK,EAAI6N,EAAQ3/U,OAAS,EAG9Bkf,EAAU,GACV,IAAK,IAAIpI,GAFT6oU,GADY7N,GAAa,IAAPA,EAAY,IAAc,IAAPA,EAAW,KAAO,IACtC6N,GAEI3/U,OAAS,EAAG8W,EAAI,EAAGA,GAAQ,EAC5CoI,EAAU,IAAMygU,EAAQ7oU,EAAI,GAAK6oU,EAAQ7oU,EAAI,GAAK6oU,EAAQx2T,SAASrS,EAAEpD,WAAY,KAAOwL,EAG5F,OADAA,EAAUA,EAAQ1R,MAAM,GACjB87E,EAAK,GAAMpqE,EAAU,IAAMoqE,EAAK,GAAMpqE,CACjD,CAjkCAu9T,EAASjM,eAAiB,iCAC1BiM,EAASqB,cAAgB,CAAC,QAAS,SAAU,OAAQ,QAErDrB,EAAS0B,cAAgB,CACrB,MAAS,CACL,UAAa,CACT,UAAa,CACT,OAAU,CACN,cAAe,CACX,YAAe,CACX,EAAK,MACL,EAAK,MACL,EAAK,MACL,EAAK,MACL,EAAK,MACL,EAAK,MACL,EAAK,MACL,EAAK,MACL,EAAK,MACL,GAAM,MACN,GAAM,MACN,GAAM,OAEV,OAAU,CACN,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,GAAM,IACN,GAAM,IACN,GAAM,KAEV,KAAQ,CACJ,EAAK,UACL,EAAK,WACL,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,OACL,EAAK,OACL,EAAK,SACL,EAAK,YACL,GAAM,UACN,GAAM,WACN,GAAM,cAIlB,KAAQ,CACJ,cAAe,CACX,YAAe,CACX,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,OAEX,OAAU,CACN,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,KAEX,MAAS,CACL,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,MAEX,KAAQ,CACJ,IAAO,SACP,IAAO,SACP,IAAO,UACP,IAAO,YACP,IAAO,WACP,IAAO,SACP,IAAO,cAInB,WAAc,CACV,OAAU,CACN,KAAQ,CACJ,GAAM,KACN,GAAM,QAIlB,KAAQ,CACJ,SAAY,CACR,EAAK,gBACL,gBAAiB,oBACjB,EAAK,cACL,gBAAiB,cAErB,QAAW,CACP,EAAK,KACL,gBAAiB,MACjB,EAAK,KACL,gBAAiB,MAErB,UAAa,CACT,EAAK,IACL,gBAAiB,MACjB,EAAK,IACL,gBAAiB,OAGzB,YAAe,CACX,KAAQ,kBACR,KAAQ,YACR,OAAU,WACV,MAAS,UAEb,YAAe,CACX,KAAQ,iBACR,KAAQ,cACR,OAAU,YACV,MAAS,UAEb,gBAAmB,CACf,KAAQ,eACR,KAAQ,eACR,OAAU,WACV,MAAS,WACT,iBAAoB,CAChB,EAAK,IACL,EAAK,MACL,GAAM,MACN,IAAO,WACP,IAAO,UACP,KAAQ,cACR,KAAQ,aACR,GAAM,MACN,MAAS,UACT,OAAU,aACV,QAAW,gBACX,EAAK,MACL,EAAK,KACL,GAAM,SACN,GAAM,QACN,IAAO,YACP,IAAO,WACP,KAAQ,cACR,KAAQ,aACR,IAAO,WACP,IAAO,UACP,EAAK,IACL,GAAM,MACN,IAAO,SACP,IAAO,MACP,KAAQ,QACR,MAAS,WACT,MAAS,SACT,GAAM,QACN,EAAK,IACL,GAAM,MACN,IAAO,QACP,KAAQ,WACR,KAAQ,QACR,MAAS,WACT,OAAU,cACV,MAAS,YAIrB,QAAW,CACP,OAAU,CACN,cAAe,CACX,YAAe,CACX,EAAK,OACL,EAAK,OACL,EAAK,SACL,EAAK,UACL,EAAK,SACL,EAAK,UACL,EAAK,OACL,EAAK,OACL,EAAK,OACL,GAAM,QACN,GAAM,gBACN,GAAM,iBAEV,OAAU,CACN,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,GAAM,KACN,GAAM,KACN,GAAM,MAEV,KAAQ,CACJ,EAAK,WACL,EAAK,QACL,EAAK,eACL,EAAK,gBACL,EAAK,WACL,EAAK,YACL,EAAK,QACL,EAAK,eACL,EAAK,UACL,GAAM,UACN,GAAM,yBACN,GAAM,uBAIlB,KAAQ,CACJ,cAAe,CACX,YAAe,CACX,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,OAEX,OAAU,CACN,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,KAEX,MAAS,CACL,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,MAEX,KAAQ,CACJ,IAAO,SACP,IAAO,SACP,IAAO,UACP,IAAO,YACP,IAAO,WACP,IAAO,SACP,IAAO,cAInB,WAAc,CACV,OAAU,CACN,KAAQ,CACJ,GAAM,KACN,GAAM,QAIlB,KAAQ,CACJ,SAAY,CACR,EAAK,MAET,QAAW,CACP,EAAK,MAET,UAAa,CACT,EAAK,OAGb,YAAe,CACX,KAAQ,oBACR,KAAQ,cACR,OAAU,aACV,MAAS,eAEb,YAAe,CACX,KAAQ,iBACR,KAAQ,cACR,OAAU,YACV,MAAS,UAEb,gBAAmB,CACf,KAAQ,eACR,KAAQ,eACR,OAAU,WACV,MAAS,WACT,iBAAoB,CAChB,EAAK,IACL,EAAK,MACL,GAAM,MACN,IAAO,WACP,IAAO,UACP,KAAQ,cACR,KAAQ,aACR,GAAM,MACN,MAAS,UACT,OAAU,aACV,QAAW,gBACX,EAAK,MACL,EAAK,KACL,GAAM,SACN,GAAM,QACN,IAAO,YACP,IAAO,WACP,EAAK,IACL,GAAM,MACN,IAAO,SACP,IAAO,MACP,KAAQ,QACR,MAAS,WACT,MAAS,SACT,GAAM,QACN,EAAK,MACL,KAAQ,MACR,MAAS,YACT,OAAU,cACV,QAAW,iBACX,QAAW,UACX,SAAY,aACZ,UAAa,gBACb,SAAY,WACZ,QAAW,UACX,SAAY,eAK5B,cAAiB,CACb,WAAc,gBACd,UAAa,SACb,cAAiB,QAGzB,QAAW,CACP,WAAc,CACV,IAAO,CACH,YAAe,YACf,OAAU,IACV,oBAAqB,KAEzB,IAAO,CACH,YAAe,OACf,OAAU,SACV,oBAAqB,UAEzB,IAAO,CACH,YAAe,gBACf,oBAAqB,SAG7B,uBAA0B,OAC1B,sBAAyB,IACzB,4BAA6B,CACzB,QAAW,IACX,MAAS,IACT,KAAQ,IACR,YAAe,IACf,SAAY,IACZ,UAAa,IACb,YAAe,IACf,uBAA0B,OAC1B,SAAY,SACZ,SAAY,SACZ,IAAO,MACP,cAAiB,KAErB,mCAAoC,CAChC,SAAY,aAEhB,mCAAoC,CAChC,SAAY,UAEhB,oCAAqC,CACjC,SAAY,eACZ,WAAc,+BAElB,sCAAuC,CACnC,SAAY,SAIxB1B,EAASyB,oBAAsB,CAC3B,QAAW,CACP,OAAU,CACN,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,KAET,aAAgB,aAChB,cAAiB,CACb,QAAW,IACX,MAAS,IACT,SAAY,IACZ,UAAa,IACb,YAAe,IACf,IAAO,MACP,cAAiB,IACjB,SAAY,UAEhB,cAAiB,IACjB,eAAkB,IAClB,cAAiB,CACb,MAAS,IACT,KAAQ,GACR,eAAkB,IAClB,UAAa,CACT,QAAW,GAEf,gBAAmB,EACnB,gBAAmB,GAEvB,aAAgB,CACZ,MAAS,GACT,KAAQ,IACR,eAAkB,IAClB,UAAa,CACT,QAAW,GAEf,gBAAmB,EACnB,gBAAmB,GAEvB,aAAgB,CACZ,MAAS,IACT,KAAQ,IACR,eAAkB,IAClB,UAAa,CACT,QAAW,GAEf,gBAAmB,EACnB,gBAAmB,GAEvB,cAAiB,CACb,MAAS,KACT,KAAQ,IACR,eAAkB,IAClB,UAAa,CACT,QAAW,GAEf,gBAAmB,EACnB,gBAAmB,GAEvB,aAAgB,CACZ,MAAS,IACT,KAAQ,GACR,UAAa,CACT,QAAW,GAEf,gBAAmB,EACnB,gBAAmB,GAEvB,aAAgB,CACZ,MAAS,GACT,KAAQ,GACR,UAAa,CACT,QAAW,GAEf,gBAAmB,EACnB,gBAAmB,IAG3B,MAAS,CACL,WAAc,CACV,GAAM,KACN,GAAM,MAEV,cAAiB,IACjB,KAAQ,CACJ,YAAe,CACX,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,OAEX,MAAS,CACL,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,MAEX,KAAQ,CACJ,IAAO,SACP,IAAO,SACP,IAAO,UACP,IAAO,YACP,IAAO,WACP,IAAO,SACP,IAAO,aAGf,OAAU,CACN,YAAe,CACX,EAAK,MACL,EAAK,MACL,EAAK,MACL,EAAK,MACL,EAAK,MACL,EAAK,MACL,EAAK,MACL,EAAK,MACL,EAAK,MACL,GAAM,MACN,GAAM,MACN,GAAM,OAEV,KAAQ,CACJ,EAAK,UACL,EAAK,WACL,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,OACL,EAAK,OACL,EAAK,SACL,EAAK,YACL,GAAM,UACN,GAAM,WACN,GAAM,aAGd,KAAQ,CACJ,EAAK,QAKjBzB,EAASrM,WAAa,CAClB,EAAG,cACH,EAAG,OACH,EAAG,SACH,EAAG,eAKPqM,EAAS52U,MAAQ,SACjB42U,EAAS5qU,KAAO,OAIhB4qU,EAAS8B,eAAiB,CACtBv5N,EAAG,WACHzlG,EAAG,UACHomG,EAAG,UACHR,EAAG,WACHtoG,EAAG,cAsCP4/T,EAAS7M,oBAAsBA,EAwB/B6M,EAAStN,eAAiBA,EAgB1BsN,EAASpJ,iBAAmBA,EAc5BoJ,EAASzM,wBAA0BA,EAmBnCyM,EAAS/M,yBAA2BA,EAoBpC+M,EAASvJ,yBAA2BA,EAkCpCuJ,EAAStI,cAAgBA,EAezBsI,EAASkC,qBAAuBA,EAgBhClC,EAAS/J,kBAAoBA,EAwB7B+J,EAASxJ,aAdT,SAAsBhxT,EAAQqwT,EAAU7kU,GAIpC,IAHA,IAAIiO,EAAU,CAAC,EACXmkU,EAAc59T,EAAOsN,MAAM,KAC3BuX,EAAO,CAAC,QAAS,QAAS,YACrB/9B,EAAI,EAAGA,EAAI82U,EAAY7/U,OAAQ+I,IAEpC2S,EAAQorB,EAAK/9B,IAAMi2U,EAAmBa,EAAY92U,GAAIupU,EAAU7kU,GAMpE,OAJIk7T,GAAkBjtT,EAAQs4T,SAC1Bt4T,EAAQs4T,MAAQ3tP,GAAO,CAAC,EAAG3qE,EAAQu4T,OACnCv4T,EAAQs4T,MAAMqC,MAAQ1N,GAAkB2J,GAAY,IAAM52T,EAAQs4T,MAAMqC,MAAQ/D,EAASS,YAAcr3T,EAAQs4T,MAAMqC,OAElH36T,CACX,EA6DA+gU,EAASuC,mBAAqBA,EA0B9BvC,EAAS4C,kBAAoBA,EAY7B5C,EAAS1M,iBAJT,SAA0B+P,GACtB,IAAIthV,GAASiZ,GAAS,oBAAqBqoU,IAAY,IAAI/rU,MAAM,kDACjE,OAAOvV,EAAQA,EAAM,GAAK,GAC9B,EA8CAi+U,EAASC,wBAlCT,SAAiC1N,EAAStzT,EAASuzT,EAAMuN,GACrD,IAAItN,EAAaC,EAAeF,EAAMD,EAAStzT,EAAQ68E,UACnDmxO,OACAhuT,EAAUg0T,EAAyBh0T,EAASszT,IAEhD,IAAI+Q,EAAgBrkU,EAAQuG,QAAU2tT,EAAoBl0T,EAAQm0T,SAAUX,EAAWG,WAAY3zT,EAAQlS,MAC3G,GAAIgzU,EAAe,CAKf,GAJAuD,EAAgBA,EAAc9yU,QAAQqwU,GAAc,SAAUp+T,GAE1D,OAAOo4T,EAAap4T,EACxB,KACoC,IAAhC6gU,EAAcx4U,QAAQ,KAAa,CACnC,IAAIy4U,EAAUD,EAAchsU,MAAM,MAAM/T,OACpCigV,OAAkB,EAClBC,EAAY,CAAE,SAAY,CAAC,GAC/BA,EAAUjQ,UAAYxtR,GAAOkqR,gBAAgBuC,EAAWgB,aAAcztR,GAAO2oR,mBAAmB6D,IAChGiR,EAAUvvP,SAAWl5E,GAAS,sBAAuBy3T,EAAWgB,cAChE,IACIh5J,GADQ,IAAI74K,MACK+f,oBACjBc,EAAW8gU,EAAU,EAAK,QAAUE,EAAUvvP,SAAS0gP,WAC3DnyT,EAAUA,EAAQjS,QAAQ,KAAMizU,EAAUjQ,UAAUpD,eACnC,IAAb31J,EACA+oK,EAAkBC,EAAUvvP,SAAS2gP,eAGrC2O,EAAkBlR,GAAWwC,iBAAiBr6J,EAAUh4J,GACxD+gU,EAAkBC,EAAUvvP,SAAS6gP,UAAUvkU,QAAQ,QAASgzU,IAEpEF,EAAgBA,EAAc9yU,QAAQ,OAAQ,IAAMgzU,EAAkB,IAC1E,CACAF,EAAgBA,EAAc9yU,QAAQ,KAAM,GAChD,CACA,OAAO8yU,CACX,EAoGAtD,EAASI,sBArET,SAA+B7N,EAAStzT,EAASuzT,EAAM2N,GACnD,IAGIuD,EAuBAJ,EA1BA7Q,EAAaC,EAAeF,EAAMD,EAAS,IAAI,GAC/CkI,EAAe,CAAE6C,QAAQ,GACzBqG,EAAiBlR,EAAWqD,cAE5BtG,EAAS,CAAC,EACVoU,GAAY3kU,EAAQuG,QAAU,IAAIlO,MAAM0oU,EAASgB,qBACjDj0U,EAAOizU,EAASzJ,YAAYjtT,KAAKrK,EAAQuG,QAAUixT,EAAyBx3T,EAAQuG,QAAU,KAAO,CAAC,EACtGqwT,EAAW,CAAC,EAChB,GAAI+N,EAAU,CACV/N,EAASE,aAAe9I,KACpBrjP,GAAO,CAAC,EAAG6oP,EAAWqD,eACtB9vR,GAAOkqR,gBAAgBuC,EAAWgB,aAAcztR,GAAO2oR,mBAAmB6D,IAAO,GACrF,IAAIqR,EAAU5W,KAAajyT,GAAS,iBAAkBy3T,EAAWqD,eAC7DG,EAAkBxD,EAAWqD,cAAe72T,EAAQi3T,UAAYC,GAAqBl3T,EAAQm3T,WAC7FV,EAAgBkB,EAAiB,WAAYf,EAASE,aAAatG,aAAcgD,EAAWqD,cAAgB,KAAMxsT,KAAKrK,EAAQuG,SAE/HsN,GADJ4iT,EAAgBA,EAAcllU,QAAQ,UAAWqzU,IACvB/wT,MAAM,KAChC08S,EAAOsU,qBAAqB7W,MAAqBn6S,EAAMvvB,OAAS,EAChEisU,EAAO+H,MAAQtK,KAAajyT,GAASjO,EAAKA,KAAO,QAAS42U,GACtDjM,EAAc5kT,EAAM,IAAM,IAAMA,EAAM,IAAI,EAAM+wT,GACpDrU,EAAOgI,MAAQvK,KAAajyT,GAASjO,EAAKA,KAAO,QAAS42U,GACtDjM,EAAc5kT,EAAM,IAAI,EAAO+wT,GAC9BD,EAAS,IAAO3kU,EAAQk4T,uBAA0Bl4T,EAAQi4T,wBAC3DwM,EAAUhM,EAAchC,EAAc5iT,MAAM,KAAK,IAAI,EAAM,IAAI,GAAMglT,gBAE7E,CAEA,GAAKkI,EAASzJ,YAAYjtT,KAAKrK,EAAQuG,UAAcvG,EAAQuG,OAAS,CAIlE,GAHAokE,GAAO6wP,EAAchE,EAAyBx3T,EAAQuG,QAAU,MAChEi1T,EAAa6C,QAAS,EACtBgG,EAAgB,OACZ7I,EAAarD,gBAAkBn4T,EAAQk4T,uBAAyBl4T,EAAQi4T,uBAAyBwM,EAAS,CAEtGjJ,EAAarD,iBACbn4T,EAAQk4T,sBAAwBl4T,EAAQi4T,sBAAwBuD,EAAarD,gBAEjFkM,EAAgBR,EAAsBQ,EAAeI,GAAWjJ,EAAarD,gBACzEn4T,EAAQk4T,uBALS,EAKgCl4T,EAAQi4T,uBALxC,EAMzB,CAOA,GANIj4T,EAAQo6T,uBACRiK,EAAgBL,EAAsBK,EAAerkU,EAAQo6T,uBAE7Dp6T,EAAQo4T,cACRiM,EAAgBH,EAAgBG,IAEV,aAAtB7I,EAAa1tU,MAAwB0tU,EAAa1tU,MAAQkgU,KAAa,CACnEA,MAAoC,aAAtBwN,EAAa1tU,OAC3ByiU,EAAOgI,MAAQx8T,GAASy/T,EAAa1tU,KAAO,QAAS42U,GACrDnU,EAAO+H,MAAQv8T,GAASy/T,EAAa1tU,KAAO,QAAS42U,IAEzD,IAAII,EAAWT,EACfA,EAAgB9T,EAAOgI,MAAMoC,MAAQmK,EAAWvU,EAAOgI,MAAMqC,MACzDrK,EAAOsU,oBAAsB7W,QAC7BqW,GAAiB,IAAM9T,EAAO+H,MAAMqC,MAAQmK,EAAWvU,EAAO+H,MAAMsC,KAE5E,CAC0B,YAAtBY,EAAa1tU,MAAuBkgU,OACpCqW,GAAiB,KAEzB,MAEIA,EAAgBrkU,EAAQuG,OAAOhV,QAAQ,KAAM,KAKjD,OAHI5Q,OAAO8E,KAAKmxU,GAAUtyU,OAAS,IAC/B+/U,EAAiBnD,EAAmDmD,EAvF5E,SAAuB71T,EAAQswR,GAC3B,IAA6B,IAAzBtwR,EAAO3iB,QAAQ,KAAa,CAE5B,IAAIgoB,EAAQrF,EAAOqF,MAAM,KACzBrF,EAAUqF,EAAM,GAAK9X,GAAS,mCAAoC+iS,GAC9DjrR,EAAM,GAAGtiB,QAAQ,IAAKwK,GAAS,qCAAsC+iS,GAC7E,MAEItwR,EAASA,EAAOjd,QAAQ,IAAKwK,GAAS,qCAAsC+iS,IAEhF,OAAOtwR,CACX,CA4EmCu2T,CAAcV,EAAezN,IAErDyN,CACX,EAsBAtD,EAAS8C,sBAAwBA,EAejC9C,EAASiD,sBAAwBA,EAmBjCjD,EAASmD,gBAAkBA,EAoB3BnD,EAASK,YAbT,SAAqB9N,EAASC,GAC1B,IAAIyR,EA/lCc,MAgmCdv6D,EAAS1uQ,GAAS,iCAAkCw3T,GACpD0R,EAAW3R,EAQf,MAPK,MAAOjpT,KAAK46T,KACbA,EAAWA,EAASnzU,MAAM,IAE9BmzU,EAAWA,EAASnzU,MAAM,EAAG,GAAGmR,cAAgBgiU,EAAS5rS,OAAO,GAC5DoxO,IACAu6D,EAAWv6D,EAAO,GAAKw6D,IAAax6D,EAAOw6D,EAASnzU,MAAM,EAAG,KAvmC/C,OAymCXgwU,EAAe,GAAKkD,EAC/B,EAmBAjE,EAASvI,sBAVT,SAA+BD,EAAO2M,EAAWC,GAC7C,IAAIC,ER5zBDrpU,GQ4zBqCopU,GR5zBZ,GAAI5T,IQ6zBhC,GAAI2T,IAAcE,EACd,IAAK,IAAI50U,EAAK,EAAG60U,EAAU9M,EAAO/nU,EAAK60U,EAAQ/gV,OAAQkM,IAAM,CACzD,IAAI46B,EAAOi6S,EAAQ70U,GACnB46B,EAAKwvS,KAAOxvS,EAAKwvS,KAAKrpU,QAAQ2zU,EAAWE,GACzCh6S,EAAKuvS,MAAQvvS,EAAKuvS,MAAMppU,QAAQ2zU,EAAWE,EAC/C,CAER,EA4BArE,EAAShL,cArBT,SAAuB30U,GACnB,IAEIkkV,EAFAC,EAAU,IAAI5iV,KAAKvB,EAAKE,cAAe,EAAG,GAC1C6C,EAAMohV,EAAQ1gV,SAElBV,EAAOA,GAAO,EAAIA,EAAMA,EAAM,EAC9B,IAAIqhV,EAAS1gV,KAAKiG,OAAO3J,EAAKwB,UAAY2iV,EAAQ3iV,UACa,KAA1DxB,EAAKshB,oBAAsB6iU,EAAQ7iU,sBAAgC,OAAY,EACpF,GAAIve,EAAM,GAEN,IADAmhV,EAAUxgV,KAAKiG,OAAOy6U,EAASrhV,EAAM,GAAK,GAAK,GACjC,GAAI,CACd,IACIshV,EADQ,IAAI9iV,KAAKvB,EAAKE,cAAgB,EAAG,EAAG,GAC/BuD,SAEjBygV,GADAG,EAAOA,GAAQ,EAAIA,EAAOA,EAAO,GAChB,EAAI,EAAI,EAC7B,OAGAH,EAAUxgV,KAAKiG,OAAOy6U,EAASrhV,EAAM,GAAK,GAE9C,OAAOmhV,CACX,CAEH,CAjrCD,CAirCGvE,KAAaA,GAAW,CAAC,ICjtC5B,IAAI2E,GAAc,6BAedC,GAAsB,WAStB,SAASA,EAAK3lU,EAASlS,EAAMqvH,EAAOyoN,GAMhC1kV,KAAKuwD,MAAO,EAOZvwD,KAAK2kV,WAAY,EACjB3kV,KAAK8e,QAAU,CAAC,EACO,kBAAZA,GACP9e,KAAKivH,IAAMnwG,EACX9e,KAAK4M,KAAOA,EAAOA,EAAKmV,cAxClB,MAyCN/hB,KAAKuwD,OAAQw7Q,GAAkB9vM,IAASA,GAEhB,kBAAZn9G,IACZ9e,KAAK8e,QAAUA,EACfqkE,GAAMnjF,KAAMA,KAAK8e,UAErB9e,KAAK4M,KAAO5M,KAAK4M,KAAO5M,KAAK4M,KAAKmV,cA/CxB,MAgDV/hB,KAAK0kV,iBAAoCrhV,IAArBrD,KAAK0kV,YAA6B1kV,KAAK0kV,YAAcA,CAC7E,CAmHA,OA3GAD,EAAK9zU,UAAUwlO,KAAO,SAAUjsM,GAC5B,IAAI5qC,EAAQU,KACZA,KAAKkqC,KAAO6hS,GAAkB7hS,GAAQlqC,KAAKkqC,KAAOA,EAClD,IAAI06S,EAAY,CACZ9jQ,QAAQ,EACR+jQ,YAAa,MAEb7nN,EAAU,IAAIrsF,SAAQ,SAAU2mB,EAASuwB,GACzCvoF,EAAMulV,YAAc,IAAI/nT,eACxBx9B,EAAMulV,YAAYC,mBAAqB,WAAcxlV,EAAMylV,YAAYztR,EAASuwB,EAAS,EACpFkkP,GAAkBzsU,EAAMs/R,UACzBt/R,EAAMulV,YAAYllK,OAASrgL,EAAMs/R,QAEhCmtC,GAAkBzsU,EAAM0lV,cACzB1lV,EAAMulV,YAAYI,WAAa3lV,EAAM0lV,YAGpCjZ,GAAkBzsU,EAAM4lV,WACzB5lV,EAAMulV,YAAYM,QAAU7lV,EAAM4lV,SAGjCnZ,GAAkBzsU,EAAM23I,WACzB33I,EAAMulV,YAAYprS,QAAUn6C,EAAM23I,SAIjC80L,GAAkBzsU,EAAM8lV,oBACzB9lV,EAAMulV,YAAYQ,OAAOJ,WAAa3lV,EAAM8lV,kBAGhD9lV,EAAMulV,YAAY/hN,KAAKxjI,EAAMsN,KAAMtN,EAAM2vH,IAAK3vH,EAAMixD,MAE/Cw7Q,GAAkBzsU,EAAM4qC,OAA+B,OAAtB5qC,EAAMolV,aACxCplV,EAAMulV,YAAYxuG,iBAAiB,eAAgB/2O,EAAMolV,aAAe,mCAExEplV,EAAMgmV,aACNV,EAAUC,YAAcvlV,EAAMulV,YAC9BvlV,EAAMgmV,WAAWV,IAEhBA,EAAU9jQ,QACXxhF,EAAMulV,YAAY1uG,KAAM41F,GAAkBzsU,EAAM4qC,MAAqB,KAAb5qC,EAAM4qC,KAEtE,IACA,OAAO8yF,CACX,EACAynN,EAAK9zU,UAAUytU,eAAiB,SAAUl0S,GAItC,OAHIlqC,KAAKulV,WACLvlV,KAAKulV,UAAUr7S,EAAMlqC,MAElBkqC,CACX,EACAu6S,EAAK9zU,UAAU60U,eAAiB,SAAUrvN,GAItC,OAHIn2H,KAAKylV,WACLzlV,KAAKylV,UAAUzlV,KAAK6kV,aAEjB1uN,CACX,EACAsuN,EAAK9zU,UAAUo0U,YAAc,SAAUztR,EAASuwB,GAC5C,IAAI39C,EAAOlqC,KAAK6kV,YAAY5uG,aAC5B,GAAIj2O,KAAK0lV,UAA4C,SAAhC1lV,KAAK0lV,SAAShlU,cAC/B,GAAa,KAATwpB,EACAA,OAAO7mC,OAGP,IACI6mC,EAAOuG,KAAKuL,MAAM9R,EACtB,CACA,MAAOjzB,IACH,CAIwB,IAAhCjX,KAAK6kV,YAAYc,aAEZ3lV,KAAK6kV,YAAYpuM,QAAU,KAAOz2I,KAAK6kV,YAAYpuM,QAAU,KAAoC,MAA5Bz2I,KAAK6kV,YAAYpuM,OACvFn/E,EAAQt3D,KAAKo+U,eAAel0S,IAGxBlqC,KAAK2kV,UACL98P,EAAO,IAAI96D,MAAM/sB,KAAKwlV,eAAexlV,KAAK6kV,YAAYe,cAGtDtuR,IAIhB,EAOAmtR,EAAK9zU,UAAUk1U,kBAAoB,SAAUv5U,GACzC,IAAIw5U,EACAp3J,EAEJo3J,EAAkB,CAAC,EAEnB,IADA,IAAI3wG,EAAUqvG,GAAY3yS,KAAK7xC,KAAK6kV,YAAYtuG,yBACzCpB,GACH2wG,EAAgB3wG,EAAQ,GAAGz0N,eAAiBy0N,EAAQ,GACpDA,EAAUqvG,GAAY3yS,KAAK7xC,KAAK6kV,YAAYtuG,yBAIhD,OAAOw1F,GADPr9I,EAASo3J,EAAgBx5U,EAAIoU,gBACM,KAAOguK,CAC9C,EACO+1J,CACX,CAvJ0B,GCftBsB,GAAc,wEACdC,GAAU,gBACVC,GAAY,eACZC,GAAW,4BACXC,GAAY,yEACZC,GAAe,WACfC,GAAe,8BACfC,GAAe,yBACfC,GAAe,CACfC,MAAO,yCACPC,KAAM,oCACNC,OAAQ,8BACRC,WAAY,2BACZC,OAAQ,wBACRC,OAAQ,wBACRC,KAAM,2BACNC,QAAS,kCAGS,qBAAX/1T,SACPA,OAAOg2T,eAAiBh2T,OAAOg2T,gBAAkB,CAAC,GAOtD,IAAIC,GAAyB,WACzB,SAASA,IACT,CA6VA,OA5VAA,EAAQC,qBAAuB,WAI3B,IAHA,IAAIC,EAAc,CAAE/U,QAAS,CAAC,GAE1Bx9I,EAAa,GACRtlL,EAAK,EAAGi9T,EAFN9sU,OAAO8E,KAAKgiV,IAESj3U,EAAKi9T,EAAOnpU,OAAQkM,IAAM,CACtD,IAAIhD,EAAMigU,EAAOj9T,GAEjB,GADAslL,EAAaqyJ,EAAQ/uG,UAAU/gO,MAAMovU,GAAa,GAAKj6U,IACvC,CAMZ,GALA66U,EAAYziV,KAAwC,QAAhCkwL,EAAW,GAAGl0K,cAA0B,QAAUk0K,EAAW,GAAGl0K,cACpFymU,EAAYziV,KAAwC,UAAhCkwL,EAAW,GAAGl0K,cAA4B,SAAWymU,EAAYziV,KACrFyiV,EAAY3kT,QAAUoyJ,EAAW,GACjCuyJ,EAAY/U,QAAQ1tU,KAAOyiV,EAAY/U,QAAQj6S,SAAWD,UAAUC,SAE9D8uT,EAAQ/uG,UAAU/gO,MAAM8uU,IAAY,CACtCkB,EAAYziV,KAAO,OACnB,KACJ,CACA,IAAI89B,EAAUykT,EAAQ/uG,UAAU/gO,MAAMmvU,IACb,WAArBa,EAAYziV,MAAqB89B,IACjC2kT,EAAY3kT,QAAUA,EAAQ,IAElC,KACJ,CACJ,CACA,OAAO2kT,CACX,EAOAF,EAAQG,SAAW,SAAUrwT,GAEzB,IAAIqkG,EAAS,CACTllF,MAAO,CACHmxS,UAAW,cAAeC,QAAS,aAAcC,SAAU,aAE/DC,KAAM,CACFH,UAAW,cAAeC,QAAS,YAAaC,SAAU,aAE9DnuS,IAAK,CACDiuS,UAAW,YAAaC,QAAS,WAAYC,SAAU,WAE3DzmQ,OAAQ,CACJumQ,UAAW,gBAAiBC,QAAS,cAAeC,SAAU,eAGtE,OAAQN,EAAQI,UAAYjsN,EAAO,GAAKrkG,GAAOswT,UAC1CJ,EAAQK,QAAUlsN,EAAO,GAAKrkG,GAAOuwT,SAAYL,EAAQM,SAA+C,GAApC,IAAMnsN,EAAO,GAAKrkG,GAAOwwT,UACxFnsN,EAAO,GAAKrkG,GAAOwwT,QACjC,EAMAN,EAAQQ,mBAAqB,WACzB,OAAOR,EAAQG,SAAS,QAC5B,EAMAH,EAAQS,iBAAmB,WACvB,OAAOT,EAAQG,SAAS,MAC5B,EAMAH,EAAQU,kBAAoB,WACxB,OAAOV,EAAQG,SAAS,OAC5B,EAMAH,EAAQW,oBAAsB,WAC1B,OAAOX,EAAQG,SAAS,SAC5B,EAMAH,EAAQY,SAAW,WACf,OAAQZ,EAAQM,UAAYN,EAAQa,OAASb,EAAQK,SAA6B,qBAAXt2T,SACA,IAAhEA,OAAOkH,UAAUggN,UAAUx3N,cAAc/V,QAAQ,WACjDqmB,OAAOkH,UAAUggN,UAAUx3N,cAAc/V,QAAQ,WAAa,CACzE,EAQAs8U,EAAQpsU,SAAW,SAAUvO,EAAKy7U,GAC9B,IAAIf,EAAmC,qBAAXh2T,OAAyBA,OAAOg2T,eAAiB,CAAC,EAO9E,MANyB,qBAAd9uT,WAAoD,aAAvBA,UAAU8vT,UAA2B9vT,UAAU+vT,eAAiB,IAAyB,IAApBhB,EAAQK,UAAqBf,GAAaG,OAAOv9T,KAAK+O,UAAUggN,aACzK8uG,EAAsB,OAAI,EAC1BA,EAAyB,UAAI,EAC7BA,EAAwB,SAAI,EAC5BA,EAA0B,WAAI,GAE9B,qBAAuBA,EAAe,GAAK16U,GACpC06U,EAAe,GAAK16U,GAAOy7U,EAAK5+T,KAAK89T,EAAQ/uG,WAEjD8uG,EAAe,GAAK16U,EAC/B,EACA7M,OAAO4c,eAAe4qU,EAAS,YAAa,CACxCvwU,IAAK,WACD,OAAOuwU,EAAQiB,EACnB,EAQAxuU,IAAK,SAAUwuU,GACXjB,EAAQiB,GAAKA,EACbl3T,OAAOg2T,eAAiB,CAAC,CAC7B,EACA7uU,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAe4qU,EAAS,OAAQ,CAOnCvwU,IAAK,WACD,OAAI60E,GAAYv6D,OAAOg2T,eAAezqT,MAC3BvL,OAAOg2T,eAAezqT,KAAO0qT,EAAQC,uBAEzCl2T,OAAOg2T,eAAezqT,IACjC,EACApkB,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAe4qU,EAAS,OAAQ,CAMnCvwU,IAAK,WACD,OAAOuwU,EAAQpsU,SAAS,OAAQmrU,GACpC,EACA7tU,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAe4qU,EAAS,UAAW,CAMtCvwU,IAAK,WACD,OAAI60E,GAAYv6D,OAAOg2T,eAAeM,SAC1Bt2T,OAAOg2T,eAAeM,QACzB,iBAAkBt2T,OAAOkH,WACrBlH,QACGA,OAAOkH,WACNlH,OAAOkH,UAAU+vT,eAAiB,GAAQ,iBAAkBj3T,OAEtEA,OAAOg2T,eAAeM,OACjC,EACAnvU,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAe4qU,EAAS,YAAa,CAMxCvwU,IAAK,WACD,OAAI60E,GAAYv6D,OAAOg2T,eAAeK,WAC3Br2T,OAAOg2T,eAAeK,UAAa,mBAAoBr2T,OAAOkH,UAElElH,OAAOg2T,eAAeK,SACjC,EACAlvU,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAe4qU,EAAS,cAAe,CAM1CvwU,IAAK,WACD,OAAI60E,GAAYv6D,OAAOg2T,eAAemB,aAC3Bn3T,OAAOg2T,eAAemB,YAAe,qBAAsBn3T,OAAOkH,UAEtElH,OAAOg2T,eAAemB,WACjC,EACAhwU,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAe4qU,EAAS,WAAY,CAMvCvwU,IAAK,WACD,OAAOuwU,EAAQpsU,SAAS,WAAYkrU,GACxC,EACA5tU,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAe4qU,EAAS,QAAS,CAMpCvwU,IAAK,WACD,OAAOuwU,EAAQpsU,SAAS,QAASqrU,GACrC,EACA/tU,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAe4qU,EAAS,SAAU,CAMrCvwU,IAAK,WACD,OAAOuwU,EAAQpsU,SAAS,SAAUsrU,GACtC,EACAhuU,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAe4qU,EAAS,YAAa,CAMxCvwU,IAAK,WACD,OAAOuwU,EAAQpsU,SAAS,YAAaurU,GACzC,EACAjuU,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAe4qU,EAAS,YAAa,CAMxCvwU,IAAK,WACD,OAAI60E,GAAYv6D,OAAOg2T,eAAeoB,YAClCp3T,OAAOg2T,eAAeoB,YAAc78P,GAAYv6D,OAAOq3T,UAAY98P,GAAYv6D,OAAOs3T,WAC/E/8P,GAAYv6D,OAAOu3T,WAA8B,WAAjBv3T,OAAOw3T,OACvCx3T,OAAOg2T,eAAeoB,WAE1Bp3T,OAAOg2T,eAAeoB,SACjC,EACAjwU,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAe4qU,EAAS,YAAa,CAMxCvwU,IAAK,WACD,OAAOuwU,EAAQpsU,SAAS,YAAawrU,GACzC,EACAluU,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAe4qU,EAAS,kBAAmB,CAM9CvwU,IAAK,WACD,OAAI60E,GAAYv6D,OAAOg2T,eAAeyB,iBAC3Bz3T,OAAOg2T,eAAeyB,gBAAkBxB,EAAQQ,qBAEpDz2T,OAAOg2T,eAAeyB,eACjC,EACAtwU,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAe4qU,EAAS,iBAAkB,CAM7CvwU,IAAK,WACD,OAAI60E,GAAYv6D,OAAOg2T,eAAe0B,gBAC3B13T,OAAOg2T,eAAe0B,eAAiBzB,EAAQU,oBAEnD32T,OAAOg2T,eAAe0B,cACjC,EACAvwU,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAe4qU,EAAS,gBAAiB,CAM5CvwU,IAAK,WACD,OAAI60E,GAAYv6D,OAAOg2T,eAAe2B,eAC3B33T,OAAOg2T,eAAe2B,cAAgB1B,EAAQS,mBAElD12T,OAAOg2T,eAAe2B,aACjC,EACAxwU,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAe4qU,EAAS,mBAAoB,CAM/CvwU,IAAK,WACD,OAAI60E,GAAYv6D,OAAOg2T,eAAe4B,kBAC3B53T,OAAOg2T,eAAe4B,iBAAmB3B,EAAQW,sBAErD52T,OAAOg2T,eAAe4B,gBACjC,EACAzwU,YAAY,EACZE,cAAc,IAGlB4uU,EAAQiB,GAA0B,qBAAdhwT,UAA4BA,UAAUggN,UAAY,GAC/D+uG,CACX,CAhW6B,GCPzBpuG,GAA8B,WAC9B,SAASA,IACT,CAoHA,OAlHAA,EAAagwG,kBAAoB,SAAU1zU,GACvC,MAAI,gBAAiBA,EACVA,EAAQ2zU,YAAY1tN,QAG3BjmH,EAAQ2zU,YAAc,CAAC,EAChB3zU,EAAQ2zU,YAAY1tN,OAAS,GAE5C,EAWAy9G,EAAazlN,IAAM,SAAUje,EAASohB,EAAWy5H,EAAU+4L,EAAQC,GAC/D,IACIC,EADAC,EAAYrwG,EAAagwG,kBAAkB1zU,GAG3C8zU,EADAD,EACmBrpQ,GAASqwE,EAAUg5L,GAGnBh5L,EAEnB+4L,IACAE,EAAmBA,EAAiBppV,KAAKkpV,IAG7C,IADA,IAAIhyT,EAAQR,EAAU5D,MAAM,KACnBxmB,EAAI,EAAGA,EAAI4qB,EAAM3zB,OAAQ+I,IAC9B+8U,EAAU98U,KAAK,CACX1H,KAAMqyB,EAAMxK,SAASpgB,EAAE2K,WAAY,KACnCk5I,SAAUA,EACVrwE,SAAUspQ,IAEVhC,GAAQh0D,KACR99Q,EAAQmmB,iBAAiBvE,EAAMxK,SAASpgB,EAAE2K,WAAY,KAAMmyU,GAG5D9zU,EAAQmmB,iBAAiBvE,EAAMxK,SAASpgB,EAAE2K,WAAY,KAAMmyU,EAAkB,CAAErtT,SAAS,IAGjG,OAAOqtT,CACX,EASApwG,EAAa1lN,OAAS,SAAUhe,EAASohB,EAAWy5H,GAmBhD,IAlBA,IAAIk5L,EAAYrwG,EAAagwG,kBAAkB1zU,GAC3C4hB,EAAQR,EAAU5D,MAAM,KACxB85S,EAAU,SAAUz8T,GACpB,IACIi5U,EADAx8T,GAAS,EAETy8T,GAAkC,IAArBA,EAAU9lV,QACvB8lV,EAAUzkV,MAAK,SAAUyV,EAAG/N,GACxB,OAAO+N,EAAExV,OAASqyB,EAAMxK,SAASvc,EAAE8G,WAAY,MAAQoD,EAAE81I,WAAaA,IACjEvjI,EAAQtgB,EAAG88U,EAAmB/uU,EAAEylE,UAAU,EACnD,KAEW,IAAXlzD,GACAy8T,EAAU1zT,OAAO/I,EAAO,GAExBw8T,GACA9zU,EAAQimB,oBAAoBrE,EAAMxK,SAASvc,EAAE8G,WAAY,KAAMmyU,EAEvE,EACSj5U,EAAI,EAAGA,EAAI+mB,EAAM3zB,OAAQ4M,IAC9By8T,EAAQz8T,EAEhB,EAOA6oO,EAAaswG,YAAc,SAAUh0U,GACjC,IAAI+zU,EACAE,EAIJA,EAAW3/P,GAAO,GAAI2/P,EAFtBF,EAAYrwG,EAAagwG,kBAAkB1zU,IAG3C,IAAK,IAAIhJ,EAAI,EAAGA,EAAIi9U,EAAShmV,OAAQ+I,IACjCgJ,EAAQimB,oBAAoBguT,EAAS78T,SAASpgB,EAAE2K,WAAY,KAAKpS,KAAM0kV,EAAS78T,SAASpgB,EAAE2K,WAAY,KAAK6oE,UAC5GupQ,EAAU5vS,OAElB,EAUAu/L,EAAaynD,QAAU,SAAUnrR,EAASohB,EAAW8yT,GAEjD,IADA,IACS/5U,EAAK,EAAGg6U,EADDzwG,EAAagwG,kBAAkB1zU,GACL7F,EAAKg6U,EAAYlmV,OAAQkM,IAAM,CACrE,IAAIi6U,EAAUD,EAAYh6U,GACtBi6U,EAAQ7kV,OAAS6xB,GACjBgzT,EAAQ5pQ,SAAShgF,KAAKK,KAAMqpV,EAEpC,CACJ,EACOxwG,CACX,CAvHkC,GChB9B2wG,GAAU,gBAcP,SAAS1oV,GAAcsnC,EAAS1V,GACnC,IAAIvd,EAAWq0U,GAAQrgU,KAAKif,GAAWlX,SAASmxI,gBAAgB,6BAA8Bj6H,GAAWlX,SAASpwB,cAAcsnC,GAChI,MAA4B,qBAAhB1V,IAGZvd,EAAQ+zB,UAAaxW,EAAWwW,UAAYxW,EAAWwW,UAAY,QACtC7lC,IAAzBqvB,EAAW3xB,YACXoU,EAAQpU,UAAY2xB,EAAW3xB,gBAEbsC,IAAlBqvB,EAAWyD,KACXhhB,EAAQghB,GAAKzD,EAAWyD,SAEF9yB,IAAtBqvB,EAAWwhQ,QACX/+Q,EAAQ6f,aAAa,QAAStC,EAAWwhQ,aAEpB7wR,IAArBqvB,EAAW+2T,OACXn+U,GAAW6J,EAASud,EAAW+2T,QAbxBt0U,CAgBf,CASO,SAASqzQ,GAAS8jC,EAAUn6I,GAG/B,IAFA,IAAI+1G,EAAYwhE,GAAav3K,GACzBnhH,EAASr6C,OACJrH,EAAK,EAAGgmC,EAAKg3Q,EAAUh9S,EAAKgmC,EAAGlyC,OAAQkM,IAE5C,IADA,IAAIq6U,EAAMr0S,EAAGhmC,GACJomC,EAAK,EAAGk0S,EAAc1hE,EAAWxyO,EAAKk0S,EAAYxmV,OAAQsyC,IAAM,CACrE,IAAI30C,EAAY6oV,EAAYl0S,GAC5B,GAAI4d,GAASq2R,GAAM,CACf,IAAIE,EAAWhvU,GAAS,uBAAwB8uU,GAC5C5d,GAAkB8d,GAClBnpM,GAAS,uBAAwB3/I,EAAW4oV,GAEtC,IAAI34R,EAAO,MAAQjwD,EAAY,MAAO,KAAKooB,KAAK0gU,IACtDnpM,GAAS,uBAAwBmpM,EAAW,IAAM9oV,EAAW4oV,EAErE,MAESA,EAAIzhE,UAAUh1P,SAASnyB,IACxB4oV,EAAIzhE,UAAU90P,IAAIryB,EAG9B,CAEJ,OAAOurT,CACX,CASO,SAASrkC,GAAYqkC,EAAUn6I,GAElC,IADA,IAAI+1G,EAAYwhE,GAAav3K,GACpB7iK,EAAK,EAAGgmC,EAAKg3Q,EAAUh9S,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CAClD,IAAIq6U,EAAMr0S,EAAGhmC,GACTyqU,EAAOzmR,GAASq2R,GAEpB,GADgB5P,EAAOl/T,GAAS,uBAAwB8uU,GAAyB,KAAlBA,EAAI5oV,UAE/D,IAAK,IAAI20C,EAAK,EAAGo0S,EAAc5hE,EAAWxyO,EAAKo0S,EAAY1mV,OAAQsyC,IAAM,CACrE,IAAI30C,EAAY+oV,EAAYp0S,GAC5B,GAAIqkS,EAAM,CACN,IACIgQ,EADYlvU,GAAS,uBAAwB8uU,GACxBh3T,MAAM,KAC3BlG,EAAQs9T,EAASp/U,QAAQ5J,IACd,IAAX0rB,GACAs9T,EAASv0T,OAAO/I,EAAO,GAE3Bi0H,GAAS,uBAAwBqpM,EAAS/jV,KAAK,KAAM2jV,EACzD,MAEIA,EAAIzhE,UAAU/0P,OAAOpyB,EAE7B,CAER,CACA,OAAOurT,CACX,CAQA,SAASo9B,GAAav3K,GAClB,IAAI+1G,EAAY,GAOhB,MANuB,kBAAZ/1G,EACP+1G,EAAU97Q,KAAK+lK,GAGf+1G,EAAY/1G,EAET+1G,CACX,CAQO,SAAS8hE,GAAU70U,GACtB,IAAIw0U,EAAMx0U,EACV,MAAiC,KAAzBw0U,EAAIxjV,MAAMohQ,YAAqBoiF,EAAIx5E,YAAc,CAC7D,CAUO,SAASj9I,GAAQ+2N,EAAc3jM,EAAW4jM,GAE7C,IADA,IAAIC,EAAUj5T,SAASD,yBACd3hB,EAAK,EAAGgmC,EAAK20S,EAAc36U,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CACtD,IAAIq6U,EAAMr0S,EAAGhmC,GACb66U,EAAQz4T,YAAYi4T,EACxB,CAKA,OAJArjM,EAAU3xH,aAAaw1T,EAAS7jM,EAAUh8G,mBACtC4/S,GACAE,GAAc9jM,GAEX2jM,CACX,CAUO,SAASj3N,GAAOi3N,EAAc3jM,EAAW4jM,GAC5C,IAAIC,EAAUj5T,SAASD,yBACvB,GAAIg5T,aAAwBI,SACxB,KAAOJ,EAAa7mV,OAAS,GACzB+mV,EAAQz4T,YAAYu4T,EAAa,SAIrC,IAAK,IAAI36U,EAAK,EAAGgmC,EAAK20S,EAAc36U,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CACtD,IAAIq6U,EAAMr0S,EAAGhmC,GACb66U,EAAQz4T,YAAYi4T,EACxB,CAMJ,OAJArjM,EAAU50H,YAAYy4T,GAClBD,GACAE,GAAc9jM,GAEX2jM,CACX,CAOA,SAASG,GAAcT,GACJA,EAAIn5U,iBAAiB,UAC3BnK,SAAQ,SAAU8O,GACvB,IAAI+3J,EAASh8I,SAASpwB,cAAc,UACpCosK,EAAOjtI,KAAO9qB,EAAQ+zB,UACtBhY,SAASU,KAAKF,YAAYw7I,GAC1Bo9K,GAAOp9K,EACX,GACJ,CASO,SAASo9K,GAAOn1U,GACnB,IAAIqf,EAAarf,EAAQqf,WACzB,GAAIA,EACA,OAAOA,EAAWW,YAAYhgB,EAEtC,CAQO,SAASge,GAAOhe,GACnB,IAAIqf,EAAarf,EAAQqf,WACzBqkN,GAAaswG,YAAYh0U,GACzBqf,EAAWW,YAAYhgB,EAC3B,CAUO,SAAS7J,GAAW6J,EAAS7J,GAGhC,IAFA,IACIq+U,EAAMx0U,EACD7F,EAAK,EAAGi9T,EAFN9sU,OAAO8E,KAAK+G,GAESgE,EAAKi9T,EAAOnpU,OAAQkM,IAAM,CACtD,IAAIhD,EAAMigU,EAAOj9T,GACjB,GAAIgkD,GAASq2R,GAAM,CACf,IAAIY,EAAOj+U,EACC,aAARA,IACAi+U,EAAO,YAEXZ,EAAIr+U,WAAW,GAAKi/U,GAAQj/U,EAAW,GAAKgB,EAChD,MAEIq9U,EAAI30T,aAAa1oB,EAAKhB,EAAW,GAAKgB,GAE9C,CACA,OAAOq9U,CACX,CAWO,SAASa,GAAOj6U,EAAU0K,EAASwvU,GAGtC,YAFgB,IAAZxvU,IAAsBA,EAAUiW,UACpC3gB,EAAWm6U,GAAcn6U,GAClB0K,EAAQ2e,cAAcrpB,EACjC,CAWO,SAASo6U,GAAUp6U,EAAU0K,EAASwvU,GAIzC,YAHgB,IAAZxvU,IAAsBA,EAAUiW,UACpC3gB,EAAWm6U,GAAcn6U,GACV0K,EAAQzK,iBAAiBD,EAE5C,CAQA,SAASm6U,GAAcn6U,GACnB,IAAIq6U,EAAY,+DAChB,GAAIr6U,EAAS4G,MAAM,YAAc5G,EAAS4G,MAAMyzU,GAAY,CAExD,IADA,IAAIC,EAASt6U,EAASoiB,MAAM,KACnBxmB,EAAI,EAAGA,EAAI0+U,EAAOznV,OAAQ+I,IAAK,CAEpC,IADA,IAAIslB,EAAOo5T,EAAOt+T,SAASpgB,EAAE2K,WAAY,KAAK6b,MAAM,KAC3C3iB,EAAI,EAAGA,EAAIyhB,EAAKruB,OAAQ4M,IAC7B,GAAIyhB,EAAKlF,SAASvc,EAAE8G,WAAY,KAAKnM,QAAQ,MAAQ,IAC5C8mB,EAAKlF,SAASvc,EAAE8G,WAAY,KAAKK,MAAM,UAAW,CACnD,IAAI2zU,EAAUr5T,EAAKlF,SAASvc,EAAE8G,WAAY,KAAK6b,MAAM,KACrD,GAAIm4T,EAAQ,GAAG3zU,MAAM,QAAU2zU,EAAQ,GAAG3zU,MAAMyzU,GAAY,CACxD,IAAIG,EAAQt5T,EAAKlF,SAASvc,EAAE8G,WAAY,KAAK6b,MAAM,KACnDo4T,EAAM,GAAKA,EAAM,GAAG16U,QAAQ,IAAK,SAAY,KAC7CohB,EAAKlF,SAASvc,EAAE8G,WAAY,KAAOi0U,EAAM/kV,KAAK,IAClD,CACJ,CAGR6kV,EAAOt+T,SAASpgB,EAAE2K,WAAY,KAAO2a,EAAKzrB,KAAK,IACnD,CACA,OAAO6kV,EAAO7kV,KAAK,IACvB,CACA,OAAOuK,CACX,CASO,SAASklF,GAAQtgF,EAAS5E,GAC7B,IAAIrD,EAAKiI,EACT,GAA0B,oBAAfjI,EAAGuoF,QACV,OAAOvoF,EAAGuoF,QAAQllF,GAEtB,KAAOrD,GAAsB,IAAhBA,EAAGu1B,UAAgB,CAC5B,GAAIhO,GAAQvnB,EAAIqD,GACZ,OAAOrD,EAEXA,EAAKA,EAAGsnB,UACZ,CACA,OAAO,IACX,CAwDO,SAASw2T,GAAkB71U,EAASs0U,QACzBpmV,IAAVomV,GACAhqV,OAAO8E,KAAKklV,GAAOpjV,SAAQ,SAAUiG,GAEjC6I,EAAQhP,MAAMmG,GAAOm9U,EAAMn9U,EAC/B,GAER,CAUO,SAAS47Q,GAAU/yQ,EAAS81U,EAAY1iE,GAC3CC,GAAS,CAACrzQ,GAAU81U,GACpBhjE,GAAY,CAAC9yQ,GAAUozQ,EAC3B,CASO,SAAS9zP,GAAQtf,EAAS5E,GAE7B,IAAIkkB,EAAUtf,EAAQsf,SAAWtf,EAAQmf,mBAAqBnf,EAAQgf,sBACtE,OAAIM,EACOA,EAAQ90B,KAAKwV,EAAS5E,IAG6C,IAAnE,GAAG5F,QAAQhL,KAAKuxB,SAAS1gB,iBAAiBD,GAAW4E,EAEpE,CCxaA,IAAI+1U,GAAa,IAAIv0U,OAAO,KAOxBw0U,GAAsB,WAOtB,SAASA,EAAKrsU,EAAS3J,GACnBnV,KAAKorV,YAAa,EAClBprV,KAAKqrV,sBAAuB,EAC5BrrV,KAAK6yU,kBAAmB,EACxB7yU,KAAKsrV,wBAAyB,EAC9BtrV,KAAKurV,qBAAsB,EAC3BvrV,KAAK0yB,WAAa,CAAC,EACnB1yB,KAAKwrV,kBAAoB,CAAC,EAC1BxrV,KAAKyrV,cAAgB,CAAC,EACtBzrV,KAAK0rV,YAAc,CAAC,EACpB1rV,KAAK2rV,YAAa,EAClB3rV,KAAK4rV,uBAAwB,EAE7B5rV,KAAK6rV,YAAc,WAAc,EACjC7rV,KAAK8rV,uBAAyB,CAAC,EAC/B9rV,KAAK+rV,cAAgB,IAAIlO,GAAS79U,MAC7BurF,GAAYp2E,KAETnV,KAAKmV,QADL,kBAAqBA,EACN+b,SAAS0I,cAAczkB,GAGvBA,EAEd42T,GAAkB/rU,KAAKmV,WACxBnV,KAAKurV,qBAAsB,EAC3BvrV,KAAKgsV,gBAGRzgQ,GAAYzsE,IACb9e,KAAKisV,cAAcntU,GAAS,GAEhC9e,KAAKm4R,aAAc,CACvB,CA4NA,OAlNAgzD,EAAKx6U,UAAUs7U,cAAgB,SAAUtnV,EAAMunV,GAC3C,IAAIC,EAAgBnsV,KAAKurV,oBACzBvrV,KAAKurV,sBAAwBW,EAC7B/oQ,GAAMnjF,KAAM2E,IACS,IAAjBunV,GACA/oQ,GAAMnjF,KAAKwrV,kBAAmB7mV,GAC9B3E,KAAKosV,YAEAtf,MAAc9sU,KAAKorV,YACxBprV,KAAKqsV,eAAe1nV,GAExB3E,KAAK6rV,cACL7rV,KAAKwrV,kBAAoB,CAAC,EAC1BxrV,KAAKyrV,cAAgB,CAAC,EACtBzrV,KAAKurV,oBAAsBY,CAC/B,EASAhB,EAAKmB,kBAAoB,SAAUz7U,EAAKs3B,GAEpC,IADA,IACS74B,EAAK,EAAGi9T,EADN9sU,OAAO8E,KAAKsM,GACSvB,EAAKi9T,EAAOnpU,OAAQkM,IAAM,CACtD,IAAIhD,EAAMigU,EAAOj9T,GACjB,GAAI64B,EAAO,GAAK77B,aAAgBoE,MAC5B,IAAK,IAAI4kC,EAAK,EAAGI,EAAKvN,EAAO,GAAK77B,GAAMgpC,EAAKI,EAAGtyC,OAAQkyC,IAAM,CAC1D,IAAImpS,EAAQ/oS,EAAGJ,QACQjyC,IAAnBo7U,EAAM2N,UACN3N,EAAM2N,UAEd,MAGAjkT,EAAO,GAAK77B,GAAK8/U,UAEzB,CACJ,EACAjB,EAAKx6U,UAAU47U,aAAe,WAC1BvsV,KAAK6rV,cACL7rV,KAAKwrV,kBAAoB,CAAC,EAC1BxrV,KAAKyrV,cAAgB,CAAC,EACtBzrV,KAAK8rV,uBAAyB,CAAC,CACnC,EAMAX,EAAKx6U,UAAUy7U,SAAW,WAEtB,GADAjB,EAAKmB,kBAAkBtsV,KAAK8rV,uBAAwB9rV,MAChDP,OAAO6zC,oBAAoBtzC,KAAKwrV,mBAAmBpoV,OAAQ,CAC3D,IAAI+oV,EAAgBnsV,KAAKurV,oBACrBiB,EAAaxsV,KAAKwrV,kBAClBiB,EAAazsV,KAAKyrV,cACtBzrV,KAAKusV,eACLvsV,KAAKurV,qBAAsB,EAC3BvrV,KAAK0sV,kBAAkBF,EAAYC,GACnCzsV,KAAKurV,oBAAsBY,CAC/B,CACJ,EAEAhB,EAAKx6U,UAAU07U,eAAiB,SAAUG,GACtC,GAAK1f,KAAL,CAGA0f,EAAaA,GAA0B,CAAC,EACxC/iQ,GAAOzpF,KAAK0rV,YAAa,CAAC,EAAGc,GAAY,GACzC,IAAIG,EAAW,WACX3sV,KAAKsrV,wBAA0Bt6T,OAAO,GAAK27T,GAAUC,cACrD57T,OAAO,GAAK27T,GAAUC,YAAY5sV,MAClCA,KAAK0rV,YAAc,CAAC,EANxB,CAQJ,EAEAP,EAAKx6U,UAAUk8U,YAAc,SAAUvgV,EAAKqN,EAAUM,GAClD,GAAI6yT,KAAY,CAEZ,IAAI0f,EAAa,CAAC,EAClBA,EAAW,GAAKlgV,GAAOqN,EACvB3Z,KAAKqsV,eAAeG,EACxB,CACIxsV,KAAKurV,sBAGTvrV,KAAKyrV,cAAc,GAAKn/U,GAAO2N,EAC/Bja,KAAKwrV,kBAAkB,GAAKl/U,GAAOqN,EACnC3Z,KAAK6rV,cACL7rV,KAAK6rV,YAAcrgO,GAAaxrH,KAAKosV,SAASvsV,KAAKG,OACvD,EASAmrV,EAAKx6U,UAAU2qB,iBAAmB,SAAU/E,EAAWtyB,GACnDjE,KAAK+rV,cAAcxyU,GAAGgd,EAAWtyB,EACrC,EAQAknV,EAAKx6U,UAAUyqB,oBAAsB,SAAU7E,EAAWtyB,GACtDjE,KAAK+rV,cAAcvyU,IAAI+c,EAAWtyB,EACtC,EAYAknV,EAAKx6U,UAAU2vR,QAAU,SAAU/pQ,EAAW8yT,EAAWjL,EAAgBnqI,GACrE,IAAI30M,EAAQU,KACZ,IAAyB,IAArBA,KAAKm4R,YAAsB,CAC3B,IAAIg0D,EAAgBnsV,KAAKurV,oBACzBvrV,KAAKurV,qBAAsB,EAC3B,IAAIrhT,EAAOlqC,KAAK+rV,cAAc1yI,OAAO9iL,EAAW8yT,EAAWjL,EAAgBnqI,GAC3E,GAAIi3I,GAAW/hU,KAAKoN,GAAY,CAC5B,IAAItyB,EAAU4W,GAAS0b,EAAWv2B,MAClC,GAAIiE,EAAS,CAET,GAAI+sB,OAAkB,OAAG,CACrB,IAAIgsG,EAAU/4H,EAAQtE,KAAKK,KAAMqpV,GAC7BrsN,GAAmC,oBAAjBA,EAAQ/B,KACrBmjN,EAIDphN,EAAQ/B,MAAK,SAAU/wF,GACfk0S,IACAl0S,EAAuB,kBAATA,GAAqB5qC,EAAMysV,cAAcrN,OAAOx0S,GAC1DuG,KAAKuL,MAAM9R,GAAQA,EACvBk0S,EAAez+U,KAAKL,EAAO4qC,GAEnC,IAAGkyF,OAAM,SAAUlyF,GACX+pK,IACA/pK,EAAuB,kBAATA,GAAqB5qC,EAAMysV,cAAcrN,OAAOx0S,GAAQuG,KAAKuL,MAAM9R,GAAQA,EACzF+pK,EAAat0M,KAAKL,EAAO4qC,GAEjC,IAdAA,EAAO8yF,EAiBNohN,GACLA,EAAez+U,KAAKK,KAAMqpV,EAElC,MAEIplV,EAAQtE,KAAKK,KAAMqpV,GACfjL,GACAA,EAAez+U,KAAKK,KAAMqpV,EAGtC,MACSjL,GACLA,EAAez+U,KAAKK,KAAMqpV,EAElC,CAEA,OADArpV,KAAKurV,oBAAsBY,EACpBjiT,CACX,CACJ,EAMAihT,EAAKx6U,UAAUq7U,YAAc,WAEzB,IAAIc,EAAc,KAAO9sV,KAAK+sV,gBAAgBrsU,cAC9C8nQ,GAAS,CAACxoR,KAAKmV,SAAU,CAAC,QAAS23U,IAC9B/gB,GAAkB/rU,KAAKmV,QAAQ63U,eAIhCtsM,GAAS,gBAAiB,CAAC1gJ,MAAOA,KAAKmV,SAHvCnV,KAAKmV,QAAQ63U,cAAc5gV,KAAKpM,KAKxC,EAMAmrV,EAAKx6U,UAAUymI,QAAU,WACrB,IAAI93I,EAAQU,KAEZA,KAAKmV,QAAQ63U,cACThtV,KAAKmV,QAAQ63U,cAAc5mV,QAAO,SAAU+F,GAAK,OAAOA,IAAM7M,CAAO,IACzE2oR,GAAY,CAACjoR,KAAKmV,SAAU,CAAC,KAAOnV,KAAK+sV,kBACC,IAAtC/sV,KAAKmV,QAAQ63U,cAAc5pV,QAE3B6kR,GAAY,CAACjoR,KAAKmV,SAAU,CAAC,UAEjCnV,KAAKusV,eACLvsV,KAAK+rV,cAAc30M,UACnBp3I,KAAKm4R,aAAc,CACvB,EACOgzD,CACX,CApQ0B,GA8QnB,SAAS8B,GAAaxvT,EAAM0qS,GAC/B,IAAIzwT,EACAvL,EACAw9U,EAAsB,kBAATlsT,EAAoBvM,SAASg8T,eAAezvT,GAAQA,EACrE,IAAKtxB,EAAI,EAAGA,EAAIw9U,EAAIqD,cAAc5pV,OAAQ+I,IAAK,CAE3C,GADAuL,EAAWiyU,EAAIqD,cAAczgU,SAASpgB,EAAE2K,WAAY,KAChC,kBAATqxT,GAEP,GAAIA,IADWzwT,EAASq1U,gBAEpB,OAAOr1U,OAKX,GAAIA,aAAoBywT,EACpB,OAAOzwT,CAGnB,CAEJ,CCjSA,SAASy1U,GAAUz1U,EAAU01U,EAAQ50U,EAAc5L,GAK/C,OAHK8K,EAASgb,WAAW5hB,eAAes8U,IAAa11U,EAASgb,WAAW06T,aAAmBxgV,IACxF8K,EAASgb,WAAW,GAAK06T,GAAU16F,GAAe9lP,EAAM,CAAC8K,EAAU01U,EAAQ50U,KAExEd,EAASgb,WAAW,GAAK06T,EACpC,CAaA,SAASC,GAAe31U,EAAU01U,EAAQ50U,EAAc5L,EAAM0gV,EAAUC,GAGpE,IAFA,IAAI1iU,EAAS,GACT8kC,EAAMn3C,EAAeA,EAAapV,OAAS,EACtC+I,EAAI,EAAGA,EAAIwjD,EAAKxjD,IAAK,CAC1B,IAAIqhV,EAAU5gV,EAId,GAHI2gV,IACAC,EAAU5gV,EAAK4L,EAAa+T,SAASpgB,EAAE2K,WAAY,KAAMY,IAEzD41U,EAAU,CACV,IAAItf,EAAOt7E,GAAe86F,EAAS,CAAC91U,EAAU01U,EAAQ,CAAC,GAAG,IAC1Dpf,EAAKie,cAAczzU,EAAa+T,SAASpgB,EAAE2K,WAAY,MAAM,GAC7D+T,EAAOze,KAAK4hU,EAChB,MAEInjT,EAAOze,KAAKsmP,GAAe86F,EAAS,CAAC91U,EAAU01U,EAAQ50U,EAAa+T,SAASpgB,EAAE2K,WAAY,MAAM,IAEzG,CACA,OAAO+T,CACX,CAQA,SAAS4iU,GAAej1U,EAAc40U,GAClC,OAAO,WAKH,OAHKptV,KAAK0yB,WAAW5hB,eAAes8U,KAChCptV,KAAK0yB,WAAW,GAAK06T,GAAU50U,GAE5BxY,KAAK0yB,WAAW,GAAK06T,EAChC,CACJ,CAQA,SAASM,GAAel1U,EAAc40U,GAClC,OAAO,SAAUzzU,GACb,GAAI3Z,KAAK0yB,WAAW,GAAK06T,KAAYzzU,EAAU,CAE3C,IAAIg0U,EAAS3tV,KAAK0yB,WAAW5hB,eAAes8U,GAAUptV,KAAK0yB,WAAW06T,GAAU50U,EAChFxY,KAAK6sV,YAAYO,EAAQzzU,EAAUg0U,GACnC3tV,KAAK0yB,WAAW,GAAK06T,GAAUzzU,CACnC,CACJ,CACJ,CAUA,SAASi0U,GAAcp1U,EAAc40U,EAAQxgV,GACzC,OAAO,WACH,OAAOugV,GAAUntV,KAAMotV,EAAQ50U,EAAc5L,EACjD,CACJ,CASA,SAASihV,GAAcr1U,EAAc40U,EAAQxgV,GACzC,OAAO,SAAU+M,GACbwzU,GAAUntV,KAAMotV,EAAQ50U,EAAc5L,GAAMq/U,cAActyU,EAC9D,CACJ,CAyCA,SAASm0U,GAAmBt1U,EAAc40U,EAAQxgV,GAC9C,OAAO,WACH,IAAItN,EAAQU,KAEZ,IAAKA,KAAK0yB,WAAW5hB,eAAes8U,GAAS,CACzC,IAAIW,EAAgBV,GAAertV,KAAMotV,EAAQ50U,EAAc5L,GAAM,GACrE5M,KAAK0yB,WAAW,GAAK06T,GAAUW,CACnC,CACA,IAAIpnN,OAAkCtjI,IAAvBrD,KAAKguV,eAA+BhuV,KAAKguV,cAAcpC,uBAC/D5rV,KAAK4rV,sBAeZ,OAbK5rV,KAAK0yB,WAAW06T,GAAQt8U,eAAe,SAAY61H,GACpD,CAAC,OAAQ,OAAOtgI,SAAQ,SAAU4nV,GAC9B,IAAIh8T,EAAa,CACbrwB,MAAOssV,GAA4BD,EAAYb,EAAQxgV,EAAMtN,EAAMozB,WAAW,GAAK06T,IAASvtV,KAAKP,GACjG+Y,cAAc,GAElB5Y,OAAO4c,eAAe/c,EAAMozB,WAAW,GAAK06T,GAASa,EAAYh8T,EACrE,IAGCjyB,KAAK0yB,WAAW06T,GAAQt8U,eAAe,mBACxCrR,OAAO4c,eAAerc,KAAK0yB,WAAW,GAAK06T,GAAS,iBAAkB,CAAExrV,OAAO,IAE5E5B,KAAK0yB,WAAW,GAAK06T,EAChC,CACJ,CAQA,SAASe,GAAmB31U,EAAc40U,EAAQxgV,GAC9C,OAAO,SAAU+M,GACb3Z,KAAKqrV,sBAAuB,EAC5B,IAAI+C,EAAqBf,GAAertV,KAAMotV,EAAQ50U,EAAc5L,GAAM,GACtEyhV,EAAmBhB,GAAertV,KAAMotV,EAAQzzU,EAAU/M,GAAM,GACpE5M,KAAKqrV,sBAAuB,EAC5BrrV,KAAK6sV,YAAYO,EAAQiB,EAAkBD,GAC3CpuV,KAAK0yB,WAAW,GAAK06T,GAAUiB,CACnC,CACJ,CA2CA,SAASH,GAA4BI,EAAOlB,EAAQxgV,EAAMjI,GAEtD,OAAO,WAEH,IADA,IAAIgV,EAAW,GACNrK,EAAK,EAAGA,EAAKnM,UAAUC,OAAQkM,IACpCqK,EAASrK,GAAMnM,UAAUmM,GAE7B,IAAIq6M,EAAY3pN,KAAK0qI,SAAW1qI,KAAKuuV,eAAiB,IAAMnB,EAAS,IAAMA,EAAS,IACpF,OAAQkB,GACJ,IAAK,OACD,IAAK,IAAIniV,EAAI,EAAGA,EAAIwN,EAASvW,OAAQ+I,IAAK,CACtCuE,MAAMC,UAAU,GAAK29U,GAAOn1U,MAAMxU,EAAM,CAACgV,EAAS4S,SAASpgB,EAAE2K,WAAY,OACzE,IAAI03U,EAAUC,GAAc9kI,GAAahlN,EAAKvB,OAAS,GAAIuW,EAAS4S,SAASpgB,EAAE2K,WAAY,MAAO9W,KAAKguV,cAAeM,GACtHtuV,KAAKqsV,eAAemC,EAAS70U,EAAS4S,SAASpgB,EAAE2K,WAAY,MAAM,EAAOw3U,EAC9E,CACA,MACJ,IAAK,MACD59U,MAAMC,UAAU,GAAK29U,GAAOn1U,MAAMxU,GAElC,IAAIuwG,EAAQu5O,GAAc9kI,EAAYhlN,EAAKvB,OAAQ,MAAOpD,KAAKguV,cAAeM,GAC9EtuV,KAAKqsV,eAAen3O,EAAO,CAAEw5O,UAAW,QAAS,EAAOJ,GAGhE,OAAO3pV,CACX,CACJ,CASA,SAAS8pV,GAAc9kI,EAAW/nN,EAAO+sV,EAAiBC,GACtD,IAAIC,EAAcllI,EAClB,GAAIglI,KACAE,EAAc,CAAC,GACH,GAAKllI,GAAa/nN,EAC1BA,GAA0B,kBAAVA,GAAoB,CAEpCitV,EAAY,GAAKllI,GAAsB,UAAIilI,CAC/C,CAEJ,OAAOC,CACX,CAaO,SAASC,GAASt2U,GACrB,OAAO,SAAUnQ,EAAQiE,GACrB,IAAIyiV,EAAqB,CACrBr1U,IAAKg0U,GAAel1U,EAAclM,GAClCoK,IAAK+2U,GAAej1U,EAAclM,GAClC6L,YAAY,EACZE,cAAc,GAGlB5Y,OAAO4c,eAAehU,EAAQiE,EAAKyiV,GACnCC,GAAsB3mV,EAAQiE,EAAK,OAAQkM,EAC/C,CACJ,CAaO,SAASy2U,GAAQz2U,EAAc5L,GAClC,OAAO,SAAUvE,EAAQiE,GACrB,IAAIyiV,EAAqB,CACrBr1U,IAAKm0U,GAAcr1U,EAAclM,EAAKM,GACtC8J,IAAKk3U,GAAcp1U,EAAclM,EAAKM,GACtCuL,YAAY,EACZE,cAAc,GAGlB5Y,OAAO4c,eAAehU,EAAQiE,EAAKyiV,GACnCC,GAAsB3mV,EAAQiE,EAAK,cAAekM,EAAc5L,EACpE,CACJ,CAqCO,SAASsiV,GAAW12U,EAAc5L,GACrC,OAAO,SAAUvE,EAAQiE,GACrB,IAAIyiV,EAAqB,CACrBr1U,IAAKy0U,GAAmB31U,EAAclM,EAAKM,GAC3C8J,IAAKo3U,GAAmBt1U,EAAclM,EAAKM,GAC3CuL,YAAY,EACZE,cAAc,GAGlB5Y,OAAO4c,eAAehU,EAAQiE,EAAKyiV,GACnCC,GAAsB3mV,EAAQiE,EAAK,UAAWkM,EAAc5L,EAChE,CACJ,CAkCO,SAASqqB,KACZ,OAAO,SAAU5uB,EAAQiE,GACrB,IAAI6iV,EAAkB,CAClBz1U,IAAK,SAAUC,GACX,IAAIM,EAAWja,KAAK0yB,WAAW,GAAKpmB,GACpC,GAAI2N,IAAaN,EAAU,CACvB,IAAIy1U,EAAeC,GAAiBrvV,KAAMsM,IACZ,IAA1Bi/E,GAAYtxE,IACZm1U,EAAan0U,QAAQmgB,oBAAoBg0T,EAAapoS,OAAQ/sC,GAElEm1U,EAAan0U,QAAQqgB,iBAAiB8zT,EAAapoS,OAAQrtC,GAC3D3Z,KAAK0yB,WAAW,GAAKpmB,GAAOqN,CAChC,CACJ,EACAjD,IAAK+2U,QAAepqV,EAAWiJ,GAC/B6L,YAAY,EACZE,cAAc,GAElB5Y,OAAO4c,eAAehU,EAAQiE,EAAK6iV,GACnCH,GAAsB3mV,EAAQiE,EAAK,QACvC,CACJ,CAyBO,SAASgjV,GAAsBC,GAClC,CAaJ,SAASP,GAAsB3mV,EAAQiE,EAAKkjV,EAAch3U,EAAc5L,GAChE2+E,GAAYljF,EAAOonV,YACnBpnV,EAAOonV,SAAW,CACdrwV,MAAO,GACPswV,aAAc,GACdC,SAAU,GACVv0N,OAAQ,GACR92H,UAAW,GACXsrV,iBAAkB,GAClBC,aAAc,GACd9jE,WAAY,KAIpB1jR,EAAOonV,SAASD,EAAe,KAAKpjV,KAAK,CACrCigI,aAAc//H,EACdkM,aAAcA,EACd5L,KAAMA,IAGVvE,EAAOonV,SAASD,EAAe,SAASpjV,KAAKE,EACjD,CAwFA,SAAS+iV,GAAiBp0U,EAAS+rC,GAE/B,IAA4C,IAAxC/rC,EAAQnK,eAAe,aACvB,MAAO,CAAEmK,QAASA,EAAS+rC,OAAQA,GAGnC,IAAI8oS,EAAUj1U,GAAS,WAAYI,GAInC,OAHI60U,IACA9oS,EAAS8oS,EAAU,IAAM9oS,GAEtBqoS,GAAiBx0U,GAAS,YAAaI,GAAU+rC,EAEhE,CCllBA,IAAId,GAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAazC2pS,GAA0C,SAAUxoJ,EAAYl/L,EAAQiE,EAAKkkB,GAC7E,IAA2HhvB,EAAvH6e,EAAIld,UAAUC,OAAQkgH,EAAIjjG,EAAI,EAAIhY,EAAkB,OAATmoB,EAAgBA,EAAO/wB,OAAOk+B,yBAAyBt1B,EAAQiE,GAAOkkB,EACrH,GAAuB,kBAAZuN,SAAoD,oBAArBA,QAAQiyT,SAAyB1sO,EAAIvlF,QAAQiyT,SAASzoJ,EAAYl/L,EAAQiE,EAAKkkB,QACpH,IAAK,IAAIrkB,EAAIo7L,EAAWnkM,OAAS,EAAG+I,GAAK,EAAGA,KAAS3K,EAAI+lM,EAAWp7L,MAAIm3G,GAAKjjG,EAAI,EAAI7e,EAAE8hH,GAAKjjG,EAAI,EAAI7e,EAAE6G,EAAQiE,EAAKg3G,GAAK9hH,EAAE6G,EAAQiE,KAASg3G,GAChJ,OAAOjjG,EAAI,GAAKijG,GAAK7jH,OAAO4c,eAAehU,EAAQiE,EAAKg3G,GAAIA,CAChE,EAiBI2sO,GAA2B,SAAUnpS,GAErC,SAASmpS,EAAUnxU,GACf,IAAIxf,EAAQwnD,EAAOnnD,KAAKK,KAAM8e,OAASzb,IAAcrD,KAcrD,OAVAV,EAAM4wV,OAAS,CACXC,KAAM,2CACNC,OAAQ,2CACRC,OAAQ,2CACRC,QAAS,2CACTC,UAAW,2CACXC,aAAc,oCACdC,UAAW,oCACXC,WAAY,qCAETpxV,CACX,CAqLA,IAAIqxV,EA4BJ,OAlOAzqS,GAAU+pS,EAAWnpS,GAkBrB6pS,EAAcV,EAQdA,EAAUt/U,UAAUsxS,QAAU,SAAU9sS,EAAS2J,GAC7CA,EAAWA,GAAU,CAAC,EACtB,IAAIo2F,EAAQl1G,KAAK4wV,SAAS9xU,GAC1B,GAAuB,kBAAZ3J,EAEP,IADA,IACS7F,EAAK,EAAGuhV,EADFngV,MAAMC,UAAUC,MAAMjR,KAAKgrV,GAAUx1U,EAAS+b,WACrB5hB,EAAKuhV,EAAWztV,OAAQkM,IAAM,CAClE,IAAIwhV,EAAYD,EAAWvhV,GAC3B4lG,EAAM//F,QAAU27U,EAChBH,EAAYI,eAAe77O,EAC/B,MAGAA,EAAM//F,QAAUA,EAChBw7U,EAAYI,eAAe77O,EAEnC,EAQA+6O,EAAUtqD,KAAO,SAAUxwR,EAAS+/F,GAChC//F,EAAQhP,MAAMgpJ,UAAY,GAC1Bh6I,EAAQ4f,gBAAgB,aACxB,IAAIi8T,EAAc77U,EAAQmd,aAAa,kBACvC,GAAI0+T,EAAa,CACb,IAAIC,EAAU1kU,SAASykU,EAAa,IACpCh7T,qBAAqBi7T,GACrB97U,EAAQ4f,gBAAgB,iBAC5B,CACImgF,GAASA,EAAM97D,KACf87D,EAAM97D,IAAIz5C,KAAKK,KAAMk1G,EAE7B,EAOA+6O,EAAUc,eAAiB,SAAU77O,GACX,YAAlBg8O,IACIh8O,EAAMi8O,OACNj8O,EAAMi8O,MAAMxxV,KAAKK,KAAMk1G,GAEvBA,EAAM97D,KACN87D,EAAM97D,IAAIz5C,KAAKK,KAAMk1G,IAIrBA,EAAMj0B,MACN7qD,YAAW,WAAcu6T,EAAYS,eAAel8O,EAAQ,GAAGA,EAAMj0B,OAGrE0vQ,EAAYS,eAAel8O,EAGvC,EAOA+6O,EAAUmB,eAAiB,SAAUl8O,GACjC,IAAI51G,EAAQU,KACZk1G,EAAMwwC,UAAY,EAClB,IAAInrE,EAAO,EACPwF,EAAU,EACVsxQ,EAAgB,EAChBp9O,EAAWiB,EAAMjB,SACrBiB,EAAM//F,QAAQ6f,aAAa,YAAa,QACxC,IAAIs8T,EAAiB,SAAU5rM,GAC3B,IACI,GAAIA,EAAW,CAGX2rM,EAAkC,IAAlBA,EAAsB3rM,EAAY2rM,EAClDn8O,EAAMwwC,UAAaA,EAAYxwC,EAAMwwC,UAAa2rM,EAClDA,EAAgB3rM,GAGXnrE,GAAQ26B,EAAMi8O,OACfj8O,EAAMi8O,MAAMxxV,KAAKL,EAAO41G,GAE5B36B,GAAc,EACd,IAAIg3Q,EAAMr8O,EAAMwwC,UAAYnrE,EACxB26B,EAAMwwC,UAAYzxC,GAAYiB,EAAMwwC,UAAY6rM,EAAMt9O,GAAYiB,EAAM//F,QAAQmd,aAAa,cAE7F4iF,EAAM//F,QAAQhP,MAAMgpJ,UAAYj6C,EAAMxwG,KAAO,IAAMwwG,EAAMjB,SAAW,MAAQiB,EAAMs8O,eAC9Et8O,EAAMu8O,UACNv8O,EAAMu8O,SAAS9xV,KAAKL,EAAO41G,GAG/Bp/E,sBAAsBw7T,KAItBt7T,qBAAqB+pD,GACrBm1B,EAAM//F,QAAQ4f,gBAAgB,kBAC9BmgF,EAAM//F,QAAQ4f,gBAAgB,aAC9BmgF,EAAM//F,QAAQhP,MAAMgpJ,UAAY,GAC5Bj6C,EAAM97D,KACN87D,EAAM97D,IAAIz5C,KAAKL,EAAO41G,GAGlC,MAIIn1B,EAAUjqD,sBAAsBw7T,GAChCp8O,EAAM//F,QAAQ6f,aAAa,iBAAkB+qD,EAAQjpE,WAE7D,CACA,MAAOzW,GACH21B,qBAAqB+pD,GACrBm1B,EAAM//F,QAAQ4f,gBAAgB,kBAC1BmgF,EAAMw8O,MACNx8O,EAAMw8O,KAAK/xV,KAAKL,EAAOe,EAE/B,CACJ,EACAixV,GACJ,EAOArB,EAAUt/U,UAAUigV,SAAW,SAAU9xU,GACrC,MAAO,CACHpa,KAAMoa,EAAQpa,MAAQ1E,KAAK0E,KAC3Bu8E,MAAOniE,EAAQmiE,OAASjhF,KAAKihF,MAC7BgzB,cAAgC5wG,IAArByb,EAAQm1F,SAAyBn1F,EAAQm1F,SAAWj0G,KAAKi0G,SACpEk9O,MAAOryU,EAAQqyU,OAASnxV,KAAKmxV,MAC7B/3S,IAAKt6B,EAAQs6B,KAAOp5C,KAAKo5C,IACzBs4S,KAAM5yU,EAAQ4yU,MAAQ1xV,KAAK0xV,KAC3BD,SAAU3yU,EAAQ2yU,UAAYzxV,KAAKyxV,SACnCD,eAAgBxxV,KAAKkwV,OAAOpxU,EAAQ0yU,gBAAkBxxV,KAAKkwV,OAAOpxU,EAAQ0yU,gBACrE1yU,EAAQ0yU,gBAAkBxxV,KAAKkwV,OAAOlwV,KAAKwxV,gBAExD,EAQAvB,EAAUt/U,UAAU+7U,kBAAoB,SAAUiF,EAASC,GACvD,EAQJ3B,EAAUt/U,UAAUo8U,cAAgB,WAChC,MAAO,WACX,EAMAkD,EAAUt/U,UAAUymI,QAAU,WAC1B,EAGJ24M,GAAW,CACPjB,GAAS,WACVmB,EAAUt/U,UAAW,YAAQ,GAChCo/U,GAAW,CACPjB,GAAS,MACVmB,EAAUt/U,UAAW,gBAAY,GACpCo/U,GAAW,CACPjB,GAAS,SACVmB,EAAUt/U,UAAW,sBAAkB,GAC1Co/U,GAAW,CACPjB,GAAS,IACVmB,EAAUt/U,UAAW,aAAS,GACjCo/U,GAAW,CACP94T,MACDg5T,EAAUt/U,UAAW,gBAAY,GACpCo/U,GAAW,CACP94T,MACDg5T,EAAUt/U,UAAW,aAAS,GACjCo/U,GAAW,CACP94T,MACDg5T,EAAUt/U,UAAW,WAAO,GAC/Bo/U,GAAW,CACP94T,MACDg5T,EAAUt/U,UAAW,YAAQ,GAChCs/U,EAAYU,EAAcZ,GAAW,CACjCT,IACDW,EAEP,CApO+B,CAoO7B9E,IAiBK,SAAS0G,GAAa18U,EAAS28U,EAAet7U,GACjD,IAAIu7U,EA2BR,SAAwBD,GACpB,IAAIC,EAAc,CACdxhV,SAAUuhV,GAAiBA,EAAcvhV,SAAWuhV,EAAcvhV,SAAW,KAC7Eo2H,OAAQmrN,GAAiBA,EAAcnrN,OAASmrN,EAAcnrN,OAAS,KACvEqrN,WAAYF,GAAiBA,EAAcE,WAC3CC,eAAgBH,GAAiBA,EAAcG,eAC/Ch+O,SAAU69O,GAAiBA,EAAc79O,SAAW69O,EAAc79O,SAAW,KAEjF,OAAO89O,CACX,CApCsBG,CAAeJ,GACjC,OAA+B,IAA3BC,EAAYC,iBAAoD3uV,IAA3B0uV,EAAYC,aAA6BG,GACtE,WACJ,GAGRh9U,EAAQ6f,aAAa,cAAe,QACpC6jN,GAAazlN,IAAIje,EAAS,YAAai9U,GAAe,CAAEjqT,OAAQhzB,EAAS28U,cAAeC,IACxFl5G,GAAazlN,IAAIje,EAAS,UAAWk9U,GAAiB,CAAElqT,OAAQhzB,EAAS28U,cAAeC,EAAav7U,KAAMA,IAC3GqiO,GAAazlN,IAAIje,EAAS,aAAcm9U,GAAoB,CAAEnqT,OAAQhzB,EAAS28U,cAAeC,IAC1F9K,GAAQI,WACRxuG,GAAazlN,IAAIje,EAAS,gBAAiBm9U,GAAoB,CAAEnqT,OAAQhzB,EAAS28U,cAAeC,IAE7F,WACJ58U,EAAQ4f,gBAAgB,eACxB8jN,GAAa1lN,OAAOhe,EAAS,YAAai9U,IAC1Cv5G,GAAa1lN,OAAOhe,EAAS,UAAWk9U,IACxCx5G,GAAa1lN,OAAOhe,EAAS,aAAcm9U,IAC3Cz5G,GAAa1lN,OAAOhe,EAAS,gBAAiBm9U,GAClD,EACJ,CAwBA,SAASF,GAAc/xV,GACnB,IAAIgI,EAAUhI,EAAEgI,OACZkI,EAAWvQ,KAAK8xV,cAAcvhV,SAC9B4E,EAAU5E,EAAWklF,GAAQptF,EAAQkI,GAAYlI,EACrD,MAAK8M,GAAYnV,KAAK8xV,eAAiBr8P,GAAQptF,EAAQrI,KAAK8xV,cAAcnrN,SAA1E,CAGA,IAAIjpH,EAASvI,EAAQs/Q,wBACjB89D,EAAUlyV,EAAE2lJ,MAAQ90H,SAASzd,KAAKw6I,WAClCukM,EAAUnyV,EAAE4lJ,QAAW/0H,SAASzd,KAAK06I,WAAaj9H,SAASuE,gBAC3DvE,SAASuE,gBAAgB04H,UAAYj9H,SAASzd,KAAK06I,WACnDnI,EAAQpiJ,KAAKqpC,IAAIrpC,KAAK8Y,IAAI61U,EAAU70U,EAAOimH,MAAO//H,KAAK8Y,IAAI61U,EAAU70U,EAAOkmH,QAC5EqiB,EAAQriJ,KAAKqpC,IAAIrpC,KAAK8Y,IAAI81U,EAAU90U,EAAOwwI,KAAMtqJ,KAAK8Y,IAAI81U,EAAU90U,EAAOi3Q,SAC3EnS,EAAS5+Q,KAAK0kS,KAAKtiJ,EAAQA,EAAQC,EAAQA,GAC3CwsM,EAAoB,EAATjwE,EAAa,KACxBtoQ,EAAIq4U,EAAU70U,EAAOimH,KAAO6+I,EAC5BroQ,EAAIq4U,EAAU90U,EAAOwwI,IAAMs0H,EAC3BxiR,KAAK8xV,eAAiB9xV,KAAK8xV,cAAcG,iBACzC/3U,EAAI,EACJC,EAAI,EACJs4U,EAAW,QAEft9U,EAAQ+yQ,UAAU90P,IAAI,YACtB,IAGIs/T,EAAgB5xV,GAAc,MAAO,CAAEC,UAAW,mBAAoBmzR,OAF7D,UAAYu+D,EAAW,YAAcA,EAAW,UAAYv4U,EAAI,WAAaC,EAA7E,2BADEna,KAAK8xV,cAAc79O,SAASn9F,WAEF,QAEzC3B,EAAQuc,YAAYghU,GACpB1hU,OAAOwhQ,iBAAiBkgE,GAAeC,iBAAiB,WACxDD,EAAcvsV,MAAMoyD,UAAY,WAC5BpjD,IAAYnV,KAAKmoC,QACjB0wM,GAAazlN,IAAIje,EAAS,aAAcm9U,GAAoB,CAAEnqT,OAAQnoC,KAAKmoC,OAAQ2pT,cAAe9xV,KAAK8xV,eAzB3G,CA2BJ,CAQA,SAASO,GAAgBhyV,GACrBuyV,GAAavyV,EAAGL,KACpB,CAQA,SAASsyV,GAAmBjyV,GACxBuyV,GAAavyV,EAAGL,KACpB,CASA,SAAS4yV,GAAavyV,EAAGukV,GACrB,IAAI3wO,EAAW2wO,EAAUkN,cAAc79O,SACnC5rG,EAAUhI,EAAEgI,OACZkI,EAAWq0U,EAAUkN,cAAcvhV,SACnC4E,EAAU5E,EAAWklF,GAAQptF,EAAQkI,GAAYlI,EACrD,GAAK8M,KAAYA,IAAsD,IAA3CA,EAAQpU,UAAU4J,QAAQ,aAAtD,CAGA,IAAIkoV,EAAiBlI,GAAU,oBAAqBx1U,GAChDu9U,EAAgBG,EAAeA,EAAezvV,OAAS,GACvDsvV,IACAA,EAAcvsV,MAAMmoI,QAAU,OAE9Bs2M,EAAUz8S,SAAWhzB,GACrB0jO,GAAa1lN,OAAOhe,EAAS,aAAcm9U,IAG/Cl8T,YAAW,WACHs8T,GAAiBA,EAAcl+T,YAC/Bk+T,EAAcl+T,WAAWW,YAAYu9T,GAEpCv9U,EAAQ29U,uBAAuB,oBAAoB1vV,QACpD+R,EAAQ+yQ,UAAU/0P,OAAO,YAEzByxT,EAAUpuU,MACVouU,EAAUpuU,KAAKnW,EAEvB,GAAG4zG,EApBH,CAqBJ,CACO,IAAIk+O,IAAkB,EAgBtB,IAAIjB,GAAgB,GC5a3B,ICEI6B,GDDAC,GAA8B,WAC9B,SAASA,EAAa7qT,GAClBnoC,KAAKizV,cAAgB,GACrBjzV,KAAKmoC,OAASA,CAClB,CAiGA,OAzFA6qT,EAAariV,UAAU66J,OAAS,SAAU0nL,EAAiBC,GACvD,IAAIC,EAAYF,EAAgB9vV,OAChC,GAAkB,IAAdgwV,EAAJ,CAIIpzV,KAAKizV,cAAc7vV,QACnBpD,KAAKqzV,kBAAkBH,GAE3B,IAAK,IAAI/mV,EAAI,EAAGA,EAAIinV,EAAWjnV,IAE3B,IADA,IAAImnV,EAAOJ,EAAgB3mU,SAASpgB,EAAE2K,WAAY,KACzCxH,EAAK,EAAGikV,EAAeJ,EAAY7jV,EAAKikV,EAAanwV,OAAQkM,IAAM,CACxE,IAAI0H,EAASu8U,EAAajkV,GACtBkkV,EAAUF,EAAKG,OACnB,GAAIz8U,GAAUA,EAAOrG,UAAUo8U,kBAAoBuG,EAAKG,SAAWzzV,KAAK0zV,eAAeF,GAAU,CAC7F,IAAIG,EAAejhG,GAAe17O,EAAQs8U,EAAKr6U,MAC3C26U,EAAa5zV,KAAK6zV,cAAcL,GAChCF,EAAKQ,WACLpzM,GAASkzM,EAAY58U,EAAQhX,KAAKmoC,QAGlCu4G,GAASkzM,EAAYD,EAAc3zV,KAAKmoC,QAE5C,IAAI4rT,EAAeT,EACnBS,EAAaN,OAASG,EACtB5zV,KAAKizV,cAAc7mV,KAAK2nV,EAC5B,CACJ,CAtBJ,MAFI/zV,KAAK8kI,OA0Bb,EAMAkuN,EAAariV,UAAUm0H,MAAQ,WAC3B,IAAK,IAAIx1H,EAAK,EAAGgmC,EAAKt1C,KAAKizV,cAAe3jV,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CAC5D,IAAI0kV,EAAU1+S,EAAGhmC,GACZ0kV,EAAQF,YACTj5U,GAASm5U,EAAQP,OAAQzzV,KAAKmoC,QAAQivG,SAE9C,CACAp3I,KAAKizV,cAAgB,EACzB,EAOAD,EAAariV,UAAU0iV,kBAAoB,SAAUF,GAMjD,IALA,IAAI7zV,EAAQU,KACRi0V,EAAcd,EAAWltV,KAAI,SAAUuyD,GAAO,OAAOl5D,EAAMu0V,cAAcr7R,EAAIi7R,OAAS,IAIjFnkV,EAAK,EAAG4kV,EAHKl0V,KAAKizV,cAAc7sV,QAAO,SAAU4Q,GACtD,OAA+C,IAAxCi9U,EAAYtpV,QAAQqM,EAAOy8U,OACtC,IACsDnkV,EAAK4kV,EAAkB9wV,OAAQkM,IAAM,CACvF,IAAIxK,EAAMovV,EAAkB5kV,GACvBxK,EAAIgvV,YACLj5U,GAAS/V,EAAI2uV,OAAQzzV,KAAKmoC,QAAQivG,UAEtCp3I,KAAKizV,cAAcz9T,OAAOx1B,KAAKizV,cAActoV,QAAQ7F,GAAM,GAC3DknU,GAAahsU,KAAKmoC,OAAQrjC,EAAI2uV,OAClC,CACJ,EAOAT,EAAariV,UAAUkjV,cAAgB,SAAUnvV,GAC7C,OAAOA,EAAK,GAAGgc,cAAgBhc,EAAKwiB,UAAU,GArFlC,QAsFhB,EAOA8rU,EAAariV,UAAU+iV,eAAiB,SAAUF,GAC9C,IAAK,IAAIlkV,EAAK,EAAGgmC,EAAKt1C,KAAKizV,cAAe3jV,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CAE5D,GADUgmC,EAAGhmC,GACLmkV,SAAWzzV,KAAK6zV,cAAcL,GAClC,OAAO,CAEf,CACA,OAAO,CACX,EACOR,CACX,CAtGkC,GEE9BmB,GAA+B,WAC/B,SAASA,EAAchsT,EAAQuiG,EAAUlyH,EAAc9G,GACnD1R,KAAKqrV,sBAAuB,EAC5BrrV,KAAK0yB,WAAa,CAAC,EACnB1yB,KAAKwrV,kBAAoB,CAAC,EAC1BxrV,KAAK8rV,uBAAyB,CAAC,EAC/B9rV,KAAKyrV,cAAgB,CAAC,EAEtBzrV,KAAK6rV,YAAc,WAAc,EACjC7rV,KAAKssV,kBAAoBzxU,GAAS,oBAAqBswU,IACvDnrV,KAAKo0V,UAAYjsT,EACjBnoC,KAAKguV,cAAgBhuV,KAAKo0V,UAAUpG,eAAiBhuV,KAAKo0V,UAC1Dp0V,KAAK0qI,SAAWA,EAChB1qI,KAAKq0V,cAAgB3iV,EACrB1R,KAAKisV,cAAczzU,GAAc,EACrC,CAwJA,OAhJA27U,EAAcxjV,UAAU2jV,aAAe,SAAUvlU,EAAK27G,IACtC,IAAR37G,EACA/uB,KAAKo0V,UAAUtI,uBAAuB,GAAKphN,GAAY37G,SAGhD/uB,KAAKo0V,UAAUtI,uBAAuB,GAAKphN,GAElD1qI,KAAKo0V,UAAUE,cACft0V,KAAKo0V,UAAUE,aAAavlU,EAAK/uB,KAAKo0V,UAAU1pN,SAExD,EAMAypN,EAAcxjV,UAAU4jV,cAAgB,WACpC,GAAIv0V,KAAKo0V,UAAUG,cACfv0V,KAAKo0V,UAAUvI,cACf7rV,KAAKo0V,UAAUG,oBAEd,CACD,IAAIC,EAAep+T,WAAWp2B,KAAKo0V,UAAUhI,SAASvsV,KAAKG,KAAKo0V,YAIhEp0V,KAAK6rV,YAHa,WACdx1T,aAAam+T,EACjB,CAEJ,CACJ,EAMAL,EAAcxjV,UAAU47U,aAAe,WACnCvsV,KAAK6rV,cACL7rV,KAAKs0V,cAAa,EAAOt0V,KAAK0qI,UAC9B1qI,KAAKyrV,cAAgB,CAAC,EACtBzrV,KAAKwrV,kBAAoB,CAAC,CAC9B,EAQA2I,EAAcxjV,UAAUs7U,cAAgB,SAAUtnV,EAAMunV,IAC/B,IAAjBA,GACA/oQ,GAAMnjF,KAAM2E,GACZ3E,KAAKs0V,cAAa,EAAOt0V,KAAK0qI,UAC9B1qI,KAAKusV,gBAGLppQ,GAAMnjF,KAAM2E,EAEpB,EAMAwvV,EAAcxjV,UAAUy7U,SAAW,WAE/B,GADApsV,KAAKssV,kBAAkBtsV,KAAK8rV,uBAAwB9rV,MAChDA,KAAKq0V,cAAe,CACpB,IAAII,EAAWz0V,KAAKo0V,UAAUp0V,KAAK0qI,UAAU//H,QAAQ3K,MACjDP,OAAO8E,KAAKvE,KAAKwrV,mBAAmBpoV,SACpCs9I,GAAS1gJ,KAAK0qI,SAAW,IAAM+pN,EAAUz0V,KAAKwrV,kBAAmBxrV,KAAKo0V,UAAU5I,mBAChF9qM,GAAS1gJ,KAAK0qI,SAAW,IAAM+pN,EAAUz0V,KAAKyrV,cAAezrV,KAAKo0V,UAAU3I,eAEpF,MAEIzrV,KAAKo0V,UAAU5I,kBAAkBxrV,KAAK0qI,UAAY1qI,KAAKwrV,kBACvDxrV,KAAKo0V,UAAU3I,cAAczrV,KAAK0qI,UAAY1qI,KAAKyrV,cAEvDzrV,KAAKusV,cACT,EAUA4H,EAAcxjV,UAAUk8U,YAAc,SAAUvgV,EAAKqN,EAAUM,EAAUy6U,GACjE10V,KAAKguV,cAAczC,sBAGlBmJ,GACD10V,KAAKqsV,eAAe//U,EAAKqN,GAAU,GAEvC3Z,KAAKyrV,cAAc,GAAKn/U,GAAO2N,EAC/Bja,KAAKwrV,kBAAkB,GAAKl/U,GAAOqN,EACnC3Z,KAAKs0V,cAAa,EAAMt0V,KAAK0qI,UAC7B1qI,KAAK6rV,cACL7rV,KAAKu0V,gBACT,EACAJ,EAAcxjV,UAAU07U,eAAiB,SAAU//U,EAAK1K,EAAO+yV,EAAez/Q,GAC1E,GAAI43P,OAAe9sU,KAAKo0V,UAAU/I,qBAAsB,CACpD,IAAIpkD,EACAulD,EAAa,CAAC,EACdoI,EAAYD,EAAgB30V,KAAKuuV,cAAa,GAAQ,IAAMjiV,EAAMA,EAEtE,IAAgC,IAA5BsoV,EAAUjqV,QAAQ,KAAa,CAC/B,IAAIkqV,EAAcD,EAAUjiU,MAAM,KAClCs0Q,EAAWulD,EACX,IAAK,IAAIrgV,EAAI,EAAGA,EAAI0oV,EAAYzxV,OAAQ+I,IAAK,CACzC,IAAI2oV,EAAU3oV,IAAM0oV,EAAYzxV,OAAS,EACzC6jS,EAAS4tD,EAAYtoU,SAASpgB,EAAE2K,WAAY,MAAQg+U,EAAUlzV,EAAQ,CAAC,EACvEqlS,EAAW6tD,EAAU7tD,EAAWA,EAAS4tD,EAAYtoU,SAASpgB,EAAE2K,WAAY,KAChF,CACJ,MAEI01U,EAAW,GAAKoI,GAAa,CAAC,EAC9B3tD,EAAWulD,EAAW,GAAKoI,GAC3BpI,EAAW,GAAKoI,GAAW,GAAKtoV,GAAO1K,EAG3C,GAAI5B,KAAKq0V,cAAe,CAEpBptD,EAA4B,UAAI/xN,GAAkB,MACtD,CACAl1E,KAAKguV,cAAc3B,eAAeG,EACtC,CACJ,EACA2H,EAAcxjV,UAAU49U,aAAe,SAAUoG,GAE7C,IAAIloU,EAAQ,GACRi+G,EAAW1qI,KAAK0qI,SAEpB,GAAI1qI,KAAKq0V,cAAe,CACpB5nU,EAAQzsB,KAAKo0V,UAAUp0V,KAAK0qI,UAAU//H,QAAQ3K,MAC9C,IAAIohD,EAAcphD,KAAKo0V,UAAUp0V,KAAK0qI,UAAUtnI,OAChDg+C,EAAcuzS,EAAgBvzS,EAAeA,EAAc,EAAIA,EAAc,EAAI,EAEjFspF,GADAj+G,GAAmB,IAAXA,EAAe,IAAMA,EAAQ,IAAM20B,CAE/C,CAIA,OAHIphD,KAAKguV,gBAAkBhuV,KAAKo0V,YAC5B1pN,EAAW1qI,KAAKo0V,UAAU7F,eAAiB,IAAMvuV,KAAK0qI,SAAWj+G,GAE9Di+G,CACX,EACOypN,CACX,CAxKmC,GDLxBY,GAAgB,CAAC,OAAQ,YAAa,WAAY,cAAe,iBAAkB,iBAAkB,UAAW,gBAAiB,YAAa,iBAAkB,kBAAmB,QAAS,aAAc,gBAAiB,UAAW,UAAW,cAAe,OAAQ,SAAU,aAAc,UAAW,YAAa,UAAW,cAAe,SAAU,kBAAmB,WAAY,QAAS,YAAa,gBAAiB,iBAAkB,WAAY,cAAe,WAAY,YAAa,MAAO,YACtfC,GAAY,CAAC,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAC/C,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAC7C,IAAK,IAAK,GAAI,IAAK,IAAK,KAOxBC,GAAkC,WAClC,SAASA,EAAiB3oV,GACtBtM,KAAKk1V,aAAc,EACnBl1V,KAAKm1V,YAAa,EAClBn1V,KAAKwiC,QAAU,KACfxiC,KAAKgoV,SAAW,sDAChBhoV,KAAKstD,OAAS,CACV8nS,UAAW,4LAEXC,aAAc,4LAEdC,kBAAmB,+DACnBC,mBAAoB,+DACpBC,WAAY,gEAKhBx1V,KAAKy1V,QAAW,WACZ,IAAIC,EAAS,KAcb,MAAO,CACHC,OARJ,SAAarpV,GAAOopV,EAASppV,CAAK,EAS9BspV,OAHJ,WAAiB,OAAOF,CAAQ,EAKpC,CAnBgB,GAuBhB11V,KAAK61V,WAQM,CACHD,OAFJ,WAAiB,MAND,eAMmB,GAKvC51V,KAAKy1V,QAAQE,OAAOrpV,EACxB,CAoJA,OAhJA2oV,EAAiBtkV,UAAUmlV,SAAW,WAKlC,IAAK91V,KAAKk1V,aAAgBjpB,KAAoBpxT,GAASk7U,GAAcf,IAAY/oB,MAAqBpxT,GAAS,SAAUoxT,IAAmB,CACxI,IAAI+pB,OAAc,EACdC,OAAc,EAClB,GAAKj2V,KAAKy1V,SAAWz1V,KAAKy1V,QAAQG,UAAc51V,KAAK61V,YAA2C,kBAA7B71V,KAAK61V,WAAWD,SAA+B,CAC9G,IAAI/qU,EAAS7qB,KAAKk2V,iBAClB,GAAIrrU,GAAUA,EAAOznB,OACjB,IAAK,IAAIkM,EAAK,EAAG6mV,EAAWtrU,EAAQvb,EAAK6mV,EAAS/yV,OAAQkM,IAAM,CAC5D,IAAI4oF,EAAMi+P,EAAS7mV,GACnB,IAAKtP,KAAKgoV,SAAS7+T,KAAK+uE,EAAI8vP,WAAa9vP,EAAIk+P,gBACzCJ,EAAch2V,KAAKstD,OAAOioS,wBAEzB,IAA2C,IAAvCr9P,EAAI11D,QAAQ73B,QAAQ3K,KAAKwiC,SAG9BwzT,GADAA,GADAA,EAAch2V,KAAKstD,OAAOgoS,mBACAjlV,QAAQ,mBAAoB6nF,EAAI11D,UAChCnyB,QAAQ,mBAAoBrQ,KAAKwiC,QAAU,WAEpE,GAAI01D,EAAIm+P,WAAY,CACrB,IAAIC,EAAU,IAAI70V,KAAKy2F,EAAIm+P,YACvBE,EAAW,IAAI90V,KACnB,KAAI60V,IAAYC,GAAYD,EAAUC,GAIlC,MAHAP,EAAch2V,KAAKstD,OAAO+nS,YAKlC,CACJ,MAGAW,EAAch2V,KAAKstD,OAAOkoS,UAElC,KACK,CACD,IAAIgB,EAAiB37U,GAASk7U,GArCrB,CAAC,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAC/D,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,MAoCF9pB,IACzDgqB,EAAcp7U,GAASk7U,GApClB,CAAC,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAC3D,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,KAmCb9pB,IAE1C+pB,EADAQ,GAAqC,KAAnBA,EACJA,EAGAx2V,KAAKstD,OAAO8nS,SAElC,CACA,GAAIY,GAAmC,qBAAb9kU,WAA6B66S,GAAkB76S,UAAW,CAEhF,IAAIulU,EAAW31V,GAAc,MAAO,CAChCooC,UAAW,qxCAAuxC8sT,EAAvxC,4EAFfjD,GAAckD,GAA+B,KAAhBA,EAAsBA,EAAc,oFAEk1C,iCAEn5CQ,EAASzhU,aAAa,QAAS,4dAC/B9D,SAASzd,KAAKie,YAAY+kU,GAC1Bz2V,KAAKm1V,YAAa,CACtB,CACAn1V,KAAKk1V,aAAc,EACnBx0M,GAASq1M,GAAcf,IAAYh1V,KAAKk1V,YAAajpB,GACzD,CACA,OAAOjsU,KAAKm1V,UAChB,EACAF,EAAiBtkV,UAAU+lV,iBAAmB,SAAUpqV,GACpD,IACI,OAAO05H,KAAK15H,EAChB,CACA,MAAO2K,IACH,MAAO,EACX,CACJ,EAMAg+U,EAAiBtkV,UAAUulV,eAAiB,WACxC,IACI,IAAIR,EAAS,GACTiB,EAAO,CAAC,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAC9D,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QACxE,QAAS,QAAS,QAAS,QAAS,QAAS,SAC7CC,EAAe,GACfC,EAAc,GACdT,GAAkB,EAClBU,GAAW,EACX92V,KAAKy1V,QAAQG,SACbF,EAAS11V,KAAKy1V,QAAQG,UAGtBkB,GAAW,EACXpB,EAAS11V,KAAK61V,WAAWD,SAASjjU,MAAM,iBAAiB,IAG7D,IADA,IAAIokU,EAAcrB,EAAO/iU,MAAM,KACtBrjB,EAAK,EAAG0nV,EAAgBD,EAAaznV,EAAK0nV,EAAc5zV,OAAQkM,IAAM,CAC3E,IAAI2nV,EAAOD,EAAc1nV,GACrB4nV,EAAYl3V,KAAK02V,iBAAiBO,GACtC,GAAKC,EAAL,CAGA,IAAIp2U,EAAI,EACJq2U,EAAQ,GACZ,GAAKL,EASA,CACD,IAAI9b,EAAUkc,EAAUA,EAAU9zV,OAAS,GACvCg0V,EAAe,GACnB,IAASjrV,EAAI,EAAGA,EAAI+qV,EAAU9zV,OAAQ+I,IAClCirV,EAAa7qU,SAASpgB,EAAE2K,WAAY,KAAOogV,EAAU3qU,SAASpgB,EAAE2K,WAAY,KAAK+hB,WAAW,GAAKmiT,EAAQniT,WAAW,GAExH,IAAS1sB,EAAI,EAAGA,EAAIirV,EAAah0V,OAAQ+I,IACrCgrV,GAASp5U,OAAO4yC,aAAaymS,EAAa7qU,SAASpgB,EAAE2K,WAAY,KAEzE,MAjBI,IAAK,IAAI3K,EAAI,EAAGA,EAAI+qV,EAAU9zV,OAAQ+I,IAAK2U,IAAK,CACxCA,IAAM61U,EAAKvzV,SACX0d,EAAI,GAER,IAAIT,EAAI62U,EAAUr+T,WAAW1sB,GAC7BgrV,GAASp5U,OAAO4yC,aAAatwC,EAAKs2U,EAAKpqU,SAASzL,EAAEhK,WAAY,MAAQ,GAC1E,CAYA9W,KAAKgoV,SAAS7+T,KAAKguU,IACnBP,EAAeO,EAAMxkU,MAAM,KAC3ByjU,GAAkB,EAEdQ,EAAaxzV,OAAS,GACtByzV,EAAYzqV,KAAK,CAAE47U,SAAU4O,EAAa,GACtCp0T,QAASo0T,EAAa,GACtBP,WAAYO,EAAa,MAG5BO,GAASA,EAAMxkU,MAAM,KAAKvvB,OAAS,IACxCgzV,GAAkB,EAjCtB,CAmCJ,CACA,OAAIA,IAAoBS,EAAYzzV,OACzB,CAAC,CAAEgzV,gBAAiBA,IAGpBS,EAAYzzV,OAASyzV,EAAc,IAElD,CACA,MAAO5/U,IACH,OAAO,IACX,CACJ,EACOg+U,CACX,CA3MsC,GA4MlCoC,GAAmB,IAAIpC,GAO3B,SAASc,GAAcuB,GAEnB,IADA,IAAI9nS,EAAM,GACDlgD,EAAK,EAAGioV,EAASD,EAAMhoV,EAAKioV,EAAOn0V,OAAQkM,IAAM,CACtD,IAAI69B,EAAMoqT,EAAOjoV,GACjBkgD,GAAOzxC,OAAO4yC,aAAaxjB,EAC/B,CACA,OAAOqiB,CACX,CAOO,SAASgoS,GAAgBlrV,GAC5B+qV,GAAmB,IAAIpC,GAAiB3oV,EAC5C,CACO,IEnNHmrV,GA7BAvxS,GAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAazC2pS,GAA0C,SAAUxoJ,EAAYl/L,EAAQiE,EAAKkkB,GAC7E,IAA2HhvB,EAAvH6e,EAAIld,UAAUC,OAAQkgH,EAAIjjG,EAAI,EAAIhY,EAAkB,OAATmoB,EAAgBA,EAAO/wB,OAAOk+B,yBAAyBt1B,EAAQiE,GAAOkkB,EACrH,GAAuB,kBAAZuN,SAAoD,oBAArBA,QAAQiyT,SAAyB1sO,EAAIvlF,QAAQiyT,SAASzoJ,EAAYl/L,EAAQiE,EAAKkkB,QACpH,IAAK,IAAIrkB,EAAIo7L,EAAWnkM,OAAS,EAAG+I,GAAK,EAAGA,KAAS3K,EAAI+lM,EAAWp7L,MAAIm3G,GAAKjjG,EAAI,EAAI7e,EAAE8hH,GAAKjjG,EAAI,EAAI7e,EAAE6G,EAAQiE,EAAKg3G,GAAK9hH,EAAE6G,EAAQiE,KAASg3G,GAChJ,OAAOjjG,EAAI,GAAKijG,GAAK7jH,OAAO4c,eAAehU,EAAQiE,EAAKg3G,GAAIA,CAChE,EAUIo0O,GAAiB,EAEjBC,GAAiB,EAEjBC,GAAgB,EAEhBC,IAAU,EAEVC,IAAgB,EACTC,IAA+B,EAa1C,IAAI32V,GAA2B,SAAU0lD,GAQrC,SAAS1lD,EAAU0d,EAASvO,GACxB,IAAIjR,EAAQwnD,EAAOnnD,KAAKK,KAAM8e,EAASvO,IAAavQ,KAgCpD,OA/BAV,EAAM04V,SpBwaP,WACH,GAAwB,qBAAZhnU,OAAZ,CAIA,IAAIwkE,EAAM,IAAIzkD,YAAY,GAE1B,OADgB/f,OAAOy6S,UAAYz6S,OAAO42F,QACzB65F,gBAAgBjsH,EAJjC,CAKJ,CoBhbyByiQ,GAMjB34V,EAAM44V,kBAAmB,EACzB54V,EAAM64V,SAAU,EAChB74V,EAAM84V,eAAgB,EAClBrsB,GAAkBzsU,EAAM+4V,YACxB/4V,EAAM2sV,cAAc,CAAE,UAAanN,KAAe,GAElD/S,GAAkBzsU,EAAMS,SACxBT,EAAM2sV,cAAc,CAAE,OAAUjN,KAAkB,GAEtD1/U,EAAMg5V,aAAe,IAAItF,GAAa1zV,GACtCA,EAAMi5V,cAAgB,IAAI1a,GAASv+U,GAEnCu/U,GAAatlU,GAAG,uBAAwBja,EAAMk5V,eAAgBl5V,EAAOA,EAAM04V,UAErD,qBAAXhnU,QAA8C,qBAAbE,UFgKvB,SAAU5kB,GAInC,OAHIA,GACAkrV,GAAgBlrV,GAEb+qV,GAAiBvB,UAC5B,CErKiF2C,KACf,IAAlD1D,GAAcpqV,QAAQrL,EAAMytV,mBAC5B6K,IAAgC,GACZ,IAChBC,IAAU,GAIjBtsQ,GAAYh7E,IACbjR,EAAMo5V,WAEHp5V,CACX,CAmYA,OA5aA4mD,GAAU9kD,EAAW0lD,GA0CrB1lD,EAAUuP,UAAUuiV,gBAAkB,WAClC,MAAO,EACX,EAMA9xV,EAAUuP,UAAUymI,QAAU,WACtBp3I,KAAKm4R,cAGLn4R,KAAK24V,mBACL34V,KAAK44V,iBAET54V,KAAKu4V,cAAcnhN,UACfp3I,KAAK2rV,aAGT1jE,GAAY,CAACjoR,KAAKmV,SAAU,CAAC,cAC7BnV,KAAKsgS,QAAQ,YAAa,CAAEx/M,QAAQ,IACpCh6B,EAAOn2C,UAAUymI,QAAQz3I,KAAKK,MAC9BA,KAAKs4V,aAAaxzN,QAClB+5M,GAAarlU,IAAI,uBAAwBxZ,KAAKw4V,eAAgBx4V,KAAKg4V,WACvE,EAMA52V,EAAUuP,UAAUkoV,QAAU,WAC1B74V,KAAK2rV,YAAa,EAClB3rV,KAAKs4V,aAAaxzN,QAClB9kI,KAAKo3I,UACLp3I,KAAKusV,eACLvsV,KAAKu4V,cAAgB,IAAI1a,GAAS79U,MAClCA,KAAK84V,YACL94V,KAAK+4V,gBACL/4V,KAAKoa,SACLpa,KAAK2rV,YAAa,CACtB,EACAvqV,EAAUuP,UAAUqoV,YAAc,WAC1Bh5V,KAAKi5V,QAAUj5V,KAAKo4V,eACpBp4V,KAAKi5V,OAEb,EAMA73V,EAAUuP,UAAUuoV,eAAiB,WACjC,OAAIl5V,KAAKo4V,cAEEp4V,KAAKm5V,cAGLn5V,KAAKmV,OAEpB,EAOA/T,EAAUuP,UAAUyoV,aAAe,WAC/B,IAAIC,EAAQr5V,KAAK+sV,gBAAkB/sV,KAAKmV,QAAQghB,GAChD,OAAI4hU,GACO/mU,OAAOsoU,aAAa7tI,QAAQ4tI,EAAQr5V,KAAKu5V,4BAGzCvoU,OAAOsoU,aAAa7tI,QAAQ4tI,EAE3C,EAOAj4V,EAAUuP,UAAU+nV,SAAW,SAAUnoV,GAOrC,GANKw7T,GAAkBx7T,IAAmC,kBAAdA,EAGlCw7T,GAAkBx7T,KACxBvQ,KAAKmV,QAAU5E,GAHfvQ,KAAKmV,QAAUq1U,GAAOj6U,EAAU2gB,WAK/B66S,GAAkB/rU,KAAKmV,SAAU,CAClC,IAAI23U,EAAc,KAAO9sV,KAAK+sV,gBAAgBrsU,cAC9C8nQ,GAAS,CAACxoR,KAAKmV,SAAU,CAAC,YAAa23U,IACvC9sV,KAAKurV,qBAAsB,EACvBvrV,KAAKm4V,UAAYn4V,KAAKmV,QAAQghB,KAC9Bn2B,KAAKmV,QAAQghB,GAAKn2B,KAAK+sU,YAAY/sU,KAAK+sV,kBAExC/sV,KAAK24V,oBACL34V,KAAKw5V,mBACLxoU,OAAOsK,iBAAiB,SAAUt7B,KAAK44V,eAAe/4V,KAAKG,QAE/D,IAAIguU,EAAOnzT,GAAS,gBAAiB7a,KAAKmV,SACrC64T,IAAgC,IAAxBA,EAAKrjU,QAAQ3K,OACtB8mD,EAAOn2C,UAAUq7U,YAAYrsV,KAAKK,MAEtCA,KAAK84V,YACL94V,KAAK+4V,gBAEAlB,IAAYC,MFmDK,WAC9B,IAAI2B,EAAiB,mwtDAAqztD1G,GAAa,kzBACv1tD,GAAwB,qBAAb7hU,WAA6B66S,GAAkB76S,UAAW,CACjE,IAAIwoU,EAAkB54V,GAAc,MAAO,CACvCooC,UAAWuwT,IAEfvoU,SAASzd,KAAKie,YAAYgoU,EAC9B,CACJ,CE1DgBC,GACA7B,IAAgB,GAEpB93V,KAAKoa,SACApa,KAAKi5V,MAINj5V,KAAKg5V,cAHLh5V,KAAKsgS,QAAQ,UAKrB,CACJ,EAOAl/R,EAAUuP,UAAUipV,eAAiB,SAAUC,GAC3C,GAAI/sB,KAAY,CAGZ97S,OAAe,SAAE4oU,eAAe55V,KAAKmV,QAAS0kV,EAClD,CACA75V,KAAKorV,YAAa,CACtB,EAMAhqV,EAAUuP,UAAUy7U,SAAW,WAC3BpsV,KAAK+4V,gBACLjyS,EAAOn2C,UAAUy7U,SAASzsV,KAAKK,KACnC,EAWAoB,EAAUuP,UAAU4I,GAAK,SAAUwd,EAAO9yB,EAASgX,GAC/C,GAAqB,kBAAV8b,EACP/2B,KAAKu4V,cAAch/U,GAAGwd,EAAO9yB,EAASgX,QAGtC,IAAK,IAAI3L,EAAK,EAAGi6U,EAAUxyT,EAAOznB,EAAKi6U,EAAQnmV,OAAQkM,IAAM,CACzD,IAAIkpD,EAAM+wR,EAAQj6U,GAClBtP,KAAKu4V,cAAch/U,GAAGi/C,EAAIzhC,MAAOyhC,EAAIv0D,QAASu0D,EAAIv9C,QACtD,CAER,EASA7Z,EAAUuP,UAAU6I,IAAM,SAAUud,EAAO9yB,GACvC,GAAqB,kBAAV8yB,EACP/2B,KAAKu4V,cAAc/+U,IAAIud,EAAO9yB,QAG9B,IAAK,IAAIqL,EAAK,EAAGwqV,EAAU/iU,EAAOznB,EAAKwqV,EAAQ12V,OAAQkM,IAAM,CACzD,IAAIkpD,EAAMshS,EAAQxqV,GAClBtP,KAAKu4V,cAAc/+U,IAAIg/C,EAAIzhC,MAAOyhC,EAAIv0D,QAC1C,CAER,EASA7C,EAAUuP,UAAU0oM,OAAS,SAAU18L,EAAUkQ,IACpB,IAArB7sB,KAAKm4R,aACLn4R,KAAKu4V,cAAcl/I,OAAO18L,EAAUkQ,EAE5C,EAOAzrB,EAAUuP,UAAUopV,mBAAqB,WACrC,OAAO/5V,KAAKg6V,eAChB,EAOA54V,EAAU64V,OAAS,WAEf,IADA,IAAI9G,EAAa,GACR7jV,EAAK,EAAGA,EAAKnM,UAAUC,OAAQkM,IACpC6jV,EAAW7jV,GAAMnM,UAAUmM,GAE1BtP,KAAK2Q,UAAUqpV,kBAChBh6V,KAAK2Q,UAAUqpV,gBAAkB,IAErC,IAAK,IAAI7tV,EAAI,EAAGA,EAAIgnV,EAAW/vV,OAAQ+I,KACqD,IAApFnM,KAAK2Q,UAAUqpV,gBAAgBrvV,QAAQwoV,EAAW5mU,SAASpgB,EAAE2K,WAAY,OACzE9W,KAAK2Q,UAAUqpV,gBAAgB5tV,KAAK+mV,EAAW5mU,SAASpgB,EAAE2K,WAAY,KAGlF,EAWA1V,EAAUuP,UAAU7P,cAAgB,SAAUsnC,EAASzjC,EAAMu1V,GACzD,OAAOp5V,GAAcsnC,EAASzjC,EAClC,EASAvD,EAAUuP,UAAUwpV,mBAAqB,SAAUl2V,EAAS4oB,GACpD7sB,KAAKo4V,gBAELp4V,KAAKuJ,WACLvJ,KAAKo6V,eAAiB,CAAE9pL,MAAOrsK,EAASgV,KAAM4T,GAEtD,EAEAzrB,EAAUuP,UAAUooV,cAAgB,WAC5B/4V,KAAKg6V,iBAAmBh6V,KAAKg6V,gBAAgB52V,QAC7CpD,KAAKs4V,aAAa9sL,OAAOxrK,KAAKkzV,kBAAmBlzV,KAAKg6V,gBAE9D,EACA54V,EAAUuP,UAAU6nV,eAAiB,SAAUv/U,GAC3C,IAAItU,EAAOlF,OAAO8E,KAAK0U,GACnBtU,EAAKvB,SACLpD,KAAK2E,EAAK,IAAMsU,EAAKtU,EAAK,IAElC,EACAvD,EAAUuP,UAAU6oV,iBAAmB,WACnC,IAAItvT,EAOE6hS,GALF7hS,EADA6tT,GACO/mU,OAAOsoU,aAAa7tI,QAAQzrN,KAAK+sV,gBAAkB/sV,KAAKmV,QAAQghB,GAAKn2B,KAAKu5V,4BAG1EvoU,OAAOsoU,aAAa7tI,QAAQzrN,KAAK+sV,gBAAkB/sV,KAAKmV,QAAQghB,MAEhC,KAAT+T,GAC9BlqC,KAAKisV,cAAcx7S,KAAKuL,MAAM9R,IAAO,EAE7C,EACA9oC,EAAUuP,UAAUioV,eAAiB,WAC5B54V,KAAKm4R,cACF4/D,GACA/mU,OAAOsoU,aAAa1tI,QAAQ5rN,KAAK+sV,gBAC7B/sV,KAAKmV,QAAQghB,GAAKn2B,KAAKu5V,2BAA4Bv5V,KAAKq6V,kBAG5DrpU,OAAOsoU,aAAa1tI,QAAQ5rN,KAAK+sV,gBAAkB/sV,KAAKmV,QAAQghB,GAAIn2B,KAAKq6V,kBAGrF,EAEAj5V,EAAUuP,UAAU2pV,qBAAuB,SAAUxzV,GAC5CilU,GAAkBjlU,IACnBA,GAER,EAEA1F,EAAUuP,UAAU4pV,cAAgB,SAAUC,EAAc/tU,GACxD,EAEJrrB,EAAUuP,UAAUo8T,YAAc,SAAUC,GAMxC,OALIhtU,KAAKy6V,qBACL/C,GAAiB,GAErBD,GAAaz3V,KAAK06V,OAAO/iU,SAASwwB,MAClCwvS,GAAiB/gH,QAAQxzO,OAClB4pU,EAAc,IAAMyqB,GAAa,IAAMC,IAClD,EACAt2V,EAAUuP,UAAU+pV,OAAS,SAAUzrO,GACnC,IAAIhE,EAAO,EACX,GAAmB,IAAfgE,EAAI7rH,OACJ,OAAO6nH,EAEX,IAAK,IAAI9+G,EAAI,EAAGA,EAAI8iH,EAAI7rH,OAAQ+I,IAAK,CAEjC8+G,GAASA,GAAQ,GAAKA,EADXgE,EAAIp2F,WAAW1sB,GAE1B8+G,GAAOA,CACX,CACA,OAAOrnH,KAAK8Y,IAAIuuG,EACpB,EACA7pH,EAAUuP,UAAU8pV,iBAAmB,WACnC,OAAOhD,KAAez3V,KAAK06V,OAAO/iU,SAASwwB,OAASwvS,KAAmB/gH,QAAQxzO,MACnF,EACAhC,EAAUuP,UAAUgqV,aAAe,SAAU77U,GAGzC,IAFA,IAAIxf,EAAQU,KACR46V,EAAa,CAAC,EACTtrV,EAAK,EAAGg0U,EAAYxkU,EAASxP,EAAKg0U,EAAUlgV,OAAQkM,IAAM,CAC/D,IACIq5D,EADAr8D,EAAMg3U,EAAUh0U,GAIfi8E,GADL5iB,EAAW9tD,GAASvO,EAAKtM,QAErB0gJ,GAASp0I,EAAKtM,KAAK66V,oBAAoBlyR,GAAWiyR,EAE1D,CACA,OAAOnqT,KAAK+mF,UAAUojO,GAAY,SAAUtuV,EAAK1K,GAC7C,OAAOtC,EAAMu7V,oBAAoBj5V,EACrC,GACJ,EACAR,EAAUuP,UAAUkqV,oBAAsB,SAAUhqV,GAChD,OAAIA,aAAesjV,GACRt5U,GAAS,aAAchK,GAGvBA,CAEf,EACAzP,EAAUuP,UAAUmqV,gBAAkB,SAAUh8U,GAC5C,OAAO2xB,KAAK+mF,UAAUx3H,KAAK+6V,sBAAsB/6V,KAAK0yB,WAAY5T,GACtE,EACA1d,EAAUuP,UAAUoqV,sBAAwB,SAAUlqV,EAAKmqV,GAqBvD,IApBA,IAAIC,EAAS,CAAC,EACVxuB,EAAU,SAAUngU,GACpB,IAAiC,IAA7B0uV,EAAWrwV,QAAQ2B,GAAa,CAEhC,IAAI1K,EAAQiP,EAAIvE,GAChB,GAAqB,kBAAV1K,GAAwBA,aAAiB8O,MAUhDuqV,EAAO,GAAK3uV,GAAO1K,MAVqC,CACxD,IAAIs5V,EAAUF,EAAW50V,QAAO,SAAUunC,GAEtC,OAAO,IADMh3B,OACKrK,EAAM,KAAK6c,KAAKwkB,EACtC,IAAG1nC,KAAI,SAAU0nC,GACb,OAAOA,EAAIt9B,QAAQ/D,EAAM,IAAK,GAClC,IACA2uV,EAAO,GAAK3uV,GAAO6uV,EAAOJ,sBAAsBI,EAAON,oBAAoBj5V,GAAQs5V,EACvF,CAIJ,CACJ,EACIC,EAASn7V,KACJsP,EAAK,EAAGgmC,EAAK71C,OAAO8E,KAAKsM,GAAMvB,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CAE1Dm9T,EADUn3R,EAAGhmC,GAEjB,CACA,OAAO2rV,CACX,EACAlL,GAAW,CACPjB,IAAS,IACV1tV,EAAUuP,UAAW,yBAAqB,GAC7Co/U,GAAW,CACPjB,MACD1tV,EAAUuP,UAAW,iBAAa,GACrCo/U,GAAW,CACPjB,MACD1tV,EAAUuP,UAAW,cAAU,GAClCvP,EAAY2uV,GAAW,CACnBT,IACDluV,EAEP,CA9a+B,CA8a7B+pV,IAKwB,qBAAXn6T,QACPA,OAAOsK,iBAAiB,YAExB,WACIo8T,GAAiB,CACrB,IC1eR,IAAIxxS,GAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAazC2pS,GAA0C,SAAUxoJ,EAAYl/L,EAAQiE,EAAKkkB,GAC7E,IAA2HhvB,EAAvH6e,EAAIld,UAAUC,OAAQkgH,EAAIjjG,EAAI,EAAIhY,EAAkB,OAATmoB,EAAgBA,EAAO/wB,OAAOk+B,yBAAyBt1B,EAAQiE,GAAOkkB,EACrH,GAAuB,kBAAZuN,SAAoD,oBAArBA,QAAQiyT,SAAyB1sO,EAAIvlF,QAAQiyT,SAASzoJ,EAAYl/L,EAAQiE,EAAKkkB,QACpH,IAAK,IAAIrkB,EAAIo7L,EAAWnkM,OAAS,EAAG+I,GAAK,EAAGA,KAAS3K,EAAI+lM,EAAWp7L,MAAIm3G,GAAKjjG,EAAI,EAAI7e,EAAE8hH,GAAKjjG,EAAI,EAAI7e,EAAE6G,EAAQiE,EAAKg3G,GAAK9hH,EAAE6G,EAAQiE,KAASg3G,GAChJ,OAAOjjG,EAAI,GAAKijG,GAAK7jH,OAAO4c,eAAehU,EAAQiE,EAAKg3G,GAAIA,CAChE,EASI83O,GAAkB,CAAEz3N,KAAM,EAAGuqB,IAAK,EAAGymI,OAAQ,EAAG/wJ,MAAO,GAIvDy3N,GAAkB,CAAEC,WAAW,GAI/BjqF,GAA0B,SAAUvqN,GAEpC,SAASuqN,IACL,OAAkB,OAAXvqN,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAOA,OAVAkmD,GAAUmrN,EAAUvqN,GAIpBipS,GAAW,CACPjB,GAAS,IACVz9E,EAAS1gQ,UAAW,YAAQ,GAC/Bo/U,GAAW,CACPjB,GAAS,IACVz9E,EAAS1gQ,UAAW,WAAO,GACvB0gQ,CACX,CAZ8B,CAY5B8iF,IAkBEoH,GAA2B,SAAUz0S,GAErC,SAASy0S,EAAUpmV,EAAS2J,GACxB,IAAIxf,EAAQwnD,EAAOnnD,KAAKK,KAAM8e,EAAS3J,IAAYnV,KAiBnD,OAhBAV,EAAMk8V,UAAYC,EAAYC,qBAC9Bp8V,EAAMq8V,YAAcF,EAAYC,qBAChCp8V,EAAM03H,QAAUykO,EAAYC,qBAC5Bp8V,EAAMs8V,MAAQ,EACdt8V,EAAMu8V,SAAW,EACjBv8V,EAAMw8V,QAAU,EAChBx8V,EAAMy8V,oBAAqB,EAC3Bz8V,EAAM08V,OAAS,EAEf18V,EAAM28V,aAAe,EACrB38V,EAAM48V,oBAAqB,EAC3B58V,EAAM68V,MAAQ,EACd78V,EAAM88V,cAAgB,EACtB98V,EAAM+8V,cAAgB,EACtB/8V,EAAMg9V,WAAa,CAAC,EACpBh9V,EAAMO,OACCP,CACX,CAqvBA,IAAIm8V,EA4EJ,OAr1BAv1S,GAAUq1S,EAAWz0S,GAqBrB20S,EAAcF,EACdA,EAAU5qV,UAAU9Q,KAAO,WACvBG,KAAKu8V,eACDtV,GAAQh0D,MACRzK,GAAS,CAACxoR,KAAKmV,SAAU,iBAE7BnV,KAAKs8V,WAAWt8V,KAAK4oM,OAAS,CAAC,CACnC,EACA2yJ,EAAUG,mBAAqB,WAC3B,OAAOjyQ,GAAO,CAAC,EAAG2xQ,GACtB,EACAG,EAAU5qV,UAAU4rV,aAAe,SAAUC,GACzC,IAAI7S,EACCp+P,GAAYvrF,KAAKq/Q,UAClBsqE,EAAMa,GAAOxqV,KAAKq/Q,OAAQr/Q,KAAKmV,UAEnC,IAAIlR,EAAWjE,KAAKy8V,eAAiBxV,GAAQM,UAAYN,GAAQK,QAAWtnV,KAAK08V,iBAAmB18V,KAAK6tK,WACrG2uL,EACA3jH,GAAa1lN,OAAOw2T,GAAO3pV,KAAKmV,QAAS8xU,GAAQY,WAAa,aAAeZ,GAAQwB,gBAAiBxkV,GAGtG40O,GAAazlN,IAAIu2T,GAAO3pV,KAAKmV,QAAS8xU,GAAQY,WAAa,aAAeZ,GAAQwB,gBAAiBxkV,EAASjE,KAEpH,EAEAu7V,EAAU5qV,UAAU+rV,iBAAmB,SAAUpsE,GAC7C,IAAIhxR,EAAQU,KACRqI,EAASioR,EAAIn1P,cACjBn7B,KAAKi8V,aAAe7lU,YAAW,WAC3B92B,EAAM48V,oBAAqB,EAC3B58V,EAAMq9V,qBACNr9V,EAAMuuK,WAAWyiH,EAAKjoR,EAC1B,GAAGrI,KAAK48V,kBACR/jH,GAAazlN,IAAIlC,SAAU+1T,GAAQY,WAAa,YAAcZ,GAAQyB,eAAgB1oV,KAAK28V,mBAAoB38V,MAC/G64O,GAAazlN,IAAIlC,SAAU+1T,GAAQY,WAAa,WAAaZ,GAAQ0B,cAAe3oV,KAAK28V,mBAAoB38V,KACjH,EAEAu7V,EAAU5qV,UAAUgsV,mBAAqB,WACrCtmU,aAAar2B,KAAKi8V,cAClBpjH,GAAa1lN,OAAOjC,SAAU+1T,GAAQY,WAAa,YAAcZ,GAAQyB,eAAgB1oV,KAAK28V,oBAC9F9jH,GAAa1lN,OAAOjC,SAAU+1T,GAAQY,WAAa,WAAaZ,GAAQ0B,cAAe3oV,KAAK28V,mBAChG,EAEApB,EAAU5qV,UAAUksV,oBAAsB,SAAU1nV,EAASg/Q,GAGzD,OAAI43C,GAAkB52T,GACX,KAEPA,EALS,CAAE,SAAY,eAAgB,WAAc,eAKtC,GAAKg/Q,IAASh/Q,EAJpB,CAAE,SAAY,eAAgB,WAAc,eAIT,GAAKg/Q,MACpC,aAATA,EAAsBh/Q,EAAQg5I,UAAY,EAAIh5I,EAAQ84I,WAAa,IACtD,aAATkmI,GACAn0R,KAAKq8V,cAAgBr8V,KAAKq8V,eACE,IAAvBr8V,KAAKq8V,cAAsBlnV,EAAQg5I,UAAYh5I,EAAQg5I,UAAYnuJ,KAAKq8V,eAC7Er8V,KAAK88V,iBAAmB3nV,EAAQ+oS,eAGhCl+S,KAAKo8V,cAAgBp8V,KAAKo8V,eACE,IAAvBp8V,KAAKo8V,cAAsBjnV,EAAQ84I,WAAa94I,EAAQ84I,WAAajuJ,KAAKo8V,eAC/Ep8V,KAAK+8V,gBAAkB5nV,EAAQi7P,aAE9B27D,GAAkB52T,GAIZA,EAHAnV,KAAK68V,oBAAoB1nV,EAAQqf,WAAY2/P,IAWrDn0R,KAAK68V,oBAAoB1nV,EAAQqf,WAAY2/P,EAE5D,EACAonE,EAAU5qV,UAAUqsV,oBAAsB,WACtCh9V,KAAKo8V,cAAgB,EACrBp8V,KAAKq8V,cAAgB,EACDr8V,KAAKmV,QAAQ+yQ,UAAUh1P,SAAS,aAAelzB,KAAKmV,QAAQ+yQ,UAAUh1P,SAAS,eACxElzB,KAAK68V,oBAAoB78V,KAAKmV,QAAQqf,WAAY,YAChDx0B,KAAK68V,oBAAoB78V,KAAKmV,QAAQqf,WAAY,aACnF,EACA+mU,EAAU5qV,UAAUk9J,WAAa,SAAUyiH,EAAK2sE,GAE5C,GADAj9V,KAAKk9V,mBAAqB5sE,EAAIjoR,QAC1BrI,KAAKm9V,gBAAT,CASA,GALIn9V,KAAKm9V,eAAc,GACnBn9V,KAAKk8V,oBAAqB,EAE9Bl8V,KAAKqI,OAAUioR,EAAIn1P,eAAiB8hU,EACpCj9V,KAAK+7V,oBAAqB,EACtB/7V,KAAKo9V,MAAO,CAEZ,IAAIC,EAAiBr9V,KAAKo9V,MACI,kBAAnBC,IACPA,EAAiB,CAACA,IAEtB,IAAK,IAAIlxV,EAAI,EAAGA,EAAIkxV,EAAej6V,OAAQ+I,IACvC,IAAK4/T,GAAkBt2O,GAAQ66L,EAAIjoR,OAAQg1V,EAAe9wU,SAASpgB,EAAE2K,WAAY,OAK7E,YAHI9W,KAAKm9V,iBACLn9V,KAAKm9V,eAAc,GAKnC,CACIn9V,KAAKqO,iBAAmBk9E,GAAY+kM,EAAI/mI,iBAAgC,eAAb+mI,EAAI1jR,MAC/D0jR,EAAIjiR,iBAERrO,KAAKmV,QAAQ6f,aAAa,eAAgB,QAC1C,IAAIsoU,EAAWt9V,KAAKu9V,eAAejtE,GAEnC,GADAtwR,KAAKw9V,gBAAkB,CAAEtjV,EAAGojV,EAASt3M,MAAO7rI,EAAGmjV,EAASr3M,QACnDjmJ,KAAKuB,MAAO,CACb,IAAI21C,EAAMl3C,KAAKmV,QAAQs/Q,wBACvBz0R,KAAKg9V,sBACD1sE,EAAIj3P,UAAYi3P,EAAItqI,QACpBhmJ,KAAKo8V,cAAgB,GAErB9rE,EAAIh3P,UAAYg3P,EAAIrqI,QACpBjmJ,KAAKq8V,cAAgB,GAEzBr8V,KAAKy9V,kBAAoBH,EAASt3M,OAAS9uG,EAAIysF,KAAO3jI,KAAKo8V,eAC3Dp8V,KAAK09V,kBAAoBJ,EAASr3M,OAAS/uG,EAAIg3G,IAAMluJ,KAAKq8V,cAC9D,CACIr8V,KAAKk8V,mBACLl8V,KAAK29V,aAAartE,IAGlBz3C,GAAazlN,IAAIlC,SAAU+1T,GAAQY,WAAa,YAAcZ,GAAQyB,eAAgB1oV,KAAK29V,aAAc39V,MACzG64O,GAAazlN,IAAIlC,SAAU+1T,GAAQY,WAAa,WAAaZ,GAAQ0B,cAAe3oV,KAAK49V,WAAY59V,OAEzGA,KAAKu8V,cAAa,GACD,eAAbjsE,EAAI1jR,MAAyB5M,KAAK69V,iBAClC3sU,SAASzd,KAAKy0Q,UAAU90P,IAAI,oBAEhCpzB,KAAKk8V,oBAAqB,EAC1BrjH,GAAaynD,QAAQpvQ,SAASuE,gBAAiBwxT,GAAQY,WAAa,aAAeZ,GAAQwB,gBAAiBn4D,EAjD5G,CAkDJ,EACAirE,EAAU5qV,UAAUgtV,aAAe,SAAUrtE,GACzCtwR,KAAK28V,qBACL,IAAImB,GAAiBvyQ,GAAY+kM,EAAI/mI,gBACrC,IAAIu0M,GAAgD,IAA9BxtE,EAAI/mI,eAAenmJ,OAAzC,CAGA,IACI8zC,EADA6mT,EAAe/9V,KAAKu9V,eAAejtE,GAEnC2jB,EAAYzhB,iBAAiBxyR,KAAKmV,SACtCnV,KAAKqvT,OAAS,CACV1rL,KAAMp3G,SAAS0nR,EAAUxe,WAAY,IACrCvnI,IAAK3hI,SAAS0nR,EAAUze,UAAW,IACnC5xJ,MAAOr3G,SAAS0nR,EAAU9c,YAAa,IACvCxC,OAAQpoQ,SAAS0nR,EAAU/c,aAAc,KAE7C,IAAI/hR,EAAUnV,KAAKmV,QACnB,GAAInV,KAAKuB,OAASvB,KAAKg+V,WAAY,CAC/B,IAAIC,EAAaxoQ,GAAQ66L,EAAIjoR,OAAQrI,KAAKg+V,YACrCjyB,GAAkBkyB,KACnB9oV,EAAU8oV,EAElB,CAEIj+V,KAAKk+V,mBACL/oV,EAAUnV,KAAKm+V,kBAAkB7tE,EAAIjoR,OAAQ8M,IAEjDnV,KAAK0d,OAAS1d,KAAKo+V,wBAAwBjpV,GAC3CnV,KAAKkqF,SAAWlqF,KAAKq+V,iBAAiB/tE,EAAKtwR,KAAKs+V,cAChD,IAAIpkV,EAAIla,KAAKw9V,gBAAgBtjV,EAAI6jV,EAAa/3M,MAC1C7rI,EAAIna,KAAKw9V,gBAAgBrjV,EAAI4jV,EAAa93M,MAE9C,GADeriJ,KAAK0kS,KAAMpuR,EAAIA,EAAMC,EAAIA,IACvBna,KAAKyvT,UAAYzvT,KAAKk8V,mBAAqB,CACxD,IAAIvS,EAAM3pV,KAAKu+V,iBAAiBjuE,GAChC,IAAKq5D,GAAO5d,GAAkB4d,GAC1B,OAEAmU,GACAxtE,EAAIjiR,iBAER,IAAImwV,EAAoBx+V,KAAKy+V,cAAgB9U,EAE7C,GADA3pV,KAAK0+V,iBAAmB1+V,KAAKo+V,wBAAwBI,EAAkBprE,cACnEpzR,KAAK2+V,UAAW,CAChB,IACI1lV,EAAO,CACP8d,MAAOu5P,EACPn7Q,QAASA,EACT9M,OAJYrI,KAAK4+V,uBAAuBtuE,GAKxCuuE,WAAY/xB,KAAa9sU,KAAK8+V,eAAej/V,KAAKG,MAAQ,KAC1D++V,YAAaP,GAEjBx+V,KAAKsgS,QAAQ,YAAarnR,EAC9B,CACIjZ,KAAKg/V,SACLh/V,KAAKi/V,eAGLj/V,KAAKw7V,UAAY,CAAE73N,KAAM,EAAGC,MAAO,EAAG+wJ,OAAQ,EAAGzmI,IAAK,GACtDluJ,KAAK27V,YAAc,CAAEztM,IAAK,EAAGvqB,KAAM,IAEvCzsF,EAAM,CAAEysF,KAAM3jI,KAAKkqF,SAASy5C,KAAO3jI,KAAK0+V,iBAAiB/6N,KAAMuqB,IAAKluJ,KAAKkqF,SAASgkE,IAAMluJ,KAAK0+V,iBAAiBxwM,KAC1GluJ,KAAKuB,QAAUvB,KAAKk/V,iBACpBl/V,KAAK47V,MAAQ57V,KAAKkqF,SAASy5C,KAAO3jI,KAAK0d,OAAOimH,KAC9C3jI,KAAKm8V,MAAQn8V,KAAKkqF,SAASgkE,IAAMluJ,KAAK0d,OAAOwwI,KAEjDluJ,KAAKg9V,sBAEL,IAAI9oE,EAAS1B,iBAAiBr9Q,GAC1BqgR,EAAY9kP,WAAWwjP,EAAOsB,WAE9Bx1R,KAAKuB,OAAuB,IAAdi0R,IACdt+O,EAAIg3G,KAAOsnI,GAEfx1R,KAAKg8V,OAAUn6V,MAAM6uC,WAAWwjP,EAAOhmI,MAAmD,EAA3Cx9G,WAAWwjP,EAAOhmI,KAAOluJ,KAAK0d,OAAOwwI,IAKhFluJ,KAAKm/V,sBAAwBn/V,KAAKuB,QAClC21C,EAAIg3G,KAAOluJ,KAAKq8V,cAChBnlT,EAAIysF,MAAQ3jI,KAAKo8V,eAErB,IAAIgD,EAAWp/V,KAAKq/V,0BAA0B,CAC1CnxM,IAAMh3G,EAAIg3G,IAAMluJ,KAAKm8V,MAAS,KAC9Bx4N,KAAOzsF,EAAIysF,KAAO3jI,KAAK47V,MAAS,OAEhC57V,KAAKg/V,UAAqC,kBAAlBh/V,KAAKg/V,UAAyBh/V,KAAKg/V,SAAS92E,UAAUh1P,SAAS,qBAAwD,aAAjClzB,KAAKg/V,SAAS74V,MAAM+jF,WAClIhzC,EAAIg3G,KAAOluJ,KAAKg/V,SAAS7wM,WAE7BnuJ,KAAKs/V,gBAAkB,CAAEpxM,IAAKh3G,EAAIg3G,IAAKvqB,KAAMzsF,EAAIysF,MACjDqnN,GAAkBwT,EAAmBx+V,KAAKu/V,gBAAgB,CAAEr1Q,SAAU,WAAYy5C,KAAMy7N,EAASz7N,KAAMuqB,IAAKkxM,EAASlxM,OACrH2qF,GAAa1lN,OAAOjC,SAAU+1T,GAAQY,WAAa,YAAcZ,GAAQyB,eAAgB1oV,KAAK29V,cAC9F9kH,GAAa1lN,OAAOjC,SAAU+1T,GAAQY,WAAa,WAAaZ,GAAQ0B,cAAe3oV,KAAK49V,YACvF9wB,MACD9sU,KAAK8+V,eAAeN,EAE5B,CA1FA,CA2FJ,EACAjD,EAAU5qV,UAAUmuV,eAAiB,SAAUN,GACvCxU,GAAUwU,IACV3lH,GAAazlN,IAAIlC,SAAU+1T,GAAQY,WAAa,YAAcZ,GAAQyB,eAAgB1oV,KAAKw/V,QAASx/V,MACpG64O,GAAazlN,IAAIlC,SAAU+1T,GAAQY,WAAa,WAAaZ,GAAQ0B,cAAe3oV,KAAKy/V,YAAaz/V,MACtGA,KAAK0/V,qBAAoB,EAAO1/V,KAAKmV,QAASqpV,KAG9Cx+V,KAAKu8V,eACLrrU,SAASzd,KAAKy0Q,UAAU/0P,OAAO,oBAEvC,EACAooU,EAAU5qV,UAAUgvV,kBAAoB,SAAUzyV,GAK9C,IAJAlN,KAAKkuJ,IAAMhhJ,EAAG01S,UACd5iT,KAAK2jI,KAAOz2H,EAAGy1S,WACf3iT,KAAKwe,MAAQtR,EAAGijQ,YAChBnwQ,KAAK4oJ,OAAS17I,EAAG6nR,aACV7nR,EAAGkmR,cACNlmR,EAAKA,EAAGkmR,aACRpzR,KAAKkuJ,KAAOhhJ,EAAG01S,UACf5iT,KAAK2jI,MAAQz2H,EAAGy1S,WAEpB,OAAQ3iT,KAAKkuJ,KAAOl9H,OAAOw4R,aACvBxpT,KAAK2jI,MAAQ3yG,OAAOu4R,aACnBvpT,KAAKkuJ,IAAMluJ,KAAK4oJ,QAAY53H,OAAOw4R,YAAcx4R,OAAOi0O,aACxDjlQ,KAAK2jI,KAAO3jI,KAAKwe,OAAWwS,OAAOu4R,YAAcv4R,OAAO8zO,UACjE,EACAy2F,EAAU5qV,UAAU0uV,0BAA4B,SAAUz9V,GACtD,OAAI5B,KAAK4/V,kBACE5/V,KAAK4/V,kBAAkBh+V,GAE3BA,CACX,EACA25V,EAAU5qV,UAAUytV,wBAA0B,SAAUzU,GACpD,GAAI5d,GAAkB4d,GAClB,MAAO,CAAEhmN,KAAM,EAAGuqB,IAAK,GAE3B,IAAIwmI,EAAOi1D,EAAIl1D,wBACXtuR,EAAQqsR,iBAAiBm3D,GAC7B,MAAO,CACHhmN,KAAO+wJ,EAAK/wJ,KAAO3yG,OAAOu4R,YAAeh9R,SAASpmB,EAAMsvR,WAAY,IACpEvnI,IAAMwmI,EAAKxmI,IAAMl9H,OAAOw4R,YAAej9R,SAASpmB,EAAMqvR,UAAW,IAEzE,EAEA+lE,EAAU5qV,UAAU6uV,QAAU,SAAUlvE,GACpC,GAAK/kM,GAAY+kM,EAAI/mI,iBAAkD,IAA9B+mI,EAAI/mI,eAAenmJ,OAA5D,CAMA,IAAIugI,EACAuqB,EAJAluJ,KAAKuB,OAAS+uR,EAAI/mI,gBAAkB09L,GAAQM,UAAYN,GAAQK,SAChEh3D,EAAIjiR,iBAIRrO,KAAKkqF,SAAWlqF,KAAKq+V,iBAAiB/tE,EAAKtwR,KAAKs+V,cAChD,IAAIuB,EAAY7/V,KAAK8/V,uBAAuB,UACxCD,EAAY7/V,KAAKkqF,SAASgkE,MAC1BluJ,KAAKkqF,SAASgkE,IAAM2xM,GAExB,IAAIE,EAAW//V,KAAK8/V,uBAAuB,SAI3C,GAHIC,EAAW//V,KAAKkqF,SAASy5C,OACzB3jI,KAAKkqF,SAASy5C,KAAOo8N,GAErB//V,KAAKggW,KAAM,CACX,IAAI/C,EAAYj9V,KAAK4+V,uBAAuBtuE,GAC5CtwR,KAAKsgS,QAAQ,OAAQ,CAAEvpQ,MAAOu5P,EAAKn7Q,QAASnV,KAAKmV,QAAS9M,OAAQ40V,GACtE,CACA,IAAIgD,EAASjgW,KAAKkgW,mBAAmB5vE,GACrC,GAAI2vE,EAAO53V,QAAU43V,EAAOvoV,SAAU,CAElC,IAAIqiU,GAAO,EACP/5U,KAAKmgW,cACDngW,KAAKmgW,YAAYzoV,WAAauoV,EAAOvoV,SACrC1X,KAAKogW,mBAAmB9vE,EAAK2vE,GAG7BlmB,GAAO,GAGXA,IACAkmB,EAAOvoV,SAAS2oV,SAASrgW,KAAK4oM,OAAS5oM,KAAKs8V,WAAWt8V,KAAK4oM,OAC5Dq3J,EAAOvoV,SAAS4oV,QAAQhwE,EAAK2vE,EAAO53V,QACpCrI,KAAKmgW,YAAcF,EAE3B,MACSjgW,KAAKmgW,aACVngW,KAAKogW,mBAAmB9vE,EAAK2vE,GAEjC,IAAIxB,EAAgBz+V,KAAKs8V,WAAWt8V,KAAK4oM,OAAO23J,OAChDvgW,KAAK0+V,iBAAmB1+V,KAAKo+V,wBAAwBp+V,KAAKy+V,cAAcrrE,cACxE,IAAIotE,EAAQxgW,KAAK0+V,iBAAiB/6N,KAC9B88N,EAAOzgW,KAAK0+V,iBAAiBxwM,IAC7BovM,EAAWt9V,KAAKu9V,eAAejtE,GAC/BowE,EAAQpD,EAASt3M,MACjB26M,EAAQrD,EAASr3M,MACjB26M,EAAQ5gW,KAAKkqF,SAASy5C,KAAO3jI,KAAK47V,MAClCiF,EAAO7gW,KAAKkqF,SAASgkE,IAAMluJ,KAAKm8V,MAChCjoE,EAAS1B,iBAAiBisE,GAC9B,GAAIz+V,KAAKg/V,SAAU,CACf,GAAIh/V,KAAKgmJ,QAAU06M,GAAS1gW,KAAK8gW,kBAAmB,CAChD,IAAIC,EAActC,EAActuF,aAAez/N,WAAWwjP,EAAOuB,YAC3D/kP,WAAWwjP,EAAOiD,cAEpBxzJ,EADA3jI,KAAKw7V,UAAU73N,KAAOi9N,GAASA,EAAQ,EAChC5gW,KAAKw7V,UAAU73N,KAEjB3jI,KAAKw7V,UAAU53N,MAAQ5yG,OAAOu4R,YAAcq3C,EAAQG,GAAeH,EAAQ,EACzEA,GAASA,EAAQ5gW,KAAKw7V,UAAU53N,OAAS5yG,OAAOu4R,YAAcw3C,EAG9DH,EAAQ,EAAI5gW,KAAKw7V,UAAU73N,KAAOi9N,CAEjD,CACA,GAAI5gW,KAAKimJ,QAAU06M,GAAS3gW,KAAK8gW,kBAAmB,CAChD,IAAIE,EAAevC,EAAc1pE,cAAgBrkP,WAAWwjP,EAAOsB,WAC7D9kP,WAAWwjP,EAAOgD,eAEpBhpI,EADAluJ,KAAKw7V,UAAUttM,IAAM2yM,GAAQA,EAAO,EAC9B7gW,KAAKw7V,UAAUttM,IAEhBluJ,KAAKw7V,UAAU7mE,OAAS3jQ,OAAOw4R,YAAcq3C,EAAOG,GAAgBH,EAAO,EAC1EA,GAAQA,EAAO7gW,KAAKw7V,UAAU7mE,QAAU3jQ,OAAOw4R,YAAcw3C,EAG7DH,EAAO,EAAI7gW,KAAKw7V,UAAUttM,IAAM2yM,CAE9C,CACJ,MAEIl9N,EAAOi9N,EACP1yM,EAAM2yM,EAEV,IAUII,EACAC,EAXAC,EAAOV,EAAOzgW,KAAK27V,YAAYztM,IAC/BkzM,EAAQZ,EAAQxgW,KAAK27V,YAAYh4N,KAWrC,GAVI3jI,KAAK+7V,qBACDhwB,GAAkB79K,KAClBA,EAAMluJ,KAAK87V,SAEX/vB,GAAkBpoM,KAClBA,EAAO3jI,KAAK67V,WAKhB77V,KAAKy+V,cAAcv2E,UAAUh1P,SAAS,cAClClzB,KAAKg/V,UACLh/V,KAAKw7V,UAAUttM,IAAMluJ,KAAKuB,MAAQvB,KAAKw7V,UAAUttM,IAAM,EACvD+yM,EAAa/yM,EAAMizM,EAAQ,EAAInhW,KAAKw7V,UAAUttM,IAAOA,EAAMluJ,KAAK27V,YAAYztM,IAC5EgzM,EAAcv9N,EAAOy9N,EAAS,EAAIphW,KAAKw7V,UAAU73N,KAAQA,EAAO3jI,KAAK27V,YAAYh4N,OAGjFs9N,EAAY/yM,EAAMluJ,KAAK27V,YAAYztM,IACnCgzM,EAAav9N,EAAO3jI,KAAK27V,YAAYh4N,WAIzC,GAAI3jI,KAAKg/V,SAAU,CACf,IAAIqC,EAAcrhW,KAAKy+V,cAAcv2E,UAAUh1P,SAAS,YACxDlzB,KAAKw7V,UAAUttM,IAAMluJ,KAAKuB,MAAQvB,KAAKw7V,UAAUttM,IAAM,EACvD+yM,EAAa/yM,EAAMizM,EAAQ,EAAInhW,KAAKw7V,UAAUttM,IAAOA,EAAMizM,EAC3DD,EAAcv9N,EAAOy9N,EAAS,EAAIC,EAAe19N,GAAQy9N,EAAQphW,KAAK27V,YAAYh4N,MAC9E3jI,KAAKs/V,gBAAgB37N,KAAQA,EAAOy9N,CAC5C,MAEIH,EAAY/yM,EAAMizM,EAClBD,EAAav9N,EAAOy9N,EAG5B,IAAI5rE,EAAY9kP,WAAW8hP,iBAAiBxyR,KAAKmV,SAASqgR,WAG1D,GAAIA,EAAY,IACRx1R,KAAKuB,QACL0/V,GAAazrE,EACTqrE,EAAO,IACFrrE,EAAYqrE,GAAS,EACtBI,EAAYzrE,EAAYqrE,EAGxBI,GAAazrE,GAGrByrE,EAAajhW,KAAKw7V,UAAU7mE,OAASssE,EAAajhW,KAAKw7V,UAAU7mE,OAASssE,GAEzE/yM,EAAMizM,EAAQ,GACf,GAAIN,EAAOrrE,GAAaipE,EAAc1pE,aAAeosE,IAAS,EAAG,CAC7D,IAAIG,EAAgBthW,KAAKw7V,UAAUttM,IAAM2yM,EAAOM,EAC3CG,EAAgB9rE,EAAY2rE,EAAQ,EACrCF,GAAazrE,EAAY2rE,EAGzBF,EAAYK,CAEpB,MAEIL,GAAazrE,EAAY2rE,EAIrC,GAAInhW,KAAKg/V,UAAYh/V,KAAKy+V,cAAcv2E,UAAUh1P,SAAS,cAGvD+tU,EAAaA,GAFTD,EAAevC,EAAc1pE,cAAgBrkP,WAAWwjP,EAAOsB,WAC7D9kP,WAAWwjP,EAAOgD,gBACiBl3R,KAAKw7V,UAAU7mE,OAAU30R,KAAKw7V,UAAU7mE,OAASqsE,EAAgBC,EAM1GjhW,KAAKm/V,sBAAwBn/V,KAAKuB,QAClC0/V,GAAajhW,KAAKq8V,cAClB6E,GAAclhW,KAAKo8V,eAEnBp8V,KAAKg/V,UAAqC,kBAAlBh/V,KAAKg/V,UAAyBh/V,KAAKg/V,SAAS92E,UAAUh1P,SAAS,qBAAwD,aAAjClzB,KAAKg/V,SAAS74V,MAAM+jF,WAClI+2Q,GAAajhW,KAAKg/V,SAAS7wM,WAE/B,IAAIozM,EAAYvhW,KAAKq/V,0BAA0B,CAAEnxM,IAAK+yM,EAAY,KAAMt9N,KAAMu9N,EAAa,OAC3FlW,GAAkByT,EAAez+V,KAAKu/V,gBAAgBgC,IACjDvhW,KAAK2/V,kBAAkBlB,KAAkBz+V,KAAKwhW,kBAAqBxhW,KAAKy+V,cAAcv2E,UAAUh1P,SAAS,eAC1GlzB,KAAKy+V,cAAcgD,iBAEvB,IAAIn1C,EAAWp7R,SAAS1gB,iBAAiB,UACzC,GAAIxQ,KAAKwhW,kBAAoBxhW,KAAKy+V,cAAcv2E,UAAUh1P,SAAS,cAAe,CACtD,IAApBo5R,EAASlpT,SACTkpT,EAAWtsT,KAAK0hW,gBAAgBpxE,IAGpC,IAAI+E,EAAer1R,KAAKyyR,gBAAgB65B,GAAU,GAC9CtsT,KAAK2/V,kBAAkB3/V,KAAKy+V,eAC5Bz+V,KAAK2hW,kBAAkBtsE,EAAc4rE,GAE/BjhW,KAAK2/V,kBAAkB3/V,KAAKy+V,iBAEV,KADxBnyC,EAAW,GAAG17S,MAAMjR,KAAKuxB,SAAS1gB,iBAAiB,YACtCpN,SACTkpT,EAAWtsT,KAAK0hW,gBAAgBpxE,IAEpC+E,EAAer1R,KAAKyyR,gBAAgB65B,GAAU,GAC9CtsT,KAAK2hW,kBAAkBtsE,EAAc4rE,GAE7C,CACAjhW,KAAK+7V,oBAAqB,EAC1B/7V,KAAK67V,SAAWl4N,EAChB3jI,KAAK87V,QAAU5tM,EACfluJ,KAAKkqF,SAASy5C,KAAOA,EACrB3jI,KAAKkqF,SAASgkE,IAAMA,EACpBluJ,KAAKgmJ,MAAQ06M,EACb1gW,KAAKimJ,MAAQ06M,CAnMb,CAoMJ,EAEApF,EAAU5qV,UAAU8hR,gBAAkB,SAAUviR,EAAM1D,GAIlD,IAFA,IACIo1V,EADAC,EAASr1V,EAAU0D,EAAK1D,UAAY0D,EAE/B/D,EAAI01V,EAAOz+V,OAAS,EAAG+I,GAAK,EAAGA,IAEpC,IAAmB,UADnBy1V,EAAY5wU,OAAOwhQ,iBAAiBqvE,EAAOt1U,SAASpgB,EAAE2K,WAAY,MAAM,gBAC7B,WAAd8qV,IACtBC,EAAOt1U,SAASpgB,EAAE2K,WAAY,KAAKonS,aAAe2jD,EAAOt1U,SAASpgB,EAAE2K,WAAY,KAAKouP,aACxF,OAAO28F,EAAOt1U,SAASpgB,EAAE2K,WAAY,KAI7C,GAAkB,aADlB8qV,EAAY5wU,OAAOwhQ,iBAAiBthQ,SAAS8iQ,kBAAkB,eAG3D,OADA9iQ,SAAS8iQ,iBAAiB7tR,MAAMsyF,SAAW,OACpCvnE,SAAS8iQ,gBAExB,EACAunE,EAAU5qV,UAAUgxV,kBAAoB,SAAUG,EAASb,GACnDa,GAAWA,IAAY5wU,SAAS8iQ,iBAC3B8tE,EAAQ58F,aAAeh0O,SAAS8iQ,iBAAiB7lI,UAAYnuJ,KAAKy+V,cAAcv5F,aAAgB+7F,GAC9Fa,EAAQrtE,wBAAwB7rI,OAAS5oJ,KAAK0+V,iBAAiBxwM,IAAM+yM,EACxEa,EAAQ3zM,WAAanuJ,KAAKy+V,cAAcv5F,aAEnC48F,EAAQ3zM,UAAY8yM,EAAYjhW,KAAKy+V,cAAcv5F,eACxD48F,EAAQ3zM,WAAanuJ,KAAKy+V,cAAcv5F,cAGvC48F,GAAWA,IAAY5wU,SAAS8iQ,mBAChC8tE,EAAQ58F,aAAe48F,EAAQrtE,wBAAwBvmI,IAAMluJ,KAAKy+V,cAAcv5F,aAAeh0O,SAAS8iQ,iBAAiB7lI,UAAa8yM,EACvIa,EAAQ3zM,WAAanuJ,KAAKy+V,cAAcv5F,aAEnC48F,EAAQrtE,wBAAwBvmI,IAAO+yM,EAAYjhW,KAAKy+V,cAAcv5F,aAAeh0O,SAAS8iQ,iBAAiB7lI,YACpH2zM,EAAQ3zM,WAAanuJ,KAAKy+V,cAAcv5F,cAGpD,EACAq2F,EAAU5qV,UAAU+wV,gBAAkB,SAAUpxE,GAC5C,IAAIyxE,EAAazxE,EAAIj3P,QAAU,EAAIi3P,EAAIj3P,QAAU,EAC7C2oU,EAAc1xE,EAAIh3P,QAAU,EAAIg3P,EAAIh3P,QAAU,EAClD,OAAOpI,SAAS+wU,kBAAkBF,EAAYC,EAClD,EACAzG,EAAU5qV,UAAUyvV,mBAAqB,SAAU9vE,EAAK2vE,GACpDjgW,KAAKmgW,YAAYzoV,SAASwqV,OAAO5xE,EAAK2vE,EAAO53V,QAC7CrI,KAAKmgW,YAAYzoV,SAAS2oV,SAASrgW,KAAK4oM,OAAS,KACjD5oM,KAAKmgW,YAAc,IACvB,EACA5E,EAAU5qV,UAAU4uV,gBAAkB,SAAUgC,GAC5C,IAAI70Q,EAAOjD,GAAO,CAAC,EAAG83Q,GAStB,OARIvhW,KAAKm0R,OACa,MAAdn0R,KAAKm0R,YACEznM,EAAKwhE,IAEO,MAAdluJ,KAAKm0R,aACHznM,EAAKi3C,MAGbj3C,CACX,EACA6uQ,EAAU5qV,UAAUmvV,uBAAyB,SAAUnyT,GACnD,IAAIw0T,EAAUjxU,SAASzd,KACnB2uV,EAASlxU,SAASuE,gBAEtB,OADkB7xB,KAAKqpC,IAAIk1T,EAAQ,SAAWx0T,GAAMy0T,EAAO,SAAWz0T,GAAMw0T,EAAQ,SAAWx0T,GAAMy0T,EAAO,SAAWz0T,GAAMy0T,EAAO,SAAWz0T,GAEnJ,EACA4tT,EAAU5qV,UAAU8uV,YAAc,SAAUnvE,GAExC,GADAtwR,KAAK+7V,oBAAqB,EACrBxwQ,GAAY+kM,EAAI/mI,iBAAkD,IAA9B+mI,EAAI/mI,eAAenmJ,OAA5D,CAIA,IAAgC,IADrB,CAAC,WAAY,YAAa,WAC5BuH,QAAQ2lR,EAAI1jR,MAAc,CAC/B,GAAI5M,KAAKqiW,SAAU,CACf,IAAIpF,EAAYj9V,KAAK4+V,uBAAuBtuE,GAC5CtwR,KAAKsgS,QAAQ,WAAY,CAAEvpQ,MAAOu5P,EAAKn7Q,QAASnV,KAAKmV,QAAS9M,OAAQ40V,EAAWsD,OAAQvgW,KAAKy+V,eAClG,CACAz+V,KAAK49V,WAAWttE,EACpB,MAEItwR,KAAKmV,QAAQ6f,aAAa,eAAgB,SAE9C,IAAIirU,EAASjgW,KAAKkgW,mBAAmB5vE,GACjC2vE,EAAO53V,QAAU43V,EAAOvoV,WACxBuoV,EAAOvoV,SAAS4qV,gBAAiB,EACjCrC,EAAOvoV,SAAS2oV,SAASrgW,KAAK4oM,OAAS5oM,KAAKs8V,WAAWt8V,KAAK4oM,OAC5Dq3J,EAAOvoV,SAAS6qV,QAAQjyE,EAAK2vE,EAAO53V,SAExCrI,KAAK0/V,qBAAoB,GACzBxuU,SAASzd,KAAKy0Q,UAAU/0P,OAAO,mBAnB/B,CAoBJ,EAIAooU,EAAU5qV,UAAUitV,WAAa,SAAUttE,GACvCtwR,KAAK+7V,oBAAqB,EAC1B/7V,KAAKu8V,eACLrrU,SAASzd,KAAKy0Q,UAAU/0P,OAAO,oBAC/BnzB,KAAKmV,QAAQ6f,aAAa,eAAgB,SAC1C6jN,GAAa1lN,OAAOjC,SAAU+1T,GAAQY,WAAa,YAAcZ,GAAQyB,eAAgB1oV,KAAK29V,cAC9F9kH,GAAa1lN,OAAOjC,SAAU+1T,GAAQY,WAAa,WAAaZ,GAAQ0B,cAAe3oV,KAAKy/V,aAC5F5mH,GAAa1lN,OAAOjC,SAAU+1T,GAAQY,WAAa,WAAaZ,GAAQ0B,cAAe3oV,KAAK49V,YAC5F/kH,GAAa1lN,OAAOjC,SAAU+1T,GAAQY,WAAa,YAAcZ,GAAQyB,eAAgB1oV,KAAKw/V,SAC1Fx/V,KAAKm9V,iBACLn9V,KAAKm9V,eAAc,EAE3B,EAEA5B,EAAU5qV,UAAU+7U,kBAAoB,SAAUiF,EAASC,GACvD,EAEJ2J,EAAU5qV,UAAUo8U,cAAgB,WAChC,MAAO,WACX,EACAwO,EAAU5qV,UAAUwsV,cAAgB,SAAUjpQ,GAI1C,OAHIA,IACAmnQ,GAAgBC,WAAaD,GAAgBC,WAE1CD,GAAgBC,SAC3B,EACAC,EAAU5qV,UAAUsuV,YAAc,WAC9B,IAAIuD,EACAC,EAGA9Y,EAFAz7L,EAAM,EACNvqB,EAAO,EASX,GALIgmN,EADS,kBADK3pV,KAAKg/V,SAEbxU,GAAOxqV,KAAKg/V,UAGZh/V,KAAKg/V,SAEN,CACL,IAAI0D,EAAc/Y,EAAIl1D,wBACtB+tE,EAAgB7Y,EAAIv5E,YAAcu5E,EAAIv5E,YAAcsyF,EAAY9+N,MAAQ8+N,EAAY/+N,KACpF8+N,EAAiB9Y,EAAIzrC,aAAgBl+S,KAAKg/V,WAAajzB,GAAkB/rU,KAAKy+V,gBAAkBz+V,KAAKy+V,cAAcv2E,UAAUh1P,SAAS,cAAiBy2T,EAAIzkF,aAAeykF,EAAIzrC,aAAewkD,EAAY/tE,OAAS+tE,EAAYx0M,IAG9N,IAFA,IAAI3pJ,EAAO,CAAC,MAAO,OAAQ,SAAU,SACjC2vR,EAAS1B,iBAAiBm3D,GACrBx9U,EAAI,EAAGA,EAAI5H,EAAKnB,OAAQ+I,IAAK,CAClC,IAAIG,EAAM/H,EAAKgoB,SAASpgB,EAAE2K,WAAY,KAClC6rV,EAAUzuE,EAAO,SAAW5nR,EAAM,SAClCs2V,EAAW1uE,EAAO,UAAY5nR,GAC9Bu2V,EAAWv2V,EAAIoU,cACnB1gB,KAAK27V,YAAY,GAAKkH,GAAYhhW,MAAM6uC,WAAWiyT,IAAY,EAAIjyT,WAAWiyT,GAC9E3iW,KAAKg3H,QAAQ,GAAK6rO,GAAYhhW,MAAM6uC,WAAWkyT,IAAa,EAAIlyT,WAAWkyT,EAC/E,CAEI10M,EADAluJ,KAAKg/V,WAAajzB,GAAkB/rU,KAAKy+V,gBAAkBz+V,KAAKy+V,cAAcv2E,UAAUh1P,SAAS,cAC3FwvU,EAAYx0M,IAAMh9H,SAAS8iQ,iBAAiB7lI,UAG5Cu0M,EAAYx0M,IAEtBvqB,EAAO++N,EAAY/+N,KACnB3jI,KAAKw7V,UAAU73N,KAAOA,EAAO3jI,KAAK27V,YAAYh4N,KAAO3jI,KAAKg3H,QAAQ2M,KAClE3jI,KAAKw7V,UAAUttM,IAAMy7L,EAAI/mC,UAAY5iT,KAAK27V,YAAYztM,IAAMluJ,KAAKg3H,QAAQk3B,IACzEluJ,KAAKw7V,UAAU53N,MAAQD,EAAO6+N,GAAiBxiW,KAAK27V,YAAY/3N,MAAQ5jI,KAAKg3H,QAAQ4M,OACrF5jI,KAAKw7V,UAAU7mE,OAASzmI,EAAMu0M,GAAkBziW,KAAK27V,YAAYhnE,OAAS30R,KAAKg3H,QAAQ29J,OAC3F,CACJ,EACA4mE,EAAU5qV,UAAUiuV,uBAAyB,SAAUtuE,GACnD,IACIq5D,EADA2T,EAAWt9V,KAAKu9V,eAAejtE,GAE/BwyE,EAAY9iW,KAAKy+V,cAAct4V,MAAM44R,eAAiB,GACtDsoD,GAA6C,IAAjC/2D,EAAI1jR,KAAKjC,QAAQ,YAA2C,WAAtBs8U,GAAQ1qT,KAAK73B,MAAqB6nB,SAAS06T,GAAQ1qT,KAAKiG,SAAW,GASzH,OARI0qS,GAAqB58C,EAAIjoR,OAAQrI,KAAKy+V,iBAAiD,IAA/BnuE,EAAI1jR,KAAKjC,QAAQ,UAAmB08U,GAC5FrnV,KAAKy+V,cAAct4V,MAAM44R,cAAgB,OACzC4qD,EAAMz4T,SAAS6xU,iBAAiBzF,EAASjkU,QAASikU,EAAShkU,SAC3Dt5B,KAAKy+V,cAAct4V,MAAM44R,cAAgB+jE,GAGzCnZ,EAAMr5D,EAAIjoR,OAEPshV,CACX,EAEA4R,EAAU5qV,UAAUwtV,kBAAoB,SAAUxU,EAAKqZ,GAQnD,OANKj3B,GAAkB/rU,KAAKk9V,qBAAuBl9V,KAAKk9V,qBAAuBvT,EAInE5d,GAAkBi3B,GAAmBrZ,EAATqZ,EAH7BhjW,KAAKk9V,kBAMpB,EACA3B,EAAU5qV,UAAU0tV,iBAAmB,SAAU/tE,EAAK2yE,GAElD,IAEIj9M,EACAC,EAHAi9M,OAA6B7/V,IAAnBitR,EAAIluI,WAA2BkuI,EAAIluI,WAAakuI,EAAIjoR,OAC9Di1V,EAAWt9V,KAAKu9V,eAAejtE,GAG/B6yE,EAAiBp3B,GAAkBm3B,EAAQ9vE,cAY/C,GAVI6vE,GACAj9M,EAAQhmJ,KAAKuB,MAAQ+7V,EAASt3M,MACzBs3M,EAASt3M,OAASm9M,EAAiB,EAAID,EAAQ9vE,aAAanlI,YAAejuJ,KAAKy9V,kBACrFx3M,EAAQjmJ,KAAKuB,MAAQ+7V,EAASr3M,MACzBq3M,EAASr3M,OAASk9M,EAAiB,EAAID,EAAQ9vE,aAAajlI,WAAcnuJ,KAAK09V,oBAGpF13M,EAAQhmJ,KAAKuB,MAAQ+7V,EAASt3M,MAASs3M,EAASt3M,MAAQh1H,OAAOu4R,YAAevpT,KAAKy9V,kBACnFx3M,EAAQjmJ,KAAKuB,MAAQ+7V,EAASr3M,MAASq3M,EAASr3M,MAAQj1H,OAAOw4R,YAAexpT,KAAK09V,mBAEnFxsU,SAAS8iQ,mBAAsBivE,IAAiBjjW,KAAKuB,MAAQ,CAC7D,IAAI6hW,EAAmBlyU,SAAS8iQ,iBAAiBkqB,aAAe,GAAKhtR,SAAS8iQ,iBAAiBkqB,aAAehtR,SAAS8iQ,iBAAiB9uB,cAAgBh0O,SAAS8iQ,iBAAiB7lI,UAAY,EAE9LnI,EAD0B90H,SAAS8iQ,iBAAiB5jB,YAAc,GAAKl/O,SAAS8iQ,iBAAiB5jB,YAAcl/O,SAAS8iQ,iBAAiBjvB,aAAe7zO,SAAS8iQ,iBAAiB/lI,WAAa,EACjKjI,EAAQ90H,SAAS8iQ,iBAAiB/lI,WAAajI,EAC7EC,EAAQm9M,EAAmBn9M,EAAQ/0H,SAAS8iQ,iBAAiB7lI,UAAYlI,CAC7E,CACA,MAAO,CACHtiB,KAAMqiB,GAAShmJ,KAAKqvT,OAAO1rL,KAAO3jI,KAAKqjW,SAAS1/N,MAChDuqB,IAAKjI,GAASjmJ,KAAKqvT,OAAOnhK,IAAMluJ,KAAKqjW,SAASn1M,KAEtD,EACAqtM,EAAU5qV,UAAU4sV,eAAiB,SAAUjtE,GAC3C,OAAIA,EAAI1jR,KAAKjC,QAAQ,UAAY,EACtB2lR,EAAI/mI,eAAe,GAEvB+mI,CACX,EACAirE,EAAU5qV,UAAU4tV,iBAAmB,SAAUjuE,GAC7C,IAAIn7Q,EAaJ,OAZInV,KAAKuB,MACDvB,KAAKugW,OACLprV,EAAUnV,KAAKugW,OAAO,CAAE+C,OAAQhzE,EAAKn7Q,QAASnV,KAAKqI,UAGnD8M,EAAUrU,GAAc,MAAO,CAAEC,UAAW,8BAA+BmoC,UAAW,cACtFhY,SAASzd,KAAKie,YAAYvc,IAI9BA,EAAUnV,KAAKmV,QAEZA,CACX,EACAomV,EAAU5qV,UAAU+uV,oBAAsB,SAAUzmT,EAAO+mT,EAAMO,GAC7DvgW,KAAKs8V,WAAWt8V,KAAK4oM,OAAS3vJ,EAAQ,KAAO,CACzCsqT,UAAWvD,EACXO,OAAQA,EACRiD,eAAgBxjW,KAAKmV,QAE7B,EACAomV,EAAU5qV,UAAUuvV,mBAAqB,SAAU5vE,GAC/C,IAAIjoR,EAASrI,KAAK4+V,uBAAuBtuE,GACrCmzE,EAAUzjW,KAAK0jW,gBAAgBr7V,GACnC,IAAKo7V,GAAWp7V,IAAW0jU,GAAkB1jU,EAAOmsB,YAAa,CAC7D,IAAIyyQ,EAAWxxM,GAAQptF,EAAOmsB,WAAY,iBAAmBnsB,EAAOwtR,cAChEoR,IACAw8D,EAAUzjW,KAAK0jW,gBAAgBz8D,GAEvC,CACA,MAAO,CAAE5+R,OAAQA,EAAQqP,SAAU+rV,EACvC,EACAlI,EAAU5qV,UAAU+yV,gBAAkB,SAAU/Z,GAC5C,IACI/uT,EACA+oU,EAAUha,GAAOA,EAAIqD,cACzB,GAAI2W,EACA,IAAK,IAAIr0V,EAAK,EAAGs0V,EAAYD,EAASr0V,EAAKs0V,EAAUxgW,OAAQkM,IAAM,CAC/D,IAAI0+T,EAAO41B,EAAUt0V,GACrB,GAA0B,cAAtB0+T,EAAc,gBAAqB,CACnCpzS,EAAOozS,EACP,KACJ,CACJ,CAEJ,OAAOpzS,CACX,EACA2gU,EAAU5qV,UAAUymI,QAAU,WAC1Bp3I,KAAKu8V,cAAa,GAClBz1S,EAAOn2C,UAAUymI,QAAQz3I,KAAKK,KAClC,EAEA+vV,GAAW,CACPd,GAAQ,CAAC,EAAG59E,KACbkqF,EAAU5qV,UAAW,gBAAY,GACpCo/U,GAAW,CACPjB,IAAS,IACVyM,EAAU5qV,UAAW,aAAS,GACjCo/U,GAAW,CACPjB,MACDyM,EAAU5qV,UAAW,gBAAY,GACpCo/U,GAAW,CACPjB,MACDyM,EAAU5qV,UAAW,oBAAgB,GACxCo/U,GAAW,CACPjB,MACDyM,EAAU5qV,UAAW,wBAAoB,GAC5Co/U,GAAW,CACPjB,IAAS,IACVyM,EAAU5qV,UAAW,uBAAmB,GAC3Co/U,GAAW,CACP94T,MACDskU,EAAU5qV,UAAW,YAAQ,GAChCo/U,GAAW,CACP94T,MACDskU,EAAU5qV,UAAW,iBAAa,GACrCo/U,GAAW,CACP94T,MACDskU,EAAU5qV,UAAW,gBAAY,GACpCo/U,GAAW,CACPjB,GAAS,IACVyM,EAAU5qV,UAAW,gBAAY,GACpCo/U,GAAW,CACPjB,MACDyM,EAAU5qV,UAAW,cAAU,GAClCo/U,GAAW,CACPjB,MACDyM,EAAU5qV,UAAW,aAAS,GACjCo/U,GAAW,CACPjB,MACDyM,EAAU5qV,UAAW,cAAU,GAClCo/U,GAAW,CACPjB,GAAS,YACVyM,EAAU5qV,UAAW,aAAS,GACjCo/U,GAAW,CACPjB,GAAS,KACVyM,EAAU5qV,UAAW,kBAAc,GACtCo/U,GAAW,CACPjB,MACDyM,EAAU5qV,UAAW,YAAQ,GAChCo/U,GAAW,CACPjB,MACDyM,EAAU5qV,UAAW,yBAAqB,GAC7Co/U,GAAW,CACPjB,IAAS,IACVyM,EAAU5qV,UAAW,sBAAkB,GAC1Co/U,GAAW,CACPjB,IAAS,IACVyM,EAAU5qV,UAAW,yBAAqB,GAC7Co/U,GAAW,CACPjB,IAAS,IACVyM,EAAU5qV,UAAW,sBAAkB,GAC1Co/U,GAAW,CACPjB,IAAS,IACVyM,EAAU5qV,UAAW,wBAAoB,GAC5Co/U,GAAW,CACPjB,IAAS,IACVyM,EAAU5qV,UAAW,qBAAiB,GACzCo/U,GAAW,CACPjB,GAAS,MACVyM,EAAU5qV,UAAW,wBAAoB,GAC5Co/U,GAAW,CACPjB,IAAS,IACVyM,EAAU5qV,UAAW,2BAAuB,GAC/C4qV,EAAYE,EAAc1L,GAAW,CACjCT,IACDiM,EAEP,CAv1B+B,CAu1B7BpQ,ICx5BEjlS,GAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAazC2pS,GAA0C,SAAUxoJ,EAAYl/L,EAAQiE,EAAKkkB,GAC7E,IAA2HhvB,EAAvH6e,EAAIld,UAAUC,OAAQkgH,EAAIjjG,EAAI,EAAIhY,EAAkB,OAATmoB,EAAgBA,EAAO/wB,OAAOk+B,yBAAyBt1B,EAAQiE,GAAOkkB,EACrH,GAAuB,kBAAZuN,SAAoD,oBAArBA,QAAQiyT,SAAyB1sO,EAAIvlF,QAAQiyT,SAASzoJ,EAAYl/L,EAAQiE,EAAKkkB,QACpH,IAAK,IAAIrkB,EAAIo7L,EAAWnkM,OAAS,EAAG+I,GAAK,EAAGA,KAAS3K,EAAI+lM,EAAWp7L,MAAIm3G,GAAKjjG,EAAI,EAAI7e,EAAE8hH,GAAKjjG,EAAI,EAAI7e,EAAE6G,EAAQiE,EAAKg3G,GAAK9hH,EAAE6G,EAAQiE,KAASg3G,GAChJ,OAAOjjG,EAAI,GAAKijG,GAAK7jH,OAAO4c,eAAehU,EAAQiE,EAAKg3G,GAAIA,CAChE,EAsBIugP,GAA2B,SAAU/8S,GAErC,SAAS+8S,EAAU1uV,EAAS2J,GACxB,IAAIxf,EAAQwnD,EAAOnnD,KAAKK,KAAM8e,EAAS3J,IAAYnV,KAKnD,OAJAV,EAAMwkW,WAAY,EAClBxkW,EAAM+gW,SAAW,CAAC,EAClB/gW,EAAMgjW,gBAAiB,EACvBhjW,EAAMO,OACCP,CACX,CAwFA,OAhGA4mD,GAAU29S,EAAW/8S,GASrB+8S,EAAUlzV,UAAU9Q,KAAO,WACvBG,KAAK+jW,YACT,EACAF,EAAUlzV,UAAUozV,WAAa,WAC7BlrH,GAAazlN,IAAIpzB,KAAKmV,QAAS8xU,GAAQY,WAAa,WAAaZ,GAAQ0B,cAAe3oV,KAAKuiW,QAASviW,KAC1G,EAGA6jW,EAAUlzV,UAAU+7U,kBAAoB,SAAUiF,EAASC,GACvD,EAEJiS,EAAUlzV,UAAUo8U,cAAgB,WAChC,MAAO,WACX,EACA8W,EAAUlzV,UAAU2vV,QAAU,SAAUvpU,EAAO5hB,GAC3C,IAAKnV,KAAK8jW,UAAW,CACjB,IAAI9D,EAAOhgW,KAAKqgW,SAASrgW,KAAK4oM,OAC9B5oM,KAAKsgS,QAAQ,OAAQ,CAAEvpQ,MAAOA,EAAO1uB,OAAQ8M,EAASkrV,SAAUL,IAChEhgW,KAAK8jW,WAAY,CACrB,CACJ,EACAD,EAAUlzV,UAAUuxV,OAAS,SAAUnrU,EAAO5hB,GACtCnV,KAAK8jW,YACL9jW,KAAKsgS,QAAQ,MAAO,CAAEhQ,IAAKv5P,EAAO1uB,OAAQ8M,IAC1CnV,KAAK8jW,WAAY,EAEzB,EACAD,EAAUlzV,UAAU4xV,QAAU,SAAUjyE,EAAKn7Q,GACzC,GAAKnV,KAAKsiW,eAAV,CAIItiW,KAAKsiW,gBAAiB,EAE1B,IAGI5gN,EAHAsiN,GAAS,EACThE,EAAOhgW,KAAKqgW,SAASrgW,KAAK4oM,OAC1Bq7J,IAASjE,IAAQA,EAAKO,QAAUvW,GAAUgW,EAAKO,SAE/C0D,IACAviN,EAAO1hJ,KAAKkkW,WAAW5zE,EAAK0vE,EAAKO,OAAQprV,GACrCnV,KAAKgkW,SACLA,EAASvvU,GAAQurU,EAAKO,OAAQvgW,KAAKgkW,UAGvCC,GAAUjkW,KAAK46B,MAAQ8mH,EAAKyiN,SAAWH,GACvChkW,KAAKsgS,QAAQ,OAAQ,CAAEvpQ,MAAOu5P,EAAKjoR,OAAQq5I,EAAKr5I,OAAQ+7V,eAAgBpE,EAAKO,OAAQF,SAAUL,IAEnGhgW,KAAK8jW,WAAY,CAdjB,CAeJ,EACAD,EAAUlzV,UAAUuzV,WAAa,SAAU5zE,EAAKiwE,EAAQprV,GACpD,IAAIusI,EAAO,CAAEyiN,SAAS,EAAM97V,OAAQ8M,GAAWm7Q,EAAIjoR,QAC/Ci/U,EAAuB,aAAbh3D,EAAI1jR,KAClB,GAAI06U,GAAW5lM,EAAKr5I,SAAWk4V,EAAQ,CACnCA,EAAOp6V,MAAMi+J,QAAU,OACvB,IAAIigM,EAAQ/c,EAAWh3D,EAAI/mI,eAAe,GAAM+mI,EAC5Cq5D,EAAMz4T,SAAS6xU,iBAAiBsB,EAAMhrU,QAASgrU,EAAM/qU,SACzDooH,EAAKyiN,SAAU,EACfziN,EAAKyiN,QAAUj3B,GAAqByc,EAAK3pV,KAAKmV,SAC1CusI,EAAKyiN,UACLziN,EAAKr5I,OAASshV,GAElB4W,EAAOp6V,MAAMi+J,QAAU,EAC3B,CACA,OAAO1iB,CACX,EACAmiN,EAAUlzV,UAAUymI,QAAU,WAC1ByhG,GAAa1lN,OAAOnzB,KAAKmV,QAAS8xU,GAAQY,WAAa,WAAaZ,GAAQ0B,cAAe3oV,KAAKuiW,SAChGz7S,EAAOn2C,UAAUymI,QAAQz3I,KAAKK,KAClC,EACA+vV,GAAW,CACPjB,MACD+U,EAAUlzV,UAAW,cAAU,GAClCo/U,GAAW,CACPjB,GAAS,YACV+U,EAAUlzV,UAAW,aAAS,GACjCo/U,GAAW,CACP94T,MACD4sU,EAAUlzV,UAAW,YAAQ,GAChCo/U,GAAW,CACP94T,MACD4sU,EAAUlzV,UAAW,YAAQ,GAChCo/U,GAAW,CACP94T,MACD4sU,EAAUlzV,UAAW,WAAO,GAC/BkzV,EAAY9T,GAAW,CACnBT,IACDuU,EAEP,CAlG+B,CAkG7B1Y,IC1IEjlS,GAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAazC2pS,GAA0C,SAAUxoJ,EAAYl/L,EAAQiE,EAAKkkB,GAC7E,IAA2HhvB,EAAvH6e,EAAIld,UAAUC,OAAQkgH,EAAIjjG,EAAI,EAAIhY,EAAkB,OAATmoB,EAAgBA,EAAO/wB,OAAOk+B,yBAAyBt1B,EAAQiE,GAAOkkB,EACrH,GAAuB,kBAAZuN,SAAoD,oBAArBA,QAAQiyT,SAAyB1sO,EAAIvlF,QAAQiyT,SAASzoJ,EAAYl/L,EAAQiE,EAAKkkB,QACpH,IAAK,IAAIrkB,EAAIo7L,EAAWnkM,OAAS,EAAG+I,GAAK,EAAGA,KAAS3K,EAAI+lM,EAAWp7L,MAAIm3G,GAAKjjG,EAAI,EAAI7e,EAAE8hH,GAAKjjG,EAAI,EAAI7e,EAAE6G,EAAQiE,EAAKg3G,GAAK9hH,EAAE6G,EAAQiE,KAASg3G,GAChJ,OAAOjjG,EAAI,GAAKijG,GAAK7jH,OAAO4c,eAAehU,EAAQiE,EAAKg3G,GAAIA,CAChE,EAGIhjH,GAAU,CACV,UAAa,EACb,IAAO,EACP,MAAS,GACT,MAAS,GACT,QAAW,GACX,IAAO,GACP,MAAS,GACT,SAAY,GACZ,MAAS,GACT,OAAU,GACV,OAAU,GACV,SAAY,GACZ,IAAO,GACP,KAAQ,GACR,UAAa,GACb,QAAW,GACX,WAAc,GACd,UAAa,GACb,OAAU,GACV,OAAU,GACV,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,IAAO,IACP,IAAO,IACP,IAAO,IACP,UAAa,IACb,KAAQ,IACR,MAAS,IACT,MAAS,IACT,IAAO,IACP,aAAgB,IAChB,YAAe,IACf,YAAe,IACf,UAAa,IACb,aAAgB,IAChB,YAAe,KAkBfgkW,GAAgC,SAAUx9S,GAQ1C,SAASw9S,EAAenvV,EAAS2J,GAC7B,IAAIxf,EAAQwnD,EAAOnnD,KAAKK,KAAM8e,EAAS3J,IAAYnV,KA8BnD,OAvBAV,EAAMilW,gBAAkB,SAAUlkW,GAM9B,IALA,IAAImkW,EAAWnkW,EAAEy3B,OACb2sU,EAAYpkW,EAAEu3B,QACd8sU,EAAarkW,EAAEw3B,SACf8sU,EAAatkW,EAAEg4B,MAEV/oB,EAAK,EAAGi9T,EADN9sU,OAAO8E,KAAKjF,EAAMslW,YACGt1V,EAAKi9T,EAAOnpU,OAAQkM,IAGhD,IAFA,IAAIhD,EAAMigU,EAAOj9T,GAERgmC,EAAK,EAAGuvT,EADMvlW,EAAMslW,WAAW,GAAKt4V,GAAKqmB,MAAM,KACA2iB,EAAKuvT,EAAmBzhW,OAAQkyC,IAAM,CAC1F,IAAIwvT,EAAUD,EAAmBvvT,GAC7ByvT,EAAUC,EAAiBC,iBAAiBH,EAAQryU,QACpD+xU,IAAaO,EAAQjtU,QAAU2sU,IAAcM,EAAQntU,SACrD8sU,IAAeK,EAAQltU,UAAY8sU,IAAeI,EAAQzkW,UAC1DD,EAAE60E,OAAS5oE,EACPhN,EAAM4lW,WACN5lW,EAAM4lW,UAAU7kW,GAG5B,CAER,EACAf,EAAMO,OACCP,CACX,CAmFA,IAAI0lW,EAcJ,OAxIA9+S,GAAUo+S,EAAgBx9S,GAwC1Bk+S,EAAmBV,EAMnBA,EAAe3zV,UAAUymI,QAAU,WAC/Bp3I,KAAKmlW,eACLr+S,EAAOn2C,UAAUymI,QAAQz3I,KAAKK,KAClC,EAUAskW,EAAe3zV,UAAU+7U,kBAAoB,SAAUiF,EAASC,GAC5D,EAEJ0S,EAAe3zV,UAAU9Q,KAAO,WAC5BG,KAAK+jW,YACT,EAOAO,EAAe3zV,UAAUo8U,cAAgB,WACrC,MAAO,UACX,EAOAuX,EAAe3zV,UAAUozV,WAAa,WAClC/jW,KAAKmV,QAAQmmB,iBAAiBt7B,KAAKu2B,UAAWv2B,KAAKukW,gBACvD,EAOAD,EAAe3zV,UAAUw0V,aAAe,WACpCnlW,KAAKmV,QAAQimB,oBAAoBp7B,KAAKu2B,UAAWv2B,KAAKukW,gBAC1D,EAOAD,EAAeW,iBAAmB,SAAU3qQ,GACxC,GAAIA,KAAUt6F,KAAKolW,YACf,OAAOplW,KAAKolW,YAAY,GAAK9qQ,GAEjC,IAAI/1F,EAAO+1F,EAAO55E,cAAciS,MAAM,KAClCq2L,EAAU,CACVlxL,QAAkC,IAAzBvzB,EAAKoG,QAAQ,OACtBitB,SAAoC,IAA1BrzB,EAAKoG,QAAQ,QACvBktB,UAAsC,IAA3BtzB,EAAKoG,QAAQ,SACxBrK,QAAS,MASb,OAPIiE,EAAKA,EAAKnB,OAAS,GAAGA,OAAS,GAAOyiB,OAAOthB,EAAKA,EAAKnB,OAAS,IAChE4lN,EAAQ1oN,QAAUulB,OAAOthB,EAAKA,EAAKnB,OAAS,IAG5C4lN,EAAQ1oN,QAAU0kW,EAAiBK,WAAW9gW,EAAKA,EAAKnB,OAAS,IAErE4hW,EAAiBI,YAAY,GAAK9qQ,GAAU0uH,EACrCA,CACX,EAEAs7I,EAAee,WAAa,SAAUC,GAClC,OAAOhlW,GAAQ,GAAKglW,IAAWA,EAAOvjV,cAAc8W,WAAW,EACnE,EAEAyrU,EAAec,YAAc,CAAC,EAC9BrV,GAAW,CACPjB,GAAS,CAAC,IACXwV,EAAe3zV,UAAW,kBAAc,GAC3Co/U,GAAW,CACPjB,GAAS,UACVwV,EAAe3zV,UAAW,iBAAa,GAC1Co/U,GAAW,CACP94T,MACDqtU,EAAe3zV,UAAW,iBAAa,GAC1C2zV,EAAiBU,EAAmBjV,GAAW,CAC3CT,IACDgV,EAEP,CA1IoC,CA0IlCnZ,ICnMEoa,GAAsB,WAQtB,SAASA,EAAKC,EAAaC,EAAe1lW,GACtCC,KAAKwlW,YAAcA,EACnBxlW,KAAKylW,cAAgBA,EACrBzlW,KAAK0lW,UAAU3lW,GAAUi/U,GAC7B,CAiDA,OA1CAumB,EAAK50V,UAAU+0V,UAAY,SAAU3lW,GACjC,IAAI4lW,EAAY3lW,KAAK4lW,sBAAsBL,EAAKxlW,OAAQA,GACxDC,KAAK6lW,cAAgBF,GAAa3lW,KAAKylW,aAC3C,EAOAF,EAAK90Q,KAAO,SAAUq1Q,GAClB9lW,KAAKD,OAAS0pF,GAAOzpF,KAAKD,OAAQ+lW,EAAc,CAAC,GAAG,EACxD,EAOAP,EAAK50V,UAAUo1V,YAAc,SAAUphW,GAEnC,OAAKonU,GAAkB/rU,KAAK6lW,cAAc,GAAKlhW,IAIpC3E,KAAKylW,cAAc,GAAK9gW,IAAS,GAHjC3E,KAAK6lW,cAAc,GAAKlhW,EAKvC,EAQA4gW,EAAK50V,UAAUi1V,sBAAwB,SAAUrpB,EAAWx8U,GACxD,OAAKw8U,EAAW,GAAKx8U,GACTw8U,EAAW,GAAKx8U,GAAQC,KAAKwlW,aAElC,IACX,EACAD,EAAKxlW,OAAS,CAAC,EACRwlW,CACX,CA9D0B,GCzBtBr/S,GAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAazC2pS,GAA0C,SAAUxoJ,EAAYl/L,EAAQiE,EAAKkkB,GAC7E,IAA2HhvB,EAAvH6e,EAAIld,UAAUC,OAAQkgH,EAAIjjG,EAAI,EAAIhY,EAAkB,OAATmoB,EAAgBA,EAAO/wB,OAAOk+B,yBAAyBt1B,EAAQiE,GAAOkkB,EACrH,GAAuB,kBAAZuN,SAAoD,oBAArBA,QAAQiyT,SAAyB1sO,EAAIvlF,QAAQiyT,SAASzoJ,EAAYl/L,EAAQiE,EAAKkkB,QACpH,IAAK,IAAIrkB,EAAIo7L,EAAWnkM,OAAS,EAAG+I,GAAK,EAAGA,KAAS3K,EAAI+lM,EAAWp7L,MAAIm3G,GAAKjjG,EAAI,EAAI7e,EAAE8hH,GAAKjjG,EAAI,EAAI7e,EAAE6G,EAAQiE,EAAKg3G,GAAK9hH,EAAE6G,EAAQiE,KAASg3G,GAChJ,OAAOjjG,EAAI,GAAKijG,GAAK7jH,OAAO4c,eAAehU,EAAQiE,EAAKg3G,GAAIA,CAChE,EAUI0iP,GAA+B,SAAUl/S,GAEzC,SAASk/S,IACL,OAAkB,OAAXl/S,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAIA,OAPAkmD,GAAU8/S,EAAel/S,GAIzBipS,GAAW,CACPjB,GAAS,KACVkX,EAAcr1V,UAAW,8BAA0B,GAC/Cq1V,CACX,CATmC,CASjC7R,IAEE8R,GAAa,YAsBbC,GAAuB,SAAUp/S,GAGjC,SAASo/S,EAAM/wV,EAAS2J,GACpB,IAAIxf,EAAQwnD,EAAOnnD,KAAKK,KAAM8e,EAAS3J,IAAYnV,KA6InD,OA5IAV,EAAM6mW,aAAc,EACpB7mW,EAAM8mW,SAAW,EAMjB9mW,EAAM+mW,WAAa,SAAU/1E,GACzB,IAA0B,IAAtBhxR,EAAM6mW,YAAsB,CAC5B,IAAIG,EAAQhnW,EAAMinW,oBAAoBj2E,QACXjtR,IAAvBitR,EAAI/mI,iBACJjqJ,EAAM6mW,aAAc,GAExB7mW,EAAMknW,cAAe,EACrBlnW,EAAMmnW,eAAiB,GACvBnnW,EAAMonW,WAAapnW,EAAMqnW,eAAiB,CAAEttU,QAASitU,EAAMjtU,QAASC,QAASgtU,EAAMhtU,SACnFh6B,EAAMsnW,eAAiBN,EACvBhnW,EAAMunW,cAAgBvnW,EAAMwnW,eAAgB,EAC5CxnW,EAAMynW,YAActlW,KAAK0jE,MACzB7lE,EAAM0nW,eAAiB5wU,YAAW,WAAc92B,EAAM2nW,aAAa32E,EAAM,GAAGhxR,EAAMs9V,kBAClF/jH,GAAazlN,IAAI9zB,EAAM6V,QAAS8xU,GAAQyB,eAAgBppV,EAAM4nW,UAAW5nW,GACzEu5O,GAAazlN,IAAI9zB,EAAM6V,QAAS8xU,GAAQ0B,cAAerpV,EAAM6nW,SAAU7nW,GACvEu5O,GAAazlN,IAAI9zB,EAAM6V,QAAS8xU,GAAQ2B,iBAAkBtpV,EAAMuI,YAAavI,EACjF,CACJ,EAMAA,EAAM4nW,UAAY,SAAU52E,GACxB,IAAIg2E,EAAQhnW,EAAMinW,oBAAoBj2E,GACtChxR,EAAM8nW,WAAad,EACnBhnW,EAAMknW,eAAiBF,EAAMjtU,UAAY/5B,EAAMonW,WAAWrtU,SAAWitU,EAAMhtU,UAAYh6B,EAAMonW,WAAWptU,SACxG,IAAI+tU,EAAc,CAAC,EACf/nW,EAAMknW,eACNnwU,aAAa/2B,EAAM0nW,gBACnB1nW,EAAMgoW,iBAAiBh3E,GAQvB+2E,EAAc59Q,GAAO49Q,EAAa,CAAC,EAPnB,CACZE,YAAajoW,EAAMsnW,eACnBY,cAAel3E,EAAKm3E,OAAQnoW,EAAMonW,WAAWrtU,QAC7CquU,OAAQpoW,EAAMonW,WAAWptU,QAASquU,UAAWroW,EAAMqoW,UACnDC,UAAWtoW,EAAMsoW,UAAWC,gBAAiBvoW,EAAMuoW,gBACnDC,SAAUxoW,EAAMyoW,YAAYzB,KAGhChnW,EAAMghS,QAAQ,SAAU+mE,GACxB/nW,EAAMqnW,eAAiB,CAAEttU,QAASitU,EAAMjtU,QAASC,QAASgtU,EAAMhtU,SAExE,EAMAh6B,EAAMuI,YAAc,SAAUyoR,GAC1Bj6P,aAAa/2B,EAAM0nW,gBACnB3wU,aAAa/2B,EAAM0oW,YACnB1oW,EAAM8mW,SAAW,EACjB9mW,EAAM2oW,QAAQ33E,GACdz3C,GAAa1lN,OAAO7zB,EAAM6V,QAAS8xU,GAAQ2B,iBAAkBtpV,EAAMuI,YACvE,EAMAvI,EAAM6nW,SAAW,SAAU72E,GACvBhxR,EAAM2oW,QAAQ33E,GACThxR,EAAMknW,cACkB,oBAAdlnW,EAAMopF,MACbppF,EAAMghS,QAAQ,MAAO,CAAEknE,cAAel3E,EAAK81E,WAAY9mW,EAAM8mW,WAC7D9mW,EAAM0oW,WAAa5xU,YAAW,WAC1B92B,EAAM8mW,SAAW,CACrB,GAAG9mW,EAAM4oW,eAGjB5oW,EAAM6oW,WACV,EAMA7oW,EAAM2oW,QAAU,SAAU33E,GACtBj6P,aAAa/2B,EAAM0nW,gBACnB3wU,aAAa/2B,EAAM0oW,YACnB,IAAI1B,EAAQhnW,EAAMinW,oBAAoBj2E,GAClCsrE,EAAQ0K,EAAMjtU,QAAU/5B,EAAMonW,WAAWrtU,QACzC8iU,EAAQmK,EAAMhtU,QAAUh6B,EAAMonW,WAAWptU,QAC7CsiU,EAAQh4V,KAAKiG,MAAM+xV,EAAQ,GAAK,EAAIA,EAAQA,GAC5CO,EAAQv4V,KAAKiG,MAAMsyV,EAAQ,GAAK,EAAIA,EAAQP,GAC5Ct8V,EAAMknW,aAAe5K,EAAQ,GAAKO,EAAQ,EACzB,UAAWhzU,KAAK89T,GAAQ/uG,YACN,IAAlBouH,EAAMjtU,SAAmC,IAAlBitU,EAAMhtU,SAA8B,YAAbg3P,EAAI1jR,OAC/DtN,EAAMknW,cAAe,GAEzBlnW,EAAM8oW,SAAW9B,EACjBhnW,EAAM+oW,WAAW/3E,GACjB,IAAIg4E,EAAY,CACZd,cAAel3E,EACfi3E,YAAajoW,EAAMsnW,eACnBa,OAAQnoW,EAAMonW,WAAWrtU,QACzBquU,OAAQpoW,EAAMonW,WAAWptU,QACzBquU,UAAWroW,EAAMqoW,UAAWC,UAAWtoW,EAAMsoW,UAAWW,eAAgBjpW,EAAMmnW,eAC9EqB,SAAUxoW,EAAMyoW,YAAYzB,IAEhC,GAAIhnW,EAAMknW,aAAc,CACpB,IAAIgC,OAAa,EACbC,EAAYnpW,EAAMopW,cAAcC,uBAEpCH,EAAa/+Q,GAAO++Q,EAAYlpW,EAAMspW,YAAaN,GACnD,IAAIO,GAAa,EACblf,EAAMrqV,EAAM6V,QACZ2zV,EAAaxpW,EAAMypW,aAAapf,GAChCqf,EAAQ/C,GAAW98U,KAAK7pB,EAAMmnW,iBAC7BgC,EAAYnpW,EAAMqoW,YAAcqB,GAAWP,EAAYnpW,EAAMsoW,WAAaoB,KAKvEH,GAJCC,GAIYxpW,EAAM2pW,WAAWtf,EAAKqf,IAGvCH,GACAvpW,EAAMghS,QAAQ,QAASkoE,EAE/B,CACAlpW,EAAM6oW,WACV,EACA7oW,EAAM6oW,UAAY,WACd7oW,EAAM4pW,UAAY9yU,YAAW,WACzB92B,EAAM6mW,aAAc,CACxB,GAAyB,oBAAd7mW,EAAMopF,IAAqB,EAAI,IAC1CppF,EAAM6pW,aAAc,IAAI1nW,MAAOC,UAC/Bm3O,GAAa1lN,OAAO7zB,EAAM6V,QAAS8xU,GAAQyB,eAAgBppV,EAAM4nW,WACjEruH,GAAa1lN,OAAO7zB,EAAM6V,QAAS8xU,GAAQ0B,cAAerpV,EAAM6nW,UAChEtuH,GAAa1lN,OAAO7zB,EAAM6V,QAAS8xU,GAAQ2B,iBAAkBtpV,EAAMuI,YACvE,EACAvI,EAAMO,OACCP,CACX,CAmJA,OApSA4mD,GAAUggT,EAAOp/S,GA2JjBo/S,EAAMv1V,UAAU+7U,kBAAoB,SAAUiF,EAASC,GACnD,EAEJsU,EAAMv1V,UAAU9Q,KAAO,WACnBG,KAAK+jW,aACD9c,GAAQh0D,MACRjzR,KAAKmV,QAAQ+yQ,UAAU90P,IAAI,gBAEnC,EAMA8yU,EAAMv1V,UAAUymI,QAAU,WACtBp3I,KAAKmlW,eACLr+S,EAAOn2C,UAAUymI,QAAQz3I,KAAKK,KAClC,EAEAkmW,EAAMv1V,UAAUozV,WAAa,WACzBlrH,GAAazlN,IAAIpzB,KAAKmV,QAAS8xU,GAAQwB,gBAAiBzoV,KAAKqmW,WAAYrmW,KAC7E,EACAkmW,EAAMv1V,UAAUw0V,aAAe,WAC3BtsH,GAAa1lN,OAAOnzB,KAAKmV,QAAS8xU,GAAQwB,gBAAiBzoV,KAAKqmW,WACpE,EAOAH,EAAMv1V,UAAUo8U,cAAgB,WAC5B,MAAO,OACX,EAOAmZ,EAAMv1V,UAAUo4V,aAAe,SAAU5zV,GACrC,IAAIi0V,EAAW52E,iBAAiBr9Q,GAC5BhP,EAAQijW,EAAS3wQ,SAAW2wQ,EAASz2E,UAAYy2E,EAASx2E,UAC9D,QAAK,gBAAiBzpQ,KAAKhjB,EAI/B,EAMA+/V,EAAMv1V,UAAUs2V,aAAe,SAAU32E,GAGrC,IAAI+4E,EAFJrpW,KAAKomW,SAAW,EAChBpmW,KAAKmmW,aAAc,EAEnBttH,GAAa1lN,OAAOnzB,KAAKmV,QAAS8xU,GAAQyB,eAAgB1oV,KAAKknW,WAC/DruH,GAAa1lN,OAAOnzB,KAAKmV,QAAS8xU,GAAQ0B,cAAe3oV,KAAKmnW,UAE9DkC,EAAW,CAAE7B,cAAel3E,GAC5BtwR,KAAKsgS,QAAQ,UAAW+oE,GACxBxwH,GAAa1lN,OAAOnzB,KAAKmV,QAAS8xU,GAAQ2B,iBAAkB5oV,KAAK6H,YACrE,EACAq+V,EAAMv1V,UAAU03V,WAAa,SAAU/3E,GACnC,IAAIg2E,EAAQtmW,KAAKumW,oBAAoBj2E,GACrCtwR,KAAK4oW,YAAc,CAAEpB,cAAel3E,GACpCtwR,KAAK2nW,UAAY/jW,KAAK8Y,IAAK9Y,KAAK8Y,IAAI4pV,EAAMjtU,SAAWz1B,KAAK8Y,IAAI1c,KAAK0mW,WAAWrtU,UAC9Er5B,KAAK4nW,UAAYhkW,KAAK8Y,IAAK9Y,KAAK8Y,IAAI4pV,EAAMhtU,SAAW11B,KAAK8Y,IAAI1c,KAAK0mW,WAAWptU,UAC1Et5B,KAAK2nW,UAAY3nW,KAAK4nW,UACtB5nW,KAAKymW,eAAkBH,EAAMjtU,QAAUr5B,KAAK0mW,WAAWrtU,QAAW,QAAU,OAG5Er5B,KAAKymW,eAAkBH,EAAMhtU,QAAUt5B,KAAK0mW,WAAWptU,QAAW,KAAO,MAEjF,EACA4sU,EAAMv1V,UAAU22V,iBAAmB,SAAUh3E,GACzC,IAAIg2E,EAAQtmW,KAAKumW,oBAAoBj2E,GACrCtwR,KAAK4oW,YAAc,CAAEpB,cAAel3E,GACpCtwR,KAAK2nW,UAAY/jW,KAAK8Y,IAAK9Y,KAAK8Y,IAAI4pV,EAAMjtU,SAAWz1B,KAAK8Y,IAAI1c,KAAK2mW,eAAettU,UAClFr5B,KAAK4nW,UAAYhkW,KAAK8Y,IAAK9Y,KAAK8Y,IAAI4pV,EAAMhtU,SAAW11B,KAAK8Y,IAAI1c,KAAK2mW,eAAertU,WAC7Et5B,KAAK2nW,UAAY3nW,KAAK4nW,YAAoC,IAAvB5nW,KAAK6mW,iBAAkD,IAAvB7mW,KAAK8mW,eACzE9mW,KAAK6nW,gBAAmBvB,EAAMjtU,QAAUr5B,KAAK2mW,eAAettU,QAAW,QAAU,OACjFr5B,KAAK6mW,eAAgB,IAGrB7mW,KAAK6nW,gBAAmBvB,EAAMhtU,QAAUt5B,KAAK2mW,eAAertU,QAAW,KAAO,OAC9Et5B,KAAK8mW,eAAgB,EAE7B,EACAZ,EAAMv1V,UAAUo3V,YAAc,SAAUuB,GACpC,IAAIC,EAAOD,EAAIjwU,QACXmwU,EAAOF,EAAIhwU,QACXmwU,EAAOhoW,KAAK0jE,MACZukS,EAAQH,EAAOvpW,KAAK0mW,WAAWrtU,QAC/BswU,EAAQH,EAAOxpW,KAAK0mW,WAAWrtU,QAC/Bm0S,EAAWi8B,EAAOzpW,KAAK+mW,YAC3B,OAAOnjW,KAAK0kS,KAAKohE,EAAQA,EAAQC,EAAQA,GAASn8B,CACtD,EAEA04B,EAAMv1V,UAAUs4V,WAAa,SAAUtf,EAAK5P,GACxC,IAAIx1U,EAAO,CAAC,SAAU,UAClBmoF,EAAOqtP,EAAO,CAAC,SAAU,OAAS,CAAC,QAAS,QAChD,OAAK4P,EAAIplV,EAAK,GAAKmoF,EAAK,KAAOi9P,EAAIplV,EAAK,GAAKmoF,EAAK,MAGf,IAA3Bi9P,EAAIplV,EAAK,GAAKmoF,EAAK,KACtBi9P,EAAIplV,EAAK,GAAKmoF,EAAK,IAAMi9P,EAAIplV,EAAK,GAAKmoF,EAAK,KAAOi9P,EAAIplV,EAAK,GAAKmoF,EAAK,IAC/E,EACAw5Q,EAAMv1V,UAAU41V,oBAAsB,SAAUj2E,GAE5C,OADYA,EAAI/mI,gBAAgD,IAA9B+mI,EAAI/mI,eAAenmJ,OAAektR,EAAI/mI,eAAe,GAAK+mI,CAEhG,EACAy/D,GAAW,CACP94T,MACDivU,EAAMv1V,UAAW,WAAO,GAC3Bo/U,GAAW,CACP94T,MACDivU,EAAMv1V,UAAW,eAAW,GAC/Bo/U,GAAW,CACP94T,MACDivU,EAAMv1V,UAAW,aAAS,GAC7Bo/U,GAAW,CACP94T,MACDivU,EAAMv1V,UAAW,cAAU,GAC9Bo/U,GAAW,CACPjB,GAAS,MACVoX,EAAMv1V,UAAW,oBAAgB,GACpCo/U,GAAW,CACPjB,GAAS,MACVoX,EAAMv1V,UAAW,wBAAoB,GACxCo/U,GAAW,CACPd,GAAQ,CAAC,EAAG+W,KACbE,EAAMv1V,UAAW,qBAAiB,GACrCu1V,EAAQnW,GAAW,CACfT,IACD4W,EAEP,CAtS2B,CAsSzB/a,IChWEye,GAAQ,IAAIjzV,OAAO,kBAAmB,KACtCkzV,GAAS,IAAIlzV,OAAO,QACpBmzV,GAAU,IAAInzV,OAAO,WACrBozV,GAAc,IAAIpzV,OAAO,gBACzBqzV,GAAY,IAAIrzV,OAAO,QACvBszV,GAAW,IAAItzV,OAAO,YACtBuzV,GAAY,IAAIvzV,OAAO,cACvBwzV,GAAgB,IAAIxzV,OAAO,aAAc,IACzCyzV,GAAa,IAAIzzV,OAAO,WAAY,KACpC0zV,GAAO,IAAI1zV,OAAO,iBAAkB,KACpC2zV,GAAiB,IAAI3zV,OAAO,UAAW,KACvC4zV,GAAS,IAAI5zV,OAAO,qBAAsB,KAC1C6zV,GAAM,IAAI7zV,OAAO,eAAgB,KAEjC8zV,GAAU,UACVC,GAAe,OACfC,GAAe,SACfC,GAAW,IAAIj0V,OAAO,oBAAqB,KAC3Ck0V,GAAa,cAuCV,SAASC,GAAQvnU,EAAUg9T,EAAQwK,GACtC,IAAIC,EAAU,OACVC,EAeR,SAAiBt9T,EAAKi+R,EAAW20B,EAAQwK,GACrC,IAAIG,EAAW,EAIXC,EAAY,GACZC,EAAUz9T,EAAIx2B,MAAM,yBACpBk0V,EAAc,GACdD,GACAA,EAAQ/kW,SAAQ,SAAUzE,GACtBypW,EAAczpW,EAAMyO,QAAQ,SAAU,KACtCs9B,EAAMA,EAAIt9B,QAAQzO,EAAOypW,EAC7B,IAEJ,OAAO19T,EAAIt9B,QAAQu5V,GAAO,IAAIv5V,QAAQi6V,GAAgB,QAAUj6V,QAAQm6V,IAExE,SAAUrzV,EAAOm0V,EAAK5tV,EAAQ6tV,GAC1B,IAAIC,EAAe,WACf/2U,EAAU62U,EAAIn0V,MAAMgzV,IAExB,GAAI11U,EAAS,CACT,IAAIg3U,EAAQh3U,EAAQ,GACpB,GAAIs1U,GAAY5gV,KAAKmiV,GAEjBA,EAAM,OAASA,EAAIj7V,QAAQokB,EAAQ,GAAIg3U,EAAMp7V,QAAQg6V,IAAM,SAAU18T,GAEjE,OAAO+9T,GADP/9T,EAAMA,EAAIlb,QACiBo3U,GAAO1gV,KAAKwkB,KAAsC,IAA5Bw9T,EAAUxgW,QAAQgjC,GAAci+R,EAAWu/B,EAAWJ,EAC3G,KAAM,0BAEL,GAAIjB,GAAQ3gV,KAAKmiV,GAElBA,EAAM,MAAQA,EAAIj7V,QAAQokB,EAAQ,GAAIg3U,EAAMp7V,QAAQk6V,IAAQ,SAAUoB,GAClE,OAAOC,GAAwBD,EAAM//B,EAAWu/B,EAAWJ,EAC/D,KAAM,0BAEL,GAAId,GAAS9gV,KAAKmiV,GAAM,CAEzB,IAAIO,EAAUp3U,EAAQ,GAAG9B,MAAM,QAG/B24U,EAAM,MAAQA,EAAIj7V,QAAQokB,EAAQ,IAAI,SAAUq3U,GAK5C,OAJAX,EAAU/+V,KAAKy/V,EAAQ,IACvBV,EAAU/+V,KAAKy/V,EAAQ,GAAK,SAGrB,SAFPX,GAAsB,GAEM,QAAUA,EAAW,MAAQQ,GAAaG,EAAQ,IAAI,EAAMjgC,EAAWu/B,EAAWJ,GAAgB,aAAeG,EAAW,IAC5J,IAAK,QAAUW,EAAQ,GAAK,KAAOH,GAAaG,EAAQ,IAAI,EAAMjgC,EAAWu/B,EAAWJ,GAClF,KAAOG,EAAW,aAAeW,EAAQ,GAAK,UAAYX,EAAW,oBAC/E,KACK,CAED,IAAIa,EAAQT,EAAI34U,MAAM,KAElBq5U,EAAczL,GAAUA,EAAOzvV,eAAei7V,EAAM,IAAM,QAAU,SACxEC,EAAc,KAAK7iV,KAAK4iV,EAAM,IAAM,GAAKC,EACzC,IAAIC,EAAUx3U,EAAQ,GAAG9B,MAAM,KACL,IAAtB8B,EAAQ,GAAGrxB,QAAkB,OAAQ+lB,KAAK8iV,EAAQ,KAAS,UAAW9iV,KAAK8iV,EAAQ,MACnFx3U,EAAQ,GAAqB,WAAfu3U,EAA0BpgC,EAAY,IAAMn3S,EAAQ,GAAKA,EAAQ,IAEnF,IAAIy3U,EAAY,WACZC,EAAS,SACb,GAAItB,GAAW1hV,KAAKmiV,IAAQa,EAAOhjV,KAAKmiV,IAAQY,EAAU/iV,KAAKmiV,GACxC,gBACFniV,KAAKmiV,KAElBA,EAAM,OAAwB,WAAfU,EAA0B,GAAKA,GAAcV,EAAIj7V,QAAQokB,EAAQ,GAAIg3U,EAAMp7V,QAAQu6V,IAAU,SAAUe,GAClH,OAAOC,GAAwBD,EAAM//B,EAAWu/B,EAAWJ,EAC/D,KAAM,YAIVO,EAAM,QAAyB,WAAfU,EAA0B,GAAKA,GAC3CV,EAAIj7V,QAAQo7V,EAAOC,GAAaj3U,EAAQ,GAAGpkB,QAAQ,iBAAkB,IAAMu7T,EAAY,KAAKv7T,QAAQ,qBAAsB,WAA4B,WAAf27V,EAAyCpgC,EAAWu/B,EAAWJ,IACtM,IAEZ,CACJ,MACSf,GAAU7gV,KAAKmiV,GAEpBA,EAAM,MAAQA,EAAIj7V,QAAQ25V,GAAW,6BAG9BsB,EAAIn0V,MAAM+yV,IAEjBoB,EAAMA,EAAIj7V,QAAQ65V,GAAW,4BAExBsB,EAAariV,KAAKmiV,IAEnBA,EAAIn0V,MAAMuzV,MACVY,EAAMc,GAAad,IAEvBA,EAAM,KAAOe,GAAwBf,GAAkC,IAA5BH,EAAUxgW,QAAQ2gW,GAAc1/B,EAAWu/B,GAAa,QAM/FG,EAFAA,EAAIn0V,MAAMuzV,IAEJ,KAAO2B,GADbf,EAAMc,GAAad,IACoD,IAA5BH,EAAUxgW,QAAQ2gW,GAAc1/B,EAAWu/B,GAAa,OAIrF,KAARG,EAAa,KAAOI,GAAaJ,EAAIj7V,QAAQ,MAAO,IAAMu7T,EAAY,MAAmC,IAA5Bu/B,EAAUxgW,QAAQ2gW,GAAc1/B,EAAWu/B,EAAWJ,GAAgB,KAAO,IAGxK,OAAOO,CACX,GACJ,CAzHwBgB,CAAQ/oU,EAAUynU,EAASzK,EAAQwK,GAKvD,OADS,IAAI7jU,SAAS8jU,EADT,YAAeC,EAAf,g3CAEHprW,KAAK0gW,EACnB,CA6HA,SAASmL,GAAa/9T,EAAK4+T,EAAO3gC,EAAWovB,EAAY+P,GACrD,OAASwB,GAAWnC,GAAWjhV,KAAKwkB,KAAoD,IAA3CqtT,EAAWrwV,QAAQgjC,EAAIhb,MAAM,KAAK,KAAeo4U,GAAwB,SAARp9T,GAA0B,UAARA,EAA2CA,EAAxBi+R,EAAY,IAAMj+R,CACzK,CA0BA,SAAS0+T,GAAwB1+T,EAAK4+T,EAAO3gC,EAAWovB,GACpD,OAASuR,IAAWnC,GAAWjhV,KAAKwkB,KAAoD,IAA3CqtT,EAAWrwV,QAAQgjC,EAAIhb,MAAM,KAAK,IAAci5S,EAAY,KAAOj+R,EAAMA,CAC1H,CAEA,SAASy+T,GAAaI,GASlB,OAPIA,EAAQr1V,MAAMwzV,MAKd6B,EAAUA,EAAQn8V,QAAQq6V,GANjB,SAQN8B,CACX,CASA,SAASZ,GAAwBj+T,EAAK8+T,EAAcloW,EAAMwmW,GACtDp9T,EAAMA,EAAIlb,OAEV,GADiB,cACDtJ,KAAKwkB,GAcjB,OAAOA,EAbP,IAAI++T,EAAS,QAKb,MAJgB,WACFvjV,KAAKwkB,KACfA,EAAM0+T,GAAwB1+T,GAA6B,IAAvBppC,EAAKoG,QAAQgjC,GAAc8+T,EAAcloW,GAAQ,MAErFkmW,GAAQthV,KAAKwkB,GAjDzB,SAAyBA,EAAK4+T,EAAO3gC,EAAWovB,GAE5C,OAASuR,GAAWnC,GAAWjhV,KAAKwkB,KACW,IAA3CqtT,EAAWrwV,QAAQgjC,EAAIhb,MAAM,KAAK,KAFtB,UAEgDxJ,KAAKwkB,GAAiCA,EAAxBi+R,EAAY,IAAMj+R,CACpG,CA8CmBg/T,CAAgBh/T,GAAO++T,EAAOvjV,KAAKwkB,KAAiC,IAAvBppC,EAAKoG,QAAQgjC,GAAc8+T,EAAcloW,GAGtFmnW,GAAa/9T,GAAO++T,EAAOvjV,KAAKwkB,KAAiC,IAAvBppC,EAAKoG,QAAQgjC,GAAc8+T,EAAcloW,EAAMwmW,EAM5G,CCjQA,IAAI6B,GAAU,oBACVC,GAAU,2BACHC,GAAkB,CAAC,EAKvB,SAASC,KACZ,MAAO,IAAMnpW,KAAKk2B,SAAShjB,SAAS,IAAIqhC,OAAO,EAAG,EACtD,CAWO,SAAS2yT,GAAQkC,EAAgBzM,EAAQwK,GAC5C,IAAIkC,EAAWC,GAAUpC,QAAQkC,EAAgBzM,EAAQwK,GAEzD,OAAO,SAAU7gU,EAAM0gP,EAAWlgJ,EAAUyiO,EAAYjV,EAAkBzrU,EAAOtX,EAASotB,GACtF,IAAI1X,EAASoiV,EAAS/iU,EAAM0gP,EAAWlgJ,EAAUv1H,EAASotB,GACtD6qU,EAAmB,mBACvB,GAAItgC,OAAeorB,EAAkB,CACjC,IACImV,EAAWF,EADAJ,KAKf,GAHKD,GAAgB,GAAKK,KACtBL,GAAgB,GAAKK,GAAc,IAElCphC,GAAkBt/S,GAanByd,EAAK,GAAKkjU,GAAoBC,EAC9BP,GAAgB,GAAKK,GAAY/gW,KAAK89B,QAZtC,IADA,IACS56B,EAAK,EAAGi9T,EADN9sU,OAAO8E,KAAKuoW,GAAgB,GAAKK,GAAY5gV,SAASE,EAAM3V,WAAY,MACnDxH,EAAKi9T,EAAOnpU,OAAQkM,IAAM,CACtD,IAAIhD,EAAMigU,EAAOj9T,GACbhD,IAAQ8gW,GAAoBljU,EAAK,GAAK59B,KACtCwgW,GAAgB,GAAKK,GAAY5gV,SAASE,EAAM3V,WAAY,KAAK,GAAKxK,GAAO49B,EAAK,GAAK59B,IAEvFA,IAAQ8gW,IACRC,EAAWP,GAAgB,GAAKK,GAAY5gV,SAASE,EAAM3V,WAAY,KAAK,GAAKxK,GAEzF,CAOJ,MAAoB,gBAAbo+H,EAA6B,CAAC5pI,GAAc,KAAM,CAAEq1B,GAAIk3U,EAAUtsW,UAAW,uBAEhF,CAACD,GAAc,MAAO,CAAEq1B,GAAIk3U,EAAUtsW,UAAW,sBACzD,CACA,MAAsB,kBAAX8pB,EACHgiV,GAAQ1jV,KAAK0B,GACH/pB,GAAc,MAAO,CAAEooC,UAAWre,IACjCse,WAGDroC,GAAe8rW,GAAQzjV,KAAK0B,GAAU,QAAU,MAAQ,CAAEqe,UAAWre,IACpEse,WAIRte,CAEf,CACJ,CAUO,SAASyiV,GAAqBH,EAAY3S,EAAcryB,EAAMr9O,EAASyiR,GAC1E,GAAIzgC,KAAY,CAEZ97S,OAAqB,SAAEw8U,eAAehT,EAAcsS,GAAgB,GAAKK,GAAaA,EAAYhlC,EAAMolC,IACxF,IAAZziR,IACAgiR,GAAgB,GAAKK,GAAc,GAE3C,CACJ,CAQO,SAASM,GAAoBN,EAAY3S,EAAc/tU,GAC1D,IAAIihV,EAAcx8U,SAASg8T,eAAeigB,GAC1C,GAAIO,EAGA,IADA,IAAIC,EAAiBD,EAAY5a,uBAAuB,yBAC/C3mV,EAAI,EAAGA,EAAIwhW,EAAevqW,OAAQ+I,IAAK,CAC5C,IAAIyhW,EAAS,IAKTA,EAJC7hC,GAAkBt/S,GAIVkhV,EAAephV,SAASpgB,EAAE2K,WAAY,KAAKwb,aAAa,mBAHxDq7U,EAAephV,SAASE,EAAM3V,WAAY,KAAKwb,aAAa,mBAKzE,IAAIu7U,EAAc38U,SAASg8T,eAAe0gB,GAC1C,GAAIC,EAEA,IADA,IAAI9sD,EAAW8sD,EAAY1kU,WAAW/lC,OAC7B4M,EAAI,EAAGA,EAAI+wS,EAAU/wS,IACrB+7T,GAAkBt/S,GAKnBkhV,EAAephV,SAASpgB,EAAE2K,WAAY,KAAK4a,YAAYm8U,EAAY1kU,WAAW,KAJ9EwkU,EAAephV,SAASE,EAAM3V,WAAY,KAAK4a,YAAYm8U,EAAY1kU,WAAW,IAClFh9B,EAAIwhW,EAAevqW,OAOnC,CAER,CAqBA,ICnHW0qW,GAsBAC,GDuGPb,GAAY,CAAEpC,SAAS,IAVC,WACxB,SAASkD,IACT,CAMA,OAJAA,EAAOr9V,UAAUm6V,QAAU,SAAUkC,EAAgBzM,EAAQwK,GAEzD,YADe,IAAXxK,IAAqBA,EAAS,CAAC,GAC5BnmV,GAAO4yV,EAAgBzM,EAClC,EACOyN,CACX,CAT4B,KAUYlD,SE1JpCmD,GAAa,CACb,SACA,QACA,cACA,4BACA,kCACA,wCACA,oCACA,uBACA,0BACA,0BACA,2CAEAC,GAAc,CACd,CAAEjtU,UAAW,OAAQ1wB,SAAU,yBAC/B,CAAE0wB,UAAW,aAAc1wB,SAAU,+BACrC,CAAE0wB,UAAW,QAAS1wB,SAAU,0BAChC,CAAE0wB,UAAW,QAAS1wB,SAAU,0BAChC,CAAE0wB,UAAW,OAAQ1wB,SAAU,qCAE/B49V,GAAW,CAAC,WACZ,UACA,cACA,aACA,YACA,SACA,UACA,SACA,UACA,eACA,iBACA,UACA,WACA,eACA,iBACA,gBACA,YACA,mBACA,gBACA,aACA,SACA,YACA,cACA,cACA,aACA,cACA,SACA,mBACA,YACA,UACA,eACA,cACA,cACA,UACA,YACA,aACA,eACA,mBACA,cACA,YACA,cACA,cACA,YACA,eACA,YACA,SACA,WACA,aACA,aACA,UACA,SACA,YACA,aACA,aACA,eACA,qBACA,SACA,WACA,WACA,WACA,YACA,WACA,YACA,YACA,YACA,eACA,SACA,WACA,iBACA,YACA,eACA,eACA,UACA,mBACA,SACA,WACA,eACA,gBACA,iBACA,iBACA,qBACA,gBACA,eACA,cACA,iBAEAC,GAAoC,WACpC,SAASA,IACT,CA0EA,OAzEAA,EAAmBC,eAAiB,WAChC,MAAO,CACH55O,UAAW,CACPi4C,KAAMuhM,GACN3iW,WAAY4iW,IAGxB,EACAE,EAAmBxiU,SAAW,SAAUhqC,GACpC,IAAI2zB,EAAOv1B,KAAKquW,iBAEhB,OADaruW,KAAKsuW,eAAe/4U,EAAM3zB,EAE3C,EACAwsW,EAAmBE,eAAiB,SAAU/4U,EAAM3zB,GAChD5B,KAAKkuW,YAAc34U,EAAKk/F,UAAUnpH,WAClCtL,KAAKiuW,WAAa14U,EAAKk/F,UAAUi4C,KACjC1sK,KAAKuuW,YAAcr9U,SAASpwB,cAAc,OAC1Cd,KAAKuuW,YAAYrlU,UAAYtnC,EAC7B5B,KAAKwuW,gBACLxuW,KAAKyuW,iBACLzuW,KAAK0uW,iBACL,IAAIC,EAAe3uW,KAAKuuW,YAAYrlU,UAEpC,OADAlpC,KAAKsrD,gBACEqjT,EAAat+V,QAAQ,QAAS,IACzC,EACA+9V,EAAmB9iT,cAAgB,WAG/B,IADA,IAAIh6B,EAAQtxB,KAAKuuW,YAAYzoW,SACpBkK,EAAI,EAAGA,EAAIshB,EAAMluB,OAAQ4M,IAE9B,IADA,IAAIixB,EAAY3P,EAAM/E,SAASvc,EAAE8G,WAAY,KAAKxL,WACzCa,EAAI,EAAGA,EAAI80B,EAAU79B,OAAQ+I,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WAAY,QAC/BvhU,GAACihU,GAAkBO,eAAgB,QACnCxhU,GAACihU,GAAkBQ,aAAc,QACjCzhU,GAACihU,GAAkBS,KAAM,QACzB1hU,GAACihU,GAAkBU,iBAAkB,QACrC3hU,GAACihU,GAAkBW,UAAW,QAC9B5hU,GAACihU,GAAkBY,aAAc,QACjC7hU,GAACihU,GAAkBa,cAAe,QAClC9hU,GAACihU,GAAkBc,WAAY,QAC/B/hU,GAACihU,GAAkBe,YAAa,QAChChiU,GAACihU,GAAkBgB,iBAAkB,QACrCjiU,GAACihU,GAAkBiB,2BAA4B,QAC/CliU,GAACihU,GAAkBkB,eAAgB,QACnCniU,GAACihU,GAAkBmB,gBAAiB,QACpCpiU,GAACihU,GAAkBoB,cAAe,QAClCriU,GAACihU,GAAkBqB,yBAA0B,QAC7CtiU,GAACihU,GAAkBsB,YAAa,QAChCviU,GAACihU,GAAkBuB,QAAS,QAC5BxiU,GAACihU,GAAkBwB,YAAa,QAChCziU,GAACihU,GAAkByB,SAAU,QAC7B1iU,GAACihU,GAAkB0B,WAAY,QAC/B3iU,GAACihU,GAAkB2B,aAAc,QACjC5iU,GAACihU,GAAkB4B,cAAe,QAClC7iU,GAACihU,GAAkB6B,SAAU,QAC7B9iU,GAACihU,GAAkB8B,gBAAiB,QACpC/iU,GAACihU,GAAkB+B,cAAe,QAClChjU,GAACihU,GAAkBgC,WAAY,QAC/BjjU,GAACihU,GAAkBiC,oBAAqB,QACxCljU,GAACihU,GAAkBkC,cAAe,QAClCnjU,GAACihU,GAAkBmC,aAAc,QACjCpjU,GAACihU,GAAkBoC,gBAAiB,QACpCrjU,GAACihU,GAAkB7lW,OAAQ,QAC3B4kC,GAACihU,GAAkBqC,iBAAkB,QACrCtjU,GAACihU,GAAkBsC,kBAAmB,QACtCvjU,GAACihU,GAAkBuC,WAAY,QAC/BxjU,GAACihU,GAAkBwC,WAAY,QAC/BzjU,GAACihU,GAAkByC,YAAa,QAChC1jU,GAACihU,GAAkB0C,cAAe,QAClC3jU,GAACihU,GAAkB2C,eAAgB,QACnC5jU,GAACihU,GAAkB4C,SAAU,QAC7B7jU,G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B,SAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,OAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,OAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,SACV,SAAU,SACV,SAAU,SACV,SAAU,SACV,SAAU,SACV,SAAU,SACV,SAAU,SACV,SAAU,SACV,SAAU,SACV,SAAU,SACV,SAAU,SACV,SAAU,SACV,SAAU,SACV,SAAU,SACV,SAAU,SACV,SAAU,SACV,SAAU,SACV,SAAU,SACV,SAAU,SACV,SAAU,SACV,SAAU,UAEdpT,EAASc,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/U,IAAW,CACPd,GAAQ,CAAC,EAAGw9K,MACb0W,EAAexygB,UAAW,uBAAmB,GAChDo/U,IAAW,CACPjB,GAAS,OACVq0L,EAAexygB,UAAW,qBAAiB,GAC9Co/U,IAAW,CACPjB,GAAS,MACVq0L,EAAexygB,UAAW,oBAAgB,GAC7Co/U,IAAW,CACP94T,MACDksf,EAAexygB,UAAW,mBAAe,GAC5Co/U,IAAW,CACP94T,MACDksf,EAAexygB,UAAW,sBAAkB,GAC/Co/U,IAAW,CACP94T,MACDksf,EAAexygB,UAAW,wBAAoB,GACjDo/U,IAAW,CACP94T,MACDksf,EAAexygB,UAAW,kBAAc,GAC3Co/U,IAAW,CACP94T,MACDksf,EAAexygB,UAAW,yBAAqB,GAClDo/U,IAAW,CACP94T,MACDksf,EAAexygB,UAAW,mBAAe,GAC5Co/U,IAAW,CACP94T,MACDksf,EAAexygB,UAAW,8BAA0B,GACvDo/U,IAAW,CACP94T,MACDksf,EAAexygB,UAAW,wBAAoB,GACjDo/U,IAAW,CACP94T,MACDksf,EAAexygB,UAAW,yBAAqB,GAClDo/U,IAAW,CACP94T,MACDksf,EAAexygB,UAAW,2BAAuB,GACpDo/U,IAAW,CACP94T,MACDksf,EAAexygB,UAAW,4BAAwB,GACrDo/U,IAAW,CACP94T,MACDksf,EAAexygB,UAAW,qBAAiB,GAC9Co/U,IAAW,CACP94T,MACDksf,EAAexygB,UAAW,yBAAqB,GAClDo/U,IAAW,CACP94T,MACDksf,EAAexygB,UAAW,sBAAkB,GAC/Co/U,IAAW,CACP94T,MACDksf,EAAexygB,UAAW,0BAAsB,GACnDo/U,IAAW,CACP94T,MACDksf,EAAexygB,UAAW,yBAAqB,GAClDo/U,IAAW,CACP94T,MACDksf,EAAexygB,UAAW,qBAAiB,GAC9Co/U,IAAW,CACP94T,MACDksf,EAAexygB,UAAW,wBAAoB,GACjDo/U,IAAW,CACP94T,MACDksf,EAAexygB,UAAW,oBAAgB,GAC7Co/U,IAAW,CACP94T,MACDksf,EAAexygB,UAAW,wBAAoB,GACjDo/U,IAAW,CACP94T,MACDksf,EAAexygB,UAAW,qBAAiB,GAC9Co/U,IAAW,CACP94T,MACDksf,EAAexygB,UAAW,yBAAqB,GAClDo/U,IAAW,CACP94T,MACDksf,EAAexygB,UAAW,wBAAoB,GACjDo/U,IAAW,CACP94T,MACDksf,EAAexygB,UAAW,oBAAgB,GAC7Co/U,IAAW,CACP94T,MACDksf,EAAexygB,UAAW,wBAAoB,GACjDo/U,IAAW,CACP94T,MACDksf,EAAexygB,UAAW,eAAW,GACxCo/U,IAAW,CACP94T,MACDksf,EAAexygB,UAAW,iBAAa,GAC1Co/U,IAAW,CACP94T,MACDksf,EAAexygB,UAAW,0BAAsB,GACnDo/U,IAAW,CACP94T,MACDksf,EAAexygB,UAAW,YAAQ,GACrCo/U,IAAW,CACP94T,MACDksf,EAAexygB,UAAW,oBAAgB,GAC7Co/U,IAAW,CACP94T,MACDksf,EAAexygB,UAAW,aAAS,GACtCo/U,IAAW,CACP94T,MACDksf,EAAexygB,UAAW,cAAU,GACvCo/U,IAAW,CACP94T,MACDksf,EAAexygB,UAAW,gBAAY,GACzCo/U,IAAW,CACP94T,MACDksf,EAAexygB,UAAW,mBAAe,GAC5Co/U,IAAW,CACP94T,MACDksf,EAAexygB,UAAW,kBAAc,GAC3Co/U,IAAW,CACP94T,MACDksf,EAAexygB,UAAW,0BAAsB,GACnDo/U,IAAW,CACP94T,MACDksf,EAAexygB,UAAW,yBAAqB,GAClDo/U,IAAW,CACP94T,MACDksf,EAAexygB,UAAW,uBAAmB,GAChDo/U,IAAW,CACPjB,GAAS,OACVq0L,EAAexygB,UAAW,iBAAa,GAC1CwygB,EAAiBpzL,IAAW,CACxBT,IACD6zL,EAEP,CA1lFoC,CA0lFlC/hhB,IC/pFE8kD,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,K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B,GACjDo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,eAAW,GAC9Bo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,iBAAa,GAChCo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,YAAQ,GAC3Bo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,oBAAgB,GACnCo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,qBAAiB,GACpCo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,sBAAkB,GACrCo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,mBAAe,GAClCo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,sBAAkB,GACrCo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,qBAAiB,GACpCo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,iBAAa,GAChCo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,yBAAqB,GACxCo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,mBAAe,GAClCo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,oBAAgB,GACnCo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,mBAAe,GAClCo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,sBAAkB,GACrCo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,qBAAiB,GACpCo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,qBAAiB,GACpCo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,oBAAgB,GACnCo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,uBAAmB,GACtCo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,sBAAkB,GACrCo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,uBAAmB,GACtCo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,sBAAkB,GACrCo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,yBAAqB,GACxCo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,wBAAoB,GACvCo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,uBAAmB,GACtCo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,kBAAc,GACjCo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,kBAAc,GACjCo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,qBAAiB,GACpCo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,mBAAe,GAClCo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,wBAAoB,GACvCo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,8BAA0B,GAC7Co/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,iCAA6B,GAChDo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,mCAA+B,GAClDo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,6BAAyB,GAC5Co/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,0BAAsB,GACzCo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,gCAA4B,GAC/Co/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,yBAAqB,GACxCo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,2BAAuB,GAC1Co/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,uBAAmB,GACtCo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,yBAAqB,GACxCo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,0BAAsB,GACzCo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,uBAAmB,GACtCo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,oBAAgB,GACnCo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,eAAW,GAC9Bo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,eAAW,GAC9Bo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,oBAAgB,GACnCo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,+BAA2B,GAC9Co/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,gCAA4B,GAC/Co/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,gBAAY,GAC/Bo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,mBAAe,GAClCo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,mBAAe,GAClCo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,sBAAkB,GACrCo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,yBAAqB,GACxCo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,uBAAmB,GACtCo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,iBAAa,GAChCo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,oBAAgB,GACnCo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,gBAAY,GAC/Bo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,gBAAY,GAC/Bo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,iBAAa,GAChCo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,mBAAe,GAClCo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,gBAAY,GAC/Bo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,kBAAc,GACjCo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,kBAAc,GACjCo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,uBAAmB,GACtCo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,uBAAmB,GACtCo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,wBAAoB,GACvCo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,sBAAkB,GACrCo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,uBAAmB,GACtCo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,sBAAkB,GACrCo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,kBAAc,GACjCo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,mBAAe,GAClCo/U,IAAW,CACP94T,MACDstV,EAAK5zW,UAAW,sBAAkB,GACrCo/U,IAAW,CACP94T,MACDs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SAAU,UACzC,CAAC,SAAU,SAAU,SAAU,SAAU,UACzC,CAAC,SAAU,SAAU,SAAU,SAAU,UACzC,CAAC,SAAU,SAAU,SAAU,SAAU,UACzC,CAAC,SAAU,SAAU,UACrB,CAAC,SAAU,SAAU,UACrB,CAAC,SAAU,SAAU,UACrB,CAAC,SAAU,SAAU,UACrB,CAAC,SAAU,SAAU,SAAU,SAAU,UACzC,CAAC,SAAU,SAAU,SAAU,SAAU,UACzC,CAAC,SAAU,SAAU,SAAU,SAAU,UACzC,CAAC,SAAU,SAAU,SAAU,SAAU,UACzC,CAAC,SAAU,SAAU,SAAU,SAAU,UACzC,CAAC,SAAU,SAAU,SAAU,SAAU,UACzC,CAAC,SAAU,SAAU,SAAU,SAAU,UACzC,CAAC,SAAU,SAAU,SAAU,SAAU,UACzC,CAAC,SAAU,SAAU,SAAU,SAAU,UACzC,CAAC,SAAU,SAAU,SAAU,SAAU,UACzC,CAAC,SAAU,SAAU,SAAU,SAAU,UACzC,CAAC,SAAU,SAAU,SAAU,SAAU,UACzC,CAAC,SAAU,SAAU,SAAU,SAAU,UACzC,CAAC,SAAU,SAAU,SAAU,SAAU,UACzC,CAAC,SAAU,SAAU,SAAU,SAAU,UACzC,CAAC,SAAU,SAAU,SAAU,SAAU,UACzC,CAAC,SAAU,SAAU,UACrB,CAAC,SAAU,SAAU,SAAU,SAAU,UACzC,CAAC,SAAU,SAAU,SAAU,SAAU,UACzC,CAAC,SAAU,SAAU,UACrB,CAAC,SAAU,SAAU,SAAU,SAAU,UACzC,CAAC,SAAU,SAAU,SAAU,SAAU,UACzC,CAAC,SAAU,SAAU,SAAU,SAAU,UACzC,CAAC,SAAU,SAAU,SAAU,SAAU,UACzC,CAAC,SAAU,SAAU,SAAU,SAAU,UACzC,CAAC,SAAU,SAAU,SAAU,SAAU,UACzC,CAAC,SAAU,SAAU,SAAU,SAAU,UACzC,CAAC,SAAU,SAAU,SAAU,SAAU,UACzC,CAAC,SAAU,SAAU,SAAU,SAAU,UACzC,CAAC,SAAU,SAAU,SAAU,SAAU,UACzC,CAAC,SAAU,SAAU,UACrB,CAAC,SAAU,SAAU,UACrB,CAAC,SAAU,SAAU,UACrB,CAAC,SAAU,SAAU,UACrB,CAAC,SAAU,SAAU,UAC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7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,OAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,OAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,OAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,OAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,OAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAE7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAM,MAC7C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,MAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,MAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,MAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,MAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,MAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,MAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,MAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,KAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,OAC9C1gJ,KAAKq5xB,yBAAyB34oB,SAAS,MAAO,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K,IAAK,IAAK,IAAK,IAAK,IAAK,IAC3E,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC3E,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC3E,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC3E,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC3E,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC3E,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC3E,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC3E,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC3E,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC3E,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAM/E+zV,EAA8BqD,gBAAkB,CAC5C,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC3E,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC3E,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC3E,IAAK,IAAK,IAAK,IAAK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IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,IAAK,IAAK,IAClE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAM,IAAK,IAClE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjE,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAClE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,GAMxCzD,EAA8B6D,kBAAoB,CAC9C,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,IAAK,IAAK,IAClE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjE,IAAK,IAAK,IAAK,IAAK,IAAK,KAEtB7D,CACX,CA1kBmD,GCT/Cj2vB,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GA0CzC65vB,IAAiC,SAAUn5vB,GAE3C,SAASm5vB,EAAgBC,EAAqB7pyB,EAAMlQ,GAChD,IAAI7G,EAAQwnD,EAAOnnD,KAAKK,KAAMqW,EAAwB,qBAAVlQ,EAA2B+5yB,aAA+BD,EAAmBC,EAAoB/5yB,MAAQopwB,IAAa8N,QAAWl3wB,IAAUnG,KAwBvL,OAnBAV,EAAMgiwB,qBAAuB,IAAIjE,IAMjC/9vB,EAAM6gzB,UAAY,CAAC,UAAW,mBAAoB,mBAAoB,oBAClE,kBAAmB,iBAAkB,aAErC7gzB,EAAM8gzB,cADyB,qBAAxBF,EACe1wC,IAAc6sC,UAE9B6D,aAA+BD,EACfC,EAAoB19V,WAGpB09V,EAE1B5gzB,EAAM+gzB,aACN/gzB,EAAMghzB,sBACChhzB,CACX,CA6HA,OAxJA4mD,IAAU+5vB,EAAiBn5vB,GA4B3BrnD,OAAO4c,eAAe4jyB,EAAgBtvyB,UAAW,aAAc,CAO3D+F,IAAK,WACD,OAAO1W,KAAKogzB,aAChB,EACAjoyB,YAAY,EACZE,cAAc,IAOlB4nyB,EAAgBtvyB,UAAU0vyB,WAAa,WACnC,GAAIrgzB,KAAKwid,aAAegtT,IAAc7gvB,QAAU3uB,KAAKwid,aAAegtT,IAAcotC,aAAc,CAC5F,IAAIz2yB,EAAQnG,KAAKmG,MACjBA,KAAWopwB,IAAat1Z,KAAOs1Z,IAAa5nZ,QAC5C3nX,KAAKw2Z,SAASrwZ,EAClB,CACJ,EAKA85yB,EAAgBtvyB,UAAU4qwB,aAAe,SAAUxlpB,EAAM1wG,GACrD,GAAY,MAAR0wG,EACA,MAAM,IAAIhpG,MAAM,8BAKpB,IAHA,IAAIvO,EAAQ,EAGHrS,GAFEnM,KAAK0E,KAEH,GAAGirD,GADhBomE,EAAOkqrB,EAAgBxxuB,QAAQsnD,IACJ3yH,OAAQ+I,EAAIwjD,EAAKxjD,IAAK,CAC7C,IAAIyqJ,EAAK7gC,EAAK5pH,GAEdqS,GADgBxe,KAAKugzB,qBAAqB3ppB,EAAIvxI,EAElD,CACA,IAAIhP,EAAOrW,KAAKu1rB,QAAQnza,QAAQ/8P,GAGhC,OAFA7G,GAAU4+vB,IAAQgB,mBAAqB/nwB,EACvCmI,EAAQxe,KAAKi+wB,oBAAoBlopB,EAAM1wG,EAAQ7G,EAEnD,EAKAyhyB,EAAgBtvyB,UAAUktwB,aAAe,SAAUt5S,GAC/C,IAAIvud,GAAQ,EACRwqyB,EAASj8U,EACb,GAAc,MAAVi8U,EAAgB,CAChB,IAAIC,EAAmBzgzB,KAAKwid,aAAeg+V,EAAOh+V,WAC9Ck+V,IAAiBnxC,IAAa73Y,UAAY63Y,IAAa+N,WACvDqjC,GAAc3gzB,KAAKmG,MAAQu6yB,MAAkBF,EAAOr6yB,MAAQu6yB,GAChE1qyB,EAASyqyB,GAAmBE,CAChC,CACA,OAAO3qyB,CACX,EAKAiqyB,EAAgBtvyB,UAAU2vyB,oBAAsB,WAGhCpoD,IAAYl1rB,MAAM9qB,OAAOl4C,MAErC,IAAIg+wB,EAGAzoF,EAAU4mH,IAA8BC,WAAWp8yB,KAAKogzB,cAAepgzB,KAAKmG,MAAOnG,KAAKqW,MAC5FrW,KAAKu1rB,QAAUA,EACfyoF,EAAYh+wB,KAAK+xxB,kBACjB/xxB,KAAK+9wB,aAAaC,EACtB,EAKAiiC,EAAgBtvyB,UAAUohxB,gBAAkB,WACxC,IAAI/wB,EAAa,IAAID,IAIrB,GAHAC,EAAWl5sB,MAAM44F,SAAS1gJ,KAAKshwB,qBAAqB10vB,KAAM,IAAIisvB,IAAQ74vB,KAAKshwB,qBAAqB/8R,OAChGy8R,EAAWl5sB,MAAM44F,SAAS1gJ,KAAKshwB,qBAAqB1D,QAAS,IAAI/E,IAAQ74vB,KAAKshwB,qBAAqB5D,QACnGsD,EAAWl5sB,MAAM44F,SAAS1gJ,KAAKshwB,qBAAqB3D,SAAU,IAAI9E,IAAQ74vB,KAAKu1rB,QAAQg4F,iBACnFvtxB,KAAKwid,aAAegtT,IAAc7gvB,QAAU3uB,KAAKwid,aAAegtT,IAAcotC,aAAc,CAC5F,IAAIh5rB,EAAW5jH,KAAKmgzB,UAAUvwC,IAAagxC,iBAC3C5/C,EAAWl5sB,MAAM44F,SAAS1gJ,KAAKshwB,qBAAqB19oB,SAAU,IAAIi1oB,IAAQj1oB,GAC9E,CACA,OAAOo9oB,CACX,EAKAi/C,EAAgBtvyB,UAAU4vyB,qBAAuB,SAAUnoxB,EAAU/S,GACjE,IACIqH,EAAO,EAUX,OATAA,EAAO0L,EAASS,WAAW,GACT,MAAd74B,KAAK0E,MAA8B,MAAd1E,KAAK0E,MAA8B,MAAd1E,KAAK0E,MACjC,MAAd1E,KAAK0E,MAA8B,MAAd1E,KAAK0E,OAC1BgoB,GAAcuzxB,EAAgBY,YAElCn0xB,EAAQA,GAAQ,GAAc,MAATA,EAAgBA,EAAO,EAC9B1sB,KAAKu1rB,QACMk5F,WACN3muB,MAAMp7B,EAE7B,EAKAuzxB,EAAgBxxuB,QAAU,SAAUxuC,GAChC,OAAOA,CACX,EAMAggxB,EAAgBY,WAAa,GACtBZ,CACX,CA1JqC,CA0JnC7iC,KCpMEl3tB,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GA6CzC8xsB,IAA6B,SAAUpxsB,GAEvC,SAASoxsB,EAAY4oD,GACjB,IAAIxhzB,EAAQwnD,EAAOnnD,KAAKK,OAASA,KAMjCV,EAAMyhzB,cAAgB,GAMtBzhzB,EAAMg2vB,aAAe,KACrBh2vB,EAAM4xB,SAAW5xB,EACjB,IAAI0hzB,GAAU,EACW,qBAAdF,GACP5oD,EAAY+oD,gBAAkB,IAAItF,IAClCqF,GAAU,GAGVA,EAAUF,EAEd,IAAI7hW,EAAU,IAAIq3S,IAClBh3vB,EAAMg5vB,wBAAwBr5S,GAC9B,IAAIo6S,EAAa,IAAIuQ,IACrBvQ,EAAWynD,UAAYE,EACvB3nD,EAAWnouB,SAAW5xB,EACtBA,EAAMi5vB,cAAcc,GACpB,IAAIZ,EAAU,IAAIiR,IAOlB,OANApqwB,EAAMk5vB,WAAWC,GACjBx5S,EAAQ7rb,IAAIqluB,GACZA,EAAQvuqB,UAAY,EACpB5qF,EAAMm5yB,kBAAoB,IAAIiC,IAAqBp7yB,GACnDA,EAAM4hzB,uBAAyB,IAAI9F,IAA0B97yB,GAC7Dm5vB,EAAQ6E,MAAQh+vB,EAAMm5yB,kBACfn5yB,CACX,CA6PA,OAnSA4mD,IAAUgysB,EAAapxsB,GAuCvBrnD,OAAO4c,eAAe67uB,EAAa,cAAe,CAM9CxhvB,IAAK,WAID,OAHgC,MAA5B1W,KAAKmhzB,sBACLnhzB,KAAKmhzB,oBAAsB,IAAIlB,IAAgBzwC,IAAc6sC,UAAW,IAErEr8yB,KAAKmhzB,mBAChB,EACAhpyB,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAe67uB,EAAYvnvB,UAAW,WAAY,CAKrD+F,IAAK,WACD,OAAO1W,KAAKy4yB,iBAChB,EACAtgyB,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAe67uB,EAAYvnvB,UAAW,eAAgB,CAKzD+F,IAAK,WAID,OAHqB,MAAjB1W,KAAKstF,WACLttF,KAAKstF,SAAW,IAAIyjrB,IAAgB/wwB,KAAK+gzB,gBAEtC/gzB,KAAKstF,QAChB,EAgCA5zE,IAAK,SAAU9X,GACX5B,KAAKstF,SAAW1rF,CACpB,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAe67uB,EAAYvnvB,UAAW,QAAS,CAkBlD+F,IAAK,WACD,OAAO1W,KAAKkhzB,sBAChB,EACA/oyB,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAe67uB,EAAa,QAAS,CAKxCxhvB,IAAK,WACD,MAA2C,qBAAhCwhvB,EAAY+oD,iBAAkE,MAA/B/oD,EAAY+oD,gBAC3D,IAAItF,IAERzjD,EAAY+oD,eACvB,EAKAvnyB,IAAK,SAAU9X,GACX5B,KAAKihzB,gBAAkBr/yB,CAC3B,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAe67uB,EAAa,cAAe,CAK9CxhvB,IAAK,WACD,OAAO1W,KAAKohzB,cAChB,EAKA1nyB,IAAK,SAAU9X,GACX5B,KAAKohzB,eAAiBx/yB,CAC1B,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAe67uB,EAAYvnvB,UAAW,aAAc,CAMvD+F,IAAK,WACD,OAAK1W,KAAKyyyB,gBAAkBvjC,IAAcyG,KAAU31wB,KAAKyyyB,gBAAkBvjC,IAAc6G,MACjF/1wB,KAAKyyyB,gBAAkBvjC,IAAc2G,UAClC71wB,KAAKyyyB,cAGLvjC,IAAcyG,GAE7B,EACAj8vB,IAAK,SAAU9X,GACNA,IAAUstwB,IAAcyG,KAAU/zwB,IAAUstwB,IAAc6G,MAC1Dn0wB,IAAUstwB,IAAc2G,UACzB71wB,KAAKyyyB,cAAgB7wyB,EAGrB5B,KAAKyyyB,cAAgBvjC,IAAcyG,GAE3C,EACAx9vB,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAe67uB,EAAYvnvB,UAAW,WAAY,CAMrD+F,IAAK,WAID,OAHyB,MAArB1W,KAAK24yB,eACL34yB,KAAK24yB,aAAe,IAAItC,KAErBr2yB,KAAK24yB,YAChB,EACAj/xB,IAAK,SAAU9X,GACX5B,KAAK24yB,aAAe/2yB,CACxB,EACAuW,YAAY,EACZE,cAAc,IAElB6/uB,EAAYvnvB,UAAUiovB,QAAU,SAAU/xB,EAAQhgiB,EAAM9G,GAEpD,GADA//L,KAAKqhzB,qBACU,OAAXx6E,EACA,MAAM,IAAI95sB,MAAM,kCAEpB/sB,KAAKs1vB,aAAezuB,EACpB,IAAI2N,EAAS,IAAI6gB,IAAUxuB,GAE3B,GADA2N,EAAOtjtB,SAAWlxB,KACE,mBAAT6mM,GAAsC,qBAAT9G,EACpC,OAAO//L,KAAKq5vB,WAAWh7R,KAAKm2Q,GAG5Bx0uB,KAAKq5vB,WAAWh7R,KAAKm2Q,EAAQ3tiB,EAErC,EAKAqxjB,EAAYvnvB,UAAU0wyB,mBAAqB,WACd,IAArBrhzB,KAAKs9vB,MAAM1yuB,OACX5qB,KAAKs9vB,MAAMlquB,KAEnB,EAoBA8kuB,EAAYvnvB,UAAUymI,QAAU,WAC5Bp3I,KAAKy4vB,aAAUp1vB,EACfrD,KAAK89vB,gBAAaz6vB,EAClBrD,KAAK+rwB,sBAAmB1owB,EACxBrD,KAAKkhzB,4BAAyB79yB,EAC9BrD,KAAKi4vB,oBAAiB50vB,EACtBrD,KAAKkxmB,kBAAe7tmB,EACpBrD,KAAK24yB,kBAAet1yB,EACpBrD,KAAKyyyB,mBAAgBpvyB,EACrBrD,KAAKy4yB,uBAAoBp1yB,EACzB60vB,EAAYl1rB,MAAMo0E,UAClBp3I,KAAKq5vB,WAAW4Q,WAAW7ynB,UAC3B8gnB,EAAYl1rB,WAAQ3/D,EACpBrD,KAAKs1vB,aAAal+mB,SACtB,EAMA8gnB,EAAYipD,oBAAsB,KAMlCjpD,EAAYkpD,gBAAiB,EACtBlpD,CACX,CArSiC,CAqS/BF,KCzUEspD,IAA4B,WAM5B,SAASA,IACL,IAAIC,EAAuB,IAAIzqC,IAAO,IAAIpC,IAAS,EAAG,EAAG,IACzD6sC,EAAqBC,UAAYxyC,IAAakI,MAC9C,IAAIuqC,EAAwB,IAAI3qC,IAAO,IAAIpC,IAAS,EAAG,EAAG,IAC1D+sC,EAAsBD,UAAYxyC,IAAakI,MAC/C,IAAIwqC,EAAsB,IAAI5qC,IAAO,IAAIpC,IAAS,EAAG,EAAG,IACxDgtC,EAAoBF,UAAYxyC,IAAakI,MAC7C,IAAIyqC,EAAyB,IAAI7qC,IAAO,IAAIpC,IAAS,EAAG,EAAG,IAC3DitC,EAAuBH,UAAYxyC,IAAakI,MAChDl3wB,KAAK4hzB,QAAUL,EACfvhzB,KAAK6hzB,SAAWJ,EAChBzhzB,KAAK8hzB,OAASJ,EACd1hzB,KAAK+hzB,UAAYJ,CACrB,CA2FA,OA1FAlizB,OAAO4c,eAAeilyB,EAAW3wyB,UAAW,OAAQ,CAMhD+F,IAAK,WACD,OAAO1W,KAAK4hzB,OAChB,EACAloyB,IAAK,SAAU9X,GACX5B,KAAK4hzB,QAAUhgzB,CACnB,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAeilyB,EAAW3wyB,UAAW,QAAS,CAKjD+F,IAAK,WACD,OAAO1W,KAAK6hzB,QAChB,EACAnoyB,IAAK,SAAU9X,GACX5B,KAAK6hzB,SAAWjgzB,CACpB,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAeilyB,EAAW3wyB,UAAW,MAAO,CAK/C+F,IAAK,WACD,OAAO1W,KAAK8hzB,MAChB,EACApoyB,IAAK,SAAU9X,GACX5B,KAAK8hzB,OAASlgzB,CAClB,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAeilyB,EAAW3wyB,UAAW,SAAU,CAKlD+F,IAAK,WACD,OAAO1W,KAAK+hzB,SAChB,EACAroyB,IAAK,SAAU9X,GACX5B,KAAK+hzB,UAAYngzB,CACrB,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAeilyB,EAAW3wyB,UAAW,MAAO,CAK/C+I,IAAK,SAAU9X,GACX5B,KAAK4hzB,QAAU5hzB,KAAK6hzB,SAAW7hzB,KAAK8hzB,OAAS9hzB,KAAK+hzB,UAAYngzB,CAClE,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAeilyB,EAAW3wyB,UAAW,QAAS,CAKjD+F,IAAK,WACD,OAAS1W,KAAK4hzB,UAAY5hzB,KAAK6hzB,UAAc7hzB,KAAK4hzB,UAAY5hzB,KAAK8hzB,QAAY9hzB,KAAK4hzB,UAAY5hzB,KAAK+hzB,SACzG,EACA5pyB,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAeilyB,EAAY,UAAW,CAKzC5qyB,IAAK,WACD,OAAO,IAAI4qyB,CACf,EACAnpyB,YAAY,EACZE,cAAc,IAEXipyB,CACX,CA/GgC,GAiH5BU,IAA6B,WAC7B,SAASA,EAAYr+qB,EAAMC,EAAOsqB,EAAKymI,GAKnC30R,KAAKiizB,YAAa,EAKlBjizB,KAAKkizB,aAAc,EAKnBlizB,KAAKmizB,WAAY,EAKjBnizB,KAAKoizB,cAAe,EACA,qBAATz+qB,GAEP3jI,KAAKqizB,QAAUrizB,KAAKsizB,SAAW,KAE/BtizB,KAAKuizB,UAAYvizB,KAAKwizB,OAAS,KAG/BxizB,KAAKqizB,QAAU1+qB,EACf3jI,KAAKsizB,SAAW1+qB,EAChB5jI,KAAKwizB,OAASt0pB,EACdluJ,KAAKuizB,UAAY5thB,EACjB30R,KAAKiizB,YAAa,EAClBjizB,KAAKkizB,aAAc,EACnBlizB,KAAKmizB,WAAY,EACjBnizB,KAAKoizB,cAAe,EAE5B,CA6EA,OA5EA3izB,OAAO4c,eAAe2lyB,EAAYrxyB,UAAW,OAAQ,CAMjD+F,IAAK,WACD,OAAO1W,KAAKqizB,OAChB,EACA3oyB,IAAK,SAAU9X,GACX5B,KAAKqizB,QAAUzgzB,EACf5B,KAAKiizB,YAAa,CACtB,EACA9pyB,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAe2lyB,EAAYrxyB,UAAW,QAAS,CAKlD+F,IAAK,WACD,OAAO1W,KAAKsizB,QAChB,EACA5oyB,IAAK,SAAU9X,GACX5B,KAAKsizB,SAAW1gzB,EAChB5B,KAAKkizB,aAAc,CACvB,EACA/pyB,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAe2lyB,EAAYrxyB,UAAW,MAAO,CAKhD+F,IAAK,WACD,OAAO1W,KAAKwizB,MAChB,EACA9oyB,IAAK,SAAU9X,GACX5B,KAAKwizB,OAAS5gzB,EACd5B,KAAKmizB,WAAY,CACrB,EACAhqyB,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAe2lyB,EAAYrxyB,UAAW,SAAU,CAKnD+F,IAAK,WACD,OAAO1W,KAAKuizB,SAChB,EACA7oyB,IAAK,SAAU9X,GACX5B,KAAKuizB,UAAY3gzB,EACjB5B,KAAKoizB,cAAe,CACxB,EACAjqyB,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAe2lyB,EAAYrxyB,UAAW,MAAO,CAKhD+I,IAAK,SAAU9X,GACX5B,KAAKqizB,QAAUrizB,KAAKsizB,SAAWtizB,KAAKwizB,OAASxizB,KAAKuizB,UAAY3gzB,EAC9D5B,KAAKiizB,YAAa,EAClBjizB,KAAKkizB,aAAc,EACnBlizB,KAAKmizB,WAAY,EACjBnizB,KAAKoizB,cAAe,CACxB,EACAjqyB,YAAY,EACZE,cAAc,IAEX2pyB,CACX,CApHiC,IxBrHjC,SAAWjiB,GAKPA,EAAsBA,EAA+B,QAAI,GAAK,UAK9DA,EAAsBA,EAA8B,OAAI,GAAK,QAChE,CAXD,CAWGA,MAA0BA,IAAwB,CAAC,IyBhBtD,IAwZW0iB,IAxZPv8vB,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAkBzCs8vB,IAAkC,WAClC,SAASA,IACT,CAwEA,OAvEAjjzB,OAAO4c,eAAeqmyB,EAAiB/xyB,UAAW,kBAAmB,CAMjE+F,IAAK,WACD,OAAO1W,KAAK2izB,mBAChB,EACAjpyB,IAAK,SAAU9X,GACX5B,KAAK2izB,oBAAsB/gzB,CAC/B,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAeqmyB,EAAiB/xyB,UAAW,YAAa,CAK3D+F,IAAK,WACD,OAAO1W,KAAK4izB,aAChB,EACAlpyB,IAAK,SAAU9X,GACX5B,KAAK4izB,cAAgBhhzB,CACzB,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAeqmyB,EAAiB/xyB,UAAW,UAAW,CAKzD+F,IAAK,WACD,OAAO1W,KAAK6izB,WAChB,EACAnpyB,IAAK,SAAU9X,GACX5B,KAAK6izB,YAAcjhzB,CACvB,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAeqmyB,EAAiB/xyB,UAAW,OAAQ,CAKtD+F,IAAK,WACD,OAAO1W,KAAK8izB,QAChB,EACAppyB,IAAK,SAAU9X,GACX5B,KAAK8izB,SAAWlhzB,CACpB,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAeqmyB,EAAiB/xyB,UAAW,kBAAmB,CAKjE+F,IAAK,WACD,OAAO1W,KAAK+izB,mBAChB,EACArpyB,IAAK,SAAU9X,GACX5B,KAAK+izB,oBAAsBnhzB,CAC/B,EACAuW,YAAY,EACZE,cAAc,IAEXqqyB,CACX,CA3EsC,GAgFlCM,IAA8B,SAAUl8vB,GAOxC,SAASk8vB,IACL,IAAI1jzB,EAAQwnD,EAAOnnD,KAAKK,OAASA,KAIjC,OAHAV,EAAM2jzB,uBAAyBljB,IAAsBmjB,QACrD5jzB,EAAM6jzB,0BAA2B,EACjC7jzB,EAAM8jzB,2BAA6BX,IAA0BhoJ,SACtDn7pB,CACX,CAoFA,OAhGA4mD,IAAU88vB,EAAcl8vB,GAaxBrnD,OAAO4c,eAAe2myB,EAAaryyB,UAAW,cAAe,CAMzD+F,IAAK,WAID,MAHoC,qBAAzB1W,KAAKqjzB,kBACZrjzB,KAAKqjzB,gBAAkB,GAEpBrjzB,KAAKqjzB,eAChB,EACA3pyB,IAAK,SAAU9X,GACX5B,KAAKqjzB,gBAAkBzhzB,CAC3B,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAe2myB,EAAaryyB,UAAW,yBAA0B,CAKpE+F,IAAK,WACD,OAAO1W,KAAKojzB,0BAChB,EACA1pyB,IAAK,SAAU9X,GACX5B,KAAKojzB,2BAA6BxhzB,CACtC,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAe2myB,EAAaryyB,UAAW,0BAA2B,CAKrE+F,IAAK,WACD,OAAO1W,KAAKmjzB,wBAChB,EACAzpyB,IAAK,SAAU9X,GACX5B,KAAKmjzB,yBAA2BvhzB,CACpC,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAe2myB,EAAaryyB,UAAW,cAAe,CAKzD+F,IAAK,WAID,MAHoC,qBAAzB1W,KAAKsjzB,kBACZtjzB,KAAKsjzB,gBAAkB,IAAItB,KAExBhizB,KAAKsjzB,eAChB,EACA5pyB,IAAK,SAAU9X,GACyB,qBAAzB5B,KAAKsjzB,iBACZtjzB,KAAKsjzB,gBAAkB,IAAItB,IAC3BhizB,KAAKsjzB,gBAAkB1hzB,GAGvB5B,KAAKsjzB,gBAAkB1hzB,CAE/B,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAe2myB,EAAaryyB,UAAW,qBAAsB,CAKhE+F,IAAK,WACD,OAAO1W,KAAKijzB,sBAChB,EACAvpyB,IAAK,SAAU9X,GACX5B,KAAKijzB,uBAAyBrhzB,CAClC,EACAuW,YAAY,EACZE,cAAc,IAEX2qyB,CACX,CAlGkC,CAkGhCN,KAKEa,IAAkC,SAAUz8vB,GAM5C,SAASy8vB,IACL,IAAIjkzB,EAAQwnD,EAAOnnD,KAAKK,OAASA,KAMjC,OADAV,EAAMkkzB,gBAAkBlC,IAAWzgzB,QAC5BvB,CACX,CA+CA,OA5DA4mD,IAAUq9vB,EAAkBz8vB,GAc5BrnD,OAAO4c,eAAeknyB,EAAiB5yyB,UAAW,eAAgB,CAM9D+F,IAAK,WACD,OAAO1W,KAAKqlB,MAChB,EACA3L,IAAK,SAAU9X,GACX5B,KAAKqlB,OAASzjB,CAClB,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAeknyB,EAAiB5yyB,UAAW,UAAW,CAKzD+F,IAAK,WACD,OAAO1W,KAAKwjzB,eAChB,EACA9pyB,IAAK,SAAU9X,GACX5B,KAAKwjzB,gBAAkB5hzB,CAC3B,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAeknyB,EAAiB5yyB,UAAW,cAAe,CAK7D+F,IAAK,WACD,OAAO1W,KAAKsjzB,eAChB,EACA5pyB,IAAK,SAAU9X,GACiB,MAAxB5B,KAAKsjzB,iBAA2D,qBAAzBtjzB,KAAKsjzB,kBAC5CtjzB,KAAKsjzB,gBAAkB,IAAItB,KAE/BhizB,KAAKsjzB,gBAAkB1hzB,CAC3B,EACAuW,YAAY,EACZE,cAAc,IAEXkryB,CACX,CA9DsC,CA8DpCb,KAKEe,IAAiC,WAMjC,SAASA,IACL,CA8HJ,OA5HAhkzB,OAAO4c,eAAeonyB,EAAgB9yyB,UAAW,kBAAmB,CAMhE+F,IAAK,WACD,OAAO1W,KAAK0jzB,sBAChB,EACAvryB,YAAY,EACZE,cAAc,IAElBoryB,EAAgB9yyB,UAAUgzyB,mBAAqB,SAAU/hzB,GAErD,GADA5B,KAAK0jzB,uBAAyB9hzB,EACH,qBAAhB5B,KAAKmoC,OACZ,IAAK,IAAIh8B,EAAI,EAAGA,EAAInM,KAAKmoC,OAAOwpiB,MAAM/mjB,MAAOze,IACzCnM,KAAKmoC,OAAOwpiB,MAAMiyO,QAAQz3yB,GAAGhG,MAAM09yB,gBAAkBjizB,CAGjE,EACAnC,OAAO4c,eAAeonyB,EAAgB9yyB,UAAW,YAAa,CAK1D+F,IAAK,WACD,OAAO1W,KAAK8jzB,gBAChB,EACA3ryB,YAAY,EACZE,cAAc,IAElBoryB,EAAgB9yyB,UAAUozyB,aAAe,SAAUnizB,GAE/C,GADA5B,KAAK8jzB,iBAAmBlizB,EACG,qBAAhB5B,KAAKmoC,OACZ,IAAK,IAAIh8B,EAAI,EAAGA,EAAInM,KAAKmoC,OAAOwpiB,MAAM/mjB,MAAOze,IACzCnM,KAAKmoC,OAAOwpiB,MAAMiyO,QAAQz3yB,GAAGhG,MAAM69yB,UAAYpizB,CAG3D,EACAnC,OAAO4c,eAAeonyB,EAAgB9yyB,UAAW,UAAW,CAKxD+F,IAAK,WACD,OAAO1W,KAAKikzB,cAChB,EACA9ryB,YAAY,EACZE,cAAc,IAElBoryB,EAAgB9yyB,UAAUuzyB,WAAa,SAAUtizB,GAE7C,GADA5B,KAAKikzB,eAAiBrizB,EACK,qBAAhB5B,KAAKmoC,OACZ,IAAK,IAAIh8B,EAAI,EAAGA,EAAInM,KAAKmoC,OAAOwpiB,MAAM/mjB,MAAOze,IACzCnM,KAAKmoC,OAAOwpiB,MAAMiyO,QAAQz3yB,GAAGhG,MAAMg+yB,QAAUvizB,CAGzD,EACAnC,OAAO4c,eAAeonyB,EAAgB9yyB,UAAW,OAAQ,CAKrD+F,IAAK,WACD,OAAO1W,KAAKokzB,WAChB,EACAjsyB,YAAY,EACZE,cAAc,IAElBoryB,EAAgB9yyB,UAAUkrvB,QAAU,SAAUj6vB,GAE1C,GADA5B,KAAKokzB,YAAcxizB,EACQ,qBAAhB5B,KAAKmoC,OACZ,IAAK,IAAIh8B,EAAI,EAAGA,EAAInM,KAAKmoC,OAAOwpiB,MAAM/mjB,MAAOze,IACzCnM,KAAKmoC,OAAOwpiB,MAAMiyO,QAAQz3yB,GAAGhG,MAAMo+d,KAAO3ie,CAGtD,EACAnC,OAAO4c,eAAeonyB,EAAgB9yyB,UAAW,SAAU,CAKvD+F,IAAK,WAID,MAHkC,qBAAvB1W,KAAKqkzB,eACZrkzB,KAAKskzB,UAAU,IAAIhD,KAEhBthzB,KAAKqkzB,aAChB,EACAlsyB,YAAY,EACZE,cAAc,IAElBoryB,EAAgB9yyB,UAAU2zyB,UAAY,SAAU1izB,GAE5C,GADA5B,KAAKqkzB,cAAgBzizB,EACM,qBAAhB5B,KAAKmoC,OACZ,IAAK,IAAIh8B,EAAI,EAAGA,EAAInM,KAAKmoC,OAAOwpiB,MAAM/mjB,MAAOze,IACzCnM,KAAKmoC,OAAOwpiB,MAAMiyO,QAAQz3yB,GAAGhG,MAAM07tB,QAAUjguB,CAGzD,EAKA6hzB,EAAgB9yyB,UAAU4zyB,UAAY,SAAUp8wB,GAC5CnoC,KAAKmoC,OAASA,CAClB,EACA1oC,OAAO4c,eAAeonyB,EAAgB9yyB,UAAW,kBAAmB,CAKhE+F,IAAK,WACD,OAAO1W,KAAKwkzB,sBAChB,EACArsyB,YAAY,EACZE,cAAc,IAMlBoryB,EAAgB9yyB,UAAUoyd,mBAAqB,SAAUnhe,GACrD5B,KAAKwkzB,uBAAyB5izB,CAClC,EACO6hzB,CACX,CAtIqC,IA6IrC,SAAWhB,GAKPA,EAA0BA,EAAoC,SAAI,GAAK,WAKvEA,EAA0BA,EAAoC,SAAI,GAAK,UAC1E,CAXD,CAWGA,MAA8BA,IAA4B,CAAC,IC5Z9D,IAAIgC,IAAiC,WAMjC,SAASA,EAAgBtvyB,GACrBnV,KAAK0kzB,cAAgBvvyB,CACzB,CAgDA,OA/CA1V,OAAO4c,eAAeooyB,EAAgB9zyB,UAAW,WAAY,CAMzD+F,IAAK,WACD,OAAO1W,KAAK0kzB,aAChB,EACAvsyB,YAAY,EACZE,cAAc,IAMlBosyB,EAAgB9zyB,UAAUq2R,WAAa,WACnC,OAAOhnS,KAAK0kzB,aAChB,EAMAD,EAAgB9zyB,UAAUmuS,OAAS,SAAU78J,GACzC,OAAOjiJ,KAAK2kzB,eAAe1iqB,EAC/B,EACAwiqB,EAAgB9zyB,UAAUi0yB,SAAW,SAAU3iqB,GAC3C,OAAOjiJ,KAAK2kzB,eAAe1iqB,EAC/B,EAKAwiqB,EAAgB9zyB,UAAUg7xB,YAAc,SAAUx6L,GAG9C,OAFcA,EAAYy6L,QACHx4wB,KAE3B,EACAqxxB,EAAgB9zyB,UAAUk0yB,kBAAoB,SAAU5iqB,GACpD,GAAc,MAATA,EACD,MAAM,IAAIl1H,MAAM,iCAIpB,OAFak1H,EAAM58H,OAAOy/xB,kBAAoB7iqB,EAAM58H,OAAO0/xB,eACrD,IAAIt4C,IAAWxqnB,EAAM0inB,OAAOzqvB,EAAG,EAAG+nI,EAAM0inB,OAAOnmvB,MAAOyjI,EAAM0inB,OAAO/7mB,OAE7E,EACO67pB,CACX,CAzDqC,GA2DjCO,IAAiC,WACjC,SAASA,EAAgBC,GACK,qBAAfA,IAIPjlzB,KAAKklzB,MAAQD,EAAWC,MACxBllzB,KAAK8+S,OAASmmgB,EAAWnmgB,OACzB9+S,KAAK+kzB,eAAiBE,EAAWF,eACjC/kzB,KAAKmlzB,UAAYF,EAAWH,kBAEpC,CAoEA,OAnEArlzB,OAAO4c,eAAe2oyB,EAAgBr0yB,UAAW,SAAU,CAMvD+F,IAAK,WAID,OAAO1W,KAAKolzB,UAChB,EACA1ryB,IAAK,SAAU9X,GACX5B,KAAKolzB,WAAaxjzB,CACtB,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAe2oyB,EAAgBr0yB,UAAW,QAAS,CAKtD+F,IAAK,WAID,OAAO1W,KAAKy8wB,SAChB,EACA/iwB,IAAK,SAAU9X,GACX5B,KAAKy8wB,UAAY76wB,CACrB,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAe2oyB,EAAgBr0yB,UAAW,iBAAkB,CAK/D+F,IAAK,WAID,MAHyC,qBAA9B1W,KAAKqlzB,sBAAqE,MAA7BrlzB,KAAKqlzB,uBACzDrlzB,KAAKqlzB,qBAAuB,IAAI54C,IAAW,EAAG,EAAG,EAAG,IAEjDzswB,KAAKqlzB,oBAChB,EACA3ryB,IAAK,SAAU9X,GACX5B,KAAKqlzB,qBAAuBzjzB,EAC5B5B,KAAKmlzB,WAAY,CACrB,EACAhtyB,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAe2oyB,EAAgBr0yB,UAAW,oBAAqB,CAKlE+F,IAAK,WAID,OAAO1W,KAAKmlzB,SAChB,EACAhtyB,YAAY,EACZE,cAAc,IAEX2syB,CACX,CAhFqC,GAkFjCM,IAAiC,WACjC,SAASA,IACT,CA4CA,OA3CA7lzB,OAAO4c,eAAeipyB,EAAgB30yB,UAAW,OAAQ,CAMrD+F,IAAK,WACD,OAAO1W,KAAKmzyB,OAChB,EACAz5xB,IAAK,SAAU9X,GACX5B,KAAKmzyB,QAAUvxyB,CACnB,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAeipyB,EAAgB30yB,UAAW,SAAU,CAKvD+F,IAAK,WACD,OAAO,IAAI+1vB,IAAWzswB,KAAKuuyB,aAAar0xB,EAAGla,KAAKuuyB,aAAap0xB,EAAGna,KAAKuuyB,aAAa/vxB,MAAOxe,KAAKuuyB,aAAa3lpB,OAC/G,EACAlvI,IAAK,SAAU9X,GACX5B,KAAKuuyB,aAAe3syB,CACxB,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAeipyB,EAAgB30yB,UAAW,SAAU,CAKvD+F,IAAK,WACD,OAAO1W,KAAKulzB,YAChB,EACA7ryB,IAAK,SAAU9X,GACX5B,KAAKulzB,aAAe3jzB,CACxB,EACAuW,YAAY,EACZE,cAAc,IAEXityB,CACX,CA/CqC,GAiDjCE,IAAiC,WAMjC,SAASA,EAAgB3vY,EAAM8uV,GAC3B3kwB,KAAKmzyB,QAAUt9X,EACf71a,KAAKuuyB,aAAe5pC,CACxB,CAwBA,OAvBAllwB,OAAO4c,eAAempyB,EAAgB70yB,UAAW,OAAQ,CAMrD+F,IAAK,WACD,OAAO1W,KAAKmzyB,OAChB,EACAh7xB,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAempyB,EAAgB70yB,UAAW,SAAU,CAKvD+F,IAAK,WACD,OAAO1W,KAAKuuyB,YAChB,EACAp2xB,YAAY,EACZE,cAAc,IAEXmtyB,CACX,CAlCqC,GC/LjCC,IAAkC,WAClC,SAASA,IACT,CAgFA,OA/EAhmzB,OAAO4c,eAAeopyB,EAAiB90yB,UAAW,uBAAwB,CAMtE+F,IAAK,WACD,MAAwC,qBAAzB1W,KAAK0lzB,eACxB,EACAvtyB,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAeopyB,EAAiB90yB,UAAW,qBAAsB,CAKpE+F,IAAK,WACD,MAAsC,qBAAvB1W,KAAK2lzB,aACxB,EACAxtyB,YAAY,EACZE,cAAc,IAGlBotyB,EAAiB90yB,UAAUi1yB,kBAAoB,SAAU3syB,GACjDjZ,KAAK0lzB,iBACL1lzB,KAAK0lzB,gBAAgB1lzB,KAAMiZ,EAEnC,EACAwsyB,EAAiB90yB,UAAUk1yB,gBAAkB,SAAU5syB,GAC/CjZ,KAAK2lzB,eACL3lzB,KAAK2lzB,cAAc3lzB,KAAMiZ,EAEjC,EACAwsyB,EAAiB90yB,UAAUkvwB,WAAa,SAAUh5kB,EAAM9G,EAAMuqa,EAAMC,GAChE,GAAIxqa,aAAgBwskB,KAAgC,qBAAfxskB,EAAKvhL,OAAyC,qBAAT8rlB,EACtE,OAAOtqmB,KAAK6/wB,WAAWh5kB,EAAM9G,EAAK7lL,EAAG6lL,EAAK5lL,GAEzC,GAAoB,kBAAT4lL,GAAqC,kBAATuqa,GAAqC,qBAATC,EACpE,OAAOvqmB,KAAK6/wB,WAAWh5kB,EAAM9G,EAAMuqa,EAAM,MAExC,GAAIvqa,aAAgB0skB,KAAoC,qBAAf1skB,EAAKvhL,OAAyC,qBAAT8rlB,EAC/E,OAAOtqmB,KAAK6/wB,WAAWh5kB,EAAM9G,EAAM,MAElC,GAAIA,aAAgBwskB,KAAgC,qBAAfxskB,EAAKvhL,OAAyB8rlB,aAAgB06M,IACpF,OAAOhlzB,KAAK6/wB,WAAWh5kB,EAAM9G,EAAK7lL,EAAG6lL,EAAK5lL,EAAGmwlB,GAE5C,GAAoB,kBAATvqa,GAAqC,kBAATuqa,IAAsBC,aAAgBy6M,KAA2B,MAARz6M,GAAe,CAChH,IAAI/rlB,EAASqoL,EAAKi5kB,SAASnpd,WAAWn4S,MAAQuhL,EAC1CuqmB,EAAkB,IAAI79B,IAAW1skB,EAAMuqa,EAAM9rlB,EAAO,GACxD,OAAOxe,KAAK6/wB,WAAWh5kB,EAAMyjmB,EAAiB//L,EAClD,CACK,GAAIxqa,aAAgB0skB,KAAoC,qBAAf1skB,EAAKvhL,OAAyC,mBAAT8rlB,EAE/E,OADAtqmB,KAAK8lzB,YAAcx7M,EACZtqmB,KAAK6/wB,WAAWh5kB,EAAM9G,EAAM,MAGnC,IAAI99C,EAAQ,IAAIqjqB,IACZ3nC,EAAW59kB,EACX+omB,EAAWx+L,EAGf,GAFArod,EAAM4zR,KAAOhvO,EACb5kD,EAAM0inB,OAASgZ,EACF,MAAT17nB,EAAe,CACf,IAAI/nI,EAAI+nI,EAAM0inB,OAAOzqvB,EACjBC,EAAI8nI,EAAM0inB,OAAOxqvB,EACE,IAAnB8nI,EAAM0inB,OAAOzqvB,IACbA,EAAIonyB,IAAWzgzB,QAAQ+iI,MAAMplH,MAAQ,GAElB,IAAnByjI,EAAM0inB,OAAOxqvB,IACbA,EAAImnyB,IAAWzgzB,QAAQqtJ,IAAI1vI,MAAQ,GAEvC,IAAIunyB,EAAW,IAAIt5C,IAAWvyvB,EAAGC,EAAG8nI,EAAM0inB,OAAOnmvB,MAAOyjI,EAAM0inB,OAAO/7mB,QACrE3G,EAAM0inB,OAASohD,CACnB,CAGA,OAFA9jqB,EAAM58H,OAAsB,MAAZyjxB,EAAoBA,EAAW,IAAIkc,IACtChlzB,KAAK8+S,OAAO78J,EAGjC,EACOwjqB,CACX,CAnFsC,GCPlCv/vB,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GA0BzC4/vB,IAA8B,SAAUl/vB,GAOxC,SAASk/vB,EAAa7wyB,GAClB,OAAO2xC,EAAOnnD,KAAKK,KAAMmV,IAAYnV,IACzC,CAsGA,OA9GAkmD,IAAU8/vB,EAAcl/vB,GASxBrnD,OAAO4c,eAAe2pyB,EAAar1yB,UAAW,UAAW,CAKrD+F,IAAK,WACD,OAAOowC,EAAOn2C,UAAUq2R,WAAWrnS,KAAKK,KAC5C,EACAmY,YAAY,EACZE,cAAc,IAOlB2tyB,EAAar1yB,UAAUg0yB,eAAiB,SAAU1iqB,GAE9CjiJ,KAAKqlB,OAAwC,OAA9BrlB,KAAKmV,QAAQ2rwB,cAA8D,qBAA9B9gxB,KAAKmV,QAAQ2rwB,aAAgC9gxB,KAAKmV,QAAQ2rwB,aAAe,KACrI,IAAI3vK,EAAclvd,EAAM4zR,KACpBowY,EAAgBhkqB,EAAM0inB,OACtB1kuB,EAAOjgC,KAAKmV,QAAQvT,MACpBipB,EAAS,KACTq7xB,EAAa,IAAIC,IAGrB,IAFAD,EAAWrwY,KAAOs7L,EAClB+0M,EAAW7juB,UAAYpiD,IACd,CACLimxB,EAAalmzB,KAAKomzB,aAAanmxB,EAAMkxkB,EAAa80M,EAAehkqB,GACjEp3H,EAAS7qB,KAAKqmzB,gBAAgBH,GAC9B,KACJ,CAEA,OAAOr7xB,CACX,EAKAm7xB,EAAar1yB,UAAU01yB,gBAAkB,SAAUH,GAE/C,OADa,IAAII,IAAoBJ,EAAWrwY,KAAMqwY,EAAWvhD,OAAQuhD,EAAW7juB,UAAW6juB,EAAWK,eAE9G,EAMAP,EAAar1yB,UAAUy1yB,aAAe,SAAUnmxB,EAAMkxkB,EAAa80M,EAAehkqB,GAC9E,IAAIp3H,EAAS,IAAIs7xB,IACjBt7xB,EAAOw3D,UAAYpiD,EACnBpV,EAAOgrZ,KAAOs7L,EACd80M,EAAgBjmzB,KAAKwmzB,mBAAmBr1M,EAAa80M,GACrD,IACIQ,GADW,IAAIrsC,KACSt7d,OAAO7+Q,EAAMjgC,KAAKmV,QAAQovd,KAAMvke,KAAKqlB,OAAQ4gyB,EAAe90M,EAAY0kM,gBAAgBjtpB,QAAQ,EAAO,IAAI4jnB,IAAM,EAAG,IAC5Ik6C,EAA0C,MAA1BD,EAAapkuB,UAI7By9rB,GAHa79nB,EAAM58H,OAAO6/xB,QAAUhoC,IAAmBypC,YAC9BF,EAAavhzB,MAE3BismB,EAAY2uK,UACvBpJ,EAAQ12wB,KAAKmV,QAAQ8rwB,WACrBjhxB,KAAKmV,mBAAmByxyB,MACxBlwC,EAAMjgpB,MAAQ,IAAIi+oB,IAAS,EAAG,EAAG,MAErCoL,EAASupB,uBAAuBod,EAAczmzB,KAAKmV,QAAQovd,KAAMvke,KAAKmV,QAAQ6iwB,IAAKtB,EAAOuvC,EAAejmzB,KAAKqlB,QAC/FohyB,EAAa5vrB,MAAM4vrB,EAAalc,UAAY,GAK3D,OAJA1/wB,EAAO07xB,eAAiBzmC,EAASsqB,cAAcqc,EAAalc,UAAY,EAAGkc,EAAczmzB,KAAKmV,QAAQovd,KAAM0hV,EAAejmzB,KAAKqlB,QAChIwF,EAAO85uB,OAAS3kwB,KAAK6mzB,kBAAkB11M,EAAa80M,EAAeQ,GACnE57xB,EAAOw3D,UAAYokuB,EAAapkuB,UAChCx3D,EAAOuuB,IAAOstwB,EACP77xB,CACX,EAMAm7xB,EAAar1yB,UAAU61yB,mBAAqB,SAAUr1M,EAAa80M,GAC/D,IAAIlwY,EAAWo7L,EAAY2uK,SAASnpd,WAEpC,OADAsvf,EAAcr9pB,OAAUq9pB,EAAcr9pB,OAAS,EAAKq9pB,EAAcr9pB,OAASmtR,EAASntR,OAASq9pB,EAAc9ryB,EACpG8ryB,CACX,EAMAD,EAAar1yB,UAAUk2yB,kBAAoB,SAAU11M,EAAa80M,EAAeQ,GAC7E,IAAI7b,EAAW6b,EAAa9pC,WACxBziwB,EAAI+ryB,EAAc/ryB,EAClBC,EAAI8ryB,EAAc9ryB,EAClBqE,EAASynyB,EAAcznyB,MAAQ,EAAKynyB,EAAcznyB,MAAQosxB,EAASpsxB,MACnEoqI,EAASgipB,EAAShipB,OAGtB1uI,EAFkBi3lB,EAAY2uK,SAASspB,4BAA4BwB,EAAUqb,EAAc/ryB,EAAG+ryB,EAAc9ryB,EAAGna,KAAKqlB,QAEpGnL,EAEhB,IAAI4syB,EAAgB31M,EAAY2uK,SAAS0qB,0BAA0BI,EAAShipB,OAAQq9pB,EAAcr9pB,OAAQ5oJ,KAAKqlB,QAG/G,OADa,IAAIonvB,IAAWvyvB,EAD5BC,GAAK2syB,EAC6BtoyB,EAAOoqI,EAE7C,EACOo9pB,CACX,CAhHkC,CAgHhCvB,KAEE0B,IACA,WACA,EAIAG,IAAqC,SAAUx/vB,GAO/C,SAASw/vB,EAAoBzwY,EAAM8uV,EAAQtirB,EAAWkkuB,GAClD,IAAIjnzB,EAAQwnD,EAAOnnD,KAAKK,KAAM61a,EAAM8uV,IAAW3kwB,KAG/C,OAFAV,EAAMynzB,cAAgB1kuB,EACtB/iF,EAAM0nzB,mBAAqBT,EACpBjnzB,CACX,CAwBA,OAnCA4mD,IAAUogwB,EAAqBx/vB,GAY/BrnD,OAAO4c,eAAeiqyB,EAAoB31yB,UAAW,YAAa,CAM9D+F,IAAK,WACD,OAAO1W,KAAK+mzB,aAChB,EACA5uyB,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAeiqyB,EAAoB31yB,UAAW,iBAAkB,CAKnE+F,IAAK,WACD,OAAO1W,KAAKgnzB,kBAChB,EACA7uyB,YAAY,EACZE,cAAc,IAEXiuyB,CACX,CArCyC,CAqCvCd,KCvLEt/vB,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAkCzC6gwB,IAAgC,SAAUngwB,GAE1C,SAASmgwB,EAAe/+mB,EAAMrB,EAAM9G,EAAMuqa,EAAMC,GAC5C,IAAIjrmB,EAAQwnD,EAAOnnD,KAAKK,OAASA,KAwDjC,OAlDAV,EAAMyV,QAAU,GAKhBzV,EAAMg7d,aAAe,GAMrBh7d,EAAM4nzB,kBAAmB,EAMzB5nzB,EAAM6nzB,kBAAmB,EACL,qBAATj/mB,IAGc,kBAATA,GAAqC,qBAATrB,GACxCvnM,EAAMyV,QAAUmzL,EAChB5oM,EAAMg7d,aAAepyR,GAEA,kBAATA,GAAqBrB,aAAgBu2kB,KAA2B,qBAATr9kB,GACnEzgM,EAAMyV,QAAUmzL,EAChB5oM,EAAMg7d,aAAepyR,EACrB5oM,EAAMqzyB,QAAU9rmB,GAEK,kBAATqB,GAAqBrB,aAAgBu2kB,KAAWr9kB,aAAgB+2kB,KAA0B,qBAATxsK,GAC7FhrmB,EAAMyV,QAAUmzL,EAChB5oM,EAAMg7d,aAAepyR,EACrB5oM,EAAMqzyB,QAAU9rmB,EAChBvnM,EAAMozyB,OAAS3ymB,GAEM,kBAATmI,GAAqBrB,aAAgBu2kB,KAAWr9kB,aAAgBu2kB,KAA4B,qBAAThsK,GAC/FhrmB,EAAMyV,QAAUmzL,EAChB5oM,EAAMg7d,aAAepyR,EACrB5oM,EAAMqzyB,QAAU9rmB,EAChBvnM,EAAMq4wB,SAAW53kB,IAGjBzgM,EAAMyV,QAAUmzL,EAChB5oM,EAAMg7d,aAAepyR,EACrB5oM,EAAMqzyB,QAAU9rmB,EAChBvnM,EAAMozyB,OAAS3ymB,EACfzgM,EAAMq4wB,SAAWrtK,EACjBhrmB,EAAM+lB,OAASkllB,IAEZjrmB,CACX,CAgUA,OA3XA4mD,IAAU+gwB,EAAgBngwB,GA4D1BrnD,OAAO4c,eAAe4qyB,EAAet2yB,UAAW,OAAQ,CA6BpD+F,IAAK,WACD,OAAO1W,KAAK+U,OAChB,EACA2E,IAAK,SAAU9X,GACX5B,KAAKs6d,aAAe14d,EACpB5B,KAAK+U,QAAUnT,CACnB,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAe4qyB,EAAet2yB,UAAW,QAAS,CAMrD+F,IAAK,WACD,OAAO1W,KAAKs6d,YAChB,EACAnid,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAe4qyB,EAAet2yB,UAAW,MAAO,CAMnD+F,IAAK,WACD,OAAO1W,KAAK0yyB,MAChB,EAEAh5xB,IAAK,SAAU9X,GACX5B,KAAK0yyB,OAAS9wyB,CAClB,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAe4qyB,EAAet2yB,UAAW,QAAS,CAMrD+F,IAAK,WACD,OAAO1W,KAAK23wB,QAChB,EAEAj+vB,IAAK,SAAU9X,GACX5B,KAAK23wB,SAAW/1wB,CACpB,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAe4qyB,EAAet2yB,UAAW,OAAQ,CA6BpD+F,IAAK,WACD,OAAO1W,KAAK2yyB,OAChB,EACAj5xB,IAAK,SAAU9X,GACX5B,KAAK2yyB,QAAU/wyB,EACX5B,KAAK2yyB,mBAAmBsN,KAAmC,MAAhBjgzB,KAAK+U,QAChD/U,KAAKs6d,aAAe2lV,IAAgBxxuB,QAAQzuE,KAAK+U,SAGjD/U,KAAKs6d,aAAet6d,KAAK+U,OAEjC,EACAoD,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAe4qyB,EAAet2yB,UAAW,eAAgB,CAK5D+F,IAAK,WACD,OAAO1W,KAAKqlB,MAChB,EACA3L,IAAK,SAAU9X,GACX5B,KAAKqlB,OAASzjB,CAClB,EACAuW,YAAY,EACZE,cAAc,IAOlB4uyB,EAAet2yB,UAAUswwB,SAAW,WAChC,OAAyB,MAAjBjhxB,KAAK23wB,UAA6C,qBAAlB33wB,KAAK23wB,SAA4B,IAAIpB,IAAc,IAAI7B,IAAS,EAAG,EAAG,IAAM10wB,KAAK23wB,QAC7H,EAYAsvC,EAAet2yB,UAAUmuS,OAAS,SAAU78J,GAGxC,OAFe,IAAI+jqB,IAAahmzB,MACV8+S,OAAO78J,EAEjC,EACAglqB,EAAet2yB,UAAUy2yB,SAAW,SAAUvgnB,EAAM9G,EAAMuqa,EAAMC,GAC5D,GAAIxqa,aAAgBwskB,KAAgC,qBAAfxskB,EAAKvhL,OAAyC,qBAAT8rlB,EAEtE,OADAtqmB,KAAKknzB,kBAAmB,EACjBlnzB,KAAKonzB,SAASvgnB,EAAM9G,EAAK7lL,EAAG6lL,EAAK5lL,GAEvC,GAAoB,kBAAT4lL,GAAqC,kBAATuqa,GAAqC,qBAATC,EAEpE,OADAvqmB,KAAKknzB,kBAAmB,EACjBlnzB,KAAKonzB,SAASvgnB,EAAM9G,EAAMuqa,EAAM,MAEtC,GAAIvqa,aAAgB0skB,KAAoC,qBAAf1skB,EAAKvhL,OAAyC,qBAAT8rlB,EAC/E,OAAOtqmB,KAAKonzB,SAASvgnB,EAAM9G,EAAM,MAEhC,GAAIA,aAAgBwskB,KAAgC,qBAAfxskB,EAAKvhL,OAAyB8rlB,aAAgB06M,IAEpF,OADAhlzB,KAAKknzB,kBAAmB,EACjBlnzB,KAAKonzB,SAASvgnB,EAAM9G,EAAK7lL,EAAG6lL,EAAK5lL,EAAGmwlB,GAE1C,GAAoB,kBAATvqa,GAAqC,kBAATuqa,IAAsBC,aAAgBy6M,KAA2B,MAARz6M,GAAe,CAChHvqmB,KAAKknzB,kBAAmB,EACxB,IAAI1oyB,EAASqoL,EAAKi5kB,SAASnpd,WAAWn4S,MAAQuhL,EAC1CuqmB,EAAkB,IAAI79B,IAAW1skB,EAAMuqa,EAAM9rlB,EAAO,GACxD,OAAOxe,KAAKonzB,SAASvgnB,EAAMyjmB,EAAiB//L,EAChD,CACK,GAAIxqa,aAAgB0skB,KAAoC,qBAAf1skB,EAAKvhL,OAAyC,mBAAT8rlB,EAC/E,OAAOtqmB,KAAKonzB,SAASvgnB,EAAM9G,EAAM,MAGjC,IAAI++G,EAAS,IAAIs7d,IACjB,GAAIp6wB,KAAKknzB,iBAAkB,CACvB,IAAIG,EAAqBvogB,EAAOA,OAAO9+S,KAAK4B,MAAO5B,KAAKuke,KAAMvke,KAAK8gxB,aAAc,IAAItU,IAAO3lkB,EAAKi5kB,SAASnpd,WAAWn4S,MAAQuhL,EAAK7lL,EAAI,IAAI,EAAM2sL,EAAKi5kB,SAASnpd,YAC1J0+e,OAAe,EAEf13B,EAAW59kB,EACX+omB,EAAWx+L,GAFXrod,EAAQ,IAAIqjqB,KAGVzvY,KAAOhvO,EAIb,GAFA5kD,EAAM0inB,OAASgZ,EACf17nB,EAAM58H,OAAsB,MAAZyjxB,EAAoBA,EAAW,IAAIkc,IAC/CqC,EAAmBxwrB,MAAMzzH,OAAS,EAAG,CAErC,GADApD,KAAKigC,KAAOonxB,EAAmB7qC,YAAY,GAAGv8uB,KAC1CgiH,EAAM0inB,OAAOxqvB,GAAK8nI,EAAM4zR,KAAKiqW,SAASnpd,WAAW/tK,OAAQ,CACzD,IAAI0+pB,EAAmB,IAAI/6C,IAAOtqnB,EAAM0inB,OAAOzqvB,EAAG+nI,EAAM0inB,OAAOxqvB,GAC/Dk7xB,EAAer1yB,KAAK8+S,OAAO78J,GAG3B,IAFA,IAAI0inB,EAAS,IAAI8H,IAAW,EAAG4oC,EAAa1wC,OAAOxqvB,EAAIktyB,EAAmBh5qB,WAAYw4D,EAAKi5kB,SAASnpd,WAAWn4S,MAAO6oyB,EAAmBh5qB,YAEhIliI,EAAI,EAAGA,EAAIk7yB,EAAmBxwrB,MAAMzzH,OAAQ+I,IAgBjD,GAfA81I,EAAM4zR,KAAOw/X,EAAax/X,KAC1B5zR,EAAM0inB,OAAS,IAAI8H,IAAW,IAAIF,IAAO5H,EAAOzqvB,EAAGyqvB,EAAOxqvB,GAAI,IAAIqyvB,IAAM7H,EAAOnmvB,MAAOmmvB,EAAO/7mB,SAC7F5oJ,KAAKigC,KAAOonxB,EAAmB7qC,YAAYrwwB,GAAG8zB,KAC1C0kuB,EAAOxqvB,EAAIktyB,EAAmBh5qB,WAAagnqB,EAAax/X,KAAKiqW,SAASnpd,WAAW/tK,SAEjF3G,EAAM4zR,KAAO5zR,EAAM4zR,KAAKiqW,SAAS6rB,cAE7BhnC,EADA2iD,EAAiBntyB,EAAKk7xB,EAAax/X,KAAKiqW,SAASnpd,WAAW/tK,OAASyspB,EAAa1wC,OAAO/7mB,OAChF,IAAI6jnB,IAAW,EAAG4oC,EAAa1wC,OAAO/7mB,OAAQyspB,EAAax/X,KAAKiqW,SAASnpd,WAAWn4S,MAAO6oyB,EAAmBh5qB,YAG9G,IAAIo+nB,IAAW,EAAG,EAAG4oC,EAAax/X,KAAKiqW,SAASnpd,WAAWn4S,MAAO6oyB,EAAmBh5qB,YAElG4T,EAAM0inB,OAASA,GAEnB0wC,EAAer1yB,KAAK8+S,OAAO78J,GACvB91I,IAAOk7yB,EAAmBxwrB,MAAMzzH,OAAS,EACzCuhwB,EAAS,IAAI8H,IAAW,EAAG4oC,EAAa1wC,OAAOxqvB,EAAIktyB,EAAmBh5qB,WAAYgnqB,EAAax/X,KAAKiqW,SAASnpd,WAAWn4S,MAAO6oyB,EAAmBh5qB,gBAEjJ,CACD,IAAI4poB,EAAYj4wB,KAAKuke,KAAKk5S,cAAcz9wB,KAAKigC,KAAMjgC,KAAKqlB,QAAQ7G,MAChE62xB,EAAer1yB,KAAKunzB,sBAAsBlS,EAAcp9B,EAAWo9B,EAAax/X,KAAKiqW,SAASnpd,WAAWn4S,MAAO,EACpH,CAER,CACA,OAAO62xB,CACX,CAEI,IAAImS,EAAWxnzB,KAAKuke,KAAKk5S,cAAcz9wB,KAAKigC,KAAMjgC,KAAKqlB,QAKvD,OAJI48H,EAAM0inB,OAAOxqvB,GAAK8nI,EAAM4zR,KAAKiqW,SAASnpd,WAAW/tK,SACjDyspB,EAAer1yB,KAAK8+S,OAAO78J,GAC3BozpB,EAAer1yB,KAAKunzB,sBAAsBlS,EAAcmS,EAAShpyB,MAAO62xB,EAAax/X,KAAKiqW,SAASnpd,WAAWn4S,MAAO,IAElH62xB,CAEf,CAEQA,EAAev2f,EAAOA,OAAO9+S,KAAK4B,MAAO5B,KAAKuke,KAAMvke,KAAK8gxB,aAAc,IAAItU,IAAMzskB,EAAKvhL,MAAO,IAAI,EAAOqoL,EAAKi5kB,SAASnpd,YAA1H,IAEI10K,EADAp3H,OAAS,EAET8yvB,EAAW59kB,EACX+omB,EAAWx+L,EAIf,IANIrod,EAAQ,IAAIqjqB,KAGVzvY,KAAOhvO,EACb5kD,EAAM0inB,OAASgZ,EACf17nB,EAAM58H,OAAsB,MAAZyjxB,EAAoBA,EAAW,IAAIkc,IAC/C3P,EAAax+qB,MAAMzzH,OAAS,EAAG,CAE/B,GADApD,KAAKigC,KAAOo1wB,EAAa74B,YAAY,GAAGv8uB,KACpCgiH,EAAM0inB,OAAOxqvB,GAAK8nI,EAAM4zR,KAAKiqW,SAASnpd,WAAW/tK,OAAQ,CACrD0+pB,EAAmB,IAAI/6C,IAAOtqnB,EAAM0inB,OAAOzqvB,EAAG+nI,EAAM0inB,OAAOxqvB,GAC/D0Q,EAAS7qB,KAAK8+S,OAAO78J,GAGrB,IAFI0inB,EAAS,IAAI8H,IAAWkR,EAASzjwB,EAAG2Q,EAAO85uB,OAAOxqvB,EAAIk7xB,EAAahnqB,WAAYsvoB,EAASn/vB,MAAO62xB,EAAahnqB,YAEvGliI,EAAI,EAAGA,EAAIkpyB,EAAax+qB,MAAMzzH,OAAQ+I,IAgB3C,GAfA81I,EAAM4zR,KAAOhrZ,EAAOgrZ,KACpB5zR,EAAM0inB,OAAS,IAAI8H,IAAW9H,EAAOzqvB,EAAGyqvB,EAAOxqvB,EAAGwqvB,EAAOnmvB,MAAOmmvB,EAAO/7mB,QACvE5oJ,KAAKigC,KAAOo1wB,EAAa74B,YAAYrwwB,GAAG8zB,KACpC0kuB,EAAOxqvB,EAAIk7xB,EAAahnqB,WAAaxjH,EAAOgrZ,KAAKiqW,SAASnpd,WAAW/tK,SAErE3G,EAAM4zR,KAAO5zR,EAAM4zR,KAAKiqW,SAAS6rB,cAE7BhnC,EADA2iD,EAAiBntyB,EAAK0Q,EAAOgrZ,KAAKiqW,SAASnpd,WAAW/tK,OAAS/9H,EAAO85uB,OAAO/7mB,OACpE,IAAI6jnB,IAAWkR,EAASzjwB,EAAGm7xB,EAAahnqB,WAAYsvoB,EAASn/vB,MAAO62xB,EAAahnqB,YAGjF,IAAIo+nB,IAAWkR,EAASzjwB,EAAG,EAAGyjwB,EAASn/vB,MAAO62xB,EAAahnqB,YAExE4T,EAAM0inB,OAASA,GAEnB95uB,EAAS7qB,KAAK8+S,OAAO78J,GACjB91I,IAAOkpyB,EAAax+qB,MAAMzzH,OAAS,EACnCuhwB,EAAS,IAAI8H,IAAWkR,EAASzjwB,EAAG2Q,EAAO85uB,OAAOxqvB,EAAIk7xB,EAAahnqB,WAAYsvoB,EAASn/vB,MAAO62xB,EAAahnqB,gBAE3G,CACG4poB,EAAYj4wB,KAAKuke,KAAKk5S,cAAcz9wB,KAAKigC,KAAMjgC,KAAKqlB,QAAQ7G,MAChEqM,EAAS7qB,KAAKunzB,sBAAsB18xB,EAAQotvB,EAAW0F,EAASn/vB,MAAOm/vB,EAASzjwB,EACpF,CAER,CACA,OAAO2Q,CACX,CAEQ28xB,EAAWxnzB,KAAKuke,KAAKk5S,cAAcz9wB,KAAKigC,KAAMjgC,KAAKqlB,QAKvD,OAJI48H,EAAM0inB,OAAOxqvB,GAAK8nI,EAAM4zR,KAAKiqW,SAASnpd,WAAW/tK,SACjD/9H,EAAS7qB,KAAK8+S,OAAO78J,GACrBp3H,EAAS7qB,KAAKunzB,sBAAsB18xB,EAAQ28xB,EAAShpyB,MAAOm/vB,EAASn/vB,MAAOm/vB,EAASzjwB,IAElF2Q,CAIvB,EACAo8xB,EAAet2yB,UAAU42yB,sBAAwB,SAAU18xB,EAAQotvB,EAAWwvC,EAAcC,GAkBxF,OAhByB,MAArB1nzB,KAAK8gxB,cAAqD,qBAAtB9gxB,KAAK8gxB,cAAgC9gxB,KAAK8gxB,aAAa9kgB,YAAc4yf,IAAiBk8B,QAC1HjgxB,EAAO85uB,OAAOzqvB,EAAIwtyB,GAAiBD,EAAexvC,GAAa,EAC/DptvB,EAAO85uB,OAAOnmvB,MAAQy5vB,GAEI,MAArBj4wB,KAAK8gxB,cAAqD,qBAAtB9gxB,KAAK8gxB,cAAgC9gxB,KAAK8gxB,aAAa9kgB,YAAc4yf,IAAiBlnnB,OAC/H78H,EAAO85uB,OAAOzqvB,EAAIwtyB,GAAiBD,EAAexvC,GAClDptvB,EAAO85uB,OAAOnmvB,MAAQy5vB,GAEI,MAArBj4wB,KAAK8gxB,cAAqD,qBAAtB9gxB,KAAK8gxB,cAAgC9gxB,KAAK8gxB,aAAa9kgB,YAAc4yf,IAAiB+9B,SAC/H9hxB,EAAO85uB,OAAOzqvB,EAAIwtyB,EAClB78xB,EAAO85uB,OAAOnmvB,MAAQipyB,IAGtB58xB,EAAO85uB,OAAOnmvB,MAAQkpyB,EACtB78xB,EAAO85uB,OAAOnmvB,MAAQy5vB,GAEnBptvB,CACX,EACOo8xB,CACX,CA7XoC,CA6XlCxB,KC7YEkC,IAA+B,WAC/B,SAASA,EAAcz/mB,GAMnBloM,KAAKshwB,qBAAuB,IAAIjE,IAKhCr9vB,KAAKw2wB,SAAW,IAAI9B,IAAS,IAAK,IAAK,KAKvC10wB,KAAK4gS,UAAY,IAAI6re,IAAW,EAAG,EAAG,EAAG,GAKzCzswB,KAAKmzyB,QAAU,KAMfnzyB,KAAKgkzB,UAAY,IAAIztC,IAAc,IAAI7B,IAAS,EAAG,EAAG,IAMtD10wB,KAAK4nzB,SAAW,IAAI3H,IAAgBzwC,IAAcitC,WAAY,IAM9Dz8yB,KAAKqlB,OAAS,IAAIgzvB,IAAgBzJ,IAAiBpnnB,MAKnDxnJ,KAAK+U,QAAU,GAKf/U,KAAK6nzB,cAAgB,IAAI9mD,IAKzB/gwB,KAAK8nzB,cAAgB,IAAIpzC,IAMzB10wB,KAAK+nzB,SAAW,EACI,qBAAT7/mB,EACPloM,KAAK6tK,cAGL7tK,KAAK6tK,aACL7tK,KAAK2kwB,OAASz8jB,EAEtB,CAoLA,OAnLAzoM,OAAO4c,eAAesryB,EAAch3yB,UAAW,QAAS,CAMpD+F,IAAK,WACD,OAAO1W,KAAKw2wB,QAChB,EACA98vB,IAAK,SAAU9X,GACX5B,KAAKw2wB,SAAW50wB,CACpB,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAesryB,EAAch3yB,UAAW,aAAc,CAKzD+F,IAAK,WACD,OAAO1W,KAAK8nzB,aAChB,EACApuyB,IAAK,SAAU9X,GACX5B,KAAK8nzB,cAAgBlmzB,CACzB,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAesryB,EAAch3yB,UAAW,SAAU,CAKrD+F,IAAK,WACD,OAAO1W,KAAK4gS,SAChB,EACAlnR,IAAK,SAAU9X,GACX5B,KAAK4gS,UAAYh/R,CACrB,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAesryB,EAAch3yB,UAAW,OAAQ,CAKnD+F,IAAK,WACD,OAAO1W,KAAKmzyB,OAChB,EACAh7xB,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAesryB,EAAch3yB,UAAW,OAAQ,CAKnD+F,IAAK,WACD,OAAO1W,KAAK4nzB,QAChB,EACAluyB,IAAK,SAAU9X,GACX5B,KAAK4nzB,SAAWhmzB,CACpB,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAesryB,EAAch3yB,UAAW,eAAgB,CAK3D+F,IAAK,WACD,OAAO1W,KAAKqlB,MAChB,EACA3L,IAAK,SAAU9X,GACX5B,KAAKqlB,OAASzjB,CAClB,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAesryB,EAAch3yB,UAAW,QAAS,CAKpD+F,IAAK,WACD,OAAO1W,KAAKgkzB,SAChB,EACAtqyB,IAAK,SAAU9X,GACX5B,KAAKgkzB,UAAYpizB,CACrB,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAesryB,EAAch3yB,UAAW,OAAQ,CAKnD+F,IAAK,WACD,OAAO1W,KAAK+U,OAChB,EACA2E,IAAK,SAAU9X,GACX5B,KAAK+U,QAAUnT,EACf5B,KAAKghwB,WAAWl5sB,MAAM44F,SAAS1gJ,KAAKshwB,qBAAqBxud,SAAU,IAAIg0d,IAAU9mwB,KAAK+U,SAC1F,EACAoD,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAesryB,EAAch3yB,UAAW,aAAc,CAKzD+F,IAAK,WACD,OAAO1W,KAAK6nzB,aAChB,EACAnuyB,IAAK,SAAU9X,GACX5B,KAAK6nzB,cAAgBjmzB,CACzB,EACAuW,YAAY,EACZE,cAAc,IAOlBsvyB,EAAch3yB,UAAUk9J,WAAa,WACjC7tK,KAAK6nzB,cAAcjlD,oBAAsB,IAAIS,IAA2BrjwB,MACxEA,KAAK6nzB,cAAc//vB,MAAM44F,SAAS1gJ,KAAKshwB,qBAAqB10vB,KAAM,IAAIisvB,IAAQ74vB,KAAKshwB,qBAAqBhD,OAC5G,EAKAqpD,EAAch3yB,UAAUykyB,QAAU,SAAUv/X,GACxC71a,KAAKmzyB,QAAUt9X,EACf71a,KAAK6nzB,cAAc//vB,MAAM44F,SAAS1gJ,KAAKshwB,qBAAqB5+uB,EAAG,IAAI4jvB,IAAmBtmwB,KAAKmzyB,SAC/F,EAKAwU,EAAch3yB,UAAUwxvB,UAAY,WAChCniwB,KAAKq+d,MACT,EAMAspV,EAAch3yB,UAAU0td,KAAO,WAC3B,IAAI2pV,EAAkB,IAAIv7C,IAAWzswB,KAAK4gS,UAAU1mR,EAAGla,KAAK4gS,UAAUzmR,EAAGna,KAAK4gS,UAAUpiR,MAAOxe,KAAK4gS,UAAUh4I,QAC1GgjpB,EAAU5ryB,KAAKmzyB,QAAQvH,QACvBqc,EAAgBD,EAAgBp/pB,OAChCs/pB,EAAgBtc,EAAQiN,iBAAiB74yB,KAAK61a,KAAM,IAAI02V,IAAOy7C,EAAgB9tyB,EAAG8tyB,EAAgB7tyB,IACtG6tyB,EAAgB9tyB,EAAIguyB,EAAchuyB,EAClC8tyB,EAAgBxpyB,MAAQ0pyB,EAAchuyB,EAAI8tyB,EAAgBxpyB,MAC1DwpyB,EAAgB7tyB,EAAK+tyB,EAAc/tyB,EAAIna,KAAK61a,KAAK3kZ,SAASgglB,aAAa8/J,QAAQ9inB,IAC/E85pB,EAAgBp/pB,OAASo/pB,EAAgB7tyB,EAAI8tyB,EAC7CjozB,KAAK6nzB,cAAc//vB,MAAM44F,SAAS1gJ,KAAKshwB,qBAAqB5se,KAAMsve,IAASU,cAAcsjD,IACzFhozB,KAAKghwB,WAAWl5sB,MAAM44F,SAAS1gJ,KAAKshwB,qBAAqBhnnB,GAAI,IAAIkpnB,IAAUxjwB,KAAK+nzB,UACpF,EACAtozB,OAAO4c,eAAesryB,EAAch3yB,UAAW,UAAW,CAOtD+F,IAAK,WACD,OAAO1W,KAAK6nzB,aAChB,EACA1vyB,YAAY,EACZE,cAAc,IAEXsvyB,CACX,CA1PmC,GClB/BzhwB,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAmBzC+hwB,IAAmC,SAAUrhwB,GAE7C,SAASqhwB,EAAkBvnhB,GACvB,OAAO95O,EAAOnnD,KAAKK,KAAM4gS,IAAc5gS,IAC3C,CAUA,OAbAkmD,IAAUiiwB,EAAmBrhwB,GAS7BqhwB,EAAkBx3yB,UAAUk9J,WAAa,WACrC/mH,EAAOn2C,UAAUk9J,WAAWluK,KAAKK,MACjCA,KAAKghwB,WAAWl5sB,MAAM44F,SAAS1gJ,KAAKshwB,qBAAqB1D,QAAS,IAAI/E,IAAQ74vB,KAAKshwB,qBAAqBl5sB,MAC5G,EACO+/vB,CACX,CAfuC,CAerCR,KClCEzhwB,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAkBzCgiwB,IAAyC,SAAUthwB,GAOnD,SAASshwB,EAAwBxnhB,GAC7B,IAAIthS,EAAQwnD,EAAOnnD,KAAKK,KAAM4gS,IAAc5gS,KAQ5C,OADAV,EAAM+ozB,UAAY,KACX/ozB,CACX,CAcA,OA9BA4mD,IAAUkiwB,EAAyBthwB,GAsBnCshwB,EAAwBz3yB,UAAU23yB,aAAe,SAAU1mzB,GACvD,GAAqB,qBAAVA,EACP,OAAO5B,KAAKqozB,UAGZrozB,KAAKqozB,UAAYzmzB,CAEzB,EACOwmzB,CACX,CAhC6C,CAgC3CD,KC1CEI,IAA2B,WAM3B,SAASA,IAKLvozB,KAAKk1E,OAAS,KAKdl1E,KAAKshwB,qBAAuB,IAAIjE,IAEhCr9vB,KAAK6tK,YACT,CAqDA,OApDApuK,OAAO4c,eAAeksyB,EAAU53yB,UAAW,OAAQ,CAM/C+F,IAAK,WACD,OAAO1W,KAAKk1E,MAChB,EACAx7D,IAAK,SAAU9X,GAEX5B,KAAKk1E,OAAStzE,EACd5B,KAAKghwB,WAAWl5sB,MAAM44F,SAAS1gJ,KAAKshwB,qBAAqB/qvB,KAAM,IAAI+vvB,IAAmBtmwB,KAAKk1E,QAE/F,EACA/8D,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAeksyB,EAAU53yB,UAAW,aAAc,CAKrD+F,IAAK,WAID,MAHkC,qBAAvB1W,KAAK6nzB,gBACZ7nzB,KAAK6nzB,cAAgB,IAAI9mD,KAEtB/gwB,KAAK6nzB,aAChB,EACA1vyB,YAAY,EACZE,cAAc,IAOlBkwyB,EAAU53yB,UAAUk9J,WAAa,WAC7B7tK,KAAKghwB,WAAWl5sB,MAAM44F,SAAS1gJ,KAAKshwB,qBAAqB10vB,KAAM,IAAIisvB,IAAQ74vB,KAAKshwB,qBAAqBpsrB,QACzG,EACAz1E,OAAO4c,eAAeksyB,EAAU53yB,UAAW,UAAW,CAMlD+F,IAAK,WACD,OAAO1W,KAAKghwB,UAChB,EACA7ovB,YAAY,EACZE,cAAc,IAEXkwyB,CACX,CAzE+B,GCR3BriwB,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAoBzCoiwB,IAA8B,SAAU1hwB,GAExC,SAAS0hwB,EAAavpH,GAClB,IAAI3/rB,EAAQwnD,EAAOnnD,KAAKK,OAASA,KAQjC,OADAV,EAAMmpzB,0BAA4B,GAC3BnpzB,CACX,CA0BA,OArCA4mD,IAAUsiwB,EAAc1hwB,GAYxBrnD,OAAO4c,eAAemsyB,EAAa73yB,UAAW,MAAO,CAMjD+F,IAAK,WACD,OAAO1W,KAAKyozB,yBAChB,EACA/uyB,IAAK,SAAU9X,GACX5B,KAAKyozB,0BAA4B7mzB,EACjC5B,KAAKghwB,WAAWl5sB,MAAM44F,SAAS1gJ,KAAKshwB,qBAAqBriE,IAAK,IAAI6nE,IAAU9mwB,KAAKyozB,2BACrF,EACAtwyB,YAAY,EACZE,cAAc,IAOlBmwyB,EAAa73yB,UAAUk9J,WAAa,WAChC/mH,EAAOn2C,UAAUk9J,WAAWluK,KAAKK,MACjCA,KAAKghwB,WAAWl5sB,MAAM44F,SAAS1gJ,KAAKshwB,qBAAqBrgvB,EAAG,IAAI43uB,IAAQ74vB,KAAKshwB,qBAAqBriE,KACtG,EACOupH,CACX,CAvCkC,CAuChCD,KC3DEriwB,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAoBzCsiwB,IAAkC,SAAU5hwB,GAE5C,SAAS4hwB,EAAiB9nhB,EAAWq+Z,GACjC,IAAI3/rB,EAAQwnD,EAAOnnD,KAAKK,KAAM4gS,IAAc5gS,KAI5C,MAHmB,qBAARi/rB,IACP3/rB,EAAM2/rB,IAAMA,GAET3/rB,CACX,CA0DA,OAjEA4mD,IAAUwiwB,EAAkB5hwB,GAQ5BrnD,OAAO4c,eAAeqsyB,EAAiB/3yB,UAAW,YAAa,CAK3D+F,IAAK,WAID,MAHiC,qBAAtB1W,KAAK2ozB,eACZ3ozB,KAAK2ozB,aAAe,IAAIH,KAErBxozB,KAAK2ozB,YAChB,EACAxwyB,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAeqsyB,EAAiB/3yB,UAAW,MAAO,CAMrD+F,IAAK,WACD,OAAO1W,KAAK4ozB,UAAU3pH,GAC1B,EACAvlrB,IAAK,SAAU9X,GACP5B,KAAK4ozB,UAAU3pH,MAAQr9rB,IACvB5B,KAAK4ozB,UAAU3pH,IAAMr9rB,EAE7B,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAeqsyB,EAAiB/3yB,UAAW,SAAU,CAKxD+F,IAAK,WACD,OAAO1W,KAAKsozB,cAChB,EACA5uyB,IAAK,SAAU9X,GACX5B,KAAKsozB,aAAa1mzB,GAClB5B,KAAK4ozB,UAAUryyB,KAAO3U,CAC1B,EACAuW,YAAY,EACZE,cAAc,IAOlBqwyB,EAAiB/3yB,UAAUk9J,WAAa,WACpC/mH,EAAOn2C,UAAUk9J,WAAWluK,KAAKK,MACjCA,KAAKghwB,WAAWl5sB,MAAM44F,SAAS1gJ,KAAKshwB,qBAAqB1D,QAAS,IAAI/E,IAAQ74vB,KAAKshwB,qBAAqBl5sB,OACpFpoD,KAAK4ozB,UAAUzzyB,QACnCnV,KAAKghwB,WAAWl5sB,MAAM44F,SAAS1gJ,KAAKshwB,qBAAqBrrvB,EAAGjW,KAAK4ozB,UAAUzzyB,QAC/E,EACOuzyB,CACX,CAnEsC,CAmEpCN,KCvFEliwB,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAiDzCwgwB,IAAgC,SAAU9/vB,GAO1C,SAAS8/vB,IACL,IAAItnzB,EAAQwnD,EAAOnnD,KAAKK,OAASA,KAOjCV,EAAMupzB,uBAAyB,GAM/BvpzB,EAAMwpzB,cAAgB,KAOtBxpzB,EAAMypzB,mBAAoB,EAC1BzpzB,EAAM0pzB,cAAgB,IAAIhlD,IAC1B,IAAK,IAAI73vB,EAAI,EAAGA,EAAI,EAAGA,IACnB7M,EAAM0pzB,cAAc51xB,IAAI,IAAIowuB,IAAU,IAE1C,OAAOlkwB,CACX,CAuLA,OAxNA4mD,IAAU0gwB,EAAgB9/vB,GAkC1BrnD,OAAO4c,eAAeuqyB,EAAej2yB,UAAW,MAAO,CA6BnD+F,IAAK,WACD,OAAO1W,KAAK6ozB,sBAChB,EACAnvyB,IAAK,SAAU9X,GACX,GAAqB,IAAjBA,EAAMwB,OACN,MAAM,IAAI2pB,MAAM,qDAEpB/sB,KAAK6ozB,uBAAyBjnzB,CAClC,EACAuW,YAAY,EACZE,cAAc,IAElBuuyB,EAAej2yB,UAAU2zd,KAAO,SAAUp8R,EAAMrB,GAC5C,GAAIqB,aAAgBw9lB,IAAS,CACzB,IAAI5mf,EAAS,IAAIs7d,IACb6uC,EAAoBjpzB,KAAKuke,KAAKp+d,MAClC,GAAI0gM,aAAgB0lkB,IAAQ,CAIxB,GAHAvswB,KAAK+ozB,mBAAoB,EACzB/ozB,KAAKuke,KAAKp+d,MAAQopwB,IAAa73Y,UAEG,KAD9B29a,EAAev2f,EAAOA,OAAO9+S,KAAK4B,MAAO5B,KAAKuke,KAAMvke,KAAK8gxB,aAAc,IAAItU,IAAOtkkB,EAAK43kB,SAASnpd,WAAWn4S,MAAQqoL,EAAK3sL,EAAI,IAAI,EAAMguL,EAAK43kB,SAASnpd,aACvI9/L,MAAMzzH,OAAc,CACjC,IAAIwnyB,EAAW5qyB,KAAKuke,KAAKk5S,cAAcz9wB,KAAK4B,OACxC8yR,EAAO,IAAI+3e,IAAW5lkB,EAAM+jmB,GAChCl2gB,EAAO10R,KAAKkpzB,gBAAgBx0hB,EAAMk2gB,EAASpsxB,MAAO0pL,EAAK43kB,SAASnpd,WAAWn4S,MAAOqoL,EAAK3sL,GACvFla,KAAK8ozB,cAAgB,IAAIJ,IAAiBh0hB,EAAM10R,KAAKivH,KACrDjvH,KAAK8ozB,cAAc9nD,WAAWl5sB,MAAM44F,SAAS,SAAU1gJ,KAAKgpzB,eAC5D9gnB,EAAKkN,YAAYhiL,IAAIpzB,KAAK8ozB,eAC1B,IAAIj+xB,EAAS7qB,KAAKonzB,SAASl/mB,EAAMrB,GAEjC,OADA7mM,KAAKuke,KAAKp+d,MAAQ8izB,EACXp+xB,CACX,CAEQA,EAAS7qB,KAAKmpzB,0BAA0B9T,EAAcntmB,EAAMrB,GAEhE,OADA7mM,KAAKuke,KAAKp+d,MAAQ8izB,EACXp+xB,CAEf,CAEI,IAAIwqxB,EAAev2f,EAAOA,OAAO9+S,KAAK4B,MAAO5B,KAAKuke,KAAMvke,KAAK8gxB,aAAc,IAAItU,IAAM3lkB,EAAKroL,MAAO,IAAI,EAAO,IAAIguvB,IAAM,EAAG,IAEzH,GADAxswB,KAAKuke,KAAKp+d,MAAQopwB,IAAa73Y,UACG,IAA9B29a,EAAax+qB,MAAMzzH,OAAc,CAC7BwnyB,EAAW5qyB,KAAKuke,KAAKk5S,cAAcz9wB,KAAK4B,OACxC8yR,EAAO,IAAI+3e,IAAW,IAAIF,IAAO1lkB,EAAK3sL,EAAG2sL,EAAK1sL,GAAIywxB,GACtDl2gB,EAAO10R,KAAKkpzB,gBAAgBx0hB,EAAMk2gB,EAASpsxB,MAAOqoL,EAAKroL,MAAOqoL,EAAK3sL,GACnEla,KAAK8ozB,cAAgB,IAAIJ,IAAiBh0hB,EAAM10R,KAAKivH,KACrDjvH,KAAK8ozB,cAAc9nD,WAAWl5sB,MAAM44F,SAAS,SAAU1gJ,KAAKgpzB,eAC5D9gnB,EAAKkN,YAAYhiL,IAAIpzB,KAAK8ozB,eAC1B,IAAI7jqB,EAAcjlJ,KAAKonzB,SAASl/mB,EAAMrB,GAEtC,OADA7mM,KAAKuke,KAAKp+d,MAAQ8izB,EACXhkqB,CACX,CAEQA,EAAcjlJ,KAAKopzB,2BAA2B/T,EAAcntmB,EAAMrB,GAEtE,OADA7mM,KAAKuke,KAAKp+d,MAAQ8izB,EACXhkqB,CAGnB,CAEI,IAAI4wR,EAAO,IAAI6vX,IAEf,OADA7vX,EAAO3tO,EAAK2tO,KACL71a,KAAKske,KAAKzuD,EAAMhvO,EAE/B,EAOA+/mB,EAAej2yB,UAAUw4yB,0BAA4B,SAAUt+xB,EAAQgrZ,EAAMl+Y,GAEzE,IADA,IAAI09wB,EACKlpyB,EAAI,EAAGA,EAAI0e,EAAO2xvB,YAAYp5wB,OAAQ+I,IAAK,CAChD,IAAIkK,EAAOrW,KAAKuke,KAAKk5S,cAAc5yvB,EAAOgsG,MAAM1qH,GAAG8zB,MAC/C0kuB,EAAS,IAAI8H,IAAW90uB,EAAUthB,GAKtC,GAJU,IAANlK,IACAw4vB,EAAOzqvB,EAAI,GAEfla,KAAKigC,KAAOpV,EAAOgsG,MAAM1qH,GAAG8zB,KACxB0kuB,EAAOxqvB,EAAI9D,EAAKuyI,OAASitR,EAAKiqW,SAASnpd,WAAW/tK,OAAQ,CAC1D,GAAU,IAANz8I,EAMA,MALA0pa,EAAOA,EAAKiqW,SAAS6rB,cACrBhnC,EAAS,IAAI8H,IAAW,EAAG,EAAG52V,EAAKiqW,SAASnpd,WAAWn4S,MAAOnI,EAAKuyI,QACnEjxH,EAASxd,EAAI,CAKrB,CACAwqvB,EAAS3kwB,KAAKkpzB,gBAAgBvkD,EAAQtuvB,EAAKmI,MAAOq3Z,EAAKiqW,SAASnpd,WAAWn4S,MAAOmmvB,EAAOzqvB,GACzFla,KAAK8ozB,cAAgB,IAAIJ,IAAiB/jD,EAAQ3kwB,KAAKivH,KACvDjvH,KAAK8ozB,cAAc9nD,WAAWl5sB,MAAM44F,SAAS,SAAU1gJ,KAAKgpzB,eAC5DnzY,EAAKzgO,YAAYhiL,IAAIpzB,KAAK8ozB,eAEtBzT,EADM,IAANlpyB,EACenM,KAAKonzB,SAASvxY,EAAM,IAAI02V,IAAO,EAAG5H,EAAOxqvB,IAGzCna,KAAKonzB,SAASvxY,EAAM8uV,EAAOzqvB,EAAGyqvB,EAAOxqvB,GAExDwd,EAASxd,GAAK9D,EAAKuyI,MACvB,CACA,OAAOyspB,CACX,EAKAuR,EAAej2yB,UAAUy4yB,2BAA6B,SAAUv+xB,EAAQgrZ,EAAM8uV,GAE1E,IADA,IAAI0wC,EACKlpyB,EAAI,EAAGA,EAAI0e,EAAO2xvB,YAAYp5wB,OAAQ+I,IAAK,CAChD,IAAIkK,EAAOrW,KAAKuke,KAAKk5S,cAAc5yvB,EAAOgsG,MAAM1qH,GAAG8zB,MAC/CmgvB,EAAiB,IAAI3T,IAAW,IAAIF,IAAO5H,EAAOzqvB,EAAGyqvB,EAAOxqvB,GAAI9D,GAGpE,GAFA+pwB,EAAiBpgxB,KAAKkpzB,gBAAgB9oC,EAAgB/pwB,EAAKmI,MAAOmmvB,EAAOnmvB,MAAOmmvB,EAAOzqvB,GACvFla,KAAKigC,KAAOpV,EAAOgsG,MAAM1qH,GAAG8zB,KACxB0kuB,EAAOxqvB,EAAI9D,EAAKuyI,OAASitR,EAAKiqW,SAASnpd,WAAW/tK,OAAQ,CAC1D,GAAU,IAANz8I,EAMA,MALA0pa,EAAOA,EAAKiqW,SAAS6rB,cACrBhnC,EAAS,IAAI8H,IAAW9H,EAAOzqvB,EAAG,EAAGyqvB,EAAOnmvB,MAAOnI,EAAKuyI,QACxDw3nB,EAAejmwB,EAAI,CAK3B,CACAna,KAAK8ozB,cAAgB,IAAIJ,IAAiBtoC,EAAgBpgxB,KAAKivH,KAC/DjvH,KAAK8ozB,cAAc9nD,WAAWl5sB,MAAM44F,SAAS,SAAU1gJ,KAAKgpzB,eAC5DnzY,EAAKzgO,YAAYhiL,IAAIpzB,KAAK8ozB,eAC1BzT,EAAer1yB,KAAKonzB,SAASvxY,EAAM8uV,GACnCA,EAAOxqvB,GAAK9D,EAAKuyI,MACrB,CACA,OAAOyspB,CACX,EAEAuR,EAAej2yB,UAAUu4yB,gBAAkB,SAAUjD,EAAehuC,EAAWwvC,EAAcC,GAkBzF,OAhByB,MAArB1nzB,KAAK8gxB,cAAqD,qBAAtB9gxB,KAAK8gxB,cAAgC9gxB,KAAK8gxB,aAAa9kgB,YAAc4yf,IAAiBk8B,QAC1Hmb,EAAc/ryB,EAAIwtyB,GAAiBD,EAAexvC,GAAa,EAC/DguC,EAAcznyB,MAAQy5vB,GAEI,MAArBj4wB,KAAK8gxB,cAAqD,qBAAtB9gxB,KAAK8gxB,cAAgC9gxB,KAAK8gxB,aAAa9kgB,YAAc4yf,IAAiBlnnB,OAC/Hu+pB,EAAc/ryB,EAAIwtyB,GAAiBD,EAAexvC,GAClDguC,EAAcznyB,MAAQy5vB,GAEI,MAArBj4wB,KAAK8gxB,cAAqD,qBAAtB9gxB,KAAK8gxB,cAAgC9gxB,KAAK8gxB,aAAa9kgB,YAAc4yf,IAAiB+9B,SAC/HsZ,EAAc/ryB,EAAIwtyB,EAClBzB,EAAcznyB,MAAQipyB,IAGtBxB,EAAcznyB,MAAQkpyB,EACtBzB,EAAcznyB,MAAQy5vB,GAEnBguC,CACX,EACOW,CACX,CA1NoC,CA0NlCK,KC3QE/gwB,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GA2BzCijwB,IAAiC,SAAUviwB,GAO3C,SAASuiwB,EAAgBpE,GACrB,IAAI3lzB,EAAQwnD,EAAOnnD,KAAKK,KAAMilzB,IAAejlzB,KAoE7C,OA/DAV,EAAMgqzB,iBAAmB,EAKzBhqzB,EAAMiqzB,SAAW,IAAI/8C,IAAM,EAAG,GAC9BltwB,EAAMkqzB,gBAAkB,EACxBlqzB,EAAMmqzB,UAAY,EAClBnqzB,EAAMoqzB,YAAc,EAKpBpqzB,EAAM2pqB,aAAc,EAKpB3pqB,EAAMqqzB,gBAAiB,EAKvBrqzB,EAAMsqzB,cAAe,EAKrBtqzB,EAAMuqzB,WAAa,IAAIp9C,IAKvBntwB,EAAMwqzB,oBAAsB,GAK5BxqzB,EAAMy6U,MAAO,EAKbz6U,EAAMyqzB,aAAe,GAKrBzqzB,EAAM0qzB,gBAAkB,IAAIz9C,IAAO,EAAG,GAKtCjtwB,EAAM2qzB,UAAW,EACjB3qzB,EAAM4qzB,IAAM,KACZ5qzB,EAAMynzB,cAAgB,KACtBznzB,EAAM6qzB,YAAa,EAMnB7qzB,EAAM+6wB,wBAAyB,EACxB/6wB,CACX,CAm0CA,OA/4CA4mD,IAAUmjwB,EAAiBviwB,GA6E3BrnD,OAAO4c,eAAegtyB,EAAgB14yB,UAAW,OAAQ,CAErD+F,IAAK,WACD,OAAO1W,KAAKssT,QAChB,EACAn0S,YAAY,EACZE,cAAc,IAwDlBgxyB,EAAgB14yB,UAAU6kqB,UAAY,SAAUnwpB,GAE5C,OADQA,CAEZ,EAKAgkyB,EAAgB14yB,UAAUg0yB,eAAiB,SAAU1iqB,GACjD,IAAI58H,EAASrlB,KAAKw1qB,UAAUvzhB,EAAM58H,QAGlC,GAFArlB,KAAKoqzB,iBAAmBpqzB,KAAKw1qB,UAAUvzhB,EAAM58H,QAC7CrlB,KAAKmxmB,YAAclvd,EAAM4zR,KACA,OAArB71a,KAAKmxmB,YAML,MAAMpklB,MAAM,4BALK/sB,KAAKmxmB,YAAY0kM,gBAAgBjtpB,OAClC5oJ,KAAKmxmB,YAAY0kM,gBAAgBr3xB,MACjDxe,KAAKqqzB,kBAAoBrqzB,KAAKmxmB,YAAY0kM,gBAM9C71yB,KAAKsqzB,gBAAkBtqzB,KAAKmxmB,YAAY2uK,SAWxC,IAAIrzvB,EAUJ,GATAA,EAAQzsB,KAAKsqzB,gBAAgBz0Y,KAAK+1X,QAAQjhyB,QAAQ3K,KAAKsqzB,gBAAgBz0Y,MACvE71a,KAAK8pzB,oBAAoB19yB,KAAKqgB,GAChB,MAAVpH,GAAkBA,EAAO6/xB,QAAUhoC,IAAmBqtC,iBACtDvqzB,KAAKimzB,cAAgB,IAAIx5C,IAAW,IAAIF,IAAOtqnB,EAAM0inB,OAAOzqvB,EAAG+nI,EAAM0inB,OAAOxqvB,GAAI,IAAIqyvB,IAAMxswB,KAAKukX,KAAKp3O,QAAQ3uH,MAAOxe,KAAKsqzB,gBAAgB3zf,WAAW/tK,SAGnJ5oJ,KAAKimzB,cAAgB,IAAIx5C,IAAW,IAAIF,IAAOtqnB,EAAM0inB,OAAOzqvB,EAAG+nI,EAAM0inB,OAAOxqvB,GAAIna,KAAKsqzB,gBAAgB3zf,YAG5E,IAAzB32T,KAAKukX,KAAK6pN,KAAKxjjB,MACf5qB,KAAKimzB,cAAcznyB,MAASyjI,EAAM0inB,OAAOnmvB,MAAQ,EAAKyjI,EAAM0inB,OAAOnmvB,MAC9Dxe,KAAKimzB,cAAcznyB,MAAQxe,KAAKukX,KAAK6pN,KAAKo8O,OAAO,GAAG74O,MAAMiyO,QAAQ,GAAGz9yB,MAAM07tB,QAAQl+lB,KAAKnlH,MAAQ,MAEpG,IAAgC,IAA5Bxe,KAAKukX,KAAKpvI,QAAQvqN,MAMvB,MAAMmC,MAAM,sCAHZ/sB,KAAKimzB,cAAcznyB,MAAQyjI,EAAM0inB,OAAOnmvB,KAI5C,CAkCA,GAjCAxe,KAAKyqzB,cAAgB,IAAIl+C,IAAOtqnB,EAAM0inB,OAAOzqvB,EAAG+nI,EAAM0inB,OAAOxqvB,GAazD8nI,EAAM0inB,OAAO/7mB,OAAS,IAAM5oJ,KAAKukX,KAAK0kT,cACtCjpqB,KAAKimzB,cAAcr9pB,OAAS3G,EAAM0inB,OAAO/7mB,QAExC5oJ,KAAKukX,KAAK0kT,cACXjpqB,KAAK0qzB,MAAQ1qzB,KAAKukX,KAAKp+W,MAAMwkzB,wBAE5B3qzB,KAAKukX,KAAKp+W,MAAMykzB,yBAWjB5qzB,KAAKukX,KAAKsmc,sBACV7qzB,KAAK8qzB,8BAXL9qzB,KAAK+pzB,aAAe,GACiB,qBAA1B/pzB,KAAKukX,KAAK0kT,cAAsCjpqB,KAAKukX,KAAK0kT,YAAjB,GAChDjpqB,KAAKukX,KAAKsmc,oBAAoB7qzB,KAAKimzB,eAGnCjmzB,KAAKukX,KAAKsmc,oBAAoB,IAAIp+C,IAAWzswB,KAAKimzB,cAAc/ryB,EAAGla,KAAKimzB,cAAc9ryB,EAAGna,KAAKimzB,cAAc/ryB,EAAIla,KAAKimzB,cAAcznyB,MAAOxe,KAAKimzB,cAAcr9pB,SAEjK5oJ,KAAK+pzB,aAAa39yB,KAAK,CAAC,EAAGpM,KAAKukX,KAAKp3O,QAAQviH,MAAQ,KAMrD5qB,KAAKukX,KAAKolc,eACV,IAAK,IAAIx9yB,EAAI,EAAGA,EAAInM,KAAKukX,KAAK6pN,KAAKxjjB,MAAOze,KACG,IAArCnM,KAAKukX,KAAK6pN,KAAKo8O,OAAOr+yB,GAAGy8I,QAAkB5oJ,KAAKukX,KAAK6pN,KAAKo8O,OAAOr+yB,GAAG4+yB,iBACpE/qzB,KAAKukX,KAAK6pN,KAAKo8O,OAAOr+yB,GAAG4+yB,gBAAiB,GAKtD,OADa/qzB,KAAKomzB,aAAankqB,EAEnC,EAMAonqB,EAAgB14yB,UAAUm6yB,0BAA4B,WAKlD,IAJA,IAAIz7O,EAAc,EACdh5c,EAAY,EACZ20rB,EAAa,EACbC,EAAiBjrzB,KAAKsqzB,gBAAgB3zf,WAAWn4S,MAAQxe,KAAKimzB,cAAc/ryB,EACvE/N,EAAI,EAAGA,EAAInM,KAAKukX,KAAKp3O,QAAQviH,MAAOze,IAEzC,IADA6+yB,GAAchrzB,KAAKukX,KAAKp3O,QAAQ+9qB,UAAU/+yB,GAAGqS,QAC3BysyB,EAAgB,CAE9B,IADA,IAAIE,EAAY,EACPn7yB,EAAIq/jB,EAAar/jB,GAAK7D,MAC3Bg/yB,GAAanrzB,KAAKukX,KAAKp3O,QAAQ+9qB,UAAUl7yB,GAAGwO,OAC5BysyB,GAFcj7yB,IAK9BqmH,EAAYrmH,EAEhBhQ,KAAK+pzB,aAAa39yB,KAAK,CAACijkB,EAAah5c,IAGrC20rB,GADA30rB,EADAg5c,EAAch5c,EAAY,IAEClqH,EAAKnM,KAAKukX,KAAKp3O,QAAQ+9qB,UAAU/+yB,GAAGqS,MAAQ,CAC3E,CAGJxe,KAAK+pzB,aAAa39yB,KAAK,CAACijkB,EAAarvkB,KAAKukX,KAAKp3O,QAAQviH,MAAQ,GAEnE,EAKAy+xB,EAAgB14yB,UAAUy1yB,aAAe,SAAUnkqB,GAE/CjiJ,KAAK6pzB,WAAW3vyB,EAAI+nI,EAAM0inB,OAAOzqvB,EACjCla,KAAK6pzB,WAAW1vyB,EAAI8nI,EAAM0inB,OAAOxqvB,EACjCna,KAAK6pzB,WAAWjhqB,OAAS3G,EAAM0inB,OAAO/7mB,OAQtC,IAPA,IAEI/9H,EAFAxF,EAASrlB,KAAKw1qB,UAAUvzhB,EAAM58H,QAG9B+lyB,EAAgB,IAAIhsC,IACpBisC,EAAYppqB,EAAM4zR,KAElBy1Y,EAAa,GACR7+xB,EAAQ,EAAGA,EAAQzsB,KAAK+pzB,aAAa3mzB,OAAQqpB,IAAS,CAC3D,IAAIvpB,EAAQlD,KAAK+pzB,aAAat9xB,GAC9BzsB,KAAKurzB,eAAiBrozB,EAAM,GAC5BlD,KAAKwrzB,aAAetozB,EAAM,GAC1B,IAAIuozB,EAAezrzB,KAAK0rzB,sBAAsB1rzB,KAAKmxmB,YAAanxmB,KAAKimzB,cAAejmzB,KAAK2rzB,iBACzF3rzB,KAAKimzB,cAAgBwF,EAAaxF,cAClCjmzB,KAAK2rzB,gBAAkBF,EAAaE,gBAOpC,IADA,IAAIC,OAAa,EACRt6X,EAAM,EAAGA,EAAMtxb,KAAKukX,KAAKpvI,QAAQvqN,MAAO0ma,IAAO,CACpD,IAAIzkC,EAAM7sZ,KAAKukX,KAAKpvI,QAAQ02kB,UAAUv6X,GAClCsqF,EAAe57gB,KAAKimzB,cAAc9ryB,EAEtC,GADAna,KAAKsza,UAAW,EACZ+3Y,GAAarrzB,KAAKmxmB,YAClB,IAAK,IAAIrwlB,EAAI9gB,KAAKurzB,eAAgBzqyB,GAAK9gB,KAAKwrzB,aAAc1qyB,IAClD+rY,EAAI8kL,MAAMiyO,QAAQ9iyB,GAAGgryB,sBACrBj/Z,EAAI8kL,MAAMiyO,QAAQ9iyB,GAAGgryB,qBAAsB,EAC3Cj/Z,EAAI8kL,MAAMiyO,QAAQ9iyB,GAAGlf,MAAQ,IAKzC,IAAImqzB,EAAe/rzB,KAAKgszB,QAAQn/Z,GAC5B+uH,IAAiB57gB,KAAKimzB,cAAc9ryB,GACpCyxyB,GAAa,GAC2B,IAApCvC,EAAgB4C,iBAChB5C,EAAgB4C,eAAiB36X,IAIrCs6X,GAAa,GAEZG,EAAaG,UAA0B,OAAdb,GACvBhmyB,EAAOy5R,SAAWm+d,IAAckvC,SAAWP,IAC9C5rzB,KAAKyqzB,cAAcvwyB,EAAIla,KAAKimzB,cAAc/ryB,EAC1Cla,KAAKmxmB,YAAcnxmB,KAAKoszB,kBAAkB/myB,GAC1CrlB,KAAKyqzB,cAActwyB,EAAIna,KAAKimzB,cAAc9ryB,EACL,qBAA1BkL,EAAO0/xB,gBAA8D,IAA5B1/xB,EAAO0/xB,eAAe7qyB,GAAuC,IAA5BmL,EAAO0/xB,eAAe5qyB,GAA2C,IAAhCkL,EAAO0/xB,eAAevmyB,OAAgD,IAAjC6G,EAAO0/xB,eAAen8pB,SAC7K5oJ,KAAKimzB,cAAc/ryB,GAAKla,KAAKyqzB,cAAcvwyB,GAC/Cla,KAAKgszB,QAAQn/Z,IAEjB7sZ,KAAKsza,UAAW,CACpB,CACA,IAAInna,EAAI,EAEJkgzB,GADWrszB,KAAKukX,KAAK6pN,KAAKxjjB,WACd,GAEZmvT,GAAO,EAEXuxe,EAAa,GAEb,IAAK,IAAIt7yB,EAAI,EAAGA,EAAIhQ,KAAKukX,KAAK6pN,KAAKxjjB,MAAO5a,IAAK,CACvC68Y,EAAM7sZ,KAAKukX,KAAK6pN,KAAKo8O,OAAOx6yB,GAChC7D,IACAnM,KAAK2rzB,gBAAkBx/yB,EAAI,EAC3B,IAAImqgB,EAAiBt2gB,KAAKimzB,cAAc9ryB,EACxCkxyB,EAAYrrzB,KAAKmxmB,YACjBk4M,EAAgB4C,gBAAkB,EAC9Blye,GAAQ8yE,EAAI2kQ,KAAKyX,cAEjBlvV,GAAO,GAEX,IAAIuye,EAAY,KA0BhB,IAAqC,GAAjCtszB,KAAKukX,KAAKgoc,mBACVD,EAAYtszB,KAAKgszB,QAAQn/Z,GACzBA,EAAI2/Z,aAAc,MAEjB,CACD,KAAI3/Z,EAAI2kQ,KAAKi7J,WAAW5/Z,IAAI2kQ,KAAKk7J,aAAe1szB,KAAKukX,KAAKgoc,oBAAsB1/Z,EAAI8jL,UAI/E,IAAI9jL,EAAI2/Z,YACT,SAGA,KACJ,CARIF,EAAYtszB,KAAKgszB,QAAQn/Z,GACzBA,EAAI2/Z,aAAc,CAQ1B,CAgEA,IA9DAlB,EAAWl/yB,KAAKkgzB,EAAU3nD,OAAOnmvB,OAsD7B83f,IAAmBt2gB,KAAKimzB,cAAc9ryB,GACtCkyyB,GAAY,EACZhD,EAAgB4C,eAAiBjszB,KAAKukX,KAAK6pN,KAAKu+O,cAAchizB,QAAQkiZ,KAGtEw/Z,GAAY,EACZhD,EAAgB4C,gBAAkB,IAE9BK,EAAUJ,UAAyB,MAAbb,GAAmB,CAC7C,IAAIp6oB,EAAajxK,KAAKqmzB,kBAoCtB,GADUrmzB,KAAK4szB,kBAAkB37oB,GACrBnwF,QAAUuruB,EAClB,MACC,GAAIrszB,KAAKukX,KAAKsoc,yBAA0B,CAEzC7szB,KAAKmxmB,YAAcnxmB,KAAKoszB,kBAAkB/myB,GAC1Cixf,EAAiBt2gB,KAAKimzB,cAAc9ryB,EACpC,IAAI4mwB,EAAa,IAAIxU,IAAO+0C,IAAWzgzB,QAAQ+iI,MAAMplH,MAAQ,EAAG8iyB,IAAWzgzB,QAAQqtJ,IAAI1vI,MAAQ,GAiB/F,GAhBiC,IAA5B6G,EAAO0/xB,eAAe7qyB,GAAuC,IAA5BmL,EAAO0/xB,eAAe5qyB,GAA2C,IAAhCkL,EAAO0/xB,eAAevmyB,OACxD,IAAjC6G,EAAO0/xB,eAAen8pB,QAAkB5oJ,KAAKyqzB,cAAcvwyB,IAAM6mwB,EAAW7mwB,GAAKla,KAAKyqzB,cAActwyB,IAAM4mwB,EAAW5mwB,IACrHna,KAAKimzB,cAAc/ryB,GAAKla,KAAKyqzB,cAAcvwyB,EAC3Cla,KAAKimzB,cAAc9ryB,GAAKna,KAAKyqzB,cAActwyB,GAE3Cna,KAAKmqzB,aACLnqzB,KAAKyqzB,cAActwyB,EAAIna,KAAKimzB,cAAc9ryB,EAC1Cna,KAAKmqzB,YAAa,GAElBnqzB,KAAKukX,KAAK0kT,aAAsC,MAAvBp8Q,EAAI2kQ,KAAKi7J,YACqB,MAAnDzszB,KAAKukX,KAAKkoc,WAAW5/Z,IAAI2kQ,KAAKrrpB,MAAM2mzB,aAChCjga,EAAIkga,eAAiB/szB,KAAKukX,KAAKkoc,WAAW5/Z,IAAI2kQ,KAAKrrpB,MAAM2mzB,YAAY5+pB,IAAMluJ,KAAKimzB,cAAcr9pB,SAC9F5oJ,KAAKimzB,cAAc9ryB,EAAIna,KAAKukX,KAAKkoc,WAAW5/Z,IAAI2kQ,KAAKrrpB,MAAM2mzB,YAAY5+pB,KAIxD,MAAvB2+P,EAAI2kQ,KAAKi7J,WAAoB,CAC7B5/Z,EAAI2kQ,KAAKi7J,WAAW5/Z,IAAImga,qBAAsB,EAC9Cnga,EAAI2kQ,KAAKi7J,WAAW5/Z,IAAIoga,oBAAsBpga,EAAIkga,eAAiB/szB,KAAKukX,KAAKkoc,WAAW5/Z,IAAI2kQ,KAAKrrpB,MAAM2mzB,YAAY5+pB,IAAMluJ,KAAKukX,KAAKkoc,WAAW5/Z,IAAI2kQ,KAAKrrpB,MAAM2mzB,YAAYn4hB,OACzK,IAAK,IAAIqvT,EAAMn3L,EAAI8jL,SAAW,EAAGqT,EAAMn3L,EAAI2kQ,KAAKpjF,KAAKxjjB,MAAOo5jB,IACxDn3L,EAAI2kQ,KAAKi7J,WAAW5/Z,IAAIoga,qBAAuBpga,EAAI2kQ,KAAKpjF,KAAKo8O,OAAOxmO,GAAKp7b,MAGjF,CA0BA,GAAIikQ,EAAI2kQ,KAAKyX,YAAa,CAEtBp8Q,EAAI2/Z,aAAc,EAElB3/Z,EAAI2kQ,KAAK+6J,mBAAqB1/Z,EAAI8jL,SAClC9jL,EAAI2kQ,KAAKi7J,WAAW5/Z,IAAI2kQ,KAAK+6J,mBAAqB1/Z,EAAI2kQ,KAAKi7J,WAAW5/Z,IAAI8jL,SACtE9jL,EAAI2kQ,KAAKi7J,WAAW5/Z,IAAI2kQ,KAAKk7J,cAC7B7/Z,EAAI2kQ,KAAKi7J,WAAW5/Z,IAAIqga,eAAiB,EACzCrga,EAAI2kQ,KAAKi7J,WAAW5/Z,IAAI2kQ,KAAKk7J,aAAc,GAE/C,KACJ,CACA,GAAI7/Z,EAAIqga,cAAgB,EAAG,CAIvB,IAHoC,GAAhCrga,EAAI2kQ,KAAK+6J,qBACT1/Z,EAAI2kQ,KAAKk7J,aAAc,GAEH,MAApB7/Z,EAAI1mZ,MAAMqhQ,SAA6C,MAAzBqlJ,EAAI1mZ,MAAMqhQ,OAAO7jI,MAAgD,IAAhCkpR,EAAI1mZ,MAAMqhQ,OAAO7jI,KAAKnlH,OACzD,MAAxBquY,EAAI1mZ,MAAMqhQ,OAAOt5G,KAA8C,IAA/B2+P,EAAI1mZ,MAAMqhQ,OAAOt5G,IAAI1vI,OAAe,CACxE,IAAItE,EAAI2yY,EAAI1mZ,MAAMqhQ,OAAO7jI,KAAKnlH,MAAQ,EAClCrE,EAAI0yY,EAAI1mZ,MAAMqhQ,OAAOt5G,IAAI1vI,MAAQ,EACrC,GAAIxe,KAAKimzB,cAAc/ryB,IAAMonyB,IAAWzgzB,QAAQ+iI,MAAMplH,MAAQ,GAAKxe,KAAKimzB,cAAc9ryB,IAAMmnyB,IAAWzgzB,QAAQ+iI,MAAMplH,MAAQ,EAAG,CAC5H,IAAIunyB,EAAW,IAAIt5C,IAAWvyvB,EAAGC,EAAGna,KAAKimzB,cAAcznyB,MAAOxe,KAAKimzB,cAAcr9pB,QACjF5oJ,KAAKimzB,cAAgBF,CACzB,CACJ,CACA,GAAI/lzB,KAAKukX,KAAK4oc,aACV,IAAK,IAAIllP,EAAM,EAAGA,EAAMjokB,KAAKukX,KAAKpvI,QAAQvqN,MAAOq9iB,IAAO,CACpD,IAAImlP,EAAeptzB,KAAKukX,KAAKpvI,QAAQ02kB,UAAU5jP,GAC/CjokB,KAAKgszB,QAAQoB,EACjB,CAGJ,GADAd,EAAYtszB,KAAKgszB,QAAQn/Z,GACrBA,EAAIqga,eAAiB,EACrB,CAAWrga,EAAIoga,oBACf,IADA,IACS9kP,EAAM,EAAGA,EAAMt7K,EAAIqga,cAAe/kP,IAAO,CAE9C,IAAIklP,EAAcrtzB,KAAKqmzB,kBASvB,GARUrmzB,KAAK4szB,kBAAkBS,GACjCrtzB,KAAKmxmB,YAAcnxmB,KAAKoszB,kBAAkB/myB,GAC1Cixf,EAAiBt2gB,KAAKimzB,cAAc9ryB,GAEA,GAAhC0yY,EAAI2kQ,KAAK+6J,qBACT1/Z,EAAI2kQ,KAAKk7J,aAAc,GAE3B1szB,KAAKimzB,cAAc9ryB,EAAI,GACnBna,KAAKukX,KAAK4oc,aACV,IAAK,IAAIG,EAAM,EAAGA,EAAMttzB,KAAKukX,KAAKpvI,QAAQvqN,MAAO0iyB,IAAO,CACpD,IAAI5+nB,EAAS1uL,KAAKukX,KAAKpvI,QAAQ02kB,UAAUyB,GACzCttzB,KAAKgszB,QAAQt9nB,EACjB,CAGJ1uL,KAAKgszB,QAAQn/Z,EACjB,CApBkC,CAyBtCA,EAAI2kQ,KAAK+6J,oBAAsB,EAC/B1/Z,EAAI2kQ,KAAKk7J,aAAc,EACvBJ,EAAUJ,SAAWlszB,KAAKutzB,gBAAgB1ga,GAG1C,IAAK,IAAI2ga,EAAM,EAAGA,EAAM3ga,EAAI8kL,MAAM/mjB,MAAO4iyB,IACjC3ga,EAAI8kL,MAAMiyO,QAAQ4J,GAAK5rzB,iBAAiB6rzB,MACxC5ga,EAAI8kL,MAAMiyO,QAAQ4J,GAAK5rzB,MAAM2qzB,oBAAsB,EAG/D,CACJ,CAQJ,CACA,IAAKD,EAAUJ,UAA0B,OAAdb,GAAsBhmyB,EAAOy5R,SAAWm+d,IAAckvC,SAAWE,EAAW,CAEnGrszB,KAAKyqzB,cAAcvwyB,EAAIla,KAAKimzB,cAAc/ryB,EAyC1C,GAvCAla,KAAKmxmB,YAAcnxmB,KAAKoszB,kBAAkB/myB,GAuCtCrlB,KAAK0rzB,sBAAsB1rzB,KAAKmxmB,YAAanxmB,KAAKimzB,cAAejmzB,KAAK2rzB,iBAAiB1mqB,YACvF,MA8BJ,GA5BsB,OAAjBhD,EAAM58H,SAAqB48H,EAAM58H,OAAOy/xB,mBAAsC,OAAjB7iqB,EAAM0inB,QACpE1inB,EAAM0inB,OAAO/7mB,OAAS,IAAM5oJ,KAAKukX,KAAK0kT,cACtCjpqB,KAAKimzB,cAAcr9pB,OAAS3G,EAAM0inB,OAAO/7mB,QAEjB,qBAAjB3G,EAAM58H,QAA0C,MAAhB48H,EAAM58H,QAA4D,qBAAnC48H,EAAM58H,OAAOy/xB,mBAAsC7iqB,EAAM58H,OAAOy/xB,mBAAyD,IAAlC7iqB,EAAM58H,OAAO0/xB,eAAe7qyB,GAA6C,IAAlC+nI,EAAM58H,OAAO0/xB,eAAe5qyB,GAAiD,IAAtC8nI,EAAM58H,OAAO0/xB,eAAevmyB,OAAsD,IAAvCyjI,EAAM58H,OAAO0/xB,eAAen8pB,QAAmD,IAAlC3G,EAAM58H,OAAO0/xB,eAAe5qyB,GAI/Vna,KAAKimzB,cAAc9ryB,EAAc,MAAVkL,EAAiB,EAAIA,EAAO0/xB,eAAe5qyB,EACpD,MAAVkL,GAA+C,IAA5BA,EAAO0/xB,eAAe7qyB,GAAuC,IAA5BmL,EAAO0/xB,eAAe5qyB,GAA4C,IAAjCkL,EAAO0/xB,eAAen8pB,QAAgD,IAAhCvjI,EAAO0/xB,eAAevmyB,QACjJxe,KAAKimzB,cAAc/ryB,EAAImL,EAAO0/xB,eAAe7qyB,EAC7Cla,KAAKimzB,cAAcznyB,MAAQ6G,EAAO0/xB,eAAevmyB,MACjDxe,KAAKimzB,cAAcr9pB,OAASvjI,EAAO0/xB,eAAen8pB,SAPtD5oJ,KAAKimzB,cAAc9ryB,EAAImnyB,IAAWzgzB,QAAQqtJ,IAAI1vI,MAAQ,EAU9B,qBAAjByjI,EAAM58H,QAA4C,OAAjB48H,EAAM58H,QAA8D,qBAAnC48H,EAAM58H,OAAOy/xB,oBAAsC7iqB,EAAM58H,OAAOy/xB,mBAAsC,OAAjB7iqB,EAAM0inB,QACpK1inB,EAAM0inB,OAAOxqvB,EAAI,IAAMna,KAAKukX,KAAK0kT,cACjCjpqB,KAAKimzB,cAAc9ryB,EAAI8nI,EAAM0inB,OAAOxqvB,GAExCna,KAAKyqzB,cAActwyB,EAAIna,KAAKimzB,cAAc9ryB,EACrCkL,EAAO0/xB,eAAe7qyB,IAAMmL,EAAO0/xB,eAAe5qyB,GAClDkL,EAAO0/xB,eAAe5qyB,IAAMkL,EAAO0/xB,eAAen8pB,QAClDvjI,EAAO0/xB,eAAen8pB,SAAWvjI,EAAO0/xB,eAAevmyB,OAA2C,IAAhC6G,EAAO0/xB,eAAevmyB,QACzFxe,KAAKimzB,cAAc/ryB,GAAKla,KAAKyqzB,cAAcvwyB,GAE3Cla,KAAKimzB,cAAc/ryB,IAAMonyB,IAAWzgzB,QAAQ8iI,KAAKnlH,MAAQ,IACzDxe,KAAKimzB,cAAc9ryB,GAAKna,KAAKyqzB,cAAcvwyB,GAE3Cla,KAAKukX,KAAK4oc,aACV,IAAK,IAAIO,EAAM,EAAGA,EAAM1tzB,KAAKukX,KAAKpvI,QAAQvqN,MAAO8iyB,IAAO,CAChDh/nB,EAAS1uL,KAAKukX,KAAKpvI,QAAQ02kB,UAAU6B,GACzC1tzB,KAAKgszB,QAAQt9nB,EACjB,CAEJ1uL,KAAKgszB,QAAQn/Z,GACY,OAArB7sZ,KAAKmxmB,aAAyBi6M,EAAcl/lB,YAAYlsN,KAAKmxmB,cAC7Di6M,EAAch4xB,IAAIpzB,KAAKmxmB,YAAajumB,EAE5C,CACA,GAAkC,MAA9B2pZ,EAAI8ga,uBAAgC,CAEpC3tzB,KAAKmxmB,YAActkN,EAAI8ga,uBAAuB93Y,KAC9C71a,KAAKsqzB,gBAAkBtqzB,KAAKmxmB,YAAY2uK,SACxC9/wB,KAAKyqzB,cAAgB,IAAIl+C,IAAO1/W,EAAI8ga,uBAAuBhpD,OAAOzqvB,EAAG2yY,EAAI8ga,uBAAuBhpD,OAAOxqvB,GACvG,IAAIyzyB,EAAc5tzB,KAAK6tzB,kBAAkBhha,EAAKA,EAAI8ga,uBAAuBhpD,OAAO/7mB,QAGhF,GAFA5oJ,KAAKimzB,cAAc9ryB,EAAIyzyB,EAEnBvC,GAAarrzB,KAAKmxmB,YAAa,CAI/B,IAHA,IAAI28M,EAAS9tzB,KAAKmxmB,YAAYy6L,QAC1Bn3vB,EAAaq5wB,EAAOnjzB,QAAQ0gzB,GAAa,EACzC32wB,EAAWo5wB,EAAOnjzB,QAAQ3K,KAAKmxmB,aAC1Bt7L,EAAOphY,EAAYohY,EAAOnhY,EAAW,EAAGmhY,IAAQ,CACrD,IAAIk4Y,EAAe/tzB,KAAKmxmB,YAAY2uK,SAChCkuC,EAAa,IAAIzhD,IAAOlnvB,EAAO0/xB,eAAe7qyB,EAAGmL,EAAO0/xB,eAAe5qyB,GACvEyuI,EAASitR,GAAQnhY,EAAYm4W,EAAI8ga,uBAAuBhpD,OAAO/7mB,OAAS3G,EAAM0inB,OAAOxqvB,EACpFna,KAAKimzB,cAAcr9pB,OAASolqB,EAAW7zyB,EACxCyuI,GAAUmlqB,EAAap3f,WAAW/tK,SAClCA,GAAU3G,EAAM0inB,OAAOxqvB,GAG3B6zyB,EAAW7zyB,EAAc,MAAVkL,EAAiB,GAAMA,EAAO0/xB,eAAe5qyB,EAE5D,IAAK,IAAIkG,EAAI,EAAGA,EAAIwsY,EAAI8kL,MAAM/mjB,MAAOvK,IAAK,CACtC,IACI4tyB,EADA5/O,EAAOxhL,EAAI8kL,MAAMiyO,QAAQvjyB,GAEzB6tyB,EAAa,EACjB,GAAI7/O,EAAKzskB,iBAAiB6rzB,IACtB,IAAK,IAAIU,EAAM,EAAGA,EAAM9/O,EAAKzskB,MAAMurI,QAAQviH,MAAOujyB,IAC9CD,GAAc7/O,EAAKzskB,MAAMurI,QAAQ+9qB,UAAUiD,GAAKC,iBAIpDF,EAAa7/O,EAAK7vjB,MAQtByvyB,EAAYrqzB,KAAKqpC,IAAIihxB,EAAYrha,EAAI2kQ,KAAKrkhB,QAAQ+9qB,UAAU7qyB,GAAG7B,OAC/D6vjB,EAAKggP,gBAAgBN,EAAc,IAAIthD,IAAWuhD,EAAY,IAAIxhD,IAAMyhD,EAAWrlqB,KACnFolqB,EAAW9zyB,GAAK+zyB,EAChB5tyB,GAAMgujB,EAAKigP,WAAa,CAC5B,CACJ,CAGAjD,EAAYrrzB,KAAKmxmB,WACrB,CACJ,CACJ,CACA,IAAIo9M,GAAY,EACZC,EAAyB,EACzBlD,EAAWlozB,OAAS,IACpBorzB,EAAyBlD,EAAW,IAExC,IAAImD,EAAoB,CAAC,CAAC,EAAG,IAC7B,IAASpuyB,EAAI,EAAGA,EAAIrgB,KAAKukX,KAAK6pN,KAAKxjjB,MAAOvK,IACtC,IAA0B,GAAtBrgB,KAAKwrzB,cAAsBxrzB,KAAKukX,KAAK6pN,KAAKo8O,OAAOnqyB,GAAGsxjB,MAAMiyO,QAAQ5jzB,KAAKwrzB,cAAc5pzB,iBAAiB6rzB,IAAS,CAC/G,IAAIj8J,EAAOxxpB,KAAKukX,KAAK6pN,KAAKo8O,OAAOnqyB,GAAGsxjB,MAAMiyO,QAAQ5jzB,KAAKwrzB,cAAc5pzB,MACrE5B,KAAK0uzB,qBAAuBl9J,EAAKk9J,qBACjCH,GAAY,CAUhB,CAEJ,IAAKA,GAAajD,EAAWlozB,OAAS,EAAG,CACrC,IAASid,EAAI,EAAGA,EAAIlU,EAAI,EAAGkU,IACnBmuyB,EAAyBlD,EAAWjryB,KACpCmuyB,EAAyBlD,EAAWjryB,IAG5CrgB,KAAK0uzB,qBAAuBF,CAChC,MAEIxuzB,KAAK0uzB,qBAAuBD,EAAkB,GAAG,GAErD,GAAIzuzB,KAAK+pzB,aAAap/yB,QAAQzH,GAASlD,KAAK+pzB,aAAa3mzB,OAAS,GAC9C,MAAbiozB,GAAqBhmyB,EAAOy5R,QAAUm+d,IAAckvC,QAEvD,GADenszB,KAAKukX,KAAK0kT,YACM,GAA3BwlJ,EAAkB,GAAG,GAAS,CAChBzuzB,KAAKmxmB,YAAYy6L,QACPjhyB,QAAQ3K,KAAKmxmB,aACrCnxmB,KAAKsqzB,gBAAkBtqzB,KAAKmxmB,YAAY2uK,SACxC9/wB,KAAKimzB,cAAgB,IAAIx5C,IAAW,IAAIF,IAAO,EAAG,GAAIvswB,KAAKmxmB,YAAY0kM,iBACvD71yB,KAAKsqzB,gBAAgBz0Y,KAAK+1X,QAAQjhyB,QAAQ3K,KAAKsqzB,gBAAgBz0Y,KACnF,MAEI71a,KAAKmxmB,YAAcnxmB,KAAKoszB,kBAAkB/myB,GAS9CrlB,KAAK+pzB,aAAa3mzB,OAAS,IAAMqpB,GAASzsB,KAAK+pzB,aAAa3mzB,OAAS,GAAKiiB,EAAOy5R,SAAWm+d,IAAckvC,UAC1GnszB,KAAKmxmB,YAAcnxmB,KAAKoszB,kBAAkB/myB,GACrCA,EAAO0/xB,eAAe7qyB,IAAMmL,EAAO0/xB,eAAe5qyB,GAAOkL,EAAO0/xB,eAAe5qyB,IAAMkL,EAAO0/xB,eAAen8pB,QACxGvjI,EAAO0/xB,eAAen8pB,SAAWvjI,EAAO0/xB,eAAevmyB,OAA2C,IAAhC6G,EAAO0/xB,eAAevmyB,QAC5Fxe,KAAKimzB,cAAc/ryB,GAAKla,KAAKyqzB,cAAcvwyB,EAC3Cla,KAAKimzB,cAAc9ryB,GAAKna,KAAKyqzB,cAActwyB,GAIvD,CAMA,OALA0Q,EAAS7qB,KAAKqmzB,kBACVrmzB,KAAKukX,KAAKp+W,MAAMykzB,yBAA2B5qzB,KAAKukX,KAAKp+W,MAAMwkzB,wBAA0BlI,IAA0B9nJ,UAC/G36pB,KAAK2uzB,eAAevD,GAExBprzB,KAAK4szB,kBAAkB/hyB,GAChBA,CACX,EACAw+xB,EAAgB14yB,UAAU48yB,gBAAkB,SAAU1ga,GAElD,IADA,IAAIhiY,GAAS,EACJ1e,EAAI,EAAGA,EAAI0gZ,EAAI8kL,MAAM/mjB,MAAOze,IAC5B0gZ,EAAI8kL,MAAMiyO,QAAQz3yB,GAAGyizB,sBACtB/jyB,GAAS,GAGjB,OAAOA,CACX,EAMAw+xB,EAAgB14yB,UAAUy7yB,kBAAoB,SAAU/myB,GACpD,IAAIumxB,EAAU5ryB,KAAKmxmB,YAAYy6L,QAC3BxyG,EAAW,KACX3sqB,EAAQm/wB,EAAQjhyB,QAAQ3K,KAAKmxmB,aACjCnxmB,KAAK+5U,MAAO,EAERq/W,EADA3sqB,IAAUm/wB,EAAQhhxB,MAAQ,EACfghxB,EAAQx4wB,MAGRw4wB,EAAQC,WAAWp/wB,EAAQ,GAE1CzsB,KAAKsqzB,gBAAkBlxH,EAAS0mF,SAChC,IAAI+uC,EAAY7uzB,KAAKsqzB,gBAAgBz0Y,KAAK+1X,QAAQjhyB,QAAQ3K,KAAKsqzB,gBAAgBz0Y,MAW/E,OAVuD,IAAjD71a,KAAK8pzB,oBAAoBn/yB,QAAQkkzB,IACnC7uzB,KAAK8pzB,oBAAoB19yB,KAAKyizB,GAElC7uzB,KAAKimzB,cAAgB,IAAIx5C,IAAW,IAAIF,IAAO,EAAG,GAAInzE,EAASy8G,iBACxC,qBAAXxwxB,GAAqC,MAAVA,GAAkBA,EAAOy/xB,mBAAuD,qBAA1Bz/xB,EAAO0/xB,gBAA4D,MAAzB1/xB,EAAO0/xB,gBAA2B1/xB,EAAO0/xB,eAAe7qyB,IAAMmL,EAAO0/xB,eAAe5qyB,GAAOkL,EAAO0/xB,eAAe5qyB,IAAMkL,EAAO0/xB,eAAen8pB,QAC5QvjI,EAAO0/xB,eAAen8pB,SAAWvjI,EAAO0/xB,eAAevmyB,OAA2C,IAAhC6G,EAAO0/xB,eAAevmyB,QAC5Fxe,KAAKimzB,cAAc/ryB,EAAImL,EAAO0/xB,eAAe7qyB,EAC7Cla,KAAKimzB,cAAc9ryB,EAAIkL,EAAO0/xB,eAAe5qyB,EAC7Cna,KAAKimzB,cAAcr9pB,OAASvjI,EAAO0/xB,eAAen8pB,QAE/CwwiB,CACX,EACAiwH,EAAgB14yB,UAAUm+yB,qBAAuB,SAAUzpyB,GACvD,IAAIq0F,EAAgB,IAAI2+pB,IACxB,OAAQhzvB,EAAO22P,YAActiK,EAAcsiK,WAAa32P,EAAO84vB,mBAAqBzkqB,EAAcykqB,kBAC9F94vB,EAAOw3uB,WAAanjpB,EAAcmjpB,UAAYx3uB,EAAO8zvB,kBAAoBz/pB,EAAcy/pB,iBACvF9zvB,EAAOimxB,0BAA4B5xrB,EAAc4xrB,yBACjDjmxB,EAAO0lxB,gBAAkBrxrB,EAAcqxrB,eACpC1lxB,EAAOw3vB,YAAcnjqB,EAAcmjqB,WAAax3vB,EAAOi2vB,cAAgB5hqB,EAAc4hqB,aACxFj2vB,EAAO0pyB,wBAA0Br1sB,EAAcq1sB,uBAAyB1pyB,EAAO2pyB,SAAWt1sB,EAAcs1sB,QACxG3pyB,EAAO+1vB,kBAAoB1hqB,EAAc0hqB,iBAAmB/1vB,EAAOy5T,cAAgBplO,EAAcolO,aACjGz5T,EAAO4twB,iBAAmBv5qB,EAAcu5qB,gBAAkB5twB,EAAO8tvB,cAAgBz5pB,EAAcy5pB,aAC/F9tvB,EAAO82vB,WAAaziqB,EAAcyiqB,QAC1C,EAKAktC,EAAgB14yB,UAAUs+yB,oBAAsB,SAAUnvC,EAAUnvM,EAAUwlD,EAAWwuI,EAAQ/iwB,EAAOuE,GACpG,IAAI8S,EAAO,KAMX,OALIjZ,KAAKukX,KAAK2qc,qBACVj2yB,EAAO,IAAIk2yB,IAA8BrvC,EAAUnvM,EAAUwlD,EAAWwuI,EAAQ/iwB,EAAOuE,GACvFnG,KAAKukX,KAAK6qc,gBAAgBn2yB,GAC1B9S,EAAQ8S,EAAK9S,OAEVA,CACX,EAKAkjzB,EAAgB14yB,UAAU0+yB,mBAAqB,SAAUvvC,EAAUnvM,EAAUwlD,EAAWwuI,EAAQ/iwB,EAAO0tzB,GACnG,IAAIr2yB,EAAO,KACPjZ,KAAKukX,KAAKgrc,mBACVt2yB,EAAO,IAAIu2yB,IAA4B1vC,EAAUnvM,EAAUwlD,EAAWwuI,EAAQ/iwB,EAAO0tzB,GACrFtvzB,KAAKukX,KAAKkrc,cAAcx2yB,GAEhC,EACAowyB,EAAgB14yB,UAAUg+yB,eAAiB,SAAUvD,GAKjD,IAJA,IAAIl6xB,EAAWlxB,KAAKmxmB,YAAYjglB,SAC5BosuB,EAAQ,GACR/4vB,EAAO6mzB,EAAc7mzB,OAEhB4H,GADIi/yB,EAAc7iyB,SACd,GAAGpc,EAAI5H,EAAKnB,OAAQ+I,IAAK,EAC9B0pa,EAAOtxa,EAAK4H,IACXy/xB,QAAU,KACftuC,EAAMlxvB,KAAKypa,GACX3kZ,EAASosuB,MAAMnquB,OAAO0iZ,EAC1B,CAEA,IAAS1pa,EAAI,EAAGA,EAAIi/yB,EAAc/0yB,OAAQlK,IAEtC,IADA,IACS6D,EAAI7D,EAAGquf,EAAW4wT,EAAc/0yB,OAASrW,KAAK+pzB,aAAa3mzB,OAAS4M,EAAIo7yB,EAAc/0yB,OAAQrG,GAAKwqf,EAAS,CACjH,IAAI3kF,EACgB,qBADhBA,EAAOynV,EAAMttvB,MACoD,IAAlCkhB,EAASosuB,MAAM3yvB,QAAQkra,IACtD3kZ,EAASosuB,MAAMlquB,IAAIyiZ,EAE3B,CAGR,EAKAwzY,EAAgB14yB,UAAU01yB,gBAAkB,WACxC,GAAIrmzB,KAAKukX,KAAK0kT,aAAejpqB,KAAKukX,KAAKsoc,yBACnC,IAAK,IAAI1gzB,EAAI,EAAGA,EAAInM,KAAKukX,KAAK6pN,KAAKxjjB,MAAOze,IAAK,CAC3C,IAAI0gZ,EAAM7sZ,KAAKukX,KAAK6pN,KAAKo8O,OAAOr+yB,GAC5B0gZ,EAAIkga,eAAiB,GAAKlga,EAAI6ia,aAC9B1vzB,KAAKyqzB,cAActwyB,EAAIna,KAAKmxmB,YAAYl4e,OAAO9+G,EAEvD,CAEJ,IAAIwqvB,EAUJ,OATK3kwB,KAAKu5mB,YACNorJ,EAAS,IAAI8H,IAAWzswB,KAAKyqzB,cAAe,IAAIj+C,IAAMxswB,KAAKimzB,cAAcznyB,MAAOxe,KAAKimzB,cAAc9ryB,EAC/Fna,KAAKyqzB,cAActwyB,KAOpB,IAAIw1yB,IAAoB3vzB,KAAKmxmB,YAAawzJ,EACrD,EAKA0kD,EAAgB14yB,UAAUk9yB,kBAAoB,SAAUhha,EAAKjkQ,GAEzD,IADA,IAAIgnqB,EAAY,EACPzjzB,EAAInM,KAAKurzB,eAAgBp/yB,GAAKnM,KAAKwrzB,aAAcr/yB,IACP,OAAzC0gZ,EAAI8kL,MAAMiyO,QAAQz3yB,GAAGq/xB,iBAAqE,KAAzC3+Y,EAAI8kL,MAAMiyO,QAAQz3yB,GAAGq/xB,iBACxB,qBAAzC3+Y,EAAI8kL,MAAMiyO,QAAQz3yB,GAAGq/xB,kBAC5BokB,EAAYhszB,KAAKqpC,IAAI2ixB,EAAW/ia,EAAI8kL,MAAMiyO,QAAQz3yB,GAAG0jzB,kBAG7D,OAAOjszB,KAAKqpC,IAAI27G,EAAQgnqB,EAC5B,EAKAvG,EAAgB14yB,UAAU+6yB,sBAAwB,SAAUv6M,EAAa80M,EAAej1O,GACpF,IAAIlwf,GAAS,EACb,GAAI9gF,KAAKukX,KAAKurc,qBAAsB,CAChC,IAAI72yB,EAAO,IAAI82yB,IAAgC9J,EAAe90M,EAAangC,GAC3EhxkB,KAAKukX,KAAKqhc,kBAAkB3syB,GAQ5B6nE,EAAiC,qBAAhB7nE,EAAK6nE,QAAiC7nE,EAAK6nE,OAC5DmluB,EAAgBhtyB,EAAK0rvB,OACrB3zL,EAAa/3jB,EAAKyjqB,aACtB,CACA,MAAO,CAAEz3hB,YAAankE,EAAQmluB,cAAeA,EAAe0F,gBAAiB36O,EACjF,EAKAq4O,EAAgB14yB,UAAUi8yB,kBAAoB,SAAU/hyB,GACpD,IAAI5R,EAAO,IAAI+2yB,IAA8BnlyB,GAI7C,OAHI7qB,KAAKukX,KAAK0rc,oBACVjwzB,KAAKukX,KAAKshc,gBAAgB5syB,GAEvBA,CACX,EACAowyB,EAAgB14yB,UAAUq7yB,QAAU,SAAUn/Z,EAAKhiY,EAAQ+9H,GACvD,GAAsB,qBAAX/9H,EAAwB,CAG/B,IAAIsrU,EAAW,IAAI+5d,IACfC,EAAoB,EAEpB95yB,GADa,IAAIk2vB,IAAO,EAAG,GACpB,IAAIC,IAAM,EAAG,IACpBl5V,GAAW,EACf,GAAIzmB,EAAIuja,cAAe,CACnB,IAAIC,EAAU,EACVC,EAAetwzB,KAAKukX,KAAK6pN,KAAKu+O,cAAchizB,QAAQkiZ,IAClC,IAAlByja,IAEsB,KADtBA,EAAetwzB,KAAKukX,KAAKpvI,QAAQxqO,QAAQkiZ,MAErCymB,GAAW,GAGnB,IAAK,IAAInna,EAAI,EAAGA,EAAI0gZ,EAAI8kL,MAAM/mjB,MAAOze,IAAK,CACtC,IAAIkikB,EAAOxhL,EAAI8kL,MAAMiyO,QAAQz3yB,GAC7BkkzB,EAAUzszB,KAAKqpC,IAAIojxB,EAAShiP,EAAK+F,QACrC,CACA,IAASjokB,EAAImkzB,EAAcnkzB,EAAImkzB,EAAeD,EAASlkzB,IACnDgkzB,GAAsB78Y,EAAWtza,KAAKukX,KAAKpvI,QAAQ02kB,UAAU1/yB,GAAGy8I,OAAS5oJ,KAAKukX,KAAK6pN,KAAKo8O,OAAOr+yB,GAAGy8I,MAiB1G,CACA,IAAIwvX,EAAmBvrH,EAAIkga,eAAiB,EAAMlga,EAAIkga,eAAiBlga,EAAIjkQ,OAC3E,GAAqC,qBAA1B5oJ,KAAKukX,KAAK0kT,aAA+BjpqB,KAAKukX,KAAK0kT,aAA+C,qBAAzBjpqB,KAAKukX,KAAKkoc,YAAsD,MAAxBzszB,KAAKukX,KAAKkoc,WAyB9HzszB,KAAKimzB,cAAc9ryB,EAAIna,KAAKukX,KAAKkoc,WAAW5/Z,IAAI2kQ,KAAKrrpB,MAAM2mzB,YAAYn4hB,OAASyjP,EAChFp4gB,KAAKqqzB,kBAAkBzhqB,QAAU5oJ,KAAKimzB,cAAc9ryB,EAAIna,KAAKukX,KAAKkoc,WAAW5/Z,IAAI2kQ,KAAKrrpB,MAAM2mzB,YAAYn4hB,OACtGyjP,EAAmBp4gB,KAAKimzB,cAAcr9pB,QAAU5oJ,KAAKimzB,cAAc9ryB,EACrEna,KAAKukX,KAAKkoc,WAAW5/Z,IAAI2kQ,KAAKrrpB,MAAM2mzB,YAAYn4hB,OAASw7hB,EAAoBnwzB,KAAKqqzB,kBAAkBzhqB,QAE1C,qBAA/C5oJ,KAAKukX,KAAKkoc,WAAW5/Z,IAAI2kQ,KAAK++J,cAAgCvwzB,KAAKukX,KAAKkoc,WAAW5/Z,IAAI2kQ,KAAK++J,aAAarL,QAAUhoC,IAAmBszC,UAC7InH,EAAgB4C,eAAiBjszB,KAAKukX,KAAK6pN,KAAKu+O,cAAchizB,QAAQkiZ,GACtE7sZ,KAAKukX,KAAKgoc,mBAAqBvszB,KAAKukX,KAAK6pN,KAAKu+O,cAAchizB,QAAQkiZ,IAEpEw8Z,EAAgB4C,gBAAkB,GAAK5C,EAAgB4C,iBAAmBp/Z,EAAI8jL,UAC1E3wkB,KAAKukX,KAAKsoc,2BACV12d,EAAS+1d,UAAW,EAOpB/1d,EAASwua,OAAS3kwB,KAAKimzB,cACvBjmzB,KAAKywzB,iBAAiBt6d,EAAU02D,EAAKurH,GACrCvrH,EAAI6ia,YAAa,EACjB7ia,EAAI6ja,gBAAkBrH,EAAgB4C,kBAa9C91d,EAAS+1d,UAAW,EAChBr/Z,EAAI2kQ,KAAKi7J,WAAW5/Z,IAAIoga,oBAAsB,EAC9Cpga,EAAI6ia,YAAa,GAGjB7ia,EAAI6ia,YAAa,EACjBt3S,EAAmBvrH,EAAIjkQ,QAEvB5oJ,KAAKukX,KAAK0kT,aAAep8Q,EAAIkga,eAAiB,GACS,MAAnD/szB,KAAKukX,KAAKkoc,WAAW5/Z,IAAI2kQ,KAAKrrpB,MAAM2mzB,cACpC10S,GAAoBp4gB,KAAKukX,KAAKkoc,WAAW5/Z,IAAI2kQ,KAAKrrpB,MAAM2mzB,YAAYn4hB,QAG5E30R,KAAKgszB,QAAQn/Z,EAAK12D,EAAUiiL,SAKhC,GAAIA,EAAmBp4gB,KAAKqqzB,kBAAkBzhqB,OACtC5oJ,KAAKukX,KAAKsoc,2BACV12d,EAAS+1d,UAAW,EAEpBlszB,KAAKywzB,iBAAiBt6d,EAAU02D,EAAKurH,GACrCvrH,EAAI2/Z,aAAc,EAClB3/Z,EAAI6ia,YAAa,GACoB,IAAjC7ia,EAAI2kQ,KAAK+6J,qBACTp2d,EAAS+1d,UAAW,SAS3B,GAAIlszB,KAAKimzB,cAAc9ryB,EAAIi+f,EAAmBp4gB,KAAKqqzB,kBAAkBzhqB,QACtE5oJ,KAAKimzB,cAAc9ryB,EAAIi+f,EAAoBp4gB,KAAKimzB,cAAcr9pB,OAAS5oJ,KAAKyqzB,cAActwyB,GAC1Fna,KAAKimzB,cAAc9ryB,EAAIg2yB,EAAoBnwzB,KAAKqqzB,kBAAkBzhqB,OAAQ,CAE1E,IAAI+nqB,GAAQ,GACP3wzB,KAAKukX,KAAKsoc,0BAA6B7szB,KAAKukX,KAAK4oc,cAAiBtga,EAAIk+Z,gBAAmBl+Z,EAAI+ja,iBAUzF5wzB,KAAKukX,KAAKsoc,0BAAsD,MAA1B7szB,KAAKukX,KAAKgsc,cAAwBvwzB,KAAKukX,KAAKgsc,aAAazxgB,QAAUm+d,IAAc4zC,UAAY7wzB,KAAKukX,KAAKgsc,aAAarL,OAAShoC,IAAmBypC,YAAc95Z,EAAIk+Z,gBAAkB/qzB,KAAKimzB,cAAc9ryB,EAAIyuI,EAAS5oJ,KAAKqqzB,kBAAkBzhqB,UACtR+nqB,EAAQ3wzB,KAAK8wzB,YAAY9wzB,KAAKqqzB,kBAAkBzhqB,OAAS5oJ,KAAKimzB,cAAc9ryB,EAAGna,KAAKukX,KAAMsoC,MAEtF8ja,IAAuB,OAAb3wzB,KAAKkqzB,KAA8C,GAA9BlqzB,KAAKkqzB,IAAIvtC,WAAW/znB,QAAqC,MAAtB5oJ,KAAKkqzB,IAAI7nuB,WAAqBriF,KAAKkqzB,IAAI7nuB,UAAUj/E,OAAS,GAAKpD,KAAK+mzB,eAAiB/mzB,KAAKkqzB,IAAI7nuB,YAChKsuuB,GAAqB,MAAZ3wzB,KAAKkqzB,KAAelqzB,KAAKkqzB,IAAI3f,UAAY,IAElDomB,GAAQ,GAEZ3wzB,KAAK+mzB,cAAgB,OAhBjB4J,EAD2B,OAA3B3wzB,KAAKukX,KAAKgsc,cAAyBvwzB,KAAKukX,KAAKgsc,aAAaxL,eAAen8pB,OAAS,EAC1E5oJ,KAAK8wzB,YAAa9wzB,KAAKimzB,cAAcr9pB,OAAS5oJ,KAAKyqzB,cAActwyB,EAAKna,KAAKimzB,cAAc9ryB,EAAGna,KAAKukX,KAAMsoC,GAGvG7sZ,KAAK8wzB,YAAY9wzB,KAAKqqzB,kBAAkBzhqB,OAAS5oJ,KAAKimzB,cAAc9ryB,EAAGna,KAAKukX,KAAMsoC,MAE1F7sZ,KAAKmqzB,YAAa,GAatBd,EAAgB4C,gBAAkB,GAAK5C,EAAgB4C,iBAAmBp/Z,EAAI8jL,UAAYggP,EACtF3wzB,KAAKukX,KAAKsoc,0BACV12d,EAAS+1d,UAAW,EACpBlszB,KAAKywzB,iBAAiBt6d,EAAU02D,EAAKurH,GACrCvrH,EAAI6ia,YAAa,EACjB7ia,EAAI6ja,gBAAkBrH,EAAgB4C,gBACD,IAAjCp/Z,EAAI2kQ,KAAK+6J,qBACTp2d,EAAS+1d,UAAW,KAIxB/1d,EAAS+1d,UAAW,EACpBlszB,KAAKgszB,QAAQn/Z,EAAK12D,EAAUiiL,IAIhCjiL,EAAS+1d,UAAW,CAE5B,MAEI/1d,EAAS+1d,UAAW,EACpBlszB,KAAKgszB,QAAQn/Z,EAAK12D,EAAUiiL,GAC5BvrH,EAAI6ia,YAAa,EAGzB,OAAOv5d,CACX,CAEI,IACI46d,EAAa,IAAIxkD,IAAOvswB,KAAKimzB,cAAc/ryB,EAAGla,KAAKimzB,cAAc9ryB,GAKrE0Q,EAAO85uB,OAAS,IAAI8H,IAAWskD,EAAY,IAAIvkD,IAAM,EAAG,IACxD5jnB,EAAS5oJ,KAAK6tzB,kBAAkBhha,EAAKjkQ,GACrC,IAASz8I,EAAInM,KAAKurzB,eAAgBp/yB,GAAKnM,KAAKwrzB,aAAcr/yB,IAAK,CAC3D,IAAI6kzB,EAAgB7kzB,EAAInM,KAAKwrzB,aAAe,GAAO3+Z,EAAI8kL,MAAMiyO,QAAQz3yB,GAAGmizB,WAAa,EAErF,IAAK0C,EACD,IAAK,IAAIhhzB,EAAI,EAAGA,EAAI68Y,EAAI8kL,MAAMiyO,QAAQz3yB,GAAGmizB,WAAYt+yB,IACjD68Y,EAAI8kL,MAAMiyO,QAAQz3yB,EAAI6D,GAAG87yB,qBAAsB,EAGnDz1yB,EAAO,IAAIm2vB,IAAMxswB,KAAKukX,KAAKp3O,QAAQ+9qB,UAAU/+yB,GAAGqS,MAAOoqI,IAUtD5oJ,KAAK8uzB,qBAAqB9uzB,KAAKukX,KAAKp3O,QAAQ+9qB,UAAU/+yB,GAAGkZ,SAC1DrlB,KAAK8uzB,qBAAqBjia,EAAI8kL,MAAMiyO,QAAQz3yB,GAAG20wB,gBAC/Cj0X,EAAI8kL,MAAMiyO,QAAQz3yB,GAAG20wB,aAAe9gxB,KAAKukX,KAAKp3O,QAAQ+9qB,UAAU/+yB,GAAGkZ,QAEvE,IAAIiqyB,EAAYzia,EAAI8kL,MAAMiyO,QAAQz3yB,GAAGhG,MACjCs3U,EAAoD,kBAA/BovE,EAAI8kL,MAAMiyO,QAAQz3yB,GAAGvK,OACX,OAA/BirZ,EAAI8kL,MAAMiyO,QAAQz3yB,GAAGvK,MAAkBirZ,EAAI8kL,MAAMiyO,QAAQz3yB,GAAGvK,MAAQ,GACxEirZ,EAAI8kL,MAAMiyO,QAAQz3yB,GAAGhG,MAAQnG,KAAKivzB,oBAAoBjvzB,KAAKsqzB,gBAAiBtqzB,KAAK2rzB,gBAAiBx/yB,EAAG,IAAIsgwB,IAAWskD,EAAY16yB,GAAOonU,EAAW6xe,GAG1Izia,EAAI8kL,MAAMiyO,QAAQz3yB,GAAGvK,iBAAiB6rzB,OAClCj8J,EAAO3kQ,EAAI8kL,MAAMiyO,QAAQz3yB,GAAGvK,OAC3B4nzB,gBAAkBr9yB,GAE3B,IAAIs6yB,EAAe55Z,EAAI8kL,MAAMiyO,QAAQz3yB,GAAGm4d,KAAKtke,KAAKsqzB,gBAAiB,IAAI79C,IAAWskD,EAAY16yB,GAAO26yB,GAqBzG,GApBQnka,EAAI2kQ,KAAKrrpB,MAAMykzB,0BAA4B/9Z,EAAI8kL,MAAMiyO,QAAQz3yB,GAAGmizB,WAAatuzB,KAAKwrzB,cAClFr/yB,EAAI0gZ,EAAI8kL,MAAMiyO,QAAQz3yB,GAAGmizB,WAAatuzB,KAAKwrzB,aAAe,IAAMxrzB,KAAKwrzB,aAAe3+Z,EAAI8kL,MAAM/mjB,MAAQ,IACtGiiY,EAAIoka,iBAAmBjxzB,KAAKwrzB,cAE5B3+Z,EAAI2kQ,KAAKrrpB,MAAMykzB,yBAA4B/9Z,EAAIoka,iBAAmB,IAAMpka,EAAI8kL,MAAMiyO,QAAQz3yB,GAAGmizB,WAC7FtuzB,KAAKwrzB,cAAgBr/yB,EAAI0gZ,EAAI8kL,MAAMiyO,QAAQz3yB,GAAGmizB,WAAatuzB,KAAKwrzB,aAAe,IAC/E3+Z,EAAI8kL,MAAMiyO,QAAQz3yB,GAAGmizB,WAAatuzB,KAAKwrzB,aAAer/yB,EAAI,EAAI,IAC9D0gZ,EAAI8kL,MAAMiyO,QAAQ/2Z,EAAIoka,iBAAmB,GAAGrvzB,MAAyB,OAAjB6kzB,QAAoDpjzB,IAA3BojzB,EAAapkuB,UACtFokuB,EAAapkuB,UAAiB,GAClCwqU,EAAI8kL,MAAMiyO,QAAQ/2Z,EAAIoka,iBAAmB,GAAGnwC,aAAej0X,EAAI8kL,MAAMiyO,QAAQz3yB,GAAG20wB,aAChFj0X,EAAI8kL,MAAMiyO,QAAQ/2Z,EAAIoka,iBAAmB,GAAG9qzB,MAAQ0mZ,EAAI8kL,MAAMiyO,QAAQz3yB,GAAGhG,MACzE0mZ,EAAI8kL,MAAMiyO,QAAQ/2Z,EAAIoka,iBAAmB,GAAG3C,WAAazha,EAAI8kL,MAAMiyO,QAAQz3yB,GAAGmizB,WAAatuzB,KAAKwrzB,aAAer/yB,EAAI,GAI3HsxU,EAAoD,kBAA/BovE,EAAI8kL,MAAMiyO,QAAQz3yB,GAAGvK,OACP,OAA/BirZ,EAAI8kL,MAAMiyO,QAAQz3yB,GAAGvK,MAAkBirZ,EAAI8kL,MAAMiyO,QAAQz3yB,GAAGvK,MAAQ,GACnEovzB,GACDhxzB,KAAKqvzB,mBAAmBrvzB,KAAKsqzB,gBAAiBtqzB,KAAK2rzB,gBAAiBx/yB,EAAG,IAAIsgwB,IAAWskD,EAAY16yB,GAAOonU,EAAWovE,EAAI8kL,MAAMiyO,QAAQz3yB,GAAGhG,OAEzI0mZ,EAAI8kL,MAAMiyO,QAAQz3yB,GAAGvK,iBAAiB6rzB,IAAS,CAC/C,IAAIj8J,EAAO3kQ,EAAI8kL,MAAMiyO,QAAQz3yB,GAAGvK,MAC5B5B,KAAKukX,KAAKp3O,QAAQ+9qB,UAAU/+yB,GAAGqS,OAASxe,KAAKsqzB,gBAAgB3zf,WAAWn4S,OACxEuyyB,EAAW72yB,EAAIs3oB,EAAKk9J,qBACpBqC,EAAW72yB,GAAKs3oB,EAAKrrpB,MAAM+qzB,aAG3BH,EAAW72yB,GAAKla,KAAKukX,KAAKp3O,QAAQ+9qB,UAAU/+yB,GAAGqS,KAEvD,MAEIuyyB,EAAW72yB,GAAKla,KAAKukX,KAAKp3O,QAAQ+9qB,UAAU/+yB,GAAGqS,KAEvD,CACKquY,EAAI+ja,mBAAoB/ja,EAAIk+Z,iBAC7B/qzB,KAAKimzB,cAAc9ryB,GAAKyuI,GAE5B/9H,EAAO85uB,OAAS,IAAI8H,IAAW,IAAIF,IAAO1hvB,EAAO85uB,OAAOzqvB,EAAG2Q,EAAO85uB,OAAOxqvB,GAAI,IAAIqyvB,IAAMukD,EAAW72yB,EAAG62yB,EAAW52yB,GAExH,EACAkvyB,EAAgB14yB,UAAUmgzB,YAAc,SAAUp4S,EAAe84I,EAAM7jhB,GAGnE,IAFA,IAAIgjrB,GAAQ,EACRQ,EAAW,IAAI/2C,IACVjuwB,EAAI,EAAGA,EAAIwhI,EAAQgkc,MAAM/mjB,MAAOze,IAAK,CAC1C,IAAIkikB,EAAO1gc,EAAQgkc,MAAMiyO,QAAQz3yB,GACjC,GAA0B,qBAAfkikB,EAAKzskB,OAAwC,OAAfyskB,EAAKzskB,OAAwC,kBAAfyskB,EAAKzskB,MAAoB,CAC5F,IAAI2ie,EAAO,KAEPA,EAD2B,qBAApB8pG,EAAKlokB,MAAMo+d,MAA2C,MAAnB8pG,EAAKlokB,MAAMo+d,KAC9C8pG,EAAKlokB,MAAMo+d,KAEkB,qBAAxB8pG,EAAKxhL,IAAI1mZ,MAAMo+d,MAA+C,MAAvB8pG,EAAKxhL,IAAI1mZ,MAAMo+d,KAC3D8pG,EAAKxhL,IAAI1mZ,MAAMo+d,KAEmB,qBAA7B8pG,EAAKxhL,IAAI2kQ,KAAKrrpB,MAAMo+d,MAAoD,MAA5B8pG,EAAKxhL,IAAI2kQ,KAAKrrpB,MAAMo+d,KACrE8pG,EAAKxhL,IAAI2kQ,KAAKrrpB,MAAMo+d,KAGpB2zR,IAAYgpB,YAEvBlhxB,KAAK+mzB,cAAgB14O,EAAKzskB,MAC1B,IAAI4c,EAAQ6vjB,EAAK7vjB,MACbw3G,EAASw7hB,EAAKrkhB,QAAQ+9qB,UAAU/+yB,GAChC6pH,EAAOo7rB,eAAiB/iP,EAAK7vjB,MAAQw3G,EAAOx3G,QAC5CA,EAAQw3G,EAAOx3G,OAEnBxe,KAAKkqzB,IAAMiH,EAASrygB,OAAOuvR,EAAKzskB,MAAO2ie,EAAM8pG,EAAKyyM,aAAc,IAAItU,IAAMhuvB,EAAOk6f,IAAgB,EAAO14gB,KAAKqqzB,mBAC7G,IAAIzhqB,EAAS5oJ,KAAKkqzB,IAAIvtC,WAAW/znB,OACjC,GAAmB,KAAfylb,EAAKzskB,OAA2B,IAAXgnJ,EAAc,CACnC+nqB,GAAQ,EACR,KACJ,CAcA,GAbmB,OAAftiP,EAAKlokB,OAAyC,OAAvBkokB,EAAKlokB,MAAM07tB,SAA+C,OAA3BxzJ,EAAKlokB,MAAM07tB,QAAQ3zkB,KAA8C,OAA9Bmgb,EAAKlokB,MAAM07tB,QAAQltc,SAC5G/rI,GAA6E,GAAlEylb,EAAKlokB,MAAM07tB,QAAQ3zkB,IAAI1vI,MAAQ6vjB,EAAKlokB,MAAM07tB,QAAQltc,OAAOn2Q,QAEpExe,KAAKkqzB,IAAI3f,UAAY,GAA0B,MAArBl8N,EAAKyyM,cAAyD,GAAjCzyM,EAAKyyM,aAAaxF,cACzE1ynB,IAAW5oJ,KAAKkqzB,IAAI3f,UAAY,GAAMl8N,EAAKlokB,MAAM26wB,aAAaxF,aAE9DjtM,EAAKlokB,MAAM2mzB,YACXlkqB,GAAW4ogB,EAAKrrpB,MAAM2mzB,YAAY5+pB,IAAMsjgB,EAAKrrpB,MAAM2mzB,YAAYn4hB,OAM/D+jP,GADJ9vX,GAAU4ogB,EAAKrrpB,MAAM+qzB,cACwC,qBAAvBlxzB,KAAKkqzB,IAAI7nuB,WAAoD,OAAvBriF,KAAKkqzB,IAAI7nuB,UAAqB,CACtGsuuB,GAAQ,EACR,KACJ,CACJ,CACJ,CACA,OAAOA,CACX,EACAtH,EAAgB14yB,UAAU8/yB,iBAAmB,SAAU5lyB,EAAQgiY,EAAKwka,GAChE,IAAI15xB,EAAW,IAAI40uB,IAAOvswB,KAAKimzB,cAAc/ryB,EAAGla,KAAKimzB,cAAc9ryB,GAC/D0yY,EAAI2kQ,KAAKyX,aAAep8Q,EAAI2kQ,KAAKq7J,0BAA4B7szB,KAAKyqzB,cAAcvwyB,IAAMla,KAAKimzB,cAAc/ryB,IACzGyd,EAASzd,EAAIla,KAAKyqzB,cAAcvwyB,GAEpC2Q,EAAO85uB,OAAS,IAAI8H,IAAW90uB,EAAU,IAAI60uB,IAAM,EAAG,IACtDxswB,KAAKsxzB,WAAazka,EAAIkga,eAAiB,EAAI/szB,KAAKqqzB,kBAAkBzhqB,OAAS,EAEvEikQ,EAAI2kQ,KAAKrrpB,MAAM2mzB,YAAY5+pB,IAAMluJ,KAAKimzB,cAAc9ryB,EAAI0yY,EAAI2kQ,KAAKrrpB,MAAM2mzB,YAAYn4hB,OAAS30R,KAAKqqzB,kBAAkBzhqB,SACnHikQ,EAAIkga,eAAiB/szB,KAAKimzB,cAAc9ryB,EAAIk3yB,EAAkBrxzB,KAAKqqzB,kBAAkBzhqB,QAQzF,IAAK,IAAIz8I,EAAI,EAAGA,EAAI0gZ,EAAI8kL,MAAM/mjB,MAAOze,IAAK,CACtC,IAAIkikB,EAAOxhL,EAAI8kL,MAAMiyO,QAAQz3yB,GACZkikB,EAAKwhP,kBACHwB,GAAmBhjP,EAAKzskB,iBAAiB6rzB,MACxD5ga,EAAIkga,eAAiB,EAK7B,CACA,IAAS5gzB,EAAInM,KAAKurzB,eAAgBp/yB,GAAKnM,KAAKwrzB,aAAcr/yB,IAAK,CAC3D,IAAI6kzB,EAAgBnka,EAAI8kL,MAAMiyO,QAAQz3yB,GAAGmizB,WAAanizB,EAAInM,KAAKwrzB,aAAe,GACzE3+Z,EAAI8kL,MAAMiyO,QAAQz3yB,GAAGmizB,WAAa,EAMnCj4yB,EAAO,IAAIm2vB,IAAMxswB,KAAKukX,KAAKp3O,QAAQ+9qB,UAAU/+yB,GAAGqS,MAAOxe,KAAKsxzB,WAAa,EAAMtxzB,KAAKsxzB,WACpFtxzB,KAAKqqzB,kBAAkBzhqB,QAQvB2oqB,EAAa1ka,EAAI8kL,MAAMiyO,QAAQz3yB,GAAGhG,MACtC0mZ,EAAI8kL,MAAMiyO,QAAQz3yB,GAAGhG,MAAQorzB,EAC7B,IACI9K,EAAe,KAuBnB,GArBI55Z,EAAI8kL,MAAMiyO,QAAQz3yB,GAAGqlzB,WAAa3ka,EAAIjkQ,OACtC69pB,EAAe55Z,EAAI8kL,MAAMiyO,QAAQz3yB,GAAGm4d,KAAKtke,KAAKsqzB,gBAAiB,IAAI79C,IAAW90uB,EAAUthB,GAAO26yB,GAG/Fnka,EAAIkga,eAAiB,GACD,MAAhBtG,GAA0D,qBAA3BA,EAAapkuB,YAC5CwqU,EAAI8kL,MAAMiyO,QAAQz3yB,GAAGyizB,qBAAsB,EAC3C/ha,EAAI8kL,MAAMiyO,QAAQz3yB,GAAGq/xB,gBAA4C,MAA1Bib,EAAapkuB,UAAoB,IAAMokuB,EAAapkuB,UAC3FwqU,EAAIkga,eAAiBsE,EAAkB5K,EAAa9pC,WAAW/znB,QAGvE/9H,EAAOqhyB,SAAarhyB,EAAOqhyB,SAA8Br/Z,EAAI8kL,MAAMiyO,QAAQz3yB,GAAGyizB,oBAAvC/jyB,EAAOqhyB,SAU1Cr/Z,EAAI8kL,MAAMiyO,QAAQz3yB,GAAGvK,iBAAiB6rzB,IAAS,CAC/C,IAAIj8J,EAAO3kQ,EAAI8kL,MAAMiyO,QAAQz3yB,GAAGvK,MAChC5B,KAAKyxzB,4BAA8BtlzB,EAM/BnM,KAAKukX,KAAKp3O,QAAQ+9qB,UAAU/+yB,GAAGqS,OAASxe,KAAKsqzB,gBAAgB3zf,WAAWn4S,OACxEmZ,EAASzd,EAAIla,KAAK0uzB,qBAClB/2xB,EAASzd,GAAKs3oB,EAAKrrpB,MAAM+qzB,aAGzBv5xB,EAASzd,GAAKla,KAAKukX,KAAKp3O,QAAQ+9qB,UAAU/+yB,GAAGqS,KAErD,MAEImZ,EAASzd,GAAKla,KAAKukX,KAAKp3O,QAAQ+9qB,UAAU/+yB,GAAGqS,KAErD,CACAxe,KAAKimzB,cAAc9ryB,GAAKna,KAAKsxzB,WAAa,EAAMtxzB,KAAKsxzB,WAAaD,EAClExmyB,EAAO85uB,OAAS,IAAI8H,IAAW,IAAIF,IAAO1hvB,EAAO85uB,OAAOzqvB,EAAG2Q,EAAO85uB,OAAOxqvB,GAAI,IAAIqyvB,IAAM70uB,EAASzd,EAAGyd,EAASxd,GAChH,EAKAkvyB,EAAgB4C,gBAAkB,EAC3B5C,CACX,CAj5CqC,CAi5CnC5E,KASEkL,IAAqC,SAAU7owB,GAM/C,SAAS6owB,EAAoB95Y,EAAM8uV,GAC/B,OAAO79sB,EAAOnnD,KAAKK,KAAM61a,EAAM8uV,IAAW3kwB,IAC9C,CACA,OARAkmD,IAAUypwB,EAAqB7owB,GAQxB6owB,CACX,CAVyC,CAUvCnK,KAKEkM,IAAqC,SAAU5qwB,GAM/C,SAAS4qwB,EAAoBzM,GACzB,OAAOn+vB,EAAOnnD,KAAKK,KAAMilzB,IAAejlzB,IAC5C,CACA,OARAkmD,IAAUwrwB,EAAqB5qwB,GAQxB4qwB,CACX,CAVyC,CAUvC1M,KAEE2M,IAAmC,WAMnC,SAASA,EAAkB7xC,EAAUnvM,EAAUwlD,EAAWwuI,EAAQ/iwB,GAC9D5B,KAAK4xzB,aAAejhP,EACpB3wkB,KAAK6xzB,cAAgB17L,EACrBn2nB,KAAK2khB,cAAgB/ihB,EACrB5B,KAAK8xzB,WAAantD,EAClB3kwB,KAAKu/xB,YAAczf,CACvB,CAyDA,OAxDArgxB,OAAO4c,eAAes1yB,EAAkBhhzB,UAAW,WAAY,CAM3D+F,IAAK,WACD,OAAO1W,KAAK4xzB,YAChB,EACAz5yB,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAes1yB,EAAkBhhzB,UAAW,YAAa,CAK5D+F,IAAK,WACD,OAAO1W,KAAK6xzB,aAChB,EACA15yB,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAes1yB,EAAkBhhzB,UAAW,QAAS,CAKxD+F,IAAK,WACD,OAAO1W,KAAK2khB,aAChB,EACAxsgB,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAes1yB,EAAkBhhzB,UAAW,SAAU,CAKzD+F,IAAK,WACD,OAAO1W,KAAK8xzB,UAChB,EACA35yB,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAes1yB,EAAkBhhzB,UAAW,WAAY,CAK3D+F,IAAK,WACD,OAAO1W,KAAKu/xB,WAChB,EACApnxB,YAAY,EACZE,cAAc,IAEXs5yB,CACX,CAtEuC,GAwEnCxC,IAA+C,SAAUrowB,GAOzD,SAASqowB,EAA8BrvC,EAAUnvM,EAAUwlD,EAAWwuI,EAAQ/iwB,EAAOuE,GACjF,IAAI7G,EAAQwnD,EAAOnnD,KAAKK,KAAM8/wB,EAAUnvM,EAAUwlD,EAAWwuI,EAAQ/iwB,IAAU5B,KAE/E,OADAV,EAAM6G,MAAQA,EACP7G,CACX,CA8BA,OAxCA4mD,IAAUipwB,EAA+BrowB,GAWzCrnD,OAAO4c,eAAe8yyB,EAA8Bx+yB,UAAW,OAAQ,CAMnE+F,IAAK,WACD,OAAO1W,KAAK+xzB,KAChB,EACAr4yB,IAAK,SAAU9X,GACX5B,KAAK+xzB,MAAQnwzB,CACjB,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAe8yyB,EAA8Bx+yB,UAAW,QAAS,CAKpE+F,IAAK,WACD,OAAO1W,KAAKo/uB,SAChB,EACA1luB,IAAK,SAAU9X,GACX5B,KAAKo/uB,UAAYx9uB,CACrB,EACAuW,YAAY,EACZE,cAAc,IAEX82yB,CACX,CA1CmD,CA0CjDwC,KAEEnC,IAA6C,SAAU1owB,GAOvD,SAAS0owB,EAA4B1vC,EAAUnvM,EAAUwlD,EAAWwuI,EAAQ/iwB,EAAOuE,GAC/E,IAAI7G,EAAQwnD,EAAOnnD,KAAKK,KAAM8/wB,EAAUnvM,EAAUwlD,EAAWwuI,EAAQ/iwB,IAAU5B,KAE/E,OADAV,EAAM8/uB,UAAYj5uB,EACX7G,CACX,CAaA,OAvBA4mD,IAAUspwB,EAA6B1owB,GAWvCrnD,OAAO4c,eAAemzyB,EAA4B7+yB,UAAW,QAAS,CAMlE+F,IAAK,WACD,OAAO1W,KAAKo/uB,SAChB,EACAjnuB,YAAY,EACZE,cAAc,IAEXm3yB,CACX,CAzBiD,CAyB/CmC,KAEEK,IAAoC,WACpC,SAASA,IACT,CAgBA,OAfAvyzB,OAAO4c,eAAe21yB,EAAmBrhzB,UAAW,SAAU,CAM1D+F,IAAK,WACD,OAAO1W,KAAKouoB,QAChB,EACA10nB,IAAK,SAAU9X,GACX5B,KAAKouoB,SAAWxsoB,CACpB,EACAuW,YAAY,EACZE,cAAc,IAEX25yB,CACX,CAnBwC,GAqBpCC,IAA0C,SAAUnrwB,GAOpD,SAASmrwB,EAAyBttD,EAAQ9uV,GACtC,IAAIv2a,EAAQwnD,EAAOnnD,KAAKK,OAASA,KAGjC,OAFAV,EAAMqlwB,OAASA,EACfrlwB,EAAM6zyB,QAAUt9X,EACTv2a,CACX,CA2BA,OAtCA4mD,IAAU+rwB,EAA0BnrwB,GAYpCrnD,OAAO4c,eAAe41yB,EAAyBthzB,UAAW,SAAU,CAMhE+F,IAAK,WACD,OAAO1W,KAAKsrzB,UAChB,EACA5xyB,IAAK,SAAU9X,GACX5B,KAAKsrzB,WAAa1pzB,CACtB,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAe41yB,EAAyBthzB,UAAW,OAAQ,CAK9D+F,IAAK,WACD,OAAO1W,KAAKmzyB,OAChB,EACAh7xB,YAAY,EACZE,cAAc,IAEX45yB,CACX,CAxC8C,CAwC5CD,KAKEE,IAAwC,SAAUprwB,GAOlD,SAASorwB,EAAuBrnyB,GAC5B,IAAIvrB,EAAQwnD,EAAOnnD,KAAKK,OAASA,KAEjC,OADAV,EAAM+1yB,aAAexqxB,EACdvrB,CACX,CA2BA,OArCA4mD,IAAUgswB,EAAwBprwB,GAWlCrnD,OAAO4c,eAAe61yB,EAAuBvhzB,UAAW,SAAU,CAM9D+F,IAAK,WACD,OAAO1W,KAAKq1yB,YAChB,EACAl9xB,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAe61yB,EAAuBvhzB,UAAW,WAAY,CAKhE+F,IAAK,WACD,OAAO1W,KAAKmyzB,WAChB,EACAz4yB,IAAK,SAAU9X,GACX5B,KAAKmyzB,YAAcvwzB,CACvB,EACAuW,YAAY,EACZE,cAAc,IAEX65yB,CACX,CAvC4C,CAuC1CF,KAKEjC,IAAiD,SAAUjpwB,GAO3D,SAASipwB,EAAgCprD,EAAQ9uV,EAAMs5J,GACnD,IAAI7vkB,EAAQwnD,EAAOnnD,KAAKK,KAAM2kwB,EAAQ9uV,IAAS71a,KAE/C,OADAV,EAAM6vkB,SAAWA,EACV7vkB,CACX,CAaA,OAvBA4mD,IAAU6pwB,EAAiCjpwB,GAW3CrnD,OAAO4c,eAAe0zyB,EAAgCp/yB,UAAW,gBAAiB,CAM9E+F,IAAK,WACD,OAAO1W,KAAKmvkB,QAChB,EACAh3jB,YAAY,EACZE,cAAc,IAEX03yB,CACX,CAzBqD,CAyBnDkC,KAKEjC,IAA+C,SAAUlpwB,GAOzD,SAASkpwB,EAA8BnlyB,GACnC,OAAOi8B,EAAOnnD,KAAKK,KAAM6qB,IAAW7qB,IACxC,CACA,OATAkmD,IAAU8pwB,EAA+BlpwB,GASlCkpwB,CACX,CAXmD,CAWjDkC,KAEEhC,IAAiC,WAMjC,SAASA,IACLlwzB,KAAKoyzB,eAAiB,IAAI3lD,IAAW,EAAG,EAAG,EAAG,EAClD,CA6BA,OA5BAhtwB,OAAO4c,eAAe6zyB,EAAgBv/yB,UAAW,WAAY,CAKzD+F,IAAK,WACD,OAAO1W,KAAKqyzB,WAChB,EACA34yB,IAAK,SAAU9X,GACX5B,KAAKqyzB,YAAczwzB,CACvB,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAe6zyB,EAAgBv/yB,UAAW,SAAU,CAKvD+F,IAAK,WACD,OAAO1W,KAAKoyzB,cAChB,EACA14yB,IAAK,SAAU9X,GACX5B,KAAKoyzB,eAAiBxwzB,CAC1B,EACAuW,YAAY,EACZE,cAAc,IAEX63yB,CACX,CAtCqC,GCruDjCoC,IAA6B,WAC7B,SAASA,EAAYzla,GAMjB7sZ,KAAKiuzB,UAAY,EAMjBjuzB,KAAKuyzB,WAAa,EAMlBvyzB,KAAKwyzB,QAAU,EACfxyzB,KAAKyyzB,WAAY,EAMjBzyzB,KAAK0yzB,OAAQ,EAMb1yzB,KAAK2yzB,uBAAyB,EAC9B3yzB,KAAK4yzB,YAAa,EAClB5yzB,KAAK6yzB,YAAa,EAIlB7yzB,KAAKkszB,UAAW,EAMhBlszB,KAAKw4xB,SAAU,EACfx4xB,KAAK6tI,YAAc,EACnB7tI,KAAKi2mB,QAAU,EACI,qBAARppN,IACP7sZ,KAAK2tI,QAAUk/Q,EAEvB,CAiiCA,OAhiCAptZ,OAAO4c,eAAei2yB,EAAY3hzB,UAAW,sBAAuB,CAEhE+F,IAAK,WACD,OAAO1W,KAAK8yzB,2BAChB,EACAp5yB,IAAK,SAAU9X,GACX5B,KAAK8yzB,4BAA8BlxzB,CACvC,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAei2yB,EAAY3hzB,UAAW,qBAAsB,CAC/D+F,IAAK,WACD,OAAO1W,KAAK+yzB,0BAChB,EACAr5yB,IAAK,SAAU9X,GACX5B,KAAK+yzB,2BAA6BnxzB,CACtC,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAei2yB,EAAY3hzB,UAAW,mBAAoB,CAC7D+F,IAAK,WACD,OAAO1W,KAAKgzzB,wBAChB,EACAt5yB,IAAK,SAAU9X,GACX5B,KAAKgzzB,yBAA2BpxzB,CACpC,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAei2yB,EAAY3hzB,UAAW,kBAAmB,CAC5D+F,IAAK,WACD,OAAO1W,KAAKizzB,uBAChB,EACAv5yB,IAAK,SAAU9X,GACX5B,KAAKizzB,wBAA0BrxzB,CACnC,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAei2yB,EAAY3hzB,UAAW,kBAAmB,CAK5D+F,IAAK,WACD,OAAO1W,KAAKo9E,SAChB,EACA1jE,IAAK,SAAU9X,GACX5B,KAAKo9E,UAAYx7E,CACrB,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAei2yB,EAAY3hzB,UAAW,sBAAuB,CAKhE+F,IAAK,WACD,OAAO1W,KAAKkszB,QAChB,EACAxyyB,IAAK,SAAU9X,GACX5B,KAAKkszB,SAAWtqzB,CACpB,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAei2yB,EAAY3hzB,UAAW,eAAgB,CAKzD+F,IAAK,WAID,OAHmB,MAAf1W,KAAKqlB,SACLrlB,KAAKqlB,OAAS,IAAIgzvB,KAEfr4wB,KAAKqlB,MAChB,EACA3L,IAAK,SAAU9X,GACX5B,KAAKqlB,OAASzjB,CAClB,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAei2yB,EAAY3hzB,UAAW,MAAO,CAKhD+F,IAAK,WACD,OAAO1W,KAAK2tI,OAChB,EACAj0H,IAAK,SAAU9X,GACX5B,KAAK2tI,QAAU/rI,CACnB,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAei2yB,EAAY3hzB,UAAW,QAAS,CAKlD+F,IAAK,WACD,OAAO1W,KAAKkzzB,WAChB,EACAx5yB,IAAK,SAAU9X,GAEX,GADA5B,KAAKkzzB,YAActxzB,EACf5B,KAAKkzzB,uBAAuBzF,IAAS,CACrCztzB,KAAK6sZ,IAAI2kQ,KAAK2hK,cAAe,EAClBnzzB,KAAKkzzB,YACXzG,WAAazszB,KAClBA,KAAKkzzB,YAAYjqJ,aAAc,EAE/B,IADA,IAAIzgB,EAAWxopB,KAAK6sZ,IAAI2kQ,KAAKpjF,KAAKxjjB,MACzBze,EAAI,EAAGA,EAAIq8oB,EAAUr8oB,IAG1B,IAFA,IAAI0gZ,EAAM7sZ,KAAK6sZ,IAAI2kQ,KAAKpjF,KAAKo8O,OAAOr+yB,GAChCinzB,EAAWvma,EAAI8kL,MAAM/mjB,MAChB5a,EAAI,EAAGA,EAAIojzB,EAAUpjzB,IAAK,CACpB68Y,EAAI8kL,MAAMiyO,QAAQ5zyB,GACxBm4B,OAASnoC,IAClB,CAER,CACJ,EACAmY,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAei2yB,EAAY3hzB,UAAW,UAAW,CAKpD+F,IAAK,WACD,OAAO1W,KAAK6tI,WAChB,EACAn0H,IAAK,SAAU9X,GACX,GAAIA,EAAQ,EACR,MAAM,IAAImrB,MAAM,kFAGhB/sB,KAAK6tI,YAAcjsI,EACnB5B,KAAK6sZ,IAAIuja,eAAgB,EACzBpwzB,KAAK6sZ,IAAI2kQ,KAAKm4J,gBAAiB,CAEvC,EACAxxyB,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAei2yB,EAAY3hzB,UAAW,QAAS,CAKlD+F,IAAK,WAID,OAHsB,MAAlB1W,KAAKo/uB,YACLp/uB,KAAKo/uB,UAAY,IAAImkE,KAElBvjzB,KAAKo/uB,SAChB,EACA1luB,IAAK,SAAU9X,GACX5B,KAAKo/uB,UAAYx9uB,CACrB,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAei2yB,EAAY3hzB,UAAW,SAAU,CAKnD+F,IAAK,WAID,OAHwB,IAApB1W,KAAKuyzB,aACLvyzB,KAAKuyzB,WAAavyzB,KAAK6vzB,iBAEpB7vzB,KAAKuyzB,UAChB,EACA74yB,IAAK,SAAU9X,GACX5B,KAAKuyzB,WAAa3wzB,CACtB,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAei2yB,EAAY3hzB,UAAW,aAAc,CAKvD+F,IAAK,WACD,OAAO1W,KAAKi2mB,OAChB,EACAv8lB,IAAK,SAAU9X,GACX,GAAIA,EAAQ,EACR,MAAMmrB,MAAM,8DAGZ/sB,KAAKi2mB,QAAUr0mB,EACf5B,KAAK6sZ,IAAIwma,kBAAmB,CAEpC,EACAl7yB,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAei2yB,EAAY3hzB,UAAW,QAAS,CAKlD+F,IAAK,WAID,OAHuB,IAAnB1W,KAAKiuzB,WAAmBjuzB,KAAK6sZ,IAAI2kQ,KAAK8hK,cACtCtzzB,KAAKiuzB,UAAYjuzB,KAAKuzzB,gBAEnB3vzB,KAAKmgB,MAAM/jB,KAAKiuzB,UAC3B,EACAv0yB,IAAK,SAAU9X,GACX5B,KAAKiuzB,UAAYrszB,CACrB,EACAuW,YAAY,EACZE,cAAc,IAOlBi6yB,EAAY3hzB,UAAU4izB,aAAe,WAGjC,IAAI/0yB,EAAQ,EACR2yyB,EAAW,IAAI/2C,IACnB,GAAgC,kBAArBp6wB,KAAKkzzB,YAGZ10yB,GADU2yyB,EAASrygB,OAAO9+S,KAAKkzzB,YAAalzzB,KAAKwzzB,cAAexzzB,KAAK8gxB,aAAc,IAAItU,IAAM3mvB,OAAO6xc,UAAW7xc,OAAO6xc,YAAY,EAAO,IAAI80S,IAAM,EAAG,IACzImQ,WAAWn+vB,MACxBA,GAA4E,GAAlExe,KAAKmG,MAAM07tB,QAAQl+lB,KAAKnlH,MAAQxe,KAAKmG,MAAM07tB,QAAQj+lB,MAAMplH,YAElE,GAAIxe,KAAKkzzB,uBAAuBzF,IACjCjvyB,EAAQxe,KAAKkzzB,YAAY78yB,KAAKmI,WAG7B,GAAIxe,KAAKkzzB,uBAAuBhwB,KAAYljyB,KAAKkzzB,uBAAuBnvB,IACzEvlxB,GAASxe,KAAKkzzB,YAAY10yB,WAEzB,GAAIxe,KAAKkzzB,uBAAuBtM,IAAgB,CACjD,IAAI6M,EAAUzzzB,KAAKkzzB,YAGnB10yB,GAFa2yyB,EAASrygB,OAAO20gB,EAAQxzxB,KAAMwzxB,EAAQlvV,KAAMkvV,EAAQ3yC,aAAc,IAAItU,IAAM,EAAG,IAAI,EAAO,IAAIA,IAAM,EAAG,IAEpGmQ,WAAWn+vB,MAC3BA,GAA4E,GAAlExe,KAAKmG,MAAM07tB,QAAQl+lB,KAAKnlH,MAAQxe,KAAKmG,MAAM07tB,QAAQj+lB,MAAMplH,MACvE,CA4BA,OA3BMxe,KAAKkzzB,uBAAuBzF,IASA,MAA1BztzB,KAAKmG,MAAM2mzB,aAAyD,qBAA3B9szB,KAAKmG,MAAM2mzB,aACT,qBAAhC9szB,KAAKmG,MAAM2mzB,YAAYnprB,MAAwB3jI,KAAKmG,MAAM2mzB,YAAY7K,aAC7EzjyB,GAASxe,KAAKmG,MAAM2mzB,YAAYnprB,MAEQ,qBAAjC3jI,KAAKmG,MAAM2mzB,YAAYlprB,OAAyB5jI,KAAKmG,MAAM2mzB,YAAY5K,cAC9E1jyB,GAASxe,KAAKmG,MAAM2mzB,YAAYlprB,SAIgB,qBAAzC5jI,KAAK6sZ,IAAI2kQ,KAAKrrpB,MAAM2mzB,YAAYnprB,MAAwB3jI,KAAK6sZ,IAAI2kQ,KAAKrrpB,MAAM2mzB,YAAY7K,aAC/FzjyB,GAASxe,KAAK6sZ,IAAI2kQ,KAAKrrpB,MAAM2mzB,YAAYnprB,MAEQ,qBAA1C3jI,KAAK6sZ,IAAI2kQ,KAAKrrpB,MAAM2mzB,YAAYlprB,OAAyB5jI,KAAK6sZ,IAAI2kQ,KAAKrrpB,MAAM2mzB,YAAY5K,cAChG1jyB,GAASxe,KAAK6sZ,IAAI2kQ,KAAKrrpB,MAAM2mzB,YAAYlprB,QArBnB,MAA1B5jI,KAAKmG,MAAM2mzB,YACXtuyB,GAAUxe,KAAKmG,MAAM2mzB,YAAYnprB,KAAO3jI,KAAKmG,MAAM2mzB,YAAYlprB,MAG/DplH,GAAUxe,KAAK6sZ,IAAI2kQ,KAAKrrpB,MAAM2mzB,YAAYnprB,KAAO3jI,KAAK6sZ,IAAI2kQ,KAAKrrpB,MAAM2mzB,YAAYlprB,MAqBzFplH,GAASxe,KAAK6sZ,IAAI2kQ,KAAKrrpB,MAAM+qzB,WAEjC,EAKAoB,EAAY3hzB,UAAU+izB,mBAAqB,SAAU5zC,EAAUnb,GAC3D,IAAIk/C,EAAkB7jzB,KAAK2zzB,qBAO3B,GALuB,MAAnB9P,IACA/jC,EAASzhT,OACTyhT,EAAS0pB,cAAcqa,EAAiBl/C,EAAOzqvB,EAAGyqvB,EAAOxqvB,EAAGwqvB,EAAOnmvB,MAAOmmvB,EAAO/7mB,QACjFk3nB,EAAS5qN,WAEqB,MAA9Bl1jB,KAAKmG,MAAMu3d,gBAAyB,CACxB19d,KAAK4zzB,qBACjB9zC,EAAS9gT,UAAUh/d,KAAKmG,MAAMu3d,gBAAiBinS,EAAOzqvB,EAAGyqvB,EAAOxqvB,EAAGwqvB,EAAOnmvB,MAAOmmvB,EAAO/7mB,OAC5F,CACJ,EAMA0pqB,EAAY3hzB,UAAUkjzB,wBAA0B,SAAUlvD,GAEtD,IAAImvD,EAAe,IAAIrnD,IAAW9H,EAAOzqvB,EAAGyqvB,EAAOxqvB,EAAGwqvB,EAAOnmvB,MAAOmmvB,EAAO/7mB,QAyD3E,OAxDM5oJ,KAAKkzzB,uBAAuBzF,KAqBA,MAA1BztzB,KAAKmG,MAAM2mzB,aAAyD,qBAA3B9szB,KAAKmG,MAAM2mzB,aACI,qBAA7C9szB,KAAK2tI,QAAQ6jhB,KAAKrrpB,MAAM2mzB,YAAYnprB,MAAwB3jI,KAAK2tI,QAAQ6jhB,KAAKrrpB,MAAM2mzB,YAAY7K,aACvG6R,EAAa55yB,GAAKla,KAAK2tI,QAAQ6jhB,KAAKrrpB,MAAM2mzB,YAAYnprB,KAAO3jI,KAAKo/uB,UAAUvd,QAAQl+lB,KAAKnlH,MACzFs1yB,EAAat1yB,OAASxe,KAAK2tI,QAAQ6jhB,KAAKrrpB,MAAM2mzB,YAAYnprB,MAEP,qBAA5C3jI,KAAK2tI,QAAQ6jhB,KAAKrrpB,MAAM2mzB,YAAY5+pB,KAAuBluJ,KAAK2tI,QAAQ6jhB,KAAKrrpB,MAAM2mzB,YAAY3K,YACtG2R,EAAa35yB,GAAKna,KAAK2tI,QAAQ6jhB,KAAKrrpB,MAAM2mzB,YAAY5+pB,IAAMluJ,KAAKo/uB,UAAUvd,QAAQ3zkB,IAAI1vI,MACvFs1yB,EAAalrqB,QAAU5oJ,KAAK2tI,QAAQ6jhB,KAAKrrpB,MAAM2mzB,YAAY5+pB,KAEN,qBAA9CluJ,KAAK2tI,QAAQ6jhB,KAAKrrpB,MAAM2mzB,YAAYlprB,OAAyB5jI,KAAK2tI,QAAQ6jhB,KAAKrrpB,MAAM2mzB,YAAY5K,cACxG4R,EAAat1yB,OAASxe,KAAK2tI,QAAQ6jhB,KAAKrrpB,MAAM2mzB,YAAYlprB,OAEJ,qBAA/C5jI,KAAK2tI,QAAQ6jhB,KAAKrrpB,MAAM2mzB,YAAYn4hB,QAA0B30R,KAAK2tI,QAAQ6jhB,KAAKrrpB,MAAM2mzB,YAAY1K,eACzG0R,EAAalrqB,QAAU5oJ,KAAK2tI,QAAQ6jhB,KAAKrrpB,MAAM2mzB,YAAYn4hB,UAIpB,qBAAhC30R,KAAKmG,MAAM2mzB,YAAYnprB,MAAwB3jI,KAAKmG,MAAM2mzB,YAAY7K,aAC7E6R,EAAa55yB,GAAKla,KAAKmG,MAAM2mzB,YAAYnprB,KAAO3jI,KAAKo/uB,UAAUvd,QAAQl+lB,KAAKnlH,MAC5Es1yB,EAAat1yB,OAASxe,KAAKmG,MAAM2mzB,YAAYnprB,MAEP,qBAA/B3jI,KAAKmG,MAAM2mzB,YAAY5+pB,KAAuBluJ,KAAKmG,MAAM2mzB,YAAY3K,YAC5E2R,EAAa35yB,GAAKna,KAAKmG,MAAM2mzB,YAAY5+pB,IAAMluJ,KAAKo/uB,UAAUvd,QAAQ3zkB,IAAI1vI,MAC1Es1yB,EAAalrqB,QAAU5oJ,KAAKmG,MAAM2mzB,YAAY5+pB,KAEN,qBAAjCluJ,KAAKmG,MAAM2mzB,YAAYlprB,OAAyB5jI,KAAKmG,MAAM2mzB,YAAY5K,cAC9E4R,EAAat1yB,OAASxe,KAAKmG,MAAM2mzB,YAAYlprB,OAEJ,qBAAlC5jI,KAAKmG,MAAM2mzB,YAAYn4hB,QAA0B30R,KAAKmG,MAAM2mzB,YAAY1K,eAC/E0R,EAAalrqB,QAAU5oJ,KAAKmG,MAAM2mzB,YAAYn4hB,SAGtDm/hB,EAAat1yB,OAAUxe,KAAKo/uB,UAAUvd,QAAQl+lB,KAAKnlH,MAAQxe,KAAKo/uB,UAAUvd,QAAQj+lB,MAAMplH,MACxFs1yB,EAAalrqB,QAAW5oJ,KAAKo/uB,UAAUvd,QAAQ3zkB,IAAI1vI,MAAQxe,KAAKo/uB,UAAUvd,QAAQltc,OAAOn2Q,OArDnD,qBAA3Bxe,KAAKmG,MAAM2mzB,aAAyD,MAA1B9szB,KAAKmG,MAAM2mzB,aAC5DgH,EAAa55yB,GAAKla,KAAK2tI,QAAQ6jhB,KAAKrrpB,MAAM2mzB,YAAYnprB,KAAO3jI,KAAKo/uB,UAAUvd,QAAQl+lB,KAAKnlH,MACzFs1yB,EAAa35yB,GAAKna,KAAK2tI,QAAQ6jhB,KAAKrrpB,MAAM2mzB,YAAY5+pB,IAAMluJ,KAAKo/uB,UAAUvd,QAAQ3zkB,IAAI1vI,MACvFs1yB,EAAat1yB,OAAUxe,KAAK2tI,QAAQ6jhB,KAAKrrpB,MAAM2mzB,YAAYlprB,MAAQ5jI,KAAK2tI,QAAQ6jhB,KAAKrrpB,MAAM2mzB,YAAYnprB,KACvGmwrB,EAAalrqB,QAAW5oJ,KAAK2tI,QAAQ6jhB,KAAKrrpB,MAAM2mzB,YAAYn4hB,OAAS30R,KAAK2tI,QAAQ6jhB,KAAKrrpB,MAAM2mzB,YAAY5+pB,IACzG4lqB,EAAalrqB,QAAW5oJ,KAAKo/uB,UAAUvd,QAAQ3zkB,IAAI1vI,MAAQxe,KAAKo/uB,UAAUvd,QAAQltc,OAAOn2Q,QAGzFs1yB,EAAa55yB,GAAKla,KAAKmG,MAAM2mzB,YAAYnprB,KAAO3jI,KAAKo/uB,UAAUvd,QAAQl+lB,KAAKnlH,MAC5Es1yB,EAAa35yB,GAAKna,KAAKmG,MAAM2mzB,YAAY5+pB,IAAMluJ,KAAKo/uB,UAAUvd,QAAQ3zkB,IAAI1vI,MAC1Es1yB,EAAat1yB,OAAUxe,KAAKmG,MAAM2mzB,YAAYlprB,MAAQ5jI,KAAKmG,MAAM2mzB,YAAYnprB,KAC7EmwrB,EAAat1yB,OAAUxe,KAAKo/uB,UAAUvd,QAAQl+lB,KAAKnlH,MAAQxe,KAAKo/uB,UAAUvd,QAAQj+lB,MAAMplH,MACxFs1yB,EAAalrqB,QAAW5oJ,KAAKmG,MAAM2mzB,YAAYn4hB,OAAS30R,KAAKmG,MAAM2mzB,YAAY5+pB,IAC/E4lqB,EAAalrqB,QAAW5oJ,KAAKo/uB,UAAUvd,QAAQ3zkB,IAAI1vI,MAAQxe,KAAKo/uB,UAAUvd,QAAQltc,OAAOn2Q,MACpE,IAAjBxe,KAAKo0kB,UACL0/O,EAAat1yB,OAAUxe,KAAKmG,MAAM07tB,QAAQl+lB,KAAKnlH,QAwCpDs1yB,CACX,EAKAxB,EAAY3hzB,UAAU2zd,KAAO,SAAUw7S,EAAUnb,EAAQovD,GACrD,IAsBIlpyB,EAAS,KAab,GAAI7qB,KAAK8yzB,6BAA+B9yzB,KAAK+yzB,2BAA4B,CACrE,IAAI/yzB,KAAK8yzB,8BAA+B9yzB,KAAK6sZ,IAAI2kQ,KAAKrrpB,MAAMykzB,wBAMxD,OAAO//xB,EALP,GAAK7qB,KAAK6sZ,IAAIoka,iBAAmB,GAAMjxzB,KAAK6sZ,IAAI8kL,MAAMhnkB,QAAQ3K,OAASA,KAAK6sZ,IAAIoka,iBAAmB,GAAqC,GAA7BjxzB,KAAK6sZ,IAAIoka,kBAAyBjxzB,KAAK8yzB,4BAC9I,OAAOjoyB,CAMnB,CAEA85uB,EAAS3kwB,KAAKg0zB,sBAAsBrvD,EAAQmb,GAC5C9/wB,KAAK0zzB,mBAAmB5zC,EAAUnb,GAClC,IAAIw/C,EAAUnkzB,KAAKi0zB,aACfjQ,EAAYhkzB,KAAKk0zB,eACE,qBAAZ/P,GAAgD,qBAAdH,IACzCA,EAAY,IAAIztC,IAAc,IAAI7B,IAAS,EAAG,EAAG,KAErD,IAAInwS,EAAOvke,KAAKwzzB,cACZW,EAAYn0zB,KAAKo0zB,kBACjBC,EAAkB1vD,EAsBtB,GArBI0vD,EAAgBzrqB,QAAUk3nB,EAASnpd,WAAW/tK,QAE1C5oJ,KAAK6sZ,IAAI2kQ,KAAKq7J,2BACdwH,EAAgBzrqB,QAAUyrqB,EAAgBl6yB,EACX,qBAApBna,KAAKwxzB,YAAkD,OAApBxxzB,KAAKwxzB,YAAuB6C,EAAgBzrqB,OAAS5oJ,KAAKwxzB,aACpG6C,EAAgBzrqB,OAAS5oJ,KAAKwxzB,aAe1C6C,EAAkBr0zB,KAAK6zzB,wBAAwBQ,GACf,kBAArBr0zB,KAAKkzzB,aAAsD,kBAAnBlzzB,KAAKo9E,UAAwB,CAC5E,IAAIsP,OAAO,EACP49sB,OAAkB,EAKtB,GAHIA,EADA+pB,EAAgBzrqB,OAAS27U,EAAK37U,OACZ,IAAI6jnB,IAAW4nD,EAAgBn6yB,EAAGm6yB,EAAgBl6yB,EAAGk6yB,EAAgB71yB,MAAO+ld,EAAK37U,QAEjFyrqB,EAClBA,EAAgBzrqB,OAAS27U,EAAK37U,QAAU5oJ,KAAK6sZ,IAAI2kQ,KAAKyX,aAA2C,MAA5BjpqB,KAAK6sZ,IAAI2kQ,KAAKi7J,WAAoB,CACvG,IAAI7jqB,EAAS0hpB,EAAgB1hpB,OAAS5oJ,KAAK6sZ,IAAI2kQ,KAAKi7J,WAAW5/Z,IAAI2kQ,KAAKrrpB,MAAM2mzB,YAAYn4hB,OAAS30R,KAAK6sZ,IAAI2kQ,KAAKrrpB,MAAM2mzB,YAAYn4hB,QAC1F,GAArC30R,KAAK6sZ,IAAI2kQ,KAAK+6J,qBACdvszB,KAAKyyzB,WAAY,EACjBzyzB,KAAK6sZ,IAAIyna,cAAe,GAExB1rqB,EAAS,GAAKA,EAAS27U,EAAK37U,SAC5B0hpB,EAAgB1hpB,OAASA,EAOjC,CAC2C,GAAvC5oJ,KAAK2tI,QAAQ6jhB,KAAKrrpB,MAAM+qzB,cACxB5mB,EAAgB9rxB,OAASxe,KAAK2tI,QAAQ6jhB,KAAKrrpB,MAAM+qzB,YACjDvsD,EAAOnmvB,OAASxe,KAAK2tI,QAAQ6jhB,KAAKrrpB,MAAM+qzB,aAExClxzB,KAAKkszB,UAKLx/tB,EAA0B,KAAnB1sF,KAAKo9E,UAAmBp9E,KAAKo9E,UAAYp9E,KAAKkzzB,YACrDpzC,EAAS8oB,WAAWl8sB,EAAM63Y,EAAM4/U,EAASH,EAAW1Z,EAAgBpwxB,EAAGowxB,EAAgBnwxB,EAAGmwxB,EAAgB9rxB,MAAO8rxB,EAAgB1hpB,OAAQurqB,IAChG,GAArCn0zB,KAAK6sZ,IAAI2kQ,KAAK+6J,oBAA6BvszB,KAAK6sZ,IAAI2kQ,KAAKyX,aAAyC,qBAAnBjpqB,KAAKo9E,YACpFp9E,KAAKo9E,UAAY,MAKQ,oBAAlBp9E,KAAKo9E,WAA+C,OAAnBp9E,KAAKo9E,YAC7Cp9E,KAAKo9E,UAAY,IAEjBp9E,KAAK6sZ,IAAI6ia,YACT5vC,EAAS8oB,WAAW5oyB,KAAKo9E,UAAWmnZ,EAAM4/U,EAASH,EAAW1Z,EAAgBpwxB,EAAGowxB,EAAgBnwxB,EAAGmwxB,EAAgB9rxB,MAAO8rxB,EAAgB1hpB,OAAQurqB,GAWvJn0zB,KAAKkszB,UAAW,GAGpBrhyB,EAASi1vB,EAASunC,kBAItB,MACK,GAAIrnzB,KAAKkzzB,uBAAuBzF,IAAS,CAC1C,IAAItxM,EAAYn8mB,KAAKkzzB,YACrB/2M,EAAU8sD,aAAc,EACxB9sD,EAAUswM,WAAazszB,KACvB,IAAIu0zB,EACJA,EAAaF,EAC8B,GAAvCr0zB,KAAK2tI,QAAQ6jhB,KAAKrrpB,MAAM+qzB,cACxBvsD,EAAOnmvB,OAASxe,KAAK2tI,QAAQ6jhB,KAAKrrpB,MAAM+qzB,aAa5C,IAAIC,EAAW,IAAI9H,IAAgBltM,GAC/B92lB,EAAS,IAAIqsyB,IACiB,MAA9B1xzB,KAAK6sZ,IAAI2kQ,KAAK++J,aACdlryB,EAASrlB,KAAK6sZ,IAAI2kQ,KAAK++J,aAEvBlryB,EAAOy5R,OAASm+d,IAAc4zC,SAClC,IAAI5uqB,EAAQ,IAAIqjqB,IAChB,GAAsB,MAAlBxlC,EAASp+T,MAAe,CAExBz/T,EAAM4zR,KAAOiqW,EAASjqW,KACtB5zR,EAAM0inB,OAAS4vD,EACftyqB,EAAM58H,OAASA,EAEf82lB,EAAUq4M,UACVr4M,EAAUs4M,YAEV,IAAIC,EAAkBvD,EAASvM,SAAS3iqB,GAExCjiJ,KAAK4B,MAAQu6mB,GAC6B,IAAtCn8mB,KAAK6sZ,IAAI2kQ,KAAK+6J,qBACdvszB,KAAK4oJ,OAAS5oJ,KAAK6sZ,IAAIoga,qBAEvBhrqB,EAAM4zR,MAAQ6+Y,EAAgB7+Y,OAE9B6+Y,EAAgB/vD,OAAO/7mB,OAAS5oJ,KAAK6sZ,IAAIoga,oBACV,GAA3BjtzB,KAAK6sZ,IAAIkga,eACT/szB,KAAK6sZ,IAAI8ga,uBAAyB+G,EAElC10zB,KAAK6sZ,IAAIkga,eAAiB/szB,KAAK6sZ,IAAIoga,oBAK/C,CACJ,MACK,GAAIjtzB,KAAKkzzB,uBAAuBhwB,KAAYljyB,KAAKkzzB,uBAAuBnvB,IAAW,CACpF,IAAI4wB,OAAc,EAEdA,EADA30zB,KAAKkzzB,YAAY10yB,OAAS61yB,EAAgB71yB,MAC5B,IAAIiuvB,IAAW4nD,EAAgBn6yB,EAAGm6yB,EAAgBl6yB,EAAGna,KAAKkzzB,YAAY10yB,MAAO61yB,EAAgBzrqB,QAG7FyrqB,EAElBv0C,EAAS9gT,UAAUh/d,KAAKkzzB,YAAayB,EAAYz6yB,EAAGy6yB,EAAYx6yB,EAAGw6yB,EAAYn2yB,MAAOm2yB,EAAY/rqB,OACtG,MACS5oJ,KAAKkzzB,uBAAuBtM,IACjC5mzB,KAAKkzzB,YAAY5uV,KAAKw7S,EAAS3uK,YAAakjN,GAEX,qBAArBr0zB,KAAKkzzB,cACjBlzzB,KAAKkzzB,YAAc,GACnBpzC,EAAS8oB,WAAW5oyB,KAAKkzzB,YAAa3uV,EAAM4/U,EAASH,EAAWqQ,EAAgBn6yB,EAAGm6yB,EAAgBl6yB,EAAGk6yB,EAAgB71yB,MAAO61yB,EAAgBzrqB,OAAQurqB,GACvH,MAA1Bn0zB,KAAKmG,MAAM2mzB,aAAwD,GAAjC9szB,KAAKmG,MAAM2mzB,YAAYn4hB,QAA8C,GAA/B30R,KAAKmG,MAAM2mzB,YAAYnprB,MAA6C,GAAhC3jI,KAAKmG,MAAM2mzB,YAAYlprB,OAA4C,GAA9B5jI,KAAKmG,MAAM2mzB,YAAY5+pB,MACxKy2mB,EAAOnmvB,OAAUxe,KAAKmG,MAAM07tB,QAAQl+lB,KAAKnlH,MAAQxe,KAAKmG,MAAM07tB,QAAQj+lB,MAAMplH,OAEnC,GAAvCxe,KAAK2tI,QAAQ6jhB,KAAKrrpB,MAAM+qzB,cACxBvsD,EAAOnmvB,OAASxe,KAAK2tI,QAAQ6jhB,KAAKrrpB,MAAM+qzB,cAahD,OAV0B,MAAtBlxzB,KAAKmG,MAAM07tB,UACN7huB,KAAKyyzB,WAGuD,GAAzDzyzB,KAAK6sZ,IAAI2kQ,KAAKi7J,WAAW5/Z,IAAI2kQ,KAAK+6J,qBAClCvszB,KAAK6sZ,IAAIyna,cAAe,EACxBt0zB,KAAKquzB,gBAAgBvuC,EAAUnb,IAJnC3kwB,KAAKquzB,gBAAgBvuC,EAAUnb,IAQhC95uB,CACX,EAMAynyB,EAAY3hzB,UAAU09yB,gBAAkB,SAAUvuC,EAAUnb,GACpD3kwB,KAAK6sZ,IAAI2kQ,KAAKrrpB,MAAMyuzB,qBAAuB70B,IAAsB80B,SACjElwD,EAAOzqvB,GAAKla,KAAKmG,MAAM07tB,QAAQl+lB,KAAKnlH,MACpCmmvB,EAAOxqvB,GAAKna,KAAKmG,MAAM07tB,QAAQ3zkB,IAAI1vI,MACnCmmvB,EAAOnmvB,OAASxe,KAAKmG,MAAM07tB,QAAQj+lB,MAAMplH,MACzCmmvB,EAAO/7mB,QAAU5oJ,KAAKmG,MAAM07tB,QAAQltc,OAAOn2Q,OAE/C,IAAIgkF,EAAK,IAAI+pqB,IAAO5H,EAAOzqvB,EAAGyqvB,EAAOxqvB,EAAIwqvB,EAAO/7mB,QAC5CnmD,EAAK,IAAI8pqB,IAAO5H,EAAOzqvB,EAAGyqvB,EAAOxqvB,GACjC69vB,EAAMh4wB,KAAKo/uB,UAAUvd,QAAQl+lB,KAC7B3jI,KAAKo/uB,UAAUvd,QAAQl+lB,KAAK69qB,YAAcxyC,IAAakI,QACvDc,EAAID,QAAUhJ,IAAW56Y,QAGX,IAAd6jZ,EAAIx5vB,OACJshwB,EAASwpB,SAAStxB,EAAKx1qB,EAAIC,GAE/BD,EAAK,IAAI+pqB,IAAO5H,EAAOzqvB,EAAIyqvB,EAAOnmvB,MAAOmmvB,EAAOxqvB,GAChDsoF,EAAK,IAAI8pqB,IAAO5H,EAAOzqvB,EAAIyqvB,EAAOnmvB,MAAOmmvB,EAAOxqvB,EAAIwqvB,EAAO/7mB,QAC3DovnB,EAAMh4wB,KAAKo/uB,UAAUvd,QAAQj+lB,MACxB+goB,EAAOzqvB,EAAIyqvB,EAAOnmvB,MAAUshwB,EAASnpd,WAAWn4S,MAASw5vB,EAAIx5vB,MAAQ,IACtEgkF,EAAK,IAAI+pqB,IAAOuT,EAASnpd,WAAWn4S,MAASw5vB,EAAIx5vB,MAAQ,EAAImmvB,EAAOxqvB,GACpEsoF,EAAK,IAAI8pqB,IAAOuT,EAASnpd,WAAWn4S,MAASw5vB,EAAIx5vB,MAAQ,EAAImmvB,EAAOxqvB,EAAIwqvB,EAAO/7mB,SAE/E5oJ,KAAKo/uB,UAAUvd,QAAQj+lB,MAAM49qB,YAAcxyC,IAAakI,QACxDc,EAAID,QAAUhJ,IAAW56Y,QAEX,IAAd6jZ,EAAIx5vB,OACJshwB,EAASwpB,SAAStxB,EAAKx1qB,EAAIC,GAE/BD,EAAK,IAAI+pqB,IAAO5H,EAAOzqvB,EAAGyqvB,EAAOxqvB,GACjCsoF,EAAK,IAAI8pqB,IAAO5H,EAAOzqvB,EAAIyqvB,EAAOnmvB,MAAOmmvB,EAAOxqvB,GAChD69vB,EAAMh4wB,KAAKo/uB,UAAUvd,QAAQ3zkB,IACzBluJ,KAAKo/uB,UAAUvd,QAAQ3zkB,IAAIszpB,YAAcxyC,IAAakI,QACtDc,EAAID,QAAUhJ,IAAW56Y,QAEX,IAAd6jZ,EAAIx5vB,OACJshwB,EAASwpB,SAAStxB,EAAKx1qB,EAAIC,GAE/BD,EAAK,IAAI+pqB,IAAO5H,EAAOzqvB,EAAIyqvB,EAAOnmvB,MAAOmmvB,EAAOxqvB,EAAIwqvB,EAAO/7mB,QAC3DnmD,EAAK,IAAI8pqB,IAAO5H,EAAOzqvB,EAAGyqvB,EAAOxqvB,EAAIwqvB,EAAO/7mB,QAC5CovnB,EAAMh4wB,KAAKo/uB,UAAUvd,QAAQltc,OACxBgwe,EAAOxqvB,EAAIwqvB,EAAO/7mB,OAAWk3nB,EAASnpd,WAAW/tK,OAAUovnB,EAAIx5vB,MAAQ,IACxEgkF,EAAK,IAAI+pqB,IAAQ5H,EAAOzqvB,EAAIyqvB,EAAOnmvB,MAASshwB,EAASnpd,WAAW/tK,OAAUovnB,EAAIx5vB,MAAQ,GACtFikF,EAAK,IAAI8pqB,IAAO5H,EAAOzqvB,EAAI4lwB,EAASnpd,WAAW/tK,OAAUovnB,EAAIx5vB,MAAQ,IAErExe,KAAKo/uB,UAAUvd,QAAQltc,OAAO6shB,YAAcxyC,IAAakI,QACzDc,EAAID,QAAUhJ,IAAW56Y,QAEX,IAAd6jZ,EAAIx5vB,OACJshwB,EAASwpB,SAAStxB,EAAKx1qB,EAAIC,EAEnC,EAWA6vtB,EAAY3hzB,UAAUqjzB,sBAAwB,SAAUrvD,EAAQphpB,GAC5D,IAAI+vT,GAAW,EACX49Y,EAAclxzB,KAAK6sZ,IAAI2kQ,KAAKrrpB,MAAM+qzB,YAClCA,EAAc,IACdvsD,EAAS,IAAI8H,IAAW9H,EAAOzqvB,EAAIg3yB,EAAavsD,EAAOxqvB,EAAI+2yB,EAAavsD,EAAOnmvB,MAAQ0yyB,EAAavsD,EAAO/7mB,OAASsoqB,IAExH,IAAI4D,EAAkB90zB,KAAK6sZ,IAAI8kL,MAAMhnkB,QAAQ3K,MAC7C,GAAIA,KAAKsuzB,WAAa,GAAMtuzB,KAAK6sZ,IAAIoka,iBAAmB,GAAM6D,GAAmB90zB,KAAK6sZ,IAAIoka,iBAAmB,GAAMjxzB,KAAK8rzB,oBAAsB,CAE1I,GAAY,IADR7ogB,EAAOjjT,KAAKsuzB,aACCtuzB,KAAK8rzB,oBAClB,IAAK,IAAI97yB,EAAI8kzB,EAAkB,EAAG9kzB,EAAIhQ,KAAK6sZ,IAAI2kQ,KAAKrkhB,QAAQviH,OACpD5qB,KAAK6sZ,IAAI8kL,MAAMiyO,QAAQ5zyB,GAAG87yB,oBADiC97yB,IAE3DizS,IAMZ,IADA,IAAI22M,EAAa,EACRztf,EAAI2ozB,EAAiB3ozB,EAAI2ozB,EAAkB7xgB,EAAM92S,IAAK,CAC3D,GAAInM,KAAK6sZ,IAAI2kQ,KAAKrrpB,MAAMykzB,wBAAyB,CAC7C,IACImK,EAAY/0zB,KAAK6sZ,IAAI2kQ,KAAKn7oB,KAAKmI,MAAQ+kG,EAAEozM,WAAWn4S,MAAQxe,KAAK6sZ,IAAI2kQ,KAAKn7oB,KAAKmI,MAAQ+kG,EAAEozM,WAAWn4S,MAOxG,IANIxe,KAAK6sZ,IAAI2kQ,KAAKn7oB,KAAKmI,MAAQ+kG,EAAEozM,WAAWn4S,MAChCmmvB,EAAOzqvB,EAAI0/e,EAAa55f,KAAK6sZ,IAAI2kQ,KAAKrkhB,QAAQ+9qB,UAAU/+yB,GAAGqS,MAG3Do7e,EAAa55f,KAAK6sZ,IAAI2kQ,KAAKrkhB,QAAQ+9qB,UAAU/+yB,GAAGqS,OAEhDu2yB,EACR,KAER,CACAn7T,GAAc55f,KAAK6sZ,IAAI2kQ,KAAKrkhB,QAAQ+9qB,UAAU/+yB,GAAGqS,KACrD,CACAo7e,GAAc55f,KAAK6sZ,IAAI2kQ,KAAKrrpB,MAAM+qzB,YAClCvsD,EAAOnmvB,MAAQo7e,CACnB,CACA,GAAI55f,KAAKo0kB,QAAU,GAAKp0kB,KAAK6sZ,IAAIuja,cAAe,CAC5C,IAAIntgB,EAAOjjT,KAAKo0kB,QACZu3O,EAAkB3rzB,KAAK6sZ,IAAI2kQ,KAAKpjF,KAAKu+O,cAAchizB,QAAQ3K,KAAK6sZ,MAC5C,GAApB8+Z,IAEwB,IADxBA,EAAkB3rzB,KAAK6sZ,IAAI2kQ,KAAKr8a,QAAQxqO,QAAQ3K,KAAK6sZ,QAEjDymB,GAAW,GAanB,IAAIswO,EAAc,EAElB,IAASz3oB,EAAIw/yB,EAAiBx/yB,EAAIw/yB,EAAkB1ogB,EAAM92S,IAAK,CAC3Dy3oB,GAAgBtwO,EAAWtza,KAAK6sZ,IAAI2kQ,KAAKr8a,QAAQ02kB,UAAU1/yB,GAAGy8I,OAAS5oJ,KAAK6sZ,IAAI2kQ,KAAKpjF,KAAKo8O,OAAOr+yB,GAAGy8I,OACpG,IAAIikQ,EAAM7sZ,KAAK6sZ,IAAI2kQ,KAAKpjF,KAAKo8O,OAAOr+yB,GACrBnM,KAAK6sZ,IAAI2kQ,KAAKpjF,KAAKu+O,cAAchizB,QAAQkiZ,EAsC5D,CACgB7sZ,KAAK6sZ,IAAI8kL,MAAMhnkB,QAAQ3K,MACvC4jpB,GAAe5jpB,KAAK6sZ,IAAI2kQ,KAAKrrpB,MAAM+qzB,YAMnCvsD,EAAO/7mB,OAASg7f,EAEX5jpB,KAAK6sZ,IAAI+ja,mBACVjsD,EAAO/7mB,OAASg7f,EAExB,CACA,OAAO+gH,CACX,EAMA2tD,EAAY3hzB,UAAU6izB,YAAc,WAChC,MAA+B,qBAApBxzzB,KAAKmG,MAAMo+d,MAA2C,MAAnBvke,KAAKmG,MAAMo+d,KAC9Cvke,KAAKmG,MAAMo+d,KAEkB,qBAAxBvke,KAAK6sZ,IAAI1mZ,MAAMo+d,MAA+C,MAAvBvke,KAAK6sZ,IAAI1mZ,MAAMo+d,KAC3Dvke,KAAK6sZ,IAAI1mZ,MAAMo+d,KAEmB,qBAA7Bvke,KAAK6sZ,IAAI2kQ,KAAKrrpB,MAAMo+d,MAAoD,MAA5Bvke,KAAK6sZ,IAAI2kQ,KAAKrrpB,MAAMo+d,KACrEvke,KAAK6sZ,IAAI2kQ,KAAKrrpB,MAAMo+d,KAGpB2zR,IAAYgpB,WAE3B,EAKAoxC,EAAY3hzB,UAAUujzB,aAAe,WACjC,MAAoC,qBAAzBl0zB,KAAKmG,MAAM69yB,WAAqD,MAAxBhkzB,KAAKmG,MAAM69yB,UACnDhkzB,KAAKmG,MAAM69yB,UAEuB,qBAA7BhkzB,KAAK6sZ,IAAI1mZ,MAAM69yB,WAAyD,MAA5BhkzB,KAAK6sZ,IAAI1mZ,MAAM69yB,UAChEhkzB,KAAK6sZ,IAAI1mZ,MAAM69yB,UAGfhkzB,KAAK6sZ,IAAI2kQ,KAAKrrpB,MAAM69yB,SAEnC,EAKAsO,EAAY3hzB,UAAUsjzB,WAAa,WAC/B,MAAkC,qBAAvBj0zB,KAAKmG,MAAMg+yB,SAAiD,MAAtBnkzB,KAAKmG,MAAMg+yB,QACjDnkzB,KAAKmG,MAAMg+yB,QAEqB,qBAA3BnkzB,KAAK6sZ,IAAI1mZ,MAAMg+yB,SAAqD,MAA1BnkzB,KAAK6sZ,IAAI1mZ,MAAMg+yB,QAC9DnkzB,KAAK6sZ,IAAI1mZ,MAAMg+yB,QAGfnkzB,KAAK6sZ,IAAI2kQ,KAAKrrpB,MAAMg+yB,OAEnC,EAKAmO,EAAY3hzB,UAAUgjzB,mBAAqB,WACvC,MAA0C,qBAA/B3zzB,KAAKmG,MAAM09yB,iBAAiE,MAA9B7jzB,KAAKmG,MAAM09yB,gBACzD7jzB,KAAKmG,MAAM09yB,gBAE6B,qBAAnC7jzB,KAAK6sZ,IAAI1mZ,MAAM09yB,iBAAqE,MAAlC7jzB,KAAK6sZ,IAAI1mZ,MAAM09yB,gBACtE7jzB,KAAK6sZ,IAAI1mZ,MAAM09yB,gBAGf7jzB,KAAK6sZ,IAAI2kQ,KAAKrrpB,MAAM09yB,eAEnC,EAKAyO,EAAY3hzB,UAAUijzB,mBAAqB,WACvC,MAA0C,qBAA/B5zzB,KAAKmG,MAAMu3d,iBAAiE,MAA9B19d,KAAKmG,MAAMu3d,gBACzD19d,KAAKmG,MAAMu3d,gBAE6B,qBAAnC19d,KAAK6sZ,IAAI1mZ,MAAMu3d,iBAAqE,MAAlC19d,KAAK6sZ,IAAI1mZ,MAAMu3d,gBACtE19d,KAAK6sZ,IAAI1mZ,MAAMu3d,gBAGf19d,KAAK6sZ,IAAI2kQ,KAAKrrpB,MAAMu3d,eAEnC,EAKA40V,EAAY3hzB,UAAUyjzB,gBAAkB,WACpC,MAAuC,qBAA5Bp0zB,KAAKmG,MAAM26wB,cAA2D,MAA3B9gxB,KAAKmG,MAAM26wB,aACtD9gxB,KAAKmG,MAAM26wB,aAGX9gxB,KAAK8gxB,YAEpB,EAKAwxC,EAAY3hzB,UAAUk/yB,cAAgB,WAGlC,IAAIrxyB,EAAQxe,KAAKu9Y,iBAEa,MAA1Bv9Y,KAAKmG,MAAM2mzB,aAAyD,qBAA3B9szB,KAAKmG,MAAM2mzB,YACpDtuyB,GAAUxe,KAAK2tI,QAAQ6jhB,KAAKrrpB,MAAM2mzB,YAAYlprB,MAAQ5jI,KAAK2tI,QAAQ6jhB,KAAKrrpB,MAAM2mzB,YAAYnprB,MAI1FnlH,GAAUxe,KAAKmG,MAAM2mzB,YAAYlprB,MAAQ5jI,KAAKmG,MAAM2mzB,YAAYnprB,KAChEnlH,GAAUxe,KAAKmG,MAAM07tB,QAAQl+lB,KAAKnlH,MAAQxe,KAAKmG,MAAM07tB,QAAQj+lB,MAAMplH,OAEvE,IAAIoqI,EAAS,EACTuoqB,EAAW,IAAI/2C,IACnB,GAAgC,kBAArBp6wB,KAAKkzzB,aAAsD,kBAAnBlzzB,KAAKo9E,UAAwB,CAC5E,IAAI08H,EAAe95M,KAAKkzzB,YAEnBlzzB,KAAKkszB,WACNpymB,EAAoC,OAAnB95M,KAAKo9E,WAAyC,KAAnBp9E,KAAKo9E,WACnB,qBAAnBp9E,KAAKo9E,UAA6Bp9E,KAAKo9E,UAAYp9E,KAAKkzzB,aACvE,IACI/8L,EAAYn2nB,KAAK6sZ,IAAI8kL,MAAMhnkB,QAAQ3K,MACI,GAAvCA,KAAK2tI,QAAQ6jhB,KAAKrrpB,MAAM+qzB,cACxB1yyB,GAA+C,EAAtCxe,KAAK2tI,QAAQ6jhB,KAAKrrpB,MAAM+qzB,aAEhClxzB,KAAK6sZ,IAAI8kL,MAAMiyO,QAAQztL,GAAW08L,YAAe7yzB,KAAK6sZ,IAAI8kL,MAAMiyO,QAAQztL,GAAWy8L,aAChF5yzB,KAAK2tI,QAAQ6jhB,KAAKyX,aACdzqpB,EAAQ,GACRxe,KAAKwyzB,QAAUh0yB,EACe,MAA1Bxe,KAAKmG,MAAM2mzB,aAAyD,qBAA3B9szB,KAAKmG,MAAM2mzB,YACpD9szB,KAAKwyzB,SAAYxyzB,KAAK2tI,QAAQ6jhB,KAAKrrpB,MAAM2mzB,YAAYlprB,MAAQ5jI,KAAK2tI,QAAQ6jhB,KAAKrrpB,MAAM2mzB,YAAYnprB,MAGjG3jI,KAAKwyzB,SAAYxyzB,KAAKmG,MAAM2mzB,YAAYlprB,MAAQ5jI,KAAKmG,MAAM2mzB,YAAYnprB,KACvE3jI,KAAKwyzB,SAAYxyzB,KAAKmG,MAAM07tB,QAAQl+lB,KAAKnlH,MAAQxe,KAAKmG,MAAM07tB,QAAQj+lB,MAAMplH,QAI9Exe,KAAKwyzB,QAAUh0yB,EAGnBoqI,GADMuoqB,EAASrygB,OAAOhlG,EAAc95M,KAAKwzzB,cAAexzzB,KAAK8gxB,aAAc,IAAItU,IAAMxswB,KAAKwyzB,QAAS,IAAI,EAAO,IAAIhmD,IAAM,EAAG,IAC7GmQ,WAAW/znB,QAIzBA,GADMuoqB,EAASrygB,OAAOhlG,EAAc95M,KAAKwzzB,cAAexzzB,KAAK8gxB,aAAc,IAAItU,IAAMhuvB,EAAO,IAAI,EAAO,IAAIguvB,IAAM,EAAG,IACtGmQ,WAAW/znB,QAIjCA,GAA6E,GAAlE5oJ,KAAKmG,MAAM07tB,QAAQ3zkB,IAAI1vI,MAAQxe,KAAKmG,MAAM07tB,QAAQltc,OAAOn2Q,MACxE,MACK,GAAIxe,KAAKkzzB,uBAAuBzF,IAAS,CACtCt3L,EAAYn2nB,KAAK6sZ,IAAI8kL,MAAMhnkB,QAAQ3K,MAAvC,IACIg1zB,EAAgB,EACW,MAA1Bh1zB,KAAKmG,MAAM2mzB,aAAyD,qBAA3B9szB,KAAKmG,MAAM2mzB,aACrDkI,EAAgBh1zB,KAAKu9Y,iBACsB,qBAAhCv9Y,KAAKmG,MAAM2mzB,YAAYnprB,MAAwB3jI,KAAKmG,MAAM2mzB,YAAY7K,aAC7E+S,GAAiBh1zB,KAAKmG,MAAM2mzB,YAAYnprB,MAEA,qBAAjC3jI,KAAKmG,MAAM2mzB,YAAYlprB,OAAyB5jI,KAAKmG,MAAM2mzB,YAAY5K,cAC9E8S,GAAiBh1zB,KAAKmG,MAAM2mzB,YAAYlprB,QAGH,MAAnC5jI,KAAK6sZ,IAAI2kQ,KAAKrrpB,MAAM2mzB,aAAkE,qBAApC9szB,KAAK6sZ,IAAI2kQ,KAAKrrpB,MAAM2mzB,aAC5EkI,EAAgBh1zB,KAAKu9Y,iBAC+B,qBAAzCv9Y,KAAK6sZ,IAAI2kQ,KAAKrrpB,MAAM2mzB,YAAYnprB,MAAwB3jI,KAAK6sZ,IAAI2kQ,KAAKrrpB,MAAM2mzB,YAAY7K,aAC/F+S,GAAiBh1zB,KAAK6sZ,IAAI2kQ,KAAKrrpB,MAAM2mzB,YAAYnprB,MAEA,qBAA1C3jI,KAAK6sZ,IAAI2kQ,KAAKrrpB,MAAM2mzB,YAAYlprB,OAAyB5jI,KAAK6sZ,IAAI2kQ,KAAKrrpB,MAAM2mzB,YAAY5K,cAChG8S,GAAiBh1zB,KAAK6sZ,IAAI2kQ,KAAKrrpB,MAAM2mzB,YAAYlprB,QAIrDoxrB,EAAgBh1zB,KAAKu9Y,iBAEzBv9Y,KAAKkzzB,YAAYzJ,UAAYuL,EACxBh1zB,KAAK6sZ,IAAI8kL,MAAMiyO,QAAQztL,GAAW08L,YAAe7yzB,KAAK6sZ,IAAI8kL,MAAMiyO,QAAQztL,GAAWy8L,WAIpFhqqB,GAA6E,GAAlE5oJ,KAAKmG,MAAM07tB,QAAQ3zkB,IAAI1vI,MAAQxe,KAAKmG,MAAM07tB,QAAQltc,OAAOn2Q,OAHpEoqI,EAAS5oJ,KAAKkzzB,YAAY78yB,KAAKuyI,OAKS,IAAxC5oJ,KAAK2tI,QAAQ6jhB,KAAKrrpB,MAAM+qzB,cACxB1yyB,GAA+C,EAAtCxe,KAAK2tI,QAAQ6jhB,KAAKrrpB,MAAM+qzB,aAGP,MAA1BlxzB,KAAKmG,MAAM2mzB,aAAyD,qBAA3B9szB,KAAKmG,MAAM2mzB,cACD,qBAAxC9szB,KAAK6sZ,IAAI2kQ,KAAKrrpB,MAAM2mzB,YAAY5+pB,KAAuBluJ,KAAK6sZ,IAAI2kQ,KAAKrrpB,MAAM2mzB,YAAY3K,YAC9Fv5pB,GAAU5oJ,KAAK6sZ,IAAI2kQ,KAAKrrpB,MAAM2mzB,YAAY5+pB,KAE1CluJ,KAAK6sZ,IAAI2kQ,KAAKrrpB,MAAM2mzB,YAAY1K,cAAkE,qBAA3CpizB,KAAK6sZ,IAAI2kQ,KAAKrrpB,MAAM2mzB,YAAYn4hB,SACvF/rI,GAAU5oJ,KAAK6sZ,IAAI2kQ,KAAKrrpB,MAAM2mzB,YAAYn4hB,SAGlD/rI,GAAU5oJ,KAAKkzzB,YAAY/szB,MAAM+qzB,WACrC,MACK,GAAIlxzB,KAAKkzzB,uBAAuBhwB,KAAYljyB,KAAKkzzB,uBAAuBnvB,IACzEn7oB,GAAU5oJ,KAAKkzzB,YAAYtqqB,YAE1B,GAAI5oJ,KAAKkzzB,uBAAuBtM,IAAgB,CACjD,IAAI6M,EAAUzzzB,KAAKkzzB,YAInBtqqB,GAFUuoqB,EAASrygB,OAAO20gB,EAAQxzxB,KAAMwzxB,EAAQlvV,KAAMkvV,EAAQ3yC,aAAc,IAAItU,IAAMhuvB,EAAO,IAAI,EAAO,IAAIguvB,IAAM,EAAG,IAEvGmQ,WAAW/znB,OACzBA,GAA6E,GAAlE5oJ,KAAKmG,MAAM07tB,QAAQ3zkB,IAAI1vI,MAAQxe,KAAKmG,MAAM07tB,QAAQltc,OAAOn2Q,MACxE,KACqC,qBAArBxe,KAAKkzzB,cACa,MAA1BlzzB,KAAKmG,MAAM2mzB,aAAyD,qBAA3B9szB,KAAKmG,MAAM2mzB,YACpDtuyB,GAAUxe,KAAK2tI,QAAQ6jhB,KAAKrrpB,MAAM2mzB,YAAYlprB,MAAQ5jI,KAAK2tI,QAAQ6jhB,KAAKrrpB,MAAM2mzB,YAAYnprB,MAG1FnlH,GAAUxe,KAAKmG,MAAM2mzB,YAAYlprB,MAAQ5jI,KAAKmG,MAAM2mzB,YAAYnprB,KAChEnlH,GAAUxe,KAAKmG,MAAM07tB,QAAQl+lB,KAAKnlH,MAAQxe,KAAKmG,MAAM07tB,QAAQj+lB,MAAMplH,OAEvEoqI,GAA6E,GAAlE5oJ,KAAKmG,MAAM07tB,QAAQ3zkB,IAAI1vI,MAAQxe,KAAKmG,MAAM07tB,QAAQltc,OAAOn2Q,QA8BxE,OA3BMxe,KAAKkzzB,uBAAuBzF,IASA,MAA1BztzB,KAAKmG,MAAM2mzB,aAAyD,qBAA3B9szB,KAAKmG,MAAM2mzB,aACD,qBAAxC9szB,KAAK6sZ,IAAI2kQ,KAAKrrpB,MAAM2mzB,YAAY5+pB,KAAuBluJ,KAAK6sZ,IAAI2kQ,KAAKrrpB,MAAM2mzB,YAAY3K,YAC9Fv5pB,GAAU5oJ,KAAK6sZ,IAAI2kQ,KAAKrrpB,MAAM2mzB,YAAY5+pB,KAEQ,qBAA3CluJ,KAAK6sZ,IAAI2kQ,KAAKrrpB,MAAM2mzB,YAAYn4hB,QAA0B30R,KAAK6sZ,IAAI2kQ,KAAKrrpB,MAAM2mzB,YAAY1K,eACjGx5pB,GAAU5oJ,KAAK6sZ,IAAI2kQ,KAAKrrpB,MAAM2mzB,YAAYn4hB,UAIJ,qBAA/B30R,KAAKmG,MAAM2mzB,YAAY5+pB,KAAuBluJ,KAAKmG,MAAM2mzB,YAAY3K,YAC5Ev5pB,GAAU5oJ,KAAKmG,MAAM2mzB,YAAY5+pB,KAEQ,qBAAlCluJ,KAAKmG,MAAM2mzB,YAAYn4hB,QAA0B30R,KAAKmG,MAAM2mzB,YAAY1K,eAC/Ex5pB,GAAU5oJ,KAAKmG,MAAM2mzB,YAAYn4hB,SArBX,MAA1B30R,KAAKmG,MAAM2mzB,aAAyD,qBAA3B9szB,KAAKmG,MAAM2mzB,YACpDlkqB,GAAW5oJ,KAAK6sZ,IAAI2kQ,KAAKrrpB,MAAM2mzB,YAAY5+pB,IAAMluJ,KAAK6sZ,IAAI2kQ,KAAKrrpB,MAAM2mzB,YAAYn4hB,OAGjF/rI,GAAW5oJ,KAAKmG,MAAM2mzB,YAAY5+pB,IAAMluJ,KAAKmG,MAAM2mzB,YAAYn4hB,OAqBvE/rI,GAAU5oJ,KAAK6sZ,IAAI2kQ,KAAKrrpB,MAAM+qzB,WAElC,EAKAoB,EAAY3hzB,UAAU4sY,eAAiB,WACnC,IAAI44O,EAAYn2nB,KAAK6sZ,IAAI8kL,MAAMhnkB,QAAQ3K,MAEnCsuzB,GADWtuzB,KAAK6sZ,IAAI2kQ,KAAKpjF,KAAKu+O,cAAchizB,QAAQ3K,KAAK6sZ,KAC5C7sZ,KAAKsuzB,YAClB9vyB,EAAQ,EACZ,GAAmB,IAAf8vyB,EACA,IAAK,IAAInizB,EAAI,EAAGA,EAAImizB,EAAYnizB,IAC5BqS,GAASxe,KAAK6sZ,IAAI2kQ,KAAKrkhB,QAAQ+9qB,UAAU/0L,EAAYhqnB,GAAGqS,WAG3D,GAAI8vyB,EAAa,EAClB,IAASnizB,EAAI,EAAGA,EAAImizB,EAAYnizB,IAC5BqS,GAASxe,KAAK6sZ,IAAI2kQ,KAAKrkhB,QAAQ+9qB,UAAU/0L,EAAYhqnB,GAAGqS,MACnDrS,EAAI,EAAKmizB,IACVtuzB,KAAK6sZ,IAAI8kL,MAAMiyO,QAAQztL,EAAYhqnB,EAAI,GAAG0mzB,YAAa,GAInE,GAAmB,MAAf7yzB,KAAKmoC,QAAkBnoC,KAAKmoC,OAAO0kX,IAAIruY,MAAQ,GAC1Cxe,KAAK6sZ,IAAI2kQ,KAAKyX,aAA+B,MAAfjpqB,KAAKmoC,QAAmBnoC,KAAK6sZ,IAAIruY,MAAQxe,KAAKmoC,OAAO0kX,IAAIruY,MAAQ,CAChGA,EAAQ,EACR,IAAK,IAAIxO,EAAI,EAAGA,EAAIhQ,KAAKmoC,OAAOmmxB,WAAYt+yB,IACxCwO,GAASxe,KAAKmoC,OAAO0kX,IAAI2kQ,KAAKrkhB,QAAQ+9qB,UAAUl7yB,GAAGwO,MAEvDA,GAAgBxe,KAAK6sZ,IAAI8kL,MAAM/mjB,KACnC,CAEJ,OAAOpM,CACX,EACO8zyB,CACX,CAplCiC,GA2lC7B2C,IAAuC,WAMvC,SAASA,EAAsBpoa,GAK3B7sZ,KAAK2xkB,MAAQ,GACb3xkB,KAAK2tI,QAAUk/Q,CACnB,CAyCA,OAnCAooa,EAAsBtkzB,UAAUizyB,QAAU,SAAUn3xB,GAChD,GAAIA,EAAQ,GAAKA,GAASzsB,KAAK4qB,MAC3B,MAAM,IAAImC,MAAM,4BAEpB,OAAO/sB,KAAK2xkB,MAAMlljB,EACtB,EACAhtB,OAAO4c,eAAe44yB,EAAsBtkzB,UAAW,QAAS,CAK5D+F,IAAK,WACD,OAAO1W,KAAK2xkB,MAAMvukB,MACtB,EACA+U,YAAY,EACZE,cAAc,IAElB48yB,EAAsBtkzB,UAAUyiB,IAAM,SAAUi7iB,GAC5C,GAAoB,qBAATA,EAAsB,CAC7B,IAAI6mP,EAAW,IAAI5C,IAEnB,OADAtyzB,KAAKozB,IAAI8hyB,GACF7mP,CACX,CAEIA,EAAKxhL,IAAM7sZ,KAAK2tI,QAChB3tI,KAAK2xkB,MAAMvlkB,KAAKiikB,EAExB,EAKA4mP,EAAsBtkzB,UAAUhG,QAAU,SAAU0jkB,GAChD,OAAOrukB,KAAK2xkB,MAAMhnkB,QAAQ0jkB,EAC9B,EACO4mP,CACX,CAvD2C,GCzmCvCE,IAA+B,WAM/B,SAASA,EAAc3jK,GAMnBxxpB,KAAKouzB,YAAc,EACnBpuzB,KAAKwxpB,KAAOA,CAChB,CAiCA,OAhCA/xpB,OAAO4c,eAAe84yB,EAAcxkzB,UAAW,QAAS,CAKpD+F,IAAK,WACD,OAAO1W,KAAKouzB,WAChB,EACA10yB,IAAK,SAAU9X,GACX5B,KAAKoxzB,eAAgB,EACrBpxzB,KAAKouzB,YAAcxszB,CACvB,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAe84yB,EAAcxkzB,UAAW,SAAU,CAKrD+F,IAAK,WAID,OAHyB,MAArB1W,KAAK8gxB,eACL9gxB,KAAK8gxB,aAAe,IAAIzI,KAErBr4wB,KAAK8gxB,YAChB,EACApnwB,IAAK,SAAU9X,GACX5B,KAAK8gxB,aAAel/wB,CACxB,EACAuW,YAAY,EACZE,cAAc,IAEX88yB,CACX,CAhDmC,GAuD/BC,IAAyC,WAOzC,SAASA,EAAwB5jK,GAK7BxxpB,KAAKq1zB,gBAAkB,GAKvBr1zB,KAAKouzB,YAAc,EACnBpuzB,KAAKwxpB,KAAOA,EACZxxpB,KAAKq1zB,gBAAkB,EAC3B,CAyHA,OAnHAD,EAAwBzkzB,UAAUyiB,IAAM,SAAUxI,GAI9C,IAAK,IAAIze,EAAI,EAAGA,EAAIye,EAAOze,IAAK,CAC5BnM,KAAKq1zB,gBAAgBjpzB,KAAK,IAAI+ozB,IAAcn1zB,KAAKwxpB,OACjD,IAAK,IAAI/koB,EAAQ,EAAGA,EAAQzsB,KAAKwxpB,KAAKpjF,KAAKxjjB,MAAO6B,IAAS,CACvD,IAAIogY,EAAM7sZ,KAAKwxpB,KAAKpjF,KAAKo8O,OAAO/9xB,GAC5B4hjB,EAAO,IAAIikP,IACfjkP,EAAKzskB,MAAQ,GACbirZ,EAAI8kL,MAAMv+iB,IAAIi7iB,EAClB,CACJ,CAMJ,EACA5ukB,OAAO4c,eAAe+4yB,EAAwBzkzB,UAAW,QAAS,CAK9D+F,IAAK,WACD,OAAO1W,KAAKq1zB,gBAAgBjyzB,MAChC,EACA+U,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAe+4yB,EAAwBzkzB,UAAW,QAAS,CAK9D+F,IAAK,WAQD,OAPyB,IAArB1W,KAAKouzB,cACLpuzB,KAAKouzB,YAAcpuzB,KAAK6qzB,uBAEG,IAA3B7qzB,KAAKwxpB,KAAK8jK,cAAsBt1zB,KAAKouzB,cAAgBpuzB,KAAKwxpB,KAAK8jK,cAAiBt1zB,KAAKwxpB,KAAKrrpB,MAAMykzB,0BAChG5qzB,KAAKouzB,YAAcpuzB,KAAKwxpB,KAAK8jK,aAC7Bt1zB,KAAKwxpB,KAAK+jK,aAAc,GAErBv1zB,KAAKouzB,WAChB,EACAj2yB,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAe+4yB,EAAwBzkzB,UAAW,UAAW,CAKhE+F,IAAK,WACD,OAAO1W,KAAKq1zB,eAChB,EACAl9yB,YAAY,EACZE,cAAc,IAMlB+8yB,EAAwBzkzB,UAAUu6yB,UAAY,SAAUz+xB,GACpD,GAAIA,GAAS,GAAKA,GAASzsB,KAAKmtI,QAAQ/pI,OACpC,OAAOpD,KAAKmtI,QAAQ1gH,GAGpB,MAAMM,MAAM,0CAA4CN,EAEhE,EAMA2oyB,EAAwBzkzB,UAAUk6yB,oBAAsB,WACpD,IAAIjxT,EAAa,EACjB55f,KAAKwxpB,KAAKq5J,sBACV,IAAK,IAAI1+yB,EAAI,EAAGye,EAAQ5qB,KAAKq1zB,gBAAgBjyzB,OAAQ+I,EAAIye,EAAOze,IAC5Dytf,GAAc55f,KAAKq1zB,gBAAgBlpzB,GAAGqS,MAE1C,OAAOo7e,CACX,EAKAw7T,EAAwBzkzB,UAAU6kzB,iBAAmB,SAAU57T,GAI3D,IAHA,IAAI25R,EAAS,GAETkiC,EAAYz1zB,KAAK4qB,MACZze,EAAI,EAAGA,EAAInM,KAAK4qB,MAAOze,IACxBnM,KAAKwxpB,KAAK+jK,aAAe37T,GAAc,IAAM55f,KAAKq1zB,gBAAgBlpzB,GAAGilzB,cACrEpxzB,KAAKq1zB,gBAAgBlpzB,GAAGqS,MAAQ,GAGhC+0wB,EAAOpnxB,GAAKnM,KAAKq1zB,gBAAgBlpzB,GAAGqS,MAChCxe,KAAKq1zB,gBAAgBlpzB,GAAGqS,MAAQ,GAAKxe,KAAKq1zB,gBAAgBlpzB,GAAGilzB,eAC7Dx3T,GAAc55f,KAAKq1zB,gBAAgBlpzB,GAAGqS,MACtCi3yB,KAGAliC,EAAOpnxB,GAAK,GAIxB,IAASA,EAAI,EAAGA,EAAInM,KAAK4qB,MAAOze,IAAK,CACjC,IAAIqS,EAAQo7e,EAAa67T,EACrBliC,EAAOpnxB,IAAM,IACbonxB,EAAOpnxB,GAAKqS,EAEpB,CACA,OAAO+0wB,CACX,EACO6hC,CACX,CA9I6C,GCvDzCM,IAA4B,WAM5B,SAASA,EAAWlkK,GAKhBxxpB,KAAK21zB,qBAAuB,EAK5B31zB,KAAKi7mB,UAAY,EAKjBj7mB,KAAK41zB,SAAW,EAKhB51zB,KAAKwszB,aAAc,EAMnBxszB,KAAK61zB,uBAAwB,EAK7B71zB,KAAKktzB,cAAgB,EAMrBltzB,KAAK+qzB,gBAAiB,EACtB/qzB,KAAK81zB,2BAA4B,EAMjC91zB,KAAK+1zB,oBAAqB,EAC1B/1zB,KAAK0vzB,YAAa,EAClB1vzB,KAAKs0zB,cAAe,EACpBt0zB,KAAKg2zB,aAAc,EACnBh2zB,KAAKi2zB,QAAUzkK,CACnB,CAmQA,OAlQA/xpB,OAAO4c,eAAeq5yB,EAAW/kzB,UAAW,gBAAiB,CAMzD+F,IAAK,WACD,OAAO1W,KAAKk2zB,cAChB,EACAx8yB,IAAK,SAAU9X,GACX5B,KAAKk2zB,eAAiBt0zB,CAC1B,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAeq5yB,EAAW/kzB,UAAW,QAAS,CAKjD+F,IAAK,WAID,OAHsB,MAAlB1W,KAAKm2zB,YACLn2zB,KAAKm2zB,UAAY,IAAIlB,IAAsBj1zB,OAExCA,KAAKm2zB,SAChB,EACAh+yB,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAeq5yB,EAAW/kzB,UAAW,OAAQ,CAKhD+F,IAAK,WACD,OAAO1W,KAAKi2zB,OAChB,EACAv8yB,IAAK,SAAU9X,GACX5B,KAAKi2zB,QAAUr0zB,CACnB,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAeq5yB,EAAW/kzB,UAAW,QAAS,CAKjD+F,IAAK,WAKD,MAJ6B,qBAAlB1W,KAAKo2zB,WACZp2zB,KAAKo2zB,SAAW,IAAI3S,IACpBzjzB,KAAKo2zB,SAAS7R,UAAUvkzB,OAErBA,KAAKo2zB,QAChB,EACA18yB,IAAK,SAAU9X,GACX5B,KAAKo2zB,SAAWx0zB,EAChB,IAAK,IAAIuK,EAAI,EAAGA,EAAInM,KAAK2xkB,MAAM/mjB,MAAOze,IAClCnM,KAAK2xkB,MAAMiyO,QAAQz3yB,GAAGhG,MAAM07tB,QAAUjguB,EAAM4lQ,OAClB,qBAAf5lQ,EAAM2ie,OACbvke,KAAK2xkB,MAAMiyO,QAAQz3yB,GAAGhG,MAAMo+d,KAAO3ie,EAAM2ie,MAER,qBAA1B3ie,EAAMiizB,kBACb7jzB,KAAK2xkB,MAAMiyO,QAAQz3yB,GAAGhG,MAAM09yB,gBAAkBjizB,EAAMiizB,iBAEnB,qBAA1BjizB,EAAM87d,kBACb19d,KAAK2xkB,MAAMiyO,QAAQz3yB,GAAGhG,MAAMu3d,gBAAkB97d,EAAM87d,iBAEzB,qBAApB97d,EAAMoizB,YACbhkzB,KAAK2xkB,MAAMiyO,QAAQz3yB,GAAGhG,MAAM69yB,UAAYpizB,EAAMoizB,WAErB,qBAAlBpizB,EAAMuizB,UACbnkzB,KAAK2xkB,MAAMiyO,QAAQz3yB,GAAGhG,MAAMg+yB,QAAUvizB,EAAMuizB,QAGxD,EACAhsyB,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAeq5yB,EAAW/kzB,UAAW,iBAAkB,CAK1D+F,IAAK,WAID,MAHuC,qBAA5B1W,KAAKq2zB,qBACZr2zB,KAAKq2zB,mBAAqB,GAEvBr2zB,KAAKq2zB,kBAChB,EACA38yB,IAAK,SAAU9X,GACX5B,KAAKq2zB,mBAAqBz0zB,CAC9B,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAeq5yB,EAAW/kzB,UAAW,mBAAoB,CAK5D+F,IAAK,WACD,OAAO1W,KAAK21zB,oBAChB,EACAj8yB,IAAK,SAAU9X,GACX5B,KAAK21zB,qBAAuB/zzB,CAChC,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAeq5yB,EAAW/kzB,UAAW,SAAU,CAKlD+F,IAAK,WAID,OAHK1W,KAAK+qzB,iBACN/qzB,KAAKi7mB,UAAYj7mB,KAAK6vzB,iBAEnB7vzB,KAAKi7mB,SAChB,EACAvhmB,IAAK,SAAU9X,GACX5B,KAAKi7mB,UAAYr5mB,EACjB5B,KAAK+qzB,gBAAiB,CAC1B,EACA5yyB,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAeq5yB,EAAW/kzB,UAAW,QAAS,CAKjD+F,IAAK,WAID,OAHsB,IAAlB1W,KAAK41zB,UAA2C,qBAAlB51zB,KAAK41zB,WACnC51zB,KAAK41zB,SAAW51zB,KAAKuzzB,gBAElBvzzB,KAAK41zB,QAChB,EACAz9yB,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAeq5yB,EAAW/kzB,UAAW,yBAA0B,CAKlE+F,IAAK,WACD,OAAO1W,KAAKs2zB,UAChB,EACA58yB,IAAK,SAAU9X,GACX5B,KAAKs2zB,WAAa10zB,CACtB,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAeq5yB,EAAW/kzB,UAAW,mBAAoB,CAK5D+F,IAAK,WACD,OAAO1W,KAAKu2zB,iBAChB,EACA78yB,IAAK,SAAU9X,GACX5B,KAAKu2zB,kBAAoB30zB,CAC7B,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAeq5yB,EAAW/kzB,UAAW,mBAAoB,CAK5D+F,IAAK,WACD,OAAO1W,KAAK+1zB,kBAChB,EACAr8yB,IAAK,SAAU9X,GACX5B,KAAK+1zB,mBAAqBn0zB,CAC9B,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAeq5yB,EAAW/kzB,UAAW,WAAY,CAKpD+F,IAAK,WACD,OAAO1W,KAAKwxpB,KAAKpjF,KAAKu+O,cAAchizB,QAAQ3K,KAChD,EACAmY,YAAY,EACZE,cAAc,IAOlBq9yB,EAAW/kzB,UAAUk/yB,cAAgB,WACjC,IACI50M,EADA03M,EAAyB,EAEzB/sX,EAAY,EAEZq1K,EADAj7mB,KAAK2xkB,MAAMiyO,QAAQ,GAAGxvO,QAAU,EACpB,EAGAp0kB,KAAK2xkB,MAAMiyO,QAAQ,GAAGh7pB,OAEtC,IAAK,IAAIz8I,EAAI,EAAGA,EAAInM,KAAK2xkB,MAAM/mjB,MAAOze,IAAK,CACvC,IAAIkikB,EAAOrukB,KAAK2xkB,MAAMiyO,QAAQz3yB,GAa9B,GAXIkikB,EAAKskP,uBAAyBA,IAC9BA,EAAyBtkP,EAAKskP,wBASlC3yzB,KAAK4wzB,kBAAmB,EACpBviP,EAAK+F,QAAU,EAAnB,CAGI,IAFA,IAAIoiP,EAASrqzB,EACTsqzB,EAAQz2zB,KAAKg2zB,YAAch2zB,KAAKwxpB,KAAKr8a,QAAQxqO,QAAQ3K,MAAQA,KAAKwxpB,KAAKpjF,KAAKu+O,cAAchizB,QAAQ3K,MAC7FgQ,EAAI,EAAGA,EAAIq+jB,EAAK+F,QAASpkkB,IACzBA,EAAI,EAAKq+jB,EAAK+F,WACdp0kB,KAAKg2zB,YAAch2zB,KAAKwxpB,KAAKr8a,QAAQ02kB,UAAU4K,EAAQzmzB,EAAI,GAAKhQ,KAAKwxpB,KAAKpjF,KAAKo8O,OAAOiM,EAAQzmzB,EAAI,IAAI2hkB,MAAMiyO,QAAQ4S,GAAQ5D,YAAa,GAG9IhtX,EAAYyoI,EAAKzlb,SACjBg9S,EAAYyoI,EAAKzlb,OAGzB,MACAqyd,EAAYr3mB,KAAKqpC,IAAIgukB,EAAW5sC,EAAKzlb,OACzC,CAUA,OATIg9S,EAAYq1K,IACZA,EAAYr1K,GAEE,IAAdq1K,EACAA,EAAYr1K,EAEP+sX,EAAyB,IAC9B13M,GAAa03M,GAEV13M,CACX,EACAy6M,EAAW/kzB,UAAU4izB,aAAe,WAEhC,IADA,IAAImD,EAAS,EACJvqzB,EAAI,EAAGA,EAAInM,KAAKwxpB,KAAKrkhB,QAAQviH,MAAOze,IAAK,CAE9CuqzB,GADa12zB,KAAKwxpB,KAAKrkhB,QAAQ+9qB,UAAU/+yB,GACxBqS,KACrB,CACA,OAAOk4yB,CACX,EACOhB,CACX,CA3TgC,GAiU5BiB,IAAsC,WAMtC,SAASA,EAAqBnlK,GAC1BxxpB,KAAKoukB,KAAO,GACZpukB,KAAKwxpB,KAAOA,CAChB,CAmDA,OAlDA/xpB,OAAO4c,eAAes6yB,EAAqBhmzB,UAAW,QAAS,CAM3D+F,IAAK,WACD,OAAO1W,KAAKoukB,KAAKhrkB,MACrB,EACA+U,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAes6yB,EAAqBhmzB,UAAW,gBAAiB,CAMnE+F,IAAK,WACD,OAAO1W,KAAKoukB,IAChB,EACAj2jB,YAAY,EACZE,cAAc,IAElBs+yB,EAAqBhmzB,UAAUimzB,OAAS,SAAUp+vB,GAC9C,GAAmB,qBAARA,EAAqB,CAC5B,IAAIq+vB,EAAU,IAAInB,IAAW11zB,KAAKwxpB,MAElC,OADAxxpB,KAAK42zB,OAAOC,GACLA,CACX,CAMI,GAJAr+vB,EAAIryD,MAAMw9yB,mBAAmB3jzB,KAAKwxpB,KAAKrrpB,MAAM09yB,iBAC7CrrvB,EAAIryD,MAAM01vB,QAAQ77vB,KAAKwxpB,KAAKrrpB,MAAMo+d,MAClC/ra,EAAIryD,MAAM49yB,aAAa/jzB,KAAKwxpB,KAAKrrpB,MAAM69yB,WACvCxrvB,EAAIryD,MAAM+9yB,WAAWlkzB,KAAKwxpB,KAAKrrpB,MAAMg+yB,SACb,IAApB3rvB,EAAIm5gB,MAAM/mjB,MACV,IAAK,IAAIze,EAAI,EAAGA,EAAInM,KAAKwxpB,KAAKrkhB,QAAQviH,MAAOze,IACzCqsD,EAAIm5gB,MAAMv+iB,IAAI,IAAIk/xB,KAG1BtyzB,KAAKoukB,KAAKhikB,KAAKosD,EAEvB,EAKAm+vB,EAAqBhmzB,UAAU65yB,OAAS,SAAU/9xB,GAC9C,OAAOzsB,KAAKoukB,KAAK3hjB,EACrB,EACOkqyB,CACX,CA7D0C,GAmEtCG,IAAyC,WAMzC,SAASA,EAAwBtlK,GAK7BxxpB,KAAKoukB,KAAO,GACZpukB,KAAKwxpB,KAAOA,EACZxxpB,KAAKoukB,KAAO,EAChB,CA2CA,OArCA0oP,EAAwBnmzB,UAAUk7yB,UAAY,SAAUp/xB,GAIpD,OAAQzsB,KAAKoukB,KAAK3hjB,EACtB,EACAhtB,OAAO4c,eAAey6yB,EAAwBnmzB,UAAW,QAAS,CAK9D+F,IAAK,WACD,OAAO1W,KAAKoukB,KAAKhrkB,MACrB,EACA+U,YAAY,EACZE,cAAc,IAElBy+yB,EAAwBnmzB,UAAUyiB,IAAM,SAAUolC,GAC9C,GAAmB,kBAARA,EAAkB,CAEzB,IADA,IAAIq0V,OAAM,EACD1gZ,EAAI,EAAGA,EAAIqsD,EAAKrsD,IAAK,EAC1B0gZ,EAAM,IAAI6oa,IAAW11zB,KAAKwxpB,OACtBwkK,aAAc,EAClB,IAAK,IAAIhmzB,EAAI,EAAGA,EAAIhQ,KAAKwxpB,KAAKrkhB,QAAQviH,MAAO5a,IACzC68Y,EAAI8kL,MAAMv+iB,IAAI,IAAIk/xB,KAEtBtyzB,KAAKoukB,KAAKhikB,KAAKygZ,EACnB,CACA,OAAO7sZ,KAAKoukB,IAChB,CAEIpukB,KAAKoukB,KAAKhikB,KAAKosD,EAEvB,EACAs+vB,EAAwBnmzB,UAAUhG,QAAU,SAAUkiZ,GAClD,OAAO7sZ,KAAKoukB,KAAKzjkB,QAAQkiZ,EAC7B,EACOiqa,CACX,CA1D6C,GCzYzC5wwB,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAwBzCqnwB,IAAyB,SAAU3mwB,GAOnC,SAAS2mwB,IACL,IAAInuzB,EAAQwnD,EAAOnnD,KAAKK,OAASA,KAoDjC,OA/CAV,EAAMiqzB,SAAW,IAAI/8C,IAAM,EAAG,GAI9BltwB,EAAMotzB,aAAc,EAKpBptzB,EAAMsqzB,cAAe,EAKrBtqzB,EAAMuqzB,WAAa,IAAIp9C,IAKvBntwB,EAAMwqzB,oBAAsB,GAK5BxqzB,EAAMkqzB,gBAAkB,EACxBlqzB,EAAMmqzB,UAAY,EAKlBnqzB,EAAM2qzB,UAAW,EACjB3qzB,EAAMitzB,oBAAsB,EAa5BjtzB,EAAMqqzB,gBAAiB,EACvBrqzB,EAAMy3zB,eAAgB,EACtBz3zB,EAAM6zzB,cAAe,EACd7zzB,CACX,CAspBA,OAltBA4mD,IAAUunwB,EAAS3mwB,GA6DnBrnD,OAAO4c,eAAeoxyB,EAAQ98yB,UAAW,qBAAsB,CAM3D+F,IAAK,WACD,MAAsC,qBAAvB1W,KAAKg3zB,eAA+D,cAAvBh3zB,KAAKg3zB,aACrE,EACA7+yB,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAeoxyB,EAAQ98yB,UAAW,mBAAoB,CAKzD+F,IAAK,WACD,MAAoC,qBAArB1W,KAAKi3zB,aAA2D,cAArBj3zB,KAAKi3zB,WACnE,EACA9+yB,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAeoxyB,EAAQ98yB,UAAW,eAAgB,CAKrD+F,IAAK,WAID,OAH0B,MAAtB1W,KAAKk3zB,eAAuD,qBAAvBl3zB,KAAKk3zB,gBAC1Cl3zB,KAAKk3zB,eAAgB,GAElBl3zB,KAAKk3zB,aAChB,EACAx9yB,IAAK,SAAU9X,GACX5B,KAAKk3zB,cAAgBt1zB,CACzB,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAeoxyB,EAAQ98yB,UAAW,2BAA4B,CAKjE+F,IAAK,WACD,OAAO1W,KAAKiqzB,QAChB,EACAvwyB,IAAK,SAAU9X,GACX5B,KAAKiqzB,SAAWrozB,CACpB,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAeoxyB,EAAQ98yB,UAAW,UAAW,CAKhD+F,IAAK,WAID,OAHwB,MAApB1W,KAAKi7nB,aAAmD,qBAArBj7nB,KAAKi7nB,cACxCj7nB,KAAKi7nB,YAAc,IAAIm6L,IAAwBp1zB,OAE5CA,KAAKi7nB,WAChB,EACA9inB,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAeoxyB,EAAQ98yB,UAAW,OAAQ,CAK7C+F,IAAK,WAID,OAHqB,MAAjB1W,KAAKutvB,WACLvtvB,KAAKutvB,SAAW,IAAIopE,IAAqB32zB,OAEtCA,KAAKutvB,QAChB,EACAp1uB,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAeoxyB,EAAQ98yB,UAAW,UAAW,CAKhD+F,IAAK,WAID,OAHwB,MAApB1W,KAAKm3zB,aAAmD,qBAArBn3zB,KAAKm3zB,cACxCn3zB,KAAKm3zB,YAAc,IAAIL,IAAwB92zB,OAE5CA,KAAKm3zB,WAChB,EACAh/yB,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAeoxyB,EAAQ98yB,UAAW,eAAgB,CAKrD+F,IAAK,WACD,OAAO1W,KAAKspzB,gBAChB,EACA5vyB,IAAK,SAAU9X,GACX5B,KAAKspzB,iBAAmB1nzB,CAC5B,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAeoxyB,EAAQ98yB,UAAW,QAAS,CAK9C+F,IAAK,WAID,OAHsB,MAAlB1W,KAAKo3zB,YACLp3zB,KAAKo3zB,UAAY,IAAIpU,KAElBhjzB,KAAKo3zB,SAChB,EACA19yB,IAAK,SAAU9X,GACW,MAAlB5B,KAAKo3zB,YACLp3zB,KAAKo3zB,UAAYx1zB,EAEzB,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAeoxyB,EAAQ98yB,UAAW,cAAe,CAKpD+F,IAAK,WACD,OAAO1W,KAAKq3zB,WAChB,EACA39yB,IAAK,SAAU9X,GACX5B,KAAKq3zB,YAAcz1zB,CACvB,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAeoxyB,EAAQ98yB,UAAW,cAAe,CAKpD+F,IAAK,WACD,OAAO1W,KAAKs3zB,WAChB,EACA59yB,IAAK,SAAU9X,GACX5B,KAAKs3zB,YAAc11zB,CACvB,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAeoxyB,EAAQ98yB,UAAW,OAAQ,CAoB7C+F,IAAK,WAID,OAH6B,IAAxB1W,KAAKupzB,SAAS/qyB,OAA8C,qBAAxBxe,KAAKupzB,SAAS/qyB,OAAmD,IAAzBxe,KAAKupzB,SAAS3gqB,SAC3F5oJ,KAAKupzB,SAAWvpzB,KAAKupQ,WAElBvpQ,KAAKupzB,QAIhB,EACA7vyB,IAAK,SAAU9X,GACX5B,KAAKupzB,SAAW3nzB,CACpB,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAeoxyB,EAAQ98yB,UAAW,aAAc,CACnD+F,IAAK,WACD,OAAO1W,KAAKmqoB,UAChB,EACAzwnB,IAAK,SAAU9X,GACX5B,KAAKmqoB,WAAavooB,CACtB,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAeoxyB,EAAQ98yB,UAAW,eAAgB,CACrD+F,IAAK,WACD,OAAO1W,KAAKulzB,YAChB,EACAptyB,YAAY,EACZE,cAAc,IAElBo1yB,EAAQ98yB,UAAU2zd,KAAO,SAAUp8R,EAAMrB,EAAM9G,EAAMuqa,GACjD,GAAIzja,aAAgB0lkB,KAAgC,qBAAf1lkB,EAAKroL,OAAyC,qBAATuhL,EACtE,OAAO//L,KAAK6/wB,WAAW33kB,EAAMrB,EAAK3sL,EAAG2sL,EAAK1sL,GAEzC,GAAoB,kBAAT0sL,GAAqC,kBAAT9G,GAAqC,qBAATuqa,EACpE,OAAOtqmB,KAAK6/wB,WAAW33kB,EAAMrB,EAAM9G,EAAM,MAExC,GAAI8G,aAAgB4lkB,KAAoC,qBAAf5lkB,EAAKroL,OAAyC,qBAATuhL,EAC/E,OAAO//L,KAAK6/wB,WAAW33kB,EAAMrB,EAAM,MAElC,GAAIA,aAAgB0lkB,KAAgC,qBAAf1lkB,EAAKroL,OAAyBuhL,aAAgBilnB,IACpF,OAAOhlzB,KAAK6/wB,WAAW33kB,EAAMrB,EAAK3sL,EAAG2sL,EAAK1sL,EAAG4lL,GAE5C,GAAoB,kBAAT8G,GAAqC,kBAAT9G,IAAsBuqa,aAAgB06M,KAA2B,MAAR16M,GAAe,CAChH,IAAI9rlB,EAAS0pL,EAAK43kB,SAASnpd,WAAWn4S,MAAQqoL,EAC1CyjmB,EAAkB,IAAI79B,IAAW5lkB,EAAM9G,EAAMvhL,EAAO,GACxD,OAAOxe,KAAK6/wB,WAAW33kB,EAAMoimB,EAAiBhgM,EAClD,CACK,OAAIzja,aAAgB4lkB,KAAoC,qBAAf5lkB,EAAKroL,OAAyC,mBAATuhL,EACxE//L,KAAK6/wB,WAAW33kB,EAAMrB,EAAM,MAG5B7mM,KAAK6/wB,WAAW33kB,EAAMrB,EAAM9G,EAE3C,EAKA0tnB,EAAQ98yB,UAAU44P,QAAU,WAGxB,IAFA,IAAI3gH,EAAS,EACTpqI,EAAQxe,KAAKmtI,QAAQ3uH,MAChBrS,EAAI,EAAGA,EAAInM,KAAKm1O,QAAQvqN,MAAOze,IAAK,CAEzCy8I,GADU5oJ,KAAKm1O,QAAQ02kB,UAAU1/yB,GACnBy8I,MAClB,CACA,IAASz8I,EAAI,EAAGA,EAAInM,KAAKoukB,KAAKxjjB,MAAOze,IAAK,CAEtCy8I,GADU5oJ,KAAKoukB,KAAKo8O,OAAOr+yB,GACby8I,MAClB,CACA,OAAO,IAAI4jnB,IAAMhuvB,EAAOoqI,EAC5B,EACA6kqB,EAAQ98yB,UAAUy+yB,gBAAkB,SAAUn2yB,GACtCjZ,KAAKkvzB,oBACLlvzB,KAAKg3zB,cAAch3zB,KAAMiZ,EAEjC,EACAw0yB,EAAQ98yB,UAAU8+yB,cAAgB,SAAUx2yB,GACpCjZ,KAAKuvzB,kBACLvvzB,KAAKi3zB,YAAYj3zB,KAAMiZ,EAE/B,EAKAw0yB,EAAQ98yB,UAAUmuS,OAAS,SAAU78J,GACjC,IAAIzjI,EAAQyjI,EAAM0inB,OAAOnmvB,MACrBoqI,EAAS3G,EAAM0inB,OAAO/7mB,OACtB88F,GAAa,EAYjB,GAXkC,qBAAvBzjG,EAAM0inB,OAAOnmvB,OAAgD,IAAvByjI,EAAM0inB,OAAOnmvB,QAC1DA,EAAQyjI,EAAM4zR,KAAKggY,gBAAgBr3xB,MAAQyjI,EAAM0inB,OAAOzqvB,EACxDwrO,GAAa,GAEkB,qBAAxBzjG,EAAM0inB,OAAO/7mB,QAAkD,IAAxB3G,EAAM0inB,OAAO/7mB,SAC3DA,EAAS3G,EAAM4zR,KAAKggY,gBAAgBjtpB,OAAS3G,EAAM0inB,OAAOxqvB,EAC1DurO,GAAa,GAEbA,IACAzjG,EAAM0inB,OAAS,IAAI8H,IAAWxqnB,EAAM0inB,OAAOzqvB,EAAG+nI,EAAM0inB,OAAOxqvB,EAAGqE,EAAOoqI,IAEjD,IAApB5oJ,KAAKoukB,KAAKxjjB,MAAa,CACvB,IAAIomjB,EAAahxkB,KAAKoukB,KAAKo8O,OAAO,GAAG74O,MAAMiyO,QAAQ,GAAGz9yB,MACtD,GAA0B,MAAtB6qkB,EAAW6wJ,UAAgD,MAA3B7wJ,EAAW6wJ,QAAQl+lB,MAAkD,IAAlCqtc,EAAW6wJ,QAAQl+lB,KAAKnlH,OAChE,MAA1BwyjB,EAAW6wJ,QAAQ3zkB,KAAgD,IAAjC8ib,EAAW6wJ,QAAQ3zkB,IAAI1vI,OAAe,CACzE,IAAItE,EAAI82jB,EAAW6wJ,QAAQl+lB,KAAKnlH,MAAQ,EACpCrE,EAAI62jB,EAAW6wJ,QAAQ3zkB,IAAI1vI,MAAQ,EACvC,GAAIyjI,EAAM0inB,OAAOzqvB,IAAMonyB,IAAWzgzB,QAAQ+iI,MAAMplH,MAAQ,GAAKyjI,EAAM0inB,OAAOxqvB,IAAMmnyB,IAAWzgzB,QAAQ+iI,MAAMplH,MAAQ,EAAG,CAChH,IAAIunyB,EAAW,IAAIt5C,IAAWvyvB,EAAGC,EAAGna,KAAKupzB,SAAS/qyB,MAAOxe,KAAKupzB,SAAS3gqB,QACvE3G,EAAM0inB,OAASohD,CACnB,CACJ,CACJ,CAOA,OANA/lzB,KAAKw0zB,UACLx0zB,KAAKy0zB,YACLz0zB,KAAKulzB,aAAetjqB,EAAM58H,OAC1BrlB,KAAKu3zB,aAAet1qB,EAAM0inB,OACX,IAAI0kD,IAAgBrpzB,MACZ4kzB,SAAS3iqB,EAEpC,EACAwrqB,EAAQ98yB,UAAU6jzB,QAAU,WAOxB,IANA,IAAIv+M,EAAU,EACV7hC,EAAU,EACVlD,EAAmB,EACnBy6O,EAAkB,EAClB0E,EAAU,EACV7nK,EAAWxopB,KAAKm1O,QAAQvqN,MACnBze,EAAI,EAAGA,EAAIq8oB,EAAUr8oB,IAAK,CAC/B,IAAI0gZ,EAAM7sZ,KAAKm1O,QAAQ02kB,UAAU1/yB,GACjCkkzB,EAAU,EAEV,IADA,IAAI+C,EAAWvma,EAAI8kL,MAAM/mjB,MAChB5a,EAAI,EAAGA,EAAIojzB,EAAUpjzB,IAAK,CAC/B,IAAIq+jB,EAAOxhL,EAAI8kL,MAAMiyO,QAAQ5zyB,GAG7B,GAFAqgzB,EAAUzszB,KAAKqpC,IAAIojxB,EAAShiP,EAAK+F,UAE5B/F,EAAKy9O,sBAAwBz9O,EAAKmpP,qBAAuBnpP,EAAKigP,WAAa,GAAKjgP,EAAK+F,QAAU,GAAI,CACpG,GAAI/F,EAAKigP,WAAat+yB,EAAI68Y,EAAI8kL,MAAM/mjB,MAChC,MAAM,IAAImC,MAAM,iCAAmC/c,EAAE8G,WAAa,WAAa3K,EAAE2K,YAErF,GAAIu3jB,EAAK+F,QAAUjokB,EAAInM,KAAKm1O,QAAQvqN,MAChC,MAAM,IAAImC,MAAM,oCAAsC/c,EAAE8G,WAAa,WAAa3K,EAAE2K,YAKxF,GAAIu3jB,EAAKigP,WAAa,GAAKjgP,EAAK+F,QAAU,EAAG,CAQzC,IAPA6hC,EAAU5nC,EAAKigP,WACfl6O,EAAU/F,EAAK+F,QACflD,EAAmBlhkB,EACnB27yB,EAAkBx/yB,EAClBkikB,EAAKopP,kBAAmB,EACxBppP,EAAKqpP,iBAAkB,EAEhBzhN,EAAU,GACb/kC,IACArkL,EAAI8kL,MAAMiyO,QAAQ1yO,GAAkB46O,qBAAsB,EAC1Dj/Z,EAAI8kL,MAAMiyO,QAAQ1yO,GAAkBsmP,oBAAqB,EACzD3qa,EAAI8kL,MAAMiyO,QAAQ1yO,GAAkBkD,QAAUA,EAC9C6hC,IAKJ,IAHA/kC,EAAmBlhkB,EACnBimmB,EAAU5nC,EAAKigP,WAERl6O,EAAU,GAAG,CAKhB,IAJAu3O,IACA3rzB,KAAKm1O,QAAQ02kB,UAAUF,GAAiBh6O,MAAMiyO,QAAQ5zyB,GAAGwnzB,oBAAqB,EAC9Ex3zB,KAAKm1O,QAAQ02kB,UAAUF,GAAiBh6O,MAAMiyO,QAAQ1yO,GAAkBsmP,oBAAqB,EAC7FpjP,IACO6hC,EAAU,GACb/kC,IACAlxkB,KAAKm1O,QAAQ02kB,UAAUF,GAAiBh6O,MAAMiyO,QAAQ1yO,GAAkB46O,qBAAsB,EAC9F9rzB,KAAKm1O,QAAQ02kB,UAAUF,GAAiBh6O,MAAMiyO,QAAQ1yO,GAAkBsmP,oBAAqB,EAC7FvhN,IAEJA,EAAU5nC,EAAKigP,WACfp9O,EAAmBlhkB,CACvB,CACJ,MACK,GAAIq+jB,EAAKigP,WAAa,GAAsB,IAAjBjgP,EAAK+F,QAKjC,IAJA6hC,EAAU5nC,EAAKigP,WACfp9O,EAAmBlhkB,EACnBq+jB,EAAKopP,kBAAmB,EAEjBxhN,EAAU,GACb/kC,IACArkL,EAAI8kL,MAAMiyO,QAAQ1yO,GAAkB46O,qBAAsB,EAC1D71M,SAGH,GAAwB,IAApB5nC,EAAKigP,YAAoBjgP,EAAK+F,QAAU,EAI7C,IAHAA,EAAU/F,EAAK+F,QACfu3O,EAAkBx/yB,EAEXiokB,EAAU,GACbu3O,IACA3rzB,KAAKm1O,QAAQ02kB,UAAUF,GAAiBh6O,MAAMiyO,QAAQ5zyB,GAAGwnzB,oBAAqB,EAC9EpjP,GAGZ,CACJ,CACAvnL,EAAI8qa,eAAiBtH,CACzB,CACJ,EACA5C,EAAQ98yB,UAAU8jzB,UAAY,WAC1B,IAAImD,EAGA1mP,EAFA2mP,EAAc,EACdC,EAAc,EAEdnM,EAAkB,EAGtB,GAFAiM,EAAcC,EAAc,EAC5B3mP,EAAmBy6O,EAAkB,EACjC3rzB,KAAK2pzB,gBAAkB3pzB,KAAK+2zB,cAE5B,IADA,IAAIvuK,EAAWxopB,KAAKoukB,KAAKxjjB,MAChBze,EAAI,EAAGA,EAAIq8oB,EAAUr8oB,IAAK,CAC/B,IAAI0gZ,EAAM7sZ,KAAKoukB,KAAKo8O,OAAOr+yB,GAC3B2rzB,EAAc,EAEd,IADA,IAAI1E,EAAWvma,EAAI8kL,MAAM/mjB,MAChB5a,EAAI,EAAGA,EAAIojzB,EAAUpjzB,IAAK,CAC/B,IAAIq+jB,EAAOxhL,EAAI8kL,MAAMiyO,QAAQ5zyB,GAG7B,GAFA8nzB,EAAcl0zB,KAAKqpC,IAAI6qxB,EAAazpP,EAAK+F,UAEpC/F,EAAKy9O,sBAAwBz9O,EAAKmpP,qBAC/BnpP,EAAKigP,WAAa,GAAKjgP,EAAK+F,QAAU,GAAI,CAC9C,GAAI/F,EAAKigP,WAAat+yB,EAAI68Y,EAAI8kL,MAAM/mjB,MAChC,MAAM,IAAImC,MAAM,kCAAoC/c,EAAE8G,WAAa,WAAa3K,EAAE2K,YAEtF,GAAIu3jB,EAAK+F,QAAUjokB,EAAInM,KAAKoukB,KAAKxjjB,MAC7B,MAAM,IAAImC,MAAM,kCAAoC/c,EAAE8G,WAAa,WAAa3K,EAAE2K,YAEtF,GAAIu3jB,EAAKigP,WAAa,GAAKjgP,EAAK+F,QAAU,EAAG,CAQzC,IAPAwjP,EAAcvpP,EAAKigP,WACnBuJ,EAAcxpP,EAAK+F,QACnBlD,EAAmBlhkB,EACnB27yB,EAAkBx/yB,EAClBkikB,EAAKopP,kBAAmB,EACxBppP,EAAKqpP,iBAAkB,EAEhBE,EAAc,GACjB1mP,IACArkL,EAAI8kL,MAAMiyO,QAAQ1yO,GAAkB46O,qBAAsB,EAC1Dj/Z,EAAI8kL,MAAMiyO,QAAQ1yO,GAAkBsmP,oBAAqB,EACzDI,IAKJ,IAHA1mP,EAAmBlhkB,EACnB4nzB,EAAcvpP,EAAKigP,WAEZuJ,EAAc,GAAG,CAKpB,IAJAlM,IACA3rzB,KAAKoukB,KAAKo8O,OAAOmB,GAAiBh6O,MAAMiyO,QAAQ5zyB,GAAGwnzB,oBAAqB,EACxEx3zB,KAAKoukB,KAAKo8O,OAAOmB,GAAiBh6O,MAAMiyO,QAAQ1yO,GAAkBsmP,oBAAqB,EACvFK,IACOD,EAAc,GACjB1mP,IACAlxkB,KAAKoukB,KAAKo8O,OAAOmB,GAAiBh6O,MAAMiyO,QAAQ1yO,GAAkB46O,qBAAsB,EACxF9rzB,KAAKoukB,KAAKo8O,OAAOmB,GAAiBh6O,MAAMiyO,QAAQ1yO,GAAkBsmP,oBAAqB,EACvFI,IAEJA,EAAcvpP,EAAKigP,WACnBp9O,EAAmBlhkB,CACvB,CACJ,MACK,GAAIq+jB,EAAKigP,WAAa,GAAsB,IAAjBjgP,EAAK+F,QAKjC,IAJAwjP,EAAcvpP,EAAKigP,WACnBp9O,EAAmBlhkB,EACnBq+jB,EAAKopP,kBAAmB,EAEjBG,EAAc,GACjB1mP,IACArkL,EAAI8kL,MAAMiyO,QAAQ1yO,GAAkB46O,qBAAsB,EAC1D8L,SAGH,GAAwB,IAApBvpP,EAAKigP,YAAoBjgP,EAAK+F,QAAU,EAI7C,IAHAyjP,EAAcxpP,EAAK+F,QACnBu3O,EAAkBx/yB,EAEX0rzB,EAAc,GACjBlM,IACA3rzB,KAAKoukB,KAAKo8O,OAAOmB,GAAiBh6O,MAAMiyO,QAAQ5zyB,GAAGwnzB,oBAAqB,EACxEK,GAGZ,CACJ,CACAhra,EAAI8qa,eAAiBG,CACzB,CAER,EACArK,EAAQ98yB,UAAUk6yB,oBAAsB,SAAUlmD,GAC9C,GAAsB,qBAAXA,EAAwB,CAC/B3kwB,KAAKu1zB,aAAc,EAGnB,IAFA,IAAIhiC,EAASvzxB,KAAKmtI,QAAQqorB,iBAAiB7wD,EAAOnmvB,MAAQmmvB,EAAOzqvB,GAExD/N,EAAI,EAAGye,EAAQ5qB,KAAKmtI,QAAQviH,MAAOze,EAAIye,EAAOze,IAInDnM,KAAKmtI,QAAQ+9qB,UAAU/+yB,GAAGiizB,YAAc76B,EAAOpnxB,GAC/CnM,KAAKypzB,UAAYl2B,EAAOpnxB,GAE5B,GAAuB,MAAnBnM,KAAKyszB,YAA4D,GAAtCzszB,KAAKmG,MAAMykzB,yBAA8F,GAA1D5qzB,KAAKyszB,WAAW5/Z,IAAI2kQ,KAAKrrpB,MAAMykzB,wBAAkC,CAC3I,IAAI5zrB,EAAU,EACVo3rB,EAAc,EACdlhrB,EAAcltI,KAAKmtI,QAAQviH,MAC3BmtyB,EAAuB,EACc,MAArC/3zB,KAAKyszB,WAAWtmzB,MAAM2mzB,aAAoE,qBAAtC9szB,KAAKyszB,WAAWtmzB,MAAM2mzB,cACrB,oBAA1C9szB,KAAKyszB,WAAWtmzB,MAAM2mzB,YAAYnprB,MAAuB3jI,KAAKyszB,WAAWtmzB,MAAM2mzB,YAAY7K,aAClGjrrB,GAAWh3H,KAAKyszB,WAAWtmzB,MAAM2mzB,YAAYnprB,MAEK,oBAA3C3jI,KAAKyszB,WAAWtmzB,MAAM2mzB,YAAYlprB,OAAwB5jI,KAAKyszB,WAAWtmzB,MAAM2mzB,YAAY5K,cACnGlrrB,GAAWh3H,KAAKyszB,WAAWtmzB,MAAM2mzB,YAAYlprB,QAGrD,IAASz3H,EAAI,EAAGA,EAAInM,KAAKyszB,WAAW6B,WAAYnizB,IAC5CiizB,GAAepuzB,KAAKyszB,WAAW5/Z,IAAI2kQ,KAAKrkhB,QAAQ+9qB,UAAUlrzB,KAAKwpzB,gBAAkBr9yB,GAAGqS,MAExF,IAAK,IAAIxO,EAAI,EAAGA,EAAIhQ,KAAKmtI,QAAQviH,MAAO5a,IAChChQ,KAAKi7nB,YAAYiwL,UAAUl7yB,GAAGwO,MAAQ,GAAKxe,KAAKi7nB,YAAYiwL,UAAUl7yB,GAAGohzB,gBACzEhD,GAAepuzB,KAAKi7nB,YAAYiwL,UAAUl7yB,GAAGwO,MAC7C0uH,KAcR,GAXmD,MAA9CltI,KAAKyszB,WAAW5/Z,IAAI2kQ,KAAKrrpB,MAAM2mzB,aAA4E,oBAA9C9szB,KAAKyszB,WAAW5/Z,IAAI2kQ,KAAKrrpB,MAAM2mzB,cAChC,oBAAlD9szB,KAAKyszB,WAAW5/Z,IAAI2kQ,KAAKrrpB,MAAM2mzB,YAAY5+pB,KAAsBluJ,KAAKyszB,WAAW5/Z,IAAI2kQ,KAAKrrpB,MAAM2mzB,YAAY3K,YACnHnrrB,GAAWh3H,KAAKyszB,WAAW5/Z,IAAI2kQ,KAAKrrpB,MAAM2mzB,YAAY5+pB,KAEM,oBAArDluJ,KAAKyszB,WAAW5/Z,IAAI2kQ,KAAKrrpB,MAAM2mzB,YAAYn4hB,QAAyB30R,KAAKyszB,WAAW5/Z,IAAI2kQ,KAAKrrpB,MAAM2mzB,YAAY1K,eACtHprrB,GAAWh3H,KAAKyszB,WAAW5/Z,IAAI2kQ,KAAKrrpB,MAAM2mzB,YAAYn4hB,SAGZ,GAA9C30R,KAAKyszB,WAAW5/Z,IAAI2kQ,KAAKrrpB,MAAM+qzB,cAC/B9C,GAA4D,EAA7CpuzB,KAAKyszB,WAAW5/Z,IAAI2kQ,KAAKrrpB,MAAM+qzB,aAE9C9C,EAAcp3rB,IACd+gsB,GAAwB3J,EAAcp3rB,GAAWkW,EACjDltI,KAAKypzB,UAAYsO,EACM,MAAnB/3zB,KAAKyszB,YACL,IAASz8yB,EAAI,EAAGA,EAAIhQ,KAAKmtI,QAAQviH,MAAO5a,IAC/BhQ,KAAKmtI,QAAQ+9qB,UAAUl7yB,GAAGohzB,gBAC3BpxzB,KAAKmtI,QAAQ+9qB,UAAUl7yB,GAAGo+yB,YAAc2J,EAI5D,CAYJ,KACK,CACGxkC,EAAS,CAACvzxB,KAAKmtI,QAAQviH,OAC3B,IADA,IACS5oB,EAAI,EAAGA,EAAIhC,KAAKmtI,QAAQviH,MAAO5oB,IACpCuxxB,EAAOvxxB,GAAK,EAEhB,IAAIiszB,EAAY,EAKhB,IAHiC,qBAArBjuzB,KAAKipqB,aAA4D,qBAAtBjpqB,KAAKu3zB,cAAuD,OAArBv3zB,KAAKipqB,aAAqD,qBAAtBjpqB,KAAKu3zB,gBACnIv3zB,KAAKs1zB,aAAet1zB,KAAKu3zB,aAAa/4yB,OAEtCxe,KAAKm1O,QAAQvqN,MAAQ,EACrB,KAAIotyB,EAAah4zB,KAAKm1O,QAAQ02kB,UAAU,GAAGl6O,MAAM/mjB,MAC7C49nB,EAAWxopB,KAAKm1O,QAAQvqN,MAC5B,IAASze,EAAI,EAAGA,EAAI6rzB,EAAY7rzB,IAAK,CACjC8hzB,EAAY,EACZ,IAASj+yB,EAAI,EAAGA,EAAIw4oB,EAAUx4oB,IAAK,CAC/B,IAAI4lzB,EAAWhyzB,KAAKgmD,IAAI5pD,KAAKs1zB,aAAct1zB,KAAKm1O,QAAQ02kB,UAAU77yB,GAAG2hkB,MAAMiyO,QAAQz3yB,GAAGqS,OACtFyvyB,EAAYrqzB,KAAKqpC,IAAIghxB,EAAW2H,EACpC,CACAriC,EAAOpnxB,GAAK8hzB,CAChB,CATsD,CAuB1DA,EAAY,EACH9hzB,EAAI,EAAb,IAAK,IAAW8rzB,EAAaj4zB,KAAKmtI,QAAQviH,MAAOze,EAAI8rzB,EAAY9rzB,IAAK,CAClE,IAAS6D,EAAI,EAAGw4oB,EAAWxopB,KAAKoukB,KAAKxjjB,MAAO5a,EAAIw4oB,EAAUx4oB,IACtD,GAAwD,GAAnDhQ,KAAKoukB,KAAKo8O,OAAOx6yB,GAAG2hkB,MAAMiyO,QAAQz3yB,GAAGmizB,aAAoBtuzB,KAAKoukB,KAAKo8O,OAAOx6yB,GAAG2hkB,MAAMiyO,QAAQz3yB,GAAG2/yB,qBAAsE,MAA9C9rzB,KAAKoukB,KAAKo8O,OAAOx6yB,GAAG2hkB,MAAMiyO,QAAQz3yB,GAAGvK,MAAe,CAC3K,GAAkD,MAA9C5B,KAAKoukB,KAAKo8O,OAAOx6yB,GAAG2hkB,MAAMiyO,QAAQz3yB,GAAGvK,QAAkB5B,KAAKoukB,KAAKo8O,OAAOx6yB,GAAGwhpB,KAAKrrpB,MAAMykzB,wBAC1E5qzB,KAAKoukB,KAAKo8O,OAAOx6yB,GAAGwhpB,KAAKrrpB,MAAM2mzB,YAAYlprB,MACnD5jI,KAAKoukB,KAAKo8O,OAAOx6yB,GAAGwhpB,KAAKrrpB,MAAM2mzB,YAAYnprB,KACzC3jI,KAAKoukB,KAAKo8O,OAAOx6yB,GAAG2hkB,MAAMiyO,QAAQz3yB,GAAGhG,MAAM07tB,QAAQl+lB,KAAKnlH,MAI9Do3yB,EAAW,EACfA,EAAW51zB,KAAKs1zB,aAAe,EAAM1xzB,KAAKgmD,IAAI5pD,KAAKs1zB,aAAct1zB,KAAKoukB,KAAKo8O,OAAOx6yB,GAAG2hkB,MAAMiyO,QAAQz3yB,GAAGqS,OAASxe,KAAKoukB,KAAKo8O,OAAOx6yB,GAAG2hkB,MAAMiyO,QAAQz3yB,GAAGqS,MAapJyvyB,EAAYrqzB,KAAKqpC,IAAIsmvB,EAAOpnxB,GAAIvI,KAAKqpC,IAAIghxB,EAAW2H,IACpD3H,EAAYrqzB,KAAKqpC,IAAIjtC,KAAKmtI,QAAQ+9qB,UAAU/+yB,GAAGqS,MAAOyvyB,EAC1D,CAEmB,GAAnBjuzB,KAAKoukB,KAAKxjjB,QACV2owB,EAAOpnxB,GAAK8hzB,GAChBA,EAAY,CAChB,CACS9hzB,EAAI,EAAb,IAAK,IAAW+rzB,EAAWl4zB,KAAKoukB,KAAKxjjB,MAAOze,EAAI+rzB,EAAU/rzB,IACjD,CAAI6D,EAAI,EAAb,IAAK,IAAWmozB,EAAWn4zB,KAAKmtI,QAAQviH,MAAO5a,EAAImozB,EAAUnozB,IACzD,GAAIhQ,KAAKoukB,KAAKo8O,OAAOr+yB,GAAGwlkB,MAAMiyO,QAAQ5zyB,GAAGs+yB,WAAa,EAClD,CAAY/6B,EAAOvjxB,GACnB,IADA,IACS8Q,EAAI,EAAGA,EAAI9gB,KAAKoukB,KAAKo8O,OAAOr+yB,GAAGwlkB,MAAMiyO,QAAQ5zyB,GAAGs+yB,WAAYxtyB,IACxDyywB,EAAOvjxB,EAAI8Q,EAFH,CAFW8J,CAoB5C,IAASze,EAAI,EAAGye,EAAQ5qB,KAAKmtI,QAAQviH,MAAOze,EAAIye,EAAOze,KAC/CnM,KAAKmtI,QAAQ+9qB,UAAU/+yB,GAAGqS,OAAS,GAE9Bxe,KAAKmtI,QAAQ+9qB,UAAU/+yB,GAAGqS,MAAQ,IAAMxe,KAAKmtI,QAAQ+9qB,UAAU/+yB,GAAGilzB,iBADvEpxzB,KAAKmtI,QAAQ+9qB,UAAU/+yB,GAAGiizB,YAAc76B,EAAOpnxB,IAInD6qH,EAAU,EAAd,IACIsuhB,EAAW,EACX8tK,EAAWpzzB,KAAKmtI,QAAQviH,MACxBwtyB,EAAoB,EACxB9yK,EAAWtlpB,KAAKypzB,UAChB,IAASz5yB,EAAI,EAAGA,EAAIhQ,KAAKmtI,QAAQviH,MAAO5a,IAChChQ,KAAKi7nB,YAAYiwL,UAAUl7yB,GAAGwO,MAAQ,GAAKxe,KAAKi7nB,YAAYiwL,UAAUl7yB,GAAGohzB,gBACzE9rK,GAAYtlpB,KAAKi7nB,YAAYiwL,UAAUl7yB,GAAGwO,MAC1C40yB,KAWR,GALI9tK,EAAW,GACuC,GAA9CtlpB,KAAKyszB,WAAW5/Z,IAAI2kQ,KAAKrrpB,MAAM+qzB,cAC/B5rK,GAAyD,EAA7CtlpB,KAAKyszB,WAAW5/Z,IAAI2kQ,KAAKrrpB,MAAM+qzB,aAG/C5rK,EAAWtuhB,IACXohsB,EAAqB9yK,EAAY8tK,EACV,MAAnBpzzB,KAAKyszB,YACL,IAASz8yB,EAAI,EAAGA,EAAIhQ,KAAKmtI,QAAQviH,MAAO5a,IAC/BhQ,KAAKmtI,QAAQ+9qB,UAAUl7yB,GAAGohzB,gBAC3BpxzB,KAAKmtI,QAAQ+9qB,UAAUl7yB,GAAGo+yB,YAAcgK,EAI5D,CACJ,EACO3K,CACX,CAptB6B,CAotB3BhI,KCjuBE4S,IAAwC,WAExC,SAASA,EAAuBnwnB,EAAMrB,EAAM9G,EAAMuqa,EAAMC,GAChDria,aAAgBukkB,KAA8B,qBAAT5lkB,EACrC7mM,KAAKs4zB,eAAepwnB,EAAKhuL,EAAGguL,EAAK/tL,EAAG+tL,EAAK1pL,MAAO0pL,EAAKt/C,OAAQ,MAExDs/C,aAAgBukkB,KAAc5lkB,aAAgB6+lB,KAA2B,qBAAT3lmB,EACrE//L,KAAKs4zB,eAAepwnB,EAAKhuL,EAAGguL,EAAK/tL,EAAG+tL,EAAK1pL,MAAO0pL,EAAKt/C,OAAQi+C,GAExDqB,aAAgBqkkB,KAAU1lkB,aAAgB2lkB,KAAyB,qBAATzskB,EAC/D//L,KAAKs4zB,eAAepwnB,EAAKhuL,EAAGguL,EAAK/tL,EAAG0sL,EAAKroL,MAAOqoL,EAAKj+C,OAAQ,MAExDs/C,aAAgBqkkB,KAAU1lkB,aAAgB2lkB,KAASzskB,aAAgB2lmB,KAA2B,qBAATp7L,EAC1FtqmB,KAAKs4zB,eAAepwnB,EAAKhuL,EAAGguL,EAAK/tL,EAAG0sL,EAAKroL,MAAOqoL,EAAKj+C,OAAQm3C,GAExDmI,aAAgBskkB,KAAyB,qBAAT3lkB,EACrC7mM,KAAKs4zB,eAAe,EAAG,EAAGpwnB,EAAK1pL,MAAO0pL,EAAKt/C,OAAQ,MAE9B,kBAATs/C,GAAqC,kBAATrB,GAAqC,qBAAT9G,EACpE//L,KAAKs4zB,eAAe,EAAG,EAAGpwnB,EAAMrB,EAAM,MAEjB,kBAATqB,GAAqC,kBAATrB,GAAqB9G,aAAgB2lmB,KAA2B,qBAATp7L,EAC/FtqmB,KAAKs4zB,eAAe,EAAG,EAAGpwnB,EAAMrB,EAAM9G,GAGtC//L,KAAKs4zB,eAAepwnB,EAAMrB,EAAM9G,EAAMuqa,EAAM,KAOpD,CAklBA,OAjlBA7qmB,OAAO4c,eAAeg8yB,EAAuB1nzB,UAAW,OAAQ,CAM5D+F,IAAK,WACD,OAAO1W,KAAKu4zB,SAChB,EACA7+yB,IAAK,SAAU9X,GAEX5B,KAAKu4zB,UAAY32zB,EAEjB5B,KAAKw4zB,gBAET,EACArgzB,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAeg8yB,EAAuB1nzB,UAAW,YAAa,CAKjE+F,IAAK,WACD,OAAO1W,KAAKy4zB,cAChB,EACA/+yB,IAAK,SAAU9X,GAEX5B,KAAK04zB,aAAa92zB,EAEtB,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAeg8yB,EAAuB1nzB,UAAW,aAAc,CAKlE+F,IAAK,WACD,OAAO1W,KAAK24zB,YAChB,EACAj/yB,IAAK,SAAU9X,GAEX5B,KAAK24zB,aAAe/2zB,CAExB,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAeg8yB,EAAuB1nzB,UAAW,aAAc,CAKlE+F,IAAK,WACD,OAAQ1W,KAAK24zB,YACjB,EACAj/yB,IAAK,SAAU9X,GACX5B,KAAK24zB,cAAgB/2zB,CACzB,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAeg8yB,EAAuB1nzB,UAAW,WAAY,CAKhE+F,IAAK,WACD,OAAO1W,KAAKgqzB,eAChB,EACAtwyB,IAAK,SAAU9X,GACP5B,KAAK4M,OAAS68vB,IAAav3kB,OAC3BlyL,KAAKgqzB,gBAAkBpozB,EAK/B,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAeg8yB,EAAuB1nzB,UAAW,IAAK,CAKzD+F,IAAK,WAED,MAD6C,qBAAzB1W,KAAKgqzB,gBAAmChqzB,KAAKgqzB,gBAAgB9vyB,EAAI,CAEzF,EACAR,IAAK,SAAU9X,GACP5B,KAAK4M,OAAS68vB,IAAav3kB,OAC3BlyL,KAAKgqzB,gBAAgB9vyB,EAAItY,EAKjC,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAeg8yB,EAAuB1nzB,UAAW,IAAK,CAKzD+F,IAAK,WAED,MAD6C,qBAAzB1W,KAAKgqzB,gBAAmChqzB,KAAKgqzB,gBAAgB7vyB,EAAI,CAEzF,EACAT,IAAK,SAAU9X,GACP5B,KAAK4M,OAAS68vB,IAAav3kB,OAC3BlyL,KAAKgqzB,gBAAgB7vyB,EAAIvY,EAKjC,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAeg8yB,EAAuB1nzB,UAAW,OAAQ,CAK5D+F,IAAK,WACD,OAAO1W,KAAKujC,SAASltB,IACzB,EACAqD,IAAK,SAAU9X,GACP5B,KAAK4M,OAAS68vB,IAAav3kB,MAC3BlyL,KAAKujC,SAAS0V,MAAMr3C,EAE5B,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAeg8yB,EAAuB1nzB,UAAW,QAAS,CAK7D+F,IAAK,WACD,OAAO1W,KAAKujC,SAAS/kB,KACzB,EACA9E,IAAK,SAAU9X,GACX,GAAI5B,KAAKujC,SAAS/kB,QAAU5c,GAAS5B,KAAK4M,OAAS68vB,IAAav3kB,KAAM,CAClE,IAAI77K,EAAOrW,KAAKujC,SAASltB,KACzBA,EAAKmI,MAAQ5c,EACb5B,KAAKujC,SAAS0V,MAAM5iC,EACxB,CACJ,EACA8B,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAeg8yB,EAAuB1nzB,UAAW,SAAU,CAK9D+F,IAAK,WACD,OAAO1W,KAAKujC,SAASqlH,MACzB,EACAlvI,IAAK,SAAU9X,GACX,GAAI5B,KAAKujC,SAASqlH,SAAWhnJ,GAAS5B,KAAK4M,OAAS68vB,IAAav3kB,KAAM,CACnE,IAAI77K,EAAOrW,KAAKujC,SAASltB,KACzBA,EAAKuyI,OAAShnJ,EACd5B,KAAKujC,SAAS0V,MAAM5iC,EACxB,CACJ,EACA8B,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAeg8yB,EAAuB1nzB,UAAW,WAAY,CAKhE+F,IAAK,WACD,OAAO1W,KAAKujC,SAASu8uB,QACzB,EACA3nwB,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAeg8yB,EAAuB1nzB,UAAW,WAAY,CAKhE+F,IAAK,WAID,OAAO1W,KAAK44zB,WAChB,EACAzgzB,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAeg8yB,EAAuB1nzB,UAAW,OAAQ,CAK5D+F,IAAK,WACD,OAAO1W,KAAK64zB,YAChB,EACAn/yB,IAAK,SAAU9X,GACX5B,KAAK84zB,cAAcl3zB,GACnB5B,KAAK64zB,aAAej3zB,CACxB,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAeg8yB,EAAuB1nzB,UAAW,SAAU,CAK9D+F,IAAK,WACD,OAAO,IAAI+1vB,IAAW,IAAIF,IAAOvswB,KAAKka,EAAGla,KAAKma,GAAIna,KAAKqW,KAC3D,EACAqD,IAAK,SAAU9X,GACP5B,KAAK4M,OAAS68vB,IAAav3kB,OAC3BlyL,KAAK23B,SAAW,IAAI40uB,IAAO3qwB,EAAMsY,EAAGtY,EAAMuY,GAC1Cna,KAAKqW,KAAO,IAAIm2vB,IAAM5qwB,EAAM4c,MAAO5c,EAAMgnJ,QAEjD,EACAzwI,YAAY,EACZE,cAAc,IAMlBggzB,EAAuB1nzB,UAAU2nzB,eAAiB,SAAUpwnB,EAAMrB,EAAM9G,EAAMuqa,EAAMC,GAChFvqmB,KAAKka,EAAIguL,EACTloM,KAAKma,EAAI0sL,EACT7mM,KAAK44zB,YAAc,IAAIz5B,IAAYp/lB,EAAMuqa,EAE7C,EAKA+tN,EAAuB1nzB,UAAUmozB,cAAgB,SAAUlszB,GACvD,GAAIA,IAAS68vB,IAAav3kB,KAAM,CAC5B,OAAQtlL,GACJ,KAAK68vB,IAAamP,IACd54wB,KAAK+4zB,KAAOxvD,IAAaqP,IACzB,MACJ,KAAKnP,IAAawhC,OACdjryB,KAAK+4zB,KAAOxvD,IAAa0hC,OACzB,MACJ,KAAKxhC,IAAajinB,KACdxnJ,KAAK+4zB,KAAOxvD,IAAa/hnB,KACzB,MACJ,KAAKiinB,IAAa/hnB,MACd1nJ,KAAK+4zB,KAAOxvD,IAAa7hnB,MAGjC1nJ,KAAKw4zB,gBACT,CACJ,EAKAH,EAAuB1nzB,UAAU6nzB,eAAiB,WAC9Cx4zB,KAAKg8Q,UAAYwtf,IAAkBt3kB,IACvC,EAKAmmoB,EAAuB1nzB,UAAU+nzB,aAAe,SAAU18iB,GACtD,GAAIh8Q,KAAK+4zB,OAASxvD,IAAar3kB,KAC3BlyL,KAAKy4zB,eAAiBz8iB,MAErB,CAED,IAAIg9iB,GAAW,EACf,OAAQh5zB,KAAK+4zB,MACT,KAAKxvD,IAAa/hnB,KACdwxqB,EAAYh9iB,IAAcwtf,IAAkByvD,SAAWj9iB,IAAcwtf,IAAkB0vD,YACnFl9iB,IAAcwtf,IAAkB2vD,YAAcn9iB,IAAcwtf,IAAkBt3kB,KAClF,MACJ,KAAKq3kB,IAAaqP,IACdogD,EAAYh9iB,IAAcwtf,IAAkByvD,SAAWj9iB,IAAcwtf,IAAkB4vD,WACnFp9iB,IAAcwtf,IAAkB6vD,UAAYr9iB,IAAcwtf,IAAkBt3kB,KAChF,MACJ,KAAKq3kB,IAAa7hnB,MACdsxqB,EAAYh9iB,IAAcwtf,IAAkB6vD,UAAYr9iB,IAAcwtf,IAAkB8vD,aACpFt9iB,IAAcwtf,IAAkB+vD,aAAev9iB,IAAcwtf,IAAkBt3kB,KACnF,MACJ,KAAKq3kB,IAAa0hC,OACd+tB,EAAYh9iB,IAAcwtf,IAAkB2vD,YAAcn9iB,IAAcwtf,IAAkBgwD,cACnFx9iB,IAAcwtf,IAAkB+vD,aAAev9iB,IAAcwtf,IAAkBt3kB,KACtF,MACJ,KAAKq3kB,IAAai9B,KACdwyB,EAAYh9iB,IAAcwtf,IAAkBiwD,cAAgBz9iB,IAAcwtf,IAAkBt3kB,KAGhG8moB,IACAh5zB,KAAKy4zB,eAAiBz8iB,EAE9B,CACJ,EAKAq8iB,EAAuB1nzB,UAAU2zd,KAAO,SAAU5iB,EAAOxwb,GACrD,IAAI2kZ,EAAO6rC,EAAM7rC,KACb8uV,EAAS3kwB,KAAKkpzB,gBAAgBrzY,EAAM3kZ,IACtB,IAAdyzuB,EAAOzqvB,IACPyqvB,EAAOzqvB,EAAI,GAEfwnc,EAAMo+T,SAASyoB,gBAAgBvoyB,KAAKujC,SAAU,IAAIgpuB,IAAO5H,EAAOzqvB,EAAGyqvB,EAAOxqvB,GAAI,IAAIqyvB,IAAM7H,EAAOnmvB,MAAOmmvB,EAAO/7mB,QACjH,EAKAyvqB,EAAuB1nzB,UAAUu4yB,gBAAkB,SAAUrzY,EAAM3kZ,GAC/D,IAAIrG,EAAS7qB,KAAK2kwB,OAOlB,OANI3kwB,KAAKy4zB,iBAAmBjvD,IAAkBt3kB,KAC1CrnK,EAAS7qB,KAAK05zB,mBAAmB7jZ,EAAM3kZ,GAElClxB,KAAKu4zB,YAAchvD,IAAar3kB,OACrCrnK,EAAS7qB,KAAK25zB,cAAc9jZ,EAAM3kZ,IAE/BrG,CACX,EAKAwtyB,EAAuB1nzB,UAAU+ozB,mBAAqB,SAAU7jZ,EAAM3kZ,GACrDlxB,KAAK2kwB,OAOlB,OANI3kwB,KAAK4M,OAAS68vB,IAAav3kB,KAClBlyL,KAAK45zB,yBAAyB/jZ,EAAM3kZ,GAGpClxB,KAAK65zB,2BAA2BhkZ,EAAM3kZ,EAGvD,EAKAmnyB,EAAuB1nzB,UAAUipzB,yBAA2B,SAAU/jZ,EAAM3kZ,GACxE,IAAIyzuB,EAAS3kwB,KAAK2kwB,OAEdm1D,EADajkZ,EAAK+1X,QACQ+H,gBAAgBzixB,EAAU2kZ,GAAM,GAC1D37Z,EAAIla,KAAKka,EACTC,EAAIna,KAAKma,EACb,OAAQna,KAAKy4zB,gBACT,KAAKjvD,IAAkByvD,QACnB/+yB,EAAI,EACJC,EAAI,EACJ,MACJ,KAAKqvvB,IAAkB4vD,UACnBl/yB,GAAK4/yB,EAAat7yB,MAAQxe,KAAKwe,OAAS,EACxCrE,EAAI,EACJ,MACJ,KAAKqvvB,IAAkB6vD,SACnBn/yB,EAAI4/yB,EAAat7yB,MAAQxe,KAAKwe,MAC9BrE,EAAI,EACJ,MACJ,KAAKqvvB,IAAkB0vD,WACnBh/yB,EAAI,EACJC,GAAK2/yB,EAAalxqB,OAAS5oJ,KAAK4oJ,QAAU,EAC1C,MACJ,KAAK4gnB,IAAkBiwD,aACnBv/yB,GAAK4/yB,EAAat7yB,MAAQxe,KAAKwe,OAAS,EACxCrE,GAAK2/yB,EAAalxqB,OAAS5oJ,KAAK4oJ,QAAU,EAC1C,MACJ,KAAK4gnB,IAAkB8vD,YACnBp/yB,EAAI4/yB,EAAat7yB,MAAQxe,KAAKwe,MAC9BrE,GAAK2/yB,EAAalxqB,OAAS5oJ,KAAK4oJ,QAAU,EAC1C,MACJ,KAAK4gnB,IAAkB2vD,WACnBj/yB,EAAI,EACJC,EAAI2/yB,EAAalxqB,OAAS5oJ,KAAK4oJ,OAC/B,MACJ,KAAK4gnB,IAAkBgwD,aACnBt/yB,GAAK4/yB,EAAat7yB,MAAQxe,KAAKwe,OAAS,EACxCrE,EAAI2/yB,EAAalxqB,OAAS5oJ,KAAK4oJ,OAC/B,MACJ,KAAK4gnB,IAAkB+vD,YACnBr/yB,EAAI4/yB,EAAat7yB,MAAQxe,KAAKwe,MAC9BrE,EAAI2/yB,EAAalxqB,OAAS5oJ,KAAK4oJ,OAKvC,OAFA+7mB,EAAOzqvB,EAAIA,EACXyqvB,EAAOxqvB,EAAIA,EACJwqvB,CACX,EAKA0zD,EAAuB1nzB,UAAUkpzB,2BAA6B,SAAUhkZ,EAAM3kZ,GAC1E,IAAIrG,EAAS7qB,KAAK2kwB,OACdinC,EAAU/1X,EAAK+1X,QACfkuB,EAAeluB,EAAQ+H,gBAAgBzixB,EAAU2kZ,GAAM,GACvD37Z,EAAIla,KAAKka,EACTC,EAAIna,KAAKma,EACb,OAAQna,KAAKy4zB,gBACT,KAAKjvD,IAAkByvD,QACfj5zB,KAAK4M,OAAS68vB,IAAajinB,MAC3BttI,GAAK4/yB,EAAa5/yB,EAClBC,EAAI,GAECna,KAAK4M,OAAS68vB,IAAamP,MAChC1+vB,GAAK4/yB,EAAa5/yB,EAClBC,GAAK2/yB,EAAa3/yB,GAEtB,MACJ,KAAKqvvB,IAAkB4vD,UACnBl/yB,GAAK4/yB,EAAat7yB,MAAQxe,KAAKwe,OAAS,EACxCrE,GAAK2/yB,EAAa3/yB,EAClB,MACJ,KAAKqvvB,IAAkB6vD,SACfr5zB,KAAK4M,OAAS68vB,IAAa/hnB,OAC3BxtI,EAAI4/yB,EAAat7yB,MAAQotxB,EAAQoO,oBAAoB9oxB,EAAU2kZ,GAAM,GAAS71a,KAAKwe,MACnFrE,EAAI,GAECna,KAAK4M,OAAS68vB,IAAamP,MAChC1+vB,EAAI4/yB,EAAat7yB,MAAQotxB,EAAQoO,oBAAoB9oxB,EAAU2kZ,GAAM,GAAS71a,KAAKwe,MACnFrE,GAAK2/yB,EAAa3/yB,GAEtB,MACJ,KAAKqvvB,IAAkB0vD,WACnBh/yB,GAAK4/yB,EAAa5/yB,EAClBC,GAAK2/yB,EAAalxqB,OAAS5oJ,KAAK4oJ,QAAU,EAC1C,MACJ,KAAK4gnB,IAAkBiwD,aACnBv/yB,GAAK4/yB,EAAat7yB,MAAQxe,KAAKwe,OAAS,EACxCrE,GAAK2/yB,EAAalxqB,OAAS5oJ,KAAK4oJ,QAAU,EAC1C,MACJ,KAAK4gnB,IAAkB8vD,YACnBp/yB,EAAI4/yB,EAAat7yB,MAAQotxB,EAAQoO,oBAAoB9oxB,EAAU2kZ,GAAM,GAAS71a,KAAKwe,MACnFrE,GAAK2/yB,EAAalxqB,OAAS5oJ,KAAK4oJ,QAAU,EAC1C,MACJ,KAAK4gnB,IAAkB2vD,WACfn5zB,KAAK4M,OAAS68vB,IAAajinB,MAC3BttI,GAAK4/yB,EAAa5/yB,EAClBC,EAAI2/yB,EAAalxqB,OAAS5oJ,KAAK4oJ,QAE1B5oJ,KAAK4M,OAAS68vB,IAAawhC,SAChC/wxB,GAAK4/yB,EAAa5/yB,EAClBC,EAAI2/yB,EAAalxqB,OAASgjpB,EAAQqO,sBAAsB/oxB,EAAU2kZ,GAAM,GAAS71a,KAAK4oJ,QAE1F,MACJ,KAAK4gnB,IAAkBgwD,aACnBt/yB,GAAK4/yB,EAAat7yB,MAAQxe,KAAKwe,OAAS,EACxCrE,EAAI2/yB,EAAalxqB,OAASgjpB,EAAQqO,sBAAsB/oxB,EAAU2kZ,GAAM,GAAS71a,KAAK4oJ,OACtF,MACJ,KAAK4gnB,IAAkB+vD,YACfv5zB,KAAK4M,OAAS68vB,IAAa/hnB,OAC3BxtI,EAAI4/yB,EAAat7yB,MAAQotxB,EAAQoO,oBAAoB9oxB,EAAU2kZ,GAAM,GAAS71a,KAAKwe,MACnFrE,EAAI2/yB,EAAalxqB,OAAS5oJ,KAAK4oJ,QAE1B5oJ,KAAK4M,OAAS68vB,IAAawhC,SAChC/wxB,EAAI4/yB,EAAat7yB,MAAQotxB,EAAQoO,oBAAoB9oxB,EAAU2kZ,GAAM,GAAS71a,KAAKwe,MACnFrE,EAAI2/yB,EAAalxqB,OAASgjpB,EAAQqO,sBAAsB/oxB,EAAU2kZ,GAAM,GAAS71a,KAAK4oJ,QAMlG,OAFA/9H,EAAO3Q,EAAIA,EACX2Q,EAAO1Q,EAAIA,EACJ0Q,CACX,EAKAwtyB,EAAuB1nzB,UAAUgpzB,cAAgB,SAAU9jZ,EAAM3kZ,GAChDlxB,KAAK2kwB,OAOlB,OANI3kwB,KAAK4M,OAAS68vB,IAAav3kB,KAClBlyL,KAAK+5zB,oBAAoBlkZ,EAAM3kZ,GAG/BlxB,KAAKg6zB,sBAAsBnkZ,EAAM3kZ,EAGlD,EAKAmnyB,EAAuB1nzB,UAAUopzB,oBAAsB,SAAUlkZ,EAAM3kZ,GACtDlxB,KAAK2kwB,OAAlB,IAEIm1D,EADUjkZ,EAAK+1X,QACQ+H,gBAAgBzixB,EAAU2kZ,GAAM,GACvD37Z,EAAIla,KAAKka,EACTC,EAAIna,KAAKma,EACTqE,EAAQxe,KAAKwe,MACboqI,EAAS5oJ,KAAK4oJ,OAClB,OAAQ5oJ,KAAKu4zB,WACT,KAAKhvD,IAAa/hnB,KACdttI,EAAI,EACJC,EAAI,EACJqE,EAAQxe,KAAKwe,MACboqI,EAASkxqB,EAAalxqB,OACtB,MACJ,KAAK2gnB,IAAaqP,IACd1+vB,EAAI,EACJC,EAAI,EACJqE,EAAQs7yB,EAAat7yB,MACrBoqI,EAAS5oJ,KAAK4oJ,OACd,MACJ,KAAK2gnB,IAAa7hnB,MACdxtI,EAAI4/yB,EAAat7yB,MAAQxe,KAAKwe,MAC9BrE,EAAI,EACJqE,EAAQxe,KAAKwe,MACboqI,EAASkxqB,EAAalxqB,OACtB,MACJ,KAAK2gnB,IAAa0hC,OACd/wxB,EAAI,EACJC,EAAI2/yB,EAAalxqB,OAAS5oJ,KAAK4oJ,OAC/BpqI,EAAQs7yB,EAAat7yB,MACrBoqI,EAAS5oJ,KAAK4oJ,OACd,MACJ,KAAK2gnB,IAAai9B,KACdtsxB,EAAI,EACJA,EAAI,EACJsE,EAAQs7yB,EAAat7yB,MACrBoqI,EAASkxqB,EAAalxqB,OAI9B,OADS,IAAI6jnB,IAAWvyvB,EAAGC,EAAGqE,EAAOoqI,EAEzC,EAKAyvqB,EAAuB1nzB,UAAUqpzB,sBAAwB,SAAUnkZ,EAAM3kZ,GACxDlxB,KAAK2kwB,OAAlB,IACIinC,EAAU/1X,EAAK+1X,QACfkuB,EAAeluB,EAAQ+H,gBAAgBzixB,EAAU2kZ,GAAM,GACvD8mW,EAAaivB,EAAQ16L,aAAawgK,gBAClCx3vB,EAAIla,KAAKka,EACTC,EAAIna,KAAKma,EACTqE,EAAQxe,KAAKwe,MACboqI,EAAS5oJ,KAAK4oJ,OAClB,OAAQ5oJ,KAAKu4zB,WACT,KAAKhvD,IAAa/hnB,KACdttI,GAAK4/yB,EAAa5/yB,EAClBC,EAAI,EACJqE,EAAQxe,KAAKwe,MACboqI,EAASkxqB,EAAalxqB,OACtB,MACJ,KAAK2gnB,IAAaqP,IACd1+vB,GAAK4/yB,EAAa5/yB,EAClBC,GAAK2/yB,EAAa3/yB,EAClBqE,EAAQm+vB,EAAWn+vB,MACnBoqI,EAAS5oJ,KAAK4oJ,OACVkxqB,EAAalxqB,OAAS,IACtBzuI,GAAK2/yB,EAAa3/yB,EAAIwiwB,EAAW/znB,QAErC,MACJ,KAAK2gnB,IAAa7hnB,MACdxtI,EAAI4/yB,EAAat7yB,MAAQotxB,EAAQoO,oBAAoB9oxB,EAAU2kZ,GAAM,GAAS71a,KAAKwe,MACnFrE,EAAI,EACJqE,EAAQxe,KAAKwe,MACboqI,EAASkxqB,EAAalxqB,OACtB,MACJ,KAAK2gnB,IAAa0hC,OACd/wxB,GAAK4/yB,EAAa5/yB,EAClBC,EAAI2/yB,EAAalxqB,OAASgjpB,EAAQqO,sBAAsB/oxB,EAAU2kZ,GAAM,GAAS71a,KAAK4oJ,OACtFpqI,EAAQm+vB,EAAWn+vB,MACnBoqI,EAAS5oJ,KAAK4oJ,OACVkxqB,EAAalxqB,OAAS,IACtBzuI,GAAKwiwB,EAAW/znB,QAEpB,MACJ,KAAK2gnB,IAAai9B,KACdtsxB,EAAI,EACJA,EAAI,EACJsE,EAAQs7yB,EAAat7yB,MACrBoqI,EAASkxqB,EAAalxqB,OAI9B,OADS,IAAI6jnB,IAAWvyvB,EAAGC,EAAGqE,EAAOoqI,EAEzC,EACOyvqB,CACX,CAnnB4C,GCFxC4B,IAAqC,WACrC,SAASA,IACT,CAmJA,OA7IAA,EAAoBxrvB,QAAU,SAAUyrvB,EAAWC,GAC/C,IAAItvyB,EAAS,GACb,OAAQsvyB,GACJ,KAAK7wD,IAAep3kB,KAChBrnK,EAAS,GACT,MACJ,KAAKy+uB,IAAe8wD,QAChBvvyB,EAASqvyB,EAAUpjzB,WACnB,MACJ,KAAKwyvB,IAAe+wD,WAChBxvyB,EAAS7qB,KAAKs6zB,eAAeJ,GAAWx5yB,cACxC,MACJ,KAAK4ovB,IAAeixD,WAChB1vyB,EAAS7qB,KAAKw6zB,cAAcN,GAAWx5yB,cACvC,MACJ,KAAK4ovB,IAAemxD,WAChB5vyB,EAAS7qB,KAAKs6zB,eAAeJ,GAC7B,MACJ,KAAK5wD,IAAeoxD,WAChB7vyB,EAAS7qB,KAAKw6zB,cAAcN,GAGpC,OAAOrvyB,CACX,EAKAovyB,EAAoBO,cAAgB,SAAUN,GAC1C,IAAIS,EAAS,GACTC,EAAU56zB,KAAK66zB,eAAeX,EAAW,IAAM,KACnDS,GAAUC,EAAQ31qB,YAClBi1qB,EAAYU,EAAQV,UACpB,IAAIY,EAAW96zB,KAAK66zB,eAAeX,EAAW,IAAK,MACnDS,GAAUG,EAAS71qB,YACnBi1qB,EAAYY,EAASZ,UACrB,IAAIa,EAAU/6zB,KAAK66zB,eAAeX,EAAW,IAAK,KAClDS,GAAUI,EAAQ91qB,YAClBi1qB,EAAYa,EAAQb,UACpB,IAAIc,EAAWh7zB,KAAK66zB,eAAeX,EAAW,IAAK,MACnDS,GAAUK,EAAS/1qB,YACnBi1qB,EAAYc,EAASd,UACrB,IAAIe,EAAUj7zB,KAAK66zB,eAAeX,EAAW,IAAK,KAClDS,GAAUM,EAAQh2qB,YAClBi1qB,EAAYe,EAAQf,UACpB,IAAIgB,EAAWl7zB,KAAK66zB,eAAeX,EAAW,GAAI,MAClDS,GAAUO,EAASj2qB,YACnBi1qB,EAAYgB,EAAShB,UACrB,IAAIiB,EAAUn7zB,KAAK66zB,eAAeX,EAAW,GAAI,KACjDS,GAAUQ,EAAQl2qB,YAClBi1qB,EAAYiB,EAAQjB,UACpB,IAAIkB,EAAWp7zB,KAAK66zB,eAAeX,EAAW,GAAI,MAClDS,GAAUS,EAASn2qB,YACnBi1qB,EAAYkB,EAASlB,UACrB,IAAImB,EAAUr7zB,KAAK66zB,eAAeX,EAAW,GAAI,KACjDS,GAAUU,EAAQp2qB,YAClBi1qB,EAAYmB,EAAQnB,UACpB,IAAIoB,EAAWt7zB,KAAK66zB,eAAeX,EAAW,EAAG,MACjDS,GAAUW,EAASr2qB,YACnBi1qB,EAAYoB,EAASpB,UACrB,IAAIqB,EAAUv7zB,KAAK66zB,eAAeX,EAAW,EAAG,KAChDS,GAAUY,EAAQt2qB,YAClBi1qB,EAAYqB,EAAQrB,UACpB,IAAIsB,EAAWx7zB,KAAK66zB,eAAeX,EAAW,EAAG,MACjDS,GAAUa,EAASv2qB,YACnBi1qB,EAAYsB,EAAStB,UACrB,IAAIuB,EAAUz7zB,KAAK66zB,eAAeX,EAAW,EAAG,KAGhD,OAFAS,GAAUc,EAAQx2qB,YAClBi1qB,EAAYuB,EAAQvB,UACbS,EAAO7jzB,UAClB,EAKAmjzB,EAAoBK,eAAiB,SAAUoB,GAG3C,IAFA,IAAI1uyB,EAAQhtB,KAAK27zB,gBAAgBD,GAC7B7wyB,EAAS,GACNmC,EAAM5pB,OAAS,GAAG,CACrB,IAAIoyF,EAAMxoE,EAAMsR,MAChBzT,EAAS7qB,KAAK47zB,WAAW/wyB,EAAQ2qE,EACrC,CACA,OAAO3qE,EAAO/T,UAClB,EAKAmjzB,EAAoBY,eAAiB,SAAUj5zB,EAAOi6zB,EAAWx9rB,GAE7D,IADA,IAAIy9rB,EAAe,GACZl6zB,GAASi6zB,GACZj6zB,GAASi6zB,EACTC,GAAgBz9rB,EAEpB,MAAO,CAAE4mB,YAAa62qB,EAAahlzB,WAAYojzB,UAAWt4zB,EAC9D,EAKAq4zB,EAAoB0B,gBAAkB,SAAUD,GAC5C,GAAIA,GAAU,EACV,MAAM3uyB,MAAM,+DAGhB,IADA,IAAIC,EAAQ,GACL0uyB,EAAS17zB,KAAK+7zB,aAAa,CAC9B,IAAI15uB,EAAYq5uB,EAAS17zB,KAAK+7zB,YACZ,IAAd15uB,GACAq5uB,EAASA,EAAS17zB,KAAK+7zB,YAAc,EACrC15uB,EAAYriF,KAAK+7zB,aAGjBL,GAAU17zB,KAAK+7zB,YAEnB/uyB,EAAM5gB,KAAKi2E,EACf,CAEA,OADAr1D,EAAM5gB,KAAKsvzB,GACJ1uyB,CACX,EAKAityB,EAAoB2B,WAAa,SAAUt0rB,EAAS1lI,GAGhD,OADA0lI,GADavpH,OAAO4yC,aAAaspwB,EAAoB+B,gBAAkBp6zB,EAG3E,EAOAq4zB,EAAoB8B,YAAc,GAMlC9B,EAAoB+B,gBAAmB,GAChC/B,CACX,CAtJyC,GCLrCgC,IAAsC,WACtC,SAASA,EAAqB14xB,EAAU3hC,GAOpC5B,KAAK44zB,YAAc,KAKnB54zB,KAAK+U,QAAU,GACS,qBAAbwuB,IAIPvjC,KAAKujC,SAAWA,EAChBvjC,KAAK4B,MAAQA,EAErB,CA8BA,OA7BAnC,OAAO4c,eAAe4/yB,EAAqBtrzB,UAAW,WAAY,CAM9D+F,IAAK,WACD,OAAO1W,KAAK44zB,WAChB,EACAl/yB,IAAK,SAAU9X,GACX5B,KAAK44zB,YAAch3zB,CACvB,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAe4/yB,EAAqBtrzB,UAAW,QAAS,CAK3D+F,IAAK,WACD,OAAO1W,KAAK+U,OAChB,EACA2E,IAAK,SAAU9X,GACX5B,KAAK+U,QAAUnT,CACnB,EACAuW,YAAY,EACZE,cAAc,IAEX4jzB,CACX,CApD0C,GCJtC/1wB,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAwBzC81wB,IAAuC,SAAUp1wB,GAEjD,SAASo1wB,IACL,IAAI58zB,EAAQwnD,EAAOnnD,KAAKK,OAASA,KAOjC,OADAV,EAAMmyB,KAAO,IAAI2tvB,IACV9/wB,CACX,CAcA,OAxBA4mD,IAAUg2wB,EAAuBp1wB,GAajCo1wB,EAAsBvrzB,UAAUy6xB,YAAc,SAAUtrB,EAAUnovB,EAAUgpvB,EAAUC,GAClF95tB,EAAOn2C,UAAU+vwB,kBAAkB/gxB,KAAKK,KAAM8/wB,EAAUnovB,EAAUgpvB,EAAUC,GAC5E,IAAIh/wB,EAAQ5B,KAAK6a,SAASilwB,GACtBv8uB,EAAW,IAAI47vB,IAAYn/xB,KAAKoiR,WACpCpiR,KAAKyxB,KAAKivH,SAASo/nB,EAAU,IAAIm8C,IAAqB14xB,EAAU3hC,IACxD2hC,EAASu8uB,SAAjB,IACIzpwB,EAAOrW,KAAKoiR,UAChB7+O,EAASu8uB,SAAS8oB,WAAWhnyB,EAAO5B,KAAK6gxB,UAAW7gxB,KAAKg4wB,IAAKh4wB,KAAKihxB,WAAY,EAAG,EAAG5qwB,EAAKmI,MAAOnI,EAAKuyI,OAAQ5oJ,KAAK8gxB,cACnH,IAAIq7C,EAAe,IAAI5vD,IAAO50uB,EAASzd,EAAIla,KAAK23B,SAASzd,EAAGyd,EAASxd,EAAIna,KAAK23B,SAASxd,GACvF2lwB,EAASyoB,gBAAgBhlwB,EAAU44xB,EAAc,IAAI3vD,IAAMjpuB,EAAS/kB,MAAQmiwB,EAAUp9uB,EAASqlH,OAASg4nB,GAC5G,EACOs7C,CACX,CA1B2C,CA0BzC/7C,KClDEj6tB,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAqBzCg2wB,IAAoC,SAAUt1wB,GAE9C,SAASs1wB,EAAmB73V,EAAM19R,GAC9B,IAAIvnM,EAAQwnD,EAAOnnD,KAAKK,OAASA,KAkBjC,OAZAV,EAAM+8zB,oBAAsB/yD,IAAe8wD,QACvB,qBAATvznB,EACPvnM,EAAMile,KAAOA,EAER19R,aAAgByvkB,KACrBh3wB,EAAMile,KAAOA,EACbjle,EAAMo3wB,MAAQ7vkB,IAGdvnM,EAAMile,KAAOA,EACbjle,EAAMqlwB,OAAS99jB,GAEZvnM,CACX,CAmCA,OAxDA4mD,IAAUk2wB,EAAoBt1wB,GAsB9BrnD,OAAO4c,eAAe+/yB,EAAmBzrzB,UAAW,cAAe,CAM/D+F,IAAK,WACD,OAAO1W,KAAKq8zB,mBAChB,EACA3izB,IAAK,SAAU9X,GACX5B,KAAKq8zB,oBAAsBz6zB,CAC/B,EACAuW,YAAY,EACZE,cAAc,IAMlB+jzB,EAAmBzrzB,UAAUkK,SAAW,SAAUilwB,GAC9C,IACIjqW,EAAO71a,KAAKmhxB,oBAAoBrB,GAEpC,OADS9/wB,KAAKs8zB,iBAAiBzmZ,EAEnC,EAKAumZ,EAAmBzrzB,UAAU2rzB,iBAAmB,SAAUzmZ,GACtD,IACIC,EADWD,EAAK3kZ,SACKosuB,MAAM3yvB,QAAQkra,GAAQ,EAC/C,OAAOokZ,IAAoBxrvB,QAAQqnW,EAAW91a,KAAKm6zB,YACvD,EACOiC,CACX,CA1DwC,CA0DtCF,KC/EEh2wB,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAoBzCm2wB,IAAmC,SAAUz1wB,GAU7C,SAASy1wB,EAAkBh4V,EAAMmyS,EAAOz2uB,GAEpC,IADA,IAAIxO,EAAO,GACFniB,EAAK,EAAGA,EAAKnM,UAAUC,OAAQkM,IACpCmiB,EAAKniB,EAAK,GAAKnM,UAAUmM,GAE7B,IAAIhQ,EAAQwnD,EAAOnnD,KAAKK,OAASA,KAgBjC,OAVAV,EAAMooyB,wBAA0B,KAKhCpoyB,EAAMk9zB,aAAe,GACrBl9zB,EAAMile,KAAOA,EACbjle,EAAMo3wB,MAAQA,EACdp3wB,EAAM2gC,KAAOA,EACb3gC,EAAMqgxB,gBAAkBluvB,EACjBnyB,CACX,CA8CA,OA7EA4mD,IAAUq2wB,EAAmBz1wB,GAgC7BrnD,OAAO4c,eAAekgzB,EAAkB5rzB,UAAW,OAAQ,CAMvD+F,IAAK,WACD,OAAO1W,KAAKw8zB,YAChB,EACA9izB,IAAK,SAAU9X,GACX5B,KAAKw8zB,aAAe56zB,CACxB,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAekgzB,EAAkB5rzB,UAAW,kBAAmB,CAKlE+F,IAAK,WACD,OAAO1W,KAAK0nyB,uBAChB,EACAhuxB,IAAK,SAAU9X,GACX5B,KAAK0nyB,wBAA0B9lyB,CACnC,EACAuW,YAAY,EACZE,cAAc,IAOlBkkzB,EAAkB5rzB,UAAUkK,SAAW,SAAUilwB,GAC7C,IACI7/uB,EAAOjgC,KAAKigC,KAAKnpB,WACrB,GAAoC,qBAAzB9W,KAAK2/wB,iBAA2D,MAAxB3/wB,KAAK2/wB,iBAA2B3/wB,KAAK2/wB,gBAAgBv8wB,OAAS,EAC7G,IAAK,IAAI+I,EAAI,EAAGA,EAAInM,KAAK2/wB,gBAAgBv8wB,OAAQ+I,IAAK,CAClD,IAAIswzB,EAAiBz8zB,KAAK2/wB,gBAAgBxzwB,GAC1C8zB,EAAOA,EAAK5vB,QAAQ,IAAMlE,EAAI,IAAKswzB,EAAe5hzB,SAASilwB,GAC/D,CAEJ,OAAO7/uB,CACX,EACOs8xB,CACX,CA/EuC,CA+ErCL,KCnGEh2wB,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAwBzCs2wB,IAAqC,SAAU51wB,GAG/C,SAAS41wB,IACL,IAAIp9zB,EAAQwnD,EAAOnnD,KAAKK,OAASA,KAMjC,OAHAV,EAAMmyB,KAAO,IAAI2tvB,IAEjB9/wB,EAAMq9zB,gBAAkB,GACjBr9zB,CACX,CAwBA,OAlCA4mD,IAAUw2wB,EAAqB51wB,GAW/B41wB,EAAoB/rzB,UAAUy6xB,YAAc,SAAUtrB,EAAUnovB,EAAUgpvB,EAAUC,GAChF95tB,EAAOn2C,UAAU+vwB,kBAAkB/gxB,KAAKK,KAAM8/wB,EAAUnovB,EAAUgpvB,EAAUC,GAC5E,IACI1vvB,EADOlxB,KAAKmhxB,oBAAoBrB,GAChB5uvB,SAChBsovB,EAAYx5wB,KAAK6a,SAASilwB,GAE9B,GAAI9/wB,KAAKyxB,KAAKy6L,YAAYh7L,GAAW,CACjC,IAAIkqD,EAAOp7E,KAAKyxB,KAAK5W,SAASqW,GAC1BiryB,EAAe,IAAI5vD,IAAO50uB,EAASzd,EAAIla,KAAK23B,SAASzd,EAAGyd,EAASxd,EAAIna,KAAK23B,SAASxd,GACvF2lwB,EAASyoB,gBAAgBnttB,EAAK73C,SAAU44xB,EAAc,IAAI3vD,IAAMpxrB,EAAK73C,SAAS/kB,MAAQmiwB,EAAUvlsB,EAAK73C,SAASqlH,OAASg4nB,IACvH5gxB,KAAK28zB,gBAAgBvwzB,KAAK0zwB,EAC9B,KACK,CACD,IAAIzpwB,EAAOrW,KAAKoiR,UACZ7+O,EAAW,IAAI47vB,IAAY9oxB,GAC/BrW,KAAKyxB,KAAKivH,SAASxvH,EAAU,IAAI+qyB,IAAqB14xB,EAAUi2uB,IAChEj2uB,EAASu8uB,SAAS8oB,WAAWpvB,EAAWx5wB,KAAK6gxB,UAAW7gxB,KAAKg4wB,IAAKh4wB,KAAKihxB,WAAY,EAAG,EAAG5qwB,EAAKmI,MAAOnI,EAAKuyI,OAAQ5oJ,KAAK8gxB,cACnHq7C,EAAe,IAAI5vD,IAAO50uB,EAASzd,EAAIla,KAAK23B,SAASzd,EAAGyd,EAASxd,EAAIna,KAAK23B,SAASxd,GACvF2lwB,EAASyoB,gBAAgBhlwB,EAAU44xB,EAAc,IAAI3vD,IAAMjpuB,EAAS/kB,MAAQmiwB,EAAUp9uB,EAASqlH,OAASg4nB,IACxG5gxB,KAAK28zB,gBAAgBvwzB,KAAK0zwB,EAC9B,CAEJ,EACO48C,CACX,CApCyC,CAoCvCv8C,KC5DEj6tB,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAuBzCw2wB,IAAmC,SAAU91wB,GAE7C,SAAS81wB,EAAkBr4V,EAAM19R,GAC7B,IAAIvnM,EAAQwnD,EAAOnnD,KAAKK,OAASA,KAkBjC,OAZAV,EAAM+8zB,oBAAsB/yD,IAAe8wD,QACvB,qBAATvznB,EACPvnM,EAAMile,KAAOA,EAER19R,aAAgByvkB,KACrBh3wB,EAAMile,KAAOA,EACbjle,EAAMo3wB,MAAQ7vkB,IAGdvnM,EAAMile,KAAOA,EACbjle,EAAMqlwB,OAAS99jB,GAEZvnM,CACX,CA6BA,OAlDA4mD,IAAU02wB,EAAmB91wB,GAsB7BrnD,OAAO4c,eAAeugzB,EAAkBjszB,UAAW,cAAe,CAM9D+F,IAAK,WACD,OAAO1W,KAAKq8zB,mBAChB,EACA3izB,IAAK,SAAU9X,GACX5B,KAAKq8zB,oBAAsBz6zB,CAC/B,EACAuW,YAAY,EACZE,cAAc,IAOlBukzB,EAAkBjszB,UAAUkK,SAAW,SAAUilwB,GAC7C,IAGIl1vB,EAFO5qB,KAAKmhxB,oBAAoBrB,GAChB8rB,QAAQzjwB,OAAOjX,SACdosuB,MAAM1yuB,MAE3B,OADSqvyB,IAAoBxrvB,QAAQ7jD,EAAO5qB,KAAKm6zB,YAErD,EACOyC,CACX,CApDuC,CAoDrCF,KC3EEx2wB,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAuBzCy2wB,IAAiC,SAAU/1wB,GAE3C,SAAS+1wB,EAAgB/4mB,EAAcztM,EAAMlQ,GACzC,IAAI7G,EAAQwnD,EAAOnnD,KAAKK,KAAMqW,IAASrW,KAiBvC,OAZAV,EAAMq0xB,aAAc,EAKpBr0xB,EAAMmzxB,WAAY,OACJpvxB,IAAV8C,EACA7G,EAAMw9zB,mBAAmBh5mB,EAAc39M,GAGvC7G,EAAMw9zB,mBAAmBh5mB,EAAcyrjB,IAAa8N,SAEjD/9wB,CACX,CA0HA,OA9IA4mD,IAAU22wB,EAAiB/1wB,GAqB3B+1wB,EAAgBlszB,UAAUktwB,aAAe,SAAUt5S,GAG/C,OAFa,CAGjB,EACAs4V,EAAgBlszB,UAAU4qwB,aAAe,SAAUxlpB,EAAM1wG,GACrD,IAAI7G,EAAQ,EACG,OAAX6G,GAAqC,qBAAXA,GAA0BA,EAAOs4wB,gBAAkBruB,IAAiBp9kB,KAE9F1zK,EADkBxe,KAAK+8zB,oBAAoBhnsB,EAAcv3G,EAAO6G,GAC5C7G,MAGpBA,EAAQxe,KAAK09xB,aAAaniB,aAAaxlpB,GAE3C,IAAI1/G,EAAOrW,KAAKu1rB,QAAQnza,QAAQ/8P,GAGhC,OAFA7G,GAAU4+vB,IAAQgB,mBAAqB/nwB,EACvCmI,EAAQxe,KAAKi+wB,oBAAoBlopB,EAAM1wG,EAAQ7G,EAEnD,EAIAq+yB,EAAgBlszB,UAAU6hxB,aAAe,SAAUp6vB,EAAU/S,GACzD,IAAI23yB,EAAYh9zB,KAAK09xB,aAAalL,aAAap6vB,GAG/C,OADA4kyB,GAAc,KADHh9zB,KAAKu1rB,QAAQnza,QAAQ/8P,EAGpC,EAEAw3yB,EAAgBlszB,UAAUmszB,mBAAqB,SAAUh5mB,EAAc39M,GACnEnG,KAAK09xB,aAAe,IAAIlK,IAAoB1vkB,EAAc9jN,KAAKqW,MAC/DrW,KAAKi9zB,eAAe92zB,GACpBnG,KAAKsgzB,qBACT,EACAuc,EAAgBlszB,UAAUsszB,eAAiB,SAAU92zB,GACjD,IAAI+2zB,EAASl9zB,KAAK09xB,aAAarJ,WAAWnS,SACD,KAApC/7wB,EAAQopwB,IAAa73Y,aACtBwlc,GAAU3tD,IAAa73Y,WAEc,KAApCvxX,EAAQopwB,IAAa+N,aACtB4/C,GAAU3tD,IAAa+N,WAE3Bt9wB,KAAKw2Z,SAAS0ma,EAClB,EACAL,EAAgBlszB,UAAU2vyB,oBAAsB,WAC5C,IAAI6c,EAAY,KACZjlE,IAAY9zI,cAEZ+4M,EAAYjlE,IAAYl1rB,MAAM9qB,OAAOl4C,OAEzC,IAAIg+wB,EAAY,KAEhB,GAAkB,OAAdm/C,QAAoC95zB,IAAd85zB,EAAyB,CAE/Cn/C,EAAYm/C,EAAUr/C,eACtB,IAAIvoF,EAAU4nI,EAAU5nI,SACxBA,EAAUA,EAAQh0rB,SACV8U,KAAOrW,KAAKqW,KACpBrW,KAAKu1rB,QAAUA,EACfv1rB,KAAK09xB,aAAey/B,EAAUz/B,YAClC,MAEqB,MAAby/B,IACIn9zB,KAAK09xB,wBAAwBlK,MAC7BxzxB,KAAK09xB,aAAa0/B,QAAUp9zB,KAAK2zxB,aAErC3zxB,KAAK09xB,aAAa3L,kBAClB/T,EAAYh+wB,KAAK09xB,aAAa5f,eAC9B99wB,KAAKu1rB,QAAUv1rB,KAAK09xB,aAAanoG,SAGzCv1rB,KAAKu1rB,QAAQ8nI,eAAgB,EAC7Br9zB,KAAK+9wB,aAAaC,EAEtB,EAIA6+C,EAAgBlszB,UAAU6lxB,WAAa,SAAUv2vB,GAC7C,IAAIqgvB,EAAetgxB,KAAK09xB,aACJ,MAAhBpd,GACAA,EAAakW,WAAWv2vB,EAEhC,EACAxgC,OAAO4c,eAAewgzB,EAAgBlszB,UAAW,UAAW,CAKxD+F,IAAK,WACD,OAAO1W,KAAKyyxB,SAChB,EACAt6wB,YAAY,EACZE,cAAc,IAKlBwkzB,EAAgBlszB,UAAUoszB,oBAAsB,SAAUhnsB,EAAcv3G,EAAO6G,GAI3E7G,EAAQ,EACR,IAAI8+yB,EAAe,KAGfzyyB,GAFY,IAAIoywB,KAEGO,cAAcznqB,EAAM/1H,KAAOqlB,EAAOs4wB,gBAAkBruB,IAAiBw9B,YAAqCwwB,GAAc,GAC3IC,EAAc1yyB,EAAO4kM,QAEzB,GADA6tmB,EAAezyyB,EAAO4ywB,OAClB8/B,GAAgC,OAAjBD,EAEf,IADA,IAAInpC,EAAYn0xB,KAAK09xB,aAAavJ,UACzBhoxB,EAAI,EAAGwjD,EAAM2twB,EAAal6zB,OAAQ+I,EAAIwjD,EAAKxjD,IAAK,CACrD,IAAIwjxB,EAAa2tC,EAAanxzB,GAC1Bw2wB,EAAQwR,EAAUtF,SAASc,GACjB,OAAVhN,GAAmC,qBAAVA,IACzBnkwB,GAASmkwB,EAAMnkwB,MAEvB,CAEJ,MAAO,CAAEixM,QAAS8tmB,EAAa/+yB,MAAOA,EAC1C,EACOq+yB,CACX,CAhJqC,CAgJnCz/C,KClJEogD,IAA2B,WAO3B,SAASA,EAAUr1xB,GACfnoC,KAAKwsvB,mBAAoB,EACzBxsvB,KAAK6mnB,iBAAkB,EACvB7mnB,KAAKy9zB,kBAAmB,EACxBz9zB,KAAK09zB,YAAa,EAClB19zB,KAAK29zB,cAAgB,GACrB39zB,KAAK49zB,aAAe,CAAEC,UAAW,EAAGC,UAAW,GAC/C99zB,KAAKmoC,OAASA,EACdnoC,KAAKugW,OAAS,IAAIgsZ,IAAapktB,GAC/BnoC,KAAK0tvB,SAAW,CAAC,CACrB,CA85CA,OAx5CA8vE,EAAU7szB,UAAUo8U,cAAgB,WAChC,MAAO,WACX,EACAywe,EAAU7szB,UAAUwmB,KAAO,SAAUgR,GACjCnoC,KAAKsvvB,qBAAuB,IAAIhB,IAAqBnmtB,EAAOpoC,QAC5DC,KAAKu1vB,iBAAclyvB,EACnBrD,KAAKwsvB,mBAAoB,EACzBxsvB,KAAK6mnB,iBAAkB,EACvB7mnB,KAAKmoC,OAASA,EACdnoC,KAAK09zB,YAAa,EAClB19zB,KAAKqvvB,aAAc,EACnBlntB,EAAOhS,GAAKs4kB,IAAO,aACnBzumB,KAAK0tvB,SAASvltB,EAAOhS,KAAM,EAC3Bn2B,KAAK+9zB,gBAAkB,IAAIhtD,GAC/B,EACAysD,EAAU7szB,UAAUqtzB,eAAiB,SAAU71xB,EAAQqqoB,EAAQl7mB,EAASm7c,EAAY8/J,EAAqBN,EAAkBpqlB,GACvH,IAAIvoF,EAAQU,KACZA,KAAKm3B,KAAKgR,GACL4jS,GAAkBymW,GAInBxyqB,KAAKu1vB,YAAc,IAAI2C,IAHvBl4vB,KAAKu1vB,YAAc/iF,EAKvBxyqB,KAAKi+zB,cAAc91xB,EAAQsqe,EAAY8/J,EAAqBN,GAAkBh3iB,MAAK,WAC/E37H,EAAM+vvB,aAAc,EACpBlntB,EAAOm4P,QAAQllK,IAA0B97H,EAAM6yqB,OAAS,CAAEn1iB,QAAS19H,EAAMswvB,aAAgB,CAAC,GAC1FtwvB,EAAM6oC,OAAO8gF,IAAI,qBAAsB3pH,EAAMytV,iBAC7Cz1R,EAAQh4D,EAAMi2vB,YAClB,IAAGn5nB,OAAM,SAAU/7H,GACfwnF,EAAOvoF,EAAMi2vB,aACbj2vB,EAAM6oC,OAAOm4P,QAAQllK,IAAsB/6H,EAC/C,GACJ,EAWAm9zB,EAAU7szB,UAAU+E,IAAM,SAAUyyB,EAAQoqoB,EAAqBN,EAAkBO,EAAQL,GACvF,IAAI7yqB,EAAQU,KACZA,KAAKkqC,KAAO,IAAIqlkB,IAAKvvmB,KAAKmoC,QAC1BnoC,KAAKmyqB,OAASA,EACdnyqB,KAAK0tvB,SAAW,CAAC,EACjB,IAAI1+jB,EAAQujf,GAAuBA,EAAoBvjf,MAAQujf,EAAoBvjf,MAAQ,IAAIwkP,GAC3FrrY,EAAOg0kB,YAAgBpwS,GAAkBwmW,IAAoE,SAA5CA,EAAoBi9E,uBACrFrntB,EAAO01kB,aAAe26D,IAAkBrwoB,GAAQ01kB,cAEpD,IAAI5kmB,EAAO,CACP0+Z,YAAa,kBAAmB72V,QAAQ,EACxCo9uB,kBAAmB,GAAIC,iBAAkB,CAAEN,UAAW,EAAGC,UAAW,GAAK97N,eAAe,GAG5F/olB,EAAoB,WAAIkvB,EAMxB,GADAA,EAAOm4P,Q9OuLc,kB8OvLkBrnR,IAChB,IAAnBA,EAAa,OAEb,OAAO,IAAI03B,SAAQ,SAAU2mB,EAASuwB,GAClC,OAAOvwB,GACX,IAWJ,GATI8hnB,IAAgB7G,IAChB+G,IAAiC/G,EAAqBpqoB,GAEtDlvB,EAAuB,gBACvB+1K,EAAQu9jB,IAAaxqU,SAAS55Y,EAAQnoC,KAAKkqC,OAE/ClqC,KAAK29zB,cAAgB1kzB,EAAgB,kBACrCjZ,KAAK49zB,aAAe3kzB,EAAiB,iBACrCjZ,KAAKmoC,OAAO8gF,IAAI,kBAAmBjpH,KAAK+sV,iBACnChhB,GAAkBwmW,IAAyBxmW,GAAkBwmW,EAAoBz/P,YASjF,IAAK/mG,GAAkBwmW,IAA2D,gBAAnCA,EAAoBu7E,WAKnE,CACD,IAAI+B,EAAe,GAGnB,OAFAA,EAAazjvB,KAAKpM,KAAKkqC,KAAKquC,QAAQ,CAAC,EAAGg0qB,IAAaxqU,SAAS55Y,EAAQnoC,KAAKkqC,QAC3E2ltB,EAAazjvB,KAAKpM,KAAKugW,OAAOqsZ,cAAczktB,IACrC,IAAIwI,SAAQ,SAAU2mB,EAASuwB,GAClCl3C,QAAQ5gB,IAAI8/tB,GAAc50nB,MAAK,SAAU56H,GACrCf,EAAM63B,KAAKgR,GACN4jS,GAAkBymW,GAInBlzqB,EAAMi2vB,YAAc,IAAI2C,IAHxB54vB,EAAMi2vB,YAAc/iF,EAKxBlzqB,EAAM2+zB,cAAc91xB,EAAQ9nC,EAAE,GAAIkyqB,EAAqBN,GAAkBh3iB,MAAK,WAC1E37H,EAAM+vvB,aAAc,EACpBlntB,EAAOm4P,QAAQllK,IAA0B97H,EAAM6yqB,OAAS,CAAEn1iB,QAAS19H,EAAMswvB,aAAgB,CAAC,GAC1FtwvB,EAAM6oC,OAAO8gF,IAAI,qBAAsB3pH,EAAMytV,iBAC7Cz1R,EAAQh4D,EAAMi2vB,YAClB,IAAGn5nB,OAAM,SAAU/7H,GACfwnF,EAAOvoF,EAAMi2vB,aACbj2vB,EAAM6oC,OAAOm4P,QAAQllK,IAAsB/6H,EAC/C,GACJ,GACJ,GACJ,CA5BI,OAAO,IAAIswC,SAAQ,SAAU2mB,EAASuwB,GAClCvoF,EAAM0+zB,eAAe71xB,EAAQqqoB,EAAQl7mB,EAASh4D,EAAM6oC,OAAO2ylB,wBAAyBy3C,EAAqBN,EAAkBpqlB,EAC/H,GA0BJ,CAnCI,OAFA0qlB,EAAoBz/P,WAAay/P,EAAoBz/P,sBAAsBuQ,GACvEkvP,EAAoBz/P,WAAa,IAAIuQ,GAAYkvP,EAAoBz/P,YAClE,IAAIniY,SAAQ,SAAU2mB,EAASuwB,GAClC0qlB,EAAoBz/P,WAAWyB,aAAavlP,GAAO/zD,MAAK,SAAUw3Y,GAC9DnzgB,EAAM0+zB,eAAe71xB,EAAQqqoB,EAAQl7mB,EAASm7c,EAAY8/J,EAAqBN,EAAkBpqlB,EACrG,GACJ,GAgCR,EACA21uB,EAAU7szB,UAAUstzB,cAAgB,SAAU/tN,EAAMz9F,EAAY8/J,EAAqBN,GACjF,IAEIgkJ,EAFA32zB,EAAQU,KACR4ryB,EAAU5ryB,KAAKu1vB,YAAYlvnB,SAASjzG,MAExCpzB,KAAKo+zB,+BAA+BxyB,EAASr5H,GAC7C,IAAI4gI,EAAUvH,EAAQtuC,MAAMlquB,MAE5B,OAAO,IAAIud,SAAQ,SAAU2mB,EAASuwB,GAClCouuB,EAAU32zB,EAAM+wvB,kBAAkBngJ,EAAMz9F,EAAY8/J,GACpDjzqB,EAAMquvB,cAAgBr2rB,EACtBh4D,EAAMouvB,SAASx9I,EAAK/5kB,KAAM,EAC1B72B,EAAMihW,OAAOktZ,eAAenuvB,EAAMouvB,SAAUpuvB,EAAMquvB,cACtD,IAAG1ynB,MAAK,WAsBJ,OAlBAg7rB,EAAQ3xV,KAAK6uU,EAAS7zyB,EAAMs+zB,aAA2B,UAAGt+zB,EAAMs+zB,aAA2B,WAC3Ft+zB,EAAMsszB,WAAWr5I,GACZN,IAEI3yqB,EAAM6yqB,OASP7yqB,EAAMswvB,YAActwvB,EAAMi2vB,YAAYl3R,QARjCtyJ,GAAkBwmW,IAAwBA,EAAoBp0M,SAC/D7+d,EAAMi2vB,YAAYl3R,KAAKk0M,EAAoBp0M,UAG3C7+d,EAAMi2vB,YAAYl3R,KAAK,cAM/B/+d,EAAMi2vB,YAAYn+mB,iBACX84d,EAAK2N,cAETv+mB,EAAMi2vB,WACjB,GACJ,EACAioE,EAAU7szB,UAAUytzB,+BAAiC,SAAUxyB,EAASr5H,GAQpE,OAPKxmW,GAAkBwmW,IAA0BxmW,GAAkBwmW,EAAoB6+F,kBAC/Erlc,GAAkBwmW,EAAoBx8P,YAC1C/1a,KAAK+9zB,gBAAgBroR,YAAuD,cAAxC68H,EAAoB6+F,gBACpDhI,IAAmBqI,UAAYrI,IAAmBiI,SACtDrxwB,KAAK+9zB,gBAAgB1nzB,KAAOrW,KAAKq+zB,YAAY9rJ,EAAoBx8P,UACjE61X,EAAQkN,gBAAgB94yB,KAAK+9zB,kBAE1BnyB,CACX,EACA4xB,EAAU7szB,UAAU0/uB,kBAAoB,SAAUngJ,EAAMz9F,EAAY8/J,GAChE,IAAIq4I,GAA0B,EAC1BltxB,EAAW19B,KAAKmoC,OAAOiukB,iBAAmBp2mB,KAAKmoC,OAAOm/kB,mBACrDv7S,GAAkBwmW,KACnBvyqB,KAAKs+zB,UAAY/rJ,EAAoBrlQ,MACrC09Y,IAA0B7+e,GAAkBwmW,EAAoBq4I,0BACrDr4I,EAAoBq4I,yBAEnC,IAAIrqd,EAAS,IAAIgsZ,IAAar8I,EAAMlwmB,KAAKugW,OAAOwhQ,qBAC5CjvL,EAAa9ya,KAAKu+zB,wBAAwBhsJ,EAAqB9/J,EAAW5nf,QAC1EsiH,EAAUisiB,IAAgB7G,GAC1Bh1C,IAAeg1C,EAAoBpliB,QAAS+ie,EAAK4E,4BACjDv0Q,EAAO6tZ,qBAAqB1wtB,EAAWwykB,EAAKK,aAAeL,EAAK/ie,SACpEA,EAAUA,EAAQ/mI,QAAO,SAAU+mI,GAAW,OAAO4+L,GAAkB5+L,EAAQixe,SAAW,IAC1F,IAAIs/M,GAAa,EACbxtN,EAAKwB,cAAcvke,QAAQ/pI,SAC3Bs6zB,GAAa,GAEbxtN,EAAKiM,YAAcpwS,GAAkBwmW,KACrCriE,EAAK0N,mBAAqB20D,EAAoBi9E,qBAAuB,YAGzE,IAAIymE,EAAU,IAAIxI,IAEd+Q,EAAmBx+zB,KAAK60vB,sBACxBrtf,EAASg3jB,EAAiBh3jB,OAC1Bi3jB,EAAaD,EAAiBj6V,KAC9Bm6V,EAAcF,EAAiB9nD,MAC/BzxnB,EAAcs7M,EAAOwsZ,WAAW5/mB,EAASntI,KAAKwsvB,mBAE9CvxH,EAAch2e,EAAY9X,QAE9B8orB,EAAUj2zB,KAAK2+zB,mBAAmBzuN,EAAKwB,cAAcvke,QAAQ/pI,OAAQ6yzB,EAAShxqB,EAAYmpb,KAAM6sD,EAAazzX,EAAQi3jB,EAAYC,EAAaxuN,EAAM06M,EAAyBz9qB,GAE7KntI,KAAK4+zB,oBAAoB3jM,EAAag7L,EAAS11d,EAAQ2vQ,EAAM06M,GAC7D,IAAIiU,EAAoB7+zB,KAAK8+zB,8BAC7B,IAAK/yf,GAAkB+mG,IAAeA,EAAW1va,QAW7C,GAVIs6zB,GACK3xf,GAAkB8yf,EAAkBr3jB,UACrCA,EAASq3jB,EAAkBr3jB,QAE/BxnQ,KAAK++zB,sBAAsB9I,EAASnjZ,EAAYmoN,EAAa/qB,EAAM1oW,EAAQ,EAAGq3jB,EAAkBt6V,KAAMs6V,EAClGnoD,MAAOmoD,EAAkBhb,gBAAiBpxS,EAAY8/J,EAAqBhyU,EAAQ,IAGvFvgW,KAAKg/zB,cAAcx3jB,EAAQyzX,EAAa/qB,EAAMp9L,EAAYmjZ,EAAS,EAAG1jJ,EAAqBhyU,EAAQ,IAElGx0B,GAAkB0mM,EAAW76F,YAAa,CAC3C,IAAIm7U,EAAe,IAAIt0I,IAAsBvO,GACzCijJ,OAAQ,EACRn9nB,EAAS+8nB,EAAaxiJ,aAC1Bv6e,EAASA,EAAO5vH,QAAO,SAAU4yH,GAAO,OAAO+yM,GAAkB/yM,EAAIolf,WAA0B,aAAbplf,EAAIpsH,IAAqB,IACvGsjmB,EAAKt4L,WAAWx0a,QAAUpD,KAAKmoC,SAAW+nkB,GAC1CA,EAAK8iJ,gBAAgBC,qBAGrBE,EADAnzvB,KAAKy9zB,iBACG1qE,EAAa71I,aAAapqM,EAAY2/F,EAAW76F,YAEpD53a,KAAK6mnB,gBACFksI,EAAa71I,aAAal9mB,KAAKmoC,OAAO2ylB,wBAAyBroH,EAAW76F,YAE7E8lZ,EACG3qE,EAAa71I,aAAapqM,EAAW8F,QAAS65F,EAAW76F,YAGzDm7U,EAAa71I,aAAazqG,EAAW5nf,OAAQ4nf,EAAW76F,WAAY,KAAM,KAAM5hT,GAE5Fh2H,KAAK0xvB,kBAAkByB,EAAO8iE,EAASzujB,EAAQq3jB,EAAkBt6V,KAAMs6V,EAAkBnoD,MAAOmoD,EAAkBhb,iBAAiB,EAAO,KAAM,KAAM,MAAM6Z,EAChK,OAGUzH,EAAQ7nP,KAAKwoP,SACnBzwzB,MAAMm+yB,UAAU98iB,GAExB,OAAOyujB,CACX,EACAuH,EAAU7szB,UAAUmuzB,4BAA8B,WAC9C,GAAK/yf,GAAkB/rU,KAAKs+zB,YAAevyf,GAAkB/rU,KAAKs+zB,UAAUt9zB,SAoBxE,MAAO,CAAEuje,KAAM,IAAI07U,IAAgBzwC,IAAc6sC,UAAW,MAAO3lC,MAAO,IAAIH,IAAc,IAAI7B,IAAS,EAAG,EAAG,IAC3GmvC,gBAAiB,IAAIttC,IAAc,IAAI7B,IAAS,IAAK,IAAK,OApB9D,IAAIz1d,EAAY8sB,GAAkB/rU,KAAKs+zB,UAAUt9zB,QAAQi+S,UAA8C,KAAlCj/S,KAAKs+zB,UAAUt9zB,QAAQi+S,SACxFujK,EAAcz2I,GAAkB/rU,KAAKs+zB,UAAUt9zB,QAAQiolB,UACDumL,IAAc6sC,UAApEr8yB,KAAKi/zB,cAAcj/zB,KAAKs+zB,UAAUt9zB,QAAQiolB,UAC1CzS,EAAYx2kB,KAAKk/zB,aAAal/zB,KAAKs+zB,UAAUt9zB,SAC7Cw1wB,EAAW,IAAI9B,IAAS,EAAG,EAAG,GAClC,IAAK3oc,GAAkB/rU,KAAKs+zB,UAAUt9zB,QAAQiqgB,WAAY,CACtD,IAAIk0T,EAAgBn/zB,KAAKikjB,SAASjkjB,KAAKs+zB,UAAUt9zB,QAAQiqgB,WACzDurQ,EAAW,IAAI9B,IAASyqD,EAAc77sB,EAAG67sB,EAAc57sB,EAAG47sB,EAAcjpzB,EAC5E,CACA,IAAIkpzB,EAAgBp/zB,KAAKs+zB,UAAUt9zB,QAAQwmQ,OAASxnQ,KAAKq/zB,eAAer/zB,KAAKs+zB,UAAUt9zB,QAAQwmQ,QAAU,KACrG+8N,EAAO,IAAI07U,IAAgBz9V,EAAYvjK,EAAUu3R,GAIrD,OAHKzqQ,GAAkB/rU,KAAKs+zB,UAAUt9zB,QAAQuje,QAC1CA,EAAOvke,KAAKs+zB,UAAUt9zB,QAAQuje,MAE3B,CAAEA,KAAMA,EAAMmyS,MAAO,IAAIH,IAAcC,GAAWqtC,gBAAiB,IAAIttC,IAAc,IAAI7B,IAAS,IAAK,IAAK,MAC/GltgB,OAAQ43jB,EAOpB,EACA5B,EAAU7szB,UAAU2uzB,eAAiB,SAAUrmzB,GAC3C,IAAIupc,EAAa,aACbvjK,EAAW,WACXu3R,EAAY,YACZ+oP,EAAa,aACbp5zB,EAAQ,EACZ,GAAI8S,EAAKy1K,QAAUz1K,EAAKy1K,OAAO61S,KAAM,CACjC,IAAIk6V,EAAaxlzB,EAAKy1K,OAAO61S,KAAK,GAAK/hB,GACnCg9W,EAAavmzB,EAAKy1K,OAAO61S,KAAK,GAAKtlL,GACnCwghB,EAAcxmzB,EAAKy1K,OAAO61S,KAAK,GAAKiyG,GAExC,GADArwkB,EAAS4lU,GAAkBwjc,IAAa,GAAKkwD,IAAgB,EAAIlwD,IAAa,GAAKkwD,GAC/ExmzB,EAAKy1K,OAAO61S,KAAK,GAAKg7V,GACtBtmzB,EAAKy1K,OAAO61S,KAAO,IAAIs4V,IAAgB4B,EAAYe,EAAYr5zB,OAE9D,CACD,IAAIu5zB,EAAgB3zf,GAAkB0yf,GACDjvD,IAAc6sC,UAA/Cr8yB,KAAKi/zB,cAAcR,GACvBxlzB,EAAKy1K,OAAO61S,KAAO,IAAI07U,IAAgByf,EAAcF,EAAYr5zB,EACrE,CACJ,CACA,GAAI8S,EAAKjY,SAAWiY,EAAKjY,QAAQuje,KAAM,CACnC,IAAIo7V,EAAc1mzB,EAAKjY,QAAQuje,KAAK,GAAK/hB,GACrCo9W,EAAc3mzB,EAAKjY,QAAQuje,KAAK,GAAKtlL,GACrC4ghB,EAAe5mzB,EAAKjY,QAAQuje,KAAK,GAAKiyG,GAE1C,GADArwkB,EAAS4lU,GAAkBwjc,IAAa,GAAKswD,IAAiB,EAAItwD,IAAa,GAAKswD,GAChF5mzB,EAAKjY,QAAQuje,KAAK,GAAKg7V,GACvBtmzB,EAAKjY,QAAQuje,KAAO,IAAIs4V,IAAgB8C,EAAaC,EAAaz5zB,OAEjE,CACD,IAAI25zB,EAAgB/zf,GAAkB4zf,GACAnwD,IAAc6sC,UAAhDr8yB,KAAKi/zB,cAAcU,GACvB1mzB,EAAKjY,QAAQuje,KAAO,IAAI07U,IAAgB6f,EAAcF,EAAaz5zB,EACvE,CACJ,CACA,GAAI8S,EAAKk+Z,QAAUl+Z,EAAKk+Z,OAAOotD,KAAM,CACjC,IAAIw7V,EAAa9mzB,EAAKk+Z,OAAOotD,KAAK,GAAK/hB,GACnCw9W,EAAa/mzB,EAAKk+Z,OAAOotD,KAAK,GAAKtlL,GACnCghhB,EAAchnzB,EAAKk+Z,OAAOotD,KAAK,GAAKiyG,GAExC,GADArwkB,EAAS4lU,GAAkBwjc,IAAa,GAAK0wD,IAAgB,EAAI1wD,IAAa,GAAK0wD,GAC/EhnzB,EAAKk+Z,OAAOotD,KAAK,GAAKg7V,GACtBtmzB,EAAKk+Z,OAAOotD,KAAO,IAAIs4V,IAAgBkD,EAAYC,EAAY75zB,OAE9D,CACD,IAAI+5zB,EAAgBn0f,GAAkBg0f,GACDvwD,IAAc6sC,UAA/Cr8yB,KAAKi/zB,cAAcc,GACvB9mzB,EAAKk+Z,OAAOotD,KAAO,IAAI07U,IAAgBigB,EAAcF,EAAY75zB,EACrE,CACJ,CACJ,EACAq3zB,EAAU7szB,UAAUkkvB,oBAAsB,WACtC,IAAIrtf,EAAS,IAAI85iB,IACjB,GAAKv1e,GAAkB/rU,KAAKs+zB,YAAevyf,GAAkB/rU,KAAKs+zB,UAAU5voB,QAmBxE,OADA84E,EAAOz3O,IAAM,IAAI+mvB,IAAO,IAAIpC,IAAS,IAAK,IAAK,MACxC,CAAEltgB,OAAQA,EAAQ+8N,KAAM,IAAI07U,IAAgBzwC,IAAc6sC,UAAW,MACxE3lC,MAAO,IAAIH,IAAc,IAAI7B,IAAS,IAAK,IAAK,OAnBpD,IAAIlyT,EAAcz2I,GAAkB/rU,KAAKs+zB,UAAU5voB,OAAOu6Z,UACDumL,IAAc6sC,UAAnEr8yB,KAAKi/zB,cAAcj/zB,KAAKs+zB,UAAU5voB,OAAOu6Z,UACzCzS,EAAYx2kB,KAAKk/zB,aAAal/zB,KAAKs+zB,UAAU5voB,QAC7CuwH,EAAY8sB,GAAkB/rU,KAAKs+zB,UAAU5voB,OAAOuwH,UAA6C,KAAjCj/S,KAAKs+zB,UAAU5voB,OAAOuwH,SACtFu3d,EAAW,IAAI9B,IACnB,IAAK3oc,GAAkB/rU,KAAKs+zB,UAAU5voB,OAAOu8U,WAAY,CACrD,IAAIk0T,EAAgBn/zB,KAAKikjB,SAASjkjB,KAAKs+zB,UAAU5voB,OAAOu8U,WACxDurQ,EAAW,IAAI9B,IAASyqD,EAAc77sB,EAAG67sB,EAAc57sB,EAAG47sB,EAAcjpzB,EAC5E,CACA,IAAIqud,EAAO,IAAI07U,IAAgBz9V,EAAYvjK,EAAUu3R,GAIrD,OAHKzqQ,GAAkB/rU,KAAKs+zB,UAAU5voB,OAAO61S,QACzCA,EAAOvke,KAAKs+zB,UAAU5voB,OAAO61S,MAE1B,CAAE/8N,OAAQxnQ,KAAKq/zB,eAAer/zB,KAAKs+zB,UAAU5voB,OAAO84E,QAAS+8N,KAAMA,EAAMmyS,MAAO,IAAIH,IAAcC,GAQjH,EAEAgnD,EAAU7szB,UAAUouzB,sBAAwB,SAAU9I,EAASnjZ,EAAYmoN,EAAa/qB,EAAM1oW,EAAQz1M,EAAOwya,EAAMmyS,EAAOmtC,EAAiBpxS,EAAY8/J,EAAqBhyU,EAAQ9zU,GAuDhL,IAtDA,IAAIntB,EAAQU,KACRmg0B,EAAapuwB,EACb06Q,EAAU,SAAU2zf,GACpB,IAAIvza,EAAMopa,EAAQ7nP,KAAKwoP,SACnB59rB,EAAMk3e,EAAKpE,iBAAiBs0N,EAAgBhhtB,OAE5CnmG,EAAO,CACPrX,MAAOw+zB,EAAgB9zzB,IACvB0pH,OAAQgD,EACR7yH,WAAO9C,EACP6rmB,aAAcl2e,EAAI6xe,mBAGlB8mJ,EAAQ,CAAEC,YADF1hJ,EAAKpE,iBAAiBs0N,EAAgBhhtB,OAAO4pZ,WAAa,MAAShwY,EAAI64e,oBAA0EuuN,EAAgB9zzB,IAApE6uV,EAAOm0Z,qBAAqBd,gBAAgBv1uB,IAA+B,MAAQmnzB,EAAgBx1yB,OAASkoZ,EAAWloZ,MAAQ,EAAI,SAAW,SACrNhe,KAAM,MAAOs9B,KAAMk2xB,EAAiBj6zB,WAAO9C,GAC7E83V,EAAOhzT,OAAOm4P,QAAQllK,IAA2Bu2nB,GAAO,SAAUA,GAU9D,IAAIwB,EATJtmW,EAAI8kL,MAAMiyO,QAAQuc,GAAYv+zB,MAAQ+vvB,EAAMC,YAC5C/kW,EAAI8kL,MAAMiyO,QAAQuc,GAAYh6zB,MAAM26wB,aAAe,IAAIzI,IAAgBzJ,IAAiBpnnB,MACxFqlQ,EAAI1mZ,MAAMm+yB,UAAU98iB,GACpBqlJ,EAAI1mZ,MAAM01vB,QAAQt3R,GAClB13E,EAAI1mZ,MAAM49yB,aAAartC,GACvB7pX,EAAI1mZ,MAAMw9yB,mBAAmBE,GACxB93e,GAAkB4lb,EAAMxrvB,QACzB7G,EAAMwlvB,iBAAiBj4V,EAAI8kL,MAAMiyO,QAAQuc,GAAaxuE,GAG1D,IAAI0uE,EAAsB,IAAIjgN,IAA6BlQ,GAU3D,GALIijJ,EAJCpnb,GAAkBq0f,EAAgBt4wB,MAAM8wX,SAIjCynZ,EAAoBnjN,aAAakjN,EAAgBt4wB,MAAOs4wB,GAHxDC,EAAoBnjN,aAAakjN,EAAgBt4wB,MAAM8wX,QAASwnZ,GAKvEr0f,GAAkBonb,IAA2B,IAAjBA,EAAM/vvB,SACnCypZ,EAAI8kL,MAAMiyO,QAAQuc,EAAa,GAAG7R,WAAa2H,EAAQ9orB,QAAQviH,OAASu1yB,EAAa,KAEpFp0f,GAAkB+mG,EAAW+T,cAAgB/T,EAAW+T,YAAc,EAAG,CAC1Evnb,EAAMoyvB,kBAAkByB,EAAO8iE,EAASzujB,EAAQ+8N,EAAMmyS,EAAOmtC,GAAiB,EAAMh3Z,EAAKsza,EAAY,KAAM,KAAMjwN,GACjH5wmB,EAAMy/zB,sBAAsB9I,EAASmK,EAAgBt4wB,MAAOmzkB,EAAa/qB,EAAM1oW,EAAS24jB,EAAa,EAAI57V,EAAMmyS,EAAOmtC,EAAiBpxS,EAAY8/J,EAAqBhyU,EAAQ9zU,GAChLA,EAAQntB,EAAMqxkB,SAEdwiL,EADwB,IAAIjzI,IAA2BhQ,GAC7BgN,aAAakjN,EAAgBt4wB,MAAM8wX,QAASwnZ,GACtE9g0B,EAAMoyvB,kBAAkByB,EAAO8iE,EAASzujB,EAAQ+8N,EAAMmyS,EAAOmtC,GAAiB,EAClF,KACK,CACDvkzB,EAAMoyvB,kBAAkByB,EAAO8iE,EAASzujB,EAAQ+8N,EAAMmyS,EAAOmtC,GAAiB,EAAMh3Z,EAAKsza,EAAY,KAAM,KAAMjwN,GACjHzjlB,EAAQntB,EAAM0/zB,cAAcx3jB,EAAQyzX,EAAa/qB,EAAMkwN,EAAgBt4wB,MAAOmuwB,EAAUkK,EAAa,EAAI5tJ,EAAqBhyU,EAAQ9zU,GAEtI0muB,EADwB,IAAIjzI,IAA2BhQ,GAC7BgN,aAAakjN,EAAgBt4wB,MAAOs4wB,GAE9D9g0B,EAAMoyvB,kBAAkByB,EAAO8iE,EAASzujB,EAAQ+8N,EAAMmyS,EAAOmtC,GAAiB,EAAO,KAAM,MADrE,EAC4F,KAAM3zM,EAC5H,CACJ,GACJ,EACI/0Q,EAASn7V,KACJsP,EAAK,EAAGwjb,EAAehgB,EAAYxja,EAAKwjb,EAAa1vb,OAAQkM,IAAM,CAExEm9T,EADsBqmH,EAAaxjb,GAEvC,CACJ,EACAkuzB,EAAU7szB,UAAUguzB,mBAAqB,SAAU93Y,EAAaovY,EAAS7nP,EAAMrgc,EAAYy5H,EAAQi3jB,EAAYC,EAAaltK,EAAMo5J,EAAyB0V,GAOvJ,IANA,IAAIhh0B,EAAQU,KACRktI,EAAca,EAAW3qI,OAASyjb,EAClCv6W,EAAQomjB,IAAmB4tM,GAC3BrzN,EAAOqzN,EACP7zyB,EAAQ,EACR8zyB,EAAY,GACPp0zB,EAAI,EAAGA,EAAIiikB,EAAKhrkB,OAAQ+I,IAC7Bo0zB,EAAUh0yB,SAASpgB,EAAE2K,WAAY,KAAO,EAExC06oB,EAAK9/C,cAAcvke,QAAQ/pI,SAC3BqpB,EAAQ+koB,EAAK9/C,cAAcvke,QAAQ/pI,OAAS,EAC5C8pI,GAA4B,GAEhC+orB,EAAQ9orB,QAAQ/5G,IAAI85G,GACpB+orB,EAAQ9glB,QAAQ/hN,IAAIg7iB,EAAKhrkB,QACzB,IAAIo9zB,EAAmB,SAAUj8M,EAAQwI,EAAQ/zf,EAAKo7c,EAAS6hC,GAC3D,IAAI6B,EAAam+M,EAAQ9glB,QAAQ02kB,UAAUtnM,GACvCk8M,EAAU3oN,EAAWnmC,MAAMiyO,QAAQ72L,GACnC1+C,EAAOD,EAAK7hjB,SAASg4lB,EAAOztmB,WAAY,KAAK66jB,MAAM6/E,EAAK9/C,cAAcvke,QAAQ/pI,OAC9E2pnB,EAASwzM,EAAUh0yB,SAASg4lB,EAAOztmB,WAAY,MACnDypzB,EAAUh0yB,SAASg4lB,EAAOztmB,WAAY,KAAOypzB,EAAUh0yB,SAASg4lB,EAAOztmB,WAAY,KAAO,EACrFi1T,GAAkB/yM,EAAIiggB,mBACvBwnM,EAAQt6zB,MAAM26wB,aAAexhxB,EAAMoh0B,uBAAuB1nsB,EAAIiggB,kBAE9D7kD,EAAU,IACVqsP,EAAQrsP,QAAUA,EAClBqsP,EAAQt6zB,MAAM26wB,aAAexhxB,EAAMqh0B,qBAAqB,SAAUF,EAAQt6zB,MAAM26wB,aAAc9npB,EAAIwrW,YAElGyxI,EAAU,IACVwqN,EAAQnS,WAAar4M,GAEzB6B,EAAW3xmB,MAAMm+yB,UAAU98iB,GAC3BswW,EAAW3xmB,MAAM01vB,QAAQ4iE,GACzB3mN,EAAW3xmB,MAAM49yB,aAAa2a,GAC9B+B,EAAQ7+zB,MAAQo3H,EAAIgwY,WACfj9L,GAAkBsiQ,IAAUA,EAAK2nC,WAAa/Y,IAAS81B,cAAgB1kD,EAAK2nC,WAAa/Y,IAAS+1B,eACnGytM,EAAQ7+zB,MAAQ,GAChB6+zB,EAAQjizB,MAAQ,IAEpB,IAAIvF,EAAO,CACPo1jB,KAAMoyP,EACN7rE,SAAUvmL,EACVlokB,MAAOs6zB,EAAQt6zB,OAEnB7G,EAAM6oC,OAAOm4P,Q9OnMW,yB8OmM4BrnR,GACpD,IAAI2nzB,EAAU3nzB,EACV4nzB,EAAgB5nzB,EAAK9S,MAAM07tB,QAC3Bi/F,EAAc7nzB,EAAK9S,MAAMo+d,KACzBw8V,EAAiB9nzB,EAAK9S,MAAM69yB,UAC3Bj4e,GAAkB80f,IACnB/oN,EAAW3xmB,MAAMm+yB,UAAUuc,GAE1B90f,GAAkB+0f,IACnBhpN,EAAW3xmB,MAAM01vB,QAAQilE,GAExB/0f,GAAkBg1f,IACnBjpN,EAAW3xmB,MAAM49yB,aAAagd,GAE7Bh1f,GAAkB60f,EAAQz6zB,MAAMwywB,qBACjC8nD,EAAQt6zB,MAAM26wB,aAAexhxB,EAAMqh0B,qBAAqBC,EAAQz6zB,MAAMwywB,kBAAmB8nD,EAAQt6zB,MAAM26wB,eAEtG/0c,GAAkB60f,EAAQt1Y,SAC3Bm1Y,EAAQ7+zB,MAAQ,IAAImiyB,IAAU68B,EAAQt1Y,MAAM6xE,SAE3CpxL,GAAkB60f,EAAQv9E,aAC3Bo9E,EAAQ7+zB,MAAQtC,EAAM0h0B,aAAaJ,GAE3C,EACIK,EAAa,SAAUh0N,EAAM3giB,EAAO40vB,EAAS9wP,EAAUO,EAAUp9W,GAEjE,IADA,IAAI4tmB,EAAO,EACFh1zB,EAAI,EAAGA,EAAI8gmB,EAAK7pmB,OAAQ+I,IAS7B,GARIonN,IAEA68W,EADA+wP,EAAOA,EAAOD,GAAiB,IAAN/0zB,EAAU,GAAK,GAExC+0zB,EAAU,GAET3tmB,GAAW05Y,EAAK1glB,SAASpgB,EAAE2K,WAAY,KAAK+4R,UAC7CugS,GAAsB,GAEtB68B,EAAK1glB,SAASpgB,EAAE2K,WAAY,KAAKq2H,SAAW8/d,EAAK1glB,SAASpgB,EAAE2K,WAAY,KAAKq2H,QAAQ/pI,OAAQ,CAC7F,IAAIg+zB,EAAaH,EAAWh0N,EAAK1glB,SAASpgB,EAAE2K,WAAY,KACnDq2H,QAAS7gE,EAAQ,EAAG,EAAGngE,EAAIikkB,EAAUO,EAAW,GAAG,GACxD6vP,EAAiB7vP,EAAUxkkB,EAAIikkB,EAAW3jjB,EAAOwglB,EAAK1glB,SAASpgB,EAAE2K,WAAY,KAAM,EAAGsqzB,GACtFF,GAAoBE,EACpBhxP,EAAWA,EAAWgxP,EAAa,CACvC,MACSn0N,EAAK1glB,SAASpgB,EAAE2K,WAAY,KAAK+4R,SAAWvwS,EAAMktvB,qBACvD00E,IACAV,EAAiB7vP,EAAUxkkB,EAAIikkB,EAAW3jjB,EAAOwglB,EAAK1glB,SAASpgB,EAAE2K,WAAY,KAAMw1D,EAAO,IAGlG,OAAO40vB,CACX,EAKA,OAJAD,EAAWh0N,EAAM3giB,EAAO,EAAG,EAAG,GAAG,GAC7B2pvB,EAAQ9orB,QAAQviH,OAAS,GAAKggyB,IAC9BqL,EAAQ9vzB,MAAMykzB,yBAA0B,GAErCqL,CACX,EACAuH,EAAU7szB,UAAU4tzB,wBAA0B,SAAUhsJ,EAAqBz/P,GACzE,GAAK/mG,GAAkBwmW,GAsCnBvyqB,KAAK6mnB,iBAAkB,EACvB7mnB,KAAKy9zB,kBAAmB,MAvCiB,CACpC1xf,GAAkBwmW,EAAoBrlQ,SACvClta,KAAKs+zB,UAAY/rJ,EAAoBrlQ,OAEzC,IAAIv2G,EAAa32T,KAAK+9zB,gBAAgB1nzB,KAEtC,GADArW,KAAK4rzB,WAAWr5I,IACXxmW,GAAkBwmW,EAAoB7lqB,QAAS,CAEhD,IAAIA,EAAS6lqB,EAAoB7lqB,OAC7Bw9E,EAAW,IAAIqirB,IAAO,EAAK51c,EAAWn4S,MAAQ,GAA2B,IAApB9R,EAAO20zB,YAC5DhrzB,EAAO,IAAIm2vB,IAAO71c,EAAWn4S,MAAQ,GAAsB,IAAhB9R,EAAOk8I,QAClD+7mB,EAAS,IAAI8H,IAAWvirB,EAAU7zE,GACtCrW,KAAKu1vB,YAAYhytB,SAASoxP,OAAS30R,KAAKsh0B,iBAAiB,IAAIjJ,IAAuB1zD,GAASj4vB,EACjG,CACKq/T,GAAkBwmW,EAAoBu8E,sBAAyB9uvB,KAAK09zB,aACrE19zB,KAAKwsvB,kBAAoBj6E,EAAoBu8E,qBAE5C/ib,GAAkBwmW,EAAoBz/P,YAIjC/mG,GAAkBwmW,EAAoBu7E,aAY5C9tvB,KAAK6mnB,iBAAkB,EACvB7mnB,KAAKy9zB,kBAAmB,GAZe,gBAAnClrJ,EAAoBu7E,YACpBh7U,EAAa9ya,KAAKmoC,OAAO0+kB,gBACzB7mnB,KAAK6mnB,iBAAkB,EACvB7mnB,KAAKy9zB,kBAAmB,IAGxBz9zB,KAAK6mnB,iBAAkB,EACvB7mnB,KAAKy9zB,kBAAmB,IAX5Bz9zB,KAAKy9zB,kBAAmB,EACxBz9zB,KAAK6mnB,iBAAkB,EAiB/B,CAKA,OAAO/zM,CACX,EACA0qZ,EAAU7szB,UAAUi7yB,WAAa,SAAUr5I,GACvC,IAAIjzqB,EAAQU,KACR22T,EAAa32T,KAAK+9zB,gBAAgB1nzB,KACtC,IAAK01T,GAAkBwmW,KAAyBxmW,GAAkBwmW,EAAoB7jf,QAAS,CAE3F,IAAIA,EAAS6jf,EAAoB7jf,OAC7BxkG,EAAW,IAAIqirB,IAAO,EAAG79kB,EAAO6yoB,SAChClrzB,EAAO,IAAIm2vB,IAAO71c,EAAWn4S,MAAQ,GAAsB,IAAhBkwK,EAAO9lC,QAClD+7mB,EAAS,IAAI8H,IAAWvirB,EAAU7zE,GACtC,GAAKrW,KAAK29zB,cAAcv6zB,OAGnB,CACD,IAAIo+zB,EAAmBxh0B,KAAKsh0B,iBAAiB,IAAIjJ,IAAuB1zD,GAASj2kB,GACjF1uL,KAAK29zB,cAAcv3zB,QAAO,SAAUqmB,GAC5BA,EAAQ,GAAK,GAAKA,EAAQ,GAAKntB,EAAMi2vB,YAAY+H,MAAM1yuB,MAAQ,GAC/DtrB,EAAMi2vB,YAAY+H,MAAMi+C,eAAe9uxB,EAAQ,GAAGqzvB,SAC7CyoB,gBAAgBi5B,EAAiBj+xB,SAAU,IAAIgpuB,IAAO,EAAG,GAEtE,GACJ,MAVIvswB,KAAKu1vB,YAAYhytB,SAAS2qH,IAAMluJ,KAAKsh0B,iBAAiB,IAAIjJ,IAAuB1zD,GAASj2kB,EAWlG,CACJ,EACA8uoB,EAAU7szB,UAAU2wzB,iBAAmB,SAAU/9xB,EAAUpuB,GACvD,IAAK,IAAI7F,EAAK,EAAGgmC,EAAKngC,EAAQ29R,SAAUxjS,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CAC1D,IAAIyF,EAAUugC,EAAGhmC,GAEjB,OADAtP,KAAKyh0B,yBAAyB1szB,GACtBA,EAAQnI,MACZ,IAAK,OACD,GAAsB,KAAlBmI,EAAQnT,YAAkCyB,IAAlB0R,EAAQnT,OAAyC,OAAlBmT,EAAQnT,OAA2C,kBAAlBmT,EAAQnT,MAChG,MAAM,IAAImrB,MAAM,yDAEpB/sB,KAAKonzB,SAAS7jxB,EAAUxuB,GACxB,MACJ,IAAK,aACD/U,KAAK0h0B,eAAen+xB,EAAUxuB,GAC9B,MACJ,IAAK,QACD,QAAoB1R,IAAhB0R,EAAQ2vJ,KAAqC,OAAhB3vJ,EAAQ2vJ,KAAgC,KAAhB3vJ,EAAQ2vJ,IAC7D,MAAM,IAAI33I,MAAM,4DAEpB/sB,KAAKg/d,UAAUz7b,EAAUxuB,GACzB,MACJ,IAAK,OACD/U,KAAKspyB,SAAS/lwB,EAAUxuB,GACxB,MACJ,QACI,MAAM,IAAIgY,MAAM,oCAE5B,CACA,OAAOwW,CACX,EACAi6xB,EAAU7szB,UAAU8wzB,yBAA2B,SAAU1szB,GACrD,QAAqB1R,IAAjB0R,EAAQnI,MAAuC,OAAjBmI,EAAQnI,KACtC,MAAM,IAAImgB,MAAM,oCAGhB,GAAqB,SAAjBhY,EAAQnI,KAAiB,CACzB,QAAuBvJ,IAAnB0R,EAAQyqd,QAA2C,OAAnBzqd,EAAQyqd,OACxC,MAAM,IAAIzyc,MAAM,gCAAkChY,EAAQnI,KAAO,eAGjE,QAA0BvJ,IAAtB0R,EAAQyqd,OAAOqhL,IAA0C,OAAtB9roB,EAAQyqd,OAAOqhL,IAA4C,kBAAtB9roB,EAAQyqd,OAAOqhL,GACvF,MAAM,IAAI9znB,MAAM,wCAA0ChY,EAAQnI,KAAO,cAE7E,QAA0BvJ,IAAtB0R,EAAQyqd,OAAOshL,IAA0C,OAAtB/roB,EAAQyqd,OAAOshL,IAA4C,kBAAtB/roB,EAAQyqd,OAAOshL,GACvF,MAAM,IAAI/znB,MAAM,wCAA0ChY,EAAQnI,KAAO,cAE7E,QAA0BvJ,IAAtB0R,EAAQyqd,OAAOuhL,IAA0C,OAAtBhsoB,EAAQyqd,OAAOuhL,IAA4C,kBAAtBhsoB,EAAQyqd,OAAOuhL,GACvF,MAAM,IAAIh0nB,MAAM,wCAA0ChY,EAAQnI,KAAO,cAE7E,QAA0BvJ,IAAtB0R,EAAQyqd,OAAOwhL,IAA0C,OAAtBjsoB,EAAQyqd,OAAOwhL,IAA4C,kBAAtBjsoB,EAAQyqd,OAAOwhL,GACvF,MAAM,IAAIj0nB,MAAM,wCAA0ChY,EAAQnI,KAAO,aAGrF,KACK,CACD,QAAyBvJ,IAArB0R,EAAQm1E,UAA+C,OAArBn1E,EAAQm1E,SAC1C,MAAM,IAAIn9D,MAAM,kCAAoChY,EAAQnI,KAAO,eAGnE,QAA2BvJ,IAAvB0R,EAAQm1E,SAAShwE,GAA0C,OAAvBnF,EAAQm1E,SAAShwE,GAA4C,kBAAvBnF,EAAQm1E,SAAShwE,EAC3F,MAAM,IAAI6S,MAAM,uCAAyChY,EAAQnI,KAAO,gBAE5E,QAA2BvJ,IAAvB0R,EAAQm1E,SAAS/vE,GAA0C,OAAvBpF,EAAQm1E,SAAS/vE,GAA4C,kBAAvBpF,EAAQm1E,SAAS/vE,EAC3F,MAAM,IAAI4S,MAAM,uCAAyChY,EAAQnI,KAAO,eAGpF,CAER,EAEA4wzB,EAAU7szB,UAAUy2yB,SAAW,SAAUzO,EAAc5jyB,GACnD,IAAIwvd,EAAOvke,KAAK6gxB,QAAQ9rwB,GACpB2hwB,EAAQ12wB,KAAK2h0B,oBAAoB5szB,GACjCijwB,EAAM,KACV,IAAKjsc,GAAkBh3T,EAAQ5O,MAAMy7zB,cAAe,CAChD,IAAIC,EAAW7h0B,KAAKikjB,SAASlviB,EAAQ5O,MAAMy7zB,cAC3C5pD,EAAM,IAAIlB,IAAO,IAAIpC,IAASmtD,EAASv+sB,EAAGu+sB,EAASt+sB,EAAGs+sB,EAAS3rzB,GACnE,CACa,MAATwgwB,GAAwB,MAAPsB,IACjBtB,EAAQ,IAAIH,IAAc,IAAI7B,IAAS,EAAG,EAAG,KAEjD,IAAI9ywB,EAAQmT,EAAQnT,MAAMkV,WACtBoD,EAAyB,IAArBnF,EAAQm1E,SAAShwE,EACrBC,EAAyB,IAArBpF,EAAQm1E,SAAS/vE,EACrBkL,EAAS,IAAIgzvB,IACZtsc,GAAkBh3T,EAAQ5O,MAAM26wB,gBACjCz7vB,EAAO22P,UAAYjnQ,EAAQ5O,MAAM26wB,aAAa9kgB,WAElD,IAAInxP,EAAS7qB,KAAK8h0B,iBAAiB/szB,EAASsQ,GAC7B,OAAXwF,GAAoBkhT,GAAkBlhT,EAAOxF,SAAY0mT,GAAkBlhT,EAAOxU,MAIlFsiyB,EAAa74B,SAAS8oB,WAAWhnyB,EAAO2ie,EAAMyzS,EAAKtB,EAAOx8vB,EAAGC,EAAGkL,GAHhEszxB,EAAa74B,SAAS8oB,WAAWhnyB,EAAO2ie,EAAMyzS,EAAKtB,EAAOx8vB,EAAGC,EAAG0Q,EAAOxU,KAAKmI,MAAOqM,EAAOxU,KAAKuyI,OAAQ/9H,EAAOxF,OAKtH,EAEAm4yB,EAAU7szB,UAAU+wzB,eAAiB,SAAUK,EAAgBhtzB,GAC3D,IAAIwvd,EAAOvke,KAAK6gxB,QAAQ9rwB,GACpB2hwB,EAAQ,KACZ,GAAK3qc,GAAkBh3T,EAAQ5O,MAAM67zB,gBAKjCtrD,EAAQ,IAAIH,IAAc,IAAI7B,IAAS,EAAG,EAAG,QALK,CAClD,IAAIutD,EAAaji0B,KAAKikjB,SAASlviB,EAAQ5O,MAAM67zB,gBAC7CtrD,EAAQ,IAAIH,IAAc,IAAI7B,IAASutD,EAAW3+sB,EAAG2+sB,EAAW1+sB,EAAG0+sB,EAAW/rzB,GAClF,CAIA,IAEIgszB,EACA78yB,EAHA88yB,EAAa,IAAI/F,IAAmB73V,EAAMmyS,GAI9C,GAHAyrD,EAAWhI,YAAcn6zB,KAAKoi0B,mBAAmBrtzB,EAAQstzB,gBAGpDt2f,GAAkBh3T,EAAQsQ,QA4B3B68yB,EAAiB,IAAI3F,IAAkBh4V,EAAMmyS,EAD7CrxvB,EAAS,MACmD88yB,OA5BxB,CACpC,IAAI1/sB,EAAQ,SACR/4D,EAAU,WACd,IAAuC,IAAnC30C,EAAQsQ,OAAO1a,QAAQ83G,KAAsD,IAArC1tG,EAAQsQ,OAAO1a,QAAQ++C,IAC3D0njB,EAAY,IAAIwrN,IAAkBr4V,IAC5B41V,YAAcn6zB,KAAKoi0B,mBAAmBrtzB,EAAQstzB,gBAGpDh9yB,EAFAtQ,EAAQsQ,OAAO1a,QAAQ83G,GAAS1tG,EAAQsQ,OAAO1a,QAAQ++C,IACvDrkC,EAAStQ,EAAQsQ,OAAOhV,QAAQq5C,EAAS,MACzBr5C,QAAQoyG,EAAO,MAG/Bp9F,EAAStQ,EAAQsQ,OAAOhV,QAAQq5C,EAAS,MACzBr5C,QAAQoyG,EAAO,KAEnCy/sB,EAAiB,IAAI3F,IAAkBh4V,EAAMmyS,EAAOrxvB,EAAQ88yB,EAAY/wN,QAEvE,IAAyC,IAArCr8lB,EAAQsQ,OAAO1a,QAAQ++C,KAAsD,IAAnC30C,EAAQsQ,OAAO1a,QAAQ83G,GACtEp9F,EAAStQ,EAAQsQ,OAAOhV,QAAQq5C,EAAS,KACzCw4wB,EAAiB,IAAI3F,IAAkBh4V,EAAMmyS,EAAOrxvB,EAAQ88yB,OAE3D,CACD,IAAI/wN,EAAY,IAAIwrN,IAAkBr4V,GACtCl/c,EAAStQ,EAAQsQ,OAAOhV,QAAQoyG,EAAO,KACvCy/sB,EAAiB,IAAI3F,IAAkBh4V,EAAMmyS,EAAOrxvB,EAAQ+rlB,EAChE,CACJ,CAKA,IAAIl3lB,EAAyB,IAArBnF,EAAQm1E,SAAShwE,EACrBC,EAAyB,IAArBpF,EAAQm1E,SAAS/vE,EACrB0Q,EAAS7qB,KAAK8h0B,iBAAiB/szB,EAASmtzB,EAAephD,cAC5C,OAAXj2vB,GAAoBkhT,GAAkBlhT,EAAOxF,SAAY0mT,GAAkBlhT,EAAOxU,QAClF6rzB,EAAephD,aAAej2vB,EAAOxF,OACrC68yB,EAAev9D,OAAS,IAAI8H,IAAWvyvB,EAAGC,EAAG0Q,EAAOxU,KAAKmI,MAAOqM,EAAOxU,KAAKuyI,SAEhFs5qB,EAAe59V,KAAKy9V,EAAejiD,SAAU5lwB,EAAGC,EACpD,EAEAqjzB,EAAU7szB,UAAUqud,UAAY,SAAU+iW,EAAgBhtzB,GACtD,IAAImF,EAAyB,IAArBnF,EAAQm1E,SAAShwE,EACrBC,EAAyB,IAArBpF,EAAQm1E,SAAS/vE,EACrBqE,EAAUutT,GAAkBh3T,EAAQsB,WAAuChT,EAAR,IAArB0R,EAAQsB,KAAKmI,MAC3DoqI,EAAWmjL,GAAkBh3T,EAAQsB,WAAwChT,EAAR,IAAtB0R,EAAQsB,KAAKuyI,OAC5D0iS,EAAQ,IAAIy4W,IAAUhvxB,EAAQ2vJ,KAC7BqnK,GAAkBvtT,GAInBujzB,EAAejiD,SAAS9gT,UAAU1zC,EAAOpxa,EAAGC,GAH5C4nzB,EAAejiD,SAAS9gT,UAAU1zC,EAAOpxa,EAAGC,EAAGqE,EAAOoqI,EAK9D,EAEA40qB,EAAU7szB,UAAU24xB,SAAW,SAAUy4B,EAAgBhtzB,GACrD,IAAI8roB,EAAyB,IAApB9roB,EAAQyqd,OAAOqhL,GACpBC,EAAyB,IAApB/roB,EAAQyqd,OAAOshL,GACpBC,EAAyB,IAApBhsoB,EAAQyqd,OAAOuhL,GACpBC,EAAyB,IAApBjsoB,EAAQyqd,OAAOwhL,GACpBg3H,EAAMh4wB,KAAKsi0B,kBAAkBvtzB,GAC5Bg3T,GAAkBh3T,EAAQ5O,QAA4B,OAAlB4O,EAAQ5O,QACxC4lU,GAAkBh3T,EAAQ5O,MAAMo8zB,UAAsC,OAA1BxtzB,EAAQ5O,MAAMo8zB,SAAqD,kBAA1BxtzB,EAAQ5O,MAAMo8zB,UACpGvqD,EAAIx5vB,MAAgC,IAAxBzJ,EAAQ5O,MAAMo8zB,SAE9BvqD,EAAIwpC,UAAYxhzB,KAAKwi0B,aAAaztzB,EAAQ5O,MAAMq7yB,YAEpDugB,EAAejiD,SAASwpB,SAAStxB,EAAKn3H,EAAIC,EAAIC,EAAIC,EACtD,EACAw8K,EAAU7szB,UAAU+gvB,kBAAoB,SAAUyB,EAAO8iE,EAASzujB,EAAQ+8N,EAAMmyS,EAAOmtC,EAAiB4e,EAAWvhN,EAAYi/M,EAAYuC,EAAiBC,EAAazyN,GACrK,IAAK,IAAI5gmB,EAAK,EAAGszzB,EAAUzvE,EAAO7jvB,EAAKszzB,EAAQx/zB,OAAQkM,IAAM,CAQzD,IAPA,IAAIu9Y,EAAM+1a,EAAQtzzB,GACduzzB,GAA4B,EAC5Bp2yB,EAAQ,EACRq+D,GAAU,EAEVlpF,EAAQ,GACRkh0B,EAASH,EAAc,EAAI,EACtBx2zB,EAAI,EAAGA,EAAI8pzB,EAAQ9orB,QAAQviH,MAAQk4yB,EAAQ32zB,IAAK,CACrD,IAAIkikB,EAAOxhL,EAAI8kL,MAAMpljB,SAASE,EAAM3V,WAAY,KAChD,GAAIu3jB,EAAK2nC,WAAa/Y,IAASuiB,mBAA/B,CAKA,IAAKx/mB,KAAKwsvB,kBAAmB,CACzB,UAAwBnpvB,IAAjBgrkB,EAAKx+R,SACR,GAAIw+R,EAAK2nC,WAAa/Y,IAASuiB,mBAA/B,CAGA,GAAKzzS,GAAkBm1S,GAenBt/mB,EAAMwK,KAAK,SAdX,GAAK2/T,GAAkBm1S,EAAWvvC,MAAMiyO,QAAQz3yB,GAAGvK,OAU/CA,EAAMwK,KAAK,QAV4C,CACvD,IAAI6M,EAAO,CAAE4zY,IAAKA,EAAKjgZ,KAAM,eAAgBzG,MAAO+6mB,EAAWvvC,OAC/D3xkB,KAAKmoC,OAAOm4P,QAAQllK,IAAkCniH,GACtDrX,EAAMwK,KAAK80mB,EAAWvvC,MAAMiyO,QAAQz3yB,GAAGvK,OACvCkpF,GAAU,EACL23uB,IACDt2zB,GAAK,EAEb,CAQJA,GAAK,EACLsgB,GAAgB,EAChB4hjB,EAAOxhL,EAAI8kL,MAAMpljB,SAASE,EAAM3V,WAAY,IApB5C,CAsBJ,MAAQi1T,GAAkBsiQ,EAAKx+R,WAAaw+R,EAAKx+R,SAC7CpjR,GAAgB,EAChB4hjB,EAAOxhL,EAAI8kL,MAAMpljB,SAASE,EAAM3V,WAAY,IAEpD,CACA,GAAIu3jB,EAAKkwC,WAAY,CACjB,IAAI3+F,EAAa,CAAC,EAClB,GAAK7zM,GAAkBsiQ,EAAKr4c,OAAOyvU,iBAAoB15H,GAAkBsiQ,EAAKr4c,OAAO2of,uBAC7E5yS,GAAkBsiQ,EAAKr4c,OAAO0of,qBAmBjC,CAGI3yS,GADDlhT,EAAS7qB,KAAK+i0B,0BAA0Bl2a,EAAI3iX,KAAKmkiB,EAAKr4c,OAAO5W,UAE7Dx9G,EAAMwK,KAAKye,EAEnB,KAzB4D,CAExD,IAAIA,EACJ+0f,GADI/0f,EAAS7qB,KAAKgj0B,oBAAoBpjT,EAAYzzgB,EAAG02zB,EAA0Bx0P,IAC3DthC,iBACpB81R,EAA2Bh4yB,EAAOg4yB,yBAClC,IAAIr+S,OAAM,EACNt6e,EAAO2iX,EAAI3iX,KAAKmkiB,EAAKr4c,OAAO5W,MAAQivd,EAAKr4c,OAAO5W,MAAQivd,EAAKr4c,OAAOwye,YACpExomB,KAAKmoC,OAAOsoU,SAAWzwW,KAAKmoC,OAAOysb,OACnC4vD,EAAO5E,EAAW1zM,GAAa+wR,IAAU5uB,EAAK2nC,WAAW9rkB,EAAMlqC,KAAKmoC,QAChEnoC,KAAKmoC,OAAOsoU,SACZzwW,KAAKmoC,OAAOukf,mBAIhBlI,EAAO5E,EAAW1zM,GAAa+wR,IAAU5uB,EAAK2nC,WAAW9rkB,GAE7DtoC,EAAMwK,KAAM2/T,GAAkBy4M,EAAI,IAA2B,GAArBA,EAAI,GAAG56e,aAC/CkhD,GAAU,CACd,CAQJ,MAEIlpF,EAAMwK,KAAK,IAEX0+E,GAAiD,KAAtClpF,EAAM2qB,SAASpgB,EAAE2K,WAAY,OAAgBi1T,GAAkBnqU,EAAM2qB,SAASpgB,EAAE2K,WAAY,OAA+C,OAAtClV,EAAM2qB,SAASpgB,EAAE2K,WAAY,OAC7Ig0E,GAAU,GAEdr+D,GAAS,CApET,MAHItgB,IACAsgB,GAuER,CACA,IAAKk2yB,EACD,GAAKF,EAID,IAASt2zB,EAAI+jmB,EAAKwB,cAAcvke,QAAQ/pI,OAAQ+I,EAAIvK,EAAMwB,OAAS,EAAG+I,IAClEvK,EAAM2qB,SAASpgB,EAAE2K,WAAY,KAAOlV,EAAMuK,EAAI,GAC9CvK,EAAMuK,EAAI,GAAKvK,EAAMuK,EAAI,GAAKvK,EAAMuK,EAAI,GAAK,QALjDvK,EAAM4zB,OAAO,EAAG,GASxB,IAAKs1D,EACD,GAAK23uB,EAeD,IAASt2zB,EAAI,EAAGA,EAAI8pzB,EAAQ9orB,QAAQviH,MAAOze,IACvC+0mB,EAAWvvC,MAAMiyO,QAAQz3yB,GAAGvK,MAAQA,EAAM2qB,SAASpgB,EAAE2K,WAAY,KAAKA,WAClE3K,IAAMg0zB,IAA4C,IAA9B0C,GAAgE,IAA7BA,EACvD3hN,EAAWvvC,MAAMiyO,QAAQz3yB,GAAGmizB,WAAcuU,EAA2B,EAAK1C,EAErEh0zB,IAAMg0zB,IAA4C,IAA9B0C,IACzB3hN,EAAWvvC,MAAMiyO,QAAQz3yB,GAAGmizB,WAAa2H,EAAQ9orB,QAAQviH,MAAQu1yB,OArB7D,CACZ,IAAIxyrB,EAAUsorB,EAAQ7nP,KAAKwoP,SAC3BjprB,EAAQxnI,MAAMm+yB,UAAU98iB,GACxB75H,EAAQxnI,MAAM01vB,QAAQt3R,GACtB52V,EAAQxnI,MAAM49yB,aAAartC,GAC3B/ooB,EAAQxnI,MAAMw9yB,mBAAmBE,GAC7B5qyB,EAAO,CACP4zY,IAAKA,EAAKjgZ,KAAM81zB,EAAkB,cAAgB,SAAUv8zB,MAAOwnI,EAAQgkc,OAE/E3xkB,KAAKmoC,OAAOm4P,QAAQllK,IAAkCniH,GACtD,IAAK,IAAI9M,EAAI,EAAGA,EAAI8pzB,EAAQ9orB,QAAQviH,MAAOze,IACvCwhI,EAAQgkc,MAAMiyO,QAAQz3yB,GAAGvK,MAAQA,EAAM2qB,SAASpgB,EAAE2K,WAAY,KAAKA,UAE3E,CAaR,CACJ,EAEA0mzB,EAAU7szB,UAAUqyzB,oBAAsB,SAAUpjT,EAAYnzf,EAAOo2yB,EAA0Bx0P,GAa7F,OAZKtiQ,GAAkBsiQ,EAAKr4c,OAAOyvU,iBAAmB4oI,EAAK2nC,WAAa/Y,IAASgjB,QAGvEl0S,GAAkBsiQ,EAAKr4c,OAAO2of,sBAOpC/+F,EAAW1zM,GAAa+wR,IAAUA,IAASkjB,eAAiBr1Q,GAAQujO,EAAKr4c,OAAO0of,uBAN9C,IAA9BmkN,IACAA,EAA2Bp2yB,GAE/Bmzf,EAAW1zM,GAAa+wR,IAAUA,IAASojB,iBAAmBv1Q,GAAQujO,EAAKr4c,OAAO2of,uBANlF/+F,EAAW1zM,GAAa+wR,IAAUA,IAASgjB,UAAYn1Q,GAAQujO,EAAKr4c,OAAOyvU,gBAWxE,CAAEsnG,iBAAkBntB,EAAYijT,yBAA0BA,EACrE,EAEArF,EAAU7szB,UAAUoyzB,0BAA4B,SAAU74xB,GACtD,OAAK6hS,GAAkB7hS,EAAKoptB,KAGlBvnb,GAAkB7hS,EAAKqptB,SAGvBxnb,GAAkB7hS,EAAKsptB,KAGvBznb,GAAkB7hS,EAAKuptB,KAGvB1nb,GAAkB7hS,EAAK+2Y,OAGvBl1G,GAAkB7hS,EAAKwptB,WAGvB3nb,GAAkB7hS,EAAKyptB,YAGvB5nb,GAAkB7hS,EAAK0ptB,aAA5B,EACM1ptB,EAAK0ptB,OAHL1ptB,EAAKyptB,WAHLzptB,EAAKwptB,UAHLxptB,EAAK+2Y,MAHL/2Y,EAAKuptB,IAHLvptB,EAAKsptB,IAHLtptB,EAAKqptB,QAHLrptB,EAAKoptB,GAuBpB,EAWAkqE,EAAU7szB,UAAUiuzB,oBAAsB,SAAU3jM,EAAag7L,EAAS11d,EAAQ2vQ,EAAM06M,GAEpF,IADA,IAAIn2wB,EAAay7jB,EAAKwB,cAAcvke,QAAQ/pI,OAAS8smB,EAAKwB,cAAcvke,QAAQ/pI,OAAS,EAAI,EACpF+I,EAAI,EAAGA,EAAIsoC,EAAYtoC,IAC5B8pzB,EAAQ9orB,QAAQ+9qB,UAAU/+yB,GAAGqS,MAAQ,GAEzC,IAASrS,EAAI,EAAGA,EAAI8unB,EAAY73nB,OAAQ+I,IAC/B4/T,GAAkBkvT,EAAY1umB,SAASpgB,EAAE2K,WAAY,KAAK0td,aAC3DyxV,EAAQ9orB,QAAQ+9qB,UAAU/+yB,EAAIsoC,GAAYpvB,OAASrlB,KAC9C0g0B,uBAAuBzlM,EAAY1umB,SAASpgB,EAAE2K,WAAY,KAAK0td,YAGpEyxV,EAAQ9vzB,MAAMykzB,0BAA4B7+e,GAAkBkvT,EAAY1umB,SAASpgB,EAAE2K,WAAY,KAAK0H,QACjGosyB,IACHqL,EAAQ9orB,QAAQ+9qB,UAAU/+yB,EAAIsoC,GAAYj2B,MAAiE,kBAAlDy8mB,EAAY1umB,SAASpgB,EAAE2K,WAAY,KAAK0H,MAC7C,IAAhDy8mB,EAAY1umB,SAASpgB,EAAE2K,WAAY,KAAK0H,MACkC,IAA1E+hV,EAAO4sZ,kBAAkBlyH,EAAY1umB,SAASpgB,EAAE2K,WAAY,KAAK0H,OAGjF,EASAg/yB,EAAU7szB,UAAUsyzB,oBAAsB,SAAUp2a,EAAKrlJ,GACrD,GAAKukE,GAAkB/rU,KAAKs+zB,YAAevyf,GAAkB/rU,KAAKs+zB,UAAUnnZ,QAkBxEtqB,EAAI1mZ,MAAM49yB,aAAa,IAAIxtC,IAAc,IAAI7B,IAAS,EAAG,EAAG,SAlBqB,CACjF,IAAIlyT,EAAcz2I,GAAkB/rU,KAAKs+zB,UAAUnnZ,OAAO8xK,UACDumL,IAAc6sC,UAAnEr8yB,KAAKi/zB,cAAcj/zB,KAAKs+zB,UAAUnnZ,OAAO8xK,UACzChqS,EAAY8sB,GAAkB/rU,KAAKs+zB,UAAUnnZ,OAAOl4H,UAA6C,KAAjCj/S,KAAKs+zB,UAAUnnZ,OAAOl4H,SACtFu3R,EAAYx2kB,KAAKk/zB,aAAal/zB,KAAKs+zB,UAAUnnZ,QAC7CotD,EAAO,IAAI07U,IAAgBz9V,EAAYvjK,EAAUu3R,GAChDzqQ,GAAkB/rU,KAAKs+zB,UAAUnnZ,OAAOotD,QACzCA,EAAOvke,KAAKs+zB,UAAUnnZ,OAAOotD,MAEjC13E,EAAI1mZ,MAAM01vB,QAAQt3R,GAClB,IAAIiyS,EAAW,IAAI9B,IACnB,IAAK3oc,GAAkB/rU,KAAKs+zB,UAAUnnZ,OAAO8zF,WAAY,CACrD,IAAIk0T,EAAgBn/zB,KAAKikjB,SAASjkjB,KAAKs+zB,UAAUnnZ,OAAO8zF,WACxDurQ,EAAW,IAAI9B,IAASyqD,EAAc77sB,EAAG67sB,EAAc57sB,EAAG47sB,EAAcjpzB,EAC5E,CACA22Y,EAAI1mZ,MAAM49yB,aAAa,IAAIxtC,IAAcC,GAC7C,CAIA,IAAI0sD,EAAelj0B,KAAKs+zB,WAAat+zB,KAAKs+zB,UAAUnnZ,QAChDn3a,KAAKs+zB,UAAUnnZ,OAAO3vK,OAASxnQ,KAAKq/zB,eAAer/zB,KAAKs+zB,UAAUnnZ,OAAO3vK,QAAUA,EAEvF,OADAqlJ,EAAI1mZ,MAAMm+yB,UAAU4e,GACbr2a,CACX,EAgBA2wa,EAAU7szB,UAAUquzB,cAAgB,SAAUx3jB,EAAQr6H,EAAS+ie,EAAMp9L,EAAYmjZ,EAASxhxB,EAAY89nB,EAAqBhyU,EAAQowO,GAE/H,IADA,IACSrhkB,EAAK,EAAGoomB,EADNn3Q,EAAOksZ,gBAAgBt/mB,EAAS2lS,EAAYo9L,EAAMv/B,GAC7BrhkB,EAAKoomB,EAAOt0mB,OAAQkM,IAAM,CACtD,IAAIu9Y,EAAM6qN,EAAOpomB,GACjBqhkB,IACA3wkB,KAAK2wkB,SAAWA,EAIhB,IAFA,IAAIhjc,EAAU3tI,KAAKij0B,oBAAoBhN,EAAQ7nP,KAAKwoP,SAAUpvjB,GAC1D27jB,EAAat2a,EAAI8kL,MAAMvukB,OAClB4M,EAAI,EAAGA,EAAImzzB,EAAYnzzB,IAAK,CACjC,IAAI4kvB,EAAW/nW,EAAI8kL,MAAMpljB,SAASvc,EAAE8G,WAAY,KAChD,GAAI89uB,EAAS5+I,WAAa/Y,IAASsS,KAAnC,CAGA,IAAIv5e,EAAS4+nB,EAAS5+nB,OAClB5W,EAAQ4W,EAAO5W,MACf6koB,EAAal4a,GAAkB3sN,GAAyD,GAAhD4W,EAAOysf,cAAcrjgB,EAAOytS,EAAI3iX,KAAM8rF,GAC9Ep0H,EAASmqU,GAAkBk4a,GAAyB,GAAZA,EACxC/hJ,OAAiB,EA8BrB,GA7BIlse,EAAO60e,iBAAmB70e,EAAO60e,oBACjC3I,EAAiB3hQ,EAAOo7R,SAAS/5nB,EAAOo0H,GACxCp0H,EAAQiZ,GAASm7G,EAAOqxe,gBAAiBnF,KAIzCjplB,EAAO,CACPixB,KAHO2iX,EAAI3iX,KAIXtoC,MAAOA,EACPo0H,OAAQA,EACR7vH,WAAO9C,EACP4ymB,QAAS,EACT5nC,KAPAA,EAAO1gc,EAAQgkc,MAAMiyO,QAAQ5zyB,KAS5BpO,MAA6B,YAArBqX,EAAK+8G,OAAOppH,MAA4C,kBAAfqM,EAAKrX,MAAqBqX,EAAKrX,MACjF5B,KAAKsvvB,qBAAqBd,gBAAgBv1uB,GAC9CjZ,KAAKmoC,OAAOm4P,Q9O1wBE,mB8O0wB+BrnR,GACxC8yT,GAAkB9yT,EAAKqya,SACxBrya,EAAKrX,MAAQ,IAAImiyB,IAAU9qxB,EAAKqya,MAAM6xE,QACtClkf,EAAKrX,MAAMgnJ,OAAS3vI,EAAKqya,MAAM1iS,QAAU3vI,EAAKrX,MAAMgnJ,OACpD3vI,EAAKrX,MAAM4c,MAAQvF,EAAKqya,MAAM9sa,OAASvF,EAAKrX,MAAM4c,OAEtD6vjB,EAAKzskB,MAAQqX,EAAKrX,MACbmqU,GAAkB9yT,EAAKoquB,aACxBh1K,EAAKzskB,MAAQ5B,KAAKgh0B,aAAa/nzB,IAE9B8yT,GAAkB9yT,EAAK9S,QACxBnG,KAAK8kvB,iBAAiBz2K,EAAMp1jB,GAE5BA,EAAKg9lB,QAAU,EAAG,CACbjmmB,EAAI,EAAIiJ,EAAKg9lB,QAAWtoe,EAAQgkc,MAAM/mjB,QACvC3R,EAAKg9lB,QAAUtoe,EAAQgkc,MAAM/mjB,OAAS5a,EAAI,IAE9Cq+jB,EAAKigP,WAAar1yB,EAAKg9lB,QACvB,IAAK,IAAI9pmB,EAAI,EAAGA,EAAIkikB,EAAKigP,WAAYnizB,IAAK,CACvBwhI,EAAQgkc,MAAMiyO,QAAQ5zyB,EAAI7D,GAChCvK,MAAQ,EACrB,CACAoO,GAAMiJ,EAAKg9lB,QAAU,CACzB,CA7CA,CA8CJ,CACA,GAAIppN,EAAIsuB,SAAU,CACd,IAEIkzJ,EAFA+0P,EAAYpj0B,KAAKij0B,oBAAoBhN,EAAQ7nP,KAAKwoP,SAAUpvjB,GAC5D67jB,EAAgBrj0B,KAAKmoC,OAAOg0kB,UAAY,EAAI1nkB,GAC5C45hB,EAAO+0P,EAAUzxP,MAAMiyO,QAAQyf,IAC9B/U,WAAa8U,EAAUzxP,MAAM/mjB,MAASy4yB,EAC3Ch1P,EAAKlokB,MAAM2mzB,YAAc,IAAI9K,IAAY,GAAI,GAAI,GAAI,IACrD9xM,EAAKuK,YAAa,EAClB,IAAIqzI,GAAe/hb,GAAkBwmW,IAAwBA,EAAoBu7E,WAC7Ev7E,EAAoBu7E,WAAa,WACjC7omB,EAAcjlJ,KAAKugW,OAAOstZ,gBAAgB39I,EAAMrjN,EAAKihW,EAAY9tvB,KAAK0tvB,UACtEE,EAAe3omB,EAAYk3d,UAC3BhnmB,EAAU8vI,EAAY9vI,QAC1By4uB,EAAah6T,cACTrzF,EAAO/a,eAAexlV,KAAK0tvB,SAAUE,EAAc5tvB,KAAK2tvB,eAC5D,IAAI10uB,EAAO,CAAEkjmB,UAAWyxI,EAAc/gW,IAAKA,EAAKwhL,KAAMA,EAAMgrG,iBAAkB9G,GAC9EvyqB,KAAKmoC,OAAOm4P,QAAQllK,IAA8BniH,GAClD20uB,EAAa5uJ,gBAAkBh/lB,KAAKyyvB,cAAcpkL,EAAMu/K,EAAcr7E,GACtEq7E,EAAal1Z,SAASvjV,EAC1B,CACAnV,KAAKmoC,OAAOkxK,OAAOj+E,IAA2B,CAAExuH,KAAM,MAAO80mB,OAAQ70N,GACzE,CACA,OAAO8jL,CACX,EACA6sP,EAAU7szB,UAAUqwzB,aAAe,SAAU/nzB,GAEzC,IAAIqqzB,EAAW,IAAI1c,IASnB,OAPA0c,EAASr0sB,IAAMh2G,EAAKoquB,UAAUh7uB,OAE9Bi7zB,EAASrjyB,KAAOhnB,EAAKoquB,UAAUnG,aAAejkuB,EAAKoquB,UAAUh7uB,OAE7Di7zB,EAAS/+V,KAAO,IAAI07U,IAAgBzwC,IAAc6sC,UAAW,MAE7DinB,EAAS5sD,MAAQ,IAAIH,IAAc,IAAI7B,IAAS,GAAI,IAAK,MAClD4uD,CACX,EACA9F,EAAU7szB,UAAU8hvB,cAAgB,SAAUpkL,EAAMu/K,EAAcr7E,GAC9D,IAAIjzqB,EAAQU,KACZ,OAAO,SAAU6qB,GAQb,OAPA+iuB,EAAa5uJ,gBAAkB,KAC/Bn0kB,EAAOi2D,QAAS,EAChButf,EAAKzskB,MAAQtC,EAAM+wvB,kBAAkBzC,EAAc/iuB,EAAQ0npB,GAC3Dq7E,EAAax2mB,UACbkzM,GAAOsja,EAAaz4uB,SACpB7V,EAAMouvB,SAASE,EAAaz3tB,KAAM,EAClC72B,EAAMihW,OAAOktZ,eAAenuvB,EAAMouvB,SAAUpuvB,EAAMquvB,eAC3Ct/K,CACX,CACJ,EACAmvP,EAAU7szB,UAAUm0uB,iBAAmB,SAAUz2K,EAAMp1jB,GACnD,IAAK8yT,GAAkB9yT,EAAK9S,MAAMy3d,iBAAkB,CAChD,IAAI+4G,EAAY32kB,KAAKikjB,SAAShriB,EAAK9S,MAAMy3d,iBACzCywG,EAAKlokB,MAAM09yB,gBAAkB,IAAIttC,IAAc,IAAI7B,IAAS/9L,EAAUrzd,EAAGqzd,EAAUpzd,EAAGozd,EAAUzgkB,GACpG,CAUA,GATK61T,GAAkB9yT,EAAK9S,MAAMuywB,iBAC9BrqM,EAAKlokB,MAAM26wB,aAAe9gxB,KAAK0g0B,uBAAuBznzB,EAAK9S,MAAMuywB,gBAEhE3sc,GAAkB9yT,EAAK9S,MAAM2mzB,eAC9Bz+O,EAAKlokB,MAAM2mzB,YAAc7zyB,EAAK9S,MAAM2mzB,aAEnC/gf,GAAkB9yT,EAAK9S,MAAMwywB,qBAC9BtqM,EAAKlokB,MAAM26wB,aAAe9gxB,KAAK2g0B,qBAAqB1nzB,EAAK9S,MAAMwywB,kBAAmBtqM,EAAKlokB,MAAM26wB,gBAE5F/0c,GAAkB9yT,EAAK9S,MAAM67zB,gBAAiB,CAC/C,IAAIA,EAAiBhi0B,KAAKikjB,SAAShriB,EAAK9S,MAAM67zB,gBAC9C3zP,EAAKlokB,MAAM69yB,UAAY,IAAIztC,IAAc,IAAI7B,IAASstD,EAAe1+sB,EAAG0+sB,EAAez+sB,EAAGy+sB,EAAe9rzB,GAC7G,CACA,IAAK61T,GAAkB9yT,EAAK9S,MAAMy7zB,cAAe,CAC7C,IAAIA,EAAe5h0B,KAAKikjB,SAAShriB,EAAK9S,MAAMy7zB,cAC5CvzP,EAAKlokB,MAAMg+yB,QAAU,IAAIrtC,IAAO,IAAIpC,IAASktD,EAAat+sB,EAAGs+sB,EAAar+sB,EAAGq+sB,EAAa1rzB,GAC9F,CAKA,GAJK61T,GAAkB9yT,EAAK9S,MAAMq8c,aAAgBz2I,GAAkB9yT,EAAK9S,MAAM84S,WAAc8sB,GAAkB9yT,EAAK9S,MAAMiqH,OACrH27M,GAAkB9yT,EAAK9S,MAAMmqH,SAAYy7M,GAAkB9yT,EAAK9S,MAAMoqH,YAAew7M,GAAkB9yT,EAAK9S,MAAM2nyB,aACnHz/N,EAAKlokB,MAAMo+d,KAAOvke,KAAK6gxB,QAAQ5nwB,KAE9B8yT,GAAkB9yT,EAAK9S,MAAMqhQ,QAAS,CACvC,IAAIA,EAAS,IAAI85iB,IACb3ld,EAAc1iV,EAAK9S,MAAMqhQ,OAAOhpP,MAEhCA,EAAUutT,GAAkB4vB,IAAuC,kBAAhBA,OAAoDt4V,EAAT,IAAds4V,EAEhFllO,EAAQ,IAAIi+oB,IAAS,IAAK,IAAK,KACnC,IAAK3oc,GAAkB9yT,EAAK9S,MAAMqhQ,OAAO/wI,OAAQ,CAC7C,IAAI8ssB,EAAcvj0B,KAAKikjB,SAAShriB,EAAK9S,MAAMqhQ,OAAO/wI,OAClDA,EAAQ,IAAIi+oB,IAAS6uD,EAAYjgtB,EAAGigtB,EAAYhgtB,EAAGggtB,EAAYrtzB,EACnE,CACA,IAAI8hwB,EAAM,IAAIlB,IAAOrgpB,EAAOj4G,GAEvButT,GAAkB9yT,EAAK9S,MAAMqhQ,OAAOg6iB,aACrCxpC,EAAIwpC,UAAYxhzB,KAAKwi0B,aAAavpzB,EAAK9S,MAAMqhQ,OAAOg6iB,YAExDh6iB,EAAOz3O,IAAMiovB,EACb3pM,EAAKlokB,MAAM07tB,QAAUr6d,CACzB,CACKukE,GAAkB9yT,EAAK9S,MAAMi1wB,mBAC9B/sM,EAAKlokB,MAAM26wB,aAAe,IAAIzI,IAC9BhqM,EAAKlokB,MAAM26wB,aAAa1F,gBAAkBniwB,EAAK9S,MAAMi1wB,gBAE7D,EASAoiD,EAAU7szB,UAAU+vzB,uBAAyB,SAAUl8V,EAAWn/c,GAI9D,YAHehiB,IAAXgiB,IACAA,EAAS,IAAIgzvB,KAET7zS,GACJ,IAAK,QACDn/c,EAAO22P,UAAY4yf,IAAiBlnnB,MACpC,MACJ,IAAK,SACDriI,EAAO22P,UAAY4yf,IAAiBk8B,OACpC,MACJ,IAAK,UACDzlxB,EAAO22P,UAAY4yf,IAAiB+9B,QACpC,MACJ,IAAK,OACDtnxB,EAAO22P,UAAY4yf,IAAiBpnnB,KAG5C,OAAOniI,CACX,EAUAm4yB,EAAU7szB,UAAUgwzB,qBAAuB,SAAUvuP,EAAe/sjB,EAAQm/c,GAKxE,YAJenhe,IAAXgiB,IACAA,EAAS,IAAIgzvB,IACbhzvB,EAASrlB,KAAK0g0B,uBAAuBl8V,EAAWn/c,IAE5C+sjB,GACJ,IAAK,SACD/sjB,EAAO0lxB,cAAgBp8B,IAAqBs8B,OAC5C,MACJ,IAAK,SACD5lxB,EAAO0lxB,cAAgBp8B,IAAqBq8B,OAC5C,MACJ,IAAK,MACD3lxB,EAAO0lxB,cAAgBp8B,IAAqBiK,IAGpD,OAAOvzvB,CACX,EACAm4yB,EAAU7szB,UAAUsuzB,cAAgB,SAAUz8W,GAC1C,OAAQA,GACJ,IAAK,aACD,OAAO,EACX,IAAK,UACD,OAAO,EACX,IAAK,SACD,OAAO,EACX,IAAK,eACD,OAAO,EACX,QACI,OAAO,EAEnB,EAEAg7W,EAAU7szB,UAAUkwwB,QAAU,SAAU9rwB,GACpC,GAAIA,EAAQwvd,KACR,OAAOxvd,EAAQwvd,KAEnB,IAAItlL,EAAa8sB,GAAkBh3T,EAAQ5O,MAAM84S,UAA+C,KAAR,IAAzBlqS,EAAQ5O,MAAM84S,SACzEujK,EAAez2I,GAAkBh3T,EAAQ5O,MAAMq8c,YACEgtT,IAAcitC,WAA9Dz8yB,KAAKi/zB,cAAclqzB,EAAQ5O,MAAMq8c,YAClCg0H,EAAY+4L,IAAa8N,QAa7B,OAZKtxc,GAAkBh3T,EAAQ5O,MAAMiqH,OAASr7G,EAAQ5O,MAAMiqH,OACxDomd,GAAa+4L,IAAat1Z,OAEzBluC,GAAkBh3T,EAAQ5O,MAAMmqH,SAAWv7G,EAAQ5O,MAAMmqH,SAC1Dkmd,GAAa+4L,IAAa5nZ,SAEzB57C,GAAkBh3T,EAAQ5O,MAAMoqH,YAAcx7G,EAAQ5O,MAAMoqH,YAC7Dimd,GAAa+4L,IAAa73Y,YAEzB3rD,GAAkBh3T,EAAQ5O,MAAM2nyB,YAAc/4xB,EAAQ5O,MAAM2nyB,YAC7Dt3N,GAAa+4L,IAAa+N,WAEvB,IAAI2iC,IAAgBz9V,EAAYvjK,EAAUu3R,EACrD,EACAgnP,EAAU7szB,UAAUyxzB,mBAAqB,SAAUC,GAC/C,OAAQA,GACJ,IAAK,aACD,OAAO,EACX,IAAK,aACD,OAAO,EACX,IAAK,aACD,OAAO,EACX,IAAK,aACD,OAAO,EACX,QACI,OAAO,EAEnB,EACA7E,EAAU7szB,UAAUmxzB,iBAAmB,SAAU/szB,EAASsQ,GACtD,IAAK0mT,GAAkBh3T,EAAQsB,MAAO,CAClC,IAAImI,EAA6B,IAArBzJ,EAAQsB,KAAKmI,MACrBoqI,EAA+B,IAAtB7zI,EAAQsB,KAAKuyI,OAE1B,GADAvjI,EAAS,IAAIgzvB,IAAgBzJ,IAAiBpnnB,KAAMmnnB,IAAqBq8B,SACpEj/d,GAAkBh3T,EAAQ5O,MAAMw7tB,QACjC,OAAQ5stB,EAAQ5O,MAAMw7tB,QAClB,IAAK,QACDt8sB,EAAO22P,UAAY4yf,IAAiBlnnB,MACpC,MACJ,IAAK,SACDriI,EAAO22P,UAAY4yf,IAAiBk8B,OACpC,MACJ,IAAK,UACDzlxB,EAAO22P,UAAY4yf,IAAiB+9B,QACpC,MACJ,QACItnxB,EAAO22P,UAAY4yf,IAAiBpnnB,KAMhD,OAHKukL,GAAkBh3T,EAAQ5O,MAAMy7tB,UACjCv8sB,EAASrlB,KAAK2g0B,qBAAqB5rzB,EAAQ5O,MAAMy7tB,OAAQv8sB,IAEtD,CAAEA,OAAQA,EAAQhP,KAAM,IAAIm2vB,IAAMhuvB,EAAOoqI,GACpD,CACA,OAAO,IACX,EACA40qB,EAAU7szB,UAAU0tzB,YAAc,SAAUtoZ,GACxC,OAAQA,GACJ,IAAK,SACD,OAAO,IAAIy2V,IAAM,IAAK,KAC1B,IAAK,OACD,OAAO,IAAIA,IAAM,IAAK,KAC1B,IAAK,QACD,OAAO,IAAIA,IAAM,IAAK,MAC1B,IAAK,KACD,OAAO,IAAIA,IAAM,KAAM,MAC3B,IAAK,KACD,OAAO,IAAIA,IAAM,KAAM,MAC3B,IAAK,KACD,OAAO,IAAIA,IAAM,KAAM,MAC3B,IAAK,KACD,OAAO,IAAIA,IAAM,IAAK,MAC1B,IAAK,KACD,OAAO,IAAIA,IAAM,IAAK,KAC1B,IAAK,KACD,OAAO,IAAIA,IAAM,IAAK,KAC1B,IAAK,KACD,OAAO,IAAIA,IAAM,IAAK,KAC1B,IAAK,KACD,OAAO,IAAIA,IAAM,IAAK,KAC1B,IAAK,KACD,OAAO,IAAIA,IAAM,IAAK,KAG1B,IAAK,KACD,OAAO,IAAIA,IAAM,KAAM,MAC3B,IAAK,KACD,OAAO,IAAIA,IAAM,KAAM,MAC3B,IAAK,KACD,OAAO,IAAIA,IAAM,KAAM,MAC3B,IAAK,KACD,OAAO,IAAIA,IAAM,KAAM,MAC3B,IAAK,KACD,OAAO,IAAIA,IAAM,IAAK,MAC1B,IAAK,KACD,OAAO,IAAIA,IAAM,IAAK,KAC1B,IAAK,QACD,OAAO,IAAIA,IAAM,IAAK,KAC1B,IAAK,QACD,OAAO,IAAIA,IAAM,IAAK,MAC1B,IAAK,QACD,OAAO,IAAIA,IAAM,KAAM,MAC3B,IAAK,QACD,OAAO,IAAIA,IAAM,KAAM,MAC3B,IAAK,QACD,OAAO,IAAIA,IAAM,KAAM,MAC3B,IAAK,OACD,OAAO,IAAIA,IAAM,IAAK,KAC1B,IAAK,aACD,OAAO,IAAIA,IAAM,IAAK,KAC1B,IAAK,cACD,OAAO,IAAIA,IAAM,IAAK,MAC1B,IAAK,SACD,OAAO,IAAIA,IAAM,KAAM,KAC3B,QACI,OAAO,IAAIA,IAAM,IAAK,KAElC,EACAgxD,EAAU7szB,UAAU6xzB,aAAe,SAAUhhB,GACzC,OAAQA,GACJ,IAAK,OACD,OAAO,EACX,IAAK,MACD,OAAO,EACX,IAAK,UACD,OAAO,EACX,IAAK,aACD,OAAO,EACX,QACI,OAAO,EAEnB,EACAgc,EAAU7szB,UAAU2xzB,kBAAoB,SAAUvtzB,GAC9C,IAAIijwB,EAAM,IAAIlB,IAAO,IAAIpC,IAAS,EAAG,EAAG,IACxC,IAAK3oc,GAAkBh3T,EAAQ5O,QAA4B,OAAlB4O,EAAQ5O,QAAmB4lU,GAAkBh3T,EAAQ5O,MAAM07zB,UAAW,CAC3G,IAAIA,EAAW7h0B,KAAKikjB,SAASlviB,EAAQ5O,MAAM07zB,UAC3C7pD,EAAM,IAAIlB,IAAO,IAAIpC,IAASmtD,EAASv+sB,EAAGu+sB,EAASt+sB,EAAGs+sB,EAAS3rzB,GACnE,CACA,OAAO8hwB,CACX,EACAwlD,EAAU7szB,UAAUgxzB,oBAAsB,SAAU5szB,GAChD,IAAI2hwB,EAAQ,KACZ,IAAK3qc,GAAkBh3T,EAAQ5O,MAAM67zB,gBAAiB,CAElD,IAAIC,EAAaji0B,KAAKikjB,SAASlviB,EAAQ5O,MAAM67zB,gBAC7CtrD,EAAQ,IAAIH,IAAc,IAAI7B,IAASutD,EAAW3+sB,EAAG2+sB,EAAW1+sB,EAAG0+sB,EAAW/rzB,GAClF,CACA,OAAOwgwB,CACX,EACA8mD,EAAU7szB,UAAUsziB,SAAW,SAAU3iW,GACrC,GAAY,OAARA,GAAwB,KAARA,GAA6B,IAAfA,EAAIl+M,OAClC,MAAM,IAAI2pB,MAAM,2CAEpBu0L,EAAMA,EAAIp6L,UAAU,GACpB,IAAI8jH,EAASz+G,SAAS+0L,EAAK,IAI3B,MAAO,CAAEh+F,EAHA0nB,GAAU,GAAM,IAGVznB,EAFNynB,GAAU,EAAK,IAEH90H,EADJ,IAAT80H,EAEZ,EACAwyrB,EAAU7szB,UAAUuuzB,aAAe,SAAUhyZ,GACzC,IAAIspK,EAAY+4L,IAAa8N,QAa7B,OAZKtxc,GAAkBmhG,IAAUA,EAAM98S,OACnComd,GAAa+4L,IAAat1Z,OAEzBluC,GAAkBmhG,IAAUA,EAAM58S,SACnCkmd,GAAa+4L,IAAa5nZ,SAEzB57C,GAAkBmhG,IAAUA,EAAM38S,YACnCimd,GAAa+4L,IAAa73Y,YAEzB3rD,GAAkBmhG,IAAUA,EAAM4gY,YACnCt3N,GAAa+4L,IAAa+N,WAEvB9mM,CACX,EACAgnP,EAAU7szB,UAAU0uzB,eAAiB,SAAU73jB,GAC3C,IAAIq6d,EAAU,IAAIy/E,IAClB,GAAKv1e,GAAkBvkE,GAkBnBq6d,EAAQ9xsB,IAAM,IAAI+mvB,IAAO,IAAIpC,IAAS,IAAK,IAAK,UAlBpB,CAC5B,IAAI/4a,EAAcn0F,EAAOhpP,MAErBA,EAAUutT,GAAkB4vB,IAAuC,kBAAhBA,OAAiDt4V,EAAP,IAAds4V,EAE/EllO,EAAQ,IAAIi+oB,IAAS,IAAK,IAAK,KACnC,IAAK3oc,GAAkBvkE,EAAO/wI,OAAQ,CAClC,IAAI8ssB,EAAcvj0B,KAAKikjB,SAASz8S,EAAO/wI,OACvCA,EAAQ,IAAIi+oB,IAAS6uD,EAAYjgtB,EAAGigtB,EAAYhgtB,EAAGggtB,EAAYrtzB,EACnE,CACA,IAAI8hwB,EAAM,IAAIlB,IAAOrgpB,EAAOj4G,GAEvButT,GAAkBvkE,EAAOg6iB,aAC1BxpC,EAAIwpC,UAAYxhzB,KAAKwi0B,aAAah7jB,EAAOg6iB,YAE7C3/E,EAAQ9xsB,IAAMiovB,CAClB,CAIA,OAAOn2C,CACX,EACA27F,EAAU7szB,UAAUymI,QAAU,WAC1B,EAEGomrB,CACX,CAh7C+B,GCTpBgG,IAAY,CACnB90oB,OAAQ,IAAMkub,IACd7nmB,QAAS,IAAM6nmB,IACfmT,KAAM,iBACN0zM,UAAW,qBACXC,SAAU,SACVC,MAAO,eACP1vrB,OAAQ,WACRoqV,KAAM,SACNv9Y,OAAQ,WACR1yD,KAAM,SACN4wvB,IAAK,cACL1gsB,MAAO,eACPslvB,QAAS,iBACTjmF,IAAK,cACLkmF,MAAO,gBACPC,MAAO,eACPC,MAAO,cACP/vB,MAAO,cACPgwB,MAAO,cACPC,UAAW,mBACXC,WAAY,oBACZvrU,YAAa,kBACbwrU,SAAU,eAKVhnH,IAA6B,WAC7B,SAASA,EAAYh1qB,EAAQ89d,GACzBjmgB,KAAKok0B,aAAe,CAAC,EACrBpk0B,KAAK+vtB,aAAe,GACpB/vtB,KAAKslrB,YAAc,GACnBtlrB,KAAKo1d,WAAap1d,KAAKqk0B,eACvBrk0B,KAAKmoC,OAASA,EACdnoC,KAAKyutB,OAAStmrB,EAAOhzB,QAAQghB,GAC7Bn2B,KAAKimgB,eAAiBA,EACtBjmgB,KAAKs7B,kBACT,CAsiBA,OAjiBA6hrB,EAAYxssB,UAAU2qB,iBAAmB,WACjCt7B,KAAKmoC,OAAOgwP,cAGhBn4R,KAAKmoC,OAAO5uB,GAAG6hH,IAAiBp7H,KAAKsk0B,sBAAuBtk0B,MAC5DA,KAAKmoC,OAAO5uB,GAAG6hH,IAAoBp7H,KAAKoa,OAAQpa,MAChDA,KAAKmoC,OAAO5uB,GAAG6hH,IAAgBp7H,KAAKo3I,QAASp3I,MACjD,EAKAm9sB,EAAYxssB,UAAUyqB,oBAAsB,WACpCp7B,KAAKmoC,OAAOgwP,cAGhBn4R,KAAKmoC,OAAO3uB,IAAI4hH,IAAoBp7H,KAAKoa,QACzCpa,KAAKmoC,OAAO3uB,IAAI4hH,IAAiBp7H,KAAKsk0B,uBACtCtk0B,KAAKmoC,OAAO3uB,IAAI4hH,IAAgBp7H,KAAKo3I,SACrCyhG,GAAa1lN,OAAOnzB,KAAKmV,QAAS,UAAWnV,KAAKo4d,eAAev4d,KAAKG,OAC1E,EACAm9sB,EAAYxssB,UAAUynd,eAAiB,SAAU/3d,GAC9B,QAAXA,EAAEqsB,MAA8B,IAAZrsB,EAAEg4B,OACtBr4B,KAAKuk0B,YAAY/orB,QAEN,WAAXn7I,EAAEqsB,OACF1sB,KAAKuk0B,YAAY/orB,QACjBx7I,KAAKmoC,OAAOkxK,OAAOj+E,IAAqB,CAAC,GAEjD,EACA+hlB,EAAYxssB,UAAUyJ,OAAS,WAC3Bpa,KAAKmoC,OAAOhzB,QAAQ+yQ,UAAU90P,IAAI,cAClCpzB,KAAK+zZ,KAAO/zZ,KAAKimgB,eAAe3B,WAAW,gBAC3CtkgB,KAAKmV,QAAUnV,KAAKmoC,OAAOrnC,cAAc,KAAM,CAAEq1B,GAAIn2B,KAAKyutB,OAAS,WACnE51e,GAAazlN,IAAIpzB,KAAKmV,QAAS,UAAWnV,KAAKo4d,eAAev4d,KAAKG,OACnEA,KAAKmoC,OAAOhzB,QAAQuc,YAAY1xB,KAAKmV,SACrC,IAAI9M,EAAS,IAAMrI,KAAKyutB,OACxBzutB,KAAKuk0B,YAAc,IAAIz8qB,IAAK,CACxBhgG,MAAO9nD,KAAKwk0B,eACZnse,UAAWr4V,KAAKmoC,OAAOkwT,UACvBM,kBAAmB34V,KAAKmoC,OAAOwwT,kBAC/B54V,OAAQC,KAAKmoC,OAAOpoC,OACpBsI,OAAQA,EACRmiV,OAAQxqV,KAAKyk0B,qBAAqB5k0B,KAAKG,MACvCgnI,WAAYhnI,KAAK0k0B,sBAAsB7k0B,KAAKG,MAC5C8jjB,OAAQ9jjB,KAAK2k0B,gBAAgB9k0B,KAAKG,MAClCkuR,QAASluR,KAAK4k0B,mBAAmB/k0B,KAAKG,MACtC4vW,SAAU5vW,KAAKmoC,OAAOynU,SAAW,eAAsB5vW,KAAKmoC,OAAOynU,SAAW,gBAElF5vW,KAAKuk0B,YAAY7re,SAAS14V,KAAKmV,QACnC,EACAgosB,EAAYxssB,UAAU2zzB,sBAAwB,SAAUjk0B,GAChDA,EAAE2W,SAAWhX,KAAK+sV,iBAAmB1sV,EAAEswZ,SACnC3wZ,KAAKuk0B,cACLvk0B,KAAKuk0B,YAAYntrB,UACjBjkH,GAAOnzB,KAAKmV,SACZnV,KAAKmoC,OAAOhzB,QAAQ+yQ,UAAU/0P,OAAO,eAEzCnzB,KAAKoa,SAEb,EACA+isB,EAAYxssB,UAAU6zzB,aAAe,WAGjC,IAFA,IAAIK,EAAY,GACZC,EAAc,GACTx1zB,EAAK,EAAGgmC,EAAKt1C,KAAKmoC,OAAO4tnB,iBAAkBzmpB,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CACtE,IAAIimB,EAAO+f,EAAGhmC,GACM,kBAATimB,IAA+D,IAA1Cv1B,KAAK+k0B,kBAAkBp6zB,QAAQ4qB,IACP,IAAhDA,EAAK8wE,oBAAoB17F,QAAQ,UACjCm6zB,EAAY14zB,KAAKpM,KAAKgl0B,kBAAkBzvyB,IAGxCsvyB,EAAUz4zB,KAAKpM,KAAKgl0B,kBAAkBzvyB,IAGrB,kBAATA,GACZsvyB,EAAUz4zB,KAAKmpB,EAEvB,CACA,GAAIuvyB,EAAY1h0B,OAAS,EAAG,CACxB,IAAI6h0B,EAAcjl0B,KAAKgl0B,kBAAkB,UACzCC,EAAYn9wB,MAAQg9wB,EACpBD,EAAUz4zB,KAAK64zB,EACnB,CACA,OAAOJ,CACX,EACA1nH,EAAYxssB,UAAUu0zB,YAAc,WAChC,IAAIC,EAAYvh0B,KAAKiG,MAAM7J,KAAKmoC,OAAO+okB,aAAa2pB,kBAAoB76nB,KAAKmoC,OAAO+okB,aAAan7L,UAIjG,OAHI/1a,KAAKmoC,OAAO+okB,aAAa2pB,kBAAoB76nB,KAAKmoC,OAAO+okB,aAAan7L,WACtEovZ,GAAa,GAEVA,CACX,EACAhoH,EAAYxssB,UAAUg0zB,gBAAkB,WACpC3k0B,KAAKosR,QAAS,CAClB,EAMA+wb,EAAYxssB,UAAU8zzB,qBAAuB,SAAUxrzB,GAEnD,OADWjZ,KAAKol0B,aAAanszB,EAAKsc,KAAKY,KAEnC,IAAK,aACDn2B,KAAKmoC,OAAOimoB,eAAe,IAC3B,MACJ,IAAK,UACDpuqB,KAAKmoC,OAAOimoB,eAAepuqB,KAAKql0B,aAAajmtB,OAC7C,MACJ,IAAK,QACDp/G,KAAKmoC,OAAOuqoB,YAAY1yqB,KAAKql0B,aAAajmtB,OAC1C,MACJ,IAAK,UACDp/G,KAAKmoC,OAAO6qoB,cAAchzqB,KAAKql0B,aAAajmtB,OAC5C,MACJ,IAAK,OACGp/G,KAAKmoC,OAAOigmB,aAC0B,UAAlCpooB,KAAKmoC,OAAOqnlB,aAAaj/jB,KACrBvwD,KAAK6sZ,KAAO7sZ,KAAKqukB,OAASxskB,MAAM0qB,SAASvsB,KAAKqukB,KAAK/7iB,aAAasqlB,KAAwB,MACxF58mB,KAAKmoC,OAAOigmB,WAAW2kC,SAASxgpB,SAASvsB,KAAK6sZ,IAAIv6X,aAAasqlB,KAAwB,IAEvF58mB,KAAKmoC,OAAOookB,aAAahklB,SAASvsB,KAAKqukB,KAAK/7iB,aAAasqlB,KAAwB,KAAKx9f,QAI1Fp/G,KAAKmoC,OAAOigmB,WAAWr0B,UACvB/zmB,KAAKmoC,OAAOigmB,WAAW0kC,UAAU9sqB,KAAK6sZ,OAG9C,MACJ,IAAK,SACG7sZ,KAAKmoC,OAAOigmB,aAC0B,UAAlCpooB,KAAKmoC,OAAOqnlB,aAAaj/jB,MACzBvwD,KAAKmoC,OAAOigmB,WAAWr0B,UAEqB,IAA5C/zmB,KAAKmoC,OAAO0wmB,qBAAqBz1oB,OACjCpD,KAAKmoC,OAAOigmB,WAAW36D,UAAUztkB,KAAK6sZ,KAGtC7sZ,KAAKmoC,OAAOs5Y,gBAGpB,MACJ,IAAK,OACGzhb,KAAKmoC,OAAOigmB,YACZpooB,KAAKmoC,OAAOigmB,WAAWr0B,UAE3B,MACJ,IAAK,SACG/zmB,KAAKmoC,OAAOigmB,YACZpooB,KAAKmoC,OAAOigmB,WAAWslB,YAE3B,MACJ,IAAK,OACD1tpB,KAAKmoC,OAAO/Z,OACZ,MACJ,IAAK,YACDpuB,KAAKmoC,OAAOmqoB,YACZ,MACJ,IAAK,cACDtyqB,KAAKmoC,OAAO4poB,cACZ,MACJ,IAAK,YACD/xqB,KAAKmoC,OAAOkqoB,YACZ,MACJ,IAAK,gBACDryqB,KAAKosR,QAAS,EACdpsR,KAAKmoC,OAAOs6lB,WAAWzioB,KAAKql0B,aAAajmtB,MAAO,aAChD,MACJ,IAAK,iBACDp/G,KAAKosR,QAAS,EACdpsR,KAAKmoC,OAAOs6lB,WAAWzioB,KAAKql0B,aAAajmtB,MAAO,cAChD,MACJ,IAAK,YACDp/G,KAAKmoC,OAAO4joB,SAAS,GACrB,MACJ,IAAK,WACD/rqB,KAAKmoC,OAAO4joB,SAAS/rqB,KAAKmoC,OAAO+okB,aAAaC,YAAc,GAC5D,MACJ,IAAK,WACDnxmB,KAAKmoC,OAAO4joB,SAAS/rqB,KAAKkl0B,eAC1B,MACJ,IAAK,WACDll0B,KAAKmoC,OAAO4joB,SAAS/rqB,KAAKmoC,OAAO+okB,aAAaC,YAAc,GAGpEl4lB,EAAK+8G,OAASh2H,KAAKql0B,aACnBpszB,EAAKqszB,QAAUtl0B,KAAKul0B,cACpBvl0B,KAAKmoC,OAAOm4P,Q/OyDU,mB+OzDuBrnR,EACjD,EACAkksB,EAAYxssB,UAAUi0zB,mBAAqB,SAAU3rzB,GAE7CA,EAAK6uC,MAAM1kD,OAAS,GAAK6V,EAAK6uC,MAAM,GAAc,qBAAaggG,KAC/D9nJ,KAAKwl0B,mBAETxl0B,KAAKmoC,OAAOkxK,OAAOj+E,IAA+B,CAAEgxJ,QAAQ,GAChE,EACA+wb,EAAYxssB,UAAU80zB,cAAgB,SAAUlwyB,GAC5C,OAAOv1B,KAAK+zZ,KAAKhuD,YAAY/lW,KAAKo1d,WAAW,GAAK7/b,GACtD,EACA4nrB,EAAYxssB,UAAU60zB,iBAAmB,WACrCxl0B,KAAKuk0B,YAAY5nH,UAAU38sB,KAAKslrB,aAChCtlrB,KAAKuk0B,YAAYlwT,YAAYr0gB,KAAK+vtB,cAClC/vtB,KAAKslrB,YAAc,GACnBtlrB,KAAK+vtB,aAAe,GACpB/vtB,KAAKosR,QAAS,CAClB,EACA+wb,EAAYxssB,UAAU+zzB,sBAAwB,SAAUzrzB,GACpD,IAAIyszB,EAAcjwuB,GAAQx8E,EAAK8d,MAAM1uB,OAAQ,WAC7C,GAAI4Q,EAAK8d,OAAS2uyB,GAAeA,IAAgB1l0B,KAAKmoC,OAAOhzB,QACzD8D,EAAK6nE,QAAS,OAEb,GAAI7nE,EAAK8d,QAAU0+D,GAAQx8E,EAAK8d,MAAM1uB,OAAQ,IAAMm7zB,IAAU7qU,cAC5Dlja,GAAQx8E,EAAK8d,MAAM1uB,OAAQ,IAAMm7zB,IAAUW,WAC9C1uuB,GAAQx8E,EAAK8d,MAAM1uB,OAAQ,mBAC3BotF,GAAQx8E,EAAK8d,MAAM1uB,OAAQ,oBAC3BotF,GAAQx8E,EAAK8d,MAAM1uB,OAAQ,qBAC3B4Q,EAAK6nE,QAAS,MAEb,CACD9gF,KAAKql0B,aAAerl0B,KAAKkrzB,UAAUjyyB,EAAK8d,OACpC2xkB,IAAazvlB,EAAK8d,MAAM1uB,OAAQ,YAChCrI,KAAKul0B,cAAgBvl0B,KAAKmoC,OAAO4/nB,WAAW9upB,EAAK8d,MAAM1uB,SAEtD0jU,GAAkB9yT,EAAKmrqB,aAAgBpkrB,KAAKql0B,cACzCrl0B,KAAKul0B,cAAcl3P,OACnBrukB,KAAKmoC,OAAOkxK,OAAOj+E,IAA+B,CAAEgxJ,QAAQ,IAC5DpsR,KAAKm4oB,UAAUl/nB,EAAK8d,OAAQ/2B,KAAKul0B,cAAcl3P,KAAKnmT,UAAUh1P,SAAS,0BACzB,aAAvClzB,KAAKmoC,OAAOozkB,kBAAkB3umB,OAK7C,IAFA,IAAI+4zB,EAAe,GACfC,EAAe,GACVt2zB,EAAK,EAAGgmC,EAAKr8B,EAAK6uC,MAAOx4C,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CACpD,IAAIimB,EAAO+f,EAAGhmC,GACVhD,EAAMtM,KAAKol0B,aAAa7vyB,EAAKY,IAC7B0vyB,EAAQ7l0B,KAAKok0B,aAAa,GAAK93zB,GACnC,IAA6C,IAAzCtM,KAAK+k0B,kBAAkBp6zB,QAAQ2B,GAI/B,GAHItM,KAAK8l0B,qBAAqBx5zB,IAC1BtM,KAAK+vtB,aAAa3jtB,KAAKmpB,EAAK0K,MAE5BhnB,EAAK8d,QAAU/2B,KAAK+l0B,aAAa9szB,EAAK8d,MAAM1uB,OAAQm7zB,IAAUzzM,OAC9D/vnB,KAAK+l0B,aAAa9szB,EAAK8d,MAAM1uB,OAAQm7zB,IAAUC,YACnC,SAARn3zB,GAA0B,WAARA,GAClBtM,KAAKslrB,YAAYl5qB,KAAKmpB,EAAK0K,UAG9B,IAAIjgC,KAAKmoC,OAAOigmB,YAAgD,UAAlCpooB,KAAKmoC,OAAOqnlB,aAAaj/jB,OACtDklC,GAAQx8E,EAAK8d,MAAM1uB,OAAQ,gBACzBrI,KAAKmoC,OAAOigmB,WAAWvY,kBAAkBjT,KAAyBx5mB,QAClEpD,KAAKmoC,OAAOigmB,WAAWvY,kBAAkBjT,KAAuBx5mB,QAChEpD,KAAKmoC,OAAOigmB,WAAWvY,kBAAkBjT,KAAyBx5mB,UAAoB,SAARkJ,GAA0B,WAARA,GACpG,SAEKy/T,GAAkB9yT,EAAKmrqB,aAAenrqB,EAAK8d,QAC5C/2B,KAAK+l0B,aAAa9szB,EAAK8d,MAAM1uB,OAAQw9zB,EAAMx9zB,SAC/CrI,KAAKslrB,YAAYl5qB,KAAKmpB,EAAK0K,KAC/B,MAEK1K,EAAKltB,QAAU4Q,EAAK8d,QACxB/2B,KAAK+l0B,aAAa9szB,EAAK8d,MAAM1uB,OAAQktB,EAAKltB,QACvCktB,EAAK4yD,UACLw9uB,EAAav5zB,KAAKmpB,EAAKY,IAGvBn2B,KAAKslrB,YAAYl5qB,KAAKmpB,EAAK0K,MAG1BjgC,KAAK+l0B,aAAa9szB,EAAK8d,MAAM1uB,OAAQktB,EAAKltB,SAAWktB,EAAK4yD,WAC/Dy9uB,EAAax5zB,KAAKmpB,EAAKY,GAE/B,CACIyvyB,EAAaxi0B,OAAS,GACtBpD,KAAKuk0B,YAAY5nH,UAAUipH,GAAc,GAE7C5l0B,KAAKuk0B,YAAYlwT,YAAYr0gB,KAAK+vtB,cAAc,GAChD/vtB,KAAKuk0B,YAAY1nH,UAAU78sB,KAAKslrB,aAC5BqgJ,EAAavi0B,OAAS,GACtBpD,KAAKuk0B,YAAY1nH,UAAU8oH,GAAc,GAE7C3l0B,KAAK4kV,UAAY3rU,EAAK8d,MACtB9d,EAAK+8G,OAASh2H,KAAKql0B,aACnBpszB,EAAKqszB,QAAUtl0B,KAAKul0B,cACpBvl0B,KAAKmoC,OAAOm4P,Q/OhCK,kB+OgC2BrnR,IACxCA,EAAK6nE,QAAW9gF,KAAKslrB,YAAYlirB,SAAW6V,EAAK6uC,MAAM1kD,SAAW6V,EAAKmrqB,cACvEpkrB,KAAKwl0B,mBACLvszB,EAAK6nE,QAAS,EAEtB,CACA0ylB,IAAiBxzqB,KAAKmoC,OAAOhzB,QAASnV,KAAKuk0B,YAAYpvzB,QAAQ0gR,cACnE,EACAsnb,EAAYxssB,UAAUo1zB,aAAe,SAAU/8hB,EAAez4R,GAC1D,IAAIlI,EAAS2gS,EAUb,OALI3gS,GAJArI,KAAKgm0B,mBAAmBh9hB,IAAmBz4R,IAAaizzB,IAAU90oB,QAAUn+K,IAAaizzB,IAAUzuzB,QAG9FxE,IAAaizzB,IAAUzuzB,SAAWxE,IAAaizzB,IAAU90oB,OACrDg6a,IAAajzgB,GAAQuzM,EAAe,IAAM4zU,KAAiBrsmB,EAAS4nC,OAAO,EAAG5nC,EAASnN,SAGvFqyF,GAAQuzM,EAAez4R,GANvBklF,GAAQuzM,EAAez4R,IAAaizzB,IAAU90oB,OAAS,QAAUkub,OAQ7DlU,IAAargmB,EAAQ,YAAcrI,KAAKmoC,OAAOhzB,OACpE,EACAgosB,EAAYxssB,UAAUq1zB,mBAAqB,SAAUh9hB,GACjD,SAAQhpS,KAAKmoC,OAAOiukB,iBAAkBp2mB,KAAKmoC,OAAOo+kB,aAC3C9whB,GAAQuzM,EAAew6hB,IAAU90oB,QAC5C,EACAyuhB,EAAYxssB,UAAUm1zB,qBAAuB,SAAUvwyB,GACnD,IAAIkhH,GAAS,EACb,OAAQlhH,GACJ,IAAK,aACL,IAAK,UACDkhH,IAAWz2I,KAAKmoC,OAAOmgf,qBAAqBusM,OAAY70tB,KAAKmoC,OAAO0xkB,SAC5D75mB,KAAKql0B,eAAiBrl0B,KAAKql0B,aAAajmtB,OAAkB,YAAT7pF,EACzD,MACJ,IAAK,UACIv1B,KAAKmoC,OAAOspkB,eAAkBzxmB,KAAKmoC,OAAOmgf,qBAAqB3pO,MAAU3+S,KAAKql0B,cAC5Erl0B,KAAKmoC,OAAOupkB,cAAcvke,QAAQxiI,QAAQ3K,KAAKql0B,aAAajmtB,QAAU,GACxEp/G,KAAKql0B,eAAiBrl0B,KAAKql0B,aAAajmtB,SACzCq3B,GAAS,GAEb,MACJ,IAAK,YACIz2I,KAAKmoC,OAAOspkB,gBAAkBzxmB,KAAKmoC,OAAOmgf,qBAAqB3pO,MAC5D3+S,KAAKmoC,OAAOmgf,qBAAqB3pO,MAAU3+S,KAAKql0B,cAC7Crl0B,KAAKmoC,OAAOupkB,cAAcvke,QAAQxiI,QAAQ3K,KAAKql0B,aAAajmtB,OAAS,KAC5Eq3B,GAAS,GAEb,MACJ,IAAK,OACL,IAAK,SACL,IAAK,OACL,IAAK,SACIz2I,KAAKmoC,OAAOigmB,YAAoD,IAArCpooB,KAAKmoC,OAAOqklB,cAAcppnB,SACtDqzI,GAAS,GAEb,MACJ,IAAK,QACmD,IAA/Cz2I,KAAKmoC,OAAO8xkB,wBAAwB72mB,QAAmE,IAAnDpD,KAAKmoC,OAAOghnB,4BAA4B/lpB,QAC9C,IAA/CpD,KAAKmoC,OAAO2ylB,wBAAwB13nB,UACpCqzI,GAAS,GAEb,MACJ,IAAK,SACKz2I,KAAKmoC,OAAOutnB,kBAAqB11pB,KAAKmoC,OAAO4poB,cAC9C/xqB,KAAKmoC,OAAOmgf,qBAAqBk1S,MAAex9zB,KAAKmoC,OAAOmgf,qBAAqBmmO,QAClFh4mB,GAAS,GAEb,MACJ,IAAK,YACKz2I,KAAKmoC,OAAOwtnB,gBAAoB31pB,KAAKmoC,OAAOmgf,qBAAqBk1S,OACnE/mrB,GAAS,GAEb,MACJ,IAAK,cACL,IAAK,YACKz2I,KAAKmoC,OAAOutnB,kBAAsB11pB,KAAKmoC,OAAOmgf,qBAAqBmmO,OACrEh4mB,GAAS,GAEb,MACJ,IAAK,gBACL,IAAK,iBACD,IAAMz2I,KAAKmoC,OAAO4pkB,eAAkB/xmB,KAAKmoC,OAAOmgf,qBAAqBt0J,MAChEh0X,KAAKql0B,eAAiBrl0B,KAAKql0B,aAAajmtB,MACzCq3B,GAAS,OAER,GAAIz2I,KAAKmoC,OAAOmgf,qBAAqBt0J,MAASh0X,KAAKmoC,OAAO6pkB,aAAa7ke,QAAQ/pI,OAAS,GAAKpD,KAAKql0B,aAEnG,IADA,IAAItjI,EAAc/hsB,KAAKmoC,OAAO6pkB,aAAa7ke,QAClChhI,EAAI,EAAGA,EAAI41rB,EAAY3+rB,OAAQ+I,IAChC41rB,EAAYx1qB,SAASpgB,EAAE2K,WAAY,KAAKsoG,QAAUp/G,KAAKql0B,aAAajmtB,OACjE2ilB,EAAYx1qB,SAASpgB,EAAE2K,WAAY,KAAKmgG,UAAUv2F,gBAAkB6U,EAAK7U,cAAcrQ,QAAQ,OAAQ,IAAIg2F,sBAC9GowC,GAAS,GAIrB,MACJ,IAAK,YACL,IAAK,aACIz2I,KAAKmoC,OAAO4okB,cAAgB/wmB,KAAKmoC,OAAOmgf,qBAAqBqzK,MACf,IAA/C37rB,KAAKmoC,OAAO2ylB,wBAAwB13nB,QACnCpD,KAAKmoC,OAAOmgf,qBAAqBqzK,MAAkD,IAAzC37rB,KAAKmoC,OAAO+okB,aAAaC,eACpE16d,GAAS,GAEb,MACJ,IAAK,WACL,IAAK,aACIz2I,KAAKmoC,OAAO4okB,cAAgB/wmB,KAAKmoC,OAAOmgf,qBAAqBqzK,MACf,IAA/C37rB,KAAKmoC,OAAO2ylB,wBAAwB13nB,QACnCpD,KAAKmoC,OAAOmgf,qBAAqBqzK,MAAS37rB,KAAKmoC,OAAO+okB,aAAaC,cAAgBnxmB,KAAKkl0B,iBACzFzurB,GAAS,GAIrB,OAAOA,CACX,EAMA0mkB,EAAYxssB,UAAUq0pB,eAAiB,WACnC,OAAOhlqB,KAAKmV,OAChB,EAQAgosB,EAAYxssB,UAAUymI,QAAU,WAC5B,IAAIkggB,EAAct3oB,KAAKmoC,OAAOhzB,QACzBmioB,IAAiBA,EAAY19mB,cAAc,IAAMgjlB,MAAyB06B,EAAY19mB,cAAc,IAAMgjlB,QAG/G58mB,KAAKuk0B,YAAYntrB,UACbp3I,KAAKmV,QAAQqf,YACbrB,GAAOnzB,KAAKmV,SAEhBnV,KAAKo7B,sBACLp7B,KAAKmoC,OAAOhzB,QAAQ+yQ,UAAU/0P,OAAO,cACzC,EACAgqrB,EAAYxssB,UAAUo8U,cAAgB,WAClC,MAAO,aACX,EACAowX,EAAYxssB,UAAUs1zB,WAAa,SAAU1wyB,GACzC,OAAOv1B,KAAKyutB,OAAS,UAAYl5rB,CACrC,EACA4nrB,EAAYxssB,UAAUy0zB,aAAe,SAAUjvyB,GAC3C,OAAOA,EAAG9lB,QAAQrQ,KAAKyutB,OAAS,UAAW,GAC/C,EACAtR,EAAYxssB,UAAUq0zB,kBAAoB,SAAUzvyB,GAChD,IAAI4tS,EACJ,OAAQ5tS,GACJ,IAAK,aACL,IAAK,UACD4tS,EAAW,CAAE96T,OAAQm7zB,IAAU90oB,QAC/B,MACJ,IAAK,QACDy0I,EAAW,CAAE96T,OAAQm7zB,IAAU90oB,OAAQu9P,QAASu3Y,IAAUllvB,OAC1D,MACJ,IAAK,UACD6kP,EAAW,CAAE96T,OAAQm7zB,IAAU90oB,OAAQu9P,QAASu3Y,IAAUI,SAC1D,MACJ,IAAK,OACDzggB,EAAW,CAAE96T,OAAQm7zB,IAAUzuzB,QAASk3a,QAASu3Y,IAAUE,UAC3D,MACJ,IAAK,SACDvggB,EAAW,CAAE96T,OAAQm7zB,IAAUzuzB,QAASk3a,QAASu3Y,IAAUvvrB,QAC3D,MACJ,IAAK,OACDkvL,EAAW,CAAE96T,OAAQm7zB,IAAUzzM,KAAM9jM,QAASu3Y,IAAUnlW,MACxD,MACJ,IAAK,SACDl7J,EAAW,CAAE96T,OAAQm7zB,IAAUzzM,KAAM9jM,QAASu3Y,IAAU1ivB,QACxD,MACJ,IAAK,OACDqiP,EAAW,CAAE96T,OAAQm7zB,IAAUzuzB,QAASk3a,QAASu3Y,IAAUp1yB,MAC3D,MACJ,IAAK,SACD+0S,EAAW,CAAE96T,OAAQm7zB,IAAUzuzB,SAC/B,MACJ,IAAK,YACDouT,EAAW,CAAE96T,OAAQm7zB,IAAUzuzB,QAASk3a,QAASu3Y,IAAUxkD,KAC3D,MACJ,IAAK,cACD77c,EAAW,CAAE96T,OAAQm7zB,IAAUzuzB,QAASk3a,QAASu3Y,IAAUK,OAC3D,MACJ,IAAK,YACD1ggB,EAAW,CAAE96T,OAAQm7zB,IAAUzuzB,QAASk3a,QAASu3Y,IAAU7lF,KAC3D,MACJ,IAAK,gBACDx6a,EAAW,CAAE96T,OAAQm7zB,IAAU90oB,OAAQu9P,QAASu3Y,IAAUS,WAC1D,MACJ,IAAK,iBACD9ggB,EAAW,CAAE96T,OAAQm7zB,IAAU90oB,OAAQu9P,QAASu3Y,IAAUU,YAC1D,MACJ,IAAK,YACD/ggB,EAAW,CAAE96T,OAAQm7zB,IAAUG,MAAO13Y,QAASu3Y,IAAUM,OACzD,MACJ,IAAK,WACD3ggB,EAAW,CAAE96T,OAAQm7zB,IAAUG,MAAO13Y,QAASu3Y,IAAUQ,OACzD,MACJ,IAAK,WACD7ggB,EAAW,CAAE96T,OAAQm7zB,IAAUG,MAAO13Y,QAASu3Y,IAAUxvB,OACzD,MACJ,IAAK,WACD7we,EAAW,CAAE96T,OAAQm7zB,IAAUG,MAAO13Y,QAASu3Y,IAAUO,OAOjE,OAJA/j0B,KAAKok0B,aAAa,GAAK7uyB,GAAQ,CAC3B0K,KAAMjgC,KAAKyl0B,cAAclwyB,GAAOY,GAAIn2B,KAAKim0B,WAAW1wyB,GACpDltB,OAAQ86T,EAAS96T,OAAQ4jb,QAAS9oH,EAAS8oH,QAAU,WAAa9oH,EAAS8oH,QAAU,IAElFjsb,KAAKok0B,aAAa,GAAK7uyB,EAClC,EACA4nrB,EAAYxssB,UAAUo0zB,gBAAkB,WACpC,MAAO,CAAC,aAAc,UAClB,QAAS,UAAW,OAAQ,SAAU,OAAQ,SAAU,OAAQ,SAChE,YAAa,cAAe,YAAa,gBAAiB,iBAC1D,YAAa,WAAY,WAAY,WAC7C,EACA5nH,EAAYxssB,UAAU0zzB,aAAe,WAsBjC,MArBiB,CACb,WAAc,aACd,QAAW,UACX,KAAQ,OACR,MAAS,QACT,QAAW,UACX,KAAQ,aACR,OAAU,eACV,KAAQ,OACR,OAAU,eACV,UAAa,YACb,YAAe,cACf,UAAa,YACb,OAAU,SACV,cAAiB,gBACjB,eAAkB,iBAClB,UAAa,YACb,SAAY,WACZ,SAAY,eACZ,SAAY,WAGpB,EACAlnH,EAAYxssB,UAAUu6yB,UAAY,SAAU7qzB,GACxC,IAAIgukB,EAAO54e,GAAQp1F,EAAEgI,OAAQ,mBAC7B,GAAIgmkB,EAAM,CACN,IAAI12gB,EAAM02gB,EAAKz0iB,cAAc,6CAA6CtH,aAAa,gBACvF,OAAOtyB,KAAKmoC,OAAO8qkB,eAAet7iB,EACtC,CAGI,OADW33D,KAAKmoC,OAAO4/nB,WAAW1nqB,EAAEgI,QAAQ2tH,QAC9B,IAEtB,EACAmnlB,EAAYxssB,UAAUwnoB,UAAY,SAAU93oB,EAAG86mB,GAC3Cn7mB,KAAKqukB,KAAOhukB,EAAEgI,OACdrI,KAAK6sZ,IAAMp3T,GAAQp1F,EAAEgI,OAAQ,aAAerI,KAAK6sZ,IAC7C7sZ,KAAK6sZ,KAAOsuN,IAAiBzS,IAAaromB,EAAEgI,OAAQ,gBACpDrI,KAAKmoC,OAAOgwmB,UAAU5rnB,SAASvsB,KAAK6sZ,IAAIv6X,aAAasqlB,KAAwB,IAErF,EACOugG,CACX,CAjjBiC,GCxC7Bj3pB,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAsBzC8/wB,IAAkC,SAAUp/wB,GAE5C,SAASo/wB,EAAiB9m0B,GACtB,IAAIE,EAAQwnD,EAAOnnD,KAAKK,KAAMZ,IAAUY,KAOxC,OANAV,EAAMixW,kBAAmB,EACzBjxW,EAAM2zW,sBAAuB,EAC7B3zW,EAAM42W,uBAAyB,KAC/B52W,EAAMyzW,cAAgB,KACtBzzW,EAAM62W,iBAAkB,EACxB72W,EAAMwxW,QAAU,GACTxxW,CACX,CAUA,OApBA4mD,IAAUggxB,EAAkBp/wB,GAW5Bo/wB,EAAiBv1zB,UAAUyJ,OAAS,WAChC,KAAMpa,KAAKmV,UAAYnV,KAAKuwW,kBAAqBvwW,KAAK2rV,aAAgB3rV,KAAKwwW,oBAKvE,OAAO13K,GAAAA,cAAoB,MAAO94L,KAAKgyW,uBAAwB,GAAG54V,OAAOpZ,KAAKZ,MAAM0G,SAAU9F,KAAK8wW,UAJnGhqT,EAAOn2C,UAAUyJ,OAAOza,KAAKK,MAC7BA,KAAKuwW,kBAAmB,CAKhC,EACO21d,CACX,CAtBsC,CAsBpCh/hB,KAEFouE,GAAY4wd,IAAkB,CAACh2d,GAAep3K,GAAAA,yCC9C1Ct1I,IAAsC,WAStC,OARAA,IAAW/jD,OAAOgkD,QAAU,SAAS9hC,GACjC,IAAK,IAAIV,EAAG9U,EAAI,EAAGnK,EAAImB,UAAUC,OAAQ+I,EAAInK,EAAGmK,IAE5C,IAAK,IAAIuW,KADTzB,EAAI9d,UAAUgJ,GACO1M,OAAOkR,UAAUG,eAAenR,KAAKshB,EAAGyB,KACzDf,EAAEe,GAAKzB,EAAEyB,IAEjB,OAAOf,CACX,EACO6hC,IAASrqC,MAAMnZ,KAAMmD,UAChC,EAOWgj0B,KAAsB9qzB,EAAAA,GAAAA,eAAc,MA6B3Cw7qB,IA5ByB,SAAUz3rB,GACnC,IAAIk2C,EAAKwjJ,GAAAA,WAAkBosW,EAAc5vf,EAAG,GAAI8wxB,EAAiB9wxB,EAAG,GAapE,OAAQk0R,EAAAA,GAAAA,MAAM,MAAO,CAAEzoU,UAAW,qBAAsB+E,SAAU,CAAC1G,EAAMquU,QAAUpE,EAAAA,GAAAA,KAAK68f,IAAkB,CAAE/vyB,GAAI,UAAW9tB,OAAQ,aAAc2mjB,aAX9H,SAAU/1iB,KAEpBA,EAAK5Q,OAAO6jD,WAAajzC,EAAK5Q,OAAO6jD,UAAU9oD,OAAS,MACzD6V,EAAK6nE,QAAS,GAGlB,IC1B4B5gD,ED0BxBmmyB,EAAcptzB,EAAK5Q,OAAO6jD,UAAU77C,QAAQ,KAAM,UAElDi2zB,GC5BwBpmyB,ED4BKmmyB,EC3B9BE,MAAAA,SAAmBrmyB,EAAM,CAAE2F,aAAc,CAAE3F,MAAM,MD4BpDkmyB,EAAeE,EACnB,EAC6KvxzB,QAASmwhB,EAAankiB,UAAWd,KAAW,eAAgBb,EAAM2B,WAAa,IAAK+E,UAAUujU,EAAAA,GAAAA,KAAK88f,IAAoBttzB,SAAU,CAAEjX,MAAOxC,EAAMg3rB,QAAQ1soB,QAAS5jD,UAAUujU,EAAAA,GAAAA,KAAKiuX,IAAe9zoB,IAAS,CAAEv2C,IAAK7N,EAAMg3rB,QAASr1rB,UAAW,YAAc3B,EAAMs3rB,aAAc,CAAE5wrB,UAAUujU,EAAAA,GAAAA,KAAK4wB,GAAQ,CAAEob,SAAU,CACjcsmV,IACA3nU,IACAtS,IACA/iE,IACAm6O,IACAm4L,IACA4D,IACAwE,IACA5nW,IACAg9X,IACAtxC,eACc/9sB,EAAMquU,QAASpE,EAAAA,GAAAA,KAAKC,GAAAA,SAAW,CAAC,KAC9E,EAEA,cE/CO,IAAIk9f,IAAsB,CAC7B1xN,4BAA4B,EAC5B7D,yBAAyB,EACzBsf,iBAAiB,EACjB4B,eAAe,EACfiV,eAAgB,CAAE72kB,KAAM,UACxB2gjB,aAAc,CAAEn7L,SAAU,IAC1B2/O,kBAAkB,EAClB3jD,cAAc,EACdp0K,gBAAgB,EAChB+pK,iBAAkB,CAAEC,cAAe,WACnC4zB,sBAAsB,EACtBtzB,eAAgB,CACZr7lB,KAAM,QACNqoa,cAAc,EACd8tR,UAAW,CACPskB,eAAgB,CAAC,CAAEzltB,MAAO,WAAYq+B,KAAM,gBAGpDg1lB,QAAS,GACTloB,eAAgB,CACZ/yhB,SAAU,WACV+1F,YAAY,ICtBhBvsH,IAAsC,WAStC,OARAA,IAAW/jD,OAAOgkD,QAAU,SAAS9hC,GACjC,IAAK,IAAIV,EAAG9U,EAAI,EAAGnK,EAAImB,UAAUC,OAAQ+I,EAAInK,EAAGmK,IAE5C,IAAK,IAAIuW,KADTzB,EAAI9d,UAAUgJ,GACO1M,OAAOkR,UAAUG,eAAenR,KAAKshB,EAAGyB,KACzDf,EAAEe,GAAKzB,EAAEyB,IAEjB,OAAOf,CACX,EACO6hC,IAASrqC,MAAMnZ,KAAMmD,UAChC,EACIw4L,IAAwC,SAAUz8J,EAAS08J,EAAYj5K,EAAGk5K,GAE1E,OAAO,IAAKl5K,IAAMA,EAAIguB,WAAU,SAAU2mB,EAASuwB,GAC/C,SAASi0G,EAAUl6L,GAAS,IAAM24E,EAAKshH,EAAUtlL,KAAK3U,GAAS,CAAE,MAAOvB,KAAKwnF,EAAOxnF,IAAI,CAAE,CAC1F,SAAS07L,EAASn6L,GAAS,IAAM24E,EAAKshH,EAAiB,MAAEj6L,GAAS,CAAE,MAAOvB,KAAKwnF,EAAOxnF,IAAI,CAAE,CAC7F,SAASk6E,EAAK1vD,GAJlB,IAAejpB,EAIaipB,EAAOrU,KAAO8gD,EAAQzsC,EAAOjpB,QAJ1CA,EAIyDipB,EAAOjpB,MAJhDA,aAAiB+gB,EAAI/gB,EAAQ,IAAI+gB,GAAE,SAAU20C,GAAWA,EAAQ11D,EAAQ,KAIjBq5H,KAAK6gE,EAAWC,EAAW,CAC7GxhH,GAAMshH,EAAYA,EAAU1iL,MAAM+lB,EAAS08J,GAAc,KAAKrlL,OAClE,GACJ,EACIqzT,IAA4C,SAAU1qS,EAASzrB,GAC/D,IAAsGiwG,EAAGvpG,EAAGwH,EAAG4hG,EAA3Gh0F,EAAI,CAAE6+Q,MAAO,EAAGnmF,KAAM,WAAa,GAAW,EAAPtmM,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,EAAI,EAAGkoT,KAAM,GAAIhvC,IAAK,IAChG,OAAOt3K,EAAI,CAAEhtG,KAAMuzT,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,oBAAXn7S,SAA0B40F,EAAE50F,OAAO4gB,UAAY,WAAa,OAAOvvC,IAAM,GAAIujH,EACvJ,SAASumN,EAAK9nU,GAAK,OAAO,SAAUq5B,GAAK,OACzC,SAAcy/P,GACV,GAAIp3K,EAAG,MAAM,IAAI9rG,UAAU,mCAC3B,KAAO2rG,IAAMA,EAAI,EAAGu3K,EAAG,KAAOvrQ,EAAI,IAAKA,OACnC,GAAIm0F,EAAI,EAAGvpG,IAAMwH,EAAY,EAARm5Q,EAAG,GAAS3gR,EAAU,OAAI2gR,EAAG,GAAK3gR,EAAS,SAAOwH,EAAIxH,EAAU,SAAMwH,EAAEhiB,KAAKwa,GAAI,GAAKA,EAAE5D,SAAWoL,EAAIA,EAAEhiB,KAAKwa,EAAG2gR,EAAG,KAAKtkR,KAAM,OAAOmL,EAE3J,OADIxH,EAAI,EAAGwH,IAAGm5Q,EAAK,CAAS,EAARA,EAAG,GAAQn5Q,EAAE/f,QACzBk5R,EAAG,IACP,KAAK,EAAG,KAAK,EAAGn5Q,EAAIm5Q,EAAI,MACxB,KAAK,EAAc,OAAXvrQ,EAAE6+Q,QAAgB,CAAExsS,MAAOk5R,EAAG,GAAItkR,MAAM,GAChD,KAAK,EAAG+Y,EAAE6+Q,QAASj0R,EAAI2gR,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKvrQ,EAAEsrQ,IAAIv8P,MAAO/O,EAAEs6S,KAAKvrS,MAAO,SACxC,QACI,KAAkB3c,GAAZA,EAAI4N,EAAEs6S,MAAYzmU,OAAS,GAAKue,EAAEA,EAAEve,OAAS,MAAkB,IAAV03R,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEvrQ,EAAI,EAAG,QAAU,CAC3G,GAAc,IAAVurQ,EAAG,MAAcn5Q,GAAMm5Q,EAAG,GAAKn5Q,EAAE,IAAMm5Q,EAAG,GAAKn5Q,EAAE,IAAM,CAAE4N,EAAE6+Q,MAAQtT,EAAG,GAAI,KAAO,CACrF,GAAc,IAAVA,EAAG,IAAYvrQ,EAAE6+Q,MAAQzsR,EAAE,GAAI,CAAE4N,EAAE6+Q,MAAQzsR,EAAE,GAAIA,EAAIm5Q,EAAI,KAAO,CACpE,GAAIn5Q,GAAK4N,EAAE6+Q,MAAQzsR,EAAE,GAAI,CAAE4N,EAAE6+Q,MAAQzsR,EAAE,GAAI4N,EAAEsrQ,IAAIzuR,KAAK0uR,GAAK,KAAO,CAC9Dn5Q,EAAE,IAAI4N,EAAEsrQ,IAAIv8P,MAChB/O,EAAEs6S,KAAKvrS,MAAO,SAEtBw8P,EAAKrnR,EAAK9T,KAAKu/B,EAAS3P,EAC5B,CAAE,MAAOlvB,KAAKy6R,EAAK,CAAC,EAAGz6R,KAAI8Z,EAAI,CAAG,CAAE,QAAUupG,EAAI/hG,EAAI,CAAG,CACzD,GAAY,EAARm5Q,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAEl5R,MAAOk5R,EAAG,GAAKA,EAAG,QAAK,EAAQtkR,MAAM,EAC9E,CAtBgD+jE,CAAK,CAACv4E,EAAGq5B,GAAK,CAAG,CAuBrE,EAQWg7pB,IAAU,SAAUowI,GAC3B,IAAInxxB,EAAII,EAAIE,EAAIG,EACZD,EAAKy6a,IAAS,CAAEC,qBAAsBi2W,EAAUj2W,uBAAwB,WACxEk2W,EAAkBD,EACtB,IAAIx3W,EAAoBn5a,EAAGm5a,kBAAmBkC,EAAuBr7a,EAAGq7a,qBAAsBL,EAAiCh7a,EAAGg7a,+BAAgCC,EAAgCj7a,EAAGi7a,8BACjM95a,GAAK09F,EAAAA,GAAAA,YAAY+hjB,EAAez/oB,EAAG,GAAI0vxB,EAAkB1vxB,EAAG,GAC5D4B,GAAK87F,EAAAA,GAAAA,YAAYghjB,EAAU98oB,EAAG,GAAI+txB,EAAa/txB,EAAG,GAClDD,GAAK+7F,EAAAA,GAAAA,YAAYkyrB,EAAqBjuxB,EAAG,GAAIkuxB,EAAwBluxB,EAAG,GACxEG,GAAK47F,EAAAA,GAAAA,YAAYszd,EAAiBlvjB,EAAG,GAAIguxB,EAAoBhuxB,EAAG,GAChED,GAAK67F,EAAAA,GAAAA,YAAYqyrB,EAAcluxB,EAAG,GAAImuxB,EAAiBnuxB,EAAG,GAC1DohD,GAAKy6C,EAAAA,GAAAA,WAAS,GAAQqjG,EAAc99I,EAAG,GAAIu2K,EAAiBv2K,EAAG,GAC/Dk8lB,GAAU1hjB,EAAAA,GAAAA,QAAO,MACjBs8P,GAAKr8P,EAAAA,GAAAA,WAAS,GAAQ84L,EAAQujE,EAAG,GAAI+4E,EAAW/4E,EAAG,IACvDh8P,EAAAA,GAAAA,YAAU,WACAohjB,EAAQ1soB,UAAYsuL,IACtBnqE,IACA4iG,GAAe,GAEvB,KACAz7H,EAAAA,GAAAA,YAAU,WACF0hjB,GACA3sO,GAAS,EAEjB,GAAG,CAAC2sO,IAEJ,IAGI/+Q,EAIAwsG,EAIA+iT,EAXAhnJ,GAAkL,QAAjKxqoB,EAAiH,QAA3GJ,EAAwB,OAAnB2yjB,QAA8C,IAAnBA,OAA4B,EAASA,EAAes4E,yBAAsC,IAAPjroB,OAAgB,EAASA,EAAGlyC,cAA2B,IAAPsyC,EAAgBA,EAAK,IAC9C,QAA/JK,EAA+G,QAAzGH,EAAwB,OAAnBqyjB,QAA8C,IAAnBA,OAA4B,EAASA,EAAem4E,uBAAoC,IAAPxqoB,OAAgB,EAASA,EAAGxyC,cAA2B,IAAP2yC,EAAgBA,EAAK,GAO9L6iT,EAAiB,SAAU1uT,GAC3Bi6e,EAAcj6e,CAClB,EAKIu2oB,EAAe,SAAUiD,GACzB,IAAIpuoB,EAAII,EAAIE,EAAIG,EAAID,EAAImB,EAAI4B,EAAID,EAC3B8qoB,IACDA,EAAqByjJ,EAAsB/wI,EAAQ1soB,UAGvD,IAAI09wB,EAAiE,QAA/C9xxB,EAAKouoB,EAAmBnD,yBAAsC,IAAPjroB,OAAgB,EAASA,EAAGrvC,KAAI,SAAUiU,GAAK,OAAOA,EAAEklG,KAAO,KACvF,QAA/C1pE,EAAKguoB,EAAmBnD,yBAAsC,IAAP7qoB,OAAgB,EAASA,EAAGtyC,QAAU,GAAOgzrB,EAAQ1soB,UAC9G0soB,EAAQ1soB,QAAQu+iB,eAAe96d,QACsE,QAAhGp3F,EAAgC,QAA1BH,EAAKwgpB,EAAQ1soB,eAA4B,IAAP9T,OAAgB,EAASA,EAAGqyjB,eAAe96d,eAA4B,IAAPp3F,OAAgB,EAASA,EAAG3vC,QAAO,SAAU8T,GAAK,OAAQktzB,EAAe58wB,SAASzsC,OAAO7D,EAAEklG,OAAS,IACtL,QAA1BtpE,EAAKsgpB,EAAQ1soB,eAA4B,IAAP5T,GAAyBA,EAAGm2S,cAAc,CACzEg8Q,eAAgBmuF,EAAQ1soB,QAAQu+iB,mBAIW,QAA7ChxjB,EAAKysoB,EAAmBtD,uBAAoC,IAAPnpoB,OAAgB,EAASA,EAAG7zC,QAAU,GAC7FsgrB,EAAmBtD,gBAAgB/5qB,SAAQ,SAAU2yH,GACjD,IAAI1jF,EACuB,QAA1BA,EAAK8gpB,EAAQ1soB,eAA4B,IAAPpU,GAAyBA,EAAG+2nB,iBAAiBtupB,OAAOi7G,EAAI5Z,OAC/F,KAE2B,QAA1BvmE,EAAKu9oB,EAAQ1soB,eAA4B,IAAP7Q,OAAgB,EAASA,EAAGgqmB,gBACpC,QAA1BjqmB,EAAKw9oB,EAAQ1soB,eAA4B,IAAP9Q,GAAyBA,EAAGktmB,gBAEvE,EA2BIj4e,EAAa,WACbw5pB,IAjBuB,WAEvB,IAAIC,EAAa,WACb,IAAIhyxB,EACA8gpB,EAAQ1soB,UACR0soB,EAAQ1soB,QAAQk/F,OACZ53H,OAAOi0O,aAAsI,QAAtH3vN,EAA4B,OAAvBuxxB,QAAsD,IAAvBA,OAAgC,EAASA,EAAmBU,wBAAqC,IAAPjyxB,EAAgBA,EAAK,KAEtL,EAEAgyxB,IAEAt2yB,OAAOsK,iBAAiB,UAAU,WAC9BgsyB,GACJ,GACJ,CAGIE,EACJ,EACIL,EAAwB,SAAUM,GAClC,IAAInyxB,EAAII,EAaR,OAZKyue,GACD9pL,IAEqB,CACrB2pV,SAAUkjJ,EACVQ,UAAiC,OAAtBD,QAAoD,IAAtBA,OAA+B,EAASA,EAAkB16N,eAAezgmB,IAClH6zqB,mBAA0C,OAAtBsnJ,QAAoD,IAAtBA,OAA+B,EAASA,EAAkBt6rB,SAAS/mI,QAAO,SAAU8T,GAAK,OAAOA,EAAE21R,OAAS,IAC7J0wY,mBAAoC,OAAhBp8J,QAAwC,IAAhBA,OAAyB,EAASA,EAAY8jF,eAAe96d,UAAY,GACrHiziB,iBAAkC,OAAhBj8J,QAAwC,IAAhBA,OAAyB,EAASA,EAAY6tF,aAAa7ke,UAAY,GACjHu9hB,YACoI,QADtHh1nB,EACuC,QADjCJ,GAA4B,OAAtBmyxB,QAAoD,IAAtBA,OAA+B,EAASA,EAAkBt6rB,SAC7G/mI,QAAO,SAAU8T,GAAK,OAAOA,EAAE21R,OAAS,WAAuB,IAAPv6P,OAAgB,EAASA,EAAGrvC,KAAI,SAAUiU,GAAK,OAAOA,EAAEklG,KAAO,WAAuB,IAAP1pE,OAAgB,EAASA,EAAG1vC,KAAK,KAGrL,EACIq0V,EAAiB,WACjB,IAAI/kT,EACJ,GAAK8gpB,EAAQ1soB,QAAb,CAIA,IAAIy6d,EAAc1ze,KAAKuL,MAAiC,QAA1B1G,EAAK8gpB,EAAQ1soB,eAA4B,IAAPpU,OAAgB,EAASA,EAAG+kT,kBAC5FzB,EAAeurL,EAHf,CAIJ,EACIkjT,EAAsB,SAAUnnpB,GAChC,GAAKk2gB,EAAQ1soB,WAGRw2H,GACD,CAAC,UAAW,YAAa,YAAa,UAAW,WAAW11H,SAASzsC,OAAOmiK,KAAW,CACvFm6K,IAEA,IAAI/sQ,EAAW65uB,EAAsB/wI,EAAQ1soB,SACzC4jC,GACAy5uB,EAAkBvjxB,IAAS,CAAC,EAAG8pC,GAEvC,CACJ,EAMIq6uB,EAAyB,SAAU34W,GACnC,IAAI15a,EACA05I,EAAQ,IAAIwkP,GAQhB,GAPU,OAAVxkP,QAA4B,IAAVA,GAA4BA,EAAMw7J,OAAOwkI,EAAqB/od,KAAI,SAAUiU,GAAK,OAAOA,EAAEklG,KAAO,KAEzG,OAAV4vE,QAA4B,IAAVA,GAA4BA,EAAM4lP,UAAU,SAAU6xZ,EAAU9wI,SAC9E8wI,EAAU7wI,gBACA,OAAV5mgB,QAA4B,IAAVA,GAA4BA,EAAM4lP,UAAU,gBAAiB6xZ,EAAU7wI,gBAGzF6wI,EAAUnwI,WACV,IAAK,IAAIhqrB,KAAOm6zB,EAAUnwI,WACZ,OAAVtngB,QAA4B,IAAVA,GAA4BA,EAAM4lP,UAAUtoa,EAAKm6zB,EAAUnwI,WAAWhqrB,IAGhG,IAAIs7zB,EAA0D,QAAtCtyxB,EAAKmxxB,EAAUjwI,yBAAsC,IAAPlhpB,OAAgB,EAASA,EAAG0xxB,YASlG,OARIY,GAAoBA,EAAiBxotB,QACF,cAA/BwotB,EAAiB3wtB,UACjB+3E,EAAMxvG,OAAOoovB,EAAiBxotB,OAG9B4vE,EAAM4mP,WAAWgyZ,EAAiBxotB,QAGnC4vE,CACX,EAYI64oB,EAAyB,SAAUrxI,GACnC,OAAO,SAAUsxI,GACb,IAAIxyxB,EAAII,ErY5NiCyob,GqY6Nf,OAAtBq4N,QAAoD,IAAtBA,OAA+B,EAASA,EAAkBn4L,eACxFm4L,EAAkBn4L,aAAaypU,GAEJ,gBAA3BA,EAAevyyB,KAAKY,KrYhOiBgoc,EqYiOP,arYhOnCjO,GAAW7pK,KAAK,CACnBnvS,SAAUsyT,EAAAA,GAAAA,MAAM,MAAO,CAAE1jU,SAAU,EAACujU,EAAAA,GAAAA,KAAK,KAAM,CAAEvjU,SAAU,iBAAmBq4d,EAAU,wBACxFjiN,OAAQlL,GAAOhtF,OqY+NoB,QAA1B1uI,EAAK8gpB,EAAQ1soB,eAA4B,IAAPpU,GAAyBA,EAAGy8nB,YAAY,CACvE5zM,SAA4H,QAAjHzob,EAA2B,OAAtB8gpB,QAAoD,IAAtBA,OAA+B,EAASA,EAAkBuxI,sBAAmC,IAAPryxB,EAAgBA,EAAK,gBAC1JulF,MAAK,WACJk1V,GAAsB,0BAC1B,IAER,CACJ,EAuBI63W,EAAwB,SAAUxxI,GAClC,OAAO,SAAU5xW,GA1LA,IAAUh4U,GA2LG,OAAtB4prB,QAAoD,IAAtBA,OAA+B,EAASA,EAAkB3iO,cACxF2iO,EAAkB3iO,YAAYjvI,GA5LXh4U,EA8LRg4U,EAAU+yF,YA7L7BA,EAAc/qa,EA+LoB,wBAA1Bg4U,EAAU+yF,cACV/yF,EAAUsmR,kBAAoB,KAEtC,CACJ,EA2BI/8I,EAAe,SAAU74a,GACzB,IAAII,EAAIE,EACJsyL,EAAc5yL,EAAG4yL,YAxNrBg/lB,EAyNsBh/lB,EAClByvM,GACA0vZ,EAAoB1vZ,GAGpBqvZ,IAAgB9+lB,EAAY19K,SAAS,cACrC09K,GAEQ,aAAa9uN,OAAO4tzB,EAAY5ntB,MAAO,OAAOhmG,OAAiC,cAA1B4tzB,EAAY/vtB,UAA4B,MAAQ,SAGjH,IAAI2wtB,EAA0D,QAAtClyxB,EAAK+wxB,EAAUjwI,yBAAsC,IAAP9gpB,OAAgB,EAASA,EAAGsxxB,YAClG,GAAIY,GAAoBA,EAAiBxotB,MAAO,CAI5C,IAAI6otB,EAAe,IAAItxzB,OAAO,eAAeyC,OAAOwuzB,EAAiBxotB,MAAO,iBAAiBhmG,OAAOwuzB,EAAiBxotB,MAAO,kBACxH8otB,EAA+D,QAA1CtyxB,EAAKsyL,EAAY/wN,MAAM8wzB,UAAkC,IAAPryxB,OAAgB,EAASA,EAAG+sC,GAAG,GACtGulvB,IAEAhgmB,EAAcA,EAAY73N,QAAQ43zB,EAAc,YAAY7uzB,OAAO8uzB,EAAkBv1yB,MAAM,KAAK,KAExG,CAEA,GAAIu1M,EAAY19K,SAAS,oBACpB09K,EAAY19K,SAAS,WAAY,CAClC,IAAIu4E,EAAS,IAAIolsB,gBAAmC,OAAnBlgO,QAA8C,IAAnBA,OAA4B,EAASA,EAAe+7E,UAC5GjhjB,EAAOtsH,IAAI,aACXyxN,GAEQ,YAAY9uN,OAAO42B,mBAAmB+yF,EAAOrsH,IAAI,aAEjE,CACA,MAAO,CAACwxN,EAAa+mP,EACzB,EAEIy3W,EAAoB,SAAUD,GAC9B,IAAInxxB,EAAII,EAAIE,EAAIG,EAAID,EAAImB,EAAI4B,EAAID,EAAIG,EAAID,EACxC8txB,EAAWH,EAAU9wI,SACrB,IAAI27H,EAAqD,QAAvCh8wB,EAAKmxxB,EAAUI,0BAAuC,IAAPvxxB,EAAgBA,EAAK,CAClFszG,OAAQ,IACR2+qB,iBAAkB,KAEtBT,EAA8D,QAAvCpxxB,EAAK+wxB,EAAUI,0BAAuC,IAAPnxxB,EAAgBA,EAAK47wB,GAC3F,IAtIkC96H,EAsI9BlpmB,EAAW9pC,IAASA,IAAS,CAAC,EAAGgjxB,KAAsBC,EAAUjwI,mBAEjEiwI,EAAUhwI,aACwB,QAA3B7gpB,EAAK03C,EAAS2niB,eAA4B,IAAPr/kB,OAAgB,EAASA,EAAG5b,MAAK,SAAU9f,GACjF,MAAoB,kBAANA,GAAqE,YAA5C,OAANA,QAAoB,IAANA,OAAe,EAASA,EAAE+lB,KAC7E,MACgC,QAA3B8V,EAAKu3C,EAAS2niB,eAA4B,IAAPl/kB,GAAyBA,EAAG3pC,KAAK,CACjE6zB,KAAM,WAIdqtD,EAAS2niB,QAAsC,QAA3Bn/kB,EAAKw3C,EAAS2niB,eAA4B,IAAPn/kB,OAAgB,EAASA,EAAG1vC,QAAO,SAAU8T,GAChG,MAAoB,kBAANA,GAAqE,YAA5C,OAANA,QAAoB,IAANA,OAAe,EAASA,EAAE+lB,KAC7E,IAGAqtD,EAASookB,kBACyB,QAA3Bz+mB,EAAKq2C,EAAS2niB,eAA4B,IAAPh+kB,OAAgB,EAASA,EAAGjd,MAAK,SAAU9f,GACjF,MAAoB,kBAANA,GAAmE,iBAA1C,OAANA,QAAoB,IAANA,OAAe,EAASA,EAAEic,GAC7E,MACgC,QAA3B0iB,EAAKy0C,EAAS2niB,eAA4B,IAAPp8kB,GAAyBA,EAAGzsC,KAAK,CACjE6zB,KAAM,kBACNilgB,YAAa,kBACbH,WAAY,aACZ5ugB,GAAI,gBAIZm3D,EAAS2niB,QAAsC,QAA3Br8kB,EAAK00C,EAAS2niB,eAA4B,IAAPr8kB,OAAgB,EAASA,EAAGxyC,QAAO,SAAU8T,GAChG,MAAoB,kBAANA,GAAmE,iBAA1C,OAANA,QAAoB,IAANA,OAAe,EAASA,EAAEic,GAC7E,IAEJm3D,EAASs7D,OAAS0oqB,EAAW1oqB,OAE7Bt7D,EAAS26gB,eAAiBzkjB,IAASA,IAAS,CAAC,EAAG8pC,EAAS26gB,gBAAiB,CAAE96d,QAASs5rB,EAAU5kJ,sBAC/Fv0lB,EAAS0khB,aAAexujB,IAASA,IAAS,CAAC,EAAG8pC,EAAS0khB,cAAe,CAClE7ke,QAAgD,QAAtCp0F,EAAK0txB,EAAU1kJ,yBAAsC,IAAPhpoB,EAAgBA,EAAK,KAGjFu0C,EAAS6/C,QAAmCs5rB,EAAUz3W,qBA1MR/od,KAAI,SAAUmi0B,GAAc,OAAQ5kxB,IAAS,CAAEghb,UAAW,OAAQ+xJ,mBAAmB,GAAS6xM,EAAc,IA2MpJ3B,EAAU4B,eACZ/6uB,EAAS6/C,QAAUs5rB,EAAU4B,aAAa/6uB,EAAS6/C,UAEvD7/C,EAAS0hG,MAAQ24oB,EAAuBlB,EAAUz3W,sBAClD1hY,EAASwlV,WAAaq+C,EAAqBs1W,EAAU3zZ,WAAY2zZ,EAAUz3W,qBAAsBb,GAEjG7gY,EAASg7uB,aApLyB9xI,EAoLWiwI,EAAUjwI,kBAnLhD,SAAUt8qB,GAIb,IAH0B,OAAtBs8qB,QAAoD,IAAtBA,OAA+B,EAASA,EAAkB8xI,cACxF9xI,EAAkB8xI,YAAYpuzB,GAER,OAAtBs8qB,QAAoD,IAAtBA,OAA+B,EAASA,EAAkB+xI,cAAe,CACvG,IAAIC,EAAuBhlxB,IAAS,CAAC,EAAGtpC,GACxCs8qB,EAAkB+xI,cAAcC,EACpC,CACJ,GA4KAl7uB,EAAS+wa,aAAewpU,EAAuBpB,EAAUjwI,mBACzDlpmB,EAASwmY,UA3Ja,SAAU0iO,GAChC,OAAO,SAAU3lrB,GACb,IAAIykC,EAAII,GACkB,OAAtB8gpB,QAAoD,IAAtBA,OAA+B,EAASA,EAAkB1iO,YACxF0iO,EAAkB1iO,UAAUjjd,GAEL,QAA1BykC,EAAK8gpB,EAAQ1soB,eAA4B,IAAPpU,GAAyBA,EAAG84nB,gBAA2C,QAA1B14nB,EAAK0gpB,EAAQ1soB,eAA4B,IAAPhU,OAAgB,EAASA,EAAGy3F,SACzI/mI,QAAO,SAAU8T,GAElB,MAA0B,kBAAZA,EAAEsE,OAAiC,MAAZtE,EAAEsE,KAC3C,IACKvY,KAAI,SAAUiU,GAAK,OAAOA,EAAEigqB,eAAiB,IACtD,CACJ,CA8IyBsuJ,CAAoBhC,EAAUjwI,mBACnDlpmB,EAASmmY,QA9IW,SAAU+iO,GAC9B,OAAO,SAAU3lrB,IACa,OAAtB2lrB,QAAoD,IAAtBA,OAA+B,EAASA,EAAkB/iO,UACxF+iO,EAAkB/iO,QAAQ5id,GAE9Bw2zB,GACJ,CACJ,CAuIuBqB,CAAkBjC,EAAUjwI,mBAC/ClpmB,EAASumY,YAAcm0W,EAAsBvB,EAAUjwI,mBACvDlpmB,EAASsmW,cA5HiB,SAAU4iQ,GACpC,OAAO,SAAU5xW,GAAa,OAAOjpJ,SAAU,OAAQ,OAAQ,GAAQ,WACnE,OAAOiuI,IAAY5pU,MAAM,SAAUs1C,GAC/B,OAAQA,EAAG84P,OACP,KAAK,EAKD,OAJ0B,OAAtBooZ,QAAoD,IAAtBA,OAA+B,EAASA,EAAkB5iQ,gBACxF4iQ,EAAkB5iQ,cAAchvG,GAG7B,CAAC,EAAamsI,EAA8BnsI,GAAW,WAAc,IAAItvS,EAAI,OAAkC,QAA1BA,EAAK8gpB,EAAQ1soB,eAA4B,IAAPpU,OAAgB,EAASA,EAAGujT,SAAW,KACzK,KAAK,EAGD,OADAvjT,EAAG2yK,OACI,CAAC,GAEpB,GACJ,GAAI,CACR,CA2G6B0gnB,CAAwBlC,EAAUjwI,mBAC3DlpmB,EAASomY,eA3GkB,SAAU8iO,GACrC,OAAO,SAAU5xW,IACa,OAAtB4xW,QAAoD,IAAtBA,OAA+B,EAASA,EAAkB9iO,iBACxF8iO,EAAkB9iO,eAAe9uI,GAErCksI,GACJ,CACJ,CAoG8B83W,CAAyBnC,EAAUjwI,mBAE7DywI,EAAsD,QAAtCnuxB,EAAK2txB,EAAUjwI,yBAAsC,IAAP19oB,OAAgB,EAASA,EAAGkuxB,aAE1Fzhe,GAAK90Q,KAAK,CACN,QAAS,CACL+gkB,KAAM,CACFoF,KAAM,MACNC,MAAO,SAKnB8vK,EAAgBnjxB,IAAS,CAAC,EAAG8pC,GACjC,EACA,MAAO,CACHmgP,MAAOA,EACPkoX,QAASA,EACTS,QAASA,EACTM,aAAcA,EACdxW,aAAcA,EACdj4E,eAAgBA,EAChBu4E,aA/Se,SAAUphkB,GACzBqhkB,EAAa,CACTF,kBAAmB,CAAC,CAAEnhkB,MAAOA,KAErC,EA4SIqhkB,aAAcA,EACdJ,WAtTa,SAAUjhkB,GACvBqhkB,EAAa,CACTL,gBAAiB,CAAC,CAAEhhkB,MAAOA,KAEnC,EAoTJ,EC/aA,ICAWyptB,IAKAC,IDLPtlxB,IAAsC,WAStC,OARAA,IAAW/jD,OAAOgkD,QAAU,SAAS9hC,GACjC,IAAK,IAAIV,EAAG9U,EAAI,EAAGnK,EAAImB,UAAUC,OAAQ+I,EAAInK,EAAGmK,IAE5C,IAAK,IAAIuW,KADTzB,EAAI9d,UAAUgJ,GACO1M,OAAOkR,UAAUG,eAAenR,KAAKshB,EAAGyB,KACzDf,EAAEe,GAAKzB,EAAEyB,IAEjB,OAAOf,CACX,EACO6hC,IAASrqC,MAAMnZ,KAAMmD,UAChC,EACIwtQ,IAAgD,SAAUptQ,EAAID,EAAMstQ,GACpE,GAAIA,GAA6B,IAArBztQ,UAAUC,OAAc,IAAK,IAA4BytQ,EAAxB1kQ,EAAI,EAAGkzB,EAAI/7B,EAAKF,OAAY+I,EAAIkzB,EAAGlzB,KACxE0kQ,GAAQ1kQ,KAAK7I,IACRutQ,IAAIA,EAAKngQ,MAAMC,UAAUC,MAAMjR,KAAK2D,EAAM,EAAG6I,IAClD0kQ,EAAG1kQ,GAAK7I,EAAK6I,IAGrB,OAAO5I,EAAG6V,OAAOy3P,GAAMngQ,MAAMC,UAAUC,MAAMjR,KAAK2D,GACtD,EAMIyl0B,IACA,WACI,IAAIzp0B,EAAQU,KAEZA,KAAKgp0B,sBAAwB,KAC7Bhp0B,KAAKip0B,iBAAmB,KACxBjp0B,KAAKkp0B,gBAAkB,KACvBlp0B,KAAKmp0B,uBAAyB,GAC9Bnp0B,KAAKop0B,6BAA+B,CAChCzlwB,YAAa,+BAEjB3jE,KAAKqp0B,aAAe,SAAUn/xB,GAC1B,OAAQs/R,EAAAA,GAAAA,MAAM,MAAO,CAAEzoU,UAAW,sBAAuB+E,SAAU,EAACujU,EAAAA,GAAAA,KAAK,MAAO,CAAEtoU,UAAW,2BAA4B+E,SAAUokC,EAAK+2O,OAAQooD,EAAAA,GAAAA,KAAK2/I,GAAiB,CAAE/nM,KAAM/2O,EAAK+2O,UAAYooD,EAAAA,GAAAA,KAAK,MAAO,CAAEtoU,UAAW,iCAAkC+E,SAAUokC,EAAKxlC,SAC7Q,EACA1E,KAAKsp0B,wBAA0B,CAC3BC,kBAAkB,EAClBC,qBAAqB,EACrBH,aAAcrp0B,KAAKqp0B,cAEvBrp0B,KAAKosR,OAAS,WACV,IAAI92O,EACJ,OAAwC,QAAhCA,EAAKh2C,EAAM4p0B,uBAAoC,IAAP5zxB,OAAgB,EAASA,EAAG82O,MAChF,EACApsR,KAAK8iI,KAAO,WACR,IAAIxtF,EAAII,EACyB,QAAhCJ,EAAKh2C,EAAM4p0B,uBAAoC,IAAP5zxB,GAAyBA,EAAG+wQ,OACnC,QAAjC3wQ,EAAKp2C,EAAM2p0B,wBAAqC,IAAPvzxB,GAAyBA,EAAGk9nB,WAC1E,EACA5yqB,KAAKw7I,MAAQ,WACT,IAAIlmG,EAAII,EACyB,QAAhCJ,EAAKh2C,EAAM4p0B,uBAAoC,IAAP5zxB,GAAyBA,EAAGioP,OACnC,QAAjC7nP,EAAKp2C,EAAM2p0B,wBAAqC,IAAPvzxB,GAAyBA,EAAGo9nB,aAC1E,EACA9yqB,KAAKgzB,OAAS,WACV,IAAIsiB,EAAII,EAAIE,EAAIG,EAAID,GACiB,QAAhCR,EAAKh2C,EAAM4p0B,uBAAoC,IAAP5zxB,OAAgB,EAASA,EAAG82O,SACpC,QAAhC12O,EAAKp2C,EAAM4p0B,uBAAoC,IAAPxzxB,GAAyBA,EAAG6nP,OACnC,QAAjC3nP,EAAKt2C,EAAM2p0B,wBAAqC,IAAPrzxB,GAAyBA,EAAGk9nB,gBAGrC,QAAhC/8nB,EAAKz2C,EAAM4p0B,uBAAoC,IAAPnzxB,GAAyBA,EAAGswQ,OACnC,QAAjCvwQ,EAAKx2C,EAAM2p0B,wBAAqC,IAAPnzxB,GAAyBA,EAAG88nB,YAE9E,EAEA5yqB,KAAKosqB,iBAAmB,SAAUlioB,GACzB5qC,EAAM2p0B,mBAGX3p0B,EAAM2p0B,iBAAiB91mB,OAAS,CAC5B2/M,WAAYniK,IAAc,GAAIzmO,GAAM,GACpC/T,GAAI,KACJ8J,KAAM,OACNknB,MAAO,SACP64X,SAAU,WACVqiM,SAAU,WACVn2L,QAAS,cACTx9a,SAAU,cAElB,EACA1O,KAAKw4b,SAAW,SAAU77a,EAAU/a,EAAO6vB,GACvC,KAAMA,GAAQA,EAAKruB,OAAS,GACxB,MAAO,GAEX,IAAI6lB,EAAY,IAAIksZ,GAAUx4Z,EAAU,WAAY/a,GAAO,GAE3D,OADmB,IAAIyhb,GAAY5xZ,GAAMgjZ,cAAa,IAAIjB,IAAQ3qX,MAAM5/B,GAE5E,EAEAjpB,KAAKk4C,OAAS,WACV,IAAI5C,EACJ,GAAKh2C,EAAM0p0B,sBAAX,CAGA,IAAIS,EAAQnq0B,EAAM0p0B,sBAAsB7zzB,QAAQvT,MAChD,GAAa,IAAT6n0B,EAGA,OADAnq0B,EAAM8sqB,iBAAiBz7Z,IAAc,GAAIrxQ,EAAM6p0B,wBAAwB,IAChE,CAAEj/xB,KAAMymO,IAAc,GAAIrxQ,EAAM6p0B,wBAAwB,GAAOr0Z,QAAQ,GAWlF,IARA,IAAIoJ,EAAUwrZ,GAAiBpq0B,EAAM6p0B,wBACjC18f,EAAU,SAAUtgU,GACpB,IAAIg7C,EAAQ+2X,EAAQ/xa,GAChBm3G,EAAIhkH,EAAMk5b,SAAS,OAAQixY,EAAOtixB,EAAMgsK,QAC5ChsK,EAAMgsK,OAAiC,QAAvB79K,EAAK6R,EAAMgsK,cAA2B,IAAP79K,OAAgB,EAASA,EAAGlvC,QAAO,SAAU8T,GACxF,OAAOopG,EAAEr9G,KAAI,SAAUkU,GAAK,OAAOA,EAAEgc,EAAI,IAAGq0B,SAAStwC,EAAEic,GAC3D,GACJ,EACShqB,EAAI,EAAGA,EAAI+xa,EAAQ96a,OAAQ+I,IAChCsgU,EAAQtgU,GAIZ,OAFA+xa,EAAUA,EAAQ93a,QAAO,SAAU8T,GAAK,OAAOA,EAAEi5M,QAAUj5M,EAAEi5M,OAAO/vN,OAAS,CAAG,IAChF9D,EAAM8sqB,iBAAiBz7Z,IAAc,GAAIutK,GAAS,IAC3C,CAAEh0Y,KAAMymO,IAAc,GAAIutK,GAAS,GAAOpJ,QAAQ,EArBzD,CAsBJ,EACA90a,KAAK2p0B,wBAA0B,SAAUC,GACrCtq0B,EAAM6p0B,uBAAyBx4jB,IAAc,GAAIi5jB,GAAyB,EAC9E,EAEA5p0B,KAAKiqd,MAAQ,SAAU2/W,GAEnB,IAAIC,EAAmBrmxB,IAAS,CAAC,EAAGlkD,EAAMgq0B,yBAa1C,OAZAhq0B,EAAMqq0B,wBAAwBC,GAC9BC,EAAiB12mB,OAAS,CACtB2/M,WAAYniK,IAAc,GAAIrxQ,EAAM6p0B,wBAAwB,GAC5DhzyB,GAAI,KACJ8J,KAAM,OACNknB,MAAO,SACP64X,SAAU,WACVqiM,SAAU,WACVn2L,QAAS,cACTx9a,SAAU,cAGP,CADkB80C,IAAS,CAAC,EAAGlkD,EAAM8p0B,8BAChBS,EAChC,EACA7p0B,KAAK6tK,WAAa,SAAUi8pB,EAAqBC,GAC7Czq0B,EAAM0q0B,YAAYF,EAAqBC,EAC3C,EACA/p0B,KAAKiq0B,oBAAsB,SAAUC,GACjC5q0B,EAAM6q0B,qBAAqBD,EAC/B,EACAlq0B,KAAKi5C,MAAQ,WACT35C,EAAM0q0B,iBAAY3m0B,OAAWA,EACjC,EACArD,KAAKgq0B,YAAc,SAAUI,EAAuBC,GAChD/q0B,EAAM2p0B,iBAAmBmB,EACzB9q0B,EAAM4p0B,gBAAkBmB,CAC5B,EACArq0B,KAAKmq0B,qBAAuB,SAAUG,GAClChr0B,EAAM0p0B,sBAAwBsB,CAClC,EACApznB,GAAel3M,KAAM,CACjBgp0B,sBAAuBxooB,GACvByooB,iBAAkBzooB,GAClB2ooB,uBAAwB3ooB,GACxB0ooB,gBAAiB1ooB,GACjBmpoB,wBAAyBz0vB,IAEjC,EAIiC,IAAI6zvB,KCxKzC,SAAWF,GACPA,EAAaA,EAAkB,IAAI,GAAK,MACxCA,EAAaA,EAAqB,OAAI,GAAK,QAC9C,CAHD,CAGGA,MAAiBA,IAAe,CAAC,IAEpC,SAAWC,GACPA,EAAsBA,EAA+B,QAAI,GAAK,UAC9DA,EAAsBA,EAAiC,UAAI,GAAK,YAChEA,EAAsBA,EAAmC,YAAI,GAAK,aACrE,CAJD,CAIGA,MAA0BA,IAAwB,CAAC,ICRvC,SAASjp0B,IAAKgxB,EAAIqO,GAC/B,OAAO,WACL,OAAOrO,EAAG1X,MAAM+lB,EAAS/7B,UAC3B,CACF,CCAA,MAAO2T,SAAQA,KAAIrX,OAAOkR,WACpB,eAACjR,KAAkBD,OAEnB8q0B,IAAS,CAACvnwB,GAASm6H,IACrB,MAAMxvJ,EAAM72B,IAASnX,KAAKw9L,GAC1B,OAAOn6H,EAAMr1B,KAASq1B,EAAMr1B,GAAOA,EAAI/8B,MAAM,GAAI,GAAG8P,cAAc,EAFvD,CAGZjhB,OAAOyY,OAAO,OAEXsyzB,IAAc59zB,IAClBA,EAAOA,EAAK8T,cACJy8K,GAAUotoB,IAAOptoB,KAAWvwL,GAGhC69zB,IAAa79zB,GAAQuwL,UAAgBA,IAAUvwL,GAS9C8E,QAAOA,KAAIhB,MASZ66E,IAAck/uB,IAAW,aAqB/B,MAAMvqwB,IAAgBsqwB,IAAW,eA2BjC,MAAMxovB,IAAWyovB,IAAW,UAQtBj1wB,IAAai1wB,IAAW,YASxBhwxB,IAAWgwxB,IAAW,UAStBn3wB,IAAY6pI,GAAoB,OAAVA,GAAmC,kBAAVA,EAiB/C5pI,IAAiBxkC,IACrB,GAAoB,WAAhBw7yB,IAAOx7yB,GACT,OAAO,EAGT,MAAMpe,EAAYjR,IAAeqvB,GACjC,OAAsB,OAAdpe,GAAsBA,IAAclR,OAAOkR,WAAkD,OAArClR,OAAOC,eAAeiR,OAA0Bge,OAAO6kB,eAAezkB,MAAUJ,OAAO4gB,YAAYxgB,EAAI,EAUnKptB,IAAS6o0B,IAAW,QASpB/vV,IAAS+vV,IAAW,QASpBr4J,IAASq4J,IAAW,QASpBE,IAAaF,IAAW,YAsCxBG,IAAoBH,IAAW,oBAE9BI,IAAkBC,IAAWC,IAAYC,KAAa,CAAC,iBAAkB,UAAW,WAAY,WAAW9k0B,IAAIuk0B,KA2BtH,SAASnk0B,IAAQwK,EAAKggB,GAA+B,IAM/C1kB,EACAkzB,GAPoB,WAAC2ryB,GAAa,GAAM7n0B,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAC,EAEhD,GAAY,OAAR0N,GAA+B,qBAARA,EAa3B,GALmB,kBAARA,IAETA,EAAM,CAACA,IAGLa,IAAQb,GAEV,IAAK1E,EAAI,EAAGkzB,EAAIxuB,EAAIzN,OAAQ+I,EAAIkzB,EAAGlzB,IACjC0kB,EAAGlxB,KAAK,KAAMkR,EAAI1E,GAAIA,EAAG0E,OAEtB,CAEL,MAAMtM,EAAOym0B,EAAavr0B,OAAO6zC,oBAAoBziC,GAAOpR,OAAO8E,KAAKsM,GAClE8+C,EAAMprD,EAAKnB,OACjB,IAAIkJ,EAEJ,IAAKH,EAAI,EAAGA,EAAIwjD,EAAKxjD,IACnBG,EAAM/H,EAAK4H,GACX0kB,EAAGlxB,KAAK,KAAMkR,EAAIvE,GAAMA,EAAKuE,EAEjC,CACF,CAEA,SAASuY,IAAQvY,EAAKvE,GACpBA,EAAMA,EAAIoU,cACV,MAAMnc,EAAO9E,OAAO8E,KAAKsM,GACzB,IACIqI,EADA/M,EAAI5H,EAAKnB,OAEb,KAAO+I,KAAM,GAEX,GADA+M,EAAO3U,EAAK4H,GACRG,IAAQ4M,EAAKwH,cACf,OAAOxH,EAGX,OAAO,IACT,CAEA,MAAM+xzB,IAEsB,qBAAf9rpB,WAAmCA,WACvB,qBAATtnK,KAAuBA,KAA0B,qBAAXmZ,OAAyBA,OAASuJ,OAGlF2wyB,IAAoBjwzB,IAAaswE,IAAYtwE,IAAYA,IAAYgwzB,IAoD3E,MA8HMlywB,KAAgB5pB,IAKG,qBAAfC,YAA8B1vC,IAAe0vC,YAH9C+tJ,GACEhuJ,KAAcguJ,aAAiBhuJ,KAHrB,IAACA,IAetB,MAiCMg8xB,IAAaX,IAAW,mBAWxB15zB,IAAiB,CAACiJ,IAAA,IAAC,eAACjJ,GAAeiJ,EAAA,MAAK,CAAClJ,EAAKlM,IAASmM,EAAenR,KAAKkR,EAAKlM,EAAK,EAApE,CAAsElF,OAAOkR,WAS9F4vD,IAAWiqwB,IAAW,UAEtBY,IAAoBA,CAACv6zB,EAAKynL,KAC9B,MAAMppE,EAAczvH,OAAO+9L,0BAA0B3sL,GAC/Cw6zB,EAAqB,CAAC,EAE5Bhl0B,IAAQ6oH,GAAa,CAACj9F,EAAYvtB,KAChC,IAAI8qD,GAC2C,KAA1CA,EAAM8oI,EAAQrmK,EAAYvtB,EAAMmM,MACnCw6zB,EAAmB3m0B,GAAQ8qD,GAAOv9B,EACpC,IAGFxyB,OAAOqxB,iBAAiBjgB,EAAKw6zB,EAAmB,EAsD5CC,IAAQ,6BAERC,IAAQ,aAERC,IAAW,CACfD,UACAD,UACAG,YAAaH,IAAQA,IAAMvpzB,cAAgBwpzB,KAwB7C,MA+BMG,IAAYlB,IAAW,iBAQvBmB,KAAkBC,IAkBE,oBAAjBpgtB,aAlBsCqgtB,IAmB7Cr2wB,IAAWy1wB,IAAQx/sB,aAlBfmgtB,IACKpgtB,aAGFqgtB,IAAuB,EAAEztzB,EAAO+yM,KACrC85mB,IAAQ3vyB,iBAAiB,WAAWjX,IAAoB,IAAnB,OAACzN,EAAM,KAAEszB,GAAK7lB,EAC7CzN,IAAWq0zB,KAAW/gyB,IAAS9rB,GACjC+yM,EAAU/tN,QAAU+tN,EAAU73K,OAAV63K,EACtB,IACC,GAEKh9F,IACNg9F,EAAU/kN,KAAK+nH,GACf82sB,IAAQx/sB,YAAYrtG,EAAO,IAAI,GATL,CAW3B,SAASxa,KAAKk2B,WAAY,IAAOq6F,GAAO/9F,WAAW+9F,IAhBlC,IAAEy3sB,IAAuBC,IAsB/C,MAAMC,IAAiC,qBAAnBr6qB,eAClBA,eAAe5xJ,KAAKor0B,KAAgC,qBAAZ9ywB,SAA2BA,QAAQozD,UAAYogtB,IAIzF,KACEj6zB,QAAO,IACPwuD,kBACApyC,SAlpBF,SAAkBiB,GAChB,OAAe,OAARA,IAAiBw8D,IAAYx8D,IAA4B,OAApBA,EAAI5Y,cAAyBo1E,IAAYx8D,EAAI5Y,cACpFq/C,IAAWzmC,EAAI5Y,YAAY2X,WAAaiB,EAAI5Y,YAAY2X,SAASiB,EACxE,EAgpBEg9yB,WApgBkB5uoB,IAClB,IAAIyE,EACJ,OAAOzE,IACgB,oBAAbq8S,UAA2Br8S,aAAiBq8S,UAClDhkb,IAAW2nI,EAAMnqE,UACY,cAA1B4uE,EAAO2ooB,IAAOptoB,KAEL,WAATyE,GAAqBpsI,IAAW2nI,EAAMrmL,WAAkC,sBAArBqmL,EAAMrmL,YAG/D,EA2fDk1zB,kBA9nBF,SAA2Bj9yB,GACzB,IAAIlE,EAMJ,OAJEA,EAD0B,qBAAhB/U,aAAiCA,YAAYC,OAC9CD,YAAYC,OAAOgZ,GAElBA,GAASA,EAAIqsB,QAAY8kB,IAAcnxC,EAAIqsB,QAEhDvwB,CACT,EAunBEm3D,SAAQ,IACRvnC,aACAmwC,UA9kBgBuyG,IAAmB,IAAVA,IAA4B,IAAVA,EA+kB3C7pI,SAAQ,IACRC,cAAa,IACbq3wB,qBACAC,cACAC,eACAC,cACAx/uB,YAAW,IACX5pF,OAAM,IACN84e,WACA03L,WACA5xmB,aACA/K,WAAU,IACVy2wB,SA9hBgBl9yB,GAAQukC,IAASvkC,IAAQymC,IAAWzmC,EAAIm9yB,MA+hBxDvB,sBACA5xwB,iBACA2xwB,eACArk0B,YACA88E,MAhaF,SAASA,IACP,MAAM,SAACgpvB,GAAYjB,IAAiBlr0B,OAASA,MAAQ,CAAC,EAChD6qB,EAAS,CAAC,EACV69C,EAAcA,CAAC35C,EAAKziB,KACxB,MAAM8/zB,EAAYD,GAAY/izB,IAAQyB,EAAQve,IAAQA,EAClDinD,IAAc1oC,EAAOuhzB,KAAe74wB,IAAcxkC,GACpDlE,EAAOuhzB,GAAajpvB,EAAMt4D,EAAOuhzB,GAAYr9yB,GACpCwkC,IAAcxkC,GACvBlE,EAAOuhzB,GAAajpvB,EAAM,CAAC,EAAGp0D,GACrBrd,IAAQqd,GACjBlE,EAAOuhzB,GAAar9yB,EAAIne,QAExBia,EAAOuhzB,GAAar9yB,CACtB,EAGF,IAAK,IAAI5iB,EAAI,EAAGkzB,EAAIl8B,UAAUC,OAAQ+I,EAAIkzB,EAAGlzB,IAC3ChJ,UAAUgJ,IAAM9F,IAAQlD,UAAUgJ,GAAIu8D,GAExC,OAAO79C,CACT,EA6YE4+D,OAjYa,SAACxzE,EAAGC,EAAGgpB,GAA8B,IAArB,WAAC8ryB,GAAW7n0B,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAE,CAAC,EAQ5C,OAPAkD,IAAQ6P,GAAG,CAAC6Y,EAAKziB,KACX4yB,GAAWs2B,IAAWzmC,GACxB9Y,EAAE3J,GAAOzM,IAAKkvB,EAAKmQ,GAEnBjpB,EAAE3J,GAAOyiB,CACX,GACC,CAACi8yB,eACG/0zB,CACT,EAyXEwc,KA7fYkb,GAAQA,EAAIlb,KACxBkb,EAAIlb,OAASkb,EAAIt9B,QAAQ,qCAAsC,IA6f/Dg8zB,SAjXgBt3zB,IACc,QAA1BA,EAAQ8jB,WAAW,KACrB9jB,EAAUA,EAAQnE,MAAM,IAEnBmE,GA8WPu3zB,SAlWeA,CAACn2zB,EAAao2zB,EAAkBnt0B,EAAO8vH,KACtD/4G,EAAYxF,UAAYlR,OAAOyY,OAAOq0zB,EAAiB57zB,UAAWu+G,GAClE/4G,EAAYxF,UAAUwF,YAAcA,EACpC1W,OAAO4c,eAAelG,EAAa,QAAS,CAC1CvU,MAAO2q0B,EAAiB57zB,YAE1BvR,GAASK,OAAOgkD,OAAOttC,EAAYxF,UAAWvR,EAAM,EA6VpDot0B,aAjVmBA,CAACC,EAAWC,EAAStm0B,EAAQum0B,KAChD,IAAIvt0B,EACA+M,EACAxH,EACJ,MAAMkoT,EAAS,CAAC,EAIhB,GAFA6/gB,EAAUA,GAAW,CAAC,EAEL,MAAbD,EAAmB,OAAOC,EAE9B,EAAG,CAGD,IAFAtt0B,EAAQK,OAAO6zC,oBAAoBm5xB,GACnCtg0B,EAAI/M,EAAMgE,OACH+I,KAAM,GACXxH,EAAOvF,EAAM+M,GACPwg0B,IAAcA,EAAWho0B,EAAM8n0B,EAAWC,IAAc7/gB,EAAOloT,KACnE+n0B,EAAQ/n0B,GAAQ8n0B,EAAU9n0B,GAC1BkoT,EAAOloT,IAAQ,GAGnB8n0B,GAAuB,IAAXrm0B,GAAoB1G,IAAe+s0B,EACjD,OAASA,KAAerm0B,GAAUA,EAAOqm0B,EAAWC,KAAaD,IAAcht0B,OAAOkR,WAEtF,OAAO+7zB,CAAO,EA2TdnC,WACAC,eACAvgvB,SAjTeA,CAACt8C,EAAK8+mB,EAAcvikB,KACnCv8C,EAAM5vB,OAAO4vB,SACItqC,IAAb6mF,GAA0BA,EAAWv8C,EAAIvqC,UAC3C8mF,EAAWv8C,EAAIvqC,QAEjB8mF,GAAYuikB,EAAarppB,OACzB,MAAMssD,EAAY/hB,EAAIhjC,QAAQ8hpB,EAAcvikB,GAC5C,OAAsB,IAAfx6B,GAAoBA,IAAcw6B,CAAQ,EA2SjD/H,QAhSeg7G,IACf,IAAKA,EAAO,OAAO,KACnB,GAAIzrL,IAAQyrL,GAAQ,OAAOA,EAC3B,IAAIhxL,EAAIgxL,EAAM/5L,OACd,IAAKq3C,IAAStuC,GAAI,OAAO,KACzB,MAAMghC,EAAM,IAAIz8B,MAAMvE,GACtB,KAAOA,KAAM,GACXghC,EAAIhhC,GAAKgxL,EAAMhxL,GAEjB,OAAOghC,CAAG,EAwRVy/xB,aA7PmBA,CAAC/7zB,EAAKggB,KACzB,MAEM0e,GAFY1+B,GAAOA,EAAI8d,OAAO4gB,WAET5vC,KAAKkR,GAEhC,IAAIga,EAEJ,MAAQA,EAAS0kB,EAASh5B,UAAYsU,EAAOrU,MAAM,CACjD,MAAM4kE,EAAOvwD,EAAOjpB,MACpBivB,EAAGlxB,KAAKkR,EAAKuqE,EAAK,GAAIA,EAAK,GAC7B,GAoPAyxvB,SAzOeA,CAAC77wB,EAAQrjB,KACxB,IAAIlZ,EACJ,MAAM0Y,EAAM,GAEZ,KAAwC,QAAhC1Y,EAAUu8B,EAAOnf,KAAKlE,KAC5BR,EAAI/gC,KAAKqoB,GAGX,OAAO0Y,CAAG,EAkOVg+xB,eACAr6zB,eAAc,IACd/L,WAAY+L,IACZs6zB,sBACA0B,cAzLqBj8zB,IACrBu6zB,IAAkBv6zB,GAAK,CAACohB,EAAYvtB,KAElC,GAAI8wD,IAAW3kD,KAA6D,IAArD,CAAC,YAAa,SAAU,UAAUlG,QAAQjG,GAC/D,OAAO,EAGT,MAAM9C,EAAQiP,EAAInM,GAEb8wD,IAAW5zD,KAEhBqwB,EAAW9Z,YAAa,EAEpB,aAAc8Z,EAChBA,EAAW7Z,UAAW,EAInB6Z,EAAWvY,MACduY,EAAWvY,IAAM,KACf,MAAMqT,MAAM,qCAAwCroB,EAAO,IAAK,GAEpE,GACA,EAmKFqo0B,YAhKkBA,CAACC,EAAehvzB,KAClC,MAAMnN,EAAM,CAAC,EAEP0/E,EAAUpjD,IACdA,EAAI9mC,SAAQzE,IACViP,EAAIjP,IAAS,CAAI,GACjB,EAKJ,OAFA8P,IAAQs7zB,GAAiBz8uB,EAAOy8uB,GAAiBz8uB,EAAOxyE,OAAOivzB,GAAer6yB,MAAM3U,IAE7EnN,CAAG,EAsJVo8zB,YAlOkBt/xB,GACXA,EAAIjtB,cAAcrQ,QAAQ,yBAC/B,SAAkB0Q,EAAGyhF,EAAIC,GACvB,OAAOD,EAAGzgF,cAAgB0gF,CAC5B,IA+NFpnB,KApJWA,OAqJX6xvB,eAnJqBA,CAACtr0B,EAAO4W,IACb,MAAT5W,GAAiBikB,OAAO2qB,SAAS5uC,GAASA,GAASA,EAAQ4W,EAmJlE4Q,QAAO,IACPmR,OAAQ0wyB,IACRC,qBACAM,aACA5rsB,eA1IqB,WAAgD,IAA/CvpH,EAAIlT,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GAAIi7K,EAAQj7K,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAGqo0B,IAASC,YACjD99xB,EAAM,GACV,MAAM,OAACvqC,GAAUg7K,EACjB,KAAO/nK,KACLs3B,GAAOywI,EAASx6K,KAAKk2B,SAAW12B,EAAO,GAGzC,OAAOuqC,CACT,EAmIEw/xB,oBA1HF,SAA6BhwoB,GAC3B,SAAUA,GAAS3nI,IAAW2nI,EAAMnqE,SAAyC,aAA9BmqE,EAAMxuK,OAAO6kB,cAA+B2pJ,EAAMxuK,OAAO4gB,UAC1G,EAyHE69xB,aAvHoBv8zB,IACpB,MAAMmc,EAAQ,IAAItc,MAAM,IAElBktH,EAAQA,CAAChnH,EAAQzK,KAErB,GAAImnD,IAAS18C,GAAS,CACpB,GAAIoW,EAAMriB,QAAQiM,IAAW,EAC3B,OAGF,KAAK,WAAYA,GAAS,CACxBoW,EAAM7gB,GAAKyK,EACX,MAAMvO,EAASqJ,IAAQkF,GAAU,GAAK,CAAC,EASvC,OAPAvQ,IAAQuQ,GAAQ,CAAChV,EAAO0K,KACtB,MAAM+g0B,EAAezvsB,EAAMh8H,EAAOuK,EAAI,IACrCo/E,IAAY8hvB,KAAkBhl0B,EAAOiE,GAAO+g0B,EAAa,IAG5DrgzB,EAAM7gB,QAAK9I,EAEJgF,CACT,CACF,CAEA,OAAOuO,CAAM,EAGf,OAAOgnH,EAAM/sH,EAAK,EAAE,EA4FpB66zB,cACA4B,WAxFkBnwoB,GAClBA,IAAU7pI,IAAS6pI,IAAU3nI,IAAW2nI,KAAW3nI,IAAW2nI,EAAMliE,OAASzlE,IAAW2nI,EAAM/gE,OAwF9F5Q,aAAcmgtB,IACdG,UCvuBF,SAASyB,IAAWr2zB,EAASwV,EAAM4tE,EAAQ4lF,EAASsb,GAClDzuK,MAAMptB,KAAKK,MAEP+sB,MAAMwpG,kBACRxpG,MAAMwpG,kBAAkBv2H,KAAMA,KAAKmW,aAEnCnW,KAAKgtB,OAAS,IAAID,OAASC,MAG7BhtB,KAAKkX,QAAUA,EACflX,KAAK0E,KAAO,aACZgoB,IAAS1sB,KAAK0sB,KAAOA,GACrB4tE,IAAWt6F,KAAKs6F,OAASA,GACzB4lF,IAAYlgL,KAAKkgL,QAAUA,GACvBsb,IACFx7L,KAAKw7L,SAAWA,EAChBx7L,KAAKy2I,OAAS+kD,EAAS/kD,OAAS+kD,EAAS/kD,OAAS,KAEtD,CAEAizrB,IAAM4C,SAASiB,IAAYxgzB,MAAO,CAChCujE,OAAQ,WACN,MAAO,CAELp5E,QAASlX,KAAKkX,QACdxS,KAAM1E,KAAK0E,KAEX2jD,YAAaroD,KAAKqoD,YAClB/rC,OAAQtc,KAAKsc,OAEb6hd,SAAUn+d,KAAKm+d,SACfqvW,WAAYxt0B,KAAKwt0B,WACjBC,aAAczt0B,KAAKyt0B,aACnBzgzB,MAAOhtB,KAAKgtB,MAEZstE,OAAQovuB,IAAM0D,aAAapt0B,KAAKs6F,QAChC5tE,KAAM1sB,KAAK0sB,KACX+pH,OAAQz2I,KAAKy2I,OAEjB,IAGF,MAAM9lI,IAAY48zB,IAAW58zB,UACvBu+G,IAAc,CAAC,EAErB,CACE,uBACA,iBACA,eACA,YACA,cACA,4BACA,iBACA,mBACA,kBACA,eACA,kBACA,mBAEA7oH,SAAQqmB,IACRwiG,IAAYxiG,GAAQ,CAAC9qB,MAAO8qB,EAAK,IAGnCjtB,OAAOqxB,iBAAiBy8yB,IAAYr+sB,KACpCzvH,OAAO4c,eAAe1L,IAAW,eAAgB,CAAC/O,OAAO,IAGzD2r0B,IAAWjq0B,KAAO,CAAC2T,EAAOyV,EAAM4tE,EAAQ4lF,EAASsb,EAAUkyoB,KACzD,MAAMC,EAAalu0B,OAAOyY,OAAOvH,KAgBjC,OAdA+4zB,IAAM8C,aAAav1zB,EAAO02zB,GAAY,SAAgB98zB,GACpD,OAAOA,IAAQkc,MAAMpc,SACvB,IAAGhM,GACe,iBAATA,IAGT4o0B,IAAW5t0B,KAAKgu0B,EAAY12zB,EAAMC,QAASwV,EAAM4tE,EAAQ4lF,EAASsb,GAElEmyoB,EAAW9/nB,MAAQ52L,EAEnB02zB,EAAWjp0B,KAAOuS,EAAMvS,KAExBgp0B,GAAeju0B,OAAOgkD,OAAOkqxB,EAAYD,GAElCC,CAAU,EAGnB,cCxFA,SAASC,IAAYzwoB,GACnB,OAAOusoB,IAAMn2wB,cAAc4pI,IAAUusoB,IAAMh4zB,QAAQyrL,EACrD,CASA,SAAS0woB,IAAevh0B,GACtB,OAAOo9zB,IAAMz/uB,SAAS39E,EAAK,MAAQA,EAAIsE,MAAM,GAAI,GAAKtE,CACxD,CAWA,SAASwh0B,IAAUhhwB,EAAMxgE,EAAKyh0B,GAC5B,OAAKjhwB,EACEA,EAAK1zD,OAAO9M,GAAKrG,KAAI,SAAcmY,EAAOjS,GAG/C,OADAiS,EAAQyvzB,IAAezvzB,IACf2vzB,GAAQ5h0B,EAAI,IAAMiS,EAAQ,IAAMA,CAC1C,IAAGpY,KAAK+n0B,EAAO,IAAM,IALHzh0B,CAMpB,CAaA,MAAMykB,IAAa24yB,IAAM8C,aAAa9C,IAAO,CAAC,EAAG,MAAM,SAAgB/k0B,GACrE,MAAO,WAAWwkB,KAAKxkB,EACzB,IA8JA,UArIA,SAAoBkM,EAAK0oe,EAAUz6d,GACjC,IAAK4qzB,IAAMp2wB,SAASziD,GAClB,MAAM,IAAI+G,UAAU,4BAItB2he,EAAWA,GAAY,IAAyBC,SAYhD,MAAMw0V,GATNlvzB,EAAU4qzB,IAAM8C,aAAa1tzB,EAAS,CACpCkvzB,YAAY,EACZD,MAAM,EACNv7vB,SAAS,IACR,GAAO,SAAiBorO,EAAQhnS,GAEjC,OAAQ8yzB,IAAMn+uB,YAAY30E,EAAOgnS,GACnC,KAE2BowhB,WAErB7wsB,EAAUr+G,EAAQq+G,SAAW8wsB,EAC7BF,EAAOjvzB,EAAQivzB,KACfv7vB,EAAU1zD,EAAQ0zD,QAElB07vB,GADQpvzB,EAAQ+kd,MAAwB,qBAATA,MAAwBA,OACpC6lW,IAAMyD,oBAAoB5zV,GAEnD,IAAKmwV,IAAMl0wB,WAAW2nE,GACpB,MAAM,IAAIvlH,UAAU,8BAGtB,SAAS4nrB,EAAa59rB,GACpB,GAAc,OAAVA,EAAgB,MAAO,GAE3B,GAAI8n0B,IAAM/n0B,OAAOC,GACf,OAAOA,EAAMu3G,cAGf,IAAK+0tB,GAAWxE,IAAMv3J,OAAOvwqB,GAC3B,MAAM,IAAI2r0B,IAAW,gDAGvB,OAAI7D,IAAMxpwB,cAAct+D,IAAU8n0B,IAAM3wwB,aAAan3D,GAC5Css0B,GAA2B,oBAATrqW,KAAsB,IAAIA,KAAK,CAACjie,IAAUg3D,OAAOt1D,KAAK1B,GAG1EA,CACT,CAYA,SAASqs0B,EAAers0B,EAAO0K,EAAKwgE,GAClC,IAAI3/B,EAAMvrC,EAEV,GAAIA,IAAUkrE,GAAyB,kBAAVlrE,EAC3B,GAAI8n0B,IAAMz/uB,SAAS39E,EAAK,MAEtBA,EAAM0h0B,EAAa1h0B,EAAMA,EAAIsE,MAAM,GAAI,GAEvChP,EAAQ6uC,KAAK+mF,UAAU51H,QAClB,GACJ8n0B,IAAMh4zB,QAAQ9P,IAnGvB,SAAqBurC,GACnB,OAAOu8xB,IAAMh4zB,QAAQy7B,KAASA,EAAI1oC,KAAKmp0B,IACzC,CAiGiCO,CAAYvs0B,KACnC8n0B,IAAMgB,WAAW9o0B,IAAU8n0B,IAAMz/uB,SAAS39E,EAAK,SAAW6gC,EAAMu8xB,IAAMvnvB,QAAQvgF,IAYhF,OATA0K,EAAMuh0B,IAAevh0B,GAErB6gC,EAAI9mC,SAAQ,SAAc6G,EAAIuf,IAC1Bi9yB,IAAMn+uB,YAAYr+E,IAAc,OAAPA,GAAgBqse,EAASvmX,QAEtC,IAAZxgD,EAAmBs7vB,IAAU,CAACxh0B,GAAMmgB,EAAOshzB,GAAqB,OAAZv7vB,EAAmBlmE,EAAMA,EAAM,KACnFkzrB,EAAatyrB,GAEjB,KACO,EAIX,QAAI0g0B,IAAYhs0B,KAIhB23e,EAASvmX,OAAO86sB,IAAUhhwB,EAAMxgE,EAAKyh0B,GAAOvuI,EAAa59rB,KAElD,EACT,CAEA,MAAMorB,EAAQ,GAERohzB,EAAiB3u0B,OAAOgkD,OAAO1yB,IAAY,CAC/Ck9yB,iBACAzuI,eACAouI,kBAyBF,IAAKlE,IAAMp2wB,SAASziD,GAClB,MAAM,IAAI+G,UAAU,0BAKtB,OA5BA,SAAS6gc,EAAM72c,EAAOkrE,GACpB,IAAI48vB,IAAMn+uB,YAAY3pF,GAAtB,CAEA,IAA8B,IAA1BorB,EAAMriB,QAAQ/I,GAChB,MAAMmrB,MAAM,kCAAoC+/C,EAAK9mE,KAAK,MAG5DgnB,EAAM5gB,KAAKxK,GAEX8n0B,IAAMrj0B,QAAQzE,GAAO,SAAcsL,EAAIZ,IAKtB,OAJEo9zB,IAAMn+uB,YAAYr+E,IAAc,OAAPA,IAAgBiwH,EAAQx9H,KAChE45e,EAAUrse,EAAIw8zB,IAAM1nvB,SAAS11E,GAAOA,EAAImmB,OAASnmB,EAAKwgE,EAAMshwB,KAI5D31X,EAAMvrc,EAAI4/D,EAAOA,EAAK1zD,OAAO9M,GAAO,CAACA,GAEzC,IAEA0gB,EAAMsR,KAlB8B,CAmBtC,CAMAm6a,CAAM5nc,GAEC0oe,CACT,EC5MA,SAAS/0b,IAAO7W,GACd,MAAM0gyB,EAAU,CACd,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,MAAO,IACP,MAAO,MAET,OAAOr+xB,mBAAmBrC,GAAKt9B,QAAQ,oBAAoB,SAAkB8G,GAC3E,OAAOk3zB,EAAQl3zB,EACjB,GACF,CAUA,SAASm3zB,IAAqBvrsB,EAAQjkH,GACpC9e,KAAKuu0B,OAAS,GAEdxrsB,GAAUyrsB,IAAWzrsB,EAAQ/iI,KAAM8e,EACrC,CAEA,MAAMnO,IAAY29zB,IAAqB39zB,UAEvCA,IAAUqiH,OAAS,SAAgBtuH,EAAM9C,GACvC5B,KAAKuu0B,OAAOni0B,KAAK,CAAC1H,EAAM9C,GAC1B,EAEA+O,IAAUmG,SAAW,SAAkB23zB,GACrC,MAAMC,EAAUD,EAAU,SAAS7s0B,GACjC,OAAO6s0B,EAAQ9u0B,KAAKK,KAAM4B,EAAO4iD,IACnC,EAAIA,IAEJ,OAAOxkD,KAAKuu0B,OAAOto0B,KAAI,SAAcm1E,GACnC,OAAOszvB,EAAQtzvB,EAAK,IAAM,IAAMszvB,EAAQtzvB,EAAK,GAC/C,GAAG,IAAIp1E,KAAK,IACd,EAEA,cC5CA,SAASw+C,IAAOz1B,GACd,OAAOihB,mBAAmBjhB,GACxB1e,QAAQ,QAAS,KACjBA,QAAQ,OAAQ,KAChBA,QAAQ,QAAS,KACjBA,QAAQ,OAAQ,KAChBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,IACrB,CAWe,SAASs+zB,IAAS1/sB,EAAK8T,EAAQjkH,GAE5C,IAAKikH,EACH,OAAO9T,EAGT,MAAMy/sB,EAAU5vzB,GAAWA,EAAQ0lC,QAAUA,IAEvCoqxB,EAAc9vzB,GAAWA,EAAQ+vzB,UAEvC,IAAIC,EAUJ,GAPEA,EADEF,EACiBA,EAAY7rsB,EAAQjkH,GAEpB4qzB,IAAMiB,kBAAkB5nsB,GACzCA,EAAOjsH,WACP,IAAIw3zB,IAAqBvrsB,EAAQjkH,GAAShI,SAAS43zB,GAGnDI,EAAkB,CACpB,MAAMC,EAAgB9/sB,EAAItkH,QAAQ,MAEX,IAAnBok0B,IACF9/sB,EAAMA,EAAIr+G,MAAM,EAAGm+zB,IAErB9/sB,KAA8B,IAAtBA,EAAItkH,QAAQ,KAAc,IAAM,KAAOmk0B,CACjD,CAEA,OAAO7/sB,CACT,CCQA,UAlEA,MACE94G,WAAAA,GACEnW,KAAKsZ,SAAW,EAClB,CAUAmtH,GAAAA,CAAIq1D,EAAWC,EAAUj9K,GAOvB,OANA9e,KAAKsZ,SAASlN,KAAK,CACjB0vL,YACAC,WACAizoB,cAAalwzB,GAAUA,EAAQkwzB,YAC/BC,QAASnwzB,EAAUA,EAAQmwzB,QAAU,OAEhCjv0B,KAAKsZ,SAASlW,OAAS,CAChC,CASA8r0B,KAAAA,CAAM/4yB,GACAn2B,KAAKsZ,SAAS6c,KAChBn2B,KAAKsZ,SAAS6c,GAAM,KAExB,CAOAk+B,KAAAA,GACMr0D,KAAKsZ,WACPtZ,KAAKsZ,SAAW,GAEpB,CAYAjT,OAAAA,CAAQwqB,GACN64yB,IAAMrj0B,QAAQrG,KAAKsZ,UAAU,SAAwBG,GACzC,OAANA,GACFoX,EAAGpX,EAEP,GACF,GCjEF,KACE01zB,mBAAmB,EACnBC,mBAAmB,EACnBC,qBAAqB,GCDvB,KACEp9iB,WAAW,EACX9/G,QAAS,CACPg2pB,gBCJsC,qBAApBA,gBAAkCA,gBAAkBmG,IDKtE90V,SEN+B,qBAAbA,SAA2BA,SAAW,KFOxD3V,KGP2B,qBAATA,KAAuBA,KAAO,MHSlDyrW,UAAW,CAAC,OAAQ,QAAS,OAAQ,OAAQ,MAAO,SIXhDC,IAAkC,qBAAXv+yB,QAA8C,qBAAbE,SAExDs+yB,IAAkC,kBAAdt3yB,WAA0BA,gBAAa70B,EAmB3Dos0B,IAAwBF,OAC1BC,KAAc,CAAC,cAAe,eAAgB,MAAM7k0B,QAAQ6k0B,IAAWE,SAAW,GAWhFC,IAE2B,qBAAtBC,mBAEP/3zB,gBAAgB+3zB,mBACc,oBAAvB/3zB,KAAKg4zB,cAIV52sB,IAASs2sB,KAAiBv+yB,OAAO2G,SAASwwB,MAAQ,mBCvCxD,QACKuhxB,KACA1hf,KCyFL,UA9CA,SAAwBuxJ,GACtB,SAASu2V,EAAUhjwB,EAAMlrE,EAAOyG,EAAQokB,GACtC,IAAI/nB,EAAOooE,EAAKrgD,KAEhB,GAAa,cAAT/nB,EAAsB,OAAO,EAEjC,MAAMqr0B,EAAelqzB,OAAO2qB,UAAU9rC,GAChCsr0B,EAASvjzB,GAASqgD,EAAK1pE,OAG7B,GAFAsB,GAAQA,GAAQgl0B,IAAMh4zB,QAAQrJ,GAAUA,EAAOjF,OAASsB,EAEpDsr0B,EAOF,OANItG,IAAM3k0B,WAAWsD,EAAQ3D,GAC3B2D,EAAO3D,GAAQ,CAAC2D,EAAO3D,GAAO9C,GAE9ByG,EAAO3D,GAAQ9C,GAGTmu0B,EAGL1n0B,EAAO3D,IAAUgl0B,IAAMp2wB,SAASjrD,EAAO3D,MAC1C2D,EAAO3D,GAAQ,IASjB,OANeor0B,EAAUhjwB,EAAMlrE,EAAOyG,EAAO3D,GAAO+nB,IAEtCi9yB,IAAMh4zB,QAAQrJ,EAAO3D,MACjC2D,EAAO3D,GA/Cb,SAAuByoC,GACrB,MAAMt8B,EAAM,CAAC,EACPtM,EAAO9E,OAAO8E,KAAK4oC,GACzB,IAAIhhC,EACJ,MAAMwjD,EAAMprD,EAAKnB,OACjB,IAAIkJ,EACJ,IAAKH,EAAI,EAAGA,EAAIwjD,EAAKxjD,IACnBG,EAAM/H,EAAK4H,GACX0E,EAAIvE,GAAO6gC,EAAI7gC,GAEjB,OAAOuE,CACT,CAoCqBw+R,CAAchnS,EAAO3D,MAG9Bqr0B,CACV,CAEA,GAAIrG,IAAMqC,WAAWxyV,IAAamwV,IAAMl0wB,WAAW+jb,EAASjje,SAAU,CACpE,MAAMzF,EAAM,CAAC,EAMb,OAJA64zB,IAAMkD,aAAarzV,GAAU,CAAC70e,EAAM9C,KAClCku0B,EA1EN,SAAuBpr0B,GAKrB,OAAOgl0B,IAAMmD,SAAS,gBAAiBno0B,GAAMuB,KAAIkR,GAC3B,OAAbA,EAAM,GAAc,GAAKA,EAAM,IAAMA,EAAM,IAEtD,CAkEgB84zB,CAAcvr0B,GAAO9C,EAAOiP,EAAK,EAAE,IAGxCA,CACT,CAEA,OAAO,IACT,ECzDA,MAAM4mB,IAAW,CAEfy4yB,aAAcC,IAEdC,QAAS,CAAC,MAAO,OAAQ,SAEzBC,iBAAkB,CAAC,SAA0BnmyB,EAAMirM,GACjD,MAAMuvG,EAAcvvG,EAAQm7lB,kBAAoB,GAC1CC,EAAqB7rf,EAAY/5U,QAAQ,qBAAuB,EAChE6l0B,EAAkB9G,IAAMp2wB,SAASppB,GAEnCsmyB,GAAmB9G,IAAMyB,WAAWjhyB,KACtCA,EAAO,IAAIsvc,SAAStvc,IAKtB,GAFmBw/xB,IAAMqC,WAAW7hyB,GAGlC,OAAOqmyB,EAAqB9/xB,KAAK+mF,UAAUi5sB,IAAevmyB,IAASA,EAGrE,GAAIw/xB,IAAMxpwB,cAAch2B,IACtBw/xB,IAAM57yB,SAASoc,IACfw/xB,IAAMuC,SAAS/hyB,IACfw/xB,IAAMjvV,OAAOvwc,IACbw/xB,IAAMv3J,OAAOjooB,IACbw/xB,IAAMkB,iBAAiB1gyB,GAEvB,OAAOA,EAET,GAAIw/xB,IAAMsC,kBAAkB9hyB,GAC1B,OAAOA,EAAKkR,OAEd,GAAIsuxB,IAAMiB,kBAAkBzgyB,GAE1B,OADAirM,EAAQu7lB,eAAe,mDAAmD,GACnExmyB,EAAKpzB,WAGd,IAAI4zzB,EAEJ,GAAI8F,EAAiB,CACnB,GAAI9rf,EAAY/5U,QAAQ,sCAAwC,EAC9D,OCvEO,SAA0Bu/B,EAAMprB,GAC7C,OAAO0vzB,IAAWtkyB,EAAM,IAAI89S,IAAS71K,QAAQg2pB,gBAAmB1o0B,OAAOgkD,OAAO,CAC5E05E,QAAS,SAASv7H,EAAO0K,EAAKwgE,EAAMivD,GAClC,OAAIisN,IAAS2of,QAAUjH,IAAM57yB,SAASlsB,IACpC5B,KAAKgzH,OAAO1mH,EAAK1K,EAAMkV,SAAS,YACzB,GAGFilH,EAAQkysB,eAAe90zB,MAAMnZ,KAAMmD,UAC5C,GACC2b,GACL,CD4De8xzB,CAAiB1myB,EAAMlqC,KAAK6w0B,gBAAgB/5zB,WAGrD,IAAK4zzB,EAAahB,IAAMgB,WAAWxgyB,KAAUw6S,EAAY/5U,QAAQ,wBAA0B,EAAG,CAC5F,MAAMmm0B,EAAY9w0B,KAAK2rH,KAAO3rH,KAAK2rH,IAAI6tX,SAEvC,OAAOg1V,IACL9D,EAAa,CAAC,UAAWxgyB,GAAQA,EACjC4myB,GAAa,IAAIA,EACjB9w0B,KAAK6w0B,eAET,CACF,CAEA,OAAIL,GAAmBD,GACrBp7lB,EAAQu7lB,eAAe,oBAAoB,GAxEjD,SAAyBnpsB,EAAU1hF,EAAQ4oxB,GACzC,GAAI/E,IAAM1nvB,SAASulD,GACjB,IAEE,OADC1hF,GAAUpV,KAAKuL,OAAOurF,GAChBmisB,IAAMj3yB,KAAK80G,EACpB,CAAE,MAAOlnI,KACP,GAAe,gBAAXA,IAAEqE,KACJ,MAAMrE,GAEV,CAGF,OAAQou0B,GAAWh+xB,KAAK+mF,WAAW+P,EACrC,CA4DawpsB,CAAgB7myB,IAGlBA,CACT,GAEA8myB,kBAAmB,CAAC,SAA2B9myB,GAC7C,MAAMgmyB,EAAelw0B,KAAKkw0B,cAAgBz4yB,IAASy4yB,aAC7Cd,EAAoBc,GAAgBA,EAAad,kBACjD6B,EAAsC,SAAtBjx0B,KAAKkx0B,aAE3B,GAAIxH,IAAMoB,WAAW5gyB,IAASw/xB,IAAMkB,iBAAiB1gyB,GACnD,OAAOA,EAGT,GAAIA,GAAQw/xB,IAAM1nvB,SAAS93C,KAAWklyB,IAAsBpv0B,KAAKkx0B,cAAiBD,GAAgB,CAChG,MACME,IADoBjB,GAAgBA,EAAaf,oBACP8B,EAEhD,IACE,OAAOxgyB,KAAKuL,MAAM9R,EACpB,CAAE,MAAO7pC,KACP,GAAI8w0B,EAAmB,CACrB,GAAe,gBAAX9w0B,IAAEqE,KACJ,MAAM6o0B,IAAWjq0B,KAAKjD,IAAGkt0B,IAAW6D,iBAAkBpx0B,KAAM,KAAMA,KAAKw7L,UAEzE,MAAMn7L,GACR,CACF,CACF,CAEA,OAAO6pC,CACT,GAMAu1I,QAAS,EAET4xpB,eAAgB,aAChBC,eAAgB,eAEhBC,kBAAmB,EACnBC,eAAgB,EAEhB7ltB,IAAK,CACH6tX,SAAUxxJ,IAAS71K,QAAQqnU,SAC3B3V,KAAM77I,IAAS71K,QAAQ0xT,MAGzB4tW,eAAgB,SAAwBh7rB,GACtC,OAAOA,GAAU,KAAOA,EAAS,GACnC,EAEA0+F,QAAS,CACPu8lB,OAAQ,CACN,OAAU,oCACV,oBAAgBru0B,KAKtBqm0B,IAAMrj0B,QAAQ,CAAC,SAAU,MAAO,OAAQ,OAAQ,MAAO,UAAW4zB,IAChExC,IAAS09M,QAAQl7M,GAAU,CAAC,CAAC,IAG/B,cE1JM03yB,IAAoBjI,IAAMqD,YAAY,CAC1C,MAAO,gBAAiB,iBAAkB,eAAgB,OAC1D,UAAW,OAAQ,OAAQ,oBAAqB,sBAChD,gBAAiB,WAAY,eAAgB,sBAC7C,UAAW,cAAe,eCLtB6E,IAAajjzB,OAAO,aAE1B,SAASkjzB,IAAgBnjpB,GACvB,OAAOA,GAAU3wK,OAAO2wK,GAAQj8J,OAAO/R,aACzC,CAEA,SAASu4uB,IAAer3vB,GACtB,OAAc,IAAVA,GAA4B,MAATA,EACdA,EAGF8n0B,IAAMh4zB,QAAQ9P,GAASA,EAAMqE,IAAIgzvB,KAAkBl7uB,OAAOnc,EACnE,CAgBA,SAASkw0B,IAAiB72zB,EAASrZ,EAAO8sL,EAAQtoL,EAAQ2r0B,GACxD,OAAIrI,IAAMl0wB,WAAWpvD,GACZA,EAAOzG,KAAKK,KAAM4B,EAAO8sL,IAG9BqjpB,IACFnw0B,EAAQ8sL,GAGLg7oB,IAAM1nvB,SAASpgF,GAEhB8n0B,IAAM1nvB,SAAS57E,IACiB,IAA3BxE,EAAM+I,QAAQvE,GAGnBsj0B,IAAMnpwB,SAASn6D,GACVA,EAAO+iB,KAAKvnB,QADrB,OANA,EASF,CAsBA,MAAMow0B,IACJ77zB,WAAAA,CAAYg/N,GACVA,GAAWn1O,KAAK0Z,IAAIy7N,EACtB,CAEAz7N,GAAAA,CAAIg1K,EAAQujpB,EAAgBC,GAC1B,MAAMr6zB,EAAO7X,KAEb,SAAS+9gB,EAAU1hU,EAAQ81nB,EAASC,GAClC,MAAMC,EAAUR,IAAgBM,GAEhC,IAAKE,EACH,MAAM,IAAItlzB,MAAM,0CAGlB,MAAMzgB,EAAMo9zB,IAAMtgzB,QAAQvR,EAAMw6zB,KAE5B/l0B,QAAqBjJ,IAAdwU,EAAKvL,KAAmC,IAAb8l0B,QAAmC/u0B,IAAb+u0B,IAAwC,IAAdv6zB,EAAKvL,MACzFuL,EAAKvL,GAAO6l0B,GAAWl5E,IAAe58iB,GAE1C,CAEA,MAAMi2nB,EAAaA,CAACn9lB,EAASi9lB,IAC3B1I,IAAMrj0B,QAAQ8uO,GAAS,CAAC94B,EAAQ81nB,IAAYp0T,EAAU1hU,EAAQ81nB,EAASC,KAEzE,GAAI1I,IAAMn2wB,cAAcm7H,IAAWA,aAAkB1uL,KAAKmW,YACxDm8zB,EAAW5jpB,EAAQujpB,QACd,GAAGvI,IAAM1nvB,SAAS0sG,KAAYA,EAASA,EAAOj8J,UArEtB,iCAAiCtJ,KAqEmBulK,EArEVj8J,QAsEvE6/yB,ED1EN,CAAeC,IACb,MAAMx+pB,EAAS,CAAC,EAChB,IAAIznK,EACAyiB,EACA5iB,EAsBJ,OApBAom0B,GAAcA,EAAW5/yB,MAAM,MAAMtsB,SAAQ,SAAgB0vH,GAC3D5pH,EAAI4pH,EAAKprH,QAAQ,KACjB2B,EAAMypH,EAAK7uG,UAAU,EAAG/a,GAAGsmB,OAAO/R,cAClCqO,EAAMgnG,EAAK7uG,UAAU/a,EAAI,GAAGsmB,QAEvBnmB,GAAQynK,EAAOznK,IAAQql0B,IAAkBrl0B,KAIlC,eAARA,EACEynK,EAAOznK,GACTynK,EAAOznK,GAAKF,KAAK2iB,GAEjBglJ,EAAOznK,GAAO,CAACyiB,GAGjBglJ,EAAOznK,GAAOynK,EAAOznK,GAAOynK,EAAOznK,GAAO,KAAOyiB,EAAMA,EAE3D,IAEOglJ,CACR,EC+CgBy+pB,CAAa9jpB,GAASujpB,QAC5B,GAAIvI,IAAMqB,UAAUr8oB,GACzB,IAAK,MAAOpiL,EAAK1K,KAAU8sL,EAAOp4K,UAChCyngB,EAAUn8gB,EAAO0K,EAAK4l0B,QAGd,MAAVxjpB,GAAkBqvV,EAAUk0T,EAAgBvjpB,EAAQwjpB,GAGtD,OAAOly0B,IACT,CAEA0W,GAAAA,CAAIg4K,EAAQ7oI,GAGV,GAFA6oI,EAASmjpB,IAAgBnjpB,GAEb,CACV,MAAMpiL,EAAMo9zB,IAAMtgzB,QAAQppB,KAAM0uL,GAEhC,GAAIpiL,EAAK,CACP,MAAM1K,EAAQ5B,KAAKsM,GAEnB,IAAKu5C,EACH,OAAOjkD,EAGT,IAAe,IAAXikD,EACF,OA5GV,SAAqBlY,GACnB,MAAMq1D,EAASvjG,OAAOyY,OAAO,MACvBu6zB,EAAW,mCACjB,IAAIt7zB,EAEJ,KAAQA,EAAQs7zB,EAAS5gyB,KAAKlE,IAC5Bq1D,EAAO7rF,EAAM,IAAMA,EAAM,GAG3B,OAAO6rF,CACT,CAkGiB0vuB,CAAY9w0B,GAGrB,GAAI8n0B,IAAMl0wB,WAAW3P,GACnB,OAAOA,EAAOlmD,KAAKK,KAAM4B,EAAO0K,GAGlC,GAAIo9zB,IAAMnpwB,SAAS1a,GACjB,OAAOA,EAAOhU,KAAKjwC,GAGrB,MAAM,IAAIgW,UAAU,yCACtB,CACF,CACF,CAEAnB,GAAAA,CAAIi4K,EAAQ15E,GAGV,GAFA05E,EAASmjpB,IAAgBnjpB,GAEb,CACV,MAAMpiL,EAAMo9zB,IAAMtgzB,QAAQppB,KAAM0uL,GAEhC,SAAUpiL,QAAqBjJ,IAAdrD,KAAKsM,IAAwB0oG,IAAW88tB,IAAiB9x0B,EAAMA,KAAKsM,GAAMA,EAAK0oG,GAClG,CAEA,OAAO,CACT,CAEAi/B,OAAOy6C,EAAQ15E,GACb,MAAMn9F,EAAO7X,KACb,IAAI47a,GAAU,EAEd,SAAS+2Z,EAAaR,GAGpB,GAFAA,EAAUN,IAAgBM,GAEb,CACX,MAAM7l0B,EAAMo9zB,IAAMtgzB,QAAQvR,EAAMs6zB,IAE5B7l0B,GAAS0oG,IAAW88tB,IAAiBj6zB,EAAMA,EAAKvL,GAAMA,EAAK0oG,YACtDn9F,EAAKvL,GAEZsva,GAAU,EAEd,CACF,CAQA,OANI8tZ,IAAMh4zB,QAAQg9K,GAChBA,EAAOroL,QAAQss0B,GAEfA,EAAajkpB,GAGRktP,CACT,CAEAvnX,KAAAA,CAAM2gD,GACJ,MAAMzwG,EAAO9E,OAAO8E,KAAKvE,MACzB,IAAImM,EAAI5H,EAAKnB,OACTw4a,GAAU,EAEd,KAAOzva,KAAK,CACV,MAAMG,EAAM/H,EAAK4H,GACb6oG,IAAW88tB,IAAiB9x0B,EAAMA,KAAKsM,GAAMA,EAAK0oG,GAAS,YACtDh1G,KAAKsM,GACZsva,GAAU,EAEd,CAEA,OAAOA,CACT,CAEAloT,SAAAA,CAAUruG,GACR,MAAMxN,EAAO7X,KACPm1O,EAAU,CAAC,EAsBjB,OApBAu0lB,IAAMrj0B,QAAQrG,MAAM,CAAC4B,EAAO8sL,KAC1B,MAAMpiL,EAAMo9zB,IAAMtgzB,QAAQ+rN,EAASzmD,GAEnC,GAAIpiL,EAGF,OAFAuL,EAAKvL,GAAO2svB,IAAer3vB,eACpBiW,EAAK62K,GAId,MAAM95F,EAAavvE,EA9JzB,SAAsBqpK,GACpB,OAAOA,EAAOj8J,OACX/R,cAAcrQ,QAAQ,mBAAmB,CAACsP,EAAG+X,EAAMiW,IAC3CjW,EAAK3V,cAAgB4rB,GAElC,CAyJkCilyB,CAAalkpB,GAAU3wK,OAAO2wK,GAAQj8J,OAE9DmiE,IAAe85F,UACV72K,EAAK62K,GAGd72K,EAAK+8E,GAAcqkqB,IAAer3vB,GAElCuzO,EAAQvgJ,IAAc,CAAI,IAGrB50F,IACT,CAEAoZ,MAAAA,GAAmB,QAAAJ,EAAA7V,UAAAC,OAATyv0B,EAAO,IAAAni0B,MAAAsI,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAP25zB,EAAO35zB,GAAA/V,UAAA+V,GACf,OAAOlZ,KAAKmW,YAAYiD,OAAOpZ,QAAS6y0B,EAC1C,CAEAvivB,MAAAA,CAAOwivB,GACL,MAAMji0B,EAAMpR,OAAOyY,OAAO,MAM1B,OAJAwxzB,IAAMrj0B,QAAQrG,MAAM,CAAC4B,EAAO8sL,KACjB,MAAT9sL,IAA2B,IAAVA,IAAoBiP,EAAI69K,GAAUokpB,GAAapJ,IAAMh4zB,QAAQ9P,GAASA,EAAMoE,KAAK,MAAQpE,EAAM,IAG3GiP,CACT,CAEA,CAAC8d,OAAO4gB,YACN,OAAO9vC,OAAO6W,QAAQtW,KAAKswF,UAAU3hE,OAAO4gB,WAC9C,CAEAz4B,QAAAA,GACE,OAAOrX,OAAO6W,QAAQtW,KAAKswF,UAAUrqF,KAAI8T,IAAA,IAAE20K,EAAQ9sL,GAAMmY,EAAA,OAAK20K,EAAS,KAAO9sL,CAAK,IAAEoE,KAAK,KAC5F,CAEA,IAAK2oB,OAAO6kB,eACV,MAAO,cACT,CAEA,WAAOlwC,CAAK65L,GACV,OAAOA,aAAiBn9L,KAAOm9L,EAAQ,IAAIn9L,KAAKm9L,EAClD,CAEA,aAAO/jL,CAAOg5B,GACZ,MAAMo5B,EAAW,IAAIxrE,KAAKoyC,GAAO,QAAAz3B,EAAAxX,UAAAC,OADXyv0B,EAAO,IAAAni0B,MAAAiK,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAPi4zB,EAAOj4zB,EAAA,GAAAzX,UAAAyX,GAK7B,OAFAi4zB,EAAQxs0B,SAASgC,GAAWmjE,EAAS9xD,IAAIrR,KAElCmjE,CACT,CAEA,eAAOunwB,CAASrkpB,GACd,MAIMskpB,GAJYhz0B,KAAK4x0B,KAAe5x0B,KAAK4x0B,KAAc,CACvDoB,UAAW,CAAC,IAGcA,UACtBri0B,EAAY3Q,KAAK2Q,UAEvB,SAASsi0B,EAAed,GACtB,MAAME,EAAUR,IAAgBM,GAE3Ba,EAAUX,MAtNrB,SAAwBxh0B,EAAK69K,GAC3B,MAAMwkpB,EAAexJ,IAAMuD,YAAY,IAAMv+oB,GAE7C,CAAC,MAAO,MAAO,OAAOroL,SAAQmxE,IAC5B/3E,OAAO4c,eAAexL,EAAK2mE,EAAa07vB,EAAc,CACpDtx0B,MAAO,SAASsmM,EAAMrB,EAAM9G,GAC1B,OAAO//L,KAAKw3E,GAAY73E,KAAKK,KAAM0uL,EAAQwZ,EAAMrB,EAAM9G,EACzD,EACA1nL,cAAc,GACd,GAEN,CA4MQ86zB,CAAexi0B,EAAWwh0B,GAC1Ba,EAAUX,IAAW,EAEzB,CAIA,OAFA3I,IAAMh4zB,QAAQg9K,GAAUA,EAAOroL,QAAQ4s0B,GAAkBA,EAAevkpB,GAEjE1uL,IACT,EAGFgy0B,IAAae,SAAS,CAAC,eAAgB,iBAAkB,SAAU,kBAAmB,aAAc,kBAGpGrJ,IAAM0B,kBAAkB4G,IAAarh0B,WAAW,CAAA0T,EAAU/X,KAAQ,IAAjB,MAAC1K,GAAMyiB,EAClDu5D,EAAStxE,EAAI,GAAGyV,cAAgBzV,EAAIsE,MAAM,GAC9C,MAAO,CACL8F,IAAKA,IAAM9U,EACX8X,GAAAA,CAAI05zB,GACFpz0B,KAAK49E,GAAUw1vB,CACjB,EACD,IAGH1J,IAAMoD,cAAckF,KAEpB,cC/Re,SAASqB,IAAcC,EAAK93oB,GACzC,MAAMlhG,EAASt6F,MAAQy3B,IACjBxc,EAAUugL,GAAYlhG,EACtB66I,EAAU68lB,IAAa1u0B,KAAK2X,EAAQk6N,SAC1C,IAAIjrM,EAAOjvB,EAAQivB,KAQnB,OANAw/xB,IAAMrj0B,QAAQit0B,GAAK,SAAmBzizB,GACpCqZ,EAAOrZ,EAAGlxB,KAAK26F,EAAQpwD,EAAMirM,EAAQzhH,YAAa8nE,EAAWA,EAAS/kD,YAASpzI,EACjF,IAEA8xO,EAAQzhH,YAEDxpF,CACT,CCzBe,SAASkkmB,IAASxsoB,GAC/B,SAAUA,IAASA,EAAM2x0B,WAC3B,CCUA,SAASC,IAAct8zB,EAASojF,EAAQ4lF,GAEtCqtpB,IAAW5t0B,KAAKK,KAAiB,MAAXkX,EAAkB,WAAaA,EAASq2zB,IAAWkG,aAAcn5uB,EAAQ4lF,GAC/FlgL,KAAK0E,KAAO,eACd,CAEAgl0B,IAAM4C,SAASkH,IAAejG,IAAY,CACxCgG,YAAY,IAGd,cCXe,SAASG,IAAOp8wB,EAASuwB,EAAQ2zG,GAC9C,MAAMi2oB,EAAiBj2oB,EAASlhG,OAAOm3uB,eAClCj2oB,EAAS/kD,QAAWg7rB,IAAkBA,EAAej2oB,EAAS/kD,QAGjE5uD,EAAO,IAAI0lvB,IACT,mCAAqC/xoB,EAAS/kD,OAC9C,CAAC82rB,IAAWoG,gBAAiBpG,IAAW6D,kBAAkBxt0B,KAAKiG,MAAM2xL,EAAS/kD,OAAS,KAAO,GAC9F+kD,EAASlhG,OACTkhG,EAAStb,QACTsb,IAPFlkI,EAAQkkI,EAUZ,CC4BA,UA9CA,SAAqBo4oB,EAAchqxB,GACjCgqxB,EAAeA,GAAgB,GAC/B,MAAM1uV,EAAQ,IAAIx0e,MAAMkj0B,GAClBC,EAAa,IAAInj0B,MAAMkj0B,GAC7B,IAEIE,EAFAlizB,EAAO,EACPy2D,EAAO,EAKX,OAFAz+B,OAAcvmD,IAARumD,EAAoBA,EAAM,IAEzB,SAAcmqxB,GACnB,MAAM5uwB,EAAM1jE,KAAK0jE,MAEX6uwB,EAAYH,EAAWxrvB,GAExByrvB,IACHA,EAAgB3uwB,GAGlB+/a,EAAMtzd,GAAQmizB,EACdF,EAAWjizB,GAAQuzC,EAEnB,IAAIh5D,EAAIk8E,EACJ4rvB,EAAa,EAEjB,KAAO9n0B,IAAMylB,GACXqizB,GAAc/uV,EAAM/4e,KACpBA,GAAQyn0B,EASV,GANAhizB,GAAQA,EAAO,GAAKgizB,EAEhBhizB,IAASy2D,IACXA,GAAQA,EAAO,GAAKurvB,GAGlBzuwB,EAAM2uwB,EAAgBlqxB,EACxB,OAGF,MAAMsqxB,EAASF,GAAa7uwB,EAAM6uwB,EAElC,OAAOE,EAAStw0B,KAAKmgB,MAAmB,IAAbkwzB,EAAoBC,QAAU7w0B,CAC3D,CACF,ECTA,UArCA,SAAkBwtB,EAAIgltB,GACpB,IAEIj2pB,EACAitZ,EAHAhrd,EAAY,EACZigG,EAAY,IAAO+znB,EAIvB,MAAM3ypB,EAAS,SAACjqE,GAA2B,IAArBksD,EAAGhiE,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG1B,KAAK0jE,MAC/BtjD,EAAYsjD,EACZya,EAAW,KACPitZ,IACFx2c,aAAaw2c,GACbA,EAAQ,MAEVh8c,EAAG1X,MAAM,KAAMF,EACjB,EAoBA,MAAO,CAlBW,WAChB,MAAMksD,EAAM1jE,KAAK0jE,MACX+uwB,EAAS/uwB,EAAMtjD,EAAU,QAAA7I,EAAA7V,UAAAC,OAFX6V,EAAI,IAAAvI,MAAAsI,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJD,EAAIC,GAAA/V,UAAA+V,GAGnBg7zB,GAAUpytB,EACb5+B,EAAOjqE,EAAMksD,IAEbya,EAAW3mE,EACN4zd,IACHA,EAAQz2c,YAAW,KACjBy2c,EAAQ,KACR3pZ,EAAOtD,EAAS,GACfkiC,EAAYoytB,IAGrB,EAEcnzvB,IAAMnB,GAAYsD,EAAOtD,GAGzC,ECrCau0vB,IAAuB,SAACnkrB,EAAUokrB,GAA+B,IAAbv+F,EAAI1yuB,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,EAClEkx0B,EAAgB,EACpB,MAAMC,EAAeC,IAAY,GAAI,KAErC,OAAO5rvB,KAAStoF,IACd,MAAMq+K,EAASr+K,EAAEq+K,OACXj8D,EAAQpiH,EAAEm00B,iBAAmBn00B,EAAEoiH,WAAQp/G,EACvCox0B,EAAgB/1pB,EAAS21pB,EACzBK,EAAOJ,EAAaG,GAG1BJ,EAAgB31pB,EAchB1uB,EAZa,CACX0uB,SACAj8D,QACAgvO,SAAUhvO,EAASi8D,EAASj8D,OAASp/G,EACrC6hf,MAAOuvV,EACPC,KAAMA,QAAcrx0B,EACpBsx0B,UAAWD,GAAQjytB,GAVLi8D,GAAUj8D,GAUeA,EAAQi8D,GAAUg2pB,OAAOrx0B,EAChE0zB,MAAO12B,EACPm00B,iBAA2B,MAAT/xtB,EAClB,CAAC2xtB,EAAmB,WAAa,WAAW,GAGhC,GACbv+F,EACL,EAEa++F,IAAyBA,CAACnytB,EAAOoytB,KAC5C,MAAML,EAA4B,MAAT/xtB,EAEzB,MAAO,CAAEi8D,GAAWm2pB,EAAU,GAAG,CAC/BL,mBACA/xtB,QACAi8D,WACEm2pB,EAAU,GAAG,EAGNC,IAAkBjkzB,GAAO,mBAAA7X,EAAA7V,UAAAC,OAAI6V,EAAI,IAAAvI,MAAAsI,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJD,EAAIC,GAAA/V,UAAA+V,GAAA,OAAKwwzB,IAAMoC,MAAK,IAAMj7yB,KAAM5X,IAAM,ECtChF,IAAe+uU,IAASynf,sBAIrB,WACC,MAAMt3lB,EAAO6vG,IAAS9vT,WAAa,kBAAkB/O,KAAK6+T,IAAS9vT,UAAUggN,WACvE68lB,EAAiB7jzB,SAASpwB,cAAc,KAC9C,IAAIk00B,EAQJ,SAASC,EAAWhmtB,GAClB,IAAI9mE,EAAO8mE,EAWX,OATIkpH,IAEF48lB,EAAe//yB,aAAa,OAAQmzB,GACpCA,EAAO4sxB,EAAe5sxB,MAGxB4sxB,EAAe//yB,aAAa,OAAQmzB,GAG7B,CACLA,KAAM4sxB,EAAe5sxB,KACrBuxE,SAAUq7sB,EAAer7sB,SAAWq7sB,EAAer7sB,SAASrpH,QAAQ,KAAM,IAAM,GAChFuuN,KAAMm2mB,EAAen2mB,KACrB1mL,OAAQ68xB,EAAe78xB,OAAS68xB,EAAe78xB,OAAO7nC,QAAQ,MAAO,IAAM,GAC3E46G,KAAM8ptB,EAAe9ptB,KAAO8ptB,EAAe9ptB,KAAK56G,QAAQ,KAAM,IAAM,GACpE6jK,SAAU6gqB,EAAe7gqB,SACzBghqB,KAAMH,EAAeG,KACrBp+lB,SAAiD,MAAtCi+lB,EAAej+lB,SAAS3yK,OAAO,GACxC4wwB,EAAej+lB,SACf,IAAMi+lB,EAAej+lB,SAE3B,CAUA,OARAk+lB,EAAYC,EAAWjkzB,OAAO2G,SAASwwB,MAQhC,SAAyBgtxB,GAC9B,MAAMphqB,EAAU21pB,IAAM1nvB,SAASmzvB,GAAeF,EAAWE,GAAcA,EACvE,OAAQphqB,EAAOr6C,WAAas7sB,EAAUt7sB,UAClCq6C,EAAO6qD,OAASo2mB,EAAUp2mB,IAChC,CACF,CAlDC,GAsDQ,WACL,OAAO,CACT,EC9DJ,IAAeopH,IAASynf,sBAGtB,CACEl2xB,KAAAA,CAAM70C,EAAM9C,EAAO4tO,EAAS1iK,EAAMsnG,EAAQghqB,GACxC,MAAMxlmB,EAAS,CAAClrO,EAAO,IAAMsrC,mBAAmBpuC,IAEhD8n0B,IAAMjvxB,SAAS+0L,IAAYI,EAAOxjO,KAAK,WAAa,IAAI3K,KAAK+tO,GAAS6lmB,eAEtE3L,IAAM1nvB,SAASlV,IAAS8iK,EAAOxjO,KAAK,QAAU0gE,GAE9C48vB,IAAM1nvB,SAASoyF,IAAWw7D,EAAOxjO,KAAK,UAAYgoK,IAEvC,IAAXghqB,GAAmBxlmB,EAAOxjO,KAAK,UAE/B8kB,SAAS0+M,OAASA,EAAO5pO,KAAK,KAChC,EAEA69G,IAAAA,CAAKn/G,GACH,MAAMyS,EAAQ+Z,SAAS0+M,OAAOz4N,MAAM,IAAIR,OAAO,aAAejS,EAAO,cACrE,OAAQyS,EAAQ24B,mBAAmB34B,EAAM,IAAM,IACjD,EAEAgc,MAAAA,CAAOzuB,GACL1E,KAAKu5C,MAAM70C,EAAM,GAAIjD,KAAK0jE,MAAQ,MACpC,GAMF,CACE5rB,KAAAA,GAAS,EACTsqE,KAAIA,IACK,KAET1wF,MAAAA,GAAU,GCxBC,SAASmizB,IAAcC,EAASC,GAC7C,OAAID,ICHG,8BAA8BpszB,KDGPqszB,GENjB,SAAqBD,EAASE,GAC3C,OAAOA,EACHF,EAAQll0B,QAAQ,SAAU,IAAM,IAAMol0B,EAAYpl0B,QAAQ,OAAQ,IAClEkl0B,CACN,CFGWG,CAAYH,EAASC,GAEvBA,CACT,CGfA,MAAMG,IAAmBx4oB,GAAUA,aAAiB60oB,IAAe,IAAK70oB,GAAUA,EAWnE,SAASy4oB,IAAYC,EAASC,GAE3CA,EAAUA,GAAW,CAAC,EACtB,MAAMx7uB,EAAS,CAAC,EAEhB,SAASy7uB,EAAe1t0B,EAAQuO,EAAQu1zB,GACtC,OAAIzC,IAAMn2wB,cAAclrD,IAAWqh0B,IAAMn2wB,cAAc38C,GAC9C8yzB,IAAMvmvB,MAAMxjF,KAAK,CAACws0B,YAAW9j0B,EAAQuO,GACnC8yzB,IAAMn2wB,cAAc38C,GACtB8yzB,IAAMvmvB,MAAM,CAAC,EAAGvsE,GACd8yzB,IAAMh4zB,QAAQkF,GAChBA,EAAOhG,QAETgG,CACT,CAGA,SAASo/zB,EAAoB//zB,EAAGC,EAAGi2zB,GACjC,OAAKzC,IAAMn+uB,YAAYr1E,GAEXwzzB,IAAMn+uB,YAAYt1E,QAAvB,EACE8/zB,OAAe1y0B,EAAW4S,EAAGk2zB,GAF7B4J,EAAe9/zB,EAAGC,EAAGi2zB,EAIhC,CAGA,SAAS8J,EAAiBhg0B,EAAGC,GAC3B,IAAKwzzB,IAAMn+uB,YAAYr1E,GACrB,OAAO6/zB,OAAe1y0B,EAAW6S,EAErC,CAGA,SAASgg0B,EAAiBjg0B,EAAGC,GAC3B,OAAKwzzB,IAAMn+uB,YAAYr1E,GAEXwzzB,IAAMn+uB,YAAYt1E,QAAvB,EACE8/zB,OAAe1y0B,EAAW4S,GAF1B8/zB,OAAe1y0B,EAAW6S,EAIrC,CAGA,SAASig0B,EAAgBlg0B,EAAGC,EAAGvR,GAC7B,OAAIA,KAAQmx0B,EACHC,EAAe9/zB,EAAGC,GAChBvR,KAAQkx0B,EACVE,OAAe1y0B,EAAW4S,QAD5B,CAGT,CAEA,MAAMmg0B,EAAW,CACfnntB,IAAKgntB,EACLh8yB,OAAQg8yB,EACR/ryB,KAAM+ryB,EACNV,QAASW,EACT7F,iBAAkB6F,EAClBlF,kBAAmBkF,EACnBG,iBAAkBH,EAClBz2pB,QAASy2pB,EACTI,eAAgBJ,EAChBh0V,gBAAiBg0V,EACjBK,cAAeL,EACf9F,QAAS8F,EACThF,aAAcgF,EACd7E,eAAgB6E,EAChB5E,eAAgB4E,EAChB9wf,iBAAkB8wf,EAClBM,mBAAoBN,EACpBO,WAAYP,EACZ3E,iBAAkB2E,EAClB1E,cAAe0E,EACfQ,eAAgBR,EAChBS,UAAWT,EACXU,UAAWV,EACXW,WAAYX,EACZY,YAAaZ,EACba,WAAYb,EACZc,iBAAkBd,EAClBzE,eAAgB0E,EAChBhhmB,QAASA,CAACl/N,EAAGC,IAAM8/zB,EAAoBL,IAAgB1/zB,GAAI0/zB,IAAgBz/zB,IAAI,IASjF,OANAwzzB,IAAMrj0B,QAAQ5G,OAAO8E,KAAK9E,OAAOgkD,OAAO,CAAC,EAAGoyxB,EAASC,KAAW,SAA4Bnx0B,GAC1F,MAAMw+E,EAAQizvB,EAASzx0B,IAASqx0B,EAC1BiB,EAAc9zvB,EAAM0yvB,EAAQlx0B,GAAOmx0B,EAAQnx0B,GAAOA,GACvD+k0B,IAAMn+uB,YAAY0rvB,IAAgB9zvB,IAAUgzvB,IAAqB77uB,EAAO31F,GAAQsy0B,EACnF,IAEO38uB,CACT,CChGA,UAAgBA,IACd,MAAM48uB,EAAYtB,IAAY,CAAC,EAAGt7uB,GAElC,IAaIoqP,GAbA,KAACx6S,EAAI,cAAEqsyB,EAAa,eAAEjF,EAAc,eAAED,EAAc,QAAEl8lB,EAAO,KAAEpoE,GAAQmqqB,EAe3E,GAbAA,EAAU/hmB,QAAUA,EAAU68lB,IAAa1u0B,KAAK6xO,GAEhD+hmB,EAAUjotB,IAAM0/sB,IAAS2G,IAAc4B,EAAU3B,QAAS2B,EAAUjotB,KAAM30B,EAAOyoC,OAAQzoC,EAAO+7uB,kBAG5FtpqB,GACFooE,EAAQz7N,IAAI,gBAAiB,SAC3BonH,MAAMisC,EAAK4mB,UAAY,IAAM,KAAO5mB,EAAKjiB,SAAWh8D,SAAS9+C,mBAAmB+8H,EAAKjiB,WAAa,MAMlG4+qB,IAAMqC,WAAW7hyB,GACnB,GAAI89S,IAASynf,uBAAyBznf,IAAS2nf,+BAC7Cx6lB,EAAQu7lB,oBAAert0B,QAClB,IAAiD,KAA5CqhV,EAAcvvG,EAAQm7lB,kBAA6B,CAE7D,MAAO1j0B,KAASo2F,GAAU0hP,EAAcA,EAAY/xT,MAAM,KAAK1sB,KAAImY,GAASA,EAAMqU,SAAQrsB,OAAOmiC,SAAW,GAC5G4sM,EAAQu7lB,eAAe,CAAC9j0B,GAAQ,yBAA0Bo2F,GAAQh9F,KAAK,MACzE,CAOF,GAAIgiV,IAASynf,wBACX8G,GAAiB7M,IAAMl0wB,WAAW+gxB,KAAmBA,EAAgBA,EAAcW,IAE/EX,IAAoC,IAAlBA,GAA2BY,IAAgBD,EAAUjotB,MAAO,CAEhF,MAAMmotB,EAAY9F,GAAkBD,GAAkBgG,IAAQxztB,KAAKwttB,GAE/D+F,GACFjimB,EAAQz7N,IAAI43zB,EAAgB8F,EAEhC,CAGF,OAAOF,CACR,EC1CD,IAFwD,qBAAnBp6yB,gBAEG,SAAUw9D,GAChD,OAAO,IAAI3pD,SAAQ,SAA4B2mB,EAASuwB,GACtD,MAAMkT,EAAUu8uB,IAAch9uB,GAC9B,IAAIi9uB,EAAcx8uB,EAAQ7wD,KAC1B,MAAMstyB,EAAiBxF,IAAa1u0B,KAAKy3F,EAAQo6I,SAASzhH,YAC1D,IACI+jtB,EACAC,EAAiBC,EACjBC,EAAaC,GAHb,aAAC3G,EAAY,iBAAE9rf,EAAgB,mBAAEoxf,GAAsBz7uB,EAK3D,SAASvkF,IACPoh0B,GAAeA,IACfC,GAAiBA,IAEjB98uB,EAAQ+7uB,aAAe/7uB,EAAQ+7uB,YAAYgB,YAAYL,GAEvD18uB,EAAQwlD,QAAUxlD,EAAQwlD,OAAOnlH,oBAAoB,QAASq8yB,EAChE,CAEA,IAAIv3pB,EAAU,IAAIpjJ,eAOlB,SAAS86sB,IACP,IAAK13jB,EACH,OAGF,MAAM4lK,EAAkBksf,IAAa1u0B,KACnC,0BAA2B48K,GAAWA,EAAQq2D,yBAahDm9lB,KAAO,SAAkB9x0B,GACvB01D,EAAQ11D,GACR4U,GACF,IAAG,SAAiBomH,GAClB/0C,EAAO+0C,GACPpmH,GACF,GAfiB,CACf0zB,KAHoBgnyB,GAAiC,SAAjBA,GAA4C,SAAjBA,EACxChxpB,EAAQsb,SAA/Btb,EAAQ+1D,aAGRx/F,OAAQypC,EAAQzpC,OAChBmvM,WAAY1lK,EAAQ0lK,WACpBzwG,QAAS2wG,EACTxrP,SACA4lF,YAYFA,EAAU,IACZ,CAlCAA,EAAQp9C,KAAK/nC,EAAQ9gE,OAAOlY,cAAeg5E,EAAQk0B,KAAK,GAGxDixD,EAAQT,QAAU1kF,EAAQ0kF,QAiCtB,cAAeS,EAEjBA,EAAQ03jB,UAAYA,EAGpB13jB,EAAQ4kK,mBAAqB,WACtB5kK,GAAkC,IAAvBA,EAAQylK,aAQD,IAAnBzlK,EAAQzpC,QAAkBypC,EAAQ63pB,aAAwD,IAAzC73pB,EAAQ63pB,YAAYpt0B,QAAQ,WAKjFyrB,WAAWwhtB,EACb,EAIF13jB,EAAQilK,QAAU,WACXjlK,IAILr4F,EAAO,IAAI0lvB,IAAW,kBAAmBA,IAAWyK,aAAc19uB,EAAQ4lF,IAG1EA,EAAU,KACZ,EAGAA,EAAQzmI,QAAU,WAGhBouC,EAAO,IAAI0lvB,IAAW,gBAAiBA,IAAW0K,YAAa39uB,EAAQ4lF,IAGvEA,EAAU,IACZ,EAGAA,EAAQg4pB,UAAY,WAClB,IAAIC,EAAsBp9uB,EAAQ0kF,QAAU,cAAgB1kF,EAAQ0kF,QAAU,cAAgB,mBAC9F,MAAMywpB,EAAen1uB,EAAQm1uB,cAAgBC,IACzCp1uB,EAAQo9uB,sBACVA,EAAsBp9uB,EAAQo9uB,qBAEhCtwvB,EAAO,IAAI0lvB,IACT4K,EACAjI,EAAab,oBAAsB9B,IAAW6K,UAAY7K,IAAWyK,aACrE19uB,EACA4lF,IAGFA,EAAU,IACZ,OAGgB78K,IAAhBk00B,GAA6BC,EAAe9G,eAAe,MAGvD,qBAAsBxwpB,GACxBwppB,IAAMrj0B,QAAQmx0B,EAAelnvB,UAAU,SAA0BvhE,EAAKziB,GACpE4zK,EAAQm2D,iBAAiB/pO,EAAKyiB,EAChC,IAIG26yB,IAAMn+uB,YAAYwP,EAAQmnZ,mBAC7BhiU,EAAQgiU,kBAAoBnnZ,EAAQmnZ,iBAIlCgvV,GAAiC,SAAjBA,IAClBhxpB,EAAQgxpB,aAAen2uB,EAAQm2uB,cAI7BsF,KACAmB,EAAmBE,GAAiB1D,IAAqBqC,GAAoB,GAC/Et2pB,EAAQ5kJ,iBAAiB,WAAYq8yB,IAInCvyf,GAAoBllK,EAAQmlK,UAC5Bqyf,EAAiBE,GAAezD,IAAqB/uf,GAEvDllK,EAAQmlK,OAAO/pT,iBAAiB,WAAYo8yB,GAE5Cx3pB,EAAQmlK,OAAO/pT,iBAAiB,UAAWs8yB,KAGzC78uB,EAAQ+7uB,aAAe/7uB,EAAQwlD,UAGjCk3rB,EAAa32vB,IACNo/F,IAGLr4F,GAAQ/G,GAAUA,EAAOl0E,KAAO,IAAI4m0B,IAAc,KAAMl5uB,EAAQ4lF,GAAWp/F,GAC3Eo/F,EAAQk9K,QACRl9K,EAAU,KAAI,EAGhBnlF,EAAQ+7uB,aAAe/7uB,EAAQ+7uB,YAAYuB,UAAUZ,GACjD18uB,EAAQwlD,SACVxlD,EAAQwlD,OAAOszD,QAAU4joB,IAAe18uB,EAAQwlD,OAAOjlH,iBAAiB,QAASm8yB,KAIrF,MAAM/9sB,ECvLK,SAAuBzK,GACpC,MAAM93G,EAAQ,4BAA4B06B,KAAKo9E,GAC/C,OAAO93G,GAASA,EAAM,IAAM,EAC9B,CDoLqBmh0B,CAAcv9uB,EAAQk0B,KAEnCyK,IAAsD,IAA1CsuN,IAASsnf,UAAU3k0B,QAAQ+uH,GACzC7xC,EAAO,IAAI0lvB,IAAW,wBAA0B7zsB,EAAW,IAAK6zsB,IAAWoG,gBAAiBr5uB,IAM9F4lF,EAAQi2D,KAAKohmB,GAAe,KAC9B,GACF,EErJA,IA3CuBgB,CAACC,EAAS/4pB,KAC/B,MAAM,OAACr8K,GAAWo10B,EAAUA,EAAUA,EAAQpy0B,OAAOmiC,SAAW,GAEhE,GAAIk3I,GAAWr8K,EAAQ,CACrB,IAEIywM,EAFA4koB,EAAa,IAAIC,gBAIrB,MAAMvzf,EAAU,SAAUhvN,GACxB,IAAK09E,EAAS,CACZA,GAAU,EACVikoB,IACA,MAAMl7sB,EAAMzG,aAAkBppG,MAAQopG,EAASn2H,KAAKm2H,OACpDsitB,EAAWr7e,MAAMxgO,aAAe2wsB,IAAa3wsB,EAAM,IAAI42sB,IAAc52sB,aAAe7vG,MAAQ6vG,EAAI1lH,QAAU0lH,GAC5G,CACF,EAEA,IAAIiwW,EAAQptT,GAAWrpJ,YAAW,KAChCy2c,EAAQ,KACR1nJ,EAAQ,IAAIoof,IAAW,WAAW9tpB,mBAA0B8tpB,IAAW6K,WAAW,GACjF34pB,GAEH,MAAMq4pB,EAAcA,KACdU,IACF3rW,GAASx2c,aAAaw2c,GACtBA,EAAQ,KACR2rW,EAAQny0B,SAAQk6I,IACdA,EAAOu3rB,YAAcv3rB,EAAOu3rB,YAAY3yf,GAAW5kM,EAAOnlH,oBAAoB,QAAS+pT,EAAQ,IAEjGqzf,EAAU,KACZ,EAGFA,EAAQny0B,SAASk6I,GAAWA,EAAOjlH,iBAAiB,QAAS6pT,KAE7D,MAAM,OAAC5kM,GAAUk4rB,EAIjB,OAFAl4rB,EAAOu3rB,YAAc,IAAMpO,IAAMoC,KAAKgM,GAE/Bv3rB,CACT,GC3CWo4rB,IAAc,UAAWn/xB,EAAOypc,GAC3C,IAAItzb,EAAMnW,EAAM+wB,WAEhB,IAAK04a,GAAatzb,EAAMszb,EAEtB,kBADMzpc,GAIR,IACIJ,EADAlC,EAAM,EAGV,KAAOA,EAAMyY,GACXvW,EAAMlC,EAAM+rc,QACNzpc,EAAM5oC,MAAMsmC,EAAKkC,GACvBlC,EAAMkC,CAEV,EAQMw/xB,IAAa38sB,gBAAiB4qmB,GAClC,GAAIA,EAAOl4sB,OAAOkqzB,eAEhB,kBADOhyG,GAIT,MAAMlhP,EAASkhP,EAAOiyG,YACtB,IACE,OAAS,CACP,MAAM,KAACti0B,EAAI,MAAE5U,SAAe+jf,EAAO9hY,OACnC,GAAIrtG,EACF,YAEI5U,CACR,CACF,CAAE,cACM+jf,EAAO7ka,QACf,CACF,EAEai4vB,IAAcA,CAAClyG,EAAQ5jP,EAAWj+J,EAAYg0f,KACzD,MAAMzpyB,EA3BiB0sF,gBAAiB3kD,EAAU2ra,GAClD,UAAW,MAAMzpc,KAASo/xB,IAAWthwB,SAC5BqhwB,IAAYn/xB,EAAOypc,EAE9B,CAuBmBimS,CAAUriD,EAAQ5jP,GAEnC,IACIzse,EADA0ue,EAAQ,EAER+zV,EAAa540B,IACVmW,IACHA,GAAO,EACPwi0B,GAAYA,EAAS340B,GACvB,EAGF,OAAO,IAAI+/I,eAAe,CACxB,UAAMriE,CAAK06vB,GACT,IACE,MAAM,KAACji0B,EAAI,MAAE5U,SAAe2tC,EAASh5B,OAErC,GAAIC,EAGF,OAFDyi0B,SACCR,EAAWj9rB,QAIb,IAAI7rF,EAAM/tD,EAAM2oE,WAChB,GAAIy6Q,EAAY,CACd,IAAIk0f,EAAch0V,GAASv1b,EAC3Bq1R,EAAWk0f,EACb,CACAT,EAAWn9rB,QAAQ,IAAIlsG,WAAWxtC,GACpC,CAAE,MAAOg7H,GAEP,MADAq8sB,EAAUr8sB,GACJA,CACR,CACF,EACA97C,OAAOq1C,IACL8itB,EAAU9itB,GACH5mF,EAASizG,WAEjB,CACDnC,cAAe,GACf,EC3EE84rB,IAAoC,oBAAV7wxB,OAA2C,oBAAZ8wxB,SAA8C,oBAAbj5kB,SAC1Fk5kB,IAA4BF,KAA8C,oBAAnB/4rB,eAGvDk5rB,IAAaH,MAA4C,oBAAhB59rB,aACzCkzrB,IAA0C,IAAIlzrB,YAAjC5tG,GAAQ8gyB,IAAQjqxB,OAAO7W,IACtCsuF,SAAe,IAAI7sF,iBAAiB,IAAI+wN,SAASxyN,GAAKgoC,gBADtD,IAAE84vB,IAIN,MAAMtlzB,IAAO,SAAC0H,GACZ,IAAI,QAAA7X,EAAA7V,UAAAC,OADe6V,EAAI,IAAAvI,MAAAsI,EAAA,EAAAA,EAAA,KAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJD,EAAIC,EAAA,GAAA/V,UAAA+V,GAErB,QAAS2X,KAAM5X,EACjB,CAAE,MAAO5Y,KACP,OAAO,CACT,CACF,EAEMk50B,IAAwBF,KAA6BlwzB,KAAK,KAC9D,IAAIqwzB,GAAiB,EAErB,MAAMC,EAAiB,IAAIL,QAAQpxf,IAAS/uN,OAAQ,CAClDxlH,KAAM,IAAI2sI,eACVnmH,OAAQ,OACR,UAAIy/yB,GAEF,OADAF,GAAiB,EACV,MACT,IACCrkmB,QAAQ1+N,IAAI,gBAEf,OAAO+i0B,IAAmBC,CAAc,IAKpCE,IAAyBN,KAC7BlwzB,KAAK,IAAMugzB,IAAMkB,iBAAiB,IAAIzqkB,SAAS,IAAI1sP,QAG/CqrP,IAAY,CAChB+ne,OAAQ8yG,KAA0B,CAAEzhvB,GAAQA,EAAIzkF,OAG7B,IAAEykF,IAAvBihvB,MAAuBjhvB,IAOpB,IAAIioK,SANL,CAAC,OAAQ,cAAe,OAAQ,WAAY,UAAU95P,SAAQuG,KAC3DkyP,IAAUlyP,KAAUkyP,IAAUlyP,GAAQ88zB,IAAMl0wB,WAAW0iC,IAAItrF,IAAUsrF,GAAQA,EAAItrF,KAChF,CAAC2iB,EAAG+qE,KACF,MAAM,IAAIizuB,IAAW,kBAAkB3g0B,sBAA0B2g0B,IAAWqM,gBAAiBt/uB,EAAO,EACpG,KAIR,MA8BMu/uB,IAAoB59sB,MAAOk5G,EAAS1hO,KACxC,MAAMrQ,EAASsm0B,IAAMwD,eAAe/3lB,EAAQ2kmB,oBAE5C,OAAiB,MAAV120B,EAjCa64H,WACpB,GAAY,MAARxoH,EACF,OAAO,EAGT,GAAGi2zB,IAAMv3J,OAAO1+pB,GACd,OAAOA,EAAK4C,KAGd,GAAGqzzB,IAAMyD,oBAAoB15zB,GAAO,CAClC,MAAMsm0B,EAAW,IAAIX,QAAQpxf,IAAS/uN,OAAQ,CAC5Ch/F,OAAQ,OACRxmB,SAEF,aAAcsm0B,EAASpkwB,eAAepL,UACxC,CAEA,OAAGm/vB,IAAMsC,kBAAkBv4zB,IAASi2zB,IAAMxpwB,cAAczsD,GAC/CA,EAAK82D,YAGXm/vB,IAAMiB,kBAAkBl3zB,KACzBA,GAAc,IAGbi2zB,IAAM1nvB,SAASvuE,UACF6l0B,IAAW7l0B,IAAO82D,gBADlC,EAEA,EAMwByvwB,CAAcvm0B,GAAQrQ,CAAM,EAGtD,IAAe+10B,KAAoB,OAACl9sB,IAClC,IAAI,IACFhN,EAAG,OACHh1F,EAAM,KACNiQ,EAAI,OACJq2G,EAAM,YACNu2rB,EAAW,QACXr3pB,EAAO,mBACP+2pB,EAAkB,iBAClBpxf,EAAgB,aAChB8rf,EAAY,QACZ/7lB,EAAO,gBACP+sQ,EAAkB,cAAa,aAC/B+3V,GACE3C,IAAch9uB,GAElB42uB,EAAeA,GAAgBA,EAAe,IAAIxwzB,cAAgB,OAElE,IAEIw/J,EAFAg6pB,EAAiB3B,IAAe,CAACh4rB,EAAQu2rB,GAAeA,EAAYqD,iBAAkB16pB,GAI1F,MAAMq4pB,EAAcoC,GAAkBA,EAAepC,aAAe,MAChEoC,EAAepC,aAClB,GAED,IAAIsC,EAEJ,IACE,GACEh1f,GAAoBm0f,KAAoC,QAAXt/yB,GAA+B,SAAXA,GACG,KAAnEmgzB,QAA6BP,IAAkB1kmB,EAASjrM,IACzD,CACA,IAMImwyB,EANAN,EAAW,IAAIX,QAAQnqtB,EAAK,CAC9Bh1F,OAAQ,OACRxmB,KAAMy2B,EACNwvyB,OAAQ,SASV,GAJIhQ,IAAMqC,WAAW7hyB,KAAUmwyB,EAAoBN,EAAS5kmB,QAAQz+N,IAAI,kBACtEy+N,EAAQu7lB,eAAe2J,GAGrBN,EAAStm0B,KAAM,CACjB,MAAOuxU,EAAYjkQ,GAAS6zvB,IAC1BwF,EACAjG,IAAqBW,IAAe1vf,KAGtCl7S,EAAO6uyB,IAAYgB,EAAStm0B,KA1GT,MA0GmCuxU,EAAYjkQ,EACpE,CACF,CAEK2ovB,IAAM1nvB,SAASkga,KAClBA,EAAkBA,EAAkB,UAAY,QAKlD,MAAMo4V,EAAyB,gBAAiBlB,QAAQzo0B,UACxDuvK,EAAU,IAAIk5pB,QAAQnqtB,EAAK,IACtBgrtB,EACH15rB,OAAQ25rB,EACRjgzB,OAAQA,EAAOlY,cACfozN,QAASA,EAAQzhH,YAAYpjC,SAC7B78E,KAAMy2B,EACNwvyB,OAAQ,OACRa,YAAaD,EAAyBp4V,OAAkB7+e,IAG1D,IAAIm4L,QAAiBlzI,MAAM43H,GAE3B,MAAMs6pB,EAAmBb,MAA4C,WAAjBzI,GAA8C,aAAjBA,GAEjF,GAAIyI,MAA2BnD,GAAuBgE,GAAoB1C,GAAe,CACvF,MAAMh5zB,EAAU,CAAC,EAEjB,CAAC,SAAU,aAAc,WAAWzY,SAAQ1B,IAC1Cma,EAAQna,GAAQ62L,EAAS72L,EAAK,IAGhC,MAAM810B,EAAwB/Q,IAAMwD,eAAe1xoB,EAAS25C,QAAQz+N,IAAI,oBAEjEsuU,EAAYjkQ,GAASy1vB,GAAsB5B,IAChD6F,EACAtG,IAAqBW,IAAe0B,IAAqB,KACtD,GAELh7oB,EAAW,IAAI2kE,SACb44kB,IAAYv9oB,EAAS/nL,KAlJF,MAkJ4BuxU,GAAY,KACzDjkQ,GAASA,IACT+2vB,GAAeA,GAAa,IAE9Bh5zB,EAEJ,CAEAoyzB,EAAeA,GAAgB,OAE/B,IAAIwJ,QAAqB57kB,IAAU4qkB,IAAMtgzB,QAAQ01O,IAAWoykB,IAAiB,QAAQ11oB,EAAUlhG,GAI/F,OAFCkgvB,GAAoB1C,GAAeA,UAEvB,IAAInnyB,SAAQ,CAAC2mB,EAASuwB,KACjC6rvB,IAAOp8wB,EAASuwB,EAAQ,CACtB39C,KAAMwwyB,EACNvlmB,QAAS68lB,IAAa1u0B,KAAKk4L,EAAS25C,SACpC1+F,OAAQ+kD,EAAS/kD,OACjBmvM,WAAYpqJ,EAASoqJ,WACrBtrP,SACA4lF,WACA,GAEN,CAAE,MAAOtjD,GAGP,GAFAk7sB,GAAeA,IAEXl7sB,GAAoB,cAAbA,EAAIl4H,MAAwB,SAASykB,KAAKyzG,EAAI1lH,SACvD,MAAMzX,OAAOgkD,OACX,IAAI8pxB,IAAW,gBAAiBA,IAAW0K,YAAa39uB,EAAQ4lF,GAChE,CACE2tB,MAAOjxE,EAAIixE,OAASjxE,IAK1B,MAAM2wsB,IAAWjq0B,KAAKs5H,EAAKA,GAAOA,EAAIlwG,KAAM4tE,EAAQ4lF,EACtD,CACD,GC5NKy6pB,IAAgB,CACpBC,KCNF,KDOE9kmB,IAAK+kmB,IACLvyxB,MAAOwyxB,KAGTpR,IAAMrj0B,QAAQs00B,KAAe,CAAC9pzB,EAAIjvB,KAChC,GAAIivB,EAAI,CACN,IACEpxB,OAAO4c,eAAewU,EAAI,OAAQ,CAACjvB,SACrC,CAAE,MAAOvB,KACP,CAEFZ,OAAO4c,eAAewU,EAAI,cAAe,CAACjvB,SAC5C,KAGF,MAAMm50B,IAAgB5ktB,GAAW,KAAKA,IAEhC6ktB,IAAoB5K,GAAY1G,IAAMl0wB,WAAW46wB,IAAwB,OAAZA,IAAgC,IAAZA,EAEvF,IACe6K,IACXA,EAAWvR,IAAMh4zB,QAAQup0B,GAAYA,EAAW,CAACA,GAEjD,MAAM,OAAC730B,GAAU630B,EACjB,IAAIC,EACA9K,EAEJ,MAAM+K,EAAkB,CAAC,EAEzB,IAAK,IAAIhv0B,EAAI,EAAGA,EAAI/I,EAAQ+I,IAAK,CAE/B,IAAIgqB,EAIJ,GALA+kzB,EAAgBD,EAAS9u0B,GAGzBik0B,EAAU8K,GAELF,IAAiBE,KACpB9K,EAAUuK,KAAexkzB,EAAKpY,OAAOm9zB,IAAgBx6zB,oBAErCrd,IAAZ+s0B,GACF,MAAM,IAAI7C,IAAW,oBAAoBp3yB,MAI7C,GAAIi6yB,EACF,MAGF+K,EAAgBhlzB,GAAM,IAAMhqB,GAAKik0B,CACnC,CAEA,IAAKA,EAAS,CAEZ,MAAMgL,EAAU370B,OAAO6W,QAAQ6k0B,GAC5Bl10B,KAAI8T,IAAA,IAAEoc,EAAI/uB,GAAM2S,EAAA,MAAK,WAAWoc,OACpB,IAAV/uB,EAAkB,sCAAwC,gCAAgC,IAG/F,IAAI6Z,EAAI7d,EACLg40B,EAAQh40B,OAAS,EAAI,YAAcg40B,EAAQn10B,IAAI800B,KAAc/00B,KAAK,MAAQ,IAAM+00B,IAAaK,EAAQ,IACtG,0BAEF,MAAM,IAAI7N,IACR,wDAA0DtszB,EAC1D,kBAEJ,CAEA,OAAOmvzB,CAAO,EE3DlB,SAASiL,IAA6B/gvB,GAKpC,GAJIA,EAAOw8uB,aACTx8uB,EAAOw8uB,YAAYwE,mBAGjBhhvB,EAAOimD,QAAUjmD,EAAOimD,OAAOszD,QACjC,MAAM,IAAI2/nB,IAAc,KAAMl5uB,EAElC,CASe,SAASihvB,IAAgBjhvB,GACtC+gvB,IAA6B/gvB,GAE7BA,EAAO66I,QAAU68lB,IAAa1u0B,KAAKg3F,EAAO66I,SAG1C76I,EAAOpwD,KAAOmpyB,IAAc1z0B,KAC1B26F,EACAA,EAAO+1uB,mBAGgD,IAArD,CAAC,OAAQ,MAAO,SAAS1l0B,QAAQ2vF,EAAOrgE,SAC1CqgE,EAAO66I,QAAQu7lB,eAAe,qCAAqC,GAKrE,OAFgBuK,IAAoB3gvB,EAAO81uB,SAAW34yB,IAAS24yB,QAExDA,CAAQ91uB,GAAQ2gC,MAAK,SAA6BugE,GAYvD,OAXA6/oB,IAA6B/gvB,GAG7BkhG,EAAStxJ,KAAOmpyB,IAAc1z0B,KAC5B26F,EACAA,EAAO02uB,kBACPx1oB,GAGFA,EAAS25C,QAAU68lB,IAAa1u0B,KAAKk4L,EAAS25C,SAEvC35C,CACT,IAAG,SAA4BrlE,GAe7B,OAdKi4gB,IAASj4gB,KACZkltB,IAA6B/gvB,GAGzB67B,GAAUA,EAAOqlE,WACnBrlE,EAAOqlE,SAAStxJ,KAAOmpyB,IAAc1z0B,KACnC26F,EACAA,EAAO02uB,kBACP76sB,EAAOqlE,UAETrlE,EAAOqlE,SAAS25C,QAAU68lB,IAAa1u0B,KAAK6yH,EAAOqlE,SAAS25C,WAIzDxkM,QAAQk3C,OAAOsuC,EACxB,GACF,CChFO,MAAM/nH,IAAU,QCKjBot0B,IAAa,CAAC,EAGpB,CAAC,SAAU,UAAW,SAAU,WAAY,SAAU,UAAUn10B,SAAQ,CAACuG,EAAMT,KAC7Eqv0B,IAAW5u0B,GAAQ,SAAmBuwL,GACpC,cAAcA,IAAUvwL,GAAQ,KAAOT,EAAI,EAAI,KAAO,KAAOS,CAC/D,CAAC,IAGH,MAAM6u0B,IAAqB,CAAC,EAW5BD,IAAWtL,aAAe,SAAsB5nM,EAAW9lmB,EAAStrB,GAClE,SAASwk0B,EAAcrxsB,EAAK75G,GAC1B,MAAO,uCAAoD65G,EAAM,IAAO75G,GAAQtZ,EAAU,KAAOA,EAAU,GAC7G,CAGA,MAAO,CAACtV,EAAOyoI,EAAK78G,KAClB,IAAkB,IAAd86mB,EACF,MAAM,IAAIilM,IACRmO,EAAcrxsB,EAAK,qBAAuB7nG,EAAU,OAASA,EAAU,KACvE+qyB,IAAWoO,gBAef,OAXIn5yB,IAAYi5yB,IAAmBpxsB,KACjCoxsB,IAAmBpxsB,IAAO,EAE1BjzH,QAAQC,KACNqk0B,EACErxsB,EACA,+BAAiC7nG,EAAU,8CAK1C8lmB,GAAYA,EAAU1moB,EAAOyoI,EAAK78G,EAAY,CAEzD,EAmCA,WACEouzB,cAxBF,SAAuB98zB,EAAS+ia,EAAQg6Z,GACtC,GAAuB,kBAAZ/8zB,EACT,MAAM,IAAIyuzB,IAAW,4BAA6BA,IAAWuO,sBAE/D,MAAMv30B,EAAO9E,OAAO8E,KAAKua,GACzB,IAAI3S,EAAI5H,EAAKnB,OACb,KAAO+I,KAAM,GAAG,CACd,MAAMk+H,EAAM9lI,EAAK4H,GACXm8nB,EAAYzmN,EAAOx3S,GACzB,GAAIi+f,EAAJ,CACE,MAAM1moB,EAAQkd,EAAQurH,GAChBx/G,OAAmBxnB,IAAVzB,GAAuB0moB,EAAU1moB,EAAOyoI,EAAKvrH,GAC5D,IAAe,IAAX+L,EACF,MAAM,IAAI0izB,IAAW,UAAYljsB,EAAM,YAAcx/G,EAAQ0izB,IAAWuO,qBAG5E,MACA,IAAqB,IAAjBD,EACF,MAAM,IAAItO,IAAW,kBAAoBljsB,EAAKkjsB,IAAWwO,eAE7D,CACF,EAIEP,gBC9EIA,IAAalzM,IAAUkzM,WAS7B,MAAMQ,IACJ7l0B,WAAAA,CAAY8l0B,GACVj80B,KAAKy3B,SAAWwkzB,EAChBj80B,KAAKg3M,aAAe,CAClB92B,QAAS,IAAIg8pB,IACb1gpB,SAAU,IAAI0gpB,IAElB,CAUA,aAAMh8pB,CAAQi8pB,EAAa7hvB,GACzB,IACE,aAAat6F,KAAK+50B,SAASoC,EAAa7hvB,EAC1C,CAAE,MAAOsiC,GACP,GAAIA,aAAe7vG,MAAO,CACxB,IAAI6ylB,EAEJ7ylB,MAAMwpG,kBAAoBxpG,MAAMwpG,kBAAkBqpf,EAAQ,CAAC,GAAMA,EAAQ,IAAI7ylB,MAG7E,MAAMC,EAAQ4ylB,EAAM5ylB,MAAQ4ylB,EAAM5ylB,MAAM3c,QAAQ,QAAS,IAAM,GAC/D,IACOusH,EAAI5vG,MAGEA,IAAUjP,OAAO6+G,EAAI5vG,OAAOi9D,SAASj9D,EAAM3c,QAAQ,YAAa,OACzEusH,EAAI5vG,OAAS,KAAOA,GAHpB4vG,EAAI5vG,MAAQA,CAKhB,CAAE,MAAO3sB,KACP,CAEJ,CAEA,MAAMu8H,CACR,CACF,CAEAm9sB,QAAAA,CAASoC,EAAa7hvB,GAGO,kBAAhB6hvB,GACT7hvB,EAASA,GAAU,CAAC,GACb20B,IAAMkttB,EAEb7hvB,EAAS6hvB,GAAe,CAAC,EAG3B7hvB,EAASs7uB,IAAY510B,KAAKy3B,SAAU6iE,GAEpC,MAAM,aAAC41uB,EAAY,iBAAEmG,EAAgB,QAAElhmB,GAAW76I,OAE7Bj3F,IAAjB6s0B,GACF5nM,IAAUszM,cAAc1L,EAAc,CACpCf,kBAAmBqM,IAAWtL,aAAasL,IAAWY,SACtDhN,kBAAmBoM,IAAWtL,aAAasL,IAAWY,SACtD/M,oBAAqBmM,IAAWtL,aAAasL,IAAWY,WACvD,GAGmB,MAApB/F,IACE3M,IAAMl0wB,WAAW6gxB,GACnB/7uB,EAAO+7uB,iBAAmB,CACxBxH,UAAWwH,GAGb/tM,IAAUszM,cAAcvF,EAAkB,CACxC7xxB,OAAQg3xB,IAAWn7E,SACnBwuE,UAAW2M,IAAWn7E,WACrB,IAKP/lqB,EAAOrgE,QAAUqgE,EAAOrgE,QAAUj6B,KAAKy3B,SAASwC,QAAU,OAAOvZ,cAGjE,IAAI27zB,EAAiBlnmB,GAAWu0lB,IAAMvmvB,MACpCgyJ,EAAQu8lB,OACRv8lB,EAAQ76I,EAAOrgE,SAGjBk7M,GAAWu0lB,IAAMrj0B,QACf,CAAC,SAAU,MAAO,OAAQ,OAAQ,MAAO,QAAS,WACjD4zB,WACQk7M,EAAQl7M,EAAO,IAI1BqgE,EAAO66I,QAAU68lB,IAAa54zB,OAAOij0B,EAAgBlnmB,GAGrD,MAAMmnmB,EAA0B,GAChC,IAAIC,GAAiC,EACrCv80B,KAAKg3M,aAAa92B,QAAQ75K,SAAQ,SAAoC04E,GACjC,oBAAxBA,EAAYkwvB,UAA0D,IAAhClwvB,EAAYkwvB,QAAQ30uB,KAIrEiivB,EAAiCA,GAAkCx9vB,EAAYiwvB,YAE/EsN,EAAwB9s0B,QAAQuvE,EAAY+8G,UAAW/8G,EAAYg9G,UACrE,IAEA,MAAMygpB,EAA2B,GAKjC,IAAIx/sB,EAJJh9H,KAAKg3M,aAAaxb,SAASn1L,SAAQ,SAAkC04E,GACnEy9vB,EAAyBpw0B,KAAK2yE,EAAY+8G,UAAW/8G,EAAYg9G,SACnE,IAGA,IACIpsI,EADAxjD,EAAI,EAGR,IAAKow0B,EAAgC,CACnC,MAAMz9vB,EAAQ,CAACy8vB,IAAgB170B,KAAKG,WAAOqD,GAO3C,IANAy7E,EAAMtvE,QAAQ2J,MAAM2lE,EAAOw9vB,GAC3Bx9vB,EAAM1yE,KAAK+M,MAAM2lE,EAAO09vB,GACxB7sxB,EAAMmvB,EAAM17E,OAEZ45H,EAAUrsF,QAAQ2mB,QAAQgjC,GAEnBnuF,EAAIwjD,GACTqtE,EAAUA,EAAQ/B,KAAKn8C,EAAM3yE,KAAM2yE,EAAM3yE,MAG3C,OAAO6wH,CACT,CAEArtE,EAAM2sxB,EAAwBl50B,OAE9B,IAAI8z0B,EAAY58uB,EAIhB,IAFAnuF,EAAI,EAEGA,EAAIwjD,GAAK,CACd,MAAMguE,EAAc2+sB,EAAwBnw0B,KACtCkwH,EAAaigtB,EAAwBnw0B,KAC3C,IACE+q0B,EAAYv5sB,EAAYu5sB,EAC1B,CAAE,MAAOjg0B,IACPolH,EAAW18H,KAAKK,KAAMiX,IACtB,KACF,CACF,CAEA,IACE+lH,EAAUu+sB,IAAgB570B,KAAKK,KAAMk30B,EACvC,CAAE,MAAOjg0B,IACP,OAAO05B,QAAQk3C,OAAO5wE,GACxB,CAKA,IAHA9K,EAAI,EACJwjD,EAAM6sxB,EAAyBp50B,OAExB+I,EAAIwjD,GACTqtE,EAAUA,EAAQ/B,KAAKuhtB,EAAyBrw0B,KAAMqw0B,EAAyBrw0B,MAGjF,OAAO6wH,CACT,CAEAy/sB,MAAAA,CAAOnivB,GAGL,OAAOq0uB,IADU2G,KADjBh7uB,EAASs7uB,IAAY510B,KAAKy3B,SAAU6iE,IACEi7uB,QAASj7uB,EAAO20B,KAC5B30B,EAAOyoC,OAAQzoC,EAAO+7uB,iBAClD,EAIF3M,IAAMrj0B,QAAQ,CAAC,SAAU,MAAO,OAAQ,YAAY,SAA6B4zB,GAE/E+hzB,IAAMrr0B,UAAUspB,GAAU,SAASg1F,EAAK30B,GACtC,OAAOt6F,KAAKkgL,QAAQ01pB,IAAYt7uB,GAAU,CAAC,EAAG,CAC5CrgE,SACAg1F,MACA/kF,MAAOowD,GAAU,CAAC,GAAGpwD,OAEzB,CACF,IAEAw/xB,IAAMrj0B,QAAQ,CAAC,OAAQ,MAAO,UAAU,SAA+B4zB,GAGrE,SAASyizB,EAAmB9rW,GAC1B,OAAO,SAAoB3hX,EAAK/kF,EAAMowD,GACpC,OAAOt6F,KAAKkgL,QAAQ01pB,IAAYt7uB,GAAU,CAAC,EAAG,CAC5CrgE,SACAk7M,QAASy7P,EAAS,CAChB,eAAgB,uBACd,CAAC,EACL3hX,MACA/kF,SAEJ,CACF,CAEA8xyB,IAAMrr0B,UAAUspB,GAAUyizB,IAE1BV,IAAMrr0B,UAAUspB,EAAS,QAAUyizB,GAAmB,EACxD,IAEA,cCxNA,MAAMC,IACJxm0B,WAAAA,CAAYym0B,GACV,GAAwB,oBAAbA,EACT,MAAM,IAAIhl0B,UAAU,gCAGtB,IAAIil0B,EAEJ780B,KAAKg9H,QAAU,IAAIrsF,SAAQ,SAAyB2mB,GAClDulxB,EAAiBvlxB,CACnB,IAEA,MAAMl5C,EAAQpe,KAGdA,KAAKg9H,QAAQ/B,MAAKn6C,IAChB,IAAK1iE,EAAM0+zB,WAAY,OAEvB,IAAI3w0B,EAAIiS,EAAM0+zB,WAAW150B,OAEzB,KAAO+I,KAAM,GACXiS,EAAM0+zB,WAAW3w0B,GAAG20E,GAEtB1iE,EAAM0+zB,WAAa,IAAI,IAIzB980B,KAAKg9H,QAAQ/B,KAAO8htB,IAClB,IAAIC,EAEJ,MAAMhgtB,EAAU,IAAIrsF,SAAQ2mB,IAC1Bl5C,EAAMi6zB,UAAU/gxB,GAChB0lxB,EAAW1lxB,CAAO,IACjB2jE,KAAK8htB,GAMR,OAJA//sB,EAAQl8C,OAAS,WACf1iE,EAAM05zB,YAAYkF,EACpB,EAEOhgtB,CAAO,EAGhB4/sB,GAAS,SAAgB1l0B,EAASojF,EAAQ4lF,GACpC9hK,EAAM+3G,SAKV/3G,EAAM+3G,OAAS,IAAIq9sB,IAAct8zB,EAASojF,EAAQ4lF,GAClD28pB,EAAez+zB,EAAM+3G,QACvB,GACF,CAKAmltB,gBAAAA,GACE,GAAIt70B,KAAKm2H,OACP,MAAMn2H,KAAKm2H,MAEf,CAMAkitB,SAAAA,CAAUrorB,GACJhwJ,KAAKm2H,OACP65B,EAAShwJ,KAAKm2H,QAIZn2H,KAAK880B,WACP980B,KAAK880B,WAAW1w0B,KAAK4jJ,GAErBhwJ,KAAK880B,WAAa,CAAC9srB,EAEvB,CAMA8nrB,WAAAA,CAAY9nrB,GACV,IAAKhwJ,KAAK880B,WACR,OAEF,MAAMrwzB,EAAQzsB,KAAK880B,WAAWny0B,QAAQqlJ,IACvB,IAAXvjI,GACFzsB,KAAK880B,WAAWtnzB,OAAO/I,EAAO,EAElC,CAEA0tzB,aAAAA,GACE,MAAM1B,EAAa,IAAIC,gBAEjBt7e,EAASxgO,IACb67sB,EAAWr7e,MAAMxgO,EAAI,EAOvB,OAJA58H,KAAKq40B,UAAUj7e,GAEfq7e,EAAWl4rB,OAAOu3rB,YAAc,IAAM930B,KAAK830B,YAAY16e,GAEhDq7e,EAAWl4rB,MACpB,CAMA,aAAO3pI,GACL,IAAIkqE,EACJ,MAAM1iE,EAAQ,IAAIu+zB,KAAY,SAAkBt8zB,GAC9CygE,EAASzgE,CACX,IACA,MAAO,CACLjC,QACA0iE,SAEJ,EAGF,cCtIA,MAAMm8vB,IAAiB,CACrBC,SAAU,IACVC,mBAAoB,IACpBC,WAAY,IACZC,WAAY,IACZv2qB,GAAI,IACJw2qB,QAAS,IACTC,SAAU,IACVC,4BAA6B,IAC7BC,UAAW,IACXC,aAAc,IACdC,eAAgB,IAChBC,YAAa,IACbC,gBAAiB,IACjBC,OAAQ,IACRC,gBAAiB,IACjBC,iBAAkB,IAClBC,MAAO,IACPC,SAAU,IACVC,YAAa,IACbC,SAAU,IACVC,OAAQ,IACRC,kBAAmB,IACnBC,kBAAmB,IACnBC,WAAY,IACZC,aAAc,IACdC,gBAAiB,IACjBC,UAAW,IACXC,SAAU,IACVC,iBAAkB,IAClBC,cAAe,IACfC,4BAA6B,IAC7BC,eAAgB,IAChBC,SAAU,IACVC,KAAM,IACNC,eAAgB,IAChBC,mBAAoB,IACpBC,gBAAiB,IACjBC,WAAY,IACZC,qBAAsB,IACtBC,oBAAqB,IACrBC,kBAAmB,IACnBC,UAAW,IACXC,mBAAoB,IACpBC,oBAAqB,IACrBC,OAAQ,IACRC,iBAAkB,IAClBC,SAAU,IACVC,gBAAiB,IACjBC,qBAAsB,IACtBC,gBAAiB,IACjBC,4BAA6B,IAC7BC,2BAA4B,IAC5BC,oBAAqB,IACrBC,eAAgB,IAChBC,WAAY,IACZC,mBAAoB,IACpBC,eAAgB,IAChBC,wBAAyB,IACzBC,sBAAuB,IACvBC,oBAAqB,IACrBC,aAAc,IACdC,YAAa,IACbC,8BAA+B,KAGjCth1B,OAAO6W,QAAQ2m0B,KAAgB520B,SAAQ0T,IAAkB,IAAhBzN,EAAK1K,GAAMmY,EAClDkj0B,IAAer70B,GAAS0K,CAAG,IAG7B,cCxBA,MAAM000B,IAnBN,SAAStulB,EAAeuulB,GACtB,MAAMhm0B,EAAU,IAAI+g0B,IAAMiF,GACpBvp0B,EAAW7X,IAAKm80B,IAAMrr0B,UAAUuvK,QAASjlK,GAa/C,OAVAyuzB,IAAMjgvB,OAAO/xE,EAAUsk0B,IAAMrr0B,UAAWsK,EAAS,CAAC+vzB,YAAY,IAG9DtB,IAAMjgvB,OAAO/xE,EAAUuD,EAAS,KAAM,CAAC+vzB,YAAY,IAGnDtzzB,EAASQ,OAAS,SAAgB+j0B,GAChC,OAAOvplB,EAAekjlB,IAAYqL,EAAehF,GACnD,EAEOvk0B,CACT,CAGcg7O,CAAej7N,KAG7BupzB,IAAMhF,MAAQA,IAGdgF,IAAMxN,cAAgBA,IACtBwN,IAAMrE,YAAcA,IACpBqE,IAAM5yM,SAAWA,IACjB4yM,IAAM5y0B,QAAUA,IAChB4y0B,IAAMxS,WAAaA,IAGnBwS,IAAMzT,WAAaA,IAGnByT,IAAMt+R,OAASs+R,IAAMxN,cAGrBwN,IAAMjxzB,IAAM,SAAakvJ,GACvB,OAAOtuI,QAAQ5gB,IAAIkvJ,EACrB,EAEA+hqB,IAAM54vB,OC9CS,SAAgBthF,GAC7B,OAAO,SAAcqmC,GACnB,OAAOrmC,EAASqS,MAAM,KAAMg0B,EAC9B,CACF,ED6CA6zyB,IAAME,aE7DS,SAAsB/orB,GACnC,OAAOuxqB,IAAMp2wB,SAAS6kG,KAAsC,IAAzBA,EAAQ+orB,YAC7C,EF8DAF,IAAMpL,YAAcA,IAEpBoL,IAAMhP,aAAeA,IAErBgP,IAAMG,WAAahkpB,GAASszoB,IAAe/G,IAAMyB,WAAWhuoB,GAAS,IAAIq8S,SAASr8S,GAASA,GAE3F6jpB,IAAMI,WAAanG,IAEnB+F,IAAM/D,eAAiBA,IAEvB+D,IAAMng1B,QAAUmg1B,IAGhB,cGxFA,IAAIx9xB,IAAsC,WAStC,OARAA,IAAW/jD,OAAOgkD,QAAU,SAAS9hC,GACjC,IAAK,IAAIV,EAAG9U,EAAI,EAAGnK,EAAImB,UAAUC,OAAQ+I,EAAInK,EAAGmK,IAE5C,IAAK,IAAIuW,KADTzB,EAAI9d,UAAUgJ,GACO1M,OAAOkR,UAAUG,eAAenR,KAAKshB,EAAGyB,KACzDf,EAAEe,GAAKzB,EAAEyB,IAEjB,OAAOf,CACX,EACO6hC,IAASrqC,MAAMnZ,KAAMmD,UAChC,EACIw4L,IAAwC,SAAUz8J,EAAS08J,EAAYj5K,EAAGk5K,GAE1E,OAAO,IAAKl5K,IAAMA,EAAIguB,WAAU,SAAU2mB,EAASuwB,GAC/C,SAASi0G,EAAUl6L,GAAS,IAAM24E,EAAKshH,EAAUtlL,KAAK3U,GAAS,CAAE,MAAOvB,KAAKwnF,EAAOxnF,IAAI,CAAE,CAC1F,SAAS07L,EAASn6L,GAAS,IAAM24E,EAAKshH,EAAiB,MAAEj6L,GAAS,CAAE,MAAOvB,KAAKwnF,EAAOxnF,IAAI,CAAE,CAC7F,SAASk6E,EAAK1vD,GAJlB,IAAejpB,EAIaipB,EAAOrU,KAAO8gD,EAAQzsC,EAAOjpB,QAJ1CA,EAIyDipB,EAAOjpB,MAJhDA,aAAiB+gB,EAAI/gB,EAAQ,IAAI+gB,GAAE,SAAU20C,GAAWA,EAAQ11D,EAAQ,KAIjBq5H,KAAK6gE,EAAWC,EAAW,CAC7GxhH,GAAMshH,EAAYA,EAAU1iL,MAAM+lB,EAAS08J,GAAc,KAAKrlL,OAClE,GACJ,EACIqzT,IAA4C,SAAU1qS,EAASzrB,GAC/D,IAAsGiwG,EAAGvpG,EAAGwH,EAAG4hG,EAA3Gh0F,EAAI,CAAE6+Q,MAAO,EAAGnmF,KAAM,WAAa,GAAW,EAAPtmM,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,EAAI,EAAGkoT,KAAM,GAAIhvC,IAAK,IAChG,OAAOt3K,EAAI,CAAEhtG,KAAMuzT,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,oBAAXn7S,SAA0B40F,EAAE50F,OAAO4gB,UAAY,WAAa,OAAOvvC,IAAM,GAAIujH,EACvJ,SAASumN,EAAK9nU,GAAK,OAAO,SAAUq5B,GAAK,OACzC,SAAcy/P,GACV,GAAIp3K,EAAG,MAAM,IAAI9rG,UAAU,mCAC3B,KAAO2rG,IAAMA,EAAI,EAAGu3K,EAAG,KAAOvrQ,EAAI,IAAKA,OACnC,GAAIm0F,EAAI,EAAGvpG,IAAMwH,EAAY,EAARm5Q,EAAG,GAAS3gR,EAAU,OAAI2gR,EAAG,GAAK3gR,EAAS,SAAOwH,EAAIxH,EAAU,SAAMwH,EAAEhiB,KAAKwa,GAAI,GAAKA,EAAE5D,SAAWoL,EAAIA,EAAEhiB,KAAKwa,EAAG2gR,EAAG,KAAKtkR,KAAM,OAAOmL,EAE3J,OADIxH,EAAI,EAAGwH,IAAGm5Q,EAAK,CAAS,EAARA,EAAG,GAAQn5Q,EAAE/f,QACzBk5R,EAAG,IACP,KAAK,EAAG,KAAK,EAAGn5Q,EAAIm5Q,EAAI,MACxB,KAAK,EAAc,OAAXvrQ,EAAE6+Q,QAAgB,CAAExsS,MAAOk5R,EAAG,GAAItkR,MAAM,GAChD,KAAK,EAAG+Y,EAAE6+Q,QAASj0R,EAAI2gR,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKvrQ,EAAEsrQ,IAAIv8P,MAAO/O,EAAEs6S,KAAKvrS,MAAO,SACxC,QACI,KAAkB3c,GAAZA,EAAI4N,EAAEs6S,MAAYzmU,OAAS,GAAKue,EAAEA,EAAEve,OAAS,MAAkB,IAAV03R,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEvrQ,EAAI,EAAG,QAAU,CAC3G,GAAc,IAAVurQ,EAAG,MAAcn5Q,GAAMm5Q,EAAG,GAAKn5Q,EAAE,IAAMm5Q,EAAG,GAAKn5Q,EAAE,IAAM,CAAE4N,EAAE6+Q,MAAQtT,EAAG,GAAI,KAAO,CACrF,GAAc,IAAVA,EAAG,IAAYvrQ,EAAE6+Q,MAAQzsR,EAAE,GAAI,CAAE4N,EAAE6+Q,MAAQzsR,EAAE,GAAIA,EAAIm5Q,EAAI,KAAO,CACpE,GAAIn5Q,GAAK4N,EAAE6+Q,MAAQzsR,EAAE,GAAI,CAAE4N,EAAE6+Q,MAAQzsR,EAAE,GAAI4N,EAAEsrQ,IAAIzuR,KAAK0uR,GAAK,KAAO,CAC9Dn5Q,EAAE,IAAI4N,EAAEsrQ,IAAIv8P,MAChB/O,EAAEs6S,KAAKvrS,MAAO,SAEtBw8P,EAAKrnR,EAAK9T,KAAKu/B,EAAS3P,EAC5B,CAAE,MAAOlvB,KAAKy6R,EAAK,CAAC,EAAGz6R,KAAI8Z,EAAI,CAAG,CAAE,QAAUupG,EAAI/hG,EAAI,CAAG,CACzD,GAAY,EAARm5Q,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAEl5R,MAAOk5R,EAAG,GAAKA,EAAG,QAAK,EAAQtkR,MAAM,EAC9E,CAtBgD+jE,CAAK,CAACv4E,EAAGq5B,GAAK,CAAG,CAuBrE,EAEIgmzB,IAA2B,WAE3B,SAASA,EAAUC,EAAYviwB,EAAawiwB,GACxC,IAAIji1B,EAAQU,KACZA,KAAKwh1B,cAAgBR,IAAM9o0B,OAAO,CAAEq9zB,QAAS+L,IAC7Cth1B,KAAKwh1B,cAAcxqoB,aAAa92B,QAAQz5C,KAAI,SAAUnsC,GAAU,OAAOqhG,IAAUr8L,OAAO,OAAQ,GAAQ,WACpG,OAAOsqU,IAAY5pU,MAAM,SAAUs1C,GAC/B,OAAQA,EAAG84P,OACP,KAAK,EACD,OAAKrvN,EACE,CAAC,EAAaA,EAAYub,IADR,CAAC,EAAa,GAE3C,KAAK,EACDA,EAAShlD,EAAG2yK,OACZ3yK,EAAG84P,MAAQ,EACf,KAAK,EAAG,MAAO,CAAC,EAAc9zM,GAEtC,GACJ,GAAI,IACJt6F,KAAKwh1B,cAAcxqoB,aAAaxb,SAAS/0D,KAAI,SAAUvuC,GAAO,OAAOA,CAAK,IAAG,SAAUjhF,GACnF,IAAIq+B,EACJ,GAA+E,OAAhD,QAAzBA,EAAKr+B,EAAMukL,gBAA6B,IAAPlmJ,OAAgB,EAASA,EAAGmhG,WAAwC,OAAlB8qsB,QAA4C,IAAlBA,OAA2B,EAASA,EAAcE,aAIrK,OAAO9wyB,QAAQk3C,OAAO5wE,GAHlBsq0B,EAAcE,aAItB,GACJ,CAwGA,OAvGAJ,EAAU1w0B,UAAU+F,IAAM,SAAUu4G,EAAKnwG,GACrC,OAAO68K,IAAU37L,UAAM,OAAQ,GAAQ,WACnC,OAAO4pU,IAAY5pU,MAAM,SAAUs1C,GAC/B,OAAQA,EAAG84P,OACP,KAAK,EAAG,MAAO,CAAC,EAAapuS,KAAKwh1B,cACzB9q0B,IAAIu4G,EAAKzrE,IAAS,CAAE2xL,QAAS,CAC1B,eAAgB,mBAChBusmB,OAAQ,qBACP5i0B,IACJm8G,MAAK,SAAU/iC,GAAO,OAAOA,EAAIhuD,IAAM,KAChD,KAAK,EAEL,MAAO,CAAC,EAAcoL,EAAG2yK,QAEjC,GACJ,GACJ,EACAo5nB,EAAU1w0B,UAAUwwqB,KAAO,SAAUlyjB,EAAK/kF,EAAMprB,GAE5C,YADa,IAATorB,IAAmBA,EAAO,CAAC,GACxByxJ,IAAU37L,UAAM,OAAQ,GAAQ,WACnC,OAAO4pU,IAAY5pU,MAAM,SAAUs1C,GAC/B,OAAQA,EAAG84P,OACP,KAAK,EAAG,MAAO,CAAC,EAAapuS,KAAKwh1B,cACzBrgK,KAAKlyjB,EAAK/kF,EAAMsZ,IAAS,CAAE2xL,QAAS,CACjC,eAAgB,mBAChBusmB,OAAQ,qBACP5i0B,IACJm8G,MAAK,SAAU/iC,GAAO,OAAOA,EAAIhuD,IAAM,KAChD,KAAK,EAAG,MAAO,CAAC,EAAcoL,EAAG2yK,QAEzC,GACJ,GACJ,EACAo5nB,EAAU1w0B,UAAUm7M,IAAM,SAAU78F,EAAK/kF,EAAMprB,GAE3C,YADa,IAATorB,IAAmBA,EAAO,CAAC,GACxByxJ,IAAU37L,UAAM,OAAQ,GAAQ,WACnC,OAAO4pU,IAAY5pU,MAAM,SAAUs1C,GAC/B,OAAQA,EAAG84P,OACP,KAAK,EAAG,MAAO,CAAC,EAAapuS,KAAKwh1B,cACzB11nB,IAAI78F,EAAK/kF,EAAMsZ,IAAS,CAAC,EAAG1kC,IAC5Bm8G,MAAK,SAAU/iC,GAAO,OAAOA,EAAIhuD,IAAM,KAChD,KAAK,EAAG,MAAO,CAAC,EAAcoL,EAAG2yK,QAEzC,GACJ,GACJ,EACAo5nB,EAAU1w0B,UAAUsjI,OAAS,SAAUhlB,EAAKnwG,GACxC,OAAO68K,IAAU37L,UAAM,OAAQ,GAAQ,WACnC,OAAO4pU,IAAY5pU,MAAM,SAAUs1C,GAC/B,OAAQA,EAAG84P,OACP,KAAK,EAAG,MAAO,CAAC,EAAapuS,KAAKwh1B,cACzBvtsB,OAAOhlB,EAAKzrE,IAAS,CAAC,EAAG1kC,IACzBm8G,MAAK,SAAU/iC,GAAO,OAAOA,EAAIhuD,IAAM,KAChD,KAAK,EAAG,MAAO,CAAC,EAAcoL,EAAG2yK,QAEzC,GACJ,GACJ,EACAo5nB,EAAU1w0B,UAAUmO,QAAU,SAAUmwG,EAAKnwG,GACzC,OAAO68K,IAAU37L,UAAM,OAAQ,GAAQ,WACnC,OAAO4pU,IAAY5pU,MAAM,SAAUs1C,GAC/B,OAAQA,EAAG84P,OACP,KAAK,EAAG,MAAO,CAAC,EAAapuS,KAAKwh1B,cACzB1i0B,QAAQmwG,EAAKzrE,IAAS,CAAC,EAAG1kC,IAC1Bm8G,MAAK,SAAU/iC,GAAO,OAAOA,EAAIhuD,IAAM,KAChD,KAAK,EAAG,MAAO,CAAC,EAAcoL,EAAG2yK,QAEzC,GACJ,GACJ,EACAo5nB,EAAU1w0B,UAAUmzd,SAAW,SAAU70W,EAAK/kF,EAAMprB,GAEhD,YADa,IAATorB,IAAmBA,EAAO,CAAC,GACxByxJ,IAAU37L,UAAM,OAAQ,GAAQ,WACnC,IAAIV,EAAQU,KACZ,OAAO4pU,IAAY5pU,MAAM,SAAUs1C,GAC/B,OAAQA,EAAG84P,OACP,KAAK,EAAG,MAAO,CAAC,EAAapuS,KAAKwh1B,cACzBrgK,KAAKlyjB,EAAK/kF,EAAMsZ,IAAS,CAAE2xL,QAAS,CACjC,eAAgB,mBAChBusmB,OAAQ,oBACTxQ,aAAc,QAAUpyzB,IAC1Bm8G,MAAK,SAAU/iC,GAAO,OAAOA,EAAIhuD,IAAM,IACvCkyF,OAAM,SAAUnlH,GAAS,OAAO0kL,IAAUr8L,OAAO,OAAQ,GAAQ,WAClE,IAAIg2C,EAAII,EAAIE,EACRG,EAAID,EACR,OAAO8zR,IAAY5pU,MAAM,SAAUi3C,GAC/B,OAAQA,EAAGm3P,OACP,KAAK,EAKD,OAJAr4P,EAAK,CAAC,EACNT,EAAK,CAACkO,IAAS,CAAC,EAAGvsC,EAAMukL,WACzB1lJ,EAAK,CAAC,EACNF,GAAMF,EAAKjF,MAAMuL,MACV,CAAC,EAAa/kC,EAAMukL,SAAStxJ,KAAKjK,QAC7C,KAAK,EAAG,MAAM8V,EAAGylJ,SAAWh4I,IAASrqC,WAAM,EAAQm8B,EAAGl8B,OAAO,EAAE08B,EAAG5L,KAAO0L,EAAGz8B,MAAMu8B,EAAI,CAACuB,EAAGgxK,SAAUnyK,MAChGC,EAEZ,GACJ,GAAI,KACR,KAAK,EAAG,MAAO,CAAC,EAAcT,EAAG2yK,QAEzC,GACJ,GACJ,EACOo5nB,CACX,CAnI+B,GAoI/B,cCpLA,IAAI79xB,IAAsC,WAStC,OARAA,IAAW/jD,OAAOgkD,QAAU,SAAS9hC,GACjC,IAAK,IAAIV,EAAG9U,EAAI,EAAGnK,EAAImB,UAAUC,OAAQ+I,EAAInK,EAAGmK,IAE5C,IAAK,IAAIuW,KADTzB,EAAI9d,UAAUgJ,GACO1M,OAAOkR,UAAUG,eAAenR,KAAKshB,EAAGyB,KACzDf,EAAEe,GAAKzB,EAAEyB,IAEjB,OAAOf,CACX,EACO6hC,IAASrqC,MAAMnZ,KAAMmD,UAChC,ECVIqgD,KDiD+B,WAC/B,SAASm+xB,EAAcC,GACnB5h1B,KAAK6hb,OAAS,KACd7hb,KAAK6hb,OAAS+/Z,CAClB,CACAD,EAAchx0B,UAAUkx0B,oBAAsB,SAAUC,GACpD,GAAoB,OAAhB9h1B,KAAK6hb,OACL,MAAM,IAAI90Z,MAAM,6BAEpB,IAAIg1zB,GAAcrr0B,EAAAA,GAAAA,KAAI1W,KAAK6hb,OAAQ,UAAUzoa,OAAO0o0B,IACpD,IAAKC,EACD,MAAM,IAAIh1zB,MAAM,wBAAwB3T,OAAO0o0B,IAEnD,OAAOri1B,OAAO8E,KAAKw90B,EACvB,EAEAJ,EAAchx0B,UAAUqx0B,qBAAuB,SAAUF,EAAW9sa,GAEhE,GAAoB,OAAhBh1a,KAAK6hb,OACL,MAAM,IAAI90Z,MAAM,6BAGpB,IAAIk1zB,GAAcvr0B,EAAAA,GAAAA,KAAI1W,KAAK6hb,OAAQ,UAAUzoa,OAAO0o0B,EAAW,KAAK1o0B,OAAO47Z,IAE3E,IAAKita,EACD,MAAM,IAAIl1zB,MAAM,wBAAwB3T,OAAO0o0B,EAAW,KAAK1o0B,OAAO47Z,IAG1E,OAAOxxX,IAASA,IAAS,CAAC,EAAGy+xB,GAAc,CAAEr10B,KAAMq10B,EAAYC,eACnE,EASAP,EAAchx0B,UAAUwx0B,iBAAmB,SAAUL,EAAWzliB,EAAe5yI,EAAMn8G,EAAQ80xB,GACzF,IAAI/sa,EAAar1a,KAAK6h1B,oBAAoBC,GAC1C,OAAO9h1B,KAAKqi1B,kBAAkBP,EAAWzsa,EAAYh5H,EAAe5yI,EAAMn8G,EAAQ80xB,EACtF,EACAT,EAAchx0B,UAAU2x0B,iBAAmB,SAAUR,EAAW9sa,EAAW34H,EAAe5yI,EAAMn8G,EAAQ/yC,GACpG,IAAI6kG,EAAQp/G,KAAKgi1B,qBAAqBF,EAAW9sa,GAUjD,OATA51T,EAAM0iuB,UAAYA,EAClB1iuB,EAAM41T,UAAYA,EAClB51T,EAAMx9G,OAAQ8U,EAAAA,GAAAA,KAAI+yJ,EAAMurQ,GACxB51T,EAAMi3P,eAAgB3/V,EAAAA,GAAAA,KAAI42C,EAAQ0nX,GAClC51T,EAAM7kG,WAAaA,EACnB6kG,EAAMgrN,SAAW,SAAUxoU,GACvB,IAAI+X,GAAWD,EAAAA,GAAAA,KAAI+vJ,EAAMurQ,EAAWpza,GACpCy6S,EAAc74P,IAAS,CAAC,EAAG7pC,GAC/B,EACOylG,CACX,EACAuiuB,EAAchx0B,UAAU0x0B,kBAAoB,SAAUP,EAAWzsa,EAAYh5H,EAAe5yI,EAAMn8G,EAAQ80xB,GACtG,IAAI9i1B,EAAQU,KAqBZ,OApBmBq1a,EAAWpva,KAAI,SAAU+ua,GACxC,GAAyB,kBAAdA,EAEP,OADI51T,EAAQ9/G,EAAMgj1B,iBAAiBR,EAAW9sa,EAAW34H,EAAe5yI,EAAMn8G,EAA2B,OAAnB80xB,QAA8C,IAAnBA,OAA4B,EAASA,EAAe53xB,SAASwqX,IAQ9K,GAAIA,EAAUA,UAAW,CAErB,IAAI51T,EAAQ9/G,EAAMgj1B,kBAAgC,OAAdtta,QAAoC,IAAdA,OAAuB,EAASA,EAAU8sa,YAAcA,EAAW9sa,EAAUA,UAAW34H,EAAe5yI,EAAMn8G,EAA2B,OAAnB80xB,QAA8C,IAAnBA,OAA4B,EAASA,EAAe53xB,SAASwqX,EAAUA,YAEjR,OAAOxxX,IAASA,IAAS,CAAC,EAAG47D,GAAQ41T,EACzC,CAEA,OAAOA,CAEf,GAEJ,EACA2sa,EAAchx0B,UAAU4x0B,4BAA8B,SAAUjovB,GAC5D,IAAIh7F,EAAQU,KAIZ,OAHmC,SAAUq8S,EAAe5yI,EAAMn8G,GAC9D,OAAOhuD,EAAM+i1B,kBAAkB/nvB,EAAO4a,MAAO5a,EAAOunV,OAAQxlI,EAAe5yI,EAAMn8G,EAAQgtC,EAAO/0E,SACpG,CAEJ,CAEJ,CAvFmC,GCjDO,WAStC,OARAi+B,IAAW/jD,OAAOgkD,QAAU,SAAS9hC,GACjC,IAAK,IAAIV,EAAG9U,EAAI,EAAGnK,EAAImB,UAAUC,OAAQ+I,EAAInK,EAAGmK,IAE5C,IAAK,IAAIuW,KADTzB,EAAI9d,UAAUgJ,GACO1M,OAAOkR,UAAUG,eAAenR,KAAKshB,EAAGyB,KACzDf,EAAEe,GAAKzB,EAAEyB,IAEjB,OAAOf,CACX,EACO6hC,IAASrqC,MAAMnZ,KAAMmD,UAChC,GAuCIq/0B,IAAiC,WACjC,SAASA,EAAgBZ,GACrB5h1B,KAAK6hb,OAAS,KACd7hb,KAAK6hb,OAAS+/Z,CAClB,CAqHA,OApHAY,EAAgB7x0B,UAAUkx0B,oBAAsB,SAAUC,GACtD,GAAoB,OAAhB9h1B,KAAK6hb,OACL,MAAM,IAAI90Z,MAAM,6BAEpB,IAAIg1zB,GAAcrr0B,EAAAA,GAAAA,KAAI1W,KAAK6hb,OAAQ,UAAUzoa,OAAO0o0B,IACpD,IAAKC,EACD,MAAM,IAAIh1zB,MAAM,wBAAwB3T,OAAO0o0B,IAEnD,OAAOri1B,OAAO8E,KAAKw90B,EACvB,EAEAS,EAAgB7x0B,UAAUqx0B,qBAAuB,SAAUF,EAAWxld,EAAUmmd,GAE5E,GAAoB,OAAhBzi1B,KAAK6hb,OACL,MAAM,IAAI90Z,MAAM,6BAGpB,IAAIk1zB,GAAcvr0B,EAAAA,GAAAA,KAAI1W,KAAK6hb,OAAQ,UAAUzoa,OAAO0o0B,EAAW,KAAK1o0B,OAAOkjX,IAC3E,IAAK2ld,EACD,MAAM,IAAIl1zB,MAAM,wBAAwB3T,OAAO0o0B,EAAW,KAAK1o0B,OAAOkjX,IAO1E,MAJkC,YAA9B2ld,EAAYC,gBACZD,EAAcji1B,KAAK0i1B,iBAAiBT,EAAaQ,IAG9Cj/xB,IAASA,IAAS,CAAC,EAAGy+xB,GAAc,CAAEr10B,KAAMq10B,EAAYC,eACnE,EACAM,EAAgB7x0B,UAAU+x0B,iBAAmB,SAAUT,EAAaQ,GAEhE,IAAIE,EAAgBV,EACpB,IAAKA,EAAY3ld,SACb,MAAM,IAAIvvW,MAAM,6CAA6C3T,OAAO6o0B,EAAY3ld,WAEpF,IAAKmmd,EACD,MAAM,IAAI11zB,MAAM,6DAA6D3T,OAAO6o0B,EAAY3ld,WAEpG,IAAK2ld,EAAYW,cACb,MAAM,IAAI71zB,MAAM,4CAA4C3T,OAAO6o0B,EAAY3ld,WAEnF,IAAIumd,EAAiBJ,EAAmBR,EAAYW,eACpD,IAAKC,EACD,MAAM,IAAI91zB,MAAM,4BAA4B3T,OAAO6o0B,EAAY3ld,SAAU,oDAAoDljX,OAAO6o0B,EAAYW,cAAe,oBAInK,OAFAD,EAAcrmd,SAAW2ld,EAAY3ld,SACrCqmd,EAAcrihB,SAAWuihB,EAClBF,CACX,EASAH,EAAgB7x0B,UAAUwx0B,iBAAmB,SAAUL,EAAWzliB,EAAe5yI,EAAMn8G,EAAQ80xB,EAAgBK,GAC3G,IAAIK,EAAY9i1B,KAAK6h1B,oBAAoBC,GACzC,OAAO9h1B,KAAKqi1B,kBAAkBP,EAAWgB,EAAWzmiB,EAAe5yI,EAAMn8G,EAAQ80xB,EAAgBK,EACrG,EACAD,EAAgB7x0B,UAAU2x0B,iBAAmB,SAAUR,EAAWxld,EAAUjgF,EAAe5yI,EAAMn8G,EAAQ/yC,EAAYko0B,GAEjH,IAAIR,EAAcji1B,KAAKgi1B,qBAAqBF,EAAWxld,EAAUmmd,GAC7DrjuB,EAAQ6iuB,EACZ,IAAK7iuB,EAAM41T,UACP,MAAM,IAAIjoZ,MAAM,4BAA4B3T,OAAOgmG,EAAMk9Q,SAAU,yDAEvE,IAAK2ld,EAAYc,UACb,MAAM,IAAIh2zB,MAAM,4BAA4B3T,OAAOgmG,EAAMk9Q,SAAU,yDAEvE,IAAI04C,EAAY51T,EAAM41T,UAatB,OAZA51T,EAAM0iuB,UAAYA,EAClB1iuB,EAAMx9G,OAAQ8U,EAAAA,GAAAA,KAAI+yJ,EAAMw4qB,EAAYc,WACpC3juB,EAAMi3P,eAAgB3/V,EAAAA,GAAAA,KAAI42C,EAAQ0nX,GAClC51T,EAAM7kG,WAAaA,EACnB6kG,EAAMgrN,SAAW,SAAUxoU,GACvB,IAAKqg1B,EAAYc,UACb,MAAM,IAAIh2zB,MAAM,4BAA4B3T,OAAOgmG,EAAMk9Q,SAAU,yDAEvE,IAAI3iX,EAAW6pC,IAAS,CAAC,EAAGimH,IAC5B/vJ,EAAAA,GAAAA,KAAIC,EAAUso0B,EAAYc,UAAWnh1B,GACrCy6S,EAAc74P,IAAS,CAAC,EAAG7pC,GAAW/X,EAAOw9G,EACjD,EACOA,CACX,EACAojuB,EAAgB7x0B,UAAU0x0B,kBAAoB,SAAUP,EAAWgB,EAAWzmiB,EAAe5yI,EAAMn8G,EAAQ80xB,EAAgBK,GACvH,IAAInj1B,EAAQU,KAqBZ,OApBmB8i1B,EAAU780B,KAAI,SAAUq2X,GACvC,GAAwB,kBAAbA,EAEP,OADIl9Q,EAAQ9/G,EAAMgj1B,iBAAiBR,EAAWxld,EAAUjgF,EAAe5yI,EAAMn8G,EAA2B,OAAnB80xB,QAA8C,IAAnBA,OAA4B,EAASA,EAAe53xB,SAAS8xU,GAAWmmd,GAQxL,GAAInmd,EAASA,SAAU,CAEnB,IAAIl9Q,EAAQ9/G,EAAMgj1B,kBAA+B,OAAbhmd,QAAkC,IAAbA,OAAsB,EAASA,EAASwld,YAAcA,EAAWxld,EAASA,SAAUjgF,EAAe5yI,EAAMn8G,EAA2B,OAAnB80xB,QAA8C,IAAnBA,OAA4B,EAASA,EAAe53xB,SAAS8xU,EAASA,UAAWmmd,GAEtR,OAAOj/xB,IAASA,IAAS,CAAC,EAAG47D,GAAQk9Q,EACzC,CAEA,OAAOA,CAEf,GAEJ,EACAkmd,EAAgB7x0B,UAAU4x0B,4BAA8B,SAAUjovB,GAC9D,IAAIh7F,EAAQU,KAIZ,OAHc,SAAUq8S,EAAe5yI,EAAMn8G,GACzC,OAAOhuD,EAAM+i1B,kBAAkB/nvB,EAAO4a,MAAO5a,EAAOunV,OAAQxlI,EAAe5yI,EAAMn8G,EAAQgtC,EAAO/0E,SAAU+0E,EAAOmovB,mBACrH,CAEJ,EACOD,CACX,CA1HqC,GCpBjCQ,IAAoB,CACpBrmzB,KAAM4xc,GACN00W,axmBR2B,SAAU7j1B,GACrC,IAAIk2C,EAAKy0R,GAAgB3qU,EAAM4qU,oBAAqB5qU,EAAM6qU,oBAAqB7qU,EAAM8qU,uBAAwB9qU,EAAMwC,MAAOxC,EAAMgrU,SAAUhrU,EAAMirU,uBAAwBQ,EAAyBv1R,EAAGu1R,uBAAwBF,EAAYr1R,EAAGq1R,UAAWF,EAAqBn1R,EAAGm1R,mBAAoBF,EAAej1R,EAAGi1R,aAAcQ,EAAyBz1R,EAAGy1R,uBAAwBE,EAAmC31R,EAAG21R,iCAAkCD,EAA2B11R,EAAG01R,yBAC5d,OAAQxB,EAAAA,GAAAA,MAAM7zB,GAAW,CAAE7vS,SAAU,CAACsoS,KAAUo7B,EAAAA,GAAAA,MAAM,MAAO,CAAEzoU,UAAW,uBAAwB+E,SAAU,EAACujU,EAAAA,GAAAA,KAAKE,GAAY/lR,GAAS,CAAEkmR,UAAWtqU,EAAMgvS,MAAOu7B,mBAAoBvqU,EAAMipD,aACnK,yDAA0DohR,WAAYjmR,GAASA,GAAS,CAAC,EAAGpkD,GAAQ,CAAEwC,MAAO2oU,KAAmBnrU,EAAM07X,aAAc17X,EAAMirU,wBAA0BhB,EAAAA,GAAAA,KAAK65gB,GAAqB,CAAE7md,iBAAiB,EAAMp8V,KAAM,eAAgBr+B,MAAwB,OAAjB2oU,QAA0C,IAAjBA,OAA0B,EAASA,EAAaD,eAAgBF,SAAU,SAAUxoU,GACjXmpU,EAAuBvnR,GAASA,GAAS,CAAC,EAAG+mR,GAAe,CAAED,eAAgB1oU,IAClF,QAAYynU,EAAAA,GAAAA,KAAK,MAAO,CAAEtoU,UAAW,qCAAsC+E,UAAUujU,EAAAA,GAAAA,KAAKlH,GAAS,CAAEr6Q,MAAO6iR,EAC1G,CAAC,CAAEA,WAAW,IACdF,EAAoBjI,YAAY,EAAOnE,aAAc,SAAU9oS,GAAQ,QAASA,EAAKo1S,SAAW,EAAGr9B,aAAc,CACnHhe,gBAAiB,6BACjBplM,SAAU,cACVs5L,SAAS,GACV+6C,aAAc,SAAUhpS,EAAMqmW,GAC7B,OAAIrmW,EAAKo1S,WACEtB,EAAAA,GAAAA,KAAK4sC,GAAmB,CAAErtN,OAAQ,UAGjCygL,EAAAA,GAAAA,KAAKtN,GAAW,CAAE5lS,GAAI,yBAA0Bp1B,UAAW,oBAAqBk/B,KAAM1K,EAAK4tzB,YAAa3i1B,QAASo7X,EAAU/7E,YAAa5+B,KAAM,cAAgB26G,EAAUnvW,MAExL,EAAG0yS,aAAc8L,EAAkCr8T,SAAUo8T,EAA0BvN,UAAW,yBAA0B33T,UAAUujU,EAAAA,GAAAA,KAAKzyB,GAAY,CAAE+F,aAAc,iBAAkB57S,UAAW,wBAAwBqY,OAAOha,EAAMmb,cAAiC,OAAjBgwT,QAA0C,IAAjBA,OAA0B,EAASA,EAAaO,QACxT,0BACA,IAAKlpU,MAAwB,OAAjB2oU,QAA0C,IAAjBA,OAA0B,EAASA,EAAaO,OAAQl8T,SAAUxP,EAAMwP,SAAU+0D,YAAa,SAAUsxO,SAAU,SAAU50S,GACpK,GAAIA,EAAEgI,OAAOzG,QAA2B,OAAjB2oU,QAA0C,IAAjBA,OAA0B,EAASA,EAAaO,QAAS,CACrG,IAAIA,EAASzqU,EAAEgI,OAAOzG,MACtBmpU,EAAuBvnR,GAASA,GAAS,CAAC,EAAG+mR,GAAe,CAAEO,OAAQA,KACtED,EAAuBC,EAAyB,OAAjBP,QAA0C,IAAjBA,OAA0B,EAASA,EAAaD,eAC5G,CACJ,SAAYjB,EAAAA,GAAAA,KAAK,MAAO,CAAEtoU,UAAW,wCAAyC+E,UAAUujU,EAAAA,GAAAA,KAAKklK,GAAW,CAAE3he,KAAM,OAAQwhS,MAAO,GAAIzqO,YAAa,oBAAqB/hE,MAAwB,OAAjB2oU,QAA0C,IAAjBA,OAA0B,EAASA,EAAa64gB,QAAS7od,UAAW,OAAQ3rX,SAAUxP,EAAMwP,UAAYxP,EAAMik1B,YAAaj5gB,SAAU,SAAUxoU,GAChVA,IAA2B,OAAjB2oU,QAA0C,IAAjBA,OAA0B,EAASA,EAAa64gB,UACnFr4gB,EAAuBvnR,GAASA,GAAS,CAAC,EAAG+mR,GAAe,CAAE64gB,QAASxh1B,IAE/E,OAAS4nU,EAAAA,GAAAA,MAAM,MAAO,CAAEzoU,UAAW,aAAc+E,SAAU,EAACujU,EAAAA,GAAAA,KAAK,MAAO,CAAEtoU,UAAW,sBAAuB+E,UAAUujU,EAAAA,GAAAA,KAAKklK,GAAW,CAAE3he,KAAM,OAAQwhS,MAAO,GAAIzqO,YAAa,OAAQ/hE,MAAwB,OAAjB2oU,QAA0C,IAAjBA,OAA0B,EAASA,EAAa+4gB,KAAM/od,UAAW,OAAQ3rX,SAAUxP,EAAMwP,UAAYxP,EAAMik1B,YAAa7k0B,MAAO,MAAO4rT,SAAU,SAAUxoU,GAChWA,IAA2B,OAAjB2oU,QAA0C,IAAjBA,OAA0B,EAASA,EAAa+4gB,OACnFv4gB,EAAuBvnR,GAASA,GAAS,CAAC,EAAG+mR,GAAe,CAAE+4gB,KAAM1h1B,IAC5E,EAAG2Y,WAAYnb,EAAMmb,gBAAkB8uT,EAAAA,GAAAA,KAAK,MAAO,CAAEtoU,UAAW,sBAAuB+E,UAAUujU,EAAAA,GAAAA,KAAK2xD,GAAuB,CAAEpuX,KAAM,mBAAoBwhS,MAAO,GAAIzqO,YAAa,QAAS/hE,MAAwB,OAAjB2oU,QAA0C,IAAjBA,OAA0B,EAASA,EAAanjU,MAAOwH,SAAUxP,EAAMwP,UAAYxP,EAAMik1B,YAAa9o0B,WAAYnb,EAAMmb,WAAY8gX,aAAcS,GAAgB1xD,SAAU,SAAUxoU,GACxYA,IAA2B,OAAjB2oU,QAA0C,IAAjBA,OAA0B,EAASA,EAAanjU,QACnF2jU,EAAuBvnR,GAASA,GAAS,CAAC,EAAG+mR,GAAe,CAAEnjU,MAAOxF,IAE7E,OAASynU,EAAAA,GAAAA,KAAK,MAAO,CAAEtoU,UAAW,sBAAuB+E,UAAUujU,EAAAA,GAAAA,KAAKklK,GAAW,CAAE3he,KAAM,OAAQwhS,MAAO,GAAIxsS,MAAwB,OAAjB2oU,QAA0C,IAAjBA,OAA0B,EAASA,EAAa3rP,IAAKjb,YAAa,WAAY42T,UAAW,OAAQ3rX,SAAUxP,EAAMwP,UAAYxP,EAAMik1B,YAAaj5gB,SAAU,SAAUxoU,GAC1SA,IAA2B,OAAjB2oU,QAA0C,IAAjBA,OAA0B,EAASA,EAAa3rP,MACnFmsP,EAAuBvnR,GAASA,GAAS,CAAC,EAAG+mR,GAAe,CAAE3rP,IAAKh9E,IAE3E,EAAG2Y,WAAYnb,EAAMmb,eAAkBnb,EAAM8qU,yBAA2Bb,EAAAA,GAAAA,KAAK,MAAO,CAAEtoU,UAAW,sBAAuB+E,UAAUujU,EAAAA,GAAAA,KAAKklK,GAAW,CAAE3he,KAAM,OAAQwhS,MAAO,GAAIxsS,MAAwB,OAAjB2oU,QAA0C,IAAjBA,OAA0B,EAASA,EAAag5gB,OAAQ5/wB,YAAa,SAAU42T,UAAW,OAAQ3rX,SAAUxP,EAAMwP,UAAYxP,EAAMik1B,YAAaj5gB,SAAU,SAAUxoU,GAC1WA,IAA2B,OAAjB2oU,QAA0C,IAAjBA,OAA0B,EAASA,EAAag5gB,SACnFx4gB,EAAuBvnR,GAASA,GAAS,CAAC,EAAG+mR,GAAe,CAAEg5gB,OAAQ3h1B,IAE9E,SAAcxC,EAAMi3W,gBAAkBhtC,EAAAA,GAAAA,KAAKC,GAAAA,SAAW,CAAExjU,SAAU1G,EAAMi3W,cAAcpwW,KAAI,SAAUi0I,EAAcrwF,GAAO,OAAQw/Q,EAAAA,GAAAA,KAAK,IAAK,CAAEtoU,UAAW,gBAAiB+E,SAAUo0I,GAAgBrwF,EAAO,QACtO,EwmBrCI25xB,cvmBb4B,SAAUpk1B,GACtC,IAAIk2C,GAAKq/F,EAAAA,GAAAA,UAASv1I,EAAMwC,OAAQ2oU,EAAej1R,EAAG,GAAIk1R,EAAkBl1R,EAAG,GACvEy1R,EAAyB,SAAUZ,GACnCK,EAAgBL,GAChB/qU,EAAMgrU,UAAYhrU,EAAMgrU,SAASD,EACrC,EACA,OAAQX,EAAAA,GAAAA,MAAM7zB,GAAW,CAAE7vS,SAAU,CAACsoS,KAAUi7B,EAAAA,GAAAA,KAAKE,GAAY/lR,GAAS,CAAEkmR,UAAWtqU,EAAMgvS,MAAOu7B,mBAAoBvqU,EAAMipD,YAAaohR,WAAYjmR,GAASA,GAAS,CAAC,EAAGpkD,GAAQ,CAAEwC,MAAO2oU,KAAmBnrU,EAAM07X,cAAezxD,EAAAA,GAAAA,KAAK,MAAO,CAAEtoU,UAAW,qCAAsC+E,UAAUujU,EAAAA,GAAAA,KAAKzyB,GAAY,CAAE+F,aAAc,iBAAkB57S,UAAW,wBAAwBqY,OAAOha,EAAMmb,cAAiC,OAAjBgwT,QAA0C,IAAjBA,OAA0B,EAASA,EAAaO,QACrd,0BACA,IAAKlpU,MAAwB,OAAjB2oU,QAA0C,IAAjBA,OAA0B,EAASA,EAAaO,OAAQl8T,SAAUxP,EAAMwP,SAAU+0D,YAAa,SAAUsxO,SAAU,SAAU50S,GACpK,GAAIA,EAAEgI,OAAOzG,QAA2B,OAAjB2oU,QAA0C,IAAjBA,OAA0B,EAASA,EAAaO,QAAS,CACrG,IAAIA,EAASzqU,EAAEgI,OAAOzG,MACtBmpU,EAAuBvnR,GAASA,GAAS,CAAC,EAAG+mR,GAAe,CAAEO,OAAQA,IAC1E,CACJ,OAASzB,EAAAA,GAAAA,KAAK,MAAO,CAAEtoU,UAAW,wCAAyC+E,UAAUujU,EAAAA,GAAAA,KAAKklK,GAAW,CAAE3he,KAAM,OAAQwhS,MAAO,GAAIzqO,YAAa,oBAAqB/hE,MAAwB,OAAjB2oU,QAA0C,IAAjBA,OAA0B,EAASA,EAAa64gB,QAAS7od,UAAW,OAAQ3rX,SAAUxP,EAAMwP,SAAUw7T,SAAU,SAAUxoU,GACpTA,IAA2B,OAAjB2oU,QAA0C,IAAjBA,OAA0B,EAASA,EAAa64gB,UACnFr4gB,EAAuBvnR,GAASA,GAAS,CAAC,EAAG+mR,GAAe,CAAE64gB,QAASxh1B,IAE/E,OAAS4nU,EAAAA,GAAAA,MAAM,MAAO,CAAEzoU,UAAW,aAAc+E,SAAU,EAACujU,EAAAA,GAAAA,KAAK,MAAO,CAAEtoU,UAAW,sBAAuB+E,UAAUujU,EAAAA,GAAAA,KAAKklK,GAAW,CAAE3he,KAAM,OAAQwhS,MAAO,GAAIzqO,YAAa,OAAQ/hE,MAAwB,OAAjB2oU,QAA0C,IAAjBA,OAA0B,EAASA,EAAa+4gB,KAAM/od,UAAW,OAAQ3rX,SAAUxP,EAAMwP,SAAU4P,MAAO,MAAO4rT,SAAU,SAAUxoU,GAC3UA,IAA2B,OAAjB2oU,QAA0C,IAAjBA,OAA0B,EAASA,EAAa+4gB,OACnFv4gB,EAAuBvnR,GAASA,GAAS,CAAC,EAAG+mR,GAAe,CAAE+4gB,KAAM1h1B,IAC5E,EAAG2Y,WAAYnb,EAAMmb,gBAAkB8uT,EAAAA,GAAAA,KAAK,MAAO,CAAEtoU,UAAW,sBAAuB+E,UAAUujU,EAAAA,GAAAA,KAAK2xD,GAAuB,CAAEpuX,KAAM,mBAAoBwhS,MAAO,GAAIzqO,YAAa,QAAS/hE,MAAwB,OAAjB2oU,QAA0C,IAAjBA,OAA0B,EAASA,EAAanjU,MAAOwH,SAAUxP,EAAMwP,SAAU2L,WAAYnb,EAAMmb,WAAY8gX,aAAcS,GAAgB1xD,SAAU,SAAUxoU,GACnXA,IAA2B,OAAjB2oU,QAA0C,IAAjBA,OAA0B,EAASA,EAAanjU,QACnF2jU,EAAuBvnR,GAASA,GAAS,CAAC,EAAG+mR,GAAe,CAAEnjU,MAAOxF,IAE7E,OAASynU,EAAAA,GAAAA,KAAK,MAAO,CAAEtoU,UAAW,sBAAuB+E,UAAUujU,EAAAA,GAAAA,KAAKklK,GAAW,CAAE3he,KAAM,OAAQwhS,MAAO,GAAIxsS,MAAwB,OAAjB2oU,QAA0C,IAAjBA,OAA0B,EAASA,EAAa3rP,IAAKjb,YAAa,WAAY42T,UAAW,OAAQ3rX,SAAUxP,EAAMwP,SAAUw7T,SAAU,SAAUxoU,GACrRA,IAA2B,OAAjB2oU,QAA0C,IAAjBA,OAA0B,EAASA,EAAa3rP,MACnFmsP,EAAuBvnR,GAASA,GAAS,CAAC,EAAG+mR,GAAe,CAAE3rP,IAAKh9E,IAE3E,EAAG2Y,WAAYnb,EAAMmb,eAAkBnb,EAAM8qU,yBAA2Bb,EAAAA,GAAAA,KAAK,MAAO,CAAEtoU,UAAW,sBAAuB+E,UAAUujU,EAAAA,GAAAA,KAAKklK,GAAW,CAAE3he,KAAM,OAAQwhS,MAAO,GAAIxsS,MAAwB,OAAjB2oU,QAA0C,IAAjBA,OAA0B,EAASA,EAAag5gB,OAAQ5/wB,YAAa,SAAU42T,UAAW,OAAQ3rX,SAAUxP,EAAMwP,SAAUw7T,SAAU,SAAUxoU,GACrVA,IAA2B,OAAjB2oU,QAA0C,IAAjBA,OAA0B,EAASA,EAAag5gB,SACnFx4gB,EAAuBvnR,GAASA,GAAS,CAAC,EAAG+mR,GAAe,CAAEg5gB,OAAQ3h1B,IAE9E,SAAcxC,EAAMi3W,gBAAkBhtC,EAAAA,GAAAA,KAAKC,GAAAA,SAAW,CAAExjU,SAAU1G,EAAMi3W,cAAcpwW,KAAI,SAAUi0I,EAAcrwF,GAAO,OAAQw/Q,EAAAA,GAAAA,KAAK,IAAK,CAAEtoU,UAAW,gBAAiB+E,SAAUo0I,GAAgBrwF,EAAO,QACtO,EumBnBI45xB,eAAgBP,GAChBQ,aAAcC,IACdli1B,KliBbmB,SAAUrC,GAC7B,ImiBnByCc,EniBmBrCo1C,GAAKq/F,EAAAA,GAAAA,UAASv1I,EAAMwC,OAAQwnZ,EAAY9zW,EAAG,GAAIoqX,EAAepqX,EAAG,GAEjEmqS,GAAa3qM,EAAAA,GAAAA,cAAY,SAAU50I,GAAQ,OAAOmlB,GAAOnlB,EADzC,aAC+D,GAAG,IAWlF0j1B,GAAelvsB,EAAAA,GAAAA,QAAO,MACtB67H,EAAmBF,GAA0BuzkB,EAAcx6b,GAI/D,OAHAp0Q,EAAAA,GAAAA,YAAU,WACN0qR,EAAatga,EAAMwC,MACvB,GAAG,CAACxC,EAAMwC,SACFynU,EAAAA,GAAAA,KAAK,MAAO,CAAEtoU,UAAW,sCAAuC+E,UAAUujU,EAAAA,GAAAA,KAAKF,GAAmB,CAAEC,kBAAmB74D,EAAkBx7P,QAAWq0Y,GmiBrCnHlpZ,EniBqCqJkpZ,EmiBpCvLz4T,KAAOzwF,GAAMylF,SAAS,EAAG,SAAStgE,OAAO,eniBoC2J,GAAIvf,UAAU0jU,EAAAA,GAAAA,MAAM7zB,GAAW,CAAE50S,UAAW,GAAGqY,OAAOha,EAAMmb,aAAe6uY,EACpQ,0BACA,cAAetjZ,SAAU,CAAC1G,EAAMgvS,QAAUi7B,EAAAA,GAAAA,KAAKE,GAAY/lR,GAAS,CAAEkmR,UAAWtqU,EAAMgvS,MAAOu7B,mBAAoBvqU,EAAMipD,YAAaohR,WAAYjmR,GAASA,GAAS,CAAC,EAAGpkD,GAAQ,CAAEwC,MAAOwnZ,KAAgBhqZ,EAAM07X,cAAezxD,EAAAA,GAAAA,KAAK+mE,GAAY,CAAE96F,WAAY,CAAEhlC,SAAUszkB,GAAgBhi1B,MAAOwnZ,EAAWve,gBAAgB,EAAMlnU,YAAa,aAAcquU,kBAAkB,EAAMvyD,WAAYA,EAAYhiK,UAAW,SAAUn4J,GAAS,OAdra,SAAU62J,GAC5B,IAAI0nqB,EAAkB1nqB,EAItB,OAHKA,EAAW3xH,SAAS,MAAQ2xH,EAAW/4K,QAAU,IAClDyg1B,EAAkB,GAAGzq0B,OAAO+iK,EAAWvrK,MAAM,EAAG,GAAI,aAAawI,OAAO+iK,EAAWvrK,MAAM,EAAG,GAAI,aAAawI,OAAO+iK,EAAWvrK,MAAM,EAAG,KAErI,IAAInP,KAAKoi1B,EACpB,CAQkcC,CAAgBx+zB,EAAQ,EAAG2vR,SAAU,SAAU/0S,GACzd,IAAI+B,EAAW/B,GAAO,GACtBw/Z,EAAaz9Z,GACb7C,EAAMgrU,UAAYhrU,EAAMgrU,SAASnoU,EACrC,EAAG2M,SAAUxP,EAAMwP,SAAU2uX,QAASn+X,EAAMm+X,SAAW,IAAI97X,KAAK,uBAAwB+7X,QAASp+X,EAAMo+X,QAAS1mF,cAAcuyB,EAAAA,GAAAA,KAAKroD,GAAM,CAAEjgR,UAAW,kBAAmBkgR,KAAM64G,GAAUnf,aAAgBv7W,EAAMi3W,gBAAkBhtC,EAAAA,GAAAA,KAAK+sC,GAAyB,CAAEC,cAAej3W,EAAMi3W,sBAC9S,EkiBZI0te,OAAQvkb,GACR7kD,SnenBuB,SAAUv7W,GACjC,IAAIqga,GAAc/qR,EAAAA,GAAAA,QAAO,MACrBp/F,GAAKq/F,EAAAA,GAAAA,YAAYy0Q,EAAY9zW,EAAG,GAAIoqX,EAAepqX,EAAG,IAC1D0/F,EAAAA,GAAAA,YAAU,WACN0qR,EAAatga,EAAMwC,MACvB,GAAG,CAACxC,EAAMwC,QAqCV,OAAQynU,EAAAA,GAAAA,KAAK,MAAO,CAAEtoU,UAAW,0CAA2C+E,UAAU0jU,EAAAA,GAAAA,MAAM7zB,GAAW,CAAE50S,UAAW,GAAGqY,OAAOha,EAAMmb,aAAe6uY,EACrI,0BACA,cAAetjZ,SAAU,CAAC1G,EAAMgvS,QAAUi7B,EAAAA,GAAAA,KAAKE,GAAY/lR,GAAS,CAAEkmR,UAAWtqU,EAAMgvS,MAAOu7B,mBAAoBvqU,EAAMipD,YAAaohR,WAAYjmR,GAASA,GAAS,CAAC,EAAGpkD,GAAQ,CAAEwC,MAAOwnZ,KAAgBhqZ,EAAM07X,cAAezxD,EAAAA,GAAAA,KAAK02F,GAAmB,CAAE9yZ,IAAKwyZ,EAAa71W,IAAKxqD,EAAMm+X,QAAStwV,IAAK7tC,EAAMo+X,QAASwoB,gBAAiB5mZ,EAAM4mZ,gBAAiB0T,cA5B7U,SAAUzgZ,GAChC,IAAIq8B,EACAp1C,EAAO+Y,EAAK/Y,KACXA,IAKJd,EAAMuga,kBAAsC,IAAlBz/Z,EAAKyD,UAAoC,IAAlBzD,EAAKyD,YAGpB,QAA9B2xC,EAAKl2C,EAAMg1Z,qBAAkC,IAAP9+W,OAAgB,EAASA,EAAG7wC,MAAK,SAAUjD,GAC9E,OAAOA,EAAEc,YAAcpC,EAAKoC,WACxBd,EAAErB,aAAeD,EAAKC,YACtBqB,EAAEpB,gBAAkBF,EAAKE,aACjC,MAEChB,EAAMwga,aAAexga,EAAMwga,WAAW1/Z,MACvC+Y,EAAKqyJ,YAAa,EAE1B,EAQ2Y1pK,MAtC1X,SAAUA,GACvB,IAAI0zC,EACJ,OAAO1zC,EACDo6C,GAAMp6C,EAAmC,QAA3B0zC,EAAKl2C,EAAMkwG,kBAA+B,IAAPh6D,EAAgBA,EAAK,aAAc,IAAI7zC,MACxF,IACV,CAiCkZ62K,CAAW8wO,GAAYl1T,OAPtZ,SAAUj7E,GACzB,IAAI4mZ,EA1BU,SAAUj+Z,GACxB,IAAI0zC,EACJ,OAAO1zC,EAAQyjB,GAAOzjB,EAAmC,QAA3B0zC,EAAKl2C,EAAMkwG,kBAA+B,IAAPh6D,EAAgBA,EAAK,cAAgB,EAC1G,CAuByBwqX,CAAY7mZ,EAAKrX,OACtC89Z,EAAaG,GACbzga,EAAMgrU,UAAYhrU,EAAMgrU,SAASy1F,EACrC,EAG+b3nI,SAAU94R,EAAMwP,WAAaxP,EAAMi3W,gBAAkBhtC,EAAAA,GAAAA,KAAK+sC,GAAyB,CAAEC,cAAej3W,EAAMi3W,oBAC7iB,EmezBI2te,MAAOC,IACPC,UAAWC,IACXC,iBAAkBv6X,GAClBw6X,kBAAmBC,IACnBC,gBAAiBC,IACjB1miB,SAAU2miB,GACV1+W,UAAW2+W,IACXC,qBAAsBC,IACtBC,YAAaC,IACbC,SAAUC,IACVnsP,KAAMosP,IACN3wiB,OAAQ4wiB,IACRC,UAAWC,GACXC,SAAUtxX,IACVovD,eAAgBmiU,IAChBC,iBAAkBC,IAClBC,QEpDuB,SAAUnwyB,GACjC,IAAI84P,EAAQ94P,EAAG84P,MACf,OAD+B94P,EAAGm7E,OAEvB,MAEH44M,EAAAA,GAAAA,KAAK,MAAO,CAAEtoU,UAAW,2BAA4B+E,UAAUujU,EAAAA,GAAAA,KAAK/kD,GAAI,CAAEvjR,UAAW,iBAAkB+E,SAAUsoS,KAC7H,EF+CIgshB,QAASjsV,IACTylR,OAAQ8xF,GACRz2f,QAAS02f,GACTC,kBAAmBC,KAEvB,cG5DA,IAAIriyB,IAAsC,WAStC,OARAA,IAAW/jD,OAAOgkD,QAAU,SAAS9hC,GACjC,IAAK,IAAIV,EAAG9U,EAAI,EAAGnK,EAAImB,UAAUC,OAAQ+I,EAAInK,EAAGmK,IAE5C,IAAK,IAAIuW,KADTzB,EAAI9d,UAAUgJ,GACO1M,OAAOkR,UAAUG,eAAenR,KAAKshB,EAAGyB,KACzDf,EAAEe,GAAKzB,EAAEyB,IAEjB,OAAOf,CACX,EACO6hC,IAASrqC,MAAMnZ,KAAMmD,UAChC,EAuDO,IAAI2i1B,IAjDJ,SAAwB1m1B,GAC3B,IAAI2m1B,GAAiBxxsB,EAAAA,GAAAA,YAAWyxsB,KAC5BC,GAAiB1xsB,EAAAA,GAAAA,YAAW2xsB,KAC5B5wyB,GAAKq/F,EAAAA,GAAAA,WAAS,GAAQ84L,EAAQn4R,EAAG,GAAIy0a,EAAWz0a,EAAG,GAGnDI,IAFgBg/F,EAAAA,GAAAA,QAAO,KACNA,EAAAA,GAAAA,QAAO,KACnBC,EAAAA,GAAAA,aAAY80L,EAAa/zR,EAAG,GAAIywyB,EAAgBzwyB,EAAG,IAC5Ds/F,EAAAA,GAAAA,YAAU,WACNoxsB,GACJ,GAAG,CAACL,EAAgBE,EAAgB7m1B,EAAMqqU,cAC1Cz0L,EAAAA,GAAAA,YAAU,WACNqxsB,GACJ,GAAG,IACH,IAAID,EAAmB,WAEnB,QAAyB/i1B,IAArBjE,EAAMqqU,WACN,MAAM,IAAI18S,MAAM,4CAEpB,GAAIk5zB,GAA8C,kBAArB7m1B,EAAMqqU,WAAyB,CACxD,IAAI68gB,EAAeL,EAAejszB,MAAK,SAAUolF,GAAS,OAAOA,EAAM41T,YAAc51a,EAAMqqU,UAAY,IACvG,GAAI68gB,EAAc,CACd,IAAIC,EAAgB/iyB,IAASA,IAAS,CAAC,EAAG8iyB,GAAe,CACrD130B,SAAUm30B,GAAkBO,EAAa130B,WAE7Cu30B,EAAcI,EAClB,CACJ,MACK,GAAgC,kBAArBnn1B,EAAMqqU,WAAyB,CACvC88gB,EAAgB/iyB,IAASA,IAAS,CAAC,EAAGpkD,EAAMqqU,YAAa,CACzD76T,SAAUm30B,GAAkB3m1B,EAAMqqU,WAAW76T,WAEjDu30B,EAAcI,EAClB,CACJ,EACIF,EAAc,WACdt8X,GAAS,EACb,EACA,OAAQvgJ,EAAAA,GAAAA,MAAMF,GAAAA,SAAW,CAAExjU,SAAU,EAAE2nU,IAASpE,EAAAA,GAAAA,KAAK4sC,GAAmB,CAAErtN,OAAQ,SAAW6kL,GAAShE,GAAcA,EAAWh5M,SAAU44M,EAAAA,GAAAA,KAAKC,GAAAA,SAAW,CAAC,GAAImE,GAAShE,IAAeA,EAAWh5M,SAAW44M,EAAAA,GAAAA,KAAK,MAAO,CAAEtoU,UAAW,aAAaqY,OAAOqwT,EAAW1oU,UAAY,eAAeqY,OAAOqwT,EAAW1oU,WAAa,IAAKqM,OAAQhO,EAAMon1B,aAAc1g1B,SAAW,WAC1V,IAAK2jU,EAAW78T,KACZ,MAAM,IAAImgB,MAAM,yDAEpB,IACI81zB,GADczj1B,EAAMqn1B,mBAAqBzD,KACZv5gB,EAAW78T,MAC5C,IAAKi20B,EACD,MAAM,IAAI91zB,MAAM,cAAc3T,OAAOqwT,EAAW78T,KAAM,mCAE1D,OAAOy8T,EAAAA,GAAAA,KAAKw5gB,EAAgBr/xB,IAAS,CAAC,EAAGimR,GAC7C,CAV8V,OAW9W,EAEA,cClEA,IAAIjmR,IAAsC,WAStC,OARAA,IAAW/jD,OAAOgkD,QAAU,SAAS9hC,GACjC,IAAK,IAAIV,EAAG9U,EAAI,EAAGnK,EAAImB,UAAUC,OAAQ+I,EAAInK,EAAGmK,IAE5C,IAAK,IAAIuW,KADTzB,EAAI9d,UAAUgJ,GACO1M,OAAOkR,UAAUG,eAAenR,KAAKshB,EAAGyB,KACzDf,EAAEe,GAAKzB,EAAEyB,IAEjB,OAAOf,CACX,EACO6hC,IAASrqC,MAAMnZ,KAAMmD,UAChC,EACIwtQ,IAAgD,SAAUptQ,EAAID,EAAMstQ,GACpE,GAAIA,GAA6B,IAArBztQ,UAAUC,OAAc,IAAK,IAA4BytQ,EAAxB1kQ,EAAI,EAAGkzB,EAAI/7B,EAAKF,OAAY+I,EAAIkzB,EAAGlzB,KACxE0kQ,GAAQ1kQ,KAAK7I,IACRutQ,IAAIA,EAAKngQ,MAAMC,UAAUC,MAAMjR,KAAK2D,EAAM,EAAG6I,IAClD0kQ,EAAG1kQ,GAAK7I,EAAK6I,IAGrB,OAAO5I,EAAG6V,OAAOy3P,GAAMngQ,MAAMC,UAAUC,MAAMjR,KAAK2D,GACtD,EAQW0i1B,IAAsBltpB,GAAAA,eAAoB,GAC1CotpB,IAAwBptpB,GAAAA,mBAAoBz1L,IAC9BmsK,EAAAA,GAAAA,aAAW,SAAUpwK,EAAO6N,IACjD8nI,EAAAA,GAAAA,qBAAoB9nI,GAAK,WACrB,MAAQ,CACJgsC,MAAO,WACHytyB,EAAeC,EAAWj9xB,QAC9B,EACAk9xB,aAAc,WACV,OAAOC,CACX,EACAtxK,OAAQ,WACJ,IAAI9rgB,EAAOq9qB,EAAQp9xB,QACf+/G,GACAA,EAAKzuI,cAAc,IAAI/D,MAAM,SAAU,CAAEN,YAAY,EAAMD,SAAS,IAE5E,EAER,IACA,IAAIowzB,GAAUpysB,EAAAA,GAAAA,QAAO,MACjBiysB,GAAajysB,EAAAA,GAAAA,QAAO,CAAC,GACrBp/F,GAAKq/F,EAAAA,GAAAA,WAAS,GAAQoysB,EAAiBzxyB,EAAG,GAAI0xyB,EAAoB1xyB,EAAG,GACrEI,GAAKi/F,EAAAA,GAAAA,UAASv1I,EAAMwC,OAAS,CAAC,GAAIil1B,EAAYnxyB,EAAG,GAAIuxyB,EAAevxyB,EAAG,GACvEE,GAAK++F,EAAAA,GAAAA,UAAS,IAAKsxsB,EAAiBrwyB,EAAG,GAAIsxyB,EAAoBtxyB,EAAG,IACtEo/F,EAAAA,GAAAA,YAAU,WACNiysB,EAAa7n1B,EAAMwC,OAAS,CAAC,EACjC,GAAG,CAACxC,EAAMwC,SACVozI,EAAAA,GAAAA,YAAU,WACN2xsB,EAAWj9xB,QAAUtqD,EAAMwC,OAAS,CAAC,CACzC,GAAG,KACHozI,EAAAA,GAAAA,YAAU,WACNgysB,EAAkB5n1B,EAAMksK,WAC5B,GAAG,CAAClsK,EAAMksK,aACV,IAAIv1H,GAAK4+F,EAAAA,GAAAA,UAAS,CAAC,GAAIrnF,EAASvX,EAAG,GAAgBA,EAAG,IACtDi/F,EAAAA,GAAAA,YAAU,WACNmysB,GACJ,GAAG,CAACN,EAAWv5xB,IACf,IAAIo5xB,EAAiB,SAAU/s0B,GACvB82B,KAAK+mF,UAAU79G,KAAc82B,KAAK+mF,UAAUqvtB,KAGhDI,EAAazjyB,IAAS,CAAC,EAAG7pC,IAC1Bva,EAAMgo1B,gBAAkBho1B,EAAMgo1B,eAAezt0B,GACjD,EACIwt0B,EAAsB,WACtB,GAAK/n1B,EAAMio1B,uBAAX,CAGA,IAAIl0nB,EAAS/zN,EAAMio1B,uBAAuBX,EAAgBG,EAAWv5xB,EAAQluD,EAAMko1B,cACnFJ,EAAkBv2kB,IAAc,GAAIx9C,GAAQ,GAF5C,CAGJ,EACA,OAAQk2G,EAAAA,GAAAA,KAAKC,GAAAA,SAAW,CAAExjU,UAAUujU,EAAAA,GAAAA,KAAK,OAAQ,CAAEp8T,IAAK650B,EAAS/l1B,UAAWd,KAAW,aAAamZ,OAAOha,EAAM+tI,QACnG,oCAAsC/tI,EAAM+tI,QAC5C,IAAK,CAAE,sBAAuB45sB,IAAmB38gB,SAAU,SAAU/pU,GACvEA,EAAEgO,iBACFjP,EAAMko1B,cACFlo1B,EACKko1B,aAAaT,GACb5rtB,MAAK,WAENgstB,EAAaJ,GACbzn1B,EAAMmo1B,UAAYno1B,EAAMmo1B,SAAS,CAAC,EACtC,IACKnrtB,OAAM,SAAUnlH,GACjB,IAAIq+B,EAAII,GAC0E,QAA7EA,EAA+B,QAAzBJ,EAAKr+B,EAAMukL,gBAA6B,IAAPlmJ,OAAgB,EAASA,EAAGpL,YAAyB,IAAPwL,OAAgB,EAASA,EAAG4X,SAClHl2C,QAAQH,MAAM,sBAAuBA,EAAMukL,SAAStxJ,KAAKojB,QACzD4ia,GAAW7pK,KAAK,CACZnvS,QAAS,iDACTglQ,OAAQlL,GAAOI,UAInBhyQ,EAAMmo1B,YACU,OAAVtw0B,QAA4B,IAAVA,OAAmB,EAASA,EAAMizB,MAChD9qC,EAAMmo1B,SAAStw0B,EAAMizB,MACrB9qC,EAAMmo1B,SAAStw0B,EAAMukL,SAAStxJ,KAAKs9yB,gBAErD,GACR,EAAG1h1B,UAAUujU,EAAAA,GAAAA,KAAK,WAAY,CAAEvjU,UAAUujU,EAAAA,GAAAA,KAAK28gB,IAAoBnt0B,SAAU,CAAEjX,MAAOml1B,EAAgBjh1B,UAAU0jU,EAAAA,GAAAA,MAAM08gB,IAAsBrt0B,SAAU,CAAEjX,MAAOqk1B,EAAgBng1B,SAAU,CAAC1G,EAAM0G,UAAY1G,EAAM0G,UAAW1G,EAAM0G,WAAaujU,EAAAA,GAAAA,KAAKC,GAAAA,SAAW,CAAExjU,SAAUmg1B,EACnP7/0B,QAAO,SAAU8T,GAAK,OAAQA,EAAEu2G,MAAQ,IACxCxqH,KAAI,SAAUm5G,EAAOv1D,GACtB,IAAIikxB,GAAYr3zB,EAAAA,GAAAA,KAAI2oG,EAAO,aACrB,GAAGhmG,QAAO1C,EAAAA,GAAAA,KAAI0oG,EAAO,aAAc,OACnCv1D,EACN,QAAwBxmD,IAApB+7G,EAAM41T,UACN,MAAM,IAAIjoZ,MAAM,0EAEpB,OAAQs8S,EAAAA,GAAAA,KAAK,MAAO,CAAEtoU,UAAWd,KAAW,mBAAoB,oBAAoBmZ,OAAOgmG,EAAM5gG,OAAS,MAAO1Y,UAAUujU,EAAAA,GAAAA,KAAKy8gB,IAAO,CAAEr8gB,WAAYrqN,EAAM41T,UAAWyxa,kBAAmBrn1B,EAAMqn1B,qBAAwB3Y,EAC3N,gBAChC,ICrHA,IAAItqxB,IAAsC,WAStC,OARAA,IAAW/jD,OAAOgkD,QAAU,SAAS9hC,GACjC,IAAK,IAAIV,EAAG9U,EAAI,EAAGnK,EAAImB,UAAUC,OAAQ+I,EAAInK,EAAGmK,IAE5C,IAAK,IAAIuW,KADTzB,EAAI9d,UAAUgJ,GACO1M,OAAOkR,UAAUG,eAAenR,KAAKshB,EAAGyB,KACzDf,EAAEe,GAAKzB,EAAEyB,IAEjB,OAAOf,CACX,EACO6hC,IAASrqC,MAAMnZ,KAAMmD,UAChC,EAqDO,IAAIsk1B,IA/CJ,SAA0Bro1B,GAC7B,IAAI2m1B,GAAiBxxsB,EAAAA,GAAAA,YAAWyxsB,KAC5BC,GAAiB1xsB,EAAAA,GAAAA,YAAW2xsB,KAC5B5wyB,GAAKq/F,EAAAA,GAAAA,WAAS,GAAQ84L,EAAQn4R,EAAG,GAAIy0a,EAAWz0a,EAAG,GACnDI,GAAKi/F,EAAAA,GAAAA,YAAY80L,EAAa/zR,EAAG,GAAIywyB,EAAgBzwyB,EAAG,IAC5Ds/F,EAAAA,GAAAA,YAAU,WACNoxsB,GACJ,GAAG,CAACL,EAAgBE,EAAgB7m1B,EAAMqqU,cAC1Cz0L,EAAAA,GAAAA,YAAU,WACNqxsB,GACJ,GAAG,IACH,IAAID,EAAmB,WAEnB,QAAyB/i1B,IAArBjE,EAAMqqU,WACN,MAAM,IAAI18S,MAAM,4CAEpB,GAAIk5zB,GAA8C,kBAArB7m1B,EAAMqqU,WAAyB,CACxD,IAAI68gB,EAAeL,EAAejszB,MAAK,SAAUolF,GAAS,OAAOA,EAAMk9Q,WAAal9X,EAAMqqU,UAAY,IACtG,GAAI68gB,EAAc,CACd,IAAIC,EAAgB/iyB,IAASA,IAAS,CAAC,EAAG8iyB,GAAe,CACrD130B,SAAUm30B,GAAkBO,EAAa130B,WAE7Cu30B,EAAcI,EAClB,CACJ,MACK,GAAgC,kBAArBnn1B,EAAMqqU,WAAyB,CACvC88gB,EAAgB/iyB,IAASA,IAAS,CAAC,EAAGpkD,EAAMqqU,YAAa,CACzD76T,SAAUm30B,GAAkB3m1B,EAAMqqU,WAAW76T,WAEjDu30B,EAAcI,EAClB,CACJ,EACIF,EAAc,WACdt8X,GAAS,EACb,EACA,OAAQvgJ,EAAAA,GAAAA,MAAMF,GAAAA,SAAW,CAAExjU,SAAU,EAAE2nU,IAASpE,EAAAA,GAAAA,KAAK4sC,GAAmB,CAAErtN,OAAQ,SAAW6kL,GAAShE,GAAcA,EAAWh5M,SAAU44M,EAAAA,GAAAA,KAAKC,GAAAA,SAAW,CAAC,GAAImE,GAAShE,IAAeA,EAAWh5M,SAAW44M,EAAAA,GAAAA,KAAK,MAAO,CAAEtoU,UAAW,aAAaqY,OAAOqwT,EAAW1oU,UAAY,eAAeqY,OAAOqwT,EAAW1oU,WAAa,IAAKqM,OAAQhO,EAAMon1B,aAAc1g1B,SAAW,WAC1V,IAAK2jU,EAAW78T,KACZ,MAAM,IAAImgB,MAAM,yDAEpB,IACI81zB,GADczj1B,EAAMqn1B,mBAAqBzD,KACZv5gB,EAAW78T,MAC5C,IAAKi20B,EACD,MAAM,IAAI91zB,MAAM,cAAc3T,OAAOqwT,EAAW78T,KAAM,mCAE1D,OAAOy8T,EAAAA,GAAAA,KAAKw5gB,EAAgBr/xB,IAAS,CAAC,EAAGimR,GAC7C,CAV8V,OAW9W,EAEA,cChEA,IAAIjmR,IAAsC,WAStC,OARAA,IAAW/jD,OAAOgkD,QAAU,SAAS9hC,GACjC,IAAK,IAAIV,EAAG9U,EAAI,EAAGnK,EAAImB,UAAUC,OAAQ+I,EAAInK,EAAGmK,IAE5C,IAAK,IAAIuW,KADTzB,EAAI9d,UAAUgJ,GACO1M,OAAOkR,UAAUG,eAAenR,KAAKshB,EAAGyB,KACzDf,EAAEe,GAAKzB,EAAEyB,IAEjB,OAAOf,CACX,EACO6hC,IAASrqC,MAAMnZ,KAAMmD,UAChC,EACIwtQ,IAAgD,SAAUptQ,EAAID,EAAMstQ,GACpE,GAAIA,GAA6B,IAArBztQ,UAAUC,OAAc,IAAK,IAA4BytQ,EAAxB1kQ,EAAI,EAAGkzB,EAAI/7B,EAAKF,OAAY+I,EAAIkzB,EAAGlzB,KACxE0kQ,GAAQ1kQ,KAAK7I,IACRutQ,IAAIA,EAAKngQ,MAAMC,UAAUC,MAAMjR,KAAK2D,EAAM,EAAG6I,IAClD0kQ,EAAG1kQ,GAAK7I,EAAK6I,IAGrB,OAAO5I,EAAG6V,OAAOy3P,GAAMngQ,MAAMC,UAAUC,MAAMjR,KAAK2D,GACtD,EAQW0i1B,IAAsBltpB,GAAAA,eAAoB,GAC1CotpB,IAAwBptpB,GAAAA,mBAAoBz1L,GACnDqk1B,KAAuBl4qB,EAAAA,GAAAA,aAAW,SAAUpwK,EAAO6N,IACnD8nI,EAAAA,GAAAA,qBAAoB9nI,GAAK,WACrB,MAAQ,CACJgsC,MAAO,WACHytyB,EAAeC,EAAWj9xB,aAASrmD,EAAW,CAAC,EACnD,EACAuj1B,aAAc,WACV,OAAOC,CACX,EACAtxK,OAAQ,WACJ,IAAI9rgB,EAAOq9qB,EAAQp9xB,QACf+/G,GACAA,EAAKzuI,cAAc,IAAI/D,MAAM,SAAU,CAAEN,YAAY,EAAMD,SAAS,IAE5E,EAER,IACA,IAAIowzB,GAAUpysB,EAAAA,GAAAA,QAAO,MACjBiysB,GAAajysB,EAAAA,GAAAA,QAAO,CAAC,GACrBp/F,GAAKq/F,EAAAA,GAAAA,WAAS,GAAQoysB,EAAiBzxyB,EAAG,GAAI0xyB,EAAoB1xyB,EAAG,GACrEI,GAAKi/F,EAAAA,GAAAA,UAASv1I,EAAMwC,OAAS,CAAC,GAAIil1B,EAAYnxyB,EAAG,GAAIuxyB,EAAevxyB,EAAG,GACvEE,GAAK++F,EAAAA,GAAAA,UAAS,IAAKsxsB,EAAiBrwyB,EAAG,GAAIsxyB,EAAoBtxyB,EAAG,IACtEo/F,EAAAA,GAAAA,YAAU,WACNiysB,EAAa7n1B,EAAMwC,OAAS,CAAC,EACjC,GAAG,CAACxC,EAAMwC,SACVozI,EAAAA,GAAAA,YAAU,WACN2xsB,EAAWj9xB,QAAUtqD,EAAMwC,OAAS,CAAC,CACzC,GAAG,KACHozI,EAAAA,GAAAA,YAAU,WACNgysB,EAAkB5n1B,EAAMksK,WAC5B,GAAG,CAAClsK,EAAMksK,aACV,IAAIv1H,GAAK4+F,EAAAA,GAAAA,UAAS,CAAC,GAAIrnF,EAASvX,EAAG,GAAI4xyB,EAAY5xyB,EAAG,IACtDi/F,EAAAA,GAAAA,YAAU,WACNmysB,GACJ,GAAG,CAACN,EAAWv5xB,KACf0nF,EAAAA,GAAAA,YAAU,WACN51I,EAAMmo1B,UAAYno1B,EAAMmo1B,SAASj6xB,EACrC,GAAG,CAACA,IACJ,IAAIo5xB,EAAiB,SAAU/s0B,EAAUiu0B,EAAen+gB,GAEpDw9gB,EAAazjyB,IAAS,CAAC,EAAG7pC,IAC1Bva,EAAMgo1B,gBACFho1B,EAAMgo1B,eAAezt0B,EAAUiu0B,EAAen+gB,EACtD,EACI09gB,EAAsB,WACtB,GAAK/n1B,EAAMio1B,uBAAX,CAGA,IAAIl0nB,EAAS/zN,EAAMio1B,uBAAuBX,EAAgBG,EAAWv5xB,EAAQluD,EAAMko1B,cACnFJ,EAAkBv2kB,IAAc,GAAIx9C,GAAQ,GAF5C,CAGJ,EACA,OAAQk2G,EAAAA,GAAAA,KAAKC,GAAAA,SAAW,CAAExjU,UAAUujU,EAAAA,GAAAA,KAAK,OAAQ,CAAEp8T,IAAK650B,EAAS/l1B,UAAWd,KAAW,aAAamZ,OAAOha,EAAM+tI,QACnG,oCAAsC/tI,EAAM+tI,QAC5C,IAAK,CAAE,sBAAuB45sB,IAAmB38gB,SAAU,SAAU/pU,GACvEA,EAAEgO,iBACFjP,EAAMko1B,cACFlo1B,EACKko1B,aAAaT,GACb5rtB,MAAK,WAENgstB,EAAaJ,GACbzn1B,EAAMmo1B,UAAYno1B,EAAMmo1B,SAAS,CAAC,EACtC,IACKnrtB,OAAM,SAAUnlH,GACjB,IAAIq+B,EAAII,GAC0E,QAA7EA,EAA+B,QAAzBJ,EAAKr+B,EAAMukL,gBAA6B,IAAPlmJ,OAAgB,EAASA,EAAGpL,YAAyB,IAAPwL,OAAgB,EAASA,EAAG4X,SAClHl2C,QAAQH,MAAM,sBAAuBA,EAAMukL,SAAStxJ,KAAKojB,QACzD4ia,GAAW7pK,KAAK,CACZnvS,QAAS,iDACTglQ,OAAQlL,GAAOI,UAInBu2kB,EAAUnkyB,IAAS,CAAC,GAAe,OAAVvsC,QAA4B,IAAVA,OAAmB,EAASA,EAAMizB,OACzEjzB,EAAMukL,SAAStxJ,KAAKs9yB,gBAEhC,GACR,EAAG1h1B,UAAUujU,EAAAA,GAAAA,KAAK,WAAY,CAAEvjU,UAAUujU,EAAAA,GAAAA,KAAK28gB,IAAoBnt0B,SAAU,CAAEjX,MAAOml1B,EAAgBjh1B,UAAU0jU,EAAAA,GAAAA,MAAM08gB,IAAsBrt0B,SAAU,CAAEjX,MAAOqk1B,EAAgBng1B,SAAU,CAAC1G,EAAM0G,UAAY1G,EAAM0G,UAAW1G,EAAM0G,WAAaujU,EAAAA,GAAAA,KAAKC,GAAAA,SAAW,CAAExjU,SAAUmg1B,EACnP7/0B,QAAO,SAAU8T,GAAK,OAAQA,EAAEu2G,MAAQ,IACxCxqH,KAAI,SAAUm5G,EAAOv1D,GACtB,IAAIikxB,GAAYr3zB,EAAAA,GAAAA,KAAI2oG,EAAO,aACrB,GAAGhmG,QAAO1C,EAAAA,GAAAA,KAAI0oG,EAAO,aAAc,OACnCv1D,EACN,QAAwBxmD,IAApB+7G,EAAM41T,UACN,MAAM,IAAIjoZ,MAAM,0EAEpB,QAAuB1pB,IAAnB+7G,EAAMk9Q,SACN,MAAM,IAAIvvW,MAAM,yEAEpB,OAAQs8S,EAAAA,GAAAA,KAAK,MAAO,CAAEtoU,UAAWd,KAAW,mBAAoB,oBAAoBmZ,OAAOgmG,EAAM5gG,OAAS,MAAO1Y,UAAUujU,EAAAA,GAAAA,KAAKo+gB,IAAS,CAAEh+gB,WAAYrqN,EAAMk9Q,SAAUmqd,kBAAmBrn1B,EAAMqn1B,qBAAwB3Y,EAC5N,gBAChC,IAEA,UADyB4Z,ICpHzB,UAHa,SAAUto1B,GACnB,OAAQiqU,EAAAA,GAAAA,KAAK,MAAO,CAAEtoU,UAAWd,KAAW,aAAcb,EAAM2B,WAAY+E,UAAUujU,EAAAA,GAAAA,KAAK,MAAO,CAAEtoU,UAAW,sBAAuB+E,SAAU1G,EAAM0G,YAC1J,ECJA,IAAIogD,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAsBzCyhyB,IAAiC,SAAU/gyB,GAE3C,SAAS+gyB,EAAgBzo1B,GACrB,IAAIE,EAAQwnD,EAAOnnD,KAAKK,KAAMZ,IAAUY,KAQxC,OAPAV,EAAMixW,kBAAmB,EACzBjxW,EAAM2zW,sBAAuB,EAC7B3zW,EAAM+zW,cAAgB,CAAE,QAAW,gBACnC/zW,EAAM42W,uBAAyB,CAAC,WAChC52W,EAAMyzW,cAAgB,KACtBzzW,EAAM62W,iBAAkB,EACxB72W,EAAMwxW,QAAU,GACTxxW,CACX,CAUA,OArBA4mD,IAAU2hyB,EAAiB/gyB,GAY3B+gyB,EAAgBl30B,UAAUyJ,OAAS,WAC/B,KAAMpa,KAAKmV,UAAYnV,KAAKuwW,kBAAqBvwW,KAAK2rV,aAAgB3rV,KAAKwwW,oBAKvE,OAAO13K,GAAAA,cAAoB,MAAO94L,KAAKgyW,uBAAwB,GAAG54V,OAAOpZ,KAAKZ,MAAM0G,SAAU9F,KAAK8wW,UAJnGhqT,EAAOn2C,UAAUyJ,OAAOza,KAAKK,MAC7BA,KAAKuwW,kBAAmB,CAKhC,EACOs3e,CACX,CAvBqC,CAuBnC93jB,KAEFulF,GAAYuye,IAAiB,CAAC33e,GAAep3K,GAAAA,YC/C7C,IAAIt1I,IAAsC,WAStC,OARAA,IAAW/jD,OAAOgkD,QAAU,SAAS9hC,GACjC,IAAK,IAAIV,EAAG9U,EAAI,EAAGnK,EAAImB,UAAUC,OAAQ+I,EAAInK,EAAGmK,IAE5C,IAAK,IAAIuW,KADTzB,EAAI9d,UAAUgJ,GACO1M,OAAOkR,UAAUG,eAAenR,KAAKshB,EAAGyB,KACzDf,EAAEe,GAAKzB,EAAEyB,IAEjB,OAAOf,CACX,EACO6hC,IAASrqC,MAAMnZ,KAAMmD,UAChC,EAEI2k1B,IACA,WACI,IAAIxo1B,EAAQU,KACZA,KAAKkioB,QAAU,GACflioB,KAAK+n1B,WAAa,SAAU7lN,GACxB5ioB,EAAM4ioB,QAAUA,CACpB,EACAlioB,KAAKkpmB,WAAa,SAAU82G,GACnB1gtB,EAAM4ioB,QAAQz9nB,MAAK,SAAUjD,GAAK,OAAOA,EAAE20B,KAAO6prB,EAAO7prB,EAAI,KAC9D72B,EAAM4ioB,QAAQ91nB,KAAKo3C,IAAS,CAAC,EAAGw8pB,GAExC,EACAhgtB,KAAK0uhB,YAAc,SAAUv4f,EAAIrX,GAC7B,IAAIkp0B,EAAa1o1B,EAAM4ioB,QAAQ97nB,QAAO,SAAU45sB,GAAU,OAAOA,EAAO7prB,KAAOA,GAAM6prB,EAAOioI,iBAAmB9xzB,CAAI,IACnH72B,EAAMyo1B,WAAWC,GACXlp0B,GACFA,GAER,EACA9e,KAAKko1B,kBAAoB,SAAUloI,EAAQ/ub,GACvC3xR,EAAM4pmB,WAAW1ljB,IAASA,IAAS,CAAC,EAAGw8pB,GAAS,CAAE7prB,GAAI,WAAW/c,OAAO4msB,EAAO7prB,IAAKu4J,OAAQ,UAAWu5pB,eAAgBjoI,EAAO7prB,KAClI,EACA+gL,GAAel3M,KAAM,CACjBkioB,QAAS1hc,GACTunpB,WAAY7ywB,IAEpB,EAIOizwB,IAAc,IAAIL,IC1CzBtkyB,IAAsC,WAStC,OARAA,IAAW/jD,OAAOgkD,QAAU,SAAS9hC,GACjC,IAAK,IAAIV,EAAG9U,EAAI,EAAGnK,EAAImB,UAAUC,OAAQ+I,EAAInK,EAAGmK,IAE5C,IAAK,IAAIuW,KADTzB,EAAI9d,UAAUgJ,GACO1M,OAAOkR,UAAUG,eAAenR,KAAKshB,EAAGyB,KACzDf,EAAEe,GAAKzB,EAAEyB,IAEjB,OAAOf,CACX,EACO6hC,IAASrqC,MAAMnZ,KAAMmD,UAChC,EAWA,UALa,SAAU/D,GACnB,OAAQiqU,EAAAA,GAAAA,KAAK,MAAO,CAAEtoU,UAAWd,KAAW,uBAAwBb,EAAM2B,WAAYo1B,GAAI/2B,EAAM+2B,GAAIrwB,UAAU0jU,EAAAA,GAAAA,MAAMq+gB,IAAiBrkyB,IAAS,CAAEosT,SAAU,aAAcpxV,MAAOpf,EAAMof,OAAS,MAAOqxR,SAAS,EAAMxnS,OAAQ,IAAI+Q,OAAOha,EAAM+2B,IAAKomf,SAAS,EAAM2D,iBAAe30b,EAAAA,GAAAA,aAAYnsF,EAAM8ghB,gBAAwB9ghB,EAAM8ghB,cAAe7C,iBAAe9xb,EAAAA,GAAAA,aAAYnsF,EAAMi+gB,gBAAwBj+gB,EAAMi+gB,cAAe53E,eAAgBrmc,EAAMqmc,eAAgBy4E,iBAAe3yb,EAAAA,GAAAA,aAAYnsF,EAAM8+gB,gBAAwB9+gB,EAAM8+gB,cAAe1iY,MAAO,WAC5gB,OAAOp8I,EAAMo8I,MAAQp8I,EAAMo8I,QAAU2ssB,IAAYz5T,YAAYtvhB,EAAM+2B,GACvE,IAAKitD,EAAAA,GAAAA,MAAKhkF,EAAO,WAAY,CAAE0G,SAAU,CAAC1G,EAAM2V,SAAW3V,EAAM2V,WAAWs0T,EAAAA,GAAAA,KAAK,MAAO,CAAEtoU,UAAW,wCACjH,ECpBA,IAAIyiD,IAAsC,WAStC,OARAA,IAAW/jD,OAAOgkD,QAAU,SAAS9hC,GACjC,IAAK,IAAIV,EAAG9U,EAAI,EAAGnK,EAAImB,UAAUC,OAAQ+I,EAAInK,EAAGmK,IAE5C,IAAK,IAAIuW,KADTzB,EAAI9d,UAAUgJ,GACO1M,OAAOkR,UAAUG,eAAenR,KAAKshB,EAAGyB,KACzDf,EAAEe,GAAKzB,EAAEyB,IAEjB,OAAOf,CACX,EACO6hC,IAASrqC,MAAMnZ,KAAMmD,UAChC,EAQA,UAHcmhS,IAAS,WACnB,OAAQ+kC,EAAAA,GAAAA,KAAKC,GAAAA,SAAW,CAAExjU,SAAUqi1B,IAAYjmN,QAAQj8nB,KAAI,SAAU+5sB,GAAU,OAAQ32Y,EAAAA,GAAAA,KAAKt5C,IAAQvsO,IAAS,CAAC,EAAGw8pB,GAASA,EAAO7prB,GAAM,KAC5I,kPCVYiyzB,KAAZ,SAAYA,GAQVA,EAAA,UAOAA,EAAA,YAMAA,EAAA,iBACD,CAtBD,CAAYA,MAAAA,IAsBX,KAqKD,MAAMC,IAAoB,WAySV,SAAAC,IAAU1m1B,EAAYsV,GACpC,IAAc,IAAVtV,GAA6B,OAAVA,GAAmC,qBAAVA,EAC9C,MAAM,IAAImrB,MAAM7V,EAEpB,CAEgB,SAAAwvH,IAAQ1gD,EAAW9uE,GACjC,IAAK8uE,EAAM,CAEc,qBAAZ5uE,SAAyBA,QAAQC,KAAKH,GAEjD,IAME,MAAM,IAAI6V,MAAM7V,EAEjB,CAAC,MAAO7W,KAAI,CACd,CACH,CASA,SAASko1B,IAAgB5wzB,EAAoBlL,GAC3C,MAAO,CACL+7zB,IAAK7wzB,EAASvwB,MACdkF,IAAKqrB,EAASrrB,IACdu9C,IAAKp9B,EAET,CAKM,SAAUg8zB,IACd/+xB,EACAnmD,EACA6D,EACAkF,GAcA,YAfA,IAAAlF,IAAAA,EAAa,MAGDd,IAAA,CACVwwO,SAA6B,kBAAZptL,EAAuBA,EAAUA,EAAQotL,SAC1D5+L,OAAQ,GACR+yE,KAAM,IACY,kBAAP1nH,EAAkBml1B,IAAUnl1B,GAAMA,EAAE,CAC/C6D,QAKAkF,IAAM/I,GAAOA,EAAgB+I,KAAQA,GAjChC1I,KAAKk2B,SAAShjB,SAAS,IAAIqhC,OAAO,EAAG,IAoC9C,CAKgB,SAAAwwyB,IAAU5u0B,GAIV,IAJW,SACzB+8N,EAAW,IAAG,OACd5+L,EAAS,GAAE,KACX+yE,EAAO,IACOlxG,EAKd,OAJIm+B,GAAqB,MAAXA,IACZ4+L,GAAiC,MAArB5+L,EAAOisB,OAAO,GAAajsB,EAAS,IAAMA,GACpD+yE,GAAiB,MAATA,IACV6rH,GAA+B,MAAnB7rH,EAAK9mD,OAAO,GAAa8mD,EAAO,IAAMA,GAC7C6rH,CACT,CAKM,SAAU4xmB,IAAU57wB,GACxB,IAAI87wB,EAA4B,CAAC,EAEjC,GAAI97wB,EAAM,CACR,IAAI+7wB,EAAY/7wB,EAAKniE,QAAQ,KACzBk+0B,GAAa,IACfD,EAAW39tB,KAAOn+C,EAAK30B,OAAO0wyB,GAC9B/7wB,EAAOA,EAAK30B,OAAO,EAAG0wyB,IAGxB,IAAIC,EAAch8wB,EAAKniE,QAAQ,KAC3Bm+0B,GAAe,IACjBF,EAAW1wyB,OAAS40B,EAAK30B,OAAO2wyB,GAChCh8wB,EAAOA,EAAK30B,OAAO,EAAG2wyB,IAGpBh8wB,IACF87wB,EAAW9xmB,SAAWhqK,EAEzB,CAED,OAAO87wB,CACT,CASA,SAASG,IACPC,EACAC,EACAC,EACApq0B,QAAA,IAAAA,IAAAA,EAA6B,CAAC,GAE9B,IAAI,OAAEkS,EAASE,SAASo8H,YAAY,SAAE67rB,GAAW,GAAUrq0B,EACvDsq0B,EAAgBp4zB,EAAO4lN,QACvB1hK,EAASkzwB,IAAOjnoB,IAChBnxD,EAA4B,KAE5BvjI,EAAQyvB,IASZ,SAASA,IAEP,OADYktyB,EAAchi1B,OAAS,CAAEyiD,IAAK,OAC7BA,GACf,CAEA,SAASw/xB,IACPn0wB,EAASkzwB,IAAOjnoB,IAChB,IAAIpE,EAAY7gK,IACZ08J,EAAqB,MAAbmE,EAAoB,KAAOA,EAAYtwL,EACnDA,EAAQswL,EACJ/sD,GACFA,EAAS,CAAE96E,SAAQv9C,SAAUi/M,EAAQj/M,SAAUihL,SAEnD,CA+CA,SAAS0woB,EAAU/l1B,GAIjB,IAAIkrD,EACyB,SAA3Bz9B,EAAO2G,SAASshG,OACZjoG,EAAO2G,SAASshG,OAChBjoG,EAAO2G,SAASwwB,KAElBA,EAAqB,kBAAP5kD,EAAkBA,EAAKol1B,IAAWpl1B,GASpD,OALA4kD,EAAOA,EAAK93C,QAAQ,KAAM,OAC1Bi40B,IACE75xB,EACsE,sEAAAtG,GAEjE,IAAIqxE,IAAIrxE,EAAMsG,EACvB,CApFa,MAAThiC,IACFA,EAAQ,EACR28zB,EAAcvymB,aAAYvwO,IAAM,GAAA8i1B,EAAchi1B,MAAO,CAAAyiD,IAAKp9B,IAAS,KAoFrE,IAAImqN,EAAmB,CACrB,UAAI1hK,GACF,OAAOA,GAET,YAAIv9C,GACF,OAAOqxzB,EAAYh4zB,EAAQo4zB,IAE7BG,MAAAA,CAAO14zB,GACL,GAAIm/H,EACF,MAAM,IAAIjjI,MAAM,8CAKlB,OAHAiE,EAAOsK,iBAAiB+szB,IAAmBgB,GAC3Cr5rB,EAAWn/H,EAEJ,KACLG,EAAOoK,oBAAoBitzB,IAAmBgB,GAC9Cr5rB,EAAW,IAAI,GAGnBi5rB,WAAW1l1B,GACF0l1B,EAAWj4zB,EAAQztB,GAE5B+l1B,YACAE,cAAAA,CAAejm1B,GAEb,IAAI0rH,EAAMq6tB,EAAU/l1B,GACpB,MAAO,CACLuzO,SAAU7nH,EAAI6nH,SACd5+L,OAAQ+2E,EAAI/2E,OACZ+yE,KAAMgE,EAAIhE,OAGd7+G,KAlGF,SAAc7I,EAAQ6D,GACpB8tE,EAASkzwB,IAAOqB,KAChB,IAAI9xzB,EAAW8wzB,IAAe7xmB,EAAQj/M,SAAUp0B,EAAI6D,GAChD8h1B,GAAkBA,EAAiBvxzB,EAAUp0B,GAEjDkpB,EAAQyvB,IAAa,EACrB,IAAIwtyB,EAAenB,IAAgB5wzB,EAAUlL,GACzCwiG,EAAM2nH,EAAQqymB,WAAWtxzB,GAG7B,IACEyxzB,EAAcrgZ,UAAU2gZ,EAAc,GAAIz6tB,GAC1C,MAAOh4G,IAKP,GAAIA,cAAiBsxtB,cAA+B,mBAAftxtB,GAAMvS,KACzC,MAAMuS,GAIR+Z,EAAO2G,SAAS8rB,OAAOwrE,EACxB,CAEGk6tB,GAAYn5rB,GACdA,EAAS,CAAE96E,SAAQv9C,SAAUi/M,EAAQj/M,SAAUihL,MAAO,GAE1D,EAuEEvoM,QArEF,SAAiB9M,EAAQ6D,GACvB8tE,EAASkzwB,IAAOuB,QAChB,IAAIhyzB,EAAW8wzB,IAAe7xmB,EAAQj/M,SAAUp0B,EAAI6D,GAChD8h1B,GAAkBA,EAAiBvxzB,EAAUp0B,GAEjDkpB,EAAQyvB,IACR,IAAIwtyB,EAAenB,IAAgB5wzB,EAAUlL,GACzCwiG,EAAM2nH,EAAQqymB,WAAWtxzB,GAC7ByxzB,EAAcvymB,aAAa6ymB,EAAc,GAAIz6tB,GAEzCk6tB,GAAYn5rB,GACdA,EAAS,CAAE96E,SAAQv9C,SAAUi/M,EAAQj/M,SAAUihL,MAAO,GAE1D,EAyDEgxoB,GAAG5n1B,GACMon1B,EAAcQ,GAAG5n1B,IAI5B,OAAO40O,CACT,CC7tBA,IAAYizmB,KAAZ,SAAYA,GACVA,EAAA,YACAA,EAAA,oBACAA,EAAA,oBACAA,EAAA,aACD,CALD,CAAYA,MAAAA,IAKX,KAmRM,MAAMC,IAAqB,IAAIl00B,IAAuB,CAC3D,OACA,gBACA,OACA,KACA,QACA,aA6JI,SAAUm00B,IACdC,EACAC,EACAC,EACAC,GAEA,YAHuB,IAAvBD,IAAAA,EAAuB,SACvB,IAAAC,IAAAA,EAA0B,CAAC,GAEpBH,EAAO/j1B,KAAI,CAACmk1B,EAAO39zB,KACxB,IAAI49zB,EAAW,IAAIH,EAAYns0B,OAAO0O,IAClC0J,EAAyB,kBAAbi0zB,EAAMj0zB,GAAkBi0zB,EAAMj0zB,GAAKk0zB,EAASrk1B,KAAK,KAWjE,GAVAsi1B,KACkB,IAAhB8B,EAAM39zB,QAAmB29zB,EAAMtk1B,SAAQ,6CAGzCwi1B,KACG6B,EAASh0zB,GACV,qCAAqCA,EAArC,qEAvBN,SACEi0zB,GAEA,OAAuB,IAAhBA,EAAM39zB,KACf,CAuBQ69zB,CAAaF,GAAQ,CACvB,IAAIG,EAAUjk1B,IAAA,GACT8j1B,EACAH,EAAmBG,GAAM,CAC5Bj0zB,OAGF,OADAg0zB,EAASh0zB,GAAMo0zB,EACRA,CACR,CAAM,CACL,IAAIC,EAAiBlk1B,IAAA,GAChB8j1B,EACAH,EAAmBG,GAAM,CAC5Bj0zB,KACArwB,cAAUzC,IAaZ,OAXA8m1B,EAASh0zB,GAAMq0zB,EAEXJ,EAAMtk1B,WACR0k1B,EAAkB1k1B,SAAWik1B,IAC3BK,EAAMtk1B,SACNmk1B,EACAI,EACAF,IAIGK,CACR,IAEL,CAOM,SAAUC,IAGdT,EACAU,EACAC,GAEA,YAFQ,IAARA,IAAAA,EAAW,KAEJC,IAAgBZ,EAAQU,EAAaC,GAAU,EACxD,CAEM,SAAUC,IAGdZ,EACAU,EACAC,EACAE,GAEA,IAGI/zmB,EAAWg0mB,KAFU,kBAAhBJ,EAA2BhC,IAAUgC,GAAeA,GAEvB5zmB,UAAY,IAAK6zmB,GAEvD,GAAgB,MAAZ7zmB,EACF,OAAO,KAGT,IAAIi0mB,EAAWC,IAAchB,IAmM/B,SAA2Be,GACzBA,EAAS78zB,MAAK,CAACjY,EAAGC,IAChBD,EAAE88F,QAAU78F,EAAE68F,MACV78F,EAAE68F,MAAQ98F,EAAE88F,MAyCpB,SAAwB98F,EAAaC,GACnC,IAAI8zC,EACF/zC,EAAE7S,SAAW8S,EAAE9S,QAAU6S,EAAErF,MAAM,GAAI,GAAGw5E,OAAM,CAACpoF,EAAGmK,IAAMnK,IAAMkU,EAAE/J,KAElE,OAAO69C,EAKH/zC,EAAEA,EAAE7S,OAAS,GAAK8S,EAAEA,EAAE9S,OAAS,GAG/B,CACN,CArDQ6n1B,CACEh10B,EAAEi10B,WAAWjl1B,KAAK+7I,GAASA,EAAKmpsB,gBAChCj10B,EAAEg10B,WAAWjl1B,KAAK+7I,GAASA,EAAKmpsB,kBAG1C,CA3MEC,CAAkBL,GAElB,IAAIt2zB,EAAU,KACd,IAAK,IAAItoB,EAAI,EAAc,MAAXsoB,GAAmBtoB,EAAI4+0B,EAAS3n1B,SAAU+I,EAAG,CAO3D,IAAIurc,EAAU2zY,IAAWv0mB,GACzBriN,EAAU62zB,IACRP,EAAS5+0B,GACTurc,EACAmzY,EAEH,CAED,OAAOp2zB,CACT,CAyCA,SAASu2zB,IAGPhB,EACAe,EACAQ,EACArB,QAF2C,IAA3Ca,IAAAA,EAA2C,SAC3C,IAAAQ,IAAAA,EAA4C,SAClC,IAAVrB,IAAAA,EAAa,IAEb,IAAIsB,EAAeA,CACjBpB,EACA39zB,EACAg/zB,KAEA,IAAIzpsB,EAAmC,CACrCypsB,kBACmBpo1B,IAAjBoo1B,EAA6BrB,EAAMt9wB,MAAQ,GAAK2+wB,EAClDC,eAAuC,IAAxBtB,EAAMsB,cACrBP,cAAe1+zB,EACf29zB,SAGEposB,EAAKypsB,aAAat+vB,WAAW,OAC/Bm7vB,IACEtmsB,EAAKypsB,aAAat+vB,WAAW+8vB,GAC7B,wBAAwBlosB,EAAKypsB,aAA7B,wBACMvB,EADN,4GAKFlosB,EAAKypsB,aAAezpsB,EAAKypsB,aAAa760B,MAAMs50B,EAAW9m1B,SAGzD,IAAI0pE,EAAO6+wB,IAAU,CAACzB,EAAYlosB,EAAKypsB,eACnCP,EAAaK,EAAYny0B,OAAO4oI,GAKhCoosB,EAAMtk1B,UAAYsk1B,EAAMtk1B,SAAS1C,OAAS,IAC5Ckl1B,KAGkB,IAAhB8B,EAAM39zB,MACN,4FACuCqgD,EAAI,MAE7Ck+wB,IAAcZ,EAAMtk1B,SAAUil1B,EAAUG,EAAYp+wB,KAKpC,MAAds9wB,EAAMt9wB,MAAiBs9wB,EAAM39zB,QAIjCs+zB,EAAS3+0B,KAAK,CACZ0gE,OACAimC,MAAO64uB,IAAa9+wB,EAAMs9wB,EAAM39zB,OAChCy+zB,cACA,EAaJ,OAXAlB,EAAO3j1B,SAAQ,CAAC+j1B,EAAO39zB,KAAS,IAAAo/zB,EAE9B,GAAmB,KAAfzB,EAAMt9wB,MAA0B,OAAX++wB,EAACzB,EAAMt9wB,OAAN++wB,EAAYrhyB,SAAS,KAG7C,IAAK,IAAIshyB,KAAYC,IAAwB3B,EAAMt9wB,MACjD0+wB,EAAapB,EAAO39zB,EAAOq/zB,QAH7BN,EAAapB,EAAO39zB,EAKrB,IAGIs+zB,CACT,CAgBA,SAASgB,IAAwBj/wB,GAC/B,IAAIk/wB,EAAWl/wB,EAAKn6C,MAAM,KAC1B,GAAwB,IAApBq5zB,EAAS5o1B,OAAc,MAAO,GAElC,IAAKgvC,KAAU9oB,GAAQ0i0B,EAGnBC,EAAa75yB,EAAM63C,SAAS,KAE5B1kE,EAAW6sB,EAAM/hC,QAAQ,MAAO,IAEpC,GAAoB,IAAhBiZ,EAAKlmB,OAGP,OAAO6o1B,EAAa,CAAC1m0B,EAAU,IAAM,CAACA,GAGxC,IAAI2m0B,EAAeH,IAAwBzi0B,EAAKtjB,KAAK,MAEjD6kB,EAAmB,GAqBvB,OAZAA,EAAOze,QACF8/0B,EAAajm1B,KAAKkm1B,GACP,KAAZA,EAAiB5m0B,EAAW,CAACA,EAAU4m0B,GAASnm1B,KAAK,QAKrDim1B,GACFph0B,EAAOze,QAAQ8/0B,GAIVrh0B,EAAO5kB,KAAK6l1B,GACjBh/wB,EAAKqgB,WAAW,MAAqB,KAAb2+vB,EAAkB,IAAMA,GAEpD,CAaA,MAAMM,IAAU,YACVC,IAAsB,EACtBC,IAAkB,EAClBC,IAAoB,EACpBC,IAAqB,GACrBC,KAAgB,EAChBC,IAAWzr0B,GAAoB,MAANA,EAE/B,SAAS2q0B,IAAa9+wB,EAAcrgD,GAClC,IAAIu/zB,EAAWl/wB,EAAKn6C,MAAM,KACtBg6zB,EAAeX,EAAS5o1B,OAS5B,OARI4o1B,EAASvn1B,KAAKio1B,OAChBC,GAAgBF,KAGdhg0B,IACFkg0B,GAAgBL,KAGXN,EACJ5l1B,QAAQ6a,IAAOyr0B,IAAQzr0B,KACvBhP,QACC,CAAC8gG,EAAO65uB,IACN75uB,GACCq5uB,IAAQjj0B,KAAKyj0B,GACVP,IACY,KAAZO,EACAL,IACAC,MACNG,EAEN,CAiBA,SAASrB,IAIPuB,EACA/1mB,EACA+zmB,QAAY,IAAZA,IAAAA,GAAe,GAEf,IAAI,WAAEK,GAAe2B,EAEjBC,EAAgB,CAAC,EACjBC,EAAkB,IAClBt4zB,EAA2D,GAC/D,IAAK,IAAItoB,EAAI,EAAGA,EAAI++0B,EAAW9n1B,SAAU+I,EAAG,CAC1C,IAAI61I,EAAOkpsB,EAAW/+0B,GAClBitC,EAAMjtC,IAAM++0B,EAAW9n1B,OAAS,EAChC4p1B,EACkB,MAApBD,EACIj2mB,EACAA,EAASlmO,MAAMm80B,EAAgB3p1B,SAAW,IAC5C+T,EAAQ810B,IACV,CAAEngxB,KAAMk1E,EAAKypsB,aAAcC,cAAe1psB,EAAK0psB,cAAetyyB,OAC9D4zyB,GAGE5C,EAAQposB,EAAKoosB,MAkBjB,IAfGjz0B,GACDiiC,GACAyxyB,IACCK,EAAWA,EAAW9n1B,OAAS,GAAGgn1B,MAAM39zB,QAEzCtV,EAAQ810B,IACN,CACEngxB,KAAMk1E,EAAKypsB,aACXC,cAAe1psB,EAAK0psB,cACpBtyyB,KAAK,GAEP4zyB,KAIC710B,EACH,OAAO,KAGT1X,OAAOgkD,OAAOqpyB,EAAe310B,EAAM4rH,QAEnCtuG,EAAQroB,KAAK,CAEX22H,OAAQ+ptB,EACRh2mB,SAAU60mB,IAAU,CAACoB,EAAiB510B,EAAM2/N,WAC5Co2mB,aAAcC,IACZxB,IAAU,CAACoB,EAAiB510B,EAAM+10B,gBAEpC9C,UAGyB,MAAvBjz0B,EAAM+10B,eACRH,EAAkBpB,IAAU,CAACoB,EAAiB510B,EAAM+10B,eAEvD,CAED,OAAOz4zB,CACT,CAiHgB,SAAAw4zB,IAId3q0B,EACAw0N,GAEuB,kBAAZx0N,IACTA,EAAU,CAAEwqD,KAAMxqD,EAASop0B,eAAe,EAAOtyyB,KAAK,IAGxD,IAAK47D,EAASo4uB,GA4ChB,SACEtgxB,EACA4+wB,EACAtyyB,QADa,IAAbsyyB,IAAAA,GAAgB,QACb,IAAHtyyB,IAAAA,GAAM,GAENstF,IACW,MAAT55D,IAAiBA,EAAKmd,SAAS,MAAQnd,EAAKmd,SAAS,MACrD,eAAend,EAAf,oCACMA,EAAKz8D,QAAQ,MAAO,MAD1B,qIAGsCy8D,EAAKz8D,QAAQ,MAAO,MAAK,MAGjE,IAAI0yH,EAA8B,GAC9BsqtB,EACF,IACAvgxB,EACGz8D,QAAQ,UAAW,IACnBA,QAAQ,OAAQ,KAChBA,QAAQ,qBAAsB,QAC9BA,QACC,qBACA,CAACkf,EAAW+9zB,EAAmBrB,KAC7BlptB,EAAO32H,KAAK,CAAEkh1B,YAAWrB,WAA0B,MAAdA,IAC9BA,EAAa,eAAiB,gBAIzCn/wB,EAAKmd,SAAS,MAChB84C,EAAO32H,KAAK,CAAEkh1B,UAAW,MACzBD,GACW,MAATvgxB,GAAyB,OAATA,EACZ,QACA,qBACG1zB,EAETi0yB,GAAgB,QACE,KAATvgxB,GAAwB,MAATA,IAQxBugxB,GAAgB,iBAKlB,IAAIr4uB,EAAU,IAAIr+F,OAAO020B,EAAc3B,OAAgBro1B,EAAY,KAEnE,MAAO,CAAC2xG,EAAS+tB,EACnB,CAjGkCwqtB,CAC9Bjr0B,EAAQwqD,KACRxqD,EAAQop0B,cACRpp0B,EAAQ82B,KAGNjiC,EAAQ2/N,EAAS3/N,MAAM69F,GAC3B,IAAK79F,EAAO,OAAO,KAEnB,IAAI410B,EAAkB510B,EAAM,GACxB+10B,EAAeH,EAAgB180B,QAAQ,UAAW,MAClDm90B,EAAgBr20B,EAAMvG,MAAM,GAuBhC,MAAO,CACLmyH,OAvBmBqqtB,EAAen70B,QAClC,CAACy9J,EAAI31J,EAA6B0S,KAAS,IAApC,UAAE6g0B,EAAS,WAAErB,GAAYly0B,EAG9B,GAAkB,MAAduz0B,EAAmB,CACrB,IAAIG,EAAaD,EAAc/g0B,IAAU,GACzCyg0B,EAAeH,EACZn80B,MAAM,EAAGm80B,EAAgB3p1B,OAASqq1B,EAAWrq1B,QAC7CiN,QAAQ,UAAW,KACvB,CAED,MAAMzO,EAAQ4r1B,EAAc/g0B,GAM5B,OAJEijJ,EAAK49qB,GADHrB,IAAerq1B,OACCyB,GAECzB,GAAS,IAAIyO,QAAQ,OAAQ,KAE3Cq/J,CAAI,GAEb,CAAC,GAKDonE,SAAUi2mB,EACVG,eACA5q0B,UAEJ,CA2DM,SAAU+o0B,IAAWzp1B,GACzB,IACE,OAAOA,EACJ+wB,MAAM,KACN1sB,KAAKo1B,GAAMyU,mBAAmBzU,GAAGhrB,QAAQ,MAAO,SAChDrK,KAAK,KACR,MAAOiR,IAQP,OAPAyvH,KACE,EACA,iBAAiB9kI,EAAjB,oHAEeqV,GAAK,MAGfrV,CACR,CACH,CAKgB,SAAAkp1B,IACdh0mB,EACA6zmB,GAEA,GAAiB,MAAbA,EAAkB,OAAO7zmB,EAE7B,IAAKA,EAASp2N,cAAcysE,WAAWw9vB,EAASjq0B,eAC9C,OAAO,KAKT,IAAI+zB,EAAak2yB,EAAS1gwB,SAAS,KAC/B0gwB,EAASvn1B,OAAS,EAClBun1B,EAASvn1B,OACT8tD,EAAW4lL,EAAS3yK,OAAO1vB,GAC/B,OAAIyc,GAAyB,MAAbA,EAEP,KAGF4lL,EAASlmO,MAAM6jC,IAAe,GACvC,CA2CA,SAASi5yB,IACPh2zB,EACA0nF,EACAs/oB,EACA5xrB,GAEA,MACE,qBAAqBp1C,EAArB,2CACQ0nF,EAAK,YAAa3uE,KAAK+mF,UAC7B1qD,GAFF,yCAIQ4xrB,EAJR,2HAOJ,CAyBM,SAAUivF,IAEdl5zB,GACA,OAAOA,EAAQruB,QACb,CAAC+Q,EAAOsV,IACI,IAAVA,GAAgBtV,EAAMiz0B,MAAMt9wB,MAAQ31D,EAAMiz0B,MAAMt9wB,KAAK1pE,OAAS,GAEpE,CAIgB,SAAAwq1B,IAEdn5zB,EAAco5zB,GACd,IAAIC,EAAcH,IAA2Bl5zB,GAK7C,OAAIo5zB,EACKC,EAAY7n1B,KAAI,CAACkR,EAAO0yC,IAC7BA,IAAQikyB,EAAY1q1B,OAAS,EAAI+T,EAAM2/N,SAAW3/N,EAAM+10B,eAIrDY,EAAY7n1B,KAAKkR,GAAUA,EAAM+10B,cAC1C,CAKM,SAAUa,IACdC,EACAC,EACAC,EACAC,GAEA,IAAI5q1B,OAFU,IAAd4q1B,IAAAA,GAAiB,GAGI,kBAAVH,EACTzq1B,EAAKml1B,IAAUsF,IAEfzq1B,EAAE+C,IAAQ,GAAA0n1B,GAEV1F,KACG/k1B,EAAGuzO,WAAavzO,EAAGuzO,SAAStsL,SAAS,KACtCkjyB,IAAoB,IAAK,WAAY,SAAUnq1B,IAEjD+k1B,KACG/k1B,EAAGuzO,WAAavzO,EAAGuzO,SAAStsL,SAAS,KACtCkjyB,IAAoB,IAAK,WAAY,OAAQnq1B,IAE/C+k1B,KACG/k1B,EAAG20C,SAAW30C,EAAG20C,OAAOsS,SAAS,KAClCkjyB,IAAoB,IAAK,SAAU,OAAQnq1B,KAI/C,IAGID,EAHA8q1B,EAAwB,KAAVJ,GAAgC,KAAhBzq1B,EAAGuzO,SACjCu3mB,EAAaD,EAAc,IAAM7q1B,EAAGuzO,SAaxC,GAAkB,MAAdu3mB,EACF/q1B,EAAO4q1B,MACF,CACL,IAAII,EAAqBL,EAAe7q1B,OAAS,EAMjD,IAAK+q1B,GAAkBE,EAAWlhwB,WAAW,MAAO,CAClD,IAAIohwB,EAAaF,EAAW17zB,MAAM,KAElC,KAAyB,OAAlB47zB,EAAW,IAChBA,EAAWj1yB,QACXg1yB,GAAsB,EAGxB/q1B,EAAGuzO,SAAWy3mB,EAAWvo1B,KAAK,IAC/B,CAED1C,EAAOgr1B,GAAsB,EAAIL,EAAeK,GAAsB,GACvE,CAED,IAAIxhxB,WAzKsBvpE,EAAQir1B,QAAY,IAAZA,IAAAA,EAAe,KACjD,IACE13mB,SAAUu3mB,EAAU,OACpBn2yB,EAAS,GAAE,KACX+yE,EAAO,IACS,kBAAP1nH,EAAkBml1B,IAAUnl1B,GAAMA,EAEzCuzO,EAAWu3mB,EACXA,EAAWlhwB,WAAW,KACpBkhwB,EAWR,SAAyB5C,EAAsB+C,GAC7C,IAAIxC,EAAWwC,EAAan+0B,QAAQ,OAAQ,IAAIsiB,MAAM,KAYtD,OAXuB84zB,EAAa94zB,MAAM,KAEzBtsB,SAASum1B,IACR,OAAZA,EAEEZ,EAAS5o1B,OAAS,GAAG4o1B,EAAS1tzB,MACb,MAAZsuzB,GACTZ,EAAS5/0B,KAAKwg1B,EACf,IAGIZ,EAAS5o1B,OAAS,EAAI4o1B,EAAShm1B,KAAK,KAAO,GACpD,CAxBQyo1B,CAAgBJ,EAAYG,GAC9BA,EAEJ,MAAO,CACL13mB,WACA5+L,OAAQw2yB,IAAgBx2yB,GACxB+yE,KAAM0juB,IAAc1juB,GAExB,CAuJa2juB,CAAYrr1B,EAAID,GAGvBur1B,EACFR,GAA6B,MAAfA,GAAsBA,EAAWpkwB,SAAS,KAEtD6kwB,GACDV,GAA8B,MAAfC,IAAuBH,EAAiBjkwB,SAAS,KAQnE,OANGnd,EAAKgqK,SAAS7sJ,SAAS,OACvB4kwB,IAA4BC,IAE7BhixB,EAAKgqK,UAAY,KAGZhqK,CACT,OAiBa6+wB,IAAa1ixB,GACxBA,EAAMjjE,KAAK,KAAKqK,QAAQ,SAAU,KAKvB880B,IAAqBr2mB,GAChCA,EAASzmO,QAAQ,OAAQ,IAAIA,QAAQ,OAAQ,KAKlCq+0B,IAAmBx2yB,GAC7BA,GAAqB,MAAXA,EAEPA,EAAOi1C,WAAW,KAClBj1C,EACA,IAAMA,EAHN,GAQOy2yB,IAAiB1juB,GAC3BA,GAAiB,MAATA,EAAoBA,EAAK99B,WAAW,KAAO89B,EAAO,IAAMA,EAAzC,GAqDgBl+F,YAwQ7Bgi0B,IAOX540B,WAAAA,CACEsgI,EACAmvM,EACA17S,EACA8kzB,QAAQ,IAARA,IAAAA,GAAW,GAEXhv1B,KAAKy2I,OAASA,EACdz2I,KAAK4lV,WAAaA,GAAc,GAChC5lV,KAAKgv1B,SAAWA,EACZ9kzB,aAAgBnd,OAClB/sB,KAAKkqC,KAAOA,EAAKpzB,WACjB9W,KAAKiX,MAAQizB,GAEblqC,KAAKkqC,KAAOA,CAEhB,EAOI,SAAU+kzB,IAAqBh40B,GACnC,OACW,MAATA,GACwB,kBAAjBA,EAAMw/H,QACe,kBAArBx/H,EAAM2uU,YACa,mBAAnB3uU,EAAM+30B,UACb,SAAU/30B,CAEd,CCr/BA,MAAMi40B,IAAgD,CACpD,OACA,MACA,QACA,UAEIC,IAAuB,IAAIv50B,IAC/Bs50B,KAGIE,IAAuC,CAC3C,SACGF,KAECG,IAAsB,IAAIz50B,IAAgBw50B,KAE1CE,IAAsB,IAAI150B,IAAI,CAAC,IAAK,IAAK,IAAK,IAAK,MACnD250B,IAAoC,IAAI350B,IAAI,CAAC,IAAK,MAE3C450B,IAA4C,CACvDpo1B,MAAO,OACPuwB,cAAUt0B,EACVos1B,gBAAYps1B,EACZqs1B,gBAAYrs1B,EACZss1B,iBAAats1B,EACbk2e,cAAUl2e,EACVy0H,UAAMz0H,EACN48B,UAAM58B,GAGKus1B,IAAsC,CACjDxo1B,MAAO,OACP8iC,UAAM7mC,EACNos1B,gBAAYps1B,EACZqs1B,gBAAYrs1B,EACZss1B,iBAAats1B,EACbk2e,cAAUl2e,EACVy0H,UAAMz0H,EACN48B,UAAM58B,GAGKws1B,IAAiC,CAC5Czo1B,MAAO,YACP0o1B,aAASzs1B,EACT41C,WAAO51C,EACPs0B,cAAUt0B,GAGN0s1B,IAAqB,gCAErBC,IAAyD5F,IAAK,CAClE6F,iBAAkB1nzB,QAAQ6hzB,EAAM6F,oBAG5BC,IAA0B,2BAW1B,SAAUC,IAAah5zB,GAC3B,MAAMi5zB,EAAej5zB,EAAKnG,OACtBmG,EAAKnG,OACa,qBAAXA,OACPA,YACA3tB,EACE4uR,EACoB,qBAAjBm+jB,GAC0B,qBAA1BA,EAAal/zB,UAC2B,qBAAxCk/zB,EAAal/zB,SAASpwB,cACzBuv1B,GAAYp+jB,EAOlB,IAAIg4jB,EACJ,GANA3B,IACEnxzB,EAAK6yzB,OAAO5m1B,OAAS,EACrB,6DAIE+zB,EAAK8yzB,mBACPA,EAAqB9yzB,EAAK8yzB,wBACrB,GAAI9yzB,EAAKm5zB,oBAAqB,CAEnC,IAAIA,EAAsBn5zB,EAAKm5zB,oBAC/BrG,EAAsBG,IAAK,CACzB6F,iBAAkBK,EAAoBlG,IAEzC,MACCH,EAAqB+F,IAIvB,IAQIO,EAoEAv4mB,EAiEAw4mB,EA7IArG,EAA0B,CAAC,EAE3BsG,EAAa1G,IACf5yzB,EAAK6yzB,OACLC,OACA5m1B,EACA8m1B,GAGEQ,EAAWxzzB,EAAKwzzB,UAAY,IAC5B+F,EAAmBv5zB,EAAKw5zB,uBAAyBC,IACjDC,EAA8B15zB,EAAK25zB,iCAGnC/yvB,EAAMz3F,IAAA,CACRyq1B,mBAAmB,EACnBC,wBAAwB,EACxBC,qBAAqB,EACrBC,oBAAoB,EACpBrD,sBAAsB,EACtBsD,gCAAgC,GAC7Bh6zB,EAAK4mE,QAGNqzvB,EAAuC,KAEvCC,EAAc,IAAIz70B,IAGlB070B,EAA0B,IAC1BC,EAAmB,IAAI370B,IAEvB470B,EAAsD,KAEtDC,EAAkE,KAElE9vf,EAAsD,KAOtD+vf,EAA8C,MAAtBv6zB,EAAKw6zB,cAE7BC,EAAiBnH,IAAYgG,EAAYt5zB,EAAKy/M,QAAQj/M,SAAUgzzB,GAChEkH,EAAkC,KAEtC,GAAsB,MAAlBD,IAA2Bf,EAA6B,CAG1D,IAAI550B,EAAQ660B,IAAuB,IAAK,CACtCh7mB,SAAU3/M,EAAKy/M,QAAQj/M,SAASm/M,YAE9B,QAAEriN,EAAO,MAAE21zB,GAAU2H,IAAuBtB,GAChDmB,EAAiBn9zB,EACjBo9zB,EAAgB,CAAE,CAACzH,EAAMj0zB,IAAKlf,EAC/B,CAQD,GAAI260B,IAAmBz6zB,EAAKw6zB,cAAe,CAC1BK,GACbJ,EACAnB,EACAt5zB,EAAKy/M,QAAQj/M,SAASm/M,UAEXqsC,SACXyukB,EAAiB,KAEpB,CAGD,GAAKA,EAiBE,GAAIA,EAAent1B,MAAMsc,GAAMA,EAAEqp0B,MAAM36qB,OAG5CuoE,GAAc,OACT,GAAK45mB,EAAent1B,MAAMsc,GAAMA,EAAEqp0B,MAAM6H,SAGxC,GAAIl0vB,EAAOkzvB,oBAAqB,CAIrC,IAAIiB,EAAa/6zB,EAAKw6zB,cAAgBx6zB,EAAKw6zB,cAAcO,WAAa,KAClE5kyB,EAASn2B,EAAKw6zB,cAAgBx6zB,EAAKw6zB,cAAcrkyB,OAAS,KAC1D6kyB,EAAsBpx0B,IAEnBA,EAAEqp0B,MAAM6H,SAKe,oBAAnBlx0B,EAAEqp0B,MAAM6H,SACY,IAA3Blx0B,EAAEqp0B,MAAM6H,OAAOlmrB,WAMdmmrB,QAAyC7u1B,IAA3B6u1B,EAAWnx0B,EAAEqp0B,MAAMj0zB,KACjCm3B,QAAiCjqD,IAAvBiqD,EAAOvsC,EAAEqp0B,MAAMj0zB,KAK9B,GAAIm3B,EAAQ,CACV,IAAIzD,EAAM+nyB,EAAe1o0B,WACtBnI,QAA8B1d,IAAxBiqD,EAAQvsC,EAAEqp0B,MAAMj0zB,MAEzB6hN,EAAc45mB,EAAehh1B,MAAM,EAAGi5C,EAAM,GAAGugC,MAAM+nwB,EACtD,MACCn6mB,EAAc45mB,EAAexnwB,MAAM+nwB,EAEtC,MAGCn6mB,EAAoC,MAAtB7gN,EAAKw6zB,mBAtCnB35mB,GAAc,OAhBd,GANAA,GAAc,EACd45mB,EAAiB,GAKb7zvB,EAAOkzvB,oBAAqB,CAC9B,IAAImB,EAAWJ,GACb,KACAvB,EACAt5zB,EAAKy/M,QAAQj/M,SAASm/M,UAEpBs7mB,EAASjvkB,QAAUivkB,EAAS39zB,UAC9Bm9zB,EAAiBQ,EAAS39zB,QAE7B,CAiDH,IA0BI49zB,EA8EAC,EAxGAlr1B,EAAqB,CACvBmr1B,cAAep7zB,EAAKy/M,QAAQ1hK,OAC5Bv9C,SAAUR,EAAKy/M,QAAQj/M,SACvBlD,QAASm9zB,EACT55mB,cACAw6mB,WAAYhD,IAEZiD,sBAA6C,MAAtBt7zB,EAAKw6zB,eAAgC,KAC5De,oBAAoB,EACpBC,aAAc,OACdT,WAAa/6zB,EAAKw6zB,eAAiBx6zB,EAAKw6zB,cAAcO,YAAe,CAAC,EACtE71Z,WAAalla,EAAKw6zB,eAAiBx6zB,EAAKw6zB,cAAct1Z,YAAe,KACrE/uY,OAASn2B,EAAKw6zB,eAAiBx6zB,EAAKw6zB,cAAcrkyB,QAAWukyB,EAC7De,SAAU,IAAIl90B,IACdm90B,SAAU,IAAIn90B,KAKZo90B,EAA+B1K,IAAcjnoB,IAI7C4xoB,GAA4B,EAM5BC,GAA+B,EAG/BC,EAAmD,IAAIv90B,IAMvDw90B,EAAmD,KAInDC,GAA8B,EAM9BC,GAAyB,EAIzBC,EAAoC,GAIpCC,EAAqC,IAAI190B,IAGzC290B,EAAmB,IAAI790B,IAGvB890B,EAAqB,EAKrBC,GAA2B,EAG3BC,EAAiB,IAAIh+0B,IAGrBi+0B,EAAmB,IAAI/90B,IAGvBg+0B,EAAmB,IAAIl+0B,IAGvBm+0B,EAAiB,IAAIn+0B,IAIrBo+0B,EAAkB,IAAIl+0B,IAMtBm+0B,EAAkB,IAAIr+0B,IAItBs+0B,EAAmB,IAAIt+0B,IAIvBu+0B,EAAqB,IAAIv+0B,IA2H7B,SAASqjL,EACPm0G,EACA1/Q,QAAA,IAAAA,IAAAA,EAGI,CAAC,GAELpmB,EAAKd,IAAA,GACAc,EACA8lS,GAKL,IAAIgnjB,EAA8B,GAC9BC,EAAgC,GAEhCp2vB,EAAOgzvB,mBACT3p1B,EAAMwr1B,SAASvs1B,SAAQ,CAAC+t1B,EAAS9n1B,KACT,SAAlB8n1B,EAAQht1B,QACN0s1B,EAAgBr90B,IAAInK,GAEtB6n1B,EAAoB/n1B,KAAKE,GAIzB4n1B,EAAkB9n1B,KAAKE,GAE1B,IAOL,IAAI+k1B,GAAahr1B,SAASgu1B,GACxBA,EAAWjt1B,EAAO,CAChB0s1B,gBAAiBK,EACjBG,4BAA6B9m0B,EAAK+m0B,mBAClCC,oBAAuC,IAAnBhn0B,EAAKs+I,cAKzB/tE,EAAOgzvB,oBACTmD,EAAkB7t1B,SAASiG,GAAQlF,EAAMwr1B,SAAS3+sB,OAAO3nI,KACzD6n1B,EAAoB9t1B,SAASiG,GAAQmo1B,GAAcno1B,KAEvD,CAOA,SAASoo1B,EACP/8zB,EACAu1Q,EAA0En0R,GAC/B,IAAA470B,EAAAC,EAAA,IAcvCv4Z,GAdJ,UAAEvwR,QAAS,IAAA/yJ,EAA8B,CAAC,EAACA,EAOvC870B,EACkB,MAApBzt1B,EAAMi1b,YACyB,MAA/Bj1b,EAAMor1B,WAAW/C,YACjBqF,IAAiB1t1B,EAAMor1B,WAAW/C,aACP,YAA3Bro1B,EAAMor1B,WAAWpr1B,QACe,KAAlB,OAAdut1B,EAAAh9zB,EAASvwB,YAAK,EAAdut1B,EAAgBI,aAKd14Z,EAFAnvJ,EAASmvJ,WACP58b,OAAO8E,KAAK2oS,EAASmvJ,YAAYj5b,OAAS,EAC/B8pS,EAASmvJ,WAGT,KAENw4Z,EAEIzt1B,EAAMi1b,WAGN,KAIf,IAAI61Z,EAAahljB,EAASgljB,WACtB8C,IACE5t1B,EAAM8q1B,WACNhljB,EAASgljB,WACThljB,EAASz4Q,SAAW,GACpBy4Q,EAAS5/O,QAEXlmD,EAAM8q1B,WAINW,EAAWzr1B,EAAMyr1B,SACjBA,EAASx80B,KAAO,IAClBw80B,EAAW,IAAIn90B,IAAIm90B,GACnBA,EAASxs1B,SAAQ,CAACkpB,EAAGzO,IAAM+x0B,EAASn50B,IAAIoH,EAAG+u0B,QAK7C,IAsBI0E,EAtBA7B,GAC4B,IAA9BK,GACgC,MAA/B3r1B,EAAMor1B,WAAW/C,YAChBqF,IAAiB1t1B,EAAMor1B,WAAW/C,cACF,KAAhC,OAAAmF,EAAAj9zB,EAASvwB,YAAT,EAAAwt1B,EAAgBG,aAqBpB,GAlBIxE,IACFE,EAAaF,EACbA,OAAqBlt1B,GAGnB8v1B,GAEOL,IAAkB1K,IAAcjnoB,MAEhC2xoB,IAAkB1K,IAAcqB,KACzCtyzB,EAAKy/M,QAAQxqO,KAAKurB,EAAUA,EAASvwB,OAC5B0r1B,IAAkB1K,IAAcuB,SACzCxyzB,EAAKy/M,QAAQvmO,QAAQsnB,EAAUA,EAASvwB,QAMtC0r1B,IAAkB1K,IAAcjnoB,IAAK,CAEvC,IAAI8zoB,EAAahC,EAAuBv80B,IAAItP,EAAMuwB,SAASm/M,UACvDm+mB,GAAcA,EAAWx+0B,IAAIkhB,EAASm/M,UACxCy9mB,EAAqB,CACnBvqC,gBAAiB5izB,EAAMuwB,SACvBu9zB,aAAcv9zB,GAEPs7zB,EAAuBx80B,IAAIkhB,EAASm/M,YAG7Cy9mB,EAAqB,CACnBvqC,gBAAiBryxB,EACjBu9zB,aAAc9t1B,EAAMuwB,gBAGnB,GAAIq7zB,EAA8B,CAEvC,IAAImC,EAAUlC,EAAuBv80B,IAAItP,EAAMuwB,SAASm/M,UACpDq+mB,EACFA,EAAQ/h0B,IAAIuE,EAASm/M,WAErBq+mB,EAAU,IAAIv/0B,IAAY,CAAC+hB,EAASm/M,WACpCm8mB,EAAuBv50B,IAAItS,EAAMuwB,SAASm/M,SAAUq+mB,IAEtDZ,EAAqB,CACnBvqC,gBAAiB5izB,EAAMuwB,SACvBu9zB,aAAcv9zB,EAEjB,CAEDohK,EAAWzyL,IAAC,CAAD,EAEJ4mS,EAAU,CACbmvJ,aACA61Z,aACAK,cAAeO,EACfn7zB,WACAqgN,aAAa,EACbw6mB,WAAYhD,IACZmD,aAAc,OACdF,sBAAuB2C,GACrBz9zB,EACAu1Q,EAASz4Q,SAAWrtB,EAAMqtB,SAE5Bi+zB,qBACAG,aAEF,CACE0B,qBACAzorB,WAAyB,IAAdA,IAKfgnrB,EAAgB1K,IAAcjnoB,IAC9B4xoB,GAA4B,EAC5BC,GAA+B,EAC/BG,GAA8B,EAC9BC,GAAyB,EACzBC,EAA0B,EAC5B,CAwJAp3tB,eAAeo5tB,EACb9C,EACA56zB,EACAnK,GAgBA6k0B,GAA+BA,EAA4Bj1f,QAC3Di1f,EAA8B,KAC9BS,EAAgBP,EAChBY,GACoD,KAAjD3l0B,GAAQA,EAAK8n0B,gCA+pDlB,SACE39zB,EACAlD,GAEA,GAAI+8zB,GAAwB7vf,EAAmB,CAC7C,IAAIr1V,EAAMip1B,GAAa59zB,EAAUlD,GACjC+8zB,EAAqBll1B,GAAOq1V,GAC7B,CACH,CAnqDE6zf,CAAmBpu1B,EAAMuwB,SAAUvwB,EAAMqtB,SACzCs+zB,GAAkE,KAArCvl0B,GAAQA,EAAKkl0B,oBAE1CM,GAAuE,KAAvCxl0B,GAAQA,EAAKio0B,sBAE7C,IAAIC,EAAcnF,GAAsBE,EACpCkF,EAAoBno0B,GAAQA,EAAKoo0B,mBACjCnh0B,EAAUg2zB,IAAYiL,EAAa/9zB,EAAUgzzB,GAC7C7+qB,GAAyC,KAA5Bt+I,GAAQA,EAAKs+I,WAE1BsmrB,EAAWJ,GAAcv9zB,EAASih0B,EAAa/9zB,EAASm/M,UAM5D,GALIs7mB,EAASjvkB,QAAUivkB,EAAS39zB,UAC9BA,EAAU29zB,EAAS39zB,UAIhBA,EAAS,CACZ,IAAI,MAAExd,EAAK,gBAAE4+0B,EAAe,MAAEzL,GAAU0L,GACtCn+zB,EAASm/M,UAaX,YAXA49mB,EACE/8zB,EACA,CACElD,QAASoh0B,EACT3D,WAAY,CAAC,EACb5kyB,OAAQ,CACN,CAAC88xB,EAAMj0zB,IAAKlf,IAGhB,CAAE60J,aAGL,CAQD,GACE1kK,EAAM4wO,cACLo7mB,GAi4HP,SAA0Bn90B,EAAaC,GACrC,GAAID,EAAE6gO,WAAa5gO,EAAE4gO,UAAY7gO,EAAEiiC,SAAWhiC,EAAEgiC,OAC9C,OAAO,EAGT,GAAe,KAAXjiC,EAAEg1G,KAEJ,MAAkB,KAAX/0G,EAAE+0G,KACJ,GAAIh1G,EAAEg1G,OAAS/0G,EAAE+0G,KAEtB,OAAO,EACF,GAAe,KAAX/0G,EAAE+0G,KAEX,OAAO,EAKT,OAAO,CACT,CAn5HM8quB,CAAiB3u1B,EAAMuwB,SAAUA,MAC/BnK,GAAQA,EAAKwo0B,YAAclB,IAAiBtn0B,EAAKwo0B,WAAWvG,aAG9D,YADAiF,EAAmB/8zB,EAAU,CAAElD,WAAW,CAAEq3I,cAK9CumrB,EAA8B,IAAI3Z,gBAClC,IAMIud,EANA/1qB,EAAUg2qB,IACZ/+zB,EAAKy/M,QACLj/M,EACA06zB,EAA4B9xsB,OAC5B/yH,GAAQA,EAAKwo0B,YAIf,GAAIxo0B,GAAQA,EAAK2o0B,aAKfF,EAAsB,CACpBG,IAAoB3h0B,GAAS21zB,MAAMj0zB,GACnC,CAAEvpB,KAAMi90B,IAAW5y0B,MAAOA,MAAOuW,EAAK2o0B,oBAEnC,GACL3o0B,GACAA,EAAKwo0B,YACLlB,IAAiBtn0B,EAAKwo0B,WAAWvG,YACjC,CAEA,IAAI4G,QAyFRp6tB,eACEikD,EACAvoJ,EACAq+zB,EACAvh0B,EACA6h0B,EACA9o0B,QAAA,IAAAA,IAAAA,EAAmD,CAAC,GAEpD+o0B,KAGA,IA8CI1r0B,EA9CA2n0B,EA8iIR,SACE76zB,EACAq+zB,GAEA,IAAIxD,EAA6C,CAC/Cpr1B,MAAO,aACPuwB,WACA83zB,WAAYuG,EAAWvG,WACvBC,WAAYsG,EAAWtG,WACvBC,YAAaqG,EAAWrG,YACxBp2W,SAAUy8W,EAAWz8W,SACrBzhX,KAAMk+tB,EAAWl+tB,KACjB73F,KAAM+1zB,EAAW/1zB,MAEnB,OAAOuyzB,CACT,CA7jIqBgE,CAAwB7+zB,EAAUq+zB,GAGnD,GAFAj9pB,EAAY,CAAEy5pB,cAAc,CAAE1mrB,WAA8B,IAAnBt+I,EAAKs+I,YAE1CwqrB,EAAY,CACd,IAAIG,QAAuBC,GACzBji0B,EACAkD,EAASm/M,SACT52D,EAAQ3/B,QAEV,GAA4B,YAAxBk2sB,EAAe7p1B,KACjB,MAAO,CAAE+p1B,gBAAgB,GACpB,GAA4B,UAAxBF,EAAe7p1B,KAAkB,CAC1C,IAAI,WAAEgq1B,EAAU,MAAE3/0B,GAAU4/0B,GAC1Bl/zB,EAASm/M,SACT2/mB,GAEF,MAAO,CACLhi0B,QAASgi0B,EAAeK,eACxBb,oBAAqB,CACnBW,EACA,CACEhq1B,KAAMi90B,IAAW5y0B,MACjBA,UAIP,CAAM,IAAKw/0B,EAAehi0B,QAAS,CAClC,IAAI,gBAAEoh0B,EAAe,MAAE5+0B,EAAK,MAAEmz0B,GAAU0L,GACtCn+zB,EAASm/M,UAEX,MAAO,CACLriN,QAASoh0B,EACTI,oBAAqB,CACnB7L,EAAMj0zB,GACN,CACEvpB,KAAMi90B,IAAW5y0B,MACjBA,UAIP,CACCwd,EAAUgi0B,EAAehi0B,OAE5B,CAID,IAAIsi0B,EAAcC,IAAevi0B,EAASkD,GAE1C,GAAKo/zB,EAAY3M,MAAMl1wB,QAAW6hxB,EAAY3M,MAAM36qB,KAS7C,CAWL,GAFA5kJ,SARoBos0B,EAClB,SACA7v1B,EACA84K,EACA,CAAC62qB,GACDti0B,EACA,OAEesi0B,EAAY3M,MAAMj0zB,IAE/B+pJ,EAAQ3/B,OAAOszD,QACjB,MAAO,CAAE8ipB,gBAAgB,EAE5B,MAtBC9r0B,EAAS,CACPje,KAAMi90B,IAAW5y0B,MACjBA,MAAO660B,IAAuB,IAAK,CACjC73zB,OAAQimJ,EAAQjmJ,OAChB68M,SAAUn/M,EAASm/M,SACnBognB,QAASH,EAAY3M,MAAMj0zB,MAmBjC,GAAIgh0B,IAAiBts0B,GAAS,CAC5B,IAAIxa,EACJ,GAAImd,GAAwB,MAAhBA,EAAKnd,QACfA,EAAUmd,EAAKnd,YACV,CASLA,EALe+m1B,IACbvs0B,EAAO2wK,SAAS25C,QAAQz+N,IAAI,YAC5B,IAAI8iH,IAAI0mD,EAAQjxD,KAChB07tB,KAEqBvj1B,EAAMuwB,SAASm/M,SAAW1vO,EAAMuwB,SAASugB,MACjE,CAKD,aAJMm/yB,EAAwBn3qB,EAASr1J,GAAQ,EAAM,CACnDmr0B,aACA3l1B,YAEK,CAAEsm1B,gBAAgB,EAC1B,CAED,GAAIW,IAAiBzs0B,GACnB,MAAMin0B,IAAuB,IAAK,CAAEll1B,KAAM,iBAG5C,GAAI2q1B,IAAc1s0B,GAAS,CAGzB,IAAI2s0B,EAAgBpB,IAAoB3h0B,EAASsi0B,EAAY3M,MAAMj0zB,IAWnE,OAJ+B,KAA1B3I,GAAQA,EAAKnd,WAChByi1B,EAAgB1K,IAAcqB,MAGzB,CACLh1zB,UACAwh0B,oBAAqB,CAACuB,EAAcpN,MAAMj0zB,GAAItL,GAEjD,CAED,MAAO,CACL4J,UACAwh0B,oBAAqB,CAACc,EAAY3M,MAAMj0zB,GAAItL,GAEhD,CAhO6B4s0B,CACvBv3qB,EACAvoJ,EACAnK,EAAKwo0B,WACLvh0B,EACA29zB,EAASjvkB,OACT,CAAE9yQ,QAASmd,EAAKnd,QAASy7J,cAG3B,GAAIuqrB,EAAaM,eACf,OAKF,GAAIN,EAAaJ,oBAAqB,CACpC,IAAKiB,EAASrs0B,GAAUwr0B,EAAaJ,oBACrC,GACEsB,IAAc1s0B,IACdok0B,IAAqBpk0B,EAAO5T,QACJ,MAAxB4T,EAAO5T,MAAMw/H,OAWb,OATA47sB,EAA8B,UAE9BqC,EAAmB/8zB,EAAU,CAC3BlD,QAAS4h0B,EAAa5h0B,QACtBy9zB,WAAY,CAAC,EACb5kyB,OAAQ,CACN,CAAC4pyB,GAAUrs0B,EAAO5T,QAKzB,CAEDwd,EAAU4h0B,EAAa5h0B,SAAWA,EAClCwh0B,EAAsBI,EAAaJ,oBACnCN,EAAoB+B,IAAqB//zB,EAAUnK,EAAKwo0B,YACxDlqrB,GAAY,EAEZsmrB,EAASjvkB,QAAS,EAGlBjjG,EAAUg2qB,IACR/+zB,EAAKy/M,QACL12D,EAAQjxD,IACRixD,EAAQ3/B,OAEX,CAGD,IAAI,eACFo2sB,EACAli0B,QAASkj0B,EAAc,WACvBzF,EAAU,OACV5kyB,SA6KJ2uE,eACEikD,EACAvoJ,EACAlD,EACA6h0B,EACAV,EACAI,EACA4B,EACAvn1B,EACAwn1B,EACA/rrB,EACAmqrB,GAGA,IAAIN,EACFC,GAAsB8B,IAAqB//zB,EAAUq+zB,GAInD8B,EACF9B,GACA4B,GACAG,IAA4BpC,GAQ1BqC,GACD7E,KACCp1vB,EAAOkzvB,sBAAwB4G,GAOnC,GAAIvB,EAAY,CACd,GAAI0B,EAA6B,CAC/B,IAAI37Z,EAAa47Z,EAAqBhC,GACtCl9pB,EAAWzyL,IAAC,CAERks1B,WAAYmD,QACOty1B,IAAfg5b,EAA2B,CAAEA,cAAe,CAAC,GAEnD,CACEvwR,aAGL,CAED,IAAI2qrB,QAAuBC,GACzBji0B,EACAkD,EAASm/M,SACT52D,EAAQ3/B,QAGV,GAA4B,YAAxBk2sB,EAAe7p1B,KACjB,MAAO,CAAE+p1B,gBAAgB,GACpB,GAA4B,UAAxBF,EAAe7p1B,KAAkB,CAC1C,IAAI,WAAEgq1B,EAAU,MAAE3/0B,GAAU4/0B,GAC1Bl/zB,EAASm/M,SACT2/mB,GAEF,MAAO,CACLhi0B,QAASgi0B,EAAeK,eACxB5E,WAAY,CAAC,EACb5kyB,OAAQ,CACN,CAACspyB,GAAa3/0B,GAGnB,CAAM,IAAKw/0B,EAAehi0B,QAAS,CAClC,IAAI,MAAExd,EAAK,gBAAE4+0B,EAAe,MAAEzL,GAAU0L,GACtCn+zB,EAASm/M,UAEX,MAAO,CACLriN,QAASoh0B,EACT3D,WAAY,CAAC,EACb5kyB,OAAQ,CACN,CAAC88xB,EAAMj0zB,IAAKlf,GAGjB,CACCwd,EAAUgi0B,EAAehi0B,OAE5B,CAED,IAAIih0B,EAAcnF,GAAsBE,GACnCyH,EAAeC,GAAwBC,IAC1Cjh0B,EAAKy/M,QACLxvO,EACAqtB,EACAqj0B,EACAng0B,EACAomE,EAAOkzvB,sBAA4C,IAArB4G,EAC9B95vB,EAAOozvB,+BACPiC,EACAC,EACAC,EACAQ,EACAF,EACAD,EACA+B,EACA/K,EACAsL,GAeF,GATAoC,IACGnB,KACGzi0B,GAAWA,EAAQhwB,MAAMsc,GAAMA,EAAEqp0B,MAAMj0zB,KAAO+g0B,MAC/CgB,GAAiBA,EAAczz1B,MAAMsc,GAAMA,EAAEqp0B,MAAMj0zB,KAAO+g0B,MAG/DzD,IAA4BD,EAGC,IAAzB0E,EAAc901B,QAAgD,IAAhC+01B,EAAqB/01B,OAAc,CACnE,IAAIk11B,EAAkBC,KAgBtB,OAfA7D,EACE/8zB,EAAQrxB,IAAA,CAENmuB,UACAy9zB,WAAY,CAAC,EAEb5kyB,OACE2oyB,GAAuBsB,IAActB,EAAoB,IACrD,CAAE,CAACA,EAAoB,IAAKA,EAAoB,GAAGh/0B,OACnD,MACHuh1B,IAAuBvC,GACtBqC,EAAkB,CAAE1F,SAAU,IAAIl90B,IAAItO,EAAMwr1B,WAAc,CAAC,GAEjE,CAAE9mrB,cAEG,CAAE6qrB,gBAAgB,EAC1B,CAED,GAAIqB,EAA6B,CAC/B,IAAIS,EAAgC,CAAC,EACrC,IAAKnC,EAAY,CAEfmC,EAAQjG,WAAamD,EACrB,IAAIt5Z,EAAa47Z,EAAqBhC,QACnB5y1B,IAAfg5b,IACFo8Z,EAAQp8Z,WAAaA,EAExB,CACG87Z,EAAqB/01B,OAAS,IAChCq11B,EAAQ7F,SAyId,SACEuF,GAUA,OARAA,EAAqB9x1B,SAAS+pJ,IAC5B,IAAIgksB,EAAUht1B,EAAMwr1B,SAASl80B,IAAI05I,EAAG9jJ,KAChCos1B,EAAsBC,SACxBt11B,EACA+w1B,EAAUA,EAAQlqzB,UAAO7mC,GAE3B+D,EAAMwr1B,SAASl50B,IAAI02I,EAAG9jJ,IAAKos1B,EAAoB,IAE1C,IAAIhj1B,IAAItO,EAAMwr1B,SACvB,CArJyBgG,CAA+BT,IAEpDp/pB,EAAY0/pB,EAAS,CAAE3srB,aACxB,CAEDqsrB,EAAqB9x1B,SAAS+pJ,IACxBmjsB,EAAiB980B,IAAI25I,EAAG9jJ,MAC1Bus1B,GAAazosB,EAAG9jJ,KAEd8jJ,EAAGqorB,YAIL8a,EAAiB750B,IAAI02I,EAAG9jJ,IAAK8jJ,EAAGqorB,WACjC,IAIH,IAAIqgB,EAAiCA,IACnCX,EAAqB9x1B,SAASq9G,GAAMm1uB,GAAan1uB,EAAEp3G,OACjD+l1B,GACFA,EAA4B9xsB,OAAOjlH,iBACjC,QACAw9zB,GAIJ,IAAI,cAAEC,EAAa,eAAEC,SACbC,EACJ7x1B,EACAqtB,EACAyj0B,EACAC,EACAj4qB,GAGJ,GAAIA,EAAQ3/B,OAAOszD,QACjB,MAAO,CAAE8ipB,gBAAgB,GAMvBtE,GACFA,EAA4B9xsB,OAAOnlH,oBACjC,QACA09zB,GAGJX,EAAqB9x1B,SAAS+pJ,GAAOmjsB,EAAiBt/sB,OAAOmc,EAAG9jJ,OAGhE,IAAI4s1B,EAAWC,IAAaJ,GAC5B,GAAIG,EAIF,aAHM7B,EAAwBn3qB,EAASg5qB,EAASru0B,QAAQ,EAAM,CAC5Dxa,YAEK,CAAEsm1B,gBAAgB,GAI3B,GADAuC,EAAWC,IAAaH,GACpBE,EAQF,OAJAvF,EAAiBvg0B,IAAI8l0B,EAAS5s1B,WACxB+q1B,EAAwBn3qB,EAASg5qB,EAASru0B,QAAQ,EAAM,CAC5Dxa,YAEK,CAAEsm1B,gBAAgB,GAI3B,IAAI,WAAEzE,EAAU,OAAE5kyB,GAAW8ryB,IAC3Bhy1B,EACAqtB,EACAyj0B,EACAa,EACA9C,EACAkC,EACAa,EACAjF,GAIFA,EAAgB1t1B,SAAQ,CAACgz1B,EAAcnC,KACrCmC,EAAahhB,WAAWxkoB,KAIlBA,GAAWwlpB,EAAa7i1B,OAC1Bu90B,EAAgB9/sB,OAAOijtB,EACxB,GACD,IAIAn5vB,EAAOkzvB,qBAAuB4G,GAAoBzw1B,EAAMkmD,QAC1D7tD,OAAO6W,QAAQlP,EAAMkmD,QAClBlnD,QAAOie,IAAA,IAAE8R,GAAG9R,EAAA,OAAM6z0B,EAAczz1B,MAAMsc,GAAMA,EAAEqp0B,MAAMj0zB,KAAOA,GAAG,IAC9D9vB,SAAQie,IAAqB,IAAnB4y0B,EAASjg1B,GAAMqN,EACxBgpC,EAAS7tD,OAAOgkD,OAAO6J,GAAU,CAAC,EAAG,CAAE,CAAC4pyB,GAAUjg1B,GAAQ,IAIhE,IAAIqh1B,EAAkBC,KAClBe,EAAqBC,GAAqB9F,GAC1C+F,EACFlB,GAAmBgB,GAAsBnB,EAAqB/01B,OAAS,EAEzE,OAAAkD,IAAA,CACEmuB,UACAy9zB,aACA5kyB,UACIksyB,EAAuB,CAAE5G,SAAU,IAAIl90B,IAAItO,EAAMwr1B,WAAc,CAAC,EAExE,CAxbY6G,CACRv5qB,EACAvoJ,EACAlD,EACA29zB,EAASjvkB,OACTwykB,EACAno0B,GAAQA,EAAKwo0B,WACbxo0B,GAAQA,EAAKoq0B,kBACbpq0B,GAAQA,EAAKnd,QACbmd,IAAkC,IAA1BA,EAAKqq0B,iBACb/rrB,EACAmqrB,GAGEU,IAOJtE,EAA8B,KAE9BqC,EAAmB/8zB,EAAQrxB,IAAA,CACzBmuB,QAASkj0B,GAAkBlj0B,GACxB+j0B,IAAuBvC,GAAoB,CAC9C/D,aACA5kyB,YAEJ,CA6ZA,SAAS2qyB,EACPhC,GAEA,OAAIA,IAAwBsB,IAActB,EAAoB,IAIrD,CACL,CAACA,EAAoB,IAAKA,EAAoB,GAAG/rzB,MAE1C9iC,EAAMi1b,WAC8B,IAAzC58b,OAAO8E,KAAK6C,EAAMi1b,YAAYj5b,OACzB,KAEAgE,EAAMi1b,gBAJV,CAOT,CA8iBApgU,eAAeo7tB,EACbn3qB,EACAg5qB,EACAz4Z,EAAqB/lb,GASf,IARN,WACEs70B,EAAU,kBACV4B,EAAiB,QACjBvn1B,cAKE,CAAC,EAACqK,EAEFw+0B,EAAS19pB,SAAS25C,QAAQ1+N,IAAI,wBAChC280B,GAAyB,GAG3B,IAAIz7zB,EAAWuh0B,EAAS19pB,SAAS25C,QAAQz+N,IAAI,YAC7C4x0B,IAAU3wzB,EAAU,uDACpBA,EAAWy/zB,IACTz/zB,EACA,IAAI6hG,IAAI0mD,EAAQjxD,KAChB07tB,GAEF,IAAI+O,EAAmBjR,IAAerh1B,EAAMuwB,SAAUA,EAAU,CAC9Do9zB,aAAa,IAGf,GAAI9ikB,EAAW,CACb,IAAI0nkB,GAAmB,EAEvB,GAAIT,EAAS19pB,SAAS25C,QAAQ1+N,IAAI,2BAEhCkj1B,GAAmB,OACd,GAAI5J,IAAmB5m0B,KAAKwO,GAAW,CAC5C,MAAMs3F,EAAM93F,EAAKy/M,QAAQ0ymB,UAAU3xzB,GACnCgi0B,EAEE1quB,EAAIgK,SAAWm3tB,EAAaz4zB,SAASshG,QAEI,MAAzC6xtB,IAAc77tB,EAAI6nH,SAAU6zmB,EAC/B,CAED,GAAIgP,EAMF,YALItp1B,EACF+/0B,EAAaz4zB,SAAStnB,QAAQsnB,GAE9By4zB,EAAaz4zB,SAAS8rB,OAAO9rB,GAIlC,CAID06zB,EAA8B,KAE9B,IAAIuH,GACU,IAAZvp1B,GAAoB6o1B,EAAS19pB,SAAS25C,QAAQ1+N,IAAI,mBAC9C2x0B,IAAcuB,QACdvB,IAAcqB,MAIhB,WAAEgG,EAAU,WAAEC,EAAU,YAAEC,GAAgBvo1B,EAAMor1B,YAEjDwD,IACA4B,GACDnI,GACAC,GACAC,IAEAqG,EAAa+B,IAA4B3w1B,EAAMor1B,aAMjD,IAAIsF,EAAmB9B,GAAc4B,EACrC,GACErI,IAAkC940B,IAAIyi1B,EAAS19pB,SAAS/kD,SACxDqhtB,GACAhD,IAAiBgD,EAAiBrI,kBAE5B4F,EAAgBuE,EAAuBF,EAAkB,CAC7D1D,WAAU1v1B,IAAA,GACLwx1B,EAAgB,CACnBpI,WAAY/3zB,IAGd+6zB,mBAAoBK,EACpB0C,qBAAsBh1Z,EAClBuyZ,OACA3v1B,QAED,CAGL,IAAIuy1B,EAAqB8B,IACvBgC,EACA1D,SAEIX,EAAgBuE,EAAuBF,EAAkB,CAC7D9D,qBAEAgC,oBAEAlF,mBAAoBK,EACpB0C,qBAAsBh1Z,EAClBuyZ,OACA3v1B,GAEP,CACH,CAIA44H,eAAeg7tB,EACbrq1B,EACAxF,EACA84K,EACAg4qB,EACAzj0B,EACAol0B,GAEA,IAAI37a,EACA47a,EAA0C,CAAC,EAC/C,IACE57a,QAAgB67a,IACdrJ,EACA9j1B,EACAxF,EACA84K,EACAg4qB,EACAzj0B,EACAol0B,EACA1P,EACAF,GAEF,MAAO5p1B,KASP,OANA631B,EAAc7x1B,SAAS0a,IACrB+40B,EAAY/40B,EAAEqp0B,MAAMj0zB,IAAM,CACxBvpB,KAAMi90B,IAAW5y0B,MACjBA,MAAO5W,IACR,IAEIy51B,CACR,CAED,IAAK,IAAK5C,EAASrs0B,KAAWprB,OAAO6W,QAAQ4na,GAC3C,GAAI87a,IAAmCnv0B,GAAS,CAC9C,IAAI2wK,EAAW3wK,EAAOA,OACtBiv0B,EAAY5C,GAAW,CACrBtq1B,KAAMi90B,IAAWqP,SACjB19pB,SAAUy+pB,IACRz+pB,EACAtb,EACAg3qB,EACAzi0B,EACAk2zB,EACA5svB,EAAO8vvB,sBAGZ,MACCiM,EAAY5C,SAAiBgD,IAC3Brv0B,GAKN,OAAOiv0B,CACT,CAEA79tB,eAAeg9tB,EACb7x1B,EACAqtB,EACAyj0B,EACAiC,EACAj6qB,GAEA,IAAIk6qB,EAAiBhz1B,EAAMqtB,QAGvB4l0B,EAAuBpD,EACzB,SACA7v1B,EACA84K,EACAg4qB,EACAzj0B,EACA,MAGE6l0B,EAAwB3pzB,QAAQ5gB,IAClCoq0B,EAAel01B,KAAIg2H,UACjB,GAAIvY,EAAEjvF,SAAWivF,EAAEvsG,OAASusG,EAAE+0tB,WAAY,CACxC,IAQI5tzB,SARgBos0B,EAClB,SACA7v1B,EACA8u1B,IAAwB/+zB,EAAKy/M,QAASlzH,EAAE52C,KAAM42C,EAAE+0tB,WAAWl4rB,QAC3D,CAAC78B,EAAEvsG,OACHusG,EAAEjvF,QACFivF,EAAEp3G,MAEiBo3G,EAAEvsG,MAAMiz0B,MAAMj0zB,IAEnC,MAAO,CAAE,CAACutF,EAAEp3G,KAAMue,EACnB,CACC,OAAO8lB,QAAQ2mB,QAAQ,CACrB,CAACosD,EAAEp3G,KAAM,CACPM,KAAMi90B,IAAW5y0B,MACjBA,MAAO660B,IAAuB,IAAK,CACjCh7mB,SAAUpzH,EAAE52C,SAInB,KAIDisxB,QAAsBsB,EACtBrB,SAAwBsB,GAAuBro1B,QACjD,CAACk2S,EAAK7kM,IAAM7jH,OAAOgkD,OAAO0kQ,EAAK7kM,IAC/B,CAAC,GAcH,aAXM3yE,QAAQ5gB,IAAI,CAChBwq0B,IACE9l0B,EACAsk0B,EACA74qB,EAAQ3/B,OACR65sB,EACAhz1B,EAAM8q1B,YAERsI,IAA8B/l0B,EAASuk0B,EAAgBmB,KAGlD,CACLpB,gBACAC,iBAEJ,CAEA,SAASzC,KAEPnD,GAAyB,EAIzBC,EAAwBjn1B,QAAQis1B,MAGhCzE,EAAiBvt1B,SAAQ,CAACkpB,EAAGjjB,KACvBin1B,EAAiB980B,IAAInK,KACvBgn1B,EAAsBlg0B,IAAI9mB,GAC1Bus1B,GAAavs1B,GACd,GAEL,CAEA,SAASmu1B,GACPnu1B,EACA8n1B,EACA5m0B,QAAA,IAAAA,IAAAA,EAAgC,CAAC,GAEjCpmB,EAAMwr1B,SAASl50B,IAAIpN,EAAK8n1B,GACxBr7pB,EACE,CAAE65pB,SAAU,IAAIl90B,IAAItO,EAAMwr1B,WAC1B,CAAE9mrB,WAAwC,KAA5Bt+I,GAAQA,EAAKs+I,YAE/B,CAEA,SAAS4urB,GACPpu1B,EACA4q1B,EACAjg1B,EACAuW,QAAA,IAAAA,IAAAA,EAAgC,CAAC,GAEjC,IAAIgq0B,EAAgBpB,IAAoBhv1B,EAAMqtB,QAASyi0B,GACvDzC,GAAcno1B,GACdysL,EACE,CACEzrI,OAAQ,CACN,CAACkqyB,EAAcpN,MAAMj0zB,IAAKlf,GAE5B270B,SAAU,IAAIl90B,IAAItO,EAAMwr1B,WAE1B,CAAE9mrB,WAAwC,KAA5Bt+I,GAAQA,EAAKs+I,YAE/B,CAEA,SAAS6urB,GAAwBru1B,GAS/B,OARIyxF,EAAOgzvB,oBACT8C,EAAen60B,IAAIpN,GAAMun1B,EAAen90B,IAAIpK,IAAQ,GAAK,GAGrDwn1B,EAAgBr90B,IAAInK,IACtBwn1B,EAAgB7/sB,OAAO3nI,IAGpBlF,EAAMwr1B,SAASl80B,IAAIpK,IAAQsj1B,GACpC,CAEA,SAAS6E,GAAcno1B,GACrB,IAAI8n1B,EAAUht1B,EAAMwr1B,SAASl80B,IAAIpK,IAK/Bin1B,EAAiB980B,IAAInK,IACnB8n1B,GAA6B,YAAlBA,EAAQht1B,OAAuBss1B,EAAej90B,IAAInK,IAE/Dus1B,GAAavs1B,GAEfsn1B,EAAiB3/sB,OAAO3nI,GACxBon1B,EAAez/sB,OAAO3nI,GACtBqn1B,EAAiB1/sB,OAAO3nI,GACxBwn1B,EAAgB7/sB,OAAO3nI,GACvBgn1B,EAAsBr/sB,OAAO3nI,GAC7BlF,EAAMwr1B,SAAS3+sB,OAAO3nI,EACxB,CAiBA,SAASus1B,GAAavs1B,GACpB,IAAIms0B,EAAa8a,EAAiB780B,IAAIpK,GACtCg80B,IAAU7P,EAA0C,8BAAAns0B,GACpDms0B,EAAWr7e,QACXm2f,EAAiBt/sB,OAAO3nI,EAC1B,CAEA,SAASsu1B,GAAiBr21B,GACxB,IAAK,IAAI+H,KAAO/H,EAAM,CACpB,IACIs21B,EAAcC,IADJH,GAAWru1B,GACgB49B,MACzC9iC,EAAMwr1B,SAASl50B,IAAIpN,EAAKuu1B,EACzB,CACH,CAEA,SAAStC,KACP,IAAIwC,EAAW,GACXzC,GAAkB,EACtB,IAAK,IAAIhs1B,KAAOqn1B,EAAkB,CAChC,IAAIS,EAAUht1B,EAAMwr1B,SAASl80B,IAAIpK,GACjCg80B,IAAU8L,EAA8B,qBAAA9n1B,GAClB,YAAlB8n1B,EAAQht1B,QACVus1B,EAAiB1/sB,OAAO3nI,GACxByu1B,EAAS3u1B,KAAKE,GACdgs1B,GAAkB,EAErB,CAED,OADAsC,GAAiBG,GACVzC,CACT,CAEA,SAASiB,GAAqByB,GAC5B,IAAIC,EAAa,GACjB,IAAK,IAAK3u1B,EAAK6pB,KAAOu9zB,EACpB,GAAIv9zB,EAAK6k0B,EAAU,CACjB,IAAI5G,EAAUht1B,EAAMwr1B,SAASl80B,IAAIpK,GACjCg80B,IAAU8L,EAA8B,qBAAA9n1B,GAClB,YAAlB8n1B,EAAQht1B,QACVyx1B,GAAavs1B,GACbon1B,EAAez/sB,OAAO3nI,GACtB2u1B,EAAW7u1B,KAAKE,GAEnB,CAGH,OADAsu1B,GAAiBK,GACVA,EAAW731B,OAAS,CAC7B,CAYA,SAAS831B,GAAc5u1B,GACrBlF,EAAMyr1B,SAAS5+sB,OAAO3nI,GACtB0n1B,EAAiB//sB,OAAO3nI,EAC1B,CAGA,SAAS6u1B,GAAc7u1B,EAAa8u1B,GAClC,IAAIC,EAAUj01B,EAAMyr1B,SAASn80B,IAAIpK,IAAQuj1B,IAIzCvH,IACqB,cAAlB+S,EAAQj01B,OAA8C,YAArBg01B,EAAWh01B,OACxB,YAAlBi01B,EAAQj01B,OAA4C,YAArBg01B,EAAWh01B,OACxB,YAAlBi01B,EAAQj01B,OAA4C,eAArBg01B,EAAWh01B,OACxB,YAAlBi01B,EAAQj01B,OAA4C,cAArBg01B,EAAWh01B,OACxB,eAAlBi01B,EAAQj01B,OAA+C,cAArBg01B,EAAWh01B,MAAsB,qCACjCi01B,EAAQj01B,MAAK,OAAOg01B,EAAWh01B,OAGtE,IAAIyr1B,EAAW,IAAIn90B,IAAItO,EAAMyr1B,UAC7BA,EAASn50B,IAAIpN,EAAK8u1B,GAClBriqB,EAAY,CAAE85pB,YAChB,CAEA,SAASyI,GAAqBr10B,GAQ7B,IAR8B,gBAC7B+jyB,EAAe,aACfkrC,EAAY,cACZ3C,GAKDts0B,EACC,GAA8B,IAA1B+t0B,EAAiB390B,KACnB,OAKE290B,EAAiB390B,KAAO,GAC1BqwH,KAAQ,EAAO,gDAGjB,IAAIpwH,EAAU5F,MAAMpN,KAAK0w1B,EAAiB190B,YACrCil1B,EAAYC,GAAmBll1B,EAAQA,EAAQlT,OAAS,GACzDi41B,EAAUj01B,EAAMyr1B,SAASn80B,IAAI6k1B,GAEjC,OAAIF,GAA6B,eAAlBA,EAAQj01B,WAAvB,EAQIo01B,EAAgB,CAAExxC,kBAAiBkrC,eAAc3C,kBAC5CgJ,OADT,CAGF,CAEA,SAASzF,GAAsBh/mB,GAC7B,IAAI7/N,EAAQ660B,IAAuB,IAAK,CAAEh7mB,aACtC4+mB,EAAcnF,GAAsBE,GACpC,QAAEh8zB,EAAO,MAAE21zB,GAAU2H,IAAuB2D,GAKhD,OAFA2C,KAEO,CAAExC,gBAAiBph0B,EAAS21zB,QAAOnz0B,QAC5C,CAEA,SAAS4/0B,GACP//mB,EACA2/mB,GAEA,MAAO,CACLG,WAAYR,IAAoBK,EAAeK,gBAAgB1M,MAAMj0zB,GACrElf,MAAO660B,IAAuB,IAAK,CACjCll1B,KAAM,kBACNkqO,WACA5/N,QAC0B,MAAxBu/0B,EAAex/0B,OAAiB,YAAaw/0B,EAAex/0B,MACxDw/0B,EAAex/0B,MACf8G,OAAO040B,EAAex/0B,SAGlC,CAEA,SAASoh1B,GACPpv0B,GAEA,IAAIwy0B,EAA8B,GAWlC,OAVA1H,EAAgB1t1B,SAAQ,CAACq11B,EAAKxE,KACvBju0B,IAAaA,EAAUiu0B,KAI1BwE,EAAI56wB,SACJ26wB,EAAkBrv1B,KAAK8q1B,GACvBnD,EAAgB9/sB,OAAOijtB,GACxB,IAEIuE,CACT,CA+BA,SAASlG,GAAa59zB,EAAoBlD,GACxC,GAAIg9zB,EAAyB,CAC3B,IAAInl1B,EAAMml1B,EACR95zB,EACAlD,EAAQxuB,KAAK8a,GDnlFL,SACd5J,EACA+60B,GAEA,IAAI,MAAE9H,EAAK,SAAEtzmB,EAAQ,OAAE/zG,GAAW5rH,EAClC,MAAO,CACLgf,GAAIi0zB,EAAMj0zB,GACV2gN,WACA/zG,SACA74F,KAAMgozB,EAAW9H,EAAMj0zB,IACvBkpP,OAAQ+qkB,EAAM/qkB,OAElB,CCukF2Bs8kB,CAA2B560B,EAAG3Z,EAAM8q1B,eAEzD,OAAO5l1B,GAAOqrB,EAASrrB,GACxB,CACD,OAAOqrB,EAASrrB,GAClB,CAYA,SAAS8o1B,GACPz9zB,EACAlD,GAEA,GAAI+8zB,EAAsB,CACxB,IAAIll1B,EAAMip1B,GAAa59zB,EAAUlD,GAC7Bta,EAAIq30B,EAAqBll1B,GAC7B,GAAiB,kBAAN6N,EACT,OAAOA,CAEV,CACD,OAAO,IACT,CAEA,SAAS630B,GACPv9zB,EACAih0B,EACA5+mB,GAEA,GAAI+5mB,EAA6B,CAI/B,GAAIU,EAAiB960B,IAAIqgO,GACvB,MAAO,CAAEqsC,QAAQ,EAAO1uP,WAG1B,IAAKA,EAAS,CAQZ,MAAO,CAAE0uP,QAAQ,EAAM1uP,QAPNm2zB,IACf8K,EACA5+mB,EACA6zmB,GACA,IAG4C,GAC/C,CACC,GAAIlr1B,OAAO8E,KAAKkwB,EAAQ,GAAGsuG,QAAQ3/H,OAAS,EAAG,CAU7C,MAAO,CAAE+/Q,QAAQ,EAAM1uP,QANFm2zB,IACnB8K,EACA5+mB,EACA6zmB,GACA,GAGH,CAEJ,CAED,MAAO,CAAExnkB,QAAQ,EAAO1uP,QAAS,KACnC,CAiBAwnG,eAAey6tB,GACbji0B,EACAqiN,EACAv2F,GAEA,IAAIu2sB,EAAkDri0B,EACtD,OAAa,CACX,IAAImn0B,EAAiC,MAAtBrL,EACXmF,EAAcnF,GAAsBE,EACxC,UACQoL,IACJhL,EACA/5mB,EACAggnB,EACApB,EACAvL,EACAF,EACAgK,EACA1zsB,GAEF,MAAOlgJ,KACP,MAAO,CAAEuM,KAAM,QAASqK,MAAO5W,IAAGy21B,iBACnC,SAOK8E,IACFnL,EAAa,IAAIA,GAEpB,CAED,GAAIlwsB,EAAOszD,QACT,MAAO,CAAEjnM,KAAM,WAGjB,IAAIkv1B,EAAarR,IAAYiL,EAAa5+mB,EAAU6zmB,GACpD,GAAImR,EAEF,OADAC,GAAejlnB,EAAUy6mB,GAClB,CAAE3k1B,KAAM,UAAW6nB,QAASqn0B,GAGrC,IAAIE,EAAoBpR,IACtB8K,EACA5+mB,EACA6zmB,GACA,GAIF,IACGqR,GACAlF,EAAe1z1B,SAAW441B,EAAkB541B,QAC3C0z1B,EAAe1swB,OACb,CAACrpE,EAAG5U,IAAM4U,EAAEqp0B,MAAMj0zB,KAAO6l0B,EAAmB7v1B,GAAGi+0B,MAAMj0zB,KAIzD,OADA4l0B,GAAejlnB,EAAUy6mB,GAClB,CAAE3k1B,KAAM,UAAW6nB,QAAS,MAGrCqi0B,EAAiBkF,CAClB,CACH,CAEA,SAASD,GAAejvxB,EAAc4lE,GACpC,GAAIA,EAAMr8H,MAAQi70B,EAAyB,CACzC,IAAIl/yB,EAAQsgG,EAAMnqH,SAAShS,OAAO3U,MAClC8wI,EAAMuB,OAAO7hG,EACd,CACDsgG,EAAMt/G,IAAI05C,EACZ,CA4EA,OAvCA0jxB,EAAS,CACP,YAAI7F,GACF,OAAOA,GAET,UAAI5svB,GACF,OAAOA,GAET,SAAI32F,GACF,OAAOA,GAET,UAAI4i1B,GACF,OAAOyG,GAET,UAAIz/zB,GACF,OAAOo/zB,GAETvirB,WA70EF,WAiEE,GA9DAujrB,EAAkBj6zB,EAAKy/M,QAAQ2ymB,QAC7Bxv0B,IAA+C,IAA5Cm7D,OAAQq9wB,EAAa,SAAE56zB,EAAQ,MAAEihL,GAAO7+L,EAGzC,GAAIu40B,EAGF,OAFAA,SACAA,OAA8Bjv1B,GAIhCqjI,IAC4B,IAA1BsttB,EAAiB390B,MAAuB,MAATuiM,EAC/B,8YAQF,IAAI2ipB,EAAaD,GAAsB,CACrCtxC,gBAAiB5izB,EAAMuwB,SACvBu9zB,aAAcv9zB,EACd46zB,kBAGF,GAAIgJ,GAAuB,MAAT3ipB,EAAe,CAE/B,IAAIqjpB,EAA2B,IAAItrzB,SAAe2mB,IAChDg7xB,EAA8Bh7xB,CAAO,IA0BvC,OAxBAngC,EAAKy/M,QAAQgzmB,IAAY,EAAThxoB,QAGhBuipB,GAAcI,EAAY,CACxBn01B,MAAO,UACPuwB,WACAm4zB,OAAAA,GACEqL,GAAcI,EAAa,CACzBn01B,MAAO,aACP0o1B,aAASzs1B,EACT41C,WAAO51C,EACPs0B,aAKFsk0B,EAAyBhhuB,MAAK,IAAM9jG,EAAKy/M,QAAQgzmB,GAAGhxoB,MAEtD3/J,KAAAA,GACE,IAAI45yB,EAAW,IAAIn90B,IAAItO,EAAMyr1B,UAC7BA,EAASn50B,IAAI6h1B,EAAa1L,KAC1B92pB,EAAY,CAAE85pB,YAChB,GAGH,CAED,OAAOwC,EAAgB9C,EAAe56zB,EAAS,IAI/Cs6P,EAAW,EA+sJnB,SACEiqkB,EACAz8rB,GAEA,IACE,IAAI08rB,EAAmBD,EAAQE,eAAe3woB,QAC5CykoB,KAEF,GAAIiM,EAAkB,CACpB,IAAIrkuB,EAAOrnF,KAAKuL,MAAMmgzB,GACtB,IAAK,IAAKr70B,EAAGua,KAAM57B,OAAO6W,QAAQwhH,GAAQ,CAAC,GACrCz8F,GAAK3qB,MAAMgB,QAAQ2pB,IACrBokI,EAAY/lJ,IAAIoH,EAAG,IAAIlL,IAAIylB,GAAK,IAGrC,EACD,MAAOh7B,KACP,CAEJ,CA/tJMg81B,CAA0BjM,EAAc6C,GACxC,IAAIqJ,EAA0BA,IAguJpC,SACEJ,EACAz8rB,GAEA,GAAIA,EAAYppJ,KAAO,EAAG,CACxB,IAAIyhH,EAAiC,CAAC,EACtC,IAAK,IAAKh3G,EAAGua,KAAMokI,EACjB3nC,EAAKh3G,GAAK,IAAIua,GAEhB,IACE6g0B,EAAQE,eAAexwoB,QACrBskoB,IACAz/yB,KAAK+mF,UAAUM,IAEjB,MAAO7gH,IACPyvH,KACE,EAC8D,8DAAAzvH,GAAK,KAEtE,CACF,CACH,CApvJQsl1B,CAA0BnM,EAAc6C,GAC1C7C,EAAa90zB,iBAAiB,WAAYgh0B,GAC1CpJ,EAA8BA,IAC5B9C,EAAah1zB,oBAAoB,WAAYkh0B,EAChD,CAaD,OANKl11B,EAAM4wO,aACTq9mB,EAAgBjN,IAAcjnoB,IAAK/5M,EAAMuwB,SAAU,CACjDkg0B,kBAAkB,IAIfrH,CACT,EAsvEEnY,UAruEF,SAAmBxnzB,GAEjB,OADAwg0B,EAAYj+zB,IAAIvC,GACT,IAAMwg0B,EAAYp9sB,OAAOpjH,EAClC,EAmuEE2r0B,wBAtPF,SACEC,EACAt5tB,EACAyyN,GASA,GAPA47f,EAAuBiL,EACvB96f,EAAoBx+N,EACpBsutB,EAA0B77f,GAAU,MAK/B87f,GAAyBtq1B,EAAMor1B,aAAehD,IAAiB,CAClEkC,GAAwB,EACxB,IAAIv30B,EAAIi70B,GAAuBhu1B,EAAMuwB,SAAUvwB,EAAMqtB,SAC5C,MAALta,GACF4+K,EAAY,CAAE05pB,sBAAuBt40B,GAExC,CAED,MAAO,KACLq30B,EAAuB,KACvB7vf,EAAoB,KACpB8vf,EAA0B,IAAI,CAElC,EA8NEiL,SA3hEFzguB,eAAeyguB,EACbn51B,EACAiqB,GAEA,GAAkB,kBAAPjqB,EAET,YADA4zB,EAAKy/M,QAAQgzmB,GAAGrm1B,GAIlB,IAAIo51B,EAAiBC,IACnBx11B,EAAMuwB,SACNvwB,EAAMqtB,QACNk2zB,EACA5svB,EAAOmzvB,mBACP3t1B,EACAw6F,EAAO8vvB,qBACP,MAAArg0B,OAAA,EAAAA,EAAMqv0B,YACF,MAAJrv0B,OAAI,EAAJA,EAAMi9B,WAEJ,KAAEqiB,EAAI,WAAEkpxB,EAAU,MAAE/+0B,GAAU6l1B,IAChC/+vB,EAAOizvB,wBACP,EACA2L,EACAnv0B,GAGEw8xB,EAAkB5izB,EAAMuwB,SACxBu9zB,EAAezM,IAAerh1B,EAAMuwB,SAAUm1C,EAAMt/C,GAAQA,EAAKpmB,OAOrE8t1B,EAAY5u1B,IACP,GAAA4u1B,EACA/9zB,EAAKy/M,QAAQ4ymB,eAAe0L,IAGjC,IAAI6H,EAAcvv0B,GAAwB,MAAhBA,EAAKnd,QAAkBmd,EAAKnd,aAAUhN,EAE5Dkv1B,EAAgBnK,IAAcqB,MAEd,IAAhBsT,EACFxK,EAAgBnK,IAAcuB,SACL,IAAhBoT,GAGK,MAAd/G,GACAlB,IAAiBkB,EAAWvG,aAC5BuG,EAAWtG,aAAeto1B,EAAMuwB,SAASm/M,SAAW1vO,EAAMuwB,SAASugB,SAMnEq6yB,EAAgBnK,IAAcuB,SAGhC,IAAI+I,EACFll0B,GAAQ,uBAAwBA,GACA,IAA5BA,EAAKkl0B,wBACLrv1B,EAEFyoK,GAAkD,KAArCt+I,GAAQA,EAAKgn0B,oBAE1B+G,EAAaD,GAAsB,CACrCtxC,kBACAkrC,eACA3C,kBAGF,IAAIgJ,EAwBJ,aAAalG,EAAgB9C,EAAe2C,EAAc,CACxDc,aAGAG,aAAcl/0B,EACdy70B,qBACAri1B,QAASmd,GAAQA,EAAKnd,QACtBol1B,qBAAsBjo0B,GAAQA,EAAKwv0B,wBACnClxrB,cA9BAqvrB,GAAcI,EAAY,CACxBn01B,MAAO,UACPuwB,SAAUu9zB,EACVpF,OAAAA,GACEqL,GAAcI,EAAa,CACzBn01B,MAAO,aACP0o1B,aAASzs1B,EACT41C,WAAO51C,EACPs0B,SAAUu9zB,IAGZwH,EAASn51B,EAAIiqB,IAEfyrB,KAAAA,GACE,IAAI45yB,EAAW,IAAIn90B,IAAItO,EAAMyr1B,UAC7BA,EAASn50B,IAAI6h1B,EAAa1L,KAC1B92pB,EAAY,CAAE85pB,YAChB,GAeN,EAk7DEvqyB,MA9wCF,SACEh8C,EACA4q1B,EACA/uyB,EACA36B,GAEA,GAAI6i0B,EACF,MAAM,IAAItj0B,MACR,oMAMAwm0B,EAAiB980B,IAAInK,IAAMus1B,GAAavs1B,GAC5C,IAAIw/J,GAAkD,KAArCt+I,GAAQA,EAAKgn0B,oBAE1BkB,EAAcnF,GAAsBE,EACpCkM,EAAiBC,IACnBx11B,EAAMuwB,SACNvwB,EAAMqtB,QACNk2zB,EACA5svB,EAAOmzvB,mBACP/oyB,EACA41C,EAAO8vvB,qBACPqJ,EACI,MAAJ1p0B,OAAI,EAAJA,EAAMi9B,UAEJh2B,EAAUg2zB,IAAYiL,EAAaiH,EAAgBhS,GAEnDyH,EAAWJ,GAAcv9zB,EAASih0B,EAAaiH,GAKnD,GAJIvK,EAASjvkB,QAAUivkB,EAAS39zB,UAC9BA,EAAU29zB,EAAS39zB,UAGhBA,EAOH,YANAim0B,GACEpu1B,EACA4q1B,EACApF,IAAuB,IAAK,CAAEh7mB,SAAU6lnB,IACxC,CAAE7wrB,cAKN,IAAI,KAAEh/F,EAAI,WAAEkpxB,EAAU,MAAE/+0B,GAAU6l1B,IAChC/+vB,EAAOizvB,wBACP,EACA2L,EACAnv0B,GAGF,GAAIvW,EAEF,YADAyj1B,GAAgBpu1B,EAAK4q1B,EAASjg1B,EAAO,CAAE60J,cAIzC,IAAI30J,EAAQ6/0B,IAAevi0B,EAASq4C,GAEpCimxB,GAAkE,KAArCvl0B,GAAQA,EAAKkl0B,oBAEtCsD,GAAclB,IAAiBkB,EAAWvG,YA+BhDxztB,eACE3vH,EACA4q1B,EACApqxB,EACA31D,EACA8l1B,EACA3G,EACAxqrB,EACAkqrB,GAKA,SAASkH,EAAwBn80B,GAC/B,IAAKA,EAAEqp0B,MAAMl1wB,SAAWn0D,EAAEqp0B,MAAM36qB,KAAM,CACpC,IAAIx4J,EAAQ660B,IAAuB,IAAK,CACtC73zB,OAAQ+7zB,EAAWvG,WACnB34mB,SAAUhqK,EACVoqxB,QAASA,IAGX,OADAwD,GAAgBpu1B,EAAK4q1B,EAASjg1B,EAAO,CAAE60J,eAChC,CACR,CACD,OAAO,CACT,CAEA,GAhBAyqrB,KACA3C,EAAiB3/sB,OAAO3nI,IAenBgq1B,GAAc4G,EAAwB/l1B,GACzC,OAIF,IAAIgm1B,EAAkB/11B,EAAMwr1B,SAASl80B,IAAIpK,GACzCmu1B,GAAmBnu1B,EAkjHvB,SACE0p1B,EACAmH,GAEA,IAAI/I,EAAuC,CACzCht1B,MAAO,aACPqo1B,WAAYuG,EAAWvG,WACvBC,WAAYsG,EAAWtG,WACvBC,YAAaqG,EAAWrG,YACxBp2W,SAAUy8W,EAAWz8W,SACrBzhX,KAAMk+tB,EAAWl+tB,KACjB73F,KAAM+1zB,EAAW/1zB,KACjBiK,KAAMizzB,EAAkBA,EAAgBjzzB,UAAO7mC,GAEjD,OAAO+w1B,CACT,CAjkH4BgJ,CAAqBpH,EAAYmH,GAAkB,CACzErxrB,cAGF,IAAIuxrB,EAAkB,IAAI3kB,gBACtB4kB,EAAepH,IACjB/+zB,EAAKy/M,QACL9pK,EACAuwxB,EAAgB98sB,OAChBy1sB,GAGF,GAAIM,EAAY,CACd,IAAIG,QAAuBC,GACzBuG,EACAnwxB,EACAwwxB,EAAa/8sB,QAGf,GAA4B,YAAxBk2sB,EAAe7p1B,KACjB,OACK,GAA4B,UAAxB6p1B,EAAe7p1B,KAAkB,CAC1C,IAAI,MAAEqK,GAAU4/0B,GAAyB/pxB,EAAM2pxB,GAE/C,YADAiE,GAAgBpu1B,EAAK4q1B,EAASjg1B,EAAO,CAAE60J,aAExC,CAAM,IAAK2qrB,EAAehi0B,QAOzB,YANAim0B,GACEpu1B,EACA4q1B,EACApF,IAAuB,IAAK,CAAEh7mB,SAAUhqK,IACxC,CAAEg/F,cAOJ,GAAIoxrB,EAFJ/l1B,EAAQ6/0B,IADRiG,EAAiBxG,EAAehi0B,QACOq4C,IAGrC,MAGL,CAGDymxB,EAAiB750B,IAAIpN,EAAK+w1B,GAE1B,IAAIE,EAAoB/J,EACpBgK,QAAsBvG,EACxB,SACA7v1B,EACAk21B,EACA,CAACnm1B,GACD8l1B,EACA3w1B,GAEE+p1B,EAAemH,EAAcrm1B,EAAMiz0B,MAAMj0zB,IAE7C,GAAImn0B,EAAa/8sB,OAAOszD,QAMtB,YAHI0/oB,EAAiB780B,IAAIpK,KAAS+w1B,GAChC9J,EAAiBt/sB,OAAO3nI,IAQ5B,GAAIyxF,EAAOgzvB,mBAAqB+C,EAAgBr90B,IAAInK,IAClD,GAAI6q1B,IAAiBd,IAAiBkB,IAAclB,GAElD,YADAoE,GAAmBnu1B,EAAKwu1B,SAAez31B,QAIpC,CACL,GAAI8z1B,IAAiBd,GAEnB,OADA9C,EAAiBt/sB,OAAO3nI,GACpBmn1B,EAA0B8J,OAK5B9C,GAAmBnu1B,EAAKwu1B,SAAez31B,KAGvCsw1B,EAAiBvg0B,IAAI9mB,GACrBmu1B,GAAmBnu1B,EAAKqs1B,IAAkB3C,IACnCqB,EAAwBiG,EAAcjH,GAAc,EAAO,CAChEuB,kBAAmB5B,KAMzB,GAAIuB,IAAclB,GAEhB,YADAqE,GAAgBpu1B,EAAK4q1B,EAASb,EAAap/0B,MAG9C,CAED,GAAIqg1B,IAAiBjB,GACnB,MAAMvE,IAAuB,IAAK,CAAEll1B,KAAM,iBAK5C,IAAIso1B,EAAe9t1B,EAAMor1B,WAAW76zB,UAAYvwB,EAAMuwB,SAClD8l0B,EAAsBvH,IACxB/+zB,EAAKy/M,QACLs+mB,EACAmI,EAAgB98sB,QAEdm1sB,EAAcnF,GAAsBE,EACpCh8zB,EACyB,SAA3BrtB,EAAMor1B,WAAWpr1B,MACbqj1B,IAAYiL,EAAatu1B,EAAMor1B,WAAW76zB,SAAUgzzB,GACpDvj1B,EAAMqtB,QAEZ6zzB,IAAU7zzB,EAAS,gDAEnB,IAAIip0B,IAAWlK,EACfE,EAAeh60B,IAAIpN,EAAKox1B,GAExB,IAAIC,EAAchF,IAAkB3C,EAAYK,EAAanszB,MAC7D9iC,EAAMwr1B,SAASl50B,IAAIpN,EAAKqx1B,GAExB,IAAKzF,EAAeC,GAAwBC,IAC1Cjh0B,EAAKy/M,QACLxvO,EACAqtB,EACAuh0B,EACAd,GACA,EACAn3vB,EAAOozvB,+BACPiC,EACAC,EACAC,EACAQ,EACAF,EACAD,EACA+B,EACA/K,EACA,CAACxz0B,EAAMiz0B,MAAMj0zB,GAAIkg0B,IAMnB8B,EACG/x1B,QAAQgqJ,GAAOA,EAAG9jJ,MAAQA,IAC1BjG,SAAS+pJ,IACR,IAAIwtsB,EAAWxtsB,EAAG9jJ,IACd6w1B,EAAkB/11B,EAAMwr1B,SAASl80B,IAAIkn1B,GACrClF,EAAsBC,SACxBt11B,EACA851B,EAAkBA,EAAgBjzzB,UAAO7mC,GAE3C+D,EAAMwr1B,SAASl50B,IAAIkk1B,EAAUlF,GACzBnF,EAAiB980B,IAAImn1B,IACvB/E,GAAa+E,GAEXxtsB,EAAGqorB,YACL8a,EAAiB750B,IAAIkk1B,EAAUxtsB,EAAGqorB,WACnC,IAGL1/oB,EAAY,CAAE65pB,SAAU,IAAIl90B,IAAItO,EAAMwr1B,YAEtC,IAAIkG,EAAiCA,IACnCX,EAAqB9x1B,SAAS+pJ,GAAOyosB,GAAazosB,EAAG9jJ,OAEvD+w1B,EAAgB98sB,OAAOjlH,iBACrB,QACAw9zB,GAGF,IAAI,cAAEC,EAAa,eAAEC,SACbC,EACJ7x1B,EACAqtB,EACAyj0B,EACAC,EACAsF,GAGJ,GAAIJ,EAAgB98sB,OAAOszD,QACzB,OAGFwppB,EAAgB98sB,OAAOnlH,oBACrB,QACA09zB,GAGFpF,EAAez/sB,OAAO3nI,GACtBin1B,EAAiBt/sB,OAAO3nI,GACxB6r1B,EAAqB9x1B,SAASi9G,GAAMiwuB,EAAiBt/sB,OAAO3wB,EAAEh3G,OAE9D,IAAI4s1B,EAAWC,IAAaJ,GAC5B,GAAIG,EACF,OAAO7B,EACLoG,EACAvE,EAASru0B,QACT,GAKJ,GADAqu0B,EAAWC,IAAaH,GACpBE,EAKF,OADAvF,EAAiBvg0B,IAAI8l0B,EAAS5s1B,KACvB+q1B,EACLoG,EACAvE,EAASru0B,QACT,GAKJ,IAAI,WAAEqn0B,EAAU,OAAE5kyB,GAAW8ryB,IAC3Bhy1B,EACAqtB,EACAyj0B,EACAa,OACA111B,EACA801B,EACAa,EACAjF,GAKF,GAAI3s1B,EAAMwr1B,SAASn80B,IAAInK,GAAM,CAC3B,IAAIuu1B,EAAcC,IAAezE,EAAanszB,MAC9C9iC,EAAMwr1B,SAASl50B,IAAIpN,EAAKuu1B,EACzB,CAEDtB,GAAqBmE,GAMQ,YAA3Bt21B,EAAMor1B,WAAWpr1B,OACjBs21B,EAASjK,GAETnL,IAAUwK,EAAe,2BACzBT,GAA+BA,EAA4Bj1f,QAE3Ds3f,EAAmBtt1B,EAAMor1B,WAAW76zB,SAAU,CAC5ClD,UACAy9zB,aACA5kyB,SACAslyB,SAAU,IAAIl90B,IAAItO,EAAMwr1B,cAM1B75pB,EAAY,CACVzrI,SACA4kyB,WAAY8C,IACV5t1B,EAAM8q1B,WACNA,EACAz9zB,EACA64B,GAEFslyB,SAAU,IAAIl90B,IAAItO,EAAMwr1B,YAE1BQ,GAAyB,EAE7B,CAhVIyK,CACEvx1B,EACA4q1B,EACApqxB,EACA31D,EACAsd,EACA29zB,EAASjvkB,OACTr3G,EACAkqrB,IAOJpC,EAAiBl60B,IAAIpN,EAAK,CAAE4q1B,UAASpqxB,SAoUvCmvD,eACE3vH,EACA4q1B,EACApqxB,EACA31D,EACAsd,EACA6h0B,EACAxqrB,EACAkqrB,GAEA,IAAImH,EAAkB/11B,EAAMwr1B,SAASl80B,IAAIpK,GACzCmu1B,GACEnu1B,EACAqs1B,IACE3C,EACAmH,EAAkBA,EAAgBjzzB,UAAO7mC,GAE3C,CAAEyoK,cAGJ,IAAIuxrB,EAAkB,IAAI3kB,gBACtB4kB,EAAepH,IACjB/+zB,EAAKy/M,QACL9pK,EACAuwxB,EAAgB98sB,QAGlB,GAAI+1sB,EAAY,CACd,IAAIG,QAAuBC,GACzBji0B,EACAq4C,EACAwwxB,EAAa/8sB,QAGf,GAA4B,YAAxBk2sB,EAAe7p1B,KACjB,OACK,GAA4B,UAAxB6p1B,EAAe7p1B,KAAkB,CAC1C,IAAI,MAAEqK,GAAU4/0B,GAAyB/pxB,EAAM2pxB,GAE/C,YADAiE,GAAgBpu1B,EAAK4q1B,EAASjg1B,EAAO,CAAE60J,aAExC,CAAM,IAAK2qrB,EAAehi0B,QAOzB,YANAim0B,GACEpu1B,EACA4q1B,EACApF,IAAuB,IAAK,CAAEh7mB,SAAUhqK,IACxC,CAAEg/F,cAKJ30J,EAAQ6/0B,IADRvi0B,EAAUgi0B,EAAehi0B,QACOq4C,EAEnC,CAGDymxB,EAAiB750B,IAAIpN,EAAK+w1B,GAE1B,IAAIE,EAAoB/J,EACpBt1a,QAAgB+4a,EAClB,SACA7v1B,EACAk21B,EACA,CAACnm1B,GACDsd,EACAnoB,GAEEue,EAASqzZ,EAAQ/ma,EAAMiz0B,MAAMj0zB,IAM7Bmh0B,IAAiBzs0B,KACnBA,QACSiz0B,IAAoBjz0B,EAAQyy0B,EAAa/8sB,QAAQ,IACxD11H,GAKA0o0B,EAAiB780B,IAAIpK,KAAS+w1B,GAChC9J,EAAiBt/sB,OAAO3nI,GAG1B,GAAIgx1B,EAAa/8sB,OAAOszD,QACtB,OAKF,GAAIigpB,EAAgBr90B,IAAInK,GAEtB,YADAmu1B,GAAmBnu1B,EAAKwu1B,SAAez31B,IAKzC,GAAI8z1B,IAAiBts0B,GACnB,OAAI4o0B,EAA0B8J,OAG5B9C,GAAmBnu1B,EAAKwu1B,SAAez31B,KAGvCsw1B,EAAiBvg0B,IAAI9mB,cACf+q1B,EAAwBiG,EAAczy0B,GAAQ,IAMxD,GAAI0s0B,IAAc1s0B,GAEhB,YADA6v0B,GAAgBpu1B,EAAK4q1B,EAASrs0B,EAAO5T,OAIvCqx0B,KAAWgP,IAAiBzs0B,GAAS,mCAGrC4v0B,GAAmBnu1B,EAAKwu1B,IAAejw0B,EAAOqf,MAChD,CA1bE6zzB,CACEzx1B,EACA4q1B,EACApqxB,EACA31D,EACAsd,EACA29zB,EAASjvkB,OACTr3G,EACAkqrB,GAEJ,EAurCEgI,WA96DF,WACEzH,KACAx9pB,EAAY,CAAE45pB,aAAc,YAIG,eAA3Bvr1B,EAAMor1B,WAAWpr1B,QAOU,SAA3BA,EAAMor1B,WAAWpr1B,MAUrBiu1B,EACEvC,GAAiB1r1B,EAAMmr1B,cACvBnr1B,EAAMor1B,WAAW76zB,SACjB,CACEi+zB,mBAAoBxu1B,EAAMor1B,WAE1BiD,sBAAuD,IAAjCzC,IAfxBqC,EAAgBju1B,EAAMmr1B,cAAenr1B,EAAMuwB,SAAU,CACnD29zB,gCAAgC,IAiBtC,EAi5DErM,WAAa1l1B,GAAW4zB,EAAKy/M,QAAQqymB,WAAW1l1B,GAChDim1B,eAAiBjm1B,GAAW4zB,EAAKy/M,QAAQ4ymB,eAAejm1B,GACxDo31B,cACAlG,cApbF,SAAqCno1B,GACnC,GAAIyxF,EAAOgzvB,kBAAmB,CAC5B,IAAInm0B,GAASip0B,EAAen90B,IAAIpK,IAAQ,GAAK,EACzCse,GAAS,GACXip0B,EAAe5/sB,OAAO3nI,GACtBwn1B,EAAgB1g0B,IAAI9mB,IAEpBun1B,EAAen60B,IAAIpN,EAAKse,EAE3B,MACC6p0B,GAAcno1B,GAEhBysL,EAAY,CAAE65pB,SAAU,IAAIl90B,IAAItO,EAAMwr1B,WACxC,EAwaE9gpB,QA9vEF,WACMs/oB,GACFA,IAEE8B,GACFA,IAEF7B,EAAYh9xB,QACZg+xB,GAA+BA,EAA4Bj1f,QAC3Dh2V,EAAMwr1B,SAASvs1B,SAAQ,CAACkpB,EAAGjjB,IAAQmo1B,GAAcno1B,KACjDlF,EAAMyr1B,SAASxs1B,SAAQ,CAACkpB,EAAGjjB,IAAQ4u1B,GAAc5u1B,IACnD,EAovEE2x1B,WAvXF,SAAoB3x1B,EAAaukB,GAC/B,IAAIwq0B,EAAmBj01B,EAAMyr1B,SAASn80B,IAAIpK,IAAQuj1B,IAMlD,OAJImE,EAAiBt90B,IAAIpK,KAASukB,GAChCmj0B,EAAiBt60B,IAAIpN,EAAKukB,GAGrBwq0B,CACT,EAgXEH,iBACAgD,YAxDF,SACEhH,EACApx1B,GAEA,IAAI811B,EAAiC,MAAtBrL,EAEf4N,IACEjH,EACApx1B,EAHgByq1B,GAAsBE,EAKtCtG,EACAF,GAQE2R,IACFnL,EAAa,IAAIA,GACjB13pB,EAAY,CAAC,GAEjB,EAkCEqlqB,0BAA2B7K,EAC3B8K,yBAA0BtK,EAG1BuK,mBAvEF,SAA4BC,GAC1BpU,EAAW,CAAC,EACZoG,EAAqBxG,IACnBwU,EACAtU,OACA5m1B,EACA8m1B,EAEJ,GAkEOqG,CACT,CAOsC7h0B,OAAO,YA6qB7C,SAASiu0B,IACPjl0B,EACAlD,EACAk2zB,EACA6T,EACAj71B,EACAsq1B,EACAgP,EACApyyB,GAEA,IAAIg0yB,EACAC,EACJ,GAAI7B,EAAa,CAGf4B,EAAoB,GACpB,IAAK,IAAItn1B,KAASsd,EAEhB,GADAgq0B,EAAkBry1B,KAAK+K,GACnBA,EAAMiz0B,MAAMj0zB,KAAO0m0B,EAAa,CAClC6B,EAAmBvn1B,EACnB,KACD,CAEJ,MACCsn1B,EAAoBhq0B,EACpBiq0B,EAAmBjq0B,EAAQA,EAAQrxB,OAAS,GAI9C,IAAI0pE,EAAOihxB,IACTxq1B,GAAU,IACVqq1B,IAAoB6Q,EAAmB5Q,GACvC/C,IAAcnzzB,EAASm/M,SAAU6zmB,IAAahzzB,EAASm/M,SAC1C,SAAbrsL,GAgCF,OA1BU,MAANlnD,IACFupE,EAAK50B,OAASvgB,EAASugB,OACvB40B,EAAKm+C,KAAOtzF,EAASszF,MAKd,MAAN1nH,GAAqB,KAAPA,GAAoB,MAAPA,IAC5Bm71B,IACAA,EAAiBtU,MAAM39zB,OACtBky0B,IAAmB7xxB,EAAK50B,UAEzB40B,EAAK50B,OAAS40B,EAAK50B,OACf40B,EAAK50B,OAAO7nC,QAAQ,MAAO,WAC3B,UAOFmu1B,GAAgC,MAAb7T,IACrB79wB,EAAKgqK,SACe,MAAlBhqK,EAAKgqK,SAAmB6zmB,EAAWgB,IAAU,CAAChB,EAAU79wB,EAAKgqK,YAG1D6xmB,IAAW77wB,EACpB,CAIA,SAASgwxB,IACP8B,EACAC,EACA/xxB,EACAt/C,GAOA,IAAKA,IA3FP,SACEA,GAEA,OACU,MAARA,IACE,aAAcA,GAAyB,MAAjBA,EAAK+rd,UAC1B,SAAU/rd,QAAsBnqB,IAAdmqB,EAAK/Z,KAE9B,CAmFgBqr1B,CAAuBtx0B,GACnC,MAAO,CAAEs/C,QAGX,GAAIt/C,EAAKii0B,aAAesP,IAAcvx0B,EAAKii0B,YACzC,MAAO,CACL3ixB,OACA71D,MAAO660B,IAAuB,IAAK,CAAE73zB,OAAQzM,EAAKii0B,cAItD,IA0EIuP,EACAzlX,EA3EA0lX,EAAsBA,KAAA,CACxBnyxB,OACA71D,MAAO660B,IAAuB,IAAK,CAAEll1B,KAAM,mBAIzCsy1B,EAAgB1x0B,EAAKii0B,YAAc,MACnCA,EAAamP,EACZM,EAAcn90B,cACdm90B,EAAcx+0B,cACfgv0B,EAAayP,IAAkBryxB,GAEnC,QAAkBzpE,IAAdmqB,EAAK/Z,KAAoB,CAC3B,GAAyB,eAArB+Z,EAAKmi0B,YAA8B,CAErC,IAAKmF,IAAiBrF,GACpB,OAAOwP,IAGT,IAAIh/zB,EACmB,kBAAdzS,EAAK/Z,KACR+Z,EAAK/Z,KACL+Z,EAAK/Z,gBAAgB+le,UACrBhsd,EAAK/Z,gBAAgB00zB,gBAErBz3zB,MAAMpN,KAAKkqB,EAAK/Z,KAAK6C,WAAWrE,QAC9B,CAACk2S,EAAG/hS,KAAA,IAAG1hB,EAAM9C,GAAMwkB,EAAA,SAAQ+hS,EAAMzjT,EAAI,IAAI9C,EAAK,OAC9C,IAEFmc,OAAOyP,EAAK/Z,MAElB,MAAO,CACLq5D,OACAkpxB,WAAY,CACVvG,aACAC,aACAC,YAAani0B,EAAKmi0B,YAClBp2W,cAAUl2e,EACVy0H,UAAMz0H,EACN48B,QAGL,CAAM,GAAyB,qBAArBzS,EAAKmi0B,YAAoC,CAElD,IAAKmF,IAAiBrF,GACpB,OAAOwP,IAGT,IACE,IAAInnuB,EACmB,kBAAdtqG,EAAK/Z,KAAoBg9B,KAAKuL,MAAMxuB,EAAK/Z,MAAQ+Z,EAAK/Z,KAE/D,MAAO,CACLq5D,OACAkpxB,WAAY,CACVvG,aACAC,aACAC,YAAani0B,EAAKmi0B,YAClBp2W,cAAUl2e,EACVy0H,OACA73F,UAAM58B,IAGV,MAAOhD,KACP,OAAO4+1B,GACR,CACF,CACF,CAUD,GARA3W,IACsB,oBAAb9uW,SACP,iDAMEhsd,EAAK+rd,SACPylX,EAAeI,IAA8B5x0B,EAAK+rd,UAClDA,EAAW/rd,EAAK+rd,cACX,GAAI/rd,EAAK/Z,gBAAgB+le,SAC9BwlX,EAAeI,IAA8B5x0B,EAAK/Z,MAClD8le,EAAW/rd,EAAK/Z,UACX,GAAI+Z,EAAK/Z,gBAAgB00zB,gBAC9B62B,EAAexx0B,EAAK/Z,KACpB8le,EAAW8lX,IAA8BL,QACpC,GAAiB,MAAbxx0B,EAAK/Z,KACdur1B,EAAe,IAAI72B,gBACnB5uV,EAAW,IAAIC,cAEf,IACEwlX,EAAe,IAAI72B,gBAAgB36yB,EAAK/Z,MACxC8le,EAAW8lX,IAA8BL,GACzC,MAAO3+1B,KACP,OAAO4+1B,GACR,CAGH,IAAIjJ,EAAyB,CAC3BvG,aACAC,aACAC,YACGni0B,GAAQA,EAAKmi0B,aAAgB,oCAChCp2W,WACAzhX,UAAMz0H,EACN48B,UAAM58B,GAGR,GAAIyx1B,IAAiBkB,EAAWvG,YAC9B,MAAO,CAAE3ixB,OAAMkpxB,cAIjB,IAAIpN,EAAaF,IAAU57wB,GAS3B,OALI+xxB,GAAajW,EAAW1wyB,QAAUymzB,IAAmB/V,EAAW1wyB,SAClE8mzB,EAAahsuB,OAAO,QAAS,IAE/B41tB,EAAW1wyB,OAAS,IAAI8mzB,EAEjB,CAAElyxB,KAAM67wB,IAAWC,GAAaoN,aACzC,CAIA,SAASsJ,IACP7q0B,EACAmi0B,GAEA,IAAI2I,EAAkB9q0B,EACtB,GAAImi0B,EAAY,CACd,IAAInq0B,EAAQgI,EAAQvL,WAAWnI,GAAMA,EAAEqp0B,MAAMj0zB,KAAOyg0B,IAChDnq0B,GAAS,IACX8y0B,EAAkB9q0B,EAAQ7jB,MAAM,EAAG6b,GAEtC,CACD,OAAO8y0B,CACT,CAEA,SAASnH,IACPxhnB,EACAxvO,EACAqtB,EACAuh0B,EACAr+zB,EACAktlB,EACA26O,EACApM,EACAC,EACAC,EACAQ,EACAF,EACAD,EACA+B,EACA/K,EACAsL,GAEA,IAAII,EAAeJ,EACfsB,IAActB,EAAoB,IAChCA,EAAoB,GAAGh/0B,MACvBg/0B,EAAoB,GAAG/rzB,UACzB7mC,EACAo81B,EAAa7onB,EAAQ0ymB,UAAUli1B,EAAMuwB,UACrC+n0B,EAAU9onB,EAAQ0ymB,UAAU3xzB,GAG5Bi/zB,EACFX,GAAuBsB,IAActB,EAAoB,IACrDA,EAAoB,QACpB5y1B,EACFk81B,EAAkB3I,EAClB0I,IAA8B7q0B,EAASmi0B,GACvCni0B,EAKAkr0B,EAAe1J,EACfA,EAAoB,GAAGjgX,gBACvB3ye,EACAu81B,EACFJ,GAA+BG,GAAgBA,GAAgB,IAE7DE,EAAoBN,EAAgBn51B,QAAO,CAAC+Q,EAAOsV,KACrD,IAAI,MAAE29zB,GAAUjz0B,EAChB,GAAIiz0B,EAAM36qB,KAER,OAAO,EAGT,GAAoB,MAAhB26qB,EAAM6H,OACR,OAAO,EAGT,GAAIptO,EACF,QAA4B,oBAAjBulO,EAAM6H,SAAyB7H,EAAM6H,OAAOlmrB,eAItB1oK,IAA/B+D,EAAM8q1B,WAAW9H,EAAMj0zB,OAErB/uB,EAAMkmD,aAAqCjqD,IAA3B+D,EAAMkmD,OAAO88xB,EAAMj0zB,KAKzC,GA2HJ,SACE2p0B,EACAC,EACA5o1B,GAEA,IAAI2/D,GAEDipxB,GAED5o1B,EAAMiz0B,MAAMj0zB,KAAO4p0B,EAAa3V,MAAMj0zB,GAIpC6p0B,OAAsD381B,IAAtCy81B,EAAkB3o1B,EAAMiz0B,MAAMj0zB,IAGlD,OAAO2gD,GAASkpxB,CAClB,CA3IMC,CAAY741B,EAAM8q1B,WAAY9q1B,EAAMqtB,QAAQhI,GAAQtV,IACpDk80B,EAAwB5u1B,MAAM0xB,GAAOA,IAAOhf,EAAMiz0B,MAAMj0zB,KAExD,OAAO,EAOT,IAAI+p0B,EAAoB941B,EAAMqtB,QAAQhI,GAClC0z0B,EAAiBhp1B,EAErB,OAAOip1B,IAAuBjp1B,EAAK7Q,IAAA,CACjCm51B,aACAY,cAAeH,EAAkBn9tB,OACjC28tB,UACAY,WAAYH,EAAep9tB,QACxBiztB,EAAU,CACbK,eACAsJ,eACAY,yBAAyBX,IAGrBxM,GACAqM,EAAW3onB,SAAW2onB,EAAWvnzB,SAC/BwnzB,EAAQ5onB,SAAW4onB,EAAQxnzB,QAE7BunzB,EAAWvnzB,SAAWwnzB,EAAQxnzB,QAC9BsozB,IAAmBN,EAAmBC,MAC1C,IAIAhI,EAA8C,GAqFlD,OApFAvE,EAAiBvt1B,SAAQ,CAACq9G,EAAGp3G,KAM3B,GACEu4mB,IACCpwlB,EAAQhwB,MAAMsc,GAAMA,EAAEqp0B,MAAMj0zB,KAAOutF,EAAEwzuB,WACtCpD,EAAgBr90B,IAAInK,GAEpB,OAGF,IAAIm01B,EAAiBhW,IAAYiL,EAAahyuB,EAAE52C,KAAM69wB,GAMtD,IAAK8V,EASH,YARAtI,EAAqB/r1B,KAAK,CACxBE,MACA4q1B,QAASxzuB,EAAEwzuB,QACXpqxB,KAAM42C,EAAE52C,KACRr4C,QAAS,KACTtd,MAAO,KACPsh0B,WAAY,OAQhB,IAAI2b,EAAUht1B,EAAMwr1B,SAASl80B,IAAIpK,GAC7Bo01B,EAAe1J,IAAeyJ,EAAgB/8uB,EAAE52C,MAEhD6zxB,GAAmB,EACnBhN,EAAiBl90B,IAAInK,GAEvBq01B,GAAmB,EACVrN,EAAsB780B,IAAInK,IAEnCgn1B,EAAsBr/sB,OAAO3nI,GAC7Bq01B,GAAmB,GASnBA,EAPAvM,GACkB,SAAlBA,EAAQht1B,YACS/D,IAAjB+w1B,EAAQlqzB,KAKWkpzB,EAIAgN,IAAuBM,EAAYp61B,IAAA,CACpDm51B,aACAY,cAAej51B,EAAMqtB,QAAQrtB,EAAMqtB,QAAQrxB,OAAS,GAAG2/H,OACvD28tB,UACAY,WAAY7r0B,EAAQA,EAAQrxB,OAAS,GAAG2/H,QACrCiztB,EAAU,CACbK,eACAsJ,eACAY,yBAAyBX,GAErBxM,KAIJuN,GACFxI,EAAqB/r1B,KAAK,CACxBE,MACA4q1B,QAASxzuB,EAAEwzuB,QACXpqxB,KAAM42C,EAAE52C,KACRr4C,QAASgs0B,EACTtp1B,MAAOup1B,EACPjoB,WAAY,IAAIC,iBAEnB,IAGI,CAACmnB,EAAmB1H,EAC7B,CAqBA,SAASqI,IACPT,EACA5o1B,GAEA,IAAIyp1B,EAAcb,EAAa3V,MAAMt9wB,KACrC,OAEEizxB,EAAajpnB,WAAa3/N,EAAM2/N,UAGhB,MAAf8pnB,GACCA,EAAY32wB,SAAS,MACrB81wB,EAAah9tB,OAAO,OAAS5rH,EAAM4rH,OAAO,IAEhD,CAEA,SAASq9tB,IACPS,EACAroyB,GAEA,GAAIqoyB,EAAYzW,MAAMuW,iBAAkB,CACtC,IAAIG,EAAcD,EAAYzW,MAAMuW,iBAAiBnoyB,GACrD,GAA2B,mBAAhBsoyB,EACT,OAAOA,CAEV,CAED,OAAOtoyB,EAAI+nyB,uBACb,CAMAtkuB,eAAe4/tB,IACbhL,EACA/jxB,EACAr4C,EACAu1zB,EACAG,EACAF,EACA8W,EAIAxgtB,GAEA,IAAIj0I,EAAM,CAACwgE,KAASr4C,EAAQxuB,KAAK8a,GAAMA,EAAEqp0B,MAAMj0zB,MAAKnwB,KAAK,KACzD,IACE,IAAI6xJ,EAAUkpsB,EAAqBrq1B,IAAIpK,GAClCurJ,IACHA,EAAUg5rB,EAA4B,CACpC/jxB,OACAr4C,UACAgF,MAAOA,CAACy9zB,EAASpx1B,KACVy6I,EAAOszD,SACVsqpB,IACEjH,EACApx1B,EACAkk1B,EACAG,EACAF,EAEH,IAGL8W,EAAqBrn1B,IAAIpN,EAAKurJ,IAG5BA,IA64BgB,kBADQ9oI,EA54BoB8oI,IA64BT,MAAP9oI,GAAe,SAAUA,UA54BjD8oI,CAET,SACCkpsB,EAAqB9stB,OAAO3nI,EAC7B,CAu4BH,IAAgCyiB,CAt4BhC,CAEA,SAASov0B,IACPjH,EACApx1B,EACA4v1B,EACAvL,EACAF,GAEA,GAAIiN,EAAS,KAAA8J,EACX,IAAI5W,EAAQD,EAAS+M,GACrB5O,IACE8B,EACoD,oDAAA8M,GAEtD,IAAI+J,EAAelX,IACjBjk1B,EACAmk1B,EACA,CAACiN,EAAS,QAASn50B,QAAqB,OAAdij1B,EAAA5W,EAAMtk1B,eAAQ,EAAdk71B,EAAgB591B,SAAU,MACpD+m1B,GAEEC,EAAMtk1B,SACRsk1B,EAAMtk1B,SAASsG,QAAQ601B,GAEvB7W,EAAMtk1B,SAAWm71B,CAEpB,KAAM,CACL,IAAIA,EAAelX,IACjBjk1B,EACAmk1B,EACA,CAAC,QAASls0B,OAAO230B,EAAYty1B,QAAU,MACvC+m1B,GAEFuL,EAAYtp1B,QAAQ601B,EACrB,CACH,CAiFAhluB,eAAe20tB,IAAmBvq0B,GAEP,IAFQ,QACjCoO,GACyBpO,EACrB6x0B,EAAgBzj0B,EAAQruB,QAAQ2a,GAAMA,EAAEmg1B,aAE5C,aADoBvwzB,QAAQ5gB,IAAImo0B,EAAcjy1B,KAAK8a,GAAMA,EAAEu2C,cAC5CrlD,QACb,CAACk2S,EAAKt9R,EAAQ1e,IACZ1M,OAAOgkD,OAAO0kQ,EAAK,CAAE,CAAC+viB,EAAc/r1B,GAAGi+0B,MAAMj0zB,IAAKtL,KACpD,CAAC,EAEL,CAEAoxG,eAAe89tB,IACbrJ,EACA9j1B,EACAxF,EACA84K,EACAg4qB,EACAzj0B,EACAol0B,EACA1P,EACAF,EACAkX,GAEA,IAAIC,EAA+B3s0B,EAAQxuB,KAAK8a,GAC9CA,EAAEqp0B,MAAM36qB,KAnGZxzC,eACEmutB,EACAH,EACAE,GAEA,IAAKC,EAAM36qB,KACT,OAGF,IAAI4xrB,QAAkBjX,EAAM36qB,OAK5B,IAAK26qB,EAAM36qB,KACT,OAGF,IAAI6xrB,EAAgBnX,EAASC,EAAMj0zB,IACnCmyzB,IAAUgZ,EAAe,8BAUzB,IAAIC,EAAoC,CAAC,EACzC,IAAK,IAAIC,KAAqBH,EAAW,CACvC,IAGII,OACmBp+1B,IAHrBi+1B,EAAcE,IAMQ,qBAAtBA,EAEF96tB,KACG+6tB,EACD,UAAUH,EAAcnr0B,GAAE,4BAA4Bqr0B,EAAtD,yGAE8BA,EAAiB,sBAI9CC,GACA3X,IAAmBrz0B,IAAI+q1B,KAExBD,EAAaC,GACXH,EAAUG,GAEf,CAID/h2B,OAAOgkD,OAAO69yB,EAAeC,GAK7B9h2B,OAAOgkD,OAAO69yB,EAAah71B,IAKtB,GAAA2j1B,EAAmBqX,GAAc,CACpC7xrB,UAAMpsK,IAEV,CA6BQq+1B,CAAoB3g1B,EAAEqp0B,MAAOH,EAAoBE,QACjD9m1B,IAGFs+1B,EAAYlt0B,EAAQxuB,KAAI,CAACkR,EAAOhL,KAClC,IAAIy11B,EAAmBR,EAA6Bj11B,GAChD+01B,EAAahJ,EAAczz1B,MAAMsc,GAAMA,EAAEqp0B,MAAMj0zB,KAAOhf,EAAMiz0B,MAAMj0zB,KAyBtE,OAAA7vB,IAAA,GACK6Q,EAAK,CACR+p1B,aACA5pyB,QAvB0C2kE,UAExC4luB,GACmB,QAAnB3hrB,EAAQjmJ,SACP9iB,EAAMiz0B,MAAM36qB,MAAQt4J,EAAMiz0B,MAAM6H,UAEjCiP,GAAa,GAERA,EA2CbjluB,eACErvH,EACAszK,EACA/oK,EACAyq1B,EACAC,EACAC,GAEA,IAAIj30B,EACAk30B,EAEAC,EACF/91B,IAGA,IAAI4jF,EAGAo6wB,EAAe,IAAItxzB,SAA4B,CAACphB,EAAG+zF,IAAOz7B,EAASy7B,IACvEy+uB,EAAWA,IAAMl6wB,IACjBq4F,EAAQ3/B,OAAOjlH,iBAAiB,QAASym0B,GAEzC,IAAIG,EAAiBC,GACI,oBAAZl+1B,EACF0sC,QAAQk3C,OACb,IAAI96D,MACF,oEACMngB,EAAI,eAAeuK,EAAMiz0B,MAAMj0zB,GAAE,MAItClyB,EACL,CACEi8K,UACAn9C,OAAQ5rH,EAAM4rH,OACd9nH,QAAS6m1B,WAECz+1B,IAAR8+1B,EAAoB,CAACA,GAAO,IAIhCC,EAA8C,WAChD,IAIE,MAAO,CAAEx11B,KAAM,OAAQie,aAHNg30B,EACbA,GAAiBM,GAAiBD,EAAcC,KAChDD,MAEJ,MAAO7h2B,KACP,MAAO,CAAEuM,KAAM,QAASie,OAAQxqB,IACjC,CACF,EATiD,GAWlD,OAAOswC,QAAQ0xzB,KAAK,CAACD,EAAgBH,GAAc,EAGrD,IACE,IAAIh+1B,EAAUkT,EAAMiz0B,MAAMx90B,GAG1B,GAAIg11B,EACF,GAAI391B,EAAS,CAEX,IAAIq+1B,GACC1g2B,SAAe+uC,QAAQ5gB,IAAI,CAI9Biy0B,EAAW/91B,GAASm4H,OAAO/7H,IACzBii2B,EAAeji2B,CAAC,IAElBuh2B,IAEF,QAAqBv+1B,IAAjBi/1B,EACF,MAAMA,EAERz30B,EAASjpB,CACV,KAAM,CAKL,SAHMgg2B,EAEN391B,EAAUkT,EAAMiz0B,MAAMx90B,IAClB3I,EAKG,IAAa,WAAT2I,EAAmB,CAC5B,IAAIqiH,EAAM,IAAIuK,IAAI0mD,EAAQjxD,KACtB6nH,EAAW7nH,EAAI6nH,SAAW7nH,EAAI/2E,OAClC,MAAM45yB,IAAuB,IAAK,CAChC73zB,OAAQimJ,EAAQjmJ,OAChB68M,WACAognB,QAAS//0B,EAAMiz0B,MAAMj0zB,IAExB,CAGC,MAAO,CAAEvpB,KAAMi90B,IAAW3/yB,KAAMrf,YAAQxnB,EACzC,CAbCwnB,QAAem30B,EAAW/91B,EAc7B,KACI,KAAKA,EAAS,CACnB,IAAIgrH,EAAM,IAAIuK,IAAI0mD,EAAQjxD,KAE1B,MAAM6iuB,IAAuB,IAAK,CAChCh7mB,SAFa7nH,EAAI6nH,SAAW7nH,EAAI/2E,QAInC,CACCrtB,QAAem30B,EAAW/91B,EAC3B,CAEDqk1B,SACoBjl1B,IAAlBwnB,EAAOA,OACP,gBAAwB,WAATje,EAAoB,YAAc,YAAjD,eACMuK,EAAMiz0B,MAAMj0zB,GAA8C,4CAAAvpB,EADhE,gDAIF,MAAOvM,KAIP,MAAO,CAAEuM,KAAMi90B,IAAW5y0B,MAAO4T,OAAQxqB,IAC1C,SACK0h2B,GACF7hrB,EAAQ3/B,OAAOnlH,oBAAoB,QAAS2m0B,EAE/C,CAED,OAAOl30B,CACT,CA1KU030B,CACE311B,EACAszK,EACA/oK,EACAyq1B,EACAC,EACAV,GAEFxwzB,QAAQ2mB,QAAQ,CAAE1qD,KAAMi90B,IAAW3/yB,KAAMrf,YAAQxnB,MAM9C,IAOP66a,QAAgBwya,EAAiB,CACnCj8zB,QAASkt0B,EACTzhrB,UACAn9C,OAAQtuG,EAAQ,GAAGsuG,OACnB82tB,aACA5+0B,QAASkm1B,IAMX,UACQxwzB,QAAQ5gB,IAAIqx0B,GAClB,MAAO/g2B,KACP,CAGF,OAAO69a,CACT,CAqIAjiT,eAAei+tB,IACbsI,GAEA,IAAI,OAAE330B,EAAM,KAAEje,GAAS411B,EAEvB,GAAI13B,IAAWjgzB,GAAS,CACtB,IAAIqf,EAEJ,IACE,IAAIw6S,EAAc75T,EAAOsqN,QAAQz+N,IAAI,gBAKjCwzB,EAFAw6S,GAAe,wBAAwBv7T,KAAKu7T,GAC3B,MAAf75T,EAAOpX,KACF,WAEMoX,EAAOitG,aAGTjtG,EAAOoV,OAEtB,MAAO5/B,KACP,MAAO,CAAEuM,KAAMi90B,IAAW5y0B,MAAOA,MAAO5W,IACzC,CAED,OAAIuM,IAASi90B,IAAW5y0B,MACf,CACLrK,KAAMi90B,IAAW5y0B,MACjBA,MAAO,IAAI830B,IAAkBlk0B,EAAO4rH,OAAQ5rH,EAAO+6T,WAAY17S,GAC/D8rc,WAAYnrd,EAAO4rH,OACnB0+F,QAAStqN,EAAOsqN,SAIb,CACLvoO,KAAMi90B,IAAW3/yB,KACjBA,OACA8rc,WAAYnrd,EAAO4rH,OACnB0+F,QAAStqN,EAAOsqN,QAEnB,CAED,GAAIvoO,IAASi90B,IAAW5y0B,MAAO,CAC7B,GAAIwr1B,IAAuB530B,GAAS,KAAA630B,EACAC,EAAlC,GAAI930B,EAAOqf,gBAAgBnd,MACzB,MAAO,CACLngB,KAAMi90B,IAAW5y0B,MACjBA,MAAO4T,EAAOqf,KACd8rc,WAAuB,OAAb2sX,EAAE930B,EAAOsM,WAAI,EAAXwr0B,EAAalstB,QAK7B5rH,EAAS,IAAIkk0B,KACA,OAAX2T,EAAA730B,EAAOsM,WAAI,EAAXur0B,EAAajstB,SAAU,SACvBpzI,EACAwnB,EAAOqf,KAEV,CACD,MAAO,CACLt9B,KAAMi90B,IAAW5y0B,MACjBA,MAAO4T,EACPmrd,WAAYi5W,IAAqBpk0B,GAAUA,EAAO4rH,YAASpzI,EAE9D,CAE2B,IAAAu/1B,EAAAC,EASQC,EAAAC,EATpC,OAmiBI,SAAyBnh2B,GAC7B,IAAIq6nB,EAAyBr6nB,EAC7B,OACEq6nB,GACoB,kBAAbA,GACkB,kBAAlBA,EAAS/xlB,MACc,oBAAvB+xlB,EAASo8M,WACW,oBAApBp8M,EAASn7iB,QACgB,oBAAzBm7iB,EAAS+mO,WAEpB,CA7iBMC,CAAep40B,GACV,CACLje,KAAMi90B,IAAW5tN,SACjBo9N,aAAcxu0B,EACdmrd,WAAuB,OAAb4sX,EAAE/30B,EAAOsM,WAAI,EAAXyr0B,EAAanstB,OACzB0+F,SAAS,OAAA0tnB,EAAAh40B,EAAOsM,WAAP,EAAA0r0B,EAAa1tnB,UAAW,IAAIM,QAAQ5qN,EAAOsM,KAAKg+M,UAIzDstnB,IAAuB530B,GAClB,CACLje,KAAMi90B,IAAW3/yB,KACjBA,KAAMrf,EAAOqf,KACb8rc,WAAuB,OAAb8sX,EAAEj40B,EAAOsM,WAAI,EAAX2r0B,EAAarstB,OACzB0+F,QAAoB,OAAX4tnB,EAAAl40B,EAAOsM,OAAP4r0B,EAAa5tnB,QAClB,IAAIM,QAAQ5qN,EAAOsM,KAAKg+M,cACxB9xO,GAID,CAAEuJ,KAAMi90B,IAAW3/yB,KAAMA,KAAMrf,EACxC,CAGA,SAASov0B,IACPz+pB,EACAtb,EACAg3qB,EACAzi0B,EACAk2zB,EACAkD,GAEA,IAAIl2zB,EAAW6jK,EAAS25C,QAAQz+N,IAAI,YAMpC,GALA4x0B,IACE3wzB,EACA,+EAGGo4zB,IAAmB5m0B,KAAKwO,GAAW,CACtC,IAAIur0B,EAAiBzu0B,EAAQ7jB,MAC3B,EACA6jB,EAAQvL,WAAWnI,GAAMA,EAAEqp0B,MAAMj0zB,KAAO+g0B,IAAW,GAErDv/zB,EAAWil0B,IACT,IAAIpjuB,IAAI0mD,EAAQjxD,KAChBi0uB,EACAvY,GACA,EACAhzzB,EACAk2zB,GAEFrypB,EAAS25C,QAAQz7N,IAAI,WAAYie,EAClC,CAED,OAAO6jK,CACT,CAEA,SAAS47pB,IACPz/zB,EACA8n0B,EACA9U,GAEA,GAAIoF,IAAmB5m0B,KAAKwO,GAAW,CAErC,IAAIwr0B,EAAqBxr0B,EACrBs3F,EAAMk0uB,EAAmBh2wB,WAAW,MACpC,IAAIqsC,IAAIimuB,EAAW/luB,SAAWypuB,GAC9B,IAAI3puB,IAAI2puB,GACRC,EAA0D,MAAzCtY,IAAc77tB,EAAI6nH,SAAU6zmB,GACjD,GAAI17tB,EAAIgK,SAAWwmuB,EAAWxmuB,QAAUmquB,EACtC,OAAOn0uB,EAAI6nH,SAAW7nH,EAAI/2E,OAAS+2E,EAAIhE,IAE1C,CACD,OAAOtzF,CACT,CAKA,SAASu+zB,IACPt/mB,EACAj/M,EACA4oH,EACAy1sB,GAEA,IAAI/muB,EAAM2nH,EAAQ0ymB,UAAU6V,IAAkBxn0B,IAAW7gB,WACrDqgB,EAAoB,CAAEopH,UAE1B,GAAIy1sB,GAAclB,IAAiBkB,EAAWvG,YAAa,CACzD,IAAI,WAAEA,EAAU,YAAEE,GAAgBqG,EAIlC7+zB,EAAK8C,OAASw1zB,EAAW1t0B,cAEL,qBAAhB4t0B,GACFx4zB,EAAKg+M,QAAU,IAAIM,QAAQ,CAAE,eAAgBk6mB,IAC7Cx4zB,EAAK1jB,KAAOg9B,KAAK+mF,UAAUw+tB,EAAWl+tB,OACb,eAAhB63tB,EAETx4zB,EAAK1jB,KAAOui1B,EAAW/1zB,KAEP,sCAAhB0vzB,GACAqG,EAAWz8W,SAGXpid,EAAK1jB,KAAO2r1B,IAA8BpJ,EAAWz8W,UAGrDpid,EAAK1jB,KAAOui1B,EAAWz8W,QAE1B,CAED,OAAO,IAAI6/V,QAAQnqtB,EAAK93F,EAC1B,CAEA,SAASio0B,IAA8B7lX,GACrC,IAAIylX,EAAe,IAAI72B,gBAEvB,IAAK,IAAK77zB,EAAK1K,KAAU23e,EAASjje,UAEhC0o1B,EAAahsuB,OAAO1mH,EAAsB,kBAAV1K,EAAqBA,EAAQA,EAAM8C,MAGrE,OAAOs61B,CACT,CAEA,SAASK,IACPL,GAEA,IAAIzlX,EAAW,IAAIC,SACnB,IAAK,IAAKlte,EAAK1K,KAAUo91B,EAAa1o1B,UACpCije,EAASvmX,OAAO1mH,EAAK1K,GAEvB,OAAO23e,CACT,CAEA,SAAS8pX,IACP5u0B,EACAypZ,EACA+3a,EACAlC,EACAuP,GAQA,IAEIttX,EAFAk8W,EAAwC,CAAC,EACzC5kyB,EAAuC,KAEvCi2yB,GAAa,EACbC,EAAyC,CAAC,EAC1CrN,EACFF,GAAuBsB,IAActB,EAAoB,IACrDA,EAAoB,GAAGh/0B,WACvB5T,EAyFN,OAtFAoxB,EAAQpuB,SAAS8Q,IACf,KAAMA,EAAMiz0B,MAAMj0zB,MAAM+nZ,GACtB,OAEF,IAAI/nZ,EAAKhf,EAAMiz0B,MAAMj0zB,GACjBtL,EAASqzZ,EAAQ/nZ,GAKrB,GAJAmyzB,KACG6O,IAAiBts0B,GAClB,uDAEE0s0B,IAAc1s0B,GAAS,CACzB,IAAI5T,EAAQ4T,EAAO5T,MAWnB,QAPqB5T,IAAjB8y1B,IACFl/0B,EAAQk/0B,EACRA,OAAe9y1B,GAGjBiqD,EAASA,GAAU,CAAC,EAEhBg2yB,EACFh2yB,EAAOn3B,GAAMlf,MACR,CAIL,IAAIug1B,EAAgBpB,IAAoB3h0B,EAAS0B,GACX,MAAlCm3B,EAAOkqyB,EAAcpN,MAAMj0zB,MAC7Bm3B,EAAOkqyB,EAAcpN,MAAMj0zB,IAAMlf,EAEpC,CAGDi70B,EAAW/7zB,QAAM9yB,EAIZkg2B,IACHA,GAAa,EACbvtX,EAAai5W,IAAqBpk0B,EAAO5T,OACrC4T,EAAO5T,MAAMw/H,OACb,KAEF5rH,EAAOsqN,UACTqunB,EAAcrt0B,GAAMtL,EAAOsqN,QAE9B,MACKminB,IAAiBzs0B,IACnBkp0B,EAAgBr60B,IAAIyc,EAAItL,EAAOwu0B,cAC/BnH,EAAW/7zB,GAAMtL,EAAOwu0B,aAAanvzB,KAId,MAArBrf,EAAOmrd,YACe,MAAtBnrd,EAAOmrd,YACNutX,IAEDvtX,EAAanrd,EAAOmrd,YAElBnrd,EAAOsqN,UACTqunB,EAAcrt0B,GAAMtL,EAAOsqN,WAG7B+8mB,EAAW/7zB,GAAMtL,EAAOqf,KAGpBrf,EAAOmrd,YAAoC,MAAtBnrd,EAAOmrd,aAAuButX,IACrDvtX,EAAanrd,EAAOmrd,YAElBnrd,EAAOsqN,UACTqunB,EAAcrt0B,GAAMtL,EAAOsqN,SAGhC,SAMkB9xO,IAAjB8y1B,GAA8BF,IAChC3oyB,EAAS,CAAE,CAAC2oyB,EAAoB,IAAKE,GACrCjE,EAAW+D,EAAoB,SAAM5y1B,GAGhC,CACL6u1B,aACA5kyB,SACA0ob,WAAYA,GAAc,IAC1BwtX,gBAEJ,CAEA,SAASpK,IACPhy1B,EACAqtB,EACAyj0B,EACAh6a,EACA+3a,EACAkC,EACAa,EACAjF,GAKA,IAAI,WAAE7B,EAAU,OAAE5kyB,GAAW+1yB,IAC3B5u0B,EACAypZ,EACA+3a,EACAlC,GACA,GAoCF,OAhCAoE,EAAqB9x1B,SAAS+pJ,IAC5B,IAAI,IAAE9jJ,EAAG,MAAE6K,EAAK,WAAEsh0B,GAAerorB,EAC7BvlI,EAASmu0B,EAAe1s1B,GAI5B,GAHAg80B,IAAUz9zB,EAAQ,8CAGd4tzB,IAAcA,EAAWl4rB,OAAOszD,QAG7B,GAAI0jpB,IAAc1s0B,GAAS,CAChC,IAAI2s0B,EAAgBpB,IAAoBhv1B,EAAMqtB,QAAc,MAALtd,OAAK,EAALA,EAAOiz0B,MAAMj0zB,IAC9Dm3B,GAAUA,EAAOkqyB,EAAcpN,MAAMj0zB,MACzCm3B,EAAMhnD,IAAA,GACDgnD,EAAM,CACT,CAACkqyB,EAAcpN,MAAMj0zB,IAAKtL,EAAO5T,SAGrC7P,EAAMwr1B,SAAS3+sB,OAAO3nI,EACvB,MAAM,GAAI6q1B,IAAiBts0B,GAG1By9zB,KAAU,EAAO,gDACZ,GAAIgP,IAAiBzs0B,GAG1By9zB,KAAU,EAAO,uCACZ,CACL,IAAIuS,EAAcC,IAAejw0B,EAAOqf,MACxC9iC,EAAMwr1B,SAASl50B,IAAIpN,EAAKuu1B,EACzB,KAGI,CAAE3I,aAAY5kyB,SACvB,CAEA,SAAS0nyB,IACP9C,EACAuR,EACAhv0B,EACA64B,GAEA,IAAIo2yB,EAAgBp91B,IAAA,GAAQm91B,GAC5B,IAAK,IAAIts1B,KAASsd,EAAS,CACzB,IAAI0B,EAAKhf,EAAMiz0B,MAAMj0zB,GAerB,GAdIst0B,EAAc3y1B,eAAeqlB,QACL9yB,IAAtBog2B,EAActt0B,KAChBut0B,EAAiBvt0B,GAAMst0B,EAActt0B,SAMX9yB,IAAnB6u1B,EAAW/7zB,IAAqBhf,EAAMiz0B,MAAM6H,SAGrDyR,EAAiBvt0B,GAAM+7zB,EAAW/7zB,IAGhCm3B,GAAUA,EAAOx8C,eAAeqlB,GAElC,KAEH,CACD,OAAOut0B,CACT,CAEA,SAASlL,IACPvC,GAEA,OAAKA,EAGEsB,IAActB,EAAoB,IACrC,CAEE55Z,WAAY,CAAC,GAEf,CACEA,WAAY,CACV,CAAC45Z,EAAoB,IAAKA,EAAoB,GAAG/rzB,OAThD,CAAC,CAYZ,CAKA,SAASkszB,IACP3h0B,EACAyi0B,GAKA,OAHsBA,EAClBzi0B,EAAQ7jB,MAAM,EAAG6jB,EAAQvL,WAAWnI,GAAMA,EAAEqp0B,MAAMj0zB,KAAO+g0B,IAAW,GACpE,IAAIzi0B,IAEUjoB,UAAUwtB,MAAMjZ,IAAmC,IAA7BA,EAAEqp0B,MAAM6F,oBAC9Cx7zB,EAAQ,EAEZ,CAEA,SAASs9zB,IAAuB/H,GAK9B,IAAII,EACgB,IAAlBJ,EAAO5m1B,OACH4m1B,EAAO,GACPA,EAAOhwzB,MAAMspF,GAAMA,EAAE72F,QAAU62F,EAAEx2C,MAAmB,MAAXw2C,EAAEx2C,QAAiB,CAC1D32C,GAAI,wBAGZ,MAAO,CACL1B,QAAS,CACP,CACEsuG,OAAQ,CAAC,EACT+zG,SAAU,GACVo2mB,aAAc,GACd9C,UAGJA,QAEJ,CAEA,SAAS0H,IACPr7sB,EAAckttB,GAaR,IAZN,SACE7snB,EAAQ,QACRognB,EAAO,OACPj9zB,EAAM,KACNrtB,EAAI,QACJsK,cAOE,CAAC,EAACys1B,EAEF/9gB,EAAa,uBACb1rM,EAAe,kCAoCnB,OAlCe,MAAXzD,GACFmvM,EAAa,cACA,oBAATh5U,EACFstI,EACE,wBAAwB48F,EAAxB,qFACwC5/N,EACjC+iB,GAAU68M,GAAYognB,EAC/Bh9sB,EACE,cAAcjgH,EAAM,gBAAgB68M,EAApC,+CAC2CognB,EAD3C,+CAGgB,iBAATtq1B,EACTstI,EAAe,sCACG,iBAATttI,IACTstI,EAAe,qCAEG,MAAXzD,GACTmvM,EAAa,YACb1rM,EAAyB,UAAAg9sB,EAAgC,yBAAApgnB,EAAW,KAChD,MAAXrgG,GACTmvM,EAAa,YACb1rM,EAAe,yBAAyB48F,EAAW,KAC/B,MAAXrgG,IACTmvM,EAAa,qBACT3rT,GAAU68M,GAAYognB,EACxBh9sB,EACE,cAAcjgH,EAAOlY,cAAa,gBAAgB+0N,EAAlD,gDAC4CognB,EAD5C,+CAGOj9zB,IACTigH,EAAe,2BAA2BjgH,EAAOlY,cAAgB,MAI9D,IAAIgt0B,IACTt4sB,GAAU,IACVmvM,EACA,IAAI74T,MAAMmtH,IACV,EAEJ,CAGA,SAASi/sB,IACPj7a,GAEA,IAAI5na,EAAU7W,OAAO6W,QAAQ4na,GAC7B,IAAK,IAAI/xa,EAAImK,EAAQlT,OAAS,EAAG+I,GAAK,EAAGA,IAAK,CAC5C,IAAKG,EAAKue,GAAUvU,EAAQnK,GAC5B,GAAIgr1B,IAAiBts0B,GACnB,MAAO,CAAEve,MAAKue,SAEjB,CACH,CAEA,SAASs00B,IAAkBryxB,GAEzB,OAAO67wB,IAAUri1B,IAAC,CAAC,EADc,kBAATwmE,EAAoB47wB,IAAU57wB,GAAQA,EAC3B,CAAAm+C,KAAM,KAC3C,CAqCA,SAAS+uuB,IAAmCnv0B,GAC1C,OACEigzB,IAAWjgzB,EAAOA,SAAWyk0B,IAAoB740B,IAAIoU,EAAOA,OAAO4rH,OAEvE,CAEA,SAAS6gtB,IAAiBzs0B,GACxB,OAAOA,EAAOje,OAASi90B,IAAW5tN,QACpC,CAEA,SAASs7N,IAAc1s0B,GACrB,OAAOA,EAAOje,OAASi90B,IAAW5y0B,KACpC,CAEA,SAASkg1B,IAAiBts0B,GACxB,OAAQA,GAAUA,EAAOje,QAAUi90B,IAAWqP,QAChD,CAEM,SAAUuJ,IACd7g2B,GAEA,MACmB,kBAAVA,GACE,MAATA,GACA,SAAUA,GACV,SAAUA,GACV,SAAUA,GACK,yBAAfA,EAAMgL,IAEV,CAcA,SAASk+zB,IAAWlp0B,GAClB,OACW,MAATA,GACwB,kBAAjBA,EAAM60I,QACe,kBAArB70I,EAAMgkV,YACY,kBAAlBhkV,EAAMuzO,SACS,qBAAfvzO,EAAM6R,IAEjB,CAYA,SAASsr1B,IAAc9k0B,GACrB,OAAOo1zB,IAAoB540B,IAAIwjB,EAAOvZ,cACxC,CAEA,SAASo00B,IACP76zB,GAEA,OAAOk1zB,IAAqB140B,IAAIwjB,EAAOvZ,cACzC,CAEAu7G,eAAes+tB,IACb9l0B,EACAypZ,EACA39R,EACA65sB,EACA0F,GAEA,IAAIxp1B,EAAU7W,OAAO6W,QAAQ4na,GAC7B,IAAK,IAAIzxZ,EAAQ,EAAGA,EAAQnW,EAAQlT,OAAQqpB,IAAS,CACnD,IAAKyq0B,EAASrs0B,GAAUvU,EAAQmW,GAC5BtV,EAAQsd,EAAQuF,MAAMjZ,IAAO,MAADA,OAAC,EAADA,EAAGqp0B,MAAMj0zB,MAAO+g0B,IAIhD,IAAK//0B,EACH,SAGF,IAAI4o1B,EAAe3F,EAAepg0B,MAC/BjZ,GAAMA,EAAEqp0B,MAAMj0zB,KAAOhf,EAAOiz0B,MAAMj0zB,KAEjCyt0B,EACc,MAAhB7D,IACCS,IAAmBT,EAAc5o1B,SAC2B9T,KAA5Dy81B,GAAqBA,EAAkB3o1B,EAAMiz0B,MAAMj0zB,KAElDmh0B,IAAiBzs0B,IAAW+40B,SAIxB9F,IAAoBjz0B,EAAQ01H,GAAQ,GAAOtlB,MAAMpwG,IACjDA,IACFqzZ,EAAQg5a,GAAWrs0B,EACpB,GAGN,CACH,CAEAoxG,eAAeu+tB,IACb/l0B,EACAypZ,EACAi6a,GAEA,IAAK,IAAI1r0B,EAAQ,EAAGA,EAAQ0r0B,EAAqB/01B,OAAQqpB,IAAS,CAChE,IAAI,IAAEngB,EAAG,QAAE4q1B,EAAO,WAAEze,GAAe0f,EAAqB1r0B,GACpD5B,EAASqzZ,EAAQ5xa,GACTmoB,EAAQuF,MAAMjZ,IAAO,MAADA,OAAC,EAADA,EAAGqp0B,MAAMj0zB,MAAO+g0B,MAQ5CI,IAAiBzs0B,KAInBy9zB,IACE7P,EACA,8EAEIqlB,IAAoBjz0B,EAAQ4tzB,EAAWl4rB,QAAQ,GAAMtlB,MACxDpwG,IACKA,IACFqzZ,EAAQ5xa,GAAOue,EAChB,KAIR,CACH,CAEAoxG,eAAe6huB,IACbjz0B,EACA01H,EACAm/D,GAGA,QAHM,IAANA,IAAAA,GAAS,UAEW70L,EAAOwu0B,aAAa2J,YAAYzitB,GACpD,CAIA,GAAIm/D,EACF,IACE,MAAO,CACL9yM,KAAMi90B,IAAW3/yB,KACjBA,KAAMrf,EAAOwu0B,aAAawK,eAE5B,MAAOxj2B,KAEP,MAAO,CACLuM,KAAMi90B,IAAW5y0B,MACjBA,MAAO5W,IAEV,CAGH,MAAO,CACLuM,KAAMi90B,IAAW3/yB,KACjBA,KAAMrf,EAAOwu0B,aAAanvzB,KAnB3B,CAqBH,CAEA,SAASy0zB,IAAmBzmzB,GAC1B,OAAO,IAAIiwxB,gBAAgBjwxB,GAAQ4rzB,OAAO,SAASr/1B,MAAM42B,GAAY,KAANA,GACjE,CAEA,SAAS27zB,IACPvi0B,EACAkD,GAEA,IAAIugB,EACkB,kBAAbvgB,EAAwB+wzB,IAAU/wzB,GAAUugB,OAASvgB,EAASugB,OACvE,GACEzjB,EAAQA,EAAQrxB,OAAS,GAAGgn1B,MAAM39zB,OAClCky0B,IAAmBzmzB,GAAU,IAG7B,OAAOzjB,EAAQA,EAAQrxB,OAAS,GAIlC,IAAI0q1B,EAAcH,IAA2Bl5zB,GAC7C,OAAOq5zB,EAAYA,EAAY1q1B,OAAS,EAC1C,CAEA,SAAS201B,IACPvF,GAEA,IAAI,WAAE/C,EAAU,WAAEC,EAAU,YAAEC,EAAW,KAAE1vzB,EAAI,SAAEs5c,EAAQ,KAAEzhX,GACzD06tB,EACF,GAAK/C,GAAeC,GAAeC,EAInC,OAAY,MAAR1vzB,EACK,CACLwvzB,aACAC,aACAC,cACAp2W,cAAUl2e,EACVy0H,UAAMz0H,EACN48B,QAEmB,MAAZs5c,EACF,CACLk2W,aACAC,aACAC,cACAp2W,WACAzhX,UAAMz0H,EACN48B,UAAM58B,QAEUA,IAATy0H,EACF,CACL23tB,aACAC,aACAC,cACAp2W,cAAUl2e,EACVy0H,OACA73F,UAAM58B,QAPH,CAUT,CAEA,SAASq01B,IACP//zB,EACAq+zB,GAEA,GAAIA,EAAY,CAWd,MAV8C,CAC5C5u1B,MAAO,UACPuwB,WACA83zB,WAAYuG,EAAWvG,WACvBC,WAAYsG,EAAWtG,WACvBC,YAAaqG,EAAWrG,YACxBp2W,SAAUy8W,EAAWz8W,SACrBzhX,KAAMk+tB,EAAWl+tB,KACjB73F,KAAM+1zB,EAAW/1zB,KAGpB,CAWC,MAV8C,CAC5C74B,MAAO,UACPuwB,WACA83zB,gBAAYps1B,EACZqs1B,gBAAYrs1B,EACZss1B,iBAAats1B,EACbk2e,cAAUl2e,EACVy0H,UAAMz0H,EACN48B,UAAM58B,EAIZ,CAmBA,SAASs11B,IACP3C,EACA9rzB,GAEA,GAAI8rzB,EAAY,CAWd,MAVwC,CACtC5u1B,MAAO,UACPqo1B,WAAYuG,EAAWvG,WACvBC,WAAYsG,EAAWtG,WACvBC,YAAaqG,EAAWrG,YACxBp2W,SAAUy8W,EAAWz8W,SACrBzhX,KAAMk+tB,EAAWl+tB,KACjB73F,KAAM+1zB,EAAW/1zB,KACjBiK,OAGH,CAWC,MAVwC,CACtC9iC,MAAO,UACPqo1B,gBAAYps1B,EACZqs1B,gBAAYrs1B,EACZss1B,iBAAats1B,EACbk2e,cAAUl2e,EACVy0H,UAAMz0H,EACN48B,UAAM58B,EACN6mC,OAIN,CAmBA,SAAS4wzB,IAAe5wzB,GAWtB,MAVqC,CACnC9iC,MAAO,OACPqo1B,gBAAYps1B,EACZqs1B,gBAAYrs1B,EACZss1B,iBAAats1B,EACbk2e,cAAUl2e,EACVy0H,UAAMz0H,EACN48B,UAAM58B,EACN6mC,OAGJ,2OC9sLO,MAAM65zB,IACXjrqB,GAAAA,cAAoD,MAK/C,MAAMkrqB,IAAyBlrqB,GAAAA,cAEpC,MA8CK,MAAMmrqB,IAAoBnrqB,GAAAA,cAC/B,MAYK,MAAMorqB,IAAkBprqB,GAAAA,cAC7B,YAaWqrqB,IAAerrqB,GAAAA,cAAwC,CAClEsrqB,OAAQ,KACR3v0B,QAAS,GACT4v0B,aAAa,IAOR,MAAMC,IAAoBxrqB,GAAAA,cAAyB,MClFnD,SAASyrqB,MACd,OAA4C,MAArCzrqB,GAAAA,WAAiBorqB,IAC1B,CAYO,SAASM,MAQd,OANED,OADFE,KAAU,GAOH3rqB,GAAAA,WAAiBorqB,KAAiBvs0B,QAC3C,CAkDA,SAASywR,IACPj0L,GAEe2kE,GAAAA,WAAiBmrqB,KAAmBS,QAKjD5rqB,GAAAA,gBAAsB3kE,EAE1B,CAQO,SAASwwuB,MACd,IAAI,YAAEN,GAAgBvrqB,GAAAA,WAAiBqrqB,KAGvC,OAAOE,EAq4BT,WACE,IAAI,OAAE7T,GAAWoU,IAAqBC,IAAeC,mBACjD3u0B,EAAK4u0B,IAAkBC,IAAoBF,mBAE3CG,EAAYnsqB,GAAAA,QAAa,GAsB7B,OArBAsvH,KAA0B,KACxB68iB,EAAUv7yB,SAAU,CAAI,IAGOovI,GAAAA,aAC/B,SAACv1L,EAAiBub,QAAwB,IAAxBA,IAAAA,EAA2B,CAAC,GAKvCmm1B,EAAUv7yB,UAEG,kBAAPnmD,EACTit1B,EAAOkM,SAASn51B,GAEhBit1B,EAAOkM,SAASn51B,EAAE+C,IAAA,CAAIu21B,YAAa1m0B,GAAOrX,IAE9C,GACA,CAAC0x0B,EAAQr6zB,GAIb,CAh6BuB+u0B,GAGvB,WAEIX,OADFE,KAAU,GAOV,IAAIU,EAAoBrsqB,GAAAA,WAAiBirqB,MACrC,SAAEpZ,EAAQ,OAAE5svB,EAAM,UAAE7lE,GAAc4gK,GAAAA,WAAiBmrqB,MACnD,QAAExv0B,GAAYqkK,GAAAA,WAAiBqrqB,MAC7BrtnB,SAAUo3mB,GAAqBsW,MAEjCY,EAAqB30zB,KAAK+mF,UAC5B6tuB,IAAoB5w0B,EAASspE,EAAO8vvB,uBAGlCoX,EAAYnsqB,GAAAA,QAAa,GAC7BsvH,KAA0B,KACxB68iB,EAAUv7yB,SAAU,CAAI,IAG1B,IAAIgzyB,EAA6B5jqB,GAAAA,aAC/B,SAACv1L,EAAiBub,GAKhB,QALwC,IAAxBA,IAAAA,EAA2B,CAAC,IAKvCmm1B,EAAUv7yB,QAAS,OAExB,GAAkB,kBAAPnmD,EAET,YADA20B,EAAU0xzB,GAAGrm1B,GAIf,IAAIupE,EAAOihxB,IACTxq1B,EACAktC,KAAKuL,MAAMopzB,GACXlX,EACqB,SAArBpv0B,EAAQ2rC,UASe,MAArB06yB,GAA0C,MAAbxa,IAC/B79wB,EAAKgqK,SACe,MAAlBhqK,EAAKgqK,SACD6zmB,EACAgB,IAAU,CAAChB,EAAU79wB,EAAKgqK,aAG/Bh4N,EAAQzO,QAAU6nB,EAAU7nB,QAAU6nB,EAAU9rB,MACjD0gE,EACAhuD,EAAQ1X,MACR0X,EAEJ,GACA,CACE6r0B,EACAzyzB,EACAkt0B,EACAlX,EACAiX,IAIJ,OAAOzI,CACT,CA1E6C4I,EAC7C,CA2EA,MAAMC,IAAgBzsqB,GAAAA,cAA6B,MAiB5C,SAAS0sqB,IAAUvq1B,GACxB,IAAImp1B,EAAStrqB,GAAAA,WAAiBqrqB,KAAcC,OAC5C,OAAIA,EAEAtrqB,GAAAA,cAACysqB,IAAc1s1B,SAAQ,CAACjX,MAAOqZ,GAAUmp1B,GAGtCA,CACT,CAQO,SAASqB,MAKd,IAAI,QAAEhx0B,GAAYqkK,GAAAA,WAAiBqrqB,KAC/BuB,EAAajx0B,EAAQA,EAAQrxB,OAAS,GAC1C,OAAOsi2B,EAAcA,EAAW3iuB,OAAiB,CAAC,CACpD,CAOO,SAAS4iuB,IACdpi2B,EAAMmX,GAEA,IADN,SAAE+vC,QAA8C,IAAA/vC,EAAG,CAAC,EAACA,GAEjD,OAAEqjF,GAAW+6F,GAAAA,WAAiBmrqB,MAC9B,QAAExv0B,GAAYqkK,GAAAA,WAAiBqrqB,MAC7BrtnB,SAAUo3mB,GAAqBsW,MACjCY,EAAqB30zB,KAAK+mF,UAC5B6tuB,IAAoB5w0B,EAASspE,EAAO8vvB,uBAGtC,OAAO/0pB,GAAAA,SACL,IACEi1pB,IACExq1B,EACAktC,KAAKuL,MAAMopzB,GACXlX,EACa,SAAbzjyB,IAEJ,CAAClnD,EAAI6h2B,EAAoBlX,EAAkBzjyB,GAE/C,CAkBO,SAASm7yB,IACd5b,EACAU,EACAmb,EACA9nwB,GAGEwmwB,OADFE,KAAU,GAOV,IAAI,UAAEvs0B,GAAc4gK,GAAAA,WAAiBmrqB,MAC/Bxv0B,QAASqx0B,GAAkBhtqB,GAAAA,WAAiBqrqB,KAC9CuB,EAAaI,EAAcA,EAAc1i2B,OAAS,GAClD2i2B,EAAeL,EAAaA,EAAW3iuB,OAAS,CAAC,EAEjDijuB,GADiBN,GAAaA,EAAW5unB,SACpB4unB,EAAaA,EAAWxY,aAAe,KAC9CwY,GAAcA,EAAWtb,MAqC3C,IAEIzyzB,EAFAsu0B,EAAsBzB,MAG1B,GAAI9Z,EAAa,KAAAwb,EACf,IAAIC,EACqB,kBAAhBzb,EAA2BhC,IAAUgC,GAAeA,EAGpC,MAAvBsb,IAC4B,OADFE,EACxBC,EAAkBrvnB,eAAQ,EAA1BovnB,EAA4B/4wB,WAAW64wB,KAF3CvB,KAAU,GASV9s0B,EAAWwu0B,CACb,MACExu0B,EAAWsu0B,EAGb,IAAInvnB,EAAWn/M,EAASm/M,UAAY,IAEhCk2mB,EAAoBl2mB,EACxB,GAA2B,MAAvBkvnB,EAA4B,CAe9B,IAAII,EAAiBJ,EAAmB311B,QAAQ,MAAO,IAAIsiB,MAAM,KAEjEq6zB,EAAoB,IADLl2mB,EAASzmO,QAAQ,MAAO,IAAIsiB,MAAM,KACd/hB,MAAMw11B,EAAehj2B,QAAQ4C,KAAK,IACvE,CAEA,IAAIyuB,EAAUg2zB,IAAYT,EAAQ,CAAElzmB,SAAUk2mB,IAmB9C,IAAIqZ,EAAkBC,IACpB7x0B,GACEA,EAAQxuB,KAAKkR,GACX1X,OAAOgkD,OAAO,CAAC,EAAGtsC,EAAO,CACvB4rH,OAAQtjI,OAAOgkD,OAAO,CAAC,EAAGsizB,EAAc5u1B,EAAM4rH,QAC9C+zG,SAAU60mB,IAAU,CAClBqa,EAEA9t0B,EAAUsxzB,eACNtxzB,EAAUsxzB,eAAery0B,EAAM2/N,UAAUA,SACzC3/N,EAAM2/N,WAEZo2mB,aACyB,MAAvB/10B,EAAM+10B,aACF8Y,EACAra,IAAU,CACRqa,EAEA9t0B,EAAUsxzB,eACNtxzB,EAAUsxzB,eAAery0B,EAAM+10B,cAAcp2mB,SAC7C3/N,EAAM+10B,mBAIxB4Y,EACAD,EACA9nwB,GAMF,OAAI2svB,GAAe2b,EAEfvtqB,GAAAA,cAACorqB,IAAgBrr1B,SAAQ,CACvBjX,MAAO,CACL+1B,SAAQrxB,IAAA,CACNwwO,SAAU,IACV5+L,OAAQ,GACR+yE,KAAM,GACN7jH,MAAO,KACPkF,IAAK,WACFqrB,GAEL4u0B,eAAgBne,IAAejnoB,MAGhCklpB,GAKAA,CACT,CAEA,SAASG,MACP,IAAIvv1B,EA0cC,WAAkC,IAAAwv1B,EACvC,IAAIxv1B,EAAQ6hL,GAAAA,WAAiBwrqB,KACzBl91B,EAAQs/1B,IAAmB1B,IAAoB2B,eAC/CzP,EAAU6N,IAAkBC,IAAoB2B,eAIpD,QAActj2B,IAAV4T,EACF,OAAOA,EAIT,OAAO,OAAPwv1B,EAAOr/1B,EAAMkmD,aAAN,EAAAm5yB,EAAevP,EACxB,CAvdc0P,GACR1v1B,EAAU+30B,IAAqBh40B,GAC5BA,EAAMw/H,OAAU,IAAAx/H,EAAM2uU,WACzB3uU,aAAiB8V,MACjB9V,EAAMC,QACNu5B,KAAK+mF,UAAUvgH,GACf+V,EAAQ/V,aAAiB8V,MAAQ9V,EAAM+V,MAAQ,KAC/C650B,EAAY,yBACZC,EAAY,CAAE9vuB,QAAS,SAAU4mW,gBAAiBipY,GAsBtD,OACE/tqB,GAAAA,cAAAA,GAAAA,SAAA,KACEA,GAAAA,cAAI,2CACJA,GAAAA,cAAA,MAAI3yL,MAAO,CAAEqwkB,UAAW,WAAat/jB,GACpC8V,EAAQ8rK,GAAAA,cAAA,OAAK3yL,MAAO2g2B,GAAY950B,GAAe,KAvBtC,KA2BhB,CAEA,MAAM+50B,IAAsBjuqB,GAAAA,cAAC0tqB,IAAqB,MAgB3C,MAAMQ,YAA4BluqB,GAAAA,UAIvC3iL,WAAAA,CAAY/W,GACV2zH,MAAM3zH,GACNY,KAAKoH,MAAQ,CACXuwB,SAAUv4B,EAAMu4B,SAChBg7zB,aAAcvz1B,EAAMuz1B,aACpB170B,MAAO7X,EAAM6X,MAEjB,CAEA,+BAAOknJ,CAAyBlnJ,GAC9B,MAAO,CAAEA,MAAOA,EAClB,CAEA,+BAAO87H,CACL3zI,EACAgI,GAUA,OACEA,EAAMuwB,WAAav4B,EAAMu4B,UACD,SAAvBvwB,EAAMur1B,cAAkD,SAAvBvz1B,EAAMuz1B,aAEjC,CACL170B,MAAO7X,EAAM6X,MACb0gB,SAAUv4B,EAAMu4B,SAChBg7zB,aAAcvz1B,EAAMuz1B,cAQjB,CACL170B,WAAuB5T,IAAhBjE,EAAM6X,MAAsB7X,EAAM6X,MAAQ7P,EAAM6P,MACvD0gB,SAAUvwB,EAAMuwB,SAChBg7zB,aAAcvz1B,EAAMuz1B,cAAgBvr1B,EAAMur1B,aAE9C,CAEAv0rB,iBAAAA,CAAkBnnJ,EAAYgw1B,GAC5B7v1B,QAAQH,MACN,wDACAA,EACAgw1B,EAEJ,CAEA7s1B,MAAAA,GACE,YAA4B/W,IAArBrD,KAAKoH,MAAM6P,MAChB6hL,GAAAA,cAACqrqB,IAAatr1B,SAAQ,CAACjX,MAAO5B,KAAKZ,MAAM8n2B,cACvCpuqB,GAAAA,cAACwrqB,IAAkBzr1B,SAAQ,CACzBjX,MAAO5B,KAAKoH,MAAM6P,MAClBnR,SAAU9F,KAAKZ,MAAMwrR,aAIzB5qR,KAAKZ,MAAM0G,QAEf,EASF,SAASqh2B,IAAapt1B,GAAwD,IAAvD,aAAEmt1B,EAAY,MAAE/v1B,EAAK,SAAErR,GAA8BiU,EACtEor1B,EAAoBrsqB,GAAAA,WAAiBirqB,KAazC,OAREoB,GACAA,EAAkBT,QAClBS,EAAkBrD,gBACjB3q1B,EAAMiz0B,MAAMgd,cAAgBjw1B,EAAMiz0B,MAAMid,iBAEzClC,EAAkBrD,cAAcwF,2BAA6Bnw1B,EAAMiz0B,MAAMj0zB,IAIzE2iK,GAAAA,cAACqrqB,IAAatr1B,SAAQ,CAACjX,MAAOsl2B,GAC3Bph2B,EAGP,CAEO,SAASwg2B,IACd7x0B,EACAqx0B,EACAD,EACA9nwB,GAC2B,IAAAwpwB,EAC3B,QAJ2B,IAA3BzB,IAAAA,EAA8B,SACc,IAA5CD,IAAAA,EAA+C,WACX,IAApC9nwB,IAAAA,EAAuC,MAExB,MAAXtpE,EAAiB,KAAA+y0B,EACnB,IAAK3B,EACH,OAAO,KAGT,GAAIA,EAAgBv4yB,OAGlB74B,EAAUox0B,EAAgBpx0B,YACrB,MACL,OAAA+y0B,EAAAzpwB,IAAAypwB,EAAQvW,qBACiB,IAAzB6U,EAAc1i2B,SACbyi2B,EAAgB7tnB,aACjB6tnB,EAAgBpx0B,QAAQrxB,OAAS,GAUjC,OAAO,KAFPqxB,EAAUox0B,EAAgBpx0B,OAG5B,CACF,CAEA,IAAI4x0B,EAAkB5x0B,EAGlB64B,EAAS,OAAHi6yB,EAAG1B,QAAA,EAAA0B,EAAiBj6yB,OAC9B,GAAc,MAAVA,EAAgB,CAClB,IAAIm6yB,EAAapB,EAAgBn90B,WAC9BnI,GAAMA,EAAEqp0B,MAAMj0zB,SAA+B9yB,KAAnB,MAANiqD,OAAM,EAANA,EAASvsC,EAAEqp0B,MAAMj0zB,OAGtCsx0B,GAAc,GADhBhD,KAAU,GAMV4B,EAAkBA,EAAgBz11B,MAChC,EACAhN,KAAKgmD,IAAIy8yB,EAAgBjj2B,OAAQqk2B,EAAa,GAElD,CAIA,IAAIC,GAAiB,EACjBC,GAAiB,EACrB,GAAI9B,GAAmB9nwB,GAAUA,EAAOkzvB,oBACtC,IAAK,IAAI9k1B,EAAI,EAAGA,EAAIk61B,EAAgBjj2B,OAAQ+I,IAAK,CAC/C,IAAIgL,EAAQkv1B,EAAgBl61B,GAM5B,IAJIgL,EAAMiz0B,MAAMwd,iBAAmBzw1B,EAAMiz0B,MAAMyd,0BAC7CF,EAAgBx71B,GAGdgL,EAAMiz0B,MAAMj0zB,GAAI,CAClB,IAAI,WAAE+7zB,EAAU,OAAE5kyB,GAAWu4yB,EACzBiC,EACF3w1B,EAAMiz0B,MAAM6H,aACmB5u1B,IAA/B6u1B,EAAW/60B,EAAMiz0B,MAAMj0zB,OACrBm3B,QAAqCjqD,IAA3BiqD,EAAOn2C,EAAMiz0B,MAAMj0zB,KACjC,GAAIhf,EAAMiz0B,MAAM36qB,MAAQq4rB,EAAkB,CAIxCJ,GAAiB,EAEfrB,EADEsB,GAAiB,EACDtB,EAAgBz11B,MAAM,EAAG+21B,EAAgB,GAEzC,CAACtB,EAAgB,IAErC,KACF,CACF,CACF,CAGF,OAAOA,EAAgB15wB,aAAY,CAACy3wB,EAAQjt1B,EAAOsV,KAEjD,IAAIxV,EACA8w1B,GAA8B,EAC9BX,EAAuC,KACvCS,EAAiD,KACjDhC,IACF5u1B,EAAQq2C,GAAUn2C,EAAMiz0B,MAAMj0zB,GAAKm3B,EAAOn2C,EAAMiz0B,MAAMj0zB,SAAM9yB,EAC5D+j2B,EAAejw1B,EAAMiz0B,MAAMgd,cAAgBL,IAEvCW,IACEC,EAAgB,GAAe,IAAVl70B,IAoVjC,SAAqBngB,EAAa05E,GAC3BA,GAASgixB,IAAc171B,KAC1B071B,IAAc171B,IAAO,EAGzB,CAxVU271B,CACE,kBACA,GAGFF,GAA8B,EAC9BF,EAAyB,MAChBF,IAAkBl70B,IAC3Bs70B,GAA8B,EAC9BF,EAAyB1w1B,EAAMiz0B,MAAMyd,wBAA0B,QAKrE,IAAIpz0B,EAAUqx0B,EAAc1s1B,OAAOit1B,EAAgBz11B,MAAM,EAAG6b,EAAQ,IAChE0/B,EAAcA,KAChB,IAAIrmD,EAkBJ,OAhBEA,EADEmR,EACSmw1B,EACFW,EACEF,EACF1w1B,EAAMiz0B,MAAMhp1B,UAOV03L,GAAAA,cAAC3hL,EAAMiz0B,MAAMhp1B,UAAS,MACxB+V,EAAMiz0B,MAAMj10B,QACVgC,EAAMiz0B,MAAMj10B,QAEZiv1B,EAGXtrqB,GAAAA,cAACquqB,IAAa,CACZhw1B,MAAOA,EACP+v1B,aAAc,CACZ9C,SACA3v0B,UACA4v0B,YAAgC,MAAnBwB,GAEf//1B,SAAUA,GACV,EAMN,OAAO+/1B,IACJ1u1B,EAAMiz0B,MAAMid,eAAiBlw1B,EAAMiz0B,MAAMgd,cAA0B,IAAV360B,GAC1DqsK,GAAAA,cAACkuqB,IAAmB,CAClBrv0B,SAAUku0B,EAAgBlu0B,SAC1Bg7zB,aAAckT,EAAgBlT,aAC9B/nkB,UAAWw8kB,EACXnw1B,MAAOA,EACPnR,SAAUqmD,IACV+6yB,aAAc,CAAE9C,OAAQ,KAAM3v0B,UAAS4v0B,aAAa,KAGtDl4yB,GACD,GACA,KACL,CAAC,IAEI04yB,IAAc,SAAdA,GAAc,OAAdA,EAAc,wBAAdA,EAAc,gCAAdA,EAAc,gCAAdA,CAAc,EAAdA,KAAc,IAMdG,IAAmB,SAAnBA,GAAmB,OAAnBA,EAAmB,wBAAnBA,EAAmB,8BAAnBA,EAAmB,8BAAnBA,EAAmB,8BAAnBA,EAAmB,8BAAnBA,EAAmB,wCAAnBA,EAAmB,wBAAnBA,EAAmB,gCAAnBA,EAAmB,gCAAnBA,EAAmB,wBAAnBA,CAAmB,EAAnBA,KAAmB,IAmBxB,SAASJ,IAAqBsD,GAC5B,IAAI/F,EAAMrpqB,GAAAA,WAAiBirqB,KAE3B,OADU5B,GAAVsC,KAAU,GACHtC,CACT,CAEA,SAASuE,IAAmBwB,GAC1B,IAAI9g2B,EAAQ0xL,GAAAA,WAAiBkrqB,KAE7B,OADU581B,GAAVq91B,KAAU,GACHr91B,CACT,CASA,SAAS291B,IAAkBmD,GACzB,IAAI9d,EARN,WACE,IAAIA,EAAQtxpB,GAAAA,WAAiBqrqB,KAE7B,OADU/Z,GAAVqa,KAAU,GACHra,CACT,CAIc+d,GACRC,EAAYhe,EAAM31zB,QAAQ21zB,EAAM31zB,QAAQrxB,OAAS,GAKrD,OAHEgl2B,EAAUhe,MAAMj0zB,IADlBsu0B,KAAU,GAIH2D,EAAUhe,MAAMj0zB,EACzB,CAqHA,IAAIky0B,IAAY,EAuGhB,MAAML,IAAyC,CAAC,ECngCpBlvqB,GAAsB,gBA+L3C,SAASwvqB,IAAQri1B,GAKA,IALC,GACvB1iB,EAAE,QACF8M,EAAO,MACPjJ,EAAK,SACLqjD,GACcxkC,EAEZs+0B,OADFE,KAAU,GAOV,IAAI,OAAE1mwB,EAAQ2mwB,OAAQ6D,GAAazvqB,GAAAA,WAAiBmrqB,MAShD,QAAExv0B,GAAYqkK,GAAAA,WAAiBqrqB,MAC7BrtnB,SAAUo3mB,GAAqBsW,MACjC9H,EAAWiI,MAIX73xB,EAAOihxB,IACTxq1B,EACA8h2B,IAAoB5w0B,EAASspE,EAAO8vvB,sBACpCK,EACa,SAAbzjyB,GAEE+9yB,EAAW/3zB,KAAK+mF,UAAU1qD,GAO9B,OALAgsH,GAAAA,WACE,IAAM4jqB,EAASjszB,KAAKuL,MAAMwszB,GAAW,CAAEn41B,UAASjJ,QAAOqjD,cACvD,CAACiyyB,EAAU8L,EAAU/9yB,EAAUp6C,EAASjJ,IAGnC,IACT,CA2FO,SAASqh2B,IAAMri1B,GAQqB,IAPzCuk0B,SAAU+d,EAAe,IAAG,SAC5B5i2B,EAAW,KACX6xB,SAAUgx0B,EAAY,eACtBpC,EAAiBne,IAAejnoB,IAAG,UACnCjpL,EACAws0B,OAAQkE,GAAa,EAAK,OAC1B7qwB,GACY33E,EAETm+0B,OADHE,KAAU,GAQV,IAAI9Z,EAAW+d,EAAar41B,QAAQ,OAAQ,KACxCw41B,EAAoB/vqB,GAAAA,SACtB,KAAM,CACJ6xpB,WACAzyzB,YACAws0B,OAAQkE,EACR7qwB,OAAMz3F,IAAA,CACJun1B,sBAAsB,GACnB9vvB,MAGP,CAAC4svB,EAAU5svB,EAAQ7lE,EAAW0w0B,IAGJ,kBAAjBD,IACTA,EAAejgB,IAAUigB,IAG3B,IAAI,SACF7xnB,EAAW,IAAG,OACd5+L,EAAS,GAAE,KACX+yE,EAAO,GAAE,MACT7jH,EAAQ,KAAI,IACZkF,EAAM,WACJq81B,EAEAG,EAAkBhwqB,GAAAA,SAAc,KAClC,IAAIiwqB,EAAmBje,IAAch0mB,EAAU6zmB,GAE/C,OAAwB,MAApBoe,EACK,KAGF,CACLpx0B,SAAU,CACRm/M,SAAUiynB,EACV7wzB,SACA+yE,OACA7jH,QACAkF,OAEFi61B,iBACD,GACA,CAAC5b,EAAU7zmB,EAAU5+L,EAAQ+yE,EAAM7jH,EAAOkF,EAAKi61B,IASlD,OAAuB,MAAnBuC,EACK,KAIPhwqB,GAAAA,cAACmrqB,IAAkBpr1B,SAAQ,CAACjX,MAAOin2B,GACjC/vqB,GAAAA,cAACorqB,IAAgBrr1B,SAAQ,CAAC/S,SAAUA,EAAUlE,MAAOkn2B,IAG3D,CAyD4B,IAAIn4zB,SAAQ,SAEPmoJ,GAAAA,UCzTjC,SAASmxpB,IAAmBG,GAC1B,IAAIqO,EAAgE,CAGlExI,iBAAyC,MAAvB7F,EAAMid,eAA+C,MAAtBjd,EAAMgd,cAmDzD,OAhDIhd,EAAMhp1B,WAUR3B,OAAOgkD,OAAOg1yB,EAAS,CACrBtj1B,QAAS2jL,GAAAA,cAAoBsxpB,EAAMhp1B,WACnCA,eAAWiC,IAIX+m1B,EAAMwd,iBAURno2B,OAAOgkD,OAAOg1yB,EAAS,CACrBoP,uBAAwB/uqB,GAAAA,cAAoBsxpB,EAAMwd,iBAClDA,qBAAiBvk2B,IAIjB+m1B,EAAMid,eAUR5n2B,OAAOgkD,OAAOg1yB,EAAS,CACrB2O,aAActuqB,GAAAA,cAAoBsxpB,EAAMid,eACxCA,mBAAehk2B,IAIZo11B,CACT,CCnSA,IAAIj1yB,IAAsC,WAStC,OARAA,IAAW/jD,OAAOgkD,QAAU,SAAS9hC,GACjC,IAAK,IAAIV,EAAG9U,EAAI,EAAGnK,EAAImB,UAAUC,OAAQ+I,EAAInK,EAAGmK,IAE5C,IAAK,IAAIuW,KADTzB,EAAI9d,UAAUgJ,GACO1M,OAAOkR,UAAUG,eAAenR,KAAKshB,EAAGyB,KACzDf,EAAEe,GAAKzB,EAAEyB,IAEjB,OAAOf,CACX,EACO6hC,IAASrqC,MAAMnZ,KAAMmD,UAChC,ECVIqgD,IAAsC,WAStC,OARAA,IAAW/jD,OAAOgkD,QAAU,SAAS9hC,GACjC,IAAK,IAAIV,EAAG9U,EAAI,EAAGnK,EAAImB,UAAUC,OAAQ+I,EAAInK,EAAGmK,IAE5C,IAAK,IAAIuW,KADTzB,EAAI9d,UAAUgJ,GACO1M,OAAOkR,UAAUG,eAAenR,KAAKshB,EAAGyB,KACzDf,EAAEe,GAAKzB,EAAEyB,IAEjB,OAAOf,CACX,EACO6hC,IAASrqC,MAAMnZ,KAAMmD,UAChC,EAiBA,UATgC,SAAU/D,GAEtC,IAAI2jI,EAAS0iuB,MACTnwzB,EDPyB,SAAU0zzB,EAAcC,GACrD,IAAItx0B,EAAW6s0B,MACXJ,EAASoB,MACT9I,EAAWiI,MACXrvzB,EAAKwjJ,GAAAA,SAAekwqB,GAAe58kB,EAAS92O,EAAG,GAAIo7V,EAAYp7V,EAAG,GAClEI,GAAKi/F,EAAAA,GAAAA,YAAYu0tB,EAAgBxzzB,EAAG,GAAIyzzB,EAAmBzzzB,EAAG,IAClEs/F,EAAAA,GAAAA,YAAU,WACN,GAAIi0tB,EAAc,CAEd,IAAIG,EAAiB5lzB,IAASA,IAAS,CAAC,EAAG2ma,GAAkB8+Y,GAC7DE,EAAiBC,EACrB,MAEID,EAAiBh/Y,EAEzB,GAAG,KACHn1U,EAAAA,GAAAA,YAAU,WACN07P,GAAU,EACd,GAAG,CAAC/4W,IACJ,IAAIwyb,EAAkB,CAClBr1c,MAAO,GACPwtJ,WAAW,EACXwsH,mBAAmB,EACnBb,sBAAsB,EACtBZ,cAAc,EACduC,aAAa,EACb1lM,SAAUmnL,GAASvpQ,MACnBuO,UAAMhT,EACN0rR,WAAW,GAEf,MAAO,CAAEq1kB,OAAQA,EAAQ1H,SAAUA,EAAUtwkB,OAAQA,EAAQskH,UAAWA,EAAWw4d,cAAeA,EACtG,CCxBaG,CAAoBjq2B,EAAMgtR,OAAQhtR,EAAM6p2B,cAAe7E,EAAS9uzB,EAAG8uzB,OAAQ1H,EAAWpnzB,EAAGonzB,SAAUtwkB,EAAS92O,EAAG82O,OAAQskH,EAAYp7V,EAAGo7V,UAAWw4d,EAAgB5zzB,EAAG4zzB,cAC7K,OAAQ7/hB,EAAAA,GAAAA,KAAKwU,GAAU,CAAE/3U,SAAU,WAAc,OAAQujU,EAAAA,GAAAA,KAAKC,GAAAA,SAAW,CAAExjU,SAAUoj2B,IAAkB1/hB,EAAAA,GAAAA,MAAMz1B,GAAQvwP,IAAS,CAAEziD,UAAW,qCAAsCqrR,OAAQA,EAAQ8B,QAAS,WAC1LwukB,EAASt91B,EAAMkq2B,aAAavmuB,IAC5B2tQ,GAAU,EACd,GAAKw4d,EAAe,CAAEpj2B,SAAU,EAACujU,EAAAA,GAAAA,KAAK,MAAO,CAAEtoU,UAAW,wBAAyB+E,UAAUujU,EAAAA,GAAAA,KAAK,MAAO,CAAEvjU,SAAUs+1B,IAAW/6hB,EAAAA,GAAAA,KAAKi/hB,IAAU,CAAE/k2B,GAAInE,EAAMkq2B,aAAavmuB,GAAS1yH,SAAS,SAAgBg5T,EAAAA,GAAAA,KAAK,MAAO,CAAEtoU,UAAW,wCAA+C,GAClS,EC1BA,IAAIyiD,IAAsC,WAStC,OARAA,IAAW/jD,OAAOgkD,QAAU,SAAS9hC,GACjC,IAAK,IAAIV,EAAG9U,EAAI,EAAGnK,EAAImB,UAAUC,OAAQ+I,EAAInK,EAAGmK,IAE5C,IAAK,IAAIuW,KADTzB,EAAI9d,UAAUgJ,GACO1M,OAAOkR,UAAUG,eAAenR,KAAKshB,EAAGyB,KACzDf,EAAEe,GAAKzB,EAAEyB,IAEjB,OAAOf,CACX,EACO6hC,IAASrqC,MAAMnZ,KAAMmD,UAChC,EAaA,UAPiC,SAAU/D,GACvC,IAAIk2C,EF6B0B,SAAU0zzB,EAAcC,GACtD,IAAI3zzB,EAAKwjJ,GAAAA,SAAekwqB,GAAe58kB,EAAS92O,EAAG,GAAIo7V,EAAYp7V,EAAG,GAClEI,GAAKi/F,EAAAA,GAAAA,YAAYu0tB,EAAgBxzzB,EAAG,GAAIyzzB,EAAmBzzzB,EAAG,IAClEs/F,EAAAA,GAAAA,YAAU,WACN,GAAIi0tB,EAAc,CAEd,IAAIG,EAAiB5lzB,IAASA,IAAS,CAAC,EAAG2ma,GAAkB8+Y,GAC7DE,EAAiBC,EACrB,MAEID,EAAiBh/Y,EAEzB,GAAG,IACH,IAAIA,EAAkB,CAClBr1c,MAAO,GACPwtJ,WAAW,EACXwsH,mBAAmB,EACnBb,sBAAsB,EACtBZ,cAAc,EACduC,aAAa,EACb1lM,SAAUmnL,GAASvpQ,MACnBuO,UAAMhT,EACN0rR,WAAW,GAEf,MAAO,CAAE3C,OAAQA,EAAQskH,UAAWA,EAAWw4d,cAAeA,EAClE,CEtDaK,CAAqBnq2B,EAAMgtR,OAAQhtR,EAAM6p2B,cAAe78kB,EAAS92O,EAAG82O,OAAQskH,EAAYp7V,EAAGo7V,UAAWw4d,EAAgB5zzB,EAAG4zzB,cAClI,OAAQ7/hB,EAAAA,GAAAA,KAAKwU,GAAU,CAAE/3U,SAAU,WAAc,OAAQujU,EAAAA,GAAAA,KAAKC,GAAAA,SAAW,CAAExjU,SAAUoj2B,IAAkB1/hB,EAAAA,GAAAA,MAAMz1B,GAAQvwP,IAAS,CAAEziD,UAAW,sCAAuCqrR,OAAQA,EAAQ8B,QAAS,WAC3LwiH,GAAU,GACVtxY,EAAM8uR,SAAW9uR,EAAM8uR,SAC3B,GAAKg7kB,EAAe,CAAEpj2B,SAAU,EAACujU,EAAAA,GAAAA,KAAK,MAAO,CAAEtoU,UAAW,wBAAyB+E,UAAUujU,EAAAA,GAAAA,KAAK,MAAO,CAAEvjU,SAAU1G,EAAM0G,cAAgBujU,EAAAA,GAAAA,KAAK,MAAO,CAAEtoU,UAAW,wCAA+C,GACnO,ECTA,UAXmB,SAAU3B,GACzB,MAAO,CACH0tE,KAAM,OACN33D,SAAUk0T,EAAAA,GAAAA,KAAKmgiB,IAA2B,CAAEF,aAAclq2B,EAAMkq2B,aAAcl9kB,QAAQ,IACtFssX,aAAa,EACb+wN,kBAAkB,EAClBC,qBAAqB,EACrBt7jB,MAAO,OACPtoS,SAAU1G,EAAM4q1B,OAExB,ECTO,IAAI2f,IAAoB,SAAU7j2B,EAAU8j2B,EAAY17kB,EAAS+6kB,GACpE,OAAQ5/hB,EAAAA,GAAAA,KAAKwgiB,IAA4B,CAAEz9kB,OAAQw9kB,EAAY17kB,QAASA,EAAS+6kB,aAAcA,EAAcnj2B,SAAUA,GAC3H,ECKA,UAR2B,SAAUwvC,GACjC,IAAIg0zB,EAAeh0zB,EAAGg0zB,aAAcxj2B,EAAWwvC,EAAGxvC,SAAUmj2B,EAAe3zzB,EAAG2zzB,aAC1EvM,EAAWiI,MAIf,OAAOt7hB,EAAAA,GAAAA,KAAKC,GAAAA,SAAW,CAAExjU,SAAUA,GAHjB,WACd421B,EAAS4M,EACb,GACyDL,IAC7D,ECHA,UAJiB,SAAU7p2B,GACvB,IAAI2jI,EAAS0iuB,MACb,OAAOp8hB,EAAAA,GAAAA,KAAKC,GAAAA,SAAW,CAAExjU,SAAU1G,EAAM0G,SAASi9H,IACtD,GC4C2B1nH,EAAAA,GAAAA,eAAc,CACrCyu1B,eAAgB,QCHYzu1B,EAAAA,GAAAA,eAAc,CAC1C0u1B,YAAa,KACbC,cAAe,WAAc,OAAO,CAAO,ICoBhC9sW,IAAwBh9d,uXCiKS,IAAItqB,IAAI,CACtD,oCACA,sBACA,gJCaF,IACEob,OAAOi50B,qBAHT,GAIC,CAAC,MAAO5p2B,KACP,CAgBc,SAAA6p2B,IACdlgB,EACAx8zB,GAEA,OAAO2i0B,IAAa,CAClBxF,SAAU,MAAAn9zB,OAAA,EAAAA,EAAMm9zB,SAChB5svB,OAAMz3F,IAAA,GACD,MAAAknB,OAAA,EAAAA,EAAMuwE,OAAM,CACfmzvB,oBAAoB,IAEtBt6mB,SlBqFF93N,EkBrFgC,CAAEkS,OAAQ,MAAAxD,OAAA,EAAAA,EAAMwD,alBqFhD,IAAAlS,IAAAA,EAAiC,CAAC,GAoB3Biq0B,KAlBP,SACE/3zB,EACAo4zB,GAEA,IAAI,SAAEtymB,EAAQ,OAAE5+L,EAAM,KAAE+yE,GAASj6F,EAAO2G,SACxC,OAAO8wzB,IACL,GACA,CAAE3xmB,WAAU5+L,SAAQ+yE,QAEnBm+tB,EAAchi1B,OAASgi1B,EAAchi1B,MAAMoh1B,KAAQ,KACnDY,EAAchi1B,OAASgi1B,EAAchi1B,MAAMkF,KAAQ,UAExD,IAEA,SAA2B0kB,EAAgBztB,GACzC,MAAqB,kBAAPA,EAAkBA,EAAKol1B,IAAWpl1B,EAClD,GAKE,KACAub,IkB5GA6y0B,eAAe,MAAAnk0B,OAAA,EAAAA,EAAMmk0B,gBAAiBwY,MACtCngB,4BACAogB,IACAzZ,sBAAuB,MAAAnj0B,OAAA,EAAAA,EAAMmj0B,sBAC7BG,iCAAkC,MAAAtj0B,OAAA,EAAAA,EAAMsj0B,iCACxC9/zB,OAAQ,MAAAxD,OAAA,EAAAA,EAAMwD,SACb68I,alB6EW,IACd/uJ,CkB7EF,CAsBA,SAASqr1B,MAAkB,IAAAjO,EACzB,IAAI901B,EAAQ,OAAH801B,EAAGlr0B,aAAA,EAAAkr0B,EAAQmO,4BAOpB,OANIjj2B,GAASA,EAAMkmD,SACjBlmD,EAAKd,IAAA,GACAc,EAAK,CACRkmD,OAAQg9yB,IAAkBlj2B,EAAMkmD,WAG7BlmD,CACT,CAEA,SAASkj2B,IACPh9yB,GAEA,IAAKA,EAAQ,OAAO,KACpB,IAAIh3C,EAAU7W,OAAO6W,QAAQg3C,GACzBi9yB,EAA6C,CAAC,EAClD,IAAK,IAAKj+1B,EAAKyiB,KAAQzY,EAGrB,GAAIyY,GAAsB,uBAAfA,EAAIy70B,OACbD,EAAWj+1B,GAAO,IAAIm+1B,IACpB170B,EAAI0nH,OACJ1nH,EAAI62T,WACJ72T,EAAImb,MACa,IAAjBnb,EAAIig0B,eAED,GAAIjg0B,GAAsB,UAAfA,EAAIy70B,OAAoB,CAExC,GAAIz70B,EAAI270B,UAAW,CACjB,IAAIC,EAAmB350B,OAAOjC,EAAI270B,WAClC,GAAgC,oBAArBC,EACT,IAEE,IAAI1z1B,EAAQ,IAAI0z1B,EAAiB570B,EAAI7X,SAGrCD,EAAM+V,MAAQ,GACdu90B,EAAWj+1B,GAAO2K,EAClB,MAAO5W,KACP,CAGL,CAED,GAAuB,MAAnBkq2B,EAAWj+1B,GAAc,CAC3B,IAAI2K,EAAQ,IAAI8V,MAAMgC,EAAI7X,SAG1BD,EAAM+V,MAAQ,GACdu90B,EAAWj+1B,GAAO2K,CACnB,CACF,MACCsz1B,EAAWj+1B,GAAOyiB,EAGtB,OAAOw70B,CACT,CAmBA,MAAMK,IAAwB9xqB,GAAAA,cAAiD,CAC7E+xqB,iBAAiB,IAWb,MAAAC,IAAkBhyqB,GAAAA,cAA2C,IAAIpjL,KAkCvE,MACMq11B,IAAsBjyqB,GAAsB,gBAE5CkyqB,IAAgBxklB,GAAmB,UAEvB1tF,GAAY,MAU9B,SAASmyqB,IAAc92uB,GACjB62uB,IACFA,IAAc72uB,GAEdA,GAEJ,CASA,MAAMgwT,IAOJhua,WAAAA,GANA,KAAMsgI,OAAwC,UAO5Cz2I,KAAKg9H,QAAU,IAAIrsF,SAAQ,CAAC2mB,EAASuwB,KACnC7nF,KAAKs3D,QAAW11D,IACM,YAAhB5B,KAAKy2I,SACPz2I,KAAKy2I,OAAS,WACdn/E,EAAQ11D,GACT,EAEH5B,KAAK6nF,OAAUsuC,IACO,YAAhBn2H,KAAKy2I,SACPz2I,KAAKy2I,OAAS,WACd5uD,EAAOsuC,GACR,CACF,GAEL,EAMI,SAAU+0uB,IAAcnx1B,GAIR,IAJS,gBAC7Box1B,EAAe,OACf3a,EAAM,OACNzyvB,GACoBhkF,GACf3S,EAAOgk2B,GAAgBtyqB,GAAAA,SAAe03pB,EAAOpp1B,QAC7Cik2B,EAAcC,GAAmBxyqB,GAAAA,YACjCyyqB,EAAWC,GAAgB1yqB,GAAAA,SAA4C,CAC1E+xqB,iBAAiB,KAEdY,EAAWC,GAAgB5yqB,GAAAA,YAC3Bx0C,EAAYqntB,GAAiB7yqB,GAAAA,YAC7B8yqB,EAAcC,GAAmB/yqB,GAAAA,WAKlCgzqB,EAAchzqB,GAAAA,OAA+B,IAAIpjL,MACjD,mBAAEq21B,GAAuBhuwB,GAAU,CAAC,EAEpCiuwB,EAAuBlzqB,GAAAA,aACxB3kE,IACK43uB,EAzEV,SAA6B53uB,GACvB42uB,IACFA,IAAoB52uB,GAEpBA,GAEJ,CAoEQ83uB,CAAoB93uB,GAEpBA,GACD,GAEH,CAAC43uB,IAGCxi2B,EAAWuvL,GAAAA,aACb,CACEo0G,EAAqB7oR,KAMnB,IALF,gBACEyv0B,EACAU,mBAAoB1orB,EACpBworB,4BAA6BC,GAC9Blw0B,EAEDyv0B,EAAgBzt1B,SAASiG,GAAQw/1B,EAAYpizB,QAAQuqF,OAAO3nI,KAC5D4gS,EAAS0ljB,SAASvs1B,SAAQ,CAAC+t1B,EAAS9n1B,UACbjJ,IAAjB+w1B,EAAQlqzB,MACV4h0B,EAAYpizB,QAAQhwC,IAAIpN,EAAK8n1B,EAAQlqzB,KACtC,IAGH,IAAIgi0B,EACe,MAAjB1b,EAAOx/zB,QACmB,MAA1Bw/zB,EAAOx/zB,OAAOE,UACwC,oBAA/Cs/zB,EAAOx/zB,OAAOE,SAASi70B,oBAIhC,GAAK5X,IAAsB2X,EAA3B,CAUA,GAAIpgsB,EAAW,CAEbm/rB,KAAc,KAER3mtB,IACFmntB,GAAaA,EAAUn0yB,UACvBgtF,EAAW8ntB,kBAEbZ,EAAa,CACXX,iBAAiB,EACjB/+rB,WAAW,EACXk+oB,gBAAiBuqC,EAAmBvqC,gBACpCkrC,aAAcX,EAAmBW,cACjC,IAIJ,IAAIvz0B,EAAI6u0B,EAAOx/zB,OAAQE,SAASi70B,qBAAoB,KAClDlB,KAAc,IAAMG,EAAal+jB,IAAU,IAc7C,OAVAvrR,EAAE0q1B,SAAS/vuB,SAAQ,KACjB2uuB,KAAc,KACZS,OAAaro2B,GACbso2B,OAActo2B,GACdio2B,OAAgBjo2B,GAChBmo2B,EAAa,CAAEX,iBAAiB,GAAQ,GACxC,SAGJI,KAAc,IAAMU,EAAchq1B,IAEnC,CAGG2iI,GAGFmntB,GAAaA,EAAUn0yB,UACvBgtF,EAAW8ntB,iBACXP,EAAgB,CACdzk2B,MAAO8lS,EACP88gB,gBAAiBuqC,EAAmBvqC,gBACpCkrC,aAAcX,EAAmBW,iBAInCoW,EAAgBp+jB,GAChBs+jB,EAAa,CACXX,iBAAiB,EACjB/+rB,WAAW,EACXk+oB,gBAAiBuqC,EAAmBvqC,gBACpCkrC,aAAcX,EAAmBW,eAxDpC,MANKpprB,EACFm/rB,KAAc,IAAMG,EAAal+jB,KAEjC8+jB,GAAqB,IAAMZ,EAAal+jB,IA6D3C,GAEH,CAACsjjB,EAAOx/zB,OAAQszH,EAAYmntB,EAAWK,EAAaE,IAKtDlzqB,GAAAA,iBAAsB,IAAM03pB,EAAOnY,UAAU9u0B,IAAW,CAACin1B,EAAQjn1B,IAIjEuvL,GAAAA,WAAgB,KACVyyqB,EAAUV,kBAAoBU,EAAUz/rB,WAC1C4/rB,EAAa,IAAIvnb,IAClB,GACA,CAAConb,IAKJzyqB,GAAAA,WAAgB,KACd,GAAI2yqB,GAAaJ,GAAgB7a,EAAOx/zB,OAAQ,CAC9C,IAAIk8Q,EAAWm+jB,EACXiB,EAAgBb,EAAUzuuB,QAC1BsnB,EAAakssB,EAAOx/zB,OAAOE,SAASi70B,qBAAoBlwuB,UAC1D+vuB,GAAqB,IAAMZ,EAAal+jB,WAClCo/jB,CAAa,IAErBhotB,EAAW+ntB,SAAS/vuB,SAAQ,KAC1BovuB,OAAaro2B,GACbso2B,OAActo2B,GACdio2B,OAAgBjo2B,GAChBmo2B,EAAa,CAAEX,iBAAiB,GAAQ,IAE1Cc,EAAcrntB,EACf,IACA,CAAC0ntB,EAAsBX,EAAcI,EAAWjb,EAAOx/zB,SAI1D8nK,GAAAA,WAAgB,KAEZ2yqB,GACAJ,GACAjk2B,EAAMuwB,SAASrrB,MAAQ++1B,EAAa1z0B,SAASrrB,KAE7Cm/1B,EAAUn0yB,SACX,GACA,CAACm0yB,EAAWnntB,EAAYl9I,EAAMuwB,SAAU0z0B,IAI3CvyqB,GAAAA,WAAgB,MACTyyqB,EAAUV,iBAAmBe,IAChCN,EAAgBM,EAAaxk2B,OAC7Bok2B,EAAa,CACXX,iBAAiB,EACjB/+rB,WAAW,EACXk+oB,gBAAiB4hD,EAAa5hD,gBAC9BkrC,aAAc0W,EAAa1W,eAE7B2W,OAAgBxo2B,GACjB,GACA,CAACko2B,EAAUV,gBAAiBe,IAE/B9yqB,GAAAA,WAAgB,KAKb,GAGA,IAEH,IAAI5gK,EAAY4gK,GAAAA,SAAc,KACrB,CACLmwpB,WAAYuH,EAAOvH,WACnBO,eAAgBgH,EAAOhH,eACvBI,GAAK5n1B,GAAMwu1B,EAAOkM,SAAS161B,GAC3BoK,KAAMA,CAAC7I,EAAI6D,EAAOomB,IAChBgj0B,EAAOkM,SAASn51B,EAAI,CAClB6D,QACAsr1B,mBAAoB,MAAAll0B,OAAA,EAAAA,EAAMkl0B,qBAE9Bri1B,QAASA,CAAC9M,EAAI6D,EAAOomB,IACnBgj0B,EAAOkM,SAASn51B,EAAI,CAClB8M,SAAS,EACTjJ,QACAsr1B,mBAAoB,MAAAll0B,OAAA,EAAAA,EAAMkl0B,wBAG/B,CAAClC,IAEA7F,EAAW6F,EAAO7F,UAAY,IAE9Bwa,EAAoBrsqB,GAAAA,SACtB,KAAM,CACJ03pB,SACAt4zB,YACAws0B,QAAQ,EACR/Z,cAEF,CAAC6F,EAAQt4zB,EAAWyyzB,IAGlB4hB,EAAezzqB,GAAAA,SACjB,KAAM,CACJ+0pB,qBAAsB2C,EAAOzyvB,OAAO8vvB,wBAEtC,CAAC2C,EAAOzyvB,OAAO8vvB,uBASjB,OACE/0pB,GAAAA,cAAAA,GAAAA,SAAA,KACEA,GAAAA,cAAC0zqB,IAAkB3z1B,SAAS,CAAAjX,MAAOuj2B,GACjCrsqB,GAAAA,cAAC2zqB,IAAuB5z1B,SAAS,CAAAjX,MAAOwF,GACtC0xL,GAAAA,cAACgyqB,IAAgBjy1B,SAAQ,CAACjX,MAAOkq2B,EAAYpizB,SAC3CovI,GAAAA,cAAC8xqB,IAAsB/x1B,SAAS,CAAAjX,MAAO2p2B,GACrCzyqB,GAAAA,cAAC2vqB,IAAM,CACL9d,SAAUA,EACVhzzB,SAAUvwB,EAAMuwB,SAChB4u0B,eAAgBn/1B,EAAMmr1B,cACtBr6zB,UAAWA,EACX6lE,OAAQwuwB,GAEPnl2B,EAAM4wO,aAAew4mB,EAAOzyvB,OAAOkzvB,oBAClCn4pB,GAAAA,cAAC4zqB,IACC,CAAA1iB,OAAQwG,EAAOxG,OACfjsvB,OAAQyyvB,EAAOzyvB,OACf32F,MAAOA,IAGT+j2B,OAOX,KAGP,CAGA,MAAMuB,IAAqB5zqB,GAAAA,KAAW6zqB,KAEtC,SAASA,IAAUro1B,GAQlB,IARmB,OAClB0l0B,EAAM,OACNjsvB,EAAM,MACN32F,GAKDkd,EACC,OAAOso1B,IAAc5iB,OAAQ3m1B,EAAW+D,EAAO22F,EACjD,CAuKA,MAAMk0L,IACc,qBAAXjhQ,QACoB,qBAApBA,OAAOE,UAC2B,qBAAlCF,OAAOE,SAASpwB,cAEnBiv1B,IAAqB,gCAKdjme,IAAOhxL,GAAAA,YAClB,SAAoBxyK,EAalBrZ,GAAG,IAKC4/1B,GAjBJ,QACErs2B,EAAO,SACPiqD,EAAQ,eACRqizB,EAAc,QACdz81B,EAAO,MACPjJ,EAAK,OACLiB,EAAM,GACN9E,EAAE,mBACFmv1B,EAAkB,wBAClBsK,GAED120B,EADIgD,EAAIq7P,IAAAr+P,EAAA2hc,MAIL,SAAE0iY,GAAa7xpB,GAAAA,WAAiBi0qB,KAIhCpoS,GAAa,EAEjB,GAAkB,kBAAPphkB,GAAmBws1B,IAAmB5m0B,KAAK5lB,KAEpDsp2B,EAAetp2B,EAGX0uR,KACF,IACE,IAAIwtkB,EAAa,IAAIjmuB,IAAIxoG,OAAO2G,SAASwwB,MACrC6kzB,EAAYzp2B,EAAG4pF,WAAW,MAC1B,IAAIqsC,IAAIimuB,EAAW/luB,SAAWn2H,GAC9B,IAAIi2H,IAAIj2H,GACRupE,EAAOg+wB,IAAckiB,EAAUl2nB,SAAU6zmB,GAEzCqiB,EAAU/zuB,SAAWwmuB,EAAWxmuB,QAAkB,MAARnsD,EAE5CvpE,EAAKupE,EAAOkgyB,EAAU90zB,OAAS80zB,EAAU/hvB,KAEzC05c,GAAa,EAEf,MAAOtkkB,KAOR,CAKL,IAAI8nD,Ed96BD,SACL5kD,EAAMwV,GAEE,IADR,SAAE0xC,QAA8C,IAAA1xC,EAAG,CAAC,EAACA,EAGnDwr1B,OADFE,KAAU,GAOV,IAAI,SAAE9Z,EAAQ,UAAEzyzB,GAAc4gK,GAAAA,WAAiBmrqB,MAC3C,KAAEh5uB,EAAI,SAAE6rH,EAAQ,OAAE5+L,GAAWytzB,IAAgBpi2B,EAAI,CAAEknD,aAEnDwizB,EAAiBn2nB,EAWrB,MALiB,MAAb6zmB,IACFsiB,EACe,MAAbn2nB,EAAmB6zmB,EAAWgB,IAAU,CAAChB,EAAU7zmB,KAGhD5+M,EAAU+wzB,WAAW,CAAEnymB,SAAUm2nB,EAAgB/0zB,SAAQ+yE,QAClE,Cco5BeiivB,CAAQ3p2B,EAAI,CAAEknD,aAErB0izB,EAoZF,SACJ5p2B,EAAMwV,GAeA,IAdN,OACE1Q,EACAgI,QAAS+81B,EAAW,MACpBhm2B,EAAK,mBACLsr1B,EAAkB,SAClBjoyB,EAAQ,wBACRuyyB,cAQE,CAAC,EAACjk1B,EAEF2j1B,EAAWiI,MACXht0B,EAAW6s0B,MACX13xB,EAAO64xB,IAAgBpi2B,EAAI,CAAEknD,aAEjC,OAAOquI,GAAAA,aACJ/hK,IACC,GDj3CU,SACdA,EACA1uB,GAEA,OACmB,IAAjB0uB,EAAMwC,UACJlxB,GAAqB,UAAXA,KAVhB,SAAyB0uB,GACvB,SAAUA,EAAMgB,SAAWhB,EAAMe,QAAUf,EAAMa,SAAWb,EAAMc,SACpE,CASKw10B,CAAgBt20B,EAErB,CCw2CUu20B,CAAuBv20B,EAAO1uB,GAAS,CACzC0uB,EAAM1oB,iBAIN,IAAIgC,OACchN,IAAhB+p2B,EACIA,EACAzkB,IAAWhxzB,KAAcgxzB,IAAW77wB,GAE1C4vxB,EAASn51B,EAAI,CACX8M,UACAjJ,QACAsr1B,qBACAjoyB,WACAuyyB,2BAEH,IAEH,CACErl0B,EACA+k0B,EACA5vxB,EACAsgyB,EACAhm2B,EACAiB,EACA9E,EACAmv1B,EACAjoyB,EACAuyyB,GAGN,CA5c0BuQ,CAAoBhq2B,EAAI,CAC5C8M,UACAjJ,QACAiB,SACAqq1B,qBACAjoyB,WACAuyyB,4BAWF,OAEElkqB,GAAAA,cAAA,IAAAxyL,IAAA,GACMgjB,EAAI,CACR6+B,KAAM0kzB,GAAgB1kzB,EACtB3nD,QAASmkkB,GAAcmoS,EAAiBts2B,EAd5C,SACEu2B,GAEIv2B,GAASA,EAAQu2B,GAChBA,EAAMiuH,kBACTmotB,EAAgBp20B,EAEpB,EAQI9pB,IAAKA,EACL5E,OAAQA,IAGd,IAgVF,IAAKw81B,IAQAG,KARL,SAAKH,GACHA,EAAA,4CACAA,EAAA,sBACAA,EAAA,oCACAA,EAAA,wBACAA,EAAA,+CACD,EAND,CAAKA,MAAAA,IAMJ,KAED,SAAKG,GACHA,EAAA,wBACAA,EAAA,0BACAA,EAAA,2CACD,CAJD,CAAKA,MAAAA,IAIJ,KCz1CD,MAAMwI,IAAuC,CAAC,EAAG,IAAM,IAAO,IAAO,MAG/D,MAAOC,IAGTt31B,WAAAA,CAAYu31B,GACR1t2B,KAAK2t2B,kBAA+Btq2B,IAAhBqq2B,EAA4B,IAAIA,EAAa,MAAQF,GAC7E,CAEOI,4BAAAA,CAA6BC,GAChC,OAAO7t2B,KAAK2t2B,aAAaE,EAAaC,mBAC1C,ECZE,MAAOC,YAAkBhh1B,MAa3B5W,WAAAA,CAAY+jI,EAAsB87V,GAC9B,MAAMg4X,aAAuBr91B,UAC7BoiH,MAAM,GAAGmnB,mBAA8B87V,MACvCh2e,KAAKg2e,WAAaA,EAIlBh2e,KAAKR,UAAYwu2B,CACrB,EAIE,MAAOC,YAAqBlh1B,MAS9B5W,WAAAA,GAAwD,IAA5C+jI,EAAA/2I,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAuB,sBAC/B,MAAM6q2B,aAAuBr91B,UAC7BoiH,MAAMmnB,GAINl6I,KAAKR,UAAYwu2B,CACrB,EAIE,MAAOE,YAAmBnh1B,MAS5B5W,WAAAA,GAAuD,IAA3C+jI,EAAA/2I,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAuB,qBAC/B,MAAM6q2B,aAAuBr91B,UAC7BoiH,MAAMmnB,GAINl6I,KAAKR,UAAYwu2B,CACrB,EAKE,MAAOG,YAAkCph1B,MAgB3C5W,WAAAA,CAAYe,EAAiBy/zB,GACzB,MAAMq3B,aAAuBr91B,UAC7BoiH,MAAM77G,GACNlX,KAAK220B,UAAYA,EACjB320B,KAAKggL,UAAY,4BAIjBhgL,KAAKR,UAAYwu2B,CACrB,EAKE,MAAOI,YAA+Brh1B,MAgBxC5W,WAAAA,CAAYe,EAAiBy/zB,GACzB,MAAMq3B,aAAuBr91B,UAC7BoiH,MAAM77G,GACNlX,KAAK220B,UAAYA,EACjB320B,KAAKggL,UAAY,yBAIjBhgL,KAAKR,UAAYwu2B,CACrB,EAKE,MAAOK,YAAoCth1B,MAgB7C5W,WAAAA,CAAYe,EAAiBy/zB,GACzB,MAAMq3B,aAAuBr91B,UAC7BoiH,MAAM77G,GACNlX,KAAK220B,UAAYA,EACjB320B,KAAKggL,UAAY,8BAIjBhgL,KAAKR,UAAYwu2B,CACrB,EAKE,MAAOM,YAAyCvh1B,MAYlD5W,WAAAA,CAAYe,GACR,MAAM821B,aAAuBr91B,UAC7BoiH,MAAM77G,GACNlX,KAAKggL,UAAY,mCAIjBhgL,KAAKR,UAAYwu2B,CACrB,EAKE,MAAOO,YAAwBxh1B,MAajC5W,WAAAA,CAAYe,EAAiBs31B,GACzB,MAAMR,aAAuBr91B,UAC7BoiH,MAAM77G,GAENlX,KAAKwu2B,YAAcA,EAInBxu2B,KAAKR,UAAYwu2B,CACrB,EC/KE,MAAOS,IAqCTt41B,WAAAA,CACoB6/d,EACApwJ,EACA7wU,GAFA,KAAAihe,WAAAA,EACA,KAAApwJ,WAAAA,EACA,KAAA7wU,QAAAA,CACpB,EAOE,MAAgB251B,IAeXh41B,GAAAA,CAAIu4G,EAAanwG,GACpB,OAAO9e,KAAKm2O,KAAK,IACVr3N,EACHmb,OAAQ,MACRg1F,OAER,CAgBOkyjB,IAAAA,CAAKlyjB,EAAanwG,GACrB,OAAO9e,KAAKm2O,KAAK,IACVr3N,EACHmb,OAAQ,OACRg1F,OAER,CAgBOglB,OAAOhlB,EAAanwG,GACvB,OAAO9e,KAAKm2O,KAAK,IACVr3N,EACHmb,OAAQ,SACRg1F,OAER,CAeO0/uB,eAAAA,CAAgB1/uB,GACnB,MAAO,EACX,EC5JG,IAAKq4D,KAAZ,SAAYA,GAERA,EAAAA,EAAA,iBAEAA,EAAAA,EAAA,iBAEAA,EAAAA,EAAA,6BAEAA,EAAAA,EAAA,qBAEAA,EAAAA,EAAA,iBAEAA,EAAAA,EAAA,uBAEAA,EAAAA,EAAA,cACH,CAfD,CAAYA,MAAAA,IAAQ,KCFd,MAAOsnrB,IAITz41B,WAAAA,GAAuB,CAIhB8yG,GAAAA,CAAI4lvB,EAAqBC,GAChC,EAPcF,IAAAl31B,SAAoB,IAAIk31B,ICKnC,MAAMxg2B,IAAkB,SAEzB,MAAO2g2B,IACF,iBAAOx01B,CAAWwU,EAAUrqB,GAC/B,GAAY,OAARqqB,QAAwB1rB,IAAR0rB,EAChB,MAAM,IAAIhC,MAAM,QAAQroB,2BAEhC,CACO,iBAAOsq2B,CAAWjg1B,EAAarqB,GAClC,IAAKqqB,GAAOA,EAAI5X,MAAM,SAClB,MAAM,IAAI4V,MAAM,QAAQroB,mCAEhC,CAEO,WAAOuq2B,CAAKlg1B,EAAUxG,EAAa7jB,GAEtC,KAAMqqB,KAAOxG,GACT,MAAM,IAAIwE,MAAM,WAAWroB,YAAeqqB,KAElD,EAIE,MAAOmg1B,IAEF,oBAAWj9kB,GACd,MAAyB,kBAAXjhQ,QAAkD,kBAApBA,OAAOE,QACvD,CAGO,sBAAWi+0B,GACd,MAAuB,kBAATt31B,MAAqB,kBAAmBA,IAC1D,CAGA,wBAAWu31B,GACP,MAAyB,kBAAXp+0B,QAAkD,qBAApBA,OAAOE,QACvD,CAIO,iBAAWy/yB,GACd,OAAQ3w0B,KAAKiyR,YAAcjyR,KAAKmv2B,cAAgBnv2B,KAAKov2B,aACzD,EAIE,SAAUC,IAAcnl0B,EAAWol0B,GACrC,IAAI140B,EAAS,GAYb,OAXIspC,IAAch2B,IACdtT,EAAS,yBAAyBsT,EAAKqgC,aACnC+kyB,IACA140B,GAAU,eAYhB,SAA4BsT,GAC9B,MAAMpR,EAAO,IAAIsW,WAAWlF,GAG5B,IAAIyD,EAAM,GAOV,OANA7U,EAAKzyB,SAASmvF,IAEV7nD,GAAO,KADK6nD,EAAM,GAAK,IAAM,KACXA,EAAI1+E,SAAS,MAAM,IAIlC62B,EAAIwK,OAAO,EAAGxK,EAAIvqC,OAAS,EACtC,CAxBqCms2B,CAAkBrl0B,QAExB,kBAATA,IACdtT,EAAS,yBAAyBsT,EAAK9mC,SACnCks2B,IACA140B,GAAU,eAAesT,OAG1BtT,CACX,CAmBM,SAAUspC,IAAcnxC,GAC1B,OAAOA,GAA8B,qBAAhBjZ,cAChBiZ,aAAejZ,aAEXiZ,EAAI5Y,aAAwC,gBAAzB4Y,EAAI5Y,YAAYzR,KAChD,CAGOu3H,eAAe8+H,IAAYnlE,EAAiB45qB,EAAuBC,EAAwBxgvB,EAAaygvB,EAC7E361B,EAA+B+J,GAC7D,IAAIq2N,EAAiC,CAAC,EACtC,GAAIu6nB,EAAoB,CACpB,MAAMtx1B,QAAcsx1B,IAChBtx1B,IACA+2N,EAAU,CACN,cAAmB,UAAU/2N,MAKzC,MAAO1Z,EAAM9C,GAAS+t2B,MACtBx6nB,EAAQzwO,GAAQ9C,EAEhBg0L,EAAO3sE,IAAIq+D,IAASqJ,MAAO,IAAI6+qB,8BAA0CH,IAAct61B,EAAS+J,EAAQ8w1B,uBAExG,MAAM1+B,EAAehxwB,IAAcnrD,GAAW,cAAgB,OACxDymL,QAAiBi0qB,EAAWtuL,KAAKlyjB,EAAK,CACxCl6G,UACAogO,QAAS,IAAKA,KAAYr2N,EAAQq2N,SAClC+7lB,eACAzxpB,QAAS3gK,EAAQ2gK,QACjByiU,gBAAiBpje,EAAQoje,kBAG7BtsT,EAAO3sE,IAAIq+D,IAASqJ,MAAO,IAAI6+qB,mDAA+Dh0qB,EAASw6S,cAC3G,CAoBM,MAAO65X,IAIT151B,WAAAA,CAAYmhc,EAAqBhzK,GAC7BtkS,KAAK8v2B,SAAWx4Z,EAChBt3c,KAAK+v2B,UAAYzrkB,CACrB,CAEOxyF,OAAAA,GACH,MAAMrlL,EAAgBzsB,KAAK8v2B,SAASE,UAAUrl2B,QAAQ3K,KAAK+v2B,WACvDtj1B,GAAS,GACTzsB,KAAK8v2B,SAASE,UAAUx60B,OAAO/I,EAAO,GAGH,IAAnCzsB,KAAK8v2B,SAASE,UAAU5s2B,QAAgBpD,KAAK8v2B,SAASG,gBACtDjw2B,KAAK8v2B,SAASG,iBAAiB7zuB,OAAO7sG,OAE9C,EAIE,MAAO2g1B,IAWT/51B,WAAAA,CAAYg61B,GACRnw2B,KAAKow2B,UAAYD,EACjBnw2B,KAAKo3B,IAAMhgB,OACf,CAEO6xG,GAAAA,CAAI8mE,EAAoB74K,GAC3B,GAAI64K,GAAY/vL,KAAKow2B,UAAW,CAC5B,MAAM71wB,EAAM,KAAI,IAAI94F,MAAO03G,kBAAkBmuE,IAASyI,OAAc74K,IACpE,OAAQ64K,GACJ,KAAKzI,IAAS+orB,SACd,KAAK/orB,IAASv6J,MACV/sB,KAAKo3B,IAAIngB,MAAMsjF,GACf,MACJ,KAAK+sF,IAAStiD,QACVhlI,KAAKo3B,IAAI/f,KAAKkjF,GACd,MACJ,KAAK+sF,IAASm0gB,YACVz7rB,KAAKo3B,IAAImF,KAAKg+D,GACd,MACJ,QAEIv6F,KAAKo3B,IAAI6xF,IAAI1uB,IAI7B,EAIE,SAAUo1wB,MACZ,IAAIW,EAAsB,uBAI1B,OAHIpB,IAASv+B,SACT2/B,EAAsB,cAEnB,CAAEA,EAAqBC,IAAmBni2B,IAASoi2B,MAAaC,MAAcC,OACzF,CAGM,SAAUH,IAAmB/t0B,EAAiB+xM,EAAYh0D,EAAiBowrB,GAE7E,IAAIz4nB,EAAoB,qBAExB,MAAM04nB,EAAgBpu0B,EAAQ7P,MAAM,KAmBpC,OAlBAulN,GAAa,GAAG04nB,EAAc,MAAMA,EAAc,KAClD14nB,GAAa,KAAK11M,MAGd01M,GADA3D,GAAa,KAAPA,EACO,GAAGA,MAEH,eAGjB2D,GAAa,GAAG33D,IAGZ23D,GADAy4nB,EACa,KAAKA,IAEL,4BAGjBz4nB,GAAa,IACNA,CACX,CAGc,SAASs4nB,MACnB,IAAItB,IAASv+B,OAYT,MAAO,GAXP,OAAQx4wB,QAAQ6vR,UACZ,IAAK,QACD,MAAO,aACX,IAAK,SACD,MAAO,QACX,IAAK,QACD,MAAO,QACX,QACI,OAAO7vR,QAAQ6vR,SAK/B,CAGc,SAAS0ohB,MACnB,GAAIxB,IAASv+B,OACT,OAAOx4wB,QAAQ04yB,SAAS3g2B,IAGhC,CAEA,SAASug2B,MACL,OAAIvB,IAASv+B,OACF,SAEA,SAEf,CAGM,SAAUmgC,IAAezw2B,GAC3B,OAAIA,EAAE2sB,MACK3sB,EAAE2sB,MACF3sB,EAAE6W,QACF7W,EAAE6W,QAEN,GAAG7W,GACd,CCpRM,MAAO0w2B,YAAwBrC,IAOjCv41B,WAAAA,CAAmBy/K,GAIf,GAHA7iE,QACA/yH,KAAKgx2B,QAAUp7qB,EAEM,qBAAVttI,MAAuB,CAG9B,MAAM2ozB,EAA0DC,QAGhElx2B,KAAKmx2B,KAAO,IAAKF,EAAY,gBAA0B,WACvDjx2B,KAAKox2B,WAAaH,EAAY,cAI9Bjx2B,KAAKox2B,WAAaH,EAAY,eAAZA,CAA4Bjx2B,KAAKox2B,WAAYpx2B,KAAKmx2B,WAEpEnx2B,KAAKox2B,WAAa9ozB,MAAMzoD,KD+P9B,WAEF,GAA0B,qBAAfs/K,WACP,OAAOA,WAEX,GAAoB,qBAATtnK,KACP,OAAOA,KAEX,GAAsB,qBAAXmZ,OACP,OAAOA,OAEX,GAAsB,qBAAXuJ,EAAAA,EACP,OAAOA,EAAAA,EAEX,MAAM,IAAIxN,MAAM,wBACpB,CC9QyCsk1B,IAEjC,GAA+B,qBAApB34B,gBAAiC,CAGxC,MAAMu4B,EAA0DC,QAGhElx2B,KAAKsx2B,qBAAuBL,EAAY,yBAExCjx2B,KAAKsx2B,qBAAuB54B,eAEpC,CAGO,UAAMvimB,CAAKj2D,GAEd,GAAIA,EAAQ8xB,aAAe9xB,EAAQ8xB,YAAY6B,QAC3C,MAAM,IAAIq6pB,IAGd,IAAKhurB,EAAQjmJ,OACT,MAAM,IAAIlN,MAAM,sBAEpB,IAAKmzJ,EAAQjxD,IACT,MAAM,IAAIliG,MAAM,mBAGpB,MAAMsw0B,EAAkB,IAAIr91B,KAAKsx2B,qBAEjC,IAAIr61B,EAEAipK,EAAQ8xB,cACR9xB,EAAQ8xB,YAAYmzI,QAAU,KAC1Bk4gB,EAAgBjggB,QAChBnmV,EAAQ,IAAIi31B,GAAY,GAMhC,IAUI1yqB,EAVAukE,EAAiB,KACrB,GAAI7/E,EAAQT,QAAS,CACjB,MAAM8xrB,EAAYrxrB,EAAQT,QAC1BsgF,EAAY3pO,YAAW,KACnBin0B,EAAgBjggB,QAChBp9V,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAAStiD,QAAS,8BACnC/tH,EAAQ,IAAIg31B,GAAc,GAC3BsD,GAIP,IACI/1qB,QAAiBx7L,KAAKox2B,WAAWlxrB,EAAQjxD,IAAM,CAC3Cx7G,KAAMysK,EAAQnrK,QACdiuD,MAAO,WACPu3wB,aAAyC,IAA5Br6pB,EAAQgiU,gBAA2B,UAAY,cAC5D/sQ,QAAS,CACL,eAAgB,2BAChB,mBAAoB,oBACjBj1D,EAAQi1D,SAEfl7M,OAAQimJ,EAAQjmJ,OAChBs2B,KAAM,OACN2oyB,SAAU,SACV34sB,OAAQ88sB,EAAgB98sB,SAE9B,MAAOlgJ,KACL,GAAI4W,EACA,MAAMA,EAMV,MAJAjX,KAAKgx2B,QAAQ/nvB,IACTq+D,IAAStiD,QACT,4BAA4B3kI,QAE1BA,IACR,QACM0/P,GACA1pO,aAAa0pO,GAEb7/E,EAAQ8xB,cACR9xB,EAAQ8xB,YAAYmzI,QAAU,MAItC,IAAK3pJ,EAASz2B,GAAI,CACd,MAAM7qB,QAAqBs3tB,IAAmBh2qB,EAAU,QACxD,MAAM,IAAIuyqB,IAAU7ztB,GAAgBshD,EAASoqJ,WAAYpqJ,EAAS/kD,QAGtE,MAAM1hI,EAAUy81B,IAAmBh2qB,EAAUtb,EAAQgxpB,cAC/C/4qB,QAAgBpjJ,EAEtB,OAAO,IAAI051B,IACPjzqB,EAAS/kD,OACT+kD,EAASoqJ,WACTztL,EAER,CAEOw2sB,eAAAA,CAAgB1/uB,GACnB,IAAIootB,EAAkB,GAKtB,OAJI63B,IAASv+B,QAAU3w0B,KAAKmx2B,MAExBnx2B,KAAKmx2B,KAAKM,WAAWxivB,GAAK,CAAC5uH,EAAGggB,IAAMg3zB,EAAUh3zB,EAAEra,KAAK,QAElDqx0B,CACX,EAGJ,SAASm6B,IAAmBh2qB,EAAoB01oB,GAC5C,IAAIn8zB,EACJ,OAAQm8zB,GACJ,IAAK,cACDn8zB,EAAUymL,EAAS7lH,cACnB,MACJ,IAAK,OAOL,QACI5gE,EAAUymL,EAASv7J,OACnB,MANJ,IAAK,OACL,IAAK,WACL,IAAK,OACD,MAAM,IAAIlT,MAAM,GAAGmkzB,uBAM3B,OAAOn8zB,CACX,CC7JM,MAAO281B,YAAsBhD,IAG/Bv41B,WAAAA,CAAmBy/K,GACf7iE,QACA/yH,KAAKgx2B,QAAUp7qB,CACnB,CAGOugD,IAAAA,CAAKj2D,GAER,OAAIA,EAAQ8xB,aAAe9xB,EAAQ8xB,YAAY6B,QACpCljK,QAAQk3C,OAAO,IAAIqmxB,KAGzBhurB,EAAQjmJ,OAGRimJ,EAAQjxD,IAIN,IAAIt+E,SAAsB,CAAC2mB,EAASuwB,KACvC,MAAMiuJ,EAAM,IAAIh5M,eAEhBg5M,EAAIhzG,KAAKo9C,EAAQjmJ,OAASimJ,EAAQjxD,KAAM,GACxC6mH,EAAIosQ,qBAA8C7+e,IAA5B68K,EAAQgiU,iBAAuChiU,EAAQgiU,gBAC7EpsQ,EAAIO,iBAAiB,mBAAoB,kBAEzCP,EAAIO,iBAAiB,eAAgB,4BAErC,MAAMlB,EAAUj1D,EAAQi1D,QACpBA,GACA11O,OAAO8E,KAAK4wO,GACP9uO,SAASqoL,IACNonD,EAAIO,iBAAiB3nD,EAAQymD,EAAQzmD,GAAQ,IAIrDxO,EAAQgxpB,eACRp7lB,EAAIo7lB,aAAehxpB,EAAQgxpB,cAG3BhxpB,EAAQ8xB,cACR9xB,EAAQ8xB,YAAYmzI,QAAU,KAC1BrvG,EAAIsnH,QACJv1Q,EAAO,IAAIqmxB,IAAa,GAI5BhurB,EAAQT,UACRq2D,EAAIr2D,QAAUS,EAAQT,SAG1Bq2D,EAAIn2D,OAAS,KACLO,EAAQ8xB,cACR9xB,EAAQ8xB,YAAYmzI,QAAU,MAG9BrvG,EAAIr/F,QAAU,KAAOq/F,EAAIr/F,OAAS,IAClCn/E,EAAQ,IAAIm3yB,IAAa34nB,EAAIr/F,OAAQq/F,EAAI8vG,WAAY9vG,EAAIt6C,UAAYs6C,EAAIG,eAEzEpuJ,EAAO,IAAIkmxB,IAAUj4nB,EAAIt6C,UAAYs6C,EAAIG,cAAgBH,EAAI8vG,WAAY9vG,EAAIr/F,UAIrFq/F,EAAIr8L,QAAU,KACVz5C,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAAStiD,QAAS,4BAA4B8wG,EAAIr/F,WAAWq/F,EAAI8vG,eAClF/9P,EAAO,IAAIkmxB,IAAUj4nB,EAAI8vG,WAAY9vG,EAAIr/F,QAAQ,EAGrDq/F,EAAIoimB,UAAY,KACZl40B,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAAStiD,QAAS,8BACnCn9C,EAAO,IAAIomxB,IAAe,EAG9Bn4nB,EAAIK,KAAKj2D,EAAQnrK,SAAW,GAAG,IAzDxB47B,QAAQk3C,OAAO,IAAI96D,MAAM,oBAHzB4jB,QAAQk3C,OAAO,IAAI96D,MAAM,sBA8DxC,EC1EE,MAAO4k1B,YAA0BjD,IAInCv41B,WAAAA,CAAmBy/K,GAGf,GAFA7iE,QAEqB,qBAAVzqE,OAAyB4mzB,IAASv+B,OACzC3w0B,KAAK4x2B,YAAc,IAAIb,IAAgBn7qB,OACpC,IAA8B,qBAAnB94J,eAGd,MAAM,IAAI/P,MAAM,+BAFhB/sB,KAAK4x2B,YAAc,IAAIF,IAAc97qB,GAI7C,CAGOugD,IAAAA,CAAKj2D,GAER,OAAIA,EAAQ8xB,aAAe9xB,EAAQ8xB,YAAY6B,QACpCljK,QAAQk3C,OAAO,IAAIqmxB,KAGzBhurB,EAAQjmJ,OAGRimJ,EAAQjxD,IAINjvH,KAAK4x2B,YAAYz7nB,KAAKj2D,GAHlBvvI,QAAQk3C,OAAO,IAAI96D,MAAM,oBAHzB4jB,QAAQk3C,OAAO,IAAI96D,MAAM,sBAOxC,CAEO4h1B,eAAAA,CAAgB1/uB,GACnB,OAAOjvH,KAAK4x2B,YAAYjD,gBAAgB1/uB,EAC5C,EC3CE,MAAgBwxD,KCEf,IAAKoxrB,IAYAC,IDbQrxrB,IAAAsxrB,cAAgB,gBAChBtxrB,IAAAuxrB,OAAS,SCA7B,SAAYH,GAERA,EAAAA,EAAA,eAEAA,EAAAA,EAAA,2BAEAA,EAAAA,EAAA,uCAEAA,EAAAA,EAAA,4BACH,CATD,CAAYA,MAAAA,IAAiB,KAY7B,SAAYC,GAERA,EAAAA,EAAA,eAEAA,EAAAA,EAAA,kBACH,CALD,CAAYA,MAAAA,IAAc,KCRpB,MAAOp5B,IAAbvi0B,WAAAA,GACY,KAAA871B,YAAsB,EACvB,KAAA9shB,QAA+B,IAkB1C,CAhBWiY,KAAAA,GACEp9V,KAAKiy2B,aACNjy2B,KAAKiy2B,YAAa,EACdjy2B,KAAKmlV,SACLnlV,KAAKmlV,UAGjB,CAEA,UAAI5kM,GACA,OAAOvgJ,IACX,CAEA,WAAI6zM,GACA,OAAO7zM,KAAKiy2B,UAChB,ECdE,MAAOC,IAoBT/71B,WAAAA,CAAYs51B,EAAwBC,EAAkE95qB,EAAiB92K,GACnH9e,KAAK4x2B,YAAcnC,EACnBzv2B,KAAKmy2B,oBAAsBzC,EAC3B1v2B,KAAKgx2B,QAAUp7qB,EACf51L,KAAKoy2B,WAAa,IAAI15B,IACtB140B,KAAK0rB,SAAW5M,EAEhB9e,KAAKqy2B,UAAW,EAEhBry2B,KAAKsy2B,UAAY,KACjBty2B,KAAKuy2B,QAAU,IACnB,CAfA,eAAWC,GACP,OAAOxy2B,KAAKoy2B,WAAWv+pB,OAC3B,CAeO,aAAM0yF,CAAQt3K,EAAawjvB,GAU9B,GATA1D,IAAIx01B,WAAW00G,EAAK,OACpB8/uB,IAAIx01B,WAAWk41B,EAAgB,kBAC/B1D,IAAIE,KAAKwD,EAAgBX,IAAgB,kBAEzC9x2B,KAAKkmH,KAAO+I,EAEZjvH,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAASqJ,MAAO,uCAG7B8hrB,IAAmBX,IAAeY,QACP,qBAAnB510B,gBAA+E,kBAAtC,IAAIA,gBAAiBo0yB,aACtE,MAAM,IAAInkzB,MAAM,8FAGpB,MAAOroB,EAAM9C,GAAS+t2B,MAChBx6nB,EAAU,CAAE,CAACzwO,GAAO9C,KAAU5B,KAAK0rB,SAASypN,SAE5Cw9nB,EAA2B,CAC7B3gqB,YAAahyM,KAAKoy2B,WAAW7xtB,OAC7B40F,UACA11D,QAAS,IACTyiU,gBAAiBlif,KAAK0rB,SAASw2d,iBAG/BuwX,IAAmBX,IAAeY,SAClCC,EAAYzhC,aAAe,eAG/B,MAAM9yzB,QAAcpe,KAAK4y2B,kBACzB5y2B,KAAK6y2B,mBAAmBF,EAAav01B,GAIrC,MAAM001B,EAAU,GAAG7jvB,OAASxtH,KAAK0jE,QACjCnlE,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAASqJ,MAAO,oCAAoCmirB,MACrE,MAAMt3qB,QAAiBx7L,KAAK4x2B,YAAYl71B,IAAIo81B,EAASH,GACzB,MAAxBn3qB,EAASw6S,YACTh2e,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAASv6J,MAAO,qDAAqDyuK,EAASw6S,eAG/Fh2e,KAAK+y2B,YAAc,IAAIhF,IAAUvyqB,EAASoqJ,YAAc,GAAIpqJ,EAASw6S,YACrEh2e,KAAKqy2B,UAAW,GAEhBry2B,KAAKqy2B,UAAW,EAGpBry2B,KAAKgz2B,WAAahz2B,KAAKiz2B,MAAMjz2B,KAAKkmH,KAAMysvB,EAC5C,CAEQ,qBAAMC,GACV,OAAI5y2B,KAAKmy2B,0BACQny2B,KAAKmy2B,sBAGf,IACX,CAEQU,kBAAAA,CAAmB3yrB,EAAsB9hK,GACxC8hK,EAAQi1D,UACTj1D,EAAQi1D,QAAU,CAAC,GAEnB/2N,EACA8hK,EAAQi1D,QAAQ10D,IAAYsxrB,eAAiB,UAAU3z1B,IAGvD8hK,EAAQi1D,QAAQ10D,IAAYsxrB,uBACrB7xrB,EAAQi1D,QAAQ10D,IAAYsxrB,cAE3C,CAEQ,WAAMkB,CAAMhkvB,EAAa0jvB,GAC7B,IACI,KAAO3y2B,KAAKqy2B,UAAU,CAElB,MAAMj01B,QAAcpe,KAAK4y2B,kBACzB5y2B,KAAK6y2B,mBAAmBF,EAAav01B,GAErC,IACI,MAAM001B,EAAU,GAAG7jvB,OAASxtH,KAAK0jE,QACjCnlE,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAASqJ,MAAO,oCAAoCmirB,MACrE,MAAMt3qB,QAAiBx7L,KAAK4x2B,YAAYl71B,IAAIo81B,EAASH,GAEzB,MAAxBn3qB,EAASw6S,YACTh2e,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAASm0gB,YAAa,sDAEvCz7rB,KAAKqy2B,UAAW,GACe,MAAxB72qB,EAASw6S,YAChBh2e,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAASv6J,MAAO,qDAAqDyuK,EAASw6S,eAG/Fh2e,KAAK+y2B,YAAc,IAAIhF,IAAUvyqB,EAASoqJ,YAAc,GAAIpqJ,EAASw6S,YACrEh2e,KAAKqy2B,UAAW,GAGZ72qB,EAASzmL,SACT/U,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAASqJ,MAAO,0CAA0C0+qB,IAAc7zqB,EAASzmL,QAAS/U,KAAK0rB,SAASkk1B,uBACrH5v2B,KAAKsy2B,WACLty2B,KAAKsy2B,UAAU92qB,EAASzmL,UAI5B/U,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAASqJ,MAAO,sDAG3C,MAAOtwL,KACAL,KAAKqy2B,SAIFhy2B,eAAa4t2B,IAEbju2B,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAASqJ,MAAO,uDAGjC3wL,KAAK+y2B,YAAc1y2B,IACnBL,KAAKqy2B,UAAW,GARpBry2B,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAASqJ,MAAO,wDAAwDtwL,IAAE6W,aAazG,QACElX,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAASqJ,MAAO,6CAI5B3wL,KAAKwy2B,aACNxy2B,KAAKkz2B,gBAGjB,CAEO,UAAM/8nB,CAAKjsM,GACd,OAAKlqC,KAAKqy2B,SAGHt3mB,IAAY/6P,KAAKgx2B,QAAS,cAAehx2B,KAAK4x2B,YAAa5x2B,KAAKkmH,KAAOlmH,KAAKmy2B,oBAAqBjo0B,EAAMlqC,KAAK0rB,UAFxGilB,QAAQk3C,OAAO,IAAI96D,MAAM,gDAGxC,CAEO,UAAM44Q,GACT3lS,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAASqJ,MAAO,6CAGjC3wL,KAAKqy2B,UAAW,EAChBry2B,KAAKoy2B,WAAWh1gB,QAEhB,UACUp9V,KAAKgz2B,WAGXhz2B,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAASqJ,MAAO,qDAAqD3wL,KAAKkmH,SAE3F,MAAMivH,EAAiC,CAAC,GACjCzwO,EAAM9C,GAAS+t2B,MACtBx6nB,EAAQzwO,GAAQ9C,EAEhB,MAAMux2B,EAA6B,CAC/Bh+nB,QAAS,IAAKA,KAAYn1O,KAAK0rB,SAASypN,SACxC11D,QAASz/K,KAAK0rB,SAAS+zJ,QACvByiU,gBAAiBlif,KAAK0rB,SAASw2d,iBAE7B9je,QAAcpe,KAAK4y2B,kBACzB5y2B,KAAK6y2B,mBAAmBM,EAAe/01B,SACjCpe,KAAK4x2B,YAAY39tB,OAAOj0I,KAAKkmH,KAAOitvB,GAE1Cnz2B,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAASqJ,MAAO,gDACnC,QACE3wL,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAASqJ,MAAO,0CAIjC3wL,KAAKkz2B,gBAEb,CAEQA,aAAAA,GACJ,GAAIlz2B,KAAKuy2B,QAAS,CACd,IAAIvirB,EAAa,gDACbhwL,KAAK+y2B,cACL/irB,GAAc,WAAahwL,KAAK+y2B,aAEpC/y2B,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAASqJ,MAAOX,GACjChwL,KAAKuy2B,QAAQvy2B,KAAK+y2B,aAE1B,EC5NE,MAAOK,IAWTj91B,WAAAA,CAAYs51B,EAAwBC,EAAkE95qB,EAC1F92K,GACR9e,KAAK4x2B,YAAcnC,EACnBzv2B,KAAKmy2B,oBAAsBzC,EAC3B1v2B,KAAKgx2B,QAAUp7qB,EACf51L,KAAK0rB,SAAW5M,EAEhB9e,KAAKsy2B,UAAY,KACjBty2B,KAAKuy2B,QAAU,IACnB,CAEO,aAAMhskB,CAAQt3K,EAAawjvB,GAU9B,GATA1D,IAAIx01B,WAAW00G,EAAK,OACpB8/uB,IAAIx01B,WAAWk41B,EAAgB,kBAC/B1D,IAAIE,KAAKwD,EAAgBX,IAAgB,kBAEzC9x2B,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAASqJ,MAAO,+BAGjC3wL,KAAKkmH,KAAO+I,EAERjvH,KAAKmy2B,oBAAqB,CAC1B,MAAM/z1B,QAAcpe,KAAKmy2B,sBACrB/z1B,IACA6wG,IAAQA,EAAItkH,QAAQ,KAAO,EAAI,IAAM,KAAO,gBAAgBqlC,mBAAmB5xB,MAIvF,OAAO,IAAIuyB,SAAc,CAAC2mB,EAASuwB,KAC/B,IAMIwrxB,EANAC,GAAS,EACb,GAAIb,IAAmBX,IAAen10B,KAAtC,CAMA,GAAIuy0B,IAASj9kB,WAAai9kB,IAASC,YAC/BkE,EAAc,IAAIrz2B,KAAK0rB,SAAS6n1B,YAAatkvB,EAAK,CAAEizX,gBAAiBlif,KAAK0rB,SAASw2d,sBAChF,CAEH,MAAMm1V,EAAUr30B,KAAK4x2B,YAAYjD,gBAAgB1/uB,GAC3CkmH,EAA0B,CAAC,EACjCA,EAAQ68nB,OAAS36B,EACjB,MAAO3y0B,EAAM9C,GAAS+t2B,MACtBx6nB,EAAQzwO,GAAQ9C,EAEhByx2B,EAAc,IAAIrz2B,KAAK0rB,SAAS6n1B,YAAatkvB,EAAK,CAAEizX,gBAAiBlif,KAAK0rB,SAASw2d,gBAAiB/sQ,QAAS,IAAKA,KAAYn1O,KAAK0rB,SAASypN,WAGhJ,IACIk+nB,EAAY97rB,UAAal3K,IACrB,GAAIL,KAAKsy2B,UACL,IACIty2B,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAASqJ,MAAO,kCAAkC0+qB,IAAchv2B,EAAE6pC,KAAMlqC,KAAK0rB,SAASkk1B,uBACvG5v2B,KAAKsy2B,UAAUjy2B,EAAE6pC,MACnB,MAAOjzB,IAEL,YADAjX,KAAKwz2B,OAAOv81B,MAOxBo81B,EAAY55zB,QAAWp5C,IAEfiz2B,EACAtz2B,KAAKwz2B,SAEL3rxB,EAAO,IAAI96D,MAAM,kQAMzBsm1B,EAAYI,OAAS,KACjBzz2B,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAASm0gB,YAAa,oBAAoBz7rB,KAAKkmH,QAChElmH,KAAK0z2B,aAAeL,EACpBC,GAAS,EACTh8yB,GAAS,EAEf,MAAOj3D,KAEL,YADAwnF,EAAOxnF,WAlDPwnF,EAAO,IAAI96D,MAAM,gFAsD7B,CAEO,UAAMopN,CAAKjsM,GACd,OAAKlqC,KAAK0z2B,aAGH34mB,IAAY/6P,KAAKgx2B,QAAS,MAAOhx2B,KAAK4x2B,YAAa5x2B,KAAKkmH,KAAOlmH,KAAKmy2B,oBAAqBjo0B,EAAMlqC,KAAK0rB,UAFhGilB,QAAQk3C,OAAO,IAAI96D,MAAM,gDAGxC,CAEO44Q,IAAAA,GAEH,OADA3lS,KAAKwz2B,SACE7i0B,QAAQ2mB,SACnB,CAEQk8yB,MAAAA,CAAOnz2B,GACPL,KAAK0z2B,eACL1z2B,KAAK0z2B,aAAal4tB,QAClBx7I,KAAK0z2B,kBAAerw2B,EAEhBrD,KAAKuy2B,SACLvy2B,KAAKuy2B,QAAQly2B,GAGzB,ECtHE,MAAOsz2B,IAYTx91B,WAAAA,CAAYs51B,EAAwBC,EAAkE95qB,EAC1Fg6qB,EAA4BgE,EAA4Cz+nB,GAChFn1O,KAAKgx2B,QAAUp7qB,EACf51L,KAAKmy2B,oBAAsBzC,EAC3B1v2B,KAAK6z2B,mBAAqBjE,EAC1B5v2B,KAAK8z2B,sBAAwBF,EAC7B5z2B,KAAK4x2B,YAAcnC,EAEnBzv2B,KAAKsy2B,UAAY,KACjBty2B,KAAKuy2B,QAAU,KACfvy2B,KAAK+z2B,SAAW5+nB,CACpB,CAEO,aAAMoxD,CAAQt3K,EAAawjvB,GAM9B,GALA1D,IAAIx01B,WAAW00G,EAAK,OACpB8/uB,IAAIx01B,WAAWk41B,EAAgB,kBAC/B1D,IAAIE,KAAKwD,EAAgBX,IAAgB,kBACzC9x2B,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAASqJ,MAAO,sCAE7B3wL,KAAKmy2B,oBAAqB,CAC1B,MAAM/z1B,QAAcpe,KAAKmy2B,sBACrB/z1B,IACA6wG,IAAQA,EAAItkH,QAAQ,KAAO,EAAI,IAAM,KAAO,gBAAgBqlC,mBAAmB5xB,MAIvF,OAAO,IAAIuyB,SAAc,CAAC2mB,EAASuwB,KAE/B,IAAImsxB,EADJ/kvB,EAAMA,EAAI5+G,QAAQ,QAAS,MAE3B,MAAMgn0B,EAAUr30B,KAAK4x2B,YAAYjD,gBAAgB1/uB,GACjD,IAAIqkvB,GAAS,EAEb,GAAIpE,IAASv+B,OAAQ,CACjB,MAAMx7lB,EAAiC,CAAC,GACjCzwO,EAAM9C,GAAS+t2B,MACtBx6nB,EAAQzwO,GAAQ9C,EAEZy10B,IACAlimB,EAAQ10D,IAAYuxrB,QAAU,GAAG36B,KAIrC28B,EAAY,IAAIh02B,KAAK8z2B,sBAAsB7kvB,OAAK5rH,EAAW,CACvD8xO,QAAS,IAAKA,KAAYn1O,KAAK+z2B,YAIlCC,IAEDA,EAAY,IAAIh02B,KAAK8z2B,sBAAsB7kvB,IAG3CwjvB,IAAmBX,IAAeY,SAClCsB,EAAUC,WAAa,eAG3BD,EAAUP,OAAUS,IAChBl02B,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAASm0gB,YAAa,0BAA0BxskB,MACjEjvH,KAAKm02B,WAAaH,EAClBV,GAAS,EACTh8yB,GAAS,EAGb08yB,EAAUv6zB,QAAW1iB,IACjB,IAAI9f,EAAa,KAGbA,EADsB,qBAAf0tR,YAA8B5tQ,aAAiB4tQ,WAC9C5tQ,EAAM9f,MAEN,wCAGZjX,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAASm0gB,YAAa,0BAA0BxkrB,KAAS,EAG9E+81B,EAAUz8rB,UAAargK,IAEnB,GADAlX,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAASqJ,MAAO,yCAAyC0+qB,IAAcn41B,EAAQgzB,KAAMlqC,KAAK6z2B,wBACvG7z2B,KAAKsy2B,UACL,IACIty2B,KAAKsy2B,UAAUp71B,EAAQgzB,MACzB,MAAOjzB,IAEL,YADAjX,KAAKwz2B,OAAOv81B,MAMxB+81B,EAAUzB,QAAWx70B,IAGjB,GAAIu80B,EACAtz2B,KAAKwz2B,OAAOz80B,OACT,CACH,IAAI9f,EAAa,KAGbA,EADsB,qBAAf0tR,YAA8B5tQ,aAAiB4tQ,WAC9C5tQ,EAAM9f,MAEN,iSAMZ4wE,EAAO,IAAI96D,MAAM9V,KAExB,GAET,CAEOk/N,IAAAA,CAAKjsM,GACR,OAAIlqC,KAAKm02B,YAAcn02B,KAAKm02B,WAAWxuhB,aAAe3lV,KAAK8z2B,sBAAsBnhkB,MAC7E3yS,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAASqJ,MAAO,wCAAwC0+qB,IAAcnl0B,EAAMlqC,KAAK6z2B,wBAClG7z2B,KAAKm02B,WAAWh+nB,KAAKjsM,GACdyG,QAAQ2mB,WAGZ3mB,QAAQk3C,OAAO,qCAC1B,CAEO89M,IAAAA,GAOH,OANI3lS,KAAKm02B,YAGLn02B,KAAKwz2B,YAAOnw2B,GAGTstC,QAAQ2mB,SACnB,CAEQk8yB,MAAAA,CAAOz80B,GAEP/2B,KAAKm02B,aAELn02B,KAAKm02B,WAAW5B,QAAU,OAC1Bvy2B,KAAKm02B,WAAW58rB,UAAY,OAC5Bv3K,KAAKm02B,WAAW16zB,QAAU,OAC1Bz5C,KAAKm02B,WAAW34tB,QAChBx7I,KAAKm02B,gBAAa9w2B,GAGtBrD,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAASqJ,MAAO,yCAC7B3wL,KAAKuy2B,WACDvy2B,KAAKo02B,cAAcr90B,KAA8B,IAAnBA,EAAMs90B,UAAqC,MAAft90B,EAAMrK,KAEzDqK,aAAiBhK,MACxB/sB,KAAKuy2B,QAAQx70B,GAEb/2B,KAAKuy2B,UAJLvy2B,KAAKuy2B,QAAQ,IAAIxl1B,MAAM,sCAAsCgK,EAAMrK,SAASqK,EAAMo/F,QAAU,wBAOxG,CAEQi+uB,aAAAA,CAAcr90B,GAClB,OAAOA,GAAmC,mBAAnBA,EAAMs90B,UAAgD,kBAAft90B,EAAMrK,IACxE,ECvIE,MAAO4n1B,IA0BTn+1B,WAAAA,CAAY84G,GAAiD,IAApCnwG,EAAA3b,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAkC,CAAC,EV6D1D,IAAuByyL,EUrDrB,GArBI,KAAA2+qB,qBAA4D,OAKpD,KAAAC,SAAgB,CAAC,EAMhB,KAAAC,kBAA4B,EAGzC1F,IAAIx01B,WAAW00G,EAAK,OAEpBjvH,KAAKgx2B,aV2DM3t2B,KADUuyL,EU1DO92K,EAAQ82K,QV4D7B,IAAIs6qB,IAAc5orB,IAASm0gB,aAGvB,OAAX7lgB,EACOg5qB,IAAWl31B,cAGUrU,IAA3BuyL,EAAmB3sE,IACb2sE,EAGJ,IAAIs6qB,IAAct6qB,GUtErB51L,KAAKkpO,QAAUlpO,KAAK002B,YAAYzlvB,GAEhCnwG,EAAUA,GAAW,CAAC,EACtBA,EAAQ8w1B,uBAAkDvs2B,IAA9Byb,EAAQ8w1B,mBAA0C9w1B,EAAQ8w1B,kBAC/C,mBAA5B9w1B,EAAQoje,sBAA6D7+e,IAA5Byb,EAAQoje,gBAGxD,MAAM,IAAIn1d,MAAM,mEAFhBjO,EAAQoje,qBAA8C7+e,IAA5Byb,EAAQoje,iBAAuCpje,EAAQoje,gBAIrFpje,EAAQ2gK,aAA8Bp8K,IAApByb,EAAQ2gK,QAAwB,IAAa3gK,EAAQ2gK,QAEvE,IAAIk1rB,EAAuB,KACvBC,EAAyB,KAE7B,GAAI1F,IAASv+B,OAA0C,CAGnD,MAAMsgC,EAA0DC,QAChEyD,EAAkB1D,EAAY,MAC9B2D,EAAoB3D,EAAY,eAG/B/B,IAASv+B,QAA+B,qBAAdkkC,WAA8B/11B,EAAQ+11B,UAE1D3F,IAASv+B,SAAW7xzB,EAAQ+11B,WAC/BF,IACA711B,EAAQ+11B,UAAYF,GAHxB711B,EAAQ+11B,UAAYA,UAOnB3F,IAASv+B,QAAiC,qBAAhB4iC,aAAgCz01B,EAAQy01B,YAE5DrE,IAASv+B,SAAW7xzB,EAAQy01B,aACF,qBAAtBqB,IACP911B,EAAQy01B,YAAcqB,GAH1B911B,EAAQy01B,YAAcA,YAO1Bvz2B,KAAK4x2B,YAAc9y1B,EAAQ2w1B,YAAc,IAAIkC,IAAkB3x2B,KAAKgx2B,SACpEhx2B,KAAK802B,iBAAmB,eACxB902B,KAAK+02B,oBAAqB,EAC1B/02B,KAAK0rB,SAAW5M,EAEhB9e,KAAKsy2B,UAAY,KACjBty2B,KAAKuy2B,QAAU,IACnB,CAIO,WAAMr8zB,CAAMu8zB,GAOf,GANAA,EAAiBA,GAAkBX,IAAeY,OAElD3D,IAAIE,KAAKwD,EAAgBX,IAAgB,kBAEzC9x2B,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAAS0trB,MAAO,6CAA6ClD,IAAeW,QAE/D,iBAA1Bzy2B,KAAK802B,iBACL,OAAOnk0B,QAAQk3C,OAAO,IAAI96D,MAAM,4EASpC,GANA/sB,KAAK802B,iBAAmB,aAExB902B,KAAKi12B,sBAAwBj12B,KAAKk12B,eAAezC,SAC3Czy2B,KAAKi12B,sBAG0B,kBAAjCj12B,KAAK802B,iBAA2D,CAEhE,MAAM591B,EAAU,+DAMhB,OALAlX,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAASv6J,MAAO7V,SAG3BlX,KAAKm12B,aAEJxk0B,QAAQk3C,OAAO,IAAI96D,MAAM7V,IAC7B,GAAqC,cAAjClX,KAAK802B,iBAAuD,CAEnE,MAAM591B,EAAU,8GAEhB,OADAlX,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAASv6J,MAAO7V,GAC1By5B,QAAQk3C,OAAO,IAAI96D,MAAM7V,IAGpClX,KAAK+02B,oBAAqB,CAC9B,CAEO5+nB,IAAAA,CAAKjsM,GACR,MAA8B,cAA1BlqC,KAAK802B,iBACEnk0B,QAAQk3C,OAAO,IAAI96D,MAAM,yEAG/B/sB,KAAKo12B,aACNp12B,KAAKo12B,WAAa,IAAIC,IAAmBr12B,KAAK220B,YAI3C320B,KAAKo12B,WAAWj/nB,KAAKjsM,GAChC,CAEO,UAAMy7P,CAAK1uR,GACd,MAA8B,iBAA1BjX,KAAK802B,kBACL902B,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAAS0trB,MAAO,+BAA+B/91B,2EACzD05B,QAAQ2mB,WAGW,kBAA1Bt3D,KAAK802B,kBACL902B,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAAS0trB,MAAO,+BAA+B/91B,4EACzDjX,KAAKm12B,eAGhBn12B,KAAK802B,iBAAmB,gBAExB902B,KAAKm12B,aAAe,IAAIxk0B,SAAS2mB,IAE7Bt3D,KAAKu02B,qBAAuBj9yB,CAAO,UAIjCt3D,KAAKs12B,cAAcr+1B,cACnBjX,KAAKm12B,aACf,CAEQ,mBAAMG,CAAcr+1B,GAIxBjX,KAAKu12B,WAAat+1B,EAElB,UACUjX,KAAKi12B,sBACb,MAAO502B,KACL,CAMJ,GAAIL,KAAK220B,UAAW,CAChB,UACU320B,KAAK220B,UAAUhxiB,OACvB,MAAOtlS,KACLL,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAASv6J,MAAO,gDAAgD1sB,SACjFL,KAAKw12B,kBAGTx12B,KAAK220B,eAAYtz0B,OAEjBrD,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAAS0trB,MAAO,yFAEzC,CAEQ,oBAAME,CAAezC,GAGzB,IAAIxjvB,EAAMjvH,KAAKkpO,QACflpO,KAAKmy2B,oBAAsBny2B,KAAK0rB,SAASgk1B,mBAEzC,IACI,GAAI1v2B,KAAK0rB,SAAS+p1B,gBAAiB,CAC/B,GAAIz12B,KAAK0rB,SAASirzB,YAAck7B,IAAkB6D,WAO9C,MAAM,IAAI3o1B,MAAM,gFALhB/sB,KAAK220B,UAAY320B,KAAK212B,oBAAoB9D,IAAkB6D,kBAGtD112B,KAAK412B,gBAAgB3mvB,EAAKwjvB,OAIjC,CACH,IAAIoD,EAA+C,KAC/CC,EAAY,EAEhB,EAAG,CAGC,GAFAD,QAA0B712B,KAAK+12B,wBAAwB9mvB,GAEzB,kBAA1BjvH,KAAK802B,kBAAgF,iBAA1B902B,KAAK802B,iBAChE,MAAM,IAAI/n1B,MAAM,kDAGpB,GAAI8o1B,EAAkB5+1B,MAClB,MAAM,IAAI8V,MAAM8o1B,EAAkB5+1B,OAGtC,GAAK4+1B,EAA0BG,gBAC3B,MAAM,IAAIjp1B,MAAM,gMAOpB,GAJI8o1B,EAAkB5mvB,MAClBA,EAAM4mvB,EAAkB5mvB,KAGxB4mvB,EAAkBh6oB,YAAa,CAG/B,MAAMA,EAAcg6oB,EAAkBh6oB,YACtC77N,KAAKmy2B,oBAAsB,IAAMt2oB,EAGrCi6oB,UAEGD,EAAkB5mvB,KAAO6mvB,EAxO1B,KA0ON,GA1OM,MA0OFA,GAA+BD,EAAkB5mvB,IACjD,MAAM,IAAIliG,MAAM,+CAGd/sB,KAAKi22B,iBAAiBhnvB,EAAKjvH,KAAK0rB,SAASirzB,UAAWk/B,EAAmBpD,GAG7Ezy2B,KAAK220B,qBAAqBu7B,MAC1Bly2B,KAAKw02B,SAAS0B,mBAAoB,GAGR,eAA1Bl22B,KAAK802B,mBAGL902B,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAAS0trB,MAAO,8CACjCh12B,KAAK802B,iBAAmB,aAM9B,MAAOz02B,KAOL,OANAL,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAASv6J,MAAO,mCAAqC1sB,KACtEL,KAAK802B,iBAAmB,eACxB902B,KAAK220B,eAAYtz0B,EAGjBrD,KAAKu02B,uBACE5j0B,QAAQk3C,OAAOxnF,KAE9B,CAEQ,6BAAM012B,CAAwB9mvB,GAClC,MAAMkmH,EAAiC,CAAC,EACxC,GAAIn1O,KAAKmy2B,oBAAqB,CAC1B,MAAM/z1B,QAAcpe,KAAKmy2B,sBACrB/z1B,IACA+2N,EAAQ10D,IAAYsxrB,eAAiB,UAAU3z1B,KAIvD,MAAO1Z,EAAM9C,GAAS+t2B,MACtBx6nB,EAAQzwO,GAAQ9C,EAEhB,MAAMu02B,EAAen22B,KAAKo22B,qBAAqBnnvB,GAC/CjvH,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAAS0trB,MAAO,gCAAgCmB,MACjE,IACI,MAAM36qB,QAAiBx7L,KAAK4x2B,YAAYzwL,KAAKg1L,EAAc,CACvDph2B,QAAS,GACTogO,QAAS,IAAKA,KAAYn1O,KAAK0rB,SAASypN,SACxC11D,QAASz/K,KAAK0rB,SAAS+zJ,QACvByiU,gBAAiBlif,KAAK0rB,SAASw2d,kBAGnC,GAA4B,MAAxB1mT,EAASw6S,WACT,OAAOrlc,QAAQk3C,OAAO,IAAI96D,MAAM,mDAAmDyuK,EAASw6S,gBAGhG,MAAM6/X,EAAoBpl0B,KAAKuL,MAAMw/I,EAASzmL,SAM9C,QALK8g2B,EAAkBQ,kBAAoBR,EAAkBQ,iBAAmB,KAG5ER,EAAkBS,gBAAkBT,EAAkBU,cAEnDV,EACT,MAAOx12B,KACL,IAAI65I,EAAe,mDAAqD75I,IAQxE,OAPIA,eAAa0t2B,KACQ,MAAjB1t2B,IAAE21e,aACF97V,GAA8B,uFAGtCl6I,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAASv6J,MAAOmtH,GAE1BvpG,QAAQk3C,OAAO,IAAIymxB,IAAiCp0tB,IAEnE,CAEQs8tB,iBAAAA,CAAkBvnvB,EAAaqnvB,GACnC,OAAKA,EAIErnvB,IAA6B,IAAtBA,EAAItkH,QAAQ,KAAc,IAAM,KAAO,MAAM2r2B,IAHhDrnvB,CAIf,CAEQ,sBAAMgnvB,CAAiBhnvB,EAAawnvB,EAAgEZ,EAAuCa,GAC/I,IAAIC,EAAa322B,KAAKw22B,kBAAkBvnvB,EAAK4mvB,EAAkBS,iBAC/D,GAAIt22B,KAAK422B,cAAcH,GAMnB,OALAz22B,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAAS0trB,MAAO,2EACjCh12B,KAAK220B,UAAY8/B,QACXz22B,KAAK412B,gBAAgBe,EAAYD,QAEvC122B,KAAKu22B,aAAeV,EAAkBU,cAI1C,MAAMM,EAA6B,GAC7BC,EAAajB,EAAkBkB,qBAAuB,GAC5D,IAAIC,EAA4CnB,EAChD,IAAK,MAAMtqrB,KAAYurrB,EAAY,CAC/B,MAAMG,EAAmBj32B,KAAKk32B,yBAAyB3rrB,EAAUkrrB,EAAoBC,GACrF,GAAIO,aAA4Blq1B,MAE5B8p1B,EAAoBzq2B,KAAK,GAAGm/K,EAASorpB,qBACrCkgC,EAAoBzq2B,KAAK6q2B,QACtB,GAAIj32B,KAAK422B,cAAcK,GAAmB,CAE7C,GADAj32B,KAAK220B,UAAYsgC,GACZD,EAAW,CACZ,IACIA,QAAkBh32B,KAAK+12B,wBAAwB9mvB,GACjD,MAAOqxT,GACL,OAAO3vY,QAAQk3C,OAAOy4V,GAE1Bq2b,EAAa322B,KAAKw22B,kBAAkBvnvB,EAAK+nvB,EAAUV,iBAEvD,IAGI,aAFMt22B,KAAK412B,gBAAgBe,EAAYD,QACvC122B,KAAKu22B,aAAeS,EAAUT,cAEhC,MAAOj2b,GAKL,GAJAtgb,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAASv6J,MAAO,kCAAkCw+J,EAASorpB,eAAer2Z,KAC3F02b,OAAY3z2B,EACZwz2B,EAAoBzq2B,KAAK,IAAIii2B,IAA4B,GAAG9irB,EAASorpB,qBAAqBr2Z,IAAMuxb,IAAkBtmrB,EAASorpB,aAE7F,eAA1B320B,KAAK802B,iBAAiD,CACtD,MAAM591B,EAAU,uDAEhB,OADAlX,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAAS0trB,MAAO991B,GAC1By5B,QAAQk3C,OAAO,IAAI96D,MAAM7V,OAMhD,OAAI2/1B,EAAoBzz2B,OAAS,EACtButC,QAAQk3C,OAAO,IAAI0mxB,IAAgB,yEAAyEsI,EAAoB7w2B,KAAK,OAAQ6w2B,IAEjJlm0B,QAAQk3C,OAAO,IAAI96D,MAAM,+EACpC,CAEQ4o1B,mBAAAA,CAAoBh/B,GACxB,OAAQA,GACJ,KAAKk7B,IAAkB6D,WACnB,IAAK112B,KAAK0rB,SAASmp1B,UACf,MAAM,IAAI9n1B,MAAM,qDAEpB,OAAO,IAAI4m1B,IAAmB3z2B,KAAK4x2B,YAAa5x2B,KAAKmy2B,oBAAqBny2B,KAAKgx2B,QAAShx2B,KAAK0rB,SAASkk1B,kBAAoB5v2B,KAAK0rB,SAASmp1B,UAAW702B,KAAK0rB,SAASypN,SAAW,CAAC,GACjL,KAAK08nB,IAAkBsF,iBACnB,IAAKn32B,KAAK0rB,SAAS6n1B,YACf,MAAM,IAAIxm1B,MAAM,uDAEpB,OAAO,IAAIqm1B,IAA0Bpz2B,KAAK4x2B,YAAa5x2B,KAAKmy2B,oBAAqBny2B,KAAKgx2B,QAAShx2B,KAAK0rB,UACxG,KAAKmm1B,IAAkBuF,YACnB,OAAO,IAAIlF,IAAqBly2B,KAAK4x2B,YAAa5x2B,KAAKmy2B,oBAAqBny2B,KAAKgx2B,QAAShx2B,KAAK0rB,UACnG,QACI,MAAM,IAAIqB,MAAM,sBAAsB4pzB,MAElD,CAEQi/B,eAAAA,CAAgB3mvB,EAAawjvB,GAGjC,OAFAzy2B,KAAK220B,UAAW27B,UAAYty2B,KAAKsy2B,UACjCty2B,KAAK220B,UAAW47B,QAAWly2B,GAAML,KAAKw12B,gBAAgBn12B,GAC/CL,KAAK220B,UAAWpwiB,QAAQt3K,EAAKwjvB,EACxC,CAEQyE,wBAAAA,CAAyB3rrB,EAA+BkrrB,EAAmDC,GAC/G,MAAM//B,EAAYk7B,IAAkBtmrB,EAASorpB,WAC7C,GAAkB,OAAdA,QAAoCtz0B,IAAdsz0B,EAEtB,OADA320B,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAAS0trB,MAAO,uBAAuBzprB,EAASorpB,0DAC1D,IAAI5pzB,MAAM,uBAAuBw+J,EAASorpB,0DAEjD,IA0HZ,SAA0B8/B,EAAmDY,GACzE,OAAQZ,GAAkE,KAA1CY,EAAkBZ,EACtD,CA5HgBa,CAAiBb,EAAoB9/B,GAqBrC,OADA320B,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAAS0trB,MAAO,uBAAuBnD,IAAkBl7B,8CACnE,IAAIy3B,IAAuB,IAAIyD,IAAkBl7B,iCAA0CA,GAnBlG,KADwBprpB,EAASgsrB,gBAAgBtx2B,KAAKgb,GAAM6w1B,IAAe7w1B,KACvDtW,QAAQ+r2B,IAA4B,GAepD,OADA122B,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAAS0trB,MAAO,uBAAuBnD,IAAkBl7B,kEAA0Em7B,IAAe4E,QAC5J,IAAI3p1B,MAAM,IAAI8k1B,IAAkBl7B,wBAAgCm7B,IAAe4E,OAdtF,GAAK//B,IAAck7B,IAAkB6D,aAAe112B,KAAK0rB,SAASmp1B,WAC7Dl+B,IAAck7B,IAAkBsF,mBAAqBn32B,KAAK0rB,SAAS6n1B,YAEpE,OADAvz2B,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAAS0trB,MAAO,uBAAuBnD,IAAkBl7B,yDACnE,IAAIw3B,IAA0B,IAAI0D,IAAkBl7B,4CAAqDA,GAEhH320B,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAAS0trB,MAAO,wBAAwBnD,IAAkBl7B,QAC3E,IACI,OAAO320B,KAAK212B,oBAAoBh/B,GAClC,MAAOr2Z,GACL,OAAOA,EAY/B,CAEQs2b,aAAAA,CAAcjgC,GAClB,OAAOA,GAAoC,kBAAfA,GAA2B,YAAaA,CACxE,CAEQ6+B,eAAAA,CAAgBv+1B,GASpB,GARAjX,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAAS0trB,MAAO,iCAAiC/91B,4BAAgCjX,KAAK802B,qBAEvG902B,KAAK220B,eAAYtz0B,EAGjB4T,EAAQjX,KAAKu12B,YAAct+1B,EAC3BjX,KAAKu12B,gBAAaly2B,EAEY,iBAA1BrD,KAAK802B,iBAAT,CAKA,GAA8B,eAA1B902B,KAAK802B,iBAEL,MADA902B,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAAStiD,QAAS,yCAAyC/tH,2EACtE,IAAI8V,MAAM,iCAAiC9V,wEAyBrD,GAtB8B,kBAA1BjX,KAAK802B,kBAGL902B,KAAKu02B,uBAGLt91B,EACAjX,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAASv6J,MAAO,uCAAuC9V,OAExEjX,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAASm0gB,YAAa,4BAGvCz7rB,KAAKo12B,aACLp12B,KAAKo12B,WAAWzvkB,OAAOvpK,OAAO/7H,IAC1BL,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAASv6J,MAAO,0CAA0C1sB,MAAM,IAErFL,KAAKo12B,gBAAa/x2B,GAGtBrD,KAAKu22B,kBAAelz2B,EACpBrD,KAAK802B,iBAAmB,eAEpB902B,KAAK+02B,mBAAoB,CACzB/02B,KAAK+02B,oBAAqB,EAC1B,IACQ/02B,KAAKuy2B,SACLvy2B,KAAKuy2B,QAAQt71B,GAEnB,MAAO5W,KACLL,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAASv6J,MAAO,0BAA0B9V,mBAAuB5W,gBAtCtFL,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAAS0trB,MAAO,yCAAyC/91B,8EAyClF,CAEQy91B,WAAAA,CAAYzlvB,GAEhB,GAAuC,IAAnCA,EAAI93E,YAAY,WAAY,IAA8C,IAAlC83E,EAAI93E,YAAY,UAAW,GACnE,OAAO83E,EAGX,IAAKigvB,IAASj9kB,UACV,MAAM,IAAIllQ,MAAM,mBAAmBkiG,OAQvC,MAAMuovB,EAAOxm1B,OAAOE,SAASpwB,cAAc,KAI3C,OAHA022B,EAAKrvzB,KAAO8mE,EAEZjvH,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAASm0gB,YAAa,gBAAgBxskB,UAAYuovB,EAAKrvzB,UACjEqvzB,EAAKrvzB,IAChB,CAEQiuzB,oBAAAA,CAAqBnnvB,GACzB,MAAMxiG,EAAQwiG,EAAItkH,QAAQ,KAC1B,IAAIwr2B,EAAelnvB,EAAI/nG,UAAU,GAAc,IAAXuF,EAAewiG,EAAI7rH,OAASqpB,GAWhE,MAV8C,MAA1C0p1B,EAAaA,EAAa/y2B,OAAS,KACnC+y2B,GAAgB,KAEpBA,GAAgB,YAChBA,IAA2B,IAAX1p1B,EAAe,GAAKwiG,EAAI/nG,UAAUuF,IAEA,IAA9C0p1B,EAAaxr2B,QAAQ,sBACrBwr2B,IAA2B,IAAX1p1B,EAAe,IAAM,IACrC0p1B,GAAgB,oBAAsBn22B,KAAKy02B,mBAExC0B,CACX,EAQE,MAAOd,IAOTl/1B,WAAAA,CAA6Bsh2B,GAAA,KAAAA,WAAAA,EANrB,KAAAC,QAAiB,GAEjB,KAAAC,YAAsB,EAK1B332B,KAAK432B,kBAAoB,IAAIC,IAC7B732B,KAAK832B,iBAAmB,IAAID,IAE5B732B,KAAK+32B,iBAAmB/32B,KAAKg42B,WACjC,CAEO7hoB,IAAAA,CAAKjsM,GAKR,OAJAlqC,KAAKi42B,YAAY/t0B,GACZlqC,KAAK832B,mBACN932B,KAAK832B,iBAAmB,IAAID,KAEzB732B,KAAK832B,iBAAiB96uB,OACjC,CAEO2oK,IAAAA,GAGH,OAFA3lS,KAAK232B,YAAa,EAClB332B,KAAK432B,kBAAkBtgzB,UAChBt3D,KAAK+32B,gBAChB,CAEQE,WAAAA,CAAY/t0B,GAChB,GAAIlqC,KAAK032B,QAAQt02B,eAAiBpD,KAAK032B,QAAQ,YAAext0B,EAC1D,MAAM,IAAInd,MAAM,sCAAsC/sB,KAAK032B,kCAAmCxt0B,KAGlGlqC,KAAK032B,QAAQtr2B,KAAK89B,GAClBlqC,KAAK432B,kBAAkBtgzB,SAC3B,CAEQ,eAAM0gzB,GACV,OAAa,CAGT,SAFMh42B,KAAK432B,kBAAkB56uB,SAExBh9H,KAAK232B,WAAY,CACd332B,KAAK832B,kBACL932B,KAAK832B,iBAAiBjwxB,OAAO,uBAGjC,MAGJ7nF,KAAK432B,kBAAoB,IAAIC,IAE7B,MAAMK,EAAkBl42B,KAAK832B,iBAC7B932B,KAAK832B,sBAAmBz02B,EAExB,MAAM6mC,EAAmC,kBAArBlqC,KAAK032B,QAAQ,GAC7B132B,KAAK032B,QAAQ1x2B,KAAK,IAClBqv2B,IAAmB8C,eAAen42B,KAAK032B,SAE3C132B,KAAK032B,QAAQt02B,OAAS,EAEtB,UACUpD,KAAKy32B,WAAWthoB,KAAKjsM,GAC3Bgu0B,EAAgB5gzB,UAClB,MAAOrgD,IACLih2B,EAAgBrwxB,OAAO5wE,KAGnC,CAEQ,qBAAOkh2B,CAAeC,GAC1B,MAAMnzV,EAAcmzV,EAAany2B,KAAKiQ,GAAMA,EAAEq0D,aAAYt4D,QAAO,CAACgE,EAAGC,IAAMD,EAAIC,IACzE2U,EAAS,IAAIukB,WAAW61e,GAC9B,IAAIvngB,EAAS,EACb,IAAK,MAAM6X,KAAQ6i1B,EACfvt1B,EAAOnR,IAAI,IAAI01B,WAAW7Z,GAAO7X,GACjCA,GAAU6X,EAAKg1C,WAGnB,OAAO1/C,EAAOuwB,MAClB,EAGJ,MAAMy8zB,IAKF1h2B,WAAAA,GACInW,KAAKg9H,QAAU,IAAIrsF,SAAQ,CAAC2mB,EAASuwB,KAAY7nF,KAAKq42B,UAAWr42B,KAAKs42B,WAAa,CAAChhzB,EAASuwB,IACjG,CAEOvwB,OAAAA,GACHt3D,KAAKq42B,WACT,CAEOxwxB,MAAAA,CAAOsuC,GACVn2H,KAAKs42B,UAAWnivB,EACpB,ECzpBE,MAAOoivB,IAIF,YAAOh/zB,CAAM98B,GAChB,MAAO,GAAGA,IAAS871B,IAAkBC,iBACzC,CAEO,YAAOx8zB,CAAM12B,GAChB,GAAIA,EAAMA,EAAMliB,OAAS,KAAOm12B,IAAkBC,gBAC9C,MAAM,IAAIzr1B,MAAM,0BAGpB,MAAM+wG,EAAWx4G,EAAMqN,MAAM4l1B,IAAkBC,iBAE/C,OADA16uB,EAASx/F,MACFw/F,CACX,EAfcy6uB,IAAAE,oBAAsB,GACtBF,IAAAC,gBAAkBz61B,OAAO4yC,aAAa4nzB,IAAkBE,qBCYpE,MAAOC,IAEFC,qBAAAA,CAAsBC,GACzB,OAAOL,IAAkBh/zB,MAAM9I,KAAK+mF,UAAUohvB,GAClD,CAEOC,sBAAAA,CAAuB3u0B,GAC1B,IAAI4u0B,EACAC,EAEJ,GAAI74yB,IAAch2B,GAAO,CAErB,MAAM8u0B,EAAa,IAAI5p0B,WAAWlF,GAC5B+u0B,EAAiBD,EAAWru2B,QAAQ4t2B,IAAkBE,qBAC5D,IAAwB,IAApBQ,EACA,MAAM,IAAIls1B,MAAM,0BAKpB,MAAMms1B,EAAiBD,EAAiB,EACxCH,EAAc/61B,OAAO4yC,aAAax3C,MAAM,KAAMzI,MAAMC,UAAUC,MAAMjR,KAAKq52B,EAAWpo2B,MAAM,EAAGso2B,KAC7FH,EAAiBC,EAAWzuyB,WAAa2uyB,EAAkBF,EAAWpo2B,MAAMso2B,GAAgB99zB,OAAS,SAClG,CACH,MAAM+9zB,EAAmBjv0B,EACnB+u0B,EAAiBE,EAASxu2B,QAAQ4t2B,IAAkBC,iBAC1D,IAAwB,IAApBS,EACA,MAAM,IAAIls1B,MAAM,0BAKpB,MAAMms1B,EAAiBD,EAAiB,EACxCH,EAAcK,EAASjy1B,UAAU,EAAGgy1B,GACpCH,EAAiBI,EAAS/12B,OAAS812B,EAAkBC,EAASjy1B,UAAUgy1B,GAAkB,KAI9F,MAAMp7uB,EAAWy6uB,IAAkBv8zB,MAAM88zB,GACnCt9qB,EAAW/qJ,KAAKuL,MAAM8hF,EAAS,IACrC,GAAI09D,EAAS5uL,KACT,MAAM,IAAImgB,MAAM,kDAMpB,MAAO,CAACgs1B,EAJ0Cv9qB,EAKtD,EC5DG,IAAK49qB,KAAZ,SAAYA,GAERA,EAAAA,EAAA,2BAEAA,EAAAA,EAAA,2BAEAA,EAAAA,EAAA,2BAEAA,EAAAA,EAAA,uCAEAA,EAAAA,EAAA,uCAEAA,EAAAA,EAAA,eAEAA,EAAAA,EAAA,gBACH,CAfD,CAAYA,MAAAA,IAAW,KCAjB,MAAOC,IAOTlj2B,WAAAA,GACInW,KAAKgw2B,UAAY,EACrB,CAEOz51B,IAAAA,CAAKgf,GACR,IAAK,MAAM+uQ,KAAYtkS,KAAKgw2B,UACxB1rkB,EAAS/tR,KAAKgf,EAEtB,CAEOte,KAAAA,CAAM2lH,GACT,IAAK,MAAM0nK,KAAYtkS,KAAKgw2B,UACpB1rkB,EAASrtR,OACTqtR,EAASrtR,MAAM2lH,EAG3B,CAEOgkkB,QAAAA,GACH,IAAK,MAAMt8Z,KAAYtkS,KAAKgw2B,UACpB1rkB,EAASs8Z,UACTt8Z,EAASs8Z,UAGrB,CAEOy3I,SAAAA,CAAU/ziB,GAEb,OADAtkS,KAAKgw2B,UAAU5j2B,KAAKk4R,GACb,IAAIurkB,IAAoB7v2B,KAAMskS,EACzC,EC3BG,IAAKg1kB,KAAZ,SAAYA,GAERA,EAAA,4BAEAA,EAAA,wBAEAA,EAAA,sBAEAA,EAAA,8BAEAA,EAAA,2BACH,CAXD,CAAYA,MAAAA,IAAkB,KAcxB,MAAOC,IAmETpj2B,WAAAA,CAAoBqj2B,EAAyB5jrB,EAAiBl8D,EAAwB+/uB,GAvC9E,KAAAC,eAAyB,EASzB,KAAAC,qBAAuB,KAE3B352B,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAAStiD,QAAS,uNAAuN,EA6B1P+puB,IAAIx01B,WAAWi/1B,EAAY,cAC3BzK,IAAIx01B,WAAWq7K,EAAQ,UACvBm5qB,IAAIx01B,WAAWm/G,EAAU,YAEzB15H,KAAK452B,4BA1FyB,IA2F9B552B,KAAK652B,gCA1F+B,KA4FpC752B,KAAKgx2B,QAAUp7qB,EACf51L,KAAK852B,UAAYpgvB,EACjB15H,KAAKw52B,WAAaA,EAClBx52B,KAAK+52B,iBAAmBN,EACxBz52B,KAAKg62B,mBAAqB,IAAItB,IAE9B142B,KAAKw52B,WAAWlH,UAAapo0B,GAAclqC,KAAKi62B,qBAAqB/v0B,GACrElqC,KAAKw52B,WAAWjH,QAAWt71B,GAAkBjX,KAAKk62B,kBAAkBjj2B,GAEpEjX,KAAKm62B,WAAa,CAAC,EACnBn62B,KAAKo62B,SAAW,CAAC,EACjBp62B,KAAKq62B,iBAAmB,GACxBr62B,KAAKs62B,uBAAyB,GAC9Bt62B,KAAKu62B,sBAAwB,GAC7Bv62B,KAAKw62B,cAAgB,EACrBx62B,KAAKy62B,4BAA6B,EAClCz62B,KAAK802B,iBAAmBwE,IAAmBoB,aAC3C162B,KAAK+02B,oBAAqB,EAE1B/02B,KAAK262B,mBAAqB362B,KAAK852B,UAAUc,aAAa,CAAEhu2B,KAAMws2B,IAAYyB,MAC9E,CAhCO,aAAO3i2B,CAAOsh2B,EAAyB5jrB,EAAiBl8D,EAAwB+/uB,GACnF,OAAO,IAAIF,IAAcC,EAAY5jrB,EAAQl8D,EAAU+/uB,EAC3D,CAiCA,SAAIry2B,GACA,OAAOpH,KAAK802B,gBAChB,CAKA,gBAAIyB,GACA,OAAOv22B,KAAKw52B,YAAcx52B,KAAKw52B,WAAWjD,cAAwB,IACtE,CAGA,WAAIrtoB,GACA,OAAOlpO,KAAKw52B,WAAWtwoB,SAAW,EACtC,CAOA,WAAIA,CAAQj6G,GACR,GAAIjvH,KAAK802B,mBAAqBwE,IAAmBoB,cAAgB162B,KAAK802B,mBAAqBwE,IAAmBwB,aAC1G,MAAM,IAAI/t1B,MAAM,0FAGpB,IAAKkiG,EACD,MAAM,IAAIliG,MAAM,8CAGpB/sB,KAAKw52B,WAAWtwoB,QAAUj6G,CAC9B,CAMO/4E,KAAAA,GAEH,OADAl2C,KAAK+62B,cAAgB/62B,KAAKg72B,6BACnBh72B,KAAK+62B,aAChB,CAEQ,gCAAMC,GACV,GAAIh72B,KAAK802B,mBAAqBwE,IAAmBoB,aAC7C,OAAO/p0B,QAAQk3C,OAAO,IAAI96D,MAAM,0EAGpC/sB,KAAK802B,iBAAmBwE,IAAmB2B,WAC3Cj72B,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAAS0trB,MAAO,2BAEjC,UACUh12B,KAAKk12B,iBAEPhG,IAASj9kB,WAETjhQ,OAAOE,SAASoK,iBAAiB,SAAUt7B,KAAK252B,sBAGpD352B,KAAK802B,iBAAmBwE,IAAmB4B,UAC3Cl72B,KAAK+02B,oBAAqB,EAC1B/02B,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAAS0trB,MAAO,yCACnC,MAAO302B,KAGL,OAFAL,KAAK802B,iBAAmBwE,IAAmBoB,aAC3C162B,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAAS0trB,MAAO,gEAAgE302B,SAC1FswC,QAAQk3C,OAAOxnF,KAE9B,CAEQ,oBAAM602B,GACVl12B,KAAKm72B,2BAAwB932B,EAC7BrD,KAAKy62B,4BAA6B,EAElC,MAAMW,EAAmB,IAAIzq0B,SAAQ,CAAC2mB,EAASuwB,KAC3C7nF,KAAKq72B,mBAAqB/jzB,EAC1Bt3D,KAAKs72B,mBAAqBzzxB,CAAM,UAG9B7nF,KAAKw52B,WAAWtj0B,MAAMl2C,KAAK852B,UAAUrH,gBAE3C,IACI,MAAMmG,EAA4C,CAC9Cl/uB,SAAU15H,KAAK852B,UAAUp12B,KACzB89B,QAASxiC,KAAK852B,UAAUt30B,SAmB5B,GAhBAxiC,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAAS0trB,MAAO,oCAE3Bh12B,KAAKu72B,aAAav72B,KAAKg62B,mBAAmBrB,sBAAsBC,IAEtE542B,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAASm0gB,YAAa,sBAAsBz7rB,KAAK852B,UAAUp12B,UAG5E1E,KAAKw72B,kBACLx72B,KAAKy72B,sBACLz72B,KAAK072B,gCAECN,EAKFp72B,KAAKm72B,sBAKL,MAAMn72B,KAAKm72B,sBAEjB,MAAO962B,KASL,MARAL,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAAS0trB,MAAO,oCAAoC302B,gDAErEL,KAAKw72B,kBACLx72B,KAAK272B,0BAIC372B,KAAKw52B,WAAW7zkB,KAAKtlS,KACrBA,IAEd,CAMO,UAAMslS,GAET,MAAMi2kB,EAAe572B,KAAK+62B,cAE1B/62B,KAAKm12B,aAAen12B,KAAKs12B,sBACnBt12B,KAAKm12B,aAEX,UAEUyG,EACR,MAAOv72B,KACL,CAER,CAEQi12B,aAAAA,CAAcr+1B,GAClB,OAAIjX,KAAK802B,mBAAqBwE,IAAmBoB,cAC7C162B,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAAS0trB,MAAO,8BAA8B/91B,+DACxD05B,QAAQ2mB,WAGft3D,KAAK802B,mBAAqBwE,IAAmBuC,eAC7C772B,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAAS0trB,MAAO,+BAA+B/91B,4EACzDjX,KAAKm12B,eAGhBn12B,KAAK802B,iBAAmBwE,IAAmBuC,cAE3C772B,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAAS0trB,MAAO,2BAE7Bh12B,KAAK872B,uBAIL972B,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAAS0trB,MAAO,iEAEjC3+0B,aAAar2B,KAAK872B,uBAClB972B,KAAK872B,2BAAwBz42B,EAE7BrD,KAAK+72B,iBACEpr0B,QAAQ2mB,YAGnBt3D,KAAKw72B,kBACLx72B,KAAK272B,oBACL372B,KAAKm72B,sBAAwBlk2B,GAAS,IAAI8V,MAAM,uEAKzC/sB,KAAKw52B,WAAW7zkB,KAAK1uR,IAChC,CASO4vtB,MAAAA,CAAgBrvpB,GAAkC,QAAAx+D,EAAA7V,UAAAC,OAAX6V,EAAW,IAAAvI,MAAAsI,EAAA,EAAAA,EAAA,KAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAXD,EAAWC,EAAA,GAAA/V,UAAA+V,GACrD,MAAO8i2B,EAASC,GAAaj82B,KAAKk82B,wBAAwBjj2B,GACpDkj2B,EAAuBn82B,KAAKo82B,wBAAwB5kyB,EAAYv+D,EAAMgj2B,GAG5E,IAAII,EAEJ,MAAM/ka,EAAU,IAAI+ha,IAqCpB,OApCA/ha,EAAQ24Z,eAAiB,KACrB,MAAMqM,EAA4Ct82B,KAAKu82B,wBAAwBJ,EAAqBK,cAIpG,cAFOx82B,KAAKm62B,WAAWgC,EAAqBK,cAErCH,EAAaphvB,MAAK,IACdj7H,KAAKy82B,kBAAkBH,IAChC,EAGNt82B,KAAKm62B,WAAWgC,EAAqBK,cAAgB,CAACE,EAA+Dzl2B,KAC7GA,EACAqgc,EAAQrgc,MAAMA,GAEPyl2B,IAEHA,EAAgB9v2B,OAASws2B,IAAYuD,WACjCD,EAAgBzl2B,MAChBqgc,EAAQrgc,MAAM,IAAI8V,MAAM2v1B,EAAgBzl2B,QAExCqgc,EAAQspP,WAGZtpP,EAAQ/gc,KAAMmm2B,EAAgBnn1B,QAK1C8m1B,EAAer82B,KAAKy82B,kBAAkBN,GACjC//uB,OAAO/7H,IACJi3c,EAAQrgc,MAAM5W,UACPL,KAAKm62B,WAAWgC,EAAqBK,aAAa,IAGjEx82B,KAAK482B,eAAeZ,EAASK,GAEtB/ka,CACX,CAEQika,YAAAA,CAAark2B,GAEjB,OADAlX,KAAK072B,0BACE172B,KAAKw52B,WAAWrjoB,KAAKj/N,EAChC,CAMQul2B,iBAAAA,CAAkBvl2B,GACtB,OAAOlX,KAAKu72B,aAAav72B,KAAK852B,UAAUc,aAAa1j2B,GACzD,CAWOi/N,IAAAA,CAAK3+J,GAAkC,QAAA78D,EAAAxX,UAAAC,OAAX6V,EAAW,IAAAvI,MAAAiK,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAX3B,EAAW2B,EAAA,GAAAzX,UAAAyX,GAC1C,MAAOoh2B,EAASC,GAAaj82B,KAAKk82B,wBAAwBjj2B,GACpD4j2B,EAAc782B,KAAKy82B,kBAAkBz82B,KAAK882B,kBAAkBtlyB,EAAYv+D,GAAM,EAAMgj2B,IAI1F,OAFAj82B,KAAK482B,eAAeZ,EAASa,GAEtBA,CACX,CAaO35xB,MAAAA,CAAgB1L,GAAkC,QAAA48C,EAAAjxH,UAAAC,OAAX6V,EAAW,IAAAvI,MAAA0jH,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAXp7G,EAAWo7G,EAAA,GAAAlxH,UAAAkxH,GACrD,MAAO2nvB,EAASC,GAAaj82B,KAAKk82B,wBAAwBjj2B,GACpDkj2B,EAAuBn82B,KAAK882B,kBAAkBtlyB,EAAYv+D,GAAM,EAAOgj2B,GAEvEv51B,EAAI,IAAIiuB,SAAa,CAAC2mB,EAASuwB,KAEjC7nF,KAAKm62B,WAAWgC,EAAqBK,cAAiB,CAACE,EAA+Dzl2B,KAC9GA,EACA4wE,EAAO5wE,GAEAyl2B,IAEHA,EAAgB9v2B,OAASws2B,IAAYuD,WACjCD,EAAgBzl2B,MAChB4wE,EAAO,IAAI96D,MAAM2v1B,EAAgBzl2B,QAEjCqgD,EAAQolzB,EAAgB7x1B,QAG5Bg9D,EAAO,IAAI96D,MAAM,4BAA4B2v1B,EAAgB9v2B,WAKzE,MAAMyv2B,EAAer82B,KAAKy82B,kBAAkBN,GACvC//uB,OAAO/7H,IACJwnF,EAAOxnF,UAEAL,KAAKm62B,WAAWgC,EAAqBK,aAAc,IAGlEx82B,KAAK482B,eAAeZ,EAASK,EAAa,IAG9C,OAAO351B,CACX,CAOOnJ,EAAAA,CAAGi+D,EAAoBulyB,GACrBvlyB,GAAeulyB,IAIpBvlyB,EAAaA,EAAW92D,cACnB1gB,KAAKo62B,SAAS5iyB,KACfx3E,KAAKo62B,SAAS5iyB,GAAc,KAIsB,IAAlDx3E,KAAKo62B,SAAS5iyB,GAAY7sE,QAAQoy2B,IAItC/82B,KAAKo62B,SAAS5iyB,GAAYprE,KAAK2w2B,GACnC,CAiBOvj2B,GAAAA,CAAIg+D,EAAoBv9C,GAC3B,IAAKu9C,EACD,OAGJA,EAAaA,EAAW92D,cACxB,MAAMpH,EAAWtZ,KAAKo62B,SAAS5iyB,GAC/B,GAAKl+D,EAGL,GAAI2gB,EAAQ,CACR,MAAM+i1B,EAAY1j2B,EAAS3O,QAAQsvB,IAChB,IAAf+i1B,IACA1j2B,EAASkc,OAAOwn1B,EAAW,GACH,IAApB1j2B,EAASlW,eACFpD,KAAKo62B,SAAS5iyB,gBAItBx3E,KAAKo62B,SAAS5iyB,EAG7B,CAMO+6xB,OAAAA,CAAQzr2B,GACPA,GACA9G,KAAKq62B,iBAAiBju2B,KAAKtF,EAEnC,CAMOm22B,cAAAA,CAAen22B,GACdA,GACA9G,KAAKs62B,uBAAuBlu2B,KAAKtF,EAEzC,CAMOo22B,aAAAA,CAAcp22B,GACbA,GACA9G,KAAKu62B,sBAAsBnu2B,KAAKtF,EAExC,CAEQmz2B,oBAAAA,CAAqB/v0B,GASzB,GARAlqC,KAAKw72B,kBAEAx72B,KAAKy62B,6BACNvw0B,EAAOlqC,KAAKm92B,0BAA0Bjz0B,GACtClqC,KAAKy62B,4BAA6B,GAIlCvw0B,EAAM,CAEN,MAAM4zF,EAAW99H,KAAK852B,UAAUsD,cAAclz0B,EAAMlqC,KAAKgx2B,SAEzD,IAAK,MAAM951B,KAAW4mH,EAClB,OAAQ5mH,EAAQtK,MACZ,KAAKws2B,IAAYiE,WACbr92B,KAAKs92B,oBAAoBpm2B,GACzB,MACJ,KAAKki2B,IAAYmE,WACjB,KAAKnE,IAAYuD,WAAY,CACzB,MAAM712B,EAAW9G,KAAKm62B,WAAWjj2B,EAAQsl2B,cACzC,GAAI112B,EAAU,CACNoQ,EAAQtK,OAASws2B,IAAYuD,mBACtB382B,KAAKm62B,WAAWjj2B,EAAQsl2B,cAEnC,IACI112B,EAASoQ,GACX,MAAO7W,KACLL,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAASv6J,MAAO,gCAAgC+j1B,IAAezw2B,SAGxF,MAEJ,KAAK+42B,IAAYyB,KAEb,MACJ,KAAKzB,IAAYoE,MAAO,CACpBx92B,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAASm0gB,YAAa,uCAEvC,MAAMxkrB,EAAQC,EAAQD,MAAQ,IAAI8V,MAAM,sCAAwC7V,EAAQD,YAAS5T,GAElE,IAA3B6T,EAAQum2B,eAKRz92B,KAAKw52B,WAAW7zkB,KAAK1uR,GAGrBjX,KAAKm12B,aAAen12B,KAAKs12B,cAAcr+1B,GAG3C,MAEJ,QACIjX,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAAStiD,QAAS,yBAAyB9tH,EAAQtK,UAMpF5M,KAAKy72B,qBACT,CAEQ0B,yBAAAA,CAA0Bjz0B,GAC9B,IAAIwz0B,EACA3E,EAEJ,KACKA,EAAe2E,GAAmB192B,KAAKg62B,mBAAmBnB,uBAAuB3u0B,GACpF,MAAO7pC,KACL,MAAM6W,EAAU,qCAAuC7W,IACvDL,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAASv6J,MAAO7V,GAEjC,MAAMD,EAAQ,IAAI8V,MAAM7V,GAExB,MADAlX,KAAKs72B,mBAAmBrk2B,GAClBA,EAEV,GAAIym2B,EAAgBzm2B,MAAO,CACvB,MAAMC,EAAU,oCAAsCwm2B,EAAgBzm2B,MACtEjX,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAASv6J,MAAO7V,GAEjC,MAAMD,EAAQ,IAAI8V,MAAM7V,GAExB,MADAlX,KAAKs72B,mBAAmBrk2B,GAClBA,EAMV,OAJIjX,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAAS0trB,MAAO,8BAGrCh12B,KAAKq72B,qBACEtC,CACX,CAEQ2C,uBAAAA,GACA172B,KAAKw52B,WAAWhF,SAAS0B,oBAM7Bl22B,KAAK052B,gBAAiB,IAAIj42B,MAAOC,UAAY1B,KAAK652B,gCAElD752B,KAAK272B,oBACT,CAEQF,mBAAAA,GACJ,KAAKz72B,KAAKw52B,WAAWhF,WAAax02B,KAAKw52B,WAAWhF,SAAS0B,qBAEvDl22B,KAAK292B,eAAiBvn1B,YAAW,IAAMp2B,KAAK492B,iBAAiB592B,KAAK452B,kCAGnCv22B,IAA3BrD,KAAK692B,mBACT,CACI,IAAIC,EAAW992B,KAAK052B,gBAAiB,IAAIj42B,MAAOC,UAC5Co82B,EAAW,IACXA,EAAW,GAIf992B,KAAK692B,kBAAoBzn1B,YAAW6lG,UAChC,GAAIj8H,KAAK802B,mBAAqBwE,IAAmB4B,UAC7C,UACUl72B,KAAKu72B,aAAav72B,KAAK262B,oBAC/B,MAGE362B,KAAK272B,uBAGdmC,GAGf,CAGQF,aAAAA,GAIJ592B,KAAKw52B,WAAW7zkB,KAAK,IAAI54Q,MAAM,uEACnC,CAEQuw1B,mBAAAA,CAAoBS,GACxB,MAAMt3iB,EAAUzmU,KAAKo62B,SAAS2D,EAAkB112B,OAAOqY,eACvD,GAAI+lT,EAAS,CACT,IACIA,EAAQpgU,SAAS0a,GAAMA,EAAE5H,MAAMnZ,KAAM+92B,EAAkB562B,aACzD,MAAO9C,KACLL,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAASv6J,MAAO,6BAA6Bgx1B,EAAkB112B,OAAOqY,8BAA8BrgB,SAGzH,GAAI092B,EAAkBvB,aAAc,CAEhC,MAAMtl2B,EAAU,qFAChBlX,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAASv6J,MAAO7V,GAGjClX,KAAKm12B,aAAen12B,KAAKs12B,cAAc,IAAIvo1B,MAAM7V,UAGrDlX,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAAStiD,QAAS,mCAAmC+4uB,EAAkB112B,iBAEhG,CAEQ6x2B,iBAAAA,CAAkBjj2B,GACtBjX,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAAS0trB,MAAO,kCAAkC/91B,4BAAgCjX,KAAK802B,qBAGxG902B,KAAKm72B,sBAAwBn72B,KAAKm72B,uBAAyBlk2B,GAAS,IAAI8V,MAAM,iFAI1E/sB,KAAKq72B,oBACLr72B,KAAKq72B,qBAGTr72B,KAAKg+2B,0BAA0B/m2B,GAAS,IAAI8V,MAAM,uEAElD/sB,KAAKw72B,kBACLx72B,KAAK272B,oBAED372B,KAAK802B,mBAAqBwE,IAAmBuC,cAC7C772B,KAAK+72B,eAAe9k2B,GACbjX,KAAK802B,mBAAqBwE,IAAmB4B,WAAal72B,KAAK+52B,iBAEtE/52B,KAAKi+2B,WAAWhn2B,GACTjX,KAAK802B,mBAAqBwE,IAAmB4B,WACpDl72B,KAAK+72B,eAAe9k2B,EAQ5B,CAEQ8k2B,cAAAA,CAAe9k2B,GACnB,GAAIjX,KAAK+02B,mBAAoB,CACzB/02B,KAAK802B,iBAAmBwE,IAAmBoB,aAC3C162B,KAAK+02B,oBAAqB,EAEtB7F,IAASj9kB,WACTjhQ,OAAOE,SAASkK,oBAAoB,SAAUp7B,KAAK252B,sBAGvD,IACI352B,KAAKq62B,iBAAiBh02B,SAASga,GAAMA,EAAElH,MAAMnZ,KAAM,CAACiX,MACtD,MAAO5W,KACLL,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAASv6J,MAAO,0CAA0C9V,mBAAuB5W,UAG9G,CAEQ,gBAAM492B,CAAWhn2B,GACrB,MAAMin2B,EAAqBz82B,KAAK0jE,MAChC,IAAIg5yB,EAA4B,EAC5BC,OAAuB/62B,IAAV4T,EAAsBA,EAAQ,IAAI8V,MAAM,mDAErDsx1B,EAAiBr+2B,KAAKs+2B,mBAAmBH,IAA6B,EAAGC,GAE7E,GAAuB,OAAnBC,EAGA,OAFAr+2B,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAAS0trB,MAAO,2GACjCh12B,KAAK+72B,eAAe9k2B,GAYxB,GARAjX,KAAK802B,iBAAmBwE,IAAmBwB,aAEvC7j2B,EACAjX,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAASm0gB,YAAa,6CAA6CxkrB,OAEpFjX,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAASm0gB,YAAa,4BAGA,IAAvCz7rB,KAAKs62B,uBAAuBl32B,OAAc,CAC1C,IACIpD,KAAKs62B,uBAAuBj02B,SAASga,GAAMA,EAAElH,MAAMnZ,KAAM,CAACiX,MAC5D,MAAO5W,KACLL,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAASv6J,MAAO,iDAAiD9V,mBAAuB5W,SAI7G,GAAIL,KAAK802B,mBAAqBwE,IAAmBwB,aAE7C,YADA962B,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAAS0trB,MAAO,yFAKzC,KAA0B,OAAnBqJ,GAAyB,CAQ5B,GAPAr+2B,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAASm0gB,YAAa,4BAA4B0iL,mBAA2CE,eAExG,IAAI1t0B,SAAS2mB,IACft3D,KAAK872B,sBAAwB1l1B,WAAWkhC,EAAS+mzB,EAAgB,IAErEr+2B,KAAK872B,2BAAwBz42B,EAEzBrD,KAAK802B,mBAAqBwE,IAAmBwB,aAE7C,YADA962B,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAAS0trB,MAAO,qFAIrC,IAMI,SALMh12B,KAAKk12B,iBAEXl12B,KAAK802B,iBAAmBwE,IAAmB4B,UAC3Cl72B,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAASm0gB,YAAa,2CAEG,IAAtCz7rB,KAAKu62B,sBAAsBn32B,OAC3B,IACIpD,KAAKu62B,sBAAsBl02B,SAASga,GAAMA,EAAElH,MAAMnZ,KAAM,CAACA,KAAKw52B,WAAWjD,iBAC3E,MAAOl22B,KACLL,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAASv6J,MAAO,uDAAuD/sB,KAAKw52B,WAAWjD,8BAA8Bl22B,SAI9I,OACF,MAAOA,KAGL,GAFAL,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAASm0gB,YAAa,8CAA8Cp7rB,SAEjFL,KAAK802B,mBAAqBwE,IAAmBwB,aAM7C,OALA962B,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAAS0trB,MAAO,4BAA4Bh12B,KAAK802B,mGAE9D902B,KAAK802B,mBAA4BwE,IAAmBuC,eACpD772B,KAAK+72B,kBAKbqC,EAAa/92B,eAAa0sB,MAAQ1sB,IAAI,IAAI0sB,MAAM1sB,IAAEyW,YAClDun2B,EAAiBr+2B,KAAKs+2B,mBAAmBH,IAA6B182B,KAAK0jE,MAAQ+4yB,EAAoBE,IAI/Gp+2B,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAASm0gB,YAAa,+CAA+Ch6rB,KAAK0jE,MAAQ+4yB,YAA6BC,gDAEhIn+2B,KAAK+72B,gBACT,CAEQuC,kBAAAA,CAAmBxQ,EAA4ByQ,EAA6BC,GAChF,IACI,OAAOx+2B,KAAK+52B,iBAAkBnM,6BAA6B,CACvD2Q,sBACAzQ,qBACA0Q,gBAEN,MAAOn+2B,KAEL,OADAL,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAASv6J,MAAO,6CAA6C+g1B,MAAuByQ,mBAAqCl+2B,SACnI,KAEf,CAEQ292B,yBAAAA,CAA0B/m2B,GAC9B,MAAMk6M,EAAYnxN,KAAKm62B,WACvBn62B,KAAKm62B,WAAa,CAAC,EAEnB162B,OAAO8E,KAAK4sN,GACP9qN,SAASiG,IACN,MAAMxF,EAAWqqN,EAAU7kN,GAC3B,IACIxF,EAAS,KAAMmQ,GACjB,MAAO5W,KACLL,KAAKgx2B,QAAQ/nvB,IAAIq+D,IAASv6J,MAAO,wCAAwC9V,mBAAuB651B,IAAezw2B,WAG/H,CAEQs72B,iBAAAA,GACA372B,KAAK692B,oBACLxn1B,aAAar2B,KAAK692B,mBAClB792B,KAAK692B,uBAAoBx62B,EAEjC,CAEQm42B,eAAAA,GACAx72B,KAAK292B,gBACLtn1B,aAAar2B,KAAK292B,eAE1B,CAEQb,iBAAAA,CAAkBtlyB,EAAoBv+D,EAAawl2B,EAAsBxC,GAC7E,GAAIwC,EACA,OAAyB,IAArBxC,EAAU742B,OACH,CACHD,UAAW8V,EACXgj2B,YACA5z2B,OAAQmvE,EACR5qE,KAAMws2B,IAAYiE,YAGf,CACHl62B,UAAW8V,EACX5Q,OAAQmvE,EACR5qE,KAAMws2B,IAAYiE,YAGvB,CACH,MAAMb,EAAex82B,KAAKw62B,cAG1B,OAFAx62B,KAAKw62B,gBAEoB,IAArByB,EAAU742B,OACH,CACHD,UAAW8V,EACXuj2B,aAAcA,EAAa1l2B,WAC3Bml2B,YACA5z2B,OAAQmvE,EACR5qE,KAAMws2B,IAAYiE,YAGf,CACHl62B,UAAW8V,EACXuj2B,aAAcA,EAAa1l2B,WAC3BzO,OAAQmvE,EACR5qE,KAAMws2B,IAAYiE,YAIlC,CAEQT,cAAAA,CAAeZ,EAA+BK,GAClD,GAAuB,IAAnBL,EAAQ542B,OAAZ,CAKKi52B,IACDA,EAAe1r0B,QAAQ2mB,WAK3B,IAAK,MAAMonzB,KAAY1C,EACnBA,EAAQ0C,GAAUrmC,UAAU,CACxBz3I,SAAUA,KACNy7K,EAAeA,EAAaphvB,MAAK,IAAMj7H,KAAKy82B,kBAAkBz82B,KAAK2+2B,yBAAyBD,KAAW,EAE3Gzn2B,MAAQ2lH,IACJ,IAAI1lH,EAEAA,EADA0lH,aAAe7vG,MACL6vG,EAAI1lH,QACP0lH,GAAOA,EAAI9lH,SACR8lH,EAAI9lH,WAEJ,gBAGdul2B,EAAeA,EAAaphvB,MAAK,IAAMj7H,KAAKy82B,kBAAkBz82B,KAAK2+2B,yBAAyBD,EAAUxn2B,KAAU,EAEpHX,KAAOgf,IACH8m1B,EAAeA,EAAaphvB,MAAK,IAAMj7H,KAAKy82B,kBAAkBz82B,KAAK4+2B,yBAAyBF,EAAUnp1B,KAAO,IAI7H,CAEQ2m1B,uBAAAA,CAAwBjj2B,GAC5B,MAAM+i2B,EAAgC,GAChCC,EAAsB,GAC5B,IAAK,IAAI9v2B,EAAI,EAAGA,EAAI8M,EAAK7V,OAAQ+I,IAAK,CAClC,MAAM0gB,EAAW5T,EAAK9M,GACtB,GAAInM,KAAKk2M,cAAcrpL,GAAW,CAC9B,MAAM6x1B,EAAW1+2B,KAAKw62B,cACtBx62B,KAAKw62B,gBAELwB,EAAQ0C,GAAY7x1B,EACpBov1B,EAAU7v2B,KAAKsy2B,EAAS5n2B,YAGxBmC,EAAKuc,OAAOrpB,EAAG,IAIvB,MAAO,CAAC6v2B,EAASC,EACrB,CAEQ/lqB,aAAAA,CAAc19I,GAElB,OAAOA,GAAOA,EAAI6/wB,WAAsC,oBAAlB7/wB,EAAI6/wB,SAC9C,CAEQ+jC,uBAAAA,CAAwB5kyB,EAAoBv+D,EAAagj2B,GAC7D,MAAMO,EAAex82B,KAAKw62B,cAG1B,OAFAx62B,KAAKw62B,gBAEoB,IAArByB,EAAU742B,OACH,CACHD,UAAW8V,EACXuj2B,aAAcA,EAAa1l2B,WAC3Bml2B,YACA5z2B,OAAQmvE,EACR5qE,KAAMws2B,IAAYyF,kBAGf,CACH172B,UAAW8V,EACXuj2B,aAAcA,EAAa1l2B,WAC3BzO,OAAQmvE,EACR5qE,KAAMws2B,IAAYyF,iBAG9B,CAEQtC,uBAAAA,CAAwBpm1B,GAC5B,MAAO,CACHqm1B,aAAcrm1B,EACdvpB,KAAMws2B,IAAY0F,iBAE1B,CAEQF,wBAAAA,CAAyBzo1B,EAAYZ,GACzC,MAAO,CACHin1B,aAAcrm1B,EACdZ,OACA3oB,KAAMws2B,IAAYmE,WAE1B,CAEQoB,wBAAAA,CAAyBxo1B,EAAYlf,EAAa4T,GACtD,OAAI5T,EACO,CACHA,QACAul2B,aAAcrm1B,EACdvpB,KAAMws2B,IAAYuD,YAInB,CACHH,aAAcrm1B,EACdtL,SACAje,KAAMws2B,IAAYuD,WAE1B,ECl/BE,MAAOoC,IAAb5o2B,WAAAA,GAGoB,KAAAzR,KANmB,OAQnB,KAAA89B,QAAkB,EAGlB,KAAAiw0B,eAAiCX,IAAen10B,IAmGpE,CA5FWyg1B,aAAAA,CAAc931B,EAAeswK,GAEhC,GAAqB,kBAAVtwK,EACP,MAAM,IAAIyH,MAAM,2DAGpB,IAAKzH,EACD,MAAO,GAGI,OAAXswK,IACAA,EAASg5qB,IAAWl31B,UAIxB,MAAMomH,EAAWy6uB,IAAkBv8zB,MAAM12B,GAEnC051B,EAAc,GACpB,IAAK,MAAM9n2B,KAAW4mH,EAAU,CAC5B,MAAMmhvB,EAAgBxu0B,KAAKuL,MAAM9kC,GACjC,GAAkC,kBAAvB+n2B,EAAcry2B,KACrB,MAAM,IAAImgB,MAAM,oBAEpB,OAAQky1B,EAAcry2B,MAClB,KAAKws2B,IAAYiE,WACbr92B,KAAKk/2B,qBAAqBD,GAC1B,MACJ,KAAK7F,IAAYmE,WACbv92B,KAAKm/2B,qBAAqBF,GAC1B,MACJ,KAAK7F,IAAYuD,WACb382B,KAAKo/2B,qBAAqBH,GAC1B,MACJ,KAAK7F,IAAYyB,KAGjB,KAAKzB,IAAYoE,MAEb,MACJ,QAEI5nrB,EAAO3sE,IAAIq+D,IAASm0gB,YAAa,yBAA2BwjL,EAAcry2B,KAAO,cACjF,SAERoy2B,EAAY5y2B,KAAK6y2B,GAGrB,OAAOD,CACX,CAOOpE,YAAAA,CAAa1j2B,GAChB,OAAOqh2B,IAAkBh/zB,MAAM9I,KAAK+mF,UAAUtgH,GAClD,CAEQgo2B,oBAAAA,CAAqBho2B,GACzBlX,KAAKq/2B,sBAAsBno2B,EAAQ7O,OAAQ,gDAEdhF,IAAzB6T,EAAQsl2B,cACRx82B,KAAKq/2B,sBAAsBno2B,EAAQsl2B,aAAc,0CAEzD,CAEQ2C,oBAAAA,CAAqBjo2B,GAGzB,GAFAlX,KAAKq/2B,sBAAsBno2B,EAAQsl2B,aAAc,gDAE5Bn52B,IAAjB6T,EAAQqe,KACR,MAAM,IAAIxI,MAAM,0CAExB,CAEQqy1B,oBAAAA,CAAqBlo2B,GACzB,GAAIA,EAAQ2T,QAAU3T,EAAQD,MAC1B,MAAM,IAAI8V,MAAM,4CAGf7V,EAAQ2T,QAAU3T,EAAQD,OAC3BjX,KAAKq/2B,sBAAsBno2B,EAAQD,MAAO,2CAG9CjX,KAAKq/2B,sBAAsBno2B,EAAQsl2B,aAAc,0CACrD,CAEQ6C,qBAAAA,CAAsBz92B,EAAYs4I,GACtC,GAAqB,kBAAVt4I,GAAgC,KAAVA,EAC7B,MAAM,IAAImrB,MAAMmtH,EAExB,ECvGJ,MAAMoluB,IAA+C,CACjD5urB,MAAOpJ,IAASqJ,MAChB4urB,MAAOj4rB,IAAS0trB,MAChBz40B,KAAM+qJ,IAASm0gB,YACf+jL,YAAal4rB,IAASm0gB,YACtBpkrB,KAAMiwK,IAAStiD,QACf0B,QAAS4gD,IAAStiD,QAClB/tH,MAAOqwK,IAASv6J,MAChB0y1B,SAAUn4rB,IAAS+orB,SACnBqP,KAAMp4rB,IAAS4K,MAgBb,MAAOytrB,IA0CFC,gBAAAA,CAAiBC,GAGpB,GAFA9Q,IAAIx01B,WAAWsl2B,EAAS,gBAoINx82B,IAlILw82B,EAkIH52vB,IAjINjpH,KAAK41L,OAASiqrB,OACX,GAAuB,kBAAZA,EAAsB,CACpC,MAAM9vrB,EA7DlB,SAAuBrrL,GAInB,MAAM27H,EAAUi/uB,IAAoB562B,EAAKgc,eACzC,GAAuB,qBAAZ2/G,EACP,OAAOA,EAEP,MAAM,IAAItzG,MAAM,sBAAsBroB,IAE9C,CAmD6Bo72B,CAAcD,GAC/B7/2B,KAAK41L,OAAS,IAAIs6qB,IAAcngrB,QAEhC/vL,KAAK41L,OAAS,IAAIs6qB,IAAc2P,GAGpC,OAAO7/2B,IACX,CA0BO+/2B,OAAAA,CAAQ9wvB,EAAa+wvB,GAiBxB,OAhBAjR,IAAIx01B,WAAW00G,EAAK,OACpB8/uB,IAAIC,WAAW//uB,EAAK,OAEpBjvH,KAAKivH,IAAMA,EAKPjvH,KAAKig3B,sBAD6B,kBAA3BD,EACsB,IAAKhg3B,KAAKig3B,yBAA0BD,GAEpC,IACtBhg3B,KAAKig3B,sBACRtpC,UAAWqpC,GAIZhg3B,IACX,CAMOkg3B,eAAAA,CAAgBxmvB,GAInB,OAHAq1uB,IAAIx01B,WAAWm/G,EAAU,YAEzB15H,KAAK05H,SAAWA,EACT15H,IACX,CAmBOmg3B,sBAAAA,CAAuBC,GAC1B,GAAIpg3B,KAAKy52B,gBACL,MAAM,IAAI1s1B,MAAM,2CAWpB,OARKqz1B,EAEM1v2B,MAAMgB,QAAQ0u2B,GACrBpg3B,KAAKy52B,gBAAkB,IAAIhM,IAAuB2S,GAElDpg3B,KAAKy52B,gBAAkB2G,EAJvBpg3B,KAAKy52B,gBAAkB,IAAIhM,IAOxBzt2B,IACX,CAMOy4c,KAAAA,GAGH,MAAMwna,EAAwBjg3B,KAAKig3B,uBAAyB,CAAC,EAS7D,QANqC582B,IAAjC482B,EAAsBrqrB,SAEtBqqrB,EAAsBrqrB,OAAS51L,KAAK41L,SAInC51L,KAAKivH,IACN,MAAM,IAAIliG,MAAM,4FAEpB,MAAMys1B,EAAa,IAAIlF,IAAet02B,KAAKivH,IAAKgxvB,GAEhD,OAAO1G,IAAcrh2B,OACjBsh2B,EACAx52B,KAAK41L,QAAUg5qB,IAAWl31B,SAC1B1X,KAAK05H,UAAY,IAAIqlvB,IACrB/+2B,KAAKy52B,gBACb,ECtMJ,IAAI4G,IAA2B,WAQ3B,SAASA,EAAUl40B,EAAQk8d,GAEvBrkgB,KAAKihsB,KAAO,IAAIhqE,IAChBj3nB,KAAKq9sB,UAAY,GACjBr9sB,KAAKmoC,OAASA,EACVnoC,KAAKmoC,OAAOgwP,cAGhBn4R,KAAKoK,MAAQi6f,EAAQC,WAAW,SAChCtkgB,KAAKmoC,OAAO5uB,GAAG6hH,IAAcp7H,KAAK8qZ,aAAc9qZ,MAChDA,KAAKmoC,OAAO5uB,GAAG6hH,IAAgBp7H,KAAKo3I,QAASp3I,MAC7CA,KAAKmoC,OAAO5uB,GAAG6hH,IAAmBp7H,KAAKukW,gBAAiBvkW,MACxDA,KAAKmoC,OAAO5uB,GAAG6hH,IAAwBp7H,KAAK80a,OAAQ90a,MACpDA,KAAKmoC,OAAO5uB,GAAG6hH,IAAgCp7H,KAAKsg3B,eAAgBtg3B,MACpEA,KAAKmoC,OAAO5uB,GAAG6hH,IAAgBp7H,KAAKug3B,kBAAmBvg3B,MACvDA,KAAKmoC,OAAO5uB,GAAG6hH,IAAyBp7H,KAAKug3B,kBAAmBvg3B,MAChEA,KAAKimgB,eAAiB5B,EAC1B,CA4VA,OA3VAg8W,EAAU1v2B,UAAUm6Y,aAAe,SAAUzqZ,IACrCA,EAAEgI,OAAO6/Q,UAAUh1P,SAAS,uBAAyB7yB,EAAEgI,OAAO6/Q,UAAUh1P,SAAS,uBAC7ElzB,KAAKmoC,OAAOspkB,gBAChBpxmB,EAAEgO,iBAENrO,KAAKwg3B,qBAAqB/qxB,GAAQp1F,EAAEgI,OAAQ,MAChD,EACAg42B,EAAU1v2B,UAAU6v2B,qBAAuB,SAAUn42B,GACjDrI,KAAK+zZ,KAAO/zZ,KAAKimgB,eAAe3B,WAAW,gBAC3C,IAII63G,EAJAjM,EAAOlwmB,KAAKmoC,OACZT,EAAQ1nC,KAAKmoC,OAAO+8kB,kBACpBu7P,EAAazg3B,KAAKmoC,OAAO2ylB,wBAAwB13nB,OAAS,EAG1Ds92B,EAAar42B,GAAUA,EAAO6/Q,UAAUh1P,SAAS,uBACrD,MAAM7qB,IAAWA,EAAO6/Q,UAAUh1P,SAAS,yBAA0B7qB,EAAO6/Q,UAAUh1P,SAAS,sBACvF7qB,GAAUA,EAAO6/Q,UAAUh1P,SAAS,kBAD5C,CAIA,IAAIumlB,EAAKpxmB,EAAOwtR,cACZl+N,EAAM8hjB,EAAGnnlB,aAAa,YACtBovlB,EAASxR,EAAKooC,oBAAoB3glB,GAClCgpzB,GAAgB,EAChBj0O,EAAU1soB,KAAKmoC,OAAO+8kB,kBAAkBtrlB,cAAcgjlB,KAAgB92mB,SAAS2zmB,EAAG9oC,SAAW,GACjG,GAAItokB,EAAO6/Q,UAAUh1P,SAAS,uBAAwB,CAClD,IAAIgX,EAAOw3kB,EAAOx3kB,KAClB,GAAIlqC,KAAK4snB,YAAY8f,GACjBA,EAAQvmoB,MAAMi+J,QAAU,GACxB8rc,EAAK72Z,OAAOj+E,IAA0B,CAAElxF,KAAMA,EAC1CiykB,UAAWjM,EAAKiM,UAAWykQ,cAAev42B,EAAQq42B,WAAYA,IAClEC,GAAgB,OAEf,GAAIzwQ,EAAKy6D,qBAAuBz6D,EAAKiM,UAAW,CACjD,IAAIkC,EAAQ5P,IAAO,YACfoyQ,EAAY7g3B,KAAKmoC,OAAOrnC,cAAc,KAAM,CAAEC,UAAW,cAAe0oV,MAAO,CAAE,WAAY40R,KAC7FyiQ,EAAa9g3B,KAAKmoC,OAAOrnC,cAAc,KAAM,CAAEC,UAAW,eAAgB0oV,MAAO,CAAE,MAAS,SAC5FwsR,EAAUj2mB,KAAKmoC,OAAOyvkB,oBAAoBx0mB,OAC1CpD,KAAKmoC,OAAOo9mB,qBACZtvC,IAEJ6qQ,EAAW9r1B,aAAa,UAAWihlB,EAAQn/lB,YAC3C,IAAI+1Y,EAAM,IAAIooN,IAAI,CACdsB,WAAW,EACXp7L,UAAU,EACVxjX,IAAK0mjB,EACLuO,aAAa,EACbj7C,MAAO,CAAC,IAAI6jC,IAAK,CAAEQ,SAAU/Y,IAASwiB,SAAW,IAAIjK,IAAK,CAAE+I,YAAY,EAAM1uU,SAAS,OAE3Fg9G,EAAImwN,UAAY0E,EAAO/pjB,IACvB,IAAK,IAAIxrD,EAAI,EAAGwjD,EAAMugjB,EAAKwB,cAAcvke,QAAQ/pI,OAAQ+I,EAAIwjD,EAAKxjD,IAC9D002B,EAAUnv1B,YAAY1xB,KAAKmoC,OAAOrnC,cAAc,KAAM,CAAEC,UAAW,kBACnE8rZ,EAAI8kL,MAAMnikB,QAAQ,IAAIgmmB,IAAK,CAAEQ,SAAU/Y,IAASwiB,UAKpD,GAHAohQ,EAAUnv1B,YAAY1xB,KAAKmoC,OAAOrnC,cAAc,KAAM,CAAEC,UAAW,qBAAsB0oV,MAAO,CAAE,MAAS,UAC3Go3hB,EAAUnv1B,YAAYov1B,GACtBrnQ,EAAGjllB,WAAWG,aAAaks1B,EAAWpnQ,EAAG7klB,aACrCs7kB,EAAKkM,eAAgB,CACrB,IAAIrO,EAAkB/tmB,KAAKmoC,OAAOsoU,SAA4C,kBAAzBy/P,EAAKkM,eACtDpO,EAAehumB,KAAKmoC,OAAO8lkB,eAAiBjumB,KAAKmoC,OAAO8lkB,cAAcC,eACtElumB,KAAKmoC,OAAO8lkB,cAAcC,cAAcz9P,QACxCyqR,EAAmBhrB,EAAK/6lB,QAAQghB,GAAK,iBACrC43kB,GAAmBC,GACnBkC,EAAKy6D,mBAALz6D,CAAyBhmkB,EAAMgmkB,EAAM,iBAAkBgrB,EAAkB,KAAM,KAAM4lP,GACrF9g3B,KAAKmoC,OAAOukf,mBAGZyhF,IAAe2yQ,EAAY5wQ,EAAKy6D,mBAALz6D,CAAyBhmkB,EAAMgmkB,EAAM,iBAAkBgrB,OAAkB73nB,OAAWA,OAAWA,EAAWrD,KAAKmoC,OAAa,MAE/J,KACK,CACDg0kB,EAAY,IAAI53P,IAAKvkX,KAAK+tvB,aAAa79I,EAAMwR,EAAQxR,EAAK+rE,YAC1Dj8qB,KAAKq9sB,UAAUjxsB,KAAK+vmB,GAChBA,EAAUntb,QACVmtb,EAAUntb,MAAQmtb,EAAUntb,MAAMztL,SAEtC46mB,EAAqB,cAAI,CACrBkG,SAAUnS,EAAK/6lB,QAAQghB,GACvB63tB,kBAAmB99I,EAAKqD,0BACxB06I,eAAgB/9I,EAAKiM,UAAUj0Y,YAC/Bonc,oBAAqBp/D,EAAKiM,UAAUj0Y,aAAe+za,IAAe/rC,EAAKiM,UAAUj0Y,aAC7EilH,IAAU+iR,EAAKiM,UAAUj0Y,YAAah+L,GAAQA,EAAKgmkB,EAAKiM,UAAUj0Y,aACtEgmhB,cAAehktB,GAEfgmkB,EAAKz/P,QACL0rQ,EAAUlO,cAAcC,cAAgBgC,EAEnCA,EAAKjC,eAAiBiC,EAAKjC,cAAcC,eAAiBgC,EAAKjC,cAAcC,cAAcz9P,UAChG0rQ,EAAUlO,cAAcC,cAAgBgC,EAAKjC,cAAcC,eAE/DiO,EAAU4kQ,iBAAmB7wQ,EAAKz/P,SAC3By/P,EAAK6wQ,iBACR7wQ,EAAKuK,aACL0B,EAAU1B,YAAa,EACvB0B,EAAU5imB,GAAG6hH,IAAqBp7H,KAAKgh3B,eAAe7kQ,GAAYn8mB,MAClEm8mB,EAAU5imB,GAAG6hH,IAAgBp7H,KAAKgh3B,eAAe7kQ,GAAYn8mB,OAEjE0hnB,EAAOvF,UAAYA,EACnB,IAAInoR,EAAUmoR,EAAUpiR,qBACpB0+U,EAAiBvoE,EAAKn2Q,qBACrB/F,GAAWA,EAAQ5wV,SAAWq1qB,EAAer1qB,QAC9C+4mB,EAAUq1D,mBAAmBiH,GAEjC,IAAIwoM,EAAWjh3B,KAAKmoC,OAAOrnC,cAAc,MAAO,CAC5Cq1B,GAAI,QAAU0kpB,IAAQphE,EAAI,UAAUr2mB,OAChC,QAAUq2mB,EAAG9oC,SAAW89B,IAAO,IAAK1tmB,UAAW,gBAEvD+/2B,EAAWpv1B,YAAYuv1B,GACvB9kQ,EAAUzjR,SAASuohB,EACvB,CACAJ,EAAUnv1B,YAAYov1B,GAClBrnQ,EAAG7klB,YACH6klB,EAAGjllB,WAAWG,aAAaks1B,EAAWpnQ,EAAG7klB,aAGzC6klB,EAAGjllB,WAAW9C,YAAYmv1B,GAE9B,IAAI1jJ,EAAWjtH,EAAK+a,UAChBo/F,EAAUn6G,EAAKoG,gBACnB6mH,EAAS3nsB,OAAO2nsB,EAASxytB,QAAQ8umB,GAAM,EAAG,EAAGonQ,GAC7Cx2J,EAAQ70rB,OAAO60rB,EAAQ1/sB,QAAQ+2mB,GAAU,EAAG,EAAG70N,GAC/CqjN,EAAK5vU,QAAQllK,IAAwB,CAAEwlvB,cAAeE,EAAY520B,KAAMA,EAAMiykB,UAAWA,IACzFjM,EAAK72Z,OAAOj+E,IAAwB,CAAEgzc,KAAMi8I,GAChD,CAIA,GAHAnic,GAAU7/Q,EAAQ,CAAC,qBAAsB,CAAC,wBAC1C6/Q,GAAU7/Q,EAAOiiC,kBAAmB,CAAC,mBAAoB,qBAAsB,CAAC,oBAAqB,uBACrGo3kB,EAAOvmM,UAAW,EACd9ya,EAAO6/Q,UAAUh1P,SAAS,kBAAoBlzB,KAAKmoC,OAAOkhf,aAAankR,aAAex9N,EAAMw2Q,aAAc,CAC1Gj2B,GAAY5/Q,EAAOwtR,cAAcrlR,iBAAiB,MAAO,iBACzD,IAAI0w2B,EAAex50B,EAAM9N,cAAcgjlB,KAAgB9pR,uBAAuB,eAAe1vV,OAAS,EACtGolR,GAAS9gP,EAAM9N,cAAcgjlB,KAAgB9pR,uBAAuB,eAAevmU,SAAS201B,EAAapq2B,WAAY,KAAKqyB,WAAY,CAAC,kBACvInpC,KAAKmh3B,aAAc,CACvB,CACAnh3B,KAAKihsB,KAAK9pE,UAAU9unB,GAAQ,GAC5BA,EAAOiiC,kBAAkBtV,aAAa,QAASh1B,KAAK+zZ,KAAKhuD,YAAY,YACzE,MAEQ/lW,KAAK4snB,YAAY8f,KACjBA,EAAQvmoB,MAAMi+J,QAAU,OACxB8rc,EAAK72Z,OAAOj+E,IAA0B,CAAElxF,KAAMw3kB,EAAOx3kB,KACjDiykB,UAAWjM,EAAKiM,UAAWykQ,cAAev42B,EAAQq42B,WAAYA,KAEtEx4lB,GAAU7/Q,EAAQ,CAAC,uBAAwB,CAAC,sBAC5C6/Q,GAAU7/Q,EAAOiiC,kBAAmB,CAAC,oBAAqB,sBAAuB,CAAC,mBAAoB,sBAClG/d,SAASktlB,EAAGnnlB,aAAasqlB,KAAwB,MAAQ6jQ,GAAczg3B,KAAKmh3B,cAC5E34lB,GAASngR,EAAOwtR,cAAcrlR,iBAAiB,MAAO,iBACtDxQ,KAAKmh3B,aAAc,GAEvBz/P,EAAOvmM,UAAW,EAClBwlc,GAAgB,EAChB3g3B,KAAKihsB,KAAK9pE,UAAU9unB,GAAQ,GAC5BA,EAAOiiC,kBAAkBtV,aAAa,QAASh1B,KAAK+zZ,KAAKhuD,YAAY,gBAEpEh6B,GAAkBmkS,EAAKkM,iBAAoBlM,EAAKiM,WAAawkQ,KAC9DzwQ,EAAKknE,kCACLlnE,EAAK72Z,OAAOj+E,IAAiC,CAAEgzc,KAAM8hC,EAAKoG,mBAE1Dt2mB,KAAKmoC,OAAOo0kB,eAAwC,SAAvBv8mB,KAAKmoC,OAAOygH,SACrC5oJ,KAAKmoC,OAAO+8kB,kBAAkBhnU,aAAel+S,KAAKmoC,OAAOkhf,aAAankR,aACtEllQ,KAAKmoC,OAAOwxf,aAAawrF,aAGzBnlnB,KAAKmoC,OAAOwxf,aAAa73P,gBA/IjC,CAkJJ,EAQAu+kB,EAAU1v2B,UAAUo9uB,aAAe,SAAU79I,EAAMwR,EAAQu6D,GACvD,IAAI7G,EAYJ,OAXIllE,EAAKuK,YAAciH,EAAOvmM,UAAY+0L,EAAK2N,cAC3C3N,EAAK2N,aAAa6D,EAAOj1lB,QAAUyjlB,EAAK2N,aAAa6D,EAAOj1lB,OAAO2opB,WACnEllE,EAAK2N,aAAa6D,EAAOj1lB,OAAO2opB,UAAUx3D,mBAAqB1N,EAAKiM,UAAUyB,mBAC9Ew3D,EAAY3rlB,GAAO,CAAC,EAAGymhB,EAAK2N,aAAa6D,EAAOj1lB,OAAO2opB,UAAWllE,EAAKiM,WAAW,KAG9EjM,EAAKuK,YAAcvK,EAAKiM,UAAUpL,cAClCb,EAAKiM,UAAUpL,YAA4B,gBAAdkrE,GAEjC7G,EAAY3rlB,GAAO,CAAC,EAAG,CAAC,EAAGymhB,EAAKiM,WAAW,IAExCi5D,CACX,EACAirM,EAAU1v2B,UAAUqw2B,eAAiB,SAAUxvN,GAC3C,IAAIlypB,EAAQU,KACZ,OAAO,WACHwxpB,EAAKh4oB,IAAI4hH,IAAqB97H,EAAM0h3B,gBACpCxvN,EAAKh4oB,IAAI4hH,IAAgB97H,EAAM0h3B,gBAC/BxvN,EAAKn4c,OAAOj+E,IAAuB,CAAC,EACxC,CACJ,EACAilvB,EAAU1v2B,UAAUi8mB,YAAc,SAAU//N,GACxC,OAAOA,GAAOA,EAAI3kI,UAAUh1P,SAAS,cACzC,EACAmt1B,EAAU1v2B,UAAUymI,QAAU,WAC1B,IAAIkggB,EAAct3oB,KAAKmoC,OAAOhzB,SAC1BnV,KAAKmoC,OAAOgwP,aAAgBm/W,IAAiBA,EAAY19mB,cAAc,IAAMgjlB,MAC5E06B,EAAY19mB,cAAc,IAAMgjlB,QAGrC58mB,KAAKmoC,OAAO3uB,IAAI4hH,IAAcp7H,KAAK8qZ,cACnC9qZ,KAAKmoC,OAAO3uB,IAAI4hH,IAAgBp7H,KAAKo3I,SACrCp3I,KAAKmoC,OAAO3uB,IAAI4hH,IAAmBp7H,KAAKukW,iBACxCvkW,KAAKmoC,OAAO3uB,IAAI4hH,IAAwBp7H,KAAK80a,QAC7C90a,KAAKmoC,OAAO3uB,IAAI4hH,IAAgCp7H,KAAKsg3B,gBACrDtg3B,KAAKmoC,OAAO3uB,IAAI4hH,IAAgBp7H,KAAKug3B,mBACrCvg3B,KAAKmoC,OAAO3uB,IAAI4hH,IAAyBp7H,KAAKug3B,mBAClD,EACAF,EAAU1v2B,UAAUyw2B,eAAiB,SAAU301B,EAAO1rB,GAClD,IAAI04mB,EAAM1tS,GAAkBt/S,QAAqEppB,EAA5DrD,KAAKmoC,OAAOqklB,cAAcjgmB,SAASE,EAAM3V,WAAY,KAC1F,OAAI2imB,GAAMA,EAAG7/kB,cAAc74B,GAChB04mB,EAAG7/kB,cAAc74B,GAErB,IACX,EAOAs/2B,EAAU1v2B,UAAUmka,OAAS,SAAUzsa,GAC9BxG,MAAMwG,KACPA,EAASrI,KAAKoh3B,eAAe/42B,EAAQ,yBAErCA,GAAUA,EAAO6/Q,UAAUh1P,SAAS,wBACpClzB,KAAKwg3B,qBAAqBn42B,EAElC,EAOAg42B,EAAU1v2B,UAAU6mjB,SAAW,SAAUnvjB,GAChCxG,MAAMwG,KACPA,EAASrI,KAAKoh3B,eAAe/42B,EAAQ,uBAErCA,GAAUA,EAAO6/Q,UAAUh1P,SAAS,sBACpClzB,KAAKwg3B,qBAAqBn42B,EAElC,EAMAg42B,EAAU1v2B,UAAUiiqB,UAAY,WAC5B5yqB,KAAKgtb,gBAAe,GACpBhtb,KAAKmoC,OAAOm4P,QAAQllK,IAAuB,CAAEu8S,YAAa,oBAAqB/qa,KAAMwuH,IAAuBimvB,UAAWrh3B,MAC3H,EAMAqg3B,EAAU1v2B,UAAUmiqB,YAAc,WAC9B9yqB,KAAKgtb,gBAAe,GACpBhtb,KAAKmoC,OAAOm4P,QAAQllK,IAAuB,CAAEu8S,YAAa,sBAAuB/qa,KAAMwuH,IAAuBimvB,UAAWrh3B,MAC7H,EACAqg3B,EAAU1v2B,UAAUq8a,eAAiB,SAAU7R,GAG3C,IAFA,IAAIv1R,EACAwob,EAAOpukB,KAAKmoC,OAAOqklB,cACdrgnB,EAAI,EAAGwjD,EAAMy+gB,EAAKhrkB,OAAQ+I,EAAIwjD,EAAKxjD,IACxCy5I,EAAKwob,EAAK7hjB,SAASpgB,EAAE2K,WAAY,KAAK8iB,cAAc,4CAChDuhZ,EACAn7a,KAAK80a,OAAOlvR,GAGZ5lJ,KAAKw3jB,SAAS5xa,EAG1B,EACAy6tB,EAAU1v2B,UAAU4zV,gBAAkB,SAAUlkW,GAC5C,IAAI6vmB,EAAOlwmB,KAAKmoC,OAChB,OAAQ9nC,EAAE60E,QACN,IAAK,gBACDl1E,KAAK4yqB,YACL,MACJ,IAAK,cACD5yqB,KAAK8yqB,cACL,MACJ,IAAK,aACL,IAAK,eAED,IAAIpkqB,EAAWwhmB,EAAKkjC,eAAiBljC,EAAK+J,wBAA0B,GACpE,GAAIvrmB,EAAStL,OAAQ,CACjB,IACIwiJ,EADUsqd,EAAKsc,cAAc99mB,EAASA,EAAStL,OAAS,IAC3Cw2B,cAAc,4CACd,iBAAbv5B,EAAE60E,OACFl1E,KAAK80a,OAAOlvR,GAGZ5lJ,KAAKw3jB,SAAS5xa,EAEtB,CACA,MACJ,IAAK,QACD,GAAI5lJ,KAAKmoC,OAAO0xkB,OACZ,OAGJ,IAAI1kmB,EAAUnV,KAAKoK,MAAMmkoB,oBAIzB,GAHIp5nB,IAAYA,EAAQ+yQ,UAAUh1P,SAAS,uBAAyB/d,EAAQ+yQ,UAAUh1P,SAAS,wBAC3F/d,EAAUA,EAAQ0gR,eAElB1gR,IAAYA,EAAQ+yQ,UAAUh1P,SAAS,yBACtC/d,EAAQ+yQ,UAAUh1P,SAAS,qBAC5B,MAEJlzB,KAAKwg3B,qBAAqBrr2B,GAGtC,EACAkr2B,EAAU1v2B,UAAU2v2B,eAAiB,WAGjC,IAFA,IAAIgB,EAAath3B,KAAKmoC,OAAOy8d,cAAcwhH,WAAW51mB,iBAAiB,kBACnEylmB,EAAUj2mB,KAAKmoC,OAAOyvkB,oBAAoBx0mB,OACrC+I,EAAI,EAAGA,EAAIm12B,EAAWl+2B,OAAQ+I,IACnCm12B,EAAW/01B,SAASpgB,EAAE2K,WAAY,KAAK8iB,cAAc,iBAAiB5E,aAAa,UAAWihlB,EAAU,GAEhH,EACAoqQ,EAAU1v2B,UAAU4v2B,kBAAoB,WAEpC,IADA,IAAInyS,EAAOpukB,KAAKmoC,OAAOmukB,gBACdnqmB,EAAI,EAAGA,EAAIiikB,EAAKhrkB,OAAQ+I,IAC7BiikB,EAAK7hjB,SAASpgB,EAAE2K,WAAY,KAAKqlmB,UAAY,KAEjD,IAAShwmB,EAAI,EAAGA,EAAInM,KAAKq9sB,UAAUj6sB,OAAQ+I,IAClCnM,KAAKq9sB,UAAU9wrB,SAASpgB,EAAE2K,WAAY,KAAKqhR,aAC5Cn4R,KAAKq9sB,UAAU9wrB,SAASpgB,EAAE2K,WAAY,KAAKsgI,UAGnDp3I,KAAKq9sB,UAAY,EACrB,EAOAgjK,EAAU1v2B,UAAUo8U,cAAgB,WAChC,MAAO,WACX,EACOszhB,CACX,CAtX+B,GCb3Bn6zB,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GA0BzCm7zB,IAAiC,SAAUz6zB,GAE3C,SAASy6zB,IACL,OAAkB,OAAXz6zB,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAGA,OANAkmD,IAAUq7zB,EAAiBz6zB,GAI3By6zB,EAAgB1sgB,WAAa,SAC7B0sgB,EAAgBzvgB,gBAAkB,CAAE,mBAAsB,uBACnDyvgB,CACX,CARqC,CAQnC7rgB,IAEE8rgB,IAAkC,SAAU16zB,GAE5C,SAAS06zB,IACL,OAAkB,OAAX16zB,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAGA,OANAkmD,IAAUs7zB,EAAkB16zB,GAI5B06zB,EAAiBn1uB,aAAe,UAChCm1uB,EAAiB3sgB,WAAa,UACvB2sgB,CACX,CARsC,CAQpC9rgB,IC7BE+rgB,IAAuB,WAOvB,SAASA,EAAMt50B,GACX,IAAI7oC,EAAQU,KACZA,KAAK+6oB,aAAe,GACpB/6oB,KAAK0h3B,kBAAmB,EACxB1h3B,KAAK2h3B,iBAAmB,GACxB3h3B,KAAK4mqB,WAAY,EACjB5mqB,KAAKk+V,kBAAmB,EACxBl+V,KAAK4h3B,cAAe,EAEpB5h3B,KAAKugW,OAAS,SAAUlgW,GACpB,IAAI6vmB,EAAO5wmB,EAAM6oC,OACb9/B,EAAS/I,EAAMikW,UAAUrG,mBACzBszR,EAAgBlxnB,EAAM6oC,OAAOrnC,cAAc,MAAO,CAClDC,UAAW,qDACXmzR,OAAQ,mCAAqCg8U,EAAK/6lB,QAAQg7P,cAE1DzoO,EAAQpoC,EAAM6oC,OAAOrnC,cAAc,QAAS,CAAEozR,OAAQ,SAAWg8U,EAAK/6lB,QAAQg7P,YAAas5E,MAAO,CAAExoV,KAAM,UAC1G0mC,EAAQroC,EAAM6oC,OAAOrnC,cAAc87mB,IAAgB,CAAEnzR,MAAO,CAAExoV,KAAM,cACxE,GAAIiwB,SAAS4hU,uBAAuB,kBAAkB1vV,QACjD8smB,EAAKs6D,gBAAgB//E,YAAepilB,EAAO6/Q,UAAUh1P,SAAS,0BACxB,WAAhCg9kB,EAAKqL,kBAAkB3umB,OAAuB87lB,IAAargmB,EAAQ,gBACxE6nmB,EAAKs6D,gBAAgB//E,WAAaie,IAAargmB,EAAQ,iBACzD,OAAO,EAEP6nmB,EAAKs6D,gBAAgB//E,UACW,QAAhCylB,EAAKqL,kBAAkBhrjB,MAAkD,WAAhC2/iB,EAAKqL,kBAAkB3umB,MAChEsjmB,EAAKioC,UAAU5rnB,SAASjtB,EAAMikW,UAAUrG,mBAAmBrnE,cAAcvjQ,aAAasqlB,KAAwB,KAElHt9mB,EAAMui3B,WAAar0T,GAAenljB,EAAQ,MAAM86B,WAAU,GAC1D,IAAIkklB,EAAU/nnB,EAAM6oC,OAAOiukB,eAC3B,GAAIiR,EAAS,CACT,IAAI12C,EAAWpkjB,SAASihiB,GAAenljB,EAAQ,MAAMiqB,aAAasqlB,KAAwB,IAC1Ft9mB,EAAMui3B,WAAW340B,UAAY,GAC7B5pC,EAAMui3B,WAAW340B,WAAagnkB,EAAKme,cAAc19C,GAAUzniB,UAC3D5pC,EAAMui3B,WAAW340B,WAAagnkB,EAAKue,qBAAqB99C,GAAUzniB,UAC9DgnkB,EAAK8N,kBAAoBpB,MACzBt9mB,EAAMui3B,WAAW340B,WAAagnkB,EAAK6nC,yBAAyBpnE,GAAUzniB,UAE9E,CACA5pC,EAAMwi3B,YAAYz52B,GAClB,IAAI4Q,EAAO,CACP+2jB,YAAa1wkB,EAAM8ukB,KAAM2zS,YAAa152B,EACtC2D,aAAcwknB,EAAe1viB,QAAQ,EAAO52C,KAAM5qC,EAAM0oqB,SAExDjtB,EAAe7qC,EAAKm3C,kBACxBn3C,EAAK5vU,QnWhBe,qBmWgBoBrnR,GAExC,GAAIA,EAAgB,OAChB,OAAO,EAEXqyC,IAAchsD,EAAMui3B,WAAY,iBAChCv2zB,IAAchsD,EAAMui3B,WAAY,wBAChCv2zB,IAAchsD,EAAMui3B,WAAY,sBAChCvi3B,EAAM0i3B,WAAW1i3B,EAAMui3B,WAAYjlQ,KACnC,IAAIpyQ,EAAM,IAAI7zV,OAAO,WAAY,KAGjC,GAFArX,EAAMui3B,WAAW340B,UAAY5pC,EAAMui3B,WAAW340B,UAAU74B,QAAQm6V,EAAK,IACrE7iU,EAAMjW,YAAYpyB,EAAMui3B,YACpB3xQ,EAAK+J,wBAAwB72mB,OAAS,GAAK9D,EAAMui3B,WAAW/s1B,aAAa,iBAAkB,CAC3F,IAAIrI,EAAQyjlB,EAAK8N,kBAAoBpB,IAAqB,EAAI,EAC1DqlQ,EAAe3i3B,EAAM6oC,OAAOrnC,cAAc,OAAQ,CAClDC,UAAW,mBAAoBmoC,UAAWm+kB,EAAU,GAAK0zB,EAAa33oB,OAASqpB,EAAQ,GAAKsunB,EAAa33oB,SAE7GotnB,EAAc9+lB,YAAYuw1B,EAC9B,CACA,IAAIt4hB,EAAM6jO,GAAenljB,EAAQ,MAAMuxB,cAAc,uBAOrD,OANI+vT,GACAA,EAAIzhE,UAAU90P,IAAI,kBAEtBsU,EAAMhW,YAAYiW,GAClB6olB,EAAc9+lB,YAAYgW,GAC1BwokB,EAAK/6lB,QAAQuc,YAAY8+lB,GAClBA,CACX,EACAxwnB,KAAK2+V,UAAY,SAAUt+V,GACvB,IAAI6vmB,EAAO5wmB,EAAM6oC,OACb+nkB,EAAK/6lB,QAAQ+yQ,UAAUh1P,SAAS,iBACf5zB,EAAM4i3B,cAAchyQ,EAAK/6lB,SAC/Buc,YAAYrxB,EAAE0+V,aACzBmxQ,EAAK/6lB,QAAQuc,YAAYw+kB,EAAKpvmB,cAAc,MAAO,CAAEC,UAAW,iBAGpE,GADAmwB,SAASzd,KAAKy0Q,UAAU90P,IAAI,qBACxBlC,SAAS4hU,uBAAuB,kBAAkB1vV,OAAtD,CAGA,IAAIiF,EAAShI,EAAEgI,OACX852B,EAAa7i3B,EAAM6oC,OAAOhzB,QAAQykB,cAAc,qBAChDt6B,EAAM6oC,OAAO0wmB,qBAAqBz1oB,OAAS,GAAK++2B,IAChDA,EAAWh82B,MAAMw9H,KAAOrkI,EAAM6oC,OAAOhzB,QAAQykB,cAAc,4BACtDu2O,YAAc,EAAI,MAE3B7wQ,EAAMwi3B,YAAYz52B,GAClB6nmB,EAAK5vU,QnW5DS,emW4DoB,CAC9B8tS,KAAM9ukB,EAAM8ukB,KAAM/lkB,OAAQhI,EAAEgI,OAC5BmgtB,cAAe,OAAQtmpB,UAAW31C,SAASjtB,EAAM8ukB,KAAK,GAAG97iB,aAAasqlB,KAAwB,IAC9F1ykB,KAAOzqC,OAAO8E,KAAKjF,EAAM0oqB,QAAQ,IAAI5kqB,OAAS,EAAK9D,EAAM0oqB,QAAU1oqB,EAAMunnB,oBAE7EvnnB,EAAM8i3B,cAAgB9i3B,EAAM0oqB,QAC5B,IAAIq6M,EAAWnx1B,SAASg8T,eAAegjR,EAAKs6D,gBAAgB//E,UACxDylB,EAAKs6D,gBAAgB//E,UAAY43R,GAAYA,EAASr1hB,eACR,SAA9Cq1hB,EAASr1hB,cAAc,GAAGD,iBAC1Bs1hB,EAASr1hB,cAAc,GAAGq8L,aAAanhQ,UAAU90P,IAAI,iBAjBzD,CAmBJ,EACApzB,KAAKggW,KAAO,SAAU3/V,GAClB,IAAI6vmB,EAAO5wmB,EAAM6oC,OAGjB,GAFA7oC,EAAMgj3B,WAAahj3B,EAAM6oC,OACzB7oC,EAAMsi3B,cAAe,EACjBti3B,EAAM6oC,OAAOqioB,gBAAgB//E,SAAU,CACvC,IAAI3yG,EAAc5md,SAASg8T,eAAegjR,EAAKs6D,gBAAgB//E,UAC/DnrlB,EAAMgj3B,WAAaxqY,EAAY9qJ,cAAc,GACzC07Q,IAAaromB,EAAEgI,OAAQ,YACvB/I,EAAMsi3B,aAAeti3B,EAAM6oC,OAAOqioB,gBAAgB//E,WAAaie,IAAaromB,EAAEgI,OAAQ,UAAU8tB,GAExG,CACA,IAAInqB,EAAe1M,EAAM6oC,OAAOhzB,QAAQykB,cAAc,sBAClDs2kB,EAAK/6lB,QAAQ+yQ,UAAUh1P,SAAS,iBAEhClnB,EADiB1M,EAAM4i3B,cAAchyQ,EAAK/6lB,SAChBykB,cAAc,uBAE5C,IAAIvxB,EAAS/I,EAAMij3B,uBAAuBv22B,EAAc3L,EAAE02B,OAC1DmxP,GAAUl8Q,EAAc,CAAC,gBAAiB,CAAC,kBAAmB,YAAa,cAC3E1M,EAAMoi3B,kBAAmB,EACzBpi3B,EAAMkj3B,WAAatyQ,EAAK2zD,YACxB,IAAIz8C,EAAY1e,IAAargmB,EAAQ,UAAYmljB,GAAentjB,EAAEgI,OAAQ,MAAQ,KAClF,GAAKhI,EAAEgI,OAAP,CAGA/I,EAAMwi3B,YAAYz52B,GAClB,IAAI4Q,EAAO,CACPm1jB,KAAM9ukB,EAAM8ukB,KAAM/lkB,OAAQA,EAAQmgtB,cAAe,OACjDt+qB,KAAM5qC,EAAM0oqB,QAASxgU,cAAennW,EAAGygF,QAAQ,GAInD,GAFAovhB,EAAK5vU,QnWnGI,UmWmGoBrnR,GAC7B3Z,EAAMontB,aACFztsB,EAAK6nE,OAAT,CAOA,GAJAovhB,EAAK/6lB,QAAQ+yQ,UAAU90P,IAAI,aAC3B9zB,EAAM0+V,WAAaopR,IAAc1e,IAAargmB,EAAQ,UAAU8tB,KAAOnqB,EAAa6pR,cAAc1/P,IAC9FuykB,IAAargmB,EAAQ,UAAU8tB,IAAM72B,EAAMgj3B,WAAWnt2B,QAAQykB,cAAc,eAAiB,EAC7FrN,SAAS66lB,EAAU90lB,aAAa,iBAAkB,IAAM/F,SAASjtB,EAAMui3B,WAAWvv1B,aAAa,iBAAkB,IACjH49kB,EAAKs6D,gBAAgB//E,SAAU,CAC/B,IAAIg4R,EAAoBvx1B,SAAS0I,cAAc,gBAC1C8ukB,IAAargmB,EAAQ,WACtBqgmB,IAAa18lB,EAAa6pR,cAAe,UAAU1/P,KAAOuykB,IAAargmB,EAAQ,UAAU8tB,IAAOss1B,GAC7F/5Q,IAAa+5Q,EAAkB5slB,cAAe,UAAU1/P,KAAOuykB,IAAargmB,EAAQ,UAAU8tB,GACjG+xP,GAAUl8Q,EAAc,CAAC,mBAAoB,CAAC,iBAG9Ck8Q,GAAUl8Q,EAAc,CAAC,aAAc,CAAC,mBAEhD,KACK,CACD,IAAIyxB,EAAOirkB,IAAargmB,EAAQ,UAC5Bo1B,GAAQA,EAAKtH,KAAOnqB,EAAa6pR,cAAc1/P,GAC/C+xP,GAAUl8Q,EAAc,CAAC,aAAc,CAAC,iBAGxCk8Q,GAAUl8Q,EAAc,CAAC,mBAAoB,CAAC,aAEtD,CACA,GAAI08lB,IAAappmB,EAAMgj3B,WAAWnt2B,QAAS,UAAW,CAClD,KAAM7V,EAAMgj3B,WAAW5wQ,cAAcvke,QAAQ/pI,QAAU/C,EAAEgI,OAAO6/Q,UAAUh1P,SAAS,4BAC9E5zB,EAAMgj3B,WAAWnt2B,QAAQykB,cAAc,eAIxC,GAHI8ukB,IAAargmB,EAAQ,WAAaqgmB,IAAargmB,EAAQ,UAAU8tB,KAAO72B,EAAMgj3B,WAAWnt2B,QAAQghB,IACjG72B,EAAMw0tB,oBAAoBzztB,EAAE02B,QAE1Bz3B,EAAMoi3B,kBAAoBpi3B,EAAM6oC,OAAOo+kB,WAAajnnB,EAAM0+V,cAC3DzxU,SAASjtB,EAAMui3B,WAAWvv1B,aAAasqlB,KAAwB,MAAQt9mB,EAAM0+V,YAAc1+V,EAAMsi3B,eAC9Fti3B,EAAMsi3B,cAAgBx6P,GAAa9nnB,EAAMgj3B,WAAWj0P,cAAc/unB,EAAMgj3B,WAAWxnP,wBAAwB13nB,OAAS,GACpHkvB,aAAa,cAAgB80lB,EAAU90lB,aAAa,YACxDhzB,EAAMoj3B,aAAari3B,EAAGf,EAAMui3B,WAAYz6P,OAEvC,CACD,IAAIu7P,OAAiB,EACrB,GAAIrj3B,EAAM6oC,OAAO6okB,qBACb2xQ,EAAiBv7P,GAAa76lB,SAAS66lB,EAAU90lB,aAAasqlB,KAAwB,MAClFt9mB,EAAM6oC,OAAO49e,aAAa77e,KAAKkqY,YAAYtB,WAAWh7S,KAAK10H,OAAS,MAEvE,CACD,IAAIw/2B,EAAatj3B,EAAM6oC,OAAOkmlB,cAAc/unB,EAAM6oC,OAAO2ylB,wBAAwB13nB,OAAS,GACtFkvB,aAAa,YACjBqw1B,EAAiBv7P,GAAaw7P,IAAex7P,EAAU90lB,aAAa,aAAesw1B,IAC/Etj3B,EAAMui3B,WAAWvv1B,aAAa,WACtC,CACA,GAAIqw1B,IAAmBrj3B,EAAM6oC,OAAOqioB,gBAAgB//E,SAAU,CAC1D,IAAIo4R,EAAevj3B,EAAM6oC,OAAOrnC,cAAc,MAAO,CAAEC,UAAW,yBAC9D+h3B,EAAiBxj3B,EAAM6oC,OAAOkhf,aAClCw5V,EAAa182B,MAAMqY,MAAQlf,EAAM6oC,OAAOhzB,QAAQg7P,YAAc7wQ,EAAMyj3B,iBAAmB,KACnFzj3B,EAAM6oC,OAAO6okB,uBACb6xQ,EAAa182B,MAAMwoI,OAAS,KAE3Bm0uB,EAAehwhB,uBAAuB,wBAAwB1vV,SAC/D0/2B,EAAe56lB,UAAU90P,IAAI,mBAC7B0v1B,EAAepx1B,YAAYmx1B,GAC3BA,EAAa182B,MAAMwuR,OAASr1R,EAAMyj3B,iBAAmB,KAE7D,CACAzj3B,EAAM0j3B,aAAa57P,EACvB,CAEJ,GAAI/+mB,GAAUA,EAAO6/Q,UAAUh1P,SAAS0plB,OAChCt9mB,EAAMgj3B,WAAWnt2B,QAAQykB,cAAc,gBAAkBt6B,EAAMsi3B,aAAc,CACjFti3B,EAAM0j3B,aAAa57P,GACnB,IAAIz2C,EAAWrxkB,EAAMgj3B,WAAWxnP,wBAAwB13nB,OAAS,EAC7DmN,EAAW,iDACX0y2B,EAAa,GACjBA,EAAa,GAAGry2B,MAAMjR,KAAKL,EAAMgj3B,WAAWj0P,cAAc19C,GAAUngkB,iBAAiBD,IACjFjR,EAAMgj3B,WAAWlsQ,iBACjB6sQ,EAAa3j3B,EAAM4j3B,iBAAiBvyS,EAAUpgkB,IAE9C0y2B,EAAW7/2B,OAAS,GACpBmnpB,IAAuB04N,GAAY,EAAM,eAEjD,CACJ,CA/EA,CAVA,CA0FJ,EACAjj3B,KAAKqiW,SAAW,SAAUhiW,GACtB6wB,SAASzd,KAAKy0Q,UAAU/0P,OAAO,oBAC3Bu5nB,IAAgBptpB,EAAM6oC,QACtB7oC,EAAM6oC,OAAOkxK,OAAOj+E,IAAqB,CACrC1jH,SAAUpY,EAAO2E,QAAS3E,EAAM6j3B,gBAAiBj7qB,KAAM7nM,IAI3Df,EAAM6j3B,gBAAgB9i3B,EAE9B,EACAL,KAAKmj3B,gBAAkB,SAAU9i3B,GAC7B,IAAI6vmB,EAAO5wmB,EAAM6oC,OACjB,IAAI7oC,EAAM6oC,OAAOgwP,YAAjB,CAGA,IAAIg9N,EAAY71f,EAAMij3B,uBAAuBli3B,EAAEkgW,OAAQlgW,EAAE02B,OACrD1uB,EAAS8sf,IAAcA,EAAUjtO,UAAUh1P,SAAS,iBACpDiie,EAAY90f,EAAEgI,OAClB6nmB,EAAK/6lB,QAAQ+yQ,UAAU/0P,OAAO,aAC9B,IAAI2kd,EAAc5md,SAASg8T,eAAegjR,EAAKs6D,gBAAgB//E,UAK/D,GAJIylB,EAAKs6D,gBAAgB//E,UAAY3yG,GAAeA,EAAY9qJ,eACX,SAAjD8qJ,EAAY9qJ,cAAc,GAAGD,iBAC7B+qJ,EAAY9qJ,cAAc,GAAGq8L,aAAanhQ,UAAU/0P,OAAO,kBAE3Du1kB,IAAappmB,EAAMgj3B,WAAWnt2B,QAAS,UAAW,CAClD7V,EAAMontB,YACNpntB,EAAMgj3B,WAAWz+M,YAAcvkqB,EAAMkj3B,WACrClj3B,EAAMgj3B,WAAWj5V,aAAanhQ,UAAU/0P,OAAO,mBAC/C7zB,EAAM0j3B,aAAa7tX,GACnB,IAAIiuX,EAAQ9j3B,EAAMgj3B,WAAWnt2B,QAAQykB,cAAc,mBAC/Cwp1B,GACAA,EAAMl7lB,UAAU/0P,OAAO,iBAE/B,CACA7zB,EAAMwi3B,YAAYz52B,GAClB,IAAI4Q,EAAO,CACP5Q,OAAQA,EAAQmgtB,cAAe,OAC/B1noB,QAAQ,EACR5e,UAAW31C,SAASjtB,EAAM8ukB,KAAK,GAAG97iB,aAAasqlB,KAAwB,IACvEksG,UAAWxptB,EAAM0+V,WAAYowO,KAAM9ukB,EAAM8ukB,KACzClkiB,KAAOzqC,OAAO8E,KAAKjF,EAAM8i3B,cAAc,IAAIh/2B,OAAS,EAAK9D,EAAM8i3B,cAAgB9i3B,EAAMunnB,mBAEzF3W,EAAK5vU,QnWjOI,UmWiOoBrnR,GAAM,WAC/B,KAAMyvlB,IAAargmB,EAAQu0mB,MAAiBlU,IAAargmB,EAAQ,eAC1DqgmB,IAAargmB,EAAQu0mB,OAA0B3jmB,EAAK6nE,OAGvD,OAFAxhF,EAAM0+V,WAAa,UACnB7qU,GAAO9yB,EAAEkgW,QAGbjhW,EAAMsnqB,WAAY,EAClB,IAAI1d,EAAkB5ppB,EAAM6oC,OAAO8xkB,wBAC/B/J,EAAKoL,mBACAh8mB,EAAM6oC,OAAOqioB,gBAAgB//E,UAC9BnrlB,EAAMui3B,WAAWjo1B,cAAc,6BAA+BsvnB,EAAgB9lpB,OAAS,GACvF8lpB,EAAgB9lpB,SAAW9D,EAAM6oC,OAAO2ylB,wBAAwB13nB,OAChE9D,EAAMuwmB,YAAYq5C,EAAiBjwoB,EAAK6vsB,WAGxCxptB,EAAMuwmB,YAAY,CAACtjlB,SAASjtB,EAAMui3B,WAAWvv1B,aAAasqlB,KAAwB,KAAMt9mB,EAAM0+V,YAElG1+V,EAAM0+V,WAAa,KACdkyQ,EAAKs6D,gBAAgB//E,WAClBpqlB,EAAEkgW,OAAOr4E,UAAUh1P,SAAS,sBAAwBhC,SAAS0I,cAAc,IAAMv5B,EAAEkgW,OAAOr4E,UAAU,KACpG/0P,GAAO9yB,EAAEkgW,QAET2vQ,EAAKc,qBACLd,EAAKr3Q,UAGLv5V,EAAM+j3B,SAASpq2B,IAGnB3Z,EAAM6oC,OAAO+8kB,kBAAkBhnU,aAAe5+S,EAAM6oC,OAAOkhf,aAAankR,cACxE5lQ,EAAM6oC,OAAOwxf,aAAa82H,kBAGlCnxpB,EAAMsnqB,WAAY,CACtB,GA/DA,CAgEJ,EACA5mqB,KAAKgi3B,WAAa,SAAUsB,EAAWvi3B,GACnC,MAAO,GAAG6P,MAAMjR,KAAK2j3B,EAAU9y2B,iBAAiB,OAAOpK,QAAO,SAAUiokB,GAChEA,EAAKnmT,UAAUh1P,SAASnyB,IACxBui3B,EAAUC,WAAWl1S,EAAK8nD,UAElC,GACJ,EACAn2nB,KAAKmoC,OAASA,EACVnoC,KAAKmoC,OAAOgwP,cAGhBn4R,KAAKmoC,OAAO5uB,GAAG6hH,IAAmBp7H,KAAKwj3B,eAAgBxj3B,MACvDA,KAAKmoC,OAAO5uB,GAAG6hH,IAAmBp7H,KAAK2+lB,WAAY3+lB,MACnDA,KAAKmoC,OAAO5uB,GAAG6hH,IAA+Bp7H,KAAK81b,iBAAkB91b,MACrEA,KAAKyj3B,cAAgBzj3B,KAAKonpB,YAAYvnpB,KAAKG,MAC3CA,KAAKmoC,OAAO7M,iBAAiB8/F,IAAkBp7H,KAAKyj3B,eACpDzj3B,KAAKmoC,OAAO5uB,GAAG6hH,IAAiBp7H,KAAKulnB,kBAAmBvlnB,MACxDA,KAAKmoC,OAAO5uB,GAAG6hH,IAAgBp7H,KAAKo3I,QAASp3I,MACjD,CA6oBA,OA5oBAyh3B,EAAM9w2B,UAAUux2B,cAAgB,SAAU/lQ,GAGtC,IAFA,IAAIyxB,EAAazxB,EACbunQ,GAAqB,GACjBA,GACA91O,EAAW5gT,cAAc,GAAGihR,gBAC5B2/B,EAAa18mB,SAASg8T,eAAe0gT,EAAW5gT,cAAc,GAAGihR,cAAcoU,WAE9EurB,EAAW1lX,UAAUh1P,SAAS,iBAC/Bww1B,GAAqB,GAG7B,OAAO91O,CACX,EACA6zO,EAAM9w2B,UAAU2omB,WAAa,SAAUrgmB,EAAM0uB,EAAOqvrB,EAAQ95C,EAAS70qB,EAAQs72B,EAASC,GAClF,IAGIC,EACAC,EACA/+O,EACA4sC,EANAzhE,EAAOlwmB,KAAKmoC,OACZk/kB,EAAUnX,EAAKkG,eACf2tQ,EAAc7zQ,EAAK8N,kBAAoBpB,IAKvConQ,EAAe9zQ,EAAKgV,kBAAkBtrlB,cAAcgjlB,KACpDqnQ,EAAc/zQ,EAAKyW,iBAAiB/slB,cAAcgjlB,KAClDyK,IACAw8P,EAAqB3zQ,EAAKonE,wBAC1BwsM,EAAsB5zQ,EAAK+2C,yBACvB88N,IACAh/O,EAAQ70B,EAAKsnE,4BACb7F,EAAQzhE,EAAKg3C,+BAIrB,IADA,IAAIz6nB,EAAQyjlB,EAAK8N,kBAAoBpB,IAAqB,EAAI,EACrDzwmB,EAAI,EAAGwjD,EAAM12C,EAAKm1jB,KAAKhrkB,OAAQ+I,EAAIwjD,EAAKxjD,IACzCk7mB,EACIl7mB,EAAIsgB,IAAU,EACdkb,EAAMhT,aAAa1b,EAAKm1jB,KAAK7hjB,SAASpgB,EAAE2K,WAAY,KAAMzO,GAErD8D,EAAIsgB,IAAU,EACnBuqsB,EAAOrisB,aAAa1b,EAAKm1jB,KAAK7hjB,SAASpgB,EAAE2K,WAAY,KAAM6s2B,GAG3DzmM,EAAQvopB,aAAa1b,EAAKm1jB,KAAK7hjB,SAASpgB,EAAE2K,WAAY,KAAM8s2B,GAIhEj80B,EAAMhT,aAAa1b,EAAKm1jB,KAAK7hjB,SAASpgB,EAAE2K,WAAY,KAAMzO,GAGlE,IACI8utB,EACAh6C,EAFA1jE,EAAK,GAAG7omB,MAAMjR,KAAKgoC,EAAMmrT,uBAAuB8pR,MAUpD,GAPIyK,IACA8vG,EAAM,GAAGvmtB,MAAMjR,KAAKq3tB,EAAOlkY,uBAAuB8pR,MAC9CmnQ,IACA5mM,EAAO,GAAGvsqB,MAAMjR,KAAKu9qB,EAAQpqV,uBAAuB8pR,QAG5D58mB,KAAKkk3B,YAAYzqQ,EAAI09G,EAAKh6C,GACtBn9qB,KAAKmoC,OAAOo+kB,WACZ,KAAI95S,EAAU,SAAUtgU,EAAGwjD,GACnBxjD,EAAIgvV,EAAOhzT,OAAOo+kB,WAClBy2D,IAAeinM,EAAaJ,EAAoB9+O,EAAOtrB,EAAI09G,EAAKh6C,GAAM,SAAUx1oB,EAAOymiB,GACnFzmiB,EAAMjW,YAAY08iB,EAAK7hjB,SAASpgB,EAAE2K,WAAY,KAClD,IAGAkmqB,IAAegnM,EAAcF,EAAqBnyM,EAAOl4D,EAAI09G,EAAKh6C,GAAM,SAAUx1oB,EAAOymiB,GACrFzmiB,EAAMjW,YAAY08iB,EAAK7hjB,SAASpgB,EAAE2K,WAAY,KAClD,GAER,EACIqkV,EAASn7V,KACb,IAASmM,EAAI,EAAGwjD,EAAM8pjB,EAAGr2mB,OAAQ+I,EAAIwjD,EAAKxjD,IACtCsgU,EAAQtgU,EAHX,CAMT,EACAs12B,EAAM9w2B,UAAUwz2B,uBAAyB,SAAUlr2B,GAC/C,IACImr2B,EACAC,EACAC,EACAC,EAJAr0Q,EAAOlwmB,KAAKmoC,OAKZk/kB,EAAUrnnB,KAAKmoC,OAAOiukB,eACtB2tQ,EAAc7zQ,EAAK8N,kBAAoBpB,IACvC4nQ,EAASt0Q,EAAKgV,kBAAkBtrlB,cAAcgjlB,KAC9C6nQ,EAASv0Q,EAAKyW,iBAAiB/slB,cAAcgjlB,KAC7CyK,IACA+8P,EAAYl0Q,EAAKonE,wBACjB+sM,EAAYn0Q,EAAK+2C,yBACb88N,IACAO,EAAWp0Q,EAAKsnE,4BAChB+sM,EAAWr0Q,EAAKg3C,+BAGxB,IACIiwE,EACAh6C,EAFA1jE,EAAK,GAAG7omB,MAAMjR,KAAK8k3B,EAAO3xhB,uBAAuB8pR,MAAexjmB,OAAO,GAAGxI,MAAMjR,KAAK6k3B,EAAO1xhB,uBAAuB8pR,OAGnHyK,IACA8vG,EAAM,GAAGvmtB,MAAMjR,KAAKyk3B,EAAUtxhB,uBAAuB8pR,MAChDxjmB,OAAO,GAAGxI,MAAMjR,KAAK0k3B,EAAUvxhB,uBAAuB8pR,OACvDmnQ,IACA5mM,EAAO,GAAGvsqB,MAAMjR,KAAK2k3B,EAASxxhB,uBAAuB8pR,MAChDxjmB,OAAO,GAAGxI,MAAMjR,KAAK4k3B,EAASzxhB,uBAAuB8pR,SAGlE,IAAIj1kB,EAAQuokB,EAAKpvmB,cAAc87mB,IAAgB,CAAEnzR,MAAO,CAAExoV,KAAM,cAC5D+1tB,EAAS9mH,EAAKpvmB,cAAc87mB,IAAgB,CAAEnzR,MAAO,CAAExoV,KAAM,cAC7Di8qB,EAAUhtE,EAAKpvmB,cAAc87mB,IAAgB,CAAEnzR,MAAO,CAAExoV,KAAM,cAClEjB,KAAKmoC,OAAOqvmB,iBAEZ,IADA,IAAIktO,EAAa1k3B,KAAK2k3B,iBAAiB1r2B,GAC9B9M,EAAI,EAAGwjD,EAAM8pjB,EAAGr2mB,OAAQ+I,EAAIwjD,EAAKxjD,IACtCw7B,EAAMjW,YAAY+nlB,EAAGltlB,SAASpgB,EAAE2K,WAAY,MACxCuwmB,IACA2vG,EAAOtlsB,YAAYylsB,EAAI5qsB,SAASpgB,EAAE2K,WAAY,MAC1Cit2B,GACA7mM,EAAQxrpB,YAAYyrpB,EAAK5wpB,SAASpgB,EAAE2K,WAAY,OAI5D9W,KAAKs5mB,WAAWrgmB,EAAM0uB,EAAOqvrB,EAAQ95C,EAASwnM,EAAWr82B,OAAQq82B,EAAWf,QAASe,EAAWd,SACpG,EACAnC,EAAM9w2B,UAAUg02B,iBAAmB,SAAU1r2B,GACzC,IACIg5oB,EACAkrB,EAFAjtE,EAAOlwmB,KAAKmoC,OAGZy80B,EAAYr41B,SAAStT,EAAK5Q,OAAOwtR,cAAcvjQ,aAAasqlB,KAAwB,KACpF3jmB,EAAKipD,UAAYjpD,EAAK6vsB,WAAa7vsB,EAAKipD,YAAcjpD,EAAK6vsB,aAC3D87J,GAAwB,GAE5B,IAAInrQ,EAAKvJ,EAAKme,cAAcu2P,GAU5B,OATI10Q,EAAKkG,iBACL67C,EAAM/hD,EAAKue,qBAAqBm2P,GAC5B10Q,EAAK8N,kBAAoBpB,MACzBugE,EAAOjtE,EAAK6nC,yBAAyB6sO,KAGlC,CACPv82B,OAAQoxmB,EAAIkqQ,QAAS1xN,EAAK2xN,SAAUzmM,EAG5C,EACAskM,EAAM9w2B,UAAUk02B,0BAA4B,SAAU5r2B,GAClD,IACI+9sB,EACA95C,EAFAhtE,EAAOlwmB,KAAKmoC,OAGZk/kB,EAAUrnnB,KAAKmoC,OAAOiukB,eACtBzukB,EAAQuokB,EAAKgV,kBAAkBtrlB,cAAcgjlB,KAC7CyK,IACA2vG,EAAS9mH,EAAK+2C,yBACV/2C,EAAK8N,kBAAoBpB,MACzBsgE,EAAUhtE,EAAKg3C,+BAGvBlnpB,KAAKmoC,OAAOqvmB,iBACZ,IAAIktO,EAAa1k3B,KAAK2k3B,iBAAiB1r2B,GACvCjZ,KAAKs5mB,WAAWrgmB,EAAM0uB,EAAOqvrB,EAAQ95C,EAASwnM,EAAWr82B,OAAQq82B,EAAWf,QAASe,EAAWd,SACpG,EACAnC,EAAM9w2B,UAAUuz2B,YAAc,SAAUzqQ,EAAI09G,EAAKh6C,GAS7C,IARA,IAAIz7D,EAAS,CAAC,EACVojQ,EAAS,CAAC,EACVC,EAAQ,CAAC,EACTC,EAAY,CAAC,EACbt7M,EAAa1pqB,KAAKmoC,OAAOmukB,gBACzB2uQ,EAAajl3B,KAAKmoC,OAAO4nmB,uBACzBm1O,EAAgBll3B,KAAKmoC,OAAOu8kB,2BAC5BmC,EAAkB7mnB,KAAKmoC,OAAO2ylB,wBACzB3unB,EAAI,EAAGwjD,EAAM8pjB,EAAGr2mB,OAAQ+I,EAAIwjD,EAAKxjD,IAAK,CAC3C,IAAIsgB,EAAQF,SAASktlB,EAAGltlB,SAASpgB,EAAE2K,WAAY,KAAKwb,aAAasqlB,KAAwB,IACzF8E,EAAOn1lB,SAASpgB,EAAE2K,WAAY,KAAO4ypB,EAAWn9oB,SAASE,EAAM3V,WAAY,KAC3Eku2B,EAAUz41B,SAASpgB,EAAE2K,WAAY,KAAO+vmB,EAAgBt6lB,SAASE,EAAM3V,WAAY,KAC/E9W,KAAKmoC,OAAOiukB,iBACZ0uQ,EAAOv41B,SAASpgB,EAAE2K,WAAY,KAAOmu2B,EAAW141B,SAASE,EAAM3V,WAAY,KACvEqmqB,IACA4nM,EAAMx41B,SAASpgB,EAAE2K,WAAY,KAAOou2B,EAAc341B,SAASE,EAAM3V,WAAY,MAGzF,CACA,IACIqu2B,EACAC,EAFAh3S,EAAOpukB,KAAKmoC,OAAO8ilB,UAGnBjrnB,KAAKmoC,OAAOiukB,iBACZ+uQ,EAAWnl3B,KAAKmoC,OAAOwjlB,iBACnBwxD,IACAioM,EAAcpl3B,KAAKmoC,OAAOi1mB,uBAGlC,IAASjxoB,EAAI,EAAGwjD,EAAM8pjB,EAAGr2mB,OAAQ+I,EAAIwjD,EAAKxjD,IACtCiikB,EAAK7hjB,SAASpgB,EAAE2K,WAAY,KAAO2imB,EAAGltlB,SAASpgB,EAAE2K,WAAY,KAC7D4ypB,EAAWn9oB,SAASpgB,EAAE2K,WAAY,KAAO4qmB,EAAOn1lB,SAASpgB,EAAE2K,WAAY,KACvE+vmB,EAAgBt6lB,SAASpgB,EAAE2K,WAAY,KAAOku2B,EAAUz41B,SAASpgB,EAAE2K,WAAY,KAC3E9W,KAAKmoC,OAAOiukB,iBACZ+uQ,EAAS541B,SAASpgB,EAAE2K,WAAY,KAAOqgtB,EAAI5qsB,SAASpgB,EAAE2K,WAAY,KAClEmu2B,EAAW141B,SAASpgB,EAAE2K,WAAY,KAAOgu2B,EAAOv41B,SAASpgB,EAAE2K,WAAY,KACnEqmqB,IACAioM,EAAY741B,SAASpgB,EAAE2K,WAAY,KAAOqmqB,EAAK5wpB,SAASpgB,EAAE2K,WAAY,KACtEou2B,EAAc341B,SAASpgB,EAAE2K,WAAY,KAAOiu2B,EAAMx41B,SAASpgB,EAAE2K,WAAY,OAIrFigqB,IAAc/2qB,KAAKmoC,OAAQuhoB,EAAYjwD,GACnCz5mB,KAAKmoC,OAAOiukB,iBACZ2gE,IAAc/2qB,KAAKmoC,OAAQ880B,EAAY9tJ,GACnCh6C,GACApG,IAAc/2qB,KAAKmoC,OAAQ+80B,EAAe/nM,GAGtD,EACAskM,EAAM9w2B,UAAU0y2B,SAAW,SAAUpq2B,GACjC,GAAIA,EAAK6vsB,YAAc7vsB,EAAKipD,YAAargE,MAAMoX,EAAK6vsB,WAApD,CAGA,GAAI9otB,KAAKmoC,OAAO+zkB,WAAY,CACxBl8mB,KAAKmoC,OAAO+qoB,oBACZ,IAAI9kG,EAAO,GAAGx9jB,MAAMjR,KAAKK,KAAKmoC,OAAO+8kB,kBAAkBtrlB,cAAcgjlB,KAAgB92mB,UACjF4jqB,EAAa1pqB,KAAKmoC,OAAOmukB,gBAC7BloC,EAAKhokB,QAAO,SAAUymZ,GACdA,EAAI3kI,UAAUh1P,SAAS,gBACvB25X,EAAI15X,QAEZ,IACA,IAAK,IAAIhnB,EAAI,EAAGwjD,EAAM+5mB,EAAWtmqB,OAAQ+I,EAAIwjD,GACpC+5mB,EAAWn9oB,SAASpgB,EAAE2K,WAAY,KADO3K,IAI1Cu9pB,EAAWn9oB,SAASpgB,EAAE2K,WAAY,KAAK81mB,cACvC5snB,KAAKmoC,OAAOmukB,gBAAgB9glB,OAAOrpB,EAAG,GACtCA,IAGZ,CAcA,IAbI8M,EAAK5Q,OAAO6/Q,UAAUh1P,SAAS,kBAAoBja,EAAK5Q,OAAO6/Q,UAAUh1P,SAAS,sBAC/Eja,EAAK5Q,OAAO6/Q,UAAUh1P,SAAS,uBAClCja,EAAK5Q,OAAS4Q,EAAK5Q,OAAOwtR,gBAEzB58Q,EAAK5Q,OAAO6/Q,UAAUh1P,SAAS,cAAgBw1kB,IAAazvlB,EAAK5Q,OAAQ,eAC1E4Q,EAAK5Q,OAASqgmB,IAAazvlB,EAAK5Q,OAAQ,cAExCrI,KAAKmoC,OAAOo+kB,WACZvmnB,KAAKmk3B,uBAAuBlr2B,GAG5BjZ,KAAK6k3B,0BAA0B5r2B,GAE/BjZ,KAAK2h3B,iBAAiBv+2B,OAAS,EAAG,CAClCpD,KAAKmoC,OAAOyymB,WAAW56oB,KAAK2h3B,kBAC5B,IAAInvyB,EAAU,GACd,GAAIxyE,KAAKmoC,OAAO8/jB,eAAe96d,QAAQ/pI,QAAUpD,KAAKmoC,OAAO6pkB,aAAa7ke,QAAQ/pI,OAAQ,CACtF,IAAS+I,EAAI,EAAGwjD,EAAM12C,EAAKm1jB,KAAKhrkB,OAAQ+I,EAAIwjD,EAAKxjD,IAC7CqmE,EAAQpmE,KAAKmgB,SAAStT,EAAKm1jB,KAAK7hjB,SAASpgB,EAAE2K,WAAY,KAAKwb,aAAasqlB,KAAwB,KAErG58mB,KAAK2h3B,iBAAmBnvyB,CAC5B,CACAxyE,KAAK2h3B,iBAAmB,EAC5B,CA3CA,CA4CJ,EACAF,EAAM9w2B,UAAUk2mB,gBAAkB,WAI9B,IAHA,IAAIqiC,EAAkBlppB,KAAKmoC,OAAO8xkB,wBAC9BorQ,EAAe,GACfC,EAAU/41B,SAASvsB,KAAK6h3B,WAAWvv1B,aAAasqlB,KAAwB,IACnEzwmB,EAAI,EAAGnK,EAAIknpB,EAAgB9lpB,OAAQ+I,EAAInK,EAAGmK,IAAK,CAEpDk52B,EAAa941B,SAASpgB,EAAE2K,WAAY,KAAO9W,KAAKmoC,OAAoB,gBAAE+gnB,EAAgB38nB,SAASpgB,EAAE2K,WAAY,KACjH,CAIA,OAHK9W,KAAKmoC,OAAOqioB,gBAAgB//E,UAAuC,IAA3By+D,EAAgB9lpB,SACzDii3B,EAAa,GAAKrl3B,KAAKmoC,OAAO0+kB,gBAAgBt6lB,SAAS+41B,EAAQxu2B,WAAY,MAExEuu2B,CACX,EACA5D,EAAM9w2B,UAAU402B,WAAa,SAAUC,EAAex2rB,GAClD,IAAI1vL,EAAQU,KACZA,KAAKmoC,OAAOotkB,gBAAgB1oR,YAAY24hB,EAAexl3B,KAAKmoC,OAAOorkB,0BAA0B,GAAI,CAAC,EAAGvkb,GAChG/zD,MAAK,WACN37H,EAAM6oC,OAAOkxK,OAAOj+E,IAAqB,CACrCxuH,KAAMwuH,IAAoBu8S,YAAa,kBAE/C,IAAGv7S,OAAM,SAAU/7H,GACf,IAAI4W,EAAQ,QACRC,EAAU,UACT60T,GAAkB1rU,EAAE,GAAK4W,KAAY80T,GAAkB1rU,EAAE,GAAK4W,GAAO,GAAKC,MAC3E7W,EAAE,GAAK4W,GAAS5W,EAAE,GAAK4W,GAAO,GAAKC,IAEvC5X,EAAM6oC,OAAOm4P,QAAQllK,IAAsB/6H,EAC/C,GACJ,EACAoh3B,EAAM9w2B,UAAUk/lB,YAAc,SAAUi+D,EAAa79D,GASjD,IARA,IAAIi5C,EAAkBlppB,KAAKmoC,OAAO8xkB,wBAC9By6B,EAAkB,GAClB+wO,EAAiB,GACjB5+P,EAAkB7mnB,KAAKmoC,OAAO49e,aAAa77e,KAAKkqY,YAAYtB,WAAWh7S,KACvE5uD,EAAOlpE,KAAKmoC,OAAO4okB,YAClB/wmB,KAAKmoC,OAAO+okB,aAAaC,YAAcnxmB,KAAKmoC,OAAO+okB,aAAan7L,SAAY/1a,KAAKmoC,OAAO+okB,aAAan7L,SAAW,EACjH2vc,EAAUz1Q,EAAU/miB,EACpBy8yB,EAAY73M,EAAY,GAAK5kmB,EACxB/8D,EAAI,EAAGwjD,EAAMm+mB,EAAY1qqB,OAAQ+I,EAAIwjD,EAAKxjD,IAC/Cs52B,EAAel51B,SAASpgB,EAAE2K,WAAY,KAAO+vmB,EAAgBinD,EAAYvhpB,SAASpgB,EAAE2K,WAAY,KAAOoyD,GAE3G,IAAS/8D,EAAI,EAAGwjD,EAAMu5lB,EAAgB9lpB,OAAQ+I,EAAIwjD,EAAKxjD,IACnDuooB,EAAgBnonB,SAASpgB,EAAE2K,WAAY,KAAO+vmB,EAAgBqiC,EAAgB38nB,SAASpgB,EAAE2K,WAAY,KAAOoyD,GAEhH,IAAS/8D,EAAI,EAAGwjD,EAAM81zB,EAAeri3B,OAAQ+I,EAAIwjD,EAAKxjD,IAAK,CACvD,GAAU,IAANA,EAAS,CACT,IAAK,IAAI6D,EAAI,EAAG412B,EAAO/+P,EAAgBzjnB,OAAQ4M,EAAI412B,EAAM512B,IACrD,GAAIygC,KAAK+mF,UAAUx3H,KAAKmoC,OAAO49e,aAAa77e,KAAKkqY,YAAYtB,WAAWh7S,KAAKvrG,SAASvc,EAAE8G,WAAY,QAChG25B,KAAK+mF,UAAUiuvB,EAAel51B,SAASpgB,EAAE2K,WAAY,MAAO,CAC5D6u2B,EAAY312B,EACZ,KACJ,CAEJ,IAASA,EAAI,EAAG412B,EAAO/+P,EAAgBzjnB,OAAQ4M,EAAI412B,EAAM512B,IACrD,GAAIygC,KAAK+mF,UAAUx3H,KAAKmoC,OAAO49e,aAAa77e,KAAKkqY,YAAYtB,WAAWh7S,KAAKvrG,SAASvc,EAAE8G,WAAY,QAAU25B,KACzG+mF,UAAUiuvB,EAAet52B,EAAI,IAAK,CAC/Bw52B,EAAY312B,IACZ012B,EAAU112B,EAAI,GAElB,KACJ,CAER,CACAhQ,KAAK6l3B,WAAWF,EAAYz8yB,EAAMw8yB,EAAUx8yB,EAChD,CACIlpE,KAAK4mqB,WACL5mqB,KAAKmoC,OAAOkxK,OAAOj+E,IAAqB,CACpCxuH,KAAMwuH,IAAoBu8S,YAAa,mBAG/C,IAASxra,EAAI,EAAGwjD,EAAM+klB,EAAgBtxoB,OAAQ+I,EAAIwjD,EAAKxjD,IACnD,IAAS6D,EAAI,EAAG412B,EAAO/+P,EAAgBzjnB,OAAQ4M,EAAI412B,EAAM512B,IACrD,GAAIygC,KAAK+mF,UAAUx3H,KAAKmoC,OAAO49e,aAAa77e,KAAKkqY,YAAYtB,WAAWh7S,KAAKvrG,SAASvc,EAAE8G,WAAY,QAAU25B,KACzG+mF,UAAUk9gB,EAAgBnonB,SAASpgB,EAAE2K,WAAY,MAAO,CACzDoyoB,EAAgB38nB,SAASpgB,EAAE2K,WAAY,KAAO9G,EAAIk5D,EAClD,KACJ,CAGRlpE,KAAK2h3B,iBAAmBz4N,CAC5B,EACAu4N,EAAM9w2B,UAAU+1sB,UAAY,WACxB11rB,OAAOqzO,cAAcrkQ,KAAK6se,MAC9B,EAQA40Y,EAAM9w2B,UAAUmlb,iBAAmB,SAAUz1b,GACzCL,KAAKmoC,OAAOm4P,QAAQllK,IAAuB3xC,GAAOppF,EAAG,CAAEuM,KAAMwuH,IAAuBu8S,YAAa,mBACrG,EACA8pc,EAAM9w2B,UAAU6y2B,eAAiB,WAC7B,IAAItzQ,EAAOlwmB,KAAKmoC,OAChBnoC,KAAKujW,UAAY,IAAIhI,GAAU20Q,EAAK/6lB,QAAS,CACzC6oV,WAAY,6CACZvuC,SAAU,EACV8wC,OAAQvgW,KAAKugW,OACb5B,UAAW3+V,KAAK2+V,UAChBqB,KAAMhgW,KAAKggW,KACXqC,SAAUriW,KAAKqiW,SACfnE,iBAAkBl+V,KAAKk+V,iBACvBL,iBAAiB,GAEzB,EACA4jhB,EAAM9w2B,UAAUmjtB,oBAAsB,SAAUzztB,GAC5C,IAAIf,EAAQU,KACRma,EAAIgpH,IAAY9iI,GAAG8Z,EACnB65sB,EAAUh0tB,KAAKsi3B,WAAWj5V,aAAa50P,wBACvCwmV,EAAYj7mB,KAAKsi3B,WAAW1zN,eAAiB,GAC7CylE,EAAar0tB,KAAKsi3B,WAAWj5V,aAAa/+e,kBAC1Cw70B,EAAmB9l3B,KAAKmoC,OAAO6okB,qBAAuB,GAAK,EAC/D,GAAIgjH,EAAQ9lkB,KAAO/zI,EAAG,CAClB,IAAI4r2B,GAAkB/l3B,KAAKsi3B,WAAW1zN,eACtC5upB,KAAK0h3B,kBAAmB,EACxB1h3B,KAAK6se,MAAQ77c,OAAOkzO,aAAY,WAAc5kQ,EAAM0m3B,cAAc3xJ,EAAY0xJ,EAAgB,GAAG,IACrG,MACK,GAAI/xJ,EAAQ9lkB,IAAMluJ,KAAKsi3B,WAAWj5V,aAAankR,aAAe+1W,EAAY,GAAK6qQ,GAAoB3r2B,EAAG,CACvG,IAAI8r2B,EAAiBjm3B,KAAKsi3B,WAAW1zN,eACrC5upB,KAAK0h3B,kBAAmB,EACxB1h3B,KAAK6se,MAAQ77c,OAAOkzO,aAAY,WAAc5kQ,EAAM0m3B,cAAc3xJ,EAAY4xJ,EAAgB,GAAG,IACrG,CACJ,EACAxE,EAAM9w2B,UAAUq12B,cAAgB,SAAU3xJ,EAAY6xJ,GAClD7xJ,EAAWlmkB,UAAYkmkB,EAAWlmkB,UAAY+3tB,CAClD,EACAzE,EAAM9w2B,UAAU+x2B,aAAe,SAAUri3B,EAAGwh3B,EAAYyB,GACpD,IAAIt32B,EAAehM,KAAKmoC,OAAOhzB,QAAQykB,cAAc,sBACjD55B,KAAKmoC,OAAOhzB,QAAQ+yQ,UAAUh1P,SAAS,iBAEvClnB,EADiBhM,KAAKki3B,cAAcli3B,KAAKmoC,OAAOhzB,SACtBykB,cAAc,uBAE5C,IAAIzkB,EAAUq4iB,GAAentjB,EAAEgI,OAAQ,MACvC,GAAIqgmB,IAAavzlB,EAAS,YACrBuzlB,IAAa18lB,EAAa6pR,cAAe,UAAU1/P,KAAOuykB,IAAavzlB,EAAS,UAAUghB,IAAMn2B,KAAK4h3B,cAAe,CACrH,IAAI54kB,EAAgB7zR,GACNnV,KAAK6h3B,WACnB7h3B,KAAKskzB,UAAUt7gB,EAAe3oS,EAAE02B,MAAO8q1B,EAAYyB,EACvD,CACJ,EACA7B,EAAM9w2B,UAAU2zyB,UAAY,SAAUnvyB,EAAS4hB,EAAO8q1B,EAAYyB,GAC9D,IAAIpz2B,EAAOlQ,KAAKmoC,OAAOhzB,QACnBnV,KAAK4h3B,eACL1x2B,EAAOlQ,KAAKsi3B,WAAWnt2B,SAE3B,IAAInJ,EAAehM,KAAKmoC,OAAOhzB,QAAQykB,cAAc,sBAGrD,GAFA55B,KAAKmm3B,qBAAqBhx2B,GAC1BnV,KAAKom3B,oBAAoBjx2B,GACrBuzlB,IAAavzlB,EAAS,WAAaA,EAAQ+yQ,UAAUh1P,SAAS0plB,QAAoB58mB,KAAKmoC,OAAOqioB,gBAAgB//E,UAC9Gie,IAAa18lB,EAAa6pR,cAAe,UAAU1/P,KAAOuykB,IAAavzlB,EAAS,UAAUghB,IAAOn2B,KAAK4h3B,cAAe,CACrH35lB,GAAY/3Q,EAAKM,iBAAiB,kDAAmD,CAAC,iBACtF,IAAIyy2B,EAAa,GACb7tS,EAAiB7ojB,SAAS+21B,EAAUhx1B,aAAasqlB,KAAwB,IAC7E,GAAI0mQ,GAAgC,IAAnBluS,EAAsB,CACnC,IAAI9nQ,EAAMttU,KAAKmoC,OAAOrnC,cAAc,MAAO,CAAEC,UAAW,0BACpDsl3B,EAAgBrm3B,KAAKsi3B,WAAW97P,mBACpC6/P,EAAcn+lB,UAAU90P,IAAI,mBAC5Bk6S,EAAInnU,MAAMqY,MAAQtO,EAAKigQ,YAAcnwQ,KAAK+i3B,iBAAmB,KACxDsD,EAAcvzhB,uBAAuB,yBAAyB1vV,QAC/Dij3B,EAAc301B,YAAY47S,EAElC,MACSttU,KAAKmoC,OAAOqioB,gBAAgB//E,UAAY64R,GAC7Cnu2B,EAAUnV,KAAKsi3B,WAAWj0P,cAAcj5C,EAAiB,GACzD6tS,EAAa,GAAGry2B,MAAMjR,KAAKwV,EAAQ3E,iBAAiB,oDAE/C8y2B,GAAa/21B,SAASs11B,EAAWvv1B,aAAasqlB,KAAwB,IAAMxnC,GACjFjgkB,EAAUnV,KAAKmoC,OAAOkmlB,cAAcj5C,EAAiB,GACrD6tS,EAAa,GAAGry2B,MAAMjR,KAAKwV,EAAQ3E,iBAAiB,oDAGpDyy2B,EAAa,GAAGry2B,MAAMjR,KAAKwV,EAAQ3E,iBAAiB,mDAExD,IAAI62mB,EAAUrnnB,KAAKmoC,OAAOiukB,eAC1B,GAAIktQ,GAAgC,IAAnBluS,GAAwBiyC,EAAS,CAC9C,IAAI12C,EAAWpkjB,SAASpX,EAAQmd,aAAasqlB,KAAwB,IAErEqmQ,EAAajj3B,KAAKkj3B,iBAAiBvyS,EADpB,iDAEnB,CACIsyS,EAAW7/2B,OAAS,GACpBmnpB,IAAuB04N,GAAY,EAAM,eAEjD,CACJ,EACAxB,EAAM9w2B,UAAUuy2B,iBAAmB,SAAUvyS,EAAUpgkB,GACnD,IAAIi/jB,EAAU,GAMd,OALAA,EAAU,GAAG5+jB,MAAMjR,KAAKK,KAAKsi3B,WAAWj0P,cAAc19C,GAAUngkB,iBAAiBD,IAC7E6I,OAAO,GAAGxI,MAAMjR,KAAKK,KAAKsi3B,WAAW7zP,qBAAqB99C,GAAUngkB,iBAAiBD,KACrFvQ,KAAKsi3B,WAAWtkQ,kBAAoBpB,MACpCptC,EAAUA,EAAQp2jB,OAAO,GAAGxI,MAAMjR,KAAKK,KAAKsi3B,WAAWvqO,yBAAyBpnE,GAAUngkB,iBAAiBD,MAExGi/jB,CACX,EACAiyS,EAAM9w2B,UAAUoy2B,eAAiB,WAC7B,IAAI1uJ,EAAar0tB,KAAKmoC,OAAOkhf,aAAa/+e,kBAC1C,OAAO+prB,EAAWjkd,YAAcikd,EAAWlkd,YAAcnoH,IAAOw9e,oBAAsB,CAC1F,EACAi8O,EAAM9w2B,UAAUw12B,qBAAuB,SAAUhx2B,GACzCnV,KAAKsi3B,WAAWnt2B,QAAQ29U,uBAAuB,yBAAyB1vV,OAAS,GAAK+R,GACjE,IAArBA,EAAQw7jB,UACRx9iB,GAAOnzB,KAAKsi3B,WAAWnt2B,QAAQ29U,uBAAuB,yBAAyB,GAEvF,EACA2uhB,EAAM9w2B,UAAUy12B,oBAAsB,SAAUjx2B,GAC5C,IAAIwt2B,EAEAA,EADA3i3B,KAAKmoC,OAAO6okB,qBACK77lB,GAAWoX,SAASpX,EAAQmd,aAAasqlB,KAAwB,MAC9E58mB,KAAKmoC,OAAO49e,aAAa77e,KAAKkqY,YAAYtB,WAAWh7S,KAAK10H,OAAS,EAGtD+R,GACbnV,KAAKmoC,OAAOkmlB,cAAcrunB,KAAKmoC,OAAO2ylB,wBAAwB13nB,OAAS,GAAGkvB,aAAa,cACnFnd,EAAQmd,aAAa,YAE7BtyB,KAAKmoC,OAAOhzB,QAAQ29U,uBAAuB,wBAAwB1vV,OAAS,GAAK+R,GAAWwt2B,GAC5Fxv1B,GAAOnzB,KAAKmoC,OAAOhzB,QAAQ29U,uBAAuB,wBAAwB,GAElF,EACA2uhB,EAAM9w2B,UAAUqy2B,aAAe,SAAU7t2B,GAQrC,GAPAnV,KAAKmm3B,qBAAqBhx2B,GACrBnV,KAAKmoC,OAAOqioB,gBAAgB//E,UAC7BzqlB,KAAKom3B,oBAAoBjx2B,GAE7BA,GAAWnV,KAAKsi3B,WAAWlsQ,eAAiBp2mB,KAAKsi3B,WAAW32P,iBAAmB3rnB,KAAKsi3B,WAAWr3P,WAAW7knB,QAAO,SAAUymZ,GACvH,OAAOA,EAAIjzX,cAAc,kBAC7B,IAAG,GACU,CACT,IAAIqp1B,EAAa,GAAGry2B,MAAMjR,KAAKwV,EAAQ29U,uBAAuB,iBAC9D,GAAI9yV,KAAKmoC,OAAOiukB,eAAgB,CAC5B,IAAIzlC,EAAWpkjB,SAASpX,EAAQmd,aAAasqlB,KAAwB,IAErEqmQ,EAAajj3B,KAAKkj3B,iBAAiBvyS,EADpB,gBAEnB,CACA45E,IAAuB04N,GAAY,EAAO,eAC9C,CACJ,EACAxB,EAAM9w2B,UAAU4x2B,uBAAyB,SAAUpt2B,EAAS4hB,GACxD,IAAImzD,EAAWi5C,IAAYpsG,GAC3B5hB,EAAQhP,MAAMi+J,QAAU,OACxB,IAAI/7J,EAAS6oB,SAAS6xU,iBAAiB74Q,EAAShwE,EAAGgwE,EAAS/vE,GAE5D,OADAhF,EAAQhP,MAAMi+J,QAAU,GACjB/7J,CACX,EACAo52B,EAAM9w2B,UAAUy2oB,YAAc,WACtBpnpB,KAAK2h3B,iBAAiBv+2B,OAAS,IAAMpD,KAAKmoC,OAAO6okB,sBAAwBhxmB,KAAKmoC,OAAOo9mB,uBACrFvlpB,KAAKmoC,OAAOyymB,WAAW56oB,KAAK2h3B,kBAC5B3h3B,KAAK2h3B,iBAAmB,GAEhC,EACAF,EAAM9w2B,UAAU212B,aAAe,SAAUhD,GACrC,OAAOA,EAAY/21B,SAAS+21B,EAAUhx1B,aAAasqlB,KAAwB,IAAM,CACrF,EACA6kQ,EAAM9w2B,UAAU412B,cAAgB,SAAUlm3B,GACtC,IAAIij3B,EAAY91T,GAAentjB,EAAEgI,OAAQ,MACrCm+2B,EAAanm3B,EAAE+jW,eAAevuE,cAAcm3D,cAAc,GAC1D43O,EAAe0+S,EAAYA,EAAU3yS,SAAW61S,EAAW3/P,gBAAgBzjnB,OAAS,EACxFpD,KAAK6l3B,WAAW7l3B,KAAKym3B,gBAAiB7hT,EAC1C,EACA68S,EAAM9w2B,UAAUgulB,WAAa,SAAUt+lB,GACnC,IAAI6vmB,EAAOlwmB,KAAKmoC,OAChB,GAAgD,aAA5C9nC,EAAE+jW,eAAe9xU,aAAa,YAC7Bo2kB,IAAaromB,EAAEgI,OAAQu0mB,MAAiBlU,IAAaromB,EAAEgI,OAAQ,eAAiBqgmB,IAAaromB,EAAEgI,OAAQu0mB,MAAwB,CAChI,IAAI0mQ,EAAY91T,GAAentjB,EAAEgI,OAAQ,MACrCm+2B,OAAa,EAEb/D,EAAoBvx1B,SAAS0I,cAAc,eAC/C,GAA6E,SAAxEv5B,EAAE+jW,eAAexqU,cAAc,MAAMtH,aAAa,oBAClDjyB,EAAE+jW,eAAevuE,cAAc1/P,KAAO+5kB,EAAK/6lB,QAAQghB,IAAOss1B,GACpDA,EAAkB5slB,cAAc1/P,KAAO+5kB,EAAK/6lB,QAAQghB,KACiB,SAAxE91B,EAAE+jW,eAAexqU,cAAc,MAAMtH,aAAa,mBAClDjyB,EAAE+jW,eAAevuE,cAAc1/P,KAAO+5kB,EAAK/6lB,QAAQghB,GACvD,OAEJ,GAAI91B,EAAE+jW,eAAevuE,cAAc1/P,KAAO+5kB,EAAK/6lB,QAAQghB,GAC/Css1B,GACA+D,EAAa/D,EAAkB5slB,cAAcm3D,cAAc,GAC3D75T,GAAOsv1B,IAGP+D,EAAanm3B,EAAE+jW,eAAevuE,cAAcm3D,cAAc,QAG7D,GAAIhtV,KAAK0m3B,qBAA+F,SAAxErm3B,EAAE+jW,eAAexqU,cAAc,MAAMtH,aAAa,kBAEnF,YADAtyB,KAAKum3B,cAAclm3B,GAGvB,GAAImm3B,EAAWrx2B,QAAQghB,KAAO+5kB,EAAK/6lB,QAAQghB,IAAMqw1B,EAAWh8M,gBAAgB//E,WAAaylB,EAAK/6lB,QAAQghB,GAClG,OAEJ,IAAIyiZ,EAAU4tc,EAAW3tO,qBACrB8tO,EAA6B3m3B,KAAKsm3B,aAAahD,GAC/Czh3B,MAAM8k3B,KAENA,EAA6B,GAE7Bz2Q,EAAKa,cACL41Q,EAAcA,EAAez2Q,EAAKgB,aAAaC,YAAcjB,EAAKgB,aAAan7L,SAAYm6L,EAAKgB,aAAan7L,UAGjHm6L,EAAK72Z,OAAOj+E,IAAkB,CAAE60e,QAAS02Q,EAAa/tc,QAASA,IAC/Ds3L,EAAK72Z,OAAOj+E,IAAqB,CAC7BxuH,KAAMwuH,IAAoBu8S,YAAa,mBAE3C,IAAIojO,EAAeyrO,EAAWvsQ,wBAC1B/wiB,EAAOs9yB,EAAWz1Q,YACjBy1Q,EAAWt1Q,aAAaC,YAAcq1Q,EAAWt1Q,aAAan7L,SAAYywc,EAAWt1Q,aAAan7L,SAAW,EAClH/1a,KAAK+6oB,aAAe,GACpB,IAAK,IAAI5uoB,EAAI,EAAGwjD,EAAMipX,EAAQx1a,OAAQ+I,EAAIwjD,EAAKxjD,IAC3CnM,KAAK+6oB,aAAa3uoB,KAAK88D,EAAO6xkB,EAAaxunB,SAASpgB,EAAE2K,WAAY,MAEtE0v2B,EAAWntqB,OAAOj+E,IAAoB,CAAE5oD,QAASxyE,KAAK+6oB,aAAcniO,QAASA,IAC7E4tc,EAAWntqB,OAAOj+E,IAAqB,CACnCxuH,KAAMwuH,IAAoBu8S,YAAa,kBAE/C,CACJ,EACA8pc,EAAM9w2B,UAAUk12B,WAAa,SAAU/3M,EAAa79D,GAChD,IAAIC,EAAOlwmB,KAAKmoC,OAChB,IAAK+nkB,EAAK8B,aAAa7ke,QAAQ/pI,SAAW8smB,EAAKwB,cAAcvke,QAAQ/pI,SAAW8smB,EAAKjI,eAAe96d,QAAQ/pI,OAAQ,CAEhH,IAAI8lE,EAAOgniB,EAAKa,YACXb,EAAKgB,aAAaC,YAAcjB,EAAKgB,aAAan7L,SAAYm6L,EAAKgB,aAAan7L,SAAW,EAGhGk6L,GAAoB/miB,EACpBlpE,KAAK+6oB,aAAe7qC,EAAK+J,wBACzB/J,EAAK72Z,OAAOj+E,IAA2B,CACnCl5D,UAAW4rmB,EAAc5kmB,EACzB+miB,QAASA,GAEjB,CACJ,EACAwxQ,EAAM9w2B,UAAU40mB,kBAAoB,SAAUllnB,GACtCA,EAAE2W,SAAWhX,KAAK+sV,iBAAmB1sV,EAAEswZ,QACvC3wZ,KAAKwj3B,gBAEb,EAOA/B,EAAM9w2B,UAAUymI,QAAU,WACtB,IAAIkggB,EAAct3oB,KAAKmoC,OAAOhzB,SAC1BnV,KAAKmoC,OAAOgwP,aAAgBm/W,IAAiBA,EAAY19mB,cAAc,IAAMgjlB,MAC5E06B,EAAY19mB,cAAc,IAAMgjlB,QAGrC58mB,KAAKujW,UAAUnsN,UACfp3I,KAAKmoC,OAAO3uB,IAAI4hH,IAAmBp7H,KAAKwj3B,gBACxCxj3B,KAAKmoC,OAAO3uB,IAAI4hH,IAAmBp7H,KAAK2+lB,YACxC3+lB,KAAKmoC,OAAO3uB,IAAI4hH,IAA+Bp7H,KAAK81b,kBACpD91b,KAAKmoC,OAAO/M,oBAAoBggG,IAAkBp7H,KAAKyj3B,eACvDzj3B,KAAKmoC,OAAO3uB,IAAI4hH,IAAiBp7H,KAAKulnB,mBACtCvlnB,KAAKmoC,OAAO3uB,IAAI4hH,IAAgBp7H,KAAKo3I,SAEzC,EAOAqquB,EAAM9w2B,UAAUo8U,cAAgB,WAC5B,MAAO,gBACX,EAEA00hB,EAAM9w2B,UAAUmx2B,YAAc,SAAUz52B,GACpC,IAAI6nmB,EAAOlwmB,KAAKmoC,OACZy+0B,EAAUr61B,SAASvsB,KAAK6h3B,WAAWvv1B,aAAasqlB,KAAwB,IACvE1M,EAAK2oC,qBAAqBz1oB,OAAS,IAA8E,IAAzEpD,KAAK6h3B,WAAWlwS,MAAM,GAAGzpT,UAAUh1P,SAAS,0BAC7C,IAArCg9kB,EAAK2oC,qBAAqBz1oB,QACzBpD,KAAKmoC,OAAO6okB,qBACZhxmB,KAAKoukB,KAAO,CAACpukB,KAAK6h3B,aAGlB7h3B,KAAKoukB,KAAO,CAACpukB,KAAKmoC,OAAOkmlB,cAAcu4P,IACnC12Q,EAAKkG,iBACLp2mB,KAAKoukB,KAAO,CAAC8hC,EAAKme,cAAcu4P,GAAU12Q,EAAKue,qBAAqBm4P,IAChE12Q,EAAK8N,kBAAoBpB,MACzB58mB,KAAKoukB,KAAO,CACR8hC,EAAKme,cAAcu4P,GAAU12Q,EAAKue,qBAAqBm4P,GAAU12Q,EAAK6nC,yBAAyB6uO,OAK/G5m3B,KAAKgoqB,QAAU,CAAChoqB,KAAKmoC,OAAO4/nB,WAAY/nqB,KAAK6h3B,WAAYjo1B,cAAc,IAAMgjlB,MAAmBorD,WAGhGhoqB,KAAKoukB,KAAO8hC,EAAKm3C,kBACjBrnpB,KAAKgoqB,QAAU93D,EAAK2oC,qBAE5B,EACO4oO,CACX,CAh9B2B,GCY3B,UA3BA,SAAqB9n1B,EAAK1sB,QACX,IAARA,IAAiBA,EAAM,CAAC,GAC7B,IAAI452B,EAAW552B,EAAI452B,SAEnB,GAAKlt1B,GAA2B,qBAAbzI,SAAnB,CAEA,IAAIU,EAAOV,SAASU,MAAQV,SAASyE,qBAAqB,QAAQ,GAC9DxvB,EAAQ+qB,SAASpwB,cAAc,SACnCqF,EAAMyG,KAAO,WAEI,QAAbi62B,GACEj11B,EAAK8C,WACP9C,EAAK+C,aAAaxuB,EAAOyrB,EAAK8C,YAKhC9C,EAAKF,YAAYvrB,GAGfA,EAAM2g3B,WACR3g3B,EAAM2g3B,WAAW92M,QAAUr2oB,EAE3BxzB,EAAMurB,YAAYR,SAASS,eAAegI,GAnBW,CAqBzD,ECzBA,IA4CWot1B,IA5CP7g0B,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAazC2pS,IAA0C,SAAUxoJ,EAAYl/L,EAAQiE,EAAKkkB,GAC7E,IAA2HhvB,EAAvH6e,EAAIld,UAAUC,OAAQkgH,EAAIjjG,EAAI,EAAIhY,EAAkB,OAATmoB,EAAgBA,EAAO/wB,OAAOk+B,yBAAyBt1B,EAAQiE,GAAOkkB,EACrH,GAAuB,kBAAZuN,SAAoD,oBAArBA,QAAQiyT,SAAyB1sO,EAAIvlF,QAAQiyT,SAASzoJ,EAAYl/L,EAAQiE,EAAKkkB,QACpH,IAAK,IAAIrkB,EAAIo7L,EAAWnkM,OAAS,EAAG+I,GAAK,EAAGA,KAAS3K,EAAI+lM,EAAWp7L,MAAIm3G,GAAKjjG,EAAI,EAAI7e,EAAE8hH,GAAKjjG,EAAI,EAAI7e,EAAE6G,EAAQiE,EAAKg3G,GAAK9hH,EAAE6G,EAAQiE,KAASg3G,GAChJ,OAAOjjG,EAAI,GAAKijG,GAAK7jH,OAAO4c,eAAehU,EAAQiE,EAAKg3G,GAAIA,CAChE,EASW/xD,IAAQ,CAEfy1zB,MAAO,IAAIrw2B,OAAO,mHAGlB6iH,IAAK,kFACLytvB,SAAU,IAAItw2B,OAAO,2DACrBuw2B,OAAQ,IAAIvw2B,OAAO,YACnBww2B,MAAO,IAAIxw2B,OAAO,qBAClByw2B,WAAY,IAAIzw2B,OAAO,kBAS3B,SAAWow2B,GAIPA,EAAYA,EAAqB,QAAI,GAAK,UAI1CA,EAAYA,EAAmB,MAAI,GAAK,OAC3C,CATD,CASGA,MAAgBA,IAAc,CAAC,IAgBlC,IC9CWM,IA0BAC,IDoBPC,IAA+B,SAAUzg0B,GASzC,SAASyg0B,EAAcpy2B,EAAS2J,GAC5B,IAAIxf,EAAQwnD,EAAOnnD,KAAKK,KAAM8e,EAAS3J,IAAYnV,KA6CnD,GA5CAV,EAAMko3B,UAAY,GAClBlo3B,EAAMmo3B,WAAa,GACnBno3B,EAAMoo3B,aAAc,EACpBpo3B,EAAMimB,SAAW,WACjBjmB,EAAMqo3B,YAAc,KACpBro3B,EAAM+3S,aAAe,KACrB/3S,EAAMso3B,YAAc,+DAEpBto3B,EAAMuo3B,cAAgB,CAAC,EAMvBvo3B,EAAMwo3B,gBAAkB,CACpBvi2B,SAAU,0BACVslI,MAAO,sCACP57B,IAAK,4BACL/uH,KAAM,6BACN6n3B,QAAS,qCACTC,WAAY,iCACZ1r2B,OAAQ,+BACRmzT,OAAQ,4BACR7hQ,UAAW,4CACXg0T,UAAW,wCACXprT,YAAa,4DACbtzE,MAAO,4CACP+pC,IAAK,kDACL2c,IAAK,qDACL2H,MAAO,gCACPw5F,IAAK,qCACLzoI,QAAS,wCACTo6mB,QAAS,qCAEc,qBAAhBp9nB,EAAM2o3B,QACb3o3B,EAAM2o3B,MAAQ,CAAC,GAEnB3o3B,EAAMy0Z,KAAO,IAAIxuD,GAAK,gBAAiBjmW,EAAMwo3B,gBAAiBxo3B,EAAMS,QAChET,EAAMS,QACNT,EAAM4o3B,aAEVrpiB,GAAatlU,GAAG,uBAAwBja,EAAM6o3B,kBAAmB7o3B,GACjE6V,EAA6B,kBAAZA,EAAuBq1U,GAAOr1U,EAAS+b,UAAY/b,EAE/C,MAAjB7V,EAAM6V,QASV,OARI7V,EAAM6V,QAAQ6f,aAAa,aAAc,IACzC11B,EAAM8o3B,cAAgBz9hB,GAAUrrV,EAAMso3B,YAAato3B,EAAM6V,SACzD7V,EAAM+o3B,mBACN/o3B,EAAMykW,aAKHzkW,CACX,CA4kBA,IAAIgp3B,EA+HJ,OA3wBApi0B,IAAUqh0B,EAAezg0B,GAiEzBwh0B,EAAkBf,EASlBA,EAAc522B,UAAU432B,SAAW,SAAU7j3B,EAAMuj3B,GAC3Cvj3B,IAEI1E,KAAKio3B,MAAMn32B,eAAepM,GAC1B+kF,GAAOzpF,KAAKio3B,MAAM,GAAKvj3B,GAAOuj3B,EAAO,CAAC,GAGtCjo3B,KAAKio3B,MAAM,GAAKvj3B,GAAQuj3B,EAGpC,EASAV,EAAc522B,UAAU632B,YAAc,SAAU9j3B,EAAMuj3B,GAClD,GAAKvj3B,GAASuj3B,EAGT,GAAIjo3B,KAAKio3B,MAAM,GAAKvj3B,KAAUuj3B,SACxBjo3B,KAAKio3B,MAAM,GAAKvj3B,OAEtB,IAAKqnU,GAAkB/rU,KAAKio3B,MAAM,GAAKvj3B,IAASuj3B,GAMjD,OALA,IAAK,IAAI972B,EAAI,EAAGA,EAAI872B,EAAM7k3B,OAAQ+I,WACvBnM,KAAKio3B,MAAM,GAAKvj3B,GAAMuj3B,EAAM171B,SAASpgB,EAAE2K,aAKtD,MAZI9W,KAAKio3B,MAAQ,CAAC,CAatB,EASAV,EAAc522B,UAAUmlV,SAAW,SAAUpnV,GACzC,IAAIu52B,EAAQxo3B,OAAO8E,KAAKvE,KAAKio3B,OAC7B,GAAIv52B,GAAYu52B,EAAM7k3B,OAGlB,OAFApD,KAAKyo3B,cAAc/52B,IAEiB,IAA7Bu52B,EAAMt92B,QAAQ+D,IAEP,IAF2B1O,KAAKyn3B,WAAWrh3B,QAAO,SAAU8jC,GACtE,OAAOA,EAAKxlC,OAASgK,CACzB,IAAGtL,OAGHpD,KAAKyn3B,WAAa,GAClB,IAAK,IAAIn42B,EAAK,EAAGo52B,EAAUT,EAAO342B,EAAKo52B,EAAQtl3B,OAAQkM,IAAM,CACzD,IAAIuqX,EAAS6uf,EAAQp52B,GACrBtP,KAAKyo3B,cAAc5uf,EACvB,CACA,OAAkC,IAA3B75X,KAAKyn3B,WAAWrk3B,MAE/B,EAOAmk3B,EAAc522B,UAAUsoC,MAAQ,WAC5Bj5C,KAAKmV,QAAQ8jC,QACbj5C,KAAK2o3B,WACT,EAQApB,EAAc522B,UAAUi42B,gBAAkB,SAAUlk3B,GAEhD,OADA1E,KAAKq3S,aAAgBmzC,GAAO,UAAY9lV,EAAO,KAAM1E,KAAKmV,SACnDnV,KAAKq3S,YAChB,EAOAkwkB,EAAc522B,UAAUymI,QAAU,WAC9Bp3I,KAAKi5C,QACLj5C,KAAKmlW,eACLnlW,KAAKio3B,MAAQ,CAAC,EAEd,IADA,IACS342B,EAAK,EAAGuhV,EADFlG,GAAU,IAAM3qV,KAAK00Z,WAAa,MAAQ10Z,KAAK6o3B,WAAY7o3B,KAAKmV,SACvC7F,EAAKuhV,EAAWztV,OAAQkM,IAAM,CAElEg7U,GADcuG,EAAWvhV,GAE7B,CACAw3C,EAAOn2C,UAAUymI,QAAQz3I,KAAKK,MAC9B6+U,GAAarlU,IAAI,uBAAwBxZ,KAAKmo3B,kBAClD,EAQAZ,EAAc522B,UAAU+7U,kBAAoB,SAAUiF,EAASC,GAC3D,IAAK,IAAItiV,EAAK,EAAGgmC,EAAK71C,OAAO8E,KAAKotV,GAAUriV,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CAE9D,GACS,WAFEgmC,EAAGhmC,GAGNtP,KAAKko3B,YAGjB,CACJ,EAKAX,EAAc522B,UAAUu32B,WAAa,WACjC,IAAK,IAAI542B,EAAK,EAAGgmC,EAAK71C,OAAO8E,KAAKvE,KAAK8n3B,iBAAkBx42B,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CAC3E,IAAIhD,EAAMgpC,EAAGhmC,GACbtP,KAAK+zZ,KAAKruD,UAAU1lW,KAAKD,QACzB,IAAI6B,EAAQ5B,KAAK+zZ,KAAKhuD,YAAYz5V,GAClCtM,KAAK6n3B,cAAc,GAAKv72B,GAAO1K,CACnC,CACJ,EAKA2l3B,EAAc522B,UAAUo8U,cAAgB,WACpC,MAAO,eACX,EAMAw6hB,EAAc522B,UAAUw32B,kBAAoB,SAAUlv2B,GAClDjZ,KAAKD,OAASkZ,EAAKlZ,OACnBC,KAAKko3B,YACT,EAMAX,EAAc522B,UAAUkoV,QAAU,WAC9B74V,KAAKmlW,eACLnlW,KAAKoo3B,cAAgBz9hB,GAAU3qV,KAAK4n3B,YAAa5n3B,KAAKmV,SACtDnV,KAAK+jW,YACT,EACAwjhB,EAAc522B,UAAUg42B,UAAY,WAChC3o3B,KAAKyn3B,WAAa,GAClBzn3B,KAAKwn3B,UAAY,GAEjB,IADA,IACSl42B,EAAK,EAAGw52B,EADFn+hB,GAAU3qV,KAAK4n3B,YAAa5n3B,KAAKmV,SACR7F,EAAKw52B,EAAW1l3B,OAAQkM,IAAM,CAClE,IACIgW,EADUwj2B,EAAWx52B,GAEzBgW,EAAMyP,gBAAgB,gBACtBzP,EAAM4iQ,UAAU/0P,OAAOnzB,KAAK00Z,YACxBpvY,EAAM5gB,KAAKtB,OAAS,IACpBpD,KAAK4o3B,gBAAgBtj2B,EAAM5gB,MAC3B1E,KAAK+o3B,gBAAgBzj2B,EAAM5gB,MAC3B1E,KAAKy5rB,YAAYn0qB,EAAM5gB,OAE3B4gB,EAAM4iQ,UAAU/0P,OAAOnzB,KAAK6o3B,WAChC,CACJ,EACAtB,EAAc522B,UAAU032B,iBAAmB,WAMvC,IALA,IAAIW,EAAW,CAAC,WAAY,iBAAkB,QAAS,cAAe,YAAa,YAAa,UAAW,SACvG,UAAW,oBAAqB,OAAQ,kBAAmB,MAAO,MAAO,QAAS,UAAW,yBAC7F,yBAA0B,yBAA0B,qBAAsB,yBAA0B,sBACpG,sBAAuB,kBACvBC,EAAgB,CAAC,SAAU,QAAS,MAAO,OAAQ,SAAU,OACxD352B,EAAK,EAAGgmC,EAAMt1C,KAAKoo3B,cAAgB942B,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CAI9D,IAHA,IAAIgW,EAAQgwB,EAAGhmC,GAEX452B,EAAU,CAAC,EACNxz0B,EAAK,EAAGyz0B,EAAaH,EAAUtz0B,EAAKyz0B,EAAW/l3B,OAAQsyC,IAAM,CAClE,IAAIwkF,EAAOivvB,EAAWzz0B,GACtB,GAAiC,OAA7BpwB,EAAMgN,aAAa4nG,GACnB,OAAQA,GACJ,IAAK,WACDl6H,KAAKop3B,QAAQ9j2B,EAAO4j2B,EAAShvvB,EAAM50G,EAAMC,UACzC,MACJ,IAAK,kBACD20G,EAAO50G,EAAMgN,aAAa4nG,GAC1Bl6H,KAAKop3B,QAAQ9j2B,EAAO4j2B,EAAShvvB,GAAM,GACnC,MACJ,IAAK,QAC0C,IAAvC+uvB,EAAct+2B,QAAQ2a,EAAM1Y,OAC5B5M,KAAKop3B,QAAQ9j2B,EAAO4j2B,EAAS5j2B,EAAM1Y,MAAM,GAE7C,MACJ,IAAK,cACL,IAAK,QACD5M,KAAKop3B,QAAQ9j2B,EAAO4j2B,EAAShvvB,EAAMzpF,KAAKuL,MAAM12B,EAAMgN,aAAa4nG,KACjE,MACJ,IAAK,UAEG,IAAI/jG,EAAK7Q,EAAMgN,aAAa4nG,GAC5Bl6H,KAAKop3B,QAAQ9j2B,EAAO4j2B,EAAShvvB,EAAM/jG,GAEvC,MACJ,QAC2C,SAAnC7Q,EAAMgN,aAAa,YACnBtyB,KAAKqp3B,eAAe/j2B,EAAO4j2B,EAAShvvB,EAAM50G,EAAMgN,aAAa4nG,IAG7Dl6H,KAAKop3B,QAAQ9j2B,EAAO4j2B,EAAShvvB,EAAM50G,EAAMgN,aAAa4nG,IAI1E,CAEoC,IAAhCz6H,OAAO8E,KAAK2k3B,GAAS9l3B,QACrBpD,KAAKuo3B,SAASjj2B,EAAM5gB,KAAMwk3B,EAElC,CACJ,EACA3B,EAAc522B,UAAU042B,eAAiB,SAAU/j2B,EAAOgk2B,EAASC,EAAU3n3B,GACzE,IAAIyn3B,EAAiBE,EAAS521B,MAAM,KAChC621B,EAAY,CAAC,WAAY,aAAc,QAAS,YAAa,YAAa,QAAS,QAAS,WAC5FC,EAAgBJ,EAAeA,EAAejm3B,OAAS,GACvDsm3B,EAAiBL,EAAeA,EAAejm3B,OAAS,GAC5D,IAA0C,IAAtCom3B,EAAU7+2B,QAAQ8+2B,GAClB,OAAQA,GACJ,IAAK,WACDzp3B,KAAKop3B,QAAQ9j2B,EAAOgk2B,EAAS,WAAY1n3B,GACzC,MACJ,IAAK,aACD5B,KAAKop3B,QAAQ9j2B,EAAOgk2B,EAAS,aAAc1n3B,GAC3C,MACJ,IAAK,QACD5B,KAAKop3B,QAAQ9j2B,EAAOgk2B,EAAS,MAAO1n3B,QAI3C,IAA2C,IAAvC4n3B,EAAU7+2B,QAAQ++2B,GACvB,OAAQA,GACJ,IAAK,YACD1p3B,KAAKop3B,QAAQ9j2B,EAAOgk2B,EAAS,YAAa1n3B,GAC1C,MACJ,IAAK,YACD5B,KAAKop3B,QAAQ9j2B,EAAOgk2B,EAAS,YAAa1n3B,GAC1C,MACJ,IAAK,QAEG,IAAI+n3B,EAAWrk2B,EAAMgN,aAAa,sBAC9Bs31B,EAAWtk2B,EAAMgN,aAAa,sBAClCtyB,KAAKop3B,QAAQ9j2B,EAAOgk2B,EAAS,QAAS,CAACK,EAAUC,IAErD,MACJ,IAAK,UAEG,IAAIzz1B,EAAK7Q,EAAMgN,aAAai31B,GAAU521B,MAAM,KAC5C3yB,KAAKop3B,QAAQ9j2B,EAAOgk2B,EAAS,UAAWnz1B,EAAGA,EAAG/yB,OAAS,IAE3D,MACJ,IAAK,QACDpD,KAAKop3B,QAAQ9j2B,EAAOgk2B,EAAS,QAAS1n3B,GAItD,EACA2l3B,EAAc522B,UAAUy42B,QAAU,SAAU9j2B,EAAOgk2B,EAASC,EAAU3n3B,GAClE,IAEIio3B,EAFA3y2B,EAAUoO,EAAMgN,aAAa,QAAUi31B,EAAW,YAClDO,EAAoBxk2B,EAAMgN,aAAa,YAAci31B,GAErDvp3B,KAAKio3B,MAAM3i2B,EAAM5gB,OAAsB,mBAAb6k3B,GAA8C,WAAbA,IAC3Dvp3B,KAAK4o3B,gBAAgBtj2B,EAAM5gB,MAC3Bml3B,EAAgB7p3B,KAAK+p3B,gBAAgB/p3B,KAAKio3B,MAAM3i2B,EAAM5gB,MAAM,GAAK6k3B,GAAWA,IAE5Ery2B,EACAtV,EAAQ,CAACA,EAAOsV,GAEX4y2B,EACLlo3B,EAAQ,CAACA,EAAOko3B,GAEXD,IACLjo3B,EAAQ,CAACA,EAAOio3B,IAEpBP,EAAQ,GAAKC,GAAY3n3B,CAC7B,EAEA2l3B,EAAc522B,UAAUozV,WAAa,WACjC,IAAK,IAAIz0V,EAAK,EAAGgmC,EAAMt1C,KAAKoo3B,cAAgB942B,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CAC9D,IAAIgW,EAAQgwB,EAAGhmC,GACXg52B,EAAgB0B,YAAY1k2B,GAC5BuzN,GAAazlN,IAAI9N,EAAO,QAAStlB,KAAK8qZ,aAAc9qZ,MAE7B,WAAlBslB,EAAM8iB,QACXywM,GAAazlN,IAAI9N,EAAO,SAAUtlB,KAAKsxZ,cAAetxZ,OAGtD64O,GAAazlN,IAAI9N,EAAO,WAAYtlB,KAAKm4d,gBAAiBn4d,MAC1D64O,GAAazlN,IAAI9N,EAAO,QAAStlB,KAAKq4d,aAAcr4d,MAE5D,CACA64O,GAAazlN,IAAIpzB,KAAKmV,QAAS,SAAUnV,KAAKiq3B,cAAejq3B,MAC7D64O,GAAazlN,IAAIpzB,KAAKmV,QAAS,QAASnV,KAAKw1Z,aAAcx1Z,KAC/D,EAEAun3B,EAAc522B,UAAUw0V,aAAe,WACnC,IAAK,IAAI71V,EAAK,EAAGgmC,EAAMt1C,KAAKoo3B,cAAgB942B,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CAC9D,IAAIgW,EAAQgwB,EAAGhmC,GACfupO,GAAaswG,YAAY7jU,EAC7B,CACAuzN,GAAa1lN,OAAOnzB,KAAKmV,QAAS,SAAUnV,KAAKiq3B,eACjDpxoB,GAAa1lN,OAAOnzB,KAAKmV,QAAS,QAASnV,KAAKw1Z,aACpD,EAEA+xd,EAAc522B,UAAUwnd,gBAAkB,SAAU93d,GAChDL,KAAKsgS,QAAQ,WAAYjgS,GAEzB,IAAI8U,EAAU9U,EAAEgI,OACZrI,KAAKio3B,MAAM9y2B,EAAQzQ,QACf1E,KAAKio3B,MAAM9y2B,EAAQzQ,MAAM1E,KAAKulB,WAAapQ,EAAQvT,MAAMwB,OAAS,EAClEpD,KAAK81V,SAAS3gV,EAAQzQ,OAEyB,IAA1C1E,KAAKwn3B,UAAU782B,QAAQwK,EAAQzQ,OACpC1E,KAAKwn3B,UAAUp72B,KAAK+I,EAAQzQ,MAGxC,EAEA6i3B,EAAc522B,UAAU0nd,aAAe,SAAUh4d,GAC7CL,KAAKsgS,QAAQ,QAASjgS,GACtB,IAAI8U,EAAU9U,EAAEgI,QAGA,IAAZhI,EAAEg4B,OAAiBr4B,KAAKio3B,MAAM9y2B,EAAQzQ,SAAU1E,KAAKio3B,MAAM9y2B,EAAQzQ,OAAU1E,KAAKio3B,MAAM9y2B,EAAQzQ,MAAM1E,KAAKulB,cAGjE,IAA1CvlB,KAAKwn3B,UAAU782B,QAAQwK,EAAQzQ,OAAgB1E,KAAKio3B,MAAM9y2B,EAAQzQ,QAA2C,IAJ/F,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,KAIuBiG,QAAQtK,EAAEg4B,QACjGr4B,KAAK81V,SAAS3gV,EAAQzQ,KAE9B,EAEA6i3B,EAAc522B,UAAUm6Y,aAAe,SAAUzqZ,GAC7CL,KAAKsgS,QAAQ,QAASjgS,GACtB,IAAI8U,EAAU9U,EAAEgI,OAEK,WAAjB8M,EAAQvI,KACR5M,KAAK81V,SAAS3gV,EAAQzQ,MAE0B,OAA3CyQ,EAAQmd,aAAa,oBAE1BtyB,KAAK0n3B,aAAc,EAE3B,EAEAH,EAAc522B,UAAU2gZ,cAAgB,SAAUjxZ,GAC9CL,KAAKsgS,QAAQ,SAAUjgS,GACvB,IAAI8U,EAAU9U,EAAEgI,OAChBrI,KAAK81V,SAAS3gV,EAAQzQ,KAC1B,EAEA6i3B,EAAc522B,UAAUs52B,cAAgB,SAAU5p3B,GAC9CL,KAAKsgS,QAAQ,SAAUjgS,GAGlBL,KAAK0n3B,aAAgB1n3B,KAAK81V,WAI3B91V,KAAK0n3B,aAAc,EAHnBrn3B,EAAEgO,gBAKV,EAEAk52B,EAAc522B,UAAU6kZ,aAAe,WACnCx1Z,KAAK2o3B,WACT,EAEApB,EAAc522B,UAAU832B,cAAgB,SAAU/j3B,GAC9C,GAAK1E,KAAKio3B,MAAM,GAAKvj3B,GAArB,CAGA,IAAIuj3B,EAAQxo3B,OAAO8E,KAAKvE,KAAKio3B,MAAM,GAAKvj3B,IACpCwl3B,GAAa,EACbC,GAAqB,EACrBC,EAAQnC,EAAMt92B,QAAQ,kBACtB0/2B,EAAOpC,EAAMt92B,QAAQ,UAQzB,GAPA3K,KAAK4o3B,gBAAgBlk3B,IACP,IAAV2l3B,IACAH,GAAa,IAEF,IAAXE,IACAD,GAAqB,IAEpBD,GAAeA,GAAcC,EAAlC,EACmB,IAAXC,GACAnC,EAAMzy1B,OAAO401B,EAAO,IAEV,IAAVC,GACApC,EAAMzy1B,OAAQ601B,EAAO,EAAI,GAE7Brq3B,KAAK+o3B,gBAAgBrk3B,GACrB,IAAK,IAAI4K,EAAK,EAAGg72B,EAAUrC,EAAO342B,EAAKg72B,EAAQln3B,OAAQkM,IAAM,CACzD,IAAI4qH,EAAOowvB,EAAQh72B,GACf4qI,EAAel6I,KAAK+p3B,gBAAgB/p3B,KAAKio3B,MAAM,GAAKvj3B,GAAM,GAAKw1H,GAAOA,GACtEqwvB,EAAY,CAAE7l3B,KAAMA,EAAMwS,QAASgjI,GACnC0qM,EAAY,CACZ6wI,UAAW/wd,EACXyQ,QAASnV,KAAKq3S,aACdngS,QAASgjI,GAEb,IAAKl6I,KAAKy3F,QAAQ/yF,EAAMw1H,KAAUl6H,KAAKq3S,aAAanvB,UAAUh1P,SAASlzB,KAAK2mI,QAAS,CACjF3mI,KAAKwq3B,iBAAiB9l3B,GACtB1E,KAAKyn3B,WAAWr72B,KAAKm+2B,GAErBvq3B,KAAKq3S,aAAariR,aAAa,eAAgB,QAC/Ch1B,KAAKq3S,aAAariR,aAAa,mBAAoBh1B,KAAKq3S,aAAalhR,GAAK,SAC1En2B,KAAKq3S,aAAanvB,UAAU90P,IAAIpzB,KAAK00Z,YACrC10Z,KAAKq3S,aAAanvB,UAAU/0P,OAAOnzB,KAAK6o3B,YACnC7o3B,KAAK2n3B,YAIN3n3B,KAAK05rB,YAAY6wL,GAHjBvq3B,KAAKyq3B,mBAAmB/l3B,EAAM6l3B,EAAUrz2B,QAASlX,KAAKq3S,cAK1DutC,EAAUwihB,aAAepn2B,KAAK2n3B,YAC9B/iiB,EAAUnuM,OAAS,UACnBz2I,KAAKq3S,aAAanvB,UAAU90P,IAAIpzB,KAAK00Z,YACrC10Z,KAAKq3S,aAAanvB,UAAU/0P,OAAOnzB,KAAK6o3B,YACxC7o3B,KAAK0q3B,yBAAyBhm3B,EAAMkgV,GACpC5kV,KAAKsgS,QAAQ,qBAAsBskD,GAEtB,aAAT1qN,GACAl6H,KAAKq3S,aAAariR,aAAa,gBAAiB,QAEpD,KACJ,CAEIh1B,KAAKy5rB,YAAY/0rB,GACjBkgV,EAAUnuM,OAAS,UACnBz2I,KAAKsgS,QAAQ,qBAAsBskD,EAE3C,CAIJ,CAjEA,CAkEJ,EAEA2iiB,EAAc522B,UAAU+52B,yBAA2B,SAAUhm3B,EAAMim3B,GAC1D3q3B,KAAKio3B,MAAM,GAAKvj3B,GAAM1E,KAAKulB,WAAcvlB,KAAKq3S,aAAaz1S,MAAMwB,QAAW2oU,GAAkB/rU,KAAK2n3B,eACpG3n3B,KAAK2n3B,YAAYz+0B,UAAYlpC,KAAKq3S,aAAaz1S,MAC/C5B,KAAK2n3B,YAAY3y1B,aAAa,eAAgB,SAC9C211B,EAAMl0uB,OAAS,GACfz2I,KAAKy5rB,YAAY/0rB,GAEzB,EAEA6i3B,EAAc522B,UAAU8mF,QAAU,SAAU/yF,EAAMw1H,GAC9C,IAAI6I,EAAS/iI,KAAKio3B,MAAM,GAAKvj3B,GAAM,GAAKw1H,GACpC+nB,EAASlf,aAAkBryH,OAA8B,kBAAdqyH,EAAO,GAAmBA,EAAO,GAAKA,EACjF6nvB,EAAc5q3B,KAAKio3B,MAAM,GAAKvj3B,GAAM,GAAKw1H,GACzCjhH,EAAO,CAAErX,MAAO5B,KAAKq3S,aAAaz1S,MAAOqgJ,MAAOA,EAAO9sI,QAASnV,KAAKq3S,aAActwQ,YAAa/mC,KAAKmV,SAEzG,OADAnV,KAAKsgS,QAAQ,kBAAmBrnR,IAC3BA,EAAKgpI,OAAkB,aAAT/nB,IAGf0wvB,GAAyC,oBAAnBA,EAAY,GACzBA,EAAY,GACXjr3B,KAAKK,KAAM,CAAEmV,QAASnV,KAAKq3S,aAAcz1S,MAAO5B,KAAKq3S,aAAaz1S,QAEvE0m3B,EAAgB0B,YAAYhq3B,KAAKq3S,cACzB,aAATn9K,GAGGywN,GAAU,eAAiBjmV,EAAO,aAAc1E,KAAKmV,SAAS/R,OAAS,EAGvEkl3B,EAAgBuC,eAAe,GAAK3wvB,GAAMjhH,GAEzD,EAEAsu2B,EAAc522B,UAAUo52B,gBAAkB,SAAUe,EAAW5wvB,GAC3D,IAAIhjH,EAAUlX,KAAKq3S,aAAa/kR,aAAa,QAAU4nG,EAAO,YAC1Dl6H,KAAKq3S,aAAa/kR,aAAa,QAAU4nG,EAAO,YAC/C4wvB,aAAqBp62B,OAAiC,kBAAjBo62B,EAAU,GAAmBA,EAAU,GAC7B,IAA3Crr3B,OAAO8E,KAAKvE,KAAK6n3B,eAAezk3B,OAAgBpD,KAAK6n3B,cAAc,GAAK3tvB,GAAQl6H,KAAK8n3B,gBAAgB,GAAK5tvB,GAC/GlyG,EAAU9Q,EAAQC,MAAM,WAC5B,IAAK40T,GAAkB/jT,GACnB,IAAK,IAAI7b,EAAI,EAAGA,EAAI6b,EAAQ5kB,OAAQ+I,IAAK,CACrC,IAAIvK,EAAQkp3B,aAAqBp62B,MAAQo62B,EAAUv+1B,SAASpgB,EAAE2K,aAAeg02B,EAC7E5z2B,EAAUA,EAAQ7G,QAAQ2X,EAAQuE,SAASpgB,EAAE2K,aAAclV,EAC/D,CAEJ,OAAOsV,CACX,EAEAqw2B,EAAc522B,UAAU852B,mBAAqB,SAAU/l3B,EAAMwS,EAASoO,GAClE,IAAI8h1B,EAAetm2B,GAAcd,KAAKon2B,aAAc,CAChDrm2B,UAAWf,KAAK00Z,WAChBxrX,UAAWhyB,EACXuyU,MAAO,CAAE76T,IAAKlqB,KAUlB,GAPI1E,KAAK+q3B,cAAgBhE,IAAYiE,UACjC5jB,EAAal/kB,UAAU/0P,OAAOnzB,KAAK00Z,YACnC0yc,EAAal/kB,UAAU90P,IAAI,aAC3Bg00B,EAAetm2B,GAAcd,KAAKir3B,eAAgB,CAAElq3B,UAAWf,KAAK00Z,WAAYxrX,UAAWk+zB,EAAaj7zB,aAE5Gi7zB,EAAajx0B,GAAKn2B,KAAKq3S,aAAa3yS,KAAO,QAEvC1E,KAAKmV,QAAQykB,cAAc,qBAAuBtU,EAAM6Q,GAAK,MAC7Dn2B,KAAKmV,QAAQykB,cAAc,qBAAuBtU,EAAM6Q,GAAK,MAAMzE,YAAY010B,QAE9E,IAAmD,IAA/C9h1B,EAAMwP,aAAa,wBAAkC,CAGzC01T,GAAO,IADNllU,EAAMgN,aAAa,wBACMtyB,KAAKmV,SACrCuc,YAAY010B,EAC3B,MACiC,MAAxBpn2B,KAAKkr3B,gBAEVlr3B,KAAKkr3B,gBAAgBvr3B,KAAKK,KAAMA,KAAKq3S,aAAc+vjB,GAGnDpn2B,KAAKq3S,aAAa7iR,WAAWG,aAAayy0B,EAAcpn2B,KAAKq3S,aAAaziR,aAE9Ewy0B,EAAajh2B,MAAMi+J,QAAU,QAC7BpkK,KAAK+o3B,gBAAgBrk3B,GACrB1E,KAAKwn3B,UAAUp72B,KAAK1H,GACpB1E,KAAKmr3B,cAAczm3B,EACvB,EAEA6i3B,EAAc522B,UAAUo42B,gBAAkB,SAAUrk3B,GAKhD,OAJA1E,KAAK2n3B,YAAcn9hB,GAAOxqV,KAAKon2B,aAAe,IAAMpn2B,KAAK00Z,WAAY10Z,KAAKq3S,aAAaxhB,eAClF71R,KAAK2n3B,cACN3n3B,KAAK2n3B,YAAcn9hB,GAAOxqV,KAAKon2B,aAAe,IAAMpn2B,KAAK00Z,WAAa,SAAWhwZ,EAAO,KAAM1E,KAAKmV,UAEhGnV,KAAK2n3B,WAChB,EAEAJ,EAAc522B,UAAU652B,iBAAmB,SAAU9l3B,GACjD,IAAK,IAAIyH,EAAI,EAAGA,EAAInM,KAAKyn3B,WAAWrk3B,OAAQ+I,IAAK,CAClCnM,KAAKyn3B,WAAWl71B,SAASpgB,EAAE2K,aAC7BpS,OAASA,GACd1E,KAAKyn3B,WAAWjy1B,OAAOrpB,EAAG,EAElC,CACJ,EAEAo72B,EAAc522B,UAAU+orB,YAAc,SAAU6wL,GAC5Cvq3B,KAAK2n3B,YAAYxh3B,MAAMi+J,QAAU,QACjCpkK,KAAK2n3B,YAAYz+0B,UAAYqh1B,EAAUrz2B,QACvClX,KAAKmr3B,cAAcZ,EAAU7l3B,KACjC,EAEA6i3B,EAAc522B,UAAU8orB,YAAc,SAAU/0rB,GACxC1E,KAAK2n3B,cACL3n3B,KAAK2n3B,YAAYxh3B,MAAMi+J,QAAU,OACjCpkK,KAAKwq3B,iBAAiB9l3B,GACtB1E,KAAKq3S,aAAanvB,UAAU90P,IAAIpzB,KAAK6o3B,YACrC7o3B,KAAKq3S,aAAanvB,UAAU/0P,OAAOnzB,KAAK00Z,YACxC10Z,KAAKq3S,aAAariR,aAAa,eAAgB,SAEvD,EAEAuy1B,EAAc522B,UAAUw62B,cAAgB,SAAUzm3B,GACzC1E,KAAKio3B,MAAM,GAAKvj3B,GAAM1E,KAAKulB,WAAcvlB,KAAKq3S,aAAaz1S,MAAMwB,QAAW2oU,GAAkB/rU,KAAK2n3B,eACpG3n3B,KAAK2n3B,YAAYz+0B,UAAYlpC,KAAKq3S,aAAaz1S,MAC/C5B,KAAK2n3B,YAAY3y1B,aAAa,eAAgB,SAC9Ch1B,KAAKy5rB,YAAY/0rB,GAEzB,EAEA6i3B,EAAcyC,YAAc,SAAU1k2B,GAClC,IAAI8l2B,EAAY9l2B,EAAMgN,aAAa,QACnC,OAAO841B,IAA4B,aAAdA,GAA0C,UAAdA,GAAuC,WAAdA,EAC9E,EAGA7D,EAAcsD,eAAiB,CAC3Btl2B,SAAU,SAAUq4R,GAChB,OAAQ/7S,MAAMJ,KAAKu6C,MAAM4hQ,EAAOh8S,QAAqDg8S,EAAOh8S,MAAMkV,WAAW1T,OAAS,GAA3EvB,MAAM,IAAIJ,KAAKm8S,EAAOh8S,OAAOF,UAC5E,EACAmpJ,MAAO,SAAU+yJ,GACb,OAAOrsP,IAAMy1zB,MAAM791B,KAAKy0R,EAAOh8S,MACnC,EACAqtH,IAAK,SAAU2uL,GACX,OAAOrsP,IAAMioE,IAAIrwG,KAAKy0R,EAAOh8S,MACjC,EACAmm3B,QAAS,SAAUnqkB,GACf,OAAOrsP,IAAM01zB,SAAS991B,KAAKy0R,EAAOh8S,MACtC,EACAmpJ,IAAK,SAAU6yJ,GACX,OAAOrsP,IAAM41zB,MAAMh+1B,KAAKy0R,EAAOh8S,MACnC,EACAom3B,WAAY,SAAUpqkB,GAClB,OAAOrsP,IAAM61zB,WAAWj+1B,KAAKy0R,EAAOh8S,MACxC,EACA0a,OAAQ,SAAUshS,GACd,OAAQ/7S,MAAMgkB,OAAO+3R,EAAOh8S,UAA0C,IAA/Bg8S,EAAOh8S,MAAM+I,QAAQ,IAChE,EACA8kU,OAAQ,SAAU7xB,GACd,OAAOrsP,IAAM21zB,OAAO/91B,KAAKy0R,EAAOh8S,MACpC,EACAgsE,UAAW,SAAUgwO,GACjB,OAAOA,EAAOh8S,MAAMwB,QAAUw6S,EAAO37J,KACzC,EACA2/O,UAAW,SAAUhkF,GACjB,OAAOA,EAAOh8S,MAAMwB,QAAUw6S,EAAO37J,KACzC,EACAzrE,YAAa,SAAUonO,GACnB,IAAI37J,EAAQ27J,EAAO37J,MACnB,OAAO27J,EAAOh8S,MAAMwB,QAAU6+I,EAAM,IAAM27J,EAAOh8S,MAAMwB,QAAU6+I,EAAM,EAC3E,EACA/+I,MAAO,SAAU06S,GACb,IAAI37J,EAAQ27J,EAAO37J,MACnB,OAAQpgJ,MAAMgkB,OAAO+3R,EAAOh8S,SAAWikB,OAAO+3R,EAAOh8S,QAAUqgJ,EAAM,IAAMp8H,OAAO+3R,EAAOh8S,QAAUqgJ,EAAM,EAC7G,EACA/hJ,KAAM,SAAU09S,GACZ,OAAQ/7S,MAAM,IAAIJ,KAAKm8S,EAAOh8S,OAAOF,UACzC,EACAurC,IAAK,SAAU2wQ,GACX,OAAK/7S,MAAMgkB,OAAO+3R,EAAOh8S,QAKlB,IAAIH,KAAKm8S,EAAOh8S,OAAOF,WAAa,IAAID,KAAKgvC,KAAKuL,MAAMvL,KAAK+mF,UAAUomL,EAAO37J,SAASvgJ,WAHlFk8S,EAAOh8S,OAASg8S,EAAO37J,KAIvC,EACAr4F,IAAK,SAAUg0P,GACX,GAAK/7S,MAAMgkB,OAAO+3R,EAAOh8S,QAIpB,KAAqC,IAAhCg8S,EAAOh8S,MAAO+I,QAAQ,KAAa,CACzC,IAAI0g3B,EAAQztkB,EAAOh8S,MAAOyO,QAAQ,KAAM,IACxC,OAAOqgC,WAAW260B,IAASztkB,EAAO37J,KACtC,CAGI,OAAO,IAAIxgJ,KAAKm8S,EAAOh8S,OAAOF,WAAa,IAAID,KAAKgvC,KAAKuL,MAAMvL,KAAK+mF,UAAUomL,EAAO37J,SAASvgJ,SAClG,CATI,OAAQk8S,EAAOh8S,OAASg8S,EAAO37J,KAUvC,EACA1wF,MAAO,SAAUqsP,GAEb,OAAO,IAAIjnS,OAAOinS,EAAO37J,OAAO94H,KAAKy0R,EAAOh8S,MAChD,EACA86nB,QAAS,SAAU9+U,GACf,IAAI8ke,EAAY9ke,EAAO72Q,YAAYnN,cAAc,IAAMgkR,EAAO37J,OAE9D,OADA27J,EAAO37J,MAAQygoB,EAAU9gxB,MAClBg8S,EAAO37J,QAAU27J,EAAOh8S,KACnC,GAEJmuV,IAAW,CACPjB,GAAS,KACVy4hB,EAAc522B,UAAW,cAAU,GACtCo/U,IAAW,CACPjB,GAAS,aACVy4hB,EAAc522B,UAAW,cAAU,GACtCo/U,IAAW,CACPjB,MACDy4hB,EAAc522B,UAAW,aAAS,GACrCo/U,IAAW,CACPjB,GAAS,YACVy4hB,EAAc522B,UAAW,kBAAc,GAC1Co/U,IAAW,CACPjB,GAAS,YACVy4hB,EAAc522B,UAAW,kBAAc,GAC1Co/U,IAAW,CACPjB,GAAS,UACVy4hB,EAAc522B,UAAW,oBAAgB,GAC5Co/U,IAAW,CACPjB,GAAS,QACVy4hB,EAAc522B,UAAW,sBAAkB,GAC9Co/U,IAAW,CACPjB,GAASi4hB,IAAYrimB,QACtB6imB,EAAc522B,UAAW,mBAAe,GAC3Co/U,IAAW,CACP94T,MACDsw1B,EAAc522B,UAAW,gBAAY,GACxCo/U,IAAW,CACP94T,MACDsw1B,EAAc522B,UAAW,aAAS,GACrCo/U,IAAW,CACP94T,MACDsw1B,EAAc522B,UAAW,aAAS,GACrCo/U,IAAW,CACP94T,MACDsw1B,EAAc522B,UAAW,cAAU,GACtCo/U,IAAW,CACP94T,MACDsw1B,EAAc522B,UAAW,cAAU,GACtCo/U,IAAW,CACP94T,MACDsw1B,EAAc522B,UAAW,uBAAmB,GAC/Co/U,IAAW,CACP94T,MACDsw1B,EAAc522B,UAAW,0BAAsB,GAClDo/U,IAAW,CACP94T,MACDsw1B,EAAc522B,UAAW,uBAAmB,GAC/C422B,EAAgBe,EAAkBv4hB,IAAW,CACzCT,IACDi4hB,EAEP,CA7wBmC,CA6wBjCp8hB,ICn1BEjlS,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAazC2pS,IAA0C,SAAUxoJ,EAAYl/L,EAAQiE,EAAKkkB,GAC7E,IAA2HhvB,EAAvH6e,EAAIld,UAAUC,OAAQkgH,EAAIjjG,EAAI,EAAIhY,EAAkB,OAATmoB,EAAgBA,EAAO/wB,OAAOk+B,yBAAyBt1B,EAAQiE,GAAOkkB,EACrH,GAAuB,kBAAZuN,SAAoD,oBAArBA,QAAQiyT,SAAyB1sO,EAAIvlF,QAAQiyT,SAASzoJ,EAAYl/L,EAAQiE,EAAKkkB,QACpH,IAAK,IAAIrkB,EAAIo7L,EAAWnkM,OAAS,EAAG+I,GAAK,EAAGA,KAAS3K,EAAI+lM,EAAWp7L,MAAIm3G,GAAKjjG,EAAI,EAAI7e,EAAE8hH,GAAKjjG,EAAI,EAAI7e,EAAE6G,EAAQiE,EAAKg3G,GAAK9hH,EAAE6G,EAAQiE,KAASg3G,GAChJ,OAAOjjG,EAAI,GAAKijG,GAAK7jH,OAAO4c,eAAehU,EAAQiE,EAAKg3G,GAAIA,CAChE,GAOA,SAAW+jwB,GAIPA,EAAiB,OAAI,SAIrBA,EAAkB,QAAI,UAItBA,EAAe,KAAI,OAInBA,EAAkB,QAAI,UAItBA,EAAgB,MAAI,OACvB,CArBD,CAqBGA,MAAaA,IAAW,CAAC,IAK5B,SAAWC,GAIPA,EAAc,KAAI,OAIlBA,EAAkB,SAAI,WAItBA,EAAgB,OAAI,QACvB,CAbD,CAaGA,MAAYA,IAAU,CAAC,IAC1B,IAAIgE,IAAW,aAGXppe,IAAM,QACNhxI,IAAU,YACVC,IAAU,YACVo6mB,IAAO,SACPhgpB,IAAQ,UACR0nC,IAAW,aACXu4mB,IAAS,WACTl3K,IAAO,WAeP02K,IAAyB,SAAUlk0B,GAQnC,SAASkk0B,EAAQls2B,EAAS3J,GACtB,IAAI7V,EAAQwnD,EAAOnnD,KAAKK,KAAM8e,EAAS3J,IAAYnV,KAEnD,OADAV,EAAMq+gB,eAAgB,EACfr+gB,CACX,CAqSA,OAhTA4mD,IAAU8k0B,EAASlk0B,GAkBnBkk0B,EAAQr62B,UAAUo8U,cAAgB,WAC9B,MAAO,SACX,EAMAi+hB,EAAQr62B,UAAU0pV,eAAiB,WAC/B,OAAOr6V,KAAK26V,aAAa,GAC7B,EAOAqwhB,EAAQr62B,UAAUmoV,UAAY,WAE1B94V,KAAK+zZ,KAAO,IAAIxuD,GAAK,UADJ,CAAE/pN,MAAO,SACkBx7I,KAAKD,OACrD,EAOAir3B,EAAQr62B,UAAUyJ,OAAS,WACvBpa,KAAKyr3B,aAAezr3B,KAAKmV,QAAQ+zB,UACjClpC,KAAKmV,QAAQ+zB,UAAY,GACzBlpC,KAAK6tK,aACL7tK,KAAK+jW,aACL/jW,KAAK45V,iBACL55V,KAAKs6V,uBACLt6V,KAAK29gB,eAAgB,CACzB,EACAqtW,EAAQr62B,UAAUk9J,WAAa,WAC3B7tK,KAAKmV,QAAQ6f,aAAa,OAAQ,SAClCh1B,KAAK0r3B,UACL1r3B,KAAK+iT,aACL/iT,KAAK2r3B,eACL3r3B,KAAK4r3B,cACL5r3B,KAAK6r3B,aACL7r3B,KAAK4+Y,cACL5+Y,KAAKslnB,aACDtlnB,KAAKq4V,WACLr4V,KAAKmV,QAAQ+yQ,UAAU90P,IAAI8uX,IAEnC,EACA8oe,EAAQr62B,UAAU+62B,QAAU,WACpB1r3B,KAAK8sb,WACL9sb,KAAK6ub,YAAc7ub,KAAKc,cAAc,OAAQ,CAAEC,UAAWuq3B,MAC3Dtr3B,KAAKmV,QAAQuc,YAAY1xB,KAAK6ub,aAEtC,EACAm8b,EAAQr62B,UAAUg72B,aAAe,WACzB3r3B,KAAKkghB,gBACLlghB,KAAKmghB,UAAYnghB,KAAKc,cAAc,SAAU,CAAE2oV,MAAO,CAAE78U,KAAM,SAAUwib,MApGhE,sBAqGTpvb,KAAKmV,QAAQuc,YAAY1xB,KAAKmghB,WAC9BnghB,KAAK8r3B,WAEb,EACAd,EAAQr62B,UAAUm72B,SAAW,WACzB9r3B,KAAK+zZ,KAAKruD,UAAU1lW,KAAKD,QACzB,IAAIsghB,EAAiBrghB,KAAK+zZ,KAAKhuD,YAAY,SAC3C/lW,KAAKmghB,UAAUnrf,aAAa,QAASqrf,GACrCrghB,KAAKmghB,UAAUnrf,aAAa,aAAcqrf,EAC9C,EACA2qW,EAAQr62B,UAAUoyS,WAAa,WAC3B/iT,KAAK+r3B,WAAa/r3B,KAAKc,cAAc,MAAO,CAAEC,UA/GpC,kBAgHVf,KAAKmV,QAAQuc,YAAY1xB,KAAK+r3B,YAC9B/r3B,KAAK2/gB,aACT,EACAqrW,EAAQr62B,UAAUgvgB,YAAc,WAC5B,IAAIC,EACJ,GAAIlS,GAAM1tgB,KAAK+U,UAA6B,KAAjB/U,KAAK+U,QAC5B/U,KAAK+r3B,WAAW7i1B,UAAYlpC,KAAKyr3B,kBAEhC,IAAK/9W,GAAM1tgB,KAAK+U,UAA6B,KAAjB/U,KAAK+U,UACL,kBAAjB/U,KAAK+U,SAAkD,kBAAjB/U,KAAK+U,SAEnD,GAAI/U,KAAK40d,OAAiC,kBAAjB50d,KAAK+U,SAE1B,IAAK24f,GADLkS,EAAa90K,GAAQ9qW,KAAK+U,UACF,CACpB,IAAI63hB,EAAUhtB,EAAW,CAAC,EAAG5/gB,KAAM,UAAWA,KAAKmV,QAAQghB,GAAK,WAAW,GACvEy2gB,IAEA55a,GADA45a,EAAUl8hB,MAAMC,UAAUC,MAAMjR,KAAKitiB,GACrB5siB,KAAK+r3B,YACrB/r3B,KAAKs6V,uBAEb,OAGAt6V,KAAK+r3B,WAAW7i1B,UAAYlpC,KAAK+U,OAIjD,EACAi22B,EAAQr62B,UAAUi72B,YAAc,WAC5B,IAAI1jmB,EAAY,CAAChX,IAASC,IAASo6mB,IAAMhgpB,KACzC08C,GAAY,CAACjoR,KAAKmV,SAAU+yQ,GACN,YAAlBloR,KAAKgs3B,SACLxjmB,GAAS,CAACxoR,KAAKmV,SAAU+7P,KAEF,YAAlBlxQ,KAAKgs3B,SACVxjmB,GAAS,CAACxoR,KAAKmV,SAAUg8P,KAEF,UAAlBnxQ,KAAKgs3B,SACVxjmB,GAAS,CAACxoR,KAAKmV,SAAUo2N,KAEF,SAAlBvrO,KAAKgs3B,UACVxjmB,GAAS,CAACxoR,KAAKmV,SAAUo22B,IAEjC,EACAP,EAAQr62B,UAAUk72B,WAAa,WAC3B,IAAI3jmB,EAAY,CAACsjmB,IAAQv4mB,KACzBgV,GAAY,CAACjoR,KAAKmV,SAAU+yQ,GACP,aAAjBloR,KAAKis3B,QACLzjmB,GAAS,CAACxoR,KAAKmV,SAAU89P,KAEH,WAAjBjzQ,KAAKis3B,SACVzjmB,GAAS,CAACxoR,KAAKmV,SAAUq22B,IAEjC,EACAR,EAAQr62B,UAAUiuY,YAAc,SAAUiS,GAClCA,GACA5oI,GAAY,CAACjoR,KAAKmV,SAAU07Y,EAAYl+X,MAAM,MAE9C3yB,KAAK4vW,UACLpnF,GAAS,CAACxoR,KAAKmV,SAAUnV,KAAK4vW,SAASj9U,MAAM,KAErD,EACAq41B,EAAQr62B,UAAU20mB,WAAa,WACtBtlnB,KAAK6vS,QAON5nB,GAAY,CAACjoR,KAAKmV,SAAUm/rB,MAN5B9rb,GAAS,CAACxoR,KAAKmV,SAAUm/rB,KACpBt0sB,KAAK29gB,eACN39gB,KAAKsgS,QAAQ,SAAU,CAAEvpQ,MAAOA,MAAOs7X,cAAc,EAAOl9Y,QAASnV,KAAKmV,UAMtF,EACA612B,EAAQr62B,UAAUm6Y,aAAe,SAAU/zX,GACvC/2B,KAAKks3B,aAAan11B,EACtB,EACAi01B,EAAQr62B,UAAU0sd,gBAAkB,SAAUtmc,GACpB,KAAlBA,EAAMz2B,SAAoC,KAAlBy2B,EAAMz2B,SAC9BN,KAAKks3B,aAAan11B,EAE1B,EACAi01B,EAAQr62B,UAAUu72B,aAAe,SAAUn11B,GACvCyxP,GAAS,CAACxoR,KAAKmV,SAAUm/rB,KACzBt0sB,KAAKisV,cAAc,CAAEp8C,SAAS,IAAS,GACvC,IAAI+0C,EAAY,CAAE7tT,MAAOA,EAAOs7X,cAAc,EAAMl9Y,QAASnV,KAAKmV,SAClEnV,KAAKsgS,QAAQ,SAAUskD,EAC3B,EACAomiB,EAAQr62B,UAAUozV,WAAa,WACvB/jW,KAAKkghB,gBACLrnS,GAAazlN,IAAIpzB,KAAKmghB,UAAW,QAASnghB,KAAK8qZ,aAAc9qZ,MAC7D64O,GAAazlN,IAAIpzB,KAAKmghB,UAAW,UAAWnghB,KAAKq9d,gBAAiBr9d,MAE1E,EACAgr3B,EAAQr62B,UAAU65b,aAAe,WACzBxqc,KAAKkghB,gBACLrnS,GAAa1lN,OAAOnzB,KAAKmghB,UAAW,QAASnghB,KAAK8qZ,cAClDjyK,GAAa1lN,OAAOnzB,KAAKmghB,UAAW,UAAWnghB,KAAKq9d,iBAE5D,EASA2tZ,EAAQr62B,UAAU+7U,kBAAoB,SAAUiF,EAASC,GACrD,IAAK,IAAItiV,EAAK,EAAGgmC,EAAK71C,OAAO8E,KAAKotV,GAAUriV,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CAE9D,OADWgmC,EAAGhmC,IAEV,IAAK,WACDtP,KAAK4+Y,YAAYhtD,EAAQge,UACzB,MACJ,IAAK,UACD5vW,KAAK+r3B,WAAW7i1B,UAAY,GAC5BlpC,KAAK2/gB,cACL,MACJ,IAAK,YACI3/gB,KAAKq4V,UAINr4V,KAAKmV,QAAQ+yQ,UAAU90P,IAAI8uX,KAH3BliZ,KAAKmV,QAAQ+yQ,UAAU/0P,OAAO+uX,KAKlC,MACJ,IAAK,SACGliZ,KAAKkghB,eACLlghB,KAAK8r3B,WAET,MACJ,IAAK,YACI9r3B,KAAK8sb,UAAY9sb,KAAKmV,QAAQ29U,uBAAuBw4hB,KAAUlo3B,OAAS,GACzEknV,GAAOtqV,KAAK6ub,aAEZ7ub,KAAK8sb,WACL9sb,KAAK6ub,YAAc7ub,KAAKc,cAAc,OAAQ,CAAEC,UAAWuq3B,MAC3Dtr3B,KAAKmV,QAAQwf,aAAa30B,KAAK6ub,YAAa7ub,KAAK+r3B,aAErD,MACJ,IAAK,gBACI/r3B,KAAKkghB,eAAkBxS,GAAM1tgB,KAAKmghB,YAKnCnghB,KAAK2r3B,eACL3r3B,KAAK+jW,eALL/jW,KAAKwqc,eACLlgH,GAAOtqV,KAAKmghB,YAMhB,MACJ,IAAK,WACDnghB,KAAK4r3B,cACL,MACJ,IAAK,UACD5r3B,KAAK6r3B,aACL,MACJ,IAAK,UACD7r3B,KAAKslnB,aAGjB,CACJ,EAMA0lQ,EAAQr62B,UAAUymI,QAAU,WACxB,IAAIw4N,EAAW89J,GAAM1tgB,KAAK4vW,UAAY,CAAC,IAAM5vW,KAAK4vW,SAASj9U,MAAM,KAC7D5xB,EAAY,CAACmwQ,IAASC,IAASo6mB,IAAMhgpB,IAAO22K,IAAKoyT,IAAMrhc,IAAUu4mB,KACjEtjmB,EAAiC,IAApB0nF,EAASxsW,QAAgC,KAAhBwsW,EAAS,GAAa7uW,EAAYA,EAAUqY,OAAOw2V,GAC7F3nF,GAAY,CAACjoR,KAAKmV,SAAU+yQ,GAC5BloR,KAAKmV,QAAQ4f,gBAAgB,QAC7B/0B,KAAKwqc,eACAkjE,GAAM1tgB,KAAK6ub,cACZvkG,GAAOtqV,KAAK6ub,aAEhBvkG,GAAOtqV,KAAK+r3B,YACPr+W,GAAM1tgB,KAAKmghB,YACZ71L,GAAOtqV,KAAKmghB,WAEhBr5d,EAAOn2C,UAAUymI,QAAQz3I,KAAKK,KAClC,EACA+vV,IAAW,CACPjB,GAAS,OACVk8hB,EAAQr62B,UAAW,eAAW,GACjCo/U,IAAW,CACPjB,GAAS,KACVk8hB,EAAQr62B,UAAW,gBAAY,GAClCo/U,IAAW,CACPjB,IAAS,IACVk8hB,EAAQr62B,UAAW,gBAAY,GAClCo/U,IAAW,CACPjB,IAAS,IACVk8hB,EAAQr62B,UAAW,qBAAiB,GACvCo/U,IAAW,CACPjB,GAAS,WACVk8hB,EAAQr62B,UAAW,gBAAY,GAClCo/U,IAAW,CACPjB,GAAS,SACVk8hB,EAAQr62B,UAAW,eAAW,GACjCo/U,IAAW,CACPjB,IAAS,IACVk8hB,EAAQr62B,UAAW,eAAW,GACjCo/U,IAAW,CACP94T,MACD+z1B,EAAQr62B,UAAW,eAAW,GACjCo/U,IAAW,CACP94T,MACD+z1B,EAAQr62B,UAAW,iBAAa,GACnCo/U,IAAW,CACP94T,MACD+z1B,EAAQr62B,UAAW,cAAU,GAChCq62B,EAAUj7hB,IAAW,CACjBT,IACD07hB,EAEP,CAlT6B,CAkT3B5p3B,IC5YE8kD,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAsBzC+l0B,IAAkC,SAAUrl0B,GAE5C,SAASql0B,EAAiB/s3B,GACtB,IAAIE,EAAQwnD,EAAOnnD,KAAKK,KAAMZ,IAAUY,KAOxC,OANAV,EAAMixW,kBAAmB,EACzBjxW,EAAM2zW,sBAAuB,EAC7B3zW,EAAM42W,uBAAyB,KAC/B52W,EAAMyzW,cAAgB,KACtBzzW,EAAM62W,iBAAkB,EACxB72W,EAAMwxW,QAAU,GACTxxW,CACX,CAUA,OApBA4mD,IAAUim0B,EAAkBrl0B,GAW5Bql0B,EAAiBx72B,UAAUyJ,OAAS,WAChC,KAAMpa,KAAKmV,UAAYnV,KAAKuwW,kBAAqBvwW,KAAK2rV,aAAgB3rV,KAAKwwW,oBAKvE,OAAO13K,GAAAA,cAAoB,MAAO94L,KAAKgyW,uBAAwB,GAAG54V,OAAOpZ,KAAKZ,MAAM0G,SAAU9F,KAAK8wW,UAJnGhqT,EAAOn2C,UAAUyJ,OAAOza,KAAKK,MAC7BA,KAAKuwW,kBAAmB,CAKhC,EACO47gB,CACX,CAtBsC,CAsBpCnB,KAEF11gB,GAAY62gB,IAAkB,CAACj8gB,GAAep3K,GAAAA,YC7C9C,WACEszrB,WAFiC,qBAAXxkwB,QAA0BA,OAAOwkwB,YAAcxkwB,OAAOwkwB,WAAWvs3B,KAAK+nH,SCI9F,IAAI65F,IACA4qqB,IAAQ,IAAIj90B,WAAW,IACZ,SAASk90B,MAEtB,IAAK7qqB,OAEHA,IAAoC,qBAAX75F,QAA0BA,OAAO65F,iBAAmB75F,OAAO65F,gBAAgB5hN,KAAK+nH,SAEvG,MAAM,IAAI76F,MAAM,4GAGpB,OAAO00L,IAAgB4qqB,IACzB,CCTA,IADA,IAAIE,IAAY,GACPpg3B,IAAI,EAAGA,IAAI,MAAOA,IACzBog3B,IAAUng3B,MAAMD,IAAI,KAAO2K,SAAS,IAAIlG,MAAM,IAEzC,SAAS472B,IAAgBr/0B,GAAiB,IAAZzvB,EAAMva,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,EAM5C,OAAQop3B,IAAUp/0B,EAAIzvB,EAAS,IAAM6u2B,IAAUp/0B,EAAIzvB,EAAS,IAAM6u2B,IAAUp/0B,EAAIzvB,EAAS,IAAM6u2B,IAAUp/0B,EAAIzvB,EAAS,IAAM,IAAM6u2B,IAAUp/0B,EAAIzvB,EAAS,IAAM6u2B,IAAUp/0B,EAAIzvB,EAAS,IAAM,IAAM6u2B,IAAUp/0B,EAAIzvB,EAAS,IAAM6u2B,IAAUp/0B,EAAIzvB,EAAS,IAAM,IAAM6u2B,IAAUp/0B,EAAIzvB,EAAS,IAAM6u2B,IAAUp/0B,EAAIzvB,EAAS,IAAM,IAAM6u2B,IAAUp/0B,EAAIzvB,EAAS,KAAO6u2B,IAAUp/0B,EAAIzvB,EAAS,KAAO6u2B,IAAUp/0B,EAAIzvB,EAAS,KAAO6u2B,IAAUp/0B,EAAIzvB,EAAS,KAAO6u2B,IAAUp/0B,EAAIzvB,EAAS,KAAO6u2B,IAAUp/0B,EAAIzvB,EAAS,MAAMgD,aACvf,CCOA,UArBA,SAAY5B,EAAS4oG,EAAKhqG,GACxB,GAAI+u2B,IAAOL,aAAe1kwB,IAAQ5oG,EAChC,OAAO2t2B,IAAOL,aAGhB,IAAIM,GADJ5t2B,EAAUA,GAAW,CAAC,GACHgb,SAAWhb,EAAQwt2B,KAAOA,OAO7C,GAJAI,EAAK,GAAe,GAAVA,EAAK,GAAY,GAC3BA,EAAK,GAAe,GAAVA,EAAK,GAAY,IAGvBhlwB,EAAK,CACPhqG,EAASA,GAAU,EACnB,IAAK,IAAIvR,EAAI,EAAGA,EAAI,KAAMA,EACxBu7G,EAAIhqG,EAASvR,GAAKug3B,EAAKvg3B,GAEzB,OAAOu7G,CACT,CACA,OAAO8kwB,IAAgBE,EACzB,EClBA,IACIC,IAAgB,UAChBz6K,IAAQ,UACR06K,IAAe,qBACfx6K,IAAgB,SAGhB53Q,IAAqB,0CAIrBI,IAAY,eACZE,IAAkB,oBAElBkwD,IAAQ,gBAIR6hY,IAAmC,WACnC,SAASA,EAAkB1k1B,GACvBnoC,KAAK8s3B,SAAW,GAChB9s3B,KAAK4+gB,UAAY,GACjB5+gB,KAAKmoC,OAASA,EACdnoC,KAAKo7B,sBACLp7B,KAAKs7B,kBACT,CAoeA,OAneAux1B,EAAkBl82B,UAAUo8U,cAAgB,WACxC,MAAO,mBACX,EACA8/hB,EAAkBl82B,UAAU2qB,iBAAmB,WACvCt7B,KAAKmoC,OAAOgwP,cAGhBn4R,KAAKmoC,OAAO5uB,GAAG,aAAcvZ,KAAK+s3B,cAAe/s3B,MACjDA,KAAKmoC,OAAO5uB,GAAG,aAAcvZ,KAAKg3b,WAAYh3b,MAC9CA,KAAKmoC,OAAO5uB,GAAG,YAAavZ,KAAKgt3B,aAAcht3B,MAC/CA,KAAKmoC,OAAO5uB,GAAG,iBAAkBvZ,KAAKqwf,eAAgBrwf,MACtDA,KAAKmoC,OAAO5uB,GAAG,YAAavZ,KAAKkkc,aAAclkc,MAC/CA,KAAKmoC,OAAO5uB,GAAG,OAAQvZ,KAAK8+b,cAAe9+b,MAC3CA,KAAKmoC,OAAO5uB,GAAG,gBAAiBvZ,KAAKgpS,cAAehpS,MACpDA,KAAKmoC,OAAO5uB,GAAG,kBAAmBvZ,KAAKit3B,mBAAoBjt3B,MAC3DA,KAAKmoC,OAAO5uB,GAAG,aAAcvZ,KAAKkt3B,SAAUlt3B,MAC5CA,KAAKmoC,OAAO5uB,GAAG,UAAWvZ,KAAKmt3B,WAAYnt3B,MAC3CA,KAAKmoC,OAAO5uB,GAAG,aAAcvZ,KAAKot3B,cAAept3B,MACjDA,KAAKmoC,OAAO5uB,GAAG,gBAAiBvZ,KAAK0lW,UAAW1lW,MAChDA,KAAKmoC,OAAO5uB,GAAG,uBAAwBvZ,KAAK++Y,eAAgB/+Y,MAC5D64O,GAAazlN,IAAIlC,SAAU,YAAalxB,KAAK6hc,gBAAiB7hc,MAC9DA,KAAKmoC,OAAO5uB,GAAG,UAAWvZ,KAAKqt3B,cAAert3B,MAC9CA,KAAKmoC,OAAO5uB,GAAG,kBAAmBvZ,KAAKst3B,mBAAoBtt3B,MAC/D,EACA6s3B,EAAkBl82B,UAAUyqB,oBAAsB,WAC1Cp7B,KAAKmoC,OAAOgwP,cAGhBn4R,KAAKmoC,OAAO3uB,IAAI,aAAcxZ,KAAK+s3B,eACnC/s3B,KAAKmoC,OAAO3uB,IAAI,aAAcxZ,KAAKg3b,YACnCh3b,KAAKmoC,OAAO3uB,IAAI,YAAaxZ,KAAKgt3B,cAClCht3B,KAAKmoC,OAAO3uB,IAAI,iBAAkBxZ,KAAKqwf,gBACvCrwf,KAAKmoC,OAAO3uB,IAAI,YAAaxZ,KAAKkkc,cAClClkc,KAAKmoC,OAAO3uB,IAAI,OAAQxZ,KAAK8+b,eAC7B9+b,KAAKmoC,OAAO3uB,IAAI,gBAAiBxZ,KAAKgpS,eACtChpS,KAAKmoC,OAAO3uB,IAAI,kBAAmBxZ,KAAKit3B,oBACxCjt3B,KAAKmoC,OAAO3uB,IAAI,aAAcxZ,KAAKkt3B,UACnClt3B,KAAKmoC,OAAO3uB,IAAI,UAAWxZ,KAAKmt3B,YAChCnt3B,KAAKmoC,OAAO3uB,IAAI,aAAcxZ,KAAKot3B,eACnCpt3B,KAAKmoC,OAAO3uB,IAAI,gBAAiBxZ,KAAK0lW,WACtC1lW,KAAKmoC,OAAO3uB,IAAI,uBAAwBxZ,KAAK++Y,gBAC7C/+Y,KAAKmoC,OAAO3uB,IAAI,UAAWxZ,KAAKqt3B,eAChCrt3B,KAAKmoC,OAAO3uB,IAAI,kBAAmBxZ,KAAKst3B,oBAC5C,EAEAT,EAAkBl82B,UAAUqmb,WAAa,SAAU/9a,GAC/C,IAAI3Z,EAAQU,KACZ,GAAI+rU,GAAkB/rU,KAAKmoC,OAAOyud,mBAAmBvoE,aACjDrub,KAAKmoC,OAAOyud,mBAAmBvoE,YAAc,SAAUhub,GACnDf,EAAM+t3B,cAAcht3B,EACxB,MAEC,CACD,IAAIgtd,EAAgBrtd,KAAKmoC,OAAOyud,mBAAmBvoE,YACnDrub,KAAKmoC,OAAOyud,mBAAmBvoE,YAAc,SAAUhub,GACnDf,EAAM+t3B,cAAcht3B,GACpBgtd,EAAcl0c,MAAM7Z,EAAO,CAACe,GAChC,CACJ,CACJ,EACAws3B,EAAkBl82B,UAAUouY,eAAiB,SAAU3/Y,GACnDu4H,GAAMonR,eAAe3/Y,EAAM+kc,qBAAsBnkc,KAAKy6b,YAC1D,EACAoyb,EAAkBl82B,UAAU082B,cAAgB,SAAUht3B,GAClD,IAAIk1B,EAOJ,GAFIA,EAJCw2S,GAAkB1rU,EAAEk1B,MAIdl1B,EAHAA,EAAEk1B,KAKTv1B,KAAKmoC,OAAOskd,qBAA2C,uBAAnBl3d,EAAKx0B,WACnB,sBAAnBw0B,EAAKx0B,UAAoC,CAC5C,IAAIws3B,EAAc9jb,GAAezpc,KAAKmoC,OAAOrnC,eAAe,GACxDmgR,EAAOupE,GAAO,cAAej1T,GAMjC,OALAA,EAAKZ,aAAa441B,EAAah41B,EAAK4T,WAAW4iS,GAAkB9qD,GAAQ,EAAI,IAC7EupE,GAAO,IAAMmiiB,IAAeY,GACxBvt3B,KAAKmoC,OAAOskd,qBACZzsf,KAAKmoC,OAAOg9W,aAAaj9H,UAAU90P,IAAI,uBAEpCmC,CACX,CAEI,OAAOA,CAEf,EACAs31B,EAAkBl82B,UAAUq82B,aAAe,WACnCht3B,KAAKmoC,OAAOind,eACRrjL,GAAkB/rU,KAAKwt3B,kBACvBxt3B,KAAKwt3B,eAAiBxt3B,KAAKmoC,OAAOrnC,cAAc,MAAO,CACnDC,UA/GC,uBAiHLf,KAAKyt3B,cAAgBzt3B,KAAKmoC,OAAOrnC,cAAc,OAAQ,CACnDC,UAAW,eAEff,KAAKyt3B,cAAc7j1B,YAAc,GACjC5pC,KAAKwt3B,eAAe971B,YAAY1xB,KAAKyt3B,eACrCzt3B,KAAK0lW,YACL1lW,KAAKqt3B,cAAcrt3B,KAAKwt3B,gBACpBxt3B,KAAKmoC,OAAOolZ,iBACPxhH,GAAkB/rU,KAAKmoC,OAAOuyZ,cAI/B1nU,GAAO,CAAChzH,KAAKwt3B,gBAAiBxt3B,KAAKmoC,OAAOg9W,cAH1CnyR,GAAO,CAAChzH,KAAKwt3B,gBAAiBxt3B,KAAKmoC,OAAOuyZ,eAM7C16b,KAAKmoC,OAAOolZ,iBACRxhH,GAAkB/rU,KAAKmoC,OAAOuyZ,cAI/BxnU,GAAQ,CAAClzH,KAAKwt3B,gBAAiBxt3B,KAAKmoC,OAAOg9W,cAH3CnlZ,KAAKmoC,OAAOuyZ,aAAalma,WAAWG,aAAa30B,KAAKwt3B,eAAgBxt3B,KAAKmoC,OAAOuyZ,aAAa9la,cAMvGikN,GAAazlN,IAAIpzB,KAAKwt3B,eAAgB,YAAaxt3B,KAAK8qZ,aAAc9qZ,OAEtEA,KAAKmoC,OAAO1W,KAAKy2P,UAAUh1P,SAAS,aAAgBlzB,KAAKmoC,OAAOuqZ,UAAY1yb,KAAKmoC,OAAOuqZ,SAAStvb,QAAU,IACzGpD,KAAKmoC,OAAOiqZ,qBAA0Bpyb,KAAKmoC,OAAOiqZ,qBACpDpyb,KAAKmoC,OAAOuqZ,UAAY1yb,KAAKmoC,OAAOuqZ,SAAStvb,QAAU,EACvDpD,KAAKwt3B,eAAern3B,MAAMi+J,QAAU,OAGpCpkK,KAAKwt3B,eAAern3B,MAAMi+J,QAAU,QAExCpkK,KAAKmoC,OAAO4ud,gBAAkB/2f,KAAKwt3B,eAAe/4lB,wBAAwB7rI,QAEpEmjL,GAAkB/rU,KAAKwt3B,kBAC7Bxt3B,KAAKwt3B,eAAe33lB,cAAc1gQ,YAAYn1B,KAAKwt3B,gBACnDxt3B,KAAKwt3B,eAAiB,KAE9B,EACAX,EAAkBl82B,UAAUymI,QAAU,WAClCp3I,KAAKo7B,sBACLy9M,GAAa1lN,OAAOjC,SAAU,YAAalxB,KAAK6hc,iBAChD7hc,KAAKwt3B,eAAiB,KACtBxt3B,KAAKokc,iBAAmB,KACxBpkc,KAAKy6b,YAAc,KACnBz6b,KAAKsgc,eAAiB,KACtBtgc,KAAK0t3B,aAAe,KACpB1t3B,KAAKyt3B,cAAgB,IACzB,EACAZ,EAAkBl82B,UAAUo82B,cAAgB,SAAU9z2B,GAClD,IAAI5Q,EACJ,GAAK0jU,GAAkB9yT,EAAK5Y,GASvB,CACD,IAAIqkrB,EAAkBzrqB,EAAK8iJ,GAAGniI,cAAc,uBAC5CvxB,EAASq8qB,EAAkBA,EAAgBv7oB,WAAW,GAAKlwB,EAAK8iJ,GAAGk4V,iBAAiB9qd,WAAW,EACnG,KAZgC,CACblwB,EAAK8iJ,GAAGniI,cAAc,gCACrCvxB,EAAU0jU,GAAkB9yT,EAAK5Y,EAAEgI,QAK7B4Q,EAAK8iJ,GAAGniI,cAAc,uBAAuBuP,WAAW,GAJzDlwB,EAAK5Y,EAAEgI,OAAO6/Q,UAAUh1P,SAAS,cACzBlzB,KAAKmoC,OAAOind,eACTpvf,KAAKwt3B,iBAAmBxt3B,KAAKwt3B,eAAet61B,SAASja,EAAK5Y,EAAEgI,SACpE4Q,EAAK5Y,EAAEgI,OAAS4Q,EAAK8iJ,GAAGniI,cAAc,uBAAuBuP,WAAW,EAEpF,CAWA,IANInpC,KAAKmoC,OAAO+tZ,cAAgBl2b,KAAKmoC,OAAOskd,uBACxCpkf,EAAS4Q,EAAK8iJ,GAAGzxH,kBAAkBnB,WAAW,IAE7C4iS,GAAkB1jU,KACnBrI,KAAK0t3B,aAAej4xB,GAAQptF,EAAQ,IAAMuk3B,OAEzC7gjB,GAAkB/rU,KAAK0t3B,cAAe,CACvC,IAAIn3E,EAAe/rd,GAAO,IAAMmiiB,IAAe3s3B,KAAK0t3B,cAEpD1t3B,KAAK2t3B,kBAAkB3t3B,KAAK0t3B,aAAcn3E,EAAaruhB,UAAUh1P,SAASg/qB,KAAQj5rB,EAAK8iJ,GAAI9iJ,EAAK5Y,GADhF,EAEpB,CACJ,EACAws3B,EAAkBl82B,UAAUg92B,kBAAoB,SAAU/2P,EAAWm1E,EAAShwiB,EAAI17J,EAAGsqV,GACjF3qV,KAAK2ysB,YAAY/7E,EAAWm1E,EAAU,UAAY,QAAS1rsB,GAAG,EAAMsqV,EACxE,EACAkiiB,EAAkBl82B,UAAUm6Y,aAAe,SAAUzqZ,GACjD,IAAIgI,EAEAA,EADAhI,EAAE86B,cAAc+sP,UAAUh1P,SAASlzB,KAAKwt3B,eAAezs3B,WAC9CV,EAAE86B,cAAcmP,kBAAkB2pd,iBAGlC5zf,EAAE86B,cAEfn7B,KAAK0t3B,aAAej4xB,GAAQptF,EAAQ,IAAMuk3B,KAE1C,IAAK7gjB,GAAkB/rU,KAAK0t3B,cAAe,CACvC,IAAIn3E,EAAe/rd,GAAO,IAAMmiiB,IAAe3s3B,KAAK0t3B,cACpD1t3B,KAAK2t3B,kBAAkB3t3B,KAAK0t3B,aAAcn3E,EAAaruhB,UAAUh1P,SAASg/qB,KAAQ,KAAM7xsB,GAH5E,EAIhB,CACAA,EAAEgO,gBACN,EACAw+2B,EAAkBl82B,UAAUgisB,YAAc,SAAUxosB,EAAS/C,EAAO/G,EAAGut3B,EAAWjjiB,GAC9E,IACIi/G,EAAYz/b,EAAQ2oV,uBAAuB65hB,KAAe,GAChD,UAAVvl3B,GAAsBwic,EAAU1hL,UAAUh1P,SAASg/qB,KASpC,YAAV9qsB,IAAwBwic,EAAU1hL,UAAUh1P,SAASg/qB,MAAUtoQ,EAAU1hL,UAAUh1P,SAASk/qB,OACjGnqb,GAAY,CAAC2hL,GAAY,CAACsoQ,IAAOE,MAE7BznX,IACA3qV,KAAKmoC,OAAO+ud,gBAAe,EAAO72f,GAClCL,KAAK0lW,cAGM,kBAAVt+V,GAA+Bwic,EAAU1hL,UAAUh1P,SAASk/qB,OACjEnqb,GAAY,CAAC2hL,GAAY,CAACsoQ,MAC1BtoQ,EAAU1hL,UAAU90P,IAAIg/qB,KAEpBznX,IACA3qV,KAAKmoC,OAAO+ud,gBAAe,EAAO72f,GAClCL,KAAK0lW,eAtBTkkG,EAAU1hL,UAAU/0P,OAAOi/qB,KAC3BxoQ,EAAU1hL,UAAU90P,IAAI8+qB,KAEpBvnX,IACA3qV,KAAKmoC,OAAO+ud,gBAAe,EAAM72f,GACjCL,KAAK0lW,WAAU,IAoB3B,EACAmnhB,EAAkBl82B,UAAUuzb,aAAe,SAAUjrb,GACjD,GAAI8yT,GAAkB/rU,KAAKmoC,OAAOuyZ,cAAe,CAC7C16b,KAAKmoC,OAAOuyZ,aAAe16b,KAAKmoC,OAAOrnC,cAAc,OAAQ,CACzDC,UA9OG,oBAgPPf,KAAKy6b,YAAcz6b,KAAKmoC,OAAOrnC,cAAc,QAAS,CAClD2oV,MAAO,CAAE78U,KAAM,QACf7L,UAnPE,mBAqPNf,KAAKmoC,OAAOhzB,QAAQqf,WAAWG,aAAa30B,KAAKy6b,YAAaz6b,KAAKmoC,OAAOhzB,SAC1E,IAAIolb,GAAW,EAsCf,OArCItzG,GAAQM,WACRgzG,GAAW,EACXv6b,KAAKmoC,OAAOyqd,WAAY,GAE5B5yf,KAAKsgc,eAAiB3oU,GAAMkpR,YAAY,CACpC1rY,QAASnV,KAAKy6b,YACdr0S,QAASm0S,EAAW,CA/Pf,yCA+PgCC,KAAsB,CAACA,KAC5D9na,WAAY,CAAEixC,YAAa3jE,KAAKmoC,OAAOg8Z,uBACxCnkc,KAAKmoC,OAAOrnC,eACVirU,GAAkB/rU,KAAKmoC,OAAOynU,aAC+B,IAA1D5vW,KAAKmoC,OAAOynU,SAASj9U,MAAM,KAAKhoB,QAAQ,aACxC69Q,GAAS,CAACxoR,KAAKsgc,eAAexzb,WAAY,cAEoB,IAAzD9M,KAAKmoC,OAAOynU,SAASj9U,MAAM,KAAKhoB,QAAQ,aAC7C69Q,GAAS,CAACxoR,KAAKsgc,eAAexzb,WAAY,aAGlDkmH,GAAO,CAAChzH,KAAKsgc,eAAexzb,WAAY9M,KAAKmoC,OAAOuyZ,cACpDxnU,GAAQ,CAAClzH,KAAKmoC,OAAOuyZ,cAAezhb,EAAKmsY,cACzC95Y,GAAWtL,KAAKy6b,YAAa,CACzB,gBAAiB,QACjB,KAAQ,WACR,aAAgB,MAChB,eAAkB,MAClB,WAAc,UAElBz6b,KAAKokc,iBAAmBpkc,KAAKy6b,YAAY5kK,cAAcj8P,cAAc,IAAMgha,MACtE3zG,GAAQM,UAAYvnV,KAAKokc,mBAC1BvrN,GAAazlN,IAAIpzB,KAAKokc,iBAAkB,YAAapkc,KAAKqkc,UAAWrkc,MACrEA,KAAKokc,iBAAiBj+b,MAAMohQ,WAAa,UAE7C1uB,GAAazlN,IAAIpzB,KAAKy6b,YAAa,QAASz6b,KAAKmoC,OAAOo8Z,QAASvkc,KAAKmoC,QACtE0wM,GAAazlN,IAAIpzB,KAAKy6b,YAAa,QAASz6b,KAAKmoC,OAAO2od,MAAO9wf,KAAKmoC,QACpE0wM,GAAazlN,IAAIpzB,KAAKy6b,YAAa,UAAWz6b,KAAKmoC,OAAO5iC,UAAWvF,KAAKmoC,QAC1E0wM,GAAazlN,IAAIpzB,KAAKy6b,YAAa,OAAQz6b,KAAK8+b,cAAe9+b,MAC/D64O,GAAazlN,IAAIpzB,KAAKy6b,YAAa,QAASz6b,KAAKmoC,OAAOq8Z,aAAcxkc,KAAKmoC,QAC3EnoC,KAAKmoC,OAAOw9Z,gBAAmB3lc,KAAKsgc,eAAexzb,UAAU+oR,cAAepB,wBAAwB7rI,OAC7F5oJ,KAAKsgc,cAChB,CACJ,EAEAusb,EAAkBl82B,UAAU01b,gBAAkB,SAAUhmc,GACpDL,KAAKmoC,OAAOi2Z,YACZn2K,GAAY,CAAC/2P,SAASzd,KAAMzT,KAAKmoC,OAAOytX,SAASzgZ,SAAU2lb,KAC3D96b,KAAKmoC,OAAOkvQ,aAAajtS,OAC7B,EACAyi3B,EAAkBl82B,UAAU0zb,UAAY,SAAUhkc,GAC9CL,KAAKmoC,OAAO2md,mBAAmBltf,MAAQ,GACnC5B,KAAKmoC,OAAOw1Z,gBAA2D,KAAzC39b,KAAKmoC,OAAO2md,mBAAmBltf,OAC7D5B,KAAKmoC,OAAO+P,OAAO,MAEvBl4C,KAAKmoC,OAAOg9Z,eACZnlc,KAAKmoC,OAAO2ld,iBAAiB,MAC7B9tf,KAAKokc,iBAAiBj+b,MAAMohQ,WAAa,SACzCvnQ,KAAKy6b,YAAYrwb,QACjBpK,KAAKmt3B,WAAW9s3B,GAChBA,EAAEgO,gBACN,EACAw+2B,EAAkBl82B,UAAUs82B,mBAAqB,WAC7Cjt3B,KAAKmoC,OAAOytX,SAASzgZ,QAAQ+yQ,UAAU90P,IA7SlC,gBA8SLpzB,KAAKmoC,OAAOytX,SAASzgZ,QAAQ+yQ,UAAU90P,IAjT5B,uBAkTXpzB,KAAKmoC,OAAOytX,SAAS1rU,SAAW,CAAE9oE,EAAG,EAAGvC,EAAG,GAC3C7e,KAAKmoC,OAAOytX,SAASxpE,WACrBpsV,KAAKmmc,uBACLnmc,KAAKomc,gBAAkBpmc,KAAKsgc,eAAexzb,UAAU8sB,cAAc,gBACnE55B,KAAKokc,iBAAmBpkc,KAAKsgc,eAAexzb,UAAU8sB,cAAc,IAAMgha,KAC1E56b,KAAKokc,iBAAiBj+b,MAAMohQ,WAAa,SACzC1uB,GAAazlN,IAAIpzB,KAAKomc,gBAAiB,QAASpmc,KAAKqmc,gBAAiBrmc,MACtE64O,GAAazlN,IAAIpzB,KAAKokc,iBAAkB,QAASpkc,KAAKqkc,UAAWrkc,KACrE,EACA6s3B,EAAkBl82B,UAAUw1b,qBAAuB,WAC/C,IAAIR,EAAkB3lc,KAAKy6b,YAAY5kK,cAAcpB,wBAAwB7rI,OACzEmuW,EAAkB,EAClB/2f,KAAKwt3B,iBACLz2X,EAAkB/2f,KAAKwt3B,eAAe/4lB,wBAAwB7rI,QAElE5oJ,KAAKmoC,OAAOytX,SAASzgZ,QAAQhP,MAAMy/b,UAAY,OAC/C5lc,KAAKmoC,OAAOytX,SAASzgZ,QAAQhP,MAAMqY,MAAQ,OAC3Cxe,KAAKmoC,OAAO1W,KAAKtrB,MAAMy/b,UAAa50a,OAAOi0O,YAAc0gM,EAAkBoxD,EAAmB,KAC9F/2f,KAAKmoC,OAAO1W,KAAKtrB,MAAMyiJ,OAAU53H,OAAOi0O,YAAc0gM,EAAkBoxD,EAAmB,KAC3F,IAAIp0D,EAAe3ic,KAAKy6b,YAAY5kK,cAAcj8P,cAAc,IAAMgha,KACtEtwG,GAAOtqV,KAAKy6b,aACZkI,EAAa9sK,cAAclhQ,aAAa30B,KAAKy6b,YAAakI,EAC9D,EACAkqb,EAAkBl82B,UAAU282B,mBAAqB,WAC7Chi3B,GAAWtL,KAAKmoC,OAAOytX,SAASzgZ,QAAS,CAAEhP,MAAO,2CAClDqiR,GAAS,CAACt3P,SAASzd,KAAMzT,KAAKmoC,OAAOytX,SAASzgZ,SAAU2lb,KACxD96b,KAAKmoC,OAAOytX,SAASzgZ,QAAQhP,MAAMy/b,UAAY,OAC/C5lc,KAAKmoC,OAAOytX,SAASzgZ,QAAQhP,MAAMqY,MAAQ,MAC/C,EACAqu2B,EAAkBl82B,UAAUq4R,cAAgB,WAKxC,OAJK+iC,GAAkB/rU,KAAKokc,oBACxBpkc,KAAKmoC,OAAO2md,mBAAqB9uf,KAAKy6b,YACtCz6b,KAAKokc,iBAAiBj+b,MAAMohQ,WAAsD,KAAzCvnQ,KAAKmoC,OAAO2md,mBAAmBltf,MAAe,SAAW,WAE/F5B,KAAKmoC,OAAO2md,mBAAmBltf,KAC1C,EACAir3B,EAAkBl82B,UAAUmub,cAAgB,SAAUz+b,GAClD,IAAKL,KAAKmoC,OAAOhzB,QAAQ+yQ,UAAUh1P,SAAS,aAAc,CACtD,IAAI7qB,OAAS,EACb,GAAIrI,KAAKmoC,OAAO+8T,UACZ,OASJ,GAPIje,GAAQh0D,OACR5qR,GAAU0jU,GAAkB1rU,IAAMA,EAAEgI,QAEnC4+U,GAAQh0D,OACT5qR,GAAU0jU,GAAkB1rU,IAAMA,EAAEm5B,eAGpCx5B,KAAKmoC,OAAOytX,UAAY1kY,SAASzd,KAAKyf,SAASlzB,KAAKmoC,OAAOytX,SAASzgZ,UAAYnV,KAAKmoC,OAAOytX,SAASzgZ,QAAQ+d,SAAS7qB,KAClH4+U,GAAQh0D,MAAQjzR,KAAKy6b,YAEzB,YADAz6b,KAAKy6b,YAAYrwb,QAGrB,GAAIpK,KAAKmoC,OAAOmkd,mBAAqBtsf,KAAKy6b,YAItC,OAHAp6b,EAAEgO,iBACFrO,KAAKy6b,YAAYrwb,aACjBpK,KAAKmoC,OAAOmkd,mBAAoB,GAGhCtsf,KAAKmoC,OAAOytX,UAAY1kY,SAASzd,KAAKyf,SAASlzB,KAAKmoC,OAAOytX,SAASzgZ,WAChEnV,KAAKmoC,OAAOytX,SAASzgZ,QAAQ+yQ,UAAUh1P,SAAS,mBACpDlzB,KAAKmoC,OAAOiyZ,YAAa,EACzBp6b,KAAKmoC,OAAO+nd,iBAAiB7vf,EAAGL,KAAKmoC,OAAOvmC,MAAO5B,KAAKmoC,OAAOgoX,YAC/DnwZ,KAAKmoC,OAAOnN,cAAch7B,KAAKmoC,OAAO6yZ,cAAe,WAErDh7b,KAAKmoC,OAAOytX,UAAY1kY,SAASzd,KAAKyf,SAASlzB,KAAKmoC,OAAOytX,SAASzgZ,WACnEnV,KAAKmoC,OAAOytX,SAASzgZ,QAAQ+yQ,UAAUh1P,SAAS,mBACjDlzB,KAAKmoC,OAAOiyZ,YAAa,EACzBp6b,KAAKmoC,OAAOuid,eAAexiO,UAAU/0P,OAAO63d,KAC5Chrf,KAAKmoC,OAAOm4P,QAAQ,QACpBtgS,KAAKmoC,OAAOypd,SAAU,GAEtB5xf,KAAKmoC,OAAOytX,UAAY1kY,SAASzd,KAAKyf,SAASlzB,KAAKmoC,OAAOytX,SAASzgZ,WACnEnV,KAAKmoC,OAAOytX,SAASzgZ,QAAQ+yQ,UAAUh1P,SAAS,mBAAqB+zT,GAAQM,UAC9EvnV,KAAKmoC,OAAOi2Z,WAEpB,CACJ,EACAyub,EAAkBl82B,UAAUkxb,gBAAkB,SAAUxhc,GACpD,GAAoC,YAAhCL,KAAKmoC,OAAOisZ,gBAA+B,CAC3C,IAAI/rb,EAAShI,EAAEgI,QACV0jU,GAAkB/rU,KAAKmoC,OAAOytX,WAAangU,GAAQptF,EAAQ,QAAUrI,KAAKmoC,OAAOytX,SAASzgZ,QAAQghB,GAAK,QAClGn2B,KAAKy6b,aAA0C,KAA3Bz6b,KAAKy6b,YAAY74b,OACvCvB,EAAEgO,mBAGH09T,GAAkB/rU,KAAKmoC,OAAOytX,WAAangU,GAAQptF,EAAQ,QAAUrI,KAAKmoC,OAAOytX,SAASzgZ,QAAQghB,GAAK,OACtG41S,GAAkB/rU,KAAKmoC,OAAOuid,iBAAoB1qf,KAAKmoC,OAAOuid,eAAex3d,SAAS7yB,EAAEgI,QAU5FrI,KAAKmoC,OAAOmkd,mBAAqBrlK,GAAQh0D,MAA8B,SAAtBg0D,GAAQ1qT,KAAK73B,OACzDwsB,SAAS0vH,gBAAkB5gJ,KAAKy6b,aAVjCz6b,KAAKmoC,OAAOuid,eAAexiO,UAAUh1P,SAAS++Z,KAA8Bjyb,KAAKmoC,OAAOkzZ,iBACxFr7b,KAAKmoC,OAAOiyZ,YAAa,EACzBp6b,KAAKmoC,OAAOmkd,mBAAoB,EAChCtsf,KAAKmoC,OAAOi2Z,YACZp+b,KAAKmoC,OAAO22Z,cAAcz+b,GAAG,GAC7BL,KAAKmoC,OAAOypd,SAAU,GAOzB7lL,GAAkB/rU,KAAKmoC,OAAOuid,iBAAoB1qf,KAAKmoC,OAAOuid,eAAex3d,SAAS7yB,EAAEgI,UAAWrI,KAAKmoC,OAAOuid,eAAexiO,UAAUh1P,SAAS,kBACjJlzB,KAAKmoC,OAAOkzZ,gBACTp0G,GAAQh0D,KACRjzR,KAAKmoC,OAAO22Z,gBAGZ9+b,KAAKmoC,OAAO22Z,cAAcz+b,IAG9BL,KAAKy6b,cAAgBpyb,GACrBrI,KAAKy6b,YAAYrwb,OAEzB,CACJ,EACAyi3B,EAAkBl82B,UAAUu82B,SAAW,SAAU7s3B,GAC7CL,KAAKmoC,OAAOuid,eAAexiO,UAAU/0P,OAAO63d,KACxChrf,KAAKmoC,OAAO+8T,WAAyB,UAAZ7kW,EAAEuB,OAAiC,UAAZvB,EAAEuB,MAClD5B,KAAKmoC,OAAO+8T,WAAY,GAGZ,UAAZ7kW,EAAEuB,QACF5B,KAAKy6b,YAAYrwb,QACjBpK,KAAKmoC,OAAOo1Z,cACZ1kN,GAAa1lN,OAAOnzB,KAAKmoC,OAAO1W,KAAM,UAAWzxB,KAAKmoC,OAAO5iC,YAEjD,UAAZlF,EAAEuB,QACF5B,KAAKy6b,YAAY74b,MAAQ,GACzB5B,KAAKokc,iBAAiBj+b,MAAMohQ,WAAa,UAEjD,EACAslnB,EAAkBl82B,UAAU0/e,eAAiB,SAAUhwf,GACnC,UAAZA,EAAEuB,QACF5B,KAAK2ysB,YAAY3ysB,KAAKwt3B,eAAgBnt3B,EAAEuB,MAAO,KAAM,MAAM,GAC3D5B,KAAK0lW,WAAU,IAEH,YAAZrlW,EAAEuB,QACF5B,KAAK2ysB,YAAY3ysB,KAAKwt3B,eAAgBnt3B,EAAEuB,MAAO,KAAM,MAAM,GAC3D5B,KAAK0lW,aAEO,kBAAZrlW,EAAEuB,QACF5B,KAAK2ysB,YAAY3ysB,KAAKwt3B,eAAgBnt3B,EAAEuB,MAAO,KAAM,MAAM,GAC3D5B,KAAK0lW,YAEb,EACAmnhB,EAAkBl82B,UAAU+0V,UAAY,SAAUmohB,GAC9C,GAAkC,eAA9B7t3B,KAAKmoC,OAAO2l1B,eAAkE,iBAAhC9t3B,KAAKmoC,OAAO4l1B,gBAAoC,CAC9F,IAAIxq1B,EAAWsq1B,EAAW7t3B,KAAKmoC,OAAO4l1B,gBAAkB/t3B,KAAKmoC,OAAO2l1B,cACpE9t3B,KAAKyt3B,cAAc7j1B,YAAc,GAGjC,IAFA,IACI4wT,EAAeqzhB,EAAW,kBAAoB,gBACzCv+2B,EAAK,EAAGgmC,EAFIw1T,GAAQvnU,EAEPwsZ,CAAe,CAAC,EAAG/vb,KAAKmoC,OAAQqyT,EAAc,MAAOx6V,KAAKmoC,OAAO+vT,kBAAmB5oV,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CAC5H,IAAIimB,EAAO+f,EAAGhmC,GACdtP,KAAKyt3B,cAAc7j1B,YAAcrU,EAAKqU,WAC1C,CACJ,KACK,CACD,IACImqX,EAAO,IAAIxuD,GAAKvlW,KAAKmoC,OAAOisZ,gBAAiB,CAAC,EAAGp0b,KAAKmoC,OAAOpoC,QACvB,KAAtCg0Z,EAAKhuD,YAAY,mBACjBguD,EAAO,IAAIxuD,GAAK,YAHH,CAAEuohB,cAAe,aAAcC,gBAAiB,gBAGpB/t3B,KAAKmoC,OAAOpoC,SAEzDC,KAAKyt3B,cAAc7j1B,YAAcik1B,EAAW95d,EAAKhuD,YAAY,mBAAqBguD,EAAKhuD,YAAY,gBACvG,CACJ,EACA8mhB,EAAkBl82B,UAAUy82B,cAAgB,SAAUn02B,GAC9CA,EAAK8iJ,GAAGmsH,UAAUh1P,SAAS,YAC3BlzB,KAAK8s3B,SAAS1g3B,KAAK6M,EAAK8iJ,GAAG54H,WAAU,IAGrCnjC,KAAK8s3B,SAASt31B,OAAOvc,EAAKwT,MAAO,EAEzC,EAEAog2B,EAAkBl82B,UAAUw82B,WAAa,SAAUl02B,GAC/C,GAAIjZ,KAAKmoC,OAAOukd,uBAAyB3gL,GAAkB/rU,KAAKmoC,OAAOvmC,OAAQ,CAC3E,IAAIos3B,EAAgBhu3B,KAAKmoC,OAAOkoZ,UAAU7/a,iBAAiB,eAAepN,OAEtE6q3B,EAAUju3B,KAAKmoC,OAAOrnC,cAAc,KAAM,CAC1CC,UAAW,iCAEf,GAAIit3B,EAAgB,EACMhu3B,KAAKmoC,OAAOkoZ,UAAU7/a,iBAAiB,eAC7CnK,SAAQ,SAAUkvB,GAC9B041B,EAAQv81B,YAAY6D,EACxB,IAEAizP,GADQxoR,KAAKmoC,OAAOkoZ,UAAU7/a,iBAAiB,eAC/B,kBAChB0iH,GAAQ,CAAC+6vB,GAAUju3B,KAAKmoC,OAAO1W,MAEnCzxB,KAAKmoC,OAAOild,sBAChB,CACJ,EACOy/X,CACX,CA5euC,GCvBnC3m0B,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAazC2pS,IAA0C,SAAUxoJ,EAAYl/L,EAAQiE,EAAKkkB,GAC7E,IAA2HhvB,EAAvH6e,EAAIld,UAAUC,OAAQkgH,EAAIjjG,EAAI,EAAIhY,EAAkB,OAATmoB,EAAgBA,EAAO/wB,OAAOk+B,yBAAyBt1B,EAAQiE,GAAOkkB,EACrH,GAAuB,kBAAZuN,SAAoD,oBAArBA,QAAQiyT,SAAyB1sO,EAAIvlF,QAAQiyT,SAASzoJ,EAAYl/L,EAAQiE,EAAKkkB,QACpH,IAAK,IAAIrkB,EAAIo7L,EAAWnkM,OAAS,EAAG+I,GAAK,EAAGA,KAAS3K,EAAI+lM,EAAWp7L,MAAIm3G,GAAKjjG,EAAI,EAAI7e,EAAE8hH,GAAKjjG,EAAI,EAAI7e,EAAE6G,EAAQiE,EAAKg3G,GAAK9hH,EAAE6G,EAAQiE,KAASg3G,GAChJ,OAAOjjG,EAAI,GAAKijG,GAAK7jH,OAAO4c,eAAehU,EAAQiE,EAAKg3G,GAAIA,CAChE,EAQI4qwB,IAAiB,eACjBC,IAAW,cACXl3V,IAAW,eACXm3V,IAAgB,eAChBC,IAAe,SACfC,IAAa,iBAEbC,IAAgB,yBAChBC,IAAc,gBACdC,IAAY,kBACZC,IAAgB,gBAEhBC,IAAgB,gBAChBttX,IAAU,QACVutX,IAAc,iBACdC,IAAW,WACXC,IAAa,aACbtrX,IAAa,WAEb0tB,IAAc,YACd69V,IAAiB,qBAEjBC,IAAkB,iBAClBC,IAAgB,wBAIhBC,IAAyC,SAAUpo0B,GAEnD,SAASoo0B,IACL,OAAkB,OAAXpo0B,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAUA,OAbAkmD,IAAUgp0B,EAAyBpo0B,GAInCipS,IAAW,CACPjB,GAAS,cACVogiB,EAAwBv+2B,UAAW,cAAU,GAChDo/U,IAAW,CACPjB,GAAS,MACVogiB,EAAwBv+2B,UAAW,gBAAY,GAClDo/U,IAAW,CACPjB,GAAS,WACVogiB,EAAwBv+2B,UAAW,cAAU,GACzCu+2B,CACX,CAf6C,CAe3C/6hB,IAKEg7hB,IAA4C,SAAUro0B,GAEtD,SAASqo0B,IACL,OAAkB,OAAXro0B,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAOA,OAVAkmD,IAAUip0B,EAA4Bro0B,GAItCipS,IAAW,CACPd,GAAQ,CAAEj7I,OAAQ,UAAW//F,SAAU,IAAKi8O,OAAQ,UAAYg/hB,MACjEC,EAA2Bx+2B,UAAW,gBAAY,GACrDo/U,IAAW,CACPd,GAAQ,CAAEj7I,OAAQ,YAAa//F,SAAU,IAAKi8O,OAAQ,UAAYg/hB,MACnEC,EAA2Bx+2B,UAAW,cAAU,GAC5Cw+2B,CACX,CAZgD,CAY9Ch7hB,IAKEi7hB,IAA+B,SAAUto0B,GAEzC,SAASso0B,IACL,OAAkB,OAAXto0B,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAyBA,OA5BAkmD,IAAUkp0B,EAAeto0B,GAIzBipS,IAAW,CACPjB,GAAS,OACVsgiB,EAAcz+2B,UAAW,eAAW,GACvCo/U,IAAW,CACPjB,GAAS,OACVsgiB,EAAcz+2B,UAAW,cAAU,GACtCo/U,IAAW,CACPjB,GAAS,OACVsgiB,EAAcz+2B,UAAW,gBAAY,GACxCo/U,IAAW,CACPjB,GAAS,OACVsgiB,EAAcz+2B,UAAW,eAAW,GACvCo/U,IAAW,CACPjB,IAAS,IACVsgiB,EAAcz+2B,UAAW,gBAAY,GACxCo/U,IAAW,CACPjB,IAAS,IACVsgiB,EAAcz+2B,UAAW,eAAW,GACvCo/U,IAAW,CACPjB,IAAS,IACVsgiB,EAAcz+2B,UAAW,gBAAY,GACxCo/U,IAAW,CACPjB,MACDsgiB,EAAcz+2B,UAAW,UAAM,GAC3By+2B,CACX,CA9BmC,CA8BjCj7hB,IAYEk7hB,IAA2B,SAAUvo0B,GAQrC,SAASuo0B,EAAUvw2B,EAAS3J,GACxB,IAAI7V,EAAQwnD,EAAOnnD,KAAKK,KAAM8e,EAAS3J,IAAYnV,KAYnD,OARAV,EAAMslW,WAAa,CACfs/C,OAAQ,UACRD,SAAU,YACVv+H,MAAO,QACPznJ,MAAO,QACPomR,KAAM,OACNjrW,IAAK,OAEF95C,CACX,CA2tCA,OAhvCA4mD,IAAUmp0B,EAAWvo0B,GA2BrBuo0B,EAAU1+2B,UAAUymI,QAAU,YACtBp3I,KAAKywW,SAAWzwW,KAAKkjZ,WAAaljZ,KAAK40d,QACvC50d,KAAKu6V,gBAET,IAAI5Q,EAAM3pV,KAAKmV,QAQf,GAPA2xC,EAAOn2C,UAAUymI,QAAQz3I,KAAKK,MAC9BA,KAAKmlW,eACLnlW,KAAKsv3B,WAAY,EACjBtv3B,KAAKuv3B,eAAe,MACpB,GAAG3+2B,MAAMjR,KAAKgqV,EAAI7jV,UAAUO,SAAQ,SAAU6G,GAC1Cy8U,EAAIx0T,YAAYjoB,EACpB,IACIlN,KAAKo5hB,QAAS,CAEd,IADAp5hB,KAAKo5hB,QAAU,KACRp5hB,KAAKq5hB,QAAQ/uf,mBAChBq/S,EAAIj4T,YAAY1xB,KAAKq5hB,QAAQ/uf,mBAEjCtqC,KAAKq5hB,QAAU,IACnB,CACA1vM,EAAIzhE,UAAU/0P,OAAO+61B,KACrBvkiB,EAAI50T,gBAAgB,SACpB/0B,KAAKmV,QAAQ4f,gBAAgB,gBACxB/0B,KAAKm+jB,UAAYhsO,IAClBnyV,KAAKiqc,oBAEb,EACAolb,EAAU1+2B,UAAUmoV,UAAY,WAC5B,IAAI7lR,EAASwiB,GAAQz1F,KAAKmV,QAAS,IAAMq52B,KACzCxu3B,KAAKm+jB,UAAW,EAChBn+jB,KAAKwv3B,YAAc,GACdxv3B,KAAKsv3B,YACNtv3B,KAAKsv3B,WAAY,GAEjBr8yB,GAAUA,EAAO3oC,mBAAqB2oC,EAAO3oC,kBAAkBA,kBAC3D2oC,EAAO3oC,kBAAkBA,kBAAkB49O,UAAUh1P,SAASi71B,OAC9Dl7yB,EAAOi1M,UAAU90P,IApJlB,YAqJCpzB,KAAKm+jB,UAAW,GAIpBn+jB,KAAKmV,QAAQ+yQ,UAAU90P,IAAI861B,KAE3Blu3B,KAAKq4V,WACLr4V,KAAKozB,IAAIpzB,KAAKmV,QAASksf,IAE/B,EACAguX,EAAU1+2B,UAAUyiB,IAAM,SAAUu2T,EAAK56T,GACrC46T,EAAIzhE,UAAU90P,IAAIrE,EACtB,EACAsg2B,EAAU1+2B,UAAUwiB,OAAS,SAAUw2T,EAAK56T,GACxC46T,EAAIzhE,UAAU/0P,OAAOpE,EACzB,EAOAsg2B,EAAU1+2B,UAAUyJ,OAAS,WACzBpa,KAAKyv3B,2BACLzv3B,KAAK0v3B,yBACL1v3B,KAAK6tK,aACL7tK,KAAK88hB,gBACL98hB,KAAK+jW,aACL/jW,KAAK45V,gBACT,EACAy1hB,EAAU1+2B,UAAUk9J,WAAa,WAC7B,IAAIrvJ,EAAQkvT,GAAW1tU,KAAKwe,OACxBoqI,EAAS8kL,GAAW1tU,KAAK4oJ,QAC7B4tQ,GAASx2Z,KAAKmV,QAAS,CAAE,MAASqJ,EAAO,OAAUoqI,IAC/C8kX,GAAM1tgB,KAAK2v3B,cACX3v3B,KAAK2v3B,WAAa,IAElB3v3B,KAAK4v3B,gBAAgBxs3B,OAAS,IAC9BpD,KAAK2v3B,WAAa3v3B,KAAK4v3B,gBAE/B,EACAP,EAAU1+2B,UAAUmshB,cAAgB,WAChC98hB,KAAKo5hB,QAAWp5hB,KAAKmV,QAAQrP,SAAS1C,OAAS,EAAKonV,GAAO,MAAOxqV,KAAKmV,SAAW,KAClFnV,KAAK61b,cACL71b,KAAK6v3B,gBACT,EACAR,EAAU1+2B,UAAUogiB,gBAAkB,WAElC,IADA,IACSzhiB,EAAK,EAAGwg3B,EADF,GAAGl/2B,MAAMjR,KAAKK,KAAKmV,QAAQ3E,iBAAiB,IAAMymhB,MACzB3nhB,EAAKwg3B,EAAW1s3B,OAAQkM,IAAM,CAClE,IAAIimB,EAAOu61B,EAAWxg3B,GAClB0wgB,EAAYzqf,EAAKqE,cAAc,IAAM001B,KACrC/41B,EAAK4ga,kBAAoB,GAAK6pF,IAC9BnnS,GAAaswG,YAAY62L,GACzBnnS,GAAazlN,IAAI4sf,EAAW,QAAShghB,KAAK04Z,QAAS14Z,MACnD64O,GAAazlN,IAAI4sf,EAAW,OAAQhghB,KAAKk3Z,SAAUl3Z,MAE3D,CACJ,EACAqv3B,EAAU1+2B,UAAUw0V,aAAe,WAC/BtsH,GAAa1lN,OAAOnzB,KAAKmV,QAAS,QAASnV,KAAK8qZ,cAC3C4iH,GAAM1tgB,KAAKg6hB,YACZh6hB,KAAKg6hB,UAAU5iZ,SAEvB,EACAi4uB,EAAU1+2B,UAAUozV,WAAa,WAC7BlrH,GAAazlN,IAAIpzB,KAAKmV,QAAS,QAASnV,KAAK8qZ,aAAc9qZ,MACtDA,KAAKm+jB,UAAan+jB,KAAKsv3B,YACxBtv3B,KAAKiqc,mBAAqBp4G,GAAa7xV,KAAKmV,QAAS,CAAE5E,SAAU,IAAM+92B,OAEtEtu3B,KAAKm+jB,WACNn+jB,KAAKg6hB,UAAY,IAAI11L,GAAetkW,KAAKmV,QAAS,CAC9C+vV,UAAWllW,KAAKu/b,iBAAiB1/b,KAAKG,MACtC4kW,WAAY5kW,KAAK4kW,WACjBruU,UAAW,YAGvB,EACA841B,EAAU1+2B,UAAUo/2B,eAAiB,SAAUxs1B,GAC3C,GAAIA,EACA,IACI,OAAIrS,SAAS1gB,iBAAiB+yB,GAAUngC,OAC7Bowb,GAAiBtia,SAAS0I,cAAc2J,GAAU2F,UAAUzW,QAG5D+ga,GAAiBjwZ,EAEhC,CACA,MAAOtsB,IACH,OAAOu8a,GAAiBjwZ,EAC5B,CAGR,EACA8r1B,EAAU1+2B,UAAU8+2B,yBAA2B,WACvCzv3B,KAAKutb,iBACLvtb,KAAK0+qB,iBAAmB1+qB,KAAK+v3B,eAAe/v3B,KAAKutb,gBAEzD,EACA8hc,EAAU1+2B,UAAU++2B,uBAAyB,WACrC1v3B,KAAKk2b,eACLl2b,KAAKgw3B,eAAiBhw3B,KAAK+v3B,eAAe/v3B,KAAKk2b,cAEvD,EACAm5b,EAAU1+2B,UAAUkgnB,kBAAoB,WACpC,OAAO7wnB,KAAK0+qB,gBAChB,EACA2wM,EAAU1+2B,UAAUs/2B,gBAAkB,WAClC,OAAOjw3B,KAAKgw3B,cAChB,EACAX,EAAU1+2B,UAAU+nZ,QAAU,SAAUr4Z,GACpCA,EAAEgI,OAAOwtR,cAAc3N,UAAU90P,IAAIg71B,IACzC,EACAiB,EAAU1+2B,UAAUumZ,SAAW,SAAU72Z,GACrCA,EAAEgI,OAAOwtR,cAAc3N,UAAU/0P,OAAOi71B,IAC5C,EACAiB,EAAU1+2B,UAAU4yhB,aAAe,WAE/B,IAAI2sV,EADJlw3B,KAAKq5hB,QAAUr5hB,KAAKmV,QAAQguB,WAAU,GAEtC,IAAI8wf,EAAUzpM,GAAO,IAAMykiB,IAAejv3B,KAAKmV,SAE3C+62B,EADAj8V,EACYA,EAAQnuhB,SAGR9F,KAAKmV,QAAQrP,SAE7B,IAAIgiD,EAAQ,GACZ,GAAGl3C,MAAMjR,KAAKuw3B,GAAW7p3B,SAAQ,SAAU6G,GACvC46C,EAAM17C,KAAK,CACPsiL,OAASxhL,EAAGipb,kBAAoB,GAAKjpb,EAAGpH,SAAS,GAAOoH,EAAGpH,SAAS,GAAM,GAC1EiP,QAAU7H,EAAGipb,kBAAoB,GAAKjpb,EAAGpH,SAAS,GAAOoH,EAAGpH,SAAS,GAAM,KAE/EoH,EAAGsnB,WAAWW,YAAYjoB,EAC9B,IACI+mhB,GACAj0hB,KAAKmV,QAAQggB,YAAY8+f,GAE7Bj0hB,KAAKisV,cAAc,CAAEnkS,MAAOA,IAAS,EACzC,EACAun0B,EAAU1+2B,UAAUw/2B,mBAAqB,WACrC,IAAIC,EAAUpw3B,KAAKc,cAAc,MAAO,CAAEC,UAAW2t3B,MACjD2B,EAAarw3B,KAAKc,cAAc,OAAQ,CAAEC,UA3ShC,gCA6Sd,OADAqv3B,EAAQ1+1B,YAAY2+1B,GACbD,CACX,EACAf,EAAU1+2B,UAAUk/2B,eAAiB,WACjC,IAAIlg0B,EAAM3vD,KAAK2v3B,WAAWvs3B,OAC1B,GAAY,IAARusD,EAAJ,CAGA,GAAwB,WAApB3vD,KAAKsw3B,WACLtw3B,KAAKuw3B,YAAW,EAAMvw3B,KAAK2v3B,WAAWhg0B,EAAM,SAG5C,IAAK,IAAIxjD,EAAI,EAAGA,EAAIwjD,EAAKxjD,IACrBnM,KAAKuw3B,YAAW,EAAMvw3B,KAAK2v3B,WAAWpj2B,SAASpgB,EAAE2K,WAAY,MAGjE9W,KAAKywW,SACLzwW,KAAKs6V,sBAVT,CAYJ,EACA+0hB,EAAU1+2B,UAAUklb,YAAc,WAC9B,IAEIynG,EACAkzV,EAHAlx3B,EAAQU,KACR2pV,EAAM3pV,KAAKmV,QAMf,GAHKu4f,GAAM1tgB,KAAKo5hB,UACZp5hB,KAAKujiB,eAELvjiB,KAAK8ya,WAAW1va,OAAS,EACzBpD,KAAK8ya,WAAWzsa,SAAQ,SAAUkvB,EAAM9I,GACpC+j2B,EAAsBlx3B,EAAMmx3B,gBAAgBl71B,EAAM9I,GAClDk9T,EAAIj4T,YAAY8+1B,GACZA,EAAoBr6b,kBAAoB,IACxCt9M,GAAazlN,IAAIo91B,EAAoB521B,cAAc,IAAM001B,KAAa,QAAShv3B,EAAMo5Z,QAASp5Z,GAC9Fu5O,GAAazlN,IAAIo91B,EAAoB521B,cAAc,IAAM001B,KAAa,OAAQhv3B,EAAM43Z,SAAU53Z,GAEtG,QAEC,CACD,IAAIwoD,EAAQ9nD,KAAK8nD,MACb6hS,GAAO7hS,EAAM1kD,OAAS,GACtB0kD,EAAMzhD,SAAQ,SAAUkvB,EAAM9I,GAC1B6wgB,EAAYh+hB,EAAMmx3B,gBAAgBl71B,EAAM9I,GACxCk9T,EAAIj4T,YAAY4rgB,GACZA,EAAUnnG,kBAAoB,IAC9Bt9M,GAAazlN,IAAIkqgB,EAAU1jgB,cAAc,IAAM001B,KAAa,QAAShv3B,EAAMo5Z,QAASp5Z,GACpFu5O,GAAazlN,IAAIkqgB,EAAU1jgB,cAAc,IAAM001B,KAAa,OAAQhv3B,EAAM43Z,SAAU53Z,GAE5F,GAER,CACIU,KAAKywW,SACLzwW,KAAKs6V,sBAEb,EACA+0hB,EAAU1+2B,UAAUm6Y,aAAe,SAAUzqZ,GACzC,IAGI+v3B,EAHAt8V,EAAOzzhB,EAAEgI,OACTy/C,EAAQ9nD,KAAKw4b,WACb5zG,EAAY,CAAC,EAGjB,GADcnvP,GAAQq+b,EAAM,IAAMq6V,OAClBnu3B,KAAKmV,QAArB,CAGA2+gB,EAAK5rQ,UAAU90P,IAAI,YACnB,IAUIs91B,EAVAC,EAAYl7xB,GAAQq+b,EAAM,IAAMmD,KAChC25V,EAAWn7xB,GAAQq+b,EAAM,IAAMw6V,KAC/BuC,EAAWp7xB,GAAQq+b,EAAM,IAAM06V,KAC/BmC,IAAcjjX,GAAMkjX,IAAaljX,GAAMmjX,MACvCD,EAAWD,EAAU7q3B,SAAS,GAC9B+q3B,EAAWF,EAAU7q3B,SAAS,IAE9B8q3B,IACAR,EAAU5liB,GAAO,IAAMkkiB,IAAekC,IAGtCA,EACAF,EAAej7xB,GAAQm7xB,EAAU,IAAM35V,KAElC45V,IACLH,EAAej7xB,GAAQo7xB,EAAU,IAAM55V,MAE3C,IAAIxqgB,EAAQzsB,KAAK8w3B,eAAeH,GAC5BD,IACA9riB,EAAUrvT,KAAOuyB,EAAM9nD,KAAK8w3B,eAAeJ,KAE/C9riB,EAAU4iB,cAAgBnnW,KACVqtgB,GAAM0iX,IAAYO,EAAUx6b,mBAAqB,KAChDu3E,GAAMmjX,IAAcnjX,GAAMljL,GAAO,IAAM8jiB,IAAa,KAAOI,IAAegC,MACvFC,EAAUj/1B,YAAY1xB,KAAK+w3B,iBAAiBtk2B,IAC5CzsB,KAAKgx3B,eAAeL,IAIpB3w3B,KAAKix3B,mBAAmBn9V,EAAMlvM,EAAW+riB,EAAWC,EAAUC,EAAUH,GAExE1w3B,KAAKywW,SACLzwW,KAAKs6V,sBAlCT,CAoCJ,EACA+0hB,EAAU1+2B,UAAUsg3B,mBAAqB,SAAUn9V,EAAMlvM,EAAW+riB,EAAWC,EAAUC,EAAUH,GAC/F,IAAIpx3B,EAAQU,KACRkx3B,EAAa,GACjBlx3B,KAAKsgS,QAAQ,UAAWskD,GACxB,IAAIusiB,EAAeN,IAAanjX,GAAMljL,GAAO,YAAaqmiB,IACtDO,EAAiB,IAAM5C,IAAc,KAAOL,IAC5CkD,EAAiBR,IAAanjX,GAAMljL,GAAO,IAAM2jiB,IAAU0C,KAAcnjX,GAAMj4a,GAAQq+b,EAAMs9V,IAC7FE,EAAgBT,GAAYnjX,GAAMljL,GAAO,IAAM2jiB,IAAU0C,OAAgBp7xB,GAAQq+b,EAAM,IAAMq6V,OAAcnu3B,KAAKmV,SAGpH,GAFAg82B,EAAcA,IAAgBE,GAAkBC,GAChDx9V,EAAK5rQ,UAAU/0P,OAAO,cAClB2ggB,EAAK5rQ,UAAUh1P,SAASs71B,MAAgB16V,EAAK5rQ,UAAUh1P,SAASu71B,MAAc0C,GAAlF,CAGA,IAAII,EAAgBvx3B,KAAKmV,QAAQykB,cAAc,IAAMq11B,KACjDuC,EAAcD,EAAiBA,EAAczr3B,SAAW9F,KAAKmV,QAAQrP,SACzE,GAAG8K,MAAMjR,KAAK6x3B,GAAYnr3B,SAAQ,SAAU6G,GACpCA,EAAGg7Q,UAAUh1P,SAASswe,MACtB0tX,EAAW9k3B,KAAKc,EAExB,IACA,IAAIuk3B,EAAa,GAAG7g3B,MAAMjR,KAAKK,KAAKmV,QAAQ3E,iBAAiB,IAAMymhB,IAAN,iBAC7D,GAAIw6V,EAAWru3B,OAAS,EACpB,IAAK,IAAIkM,EAAK,EAAGoi3B,EAAeD,EAAYni3B,EAAKoi3B,EAAatu3B,OAAQkM,IAAM,CACxE,IAAIpC,EAAKwk3B,EAAapi3B,GACtB4h3B,EAAW9k3B,KAAKc,EAAG2oR,cACvB,CAEJ,IAAI87lB,GAAyD,IAAtCT,EAAWvm3B,QAAQ+l3B,IAA+D,SAAvCG,EAASv+1B,aAAa,aACpFs/1B,GAAa,EACjB,IAAKlkX,GAAMijX,KAAejjX,GAAMkjX,GAAW,CACvC,IAAIiB,EAAarniB,GAAO,IAAMgkiB,IAAamC,GAEvCmB,EADYr8xB,GAAQk7xB,EAAW,IAAMzC,KACbt01B,cAAc,IAAMo11B,KAChD,GAAIthX,GAAMmkX,GACN,OAEJD,EAAcE,IAAgBnB,GAC1B3miB,GAAU6niB,IAAiBF,IAAoBjB,EAAaxomB,UAAUh1P,SAAS471B,MAI1EoC,EAAW9t3B,OAAS,GAA0B,WAApBpD,KAAKsw3B,aAA4BqB,GAC5DT,EAAW7q3B,SAAQ,SAAU6G,GACzB5N,EAAMk4jB,SAAShtO,GAAO,IAAMgkiB,IAAath3B,IACzCA,EAAGg7Q,UAAU/0P,OAAO671B,IACxB,IAEJhv3B,KAAK80a,OAAO+8c,IATZ7x3B,KAAKw3jB,SAASq6T,GAWbnkX,GAAMokX,IAAiBF,GACxBE,EAAY5pmB,UAAU/0P,OAAO671B,IAErC,CAxCA,CAyCJ,EACAK,EAAU1+2B,UAAUoh3B,aAAe,SAAU78yB,EAAQ3yC,EAAMuxf,GACvD,IAAI4H,EACAs2V,EAAWv8xB,GAAQq+b,EAAM,IAAMmD,KAC/BnD,IAASvxf,EACTm5f,GAAoB,WAAXxmd,EAAsB4+c,EAAK7/B,iBAAmB6/B,GAAMl6f,cAAc,IAAM001B,KAE5Ex6V,EAAK5rQ,UAAUh1P,SAASo71B,OAC7B0D,EAAuB,WAAX98yB,EAAsB88yB,EAAS7hY,uBAAyB6hY,EAAS3+lB,sBAEzEqoQ,EAAOlxM,GAAO,IAAM8jiB,IAAY0D,IAGpCt2V,GACAA,EAAKtxhB,OAEb,EACAil3B,EAAU1+2B,UAAU4ub,iBAAmB,SAAUl/b,GAC7C,IAAIyzhB,EAAOzzhB,EAAEgI,OAEb,IAAIqlgB,GADSj4a,GAAQp1F,EAAEgI,OAAQim3B,OACTx6V,EAAK5rQ,UAAUh1P,SAASi71B,MAAcr6V,EAAK5rQ,UAAUh1P,SAASo71B,KAApF,CAGA,IAEIv52B,EADAwtB,EAAOviC,KAAKmV,QAEhB,OAAQ9U,EAAE60E,QACN,IAAK,SAGL,IAAK,WACDl1E,KAAK+x3B,aAAa1x3B,EAAE60E,OAAQ3yC,EAAMuxf,GAClC,MACJ,IAAK,QACL,IAAK,SAEIpmB,GADL34f,EAAU++gB,EAAKzgQ,qBACQt+Q,EAAQmzQ,UAAUh1P,SAASs71B,KACJ,SAAtCz52B,EAAQud,aAAa,cACrBwhgB,EAAK9wQ,QAIT8wQ,EAAK9wQ,QAET3iR,EAAEgO,iBACF,MACJ,IAAK,OACL,IAAK,OACmB,SAAbhO,EAAE60E,OAAoB3yC,EAAK+H,kBAAkBxkC,SAAS,GAAKy8B,EAAK0xd,iBAAiBnuf,SAAS,IAC5FsE,QACL/J,EAAEgO,iBA5BV,CA+BJ,EACAgh3B,EAAU1+2B,UAAUsh3B,kBAAoB,WACpC,IAAIvjsB,EAAS1uL,KAAKc,cAAc,MAAO,CAAEC,UAAWut3B,IAAYn41B,GAAI42S,GAAY,kBAKhF,OADAzhU,GAAWojL,EAHI,CACX,SAAY,IAAK,KAAQ,SAAU,gBAAiB,QAAS,gBAAiB,UAG3EA,CACX,EACA2gsB,EAAU1+2B,UAAU8/2B,gBAAkB,SAAUl71B,EAAM9I,GAClD,IAAIkia,EAAW3ub,KAAKc,cAAc,MAAO,CACrCC,UAAWk2hB,IAAU9ggB,GAAIZ,EAAKY,IAAM42S,GAAY,gBAEpD,GAAI/sU,KAAKutb,eAAgB,CACrB,IAAI2kc,EAASly3B,KAAKiy3B,oBACdE,EAASny3B,KAAKc,cAAc,MAAO,CAAEC,UAAWwt3B,MAMpD,OALA2D,EAAOxg2B,YAAYyg2B,GACnBn/vB,GAAOhzH,KAAK6wnB,mBAAL7wnB,CAAyBu1B,EAAMv1B,KAAM,iBAAkBA,KAAKmV,QAAQghB,GAAK,mBAAmB,GAAQg81B,GAC3Gxjc,EAASj9Z,YAAYwg2B,GACrBA,EAAOxg2B,YAAY1xB,KAAKmw3B,sBACxBnw3B,KAAKozB,IAAIu7Z,EAAUkgc,KACZlgc,CACX,CACA,GAAIp5Z,EAAKm5J,QAAU1uL,KAAKoy3B,wBAAwB781B,EAAM,UAAW,CACzDv1B,KAAK+sb,qBAAgD,kBAAjBx3Z,EAAKm5J,SACzCn5J,EAAKm5J,OAAS0/K,GAAmBxiU,SAASrW,EAAKm5J,SAE/CwjsB,EAASly3B,KAAKiy3B,oBACdE,EAASny3B,KAAKc,cAAc,MAAO,CAAEC,UAAWwt3B,MACpD2D,EAAOxg2B,YAAYyg2B,GACnBD,EAAOxg2B,YAAY1xB,KAAKqy3B,aAAaF,EAAQ581B,EAAKm5J,OAAQjiK,GAAO,IACjEkia,EAASj9Z,YAAYwg2B,EACzB,CACA,IAAII,EAAM9niB,GAAO,IAAM8jiB,IAAY3/b,GAenC,IAdIp5Z,EAAKyqZ,UAAa0tF,GAAMjhf,IAAYzsB,KAAK24V,oBACD,IAApC34V,KAAK2v3B,WAAWhl3B,QAAQ8hB,IACxBzsB,KAAK2v3B,WAAWvj3B,KAAKqgB,GAGzB8I,EAAKq6U,UACLpnF,GAAS,CAACmmK,GAAWp5Z,EAAKq6U,SAASj9U,MAAM,MAEzC4C,EAAK3mB,UACL45Q,GAAS,CAACmmK,GAAWuiG,MAEJ,IAAjB37f,EAAKs6Q,SACLrnB,GAAS,CAACmmK,GAAW0/b,KAErB941B,EAAK02Z,QAAS,CACd,IAAIsmc,EAAYvy3B,KAAKc,cAAc,MAAO,CAAEC,UAhjBpC,wBAijBJkgR,EAAOjhR,KAAKc,cAAc,OAAQ,CAAEC,UAAWw0B,EAAK02Z,QAAU,aAClEsmc,EAAU7g2B,YAAYuvP,GAClBysP,GAAM4kX,KACNA,EAAMty3B,KAAKiy3B,qBACPvg2B,YAAY6g2B,GAChB5jc,EAASj9Z,YAAY4g2B,IAGrBA,EAAI391B,aAAa491B,EAAWD,EAAInp1B,WAAW,GAEnD,CACA,GAAI5T,EAAKxgB,SAAW/U,KAAKoy3B,wBAAwB781B,EAAM,WAAY,CAC/D,IAAIi91B,EAAUxy3B,KAAKmw3B,qBACfziX,GAAM4kX,KACNA,EAAMty3B,KAAKiy3B,oBACXtjc,EAASj9Z,YAAY4g2B,IAEzBA,EAAI5g2B,YAAY8g2B,GAChBxy3B,KAAKozB,IAAIu7Z,EAAUkgc,IACvB,CACA,OAAOlgc,CACX,EACA0gc,EAAU1+2B,UAAUyh3B,wBAA0B,SAAU781B,EAAM5wB,GAC1D,IACIoQ,EADoB,YAATpQ,EAAqB4wB,EAAKxgB,QAAUwgB,EAAKm5J,OAExD,GAAI1uL,KAAKkjZ,YAAcwqH,GAAM34f,EAAQivQ,YAAa,CAC9C,IAAI95O,EAAOn1B,EAAQivQ,WAAWyumB,cAAcvo1B,KAC5C,GAAIwje,GAAMxje,IAAkB,KAATA,IAA+C,IAA/BA,EAAKv/B,QAAQ,aAC5C,OAAO,EAEX,IAAI+n3B,EAAaji1B,KAAKuL,MAAMjnC,EAAQivQ,WAAWyumB,cAAcvo1B,KAAK75B,QAAQ,YAAa,KACvF,SAAKq9f,GAAMglX,IAAkD,UAAnCA,EAAW,oBAMzC,CAEI,OAAO,CAEf,EAEArD,EAAU1+2B,UAAU0h3B,aAAe,SAAU1oiB,EAAK/nV,EAAO6qB,EAAO6mZ,GAC5D,IAAIssG,EACA+yW,EAwBAjuV,EAvBJ,IACI,GAAIxzgB,SAAS1gB,iBAAiB5O,GAAOwB,QAAoB,WAAVxB,EAAoB,CAC/D,IAAIgx3B,EAAS1h2B,SAAS0I,cAAch4B,GACpC+w3B,EAAYC,EAAOzm1B,UAAU1Z,OAC7Bk3T,EAAIj4T,YAAYkh2B,GAChBA,EAAOzs3B,MAAMi+J,QAAU,EAC3B,MAEIw7W,EAAapsF,GAAiB5xb,EAEtC,CACA,MAAOvB,KACoB,kBAAXuB,EACR+nV,EAAIzgT,UAAYklU,GAAmBxiU,SAAShqC,IAEtC8rgB,GAAM1tgB,KAAKo5hB,UAAax3hB,aAAkBkyB,aAChD61T,EAAIj4T,YAAY9vB,GAChB+nV,EAAIr/S,kBAAkBnkC,MAAMi+J,QAAU,IAGtCw7W,EAAapsF,GAAiB5xb,EAEtC,CAEA,IAAK8rgB,GAAMkS,GAAa,CAChB5/gB,KAAKywW,SACLzwW,KAAKs6V,uBAET,IAAIyY,OAAgB,EAChBvY,OAAe,EACf7Q,EAAIzhE,UAAUh1P,SAASq71B,MACvBx7gB,EAAgB/yW,KAAKmV,QAAQghB,GAAK1J,EAAQ,UAC1C+tU,EAAe,UAEV7Q,EAAIzhE,UAAUh1P,SAASu71B,OAC5B17gB,EAAgB/yW,KAAKmV,QAAQghB,GAAK1J,EAAQ,WAC1C+tU,EAAe,WAEnBkqM,EAAY9kB,EAAW,CAAC,EAAG5/gB,KAAMw6V,EAAcuY,EAAe/yW,KAAKk4V,iBACvE,CAiBA,OAhBKw1K,GAAMg3B,MAAcA,EAAUthiB,OAAS,IAAOsqgB,GAAMg3B,EAAU,GAAGt8f,UAAiC,IAArBs8f,EAAUthiB,OAQzD,IAA1BumV,EAAIwsG,oBACTxsG,EAAIzgT,UAAYklU,GAAmBxiU,SAAShqC,IAR5C,GAAGgP,MAAMjR,KAAK+kiB,GAAWr+hB,SAAQ,SAAU6G,GAClCwggB,GAAMxggB,EAAGk7B,WACVl7B,EAAG/G,MAAMi+J,QAAU,IAEvBulL,EAAIj4T,YAAYxkB,EACpB,IAKCwggB,GAAMilX,KACkC,IAArC3y3B,KAAKwv3B,YAAY7k3B,QAAQ/I,IACzB5B,KAAKwv3B,YAAYpj3B,KAAKxK,GAGvB+nV,CACX,EACA0liB,EAAU1+2B,UAAUqg3B,eAAiB,SAAU7tV,GAC3C,IAAIz0W,EAAS87J,GAAO,IAAM8jiB,IAAYnrV,GAClCpuhB,EAAUy1U,GAAO,IAAMgkiB,IAAarrV,GACxCz0W,EAAO15J,aAAa,gBAAiBjgB,EAAQohB,IAC7CphB,EAAQigB,aAAa,kBAAmB05J,EAAOv4J,IAC/CphB,EAAQigB,aAAa,OAAQ,SACjC,EACAq61B,EAAU1+2B,UAAUog3B,iBAAmB,SAAUtk2B,GAC7C,IAAIom2B,EAAU7y3B,KAAKc,cAAc,MAAO,CAAEC,UAAWyt3B,IAAc,IAAMI,IAAaz41B,GAAI42S,GAAY,iBACtGzhU,GAAWun3B,EAAS,CAAE,cAAe,SACrC,IAAIC,EAAM9y3B,KAAKc,cAAc,MAAO,CAAEC,UAAW0t3B,MAejD,OAdIzu3B,KAAK8ya,WAAW1va,OAAS,GACrBpD,KAAKywW,SACLzwW,KAAKs6V,uBAETtnO,GAAOhzH,KAAKiw3B,iBAALjw3B,CAAuBA,KAAK8ya,WAAWvmZ,SAASE,EAAM3V,WAAY,KAAM9W,KAAM,eAAgBA,KAAKmV,QAAQghB,GAAK,iBAAiB,GAAQ281B,GAChJD,EAAQnh2B,YAAYoh2B,KAGhB9y3B,KAAK+sb,sBAA+B/sb,KAAK8nD,MAAMv7B,SAASE,EAAM3V,WAAY,KAAK/B,QAAnD,KAC5B/U,KAAK8nD,MAAMv7B,SAASE,EAAM3V,WAAY,KAAK/B,QACvCq5V,GAAmBxiU,SAAS5rC,KAAK8nD,MAAMv7B,SAASE,EAAM3V,WAAY,KAAK/B,UAE/E892B,EAAQnh2B,YAAY1xB,KAAKqy3B,aAAaS,EAAK9y3B,KAAK8nD,MAAMv7B,SAASE,EAAM3V,WAAY,KAAK/B,QAAS0X,GAAO,KAEnGom2B,CACX,EACAxD,EAAU1+2B,UAAUmka,OAAS,SAAUg/G,GACnC,IAAIx0hB,EAAQU,KACR8nD,EAAQ9nD,KAAKw4b,WACbu6b,EAAct9xB,GAAQq+b,EAAM,IAAMmD,KACtC,KAAIvpB,GAAMomB,IAAU9pM,GAAU8pM,IAA4C,SAAnCA,EAAKxhgB,aAAa,cAA4Byg2B,EAAY7qmB,UAAUh1P,SAASg+f,MAApH,CAGA,IACI4gW,EADYr8xB,GAAQs9xB,EAAa,IAAM7E,KACft01B,cAAc,IAAMo11B,KAC5C7/tB,EAAY,CACZzqJ,KAAM1E,KAAKmvJ,UAAU2lR,OAAO9gO,OAC5B//F,SAAUj0G,KAAKmvJ,UAAU2lR,OAAO7gU,SAChCu9O,eAAgBxxV,KAAKmvJ,UAAU2lR,OAAO5kF,QAEtCjvE,EAAOupE,GAAO,IAAMkkiB,IAAeqE,GAAazo1B,kBAChDs6S,EAAY,CACZzvU,QAAS492B,EACTx91B,KAAMuyB,EAAM9nD,KAAK8w3B,eAAeiC,IAChCtm2B,MAAOzsB,KAAK8w3B,eAAeiC,GAC3Bh+2B,QAASg+2B,EAAYn51B,cAAc,IAAM401B,KACzC9N,YAAY,GAEhB1g3B,KAAKsgS,QAAQ,YAAaskD,GAAW,SAAUouiB,GACtCA,EAAWlyyB,SACZmgM,EAAKiH,UAAU90P,IAAI271B,KACnBzv3B,EAAM2z3B,kBAAkBF,GACnBrlX,GAAMokX,IACPA,EAAY5pmB,UAAU/0P,OAAO671B,KAEjC+D,EAAY7qmB,UAAU90P,IAAI471B,KACF,SAAnB7/tB,EAAUzqJ,MACXpF,EAAM4z3B,eAAe,QAASjymB,EAAM6yQ,EAAMi/V,EAAaC,GACvD1z3B,EAAM4z3B,eAAe,MAAOjymB,EAAM6yQ,EAAMi/V,EAAaC,IAGrD1z3B,EAAM6z3B,gBAAgBhkuB,EAAUzqJ,KAAMu8Q,EAAM6yQ,EAAMi/V,EAAa5juB,EAAW6juB,GAGtF,GAhCA,CAiCJ,EACA3D,EAAU1+2B,UAAUwi3B,gBAAkB,SAAU1juB,EAAI2juB,EAAKt/V,EAAMi/V,EAAa9wkB,EAAShpS,GACjF,IACI2vI,EADAtpJ,EAAQU,KAEZA,KAAKqz3B,iBAAmBN,EAAY581B,GACzB,cAAPs5H,GACAwyJ,EAAQkvC,MAAQ,WACZ7xV,EAAM4z3B,eAAe,QAASE,EAAKt/V,EAAMi/V,EAAa952B,GACtD66gB,EAAK3thB,MAAM+jF,SAAW,WACtB0+D,EAASmquB,EAAYh+lB,aACrB++P,EAAK3thB,MAAMy/b,UAAakuF,EAAK/+P,aAAgB,KAC7Cg+lB,EAAY5s3B,MAAMy/b,UAAY,EAClC,EACA3jJ,EAAQwvC,SAAW,WACfshiB,EAAY5s3B,MAAMyvgB,UAAahtX,EAASkrY,EAAK/+P,aAAgB,IACjE,EACAktB,EAAQ7oQ,IAAM,WACVo9W,GAASs9H,EAAM,CAAE,SAAY,GAAI,UAAa,KAC9Ci/V,EAAY5s3B,MAAMyvgB,UAAY,GAC9Bt2gB,EAAM4z3B,eAAe,MAAOE,EAAKt/V,EAAMi/V,EAAa952B,EACxD,IAGAgpS,EAAQkvC,MAAQ,WACZ7xV,EAAM4z3B,eAAe,QAASE,EAAKt/V,EAAMi/V,EAAa952B,EAC1D,EACAgpS,EAAQ7oQ,IAAM,WACV95C,EAAM4z3B,eAAe,MAAOE,EAAKt/V,EAAMi/V,EAAa952B,EACxD,GAEJ,IAAIg3U,GAAUhuC,GAASA,QAAQ6xO,EACnC,EACAu7V,EAAU1+2B,UAAUui3B,eAAiB,SAAUzhiB,EAAUxwE,EAAM6yQ,EAAMi/V,EAAanuiB,GAC9E5kV,KAAKmzB,OAAO2ggB,EAAM86V,KAClB5u3B,KAAKozB,IAAI2/1B,EAAajE,KACtB9u3B,KAAKozB,IAAI6tP,EAAM0tmB,KACE,QAAbl9hB,IACAzxV,KAAKozB,IAAI2/1B,EAAavvX,KACtBswB,EAAK9+f,aAAa,cAAe,SACjC1pB,GAAWwohB,EAAK3jC,uBAAwB,CAAE,gBAAiB,SAC3DlvO,EAAKiH,UAAU/0P,OAAO471B,KACtB/u3B,KAAKsgS,QAAQ,WAAYskD,GAEjC,EACAyqiB,EAAU1+2B,UAAUsi3B,kBAAoB,SAAU191B,GAC9C,IAAI9I,EAAQzsB,KAAK8w3B,eAAev71B,GAChC,IAA6C,IAAzCv1B,KAAK4v3B,gBAAgBjl3B,QAAQ8hB,GAAe,CAC5C,IAAIigE,EAAO,GAAG97E,MAAMjR,KAAKK,KAAK4v3B,iBAC9BljyB,EAAKtgF,KAAKqgB,GACVzsB,KAAKisV,cAAc,CAAE2jiB,gBAAiBljyB,IAAQ,EAClD,CACJ,EACA2iyB,EAAU1+2B,UAAUmg3B,eAAiB,SAAUv71B,GAC3C,IAAI4tgB,EAAUnjiB,KAAKsz3B,kBACnB,MAAO,GAAG1i3B,MAAMjR,KAAKwjiB,GAASx4hB,QAAQ4qB,EAC1C,EACA851B,EAAU1+2B,UAAU2i3B,gBAAkB,WAClC,IAAInwV,EAAU,GACVyxB,EAAiB50jB,KAAKmV,QAAQrP,SAMlC,MALA,GAAG8K,MAAMjR,KAAKi1jB,GAAgBvujB,SAAQ,SAAU6G,GACxCA,EAAGg7Q,UAAUh1P,SAAS+jgB,MACtBkM,EAAQ/2hB,KAAKc,EAErB,IACOi2hB,CACX,EACAksV,EAAU1+2B,UAAU4i3B,iBAAmB,SAAUh+1B,GAC7C,IAAI9I,EAAQzsB,KAAK8w3B,eAAev71B,GAC5Bm3D,EAAO,GAAG97E,MAAMjR,KAAKK,KAAK4v3B,iBAC9BljyB,EAAKl3D,OAAOk3D,EAAK/hF,QAAQ8hB,GAAQ,GACjCzsB,KAAKisV,cAAc,CAAE2jiB,gBAAiBljyB,IAAQ,EAClD,EACA2iyB,EAAU1+2B,UAAU6mjB,SAAW,SAAU1jC,GACrC,IAAIx0hB,EAAQU,KACR8nD,EAAQ9nD,KAAKw4b,WACbu6b,EAAct9xB,GAAQq+b,EAAM,IAAMmD,KACtC,IAAIvpB,GAAMomB,IAAU9pM,GAAU8pM,KAASi/V,EAAY7qmB,UAAUh1P,SAASg+f,KAAtE,CAGA,IAAI/hY,EAAY,CACZzqJ,KAAM1E,KAAKmvJ,UAAUqoa,SAASxjX,OAC9B//F,SAAUj0G,KAAKmvJ,UAAUqoa,SAASvjd,SAClCu9O,eAAgBxxV,KAAKmvJ,UAAUqoa,SAAStnO,QAExCjvE,EAAOupE,GAAO,IAAMkkiB,IAAeqE,GAAazo1B,kBAChDs6S,EAAY,CACZzvU,QAAS492B,EACTx91B,KAAMuyB,EAAM9nD,KAAK8w3B,eAAeiC,IAChCtm2B,MAAOzsB,KAAK8w3B,eAAeiC,GAC3Bh+2B,QAASg+2B,EAAYn51B,cAAc,IAAM401B,KACzC9N,YAAY,GAEhB1g3B,KAAKsgS,QAAQ,YAAaskD,GAAW,SAAUouiB,GACtCA,EAAWlyyB,SACZxhF,EAAMi03B,iBAAiBR,GACvBA,EAAY7qmB,UAAU/0P,OAAO671B,KAC7B/tmB,EAAKiH,UAAU90P,IAAI271B,KACK,SAAnB5/tB,EAAUzqJ,MACXpF,EAAMk03B,iBAAiB,QAASvymB,EAAM6yQ,EAAMi/V,EAAaC,GACzD1z3B,EAAMk03B,iBAAiB,MAAOvymB,EAAM6yQ,EAAMi/V,EAAaC,IAGvD1z3B,EAAMm03B,kBAAkBtkuB,EAAUzqJ,KAAMovhB,EAAMi/V,EAAa9xmB,EAAM9xH,EAAW6juB,GAGxF,GA3BA,CA4BJ,EACA3D,EAAU1+2B,UAAU8i3B,kBAAoB,SAAUhkuB,EAAIqkY,EAAM4/V,EAAUN,EAAKnxkB,EAAShpS,GAChF,IACI2vI,EACA+quB,EACAC,EACAt1U,EAJAh/iB,EAAQU,KAKZA,KAAKqz3B,iBAAmBK,EAASv91B,GACtB,YAAPs5H,GACAwyJ,EAAQkvC,MAAQ,WACZyiiB,EAAaF,EAAS3+lB,aACtB2+lB,EAASvt3B,MAAMyvgB,UAAYg+W,EAAa,KACxC9/V,EAAK3thB,MAAM+jF,SAAW,WACtB0+D,EAAS8quB,EAAS3+lB,aAClB4+lB,EAAa7/V,EAAK/+P,aAClB++P,EAAK3thB,MAAMy/b,UAAY+tb,EAAa,KACpCr03B,EAAMk03B,iBAAiB,QAASJ,EAAKt/V,EAAM4/V,EAAUz62B,EACzD,EACAgpS,EAAQwvC,SAAW,YACf6sN,EAAW11Z,GAAU+quB,EAAa7/V,EAAK/+P,eAC1B6+lB,IACTF,EAASvt3B,MAAMyvgB,UAAY0oC,EAAS,KAE5C,EACAr8P,EAAQ7oQ,IAAM,WACV06e,EAAK3thB,MAAMi+J,QAAU,OACrB9kK,EAAMk03B,iBAAiB,MAAOJ,EAAKt/V,EAAM4/V,EAAUz62B,GACnDy62B,EAASvt3B,MAAMyvgB,UAAY,GAC3Bp/G,GAASs9H,EAAM,CAAE,SAAY,GAAI,UAAa,GAAI,QAAW,IACjE,IAGA7xO,EAAQkvC,MAAQ,WACZ7xV,EAAMk03B,iBAAiB,QAASJ,EAAKt/V,EAAM4/V,EAAUz62B,EACzD,EACAgpS,EAAQ7oQ,IAAM,WACV95C,EAAMk03B,iBAAiB,MAAOJ,EAAKt/V,EAAM4/V,EAAUz62B,EACvD,GAEJ,IAAIg3U,GAAUhuC,GAASA,QAAQ6xO,EACnC,EACAu7V,EAAU1+2B,UAAU6i3B,iBAAmB,SAAU/hiB,EAAUxwE,EAAM6yQ,EAAMi/V,EAAanuiB,GAChF5kV,KAAKmzB,OAAO8tP,EAAM0tmB,KAClB3u3B,KAAKmzB,OAAO4/1B,EAAajE,KACR,QAAbr9hB,IACAzxV,KAAKozB,IAAI0ggB,EAAM86V,KACf3tmB,EAAKiH,UAAU/0P,OAAO471B,KACtB/u3B,KAAKmzB,OAAO4/1B,EAAavvX,KACzBswB,EAAK9+f,aAAa,cAAe,QACjC1pB,GAAWwohB,EAAK3jC,uBAAwB,CAAE,gBAAiB,UAC3Dnwf,KAAKsgS,QAAQ,WAAYskD,GAEjC,EAOAyqiB,EAAU1+2B,UAAUo8U,cAAgB,WAChC,MAAO,WACX,EACAsiiB,EAAU1+2B,UAAU6nb,SAAW,WAQ3B,OANIx4b,KAAKk2b,cAAgBl2b,KAAKutb,eAClBvtb,KAAK8ya,WAGL9ya,KAAK8nD,KAGrB,EASAun0B,EAAU1+2B,UAAU0ob,QAAU,SAAU9ja,EAAM9I,GAC1C,IAAIntB,EAAQU,KACR2pV,EAAM3pV,KAAKmV,QACXguhB,EAAUnjiB,KAAKsz3B,kBACfxr0B,EAAQ9nD,KAAKw4b,YACbk1E,GAAMjhf,KACNA,EAAQq7B,EAAM1kD,QAEdumV,EAAIwsG,mBAAqB1pa,KACT8I,aAAgB7kB,MAAS6kB,EAAO,CAACA,IACxClvB,SAAQ,SAAUgzb,EAASltb,GAChC,IAAImtb,EAAY7sa,EAAQtgB,EACxB27C,EAAMtyB,OAAO8ja,EAAW,EAAGD,GAC3B,IAAIw6b,EAAev03B,EAAMmx3B,gBAAgBp3b,EAASC,GAC9C3vG,EAAIwsG,oBAAsBmD,EAC1B3vG,EAAIj4T,YAAYmi2B,GAGhBlqiB,EAAIh1T,aAAak/1B,EAAc1wV,EAAQ52gB,SAAS+sa,EAAUxib,WAAY,MAE1E+hO,GAAazlN,IAAIyg2B,EAAaj61B,cAAc,IAAM001B,KAAa,QAAShv3B,EAAMo5Z,QAASp5Z,GACvFu5O,GAAazlN,IAAIyg2B,EAAaj61B,cAAc,IAAM001B,KAAa,OAAQhv3B,EAAM43Z,SAAU53Z,GACvFA,EAAMsw3B,gBAAkB,GACxBtw3B,EAAMw03B,oBAAoBnqiB,GACtB0vG,GAAWA,EAAQrZ,UACnB1gb,EAAMix3B,YAAW,EAAMj3b,EAE/B,IAEAt5b,KAAKywW,SACLzwW,KAAKs6V,sBAEb,EAEA+0hB,EAAU1+2B,UAAUmj3B,oBAAsB,SAAUnqiB,GAChD,IAAIrqV,EAAQU,KACRmjiB,EAAUnjiB,KAAKsz3B,kBACnB,GAAG1i3B,MAAMjR,KAAKwjiB,GAAS98hB,SAAQ,SAAU6G,GACjCA,EAAGg7Q,UAAUh1P,SAAS471B,MACtBxv3B,EAAM2z3B,kBAAkB/l3B,EAEhC,GACJ,EAOAmi3B,EAAU1+2B,UAAUo7M,WAAa,SAAUt/L,GACnCzsB,KAAKywW,SACLzwW,KAAKu6V,cAAc,CAAC,iBAAkB,gBAAiB9tU,GAE3D,IACIk9T,EADU3pV,KAAKsz3B,kBACD/m2B,SAASE,EAAM3V,WAAY,KACzCgxC,EAAQ9nD,KAAKw4b,WACbk1E,GAAM/jL,KAGV3pV,KAAKuv3B,eAAe9i2B,GACpB69T,GAAOX,GACP7hS,EAAMtyB,OAAO/I,EAAO,GACpBzsB,KAAK4v3B,gBAAkB,GACvB5v3B,KAAK8z3B,oBAAoB9z3B,KAAKmV,SAClC,EAOAk62B,EAAU1+2B,UAAU65U,OAAS,SAAU/9T,GACnC,IACIk9T,EADU3pV,KAAKsz3B,kBACD/m2B,SAASE,EAAM3V,WAAY,KACzC42f,GAAM/jL,IAAQ+jL,GAAMljL,GAAO,IAAM8jiB,IAAY3kiB,KAGjDA,EAAI7jV,SAAS,GAAGsE,OACpB,EASAil3B,EAAU1+2B,UAAUo1hB,SAAW,SAAUt5gB,EAAOw3I,GAC5C,IACI0lL,EADU3pV,KAAKsz3B,kBACD/m2B,SAASE,EAAM3V,WAAY,KACzC42f,GAAM/jL,KAGN+jL,GAAMzpW,KACNA,GAAW,GAEXA,EACAjkK,KAAKozB,IAAIu2T,EAAK0kiB,KAGdru3B,KAAKmzB,OAAOw2T,EAAK0kiB,KAEzB,EASAgB,EAAU1+2B,UAAUk8qB,WAAa,SAAUpgqB,EAAO2yX,GAC9C,IACIz1D,EADU3pV,KAAKsz3B,kBACD/m2B,SAASE,EAAM3V,WAAY,KAC7C,IAAI42f,GAAM/jL,GAAV,CAGA,IAAIoqiB,EAAYpqiB,EAAIr/S,kBAChB80W,GACAp/Y,KAAKmzB,OAAOw2T,EAAKunM,KACjB5lhB,GAAWyo3B,EAAW,CAAE,SAAY,IAAK,gBAAiB,UAC1DA,EAAU3p3B,UAGNu/U,EAAIzhE,UAAUh1P,SAASswe,OACvBxjgB,KAAKuw3B,YAAW,EAAO9j2B,GACvBzsB,KAAK+x3B,aAAa,WAAY/x3B,KAAKmV,QAAS4+2B,IAEhD/z3B,KAAKozB,IAAIu2T,EAAKunM,KACd6iW,EAAU/+1B,aAAa,gBAAiB,QACxC++1B,EAAUh/1B,gBAAgB,YAd9B,CAgBJ,EASAs61B,EAAU1+2B,UAAU4/2B,WAAa,SAAUp1c,EAAU1uZ,GACjD,IAAIntB,EAAQU,KACRmjiB,EAAUnjiB,KAAKsz3B,kBACnB,GAAI5lX,GAAMjhf,GACN,GAAwB,WAApBzsB,KAAKsw3B,YAA2Bn1c,EAAU,CAC1C,IAAIxxF,EAAMw5M,EAAQA,EAAQ//hB,OAAS,GACnCpD,KAAKg03B,WAAW74c,EAAUxxF,EAAK3pV,KAAK8w3B,eAAenniB,GACvD,KACK,CACD,IAAIp0T,EAAOi1T,GAAO,IAAMxqV,KAAKqz3B,iBAAkBrz3B,KAAKmV,SACpD,GAAGvE,MAAMjR,KAAKwjiB,GAAS98hB,SAAQ,SAAU6G,GACrC5N,EAAM003B,WAAW74c,EAAUjua,EAAI5N,EAAMwx3B,eAAe5j3B,IACpDA,EAAGg7Q,UAAU/0P,OAAO671B,IACxB,IACA,IAAIiF,EAAezpiB,GAAO,IAAMwkiB,IAAiBhv3B,KAAKmV,SAClD8+2B,GACAA,EAAa/rmB,UAAU/0P,OAAO671B,KAE9Bz51B,GACAA,EAAK2yP,UAAU90P,IAAI471B,IAE3B,KAEC,CAED,GAAIthX,GADA/jL,EAAMw5M,EAAQ52gB,SAASE,EAAM3V,WAAY,QAC1B6yU,EAAIzhE,UAAUh1P,SAAS271B,MAAclliB,EAAIzhE,UAAUh1P,SAASswe,MAAeroF,EAC1F,OAGwB,WAApBn7a,KAAKsw3B,YACLtw3B,KAAKuw3B,YAAW,GAEpBvw3B,KAAKg03B,WAAW74c,EAAUxxF,EAAKl9T,EAEvC,CACJ,EACA4i2B,EAAU1+2B,UAAUqj3B,WAAa,SAAU74c,EAAUxxF,EAAKl9T,GACtD,IAAIqm2B,EAAMnpiB,EAAI7jV,SAAS,GACnB6jV,EAAIzhE,UAAUh1P,SAASg+f,OAGvBxjB,GAAMolX,IAAQ33c,GACd23c,EAAM9y3B,KAAK+w3B,iBAAiBtk2B,GAC5Bk9T,EAAIj4T,YAAYoh2B,GAChB9y3B,KAAKgx3B,eAAerniB,GACpB3pV,KAAK80a,OAAOg+c,IAENplX,GAAMolX,KACR33c,EACAn7a,KAAK80a,OAAOg+c,GAGZ9y3B,KAAKw3jB,SAASs7T,IAGlB9y3B,KAAKywW,SACLzwW,KAAKs6V,uBAEb,EACA+0hB,EAAU1+2B,UAAUwohB,aAAe,WAC/Bn5hB,KAAKuv3B,eAAe,OAChBvv3B,KAAKywW,SAAWzwW,KAAKkjZ,WAAaljZ,KAAK40d,QACvC50d,KAAKu6V,gBAET,GAAG3pV,MAAMjR,KAAKK,KAAKmV,QAAQ3E,iBAAiB,IAAMymhB,MAAW5whB,SAAQ,SAAU6G,GAC3Eo9U,GAAOp9U,EACX,GACJ,EACAmi3B,EAAU1+2B,UAAU4+2B,eAAiB,SAAU9i2B,GAC3C,IAAIyn2B,EAEAA,EADAxmX,GAAMjhf,GACMzsB,KAAKmV,QAGLnV,KAAKmV,QAAQ3E,iBAAiB,IAAMymhB,KAAU1qgB,SAASE,EAAM3V,WAAY,KAEzF9W,KAAKwv3B,YAAYnp3B,SAAQ,SAAU8t3B,GAC1BzmX,GAAMwmX,EAAUt61B,cAAcu61B,MAC/Bjj2B,SAASzd,KAAKie,YAAYwi2B,EAAUt61B,cAAcu61B,IAAShu3B,MAAMi+J,QAAU,OAEnF,GACJ,EACAirtB,EAAU1+2B,UAAUq2f,WAAa,SAAUzxe,EAAM9I,GAC7C,IAAKihf,GAAMn4e,GAAO,CACd,IAAIuyB,EAAQ9nD,KAAKw4b,WACbzH,EAAUjpY,EAAMv7B,SAASE,EAAM3V,WAAY,KAC/CgxC,EAAMtyB,OAAO/I,EAAO,GACpBzsB,KAAKuv3B,eAAe9i2B,GACpB,IAAIiiK,EAAS87J,GAAO,IAAM+jiB,IAAeh51B,GACrCxgB,EAAUy1U,GAAO,IAAMikiB,IAAWl51B,IAClCv1B,KAAKywW,SAAWzwW,KAAKkjZ,aACrBljZ,KAAKo03B,uBAAuB1lsB,EAAQ,SAAU6/rB,KAC9Cvu3B,KAAKo03B,uBAAuBr/2B,EAAS,UAAW052B,MAEpDnkiB,GAAO/0T,GACPv1B,KAAKq5b,QAAQtI,EAAStka,EAC1B,CACJ,EACA4i2B,EAAU1+2B,UAAUgvgB,YAAc,SAAUp8e,EAAU+iH,EAAW75H,GAC7D65H,EAAUp9G,UAAY,GACtBlpC,KAAKq03B,gBAAgB/tuB,EAAW/iH,EAAU9W,GACtCzsB,KAAKywW,SACLzwW,KAAKs6V,sBAEb,EACA+0hB,EAAU1+2B,UAAU0j3B,gBAAkB,SAAU1qiB,EAAK2hB,EAAK7+U,GACtD,IAAIyugB,EAAUl7hB,KAAKc,cAAc,OACjCd,KAAKqy3B,aAAan3V,EAAS5vL,EAAK7+U,GAAO,GACL,IAA9ByugB,EAAQ/xf,WAAW/lC,QACnB,GAAGwN,MAAMjR,KAAKu7hB,EAAQ/xf,YAAY9iC,SAAQ,SAAUgmlB,GAChD1iQ,EAAIj4T,YAAY26jB,EACpB,GAER,EACAgjS,EAAU1+2B,UAAUyj3B,uBAAyB,SAAU5E,EAAah1hB,EAAcz5V,GAC9E,GAAIf,KAAKspmB,oBAAsBtpmB,KAAKspmB,mBAAmB,GAAK9uQ,GAExD,IADA,IAAI85hB,EAAsBt03B,KAAKspmB,mBACtB78kB,EAAQ,EAAGA,EAAQ6n2B,EAAoB,GAAK95hB,GAAcp3V,OAAQqpB,IAAS,CAGhF,IAAKihf,GADD6mX,EAAc9+xB,GADG6+xB,EAAoB,GAAK95hB,GAAcjuU,SAASE,EAAM3V,WAAY,KAAKuxmB,UAAU,GAC7Djke,cAAe,IAAMrjJ,KACnCwz3B,IAAgB/E,EAAa,CACpDxv3B,KAAKu6V,cAAc,CAACC,GAAe,CAAC85hB,EAAoB,GAAK95hB,GAAcjuU,SAASE,EAAM3V,WAAY,OACtG,KACJ,CACJ,MAEC,GAAI9W,KAAK8wW,SAAW9wW,KAAK8wW,QAAQ1tW,OAAS,EAC3C,KAAI0tW,EAAU9wW,KAAK8wW,QACnB,IAASrkV,EAAQ,EAAGA,EAAQqkV,EAAQ1tW,OAAQqpB,IAAS,CACjD,IACI8n2B,EACJ,IAAK7mX,GADD6mX,EAAc9+xB,GADDq7Q,EAAQvkV,SAASE,EAAM3V,WAAY,KACfstI,cAAe,IAAMrjJ,KAC/Bwz3B,IAAgB/E,EAAa,CACpDxv3B,KAAKu6V,cAAc,CAACC,GAAe/tU,GACnC,KACJ,CACJ,CAR0B,CAUlC,EACA4i2B,EAAU1+2B,UAAU0pV,eAAiB,WAEjC,OAAOr6V,KAAK26V,aADI,CAAC,mBAErB,EASA00hB,EAAU1+2B,UAAU+7U,kBAAoB,SAAUiF,EAASC,GAGvD,IAFA,IAAI4iiB,EAAQx03B,KAAKmV,QACbyxpB,GAAY,EACPt3pB,EAAK,EAAGgmC,EAAK71C,OAAO8E,KAAKotV,GAAUriV,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CAE9D,OADWgmC,EAAGhmC,IAEV,IAAK,QACD,GAAMqiV,EAAQ7pS,iBAAiBp3C,OAASkhV,EAAQ9pS,iBAAiBp3C,MAqD7Dk2pB,GAAY,OAnDZ,IADA,IAAI6tN,EAAch13B,OAAO8E,KAAKotV,EAAQ7pS,OAC7B93C,EAAI,EAAGA,EAAIyk3B,EAAYrx3B,OAAQ4M,IAGpC,IAFA,IAAIyc,EAAQF,SAAS9sB,OAAO8E,KAAKotV,EAAQ7pS,OAAOv7B,SAASvc,EAAE8G,WAAY,KAAM,IACzE6F,EAAWld,OAAO8E,KAAKotV,EAAQ7pS,MAAMv7B,SAASE,EAAM3V,WAAY,MAC3DgK,EAAI,EAAGA,EAAInE,EAASvZ,OAAQ0d,IAAK,CACtC,IAAIyU,EAAOo1T,GAAU,IAAMssM,IAAUj3hB,KAAKmV,SAASoX,SAASE,EAAM3V,WAAY,KAC1E62U,EAASluV,OAAOmyV,EAAQ9pS,MAAMv7B,SAASE,EAAM3V,WAAY,MAAM,GAAK6F,EAAS4P,SAASzL,EAAEhK,WAAY,MACpGk2d,EAASvte,OAAOkyV,EAAQ7pS,MAAMv7B,SAASE,EAAM3V,WAAY,MAAM,GAAK6F,EAAS4P,SAASzL,EAAEhK,WAAY,MACpG41E,EAAO/vE,EAAS4P,SAASzL,EAAEhK,WAAY,KACvC/B,EAAUy1U,GAAO,IAAMikiB,IAAWl51B,GAuBtC,IAtBa,WAATm3D,GAA8B,YAATA,GAA+B,aAATA,GAAkC,YAATA,GAAmC,KAAXihQ,IAC5F3tV,KAAKgngB,WAAWzxe,EAAM9I,GAEmB,aAAzC9P,EAAS4P,SAASzL,EAAEhK,WAAY,MAAwB42f,GAAMn4e,KAC1Do4T,GACA1lE,GAAY,CAAC1yP,GAAOo4T,EAAOh7T,MAAM,MAEjCq6c,GACAxkN,GAAS,CAACjzP,GAAOy3c,EAAOr6c,MAAM,OAGO,YAAzChW,EAAS4P,SAASzL,EAAEhK,WAAY,MAAuB42f,GAAMn4e,MAC4C,IAArG91B,OAAOkyV,EAAQ7pS,MAAMv7B,SAASE,EAAM3V,WAAY,MAAM,GAAK6F,EAAS4P,SAASzL,EAAEhK,WAAY,MAC3Fye,EAAK2yP,UAAU90P,IAAIi71B,KAGnB941B,EAAK2yP,UAAU/0P,OAAOk71B,MAGe,aAAzC1x2B,EAAS4P,SAASzL,EAAEhK,WAAY,MAAwB42f,GAAMn4e,IAC9Dv1B,KAAK6srB,WAAWpgqB,GAAQugd,GAEiB,YAAzCrwd,EAAS4P,SAASzL,EAAEhK,WAAY,OAAuB42f,GAAMn4e,IAAkC,IAAzBA,EAAKzvB,SAAS1C,OACpF,GAAsB,oBAAX4pe,EAAuB,EAC1Bhte,KAAKkjZ,WAAaljZ,KAAKywW,UACvBzwW,KAAKo03B,uBAAuBr/2B,EAAS4H,EAAS4P,SAASzL,EAAEhK,WAAY,KAAM232B,KAE/E,IAAIiG,EAAgBn/1B,EAAKqE,cAAc,IAAM601B,KAC7CiG,EAAcxr1B,UAAY,GAC1BlpC,KAAK2/gB,YAAY3yC,EAAQ0nZ,EAAejo2B,EAC5C,MAEQ8I,EAAK2yP,UAAUh1P,SAAS471B,MACxB9u3B,KAAKuw3B,YAAW,EAAO9j2B,GAE3B69T,GAAO/0T,EAAKqE,cAAc,IAAM401B,KAG5C,CAMR,MACJ,IAAK,aACL,IAAK,kBAC4B,OAAzBxu3B,KAAK4v3B,kBACL5v3B,KAAK4v3B,gBAAkB,IAE3BhpN,GAAY,EACZ,MACJ,IAAK,iBACD5mqB,KAAKyv3B,2BACL7oN,GAAY,EACZ,MACJ,IAAK,eACD5mqB,KAAK0v3B,yBACL9oN,GAAY,EACZ,MACJ,IAAK,YACGj1U,EAAQ0G,UACRr4V,KAAKozB,IAAIoh2B,EAAOnzX,KAGhBrhgB,KAAKmzB,OAAOqh2B,EAAOnzX,KAEvB,MACJ,IAAK,SACD7qG,GAASx2Z,KAAKmV,QAAS,CAAE,OAAUu4T,GAAWikB,EAAQ/oM,UACtD,MACJ,IAAK,QACD4tQ,GAASx2Z,KAAKmV,QAAS,CAAE,MAASu4T,GAAWikB,EAAQnzU,SACrD,MACJ,IAAK,aAC0B,WAAvBmzU,EAAQ2+hB,YAA2Btw3B,KAAK4v3B,gBAAgBxs3B,OAAS,GACjEpD,KAAKuw3B,YAAW,GAIhC,CACI3pN,IACA5mqB,KAAK2v3B,WAAa,GACd3v3B,KAAK4v3B,gBAAgBxs3B,OAAS,IAC9BpD,KAAK2v3B,WAAa3v3B,KAAK4v3B,iBAE3B5v3B,KAAKm5hB,eACLn5hB,KAAK61b,cACL71b,KAAK6v3B,iBAEb,EACA9/hB,IAAW,CACPb,GAAW,GAAIkgiB,MAChBC,EAAU1+2B,UAAW,aAAS,GACjCo/U,IAAW,CACPjB,GAAS,KACVugiB,EAAU1+2B,UAAW,kBAAc,GACtCo/U,IAAW,CACPjB,MACDugiB,EAAU1+2B,UAAW,oBAAgB,GACxCo/U,IAAW,CACPjB,MACDugiB,EAAU1+2B,UAAW,sBAAkB,GAC1Co/U,IAAW,CACPjB,GAAS,SACVugiB,EAAU1+2B,UAAW,aAAS,GACjCo/U,IAAW,CACPjB,GAAS,SACVugiB,EAAU1+2B,UAAW,cAAU,GAClCo/U,IAAW,CACPjB,GAAS,KACVugiB,EAAU1+2B,UAAW,uBAAmB,GAC3Co/U,IAAW,CACPjB,GAAS,aACVugiB,EAAU1+2B,UAAW,kBAAc,GACtCo/U,IAAW,CACPjB,IAAS,IACVugiB,EAAU1+2B,UAAW,2BAAuB,GAC/Co/U,IAAW,CACPd,GAAQ,CAAC,EAAGkgiB,MACbE,EAAU1+2B,UAAW,iBAAa,GACrCo/U,IAAW,CACP94T,MACDo41B,EAAU1+2B,UAAW,eAAW,GACnCo/U,IAAW,CACP94T,MACDo41B,EAAU1+2B,UAAW,iBAAa,GACrCo/U,IAAW,CACP94T,MACDo41B,EAAU1+2B,UAAW,gBAAY,GACpCo/U,IAAW,CACP94T,MACDo41B,EAAU1+2B,UAAW,eAAW,GACnCo/U,IAAW,CACP94T,MACDo41B,EAAU1+2B,UAAW,iBAAa,GACrC0+2B,EAAYt/hB,IAAW,CACnBT,IACD+/hB,EAEP,CAlvC+B,CAkvC7Bju3B,ICt3CE8kD,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAsBzCuu0B,IAAoC,SAAU7t0B,GAE9C,SAAS6t0B,EAAmBv13B,GACxB,IAAIE,EAAQwnD,EAAOnnD,KAAKK,KAAMZ,IAAUY,KAQxC,OAPAV,EAAMixW,kBAAmB,EACzBjxW,EAAM2zW,sBAAuB,EAC7B3zW,EAAM+zW,cAAgB,CAAE,eAAkB,iBAC1C/zW,EAAM42W,uBAAyB,CAAC,eAAgB,kBAChD52W,EAAMyzW,cAAgB,KACtBzzW,EAAM62W,iBAAkB,EACxB72W,EAAMwxW,QAAU,GACTxxW,CACX,CAUA,OArBA4mD,IAAUyu0B,EAAoB7t0B,GAY9B6t0B,EAAmBhk3B,UAAUyJ,OAAS,WAClC,KAAMpa,KAAKmV,UAAYnV,KAAKuwW,kBAAqBvwW,KAAK2rV,aAAgB3rV,KAAKwwW,oBAKvE,OAAO13K,GAAAA,cAAoB,MAAO94L,KAAKgyW,uBAAwB,GAAG54V,OAAOpZ,KAAKZ,MAAM0G,SAAU9F,KAAK8wW,UAJnGhqT,EAAOn2C,UAAUyJ,OAAOza,KAAKK,MAC7BA,KAAKuwW,kBAAmB,CAKhC,EACOokhB,CACX,CAvBwC,CAuBtCtF,KAEF/5gB,GAAYq/gB,IAAoB,CAACzkhB,GAAep3K,GAAAA,YC/ChD,IAAI5yI,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAazC2pS,IAA0C,SAAUxoJ,EAAYl/L,EAAQiE,EAAKkkB,GAC7E,IAA2HhvB,EAAvH6e,EAAIld,UAAUC,OAAQkgH,EAAIjjG,EAAI,EAAIhY,EAAkB,OAATmoB,EAAgBA,EAAO/wB,OAAOk+B,yBAAyBt1B,EAAQiE,GAAOkkB,EACrH,GAAuB,kBAAZuN,SAAoD,oBAArBA,QAAQiyT,SAAyB1sO,EAAIvlF,QAAQiyT,SAASzoJ,EAAYl/L,EAAQiE,EAAKkkB,QACpH,IAAK,IAAIrkB,EAAIo7L,EAAWnkM,OAAS,EAAG+I,GAAK,EAAGA,KAAS3K,EAAI+lM,EAAWp7L,MAAIm3G,GAAKjjG,EAAI,EAAI7e,EAAE8hH,GAAKjjG,EAAI,EAAI7e,EAAE6G,EAAQiE,EAAKg3G,GAAK9hH,EAAE6G,EAAQiE,KAASg3G,GAChJ,OAAOjjG,EAAI,GAAKijG,GAAK7jH,OAAO4c,eAAehU,EAAQiE,EAAKg3G,GAAIA,CAChE,EAQIsxwB,IAAU,QACVtG,IAAa,eAEbE,IAAc,YACdqG,IAAW,WAEX59V,IAAW,SACXK,IAAe,aACfj2B,IAAU,QACVmC,IAAa,WACb0tB,IAAc,YACdmH,IAAa,WACbt1B,IAAY,YACZQ,IAAY,UACZuxX,IAAW,SACXC,IAAe,aACfC,IAAiB,eACjBC,IAAiB,eACjBC,IAAW,aACXC,IAAgB,cAChBC,IAAW,aACXC,IAAgB,cAChBC,IAAe,aACfC,IAAe,kBACf7yX,IAAc,iBACd8yX,IAAa,gBACbC,IAAe,kBAIfC,IAAe,aAEfhkW,IAAc,YAGdikW,IAAW,iBACX5+V,IAAe,aACf6+V,IAAY,kBACZC,IAAa,mBACbC,IAAc,sBACdC,IAAW,cACXC,IAAgB,WAChBC,IAA0B,wBAI1BC,IAAmC,SAAUpv0B,GAE7C,SAASov0B,IACL,OAAkB,OAAXpv0B,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAUA,OAbAkmD,IAAUgw0B,EAAmBpv0B,GAI7BipS,IAAW,CACPjB,GAAS,gBACVoniB,EAAkBvl3B,UAAW,cAAU,GAC1Co/U,IAAW,CACPjB,GAAS,MACVoniB,EAAkBvl3B,UAAW,gBAAY,GAC5Co/U,IAAW,CACPjB,GAAS,SACVoniB,EAAkBvl3B,UAAW,cAAU,GACnCul3B,CACX,CAfuC,CAerC/hiB,IAKEgiiB,IAAsC,SAAUrv0B,GAEhD,SAASqv0B,IACL,OAAkB,OAAXrv0B,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAOA,OAVAkmD,IAAUiw0B,EAAsBrv0B,GAIhCipS,IAAW,CACPd,GAAQ,CAAEj7I,OAAQ,cAAe//F,SAAU,IAAKi8O,OAAQ,QAAUgmiB,MACnEC,EAAqBxl3B,UAAW,gBAAY,GAC/Co/U,IAAW,CACPd,GAAQ,CAAEj7I,OAAQ,eAAgB//F,SAAU,IAAKi8O,OAAQ,QAAUgmiB,MACpEC,EAAqBxl3B,UAAW,YAAQ,GACpCwl3B,CACX,CAZ0C,CAYxChiiB,IAKEgxB,IAAwB,SAAUr+T,GAElC,SAASq+T,IACL,OAAkB,OAAXr+T,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAUA,OAbAkmD,IAAUi/T,EAAQr+T,GAIlBipS,IAAW,CACPjB,GAAS,KACVq2B,EAAOx0W,UAAW,YAAQ,GAC7Bo/U,IAAW,CACPjB,GAAS,KACVq2B,EAAOx0W,UAAW,eAAW,GAChCo/U,IAAW,CACPjB,GAAS,SACVq2B,EAAOx0W,UAAW,oBAAgB,GAC9Bw0W,CACX,CAf4B,CAe1BhxB,IAKEiiiB,IAAyB,SAAUtv0B,GAEnC,SAASsv0B,IACL,OAAkB,OAAXtv0B,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAyBA,OA5BAkmD,IAAUkw0B,EAAStv0B,GAInBipS,IAAW,CACPd,GAAQ,CAAC,EAAGk2B,MACbixgB,EAAQzl3B,UAAW,cAAU,GAChCo/U,IAAW,CACPjB,GAAS,OACVsniB,EAAQzl3B,UAAW,sBAAkB,GACxCo/U,IAAW,CACPjB,GAAS,KACVsniB,EAAQzl3B,UAAW,eAAW,GACjCo/U,IAAW,CACPjB,GAAS,KACVsniB,EAAQzl3B,UAAW,gBAAY,GAClCo/U,IAAW,CACPjB,IAAS,IACVsniB,EAAQzl3B,UAAW,gBAAY,GAClCo/U,IAAW,CACPjB,IAAS,IACVsniB,EAAQzl3B,UAAW,eAAW,GACjCo/U,IAAW,CACPjB,MACDsniB,EAAQzl3B,UAAW,UAAM,GAC5Bo/U,IAAW,CACPjB,IAAU,IACXsniB,EAAQzl3B,UAAW,gBAAY,GAC3Byl3B,CACX,CA9B6B,CA8B3BjiiB,IAaEh6S,IAAqB,SAAU2M,GAQ/B,SAAS3M,EAAIr7B,EAAS3J,GAClB,IAAI7V,EAAQwnD,EAAOnnD,KAAKK,KAAM8e,EAAS3J,IAAYnV,KA0BnD,OAzBAV,EAAM+mT,KAAO,CAAC,EACd/mT,EAAMi+R,KAAO,CAAC,EACdj+R,EAAMsmc,UAAY,EAClBtmc,EAAMwV,MAAQ,QACdxV,EAAM+yZ,cAAe,EACrB/yZ,EAAMowD,UAAY,EAClBpwD,EAAMmvgB,OAAQ,EACdnvgB,EAAM+23B,aAAc,EACpB/23B,EAAMg33B,eAAiB,GACvBh33B,EAAMy5hB,cAAgBz5hB,EAAMi33B,uBAAuB123B,KAAKP,GAIxDA,EAAMslW,WAAa,CACftjD,IAAK,MACL+iG,KAAM,OACNjrW,IAAK,MACLssO,MAAO,QACPznJ,MAAO,QACPgW,OAAQ,SACRkwQ,SAAU,YACVC,UAAW,aACXF,OAAQ,UACRD,SAAU,aAEP3kZ,CACX,CA0qEA,OA7sEA4mD,IAAU/L,EAAK2M,GAyCf3M,EAAIxpC,UAAUymI,QAAU,WAWpB,IAVIp3I,KAAKywW,SAAWzwW,KAAKkjZ,YACrBljZ,KAAKu6V,gBAEJmzK,GAAM1tgB,KAAKw23B,SACZx23B,KAAKw23B,MAAMp/uB,UACXp3I,KAAKw23B,MAAQ,MAEjBx23B,KAAKwqc,eACLxqc,KAAKmV,QAAQ4f,gBAAgB,iBAC7B/0B,KAAKy23B,qBACAz23B,KAAK46mB,WAKL,CACD,IAAIptF,EAAShjM,GAAO,aAAyBgkiB,IAAaxu3B,KAAKmV,SAC/DnV,KAAKmV,QAAQ+yQ,UAAU/0P,OAAOmkgB,KACzB5pB,GAAM8f,KACPA,EAAOtkf,UAAYlpC,KAAKsrW,IAEhC,MAVI,KAAOtrW,KAAKmV,QAAQm1B,mBAChBnX,GAAOnzB,KAAKmV,QAAQm1B,mBAyB5B,GAfItqC,KAAK023B,SACL123B,KAAK023B,OAAS,MAElB123B,KAAKmy3B,OAAS,KACdny3B,KAAKwthB,OAAS,KACdxthB,KAAK+mgB,QAAU,KACf/mgB,KAAK223B,OAAS,KACd323B,KAAK423B,MAAQ,KACb523B,KAAK623B,SAAW,KAChB723B,KAAK+6hB,OAAS,KACd/6hB,KAAK823B,QAAU,KACf923B,KAAK+U,QAAU,KACf/U,KAAK+23B,SAAW,KAChB/23B,KAAKgM,aAAe,KACpBhM,KAAKg33B,cAAgB,GACjBh33B,KAAKs23B,gBAAkBt23B,KAAKs23B,eAAelz3B,OAAS,EAAG,CACvD,IAAK,IAAI+I,EAAI,EAAGA,EAAInM,KAAKs23B,eAAelz3B,OAAQ+I,IAC5CnM,KAAKs23B,eAAenq3B,GAAGirI,UACvBp3I,KAAKs23B,eAAenq3B,GAAK,KAE7BnM,KAAKs23B,eAAiB,EAC1B,CACAxv0B,EAAOn2C,UAAUymI,QAAQz3I,KAAKK,MAC9BA,KAAKsgS,QAAQ,YACjB,EAMAnmP,EAAIxpC,UAAUkoV,QAAU,WAChB74V,KAAKywW,SACLzwW,KAAKu6V,gBAETzzS,EAAOn2C,UAAUkoV,QAAQl5V,KAAKK,MAC1BA,KAAKywW,SACLzwW,KAAKs6V,sBAEb,EAOAngT,EAAIxpC,UAAUmoV,UAAY,WACtB,IAAI7lR,EAASwiB,GAAQz1F,KAAKmV,QAAS,IAAMq52B,KACzCxu3B,KAAKo5H,UAAY,EACjBp5H,KAAKm+jB,UAAW,EAChBn+jB,KAAKi33B,SAAU,EACfj33B,KAAKq6gB,YAAa,EAClBr6gB,KAAKk33B,WAAY,EACjBl33B,KAAKm33B,eAAiB,GACtBn33B,KAAKwv3B,YAAc,GACfxv3B,KAAKup0B,mBACLvp0B,KAAKg/V,SAAY0uK,GAAM1tgB,KAAKg/V,UAA4B,IAAMh/V,KAAKmV,QAAQghB,GAAnB,KAAqCm41B,IAArDtu3B,KAAKg/V,UAE5C0uK,GAAMz6b,KACPA,EAAO4iN,cAAc3N,UAAU90P,IAAIyh2B,KACnC703B,KAAKm+jB,UAAW,GAEpB,IAAIz5jB,EAAOuiV,GAAQ1qT,KAAK73B,KACpBi1B,EAAgB,SAATj1B,EAAmB,OAAmB,SAATA,EAAmB,SAAqB,WAATA,EAAqB,WAAa,GACzG8xZ,GAASx2Z,KAAKmV,QAAS,CAAE,MAASu4T,GAAW1tU,KAAKwe,OAAQ,OAAUkvT,GAAW1tU,KAAK4oJ,UACpF5oJ,KAAK4+Y,YAAY5+Y,KAAKmV,QAASnV,KAAK4vW,UAAU,GAC9CtkW,GAAWtL,KAAKmV,QAAS,CAAE,gBAAiB,UAC5CnV,KAAK4+Y,YAAY5+Y,KAAKmV,QAASwkB,GAAK,GACpC35B,KAAKo33B,0BACT,EAOAj90B,EAAIxpC,UAAUyJ,OAAS,WACnBpa,KAAK023B,OAAS123B,KAAKc,cAAc,OAAQ,CAAEC,UAAWwigB,IAAY,IAAMyxX,IAAgBvriB,MAAO,CAAE30U,MAAO9U,KAAK8U,SAC7G9U,KAAKmgT,MAAQngT,KAAKmV,QAAQghB,GAAG/yB,OAAS,EAAK,IAAMpD,KAAKmV,QAAQghB,GAAM42U,KACpE/sW,KAAKq33B,kBACLr33B,KAAK+jW,aACL/jW,KAAKq6gB,YAAa,CACtB,EACAlge,EAAIxpC,UAAU0m3B,gBAAkB,WAC5B,IAAI1tiB,EAAM3pV,KAAKmV,QAMf,GALAnV,KAAK8nD,MAAMzhD,SAAQ,SAAUkvB,EAAM9I,GAC3Bihf,GAAMn4e,EAAKY,MAAQu3e,GAAMn4e,EAAK02T,gBAC9B12T,EAAK02T,cAAc,CAAE91T,GAAI6/1B,IAAgBvp2B,EAAM3V,aAAc,EAErE,IACI9W,KAAK8nD,MAAM1kD,OAAS,GAA6B,IAAxBumV,EAAI7jV,SAAS1C,OACtCumV,EAAIj4T,YAAY1xB,KAAKc,cAAc,MAAO,CAAEC,UAAWyt3B,OACvDxu3B,KAAKs33B,eAAet33B,KAAKu33B,gBAAiBv33B,KAAKc,cAAc,MAAO,CAAEC,UAAWut3B,OACjFtu3B,KAAK46mB,YAAa,OAEjB,GAAI56mB,KAAKmV,QAAQrP,SAAS1C,OAAS,EAAG,CACvCpD,KAAK46mB,YAAa,EAClBjxR,EAAIzhE,UAAU90P,IAAIkkgB,KAClB,IAAI5oW,EAASi7J,EAAI/vT,cAAc,IAAM001B,KACjC5/rB,GAAmC,WAAzB1uL,KAAKu33B,iBACfv33B,KAAKs33B,eAAet33B,KAAKu33B,gBAAiB7osB,EAElD,CACA,IAAKg/U,GAAMljL,GAAO,IAAM8jiB,IAAYtu3B,KAAKmV,YAAcu4f,GAAMljL,GAAO,IAAMgkiB,IAAaxu3B,KAAKmV,UAAW,CAOnG,GANAnV,KAAKw33B,eACLx33B,KAAK+mgB,QAAUv8K,GAAO,IAAM8jiB,IAAa,KAAOiH,IAAcv13B,KAAKmV,SAC9Du4f,GAAM1tgB,KAAK+mgB,UACZl1K,GAAa7xV,KAAK+mgB,QAAS,CAAEx2f,SAAU,gBAE3CvQ,KAAK0siB,gBACD/hN,GAAU,IAAM+3K,IAAa1igB,KAAKmV,SAAS/R,OAAS,EAAG,CACvDpD,KAAK+mgB,QAAUv8K,GAAO,IAAM8jiB,IAAa,KAAOiH,IAAcv13B,KAAKmV,SACnEnV,KAAK823B,QAAU923B,KAAKc,cAAc,MAAO,CAAEC,UAAWo03B,IAAgB,IAAM98V,IAAtB88V,cACtD,IAAIsC,EAASjtiB,GAAO,IAAMxqV,KAAK033B,YAAa133B,KAAK+mgB,SAC5C2G,GAAM+pX,GAIPz33B,KAAK+mgB,QAAQpye,aAAa30B,KAAK823B,QAAS923B,KAAK+mgB,QAAQrye,YAHrD+i2B,EAAO9i2B,aAAa30B,KAAK823B,QAASW,EAAO/i2B,YAK7C10B,KAAKyngB,kBAAiB,GACtBzngB,KAAKwqV,OAAOxqV,KAAKq3b,aACrB,CACAr3b,KAAKgye,OAAOhye,KAAKq4V,UACrB,CACJ,EACAl+S,EAAIxpC,UAAU6m3B,aAAe,WACzB,IAAIl43B,EAAQU,KACR233B,EAAW333B,KAAKu33B,gBAChBK,EAAW,GAGf,GAFA533B,KAAKmy3B,OAASny3B,KAAK633B,eACnB733B,KAAK833B,mBACA933B,KAAK46mB,WAGL,CACG56mB,KAAKmV,QAAQrP,SAAS1C,OAAS,GAAKpD,KAAKmV,QAAQrP,SAAS,GAAGoiR,UAAUh1P,SAASo71B,MAChFtu3B,KAAKisV,cAAc,CAAEsriB,gBAAiB,WAAY,GAItD,IAFA,IAAI3s2B,EAAQ5qB,KAAKmy3B,OAAOrs3B,SAAS1C,OAC7B203B,EAAW,GACN5r3B,EAAI,EAAGA,EAAIye,EAAOze,IACvB4r3B,EAAS3r3B,KAAKpM,KAAKmy3B,OAAOrs3B,SAASyvB,KAAKppB,IAE5C,GAAIye,EAAQ,EAAG,CACX,IAAIot2B,EAAah43B,KAAKc,cAAc,MAAO,CAAEC,UA9V7C,YA+VAf,KAAKmy3B,OAAOzg2B,YAAYsm2B,GACxBD,EAAS1x3B,SAAQ,SAAUkvB,EAAM9I,GAC7BntB,EAAMowD,UAAYjjC,EAClB,IAAI2e,EAAO,CACPrqC,UAAWk2hB,IAAU9ggB,GAAI8ggB,IAAW33hB,EAAM6gT,MAAQ,IAAM1zR,GAExD+3f,EAAMllhB,EAAMwB,cAAc,OAAQ,CAClCC,UAAWm03B,IAAUzriB,MAAO,CAAE,KAAQ,kBACvCt9S,UACC2/Z,EAAOxsc,EAAMwB,cAAc,MAAO,CAClCC,UAAWs03B,IAAens1B,UAAWs7e,EAAMllhB,EAAMo33B,OAAOvq1B,YACzDA,UACC7P,EAAOh9B,EAAMwB,cAAc,MAAO,CAClCC,UAAWq03B,IAAUls1B,UAAW4ia,EAChCriH,MAAO,CAAExoV,KAAM,MAAOgE,SAAU,KAAM,gBAAiB,QAAS,gBAAiBup3B,IAAclv3B,EAAM6gT,MAAQ,IAAM1zR,EAAO,gBAAiB,WAE/I6P,EAAK1C,cAAc,IAAMs71B,KAAUxj2B,YAAY6D,GAC/Cyi2B,EAAWtm2B,YAAYpyB,EAAMwB,cAAc,MAAOsqC,IAClDu/S,GAAU,IAAMssM,IAAU+gW,GAAYvr2B,GAAOiF,YAAY4K,EAC7D,GACJ,CACJ,MAlCIs71B,EAAW533B,KAAKi43B,YAAYj43B,KAAK8nD,MAAO,GAmC5C9nD,KAAKw23B,MAAQ,IAAI19V,IAAQ,CACrBt6gB,MAAqB,SAAbm52B,GAAoC,UAAbA,EAAwB,OAAS,OAChE/uuB,OAAsB,SAAb+uuB,GAAoC,UAAbA,EAAwB,OAAS,OACjEr9V,aAAct6hB,KAAKs6hB,aACnBxye,MAA4B,IAApB8v0B,EAASx03B,OAAgBw03B,EAAW,GAC5CrrU,QAASvsjB,KAAK8qZ,aAAajrZ,KAAKG,MAChCsyhB,WAAYtyhB,KAAKsyhB,WACjBvlG,oBAAqB/sb,KAAK+sb,oBAC1Bn9E,SAAU5vW,KAAK4vW,WAEnB5vW,KAAKw23B,MAAMt+hB,kBAAmB,EAC9Bl4V,KAAKw23B,MAAM113B,cAAgBd,KAAKc,cAChCd,KAAKw23B,MAAM99hB,SAAS14V,KAAKmy3B,QACzB7m3B,GAAWtL,KAAKmy3B,OAAQ,CAAElx3B,KAAM,YAC3BysgB,GAAM1tgB,KAAKmV,QAAQmd,aAAa,eAI3Bo7e,GAAM1tgB,KAAKmV,QAAQmd,aAAa,sBACtCtyB,KAAKmy3B,OAAOn91B,aAAa,kBAAmBh1B,KAAKmV,QAAQmd,aAAa,oBACtEtyB,KAAKmV,QAAQ4f,gBAAgB,qBAL7B/0B,KAAKmy3B,OAAOn91B,aAAa,aAAch1B,KAAKmV,QAAQmd,aAAa,eACjEtyB,KAAKmV,QAAQ4f,gBAAgB,eAMjC/0B,KAAKk43B,eAAel43B,KAAKm43B,iBACzB,IAAIC,EAAgBp43B,KAAKw23B,MAAMrh3B,QAAQykB,cAAc,IAAM271B,KACtD7nX,GAAM0qX,KACH1qX,GAAM0qX,EAAcji2B,KAA4B,KAArBii2B,EAAcji2B,MACzCii2B,EAAcji2B,GAAKn2B,KAAKmV,QAAQghB,GAAbn2B,oBAG/B,EACAm6C,EAAIxpC,UAAU+7hB,cAAgB,WAC1B1siB,KAAKwthB,OAAShjM,GAAO,IAAMgkiB,IAAaxu3B,KAAKmV,SAC7C,IAAIkj3B,EAAU1tiB,GAAU,IAAM+3K,IAAa1igB,KAAKmV,SAChD,GAAInV,KAAK46mB,WAAY,CACjB56mB,KAAKsrW,IAAOtrW,KAAKwthB,OAAO1nhB,SAAS1C,OAAS,EAAKpD,KAAKwthB,OAAOtkf,UAAY,GAEvE,IADA,IAAI4pQ,EAAW9yS,KAAKwthB,OAAO1nhB,SAClBqG,EAAI,EAAGA,EAAIks3B,EAAQj13B,OAAQ+I,IAC5B2mS,EAAS1vS,OAAS,GAAK+I,IACvBq8Q,GAAS,CAACsqB,EAASv9Q,KAAKppB,IAAK8qhB,KAC7B3rhB,GAAWwnS,EAASv9Q,KAAKppB,GAAI,CAAE,KAAQ,WAAY,kBAAmB8qhB,IAAWj3hB,KAAKmgT,MAAQ,IAAMh0S,IACpG2mS,EAASv9Q,KAAKppB,GAAGgqB,GAAKq41B,IAAcxu3B,KAAKmgT,MAAQ,IAAMh0S,EAGnE,CACJ,EACAguC,EAAIxpC,UAAU2n3B,cAAgB,WAC1Bt43B,KAAKq33B,kBACA3pX,GAAM1tgB,KAAKwthB,UACZxthB,KAAKqwhB,YAAc,IAAInqL,GAAMlmW,KAAKwthB,OAAQ,CAAEyE,MAAOjyhB,KAAKkyhB,aAAaryhB,KAAKG,QAElF,EACAm6C,EAAIxpC,UAAUsn3B,YAAc,SAAUnw0B,EAAOr7B,GACzC,IAAIntB,EAAQU,KACR+mgB,EAAUp8K,GAAU,kBAAoB+3K,IAAa1igB,KAAKmV,SAC1Doj3B,EAAQv43B,KAAK0vD,UACjB,IAAK1vD,KAAKw43B,WAAazxX,EAAQ3jgB,OAAS,EAAG,CACvC,IAAIq13B,EAAW,GACf1xX,EAAQ1ggB,SAAQ,SAAUkvB,GACtBkj2B,EAASrs3B,KAAK9M,EAAMo53B,gBAAgBnj2B,EAAKY,IAC7C,IACAoi2B,EAAQ303B,KAAKqpC,IAAI9zB,MAAMvV,KAAM603B,EACjC,CACA,IACIE,EADAC,EAAS,GAETC,EAAc,GA4FlB,OA1FA/w0B,EAAMzhD,SAAQ,SAAUkvB,EAAMppB,GAC1B,IAAI+qC,EAAOw2d,GAAMn4e,EAAKm5J,SAAWg/U,GAAMn4e,EAAKm5J,OAAO27Q,cAAiB,GAAK90a,EAAKm5J,OAAO27Q,aACjF1wa,EAAO+ze,GAAMn4e,EAAKm5J,SAAWg/U,GAAMn4e,EAAKm5J,OAAOu9P,SAAY,GAAK12Z,EAAKm5J,OAAOu9P,QAChF,GAAKyhF,GAAMn4e,EAAKg4Z,kBAAqBmgF,GAAMn4e,EAAKm5J,SAAWg/U,GAAMn4e,EAAKm5J,OAAOzuJ,OAC3C,IAA5B1K,EAAKm5J,OAAOzuJ,KAAK78B,QAA2B,KAARu2B,GACtCk/1B,EAAYzs3B,KAAKD,OAFrB,CAKA,IAIImtb,EAJAkrF,EAAMjvf,EAAKg4Z,gBAAkBh4Z,EAAKm5J,OAAOzuJ,KAC1B,kBAARukf,GAAoBllhB,EAAMytb,sBACjCy3F,EAAMp2K,GAAmBxiU,SAAS44e,IAGlCllhB,EAAMk53B,YAAc9qX,GAAMpugB,EAAMw53B,OAAwB,KAAfx53B,EAAMw53B,MAC/Cx/b,EAAY/sa,SAASjtB,EAAMw53B,KAAK5x2B,UAAU5nB,EAAMw53B,KAAK3h1B,YAAY,KAAO,GAAI,IAC5E73C,EAAMw53B,KAAO,IAGbx/b,EAAY7sa,EAAQtgB,EAExB7M,EAAMowD,UAAiC,IAAnBq3c,EAAQ3jgB,OAAgB+I,EAAM7M,EAAMk53B,UAAcl/b,EAAci/b,EAAQ,EAAIps3B,EAChG,IAAIyC,EAAY2mB,EAAK3mB,SAAY,IAAMsihB,IAAc,IAAMQ,IAAc,GACrEjha,GAA2B,IAAjBl7F,EAAKs6Q,QAAqB,IAAMwoP,IAAa,GAC3DsgW,EAAar53B,EAAMwB,cAAc,MAAO,CAAEC,UAAWm03B,IAAUzriB,MAAO,CAAE,KAAQ,kBAChF,IAAIsviB,EAAUv0W,aAAe/khB,OAAU+khB,EAAIr4e,UAAYq4e,EACnDw0W,GAAatrX,GAAMqrX,IAAoB,KAAVA,EAC5BrrX,GAAM8W,EAAIp8e,SAIX9oC,EAAM253B,kBAAkBN,EAAYn0W,EAAKr4gB,GAHzCws3B,EAAWjn2B,YAAY8yf,GAM3B,IAAIvjQ,EAAO3hR,EAAMwB,cAAc,OAAQ,CACnCC,UAAWwigB,IAAY,IAAM+xX,IAAe,IAAMR,IAAW,IAAM590B,EAAM,IAAMvd,IAE/Eu/1B,EAAQ553B,EAAMwB,cAAc,MAAO,CAAEC,UAAWs03B,MACpD6D,EAAMxn2B,YAAYin2B,GACL,KAARn0W,QAAsBnhhB,IAARmhhB,GAA8B,KAAR7qf,GACxB,SAARud,GAA0B,QAARA,EACnBgi1B,EAAMvk2B,aAAassP,EAAMi4mB,EAAM5u1B,mBAG/B4u1B,EAAMxn2B,YAAYuvP,GAGtB3hR,EAAM+23B,aAAc,IAGH,KAAR181B,EAAcg/1B,EAAa13mB,KACvBA,IACTqpE,GAAOquiB,GACPO,EAAMxn2B,YAAYuvP,GAClB3hR,EAAM+23B,aAAc,GAG5B,IAAIpx3B,EAAWyogB,GAAMn4e,EAAKtwB,UAAY,KAAOswB,EAAKtwB,SAAS6R,WACvDqi3B,EAAa5j2B,EAAK3mB,SAAY,CAAC,EAAI,CAAE3J,SAAUA,EAAU,gBAAiBA,EAAUhE,KAAM,MAAO,gBAAiB,QAAS,gBAAiB,SAChJi43B,EAAMxn2B,YAAYpyB,EAAMo33B,OAAOvz1B,WAAU,IACzC,IAAI7G,EAAOh9B,EAAMwB,cAAc,MAAO,CAAEC,UAAWq03B,IAAU3riB,MAAO0viB,IACpE781B,EAAK5K,YAAYwn2B,GACb553B,EAAM633B,iBAAmB,GACzB733B,EAAM633B,eAAe/q3B,KAAK6qhB,IAAW33hB,EAAM6gT,MAAQ,IAAM7gT,EAAMowD,WAG/DpwD,EAAM633B,eAAe3h2B,OAAQ/I,EAAQtgB,EAAI,EAAG8qhB,IAAW33hB,EAAM6gT,MAAQ,IAAM7gT,EAAMowD,WAErF,IAGI0p0B,EAAQ,CAAE9ie,eAHA,CACVngY,GAAI8ggB,IAAW33hB,EAAM6gT,MAAQ,IAAM7gT,EAAMowD,UAAW,UAAWn6B,EAAKY,IAEjCoN,SAAUjH,GACjD881B,EAAMxphB,eAA+BvsW,IAAlBkyB,EAAKq6U,SAA0Br6U,EAAKq6U,SAAW,KAAO,IAAMhhW,EAAW,IAAM6hH,EAAS,KACzF,KAAR92F,EAAc,MAAQud,EAAM,IAAM,KAAS8h1B,EAAuB,GAAXlE,KACnD,QAAR590B,GAAyB,WAARA,GACjB53C,EAAM6V,QAAQ+yQ,UAAU90P,IAAI,mBAEhCwl2B,EAAOxs3B,KAAKgt3B,GACZjt3B,GAtEA,CAuEJ,IACKnM,KAAKyugB,OACNoqX,EAAYxy3B,SAAQ,SAAUgz3B,GAC1B/53B,EAAMwoD,MAAMtyB,OAAO6j2B,EAAiB,EACxC,IAEAr53B,KAAKq23B,YACLr23B,KAAKmV,QAAQ+yQ,UAAU90P,IAAI2h2B,KAG3B/03B,KAAKmV,QAAQ+yQ,UAAU/0P,OAAO4h2B,KAE3B6D,CACX,EACAz+0B,EAAIxpC,UAAU2o3B,kBAAoB,WAC9B,IAAIC,EAAYv53B,KAAK633B,eACrB,GAAI0B,EAAW,CACX,IAAI3B,EAAWjtiB,GAAU,IAAM+3K,IAAc,IAAMc,IAAY+1X,GAC/D,GAAG3o3B,MAAMjR,KAAKi43B,GAAUvx3B,SAAQ,SAAU6J,GAAQ,OAAOA,EAAKg4Q,UAAU/0P,OAAOqwe,IAAa,IAC5F,GAAG5yf,MAAMjR,KAAKi43B,GAAUvx3B,SAAQ,SAAU6J,GAAQ,OAAOA,EAAKo6B,kBAAkBtV,aAAa,gBAAiB,QAAU,GAC5H,CACJ,EACAmlB,EAAIxpC,UAAU6o3B,mBAAqB,SAAU7viB,GACzC3pV,KAAK423B,MAAQpsiB,GAAO,IAAMgriB,IAAYx13B,KAAKmV,SAC3C,IAAIkrhB,EAAU71M,GAAO,aAAcxqV,KAAKmV,SACpCqnhB,EAAWhyM,GAAO,IAAM+qiB,IAAcv13B,KAAKmV,SAC3CmsI,EAAYk7Y,EAASl7Y,UACrBm4uB,GAAa,EAYjB,QAXKz53B,KAAKo7R,eAAkBp7R,KAAKq4V,WAAegoM,EAAQ19O,WAAa09O,EAAQlwR,YAAeqsR,EAAS75O,aAC5F3iT,KAAKq4V,WAAagoM,EAAQ19O,WAAa65O,EAASrsR,cAGhDnwQ,KAAKo7R,cAAiBilQ,EAAQz9O,UAAYthK,EAAUshK,UAAYthK,EAAUyzI,gBAF/E0kmB,GAAa,GAKbA,IACA9viB,EAAIzhE,UAAU90P,IAAIqi2B,KAClBz13B,KAAK423B,MAAMji2B,aAAag1T,EAAKgB,GAAU,IAAM8qiB,IAAcz13B,KAAK423B,OAAO,MAEpE,CACX,EACAz80B,EAAIxpC,UAAUw5rB,aAAe,SAAU9hsB,GACnC,IAAIqx3B,EAASrx3B,EAAOuxB,cAAc,qBAC7B8ze,GAAMgsX,KACPA,EAAOvt1B,UAAY,GACnB9jC,EAAOuxB,cAAc,IAAMw71B,KAAUltmB,UAAU/0P,OAAO,aAE1DnzB,KAAK223B,OAAShsiB,GAAU,IAAM4qiB,IAAe,KAAO7yX,IAAa1igB,KAAKmy3B,QACtE,IAAI7wuB,EAAYthJ,KAAK223B,OAAO323B,KAAK223B,OAAOvz3B,OAAS,GACjD,GAA2B,IAAvBpD,KAAK223B,OAAOvz3B,OAAc,CAK1B,GAJAiF,EAAO6/Q,UAAU/0P,OAAOsi2B,KACxBpt3B,EAAO0sB,gBAAgB,SACvB/0B,KAAK+mgB,QAAQr1e,YAAYrpB,GACzBrI,KAAK253B,SAAWtx3B,EAAO8tB,GACnBn2B,KAAKw53B,mBAAmBl4uB,GAAY,CACpC,IAAIs4uB,EAAU553B,KAAK+mgB,QAAQzlX,UAAU6uW,uBACrCnwf,KAAKw53B,mBAAmBI,EAC5B,CACA553B,KAAKi33B,SAAU,CACnB,CACA,OAAOtsiB,GAAU,IAAM+3K,IAAa1igB,KAAK+mgB,SAAS3jgB,OAAS,CAC/D,EACA+2C,EAAIxpC,UAAUun3B,eAAiB,SAAUnp2B,GACrC,IAAIihgB,EAAMxlM,GAAO,IAAM8jiB,IAAYtu3B,KAAKmV,UAC5B,IAAR4Z,EACAihgB,EAAI9nQ,UAAU90P,IAAI6h2B,KAGlBjlW,EAAI9nQ,UAAU/0P,OAAO8h2B,KAEzBj13B,KAAKw23B,MAAM54V,kBACX59hB,KAAKu23B,wBACT,EACAp80B,EAAIxpC,UAAUkp3B,iBAAmB,SAAU7p2B,EAAM05B,GAE9B1pD,KAAKq4V,WAAar4V,KAAKmV,QAAQ+yQ,UAAUh1P,SAASmue,KAuBjE,OAtBIrhgB,KAAKi33B,SAAWjn2B,GAAQ05B,EACe,gBAAnC1pD,KAAKmvJ,UAAU18E,SAASuhI,OACZ,CACRtvM,KAAM,eACNuvG,SAAUj0G,KAAKmvJ,UAAU18E,SAASwhC,SAAUu9O,eAAgBxxV,KAAKmvJ,UAAU18E,SAASy9Q,QAI5E,KAImB,iBAA/BlwV,KAAKmvJ,UAAU54I,KAAKy9L,OACR,CACRtvM,KAAM,gBACNuvG,SAAUj0G,KAAKmvJ,UAAU54I,KAAK09F,SAAUu9O,eAAgBxxV,KAAKmvJ,UAAU54I,KAAK25U,QAIpE,IAIxB,EACA/1S,EAAIxpC,UAAUmp3B,qBAAuB,SAAUC,EAAQ3gwB,GACnD,IAAI95H,EAAQU,KACRg63B,EAAah63B,KAAK653B,iBAAiBzgwB,EAAWp5H,KAAKq3b,cAClDq2E,GAAMssX,GAmBPD,EAAO7xmB,UAAU/0P,OAAOqwe,MAlBxBw2X,EAAW7oiB,MAAQ,WACfqlE,GAASuje,EAAQ,CAAE,SAAY,aAC/BA,EAAO7xmB,UAAU90P,IAAIsi2B,KACrBqE,EAAO7xmB,UAAU90P,IAAI,SACzB,EACA4m2B,EAAW5g1B,IAAM,WACb2g1B,EAAO5z3B,MAAMi+J,QAAU,OACvB21tB,EAAO7xmB,UAAU/0P,OAAOqwe,KACxBu2X,EAAO7xmB,UAAU/0P,OAAOui2B,KACxBqE,EAAO7xmB,UAAU/0P,OAAO,UACxBqjY,GAASuje,EAAQ,CAAE,QAAW,GAAI,SAAY,KACb,IAA7BA,EAAO5w1B,WAAW/lC,QAAiB9D,EAAMs7mB,YACzCtwR,GAAOyviB,EAEf,EACA,IAAI9piB,GAAU+piB,GAAY/3kB,QAAQ83kB,GAK1C,EACA5/0B,EAAIxpC,UAAUsp3B,iBAAmB,SAAU9j2B,EAAIv0B,GAC3C,IAEIm43B,EAFAz63B,EAAQU,KACRo5H,EAAYp5H,KAAKo5H,UAEA,GAAGxoH,MAAMjR,KAAKK,KAAKmV,QAAQykB,cAAc,IAAM401B,KAAa1o3B,UAClEO,SAAQ,SAAUkvB,GACzBA,EAAKY,KAAO72B,EAAM463B,gBAClBH,EAASxk2B,EAEjB,IACA,IAAIqk2B,EAAU553B,KAAK223B,OAAOv9vB,GACtB+gwB,EAASn63B,KAAKo63B,cAAcp63B,KAAKwthB,OAAQxthB,KAAKq63B,SAASlk2B,IAC3D,GAAIu3e,GAAMqsX,KAAYrsX,GAAMksX,GAAU,CAClC,IAAIU,EAAOt63B,KAAKq63B,SAAST,EAAQzj2B,IACjC4j2B,EAAS/53B,KAAKo63B,cAAcp63B,KAAKwthB,OAAQ8sW,EAC7C,CACK5sX,GAAMysX,KACPn63B,KAAKk63B,cAAgBC,EAAOhk2B,IAEhC,IAAIy31B,EAAYlgX,GAAM1tgB,KAAKmvJ,YAAcnvJ,KAAKmvJ,UAAU54I,OAAS,CAAC,GAAKvW,KAAKmvJ,UAAU18E,WAAa,CAAC,GAC7Fi7b,GAAM1tgB,KAAKmvJ,UAAU54I,KAAKy9L,SAAW05T,GAAM1tgB,KAAKmvJ,UAAU18E,SAASuhI,SACjC,QAAlCh0M,KAAKmvJ,UAAU18E,SAASuhI,QAAkD,QAA9Bh0M,KAAKmvJ,UAAU54I,KAAKy9L,OACvE,GAAIh0M,KAAKq6gB,aAAwB,IAAVz4gB,GAAmB5B,KAAKmvJ,YAAc,CAAC,GAAKy+tB,EAC3DmM,GAAUA,IAAWI,GACrBJ,EAAO7xmB,UAAU/0P,OAAOqwe,SAFhC,CAMA,IACIw2X,EADA1uhB,EAAM9gB,GAAO,IAAMgkiB,IAAaxu3B,KAAKmV,SAEzC,GAAInV,KAAKo5H,UAAYp5H,KAAKq3b,eAAiBr3b,KAAKi33B,QAAS,CACrD,IAAIsD,EAAUv63B,KAAKmvJ,UAAU18E,SAASuhI,OACtCgmrB,EAAa,CACTt13B,KAAoB,SAAZ613B,EAAsB,GAAmB,gBAAZA,EAA6BA,EAAU,cAC5EtmxB,SAAUj0G,KAAKmvJ,UAAU18E,SAASwhC,SAClCu9O,eAAgBxxV,KAAKmvJ,UAAU18E,SAASy9Q,OAEhD,MACK,GAAIlwV,KAAKi33B,SAAWj33B,KAAKo5H,UAAYp5H,KAAKq3b,cAAgBr3b,KAAKo5H,YAAcp5H,KAAKq3b,aAAc,CACjG,IAAImjc,EAASx63B,KAAKmvJ,UAAU54I,KAAKy9L,OACjCgmrB,EAAa,CACTt13B,KAAmB,SAAX813B,EAAqB,GAAkB,iBAAXA,EAA6BA,EAAS,eAC1EvmxB,SAAUj0G,KAAKmvJ,UAAU54I,KAAK09F,SAC9Bu9O,eAAgBxxV,KAAKmvJ,UAAU54I,KAAK25U,OAE5C,CACA8piB,EAAWvoiB,SAAW,WAClB6Z,EAAIpjF,UAAU90P,IAAIsi2B,KAClBp23B,EAAMm73B,iBACV,EACAT,EAAW5g1B,IAAM,WACbkyT,EAAIpjF,UAAU/0P,OAAOui2B,KACrByE,EAAOjymB,UAAU90P,IAAIowe,IACzB,EACKxjgB,KAAKq6gB,YAAe3M,GAAMqsX,IAC3B/53B,KAAK853B,qBAAqBC,EAAQ3gwB,GAEtCp5H,KAAKi33B,SAAU,EACS,KAApB+C,EAAWt13B,KACXy13B,EAAOjymB,UAAU90P,IAAIowe,KAGrB,IAAIvzK,GAAU+piB,GAAY/3kB,QAAQk4kB,EAnCtC,CAqCJ,EACAhg1B,EAAIxpC,UAAU+vlB,WAAa,SAAU1wE,GACjC,IAAI0qW,EAAYjlyB,GAAQu6b,EAAK,IAAMs+V,IAAa,KAAO5rX,KACnDi4X,EAAW363B,KAAK463B,YAAYF,IAC3BhtX,GAAM1tgB,KAAK+6hB,SAAW/K,EAAI9nQ,UAAUh1P,SAAS,aAC7ClzB,KAAK+6hB,OAAO7yQ,UAAUh1P,SAhrBd,gBAgrB0ClzB,KAAKs5hB,OAAO/7P,KAAKv9R,KAAKu9R,MAAQv9R,KAAKs5hB,OAAOjzO,KAAKrmT,KAAKqmT,MAElG2pO,EAAI9nQ,UAAUh1P,SAAS,gBAC5B88f,EAAIhtQ,QAGC0qP,GAAMgtX,KAA2D,IAA7CA,EAAUxymB,UAAUh1P,SAASswe,OAClDxjgB,KAAK663B,UAAUF,EAAU,MAAM,GAC1BjtX,GAAM1tgB,KAAK+6hB,SACZ/6hB,KAAKs5hB,OAAO/7P,KAAKv9R,KAAKu9R,MAItC,EACApjP,EAAIxpC,UAAUkn3B,aAAe,WACzB,IAAInqX,GAAM1tgB,KAAKmV,SAAf,CAGA,IAAIggO,EAAU,GAAGvkO,MAAMjR,KAAKK,KAAKmV,QAAQrP,UAAUM,QAAO,SAAU/F,GAAK,OAAOA,EAAE6nR,UAAUh1P,SAASo71B,IAAa,IAClH,GAAIn5oB,EAAQ/xO,OAAS,EACjB,OAAO+xO,EAAQ,GAGf,IAAI74M,EAAO,GAAG1rB,MAAMjR,KAAKK,KAAKmV,QAAQrP,UAAUM,QAAO,SAAU/F,GAAK,OAAQA,EAAE6nR,UAAUh1P,SAjuBpF,kBAiuB2G,IAAG,GACpH,GAAKoJ,EAGL,MAAO,GAAG1rB,MAAMjR,KAAK28B,EAAKx2B,UAAUM,QAAO,SAAU/F,GAAK,OAAOA,EAAE6nR,UAAUh1P,SAASo71B,IAAa,IAAG,EAV1G,CAYJ,EACAn00B,EAAIxpC,UAAUiq3B,YAAc,SAAUrl2B,GAClC,OAAO7kB,MAAMC,UAAUhG,QAAQhL,KAAKgrV,GAAU,IAAM+3K,IAAa1igB,KAAK633B,gBAAiBti2B,EAC3F,EACA4kB,EAAIxpC,UAAU0p3B,SAAW,SAAUlk2B,GAC/B,OAAOA,EAAG9lB,QAAQ4mhB,IAAWj3hB,KAAKmgT,MAAQ,IAAK,GACnD,EACAhmQ,EAAIxpC,UAAU8l3B,mBAAqB,WAC/B,IAAIn33B,EAAQU,KACZA,KAAKwv3B,YAAYnp3B,SAAQ,SAAU8t3B,GAC1BzmX,GAAMpugB,EAAM6V,QAAQykB,cAAcu61B,MACnCjj2B,SAASzd,KAAKie,YAAYpyB,EAAM6V,QAAQykB,cAAcu61B,IAAShu3B,MAAMi+J,QAAU,OAEvF,GACJ,EACAjqH,EAAIxpC,UAAU0j3B,gBAAkB,SAAU1qiB,EAAK2hB,EAAK7+U,GAChD,IAAIyugB,EAAUl7hB,KAAKc,cAAc,OACjCd,KAAK863B,eAAe5/V,EAAS5vL,EAAK,UAAW7+U,GACX,IAA9ByugB,EAAQ/xf,WAAW/lC,QACnBumV,EAAIj4T,YAAYwpgB,GAEhBl7hB,KAAKywW,SACLzwW,KAAKs6V,sBAEb,EACAngT,EAAIxpC,UAAUmq3B,eAAiB,SAAUnxiB,EAAK56T,EAAKpqB,EAAM8nB,GACrD,IAAImzf,EAaAm7W,EAZe,kBAARhs2B,GACPA,EAAMA,EAAI0D,OACNzyB,KAAK40d,MACLgrD,EAAa90K,GAAQsD,GAAmBxiU,SAAS7c,IAGjD46T,EAAIzgT,UAAYklU,GAAmBxiU,SAAS7c,IAIhD6wf,EAAa90K,GAAQ/7U,GAGpB2+e,GAAMkS,KACPm7W,EAAcn7W,EAAW,CAAC,EAAG5/gB,KAAM2E,KAElC+ogB,GAAMkS,IAAem7W,EAAY333B,OAAS,GAC3C,GAAGwN,MAAMjR,KAAKo73B,GAAa103B,SAAQ,SAAU6G,GACzCy8U,EAAIj4T,YAAYxkB,EACpB,GAER,EACAitC,EAAIxpC,UAAUso3B,kBAAoB,SAAU9j3B,EAAS8qB,EAAMxT,GACvDzsB,KAAK863B,eAAe3l3B,EAAS8qB,EAAM,iBAAkBxT,EACzD,EACA0tB,EAAIxpC,UAAU04gB,WAAa,SAAU1/L,EAAK2hB,EAAKo3I,EAAUj2d,GACrD,IAAI0n2B,EAEJ,GAAmB,kBADnB7ohB,EAAMoiK,GAAMpiK,GAAO,GAAKA,IACOoiK,GAAMpiK,EAAIpiU,WAIrC,GAHmB,kBAARoiU,GAAoBtrW,KAAK+sb,sBAChCzhF,EAAM8C,GAAmBxiU,SAAS0/T,IAEvB,MAAXA,EAAI,IAAyB,MAAXA,EAAI,GACtB,GAAIp6U,SAAS1gB,iBAAiB86V,GAAKloW,OAAQ,CACvC,IAAIwv3B,EAAS1h2B,SAAS0I,cAAc0xU,GACpC6ohB,EAASvB,EAAOzm1B,UAAU1Z,OACT,UAAbiwd,EACA/4J,EAAIj4T,YAAYkh2B,EAAOzv1B,WAAU,KAGjCwmT,EAAIj4T,YAAYkh2B,GAChBA,EAAOzs3B,MAAMi+J,QAAU,GAE/B,MAEIpkK,KAAKq03B,gBAAgB1qiB,EAAK2hB,EAAK7+U,QAInCzsB,KAAKq03B,gBAAgB1qiB,EAAK2hB,EAAK7+U,QAInCk9T,EAAIj4T,YAAY45U,GAEfoiK,GAAMymX,KAC2C,IAA9Cn03B,KAAKwv3B,YAAY7k3B,QAAQ2gW,EAAIx0V,aAC7B9W,KAAKwv3B,YAAYpj3B,KAAKk/V,EAAIx0V,WAGtC,EACAqjC,EAAIxpC,UAAUyp3B,cAAgB,SAAU5sW,EAAQt4M,GAQ5C,OANIl1U,KAAKmV,QAAQ+yQ,UAAUh1P,SAAS2h2B,KAC1BrqiB,GAAO,IAAMqqiB,IAAW,MAAQrG,IAAc,OAASA,IAAcxu3B,KAAKmgT,MAAQ,IAAM+0B,EAAIl1U,KAAKmV,SAGjGnV,KAAKg73B,QAAQxtW,EAAO1nhB,SAAU0o3B,IAAcxu3B,KAAKmgT,MAAQ,IAAM+0B,EAG7E,EACA/6R,EAAIxpC,UAAUqq3B,QAAU,SAAUlz0B,EAAOx7C,GAErC,IADA,IAAIq9U,EACKx9U,EAAI,EAAGA,EAAI27C,EAAM1kD,OAAQ+I,IAC9B,GAAI27C,EAAM37C,GAAGgqB,KAAO7pB,EAAK,CACrBq9U,EAAM7hS,EAAM37C,GACZ,KACJ,CAEJ,OAAOw9U,CACX,EACAxvS,EAAIxpC,UAAUyqR,WAAa,WACvB,IAAIA,EAAuC,SAAzBp7R,KAAKu33B,iBAAuD,UAAzBv33B,KAAKu33B,gBAE1D,OADAv33B,KAAK033B,YAAet8lB,EArzBV,oBADA,oBAuzBHA,CACX,EACAjhP,EAAIxpC,UAAUmn3B,iBAAmB,WAC7B,GAAI933B,KAAKo7R,aAAc,CACnB,IAAI6/lB,EAAkC,SAAzBj73B,KAAKu33B,gBAA8B3B,IAAYC,IAC5DrtmB,GAAS,CAACxoR,KAAKmy3B,QAAS,CAACp7V,IAAckkW,IAClCj73B,KAAKmV,QAAQ+yQ,UAAUh1P,SAAS2h2B,KAIjCrsmB,GAAS,CAACxoR,KAAKmy3B,QAAS,CAACwD,IAAUsF,IAHnCzymB,GAAS,CAACxoR,KAAKmV,SAAU,CAACwg3B,IAAUsF,GAK5C,CAC6B,WAAzBj73B,KAAKu33B,iBACL/umB,GAAS,CAACxoR,KAAKmy3B,QAAS,CAAC2D,KAEjC,EACA370B,EAAIxpC,UAAUym3B,yBAA2B,WACrCp33B,KAAKqmT,KAAO,CAAE3hT,KAAO1E,KAAKo7R,aAAe,SAAW,YAAcnnL,SAAU,KAC5Ej0G,KAAKu9R,KAAO,CAAE74R,KAAO1E,KAAKo7R,aAAe,UAAY,UAAYnnL,SAAU,IAC/E,EACA95D,EAAIxpC,UAAUgthB,kBAAoB,SAAUu9V,GACxCl73B,KAAKs33B,eAAe4D,EAAOl73B,KAAKmy3B,QAChC,IAAIgJ,EAAYn73B,KAAKmy3B,OAAOv41B,cAAc,IAAM4pe,KAC5CpoO,IAAap7R,KAAKmy3B,OAAOjqmB,UAAUh1P,SAAS6jgB,KAChD9uQ,GAAY,CAACjoR,KAAKmV,SAAU,CAACwg3B,MAC7B1tmB,GAAY,CAACjoR,KAAKmy3B,QAAS,CAACp7V,IAAc6+V,IAAWC,MACjDz6lB,IAAep7R,KAAKo7R,eACpBp7R,KAAKo73B,4BACA1tX,GAAMytX,IAAcA,EAAUjzmB,UAAUh1P,SAASui2B,MAClDz13B,KAAKmqsB,aAAagxL,IAG1Bn73B,KAAK833B,mBACL933B,KAAKy63B,kBACLz63B,KAAKo3b,WACT,EACAj9Y,EAAIxpC,UAAUymb,UAAY,WACtB,IAAIikc,EAAa7wiB,GAAO,KAAOysM,IAAWj3hB,KAAKmgT,MAAQ,IAAMngT,KAAKq3b,aAAcr3b,KAAKmy3B,QAChFzkX,GAAM2tX,IACPA,EAAW/w1B,kBAAkBlgC,OAErC,EACA+vC,EAAIxpC,UAAUyq3B,yBAA2B,WACrCp73B,KAAKw23B,MAAMvqiB,cAAc,CAAErjM,OAAS5oJ,KAAKo7R,aAAe,OAAS,OAAS58Q,MAAQxe,KAAKo7R,aAAe,OAAS,SAAW,GAC1Hp7R,KAAKw23B,MAAM74V,oBACX39hB,KAAKo33B,0BACT,EACAj90B,EAAIxpC,UAAU2m3B,eAAiB,SAAU4D,EAAOvxiB,GAC5C,IAAI2xiB,EAAY5q3B,MAAMC,UAAUhG,QAAQhL,KAAKK,KAAKmV,QAAQrP,SAAU6jV,GAChE4xiB,EAAa7q3B,MAAMC,UAAUhG,QAAQhL,KAAKK,KAAKmV,QAAQrP,SAAU9F,KAAKmV,QAAQykB,cAAc,IAAM401B,MACxF,WAAV0M,GAAuBK,EAAaD,EACpCt73B,KAAKmV,QAAQuc,YAAYi4T,IAGzB1hE,GAAY,CAAC0hE,GAAM,CAACmsiB,MACpB913B,KAAKmV,QAAQwf,aAAag1T,EAAKa,GAAO,IAAMgkiB,IAAaxu3B,KAAKmV,UAEtE,EACAglC,EAAIxpC,UAAUiuY,YAAc,SAAUj1D,EAAKkmF,EAAK9gZ,GAC5C,GAAY,KAAR8gZ,EAIJ,IADA,IAAIp+Y,EAAOo+Y,EAAIl9Y,MAAM,KACZxmB,EAAI,EAAGA,EAAIslB,EAAKruB,OAAQ+I,IACzB4iB,EACA46T,EAAIzhE,UAAU90P,IAAI3B,EAAKtlB,IAGvBw9U,EAAIzhE,UAAU/0P,OAAO1B,EAAKtlB,GAGtC,EACAguC,EAAIxpC,UAAU82f,iBAAmB,SAAU14e,GAIvC,GAHI/uB,KAAKmV,QAAQ+yQ,UAAUh1P,SAAS6i2B,MAChC9tmB,GAAY,CAACjoR,KAAKmV,SAAU,CAAC4g3B,OAE7BroX,GAAM1tgB,KAAKwthB,QAAf,CAGA,IAAI2kW,EAASny3B,KAAK633B,eAClB,GAA8B,SAA1B733B,KAAKw73B,iBAA6B,CAClC,GAAoB,SAAhBx73B,KAAK4oJ,OACL,OAGK5oJ,KAAKo7R,cACNo7H,GAASx2Z,KAAKwthB,OAAQ,CAAE,OAAWxthB,KAAKmV,QAAQ+vP,aAAeitnB,EAAOp9lB,aAAgB,MAGlG,MACK,GAA8B,SAA1B/0R,KAAKw73B,iBACVhzmB,GAAS,CAACxoR,KAAKmV,SAAU,CAAC4g3B,MAC1Bv/d,GAASx2Z,KAAKmV,QAAS,CAAE,OAAU,SACnCnV,KAAKwthB,OAAOrnhB,MAAMyiJ,OAAS,eAAiB5oJ,KAAKmy3B,OAAOp9lB,aAAe,WAEtE,GAA8B,SAA1B/0R,KAAKw73B,iBAA6B,CACvC,IAAwB,IAApBx73B,KAAK46mB,WAEL,IADA,IAAItvQ,EAAM3gB,GAAU,IAAM6jiB,IAAc,OAASv3V,IAAUj3hB,KAAKmV,SACvDhJ,EAAI,EAAGA,EAAIm/V,EAAIloW,OAAQ+I,IAC5Bm/V,EAAIn/V,GAAG6oB,aAAa,QAAS,sCAC7Bh1B,KAAK4lc,UAAYhic,KAAKqpC,IAAIjtC,KAAK4lc,UAAW5lc,KAAKq3qB,UAAU/rU,EAAIn/V,KAC7Dm/V,EAAIn/V,GAAGhG,MAAMwyY,eAAe,WAC5BrtC,EAAIn/V,GAAGhG,MAAMwyY,eAAe,kBAG/B,CACD34Y,KAAKwthB,OAAShjM,GAAO,IAAMgkiB,IAAaxu3B,KAAKmV,UACjC,IAAR4Z,GACA/uB,KAAKwthB,OAAO97f,YAAY1xB,KAAKc,cAAc,MAAO,CAC9Cq1B,GAAKq41B,IAAcxu3B,KAAKmgT,MAAnBqukB,KAAqCzt3B,UAAWk2hB,IAAW,IAAMzzB,IACtE/5K,MAAO,CAAE,KAAQ,WAAY,kBAAmBwtM,IAAWj3hB,KAAKmgT,MAAhB82O,SAGxD,IAAIttM,EAAM3pV,KAAKwthB,OAAO1nhB,SAASyvB,KAAK,GACpC,IAASppB,EAAI,EAAGA,EAAInM,KAAK8nD,MAAM1kD,OAAQ+I,IAGnC,IAFAnM,KAAKqphB,WAAW1/L,EAAK3pV,KAAK8nD,MAAM37C,GAAG4I,QAAS,QAAS5I,GACrDnM,KAAK4lc,UAAYhic,KAAKqpC,IAAIjtC,KAAK4lc,UAAW5lc,KAAKq3qB,UAAU1tV,IAClDA,EAAIj1T,YACPi1T,EAAIx0T,YAAYw0T,EAAIj1T,YAGxB10B,KAAKywW,SACLzwW,KAAKu6V,cAAc,CAAC,YAExBv6V,KAAKwv3B,YAAc,GACnBxv3B,KAAKqphB,WAAW1/L,EAAK3pV,KAAK8nD,MAAM,GAAG/yC,QAAS,SAAU,GAClD/U,KAAKo5H,YAAcp5H,KAAKq3b,cACxB1tG,EAAIzhE,UAAU/0P,OAAOqwe,IAE7B,CACAhtG,GAASx2Z,KAAKwthB,OAAQ,CAAE,OAAUxthB,KAAK4lc,UAAY,MACvD,MAEIpvC,GAASx2Z,KAAKwthB,OAAQ,CAAE,OAAU,QAvDtC,CAyDJ,EACArze,EAAIxpC,UAAU0mqB,UAAY,SAAU1tV,GAChC,IAAI/nD,EAAK5wQ,OAAOwhQ,iBAAiBm3D,GACjC,OAAOA,EAAI50D,aAAerkP,WAAWkxP,EAAG+wD,iBAAiB,gBAAkBjiT,WAAWkxP,EAAG+wD,iBAAiB,mBACtGjiT,WAAWkxP,EAAG+wD,iBAAiB,eAAiBjiT,WAAWkxP,EAAG+wD,iBAAiB,iBACvF,EACAx4S,EAAIxpC,UAAU8p3B,gBAAkB,WAC5B,IAAIgB,EAAYz73B,KAAK633B,eACjB7nW,EAAMxlM,GAAO,IAAMk4K,IAAc,IAAMc,IAAYi4X,GACvD,IAAI/tX,GAAMsiB,GAAV,CAGKhwhB,KAAK073B,iBAQDD,GACLA,EAAUvzmB,UAAU/0P,OAAO8i2B,MARvBjmW,EAAI9nQ,UAAUh1P,SAASui2B,OAAkBz13B,KAAK823B,QAAQ5umB,UAAUh1P,SAASmlgB,MACzEr4hB,KAAK823B,QAAQ5umB,UAAU90P,IAAIilgB,KAE3BojW,IAAcA,EAAUvzmB,UAAUh1P,SAAS+i2B,MAC3CwF,EAAUvzmB,UAAU90P,IAAI6i2B,MAMhC,IAAI1z1B,EAAOkzD,GAAQu6b,EAAK,IAAM4kW,KAC9B,GAAI503B,KAAKmV,UAAYotB,EAArB,CAGAviC,KAAK+mgB,QAAUv8K,GAAO,IAAM+qiB,IAAckG,GAC1C,IAAIE,EAAMnxiB,GAAO,IAAM2qiB,IAAesG,GAClC9lW,EAAYnrM,GAAO,IAAM+qiB,IAAe,KAAOv13B,KAAK033B,YAAa+D,GACrE,GAAIz73B,KAAKo7R,aAAc,CACnBo7H,GAASmle,EAAK,CAAE,KAAQ,GAAI,MAAS,KAGjCnle,GAASmle,EADI,KADDjuX,GAAMioB,GAAc31hB,KAAK+mgB,QAAQhyO,aAAe4gQ,EAAU5gQ,cAExD,CAAE,IAAOi7P,EAAIptO,UAAY,KAAM,OAAUotO,EAAIj7P,aAAe,MAG5D,CAAE,IAAO,EAAG,OAAU,GAE5C,KACK,CACD,GAA0B,aAAtB/0R,KAAKs6hB,aAEL9jI,GAASmle,EAAK,CAAE,KADqB,WAAzB373B,KAAKu33B,gBAA+BvnW,EAAIptO,UAAYotO,EAAIj7P,aAAei7P,EAAIptO,WACxD,KAAM,OAAU,UAG/C4zG,GAASmle,EAAK,CAAE,IAAO,GAAI,OAAU,KAEzC,IAAIC,EAAWluX,GAAMioB,GAAc31hB,KAAK+mgB,QAAQ52P,YAAcwlR,EAAUxlR,YAEpEqmJ,GAASmle,EADG,IAAZC,EACc,CAAE,KAAQ5rW,EAAIrtO,WAAa,KAAM,MAASi5kB,GAAW5rW,EAAIrtO,WAAaqtO,EAAI7/Q,aAAe,MAGzF,CAAE,KAAQ,OAAQ,MAAS,QAEjD,CACKu9P,GAAM1tgB,KAAK823B,UAAa9mW,EAAI9nQ,UAAUh1P,SAASui2B,MAChDz13B,KAAK823B,QAAQ5umB,UAAU/0P,OAAOklgB,IA/BlC,CAfA,CAgDJ,EACAl+e,EAAIxpC,UAAUu3nB,UAAY,SAAUtmoB,EAAOi63B,EAAcxpe,QAChC,IAAjBwpe,IAA2BA,GAAe,QACzB,IAAjBxpe,IAA2BA,GAAe,GAC9CryZ,KAAK223B,OAAShsiB,GAAU,IAAM+3K,IAAa1igB,KAAK633B,gBAChD,IAAI7nW,EAAMhwhB,KAAK223B,OAAO/03B,GACtB,KAAIA,EAAQ,GAAKC,MAAMD,IAAiC,IAAvB5B,KAAK223B,OAAOvz3B,QAW7C,GARIxB,GAAS,IAAMi63B,IACf773B,KAAKsrV,wBAAyB,EAC9BtrV,KAAKisV,cAAc,CAAEorG,aAAcz1b,IAAS,GAC5C5B,KAAKsrV,wBAAyB,EACzBtrV,KAAKq6gB,YACNr6gB,KAAKqsV,kBAGT2jM,EAAI9nQ,UAAUh1P,SAASswe,KACvBxjgB,KAAKy63B,sBADT,CAIKz63B,KAAK46mB,YACNtvmB,GAAW0khB,EAAI1lf,kBAAmB,CAAE,gBAAiBkk1B,IAAcxu3B,KAAKmgT,MAAQ,IAAMv+S,IAE1F,IAAIu0B,EAAK65f,EAAI75f,GACbn2B,KAAKs53B,oBACLtpW,EAAI9nQ,UAAU90P,IAAIowe,KAClBwsB,EAAI1lf,kBAAkBtV,aAAa,gBAAiB,QACpD,IAAIkgT,EAAKrvT,OAAO7lB,KAAKq63B,SAASlk2B,IAI9B,GAHIu3e,GAAM1tgB,KAAKk63B,iBACXl63B,KAAKk63B,cAAgB1L,IAAcxu3B,KAAKmgT,MAAQ,IAAM+0B,GAEtDl1U,KAAK46mB,YACL,GAAIpwR,GAAO,IAAMgkiB,IAAaxu3B,KAAKmV,SAASrP,SAAS1C,OAAS,EAAG,CAC7D,IAAI043B,EAAQ973B,KAAKg73B,QAAQxwiB,GAAO,IAAMgkiB,IAAaxu3B,KAAKmV,SAASrP,SAAU0o3B,IAAcxu3B,KAAKmgT,MAAQ,IAAM+0B,GACvGw4L,GAAMouX,IACPA,EAAM5zmB,UAAU90P,IAAIowe,KAExBxjgB,KAAKi63B,iBAAiB9j2B,EAAIn2B,KAAK22iB,gBACnC,MAEC,CACD32iB,KAAKwthB,OAAShjM,GAAO,aAAyBgkiB,IAAaxu3B,KAAKmV,SAChE,IAAIogB,EAAOv1B,KAAKo63B,cAAcp63B,KAAKwthB,OAAQxthB,KAAKq63B,SAASlk2B,IACzD,GAAIu3e,GAAMn4e,GAAO,CACbv1B,KAAKwthB,OAAO97f,YAAY1xB,KAAKc,cAAc,MAAO,CAC9Cq1B,GAAIq41B,IAAcxu3B,KAAKmgT,MAAQ,IAAMngT,KAAKq63B,SAASlk2B,GAAKp1B,UAAWk2hB,IAAW,IAAMzzB,IACpF/5K,MAAO,CAAExoV,KAAM,WAAY,kBAAmBg2hB,IAAWj3hB,KAAKmgT,MAAQ,IAAMngT,KAAKq63B,SAASlk2B,OAE9F,IAAI4l2B,EAAS/73B,KAAKo63B,cAAcp63B,KAAKwthB,OAAQxthB,KAAKq63B,SAASlk2B,IACvDmja,EAAY5ob,MAAMC,UAAUhG,QAAQhL,KAAKK,KAAKm33B,eAAgBhh2B,GAClEn2B,KAAKqphB,WAAW0yW,EAAQ/73B,KAAK8nD,MAAMwxY,GAAWvkb,QAAS,SAAUukb,EACrE,MAEI/ja,EAAK2yP,UAAU90P,IAAIowe,KAEvBxjgB,KAAKi63B,iBAAiB9j2B,EAAIn2B,KAAK22iB,gBACnC,CAGA,GAFA32iB,KAAKy63B,kBACLz63B,KAAKg83B,sBAAsBhsW,IACtBhwhB,KAAKq6gB,aAAewhX,EAAc,CACnC7rW,EAAI1lf,kBAAkBlgC,QACtB,IAAI6x3B,EAAW,CACXv6b,aAAc1hc,KAAK623B,SACnBqF,cAAel83B,KAAKo5H,UACpBi+T,aAAc24F,EACd9vF,cAAet+b,EACfu63B,gBAAiB3xiB,GAAO,IAAMgkiB,IAAcxu3B,KAAKmgT,MAAQ,IAAMngT,KAAKo83B,YAAap83B,KAAK+U,SACtFsn3B,SAAUr83B,KAAKk33B,UACf7ke,aAAcA,GAElBryZ,KAAKsgS,QAAQ,WAAY27lB,EAC7B,CApDA,CAqDJ,EACA9h1B,EAAIxpC,UAAUkrsB,SAAW,SAAU/zpB,GAC/B9nD,KAAKw43B,WAAY,EACjBx43B,KAAK+mgB,QAAUv8K,GAAO,IAAM+qiB,IAAcv13B,KAAK633B,gBAC/C733B,KAAKw23B,MAAM1u0B,MAAQ9nD,KAAKi43B,YAAYnw0B,EAAO,GAC3C9nD,KAAKw23B,MAAMpqiB,WACXpsV,KAAKw43B,WAAY,CACrB,EACAr+0B,EAAIxpC,UAAUqhe,OAAS,SAAUpwe,GAC7B5B,KAAKw23B,MAAMn+hB,UAAYz2V,EACvB5B,KAAKw23B,MAAMpqiB,WACXpsV,KAAK4+Y,YAAY5+Y,KAAKmV,QAASksf,IAASz/f,GACxC5B,KAAKs83B,qBACT,EACAni1B,EAAIxpC,UAAU2r3B,oBAAsB,WAC3B5uX,GAAM1tgB,KAAK823B,UACZ923B,KAAK823B,QAAQ5umB,UAAU90P,IAAIilgB,KAE/Br4hB,KAAKy63B,iBACT,EACAtg1B,EAAIxpC,UAAUswb,UAAY,SAAU3mW,GAChC,IAAIs8xB,EAAQpsiB,GAAO,yBAA0BxqV,KAAKmy3B,QAClD,GAAIyE,EAAM1umB,UAAUh1P,SAAS,iBAAkB,CAC3C,IAAIqp2B,EAAY3F,GAASA,EAAM5piB,cAAc,GAC7CuviB,EAASryyB,SAAS9oE,EAA8B,SAAzBphB,KAAKu33B,gBAA8B,OAAS,QACnEgF,EAASnwiB,WACTmwiB,EAASl2kB,KAAK/rN,EAClB,CACJ,EACAngD,EAAIxpC,UAAU6r3B,cAAgB,WAC1B,IAAIl93B,EAAQU,KACZ,GAAIA,KAAKup0B,iBAAkB,CACvB,IAAIgwD,EAAYv53B,KAAKmV,QAAQykB,cAAc,IAAM001B,KACjD,GAAIiL,EACYA,EAAU/o3B,iBAAiB,IAAMkyf,KACvCr8f,SAAQ,SAAU8O,GACpB7V,EAAMkk3B,eAAeru2B,EACzB,GAER,CACJ,EACAglC,EAAIxpC,UAAUozV,WAAa,WACvB/jW,KAAKw83B,gBACLxr2B,OAAOsK,iBAAiB,SAAUt7B,KAAK+4hB,eACvClgT,GAAazlN,IAAIpzB,KAAKmV,QAAS,YAAanV,KAAKgprB,aAAchprB,MAC/D64O,GAAazlN,IAAIpzB,KAAKmV,QAAS,UAAWnV,KAAKy83B,aAAcz83B,MACxD0tgB,GAAM1tgB,KAAKwthB,UACZxthB,KAAKqwhB,YAAc,IAAInqL,GAAMlmW,KAAKwthB,OAAQ,CAAEyE,MAAOjyhB,KAAKkyhB,aAAaryhB,KAAKG,SAE9EA,KAAKg6hB,UAAY,IAAI11L,GAAetkW,KAAKmV,QAAS,CAAE+vV,UAAWllW,KAAKwioB,WAAW3ioB,KAAKG,MAAO4kW,WAAY5kW,KAAK4kW,aAC5G5kW,KAAK083B,aAAe,IAAIp4hB,GAAetkW,KAAKmV,QAAS,CACjD+vV,UAAWllW,KAAKwioB,WAAW3ioB,KAAKG,MAChC4kW,WAAY,CAAEphG,UAAW,YAAa89C,IAAK,MAAO43G,SAAU,aAC5D3iY,UAAW,WAEnB,EACA4jB,EAAIxpC,UAAU65b,aAAe,WACpBkjE,GAAM1tgB,KAAKg6hB,YACZh6hB,KAAKg6hB,UAAU5iZ,UAEds2X,GAAM1tgB,KAAK083B,eACZ183B,KAAK083B,aAAatlvB,UAEjBs2X,GAAM1tgB,KAAKwthB,SAAY9f,GAAM1tgB,KAAKqwhB,eACnCrwhB,KAAKqwhB,YAAYj5Y,UACjBp3I,KAAKqwhB,YAAc,MAEvBr/f,OAAOoK,oBAAoB,SAAUp7B,KAAK+4hB,eAC1ClgT,GAAa1lN,OAAOnzB,KAAKmV,QAAS,YAAanV,KAAKgprB,cACpDnwc,GAAa1lN,OAAOnzB,KAAKmV,QAAS,UAAWnV,KAAKy83B,cAClDz83B,KAAKmV,QAAQ+yQ,UAAU/0P,OAAOkue,KAC9BrhgB,KAAKmV,QAAQ+yQ,UAAU/0P,OAAO4ve,IAClC,EACA5od,EAAIxpC,UAAUm6Y,aAAe,SAAU7xY,GACnCjZ,KAAKmV,QAAQ+yQ,UAAU/0P,OAAO4ve,KAC9B,IAAIitB,EAAM/2gB,EAAKuuV,cAAcn/V,OACzBqy3B,EAAYjlyB,GAAQu6b,EAAK,IAAMttB,KAC/Bi4X,EAAW363B,KAAK463B,YAAYF,GAC5B1qW,EAAI9nQ,UAAUh1P,SAAS8h2B,KACvBh13B,KAAK283B,UAAUhC,GAEV363B,KAAKo7R,cAAgB3lM,GAAQu6b,EAAK,cACvChwhB,KAAKihc,UAAUjhc,KAAKqmT,OAGpBrmT,KAAKi33B,SAAU,EACVvpX,GAAMgtX,IAAeC,IAAa363B,KAAKq3b,cACxCr3b,KAAK663B,UAAUF,EAAU1h3B,EAAKuuV,eAAe,GAGzD,EACArtT,EAAIxpC,UAAUuhhB,aAAe,SAAU7xhB,GACnC,KAAIA,EAAEynW,SAAW,GAAK4lK,GAAMrtgB,EAAEmnW,cAAcj+M,iBAA5C,CAGIvpJ,KAAKm+jB,UACLn+jB,KAAKmV,QAAQ6f,aAAa,aAAc,QAE5C,IAAI4n2B,EAAY583B,KAAKmV,QAAQykB,cAAc,uBAC3C,GAAIgj2B,EACAA,EAAU7n2B,gBAAgB,kBAD9B,CAKA,GADA/0B,KAAKk33B,WAAY,EACQ,UAArB723B,EAAEkoW,gBAAoD,IAAtBvoW,KAAKq3b,cACrC,IAAK,IAAIv2a,EAAI9gB,KAAKq3b,aAAe,EAAGv2a,GAAK,EAAGA,IACxC,IAAK9gB,KAAK223B,OAAO712B,GAAGonQ,UAAUh1P,SAASmlgB,KAAa,CAChDr4hB,KAAK663B,UAAU/52B,EAAG,MAAM,GACxB,KACJ,OAGH,GAAyB,SAArBzgB,EAAEkoW,gBAA8BvoW,KAAKq3b,eAAiB1sG,GAAU,IAAM+3K,IAAa1igB,KAAKmV,SAAS/R,OAAS,EAC/G,IAAK,IAAI+I,EAAInM,KAAKq3b,aAAe,EAAGlrb,EAAInM,KAAK223B,OAAOvz3B,OAAQ+I,IACxD,IAAKnM,KAAK223B,OAAOxq3B,GAAG+7Q,UAAUh1P,SAASmlgB,KAAa,CAChDr4hB,KAAK663B,UAAU1u3B,EAAG,MAAM,GACxB,KACJ,CAGRnM,KAAKk33B,WAAY,CAlBjB,CARA,CA2BJ,EACA/80B,EAAIxpC,UAAU8r3B,aAAe,SAAUp83B,IAChB,KAAdA,EAAEC,SAA8B,KAAZD,EAAEg4B,OAAgC,KAAdh4B,EAAEC,SAA8B,KAAZD,EAAEg4B,SAE1Dq1e,GADUj4a,GAAQp1F,EAAEgI,OAAQ,IAAMim3B,OAEnCju3B,EAAEgO,iBAGd,EACA8rC,EAAIxpC,UAAU6xnB,WAAa,SAAUnioB,GACjC,IAAIL,KAAKmV,QAAQ+yQ,UAAUh1P,SAASg+f,KAApC,CAGAlxhB,KAAKmV,QAAQ+yQ,UAAU90P,IAAI2ve,KAC3B,IAAIitB,EAAM3vhB,EAAEgI,OACRkx3B,EAAYv53B,KAAK633B,eACjBgF,EAASryiB,GAAO,IAAMg5K,IAAY+1X,GACtCv53B,KAAK+6hB,OAASvwM,GAAO,IAAMgriB,IAAY+D,GAClC7rX,GAAM1tgB,KAAK+6hB,UACZ/6hB,KAAKs5hB,OAASt5hB,KAAK+6hB,OAAO/tM,cAAc,IAE5C,IAAIz3T,EAAOkgE,GAAQvkE,SAAS0vH,cAAe,IAAM8hX,KAC7Cg4X,EAAYjlyB,GAAQu6b,EAAK,IAAMttB,KACnC,OAAQrigB,EAAE60E,QACN,IAAK,QACL,IAAK,QACD,GAAI86c,EAAIn6P,cAAc3N,UAAUh1P,SAASg+f,KACrC,OAEJ,GAAiB,UAAb7whB,EAAE60E,QAAsB86c,EAAI9nQ,UAAUh1P,SAAS,aAAc,CAC7DlzB,KAAKihc,UAAUjhc,KAAKqmT,MACpB,KACJ,CACArmT,KAAK0gmB,WAAW1wE,GAChB,MACJ,IAAK,MACL,IAAK,WACGA,EAAI9nQ,UAAUh1P,SAASki2B,OAC+C,IAAnE3/xB,GAAQu6b,EAAK,IAAMttB,KAAax6O,UAAUh1P,SAASswe,MACtDwsB,EAAIh7f,aAAa,WAAYg7f,EAAI19f,aAAa,kBAE9CtyB,KAAKs5hB,QAAUtvM,GAAUhqV,KAAKs5hB,OAAOnkhB,UACrCnV,KAAKs5hB,OAAO/7P,KAAKv9R,KAAKu9R,MAErBmwO,GAAMmvX,IAAgE,OAArDA,EAAO/23B,SAASyvB,KAAK,GAAGjD,aAAa,aACvDuq2B,EAAO/23B,SAASyvB,KAAK,GAAGP,aAAa,WAAY,KAErD,MACJ,IAAK,WACL,IAAK,YACI04e,GAAMn4e,IACPv1B,KAAKg83B,sBAAsBzm2B,GAE/B,MACJ,IAAK,YACDl1B,EAAEgO,kBACGq/f,GAAM1tgB,KAAK+6hB,SAAW/6hB,KAAK+6hB,OAAO7yQ,UAAUh1P,SAxvC3C,kBAyvCFlzB,KAAKs5hB,OAAOjzO,KAAKrmT,KAAKqmT,MAE1B,MACJ,IAAK,SACD,IAA6B,IAAzBrmT,KAAKm43B,kBAA6BzqX,GAAMgtX,GAAY,CACpD,IAAIoC,EAASpC,EAAU9l2B,aAClB84e,GAAMovX,IAAWA,EAAO50mB,UAAUh1P,SAASwve,MAC5Co6X,EAAOxy1B,kBAAkBlgC,QAE7BpK,KAAK283B,UAAU383B,KAAK463B,YAAYF,GACpC,CACA163B,KAAKy63B,kBAxDb,CA2DJ,EACAtg1B,EAAIxpC,UAAUqr3B,sBAAwB,SAAU3z3B,GAC5C,IAAIov3B,EAASjtiB,GAAO,IAAMxqV,KAAK033B,YAAa133B,KAAK+mgB,SACjD,IAAK/mgB,KAAKo7R,eAAiBsyO,GAAM+pX,GAAjC,CACI,IAAIsF,EAASvyiB,GAAO,iBAAkBxqV,KAAK+mgB,SAC3Cg2X,EAAOho2B,gBAAgB,YACvB,IAAIio2B,EAAWD,EAAO9uuB,WAClBgvuB,EAASD,EAAWD,EAAO5snB,YAC3B+snB,EAAW703B,EAAOs6S,WAClBs7O,EAAW51hB,EAAO8nQ,YAClBgtnB,EAAS903B,EAAOs6S,WAAat6S,EAAO8nQ,YACxC,GAAK6snB,EAAWE,GAAcD,EAASE,EAAS,CAC5C,IAAIC,EAAeH,EAASC,EAC5BH,EAAO9uuB,WAAa+uuB,GAAY/+V,EAAWm/V,EAC/C,MAEI,GAAKJ,EAAWE,GAAcD,EAASE,EAAS,CACxCC,EAAeD,EAASH,EAC5BD,EAAO9uuB,WAAa+uuB,GAAY/+V,EAAWm/V,EAC/C,CAKR,CACJ,EACAjj1B,EAAIxpC,UAAU+n3B,gBAAkB,SAAUvi2B,GACtC,OAAO5J,SAAS4J,EAAGjP,UAAUiP,EAAGghB,YAAY,KAAO,GAAI,GAC3D,EACAgD,EAAIxpC,UAAUq4qB,aAAe,SAAU3orB,GACnC,IAAI2vhB,EAAM3vhB,EAAEgI,QACPqlgB,GAAMsiB,EAAI9nQ,YAAc8nQ,EAAI9nQ,UAAUh1P,SAAS8h2B,MAChDhlW,EAAIh7f,aAAa,QAAS,IAAIuwU,GAAK,MAAO,CAAE83hB,iBAAkBr93B,KAAK8U,OAAS9U,KAAKD,QAAQgmW,YAAY,oBAE7G,EACA5rT,EAAIxpC,UAAU2s3B,0BAA4B,SAAU3riB,EAASC,GACzD,GAAMD,EAAQ7pS,iBAAiBp3C,OAASkhV,EAAQ9pS,iBAAiBp3C,MAsF7D,GADA1Q,KAAK0vD,UAAY,EACbg+c,GAAM1tgB,KAAKw23B,OACXx23B,KAAKs43B,oBAEJ,EACGt43B,KAAKywW,SAAWzwW,KAAKkjZ,YACrBljZ,KAAKu6V,gBAETv6V,KAAK67sB,SAASlqX,EAAQ7pS,OAClB9nD,KAAKwv3B,YAAYps3B,OAAS,GAC1BpD,KAAKy23B,qBAETz23B,KAAKwv3B,YAAc,GAEnB,IADA,IAAI9nb,EAAgBl9G,GAAO,aAAyBgkiB,IAAaxu3B,KAAKmV,SAC/Duyb,EAAcp9Z,mBACjBggT,GAAOo9G,EAAcp9Z,mBAEzBtqC,KAAKwqV,OAAOxqV,KAAKq3b,cACjBr3b,KAAKs23B,eAAiB,GACtBt23B,KAAKw83B,eACT,MAvGA,IADA,IAAI/H,EAAch13B,OAAO8E,KAAKotV,EAAQ7pS,OAC7B37C,EAAI,EAAGA,EAAIso3B,EAAYrx3B,OAAQ+I,IAGpC,IAFA,IAAIsgB,EAAQF,SAAS9sB,OAAO8E,KAAKotV,EAAQ7pS,OAAO37C,GAAI,IAChDumB,EAAajzB,OAAO8E,KAAKotV,EAAQ7pS,MAAMr7B,IAClCzc,EAAI,EAAGA,EAAI0iB,EAAWtvB,OAAQ4M,IAAK,CACxC,IAAI29U,EAASluV,OAAOmyV,EAAQ9pS,MAAMr7B,IAAQiG,EAAW1iB,IACjDg9d,EAASvte,OAAOkyV,EAAQ7pS,MAAMr7B,IAAQiG,EAAW1iB,IACjDsi3B,EAAMty3B,KAAKmV,QAAQ3E,iBAAiB,IAAMkyf,KAAaj2e,GACvD6sa,OAAY,EAEZA,EADAg5b,IAAQ5kX,GAAM4kX,EAAIn81B,KAAkB,KAAXm81B,EAAIn81B,GACjBn2B,KAAK043B,gBAAgBpG,EAAIn81B,IAGzB1J,EAEhB,IAAI4r2B,EAAU7tiB,GAAO,IAAM+qiB,IAAe,KAAOt+V,IAAWj3hB,KAAKmgT,MAAQ,IAAMm5I,EAAWt5b,KAAKmV,SAC3Foo3B,EAAU/yiB,GAAO,IAAMgkiB,IAAc,KAAOA,IAAcxu3B,KAAKmgT,MAAQ,IAAMm5I,EAAWt5b,KAAKmV,SACjG,GAAsB,WAAlBud,EAAW1iB,IAAqC,mBAAlB0iB,EAAW1iB,GAAyB,CAClE,IAAIixQ,EAAQysP,GAAM1tgB,KAAK8nD,MAAMr7B,GAAOiiK,SAChCg/U,GAAM1tgB,KAAK8nD,MAAMr7B,GAAOiiK,OAAOu9P,SAAY,GAAKjsb,KAAK8nD,MAAMr7B,GAAOiiK,OAAOu9P,QACzEmrE,EAAUp3f,KAAK8nD,MAAMr7B,GAAO8ga,gBAAkBvtb,KAAK8nD,MAAMr7B,GAAOiiK,OAAOzuJ,KAI3E,GAHsB,mBAAlBvN,EAAW1iB,IACXhQ,KAAKw93B,iBAAiBnF,EAAS3l2B,EAAW1iB,GAAI0yf,KAEjC,KAAZtL,GAA6B,KAATn2O,EACrBjhR,KAAK283B,UAAUlw2B,OAEd,CACDzsB,KAAK843B,KAAOxG,EAAIn81B,GAChB,IAAIgX,EAAM,GACVA,EAAI/gC,KAAKpM,KAAK8nD,MAAMr7B,IACpBzsB,KAAK8nD,MAAMtyB,OAAO/I,EAAO,GACzBzsB,KAAKm33B,eAAe3h2B,OAAO/I,EAAO,GAClCzsB,KAAKw23B,MAAM1u0B,MAAMtyB,OAAO/I,EAAO,GAC/B,IAAIgx2B,EAAcpF,EAAQnwmB,UAAUh1P,SAASmlgB,KAC7C/tM,GAAO+tiB,GACPr43B,KAAKw43B,WAAY,EACjBx43B,KAAK093B,OAAOvw1B,EAAK1gB,GACbgx2B,GACAz93B,KAAK293B,QAAQlx2B,GAEjBzsB,KAAKw43B,WAAY,CACrB,CACJ,CACA,GAAsB,YAAlB9l2B,EAAW1iB,KAAqB09f,GAAM6vX,GAEtC,IAD+B,kBAAXvwZ,GAAuB0gC,GAAM1gC,EAAO9jc,cAC3B,MAAd8jc,EAAO,IAA4B,MAAdA,EAAO,KAAeA,EAAO5pe,OAAQ,CACrE,IAAIwv3B,EAAS1h2B,SAAS0I,cAAcozc,GACpCuwZ,EAAQ7r2B,YAAYkh2B,GACpBA,EAAOzs3B,MAAMi+J,QAAU,EAC3B,KACoB,KAAX4oU,GAA+B,MAAdr/I,EAAO,IAC7Bz8T,SAASzd,KAAKie,YAAY1xB,KAAKmV,QAAQykB,cAAc+zT,IAASxnV,MAAMi+J,QAAU,OAC9Em5tB,EAAQr01B,UAAY8jc,GAEfhte,KAAKkjZ,WAAaljZ,KAAKywW,SAC5BzwW,KAAKw93B,iBAAiBD,EAAS7q2B,EAAW1iB,GAAIinhB,KAC9CsmW,EAAQr01B,UAAY,GACpBlpC,KAAKq03B,gBAAgBkJ,EAASvwZ,EAAQvgd,IAEf,oBAAXugd,IACZuwZ,EAAQr01B,UAAY8jc,GAGN,aAAlBt6c,EAAW1iB,KACN09f,GAAM2qX,KACPA,EAAQnwmB,UAAU/0P,OAAOw6T,GACzB0qiB,EAAQnwmB,UAAU90P,IAAI45c,IAErB0gC,GAAM6vX,KACPA,EAAQr1mB,UAAU/0P,OAAOw6T,GACzB4viB,EAAQr1mB,UAAU90P,IAAI45c,KAGR,aAAlBt6c,EAAW1iB,IACXhQ,KAAK493B,UAAUnx2B,GAAoB,IAAXugd,GAEN,YAAlBt6c,EAAW1iB,IACXhQ,KAAK293B,QAAQlx2B,GAAoB,IAAXugd,EAE9B,CA0BZ,EACA7yb,EAAIxpC,UAAU6s3B,iBAAmB,SAAUhO,EAAah1hB,EAAcz5V,GAClE,GAAIf,KAAKspmB,oBAAsBtpmB,KAAKspmB,mBAAmB9uQ,GAEnD,IADA,IAAI85hB,EAAsBt03B,KAAKspmB,mBACtB78kB,EAAQ,EAAGA,EAAQ6n2B,EAAoB95hB,GAAcp3V,OAAQqpB,IAAS,CAG3E,IAAKs/S,GADDwojB,EAAc9+xB,GADG6+xB,EAAoB95hB,GAAc/tU,GAAO47lB,UAAU,GAC9B,IAAMtnnB,KACTwz3B,IAAgB/E,EAAa,CAChExv3B,KAAKu6V,cAAc,CAACC,GAAe,CAAC85hB,EAAoB95hB,GAAc/tU,KACtE,KACJ,CACJ,MAEC,GAAIzsB,KAAK8wW,SAAW9wW,KAAK8wW,QAAQ1tW,OAAS,EAC3C,KAAI0tW,EAAU9wW,KAAK8wW,QACnB,IAASrkV,EAAQ,EAAGA,EAAQqkV,EAAQ1tW,OAAQqpB,IAAS,CACjD,IACI8n2B,EACJ,IAAKxojB,GADDwojB,EAAc9+xB,GADDq7Q,EAAQrkV,GACY23H,cAAe,IAAMrjJ,KACnBwz3B,IAAgB/E,EAAa,CAChExv3B,KAAKu6V,cAAc,CAACC,GAAe/tU,GACnC,KACJ,CACJ,CAR0B,CAUlC,EACA0tB,EAAIxpC,UAAU6y2B,eAAiB,SAAUn72B,GACrC,IAAI/I,EAAQU,KACRq7gB,EAAU,IAAI9/K,GAAUlzV,EAAQ,CAChC22V,SAAUh/V,KAAKg/V,SACfhB,WAAY,IAAM0kK,IAClBnhgB,OAAO,EACPg/V,OAAQvgW,KAAKugW,OAAO1gW,KAAKG,MACzB2+V,UAAW3+V,KAAK693B,cAAch+3B,KAAKG,MACnCggW,KAAM,SAAU3/V,GACZ,IACIyotB,EACAg1K,EAFA/0K,EAAYzptB,EAAMs73B,YAAYt73B,EAAMy33B,UAGpCgH,EAAW,CACXC,YAAa1+3B,EAAMy33B,SACnBhg2B,MAAO12B,EAAE02B,MACT1uB,OAAQhI,EAAEgI,OACV413B,YAAa593B,EAAEgI,OAAOotF,QAAQ,IAAMita,KACpCy3E,cAAe76kB,EAAM0M,aACrBygB,MAAOs8rB,GAEX,GAAKr7M,GAAMrtgB,EAAEgI,OAAOotF,QAAQ,IAAMm/xB,OAAcv03B,EAAEgI,OAAOotF,QAAQ,IAAMm/xB,KAAS93e,YAAYx9Y,EAAM6V,UAC9F7V,EAAM0/V,WAAa,IAAMsvhB,IAGxB,CAgBD,GAfMju3B,EAAEgI,OAAOotF,QAAQn2F,EAAM0/V,WAAqC,UAAvB1/V,EAAMg7hB,cAS7CppgB,SAASzd,KAAKtN,MAAM+yiB,OAAS,GAC7B55iB,EAAMy33B,SAASn91B,cAAc,IAAMw71B,KAAUjv3B,MAAMohQ,WAAa,SAC5DjoQ,EAAM0M,aAAak8Q,UAAUh1P,SAASmlgB,MACtCpwQ,GAAY,CAAC3oR,EAAM0M,cAAeqshB,OAXtCnngB,SAASzd,KAAKtN,MAAM+yiB,OAAS,cAC7B1wR,GAAS,CAAClpR,EAAM0M,cAAeqshB,KAC3B/4hB,EAAMy33B,SAAS7umB,UAAUh1P,SAASmlgB,MAClCpwQ,GAAY,CAAC3oR,EAAMy33B,UAAW1+V,KAElC/4hB,EAAMy33B,SAASn91B,cAAc,IAAMw71B,KAAUjv3B,MAAMohQ,WAAa,WASzC,eAAvBjoQ,EAAMg7hB,eAAkC5sB,GAAMpugB,EAAM6V,QAAQykB,cAAc,eAAgB,CAC1F,IAAIsk2B,EAAoB5+3B,EAAM6V,QAAQykB,cAAc,uBAChDuk2B,EAAmB7+3B,EAAM6V,QAAQykB,cAAc,sBAC/Cwk2B,EAAa9+3B,EAAM6V,QAAQykB,cAAc,mBACxC8ze,GAAMwwX,IAAsBt63B,KAAK8Y,IAAKwh3B,EAAkB/tnB,YAAc,EACvE+tnB,EAAkBv7kB,YAAcrjT,EAAM0M,aAAa22S,WAAarjT,EAAM0M,aAAamkQ,cACnFiunB,EAAWnwuB,YAAc,KAExBy/W,GAAMywX,IAAqBv63B,KAAK8Y,IAAKyh3B,EAAiBx7kB,WAAaw7kB,EAAiBhunB,YACrF7wQ,EAAM0M,aAAa22S,YAAew7kB,EAAiBhunB,YAAc,IACjEiunB,EAAWnwuB,YAAc,GAEjC,CACA3uJ,EAAM0M,aAAa7F,MAAM44R,cAAgB,OACzC++lB,EAAWroyB,GAAQp1F,EAAEgI,OAAQ,IAAMq6f,IAAc,gBACjD,IAAI27X,EAAqB,EACE,eAAvB/+3B,EAAMg7hB,cAAkC5sB,GAAMpugB,EAAM6V,QAAQykB,cAAc,iBAC1Eyk2B,EAAqB/+3B,EAAM6V,QAAQykB,cAAc,sBAAsBu2O,aAE3D,MAAZ2tnB,IAAqBA,EAASnvmB,WAAWrvR,EAAMy33B,WAC/C+G,EAASroyB,QAAQ,IAAMm/xB,KAASjmmB,WAAWrvR,EAAMy33B,SAASthyB,QAAQ,IAAMm/xB,SACxE9rK,EAAYxptB,EAAMs73B,YAAYkD,IACd/0K,GACXnltB,KAAK8Y,IAAKoh3B,EAASn7kB,WAAam7kB,EAAS3tnB,YACtC7wQ,EAAM0M,aAAa22S,YAAem7kB,EAAS3tnB,YAAc,GAC7D7wQ,EAAMg/3B,WAAWR,EAAU/0K,EAAWD,GAEtCA,EAAYC,GACXnltB,KAAK8Y,IAAIoh3B,EAAS3tnB,YAAc,GAAK2tnB,EAASn7kB,WAC3C07kB,EAAsB/+3B,EAAM0M,aAAa22S,WAAarjT,EAAM0M,aAAamkQ,aAC7E7wQ,EAAMg/3B,WAAWR,EAAU/0K,EAAWD,IAG9CxptB,EAAMi/3B,aAAej/3B,EAAMs73B,YAAYt73B,EAAMy33B,UAC7Cz33B,EAAMghS,QAAQ,WAAYy9lB,EAC9B,MArDIz+3B,EAAMghS,QAAQ,WAAYy9lB,EAsDlC,EACA17hB,SAAUriW,KAAKw+3B,aAAa3+3B,KAAKG,QAErCA,KAAKs23B,eAAelq3B,KAAKivgB,EAC7B,EACAlhe,EAAIxpC,UAAU4vV,OAAS,SAAUlgW,GAc7B,OAbAL,KAAKgM,aAAehM,KAAKc,cAAc,OACnCT,EAAE8U,UACFnV,KAAKgM,aAAgB3L,EAAE8U,QAAQguB,WAAU,GACzCqlP,GAAS,CAACxoR,KAAKgM,cAAe,uBAC1BhM,KAAKmV,QAAQykB,cAAc,IAAM001B,KAAYpmmB,UAAUh1P,SAAS+h2B,MAChEzsmB,GAAS,CAACxoR,KAAKgM,cAAeip3B,KAElChtmB,GAAY,CAACjoR,KAAKgM,aAAa4tB,cAAc,IAAMw71B,MAAY,YAC1D1nX,GAAM1tgB,KAAKgM,aAAa4tB,cAAc,uBACvCzG,GAAOnzB,KAAKgM,aAAa4tB,cAAc,sBAE3C1I,SAASzd,KAAKie,YAAY1xB,KAAKgM,eAE5BhM,KAAKgM,YAChB,EACAmuC,EAAIxpC,UAAUkt3B,cAAgB,SAAUx93B,GACpC,IAAIf,EAAQU,KACZA,KAAKg33B,cAAgBh33B,KAAK8nD,MAAM7hD,KAAI,SAAUiU,GAAK,OAAOA,CAAG,IAC7Dla,KAAK+23B,SAAW123B,EAAE8U,QAClB,IAAI4o3B,EAAW,CACXC,YAAa393B,EAAE8U,QACf4hB,MAAO12B,EAAE02B,MACT1uB,OAAQhI,EAAEgI,OACV413B,YAAa,KACbxx2B,MAAOzsB,KAAK463B,YAAY563B,KAAK+23B,UAC7B58S,cAAen6kB,KAAKgM,aACpB80E,QAAQ,GAEZ9gF,KAAKsgS,QAAQ,cAAey9lB,GAAU,SAAUU,GAC5C,GAAIA,EAAgB39yB,OAAQ,CACxB,IAAIu6b,EAAUh7gB,EAAE8U,QAAQ63U,cAAc,GACjCjhB,GAAkBsvM,IACnBA,EAAQz9K,WAAWv9V,EAAE02B,OAEzBuzT,GAAOhrV,EAAM0M,aACjB,MAEI1M,EAAMg63B,oBACN9wmB,GAAS,CAAClpR,EAAMyngB,QAAQnte,cAAc,IAAMu71B,MAAiB98V,KAC7D/4hB,EAAMy33B,SAASn91B,cAAc,IAAMw71B,KAAUjv3B,MAAMohQ,WAAa,QAExE,GACJ,EACAptN,EAAIxpC,UAAU2t3B,WAAa,SAAUR,EAAUY,EAAY51K,GACvD,GAAI9otB,KAAK8nD,MAAM1kD,OAAS,EAAG,CACvB,IAAImyB,EAAOv1B,KAAKg33B,cAAc0H,GAC9B1+3B,KAAKg33B,cAAcxh2B,OAAOkp2B,EAAY,GACtC1+3B,KAAKg33B,cAAcxh2B,OAAOszrB,EAAW,EAAGvzrB,EAC5C,CAIA,GAH0B,aAAtBv1B,KAAKs6hB,cACLwjW,EAAStp2B,WAAWG,aAAa30B,KAAK+23B,SAAU+G,EAASzqmB,oBAEzDqrmB,EAAa51K,EACb,GAAM9otB,KAAK+23B,SAASlhmB,cAAelH,WAAWmvmB,EAASjomB,eA0BnD71R,KAAK+23B,SAASvi2B,WAAWG,aAAa30B,KAAK+23B,SAAU+G,QAzBrD,GAA0B,aAAtB993B,KAAKs6hB,aACL,GAAIwjW,EAASnvmB,WAAWmvmB,EAASjomB,cAAcv0I,WAAY,CACvD,IAAI4qa,EAAiBlsjB,KAAK+23B,SAASvi2B,WACnCsp2B,EAAStp2B,WAAWG,aAAa30B,KAAK+23B,SAAU+G,GAChD5xU,EAAev3hB,aAAamp2B,EAASjomB,cAAcv0I,UAAW4qa,EAAe/ihB,WAAW,GAC5F,MAEInpC,KAAK+23B,SAASvi2B,WAAWG,aAAcmp2B,EAASjomB,cAAcv0I,UAAYthJ,KAAK+23B,SAASlhmB,cAAc1sP,WAAW,IACjH201B,EAAStp2B,WAAWG,aAAa30B,KAAK+23B,SAAU+G,OAGnD,CACD,IAAIa,EAAWb,EAASjomB,cAAev0I,UACvC,GAAIw8uB,EAASnvmB,WAAWgwmB,GAAU,CAC1BzyU,EAAiBlsjB,KAAK+23B,SAASvi2B,WACnCsp2B,EAAStp2B,WAAWG,aAAa30B,KAAK+23B,SAAU+G,GAChD5xU,EAAev3hB,aAAagq2B,EAASzyU,EAAe/ihB,WAAW,GACnE,MAEInpC,KAAK+23B,SAASvi2B,WAAWG,aAAcmp2B,EAASjomB,cAAev0I,UAAWthJ,KAAK+23B,SAASlhmB,cAAc1sP,WAAW,IACjH201B,EAAStp2B,WAAWG,aAAa30B,KAAK+23B,SAAU+G,EAExD,CAMJY,EAAa51K,IACP9otB,KAAK+23B,SAASlhmB,cAAelH,WAAWmvmB,EAASjomB,eAWnD71R,KAAK+23B,SAASvi2B,WAAWG,aAAa30B,KAAK+23B,SAAU+G,EAASzqmB,oBAVpC,aAAtBrzR,KAAKs6hB,cACLt6hB,KAAK+23B,SAASlhmB,cAAcnkQ,YAAYos2B,EAASjomB,cAAcvrP,mBAC/Dwz1B,EAAStp2B,WAAWG,aAAa30B,KAAK+23B,SAAU+G,EAASlp2B,eAGzD50B,KAAK+23B,SAASvi2B,WAAWG,aAAcmp2B,EAASjomB,cAAev0I,UAAWthJ,KAAK+23B,SAASlhmB,cAAc1sP,WAAW,IACjH201B,EAAStp2B,WAAWG,aAAa30B,KAAK+23B,SAAU+G,IAOhE,EACA3j1B,EAAIxpC,UAAU6t3B,aAAe,SAAUn+3B,GACnC,IAAIf,EAAQU,KACZsqV,GAAOtqV,KAAKgM,cACZhM,KAAKgM,aAAe,KACpBhM,KAAK+23B,SAASn91B,cAAc,IAAMw71B,KAAUjv3B,MAAMohQ,WAAa,UAC/Dr2O,SAASzd,KAAKtN,MAAM+yiB,OAAS,GAC7B,IAAI0lV,EAAe,CACfZ,YAAah+3B,KAAK+23B,SAClBhg2B,MAAO12B,EAAE02B,MACT1uB,OAAQhI,EAAEgI,OACV413B,YAAaj+3B,KAAK223B,OAAO323B,KAAKu+3B,cAC9BpkT,cAAe,KACf1tjB,MAAOzsB,KAAKu+3B,aACZz9yB,QAAQ,GAEZ9gF,KAAKsgS,QAAQ,UAAWs+lB,GAAc,SAAUC,GACxCA,EAAgB/9yB,OAChBxhF,EAAMu5V,UAGFv5V,EAAMwoD,MAAM1kD,OAAS,GAAK9D,EAAM033B,cAAc5z3B,OAAS,GACvD9D,EAAMwoD,MAAQxoD,EAAM033B,cACpB133B,EAAM+3b,aAAe/3b,EAAMi/3B,aAC3Bj/3B,EAAMu5V,YAGNv5V,EAAMy33B,SAASn91B,cAAc,IAAMw71B,KAAUjv3B,MAAMohQ,WAAa,GAChE0gB,GAAY,CAAC3oR,EAAMyngB,QAAQnte,cAAc,IAAMu71B,MAAiB98V,KAChE/4hB,EAAMu73B,UAAUv73B,EAAMi/3B,aAAc,MAAM,GAGtD,IACAv+3B,KAAK+23B,SAAW,IACpB,EASA580B,EAAIxpC,UAAUit3B,UAAY,SAAUnx2B,EAAO7qB,GACvC,IAAImlgB,EAAUp8K,GAAU,IAAM+3K,IAAa1igB,KAAKmV,SAASsX,GACrDihf,GAAM3G,MAGI,IAAVnlgB,GACAmlgB,EAAQ7+O,UAAU/0P,OAAO+9f,IAAaQ,KACtC3qB,EAAQz8d,kBAAkBtV,aAAa,WAAY+xe,EAAQz8d,kBAAkBhY,aAAa,oBAG1Fy0e,EAAQ7+O,UAAU90P,IAAI89f,IAAaQ,KACnC3qB,EAAQz8d,kBAAkBvV,gBAAgB,YACtCgye,EAAQ7+O,UAAUh1P,SAASswe,MAC3BxjgB,KAAKwqV,OAAO/9T,EAAQ,IAGvBihf,GAAM1tgB,KAAK8nD,MAAMr7B,MAClBzsB,KAAK8nD,MAAMr7B,GAAO7d,UAAYhN,EAC9B5B,KAAKosV,YAET26K,EAAQz8d,kBAAkBtV,aAAa,iBAA4B,IAAVpzB,EAAkB,QAAU,QACzF,EAQAu4C,EAAIxpC,UAAU+s3B,OAAS,SAAU510B,EAAOr7B,GACpC,IAAIntB,EAAQU,KACR8+3B,EAAU,CAAEC,WAAYj30B,EAAOg5B,QAAQ,GACtC9gF,KAAKw43B,UAQNx43B,KAAKg/3B,iBAAiBl30B,EAAOr7B,GAP7BzsB,KAAKsgS,QAAQ,SAAUw+lB,GAAS,SAAUG,GACjCA,EAAcn+yB,QACfxhF,EAAM0/3B,iBAAiBl30B,EAAOr7B,EAEtC,IAKAzsB,KAAKywW,SACLzwW,KAAKs6V,sBAEb,EACAngT,EAAIxpC,UAAUqu3B,iBAAmB,SAAUl30B,EAAOr7B,GAC9C,IAAIntB,EAAQU,KACRk/3B,EAAe,EAEnB,GADAl/3B,KAAKmy3B,OAAS3niB,GAAO,IAAM8jiB,IAAYtu3B,KAAKmV,SACxCu4f,GAAM1tgB,KAAKmy3B,QACXny3B,KAAK8nD,MAAQA,EACb9nD,KAAKs43B,gBACLt43B,KAAKw83B,oBAEJ,CACD,IAAIjjc,EAAa5uG,GAAU,kBAAoB+3K,IAAa1igB,KAAKmV,SAAS/R,OAO1E,GANmB,IAAfm2b,IACA2lc,EAAel/3B,KAAK0vD,UAAY,GAEhCg+c,GAAMjhf,KACNA,EAAQ8sa,EAAa,GAErBA,EAAa9sa,GAASA,EAAQ,GAAK5qB,MAAM4qB,GACzC,OAEe,IAAf8sa,GAAqBm0E,GAAM1tgB,KAAKmy3B,UAChCny3B,KAAKmy3B,OAAOhs3B,MAAMi+J,QAAU,IAE3BspW,GAAM1tgB,KAAK823B,UACZ923B,KAAK823B,QAAQ5umB,UAAU90P,IAAIilgB,KAE/Br4hB,KAAK+mgB,QAAUv8K,GAAO,IAAM+qiB,IAAcv13B,KAAK633B,gBAC/C733B,KAAKyugB,OAAQ,EACb,IAAI0wX,EAAan/3B,KAAKi43B,YAAYnw0B,EAAOr7B,GACzCzsB,KAAKyugB,OAAQ,EACb,IACI2wX,EADA9tc,EAAM,EAEVxpY,EAAMzhD,SAAQ,SAAUkvB,EAAM2l2B,GAa1B,GAZAkE,EAAc7p2B,EAAKg4Z,gBAAkBh4Z,EAAKm5J,OAAOzuJ,KAC3Cyte,GAAMn4e,EAAKg4Z,gBAAkBh4Z,EAAKm5J,SAAWg/U,GAAM0xX,IAC7B,IAAvBA,EAAYh83B,SAAkBsqgB,GAAMn4e,EAAKm5J,SAAWg/U,GAAMn4e,EAAKm5J,OAAOu9P,WACnEkzc,EAAWjE,KACPxtX,GAAMn4e,EAAKY,MACXZ,EAAKY,GAAK8ggB,IAAW33hB,EAAM6gT,MAAQ,IAAM61kB,KAAiBkJ,EAAehE,GAAOpk3B,YAEpFqo3B,EAAWjE,GAAO5ke,eAAe,WAAa/gY,EAAKY,IAEvD72B,EAAMwoD,MAAMtyB,OAAQ/I,EAAQ6ka,EAAM,EAAG/7Z,GACrC+7Z,KAEAhyb,EAAMs7mB,aAAeltG,GAAMn4e,EAAKm5J,UAAYg/U,GAAMn4e,EAAKm5J,OAAOzuJ,MAAO,CACrE,IAAIi1S,EAAKgqjB,EAAehE,EACpBvxiB,EAAMrqV,EAAMwB,cAAc,MAAO,CACjCq1B,GAAIq41B,IAAclv3B,EAAM6gT,MAAQ,IAAM+0B,EAAIn0U,UAAWk2hB,IACrDxtM,MAAO,CAAExoV,KAAM,WAAY,kBAAmBg2hB,IAAW,IAAM/hN,KAEnE51U,EAAMkuhB,OAAO74f,aAAag1T,EAAKrqV,EAAMkuhB,OAAO1nhB,SAAU2mB,EAAQyu2B,IAC9D,IAAIa,EAASz83B,EAAM863B,cAAc963B,EAAMkuhB,OAAQt4M,EAAGp+T,YAClDxX,EAAM+phB,WAAW0yW,EAAQxm2B,EAAKxgB,QAAS,SAAU0X,EACrD,CACJ,IACAzsB,KAAKw23B,MAAM7yV,SAASw7V,EAAY1y2B,GAC3BzsB,KAAKw43B,WACNx43B,KAAKsgS,QAAQ,QAAS,CAAEy+lB,WAAYj30B,IAEpC9nD,KAAKq3b,eAAiB5qa,EACtBzsB,KAAKwqV,OAAO/9T,IAGZzsB,KAAKy63B,kBACLz63B,KAAK223B,OAAShsiB,GAAU,IAAM+3K,IAAa1igB,KAAK633B,iBAEpD733B,KAAKw83B,eACT,CACJ,EAOAri1B,EAAIxpC,UAAUgs3B,UAAY,SAAUlw2B,GAChC,IAAIntB,EAAQU,KACRgwhB,EAAMrlM,GAAU,IAAM+3K,IAAa1igB,KAAKmV,SAASsX,GACrD,IAAIihf,GAAMsiB,GAAV,CAGA,IAAIqvW,EAAa,CAAEC,YAAatvW,EAAKuvW,aAAc9y2B,EAAOq0D,QAAQ,GAClE9gF,KAAKsgS,QAAQ,WAAY++lB,GAAY,SAAUG,GAC3C,IAAKA,EAAgB1+yB,OAAQ,CACzB,IAAI4tG,EAAS87J,GAAO,IAAMysM,IAAW33hB,EAAM6gT,MAAQ,IAAM7gT,EAAM+63B,SAASrqW,EAAI75f,IAAKq0T,GAAO,IAAM+qiB,IAAcj23B,EAAM6V,UAC7Gu4f,GAAMh/U,IACPpvL,EAAMk+3B,iBAAiB9usB,EAAQ,iBAAkBg0U,KAErDpjgB,EAAMk33B,MAAMpoX,YAAY3hf,GACpBntB,EAAMiq0B,kBAAqB98yB,IAAU/b,MAAMC,UAAUhG,QAAQhL,KAAKL,EAAM633B,eAAgBnnW,EAAI75f,MAC5F1J,EAAQ/b,MAAMC,UAAUhG,QAAQhL,KAAKL,EAAM633B,eAAgBnnW,EAAI75f,KAEnE,IAAIsp2B,EAAiBng4B,EAAM633B,eAAexs3B,QAAQqlhB,EAAI75f,IACtD72B,EAAMwoD,MAAMtyB,OAAOiq2B,EAAgB,GACnCng4B,EAAM633B,eAAe3h2B,OAAOiq2B,EAAgB,GAC5Cng4B,EAAMg93B,sBACN,IAAIoD,EAASl1iB,GAAO,IAAMgkiB,IAAclv3B,EAAM6gT,MAAQ,IAAM7gT,EAAM+63B,SAASrqW,EAAI75f,IAAKq0T,GAAO,IAAMgkiB,IAAalv3B,EAAM6V,UAC/Gu4f,GAAMgyX,KACPpg4B,EAAMk+3B,iBAAiBkC,EAAQ,UAAWzoW,KAC1C3sM,GAAOo1iB,IAEXpg4B,EAAMghS,QAAQ,UAAWk/lB,GACrBlg4B,EAAMg33B,gBAAkBh33B,EAAMg33B,eAAelz3B,OAAS,IACtD9D,EAAMg33B,eAAe7p2B,GAAO2qH,UAC5B93I,EAAMg33B,eAAe7p2B,GAAS,KAC9BntB,EAAMg33B,eAAe9g2B,OAAO/I,EAAO,IAEnCujgB,EAAI9nQ,UAAUh1P,SAASswe,MACvB/2e,EAASA,EAAQk+T,GAAU,IAAM+3K,IAAc,SAAW+yX,IAAe,IAAKn23B,EAAM6V,SAAS/R,OAAS,EAAKqpB,EAAQ,EAAIA,EACvHntB,EAAMq3iB,iBAAkB,EACxBr3iB,EAAM+3b,aAAe5qa,EACrBntB,EAAMkrV,OAAO/9T,IAERA,IAAUntB,EAAM+3b,eACjB5qa,EAAQntB,EAAM+3b,eACd5qa,EAAQntB,EAAM633B,eAAexs3B,QAAQrL,EAAMq33B,OAAOr33B,EAAM+3b,cAAclha,IACtE72B,EAAM2sV,cAAc,CAAEorG,aAAc5qa,GAAS,EAAIA,EAAQntB,EAAM+3b,eAAgB,GAC/E/3b,EAAM85H,UAAY95H,EAAM+3b,cAE5B/3b,EAAMq33B,OAAShsiB,GAAU,IAAM+3K,IAAapjgB,EAAMu43B,iBAEK,IAAvDltiB,GAAU,IAAM+3K,IAAapjgB,EAAM6V,SAAS/R,SAC5C9D,EAAM6y3B,OAAOhs3B,MAAMi+J,QAAU,QAEjC9kK,EAAMq3iB,iBAAkB,CAC5B,CACJ,GA9CA,CA+CJ,EAQAx8f,EAAIxpC,UAAUgt3B,QAAU,SAAUlx2B,EAAO7qB,GACrC,IAAIkmD,EACAvyB,EAAOo1T,GAAU,IAAM+3K,IAAa1igB,KAAKmV,SAASsX,GACtD,IAAIihf,GAAMn4e,GAAV,CAOA,GAJIm4e,GAAM9rgB,KACNA,GAAQ,GAEZ5B,KAAK823B,QAAQ5umB,UAAU90P,IAAIilgB,MACb,IAAVz2hB,EAGA,GAFA2zB,EAAK2yP,UAAU90P,IAAIilgB,KAEE,KADrBvwe,EAAQ6iS,GAAU,IAAM+3K,IAAc,SAAW21B,IAAa,IAAKr4hB,KAAK+mgB,UAC9D3jgB,QAAgBmyB,EAAK2yP,UAAUh1P,SAASswe,MAC9C,GAAc,IAAV/2e,EACA,IAAK,IAAItgB,EAAIsgB,EAAQ,EAAGtgB,GAAK,EAAGA,IAAK,CACjC,IAAKnM,KAAK223B,OAAOxq3B,GAAG+7Q,UAAUh1P,SAASmlgB,KAAa,CAChDr4hB,KAAKwqV,OAAOr+U,GACZ,KACJ,CACK,GAAU,IAANA,EACL,IAAK,IAAI2U,EAAI2L,EAAQ,EAAG3L,EAAI9gB,KAAK223B,OAAOvz3B,OAAQ0d,IAC5C,IAAK9gB,KAAK223B,OAAO712B,GAAGonQ,UAAUh1P,SAASmlgB,KAAa,CAChDr4hB,KAAKwqV,OAAO1pU,GACZ,KACJ,CAGZ,MAGA,IAASA,EAAI2L,EAAQ,EAAG3L,EAAI9gB,KAAK223B,OAAOvz3B,OAAQ0d,IAC5C,IAAK9gB,KAAK223B,OAAO712B,GAAGonQ,UAAUh1P,SAASmlgB,KAAa,CAChDr4hB,KAAKwqV,OAAO1pU,GACZ,KACJ,OAIc,IAAjBgnC,EAAM1kD,QACXpD,KAAKmV,QAAQ+yQ,UAAU90P,IAAIilgB,UAI/Br4hB,KAAKmV,QAAQ+yQ,UAAU/0P,OAAOklgB,KAC9Bvwe,EAAQ6iS,GAAU,IAAM+3K,IAAc,SAAW21B,IAAa,IAAKr4hB,KAAK+mgB,SACxExxe,EAAK2yP,UAAU/0P,OAAOklgB,KACD,IAAjBvwe,EAAM1kD,QACNpD,KAAKwqV,OAAO/9T,GAGpBzsB,KAAKy63B,kBACLll2B,EAAKP,aAAa,cAAe,GAAKpzB,GACZ,UAAtB5B,KAAKs6hB,cAA4Bt6hB,KAAKw23B,OACtCx23B,KAAKw23B,MAAM54V,iBAjDf,CAmDJ,EACAzjf,EAAIxpC,UAAUkq3B,UAAY,SAAU5h3B,EAAM8d,EAAOs7X,QAC/B,IAAVt7X,IAAoBA,EAAQ,WACX,IAAjBs7X,IAA2BA,GAAe,GAC9CryZ,KAAKqyZ,aAAeA,EACpBryZ,KAAKwqV,OAAOvxU,EAAM8d,EACtB,EAQAojB,EAAIxpC,UAAU65U,OAAS,SAAUvxU,EAAM8d,GACnC,IAAIz3B,EAAQU,KACRu53B,EAAYv53B,KAAK633B,eACrB733B,KAAK+mgB,QAAUv8K,GAAO,IAAM+qiB,IAAcgE,GAC1Cv53B,KAAK223B,OAAShsiB,GAAU,IAAM+3K,IAAa62X,GAC3Cv53B,KAAK+U,QAAUy1U,GAAO,IAAMgkiB,IAAaxu3B,KAAKmV,SAC9CnV,KAAK623B,SAAW723B,KAAK223B,OAAO323B,KAAKo5H,WAC7Bs0Y,GAAM1tgB,KAAKq3b,eAAkBr3b,KAAKq3b,aAAe,GAAOr3b,KAAK223B,OAAOvz3B,QAAUpD,KAAKq3b,cAAiBx1b,MAAM7B,KAAKq3b,cAC/Gr3b,KAAKq3b,aAAe,EAGpBr3b,KAAK2/3B,WAAa3/3B,KAAKq63B,SAASr63B,KAAK223B,OAAO323B,KAAKq3b,cAAclha,IAEnE,IAAI65f,EAAMhwhB,KAAK223B,OAAO192B,GAClBy0f,GAAMsiB,GACNhwhB,KAAK2/3B,WAAa,IAGlB3/3B,KAAKo83B,YAAcp83B,KAAKq63B,SAASrqW,EAAI75f,IAEpCu3e,GAAM1tgB,KAAK623B,WAAc723B,KAAK623B,SAAS3umB,UAAUh1P,SAASg+f,MAC3DlxhB,KAAK623B,SAAS/w3B,SAASyvB,KAAK,GAAGP,aAAa,WAAYh1B,KAAK623B,SAASvs1B,kBAAkBhY,aAAa,aAEzG,IAAI2p2B,EAAW,CACXll2B,MAAOA,EACP2qa,aAAc1hc,KAAK623B,SACnBqF,cAAel83B,KAAKo5H,UACpBi+T,aAAcr3b,KAAK223B,OAAO323B,KAAKq3b,cAC/B6I,cAAelgc,KAAKq3b,aACpB8kc,gBAAkBzuX,GAAM1tgB,KAAK+U,SACsD,KAA/Ey1U,GAAO,IAAMgkiB,IAAcxu3B,KAAKmgT,MAAQ,IAAMngT,KAAK2/3B,WAAY3/3B,KAAK+U,SACxE6q3B,cAAe5vW,EACf6vW,eAAgB5m3B,EAChB6m3B,iBAAmBpyX,GAAM1tgB,KAAK+U,SACsD,KAAhFy1U,GAAO,IAAMgkiB,IAAcxu3B,KAAKmgT,MAAQ,IAAMngT,KAAKo83B,YAAap83B,KAAK+U,SACzEsn3B,SAAUr83B,KAAKk33B,UACf7ke,aAAcryZ,KAAKqyZ,aACnBvxU,QAAQ,GAEP9gF,KAAKq6gB,WAQNr6gB,KAAK8/3B,iBAAiB7m3B,EAAMjZ,KAAKqyZ,cAPjCryZ,KAAKsgS,QAAQ,YAAa27lB,GAAU,SAAU8D,GACrCA,EAAWj/yB,QACZxhF,EAAMwg4B,iBAAiB7m3B,EAAM3Z,EAAM+yZ,aAE3C,IAKJryZ,KAAKqyZ,cAAe,CACxB,EACAl4W,EAAIxpC,UAAUmv3B,iBAAmB,SAAU7m3B,EAAMo5Y,GAC7C,GAAoB,kBAATp5Y,EAAmB,CAC1B,IAAKy0f,GAAM1tgB,KAAK223B,OAAO192B,MAAWjZ,KAAK223B,OAAO192B,GAAMivQ,UAAUh1P,SAASg+f,MACnElxhB,KAAK223B,OAAO192B,GAAMivQ,UAAUh1P,SAASmlgB,MACrC,IAAK,IAAIlshB,EAAI8M,EAAO,EAAG9M,EAAInM,KAAK8nD,MAAM1kD,OAAQ+I,IAAK,CAC/C,IAA+B,IAA3BnM,KAAK8nD,MAAM37C,GAAGyC,WAAgD,IAA1B5O,KAAK8nD,MAAM37C,GAAG0jS,QAAkB,CACpE52R,EAAO9M,EACP,KACJ,CAEI8M,EAAO,CAEf,CAEJ,GAAIjZ,KAAK223B,OAAOvz3B,OAAS6V,GAAQA,GAAQ,IAAMpX,MAAMoX,GAGjD,GAFAjZ,KAAKo5H,UAAYp5H,KAAKq3b,aACtBr3b,KAAK623B,SAAW723B,KAAK223B,OAAO323B,KAAKo5H,WAC7Bp5H,KAAK223B,OAAO192B,GAAMivQ,UAAUh1P,SAASui2B,MAAiBz13B,KAAK073B,kBAE3D,GADA173B,KAAKkooB,UAAUlooB,KAAKmqsB,aAAanqsB,KAAK223B,OAAO192B,IAAQ,KAAMo5Y,IACrDq7G,GAAM1tgB,KAAK8nD,QAAU9nD,KAAK8nD,MAAM1kD,OAAS,GAAMpD,KAAKup0B,iBAAkB,CACxEvp0B,KAAK223B,OAAShsiB,GAAU,IAAM4qiB,IAAe,KAAO7yX,IAAa1igB,KAAKmy3B,QACtE,IAAI581B,EAAOv1B,KAAK8nD,MAAM7uC,GACtBjZ,KAAK8nD,MAAMtyB,OAAOvc,EAAM,GACxBjZ,KAAK8nD,MAAMtyB,OAAOx1B,KAAK223B,OAAOvz3B,OAAS,EAAG,EAAGmyB,GAC7C,IAAI2nrB,EAASl9sB,KAAKm33B,eAAel+2B,GACjCjZ,KAAKm33B,eAAe3h2B,OAAOvc,EAAM,GACjCjZ,KAAKm33B,eAAe3h2B,OAAOx1B,KAAK223B,OAAOvz3B,OAAS,EAAG,EAAG85sB,EAC1D,OAGAl9sB,KAAKkooB,UAAUjvnB,EAAM,KAAMo5Y,QAI/BryZ,KAAKkooB,UAAU,EAAG,KAAM71O,EAEhC,MACSp5Y,aAAiB6a,aACtB9zB,KAAKkooB,UAAUlooB,KAAK463B,YAAY3h3B,GAAO,KAAMo5Y,EAErD,EAOAl4W,EAAIxpC,UAAUirsB,aAAe,SAAUokL,GAEnC,IADA,IAAI/63B,EACKkH,EAAI,EAAGA,EAAInM,KAAK223B,OAAOvz3B,OAAQ+I,IAAK,CAEzC,GAAI6z3B,IADQhg4B,KAAK223B,OAAOxq3B,GAAGmmB,aAAa,WACf,CACrBrtB,EAAWkH,EACX,KACJ,CACJ,CACA,OAAOlH,CACX,EAQAk1C,EAAIxpC,UAAUwpb,QAAU,SAAUv4b,GAC9B5B,KAAK4+Y,YAAY5+Y,KAAKmV,QAAS+7gB,IAAatvhB,GAC5C5B,KAAKmV,QAAQ6f,aAAa,gBAAiB,GAAKpzB,EACpD,EAMAu4C,EAAIxpC,UAAU0pV,eAAiB,WAC3B,OAAOr6V,KAAK26V,aAAa,CAAC,eAAgB,YAC9C,EAOAxgT,EAAIxpC,UAAUo8U,cAAgB,WAC1B,MAAO,KACX,EASA5yS,EAAIxpC,UAAU+7U,kBAAoB,SAAUiF,EAASC,GAEjD,IADA,IAAItyV,EAAQU,KACHsP,EAAK,EAAGgmC,EAAK71C,OAAO8E,KAAKotV,GAAUriV,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CAE9D,OADWgmC,EAAGhmC,IAEV,IAAK,QACDknZ,GAASx2Z,KAAKmV,QAAS,CAAEqJ,MAAOkvT,GAAWikB,EAAQnzU,SACnD,MACJ,IAAK,SACDg4Y,GAASx2Z,KAAKmV,QAAS,CAAEyzI,OAAQ8kL,GAAWikB,EAAQ/oM,UACpD5oJ,KAAKyngB,kBAAiB,GACtB,MACJ,IAAK,WACD,IAAIuY,EAAYhghB,KAAKmV,QAAQykB,cAAc,IAAM001B,KACxB,KAArB18hB,EAAQge,UAAoB7jC,GAAkB6lB,EAAQge,WAStD5vW,KAAK4+Y,YAAY5+Y,KAAKmV,QAASw8U,EAAQie,UAAU,GAC5C7jC,GAAkBi0M,IACnBhghB,KAAK4+Y,YAAYohI,EAAWruL,EAAQie,UAAU,KAVlD5vW,KAAK4+Y,YAAY5+Y,KAAKmV,QAASy8U,EAAQge,UAAU,GACjD5vW,KAAK4+Y,YAAY5+Y,KAAKmV,QAASw8U,EAAQie,UAAU,GAC5C7jC,GAAkBi0M,KACnBhghB,KAAK4+Y,YAAYohI,EAAWpuL,EAAQge,UAAU,GAC9C5vW,KAAK4+Y,YAAYohI,EAAWruL,EAAQie,UAAU,KAStD,MACJ,IAAK,QACD5vW,KAAKs93B,0BAA0B3riB,EAASC,GACxC,MACJ,IAAK,kBACD5xV,KAAKk43B,eAAevmiB,EAAQwmiB,iBAC5B,MACJ,IAAK,mBACDn43B,KAAKu23B,yBACL,MACJ,IAAK,eACDv23B,KAAKq3b,aAAezlG,EAAQylG,aAC5Br3b,KAAKwqV,OAAOmH,EAAQ0lG,cACpB,MACJ,IAAK,kBACDr3b,KAAK29hB,kBAAkBhsM,EAAQ4liB,iBAC/B,MACJ,IAAK,YACDv33B,KAAKgye,OAAOrgJ,EAAQ0G,WACpB,MACJ,IAAK,eACDr4V,KAAKw23B,MAAMl8V,aAAe3oM,EAAQ2oM,aAClCt6hB,KAAKw23B,MAAMpqiB,WACXpsV,KAAKu23B,yBACL,MACJ,IAAK,mBACDv23B,KAAKyngB,kBAAiB,GACtBzngB,KAAKwqV,OAAOxqV,KAAKq3b,cACjB,MACJ,IAAK,aACGr3b,KAAKw23B,QACLx23B,KAAKw23B,MAAMlkW,WAAatyhB,KAAKsyhB,YAEjC,MACJ,IAAK,mBACDtyhB,KAAKw83B,gBACL,MACJ,IAAK,WACGx83B,KAAKup0B,mBACLvp0B,KAAKs23B,eAAejw3B,SAAQ,SAAUkvB,GAClCA,EAAKypU,SAAW1/V,EAAM0/V,QAC1B,IACAh/V,KAAK64V,WAIrB,CACJ,EAMA1+S,EAAIxpC,UAAUsv3B,iBAAmB,WAI7B,GAHIjg4B,KAAKywW,SAAWzwW,KAAK46mB,YACrB56mB,KAAKu6V,gBAEJv6V,KAAK46mB,WAiFL,CACD,IAAIg9Q,EAAW533B,KAAKmV,QAAQykB,cAAc,IAAM271B,KAC5Cpg3B,EAAUnV,KAAKmV,QAAQykB,cAAc,IAAM8oe,IAAc,IAAMc,KAC/D/2e,EAAQzsB,KAAK043B,gBAAgBvj3B,EAAQghB,IACrCu4J,EAASv5K,EAAQ+2C,UACjBg00B,EAAgBlg4B,KAAKmV,QAAQykB,cAAc,IAAM401B,KAAa501B,cAAc,IAAM4pe,KAAY19f,SAAS,GACvGq63B,EAAeD,EAAch31B,UACjCohT,GAAOn1U,GACPm1U,GAAO41iB,GACP,IAAI901B,EAAO,CACPrqC,UAAW2hgB,IAAc,IAAM40B,IAAe,IAAM9zB,IAAYrte,GAAI8ggB,IAAWj3hB,KAAKmgT,MAAQ,IAAM1zR,GAElG2z2B,EAAYpg4B,KAAKc,cAAc,OAAQ,CACvCC,UAAWm03B,IAAUhs1B,UAAWwlJ,EAAQ+6J,MAAO,CAAE,KAAQ,kBAC1Dt9S,UACCk01B,EAAQrg4B,KAAKc,cAAc,MAAO,CAClCC,UAAWs03B,IAAens1B,UAAWk31B,EAAYpg4B,KAAK023B,OAAOvq1B,YAC9DA,UAEC7P,GADAr3B,EAAWkQ,EAAQm1B,kBAAkBhY,aAAa,iBAC3CtyB,KAAKc,cAAc,MAAO,CACjCC,UAAWq03B,IAAUls1B,UAAWm31B,EAChC52iB,MAAO,CAAExkV,SAAUA,EAAU,gBAAiBA,EAAUhE,KAAM,MAAO,gBAAiBut3B,IAAcxu3B,KAAKmgT,MAAQ,IAAM1zR,EAAO,gBAAiB,OAAQ,gBAAiB,YAE5Kmr2B,EAASjj2B,aAAa30B,KAAKc,cAAc,MAAOsqC,GAAOws1B,EAAS9x3B,SAAS2mB,EAAQ,IACjFzsB,KAAKmV,QAAQykB,cAAc,IAAM8oe,IAAc,IAAMc,KAAY9xe,YAAY4K,GACzEgk2B,EAAStg4B,KAAKc,cAAc,MAAO,CAAEooC,UAAWi31B,IACpDng4B,KAAKmV,QAAQykB,cAAc,IAAM401B,KAAa501B,cAAc,IAAM4pe,KAAY9xe,YAAY4u2B,EAC9F,MA3GI,GAAItg4B,KAAKmV,QAAQykB,cAAc,IAAM8oe,IAAc,IAAMc,KAAa,CAClEl5K,GAAOtqV,KAAKmV,QAAQykB,cAAc,IAAM8oe,IAAc,IAAMc,KAAY19f,SAAS,IACjFwkV,GAAOtqV,KAAKmV,QAAQykB,cAAc,IAAM401B,KAAa501B,cAAc,IAAM4pe,KAAY19f,SAAS,IAC9F,IAAIyvB,EAAOv1B,KAAK8nD,MAAM9nD,KAAKq3b,cACvBngZ,EAAOw2d,GAAMn4e,EAAKm5J,SAAWg/U,GAAMn4e,EAAKm5J,OAAO27Q,cAAiB,GAAK90a,EAAKm5J,OAAO27Q,aACjF1wa,EAAO+ze,GAAMn4e,EAAKm5J,SAAWg/U,GAAMn4e,EAAKm5J,OAAOu9P,SAAY,GAAK12Z,EAAKm5J,OAAOu9P,QAC5EhsZ,EAAO1K,EAAKg4Z,gBAAkBh4Z,EAAKm5J,OAAOzuJ,KAC1Csg2B,EAAUvg4B,KAAKc,cAAc,MAAO,CAAEC,UAAWm03B,IAAUzriB,MAAO,CAAE,KAAQ,kBAC3EikL,GAAMzte,EAAKmI,SAIZpoC,KAAKi53B,kBAAkBsH,EAAStg2B,EAAMjgC,KAAKq3b,cAH3Ckpc,EAAQ7u2B,YAAYuO,GAKxB,IACIghP,EAAOjhR,KAAKc,cAAc,OAAQ,CAClCC,UAAWwigB,IAAY,IAAM+xX,IAAe,IAAMR,IAAW,IAAM590B,EAAM,IAAMvd,IAE/E6m2B,EAASxg4B,KAAKc,cAAc,MAAO,CAAEC,UAAWs03B,MACpDmL,EAAO9u2B,YAAY6u2B,GACL,KAATtg2B,QAAwB58B,IAAT48B,GAA+B,KAARtG,GAC1B,SAARud,GAA0B,QAARA,EACnBsp1B,EAAO7r2B,aAAassP,EAAMu/mB,EAAOl21B,mBAGjCk21B,EAAO9u2B,YAAYuvP,GAGvBjhR,KAAKq23B,aAAc,IAGF,KAAR181B,EAAc4m2B,EAAUt/mB,KACpBA,IACTqpE,GAAOi2iB,GACPC,EAAO9u2B,YAAYuvP,GACnBjhR,KAAKq23B,aAAc,GAG3B,IAAIpx3B,EAAWyogB,GAAMn4e,EAAKtwB,UAAY,KAAOswB,EAAKtwB,SAAS6R,WACvD2p3B,EAAWlr2B,EAAK3mB,SAAY,CAAC,EAAI,CAAE3J,SAAUA,EAAU,gBAAiBA,EAAUhE,KAAM,MAAO,gBAAiB,OAAQ,gBAAiB,SAC7Iu/3B,EAAO9u2B,YAAY1xB,KAAK023B,OAAOvz1B,WAAU,IACzC,IAAIu91B,EAAS1g4B,KAAKc,cAAc,MAAO,CAAEC,UAAWq03B,IAAU3riB,MAAOg3iB,IACrEC,EAAOhv2B,YAAY8u2B,GACP,QAARtp1B,GAAyB,WAARA,GACjBl3C,KAAKmV,QAAQ+yQ,UAAU90P,IAAI,mBAE/BpzB,KAAKmV,QAAQykB,cAAc,IAAM8oe,IAAc,IAAMc,KAAY9xe,YAAYgv2B,GAC7E,IAAIJ,EAAStg4B,KAAKc,cAAc,OAC5BwqW,EAAM/1U,EAAKxgB,QACXo/2B,OAAS,EACb,GAAmB,kBAAR7ohB,GAAoBoiK,GAAMpiK,EAAIpiU,WAIrC,GAHmB,kBAARoiU,GAAoBtrW,KAAK+sb,sBAChCzhF,EAAM8C,GAAmBxiU,SAAS0/T,IAEvB,MAAXA,EAAI,IAAyB,MAAXA,EAAI,GACtB,GAAIp6U,SAAS1gB,iBAAiB86V,GAAKloW,OAAQ,CACvC,IAAIwv3B,EAAS1h2B,SAAS0I,cAAc0xU,GACpC6ohB,EAASvB,EAAOzm1B,UAAU1Z,OAC1B6t2B,EAAO5u2B,YAAYkh2B,GACnBA,EAAOzs3B,MAAMi+J,QAAU,EAC3B,MAEIpkK,KAAK863B,eAAewF,EAAQh1hB,EAAK,UAAWtrW,KAAKq3b,mBAIrDr3b,KAAK863B,eAAewF,EAAQh1hB,EAAK,UAAWtrW,KAAKq3b,mBAIrDipc,EAAO5u2B,YAAY45U,GAElBoiK,GAAMymX,KAC2C,IAA9Cn03B,KAAKwv3B,YAAY7k3B,QAAQ2gW,EAAIx0V,aAC7B9W,KAAKwv3B,YAAYpj3B,KAAKk/V,EAAIx0V,YAGlC9W,KAAKmV,QAAQykB,cAAc,IAAMq9f,IAAW,IAAMzzB,KAAY9xe,YAAY4u2B,EAC9E,CA8BAtg4B,KAAKywW,SACLzwW,KAAKs6V,sBAEb,EAMAngT,EAAIxpC,UAAU4l3B,uBAAyB,WACnC,IAAI33W,EAAYp0L,GAAO,IAAMk4K,IAAc,IAAM+yX,IAAe,IAAMjyX,IAAYxjgB,KAAKmV,UAClFu4f,GAAMkR,IAAc5+gB,KAAK073B,kBAC1B173B,KAAKwqV,OAAOxqV,KAAK463B,YAAYh8W,IAEjC5+gB,KAAKs83B,qBACT,EACAvsiB,IAAW,CACPb,GAAW,GAAIkniB,MAChBj80B,EAAIxpC,UAAW,aAAS,GAC3Bo/U,IAAW,CACPjB,GAAS,SACV30S,EAAIxpC,UAAW,aAAS,GAC3Bo/U,IAAW,CACPjB,GAAS,SACV30S,EAAIxpC,UAAW,cAAU,GAC5Bo/U,IAAW,CACPjB,GAAS,KACV30S,EAAIxpC,UAAW,gBAAY,GAC9Bo/U,IAAW,CACPjB,GAAS,IACV30S,EAAIxpC,UAAW,oBAAgB,GAClCo/U,IAAW,CACPjB,GAAS,QACV30S,EAAIxpC,UAAW,uBAAmB,GACrCo/U,IAAW,CACPjB,GAAS,YACV30S,EAAIxpC,UAAW,wBAAoB,GACtCo/U,IAAW,CACPjB,GAAS,eACV30S,EAAIxpC,UAAW,oBAAgB,GAClCo/U,IAAW,CACPjB,GAAS,YACV30S,EAAIxpC,UAAW,cAAU,GAC5Bo/U,IAAW,CACPjB,IAAS,IACV30S,EAAIxpC,UAAW,yBAAqB,GACvCo/U,IAAW,CACPjB,IAAS,IACV30S,EAAIxpC,UAAW,2BAAuB,GACzCo/U,IAAW,CACPjB,IAAS,IACV30S,EAAIxpC,UAAW,uBAAmB,GACrCo/U,IAAW,CACPjB,IAAS,IACV30S,EAAIxpC,UAAW,wBAAoB,GACtCo/U,IAAW,CACPjB,MACD30S,EAAIxpC,UAAW,kBAAc,GAChCo/U,IAAW,CACPjB,MACD30S,EAAIxpC,UAAW,gBAAY,GAC9Bo/U,IAAW,CACPjB,IAAS,IACV30S,EAAIxpC,UAAW,wBAAoB,GACtCo/U,IAAW,CACPd,GAAQ,CAAC,EAAGkniB,MACbh80B,EAAIxpC,UAAW,iBAAa,GAC/Bo/U,IAAW,CACP94T,MACDkjB,EAAIxpC,UAAW,eAAW,GAC7Bo/U,IAAW,CACP94T,MACDkjB,EAAIxpC,UAAW,cAAU,GAC5Bo/U,IAAW,CACP94T,MACDkjB,EAAIxpC,UAAW,aAAS,GAC3Bo/U,IAAW,CACP94T,MACDkjB,EAAIxpC,UAAW,iBAAa,GAC/Bo/U,IAAW,CACP94T,MACDkjB,EAAIxpC,UAAW,gBAAY,GAC9Bo/U,IAAW,CACP94T,MACDkjB,EAAIxpC,UAAW,gBAAY,GAC9Bo/U,IAAW,CACP94T,MACDkjB,EAAIxpC,UAAW,eAAW,GAC7Bo/U,IAAW,CACP94T,MACDkjB,EAAIxpC,UAAW,mBAAe,GACjCo/U,IAAW,CACP94T,MACDkjB,EAAIxpC,UAAW,gBAAY,GAC9Bo/U,IAAW,CACP94T,MACDkjB,EAAIxpC,UAAW,eAAW,GAC7Bo/U,IAAW,CACP94T,MACDkjB,EAAIxpC,UAAW,iBAAa,GAC/BwpC,EAAM41S,IAAW,CACbT,IACDn1S,EAEP,CA/sEyB,CA+sEvB/4C,IC33EE8kD,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAsBzCu60B,IAA8B,SAAU750B,GAExC,SAAS650B,EAAavh4B,GAClB,IAAIE,EAAQwnD,EAAOnnD,KAAKK,KAAMZ,IAAUY,KAQxC,OAPAV,EAAMixW,kBAAmB,EACzBjxW,EAAM2zW,sBAAuB,EAC7B3zW,EAAM+zW,cAAgB,CAAE,SAAY,WACpC/zW,EAAM42W,uBAAyB,KAC/B52W,EAAMyzW,cAAgB,KACtBzzW,EAAM62W,iBAAkB,EACxB72W,EAAMwxW,QAAU,GACTxxW,CACX,CAUA,OArBA4mD,IAAUy60B,EAAc750B,GAYxB650B,EAAahw3B,UAAUyJ,OAAS,WAC5B,KAAMpa,KAAKmV,UAAYnV,KAAKuwW,kBAAqBvwW,KAAK2rV,aAAgB3rV,KAAKwwW,oBAKvE,OAAO13K,GAAAA,cAAoB,MAAO94L,KAAKgyW,uBAAwB,GAAG54V,OAAOpZ,KAAKZ,MAAM0G,SAAU9F,KAAK8wW,UAJnGhqT,EAAOn2C,UAAUyJ,OAAOza,KAAKK,MAC7BA,KAAKuwW,kBAAmB,CAKhC,EACOowhB,CACX,CAvBkC,CAuBhCxm1B,KAEFm7T,GAAYqrhB,IAAc,CAACzwhB,GAAep3K,GAAAA,YC/C1C,IAAI5yI,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GA0BzCw60B,IAAkC,SAAU950B,GAE5C,SAAS850B,IACL,OAAkB,OAAX950B,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAGA,OANAkmD,IAAU060B,EAAkB950B,GAI5B850B,EAAiB/rhB,WAAa,UAC9B+rhB,EAAiB9uhB,gBAAkB,CAAE,WAAc,eAC5C8uhB,CACX,CARsC,CAQpClrhB,IAEEmrhB,IAAmC,SAAU/50B,GAE7C,SAAS+50B,IACL,OAAkB,OAAX/50B,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAGA,OANAkmD,IAAU260B,EAAmB/50B,GAI7B+50B,EAAkBx0vB,aAAe,QACjCw0vB,EAAkBhshB,WAAa,WACxBgshB,CACX,CARuC,CAQrCnrhB,IC5CExvT,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAazC2pS,IAA0C,SAAUxoJ,EAAYl/L,EAAQiE,EAAKkkB,GAC7E,IAA2HhvB,EAAvH6e,EAAIld,UAAUC,OAAQkgH,EAAIjjG,EAAI,EAAIhY,EAAkB,OAATmoB,EAAgBA,EAAO/wB,OAAOk+B,yBAAyBt1B,EAAQiE,GAAOkkB,EACrH,GAAuB,kBAAZuN,SAAoD,oBAArBA,QAAQiyT,SAAyB1sO,EAAIvlF,QAAQiyT,SAASzoJ,EAAYl/L,EAAQiE,EAAKkkB,QACpH,IAAK,IAAIrkB,EAAIo7L,EAAWnkM,OAAS,EAAG+I,GAAK,EAAGA,KAAS3K,EAAI+lM,EAAWp7L,MAAIm3G,GAAKjjG,EAAI,EAAI7e,EAAE8hH,GAAKjjG,EAAI,EAAI7e,EAAE6G,EAAQiE,EAAKg3G,GAAK9hH,EAAE6G,EAAQiE,KAASg3G,GAChJ,OAAOjjG,EAAI,GAAKijG,GAAK7jH,OAAO4c,eAAehU,EAAQiE,EAAKg3G,GAAIA,CAChE,EAcI0+R,IAAO,aACPtrI,IAAU,YACVoqnB,IAAc,qBACdC,IAAa,oBACbC,IAAW,cACXC,IAAW,cAGXC,IAAa,gBACbr4lB,IAAQ,UACRz2B,IAAS,WACT+unB,IAAO,kBACPC,IAAU,YACVvlnB,IAAO,UACPwlnB,IAAW,iBACXjrnB,IAAQ,UACR2wN,IAAa,gBACbu6Z,IAAY,eACZC,IAAU,YACVr/e,IAAM,QACNs/e,IAAc,gBAEdC,IAAY,cACZC,IAAW,aACXC,IAAU,YACVC,IAAS,YACTC,IAAW,cACXC,IAAU,aACVC,IAAS,YAETC,IAAU,YACV5unB,IAAW,aACX6unB,IAAW,aACXC,IAAgB,mBAChBC,IAAU,YAEVjwL,IAAQ,UACRE,IAAgB,SAChBw6K,IAAe,qBACfD,IAAgB,UAEhB33R,IAAS,WAEThqG,IAAQ,eACRwqE,IAAQ,aAIR4sU,IAAwB,qBACxB5qoB,IAAW,aACX6qoB,IAAgB,YAChBC,IAAe,CACfC,SAAU,QACV/1c,SAAU,WACVD,SAAU,QACVG,SAAU,GACVC,YAAa,IAKb61c,IAAgC,SAAU170B,GAE1C,SAAS070B,IACL,OAAkB,OAAX170B,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAoDA,OAvDAkmD,IAAUs80B,EAAgB170B,GAI1BipS,IAAW,CACPjB,GAAS,UACV0ziB,EAAe7x3B,UAAW,aAAS,GACtCo/U,IAAW,CACPjB,GAAS,KACV0ziB,EAAe7x3B,UAAW,kBAAc,GAC3Co/U,IAAW,CACPjB,GAAS,aACV0ziB,EAAe7x3B,UAAW,gBAAY,GACzCo/U,IAAW,CACPjB,GAAS,gBACV0ziB,EAAe7x3B,UAAW,mBAAe,GAC5Co/U,IAAW,CACPjB,GAAS,mBACV0ziB,EAAe7x3B,UAAW,sBAAkB,GAC/Co/U,IAAW,CACPjB,GAAS,YACV0ziB,EAAe7x3B,UAAW,eAAW,GACxCo/U,IAAW,CACPjB,GAAS,OACV0ziB,EAAe7x3B,UAAW,UAAM,GACnCo/U,IAAW,CACPjB,GAAS,aACV0ziB,EAAe7x3B,UAAW,gBAAY,GACzCo/U,IAAW,CACPjB,GAAS,cACV0ziB,EAAe7x3B,UAAW,iBAAa,GAC1Co/U,IAAW,CACPjB,GAAS,aACV0ziB,EAAe7x3B,UAAW,gBAAY,GACzCo/U,IAAW,CACPjB,GAAS,OACV0ziB,EAAe7x3B,UAAW,aAAS,GACtCo/U,IAAW,CACPjB,GAAS,eACV0ziB,EAAe7x3B,UAAW,kBAAc,GAC3Co/U,IAAW,CACPjB,GAAS,aACV0ziB,EAAe7x3B,UAAW,gBAAY,GACzCo/U,IAAW,CACPjB,GAAS,OACV0ziB,EAAe7x3B,UAAW,iBAAa,GAC1Co/U,IAAW,CACPjB,GAAS,SACV0ziB,EAAe7x3B,UAAW,YAAQ,GACrCo/U,IAAW,CACPjB,GAAS,YACV0ziB,EAAe7x3B,UAAW,eAAW,GACxCo/U,IAAW,CACPjB,GAAS,gBACV0ziB,EAAe7x3B,UAAW,mBAAe,GACrC6x3B,CACX,CAzDoC,CAyDlCruiB,IAKEsuiB,IAAgC,SAAU370B,GAE1C,SAAS270B,IACL,OAAkB,OAAX370B,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAUA,OAbAkmD,IAAUu80B,EAAgB370B,GAI1BipS,IAAW,CACPjB,GAAS,cACV2ziB,EAAe9x3B,UAAW,cAAU,GACvCo/U,IAAW,CACPjB,GAAS,MACV2ziB,EAAe9x3B,UAAW,gBAAY,GACzCo/U,IAAW,CACPjB,GAAS,WACV2ziB,EAAe9x3B,UAAW,cAAU,GAChC8x3B,CACX,CAfoC,CAelCtuiB,IAKEuuiB,IAAuC,SAAU570B,GAEjD,SAAS470B,IACL,OAAkB,OAAX570B,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAOA,OAVAkmD,IAAUw80B,EAAuB570B,GAIjCipS,IAAW,CACPd,GAAQ,CAAEj7I,OAAQ,UAAW//F,SAAU,IAAKi8O,OAAQ,UAAYuyiB,MACjEC,EAAsB/x3B,UAAW,gBAAY,GAChDo/U,IAAW,CACPd,GAAQ,CAAEj7I,OAAQ,YAAa//F,SAAU,IAAKi8O,OAAQ,UAAYuyiB,MACnEC,EAAsB/x3B,UAAW,cAAU,GACvC+x3B,CACX,CAZ2C,CAYzCvuiB,IAaEwuiB,IAA0B,SAAU770B,GAEpC,SAAS670B,EAAS7j3B,EAAS3J,GACvB,IAAI7V,EAAQwnD,EAAOnnD,KAAKK,KAAM8e,EAAS3J,IAAYnV,KAkBnD,OAjBAV,EAAMsj4B,aAAc,EACpBtj4B,EAAMuj4B,eAAgB,EACtBvj4B,EAAMwj4B,eAAiB,GACvBxj4B,EAAMyj4B,YAAc,GAEpBzj4B,EAAM0j4B,SAAW,GACjB1j4B,EAAM2j4B,WAAa,GACnB3j4B,EAAM4j4B,eAAiB,GACvB5j4B,EAAM6j4B,eAAgB,EACtB7j4B,EAAM8sqB,kBAAmB,EACzB9sqB,EAAM8j4B,aAAc,EACpB9j4B,EAAM+j4B,eAAgB,EAEtB/j4B,EAAMgk4B,eAAgB,EACtBhk4B,EAAM+yZ,cAAe,EACrB/yZ,EAAMik4B,cAAe,EACrBjk4B,EAAMkk4B,iBAAkB,EACjBlk4B,CACX,CAquJA,IAAImk4B,EA2IJ,OAr4JAv90B,IAAUy80B,EAAU770B,GAsBpB280B,EAAad,EAObA,EAAShy3B,UAAUo8U,cAAgB,WAC/B,MAAO,UACX,EAMA41iB,EAAShy3B,UAAUmoV,UAAY,WAC3B,IAAIx5V,EAAQU,KACZA,KAAK0j4B,iBAAmB,GACxB1j4B,KAAK2j4B,gBAAkB,GACvB3j4B,KAAK4j4B,iBAAkB,EACvB5j4B,KAAKkya,WAAY,EACjBlya,KAAK4kW,WAAa,CACdnyS,OAAQ,SACRrZ,IAAK,MACLssO,MAAO,QACPm5Y,GAAI,KACJx6Q,KAAM,OACNJ,SAAU,YACVE,SAAU,YACVC,UAAW,aACXF,OAAQ,UACR2/e,SAAU,iBACVC,OAAQ,eACRhlO,UAAW,aACXV,SAAU,YACVC,QAAS,WACT0lO,MAAO,SACP/lO,UAAW,kBACXC,QAAS,gBACT/kD,WAAY,cACZ8qR,UAAW,aACXC,SAAU,YACVC,OAAQ,uBACRC,KAAM,qBACNC,QAAS,mBACTC,OAAQ,kBACRC,MAAO,iBACPrmwB,MAAO,QACPsmwB,WAAY,cACZtlO,UAAW,cAEfj/pB,KAAK2lrB,eAAiB,CAClB34P,gBAAgB,EAChBF,UAAU,EACVU,gBAAiBuzc,IACjB9zc,eAAgBq1c,IAChB70c,mBAAoB,OACpBY,YAAa,SAAUhub,GACnBf,EAAMkl4B,iBAAiBnk4B,EAC3B,EACA0sb,oBAAqB/sb,KAAK+sb,oBAC1BW,cAAe1tb,KAAKyk4B,kBAExBzk4B,KAAK0k4B,eAAe1k4B,KAAKmzN,QACzBnzN,KAAKinrB,OAAS,IAAIh3V,GAAU,CAAC,GAC7BjwV,KAAK2k4B,SAAW,GAChB3k4B,KAAKijnB,UAAW,EAChBjjnB,KAAK4k4B,gBAAiB,EACtB5k4B,KAAKkj4B,eAAiB,GACtBlj4B,KAAKysB,MAAQ,EACbzsB,KAAK6k4B,gBACDn3X,GAAM1tgB,KAAKy/jB,gBACXz/jB,KAAKisV,cAAc,CAAEwzO,cAAe,KAAM,GAE1C/xD,GAAM1tgB,KAAK8k4B,eACX9k4B,KAAKisV,cAAc,CAAE64iB,aAAc,KAAM,GAEzCp3X,GAAM1tgB,KAAK+k4B,eACX/k4B,KAAKisV,cAAc,CAAE84iB,cAAe,KAAM,GAG1C/k4B,KAAK4k4B,gBAAiB,CAE9B,EAOAjC,EAAShy3B,UAAU0pV,eAAiB,WAEhC,OAAOr6V,KAAK26V,aADI,CAAC,gBAAiB,eAAgB,iBAEtD,EAOAgoiB,EAAShy3B,UAAUyJ,OAAS,WACxBpa,KAAK29gB,eAAgB,EACrB39gB,KAAK6tK,aACL7tK,KAAKgl4B,gBAAe,GACpBhl4B,KAAKil4B,kBACLjl4B,KAAKkl4B,kBACAll4B,KAAK4O,UACN5O,KAAKyhZ,YAETzhZ,KAAKml4B,kBAAkBnl4B,KAAKosoB,cAC5BpsoB,KAAKol4B,eAAepl4B,KAAKup0B,kBACpBvp0B,KAAK4O,UACN5O,KAAK+jW,aAET/jW,KAAK29gB,eAAgB,EACrB39gB,KAAK45V,gBACT,EACA+oiB,EAAShy3B,UAAUk9J,WAAa,WAC5B7tK,KAAKmV,QAAQ6f,aAAa,OAAQ,QAClCh1B,KAAKmV,QAAQ6f,aAAa,wBAAyBh1B,KAAKmV,QAAQghB,GAAK,WACrEn2B,KAAK4+Y,YAAY,KAAM5+Y,KAAK4vW,UAC5B5vW,KAAK25Y,eACL35Y,KAAKql4B,WAAWrl4B,KAAKsl4B,eACrBtl4B,KAAKul4B,cACLvl4B,KAAKwl4B,eAAiBxl4B,KAAKo+e,iBAAiBp+e,KAAKqp0B,aACrD,EACAs5D,EAAShy3B,UAAUs03B,gBAAkB,WAC7Bjl4B,KAAK4O,SACL5O,KAAKmV,QAAQ+yQ,UAAU90P,IAAIokO,KAG3Bx3P,KAAKmV,QAAQ+yQ,UAAU/0P,OAAOqkO,IAEtC,EACAmroB,EAAShy3B,UAAUgpY,aAAe,YAC7B35Y,KAAKq4V,UAAY7vE,GAAWP,IAAa,CAACjoR,KAAKmV,SAAU+sY,IAC9D,EACAygf,EAAShy3B,UAAU8wY,UAAY,WAC3B,IACI1vD,EAAc,CACdxhV,SAFU,IAAMyx3B,IAAU,KAAOX,IAGjC16vB,OAAQ,IAAM06vB,IAAW,OAASxlnB,IAAO,KAAOkrN,IAAa,KAAO3wN,IAAQ,MAAQw2mB,KAExF5s3B,KAAKmoiB,SAAWt2M,GAAa7xV,KAAKmV,QAAS48U,GAC3C,IAAI0ziB,EAAY,CACZl13B,SAAU,IAAM8w3B,IAAW,OAASxlnB,IACpCo2E,gBAAgB,GAEpBjyV,KAAK0l4B,aAAe7ziB,GAAa7xV,KAAKmV,QAASsw3B,EACnD,EACA9C,EAAShy3B,UAAU003B,WAAa,SAAUz3Z,IACrCA,EAAYplN,GAAWP,IAAa,CAACjoR,KAAKmV,SAzTjC,iBA0Td,EACAwt3B,EAAShy3B,UAAUg13B,eAAiB,SAAU/3Z,GAC1C,IAAIg4Z,EAAUp7iB,GAAO,IAAM02iB,IAAYlh4B,KAAKmV,SACxCy4d,EACAg4Z,EAAQ5w2B,aAAa,uBAAwB,QAG7C4w2B,EAAQ7w2B,gBAAgB,uBAEhC,EAEA4t2B,EAAShy3B,UAAUyte,iBAAmB,SAAU76c,GAC5C,GAAIA,EAAU,CACVvjC,KAAKoj4B,aAAc,EAGnBpj4B,KAAKmV,QAAQ+yQ,UAAU90P,IAAIou2B,KAC3B,IACI,OAAItw2B,SAAS1gB,iBAAiB+yB,GAAUngC,OAC7B0nW,GAAQ55U,SAAS0I,cAAc2J,GAAU2F,UAAUzW,QAGnDq4U,GAAQvnU,EAEvB,CACA,MAAOljC,KACH,OAAOyqW,GAAQvnU,EACnB,CACJ,CACAvjC,KAAKmV,QAAQ+yQ,UAAU/0P,OAAOqu2B,IAElC,EACAmB,EAAShy3B,UAAUq03B,eAAiB,SAAU54N,GAC1C,IAAI9sqB,EAAQU,KACZA,KAAK2k4B,SAASv43B,KAAK,SACfpM,KAAKmzN,OAAO2/M,sBAAsBuQ,IAElCrjb,KAAKurrB,UAAYvrrB,KAAKmzN,OAAO2/M,WAAWA,WAAWwQ,QAC/Ctjb,KAAKmzN,OAAO2/M,WAAWrlG,MACvBztU,KAAKmzN,OAAO2/M,WAAWrlG,MAAMxyM,MAAK,SAAU56H,GAExCf,EAAMisrB,UAAYjsrB,EAAM6zN,OAAO2/M,WAAWA,WAAWwQ,QACjDhkb,EAAM6zN,OAAO2/M,sBAAsBuQ,IAAe/jb,EAAMisrB,YACxDjsrB,EAAMql4B,SAASrm2B,MACfh/B,EAAMum4B,SAAWxl4B,EAAEwqB,OACnBvrB,EAAMwm4B,eAAiBxm4B,EAAMym4B,UAC7Bzm4B,EAAM0m4B,cACN1m4B,EAAMu2b,aAAY,GACY,IAA1Bv2b,EAAMql4B,SAASvh4B,QAAiB9D,EAAM2jnB,UACtC3jnB,EAAMskU,WAGlB,IAAGxnM,OAAM,SAAU/7H,GACff,EAAMghS,QAAQ,gBAAiB,CAAErpR,MAAO5W,GAC5C,IAGAL,KAAKmzN,OAAO2/M,WAAWyB,aAAav0a,KAAK+hb,SAAS/hb,KAAKmzN,SAASl4F,MAAK,SAAU56H,GAC3Ef,EAAMql4B,SAASrm2B,MACfh/B,EAAMum4B,SAAWxl4B,EAAEwqB,OACnBvrB,EAAMwm4B,eAAiBxm4B,EAAMym4B,UAC7Bzm4B,EAAM0m4B,cACF55N,IACA9sqB,EAAM8sqB,kBAAmB,GAE7B9sqB,EAAMu2b,aAAY,GAClBv2b,EAAM8sqB,kBAAmB,EACK,IAA1B9sqB,EAAMql4B,SAASvh4B,QAAiB9D,EAAM2jnB,UACtC3jnB,EAAMskU,UAEd,IAAGxnM,OAAM,SAAU/7H,GACff,EAAMghS,QAAQ,gBAAiB,CAAErpR,MAAO5W,GAC5C,MAIJL,KAAK2k4B,SAASrm2B,MACVove,GAAM1tgB,KAAKmzN,OAAO2/M,YAClB9ya,KAAKim4B,SAAWjm4B,KAAK6l4B,SAAW,IAGhC7l4B,KAAK6l4B,SAAWp11B,KAAKuL,MAAMvL,KAAK+mF,UAAUx3H,KAAKmzN,OAAO2/M,aACtD9ya,KAAKgm4B,eAEThm4B,KAAK8l4B,eAAiB9l4B,KAAK+l4B,UAC3B/l4B,KAAK61b,aAAY,IAEQ,IAAzB71b,KAAK2k4B,SAASvh4B,QAAiBpD,KAAKijnB,UACpCjjnB,KAAK4jU,UAEb,EACA++jB,EAAShy3B,UAAUoxa,SAAW,SAAUx4J,EAAQ3nR,QAC9B,IAAVA,IAAoBA,EAAQ,MAChC,IACIotL,EADA7hD,EAAU,GAEd,GAAKo8I,EAAOv6F,MAgBRA,EAAQu6F,EAAOv6F,MAAMztL,YAhBN,CACfytL,EAAQ,IAAIwkP,GAEZ,IADA,IAAI7ua,EAAO3E,KAAK66V,oBAAoBtxE,GAC3Bj6Q,EAAK,EAAGgmC,EAAK71C,OAAO8E,KAAKI,GAAO2K,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CAC3D,IAAI0pH,EAAM1jF,EAAGhmC,GACD,eAAR0pH,GAAgC,cAARA,GAA+B,UAARA,GAAqBuwJ,EAAOvwJ,IAChE,QAARA,IAAmD,IAAlCmU,EAAQxiI,QAAQ4+Q,EAAOvwJ,KAC3CmU,EAAQ/gI,KAAKm9Q,EAAOvwJ,GAE5B,CACAg2D,EAAMw7J,OAAOr9M,GACTxoI,EAAKmM,eAAe,cACpBk+K,EAAM1rL,KAAKimR,EAAOr+D,UAE1B,CAQA,OAJAqoN,GAASyb,WAAWhvb,KAAKqtb,UAAW9jK,EAAOtpP,KAAM+uJ,GAC5C0+U,GAAM9rgB,IAAW8rgB,GAAMnkP,EAAO84V,WAC/Brzb,EAAMnmI,MAAM0gO,EAAO84V,SAAU,QAAUrinB,KAAK8l4B,eAAiBp11B,WAAW9uC,GAASA,GAE9EotL,CACX,EACA2zsB,EAAShy3B,UAAUo13B,QAAU,WACzB,QAAO/l4B,KAAK6l4B,SAAS,IAA6D,kBAA/Chr3B,GAAS7a,KAAKmzN,OAAOh9L,GAAIn2B,KAAK6l4B,SAAS,GAC9E,EACAlD,EAAShy3B,UAAUq13B,YAAc,WAE7B,GADAhm4B,KAAK0lV,SAAW1lV,KAAKkm4B,YAAYlm4B,KAAK6l4B,SAAU7l4B,KAAKmzN,QAC/B,IAAlBnzN,KAAK0lV,SAAgB,CACrB1lV,KAAK+/tB,YAAc//tB,KAAKmm4B,eAAenm4B,KAAK6l4B,SAAU7l4B,KAAKmzN,OAAOkvZ,UAClE,IAAI+jR,EAAYpm4B,KAAKqjC,cAAcrjC,KAAK6l4B,cAAUxi4B,GAAW,GACzDqqgB,GAAM04X,GACNpm4B,KAAKim4B,SAAW,GAGhBjm4B,KAAKim4B,SAAWG,CAExB,MAEIpm4B,KAAKim4B,SAAWjm4B,KAAK6l4B,QAE7B,EACAlD,EAAShy3B,UAAUklb,YAAc,SAAUwwc,GAEvCrm4B,KAAK2lrB,eAAe14P,eAAel7X,MAAQ,EAC3C,IAAIukY,EAAat2b,KAAKsm4B,cAActm4B,KAAKim4B,UACzCjm4B,KAAKqwb,UAAY9c,GAAS+c,WAAWtwb,KAAKc,cAAeul4B,EAAWrm4B,KAAKim4B,SAAW3vc,EAAYt2b,KAAK2lrB,gBACrG3lrB,KAAKmV,QAAQuc,YAAY1xB,KAAKqwb,WAC9B,IAAIg4L,EAAYronB,KAAKqwb,UAAU7/a,iBAAiB,gBAChD,IAA0B,IAAtBxQ,KAAKum4B,aAEL,IADA,IAAIp63B,EAAI,EACDA,EAAIk8mB,EAAUjlnB,QACjBpD,KAAKwm4B,iBAAiBn+Q,EAAUl8mB,IAAI,EAAM,MAAM,GAChDA,KAIkB,IADVw+U,GAAU,IAAMu2iB,IAAYlh4B,KAAKmV,SAClC/R,QAAiBilnB,GAAkC,IAArBA,EAAUjlnB,QAAkBpD,KAAKum4B,eAC1Evm4B,KAAKym4B,aAAazm4B,KAAKmV,SAE3BnV,KAAK2j4B,gBAAkB,GACvB3j4B,KAAK0m4B,gBAAkB,GACvB1m4B,KAAK2m4B,2BACD3m4B,KAAK4m4B,WAAa5m4B,KAAK6sb,eAAiB7sb,KAAKijnB,UAC7CjjnB,KAAK6m4B,wBAEb,EAIAlE,EAAShy3B,UAAUg23B,yBAA2B,SAAUxw2B,GAEpD,GADAn2B,KAAKij4B,WAAa,GACdjj4B,KAAK6l4B,UAAY7l4B,KAAK6sb,aAAc,CACpC,GAAsB,IAAlB7sb,KAAK0lV,SAAgB,CAGrB,IAFA,IAAIn8D,EAASvpR,KAAKmzN,OACd28P,EAAa,IAAIzsC,GAAYrjb,KAAK6l4B,UAAUpxd,cAAa,IAAIjB,IAAQ3qX,MAAM0gO,EAAOyiK,UAAW,SAAS,GAAM,IACvG7/a,EAAI,EAAGA,EAAI2jd,EAAW1sd,OAAQ+I,IAAK,CACxC,IAAI263B,EAAWh3a,EAAW3jd,GAAGnM,KAAKmzN,OAAOh9L,IAAM25b,EAAW3jd,GAAGnM,KAAKmzN,OAAOh9L,IAAIrf,WAAa,KAC1Eg5c,EAAW3jd,GAAGnM,KAAKmzN,OAAOkvZ,WAAYvyJ,EAAW3jd,GAAGnM,KAAKmzN,OAAOkvZ,UAAUvrmB,WAI1F,IAH6C,IAAzC9W,KAAK8k4B,aAAan63B,QAAQm83B,IAAsB9m4B,KAAKijnB,UACrDjjnB,KAAK8k4B,aAAa143B,KAAK063B,GAEvBh3a,EAAW3jd,GAAGnM,KAAKmzN,OAAO9sK,aAI1B,IAHA,IAAI28kB,EAAOlzK,EAAW3jd,GAAGnM,KAAKmzN,OAAOh9L,IACjC4w2B,EAAY,IAAI1jd,GAAYrjb,KAAK6l4B,UACjCpxd,cAAa,IAAIjB,IAAQ3qX,MAAM0gO,EAAO84V,SAAU,QAAS2gB,GAAM,IAC1D77kB,EAAQ,EAAGA,EAAQ4/0B,EAAU3j4B,OAAQ+jD,IAAS,CACnD,IAAI45jB,EAAUgmR,EAAU5/0B,GAAOnnD,KAAKmzN,OAAOh9L,IAAM4w2B,EAAU5/0B,GAAOnnD,KAAKmzN,OAAOh9L,IAAIrf,WAAa,MACnD,IAAxC9W,KAAK8k4B,aAAan63B,QAAQo2mB,IAAmB/gnB,KAAK4m4B,WAClD5m4B,KAAK8k4B,aAAa143B,KAAK20mB,EAE/B,CAER,CACA,IAAS50mB,EAAI,EAAGA,EAAInM,KAAK8k4B,aAAa1h4B,OAAQ+I,IAAK,CAC/C,IAAI663B,EAAWhn4B,KAAKmzN,OAChB87Y,EAAa,IAAI5rL,GAAYrjb,KAAK6l4B,UAClCpxd,cAAa,IAAIjB,IAAQ3qX,MAAMm+0B,EAAS7w2B,GAAI,QAASn2B,KAAK8k4B,aAAa343B,IAAI,IAK/E,GAJI8imB,EAAW,IAAMjvmB,KAAK4m4B,YACtB5m4B,KAAKin4B,sBAAsBD,EAAU/3R,GACrCjvmB,KAAKkn4B,wBAAwBj4R,EAAW,KAExCA,EAAW7rmB,OAAS,EAAG,CACvB,IAAI+j4B,EAAYl4R,EAAW,GAAGjvmB,KAAKmzN,OAAOh9L,IAAM84kB,EAAW,GAAGjvmB,KAAKmzN,OAAOh9L,IAAIrf,WAAa,KACvF9W,KAAK8k4B,aAAan63B,QAAQw83B,IAAc,IAA6C,IAAxCnn4B,KAAKij4B,WAAWt43B,QAAQw83B,IACrEnn4B,KAAKij4B,WAAW723B,KAAK+63B,EAE7B,CAGA,IAFA,IAAIC,EAAc,IAAI/jd,GAAYrjb,KAAK6l4B,UACnCpxd,cAAa,IAAIjB,IAAQ3qX,MAAMm+0B,EAAS3kR,SAAU,QAASrinB,KAAK8k4B,aAAa343B,IAAI,IAC5EsgB,EAAQ,EAAGA,EAAQ262B,EAAYhk4B,OAAQqpB,IAAS,CACjD062B,EAAYC,EAAY362B,GAAOzsB,KAAKmzN,OAAOh9L,IAAMix2B,EAAY362B,GAAOzsB,KAAKmzN,OAAOh9L,IAAIrf,WAAa,MACvD,IAA1C9W,KAAK8k4B,aAAan63B,QAAQw83B,IAAqBnn4B,KAAK4m4B,WACpD5m4B,KAAK8k4B,aAAa143B,KAAK+63B,GAEvBnn4B,KAAK8k4B,aAAan63B,QAAQw83B,IAAc,IAA6C,IAAxCnn4B,KAAKij4B,WAAWt43B,QAAQw83B,IACrEnn4B,KAAKij4B,WAAW723B,KAAK+63B,EAE7B,CACJ,CACJ,MACK,GAAsB,IAAlBnn4B,KAAK0lV,UAAmB1lV,KAAKmzN,OAAO2/M,sBAAsBuQ,IAC/Drjb,KAAKurrB,UAAY,CACjB,IAAS9+pB,EAAQ,EAAGA,EAAQzsB,KAAK6l4B,SAASzi4B,OAAQqpB,IAAS,CACvD,IAAI462B,EAAUrn4B,KAAK6l4B,SAASp52B,GAAOzsB,KAAKmzN,OAAOh9L,IAAMn2B,KAAK6l4B,SAASp52B,GAAOzsB,KAAKmzN,OAAOh9L,IAAIrf,WAAa,GACnG9W,KAAK6l4B,SAASp52B,GAAOzsB,KAAKmzN,OAAO64N,aAAgBhsb,KAAKijnB,WAAqD,IAAxCjjnB,KAAK8k4B,aAAan63B,QAAQ083B,IAC7Frn4B,KAAK8k4B,aAAa143B,KAAKi73B,GAEvBrn4B,KAAK8k4B,aAAan63B,QAAQ083B,IAAY,IAA2C,IAAtCrn4B,KAAKij4B,WAAWt43B,QAAQ083B,IACnErn4B,KAAKij4B,WAAW723B,KAAKi73B,GAEzB,IAAIC,EAAazs3B,GAAS7a,KAAKmzN,OAAOhsK,MAAMrwC,WAAY9W,KAAK6l4B,SAASp52B,IAClE662B,GACAtn4B,KAAKun4B,sBAAsBD,EAAYtn4B,KAAK6l4B,SAASp52B,GAE7D,CACAzsB,KAAKij4B,WAAcjj4B,KAAK24V,kBAAqB34V,KAAK8k4B,aAAe9k4B,KAAKij4B,UAC1E,CACAjj4B,KAAKisV,cAAc,CAAE64iB,aAAc9k4B,KAAKij4B,aAAc,EAC1D,CACJ,EAIAN,EAAShy3B,UAAUs23B,sBAAwB,SAAU19mB,EAAQi+mB,GACzD,IAAIrx2B,EAAKqx2B,EAAW,GAAGxn4B,KAAKmzN,OAAOkvZ,UAAYmlR,EAAW,GAAGxn4B,KAAKmzN,OAAOkvZ,UAAUvrmB,WAAa,KAC5F8T,EAAQ,EACRzV,EAAUnV,KAAKmV,QAAQykB,cAAc,cAAgB4t2B,EAAW,GAAGxn4B,KAAKmzN,OAAOh9L,IAAM,MACrFmqX,EAAYtgZ,KAAKmV,QAAQykB,cAAc,cAAgB4t2B,EAAW,GAAGxn4B,KAAKmzN,OAAOkvZ,UAAY,MACjG,GAAKltmB,GAAYmrY,GAmBZ,GAAIA,EAAW,CACJ91D,GAAO,IAAM0nX,IAAO5xT,IAE5BtgZ,KAAK2ysB,YAAYryT,EAAW,gBAAiB,MAAM,GAAM,EAEjE,MAxB4B,CACdtgZ,KAAK2j4B,gBAAgBvg4B,QACW,IAAtCpD,KAAK2j4B,gBAAgBh53B,QAAQwrB,IAC7Bn2B,KAAK2j4B,gBAAgBv33B,KAAK+pB,GAG9B,IADA,IAAIgT,EAAanpC,KAAKqjC,cAAcrjC,KAAK6l4B,SAAU1v2B,GAC1ChqB,EAAI,EAAGA,EAAIg9B,EAAW/lC,OAAQ+I,IAAK,CACxC,IAAI40mB,EAAU53kB,EAAWh9B,GAAGnM,KAAKmzN,OAAOh9L,IAAMgT,EAAWh9B,GAAGnM,KAAKmzN,OAAOh9L,IAAIrf,WAAa,MAC7C,IAAxC9W,KAAK8k4B,aAAan63B,QAAQo2mB,IAC1Bn2lB,IAEAA,IAAUue,EAAW/lC,SAA6C,IAAnCpD,KAAK8k4B,aAAan63B,QAAQwrB,IACzDn2B,KAAK8k4B,aAAa143B,KAAK+pB,EAE/B,CACA,IAAIwmiB,EAAa,IAAIt5I,GAAYrjb,KAAK6l4B,UAClCpxd,cAAa,IAAIjB,IAAQ3qX,MAAM0gO,EAAOpzP,GAAI,QAASA,GAAI,IAC3Dn2B,KAAKin4B,sBAAsB19mB,EAAQozS,EACvC,CAOJ,EAIAgmU,EAAShy3B,UAAUk23B,uBAAyB,WAGxC,IAFA,IACIY,EADA5ylB,EAAgB81C,GAAU,IAAMynX,IAAepysB,KAAKmV,SAE/ChJ,EAAI,EAAGA,EAAI0oS,EAAczxS,OAAQ+I,IAAK,CAC3C,IAAI+D,EAAOulF,GAAQo/M,EAAc1oS,GAAI,IAAM603B,KACvC0G,EAASx33B,EAAKoiB,aAAa,YAAYxb,WAQvC8T,EAAQ,EACZ,GAPI682B,EADkB,IAAlBzn4B,KAAK0lV,SACiB,IAAI29F,GAAYrjb,KAAK6l4B,UACvCpxd,cAAa,IAAIjB,IAAQ3qX,MAAM7oD,KAAKmzN,OAAOkvZ,SAAU,QAASqlR,GAAQ,IAGpD1n4B,KAAKqjC,cAAcrjC,KAAK6l4B,SAAU6B,GAGnC,CACrB,IAAK,IAAI133B,EAAI,EAAGA,EAAIy33B,EAAoBrk4B,OAAQ4M,IAAK,CACjD,IAAI+wmB,EAAU0mR,EAAoBz33B,GAAGhQ,KAAKmzN,OAAOh9L,IAAIrf,YACT,IAAxC9W,KAAK8k4B,aAAan63B,QAAQo2mB,IAC1Bn2lB,GAER,CACA,GAAIA,IAAU682B,EAAoBrk4B,OAAQ,CACtC,IAAIuk4B,EAAYz33B,EAAKoiB,aAAa,aACY,IAA1CtyB,KAAK8k4B,aAAan63B,QAAQg93B,IAC1B3n4B,KAAK8k4B,aAAa143B,KAAKu73B,GAE3B3n4B,KAAK2ysB,YAAYzisB,EAAM,QAAS,MAAM,GAAM,EAChD,MACmB,IAAV0a,GAA4C,IAA7B5qB,KAAK8k4B,aAAa1h4B,QACtCpD,KAAK2ysB,YAAYzisB,EAAM,UAAW,MAAM,GAAM,EAEtD,CACJ,CACJ,EAIAyy3B,EAAShy3B,UAAUu23B,wBAA0B,SAAUh91B,GACnD,IAAI/0B,EAOJ,GALIA,EADkB,IAAlBnV,KAAK0lV,SACK1lV,KAAKmV,QAAQykB,cAAc,cAAgBsQ,EAAKlqC,KAAKmzN,OAAOkvZ,UAAY,MAGxErinB,KAAKmV,QAAQykB,cAAc,cAAgBsQ,EAAKlqC,KAAKmzN,OAAOh9L,IAAM,MAIxD,SADFhhB,EAAQykB,cAAc,IAAMgz1B,KAAct61B,aAAa,iBAErEtyB,KAAK2ysB,YAAYx9rB,EAAS,gBAAiB,MAAM,GAAM,QAG1D,GAAsB,IAAlBnV,KAAK0lV,SAAgB,CAChB1lV,KAAK2j4B,gBAAgBvg4B,QACwC,IAAnEpD,KAAK2j4B,gBAAgBh53B,QAAQu/B,EAAKlqC,KAAKmzN,OAAOh9L,IAAIrf,aAClD9W,KAAK2j4B,gBAAgBv33B,KAAK89B,EAAKlqC,KAAKmzN,OAAOh9L,IAAIrf,WAEvD,CACJ,EAIA6r3B,EAAShy3B,UAAU423B,sBAAwB,SAAUD,EAAYzB,GAG7D,IAFA,IAAIj72B,EAAQ,EACRg92B,EAAgB/B,EAAS7l4B,KAAKmzN,OAAOh9L,IAAM0v2B,EAAS7l4B,KAAKmzN,OAAOh9L,IAAIrf,WAAa,GAC5E2V,EAAQ,EAAGA,EAAQ662B,EAAWlk4B,OAAQqpB,IAAS,CACpD,IAAIo72B,EAAeP,EAAW762B,GAAOzsB,KAAKmzN,OAAOh9L,IAAMmx2B,EAAW762B,GAAOzsB,KAAKmzN,OAAOh9L,IAAIrf,WAAa,GAClGww3B,EAAW762B,GAAOzsB,KAAKmzN,OAAO64N,aAAgBhsb,KAAKijnB,WAA0D,IAA7CjjnB,KAAK8k4B,aAAan63B,QAAQk93B,IAC1F7n4B,KAAK8k4B,aAAa143B,KAAKy73B,IAEuB,IAA9C7n4B,KAAK8k4B,aAAan63B,QAAQi93B,KAAsE,IAA7C5n4B,KAAK8k4B,aAAan63B,QAAQk93B,IAAwB7n4B,KAAK4m4B,WAC1G5m4B,KAAK8k4B,aAAa143B,KAAKy73B,IAEsB,IAA7C7n4B,KAAK8k4B,aAAan63B,QAAQk93B,IAAwB7n4B,KAAK4m4B,WACvDh82B,IAEA5qB,KAAK8k4B,aAAan63B,QAAQk93B,IAAiB,IAAgD,IAA3C7n4B,KAAKij4B,WAAWt43B,QAAQk93B,IACxE7n4B,KAAKij4B,WAAW723B,KAAKy73B,GAEzB,IAAIC,EAAgBjt3B,GAAS7a,KAAKmzN,OAAOhsK,MAAMrwC,WAAYww3B,EAAW762B,IAClEq72B,GAAiBA,EAAc1k4B,UACiB,IAA5CpD,KAAK0m4B,gBAAgB/73B,QAAQk73B,IAC7B7l4B,KAAK0m4B,gBAAgBt63B,KAAKy53B,GAC9B7l4B,KAAKun4B,sBAAsBO,EAAeR,EAAW762B,KAErD7B,IAAU082B,EAAWlk4B,QAAUpD,KAAK4m4B,YAA2D,IAA9C5m4B,KAAK8k4B,aAAan63B,QAAQi93B,IAC3E5n4B,KAAK8k4B,aAAa143B,KAAKw73B,EAE/B,CACA,GAAc,IAAVh92B,GAAe5qB,KAAK4m4B,UAAW,CAC/B5m4B,KAAKkn4B,wBAAwBrB,GAC7B,IAAK,IAAIl20B,EAAM,EAAGA,EAAM3vD,KAAK0m4B,gBAAgBtj4B,OAAQusD,IAC5Ck20B,IAAa7l4B,KAAK0m4B,gBAAgB/20B,IAAU3vD,KAAK0m4B,gBAAgB/20B,IAClE3vD,KAAKkn4B,wBAAwBln4B,KAAK0m4B,gBAAgB/20B,GAG9D,CACA3vD,KAAK0m4B,gBAAkB,EAC3B,EACA/D,EAAShy3B,UAAU6z3B,iBAAmB,SAAUnk4B,GAC5C,GAAIL,KAAK6sb,aAAc,CACnB,IAAI0gc,EAAc9jb,GAAezpc,KAAKc,eAAe,EAAM,CAAE8uW,SAAU5vW,KAAK+n4B,aAC5Exa,EAAYv41B,aAAa,OAAQ,YACjCu41B,EAAYv41B,aAAa,aAAc,YACvC,IAAIisP,EAAOupE,GAAO,OAAS3uE,IAAMx7Q,EAAEk1B,MAC/BY,EAAK91B,EAAEk1B,KAAKjD,aAAa,YAC7BjyB,EAAEk1B,KAAK4T,WAAW,GAAGxU,aAAa441B,EAAalt3B,EAAEk1B,KAAK4T,WAAW,GAAGA,WAAWuke,GAAMzsP,GAAQ,EAAI,IACjG,IAAIgkI,EAAapqY,GAASxa,EAAE8yN,OAAO64N,UAAW3rb,EAAEw4U,SAC5C74U,KAAK8k4B,aAAan63B,QAAQwrB,IAAO,GACjCq0T,GAAO,IAAMmiiB,IAAeY,GAAarlmB,UAAU90P,IAAI8+qB,KACvDq7K,EAAYv41B,aAAa,eAAgB,QACzCh1B,KAAKgo4B,SAAS3n4B,EAAEk1B,OAEVm4e,GAAMzoH,IAAyC,SAA1BA,EAAWnuY,WAMtCy22B,EAAYv41B,aAAa,eAAgB,UALzCw1T,GAAO,IAAMmiiB,IAAeY,GAAarlmB,UAAU90P,IAAI8+qB,KACvDq7K,EAAYv41B,aAAa,eAAgB,QACzCh1B,KAAKgo4B,SAAS3n4B,EAAEk1B,OAKpB,IAAIy9I,EAAQw3K,GAAO,IAAMmiiB,IAAeY,GACxC10oB,GAAazlN,IAAI4/I,EAAO,YAAahzK,KAAKio4B,kBAAmBjo4B,MAC7D64O,GAAazlN,IAAI4/I,EAAO,UAAWhzK,KAAKio4B,kBAAmBjo4B,KAC/D,CACIA,KAAKsl4B,eACLtl4B,KAAKko4B,cAAc7n4B,EAAEk1B,MAErBv1B,KAAKwp0B,sBAAwBnp0B,EAAEk1B,KAAK2yP,UAAUh1P,SAASkgP,MACvD/yQ,EAAEk1B,KAAKP,aAAa,gBAAiB,SAEzC,IAAIm+L,EAAS9yN,EAAE8yN,OAKf,GAJAnzN,KAAKmo4B,eAAe9n4B,EAAG8yN,EAAOzkN,SAAU0kQ,KACxCpzQ,KAAKmo4B,eAAe9n4B,EAAG8yN,EAAO6sN,SAAUiid,KACxC5h4B,EAAEk1B,KAAKP,aAAa,WAAY,MAChC6jN,GAAazlN,IAAI/yB,EAAEk1B,KAAM,QAASv1B,KAAK04Z,QAAS14Z,OAC3C0tgB,GAAM1tgB,KAAKwl4B,gBAAiB,CAC7B,IAAI15T,EAAUzrkB,EAAEk1B,KAAKqE,cAAc,IAAMqn2B,KACrCmH,EAAS/n4B,EAAEk1B,KAAKjD,aAAa,YACjCw5iB,EAAQ5iiB,UAAY,GACpBlpC,KAAKqo4B,mBAAmBho4B,EAAEw4U,QAASizP,EAASs8T,EAChD,CACA,IAAIxjjB,EAAY,CACZ10U,KAAM7P,EAAEk1B,KACR+y2B,SAAUjo4B,EAAEw4U,QACZ54S,KAAM5/B,EAAE4/B,MAEPjgC,KAAK4i4B,cACN5i4B,KAAKsgS,QAAQ,WAAYskD,IACiB,IAAtCvkV,EAAEw4U,QAAQ74U,KAAKmzN,OAAOo1qB,aAA0Bvo4B,KAAK6sb,eACrDxsb,EAAEk1B,KAAK2yP,UAAU90P,IAAIiv2B,KACrBhi4B,EAAEk1B,KAAK+U,kBAAkBtV,aAAa,QAAS,wBAG3D,EACA2t2B,EAAShy3B,UAAUs33B,kBAAoB,SAAU5n4B,GAE7C0pc,GAAmB1pc,EADFmqV,GAAO,sBAAsBnqV,EAAEgI,OAAOwtR,eAE3D,EACA8smB,EAAShy3B,UAAUw33B,eAAiB,SAAU9n4B,EAAG60E,EAAQ06R,GACrD,IACI44hB,EAAc3t3B,GAASq6D,EADhB70E,EAAEw4U,SAER60L,GAAM86X,IAA2C,UAA3BA,EAAY1x3B,YACnCzW,EAAEk1B,KAAK2yP,UAAU90P,IAAIw8U,EAE7B,EACA+yhB,EAAShy3B,UAAUu13B,YAAc,SAAUxud,EAAInuJ,GAC3C,GAAIvpR,KAAKmzN,OAAO2/M,sBAAsBuQ,GAAa,CAC/C,IAAK,IAAIl3a,EAAI,EAAGA,EAAIura,EAAGt0a,OAAQ+I,IAC3B,GAAInM,KAAKurrB,WACL,GAA6B,kBAAjBhia,EAAOpiO,OAAuBumd,GAAM7yf,GAAS0uQ,EAAOpiO,MAAOuwX,EAAGvra,OAASuhgB,GAAM7yf,GAAS0uQ,EAAO84V,SAAU3qM,EAAGvra,KAClH,OAAO,OAGV,GAA6B,kBAAjBo9Q,EAAOpiO,OAAuBumd,GAAM7yf,GAAS0uQ,EAAOpiO,MAAOuwX,EAAGvra,KAC3E,OAAO,EAGf,OAAO,CACX,CACSA,EAAI,EAAb,IAAK,IAAWwjD,EAAM+nX,EAAGt0a,OAAQ+I,EAAIwjD,EAAKxjD,IAAK,CAC3C,GAA6B,kBAAjBo9Q,EAAOpiO,QAAwBumd,GAAM7yf,GAAS0uQ,EAAOpiO,MAAOuwX,EAAGvra,KACvE,OAAO,EAEX,IAAKuhgB,GAAM7yf,GAAS0uQ,EAAO84V,SAAU3qM,EAAGvra,OAASuhgB,GAAM7yf,GAAS0uQ,EAAOljO,YAAaqxX,EAAGvra,KACnF,OAAO,CAEf,CACA,OAAO,CACX,EACAw23B,EAAShy3B,UAAUw13B,eAAiB,SAAUrzd,EAAY1zV,GAItD,IAHA,IAAI0xW,GAAW,IAAItd,IAAQl1V,MAAMc,GAC7Bs4V,EAAKnE,GAAS0b,cAAcnc,EAAYge,GACxCE,EAAU,GACLhhb,EAAI,EAAGA,EAAI0na,EAAGt0a,OAAQ4M,IAAK,CAChC,IAAI+gb,EAAUrZ,EAAG1na,GAAG83C,MACpBkpY,EAAQ5kb,KAAK2kb,EACjB,CACA,OAAOC,CACX,EACA2xc,EAAShy3B,UAAU213B,cAAgB,SAAU702B,GAIzC,OAHIA,GAA2B,SAAnBzxB,KAAKqtb,YACb57Z,EAAO8hZ,GAAS0b,cAAcx9Z,EAAM8hZ,GAASyb,WAAWhvb,KAAKqtb,UAAWrtb,KAAKmzN,OAAOlzL,QAEjFxO,CACX,EACAkx2B,EAAShy3B,UAAU813B,aAAe,SAAUtx3B,GAExC,IADA,IAAIsz3B,EAAS99iB,GAAU,IAAM6qO,IAAOrgjB,GAC3B2L,EAAI,EAAGA,EAAI2n3B,EAAOrl4B,OAAQ0d,IAC/B2n3B,EAAO3n3B,GAAGkU,aAAa,MAAOwgiB,KAElC,GAAIx1jB,KAAKijnB,SAAU,CAEf,IADA,IAAIylR,EAAS/9iB,GAAU,IAAMv3E,IAAUj+P,GAC9BhJ,EAAI,EAAGA,EAAIu83B,EAAOtl4B,OAAQ+I,IAAK,CACpCnM,KAAKw4jB,WAAWkwU,EAAOv83B,GAAI,MAC3B,KACJ,CACA87Q,GAAYygnB,EAAQt1nB,IACxB,CAEA,IADA,IAAIu1nB,EAASh+iB,GAAU,IAAMq2iB,IAAW,SAAWiB,IAAW,IAAK9s3B,GAC1DnF,EAAI,EAAGA,EAAI243B,EAAOvl4B,OAAQ4M,IAAK,CACpC,IAAIixQ,EAAOupE,GAAO,OAAS3uE,IAAM8snB,EAAO343B,IACpCixQ,GAAQA,EAAKiH,UAAUh1P,SAAS6t2B,MAChC/g4B,KAAK4o4B,kBAAkBD,EAAO343B,GAEtC,CACA,IAAI643B,EAASl+iB,GAAU,IAAMs3iB,IAAU9s3B,GACvC,IAAKnV,KAAK4k4B,eACN,IAASz43B,EAAI,EAAGA,EAAI083B,EAAOzl4B,OAAQ+I,IAC/BnM,KAAKwm4B,iBAAiBqC,EAAO183B,IAGrC87Q,GAAY4gnB,EAAQ5G,KACpBji4B,KAAK8o4B,aACD9o4B,KAAKijnB,UACLjjnB,KAAK+o4B,mBAEb,EACApG,EAAShy3B,UAAUo43B,kBAAoB,WACnC,GAAI/o4B,KAAK6sb,aAAc,CACnB,IAAIv7Z,EAAQ,GAAGlY,OAAO,GAAIpZ,KAAK8k4B,cAC/B9k4B,KAAKisV,cAAc,CAAE64iB,aAAcxz2B,IAAS,EAChD,CACJ,EACAqx2B,EAAShy3B,UAAUq43B,oBAAsB,WACrC,GAAIhp4B,KAAK4m4B,UAGL,IAFA,IAAIx2c,EAAYzlG,GAAU,KAAM3qV,KAAKmV,SAE5BhJ,EAAI,EAAGA,EAAIikb,EAAUhtb,OAAQ+I,IAC9Bikb,EAAUjkb,GAAG+7Q,UAAUh1P,SAAS8t2B,OACpBx2iB,GAAO,IAAM02iB,IAAY9wc,EAAUjkb,IAE3CnM,KAAKip4B,uBAAuB74c,EAAUjkb,IAGtCnM,KAAKkp4B,sBAAsB94c,EAAUjkb,SAMjD,KAAI0oS,EAAgB81C,GAAU,IAAMynX,IAAepysB,KAAKmV,SACxD,IAAShJ,EAAI,EAAGA,EAAI0oS,EAAczxS,OAAQ+I,IACtC0oS,EAAc1oS,GAAG+7Q,UAAU/0P,OAAOi/qB,IAF0B,CAKxE,EACAuwL,EAAShy3B,UAAUs43B,uBAAyB,SAAU9z3B,GAClD,IAAKu4f,GAAMv4f,GAAU,CACjB,GAAIA,EAAQ+yQ,UAAUh1P,SAAS8uX,KAC3B,OAEJ,IAAIquC,EAAYl7a,EACZA,EAAQ+yQ,UAAUh1P,SAAS8t2B,OAC3B3wc,EAAY7lG,GAAO,IAAM02iB,IAAY/r3B,IAEzC,IAAI2v3B,EAAen6iB,GAAU,IAAMunX,IAAO7hR,GACtC84c,EAAqBx+iB,GAAU,IAAMynX,IAAe/hR,GACpD/+Z,EAAQq5T,GAAU,IAAMq2iB,IAAU3wc,GAClC+4c,EAAcj03B,EAAQ29U,uBAAuB85hB,KAAc,GAC3Dt71B,EAAMluB,SAAW0h4B,EAAa1h4B,OAC9BpD,KAAK2ysB,YAAYy2L,EAAa,QAAS,MAAM,GAAM,GAE9CtE,EAAa1h4B,OAAS,GAAK+l4B,EAAmB/l4B,OAAS,EAC5DpD,KAAK2ysB,YAAYy2L,EAAa,gBAAiB,MAAM,GAAM,GAE9B,IAAxBtE,EAAa1h4B,QAClBpD,KAAK2ysB,YAAYy2L,EAAa,UAAW,MAAM,GAAM,GAEzD,IAAIC,EAAW5zyB,GAAQtgF,EAAS,IAAM+r3B,KACtC,IAAKxzX,GAAM27X,GAAW,CAClB,IAAI93X,EAAgB97a,GAAQ4zyB,EAAU,IAAMrI,KAC5Chh4B,KAAKip4B,uBAAuB13X,EAChC,CACJ,CACJ,EACAoxX,EAAShy3B,UAAUu43B,sBAAwB,SAAU/z3B,EAAS9U,GAC1D,IAAKqtgB,GAAMv4f,GAAU,CACjB,IAAIm03B,EAAe9+iB,GAAO,IAAM02iB,IAAY/r3B,GACxCo03B,OAAa,EACjB,IAAK77X,GAAM47X,GAAe,CACtBC,EAAa5+iB,GAAU,IAAMiiiB,IAAc0c,GAM3C,IALA,IAAIt9c,EAAY72a,EAAQ29U,uBAAuB65hB,KAAe,GAAGzkmB,UAAUh1P,SAASg/qB,KAChFs3L,EAAcr03B,EAAQ29U,uBAAuB65hB,KAAe,GAAGzkmB,UAAUh1P,SAASk/qB,KAClF8pB,EAAaotK,EAAa943B,iBAAiB,MAE3Ci53B,GADcH,EAAazzmB,cAAcvjQ,aAAa,sBACvC,GACV7F,EAAQ,EAAGA,EAAQ882B,EAAWnm4B,OAAQqpB,IAAS,CACpD,IAAIs0lB,EAAUm7G,EAAWzvsB,GAAO6F,aAAa,YAC7C,GAAKo7e,GAAM1tgB,KAAK0p4B,kBAAqBh8X,GAAM7yf,GAAS7a,KAAKmzN,OAAO64N,UAAWhsb,KAAK0p4B,gBAAgBj92B,KAW3F,CACD,IAAIk92B,EAAgBJ,EAAW982B,GAAOqmU,uBAAuB65hB,KAAe,GAAGzkmB,UAAUh1P,SAASg/qB,KAC9FlmR,GAGK29c,IAAkB3p4B,KAAKijnB,WAGiB,IAAxCjjnB,KAAK8k4B,aAAan63B,QAAQo2mB,IAAmB/gnB,KAAKijnB,WAAaumR,GAAex9c,GALnFy9c,EAAe,QAQVvtK,EAAWzvsB,GAAOy7P,UAAUh1P,SAp4BjD,iBAo4BsEq4D,GAAYvrF,KAAK2j4B,kBAAoB3j4B,KAAK4m4B,YAC5F56c,GAAaw9c,KAA2D,IAA3Cxp4B,KAAK2j4B,gBAAgBh53B,QAAQo2mB,IAIvC,IAAlB/gnB,KAAK0lV,WAAoBn6P,GAAYvrF,KAAK2j4B,kBAAoB3j4B,KAAK4m4B,YACvE56c,GAAaw9c,KAA2D,IAA3Cxp4B,KAAK2j4B,gBAAgBh53B,QAAQo2mB,IAJ3D0oR,EAAe,gBACfzp4B,KAAK2j4B,gBAAgBnu2B,OAAOx1B,KAAK2j4B,gBAAgBh53B,QAAQo2mB,GAAU,IAQnE0oR,EAAe,SAEvB,MAlCIA,EAAe5u3B,GAAS7a,KAAKmzN,OAAO64N,UAAWhsb,KAAK0p4B,gBAAgBj92B,IAAU,QAAU,WACtE,IAAdzsB,KAAK2pV,MACL8/iB,EAAez9c,EAAY,QAAU,WAEnB,YAAjBy9c,IAAiCl+yB,GAAYvrF,KAAK2j4B,kBAAoB3j4B,KAAK4m4B,YAC9B,IAA3C5m4B,KAAK2j4B,gBAAgBh53B,QAAQo2mB,KAChC/gnB,KAAK2j4B,gBAAgBnu2B,OAAOx1B,KAAK2j4B,gBAAgBh53B,QAAQo2mB,GAAU,GACnE0oR,EAAe,iBA4BvBzp4B,KAAK2ysB,YAAY42L,EAAW982B,GAAQg92B,EAAcpp4B,GAAG,GAAM,EAC/D,CACJ,CACIL,KAAK4m4B,WAAa5m4B,KAAKijnB,UACvBjjnB,KAAK6m4B,wBAEb,CACJ,EACAlE,EAAShy3B,UAAUi53B,iBAAmB,SAAUt42B,EAAOu42B,GAC1Cl/iB,GAAU,IAAMq2iB,IAAUhh4B,KAAKmV,SACxC,GAAKu4f,GAAMp8e,GA6CN,CACD,IAAIi42B,EAAa5+iB,GAAU,IAAMiiiB,IAAc5s3B,KAAKmV,SACpD,GAAInV,KAAKum4B,aACL,IAAK,IAAI952B,EAAQ,EAAGA,EAAQ882B,EAAWnm4B,OAAQqpB,IAC3CzsB,KAAK8p4B,mBAAmBP,EAAW982B,GAAQo92B,GAC3C7p4B,KAAK2ysB,YAAY42L,EAAW982B,GAAQo92B,EAAU,QAAU,UAAW,KAAM,KAAM,KAAMA,QAIzF,IAASp92B,EAAQ,EAAGA,EAAQ882B,EAAWnm4B,OAAQqpB,IAC3CzsB,KAAK8p4B,mBAAmBP,EAAW982B,GAAQo92B,GAC3C7p4B,KAAK2ysB,YAAY42L,EAAW982B,GAAQo92B,EAAU,QAAU,UAGpE,MA1DI,IAAK,IAAIl60B,EAAMr+B,EAAMluB,OAAQusD,GAAO,EAAGA,IAAO,CAC1C,IAAIo60B,OAAQ,EAOZ,GAAIr8X,GALAq8X,EADiB,IAAjBz42B,EAAMluB,OACEpD,KAAKgnS,WAAW11Q,EAAMq+B,EAAM,IAG5B3vD,KAAKgnS,WAAW11Q,EAAMq+B,KAElC,CACI,IAAIz/C,OAAO,EAEX,GAAa,MADbA,EAAOohB,EAAMq+B,EAAMr+B,EAAMluB,QAAUkuB,EAAMq+B,EAAMr+B,EAAMluB,QAAQ0T,WAAawa,EAAMq+B,GAAOr+B,EAAMq+B,GAAK74C,WAAa,OAC5F+y3B,GAAW353B,EAC1BlQ,KAAKgq4B,oBAAoB953B,GACzBlQ,KAAKiq4B,kBAAkB/53B,EAAM253B,QAE5B,IAAyC,IAArC7p4B,KAAK8k4B,aAAan63B,QAAQuF,IAAyB,KAATA,IAAgB253B,EAAS,CACxE7p4B,KAAK8k4B,aAAatv2B,OAAOx1B,KAAK8k4B,aAAan63B,QAAQuF,GAAO,GAC1D,IAAIo33B,EAAatn4B,KAAKqjC,cAAcrjC,KAAK6l4B,SAAU313B,GACnD,GAAIo33B,EAAY,CACZ,IAAK,IAAIn73B,EAAI,EAAGA,EAAIm73B,EAAWlk4B,OAAQ+I,IAAK,CACxC,IAAIgqB,EAAKmx2B,EAAWn73B,GAAGnM,KAAKmzN,OAAOh9L,IAAMmx2B,EAAWn73B,GAAGnM,KAAKmzN,OAAOh9L,IAAIrf,WAAa,KACpF,IAAuC,IAAnC9W,KAAK8k4B,aAAan63B,QAAQwrB,GAAY,CACtCn2B,KAAK8k4B,aAAatv2B,OAAOx1B,KAAK8k4B,aAAan63B,QAAQwrB,GAAK,GACxD,IAAIwzT,EAAM3pV,KAAKmV,QAAQykB,cAAc,cAAgBzD,EAAK,MACtDwzT,GACA3pV,KAAK2ysB,YAAYhpX,EAAK,UAAW,KAEzC,CACJ,EAC4C,IAAxC3pV,KAAK2j4B,gBAAgBh53B,QAAQuF,IAC7BlQ,KAAK2j4B,gBAAgBnu2B,OAAOx1B,KAAK2j4B,gBAAgBh53B,QAAQuF,GAAO,EAExE,CACIA,GACAlQ,KAAKiq4B,kBAAkB/53B,EAAM253B,GAEjC7p4B,KAAKkq4B,YAAYlq4B,KAAK6l4B,SAAU7l4B,KAAKmzN,OAAQjjN,EAAM,YAAa,KACpE,CAEJ,KA/BA,CAgCA,IAAIq+lB,EAAW/jR,GAAO,IAAM02iB,IAAa,KAAOtU,IAAcmd,GAC9D/p4B,KAAK2t3B,kBAAkBp/Q,GAAWs7R,EAASE,EAAO,KAFlD,CAGJ,CAiBJ,GAAIz42B,EACA,IAAK,IAAIthB,EAAI,EAAGA,EAAIshB,EAAMluB,OAAQ4M,IAAK,CAC/BE,EAAOohB,EAAMthB,GAAKshB,EAAMthB,GAAG8G,WAAa,GACvC+y3B,GACD7p4B,KAAKkq4B,YAAYlq4B,KAAK6l4B,SAAU7l4B,KAAKmzN,OAAQjjN,EAAM,YAAa,KAExE,CAEAlQ,KAAK4m4B,WACL5m4B,KAAK6m4B,wBAEb,EACAlE,EAAShy3B,UAAUm53B,mBAAqB,SAAU/6R,EAAU86R,GACxD,IAAIM,EAAS10yB,GAAQs5gB,EAAU,IAAMiyR,KACjC7q2B,EAAKg02B,EAAO732B,aAAa,YAEC,SADZtyB,KAAKoq4B,YAAYD,GACnBn+c,WAAyB69c,GACrC7p4B,KAAKkq4B,YAAYlq4B,KAAK6l4B,SAAU7l4B,KAAKmzN,OAAQh9L,EAAI,YAAa,KAEtE,EAIAws2B,EAAShy3B,UAAUs53B,kBAAoB,SAAU/53B,EAAM253B,GACnD,GAAsB,IAAlB7p4B,KAAK0lV,SAAgB,CACrB,IAAI96T,EAAQ,EACRk82B,EAAW,IAAIzjd,GAAYrjb,KAAK6l4B,UAAUpxd,cAAa,IAAIjB,IAAQ3qX,MAAM7oD,KAAKmzN,OAAOh9L,GAAI,QAASjmB,GAAM,IAC5G,GAAI423B,EAAS,GAAI,CACb,IAAI3w2B,EAAK2w2B,EAAS,GAAG9m4B,KAAKmzN,OAAOh9L,IAAM2w2B,EAAS,GAAG9m4B,KAAKmzN,OAAOh9L,IAAIrf,WAAa,KAC5EmwR,EAAW6/lB,EAAS,GAAG9m4B,KAAKmzN,OAAOkvZ,UAAYykR,EAAS,GAAG9m4B,KAAKmzN,OAAOkvZ,UAAUvrmB,WAAa,KAG9F+gR,IAFAhC,EAAgB71R,KAAKmV,QAAQykB,cAAc,cAAgBqtQ,EAAW,QACtCujD,GAAO,IAAM4nX,IAAev8a,GACpDA,EAAgB20D,GAAO,IAAM0nX,IAAOr8a,GAAiB,MAC7D1gR,EAAUnV,KAAKmV,QAAQykB,cAAc,cAAgBzD,EAAK,MAC1DgT,EAAanpC,KAAKqjC,cAAcrjC,KAAK6l4B,SAAU5+lB,GACnD,GAAI99P,EACA,IAAK,IAAIh9B,EAAI,EAAGA,EAAIg9B,EAAW/lC,OAAQ+I,IAAK,CACxC,IAAI40mB,EAAU53kB,EAAWh9B,GAAGnM,KAAKmzN,OAAOh9L,IAAMgT,EAAWh9B,GAAGnM,KAAKmzN,OAAOh9L,IAAIrf,WAAa,MAC7C,IAAxC9W,KAAK8k4B,aAAan63B,QAAQo2mB,IAC1Bn2lB,GAER,EAEqC,IAArC5qB,KAAK8k4B,aAAan63B,QAAQuF,IAAgB2lR,GAAkB1/P,IAAOjmB,GAASlQ,KAAK4m4B,UACjF5m4B,KAAK2ysB,YAAY98a,EAAe,gBAAiB,OAEP,IAArC71R,KAAK8k4B,aAAan63B,QAAQuF,IAAgBiF,GAAYghB,IAAOjmB,IAAU253B,EAC5E7p4B,KAAK2ysB,YAAYx9rB,EAAS,UAAW,OAEK,IAArCnV,KAAK8k4B,aAAan63B,QAAQuF,IAAgBiF,GAAYghB,IAAOjmB,GAAS253B,EAC3E7p4B,KAAK2ysB,YAAYx9rB,EAAS,QAAS,OAEO,IAArCnV,KAAK8k4B,aAAan63B,QAAQuF,KAAiBiF,GAAW0gR,GAAkB1/P,IAAOjmB,GAASlQ,KAAK4m4B,WACrF,IAAVh82B,EACH5qB,KAAK2ysB,YAAY98a,EAAe,gBAAiB,OAEP,IAArC71R,KAAK8k4B,aAAan63B,QAAQuF,KAAiBiF,GAAW0gR,GAAkB1/P,IAAOjmB,GAASlQ,KAAK4m4B,WACrF,IAAVh82B,EACH5qB,KAAK2ysB,YAAY98a,EAAe,UAAW,MAErC1gR,GAAY0gR,GAAkB1/P,IAAOjmB,IAASlQ,KAAK4m4B,WACzD5m4B,KAAKk1S,oBAAoBhlS,EAAM253B,EAEvC,CACJ,MACK,GAAsB,IAAlB7p4B,KAAK0lV,UAAmB1lV,KAAKmzN,OAAO2/M,sBAAsBuQ,IAC/Drjb,KAAKurrB,UACL,CAAIp1pB,OAAK,EAAT,IACI0/P,OAAgB,EAEpB,IADIgC,OAAQ,EACH1rR,EAAI,EAAGA,EAAInM,KAAK6l4B,SAASzi4B,OAAQ+I,IAAK,CAC3CgqB,EAAKn2B,KAAK6l4B,SAAS153B,GAAGnM,KAAKmzN,OAAOh9L,IAAMn2B,KAAK6l4B,SAAS153B,GAAGnM,KAAKmzN,OAAOh9L,IAAIrf,WAAa,GAEtF+gR,GADAhC,EAAgB71R,KAAKmV,QAAQykB,cAAc,cAAgBzD,EAAK,OACxCq0T,GAAO,IAAM0nX,IAAOr8a,GAAiB,MACtB,IAAnC71R,KAAK8k4B,aAAan63B,QAAQwrB,IAAc0/P,GAAiBgC,IAAUgymB,GACnE7p4B,KAAK2ysB,YAAY98a,EAAe,UAAW,MAE/C,IAAIi/E,EAAWj6V,GAAS7a,KAAKmzN,OAAOhsK,MAAMrwC,WAAY9W,KAAK6l4B,SAAS153B,IAChE2oW,GACA90W,KAAKqq4B,yBAAyBv1hB,EAAU3+U,EAAIjmB,EAAM253B,EAAS1z2B,EAEnE,CAde,CAgBvB,EAIAws2B,EAAShy3B,UAAUukS,oBAAsB,SAAUhlS,EAAM253B,GACrD,IAEI1h2B,EAFAmi2B,EAAoBtq4B,KAAKuq4B,YAAYr63B,GACrC0a,EAAQ,EAEU,IAAlB5qB,KAAK0lV,WACLv9S,EAASmi2B,EAAkB,GAAGtq4B,KAAKmzN,OAAOkvZ,UAAYioR,EAAkB,GAAGtq4B,KAAKmzN,OAAOkvZ,UAAUvrmB,WAAa,MAElH,IAAIqyB,EAAanpC,KAAKqjC,cAAcrjC,KAAK6l4B,SAAU191B,GACnD,GAAIgB,EACA,IAAK,IAAIh9B,EAAI,EAAGA,EAAIg9B,EAAW/lC,OAAQ+I,IAAK,CACxC,IAAI40mB,EAAU53kB,EAAWh9B,GAAGnM,KAAKmzN,OAAOh9L,IAAMgT,EAAWh9B,GAAGnM,KAAKmzN,OAAOh9L,IAAIrf,WAAa,MAC7C,IAAxC9W,KAAK8k4B,aAAan63B,QAAQo2mB,IAC1Bn2lB,GAER,CAEJ,IAAIirQ,EAAgB71R,KAAKmV,QAAQykB,cAAc,cAAgBuO,EAAS,MACpE0tP,GAAiBg0mB,IAGXA,GAAWh0mB,IAA2D,IAA1C71R,KAAK2j4B,gBAAgBh53B,QAAQw9B,IAA4B,IAAVvd,EAFjF5qB,KAAK2ysB,YAAY98a,EAAe,gBAAiB,OAK3Cg0mB,GAAWh0mB,IAA2D,IAA1C71R,KAAK2j4B,gBAAgBh53B,QAAQw9B,IAA4B,IAAVvd,EACjF5qB,KAAK2ysB,YAAY98a,EAAe,UAAW,MAErCA,IACDg0mB,IAAkD,IAAvC7p4B,KAAK8k4B,aAAan63B,QAAQw9B,KAA4D,IAA1CnoC,KAAK2j4B,gBAAgBh53B,QAAQw9B,GAGhF0h2B,IAAkD,IAAvC7p4B,KAAK8k4B,aAAan63B,QAAQw9B,KAA4D,IAA1CnoC,KAAK2j4B,gBAAgBh53B,QAAQw9B,GACzFnoC,KAAK2j4B,gBAAgBv33B,KAAK+7B,GAEpB0h2B,IAAkD,IAAvC7p4B,KAAK8k4B,aAAan63B,QAAQw9B,KAA4D,IAA1CnoC,KAAK2j4B,gBAAgBh53B,QAAQw9B,IAC7E,IAAVvd,GACH5qB,KAAK2j4B,gBAAgBv33B,KAAK+7B,GAP1BnoC,KAAK2j4B,gBAAgBnu2B,OAAOx1B,KAAK2j4B,gBAAgBh53B,QAAQw9B,GAAS,GAStEnoC,KAAKk1S,oBAAoB/sQ,EAAQ0h2B,IACU,IAAvC7p4B,KAAK8k4B,aAAan63B,QAAQw9B,IAAmB0h2B,GAC7C7p4B,KAAK8k4B,aAAatv2B,OAAOx1B,KAAK8k4B,aAAan63B,QAAQw9B,GAAS,GAGxE,EAIAw61B,EAAShy3B,UAAU053B,yBAA2B,SAAUv1hB,EAAU3sU,EAAQj4B,EAAM253B,EAAS1i1B,GAErF,IADA,IAAIv8B,EAAQ,EACH5a,EAAI,EAAGA,EAAI8kW,EAAS1xW,OAAQ4M,IAAK,CACtC,IAAIw63B,EAAQ11hB,EAAS9kW,GAAGhQ,KAAKmzN,OAAOh9L,IAAM2+U,EAAS9kW,GAAGhQ,KAAKmzN,OAAOh9L,IAAIrf,WAAa,IACzC,IAAtC9W,KAAK8k4B,aAAan63B,QAAQ6/3B,IAC1B5/2B,IAEJ,IAAIirQ,EAAgB71R,KAAKmV,QAAQykB,cAAc,cAAgBuO,EAAS,MACpE0sQ,EAAgBhf,EAAgB20D,GAAO,IAAM4nX,IAAev8a,GAAiB,KAC7EgC,EAAQhC,EAAgB20D,GAAO,IAAM0nX,IAAOr8a,GAAiB,KAC7D1gR,EAAUnV,KAAKmV,QAAQykB,cAAc,cAAgB4w2B,EAAQ,MAC7DC,EAAoBt13B,EAAUq1U,GAAO,IAAM0nX,IAAO/8rB,GAAW,KACjE,IAAyC,IAArCnV,KAAK8k4B,aAAan63B,QAAQuF,IAAgB2lR,GAAkB20mB,IAAUt63B,GAASlQ,KAAK4m4B,UACpF5m4B,KAAK2ysB,YAAY98a,EAAe,gBAAiB,WAEhD,IAAyC,IAArC71R,KAAK8k4B,aAAan63B,QAAQuF,KAAgB2lR,GAAkB1gR,GAAYq13B,IAAUt63B,GAAU253B,GAahG,IAAyC,IAArC7p4B,KAAK8k4B,aAAan63B,QAAQuF,IAAgBiF,GAAYq13B,IAAUt63B,IAAU253B,EAC/E7p4B,KAAK2ysB,YAAYx9rB,EAAS,UAAW,WAEpC,IAAyC,IAArCnV,KAAK8k4B,aAAan63B,QAAQuF,IAAgB2kS,GAAkB21lB,IAAUt63B,GAASlQ,KAAK4m4B,WAAuB,IAAVh82B,IAClGi/2B,EACJh1lB,EAAc3sB,UAAU/0P,OAAOi/qB,UAE9B,IAAyC,IAArCpysB,KAAK8k4B,aAAan63B,QAAQuF,KAAiBiF,GAAW0iR,GAAU2ymB,IAAUt63B,GAAmB,IAAV0a,EACxF5qB,KAAK2ysB,YAAY98a,EAAe,UAAW,WAE1C,IAA0C,IAAtC71R,KAAK8k4B,aAAan63B,QAAQ6/3B,IAAiBr13B,GAAWs13B,GAA+B,IAAV7/2B,EAChF5qB,KAAK2ysB,YAAYx9rB,EAAS,UAAW,WAEpC,IAAKA,IAAY0gR,GAAkB20mB,IAAUt63B,IAAoD,IAA1ClQ,KAAK2j4B,gBAAgBh53B,QAAQw9B,IAAmBnoC,KAAK4m4B,UAAW,CACxH,IAAI0C,EAAetp4B,KAAKmV,QAAQykB,cAAc,cAAgButB,EAAQ,MAClE0i1B,GAAqB,IAAVj/2B,EACX5qB,KAAK2ysB,YAAY22L,EAAc,gBAAiB,MAE3CO,GAAWj/2B,IAAUkqV,EAAS1xW,SAAiD,IAAvCpD,KAAK8k4B,aAAan63B,QAAQw9B,GACvEnoC,KAAK8k4B,aAAa143B,KAAK+7B,GAEjB0h2B,GAAqB,IAAVj/2B,IAAyD,IAA1C5qB,KAAK2j4B,gBAAgBh53B,QAAQw9B,IAC7DnoC,KAAK2j4B,gBAAgBnu2B,OAAOx1B,KAAK2j4B,gBAAgBh53B,QAAQw9B,KAEf,IAA1CnoC,KAAK2j4B,gBAAgBh53B,QAAQw9B,IAC7BnoC,KAAK2j4B,gBAAgBv33B,KAAK+7B,EAElC,OAvCQnoC,KAAK4m4B,UACL5m4B,KAAK2ysB,YAAY98a,EAAe,UAAW,MAG7B,IAAVjrQ,EACA5qB,KAAK2ysB,YAAY98a,EAAe,gBAAiB,MAGjD71R,KAAK2ysB,YAAY98a,EAAe,UAAW,MAgCvD,IAAI60mB,EAAa7v3B,GAAS7a,KAAKmzN,OAAOhsK,MAAMrwC,WAAYg+V,EAAS9kW,IAC7D063B,GACA1q4B,KAAKqq4B,yBAAyBK,EAAYF,EAAOt63B,EAAM253B,EAAS1i1B,EAExE,CACJ,EACAw70B,EAAShy3B,UAAUgisB,YAAc,SAAUxosB,EAAS/C,EAAO/G,EAAGut3B,EAAWn/W,EAAOo7X,GAC5E,IACIjljB,EADAtlV,EAAQU,KAERmq4B,EAAS10yB,GAAQtrF,EAAS,IAAM623B,KAChC723B,IAAYgg4B,IACZhg4B,EAAUqgV,GAAO,IAAMoiiB,IAAcud,IAEpCvc,EAUD5t3B,KAAK2q4B,gBAAgBxg4B,EAAS/C,EAAO+i4B,EAAQvljB,EAAWvkV,EAAGut3B,EAAWn/W,EAAOo7X,IAT7E7p4B,KAAK0j4B,iBAAmB,GACxB9+iB,EAAY5kV,KAAK4q4B,cAAcT,EAAQ/i4B,EAAO/G,GAC9CL,KAAKsgS,QAAQ,eAAgBskD,GAAW,SAAU+nH,GACzCA,EAAa7rX,QACdxhF,EAAMqr4B,gBAAgBxg4B,EAAS/C,EAAO+i4B,EAAQx9b,EAActsc,EAAGut3B,EAAWn/W,EAAOo7X,EAEzF,IAKR,EACAlH,EAAShy3B,UAAUg63B,gBAAkB,SAAUxg4B,EAAS/C,EAAO+i4B,EAAQvljB,EAAWvkV,EAAGut3B,EAAWn/W,EAAOo7X,GACnG,IAAIgB,EACAjhc,EAAYz/b,EAAQ2oV,uBAAuB65hB,KAAe,GAsB9D,GArBc,UAAVvl3B,GAAsBwic,EAAU1hL,UAAUh1P,SAASg/qB,KAMpC,YAAV9qsB,IAAwBwic,EAAU1hL,UAAUh1P,SAASg/qB,MAAUtoQ,EAAU1hL,UAAUh1P,SAASk/qB,OACjGnqb,GAAY,CAAC2hL,GAAY,CAACsoQ,IAAOE,MACjCpysB,KAAK8q4B,YAAYX,GACjBU,EAAY,SAEG,kBAAVzj4B,GAA6BpH,KAAK4m4B,YACvCh9b,EAAU1hL,UAAU/0P,OAAO++qB,KAC3BtoQ,EAAU1hL,UAAU90P,IAAIg/qB,KACxBpysB,KAAK8q4B,YAAYX,GACjBU,EAAY,UAdZjhc,EAAU1hL,UAAU/0P,OAAOi/qB,KAC3BxoQ,EAAU1hL,UAAU90P,IAAI8+qB,KACxBlysB,KAAKgo4B,SAASmC,GACdU,EAAY,QAcXn9X,GADLm9X,EAAsB,UAAVzj4B,EAAoB,OAAmB,YAAVA,EAAsB,QAAUyj4B,IAErE1g4B,EAAQ6qB,aAAa,eAAgB612B,GAErCp8X,EAAO,CACP,IAAIvke,EAAO,GAAG9wB,OAAO,GAAIpZ,KAAK0j4B,kBAC9B9+iB,EAAY5kV,KAAK4q4B,cAAcT,EAAQ/i4B,EAAO/G,GAC1CkrF,GAAYqiyB,KACZhpiB,EAAU16S,KAAOA,EAEzB,MACgB7mC,IAAZwm4B,GACA7p4B,KAAK+q4B,kBAAkBZ,EAAQN,GAE9Bjc,GACIlgX,GAAMm9X,KACP1g4B,EAAQ6qB,aAAa,eAAgB612B,GACrCjmjB,EAAU16S,KAAK,GAAG4hB,QAAU++0B,EAC5B7q4B,KAAKsgS,QAAQ,cAAeskD,GAC5B5kV,KAAK0j4B,iBAAmB,GAGpC,EACAf,EAAShy3B,UAAUq33B,SAAW,SAAU+B,GACpC,IAAI5z2B,EAAK4z2B,EAAMz32B,aAAa,YACvBo7e,GAAMv3e,KAA0C,IAAnCn2B,KAAK8k4B,aAAan63B,QAAQwrB,IACxCn2B,KAAK8k4B,aAAa143B,KAAK+pB,EAE/B,EACAws2B,EAAShy3B,UAAUm63B,YAAc,SAAUf,GACvC,IAAIt92B,EAAQzsB,KAAK8k4B,aAAan63B,QAAQo/3B,EAAMz32B,aAAa,aACrD7F,GAAS,GACTzsB,KAAK8k4B,aAAatv2B,OAAO/I,EAAO,EAExC,EACAk22B,EAAShy3B,UAAUi63B,cAAgB,SAAUT,EAAQj1zB,EAAQ70E,GACzDL,KAAK0j4B,iBAAiBt33B,KAAKpM,KAAKoq4B,YAAYD,IAC5C,IAAI7B,EAAWto4B,KAAK0j4B,iBACpB,MAAO,CAAExuzB,OAAQA,EAAQ4L,QAAQ,EAAOuxU,cAAcq7G,GAAMrtgB,GAAmB6P,KAAMi63B,EAAQjg2B,KAAMo+1B,EACvG,EACA3F,EAAShy3B,UAAUizT,SAAW,WAC1B,IAAIgikB,EAAUp7iB,GAAO,IAAM02iB,IAAYlh4B,KAAKmV,SAC5C,IAAK42T,GAAkB65jB,GAAU,CAC7BA,EAAQ5w2B,aAAa,OAAQst2B,IAAaC,UAC1Cvi4B,KAAK2l4B,eAAe3l4B,KAAKwp0B,qBACzB,IAAI3qQ,EAAYr0O,GAAO,IAAMw2iB,IAAUhh4B,KAAKmV,SACxC0pjB,IACAA,EAAU7piB,aAAa,WAAY,KACnCh1B,KAAKgr4B,aAAa,KAAMnsU,IAExB7+jB,KAAKu8mB,eACLv8mB,KAAKir4B,aAETjr4B,KAAKs6V,uBACLt6V,KAAKkr4B,SAASlr4B,KAAKim4B,SAAS,IAAKjm4B,KAAKim4B,SAAS,GAAGn13B,eAAe9Q,KAAKmzN,OAAOkvZ,UAC7ErinB,KAAKmr4B,gBACT,CACJ,EACAxI,EAAShy3B,UAAU403B,YAAc,YAC5Bvl4B,KAAKu8mB,cAAgB/zV,GAAWP,IAAa,CAACjoR,KAAKmV,SAvyC7C,eAwyCH8xU,GAAQh0D,OACPjzR,KAAKu8mB,cAAgB/zV,GAAWP,IAAa,CAACjoR,KAAKmV,SAxyC/C,YA0yCb,EACAwt3B,EAAShy3B,UAAUs63B,WAAa,SAAUG,GACtC,GAAKpr4B,KAAKsl4B,cAKV,IAFA,IAAIyE,EAAQqB,EAAQzgjB,GAAU,IAAMq2iB,IAAUoK,GAASpr4B,KAAKqr4B,OACxDjo4B,EAAS2m4B,EAAM3m4B,OACV+I,EAAI,EAAGA,EAAI/I,EAAQ+I,IACxBnM,KAAKsr4B,cAAcvB,EAAM593B,GAEjC,EACAw23B,EAAShy3B,UAAU263B,cAAgB,SAAUvB,GACzC,IAAI503B,EAAUq1U,GAAO,IAAMw3iB,IAAS+H,GAChC503B,GAAWA,EAAQk+Q,qBACnBl+Q,EAAQhP,MAAMyiJ,OAAS5oJ,KAAKu8mB,cAAgBpnmB,EAAQk+Q,mBAAmB0B,aAAe,KAAO,GAErG,EACA4tmB,EAAShy3B,UAAUw63B,eAAiB,WAChC,IAAII,EAAQvr4B,KAAK+k4B,cACjB,GAAI/k4B,KAAK4k4B,gBAAkB2G,EAAMno4B,OAAS,EAGtC,GAFApD,KAAKisV,cAAc,CAAE84iB,cAAe,KAAM,GAEtC/k4B,KAAKmzN,OAAO2/M,sBAAsBuQ,GAClCrjb,KAAKwr4B,iBAAiBD,OAErB,CACD,IAAK,IAAIp/3B,EAAI,EAAGA,EAAIo/3B,EAAMno4B,OAAQ+I,IAAK,CACnC,IAAIs/3B,EAAQjhjB,GAAO,cAAgB+gjB,EAAMp/3B,GAAK,KAAMnM,KAAKmV,SACzD,GAAKu4f,GAAM+9X,GAOHF,EAAMp/3B,KAAiD,IAA3CnM,KAAKkj4B,eAAev43B,QAAQ4g4B,EAAMp/3B,KAC9CnM,KAAKkj4B,eAAe923B,KAAKm/3B,EAAMp/3B,GAAG2K,gBAR1C,CACI,IAAImqQ,EAAOupE,GAAO,IAAMu2iB,IAAYv2iB,GAAO,IAAM62iB,IAAUoK,IACtD/9X,GAAMzsP,IACPjhR,KAAK0r4B,aAAaD,EAAOxqnB,EAAM,KAQvC,CACJ,CACAjhR,KAAK2r4B,gBACT,MAGA3r4B,KAAK2r4B,gBAEb,EACAhJ,EAAShy3B,UAAU663B,iBAAmB,SAAUr+1B,GAC5C,IAAI64J,EAAQhmM,KACZA,KAAK4r4B,eAAez+1B,EAAIntC,KAAKysB,QAAQ,WACjCu5K,EAAMv5K,QACFu5K,EAAMv5K,MAAQ0gB,EAAI/pC,OAClB4iM,EAAMwlsB,iBAAiBr+1B,GAGvB64J,EAAM2lsB,gBAEd,GACJ,EACAhJ,EAAShy3B,UAAUi73B,eAAiB,SAAUC,EAAM/k4B,GAChD,IAAI2k4B,EAAQjhjB,GAAO,cAAgBqhjB,EAAO,KAAM7r4B,KAAKmV,SACrD,GAAKu4f,GAAM+9X,GAUP3k4B,QAVe,CACf,IAAIm6Q,EAAOupE,GAAO,IAAMu2iB,IAAYv2iB,GAAO,IAAM62iB,IAAUoK,IACtD/9X,GAAMzsP,GAIPn6Q,IAHA9G,KAAK0r4B,aAAaD,EAAOxqnB,EAAM,MAAM,EAAOn6Q,EAKpD,CAIJ,EACA673B,EAAShy3B,UAAUg73B,eAAiB,WAKhC,GAJA3r4B,KAAK8r4B,oBACL9r4B,KAAK+o4B,oBACL/o4B,KAAKkya,WAAY,EACjBlya,KAAK4k4B,gBAAiB,IAChB5k4B,KAAKijnB,UAAYjjnB,KAAKmj4B,iBAAmBnj4B,KAAKsj4B,cAAe,CAC/D,IAAI1+iB,EAAY,CAAE16S,KAAMlqC,KAAK6l4B,UAC7B7l4B,KAAKsgS,QAAQ,YAAaskD,EAC9B,CACA5kV,KAAKijnB,UAAW,EAChBjjnB,KAAKsj4B,eAAgB,CACzB,EACAX,EAAShy3B,UAAUm73B,kBAAoB,WACnC,IAAIpD,EAAS/9iB,GAAU,IAAMv3E,IAAUpzQ,KAAKmV,SACxC423B,EAAQ/r4B,KAAKy/jB,cACjB,GAAIssU,EAAM3o4B,OAAS,EAAG,CAClBpD,KAAKisV,cAAc,CAAEwzO,cAAe,KAAM,GAC1C,IAAK,IAAItzjB,EAAI,EAAGA,EAAI4/3B,EAAM3o4B,OAAQ+I,IAAK,CACnC,IAAI6/3B,EAAQxhjB,GAAO,cAAgBuhjB,EAAM5/3B,GAAK,KAAMnM,KAAKmV,SAOzD,GANI623B,IAAWA,EAAM9jnB,UAAUh1P,SAAS,YACpClzB,KAAKw4jB,WAAWwzU,EAAO,MAAM,GAG7Bhs4B,KAAKy/jB,cAAcrzjB,KAAK2/3B,EAAM5/3B,KAE7BnM,KAAKwp0B,oBACN,KAER,CACJ,MAEIxp0B,KAAKis4B,iBAAiBvD,GAE1BzgnB,GAAYygnB,EAAQt1nB,IACxB,EACAuvnB,EAAShy3B,UAAUs73B,iBAAmB,SAAUvD,GAC5C,IAAK,IAAIv83B,EAAI,EAAGA,EAAIu83B,EAAOtl4B,SAClBsl4B,EAAOv83B,GAAG+7Q,UAAUh1P,SAAS,cAC9BlzB,KAAKw4jB,WAAWkwU,EAAOv83B,GAAI,MAAM,GAEhCnM,KAAKwp0B,qBAJqBr9zB,KAQvC,EACAw23B,EAAShy3B,UAAUm6Y,aAAe,SAAU/zX,GACxC,IAAI1uB,EAAS4+U,GAAQM,WAAaN,GAAQa,MAAQ52T,SAAS6xU,iBAAiBhsU,EAAMywU,cAAcj+M,eAAe,GAAGlwH,QAAStC,EAAMywU,cAAcj+M,eAAe,GAAGjwH,SAAWvC,EAAMywU,cAAcn/V,OAEhM,GADAwwO,GAAa1lN,OAAOnzB,KAAKmV,QAAS,cAAenV,KAAKks4B,oBACjD7j4B,IAAUrI,KAAK4j4B,gBAApB,CAII,IAAI17mB,EAAY7/Q,EAAO6/Q,UACnBnsH,EAAKtmE,GAAQptF,EAAQ,IAAM243B,KAC/B,GAAKjluB,KAAOA,EAAGmsH,UAAUh1P,SAASmv2B,MAAoBn6mB,EAAUh1P,SAAS6t2B,MAAe74mB,EAAUh1P,SAAS4t2B,MAA3G,CAGK,GAAkC,IAA9B/p2B,EAAMywU,cAAcnvU,MAAa,CACtC,IAAIq6T,EAAgBlI,GAAO,oBAAoBzuL,GAC3CowuB,EAAc3hjB,GAAO,IAAM3uE,IAAM9/G,GAGrC,GAFA/7J,KAAKq9b,cACLr9b,KAAKos4B,gBAAgBrwuB,GACjB/7J,KAAK6sb,eAAiB9wR,EAAGmsH,UAAUh1P,SAAS,aAAc,CAC1D,IAAIw61B,EAAej4xB,GAAQptF,EAAQ,IAAMuk3B,KACzC,IAAKl/W,GAAMggX,GAAe,CACtB,IAAIn3E,EAAe/rd,GAAO,IAAMmiiB,IAAee,GAG/C,OAFA1t3B,KAAK2t3B,kBAAkBD,EAAcn3E,EAAaruhB,UAAUh1P,SAASg/qB,KAAQn2iB,EAAIhlI,EAAMywU,oBACvFxnW,KAAKqs4B,kBAAkBt12B,EAAMywU,cAAezrM,EAEhD,CACJ,CACImsH,EAAUh1P,SAAS6t2B,KACnB/g4B,KAAK0r4B,aAAa3vuB,EAAI1zJ,EAAQ0uB,GAEzBmxP,EAAUh1P,SAAS4t2B,KACxB9g4B,KAAKss4B,aAAavwuB,EAAI1zJ,EAAQ0uB,GAEzB27T,GAAiBy5iB,EAClBA,EAAYjknB,UAAUh1P,SAAS8hkB,MAAWm3S,EAAYjknB,UAAUh1P,SAAS6t2B,KACzE/g4B,KAAK0r4B,aAAa3vuB,EAAIowuB,EAAap12B,GAE9Bo12B,EAAYjknB,UAAUh1P,SAAS8hkB,MAAWm3S,EAAYjknB,UAAUh1P,SAAS4t2B,KAC9E9g4B,KAAKss4B,aAAavwuB,EAAIowuB,EAAap12B,GAE7BmxP,EAAUh1P,SAASgu2B,MAAgBh5mB,EAAUh1P,SAAS8t2B,MAC5Dhh4B,KAAKus4B,aAAaxwuB,EAAIhlI,EAAMywU,eAAe,GAI1Ct/E,EAAUh1P,SAASgu2B,MAAgBh5mB,EAAUh1P,SAAS8t2B,MACvDhh4B,KAAKus4B,aAAaxwuB,EAAIhlI,EAAMywU,eAAe,EAGvD,CACkC,IAA9BzwU,EAAMywU,cAAcnvU,QACpBr4B,KAAKuj4B,cAAe,GAExBvj4B,KAAKqs4B,kBAAkBt12B,EAAMywU,cAAezrM,EAJ5C,CAKJ,CACJ,EACA4muB,EAAShy3B,UAAU673B,iBAAmB,SAAUri4B,EAAS4hsB,EAAS1rsB,GACjDo1F,GAAQtrF,EAAS,IAAM623B,KAApC,IACIp8iB,EAAY5kV,KAAK4q4B,cAAczg4B,EAAS4hsB,EAAU,UAAY,QAAS1rsB,GAC3EukV,EAAU16S,KAAO06S,EAAU16S,KAAK1U,OAAO,EAAGovT,EAAU16S,KAAK9mC,OAAS,GAClEpD,KAAKsgS,QAAQ,cAAeskD,EAChC,EACA+9iB,EAAShy3B,UAAU073B,kBAAoB,SAAUhs4B,EAAG07J,GAChD,IAAI6oL,EAAY,CACZ7tT,MAAO12B,EACP6P,KAAM6rJ,GAEV/7J,KAAKsgS,QAAQ,cAAeskD,EAChC,EACA+9iB,EAAShy3B,UAAU873B,WAAa,SAAUtC,EAAQlpnB,EAAMviG,GACpD,IAAIp/K,EAAQU,KAQZ,GAPAA,KAAKs6V,uBACDr5E,EAAKiH,UAAUh1P,SAASiu2B,MACxBnh4B,KAAK0ya,YAAYzxJ,GAEhBjhR,KAAK29gB,eACN18P,EAAKiH,UAAU90P,IAAI,gBAER,IAAXsrJ,IAA+B,IAAXA,GAAmByrtB,EAAOjinB,UAAUh1P,SAAS,eACjE,IAA2B,IAAvBlzB,KAAK6i4B,cAAwB,CAC7B56mB,GAAY,CAAChH,GAAO8/mB,KACpBv4mB,GAAS,CAACvH,GAAO6/mB,KACjB,IAAI4L,EAAU,EACVC,EAAQ,EACR5qc,EAAU/hc,KACV0oiB,EAAOl+M,GAAO,IAAM02iB,IAAYiJ,GAChCyC,EAAUzC,EACdnq4B,KAAKmqhB,UAAUyiX,EAASlkW,GACxB,IAAImkW,EAAkBrijB,GAAO,IAAMw2iB,IAAW,IAAM5unB,IAAQ+3nB,GACxDnq4B,KAAKkya,YAAclya,KAAK4i4B,YACxB5i4B,KAAKinrB,OAAOhlY,QAAQymP,EAAM,CACtBhkiB,KAAM1E,KAAKmvJ,UAAU2lR,OAAO9gO,OAC5B//F,SAAUj0G,KAAKmvJ,UAAU2lR,OAAO7gU,SAChCu9O,eAAgBxxV,KAAKmvJ,UAAU2lR,OAAO5kF,OACtCiB,MAAO,SAAUl4U,GACb2z3B,EAAQzm4B,MAAMsyF,SAAW,UACpBszO,GAAkB8gkB,IAAoBA,aAA2B/42B,aAClE+42B,EAAgB3knB,UAAU90P,IAAIgv2B,KAElCsK,EAAUE,EAAQ73mB,aAClB43mB,EAAQnijB,GAAO,IAAM62iB,IAAU8I,GAAQp1mB,YAC3C,EACA08D,SAAU,SAAUx4U,GAChBA,EAAK9D,QAAQhP,MAAMi+J,QAAU,QAC7B29R,EAAQ+qc,cAAc7z3B,EAAMyz3B,EAASC,EACzC,EACAvz1B,IAAK,SAAUngC,GACXA,EAAK9D,QAAQhP,MAAMi+J,QAAU,SACxB2nK,GAAkB8gkB,IAAoBA,aAA2B/42B,aAClE+42B,EAAgB3knB,UAAU/0P,OAAOiv2B,KAErC9i4B,EAAMyt4B,aAAaH,EAASlkW,EAAMznR,EACtC,IAIJjhR,KAAK+s4B,aAAaH,EAASlkW,EAAMznR,EAEzC,OAGSupE,GAAO,IAAM02iB,IAAYiJ,GAC/Bhk4B,MAAMi+J,QAAU,OACfpkK,KAAKmzN,OAAO2/M,sBAAsBuQ,MAAgB,IAClDrjb,KAAK6i4B,eAAgB,GAGzB7i4B,KAAK29gB,eACL18P,EAAKiH,UAAU90P,IAAI,cAE3B,EACAuv2B,EAAShy3B,UAAUo83B,aAAe,SAAU5C,EAAQlguB,EAAIg3G,GACpDh3G,EAAG9jK,MAAMi+J,QAAU,QACnB+luB,EAAOhk4B,MAAMi+J,QAAU,QACvB+luB,EAAOhk4B,MAAMsyF,SAAW,GACxB0xyB,EAAOhk4B,MAAMyiJ,OAAS,GACtBq/H,GAAY,CAAChH,GAAOmgnB,KACpBph4B,KAAKgt4B,UAAU7C,GACXnq4B,KAAKu8mB,eAAiBv8mB,KAAKijnB,UAAYjjnB,KAAKqj4B,gBAC5Crj4B,KAAKir4B,WAAWd,GAChBnq4B,KAAKqj4B,eAAgB,GAErBrj4B,KAAKijnB,UAAYjjnB,KAAKgz3B,aAAehz3B,KAAK4i4B,cAC1C5i4B,KAAKgz3B,WAAahz3B,KAAKit4B,eAAe9C,EAAQ,MAC9Cnq4B,KAAKgz3B,WAAW3ge,aAAeryZ,KAAKqyZ,aACpCryZ,KAAKsgS,QAAQ,eAAgBtgS,KAAKgz3B,YAE1C,EACA2P,EAAShy3B,UAAUq83B,UAAY,SAAUjD,GACrCA,EAAM/02B,aAAa,gBAAiB,QACpCizP,GAAY,CAAC8hnB,GAAQ7H,KACrB,IAAI/r2B,EAAK4z2B,EAAMz32B,aAAa,YACvBo7e,GAAMv3e,KAA2C,IAApCn2B,KAAK+k4B,cAAcp63B,QAAQwrB,IACzCn2B,KAAK+k4B,cAAc343B,KAAK+pB,EAEhC,EACAws2B,EAAShy3B,UAAU273B,aAAe,SAAUnC,EAAQlpnB,EAAM5gR,GACtD,IAOI6s4B,EAPA5t4B,EAAQU,KACRihR,EAAKiH,UAAUh1P,SAASku2B,OAIxB54mB,GAAS,CAACvH,GAAOmgnB,KAGjBph4B,KAAKijnB,UACLiqR,EAAUlt4B,KAAKit4B,eAAe9C,EAAQ9p4B,GACtCL,KAAKqyZ,aAAe66e,EAAQ76e,aAC5BryZ,KAAKsgS,QAAQ,iBAAkB4smB,GAAS,SAAUvgc,GAC1CA,EAAa7rX,OACbmnM,GAAY,CAAChH,GAAOmgnB,KAGpB9h4B,EAAM6t4B,mBAAmBhD,EAAQlpnB,EAAM0rL,EAE/C,KAGA3sc,KAAKmt4B,mBAAmBhD,EAAQlpnB,EAAMisnB,GAE9C,EACAvK,EAAShy3B,UAAUw83B,mBAAqB,SAAUhD,EAAQlpnB,EAAMisnB,GAC5D,IAAI5t4B,EAAQU,KACZioR,GAAY,CAAChH,GAAO6/mB,KACpBt4mB,GAAS,CAACvH,GAAO8/mB,KACjB,IAAI7q1B,EAAQ,EACRkD,EAAM,EACN4sJ,EAAQhmM,KACRiqK,EAAKugL,GAAO,IAAM02iB,IAAYiJ,GAC9BJ,EAAQI,EACRvpvB,EAAgB4pM,GAAO,IAAMw2iB,IAAW,IAAM5unB,IAAQ+3nB,GACtDnq4B,KAAKkya,UACLlya,KAAKinrB,OAAOhlY,QAAQh4I,EAAI,CACpBvlK,KAAM1E,KAAKmvJ,UAAUqoa,SAASxjX,OAC9B//F,SAAUj0G,KAAKmvJ,UAAUqoa,SAASvjd,SAClCu9O,eAAgBxxV,KAAKmvJ,UAAUqoa,SAAStnO,OACxCiB,MAAO,SAAUl4U,GACb8w3B,EAAM5j4B,MAAMsyF,SAAW,UAClBszO,GAAkBnrL,IAAkBA,aAAyB9sH,aAC9D8sH,EAAcsnI,UAAU90P,IAAIgv2B,KAEhCls1B,EAAQs0S,GAAO,IAAM62iB,IAAU8I,GAAQp1mB,aACvC37O,EAAM2w1B,EAAMh1mB,YAChB,EACA08D,SAAU,SAAUx4U,GAChB+sL,EAAM8msB,cAAc7z3B,EAAMi9B,EAAOkD,EACrC,EACAA,IAAK,SAAUngC,GACXA,EAAK9D,QAAQhP,MAAMi+J,QAAU,QACxB2nK,GAAkBnrL,IAAkBA,aAAyB9sH,aAC9D8sH,EAAcsnI,UAAU/0P,OAAOiv2B,KAEnC9i4B,EAAM8t4B,cAAcrD,EAAO9/tB,EAAIg3G,EAAMisnB,EACzC,IAIJlt4B,KAAKot4B,cAAcrD,EAAO9/tB,EAAIg3G,EAAMisnB,EAE5C,EACAvK,EAAShy3B,UAAUy83B,cAAgB,SAAUrD,EAAO9/tB,EAAIg3G,EAAMisnB,GAC1DjjuB,EAAG9jK,MAAMi+J,QAAU,OACnB2luB,EAAM5j4B,MAAMsyF,SAAW,GACvBsxyB,EAAM5j4B,MAAMyiJ,OAAS,GACrBq/H,GAAY,CAAChH,GAAOmgnB,KACpBph4B,KAAKqt4B,aAAatD,GACd/p4B,KAAKijnB,YACLiqR,EAAUlt4B,KAAKit4B,eAAelD,EAAO,OAC7B13e,aAAeryZ,KAAKqyZ,aAC5BryZ,KAAKsgS,QAAQ,gBAAiB4smB,GAEtC,EACAvK,EAAShy3B,UAAU083B,aAAe,SAAUtD,EAAOuD,GAC3CA,EACAvD,EAAMh12B,gBAAgB,iBAGtB/0B,KAAK4o4B,kBAAkBmB,GAE3B,IAAIt92B,EAAQzsB,KAAK+k4B,cAAcp63B,QAAQo/3B,EAAMz32B,aAAa,aACtD7F,GAAS,GACTzsB,KAAK+k4B,cAAcvv2B,OAAO/I,EAAO,EAEzC,EACAk22B,EAAShy3B,UAAUi43B,kBAAoB,SAAUmB,GAC7CA,EAAM/02B,aAAa,gBAAiB,SACpCwzP,GAAS,CAACuhnB,GAAQ7H,IACtB,EACAS,EAAShy3B,UAAUw5gB,UAAY,SAAUggX,EAAQlguB,GAC7CA,EAAG9jK,MAAMi+J,QAAU,QACnB6F,EAAG9jK,MAAMohQ,WAAa,SACtB4ioB,EAAOhk4B,MAAMyiJ,OAASuhvB,EAAOp1mB,aAAe,KAC5C9qH,EAAG9jK,MAAMi+J,QAAU,OACnB6F,EAAG9jK,MAAMohQ,WAAa,EAC1B,EACAo7nB,EAAShy3B,UAAUm83B,cAAgB,SAAU7z3B,EAAMi9B,EAAOkD,GACtD,IACIs/d,GAAiBt/d,EAAMlD,KADVj9B,EAAKg7F,SAAWh7F,EAAKysI,WAAazsI,EAAKg7F,UACR/9D,EAChDj9B,EAAK9D,QAAQ0gR,cAAc1vR,MAAMyiJ,OAAS8vX,EAAgB,IAC9D,EACAiqX,EAAShy3B,UAAU613B,iBAAmB,SAAUh4M,EAAU++M,EAAazm4B,EAAU43K,GAC7E,IAMI4otB,EANAho4B,EAAQU,KACRwt4B,EAAQhjjB,GAAO,OAAS3uE,IAAM2ya,GAClC,IAAI9gL,GAAM8/X,GAMV,GAHAxt4B,KAAK2xa,YAAY67d,GAGbxt4B,KAAKmzN,OAAO2/M,sBAAsBuQ,GAAa,CAC/C,IAAItxX,EAAQ/xD,KAAK66qB,QAAQ2T,EAAU,IAAM0yM,KAAY993B,OACjDqq4B,EAAWzt4B,KAAK0t4B,eAAe1t4B,KAAKmzN,OAAQphK,EAAO,GACvD,GAAI27c,GAAM+/X,IAAa//X,GAAM+/X,EAAS36d,YAGlC,OAFAxoF,GAAOkjjB,QACPxt4B,KAAKqt4B,aAAa7+M,GAAU,GAGhCxurB,KAAK2k4B,SAASv43B,KAAK,SACfpM,KAAKmzN,OAAO2/M,sBAAsBuQ,IAAerjb,KAAKurrB,WACtDvrrB,KAAK2k4B,SAASrm2B,MACdgp2B,EAAatn4B,KAAKqjC,cAAcrjC,KAAK6l4B,SAAUr3M,EAASl8pB,aAAa,aACrEtyB,KAAK2t4B,UAAUrG,EAAYmG,EAAUD,EAAOh/M,EAAU++M,EAAazm4B,EAAU43K,IAG7E+utB,EAAS36d,WAAWyB,aAAav0a,KAAK+hb,SAAS0rd,EAAUj/M,EAASl8pB,aAAa,cAAc2oG,MAAK,SAAU56H,GACxGf,EAAMql4B,SAASrm2B,MACfgp2B,EAAajn4B,EAAEwqB,OACQ,IAAnBvrB,EAAMomV,WACNpmV,EAAMomV,SAAW,GAErBpmV,EAAMqu4B,UAAUrG,EAAYmG,EAAUD,EAAOh/M,EAAU++M,EAAazm4B,EAAU43K,EAClF,IAAGtiD,OAAM,SAAU/7H,GACff,EAAMghS,QAAQ,gBAAiB,CAAErpR,MAAO5W,GAC5C,GAER,KACK,CAGD,GAFAin4B,EAAatn4B,KAAKqjC,cAAcrjC,KAAK6l4B,SAAUr3M,EAASl8pB,aAAa,aACrEtyB,KAAK0p4B,gBAAkB1p4B,KAAKsm4B,cAAcgB,GACtC55X,GAAM45X,IAAqC,IAAtBA,EAAWlk4B,OAGhC,OAFAknV,GAAOkjjB,QACPxt4B,KAAKqt4B,aAAa7+M,GAAU,GAI5BxurB,KAAK2lrB,eAAe14P,eAAel7X,MAAQrhB,WAAW89oB,EAASl8pB,aAAa,eAAiB,EAC7Fk8pB,EAAS98pB,YAAY6hZ,GAAS+c,WAAWtwb,KAAKc,cAAed,KAAK0p4B,gBAAiB1p4B,KAAK2lrB,iBACxF3lrB,KAAKys4B,WAAWj+M,EAAUg/M,EAAO9utB,GACjC1+K,KAAK4t4B,0BAA0BtG,GAC/Btn4B,KAAK6t4B,gBAAgBr/M,GACrBxurB,KAAKym4B,aAAaj4M,GAClBxurB,KAAK8t4B,iBAAiBxG,GACtBtn4B,KAAK+t4B,eAAev/M,EAAU++M,EAAa7utB,EAEnD,CACJ,EACAiktB,EAAShy3B,UAAUg93B,UAAY,SAAUrG,EAAY/9mB,EAAQiknB,EAAOh/M,EAAU++M,EAAazm4B,EAAU43K,GAEjG,GADA1+K,KAAK0p4B,gBAAkBpC,EACnB55X,GAAM45X,IAAqC,IAAtBA,EAAWlk4B,OAChCknV,GAAOkjjB,GACPxt4B,KAAKqt4B,aAAa7+M,GAAU,OAE3B,CAED,GADAxurB,KAAK0k4B,eAAen7mB,GAChBvpR,KAAKmzN,OAAO2/M,sBAAsBuQ,KAAgBrjb,KAAKurrB,UAAW,CAClE,IAAIp1pB,EAAKq4pB,EAASl8pB,aAAa,YAE/BouH,GAAS,QAAS4mvB,EADHtn4B,KAAKgu4B,cAAc732B,GAEtC,CACAn2B,KAAK2lrB,eAAe14P,eAAel7X,MAAQrhB,WAAW89oB,EAASl8pB,aAAa,eAAiB,EAC7Fk8pB,EAAS98pB,YAAY6hZ,GAAS+c,WAAWtwb,KAAKc,cAAewm4B,EAAYtn4B,KAAK2lrB,iBAC9E3lrB,KAAKys4B,WAAWj+M,EAAUg/M,EAAO9utB,GACjC1+K,KAAK4t4B,0BAA0BtG,GAC/Btn4B,KAAK6t4B,gBAAgBr/M,GACrBxurB,KAAKym4B,aAAaj4M,GAClBxurB,KAAK8t4B,iBAAiBxG,GACtBtn4B,KAAK+t4B,eAAev/M,EAAU++M,EAAa7utB,EAC/C,CACI53K,GACAA,IAEyB,IAAzB9G,KAAK2k4B,SAASvh4B,QAAiBpD,KAAKijnB,UACpCjjnB,KAAK4jU,UAEb,EACA++jB,EAAShy3B,UAAUm93B,iBAAmB,SAAUxG,GAE5C,IADA,IAAIn73B,EAAI,EACDA,EAAIm73B,EAAWlk4B,QAAQ,CAC1B,IAAI+yB,EAAKmx2B,EAAWn73B,GAAGnM,KAAKmzN,OAAOh9L,IAAMmx2B,EAAWn73B,GAAGnM,KAAKmzN,OAAOh9L,IAAIrf,WAAa,UAC3DzT,IAArBrD,KAAK+i4B,cAA+D,IAAlC/i4B,KAAK+i4B,YAAYp43B,QAAQwrB,IAC3Dn2B,KAAKiu4B,gBAAgB,CAAC932B,IAE1BhqB,GACJ,CACJ,EAIAw23B,EAAShy3B,UAAUi93B,0BAA4B,SAAUt82B,GACrD,IAAInlB,EACJ,IAAKA,EAAI,EAAGA,EAAImlB,EAAMluB,OAAQ+I,IAAK,CAC/B,IAAIgqB,EAAK7E,EAAMnlB,GAAGnM,KAAKmzN,OAAOh9L,IAAM7E,EAAMnlB,GAAGnM,KAAKmzN,OAAOh9L,IAAIrf,WAAa,UAC/CzT,IAAvBrD,KAAKy/jB,gBAAmE,IAApCz/jB,KAAKy/jB,cAAc90jB,QAAQwrB,IAC/Dn2B,KAAK8r4B,mBAEb,CACJ,EACAnJ,EAAShy3B,UAAUk93B,gBAAkB,SAAU143B,GACvCnV,KAAK6sb,eACL7sb,KAAK2pV,IAAO3pV,KAAK8i4B,eAAkB9i4B,KAAK8i4B,eAAen43B,QAAQwK,EAAQmd,aAAa,aAAe,KAC/FtyB,KAAK4m4B,YACL5m4B,KAAKkp4B,sBAAsB/z3B,GAC3BnV,KAAKip4B,uBAAuB9z3B,KAGpCnV,KAAK0p4B,gBAAkB,IAC3B,EACA/G,EAAShy3B,UAAU+nsB,UAAY,SAAUnvb,EAAQ2knB,EAAWC,GACxD,OAAID,IAAcC,EACP5knB,EAGAvpR,KAAK04sB,UAAU14sB,KAAKou4B,eAAe7knB,GAAS2knB,EAAWC,EAAY,EAElF,EACAxL,EAAShy3B,UAAU+83B,eAAiB,SAAUnknB,EAAQ2knB,EAAWC,GAE7D,OAAID,IAAcC,EACPnu4B,KAAKou4B,eAAe7knB,GAGpBvpR,KAAK0t4B,eAAe1t4B,KAAKou4B,eAAe7knB,GAAS2knB,EAAWC,EAAY,EAEvF,EACAxL,EAAShy3B,UAAUy93B,eAAiB,SAAU7knB,GAC1C,MAAgC,kBAAjBA,EAAOpiO,OAAsBumd,GAAMnkP,EAAOpiO,OAAUoiO,EAASA,EAAOpiO,KACvF,EACAw70B,EAAShy3B,UAAU0yB,cAAgB,SAAUxyB,EAAKivS,EAAUvsF,GACxD,IAEIpqL,EAFA7pC,EAAQU,KAGZ,QAFe,IAAXuzN,IAAqBA,GAAS,GAE9Bm6S,GAAM78f,GACN,OAAOs4B,EAEN,GAAsB,IAAlBnpC,KAAK0lV,SACV,OAAO1lV,KAAKqu4B,cAAcru4B,KAAK+/tB,YAAajgb,EAAUvsF,GAGtD,GAAiC,kBAAtBvzN,KAAKmzN,OAAOhsK,MAAoB,CACvC,IAAI16B,EAAQ5b,EAAIqY,WAAU,SAAUghB,GAAQ,OAAOA,EAAK5qC,EAAM6zN,OAAOh9L,KAAO+T,EAAK5qC,EAAM6zN,OAAOh9L,IAAIrf,aAAegpS,CAAU,IAC3H,IAAe,IAAXrzR,EACA,OAAO5R,GAAS7a,KAAKmzN,OAAOhsK,MAAOt2C,EAAI4b,IAE3C,IAAe,IAAXA,EACA,IAAK,IAAItgB,EAAI,EAAGmi4B,EAASz93B,EAAIzN,OAAQ+I,EAAImi4B,EAAQni4B,IAAK,CAClD,IAAIu4hB,EAAY7phB,GAAS7a,KAAKmzN,OAAOhsK,MAAOt2C,EAAI1E,IAC5CyquB,EAAclpO,GAAMg3B,IAAwI,EAA3HA,EAAUx7gB,WAAU,SAAUghB,GAAQ,OAAOA,EAAK5qC,EAAM6zN,OAAOh9L,KAAO+T,EAAK5qC,EAAM6zN,OAAOh9L,IAAIrf,aAAegpS,CAAU,IAC1J,IAAoB,IAAhB82b,EACA,OAAO/7tB,GAAS7a,KAAKmzN,OAAOhsK,MAAOu9e,EAAUkyM,IAE5C,IAAKlpO,GAAMg3B,SAEOrhiB,KADnB8lC,EAAanpC,KAAKqjC,cAAcqhgB,EAAW5kP,IAEvC,KAGZ,CAER,CAEJ,OAAO32Q,CACX,EACAw51B,EAAShy3B,UAAU093B,cAAgB,SAAUnk2B,EAAM41Q,EAAUvsF,GACzD,IAAIpqL,EACJ,GAAIuke,GAAMxje,GACN,OAAOf,EAEX,IAAK,IAAIh9B,EAAI,EAAGmi4B,EAASpk2B,EAAK9mC,OAAQ+I,EAAImi4B,EAAQni4B,IAAK,CACnD,GAAKuhgB,GAAMxje,EAAK/9B,GAAG,KAAQuhgB,GAAM7yf,GAAS7a,KAAKmzN,OAAOkvZ,SAAUn4kB,EAAK/9B,GAAG,KAKnE,OAAIonN,EACErpL,EAAK/9B,GAGL,GARP,GAAI0O,GAAS7a,KAAKmzN,OAAOkvZ,SAAUn4kB,EAAK/9B,GAAG,IAAI2K,aAAegpS,EAC1D,OAAO51Q,EAAK/9B,EASxB,CACA,OAAOg9B,CACX,EACAw51B,EAAShy3B,UAAUo93B,eAAiB,SAAU543B,EAASo43B,EAAa7utB,GAChE,GAAI6utB,EAEA,IADA,IAAIgB,EAAS5jjB,GAAU,IAAMo2iB,IAAY5r3B,GAChChJ,EAAI,EAAGwjD,EAAM4+0B,EAAOnr4B,OAAQ+I,EAAIwjD,EAAKxjD,IAAK,CAC/C,IAAI80Q,EAAOstnB,EAAOpi4B,GAClB,GAAIgJ,EAAQykB,cAAc,cAAgB202B,EAAOpi4B,GAAI,CACjD,IAAI88qB,EAAQxzlB,GAAQwrL,EAAM,IAAM+/mB,KAChChh4B,KAAKgz3B,WAAahz3B,KAAKit4B,eAAehkN,EAAO,OAC9B,IAAXvqgB,GACA1+K,KAAKsgS,QAAQ,gBAAiBtgS,KAAKgz3B,YAEvChz3B,KAAKwm4B,iBAAiBv9M,EAAOskN,EAAa,KAAM7utB,EACpD,CACJ,CAER,EACAiktB,EAAShy3B,UAAU473B,aAAe,SAAUxwuB,EAAI17J,EAAGmu4B,GAC1CzyuB,EAAGmsH,UAAUh1P,SAAS,eACnBlzB,KAAKwp0B,sBAAyBnp0B,GAAKA,EAAEu3B,SAAY422B,IAAgBxu4B,KAAK4iR,SAAS7mH,GAC/E/7J,KAAKyu4B,aAAa1yuB,EAAI17J,GAGtBL,KAAKw4jB,WAAWz8Z,EAAI17J,EAAGmu4B,GAGnC,EACA7L,EAAShy3B,UAAUiyQ,SAAW,SAAU7mH,GACpC,QAAOA,EAAGmsH,UAAUh1P,SAASk/O,IACjC,EACAuwnB,EAAShy3B,UAAU6njB,WAAa,SAAUz8Z,EAAI17J,EAAGmu4B,GAC7C,IAKI5pjB,EALAtlV,EAAQU,KACR0tgB,GAAM3xW,KAAS/7J,KAAKwp0B,qBAAuBxp0B,KAAK4iR,SAAS7mH,KAAQ2xW,GAAMrtgB,GACvEL,KAAKos4B,gBAAgBrwuB,GAIrB/7J,KAAKijnB,UACLr+R,EAAY5kV,KAAK0u4B,eAAe3yuB,EAAI,SAAU17J,GAC9CL,KAAKsgS,QAAQ,gBAAiBskD,GAAW,SAAU+nH,GACzCA,EAAa7rX,QAAY6rX,EAAaz8b,KAAKg4Q,UAAUh1P,SAASmv2B,MAChE/i4B,EAAMqv4B,iBAAiB5yuB,EAAI17J,EAAGssc,EAAc6hc,EAEpD,KAGAxu4B,KAAK2u4B,iBAAiB5yuB,EAAI17J,EAAGukV,EAAW4pjB,EAEhD,EACA7L,EAAShy3B,UAAUg+3B,iBAAmB,SAAU5yuB,EAAI17J,EAAGukV,EAAW4pjB,GAI9D,GAHKxu4B,KAAKwp0B,sBAAyBglE,GAAiBnu4B,KAAMA,GAAMA,EAAEu3B,WAC9D53B,KAAK4u4B,kBAEL5u4B,KAAKwp0B,qBAAuBnp0B,GAAKA,EAAEw3B,SAAU,CACxC73B,KAAK6ugB,YACN7ugB,KAAK6ugB,UAAY9yW,GAErB,IAAItnH,EAAaz0C,KAAKqr4B,OAAO1g4B,QAAQ3K,KAAK6ugB,WACtCn6d,EAAW10C,KAAKqr4B,OAAO1g4B,QAAQoxJ,GACnC,GAAItnH,EAAaC,EAAU,CACvB,IAAIg4C,EAAOj4C,EACXA,EAAaC,EACbA,EAAWg4C,CACf,CACA,IAAK,IAAIvgF,EAAIsoC,EAAYtoC,GAAKuoC,EAAUvoC,IAAK,CACzC,IAAI0i4B,EAAW7u4B,KAAKqr4B,OAAOl/3B,GACvB69U,GAAU6kjB,KAAcA,EAAS3mnB,UAAUh1P,SAAS,cACpDlzB,KAAK8u4B,UAAUD,EAEvB,CACJ,MAEI7u4B,KAAK6ugB,UAAY9yW,EACjB/7J,KAAK8u4B,UAAU/yuB,GAEf/7J,KAAKijnB,WACLr+R,EAAU0jjB,SAAWto4B,KAAKoq4B,YAAYruuB,GACtC/7J,KAAKsgS,QAAQ,eAAgBskD,GAC7B5kV,KAAKuj4B,cAAe,GAExBvj4B,KAAKuj4B,cAAe,CACxB,EACAZ,EAAShy3B,UAAU893B,aAAe,SAAU1yuB,EAAI17J,GAC5C,IACIukV,EADAtlV,EAAQU,KAERA,KAAKijnB,UACLr+R,EAAY5kV,KAAK0u4B,eAAe3yuB,EAAI,YAAa17J,GACjDL,KAAKsgS,QAAQ,gBAAiBskD,GAAW,SAAU+nH,GAC1CA,EAAa7rX,QACdxhF,EAAMyv4B,mBAAmBhzuB,EAAI4wS,EAErC,KAGA3sc,KAAK+u4B,mBAAmBhzuB,EAAI6oL,EAEpC,EACA+9iB,EAAShy3B,UAAUo+3B,mBAAqB,SAAUhzuB,EAAI6oL,GAClD5kV,KAAK8orB,aAAa/shB,GAClB/7J,KAAKos4B,gBAAgBrwuB,GACjB/7J,KAAKijnB,WACLr+R,EAAU0jjB,SAAWto4B,KAAKoq4B,YAAYruuB,GACtC/7J,KAAKsgS,QAAQ,eAAgBskD,GAErC,EACA+9iB,EAAShy3B,UAAUy73B,gBAAkB,SAAUrwuB,GAC3C,IAAK2xW,GAAM3xW,GAAK,CACZ,IAAIizuB,EAAchv4B,KAAKiv4B,iBACnBD,IACA/mnB,GAAY,CAAC+mnB,GAAchkZ,KAC3BgkZ,EAAYh62B,aAAa,WAAY,OAEzCwzP,GAAS,CAACzsH,GAAKivV,KACfjvV,EAAG/mI,aAAa,WAAY,KAC5B6jN,GAAazlN,IAAI2oI,EAAI,OAAQ/7J,KAAKk3Z,SAAUl3Z,MAC5CA,KAAKgr4B,aAAagE,EAAajzuB,EACnC,CACJ,EACA4muB,EAAShy3B,UAAUm+3B,UAAY,SAAU/E,GACrCA,EAAM/02B,aAAa,gBAAiB,QACpCwzP,GAAS,CAACuhnB,GAAQ33nB,KAClB,IAAIj8O,EAAK4z2B,EAAMz32B,aAAa,YACvBo7e,GAAMv3e,KAA2C,IAApCn2B,KAAKy/jB,cAAc90jB,QAAQwrB,IACzCn2B,KAAKy/jB,cAAcrzjB,KAAK+pB,EAEhC,EACAws2B,EAAShy3B,UAAUm4qB,aAAe,SAAUihN,GACpC/p4B,KAAKwp0B,oBACLugE,EAAM/02B,aAAa,gBAAiB,SAGpC+02B,EAAMh12B,gBAAgB,iBAE1BkzP,GAAY,CAAC8hnB,GAAQ33nB,KACrB,IAAI3lP,EAAQzsB,KAAKy/jB,cAAc90jB,QAAQo/3B,EAAMz32B,aAAa,aACtD7F,GAAS,GACTzsB,KAAKy/jB,cAAcjqiB,OAAO/I,EAAO,EAEzC,EACAk22B,EAAShy3B,UAAUi+3B,gBAAkB,WAEjC,IADA,IAAIhxc,EAAa59b,KAAKmV,QAAQ3E,iBAAiB,IAAM4hQ,KAC5C9iQ,EAAK,EAAGi7qB,EAAe3sP,EAAYtub,EAAKi7qB,EAAannrB,OAAQkM,IAAM,CACxE,IAAIq6U,EAAM4gW,EAAaj7qB,GACnBtP,KAAKwp0B,oBACL7/e,EAAI30T,aAAa,gBAAiB,SAGlC20T,EAAI50T,gBAAgB,gBAE5B,CACAkzP,GAAY21K,EAAYxrL,KACxBpyQ,KAAKisV,cAAc,CAAEwzO,cAAe,KAAM,EAC9C,EACAkjU,EAAShy3B,UAAU+93B,eAAiB,SAAUvE,EAAQj1zB,EAAQ70E,GAC1D,IAAIio4B,EAAWto4B,KAAKoq4B,YAAYD,GAChC,MAAO,CAAEj1zB,OAAQA,EAAQ4L,QAAQ,EAAOuxU,cAAcq7G,GAAMrtgB,GAAmB6P,KAAMi63B,EAAQ7B,SAAUA,EAC3G,EACA3F,EAAShy3B,UAAUu03B,gBAAkB,WACjCll4B,KAAKkv4B,aAAkC,SAAlBlv4B,KAAKmv4B,SAAwBlojB,GAAQM,SAAW,QAAU,WAAcvnV,KAAKmv4B,QACtG,EACAxM,EAAShy3B,UAAUy+3B,cAAgB,SAAU/u4B,GACzC,IAAIgI,EAAShI,EAAEmnW,cAAcn/V,QACxBA,GAAUA,EAAO6/Q,UAAUh1P,SAASkjP,MAAU/tQ,EAAO6/Q,UAAUh1P,SAAS8uX,MACzE35Y,EAAO6/Q,UAAUh1P,SAASgu2B,MAAe743B,EAAO6/Q,UAAUh1P,SAAS8t2B,MACnE343B,EAAO6/Q,UAAUh1P,SAAS2oP,MAAS77Q,KAAK6sb,cAAgBp3V,GAAQptF,EAAQ,IAAMuk3B,MAI9E5s3B,KAAKqv4B,qBAAqB55yB,GAAQptF,EAAQ,IAAM243B,KAAW3g4B,EAEnE,EACAsi4B,EAAShy3B,UAAU0+3B,qBAAuB,SAAUlF,EAAQ9p4B,GACxD,IAAI4gR,EAAOupE,GAAO,OAAS3uE,IAAMsunB,GACjC,GAAKlpnB,IAAQA,EAAKiH,UAAUh1P,SAASku2B,KAArC,CAII,IAAIl5mB,EAAYjH,EAAKiH,UACjBA,EAAUh1P,SAAS6t2B,KACnB/g4B,KAAK0r4B,aAAavB,EAAQlpnB,EAAM5gR,GAE3B6nR,EAAUh1P,SAAS4t2B,MACxB9g4B,KAAKss4B,aAAanC,EAAQlpnB,EAAM5gR,EAExC,CACJ,EACAsi4B,EAAShy3B,UAAU+63B,aAAe,SAAUvB,EAAQlpnB,EAAM5gR,EAAGkt4B,EAAazm4B,GACtE,IAAIxH,EAAQU,KACRihR,EAAKiH,UAAUh1P,SAASku2B,OAIxB54mB,GAAS,CAACvH,GAAOmgnB,KAEjBph4B,KAAKijnB,WAAajjnB,KAAK4i4B,aACvB5i4B,KAAKgz3B,WAAahz3B,KAAKit4B,eAAe9C,EAAQ9p4B,GAC9CL,KAAKqyZ,aAAeryZ,KAAKgz3B,WAAW3ge,aACpCryZ,KAAKsgS,QAAQ,gBAAiBtgS,KAAKgz3B,YAAY,SAAUrmb,GACjDA,EAAa7rX,OACbmnM,GAAY,CAAChH,GAAOmgnB,KAGpB9h4B,EAAMgw4B,iBAAiBnF,EAAQlpnB,EAAMssnB,EAAazm4B,EAE1D,KAGA9G,KAAKsv4B,iBAAiBnF,EAAQlpnB,EAAMssnB,EAAazm4B,GAEzD,EACA673B,EAAShy3B,UAAU2+3B,iBAAmB,SAAUnF,EAAQlpnB,EAAMssnB,EAAazm4B,GACvE,IAAImjK,EAAKugL,GAAO,IAAM02iB,IAAYiJ,GAClC,GAAIlguB,GAAsB,OAAhBA,EAAG94I,SACTnxB,KAAKys4B,WAAWtC,EAAQlpnB,OAEvB,CACDjhR,KAAKqj4B,eAAgB,EACrBrj4B,KAAKwm4B,iBAAiB2D,EAAQoD,EAAazm4B,GAE3C,IADA,IAAIyo4B,EAAS5kjB,GAAU,IAAMq2iB,IAAUmJ,GAC9Bh+3B,EAAI,EAAGA,EAAIoj4B,EAAOns4B,OAAQ+I,IAAK,CACpC,IAAIgqB,EAAKn2B,KAAKwv4B,MAAMD,EAAOpj4B,IAC3B,IAAyC,IAArCnM,KAAKkj4B,eAAev43B,QAAQwrB,SAAsC9yB,IAAxBrD,KAAKkj4B,eAA8B,CAC7E,IAAIuM,EAASjljB,GAAO,IAAMu2iB,IAAYv2iB,GAAO,IAAM62iB,IAAUkO,EAAOpj4B,KAC/DuhgB,GAAM+hY,IACPzv4B,KAAK0r4B,aAAa6D,EAAOpj4B,GAAIsj4B,EAAQ,MAEzCzv4B,KAAKkj4B,eAAe1t2B,OAAOx1B,KAAKkj4B,eAAev43B,QAAQwrB,GAAK,EAChE,CACJ,CACJ,CACJ,EACAws2B,EAAShy3B,UAAU4ub,iBAAmB,SAAUl/b,GAC5C,IAAIf,EAAQU,KACRqI,EAAShI,EAAEgI,OACX2m4B,EAAchv4B,KAAKiv4B,iBACvB,GAAI5m4B,GAAUA,EAAO6/Q,UAAUh1P,SAASkjP,KAAxC,CACI,IAAIs5nB,EAASrn4B,EACI,UAAbhI,EAAE60E,OACFw6zB,EAAOxm4B,OAEW,WAAb7I,EAAE60E,SACPw6zB,EAAO9t4B,MAAQ5B,KAAK2v4B,QACpBD,EAAOxm4B,OAGf,KAVA,CAWA7I,EAAEgO,iBACF,IAAIu2U,EAAY,CACZ9jQ,QAAQ,EACR/pD,MAAO12B,EACP6P,KAAM8+3B,GAEVhv4B,KAAKsgS,QAAQ,WAAYskD,GAAW,SAAU+nH,GAC1C,IAAKA,EAAa7rX,OACd,OAAQzgF,EAAE60E,QACN,IAAK,QACG51E,EAAMutb,aACNvtb,EAAMivlB,UAAUlulB,GAGhBf,EAAMit4B,aAAayC,EAAa3u4B,GAEpC,MACJ,IAAK,YACDf,EAAMsw4B,UAAStw4B,EAAM+4V,UAA0Bh4V,GAC/C,MACJ,IAAK,WACDf,EAAMsw4B,WAAStw4B,EAAM+4V,UAA0Bh4V,GAC/C,MACJ,IAAK,YACDf,EAAMuw4B,gBAAe,EAAMxv4B,GAC3B,MACJ,IAAK,WACL,IAAK,WACL,IAAK,SACDf,EAAMww4B,cAAa,GACnB,MACJ,IAAK,UACDxw4B,EAAMuw4B,gBAAe,EAAOxv4B,GAC5B,MACJ,IAAK,SACL,IAAK,SACL,IAAK,OACDf,EAAMww4B,cAAa,GACnB,MACJ,IAAK,OACL,IAAK,YACL,IAAK,WACL,IAAK,SACDxw4B,EAAMyw4B,kBAAiB,GACvB,MACJ,IAAK,MACL,IAAK,WACL,IAAK,UACL,IAAK,QACDzw4B,EAAMyw4B,kBAAiB,GACvB,MACJ,IAAK,QACL,IAAK,YACL,IAAK,aACL,IAAK,UACL,IAAK,aACL,IAAK,YACDzw4B,EAAMit4B,aAAayC,EAAa3u4B,GAChC,MACJ,IAAK,KACGf,EAAM8soB,eAAiB4iQ,EAAY9mnB,UAAUh1P,SAAS,cACtD5zB,EAAM0w4B,cAAchB,EAAa3u4B,GAErC,MACJ,IAAK,QACD,GAAIf,EAAMkq0B,oBAAqB,CAC3B,IAAIk/D,EAAS/9iB,GAAU,IAAMq2iB,IAAW,SAAW5unB,IAAS,IAAK9yQ,EAAM6V,SACvE7V,EAAM2s4B,iBAAiBvD,EAC3B,EAIhB,GAzEA,CA0EJ,EACA/F,EAAShy3B,UAAUs/3B,gBAAkB,SAAUC,GAC3C,IAAIvivB,EAAY3tJ,KAAKiv4B,iBAAiBr12B,cAAc,IAAMyn2B,KACtDnq1B,EAAMy2G,EAAU8mI,wBAChBtsP,EAASnoC,KAAKyyR,gBAAgBzyR,KAAKmV,SACvC,IAAKu4f,GAAMvle,GAAS,CAChB,IAAIgo2B,EAAYho2B,EAAOssP,wBACnBv9O,EAAIy9O,OAASw7mB,EAAUx7mB,OACvBxsP,EAAOgmH,WAAaj3G,EAAIy9O,OAASw7mB,EAAUx7mB,OAEtCz9O,EAAIg3G,IAAMiivB,EAAUjivB,MACzB/lH,EAAOgmH,WAAagivB,EAAUjivB,IAAMh3G,EAAIg3G,IAEhD,CACgBluJ,KAAKow4B,oBAAoBzivB,IAErCA,EAAU8zM,eAAeyuiB,EAEjC,EACAvN,EAAShy3B,UAAUy/3B,oBAAsB,SAAU7P,GAC/C,IAAIrp1B,EAAMqp1B,EAAQ9rmB,wBAClB,OAAQv9O,EAAIg3G,KAAO,GAAKh3G,EAAIysF,MAAQ,GAAKzsF,EAAIy9O,SAAW3jQ,OAAOi0O,aAAe/zO,SAASuE,gBAAgByvO,eACnGhuN,EAAI0sF,QAAU5yG,OAAO8zO,YAAc5zO,SAASuE,gBAAgBsvO,YACpE,EACA49nB,EAAShy3B,UAAU8hR,gBAAkB,SAAUviR,GAC3C,OAAIw9f,GAAMx9f,GACC,KAEHA,EAAKguS,aAAehuS,EAAKg1P,aAAgBh1P,EAAOlQ,KAAKyyR,gBAAgBviR,EAAK2lR,cACtF,EACA8smB,EAAShy3B,UAAUk/3B,eAAiB,SAAUQ,EAAWhw4B,GACrD,GAAIL,KAAKwp0B,oBAAqB,CAC1B,IAAIwlE,EAAchv4B,KAAKiv4B,iBACnBtj2B,EAAW0k2B,EAAYrw4B,KAAKsw4B,YAAYtB,GAAehv4B,KAAKuw4B,YAAYvB,GAC5Ehv4B,KAAKq9b,cACLr9b,KAAKos4B,gBAAgBzg2B,GACrB3rC,KAAKus4B,aAAa5g2B,EAAUtrC,GAAG,GAC/BL,KAAKiw4B,iBAAiBI,EAC1B,MAEIrw4B,KAAK8v4B,aAAaO,EAE1B,EACA1N,EAAShy3B,UAAU49kB,UAAY,SAAUlulB,GACrC,IAAI2u4B,EAAchv4B,KAAKiv4B,iBACnBr4Q,EAAYpsS,GAAO,IAAMoiiB,IAAcoiB,GACvChjd,EAAYxhG,GAAO,KAAOmiiB,IAAe/1P,GAAW1uW,UAAUh1P,SAASg/qB,KACtE88L,EAAY9mnB,UAAUh1P,SAAS,cACwC,GAApE872B,EAAYl8iB,uBAAuB,uBAAuB1vV,QAC1DpD,KAAK2t3B,kBAAkB/2P,EAAW5qM,EAAWgjd,EAAa3u4B,EAGtE,EACAsi4B,EAAShy3B,UAAUg92B,kBAAoB,SAAU/2P,EAAWm1E,EAAShwiB,EAAI17J,GACrE,IAAIf,EAAQU,KACRmq4B,EAAS10yB,GAAQmhiB,EAAW,IAAMoqQ,KACtChh4B,KAAK0j4B,iBAAmB,GACxB,IAAImH,EAAa9+L,EAAmB,QAAT,OACtBr+L,GAAMm9X,IACPj0Q,EAAU5hmB,aAAa,eAAgB612B,GAE3C,IAAIjmjB,EAAY5kV,KAAK4q4B,cAAcT,EAAQp+L,EAAU,UAAY,QAAS1rsB,GAC1EL,KAAKsgS,QAAQ,eAAgBskD,GAAW,SAAU+nH,GACzCA,EAAa7rX,QACdxhF,EAAMkx4B,mBAAmB55Q,EAAWm1E,EAAShwiB,EAAI4wS,EAActsc,EAEvE,GACJ,EACAsi4B,EAAShy3B,UAAU6/3B,mBAAqB,SAAU55Q,EAAWm1E,EAAShwiB,EAAI6oL,EAAWvkV,GACjF,IAAkE,IAA9DL,KAAK8i4B,eAAen43B,QAAQoxJ,EAAGzpI,aAAa,eAC5CtyB,KAAK8i4B,eAAe123B,KAAK2vJ,EAAGzpI,aAAa,aACrCtyB,KAAK4m4B,WAAW,CAChB,IAAIz/0B,EAAQnnD,KAAKqjC,cAAcrjC,KAAK6l4B,SAAU9puB,EAAGzpI,aAAa,aACnD,OAAV60B,EAAkBnnD,KAAKyw4B,aAAatp1B,EAAOnnD,KAAK8i4B,eAAgB,KAAM,MAAM,GAAS370B,EAAQ,IAClG,CAGJ,GADAnnD,KAAK2ysB,YAAY/7E,EAAWm1E,EAAU,UAAY,QAAS1rsB,GAAG,GAC1DL,KAAK4m4B,UAAW,CAChB5m4B,KAAKkp4B,sBAAsBntuB,GAC3B/7J,KAAKip4B,uBAAuBxzyB,GAAQA,GAAQsmE,EAAI,IAAMmluB,KAAa,IAAMF,MACzE,IAAI6I,OAAU,EACW,UAArBjljB,EAAU1vQ,OACV20zB,GAAU,EAEgB,YAArBjljB,EAAU1vQ,SACf20zB,GAAU,GAEd7p4B,KAAK+q4B,kBAAkBhvuB,EAAI8tuB,EAC/B,CACA7p4B,KAAKws4B,iBAAiB51Q,EAAWm1E,EAAS1rsB,EAC9C,EAIAsi4B,EAAShy3B,UAAUo63B,kBAAoB,SAAUhvuB,EAAI8tuB,GACjD,IAAIP,EAAe9+iB,GAAO,IAAM02iB,IAAYnluB,GACxC8/a,EAAc9/a,EAAGzpI,aAAa,YAC9Bi3P,EAASvpR,KAAKmzN,OAClB,GAAsB,IAAlBnzN,KAAK0lV,UAAkB1lV,KAAK4m4B,UAE5B,IADA,IAAI92a,EAAa,IAAIzsC,GAAYrjb,KAAK6l4B,UAAUpxd,cAAa,IAAIjB,IAAQ3qX,MAAM0gO,EAAO84V,SAAU,QAASxmC,GAAa,IAC7G1vkB,EAAI,EAAGA,EAAI2jd,EAAW1sd,OAAQ+I,IAAK,CACxC,IAAI263B,EAAWh3a,EAAW3jd,GAAGnM,KAAKmzN,OAAOh9L,IAAM25b,EAAW3jd,GAAGnM,KAAKmzN,OAAOh9L,IAAIrf,WAAa,KACtFi1rB,EAAUj8O,EAAW3jd,GAAGnM,KAAKmzN,OAAO64N,WAAa8jC,EAAW3jd,GAAGnM,KAAKmzN,OAAO64N,WAAWl1a,WAAa,KACvG,IAAgD,IAA5C9W,KAAK8k4B,aAAan63B,QAAQkxkB,KAAgE,IAAzC77kB,KAAK8k4B,aAAan63B,QAAQm83B,GAAkB,CAC7F9m4B,KAAK8k4B,aAAa143B,KAAK063B,GACvB,IAAIQ,EAAatn4B,KAAKqjC,cAAcrjC,KAAK6l4B,SAAUiB,GACnD9m4B,KAAK0w4B,cAAcpJ,EAAYuC,IACiB,IAA5C7p4B,KAAK2j4B,gBAAgBh53B,QAAQm83B,IAC7B9m4B,KAAK2j4B,gBAAgBnu2B,OAAOx1B,KAAK2j4B,gBAAgBh53B,QAAQm83B,GAAW,EAE5E,MACK,IAAgD,IAA5C9m4B,KAAK8k4B,aAAan63B,QAAQkxkB,IAAwC,OAAjBytT,IACb,IAAzCtp4B,KAAK8k4B,aAAan63B,QAAQm83B,IAK1B,GAJA9m4B,KAAK8k4B,aAAatv2B,OAAOx1B,KAAK8k4B,aAAan63B,QAAQm83B,GAAW,GAC9C,SAAZ/6L,GACA/rsB,KAAKkq4B,YAAYlq4B,KAAK6l4B,SAAU7l4B,KAAKmzN,OAAQ2zqB,EAAU,YAAa,OAExB,IAA5C9m4B,KAAK8k4B,aAAan63B,QAAQkxkB,IAAwC,OAAjBytT,IACL,IAA5Ctp4B,KAAK2j4B,gBAAgBh53B,QAAQm83B,GAAkB,CAC/C,IAAI391B,EAAanpC,KAAKqjC,cAAcrjC,KAAK6l4B,SAAUiB,GACnD9m4B,KAAK0w4B,cAAcvn2B,EAAY0g2B,IACiB,IAA5C7p4B,KAAK2j4B,gBAAgBh53B,QAAQm83B,IAC7B9m4B,KAAK2j4B,gBAAgBnu2B,OAAOx1B,KAAK2j4B,gBAAgBh53B,QAAQm83B,GAAW,EAE5E,MAEC,CACGQ,EAAatn4B,KAAKqjC,cAAcrjC,KAAK6l4B,SAAUiB,GACnD9m4B,KAAK0w4B,cAAcpJ,EAAYuC,EACnC,CACJ,MAEC,GAAsB,IAAlB7p4B,KAAK0lV,UAAmB1lV,KAAK4m4B,UAqBjC,EACGU,EAAatn4B,KAAKqjC,cAAcrjC,KAAK6l4B,SAAUhqT,KAE/C77kB,KAAK2w4B,iBAAiBrJ,EAAYzrT,EAAaytT,EAAcO,EAErE,MAzBI,GAAKA,EAYD,IAAS193B,EAAI,EAAGA,EAAInM,KAAK6l4B,SAASzi4B,OAAQ+I,IAAK,CAC3C,IAAIg73B,EAAYnn4B,KAAK6l4B,SAAS153B,GAAGnM,KAAKmzN,OAAOh9L,IAAMn2B,KAAK6l4B,SAAS153B,GAAGnM,KAAKmzN,OAAOh9L,IAAIrf,WAAa,MACnD,IAA1C9W,KAAK8k4B,aAAan63B,QAAQw83B,IAC1Bnn4B,KAAK8k4B,aAAa143B,KAAK+63B,EAE/B,KAjBU,CAEV,IADA,IAAIC,EAAc,IAAI/jd,GAAYrjb,KAAK6l4B,UAAUpxd,cAAa,IAAIjB,IAAQ3qX,MAAM0gO,EAAOyiK,UAAW,SAAS,GAAM,IACxG7/a,EAAI,EAAGA,EAAIi73B,EAAYhk4B,OAAQ+I,IAAK,CACzC,IAAIgqB,EAAKix2B,EAAYj73B,GAAGnM,KAAKmzN,OAAOh9L,IAAMix2B,EAAYj73B,GAAGnM,KAAKmzN,OAAOh9L,IAAIrf,WAAa,MAC/C,IAAnC9W,KAAK8k4B,aAAan63B,QAAQwrB,IAC1Bn2B,KAAK8k4B,aAAatv2B,OAAOx1B,KAAK8k4B,aAAan63B,QAAQwrB,GAAK,GAE5Dn2B,KAAKkq4B,YAAYlq4B,KAAK6l4B,SAAU7l4B,KAAKmzN,OAAQh9L,EAAI,YAAa,KAClE,CACAn2B,KAAK8k4B,aAAe,EACxB,CAgBR,EACAnC,EAAShy3B,UAAU+/3B,cAAgB,SAAUpJ,EAAYuC,GACrD,IAAK,IAAI193B,EAAI,EAAGA,EAAIm73B,EAAWlk4B,OAAQ+I,IAAK,CACxC,IAAI40mB,EAAUumR,EAAWn73B,GAAGnM,KAAKmzN,OAAOh9L,IAAMmx2B,EAAWn73B,GAAGnM,KAAKmzN,OAAOh9L,IAAIrf,WAAa,KACrF853B,EAAetJ,EAAWn73B,GAAGnM,KAAKmzN,OAAO64N,WAAas7c,EAAWn73B,GAAGnM,KAAKmzN,OAAO64N,WAAWl1a,WAC3F,MACwC,IAAxC9W,KAAK8k4B,aAAan63B,QAAQo2mB,IAAoB8oR,GAC9C7p4B,KAAK8k4B,aAAatv2B,OAAOx1B,KAAK8k4B,aAAan63B,QAAQo2mB,GAAU,IAErB,IAAxC/gnB,KAAK8k4B,aAAan63B,QAAQo2mB,IAAmB8oR,GAC7C7p4B,KAAK8k4B,aAAa143B,KAAK20mB,GAEN,SAAjB6vR,GAA4B/G,GAC5B7p4B,KAAKkq4B,YAAYlq4B,KAAK6l4B,SAAU7l4B,KAAKmzN,OAAQ4tZ,EAAS,YAAa,MAEvE,IAAI+mR,EAAgB9n4B,KAAKqjC,cAAcrjC,KAAK6l4B,SAAU9kR,GAClD+mR,EAAc1k4B,OAAS,GACvBpD,KAAK0w4B,cAAc5I,EAAe+B,EAE1C,CACJ,EAIAlH,EAAShy3B,UAAUgg4B,iBAAmB,SAAUrJ,EAAYn/1B,EAAQmh2B,EAAcO,GAC9E,IAAK,IAAI193B,EAAI,EAAGA,EAAIm73B,EAAWlk4B,OAAQ+I,IAAK,CACxC,IAAI073B,EAAeP,EAAWn73B,GAAGnM,KAAKmzN,OAAOh9L,IAAMmx2B,EAAWn73B,GAAGnM,KAAKmzN,OAAOh9L,IAAIrf,WAAa,GAC1Fi1rB,EAAUu7L,EAAWn73B,GAAGnM,KAAKmzN,OAAO64N,WAAas7c,EAAWn73B,GAAGnM,KAAKmzN,OAAO64N,WAAWl1a,WAAa,KACnG9W,KAAK4m4B,WACsC,IAAvC5m4B,KAAK8k4B,aAAan63B,QAAQw9B,KAA+D,IAA7CnoC,KAAK8k4B,aAAan63B,QAAQk93B,IACtE7n4B,KAAK8k4B,aAAa143B,KAAKy73B,IAC6B,IAAhD7n4B,KAAK2j4B,gBAAgBh53B,QAAQk93B,IAC7B7n4B,KAAK2j4B,gBAAgBnu2B,OAAOx1B,KAAK2j4B,gBAAgBh53B,QAAQk93B,GAAe,KAGhC,IAAvC7n4B,KAAK8k4B,aAAan63B,QAAQw9B,KAA+D,IAA7CnoC,KAAK8k4B,aAAan63B,QAAQk93B,IAAyBgC,IACpG7p4B,KAAK8k4B,aAAatv2B,OAAOx1B,KAAK8k4B,aAAan63B,QAAQk93B,GAAe,GAClD,SAAZ97L,GACA/rsB,KAAKkq4B,YAAYlq4B,KAAK6l4B,SAAU7l4B,KAAKmzN,OAAQ00qB,EAAc,YAAa,OAI1E7n4B,KAAK4m4B,YACNiD,GAQgD,IAA7C7p4B,KAAK8k4B,aAAan63B,QAAQk93B,IAC1B7n4B,KAAK8k4B,aAAa143B,KAAKy73B,KARsB,IAA7C7n4B,KAAK8k4B,aAAan63B,QAAQk93B,IAC1B7n4B,KAAK8k4B,aAAatv2B,OAAOx1B,KAAK8k4B,aAAan63B,QAAQk93B,GAAe,GAEtE7n4B,KAAKkq4B,YAAYlq4B,KAAK6l4B,SAAU7l4B,KAAKmzN,OAAQ00qB,EAAc,YAAa,MACxE7n4B,KAAK8k4B,aAAe,KAQ5B,IAAIhwhB,EAAW90W,KAAKqjC,cAAc,CAACik2B,EAAWn73B,IAAK073B,GAC/C/yhB,GACA90W,KAAK2w4B,iBAAiB77hB,EAAU3sU,EAAQmh2B,EAAcO,EAE9D,CACJ,EAEAlH,EAAShy3B,UAAU8/3B,aAAe,SAAUtp1B,EAAO0p1B,EAAU/k1B,EAASowqB,EAAY40K,GAC9E,GAAI3p1B,EACA,IAAK,IAAI45P,EAAW,EAAGA,EAAW55P,EAAM/jD,OAAQ29S,IAAY,CACxD,IAAIggU,EAAUlmmB,GAAS7a,KAAKmzN,OAAOh9L,GAAIgxB,EAAM45P,IACzClpB,EAAQ73R,KAAKmV,QAAQykB,cAAc,cAAgBmnlB,EAAU,OAE3C,IAAlB+vR,IAAgF,IAArD9w4B,KAAK8i4B,eAAen43B,QAAQo2mB,EAAQjqmB,cAC/C,OAAV+gR,IAAmB61O,GAAMvmd,EAAM45P,GAAU/gT,KAAKmzN,OAAO64N,cAAyD,IAA1C6kd,EAASlm4B,QAAQo2mB,EAAQjqmB,aAC7E,IAAfoltB,GAAgC,IAAZpwqB,MACqB,IAA3C3E,EAAM45P,GAAU/gT,KAAKmzN,OAAO64N,YAAoC,IAAZlgY,EAAiB+k1B,EAASzk4B,KAAK20mB,EAAQjqmB,YACtFoltB,EAAa,KACnBA,GAAyD,IAA3C/0qB,EAAM45P,GAAU/gT,KAAKmzN,OAAO64N,YAAoC,IAAZlgY,EAAiB,EAAI,OAIjD,IAA1C+k1B,EAASlm4B,QAAQo2mB,EAAQjqmB,aAAsB42f,GAAM5hd,IACrD+k1B,EAASzk4B,KAAK20mB,EAAQjqmB,YAE1B,IAAIi63B,EAAcl23B,GAAS7a,KAAKmzN,OAAOhsK,MAAMrwC,WAAYqwC,EAAM45P,IAE/D,IAA2D,IAAvDlmS,GAAS7a,KAAKmzN,OAAO9sK,YAAac,EAAM45P,KAAuBgwlB,EAAa,CAC5E,IAAI562B,EAAKtb,GAAS7a,KAAKmzN,OAAOh9L,GAAIgxB,EAAM45P,IACpCiwlB,OAAY,GAEZA,EADkB,IAAlBhx4B,KAAK0lV,SACO1lV,KAAKqjC,cAAcrjC,KAAK6l4B,SAAU1v2B,EAAGrf,YAGrCi63B,KAGXrjY,GAAMojY,GAAkB9w4B,KAAKyw4B,aAAaO,EAAWH,EAAU/k1B,EAASowqB,GACrEl8tB,KAAKyw4B,aAAaO,EAAWH,EAAU/k1B,EAASowqB,EAAY40K,GAChE50K,EAAa,KAErB,CACAA,EAAa,IACjB,CAER,EACAymK,EAAShy3B,UAAUi/3B,SAAW,SAAUqB,EAAY5w4B,GAChD,IAAI2u4B,EAAchv4B,KAAKiv4B,iBACnBhunB,EAAOupE,GAAO,OAAS3uE,IAAMmznB,GACjC,GAAIiC,EAAY,CACZ,IAAKhwnB,EACD,OAEKA,EAAKiH,UAAUh1P,SAAS6t2B,KAC7B/g4B,KAAK0r4B,aAAasD,EAAa/tnB,EAAM5gR,GAGrCL,KAAKkx4B,cAAclC,GAAa,EAExC,MAEI,GAAI/tnB,GAAQA,EAAKiH,UAAUh1P,SAAS4t2B,KAChC9g4B,KAAKss4B,aAAa0C,EAAa/tnB,EAAM5gR,OAEpC,CACD,IAAImurB,EAAW/4lB,GAAQA,GAAQu5yB,EAAa,IAAM9N,KAAa,IAAMF,KACrE,IAAKxyM,EACD,OAGKA,EAAStma,UAAUh1P,SAAS,eAC7BlzB,KAAKwtmB,SAASwhS,EAAaxgN,GAC3BxurB,KAAKiw4B,iBAAgB,GAGjC,CAER,EACAtN,EAAShy3B,UAAUm/3B,aAAe,SAAUO,GACxC,IAAIrB,EAAchv4B,KAAKiv4B,iBACvBjv4B,KAAKkx4B,cAAclC,EAAaqB,EACpC,EACA1N,EAAShy3B,UAAUo/3B,iBAAmB,SAAUtuuB,GAC5C,IAAIutuB,EAAchv4B,KAAKiv4B,iBACnBp/kB,EAAWpuJ,EAAczhK,KAAKirR,cAAgBjrR,KAAKmx4B,aAClDthlB,EAAS3nC,UAAUh1P,SAAS,eAC7BlzB,KAAKwtmB,SAASwhS,EAAan/kB,GAC3B7vT,KAAKiw4B,gBAAgBxuuB,GAE7B,EACAkhuB,EAAShy3B,UAAUs+3B,eAAiB,WAChC,IAAI53c,EACA+5c,EAAQ5mjB,GAAO,IAAMw2iB,IAAW,iBAAkBhh4B,KAAKmV,SAI3D,OAHIu4f,GAAM0jY,KACN/5c,EAAe7sG,GAAO,IAAMw2iB,IAAUhh4B,KAAKmV,UAExCu4f,GAAM0jY,GAAU1jY,GAAMr2E,GAAgBr3b,KAAKmV,QAAQm1B,kBAAoB+sZ,EAAgB+5c,CAClG,EACAzO,EAAShy3B,UAAUug4B,cAAgB,SAAUn1uB,EAAIs0uB,GAC7C,IAAI1k2B,EAAW0k2B,EAAYrw4B,KAAKsw4B,YAAYv0uB,GAAM/7J,KAAKuw4B,YAAYx0uB,GAGnE,GAFA/7J,KAAKwtmB,SAASzxc,EAAIpwH,GAClB3rC,KAAKiw4B,iBAAiBI,GAClB1k2B,EAASu8O,UAAUh1P,SAAS,aAAc,CAC1C,IAAIouH,EAAY31G,EAAS21G,UACO,MAA5B31G,EAASsa,iBAA2Bta,EAASu8O,UAAUh1P,SAAS,aAChElzB,KAAKkx4B,cAAcvl2B,GAAU,GAEA,MAAxBA,EAAS/W,aAAuB+W,EAASu8O,UAAUh1P,SAAS,qBAGpC,MAAxByY,EAAS/W,aAAuB0sH,EAAU4mI,UAAUh1P,SAASmu2B,KAFlErh4B,KAAKkx4B,cAAcvl2B,GAAU,GAM7B3rC,KAAKkx4B,cAAcvl2B,EAAU0k2B,EAErC,CACJ,EACA1N,EAAShy3B,UAAU2/3B,YAAc,SAAUv0uB,GACvC,IACIpwH,EADAlf,EAAQzsB,KAAKqr4B,OAAO1g4B,QAAQoxJ,GAEhC,GAGI,GAFAtvI,IAEIihf,GADJ/he,EAAW3rC,KAAKqr4B,OAAO5+2B,IAEnB,OAAOsvI,SAELiuL,GAAUr+S,IACpB,OAAOA,CACX,EACAg31B,EAAShy3B,UAAU4/3B,YAAc,SAAUx0uB,GACvC,IACIs1uB,EADA5k3B,EAAQzsB,KAAKqr4B,OAAO1g4B,QAAQoxJ,GAEhC,GAGI,GAFAtvI,IAEIihf,GADJ2jY,EAAWrx4B,KAAKqr4B,OAAO5+2B,IAEnB,OAAOsvI,SAELiuL,GAAUqnjB,IACpB,OAAOA,CACX,EACA1O,EAAShy3B,UAAUs6Q,YAAc,WAC7B,IACI4kC,EADApjS,EAAQ,EAEZ,GACIojS,EAAW7vT,KAAKqr4B,OAAO5+2B,GACvBA,WACMu9T,GAAUn6B,IACpB,OAAOA,CACX,EACA8ykB,EAAShy3B,UAAUwg4B,WAAa,WAC5B,IACIpiY,EADAtif,EAAQzsB,KAAKqr4B,OAAOjo4B,OAAS,EAEjC,GACI2rgB,EAAU/ugB,KAAKqr4B,OAAO5+2B,GACtBA,WACMu9T,GAAU+kL,IACpB,OAAOA,CACX,EACA4zX,EAAShy3B,UAAU68lB,SAAW,SAAU5tC,EAASj0hB,GAC7Cs8O,GAAY,CAAC23S,GAAU50E,KACvB40E,EAAQ5qiB,aAAa,WAAY,MAC5B2W,EAASu8O,UAAUh1P,SAAS,cAAiByY,EAASu8O,UAAUh1P,SAASmv2B,OAC1E75mB,GAAS,CAAC78O,GAAWq/c,KACrBr/c,EAAS3W,aAAa,WAAY,KAClC2W,EAASvhC,QACTyuO,GAAazlN,IAAIuY,EAAU,OAAQ3rC,KAAKk3Z,SAAUl3Z,MAClDA,KAAKgr4B,aAAaprU,EAASj0hB,GAEnC,EACAg31B,EAAShy3B,UAAUq63B,aAAe,SAAUprU,EAASj0hB,GACjD3rC,KAAKmV,QAAQ4f,gBAAgB,yBACzB6qiB,GACAA,EAAQ7qiB,gBAAgB,MAE5B4W,EAAS3W,aAAa,KAAMh1B,KAAKmV,QAAQghB,GAAK,WAC9Cn2B,KAAKmV,QAAQ6f,aAAa,wBAAyBh1B,KAAKmV,QAAQghB,GAAK,UACzE,EACAws2B,EAAShy3B,UAAU+nZ,QAAU,WACzB,IAAK14Z,KAAKwj4B,gBAAiB,CACvB,IAAI9ilB,EAAiB1gT,KAAKiv4B,iBAC1BvulB,EAAe1rR,aAAa,WAAY,KACxCwzP,GAAS,CAACk4B,GAAiBsqM,KAC3BnyQ,GAAazlN,IAAIstR,EAAgB,OAAQ1gT,KAAKk3Z,SAAUl3Z,KAC5D,CACAA,KAAKwj4B,iBAAkB,CAC3B,EACAb,EAAShy3B,UAAUumZ,SAAW,SAAUngY,GACpC,IAAI2pR,EAAiB1gT,KAAKiv4B,iBACtBl42B,EAAM1uB,QAAUq4S,IAChBz4B,GAAY,CAACy4B,GAAiBsqM,KAC9BnyQ,GAAa1lN,OAAOutR,EAAgB,OAAQ1gT,KAAKk3Z,UAEzD,EACAyre,EAAShy3B,UAAU+ub,YAAc,SAAUr/b,GACvC,IAAIgI,EAAShI,EAAEgI,OACX6/Q,EAAY7/Q,EAAO6/Q,UACnBiwK,EAAY1iW,GAAQptF,EAAQ,IAAM243B,MACjC7oc,GAAajwK,EAAUh1P,SAASgu2B,MAAeh5mB,EAAUh1P,SAAS8t2B,KACnEhh4B,KAAKq9b,cAIDlF,IAAcA,EAAUjwK,UAAUh1P,SAAS,cAC3ClzB,KAAKggc,SAAS7H,EAG1B,EACAwqc,EAAShy3B,UAAUqvb,SAAW,SAAUjkS,GAC/BA,EAAGmsH,UAAUh1P,SAAS21Q,MAAW9sI,EAAGmsH,UAAUh1P,SAASmv2B,OACxDri4B,KAAKq9b,cACL70K,GAAS,CAACzsH,GAAK8sI,KAEvB,EAEA85lB,EAAShy3B,UAAUvL,aAAe,SAAU/E,GACxCL,KAAKq9b,aACT,EACAslc,EAAShy3B,UAAU0sb,YAAc,WAC7B,IAAIi0c,EAAc3mjB,GAAU,IAAM9hD,IAAO7oS,KAAKmV,SAC1Cm83B,GAAeA,EAAYlu4B,QAC3B6kR,GAAYqpnB,EAAazomB,IAEjC,EAEA85lB,EAAShy3B,UAAUy53B,YAAc,SAAUD,EAAQoH,GAC/C,IAAK7jY,GAAMy8X,IAAWA,EAAOjinB,UAAUh1P,SAAS8t2B,OAC3CtzX,GAAMj4a,GAAQ00yB,EAAQ,IAAMzznB,OAAajhL,GAAQ00yB,EAAQ,IAAMzznB,KAASwR,UAAUh1P,SAAS8uX,KAAO,CACnG,IAAI7rX,EAAKg02B,EAAO732B,aAAa,YACzB2N,EAAOjgC,KAAKisD,QAAQk+0B,EAAQoH,GAC5BC,EAAQ/7yB,GAAQ00yB,EAAO312B,WAAY,IAAMws2B,KACzCvjR,EAAM+zR,EAAQA,EAAMl/2B,aAAa,YAAc,KAC/C5jB,EAAWy73B,EAAOjinB,UAAUh1P,SAASk/O,KACrCm2nB,GAAa4B,EAAOjinB,UAAUh1P,SAASmv2B,KACvCrid,EAAqD,SAAzCmqd,EAAO732B,aAAa,iBAChC+zB,EAAuD,OAAzC8j1B,EAAO732B,aAAa,kBAA8G,OAA1Ek4T,GAAO,IAAMu2iB,IAAYoJ,IAAW3/iB,GAAO,IAAMs2iB,IAAaqJ,IACpIr+0B,EAAU,KACVyiY,EAAkB/jG,GAAO,IAAMoiiB,IAAcud,GAIjD,OAHInq4B,KAAK6sb,cAAgB0B,IACrBziY,EAAUyiY,EAAgBj8Z,aAAa,iBAEpC,CACH6D,GAAIA,EAAI8J,KAAMA,EAAMoilB,SAAU5E,EAAK/umB,SAAUA,EAAU653B,WAAYA,EAAYvod,SAAUA,EACzFgM,UAAWlgY,EAASzF,YAAaA,EAEzC,CACA,MAAO,CAAElwB,GAAI,GAAI8J,KAAM,GAAIoilB,SAAU,GAAI3zmB,UAAU,EAAOsxa,UAAU,EAAOgM,UAAW,GAAI3lY,aAAa,EAC3G,EACAs80B,EAAShy3B,UAAUs7C,QAAU,SAAUk+0B,EAAQoH,GAC3C,GAAIA,EAAQ,CACR,IAAIjJ,EAAWto4B,KAAKgu4B,cAAc7D,EAAO732B,aAAa,aAClDy/B,EAAQrhB,WAAWy51B,EAAO732B,aAAa,eAE3C,OAAOzX,GADU7a,KAAK04sB,UAAU14sB,KAAKmzN,OAAQphK,EAAO,GACzB9xB,KAAMqo2B,EACrC,CACA,OAAO99iB,GAAO,IAAMy2iB,IAAUkJ,GAAQvg2B,WAC1C,EACA+41B,EAAShy3B,UAAUs83B,eAAiB,SAAU9C,EAAQ9p4B,GAClD,IAAIio4B,EAAWto4B,KAAKoq4B,YAAYD,GAChC,MAAO,CAAErpzB,QAAQ,EAAOuxU,cAAcq7G,GAAMrtgB,GAAmB6P,KAAMi63B,EAAQ7B,SAAUA,EAAUvx2B,MAAO12B,EAC5G,EACAsi4B,EAAShy3B,UAAU033B,mBAAqB,SAAUn+1B,EAAM4hiB,EAASs8T,GAC7D,IAAIx7V,EAAU5siB,KAAKwl4B,eAAet71B,EAAMlqC,KAAM,eAAiBoo4B,EAAQpo4B,KAAKmV,QAAQghB,GAAK,eAAgBn2B,KAAKk4V,sBAAkB70V,EAAWyokB,EAAS9rkB,KAAKuiC,MACrJqqgB,GAEA55a,GADA45a,EAAUl8hB,MAAMC,UAAUC,MAAMjR,KAAKitiB,GACrBk/B,EAExB,EACA62T,EAAShy3B,UAAU64lB,gBAAkB,SAAUugS,GAC3C/p4B,KAAKu6V,cAAc,CAAC,eAAiBwviB,EAAMz32B,aAAa,aAC5D,EACAqw2B,EAAShy3B,UAAU8g4B,cAAgB,WAC/Bzx4B,KAAK0k4B,eAAe1k4B,KAAKmzN,QACrB8zH,GAAQh0D,MACRjzR,KAAKqwb,UAAYrwb,KAAKmV,QAAQykB,cAAc,uBAC5C55B,KAAKqwb,UAAUx6J,cAAc1gQ,YAAYn1B,KAAKqwb,YAG9Crwb,KAAKmV,QAAQ+zB,UAAY,GAExBwke,GAAM1tgB,KAAKwl4B,iBACZxl4B,KAAKu6V,gBAETv6V,KAAK6k4B,gBACL7k4B,KAAKisV,cAAc,CAAEwzO,cAAe,GAAIqlU,aAAc,GAAIC,cAAe,KAAM,GAC/E/k4B,KAAK8i4B,eAAiB,GACtB9i4B,KAAKijnB,UAAW,EAChBjjnB,KAAKgl4B,gBAAe,EACxB,EACArC,EAAShy3B,UAAUiuY,YAAc,SAAUC,EAAUtmO,GAC5Cm1V,GAAM7uH,IAA0B,KAAbA,GACpB52H,GAAY,CAACjoR,KAAKmV,SAAU0pY,EAASlsX,MAAM,MAE1C+6e,GAAMn1V,IAA0B,KAAbA,GACpBiwG,GAAS,CAACxoR,KAAKmV,SAAUojK,EAAS5lJ,MAAM,KAEhD,EACAgw2B,EAAShy3B,UAAU+g4B,eAAiB,SAAUrx4B,GAC1C,IAAIgI,EAAShI,EAAEgI,OACf,MAAKA,GAAUA,EAAO6/Q,UAAUh1P,SAAS8uX,MAAS35Y,EAAO6/Q,UAAUh1P,SAASgu2B,MACxE743B,EAAO6/Q,UAAUh1P,SAAS8t2B,MAAa343B,EAAO6/Q,UAAUh1P,SAAS2oP,MACjExzQ,EAAO6/Q,UAAUh1P,SAASkjP,MAAU/tQ,EAAO6/Q,UAAUh1P,SAAS6zc,MAFlE,CAMI,IAAIgja,EAAQt0yB,GAAQptF,EAAQ,IAAM243B,KAClChh4B,KAAKgw4B,cAAcjG,EAAO1p4B,EAC9B,CACJ,EACAsi4B,EAAShy3B,UAAUq/3B,cAAgB,SAAUjG,EAAO1p4B,GAChD,IAAIf,EAAQU,KACR2x4B,EAAYnnjB,GAAO,IAAM82iB,IAAWth4B,KAAKmV,SACzCw83B,GACAA,EAAUzo4B,OAEd,IAAI4ikB,EAAUthP,GAAO,IAAMy2iB,IAAU8I,GACrC/p4B,KAAK4x4B,cAAc7H,GACnB,IAAIp7c,EAAW3ub,KAAKc,cAAc,QAAS,CAAEC,UAAWug4B,IAAW73iB,MAAO,CAAE7nV,MAAO5B,KAAK2v4B,WACpF/qjB,EAAY5kV,KAAK6x4B,aAAa9H,EAAO,KAAMp7c,EAASxiZ,WACxDnsC,KAAKsgS,QAAQ,cAAeskD,GAAW,SAAU+nH,GAC7C,IAAKA,EAAa7rX,OAAQ,CACtB,IACIgxzB,EAAU,UADChmU,EAAQ37T,YAAc,GACD,KACpCqY,GAAS,CAACuhnB,GAAQxI,KACb7zX,GAAMpugB,EAAMkm4B,iBACblm4B,EAAMkqmB,gBAAgBugS,GAEtBzq4B,EAAMmxW,QACNr6U,YAAW,WACP92B,EAAMyy4B,cAAcntjB,EAAWknP,EAASgmU,EAC5C,GAAG,GAGHxy4B,EAAMyy4B,cAAcntjB,EAAWknP,EAASgmU,EAEhD,CACJ,GACJ,EACAnP,EAAShy3B,UAAUoh4B,cAAgB,SAAUntjB,EAAWknP,EAAS3lkB,GAC7D2lkB,EAAQ5iiB,UAAY07S,EAAUgoM,UAC9B,IAAI8iX,EAASlljB,GAAO,IAAM82iB,IAAWx1T,GACrC9rkB,KAAKqhZ,SAAW1pR,GAAMkpR,YAAY,CAC9B1rY,QAASu63B,EACTh92B,WAAY,CACR2lU,UAAWr4V,KAAKq4V,YAErBr4V,KAAKc,eACRd,KAAKqhZ,SAASv0Y,UAAUkoB,aAAa,QAAS7uB,GAC9Cup4B,EAAOtl4B,QACP,IAAI82Y,EAAWwuf,EACfxuf,EAASjlG,kBAAkB,EAAGilG,EAASt/Y,MAAMwB,QAC7CpD,KAAKgy4B,gBAAgBtC,EACzB,EACA/M,EAAShy3B,UAAUih4B,cAAgB,SAAU7H,GACzC,IAAI5z2B,EAAK4z2B,EAAMz32B,aAAa,YAC5BtyB,KAAKiy4B,SAAWjy4B,KAAKgu4B,cAAc732B,GACnC,IAAI47B,EAAQrhB,WAAWq51B,EAAMz32B,aAAa,eAC1CtyB,KAAKky4B,WAAaly4B,KAAK04sB,UAAU14sB,KAAKmzN,OAAQphK,EAAO,GACrD/xD,KAAK2v4B,QAAU903B,GAAS7a,KAAKky4B,WAAWjy2B,KAAMjgC,KAAKiy4B,SACvD,EACAtP,EAAShy3B,UAAUwh4B,cAAgB,SAAU9x4B,GACzC,GAAKmqV,GAAO,IAAM82iB,IAAWth4B,KAAKmV,SAAlC,CAGA,IAAI9M,EAAShI,EAAEgI,OACX+p4B,EAAU/p4B,EAAOzG,MACjByw4B,EAAS58yB,GAAQptF,EAAQ,IAAM443B,KAC/B8I,EAAQt0yB,GAAQptF,EAAQ,IAAM243B,KAClC12iB,GAAOtqV,KAAKqhZ,SAASv0Y,WACjB9M,KAAKmzN,OAAO2/M,sBAAsBuQ,KAAgBrjb,KAAKurrB,UACvDvrrB,KAAKsy4B,cAAc,SAAU,KAAMvI,EAAOqI,EAAS,KAAM,MAAM,GAG/Dpy4B,KAAKuy4B,cAAcxI,EAAOsI,EAAQD,GAAS,EAV/C,CAYJ,EACAzP,EAAShy3B,UAAU4h4B,cAAgB,SAAUxI,EAAOsI,EAAQD,EAASI,GACjE,IAAIlz4B,EAAQU,KACR4kV,EAAY5kV,KAAK6x4B,aAAa9H,EAAOqI,EAAS,MAClDpy4B,KAAKsgS,QAAQ,aAAcskD,GAAW,SAAU+nH,GAC5Cylc,EAAUzlc,EAAa7rX,OAAS6rX,EAAagjc,QAAUhjc,EAAaylc,QACpE9y4B,EAAMmz4B,WAAW1I,EAAOsI,EAAQD,EAASI,GACrC7lc,EAAagjc,UAAYyC,GACzB9y4B,EAAMq5Z,aAAa,aAAc,CAACr5Z,EAAMq4jB,QAAQoyU,IAExD,GACJ,EACApH,EAAShy3B,UAAU8h4B,WAAa,SAAU1I,EAAOsI,EAAQD,EAASI,GAC9D,IAAI13zB,EAAU4lE,GAAS1gJ,KAAKky4B,WAAWjy2B,KAAMmy2B,EAASpy4B,KAAKiy4B,UAC3D,GAAKvkY,GAAM1tgB,KAAKwl4B,gBAOZxl4B,KAAK+sb,oBAAsBsld,EAAOnm1B,UAAYkm1B,EAAUC,EAAOnp2B,UAAYkp2B,MAP9C,CAC7BC,EAAOnm1B,UAAY,GACnB,IAAIk80B,EAAS2B,EAAMz32B,aAAa,YAChCtyB,KAAKqo4B,mBAAmBvtzB,EAASu3zB,EAAQjK,GACzCpo4B,KAAKs6V,sBACT,CAIIk4iB,IACAvqnB,GAAY,CAAC8hnB,GAAQxI,KACrBwI,EAAM3/3B,QACNyuO,GAAazlN,IAAI222B,EAAO,OAAQ/p4B,KAAKk3Z,SAAUl3Z,MAC/CwoR,GAAS,CAACuhnB,GAAQ/+Y,MAElBhrf,KAAKu8mB,eACLv8mB,KAAKsr4B,cAAcvB,EAE3B,EACApH,EAAShy3B,UAAUq2R,WAAa,SAAU2iD,GACtC,OAAI+jL,GAAM/jL,GACC,KAEa,kBAARA,EACL3pV,KAAKmV,QAAQykB,cAAc,cAAgB+vT,EAAM,MAEpC,kBAARA,EACL3iD,GAAW2iD,GAGX,IAEf,EACAg5iB,EAAShy3B,UAAU6+3B,MAAQ,SAAU7ljB,GACjC,OAAI+jL,GAAM/jL,GACC,KAEa,kBAARA,EACLA,EAEa,kBAARA,EACJ3iD,GAAW2iD,GAAMr3T,aAAa,YAG/B,IAEf,EACAqw2B,EAAShy3B,UAAUkh4B,aAAe,SAAU9H,EAAOqI,EAAS1C,GAExD,MAAO,CAAE5uzB,QAAQ,EAAOsxzB,QAASA,EAASli4B,KAAM653B,EAAOzB,SAD5Cto4B,KAAKoq4B,YAAYL,GAC2C4F,QAAS3v4B,KAAK2v4B,QAAS/iX,UAAW8iX,EAC7G,EACA/M,EAAShy3B,UAAUq93B,cAAgB,SAAU732B,GACzC,IAAIgT,EACJ,GAAIuke,GAAMv3e,GACN,OAAOgT,EAEN,GAAsB,IAAlBnpC,KAAK0lV,SASV,OAAO1lV,KAAK0y4B,mBAAmB1y4B,KAAK6l4B,SAAU7l4B,KAAKmzN,OAAQh9L,GAR3D,IAAK,IAAIhqB,EAAI,EAAGmi4B,EAAStu4B,KAAK6l4B,SAASzi4B,OAAQ+I,EAAImi4B,EAAQni4B,IAAK,CAC5D,IAAIi83B,EAASvt3B,GAAS7a,KAAKmzN,OAAOh9L,GAAIn2B,KAAK6l4B,SAAS153B,IACpD,IAAKuhgB,GAAM1tgB,KAAK6l4B,SAAS153B,MAAQuhgB,GAAM06X,IAAWA,EAAOtx3B,aAAeqf,EACpE,OAAOn2B,KAAK6l4B,SAAS153B,EAE7B,CAKJ,OAAOg9B,CACX,EACAw51B,EAAShy3B,UAAU+h4B,mBAAqB,SAAU7h4B,EAAK04Q,EAAQpzP,GAC3D,IAAI+kU,EACJ,GAAIwyK,GAAM78f,GACN,OAAOqqV,EAEX,IAAK,IAAI/uV,EAAI,EAAGmi4B,EAASz93B,EAAIzN,OAAQ+I,EAAImi4B,EAAQni4B,IAAK,CAClD,IAAIi83B,EAASvt3B,GAAS0uQ,EAAOpzP,GAAItlB,EAAI1E,IACrC,GAAI0E,EAAI1E,IAAMi83B,GAAUA,EAAOtx3B,aAAeqf,EAC1C,OAAOtlB,EAAI1E,GAEV,GAA4B,kBAAjBo9Q,EAAOpiO,OAAuBumd,GAAM7yf,GAAS0uQ,EAAOpiO,MAAOt2C,EAAI1E,MAO1E,GAAInM,KAAKmzN,OAAO2/M,sBAAsBuQ,KAAgBqqF,GAAM7yf,GAAS,QAAShK,EAAI1E,KAAM,CAGzF,QAAgB9I,KADhB63V,EAAUl7V,KAAK0y4B,mBAAmB733B,GADtB,QACsChK,EAAI1E,IAAKnM,KAAKou4B,eAAe7knB,GAASpzP,IAEpF,KAER,MAbqF,CACjF,IAAI4w2B,EAAYls3B,GAAS0uQ,EAAOpiO,MAAOt2C,EAAI1E,IAE3C,QAAgB9I,KADhB63V,EAAUl7V,KAAK0y4B,mBAAmB3L,EAAW/m4B,KAAKou4B,eAAe7knB,GAASpzP,IAEtE,KAER,CAQJ,CACA,OAAO+kU,CACX,EACAyniB,EAAShy3B,UAAUy03B,eAAiB,SAAUuN,GACtCA,IAAW3y4B,KAAK4O,SAChB5O,KAAKwj3B,iBAGLxj3B,KAAK4y4B,aAEb,EACAjQ,EAAShy3B,UAAU6y2B,eAAiB,WAChC,IACIqvB,EADAvz4B,EAAQU,KAERgmM,EAAQhmM,KACZA,KAAKq7gB,QAAU,IAAI9/K,GAAUv7V,KAAKmV,QAAS,CACvC+pV,gBAAgB,EAAMsC,kBAAkB,EACxCxC,SAAUh/V,KAAKg/V,SACfhB,WAAY,IAAMqjiB,IAClB5kiB,eAAe,EACfG,iBAAkB,IAClB2D,OAAQ,SAAUlgW,GACdf,EAAM0+V,WAAa39V,EAAEijW,OAAOj7V,OAC5B,IAAIyq4B,EAAWr9yB,GAAQn2F,EAAM0+V,WAAY,IAAMgkD,KAC3C+wf,EAAWt9yB,GAAQn2F,EAAM0+V,WAAY,IAAMqjiB,KAK/C,GAJA/h4B,EAAM0z4B,OAASv9yB,GAAQn2F,EAAM0+V,WAAY,IAAMgjiB,KAC3C1h4B,EAAMgm4B,gBAAkByN,GAAYzz4B,EAAM0+V,WAAW91E,UAAUh1P,SAAS8u2B,OACxE+Q,EAAWzz4B,EAAM0+V,WAAW3qE,qBAE3B/zR,EAAM0+V,aAAe39V,EAAE8U,QAAQw5Q,WAAWmknB,KAAcC,GACzDzz4B,EAAM0+V,WAAW91E,UAAUh1P,SAAS8uX,MAAS1iZ,EAAM0+V,WAAW91E,UAAUh1P,SAASgu2B,MACjF5h4B,EAAM0+V,WAAW91E,UAAUh1P,SAAS8t2B,MAAa1h4B,EAAM0z4B,OAAO9qnB,UAAUh1P,SAAS,aACjF,OAAO,EAEX,IAAI+/2B,EAAYF,EAAS5v2B,WAAU,GACnC,GAAIuqe,GAAMljL,GAAO,OAAS3uE,IAAMo3nB,IAAY,CACxC,IAAIhynB,EAAOj7E,EAAMllM,cAAc,MAAO,CAAEC,UAAW86Q,IAAO,IAAMklnB,MAChEkS,EAASt+2B,aAAassP,EAAMgynB,EAASnt4B,SAAS,GAClD,CACA,IAAI8pW,EAAWsjiB,eAAiBlxf,IAAO,IAAM1iZ,EAAMswW,SAAW,KAAOtwW,EAAM+4V,UAAY6pD,IAAM,KAC7F2wf,EAAa7ssB,EAAMllM,cAAc,MAAO,CAAEC,UAAW6uW,KAC1Cl+U,YAAYuh3B,GACvB,IAAIpwrB,EAAOvjN,EAAMmgkB,cAAcr8jB,OAC/B,GAAIy/M,EAAO,GAAKvjN,EAAMkq0B,qBAAuBlq0B,EAAM0z4B,OAAO9qnB,UAAUh1P,SAASk/O,KAAS,CAClF,IAAI+goB,EAAQntsB,EAAMllM,cAAc,OAAQ,CAAEC,UA72F9C,eA62FoEmoC,UAAW,GAAK25K,IAChFgwrB,EAAWnh3B,YAAYyh3B,EAC3B,CAIA,OAHAji3B,SAASzd,KAAKie,YAAYmh3B,GAC1B3h3B,SAASzd,KAAKtN,MAAM+yiB,OAAS,GAC7B55iB,EAAM+gW,SAAW/gW,EAAM8q4B,YAAY9q4B,EAAM0z4B,QAClCH,CACX,EACAl0iB,UAAW,SAAUt+V,GACjBmoR,GAAS,CAAClpR,EAAM6V,SAAUus3B,KAC1B,IACI3v0B,EADAs2Z,EAAW5yX,GAAQp1F,EAAEgI,OAAQ,gBAE7Bggd,IACAt2Z,EAAQxlC,SAAS87b,EAAS/1b,aAAa,cAAe,KAE1D,IAAIsyT,EAAYtlV,EAAM8z4B,aAAa/y4B,EAAE02B,MAAOz3B,EAAO,KAAMe,EAAEgI,OAAQ,KAAMwq4B,EAAY9g1B,GACjF6yR,EAAUyujB,YAAYnrnB,UAAUh1P,SAASqu2B,MACzCji4B,EAAM+7gB,QAAQz9K,WAAWv9V,EAAE02B,OAC3Bz3B,EAAMg04B,iBAAiBT,IAGvBvz4B,EAAMghS,QAAQ,gBAAiBskD,GAAW,SAAU+nH,GAC5CA,EAAa7rX,QACbxhF,EAAM+7gB,QAAQz9K,WAAWv9V,EAAE02B,OAC3Bz3B,EAAMg04B,iBAAiBT,IAGvBvz4B,EAAMsk4B,iBAAkB,CAEhC,GAER,EACA5jiB,KAAM,SAAU3/V,GACZf,EAAM+7gB,QAAQpvL,cAAc,CAAEoX,SAAU,CAAEn1M,KAAOw/W,GAAMrtgB,EAAE02B,MAAMuyH,gBAAkB29L,GAAQM,SAAY,IAAM,MAC3GjoV,EAAMg/3B,WAAWj+3B,EAAGwy4B,EACxB,EACAxwiB,SAAU,SAAUhiW,GAChB4nR,GAAY,CAAC3oR,EAAM6V,SAAUus3B,KAC7Bpi4B,EAAMi04B,mBACN,IAAI3qL,EAAavotB,EAAEgI,OAEfmr4B,EAAY/9yB,GAAQmznB,EAAY,IAAM64K,KAErC74K,GAAe4qL,IAChBlpjB,GAAOjqV,EAAEkgW,QACTrvU,SAASzd,KAAKtN,MAAM+yiB,OAAS,IAGjC,IACInnf,EADAs2Z,EAAW5yX,GAAQmznB,EAAY,gBAE/BvgQ,IACAt2Z,EAAQxlC,SAAS87b,EAAS/1b,aAAa,cAAe,KAE1D,IAAIsyT,EAAYtlV,EAAM8z4B,aAAa/y4B,EAAE02B,MAAOz3B,EAAOsptB,EAAYA,EAAY,KAAMvotB,EAAEkgW,OAAQxuS,GAC3F6yR,EAAU6ujB,qBAdgB,EAe1Bn04B,EAAMghS,QAAQ,eAAgBskD,GAAW,SAAU+nH,GAC/Crtc,EAAMo04B,WAAa/mc,EAAagnc,kBAChCr04B,EAAMuj4B,cAAgBl2b,EAAa8mc,oBAC/B9mc,EAAa7rX,SACTzgF,EAAEkgW,OAAO/rU,YACT81T,GAAOjqV,EAAEkgW,QAEbrvU,SAASzd,KAAKtN,MAAM+yiB,OAAS,IACX,GAEtB55iB,EAAMsk4B,iBAAkB,CAC5B,GACJ,IAEJ5j4B,KAAK4z4B,QAAU,IAAI/viB,GAAU7jW,KAAKmV,QAAS,CACvCiiB,IAAK,SAAU/2B,IACNqtgB,GAAMrtgB,KAAOA,EAAEgI,OAAO6/Q,UAAUh1P,SAASyu2B,MAAari4B,EAAMs04B,QAAQvziB,SAASx/V,SAAWvB,EAAMs04B,QAAQvziB,SAASx/V,QAAQ0/V,OAAOr4E,UAAUh1P,SAAS8uX,OAClJ9wX,SAASzd,KAAKtN,MAAM+yiB,OAAS,cAErC,EACAp0d,KAAM,SAAUzkF,GACZ6wB,SAASzd,KAAKtN,MAAM+yiB,OAAS,EACjC,EACAt+gB,KAAM,SAAUv6B,GACZf,EAAMu04B,WAAWxz4B,EACrB,GAER,EACAsi4B,EAAShy3B,UAAU2i4B,iBAAmB,SAAUT,GAC5CvojB,GAAOuojB,GACP5qnB,GAAY,CAACjoR,KAAKmV,SAAUus3B,KAC5B1h4B,KAAK4j4B,iBAAkB,CAC3B,EACAjB,EAAShy3B,UAAU2t3B,WAAa,SAAUj+3B,EAAGwy4B,GACzC,IAAIW,EAAW/9yB,GAAQp1F,EAAEgI,OAAQ,IAAMo53B,KACnCqS,EAAWr+yB,GAAQp1F,EAAEgI,OAAQ,IAAMg53B,KACnCpgnB,EAAOupE,GAAO,OAAS3uE,IAAMg3nB,GACjC5qnB,GAAY,CAAChH,GAAO,CAAC2gnB,IAAQC,IAAUC,IAASC,MAChD/h4B,KAAKuz4B,mBACLri3B,SAASzd,KAAKtN,MAAM+yiB,OAAS,GAC7B,IAAIhxR,EAAY7nR,EAAEgI,OAAO6/Q,UAIzB,GAHIloR,KAAKsl4B,gBAAkBwO,IAAapmY,GAAMxlP,IAAcA,EAAUh1P,SAAS8u2B,OAC3E8R,EAAWzz4B,EAAEgI,OAAOgrR,oBAEpBmgnB,EAAU,CACV,IAAIO,EAASt+yB,GAAQp1F,EAAEgI,OAAQ,IAAM243B,KACjCtT,EAAej4xB,GAAQp1F,EAAEgI,OAAQ,IAAMuk3B,KACvCp1T,EAAW/he,GAAQp1F,EAAEgI,OAAQ,IAAMy43B,KACnChsd,EAASr/U,GAAQp1F,EAAEgI,OAAQ,IAAM043B,KACrC,IAAKyS,EAAStrnB,UAAUh1P,SAAS8uX,MAAU8xf,IACrCC,EAAOplnB,WAAW3uR,KAAKgz4B,UAAYhz4B,KAAKg04B,aAAah04B,KAAKgz4B,OAAQe,GACpE,GAAI/z4B,KAAKoj4B,aAAe2Q,EAAQ,CAC5B,IAAIE,EAAiBzpjB,GAAOxqV,KAAKsl4B,cAAgB,IAAMtD,IAAU,IAAMX,IAAU0S,GACjF,GAAK1z4B,IAAOy0a,IAAW0iJ,GAAan3jB,EAAE02B,MAAMy7T,QAAU,IAAMk7hB,GAAoB54c,GAAUz0a,EAAE02B,MAAMy7T,QAAU,GAAOglO,GAAYn3jB,EAAE02B,MAAMw7T,QAAU,EAAM,CACnJ,IAAI9lU,EAAQzsB,KAAKsl4B,cAAiB,EAAM,EACxCtl4B,KAAKk04B,gBAAgBH,EAAQ9ynB,EAAMx0P,EACvC,MACK,GAAKpsB,IAAOy0a,IAAW0iJ,IAAck2T,GAAgBumB,GAAkB5z4B,EAAE02B,MAAMy7T,QAAUyhjB,EAAel/mB,aAAe,IAAS+/I,GAAUz0a,EAAE02B,MAAMy7T,QAAU,IAAQglO,GAAYn3jB,EAAE02B,MAAMw7T,QAAU,GAAM,CACrM9lU,EAAQzsB,KAAKsl4B,cAAiB,EAAM,EACxCtl4B,KAAKk04B,gBAAgBH,EAAQ9ynB,EAAMx0P,EACvC,MAEI+7P,GAAS,CAACvH,GAAO2gnB,IAEzB,MAEI,GAAKmS,GAAU1z4B,IAAOy0a,IAAW0iJ,GAAcn3jB,EAAE02B,MAAMy7T,QAAU,IAAOk7hB,GAAoB54c,GAAUz0a,EAAE02B,MAAMy7T,QAAU,GAAOglO,GAAYn3jB,EAAE02B,MAAMw7T,QAAU,EAAM,CAC3J9lU,EAAQzsB,KAAKsl4B,cAAiB,EAAM,EACxCtl4B,KAAKk04B,gBAAgBH,EAAQ9ynB,EAAMx0P,EACvC,MACK,GAAKsn3B,GAAU1z4B,IAAOy0a,IAAW0iJ,GAAcn3jB,EAAEgI,OAAO0sR,aAAe,GAAK10R,EAAE02B,MAAMy7T,QAAWnyV,EAAEgI,OAAO0sR,aAAe,KAAS24lB,GAAoB54c,GAAUz0a,EAAE02B,MAAMy7T,QAAU,IAAQglO,GAAYn3jB,EAAE02B,MAAMw7T,QAAU,GAAO,CAC1N9lU,EAAQzsB,KAAKsl4B,cAAiB,EAAM,EACxCtl4B,KAAKk04B,gBAAgBH,EAAQ9ynB,EAAMx0P,EACvC,MAEI+7P,GAAS,CAACvH,GAAO2gnB,SAIE,OAAtBvh4B,EAAEgI,OAAO8oB,UAAuB4i3B,EAAOplnB,WAAW3uR,KAAKgz4B,SAAYhz4B,KAAKg04B,aAAah04B,KAAKgz4B,OAAQe,GAIlG1z4B,EAAEgI,OAAO6/Q,UAAUh1P,SAASyu2B,KACjCn5mB,GAAS,CAACvH,GAAO4gnB,KAGjBr5mB,GAAS,CAACvH,GAAO6gnB,MAPjBt5mB,GAAS,CAACvH,GAAO4gnB,KACjB7h4B,KAAKm04B,iBAAiB9z4B,GAQ9B,MAEImoR,GAAS,CAACvH,GAAO8gnB,KACjB7w2B,SAASzd,KAAKtN,MAAM+yiB,OAAS,cAEjC,IACInnf,EADAs2Z,EAAW5yX,GAAQp1F,EAAEgI,OAAQ,gBAE7Bggd,IACAt2Z,EAAQxlC,SAAS87b,EAAS/1b,aAAa,cAAe,KAE1D,IAAIsyT,EAAY5kV,KAAKoz4B,aAAa/y4B,EAAE02B,MAAO/2B,KAAMK,EAAEgI,OAAQhI,EAAEgI,OAAQ,KAAMwq4B,EAAY9g1B,GACnF6yR,EAAUwvjB,eACVnsnB,GAAY,CAAChH,GAAO2jE,EAAUwvjB,eAElCp04B,KAAKsgS,QAAQ,eAAgBskD,GACzBA,EAAUwvjB,eACV5rnB,GAAS,CAACvH,GAAO2jE,EAAUwvjB,cAEnC,EACAzR,EAAShy3B,UAAUuj4B,gBAAkB,SAAUH,EAAQ9ynB,EAAMx0P,GACzD+7P,GAAS,CAACvH,GAAO4gnB,KACjB,IAAIwS,EAASr04B,KAAKc,cAAc,MAAO,CAAEC,UAAW4g4B,MACpDoS,EAAOp/2B,aAAa0/2B,EAAQN,EAAOju4B,SAAS2mB,GAChD,EAEAk22B,EAAShy3B,UAAUkj4B,WAAa,SAAUxz4B,GACtC,IAEIg7gB,EACAtpd,EAEAui1B,EALA9hjB,EAAUnyV,EAAE02B,MAAMy7T,QAClBo2X,EAAavotB,EAAEgI,OAGfuyB,GAAO,EAEP0t2B,EAAW,GACXiM,EAAU,GACdD,EAAej04B,EAAEggW,SAASkD,UAC1B,IAAK,IAAI+tF,EAAM,EAAGA,EAAMgjd,EAAatnjB,cAAc5pV,OAAQkub,IACvD,GAAIgjd,EAAatnjB,cAAcskG,aAAgBmyc,EAAY,CACvDpoX,EAAUi5X,EAAatnjB,cAAcskG,GACrC,KACJ,CAEJ,GAAI+pF,GAAWA,EAAQr9K,WAAY,CAC/B,IACIg1iB,EAAUv9yB,GADG4lb,EAAQr9K,WACS,IAAMgjiB,KACpC+S,EAAUt+yB,GAAQmznB,EAAY,IAAMo4K,KAOxC,GANAuT,EAAQno4B,KAAK4m4B,GACC,MAAVe,GAAkBnrL,EAAW1gc,UAAUh1P,SAAS8uX,OAChD+xf,EAASnrL,EAAWt+qB,mBAExBggT,GAAOjqV,EAAE+jW,gBACTlzU,SAASzd,KAAKtN,MAAM+yiB,OAAS,IACxB66V,GAAUA,EAAOplnB,WAAWqknB,IAAWhz4B,KAAKg04B,aAAahB,EAAQe,GAIlE,YAHI/z4B,KAAKmzN,OAAO2/M,sBAAsBuQ,MAAgB,IAClDrjb,KAAK6i4B,eAAgB,IAI7B,GAAIxnX,EAAQmuT,qBAAuBwpE,EAAO9qnB,UAAUh1P,SAASk/O,KAAS,CAClE,IAAIs2nB,EAAS/9iB,GAAU,IAAMv4E,IAAQipQ,EAAQlmgB,SAE7C,GADAo/3B,EAAU7L,EACNro4B,EAAEgI,OAAO0sR,cAAgB,IAAMy9D,EAAUnyV,EAAEgI,OAAO0sR,aAAe,IAAMy9D,EAAU,EACjF,IAAK,IAAIwxP,EAAM0kT,EAAOtl4B,OAAS,EAAG4glB,GAAO,EAAGA,IACpC+vT,EAAOplnB,WAAW+5mB,EAAO1kT,KAAShklB,KAAKg04B,aAAatL,EAAO1kT,GAAM+vT,IAGrE/z4B,KAAKw04B,WAAW5rL,EAAY8/K,EAAO1kT,GAAM+vT,EAAQ1z4B,EAAGg7gB,EAAS7oL,QAIjE,IAAK,IAAI86d,EAAM,EAAGA,EAAMo7E,EAAOtl4B,OAAQkqzB,IAC/BymF,EAAOplnB,WAAW+5mB,EAAOp7E,KAASttzB,KAAKg04B,aAAatL,EAAOp7E,GAAMymF,IAGrE/z4B,KAAKw04B,WAAW5rL,EAAY8/K,EAAOp7E,GAAMymF,EAAQ1z4B,EAAGg7gB,EAAS7oL,EAGzE,MAEIxyV,KAAKw04B,WAAW5rL,EAAYoqL,EAAQe,EAAQ1z4B,EAAGg7gB,EAAS7oL,GAE5DzgS,EAAQxlC,SAASym3B,EAAO1g3B,aAAa,cAAe,IACpDsI,GAAO,CACX,CACI56B,KAAKmzN,OAAO2/M,sBAAsBuQ,MAAgB,IAClDrjb,KAAK6i4B,eAAgB,GAEzB,IAAK,IAAI123B,EAAI,EAAGA,EAAIoo4B,EAAQnx4B,OAAQ+I,IAChCm83B,EAASl83B,KAAKpM,KAAK23jB,QAAQ48U,EAAQpo4B,KAEvCnM,KAAKsgS,QAAQ,cAAetgS,KAAKoz4B,aAAa/y4B,EAAE02B,MAAOskf,EAASutM,EAAYvotB,EAAEgI,OAAQhI,EAAEggW,SAASmD,eAAgB,KAAMzxS,EAAOn3B,IAC1Hygf,EAAQlmgB,QAAQghB,KAAOn2B,KAAKmV,QAAQghB,KACpCklf,EAAQ1iH,aAAa,cAAe2ve,GACpCto4B,KAAKsj4B,eAAgB,EACrBtj4B,KAAKmzN,OAAO2/M,WAAa9ya,KAAK6l4B,UAElC7l4B,KAAK24Z,aAAa,cAAe2ve,EACrC,EACA3F,EAAShy3B,UAAU6j4B,WAAa,SAAU5rL,EAAYoqL,EAAQe,EAAQ1z4B,EAAGg7gB,EAAS7oL,GAC9E,IAAIk7hB,EAAej4xB,GAAQmznB,EAAY,IAAMgkK,KACzCp1T,EAAW/he,GAAQp1F,EAAEgI,OAAQ,IAAMy43B,KACnChsd,EAASr/U,GAAQp1F,EAAEgI,OAAQ,IAAM043B,KAChCiS,EAAO9qnB,UAAUh1P,SAAS,cAAiBw61B,KAAkB54c,GAAUz0a,EAAE02B,MAAMy7T,QAAU,GAAOglO,GAAYn3jB,EAAE02B,MAAMw7T,QAAU,GAAOuiF,GAAUz0a,EAAE02B,MAAMy7T,QAAU,IAAQglO,GAAYn3jB,EAAE02B,MAAMw7T,QAAU,KAASuiF,IAAW0iJ,GAiB5Nx3jB,KAAKy04B,gBAAgBzB,EAAQe,EAAQ14X,EAAS,KAAMh7gB,EAAGmyV,GAAS,GAhBpC,OAAxBo2X,EAAWz3rB,SACXnxB,KAAK004B,kBAAkB1B,EAAQe,EAAQ1z4B,EAAGg7gB,GAErCutM,EAAWt+qB,mBAAqBs+qB,EAAW1gc,UAAUh1P,SAAS8uX,KACrB,OAA1C4mU,EAAWt+qB,kBAAkBnZ,UAC7BnxB,KAAK004B,kBAAkB1B,EAAQe,EAAQ1z4B,EAAGg7gB,GAGxCutM,EAAW1gc,UAAUh1P,SAAS,uBAA2B01rB,EAAW1gc,UAAUh1P,SAAS,qBAC7FlzB,KAAK004B,kBAAkB1B,EAAQe,EAAQ1z4B,EAAGg7gB,GAG1Cr7gB,KAAKy04B,gBAAgBzB,EAAQe,EAAQ14X,EAAS,KAAMh7gB,EAAGmyV,EAMnE,EACAmwiB,EAAShy3B,UAAU+j4B,kBAAoB,SAAU1B,EAAQe,EAAQ1z4B,EAAGg7gB,GAChE,IAGIolB,EAHAk0W,EAASl/yB,GAAQs+yB,EAAQ,IAAM7S,KAC/B0T,EAAen/yB,GAAQu9yB,EAAQ,IAAM9R,KACrC2T,EAAep/yB,GAAQm/yB,EAAc,IAAM5T,KAgB/C,GAdI3g4B,EAAEgI,OAAO0sR,aAAe,GAAK10R,EAAE02B,MAAMy7T,QAAUnyV,EAAEgI,OAAO0sR,aAAe,EACvE0rQ,GAAM,EAEDpgiB,EAAE02B,MAAMy7T,QAAU,EACvBiuM,GAAM,GAEDpgiB,EAAEgI,OAAO6/Q,UAAUh1P,SAAS,sBAAyB7yB,EAAEgI,OAAO6/Q,UAAUh1P,SAAS,yBACjF7yB,EAAE02B,MAAMy7T,QAAU,GAAOnyV,EAAE02B,MAAMw7T,QAAU,EAC5CkuM,GAAM,GAEApgiB,EAAE02B,MAAMy7T,QAAU,IAAQnyV,EAAE02B,MAAMw7T,QAAU,MAClDkuM,GAAM,IAGTpgiB,EAAEgI,OAAO6/Q,UAAUh1P,SAAS,sBAA0B7yB,EAAEgI,OAAO6/Q,UAAUh1P,SAAS,sBAAwB,CAC3G,IAAI7qB,EAAShI,EAAEgI,OAAOotF,QAAQ,MAC9Bk/yB,EAAOhg3B,aAAaq+2B,EAAQvyW,EAAMp4hB,EAASA,EAAOgrR,mBACtD,MAEIshnB,EAAOhg3B,aAAaq+2B,EAAQvyW,EAAMpgiB,EAAEgI,OAAShI,EAAEgI,OAAOgrR,oBAE1DrzR,KAAK804B,SAAS9B,EAAQe,EAAQY,EAAQl0W,EAAKplB,GAC3Cr7gB,KAAK+04B,cAAcH,EAAcC,GACjC704B,KAAKg14B,gBAAgBhC,GACjB33X,EAAQlmgB,QAAQghB,KAAOn2B,KAAKmV,QAAQghB,GACpCn2B,KAAK8o4B,cAGLztX,EAAQ45X,iBACRj14B,KAAKi14B,iBAEb,EACAtS,EAAShy3B,UAAU8j4B,gBAAkB,SAAUzB,EAAQe,EAAQ14X,EAAS5uf,EAAOpsB,EAAG62C,EAAK60pB,GACnF,IAGIkoM,EAHAW,EAAen/yB,GAAQu9yB,EAAQ,IAAM9R,KACrC2T,EAAep/yB,GAAQm/yB,EAAc,IAAM5T,KAC3CkU,EAAez/yB,GAAQs+yB,EAAQ,IAAM7S,KAKzC,GAHI7g4B,GAAKA,EAAEgI,SACP4r4B,EAAiBzpjB,GAAOxqV,KAAKsl4B,cAAgB,IAAMtD,IAAU,IAAMX,IAAU0S,IAE7E1z4B,GAAM62C,EAAM,IAAO60pB,EACnBmpM,EAAavg3B,aAAaq+2B,EAAQe,GAClC/z4B,KAAK804B,SAAS9B,EAAQe,EAAQmB,GAAc,EAAM75X,QAEjD,GAAIh7gB,GAAMA,EAAEgI,OAAO0sR,aAAe,GAAK79O,EAAO72C,EAAEgI,OAAO0sR,aAAe,KAASg3a,IAAY/rsB,KAAKoj4B,YACjG8R,EAAavg3B,aAAaq+2B,EAAQe,EAAO1gnB,oBACzCrzR,KAAK804B,SAAS9B,EAAQe,EAAQmB,GAAc,EAAO75X,QAElD,GAAIr7gB,KAAKoj4B,aAAe6Q,GAAkB/81B,EAAM+81B,EAAel/mB,aAAe,KAAOg3a,EACtFmpM,EAAavg3B,aAAaq+2B,EAAQe,EAAO1gnB,oBACzCrzR,KAAK804B,SAAS9B,EAAQe,EAAQmB,GAAc,EAAO75X,OAElD,CACD,IAAIs5X,EAAS304B,KAAKm14B,aAAapB,GAC3BqB,EAAUT,EAAOxr2B,WAAW1c,GAChCko3B,EAAOhg3B,aAAaq+2B,EAAQoC,GAC5Bp14B,KAAK804B,SAAS9B,EAAQoC,EAAST,GAAQ,EAAMt5X,EACjD,CACAr7gB,KAAK+04B,cAAcH,EAAcC,GACjC704B,KAAKg14B,gBAAgBhC,GACjB33X,EAAQlmgB,QAAQghB,KAAOn2B,KAAKmV,QAAQghB,GACpCn2B,KAAK8o4B,cAGLztX,EAAQ45X,iBACRj14B,KAAKi14B,iBAEb,EACAtS,EAAShy3B,UAAUmk4B,SAAW,SAAU9B,EAAQe,EAAQY,EAAQl0W,EAAKplB,GACjE,IAAIg6X,EAAe5/yB,GAAQk/yB,EAAQ,IAAM3T,KACrC7q2B,EAAKn2B,KAAKwv4B,MAAMwD,GAChBsC,EAAcj6X,EAAQk6X,iBAAiBl6X,EAAQwqX,SAAUxqX,EAAQloT,OAAQh9L,EAAI,KAAM,MAAM,GACzFq/2B,EAAQx14B,KAAKwv4B,MAAMuE,GACnBtn3B,EAAQzsB,KAAKy14B,WAAWz14B,KAAK6l4B,SAAU7l4B,KAAKmzN,OAAQqirB,GACpD11lB,EAAW9/S,KAAKwv4B,MAAM6F,GAC1B,GAAsB,IAAlBr14B,KAAK0lV,SAAgB,CACrB1lV,KAAKkq4B,YAAYlq4B,KAAK6l4B,SAAU7l4B,KAAKmzN,OAAQ2sF,EAAU,eAAe,GACtE,IAAI5oQ,EAAMw2d,GAAMjhf,GAASzsB,KAAK6l4B,SAASzi4B,OAAUq9hB,EAAMh0gB,EAAQA,EAAQ,EACvE,GAAIihf,GAAM5tN,KAAc9/S,KAAKkr4B,cAClBoK,EAAY,GAAGt14B,KAAKmzN,OAAOkvZ,cAEjC,CACD,IAAIqzR,EAAU114B,KAAK8l4B,eAAiBp11B,WAAWovQ,GAAYA,EAC3Dp/J,GAAS1gJ,KAAKmzN,OAAOkvZ,SAAUqzR,EAASJ,EAAY,GACxD,CAEA,GADAt14B,KAAK6l4B,SAASrw2B,OAAO0hB,EAAK,EAAGo+1B,EAAY,IACrCj6X,EAAQlmgB,QAAQghB,KAAOn2B,KAAKmV,QAAQghB,GAAI,CACxC,IAAI4w2B,EAAY1rX,EAAQs6X,iBAAiBx/2B,GACzC+gB,IACA,IAAK,IAAI/qC,EAAI,EAAGwjD,EAAMo30B,EAAU3j4B,OAAQ+I,EAAIwjD,EAAKxjD,IAC7CnM,KAAK6l4B,SAASrw2B,OAAO0hB,EAAK,EAAG6v1B,EAAU563B,IACvC+qC,IAEJmke,EAAQ0kN,YAAc1kN,EAAQ8qX,eAAe9qX,EAAQwqX,SAAUxqX,EAAQloT,OAAOkvZ,SAClF,CACArinB,KAAK+/tB,YAAc//tB,KAAKmm4B,eAAenm4B,KAAK6l4B,SAAU7l4B,KAAKmzN,OAAOkvZ,SACtE,MAEIrinB,KAAK414B,aAAa514B,KAAK6l4B,SAAU7l4B,KAAKmzN,OAAQ2sF,EAAUw1lB,EAAa70W,EAAMh0gB,EAAQA,EAAQ,EAEnG,EACAk22B,EAAShy3B,UAAUwk4B,aAAe,SAAUpB,GACxC,IAAI9hZ,EAAWznK,GAAO,OAAS3uE,IAAMk4nB,GACjC9hZ,GAAYA,EAAS/pO,UAAUh1P,SAAS6t2B,OAAsC,IAAvB/g4B,KAAK6i4B,eAC5D7i4B,KAAK0r4B,aAAaqI,EAAQ9hZ,EAAU,MAExC,IAAI0iZ,EAASnqjB,GAAO,IAAM02iB,IAAY6S,KACX,IAAvB/z4B,KAAK6i4B,gBAA2B8R,GAAU1iZ,GAC1Cjyf,KAAKwm4B,iBAAiBuN,GAGrBrmY,GADLinY,EAASnqjB,GAAO,IAAM02iB,IAAY6S,MACW,IAAvB/z4B,KAAK6i4B,gBACvB8R,EAAOxu4B,MAAMi+J,QAAU,QAEtBspW,GAAMinY,KAAkC,IAAvB304B,KAAK6i4B,gBACvB8R,EAAOxu4B,MAAMi+J,QAAU,SAEvBspW,GAAMinY,KAAkC,IAAvB304B,KAAK6i4B,iBAClBn1X,GAAMzb,IACN1+E,GAASwe,aAAa/xb,KAAKc,cAAeiz4B,EAAQhT,IAAY/g4B,KAAK2lrB,iBAEnE1ka,EAAOupE,GAAO,OAAS3uE,IAAMk4nB,KAE7B9ynB,EAAKiH,UAAU90P,IAAI,qBAEvBuh3B,EAASphe,GAASua,WAAW9tb,KAAKc,cAAe,GAAI,KAAMd,KAAK2lrB,gBAChEouN,EAAOri3B,YAAYij3B,GACf1znB,EACAgH,GAAY,CAAChH,GAAO6/mB,KAGpBvtd,GAASwe,aAAa/xb,KAAKc,cAAeiz4B,EAAQhT,IAAY/g4B,KAAK2lrB,gBAEvEouN,EAAO/+2B,aAAa,gBAAiB,SACrC2/2B,EAAOxu4B,MAAMi+J,QAAU,QAE3B,GAAIspW,GAAMinY,GAAS,CACf,IAOI1znB,EAPAhoQ,EAAOjZ,KAAKgz3B,YACZtlX,GAAMz0f,IAAsB,iBAAbA,EAAKvU,OACpB1E,KAAKsgS,QAAQ,gBAAiBtgS,KAAKit4B,eAAe8G,EAAQ,OAE1DrmY,GAAMzb,IACN1+E,GAASwe,aAAa/xb,KAAKc,cAAeiz4B,EAAQjT,IAAa9g4B,KAAK2lrB,iBAEpE1ka,EAAOupE,GAAO,OAAS3uE,IAAMk4nB,IAE7B9rnB,GAAY,CAAChH,GAAO8/mB,MAGpBxtd,GAASwe,aAAa/xb,KAAKc,cAAeiz4B,EAAQjT,IAAa9g4B,KAAK2lrB,gBAEpE19Z,GAAY,CADZhH,EAAOupE,GAAO,OAAS3uE,IAAMk4nB,IACThT,MAExB4T,EAASphe,GAASua,WAAW9tb,KAAKc,cAAe,GAAI,KAAMd,KAAK2lrB,gBAChEouN,EAAOri3B,YAAYij3B,GACnB304B,KAAKgt4B,UAAU+G,GACf/z4B,KAAKsgS,QAAQ,eAAgBtgS,KAAKit4B,eAAe8G,EAAQ,MAC7D,CACA,OAAOY,CACX,EACAhS,EAAShy3B,UAAUok4B,cAAgB,SAAUH,EAAcC,GACvD,GAAIA,GAAmD,IAAnCD,EAAaz+c,kBAAyB,CACtD,IAAI0/c,EAAWrrjB,GAAO,OAAS3uE,IAAMg5nB,GACrCvqjB,GAAOsqjB,GACPtqjB,GAAOurjB,GACP,IAAI/1lB,EAAW9/S,KAAKwv4B,MAAMqF,GAC1B704B,KAAKkq4B,YAAYlq4B,KAAK6l4B,SAAU7l4B,KAAKmzN,OAAQ2sF,EAAU,eAAe,GACtE9/S,KAAKqt4B,aAAawH,GAAc,EACpC,CACJ,EACAlS,EAAShy3B,UAAUqk4B,gBAAkB,SAAUhC,GAC3C,IAAIjh1B,EAAQ/xD,KAAK66qB,QAAQm4N,EAAQ,IAAM9R,KAAY993B,OACnD4v4B,EAAOh+2B,aAAa,aAAc,GAAK+8B,GACvC/xD,KAAK814B,qBAAqBtrjB,GAAO,IAAM02iB,IAAY8R,GAASjh1B,EAAQ,EACxE,EACA4w0B,EAAShy3B,UAAUml4B,qBAAuB,SAAU3g4B,EAAS48C,GACzD,IAAK27c,GAAMv4f,GAEP,IADA,IAAIwz3B,EAASxz3B,EAAQg0B,WACZh9B,EAAI,EAAGwjD,EAAMg50B,EAAOvl4B,OAAQ+I,EAAIwjD,EAAKxjD,IAAK,CAC/C,IAAI493B,EAAQpB,EAAOx83B,GACnB493B,EAAM/02B,aAAa,aAAc,GAAK+8B,GACtC/xD,KAAK814B,qBAAqBtrjB,GAAO,IAAM02iB,IAAY6I,GAAQh40B,EAAQ,EACvE,CAER,EACA4w0B,EAAShy3B,UAAUwj4B,iBAAmB,SAAU9z4B,GAC5C,IAAIogiB,EACApgiB,EAAE02B,MAAMy7T,QAAUnyV,EAAEgI,OAAO0sR,aAAe,EAC1C0rQ,GAAM,EAEDpgiB,EAAE02B,MAAMy7T,QAAU,IACvBiuM,GAAM,GAEV,IAAI4zW,EAASr04B,KAAKc,cAAc,MAAO,CAAEC,UAAW4g4B,MAChDl12B,EAAQzsB,KAAKsl4B,cAAiB7kW,EAAM,EAAI,EAAMA,EAAM,EAAI,EAC5DpgiB,EAAEgI,OAAOssB,aAAa0/2B,EAAQh04B,EAAEgI,OAAOvC,SAAS2mB,GACpD,EACAk22B,EAAShy3B,UAAU4i4B,iBAAmB,WAClC,IAAIwC,EAASvrjB,GAAO,IAAMm3iB,KACtBoU,GACAzrjB,GAAOyrjB,EAEf,EACApT,EAAShy3B,UAAUii4B,YAAc,WACzB5y4B,KAAKq7gB,SAAWr7gB,KAAK4z4B,UACrB5z4B,KAAKq7gB,QAAQjkY,UACbp3I,KAAK4z4B,QAAQx8vB,UAErB,EACAurvB,EAAShy3B,UAAUyi4B,aAAe,SAAUr82B,EAAOlmB,EAAK+3sB,EAAYvgtB,EAAQ2t4B,EAAU/C,EAAUlh1B,EAAOn3B,GACnG,IAAIm52B,EAASnrL,EAAanznB,GAAQmznB,EAAY,IAAMo4K,KAAY,KAC5DiV,EAAWlC,EAAS/z4B,KAAKoq4B,YAAY2J,GAAU,KAC/CV,EAAcxi4B,EAAMA,EAAImi4B,OAASgD,EACjCE,EAAkBrl4B,EAAMA,EAAIwvV,SAAW,KACvC81iB,EAAYvtL,EAAa5otB,KAAK66qB,QAAQ+tC,EAAY,IAAMo4K,KAAY,KACpEoV,EAAevl4B,EAAImi4B,OAAOn9mB,cAC1B69mB,EAAa7i4B,EAAImi4B,OAASv9yB,GAAQ2gzB,EAAc,IAAMpV,KAAY,KAClEpwK,EAAe,KACfylL,EAAa,KACbpqd,EAAU,CAAC41c,IAAUD,IAAQE,IAASC,KACtCvhf,EAAY,KACZtwY,GAAiB,IAAT0qB,EAAiBy42B,EAAcU,EACvCtn3B,EAAQvc,EAAOulF,GAAQvlF,EAAM,kBAAoB,KACjD/D,EAAI,EACJ+9E,EAAW,KAGf,GAFAwpzB,EAAc7i4B,EAAImi4B,QAAyB,OAAfU,EAAuBj+yB,GAAQ2gzB,EAAc,IAAMp0f,KAAQ0xf,EACvFA,GAAuB,IAAT942B,EAAiB56B,KAAK0z4B,WAAaA,EAC7CT,EACA,KAAO9m4B,EAAI,GAAG,CACV,GAAIq+U,GAAO,IAAM3uE,IAAMo3nB,GAAU/qnB,UAAUh1P,SAAS+4Z,EAAQ9/a,IAAK,CAC7Dq0Y,EAAYyrC,EAAQ9/a,GACpB,KACJ,CACAA,GACJ,CAEJ,GAAIsgB,EAAO,CACP,IAAI6p3B,EAAU,EACd,IAAKnq4B,EAAI,EAAGA,EAAIsgB,EAAM0pa,kBAAmBhqb,IAAK,CAE1C,GADAmq4B,GAAoB,IAAT172B,GAAiBnO,EAAM3mB,SAASqG,KAAOkn4B,GAAeU,IAAWV,IAAiBiD,EAAUA,GACzF,IAAT172B,GAAiBnO,EAAM3mB,SAASqG,GAAG+7Q,UAAUh1P,SAAS,WAAa,CACpEmj3B,EAAct/2B,EAAMy7T,SAAW,GAAMrmV,EAAI,EAAIA,EAC7C,KACJ,CACK,GAAIsgB,EAAM3mB,SAASqG,KAAO+D,EAAM,CACnB6mB,EAAMy7T,QAApB6jjB,EAAqClq4B,EACrC,KACJ,CACJ,CACAkq4B,EAA0B,IAAZC,IAAmBD,EAAaA,EAC9CnszB,EAAyB,aAAbs2T,EAA4B,SAAazpX,EAAMy7T,QAAU,EAAK,SAAW,OACzF,CAeA,GAdIo2X,IAEIgI,EADqB,IAArBulL,EAAU/y4B,OACK,KAEVwltB,EAAW1gc,UAAUh1P,SAAS8t2B,KACpBmV,EAAU,GAGVA,EAAU,IAG7BpC,IAAWV,IACXziL,EAAemjL,GAEfnrL,GAAcvgtB,EAAO0sR,cAAgB,IAAMh+P,EAAMy7T,QAAUnqV,EAAO0sR,aAAe,IAAMh+P,EAAMy7T,QAAU,IACvGo+X,EAAemjL,GACF,IAATn52B,GAAe,CACfm3B,IAAUA,EACV,IAAIuoV,EAAWs2U,EAAepmY,GAAO,iBAAkBomY,GAAgB,KAEvE,GADAylL,EAAc/7f,EAAYA,EAASx0Y,SAAS1C,OAAS,IAC/CpD,KAAKmzN,OAAO2/M,sBAAsBuQ,KAA6B,OAAb/oC,GAAqBs2U,EAAc,CACvF,IAAIj2U,EAAWi2U,EAAa97rB,aAAa,YACrC90B,KAAKqjC,cAAcrjC,KAAKmzN,OAAO2/M,WAAY89S,EAAat+rB,aAAa,YAAYxb,YAAc,KACnGu/3B,EAAc17f,EAAYA,EAASv3Y,OAAS,CAChD,CACJ,CAEJ,MAAO,CACH09E,QAAQ,EACRy1zB,WAAYtD,EACZl82B,MAAOA,EACPs82B,YAAaA,EACb6C,gBAAiBA,EACjBM,YAAazC,EACb0C,gBAAiBR,EACjBntL,UAAWutL,EACXK,UAAW3k1B,EACX4h1B,kBAAmBD,EACnB9qL,WAAYgI,EACZwjL,cAAe5zf,EACfn4Y,OAAQA,EACR6hF,SAAUA,EAElB,EACAy4yB,EAAShy3B,UAAUgm4B,WAAa,SAAUC,GACtC,IAAIjn1B,EAAM3vD,KAAKqr4B,OAAOjo4B,OACtB,GAAIwz4B,EACA,IAAK,IAAIzq4B,EAAI,EAAGA,EAAIwjD,EAAKxjD,IACrBnM,KAAKko4B,cAAclo4B,KAAKqr4B,OAAOl/3B,SAInC,IAASA,EAAI,EAAGA,EAAIwjD,EAAKxjD,IAAK,CAE1Bm+U,GADaE,GAAO,IAAMw3iB,IAAShi4B,KAAKqr4B,OAAOl/3B,IAEnD,CAER,EACAw23B,EAAShy3B,UAAUu33B,cAAgB,SAAU3y2B,GACzC,IAAIsh3B,EAAS724B,KAAKc,cAAc,MAAO,CAAEC,UAAWih4B,MACpDzs2B,EAAKZ,aAAaki3B,EAAQth3B,EAAK4T,WAAW,GAC9C,EACAw51B,EAAShy3B,UAAUmm4B,eAAiB,SAAUF,GAC1C,GAAIA,EAEA,IADA,IACStn4B,EAAK,EAAGyn4B,EADJpsjB,GAAU,IAAMq2iB,IAAW,+BAAgChh4B,KAAKmV,SACzC7F,EAAKyn4B,EAAS3z4B,OAAQkM,IAAM,CAClDyn4B,EAASzn4B,GACf0lB,aAAa,gBAAiB,QACtC,MAIA,IADA,IACSsgB,EAAK,EAAG0h2B,EADJrsjB,GAAU,IAAMq2iB,IAAW,0BAA2Bhh4B,KAAKmV,SACpCmgC,EAAK0h2B,EAAS5z4B,OAAQkyC,IAAM,CAClD0h2B,EAAS1h2B,GACfvgB,gBAAgB,gBACxB,CAER,EACA4t2B,EAAShy3B,UAAUsm4B,gBAAkB,SAAU9h4B,EAAS48C,EAAOml1B,GAC3D,GAAInl1B,EAAQ,IAAM27c,GAAMv4f,GAEpB,IADA,IAAIwz3B,EAAS3o4B,KAAKm34B,gBAAgBD,EAAoB/h4B,EAAQg0B,YACrDh9B,EAAI,EAAGwjD,EAAMg50B,EAAOvl4B,OAAQ+I,EAAIwjD,EAAKxjD,IAAK,CAC/C,IAAI493B,EAAQpB,EAAOx83B,GACf80Q,EAAOupE,GAAO,IAAMs2iB,IAAat2iB,GAAO,IAAM62iB,IAAU0I,IACvDr8X,GAAMzsP,IACPjhR,KAAKss4B,aAAavC,EAAO9onB,EAAM,MAEnCjhR,KAAKi34B,gBAAgBzsjB,GAAO,IAAM02iB,IAAY6I,GAAQh40B,EAAQ,EAAGml1B,EACrE,CAER,EACAvU,EAAShy3B,UAAUym4B,iBAAmB,SAAUF,GAE5C,IADA,IAAI3I,EAASvu4B,KAAKm34B,gBAAgBD,EAAoBvsjB,GAAU,IAAMm2iB,IAAa9g4B,KAAKmV,UAC/EhJ,EAAI,EAAGwjD,EAAM4+0B,EAAOnr4B,OAAQ+I,EAAIwjD,EAAKxjD,IAAK,CAC/C,IAAI80Q,EAAOstnB,EAAOpi4B,GACd493B,EAAQt0yB,GAAQwrL,EAAM,IAAM+/mB,KAChChh4B,KAAKss4B,aAAavC,EAAO9onB,EAAM,KACnC,CACJ,EACA0hnB,EAAShy3B,UAAU0m4B,cAAgB,SAAUli4B,EAAS48C,EAAOml1B,GACzD,GAAInl1B,EAAQ,IAAM27c,GAAMv4f,GAEpB,IADA,IAAI0z3B,EAAS7o4B,KAAKm34B,gBAAgBD,EAAoB/h4B,EAAQg0B,YACrDh9B,EAAI,EAAGwjD,EAAMk50B,EAAOzl4B,OAAQ+I,EAAIwjD,EAAKxjD,IAAK,CAC/C,IAAI493B,EAAQlB,EAAO183B,GACf80Q,EAAOupE,GAAO,IAAMu2iB,IAAYv2iB,GAAO,IAAM62iB,IAAU0I,IACtDr8X,GAAMzsP,IACPjhR,KAAK0r4B,aAAa3B,EAAO9onB,EAAM,MAEnCjhR,KAAKq34B,cAAc7sjB,GAAO,IAAM02iB,IAAY6I,GAAQh40B,EAAQ,EAAGml1B,EACnE,CAER,EACAvU,EAAShy3B,UAAU2m4B,eAAiB,SAAUJ,GAE1C,IADA,IAAIK,EAASv34B,KAAKm34B,gBAAgBD,EAAoBvsjB,GAAU,IAAMo2iB,IAAY/g4B,KAAKmV,UAC9EhJ,EAAI,EAAGwjD,EAAM4n1B,EAAOn04B,OAAQ+I,EAAIwjD,EAAKxjD,IAAK,CAC/C,IAAI80Q,EAAOs2nB,EAAOpr4B,GACd493B,EAAQt0yB,GAAQwrL,EAAM,IAAM+/mB,KAChChh4B,KAAK0r4B,aAAa3B,EAAO9onB,EAAM,MAAM,EACzC,CACJ,EACA0hnB,EAAShy3B,UAAUwm4B,gBAAkB,SAAUD,EAAoB5l3B,GAC/D,IAAIkm3B,EAAS9m4B,MAAMC,UAAUC,MAAMjR,KAAK2xB,GACxC,GAAI4l3B,EACA,IAAK,IAAI/q4B,EAAI,EAAGA,EAAIqr4B,EAAOp04B,OAAQ+I,IAC1B69U,GAAUwtjB,EAAOrr4B,MAClBqr4B,EAAOhi3B,OAAOrpB,EAAG,GACjBA,KAIZ,OAAOqr4B,CACX,EACA7U,EAAShy3B,UAAU8m4B,WAAa,SAAUvn4B,GACtC,IAAI0k4B,EAAen/yB,GAAQvlF,EAAM,IAAMgx3B,KACnC2T,EAAep/yB,GAAQm/yB,EAAc,IAAM5T,KAC1CtzX,GAAM1tgB,KAAKwl4B,iBACZxl4B,KAAKwpmB,gBAAgBt5lB,GAEzBo6U,GAAOp6U,GACPlQ,KAAK+04B,cAAcH,EAAcC,GACjC704B,KAAK034B,WAAWxn4B,EACpB,EACAyy3B,EAAShy3B,UAAUsk4B,eAAiB,WAChCj14B,KAAK8o4B,aACL9o4B,KAAK234B,sBACL334B,KAAK434B,qBACT,EACAjV,EAAShy3B,UAAUm43B,WAAa,WAC5B9o4B,KAAKqr4B,OAAS363B,MAAMC,UAAUC,MAAMjR,KAAKgrV,GAAU,IAAMq2iB,IAAUhh4B,KAAKmV,SAC5E,EACAwt3B,EAAShy3B,UAAUgn4B,oBAAsB,WACrC334B,KAAKisV,cAAc,CAAEwzO,cAAe,KAAM,GAC1C,IAAIipU,EAAS/9iB,GAAU,IAAMv4E,IAAQpyQ,KAAKmV,SAC1CnV,KAAKis4B,iBAAiBvD,EAC1B,EACA/F,EAAShy3B,UAAUin4B,oBAAsB,WACrC534B,KAAKisV,cAAc,CAAE84iB,cAAe,KAAM,GAE1C,IADA,IAAI8D,EAASl+iB,GAAU,yBAA0B3qV,KAAKmV,SAC7ChJ,EAAI,EAAGwjD,EAAMk50B,EAAOzl4B,OAAQ+I,EAAIwjD,EAAKxjD,IAC1CnM,KAAKgt4B,UAAUnE,EAAO183B,GAE9B,EACAw23B,EAAShy3B,UAAU+m4B,WAAa,SAAUxn4B,GACtC,GAAsB,IAAlBlQ,KAAK0lV,SAAgB,CACrB,IAAItpT,EAAK,IAAIinZ,GAAYrjb,KAAK6l4B,UAC1B1v2B,EAAKn2B,KAAKwv4B,MAAMt/3B,GAChBg6B,EAAO,CAAC,EACR2t2B,EAAQ734B,KAAK8l4B,eAAiBp11B,WAAWva,GAAMA,EACnD+T,EAAKlqC,KAAKmzN,OAAOh9L,IAAM0h3B,EACvBz72B,EAAGjJ,OAAOnzB,KAAKmzN,OAAOh9L,GAAI+T,GAC1BlqC,KAAK214B,iBAAiBx/2B,EAC1B,KACK,CACGA,EAAKn2B,KAAKwv4B,MAAMt/3B,GACpBlQ,KAAKu14B,iBAAiBv14B,KAAK6l4B,SAAU7l4B,KAAKmzN,OAAQh9L,EAAI,KAAM,MAAM,EACtE,CACJ,EACAws2B,EAAShy3B,UAAUgl4B,iBAAmB,SAAU71lB,GAC5C,IAAI6olB,EAAS3o4B,KAAKqu4B,cAAcru4B,KAAK+/tB,YAAajgb,GAAU,GACxDinlB,EAAY,GAChB,GAAI4B,EACA,IAAK,IAAIx83B,EAAI,EAAGwjD,EAAMg50B,EAAOvl4B,OAAQ+I,EAAIwjD,EAAKxjD,IAAK,CAC/C,IAAIiwB,EAAK,IAAIinZ,GAAYrjb,KAAK6l4B,UAC1B1v2B,EAAKtb,GAAS7a,KAAKmzN,OAAOh9L,GAAIwy2B,EAAOx83B,IAAI2K,WACzCozB,EAAO,CAAC,EACR4t2B,EAAS934B,KAAK8l4B,eAAiBp11B,WAAWva,GAAMA,EACpD+T,EAAKlqC,KAAKmzN,OAAOh9L,IAAM2h3B,EACvB,IAAIxP,EAAWls2B,EAAGjJ,OAAOnzB,KAAKmzN,OAAOh9L,GAAI+T,GACzC681B,EAAU363B,KAAKk83B,EAAS,IACxBto4B,KAAK214B,iBAAiBx/2B,EAC1B,CAEJ,OAAO4w2B,CACX,EACApE,EAAShy3B,UAAUon4B,cAAgB,SAAUzm3B,EAAO/gB,EAAUyn4B,GAC1D,IAAK,IAAI7r4B,EAAI,EAAGwjD,EAAMr+B,EAAMluB,OAAQ+I,EAAIwjD,EAAKxjD,IAAK,CAC9C,IAAI493B,EAAQ/p4B,KAAKgnS,WAAW11Q,EAAMnlB,IAClC,IAAIuhgB,GAAMq8X,GAAV,CAGA,IAAI9onB,EAAOupE,GAAO,IAAMj6U,EAAUi6U,GAAO,IAAM62iB,IAAU0I,IACpDr8X,GAAMzsP,KACP+2nB,EAAWh44B,KAAK0r4B,aAAa3B,EAAO9onB,EAAM,MAAQjhR,KAAKss4B,aAAavC,EAAO9onB,EAAM,MAHrF,CAKJ,CACJ,EACA0hnB,EAAShy3B,UAAUsn4B,cAAgB,SAAU3m3B,EAAOyi3B,EAAQtn3B,EAAO06kB,EAAUqtH,GACzE,GAAqB,IAAjBljsB,EAAMluB,OAAV,CAGA,IAAIsl4B,EAAS1o4B,KAAKsm4B,cAAch12B,GAC5BygC,EAAQgi1B,EAASrj2B,WAAWqj2B,EAAOzh3B,aAAa,eAAiB,EAAI,EACrE60kB,GACAnnmB,KAAKk44B,aAAanm1B,GAEtB,IAEIom1B,EACAC,EAWAzD,EAdA54uB,EAAKw3Q,GAAS+a,uBAAuBtub,KAAKc,cAAe4n4B,EAAQ1o4B,KAAK2lrB,eAAgB5znB,GACtF57B,EAAKn2B,KAAKwv4B,MAAMuE,GAqBpB,GAlBKhokB,GAAkBgokB,KACnBqE,EAAY5tjB,GAAO,OAAS3uE,IAAMk4nB,IAEhB,IAAlB/z4B,KAAK0lV,UAAkB0yjB,GAAaA,EAAUlwnB,UAAUh1P,SAAS6t2B,OAAgBrzX,GAAM1tgB,KAAKmV,QAAQi+Q,gBAAkBpzR,KAAKmV,QAAQi+Q,aAAayC,cAAc3N,UAAUh1P,SAAS,mBACjLlzB,KAAK6i4B,eAAgB,GAEH,IAAlB7i4B,KAAK0lV,WACL1lV,KAAK414B,aAAa514B,KAAK6l4B,SAAU7l4B,KAAKmzN,OAAQh9L,EAAI7E,EAAO7E,GACzDzsB,KAAKqj4B,eAAgB,GASzB8U,GAFIxD,EAJCngL,IACQu/K,EAAS/z4B,KAAKm14B,aAAapB,GAAUvpjB,GAAO,IAAM02iB,IAAYlh4B,KAAKmV,WAK/Dg0B,WAAW1c,IACvBzsB,KAAKqj4B,eAAmC,IAAlBrj4B,KAAK0lV,SAAgB,CAC5C,IAAIzsU,EAAOjZ,KAAKgz3B,WAChB,GAAImlB,GAA8B,SAAnBn44B,KAAKqtb,UAAsB,CACtC,IAAK,IAAIlhb,EAAI,EAAGA,EAAI4vJ,EAAG34J,OAAQ+I,IAC3Bwo4B,EAAOhg3B,aAAaonI,EAAG5vJ,GAAIgs4B,GAE/B,GAAsB,IAAlBn44B,KAAK0lV,WAAmB3Z,GAAkBgokB,KAAYrmY,GAAM1tgB,KAAKmV,QAAQi+Q,gBAAkBpzR,KAAKmV,QAAQi+Q,aAAayC,cAAc3N,UAAUh1P,SAAS,iBACtJlzB,KAAK6i4B,eAAgB,GACjB5wY,EAAWznK,GAAO,OAAS3uE,IAAMk4nB,KACrB9hZ,EAAS/pO,UAAUh1P,SAAS6t2B,OAAgBrzX,GAAMz0f,IAAsB,iBAAbA,EAAKvU,OAC5E1E,KAAK0r4B,aAAaqI,EAAQ9hZ,EAAU,KAGhD,CACA,IAAKkmZ,IAAgC,cAAnBn44B,KAAKqtb,WAAkD,eAAnBrtb,KAAKqtb,WACvD,GAAiC,IAA7Bsnd,EAAOxr2B,WAAW/lC,OAAc,CAChC,IAAS+I,EAAI,EAAGA,EAAI4vJ,EAAG34J,OAAQ+I,IAC3Bwo4B,EAAOhg3B,aAAaonI,EAAG5vJ,GAAIgs4B,GAI3B,IAAIlmZ,EAFR,GAAsB,IAAlBjyf,KAAK0lV,WAAmB3Z,GAAkBgokB,KAAYrmY,GAAM1tgB,KAAKmV,QAAQi+Q,gBAAkBpzR,KAAKmV,QAAQi+Q,aAAayC,cAAc3N,UAAUh1P,SAAS,iBACtJlzB,KAAK6i4B,eAAgB,GACjB5wY,EAAWznK,GAAO,OAAS3uE,IAAMk4nB,KACrB9hZ,EAAS/pO,UAAUh1P,SAAS6t2B,OAAgBrzX,GAAMz0f,IAAsB,iBAAbA,EAAKvU,OAC5E1E,KAAK0r4B,aAAaqI,EAAQ9hZ,EAAU,KAGhD,KAEI,KAAI02Y,EAASgM,EAAOxr2B,WACpB,IAASh9B,EAAI,EAAGA,EAAI4vJ,EAAG34J,OAAQ+I,IAC3B,IAAK,IAAI6D,EAAI,EAAGA,EAAI243B,EAAOvl4B,OAAQ4M,IAAK,CAEpC,GADsC,cAAnBhQ,KAAKqtb,UAA6Bs7c,EAAO343B,GAAG45B,YAAY7nB,cAAgBg6I,EAAG5vJ,GAAG+/C,UAAUnqC,cAAgB4m3B,EAAO343B,GAAG45B,YAAY7nB,cAAgBg6I,EAAG5vJ,GAAG+/C,UAAUnqC,cAChK,CACb4y3B,EAAOhg3B,aAAaonI,EAAG5vJ,GAAIw83B,EAAO343B,IAClC,KACJ,CACA2k4B,EAAOhg3B,aAAaonI,EAAG5vJ,GAAIw83B,EAAOA,EAAOvl4B,QAC7C,CAT0B,CAa1C,CACA,GAAsB,IAAlBpD,KAAK0lV,SAAgB,CACrB1lV,KAAKkq4B,YAAYlq4B,KAAK6l4B,SAAU7l4B,KAAKmzN,OAAQh9L,EAAI,eAAe,GAChE,IAAIq/2B,EAAQx14B,KAAKwv4B,MAAM2I,GACnBjh2B,EAAMw2d,GAAM8nY,GAASx14B,KAAK6l4B,SAASzi4B,OAASpD,KAAKy14B,WAAWz14B,KAAK6l4B,SAAU7l4B,KAAKmzN,OAAQqirB,GAC5F,IAASxl4B,EAAI,EAAGA,EAAIshB,EAAMluB,OAAQ4M,IAAK,CACnC,IAAK09f,GAAMv3e,GAAK,CACZ,IAAI2h3B,EAAS934B,KAAK8l4B,eAAiBp11B,WAAWva,GAAMA,EACpDuqH,GAAS1gJ,KAAKmzN,OAAOkvZ,SAAUy1R,EAAQxm3B,EAAMthB,GACjD,CACAhQ,KAAK6l4B,SAASrw2B,OAAO0hB,EAAK,EAAG5lB,EAAMthB,IACnCknC,GACJ,CACJ,CACAl3C,KAAKym4B,aAAakO,EAnFlB,CAoFJ,EACAhS,EAAShy3B,UAAUun4B,aAAe,SAAUnm1B,GACxC,IAAIw3N,EAAoB,IAAVx3N,EAAe/xD,KAAKmzN,OAASnzN,KAAK0t4B,eAAe1t4B,KAAKmzN,OAAQphK,EAAQ,EAAG,GACvF/xD,KAAK0k4B,eAAen7mB,EACxB,EACAo5mB,EAAShy3B,UAAU+z3B,eAAiB,SAAUn7mB,GAC1C,IAAI5kR,EAAO3E,KAAK66V,oBAAoBtxE,GACpCvpR,KAAK2lrB,eAAexyd,OAASxuN,EAC7B3E,KAAK2lrB,eAAexyd,OAAOlkG,IAAMtqH,EAAKmM,eAAe,eAAiBnM,EAAKk+P,YAAc,aAC7F,EACA8/nB,EAAShy3B,UAAU8k4B,WAAa,SAAU5k4B,EAAK04Q,EAAQpzP,GAEnD,IADA,IAAI+gB,EAAM,KACD/qC,EAAI,EAAGmi4B,EAASz93B,EAAIzN,OAAQ+I,EAAImi4B,EAAQni4B,IAAK,CAClD,IAAIu73B,EAAS7s3B,GAAS0uQ,EAAOpzP,GAAItlB,EAAI1E,IACrC,GAAI0E,EAAI1E,IAAMu73B,GAAUA,EAAO5w3B,aAAeqf,EAC1C,OAAOhqB,EAEN,GAA4B,kBAAjBo9Q,EAAOpiO,OAAuBumd,GAAM7yf,GAAS0uQ,EAAOpiO,MAAOt2C,EAAI1E,MAO1E,GAAInM,KAAKmzN,OAAO2/M,sBAAsBuQ,KAAgBqqF,GAAM7yf,GAAS,QAAShK,EAAI1E,KAAM,CACzF,IAAI27C,EAAQjtC,GAAS,QAAShK,EAAI1E,IAElC,GAAY,QADZ+qC,EAAMl3C,KAAKy14B,WAAW3t1B,EAAO9nD,KAAKou4B,eAAe7knB,GAASpzP,IAEtD,KAER,MAbqF,CACjF,IAAI+T,EAAOrvB,GAAS0uQ,EAAOpiO,MAAOt2C,EAAI1E,IAEtC,GAAY,QADZ+qC,EAAMl3C,KAAKy14B,WAAWvr2B,EAAMlqC,KAAKou4B,eAAe7knB,GAASpzP,IAErD,KAER,CAQJ,CACA,OAAO+gB,CACX,EACAyr1B,EAAShy3B,UAAUil4B,aAAe,SAAU/k4B,EAAK04Q,EAAQpzP,EAAI+T,EAAMzd,GAC/D,IAAI+7B,EACJ,GAAIkld,GAAMv3e,GAAK,CACX1J,EAAQihf,GAAMjhf,GAAS5b,EAAIzN,OAASqpB,EACpC,IAAK,IAAI3L,EAAI,EAAG6uC,EAAMzlB,EAAK9mC,OAAQ0d,EAAI6uC,EAAK7uC,IACxCjQ,EAAI2kB,OAAO/I,EAAO,EAAGyd,EAAKppB,IAC1B2L,IAEJ,OAAO+7B,CACX,CACA,IAAK,IAAIr8C,EAAI,EAAGmi4B,EAASz93B,EAAIzN,OAAQ+I,EAAImi4B,EAAQni4B,IAAK,CAClD,IAAIu73B,EAAS7s3B,GAAS0uQ,EAAOpzP,GAAItlB,EAAI1E,IACrC,GAAI0E,EAAI1E,IAAMu73B,GAAUA,EAAO5w3B,aAAeqf,EAAI,CAC9C,GAA6B,kBAAjBozP,EAAOpiO,OAAuBt2C,EAAI1E,GAAG2E,eAAey4Q,EAAOpiO,QAAmC,OAAzBt2C,EAAI1E,GAAGo9Q,EAAOpiO,QACzFnnD,KAAKmzN,OAAO2/M,sBAAsBuQ,IAAgBxya,EAAI1E,GAAG2E,eAAe,SAAW,CAGjF48f,GADAq5X,EAAYls3B,GADZvO,EAA+B,kBAAjBi9Q,EAAOpiO,MAAsBoiO,EAAOpiO,MAAQ,QAChCt2C,EAAI1E,OAE9B463B,EAAY,IAEhBt62B,EAAQihf,GAAMjhf,GAASs62B,EAAU3j4B,OAASqpB,EAC1C,IAAS3L,EAAI,EAAG6uC,EAAMzlB,EAAK9mC,OAAQ0d,EAAI6uC,EAAK7uC,IACxCim3B,EAAUvx2B,OAAO/I,EAAO,EAAGyd,EAAKppB,IAChC2L,GAER,KACK,CACD,IAAIngB,EAA+B,kBAAjBi9Q,EAAOpiO,MAAsBoiO,EAAOpiO,MAAQ,QAC9Dt2C,EAAI1E,GAAGG,GAAO49B,CAClB,CACA,OAAO,CACX,CACK,GAA4B,kBAAjBq/O,EAAOpiO,OAAuBumd,GAAM7yf,GAAS0uQ,EAAOpiO,MAAOt2C,EAAI1E,MAO1E,GAAKnM,KAAKmzN,OAAO2/M,sBAAsBuQ,KAAiBqqF,GAAM7yf,GAAS,QAAShK,EAAI1E,KAAM,CAC3F,IAAI463B,EAAYls3B,GAAS,QAAShK,EAAI1E,IAEtC,QAAgB9I,KADhBmlD,EAAUxoD,KAAK414B,aAAa7O,EAAW/m4B,KAAKou4B,eAAe7knB,GAASpzP,EAAI+T,EAAMzd,IAE1E,KAER,MAbqF,CACjF,IAAI4r3B,EAAWx93B,GAAS0uQ,EAAOpiO,MAAOt2C,EAAI1E,IAE1C,QAAgB9I,KADhBmlD,EAAUxoD,KAAK414B,aAAayC,EAAUr44B,KAAKou4B,eAAe7knB,GAASpzP,EAAI+T,EAAMzd,IAEzE,KAER,CAQJ,CACA,OAAO+7B,CACX,EACAm60B,EAAShy3B,UAAUs93B,gBAAkB,SAAU382B,GAC3C,IAAI2x2B,EAAajj4B,KAAKyiC,SAASnR,GAC3Bgn3B,EAAUt44B,KAAKu44B,aAAatV,GAChCjj4B,KAAKgj4B,SAAW,GAChB,IAAK,IAAI723B,EAAI,EAAGwjD,EAAM2o1B,EAAQl14B,OAAQ+I,EAAIwjD,EAAKxjD,IAAK,CAChD,IAAIgqB,EAAKmi3B,EAAQns4B,GAAGnM,KAAKmzN,OAAOh9L,IAAIrf,WAChCqf,IAAwC,IAAlCn2B,KAAK+i4B,YAAYp43B,QAAQwrB,IAC/Bn2B,KAAK+i4B,YAAY323B,KAAK+pB,GAE1B,IAAI4z2B,EAAQ/p4B,KAAKgnS,WAAW7wQ,GACxB4z2B,IACAA,EAAM/02B,aAAa,gBAAiB,QACpCwzP,GAAS,CAACuhnB,GAAQ5H,KAE1B,CACJ,EACAQ,EAAShy3B,UAAU6n4B,eAAiB,SAAUln3B,GAE1C,IADA,IAAImn3B,EAAWz44B,KAAKyiC,SAASnR,GACpBnlB,EAAI,EAAGwjD,EAAM8o1B,EAASr14B,OAAQ+I,EAAIwjD,EAAKxjD,IAAK,CACjD,IAAI493B,EAAQ/p4B,KAAKgnS,WAAWyxmB,EAASts4B,IACjCgqB,EAAKsi3B,EAASts4B,GACdgqB,IAAwC,IAAlCn2B,KAAK+i4B,YAAYp43B,QAAQwrB,IAC/Bn2B,KAAK+i4B,YAAYvt2B,OAAOx1B,KAAK+i4B,YAAYp43B,QAAQwrB,GAAK,GAEtD4z2B,IACAA,EAAMh12B,gBAAgB,iBACtBkzP,GAAY,CAAC8hnB,GAAQ5H,KAE7B,CACJ,EACAQ,EAAShy3B,UAAU8xB,SAAW,SAAUnR,GAEpC,IADA,IAAIgn3B,EAAU,GACLns4B,EAAI,EAAGwjD,EAAMr+B,EAAMluB,OAAQ+I,EAAIwjD,EAAKxjD,IAAK,CAC9C,IAAIgqB,OAAK,EACc,iBAAZ7E,EAAMnlB,GACbgqB,EAAM7E,EAAMnlB,GAAMmlB,EAAMnlB,GAAG2K,WAAa,KAEf,kBAAbwa,EAAMnlB,KAClBgqB,EAAK7E,EAAMnlB,GAAKmlB,EAAMnlB,GAAGmmB,aAAa,YAAYxb,WAAa,OAEvC,GAAxBwh4B,EAAQ3t4B,QAAQwrB,IAChBmi3B,EAAQls4B,KAAK+pB,EAErB,CACA,OAAOmi3B,CACX,EACA3V,EAAShy3B,UAAU4n4B,aAAe,SAAUro4B,GACxC,IAAI5Q,EAAQU,KACZ,GAAsB,IAAlBA,KAAK0lV,SACL1lV,KAAKgj4B,SAAWhj4B,KAAK6l4B,SAASz/3B,QAAO,SAAU8jC,GAC3C,OAA0F,IAAnFh6B,EAAKvF,QAAQu/B,EAAK5qC,EAAM6zN,OAAOh9L,IAAM+T,EAAK5qC,EAAM6zN,OAAOh9L,IAAIrf,WAAa,KACnF,SAEC,GAAsB,IAAlB9W,KAAK0lV,SACV,IAAK,IAAI5kU,EAAI,EAAGA,EAAI9gB,KAAK6l4B,SAASzi4B,OAAQ0d,IAAK,CAC3C,IAAIqV,EAAKn2B,KAAK6l4B,SAAS/k3B,GAAG9gB,KAAKmzN,OAAOh9L,IAAMn2B,KAAK6l4B,SAAS/k3B,GAAG9gB,KAAKmzN,OAAOh9L,IAAIrf,WAAa,MAChE,IAAtB5G,EAAKvF,QAAQwrB,IACbn2B,KAAKgj4B,SAAS523B,KAAKpM,KAAK6l4B,SAAS/k3B,IAErC,IAAIwm3B,EAAazs3B,GAAS7a,KAAKmzN,OAAOhsK,MAAMrwC,WAAY9W,KAAK6l4B,SAAS/k3B,IAClEwm3B,GACAtn4B,KAAK044B,kBAAkBpR,EAAYp33B,EAE3C,CAEJ,OAAOlQ,KAAKgj4B,QAChB,EACAL,EAAShy3B,UAAU+n4B,kBAAoB,SAAU7S,EAAUv02B,GACvD,IAAK,IAAIxQ,EAAI,EAAGA,EAAI+k3B,EAASzi4B,OAAQ0d,IAAK,CACtC,IAAIqV,EAAK0v2B,EAAS/k3B,GAAG9gB,KAAKmzN,OAAOh9L,IAAM0v2B,EAAS/k3B,GAAG9gB,KAAKmzN,OAAOh9L,IAAIrf,WAAa,MACrD,IAAvBwa,EAAM3mB,QAAQwrB,IACdn2B,KAAKgj4B,SAAS523B,KAAKy53B,EAAS/k3B,IAEhC,IAAIwm3B,EAAazs3B,GAAS7a,KAAKmzN,OAAOhsK,MAAMrwC,WAAY+u3B,EAAS/k3B,IAC7Dwm3B,GACAtn4B,KAAK044B,kBAAkBpR,EAAYh22B,EAE3C,CACJ,EACAqx2B,EAAShy3B,UAAUk03B,cAAgB,WAC/B,IAAIl7iB,EAAMl0P,GAAQz1F,KAAKmV,QAAS,aAChCnV,KAAK+n4B,WAAar6X,GAAM/jL,GAAO,GArzH3B,SAszHR,EACAg5iB,EAAShy3B,UAAUgo4B,kBAAoB,WACnC344B,KAAK444B,YAAY544B,KAAK6l4B,SAAU7l4B,KAAKmzN,OAAQ,CAAC,WAAY,aAE1D,IADA,IAAI0lrB,EAAW744B,KAAKy/jB,cACXpgiB,EAAI,EAAGy52B,EAASD,EAASz14B,OAAQi8B,EAAIy52B,EAAQz52B,IAClDr/B,KAAKkq4B,YAAYlq4B,KAAK6l4B,SAAU7l4B,KAAKmzN,OAAQ0lrB,EAASx52B,GAAI,YAAY,GAG1E,IADA,IAAI052B,EAAS/44B,KAAK+k4B,cACTjk3B,EAAI,EAAGk43B,EAAUD,EAAO314B,OAAQ0d,EAAIk43B,EAASl43B,IAClD9gB,KAAKkq4B,YAAYlq4B,KAAK6l4B,SAAU7l4B,KAAKmzN,OAAQ4lrB,EAAOj43B,GAAI,YAAY,GAExE,GAAI9gB,KAAK6sb,aAAc,CACnB7sb,KAAK444B,YAAY544B,KAAK6l4B,SAAU7l4B,KAAKmzN,OAAQ,CAAC,cAC9C,IAAI8lrB,EAASj54B,KAAK8k4B,aACT/j3B,EAAI,EAAb,IAAgBi43B,EAAUC,EAAO714B,OAAQ2d,EAAIi43B,EAASj43B,IAClD/gB,KAAKkq4B,YAAYlq4B,KAAK6l4B,SAAU7l4B,KAAKmzN,OAAQ8lrB,EAAOl43B,GAAI,aAAa,EAE7E,CACJ,EACA4h3B,EAAShy3B,UAAUio4B,YAAc,SAAU/n4B,EAAK04Q,EAAQv4L,GACpD,IAAI08a,GAAM78f,KAAQ68f,GAAMnkP,GAGxB,IAAK,IAAIp9Q,EAAI,EAAGmi4B,EAASz93B,EAAIzN,OAAQ+I,EAAImi4B,EAAQni4B,IAAK,CAClD,IAAK,IAAI6D,EAAI,EAAGA,EAAIghF,EAAM5tF,OAAQ4M,IAAK,CACnC,IAAIovG,EAAQp/G,KAAKk54B,cAAc3vnB,EAAQv4L,EAAMhhF,IACxC09f,GAAM78f,EAAI1E,GAAGizG,YACPvuG,EAAI1E,GAAGizG,EAEtB,CAC4B,kBAAjBmqK,EAAOpiO,OAAuBumd,GAAM7yf,GAAS0uQ,EAAOpiO,MAAOt2C,EAAI1E,KAGjEnM,KAAKmzN,OAAO2/M,sBAAsBuQ,KAAgBqqF,GAAM7yf,GAAS,QAAShK,EAAI1E,MACnFnM,KAAK444B,YAAY/93B,GAAS,QAAShK,EAAI1E,IAAKnM,KAAKou4B,eAAe7knB,GAASv4L,GAHzEhxF,KAAK444B,YAAY/93B,GAAS0uQ,EAAOpiO,MAAOt2C,EAAI1E,IAAKnM,KAAKou4B,eAAe7knB,GAASv4L,EAKtF,CACJ,EACA2xyB,EAAShy3B,UAAUuo4B,cAAgB,SAAU3vnB,EAAQyrJ,GACjD,OAAQA,GACJ,IAAK,WACD,OAAQ04F,GAAMnkP,EAAO76Q,UAA8B,WAAlB66Q,EAAO76Q,SAC5C,IAAK,WACD,OAAQg/f,GAAMnkP,EAAOy2J,UAA8B,WAAlBz2J,EAAOy2J,SAC5C,IAAK,YACD,OAAQ0tF,GAAMnkP,EAAOyiK,WAAgC,YAAnBziK,EAAOyiK,UAC7C,IAAK,cACD,OAAQ0hF,GAAMnkP,EAAOljO,aAAoC,cAArBkjO,EAAOljO,YAC/C,QACI,OAAO2uX,EAEnB,EACA2td,EAAShy3B,UAAUu53B,YAAc,SAAUr53B,EAAK04Q,EAAQpzP,EAAI7pB,EAAK1K,GAE7D,IAAI8rgB,GAAMv3e,GAGL,GAAsB,IAAlBn2B,KAAK0lV,SAAgB,CAC1B,IAAImyjB,EAAQ734B,KAAK8l4B,eAAiBp11B,WAAWva,GAAMA,EAC/C25b,EAAa,IAAIzsC,GAAYrjb,KAAK6l4B,UAAUpxd,cAAa,IAAIjB,IAAQ3qX,MAAM0gO,EAAOpzP,GAAI,QAAS0h3B,GAAO,IAC1Gn3vB,GAAS1gJ,KAAKk54B,cAAc3vnB,EAAQj9Q,GAAM1K,EAAOkud,EAAW,GAChE,MAEI9vd,KAAKu14B,iBAAiB1k4B,EAAK04Q,EAAQpzP,EAAI7pB,EAAK1K,EAEpD,EACA+g4B,EAAShy3B,UAAU4k4B,iBAAmB,SAAU1k4B,EAAK04Q,EAAQpzP,EAAI7pB,EAAK1K,EAAOuxB,GACzE,IAAImi3B,EACJ,GAAI5nY,GAAM78f,GACN,OAAOyk4B,EAEX,IAAK,IAAInp4B,EAAI,EAAGmi4B,EAASz93B,EAAIzN,OAAQ+I,EAAImi4B,EAAQni4B,IAAK,CAClD,IAAIu73B,EAAS7s3B,GAAS0uQ,EAAOpzP,GAAItlB,EAAI1E,IACrC,GAAI0E,EAAI1E,IAAMu73B,GAAUA,EAAO5w3B,aAAeqf,EAQ1C,OAPIhD,EACAmi3B,EAAczk4B,EAAI2kB,OAAOrpB,EAAG,IAG5Bu0I,GAAS1gJ,KAAKk54B,cAAc3vnB,EAAQj9Q,GAAM1K,EAAOiP,EAAI1E,IACrDmp4B,EAAc,IAEXA,EAEN,GAA4B,kBAAjB/rnB,EAAOpiO,OAAuBumd,GAAM7yf,GAAS0uQ,EAAOpiO,MAAOt2C,EAAI1E,MAO1E,GAAInM,KAAKmzN,OAAO2/M,sBAAsBuQ,KAAgBqqF,GAAM7yf,GAAS,QAAShK,EAAI1E,KAAM,CACzF,IAAIm73B,EAAazs3B,GAAS,QAAShK,EAAI1E,IAEvC,QAAoB9I,KADpBiy4B,EAAct14B,KAAKu14B,iBAAiBjO,EAAYtn4B,KAAKou4B,eAAe7knB,GAASpzP,EAAI7pB,EAAK1K,EAAOuxB,IAEzF,KAER,MAbqF,CACjF,IAAI4z2B,EAAYls3B,GAAS0uQ,EAAOpiO,MAAOt2C,EAAI1E,IAE3C,QAAoB9I,KADpBiy4B,EAAct14B,KAAKu14B,iBAAiBxO,EAAW/m4B,KAAKou4B,eAAe7knB,GAASpzP,EAAI7pB,EAAK1K,EAAOuxB,IAExF,KAER,CAQJ,CACA,OAAOmi3B,CACX,EACA3S,EAAShy3B,UAAUgoZ,aAAe,SAAUzjV,EAAQhlE,GAEhD,GADAlQ,KAAKs6V,uBACU,aAAXplR,EAAuB,CAEvB,IADA,IAAIozzB,EAAW,GACNn83B,EAAI,EAAGA,EAAI+D,EAAK9M,OAAQ+I,IAC7Bm83B,EAASl83B,KAAKpM,KAAK23jB,QAAQ33jB,KAAKgnS,WAAW0mO,GAAMx9f,EAAK/D,GAAGnM,KAAKmzN,OAAOh9L,KAAOtb,GAAS7a,KAAKmzN,OAAOh9L,GAAIjmB,EAAK/D,IAAI2K,WAAa,QAE/H5G,EAAOo43B,CACX,CACA,IAAI1jjB,EAAY,CAAE16S,KAAMlqC,KAAK6l4B,SAAU3wzB,OAAQA,EAAQozzB,SAAUp43B,GACjElQ,KAAKsgS,QAAQ,oBAAqBskD,EACtC,EACA+9iB,EAAShy3B,UAAUqh4B,gBAAkB,SAAUtC,GAC3C72pB,GAAazlN,IAAIs82B,EAAQ,OAAQ1v4B,KAAKmy4B,cAAeny4B,KACzD,EACA2i4B,EAAShy3B,UAAUw03B,kBAAoB,SAAUwN,GAC7C,IAAIrz4B,EAAQU,KACZ,GAAI2y4B,IAAW3y4B,KAAK4O,SAAU,CAC1B,IAAIi6b,EAAU7oc,KACdA,KAAKm54B,aAAe,IAAIjziB,GAAMlmW,KAAKmV,QAAS,CACxCuzE,IAAK,SAAUroF,GACPf,EAAM854B,eAAe/44B,IAAqB,IAAfA,EAAE+lW,WAC7B/lW,EAAEmnW,cAAcn5V,iBAChBw6b,EAAQ6oc,eAAerx4B,EAAEmnW,eAEjC,GAER,MAEQxnW,KAAKm54B,cACLn54B,KAAKm54B,aAAa/hwB,SAG9B,EACAurvB,EAAShy3B,UAAU0o4B,eAAiB,SAAU1G,GAC1C,GAAIA,EAAQ,CACR,IAAI2G,EAAUt54B,KACdA,KAAKu54B,cAAgB,IAAIrziB,GAAMlmW,KAAKmV,QAAS,CACzCuzE,IAAK,SAAUroF,GACXi54B,EAAQxuf,aAAazqZ,EACzB,GAER,MAEQL,KAAKu54B,eACLv54B,KAAKu54B,cAAcniwB,SAG/B,EACAurvB,EAAShy3B,UAAU6o4B,kBAAoB,SAAU7G,GAC7C,IAAIrz4B,EAAQU,KACZ,GAAI2y4B,EAAQ,CACR,IAAI8G,EAAUz54B,KACdA,KAAK054B,eAAiB,IAAIxziB,GAAMlmW,KAAKmV,QAAS,CAC1CuzE,IAAK,SAAUroF,IACiB,UAAvBf,EAAM4v4B,cAAoD,aAAvB5v4B,EAAM4v4B,cAA+B5v4B,EAAM854B,eAAe/44B,IAAqB,IAAfA,EAAE+lW,WACzE,IAA1B/lW,EAAEmnW,cAAcnvU,OACnBoh3B,EAAQrK,cAAc/u4B,EAE9B,GAER,MAEQL,KAAK054B,gBACL154B,KAAK054B,eAAetiwB,SAGhC,EACAurvB,EAAShy3B,UAAUysd,iBAAmB,SAAU/8d,GAC5CL,KAAKwj4B,iBAAkB,GACnBnj4B,EAAEw3B,UAAYx3B,EAAEu3B,UAChBv3B,EAAEgO,iBAEFhO,EAAEu3B,SAAW53B,KAAKwp0B,qBAClB3wlB,GAAazlN,IAAIpzB,KAAKmV,QAAS,cAAenV,KAAKks4B,mBAAoBls4B,KAE/E,EAEA2i4B,EAAShy3B,UAAUu73B,mBAAqB,SAAU7r4B,GAC9CA,EAAEgO,gBACN,EACAs03B,EAAShy3B,UAAUozV,WAAa,WAC5BlrH,GAAazlN,IAAIpzB,KAAKmV,QAAS,YAAanV,KAAKo9d,iBAAkBp9d,MACnEA,KAAKq54B,gBAAe,GACM,SAAtBr54B,KAAKkv4B,cACLlv4B,KAAKw54B,mBAAkB,GAE3B3gqB,GAAazlN,IAAIpzB,KAAKmV,QAAS,YAAanV,KAAK0/b,YAAa1/b,MAC9D64O,GAAazlN,IAAIpzB,KAAKmV,QAAS,WAAYnV,KAAKoF,aAAcpF,MAC9DA,KAAKsnZ,eAAiB,IAAIhjD,GAAetkW,KAAKmV,QAAS,CACnD+vV,UAAWllW,KAAKu/b,iBAAiB1/b,KAAKG,MACtC4kW,WAAY5kW,KAAK4kW,WACjBruU,UAAW,WAEnB,EACAos2B,EAAShy3B,UAAU65b,aAAe,WAC9B3xN,GAAa1lN,OAAOnzB,KAAKmV,QAAS,YAAanV,KAAKo9d,kBACpDp9d,KAAKq54B,gBAAe,GACpBr54B,KAAKw54B,mBAAkB,GACvB3gqB,GAAa1lN,OAAOnzB,KAAKmV,QAAS,YAAanV,KAAK0/b,aACpD7mN,GAAa1lN,OAAOnzB,KAAKmV,QAAS,WAAYnV,KAAKoF,cAC9CpF,KAAK4O,UACN5O,KAAKsnZ,eAAelwQ,SAE5B,EACAurvB,EAAShy3B,UAAUkqqB,QAAU,SAAU1lqB,EAAS5E,GAG5C,IAFA,IAAI+W,EAAU,GACVpa,EAAKiI,EAAQqf,YACTk5e,GAAMxggB,IACNunB,GAAQvnB,EAAIqD,IACZ+W,EAAQlb,KAAKc,GAEjBA,EAAKA,EAAGsnB,WAEZ,OAAOlN,CACX,EACAq72B,EAAShy3B,UAAUyo4B,eAAiB,SAAU/44B,GAC1C,IACIs54B,EADAtx4B,EAAShI,EAAEmnW,cAAcn/V,OAU7B,OARIA,GAAUhI,EAAE+lW,WACO,IAAf/lW,EAAE+lW,SACFpmW,KAAK454B,SAAWnkzB,GAAQptF,EAAQ,IAAM243B,KAElB,IAAf3g4B,EAAE+lW,WACPuziB,EAAYlkzB,GAAQptF,EAAQ,IAAM243B,OAGlChh4B,KAAK454B,WAAaD,CAC9B,EACAhX,EAAShy3B,UAAUqj4B,aAAe,SAAU7r2B,EAAQgf,GAEhD,IADA,IAAIj3C,EAAOi3C,EAAM3yB,YACTk5e,GAAMx9f,IAAO,CACjB,GAAIA,IAASi4B,EACT,OAAO,EAEXj4B,EAAOA,EAAKskB,UAChB,CACA,OAAO,CACX,EACAmu2B,EAAShy3B,UAAUgha,YAAc,SAAUx8Z,GACvCqzQ,GAAS,CAACrzQ,GAAUgs3B,KACpBt0d,GAAc,CACVxka,OAAQ8M,EACRqJ,MAAOyoU,GAAQM,SAAW,GAAK,IAChCvnV,KAAKc,eACR6wa,GAAYx8Z,EAChB,EACAwt3B,EAAShy3B,UAAU+ha,YAAc,SAAUv9Z,GACvCu9Z,GAAYv9Z,GACZA,EAAQ+zB,UAAY,GACpB++O,GAAY,CAAC9yQ,GAAUgs3B,IAC3B,EACAwB,EAAShy3B,UAAUkp4B,gBAAkB,SAAUvo3B,GAC3CA,EAAQmf,KAAKuL,MAAMvL,KAAK+mF,UAAUlmG,IAClCtxB,KAAK854B,WAAW954B,KAAK8k4B,cACrB9k4B,KAAK+54B,iBAAiBzo3B,GAClBA,EAAMluB,OAAS,GACfpD,KAAK26nB,SAASrpmB,EAEtB,EAIAqx2B,EAAShy3B,UAAUq53B,oBAAsB,SAAU953B,GAC/C,GAAsB,IAAlBlQ,KAAK0lV,SAAgB,CACrB,IAAIn8D,EAASvpR,KAAKmzN,OACd28P,EAAa,IAAIzsC,GAAYrjb,KAAK6l4B,UAAUpxd,cAAa,IAAIjB,IAAQ3qX,MAAM0gO,EAAOpzP,GAAI,QAASjmB,GAAM,IACzG,GAAI4/c,EAAW,KACX9vd,KAAKg64B,mBAAmBlqb,EAAY5/c,EAAM4/c,EAAW,IACjD9vd,KAAK4m4B,WAAW,CAIhB,IAHA,IAAIxrf,EAAW00E,EAAW,GAAG9vd,KAAKmzN,OAAOkvZ,UAAYvyJ,EAAW,GAAG9vd,KAAKmzN,OAAOkvZ,UAAUvrmB,WAAa,KAClGqyB,EAAanpC,KAAKqjC,cAAcrjC,KAAK6l4B,SAAUzqf,GAC/CxwX,EAAQ,EACH+kC,EAAM,EAAGA,EAAMxmB,EAAW/lC,OAAQusD,IAAO,CAC9C,IAAIoxjB,EAAU53kB,EAAWwmB,GAAK3vD,KAAKmzN,OAAOh9L,IAAIrf,YACF,IAAxC9W,KAAK8k4B,aAAan63B,QAAQo2mB,IAC1Bn2lB,GAER,CACIA,IAAUue,EAAW/lC,SAAmD,IAAzCpD,KAAK8k4B,aAAan63B,QAAQywY,IAAoBA,GAC7Ep7Y,KAAK8k4B,aAAa143B,KAAKgvY,EAE/B,CAER,MACK,GAAsB,IAAlBp7Y,KAAK0lV,SACV,IAAK,IAAIzvU,EAAI,EAAGA,EAAIjW,KAAK6l4B,SAASzi4B,OAAQ6S,IAAK,CAE3C,IADYjW,KAAK6l4B,SAAS5v3B,GAAGjW,KAAKmzN,OAAOh9L,IAAMn2B,KAAK6l4B,SAAS5v3B,GAAGjW,KAAKmzN,OAAOh9L,IAAIrf,WAAa,MAC/E5G,IAA6C,IAArClQ,KAAK8k4B,aAAan63B,QAAQuF,GAAc,CAC1DlQ,KAAK8k4B,aAAa143B,KAAK8D,GACvB,KACJ,CACA,IAAIo33B,EAAazs3B,GAAS7a,KAAKmzN,OAAOhsK,MAAMrwC,WAAY9W,KAAK6l4B,SAAS5v3B,IAClEqx3B,GACAtn4B,KAAKg64B,mBAAmB1S,EAAYp33B,EAAMlQ,KAAK6l4B,SAAS5v3B,GAEhE,CAER,EAIA0s3B,EAAShy3B,UAAUqp4B,mBAAqB,SAAU1S,EAAYp33B,EAAM213B,GAChE,IAAI+B,EACAh92B,EAAQ,EACZ,GAAsB,IAAlB5qB,KAAK0lV,SAAgB,CACjBmgjB,IACA+B,EAAgB/B,EAAS7l4B,KAAKmzN,OAAOh9L,IAAM0v2B,EAAS7l4B,KAAKmzN,OAAOh9L,IAAIrf,WAAa,MAErF,IAAK,IAAI2V,EAAQ,EAAGA,EAAQ662B,EAAWlk4B,OAAQqpB,IAAS,CACpD,IAAI8hkB,EAAY+4S,EAAW762B,GAAOzsB,KAAKmzN,OAAOh9L,IAAMmx2B,EAAW762B,GAAOzsB,KAAKmzN,OAAOh9L,IAAIrf,WAAa,KAC/F+u3B,GAAY+B,GAAiB5n4B,KAAK4m4B,YACgB,IAA9C5m4B,KAAK8k4B,aAAan63B,QAAQi93B,KAAmE,IAA1C5n4B,KAAK8k4B,aAAan63B,QAAQ4jlB,IAC7EvulB,KAAK8k4B,aAAa143B,KAAKmilB,GAG3BA,IAAcr+kB,IAA6C,IAArClQ,KAAK8k4B,aAAan63B,QAAQuF,IAChDlQ,KAAK8k4B,aAAa143B,KAAK8D,IAEvB433B,EAAgB9n4B,KAAKqjC,cAAcrjC,KAAK6l4B,SAAUt3S,KAElDvulB,KAAKg64B,mBAAmBlS,EAAe533B,EAAM213B,EAErD,CACJ,KACK,CACGA,IACA+B,EAAgB/B,EAAS7l4B,KAAKmzN,OAAOh9L,IAAM0v2B,EAAS7l4B,KAAKmzN,OAAOh9L,IAAIrf,WAAa,IAErF,IAAS2V,EAAQ,EAAGA,EAAQ662B,EAAWlk4B,OAAQqpB,IAAS,CACpD,IASIq72B,EATAD,EAAeP,EAAW762B,GAAOzsB,KAAKmzN,OAAOh9L,IAAMmx2B,EAAW762B,GAAOzsB,KAAKmzN,OAAOh9L,IAAIrf,WAAa,GAClG+u3B,GAAY+B,GAAiB5n4B,KAAK4m4B,YACgB,IAA9C5m4B,KAAK8k4B,aAAan63B,QAAQi93B,KAAsE,IAA7C5n4B,KAAK8k4B,aAAan63B,QAAQk93B,IAC7E7n4B,KAAK8k4B,aAAa143B,KAAKy73B,GAG3BA,IAAiB333B,IAA6C,IAArClQ,KAAK8k4B,aAAan63B,QAAQuF,IACnDlQ,KAAK8k4B,aAAa143B,KAAK8D,IAEvB433B,EAAgBjt3B,GAAS7a,KAAKmzN,OAAOhsK,MAAMrwC,WAAYww3B,EAAW762B,MAElEzsB,KAAKg64B,mBAAmBlS,EAAe533B,EAAMo33B,EAAW762B,KAEX,IAA7CzsB,KAAK8k4B,aAAan63B,QAAQk93B,IAAwB7n4B,KAAK4m4B,WACvDh82B,IAEAA,IAAU082B,EAAWlk4B,SAAwD,IAA9CpD,KAAK8k4B,aAAan63B,QAAQi93B,IAAyB5n4B,KAAK4m4B,WACvF5m4B,KAAK8k4B,aAAa143B,KAAKw73B,EAE/B,CACJ,CACJ,EACAjF,EAAShy3B,UAAUop4B,iBAAmB,SAAUzo3B,GAC5C,IAAK,IAAInlB,EAAI,EAAGA,EAAImlB,EAAMluB,OAAQ+I,IAC9BnM,KAAKgq4B,oBAAoB142B,EAAMnlB,GAEvC,EACAw23B,EAAShy3B,UAAUslY,eAAiB,SAAU9/W,EAAI2kD,EAASm/zB,EAAgBC,GACvE,GAAsB,IAAlBl64B,KAAK0lV,SAAgB,CACrB,IAAIxuS,EAAMl3C,KAAKy14B,WAAWz14B,KAAK6l4B,SAAU7l4B,KAAKmzN,OAAQh9L,GAEtD,GADAn2B,KAAK6l4B,SAASrw2B,OAAO0hB,EAAK,EAAG4jC,GACzBm/zB,EAAgB,CAChBj64B,KAAK214B,iBAAiBx/2B,GACtB,IAAK,IAAInmB,EAAI,EAAGA,EAAIkq4B,EAAW924B,OAAQ4M,IACnChQ,KAAK6l4B,SAASrw2B,OAAO0hB,EAAK,EAAGgj2B,EAAWlq4B,IACxCknC,GAER,CACAl3C,KAAK+/tB,YAAc//tB,KAAKmm4B,eAAenm4B,KAAK6l4B,SAAU7l4B,KAAKmzN,OAAOkvZ,SACtE,MAEIrinB,KAAKm64B,oBAAoBn64B,KAAK6l4B,SAAU7l4B,KAAKmzN,OAAQh9L,EAAI,CAAC2kD,QAAUz3E,EAE5E,EACAs/3B,EAAShy3B,UAAUwp4B,oBAAsB,SAAUtU,EAAUt8mB,EAAQ6wnB,EAAQt/zB,EAASruD,GAElF,IADA,IAAIyvb,EACK/vc,EAAI,EAAGmi4B,EAASzI,EAASzi4B,OAAQ+I,EAAImi4B,EAAQni4B,IAAK,CACvD,IAAIu73B,EAAS7s3B,GAAS0uQ,EAAOpzP,GAAI0v2B,EAAS153B,IAC1C,GAAI053B,EAAS153B,IAAMu73B,GAAUA,EAAO5w3B,aAAesj4B,EAE/C,OADAvU,EAAS153B,GAAK2uE,EAAQ,IACf,EAEN,GAA4B,kBAAjByuM,EAAOpiO,OAAuBumd,GAAM7yf,GAAS0uQ,EAAOpiO,MAAO0+0B,EAAS153B,MAO/E,GAAInM,KAAKmzN,OAAO2/M,sBAAsBuQ,KAAgBqqF,GAAM7yf,GAAS,QAASgr3B,EAAS153B,KAAM,CAC9F,IAAI463B,EAAYls3B,GAAS,QAASgr3B,EAAS153B,IAE3C,QAAc9I,KADd64c,EAAQl8c,KAAKm64B,oBAAoBpT,EAAW/m4B,KAAKou4B,eAAe7knB,GAAS6wnB,EAAQt/zB,EAASruD,IAEtF,KAER,MAb0F,CACtF,IAAI4r3B,EAAWx93B,GAAS0uQ,EAAOpiO,MAAO0+0B,EAAS153B,IAE/C,QAAc9I,KADd64c,EAAQl8c,KAAKm64B,oBAAoB9B,EAAUr44B,KAAKou4B,eAAe7knB,GAAS6wnB,EAAQt/zB,EAASruD,IAErF,KAER,CAQJ,CACA,OAAOyvb,CACX,EACAymb,EAAShy3B,UAAU0p4B,aAAe,WAC9Br64B,KAAKol4B,eAAepl4B,KAAKup0B,kBACzBvp0B,KAAKml4B,kBAAkBnl4B,KAAKosoB,cACvBpsoB,KAAK4O,UAKN5O,KAAKwqc,eACLxqc,KAAKmoiB,WACLnoiB,KAAK0l4B,iBANL1l4B,KAAK+jW,aACL/jW,KAAKyhZ,YAOb,EACAkhf,EAAShy3B,UAAU2h4B,cAAgB,SAAU36a,EAAWrmc,EAAOjpB,EAAQ+p4B,EAASv5U,EAASpsiB,EAAOgsY,GAC5F,IAKI+6M,EALAl0mB,EAAQU,KACRkqC,EAAOlqC,KAAKmzN,OAAO2/M,WACnBwne,EAAa,GACbtrtB,EAAQhvL,KAAK+hb,SAAS/hb,KAAKmzN,QAC3B7mN,EAAMtM,KAAKmzN,OAAOh9L,GAElB89U,EAAU,CACVglE,aAAc,GACdD,eAAgB,GAChBG,eAAgB,IAEhBohe,EAAU,GACVjp3B,EACAip3B,EAAUv64B,KAAKyiC,SAASnR,GAEnBjpB,IACgB,iBAAVA,EACPky4B,EAAQ,GAAKly4B,EAAOyO,WAEG,kBAAXzO,IACZky4B,EAAQ,GAAKly4B,EAAOiqB,aAAa,YAAYxb,aAGrD,IAAK,IAAI3K,EAAI,EAAGwjD,EAAM4q1B,EAAQn34B,OAAQ+I,EAAIwjD,EAAKxjD,IAAK,CAEhD,IAAI4/T,GADQ/rU,KAAKgnS,WAAWuzmB,EAAQpu4B,KACpC,CAGA,IAAImp4B,EAAct14B,KAAKgu4B,cAAcuM,EAAQpu4B,IAC7Cmu4B,EAAWlu4B,KAAKkp4B,EAFhB,CAGJ,CACA,OAAQ39a,GACJ,IAAK,SACmB,GAAhBrmc,EAAMluB,OACNowmB,EAAOtpkB,EAAK/W,OAAO7mB,EAAKgu4B,EAAW,GAAItrtB,EAAM6kP,UAAW7kP,IAGxDilL,EAAQ+kE,eAAiBshe,EACzB9mS,EAAOtpkB,EAAK2iT,YAAYonB,EAAS3nW,EAAK0iL,EAAM6kP,UAAW7kP,IAE3Dwkb,EAAKv4e,MAAK,SAAU56H,GAAK,OAAOf,EAAMk74B,cAAcD,EAAU,IACzDn+wB,OAAM,SAAU/7H,GAAK,OAAOf,EAAM88nB,UAAU/7nB,EAAI,IACrD,MACJ,IAAK,SACDi64B,EAAW,GAAGt64B,KAAKmzN,OAAOlzL,MAAQmy2B,GAClC5+R,EAAOtpkB,EAAKi/C,OAAO78E,EAAKgu4B,EAAW,GAAItrtB,EAAM6kP,UAAW7kP,IACnD/zD,MAAK,SAAU56H,GAAK,OAAOf,EAAMm74B,WAAWpy4B,EAAQ+p4B,EAAS35e,EAAU,IACvEr8R,OAAM,SAAU/7H,GAAK,OAAOf,EAAM88nB,UAAU/7nB,EAAGgI,EAAQowZ,EAAU,IACtE,MACJ,IAAK,SACD,GAAsB,GAAlBogK,EAAQz1jB,OACRowmB,EAAOtpkB,EAAKgvY,OAAO2/I,EAAQ,GAAI7pY,EAAM6kP,UAAW7kP,OAE/C,CACD,IAAI7hJ,EAAM,GACV,IAAShhC,EAAI,EAAGwjD,EAAMkpgB,EAAQz1jB,OAAQ+I,EAAIwjD,EAAKxjD,IAC3CghC,EAAI/gC,KAAKysjB,EAAQ1sjB,IAErB8nW,EAAQglE,aAAe9rY,EACvBqmkB,EAAOtpkB,EAAK2iT,YAAYonB,EAAS3nW,EAAK0iL,EAAM6kP,UAAW7kP,EAC3D,CACAwkb,EAAKv4e,MAAK,SAAU56H,GAChB,IAAI0z4B,EAASz04B,EAAM0nS,WAAW3+R,GAC9B/I,EAAMo74B,WAAW7hV,EAASk7U,EAAQtn3B,GAClCntB,EAAMuj4B,eAAgB,CAC1B,IAAGzmwB,OAAM,SAAU/7H,GAAK,OAAOf,EAAM88nB,UAAU/7nB,EAAI,IAG/D,EACAsi4B,EAAShy3B,UAAU6p4B,cAAgB,SAAUlp3B,GAEzC,IADA,IAAIg32B,EAAW,GACNn83B,EAAI,EAAGwjD,EAAMr+B,EAAMluB,OAAQ+I,EAAIwjD,EAAKxjD,IAAK,CAC9C,IAAI493B,EAAQ/p4B,KAAKgnS,WAAW11Q,EAAMnlB,IAClCm83B,EAASl83B,KAAKpM,KAAK23jB,QAAQoyU,IACvBr8X,GAAMq8X,IAGV/p4B,KAAKy34B,WAAW1N,EACpB,CACA/p4B,KAAKi14B,iBACiB,IAAlBj14B,KAAK0lV,WACL1lV,KAAK+/tB,YAAc//tB,KAAKmm4B,eAAenm4B,KAAK6l4B,SAAU7l4B,KAAKmzN,OAAOkvZ,WAEtErinB,KAAK24Z,aAAa,aAAc2ve,EACpC,EACA3F,EAAShy3B,UAAU8p4B,WAAa,SAAUpy4B,EAAQ+p4B,EAAS35e,GACvD,IAAIsxe,EAAQ/p4B,KAAKgnS,WAAW3+R,GACxBgq4B,EAAS7njB,GAAO,IAAMy2iB,IAAU8I,GACpC/p4B,KAAKuy4B,cAAcxI,EAAOsI,EAAQD,EAAS35e,EAC/C,EACAkqe,EAAShy3B,UAAU+p4B,WAAa,SAAUpp3B,EAAOyi3B,EAAQtn3B,GACrD,IAAIko3B,EACA1znB,EAAO8ynB,EAASA,EAAOn62B,cAAc,IAAMiiP,KAAQ,KACnD71E,EAAQhmM,KACR+z4B,GAAU9ynB,GAAQA,EAAKiH,UAAUh1P,SAAS6t2B,MACC,OAA3CgT,EAAOn62B,cAAc,IAAMsn2B,KAC3Bl7rB,EAAMwgsB,iBAAiBuN,EAAQ,MAAM,WACjCY,EAASZ,EAAOn62B,cAAc,IAAMsn2B,KACpCl7rB,EAAMiysB,cAAc3m3B,EAAOyi3B,EAAQtn3B,GAAO,EAAMko3B,GAChD3usB,EAAM2yN,aAAa,WAAYrnY,EACnC,KAGAtxB,KAAKi44B,cAAc3m3B,EAAOyi3B,EAAQtn3B,GAAO,GACzCzsB,KAAK24Z,aAAa,WAAYrnY,GAEtC,EACAqx2B,EAAShy3B,UAAUyrnB,UAAY,SAAU/7nB,EAAGgI,EAAQowZ,GAC5CpwZ,GACArI,KAAK264B,mBAAmBty4B,EAAQowZ,GAEpCz4Z,KAAKsgS,QAAQ,gBAAiB,CAAErpR,MAAO5W,GAC3C,EACAsi4B,EAAShy3B,UAAUgq4B,mBAAqB,SAAUty4B,EAAQowZ,GACtD,IAAIsxe,EAAQ/p4B,KAAKgnS,WAAW3+R,GACxBgq4B,EAAS7njB,GAAO,IAAMy2iB,IAAU8I,GACpC/p4B,KAAKyy4B,WAAW1I,EAAOsI,EAAQry4B,KAAK2v4B,QAASl3e,EACjD,EACAkqe,EAAShy3B,UAAUiq4B,wBAA0B,SAAU1q4B,EAAMg6B,EAAM2w2B,GAC/D,IAAIv74B,EAAQU,KACRysB,EAAQyd,EAAKhhB,WAAU,SAAUghB,GAAQ,OAAOA,EAAK5qC,EAAM6zN,OAAOh9L,KAAO+T,EAAK5qC,EAAM6zN,OAAOh9L,IAAIrf,aAAe5G,CAAM,IACxH,IAAc,GAAVuc,EACA,IAAK,IAAItgB,EAAI,EAAGA,EAAI+9B,EAAK9mC,OAAQ+I,IAAK,CAClC,IAAIm73B,EAAazs3B,GAAS7a,KAAKmzN,OAAOhsK,MAAMrwC,WAAYozB,EAAK/9B,IAC7D,IAAKuhgB,GAAM45X,GAAa,CAEpB,GADA762B,EAAQ662B,EAAWp+2B,WAAU,SAAUghB,GAAQ,OAAOA,EAAK5qC,EAAM6zN,OAAOh9L,KAAO+T,EAAK5qC,EAAM6zN,OAAOh9L,IAAIrf,aAAe5G,CAAM,KAC5G,GAAVuc,EAGC,CACDou3B,EAAUzu4B,KAAK89B,EAAK/9B,GAAGnM,KAAKmzN,OAAOh9L,IAAIrf,YACvC9W,KAAK464B,wBAAwB1w2B,EAAK/9B,GAAGnM,KAAKmzN,OAAOh9L,IAAIrf,WAAY9W,KAAK6l4B,SAAUgV,GAChF,KACJ,CANI764B,KAAK464B,wBAAwB1q4B,EAAMo33B,EAAYuT,EAOvD,CACJ,CAEJ,OAAOA,CACX,EAQAlY,EAAShy3B,UAAU+7U,kBAAoB,SAAUiF,EAASC,GACtD,IAAK,IAAItiV,EAAK,EAAGgmC,EAAK71C,OAAO8E,KAAKotV,GAAUriV,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CAE9D,OADWgmC,EAAGhmC,IAEV,IAAK,mBACDtP,KAAKol4B,eAAepl4B,KAAKup0B,kBACzB,MACJ,IAAK,WACGvp0B,KAAKup0B,mBACLvp0B,KAAKq7gB,QAAQr8K,SAAWh/V,KAAKg/V,UAEjC,MACJ,IAAK,eACDh/V,KAAKml4B,kBAAkBnl4B,KAAKosoB,cAC5B,MACJ,IAAK,sBACD,GAAIpsoB,KAAKy/jB,cAAcr8jB,OAAS,EAAG,CAC/B,IAAI4o4B,EAAQhs4B,KAAKgnS,WAAWhnS,KAAKy/jB,cAAc,IAC/Cz/jB,KAAKijnB,UAAW,EAChBjjnB,KAAK4u4B,kBACL5u4B,KAAKw4jB,WAAWwzU,EAAO,MACvBhs4B,KAAKijnB,UAAW,CACpB,CACAjjnB,KAAK2l4B,eAAe3l4B,KAAKwp0B,qBACzBxp0B,KAAK824B,eAAe924B,KAAKwp0B,qBACzB,MACJ,IAAK,gBACDxp0B,KAAKul4B,cACLvl4B,KAAKir4B,aACL,MACJ,IAAK,eACGjr4B,KAAK6sb,eACL7sb,KAAK8k4B,aAAelziB,EAAQkziB,aAC5B9k4B,KAAK654B,gBAAgBlojB,EAAQmziB,eAEjC,MACJ,IAAK,YACG9k4B,KAAK6sb,eACL7sb,KAAK4m4B,UAAYj1iB,EAAQi1iB,UACzB5m4B,KAAKgp4B,uBAET,MACJ,IAAK,WACDhp4B,KAAK4+Y,YAAYhtD,EAAQge,SAAUje,EAAQie,UAC3C,MACJ,IAAK,YACD5vW,KAAK25Y,eACL,MACJ,IAAK,gBACD35Y,KAAKkya,WAAY,EACjBlya,KAAKisV,cAAc,CAAE84iB,cAAe,KAAM,GAC1C/k4B,KAAK8yqB,cACL9yqB,KAAK4k4B,gBAAiB,EACtB5k4B,KAAKisV,cAAc,CAAE84iB,cAAer3X,GAAM/7K,EAAQoziB,eAAiB,GAAKpziB,EAAQoziB,gBAAiB,GACjG/k4B,KAAKmr4B,iBACLnr4B,KAAK4k4B,gBAAiB,EACtB5k4B,KAAKkya,WAAY,EACjB,MACJ,IAAK,WACDlya,KAAKw54B,mBAAkB,GACvBx54B,KAAKkl4B,kBACqB,SAAtBll4B,KAAKkv4B,cAA4Blv4B,KAAK4O,UACtC5O,KAAKw54B,mBAAkB,GAE3B,MACJ,IAAK,WACDx54B,KAAKil4B,kBACLjl4B,KAAKq64B,eACL,MACJ,IAAK,SACDr64B,KAAKkya,WAAY,EACjBlya,KAAKmj4B,eAAgB,EACrBnj4B,KAAK29gB,eAAgB,EACrB39gB,KAAKyx4B,gBACLzx4B,KAAK29gB,eAAgB,EACrB39gB,KAAKkya,WAAY,EACjBlya,KAAKmj4B,eAAgB,EACrB,MACJ,IAAK,gBACDnj4B,KAAKql4B,WAAWrl4B,KAAKsl4B,eACrBtl4B,KAAK224B,WAAW324B,KAAKsl4B,eACjBtl4B,KAAKu8mB,gBACLv8mB,KAAKul4B,cACLvl4B,KAAKir4B,cAET,MACJ,IAAK,eACD,IAA0B,IAAtBjr4B,KAAKum4B,eAA2Bvm4B,KAAK864B,SAAU,CAG/C,IAFA,IAAIxp3B,EAAQtxB,KAAKmV,QAAQ3E,iBAAiB,MACtCrE,EAAI,EACDA,EAAImlB,EAAMluB,QACkC,SAA3CkuB,EAAMnlB,GAAGmmB,aAAa,kBACtBtyB,KAAKwm4B,iBAAiBl12B,EAAMnlB,IAAI,EAAM,MAAM,GAEhDA,IAEJnM,KAAK864B,UAAW,CACpB,CACA,MACJ,IAAK,eACD964B,KAAKoj4B,aAAc,EACnBpj4B,KAAKwl4B,eAAiBxl4B,KAAKo+e,iBAAiBp+e,KAAKqp0B,cACjDrp0B,KAAKyx4B,gBACL,MACJ,IAAK,gBACDzx4B,KAAK4u4B,kBACL5u4B,KAAKisV,cAAc,CAAEwzO,cAAe9tO,EAAQ8tO,gBAAiB,GAC7Dz/jB,KAAK8r4B,oBACL,MACJ,IAAK,eAGL,IAAK,YACD9r4B,KAAKyx4B,gBACL,MACJ,IAAK,mBACDzx4B,KAAKisV,cAAc,CAAEw4iB,iBAAkB9yiB,EAAQ8yiB,mBAAoB,GACnEzk4B,KAAK2lrB,eAAej4P,cAAgB/7F,EAAQ8yiB,iBAC5Czk4B,KAAKyx4B,gBAGjB,CACJ,EAIA9O,EAAShy3B,UAAUymI,QAAU,WACzBp3I,KAAKu6V,gBACLv6V,KAAKmV,QAAQ4f,gBAAgB,yBAC7B/0B,KAAKwqc,eACLxqc,KAAKml4B,mBAAkB,GAClBnl4B,KAAK4O,WACN5O,KAAKmoiB,WACLnoiB,KAAK0l4B,gBAET1l4B,KAAK4+Y,YAAY5+Y,KAAK4vW,SAAU,MAChC5vW,KAAKol4B,gBAAe,GACpBpl4B,KAAKql4B,YAAW,GACZrl4B,KAAKqwb,WAAarwb,KAAKqwb,UAAUx6J,eACjC71R,KAAKqwb,UAAUx6J,cAAc1gQ,YAAYn1B,KAAKqwb,WAElDvpY,EAAOn2C,UAAUymI,QAAQz3I,KAAKK,KAClC,EASA2i4B,EAAShy3B,UAAUoq4B,SAAW,SAAUzp3B,EAAOjpB,EAAQokB,EAAOgn3B,GAC1D,IAAI/lY,GAAMp8e,GAAV,CAGAA,EAAQmf,KAAKuL,MAAMvL,KAAK+mF,UAAUlmG,IAClC,IAAIyi3B,EAAS/z4B,KAAKgnS,WAAW3+R,GAE7B,GADArI,KAAK6i4B,cAAgB4Q,EACjBzz4B,KAAKmzN,OAAO2/M,sBAAsBuQ,GAC7Brjb,KAAKurrB,UAINvrrB,KAAK064B,WAAWpp3B,EAAOyi3B,EAAQtn3B,GAH/BzsB,KAAKsy4B,cAAc,SAAU,KAAMjq4B,EAAQ,KAAMipB,EAAO7E,EAAOzsB,KAAK6i4B,oBAMvE,GAAsB,IAAlB7i4B,KAAK0lV,SACV1lV,KAAKi44B,cAAc3m3B,EAAOyi3B,EAAQtn3B,OAEjC,CACD,GAAIsn3B,EACA/z4B,KAAKi44B,cAAc3m3B,EAAOyi3B,EAAQtn3B,OAEjC,CACD6E,EAAQtxB,KAAKsm4B,cAAch12B,GAC3B,IAAK,IAAInlB,EAAI,EAAGA,EAAImlB,EAAMluB,OAAQ+I,IAAK,CACnC,IAAIsxmB,EAAM5imB,GAAS7a,KAAKmzN,OAAOkvZ,SAAU/wlB,EAAMnlB,IAC/C4n4B,EAASt2R,EAAMz9mB,KAAKgnS,WAAWy2U,EAAI3mmB,YAAc2mmB,EACjDz9mB,KAAKi44B,cAAc,CAAC3m3B,EAAMnlB,IAAK4n4B,EAAQtn3B,EAC3C,CACJ,CACAzsB,KAAK+/tB,YAAc//tB,KAAKmm4B,eAAenm4B,KAAK6l4B,SAAU7l4B,KAAKmzN,OAAOkvZ,SACtE,CACArinB,KAAK2m4B,2BACD3m4B,KAAK6sb,cAAgBknd,GACrB/z4B,KAAKip4B,uBAAuB8K,GAE3B/z4B,KAAKmzN,OAAO2/M,sBAAsBuQ,MAAgB,IACnDrjb,KAAK6i4B,eAAgB,EACrB7i4B,KAAK24Z,aAAa,WAAYrnY,GAnClC,CAqCJ,EAOAqx2B,EAAShy3B,UAAUqq4B,UAAY,SAAU9q4B,GACrC,IAAIy5U,EAAM3pV,KAAKgnS,WAAW92R,GACtBw9f,GAAM/jL,IAAQ3pV,KAAK4O,UAGvB5O,KAAKgw4B,cAAcrmjB,EAAK,KAC5B,EAMAg5iB,EAAShy3B,UAAUgqnB,SAAW,SAAUrpmB,GAChCtxB,KAAK6sb,cACL7sb,KAAK4p4B,iBAAiBt42B,GAAO,EAErC,EASAqx2B,EAAShy3B,UAAUmiqB,YAAc,SAAUxhpB,EAAOygC,EAAOml1B,GAChDxpY,GAAMp8e,GAIHygC,EAAQ,EACR/xD,KAAKi34B,gBAAgBzsjB,GAAO,IAAM02iB,IAAYlh4B,KAAKmV,SAAU48C,EAAOml1B,GAGpEl34B,KAAKo34B,iBAAiBF,GAP1Bl34B,KAAK+34B,cAAczm3B,EAAOwv2B,KAAa,EAU/C,EAKA6B,EAAShy3B,UAAUsq4B,aAAe,SAAU3p3B,GACnCo8e,GAAMp8e,IACPtxB,KAAKiu4B,gBAAgB382B,EAE7B,EAKAqx2B,EAAShy3B,UAAUuq4B,YAAc,SAAU5p3B,GAClCo8e,GAAMp8e,IACPtxB,KAAKw44B,eAAeln3B,EAE5B,EAOAqx2B,EAAShy3B,UAAUwq4B,cAAgB,SAAUjr4B,GACzC,IAAIkr4B,EAAY,GAChB,GAAqB,GAAjBp74B,KAAK0lV,SAEL,IADA,IAAI4ijB,EAAWto4B,KAAKuq4B,YAAYr63B,GACN,GAAnBo43B,EAASll4B,SAAgBsqgB,GAAM46X,EAAS,GAAGto4B,KAAKmzN,OAAOkvZ,YAC1D+4R,EAAUhv4B,KAAKk83B,EAAS,GAAGto4B,KAAKmzN,OAAOkvZ,UAAUvrmB,YACjDwx3B,EAAWto4B,KAAKuq4B,YAAYjC,EAAS,GAAGto4B,KAAKmzN,OAAOkvZ,UAAUvrmB,iBAG5C,GAAjB9W,KAAK0lV,WACV01jB,EAAYp74B,KAAK464B,wBAAwB1q4B,EAAMlQ,KAAK6l4B,SAAUuV,GAAW5u4B,WAE7ExM,KAAK4yqB,UAAUwoO,GACf,IAAIrR,EAAQ/p4B,KAAKgnS,WAAW92R,GAC5B,IAAKw9f,GAAMq8X,GAAQ,CACf,GAAmB,iBAAR753B,EAAkB,CACzB,IAAI2qqB,EAAU76qB,KAAK66qB,QAAQkvN,EAAO,IAAM/I,KACxChh4B,KAAK4yqB,UAAUiI,EACnB,CACAzkpB,YAAW,WAAc2z2B,EAAMtoiB,eAAe,CAAEjlE,SAAU,UAAa,GAAG,IAC9E,CACJ,EASAmmmB,EAAShy3B,UAAUiiqB,UAAY,SAAUthpB,EAAOygC,EAAOml1B,GAC9CxpY,GAAMp8e,GAIHygC,EAAQ,EACR/xD,KAAKq34B,cAAc7sjB,GAAO,IAAM02iB,IAAYlh4B,KAAKmV,SAAU48C,EAAOml1B,GAGlEl34B,KAAKs34B,eAAeJ,GAPxBl34B,KAAK+34B,cAAczm3B,EAAOyv2B,KAAY,EAU9C,EAIA4B,EAAShy3B,UAAU0q4B,mBAAqB,WAEpC,OADiBr74B,KAAK8k4B,YAE1B,EAIAnC,EAAShy3B,UAAU2q4B,iBAAmB,WAElC,OADoBt74B,KAAK+i4B,WAE7B,EAKAJ,EAAShy3B,UAAUgnjB,QAAU,SAAUznjB,GACnC,IAAIy5U,EAAM3pV,KAAKgnS,WAAW92R,GAC1B,OAAOlQ,KAAKoq4B,YAAYzgjB,GAAK,EACjC,EAUAg5iB,EAAShy3B,UAAU453B,YAAc,SAAUr63B,GACvC,IAAIimB,EAAKn2B,KAAKwv4B,MAAMt/3B,GAEpB,GADAlQ,KAAK244B,oBACDjrY,GAAMv3e,GACN,OAAOn2B,KAAK6l4B,SAGZ,IAAI371B,EAAOlqC,KAAKgu4B,cAAc732B,GAC9B,OAAOu3e,GAAMxje,GAAQ,GAAK,CAACA,EAEnC,EAQAy41B,EAAShy3B,UAAU4q4B,UAAY,SAAUC,EAAanz4B,EAAQokB,EAAOgn3B,GACjE,IAAIM,EAAS/z4B,KAAKgnS,WAAW3+R,GACzBig4B,EAAW,GACf,IAAI56X,GAAMqmY,GAAV,CAGA,IAAK,IAAI5n4B,EAAI,EAAGA,EAAIqv4B,EAAYp44B,OAAQ+I,IAAK,CACzC,IAAI6m4B,EAAShz4B,KAAKgnS,WAAWw0mB,EAAYrv4B,IACzCm83B,EAASl83B,KAAKpM,KAAK23jB,QAAQq7U,IACvBtlY,GAAMslY,IAAWe,EAAOplnB,WAAWqknB,IAAWhz4B,KAAKg04B,aAAahB,EAAQe,KAG5E/z4B,KAAK6i4B,cAAgB4Q,EACrBzz4B,KAAKy04B,gBAAgBzB,EAAQe,EAAQ/z4B,KAAMysB,GAC/C,CACIzsB,KAAKmzN,OAAO2/M,sBAAsBuQ,MAAgB,IAClDrjb,KAAK6i4B,eAAgB,GAEzB7i4B,KAAK24Z,aAAa,YAAa2ve,EAb/B,CAcJ,EAMA3F,EAAShy3B,UAAU8q4B,YAAc,SAAUpz4B,EAAQyyE,GAC/C,IAAI4yb,GAAMrlgB,KAAWqlgB,GAAM5yb,GAA3B,CAGA,IAAI3kD,EACA8j3B,GAAiB,EACrB,GAAqB,GAAjBj64B,KAAK0lV,UAAiB5qQ,EAAQ13E,OAAS,EACvC624B,GAAiB,OAEhB,GAAqB,GAAjBj64B,KAAK0lV,UAAoC,IAAnB5qQ,EAAQ13E,OAAc,CAE5CsqgB,GADmB7yf,GAAS7a,KAAKmzN,OAAOhsK,MAAMrwC,WAAYgkE,EAAQ,OAEnEm/zB,GAAiB,EAEzB,CACA,IAKIyB,EACA1qT,EANA+4S,EAAQ/p4B,KAAKgnS,WAAW3+R,GAO5B,GANA8tB,EAAK4z2B,EAAQA,EAAMz32B,aAAa,YAAgBjqB,EAAUA,EAAOyO,WAAa,KAC9E9W,KAAKkk3B,YAAclk3B,KAAKgu4B,cAAc732B,GACtC2kD,EAAUrqC,KAAKuL,MAAMvL,KAAK+mF,UAAU18C,IAIf,GAAjB96E,KAAK0lV,UAAiBu0jB,EAAgB,CACtC,IAAK,IAAIn53B,EAAI,EAAGA,EAAIg6D,EAAQ13E,OAAQ0d,IAChC,GAAI4sf,GAAM5yb,EAAQh6D,GAAG9gB,KAAKmzN,OAAOkvZ,WAAY,CACzCrxB,EAAal2gB,EAAQh6D,GACrBg6D,EAAQtlD,OAAO1U,EAAG,GAClB,KACJ,CAEJ463B,EAAcjyzB,GAAO,CAAC,EAAGzpF,KAAKkk3B,YAAalzR,EAC/C,MAEI0qT,EAAcjyzB,GAAO,CAAC,EAAGzpF,KAAKkk3B,YAAappyB,EAAQ,IAEvD,GAAI4yb,GAAMq8X,GACN/p4B,KAAKi2Y,eAAe9/W,EAAIul3B,EAAazB,EAAgBn/zB,OADzD,CAIA96E,KAAK4i4B,aAAc,EACnB,IAAI7w0B,EAAQrhB,WAAWq51B,EAAMz32B,aAAa,eACtCqp3B,EAAWpoe,GAAS+a,uBAAuBtub,KAAKc,cAAe,CAAC464B,GAAc174B,KAAK2lrB,eAAgB5znB,GACnGk4G,EAAKugL,GAAO,IAAM02iB,IAAY6I,GAC9BzC,EAAazs3B,GAAS7a,KAAKmzN,OAAOhsK,MAAMrwC,WAAY4k4B,GACxD,GAAKzB,GAAkBhwuB,GAAQgwuB,IAAmBvsY,GAAM45X,GAAc,CAClE,IAAIhnf,EAAYypf,EAAMl0mB,cAClBppQ,EAAQ/b,MAAMC,UAAUhG,QAAQhL,KAAK2gZ,EAAUn3W,WAAY4g2B,GAC/D522B,GAAO422B,GACPzpf,EAAU3rX,aAAagn3B,EAAS,GAAIr7f,EAAUn3W,WAAW1c,IACzDzsB,KAAKi2Y,eAAe9/W,EAAIul3B,EAAazB,EAAgBn/zB,GACjDm/zB,GAAkBhwuB,GAClBjqK,KAAK4yqB,UAAU,CAACz8oB,GAExB,KACK,CACD,IAAIk82B,EAAS7njB,GAAO,IAAM62iB,IAAU0I,GAChCh+T,EAAavhP,GAAO,IAAM62iB,IAAUsa,EAAS,IAC7C16nB,EAAOupE,GAAO,OAAS3uE,IAAMw2nB,GAC7BuJ,EAAUpxjB,GAAO,OAAS3uE,IAAMkwT,GAChC9qT,GAAQ26nB,IACJA,EAAQ1znB,UAAUh1P,SAAS6t2B,MAAe9/mB,EAAKiH,UAAUh1P,SAAS4t2B,MAClE74mB,GAAY,CAAC2znB,GAAU7a,KACvBv4mB,GAAS,CAACoznB,GAAU9a,MAEf8a,EAAQ1znB,UAAUh1P,SAAS4t2B,MAAgB7/mB,EAAKiH,UAAUh1P,SAAS6t2B,MACxE94mB,GAAY,CAAC2znB,GAAU9a,KACvBt4mB,GAAS,CAACoznB,GAAU7a,MAEf9/mB,EAAKiH,UAAUh1P,SAAS,gBAC7Bs1P,GAAS,CAACoznB,GAAU,gBAG5Bzo3B,GAAOk/2B,GACP,IAAIwJ,EAAUrxjB,GAAO,IAAMw3iB,IAAS+H,GACpC8R,EAAQrn3B,WAAWG,aAAao3iB,EAAY8vU,EAAQjn3B,aACpD50B,KAAKi2Y,eAAe9/W,EAAIul3B,EAAazB,EAAgBn/zB,EACzD,CAKA,GAJAivzB,EAAQ/p4B,KAAKgnS,WAAW3+R,GACpBqz4B,EAAY174B,KAAKmzN,OAAO+4N,UACxB69c,EAAM/02B,aAAa,QAAS0m3B,EAAY174B,KAAKmzN,OAAO+4N,UAEpDwvd,EAAY5q4B,eAAe9Q,KAAKmzN,OAAOmjM,iBAAmBolf,EAAY174B,KAAKmzN,OAAOmjM,gBAAiB,CACnG,IAAIlrX,EAAO,CAAC,EACZ+3C,GAAM/3C,EAAMsw2B,EAAY174B,KAAKmzN,OAAOmjM,iBAChClrX,EAAKgkZ,OACL5mK,GAAS,CAACuhnB,GAAQ3+1B,EAAKgkZ,MAAMz8Z,MAAM,aAC5ByY,EAAKgkZ,OAGZ9jb,GAAWy+3B,EAAO3+1B,EAE1B,EACwC,IAApCprC,KAAKy/jB,cAAc90jB,QAAQwrB,KAC3B4z2B,EAAM/02B,aAAa,gBAAiB,QACpCwzP,GAAS,CAACuhnB,GAAQ33nB,MAEtBpyQ,KAAK4i4B,aAAc,EACnB5i4B,KAAK24Z,aAAa,cAAe,CAAC34Z,KAAK23jB,QAAQoyU,IA3D/C,CAnCA,CA+FJ,EAKApH,EAAShy3B,UAAUm3jB,YAAc,SAAUx2iB,GAClCo8e,GAAMp8e,KACHtxB,KAAKmzN,OAAO2/M,sBAAsBuQ,KAAgBrjb,KAAKurrB,UACvDvrrB,KAAKsy4B,cAAc,SAAUhh3B,GAG7BtxB,KAAKw64B,cAAclp3B,GAG/B,EAMAqx2B,EAAShy3B,UAAUmr4B,WAAa,SAAUzz4B,EAAQ+p4B,GAC9C,IAAI9y4B,EAAQU,KACZ,IAAI0tgB,GAAMrlgB,KAAWqlgB,GAAM0kY,IAAapy4B,KAAKosoB,aAA7C,CAGA,IAAI29P,EAAQ/p4B,KAAKgnS,WAAW3+R,GAC5B,IAAIqlgB,GAAMq8X,GAAV,CAGA,IAAIsI,EAAS7njB,GAAO,IAAMy2iB,IAAU8I,GACpC/p4B,KAAK4x4B,cAAc7H,GACnB,IAAInljB,EAAY5kV,KAAK6x4B,aAAa9H,EAAO,KAAM,MAC/C/p4B,KAAKsgS,QAAQ,cAAeskD,GAAW,SAAU+nH,GACxCA,EAAa7rX,SACVxhF,EAAM6zN,OAAO2/M,sBAAsBuQ,KAAgB/jb,EAAMisrB,UACzDjsrB,EAAMgz4B,cAAc,SAAU,KAAMjq4B,EAAQ+p4B,EAAS,KAAM,MAAM,GAGjE9y4B,EAAMiz4B,cAAcxI,EAAOsI,EAAQD,GAAS,GAGxD,GAbA,CAJA,CAkBJ,EAMAzP,EAAShy3B,UAAUmp4B,WAAa,SAAUxo3B,GAClCtxB,KAAK6sb,cACL7sb,KAAK4p4B,iBAAiBt42B,GAAO,EAErC,EAEAy+T,IAAW,CACPjB,IAAS,IACV6ziB,EAAShy3B,UAAW,wBAAoB,GAC3Co/U,IAAW,CACPjB,IAAS,IACV6ziB,EAAShy3B,UAAW,oBAAgB,GACvCo/U,IAAW,CACPjB,IAAS,IACV6ziB,EAAShy3B,UAAW,2BAAuB,GAC9Co/U,IAAW,CACPjB,IAAS,IACV6ziB,EAAShy3B,UAAW,qBAAiB,GACxCo/U,IAAW,CACPd,GAAQ,CAAC,EAAGyziB,MACbC,EAAShy3B,UAAW,iBAAa,GACpCo/U,IAAW,CACPjB,MACD6ziB,EAAShy3B,UAAW,oBAAgB,GACvCo/U,IAAW,CACPjB,GAAS,KACV6ziB,EAAShy3B,UAAW,gBAAY,GACnCo/U,IAAW,CACPjB,IAAS,IACV6ziB,EAAShy3B,UAAW,gBAAY,GACnCo/U,IAAW,CACPjB,GAAS,OACV6ziB,EAAShy3B,UAAW,gBAAY,GACnCo/U,IAAW,CACPjB,IAAS,IACV6ziB,EAAShy3B,UAAW,2BAAuB,GAC9Co/U,IAAW,CACPjB,IAAS,IACV6ziB,EAAShy3B,UAAW,yBAAqB,GAC5Co/U,IAAW,CACPjB,MACD6ziB,EAAShy3B,UAAW,qBAAiB,GACxCo/U,IAAW,CACPjB,GAAS,SACV6ziB,EAAShy3B,UAAW,gBAAY,GACnCo/U,IAAW,CACPd,GAAQ,CAAC,EAAGuziB,MACbG,EAAShy3B,UAAW,cAAU,GACjCo/U,IAAW,CACPjB,IAAS,IACV6ziB,EAAShy3B,UAAW,qBAAiB,GACxCo/U,IAAW,CACPjB,IAAS,IACV6ziB,EAAShy3B,UAAW,oBAAgB,GACvCo/U,IAAW,CACPjB,MACD6ziB,EAAShy3B,UAAW,cAAU,GACjCo/U,IAAW,CACPjB,MACD6ziB,EAAShy3B,UAAW,oBAAgB,GACvCo/U,IAAW,CACPjB,MACD6ziB,EAAShy3B,UAAW,qBAAiB,GACxCo/U,IAAW,CACPjB,GAAS,SACV6ziB,EAAShy3B,UAAW,iBAAa,GACpCo/U,IAAW,CACPjB,IAAS,IACV6ziB,EAAShy3B,UAAW,oBAAgB,GACvCo/U,IAAW,CACPjB,IAAS,IACV6ziB,EAAShy3B,UAAW,iBAAa,GACpCo/U,IAAW,CACPjB,IAAS,IACV6ziB,EAAShy3B,UAAW,wBAAoB,GAC3Co/U,IAAW,CACP94T,MACD0r2B,EAAShy3B,UAAW,qBAAiB,GACxCo/U,IAAW,CACP94T,MACD0r2B,EAAShy3B,UAAW,eAAW,GAClCo/U,IAAW,CACP94T,MACD0r2B,EAAShy3B,UAAW,iBAAa,GACpCo/U,IAAW,CACP94T,MACD0r2B,EAAShy3B,UAAW,yBAAqB,GAC5Co/U,IAAW,CACP94T,MACD0r2B,EAAShy3B,UAAW,gBAAY,GACnCo/U,IAAW,CACP94T,MACD0r2B,EAAShy3B,UAAW,iBAAa,GACpCo/U,IAAW,CACP94T,MACD0r2B,EAAShy3B,UAAW,gBAAY,GACnCo/U,IAAW,CACP94T,MACD0r2B,EAAShy3B,UAAW,mBAAe,GACtCo/U,IAAW,CACP94T,MACD0r2B,EAAShy3B,UAAW,oBAAgB,GACvCo/U,IAAW,CACP94T,MACD0r2B,EAAShy3B,UAAW,mBAAe,GACtCo/U,IAAW,CACP94T,MACD0r2B,EAAShy3B,UAAW,qBAAiB,GACxCo/U,IAAW,CACP94T,MACD0r2B,EAAShy3B,UAAW,sBAAkB,GACzCo/U,IAAW,CACP94T,MACD0r2B,EAAShy3B,UAAW,oBAAgB,GACvCo/U,IAAW,CACP94T,MACD0r2B,EAAShy3B,UAAW,qBAAiB,GACxCo/U,IAAW,CACP94T,MACD0r2B,EAAShy3B,UAAW,oBAAgB,GACvCo/U,IAAW,CACP94T,MACD0r2B,EAAShy3B,UAAW,mBAAe,GACtCo/U,IAAW,CACP94T,MACD0r2B,EAAShy3B,UAAW,kBAAc,GACrCo/U,IAAW,CACP94T,MACD0r2B,EAAShy3B,UAAW,mBAAe,GACtCo/U,IAAW,CACP94T,MACD0r2B,EAAShy3B,UAAW,oBAAgB,GACvCo/U,IAAW,CACP94T,MACD0r2B,EAAShy3B,UAAW,qBAAiB,GACxCo/U,IAAW,CACP94T,MACD0r2B,EAAShy3B,UAAW,oBAAgB,GACvCo/U,IAAW,CACP94T,MACD0r2B,EAAShy3B,UAAW,qBAAiB,GACxCgy3B,EAAWc,EAAa1ziB,IAAW,CAC/BT,IACDqziB,EAEP,CAv4J8B,CAu4J5Bvh4B,IC/kKE8kD,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAsBzC211B,IAAmC,SAAUj11B,GAE7C,SAASi11B,EAAkB384B,GACvB,IAAIE,EAAQwnD,EAAOnnD,KAAKK,KAAMZ,IAAUY,KAOxC,OANAV,EAAMixW,kBAAmB,EACzBjxW,EAAM2zW,sBAAuB,EAC7B3zW,EAAM42W,uBAAyB,KAC/B52W,EAAMyzW,cAAgB,KACtBzzW,EAAM62W,iBAAkB,EACxB72W,EAAMwxW,QAAU,GACTxxW,CACX,CAUA,OApBA4mD,IAAU611B,EAAmBj11B,GAW7Bi11B,EAAkBpr4B,UAAUyJ,OAAS,WACjC,KAAMpa,KAAKmV,UAAYnV,KAAKuwW,kBAAqBvwW,KAAK2rV,aAAgB3rV,KAAKwwW,oBAKvE,OAAO13K,GAAAA,cAAoB,MAAO94L,KAAKgyW,uBAAwB,GAAG54V,OAAOpZ,KAAKZ,MAAM0G,SAAU9F,KAAK8wW,UAJnGhqT,EAAOn2C,UAAUyJ,OAAOza,KAAKK,MAC7BA,KAAKuwW,kBAAmB,CAKhC,EACOwriB,CACX,CAtBuC,CAsBrCpZ,KAEFrthB,GAAYymiB,IAAmB,CAAC7riB,GAAep3K,GAAAA,YC9C/C,MAmZMkjtB,IAAW,CACfh11B,OAAQ,MACR06N,SAAU,SACVT,KAAM,CAAC,IAAK,IAAK,CAAC,KAAM,KAAM,KAAM,OAAQ,OAAQ,qOAwftD,ICs7aWg7nB,IAcAC,IAYAC,IAoBAC,IAcAC,IAkCAC,IAiCAC,IAuBAC,IA19cPt21B,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAazC2pS,IAA0C,SAAUxoJ,EAAYl/L,EAAQiE,EAAKkkB,GAC7E,IAA2HhvB,EAAvH6e,EAAIld,UAAUC,OAAQkgH,EAAIjjG,EAAI,EAAIhY,EAAkB,OAATmoB,EAAgBA,EAAO/wB,OAAOk+B,yBAAyBt1B,EAAQiE,GAAOkkB,EACrH,GAAuB,kBAAZuN,SAAoD,oBAArBA,QAAQiyT,SAAyB1sO,EAAIvlF,QAAQiyT,SAASzoJ,EAAYl/L,EAAQiE,EAAKkkB,QACpH,IAAK,IAAIrkB,EAAIo7L,EAAWnkM,OAAS,EAAG+I,GAAK,EAAGA,KAAS3K,EAAI+lM,EAAWp7L,MAAIm3G,GAAKjjG,EAAI,EAAI7e,EAAE8hH,GAAKjjG,EAAI,EAAI7e,EAAE6G,EAAQiE,EAAKg3G,GAAK9hH,EAAE6G,EAAQiE,KAASg3G,GAChJ,OAAOjjG,EAAI,GAAKijG,GAAK7jH,OAAO4c,eAAehU,EAAQiE,EAAKg3G,GAAIA,CAChE,EAWIm5xB,IAAkC,SAAU311B,GAE5C,SAAS211B,IACL,OAAkB,OAAX311B,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAsBA,OAzBAkmD,IAAUu21B,EAAkB311B,GAI5BipS,IAAW,CACPjB,GAAS,OACV2tjB,EAAiB9r4B,UAAW,kBAAc,GAC7Co/U,IAAW,CACPjB,GAAS,OACV2tjB,EAAiB9r4B,UAAW,gBAAY,GAC3Co/U,IAAW,CACPjB,GAAS,OACV2tjB,EAAiB9r4B,UAAW,WAAO,GACtCo/U,IAAW,CACPjB,GAAS,OACV2tjB,EAAiB9r4B,UAAW,kBAAc,GAC7Co/U,IAAW,CACPjB,GAAS,OACV2tjB,EAAiB9r4B,UAAW,gBAAY,GAC3Co/U,IAAW,CACPjB,GAAS,OACV2tjB,EAAiB9r4B,UAAW,eAAW,GAC1Co/U,IAAW,CACPjB,GAAS,OACV2tjB,EAAiB9r4B,UAAW,YAAQ,GAChC8r4B,CACX,CA3BsC,CA2BpCtojB,IAKEuojB,IAA8B,SAAU511B,GAExC,SAAS411B,IACL,OAAkB,OAAX511B,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAgBA,OAnBAkmD,IAAUw21B,EAAc511B,GAIxBipS,IAAW,CACPjB,GAAS,OACV4tjB,EAAa/r4B,UAAW,mBAAe,GAC1Co/U,IAAW,CACPjB,GAAS,IACV4tjB,EAAa/r4B,UAAW,qBAAiB,GAC5Co/U,IAAW,CACPjB,GAAS,KACV4tjB,EAAa/r4B,UAAW,qBAAiB,GAC5Co/U,IAAW,CACPjB,GAAS,IACV4tjB,EAAa/r4B,UAAW,kBAAc,GACzCo/U,IAAW,CACPjB,GAAS,OACV4tjB,EAAa/r4B,UAAW,iBAAa,GACjC+r4B,CACX,CArBkC,CAqBhCvojB,IAWEwojB,IAA6B,SAAU711B,GASvC,SAAS611B,EAAY793B,EAAS3J,GAC1B,IAAI7V,EAAQwnD,EAAOnnD,KAAKK,KAAM8e,EAAS3J,IAAYnV,KA6HnD,OA5HAV,EAAMk1vB,OAAS,EACfl1vB,EAAMs94B,YAAa,EACnBt94B,EAAMu94B,YAAa,EACnBv94B,EAAMy/V,YAAc,GACpBz/V,EAAMw94B,WAAa,GACnBx94B,EAAMy94B,eAAiB,GACvBz94B,EAAM094B,eAAiB,CAAE9i4B,EAAG,EAAGC,EAAG,GAClC7a,EAAM294B,cAAgB,CAAE/i4B,EAAG,EAAGC,EAAG,GACjC7a,EAAM494B,UAAY,CAAEz1iB,OAAQ,EAAGC,OAAQ,EAAGy1iB,KAAM,EAAGC,KAAM,GACzD994B,EAAM+94B,UAAY,CAAEnj4B,EAAG,EAAGC,EAAG,GAC7B7a,EAAMg+4B,SAAW,CAAC,EAClBh+4B,EAAMi+4B,QAAU,GAChBj+4B,EAAMk+4B,aAAe,GACrBl+4B,EAAMm+4B,eAAgB,EACtBn+4B,EAAMo+4B,eAAiB,CAAEjgb,YAAa,OAAQkgb,UAAW,GAAIvuwB,YAAa,MAC1E9vI,EAAMs+4B,mBAAqB,CAAEngb,YAAa,OAAQkgb,UAAW,GAAIvuwB,YAAa,MAC9E9vI,EAAMu+4B,aAAe,CAAE592B,KAAM,aAAcuib,WAAY,QAASvjK,SAAU,KAAM6+lB,UAAW,KAAM1txB,MAAM,EAAOE,QAAQ,EAAOC,WAAW,GACxIjxH,EAAMy+4B,iBAAmB,CAAE992B,KAAM,aAAcuib,WAAY,QAASvjK,SAAU,KAAM6+lB,UAAW,KAAM1txB,MAAM,EAAOE,QAAQ,EAAOC,WAAW,GAC5IjxH,EAAM0+4B,cAAgB,GACtB1+4B,EAAM2+4B,WAAY,EAClB3+4B,EAAM4+4B,YAAa,EACnB5+4B,EAAM6+4B,cAAgB,GACtB7+4B,EAAM8+4B,cAAgB,CAAC,EACvB9+4B,EAAM++4B,aAAe,EACrB/+4B,EAAMg/4B,WAAY,EAClBh/4B,EAAMi/4B,eAAiB,OACvBj/4B,EAAMk/4B,gBAAkB,CAAEtk4B,EAAG,EAAGC,EAAG,GACnC7a,EAAMm/4B,aAAe,GACrBn/4B,EAAMo/4B,QAAU,EAChBp/4B,EAAMq/4B,UAAY,CAAEC,YAAa,CAAEn3iB,OAAQ,EAAGC,OAAQ,EAAGy1iB,KAAM,EAAGC,KAAM,EAAG5+3B,MAAO,EAAGoqI,OAAQ,GACzFi2vB,YAAa,GAAIC,SAAU,GAAIC,cAAe,IAClDz/4B,EAAM0/4B,cAAgB,CAAEJ,YAAa,CAAEn3iB,OAAQ,EAAGC,OAAQ,EAAGy1iB,KAAM,EAAGC,KAAM,EAAG5+3B,MAAO,EAAGoqI,OAAQ,GAC7Fi2vB,YAAa,GAAIC,SAAU,GAAIC,cAAe,IAClDz/4B,EAAM2/4B,YAAc,CAAEzzwB,MAAO,GAAI0zwB,YAAY,EAAOC,aAAa,EAAO141B,QAAQ,EAAO241B,eAAe,EAAOC,QAAQ,EAAOC,eAAe,EACvIC,cAAc,EAAOC,UAAU,EAAOC,YAAY,EAAOC,cAAc,EAAO5yb,YAAY,EAAO6yb,QAAQ,GAC7Grg5B,EAAMsg5B,gBAAkB,GACxBtg5B,EAAMug5B,aAAc,EACpBvg5B,EAAMwg5B,aAAe,GACrBxg5B,EAAMyg5B,YAAc,GACpBzg5B,EAAM0g5B,gBAAkB,CAAEC,WAAY,EAAGC,SAAU,EAAGC,IAAK,EAAG7xwB,QAAS,IAAK8xwB,WAAY,EAAGl34B,KAAM,EAC7Fm34B,SAAU,EAAGC,SAAS,EAAOC,IAAI,GACrCjh5B,EAAMkh5B,oBAAsB,CAAEP,WAAY,EAAGC,SAAU,EAAGC,IAAK,EAAG7xwB,QAAS,IAAK8xwB,WAAY,EAAGl34B,KAAM,EACjGm34B,SAAU,EAAGC,SAAS,EAAOC,IAAI,GACrCjh5B,EAAMmh5B,gBAAkB,GACxBnh5B,EAAMoh5B,uBAAyB,GAC/Bph5B,EAAMqh5B,oBAAsB,GAC5Brh5B,EAAM2jb,cAAgB,GACtB3jb,EAAMsh5B,WAAa,GACnBth5B,EAAMuh5B,aAAe,uHAErBvh5B,EAAMwh5B,iBAAmB,EAEzBxh5B,EAAMyh5B,WAAa,EACnBzh5B,EAAM0h5B,eAAiB,EACvB1h5B,EAAM2h5B,SAAW,EACjB3h5B,EAAM4h5B,QAAU,EAChB5h5B,EAAM6h5B,QAAU,EAChB7h5B,EAAM8h5B,OAAS,EACf9h5B,EAAM+h5B,eAAiB,CAAE55iB,OAAQ,EAAGC,OAAQ,EAAGlpV,MAAO,EAAGoqI,OAAQ,GACjEtpJ,EAAMgi5B,SAAW,GACjBhi5B,EAAMii5B,iBAAkB,EACxBji5B,EAAMki5B,eAAgB,EACtBli5B,EAAMmi5B,mBAAoB,EAC1Bni5B,EAAMoi5B,cAAe,EAErBpi5B,EAAMqi5B,eAAiB,GACvBri5B,EAAMsi5B,mBAAqB,CAAE1n4B,EAAG,EAAGC,EAAG,GACtC7a,EAAMui5B,cAAe,EACrBvi5B,EAAMwi5B,kBAAoB,CAAEr6iB,OAAQ,EAAGC,OAAQ,EAAGlpV,MAAO,EAAGoqI,OAAQ,GACpEtpJ,EAAMyi5B,cAAgB,EACtBzi5B,EAAM0i5B,wBAAyB,EAC/B1i5B,EAAM2i5B,uBAAwB,EAC9B3i5B,EAAM4i5B,8BAAgC,CAAEzkb,YAAa,KAAMkgb,UAAW,KAAMvuwB,YAAa,MACzF9vI,EAAM6i5B,yBAA2B,CAAEjo4B,EAAG,EAAGC,EAAG,GAC5C7a,EAAM8i5B,uBAAyB,CAAElo4B,EAAG,EAAGC,EAAG,GAC1C7a,EAAM+i5B,iBAAmB,CAAEno4B,EAAG,EAAGC,EAAG,GACpC7a,EAAMgj5B,WAAY,EAClBhj5B,EAAMij5B,eAAiB,EACvBjj5B,EAAMkj5B,kBAAoB,EAC1Blj5B,EAAM6+d,SAAW,GACjB7+d,EAAMmj5B,sBAAuB,EAC7Bnj5B,EAAMoj5B,kBAAmB,EAEzBpj5B,EAAMqj5B,gBAAkB,CAAEzib,UAAW,EAAGH,aAAc,EAAGt9c,KAAM,EAAG28c,OAAQ,EAAGC,OAAQ,GACrF//d,EAAMkge,OAAS,GAEflge,EAAM29d,UAAY,CAAC,EACnB39d,EAAMsj5B,aAAe,EACrBtj5B,EAAMuj5B,gBAAkB,EACxBvj5B,EAAMwj5B,mBAAoB,EAC1Bxj5B,EAAMyj5B,oBAAsB,EAC5Bzj5B,EAAM0j5B,sBAAwB,UAC9B1j5B,EAAM2j5B,0BAA2B,EACjC3j5B,EAAM4j5B,gBAAiB,EACvB5j5B,EAAM6j5B,QAAU,CAAEC,SAAU,EAAGC,YAAa,EAAGhB,iBAAkB,CAAEno4B,EAAG,EAAGC,EAAG,GAAKio4B,uBAAwB,CAAElo4B,EAAG,EAAGC,EAAG,GAChHgo4B,yBAA0B,CAAEjo4B,EAAG,EAAGC,EAAG,GAAKmp4B,iBAAkB,CAAEpp4B,EAAG,EAAGC,EAAG,GAAKwk4B,UAAW,CAAC,EAAGgD,eAAgB,GAC3GntJ,OAAQ,EAAG2pJ,cAAe,GAAIoF,WAAY,CAAE97iB,OAAQ,EAAGC,OAAQ,EAAGlpV,MAAO,EAAGoqI,OAAQ,GACpF46vB,UAAW,CAAE/7iB,OAAQ,EAAGC,OAAQ,EAAGlpV,MAAO,EAAGoqI,OAAQ,GAAKxiJ,OAAQ,GAAI264B,WAAY,EAAG0C,kBAAmB,GAC5Gnk5B,EAAMok5B,iBAAmB,GACzBpk5B,EAAMqk5B,gBAAiB,EACvBrk5B,EAAMsk5B,sBAAuB,EAC7Btk5B,EAAMgoV,SAAU,EAChBhoV,EAAMuk5B,kBAAoB,CAAE3p4B,EAAG,EAAGC,EAAG,GACrC7a,EAAMgk5B,iBAAmB,CAAEpp4B,EAAG,EAAGC,EAAG,GACpC7a,EAAMwk5B,yBAA2B,EACjCxk5B,EAAMyk5B,6BAA+B,EACrCzk5B,EAAM0k5B,gBAAiB,EACvB1k5B,EAAM2k5B,cAAgB,GACtB3k5B,EAAM4k5B,gBAAkB,GACxB5k5B,EAAM6k5B,0BAA2B,EACjC7k5B,EAAM8k5B,YAAc,GACpB9k5B,EAAM+k5B,sBAAwB,CAAEnq4B,EAAG,EAAGC,EAAG,GACzC7a,EAAMgl5B,SAAW,UACjBhl5B,EAAMil5B,kBAAoB,GAC1Bjl5B,EAAMkl5B,oBAAsB,GAC5Bll5B,EAAMml5B,UAAY,GAElBnl5B,EAAMol5B,aAAe,CAAC,EACtBpl5B,EAAMmk5B,kBAAoB,EAC1Bnk5B,EAAMql5B,eAAgB,EACtBrl5B,EAAMsl5B,iBAAkB,EACxBtl5B,EAAMul5B,qBAAsB,EAC5Bvl5B,EAAMwl5B,qBAAsB,EAC5Bxl5B,EAAMyl5B,cAAe,EACdzl5B,CACX,CAg/bA,IAAI0l5B,EAuGJ,OA9tcA9+1B,IAAUy21B,EAAa711B,GAwIvBk+1B,EAAgBrI,EAChBA,EAAYhs4B,UAAUmoV,UAAY,WAE9B94V,KAAKmV,QAAQghB,GAAKn2B,KAAKmV,QAAQghB,IAAM42S,GAAY,oBAC7Cka,GAAQM,UACRvnV,KAAKmV,QAAQ+yQ,UAAU90P,IAAI,YAE/BpzB,KAAKil5B,UAAY,CACbC,WAAY,CAAEC,aAAc,UAAWC,eAAgB,QACvDC,eAAgB,CAAEF,aAAc,UAAWC,eAAgB,QAC3DE,SAAU,CAAEH,aAAc,UAAWC,eAAgB,QACrDG,aAAc,CAAEJ,aAAc,UAAWC,eAAgB,QACzDI,OAAQ,CAAEL,aAAc,UAAWC,eAAgB,QACnDK,WAAY,CAAEN,aAAc,UAAWC,eAAgB,QACvDM,WAAY,CAAEP,aAAc,UAAWC,eAAgB,QACvDO,UAAW,CAAER,aAAc,UAAWC,eAAgB,QACtDQ,cAAe,CAAET,aAAc,UAAWC,eAAgB,QAC1DS,SAAU,CAAEV,aAAc,UAAWC,eAAgB,QACrDU,aAAc,CAAEX,aAAc,UAAWC,eAAgB,QACzDW,OAAQ,CAAEZ,aAAc,UAAWC,eAAgB,QACnDY,WAAY,CAAEb,aAAc,UAAWC,eAAgB,QACvDa,aAAc,CAAEd,aAAc,UAAWC,eAAgB,SAE7Dpl5B,KAAKw0Y,cAAgB,CACjB0xgB,KAAM,OACN1shB,OAAQ,UACRC,QAAS,WACT9B,KAAM,OACN7H,KAAM,OACNq2hB,UAAW,YACXpuiB,WAAY,aACZquiB,SAAU,WACVC,WAAY,aACZlpiB,SAAU,WACVmpiB,IAAK,MACLC,WAAY,aACZC,QAAS,UACTC,KAAM,OACNC,QAAS,UACTC,SAAU,WACVjliB,OAAQ,SACR7zH,QAAS,UACT+4pB,OAAQ,SACRC,KAAM,OACNC,KAAM,OACNC,UAAW,YACXC,cAAe,kBACfC,MAAO,QACPC,OAAQ,SACRvq3B,KAAM,WACNwq3B,IAAK,MACL12hB,MAAO,QACPknS,KAAM,OACNhmS,OAAQ,SACRy1hB,WAAY,cACZC,YAAa,eACbC,eAAgB,kBAChBC,aAAc,gBACdC,GAAI,KACJ9kW,OAAQ,SACR+kW,UAAW,aACXC,YAAa,eACbC,YAAa,eACbt7Y,WAAY,cACZu7Y,UAAW,aACXt7Y,SAAU,YACVE,UAAW,aACXq7Y,IAAK,MACL/7hB,KAAM,OACNg8hB,KAAM,OACNl0J,OAAQ,SACRz/X,OAAQ,SACRnY,OAAQ,SACR+riB,QAAS,UACTl4hB,UAAW,YACX8gb,KAAM,OACNq3G,MAAO,QACP/tiB,KAAM,OACN0N,OAAQ,SACRsgiB,WAAY,cACZC,OAAQ,UACRC,MAAO,QACPC,OAAQ,SACRC,MAAO,QACPC,OAAQ,UACRC,IAAK,MACL90a,OAAQ,SACRxzH,UAAW,YACXsQ,OAAQ,SACRi4hB,SAAU,aAEdxo5B,KAAK+zZ,KAAO,IAAIxuD,GAAK,eAAgBvlW,KAAKw0Y,cAAex0Y,KAAKD,OAClE,EAQA484B,EAAYhs4B,UAAUyJ,OAAS,WAC3Bpa,KAAK6tK,YACT,EAOA8uuB,EAAYhs4B,UAAUo8U,cAAgB,WAClC,MAAO,cACX,EAQA4vjB,EAAYhs4B,UAAU0pV,eAAiB,WACnC,OAAOr6V,KAAK26V,aAAa,GAC7B,EAUAgijB,EAAYhs4B,UAAU+7U,kBAAoB,SAAU+7jB,EAAeh9jB,GAC/D,IAAK,IAAIn8U,EAAK,EAAGgmC,EAAK71C,OAAO8E,KAAKkk5B,GAAgBn54B,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CAEpE,OADWgmC,EAAGhmC,IAEV,IAAK,WACGm8U,EAAcmkB,UACd3nF,GAAY,CAACjoR,KAAKmV,SAAUs2U,EAAcmkB,SAASv/V,QAAQ,OAAQ,KAAKoiB,OAAOE,MAAM,MAErF813B,EAAc74iB,UACdpnF,GAAS,CAACxoR,KAAKmV,SAAUsz4B,EAAc74iB,SAASv/V,QAAQ,OAAQ,KAAKoiB,OAAOE,MAAM,MAEtF,MACJ,IAAK,WACG813B,EAAc754B,UACd5O,KAAKmV,QAAQ+yQ,UAAU90P,IAAI,cAC3BpzB,KAAK0o5B,gBAGL1o5B,KAAKmV,QAAQ+yQ,UAAU/0P,OAAO,cAC9BnzB,KAAKm/b,aAET,MACJ,IAAK,SACDn/b,KAAKmV,QAAQhP,MAAMyiJ,OAAS6/vB,EAAc7/vB,OAC1C,MACJ,IAAK,QACD5oJ,KAAKmV,QAAQhP,MAAMqY,MAAQiq4B,EAAcjq4B,MACzC,MACJ,IAAK,QACGiq4B,EAAcv7e,QACdlta,KAAK2o5B,cACL3o5B,KAAK4o5B,aAAarlb,YAAcvje,KAAKil5B,UAAUjl5B,KAAKkta,OAAqB,aACzElta,KAAK4o5B,aAAaprb,UAAYx9d,KAAKil5B,UAAUjl5B,KAAKkta,OAAuB,gBAE7E,MACJ,IAAK,mBACGu7e,EAAcI,mBACd7o5B,KAAK6o5B,iBAAmBJ,EAAcI,iBACtC7o5B,KAAK8o5B,mBAET,MACJ,IAAK,SACGL,EAAc1o5B,SACdC,KAAK+zZ,KAAKruD,UAAU+ijB,EAAc1o5B,QAClCC,KAAKs0jB,eAAe,SAExB,MACJ,IAAK,gBACGm0V,EAAcM,cACd/o5B,KAAK+o5B,eAAgB,EAGrB/o5B,KAAK+o5B,eAAgB,EAEzB/o5B,KAAKs0jB,eAAe,QACpB,MACJ,IAAK,yBACGm0V,EAAcO,wBACdhp5B,KAAKgp5B,wBAAyB,EAC9Bhp5B,KAAKip5B,2BACLjp5B,KAAKkp5B,6BAGLlp5B,KAAKgp5B,wBAAyB,EAC9Bhp5B,KAAKmp5B,6BAET,MACJ,IAAK,eACGV,EAAcW,eACdpp5B,KAAKop5B,aAAaC,YAAcZ,EAAcW,aAAaC,aAE3Dt9kB,GAAkB/rU,KAAKop5B,aAAaC,cACpCrp5B,KAAKop5B,aAAaC,YAAejN,IAAYkN,WAAalN,IAAYmN,MAAQnN,IAAYtjX,QACtFsjX,IAAYoN,SAChBxp5B,KAAKs0jB,eAAe,UAEdm0V,EAAcW,aAAaC,YAAcjN,IAAYtjX,WAAasjX,IAAYtjX,SACpF94hB,KAAKs0jB,eAAe,QAIpC,CACJ,EACAqoV,EAAYhs4B,UAAUymI,QAAU,WAC5B,IAAI8wI,EAAY,GAChBloR,KAAKmV,QAAQ4f,gBAAgB,YACzB/0B,KAAK4vW,WACL1nF,EAAYA,EAAU9uQ,OAAOpZ,KAAK4vW,SAASv/V,QAAQ,OAAQ,KAAKoiB,OAAOE,MAAM,OAEjFs1P,GAAY,CAACjoR,KAAKmV,SAAU+yQ,GACvBloR,KAAKmV,QAAQmd,aAAa,UAC3BtyB,KAAKmV,QAAQ4f,gBAAgB,SAEjC/0B,KAAKyp5B,uBACLzp5B,KAAK0o5B,cACL5h2B,EAAOn2C,UAAUymI,QAAQz3I,KAAKK,MAC9BA,KAAKmV,QAAQ+zB,UAAY,EAC7B,EACAyz2B,EAAYhs4B,UAAUk9J,WAAa,WAC/B7tK,KAAK8o5B,kBACL9o5B,KAAK4wlB,gBACL5wlB,KAAK0p5B,0BACL1p5B,KAAK2p5B,eACL3p5B,KAAKip5B,2BACLjp5B,KAAKm/b,YACLn/b,KAAK4p5B,aAAaxj5B,OAASpG,KAAK6g5B,aAAe7g5B,KAAK0g5B,uBAAyB1g5B,KAAKyg5B,gBAAkBzg5B,KAAK6p5B,mBACrG7p5B,KAAK4vW,UACLpnF,GAAS,CAACxoR,KAAKmV,SAAUnV,KAAK4vW,SAASv/V,QAAQ,OAAQ,KAAKoiB,OAAOE,MAAM,MAEzE3yB,KAAKmV,SACL03Z,GAAc,CACVxka,OAAQrI,KAAKmV,UAGjB42T,GAAkB/rU,KAAKop5B,aAAaC,eACpCrp5B,KAAKop5B,aAAaC,YAAejN,IAAYkN,WAAalN,IAAYmN,MAAQnN,IAAYtjX,QAAUsjX,IAAYoN,UAEhHz9kB,GAAkB/rU,KAAKop5B,aAAarI,cACpC/g5B,KAAKop5B,aAAarI,WAAa,GAE/Bh1kB,GAAkB/rU,KAAKop5B,aAAaU,iBACpC9p5B,KAAKop5B,aAAaU,cAAgB,GAE1C,EACAnN,EAAYhs4B,UAAUk54B,iBAAmB,WACrC,MAAO,sHAEX,EACAlN,EAAYhs4B,UAAUm44B,gBAAkB,WAChC9o5B,KAAK6o5B,mBACD7o5B,KAAK6o5B,iBAAiB5I,aACtBjg5B,KAAKgg5B,gBAAgBC,WAAajg5B,KAAK6o5B,iBAAiB5I,WAAWzn4B,aACnExY,KAAKwg5B,oBAAoBP,WAAajg5B,KAAK6o5B,iBAAiB5I,WAAWzn4B,cAEvExY,KAAK6o5B,iBAAiB3I,WACtBlg5B,KAAKgg5B,gBAAgBE,SAAWlg5B,KAAK6o5B,iBAAiB3I,SAAS1n4B,aAC/DxY,KAAKwg5B,oBAAoBN,SAAWlg5B,KAAK6o5B,iBAAiB3I,SAAS1n4B,cAEnExY,KAAK6o5B,iBAAiB1I,MACtBng5B,KAAKgg5B,gBAAgBG,IAAMng5B,KAAK6o5B,iBAAiB1I,IAAI3n4B,aACrDxY,KAAKwg5B,oBAAoBL,IAAMng5B,KAAK6o5B,iBAAiB1I,IAAI3n4B,cAEzDxY,KAAK6o5B,iBAAiBzI,aACtBpg5B,KAAKgg5B,gBAAgBI,WAAapg5B,KAAK6o5B,iBAAiBzI,WAAW5n4B,aACnExY,KAAKwg5B,oBAAoBJ,WAAapg5B,KAAK6o5B,iBAAiBzI,WAAW5n4B,cAEvExY,KAAK6o5B,iBAAiBxI,WACtBrg5B,KAAKgg5B,gBAAgBK,SAAWrg5B,KAAK6o5B,iBAAiBxI,SAAS7n4B,aAC/DxY,KAAKwg5B,oBAAoBH,SAAWrg5B,KAAK6o5B,iBAAiBxI,SAAS7n4B,cAEnExY,KAAK6o5B,iBAAiBv6wB,UACtBtuI,KAAKgg5B,gBAAgB1xwB,QAAUtuI,KAAK6o5B,iBAAiBv6wB,QAAQ91H,aAC7DxY,KAAKwg5B,oBAAoBlywB,QAAUtuI,KAAK6o5B,iBAAiBv6wB,QAAQ91H,cAEjExY,KAAK6o5B,iBAAiB3/4B,OACtBlJ,KAAKgg5B,gBAAgB924B,KAAOlJ,KAAK6o5B,iBAAiB3/4B,KAAKsP,aACvDxY,KAAKwg5B,oBAAoBt34B,KAAOlJ,KAAK6o5B,iBAAiB3/4B,KAAKsP,cAE/DxY,KAAK0i5B,kBAAmB,EAEhC,EACA/F,EAAYhs4B,UAAUo54B,iBAAmB,WACrC/p5B,KAAKgq5B,cAAchq5B,KAAKgg5B,gBAAgBC,YACxCjg5B,KAAKiq5B,YAAYjq5B,KAAKgg5B,gBAAgBE,UACtClg5B,KAAKkq5B,OAAOlq5B,KAAKgg5B,gBAAgBG,KACjCng5B,KAAKmq5B,cAAcnq5B,KAAKgg5B,gBAAgBI,YACxCpg5B,KAAKoq5B,YAAYpq5B,KAAKgg5B,gBAAgBK,UACtCrg5B,KAAKqq5B,WAAWrq5B,KAAKgg5B,gBAAgB1xwB,SACrCtuI,KAAKsq5B,QAAQtq5B,KAAKgg5B,gBAAgB924B,KACtC,EAOAyz4B,EAAYhs4B,UAAUwub,UAAY,WAC9BtmN,GAAazlN,IAAIlC,SAAU,UAAWlxB,KAAKuq5B,oBAAqBvq5B,MAChE64O,GAAazlN,IAAIlC,SAAU,WAAYlxB,KAAKwq5B,kBAAmBxq5B,MAC/D64O,GAAazlN,IAAIpzB,KAAKyq5B,YAAa,YAAazq5B,KAAK0q5B,sBAAuB1q5B,MAC5E64O,GAAazlN,IAAIpzB,KAAKyq5B,YAAa,YAAazq5B,KAAK2q5B,sBAAuB3q5B,MAC5E64O,GAAazlN,IAAIpzB,KAAKyq5B,YAAa,UAAWzq5B,KAAK4q5B,oBAAqB5q5B,MACxE64O,GAAazlN,IAAIlC,SAAU,UAAWlxB,KAAK4q5B,oBAAqB5q5B,MAChE64O,GAAazlN,IAAIpzB,KAAK6q5B,YAAa,YAAa7q5B,KAAK8q5B,uBAAwB9q5B,MAC7E64O,GAAazlN,IAAIpzB,KAAK6q5B,YAAa,YAAa7q5B,KAAK+q5B,uBAAwB/q5B,MAC7E64O,GAAazlN,IAAIpzB,KAAK6q5B,YAAa,UAAW7q5B,KAAKgr5B,qBAAsBhr5B,MACzE64O,GAAazlN,IAAIlC,SAAU,UAAWlxB,KAAKgr5B,qBAAsBhr5B,MACjE64O,GAAazlN,IAAIpzB,KAAKyq5B,YAAa,aAAczq5B,KAAKir5B,kBAAmBjr5B,MACzE64O,GAAazlN,IAAIpzB,KAAK6q5B,YAAa,aAAc7q5B,KAAKir5B,kBAAmBjr5B,MACzE64O,GAAazlN,IAAIpzB,KAAKyq5B,YAAa,WAAYzq5B,KAAKkr5B,cAAelr5B,MACnE64O,GAAazlN,IAAIpzB,KAAKmr5B,SAAU,YAAanr5B,KAAKkr5B,cAAelr5B,MACjE64O,GAAazlN,IAAIpzB,KAAK6q5B,YAAa,4BAA6B7q5B,KAAKor5B,aAAcpr5B,MACnF64O,GAAazlN,IAAIpzB,KAAKyq5B,YAAa,4BAA6Bzq5B,KAAKor5B,aAAcpr5B,MACnFgxB,OAAOsK,iBAAiB,SAAUt7B,KAAKmhhB,oBAAoBthhB,KAAKG,OAC1DinV,GAAQa,OAA+B,WAAtBb,GAAQ1qT,KAAK73B,MAChC2mhB,OAAOqqB,YAAYp6gB,iBAAiB,SAAUt7B,KAAKqr5B,kBAAkBxr5B,KAAKG,MAElF,EAOA284B,EAAYhs4B,UAAU+34B,YAAc,WAChC7vqB,GAAa1lN,OAAOjC,SAAU,UAAWlxB,KAAKuq5B,qBAC9C1xqB,GAAa1lN,OAAOjC,SAAU,WAAYlxB,KAAKwq5B,mBAC/C3xqB,GAAa1lN,OAAOnzB,KAAKyq5B,YAAa,YAAazq5B,KAAK0q5B,uBACxD7xqB,GAAa1lN,OAAOnzB,KAAKyq5B,YAAa,YAAazq5B,KAAK2q5B,uBACxD9xqB,GAAa1lN,OAAOnzB,KAAKyq5B,YAAa,UAAWzq5B,KAAK4q5B,qBACtD/xqB,GAAa1lN,OAAOjC,SAAU,UAAWlxB,KAAK4q5B,qBAC9C/xqB,GAAa1lN,OAAOnzB,KAAK6q5B,YAAa,YAAa7q5B,KAAK8q5B,wBACxDjyqB,GAAa1lN,OAAOnzB,KAAK6q5B,YAAa,YAAa7q5B,KAAK+q5B,wBACxDlyqB,GAAa1lN,OAAOnzB,KAAK6q5B,YAAa,UAAW7q5B,KAAKgr5B,sBACtDnyqB,GAAa1lN,OAAOjC,SAAU,UAAWlxB,KAAKgr5B,qBAClD,EACArO,EAAYhs4B,UAAU844B,qBAAuB,WAGzC,IAFA,IAAIpymB,EAAer3S,KAAKmV,QAAQ3E,iBAAiB,mBAC7C864B,EAAatr5B,KAAKmV,QAAQ3E,iBAAiB,oBACtCrE,EAAI,EAAGwjD,EAAM0nP,EAAaj0S,OAAQ+I,EAAIwjD,EAAKxjD,IAC5CkrS,EAAalrS,GAAG+7Q,UAAUh1P,SAAS,oBACnC+5T,GAAa51C,EAAalrS,GAAI,gBAAgBirI,UAC9CkzM,GAAOE,GAAO,SAAWnzC,EAAalrS,GAAGgqB,GAAIn2B,KAAKmV,WAG1D,IAAShJ,EAAI,EAAGwjD,EAAM271B,EAAWlo5B,OAAQ+I,EAAIwjD,EAAKxjD,IAC1Cm/4B,EAAWn/4B,GAAG+7Q,UAAUh1P,SAAS,mBACjC+5T,GAAaq+jB,EAAWn/4B,GAAI,gBAAgBirI,UAC5CkzM,GAAOE,GAAO,UAAY8gkB,EAAWn/4B,GAAGgqB,GAAIn2B,KAAKmV,WAE5Cm24B,EAAWn/4B,GAAG+7Q,UAAUh1P,SAAS,WACtC+5T,GAAaq+jB,EAAWn/4B,GAAI,OAAOirI,UACnCkzM,GAAOE,GAAO,UAAY8gkB,EAAWn/4B,GAAGgqB,GAAIn2B,KAAKmV,UAG7D,EACAwn4B,EAAYhs4B,UAAUg44B,YAAc,WAC3B58kB,GAAkB/rU,KAAKkta,QAAyB,KAAflta,KAAKkta,MAIvClta,KAAKkta,MAAQ,aAHblta,KAAKkta,MAAQlta,KAAKur5B,aAAavr5B,KAAKkta,MAK5C,EACAyve,EAAYhs4B,UAAU464B,aAAe,SAAU592B,GAC3C,IAAI692B,EAAS,GACRz/kB,GAAkBp+R,KACnB692B,EAAS792B,EAAIjtB,cAAciS,MAAM,MAErC,IAAK,IAAIxmB,EAAI,EAAGA,EAAIq/4B,EAAOpo5B,OAAQ+I,IAC/Bq/4B,EAAOr/4B,GAAKq/4B,EAAOr/4B,GAAGg4D,OAAO,GAAGpiD,cAAgByp4B,EAAOr/4B,GAAGyE,MAAM,GAEpE,OAAO464B,EAAOxl5B,KAAK,GACvB,EACA224B,EAAYhs4B,UAAUg54B,aAAe,WACjC3p5B,KAAKmV,QAAQhP,MAAM47R,UAAY,aAC/B,IAAIn5I,EAAS5oJ,KAAKg+4B,cAClBh+4B,KAAKmV,QAAQhP,MAAMqY,MAAQxe,KAAKwe,MAChCxe,KAAKmV,QAAQhP,MAAMyiJ,OAAS5oJ,KAAK4oJ,OACjC,IAAI6iwB,EAAgBzr5B,KAAKmV,QAAQuc,YAAY1xB,KAAKc,cAAc,MAAO,CAAEq1B,GAAIn2B,KAAKmV,QAAQghB,GAAK,iBAC3Fp1B,UAAW,mBAAoB0oV,MAAO,CAAEtjV,MAAO,WAAanG,KAAKmV,QAAQ4/Q,aAAensI,EAAS,GAAK,cAC7F5oJ,KAAKmV,QAAQg7P,YAAc,GAC1B,gEAEdnwQ,KAAK6q5B,YAAcY,EAAc/53B,YAAY1xB,KAAKc,cAAc,SAAU,CACtEq1B,GAAIn2B,KAAKmV,QAAQghB,GAAK,eAAgBszT,MAAO,CAAE/kV,KAAM,kBAEzD1E,KAAKyq5B,YAAcgB,EAAc/53B,YAAY1xB,KAAKc,cAAc,SAAU,CACtEq1B,GAAIn2B,KAAKmV,QAAQghB,GAAK,eAAgBszT,MAAO,CAAE/kV,KAAM,kBAEzD1E,KAAK0r5B,eAAiB1r5B,KAAKc,cAAc,SAAU,CAC/Cq1B,GAAIn2B,KAAKmV,QAAQghB,GAAK,kBAAmBszT,MAAO,CAAE/kV,KAAM,iBAE5D1E,KAAKmr5B,SAAWM,EAAc/53B,YAAY1xB,KAAKc,cAAc,WAAY,CACrEq1B,GAAIn2B,KAAKmV,QAAQghB,GAAK,YAAap1B,UAAW,aAAc0oV,MAAO,CAAE/kV,KAAM,eAE/E1E,KAAKmr5B,SAASn23B,aAAa,aAAc,SACzCh1B,KAAKmr5B,SAAShl5B,MAAMkoI,WAAa,SACjCruI,KAAK6q5B,YAAY1k5B,MAAMqY,MAAQxe,KAAKyq5B,YAAYtk5B,MAAMqY,MAAQxe,KAAK0r5B,eAAevl5B,MAAMqY,MAAQ,OAChGxe,KAAK6q5B,YAAY1k5B,MAAMyiJ,OAAS5oJ,KAAKyq5B,YAAYtk5B,MAAMyiJ,OAAS5oJ,KAAK0r5B,eAAevl5B,MAAMyiJ,OAAS,OACnG5oJ,KAAKyq5B,YAAYtk5B,MAAM+jF,SAAWlqF,KAAK6q5B,YAAY1k5B,MAAM+jF,SAAWlqF,KAAKmr5B,SAAShl5B,MAAM+jF,SAAW,WACnGlqF,KAAKmr5B,SAAShl5B,MAAMy3d,gBAAkB,cACtC59d,KAAKmr5B,SAAShl5B,MAAMi+J,QAAU,OAC9BpkK,KAAKmr5B,SAAShl5B,MAAM4pS,OAAS,OAC7B/vS,KAAK4p5B,aAAe5p5B,KAAK6q5B,YAAYlub,WAAW,MAChD38d,KAAK2r5B,QAAU3r5B,KAAKc,cAAc,MAAO,CACrCq1B,GAAIn2B,KAAKmV,QAAQghB,GAAK,UAAWszT,MAAO,CAAE/kV,KAAM,QAASkn5B,YAAa,eAE1E5r5B,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,UAChCl5iB,KAAKyq5B,YAAYtk5B,MAAMi+J,QAAU,QACjCpkK,KAAK4o5B,aAAe5o5B,KAAKyq5B,YAAY9tb,WAAW,MAChD38d,KAAK6r5B,gBAAkB7r5B,KAAK0r5B,eAAe/ub,WAAW,KAC1D,EACAggb,EAAYhs4B,UAAUiglB,cAAgB,WAClC,IAAItxlB,EAAQU,KACZ,GAAI+rU,GAAkB/rU,KAAKi1nB,WAAclpT,GAAkB/rU,KAAKi1nB,UAAYj1nB,KAAKi1nB,QAAQ7xnB,OAAS,EAAI,CAIlG,GAHApD,KAAKmV,QAAQuc,YAAY1xB,KAAKc,cAAc,MAAO,CAC/Cq1B,GAAIn2B,KAAKmV,QAAQghB,GAAK,eAAgBp1B,UAAW,oBAEjDf,KAAKm7nB,gBACLn7nB,KAAK8r5B,wBAEJ,CACD,IAAIviZ,EAAe,CAAE35J,SAAU,iBAAkBpxD,MAAO,OAAQ5xS,KAAM,QAClEs4hB,YAAalliB,KAAK+zZ,KAAKhuD,YAAY,UAAWxiU,SAAU,IAAIktc,IAAS,CAAEoB,kBAAmB,4BAC1F9lK,GAAkB/rU,KAAK4/4B,mBACvB5/4B,KAAK4/4B,gBAAkB,IAE3B5/4B,KAAK4/4B,gBAAgBxz4B,KAAKm9f,GAC1B,IAAIwiZ,EAAc763B,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,gBACxD613B,EAAYhs5B,KAAKc,cAAc,MAAO,CACtCq1B,GAAIn2B,KAAKmV,QAAQghB,GAAK,aAE1B413B,EAAYr63B,YAAYs63B,GACxB,IAAIC,EAAc,CACd,CACIr8iB,SAAU,iBACVpxD,MAAO,OAAQ5xS,KAAM,QACrBs4hB,YAAalliB,KAAK+zZ,KAAKhuD,YAAY,UACnCxiU,SAAU,IAAIktc,IAAS,CACnBoB,kBAAmB,yBACnBnje,SAAU,WACDpP,EAAMsP,WACHq4U,GAAQM,UACJjoV,EAAMsg5B,gBAAgBx84B,OAAS,IAC7B2oU,GAAkB76S,SAASg8T,eAAe5tV,EAAM6V,QAAQghB,GAAK,cAC/D82T,GAAa/7T,SAASg8T,eAAe5tV,EAAM6V,QAAQghB,GAAK,YAAa,WAAWihH,UAE/E20L,GAAkB76S,SAASg8T,eAAe5tV,EAAM6V,QAAQghB,GAAK,oBAC9D82T,GAAa/7T,SAASg8T,eAAe5tV,EAAM6V,QAAQghB,GAAK,kBAAmB,WAAWihH,UAE1F93I,EAAM4s5B,iBAAgB,EAAOjlkB,GAAQM,SAAU,MAC/CjoV,EAAM6s5B,wBAGF7s5B,EAAMsg5B,gBAAgBx84B,OAAS,IAC7B2oU,GAAkB76S,SAASg8T,eAAe5tV,EAAM6V,QAAQghB,GAAK,cAC/D82T,GAAa/7T,SAASg8T,eAAe5tV,EAAM6V,QAAQghB,GAAK,YAAa,WAAWihH,UAEpF93I,EAAM4s5B,iBAAgB,GAAO,EAAO,OAGhD,MAIZ,IAAIpzX,IAAQ,CAAEhxe,MAAOmk2B,EAAazt4B,MAAO,OACrCi1c,QAAS,WACLn0d,EAAMghS,QAAQ,iBAAkB,CAAE8rnB,YAAa,QACnD,EACA7/V,QAASvsjB,KAAKqs5B,kBAAkBxs5B,KAAKG,OAAS,IAAMA,KAAKmV,QAAQghB,GAAK,YAC1En2B,KAAKss5B,2BACT,CACKvglB,GAAkB76S,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,eAC7Dn2B,KAAKg+4B,cAAgB9s3B,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,YAAY+uO,aAEnF,MAEIllQ,KAAKg+4B,cAAgB,CAE7B,EACArB,EAAYhs4B,UAAUs44B,yBAA2B,WAC7C,GAAIjp5B,KAAKgp5B,uBAAwB,CACT933B,SAAS0I,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,kBACrDzE,YAAY1xB,KAAKc,cAAc,MAAO,CAChDq1B,GAAIn2B,KAAKmV,QAAQghB,GAAK,0BAA2Bp1B,UAAW,iCAEhE,IAAIwr5B,EAAqBr73B,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,2BAQnE,GAPAo23B,EAAmBpm5B,MAAM+jF,SAAW,WAC/B6hP,GAAkB/rU,KAAK2+4B,aACxB4N,EAAmBpm5B,MAAMw9H,KAAO3jI,KAAK2+4B,UAAUC,YAAYn3iB,OAAS,KACpE8kjB,EAAmBpm5B,MAAM+nJ,IAAMluJ,KAAK2+4B,UAAUC,YAAYl3iB,OAAS,MAEvE6kjB,EAAmBpm5B,MAAMqY,MAAQ,OACjC+t4B,EAAmBpm5B,MAAMyiJ,OAAS,OAC9B5oJ,KAAKws5B,2BACLxs5B,KAAKys5B,mCAEJ,CACD,IAAIljZ,EAAe,CAAE35J,SAAU,iBAAkBpxD,MAAO,OAAQ5xS,KAAM,QAClEs4hB,YAAalliB,KAAK+zZ,KAAKhuD,YAAY,UAAWxiU,SAAU,IAAIktc,IAAS,CAAEoB,kBAAmB,4BAC1F9lK,GAAkB/rU,KAAK4/4B,mBACvB5/4B,KAAK4/4B,gBAAkB,IAE3B5/4B,KAAK4/4B,gBAAgBxz4B,KAAKm9f,GAC1B,IAAIwiZ,EAAc763B,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,2BACxDu23B,EAAY1s5B,KAAKc,cAAc,MAAO,CACtCq1B,GAAIn2B,KAAKmV,QAAQghB,GAAK,wBAE1B413B,EAAYr63B,YAAYg73B,GACxB,IAAI5zX,IAAQ,CAAEyzB,QAASvsjB,KAAKqs5B,kBAAkBxs5B,KAAKG,OAAS,IAAMA,KAAKmV,QAAQghB,GAAK,sBACxF,CACJ,CACJ,EACAwm3B,EAAYhs4B,UAAU+44B,wBAA0B,WAC5C,GAAI39kB,GAAkB/rU,KAAKi1nB,WAAclpT,GAAkB/rU,KAAKi1nB,UAAYj1nB,KAAKi1nB,QAAQ7xnB,OAAS,EAAI,CAClGpD,KAAKmV,QAAQuc,YAAY1xB,KAAKc,cAAc,MAAO,CAAEq1B,GAAIn2B,KAAKmV,QAAQghB,GAAK,yBACvEp1B,UAAW,sCAAuC0oV,MAAO,CAAEtjV,MAAO,0BAEtE,IAAI4l5B,EAAc763B,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,0BACxDw23B,EAAY3s5B,KAAKc,cAAc,MAAO,CAAEq1B,GAAIn2B,KAAKmV,QAAQghB,GAAK,uBAClE413B,EAAYr63B,YAAYi73B,EAC5B,CACJ,EACAhQ,EAAYhs4B,UAAUi84B,wBAA0B,SAAUhg5B,EAAMig5B,GAC5D,GAAI7s5B,KAAKm7nB,gBACLn7nB,KAAK8r5B,wBAEJ,CACD,IAAIC,EAAc/r5B,KAAKmV,QAAQykB,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,gBACjE223B,EAAwB9s5B,KAAKmV,QAAQykB,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,0BAuB/E,GAtBA223B,EAAsB5koB,UAAU/0P,OAAO,UACvC253B,EAAsB3m5B,MAAMw9H,KAAOooxB,EAAYppmB,WAAa,KAC/C,WAAT/1S,GACIskB,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,aAAen2B,KAAK4/4B,gBAAgBx84B,OAAS,GACvF6pV,GAAa/7T,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,YAAa,WAAWihH,UAE/E6vM,GAAQM,SACRvnV,KAAKks5B,iBAAgB,GAAO,GAAM,GAGlCls5B,KAAKks5B,iBAAgB,EAAM,KAAM,MAErCls5B,KAAK+s5B,gBACL/s5B,KAAKgt5B,0BAGD973B,SAAS0I,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,sBAAsB+xP,UAAUh1P,SAAS,cACxF+5T,GAAa/7T,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,sBAAuB,WAAWihH,UAE7Fp3I,KAAK+s5B,gBACL/s5B,KAAKit5B,aAAaJ,IAElB5lkB,GAAQM,SAAU,CAClB,IAAI2lkB,EAAMJ,EAAsB/3nB,aAC5Bo4nB,EAAKnt5B,KAAKmV,QAAQykB,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,kBAAkB4+P,aAC9E+3nB,EAAsB3m5B,MAAM+nJ,IAAMluJ,KAAKg+4B,cAAgBmP,EAAKD,EAAM,IACtE,MAEIJ,EAAsB3m5B,MAAM+nJ,IAAMluJ,KAAKg+4B,cAAgB,IAE/D,CACJ,EACArB,EAAYhs4B,UAAUw74B,oBAAsB,WACxC,GAAIpglB,GAAkB/rU,KAAKi1nB,WAAclpT,GAAkB/rU,KAAKi1nB,UAAYj1nB,KAAKi1nB,QAAQ7xnB,OAAS,EAAI,CAIlG,GAHApD,KAAKmV,QAAQuc,YAAY1xB,KAAKc,cAAc,MAAO,CAC/Cq1B,GAAIn2B,KAAKmV,QAAQghB,GAAK,qBAAsBp1B,UAAW,uBAEtDf,KAAKm7nB,gBAAiB,CACvBjqmB,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,kBAAkBhwB,MAAMyiJ,OAAU5oJ,KAAKmV,QAAQ4/Q,aAC9D,EAArB/0R,KAAKg+4B,cAAqB,EAAI,KACpC,IAAI+N,EAAc763B,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,sBACxDi33B,EAAcpt5B,KAAKc,cAAc,MAAO,CACxCq1B,GAAIn2B,KAAKmV,QAAQghB,GAAK,mBAE1B413B,EAAYr63B,YAAY073B,EAC5B,CACApt5B,KAAKqt5B,mBACT,CACJ,EACA1Q,EAAYhs4B,UAAU084B,kBAAoB,WACtC,IAAI/t5B,EAAQU,KACZ,GAAI+rU,GAAkB/rU,KAAKi1nB,WAAclpT,GAAkB/rU,KAAKi1nB,UAAYj1nB,KAAKi1nB,QAAQ7xnB,OAAS,EAC9F,GAAIpD,KAAKm7nB,gBACLn7nB,KAAK8r5B,wBAEJ,CACD,IAAIhk2B,EAAQ9nD,KAAKst5B,qBAUjB,GATA,IAAIx0X,IAAQ,CAAEhxe,MAAOA,EAAOtpC,MAAO,OAC/Bi1c,QAAS,WACLn0d,EAAMiu5B,sBACNju5B,EAAMku5B,gBACNlu5B,EAAMmu5B,qBACNnu5B,EAAMghS,QAAQ,iBAAkB,CAAE8rnB,YAAa,QACnD,EACA7/V,QAASvsjB,KAAKqs5B,kBAAkBxs5B,KAAKG,OACtC,IAAMA,KAAKmV,QAAQghB,GAAK,kBACvBn2B,KAAK4/4B,gBAAgBx84B,OAAS,IAAO2oU,GAAkB76S,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,mBAEjF82T,GAAajtV,KAAKmV,QAAQghB,GAAK,iBAAkB,WACvDyngB,iBAElB,CAER,EACA++W,EAAYhs4B,UAAUm74B,kBAAoB,WACtC,IAAIvo3B,EACA2sZ,EAAalwb,KAAKmV,QAAQghB,GAAK,WAC/B413B,EAAc/r5B,KAAKmV,QAAQykB,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,gBACrE,GAAIn2B,KAAKm7nB,gBAAiB,CAGtB,GAFAn7nB,KAAK0t5B,UAAY1t5B,KAAK+v3B,eAAe/v3B,KAAKm7nB,iBAEtCn7nB,KAAKywW,QACLltU,EAAWvjC,KAAK0t5B,UAAU,CAAE9g5B,KAAM,WAAa5M,KAAM,WAAYkwb,GAAY,QAG5E,GAAIlwb,KAAKkjZ,UAAW,CACrB,IAAIyqgB,EAAe3t5B,KAAK0t5B,UAAU,CAAE9g5B,KAAM,WAAa5M,KAAM,WAAYkwb,GACzE3sZ,EAAyC,IAA7Boq3B,EAAa,GAAGlr3B,SAAkBkr3B,EAAa,GAAKA,EAAa,EACjF,MAEIpq3B,EAAWvjC,KAAK0t5B,UAAU,CAAE9g5B,KAAM,WAAa5M,KAAM,WAAYkwb,GAAY,GAEjF67d,EAAYr63B,YAAY6R,GACxBvjC,KAAKs6V,sBACT,CACJ,EACAqijB,EAAYhs4B,UAAU874B,6BAA+B,WACjD,IAAIlp3B,EACA2sZ,EAAalwb,KAAKmV,QAAQghB,GAAK,sBAC/B413B,EAAc/r5B,KAAKmV,QAAQykB,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,2BACrE,GAAIn2B,KAAKws5B,2BAA4B,CAGjC,GAFAxs5B,KAAK4t5B,qBAAuB5t5B,KAAK+v3B,eAAe/v3B,KAAKws5B,4BAEjDxs5B,KAAKywW,QACLltU,EAAWvjC,KAAK4t5B,qBAAqB,CAAEhh5B,KAAM,WAAa5M,KAAM,WAAYkwb,GAAY,QAGvF,GAAIlwb,KAAKkjZ,UAAW,CACrB,IAAIyqgB,EAAe3t5B,KAAK4t5B,qBAAqB,CAAEhh5B,KAAM,WAAa5M,KAAM,WAAYkwb,GACpF3sZ,EAAyC,IAA7Boq3B,EAAa,GAAGlr3B,SAAkBkr3B,EAAa,GAAKA,EAAa,EACjF,MAEIpq3B,EAAWvjC,KAAK4t5B,qBAAqB,CAAEhh5B,KAAM,WAAa5M,KAAM,WAAYkwb,GAAY,GAE5F67d,EAAYr63B,YAAY6R,GACxBvjC,KAAKs6V,sBACT,CACJ,EACAqijB,EAAYhs4B,UAAUo/2B,eAAiB,SAAUxs1B,GAC7C,GAAIA,EACA,IACI,OAAIrS,SAAS1gB,iBAAiB+yB,GAAUngC,OAC7Bowb,GAAiBtia,SAAS0I,cAAc2J,GAAU2F,UAAUzW,QAG5Dq4U,GAAQvnU,EAEvB,CACA,MAAOtsB,IACH,OAAOu8a,GAAiBjwZ,EAC5B,CAGR,EACAo52B,EAAYhs4B,UAAUk94B,mBAAqB,SAAUC,GACjD,IAAIvkZ,EAAe,GACdukZ,IACDvkZ,EAAan9f,KAAK,CAAE+pB,GAAIn2B,KAAKmV,QAAQghB,GAAK,UAAWy5U,SAAU,iBAAkBpxD,MAAO,OAAQ5xS,KAAM,QAClG22B,SAAU,IAAIktc,IAAS,CAAEoB,kBAAmB,6BAChD03B,EAAan9f,KAAK,CAAEyjS,SAAS,EAAO+/D,SAAU,gCAAiCs1L,YAAalliB,KAAK+zZ,KAAKhuD,YAAY,UAAWvnD,MAAO,UAEpIx+S,KAAK+o5B,iBACDh9kB,GAAkB/rU,KAAKi1nB,WAAclpT,GAAkB/rU,KAAKi1nB,UAAYj1nB,KAAKi1nB,QAAQtqnB,QAAQ,SAAW,IACxG4+f,EAAan9f,KAAK,CAAE+pB,GAAIn2B,KAAKmV,QAAQghB,GAAK,QAAS4ugB,WAAY,iBAAkBn1L,SAAU,kBACvFs1L,YAAalliB,KAAK+zZ,KAAKhuD,YAAY,QAASvnD,MAAO,UAEvDutB,GAAkB/rU,KAAKi1nB,WAAclpT,GAAkB/rU,KAAKi1nB,UAAYj1nB,KAAKi1nB,QAAQtqnB,QAAQ,SAAW,IACxG4+f,EAAan9f,KAAK,CAAE+pB,GAAIn2B,KAAKmV,QAAQghB,GAAK,QAAS4ugB,WAAY,iBAAkBn1L,SAAU,kBACvFs1L,YAAalliB,KAAK+zZ,KAAKhuD,YAAY,QAASvnD,MAAO,UAG1Dx+S,KAAKgk5B,iBAAmBhk5B,KAAKop5B,aAAaC,YAAcjN,IAAYtjX,WAAasjX,IAAYtjX,WAC1F/sN,GAAkB/rU,KAAKi1nB,WAAclpT,GAAkB/rU,KAAKi1nB,UAAYj1nB,KAAKi1nB,QAAQtqnB,QAAQ,YAAc,IAC3G4+f,EAAan9f,KAAK,CAAE+pB,GAAIn2B,KAAKmV,QAAQghB,GAAK,WAAY4ugB,WAAY,qBAAsBn1L,SAAU,sBAC9Fs1L,YAAalliB,KAAK+zZ,KAAKhuD,YAAY,WAAYvnD,MAAO,UAE1DutB,GAAkB/rU,KAAKi1nB,WAAclpT,GAAkB/rU,KAAKi1nB,UAAYj1nB,KAAKi1nB,QAAQtqnB,QAAQ,WAAa,IAC1G4+f,EAAan9f,KAAK,CAAE+pB,GAAIn2B,KAAKmV,QAAQghB,GAAK,UAAW4ugB,WAAY,oBAAqBn1L,SAAU,sBAC5Fs1L,YAAalliB,KAAK+zZ,KAAKhuD,YAAY,UAAWvnD,MAAO,UAIjE,IADA,IAAIuvmB,EAAmB/t5B,KAAKgu5B,eAAe,QAClC7h5B,EAAI,EAAGwjD,EAAMo+1B,EAAiB3q5B,OAAQ+I,EAAIwjD,EAAKxjD,IACpDo9f,EAAan9f,KAAK2h5B,EAAiB5h5B,IAEvC,OAAOo9f,CACX,EACAozY,EAAYhs4B,UAAUs94B,oBAAsB,SAAUH,GAClD,IAAIvkZ,EAAe,GACfukZ,IACAvkZ,EAAan9f,KAAK,CAAE+pB,GAAIn2B,KAAKmV,QAAQghB,GAAK,MAAO4ugB,WAAY,kBAAmBn1L,SAAU,kBACtFs1L,YAAalliB,KAAK+zZ,KAAKhuD,YAAY,MAAOvnD,MAAO,UACrD+qN,EAAan9f,KAAK,CAAE+pB,GAAIn2B,KAAKmV,QAAQghB,GAAK,UAAW4ugB,WAAY,kBAAmBn1L,SAAU,kBAC1Fs1L,YAAalliB,KAAK+zZ,KAAKhuD,YAAY,UAAWvnD,MAAO,YAEzDutB,GAAkB/rU,KAAKi1nB,WAAclpT,GAAkB/rU,KAAKi1nB,UAAYj1nB,KAAKi1nB,QAAQtqnB,QAAQ,UAAY,IACzG4+f,EAAan9f,KAAK,CAAE+pB,GAAIn2B,KAAKmV,QAAQghB,GAAK,SAAU4ugB,WAAY,sBAAuBn1L,SAAU,uBAC7Fs1L,YAAalliB,KAAK+zZ,KAAKhuD,YAAY,SAAUvnD,MAAO,UAEvDsvmB,IACG/hlB,GAAkB/rU,KAAKi1nB,WAAclpT,GAAkB/rU,KAAKi1nB,UAAYj1nB,KAAKi1nB,QAAQtqnB,QAAQ,SAAW,IACxG4+f,EAAan9f,KAAK,CAAE+pB,GAAIn2B,KAAKmV,QAAQghB,GAAK,QAAS4ugB,WAAY,qBAAsBn1L,SAAU,kBAC3Fs1L,YAAalliB,KAAK+zZ,KAAKhuD,YAAY,QAASvnD,MAAO,QAASj7Q,SAAU,eAAiBvjC,KAAKmV,QAAQghB,GAAK,wBAIrH,IADA,IAAI433B,EAAmB/t5B,KAAKgu5B,eAAe,SAClC7h5B,EAAI,EAAGwjD,EAAMo+1B,EAAiB3q5B,OAAQ+I,EAAIwjD,EAAKxjD,IACpDo9f,EAAan9f,KAAK2h5B,EAAiB5h5B,IAEvC,OAAOo9f,CACX,EACAozY,EAAYhs4B,UAAU284B,mBAAqB,SAAUY,GACjD,IAAI3kZ,EAAe,IACfx9L,GAAkB/rU,KAAKi1nB,WAAclpT,GAAkB/rU,KAAKi1nB,UAAYj1nB,KAAKi1nB,QAAQtqnB,QAAQ,SAAW,IACxG4+f,EAAan9f,KAAK,CAAE+pB,GAAIn2B,KAAKmV,QAAQghB,GAAK,QAAS+ugB,YAAalliB,KAAK+zZ,KAAKhuD,YAAY,QAASvnD,MAAO,SAClGj7Q,SAAU,eAAiBvjC,KAAKmV,QAAQghB,GAAK,yBAGjD41S,GAAkB/rU,KAAKi1nB,WAAclpT,GAAkB/rU,KAAKi1nB,UAAYj1nB,KAAKi1nB,QAAQtqnB,QAAQ,aAAe,IAC5G4+f,EAAan9f,KAAK,CAAE+pB,GAAIn2B,KAAKmV,QAAQghB,GAAK,cAAe+ugB,YAAalliB,KAAK+zZ,KAAKhuD,YAAY,cAAevnD,MAAO,SAC9Gj7Q,SAAU,eAAiBvjC,KAAKmV,QAAQghB,GAAK,+BAEjD41S,GAAkB/rU,KAAKi1nB,WAAclpT,GAAkB/rU,KAAKi1nB,UAAYj1nB,KAAKi1nB,QAAQtqnB,QAAQ,cAAgB,IAC7G4+f,EAAan9f,KAAK,CAAE+pB,GAAIn2B,KAAKmV,QAAQghB,GAAK,aAAc+ugB,YAAalliB,KAAK+zZ,KAAKhuD,YAAY,aAAcvnD,MAAO,SAC5Gj7Q,SAAU,eAAiBvjC,KAAKmV,QAAQghB,GAAK,8BAGjD41S,GAAkB/rU,KAAKi1nB,WAAclpT,GAAkB/rU,KAAKi1nB,UAAYj1nB,KAAKi1nB,QAAQtqnB,QAAQ,aAAe,IAC5G4+f,EAAan9f,KAAK,CAAE+pB,GAAIn2B,KAAKmV,QAAQghB,GAAK,cAAe4ugB,WAAY,uBAAwBn1L,SAAU,wBACnGs1L,YAAalliB,KAAK+zZ,KAAKhuD,YAAY,YAAavnD,MAAO,YAE3DutB,GAAkB/rU,KAAKi1nB,WAAclpT,GAAkB/rU,KAAKi1nB,UAAYj1nB,KAAKi1nB,QAAQtqnB,QAAQ,WAAa,IAC1G4+f,EAAan9f,KAAK,CAAE+pB,GAAIn2B,KAAKmV,QAAQghB,GAAK,UAAW4ugB,WAAY,oBAAqBn1L,SAAU,qBAC5Fs1L,YAAalliB,KAAK+zZ,KAAKhuD,YAAY,UAAWvnD,MAAO,WAG7D,IADA,IAAIuvmB,EAAmB/t5B,KAAKgu5B,eAAe,UAClC7h5B,EAAI,EAAGwjD,EAAMo+1B,EAAiB3q5B,OAAQ+I,EAAIwjD,EAAKxjD,IACpDo9f,EAAan9f,KAAK2h5B,EAAiB5h5B,IAQvC,OANI+h5B,IACA3kZ,EAAan9f,KAAK,CAAE+pB,GAAIn2B,KAAKmV,QAAQghB,GAAK,MAAO4ugB,WAAY,kBAAmBn1L,SAAU,kBACtFs1L,YAAalliB,KAAK+zZ,KAAKhuD,YAAY,MAAOvnD,MAAO,UACrD+qN,EAAan9f,KAAK,CAAE+pB,GAAIn2B,KAAKmV,QAAQghB,GAAK,UAAW4ugB,WAAY,kBAAmBn1L,SAAU,kBAC1Fs1L,YAAalliB,KAAK+zZ,KAAKhuD,YAAY,UAAWvnD,MAAO,WAEtD+qN,CACX,EACAozY,EAAYhs4B,UAAUw94B,mBAAqB,WAEvC,MADmB,EAEvB,EACAxR,EAAYhs4B,UAAUq94B,eAAiB,SAAU9j0B,GAC7C,IAAIq/a,EAAe,GACnB,GAAIvpgB,KAAKi1nB,QACL,IAAK,IAAI9onB,EAAI,EAAGwjD,EAAM3vD,KAAKi1nB,QAAQ7xnB,OAAQ+I,EAAIwjD,EAAKxjD,IACf,kBAArBnM,KAAKi1nB,QAAQ9onB,KACjB4/T,GAAkB/rU,KAAKi1nB,QAAQ9onB,GAAGqyS,OACjB,SAAbt0N,GACAq/a,EAAan9f,KAAKpM,KAAKi1nB,QAAQ9onB,IAG9BnM,KAAKi1nB,QAAQ9onB,GAAGqyS,MAAM99R,gBAAkBwpE,GAC7Cq/a,EAAan9f,KAAKpM,KAAKi1nB,QAAQ9onB,KAK/C,OAAOo9f,CACX,EACAozY,EAAYhs4B,UAAUy94B,kBAAoB,SAAUtm2B,GAChD,IAAIyhd,EAAe,GACnB,GAAIzhd,EACA,IAAK,IAAI37C,EAAI,EAAGwjD,EAAM7H,EAAM1kD,OAAQ+I,EAAIwjD,EAAKxjD,IACf,kBAAd27C,EAAM37C,KACd27C,EAAM37C,GAAGqyS,MAAQ,SACjB+qN,EAAan9f,KAAK07C,EAAM37C,KAIpC,OAAOo9f,CACX,EACAozY,EAAYhs4B,UAAU094B,kBAAoB,WACtC,IAAIC,EAASp93B,SAAS0I,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,WACxDo43B,EAAUr93B,SAAS0I,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,YACxD41S,GAAkBuilB,KACnBA,EAAOhz3B,iBAAiB,YAAat7B,KAAKwu5B,0BAA0B3u5B,KAAKG,OACzEsu5B,EAAOhz3B,iBAAiB,UAAWt7B,KAAKyu5B,sBAAsB5u5B,KAAKG,OACnEsu5B,EAAOhz3B,iBAAiB,QAASt7B,KAAK0u5B,sBAAsB7u5B,KAAKG,OACjEsu5B,EAAOhz3B,iBAAiB,aAAct7B,KAAK0u5B,sBAAsB7u5B,KAAKG,QAErE+rU,GAAkBwilB,KACnBA,EAAQjz3B,iBAAiB,YAAat7B,KAAK2u5B,2BAA2B9u5B,KAAKG,OAC3Euu5B,EAAQjz3B,iBAAiB,UAAWt7B,KAAKyu5B,sBAAsB5u5B,KAAKG,OACpEuu5B,EAAQjz3B,iBAAiB,QAASt7B,KAAK4u5B,uBAAuB/u5B,KAAKG,OACnEsu5B,EAAOhz3B,iBAAiB,aAAct7B,KAAK0u5B,sBAAsB7u5B,KAAKG,OAE9E,EACA284B,EAAYhs4B,UAAU0gjB,UAAY,WAC9B,OAAQtlP,GAAkB/rU,KAAKi1nB,WAAclpT,GAAkB/rU,KAAKi1nB,UAAYj1nB,KAAKi1nB,QAAQ7xnB,OAAS,IAC9F2oU,GAAkB/rU,KAAKm7nB,gBACnC,EACAwhR,EAAYhs4B,UAAUu74B,gBAAkB,SAAUgC,EAAe3mkB,EAAUumkB,GACvE,IAAIxu5B,EAAQU,KACZ,GAAIA,KAAKqxjB,YAAa,CAClB,IAAIw9V,EAAW7u5B,KAAK6t5B,mBAAmBC,GACnCgB,EAAY9u5B,KAAKiu5B,oBAAoBH,GACrCiB,EAAW/u5B,KAAKst5B,mBAAmBY,GACnCc,EAAWhv5B,KAAKmu5B,qBAwBpB,GAtBInu5B,KAAK4/4B,gBADLr4jB,EACuBsnkB,EAASz14B,OAAO014B,GAGhBD,EAASz14B,OAAO214B,EAAUD,EAAWE,GAEhE,IAAIl2X,IAAQ,CACRt6gB,MAAO,OACPspC,MAAO9nD,KAAK4/4B,gBACZrzV,QAASvsjB,KAAKqs5B,kBAAkBxs5B,KAAKG,MACrCyzd,QAAS,WACAlsI,IACDjoV,EAAMiu5B,sBACNju5B,EAAMku5B,gBACNlu5B,EAAMmu5B,sBAEVnu5B,EAAM+u5B,oBACN/u5B,EAAM2v5B,gBACN3v5B,EAAMghS,QAAQ,iBAAkB,CAAE8rnB,YAAa,QACnD,GACD,IAAMps5B,KAAKmV,QAAQghB,GAAK,YAC3Bn2B,KAAKss5B,4BACLts5B,KAAKkv5B,0BACDlv5B,KAAKqxjB,cAAiBtlP,GAAkB76S,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,aAElE82T,GAAajtV,KAAKmV,QAAQghB,GAAK,WAAY,WACjDyngB,iBAElB,CACJ,EACA++W,EAAYhs4B,UAAUu+4B,wBAA0B,WAC5C,IAAI5wb,EAAOptc,SAAS0I,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,SACrD41S,GAAkBuyJ,IAA+B,IAAtBt+d,KAAKq+4B,cAI3BtykB,GAAkBuyJ,IAASt+d,KAAKq+4B,aAAe,IACrD//a,EAAKp2M,UAAU/0P,OAAO,cACtBmrc,EAAKzoM,cAAc3N,UAAU/0P,OAAO,eALpCmrc,EAAKp2M,UAAU90P,IAAI,cACnBkrc,EAAKzoM,cAAc3N,UAAU90P,IAAI,cAMrC,IAAImrc,EAAOrtc,SAAS0I,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,SACrD41S,GAAkBwyJ,IAAUv+d,KAAKq+4B,eAAiBr+4B,KAAKwk5B,oBAAoBph5B,SAItE2oU,GAAkBwyJ,IAAgC,IAAtBv+d,KAAKq+4B,cAAsBr+4B,KAAKwk5B,oBAAoBph5B,OAAS,IAIzF2oU,GAAkBwyJ,IAASv+d,KAAKq+4B,aAAe,KAHrD9/a,EAAKr2M,UAAU/0P,OAAO,cACtBorc,EAAK1oM,cAAc3N,UAAU/0P,OAAO,eALpCorc,EAAKr2M,UAAU90P,IAAI,cACnBmrc,EAAK1oM,cAAc3N,UAAU90P,IAAI,cAUrC,IAAIk73B,EAASp93B,SAAS0I,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,YACvD41S,GAAkBuilB,IAAWtu5B,KAAKop5B,aAAarI,YAAc/g5B,KAAKop5B,aAAaU,eAChFwE,EAAOpmoB,UAAU90P,IAAI,cACrBk73B,EAAOz4nB,cAAc3N,UAAU90P,IAAI,cAE7B24S,GAAkBuilB,KACxBA,EAAOpmoB,UAAU/0P,OAAO,cACxBm73B,EAAOz4nB,cAAc3N,UAAU/0P,OAAO,cAE1C,IAAIo73B,EAAUr93B,SAAS0I,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,YACxD41S,GAAkBwilB,IAAgC,IAApBvu5B,KAAK+g5B,WAI9Bh1kB,GAAkBwilB,KACxBA,EAAQrmoB,UAAU/0P,OAAO,cACzBo73B,EAAQ14nB,cAAc3N,UAAU/0P,OAAO,eALvCo73B,EAAQrmoB,UAAU90P,IAAI,cACtBm73B,EAAQ14nB,cAAc3N,UAAU90P,IAAI,cAMxC,IAAI+73B,EAAMj+3B,SAAS0I,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,QACpD41S,GAAkBojlB,IAA4B,IAApBnv5B,KAAK+g5B,WAG1Bh1kB,GAAkBojlB,KACxBA,EAAIhp5B,MAAMi+J,QAAU,SAHpB+qvB,EAAIhp5B,MAAMi+J,QAAU,MAK5B,EACAu4uB,EAAYhs4B,UAAU274B,0BAA4B,WAC9C,QAA6Bjp5B,IAAzBrD,KAAK4/4B,iBAAiC5/4B,KAAK4/4B,gBAAgBx84B,OAAS,IAClE2oU,GAAkB76S,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,aAAe,CAC7E,IAAIi53B,EAAYl+3B,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,YACrDyD,cAAc,mBACnB,GAAIw13B,EAAW,CACX,IAAIC,EAAaD,EAAUz53B,qBAAqB,SAAS,GACrD253B,EAAgBF,EAAUz53B,qBAAqB,UAAU,GAC7D253B,EAAcvu5B,UAAY,uCAC1Buu5B,EAAcpm3B,UAAY,GAC1Bom3B,EAAc593B,YAAY1xB,KAAKc,cAAc,OAAQ,CACjDC,UAAW,kDAEfsu5B,EAAWznd,SAAW5nc,KAAKuv5B,WAAW1v5B,KAAKG,KAAMqv5B,EACrD,CACJ,CACJ,EACA1S,EAAYhs4B,UAAU6+4B,kBAAoB,WACjCzjlB,GAAkB/rU,KAAK2+4B,UAAUnzwB,QAAiD,SAAvCxrI,KAAK2+4B,UAAUnzwB,MAAM74G,MAAM,KAAK,IAC5E3yB,KAAKyv5B,OAEb,EACA9S,EAAYhs4B,UAAU484B,oBAAsB,WACxC,IAAIju5B,EAAQU,KAERgmM,EAAQhmM,KACR8nD,EAAQ,IACRikR,GAAkB/rU,KAAKi1nB,WAAclpT,GAAkB/rU,KAAKi1nB,UAAYj1nB,KAAKi1nB,QAAQtqnB,QAAQ,QAAU,IACvGm9C,EAAM17C,KAAK,CAAE6zB,KAAMjgC,KAAK+zZ,KAAKhuD,YAAY,OAAQ5vU,GAAI,MAAO81Z,QAAS,wBAErElgH,GAAkB/rU,KAAKi1nB,WAAclpT,GAAkB/rU,KAAKi1nB,UAAYj1nB,KAAKi1nB,QAAQtqnB,QAAQ,SAAW,IACxGm9C,EAAM17C,KAAK,CAAE6zB,KAAMjgC,KAAK+zZ,KAAKhuD,YAAY,QAAS5vU,GAAI,OAAQ81Z,QAAS,oBAEvElgH,GAAkB/rU,KAAKi1nB,WAAclpT,GAAkB/rU,KAAKi1nB,UAAYj1nB,KAAKi1nB,QAAQtqnB,QAAQ,cAAgB,IAC7Gm9C,EAAM17C,KAAK,CAAE6zB,KAAMjgC,KAAK+zZ,KAAKhuD,YAAY,aAAc5vU,GAAI,YAAa81Z,QAAS,yBAEjFlgH,GAAkB/rU,KAAKi1nB,WAAclpT,GAAkB/rU,KAAKi1nB,UAAYj1nB,KAAKi1nB,QAAQtqnB,QAAQ,YAAc,IAC3Gm9C,EAAM17C,KAAK,CAAE6zB,KAAMjgC,KAAK+zZ,KAAKhuD,YAAY,WAAY5vU,GAAI,UAAW81Z,QAAS,sBAK7ElgH,GAAkB/rU,KAAKi1nB,WAAclpT,GAAkB/rU,KAAKi1nB,UAAYj1nB,KAAKi1nB,QAAQtqnB,QAAQ,SAAW,IACxGm9C,EAAM17C,KAAK,CAAE6zB,KAAMjgC,KAAK+zZ,KAAKhuD,YAAY,QAAS5vU,GAAI,OAAQ81Z,QAAS,uBAE3E,IAAIyje,EAAa,IAAItpX,IAAe,CAAEt+e,MAAOA,EAAOmkY,QAAS,uBACzDr8E,SAAU,gBACV9sO,KAAM,SAAU7pH,GACRguU,GAAQM,WACRtuU,EAAK9D,QAAQ0gR,cAAc1vR,MAAM+nJ,IAAMwhwB,EAAWv64B,QAAQs/Q,wBAAwBvmI,IAC9Ej1I,EAAK9D,QAAQ0gR,cAAcd,aAAe,KAEtD,EACAy1D,OAAQ,SAAUvxU,GACd3Z,EAAMkw5B,oBACN,IACIG,EADAC,GAAkB,EAiBtB,YAf8Bvs5B,IAA1B/D,EAAMq/4B,UAAUnzwB,QAChBmkxB,EAAarw5B,EAAMq/4B,UAAUnzwB,MAAM74G,MAAM,YAE1BtvB,IAAfss5B,GAA4Brw5B,EAAM2/4B,YAAYM,mBAG1Bl84B,IAAfss5B,GAA8C,SAAlBA,EAAW,MAF5CC,GAAkB,GAKtBtw5B,EAAM2/4B,YAAYM,cAAe,GAC7BqQ,GAAmBtw5B,EAAM2+4B,aACzB3+4B,EAAMuw5B,mBACNvw5B,EAAMsp5B,aAAa7pb,UAAU,EAAG,EAAGz/d,EAAMmr5B,YAAYjs4B,MAAOlf,EAAMmr5B,YAAY7hwB,QAC9EtpJ,EAAMww5B,sBAEF724B,EAAKsc,KAAKY,IACd,IAAK,MACD6vK,EAAM+8sB,oBAAsB/8sB,EAAM68sB,gBAClC78sB,EAAM+9sB,6BAA+B/9sB,EAAM89sB,yBAC3C99sB,EAAMu4sB,eAAiB,MACvBj/4B,EAAMyw5B,cAAa,GACnB,MACJ,IAAK,OACD/ptB,EAAMu4sB,eAAiB,OACvBj/4B,EAAM0w5B,gBACN,MACJ,QACIhqtB,EAAMu4sB,eAAiB,SACvBv4sB,EAAMiqtB,UAAWh34B,EAAKsc,KAAKY,GAAIzV,eAGvCphB,EAAM4w5B,oBACV,IAGJR,EAAWh3jB,SAAS,IAAM14V,KAAKmV,QAAQghB,GAAK,iBAChD,EACAwm3B,EAAYhs4B,UAAU684B,cAAgB,WAClC,IAAIlu5B,EAAQU,KACR8nD,EAAQ,IACRikR,GAAkB/rU,KAAKi1nB,WAAclpT,GAAkB/rU,KAAKi1nB,UAAYj1nB,KAAKi1nB,QAAQtqnB,QAAQ,oBAAsB,IACnHm9C,EAAM17C,KAAK,CAAE6zB,KAAMjgC,KAAK+zZ,KAAKhuD,YAAY,UAAW5vU,GAAI,SAAU81Z,QAAS,sBAE3ElgH,GAAkB/rU,KAAKi1nB,WAAclpT,GAAkB/rU,KAAKi1nB,UAAYj1nB,KAAKi1nB,QAAQtqnB,QAAQ,oBAAsB,IACnHm9C,EAAM17C,KAAK,CAAE6zB,KAAMjgC,KAAK+zZ,KAAKhuD,YAAY,UAAW5vU,GAAI,SAAU81Z,QAAS,sBAE3ElgH,GAAkB/rU,KAAKi1nB,WAAclpT,GAAkB/rU,KAAKi1nB,UAAYj1nB,KAAKi1nB,QAAQtqnB,QAAQ,oBAAsB,IACnHm9C,EAAM17C,KAAK,CAAE6zB,KAAMjgC,KAAK+zZ,KAAKhuD,YAAY,UAAW5vU,GAAI,SAAU81Z,QAAS,sBAE3ElgH,GAAkB/rU,KAAKi1nB,WAAclpT,GAAkB/rU,KAAKi1nB,UAAYj1nB,KAAKi1nB,QAAQtqnB,QAAQ,mBAAqB,KAClHm9C,EAAM17C,KAAK,CAAE6zB,KAAM,MAAO9J,GAAI,MAAO81Z,QAAS,uBAC9CnkY,EAAM17C,KAAK,CAAE6zB,KAAM,MAAO9J,GAAI,MAAO81Z,QAAS,uBAC9CnkY,EAAM17C,KAAK,CAAE6zB,KAAM,MAAO9J,GAAI,MAAO81Z,QAAS,uBAC9CnkY,EAAM17C,KAAK,CAAE6zB,KAAM,MAAO9J,GAAI,MAAO81Z,QAAS,uBAC9CnkY,EAAM17C,KAAK,CAAE6zB,KAAM,OAAQ9J,GAAI,OAAQ81Z,QAAS,wBAEpD,IAAIyje,EAAa,IAAItpX,IAAe,CAChCtja,KAAM,SAAU7pH,GACR3Z,EAAM2+4B,WACN3+4B,EAAM6w5B,YAENlpkB,GAAQM,WACRtuU,EAAK9D,QAAQ0gR,cAAc1vR,MAAM+nJ,IAAMwhwB,EAAWv64B,QAAQs/Q,wBAAwBvmI,IAC9Ej1I,EAAK9D,QAAQ0gR,cAAcd,aAAe,OAE7Cg3C,GAAkBzsU,EAAMq/4B,UAAUnzwB,QAAUlsI,EAAMq/4B,UAAUnzwB,MAAM74G,MAAM,KAAKvvB,OAAS,GACvF8tB,SAASg8T,eAAe5tV,EAAMq/4B,UAAUnzwB,MAAM74G,MAAM,KAAK,IAAIu1P,UAAU90P,IAAI,aAEnF,EACA00B,MAAOA,EAAO0iS,OAAQxqV,KAAKow5B,WAAWvw5B,KAAKG,MAC3Cisb,QAAS,mBAAoBr8E,SAAU,kBAE3C8/iB,EAAWh3jB,SAAS,IAAM14V,KAAKmV,QAAQghB,GAAK,WAChD,EACAwm3B,EAAYhs4B,UAAU884B,mBAAqB,WACvC,IAAI3l2B,EAAQ,IACRikR,GAAkB/rU,KAAKi1nB,WAAclpT,GAAkB/rU,KAAKi1nB,UAAYj1nB,KAAKi1nB,QAAQtqnB,QAAQ,eAAiB,IAC9Gm9C,EAAM17C,KAAK,CAAE6zB,KAAMjgC,KAAK+zZ,KAAKhuD,YAAY,cAAe5vU,GAAI,aAAc81Z,QAAS,+BAEnFlgH,GAAkB/rU,KAAKi1nB,WAAclpT,GAAkB/rU,KAAKi1nB,UAAYj1nB,KAAKi1nB,QAAQtqnB,QAAQ,gBAAkB,IAC/Gm9C,EAAM17C,KAAK,CAAE6zB,KAAMjgC,KAAK+zZ,KAAKhuD,YAAY,eAAgB5vU,GAAI,cAAe81Z,QAAS,0BAErFlgH,GAAkB/rU,KAAKi1nB,WAAclpT,GAAkB/rU,KAAKi1nB,UAAYj1nB,KAAKi1nB,QAAQtqnB,QAAQ,mBAAqB,IAClHm9C,EAAM17C,KAAK,CAAE6zB,KAAMjgC,KAAK+zZ,KAAKhuD,YAAY,kBAAmB5vU,GAAI,iBAAkB81Z,QAAS,+BAE3FlgH,GAAkB/rU,KAAKi1nB,WAAclpT,GAAkB/rU,KAAKi1nB,UAAYj1nB,KAAKi1nB,QAAQtqnB,QAAQ,iBAAmB,IAChHm9C,EAAM17C,KAAK,CAAE6zB,KAAMjgC,KAAK+zZ,KAAKhuD,YAAY,gBAAiB5vU,GAAI,eAAgB81Z,QAAS,4BAE3F,IAAIyje,EAAa,IAAItpX,IAAe,CAChCtja,KAAM,SAAU7pH,GACZ,GAAIguU,GAAQM,SAAU,CAClB,IAAI4lkB,EAAKl04B,EAAK9D,QAAQ0gR,cAAcd,aACpC97Q,EAAK9D,QAAQ0gR,cAAc1vR,MAAMi+J,QAAU,OAC3CnrJ,EAAK9D,QAAQ0gR,cAAc1vR,MAAM+nJ,IAAMwhwB,EAAWv64B,QAAQs/Q,wBAAwBvmI,IAC9Ei/vB,EAAK,KACTl04B,EAAK9D,QAAQ0gR,cAAc1vR,MAAMi+J,QAAU,OAC/C,CACJ,EACAt8G,MAAOA,EAAO0iS,OAAQxqV,KAAKqw5B,gBAAgBxw5B,KAAKG,MAChDisb,QAAS,sBAAuBr8E,SAAU,kBAE9C8/iB,EAAWh3jB,SAAS,IAAM14V,KAAKmV,QAAQghB,GAAK,gBAChD,EACAwm3B,EAAYhs4B,UAAUs+4B,cAAgB,WAClC,IAAIqB,EAAiBvilB,GAAY78S,SAASg8T,eAAeltV,KAAKmV,QAAQghB,IAAK6u3B,GAO3E,GADc9z3B,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,YAC3C,CAET,IAAIo63B,EAAiB,IAAInqX,IAAe,CAAEt+e,MAR9B,CACZ,CAAE7nB,KAAM,OAAQ9J,GAAI,QACpB,CAAE8J,KAAM,MAAO9J,GAAI,OACnB,CAAE8J,KAAM,MAAO9J,GAAI,QAKyCy5U,SAAU,6BAA8Bq8E,QAAS,iBACzGzhG,OAAQ,SAAUvxU,GACdq34B,EAAeE,OAAOv34B,EAAKsc,KAAK0K,KACpC,IAEJsw3B,EAAe73jB,SAAS,IAAM14V,KAAKmV,QAAQghB,GAAK,WACpD,CACJ,EACAwm3B,EAAYhs4B,UAAUy/4B,WAAa,SAAUn34B,GACzCjZ,KAAKsi5B,WAAY,EACjBti5B,KAAK+g5B,WAAa/g5B,KAAKui5B,eACvB,IAAIti3B,EAAOhnB,EAAKsc,KAAKY,GACrBn2B,KAAKu+4B,eAAiB,OACtBv+4B,KAAKyw5B,mBAAqB,KAC1Bzw5B,KAAKwqV,OAAOvqT,GACZjgC,KAAKs0jB,eAAe,QAAQ,GAAM,GAClCt0jB,KAAK0w5B,oBAAmB,GACxB1w5B,KAAKkv5B,yBACT,EACAvS,EAAYhs4B,UAAU0/4B,gBAAkB,SAAUp34B,GAC1CjZ,KAAKi/4B,YAAYS,cACjB1/4B,KAAK2w5B,sBAET3w5B,KAAKwv5B,oBACLxv5B,KAAK4w5B,sBAAwB,KAC7B5w5B,KAAK6w5B,sBAAsB534B,EAAKsc,KAAKY,IACrCn2B,KAAK8w5B,0BAA0B,KACnC,EACAnU,EAAYhs4B,UAAUog5B,UAAY,WAC9B,GAA+B,IAA3B/w5B,KAAKwi5B,kBAAyB,CAC9B,IAAI5F,EAAa584B,KAAK484B,WACtB584B,KAAKgx5B,oBAAsBhx5B,KAAKix5B,gBAChCjx5B,KAAKgx5B,oBAAoBzT,QAAU9zzB,GAAO,GAAIzpF,KAAKu94B,QAAS,MAAM,GAClEv94B,KAAKgx5B,oBAAoB/zb,UAAYxzY,GAAO,CAAC,EAAGzpF,KAAKi9d,UAAW,MAAM,GACtEj9d,KAAKgx5B,oBAAoBtN,iBAAmBj6zB,GAAO,GAAIzpF,KAAK0j5B,iBAAkB,IAAI,GAClF1j5B,KAAK484B,YAAa,EACd584B,KAAKwi5B,kBAAoB,EACzBxi5B,KAAKkx5B,YAAYlx5B,KAAKwi5B,mBAGtBxi5B,KAAKkx5B,WAAWtt5B,KAAK8Y,IAAI1c,KAAKwi5B,oBAElCxi5B,KAAK484B,WAAaA,CACtB,CACJ,EACAD,EAAYhs4B,UAAUkg5B,sBAAwB,SAAU5w3B,GACpD,IAAI+g3B,EAAiBhh5B,KAAKwi5B,kBACtB5F,EAAa584B,KAAK484B,WAClBuU,EAAc1n0B,GAAO,CAAC,EAAGzpF,KAAKmj5B,QAAS,CAAC,GAAG,GAG/C,GAFAnj5B,KAAK+w5B,YACL/w5B,KAAKox5B,gBAAgBnx3B,GACE,IAAnB+g3B,EAAsB,CACtBhh5B,KAAK484B,YAAa,EAClB584B,KAAKkx5B,WAAWlQ,GAChBhh5B,KAAK484B,WAAaA,EAClB,IAAIx14B,EAAQ,GACC,eAAT64B,GAAkC,gBAATA,EACzB74B,EAAQ,SAEM,mBAAT64B,GAAsC,iBAATA,IAClC74B,EAAQ,QAEZpH,KAAKqx5B,mBAAmBjq5B,EAAOpH,KAAKgx5B,oBAAqBhx5B,KAAKgx5B,oBAAoBzT,QAASv94B,KAAKgx5B,oBAAoB/zb,UAAWk0b,GAC/Hnx5B,KAAKgx5B,oBAAsB,IAC/B,CACJ,EACArU,EAAYhs4B,UAAUyg5B,gBAAkB,SAAUnx3B,GAC9C,OAAQA,EAAKvf,eACT,IAAK,aACD1gB,KAAKsx5B,aAAa,IAClB,MACJ,IAAK,cACDtx5B,KAAKsx5B,YAAY,IACjB,MACJ,IAAK,iBACDtx5B,KAAKux5B,UAAUrV,IAAUsV,YACzB,MACJ,IAAK,eACDxx5B,KAAKux5B,UAAUrV,IAAUuV,UAGrC,EACA9U,EAAYhs4B,UAAU+g5B,qBAAuB,SAAU5p2B,GACnD,IAAIyhd,EAAe,GACfzhd,EAAMn9C,QAAQ,cAAgB,GAC9B4+f,EAAan9f,KAAK,CAAE24hB,WAAY,iBAAkB5ugB,GAAIn2B,KAAKmV,QAAQghB,GAAK,aACpEy5U,SAAU,kBAAmBs1L,YAAalliB,KAAK+zZ,KAAKhuD,YAAY,aAAcvnD,MAAO,SAAU5xS,KAAM,QACrG22B,SAAU,eAAiBvjC,KAAKmV,QAAQghB,GAAK,6BAEjD2xB,EAAMn9C,QAAQ,gBAAkB,GAChC4+f,EAAan9f,KAAK,CAAE24hB,WAAY,iBAAkB5ugB,GAAIn2B,KAAKmV,QAAQghB,GAAK,eACpEy5U,SAAU,oBAAqBs1L,YAAalliB,KAAK+zZ,KAAKhuD,YAAY,eAAgBvnD,MAAO,SAAU5xS,KAAM,QACzG22B,SAAU,eAAiBvjC,KAAKmV,QAAQghB,GAAK,+BAEjD2xB,EAAMn9C,QAAQ,gBAAkB,GAChC4+f,EAAan9f,KAAK,CAAE+pB,GAAIn2B,KAAKmV,QAAQghB,GAAK,eAAgBy5U,SAAU,kBAAmBs1L,YAAa,eAAgB1mP,MAAO,SACvH5xS,KAAM,QAAS22B,SAAU,eAAiBvjC,KAAKmV,QAAQghB,GAAK,+BAGpE,IADA,IAAI433B,EAAmB/t5B,KAAKou5B,kBAAkBtm2B,GACrC37C,EAAI,EAAGwjD,EAAMo+1B,EAAiB3q5B,OAAQ+I,EAAIwjD,EAAKxjD,IACpDo9f,EAAan9f,KAAK2h5B,EAAiB5h5B,IAQvC,OANK86U,GAAQM,WACTgiL,EAAan9f,KAAK,CAAE+pB,GAAIn2B,KAAKmV,QAAQghB,GAAK,MAAO4ugB,WAAY,kBAAmBn1L,SAAU,kBACtFs1L,YAAalliB,KAAK+zZ,KAAKhuD,YAAY,MAAOvnD,MAAO,UACrD+qN,EAAan9f,KAAK,CAAE+pB,GAAIn2B,KAAKmV,QAAQghB,GAAK,UAAW4ugB,WAAY,kBAAmBn1L,SAAU,kBAC1Fs1L,YAAalliB,KAAK+zZ,KAAKhuD,YAAY,UAAWvnD,MAAO,WAEtD+qN,CACX,EACAozY,EAAYhs4B,UAAUgh5B,sBAAwB,SAAU7p2B,GACpD,IAAIxoD,EAAQU,KACR6u5B,EAAW7u5B,KAAK6t5B,qBAChBiB,EAAY9u5B,KAAKiu5B,sBACjBc,EAAW/u5B,KAAK0x5B,qBAAqB5p2B,GACrCkn2B,EAAWhv5B,KAAKmu5B,qBAChBlnkB,GAAQM,SACRvnV,KAAK4/4B,gBAAkBmP,EAGvB/u5B,KAAK4/4B,gBAAkBiP,EAASz14B,OAAO414B,EAAUD,EAAUD,GAE/D,IAAI75R,EAAU,IAAIn8F,IAAQ,CACtBt6gB,MAAO,OACPspC,MAAO9nD,KAAK4/4B,gBACZrzV,QAASvsjB,KAAKqs5B,kBAAkBxs5B,KAAKG,MACrCyzd,QAAS,WACLn0d,EAAMsy5B,iBAAiB9p2B,GACvBxoD,EAAMuy5B,eAAe/p2B,GACrBxoD,EAAM+u5B,oBACDpnkB,GAAQM,UACTjoV,EAAM2v5B,gBAEV3v5B,EAAMghS,QAAQ,iBAAkB,CAAE8rnB,YAAa,WAC3CnlkB,GAAQM,SACJjoV,EAAMsg5B,gBAAgBx84B,OAAS,IAAO2oU,GAAkB76S,SAASg8T,eAAe5tV,EAAM6V,QAAQghB,GAAK,oBAEnG8+lB,EAAQr3F,mBAIZt+hB,EAAMgt5B,4BACFht5B,EAAMsg5B,gBAAgBx84B,OAAS,IAAO2oU,GAAkB76S,SAASg8T,eAAe5tV,EAAM6V,QAAQghB,GAAK,cAEnG8+lB,EAAQr3F,kBAGpB,IAEA32M,GAAQM,SACR0tS,EAAQv8R,SAAS,IAAM14V,KAAKmV,QAAQghB,GAAK,kBAGzC8+lB,EAAQv8R,SAAS,IAAM14V,KAAKmV,QAAQghB,GAAK,YAE7Cn2B,KAAKkv5B,yBACT,EACAvS,EAAYhs4B,UAAUih5B,iBAAmB,SAAU9p2B,GAC/C,IAAIxoD,EAAQU,KAERgmM,EAAQhmM,KACZ,GAAI8nD,EAAMn9C,QAAQ,cAAgB,EAAG,CACjC3K,KAAKmV,QAAQykB,cAAc,sBAAsBlI,YAAY1xB,KAAKc,cAAc,QAAS,CACrFq1B,GAAIn2B,KAAKmV,QAAQghB,GAAK,iBAE1B,IAAIwn3B,EAAY,IAAIn7V,IAAY,CAC5BsC,cAAc,EAAO9B,SAAS,EAAMphjB,MAAO,GAC3C8yiB,aAAa,EAAOnkf,KAAM,UAAWq/S,SAAU,qBAC/C17Q,OAAQ,SAAUj7E,GACd3Z,EAAMwy5B,qBACN,IAAIX,EAAc1n0B,GAAO,CAAC,EAAGnqF,EAAM6j5B,QAAS,CAAC,GAAG,GAC5CznO,EAAUp8qB,EAAM2x5B,gBACpBv1O,EAAQ6hO,QAAU9zzB,GAAO,GAAInqF,EAAMi+4B,QAAS,IAAI,GAChD7hO,EAAQz+M,UAAYxzY,GAAO,GAAInqF,EAAM29d,UAAW,IAAI,GACpDy+M,EAAQgoO,iBAAmBj6zB,GAAO,GAAInqF,EAAMok5B,iBAAkB,IAAI,GAClEpk5B,EAAMi+4B,QAAQj/2B,MACd0nK,EAAM24sB,UAAUjB,eAAeC,UAAY1k4B,EAAK6gM,aAAawH,IAC7Dtb,EAAM03sB,eAAeC,UAAY33sB,EAAM24sB,UAAUjB,eAAeC,UAChEr+4B,EAAMi+4B,QAAQnx4B,KAAK9M,EAAMq/4B,WACzBr/4B,EAAM+x5B,mBAAmB,iBAAkB31O,EAASA,EAAQ6hO,QAAS7hO,EAAQz+M,UAAWk0b,GACxFnrtB,EAAM+rtB,YAAY/rtB,EAAMu3sB,QAAQv3sB,EAAMu3sB,QAAQn64B,OAAS,IACxB,KAA3B6V,EAAK6gM,aAAaiqW,KAClBiuW,EAAU784B,QAAQrP,SAAS,GAAGoiR,UAAU90P,IAAI,mBAG5C4+3B,EAAU784B,QAAQrP,SAAS,GAAGoiR,UAAU/0P,OAAO,kBAC/C6+3B,EAAU784B,QAAQrP,SAAS,GAAGK,MAAMy3d,gBAAkB3kd,EAAK6gM,aAAaiqW,MAE5EiuW,EAAUh/3B,QACd,GACD,IAAMhzB,KAAKmV,QAAQghB,GAAK,eACvB673B,EAAY,IAAI5rX,IAAe,CAC/Btja,KAAM,SAAU7pH,GACRguU,GAAQM,WACRtuU,EAAK9D,QAAQ0gR,cAAc1vR,MAAM+nJ,IAAM8jwB,EAAU784B,QAAQs/Q,wBAAwBvmI,IAC7Ej1I,EAAK9D,QAAQ0gR,cAAcd,aAAe,KAC9C97Q,EAAK9D,QAAQ0gR,cAAc1vR,MAAMw9H,KAAOrkI,EAAM6V,QAAQwtS,WAAa,KAE3E,EACAt6S,OAAQ,sBACR4jb,QAAS,yBACV,IAAMjsb,KAAKmV,QAAQghB,GAAK,iBAC3Bwn3B,EAAU9hxB,QAAS,EACnB77H,KAAKmV,QAAQykB,cAAc,6CAA6CsuP,UAAU90P,IAAI,iBAC1F,CACA,GAAI00B,EAAMn9C,QAAQ,gBAAkB,EAAG,CACnC3K,KAAKmV,QAAQykB,cAAc,wBAAwBlI,YAAY1xB,KAAKc,cAAc,QAAS,CACvFq1B,GAAIn2B,KAAKmV,QAAQghB,GAAK,mBAE1B,IAAIsnc,EAAc,IAAI+kF,IAAY,CAC9BsC,cAAc,EAAO9B,SAAS,EAAOphjB,MAAO,OAC5C8yiB,aAAa,EAAOnkf,KAAM,UAAWq/S,SAAU,uBAC/C17Q,OAAQ,SAAUj7E,GACd3Z,EAAMwy5B,qBACN,IAAIX,EAAc1n0B,GAAO,CAAC,EAAGnqF,EAAM6j5B,QAAS,CAAC,GAAG,GAC5CznO,EAAUp8qB,EAAM2x5B,gBACpBv1O,EAAQ6hO,QAAU9zzB,GAAO,GAAInqF,EAAMi+4B,QAAS,IAAI,GAChD7hO,EAAQz+M,UAAYxzY,GAAO,GAAInqF,EAAM29d,UAAW,IAAI,GACpDy+M,EAAQgoO,iBAAmBj6zB,GAAO,GAAInqF,EAAMok5B,iBAAkB,IAAI,GAClEpk5B,EAAMi+4B,QAAQj/2B,MACd0nK,EAAM24sB,UAAUjB,eAAejgb,YAAcxkd,EAAK6gM,aAAawH,IAC/Dtb,EAAM03sB,eAAejgb,YAAcz3R,EAAM24sB,UAAUjB,eAAejgb,YAC7Dz3R,EAAMs4sB,YACPh/4B,EAAMi+4B,QAAQnx4B,KAAK9M,EAAMq/4B,WACzB34sB,EAAMqrtB,mBAAmB,iBAAkB31O,EAASA,EAAQ6hO,QAAS7hO,EAAQz+M,UAAWk0b,GACxFnrtB,EAAM+rtB,YAAY/rtB,EAAMu3sB,QAAQv3sB,EAAMu3sB,QAAQn64B,OAAS,KAE3D6u5B,EAAY984B,QAAQrP,SAAS,GAAGK,MAAMy3d,gBAAkB3kd,EAAK6gM,aAAaiqW,KAC1EkuW,EAAYj/3B,QAChB,GACD,IAAMhzB,KAAKmV,QAAQghB,GAAK,iBACvB873B,EAAc,IAAI7rX,IAAe,CACjCtja,KAAM,SAAU7pH,GACRguU,GAAQM,WACRtuU,EAAK9D,QAAQ0gR,cAAc1vR,MAAM+nJ,IAAM+jwB,EAAY984B,QAAQs/Q,wBAAwBvmI,IAC/Ej1I,EAAK9D,QAAQ0gR,cAAcd,aAAe,KAC9C97Q,EAAK9D,QAAQ0gR,cAAc1vR,MAAMw9H,KAAOrkI,EAAM6V,QAAQwtS,WAAa,KAE3E,EACAt6S,OAAQ,wBACR4jb,QAAS,yBACV,IAAMjsb,KAAKmV,QAAQghB,GAAK,mBAC3Bsnc,EAAY5hW,QAAS,EACrB77H,KAAKmV,QAAQykB,cAAc,+CAA+CzzB,MAAM8gjB,WAAa,MACjG,CACJ,EACA01V,EAAYhs4B,UAAUkh5B,eAAiB,SAAU/p2B,GAC7C,IAAIxoD,EAAQU,KACRky5B,EAAmB,CACnB,CAAE/73B,GAAI,IAAK8J,KAAMjgC,KAAK+zZ,KAAKhuD,YAAY,WACvC,CAAE5vU,GAAI,IAAK8J,KAAMjgC,KAAK+zZ,KAAKhuD,YAAY,UACvC,CAAE5vU,GAAI,IAAK8J,KAAMjgC,KAAK+zZ,KAAKhuD,YAAY,WACvC,CAAE5vU,GAAI,IAAK8J,KAAMjgC,KAAK+zZ,KAAKhuD,YAAY,UACvC,CAAE5vU,GAAI,IAAK8J,KAAMjgC,KAAK+zZ,KAAKhuD,YAAY,YAE3C,GAAIj+S,EAAMn9C,QAAQ,gBAAkB,EAAG,CACnC,IAAIwn5B,EAAiBjh4B,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,mBAC3Di83B,EAAalh4B,SAASpwB,cAAc,QACxCsx5B,EAAWlp3B,UAAYlpC,KAAK+zZ,KAAKhuD,YAAY,SAC7CqsjB,EAAWrx5B,UAAY,uBACvBox5B,EAAezg4B,YAAY0g4B,GAE3B,IAAIC,EAAe,IAAIjsX,IAAe,CAAEt+e,MAAOoq2B,EAC3CpvxB,KAAM,SAAU7pH,GACRguU,GAAQM,WACRtuU,EAAK9D,QAAQ0gR,cAAc1vR,MAAM+nJ,IAAMmkwB,EAAal94B,QAAQs/Q,wBAAwBvmI,IAChFj1I,EAAK9D,QAAQ0gR,cAAcd,aAAe,MAElD,IAAIu9nB,EAAYF,EAAWlp3B,UACT,KAAdop3B,GACAr54B,EAAK9D,QAAQykB,cAAc,kBAAyB043B,EAAzB,MAAgDpqoB,UAAU90P,IAAI,iBAEjG,EACAo3T,OAAQ,SAAUvxU,GACd3Z,EAAMwy5B,qBACN,IAAIX,EAAc1n0B,GAAO,CAAC,EAAGnqF,EAAM6j5B,QAAS,CAAC,GAAG,GAC5CznO,EAAUp8qB,EAAM2x5B,iBACpBv1O,EAAQ6hO,QAAU9zzB,GAAO,GAAInqF,EAAMi+4B,QAAS,IAAI,GAChD7hO,EAAQz+M,UAAYxzY,GAAO,GAAInqF,EAAM29d,UAAW,IAAI,GACpDy+M,EAAQgoO,iBAAmBj6zB,GAAO,GAAInqF,EAAMok5B,iBAAkB,IAAI,GAClEpk5B,EAAMi+4B,QAAQj/2B,MACd8z3B,EAAWxo3B,YAAc3wB,EAAKsc,KAAK0K,KACnC3gC,EAAMq/4B,UAAUjB,eAAetuwB,YAAc7iH,SAAStT,EAAKsc,KAAKY,GAAI,IACpE72B,EAAMq/4B,UAAUjB,eAAetuwB,aAAe,EAC9C9vI,EAAMo+4B,eAAetuwB,YAAc9vI,EAAMq/4B,UAAUjB,eAAetuwB,YAClE9vI,EAAMi+4B,QAAQnx4B,KAAK9M,EAAMq/4B,WACzBr/4B,EAAM+x5B,mBAAmB,iBAAkB31O,EAASA,EAAQ6hO,QAAS7hO,EAAQz+M,UAAWk0b,GACxF7x5B,EAAMyy5B,YAAYzy5B,EAAMi+4B,QAAQj+4B,EAAMi+4B,QAAQn64B,OAAS,IACnD6jV,GAAQM,UACHxb,GAAkB76S,SAASg8T,eAAe5tV,EAAM6V,QAAQghB,GAAK,oBAE9C82T,GAAa3tV,EAAM6V,QAAQghB,GAAK,iBAAkB,WACxDyngB,kBAIT7xN,GAAkB76S,SAASg8T,eAAe5tV,EAAM6V,QAAQghB,GAAK,cAE9C82T,GAAa3tV,EAAM6V,QAAQghB,GAAK,WAAY,WAClDyngB,iBAGtB,IAGJy0X,EAAa35jB,SAAS,IAAM14V,KAAKmV,QAAQghB,GAAK,kBAClD,CACJ,EACAwm3B,EAAYhs4B,UAAU4h5B,mBAAqB,SAAUzq2B,GACjD,IAAIyhd,EAAe,GACfzhd,EAAMn9C,QAAQ,eAAiB,GAC/B4+f,EAAan9f,KAAK,CAAE+pB,GAAIn2B,KAAKmV,QAAQghB,GAAK,cAAey5U,SAAU,6BAC/Ds1L,YAAalliB,KAAK+zZ,KAAKhuD,YAAY,cAAevnD,MAAO,SACzDj7Q,SAAU,eAAiBvjC,KAAKmV,QAAQghB,GAAK,8BAEjD2xB,EAAMn9C,QAAQ,cAAgB,GAC9B4+f,EAAan9f,KAAK,CAAE+pB,GAAIn2B,KAAKmV,QAAQghB,GAAK,aAAcy5U,SAAU,4BAC9Ds1L,YAAalliB,KAAK+zZ,KAAKhuD,YAAY,aAAcvnD,MAAO,SACxDj7Q,SAAU,eAAiBvjC,KAAKmV,QAAQghB,GAAK,6BAEjD2xB,EAAMn9C,QAAQ,aAAe,GAC7B4+f,EAAan9f,KAAK,CAAE+pB,GAAIn2B,KAAKmV,QAAQghB,GAAK,YAAay5U,SAAU,2BAC7Ds1L,YAAalliB,KAAK+zZ,KAAKhuD,YAAY,YAAavnD,MAAO,SACvDj7Q,SAAU,eAAiBvjC,KAAKmV,QAAQghB,GAAK,4BAEjD2xB,EAAMn9C,QAAQ,cAAgB,GAC9B4+f,EAAan9f,KAAK,CAAEwjW,SAAU,6BAA8Bz5U,GAAIn2B,KAAKmV,QAAQghB,GAAK,oBAC9E+ugB,YAAalliB,KAAK+zZ,KAAKhuD,YAAY,aAAcvnD,MAAO,SACxD5xS,KAAM,QAAS22B,SAAU,eAAiBvjC,KAAKmV,QAAQghB,GAAK,6BAGpE,IADA,IAAI433B,EAAmB/t5B,KAAKou5B,kBAAkBtm2B,GACrC37C,EAAI,EAAGwjD,EAAMo+1B,EAAiB3q5B,OAAQ+I,EAAIwjD,EAAKxjD,IACpDo9f,EAAan9f,KAAK2h5B,EAAiB5h5B,IAQvC,OANK86U,GAAQM,WACTgiL,EAAan9f,KAAK,CAAE+pB,GAAIn2B,KAAKmV,QAAQghB,GAAK,MAAO4ugB,WAAY,kBAAmBn1L,SAAU,kBACtFs1L,YAAalliB,KAAK+zZ,KAAKhuD,YAAY,MAAOvnD,MAAO,UACrD+qN,EAAan9f,KAAK,CAAE+pB,GAAIn2B,KAAKmV,QAAQghB,GAAK,UAAW4ugB,WAAY,kBAAmBn1L,SAAU,kBAC1Fs1L,YAAalliB,KAAK+zZ,KAAKhuD,YAAY,UAAWvnD,MAAO,WAEtD+qN,CACX,EACAozY,EAAYhs4B,UAAU6h5B,mBAAqB,WACvC,OAAIvrkB,GAAQM,SACD,CAAC,CAAEpxT,GAAI,QAAS8J,KAAM,OAAS,CAAE9J,GAAI,UAAW8J,KAAM,OAAS,CAAE9J,GAAI,UAAW8J,KAAM,OACzF,CAAE9J,GAAI,SAAU8J,KAAM,OAAS,CAAE9J,GAAI,SAAU8J,KAAM,QAEtD,CAAC,CAAE9J,GAAI,QAAS8J,KAAM,SAAW,CAAE9J,GAAI,UAAW8J,KAAM,WAAa,CAAE9J,GAAI,UAAW8J,KAAM,WAC/F,CAAE9J,GAAI,SAAU8J,KAAM,UAAY,CAAE9J,GAAI,SAAU8J,KAAM,UAChE,EACA082B,EAAYhs4B,UAAU8h5B,iBAAmB,WACrC,OAAIxrkB,GAAQM,SACD,CAAC,CAAEpxT,GAAI,UAAW8J,KAAMjgC,KAAK+zZ,KAAKhuD,YAAY,QAAU,CAAE5vU,GAAI,OAAQ8J,KAAMjgC,KAAK+zZ,KAAKhuD,YAAY,QACrG,CAAE5vU,GAAI,SAAU8J,KAAMjgC,KAAK+zZ,KAAKhuD,YAAY,QAAU,CAAE5vU,GAAI,aAAc8J,KAAMjgC,KAAK+zZ,KAAKhuD,YAAY,SAEvG,CAAC,CAAE5vU,GAAI,UAAW8J,KAAMjgC,KAAK+zZ,KAAKhuD,YAAY,YAAc,CAAE5vU,GAAI,OAAQ8J,KAAMjgC,KAAK+zZ,KAAKhuD,YAAY,SACzG,CAAE5vU,GAAI,SAAU8J,KAAMjgC,KAAK+zZ,KAAKhuD,YAAY,WAAa,CAAE5vU,GAAI,aAAc8J,KAAMjgC,KAAK+zZ,KAAKhuD,YAAY,eACjH,EACA42iB,EAAYhs4B,UAAU+h5B,oBAAsB,SAAU5q2B,GAClD,IAAIxoD,EAAQU,KACR6u5B,EAAW7u5B,KAAK6t5B,qBAChBiB,EAAY9u5B,KAAKiu5B,sBACjBc,EAAW/u5B,KAAKuy5B,mBAAmBzq2B,GACnCkn2B,EAAWhv5B,KAAKmu5B,qBAChBlnkB,GAAQM,SACRvnV,KAAK4/4B,gBAAkBmP,EAGvB/u5B,KAAK4/4B,gBAAkBiP,EAASz14B,OAAO414B,EAAUD,EAAUD,GAE/D,IAAI75R,EAAU,IAAIn8F,IAAQ,CACtBt6gB,MAAO,OACPspC,MAAO9nD,KAAK4/4B,gBACZrzV,QAASvsjB,KAAKqs5B,kBAAkBxs5B,KAAKG,MACrCyzd,QAAS,WACLn0d,EAAMqz5B,gBAAgB7q2B,GACtBxoD,EAAMsz5B,cAAc9q2B,GACpBxoD,EAAM+u5B,oBACDpnkB,GAAQM,UACTjoV,EAAM2v5B,gBAEV3v5B,EAAMghS,QAAQ,iBAAkB,CAAE8rnB,YAAa,SAC3CnlkB,GAAQM,SACJjoV,EAAMsg5B,gBAAgBx84B,OAAS,IAAO2oU,GAAkB76S,SAASg8T,eAAe5tV,EAAM6V,QAAQghB,GAAK,oBAEnG8+lB,EAAQr3F,mBAIZt+hB,EAAMgt5B,4BACFht5B,EAAMsg5B,gBAAgBx84B,OAAS,IAAO2oU,GAAkB76S,SAASg8T,eAAe5tV,EAAM6V,QAAQghB,GAAK,cAEnG8+lB,EAAQr3F,kBAGpB,IAEA32M,GAAQM,SACR0tS,EAAQv8R,SAAS,IAAM14V,KAAKmV,QAAQghB,GAAK,kBAGzC8+lB,EAAQv8R,SAAS,IAAM14V,KAAKmV,QAAQghB,GAAK,YAE7Cn2B,KAAKkv5B,yBACT,EACAvS,EAAYhs4B,UAAUgi5B,gBAAkB,SAAU7q2B,GAC9C,IAAIxoD,EAAQU,KAERgmM,EAAQhmM,KACZ,GAAI8nD,EAAMn9C,QAAQ,cAAgB,EAAG,CACjC3K,KAAKmV,QAAQykB,cAAc,iCAAiClI,YAAY1xB,KAAKc,cAAc,QAAS,CAChGq1B,GAAIn2B,KAAKmV,QAAQghB,GAAK,gBAE1B,IAAI80e,EAAY,IAAIu3C,IAAY,CAC5BsC,cAAc,EAAOljjB,MAAO,OAC5B8yiB,aAAa,EAAOnkf,KAAM,UAAWq/S,SAAU,qBAC/C17Q,OAAQ,SAAUj7E,GACd3Z,EAAMul5B,qBAAsB,EAC5Bvl5B,EAAMwy5B,qBACN,IAAIX,EAAc1n0B,GAAO,CAAC,EAAGnqF,EAAM6j5B,QAAS,CAAC,GAAG,GAC5CznO,EAAUp8qB,EAAM2x5B,gBAKpB,GAJAv1O,EAAQ6hO,QAAU9zzB,GAAO,GAAInqF,EAAMi+4B,QAAS,IAAI,GAChD7hO,EAAQz+M,UAAYxzY,GAAO,GAAInqF,EAAM29d,UAAW,IAAI,GACpDy+M,EAAQgoO,iBAAmBj6zB,GAAO,GAAInqF,EAAMok5B,iBAAkB,IAAI,GAClEpk5B,EAAMi+4B,QAAQj/2B,MACuB,SAAjC0nK,EAAMmltB,SAAShl5B,MAAMi+J,QACrB4hC,EAAM03sB,eAAejgb,YAAcz3R,EAAM24sB,UAAUjB,eAAejgb,YAAcxkd,EAAK6gM,aAAawH,IAC7Ftb,EAAMs4sB,YACPh/4B,EAAMi+4B,QAAQnx4B,KAAK9M,EAAMq/4B,WACzB34sB,EAAMqrtB,mBAAmB,iBAAkB31O,EAASA,EAAQ6hO,QAAS7hO,EAAQz+M,UAAWk0b,GACxFnrtB,EAAM+rtB,YAAY/rtB,EAAMu3sB,QAAQv3sB,EAAMu3sB,QAAQn64B,OAAS,UAG1D,GAAqC,UAAjC4iM,EAAMmltB,SAAShl5B,MAAMi+J,QAAqB,CAC/C4hC,EAAMmltB,SAAShl5B,MAAMswH,MAAQx9G,EAAK6gM,aAAawH,IAC/C,IAAI50H,EAAOs5G,EAAM24sB,UAAUjB,eAAejgb,YAC1Cz3R,EAAM24sB,UAAUjB,eAAejgb,YAAcxkd,EAAK6gM,aAAawH,IAC/DhiN,EAAMi+4B,QAAQnx4B,KAAK9M,EAAMq/4B,WACzBr/4B,EAAM+x5B,mBAAmB,wBAAyB31O,EAASA,EAAQ6hO,QAAS7hO,EAAQz+M,UAAWk0b,GAC/F7x5B,EAAMi+4B,QAAQj/2B,MACd0nK,EAAM24sB,UAAUjB,eAAejgb,YAAc/wY,CACjD,MACUs5G,EAAMs4sB,YACZh/4B,EAAMi+4B,QAAQnx4B,KAAK9M,EAAMq/4B,WACzBr/4B,EAAM+x5B,mBAAmB,iBAAkB31O,EAASA,EAAQ6hO,QAAS7hO,EAAQz+M,UAAWk0b,GACxFnrtB,EAAM+rtB,YAAY/rtB,EAAMu3sB,QAAQv3sB,EAAMu3sB,QAAQn64B,OAAS,KAE3Dyv5B,EAAY194B,QAAQrP,SAAS,GAAGK,MAAMy3d,gBAAkB3kd,EAAK6gM,aAAaiqW,KAC1E8uW,EAAY7/3B,QAChB,GACD,IAAMhzB,KAAKmV,QAAQghB,GAAK,cACvB083B,EAAc,IAAIzsX,IAAe,CACjCtja,KAAM,SAAU7pH,GACRguU,GAAQM,WACRtuU,EAAK9D,QAAQ0gR,cAAc1vR,MAAM+nJ,IAAM2kwB,EAAY194B,QAAQs/Q,wBAAwBvmI,IAC/Ej1I,EAAK9D,QAAQ0gR,cAAcd,aAAe,KAC9C97Q,EAAK9D,QAAQ0gR,cAAc1vR,MAAMw9H,KAAOrkI,EAAM6V,QAAQwtS,WAAa,KAE3E,EACAt6S,OAAQ,sBACR4jb,QAAS,yBACV,IAAMjsb,KAAKmV,QAAQghB,GAAK,iBAC3B80e,EAAUpvY,QAAS,EACnB77H,KAAKmV,QAAQykB,cAAc,wDAAwDzzB,MAAM8gjB,WACnF,MACV,CACJ,EACA01V,EAAYhs4B,UAAUmh5B,mBAAqB,WACvC,GAAoC,SAAhC9x5B,KAAKmr5B,SAAShl5B,MAAMi+J,QACpBpkK,KAAKu94B,QAAQnx4B,KAAKpM,KAAK2+4B,eAEtB,CACD,IAAIjyzB,EAAOjD,GAAO,CAAC,EAAGzpF,KAAK2+4B,UAAW,CAAC,GAAG,GAC1C3+4B,KAAK8y5B,2BACL9y5B,KAAKu94B,QAAQnx4B,KAAKpM,KAAK2+4B,WACvB3+4B,KAAK2+4B,UAAYjyzB,CACrB,CACJ,EACAiwzB,EAAYhs4B,UAAUii5B,cAAgB,SAAU9q2B,GAC5C,IAAIxoD,EAAQU,KACZ,GAAI8nD,EAAMn9C,QAAQ,eAAiB,EAAG,CAClC,IAAIoo5B,EAAc7h4B,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,kBACxD683B,EAAa9h4B,SAASpwB,cAAc,QACpCmmV,GAAQM,UACRyrkB,EAAW9p3B,UAAY,MACvB8p3B,EAAWh+3B,aAAa,QAAS,uBAGjCg+3B,EAAW9p3B,UAAY,QAE3B8p3B,EAAWjy5B,UAAY,qBACvBgy5B,EAAYrh4B,YAAYsh4B,GACxB,IAAIC,EAAkB,IAAI7sX,IAAe,CAAEt+e,MAAO9nD,KAAKwy5B,qBACnD5ijB,SAAU,gBACV63L,oBAAoB,EACpBglB,iBAAkB,SAAUxziB,GACxBA,EAAK9D,QAAQ6f,aAAa,QAAS,eAAiB/b,EAAK9D,QAAQghB,GACrE,EACA2sG,KAAM,SAAU7pH,GAKZ,IAAIupc,EAJAv7H,GAAQM,WACRtuU,EAAK9D,QAAQ0gR,cAAc1vR,MAAM+nJ,IAAM+kwB,EAAgB994B,QAAQs/Q,wBAAwBvmI,IACnFj1I,EAAK9D,QAAQ0gR,cAAcd,aAAe,MAI9CytL,EADiC,UAAjCljd,EAAM6r5B,SAAShl5B,MAAMi+J,QACR9kK,EAAM6r5B,SAAShl5B,MAAMq8c,WAGrBljd,EAAMq/4B,UAAUd,aAAar7b,WAE9Cvpc,EAAK9D,QAAQykB,cAAc,WAAkB4ob,EAAW9hc,cAA7B,MACVwnQ,UAAU90P,IAAI,iBACnC,EACAo3T,OAAQ,SAAUvxU,GACd3Z,EAAMul5B,qBAAsB,EAC5Bvl5B,EAAMwy5B,qBACN,IAAIvU,EAAU9zzB,GAAO,GAAInqF,EAAMi+4B,QAAS,IAAI,GACxC4T,EAAc1n0B,GAAO,CAAC,EAAGnqF,EAAM6j5B,QAAS,CAAC,GAAG,GAC5CznO,EAAUp8qB,EAAM2x5B,gBASpB,GARAv1O,EAAQ6hO,QAAU9zzB,GAAO,GAAInqF,EAAMi+4B,QAAS,IAAI,GAChD7hO,EAAQz+M,UAAYxzY,GAAO,GAAInqF,EAAM29d,UAAW,IAAI,GACpDy+M,EAAQgoO,iBAAmBj6zB,GAAO,GAAInqF,EAAMok5B,iBAAkB,IAAI,GAClEpk5B,EAAMi+4B,QAAQj/2B,MACd003B,EAAWpp3B,YAAc3wB,EAAKsc,KAAK0K,KAC/BgnT,GAAQM,UACRyrkB,EAAWh+3B,aAAa,QAAS,eAAiB/b,EAAKsc,KAAKY,IAE3B,UAAjC72B,EAAM6r5B,SAAShl5B,MAAMi+J,QAAqB,CAC1C9kK,EAAM4z5B,gBAAgB5z5B,EAAMq/4B,WAAW,GACvC,IAAIjyzB,EAAOptF,EAAMq/4B,UAAUd,aAAar7b,WACxCljd,EAAMq/4B,UAAUd,aAAar7b,WAAaljd,EAAMis5B,aAAaty4B,EAAKsc,KAAKY,IACvE72B,EAAM6z5B,aACN7z5B,EAAMi+4B,QAAQnx4B,KAAK9M,EAAMq/4B,WACzBr/4B,EAAM+x5B,mBAAmB,wBAAyB31O,EAASA,EAAQ6hO,QAAS7hO,EAAQz+M,UAAWk0b,GAC/F7x5B,EAAMi+4B,QAAQj/2B,MACdh/B,EAAMsp5B,aAAa7pb,UAAU,EAAG,EAAGz/d,EAAMmr5B,YAAYjs4B,MAAOlf,EAAMmr5B,YAAY7hwB,QAC9E,IAAIpqI,EAAQlf,EAAMq/4B,UAAUC,YAAYpg4B,MACI,IAAxClf,EAAMq/4B,UAAUd,aAAa5+lB,SACjC3/S,EAAM6r5B,SAAShl5B,MAAMqY,MAAQA,EAAQ,KACrClf,EAAM6r5B,SAAShl5B,MAAMq8c,WAAaljd,EAAMis5B,aAAaty4B,EAAKsc,KAAKY,IAC/D72B,EAAMq/4B,UAAUd,aAAar7b,WAAa91X,EAC1CptF,EAAM8z5B,kBACV,MAEI9z5B,EAAM4z5B,gBAAgB5z5B,EAAMq/4B,WAC5Br/4B,EAAMu+4B,aAAar7b,WAAaljd,EAAMq/4B,UAAUd,aAAar7b,WAAaljd,EAAMis5B,aAAaty4B,EAAKsc,KAAKY,IACvG72B,EAAM6z5B,aACN7z5B,EAAMi+4B,QAAQnx4B,KAAK9M,EAAMq/4B,WACzBr/4B,EAAM+x5B,mBAAmB,iBAAkB31O,EAAS6hO,EAAS9zzB,GAAO,GAAInqF,EAAM29d,UAAW,IAAI,GAAOk0b,GACpG7x5B,EAAMyy5B,YAAYzy5B,EAAMi+4B,QAAQj+4B,EAAMi+4B,QAAQn64B,OAAS,GAE/D,IAEJ6v5B,EAAgBv6jB,SAAS,IAAM14V,KAAKmV,QAAQghB,GAAK,iBACrD,CACA,GAAI2xB,EAAMn9C,QAAQ,cAAgB,EAAG,CACjC,IAAI0o5B,EAAmBni4B,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,iBAC7Dm93B,EAAcpi4B,SAASpwB,cAAc,QACrCmmV,GAAQM,SACR+rkB,EAAYpq3B,UAAYlpC,KAAK+zZ,KAAKhuD,YAAY,OAG9CutjB,EAAYpq3B,UAAYlpC,KAAK+zZ,KAAKhuD,YAAY,WAElDutjB,EAAYvy5B,UAAY,oBACxBsy5B,EAAiB3h4B,YAAY4h4B,GAC7B,IAAIC,EAAiB,IAAIntX,IAAe,CAAEt+e,MAAO9nD,KAAKyy5B,mBAClD7ijB,SAAU,eACV63L,oBAAoB,EACpBglB,iBAAkB,SAAUxziB,GACpBguU,GAAQM,WACgB,SAApBtuU,EAAK9D,QAAQghB,GACbld,EAAK9D,QAAQ6f,aAAa,QAAS,qBAEV,WAApB/b,EAAK9D,QAAQghB,GAClBld,EAAK9D,QAAQ6f,aAAa,QAAS,sBAEV,eAApB/b,EAAK9D,QAAQghB,IAClBld,EAAK9D,QAAQ6f,aAAa,QAAS,wCAG/C,EACA8tG,KAAM,SAAU7pH,GACZ,IAAIu9jB,EAAY,UACqB,UAAjCl3kB,EAAM6r5B,SAAShl5B,MAAMi+J,SACmB,SAApC9kK,EAAM6r5B,SAAShl5B,MAAMgoI,aACrBqoc,EAAY,QAEuB,WAAnCl3kB,EAAM6r5B,SAAShl5B,MAAMqwkB,YACrBA,EAAYA,EAAUnmkB,QAAQ,UAAW,IACzCmmkB,GAAa,YAIbl3kB,EAAMq/4B,UAAUd,aAAaztxB,OAC7Bomd,EAAY,QAEZl3kB,EAAMq/4B,UAAUd,aAAavtxB,SAC7Bkmd,EAAYA,EAAUnmkB,QAAQ,UAAW,IACzCmmkB,GAAa,WAGjBvvP,GAAQM,WACRtuU,EAAK9D,QAAQ0gR,cAAc1vR,MAAM+nJ,IAAMqlwB,EAAep+4B,QAAQs/Q,wBAAwBvmI,IAClFj1I,EAAK9D,QAAQ0gR,cAAcd,aAAe,MAElD97Q,EAAK9D,QAAQykB,cAAc,WAAkB48iB,EAAlB,MAAyCtuT,UAAU90P,IAAI,iBACtF,EACAo3T,OAAQ,SAAUvxU,GACd3Z,EAAMul5B,qBAAsB,EACxB59jB,GAAQM,UACa,SAAjBtuU,EAAKsc,KAAKY,GACVm93B,EAAYt+3B,aAAa,QAAS,qBAEZ,WAAjB/b,EAAKsc,KAAKY,GACfm93B,EAAYt+3B,aAAa,QAAS,sBAEZ,eAAjB/b,EAAKsc,KAAKY,IACfm93B,EAAYt+3B,aAAa,QAAS,wCAEtC11B,EAAMk05B,eAAev64B,EAAKsc,KAAKY,MAG/Bm93B,EAAY1p3B,YAAc3wB,EAAKsc,KAAK0K,KACpC3gC,EAAMk05B,eAAev64B,EAAKsc,KAAKY,IAEvC,IAEJo93B,EAAe76jB,SAAS,IAAM14V,KAAKmV,QAAQghB,GAAK,gBACpD,CACA,GAAI2xB,EAAMn9C,QAAQ,aAAe,EAAG,CAChC,IAAI8o5B,EAAkBvi4B,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,gBAC5Du93B,EAAqBxi4B,SAASpwB,cAAc,QAC5C6y5B,EAAY3z5B,KAAK4z5B,eACrBF,EAAmBxq3B,UAAYyq3B,EAAU,GAAG1z3B,KAC5Cyz3B,EAAmB3y5B,UAAY,mBAC/B0y5B,EAAgB/h4B,YAAYgi4B,GAC5B,IAAIG,EAAgB,IAAIztX,IAAe,CACnCx2L,SAAU,cACV9nT,MAAO6r2B,EACP7wxB,KAAM,SAAU7pH,GACRguU,GAAQM,WACRtuU,EAAK9D,QAAQ0gR,cAAc1vR,MAAM+nJ,IAAM2lwB,EAAc1+4B,QAAQs/Q,wBAAwBvmI,IACjFj1I,EAAK9D,QAAQ0gR,cAAcd,aAAe,MAElD,IAAIu9nB,EAAYoB,EAAmBxq3B,UACnCjwB,EAAK9D,QAAQykB,cAAc,mBAA0B043B,EAA1B,MAAiDpqoB,UAAU90P,IAAI,iBAC9F,EACAo3T,OAAQ,SAAUvxU,GACd3Z,EAAMul5B,qBAAsB,EAC5Bvl5B,EAAMwy5B,qBACN,IAAIX,EAAc1n0B,GAAO,CAAC,EAAGnqF,EAAM6j5B,QAAS,CAAC,GAAG,GAC5CznO,EAAUp8qB,EAAM2x5B,gBAMpB,GALAv1O,EAAQ6hO,QAAU9zzB,GAAO,GAAInqF,EAAMi+4B,QAAS,IAAI,GAChD7hO,EAAQz+M,UAAYxzY,GAAO,GAAInqF,EAAM29d,UAAW,IAAI,GACpDy+M,EAAQgoO,iBAAmBj6zB,GAAO,GAAInqF,EAAMok5B,iBAAkB,IAAI,GAClEpk5B,EAAMi+4B,QAAQj/2B,MACdo13B,EAAmB9p3B,YAAc3wB,EAAKsc,KAAK0K,KACN,UAAjC3gC,EAAM6r5B,SAAShl5B,MAAMi+J,QAAqB,CAC1C9kK,EAAM4z5B,gBAAgB5z5B,EAAMq/4B,WAAW,GACvC,IAAIjyzB,EAAOptF,EAAMq/4B,UAAUd,aAAa5+lB,SACxC3/S,EAAMq/4B,UAAUd,aAAa5+lB,SAAW1yR,SAASjtB,EAAMm/4B,aAAcly3B,SAAStT,EAAKsc,KAAK0K,KAAM,IAAM,GAAIA,KAAM,IAC9G3gC,EAAMi+4B,QAAQnx4B,KAAK9M,EAAMq/4B,WACzBr/4B,EAAM+x5B,mBAAmB,wBAAyB31O,EAASA,EAAQ6hO,QAAS7hO,EAAQz+M,UAAWk0b,GAC/F7x5B,EAAMi+4B,QAAQj/2B,MACd,IAAIw13B,EAAY,GACwB,SAApCx05B,EAAM6r5B,SAAShl5B,MAAMgoI,aACrB2lxB,EAAY,SAEuB,WAAnCx05B,EAAM6r5B,SAAShl5B,MAAMqwkB,YACrBs9U,EAAY,WAEwB,SAApCx05B,EAAM6r5B,SAAShl5B,MAAMgoI,YAA4D,WAAnC7uI,EAAM6r5B,SAAShl5B,MAAMqwkB,YACnEs9U,EAAY,gBAEhBx05B,EAAMsp5B,aAAarkb,KAAOuvb,EAAYx05B,EAAMq/4B,UAAUd,aAAa5+lB,SAAzC60mB,MAAiEx05B,EAAM6r5B,SAAShl5B,MAAMq8c,WAChH,IAAI4rH,EAAO9ukB,EAAM6r5B,SAASvp5B,MAAM+wB,MAAM,MAClCsN,EAAO3gC,EAAMy05B,YAAW,GACxBv14B,EAAQlf,EAAMsp5B,aAAaoL,YAAY/z3B,GAAMzhB,MACL,GAAxClf,EAAMq/4B,UAAUd,aAAa5+lB,SACjC3/S,EAAM6r5B,SAAShl5B,MAAMqY,MAAQA,EAAQ,KACrClf,EAAM6r5B,SAAShl5B,MAAMyiJ,OAASwlb,EAAKhrkB,QAAU9D,EAAMq/4B,UAAUd,aAAa5+lB,SAAmD,IAAxC3/S,EAAMq/4B,UAAUd,aAAa5+lB,UAAmB,KACrI3/S,EAAMq/4B,UAAUd,aAAa5+lB,SAAWvyN,EACxCptF,EAAMsp5B,aAAarkb,KAAOjle,EAAMq/4B,UAAUd,aAAa5+lB,SAA7B3/S,MAAqDA,EAAMq/4B,UAAUd,aAAar7b,WAC5Gljd,EAAM6r5B,SAAShl5B,MAAM84S,SAAW1yR,SAASjtB,EAAMm/4B,aAAcly3B,SAAStT,EAAKsc,KAAK0K,KAAM,IAAM,GAAIA,KAAM,IAAM,KACpE,YAApC3gC,EAAM6r5B,SAAShl5B,MAAMq8c,aACrBljd,EAAM6r5B,SAAShl5B,MAAMqY,MAAQkyB,WAAWpxC,EAAM6r5B,SAAShl5B,MAAMqY,OAASkyB,WAAWpxC,EAAM6r5B,SAAShl5B,MAAM84S,UAAY,KAE1H,KACK,CACD3/S,EAAM4z5B,gBAAgB5z5B,EAAMq/4B,WAC5Br/4B,EAAMu+4B,aAAa5+lB,SAAW3/S,EAAMq/4B,UAAUd,aAAa5+lB,SAAW1yR,SAASjtB,EAAMm/4B,aAAcly3B,SAAStT,EAAKsc,KAAK0K,KAAM,IAAM,GAAIA,KAAM,IAC5I3gC,EAAMsp5B,aAAarkb,KAAOjle,EAAMq/4B,UAAUd,aAAa5+lB,SAA7B3/S,MAAqDA,EAAMq/4B,UAAUd,aAAar7b,WACxG4rH,EAAO9ukB,EAAMq/4B,UAAU7B,WAAWnq3B,MAAM,MACxCsN,EAAO3gC,EAAMy05B,aACbv14B,EAAQlf,EAAMsp5B,aAAaoL,YAAY/z3B,GAAMzhB,MACL,GAAxClf,EAAMq/4B,UAAUd,aAAa5+lB,SAHjC,IAIIr2J,EAASwlb,EAAKhrkB,QAAU9D,EAAMq/4B,UAAUd,aAAa5+lB,SACb,IAAxC3/S,EAAMq/4B,UAAUd,aAAa5+lB,UACjC3/S,EAAM205B,iBAAiBz14B,EAAOoqI,GAC9BtpJ,EAAM405B,mBAAmB505B,EAAMq/4B,UAAUC,YAAat/4B,EAAMq/4B,WAC5Dr/4B,EAAM6z5B,aACN7z5B,EAAMi+4B,QAAQnx4B,KAAK9M,EAAMq/4B,WACzBr/4B,EAAM+x5B,mBAAmB,iBAAkB31O,EAASA,EAAQ6hO,QAAS7hO,EAAQz+M,UAAWk0b,GACxF7x5B,EAAMyy5B,YAAYzy5B,EAAMi+4B,QAAQj+4B,EAAMi+4B,QAAQn64B,OAAS,GAC3D,CACJ,IAEJyw5B,EAAcn7jB,SAAS,IAAM14V,KAAKmV,QAAQghB,GAAK,eACnD,CACJ,EACAwm3B,EAAYhs4B,UAAUij5B,aAAe,WACjC,IAEI30mB,EAFAn3P,EAAQ,GACZ9nD,KAAKy+4B,aAAe,GAGhBx/lB,EADgB,IAAhBj/S,KAAKw0vB,QAAgBx0vB,KAAKw0vB,OAAS,MAAQ,EAChCx0vB,KAAKm05B,UAAY,GAGjBn05B,KAAKo05B,WAAa,GAEjC,IAAK,IAAIjo5B,EAAI,EAAGA,GAAK,GAAIA,IACrBnM,KAAKy+4B,aAAary4B,KAAK,CAAE6zB,MAAO9zB,EAAKvI,KAAKmgB,MAAMk7R,EAAW,IAAKnoS,aAChEgxC,EAAM17C,KAAK,CAAE6zB,KAAO9zB,EAAE2K,aAE1B,OAAOgxC,CACX,EACA601B,EAAYhs4B,UAAU0j5B,iBAAmB,SAAU9+3B,GAC/C,IAqBI/W,EArBA814B,EAAWt05B,KAAK2+4B,UAAUd,aAAaztxB,KACvCmkyB,EAAav05B,KAAK2+4B,UAAUd,aAAavtxB,OAC7C,OAAQ/6F,GACJ,IAAK,UACDv1B,KAAK2+4B,UAAUd,aAAaztxB,MAAO,EACnCpwH,KAAK2+4B,UAAUd,aAAavtxB,QAAS,EACrC,MACJ,IAAK,OACDtwH,KAAK2+4B,UAAUd,aAAaztxB,MAAO,EACnCpwH,KAAK2+4B,UAAUd,aAAavtxB,QAAS,EACrC,MACJ,IAAK,SACDtwH,KAAK2+4B,UAAUd,aAAaztxB,MAAO,EACnCpwH,KAAK2+4B,UAAUd,aAAavtxB,QAAS,EACrC,MACJ,IAAK,aACDtwH,KAAK2+4B,UAAUd,aAAaztxB,MAAO,EACnCpwH,KAAK2+4B,UAAUd,aAAavtxB,QAAS,EAe7C,OAZAtwH,KAAKoz5B,mBAGD504B,EADgC,SAAhCxe,KAAKmr5B,SAAShl5B,MAAMi+J,QACZpkK,KAAK4o5B,aAAaoL,YAAYh05B,KAAK2+4B,UAAU7B,YAAYt+3B,MACtB,GAAvCxe,KAAK2+4B,UAAUd,aAAa5+lB,SAGxBj/S,KAAK4o5B,aAAaoL,YAAYh05B,KAAKmr5B,SAASvp5B,OAAO4c,MAChB,GAAvCxe,KAAK2+4B,UAAUd,aAAa5+lB,SAEpCj/S,KAAK2+4B,UAAUd,aAAaztxB,KAAOkkyB,EACnCt05B,KAAK2+4B,UAAUd,aAAavtxB,OAASikyB,EAC9B/14B,CACX,EACAm+3B,EAAYhs4B,UAAU6j5B,kBAAoB,SAAUjX,GAChD,GAAIv94B,KAAK+o5B,cAAe,CACpB/o5B,KAAKu94B,QAAQnx4B,KAAKpM,KAAK2+4B,WACvB,IAAIwE,EAAU15zB,GAAO,CAAC,EAAGzpF,KAAKmj5B,QAAS,CAAC,GAAG,GACvCty4B,EAAM7Q,KAAKix5B,gBACfpg5B,EAAI0s4B,QAAU9zzB,GAAO,GAAIzpF,KAAKu94B,QAAS,IAAI,GAC3C1s4B,EAAIosd,UAAYxzY,GAAO,GAAIzpF,KAAKi9d,UAAW,IAAI,GAC/Cpsd,EAAI6y4B,iBAAmBj6zB,GAAO,GAAIzpF,KAAK0j5B,iBAAkB,IAAI,GAC7D1j5B,KAAKw94B,aAAapx4B,KAAK,CAAEurd,UAAW,iBAAkB88b,YAAa5j5B,EAAKgplB,WAAYhplB,EAChF6j5B,gBAAiBnX,EAASoX,eAAgB9j5B,EAAI0s4B,QAC9CqX,kBAAmB/j5B,EAAIosd,UAAW43b,iBAAkBhk5B,EAAIosd,UACxD63b,gBAAiB3R,EAAS4R,eAAgB5R,IAC9Cnj5B,KAAK+x5B,YAAY/x5B,KAAKu94B,QAAQv94B,KAAKu94B,QAAQn64B,OAAS,GACxD,CACJ,EACAu54B,EAAYhs4B,UAAUqk5B,cAAgB,SAAUz/3B,EAAMgo3B,GAClD,IAAI4T,EAAc1n0B,GAAO,CAAC,EAAGzpF,KAAKmj5B,QAAS,CAAC,GAAG,GAC3CznO,EAAU17qB,KAAKix5B,gBACnBv1O,EAAQ6hO,QAAUA,EAClB7hO,EAAQz+M,UAAYxzY,GAAO,GAAIzpF,KAAKi9d,UAAW,IAAI,GACnDy+M,EAAQgoO,iBAAmBj6zB,GAAO,GAAIzpF,KAAK0j5B,iBAAkB,IAAI,GACjE,IAAI4Q,EAAWt05B,KAAK2+4B,UAAUd,aAAaztxB,KACvCmkyB,EAAav05B,KAAK2+4B,UAAUd,aAAavtxB,OAC7C,OAAQ/6F,GACJ,IAAK,UACDv1B,KAAK2+4B,UAAUd,aAAaztxB,MAAO,EACnCpwH,KAAK2+4B,UAAUd,aAAavtxB,QAAS,EACrC,MACJ,IAAK,OACDtwH,KAAK2+4B,UAAUd,aAAaztxB,MAAO,EACnCpwH,KAAK2+4B,UAAUd,aAAavtxB,QAAS,EACrC,MACJ,IAAK,SACDtwH,KAAK2+4B,UAAUd,aAAaztxB,MAAO,EACnCpwH,KAAK2+4B,UAAUd,aAAavtxB,QAAS,EACrC,MACJ,IAAK,aACDtwH,KAAK2+4B,UAAUd,aAAaztxB,MAAO,EACnCpwH,KAAK2+4B,UAAUd,aAAavtxB,QAAS,EAG7CtwH,KAAKu94B,QAAQnx4B,KAAKpM,KAAK2+4B,WACvB3+4B,KAAKqx5B,mBAAmB,wBAAyB31O,EAASA,EAAQ6hO,QAAS7hO,EAAQz+M,UAAWk0b,GAC9Fnx5B,KAAKu94B,QAAQj/2B,MACbt+B,KAAK2+4B,UAAUd,aAAaztxB,KAAOkkyB,EACnCt05B,KAAK2+4B,UAAUd,aAAavtxB,OAASikyB,CACzC,EACA5X,EAAYhs4B,UAAU6i5B,eAAiB,SAAUj+3B,GAC7Cv1B,KAAK8x5B,qBACL,IAAIvU,EAAU9zzB,GAAO,GAAIzpF,KAAKu94B,QAAS,IAAI,GAQ3C,OAPAv94B,KAAKu94B,QAAQj/2B,MACuB,SAAhCt+B,KAAKmr5B,SAAShl5B,MAAMi+J,QACpBpkK,KAAKkz5B,gBAAgBlz5B,KAAK2+4B,WAG1B3+4B,KAAKkz5B,gBAAgBlz5B,KAAK2+4B,WAAW,GAEjCpp3B,GACJ,IAAK,UACD,GAAoC,UAAhCv1B,KAAKmr5B,SAAShl5B,MAAMi+J,QAAqB,CACzC,IAAI5lJ,EAAQxe,KAAKq05B,iBAAiB9+3B,GAClCv1B,KAAKmr5B,SAAShl5B,MAAMqY,MAAQA,EAAQ,KACpCxe,KAAKmr5B,SAAShl5B,MAAMgoI,WAAa,SACjCnuI,KAAKmr5B,SAAShl5B,MAAMqwkB,UAAY,SAChCx2kB,KAAKg15B,cAAcz/3B,EAAMgo3B,EAC7B,MAEIv94B,KAAK694B,aAAaztxB,KAAOpwH,KAAK2+4B,UAAUd,aAAaztxB,MAAO,EAC5DpwH,KAAK694B,aAAavtxB,OAAStwH,KAAK2+4B,UAAUd,aAAavtxB,QAAS,EAChEtwH,KAAKmz5B,aACLnz5B,KAAKw05B,kBAAkBjX,GAE3B,MACJ,IAAK,OACD,GAAoC,UAAhCv94B,KAAKmr5B,SAAShl5B,MAAMi+J,QAAqB,CACrC5lJ,EAAQxe,KAAKq05B,iBAAiB9+3B,GAClCv1B,KAAKmr5B,SAAShl5B,MAAMqY,MAAQA,EAAQ,KACpCxe,KAAKmr5B,SAAShl5B,MAAMgoI,WAAa,OACjCnuI,KAAKmr5B,SAAShl5B,MAAMqwkB,UAAY,SAChCx2kB,KAAKg15B,cAAcz/3B,EAAMgo3B,EAC7B,MAEIv94B,KAAK694B,aAAaztxB,KAAOpwH,KAAK2+4B,UAAUd,aAAaztxB,MAAO,EAC5DpwH,KAAK694B,aAAavtxB,OAAStwH,KAAK2+4B,UAAUd,aAAavtxB,QAAS,EAChEtwH,KAAKmz5B,aACLnz5B,KAAKw05B,kBAAkBjX,GAE3B,MACJ,IAAK,SACD,GAAoC,UAAhCv94B,KAAKmr5B,SAAShl5B,MAAMi+J,QAAqB,CACrC5lJ,EAAQxe,KAAKq05B,iBAAiB9+3B,GAClCv1B,KAAKmr5B,SAAShl5B,MAAMqY,MAAQA,EAAQ,KACpCxe,KAAKmr5B,SAAShl5B,MAAMgoI,WAAa,SACjCnuI,KAAKmr5B,SAAShl5B,MAAMqwkB,UAAY,SAChCx2kB,KAAKg15B,cAAcz/3B,EAAMgo3B,EAC7B,MAEIv94B,KAAK694B,aAAaztxB,KAAOpwH,KAAK2+4B,UAAUd,aAAaztxB,MAAO,EAC5DpwH,KAAK694B,aAAavtxB,OAAStwH,KAAK2+4B,UAAUd,aAAavtxB,QAAS,EAChEtwH,KAAKmz5B,aACLnz5B,KAAKw05B,kBAAkBjX,GAE3B,MACJ,IAAK,aACD,GAAoC,UAAhCv94B,KAAKmr5B,SAAShl5B,MAAMi+J,QAAqB,CACrC5lJ,EAAQxe,KAAKq05B,iBAAiB9+3B,GAClCv1B,KAAKmr5B,SAAShl5B,MAAMqY,MAAQA,EAAQ,KACpCxe,KAAKmr5B,SAAShl5B,MAAMgoI,WAAa,OACjCnuI,KAAKmr5B,SAAShl5B,MAAMqwkB,UAAY,SAChCx2kB,KAAKg15B,cAAcz/3B,EAAMgo3B,EAC7B,MAEIv94B,KAAK694B,aAAaztxB,KAAOpwH,KAAK2+4B,UAAUd,aAAaztxB,MAAO,EAC5DpwH,KAAK694B,aAAavtxB,OAAStwH,KAAK2+4B,UAAUd,aAAavtxB,QAAS,EAChEtwH,KAAKmz5B,aACLnz5B,KAAKw05B,kBAAkBjX,GAIvC,EACAZ,EAAYhs4B,UAAUsk5B,oBAAsB,WACxC,IAAI315B,EAAQU,KACR6u5B,EAAW7u5B,KAAK6t5B,qBAChBiB,EAAY9u5B,KAAKiu5B,sBACjBe,EAAWhv5B,KAAKmu5B,sBACpBnu5B,KAAK4/4B,gBAAkBiP,EAASz14B,OAAO414B,EAAUF,GACjD,IAAIh2X,IAAQ,CACRt6gB,MAAO,OACPspC,MAAO9nD,KAAK4/4B,gBACZrzV,QAASvsjB,KAAKqs5B,kBAAkBxs5B,KAAKG,MACrCyzd,QAAS,WACLn0d,EAAM2v5B,gBACN3v5B,EAAM+u5B,oBACN/u5B,EAAMghS,QAAQ,iBAAkB,CAAE8rnB,YAAa,QACnD,GACD,IAAMps5B,KAAKmV,QAAQghB,GAAK,YAC3Bn2B,KAAKss5B,4BACLts5B,KAAKkv5B,0BACDlv5B,KAAK4/4B,gBAAgBx84B,OAAS,IAAO2oU,GAAkB76S,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,eAEjF82T,GAAajtV,KAAKmV,QAAQghB,GAAK,WAAY,WACjDyngB,iBAElB,EACA++W,EAAYhs4B,UAAUgg5B,oBAAsB,WACxC3w5B,KAAKw94B,aAAex94B,KAAKw94B,aAAa5s4B,MAAM,EAAG5Q,KAAKq+4B,cACpDr+4B,KAAKwk5B,oBAAsBxk5B,KAAKwk5B,oBAAoB5z4B,MAAM,EAAG5Q,KAAKq+4B,cAClEr+4B,KAAK484B,WAAa584B,KAAKi/4B,YAAYS,cAAe,EAClD1/4B,KAAKkv5B,yBACT,EACAvS,EAAYhs4B,UAAUuk5B,mBAAqB,WAClCnplB,GAAkB76S,SAAS0I,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,qBAClEn2B,KAAKi/4B,YAAYnyb,aACjB9sd,KAAK0g5B,uBAAyB1g5B,KAAK6g5B,aAAe7g5B,KAAK4p5B,aAAaxj5B,OACpEpG,KAAKi/4B,YAAYnyb,YAAa,EAEtC,EACA6vb,EAAYhs4B,UAAUwk5B,yBAA2B,SAAUl84B,GACvD,IAAIgzhB,EAASjsiB,KAAKmV,QAAQykB,cAAc,4DACpCqygB,GACAA,EAAO/jR,UAAU/0P,OAAO,cAE5B,IAAIvmB,EAAOqM,EAAKsc,KAAKY,GAAG9lB,QAAQrQ,KAAKmV,QAAQghB,GAAI,IAAIxD,MAAM,KAAK,GAC5Dyi4B,EAAiB,CAAEhv5B,OAAQpG,KAAKur5B,aAAa3+4B,GAAOk0E,QAAQ,GAChE9gF,KAAKsgS,QAAQ,iBAAkB80nB,GAC3BA,EAAet00B,SAGnB5vD,SAASg8T,eAAej0U,EAAKsc,KAAKY,GAAK,UAAU0/P,cAAcA,cAAc3N,UAAU90P,IAAI,cAC3FpzB,KAAKi/4B,YAAYnyb,YAAa,EAC9B9sd,KAAKq15B,UAAUzo5B,EAAK8T,eACpB1gB,KAAKijb,cAAgBhqa,EAAKsc,KAAKY,GAC/Bn2B,KAAKkv5B,0BACT,EACAvS,EAAYhs4B,UAAU+94B,sBAAwB,SAAUru5B,GACpD,IAAKL,KAAKop5B,aAAaC,YAAcjN,IAAYtjX,WAAasjX,IAAYtjX,QAAS,CAC/E,GAAI7xM,GAAQM,UAAuB,eAAXlnV,EAAEuM,KAAuB,CAC7C,IAAKvM,EAAE4kJ,YACH,OAEJ5kJ,EAAEgO,gBACN,CACA,IAAIig5B,EAASp93B,SAAS0I,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,WAC5D0iN,GAAaynD,QAAQgunB,EAAQ,SACzBtu5B,KAAKii5B,uBACLji5B,KAAKs15B,oBAETt15B,KAAKk15B,qBACLl15B,KAAKi/4B,YAAYnyb,YAAa,EAC1B9sd,KAAKs+4B,YACLt+4B,KAAKi/4B,YAAYO,UAAW,EAC5Bx/4B,KAAK+v5B,cAAa,GAClB/v5B,KAAK8w5B,0BAA0B,OAEnC9w5B,KAAK4w5B,sBAAwB,KAC7B5w5B,KAAKkx5B,WAAW,GACpB,CACJ,EACAvU,EAAYhs4B,UAAUi+4B,uBAAyB,SAAUvu5B,GACrD,IAAKL,KAAKop5B,aAAaC,YAAcjN,IAAYtjX,WAAasjX,IAAYtjX,QAAS,CAC/E,GAAI7xM,GAAQM,UAAuB,eAAXlnV,EAAEuM,KAAuB,CAC7C,IAAKvM,EAAE4kJ,YACH,OAEJ5kJ,EAAEgO,gBACN,CACA,IAAIkg5B,EAAUr93B,SAAS0I,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,YAC7D0iN,GAAaynD,QAAQiunB,EAAS,SAC1Bvu5B,KAAKii5B,uBACLji5B,KAAKs15B,oBAETt15B,KAAKk15B,qBACLl15B,KAAKi/4B,YAAYnyb,YAAa,EAC1B9sd,KAAKs+4B,YACLt+4B,KAAKi/4B,YAAYO,UAAW,EAC5Bx/4B,KAAK+v5B,cAAa,GAClB/v5B,KAAK8w5B,0BAA0B,OAEnC9w5B,KAAK4w5B,sBAAwB,KAC7B5w5B,KAAKkx5B,YAAY,GACrB,CACJ,EACAvU,EAAYhs4B,UAAU694B,0BAA4B,SAAUnu5B,GACxDA,EAAEgO,iBACFrO,KAAKu15B,YAAcrxpB,YAAYlkQ,KAAK0u5B,sBAAsB7u5B,KAAKG,MAAO,IAC1E,EACA284B,EAAYhs4B,UAAUg+4B,2BAA6B,SAAUtu5B,GACzDA,EAAEgO,iBACFrO,KAAKu15B,YAAcrxpB,YAAYlkQ,KAAK4u5B,uBAAuB/u5B,KAAKG,MAAO,IAC3E,EACA284B,EAAYhs4B,UAAU894B,sBAAwB,WAC1CpqpB,cAAcrkQ,KAAKu15B,aACnBv15B,KAAKu15B,YAAc,CACvB,EACA5Y,EAAYhs4B,UAAU074B,kBAAoB,SAAUpz4B,GAChD,IAAIu84B,GAAsB,EACtBC,GAAmB,EAQvB,GAPIz15B,KAAKmV,QAAQykB,cAAc,mCACtB55B,KAAKmV,QAAQykB,cAAc,iCAAiCsuP,UAAUh1P,SAAS,YAChFsi4B,GAAsB,GAE1Bx15B,KAAKmV,QAAQykB,cAAc,iCAAiCsuP,UAAU90P,IAAI,UAC1Eqi4B,GAAmB,IAElB1plB,GAAkB9yT,EAAKsc,MAAO,CAC/B,IAAI3oB,EAAOqM,EAAKsc,KAAKY,GAAG9lB,QAAQrQ,KAAKmV,QAAQghB,GAAK,IAAK,IAAIzV,cACvD4v4B,EAAiBvilB,GAAY78S,SAASg8T,eAAeltV,KAAKmV,QAAQghB,IAAK6u3B,GACvE4K,GAAkB,EAClB8F,OAAS,EACT/F,OAAa,OACYts5B,IAAzBrD,KAAK2+4B,UAAUnzwB,QACfmkxB,EAAa3v5B,KAAK2+4B,UAAUnzwB,MAAM74G,MAAM,YAEzBtvB,IAAfss5B,GAA4B3v5B,KAAKi/4B,YAAYM,mBAGzBl84B,IAAfss5B,GAA8C,SAAlBA,EAAW,MAF5CC,GAAkB,GAKtB,IAAI+F,GAAmB,EACnBC,GAAuB,EACvBtH,EAASp93B,SAAS0I,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,WACxD0/3B,EAAa3k4B,SAAS0I,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,gBAC3D41S,GAAkB8plB,IAAeA,EAAW3toB,UAAUh1P,SAAS,gBAChE0i4B,GAAuB,GAE3B,IAAIxv5B,EAAS8qB,SAAS0I,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,YACvD41S,GAAkB3lU,IAAWA,EAAO8hR,UAAUh1P,SAAS,gBACxDyi4B,GAAmB,GAEvB315B,KAAKkv5B,0BACL,IAAI4G,OAAe,EACfvY,OAAU,EACd,IAAKv94B,KAAK4O,SACN,OAAQhC,GACJ,IAAK,MACD5M,KAAKi/4B,YAAYM,aAAev/4B,KAAKi/4B,YAAYnyb,YAAa,EAC1D9sd,KAAKi/4B,YAAYS,cACjB1/4B,KAAK2w5B,sBAELf,IACA5v5B,KAAKi/4B,YAAYM,cAAe,EAChCv/4B,KAAK6v5B,mBACL7v5B,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,QAC3E5oJ,KAAK8v5B,sBAEL9v5B,KAAKi+4B,WACLj+4B,KAAKmw5B,YACLnw5B,KAAKk+4B,YAAa,EACU,QAAxBl+4B,KAAKu+4B,gBACLv+4B,KAAK+v5B,cAAa,KAKjBhklB,GADL2plB,EAAS115B,KAAKmV,QAAQykB,cAAc,uBAEhC873B,EAAOxtoB,UAAU90P,IAAI,kBAEzBk93B,EAAenB,KAAI,GACnBnv5B,KAAKk+4B,YAAa,IAEjBnykB,GAAkBuilB,IAAWtu5B,KAAKop5B,aAAarI,YAAc/g5B,KAAKop5B,aAAaU,eAChFwE,EAAOpmoB,UAAU90P,IAAI,cACrBk73B,EAAOz4nB,cAAc3N,UAAU90P,IAAI,cAE7B24S,GAAkBuilB,KACxBA,EAAOpmoB,UAAU/0P,OAAO,cACxBm73B,EAAOz4nB,cAAc3N,UAAU/0P,OAAO,cAE1CnzB,KAAK8v5B,qBACL,MACJ,IAAK,SACD9v5B,KAAK+15B,cAAcP,GACnB,MACJ,IAAK,KACDx15B,KAAKyv5B,QACLzv5B,KAAK0w5B,oBAAmB,GACxB1w5B,KAAKu+4B,eAAiB,OACtB,MACJ,IAAK,OACIxykB,GAAkB/rU,KAAKyw5B,sBACpBzw5B,KAAKi/4B,YAAYS,cACjB1/4B,KAAK2w5B,sBAEJ5klB,GAAkB/rU,KAAKmj5B,QAAQxE,UAAUnzwB,QAC1CxrI,KAAKwqV,OAAOxqV,KAAKmj5B,QAAQxE,UAAUnzwB,OAEvCxrI,KAAKs0jB,eAAe,QAAQ,GAAM,GAClCrnO,GAAajtV,KAAKmV,QAAQykB,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,YAAa,gBAAgBnD,SACxF+4S,GAAkB/rU,KAAK2+4B,UAAUnzwB,QAClCt6G,SAASg8T,eAAeltV,KAAK2+4B,UAAUnzwB,MAAM74G,MAAM,KAAK,IAAIu1P,UAAU90P,IAAI,eAGlF,MACJ,IAAK,QACDk93B,EAAer32B,QACfj5C,KAAKu+4B,eAAiB,OACtB,MACJ,IAAK,OACDv+4B,KAAKg25B,WACL,MACJ,IAAK,OACDh25B,KAAKi25B,WACL,MACJ,IAAK,aACIL,IACD515B,KAAKs0jB,eAAe,cACpBt0jB,KAAKk25B,0BACLl25B,KAAKm25B,WAAW,eAEpB,MACJ,IAAK,aACL,IAAK,WACL,IAAK,MACL,IAAK,aACL,IAAK,UACL,IAAK,OACL,IAAK,WACDn25B,KAAKm25B,WAAWvp5B,GAChB,MACJ,IAAK,SACI+o5B,IACD315B,KAAKs0jB,eAAe,UACpBt0jB,KAAKk25B,2BAET,MACJ,IAAK,UACL,IAAK,SACL,IAAK,OACL,IAAK,OACL,IAAK,YACL,IAAK,gBACL,IAAK,QACL,IAAK,SACL,IAAK,UACDl25B,KAAKi/4B,YAAYnyb,YAAa,EAC9B9sd,KAAKq15B,UAAUzo5B,GACf,MACJ,IAAK,YACDkp5B,EAAers0B,GAAO,CAAC,EAAGzpF,KAAK2+4B,UAAW,CAAC,GAAG,GAC1C5ykB,GAAkB/rU,KAAK2+4B,UAAUyX,WACjCp25B,KAAKq25B,cAGLr25B,KAAKq25B,aAAY,GAErB9Y,EAAU9zzB,GAAO,GAAIzpF,KAAKu94B,QAAS,IAAI,GACvCuY,EAAalX,YAAYn3iB,QAAU,GACnCqujB,EAAalX,YAAYl3iB,QAAU,GACnCoujB,EAAalX,YAAYzB,MAAQ,GACjC2Y,EAAalX,YAAYxB,MAAQ,GACjCp94B,KAAK2+4B,UAAYmX,EACjB915B,KAAKs25B,qBAAqBt25B,KAAK2+4B,WAC/B3+4B,KAAKu25B,WAAW,aAChBv25B,KAAKw05B,kBAAkBjX,GACvBv94B,KAAKkp5B,2BACL,MACJ,IAAK,SACDlp5B,KAAKw25B,aACL,MACJ,IAAK,WACDx25B,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,QAC3E5oJ,KAAKy25B,eAAez25B,KAAK2+4B,UAAUC,YAAYn3iB,OAAQznW,KAAK2+4B,UAAUC,YAAYl3iB,OAAQ1nW,KAAK2+4B,WAC1F5ykB,GAAkB76S,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,8BAC7DjF,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,2BAA2BhwB,MAAMi+J,QAAU,QAEzF,MACJ,IAAK,SACGqxvB,GACAz15B,KAAKmV,QAAQykB,cAAc,iCAAiCsuP,UAAU/0P,OAAO,UAK7FnzB,KAAKsgS,QAAQ,qBAAsBrnR,EACvC,CACJ,EACA0j4B,EAAYhs4B,UAAUol5B,cAAgB,SAAUP,GAC5CA,EAAsBA,IAA4C,EAC9Dx15B,KAAKii5B,uBACLji5B,KAAK025B,qBACL125B,KAAKmp5B,4BACLnp5B,KAAK8w5B,0BAA0B,WAEM,UAAhC9w5B,KAAKmr5B,SAAShl5B,MAAMi+J,SACzBpkK,KAAKmr5B,SAAShl5B,MAAMi+J,QAAU,OAC9BpkK,KAAKmr5B,SAASvp5B,MAAQ,GACtB5B,KAAKmr5B,SAAShl5B,MAAMoyD,UAAY,GAC3BwzQ,GAAkB/rU,KAAK225B,aAKxB325B,KAAK2+4B,UAAUjB,eAAiB194B,KAAK494B,mBACrC594B,KAAK2+4B,UAAUd,aAAe794B,KAAK+94B,mBALnC/94B,KAAK2+4B,UAAY3+4B,KAAK225B,WACtB325B,KAAK225B,WAAa,MAMtB325B,KAAK8w5B,0BAA0B,UAC3B9w5B,KAAK8k5B,qBACL9k5B,KAAK6v5B,mBAET7v5B,KAAKq25B,aAAY,GACjBr25B,KAAK8v5B,uBAEC/jlB,GAAkB76S,SAAS0I,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,oBACvEn2B,KAAKi/4B,YAAYnyb,YACjB9sd,KAAK4p5B,aAAaxj5B,OAASpG,KAAKyg5B,gBAAkBzg5B,KAAK0g5B,uBAAyB1g5B,KAAK2g5B,oBACjF3g5B,KAAK4p5B,aAAaxj5B,OAAOusB,MAAM,KAAKvvB,OAAS,GAC0B,MAAvEpD,KAAK4p5B,aAAaxj5B,OAAOusB,MAAM,KAAK,GAAGA,MAAM,KAAK,GAAGA,MAAM,KAAK,KAChE3yB,KAAKyi5B,sBAAuB,GAEhCzi5B,KAAKijb,cAAgBjjb,KAAK4g5B,WAC1B5g5B,KAAK4p5B,aAAa7qb,UAAU,EAAG,EAAG/+d,KAAK6q5B,YAAYrs4B,MAAOxe,KAAK6q5B,YAAYjiwB,QAC3E5oJ,KAAK425B,mBACL525B,KAAKi/4B,YAAYnyb,YAAa,EAC9B9sd,KAAKgg5B,gBAAkBv2zB,GAAO,CAAC,EAAGzpF,KAAKwg5B,oBAAqB,CAAC,GAAG,GAChExg5B,KAAKmV,QAAQykB,cAAc,iCAAiCsuP,UAAU90P,IAAI,UAC1EpzB,KAAKq+4B,aAAer+4B,KAAK8g5B,iBACzB9g5B,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,UAChCl5iB,KAAKi/4B,YAAYM,cAAe,EAChCv/4B,KAAK494B,mBAAqB,CAAEngb,YAAa,OAAQkgb,UAAW,GAAIvuwB,YAAa,MAC7EpvI,KAAK625B,kBACL725B,KAAK8w5B,0BAA0B,WAG3B0E,EACAx15B,KAAK625B,mBAGL725B,KAAK825B,cACL925B,KAAKi+4B,UAAYj+4B,KAAK684B,YAAa,GAG3C784B,KAAK8k5B,qBAAsB,EAC3B9k5B,KAAK0w5B,oBAAmB,GACxB1w5B,KAAKu+4B,eAAiB,MAC1B,EACA5B,EAAYhs4B,UAAUom5B,WAAa,WAC1BhrlB,GAAkB/rU,KAAK2+4B,UAAUnzwB,QAAoC,cAAzBxrI,KAAK2+4B,UAAUnzwB,OACnC,YAAzBxrI,KAAK2+4B,UAAUnzwB,OAAgD,SAAzBxrI,KAAK2+4B,UAAUnzwB,OAC5B,UAAzBxrI,KAAK2+4B,UAAUnzwB,OAA8C,SAAzBxrI,KAAK2+4B,UAAUnzwB,QACnDxrI,KAAKg35B,eACLh35B,KAAK6v5B,mBACL7v5B,KAAKu+4B,eAAiB,OACtBv+4B,KAAK8v5B,qBAEb,EACAnT,EAAYhs4B,UAAU2k5B,kBAAoB,WAC6B,YAA/Dt15B,KAAKi9d,UAAUj9d,KAAKi35B,2BAA2Bx5b,cAC/Cz9d,KAAKi9d,UAAUj9d,KAAKi35B,2BAA2Bx5b,YAAcz9d,KAAKki5B,8BAA8Bzkb,aAEpGz9d,KAAKgj5B,sBAAwB,UAC7Bhj5B,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,QAC3E5oJ,KAAK4p5B,aAAa7qb,UAAU,EAAG,EAAG/+d,KAAK6q5B,YAAYrs4B,MAAOxe,KAAK6q5B,YAAYjiwB,QAC3E5oJ,KAAKk35B,cACLl35B,KAAK8v5B,qBACA/jlB,GAAkB/rU,KAAKi9d,UAAUj9d,KAAKi35B,8BACvCj35B,KAAKi9d,UAAUj9d,KAAKi35B,2BAA2Bt7d,YAAa,GAEhE37b,KAAKii5B,sBAAwBji5B,KAAKgi5B,wBAAyB,EAC3Dhi5B,KAAKm35B,yBAA2Bn35B,KAAKi35B,0BAA4B,IACrE,EACAta,EAAYhs4B,UAAU+l5B,mBAAqB,WACvC125B,KAAKgj5B,sBAAwB,UAC7Bhj5B,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,QAC3E,IAAK,IAAI5mJ,EAAI,EAAGA,EAAIhC,KAAK6i5B,gBAAiB7g5B,IACtChC,KAAKi9d,UAAUj7d,GAAGy7d,YAAcz9d,KAAKki5B,8BAA8Bzkb,YACnEz9d,KAAKi9d,UAAUj7d,GAAGotI,YAAcpvI,KAAKki5B,8BAA8B9ywB,YAEvEpvI,KAAK4i5B,aAAe,EACf72kB,GAAkB/rU,KAAKi9d,UAAUj9d,KAAKi35B,8BACvCj35B,KAAKi9d,UAAUj9d,KAAKi35B,2BAA2Bt7d,YAAa,GAEhE37b,KAAKm35B,yBAA2Bn35B,KAAKi35B,0BAA4Bj35B,KAAKo35B,uBAAyB,KAC/Fp35B,KAAKii5B,sBAAwBji5B,KAAKgi5B,wBAAyB,EAC3Dhi5B,KAAK2+4B,UAAUjB,eAAejgb,YAAcz9d,KAAKki5B,8BAA8Bzkb,YAC/Ez9d,KAAK2+4B,UAAUjB,eAAetuwB,YAAcpvI,KAAKq35B,eAAiBr35B,KAAKki5B,8BAA8B9ywB,YACrGpvI,KAAKki5B,8BAAgC,CAAEzkb,YAAa,KAAMruV,YAAa,KAAMuuwB,UAAW,MACxF394B,KAAK8v5B,oBACT,EACAnT,EAAYhs4B,UAAUwl5B,WAAa,SAAUvp5B,GACzC5M,KAAKs35B,cACLt35B,KAAKi/4B,YAAYnyb,YAAa,EAC9B9sd,KAAKs0jB,eAAe,QAAS,KAAM,KAAM,KAAM1njB,GAC/CskB,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,IAAMvpB,GAAMs7Q,UAAU90P,IAAI,iBACxE,EACAup3B,EAAYhs4B,UAAUul5B,wBAA0B,WAC5Cl25B,KAAKyq5B,YAAYtk5B,MAAMi+J,QAAU,QACjCpkK,KAAKwv5B,oBACLxv5B,KAAK4p5B,aAAaxj5B,OAASpG,KAAK0g5B,uBAChC1g5B,KAAK2g5B,oBAAsB3g5B,KAAK4p5B,aAAaxj5B,OAC7CpG,KAAKwg5B,oBAAsB/2zB,GAAO,CAAC,EAAGzpF,KAAKgg5B,gBAAiB,CAAC,GAAG,GAChEhg5B,KAAK4g5B,WAAa5g5B,KAAKijb,cACvBjjb,KAAK8g5B,iBAAmB9g5B,KAAKq+4B,YACjC,EACA1B,EAAYhs4B,UAAU8+4B,MAAQ,SAAU8H,GACpC,IACI5H,EADAC,GAAkB,OAEOvs5B,IAAzBrD,KAAK2+4B,UAAUnzwB,QACfmkxB,EAAa3v5B,KAAK2+4B,UAAUnzwB,MAAM74G,MAAM,YAEzBtvB,IAAfss5B,GAA4B3v5B,KAAKi/4B,YAAYM,mBAGzBl84B,IAAfss5B,GAA8C,SAAlBA,EAAW,MAF5CC,GAAkB,GAKtB,IAAI4H,EAAUx35B,KAAKmV,QAAQykB,cAAc,4DACrC493B,IACAx35B,KAAKijb,cAAgBu0e,EAAQ1x5B,SAAS,GAAGA,SAAS,GAAGqwB,GAAG9lB,QAAQ,SAAU,KAE1Eu/4B,EACA5v5B,KAAKy35B,OAEAz35B,KAAKs+4B,WACVt+4B,KAAK+v5B,cAAa,GAClB/v5B,KAAK8w5B,0BAA0B,OAEM,UAAhC9w5B,KAAKmr5B,SAAShl5B,MAAMi+J,QACzBpkK,KAAKg35B,gBAECjrlB,GAAkB76S,SAAS0I,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,oBACvEn2B,KAAKi/4B,YAAYnyb,YACjB9sd,KAAK0g5B,uBAAyB1g5B,KAAK6g5B,aAAe7g5B,KAAK4p5B,aAAaxj5B,OACpEpG,KAAKi/4B,YAAYnyb,YAAa,EAC9B9sd,KAAK8w5B,0BAA0B,OAE1B9w5B,KAAKii5B,uBACVji5B,KAAKs15B,oBACLt15B,KAAKmp5B,4BACLnp5B,KAAK8w5B,0BAA0B,OAG/B9w5B,KAAKq25B,YAAYkB,GAErBv35B,KAAK625B,iBAAgB,GACrB725B,KAAKsi5B,WAAY,EACjBti5B,KAAK+g5B,WAAa/g5B,KAAKwi5B,iBAC3B,EACA7F,EAAYhs4B,UAAU+m5B,0BAA4B,SAAU7m5B,GACxD,IAAIgplB,EAAa75lB,KAAKix5B,gBACtBp3T,EAAW0jT,QAAU9zzB,GAAO,GAAIzpF,KAAKu94B,QAAS,IAAI,GAClD1jT,EAAW58H,UAAYxzY,GAAO,GAAIzpF,KAAKi9d,UAAW,IAAI,GACtD48H,EAAW6pT,iBAAmBj6zB,GAAO,GAAIzpF,KAAK0j5B,iBAAkB,IAAI,GACpE,IAAIiU,EAAuBlu0B,GAAO,GAAIzpF,KAAKi9d,UAAW,IAAI,GAC1D,GAAIj9d,KAAK+g5B,WAAa,GAAKlw4B,EAAIzN,OAAS,EAAG,CACvCpD,KAAKi9d,UAAYpsd,EACjB,IAAI+r4B,EAAa584B,KAAK484B,WACtB,GAAwB,IAApB584B,KAAK+g5B,WAAkB,CACvB/g5B,KAAK484B,WAAa584B,KAAKsi5B,WAAY,EACnCti5B,KAAK435B,+BACL,IAAIxO,EAAe3/zB,GAAO,CAAC,EAAGzpF,KAAKop5B,aAAc,MAAM,GACnDpp5B,KAAK+g5B,WAAa,EAClB/g5B,KAAKkx5B,YAAYlx5B,KAAK+g5B,YAGtB/g5B,KAAKkx5B,WAAWtt5B,KAAK8Y,IAAI1c,KAAK+g5B,aAElC/g5B,KAAKop5B,aAAeA,EACpBpp5B,KAAKsi5B,WAAY,EACjBti5B,KAAK484B,WAAaA,EAClB+a,EAAuBlu0B,GAAO,GAAIzpF,KAAKi9d,UAAW,IAAI,GACtDj9d,KAAKu94B,QAAU,GACfv94B,KAAKi9d,UAAY,GACjBj9d,KAAK6i5B,gBAAkB,EACvB7i5B,KAAK635B,cAAch+T,GACnB75lB,KAAKih5B,SAAWpnT,EAAW0pT,WAAW97iB,OACtCznW,KAAKkh5B,QAAUrnT,EAAW0pT,WAAW77iB,OACrC1nW,KAAKqi5B,iBAAmBxoT,EAAWwoT,iBACnCri5B,KAAKoi5B,uBAAyBvoT,EAAWuoT,uBACzCpi5B,KAAKmi5B,yBAA2BtoT,EAAWsoT,yBAC3Cni5B,KAAKu94B,QAAU9zzB,GAAO,GAAIowgB,EAAW0jT,QAAS,IAAI,GAClDv94B,KAAKi9d,UAAYxzY,GAAO,GAAIowgB,EAAW58H,UAAW,IAAI,GACtDj9d,KAAK6i5B,gBAAkB7i5B,KAAKi9d,UAAU75d,OACtCpD,KAAK4p5B,aAAaxj5B,OAAS,OAC3BpG,KAAK835B,iBACL935B,KAAK+35B,eAAe/35B,KAAK4p5B,cACzB5p5B,KAAKg45B,uCACLh45B,KAAK4p5B,aAAaxj5B,OAASyzlB,EAAWzzlB,MAC1C,CACJ,CACA,OAAOux5B,CACX,EACAhb,EAAYhs4B,UAAUsn5B,oBAAsB,SAAUpn5B,GAClD,IAAIgplB,EAAa75lB,KAAKix5B,gBACtBp3T,EAAW0jT,QAAU9zzB,GAAO,GAAIzpF,KAAKu94B,QAAS,IAAI,GAClD1jT,EAAW58H,UAAYxzY,GAAO,GAAIzpF,KAAKi9d,UAAW,IAAI,GACtD48H,EAAW6pT,iBAAmBj6zB,GAAO,GAAIzpF,KAAK0j5B,iBAAkB,IAAI,GACpE,IAAIwU,EAAqBzu0B,GAAO,GAAIzpF,KAAKu94B,QAAS,IAAI,GACtD,GAAIv94B,KAAK+g5B,WAAa,GAAKlw4B,EAAIzN,OAAS,EAAG,CACvCpD,KAAKu94B,QAAU1s4B,EACf,IAAI+r4B,EAAa584B,KAAK484B,WACtB,GAAwB,IAApB584B,KAAK+g5B,WAAkB,CACvB/g5B,KAAK484B,WAAa584B,KAAKsi5B,WAAY,EACnCti5B,KAAK435B,+BACL,IAAIxO,EAAe3/zB,GAAO,CAAC,EAAGzpF,KAAKop5B,aAAc,MAAM,GACnDpp5B,KAAK+g5B,WAAa,EAClB/g5B,KAAKkx5B,YAAYlx5B,KAAK+g5B,YAGtB/g5B,KAAKkx5B,WAAWtt5B,KAAK8Y,IAAI1c,KAAK+g5B,aAElC/g5B,KAAKop5B,aAAeA,EACpBpp5B,KAAKsi5B,WAAY,EACjBti5B,KAAK484B,WAAaA,EAClBsb,EAAqBzu0B,GAAO,GAAIzpF,KAAKu94B,QAAS,IAAI,GAClDv94B,KAAKu94B,QAAU,GACfv94B,KAAKi9d,UAAY,GACjBj9d,KAAK6i5B,gBAAkB,EACvB7i5B,KAAK635B,cAAch+T,GACnB75lB,KAAKih5B,SAAWpnT,EAAW0pT,WAAW97iB,OACtCznW,KAAKkh5B,QAAUrnT,EAAW0pT,WAAW77iB,OACrC1nW,KAAKqi5B,iBAAmBxoT,EAAWwoT,iBACnCri5B,KAAKoi5B,uBAAyBvoT,EAAWuoT,uBACzCpi5B,KAAKmi5B,yBAA2BtoT,EAAWsoT,yBAC3Cni5B,KAAKu94B,QAAU9zzB,GAAO,GAAIowgB,EAAW0jT,QAAS,IAAI,GAClDv94B,KAAKi9d,UAAYxzY,GAAO,GAAIowgB,EAAW58H,UAAW,IAAI,GACtDj9d,KAAK6i5B,gBAAkB7i5B,KAAKi9d,UAAU75d,OACtCpD,KAAK4p5B,aAAaxj5B,OAAS,OAC3BpG,KAAK835B,iBACL935B,KAAK+35B,eAAe/35B,KAAK4p5B,cACzB5p5B,KAAKg45B,uCACLh45B,KAAK4p5B,aAAaxj5B,OAASyzlB,EAAWzzlB,MAC1C,CACJ,CACA,OAAO8x5B,CACX,EACAvb,EAAYhs4B,UAAUmg5B,0BAA4B,SAAUlk5B,GAC3C,OAATA,IACA5M,KAAK8k5B,qBAAsB,EACvB9k5B,KAAKi/4B,YAAYS,cACjB1/4B,KAAK2w5B,sBAEL5klB,GAAkB/rU,KAAKwk5B,oBAAoBxk5B,KAAKwk5B,oBAAoBph5B,OAAS,IACxE2oU,GAAkB/rU,KAAKw94B,aAAa,MACrCx94B,KAAKw94B,aAAax94B,KAAKw94B,aAAap64B,OAAS,GAAG0x5B,gBAAkB905B,KAAKw94B,aAAa,GAAGsX,gBACvF905B,KAAKw94B,aAAax94B,KAAKw94B,aAAap64B,OAAS,GAAGqx5B,YAAcz05B,KAAKw94B,aAAa,GAAGiX,YACnFz05B,KAAKw94B,aAAax94B,KAAKw94B,aAAap64B,OAAS,GAAGsx5B,gBAAkB105B,KAAKw94B,aAAa,GAAGkX,gBACvF105B,KAAKw94B,aAAax94B,KAAKw94B,aAAap64B,OAAS,GAAGwx5B,kBAAoB505B,KAAKw94B,aAAa,GAAGoX,kBACzF505B,KAAKw94B,aAAax94B,KAAKw94B,aAAap64B,OAAS,GAAG+05B,aAAen45B,KAAKw94B,aAAa,GAAG2a,eAIxFn45B,KAAKw94B,aAAax94B,KAAKw94B,aAAap64B,OAAS,GAAG0x5B,gBAC5C905B,KAAKwk5B,oBAAoBxk5B,KAAKwk5B,oBAAoBph5B,OAAS,GAAG2x5B,eAClE/05B,KAAKw94B,aAAax94B,KAAKw94B,aAAap64B,OAAS,GAAGqx5B,YAC5Cz05B,KAAKwk5B,oBAAoBxk5B,KAAKwk5B,oBAAoBph5B,OAAS,GAAGy2lB,WAClE75lB,KAAKw94B,aAAax94B,KAAKw94B,aAAap64B,OAAS,GAAGsx5B,gBAC5C105B,KAAKwk5B,oBAAoBxk5B,KAAKwk5B,oBAAoBph5B,OAAS,GAAGux5B,eAClE305B,KAAKw94B,aAAax94B,KAAKw94B,aAAap64B,OAAS,GAAGwx5B,kBAC5C505B,KAAKwk5B,oBAAoBxk5B,KAAKwk5B,oBAAoBph5B,OAAS,GAAGyx5B,iBAClE705B,KAAKw94B,aAAax94B,KAAKw94B,aAAap64B,OAAS,GAAG+05B,aAC5Cn45B,KAAKwk5B,oBAAoBxk5B,KAAKwk5B,oBAAoBph5B,OAAS,GAAGg15B,aAEjErslB,GAAkB/rU,KAAKw94B,aAAax94B,KAAKw94B,aAAap64B,OAAS,MAChEpD,KAAKw94B,aAAax94B,KAAKw94B,aAAap64B,OAAS,GAAGux5B,eAC5C305B,KAAKi45B,oBAAoBj45B,KAAKw94B,aAAax94B,KAAKw94B,aAAap64B,OAAS,GAAGux5B,gBAC7E305B,KAAKw94B,aAAax94B,KAAKw94B,aAAap64B,OAAS,GAAGyx5B,iBAC5C705B,KAAK035B,0BAA0B135B,KAAKw94B,aAAax94B,KAAKw94B,aAAap64B,OAAS,GAAGyx5B,kBACnF705B,KAAKwk5B,oBAAoBp44B,KAAKpM,KAAKw94B,aAAax94B,KAAKw94B,aAAap64B,OAAS,MAG/EpD,KAAKwk5B,oBAAoBph5B,OAAS,IAClCpD,KAAKwk5B,oBAAoBhv3B,OAAO,EAAG,GAEvCx1B,KAAKw94B,aAAe,GACpBx94B,KAAKw94B,aAAe/zzB,GAAO,GAAIzpF,KAAKwk5B,oBAAqB,IAAI,GAChD,OAAT534B,IACA5M,KAAKq+4B,aAAer+4B,KAAKw94B,aAAap64B,OACtCpD,KAAKkv5B,2BAELlv5B,KAAK+g5B,WAAa,IAClB/g5B,KAAK684B,WAAa784B,KAAKi+4B,WAAY,EAE3C,EACAtB,EAAYhs4B,UAAU0n5B,uBAAyB,WAC3C,IAAI1I,EAAa3v5B,KAAK4p5B,aAAaxj5B,OAAOusB,MAAM,KAChD,GAAI3yB,KAAKyi5B,sBAAwBkN,EAAWvs5B,OAAS,IAAM2oU,GAAkB4jlB,EAAW,IAAK,CACzF,IAAI2I,EAAe5n3B,WAAWi/2B,EAAW,GAAGh93B,MAAM,KAAK,IACvDg93B,EAAW,GAAK,YAAc2I,EAAe,IAAO,IACpDt45B,KAAK4p5B,aAAaxj5B,OAASup5B,EAAW3p5B,KAAK,IAC/C,CACJ,EACA224B,EAAYhs4B,UAAU4n5B,oBAAsB,SAAU9r4B,GAElD,IADA,IAAIu7C,GAAU,EACL77D,EAAI,EAAGA,EAAInM,KAAK6i5B,gBAAiB124B,IACtC,GAAIogB,SAASvsB,KAAKi9d,UAAU9wd,GAAGgqB,GAAGxD,MAAM,KAAK,GAAI,IAAM,IAAMlG,EAAO,CAChEu7C,GAAU,EACV,KACJ,CAEJ,OAAOA,CACX,EACA200B,EAAYhs4B,UAAU6n5B,mBAAqB,SAAU/r4B,EAAOgs4B,GACxD,GAAIz45B,KAAKu45B,oBAAoB9r4B,GAAQ,CACjCzsB,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,QAE3E,IAAI8vwB,EAAgBjv0B,GAAO,CAAC,EAAGzpF,KAAKi9d,UAAW,CAAC,GAAG,GACnDj9d,KAAKi9d,UAAY,CAAC,EAClB,IAAIryc,EAAQ,EACZ,GAAImhT,GAAkB0slB,GAClB,IAAK,IAAIts5B,EAAI,EAAGA,EAAInM,KAAK6i5B,gBAAiB124B,IAClCA,IAAMsgB,IACNzsB,KAAKi9d,UAAUryc,GAAS8t4B,EAAcvs5B,GACtCye,UAKR,IAASze,EAAI,EAAGA,EAAInM,KAAK6i5B,gBAAiB124B,IAClCogB,SAASms4B,EAAcvs5B,GAAGgqB,GAAGxD,MAAM,KAAK,GAAI,IAAM,IAAMlG,IACxDzsB,KAAKi9d,UAAUryc,GAAS8t4B,EAAcvs5B,GACtCye,KAIZ5qB,KAAK6i5B,iBAAmB,EACxB7i5B,KAAKm35B,yBAA2Bn35B,KAAKi35B,0BAA4B,KACjEj35B,KAAKii5B,sBAAwBji5B,KAAKgi5B,wBAAyB,EAC3Dhi5B,KAAKk35B,cACLl35B,KAAK8v5B,oBACT,CACJ,EACAnT,EAAYhs4B,UAAU2m5B,YAAc,WAC5Bpm4B,SAAS0I,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,eAAe+xP,UAAUh1P,SAAS,kBACjFhC,SAAS0I,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,eAAe+xP,UAAU/0P,OAAO,kBAE1EjC,SAAS0I,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,aAAa+xP,UAAUh1P,SAAS,kBACpFhC,SAAS0I,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,aAAa+xP,UAAU/0P,OAAO,kBAExEjC,SAAS0I,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,QAAQ+xP,UAAUh1P,SAAS,kBAC/EhC,SAAS0I,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,QAAQ+xP,UAAU/0P,OAAO,kBAEnEjC,SAAS0I,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,eAAe+xP,UAAUh1P,SAAS,kBACtFhC,SAAS0I,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,eAAe+xP,UAAU/0P,OAAO,kBAE1EjC,SAAS0I,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,YAAY+xP,UAAUh1P,SAAS,kBACnFhC,SAAS0I,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,YAAY+xP,UAAU/0P,OAAO,kBAEvEjC,SAAS0I,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,SAAS+xP,UAAUh1P,SAAS,kBAChFhC,SAAS0I,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,SAAS+xP,UAAU/0P,OAAO,kBAEpEjC,SAAS0I,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,aAAa+xP,UAAUh1P,SAAS,mBACpFhC,SAAS0I,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,aAAa+xP,UAAU/0P,OAAO,iBAErF,EACAwp3B,EAAYhs4B,UAAUql5B,SAAW,WAC7Bh25B,KAAKi/4B,YAAYnyb,YAAa,EACN,IAApB9sd,KAAK+g5B,aACL/g5B,KAAK684B,WAAa784B,KAAKi+4B,WAAY,GAEnCj+4B,KAAKmV,QAAQykB,cAAc,kCAC3B55B,KAAKmV,QAAQykB,cAAc,iCAAiCsuP,UAAU90P,IAAI,UAE1EpzB,KAAKs+4B,YACLt+4B,KAAKs+4B,WAAY,EACjBt+4B,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,UAChCl5iB,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,SAE3E5oJ,KAAKwk5B,oBAAoBph5B,OAAS,IAClCpD,KAAKw94B,aAAe/zzB,GAAO,GAAIzpF,KAAKwk5B,oBAAqB,IAAI,IAEjExk5B,KAAKs+d,MACT,EACAq+a,EAAYhs4B,UAAUsl5B,SAAW,WAC7Bj25B,KAAKi/4B,YAAYnyb,YAAa,EACN,IAApB9sd,KAAK+g5B,aACL/g5B,KAAK684B,WAAa784B,KAAKi+4B,WAAY,GAEnCj+4B,KAAKwk5B,oBAAoBph5B,OAAS,IAClCpD,KAAKw94B,aAAe/zzB,GAAO,GAAIzpF,KAAKwk5B,oBAAqB,IAAI,IAEjExk5B,KAAKu+d,MACT,EACAo+a,EAAYhs4B,UAAUo84B,cAAgB,WAClC,IAAIxmW,EAAgBr1hB,SAAS0I,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,kBAE/DqwhB,EAASt1hB,SAAS0I,cAAc,aAChCshrB,EAAahqrB,SAAS0I,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,gBAC5D+krB,IACAA,EAAW/0sB,MAAMi+J,QAAU,QAE1B2nK,GAAkBw6O,IAAmBx6O,GAAkBy6O,KACxDA,EAAOx5N,cAAc,GAAG51M,UACxBmva,EAAcpzhB,SAEtB,EACAwp3B,EAAYhs4B,UAAUmn5B,eAAiB,WACnC,IAAK,IAAI3r5B,EAAI,EAAGA,EAAInM,KAAKu94B,QAAQn64B,OAAQ+I,IACrCnM,KAAKmZ,MAAMnZ,KAAKu94B,QAAQpx4B,GAAGq/H,MAAOxrI,KAAKu94B,QAAQpx4B,IAC/CnM,KAAK6v5B,kBAEb,EACAlT,EAAYhs4B,UAAUgo5B,iBAAmB,SAAU/r5B,EAAMhL,EAAOg35B,GAC5D545B,KAAK4p5B,aAAa7qb,UAAU,EAAG,EAAG/+d,KAAK6q5B,YAAYrs4B,MAAOxe,KAAK6q5B,YAAYjiwB,QAC3E,IAEI0vwB,EACAO,EAHAlJ,EAAa3v5B,KAAK4p5B,aAAaxj5B,OAAOusB,MAAM,KAC5CpK,EAAS,QAGSllB,IAAlBss5B,EAAW,KACX2I,EAAe5n3B,WAAWi/2B,EAAW,GAAGh93B,MAAM,KAAK,UAEjCtvB,IAAlBss5B,EAAW,KACXkJ,EAAkBno3B,WAAWi/2B,EAAW,GAAGh93B,MAAM,KAAK,KAE1D,IAiBImm4B,EACAC,EACAC,EACA9Y,EACA+Y,EArBAhZ,EAAajg5B,KAAKk55B,eAAel55B,KAAKgg5B,gBAAgBC,YACtDG,EAAapg5B,KAAKk55B,eAAel55B,KAAKgg5B,gBAAgBI,YAC1D,GAAa,eAATxz4B,GAAkC,aAATA,GAAgC,QAATA,GAA2B,eAATA,GAAkC,aAATA,GAC/E,YAATA,GAA+B,SAATA,GACrBm/T,GAAkB6slB,KAAe545B,KAAKgg5B,gBAAgBM,SAAWtg5B,KAAKgg5B,gBAAgBO,IAAK,CAC3Fvg5B,KAAK484B,YAAa,EAClB,IAAIlwzB,EAAO1sF,KAAK4p5B,aAAaxj5B,OAC7BpG,KAAK4p5B,aAAaxj5B,OAAS,OAC3BpG,KAAK835B,iBACL935B,KAAK+35B,eAAe/35B,KAAK4p5B,cACzB5p5B,KAAK4p5B,aAAaxj5B,OAASsmF,EAC3B1sF,KAAK484B,YAAa,CACtB,CAUJ,OARmB,IAAfqD,IACA0P,EAAW,GAAK,YAAc2I,EAAe,IAAO,KAOhD1r5B,GACJ,IAAK,aAC+C,MAA5C8jC,WAAWi/2B,EAAW,GAAGh93B,MAAM,KAAK,MACpC/wB,GAAS,IAEb+t5B,EAAW,GAAK,cAAgB/t5B,EAAQ,IACxC5B,KAAKyg5B,gBAAkBkP,EAAW3p5B,KAAK,KACvC,MACJ,IAAK,WACD2p5B,EAAW,GAAK,YAAc/t5B,EAAQ,KACtC5B,KAAKyg5B,gBAAkBkP,EAAW3p5B,KAAK,KACvC,MACJ,IAAK,MACD2p5B,EAAW,GAAK,cAAgB/t5B,EAAQ,OACxC5B,KAAKyg5B,gBAAkBkP,EAAW3p5B,KAAK,KACvC,MACJ,IAAK,aACD2p5B,EAAW,GAAK,YAAc/t5B,EAAQ,KACnB,IAAfw+4B,IACAuP,EAAW,GAAK,eAAiBkJ,EAAkB,IAAO,KAE9D745B,KAAKyg5B,gBAAkBkP,EAAW3p5B,KAAK,KACvC,MACJ,IAAK,UAC+C,IAA5C0qC,WAAWi/2B,EAAW,GAAGh93B,MAAM,KAAK,MACpC/wB,GAAS,IAEb+t5B,EAAW,GAAK,WAAa/t5B,EAAQ,IACrC5B,KAAKyg5B,gBAAkBkP,EAAW3p5B,KAAK,KACvC,MACJ,IAAK,OACD2p5B,EAAW,GAAK,QAAU/t5B,EAAQ,MAClC5B,KAAKyg5B,gBAAkBkP,EAAW3p5B,KAAK,KACvC,MACJ,IAAK,WACkB,IAAfi64B,IACA0P,EAAW,GAAK,YAAc2I,EAAe,IAAO,KAEpD125B,EAAQ,GACRA,GAAS,EACTA,GAASq+4B,GAEJr+4B,EAAQ,IAEbA,EAAQq+4B,GADRr+4B,EAAQ,EAAIA,IAGhB+t5B,EAAW,GAAK,cAAgB/t5B,EAAQ,IACxC5B,KAAKyg5B,gBAAkBkP,EAAW3p5B,KAAK,KACvC,MACJ,IAAK,SACD8y5B,EAAW945B,KAAKm55B,yBAAyBn55B,KAAKgg5B,gBAAgBI,YAE9Dx+4B,GADAk35B,GAAY,KACmB,GAAXA,EACpBnJ,EAAW,GAAK,YAAc/t5B,EAAQ,KACtC2mB,EAASvoB,KAAKyg5B,gBAAgB9t3B,MAAM,KACpCg93B,EAAW,GAAKpn4B,EAAO,GACvBon4B,EAAW,GAAKpn4B,EAAO,GACvBon4B,EAAW,GAAKpn4B,EAAO,GACvBon4B,EAAW,GAAKpn4B,EAAO,GACvBon4B,EAAW,GAAKpn4B,EAAO,GACvBon4B,EAAW,GAAK,YAChBA,EAAW,GAAK,gBAChBA,EAAW,GAAK,aAChB,MACJ,IAAK,OAEDoJ,EAAS/45B,KAAKk55B,eAAel55B,KAAKgg5B,gBAAgBC,YAElDr+4B,EAAiB,IADjBm35B,GAAU,KAEVpJ,EAAW,GAAK,cAAgB/t5B,EAAQ,KAExCs+4B,EAAWlg5B,KAAKk55B,eAAel55B,KAAKgg5B,gBAAgBE,UAEpDt+4B,GADAs+4B,GAAY,KACmB,GAAXA,EACpByP,EAAW,GAAK,YAAc/t5B,EAAQ,KAEtCq35B,EAAqBj55B,KAAKm55B,yBAAyBn55B,KAAKgg5B,gBAAgBI,YAExEx+4B,EADAq35B,GAAsB,IAEtBtJ,EAAW,GAAK,YAAc/t5B,EAAQ,KACtC2mB,EAASvoB,KAAKyg5B,gBAAgB9t3B,MAAM,KACpCg93B,EAAW,GAAKpn4B,EAAO,GACvBon4B,EAAW,GAAKpn4B,EAAO,GACvBon4B,EAAW,GAAKpn4B,EAAO,GACvBon4B,EAAW,GAAK,YAChBA,EAAW,GAAK,gBAChBA,EAAW,GAAK,aAChB,MACJ,IAAK,OACDqJ,EAAkBh55B,KAAKm55B,yBAAyBn55B,KAAKgg5B,gBAAgBI,YAErEx+4B,GADAo35B,GAAmB,KAC0B,GAAlBA,EAC3BrJ,EAAW,GAAK,YAAc/t5B,EAAQ,KACtC+t5B,EAAW,GAAK,aAChBpn4B,EAASvoB,KAAKyg5B,gBAAgB9t3B,MAAM,KACpCg93B,EAAW,GAAKpn4B,EAAO,GACvBon4B,EAAW,GAAKpn4B,EAAO,GACvBon4B,EAAW,GAAKpn4B,EAAO,GACvBon4B,EAAW,GAAKpn4B,EAAO,GACvBon4B,EAAW,GAAKpn4B,EAAO,GACvBon4B,EAAW,GAAK,gBAChBA,EAAW,GAAK,aAChB,MACJ,IAAK,YACDA,EAAW,GAAK,kBAChBpn4B,EAASvoB,KAAKyg5B,gBAAgB9t3B,MAAM,KACpCg93B,EAAW,GAAKpn4B,EAAO,GACvBon4B,EAAW,GAAKpn4B,EAAO,GACvBon4B,EAAW,GAAKpn4B,EAAO,GACvBon4B,EAAW,GAAKpn4B,EAAO,GACvBon4B,EAAW,GAAKpn4B,EAAO,GACvBon4B,EAAW,GAAKpn4B,EAAO,GACvBon4B,EAAW,GAAK,YAChBA,EAAW,GAAK,aAChB,MACJ,IAAK,QACDA,EAAW,GAAK,cAChBpn4B,EAASvoB,KAAKyg5B,gBAAgB9t3B,MAAM,KACpCg93B,EAAW,GAAKpn4B,EAAO,GACvBon4B,EAAW,GAAKpn4B,EAAO,GACvBon4B,EAAW,GAAKpn4B,EAAO,GACvBon4B,EAAW,GAAKpn4B,EAAO,GACvBon4B,EAAW,GAAKpn4B,EAAO,GACvBon4B,EAAW,GAAKpn4B,EAAO,GACvBon4B,EAAW,GAAK,gBAChBA,EAAW,GAAK,aAChB,MACJ,IAAK,SACDA,EAAW,GAAK,eAChBpn4B,EAASvoB,KAAKyg5B,gBAAgB9t3B,MAAM,KACpCg93B,EAAW,GAAKpn4B,EAAO,GACvBon4B,EAAW,GAAKpn4B,EAAO,GACvBon4B,EAAW,GAAKpn4B,EAAO,GACvBon4B,EAAW,GAAKpn4B,EAAO,GACvBon4B,EAAW,GAAKpn4B,EAAO,GACvBon4B,EAAW,GAAKpn4B,EAAO,GACvBon4B,EAAW,GAAK,YAChBA,EAAW,GAAK,gBAGxB,GAAa,YAAT/i5B,GAA+B,kBAATA,EAA0B,CAC5Cm/T,GAAkB6slB,KACL,YAAThs5B,IACA+i5B,EAAa3v5B,KAAKo55B,wBAAwBzJ,IAE9C3v5B,KAAK4p5B,aAAaxj5B,OAASup5B,EAAW3p5B,KAAK,MAE/C2p5B,EAAa3v5B,KAAKq55B,mBAAmBpZ,EAAY2Y,EAAWjJ,EAAY/i5B,GACxE5M,KAAK0h5B,cAAe,EACpB1h5B,KAAKs55B,8BAA8B,WACnCt55B,KAAK4p5B,aAAa5qb,UAAUh/d,KAAK2r5B,QAAS3r5B,KAAKmh5B,QAASnh5B,KAAKoh5B,OAAQph5B,KAAKu55B,SAAUv55B,KAAKw55B,UAAWx55B,KAAKih5B,SAAUjh5B,KAAKkh5B,QAASlh5B,KAAKm05B,UAAWn05B,KAAKo05B,YACtJp05B,KAAKs55B,8BAA8B,WACnCt55B,KAAK0h5B,cAAe,EACD,IAAfzB,EACA0P,EAAW,GAAK,WAAa2I,EAAe,IAExB,IAAflY,IACLuP,EAAW,GAAK,cAAgBkJ,EAAkB,KAEzC,aAATjs5B,GAAsC,IAAfqz4B,IACvB0P,EAAW,GAAK,cAAgBkJ,EAAkB,KAEzC,eAATjs5B,GAAwC,IAAfwz4B,IACzBuP,EAAW,GAAK,cAAgBkJ,EAAkB,KAEtDlJ,EAAa3v5B,KAAKq55B,mBAAmBpZ,EAAY2Y,EAAWjJ,EAAY/i5B,GACpEm/T,GAAkB6slB,KAClB545B,KAAK4p5B,aAAaxj5B,OAASpG,KAAK0g5B,uBAAyBiP,EAAW3p5B,KAAK,MAE7E,IAAI464B,EAAa5g5B,KAAK4p5B,aAAaxj5B,OACnCpG,KAAK4p5B,aAAaxj5B,OAASpG,KAAK6p5B,mBAChC7p5B,KAAK835B,iBACL935B,KAAK+35B,eAAe/35B,KAAK4p5B,cACzB5p5B,KAAK4p5B,aAAaxj5B,OAASw64B,IACrB70kB,GAAkB/rU,KAAKyw5B,qBAAyD,gBAAlCzw5B,KAAKyw5B,mBAAmBjlxB,OAA4BxrI,KAAK6h5B,eACzG7h5B,KAAKy55B,WAAWz55B,KAAK4p5B,cAGrB5p5B,KAAKyi5B,qBADU,IAAfxC,CAMR,CAEA,OADa0P,EAAW3p5B,KAAK,IAEjC,EACA224B,EAAYhs4B,UAAU+o5B,cAAgB,WACV,IAApB155B,KAAK+g5B,YACL/g5B,KAAK684B,WAAa784B,KAAKi+4B,WAAY,EACnCj+4B,KAAKmv5B,KAAI,GACTnv5B,KAAKk+4B,YAAa,GAEZl+4B,KAAKk+4B,WAGNl+4B,KAAKk+4B,YACVl+4B,KAAKmv5B,KAAI,GAHTnv5B,KAAKmv5B,KAAI,EAKjB,EACAxS,EAAYhs4B,UAAU0o5B,mBAAqB,SAAUpZ,EAAY2Y,EAAWjJ,EAAY/i5B,GACpF,GAAIgs5B,GAA4B,IAAf3Y,EAAkB,CAC/B,IAAI0Z,EAAiB355B,KAAK4p5B,aAAaxj5B,OAAOusB,MAAM,KACpDgn4B,EAAe,GAAKhK,EAAW,GAC/B3v5B,KAAK4p5B,aAAaxj5B,OAASuz5B,EAAe3z5B,KAAK,IACnD,MACS4y5B,GAAsB,YAAThs5B,IAClB+i5B,EAAa3v5B,KAAKo55B,wBAAwBzJ,IAE9C,OAAOA,CACX,EACAhT,EAAYhs4B,UAAUyo5B,wBAA0B,SAAUzJ,GACtD,IAAIpn4B,EAASvoB,KAAKyg5B,gBAAgB9t3B,MAAM,KAUxC,OATAg93B,EAAW,GAAKpn4B,EAAO,GACvBon4B,EAAW,GAAKpn4B,EAAO,GACvBon4B,EAAW,GAAKpn4B,EAAO,GACvBon4B,EAAW,GAAKpn4B,EAAO,GACvBon4B,EAAW,GAAKpn4B,EAAO,GACvBon4B,EAAW,GAAKpn4B,EAAO,GACvBon4B,EAAW,GAAK,YAChBA,EAAW,GAAK,gBAChBA,EAAW,GAAK,aACTA,CACX,EACAhT,EAAYhs4B,UAAUs84B,aAAe,SAAUrg5B,GAC3C,IAAI6+4B,EAAgBv63B,SAAS0I,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,0BAC/D+krB,EAAahqrB,SAAS0I,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,gBAC5Dyj4B,EAAe1o4B,SAAS0I,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,iBAC7D+krB,EAYDA,EAAW/0sB,MAAMi+J,QAAU,QAP3Bw1vB,GAJA1+M,EAAauwM,EAAc/53B,YAAY1xB,KAAKc,cAAc,MAAO,CAC7Dq1B,GAAIn2B,KAAKmV,QAAQghB,GAAK,eACtB+9P,OAAQ,yBAEcxiQ,YAAY1xB,KAAKc,cAAc,QAAS,CAC9Dq1B,GAAIn2B,KAAKmV,QAAQghB,GAAK,gBACtB+9P,OAAQ+yD,GAAQM,SAAW,wHACrB,2HAMdqykB,EAAahw3B,YAAc5pC,KAAK+zZ,KAAKhuD,YAAY/lW,KAAKur5B,aAAa3+4B,IACnE,IAKIg9C,EACA3c,EACAu5gB,EAPAD,EAAgB20J,EAAWxprB,YAAY1xB,KAAKc,cAAc,MAAO,CACjEq1B,GAAIn2B,KAAKmV,QAAQghB,GAAK,iBACtB+9P,OAAQ,wBAERtyR,EAAQ5B,KAAK655B,uBAAuBjt5B,GAI3B,eAATA,GAAkC,aAATA,GAAgC,eAATA,GAAkC,aAATA,GACrE5M,KAAK6o5B,iBACQ,eAATj84B,GAAyB5M,KAAK6o5B,iBAAiB5I,YAC/Cr21B,EAAM5pD,KAAK6o5B,iBAAiB5I,WAAWr21B,IACvC3c,EAAMjtC,KAAK6o5B,iBAAiB5I,WAAWhz2B,KAEzB,aAATrgC,GAAuB5M,KAAK6o5B,iBAAiB3I,UAClDt21B,EAAM5pD,KAAK6o5B,iBAAiB3I,SAASt21B,IACrC3c,EAAMjtC,KAAK6o5B,iBAAiB3I,SAASjz2B,KAEvB,eAATrgC,GAAyB5M,KAAK6o5B,iBAAiBzI,YACpDx21B,EAAM5pD,KAAK6o5B,iBAAiBzI,WAAWx21B,IACvC3c,EAAMjtC,KAAK6o5B,iBAAiBzI,WAAWnz2B,KAEzB,aAATrgC,GAAuB5M,KAAK6o5B,iBAAiBxI,UAClDz21B,EAAM5pD,KAAK6o5B,iBAAiBxI,SAASz21B,IACrC3c,EAAMjtC,KAAK6o5B,iBAAiBxI,SAASpz2B,MAGrC2c,GAAO,IACP3c,EAAM,MAIV2c,GAAO,IACP3c,EAAM,KAEVu5gB,EAASxmjB,KAAKgmjB,aAAap8f,EAAK3c,EAAKrrC,EAAOgL,IAE9B,QAATA,GAA2B,SAATA,GAA4B,YAATA,IACtC5M,KAAK6o5B,iBACQ,QAATj84B,GAAkB5M,KAAK6o5B,iBAAiB1I,KACxCv21B,EAAM5pD,KAAK6o5B,iBAAiB1I,IAAIv21B,IAChC3c,EAAMjtC,KAAK6o5B,iBAAiB1I,IAAIlz2B,KAElB,SAATrgC,GAAmB5M,KAAK6o5B,iBAAiB3/4B,MAC9C0gD,EAAM5pD,KAAK6o5B,iBAAiB3/4B,KAAK0gD,IACjC3c,EAAMjtC,KAAK6o5B,iBAAiB3/4B,KAAK+jC,KAEnB,YAATrgC,GAAsB5M,KAAK6o5B,iBAAiBv6wB,SACjD1kF,EAAM5pD,KAAK6o5B,iBAAiBv6wB,QAAQ1kF,IACpC3c,EAAMjtC,KAAK6o5B,iBAAiBv6wB,QAAQrhG,MAGpC2c,EAAM,EACN3c,EAAM,MAIV2c,EAAM,EACN3c,EAAM,KAEVu5gB,EAASxmjB,KAAKgmjB,aAAap8f,EAAK3c,EAAKrrC,EAAOgL,IAEhD45iB,EAAO9tN,SAAS,IAAM14V,KAAKmV,QAAQghB,GAAK,kBACxCowhB,EAAcpgjB,MAAMw9H,MAAQjzF,WAAW+62B,EAActl5B,MAAMqY,OAASkyB,WAAW81gB,EAAOhoiB,QAAU,EAAI,IACxG,EACAm+3B,EAAYhs4B,UAAUq1iB,aAAe,SAAUp8f,EAAK3c,EAAKrrC,EAAOgL,GAC5D,IAAItN,EAAQU,KACZ,OAAO,IAAIyyiB,IAAO,CACd7wiB,MAAOA,EACPsqb,QAAS,CAAEliG,WAAW,EAAMvzD,UAAW,SAAUy9Q,OAAQ,UACzDtniB,KAAM,WACNg9C,IAAKA,EACL3c,IAAKA,EACLstC,KAAM,GACN/7D,MAAOyoU,GAAQM,SAAW,QAAU,QACpCqoB,SAAU,WACV17Q,OAAQ,SAAUj7E,GACd3Z,EAAMw65B,uBAAuBlt5B,EAAMqM,EAAKrX,OACxCtC,EAAM4v5B,yBACV,GAER,EACAvS,EAAYhs4B,UAAUkp5B,uBAAyB,SAAUjt5B,GACrD,IAAIhL,EACJ,OAAQgL,GACJ,IAAK,aACDhL,EAAQ5B,KAAKgg5B,gBAAgBC,WAC7B,MACJ,IAAK,WACDr+4B,EAAQ5B,KAAKgg5B,gBAAgBE,SAC7B,MACJ,IAAK,MACDt+4B,EAAQ5B,KAAKgg5B,gBAAgBG,IAC7B,MACJ,IAAK,aACDv+4B,EAAQ5B,KAAKgg5B,gBAAgBI,WAC7B,MACJ,IAAK,UACDx+4B,EAAQ5B,KAAKgg5B,gBAAgB1xwB,QAC7B,MACJ,IAAK,OACD1sI,EAAQ5B,KAAKgg5B,gBAAgB924B,KAC7B,MACJ,IAAK,WACDtH,EAAQ5B,KAAKgg5B,gBAAgBK,SAGrC,OAAOz+4B,CACX,EACA+64B,EAAYhs4B,UAAUop5B,kBAAoB,SAAUnt5B,GAChD,IAAIgxS,EACJ,OAAQhxS,GACJ,IAAK,aACDgxS,EAAS4+lB,IAAoB6J,WAC7B,MACJ,IAAK,WACDzomB,EAAS4+lB,IAAoBr/hB,SAC7B,MACJ,IAAK,MACDv/D,EAAS4+lB,IAAoB8J,IAC7B,MACJ,IAAK,aACD1omB,EAAS4+lB,IAAoB+J,WAC7B,MACJ,IAAK,UACD3omB,EAAS4+lB,IAAoBgK,QAC7B,MACJ,IAAK,OACD5omB,EAAS4+lB,IAAoBiK,KAC7B,MACJ,IAAK,WACD7omB,EAAS4+lB,IAAoBmK,SAGrC,OAAO/omB,CACX,EACA++lB,EAAYhs4B,UAAUmp5B,uBAAyB,SAAUlt5B,EAAMhL,GAC3D,IAAIo45B,EAAwB,CAAEC,SAAUj65B,KAAK+55B,kBAAkB/55B,KAAKur5B,aAAa3+4B,IAC7EhL,MAAOA,EAAOk/E,QAAQ,GAE1B,GADA9gF,KAAKsgS,QAAQ,wBAAyB05nB,IAClCA,EAAsBl50B,OAG1B,OAAQl0E,GACJ,IAAK,aACD5M,KAAKgq5B,cAAcpo5B,GACnB,MACJ,IAAK,WACD5B,KAAKiq5B,YAAYro5B,GACjB,MACJ,IAAK,MACD5B,KAAKkq5B,OAAOto5B,GACZ,MACJ,IAAK,aACD5B,KAAKmq5B,cAAcvo5B,GACnB,MACJ,IAAK,UACD5B,KAAKqq5B,WAAWzo5B,GAChB,MACJ,IAAK,OACD5B,KAAKsq5B,QAAQ1o5B,GACb,MACJ,IAAK,WACD5B,KAAKoq5B,YAAYxo5B,GAG7B,EACA+64B,EAAYhs4B,UAAUw/4B,UAAY,WAC9Bnw5B,KAAKq25B,aAAY,GACjB,IAAIX,EAAS115B,KAAKmV,QAAQykB,cAAc,qBACnCmyS,GAAkB2plB,IACnBA,EAAOxtoB,UAAU/0P,OAAO,kBAE5BnzB,KAAKmv5B,KAAI,EACb,EACAxS,EAAYhs4B,UAAUkm5B,gBAAkB,SAAUqD,EAAYC,GAC1Dn65B,KAAKs0jB,eAAe,OAAQ4lW,GAAY,EAAOC,EACnD,EACAxd,EAAYhs4B,UAAUyp5B,uBAAyB,SAAUC,GA4BrD,GA3BAr65B,KAAKmh5B,QAAU,EACfnh5B,KAAKoh5B,OAAS,EACdph5B,KAAKu55B,SAAWv55B,KAAK2r5B,QAAQnt4B,MAC7Bxe,KAAKw55B,UAAYx55B,KAAK2r5B,QAAQ/iwB,OAC9B5oJ,KAAKih5B,SAAWjh5B,KAAKqh5B,eAAe55iB,OACpCznW,KAAKkh5B,QAAUlh5B,KAAKqh5B,eAAe35iB,OACnC1nW,KAAKm05B,UAAYn05B,KAAKqh5B,eAAe7i4B,MACrCxe,KAAKo05B,WAAap05B,KAAKqh5B,eAAez4vB,OACtC5oJ,KAAK4p5B,aAAa7qb,UAAU,EAAG,EAAG/+d,KAAK6q5B,YAAYrs4B,MAAOxe,KAAK6q5B,YAAYjiwB,QACvEyxwB,GACAr65B,KAAKs65B,uBAETt65B,KAAKu65B,wBAAwB,WACF,IAAvBv65B,KAAK+h5B,eAAuC,IAAhB/h5B,KAAKw0vB,QAAiBzob,GAAkB/rU,KAAKyw5B,qBACpC,gBAAlCzw5B,KAAKyw5B,mBAAmBjlxB,OAA6D,gBAAlCxrI,KAAKyw5B,mBAAmBjlxB,QAC9ExrI,KAAKih5B,SAAWjh5B,KAAKqh5B,eAAe55iB,OACpCznW,KAAKkh5B,QAAUlh5B,KAAKqh5B,eAAe35iB,OACnC1nW,KAAKm05B,UAAYn05B,KAAKqh5B,eAAe7i4B,MACrCxe,KAAKo05B,WAAap05B,KAAKqh5B,eAAez4vB,QAEtB,IAAhB5oJ,KAAKw0vB,SACLx0vB,KAAKih5B,UAAYjh5B,KAAKmi5B,yBAAyBjo4B,EAC/Cla,KAAKkh5B,SAAWlh5B,KAAKmi5B,yBAAyBho4B,GAElDna,KAAKq45B,yBACLr45B,KAAK4p5B,aAAa5qb,UAAUh/d,KAAK2r5B,QAAS3r5B,KAAKmh5B,QAASnh5B,KAAKoh5B,OAAQph5B,KAAKu55B,SAAUv55B,KAAKw55B,UAAWx55B,KAAKih5B,SAAUjh5B,KAAKkh5B,QAASlh5B,KAAKm05B,UAAWn05B,KAAKo05B,YACtJp05B,KAAKu65B,wBAAwB,UAAW,KAAM,MAAM,GAChDxulB,GAAkB/rU,KAAKmj5B,QAAQxE,UAAUnzwB,OAAQ,CACjD,IAAI9+C,EAAO1sF,KAAK4p5B,aAAaxj5B,OAC7BpG,KAAK4p5B,aAAaxj5B,OAAS,OAC3BpG,KAAK835B,iBACL935B,KAAK+35B,eAAe/35B,KAAK4p5B,cACzB5p5B,KAAK4p5B,aAAaxj5B,OAASsmF,EAC3B1sF,KAAKyw5B,mBAAqB,IAC9B,KACK,CACD,GAAIzw5B,KAAKmj5B,QAAQC,SAAW,EAAG,CAC3B,IAAIxG,EAAa584B,KAAK484B,WACtB584B,KAAK484B,YAAa,EAClB,IAAI4d,EAAgB/w0B,GAAO,GAAIzpF,KAAKu94B,QAAS,MAAM,GAC/Ckd,EAAkBhx0B,GAAO,GAAIzpF,KAAKi9d,UAAW,MAAM,GACvDj9d,KAAKu94B,QAAU,GACfv94B,KAAKi9d,UAAY,GACjBj9d,KAAK6i5B,gBAAkB,EACvB7i5B,KAAKu94B,QAAQnx4B,KAAKpM,KAAKyw5B,oBACvBzw5B,KAAKyw5B,mBAAqB,KAC1Bzw5B,KAAKkx5B,WAAWlx5B,KAAKmj5B,QAAQC,UAC7Bpj5B,KAAKyw5B,mBAAqBhn0B,GAAO,CAAC,EAAGzpF,KAAKu94B,QAAQ,GAAI,MAAM,GAC5Dv94B,KAAKu94B,QAAUid,EACfx65B,KAAKi9d,UAAYw9b,EACjBz65B,KAAK6i5B,gBAAkB7i5B,KAAKi9d,UAAU75d,OACtCpD,KAAK484B,WAAaA,CACtB,CACA,IAAI2G,EAAa,CAAE97iB,OAAQznW,KAAKih5B,SAAUv5iB,OAAQ1nW,KAAKkh5B,QAAS1i4B,MAAOxe,KAAKm05B,UAAWvrwB,OAAQ5oJ,KAAKo05B,YACpGp05B,KAAKih5B,SAAWjh5B,KAAKyw5B,mBAAmB7R,YAAYn3iB,OACpDznW,KAAKkh5B,QAAUlh5B,KAAKyw5B,mBAAmB7R,YAAYl3iB,OACnD1nW,KAAKm05B,UAAYn05B,KAAKyw5B,mBAAmB7R,YAAYpg4B,MACrDxe,KAAKo05B,WAAap05B,KAAKyw5B,mBAAmB7R,YAAYh2vB,OACtD5oJ,KAAK065B,cACL165B,KAAK265B,uBACL365B,KAAKih5B,SAAWsC,EAAW97iB,OAC3BznW,KAAKkh5B,QAAUqC,EAAW77iB,OAC1B1nW,KAAKm05B,UAAY5Q,EAAW/k4B,MAC5Bxe,KAAKo05B,WAAa7Q,EAAW36vB,OACC,IAA1B5oJ,KAAKmj5B,QAAQC,UACbpj5B,KAAK465B,qBAET565B,KAAK435B,+BACL,IAAIiD,EAAcpx0B,GAAO,GAAIzpF,KAAKu94B,QAAS,MAAM,GAC7Cud,EAAgBrx0B,GAAO,GAAIzpF,KAAKi9d,UAAW,MAAM,GACrDj9d,KAAKu94B,QAAU,GACfv94B,KAAKi9d,UAAY,GACjBj9d,KAAK6i5B,gBAAkB,EACvB7i5B,KAAK635B,gBACL,IAAIlZ,EAAYl1zB,GAAO,CAAC,EAAGzpF,KAAK2+4B,UAAW,MAAM,GACjD3+4B,KAAK6v5B,mBACL7v5B,KAAKu94B,QAAUsd,EACf765B,KAAKi9d,UAAY69b,EACjB965B,KAAK6i5B,gBAAkB7i5B,KAAKi9d,UAAU75d,OACtCpD,KAAK065B,cACL165B,KAAK265B,uBACL365B,KAAKyw5B,mBAAqB,KACN,IAAhBzw5B,KAAKw0vB,QACLx0vB,KAAK+65B,cAAc,CAAE7g5B,EAAG,EAAGC,EAAG,IAElCna,KAAK2+4B,UAAYA,EACjB3+4B,KAAKu25B,WAAW,YACpB,CACJ,EACA5Z,EAAYhs4B,UAAUiq5B,mBAAqB,WACvC,IAAII,EAEAA,EADAh75B,KAAKw0vB,OAAS,KAAO,GAAKx0vB,KAAKw0vB,OAAS,MAAQ,EAClC/qqB,GAAO,CAAC,EAAGzpF,KAAKmj5B,QAAQd,iBAAkB,MAAM,GAGhD54zB,GAAO,CAAC,EAAGzpF,KAAKmj5B,QAAQf,uBAAwB,MAAM,GAEpEpi5B,KAAKm+4B,gBAAkBn+4B,KAAKmj5B,QAAQhF,eAKT,eAAvBn+4B,KAAKm+4B,eAAiE,KAA/Bn+4B,KAAKmj5B,QAAQhF,eAC7B,aAAvBn+4B,KAAKm+4B,eAA+D,KAA/Bn+4B,KAAKmj5B,QAAQhF,eALtDn+4B,KAAKi75B,YAAYD,EAAY9g5B,GAAI8g5B,EAAY7g5B,EAAG,IAChDna,KAAKk75B,qBAAqBF,EAAY9g5B,GAAI8g5B,EAAY7g5B,EAAG,KAQzB,KAAvBna,KAAKm+4B,eAAuD,eAA/Bn+4B,KAAKmj5B,QAAQhF,eAC/Cn+4B,KAAKi75B,WAAWD,EAAY9g5B,GAAI8g5B,EAAY7g5B,EAAG,IAC/Cna,KAAKk75B,oBAAoBF,EAAY9g5B,GAAI8g5B,EAAY7g5B,EAAG,KAE5B,KAAvBna,KAAKm+4B,eAAuD,aAA/Bn+4B,KAAKmj5B,QAAQhF,gBAC/Cn+4B,KAAKi75B,YAAYD,EAAY9g5B,EAAG8g5B,EAAY7g5B,EAAG,IAC/Cna,KAAKk75B,qBAAqBF,EAAY9g5B,EAAG8g5B,EAAY7g5B,EAAG,IAGpE,EACAwi4B,EAAYhs4B,UAAUin5B,6BAA+B,WACjD,IAAK,IAAIzr5B,EAAI,EAAGA,EAAInM,KAAKu94B,QAAQn64B,OAAQ+I,IACrCnM,KAAKu94B,QAAQpx4B,GAAGgv5B,WAAa,CAAE1zjB,QAAUznW,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYn3iB,OAASznW,KAAKih5B,UAC3Ejh5B,KAAKm05B,UAAYzsjB,QAAU1nW,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYl3iB,OAAS1nW,KAAKkh5B,SAAWlh5B,KAAKo05B,WACzFjX,MAAQn94B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYzB,KAAOn94B,KAAKih5B,UAAYjh5B,KAAKm05B,UACjE/W,MAAQp94B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYxB,KAAOp94B,KAAKkh5B,SAAWlh5B,KAAKo05B,WAChE514B,MAAOxe,KAAKm05B,UAAYn05B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYpg4B,MAAOoqI,OAAQ5oJ,KAAKo05B,WACpEp05B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYh2vB,QACpC5oJ,KAAK6v5B,mBAET,IAAK,IAAI7t5B,EAAI,EAAGA,EAAIhC,KAAK6i5B,gBAAiB7g5B,IAAK,CAC3ChC,KAAKw/d,OAAS/1Y,GAAO,GAAIzpF,KAAKi9d,UAAUj7d,GAAGw9d,OAAQ,IACnDx/d,KAAK4i5B,aAAe,EAEpB,IADA,IAAIjz1B,EAAM3vD,KAAKw/d,OAAOp8d,OACbi8B,EAAI,EAAGA,EAAIswB,EAAKtwB,IACrBr/B,KAAKw/d,OAAOngc,GAAG+73B,QAAUp75B,KAAKw/d,OAAOngc,GAAGnlB,EAAIla,KAAKih5B,UAAYjh5B,KAAKm05B,UAClEn05B,KAAKw/d,OAAOngc,GAAGg83B,QAAUr75B,KAAKw/d,OAAOngc,GAAGllB,EAAIna,KAAKkh5B,SAAWlh5B,KAAKo05B,UAEzE,CACJ,EACAzX,EAAYhs4B,UAAUmm5B,YAAc,WAChC,IACInH,EADAC,GAAkB,EAetB,QAb6Bvs5B,IAAzBrD,KAAK2+4B,UAAUnzwB,QACfmkxB,EAAa3v5B,KAAK2+4B,UAAUnzwB,MAAM74G,MAAM,YAEzBtvB,IAAfss5B,GAA4B3v5B,KAAKi/4B,YAAYM,mBAGzBl84B,IAAfss5B,GAA8C,SAAlBA,EAAW,MAF5CC,GAAkB,GAKlBA,GAAmB5v5B,KAAKsi5B,YACxBti5B,KAAKsi5B,WAAY,EACjBti5B,KAAK+g5B,WAAa/g5B,KAAKwi5B,mBAEvBxi5B,KAAKs+4B,UAAW,CAChBt+4B,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,QAC3E5oJ,KAAKs+4B,WAAY,EACjBt+4B,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,UAEhC,IAAIoiX,EAAiB7x0B,GAAO,GAAIzpF,KAAKi9d,UAAW,IAAI,GACpDj9d,KAAKi9d,UAAY,CAAC,EAClB,IAAK,IAAI9wd,EAAI,EAAGA,EAAInM,KAAK+i5B,oBAAqB524B,IAC1CnM,KAAKi9d,UAAU9wd,GAAKmv5B,EAAenv5B,GAEvCnM,KAAK6i5B,gBAAkB7i5B,KAAK+i5B,oBAC5B/i5B,KAAK8j5B,yBAA2B9j5B,KAAK+j5B,6BACrC/j5B,KAAK2+4B,UAAUjB,eAAiB194B,KAAK094B,eAAiB194B,KAAK494B,mBAC3D594B,KAAK8w5B,0BAA0B,UAC/B9w5B,KAAKij5B,0BAA2B,CACpC,MACK,GAA6B,SAAzBjj5B,KAAK2+4B,UAAUnzwB,MAAkB,CAGtC,GAFAxrI,KAAK694B,aAAe794B,KAAK+94B,iBACzB/94B,KAAK094B,eAAiB194B,KAAK494B,mBACvB7xkB,GAAkB/rU,KAAK2+4B,UAAUyX,WACjCp25B,KAAK6v5B,mBACL7v5B,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,YAE1E,CACD,IAAIj5F,EAAM3vD,KAAKwk5B,oBAAoBph5B,OAC9B2oU,GAAkB/rU,KAAK225B,aAAgB5qlB,GAAkB/rU,KAAKwk5B,oBAAoB701B,EAAM,KACzF3vD,KAAKwk5B,oBAAoB701B,EAAM,GAAGgl2B,eAAe305B,KAAKwk5B,oBAAoB701B,EAAM,GAAGgl2B,eAAevx5B,OAAS,GAAGgz5B,YACtGp25B,KAAK225B,WAAWP,WAKxBp25B,KAAK6v5B,mBACL7v5B,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,UAL3E5oJ,KAAK2+4B,UAAY3+4B,KAAK225B,WACtB325B,KAAK225B,WAAa,MAMjB5qlB,GAAkB/rU,KAAK2+4B,UAAUnzwB,QAAwC,eAA9BxrI,KAAK2+4B,UAAU7B,YAC3D984B,KAAK2+4B,UAAUC,YAAYn3iB,SAAWznW,KAAKw+4B,gBAAgBtk4B,GACxDla,KAAK2+4B,UAAUC,YAAYl3iB,SAAW1nW,KAAKw+4B,gBAAgBrk4B,EAOxD4xT,GAAkB/rU,KAAK2+4B,UAAUnzwB,SACvCxrI,KAAKmz5B,aACLnz5B,KAAK+x5B,YAAY/x5B,KAAK2+4B,WACjBiR,QAAoDvs5B,IAAjCrD,KAAK2+4B,UAAU4c,eACnCv75B,KAAKq25B,aAAY,GAErBr25B,KAAKw3oB,mBAZLx3oB,KAAK6v5B,mBACL7v5B,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,QAC3E5oJ,KAAKgw5B,gBACLhw5B,KAAK8w5B,0BAA0B,UAC/B9w5B,KAAKq25B,aAAY,GAUzB,CACAr25B,KAAKmp5B,4BACLnp5B,KAAK+94B,iBAAmB,CAAE992B,KAAM,aAAcuib,WAAY,QAASvjK,SAAU,KAAM6+lB,UAAW,KAAM1txB,MAAM,EACtGE,QAAQ,EAAOC,WAAW,EAClC,MACK,GAA6B,cAAzBvwH,KAAK2+4B,UAAUnzwB,OAAkD,YAAzBxrI,KAAK2+4B,UAAUnzwB,OAChC,SAAzBxrI,KAAK2+4B,UAAUnzwB,OAA6C,UAAzBxrI,KAAK2+4B,UAAUnzwB,MAAmB,CAExE,GADAxrI,KAAK094B,eAAiB194B,KAAK494B,mBACvB7xkB,GAAkB/rU,KAAK2+4B,UAAUyX,WACjCp25B,KAAK6v5B,mBACL7v5B,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,YAE1E,CACGj5F,EAAM3vD,KAAKwk5B,oBAAoBph5B,OAC9B2oU,GAAkB/rU,KAAK225B,aAAgB5qlB,GAAkB/rU,KAAKwk5B,oBAAoB701B,EAAM,KACzF3vD,KAAKwk5B,oBAAoB701B,EAAM,GAAGgl2B,eAAe305B,KAAKwk5B,oBAAoB701B,EAAM,GAAGgl2B,eAAevx5B,OAAS,GAAGgz5B,YACtGp25B,KAAK225B,WAAWP,WAQxBp25B,KAAK6v5B,mBACL7v5B,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,UAR3E5oJ,KAAK2+4B,UAAY3+4B,KAAK225B,WACtB325B,KAAK225B,WAAa,KAClB325B,KAAK+x5B,YAAY/x5B,KAAK2+4B,WACtB3+4B,KAAK8w5B,0BAA0B,UAC/B9w5B,KAAKq25B,aAAY,GAMzB,CACAr25B,KAAKmp5B,2BACT,MACK,GAAKnp5B,KAAK+g5B,aAAe/g5B,KAAKgh5B,gBAAmB4O,GAAmB7jlB,GAAkB/rU,KAAKyw5B,oBAAqB,CACjH,IAAI1vmB,EAAW/gT,KAAKui5B,eAAiBvi5B,KAAKgh5B,eAE1C,GADAhh5B,KAAK+g5B,WAAa/g5B,KAAKui5B,eACnBx2kB,GAAkB/rU,KAAKmj5B,QAAQxE,UAAUnzwB,SACpB,IAAhBxrI,KAAKw0vB,QAA4C,IAA5Bx0vB,KAAKqi5B,iBAAiBno4B,GAAuC,IAA5Bla,KAAKqi5B,iBAAiBlo4B,GAC5D,IAAhBna,KAAKw0vB,QAAoD,IAApCx0vB,KAAKmi5B,yBAAyBjo4B,GAA+C,IAApCla,KAAKmi5B,yBAAyBho4B,GACvD,IAAlCna,KAAKoi5B,uBAAuBlo4B,GAA6C,IAAlCla,KAAKoi5B,uBAAuBjo4B,GAevE,OAdAna,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,QAC3E5oJ,KAAK6v5B,mBACD9umB,EAAW,EACX/gT,KAAKkx5B,YAAYnwmB,GAGjB/gT,KAAKkx5B,WAAWtt5B,KAAK8Y,IAAIqkS,IAE7B/gT,KAAKui5B,eAAiBvi5B,KAAKgh5B,eAC3Bhh5B,KAAKi/4B,YAAYM,cAAe,EAChCv/4B,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,UAChCl5iB,KAAKi/4B,YAAYM,cAAe,EAChCv/4B,KAAK494B,mBAAqB,CAAEngb,YAAa,OAAQkgb,UAAW,GAAIvuwB,YAAa,WAC7EpvI,KAAK625B,kBAIb,GAAI9qlB,GAAkB/rU,KAAKmj5B,QAAQxE,UAAUnzwB,OAAQ,CACjD,GAAoB,IAAhBxrI,KAAKw0vB,OAAc,CACnB,IAAImqJ,EAAYl1zB,GAAO,CAAC,EAAGzpF,KAAK2+4B,UAAW,CAAC,GAC5C3+4B,KAAKih5B,WAAcjh5B,KAAKqi5B,iBAAiBno4B,EACzCla,KAAKkh5B,UAAalh5B,KAAKqi5B,iBAAiBlo4B,EACxCna,KAAK+65B,cAAc,CAAE7g5B,GAAIla,KAAKqi5B,iBAAiBno4B,EAAGC,GAAIna,KAAKqi5B,iBAAiBlo4B,IAC5Ena,KAAKw75B,cAAc7c,GACnB3+4B,KAAKqi5B,iBAAmB,CAAEno4B,EAAG,EAAGC,EAAG,EACvC,MAEIna,KAAKoi5B,uBAAyB,CAAElo4B,GAAIla,KAAKoi5B,uBAAuBlo4B,EAAGC,GAAIna,KAAKoi5B,uBAAuBjo4B,GACnGna,KAAKmi5B,yBAA2B,CAAEjo4B,GAAIla,KAAKmi5B,yBAAyBjo4B,EAAGC,GAAIna,KAAKmi5B,yBAAyBho4B,GACzGna,KAAKy75B,WAAU,GACfz75B,KAAKoi5B,uBAAyB,CAAElo4B,EAAG,EAAGC,EAAG,GACzCna,KAAKmi5B,yBAA2B,CAAEjo4B,EAAG,EAAGC,EAAG,GAC3Cna,KAAK4h5B,mBAAqB,CAAE1n4B,EAAG,EAAGC,EAAG,GAEzCna,KAAK6v5B,mBACL7v5B,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,QACvEm4J,EAAW,EACX/gT,KAAKkx5B,YAAYnwmB,GAGjB/gT,KAAKkx5B,WAAWtt5B,KAAK8Y,IAAIqkS,IAE7B/gT,KAAKui5B,eAAiBvi5B,KAAKgh5B,cAC/B,KACK,CACDhh5B,KAAK2j5B,gBAAiB,EACtB3j5B,KAAKu94B,QAAU,GACfv94B,KAAKi9d,UAAY,GACjB,IAAI4lb,EAAkB7i5B,KAAK6i5B,gBAC3B7i5B,KAAK6i5B,gBAAkB,EACvB,IAAIM,EAAU15zB,GAAO,CAAC,EAAGzpF,KAAKmj5B,QAAS,CAAC,GACpCO,EAAmBj6zB,GAAO,GAAIzpF,KAAK0j5B,iBAAkB,CAAC,GAAG,GAC7D1j5B,KAAK635B,gBACL735B,KAAK075B,UACL175B,KAAKmj5B,QAAUA,EACfnj5B,KAAK0j5B,iBAAmBA,EACxB1j5B,KAAKu94B,QAAU9zzB,GAAO,GAAIzpF,KAAKik5B,cAAe,IAAI,GAClDjk5B,KAAKi9d,UAAYxzY,GAAO,GAAIzpF,KAAKkk5B,gBAAiB,IAAI,GACtDlk5B,KAAK6i5B,gBAAkBA,EACvB7i5B,KAAK835B,iBACL935B,KAAK+35B,eAAe/35B,KAAK4p5B,cACzB5p5B,KAAK275B,iBAAiB375B,KAAK4p5B,cACvB5p5B,KAAK6h5B,cACL7h5B,KAAKy55B,WAAWz55B,KAAK4p5B,cAEzB5p5B,KAAK2j5B,gBAAiB,CAC1B,CACA3j5B,KAAK+g5B,WAAa/g5B,KAAKwi5B,kBACvBxi5B,KAAKkv5B,yBACT,MAEIlv5B,KAAK6v5B,mBACL7v5B,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,QAC3E5oJ,KAAK8w5B,0BAA0B,UAEnC9w5B,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,UAChCl5iB,KAAKi/4B,YAAYM,cAAe,EAChCv/4B,KAAK494B,mBAAqB,CAAEngb,YAAa,OAAQkgb,UAAW,GAAIvuwB,YAAa,MAC7EpvI,KAAK625B,iBACT,EACAla,EAAYhs4B,UAAUir5B,oBAAsB,SAAUv75B,EAAGu8d,GACrD58d,KAAK2i5B,gBAAgBlg4B,MAAO,IAAIhhB,MAAOC,UACvC1B,KAAK8i5B,mBAAoB,EACV,cAAXzi5B,EAAEuM,KACF5M,KAAK6j5B,kBAAoB,CAAE3p4B,EAAG7Z,EAAEg5B,QAASlf,EAAG9Z,EAAEi5B,SAG9Ct5B,KAAK6j5B,kBAAoB,CAAE3p4B,EAAG7Z,EAAEgpJ,QAAQ,GAAGhwH,QAASlf,EAAG9Z,EAAEgpJ,QAAQ,GAAG/vH,SAExEt5B,KAAK4j5B,sBAAuB,EAC5B/qqB,GAAazlN,IAAIwpc,EAAQ,sBAAuB58d,KAAK675B,oBAAqB775B,KAC9E,EACA284B,EAAYhs4B,UAAUmr5B,kBAAoB,SAAUz75B,EAAGu8d,EAAQ3hd,GAC3D,IAAIy5Q,EAAOkoM,EAAOnoM,wBAClB57C,GAAa1lN,OAAOypc,EAAQ,sBAAuB58d,KAAK675B,qBAC7B,IAAvB775B,KAAKw/d,OAAOp8d,SACG,YAAX/C,EAAEuM,KACF5M,KAAK+75B,aAAa175B,EAAEg5B,QAAUq7P,EAAK/wJ,KAAMtjI,EAAEi5B,QAAUo7P,EAAKxmI,KAAK,EAAMjzI,GAGhEjb,KAAK4j5B,sBACN5j5B,KAAK+75B,aAAa/75B,KAAK6j5B,kBAAkB3p4B,EAAIw6Q,EAAK/wJ,KAAM3jI,KAAK6j5B,kBAAkB1p4B,EAAIu6Q,EAAKxmI,KAAK,EAAMjzI,IAI/GA,EAAQ2jd,YACR,IAAIuyb,EAAc1n0B,GAAO,CAAC,EAAGzpF,KAAKmj5B,QAAS,CAAC,GAAG,GAC3CznO,EAAU17qB,KAAKix5B,gBACnBv1O,EAAQ6hO,QAAU9zzB,GAAO,GAAIzpF,KAAKu94B,QAAS,IAAI,GAC/C7hO,EAAQz+M,UAAYxzY,GAAO,GAAIzpF,KAAKi9d,UAAW,IAAI,GACnDy+M,EAAQgoO,iBAAmBj6zB,GAAO,GAAIzpF,KAAK0j5B,iBAAkB,IAAI,GACjE1j5B,KAAKi9d,UAAUj9d,KAAK6i5B,iBAAmB,CAAC,EACxC7i5B,KAAKi9d,UAAUj9d,KAAK6i5B,iBAAiBrjb,OAAS/1Y,GAAO,GAAIzpF,KAAKw/d,QAC9Dx/d,KAAKi9d,UAAUj9d,KAAK6i5B,iBAAiBplb,YAAcz9d,KAAK2+4B,UAAUjB,eAAejgb,YACjFz9d,KAAKi9d,UAAUj9d,KAAK6i5B,iBAAiBzzwB,YAAcpvI,KAAKq35B,eACxDr35B,KAAKi9d,UAAUj9d,KAAK6i5B,iBAAiBmZ,UAAYh85B,KAAKm+4B,cACtDn+4B,KAAKi9d,UAAUj9d,KAAK6i5B,iBAAiB1s3B,GAAK,QAAUn2B,KAAK8j5B,yBAA2B,GACpF9j5B,KAAKw/d,OAAS,GACdx/d,KAAK0k5B,aAAa1k5B,KAAK6i5B,iBAAmB,CAAC,EAC3C7i5B,KAAK0k5B,aAAa1k5B,KAAK6i5B,iBAAiBrjb,OAAS/1Y,GAAO,GAAIzpF,KAAKyk5B,WACjEzk5B,KAAKyk5B,UAAY,GACjBzk5B,KAAK4i5B,aAAe,EACpB5i5B,KAAK6i5B,kBACL7i5B,KAAK8j5B,2BACL9j5B,KAAK8i5B,mBAAoB,EACzB9i5B,KAAKqx5B,mBAAmB,eAAgB31O,EAASA,EAAQ6hO,QAAS7hO,EAAQz+M,UAAWk0b,EACzF,EACAxU,EAAYhs4B,UAAUkr5B,oBAAsB,SAAUx75B,GAClDL,KAAK4j5B,sBAAuB,EAC5B,IACI1p4B,EACAC,EAFAu6Q,EAAO10R,KAAKyq5B,YAAYh2nB,wBAGb,cAAXp0R,EAAEuM,MACFsN,EAAI7Z,EAAEg5B,QAAUq7P,EAAK/wJ,KACrBxpH,EAAI9Z,EAAEi5B,QAAUo7P,EAAKxmI,MAGrBh0I,EAAI7Z,EAAEgpJ,QAAQ,GAAGhwH,QAAUq7P,EAAK/wJ,KAChCxpH,EAAI9Z,EAAEgpJ,QAAQ,GAAG/vH,QAAUo7P,EAAKxmI,KAEhCluJ,KAAK8i5B,mBACL9i5B,KAAK+75B,aAAa7h5B,EAAGC,GAAG,EAAOna,KAAK4o5B,aAE5C,EACAjM,EAAYhs4B,UAAUor5B,aAAe,SAAU7h5B,EAAGC,EAAG0lf,EAAW5kf,GAC5D,IAGIqkd,EACAC,EACA74H,EACA0B,EANAq3H,EAAYz/d,KAAKsmW,MAAMpsV,EAAGC,GAAG,IAAI1Y,MAAOC,WAExCg+d,KADJD,EAAYz/d,KAAKw/d,OAAOp8d,OAAS,GAAKpD,KAAKw/d,OAAOx/d,KAAKw/d,OAAOp8d,OAAS,KACjCpD,KAAK2/d,WAAWF,IAAc,EAOpE,GAFAz/d,KAAKyk5B,UAAUr44B,KAAK,CAAE8N,EAAGA,EAAGC,EAAGA,EAAGih5B,QAASlh5B,EAAIla,KAAKih5B,UAAYjh5B,KAAKm05B,UAAWkH,QAASlh5B,EAAIna,KAAKkh5B,SAAWlh5B,KAAKo05B,WAC9G3x4B,KAAMziB,KAAK2i5B,gBAAgBlg4B,QAC1Bg9c,IAAeA,IAAaC,GAAwBmgC,EAAW,CAIhE,GAHA7/f,KAAK2i5B,gBAAgBlg4B,MAAO,IAAIhhB,MAAOC,UACvC1B,KAAKw/d,OAAOpzd,KAAK,CAAE8N,EAAGA,EAAGC,EAAGA,EAAGih5B,QAASlh5B,EAAIla,KAAKih5B,UAAYjh5B,KAAKm05B,UAAWkH,QAASlh5B,EAAIna,KAAKkh5B,SAAWlh5B,KAAKo05B,WAC3G3x4B,KAAMziB,KAAK2i5B,gBAAgBlg4B,OAC3BziB,KAAKw/d,OAAOp8d,OAAS,EAAG,CACxBk8d,EAAiBt/d,KAAKi85B,uBAAuBj85B,KAAKw/d,OAAOx/d,KAAK4i5B,aAAe,GAAI5i5B,KAAKw/d,OAAOx/d,KAAK4i5B,aAAe,GAAI5i5B,KAAKw/d,OAAOx/d,KAAK4i5B,aAAe,IAAKrjb,cAC1JA,EAAiBv/d,KAAKi85B,uBAAuBj85B,KAAKw/d,OAAOx/d,KAAK4i5B,aAAe,GAAI5i5B,KAAKw/d,OAAOx/d,KAAK4i5B,aAAe,GAAI5i5B,KAAKw/d,OAAOx/d,KAAK4i5B,aAAe,IAAKtjb,cAC1J54H,EAAa1mW,KAAKw/d,OAAOx/d,KAAK4i5B,aAAe,GAC7Cx6iB,EAAWpoW,KAAKw/d,OAAOx/d,KAAK4i5B,aAAe,GAC3C,IAAInkb,EAAiB,GACjBC,EAAiB,EAChB3yJ,GAAkB/rU,KAAKq35B,kBACxB54b,EAAiBC,EAAiB1+d,KAAKq35B,gBAE3Cr35B,KAAK6/d,UAAU5kd,EAASqkd,EAAeC,EAAe74H,EAAY0B,EAAUq2H,EAAgBC,GAC5F1+d,KAAK4i5B,cACT,CACA,GAAI/iZ,EAAW,CACXvgC,EAAgBC,EAAgB74H,EAAa0B,EAAW,CAAEluV,EAAGA,EAAGC,EAAGA,EAAGsI,MAAM,IAAIhhB,MAAOC,WACnF+8d,EAAiB,GACjBC,EAAiB,EAChB3yJ,GAAkB/rU,KAAKq35B,kBACxB54b,EAAiBC,EAAiB1+d,KAAKq35B,gBAE3Cr35B,KAAK6/d,UAAU5kd,EAASqkd,EAAeC,EAAe74H,EAAY0B,EAAUq2H,EAAgBC,EAChG,CACJ,CACJ,EACAi+a,EAAYhs4B,UAAUsr5B,uBAAyB,SAAUz5zB,EAAIC,EAAIC,GACxDD,IACDA,EAAKD,GAEJE,IACDA,EAAKD,GAET,IAAI2+X,EAAM5+X,EAAGtoF,EAAIuoF,EAAGvoF,EAChBmnd,EAAM7+X,EAAGroF,EAAIsoF,EAAGtoF,EAChBmnd,EAAM7+X,EAAGvoF,EAAIwoF,EAAGxoF,EAChBqnd,EAAM9+X,EAAGtoF,EAAIuoF,EAAGvoF,EAChBqnd,GAAWh/X,EAAGtoF,EAAIuoF,EAAGvoF,GAAK,EAA1Bsnd,GAAmCh/X,EAAGroF,EAAIsoF,EAAGtoF,GAAK,EAClDsnd,GAAWh/X,EAAGvoF,EAAIwoF,EAAGxoF,GAAK,EAA1Bund,GAAmCh/X,EAAGtoF,EAAIuoF,EAAGvoF,GAAK,EAClDund,EAAK99d,KAAK0kS,KAAK84L,EAAMA,EAAMC,EAAMA,GACjCM,EAAK/9d,KAAK0kS,KAAKg5L,EAAMA,EAAMC,EAAMA,GAGjCzgd,EAAI6gd,GAAMD,EAAKC,GACfC,EAAUH,GAHHD,EAAOC,GAGS3gd,EAAvB8gd,EAA6BH,GAFtBD,EAAOC,GAE4B3gd,EAC1C+gd,EAAKp/X,EAAGvoF,EAAI0nd,EACZE,EAAKr/X,EAAGtoF,EAAIynd,EAChB,MAAO,CACHtC,cAAet/d,KAAKsmW,MAAMk7H,EAAOK,EAAIL,EAAOM,EAAI,GAChDvC,cAAev/d,KAAKsmW,MAAMm7H,EAAOI,EAAIJ,EAAOK,EAAI,GAExD,EACA66a,EAAYhs4B,UAAU21V,MAAQ,SAAUpsV,EAAGC,EAAGsI,GAG1C,OAFAziB,KAAK2i5B,gBAAgBvjb,OAASlld,EAC9Bla,KAAK2i5B,gBAAgBtjb,OAASlld,EACvB,CAAED,EAAGla,KAAK2i5B,gBAAgBvjb,OAAQjld,EAAGna,KAAK2i5B,gBAAgBtjb,OAAQ58c,KAAMA,EACnF,EACAk63B,EAAYhs4B,UAAUkvd,UAAY,SAAU5kd,EAASqkd,EAAeC,EAAe74H,EAAY0B,EAAUq2H,EAAgBC,GACrH,IAAIw9b,EAEJA,EAAe,IADfA,EAAel85B,KAAKm85B,cAAcz1jB,KACG,EAAI,IAAO1mW,KAAK2i5B,gBAAgB5ib,aACrE,IAAIC,EAAWp8d,KAAKqpC,IAAIyxb,EAAiB,IAAWD,GACpDz+d,KAAKo85B,UAAUp85B,KAAK2i5B,gBAAgBlg4B,KAAMu9c,EAAU/kd,EAASqkd,EAAeC,EAAe74H,EAAY0B,EAAUs2H,GACjH1+d,KAAK2i5B,gBAAgB5ib,aAAem8b,EACpCl85B,KAAK2i5B,gBAAgBlg4B,KAAOu9c,CAChC,EACA28a,EAAYhs4B,UAAUwr5B,cAAgB,SAAUz1jB,GAC5C,OAAQ1mW,KAAK2i5B,gBAAgBlg4B,OAASikV,EAAWjkV,KAAQziB,KAAK2/d,WAAWj5H,IACpE1mW,KAAK2i5B,gBAAgBlg4B,KAAOikV,EAAWjkV,MAAQ,CACxD,EACAk63B,EAAYhs4B,UAAUgvd,WAAa,SAAUzpb,GACzC,OAAOtyC,KAAK0kS,KAAK1kS,KAAKwe,IAAIpiB,KAAK2i5B,gBAAgBvjb,OAASlpb,EAAMh8B,EAAG,GAAKtW,KAAKwe,IAAIpiB,KAAK2i5B,gBAAgBtjb,OAASnpb,EAAM/7B,EAAG,GAC1H,EACAwi4B,EAAYhs4B,UAAUyr5B,UAAY,SAAU/7b,EAAYC,EAAUrld,EAASqkd,EAAeC,EAAe74H,EAAY0B,EAAUs2H,GAC3H,IAAIlgd,EACArS,EACAo0d,EACAC,EACAC,EACAC,EACAC,EACAC,EACA1md,EACAC,EACA0md,EAAaP,EAAWD,EACxBS,EAAe9ge,KAAK8ge,aAAaxB,EAAeC,EAAe74H,EAAY0B,GAC3E44H,EAAsC,EAA1Bp9d,KAAKC,KAAKi9d,GAE1B,IADA7ld,EAAQgmd,YACH90d,EAAI,EAAGA,EAAI60d,EAAW70d,IAGvBs0d,GADAD,GADAD,EAAKp0d,EAAI60d,GACCT,GACAA,EAIVrmd,GADA0md,GADAD,GADAD,EAAK,EAAIH,GACCG,GACAA,GACDh6H,EAAWxsV,EACpBA,GAAK,EAAIymd,EAAKJ,EAAKjB,EAAcpld,EACjCA,GAAK,EAAIwmd,EAAKF,EAAKjB,EAAcrld,EACjCA,GAAKumd,EAAKr4H,EAASluV,EACnBC,EAAIymd,EAAKl6H,EAAWvsV,EACpBA,GAAK,EAAIwmd,EAAKJ,EAAKjB,EAAcnld,EACjCA,GAAK,EAAIumd,EAAKF,EAAKjB,EAAcpld,EACjCA,GAAKsmd,EAAKr4H,EAASjuV,EACnBqE,EAAQ5a,KAAKgmD,IAAIy2a,EAAaI,EAAKI,EAAYnC,GAC/C1+d,KAAK4wa,QAAQ12Z,EAAGC,EAAGqE,EAAOvD,GAE9BA,EAAQ2jd,YACR3jd,EAAQurE,MACZ,EACAm2zB,EAAYhs4B,UAAUmwd,aAAe,SAAUxB,EAAeC,EAAe74H,EAAY0B,GACrF,IAEIj8V,EACAwV,EACAogd,EACAC,EACAC,EACAC,EACAC,EACAC,EARAh/d,EAAS,EASb,IAAK+I,EAAI,EAAGA,GAVA,GAUYA,IACpBwV,EAAIxV,EAXI,GAYR41d,EAAU/he,KAAKq85B,YAAY164B,EAAG+kV,EAAWxsV,EAAGold,EAAcpld,EAAGqld,EAAcrld,EAAGkuV,EAASluV,GACvF8nd,EAAUhie,KAAKq85B,YAAY164B,EAAG+kV,EAAWvsV,EAAGmld,EAAcnld,EAAGold,EAAcpld,EAAGiuV,EAASjuV,GACnFhO,EAAI,IACJg2d,EAAUJ,EAAUE,EACpBG,EAAUJ,EAAUE,EACpB9+d,GAAUQ,KAAK0kS,KAAK65L,EAAUA,EAAUC,EAAUA,IAEtDH,EAAUF,EACVG,EAAUF,EAEd,OAAO5+d,CACX,EACAu54B,EAAYhs4B,UAAU0r5B,YAAc,SAAU164B,EAAG2gd,EAAYC,EAAKC,EAAKj3S,GACnE,OAAO+2S,GAAc,EAAM3gd,IAAM,EAAMA,IAAM,EAAMA,GAAK,EAAM4gd,GAAO,EAAM5gd,IAAM,EAAMA,GAAKA,EAAI,EAC5F6gd,GAAO,EAAM7gd,GAAKA,EAAIA,EAAI4pK,EAAW5pK,EAAIA,EAAIA,CACrD,EACAg73B,EAAYhs4B,UAAUiga,QAAU,SAAU12Z,EAAGC,EAAG9D,EAAM4E,IAC7Cf,EAAIla,KAAKih5B,UAAY9m4B,EAAIna,KAAKkh5B,SAAWhn4B,EAAKla,KAAKih5B,SAAWjh5B,KAAKm05B,WAAch64B,EAAKna,KAAKkh5B,QAAUlh5B,KAAKo05B,YAC1Gn54B,IAAYjb,KAAK4p5B,cAAgB3u4B,IAAYjb,KAAK4o5B,gBACnD3t4B,EAAQimd,OAAOhnd,EAAGC,GAClBc,EAAQkmd,IAAIjnd,EAAGC,EAAG9D,EAAM,EAAG,EAAIzS,KAAKita,IAAI,GAEhD,EACA8re,EAAYhs4B,UAAUon5B,eAAiB,SAAU984B,EAASukd,GACtD,IAAI9yY,EAAOzxE,EAAQ7U,OACnB6U,EAAQ7U,OAAS,OACZ2lU,GAAkByzJ,KACnBx/d,KAAKi9d,UAAUj9d,KAAK6i5B,iBAAmB,CAAC,EACxC7i5B,KAAKi9d,UAAUj9d,KAAK6i5B,iBAAiBrjb,OAASA,EAC9Cx/d,KAAKi9d,UAAUj9d,KAAK6i5B,iBAAiBplb,YAAcz9d,KAAK2+4B,UAAUjB,eAAejgb,YACjFz9d,KAAKi9d,UAAUj9d,KAAK6i5B,iBAAiBzzwB,YAAcpvI,KAAKq35B,eACxDr35B,KAAKi9d,UAAUj9d,KAAK6i5B,iBAAiBmZ,UAAYh85B,KAAKm+4B,cACtDn+4B,KAAK6i5B,mBAET,IAAK,IAAI7g5B,EAAI,EAAGA,EAAIhC,KAAK6i5B,gBAAiB7g5B,IAAK,CAC3ChC,KAAKw/d,OAAS/1Y,GAAO,GAAIzpF,KAAKi9d,UAAUj7d,GAAGw9d,QAC3Cx/d,KAAK4i5B,aAAe,EACpB,IAAIjz1B,EAAM3vD,KAAKw/d,OAAOp8d,OAClBk8d,OAAgB,EAChBC,OAAgB,EAChB74H,OAAa,EACb0B,OAAW,EACXq2H,OAAiB,EACjBC,OAAiB,EACjB/ua,EAAM,IACN10C,EAAQuid,UAAYx9d,KAAKi9d,UAAUj7d,GAAGy7d,YACtCgB,EAAiBC,EAAiB1+d,KAAKq35B,eAAiBr35B,KAAKi9d,UAAUj7d,GAAGotI,aAElE,IAARz/E,IACA2va,EAAgBC,EAAgB74H,EAAa0B,EAAWpoW,KAAKw/d,OAAO,GACpEx/d,KAAK6/d,UAAU5kd,EAASqkd,EAAeC,EAAe74H,EAAY0B,EAAUq2H,EAAgBC,IAEhG,IAAK,IAAIr/b,EAAI,EAAGA,EAAIswB,EAAM,EAAGtwB,IACrBr/B,KAAKw/d,OAAOngc,EAAI,IAAMr/B,KAAKw/d,OAAOngc,EAAI,IAAMr/B,KAAKw/d,OAAOngc,EAAI,KAC5Digc,EAAiBt/d,KAAKi85B,uBAAuBj85B,KAAKw/d,OAAOngc,EAAI,GAAIr/B,KAAKw/d,OAAOngc,EAAI,GAAIr/B,KAAKw/d,OAAOngc,EAAI,IAAKkgc,cAC1GA,EAAiBv/d,KAAKi85B,uBAAuBj85B,KAAKw/d,OAAOngc,EAAI,GAAIr/B,KAAKw/d,OAAOngc,EAAI,GAAIr/B,KAAKw/d,OAAOngc,EAAI,IAAKigc,cAC1G54H,EAAa1mW,KAAKw/d,OAAOngc,EAAI,GAC7B+oU,EAAWpoW,KAAKw/d,OAAOngc,EAAI,GAC3Br/B,KAAK6/d,UAAU5kd,EAASqkd,EAAeC,EAAe74H,EAAY0B,EAAUq2H,EAAgBC,IAGpGzjd,EAAQ2jd,WACZ,CACA3jd,EAAQ7U,OAASsmF,CACrB,EACAiwzB,EAAYhs4B,UAAUim5B,iBAAmB,WACrC525B,KAAK4p5B,aAAaxj5B,OAASpG,KAAK6g5B,aAChC7g5B,KAAKs85B,sBACDt85B,KAAK6h5B,cACL7h5B,KAAKy55B,WAAWz55B,KAAK4p5B,cAEzB,IAAIhJ,EAAa5g5B,KAAK4p5B,aAAaxj5B,OACnCpG,KAAK4p5B,aAAaxj5B,OAASpG,KAAK6p5B,mBAChC7p5B,KAAK835B,iBACL935B,KAAK+35B,eAAe/35B,KAAK4p5B,cACzB5p5B,KAAK4p5B,aAAaxj5B,OAASw64B,CAC/B,EACAjE,EAAYhs4B,UAAU2jjB,eAAiB,SAAU1njB,EAAMst5B,EAAYqC,EAAYpC,EAAWtN,GACtF,GAAK7s5B,KAAKy94B,cAAV,CAGA,IAAIxk4B,EAAO,CAAEmz4B,YAAax/4B,GAY1B,OAXa,WAATA,GAA8B,UAATA,IACjBskB,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,aAAen2B,KAAK4/4B,gBAAgBx84B,OAAS,GACvF6pV,GAAa/7T,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,YAAa,WAAWihH,UAE/ElmH,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,mBAAqBn2B,KAAK4/4B,gBAAgBx84B,OAAS,GACzF8tB,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,kBAAkBp1B,UAAU4J,QAAQ,cAAgB,GAC9FsiV,GAAa/7T,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,kBAAmB,WAAWihH,WAIjGp3I,KAAK+s5B,gBACGng5B,GACJ,IAAK,OACGq6U,GAAQM,SACJg1kB,EACAv85B,KAAKks5B,iBAAgB,GAAO,GAAM,GAGlCls5B,KAAKks5B,iBAAgB,GAAO,EAAM,MAGhCjlkB,GAAQM,WAAY4ykB,GAEtBn65B,KAAKks5B,gBAAgBgO,EAAYjzkB,GAAQM,SAAU,MAMvDN,GAAQM,UACRvnV,KAAKqt5B,oBAET,MACJ,IAAK,SACGpmkB,GAAQM,UACRvnV,KAAKks5B,iBAAgB,GAAO,GAAM,GAET,SAAzBls5B,KAAK2+4B,UAAUnzwB,OAA6C,UAAzBxrI,KAAK2+4B,UAAUnzwB,MAClDvyH,EAAKswf,aAAe,CAAC,cAAe,eAGpCtwf,EAAKswf,aAAe,CAAC,YAAa,cAAe,eAErDvpgB,KAAKsgS,QAAQ,kBAAmBrnR,GAChCjZ,KAAK2x5B,sBAAsB144B,EAAKswf,cAChC,MACJ,IAAK,OACGtiL,GAAQM,UACRvnV,KAAKks5B,iBAAgB,GAAO,GAAM,GAEtCjz4B,EAAKswf,aAAe,CAAC,aAAc,YAAa,WAAY,aAC5DvpgB,KAAKsgS,QAAQ,kBAAmBrnR,GAChCjZ,KAAK0y5B,oBAAoBz54B,EAAKswf,cAC9B,MACJ,IAAK,MACGtiL,GAAQM,UACRvnV,KAAKks5B,iBAAgB,GAAO,GAAM,GAEtCjz4B,EAAKswf,aAAe,CAAC,cAAe,eACpCvpgB,KAAKsgS,QAAQ,kBAAmBrnR,GAChCjZ,KAAKw85B,mBAAmBvj5B,EAAKswf,cAC7B,MACJ,IAAK,MACDvpgB,KAAKi15B,sBACL,MACJ,IAAK,aACGhukB,GAAQM,UACRvnV,KAAKks5B,iBAAgB,GAAO,GAAM,GAEtCls5B,KAAKy85B,4BACL,MACJ,IAAK,SACDz85B,KAAK4s5B,wBAAwBhg5B,GAC7B,MACJ,IAAK,QACD5M,KAAK4s5B,wBAAwBhg5B,EAAMig5B,GAG3C7s5B,KAAKok5B,YAAcx34B,EACnB5M,KAAK0w5B,mBAAmB6L,EAjFxB,CAkFJ,EACA5f,EAAYhs4B,UAAU+r5B,yBAA2B,WAC7C,IAAInzZ,EAAe,IACfx9L,GAAkB/rU,KAAKi1nB,WAAclpT,GAAkB/rU,KAAKi1nB,UAAYj1nB,KAAKi1nB,QAAQtqnB,QAAQ,eAAiB,IAC9G4+f,EAAan9f,KAAK,CAAE+pB,GAAIn2B,KAAKmV,QAAQghB,GAAK,cAAe4ugB,WAAY,uBAAwBn1L,SAAU,wBACnGs1L,YAAalliB,KAAK+zZ,KAAKhuD,YAAY,cAAevnD,MAAO,YAE7DutB,GAAkB/rU,KAAKi1nB,WAAclpT,GAAkB/rU,KAAKi1nB,UAAYj1nB,KAAKi1nB,QAAQtqnB,QAAQ,aAAe,IAC5G4+f,EAAan9f,KAAK,CAAE+pB,GAAIn2B,KAAKmV,QAAQghB,GAAK,YAAa4ugB,WAAY,qBAAsBn1L,SAAU,sBAC/Fs1L,YAAalliB,KAAK+zZ,KAAKhuD,YAAY,YAAavnD,MAAO,YAE3DutB,GAAkB/rU,KAAKi1nB,WAAclpT,GAAkB/rU,KAAKi1nB,UAAYj1nB,KAAKi1nB,QAAQtqnB,QAAQ,QAAU,IACvG4+f,EAAan9f,KAAK,CAAE+pB,GAAIn2B,KAAKmV,QAAQghB,GAAK,OAAQ4ugB,WAAY,iBAAkBn1L,SAAU,kBACtFs1L,YAAalliB,KAAK+zZ,KAAKhuD,YAAY,OAAQvnD,MAAO,YAEtDutB,GAAkB/rU,KAAKi1nB,WAAclpT,GAAkB/rU,KAAKi1nB,UAAYj1nB,KAAKi1nB,QAAQtqnB,QAAQ,eAAiB,IAC9G4+f,EAAan9f,KAAK,CAAE+pB,GAAIn2B,KAAKmV,QAAQghB,GAAK,cAAe4ugB,WAAY,uBAAwBn1L,SAAU,wBACnGs1L,YAAalliB,KAAK+zZ,KAAKhuD,YAAY,cAAevnD,MAAO,YAE7DutB,GAAkB/rU,KAAKi1nB,WAAclpT,GAAkB/rU,KAAKi1nB,UAAYj1nB,KAAKi1nB,QAAQtqnB,QAAQ,aAAe,IAC5G4+f,EAAan9f,KAAK,CAAE+pB,GAAIn2B,KAAKmV,QAAQghB,GAAK,YAAa4ugB,WAAY,kBAAmBn1L,SAAU,mBAC5Fs1L,YAAalliB,KAAK+zZ,KAAKhuD,YAAY,YAAavnD,MAAO,YAE3DutB,GAAkB/rU,KAAKi1nB,WAAclpT,GAAkB/rU,KAAKi1nB,UAAYj1nB,KAAKi1nB,QAAQtqnB,QAAQ,YAAc,IAC3G4+f,EAAan9f,KAAK,CAAE+pB,GAAIn2B,KAAKmV,QAAQghB,GAAK,WAAY4ugB,WAAY,oBAAqBn1L,SAAU,qBAC7Fs1L,YAAalliB,KAAK+zZ,KAAKhuD,YAAY,WAAYvnD,MAAO,YAE1DutB,GAAkB/rU,KAAKi1nB,WAAclpT,GAAkB/rU,KAAKi1nB,UAAYj1nB,KAAKi1nB,QAAQtqnB,QAAQ,SAAW,IACxG4+f,EAAan9f,KAAK,CAAE+pB,GAAIn2B,KAAKmV,QAAQghB,GAAK,QAAS4ugB,WAAY,iBAAkBn1L,SAAU,kBACvFs1L,YAAalliB,KAAK+zZ,KAAKhuD,YAAY,QAASvnD,MAAO,WAG3D,IADA,IAAIuvmB,EAAmB/t5B,KAAKgu5B,eAAe,UAClC7h5B,EAAI,EAAGwjD,EAAMo+1B,EAAiB3q5B,OAAQ+I,EAAIwjD,EAAKxjD,IACpDo9f,EAAan9f,KAAK2h5B,EAAiB5h5B,IAQvC,OANK86U,GAAQM,WACTgiL,EAAan9f,KAAK,CAAE+pB,GAAIn2B,KAAKmV,QAAQghB,GAAK,MAAO4ugB,WAAY,kBAAmBn1L,SAAU,kBACtFs1L,YAAalliB,KAAK+zZ,KAAKhuD,YAAY,MAAOvnD,MAAO,UACrD+qN,EAAan9f,KAAK,CAAE+pB,GAAIn2B,KAAKmV,QAAQghB,GAAK,UAAW4ugB,WAAY,kBAAmBn1L,SAAU,kBAC1Fs1L,YAAalliB,KAAK+zZ,KAAKhuD,YAAY,UAAWvnD,MAAO,WAEtD+qN,CACX,EACAozY,EAAYhs4B,UAAUgs5B,qBAAuB,WACzC,IAAIpzZ,EAAe,IACfx9L,GAAkB/rU,KAAKi1nB,WAAclpT,GAAkB/rU,KAAKi1nB,UAAYj1nB,KAAKi1nB,QAAQtqnB,QAAQ,YAAc,IAC3G4+f,EAAan9f,KAAK,CAAE+pB,GAAIn2B,KAAKmV,QAAQghB,GAAK,WAAY4ugB,WAAY,iBAAkBn1L,SAAU,kBAC1Fs1L,YAAalliB,KAAK+zZ,KAAKhuD,YAAY,WAAYvnD,MAAO,SACtDj7Q,SAAU,0EAA4EvjC,KAAKmV,QAAQghB,GAAzF,iEAAsKn2B,KAAK+zZ,KAAKhuD,YAAY,WAAa,yBAEvNh6B,GAAkB/rU,KAAKi1nB,WAAclpT,GAAkB/rU,KAAKi1nB,UAAYj1nB,KAAKi1nB,QAAQtqnB,QAAQ,WAAa,IAC1G4+f,EAAan9f,KAAK,CAAE+pB,GAAIn2B,KAAKmV,QAAQghB,GAAK,UAAW4ugB,WAAY,iBAAkBn1L,SAAU,kBACzFs1L,YAAalliB,KAAK+zZ,KAAKhuD,YAAY,UAAWvnD,MAAO,SACrDj7Q,SAAU,0EAA4EvjC,KAAKmV,QAAQghB,GAAzF,gEAAqKn2B,KAAK+zZ,KAAKhuD,YAAY,UAAY,yBAErNh6B,GAAkB/rU,KAAKi1nB,WAAclpT,GAAkB/rU,KAAKi1nB,UAAYj1nB,KAAKi1nB,QAAQtqnB,QAAQ,SAAW,IACxG4+f,EAAan9f,KAAK,CAAE+pB,GAAIn2B,KAAKmV,QAAQghB,GAAK,QAAS4ugB,WAAY,iBAAkBn1L,SAAU,kBACvFs1L,YAAalliB,KAAK+zZ,KAAKhuD,YAAY,QAASvnD,MAAO,SACnDj7Q,SAAU,0EAA4EvjC,KAAKmV,QAAQghB,GAAzF,8DAAmKn2B,KAAK+zZ,KAAKhuD,YAAY,QAAU,yBAEjNh6B,GAAkB/rU,KAAKi1nB,WAAclpT,GAAkB/rU,KAAKi1nB,UAAYj1nB,KAAKi1nB,QAAQtqnB,QAAQ,SAAW,IACxG4+f,EAAan9f,KAAK,CAAE+pB,GAAIn2B,KAAKmV,QAAQghB,GAAK,QAAS4ugB,WAAY,iBAAkBn1L,SAAU,kBACvFs1L,YAAalliB,KAAK+zZ,KAAKhuD,YAAY,QAASvnD,MAAO,SACnDj7Q,SAAU,0EAA4EvjC,KAAKmV,QAAQghB,GAAzF,8DAAmKn2B,KAAK+zZ,KAAKhuD,YAAY,QAAU,yBAEjNh6B,GAAkB/rU,KAAKi1nB,WAAclpT,GAAkB/rU,KAAKi1nB,UAAYj1nB,KAAKi1nB,QAAQtqnB,QAAQ,cAAgB,IAC7G4+f,EAAan9f,KAAK,CAAE+pB,GAAIn2B,KAAKmV,QAAQghB,GAAK,aAAc4ugB,WAAY,iBAAkBn1L,SAAU,kBAC5Fs1L,YAAalliB,KAAK+zZ,KAAKhuD,YAAY,aAAcvnD,MAAO,SACxDj7Q,SAAU,0EAA4EvjC,KAAKmV,QAAQghB,GAAzF,mEAAwKn2B,KAAK+zZ,KAAKhuD,YAAY,aAAe,yBAE3Nh6B,GAAkB/rU,KAAKi1nB,WAAclpT,GAAkB/rU,KAAKi1nB,UAAYj1nB,KAAKi1nB,QAAQtqnB,QAAQ,UAAY,IACzG4+f,EAAan9f,KAAK,CAAE+pB,GAAIn2B,KAAKmV,QAAQghB,GAAK,SAAU4ugB,WAAY,iBAAkBn1L,SAAU,kBACxFs1L,YAAalliB,KAAK+zZ,KAAKhuD,YAAY,SAAUvnD,MAAO,SACpDj7Q,SAAU,0EAA4EvjC,KAAKmV,QAAQghB,GAAzF,+DAAoKn2B,KAAK+zZ,KAAKhuD,YAAY,SAAW,yBAEnNh6B,GAAkB/rU,KAAKi1nB,WAAclpT,GAAkB/rU,KAAKi1nB,UAAYj1nB,KAAKi1nB,QAAQtqnB,QAAQ,WAAa,IAC1G4+f,EAAan9f,KAAK,CAAE+pB,GAAIn2B,KAAKmV,QAAQghB,GAAK,UAAW4ugB,WAAY,iBAAkBn1L,SAAU,kBACzFs1L,YAAalliB,KAAK+zZ,KAAKhuD,YAAY,UAAWvnD,MAAO,SACrDj7Q,SAAU,0EAA4EvjC,KAAKmV,QAAQghB,GAAzF,gEAAqKn2B,KAAK+zZ,KAAKhuD,YAAY,UAAY,wBAGzN,IADA,IAAIgojB,EAAmB/t5B,KAAKgu5B,eAAe,UAClC7h5B,EAAI,EAAGwjD,EAAMo+1B,EAAiB3q5B,OAAQ+I,EAAIwjD,EAAKxjD,IACpDo9f,EAAan9f,KAAK2h5B,EAAiB5h5B,IAEvC,OAAOo9f,CACX,EACAozY,EAAYhs4B,UAAUis5B,kBAAoB,SAAU902B,GAChD,IAAIyhd,EAAe,GACfzhd,EAAMn9C,QAAQ,gBAAkB,GAChC4+f,EAAan9f,KAAK,CAAE24hB,WAAY,iBAAkB5ugB,GAAIn2B,KAAKmV,QAAQghB,GAAK,mBACpEy5U,SAAU,8BACVs1L,YAAalliB,KAAK+zZ,KAAKhuD,YAAY,eAAgBvnD,MAAO,SAAU5xS,KAAM,QAC1E22B,SAAU,eAAiBvjC,KAAKmV,QAAQghB,GAAK,4BAEjD2xB,EAAMn9C,QAAQ,gBAAkB,GAChC4+f,EAAan9f,KAAK,CAAE24hB,WAAY,iBAAkBn1L,SAAU,kBACxDs1L,YAAalliB,KAAK+zZ,KAAKhuD,YAAY,eACnCvnD,MAAO,SAAU5xS,KAAM,QAAS22B,SAAU,eAAiBvjC,KAAKmV,QAAQghB,GAAK,+BAGrF,IADA,IAAI433B,EAAmB/t5B,KAAKou5B,kBAAkBtm2B,GACrC37C,EAAI,EAAGwjD,EAAMo+1B,EAAiB3q5B,OAAQ+I,EAAIwjD,EAAKxjD,IACpDo9f,EAAan9f,KAAK2h5B,EAAiB5h5B,IAQvC,OANK86U,GAAQM,WACTgiL,EAAan9f,KAAK,CAAE+pB,GAAIn2B,KAAKmV,QAAQghB,GAAK,MAAO4ugB,WAAY,kBAAmBn1L,SAAU,kBACtFs1L,YAAalliB,KAAK+zZ,KAAKhuD,YAAY,MAAOvnD,MAAO,UACrD+qN,EAAan9f,KAAK,CAAE+pB,GAAIn2B,KAAKmV,QAAQghB,GAAK,UAAW4ugB,WAAY,kBAAmBn1L,SAAU,kBAC1Fs1L,YAAalliB,KAAK+zZ,KAAKhuD,YAAY,UAAWvnD,MAAO,WAEtD+qN,CACX,EACAozY,EAAYhs4B,UAAU6r5B,mBAAqB,SAAU102B,GACjD,IAAIxoD,EAAQU,KACR6u5B,EAAW7u5B,KAAK6t5B,qBAChBiB,EAAY9u5B,KAAKiu5B,sBACjBc,EAAW/u5B,KAAK485B,kBAAkB902B,GAClCkn2B,EAAWhv5B,KAAKmu5B,qBAChBlnkB,GAAQM,SACRvnV,KAAK4/4B,gBAAkBmP,EAGvB/u5B,KAAK4/4B,gBAAkBiP,EAASz14B,OAAO414B,EAAUD,EAAUD,GAE/D,IAAI75R,EAAU,IAAIn8F,IAAQ,CACtBt6gB,MAAO,OACPspC,MAAO9nD,KAAK4/4B,gBACZrzV,QAASvsjB,KAAKqs5B,kBAAkBxs5B,KAAKG,MACrCyzd,QAAS,WACLn0d,EAAMu95B,eAAe/02B,GACrBxoD,EAAMw95B,aAAah12B,GACnBxoD,EAAM+u5B,oBACDpnkB,GAAQM,UACTjoV,EAAM2v5B,gBAEV3v5B,EAAMghS,QAAQ,iBAAkB,CAAE8rnB,YAAa,QAC3CnlkB,GAAQM,UAORjoV,EAAMgt5B,4BANFht5B,EAAMsg5B,gBAAgBx84B,OAAS,IAAO2oU,GAAkB76S,SAASg8T,eAAe5tV,EAAM6V,QAAQghB,GAAK,cAEnG8+lB,EAAQr3F,iBAUpB,IAEA32M,GAAQM,SACR0tS,EAAQv8R,SAAS,IAAM14V,KAAKmV,QAAQghB,GAAK,kBAGzC8+lB,EAAQv8R,SAAS,IAAM14V,KAAKmV,QAAQghB,GAAK,YAE7Cn2B,KAAKkv5B,yBACT,EACAvS,EAAYhs4B,UAAUks5B,eAAiB,SAAU/02B,GAC7C,IAAIxoD,EAAQU,KAERgmM,EAAQhmM,KACZ,GAAI8nD,EAAMn9C,QAAQ,gBAAkB,EAAG,CACnC3K,KAAKmV,QAAQykB,cAAc,kCAAkClI,YAAY1xB,KAAKc,cAAc,QAAS,CACjGq1B,GAAIn2B,KAAKmV,QAAQghB,GAAK,iBAE1B,IAAI0ryB,EAAW,IAAIr/Q,IAAY,CAC3BsC,cAAc,EAAOljjB,MAAO,OAC5B8yiB,aAAa,EAAOnkf,KAAM,UAAWq/S,SAAU,cAC/C17Q,OAAQ,SAAUj7E,GAEd,IAAIyzE,EAAOjD,GAAO,GAAInqF,EAAM29d,UAAW,IAAI,GAC3C39d,EAAMy95B,gCACN,IAAI5L,EAAc1n0B,GAAO,CAAC,EAAGnqF,EAAM6j5B,QAAS,CAAC,GAAG,GAC5CznO,EAAUp8qB,EAAM2x5B,gBACpBv1O,EAAQ6hO,QAAU9zzB,GAAO,GAAInqF,EAAMi+4B,QAAS,IAAI,GAChD7hO,EAAQz+M,UAAYxzY,GAAO,GAAInqF,EAAM29d,UAAW,IAAI,GACpDy+M,EAAQgoO,iBAAmBj6zB,GAAO,GAAInqF,EAAMok5B,iBAAkB,IAAI,GAClEpk5B,EAAM29d,UAAYvwY,EAClBs5G,EAAMi9sB,0BAA2B,EACjCj9sB,EAAM24sB,UAAUjB,eAAejgb,YAAcz3R,EAAMg9sB,sBAAwB/p4B,EAAK6gM,aAAawH,IACzFhiN,EAAM2i5B,uBACN3i5B,EAAMsp5B,aAAa7pb,UAAU,EAAG,EAAGz/d,EAAMmr5B,YAAYjs4B,MAAOlf,EAAMmr5B,YAAY7hwB,QAC9EtpJ,EAAM29d,UAAU39d,EAAM235B,2BAA2Bx5b,YAAcxkd,EAAK6gM,aAAawH,IACjFhiN,EAAM095B,iBAAiB/j5B,EAAK6gM,aAAawH,KACzChiN,EAAM+x5B,mBAAmB,yBAA0B31O,EAASA,EAAQ6hO,QAAS7hO,EAAQz+M,UAAWk0b,IAE1FnrtB,EAAMs4sB,WACZt4sB,EAAM+rtB,YAAYzy5B,EAAMq/4B,WAE5Bse,EAAY9n5B,QAAQrP,SAAS,GAAGK,MAAMy3d,gBAAkB3kd,EAAK6gM,aAAaiqW,KAC1Ek5W,EAAYjq4B,QAChB,GACD,IAAMhzB,KAAKmV,QAAQghB,GAAK,eACvB8m4B,EAAc,IAAI72X,IAAe,CACjCtja,KAAM,SAAU7pH,GACRguU,GAAQM,WACRtuU,EAAK9D,QAAQ0gR,cAAc1vR,MAAM+nJ,IAAM+uwB,EAAY9n5B,QAAQs/Q,wBAAwBvmI,IAC/Ej1I,EAAK9D,QAAQ0gR,cAAcd,aAAe,KAC9C97Q,EAAK9D,QAAQ0gR,cAAc1vR,MAAMw9H,KAAOrkI,EAAM6V,QAAQwtS,WAAa,KAE3E,EACAt6S,OAAQ,eACR4jb,QAAS,yBACV,IAAMjsb,KAAKmV,QAAQghB,GAAK,gBAC3B0ryB,EAAShmsB,QAAS,GACbkwM,GAAkB/rU,KAAKi35B,4BAA8Bj35B,KAAKi35B,2BAA6B,EACxFj35B,KAAKmV,QAAQykB,cAAc,yDAAyDzzB,MAAM8gjB,WACrD,YAA/BjnjB,KAAKgj5B,sBAAsChj5B,KAAKki5B,8BAA8Bzkb,YAC5Ez9d,KAAKi9d,UAAUj9d,KAAKi35B,2BAA2Bx5b,YAGvDz9d,KAAKmV,QAAQykB,cAAc,yDAAyDzzB,MAAM8gjB,WACpF,MAEd,CACJ,EACA01V,EAAYhs4B,UAAUms5B,aAAe,SAAUh12B,GAC3C,IAAIxoD,EAAQU,KACRky5B,EAAmB,CACnB,CAAE/73B,GAAI,IAAK8J,KAAMjgC,KAAK+zZ,KAAKhuD,YAAY,WACvC,CAAE5vU,GAAI,IAAK8J,KAAMjgC,KAAK+zZ,KAAKhuD,YAAY,UACvC,CAAE5vU,GAAI,IAAK8J,KAAMjgC,KAAK+zZ,KAAKhuD,YAAY,WACvC,CAAE5vU,GAAI,IAAK8J,KAAMjgC,KAAK+zZ,KAAKhuD,YAAY,UACvC,CAAE5vU,GAAI,IAAK8J,KAAMjgC,KAAK+zZ,KAAKhuD,YAAY,YAE3C,GAAIj+S,EAAMn9C,QAAQ,gBAAkB,EAAG,CACnC,IAAIwn5B,EAAiBjh4B,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,mBAC3D+m4B,EAAahs4B,SAASpwB,cAAc,SACnCirU,GAAkB/rU,KAAKi35B,4BAA8Bj35B,KAAKi35B,2BAA6B,EACxFiG,EAAWh03B,UAAYlpC,KAAKm95B,aAAan95B,KAAKi9d,UAAUj9d,KAAKi35B,2BAA2B7nxB,aAGxF8txB,EAAWh03B,UAAYlpC,KAAK+zZ,KAAKhuD,YAAY,SAEjDm3jB,EAAWn85B,UAAY,qBACvBox5B,EAAezg4B,YAAYwr4B,GAC3B,IAAIE,EAAe,IAAIh3X,IAAe,CAAEt+e,MAAOoq2B,EAC3CpvxB,KAAM,SAAU7pH,GACRguU,GAAQM,WACRtuU,EAAK9D,QAAQ0gR,cAAc1vR,MAAM+nJ,IAAMkvwB,EAAajo5B,QAAQs/Q,wBAAwBvmI,IAChFj1I,EAAK9D,QAAQ0gR,cAAcd,aAAe,MAElD,IAAIu9nB,EAAY4K,EAAWh03B,UAC3BjwB,EAAK9D,QAAQykB,cAAc,kBAAyB043B,EAAzB,MAAgDpqoB,UAAU90P,IAAI,iBAC7F,EACAo3T,OAAQ,SAAUvxU,GAEd,IAAIyzE,EAAOjD,GAAO,GAAInqF,EAAM29d,UAAW,IAAI,GAC3C39d,EAAMy95B,gCACN,IAAI5L,EAAc1n0B,GAAO,CAAC,EAAGnqF,EAAM6j5B,QAAS,CAAC,GAAG,GAC5CznO,EAAUp8qB,EAAM2x5B,iBACpBv1O,EAAQ6hO,QAAU9zzB,GAAO,GAAInqF,EAAMi+4B,QAAS,IAAI,GAChD7hO,EAAQz+M,UAAYxzY,GAAO,GAAInqF,EAAM29d,UAAW,IAAI,GACpDy+M,EAAQgoO,iBAAmBj6zB,GAAO,GAAInqF,EAAMok5B,iBAAkB,IAAI,GAClEpk5B,EAAM29d,UAAYvwY,EAClBptF,EAAM2j5B,0BAA2B,EACjCia,EAAWtz3B,YAAc3wB,EAAKsc,KAAK0K,KACnC3gC,EAAM+95B,aAAapk5B,EAAKsc,KAAKY,IACzB72B,EAAM2i5B,wBACN3i5B,EAAMsp5B,aAAa7pb,UAAU,EAAG,EAAGz/d,EAAMmr5B,YAAYjs4B,MAAOlf,EAAMmr5B,YAAY7hwB,QAC9EtpJ,EAAM095B,iBAAiB,KAAM195B,EAAM+35B,gBACnC/35B,EAAM29d,UAAU39d,EAAM235B,2BAA2B7nxB,YAAc9vI,EAAM+35B,eACrE/35B,EAAM+x5B,mBAAmB,yBAA0B31O,EAASA,EAAQ6hO,QAAS7hO,EAAQz+M,UAAWk0b,IAEhGlqkB,GAAQM,UACHxb,GAAkB76S,SAASg8T,eAAe5tV,EAAM6V,QAAQghB,GAAK,oBAE9C82T,GAAa3tV,EAAM6V,QAAQghB,GAAK,iBAAkB,WACxDyngB,kBAIT7xN,GAAkB76S,SAASg8T,eAAe5tV,EAAM6V,QAAQghB,GAAK,cAE7C82T,GAAa3tV,EAAM6V,QAAQghB,GAAK,WAAY,WAClDyngB,iBAGvB,IAGJw/X,EAAa1kkB,SAAS,IAAM14V,KAAKmV,QAAQghB,GAAK,kBAClD,CACJ,EACAwm3B,EAAYhs4B,UAAUos5B,8BAAgC,WAC7ChxlB,GAAkB/rU,KAAKi35B,4BAA+BlrlB,GAAkB/rU,KAAKi9d,UAAUj9d,KAAKi35B,6BAC3B,YAA/Dj35B,KAAKi9d,UAAUj9d,KAAKi35B,2BAA2Bx5b,cAClDz9d,KAAKi9d,UAAUj9d,KAAKi35B,2BAA2Bx5b,YAAcz9d,KAAKki5B,8BAA8Bzkb,YAExG,EACAk/a,EAAYhs4B,UAAU0s5B,aAAe,SAAUpk5B,GAC3C,OAAQsT,SAAStT,EAAM,KACnB,KAAK,EACDjZ,KAAKq35B,eAAiB,EACtB,MACJ,KAAK,EACDr35B,KAAKq35B,eAAiB,EACtB,MACJ,KAAK,EACDr35B,KAAKq35B,eAAiB,EACtB,MACJ,KAAK,EACDr35B,KAAKq35B,eAAiB,EACtB,MACJ,KAAK,EACDr35B,KAAKq35B,eAAiB,EAGlC,EACA1a,EAAYhs4B,UAAUws5B,aAAe,SAAUv75B,GAC3C,IAAIgoC,EAAc,GAgBlB,OAfc,IAAVhoC,EACAgoC,EAAc5pC,KAAK+zZ,KAAKhuD,YAAY,UAErB,IAAVnkW,EACLgoC,EAAc5pC,KAAK+zZ,KAAKhuD,YAAY,SAErB,IAAVnkW,EACLgoC,EAAc5pC,KAAK+zZ,KAAKhuD,YAAY,UAErB,IAAVnkW,EACLgoC,EAAc5pC,KAAK+zZ,KAAKhuD,YAAY,SAErB,IAAVnkW,IACLgoC,EAAc5pC,KAAK+zZ,KAAKhuD,YAAY,WAEjCn8T,CACX,EACA+y2B,EAAYhs4B,UAAU8r5B,0BAA4B,WAC9C,IAAIn95B,EAAQU,KACR6u5B,EAAW7u5B,KAAK6t5B,mBAAmB,MACnCiB,EAAY9u5B,KAAKiu5B,sBACjBc,EAAW/u5B,KAAK085B,2BAChB1N,EAAWhv5B,KAAKmu5B,qBAChBlnkB,GAAQM,SACRvnV,KAAK4/4B,gBAAkBmP,EAGvB/u5B,KAAK4/4B,gBAAkBiP,EAASz14B,OAAO414B,EAAUD,EAAUD,GAE/D,IAAI75R,EAAU,IAAIn8F,IAAQ,CACtBt6gB,MAAO,OACPspC,MAAO9nD,KAAK4/4B,gBACZrzV,QAASvsjB,KAAKqs5B,kBAAkBxs5B,KAAKG,MACrCyzd,QAAS,WACLn0d,EAAM+u5B,oBACDpnkB,GAAQM,UACTjoV,EAAM2v5B,gBAENhokB,GAAQM,UAORjoV,EAAMgt5B,4BANFht5B,EAAMsg5B,gBAAgBx84B,OAAS,IAAO2oU,GAAkB76S,SAASg8T,eAAe5tV,EAAM6V,QAAQghB,GAAK,cAEnG8+lB,EAAQr3F,iBAUpB,IAEA32M,GAAQM,SACR0tS,EAAQv8R,SAAS,IAAM14V,KAAKmV,QAAQghB,GAAK,kBAGzC8+lB,EAAQv8R,SAAS,IAAM14V,KAAKmV,QAAQghB,GAAK,YAE7Cn2B,KAAKkv5B,yBACT,EACAvS,EAAYhs4B,UAAUq84B,sBAAwB,WAC1C,IAAI1t5B,EAAQU,KACR+u5B,EAAW/u5B,KAAK285B,uBAChBzr4B,SAAS0I,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,sBAAsB+xP,UAAUh1P,SAAS,cACxF+5T,GAAa/7T,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,sBAAuB,WAAWihH,UAE7F,IAAI69e,EAAU,IAAIn8F,IAAQ,CACtBt6gB,MAAO,OACPspC,MAAOin2B,EACPxiW,QAASvsjB,KAAKm15B,yBAAyBt15B,KAAKG,MAC5Cyzd,QAAS,WACLn0d,EAAMg+5B,qBACsB,KAAxBh+5B,EAAM2jb,gBACN3jb,EAAM2jb,cAAgB3jb,EAAM6V,QAAQghB,GAAK,YAE7C,IAAI+krB,EAAahqrB,SAAS0I,cAAc,IAAMt6B,EAAM6V,QAAQghB,GAAK,gBAC7D+krB,IACAA,EAAW/0sB,MAAMi+J,QAAU,QAE/BlzI,SAASg8T,eAAe5tV,EAAM2jb,cAAgB,UAAUptJ,cAAcA,cAAc3N,UAAU90P,IAAI,cAClG9zB,EAAM4v5B,0BACNj6R,EAAQr3F,iBACZ,IAEJq3F,EAAQv8R,SAAS,IAAM14V,KAAKmV,QAAQghB,GAAK,qBAC7C,EACAwm3B,EAAYhs4B,UAAU4s5B,qBAAuB,WACzC,IAAI3c,EAAa5g5B,KAAK4p5B,aAAaxj5B,OACnCpG,KAAK4p5B,aAAaxj5B,OAAS,OAC3B,IAAIm34B,EAAU9zzB,GAAO,GAAIzpF,KAAKu94B,QAAS,MAAM,GAC7Cv94B,KAAKu94B,QAAU,GACfv94B,KAAKk35B,cACL,IAAIht3B,EAAOlqC,KAAK4p5B,aAAahkb,aAAa5le,KAAKih5B,SAAUjh5B,KAAKkh5B,QAASlh5B,KAAKm05B,UAAWn05B,KAAKo05B,YAI5F,OAHAp05B,KAAKu94B,QAAUA,EACfv94B,KAAK835B,iBACL935B,KAAK4p5B,aAAaxj5B,OAASw64B,EACpB122B,CACX,EACAyy2B,EAAYhs4B,UAAU2s5B,mBAAqB,WACvC,IAIIn7D,EAJAx5G,EAAY3ovB,KAAKu95B,uBACrBv95B,KAAK0r5B,eAAelt4B,MAAQmquB,EAAUnquB,MACtCxe,KAAK0r5B,eAAe9iwB,OAAS+/lB,EAAU//lB,OACvC5oJ,KAAK6r5B,gBAAgBhmb,aAAa8iR,EAAW,EAAG,GAEhD,IAAI60K,EAAWts4B,SAAS0I,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,kBACzD41S,GAAkByxlB,KACnBr7D,EAAMq7D,EAAS7gc,WAAW,MAC1B6gc,EAASr35B,MAAMqY,MAAQ,QACvBg/4B,EAASr35B,MAAMyiJ,OAAS,QACxBu5sB,EAAI/71B,OAASpG,KAAK245B,iBAAiB,UAAW,MAAM,GACpDx2D,EAAInjY,UAAUh/d,KAAK0r5B,eAAgB,EAAG,EAAG,IAAK,MAElD,IAAI+R,EAASvs4B,SAAS0I,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,iBACvD41S,GAAkB0xlB,KACnBt7D,EAAMs7D,EAAO9gc,WAAW,MACxB8gc,EAAOt35B,MAAMqY,MAAQ,QACrBi/4B,EAAOt35B,MAAMyiJ,OAAS,QACtBu5sB,EAAI/71B,OAASpG,KAAK245B,iBAAiB,SAAU,MAAM,GACnDx2D,EAAInjY,UAAUh/d,KAAK0r5B,eAAgB,EAAG,EAAG,IAAK,MAElD,IAAIgS,EAAOxs4B,SAAS0I,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,eACrD41S,GAAkB2xlB,KACnBv7D,EAAMu7D,EAAK/gc,WAAW,MACtB+gc,EAAKv35B,MAAMqY,MAAQ,QACnBk/4B,EAAKv35B,MAAMyiJ,OAAS,QACpBu5sB,EAAI/71B,OAASpG,KAAK245B,iBAAiB,OAAQ,MAAM,GACjDx2D,EAAInjY,UAAUh/d,KAAK0r5B,eAAgB,EAAG,EAAG,IAAK,MAElD,IAAIiS,EAAOzs4B,SAAS0I,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,eACrD41S,GAAkB4xlB,KACnBx7D,EAAMw7D,EAAKhhc,WAAW,MACtBghc,EAAKx35B,MAAMqY,MAAQ,QACnBm/4B,EAAKx35B,MAAMyiJ,OAAS,QACpBu5sB,EAAI/71B,OAASpG,KAAK245B,iBAAiB,OAAQ,MAAM,GACjDx2D,EAAInjY,UAAUh/d,KAAK0r5B,eAAgB,EAAG,EAAG,IAAK,MAElD,IAAIkS,EAAY1s4B,SAAS0I,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,oBAC1D41S,GAAkB6xlB,KACnBz7D,EAAMy7D,EAAUjhc,WAAW,MAC3Bihc,EAAUz35B,MAAMqY,MAAQ,QACxBo/4B,EAAUz35B,MAAMyiJ,OAAS,QACzBu5sB,EAAI/71B,OAASpG,KAAK245B,iBAAiB,YAAa,MAAM,GACtDx2D,EAAInjY,UAAUh/d,KAAK0r5B,eAAgB,EAAG,EAAG,IAAK,MAElD,IAAImS,EAAQ3s4B,SAAS0I,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,gBACtD41S,GAAkB8xlB,KACnB17D,EAAM07D,EAAMlhc,WAAW,MACvBkhc,EAAM135B,MAAMqY,MAAQ,QACpBq/4B,EAAM135B,MAAMyiJ,OAAS,QACrBu5sB,EAAI/71B,OAASpG,KAAK245B,iBAAiB,QAAS,MAAM,GAClDx2D,EAAInjY,UAAUh/d,KAAK0r5B,eAAgB,EAAG,EAAG,IAAK,MAElD,IAAI1o0B,EAAS9xD,SAAS0I,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,iBACvD41S,GAAkB/oP,KACnBm/wB,EAAMn/wB,EAAO25Y,WAAW,MACxB35Y,EAAO78E,MAAMqY,MAAQ,QACrBwkE,EAAO78E,MAAMyiJ,OAAS,QACtBu5sB,EAAI/71B,OAASpG,KAAK245B,iBAAiB,SAAU,MAAM,GACnDx2D,EAAInjY,UAAUh/d,KAAK0r5B,eAAgB,EAAG,EAAG,IAAK,KAEtD,EACA/O,EAAYhs4B,UAAUmt5B,kCAAoC,WACtD,IAAIC,EAAct00B,GAAO,GAAIzpF,KAAKu94B,QAAS,IAAI,GAC3CyB,EAAgBv1zB,GAAO,CAAC,EAAGzpF,KAAK2+4B,UAAW,CAAC,GAAG,GACnD3+4B,KAAKu94B,QAAU,GACfv94B,KAAK6v5B,mBACL7v5B,KAAK0h5B,cAAe,EACpB1h5B,KAAKs55B,8BAA8B,WACnCt55B,KAAK4p5B,aAAa7qb,UAAU,EAAG,EAAG/+d,KAAK6q5B,YAAYrs4B,MAAOxe,KAAK6q5B,YAAYjiwB,QACvD,IAAhB5oJ,KAAKw0vB,QAAgBx0vB,KAAK2h5B,eAAev+4B,OAAS,IAClDpD,KAAKih5B,UAAYjh5B,KAAKqi5B,iBAAiBno4B,EACvCla,KAAKkh5B,SAAWlh5B,KAAKqi5B,iBAAiBlo4B,GAE1Cna,KAAKih5B,UAAYjh5B,KAAKmi5B,yBAAyBjo4B,EAC/Cla,KAAKkh5B,SAAWlh5B,KAAKmi5B,yBAAyBho4B,EAC9C,IAAIuyE,EAAO1sF,KAAK4p5B,aAAaxj5B,OACT,IAAhBpG,KAAKw0vB,QACLx0vB,KAAKg+5B,4BAETh+5B,KAAKq45B,yBACLr45B,KAAK4p5B,aAAa5qb,UAAUh/d,KAAK2r5B,QAAS3r5B,KAAKmh5B,QAASnh5B,KAAKoh5B,OAAQph5B,KAAKu55B,SAAUv55B,KAAKw55B,UAAWx55B,KAAKih5B,SAAUjh5B,KAAKkh5B,QAASlh5B,KAAKm05B,UAAWn05B,KAAKo05B,YACtJp05B,KAAKs55B,8BAA8B,WACf,IAAhBt55B,KAAKw0vB,QAAgBx0vB,KAAK2h5B,eAAev+4B,OAAS,IAClDpD,KAAKih5B,UAAYjh5B,KAAKqi5B,iBAAiBno4B,EACvCla,KAAKkh5B,SAAWlh5B,KAAKqi5B,iBAAiBlo4B,GAE1Cna,KAAK0h5B,cAAe,EACpB1h5B,KAAKu94B,QAAUwgB,EACf,IAAIE,EAAgBj+5B,KAAKs+4B,UACzBt+4B,KAAKs+4B,WAAY,EACjBt+4B,KAAK4p5B,aAAaxj5B,OAAS,OAC3BpG,KAAK835B,iBACL935B,KAAKih5B,UAAYjh5B,KAAKmi5B,yBAAyBjo4B,EAC/Cla,KAAKkh5B,SAAWlh5B,KAAKmi5B,yBAAyBho4B,EAC9Cna,KAAK+35B,eAAe/35B,KAAK4p5B,cACzB5p5B,KAAKih5B,UAAYjh5B,KAAKmi5B,yBAAyBjo4B,EAC/Cla,KAAKkh5B,SAAWlh5B,KAAKmi5B,yBAAyBho4B,EAC9Cna,KAAKs+4B,UAAY2f,EACjBj+5B,KAAK4p5B,aAAaxj5B,OAASsmF,EAC3B1sF,KAAK2+4B,UAAYK,CACrB,EACArC,EAAYhs4B,UAAU2o5B,8BAAgC,SAAU1s5B,EAAMsx5B,EAAsBC,GACpFn+5B,KAAK2h5B,eAAev+4B,OAAS,IAChB,YAATwJ,IACA5M,KAAKo+5B,0BACDrylB,GAAkBmylB,IAClBl+5B,KAAKs65B,wBAGbt65B,KAAKu65B,wBAAwB3t5B,EAAM,KAAM,KAAMux5B,KAE/Cn+5B,KAAK6h5B,eAAkB91kB,GAAkB/rU,KAAKyw5B,qBAAyD,gBAAlCzw5B,KAAKyw5B,mBAAmBjlxB,SACzF2yxB,IACAn+5B,KAAKih5B,UAAYjh5B,KAAKoi5B,uBAAuBlo4B,EAC7Cla,KAAKkh5B,SAAWlh5B,KAAKoi5B,uBAAuBjo4B,GAEhDna,KAAKy55B,WAAWz55B,KAAK4p5B,cACjBuU,IACAn+5B,KAAKih5B,UAAYjh5B,KAAKoi5B,uBAAuBlo4B,EAC7Cla,KAAKkh5B,SAAWlh5B,KAAKoi5B,uBAAuBjo4B,GAGxD,EACAwi4B,EAAYhs4B,UAAUyt5B,wBAA0B,WAC5Cp+5B,KAAK4p5B,aAAayU,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,EAClD,EACA1hB,EAAYhs4B,UAAU4p5B,wBAA0B,SAAU3t5B,EAAM0x5B,EAAoBrj5B,EAASsj5B,GACzFtj5B,EAAUA,GAAoBjb,KAAK4p5B,aACtB,YAATh94B,EACA5M,KAAKw+5B,sBAAsBvj5B,EAASrO,GAEtB,YAATA,IACL5M,KAAKw+5B,sBAAsBvj5B,EAASrO,GACpC5M,KAAKy+5B,8BAA8BH,IAC/Bt+5B,KAAK6h5B,eAAkB91kB,GAAkB/rU,KAAKyw5B,qBAAyD,gBAAlCzw5B,KAAKyw5B,mBAAmBjlxB,OAA2BugM,GAAkBwylB,MACtIA,IACAv+5B,KAAKih5B,UAAYjh5B,KAAKoi5B,uBAAuBlo4B,EAC7Cla,KAAKkh5B,SAAWlh5B,KAAKoi5B,uBAAuBjo4B,GAEhDna,KAAKy55B,WAAWz55B,KAAK4p5B,cACjB2U,IACAv+5B,KAAKih5B,UAAYjh5B,KAAKoi5B,uBAAuBlo4B,EAC7Cla,KAAKkh5B,SAAWlh5B,KAAKoi5B,uBAAuBjo4B,IAI5D,EACAwi4B,EAAYhs4B,UAAU6t5B,sBAAwB,SAAUvj5B,EAASrO,GAC7D,GAAa,YAATA,EACA,IAAK,IAAIT,EAAI,EAAGA,EAAInM,KAAK2h5B,eAAev+4B,OAAQ+I,IAC5CnM,KAAKq+5B,aAAapj5B,EAASjb,KAAK2h5B,eAAex14B,SAGlD,GAAa,YAATS,EACL,IAAST,EAAInM,KAAK2h5B,eAAev+4B,OAAS,EAAG+I,GAAK,EAAGA,IACjDnM,KAAKq+5B,aAAapj5B,EAASjb,KAAK2h5B,eAAex14B,IAAI,EAG/D,EACAww4B,EAAYhs4B,UAAU0t5B,aAAe,SAAUpj5B,EAASrZ,EAAO885B,GAiB3D,OAhBIA,GAAuB,KAAV985B,EACbA,GAAS,GAEJ885B,IAAwB,KAAX985B,IAClBA,EAAQ,IAEE,eAAVA,GAA0B5B,KAAKw0vB,OAAS,KAAO,GAAKx0vB,KAAKw0vB,OAAS,MAAQ,EAC1E5yvB,EAAQ,WAEO,aAAVA,GAAwB5B,KAAKw0vB,OAAS,KAAO,GAAKx0vB,KAAKw0vB,OAAS,MAAQ,IAC7E5yvB,EAAQ,cAEZ5B,KAAKuh5B,gBAAkBvh5B,KAAKwh5B,eAAgB,EACxCz1kB,GAAkB2ylB,IAClBzj5B,EAAQ8jd,UAAU,EAAG,EAAG9jd,EAAQ2hd,OAAOp+c,MAAOvD,EAAQ2hd,OAAOh0U,QAEzDhnJ,GACJ,KAAK,GACL,KAAM,GACFqZ,EAAQ69hB,UAAU79hB,EAAQ2hd,OAAOp+c,MAAQ,EAAGvD,EAAQ2hd,OAAOh0U,OAAS,GACpE3tI,EAAQq1Z,OAAO1sa,KAAKita,GAAK,IAAMjva,GAC/BqZ,EAAQ69hB,WAAW79hB,EAAQ2hd,OAAOp+c,MAAQ,GAAIvD,EAAQ2hd,OAAOh0U,OAAS,GACtE,MACJ,IAAK,aACD3tI,EAAQ69hB,UAAU79hB,EAAQ2hd,OAAOp+c,MAAO,GACxCvD,EAAQsid,OAAO,EAAG,GAClB,MACJ,IAAK,WACDtid,EAAQ69hB,UAAU,EAAG79hB,EAAQ2hd,OAAOh0U,QACpC3tI,EAAQsid,MAAM,GAAI,GAG1Bv9d,KAAKuh5B,gBAAkBvh5B,KAAKwh5B,eAAgB,CAChD,EACA7E,EAAYhs4B,UAAUgu5B,sBAAwB,SAAU9t5B,GACpD,IAAI+t5B,GAAW,EAmBf,OAlBI/t5B,EAAI+t4B,YAAYn3iB,QAAUznW,KAAKih5B,UAAYpw4B,EAAI+t4B,YAAYzB,MAASn94B,KAAKih5B,SAAWjh5B,KAAKm05B,WAGpFtj5B,EAAI+t4B,YAAYn3iB,QAAUznW,KAAKih5B,UAAYpw4B,EAAI+t4B,YAAYzB,MAAQn94B,KAAKih5B,UAGxEpw4B,EAAI+t4B,YAAYn3iB,QAAWznW,KAAKih5B,SAAWjh5B,KAAKm05B,WAActj5B,EAAI+t4B,YAAYzB,MAASn94B,KAAKih5B,SAAWjh5B,KAAKm05B,WAG5Gtj5B,EAAI+t4B,YAAYl3iB,QAAU1nW,KAAKkh5B,SAAWrw4B,EAAI+t4B,YAAYxB,MAASp94B,KAAKkh5B,QAAUlh5B,KAAKo05B,YAGvFvj5B,EAAI+t4B,YAAYl3iB,QAAU1nW,KAAKkh5B,SAAWrw4B,EAAI+t4B,YAAYxB,MAAQp94B,KAAKkh5B,SAGvErw4B,EAAI+t4B,YAAYl3iB,QAAW1nW,KAAKkh5B,QAAUlh5B,KAAKo05B,YAAevj5B,EAAI+t4B,YAAYxB,MAASp94B,KAAKkh5B,QAAUlh5B,KAAKo05B,cAdhHwK,GAAW,GAiBRA,CACX,EACAjiB,EAAYhs4B,UAAUuq5B,oBAAsB,SAAU2D,EAAOC,EAAOC,GAEhE,IAAK,IAAI/85B,EAAI,EAAGA,EAAIhC,KAAK6i5B,gBAAiB7g5B,IAAK,CAC3ChC,KAAKw/d,OAAS/1Y,GAAO,GAAIzpF,KAAKi9d,UAAUj7d,GAAGw9d,OAAQ,IACnDx/d,KAAK4i5B,aAAe,EAEpB,IADA,IAAIjz1B,EAAM3vD,KAAKw/d,OAAOp8d,OACbi8B,EAAI,EAAGA,EAAIswB,EAAKtwB,IACH,KAAd0/3B,GAAkC,aAAdA,EACpB/+5B,KAAKw/d,OAAOngc,GAAGnlB,GAAK2k5B,EAGpB7+5B,KAAKw/d,OAAOngc,GAAGnlB,GAAK2k5B,EAEN,KAAdE,GAAkC,eAAdA,EACpB/+5B,KAAKw/d,OAAOngc,GAAGllB,GAAK2k5B,EAGpB9+5B,KAAKw/d,OAAOngc,GAAGllB,GAAK2k5B,CAGhC,CAEA,IAAS985B,EAAI,EAAGA,EAAIhC,KAAK6i5B,gBAAiB7g5B,IACtC,IAAK+pU,GAAkB/rU,KAAK0k5B,aAAa1i5B,IAAK,CAC1ChC,KAAKyk5B,UAAYh7zB,GAAO,GAAIzpF,KAAK0k5B,aAAa1i5B,GAAGw9d,OAAQ,IACzDx/d,KAAK4i5B,aAAe,EAEpB,IADIjz1B,EAAM3vD,KAAKyk5B,UAAUrh5B,OAChBi8B,EAAI,EAAGA,EAAIswB,EAAKtwB,IACH,KAAd0/3B,GAAkC,aAAdA,EACpB/+5B,KAAKyk5B,UAAUpl3B,GAAGnlB,GAAK2k5B,EAGvB7+5B,KAAKyk5B,UAAUpl3B,GAAGnlB,GAAK2k5B,EAET,KAAdE,GAAkC,eAAdA,EACpB/+5B,KAAKyk5B,UAAUpl3B,GAAGllB,GAAK2k5B,EAGvB9+5B,KAAKyk5B,UAAUpl3B,GAAGllB,GAAK2k5B,CAGnC,CAEJ9+5B,KAAK+35B,eAAe/35B,KAAK4p5B,aAC7B,EACAjN,EAAYhs4B,UAAUsq5B,WAAa,SAAU4D,EAAOC,EAAOC,GACvD,IAAK,IAAI5y5B,EAAI,EAAGA,EAAInM,KAAKu94B,QAAQn64B,OAAQ+I,IAAK,CACxB,KAAd4y5B,GAAkC,aAAdA,GACpB/+5B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYn3iB,QAAUo3jB,EACtC7+5B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYzB,MAAQ0hB,IAGpC7+5B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYn3iB,QAAUo3jB,EACtC7+5B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYzB,MAAQ0hB,GAEtB,KAAdE,GAAkC,eAAdA,GACpB/+5B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYl3iB,QAAUo3jB,EACtC9+5B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYxB,MAAQ0hB,IAGpC9+5B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYl3iB,QAAUo3jB,EACtC9+5B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYxB,MAAQ0hB,GAExC9+5B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYpg4B,MAAQxe,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYzB,KAC5Dn94B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYn3iB,OAChCznW,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYh2vB,OAAS5oJ,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYxB,KAC7Dp94B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYl3iB,OAChC1nW,KAAKk05B,mBAAmBl05B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAa5+4B,KAAKu94B,QAAQpx4B,IAClEnM,KAAKs25B,qBAAqBt25B,KAAKu94B,QAAQpx4B,IACvC,IAAIugF,EAAO1sF,KAAK4p5B,aAAaxj5B,OAC7BpG,KAAK4p5B,aAAaxj5B,OAAS,OAC3BpG,KAAKmZ,MAAMnZ,KAAKu94B,QAAQpx4B,GAAGq/H,MAAOxrI,KAAKu94B,QAAQpx4B,IAC/CnM,KAAK4p5B,aAAaxj5B,OAASsmF,EAC3B1sF,KAAK6v5B,kBACT,CACJ,EACAlT,EAAYhs4B,UAAUkq5B,YAAc,WAChC,GAAI765B,KAAKu94B,QAAQn64B,OAAS,EACtB,IAAK,IAAI+I,EAAI,EAAGA,EAAInM,KAAKu94B,QAAQn64B,OAAQ+I,IACrCnM,KAAKu94B,QAAQpx4B,GAAGgv5B,WAAa,CAAE1zjB,QAAUznW,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYn3iB,OAC7DznW,KAAK2+4B,UAAUC,YAAYn3iB,QAAUznW,KAAK2+4B,UAAUC,YAAYpg4B,MACpEkpV,QAAU1nW,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYl3iB,OAClC1nW,KAAK2+4B,UAAUC,YAAYl3iB,QAAU1nW,KAAK2+4B,UAAUC,YAAYh2vB,OACpEu0vB,MAAQn94B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYzB,KAChCn94B,KAAK2+4B,UAAUC,YAAYn3iB,QAAUznW,KAAK2+4B,UAAUC,YAAYpg4B,MACpE4+3B,MAAQp94B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYxB,KAChCp94B,KAAK2+4B,UAAUC,YAAYl3iB,QAAU1nW,KAAK2+4B,UAAUC,YAAYh2vB,OACpEpqI,MAAOxe,KAAK2+4B,UAAUC,YAAYpg4B,MAAQxe,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYpg4B,MACtEoqI,OAAQ5oJ,KAAK2+4B,UAAUC,YAAYh2vB,OAAS5oJ,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYh2vB,QAC9C,SAA1B5oJ,KAAKu94B,QAAQpx4B,GAAGq/H,QAChBxrI,KAAKu94B,QAAQpx4B,GAAG0x4B,aAAaC,UAAY994B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYpg4B,MACjExe,KAAKu94B,QAAQpx4B,GAAG0x4B,aAAa5+lB,SAIjD,EACA09lB,EAAYhs4B,UAAUqu5B,qBAAuB,WAEzC,IAAK,IAAIh95B,EAAI,EAAGA,EAAIhC,KAAK6i5B,gBAAiB7g5B,IAAK,CAC3ChC,KAAKw/d,OAAS/1Y,GAAO,GAAIzpF,KAAKi9d,UAAUj7d,GAAGw9d,OAAQ,IACnDx/d,KAAK4i5B,aAAe,EAEpB,IADA,IAAIjz1B,EAAM3vD,KAAKw/d,OAAOp8d,OACbi8B,EAAI,EAAGA,EAAIswB,EAAKtwB,IACrBr/B,KAAKw/d,OAAOngc,GAAG+73B,QAAUp75B,KAAKw/d,OAAOngc,GAAGnlB,EACpCla,KAAK2+4B,UAAUC,YAAYn3iB,QAAUznW,KAAK2+4B,UAAUC,YAAYpg4B,MACpExe,KAAKw/d,OAAOngc,GAAGg83B,QAAUr75B,KAAKw/d,OAAOngc,GAAGllB,EACpCna,KAAK2+4B,UAAUC,YAAYl3iB,QAAU1nW,KAAK2+4B,UAAUC,YAAYh2vB,MAE5E,CAEA,IAAS5mJ,EAAI,EAAGA,EAAIhC,KAAK6i5B,gBAAiB7g5B,IACtC,IAAK+pU,GAAkB/rU,KAAK0k5B,aAAa1i5B,IAAK,CAC1ChC,KAAKyk5B,UAAYh7zB,GAAO,GAAIzpF,KAAK0k5B,aAAa1i5B,GAAGw9d,OAAQ,IACzDx/d,KAAK4i5B,aAAe,EAEpB,IADIjz1B,EAAM3vD,KAAKyk5B,UAAUrh5B,OAChBi8B,EAAI,EAAGA,EAAIswB,EAAKtwB,IACrBr/B,KAAKyk5B,UAAUpl3B,GAAG+73B,QAAUp75B,KAAKyk5B,UAAUpl3B,GAAGnlB,EAC1Cla,KAAK2+4B,UAAUC,YAAYn3iB,QAAUznW,KAAK2+4B,UAAUC,YAAYpg4B,MACpExe,KAAKyk5B,UAAUpl3B,GAAGg83B,QAAUr75B,KAAKyk5B,UAAUpl3B,GAAGllB,EAC1Cna,KAAK2+4B,UAAUC,YAAYl3iB,QAAU1nW,KAAK2+4B,UAAUC,YAAYh2vB,MAE5E,CAER,EACA+zvB,EAAYhs4B,UAAUqs5B,iBAAmB,SAAUx/b,EAAWpuV,GAC1D,IAAIn0H,EAAUjb,KAAK4o5B,aACf/+1B,GAAO,EAEPA,EADA7pD,KAAKm35B,0BAA4B,EAC3Bn35B,KAAKm35B,yBAGLn35B,KAAKi35B,0BAEfj35B,KAAKw/d,OAAS/1Y,GAAO,GAAIzpF,KAAKi9d,UAAUpza,GAAK21a,QAC7Cx/d,KAAK4i5B,aAAe,EACpB,IACItjb,EACAC,EACA74H,EACA0B,EACAq2H,EACAC,EANA/ua,EAAM3vD,KAAKw/d,OAAOp8d,OAOtB6X,EAAQuid,UAAYA,GAAwBx9d,KAAKi9d,UAAUpza,GAAK4za,YAChExid,EAAQsod,YAActod,EAAQuid,UAC9BiB,EAAiBC,EAAiB1+d,KAAKq35B,eAAiBjoxB,GACtCpvI,KAAKi9d,UAAUpza,GAAKulF,YAC1B,IAARz/E,IACA2va,EAAgBC,EAAgB74H,EAAa0B,EAAWpoW,KAAKw/d,OAAO,GACpEx/d,KAAK6/d,UAAU5kd,EAASqkd,EAAeC,EAAe74H,EAAY0B,EAAUq2H,EAAgBC,IAEhG,IAAK,IAAIr/b,EAAI,EAAGA,EAAIswB,EAAM,EAAGtwB,IACrBr/B,KAAKw/d,OAAOngc,EAAI,IAAMr/B,KAAKw/d,OAAOngc,EAAI,IAAMr/B,KAAKw/d,OAAOngc,EAAI,KAC5Digc,EAAiBt/d,KAAKi85B,uBAAuBj85B,KAAKw/d,OAAOngc,EAAI,GAAIr/B,KAAKw/d,OAAOngc,EAAI,GAAIr/B,KAAKw/d,OAAOngc,EAAI,IAAKkgc,cAC1GA,EAAiBv/d,KAAKi85B,uBAAuBj85B,KAAKw/d,OAAOngc,EAAI,GAAIr/B,KAAKw/d,OAAOngc,EAAI,GAAIr/B,KAAKw/d,OAAOngc,EAAI,IAAKigc,cAC1G54H,EAAa1mW,KAAKw/d,OAAOngc,EAAI,GAC7B+oU,EAAWpoW,KAAKw/d,OAAOngc,EAAI,GAC3Br/B,KAAK6/d,UAAU5kd,EAASqkd,EAAeC,EAAe74H,EAAY0B,EAAUq2H,EAAgBC,IAGpGzjd,EAAQ2jd,YAER,IAAIt4H,EAAQtmW,KAAKi/5B,8BAA8Bp12B,GAC3Cq12B,EAAgBjk5B,EAAQg9vB,UAC5Bh9vB,EAAQg9vB,UAAY,EACpBh9vB,EAAQsod,YAAcvje,KAAKil5B,UAAUjl5B,KAAKkta,OAAqB,aAC/DjyZ,EAAQgmd,YACRhmd,EAAQy5Q,KAAK4xE,EAAMmB,OAAQnB,EAAMoB,OAAQpB,EAAM9nV,MAAO8nV,EAAM19M,QAC5D3tI,EAAQs/uB,SACRt/uB,EAAQ2jd,YACR3jd,EAAQg9vB,UAAYinJ,CACxB,EACAviB,EAAYhs4B,UAAUwu5B,qBAAuB,WAEzC,IAAK,IAAIn95B,EAAI,EAAGA,EAAIhC,KAAK6i5B,gBAAiB7g5B,IACtC,GAAIhC,KAAKi9d,UAAUj7d,GAAGo95B,YAAcp/5B,KAAKm+4B,cAAe,CACpDn+4B,KAAKw/d,OAAS/1Y,GAAO,GAAIzpF,KAAKi9d,UAAUj7d,GAAGw9d,OAAQ,IACnDx/d,KAAK4i5B,aAAe,EAEpB,IADA,IAAIjz1B,EAAM3vD,KAAKw/d,OAAOp8d,OACbi8B,EAAI,EAAGA,EAAIswB,EAAKtwB,IACjBr/B,KAAKw/d,OAAOngc,GAAGnlB,GAAKla,KAAKih5B,SAAYjh5B,KAAKm05B,UAAY,EACtDn05B,KAAKw/d,OAAOngc,GAAGnlB,EAAKla,KAAKih5B,SAAWjh5B,KAAKm05B,WAAcn05B,KAAKw/d,OAAOngc,GAAGnlB,EAAIla,KAAKih5B,UAE1Ejh5B,KAAKw/d,OAAOngc,GAAGnlB,GAAKla,KAAKih5B,SAAYjh5B,KAAKm05B,UAAY,IAC3Dn05B,KAAKw/d,OAAOngc,GAAGnlB,EAAIla,KAAKih5B,UAAYjh5B,KAAKih5B,SAAWjh5B,KAAKm05B,UAAYn05B,KAAKw/d,OAAOngc,GAAGnlB,IAExFla,KAAKw/d,OAAOngc,GAAG+73B,QAAUp75B,KAAKw/d,OAAOngc,GAAGnlB,EAAIla,KAAKih5B,UAAYjh5B,KAAKm05B,UAClEn05B,KAAKw/d,OAAOngc,GAAGg83B,QAAUr75B,KAAKw/d,OAAOngc,GAAGllB,EAAIna,KAAKkh5B,SAAWlh5B,KAAKo05B,WAErEp05B,KAAKi9d,UAAUj7d,GAAGo95B,UAAYp/5B,KAAKm+4B,aACvC,CAGJ,IAASn84B,EAAI,EAAGA,EAAIhC,KAAK6i5B,gBAAiB7g5B,IACtC,IAAK+pU,GAAkB/rU,KAAK0k5B,aAAa1i5B,KACjChC,KAAK0k5B,aAAa1i5B,GAAGo95B,YAAcp/5B,KAAKm+4B,cAAe,CACvDn+4B,KAAKyk5B,UAAYh7zB,GAAO,GAAIzpF,KAAK0k5B,aAAa1i5B,GAAGw9d,OAAQ,IACzDx/d,KAAK4i5B,aAAe,EAEpB,IADIjz1B,EAAM3vD,KAAKyk5B,UAAUrh5B,OAChBi8B,EAAI,EAAGA,EAAIswB,EAAKtwB,IACjBr/B,KAAKyk5B,UAAUpl3B,GAAGnlB,GAAKla,KAAKih5B,SAAYjh5B,KAAKm05B,UAAY,EACzDn05B,KAAKyk5B,UAAUpl3B,GAAGnlB,EAAKla,KAAKih5B,SAAWjh5B,KAAKm05B,WAAcn05B,KAAKyk5B,UAAUpl3B,GAAGnlB,EACxEla,KAAKih5B,UAEJjh5B,KAAKyk5B,UAAUpl3B,GAAGnlB,GAAKla,KAAKih5B,SAAYjh5B,KAAKm05B,UAAY,IAC9Dn05B,KAAKyk5B,UAAUpl3B,GAAGnlB,EAAIla,KAAKih5B,UAAYjh5B,KAAKih5B,SAAWjh5B,KAAKm05B,UACxDn05B,KAAKyk5B,UAAUpl3B,GAAGnlB,IAE1Bla,KAAKyk5B,UAAUpl3B,GAAG+73B,QAAUp75B,KAAKyk5B,UAAUpl3B,GAAGnlB,EAAIla,KAAKih5B,UAAYjh5B,KAAKm05B,UACxEn05B,KAAKyk5B,UAAUpl3B,GAAGg83B,QAAUr75B,KAAKyk5B,UAAUpl3B,GAAGllB,EAAIna,KAAKkh5B,SAAWlh5B,KAAKo05B,UAE/E,CAGRp05B,KAAKg45B,sCACT,EACArb,EAAYhs4B,UAAU0u5B,mBAAqB,WAEvC,IAAK,IAAIr95B,EAAI,EAAGA,EAAIhC,KAAK6i5B,gBAAiB7g5B,IACtC,GAAIhC,KAAKi9d,UAAUj7d,GAAGo95B,YAAcp/5B,KAAKm+4B,cAAe,CACpDn+4B,KAAKw/d,OAAS/1Y,GAAO,GAAIzpF,KAAKi9d,UAAUj7d,GAAGw9d,OAAQ,IACnDx/d,KAAK4i5B,aAAe,EAEpB,IADA,IAAIjz1B,EAAM3vD,KAAKw/d,OAAOp8d,OACbi8B,EAAI,EAAGA,EAAIswB,EAAKtwB,IACjBr/B,KAAKw/d,OAAOngc,GAAGllB,GAAKna,KAAKkh5B,QAAWlh5B,KAAKo05B,WAAa,EACtDp05B,KAAKw/d,OAAOngc,GAAGllB,EAAKna,KAAKkh5B,QAAUlh5B,KAAKo05B,YAAep05B,KAAKw/d,OAAOngc,GAAGllB,EAAIna,KAAKkh5B,SAE1Elh5B,KAAKw/d,OAAOngc,GAAGllB,GAAKna,KAAKkh5B,QAAWlh5B,KAAKo05B,WAAa,IAC3Dp05B,KAAKw/d,OAAOngc,GAAGllB,EAAIna,KAAKkh5B,SAAWlh5B,KAAKkh5B,QAAUlh5B,KAAKo05B,WAAap05B,KAAKw/d,OAAOngc,GAAGllB,IAEvFna,KAAKw/d,OAAOngc,GAAG+73B,QAAUp75B,KAAKw/d,OAAOngc,GAAGnlB,EAAIla,KAAKih5B,UAAYjh5B,KAAKm05B,UAClEn05B,KAAKw/d,OAAOngc,GAAGg83B,QAAUr75B,KAAKw/d,OAAOngc,GAAGllB,EAAIna,KAAKkh5B,SAAWlh5B,KAAKo05B,WAErEp05B,KAAKi9d,UAAUj7d,GAAGo95B,UAAYp/5B,KAAKm+4B,aACvC,CAGJ,IAASn84B,EAAI,EAAGA,EAAIhC,KAAK6i5B,gBAAiB7g5B,IACtC,IAAK+pU,GAAkB/rU,KAAK0k5B,aAAa1i5B,KACjChC,KAAK0k5B,aAAa1i5B,GAAGo95B,YAAcp/5B,KAAKm+4B,cAAe,CACvDn+4B,KAAKyk5B,UAAYh7zB,GAAO,GAAIzpF,KAAK0k5B,aAAa1i5B,GAAGw9d,OAAQ,IACzDx/d,KAAK4i5B,aAAe,EAEpB,IADIjz1B,EAAM3vD,KAAKyk5B,UAAUrh5B,OAChBi8B,EAAI,EAAGA,EAAIswB,EAAKtwB,IACjBr/B,KAAKyk5B,UAAUpl3B,GAAGllB,GAAKna,KAAKkh5B,QAAWlh5B,KAAKo05B,WAAa,EACzDp05B,KAAKyk5B,UAAUpl3B,GAAGllB,EAAKna,KAAKkh5B,QAAUlh5B,KAAKo05B,YAAep05B,KAAKyk5B,UAAUpl3B,GAAGllB,EACxEna,KAAKkh5B,SAEJlh5B,KAAKyk5B,UAAUpl3B,GAAGllB,GAAKna,KAAKkh5B,QAAWlh5B,KAAKo05B,WAAa,IAC9Dp05B,KAAKyk5B,UAAUpl3B,GAAGllB,EAAIna,KAAKkh5B,SAAWlh5B,KAAKkh5B,QAAUlh5B,KAAKo05B,WACtDp05B,KAAKyk5B,UAAUpl3B,GAAGllB,IAE1Bna,KAAKyk5B,UAAUpl3B,GAAG+73B,QAAUp75B,KAAKyk5B,UAAUpl3B,GAAGnlB,EAAIla,KAAKih5B,UAAYjh5B,KAAKm05B,UACxEn05B,KAAKyk5B,UAAUpl3B,GAAGg83B,QAAUr75B,KAAKyk5B,UAAUpl3B,GAAGllB,EAAIna,KAAKkh5B,SAAWlh5B,KAAKo05B,UAE/E,CAGRp05B,KAAKg45B,sCACT,EACArb,EAAYhs4B,UAAU2u5B,oBAAsB,SAAU195B,GAClD,GAA4B,eAAxBA,EAAM8e,cACN1gB,KAAKm/5B,4BAEJ,GAA4B,aAAxBv95B,EAAM8e,cACX1gB,KAAKq/5B,yBAEJ,CACDr/5B,KAAKm/5B,uBACL,IAAK,IAAIhz5B,EAAI,EAAGA,EAAInM,KAAK6i5B,gBAAiB124B,IACtCnM,KAAKi9d,UAAU9wd,GAAGiz5B,UAAY,GAElCp/5B,KAAKq/5B,oBACT,CACJ,EACA1iB,EAAYhs4B,UAAU4u5B,uBAAyB,WAE3C,IAAK,IAAIv95B,EAAI,EAAGA,EAAIhC,KAAK6i5B,gBAAiB7g5B,IAAK,CAC3ChC,KAAKw/d,OAAS/1Y,GAAO,GAAIzpF,KAAKi9d,UAAUj7d,GAAGw9d,OAAQ,IACnDx/d,KAAK4i5B,aAAe,EAEpB,IADA,IAAIjz1B,EAAM3vD,KAAKw/d,OAAOp8d,OACbi8B,EAAI,EAAGA,EAAIswB,EAAKtwB,IACrBr/B,KAAKw/d,OAAOngc,GAAGllB,EAAIna,KAAKkh5B,QAAWlh5B,KAAKo05B,WAAap05B,KAAKw/d,OAAOngc,GAAG+73B,OACpEp75B,KAAKw/d,OAAOngc,GAAGnlB,EAAKla,KAAKih5B,SAAWjh5B,KAAKm05B,UAAcn05B,KAAKm05B,UAAYn05B,KAAKw/d,OAAOngc,GAAGg83B,MAE/F,CACA,IAASr55B,EAAI,EAAGA,EAAIhC,KAAK6i5B,gBAAiB7g5B,IAAK,CAC3ChC,KAAKw/d,OAAS/1Y,GAAO,GAAIzpF,KAAKi9d,UAAUj7d,GAAGw9d,OAAQ,IACnDx/d,KAAK4i5B,aAAe,EAEpB,IADIjz1B,EAAM3vD,KAAKw/d,OAAOp8d,OACbi8B,EAAI,EAAGA,EAAIswB,EAAKtwB,IACrBr/B,KAAKw/d,OAAOngc,GAAG+73B,QAAUp75B,KAAKw/d,OAAOngc,GAAGnlB,EAAIla,KAAKih5B,UAAYjh5B,KAAKm05B,UAClEn05B,KAAKw/d,OAAOngc,GAAGg83B,QAAUr75B,KAAKw/d,OAAOngc,GAAGllB,EAAIna,KAAKkh5B,SAAWlh5B,KAAKo05B,UAEzE,CAEA,IAASpy5B,EAAI,EAAGA,EAAIhC,KAAK6i5B,gBAAiB7g5B,IACtC,IAAK+pU,GAAkB/rU,KAAK0k5B,aAAa1i5B,IAAK,CAC1ChC,KAAKyk5B,UAAYh7zB,GAAO,GAAIzpF,KAAK0k5B,aAAa1i5B,GAAGw9d,OAAQ,IACzDx/d,KAAK4i5B,aAAe,EAEpB,IADIjz1B,EAAM3vD,KAAKyk5B,UAAUrh5B,OAChBi8B,EAAI,EAAGA,EAAIswB,EAAKtwB,IACrBr/B,KAAKyk5B,UAAUpl3B,GAAGllB,EAAIna,KAAKkh5B,QAAWlh5B,KAAKo05B,WAAap05B,KAAKyk5B,UAAUpl3B,GAAG+73B,OAC1Ep75B,KAAKyk5B,UAAUpl3B,GAAGnlB,EAAKla,KAAKih5B,SAAWjh5B,KAAKm05B,UAAcn05B,KAAKm05B,UAC3Dn05B,KAAKyk5B,UAAUpl3B,GAAGg83B,MAE9B,CAEJ,IAASr55B,EAAI,EAAGA,EAAIhC,KAAK6i5B,gBAAiB7g5B,IACtC,IAAK+pU,GAAkB/rU,KAAK0k5B,aAAa1i5B,IAAK,CAC1ChC,KAAKyk5B,UAAYh7zB,GAAO,GAAIzpF,KAAK0k5B,aAAa1i5B,GAAGw9d,OAAQ,IACzDx/d,KAAK4i5B,aAAe,EAEpB,IADIjz1B,EAAM3vD,KAAKyk5B,UAAUrh5B,OAChBi8B,EAAI,EAAGA,EAAIswB,EAAKtwB,IACrBr/B,KAAKyk5B,UAAUpl3B,GAAG+73B,QAAUp75B,KAAKyk5B,UAAUpl3B,GAAGnlB,EAAIla,KAAKih5B,UAAYjh5B,KAAKm05B,UACxEn05B,KAAKyk5B,UAAUpl3B,GAAGg83B,QAAUr75B,KAAKyk5B,UAAUpl3B,GAAGllB,EAAIna,KAAKkh5B,SAAWlh5B,KAAKo05B,UAE/E,CAEJp05B,KAAKg45B,sCACT,EACArb,EAAYhs4B,UAAUqn5B,qCAAuC,WACzD,IAAK,IAAIh25B,EAAI,EAAGA,EAAIhC,KAAK6i5B,gBAAiB7g5B,IACtC,IAAK+pU,GAAkB/rU,KAAK0k5B,aAAa1i5B,IAAK,CAC1ChC,KAAKyk5B,UAAYh7zB,GAAO,GAAIzpF,KAAK0k5B,aAAa1i5B,GAAGw9d,OAAQ,IACzDx/d,KAAK4i5B,aAAe,EAEpB,IADA,IAAIjz1B,EAAM3vD,KAAKyk5B,UAAUrh5B,OAChBi8B,EAAI,EAAGA,EAAIswB,EAAKtwB,IACrBr/B,KAAKyk5B,UAAUpl3B,GAAGnlB,EAAIla,KAAKw/5B,MAAMx/5B,KAAKyk5B,UAAUpl3B,GAAG+73B,QACnDp75B,KAAKyk5B,UAAUpl3B,GAAGllB,EAAIna,KAAKy/5B,MAAMz/5B,KAAKyk5B,UAAUpl3B,GAAGg83B,OAE3D,CAER,EACA1e,EAAYhs4B,UAAUgq5B,qBAAuB,SAAU+E,GAEnD,IAAK,IAAI195B,EAAI,EAAGA,EAAIhC,KAAK6i5B,gBAAiB7g5B,IAAK,CAC3ChC,KAAKw/d,OAAS/1Y,GAAO,GAAIzpF,KAAKi9d,UAAUj7d,GAAGw9d,OAAQ,IACnDx/d,KAAK4i5B,aAAe,EAEpB,IADA,IAAIjz1B,EAAM3vD,KAAKw/d,OAAOp8d,OACbi8B,EAAI,EAAGA,EAAIswB,EAAKtwB,IACrBr/B,KAAKw/d,OAAOngc,GAAGnlB,EAAIla,KAAKw/5B,MAAMx/5B,KAAKw/d,OAAOngc,GAAG+73B,QAC7Cp75B,KAAKw/d,OAAOngc,GAAGllB,EAAIna,KAAKy/5B,MAAMz/5B,KAAKw/d,OAAOngc,GAAGg83B,OAErD,CAEAr75B,KAAKg45B,uCACDjslB,GAAkB2zlB,IAClB1/5B,KAAK+35B,eAAe/35B,KAAK4p5B,aAEjC,EACAjN,EAAYhs4B,UAAU6u5B,MAAQ,SAAUtl5B,GACpC,OAAQA,EAAIla,KAAKm05B,UAAan05B,KAAKih5B,QACvC,EACAtE,EAAYhs4B,UAAU8u5B,MAAQ,SAAUtl5B,GACpC,OAAQA,EAAIna,KAAKo05B,WAAcp05B,KAAKkh5B,OACxC,EACAvE,EAAYhs4B,UAAU+p5B,YAAc,SAAUiF,GAC1C,IAAK,IAAIxz5B,EAAI,EAAGA,EAAInM,KAAKu94B,QAAQn64B,OAAQ+I,IAcrC,GAbAnM,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYn3iB,OAAUznW,KAAKu94B,QAAQpx4B,GAAGgv5B,WAAW1zjB,OAASznW,KAAKm05B,UAAan05B,KAAKih5B,SACjGjh5B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYl3iB,OAAU1nW,KAAKu94B,QAAQpx4B,GAAGgv5B,WAAWzzjB,OAAS1nW,KAAKo05B,WAAcp05B,KAAKkh5B,QAClGlh5B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYzB,KAAQn94B,KAAKu94B,QAAQpx4B,GAAGgv5B,WAAWhe,KAAOn94B,KAAKm05B,UAAan05B,KAAKih5B,SAC7Fjh5B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYxB,KAAQp94B,KAAKu94B,QAAQpx4B,GAAGgv5B,WAAW/d,KAAOp94B,KAAKo05B,WAAcp05B,KAAKkh5B,QAC9Flh5B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYpg4B,MAAQxe,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYzB,KAC5Dn94B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYn3iB,OAChCznW,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYh2vB,OAAS5oJ,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYxB,KAC7Dp94B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYl3iB,OACF,SAA1B1nW,KAAKu94B,QAAQpx4B,GAAGq/H,OAChBxrI,KAAK4/5B,eAAe5/5B,KAAKu94B,QAAQpx4B,IAErCnM,KAAKk05B,mBAAmBl05B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAa5+4B,KAAKu94B,QAAQpx4B,IAClEnM,KAAKs25B,qBAAqBt25B,KAAKu94B,QAAQpx4B,IACnC4/T,GAAkB4zlB,GAAe,CACjC,IAAIjz0B,EAAO1sF,KAAK4p5B,aAAaxj5B,OAC7BpG,KAAK4p5B,aAAaxj5B,OAAS,OAC3BpG,KAAKmZ,MAAMnZ,KAAKu94B,QAAQpx4B,GAAGq/H,MAAOxrI,KAAKu94B,QAAQpx4B,IAC/CnM,KAAK6v5B,mBACL7v5B,KAAK4p5B,aAAaxj5B,OAASsmF,CAC/B,CAER,EACAiwzB,EAAYhs4B,UAAUkv5B,UAAY,WAC9B,IAAIC,EACAC,EASJ,OARoB,IAAhB//5B,KAAKw0vB,QAAgBx0vB,KAAKw0vB,OAAS,MAAQ,GAC3CsrK,EAAa9/5B,KAAK2r5B,QAAQnt4B,MAAQxe,KAAKm05B,UACvC4L,EAAc//5B,KAAK2r5B,QAAQ/iwB,OAAS5oJ,KAAKo05B,aAGzC0L,EAAa9/5B,KAAK2r5B,QAAQ/iwB,OAAS5oJ,KAAKm05B,UACxC4L,EAAc//5B,KAAK2r5B,QAAQnt4B,MAAQxe,KAAKo05B,YAErC,CAAE514B,MAAOsh5B,EAAYl3wB,OAAQm3wB,EACxC,EACApjB,EAAYhs4B,UAAUqv5B,oBAAsB,SAAUC,EAAWx4jB,EAAQC,EAAQlpV,EAAOoqI,GACpF5oJ,KAAKi/4B,YAAYM,cAAe,EAChCv/4B,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,QAC3E5oJ,KAAKi/4B,YAAYzzwB,MAAQxrI,KAAK2+4B,UAAUnzwB,MAAQy0xB,EAAUv/4B,cACrDqrT,GAAkB07B,IAAY17B,GAAkB27B,IAAY37B,GAAkBvtT,IAAWutT,GAAkBnjL,IASpF,IAApB5oJ,KAAK+g5B,WACD/g5B,KAAKih5B,UAAY,GAAKjh5B,KAAKkh5B,SAAW,GACtClh5B,KAAK2+4B,UAAUC,YAAYn3iB,OAASznW,KAAKih5B,SACzCjh5B,KAAK2+4B,UAAUC,YAAYl3iB,OAAS1nW,KAAKkh5B,QACzClh5B,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAKih5B,SAAWjh5B,KAAKm05B,UACvDn05B,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAKkh5B,QAAUlh5B,KAAKo05B,YAEjDp05B,KAAKih5B,UAAY,GACtBjh5B,KAAK2+4B,UAAUC,YAAYn3iB,OAASznW,KAAKih5B,SACzCjh5B,KAAK2+4B,UAAUC,YAAYl3iB,OAAS,IACpC1nW,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAKih5B,SAAWjh5B,KAAKm05B,UACvDn05B,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAK6q5B,YAAYjiwB,OAAS,IAEvD5oJ,KAAKkh5B,SAAW,GACrBlh5B,KAAK2+4B,UAAUC,YAAYn3iB,OAAS,IACpCznW,KAAK2+4B,UAAUC,YAAYl3iB,OAAS1nW,KAAKkh5B,QACzClh5B,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAK6q5B,YAAYrs4B,MAAQ,GAC3Dxe,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAKkh5B,QAAUlh5B,KAAKo05B,aAItDp05B,KAAK2+4B,UAAUC,YAAYn3iB,OAAS,IACpCznW,KAAK2+4B,UAAUC,YAAYl3iB,OAAS,IACpC1nW,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAK6q5B,YAAYrs4B,MAAQ,GAC3Dxe,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAK6q5B,YAAYjiwB,OAAS,KAI5D5oJ,KAAKih5B,SAAW,EAChBjh5B,KAAK2+4B,UAAUC,YAAYn3iB,OAASznW,KAAKih5B,SAGzCjh5B,KAAK2+4B,UAAUC,YAAYn3iB,OAAS,IAEpCznW,KAAKkh5B,QAAU,EACflh5B,KAAK2+4B,UAAUC,YAAYl3iB,OAAS1nW,KAAKkh5B,QAGzClh5B,KAAK2+4B,UAAUC,YAAYl3iB,OAAS,IAEpC1nW,KAAKih5B,SAAWjh5B,KAAKm05B,UAAY,GAAKn05B,KAAK6q5B,YAAYrs4B,MACvDxe,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAKih5B,SAAWjh5B,KAAKm05B,UAAY,GAGnEn05B,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAK6q5B,YAAYrs4B,MAAQ,GAE3Dxe,KAAKkh5B,QAAUlh5B,KAAKo05B,WAAa,GAAKp05B,KAAK6q5B,YAAYjiwB,OACvD5oJ,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAKkh5B,QAAUlh5B,KAAKo05B,WAAa,GAGnEp05B,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAK6q5B,YAAYjiwB,OAAS,IAGhE5oJ,KAAK2+4B,UAAUC,YAAYn3iB,OAASznW,KAAKih5B,WACzCjh5B,KAAK2+4B,UAAUC,YAAYn3iB,OAASznW,KAAKih5B,UAEzCjh5B,KAAK2+4B,UAAUC,YAAYl3iB,OAAS1nW,KAAKkh5B,UACzClh5B,KAAK2+4B,UAAUC,YAAYl3iB,OAAS1nW,KAAKkh5B,SAEzClh5B,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAKih5B,SAAWjh5B,KAAKm05B,YACvDn05B,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAKih5B,SAAWjh5B,KAAKm05B,WAEvDn05B,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAKkh5B,QAAUlh5B,KAAKo05B,aACtDp05B,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAKkh5B,QAAUlh5B,KAAKo05B,YAEtDp05B,KAAK2+4B,UAAUC,YAAYn3iB,SAAWznW,KAAKih5B,UAAYjh5B,KAAKih5B,SAAWjh5B,KAAKm05B,UAAYn05B,KAAK6q5B,YAAY9lpB,cACzG/kQ,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAK6q5B,YAAY9lpB,YAAc,IAEjE/kQ,KAAK2+4B,UAAUC,YAAYl3iB,SAAW1nW,KAAKkh5B,SAAWlh5B,KAAKkh5B,QAAUlh5B,KAAKo05B,WAAap05B,KAAK6q5B,YAAY3lpB,eACxGllQ,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAK6q5B,YAAY3lpB,aAAe,IAEtEllQ,KAAK2+4B,UAAUC,YAAYpg4B,MAAQxe,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAK2+4B,UAAUC,YAAYn3iB,OAChGznW,KAAK2+4B,UAAUC,YAAYh2vB,OAAS5oJ,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAK2+4B,UAAUC,YAAYl3iB,OACjG1nW,KAAKk05B,mBAAmBl05B,KAAK2+4B,UAAUC,YAAa5+4B,KAAK2+4B,aAjFzD3+4B,KAAK2+4B,UAAUC,YAAYn3iB,OAASA,EACpCznW,KAAK2+4B,UAAUC,YAAYl3iB,OAASA,EACpC1nW,KAAK2+4B,UAAUC,YAAYzB,KAAO11iB,EAASjpV,EAC3Cxe,KAAK2+4B,UAAUC,YAAYxB,KAAO11iB,EAAS9+M,EAC3C5oJ,KAAK2+4B,UAAUC,YAAYpg4B,MAAQA,EACnCxe,KAAK2+4B,UAAUC,YAAYh2vB,OAASA,GA8ExC5oJ,KAAKkg6B,wBACLlg6B,KAAKu25B,WAAW,YAAav25B,KAAK2+4B,UAAW,KAAM,MAAM,EAC7D,EACAhC,EAAYhs4B,UAAUgr5B,iBAAmB,SAAU1g5B,GAC/C,IAAIgm4B,EAAWjh5B,KAAKih5B,SAChBC,EAAUlh5B,KAAKkh5B,QAKnB,GAJ2B,KAAvBlh5B,KAAKm+4B,gBACLn+4B,KAAKih5B,SAAWjh5B,KAAK6q5B,YAAY9lpB,aAAe/kQ,KAAKm05B,UAAYn05B,KAAKih5B,UACtEjh5B,KAAKkh5B,QAAUlh5B,KAAK6q5B,YAAY3lpB,cAAgBllQ,KAAKo05B,WAAap05B,KAAKkh5B,UAEvElh5B,KAAKm05B,UAAYn05B,KAAK6q5B,YAAYrs4B,MAAO,CACzC,IAAImlH,EAAO3jI,KAAKih5B,SAAW,EAAIjh5B,KAAKih5B,SAAW,EAC/Chm4B,EAAQ8jd,UAAU,EAAG,EAAGp7V,EAAM3jI,KAAK6q5B,YAAYjiwB,QAC/C3tI,EAAQ8jd,UAAU/+d,KAAKih5B,SAAWjh5B,KAAKm05B,UAAW,EAAGxwxB,EAAM3jI,KAAK6q5B,YAAYjiwB,OAChF,CACA,GAAI5oJ,KAAKo05B,WAAap05B,KAAK6q5B,YAAYjiwB,OAAQ,CAC3C,IAAI+vX,EAAQ34gB,KAAKkh5B,QAAU,EAAIlh5B,KAAKkh5B,QAAU,EAC9Cjm4B,EAAQ8jd,UAAU,EAAG,EAAG/+d,KAAK6q5B,YAAYrs4B,MAAOm6f,GAChD19f,EAAQ8jd,UAAU,EAAG/+d,KAAKkh5B,QAAUlh5B,KAAKo05B,WAAYp05B,KAAK6q5B,YAAYrs4B,MAAOm6f,EACjF,CAC2B,KAAvB34gB,KAAKm+4B,gBACLn+4B,KAAKih5B,SAAWA,EAChBjh5B,KAAKkh5B,QAAUA,EAEvB,EACAvE,EAAYhs4B,UAAU8o5B,WAAa,SAAUx+4B,EAAS0k4B,EAAQxm0B,GACtDA,GAAiC,KAAvBn5E,KAAKm+4B,eACfn+4B,KAAKq+5B,aAAapj5B,EAASjb,KAAKm+4B,eAEpClj4B,EAAQkod,yBAA2B,iBACnClod,EAAQgmd,YACJl1J,GAAkB4zkB,GAClB1k4B,EAAQkmd,IAAInhe,KAAKih5B,SAAYjh5B,KAAKm05B,UAAY,EAAIn05B,KAAKkh5B,QAAWlh5B,KAAKo05B,WAAa,EAAIp05B,KAAKm05B,UAAY,EAAG,EAAa,EAAVvw5B,KAAKita,IAGpH51Z,EAAQkmd,IAAInhe,KAAKm05B,UAAY,EAAGn05B,KAAKo05B,WAAa,EAAGp05B,KAAKm05B,UAAY,EAAG,EAAa,EAAVvw5B,KAAKita,IAErF51Z,EAAQ2jd,YACR3jd,EAAQurE,OACRvrE,EAAQi6iB,UACRj6iB,EAAQkod,yBAA2B,cACnCnje,KAAKi/4B,YAAYE,YAAcn/4B,KAAK6h5B,cAAe,EAC/C1o0B,GAAiC,KAAvBn5E,KAAKm+4B,eACfn+4B,KAAKq+5B,aAAapj5B,EAASjb,KAAKm+4B,cAExC,EACAxB,EAAYhs4B,UAAUwv5B,cAAgB,WAClCng6B,KAAK0j5B,iBAAmB,GACxB,IAAI7y4B,EAAM7Q,KAAKix5B,gBACfjx5B,KAAKmj5B,QAAU15zB,GAAO,CAAC,EAAG54E,EAAK,CAAC,GAAG,EACvC,EACA8r4B,EAAYhs4B,UAAUkn5B,cAAgB,SAAUhn5B,GAC5C,IAAIuv5B,IAAQvv5B,EACZA,EAAMA,GAAY7Q,KAAKmj5B,QACvBnj5B,KAAKui5B,eAAiB1x4B,EAAIuy4B,SAC1Bpj5B,KAAKwi5B,kBAAoB3x4B,EAAIwy4B,YACxB+c,IAIIr0lB,GAAkBl7T,EAAI8t4B,UAAUnzwB,QAAgD,SAAtC36H,EAAI8t4B,UAAUnzwB,MAAM74G,MAAM,KAAK,IAI1E3yB,KAAK+g5B,WAAalw4B,EAAIwy4B,YAP1Brj5B,KAAK+g5B,WAAalw4B,EAAIuy4B,SAU1Bpj5B,KAAKisV,cAAc,CAAEm9jB,aAAc,CAAErI,WAAYlw4B,EAAIkw4B,cAAgB,GACrE/g5B,KAAKyj5B,kBAAoB5y4B,EAAI4y4B,kBAC7Bzj5B,KAAKqi5B,iBAAmB54zB,GAAO,CAAC,EAAG54E,EAAIwx4B,iBAAkB,CAAC,GAAG,GAC7Dri5B,KAAKoi5B,uBAAyB34zB,GAAO,CAAC,EAAG54E,EAAIux4B,uBAAwB,CAAC,GAAG,GACzEpi5B,KAAKmi5B,yBAA2B14zB,GAAO,CAAC,EAAG54E,EAAIsx4B,yBAA0B,CAAC,GAAG,GAC7Eni5B,KAAKsj5B,iBAAmB75zB,GAAO,CAAC,EAAG54E,EAAIyy4B,iBAAkB,CAAC,GAAG,GAC7Dtj5B,KAAK2h5B,eAAiBl4zB,GAAO,GAAI54E,EAAI8w4B,eAAgB,IAAI,GACzD3h5B,KAAKw0vB,OAAS3jvB,EAAI2jvB,OAClBx0vB,KAAKm+4B,cAAgBtt4B,EAAIst4B,cACzBn+4B,KAAKih5B,SAAWpw4B,EAAI0y4B,WAAW97iB,OAC/BznW,KAAKkh5B,QAAUrw4B,EAAI0y4B,WAAW77iB,OAC9B1nW,KAAKm05B,UAAYtj5B,EAAI0y4B,WAAW/k4B,MAChCxe,KAAKo05B,WAAavj5B,EAAI0y4B,WAAW36vB,OACjC5oJ,KAAKmh5B,QAAUtw4B,EAAI2y4B,UAAU/7iB,OAC7BznW,KAAKoh5B,OAASvw4B,EAAI2y4B,UAAU97iB,OAC5B1nW,KAAKu55B,SAAW1o5B,EAAI2y4B,UAAUhl4B,MAC9Bxe,KAAKw55B,UAAY3o5B,EAAI2y4B,UAAU56vB,OAC/B5oJ,KAAK4p5B,aAAaxj5B,OAASyK,EAAIzK,OAC3BpG,KAAK4p5B,aAAaxj5B,OAAOusB,MAAM,KAAKvvB,OAAS,IAC8B,MAAvEpD,KAAK4p5B,aAAaxj5B,OAAOusB,MAAM,KAAK,GAAGA,MAAM,KAAK,GAAGA,MAAM,KAAK,GAChE3yB,KAAKyi5B,sBAAuB,EAG5Bzi5B,KAAKyi5B,sBAAuB,GAGpC,IACIgO,EADA5O,EAAe7h5B,KAAK6h5B,aAEpB91kB,GAAkB/rU,KAAKyw5B,oBACvBA,EAAqB,MAGrBA,EAAqBhn0B,GAAO,CAAC,EAAGzpF,KAAKyw5B,mBAAoB,CAAC,GAAG,GAC7Dzw5B,KAAKyw5B,mBAAqB,MAE9Bzw5B,KAAK6h5B,cAAe,EACpB7h5B,KAAKqg6B,uBAAuBxv5B,GAAK,GACb,IAAhB7Q,KAAKw0vB,SACLx0vB,KAAKy75B,YACLz75B,KAAKih5B,SAAWpw4B,EAAI0y4B,WAAW97iB,OAC/BznW,KAAKkh5B,QAAUrw4B,EAAI0y4B,WAAW77iB,OAC9B1nW,KAAKoi5B,uBAAyB34zB,GAAO,CAAC,EAAG54E,EAAIux4B,uBAAwB,CAAC,GAAG,GACzEpi5B,KAAKmi5B,yBAA2B14zB,GAAO,CAAC,EAAG54E,EAAIsx4B,yBAA0B,CAAC,GAAG,IAEjFni5B,KAAK2+4B,UAAYl1zB,GAAO,CAAC,EAAG54E,EAAI8t4B,UAAW,CAAC,GAAG,GAC/C3+4B,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,QAClC,IAArC5oJ,KAAK2+4B,UAAUC,YAAYpg4B,OAAqD,IAAtCxe,KAAK2+4B,UAAUC,YAAYh2vB,QACrE5oJ,KAAKu25B,WAAW,YAAa,KAAM,KAAM,MAAM,GAEnD,IAAI5X,EAAYl1zB,GAAO,CAAC,EAAG54E,EAAI8t4B,UAAW,CAAC,GAAG,GAC1C2hB,GAAoB,EACxBtg6B,KAAK0j5B,iBAAmB1j5B,KAAKug6B,oBAAoBvg6B,KAAK0j5B,kBACtD,IAAIA,EAAmBj6zB,GAAO,GAAIzpF,KAAK0j5B,iBAAkB,IAAI,GAC7D,IAAK0c,GAAS1c,EAAiBtg5B,OAAS,EAAG,CACvCk95B,GAAoB,EACpB,IAAK,IAAIn05B,EAAI,EAAGA,EAAIu34B,EAAiBtg5B,OAAQ+I,IACrCnM,KAAKw0vB,OAAS,KAAO,GAAKx0vB,KAAKw0vB,OAAS,MAAQ,GACvB,mBAAxBkvJ,EAAiBv34B,IAAmD,iBAAxBu34B,EAAiBv34B,KAC9DnM,KAAKmk5B,0BAA2B,GAEpCnk5B,KAAKox5B,gBAAgB1N,EAAiBv34B,IACV,mBAAxBu34B,EAAiBv34B,IAAmD,iBAAxBu34B,EAAiBv34B,IAC7B,IAA5Bu34B,EAAiBtg5B,SACjBpD,KAAK2+4B,UAAYl1zB,GAAO,CAAC,EAAGzpF,KAAKmj5B,QAAQxE,UAAW,CAAC,GAAG,GACxD3+4B,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,QAC3E5oJ,KAAKu25B,WAAW,YAAa,KAAM,KAAM,MAAM,IAI3D5X,EAAYl1zB,GAAO,CAAC,EAAGzpF,KAAK2+4B,UAAW,CAAC,GAAG,GAC3C3+4B,KAAKqi5B,iBAAmB,CAAEno4B,EAAG,EAAGC,EAAG,GACnCna,KAAKoi5B,uBAAyB,CAAElo4B,EAAG,EAAGC,EAAG,GACzCna,KAAKmi5B,yBAA2B,CAAEjo4B,EAAG,EAAGC,EAAG,GAC3Cna,KAAK2+4B,UAAYA,EACjB3+4B,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,QAClC,IAArC5oJ,KAAK2+4B,UAAUC,YAAYpg4B,OAAqD,IAAtCxe,KAAK2+4B,UAAUC,YAAYh2vB,QACrE5oJ,KAAKu25B,WAAW,YAAa,KAAM,KAAM,MAAM,GAE/C1l5B,EAAI2jvB,SAAWx0vB,KAAKw0vB,SACpBx0vB,KAAKui5B,eAAiBvi5B,KAAK+g5B,WAAa,GAE5C/g5B,KAAK435B,+BACD535B,KAAKmk5B,2BACLnk5B,KAAKmk5B,0BAA2B,EAExC,CACAnk5B,KAAK0j5B,iBAAmBA,EACnB1j5B,KAAK2j5B,gBAAmB2c,IACzBtg6B,KAAK435B,+BACL535B,KAAK265B,uBACL365B,KAAKih5B,SAAWpw4B,EAAI0y4B,WAAW97iB,OAC/BznW,KAAKkh5B,QAAUrw4B,EAAI0y4B,WAAW77iB,QAElC1nW,KAAK2+4B,UAAYA,EACjB3+4B,KAAK6h5B,aAAeA,EAChB91kB,GAAkB0klB,GAClBzw5B,KAAKyw5B,mBAAqB,KAG1Bzw5B,KAAKyw5B,mBAAqBhn0B,GAAO,CAAC,EAAGgn0B,EAAoB,CAAC,GAAG,EAErE,EACA9T,EAAYhs4B,UAAU0v5B,uBAAyB,SAAUxv5B,EAAKuv5B,GAC1D,IAAI1z0B,EAAO1sF,KAAK4p5B,aAAaxj5B,OAC7BpG,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAK6q5B,YAAYrs4B,MAAOxe,KAAK6q5B,YAAYjiwB,QAC3E5oJ,KAAK4p5B,aAAa7qb,UAAU,EAAG,EAAG/+d,KAAK6q5B,YAAYrs4B,MAAOxe,KAAK6q5B,YAAYjiwB,QAC3E5oJ,KAAKo+5B,0BACDgC,EACApg6B,KAAKs55B,8BAA8B,WAGnCt55B,KAAKw+5B,sBAAsBx+5B,KAAK4p5B,aAAc,WAElD5p5B,KAAKg+5B,4BACLh+5B,KAAKq45B,yBACLr45B,KAAK4p5B,aAAa5qb,UAAUh/d,KAAK2r5B,QAAS3r5B,KAAKmh5B,QAASnh5B,KAAKoh5B,OAAQph5B,KAAKu55B,SAAUv55B,KAAKw55B,UAAWx55B,KAAKih5B,SAAUjh5B,KAAKkh5B,QAASlh5B,KAAKm05B,UAAWn05B,KAAKo05B,YAClJgM,EACApg6B,KAAKs55B,8BAA8B,WAGnCt55B,KAAKw+5B,sBAAsBx+5B,KAAK4p5B,aAAc,WAElD5p5B,KAAKih5B,SAAWjh5B,KAAKmj5B,QAAQI,WAAW97iB,OACxCznW,KAAKkh5B,QAAUlh5B,KAAKmj5B,QAAQI,WAAW77iB,OACvC,IAAIi3iB,EAAYl1zB,GAAO,CAAC,EAAG54E,EAAI8t4B,UAAW,CAAC,GAAG,GAE9C,GADA3+4B,KAAK4p5B,aAAaxj5B,OAAS,OACvBpG,KAAK2j5B,eACL3j5B,KAAK065B,cACL165B,KAAK265B,2BAEJ,CACD365B,KAAKih5B,SAAWpw4B,EAAI0y4B,WAAW97iB,OAC/BznW,KAAKkh5B,QAAUrw4B,EAAI0y4B,WAAW77iB,OAC9B1nW,KAAKm05B,UAAYtj5B,EAAI0y4B,WAAW/k4B,MAChCxe,KAAKo05B,WAAavj5B,EAAI0y4B,WAAW36vB,OACjC5oJ,KAAKmh5B,QAAUtw4B,EAAI2y4B,UAAU/7iB,OAC7BznW,KAAKoh5B,OAASvw4B,EAAI2y4B,UAAU97iB,OAC5B1nW,KAAKu55B,SAAW1o5B,EAAI2y4B,UAAUhl4B,MAC9Bxe,KAAKw55B,UAAY3o5B,EAAI2y4B,UAAU56vB,OAC/B,IAAI26vB,EAAa,CAAE97iB,OAAQznW,KAAKih5B,SAAUv5iB,OAAQ1nW,KAAKkh5B,QAAS1i4B,MAAOxe,KAAKm05B,UAAWvrwB,OAAQ5oJ,KAAKo05B,YACpGp05B,KAAKih5B,SAAWpw4B,EAAI8t4B,UAAUC,YAAYn3iB,OAC1CznW,KAAKkh5B,QAAUrw4B,EAAI8t4B,UAAUC,YAAYl3iB,OACzC1nW,KAAKm05B,UAAYtj5B,EAAI8t4B,UAAUC,YAAYpg4B,MAC3Cxe,KAAKo05B,WAAavj5B,EAAI8t4B,UAAUC,YAAYh2vB,OAC5C5oJ,KAAK065B,cACL165B,KAAK265B,uBACL365B,KAAKih5B,SAAWsC,EAAW97iB,OAC3BznW,KAAKkh5B,QAAUqC,EAAW77iB,OAC1B1nW,KAAKm05B,UAAY5Q,EAAW/k4B,MAC5Bxe,KAAKo05B,WAAa7Q,EAAW36vB,MACjC,CACA5oJ,KAAK2+4B,UAAYA,EACjB3+4B,KAAK4p5B,aAAaxj5B,OAASsmF,CAC/B,EACAiwzB,EAAYhs4B,UAAU+q5B,QAAU,SAAU8E,GAItC,GAHIz0lB,GAAkBy0lB,KAClBxg6B,KAAK+h5B,cAAgB/h5B,KAAKw0vB,QAE1Bzob,GAAkBy0lB,IAAiC,IAAhBxg6B,KAAKw0vB,OACxCx0vB,KAAKmg6B,gBACLng6B,KAAKyg6B,qBAAuB,CAAEh5jB,OAAQznW,KAAKih5B,SAAUv5iB,OAAQ1nW,KAAKkh5B,QAAS1i4B,MAAOxe,KAAKm05B,UAAWvrwB,OAAQ5oJ,KAAKo05B,YAC/Gp05B,KAAK0g6B,kBAEJ,GAAI30lB,GAAkBy0lB,IAAwC,KAAvBxg6B,KAAKm+4B,cAC7Cn+4B,KAAKmg6B,gBACLng6B,KAAKyg6B,qBAAuB,CAAEh5jB,OAAQznW,KAAKih5B,SAAUv5iB,OAAQ1nW,KAAKkh5B,QAAS1i4B,MAAOxe,KAAKm05B,UAAWvrwB,OAAQ5oJ,KAAKo05B,YAC/Gp05B,KAAK2g6B,eAEJ,CACD3g6B,KAAKgh5B,eAAiBhh5B,KAAK+g5B,WAC3B,IAAI6f,EAAQ5g6B,KAAK6/5B,aACb9zlB,GAAkBy0lB,IAAkBA,IACpCxg6B,KAAKmg6B,gBACLng6B,KAAK6g6B,iBACL7g6B,KAAK8g6B,4BACL9g6B,KAAKyg6B,qBAAuB,CAAEh5jB,OAAQznW,KAAKih5B,SAAUv5iB,OAAQ1nW,KAAKkh5B,QAAS1i4B,MAAOxe,KAAKm05B,UAAWvrwB,OAAQ5oJ,KAAKo05B,YAC/Gp05B,KAAKyw5B,mBAAqBhn0B,GAAO,CAAC,EAAGzpF,KAAK2+4B,UAAW,CAAC,GAAG,GACzD3+4B,KAAKqh5B,eAAiB,CAAE55iB,OAAQznW,KAAKih5B,SAAUv5iB,OAAQ1nW,KAAKkh5B,QAAS1i4B,MAAOxe,KAAKm05B,UAAWvrwB,OAAQ5oJ,KAAKo05B,aAE7G,IAAI2M,EAAe/g6B,KAAKgh6B,iBAAiBhh6B,KAAK2+4B,UAAUC,YAAYpg4B,MAChEoi5B,EAAMpi5B,MAAOxe,KAAK2+4B,UAAUC,YAAYh2vB,OAASg4wB,EAAMh4wB,QAC3D5oJ,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,QAC3E5oJ,KAAK4p5B,aAAa7qb,UAAU,EAAG,EAAG/+d,KAAK6q5B,YAAYrs4B,MAAOxe,KAAK6q5B,YAAYjiwB,QAC3E5oJ,KAAKmh5B,QAAWnh5B,KAAK2+4B,UAAUC,YAAYn3iB,OAASm5jB,EAAMpi5B,MAAUxe,KAAKih5B,SAAW2f,EAAMpi5B,MAC1Fxe,KAAKoh5B,OAAUph5B,KAAK2+4B,UAAUC,YAAYl3iB,OAASk5jB,EAAMh4wB,OAAW5oJ,KAAKkh5B,QAAU0f,EAAMh4wB,OACzF5oJ,KAAKu55B,SAAYv55B,KAAK2+4B,UAAUC,YAAYpg4B,MAAQoi5B,EAAMpi5B,MAC1Dxe,KAAKw55B,UAAax55B,KAAK2+4B,UAAUC,YAAYh2vB,OAASg4wB,EAAMh4wB,OAC5D5oJ,KAAKih5B,UAAYjh5B,KAAK6q5B,YAAY9lpB,YAAcg8pB,EAAavi5B,OAAS,EACtExe,KAAKkh5B,SAAWlh5B,KAAK6q5B,YAAY3lpB,aAAe67pB,EAAan4wB,QAAU,EACvE5oJ,KAAKm05B,UAAY4M,EAAavi5B,MAC9Bxe,KAAKo05B,WAAa2M,EAAan4wB,OAC/B,IAAIl8D,EAAO1sF,KAAK4p5B,aAAaxj5B,OAC7BpG,KAAKq45B,yBACLr45B,KAAK4p5B,aAAa5qb,UAAUh/d,KAAK2r5B,QAAS3r5B,KAAKmh5B,QAASnh5B,KAAKoh5B,OAAQph5B,KAAKu55B,SAAUv55B,KAAKw55B,UAAWx55B,KAAKih5B,SAAUjh5B,KAAKkh5B,QAASlh5B,KAAKm05B,UAAWn05B,KAAKo05B,YACtJp05B,KAAK4p5B,aAAaxj5B,OAAS,OAC3B,IAAIu44B,EAAYl1zB,GAAO,CAAC,EAAGzpF,KAAK2+4B,UAAW,CAAC,GAAG,GAC/C3+4B,KAAK665B,cACL765B,KAAK065B,cACL,IAAK,IAAIvu5B,EAAI,EAAGA,EAAInM,KAAKu94B,QAAQn64B,OAAQ+I,IACjCnM,KAAK2+5B,sBAAsB3+5B,KAAKu94B,QAAQpx4B,MACxCnM,KAAKmZ,MAAMnZ,KAAKu94B,QAAQpx4B,GAAGq/H,MAAOxrI,KAAKu94B,QAAQpx4B,IAC/CnM,KAAK6v5B,oBAGb7v5B,KAAK2+4B,UAAYA,EACjB3+4B,KAAKg/5B,uBACLh/5B,KAAK265B,uBACL365B,KAAK275B,iBAAiB375B,KAAK4p5B,cAC3B5p5B,KAAK275B,iBAAiB375B,KAAK4o5B,cACW,gBAAlC5o5B,KAAKyw5B,mBAAmBjlxB,MACxBxrI,KAAKy55B,WAAWz55B,KAAK4p5B,cAGrB5p5B,KAAK6h5B,cAAe,EAExB7h5B,KAAK4p5B,aAAaxj5B,OAASsmF,EAC3B1sF,KAAK6v5B,mBACL7v5B,KAAKi/4B,YAAYM,cAAe,EAChCv/4B,KAAKmv5B,KAAI,GACTnv5B,KAAKwi5B,kBAAoB,CAC7B,CACJ,EACA7F,EAAYhs4B,UAAUmw5B,0BAA4B,WAC9C9g6B,KAAK2+4B,UAAUwc,WAAa,CAAE1zjB,QAAUznW,KAAK2+4B,UAAUC,YAAYn3iB,OAASznW,KAAKih5B,UAAYjh5B,KAAKm05B,UAC9FzsjB,QAAU1nW,KAAK2+4B,UAAUC,YAAYl3iB,OAAS1nW,KAAKkh5B,SAAWlh5B,KAAKo05B,WACnEjX,MAAQn94B,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAKih5B,UAAYjh5B,KAAKm05B,UAChE/W,MAAQp94B,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAKkh5B,SAAWlh5B,KAAKo05B,WAC/D514B,MAAOxe,KAAKm05B,UAAYn05B,KAAK2+4B,UAAUC,YAAYpg4B,MAAOoqI,OAAQ5oJ,KAAKo05B,WAAap05B,KAAK2+4B,UAAUC,YAAYh2vB,OACvH,EACA+zvB,EAAYhs4B,UAAUsw5B,gBAAkB,SAAUF,GAC9C/g6B,KAAK4p5B,aAAa7qb,UAAU,EAAG,EAAG/+d,KAAK6q5B,YAAYrs4B,MAAOxe,KAAK6q5B,YAAYjiwB,QAC3E5oJ,KAAKm05B,UAAY4M,EAAavi5B,MAC9Bxe,KAAKo05B,WAAa2M,EAAan4wB,OAC3B5oJ,KAAK0i5B,mBACL1i5B,KAAK+p5B,mBACL/p5B,KAAK0i5B,kBAAmB,GAE5B,IAAIh2zB,EAAO1sF,KAAK4p5B,aAAaxj5B,OAC7BpG,KAAKq45B,yBACLr45B,KAAK4p5B,aAAa5qb,UAAUh/d,KAAK2r5B,QAAS3r5B,KAAKmh5B,QAASnh5B,KAAKoh5B,OAAQph5B,KAAKu55B,SAAUv55B,KAAKw55B,UAAWx55B,KAAKih5B,SAAUjh5B,KAAKkh5B,QAASlh5B,KAAKm05B,UAAWn05B,KAAKo05B,cAChJrolB,GAAkB/rU,KAAKyw5B,qBAAyD,gBAAlCzw5B,KAAKyw5B,mBAAmBjlxB,OAA4BxrI,KAAK6h5B,eACzG7h5B,KAAKy55B,WAAWz55B,KAAK4p5B,cAEzB5p5B,KAAK4p5B,aAAaxj5B,OAASsmF,CAC/B,EACAiwzB,EAAYhs4B,UAAUuw5B,SAAW,WACzBlh6B,KAAK2+4B,UAAUC,cACX5+4B,KAAKih5B,SAAWjh5B,KAAK2+4B,UAAUC,YAAYn3iB,SAC3CznW,KAAKih5B,SAAWjh5B,KAAK2+4B,UAAUC,YAAYn3iB,QAE3CznW,KAAKkh5B,QAAUlh5B,KAAK2+4B,UAAUC,YAAYl3iB,SAC1C1nW,KAAKkh5B,QAAUlh5B,KAAK2+4B,UAAUC,YAAYl3iB,QAE1C1nW,KAAKih5B,SAAWjh5B,KAAKm05B,UAAYn05B,KAAK2+4B,UAAUC,YAAYzB,OAC5Dn94B,KAAKih5B,SAAWjh5B,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAKm05B,WAEvDn05B,KAAKkh5B,QAAUlh5B,KAAKo05B,WAAap05B,KAAK2+4B,UAAUC,YAAYxB,OAC5Dp94B,KAAKkh5B,QAAUlh5B,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAKo05B,YAGlE,EACAzX,EAAYhs4B,UAAUww5B,gBAAkB,SAAUpC,GAC9C,IAAIqC,EAAeph6B,KAAKih5B,SACpBogB,EAAcrh6B,KAAKkh5B,QACnB2d,EAAQ7+5B,KAAKsh6B,QAAQpn5B,EAAIla,KAAKuh6B,YAAYrn5B,EAC1C4k5B,EAAQ9+5B,KAAKsh6B,QAAQnn5B,EAAIna,KAAKuh6B,YAAYpn5B,EAC9C,GAAkB,KAAd4k5B,EACA/+5B,KAAKih5B,UAAY4d,EACjB7+5B,KAAKkh5B,SAAW4d,EAChB9+5B,KAAKkh6B,gBAEJ,GAAkB,eAAdnC,EAA4B,CACjC,IAAIyC,EAAa/30B,GAAO,CAAC,EAAGzpF,KAAK2+4B,UAAW,CAAC,GAAG,GAChD3+4B,KAAKyh6B,oBAAoB1C,GACzBF,EAAQ7+5B,KAAKuh6B,YAAYrn5B,EAAIla,KAAKsh6B,QAAQpn5B,EAC1Cla,KAAKih5B,UAAY4d,EACjB7+5B,KAAKkh5B,SAAW4d,EAChB9+5B,KAAKkh6B,WACLlh6B,KAAK2+4B,UAAY6iB,CACrB,MACK,GAAkB,aAAdzC,EAA0B,CAC3ByC,EAAa/30B,GAAO,CAAC,EAAGzpF,KAAK2+4B,UAAW,CAAC,GAAG,GAChD3+4B,KAAKyh6B,oBAAoB1C,GACzBD,EAAQ9+5B,KAAKuh6B,YAAYpn5B,EAAIna,KAAKsh6B,QAAQnn5B,EAC1Cna,KAAKih5B,UAAY4d,EACjB7+5B,KAAKkh5B,SAAW4d,EAChB9+5B,KAAKkh6B,WACLlh6B,KAAK2+4B,UAAY6iB,CACrB,MACK,GAAkB,uBAAdzC,EAAoC,CACrCyC,EAAa/30B,GAAO,CAAC,EAAGzpF,KAAK2+4B,UAAW,CAAC,GAAG,GAChD3+4B,KAAKyh6B,oBAAoB1C,GACzBF,EAAQ7+5B,KAAKuh6B,YAAYrn5B,EAAIla,KAAKsh6B,QAAQpn5B,EAC1Cla,KAAKih5B,UAAY4d,EACjB7+5B,KAAKkh5B,SAAW4d,EAChB9+5B,KAAKkh6B,WACLlh6B,KAAK2+4B,UAAY6iB,CACrB,MACK,GAAkB,uBAAdzC,EAAoC,CACrCyC,EAAa/30B,GAAO,CAAC,EAAGzpF,KAAK2+4B,UAAW,CAAC,GAAG,GAChD3+4B,KAAKyh6B,oBAAoB1C,GACzBD,EAAQ9+5B,KAAKuh6B,YAAYpn5B,EAAIna,KAAKsh6B,QAAQnn5B,EAC1Cna,KAAKih5B,UAAY4d,EACjB7+5B,KAAKkh5B,SAAW4d,EAChB9+5B,KAAKkh6B,WACLlh6B,KAAK2+4B,UAAY6iB,CACrB,CAEA,MAAO,CAAEtn5B,EAAGla,KAAKih5B,SAAWmgB,EAAcjn5B,EAAGna,KAAKkh5B,QAAUmgB,EAChE,EACA1kB,EAAYhs4B,UAAU+w5B,oBAAsB,SAAU7vqB,EAAQjlP,GAC1D,IAAImy5B,EAAYltqB,EA6ChB,MA5Ce,KAAXA,EACa,eAATjlP,EACAmy5B,EAAY,aAEE,aAATny5B,IACLmy5B,EAAY,YAGA,eAAXltqB,EACQ,eAATjlP,EACAmy5B,EAAY,qBAEE,aAATny5B,EACLmy5B,EAAY,qBAEE,KAATny5B,EACLmy5B,EAAY,YAEG,KAAVny5B,IACLmy5B,EAAY,cAGA,aAAXltqB,EACQ,eAATjlP,EACAmy5B,EAAY,qBAEE,aAATny5B,EACLmy5B,EAAY,qBAEE,KAATny5B,EACLmy5B,EAAY,cAEG,KAAVny5B,IACLmy5B,EAAY,YAIH,eAATny5B,EACAmy5B,EAAY,WAEE,aAATny5B,IACLmy5B,EAAY,cAGbA,CACX,EACApiB,EAAYhs4B,UAAUgx5B,oBAAsB,WACxC,IAAI5C,EAAY,GAChB/+5B,KAAK2h5B,eAAiB3h5B,KAAKug6B,oBAAoBvg6B,KAAK2h5B,gBAAgB,GACpE,IAAK,IAAIx14B,EAAI,EAAGA,EAAInM,KAAK2h5B,eAAev+4B,OAAQ+I,IAC5C4y5B,EAAY/+5B,KAAK0h6B,oBAAoB3C,EAAW/+5B,KAAK2h5B,eAAex14B,IAExE,OAAO4y5B,CACX,EACApiB,EAAYhs4B,UAAUoq5B,cAAgB,SAAUz0jB,GAC5C,IAAIi9iB,EAAa,CAAE97iB,OAAQznW,KAAKih5B,SAAUv5iB,OAAQ1nW,KAAKkh5B,QAAS1i4B,MAAOxe,KAAKm05B,UAAWvrwB,OAAQ5oJ,KAAKo05B,YACpGp05B,KAAK4p5B,aAAa7qb,UAAU,EAAG,EAAG/+d,KAAK6q5B,YAAYrs4B,MAAOxe,KAAK6q5B,YAAYjiwB,QAC3E5oJ,KAAKs55B,8BAA8B,WACnCt55B,KAAKih5B,SAAWsC,EAAW97iB,OAC3BznW,KAAKkh5B,QAAUqC,EAAW77iB,OAC1B1nW,KAAKm05B,UAAY5Q,EAAW/k4B,MAC5Bxe,KAAKo05B,WAAa7Q,EAAW36vB,OAC7B5oJ,KAAKg+5B,4BACLh+5B,KAAKq45B,yBACLr45B,KAAK4p5B,aAAa5qb,UAAUh/d,KAAK2r5B,QAAS3r5B,KAAKmh5B,QAASnh5B,KAAKoh5B,OAAQph5B,KAAKu55B,SAAUv55B,KAAKw55B,UAAWx55B,KAAKih5B,SAAUjh5B,KAAKkh5B,QAASlh5B,KAAKm05B,UAAWn05B,KAAKo05B,cAChJrolB,GAAkB/rU,KAAKyw5B,qBAAyD,gBAAlCzw5B,KAAKyw5B,mBAAmBjlxB,OAA4BxrI,KAAK6h5B,eACzG7h5B,KAAKy55B,WAAWz55B,KAAK4p5B,aAAc,MAAM,GAE7C5p5B,KAAKs55B,8BAA8B,WACnCt55B,KAAKih5B,SAAWsC,EAAW97iB,OAC3BznW,KAAKkh5B,QAAUqC,EAAW77iB,OAC1B1nW,KAAKm05B,UAAY5Q,EAAW/k4B,MAC5Bxe,KAAKo05B,WAAa7Q,EAAW36vB,OAC7B,IAAIl8D,EAAO1sF,KAAK4p5B,aAAaxj5B,OAC7BpG,KAAK4p5B,aAAaxj5B,OAAS,OAC3BpG,KAAKi75B,WAAW30jB,EAAMpsV,EAAGosV,EAAMnsV,EAAG,IAClCna,KAAKk75B,oBAAoB50jB,EAAMpsV,EAAGosV,EAAMnsV,EAAG,IAC3Cna,KAAK4p5B,aAAaxj5B,OAASsmF,EACvB1sF,KAAK6h5B,cACL7h5B,KAAKy55B,WAAWz55B,KAAK4p5B,aAAc,MAAM,EAEjD,EACAjN,EAAYhs4B,UAAUix5B,gBAAkB,SAAU/C,EAAOC,GACrD,IAAI+C,EAAe,CAAEn7jB,WAAY1mW,KAAK8h6B,QAAS15jB,SAAUpoW,KAAKsh6B,QAASxg1B,QAAQ,GAE/E,GADA9gF,KAAKsgS,QAAQ,UAAWuhoB,IACpBA,EAAa/g1B,OAAjB,CAGA,IAAIih1B,GAAe,EA2BnB,GA1BKh2lB,GAAkB/rU,KAAK2+4B,UAAUnzwB,QAAmC,UAAzBxrI,KAAK2+4B,UAAUnzwB,OAC3DxrI,KAAK6v5B,mBAEL9jlB,GAAkB/rU,KAAK2+4B,UAAUnzwB,SACjCu2xB,GAAe,EACf/h6B,KAAK2+4B,UAAUC,YAAc,CAAEn3iB,OAAQznW,KAAKih5B,SAAUv5iB,OAAQ1nW,KAAKkh5B,QAC/D/D,KAAMn94B,KAAKih5B,SAAWjh5B,KAAKm05B,UAAW/W,KAAMp94B,KAAKkh5B,QAAUlh5B,KAAKo05B,YAChEp05B,KAAK2+4B,UAAUC,YAAYn3iB,OAAS,IACpCznW,KAAK2+4B,UAAUC,YAAYn3iB,OAAS,GAEpCznW,KAAK2+4B,UAAUC,YAAYl3iB,OAAS,IACpC1nW,KAAK2+4B,UAAUC,YAAYl3iB,OAAS,GAEpC1nW,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAK6q5B,YAAYrs4B,QACnDxe,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAK6q5B,YAAYrs4B,OAEnDxe,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAK6q5B,YAAYjiwB,SACnD5oJ,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAK6q5B,YAAYjiwB,QAEvD5oJ,KAAK2+4B,UAAUC,YAAYpg4B,MAAQxe,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAK2+4B,UAAUC,YAAYn3iB,OAChGznW,KAAK2+4B,UAAUC,YAAYh2vB,OAAS5oJ,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAK2+4B,UAAUC,YAAYl3iB,OACjG1nW,KAAK2+4B,UAAUnzwB,MAAQ,cACvBxrI,KAAK2+4B,UAAUjB,eAAiB194B,KAAK094B,eACrC194B,KAAKk05B,mBAAmBl05B,KAAK2+4B,UAAUC,YAAa5+4B,KAAK2+4B,WACzD3+4B,KAAKsi5B,WAAY,GAED,IAAhBti5B,KAAKw0vB,OAAc,CACnB,IAAIluZ,OAAQ,EAERA,EADAv6B,GAAkB8ylB,IAAU9ylB,GAAkB+ylB,GACtC9+5B,KAAKmh6B,gBAAgB,IAGrB,CAAEjn5B,EAAG2k5B,EAAO1k5B,EAAG2k5B,GAE3B9+5B,KAAKqi5B,iBAAiBno4B,GAAKosV,EAAMpsV,EACjCla,KAAKqi5B,iBAAiBlo4B,GAAKmsV,EAAMnsV,EACjC,IAAI6n5B,EAAmBv40B,GAAO,CAAC,EAAGzpF,KAAK2+4B,UAAW,CAAC,GAAG,GAClDjyzB,EAAO1sF,KAAK4p5B,aAAaxj5B,OAC7BpG,KAAK+65B,cAAcz0jB,GACnBtmW,KAAK4p5B,aAAaxj5B,OAASsmF,EAC3B1sF,KAAKuh6B,YAAc930B,GAAO,CAAC,EAAGzpF,KAAKsh6B,QAAS,CAAC,GAAG,GAChDth6B,KAAK2+4B,UAAYl1zB,GAAO,CAAC,EAAGu40B,EAAkB,CAAC,GAAG,GAClDhi6B,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,QACtEmjL,GAAkB/rU,KAAK2+4B,UAAUnzwB,QAClCxrI,KAAKu25B,WAAW,YAAav25B,KAAK2+4B,UAE1C,KACK,CACD,IAAIsjB,EAAgBji6B,KAAKm+4B,cACzBn+4B,KAAKsi5B,WAAY,EACbv2kB,GAAkB8ylB,IAAU9ylB,GAAkB+ylB,GAC9C9+5B,KAAK4h5B,mBAAqB5h5B,KAAKmh6B,gBAAgB,IAG/Cnh6B,KAAK4h5B,mBAAqB,CAAE1n4B,EAAG2k5B,EAAO1k5B,EAAG2k5B,GAE7C9+5B,KAAKm+4B,cAAgB8jB,EACrBji6B,KAAKy75B,YACLz75B,KAAKsi5B,WAAY,EACjBti5B,KAAKuh6B,YAAc930B,GAAO,CAAC,EAAGzpF,KAAKsh6B,QAAS,CAAC,GAAG,EACpD,CACIS,IACA/h6B,KAAK6v5B,mBACL7v5B,KAAKsi5B,WAAY,EACjBti5B,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,QAlE/E,CAoEJ,EACA+zvB,EAAYhs4B,UAAU6q5B,cAAgB,SAAUwG,GAC5C,GAA2B,KAAvBhi6B,KAAKm+4B,cAAsB,CAC3B,IAAIzxzB,EAAO1sF,KAAK4p5B,aAAaxj5B,OAC7BpG,KAAK6v5B,mBACL7v5B,KAAKki6B,cACLli6B,KAAK4p5B,aAAaxj5B,OAAS,OAC3BpG,KAAK+35B,eAAe/35B,KAAK4p5B,cACzB5p5B,KAAK4p5B,aAAaxj5B,OAASsmF,EAC3B1sF,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,QACtEmjL,GAAkBi2lB,IACnBhi6B,KAAKu25B,WAAW,YAAayL,EAErC,CACJ,EACArlB,EAAYhs4B,UAAU8w5B,oBAAsB,SAAU1C,GAChC,eAAdA,GACI/+5B,KAAK2+4B,UAAUC,YAAYn3iB,OAASznW,KAAK6q5B,YAAYrs4B,MAAQ,EAC7Dxe,KAAK2+4B,UAAUC,YAAYzB,KAAQn94B,KAAK6q5B,YAAYrs4B,MAAQ,GACvDxe,KAAK2+4B,UAAUC,YAAYn3iB,OAAUznW,KAAK6q5B,YAAYrs4B,MAAQ,GAGnExe,KAAK2+4B,UAAUC,YAAYzB,KAAQn94B,KAAK6q5B,YAAYrs4B,MAAQ,GAAOxe,KAAK6q5B,YAAYrs4B,MAAQ,EACxFxe,KAAK2+4B,UAAUC,YAAYn3iB,QAEnCznW,KAAK2+4B,UAAUC,YAAYn3iB,OAASznW,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAK2+4B,UAAUC,YAAYpg4B,OAE9E,aAAdug5B,GACD/+5B,KAAK2+4B,UAAUC,YAAYn3iB,OAASznW,KAAK6q5B,YAAYrs4B,MAAQ,EAC7Dxe,KAAK2+4B,UAAUC,YAAYxB,KAAQp94B,KAAK6q5B,YAAYjiwB,OAAS,GACxD5oJ,KAAK2+4B,UAAUC,YAAYl3iB,OAAU1nW,KAAK6q5B,YAAYjiwB,OAAS,GAGpE5oJ,KAAK2+4B,UAAUC,YAAYxB,KAAQp94B,KAAK6q5B,YAAYjiwB,OAAS,GACvD5oJ,KAAK6q5B,YAAYjiwB,OAAS,EAAK5oJ,KAAK2+4B,UAAUC,YAAYl3iB,QAEpE1nW,KAAK2+4B,UAAUC,YAAYl3iB,OAAS1nW,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAK2+4B,UAAUC,YAAYh2vB,QAE9E,uBAAdm2wB,GAAoD,uBAAdA,IACvC/+5B,KAAK2+4B,UAAUC,YAAYn3iB,OAASznW,KAAK6q5B,YAAYrs4B,MAAQ,GAC7Dxe,KAAK2+4B,UAAUC,YAAYzB,KAAQn94B,KAAK6q5B,YAAYrs4B,MAAQ,GACvDxe,KAAK2+4B,UAAUC,YAAYn3iB,OAAUznW,KAAK6q5B,YAAYrs4B,MAAQ,GACnExe,KAAK2+4B,UAAUC,YAAYxB,KAAQp94B,KAAK6q5B,YAAYjiwB,OAAS,GACxD5oJ,KAAK2+4B,UAAUC,YAAYl3iB,OAAU1nW,KAAK6q5B,YAAYjiwB,OAAS,KAGpE5oJ,KAAK2+4B,UAAUC,YAAYzB,KAAQn94B,KAAK6q5B,YAAYrs4B,MAAQ,GAAOxe,KAAK6q5B,YAAYrs4B,MAAQ,EACxFxe,KAAK2+4B,UAAUC,YAAYn3iB,QAC/BznW,KAAK2+4B,UAAUC,YAAYxB,KAAQp94B,KAAK6q5B,YAAYjiwB,OAAS,GACvD5oJ,KAAK6q5B,YAAYjiwB,OAAS,EAAK5oJ,KAAK2+4B,UAAUC,YAAYl3iB,SAEpE1nW,KAAK2+4B,UAAUC,YAAYn3iB,OAASznW,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAK2+4B,UAAUC,YAAYpg4B,MACjGxe,KAAK2+4B,UAAUC,YAAYl3iB,OAAS1nW,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAK2+4B,UAAUC,YAAYh2vB,QAErG5oJ,KAAKk05B,mBAAmBl05B,KAAK2+4B,UAAUC,YAAa5+4B,KAAK2+4B,UAC7D,EACAhC,EAAYhs4B,UAAUkw5B,eAAiB,WACnC7g6B,KAAKqi5B,iBAAmB,CAAEno4B,EAAG,EAAGC,EAAG,GACnCna,KAAKoi5B,uBAAyB,CAAElo4B,EAAG,EAAGC,EAAG,GACzCna,KAAKmi5B,yBAA2B,CAAEjo4B,EAAG,EAAGC,EAAG,EAC/C,EACAwi4B,EAAYhs4B,UAAUgw5B,SAAW,WAC7B3g6B,KAAKwh5B,eAAgB,EACrBxh5B,KAAKqi5B,iBAAiBno4B,GAAKla,KAAKsj5B,iBAAiBpp4B,EACjDla,KAAKqi5B,iBAAiBlo4B,GAAKna,KAAKsj5B,iBAAiBnp4B,EACjD,IAAIgo5B,EAAoBni6B,KAAKm+4B,cACzBikB,EAAepi6B,KAAKsh5B,SAIxB,GAHAth5B,KAAKsh5B,SAAW,GAChBth5B,KAAK8g6B,4BACL9g6B,KAAKu94B,QAAQnx4B,KAAKpM,KAAK2+4B,WACnB3+4B,KAAK+g5B,WAAa,EAAG,CAGrB,IAFA,IAAIA,EAAa/g5B,KAAK+g5B,WAClBnE,EAAa584B,KAAK484B,WACbzw4B,EAAI,EAAGA,EAAkB,GAAb404B,EAAkB504B,IACnCnM,KAAK484B,YAAa,EAClB584B,KAAKkx5B,YAAY,IAErBlx5B,KAAK484B,WAAaA,EAClB584B,KAAK6g6B,gBACT,CACA7g6B,KAAKyw5B,mBAAqBhn0B,GAAO,CAAC,EAAGzpF,KAAKu94B,QAAQv94B,KAAKu94B,QAAQn64B,OAAS,GAAI,CAAC,GAAG,GAChFpD,KAAK4p5B,aAAa7qb,UAAU,EAAG,EAAG/+d,KAAK6q5B,YAAYrs4B,MAAOxe,KAAK6q5B,YAAYjiwB,QAC3E5oJ,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,QAC3E,IAAIl8D,EAAO1sF,KAAK4p5B,aAAaxj5B,OAC7BpG,KAAKq45B,yBACLr45B,KAAK4p5B,aAAa5qb,UAAUh/d,KAAK2r5B,QAAS3r5B,KAAKmh5B,QAASnh5B,KAAKoh5B,OAAQph5B,KAAKu55B,SAAUv55B,KAAKw55B,UAAWx55B,KAAKih5B,SAAUjh5B,KAAKkh5B,QAASlh5B,KAAKm05B,UAAWn05B,KAAKo05B,YACtJ,IAASjo5B,EAAI,EAAGA,EAAInM,KAAKu94B,QAAQn64B,OAAQ+I,IACrCnM,KAAKu94B,QAAQpx4B,GAAGiz5B,UAAY,GAEhC,IAASjz5B,EAAI,EAAGA,EAAInM,KAAK6i5B,gBAAiB124B,IACtCnM,KAAKi9d,UAAU9wd,GAAGiz5B,UAAY,GAElCp/5B,KAAKqi6B,UAAUri6B,KAAK2h6B,uBACpB3h6B,KAAKs/5B,oBAAoBt/5B,KAAK2h6B,uBAC9B3h6B,KAAK2+4B,UAAYl1zB,GAAO,CAAC,EAAGzpF,KAAKu94B,QAAQv94B,KAAKu94B,QAAQn64B,OAAS,GAAI,CAAC,GAAG,GACvEpD,KAAKu94B,QAAQj/2B,MACbt+B,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,QAC3E5oJ,KAAKu25B,WAAW,aAChBv25B,KAAK075B,SAAQ,GACb175B,KAAKuh5B,iBAAkB,EACvBvh5B,KAAKo+5B,0BACLp+5B,KAAKs65B,uBACLt65B,KAAKu65B,wBAAwB,WAC7Bv65B,KAAKq45B,yBACLr45B,KAAK4p5B,aAAa5qb,UAAUh/d,KAAK2r5B,QAAS3r5B,KAAKmh5B,QAASnh5B,KAAKoh5B,OAAQph5B,KAAKu55B,SAAUv55B,KAAKw55B,UAAWx55B,KAAKih5B,SAAUjh5B,KAAKkh5B,QAASlh5B,KAAKm05B,UAAWn05B,KAAKo05B,YACtJp05B,KAAK4p5B,aAAaxj5B,OAASsmF,EAC3B1sF,KAAK0h5B,cAAe,EACpB1h5B,KAAKs55B,8BAA8B,WACnCt55B,KAAKm+4B,cAAgBgkB,EACrBni6B,KAAKsh5B,SAAW8gB,EAChBpi6B,KAAK4p5B,aAAaxj5B,OAAS,OAC3B,IAAS+F,EAAI,EAAGA,EAAInM,KAAKu94B,QAAQn64B,OAAQ+I,IACrCnM,KAAKu94B,QAAQpx4B,GAAGiz5B,UAAY,GAEhC,IAASjz5B,EAAI,EAAGA,EAAInM,KAAK6i5B,gBAAiB124B,IACtCnM,KAAKi9d,UAAU9wd,GAAGiz5B,UAAY,GAElCp/5B,KAAKqi6B,UAAUri6B,KAAK2h6B,uBACpB3h6B,KAAKs/5B,oBAAoBt/5B,KAAK2h6B,uBAC9B3h6B,KAAK065B,cACL165B,KAAK265B,uBACL365B,KAAK4p5B,aAAaxj5B,OAASsmF,IACrBq/O,GAAkB/rU,KAAKyw5B,qBAAyD,gBAAlCzw5B,KAAKyw5B,mBAAmBjlxB,OAA4BxrI,KAAK6h5B,eACzG7h5B,KAAKy55B,WAAWz55B,KAAK4p5B,cAEzB5p5B,KAAK6v5B,mBACL7v5B,KAAK275B,iBAAiB375B,KAAK4p5B,cAC3B5p5B,KAAK275B,iBAAiB375B,KAAK4o5B,cAC3B5o5B,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,QAC3E5oJ,KAAKwh5B,eAAgB,EACrBxh5B,KAAK6g6B,iBACL7g6B,KAAKsj5B,iBAAmB,CAAEpp4B,EAAG,EAAGC,EAAG,EACvC,EACAwi4B,EAAYhs4B,UAAU+v5B,WAAa,WAC/B,IAAIl1xB,EAAQ,GACPugM,GAAkB/rU,KAAK2+4B,UAAUnzwB,SAClCA,EAAQxrI,KAAK2+4B,UAAUnzwB,OAE3B,IAAI82xB,EAAati6B,KAAKw0vB,OAClBx0vB,KAAKw0vB,OAAS,KAAO,GAAKx0vB,KAAKw0vB,OAAS,MAAQ,IAChDx0vB,KAAK8h5B,kBAAkBr6iB,OAASznW,KAAKih5B,SACrCjh5B,KAAK8h5B,kBAAkBp6iB,OAAS1nW,KAAKkh5B,QACrClh5B,KAAK8h5B,kBAAkBtj4B,MAAQxe,KAAKm05B,UACpCn05B,KAAK8h5B,kBAAkBl5vB,OAAS5oJ,KAAKo05B,WACrCp05B,KAAK8h5B,kBAAkBr6iB,QAAUznW,KAAKoi5B,uBAAuBlo4B,EAC7Dla,KAAK8h5B,kBAAkBp6iB,QAAU1nW,KAAKoi5B,uBAAuBjo4B,GAEjEna,KAAK8g6B,4BACL9g6B,KAAKyw5B,mBAAqBhn0B,GAAO,CAAC,EAAGzpF,KAAK2+4B,UAAW,CAAC,GAAG,GACzD3+4B,KAAKu94B,QAAQnx4B,KAAKpM,KAAK2+4B,WACvB3+4B,KAAK2+4B,UAAYl1zB,GAAO,CAAC,EAAGzpF,KAAKu94B,QAAQv94B,KAAKu94B,QAAQn64B,OAAS,GAAI,CAAC,GAAG,GACvEpD,KAAKo+5B,0BACLp+5B,KAAKy+5B,gCACLz+5B,KAAK4p5B,aAAa7qb,UAAU,EAAG,EAAG/+d,KAAK6q5B,YAAYrs4B,MAAOxe,KAAK6q5B,YAAYjiwB,QAC3E,IAAIl8D,EAAO1sF,KAAK4p5B,aAAaxj5B,OAC7BpG,KAAKq45B,yBACLr45B,KAAK4p5B,aAAa5qb,UAAUh/d,KAAK2r5B,QAAS3r5B,KAAKmh5B,QAASnh5B,KAAKoh5B,OAAQph5B,KAAKu55B,SAAUv55B,KAAKw55B,UAAWx55B,KAAKih5B,SAAUjh5B,KAAKkh5B,QAASlh5B,KAAKm05B,UAAWn05B,KAAKo05B,YACtJp05B,KAAK4p5B,aAAaxj5B,OAASsmF,EAC3B,IAAItpF,EAAS,EACM,KAAfk/5B,IAAqC,MAAhBA,EACrBl/5B,EAAS,EAEW,MAAfk/5B,IAAsC,MAAhBA,EAC3Bl/5B,EAAS,EAEW,MAAfk/5B,IAAsC,KAAhBA,IAC3Bl/5B,EAAS,GAEb,IAAK,IAAI+I,EAAI,EAAGA,EAAI/I,EAAQ+I,IACxBnM,KAAKui6B,gBACLvi6B,KAAKu/5B,yBAET,IAAI5gB,EAAYl1zB,GAAO,CAAC,EAAGzpF,KAAKu94B,QAAQv94B,KAAKu94B,QAAQn64B,OAAS,GAAI,CAAC,GAAG,GACtE,GAA2B,KAAvBpD,KAAKm+4B,cAAsB,CAC3B,IAAShy4B,EAAI,EAAGA,EAAInM,KAAKu94B,QAAQn64B,OAAQ+I,IACrCnM,KAAKu94B,QAAQpx4B,GAAGiz5B,UAAY,GAEhC,IAASjz5B,EAAI,EAAGA,EAAInM,KAAK6i5B,gBAAiB124B,IACtCnM,KAAKi9d,UAAU9wd,GAAGiz5B,UAAY,GAElC,IAAIpD,EAAYh85B,KAAKwi6B,oBAAoB,WACzCxi6B,KAAKqi6B,UAAUrG,GACfh85B,KAAKs/5B,oBAAoBtD,EAC7B,CACAh85B,KAAK065B,cACL165B,KAAK265B,uBACLhc,EAAYl1zB,GAAO,CAAC,EAAGzpF,KAAKu94B,QAAQv94B,KAAKu94B,QAAQn64B,OAAS,GAAI,CAAC,GAAG,GAClEpD,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,QAC3E5oJ,KAAKu25B,WAAW,YAAa5X,GAC7B3+4B,KAAKu94B,QAAQj/2B,MACbt+B,KAAKw0vB,OAAS,EACdx0vB,KAAK075B,SAAQ,GACb175B,KAAKuh5B,iBAAkB,EACvBvh5B,KAAKo+5B,0BACLp+5B,KAAKw0vB,OAAS8tK,EACdti6B,KAAKs65B,uBACLt65B,KAAKu65B,wBAAwB,WAC7Bv65B,KAAKq45B,yBACLr45B,KAAK4p5B,aAAa5qb,UAAUh/d,KAAK2r5B,QAAS3r5B,KAAKmh5B,QAASnh5B,KAAKoh5B,OAAQph5B,KAAKu55B,SAAUv55B,KAAKw55B,UAAWx55B,KAAKih5B,SAAUjh5B,KAAKkh5B,QAASlh5B,KAAKm05B,UAAWn05B,KAAKo05B,YACtJp05B,KAAK4p5B,aAAaxj5B,OAASsmF,EAC3B1sF,KAAKu65B,wBAAwB,WAC7Bn35B,EAAS,EACU,KAAfk/5B,IAAqC,MAAhBA,EACrBl/5B,EAAS,EAEW,MAAfk/5B,IAAsC,MAAhBA,EAC3Bl/5B,EAAS,EAEW,MAAfk/5B,IAAsC,KAAhBA,IAC3Bl/5B,EAAS,GAEb,IAAS+I,EAAI,EAAGA,EAAI/I,EAAQ+I,IACxBnM,KAAKui6B,gBACLvi6B,KAAKu/5B,yBAET,GAAmC,KAA/Bv/5B,KAAK2h6B,sBAA8B,CACnC,IAASx15B,EAAI,EAAGA,EAAInM,KAAKu94B,QAAQn64B,OAAQ+I,IACrCnM,KAAKu94B,QAAQpx4B,GAAGiz5B,UAAY,GAEhC,IAASjz5B,EAAI,EAAGA,EAAInM,KAAK6i5B,gBAAiB124B,IACtCnM,KAAKi9d,UAAU9wd,GAAGiz5B,UAAY,GAE9BpD,EAAYh85B,KAAKwi6B,oBAAoB,WACzCxi6B,KAAKqi6B,UAAUrG,GACfh85B,KAAKs/5B,oBAAoBtD,EAC7B,CACAh85B,KAAKuh5B,iBAAkB,EACT,gBAAV/1wB,GACAxrI,KAAKy55B,WAAWz55B,KAAK4p5B,cAEzB5p5B,KAAK4p5B,aAAaxj5B,OAAS,OAC3B,IAAS+F,EAAI,EAAGA,EAAInM,KAAKu94B,QAAQn64B,OAAQ+I,IACjCnM,KAAK2+5B,sBAAsB3+5B,KAAKu94B,QAAQpx4B,MACxCnM,KAAKmZ,MAAMnZ,KAAKu94B,QAAQpx4B,GAAGq/H,MAAOxrI,KAAKu94B,QAAQpx4B,IAC/CnM,KAAK6v5B,oBAGb7v5B,KAAK265B,uBACL365B,KAAK4p5B,aAAaxj5B,OAASsmF,EAC3B1sF,KAAK275B,iBAAiB375B,KAAK4p5B,cAC3B5p5B,KAAK275B,iBAAiB375B,KAAK4o5B,cACb,gBAAVp9wB,GACAxrI,KAAKy55B,WAAWz55B,KAAK4p5B,cAEzB5p5B,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,QAC3E5oJ,KAAK6g6B,gBACT,EACAlkB,EAAYhs4B,UAAU6x5B,oBAAsB,SAAU515B,EAAM615B,GACxD,IAAIzG,EAAY,GACZ505B,EAAQ,GACZ,GAAa,YAATwF,EACA,GAAoB,MAAhB5M,KAAKw0vB,SAAmC,MAAjBx0vB,KAAKw0vB,OAC5BwnK,EAAYh85B,KAAKsh5B,SAASl+4B,OAAS,EAAIpD,KAAK2h6B,sBAAwB3h6B,KAAKm+4B,kBAExE,CACD,IAAK,IAAIhy4B,EAAI,EAAGA,EAAInM,KAAK2h5B,eAAev+4B,OAAQ+I,IACJ,kBAA5BnM,KAAK2h5B,eAAex14B,GAC5B/E,EAAMgF,KAAK,UAE8B,kBAA5BpM,KAAK2h5B,eAAex14B,IACjC/E,EAAMgF,KAAK,UAGfhF,EAAMhE,OAAS,GAAiC,WAA5BgE,EAAMA,EAAMhE,OAAS,IAA+C,WAA5BgE,EAAMA,EAAMhE,OAAS,GACtD,eAAvBpD,KAAKm+4B,cACL6d,EAAY,WAEgB,aAAvBh85B,KAAKm+4B,gBACV6d,EAAY,cAGX505B,EAAMhE,OAAS,GAAiC,WAA5BgE,EAAMA,EAAMhE,OAAS,IAA+C,WAA5BgE,EAAMA,EAAMhE,OAAS,KACtF445B,EAAYh85B,KAAKsh5B,SAASl+4B,OAAS,EAAIpD,KAAK2h6B,sBAAwB3h6B,KAAKm+4B,cAEjF,MAGA6d,EAAYh85B,KAAK2h6B,uBACbc,GAAkBzi6B,KAAK0i6B,oBACF,KAAjB1i6B,KAAKw0vB,SAAmC,MAAjBx0vB,KAAKw0vB,SACV,eAAdwnK,EACAA,EAAY,WAEO,aAAdA,IACLA,EAAY,eAQ5B,MAHkB,KAAdA,IACAA,EAAYh85B,KAAKsh5B,SAASl+4B,OAAS,EAAIpD,KAAK2h6B,sBAAwB3h6B,KAAKm+4B,eAEtE6d,CACX,EACArf,EAAYhs4B,UAAU+x5B,gBAAkB,WACpC,IAAIC,GAAW,EAIf,OAHI3i6B,KAAK2h5B,eAAev+4B,OAAS,GAAyC,kBAA5BpD,KAAK2h5B,eAAe,KAC9DghB,GAAW,GAERA,CACX,EACAhmB,EAAYhs4B,UAAUiy5B,sBAAwB,WAC1C,IAAI72lB,GAAkB/rU,KAAK4h5B,oBAA3B,CAGA,IAAImd,EAAY,GAEZA,EADA/+5B,KAAK0i6B,mBAAqB1i6B,KAAKw0vB,OAAS,EAC5Bx0vB,KAAKwi6B,oBAAoB,WAAW,GAGpCxi6B,KAAK2h6B,sBAEjB3h6B,KAAKw0vB,OAAS,KAAO,GAAKx0vB,KAAKw0vB,OAAS,MAAQ,EAC5B,KAAhBx0vB,KAAKw0vB,SAAmC,KAAjBx0vB,KAAKw0vB,SAAiC,eAAduqK,GAA4C,aAAdA,KACxD,MAAjB/+5B,KAAKw0vB,SAAkC,KAAduqK,GAAkC,uBAAdA,GAAoD,uBAAdA,GACrE,KAAdA,GACA/+5B,KAAKih5B,UAAYjh5B,KAAK4h5B,mBAAmBzn4B,EACzCna,KAAKkh5B,SAAWlh5B,KAAK4h5B,mBAAmB1n4B,GAErB,eAAd6k5B,GACL/+5B,KAAKih5B,UAAYjh5B,KAAK4h5B,mBAAmBzn4B,EACzCna,KAAKkh5B,SAAWlh5B,KAAK4h5B,mBAAmB1n4B,GAErB,aAAd6k5B,GACL/+5B,KAAKih5B,UAAYjh5B,KAAK4h5B,mBAAmBzn4B,EACzCna,KAAKkh5B,SAAWlh5B,KAAK4h5B,mBAAmB1n4B,IAGxCla,KAAKih5B,UAAYjh5B,KAAK4h5B,mBAAmBzn4B,EACzCna,KAAKkh5B,SAAWlh5B,KAAK4h5B,mBAAmB1n4B,GAGvB,MAAhBla,KAAKw0vB,UAAoC,MAAjBx0vB,KAAKw0vB,QAAkC,eAAduqK,GAA4C,aAAdA,MAC/D,KAAjB/+5B,KAAKw0vB,QAAiC,KAAduqK,GAAkC,uBAAdA,GAAoD,uBAAdA,KACpE,KAAdA,GACA/+5B,KAAKih5B,UAAYjh5B,KAAK4h5B,mBAAmBzn4B,EACzCna,KAAKkh5B,SAAWlh5B,KAAK4h5B,mBAAmB1n4B,GAErB,eAAd6k5B,GACL/+5B,KAAKih5B,UAAYjh5B,KAAK4h5B,mBAAmBzn4B,EACzCna,KAAKkh5B,SAAWlh5B,KAAK4h5B,mBAAmB1n4B,GAErB,aAAd6k5B,GACL/+5B,KAAKih5B,UAAYjh5B,KAAK4h5B,mBAAmBzn4B,EACzCna,KAAKkh5B,SAAWlh5B,KAAK4h5B,mBAAmB1n4B,IAGxCla,KAAKih5B,UAAYjh5B,KAAK4h5B,mBAAmBzn4B,EACzCna,KAAKkh5B,SAAWlh5B,KAAK4h5B,mBAAmB1n4B,IAK5B,MAAhBla,KAAKw0vB,SAAmC,MAAjBx0vB,KAAKw0vB,SACV,KAAduqK,GACA/+5B,KAAKih5B,UAAYjh5B,KAAK4h5B,mBAAmB1n4B,EACzCla,KAAKkh5B,SAAWlh5B,KAAK4h5B,mBAAmBzn4B,GAErB,eAAd4k5B,GACL/+5B,KAAKih5B,UAAYjh5B,KAAK4h5B,mBAAmB1n4B,EACzCla,KAAKkh5B,SAAWlh5B,KAAK4h5B,mBAAmBzn4B,GAErB,aAAd4k5B,GACL/+5B,KAAKih5B,UAAYjh5B,KAAK4h5B,mBAAmB1n4B,EACzCla,KAAKkh5B,SAAWlh5B,KAAK4h5B,mBAAmBzn4B,IAGxCna,KAAKih5B,UAAYjh5B,KAAK4h5B,mBAAmB1n4B,EACzCla,KAAKkh5B,SAAWlh5B,KAAK4h5B,mBAAmBzn4B,GAhEpD,CAoEJ,EACAwi4B,EAAYhs4B,UAAU8q5B,UAAY,SAAU7L,EAAiBiT,GACzD7i6B,KAAKuh5B,iBAAkB,EACvB,IACIuhB,EADAR,EAAati6B,KAAKw0vB,OAEjBzob,GAAkB/rU,KAAK2+4B,UAAUC,cAAiB7ykB,GAAkB/rU,KAAK2+4B,UAAUnzwB,SACpFs3xB,EAAqBr50B,GAAO,CAAC,EAAGzpF,KAAK2+4B,UAAW,CAAC,GAAG,IAExD,IAAIof,EAAct00B,GAAO,GAAIzpF,KAAKu94B,QAAS,IAAI,GAC3Cmb,EAAgBjv0B,GAAO,GAAIzpF,KAAKi9d,UAAW,IAAI,GACnDj9d,KAAKu94B,QAAU,GACfv94B,KAAKi9d,UAAY,GACjBj9d,KAAK6i5B,gBAAkB,EACvB7i5B,KAAK6v5B,mBACL7v5B,KAAK0h5B,cAAe,EACpB1h5B,KAAKs55B,8BAA8B,WACnC,IAAIyJ,EAAkB/i6B,KAAKih5B,SACvB+hB,EAAiBhj6B,KAAKkh5B,QACtBlh5B,KAAKsi5B,YACLti5B,KAAKih5B,UAAYjh5B,KAAKmi5B,yBAAyBjo4B,EAC/Cla,KAAKkh5B,SAAWlh5B,KAAKmi5B,yBAAyBho4B,GAElDna,KAAK4i6B,wBACD5i6B,KAAKsi5B,YACLti5B,KAAKmi5B,yBAAyBjo4B,EAAIla,KAAKih5B,SAAW8hB,EAClD/i6B,KAAKmi5B,yBAAyBho4B,EAAIna,KAAKkh5B,QAAU8hB,GAErD,IAAIt20B,EAAO1sF,KAAK4p5B,aAAaxj5B,OAC7BpG,KAAKq45B,yBACLr45B,KAAK4p5B,aAAa5qb,UAAUh/d,KAAK2r5B,QAAS3r5B,KAAKmh5B,QAASnh5B,KAAKoh5B,OAAQph5B,KAAKu55B,SAAUv55B,KAAKw55B,UAAWx55B,KAAKih5B,SAAUjh5B,KAAKkh5B,QAASlh5B,KAAKm05B,UAAWn05B,KAAKo05B,YACtJp05B,KAAK0h5B,cAAe,EACpB1h5B,KAAKs55B,8BAA8B,WAAW,GAAM,GACpD,IAAIrY,EAAWjh5B,KAAKih5B,SAChBC,EAAUlh5B,KAAKkh5B,QACnBlh5B,KAAKih5B,UAAYjh5B,KAAKoi5B,uBAAuBlo4B,EAC7Cla,KAAKkh5B,SAAWlh5B,KAAKoi5B,uBAAuBjo4B,EAC5Cna,KAAKih5B,UAAYjh5B,KAAK4h5B,mBAAmB1n4B,EACzCla,KAAKkh5B,SAAWlh5B,KAAK4h5B,mBAAmBzn4B,EACxCna,KAAKoi5B,uBAAuBlo4B,EAAIla,KAAKih5B,SAAWA,EAChDjh5B,KAAKoi5B,uBAAuBjo4B,EAAIna,KAAKkh5B,QAAUA,EAC/Clh5B,KAAKu94B,QAAUwgB,EACf/95B,KAAKi9d,UAAYy7b,EACjB145B,KAAK6i5B,gBAAkB7i5B,KAAKi9d,UAAU75d,OACtCpD,KAAKw0vB,OAAS8tK,EACdti6B,KAAK4p5B,aAAaxj5B,OAAS,OACvBwp5B,IACIiT,GACA7i6B,KAAKoi5B,uBAAuBlo4B,GAAKla,KAAKoi5B,uBAAuBlo4B,EAC7Dla,KAAKoi5B,uBAAuBjo4B,GAAKna,KAAKoi5B,uBAAuBjo4B,EAC7Dna,KAAK4h5B,mBAAqBn4zB,GAAO,CAAC,EAAGzpF,KAAKoi5B,uBAAwB,CAAC,GAAG,GACtEpi5B,KAAKoi5B,uBAAyB,CAAElo4B,EAAG,EAAGC,EAAG,GACzCna,KAAKih5B,UAAYjh5B,KAAK4h5B,mBAAmB1n4B,EACzCla,KAAKkh5B,SAAWlh5B,KAAK4h5B,mBAAmBzn4B,GAGxCna,KAAK4h5B,mBAAqBn4zB,GAAO,CAAC,EAAGzpF,KAAKoi5B,uBAAwB,CAAC,GAAG,IAG9Epi5B,KAAKi75B,WAAWj75B,KAAK4h5B,mBAAmB1n4B,EAAGla,KAAK4h5B,mBAAmBzn4B,EAAG,IACtEna,KAAKk75B,oBAAoBl75B,KAAK4h5B,mBAAmB1n4B,EAAGla,KAAK4h5B,mBAAmBzn4B,EAAG,IAC/Ena,KAAK4p5B,aAAaxj5B,OAASsmF,EAC3B1sF,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,QAC3E5oJ,KAAK2+4B,UAAYl1zB,GAAO,CAAC,EAAGq50B,EAAoB,CAAC,GAAG,GAC/C/2lB,GAAkB/rU,KAAK2+4B,UAAUC,cAClC5+4B,KAAKu25B,WAAW,YAAav25B,KAAK2+4B,UAAW,KAAM,MAAM,GAE7D3+4B,KAAKuh5B,iBAAkB,CAC3B,EACA5E,EAAYhs4B,UAAUsy5B,WAAa,SAAUrh6B,GACzC,IAAIsh6B,EAAat/5B,KAAKwe,IAAI,GAAI,GACzBxe,KAAKmgB,MAAM/jB,KAAK+g5B,WAAamiB,GAAcA,IAAgB,KAAkB,KAAXth6B,EACnE5B,KAAK+g5B,WAAa,EAGlB/g5B,KAAK+g5B,YAAcn/4B,EAEnB5B,KAAKsi5B,UACLti5B,KAAKui5B,eAAiBvi5B,KAAK+g5B,WAG3B/g5B,KAAKwi5B,kBAAoBxi5B,KAAK+g5B,WAElC,IAAIgd,EAAct00B,GAAO,GAAIzpF,KAAKu94B,QAAS,IAAI,GAC3CyB,EAAgBv1zB,GAAO,CAAC,EAAGzpF,KAAK2+4B,UAAW,CAAC,GAAG,GACnD3+4B,KAAKu94B,QAAU,GACfv94B,KAAK6v5B,mBACL7v5B,KAAKs55B,8BAA8B,WACnCt55B,KAAK0h5B,cAAe,EACpB1h5B,KAAKs65B,uBACL,IAAI5t0B,EAAO1sF,KAAK4p5B,aAAaxj5B,OAC7BpG,KAAKq45B,yBACLr45B,KAAK4p5B,aAAa5qb,UAAUh/d,KAAK2r5B,QAAS3r5B,KAAKmh5B,QAASnh5B,KAAKoh5B,OAAQph5B,KAAKu55B,SAAUv55B,KAAKw55B,UAAWx55B,KAAKih5B,SAAUjh5B,KAAKkh5B,QAASlh5B,KAAKm05B,UAAWn05B,KAAKo05B,YACtJp05B,KAAK4p5B,aAAaxj5B,OAASsmF,EAC3B1sF,KAAK0h5B,cAAe,EACpB1h5B,KAAKs55B,8BAA8B,WACnCt55B,KAAKu94B,QAAUwgB,EACf/95B,KAAK2+4B,UAAYK,CACrB,EACArC,EAAYhs4B,UAAUwy5B,oBAAsB,SAAUvh6B,EAAO4llB,GACzD,IAAI07U,EAAat/5B,KAAKwe,IAAI,GAAI,GACzBxe,KAAKmgB,MAAM/jB,KAAK+g5B,WAAamiB,GAAcA,IAAgB,KAAkB,KAAXth6B,EACnE5B,KAAK+g5B,WAAa,EAGlB/g5B,KAAK+g5B,YAAcn/4B,EAEnB5B,KAAKsi5B,UACLti5B,KAAKui5B,eAAiBvi5B,KAAK+g5B,WAG3B/g5B,KAAKwi5B,kBAAoBxi5B,KAAK+g5B,WAElC,IAAIggB,EAAe,CAAEvi5B,MAAO,EAAGoqI,OAAQ,GACnC5oJ,KAAKsi5B,UACLye,EAAe/g6B,KAAKoj5B,SAASxh5B,EAAO4llB,KAGpCu5U,EAAe/g6B,KAAKgh6B,iBAAiBhh6B,KAAKu55B,SAAUv55B,KAAKw55B,YAC5Ch74B,OAAUui5B,EAAavi5B,MAAQxe,KAAK+g5B,WACjDggB,EAAan4wB,QAAWm4wB,EAAan4wB,OAAS5oJ,KAAK+g5B,WACnD/g5B,KAAKih5B,UAAYjh5B,KAAK6q5B,YAAY9lpB,YAAcg8pB,EAAavi5B,OAAS,EACtExe,KAAKkh5B,SAAWlh5B,KAAK6q5B,YAAY3lpB,aAAe67pB,EAAan4wB,QAAU,GAE3E5oJ,KAAKih6B,gBAAgBF,EACzB,EACApkB,EAAYhs4B,UAAUyy4B,SAAW,SAAUxh5B,EAAO4llB,GAC9C,IAAIy5T,EAAWjh5B,KAAKih5B,SAChBC,EAAUlh5B,KAAKkh5B,QACf6f,EAAe,CAAEvi5B,MAAO,EAAGoqI,OAAQ,GAiDvC,OAhDqB,IAAjB5oJ,KAAKmh5B,SAAiC,IAAhBnh5B,KAAKoh5B,OAEvB2f,EADAh1lB,GAAkBy7Q,GACHxnlB,KAAKoj6B,iBAAiBxh6B,EAAO,MAG7B5B,KAAKoj6B,iBAAiBxh6B,EAAO4llB,KAK5Cu5U,EADA/g6B,KAAKw0vB,OAAS,KAAO,GAAKx0vB,KAAKw0vB,OAAS,MAAQ,EACjCx0vB,KAAKgh6B,iBAAiBhh6B,KAAKw55B,UAAWx55B,KAAKu55B,UAG3Cv55B,KAAKgh6B,iBAAiBhh6B,KAAKu55B,SAAUv55B,KAAKw55B,YAEhDh74B,OAAUui5B,EAAavi5B,MAAQxe,KAAK+g5B,WACjDggB,EAAan4wB,QAAWm4wB,EAAan4wB,OAAS5oJ,KAAK+g5B,YAEvD/g5B,KAAKih5B,SAAWA,GAAa8f,EAAavi5B,MAAQxe,KAAKm05B,WAAa,EACpEn05B,KAAKkh5B,QAAUA,GAAY6f,EAAan4wB,OAAS5oJ,KAAKo05B,YAAc,EACpEnT,EAAWjh5B,KAAKih5B,SAChBC,EAAUlh5B,KAAKkh5B,QACVn1kB,GAAkBy7Q,KACfxnlB,KAAKih5B,SAAWz5T,EAAao3T,YAAYn3iB,SACzCznW,KAAKih5B,SAAWz5T,EAAao3T,YAAYn3iB,OACrB,IAAhBznW,KAAKw0vB,SACLx0vB,KAAKqi5B,iBAAiBno4B,GAAM+m4B,EAAWjh5B,KAAKih5B,WAGhDjh5B,KAAKkh5B,QAAU15T,EAAao3T,YAAYl3iB,SACxC1nW,KAAKkh5B,QAAU15T,EAAao3T,YAAYl3iB,OACpB,IAAhB1nW,KAAKw0vB,SACLx0vB,KAAKqi5B,iBAAiBlo4B,GAAM+m4B,EAAUlh5B,KAAKkh5B,UAG/Clh5B,KAAKih5B,SAAW8f,EAAavi5B,MAAQgpkB,EAAao3T,YAAYzB,OAC9Dn94B,KAAKih5B,SAAWz5T,EAAao3T,YAAYzB,KAAO4jB,EAAavi5B,MACzC,IAAhBxe,KAAKw0vB,SACLx0vB,KAAKqi5B,iBAAiBno4B,GAAM+m4B,EAAWjh5B,KAAKih5B,WAGhDjh5B,KAAKkh5B,QAAU6f,EAAan4wB,OAAS4+b,EAAao3T,YAAYxB,OAC9Dp94B,KAAKkh5B,QAAU15T,EAAao3T,YAAYxB,KAAO2jB,EAAan4wB,OACxC,IAAhB5oJ,KAAKw0vB,SACLx0vB,KAAKqi5B,iBAAiBlo4B,GAAM+m4B,EAAUlh5B,KAAKkh5B,WAIhD6f,CACX,EACApkB,EAAYhs4B,UAAU0y5B,aAAe,WACjC,IAAIC,EAAa,CAAEnlc,SAAUn+d,KAAKm+d,SAAU8G,SAAUjle,KAAKile,UAC3Djle,KAAKu55B,SAAWv55B,KAAK2r5B,QAAQnt4B,MAC7Bxe,KAAKw55B,UAAYx55B,KAAK2r5B,QAAQ/iwB,OAC9B,IAAIm4wB,EAAe/g6B,KAAKgh6B,iBAAiBhh6B,KAAKu55B,SAAUv55B,KAAKw55B,WAC7Dx55B,KAAKih5B,UAAYjh5B,KAAK6q5B,YAAY9lpB,YAAcg8pB,EAAavi5B,OAAS,EACtExe,KAAKkh5B,SAAWlh5B,KAAK6q5B,YAAY3lpB,aAAe67pB,EAAan4wB,QAAU,EACvE5oJ,KAAKih6B,gBAAgBF,GACrB/g6B,KAAKqh5B,eAAiB,CAAE55iB,OAAQznW,KAAKih5B,SAAUv5iB,OAAQ1nW,KAAKkh5B,QAAS1i4B,MAAOxe,KAAKm05B,UAAWvrwB,OAAQ5oJ,KAAKo05B,YACzG,IAAI1n0B,EAAO1sF,KAAK4p5B,aAAaxj5B,OAC7BpG,KAAK4p5B,aAAaxj5B,OAAS,OAC3BpG,KAAK835B,iBACL935B,KAAK265B,uBACL365B,KAAK4p5B,aAAaxj5B,OAASsmF,EACvB1sF,KAAKm05B,UAAY,GAAKn05B,KAAKo05B,WAAa,IACxCp05B,KAAKy94B,eAAgB,GAErBz94B,KAAK484B,YACsB,KAAvB584B,KAAKm+4B,eACLn+4B,KAAKux5B,UAAUvx5B,KAAKur5B,aAAavr5B,KAAKm+4B,gBAG1Cn+4B,KAAK4O,UACL5O,KAAKmV,QAAQ6f,aAAa,QAAS,cAEnCh1B,KAAKy94B,eAAgD,QAA/Bz94B,KAAKmV,QAAQhP,MAAMmoI,SACzCtuI,KAAKsgS,QAAQ,aAAcgjoB,GAEM,IAAjCtj6B,KAAKop5B,aAAarI,YAAqBh1kB,GAAkB/rU,KAAKop5B,aAAama,YAC3Evj6B,KAAK4uI,KAAK5uI,KAAKop5B,aAAarI,WAAY/g5B,KAAKop5B,aAAama,WAE1Dx3lB,GAAkB/rU,KAAKwj6B,oBACvBxj6B,KAAKwj6B,iBAAmBxj6B,KAAKop5B,aAAarI,WAElD,EACApE,EAAYhs4B,UAAU8y5B,YAAc,SAAU/+vB,GAC1C,IAAIplK,EAAQU,KAEAA,KACN2r5B,QAAQjnvB,IAAMA,EACpB1kK,KAAK2r5B,QAAQhsuB,OAAS,WAClBrgL,EAAMsq5B,aAAa5qb,UAAU1/d,EAAMqs5B,QAAS,EAAG,EAAGrs5B,EAAMur5B,YAAYrs4B,MAAOlf,EAAMur5B,YAAYjiwB,QAC7F8pR,GAAYpza,EAAM6V,SAClB7V,EAAM6V,QAAQhP,MAAMmoI,QAAU,IAC9BhvI,EAAM+j6B,eACF/j6B,EAAM2/4B,YAAYQ,aAClBng5B,EAAM2/4B,YAAYQ,YAAa,EAC/Bng5B,EAAMur5B,YAAY1k5B,MAAMi+J,QAAU,SAEtC9kK,EAAMs94B,WAAat94B,EAAMyl5B,cAAe,EACpC99jB,GAAQM,WACJjoV,EAAM+xjB,aAAiBtlP,GAAkB76S,SAASg8T,eAAe5tV,EAAM6V,QAAQghB,GAAK,cAClF41S,GAAkBkhB,GAAa/7T,SAASg8T,eAAe5tV,EAAM6V,QAAQghB,GAAK,YAAa,aACzF82T,GAAa/7T,SAASg8T,eAAe5tV,EAAM6V,QAAQghB,GAAK,YAAa,WAAWihH,UAE/E20L,GAAkB76S,SAASg8T,eAAe5tV,EAAM6V,QAAQghB,GAAK,oBAC5D41S,GAAkBkhB,GAAa/7T,SAASg8T,eAAe5tV,EAAM6V,QAAQghB,GAAK,kBAAmB,aAC/F82T,GAAa/7T,SAASg8T,eAAe5tV,EAAM6V,QAAQghB,GAAK,kBAAmB,WAAWihH,UAE1F93I,EAAM4s5B,iBAAgB,EAAOjlkB,GAAQM,SAAU,MAC/CjoV,EAAM6s5B,yBAGF7s5B,EAAM+xjB,aAAiBtlP,GAAkB76S,SAASg8T,eAAe5tV,EAAM6V,QAAQghB,GAAK,cAClF41S,GAAkBkhB,GAAa/7T,SAASg8T,eAAe5tV,EAAM6V,QAAQghB,GAAK,YAAa,aACzF82T,GAAa/7T,SAASg8T,eAAe5tV,EAAM6V,QAAQghB,GAAK,YAAa,WAAWihH,UAEpF93I,EAAM4s5B,iBAAgB,GAAO,EAAO,MAE5C,EACAls5B,KAAK2r5B,QAAQly2B,QAAU,WACnBi5X,GAAYpza,EAAM6V,SAClB7V,EAAMyl5B,cAAe,CACzB,CACJ,EACApI,EAAYhs4B,UAAUk/4B,iBAAmB,WACrC7v5B,KAAK2+4B,UAAY,CAAC,EAClB3+4B,KAAK2+4B,UAAUC,YAAc,CAAEn3iB,OAAQ,EAAGC,OAAQ,EAAGy1iB,KAAM,EAAGC,KAAM,EAAG5+3B,MAAO,EAAGoqI,OAAQ,GACzF5oJ,KAAK2+4B,UAAUG,SAAW,GAC1B9+4B,KAAK2+4B,UAAUI,cAAgB,GAC/B/+4B,KAAK2+4B,UAAUE,YAAc,GAC7B7+4B,KAAK2+4B,UAAUjB,eAAiB194B,KAAK094B,eACrC194B,KAAK2+4B,UAAUd,aAAe794B,KAAK694B,YACvC,EACAlB,EAAYhs4B,UAAUwi5B,WAAa,WAC3Bnz5B,KAAK2+4B,UAAUd,aAAaztxB,OAC5BpwH,KAAK4o5B,aAAarkb,KAAO,QAAUvke,KAAK2+4B,UAAUd,aAAa5+lB,SAAtC,MAA8Dj/S,KAAK2+4B,UAAUd,aAAar7b,YAEnHxid,KAAK2+4B,UAAUd,aAAavtxB,SAC5BtwH,KAAK4o5B,aAAarkb,KAAO,QAAUvke,KAAK2+4B,UAAUd,aAAa5+lB,SAAtC,MAA8Dj/S,KAAK2+4B,UAAUd,aAAar7b,YAEnHxid,KAAK2+4B,UAAUd,aAAaztxB,MAAQpwH,KAAK2+4B,UAAUd,aAAavtxB,SAChEtwH,KAAK4o5B,aAAarkb,KAAO,eAAiBvke,KAAK2+4B,UAAUd,aAAa5+lB,SAA7C,MAAqEj/S,KAAK2+4B,UAAUd,aAAar7b,YAEzHxid,KAAK2+4B,UAAUd,aAAaztxB,MAASpwH,KAAK2+4B,UAAUd,aAAavtxB,SAClEtwH,KAAK4o5B,aAAarkb,KAAOvke,KAAK2+4B,UAAUd,aAAa5+lB,SAA5Bj/S,MAAoDA,KAAK2+4B,UAAUd,aAAar7b,YAE7G,IAAI4rH,EAAOpukB,KAAK2+4B,UAAU7B,WAAWnq3B,MAAM,MACvCsN,EAAuC,UAAhCjgC,KAAKmr5B,SAAShl5B,MAAMi+J,QAAsBpkK,KAAK+z5B,YAAW,GAAQ/z5B,KAAK+z5B,aAC9Ev14B,EAAQxe,KAAK4o5B,aAAaoL,YAAY/z3B,GAAMzhB,MAA+C,GAAvCxe,KAAK2+4B,UAAUd,aAAa5+lB,SAChFr2J,EAASwlb,EAAKhrkB,QAAUpD,KAAK2+4B,UAAUd,aAAa5+lB,SAAkD,IAAvCj/S,KAAK2+4B,UAAUd,aAAa5+lB,UAC/Fj/S,KAAKi05B,iBAAiBz14B,EAAOoqI,GAC7B5oJ,KAAKk05B,mBAAmBl05B,KAAK2+4B,UAAUC,YAAa5+4B,KAAK2+4B,WACzD3+4B,KAAK+x5B,YAAY/x5B,KAAK2+4B,UAC1B,EACAhC,EAAYhs4B,UAAUsj5B,iBAAmB,SAAUz14B,EAAOoqI,GACtD,IAAI4rmB,EAASx0vB,KAAKw0vB,QAEdA,EAD+B,IAA/Bx0vB,KAAK2+4B,UAAU+kB,YACN1j6B,KAAKw0vB,OAGLx0vB,KAAKw0vB,OAASx0vB,KAAK2+4B,UAAU+kB,aAE7B,IACTlvK,EAAS,IAAMA,GAEnB,IAAK,IAAIrovB,EAAI,EAAGA,EAAInM,KAAK2+4B,UAAUE,YAAYz74B,OAAQ+I,IACpC,IAAXqovB,EACoD,eAAhDx0vB,KAAK2+4B,UAAUE,YAAY1y4B,GAAGuU,cAC9B1gB,KAAK2+4B,UAAUC,YAAc,CAAEn3iB,OAAQznW,KAAK2+4B,UAAUC,YAAYzB,KAAO3+3B,EACrEkpV,OAAQ1nW,KAAK2+4B,UAAUC,YAAYl3iB,OACnCy1iB,KAAOn94B,KAAK2+4B,UAAUC,YAAYzB,KAClCC,KAAMp94B,KAAK2+4B,UAAUC,YAAYl3iB,QAAU9+M,GAAkB,IAEZ,aAAhD5oJ,KAAK2+4B,UAAUE,YAAY1y4B,GAAGuU,eACnC1gB,KAAK2+4B,UAAUC,YAAYl3iB,OAAS1nW,KAAK2+4B,UAAUC,YAAYxB,KAAOx0vB,EACtE5oJ,KAAK2+4B,UAAUC,YAAc,CAAEn3iB,OAAQznW,KAAK2+4B,UAAUC,YAAYn3iB,OAAQC,OAAQ1nW,KAAK2+4B,UAAUC,YAAYl3iB,OACzGy1iB,KAAOn94B,KAAK2+4B,UAAUC,YAAYn3iB,QAAUjpV,GAAgB,GAC5D4+3B,KAAMp94B,KAAK2+4B,UAAUC,YAAYxB,OAGrCp94B,KAAK2+4B,UAAUC,YAAc,CAAEn3iB,OAAQznW,KAAK2+4B,UAAUC,YAAYn3iB,OAAQC,OAAQ1nW,KAAK2+4B,UAAUC,YAAYl3iB,OACzGy1iB,KAAOn94B,KAAK2+4B,UAAUC,YAAYn3iB,QAAUjpV,GAAgB,GAC5D4+3B,KAAMp94B,KAAK2+4B,UAAUC,YAAYl3iB,QAAU9+M,GAAkB,IAGrD,KAAX4rmB,EAC+C,aAAhDx0vB,KAAK2+4B,UAAUE,YAAY1y4B,GAAGuU,eAC9B1gB,KAAK2+4B,UAAUC,YAAYn3iB,OAASznW,KAAK2+4B,UAAUC,YAAYzB,KAAOv0vB,EACtE5oJ,KAAK2+4B,UAAUC,YAAc,CAAEn3iB,OAAQznW,KAAK2+4B,UAAUC,YAAYn3iB,OAC9DC,OAAQ1nW,KAAK2+4B,UAAUC,YAAYxB,KAAO5+3B,EAC1C2+3B,KAAOn94B,KAAK2+4B,UAAUC,YAAYzB,KAClCC,KAAMp94B,KAAK2+4B,UAAUC,YAAYxB,OAEgB,eAAhDp94B,KAAK2+4B,UAAUE,YAAY1y4B,GAAGuU,eACnC1gB,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAK2+4B,UAAUC,YAAYn3iB,OAAS7+M,EACtE5oJ,KAAK2+4B,UAAUC,YAAc,CAAEn3iB,OAAQznW,KAAK2+4B,UAAUC,YAAYn3iB,OAAQC,OAAQ1nW,KAAK2+4B,UAAUC,YAAYl3iB,OACzGy1iB,KAAOn94B,KAAK2+4B,UAAUC,YAAYzB,KAClCC,KAAMp94B,KAAK2+4B,UAAUC,YAAYl3iB,QAAUlpV,GAAgB,MAG/Dxe,KAAK2+4B,UAAUC,YAAYn3iB,OAASznW,KAAK2+4B,UAAUC,YAAYzB,KAAOv0vB,EACtE5oJ,KAAK2+4B,UAAUC,YAAc,CAAEn3iB,OAAQznW,KAAK2+4B,UAAUC,YAAYn3iB,OAAQC,OAAQ1nW,KAAK2+4B,UAAUC,YAAYl3iB,OACzGy1iB,KAAOn94B,KAAK2+4B,UAAUC,YAAYzB,KAClCC,KAAMp94B,KAAK2+4B,UAAUC,YAAYl3iB,QAAUlpV,GAAgB,KAGnD,MAAXg2uB,EAC+C,eAAhDx0vB,KAAK2+4B,UAAUE,YAAY1y4B,GAAGuU,eAC9B1gB,KAAK2+4B,UAAUC,YAAYl3iB,OAAS1nW,KAAK2+4B,UAAUC,YAAYxB,KAAOx0vB,EACtE5oJ,KAAK2+4B,UAAUC,YAAc,CAAEn3iB,OAAQznW,KAAK2+4B,UAAUC,YAAYn3iB,OAC9DC,OAAQ1nW,KAAK2+4B,UAAUC,YAAYl3iB,OACnCy1iB,KAAOn94B,KAAK2+4B,UAAUC,YAAYn3iB,OAASjpV,EAC3C4+3B,KAAMp94B,KAAK2+4B,UAAUC,YAAYxB,OAEgB,aAAhDp94B,KAAK2+4B,UAAUE,YAAY1y4B,GAAGuU,eACnC1gB,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAK2+4B,UAAUC,YAAYl3iB,OAAS9+M,EACtE5oJ,KAAK2+4B,UAAUC,YAAc,CAAEzB,KAAMn94B,KAAK2+4B,UAAUC,YAAYzB,KAAMC,KAAMp94B,KAAK2+4B,UAAUC,YAAYxB,KACnG31iB,OAASznW,KAAK2+4B,UAAUC,YAAYzB,MAAQ3+3B,GAAgB,GAC5DkpV,OAAQ1nW,KAAK2+4B,UAAUC,YAAYl3iB,SAGvC1nW,KAAK2+4B,UAAUC,YAAc,CAAEzB,KAAMn94B,KAAK2+4B,UAAUC,YAAYzB,KAAMC,KAAMp94B,KAAK2+4B,UAAUC,YAAYxB,KACnG31iB,OAASznW,KAAK2+4B,UAAUC,YAAYzB,MAAQ3+3B,GAAgB,GAC5DkpV,OAAQ1nW,KAAK2+4B,UAAUC,YAAYxB,MAAQx0vB,GAAkB,IAGrD,MAAX4rmB,IAC+C,aAAhDx0vB,KAAK2+4B,UAAUE,YAAY1y4B,GAAGuU,cAC9B1gB,KAAK2+4B,UAAUC,YAAc,CAAEn3iB,OAAQznW,KAAK2+4B,UAAUC,YAAYn3iB,OAC9DC,OAAQ1nW,KAAK2+4B,UAAUC,YAAYl3iB,OACnCy1iB,KAAOn94B,KAAK2+4B,UAAUC,YAAYn3iB,OAAS7+M,EAC3Cw0vB,KAAMp94B,KAAK2+4B,UAAUC,YAAYl3iB,QAAUlpV,GAAgB,IAEV,eAAhDxe,KAAK2+4B,UAAUE,YAAY1y4B,GAAGuU,eACnC1gB,KAAK2+4B,UAAUC,YAAYn3iB,OAASznW,KAAK2+4B,UAAUC,YAAYzB,KAAOv0vB,EACtE5oJ,KAAK2+4B,UAAUC,YAAc,CAAEn3iB,OAAQznW,KAAK2+4B,UAAUC,YAAYn3iB,OAC9DC,OAAQ1nW,KAAK2+4B,UAAUC,YAAYxB,MAAQ5+3B,GAAgB,GAC3D2+3B,KAAMn94B,KAAK2+4B,UAAUC,YAAYzB,KACjCC,KAAMp94B,KAAK2+4B,UAAUC,YAAYxB,QAGrCp94B,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAK2+4B,UAAUC,YAAYn3iB,OAAS7+M,EACtE5oJ,KAAK2+4B,UAAUC,YAAc,CAAEn3iB,OAAQznW,KAAK2+4B,UAAUC,YAAYn3iB,OAC9DC,OAAQ1nW,KAAK2+4B,UAAUC,YAAYxB,MAAQ5+3B,GAAgB,GAC3D2+3B,KAAMn94B,KAAK2+4B,UAAUC,YAAYzB,KACjCC,KAAMp94B,KAAK2+4B,UAAUC,YAAYxB,QAIP,IAAtCp94B,KAAK2+4B,UAAUE,YAAYz74B,SACZ,IAAXoxvB,EACAx0vB,KAAK2+4B,UAAUC,YAAc,CAAEn3iB,OAAQznW,KAAK2+4B,UAAUC,YAAYn3iB,OAAQC,OAAQ1nW,KAAK2+4B,UAAUC,YAAYl3iB,OACzGy1iB,KAAOn94B,KAAK2+4B,UAAUC,YAAYn3iB,QAAUjpV,GAAgB,GAC5D4+3B,KAAMp94B,KAAK2+4B,UAAUC,YAAYl3iB,QAAU9+M,GAAkB,IAEjD,KAAX4rmB,GACLx0vB,KAAK2+4B,UAAUC,YAAYn3iB,OAASznW,KAAK2+4B,UAAUC,YAAYzB,KAAOv0vB,EACtE5oJ,KAAK2+4B,UAAUC,YAAc,CAAEn3iB,OAAQznW,KAAK2+4B,UAAUC,YAAYn3iB,OAAQC,OAAQ1nW,KAAK2+4B,UAAUC,YAAYl3iB,OACzGy1iB,KAAOn94B,KAAK2+4B,UAAUC,YAAYzB,KAClCC,KAAMp94B,KAAK2+4B,UAAUC,YAAYl3iB,QAAUlpV,GAAgB,KAE/C,MAAXg2uB,EACLx0vB,KAAK2+4B,UAAUC,YAAc,CAAEzB,KAAMn94B,KAAK2+4B,UAAUC,YAAYzB,KAAMC,KAAMp94B,KAAK2+4B,UAAUC,YAAYxB,KACnG31iB,OAASznW,KAAK2+4B,UAAUC,YAAYzB,MAAQ3+3B,GAAgB,GAC5DkpV,OAAQ1nW,KAAK2+4B,UAAUC,YAAYxB,MAAQx0vB,GAAkB,IAEjD,MAAX4rmB,IACLx0vB,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAK2+4B,UAAUC,YAAYn3iB,OAAS7+M,EACtE5oJ,KAAK2+4B,UAAUC,YAAc,CAAEn3iB,OAAQznW,KAAK2+4B,UAAUC,YAAYn3iB,OAC9DC,OAAQ1nW,KAAK2+4B,UAAUC,YAAYxB,MAAQ5+3B,GAAgB,GAC3D2+3B,KAAMn94B,KAAK2+4B,UAAUC,YAAYzB,KACjCC,KAAMp94B,KAAK2+4B,UAAUC,YAAYxB,QAG7Cp94B,KAAK2+4B,UAAUC,YAAYpg4B,MAAQxe,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAK2+4B,UAAUC,YAAYn3iB,OAChGznW,KAAK2+4B,UAAUC,YAAYh2vB,OAAS5oJ,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAK2+4B,UAAUC,YAAYl3iB,OAC7E,MAAhB1nW,KAAKw0vB,SAAmC,MAAjBx0vB,KAAKw0vB,SAC5Bx0vB,KAAKw0vB,OAAS,EAEtB,EACAmoJ,EAAYhs4B,UAAUsg5B,cAAgB,WAClC,IAAIpg5B,EAAM,CAAEuy4B,SAAU,EAAGC,YAAa,EAAGhB,iBAAkB,CAAEno4B,EAAG,EAAGC,EAAG,GAAKio4B,uBAAwB,CAAElo4B,EAAG,EAAGC,EAAG,GAC1Ggo4B,yBAA0B,CAAEjo4B,EAAG,EAAGC,EAAG,GAAKmp4B,iBAAkB,CAAEpp4B,EAAG,EAAGC,EAAG,GAAKwk4B,UAAW,CAAC,EACxFgD,eAAgB,GAAIntJ,OAAQ,EAAG2pJ,cAAe,GAAI4C,WAAY,EAAG0C,kBAAmB,EACpFF,WAAY,CAAE97iB,OAAQ,EAAGC,OAAQ,EAAGlpV,MAAO,EAAGoqI,OAAQ,GACtD46vB,UAAW,CAAE/7iB,OAAQ,EAAGC,OAAQ,EAAGlpV,MAAO,EAAGoqI,OAAQ,GAAKxiJ,OAAQ,IAkBtE,OAjBAyK,EAAIuy4B,SAAWpj5B,KAAKui5B,eACpB1x4B,EAAIwy4B,YAAcrj5B,KAAKwi5B,kBACvB3x4B,EAAIkw4B,WAAa/g5B,KAAKop5B,aAAarI,WACnClw4B,EAAI4y4B,kBAAoBzj5B,KAAKyj5B,kBAC7B5y4B,EAAIwx4B,iBAAmB54zB,GAAO,CAAC,EAAGzpF,KAAKqi5B,iBAAkB,CAAC,GAAG,GAC7Dxx4B,EAAIux4B,uBAAyB34zB,GAAO,CAAC,EAAGzpF,KAAKoi5B,uBAAwB,CAAC,GAAG,GACzEvx4B,EAAIsx4B,yBAA2B14zB,GAAO,CAAC,EAAGzpF,KAAKmi5B,yBAA0B,CAAC,GAAG,GAC7Etx4B,EAAIyy4B,iBAAmB75zB,GAAO,CAAC,EAAGzpF,KAAKsj5B,iBAAkB,CAAC,GAAG,GAC7Dzy4B,EAAI8t4B,UAAYl1zB,GAAO,CAAC,EAAGzpF,KAAK2+4B,UAAW,CAAC,GAAG,GAC/C9t4B,EAAI8w4B,eAAiBl4zB,GAAO,GAAIzpF,KAAK2h5B,eAAgB,IAAI,GACzD9w4B,EAAI2jvB,OAASx0vB,KAAKw0vB,OAClB3jvB,EAAIst4B,cAAgBn+4B,KAAKm+4B,cACzBtt4B,EAAI0y4B,WAAa,CAAE97iB,OAAQznW,KAAKih5B,SAAUv5iB,OAAQ1nW,KAAKkh5B,QAAS/D,KAAM,EAAGC,KAAM,EAC3E5+3B,MAAOxe,KAAKm05B,UAAWvrwB,OAAQ5oJ,KAAKo05B,YACxCvj5B,EAAI2y4B,UAAY,CAAE/7iB,OAAQznW,KAAKmh5B,QAASz5iB,OAAQ1nW,KAAKoh5B,OAAQjE,KAAM,EAAGC,KAAM,EACxE5+3B,MAAOxe,KAAKu55B,SAAU3wwB,OAAQ5oJ,KAAKw55B,WACvC3o5B,EAAIzK,OAASpG,KAAK4p5B,aAAaxj5B,OACxByK,CACX,EACA8r4B,EAAYhs4B,UAAU0g5B,mBAAqB,SAAU15b,EAAW88b,EAAaC,EAAiBE,EAAmBE,EAAiBqD,EAAcC,EAAauL,EAAgB9hB,GACzK,IAAK7h5B,KAAK0i5B,kBAAoB1i5B,KAAK+o5B,cAAe,CAC9C,IAAIlvT,EAAa75lB,KAAKix5B,gBACtBp3T,EAAW0jT,QAAU9zzB,GAAO,GAAIzpF,KAAKu94B,QAAS,IAAI,GAClD1jT,EAAW58H,UAAYxzY,GAAO,GAAIzpF,KAAKi9d,UAAW,IAAI,GACtD48H,EAAW6pT,iBAAmBj6zB,GAAO,GAAIzpF,KAAK0j5B,iBAAkB,IAAI,GACpE1j5B,KAAKw94B,aAAapx4B,KAAK,CAAEurd,UAAWA,EAAW88b,YAAaA,EAAa56T,WAAYA,EACjF66T,gBAAiBA,EAAiBC,eAAgB96T,EAAW0jT,QAC7DqX,kBAAmBA,EAAmBC,iBAAkBh7T,EAAW58H,UACnE63b,gBAAiBA,EAAiBC,eAAgBtr0B,GAAO,CAAC,EAAGzpF,KAAKmj5B,QAAS,CAAC,GAAG,GAC/EgV,aAAcA,EAAcC,YAAaA,EAAahy5B,OAAQu95B,EAAgB9hB,aAAcA,IAChG7h5B,KAAKkv5B,yBACT,CACJ,EACAvS,EAAYhs4B,UAAU4+4B,WAAa,SAAUl4mB,EAAcp+R,GACvD,IAAKjZ,KAAK4O,SAAU,CAEhB,IAAI8ie,EAAYz4d,EAAK5Q,OAAOmte,MAAM,GAE9BG,EAAWjE,EACf,IAAK3lK,GAAkB4pK,EAASjxe,KAAKiuB,MAAM,QACtCo5S,GAAkB4pK,EAASjxe,KAAKiuB,MAAM,KAAK,KACE,QAA9Cgjd,EAASjxe,KAAKiuB,MAAM,KAAK,GAAGjS,eACkB,SAA9Ci1d,EAASjxe,KAAKiuB,MAAM,KAAK,GAAGjS,eACkB,QAA9Ci1d,EAASjxe,KAAKiuB,MAAM,KAAK,GAAGjS,eACkB,QAA9Ci1d,EAASjxe,KAAKiuB,MAAM,KAAK,GAAGjS,cAC5B,OAIJ,GAFAixZ,GAAY3xa,KAAKmV,SACjBnV,KAAKmV,QAAQhP,MAAMmoI,QAAU,MACxBy9L,GAAkB4pK,EAASjxe,KAAKiuB,MAAM,OACtCo5S,GAAkB4pK,EAASjxe,KAAKiuB,MAAM,KAAK,IAU5C3yB,KAAKile,SAAW,SAViC,CACjD,IAAIA,EAAWjle,KAAKur5B,aAAa51a,EAASjxe,KAAKiuB,MAAM,KAAK,IAEtD3yB,KAAKile,SADQ,QAAbA,GAAmC,QAAbA,EACN,OAGAA,CAExB,CAIIjle,KAAKy94B,gBACLz94B,KAAKy94B,eAAgB,EACrBz94B,KAAKi5C,SAEL8yR,GAAkB/rU,KAAKm7nB,mBACvBn7nB,KAAKi5C,QACLj5C,KAAKmpF,UAETnpF,KAAKm+d,SAAW9mL,EAAaz1S,MAAM+wB,MAAM,MAAM0kR,EAAaz1S,MAAM+wB,MAAM,MAAMvvB,OAAS,GACvFpD,KAAKm+d,SAAWn+d,KAAKm+d,SAASxrc,MAAM,KAAK,GAEzC,IACIs8F,EADQj+F,OAAOwoG,IACHyqW,gBAAgByN,GAChC1xe,KAAKyj6B,YAAYx0yB,EAAIn4G,YACrBugS,EAAaz1S,MAAQ,EACzB,CACJ,EACA+64B,EAAYhs4B,UAAUu64B,cAAgB,SAAU7q5B,GAC5C,GAA6B,SAAzBL,KAAK2+4B,UAAUnzwB,MAAkB,CACjCxrI,KAAKmr5B,SAAShl5B,MAAMgjS,gBAAkB,MACtC,IAAIqrd,OAAS,EACTj3R,EAAQ,GAUZ,IARIi3R,EAD+B,IAA/Bx0vB,KAAK2+4B,UAAU+kB,YACN1j6B,KAAKw0vB,OAGLx0vB,KAAKw0vB,OAASx0vB,KAAK2+4B,UAAU+kB,aAE7B,IACTlvK,EAAS,IAAMA,GAEfx0vB,KAAK2+4B,UAAUE,YAAYz74B,OAAS,EAEpC,IAAK,IAAI+I,EAAI,EAAGA,EAAInM,KAAK2+4B,UAAUE,YAAYz74B,OAAQ+I,IAE/Coxd,GADW,IAAXi3R,GAAgBA,EAAS,KAAO,GAAgB,MAAXA,EACoB,eAAhDx0vB,KAAK2+4B,UAAUE,YAAY1y4B,GAAGuU,cAAiC,eACpE,eAGqD,eAAhD1gB,KAAK2+4B,UAAUE,YAAY1y4B,GAAGuU,cAAiC,eACpE,gBAE4C,eAAhD1gB,KAAK2+4B,UAAUE,YAAY1y4B,GAAGuU,eAGuB,aAAhD1gB,KAAK2+4B,UAAUE,YAAY1y4B,GAAGuU,iBAFnC1gB,KAAKmr5B,SAAShl5B,MAAMoyD,UAAY,UAAYi8rB,EAAS,OAASj3R,QAQtEv9d,KAAKmr5B,SAAShl5B,MAAMoyD,UAAY,UAAYi8rB,EAAS,OAEzDx0vB,KAAK4j6B,eAAevj6B,EACxB,CACJ,EACAs84B,EAAYhs4B,UAAUkz5B,eAAiB,SAAU5j4B,GAC7C,IAAImvG,EAEJ,OADmB7iH,SAAS0T,EAAM,IAAM,GAEpC,KAAK,EACDmvG,EAAcpvI,KAAK+zZ,KAAKhuD,YAAY,UACpC,MACJ,KAAK,EACD32N,EAAcpvI,KAAK+zZ,KAAKhuD,YAAY,SACpC,MACJ,KAAK,EACD32N,EAAcpvI,KAAK+zZ,KAAKhuD,YAAY,UACpC,MACJ,KAAK,EACD32N,EAAcpvI,KAAK+zZ,KAAKhuD,YAAY,SACpC,MACJ,KAAK,EACD32N,EAAcpvI,KAAK+zZ,KAAKhuD,YAAY,UAG5C,OAAO32N,CACX,EACAutwB,EAAYhs4B,UAAUu/4B,mBAAqB,WACvC,IAAI4T,EAAc9j6B,KAAKmV,QAAQykB,cAAc,6CACzCmq4B,EAAgB/j6B,KAAKmV,QAAQykB,cAAc,+CAC3Coq4B,EAAoBhk6B,KAAKmV,QAAQykB,cAAc,wDAC/Cqq4B,EAAmBjk6B,KAAKmV,QAAQykB,cAAc,yDAC9Csq4B,EAAkBlk6B,KAAKmV,QAAQykB,cAAc,yBAC7Cuq4B,EAAiBnk6B,KAAKmV,QAAQykB,cAAc,uBAC5Cwq4B,EAAepk6B,KAAKmV,QAAQykB,cAAc,qBAC1Cyq4B,EAAgBrk6B,KAAKmV,QAAQykB,cAAc,sBAmC/C,GAlCIkq4B,IACgD,KAA5C9j6B,KAAK2+4B,UAAUjB,eAAeC,UAC9BmmB,EAAY57oB,UAAU90P,IAAI,mBAG1B0w4B,EAAY57oB,UAAU/0P,OAAO,kBAC7B2w4B,EAAY395B,MAAM8gjB,WAAajnjB,KAAK2+4B,UAAUjB,eAAeC,WAEjE1wjB,GAAajtV,KAAKmV,QAAQghB,GAAK,cAAe,eAAev0B,MACvD5B,KAAK2+4B,UAAUjB,eAAeC,UAAY,MAEhDomB,IACAA,EAAc595B,MAAM8gjB,WAAajnjB,KAAK2+4B,UAAUjB,eAAejgb,YAC/DxwI,GAAajtV,KAAKmV,QAAQghB,GAAK,gBAAiB,eAAev0B,MACzD5B,KAAK2+4B,UAAUjB,eAAejgb,YAAc,MAElDumc,IACAA,EAAkB795B,MAAM8gjB,WAAajnjB,KAAK2+4B,UAAUjB,eAAejgb,YACnExwI,GAAajtV,KAAKmV,QAAQghB,GAAK,aAAc,eAAev0B,MACtD5B,KAAK2+4B,UAAUjB,eAAejgb,YAAc,MAElDwmc,IACAA,EAAiB995B,MAAM8gjB,WAAajnjB,KAAK2+4B,UAAUjB,eAAejgb,YAClExwI,GAAajtV,KAAKmV,QAAQghB,GAAK,cAAe,eAAev0B,MACvD5B,KAAK2+4B,UAAUjB,eAAejgb,YAAc,MAElD0mc,IACIl9kB,GAAQM,SACR48kB,EAAenv4B,aAAa,QAAS,eAAiBh1B,KAAK2+4B,UAAUd,aAAar7b,WAAW9hc,eAG7Fyj5B,EAAev63B,YAAc5pC,KAAK2+4B,UAAUd,aAAar7b,YAG7D4hd,EACA,IAAK,IAAIj45B,EAAI,EAAGA,EAAInM,KAAKy+4B,aAAar74B,OAAQ+I,IAC1C,GAAIogB,SAASvsB,KAAKy+4B,aAAaty4B,GAAG8zB,KAAM,KAAOr8B,KAAKmgB,MAAM/jB,KAAK2+4B,UAAUd,aAAa5+lB,UAAW,CAC7FmlnB,EAAax63B,aAAez9B,EAAI,GAAG2K,WACnC,KACJ,CAiCR,GA9BIut5B,IACIp9kB,GAAQM,SACHvnV,KAAK2+4B,UAAUd,aAAaztxB,MAASpwH,KAAK2+4B,UAAUd,aAAavtxB,OAG7DtwH,KAAK2+4B,UAAUd,aAAaztxB,MAAQpwH,KAAK2+4B,UAAUd,aAAavtxB,OACrE+zyB,EAAcrv4B,aAAa,QAAS,wCAE/Bh1B,KAAK2+4B,UAAUd,aAAaztxB,KACjCi0yB,EAAcrv4B,aAAa,QAAS,qBAGpCqv4B,EAAcrv4B,aAAa,QAAS,sBATpCqv4B,EAAcrv4B,aAAa,QAAS,IAanCh1B,KAAK2+4B,UAAUd,aAAaztxB,MAASpwH,KAAK2+4B,UAAUd,aAAavtxB,OAG7DtwH,KAAK2+4B,UAAUd,aAAaztxB,MAAQpwH,KAAK2+4B,UAAUd,aAAavtxB,OACrE+zyB,EAAcz63B,YAAc,cAEvB5pC,KAAK2+4B,UAAUd,aAAaztxB,KACjCi0yB,EAAcz63B,YAAc,OAG5By63B,EAAcz63B,YAAc,SAT5By63B,EAAcz63B,YAAc,WAapCs63B,EAAiB,CACjB,IAAI90xB,EAAcxrI,KAAKmgB,MAAO/jB,KAAK2+4B,UAAUjB,eAAetuwB,aAAct4H,WAC1Eot5B,EAAgBt63B,YAAc5pC,KAAK6j6B,eAAez0xB,EACtD,CACJ,EACAutwB,EAAYhs4B,UAAU2z5B,SAAW,SAAUjk6B,GACnCL,KAAK6se,MAAQ,KACbx2c,aAAar2B,KAAK6se,OAClB7se,KAAK6se,MAAQ,EACb7se,KAAKkr5B,cAAc7q5B,GACf4mV,GAAQM,UACRvnV,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,QAGvF,EAEA+zvB,EAAYhs4B,UAAU24I,cAAgB,SAAUD,GAC5C,IAAIk7wB,EAAOvk6B,KAAK6q5B,YAAYp2nB,wBAI5B,MADa,CAFJ,CAAEv6Q,EAAGmvI,EAAQ,GAAGrD,MAAQu+wB,EAAK5gyB,KAAMxpH,EAAGkvI,EAAQ,GAAGpD,MAAQs+wB,EAAKr2wB,KAC9D,CAAEh0I,EAAGmvI,EAAQ,GAAGrD,MAAQu+wB,EAAK5gyB,KAAMxpH,EAAGkvI,EAAQ,GAAGpD,MAAQs+wB,EAAKr2wB,KAG3E,EACAyuvB,EAAYhs4B,UAAU6z5B,eAAiB,SAAU1kB,EAAc2kB,GAC3D,IAAIC,EAAgB1k6B,KAAK2k6B,YAAY7kB,EAAa,GAAIA,EAAa,IAEnE,OADkB9/4B,KAAK2k6B,YAAYF,EAAW,GAAIA,EAAW,IACxCC,CACzB,EACA/nB,EAAYhs4B,UAAUg05B,YAAc,SAAU1u5B,EAAGC,GAC7C,IAAIgE,EAAI,EACJC,EAAI,EAKR,OAJK4xT,GAAkB91T,IAAO81T,GAAkB71T,KAC5CgE,EAAIjE,EAAEiE,EAAIhE,EAAEgE,EACZC,EAAIlE,EAAEkE,EAAIjE,EAAEiE,GAETvW,KAAK0kS,KAAKpuR,EAAIA,EAAIC,EAAIA,EACjC,EACAwi4B,EAAYhs4B,UAAUi05B,YAAc,SAAUvk6B,GAE1C,IAAI6Z,EACAC,EAFJ9Z,EAAEgO,iBAGa,cAAXhO,EAAEuM,MACFsN,EAAI7Z,EAAEg5B,QACNlf,EAAI9Z,EAAEi5B,UAGNt5B,KAAKo+4B,cAAclk4B,EAAIA,EAAI7Z,EAAEgpJ,QAAQ,GAAGhwH,QACxCr5B,KAAKo+4B,cAAcjk4B,EAAIA,EAAI9Z,EAAEgpJ,QAAQ,GAAG/vH,SAE5C,IAAIir4B,EAAOvk6B,KAAK6q5B,YAAYp2nB,wBAG5B,MAAO,CAAEv6Q,EAFTA,GAAKqq5B,EAAK5gyB,KAEKxpH,EADfA,GAAKoq5B,EAAKr2wB,IAEd,EACAyuvB,EAAYhs4B,UAAUs64B,kBAAoB,SAAU5q5B,GAChDA,EAAEgO,iBACuB,IAArBhO,EAAEgpJ,QAAQjmJ,OACVpD,KAAK6/4B,aAAc,EAGnB7/4B,KAAK0q5B,sBAAsBrq5B,GAE/Bw4O,GAAazlN,IAAIpzB,KAAK6q5B,YAAa,WAAY7q5B,KAAK4q5B,oBAAqB5q5B,MACzE64O,GAAazlN,IAAIpzB,KAAK6q5B,YAAa,YAAa7q5B,KAAK2q5B,sBAAuB3q5B,MAC5E64O,GAAazlN,IAAIpzB,KAAKyq5B,YAAa,WAAYzq5B,KAAK4q5B,oBAAqB5q5B,MACzE64O,GAAazlN,IAAIpzB,KAAKyq5B,YAAa,YAAazq5B,KAAK2q5B,sBAAuB3q5B,KAChF,EACA284B,EAAYhs4B,UAAUk05B,gBAAkB,WAEpC,IADA,IAAIp44B,EACKtgB,EAAI,EAAGA,EAAInM,KAAKu94B,QAAQn64B,OAAQ+I,IACrC,GAAInM,KAAK2+4B,UAAUyX,YAAcp25B,KAAKu94B,QAAQpx4B,GAAGiq5B,UAAW,CACxD3p4B,EAAQtgB,EACR,KACJ,CAEJ,OAAOsgB,CACX,EACAkw3B,EAAYhs4B,UAAUm05B,aAAe,SAAUzk6B,EAAGuv5B,GAC9C,IAAImV,GAAU,EACd,GAAI/k6B,KAAKs+4B,UACL,OAAOymB,EAEX,IAAKh5lB,GAAkB/rU,KAAK2+4B,UAAUnzwB,QAAmC,SAAzBxrI,KAAK2+4B,UAAUnzwB,OAAoBxrI,KAAK4k5B,gBAAiB,CACrG,IAAIogB,EAA6C,UAAhChl6B,KAAKmr5B,SAAShl5B,MAAMi+J,QACjCu6uB,EAAYl1zB,GAAO,CAAC,EAAGzpF,KAAK2+4B,UAAW,MAAM,GACjD3+4B,KAAKg35B,aAAa,KAAM,MAAM,GAC9B,IAAIx3b,EAASx/d,KAAK4k6B,YAAYvk6B,GAC1B6Z,EAAIsld,EAAOtld,EACXC,EAAIqld,EAAOrld,EAKf,GAJA4q5B,EAAU/k6B,KAAKil6B,cAAc/q5B,EAAGC,EAAGy14B,GAC9BA,GACD5v5B,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,QAE3Eo8wB,EACAhl6B,KAAKmr5B,SAASvp5B,MAAQ5B,KAAKu94B,QAAQv94B,KAAKu94B,QAAQn64B,OAAS,GAAG054B,WAC5D984B,KAAKmr5B,SAAShl5B,MAAMi+J,QAAU,QAC9BpkK,KAAK2+4B,UAAYA,EAEb5ykB,GADAt/S,EAAQzsB,KAAK6k6B,mBAEb7k6B,KAAKu94B,QAAQj/2B,MAGbt+B,KAAKu94B,QAAQ/n3B,OAAO/I,EAAO,QAG9B,IAAKs44B,IAAYh5lB,GAAkB4ykB,EAAUnzwB,OAAQ,CAEtD,IAAI/+G,EADJzsB,KAAK2+4B,UAAYA,EAEX5ykB,GADFt/S,EAAQzsB,KAAK6k6B,oBAEbp03B,KAAK+mF,UAAUx3H,KAAK2+4B,UAAUC,eAAiBnu2B,KAAK+mF,UAAUx3H,KAAKu94B,QAAQ9w3B,GAAOmy3B,aAG7E7ykB,GAAkB/rU,KAAK2+4B,UAAUyX,YACtCp25B,KAAKu94B,QAAQj/2B,MAHbt+B,KAAKu94B,QAAQ/n3B,OAAO/I,EAAO,EAKnC,CACJ,CACA,OAAOs44B,CACX,EACApoB,EAAYhs4B,UAAUu05B,aAAe,SAAU7k6B,EAAGuv5B,GAC9C,IAAImV,GAAU,EACd,GAAe,eAAX1k6B,EAAEuM,OAA0B5M,KAAKs+4B,UAAW,CACvCvykB,GAAkB/rU,KAAK2+4B,YAAuC,SAAzB3+4B,KAAK2+4B,UAAUnzwB,QACrDxrI,KAAK6se,MAAQz2c,WAAWp2B,KAAKsk6B,SAASzk6B,KAAKG,MAAO,IAAMK,IAE5D,IAAI2k6B,EAA6C,UAAhChl6B,KAAKmr5B,SAAShl5B,MAAMi+J,QACjCu6uB,EAAYl1zB,GAAO,CAAC,EAAGzpF,KAAK2+4B,UAAW,MAAM,GACjD3+4B,KAAKg35B,aAAa,KAAM,MAAM,GAC9B,IAAIx3b,EAASx/d,KAAK4k6B,YAAYvk6B,GAC1B6Z,EAAIsld,EAAOtld,EACXC,EAAIqld,EAAOrld,EAKf,GAJA4q5B,EAAU/k6B,KAAKil6B,cAAc/q5B,EAAGC,EAAGy14B,GAC9BA,GACD5v5B,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,QAE3Eo8wB,EACAhl6B,KAAKmr5B,SAASvp5B,MAAQ5B,KAAKu94B,QAAQv94B,KAAKu94B,QAAQn64B,OAAS,GAAG054B,WAC5D984B,KAAKmr5B,SAAShl5B,MAAMi+J,QAAU,QAC9BpkK,KAAK2+4B,UAAYA,EAEb5ykB,GADAt/S,EAAQzsB,KAAK6k6B,mBAEb7k6B,KAAKu94B,QAAQj/2B,MAGbt+B,KAAKu94B,QAAQ/n3B,OAAO/I,EAAO,QAG9B,IAAKs44B,IAAYh5lB,GAAkB4ykB,EAAUnzwB,OAAQ,CAEtD,IAAI/+G,EADJzsB,KAAK2+4B,UAAYA,EAEX5ykB,GADFt/S,EAAQzsB,KAAK6k6B,oBACiBp03B,KAAK+mF,UAAUx3H,KAAK2+4B,UAAUC,eAAiBnu2B,KAAK+mF,UAAUx3H,KAAKu94B,QAAQ9w3B,GAAOmy3B,aAG3G7ykB,GAAkB/rU,KAAK2+4B,UAAUyX,YACtCp25B,KAAKu94B,QAAQj/2B,MAHbt+B,KAAKu94B,QAAQ/n3B,OAAO/I,EAAO,EAKnC,CACJ,CACA,OAAOs44B,CACX,EACApoB,EAAYhs4B,UAAUw05B,oBAAsB,SAAU9k6B,EAAGuv5B,GACrD,IAAIwV,GAAiB,EACrB,GAAe,eAAX/k6B,EAAEuM,OAA0Bgj5B,IAAoB5v5B,KAAKs+4B,UAAW,CAChE,IAAI0mB,EAA6C,UAAhChl6B,KAAKmr5B,SAAShl5B,MAAMi+J,QACjCu6uB,EAAYl1zB,GAAO,CAAC,EAAGzpF,KAAK2+4B,UAAW,MAAM,GACjD3+4B,KAAKg35B,aAAa,KAAM,MAAM,GAC9B,IAqBQvq4B,EArBJ+yc,EAASx/d,KAAK4k6B,YAAYvk6B,GAC1B6Z,EAAIsld,EAAOtld,EACXC,EAAIqld,EAAOrld,EAKf,GAJAna,KAAKql6B,UAAUnr5B,EAAGC,GACdna,KAAKgi5B,yBACLojB,GAAiB,GAEjBJ,EACAhl6B,KAAKmr5B,SAASvp5B,MAAQ5B,KAAKu94B,QAAQv94B,KAAKu94B,QAAQn64B,OAAS,GAAG054B,WAC5D984B,KAAKmr5B,SAAShl5B,MAAMi+J,QAAU,QAC9BpkK,KAAK2+4B,UAAYA,EAEb5ykB,GADAt/S,EAAQzsB,KAAK6k6B,mBAEb7k6B,KAAKu94B,QAAQj/2B,MAGbt+B,KAAKu94B,QAAQ/n3B,OAAO/I,EAAO,GAGnC,IAAKs/S,GAAkB4ykB,EAAUnzwB,OAC7BxrI,KAAK2+4B,UAAYA,EAEX5ykB,GADFt/S,EAAQzsB,KAAK6k6B,oBACiBp03B,KAAK+mF,UAAUx3H,KAAK2+4B,UAAUC,eAAiBnu2B,KAAK+mF,UAAUx3H,KAAKu94B,QAAQ9w3B,GAAOmy3B,aAG3G7ykB,GAAkB/rU,KAAK2+4B,UAAUyX,YACtCp25B,KAAKu94B,QAAQj/2B,MAHbt+B,KAAKu94B,QAAQ/n3B,OAAO/I,EAAO,EAMvC,CACA,OAAO244B,CACX,EACAzoB,EAAYhs4B,UAAU205B,mBAAqB,SAAU744B,GAEjD,GADAzsB,KAAKii5B,uBAAwB,GACxBl2kB,GAAkBt/S,IAAoB,IAAVA,EAAa,CAC1C,IAAIzsB,KAAKu45B,oBAAoB9r4B,GAMzB,OALAzsB,KAAKi35B,0BAA4Bj35B,KAAKm35B,yBAA2B1q4B,EACjEzsB,KAAKg95B,mBACLh95B,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,SAKxC,CACAl5iB,KAAKi35B,0BAA4Bj35B,KAAKm35B,yBACtCn35B,KAAKi9d,UAAUj9d,KAAKi35B,2BAA2Bt7d,YAAa,EAC5D37b,KAAKo35B,uBAAyBp35B,KAAKi9d,UAAUj9d,KAAKi35B,2BAA2B9g4B,GACX,YAA9Dn2B,KAAKi9d,UAAUj9d,KAAKm35B,0BAA0B15b,cAC9Cz9d,KAAK2+4B,UAAUjB,eAAejgb,YAAcz9d,KAAKki5B,8BAA8Bzkb,YAC3Ez9d,KAAKi9d,UAAUj9d,KAAKm35B,0BAA0B15b,aAEtDz9d,KAAK2+4B,UAAUjB,eAAetuwB,YAAcpvI,KAAKki5B,8BAA8B9ywB,YAC3EpvI,KAAKi9d,UAAUj9d,KAAKm35B,0BAA0B/nxB,YAC9CpvI,KAAKii5B,sBACLji5B,KAAKs0jB,eAAe,OAGpBt0jB,KAAKyv5B,OAEb,EACA9S,EAAYhs4B,UAAU405B,uBAAyB,WAC3C,IAAI/P,GAAsB,EAU1B,OATMzplB,GAAkB/rU,KAAKmV,QAAQykB,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,wBACtEn2B,KAAKmV,QAAQykB,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,sBAAsB0/P,cAAc3N,UAAUh1P,SAAS,aACzG64S,GAAkB/rU,KAAKmV,QAAQykB,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,kBAC/Dn2B,KAAKmV,QAAQykB,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,gBAAgB0/P,cAAc3N,UAAUh1P,SAAS,aAC5GlzB,KAAKmV,QAAQykB,cAAc,iCAAiCsuP,UAAU90P,IAAI,UAC1EpzB,KAAKyv5B,QACLzv5B,KAAK8v5B,qBACL0F,GAAsB,GAEnBA,CACX,EACA7Y,EAAYhs4B,UAAU605B,SAAW,SAAUtr5B,EAAGC,GAC1C,IAAIoqoB,GAAU,EAad,OAZKx4U,GAAkB/rU,KAAK2+4B,UAAUnzwB,QAAoC,cAAzBxrI,KAAK2+4B,UAAUnzwB,OAAkD,YAAzBxrI,KAAK2+4B,UAAUnzwB,OAC3E,SAAzBxrI,KAAK2+4B,UAAUnzwB,OAA6C,SAAzBxrI,KAAK2+4B,UAAUnzwB,OAA6C,UAAzBxrI,KAAK2+4B,UAAUnzwB,QAKjF+4gB,IAJArqoB,GAAMla,KAAK2+4B,UAAUC,YAAYn3iB,OAAgD,EAAtCznW,KAAK2+4B,UAAU4c,cAAc/4oB,QACxEtoQ,GAAMla,KAAK2+4B,UAAUC,YAAYzB,KAA8C,EAAtCn94B,KAAK2+4B,UAAU4c,cAAc/4oB,QACtEroQ,GAAMna,KAAK2+4B,UAAUC,YAAYl3iB,OAAgD,EAAtC1nW,KAAK2+4B,UAAU4c,cAAc/4oB,QACxEroQ,GAAMna,KAAK2+4B,UAAUC,YAAYxB,KAA8C,EAAtCp94B,KAAK2+4B,UAAU4c,cAAc/4oB,SAOvE+hY,CACX,EACAo4P,EAAYhs4B,UAAU805B,eAAiB,SAAUX,GAC7C,IAAIvgR,GAAU,EACd,GAAIvkpB,KAAKs+4B,UACL,OAAO/5P,EAEX,IAAI1zoB,EAAM44E,GAAO,CAAC,EAAGzpF,KAAK2+4B,UAAW,MAAM,GAI3C,GAHI3+4B,KAAK4k5B,iBAA4C,SAAzB5k5B,KAAK2+4B,UAAUnzwB,OAAoBs5xB,IAC3D9k6B,KAAK6k5B,oBAAsB7k5B,KAAK8k5B,qBAAsB,GAEtB,UAAhC9k5B,KAAKmr5B,SAAShl5B,MAAMi+J,QAAqB,CACzC,IAAIu6uB,EAAYl1zB,GAAO,CAAC,EAAGzpF,KAAK2+4B,UAAW,MAAM,GACjD3+4B,KAAKg35B,eACLnm5B,EAAM44E,GAAO,CAAC,EAAGzpF,KAAKu94B,QAAQv94B,KAAKu94B,QAAQn64B,OAAS,GAAI,MAAM,GAC9DpD,KAAKu94B,QAAQj/2B,MACbt+B,KAAK2+4B,UAAYl1zB,GAAO,CAAC,EAAGk1zB,EAAW,MAAM,GAC7C3+4B,KAAKmr5B,SAASvp5B,MAAQiP,EAAIis4B,WAC1B984B,KAAKmr5B,SAAShl5B,MAAMi+J,QAAU,QAC9B,IAAIq5T,EAA+D,QAAjD5sd,EAAI6s4B,eAAejgb,YAAY9qc,MAAM,KAAK,GACxD3yB,KAAKonjB,SAAS12gB,WAAW7/B,EAAI6s4B,eAAejgb,YAAY9qc,MAAM,KAAK,GAAGA,MAAM,KAAK,IAAK+d,WAAW7/B,EAAI6s4B,eAAejgb,YAAY9qc,MAAM,KAAK,GAAGA,MAAM,KAAK,IAAK+d,WAAW7/B,EAAI6s4B,eAAejgb,YAAY9qc,MAAM,KAAK,GAAGA,MAAM,KAAK,KACjO9hB,EAAI6s4B,eAAejgb,YACH,YAAhBA,IACAA,EAAc,QAEoC,YAAlDz9d,KAAKg/4B,cAActB,eAAejgb,cAClCz9d,KAAKg/4B,cAActB,eAAejgb,YAAc,QAEhD5sd,EAAIis4B,aAAe984B,KAAKg/4B,cAAclC,YACtCr/a,IAAgBz9d,KAAKg/4B,cAActB,eAAejgb,aAClD5sd,EAAIgt4B,aAAar7b,aAAexid,KAAKg/4B,cAAcnB,aAAar7b,YAChE5+c,KAAKmgB,MAAMlT,EAAIgt4B,aAAa5+lB,YAAcr7S,KAAKmgB,MAAM/jB,KAAKg/4B,cAAcnB,aAAa5+lB,WACrFr7S,KAAKmgB,MAAMlT,EAAIgt4B,aAAaC,aAAel64B,KAAKmgB,MAAM/jB,KAAKg/4B,cAAcnB,aAAaC,YACtFjt4B,EAAIgt4B,aAAaztxB,OAASpwH,KAAKg/4B,cAAcnB,aAAaztxB,MAC1Dv/G,EAAIgt4B,aAAavtxB,SAAWtwH,KAAKg/4B,cAAcnB,aAAavtxB,QAC5Dz/G,EAAIgt4B,aAAattxB,YAAcvwH,KAAKg/4B,cAAcnB,aAAattxB,YAC/Dg0hB,GAAU,GAEVvkpB,KAAK6k5B,sBAAwBtgQ,IAC7BA,GAAU,EACVvkpB,KAAK6k5B,qBAAsB,EAEnC,MAEItgQ,EAAU9zmB,KAAK+mF,UAAU3mH,KAAS4/B,KAAK+mF,UAAUx3H,KAAKg/4B,eAE1D,OAAOz6P,CACX,EACAo4P,EAAYhs4B,UAAU+54B,sBAAwB,SAAUrq5B,GAOpD,GANe,eAAXA,EAAEuM,KACF5M,KAAKsnV,SAAU,EAGftnV,KAAKsnV,SAAU,EAEJ,eAAXjnV,EAAEuM,MAAyBvM,EAAE86B,gBAAkBn7B,KAAK6q5B,aAAgB7q5B,KAAKy94B,cAA7E,CAGA,IACIkS,EADAC,GAAkB,EAElB8V,GAAQ,OACiBri6B,IAAzBrD,KAAK2+4B,UAAUnzwB,QACfmkxB,EAAa3v5B,KAAK2+4B,UAAUnzwB,MAAM74G,MAAM,WAEzBtvB,IAAfss5B,GAA8C,SAAlBA,EAAW,KACvCC,GAAkB,GAElBA,IACA5v5B,KAAK684B,WAAa784B,KAAKi+4B,WAAY,GAEvC,IAAI0nB,EAA4B,CAAEr/jB,MAAOtmW,KAAK4k6B,YAAYvk6B,IAC1DL,KAAKsgS,QAAQ,QAASqloB,GACtB,IAAIzr5B,EAAIyr5B,EAA0Br/jB,MAAMpsV,EACpCC,EAAIwr5B,EAA0Br/jB,MAAMnsV,EACpCy14B,GAAmB5v5B,KAAK684B,aACxB784B,KAAKql6B,UAAUnr5B,EAAGC,GACoB,SAAlCna,KAAKyq5B,YAAYtk5B,MAAM+yiB,QAAuD,cAAlCl5iB,KAAKyq5B,YAAYtk5B,MAAM+yiB,QACjC,YAAlCl5iB,KAAKyq5B,YAAYtk5B,MAAM+yiB,QAA0D,SAAlCl5iB,KAAKyq5B,YAAYtk5B,MAAM+yiB,SACtEwsX,GAAQ,IAGX35lB,GAAkB/rU,KAAK2+4B,UAAUnzwB,OAIlCxrI,KAAK2k5B,eAAgB,EAHrB3k5B,KAAK2k5B,eAAgB,EAKzB,IAAIjpO,EAAU17qB,KAAKix5B,gBACftS,EAAYl1zB,GAAO,CAAC,EAAGzpF,KAAK2+4B,UAAW,MAAM,GAC7ComB,EAAU/k6B,KAAKkl6B,aAAa7k6B,EAAGuv5B,GAC/BwV,EAAiBpl6B,KAAKml6B,oBAAoB9k6B,EAAGuv5B,GAC7CkV,EAAeC,GAAoB/k6B,KAAK8k6B,aAAazk6B,EAAGuv5B,GACxDgW,EAAoB5l6B,KAAKyl6B,eAAeX,GAC5C,GAAI9k6B,KAAKsnV,UAAYy9kB,IAAYh5lB,GAAkB4ykB,EAAUnzwB,SAAWokxB,EAAiB,CACjF5v5B,KAAKwl6B,SAAStr5B,EAAGC,KACjBna,KAAKyv5B,OAAM,GACXzv5B,KAAK225B,WAAa,MAEtB,IAAIxF,EAAc1n0B,GAAO,CAAC,EAAGzpF,KAAKmj5B,QAAS,CAAC,GAAG,GAC/Cnj5B,KAAKqx5B,mBAAmB,iBAAkB31O,EAASA,EAAQ6hO,QAAS7hO,EAAQz+M,UAAWk0b,GACnFyU,GACA5l6B,KAAK8w5B,0BAA0B,KAEvC,CAKA,GAJKiU,GAAY/k6B,KAAKs+4B,WAAcsR,IAChC5v5B,KAAK8v5B,qBACL9v5B,KAAKul6B,2BAELvl6B,KAAK684B,aAAc6oB,GAA4C,SAAlC1l6B,KAAKyq5B,YAAYtk5B,MAAM+yiB,SAAqBl5iB,KAAKsnV,SAC1Ey9kB,GAAYK,GAAmBpl6B,KAAKs+4B,UAcvC,CACD,IAAI9+a,EAASx/d,KAAK4k6B,YAAYvk6B,GAC1BsxpB,EAAMnyL,EAAOtld,EACb03oB,EAAMpyL,EAAOrld,EASjB,GARIna,KAAKwl6B,SAAS7zQ,EAAKC,KACnB5xpB,KAAKyv5B,OAAM,GACPmW,GACA5l6B,KAAK8w5B,0BAA0B,MAEnC9w5B,KAAK225B,WAAa,MAEtB325B,KAAKg35B,aAAarlQ,EAAKC,GAAK,GACxB5xpB,KAAKgi5B,wBAA2Bhi5B,KAAKij5B,2BAA6Bjj5B,KAAKs+4B,UAAY,CACnF,IAAKvykB,GAAkB/rU,KAAKi35B,4BACxBj35B,KAAKi35B,4BAA8Bj35B,KAAKm35B,yBAA0B,CAClE,IAAI0O,EAAmB7l6B,KAAKm35B,yBAI5B,GAHAn35B,KAAKyv5B,QACLzv5B,KAAKij5B,0BAA2B,EAChCjj5B,KAAKm35B,yBAA2B0O,EAC5B7l6B,KAAKm35B,0BAA4B,EAAG,CACpC,IAAI15b,EAAcz9d,KAAKi9d,UAAUj9d,KAAKm35B,0BAA0B15b,YAChEz9d,KAAKg95B,iBAAiBv/b,EAAaz9d,KAAKi9d,UAAUj9d,KAAKm35B,0BAA0B/nxB,YACrF,CACJ,CACA,IAAK28L,GAAkB/rU,KAAKm35B,2BAA6Bn35B,KAAKm35B,0BAA4B,EACtFn35B,KAAKsl6B,qBACLtl6B,KAAKkp5B,0BAAyB,QAE7B,GAAIlp5B,KAAKi35B,0BAA2B,CACrCj35B,KAAKyv5B,QACDhyb,EAAcz9d,KAAKi9d,UAAUj9d,KAAKi35B,2BAA2Bx5b,YACjEz9d,KAAKg95B,iBAAiBv/b,EAAaz9d,KAAKi9d,UAAUj9d,KAAKi35B,2BAA2B7nxB,YACtF,CACJ,MAEQpvI,KAAKii5B,wBACLji5B,KAAK025B,qBACA3qlB,GAAkB76S,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,8BAC7DjF,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,2BAA2BhwB,MAAMi+J,QAAU,SAG7FpkK,KAAKul6B,yBACLvl6B,KAAKii5B,uBAAwB,GACS,cAAlCji5B,KAAKyq5B,YAAYtk5B,MAAM+yiB,QAA2BjyN,GAAQM,UAAYvnV,KAAKs+4B,aACvEt+4B,KAAKs+4B,WACDvykB,GAAkB/rU,KAAK2+4B,UAAUjB,kBACjC194B,KAAK2+4B,UAAUjB,eAAiB194B,KAAK094B,gBAErC3xkB,GAAkB/rU,KAAKq35B,kBACvBr35B,KAAKq35B,eAAiB,GAE1Br35B,KAAK4o5B,aAAarlb,YAAcvje,KAAK2+4B,UAAUjB,eAAejgb,YAC9Dz9d,KAAK4o5B,aAAaprb,UAAYx9d,KAAK2+4B,UAAUjB,eAAejgb,YAC5Dz9d,KAAK475B,oBAAoBv75B,EAAGL,KAAKyq5B,eAGjCzq5B,KAAK6v5B,mBACL7v5B,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,SAE/E5oJ,KAAKi/4B,YAAYE,aAAc,EAC/Bn/4B,KAAK++V,YAAc,GACnB/+V,KAAKk94B,UAAUz1iB,OAASznW,KAAKk94B,UAAUx1iB,OAAS1nW,KAAKk94B,UAAUC,KAAOn94B,KAAKk94B,UAAUE,KAAO,GAEzD,cAAlCp94B,KAAKyq5B,YAAYtk5B,MAAM+yiB,QAAmD,eAAzB74iB,EAAEuM,KAAK8T,eACxD1gB,KAAKi/4B,YAAYE,aAAiD,YAAlCn/4B,KAAKyq5B,YAAYtk5B,MAAM+yiB,SAAyBl5iB,KAAKs+4B,WAClFt+4B,KAAKi/4B,YAAYS,cACjB1/4B,KAAK2w5B,sBAET3w5B,KAAKmriB,WAAWwmH,EAAKC,EAAKvxpB,EAAEuM,OAEK,KAA3B5M,KAAKi/4B,YAAYzzwB,QAAgBxrI,KAAKi/4B,YAAYM,cAAkBv/4B,KAAKs+4B,WAA+C,YAAlCt+4B,KAAKyq5B,YAAYtk5B,MAAM+yiB,QACnHl5iB,KAAK8l6B,eAAen0Q,EAAKC,EAGrC,MAvFQ5xpB,KAAKwl6B,SAAStr5B,EAAGC,KACjBna,KAAKyv5B,OAAM,GACPmW,GACA5l6B,KAAK8w5B,0BAA0B,MAEnC9w5B,KAAK225B,WAAa,MAElB325B,KAAKii5B,uBACLji5B,KAAKs15B,oBAETt15B,KAAK+25B,aACL/25B,KAAK8q5B,uBAAuBzq5B,GA6EhCL,KAAK4k5B,iBAAkB,EACvB5k5B,KAAKg/4B,cAAgBv1zB,GAAO,CAAC,EAAGzpF,KAAK2+4B,UAAW,CAAC,GAAG,EA9IpD,CA+IJ,EACAhC,EAAYhs4B,UAAUg64B,sBAAwB,SAAUtq5B,GACpDA,EAAEgO,iBACF,IAAIk25B,EAAOvk6B,KAAK6q5B,YAAYp2nB,wBAC5B,GAAe,cAAXp0R,EAAEuM,MAA6C,IAArBvM,EAAEgpJ,QAAQjmJ,OAAxC,CA6CA,IAAI8W,EACAC,EACW,cAAX9Z,EAAEuM,MACFsN,EAAI7Z,EAAEg5B,QACNlf,EAAI9Z,EAAEi5B,UAGNt5B,KAAKo+4B,cAAclk4B,EAAIA,EAAI7Z,EAAEgpJ,QAAQ,GAAGhwH,QACxCr5B,KAAKo+4B,cAAcjk4B,EAAIA,EAAI9Z,EAAEgpJ,QAAQ,GAAG/vH,SAE5Cpf,GAAKqq5B,EAAK5gyB,KACVxpH,GAAKoq5B,EAAKr2wB,IACVluJ,KAAK+q5B,uBAAuB1q5B,GAC5B,IACIsv5B,EADAC,GAAkB,OAEOvs5B,IAAzBrD,KAAK2+4B,UAAUnzwB,QACfmkxB,EAAa3v5B,KAAK2+4B,UAAUnzwB,MAAM74G,MAAM,WAEzBtvB,IAAfss5B,GAA8C,SAAlBA,EAAW,KACvCC,GAAkB,GAElBA,GAAmB5v5B,KAAK+g5B,WAAa,GACrC/g5B,KAAK+l6B,qBAEL/l6B,KAAKi/4B,YAAYE,mBAA+C974B,IAA/BrD,KAAK2+4B,UAAUC,aAA6B5+4B,KAAKu94B,QAAQn64B,OAAS,KAClGpD,KAAK684B,iBAA6Cx54B,IAA/BrD,KAAK2+4B,UAAUC,cACV,KAArB5+4B,KAAK++V,cACL/+V,KAAKql6B,UAAUnr5B,EAAGC,GACZ4xT,GAAkB/rU,KAAK2+4B,UAAUC,cACG,IAArC5+4B,KAAK2+4B,UAAUC,YAAYpg4B,QAAiButT,GAAkB/rU,KAAK2+4B,UAAUyX,YAC1Ep25B,KAAKuk5B,oBAAsBvk5B,KAAK2+4B,UAAUyX,YACT,YAAlCp25B,KAAKyq5B,YAAYtk5B,MAAM+yiB,QACQ,SAAlCl5iB,KAAKyq5B,YAAYtk5B,MAAM+yiB,QAAuD,cAAlCl5iB,KAAKyq5B,YAAYtk5B,MAAM+yiB,QAC9B,SAAlCl5iB,KAAKyq5B,YAAYtk5B,MAAM+yiB,QAAuD,YAAlCl5iB,KAAKyq5B,YAAYtk5B,MAAM+yiB,SACtEl5iB,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,QAEpCl5iB,KAAKmriB,WAAWjxhB,EAAGC,EAAG9Z,EAAEuM,OAG5B5M,KAAKi/4B,YAAYC,aACjBl/4B,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAK6q5B,YAAYrs4B,MAAOxe,KAAK6q5B,YAAYjiwB,QAC3E5oJ,KAAKgm6B,kBAAkB9r5B,EAAGC,EAAGy14B,GAC7B5v5B,KAAKs25B,qBAAqBt25B,KAAK2+4B,WAC3B3+4B,KAAKyh5B,mBACAzh5B,KAAK2+4B,UAAUC,YAAYn3iB,OAASznW,KAAKih5B,UACzCjh5B,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAKih5B,SAAWjh5B,KAAKm05B,WAAen05B,KAAK2+4B,UAAUC,YAAYl3iB,OAAS1nW,KAAKkh5B,SAC5Glh5B,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAKkh5B,QAAUlh5B,KAAKo05B,aAC1Dp05B,KAAKyh5B,mBAAoB,GAE7Bzh5B,KAAKu25B,WAAW,YAAa,KAAM,KAAM,MAAM,IAG/Cv25B,KAAKu25B,WAAW,aAEhB3G,IACA5v5B,KAAK684B,WAAa784B,KAAKi+4B,WAAY,GAxD3C,KA5CA,CACI,GAAIj+4B,KAAK6/4B,YACL7/4B,KAAK8/4B,aAAe9/4B,KAAKspJ,cAAcjpJ,EAAEgpJ,SACzCrpJ,KAAK+/4B,YAAc,GACnB//4B,KAAK+/4B,YAAY3z4B,KAAK,CAAE8N,EAAI7Z,EAAEgpJ,QAAQ,GAAGhwH,SAAYh5B,EAAEgpJ,QAAQ,GAAGrD,MAAQhmJ,KAAK6q5B,YAAYlomB,WAAc4hnB,EAAK5gyB,KAC1GxpH,GAAI9Z,EAAEgpJ,QAAQ,GAAG/vH,SAAYj5B,EAAEgpJ,QAAQ,GAAGpD,MAAQjmJ,KAAK6q5B,YAAYjomB,WAAc2hnB,EAAKr2wB,MAC1FluJ,KAAK+/4B,YAAY3z4B,KAAK,CAAE8N,GAAI7Z,EAAEgpJ,QAAQ,GAAGhwH,SAAYh5B,EAAEgpJ,QAAQ,GAAGrD,MAAQhmJ,KAAK6q5B,YAAYlomB,YAAe4hnB,EAAK5gyB,KAC3GxpH,GAAI9Z,EAAEgpJ,QAAQ,GAAG/vH,SAAYj5B,EAAEgpJ,QAAQ,GAAGpD,MAAQjmJ,KAAK6q5B,YAAYjomB,WAAc2hnB,EAAKr2wB,UAEzF,CACD,IAAI+3wB,GAAgB5l6B,EAAEgpJ,QAAQ,GAAGhwH,SAAYh5B,EAAEgpJ,QAAQ,GAAGrD,MAAQhmJ,KAAK6q5B,YAAYlomB,YAAe4hnB,EAAK5gyB,KACnGuiyB,GAAgB7l6B,EAAEgpJ,QAAQ,GAAG/vH,SAAYj5B,EAAEgpJ,QAAQ,GAAGpD,MAAQjmJ,KAAK6q5B,YAAYjomB,WAAc2hnB,EAAKr2wB,IAClGi4wB,GAAiB9l6B,EAAEgpJ,QAAQ,GAAGhwH,SAAYh5B,EAAEgpJ,QAAQ,GAAGrD,MAAQhmJ,KAAK6q5B,YAAYlomB,YAAe4hnB,EAAK5gyB,KACpGyiyB,GAAiB/l6B,EAAEgpJ,QAAQ,GAAG/vH,SAAYj5B,EAAEgpJ,QAAQ,GAAGpD,MAAQjmJ,KAAK6q5B,YAAYjomB,WAAc2hnB,EAAKr2wB,IACnG6tI,EAAS,CAAE7hR,EAAG+r5B,EAAeE,EAAgBA,GAAkBA,EAAgBF,GAAgB,EAC3FA,GAAiBA,EAAeE,GAAiB,EAAIhs5B,EAAG+r5B,EAAeE,EACvEA,GAAkBA,EAAgBF,GAAgB,EAAKA,GAAiBA,EAAeE,GAAiB,GAChH,GAAIpm6B,KAAKqk5B,sBAAsBnq4B,IAAM6hR,EAAO7hR,GAAKla,KAAKqk5B,sBAAsBlq4B,IAAM4hR,EAAO5hR,EAAG,CACxF,IAAIvN,EAAO,GACX,GAAe,cAAXvM,EAAEuM,OAAyB5M,KAAKop5B,aAAaC,YAAcjN,IAAYmN,SAAWnN,IAAYmN,MAAO,CACrGvp5B,KAAKsk5B,SAAW,QAChB,IAAI/mb,EAAQv9d,KAAKwk6B,eAAexk6B,KAAK8/4B,aAAc9/4B,KAAKspJ,cAAcjpJ,EAAEgpJ,UACxErpJ,KAAK8/4B,aAAe9/4B,KAAKspJ,cAAcjpJ,EAAEgpJ,SACrCk0U,EAAQ,EACR3wd,EAAO,SAEF2wd,EAAQ,IACb3wd,EAAO,UAEf,CACa,KAATA,GACA5M,KAAKqm6B,iBAAiBtqoB,EAAO7hR,EAAG6hR,EAAO5hR,EAAGvN,GAE9C5M,KAAK+/4B,YAAc,GACnB//4B,KAAK+/4B,YAAY3z4B,KAAK,CAAE8N,EAAG7Z,EAAEgpJ,QAAQ,GAAGhwH,SAAYh5B,EAAEgpJ,QAAQ,GAAGrD,MAAQhmJ,KAAK6q5B,YAAYlomB,WACtFxoS,EAAG9Z,EAAEgpJ,QAAQ,GAAG/vH,SAAYj5B,EAAEgpJ,QAAQ,GAAGpD,MAAQjmJ,KAAK6q5B,YAAYjomB,YACtE5iT,KAAK+/4B,YAAY3z4B,KAAK,CAAE8N,EAAG7Z,EAAEgpJ,QAAQ,GAAGhwH,SAAYh5B,EAAEgpJ,QAAQ,GAAGrD,MAAQhmJ,KAAK6q5B,YAAYlomB,WACtFxoS,EAAG9Z,EAAEgpJ,QAAQ,GAAG/vH,SAAYj5B,EAAEgpJ,QAAQ,GAAGpD,MAAQjmJ,KAAK6q5B,YAAYjomB,YACtE5iT,KAAKqk5B,sBAAsBnq4B,EAAI6hR,EAAO7hR,EACtCla,KAAKqk5B,sBAAsBlq4B,EAAI4hR,EAAO5hR,CAC1C,CACJ,CACAna,KAAK6/4B,aAAc,CAEvB,CA2DJ,EACAlD,EAAYhs4B,UAAUi64B,oBAAsB,SAAUvq5B,GAWlD,IAAI6Z,EACAC,EAXW,eAAX9Z,EAAEuM,KACF5M,KAAKsnV,SAAU,EAEC,aAAXjnV,EAAEuM,MACPvM,EAAEwuR,2BAENxuR,EAAEgO,iBACErO,KAAKi+4B,WACLj+4B,KAAKgr5B,qBAAqB3q5B,GAIf,YAAXA,EAAEuM,MACFsN,EAAI7Z,EAAEg5B,QACNlf,EAAI9Z,EAAEi5B,UAGNpf,EAAIla,KAAKo+4B,cAAclk4B,EACvBC,EAAIna,KAAKo+4B,cAAcjk4B,GAE3B,IAAIoq5B,EAAOvk6B,KAAK6q5B,YAAYp2nB,wBAC5Bv6Q,GAAKqq5B,EAAK5gyB,KACVxpH,GAAKoq5B,EAAKr2wB,IACK,aAAX7tJ,EAAEuM,OACF5M,KAAK8/4B,aAAe9/4B,KAAK+/4B,YAAc,GACvC//4B,KAAK6/4B,aAAc,EACiB,SAAhC7/4B,KAAKmr5B,SAAShl5B,MAAMi+J,UACpBpkK,KAAK6se,MAAQ,IAGrB,IACI8ib,EADAC,GAAkB,EAQtB,QAN6Bvs5B,IAAzBrD,KAAK2+4B,UAAUnzwB,QACfmkxB,EAAa3v5B,KAAK2+4B,UAAUnzwB,MAAM74G,MAAM,WAEzBtvB,IAAfss5B,GAA8C,SAAlBA,EAAW,KACvCC,GAAkB,GAElBvv5B,EAAE86B,gBAAkBn7B,KAAKyq5B,YAAa,CACtCzq5B,KAAKi/4B,YAAYzzwB,MAAQxrI,KAAKi/4B,YAAYzzwB,MAAM9qH,cAChD,IAAIyw4B,EAAc1n0B,GAAO,CAAC,EAAGzpF,KAAKmj5B,QAAS,CAAC,GAAG,GAC3CznO,EAAU17qB,KAAKix5B,gBAiBnB,GAhBAv1O,EAAQ6hO,QAAU9zzB,GAAO,GAAIzpF,KAAKu94B,QAAS,IAAI,GAC/C7hO,EAAQz+M,UAAYxzY,GAAO,GAAIzpF,KAAKi9d,UAAW,IAAI,GACnDy+M,EAAQgoO,iBAAmBj6zB,GAAO,GAAIzpF,KAAK0j5B,iBAAkB,IAAI,GAC5D1j5B,KAAKs+4B,WAAcsR,IACf7jlB,GAAkB/rU,KAAK+95B,cAAqD,IAArC/95B,KAAK2+4B,UAAUC,YAAYpg4B,QACnExe,KAAKu94B,QAAQnx4B,KAAKpM,KAAK2+4B,WACnBlu2B,KAAK+mF,UAAUx3H,KAAK2+4B,UAAUC,eAAiBnu2B,KAAK+mF,UAAUx3H,KAAKg/4B,cAAcJ,cACjF5+4B,KAAKqx5B,mBAAmB,iBAAkB31O,EAAS17qB,KAAK+95B,YAAariP,EAAQz+M,UAAWk0b,GAE5Fnx5B,KAAK+x5B,YAAY/x5B,KAAKu94B,QAAQv94B,KAAKu94B,QAAQn64B,OAAS,IACpDpD,KAAK+95B,iBAAc165B,GAElBrD,KAAKii5B,uBACNji5B,KAAKsm6B,gBAAgBps5B,EAAGC,KAG3B4xT,GAAkB/rU,KAAK2+4B,WAAY,CACpC,IACI4nB,EADAC,GAAoB,OAEKnj6B,IAAzBrD,KAAK2+4B,UAAUnzwB,QACf+6xB,EAAevm6B,KAAK2+4B,UAAUnzwB,MAAM74G,MAAM,YAEzBtvB,IAAjBkj6B,IAA+Bvm6B,KAAKi/4B,YAAYM,cAAgBv/4B,KAAKs+4B,iBAG/Cj74B,IAAjBkj6B,GAAkD,SAApBA,EAAa,MAFhDC,GAAoB,GAKM,cAAzBxm6B,KAAK2+4B,UAAUnzwB,OAAoD,YAAzBxrI,KAAK2+4B,UAAUnzwB,OAC7B,SAAzBxrI,KAAK2+4B,UAAUnzwB,OAA6C,UAAzBxrI,KAAK2+4B,UAAUnzwB,MACtDxrI,KAAKs0jB,eAAe,UAEU,SAAzBt0jB,KAAK2+4B,UAAUnzwB,MACpBxrI,KAAKs0jB,eAAe,QAEft0jB,KAAKii5B,sBACVji5B,KAAKs0jB,eAAe,OAEdkyW,GACNxm6B,KAAK625B,kBAET725B,KAAKkw5B,oBACT,CACJ,MAC6B7s5B,IAAzBrD,KAAK2+4B,UAAUnzwB,QACfmkxB,EAAa3v5B,KAAK2+4B,UAAUnzwB,MAAM74G,MAAM,WAEzBtvB,IAAfss5B,GAA8C,SAAlBA,EAAW,KACvCC,GAAkB,GAEjB7jlB,GAAkB/rU,KAAK2+4B,UAAUnzwB,QAAWokxB,GAAmBvv5B,EAAE86B,gBAAkBn7B,KAAKyq5B,aACzD,SAAhCzq5B,KAAKmr5B,SAAShl5B,MAAMi+J,UACS,SAAzBpkK,KAAK2+4B,UAAUnzwB,MACfxrI,KAAKs0jB,eAAe,QAGpBt0jB,KAAKs0jB,eAAe,UAExBt0jB,KAAKkw5B,qBACLlw5B,KAAKkp5B,4BAELlp5B,KAAKs+4B,WAAaj+4B,EAAE86B,gBAAkBn7B,KAAKyq5B,YAC3Czq5B,KAAK875B,kBAAkBz75B,EAAGL,KAAKyq5B,YAAazq5B,KAAK4o5B,cAGjD5o5B,KAAKi/4B,YAAYzzwB,MAAQ,GAE7BxrI,KAAK++V,YAAc,GACnB/+V,KAAKi/4B,YAAYK,cAAgBt/4B,KAAKi/4B,YAAYC,YAAa,EAC/Dl/4B,KAAKs94B,SAASpj4B,OAAI7W,EAClBrD,KAAKs94B,SAASnj4B,OAAI9W,CACtB,EACAs54B,EAAYhs4B,UAAUsu5B,8BAAgC,SAAUp12B,GAC5D,IAAI+01B,EAAc,CAAEn3iB,OAAQ,EAAGC,OAAQ,EAAGy1iB,KAAM,EAAGC,KAAM,EAAG5+3B,MAAO,EAAGoqI,OAAQ,GAC1E69wB,EAAUh90B,GAAO,GAAIzpF,KAAK0k5B,aAAa761B,GAAK21a,OAAQ,IACxDx/d,KAAKw/d,OAAS/1Y,GAAO,GAAIzpF,KAAKi9d,UAAUpza,GAAK21a,QAC7Cx/d,KAAK4i5B,aAAe,EAEpB,IADA,IAAIjz1B,EAAM822B,EAAQrj6B,OACTi8B,EAAI,EAAGA,EAAIswB,EAAKtwB,IACM,IAAvBu/2B,EAAYn3iB,QAAuC,IAAvBm3iB,EAAYl3iB,QAAqC,IAArBk3iB,EAAYzB,MAAmC,IAArByB,EAAYxB,OAC9FwB,EAAYn3iB,OAASg/jB,EAAQpn4B,GAAGnlB,EAChC0k4B,EAAYl3iB,OAAS++jB,EAAQpn4B,GAAGllB,EAChCyk4B,EAAYzB,KAAOspB,EAAQpn4B,GAAGnlB,EAC9B0k4B,EAAYxB,KAAOqpB,EAAQpn4B,GAAGllB,GAE9Bss5B,EAAQpn4B,GAAGnlB,EAAI0k4B,EAAYn3iB,SAC3Bm3iB,EAAYn3iB,OAASg/jB,EAAQpn4B,GAAGnlB,GAEhCus5B,EAAQpn4B,GAAGllB,EAAIyk4B,EAAYl3iB,SAC3Bk3iB,EAAYl3iB,OAAS++jB,EAAQpn4B,GAAGllB,GAEhCss5B,EAAQpn4B,GAAGnlB,EAAI0k4B,EAAYzB,OAC3ByB,EAAYzB,KAAOspB,EAAQpn4B,GAAGnlB,GAE9Bus5B,EAAQpn4B,GAAGllB,EAAIyk4B,EAAYxB,OAC3BwB,EAAYxB,KAAOqpB,EAAQpn4B,GAAGllB,GAStC,OANAyk4B,EAAYn3iB,QAAUznW,KAAKq35B,eAC3BzY,EAAYl3iB,QAAU1nW,KAAKq35B,eAC3BzY,EAAYzB,MAAQn94B,KAAKq35B,eACzBzY,EAAYxB,MAAQp94B,KAAKq35B,eACzBzY,EAAYpg4B,MAAQog4B,EAAYzB,KAAOyB,EAAYn3iB,OACnDm3iB,EAAYh2vB,OAASg2vB,EAAYxB,KAAOwB,EAAYl3iB,OAC7Ck3iB,CACX,EACAjC,EAAYhs4B,UAAU+15B,0BAA4B,SAAUC,GACxD,IAAI1t5B,EAAO,CAAE6nE,QAAQ,EAAOyob,aAAc,IACtCA,EAAe,GACfx9L,GAAkB46lB,IAClBp9Z,EAAan9f,KAAK,SAClBm9f,EAAan9f,KAAK,UACW,SAAzBpM,KAAK2+4B,UAAUnzwB,OACf+9X,EAAan9f,KAAK,aAGjBu65B,GACLp9Z,EAAan9f,KAAK,UAEtB6M,EAAKswf,aAAe9/a,GAAO,GAAI8/a,EAAc,MAAM,GACnDvpgB,KAAKsgS,QAAQ,4BAA6BrnR,GAC1C,IAAI2t5B,EAAkB,GACtB,GAAI3t5B,EAAK6nE,OACL8l1B,EAAkB,QAGlB,IAAK,IAAIz65B,EAAI,EAAGA,EAAI8M,EAAKswf,aAAanmgB,OAAQ+I,IACb,UAAzB8M,EAAKswf,aAAap9f,GAClBy65B,EAAgBx65B,KAAK,CAAE+pB,GAAIn2B,KAAKmV,QAAQghB,GAAK,aAAc4ugB,WAAY,kBAAmBn1L,SAAU,mBAChGs1L,YAAalliB,KAAK+zZ,KAAKhuD,YAAY,aAAcvnD,MAAO,SAE9B,WAAzBvlS,EAAKswf,aAAap9f,GACvBy65B,EAAgBx65B,KAAK,CAAE+pB,GAAIn2B,KAAKmV,QAAQghB,GAAK,UAAW4ugB,WAAY,kBAAmBn1L,SAAU,mBAC7Fs1L,YAAalliB,KAAK+zZ,KAAKhuD,YAAY,UAAWvnD,MAAO,SAE3B,aAAzBvlS,EAAKswf,aAAap9f,GACvBy65B,EAAgBx65B,KAAK,CAAE+pB,GAAIn2B,KAAKmV,QAAQghB,GAAK,YAAa4ugB,WAAY,4BAA6Bn1L,SAAU,6BACzGs1L,YAAalliB,KAAK+zZ,KAAKhuD,YAAY,YAAavnD,MAAO,SAG3DoonB,EAAgBx65B,KAAK6M,EAAKswf,aAAap9f,IAInD,OAAOy65B,CACX,EACAjqB,EAAYhs4B,UAAUu44B,yBAA2B,SAAUyd,GACvD,IAAK56lB,GAAkB/rU,KAAK2+4B,YAAc3+4B,KAAKgp5B,uBAAwB,CACnE,IAAI6d,EAAS314B,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,2BAClD41S,GAAkB76S,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,8BAC7DjF,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,2BAA2BhwB,MAAMi+J,QAAU,SAEzF,IAAIt8G,EAAQ9nD,KAAK0m6B,0BAA0BC,GAC3C,GAAqB,IAAjB7+2B,EAAM1kD,OACN,OAMJ,GAJA,IAAI01hB,IAAQ,CACRhxe,MAAOA,EACPykgB,QAASvsjB,KAAKqs5B,kBAAkBxs5B,KAAKG,OACtC,IAAMA,KAAKmV,QAAQghB,GAAK,uBACvB41S,GAAkB46lB,GAElBE,EAAO1g6B,MAAMw9H,KAAQ3jI,KAAK2+4B,UAAUC,YAAYn3iB,OAAUznW,KAAK2+4B,UAAUC,YAAYpg4B,MAAQ,EAAM,GAAK,KACxGqo5B,EAAO1g6B,MAAM+nJ,IAAMluJ,KAAK2+4B,UAAUC,YAAYl3iB,OAAS,GAAK,UAE3D,GAAIi/jB,EAAW,CAChB,IAAIrgkB,EAAQtmW,KAAKi/5B,8BAA8Bj/5B,KAAKi35B,2BAEpD4P,EAAO1g6B,MAAMw9H,KAAQ2iO,EAAMmB,OAAUnB,EAAM9nV,MAAQ,EAAM,GAAK,KAC9Dqo5B,EAAO1g6B,MAAM+nJ,IAAMo4M,EAAMoB,OAAS,GAAK,IAC3C,CACJ,CACJ,EACAi1iB,EAAYhs4B,UAAU6l5B,WAAa,WAC/B,IAAIsQ,EAAoB,CAAC,EAEzB,GAAI9m6B,KAAKii5B,sBAAuB,CAC5Bji5B,KAAK+85B,gCACL,IAAI5L,EAAc1n0B,GAAO,CAAC,EAAGzpF,KAAKmj5B,QAAS,CAAC,GAAG,IAC3CznO,EAAU17qB,KAAKix5B,iBACX1T,QAAU9zzB,GAAO,GAAIzpF,KAAKu94B,QAAS,IAAI,GAC/C7hO,EAAQz+M,UAAYxzY,GAAO,GAAIzpF,KAAKi9d,UAAW,IAAI,GACnDy+M,EAAQgoO,iBAAmBj6zB,GAAO,GAAIzpF,KAAK0j5B,iBAAkB,IAAI,GACjE1j5B,KAAKw45B,mBAAmBjs4B,SAASvsB,KAAKo35B,uBAAuBzk4B,MAAM,KAAK,GAAI,IAAM,GAAG,GACrF3yB,KAAKqx5B,mBAAmB,wBAAyB31O,EAASA,EAAQ6hO,QAAS7hO,EAAQz+M,UAAWk0b,GAC9Fnx5B,KAAK8w5B,0BAA0B,KACnC,MACK,GAAoC,SAAhC9w5B,KAAKmr5B,SAAShl5B,MAAMi+J,QAAoB,CAC7CpkK,KAAKu94B,QAAQnx4B,KAAKpM,KAAK2+4B,WACvB,IACIjjO,EADAy1O,EAAc1n0B,GAAO,CAAC,EAAGzpF,KAAKmj5B,QAAS,CAAC,GAAG,IAC3CznO,EAAU17qB,KAAKix5B,iBACX1T,QAAU9zzB,GAAO,GAAIzpF,KAAKu94B,QAAS,IAAI,GAC/C7hO,EAAQz+M,UAAYxzY,GAAO,GAAIzpF,KAAKi9d,UAAW,IAAI,GACnDy+M,EAAQgoO,iBAAmBj6zB,GAAO,GAAIzpF,KAAK0j5B,iBAAkB,IAAI,GACjE1j5B,KAAKu94B,QAAQj/2B,MAEbwo4B,EAAoB,CAAE5x1B,OAAQ,SAAU6x1B,sBADhB/m6B,KAAKgn6B,8BACyDC,qBAAsB,MAC5Gjn6B,KAAK884B,WAAa,GAClB984B,KAAKw3oB,iBACLx3oB,KAAKsgS,QAAQ,gBAAiBwmoB,GAC9B9m6B,KAAK8v5B,qBACA/jlB,GAAkB2vW,EAAQ6hO,QAAQ7hO,EAAQ6hO,QAAQn64B,OAAS,GAAGgz5B,aAC/Dp25B,KAAKqx5B,mBAAmB,YAAa31O,EAASA,EAAQ6hO,QAAS7hO,EAAQz+M,UAAWk0b,GAClFnx5B,KAAK8w5B,0BAA0B,MAEvC,CACK/klB,GAAkB76S,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,8BAC7DjF,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,2BAA2BhwB,MAAMi+J,QAAU,OAE7F,EACAu4uB,EAAYhs4B,UAAU454B,oBAAsB,SAAUlq5B,GAClD,IAAIf,EAAQU,MACRK,EAAEu3B,SAAsB,MAAVv3B,EAAEiM,KAAyB,MAAVjM,EAAEiM,KACjCjM,EAAEgO,iBAEN,IACIsh5B,EADAuX,EAAa,CAAE/oc,SAAUn+d,KAAKm+d,SAAU8G,SAAUjle,KAAKile,SAAUnkZ,QAAQ,GAE7E,OAAQzgF,EAAEiM,KACN,KAAMjM,EAAEu3B,SAAW,IACf53B,KAAKsgS,QAAQ,aAAc4moB,GAAY,SAAU9oc,GACxC8oc,EAAWpm1B,QACZxhF,EAAMkx5B,OAAOpyb,EAAmB6G,SAAU7G,EAAmBD,SAErE,IACA99d,EAAEgO,iBACFhO,EAAEwuR,2BACF,MACJ,KAAMxuR,EAAEu3B,SAAW,IACX53B,KAAK+o5B,eACL/o5B,KAAKg25B,WAET,MACJ,KAAM315B,EAAEu3B,SAAW,IACX53B,KAAK+o5B,eACL/o5B,KAAKi25B,WAET,MACJ,KAAM515B,EAAEu3B,SAAW,KACV53B,KAAKop5B,aAAaC,YAAcjN,IAAYoN,YAAcpN,IAAYoN,WACvExp5B,KAAKsk5B,SAAW,WAChBtk5B,KAAKkx5B,WAAW,KAEpB,MACJ,KAAM7w5B,EAAEu3B,SAAW,KACV53B,KAAKop5B,aAAaC,YAAcjN,IAAYoN,YAAcpN,IAAYoN,WACvExp5B,KAAKsk5B,SAAW,WAChBtk5B,KAAKkx5B,YAAY,KAErB,MACJ,IAAK,SACDlx5B,KAAKw25B,aACL,MACJ,IAAK,SACDx25B,KAAK+15B,gBACL,MACJ,IAAK,aAC4B1y5B,IAAzBrD,KAAK2+4B,UAAUnzwB,QACfmkxB,EAAa3v5B,KAAK2+4B,UAAUnzwB,MAAM74G,MAAM,WAEVtvB,IAA9BrD,KAAK2+4B,UAAUwoB,iBAAsD9j6B,IAAzBrD,KAAK2+4B,UAAUnzwB,OAAyC,SAAlBmkxB,EAAW,IAC7F3v5B,KAAKy35B,OAET,MACJ,IAAK,MACD,GAAoC,UAAhCz35B,KAAKmr5B,SAAShl5B,MAAMi+J,QAAqB,CACzC,IAAIwhwB,EAAoB5l6B,KAAKyl6B,gBAAe,GAC5Czl6B,KAAKg35B,eACD4O,GACA5l6B,KAAK8w5B,0BAA0B,KAEvC,CACA,MACJ,QACQ7pkB,GAAQM,UAA4C,UAAhCvnV,KAAKmr5B,SAAShl5B,MAAMi+J,SACxChuI,WAAWp2B,KAAKon6B,YAAYvn6B,KAAKG,MAAO,EAAGK,GAI3D,EACAs84B,EAAYhs4B,UAAU654B,kBAAoB,SAAUnq5B,GAEZ,UAAhCL,KAAKmr5B,SAAShl5B,MAAMi+J,SAAuB/jK,EAAEgI,OAAO8tB,KAAOn2B,KAAKmV,QAAQghB,GAAK,aAC7EC,WAAWp2B,KAAKon6B,YAAYvn6B,KAAKG,MAAO,EAAGK,EAEnD,EACAs84B,EAAYhs4B,UAAUm64B,uBAAyB,SAAUzq5B,GAErD,IAAI6Z,EACAC,EAFJ9Z,EAAEgO,iBAGa,cAAXhO,EAAEuM,MACFsN,EAAI7Z,EAAEkyV,SAAYlyV,EAAE2lJ,MAAQhmJ,KAAK6q5B,YAAYlomB,WAC7CxoS,EAAI9Z,EAAEmyV,SAAYnyV,EAAE4lJ,MAAQjmJ,KAAK6q5B,YAAYjomB,YAG7C1oS,EAAI7Z,EAAEgpJ,QAAQ,GAAGhwH,SAAYh5B,EAAEgpJ,QAAQ,GAAGrD,MAAQhmJ,KAAK6q5B,YAAYlomB,WACnExoS,EAAI9Z,EAAEgpJ,QAAQ,GAAG/vH,SAAYj5B,EAAEgpJ,QAAQ,GAAGpD,MAAQjmJ,KAAK6q5B,YAAYjomB,WAEvE,IAAI2hnB,EAAOvk6B,KAAK6q5B,YAAYp2nB,wBAC5Bv6Q,GAAKqq5B,EAAK5gyB,KACVxpH,GAAKoq5B,EAAKr2wB,IACVluJ,KAAK8h6B,QAAU,CAAE5n5B,EAAGA,EAAGC,EAAGA,GACtB4xT,GAAkB/rU,KAAKuh6B,eACvBvh6B,KAAKuh6B,YAAc,CAAErn5B,EAAGA,EAAGC,EAAGA,GAEtC,EACAwi4B,EAAYhs4B,UAAUo64B,uBAAyB,SAAU1q5B,GAQrD,IAAI6Z,EACAC,EARAna,KAAK684B,WACL784B,KAAK6q5B,YAAY1k5B,MAAM+yiB,OAAS,QAGhCl5iB,KAAK684B,WAAa784B,KAAKi+4B,WAAY,EACnCj+4B,KAAK6q5B,YAAY1k5B,MAAM+yiB,OAASl5iB,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,WAIrD,cAAX74iB,EAAEuM,MACFsN,EAAI7Z,EAAEkyV,SAAYlyV,EAAE2lJ,MAAQhmJ,KAAK6q5B,YAAYlomB,WAC7CxoS,EAAI9Z,EAAEmyV,SAAYnyV,EAAE4lJ,MAAQjmJ,KAAK6q5B,YAAYjomB,YAG7C1oS,EAAI7Z,EAAEgpJ,QAAQ,GAAGhwH,SAAYh5B,EAAEgpJ,QAAQ,GAAGrD,MAAQhmJ,KAAK6q5B,YAAYlomB,WACnExoS,EAAI9Z,EAAEgpJ,QAAQ,GAAG/vH,SAAYj5B,EAAEgpJ,QAAQ,GAAGpD,MAAQjmJ,KAAK6q5B,YAAYjomB,WAEvE,IAAI2hnB,EAAOvk6B,KAAK6q5B,YAAYp2nB,wBAC5Bv6Q,GAAKqq5B,EAAK5gyB,KACVxpH,GAAKoq5B,EAAKr2wB,IACVluJ,KAAKsh6B,QAAU,CAAEpn5B,EAAGA,EAAGC,EAAGA,GACtBna,KAAK8h6B,SAAW9h6B,KAAKsh6B,SAAWth6B,KAAKi+4B,WAAaj+4B,KAAK684B,YACvD784B,KAAK4h6B,iBAEb,EACAjlB,EAAYhs4B,UAAUq64B,qBAAuB,SAAU3q5B,GACnDA,EAAEgO,iBACErO,KAAKi+4B,WACDj+4B,KAAK8h6B,SAAW9h6B,KAAKsh6B,SAAWth6B,KAAKi+4B,WAAaj+4B,KAAK684B,aACvD784B,KAAK8h6B,QAAU,KACf9h6B,KAAKsh6B,QAAU,KACfth6B,KAAKuh6B,YAAc,MAG3Bvh6B,KAAKi/4B,YAAYC,YAAa,CAClC,EACAvC,EAAYhs4B,UAAUy64B,aAAe,SAAU/q5B,GAC3C,IAAI6Z,EACAC,EACAkt5B,GAAiB,EACN,eAAXhn6B,EAAEuM,OAEFsN,EAAI7Z,EAAEg5B,QACNlf,EAAI9Z,EAAEi5B,SAEV,IAAIir4B,EAAOvk6B,KAAK6q5B,YAAYp2nB,wBAO5B,GANAv6Q,GAAKqq5B,EAAK5gyB,KACVxpH,GAAKoq5B,EAAKr2wB,IACNh0I,EAAIla,KAAKih5B,UAAY/m4B,EAAIla,KAAKih5B,SAAWjh5B,KAAKm05B,WAAah64B,EAAIna,KAAKkh5B,SAAW/m4B,EAAIna,KAAKkh5B,QAAUlh5B,KAAKo05B,aACvGiT,GAAiB,GAErBhn6B,EAAEiO,mBACgB,IAAdjO,EAAEu3B,SAAoByv4B,EAAgB,CACtChn6B,EAAEgO,iBACGrO,KAAKsi5B,YACNti5B,KAAKyv5B,QACLzv5B,KAAKul6B,0BAET,IAAI345B,EAAO,GACI,eAAXvM,EAAEuM,OAA0B5M,KAAKop5B,aAAaC,YAAcjN,IAAYkN,cAAgBlN,IAAYkN,aACpGtp5B,KAAKsk5B,SAAW,aAGZ134B,EADAvM,EAAEypJ,WAAa,EACR,SAGA,WAGF,KAATl9I,GACA5M,KAAKqm6B,iBAAiBns5B,EAAGC,EAAGvN,EAEpC,CACJ,EACA+v4B,EAAYhs4B,UAAU015B,iBAAmB,SAAUns5B,EAAGC,EAAGvN,GACrD,IAAIwu5B,GAAUlh5B,EAAIla,KAAKih5B,UAAYjh5B,KAAKm05B,UACpCkH,GAAUlh5B,EAAIna,KAAKkh5B,SAAWlh5B,KAAKo05B,WACnCxX,EAAa584B,KAAK484B,WAUtB,GATA584B,KAAK484B,YAAa,EAClB584B,KAAKisV,cAAc,CAAEm9jB,aAAc,CAAEma,UAAW,CAAErp5B,EAAGA,EAAGC,EAAGA,MAAS,GACvD,WAATvN,EACA5M,KAAKkx5B,WAAW,IAEF,YAATtk5B,GACL5M,KAAKkx5B,YAAY,IAErBlx5B,KAAK484B,WAAaA,EACd584B,KAAK+g5B,WAAa,EAAG,CACrB,IAAIE,EAAWjh5B,KAAKih5B,SAChBC,EAAUlh5B,KAAKkh5B,QACfvC,EAAYl1zB,GAAO,CAAC,EAAGzpF,KAAK2+4B,UAAW,CAAC,GAAG,GAC/C,GAAoB,IAAhB3+4B,KAAKw0vB,OACLx0vB,KAAKih5B,SAAW/m4B,EAAKkh5B,EAASp75B,KAAKm05B,UACnCn05B,KAAKkh5B,QAAU/m4B,EAAKkh5B,EAASr75B,KAAKo05B,WAClCp05B,KAAKsn6B,iBAAiBtn6B,KAAKih5B,SAAWA,EAAUjh5B,KAAKkh5B,QAAUA,OAE9D,CACD,IAAIoB,EAAYti5B,KAAKsi5B,UACrBti5B,KAAKsi5B,WAAY,EACjB,IAAI/E,EAAU9zzB,GAAO,GAAIzpF,KAAKu94B,QAAS,IAAI,GACvCtgb,EAAYxzY,GAAO,GAAIzpF,KAAKi9d,UAAW,IAAI,GAC/Cj9d,KAAKu94B,QAAU,GACfv94B,KAAKi9d,UAAY,GACjBj9d,KAAK6i5B,gBAAkB,EACvB7i5B,KAAK4h5B,mBAAqB,CAAE1n4B,EAAIA,EAAKkh5B,EAASp75B,KAAKm05B,UAAclT,EAC7D9m4B,EAAIA,EAAKkh5B,EAASr75B,KAAKo05B,WAAelT,GAC1Clh5B,KAAKy75B,YACLz75B,KAAKsi5B,UAAYA,EACjBti5B,KAAKu94B,QAAUA,EACfv94B,KAAKi9d,UAAYA,EACjBj9d,KAAK6i5B,gBAAkB7i5B,KAAKi9d,UAAU75d,OACtCpD,KAAKi75B,WAAWj75B,KAAK4h5B,mBAAmB1n4B,EAAGla,KAAK4h5B,mBAAmBzn4B,EAAG,IACtEna,KAAKk75B,oBAAoBl75B,KAAK4h5B,mBAAmB1n4B,EAAGla,KAAK4h5B,mBAAmBzn4B,EAAG,GACnF,CACAna,KAAKun6B,cAAc5oB,GACnB3+4B,KAAK2+4B,UAAYA,EACwB,IAArC3+4B,KAAK2+4B,UAAUC,YAAYpg4B,OAAqD,IAAtCxe,KAAK2+4B,UAAUC,YAAYh2vB,QACrE5oJ,KAAKu25B,WAAW,YAAa,KAAM,KAAM,MAAM,EAEvD,CACJ,EACA5Z,EAAYhs4B,UAAU425B,cAAgB,SAAU5oB,GAC5C,GAAoC,IAAhCA,EAAUC,YAAYpg4B,OAAgD,IAAjCmg4B,EAAUC,YAAYh2vB,OAAc,CACzE,IAAIq4vB,EAAWjh5B,KAAKih5B,SAChBC,EAAUlh5B,KAAKkh5B,QACf56iB,EAAQ,CAAEpsV,EAAG,EAAGC,EAAG,GAavB,GAZIna,KAAKih5B,SAAWtC,EAAUC,YAAYn3iB,OACtCnB,EAAMpsV,EAAIla,KAAKih5B,SAAWtC,EAAUC,YAAYn3iB,OAE3CznW,KAAKih5B,SAAWjh5B,KAAKm05B,UAAYxV,EAAUC,YAAYn3iB,OAASk3iB,EAAUC,YAAYpg4B,QAC3F8nV,EAAMpsV,EAAKla,KAAKih5B,SAAWjh5B,KAAKm05B,WAAcxV,EAAUC,YAAYn3iB,OAASk3iB,EAAUC,YAAYpg4B,QAEnGxe,KAAKkh5B,QAAUvC,EAAUC,YAAYl3iB,OACrCpB,EAAMnsV,EAAIna,KAAKkh5B,QAAUvC,EAAUC,YAAYl3iB,OAE1C1nW,KAAKkh5B,QAAUlh5B,KAAKo05B,WAAazV,EAAUC,YAAYl3iB,OAASi3iB,EAAUC,YAAYh2vB,SAC3F09M,EAAMnsV,EAAKna,KAAKkh5B,QAAUlh5B,KAAKo05B,YAAezV,EAAUC,YAAYl3iB,OAASi3iB,EAAUC,YAAYh2vB,SAEnF,IAAhB5oJ,KAAKw0vB,OACLx0vB,KAAKih5B,UAAY36iB,EAAMpsV,EACvBla,KAAKkh5B,SAAW56iB,EAAMnsV,EACtBna,KAAKsn6B,iBAAiBtn6B,KAAKih5B,SAAWA,EAAUjh5B,KAAKkh5B,QAAUA,OAE9D,CACD,IAAIoB,EAAYti5B,KAAKsi5B,UACrBti5B,KAAKsi5B,WAAY,EACjB,IAAI/E,EAAU9zzB,GAAO,GAAIzpF,KAAKu94B,QAAS,IAAI,GACvCtgb,EAAYxzY,GAAO,GAAIzpF,KAAKi9d,UAAW,IAAI,GAC/Cj9d,KAAKu94B,QAAU,GACfv94B,KAAKi9d,UAAY,GACjBj9d,KAAK6i5B,gBAAkB,EACvB7i5B,KAAKih5B,UAAY36iB,EAAMpsV,EACvBla,KAAKkh5B,SAAW56iB,EAAMnsV,EACtBna,KAAK4h5B,mBAAqB,CAAE1n4B,EAAGla,KAAKih5B,SAAWA,EAAU9m4B,EAAGna,KAAKkh5B,QAAUA,GAC3Elh5B,KAAKy75B,YACLz75B,KAAKsi5B,UAAYA,EACjBti5B,KAAKu94B,QAAUA,EACfv94B,KAAKi9d,UAAYA,EACjBj9d,KAAK6i5B,gBAAkB7i5B,KAAKi9d,UAAU75d,OACtCpD,KAAKi75B,WAAWj75B,KAAK4h5B,mBAAmB1n4B,EAAGla,KAAK4h5B,mBAAmBzn4B,EAAG,IACtEna,KAAKk75B,oBAAoBl75B,KAAK4h5B,mBAAmB1n4B,EAAGla,KAAK4h5B,mBAAmBzn4B,EAAG,GACnF,CACJ,CACJ,EACAwi4B,EAAYhs4B,UAAU225B,iBAAmB,SAAUpt5B,EAAGC,GAClDna,KAAKi75B,WAAW/g5B,EAAGC,EAAG,IACtBna,KAAKk75B,oBAAoBhh5B,EAAGC,EAAG,IAC/Bna,KAAKk35B,aAAY,GACjB,IAAI6J,EAAe/g6B,KAAKgh6B,iBAAiBhh6B,KAAKu55B,SAAUv55B,KAAKw55B,WAC7DuH,EAAavi5B,OAAUui5B,EAAavi5B,MAAQxe,KAAK+g5B,WACjDggB,EAAan4wB,QAAWm4wB,EAAan4wB,OAAS5oJ,KAAK+g5B,WACnD/g5B,KAAKqi5B,iBAAiBno4B,GAAKA,EAC3Bla,KAAKqi5B,iBAAiBlo4B,GAAKA,EAC3Bna,KAAKsj5B,iBAAmB,CAAEpp4B,EAAG,EAAGC,EAAG,EACvC,EACAwi4B,EAAYhs4B,UAAUy25B,YAAc,SAAU/m6B,GACL,OAAjC0d,OAAO4yC,aAAatwD,EAAEg4B,SACtBr4B,KAAK0+4B,SAAW,GAEpB1+4B,KAAKmr5B,SAASn23B,aAAa,OAAQh1B,KAAK0+4B,QAAQ5n4B,YAChD9W,KAAKmr5B,SAAShl5B,MAAMyiJ,OAAS,OAC7B5oJ,KAAKmr5B,SAAShl5B,MAAMyiJ,OAAS5oJ,KAAKmr5B,SAASjtmB,aAAe,KAC1Dl+S,KAAKwn6B,gBAAgBnn6B,GACjB4mV,GAAQM,WACRvnV,KAAKmr5B,SAAShl5B,MAAMqY,MAAQkyB,WAAW1wC,KAAKmr5B,SAAShl5B,MAAMqY,OAASxe,KAAKmr5B,SAAShl5B,MAAM84S,SAAW,MAEvG,IAAImvR,EAAOpukB,KAAKmr5B,SAASvp5B,MAAM+wB,MAAM,MACrC3yB,KAAK0+4B,QAAUtwU,EAAKhrkB,OACpBpD,KAAKmr5B,SAASn23B,aAAa,OAAQh1B,KAAK0+4B,QAAQ5n4B,YAChD9W,KAAK6k5B,qBAAsB,CAC/B,EACAlI,EAAYhs4B,UAAU825B,eAAiB,YAG7B17lB,GAAkB/rU,KAAKmV,QAAQykB,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,wBACtEn2B,KAAKmV,QAAQykB,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,sBAAsB0/P,cAAc3N,UAAUh1P,SAAS,aACzG64S,GAAkB/rU,KAAKmV,QAAQykB,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,kBAC/Dn2B,KAAKmV,QAAQykB,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,gBAAgB0/P,cAAc3N,UAAUh1P,SAAS,aAC5GlzB,KAAKmV,QAAQykB,cAAc,iCAAiCsuP,UAAU90P,IAAI,UAC1EpzB,KAAKyv5B,QACLzv5B,KAAK8v5B,qBACL9v5B,KAAKmp5B,6BAELnp5B,KAAKii5B,uBACLji5B,KAAKmp5B,4BAET,IAAIhK,GAAc,OACW974B,IAAzBrD,KAAK2+4B,UAAUnzwB,QACf2zwB,GAAc,EACsB,UAAhCn/4B,KAAKmr5B,SAAShl5B,MAAMi+J,SACpBpkK,KAAKg35B,eACLh35B,KAAKmp5B,8BAGLnp5B,KAAK8g6B,4BACL9g6B,KAAKu94B,QAAQnx4B,KAAKpM,KAAK2+4B,YAE3B3+4B,KAAK6v5B,oBAET,IAAIjP,EAAa5g5B,KAAK4p5B,aAAaxj5B,OACnCpG,KAAKmpF,SACLnpF,KAAKq25B,cACLr25B,KAAK6v5B,mBACL7v5B,KAAK4p5B,aAAaxj5B,OAASpG,KAAK0g5B,uBAAyBE,EACrD5g5B,KAAKy94B,gBACL9re,GAAY3xa,KAAKmV,SACjBnV,KAAKmV,QAAQhP,MAAMmoI,QAAU,OAEjCtuI,KAAK4p5B,aAAa7qb,UAAU,EAAG,EAAG/+d,KAAK6q5B,YAAYrs4B,MAAOxe,KAAK6q5B,YAAYjiwB,QAC3E5oJ,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,QAC3E,IAAI6iwB,EAAgBv63B,SAAS0I,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,kBAC9D41S,GAAkB0/kB,KACnBA,EAActl5B,MAAMqY,MAAQxe,KAAKmV,QAAQg7P,YAAc,EAAI,KAC3Ds7oB,EAActl5B,MAAMyiJ,OAAS5oJ,KAAKmV,QAAQ4/Q,aAAe,KACrDkyD,GAAQM,SACRkkkB,EAActl5B,MAAMyiJ,OAAUl4G,WAAW+62B,EAActl5B,MAAMyiJ,QAAW,EAAI5oJ,KAAKg+4B,cAAkB,EAAI,KAGvGyN,EAActl5B,MAAMyiJ,OAAUl4G,WAAW+62B,EAActl5B,MAAMyiJ,QAAU5oJ,KAAKg+4B,cAAiB,EAAI,MAGzG,IAAI+iB,EAAe/g6B,KAAKgh6B,iBAAiBhh6B,KAAKu55B,SAAUv55B,KAAKw55B,WAO7D,GANIx55B,KAAKwi5B,kBAAoB,IACzBue,EAAavi5B,OAAUui5B,EAAavi5B,MAAQxe,KAAKwi5B,kBACjDue,EAAan4wB,QAAWm4wB,EAAan4wB,OAAS5oJ,KAAKwi5B,mBAEvDxi5B,KAAKih5B,UAAYjh5B,KAAK6q5B,YAAY9lpB,YAAcg8pB,EAAavi5B,OAAS,EACtExe,KAAKkh5B,SAAWlh5B,KAAK6q5B,YAAY3lpB,aAAe67pB,EAAan4wB,QAAU,EACnD,IAAhB5oJ,KAAKw0vB,QAAuC,KAAvBx0vB,KAAKm+4B,cACtBn+4B,KAAKwi5B,kBAAoB,IACzBxi5B,KAAKih5B,UAAYjh5B,KAAKqi5B,iBAAiBno4B,EACvCla,KAAKkh5B,SAAWlh5B,KAAKqi5B,iBAAiBlo4B,GAE1Cna,KAAKih6B,gBAAgBF,OAEpB,CACD/g6B,KAAKih6B,gBAAgBF,GACrB/g6B,KAAKs55B,8BAA8B,WACnC,IAAI5s0B,EAAO1sF,KAAK4p5B,aAAaxj5B,OAC7BpG,KAAKq45B,yBACLr45B,KAAK4p5B,aAAa5qb,UAAUh/d,KAAK2r5B,QAAS3r5B,KAAKmh5B,QAASnh5B,KAAKoh5B,OAAQph5B,KAAKu55B,SAAUv55B,KAAKw55B,UAAWx55B,KAAKih5B,SAAUjh5B,KAAKkh5B,QAASlh5B,KAAKm05B,UAAWn05B,KAAKo05B,YACtJp05B,KAAK4p5B,aAAaxj5B,OAASsmF,EAC3B1sF,KAAKs55B,8BAA8B,UACvC,EACAt55B,KAAK065B,cACL165B,KAAK265B,uBACD365B,KAAK6h5B,cACL7h5B,KAAKy55B,WAAWz55B,KAAK4p5B,cAEzBl3e,GAAY1ya,KAAKmV,SACjBnV,KAAKmV,QAAQhP,MAAMmoI,QAAU,IACzBtuI,KAAK4/4B,gBAAgBx84B,OAAS,IAAO2oU,GAAkB76S,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,gBAEhF82T,GAhFTjtV,KAgF4BmV,QAAQghB,GAAK,WAAY,WAClDyngB,kBACN7xN,GAAkB/rU,KAAKmV,QAAQykB,cAAc,mCAC9C55B,KAAKmV,QAAQykB,cAAc,iCAAiCsuP,UAAU90P,IAAI,WAiBlF,GAdApzB,KAAK6v5B,mBACL7v5B,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,QACvEu2vB,IACAn/4B,KAAK2+4B,UAAYl1zB,GAAO,CAAC,EAAGzpF,KAAKu94B,QAAQv94B,KAAKu94B,QAAQn64B,OAAS,GAAI,MAAM,GACzEpD,KAAKu94B,QAAQj/2B,MACbt+B,KAAKu25B,WAAW,YAAav25B,KAAK2+4B,WACL,cAAzB3+4B,KAAK2+4B,UAAUnzwB,OAAkD,YAAzBxrI,KAAK2+4B,UAAUnzwB,OAAgD,SAAzBxrI,KAAK2+4B,UAAUnzwB,OACpE,SAAzBxrI,KAAK2+4B,UAAUnzwB,OAA6C,UAAzBxrI,KAAK2+4B,UAAUnzwB,OAClDxrI,KAAKkp5B,4BAGTlp5B,KAAKii5B,uBACLji5B,KAAKkp5B,0BAAyB,IAEb,IAAhBlp5B,KAAKw0vB,QAAuC,KAAvBx0vB,KAAKm+4B,gBAAyBn+4B,KAAKwi5B,kBAAoB,EAAG,CAChF,IAAIH,EAAmB54zB,GAAO,CAAC,EAAGzpF,KAAKqi5B,iBAAkB,MAAM,GAC3DF,EAA2B14zB,GAAO,CAAC,EAAGzpF,KAAKmi5B,yBAA0B,MAAM,GAC3EC,EAAyB34zB,GAAO,CAAC,EAAGzpF,KAAKoi5B,uBAAwB,MAAM,GAC3Epi5B,KAAKkx5B,WAAW,IAChBlx5B,KAAKkx5B,YAAY,IACG,IAAhBlx5B,KAAKw0vB,QACLx0vB,KAAKih5B,UAAYoB,EAAiBno4B,EAClCla,KAAKkh5B,SAAWmB,EAAiBlo4B,EACjCna,KAAKqi5B,iBAAmBA,EACxBri5B,KAAKw75B,kBAGLx75B,KAAKmi5B,yBAA2BA,EAChCni5B,KAAKoi5B,uBAAyBA,EAC9Bpi5B,KAAK4h5B,mBAAqB,CAAE1n4B,EAAG,EAAGC,EAAG,GACrCna,KAAKsi5B,WAAY,EACjBti5B,KAAKy75B,YACLz75B,KAAKsi5B,WAAY,EAEzB,MACyB,IAAhBti5B,KAAKw0vB,QAAgBx0vB,KAAKui5B,eAAiB,IAChDvi5B,KAAK+g5B,WAAa/g5B,KAAKui5B,eAAiB,EACxCvi5B,KAAKkv5B,0BAEb,EACAvS,EAAYhs4B,UAAU064B,kBAAoB,WAClCpkkB,GAAQM,UACRnxT,WAAWp2B,KAAKyn6B,eAAe5n6B,KAAKG,MAAO,IAEnD,EACA284B,EAAYhs4B,UAAUwwgB,oBAAsB,WACnCl6L,GAAQM,UACTvnV,KAAKyn6B,gBAEb,EACA9qB,EAAYhs4B,UAAU+25B,wBAA0B,WAC5C,IAAIC,EAAU3n6B,KAAKmr5B,SAASvp5B,MAC5B5B,KAAKmr5B,SAASvp5B,MAAQ,GACtB,IAAK,IAAIuK,EAAI,EAAGA,EAAIw75B,EAAQvk6B,OAAQ+I,IAChCnM,KAAKmr5B,SAASvp5B,OAAS+l6B,EAAQx75B,GAC/BnM,KAAKmr5B,SAAShl5B,MAAMyiJ,OAAS,OAC7B5oJ,KAAKmr5B,SAAShl5B,MAAMyiJ,OAAS5oJ,KAAKmr5B,SAASjtmB,aAAe,KAC1Dl+S,KAAKwn6B,iBAEb,EACA7qB,EAAYhs4B,UAAUm/4B,mBAAqB,WACd,SAArB9v5B,KAAKok5B,aACLpk5B,KAAKs0jB,eAAe,OAE5B,EACAqoV,EAAYhs4B,UAAUq25B,4BAA8B,WAChD,IAAIxwV,EAAY,GAYhB,MAX6B,SAAzBx2kB,KAAK2+4B,UAAUnzwB,OAAqBugM,GAAkB/rU,KAAK2+4B,UAAUd,gBACjE794B,KAAK2+4B,UAAUd,aAAaztxB,MAC5Bomd,EAAUpqkB,KAAK,QAEfpM,KAAK2+4B,UAAUd,aAAavtxB,QAC5Bkmd,EAAUpqkB,KAAK,UAEfpM,KAAK2+4B,UAAUd,aAAattxB,WAC5Bimd,EAAUpqkB,KAAK,cAGhB,CAAE+pB,GAAK41S,GAAkB/rU,KAAK2+4B,UAAUyX,WAAwC,KAA3Bp25B,KAAK2+4B,UAAUyX,UACvExp5B,KAAM5M,KAAKur5B,aAAavr5B,KAAK2+4B,UAAUnzwB,OACvCi8N,OAAQznW,KAAK2+4B,UAAUC,YAAYn3iB,OAAQC,OAAQ1nW,KAAK2+4B,UAAUC,YAAYl3iB,OAC9ElpV,MAAOxe,KAAK2+4B,UAAUC,YAAYpg4B,MAAOoqI,OAAQ5oJ,KAAK2+4B,UAAUC,YAAYh2vB,OAC5E60U,YAAc1xJ,GAAkB/rU,KAAK2+4B,UAAUjB,gBAA8D,KAA5C194B,KAAK2+4B,UAAUjB,eAAejgb,YAC/FruV,YAAc28L,GAAkB/rU,KAAK2+4B,UAAUjB,gBAA8D,KAA5C194B,KAAK2+4B,UAAUjB,eAAetuwB,YAC/FuuwB,UAAY5xkB,GAAkB/rU,KAAK2+4B,UAAUjB,gBAA4D,KAA1C194B,KAAK2+4B,UAAUjB,eAAeC,UAC7Fn7nB,OAAiC,YAAzBxiR,KAAK2+4B,UAAUnzwB,MAAsBxrI,KAAK2+4B,UAAUC,YAAYpg4B,MAAQ,EAAI,KACpFpb,OAAiC,SAAzBpD,KAAK2+4B,UAAUnzwB,OAA6C,UAAzBxrI,KAAK2+4B,UAAUnzwB,MAAoBxrI,KAAK2+4B,UAAUC,YAAYpg4B,MAAQ,KACjHyhB,KAA+B,SAAzBjgC,KAAK2+4B,UAAUnzwB,MAAqBugM,GAAkB/rU,KAAK2+4B,UAAU7B,YAA0C,KAA5B984B,KAAK2+4B,UAAU7B,WAAqB,KAC7H79lB,SAAmC,SAAzBj/S,KAAK2+4B,UAAUnzwB,MAAqBugM,GAAkB/rU,KAAK2+4B,UAAUd,cAAuD,KAAvC794B,KAAK2+4B,UAAUd,aAAa5+lB,SAAmB,KAC9Iu3R,UAAoC,SAAzBx2kB,KAAK2+4B,UAAUnzwB,MAAmBgrc,EAAY,KACzD//c,MAAgC,SAAzBz2H,KAAK2+4B,UAAUnzwB,MAAqBugM,GAAkB/rU,KAAK2+4B,UAAUjB,gBAA8D,KAA5C194B,KAAK2+4B,UAAUjB,eAAejgb,YAAsB,KAE1J,EACAk/a,EAAYhs4B,UAAUug5B,WAAa,SAAUnQ,EAAYwiB,GACrD,IAAKvj6B,KAAK4O,UAAY5O,KAAKy94B,cAAe,CACtC,GAAyB,IAApBz94B,KAAK+g5B,YAAoBA,EAAa,GACtC/g5B,KAAKop5B,aAAarI,YAAc/g5B,KAAKop5B,aAAaU,eAAiB/I,EAAa,GAC5E/g5B,KAAKop5B,aAAarI,WAAa/g5B,KAAKop5B,aAAawe,eAAiB7mB,EAAa,GAAK/g5B,KAAK+l6B,oBAE9F,YADA/l6B,KAAKyu5B,wBAGT,GAA+B,IAA3Bzu5B,KAAKyj5B,kBACLzj5B,KAAKyj5B,mBAAqB1C,EAAa,EAAiB,GAAbA,EAAgC,GAAbA,EAAmB,OAEhF,GAAI/g5B,KAAKyj5B,kBAAoB,EAC9Bzj5B,KAAKyj5B,mBAAmC,GAAb1C,OAE1B,GAAI/g5B,KAAKyj5B,kBAAoB,EAE9B,IADA,IAAIokB,EAAwB,GAAb9mB,EACN504B,EAAI,EAAGA,EAAIvI,KAAK8Y,IAAImr5B,GAAW175B,IAChC404B,EAAa,EACb/g5B,KAAKyj5B,mBAAqB,EAG1Bzj5B,KAAKyj5B,mBAAqB,EAItCzj5B,KAAKisV,cAAc,CAAEm9jB,aAAc,CAAErI,WAAY/g5B,KAAKyj5B,qBAAuB,GAC7E,IAAIkM,OAAa,EACb3Q,OAAgB,EAChB+lB,GAAU,OACe1h6B,IAAzBrD,KAAK2+4B,UAAUnzwB,QACc,UAAzBxrI,KAAK2+4B,UAAUnzwB,MACfxrI,KAAK6v5B,mBAGLF,EAAa3v5B,KAAK2+4B,UAAUnzwB,MAAM74G,MAAM,WAG7BtvB,IAAfss5B,GAA8C,SAAlBA,EAAW,IACvC3Q,EAAgBv1zB,GAAO,CAAC,EAAGzpF,KAAK2+4B,UAAW,CAAC,GAAG,GAC/C3+4B,KAAKsi5B,WAAY,GAEXv2kB,GAAkB/rU,KAAK2+4B,UAAUnzwB,QAA4B,SAAlBmkxB,EAAW,KAC5DoV,GAAU,GAEVh5lB,GAAkBw3lB,KAEdA,EADAvj6B,KAAKsi5B,YAAcv2kB,GAAkBizkB,GACzB,CAAE9k4B,EAAGla,KAAK2+4B,UAAUC,YAAYn3iB,OAAUznW,KAAK2+4B,UAAUC,YAAYpg4B,MAAQ,EACrFrE,EAAGna,KAAK2+4B,UAAUC,YAAYl3iB,OAAU1nW,KAAK2+4B,UAAUC,YAAYh2vB,OAAS,GAGpE,CAAE1uI,EAAGla,KAAK6q5B,YAAY9lpB,YAAc,EAAG5qP,EAAGna,KAAK6q5B,YAAY3lpB,aAAe,GAEpE,eAAlBllQ,KAAKsk5B,UAA+C,UAAlBtk5B,KAAKsk5B,WACvCif,EAAY,CAAErp5B,EAAGla,KAAKop5B,aAAama,UAAUrp5B,EAAGC,EAAGna,KAAKop5B,aAAama,UAAUpp5B,KAGvF,IACI2t5B,EAAgB,CAAEvE,UAAWA,EAAWzi1B,QAAQ,EAAOin1B,mBADlC/n6B,KAAKop5B,aAAarI,WAA2B,GAAbA,EAErDinB,kBAAmBho6B,KAAKop5B,aAAarI,WAAYsI,YAAarp5B,KAAKsk5B,UAEvE,GADAtk5B,KAAKsgS,QAAQ,UAAWwnoB,GACpBA,EAAchn1B,OACd,OAEJ9gF,KAAKul6B,yBACLvl6B,KAAKg35B,aAAa,KAAM,MAAM,GAC9Bh35B,KAAK6v5B,mBACL7v5B,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAK6q5B,YAAYrs4B,MAAOxe,KAAK6q5B,YAAYjiwB,QAC3E5oJ,KAAK4p5B,aAAaxj5B,OAASpG,KAAK6g5B,aAChC7g5B,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,UAChC,IAAIqkW,EAAU9zzB,GAAO,GAAIzpF,KAAKu94B,QAAS,IAAI,GAY3C,GAXKv94B,KAAKsi5B,YACc,IAAhBti5B,KAAKw0vB,QACLx0vB,KAAKg35B,eACLh35B,KAAK4h5B,mBAAqB,CAAE1n4B,EAAG,EAAGC,EAAG,GACrCna,KAAKy75B,WAAU,GAAM,IAEO,KAAvBz75B,KAAKm+4B,gBACVn+4B,KAAKqi5B,iBAAmB,CAAEno4B,EAAG,EAAGC,EAAG,IAEvCna,KAAK435B,gCAEW,IAAhB535B,KAAKw0vB,OAAc,CAEnB,GADAx0vB,KAAKmj6B,oBAAoBpiB,EAAY/B,GACF,KAA/Bh/4B,KAAK2h6B,sBAA8B,CACnC3h6B,KAAKsj5B,iBAAiBpp4B,GAAKla,KAAKqi5B,iBAAiBno4B,EACjDla,KAAKsj5B,iBAAiBnp4B,GAAKna,KAAKqi5B,iBAAiBlo4B,EACjDoj4B,EAAU9zzB,GAAO,GAAIzpF,KAAKu94B,QAAS,IAAI,GACvCv94B,KAAKu94B,QAAU,GACf,IAAI0D,EAAWjh5B,KAAKih5B,SAChBC,EAAUlh5B,KAAKkh5B,QACnBlh5B,KAAKg+5B,4BACLh+5B,KAAKki6B,cACLli6B,KAAKih5B,SAAWA,EAChBjh5B,KAAKkh5B,QAAUA,EACflh5B,KAAKu94B,QAAUA,EACfv94B,KAAK065B,cACL165B,KAAK265B,uBACL365B,KAAK435B,8BACT,CACI535B,KAAKop5B,aAAarI,YAAc/g5B,KAAKop5B,aAAawe,gBAAkB5n6B,KAAKsi5B,YACzEti5B,KAAKqi5B,iBAAmB,CAAEno4B,EAAG,EAAGC,EAAG,GAE3C,MAMI,GAJAna,KAAK435B,+BACL535B,KAAKoi5B,uBAAyB,CAAElo4B,EAAG,EAAGC,EAAG,GACzCna,KAAKmi5B,yBAA2B,CAAEjo4B,EAAG,EAAGC,EAAG,GAC3Cna,KAAKij6B,WAAWliB,GACmB,KAA/B/g5B,KAAK2h6B,sBAA8B,CACnC,IAAIj10B,EAAO1sF,KAAK4p5B,aAAaxj5B,OAC7BpG,KAAK4p5B,aAAaxj5B,OAAS,OAC3BpG,KAAK065B,cACL165B,KAAK265B,uBACL365B,KAAK4p5B,aAAaxj5B,OAASsmF,CAC/B,CAEJ,IAAIw20B,EAAat/5B,KAAKwe,IAAI,GAAI,GAM9B,IALIpiB,KAAKop5B,aAAarI,YAAc/g5B,KAAKop5B,aAAawe,eACjDhk6B,KAAKmgB,MAAM/jB,KAAK+g5B,WAAamiB,GAAcA,IAAgB,KAC5D7+pB,cAAcrkQ,KAAKu15B,aACnBv15B,KAAKu15B,YAAc,GAEY,KAA/Bv15B,KAAK2h6B,sBAA8B,CAC/Bj10B,EAAO1sF,KAAK4p5B,aAAaxj5B,OAC7BpG,KAAK4p5B,aAAaxj5B,OAAS,OAC3BpG,KAAK065B,cACL165B,KAAK265B,uBACL365B,KAAK4p5B,aAAaxj5B,OAASsmF,CAC/B,GACMq/O,GAAkB/rU,KAAKyw5B,qBAAyD,gBAAlCzw5B,KAAKyw5B,mBAAmBjlxB,OAA4BxrI,KAAK6h5B,eACzG7h5B,KAAKy55B,WAAWz55B,KAAK4p5B,cAEzB5p5B,KAAK275B,iBAAiB375B,KAAK4p5B,cAC3B5p5B,KAAK6v5B,mBACA9jlB,GAAkBizkB,KACnBh/4B,KAAK2+4B,UAAYl1zB,GAAO,CAAC,EAAGu1zB,EAAe,CAAC,GAAG,GAC/Ch/4B,KAAKu25B,WAAW,YAAav25B,KAAK2+4B,WAC9B3+4B,KAAKop5B,aAAarI,YAAc/g5B,KAAKop5B,aAAawe,gBAClD5n6B,KAAKyw5B,mBAAqB,OAGlCzw5B,KAAK484B,YAAa,EAClB,IAAI2R,EAAUr93B,SAAS0I,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,aACxD41S,GAAkBwilB,IAAYvu5B,KAAKop5B,aAAarI,YAAc/g5B,KAAKop5B,aAAawe,eACjFrZ,EAAQrmoB,UAAU90P,IAAI,cACtBm73B,EAAQ14nB,cAAc3N,UAAU90P,IAAI,cAE9B24S,GAAkBwilB,KACxBA,EAAQrmoB,UAAU/0P,OAAO,cACzBo73B,EAAQ14nB,cAAc3N,UAAU/0P,OAAO,cAE3CnzB,KAAK055B,gBACA3tlB,GAAkBizkB,KACnBh/4B,KAAK2+4B,UAAYl1zB,GAAO,CAAC,EAAGu1zB,EAAe,CAAC,GAAG,IAEtB,gBAAzBh/4B,KAAK2+4B,UAAUnzwB,QACfxrI,KAAKi/4B,YAAYM,cAAe,GAEpC,IAAImW,EAAS115B,KAAKmV,QAAQykB,cAAc,sBACnCmyS,GAAkB2plB,IAAW115B,KAAKi+4B,UACnCyX,EAAOxtoB,UAAU90P,IAAI,kBAEf24S,GAAkB2plB,IACxBA,EAAOxtoB,UAAU/0P,OAAO,kBAExB4x4B,IACA/k6B,KAAK2+4B,UAAYl1zB,GAAO,CAAC,EAAGzpF,KAAKu94B,QAAQv94B,KAAKu94B,QAAQn64B,OAAS,GAAI,CAAC,GAAG,GACvEpD,KAAKu94B,QAAQj/2B,MACbt+B,KAAKu25B,WAAW,YAAav25B,KAAK2+4B,WAClC3+4B,KAAKkw5B,qBACLlw5B,KAAKkp5B,4BAETlp5B,KAAKkv5B,0BACLlv5B,KAAKsk5B,SAAW,SACpB,CACJ,EACA3H,EAAYhs4B,UAAUs35B,qBAAuB,SAAUlnB,GACnD,MAA+C,IAAvCA,EAAa/g5B,KAAKyj5B,kBAC9B,EACA9G,EAAYhs4B,UAAUo15B,kBAAoB,WACtC,IAAIz6vB,GAAa,EACbijvB,EAAUr93B,SAAS0I,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,YACzD8q3B,EAAWjh5B,KAAKih5B,SAChBC,EAAUlh5B,KAAKkh5B,QACfiT,EAAYn05B,KAAKm05B,UACjBC,EAAap05B,KAAKo05B,WA2BtB,OA1BoB,IAAhBp05B,KAAKw0vB,QAAgC,MAAhBx0vB,KAAKw0vB,SACrBzob,GAAkB/rU,KAAK2+4B,UAAUnzwB,OAkBlCxrI,KAAKoj6B,kBAAkB,GAAK,OAjB5Bpj6B,KAAKoj6B,kBAAkB,GAAKpj6B,KAAK2+4B,WAC5B5ykB,GAAkBwilB,KACfvu5B,KAAKih5B,SAAWjh5B,KAAK2+4B,UAAUC,YAAYn3iB,QAAUznW,KAAKkh5B,QAAUlh5B,KAAK2+4B,UAAUC,YAAYl3iB,QAC/F1nW,KAAKih5B,SAAWjh5B,KAAKm05B,UAAYn05B,KAAK2+4B,UAAUC,YAAYzB,MAAQn94B,KAAKkh5B,QAAUlh5B,KAAKo05B,WACxFp05B,KAAK2+4B,UAAUC,YAAYxB,MAC3BmR,EAAQrmoB,UAAU90P,IAAI,cACtBm73B,EAAQ14nB,cAAc3N,UAAU90P,IAAI,aACpCk4I,GAAa,IAGbijvB,EAAQrmoB,UAAU/0P,OAAO,cACzBo73B,EAAQ14nB,cAAc3N,UAAU/0P,OAAO,aACvCm4I,GAAa,MAQ7BtrK,KAAKih5B,SAAWA,EAChBjh5B,KAAKkh5B,QAAUA,EACflh5B,KAAKm05B,UAAYA,EACjBn05B,KAAKo05B,WAAaA,EACX9ovB,CACX,EACAqxuB,EAAYhs4B,UAAUyy5B,iBAAmB,SAAUxh6B,EAAO4llB,GACtD,IAAIu5U,EAAe,CAAEvi5B,MAAO,EAAGoqI,OAAQ,GA0CvC,OAxCIm4wB,EADA/g6B,KAAKw0vB,OAAS,KAAO,GAAKx0vB,KAAKw0vB,OAAS,MAAQ,EACjCx0vB,KAAKgh6B,iBAAiBhh6B,KAAKw55B,UAAWx55B,KAAKu55B,UAG3Cv55B,KAAKgh6B,iBAAiBhh6B,KAAKu55B,SAAUv55B,KAAKw55B,YAEhDh74B,OAAUui5B,EAAavi5B,MAAQxe,KAAK+g5B,WACjDggB,EAAan4wB,QAAWm4wB,EAAan4wB,OAAS5oJ,KAAK+g5B,WACnD/g5B,KAAKih5B,WAAcjh5B,KAAKm05B,UAAY4M,EAAavi5B,OAAS,EAC1Dxe,KAAKkh5B,UAAalh5B,KAAKo05B,WAAa2M,EAAan4wB,QAAU,EAEvDhnJ,EAAQ,IAAMmqU,GAAkBy7Q,IAC5BxnlB,KAAKih5B,SAAWz5T,EAAao3T,YAAYn3iB,SACzCznW,KAAKih5B,SAAWz5T,EAAao3T,YAAYn3iB,QAEzCznW,KAAKkh5B,QAAU15T,EAAao3T,YAAYl3iB,SACxC1nW,KAAKkh5B,QAAU15T,EAAao3T,YAAYl3iB,QAExC1nW,KAAKih5B,SAAW8f,EAAavi5B,MAAQgpkB,EAAao3T,YAAYn3iB,OAAS+/O,EAAao3T,YAAYpg4B,QAChGxe,KAAKih5B,SAAWjh5B,KAAKih5B,UAAYz5T,EAAao3T,YAAYn3iB,OAAS+/O,EAAao3T,YAAYpg4B,QACvFxe,KAAKih5B,SAAW8f,EAAavi5B,QAElCxe,KAAKkh5B,QAAU6f,EAAan4wB,OAAS4+b,EAAao3T,YAAYl3iB,OAAS8/O,EAAao3T,YAAYh2vB,SAChG5oJ,KAAKkh5B,QAAUlh5B,KAAKkh5B,SAAW15T,EAAao3T,YAAYl3iB,OAAS8/O,EAAao3T,YAAYh2vB,SACrF5oJ,KAAKkh5B,QAAU6f,EAAan4wB,UAGhChnJ,EAAQ,GAAKmqU,GAAkBy7Q,KAChCxnlB,KAAKih5B,SAAW,IAChBjh5B,KAAKih5B,SAAW,GAEhBjh5B,KAAKkh5B,QAAU,IACflh5B,KAAKkh5B,QAAU,GAEflh5B,KAAKih5B,SAAW8f,EAAavi5B,MAAQxe,KAAK6q5B,YAAYrs4B,QACtDxe,KAAKih5B,SAAWjh5B,KAAK6q5B,YAAYrs4B,MAAQxe,KAAKm05B,WAE9Cn05B,KAAKkh5B,QAAU6f,EAAan4wB,OAAS5oJ,KAAK6q5B,YAAYjiwB,SACtD5oJ,KAAKkh5B,QAAUlh5B,KAAK6q5B,YAAYjiwB,OAAS5oJ,KAAKo05B,aAG/C2M,CACX,EACApkB,EAAYhs4B,UAAU215B,gBAAkB,SAAUps5B,EAAGC,GACjD,IAAIyk5B,GAAW,EACX35N,EAASx7mB,GAAO,CAAC,EAAGzpF,KAAK2+4B,UAAW,CAAC,GAAG,GAC5C,IAAI5ykB,GAAkBk5X,EAAO25M,gBAGxB1k4B,GAAKtW,KAAKiG,MAAMo7rB,EAAO25M,YAAYn3iB,SAAWvtV,GAAKtW,KAAKC,KAAKohsB,EAAO25M,YAAYzB,OACjFhj4B,GAAKvW,KAAKiG,MAAMo7rB,EAAO25M,YAAYl3iB,SAAWvtV,GAAKvW,KAAKC,KAAKohsB,EAAO25M,YAAYxB,OAG1D,SAAjBn4M,EAAOz5jB,OAAyC,KAArBxrI,KAAK++V,eAFrC6/jB,GAAW,IAKVA,GAAU,CAMX,GALA5+5B,KAAK8g6B,iCAC6Bz95B,IAA9BrD,KAAK2+4B,UAAUwoB,YAAiE,IAArCnn6B,KAAK2+4B,UAAUwoB,WAAW1/jB,QAAmD,IAAnCznW,KAAK2+4B,UAAUwoB,WAAWhqB,MAC3Gn94B,KAAKi/4B,YAAYM,cAA2C,KAA3Bv/4B,KAAKi/4B,YAAYzzwB,OACtDxrI,KAAKu94B,QAAQnx4B,KAAKq9E,GAAO,CAAC,EAAGzpF,KAAK2+4B,UAAW,CAAC,GAAG,IAExB,SAAzB3+4B,KAAK2+4B,UAAUnzwB,OAAgD,YAA3BxrI,KAAKi/4B,YAAYzzwB,OAAkD,cAA3BxrI,KAAKi/4B,YAAYzzwB,OAClE,SAA3BxrI,KAAKi/4B,YAAYzzwB,OAA6C,UAAzBxrI,KAAK2+4B,UAAUnzwB,MAAoB,CACxE,IAAIo1wB,EAAa5g5B,KAAK4p5B,aAAaxj5B,OACnCpG,KAAK4p5B,aAAaxj5B,OAASpG,KAAK6p5B,mBAChC,IAAK,IAAI194B,EAAI,EAAGA,EAAInM,KAAKu94B,QAAQn64B,OAAQ+I,IACjCnM,KAAK2+5B,sBAAsB3+5B,KAAKu94B,QAAQpx4B,MACxCnM,KAAKmZ,MAAMnZ,KAAKu94B,QAAQpx4B,GAAGq/H,MAAOxrI,KAAKu94B,QAAQpx4B,IAC/CnM,KAAK6v5B,oBAGb7v5B,KAAK265B,uBACL365B,KAAK4p5B,aAAaxj5B,OAASw64B,EACtB70kB,GAAkB/rU,KAAK2+4B,UAAUnzwB,QAClCxrI,KAAKmZ,QAETnZ,KAAK275B,iBAAiB375B,KAAK4p5B,cAC3B5p5B,KAAK275B,iBAAiB375B,KAAK4o5B,cACvB5o5B,KAAK6h5B,cACL7h5B,KAAKy55B,WAAWz55B,KAAK4p5B,aAE7B,CACA5p5B,KAAK8v5B,oBACT,CACJ,EACAnT,EAAYhs4B,UAAUu35B,uBAAyB,WAC3C,GAAIlo6B,KAAK2+4B,UAAU7B,aAAe984B,KAAKmr5B,SAASvp5B,MAAO,CACnD,IAAIuv5B,EAAc1n0B,GAAO,CAAC,EAAGzpF,KAAKmj5B,QAAS,CAAC,GAAG,GAC3CznO,EAAU17qB,KAAKix5B,gBACnBv1O,EAAQ6hO,QAAU9zzB,GAAO,GAAIzpF,KAAKu94B,QAAS,IAAI,GAC/C7hO,EAAQz+M,UAAYxzY,GAAO,GAAIzpF,KAAKi9d,UAAW,IAAI,GACnDy+M,EAAQgoO,iBAAmBj6zB,GAAO,GAAIzpF,KAAK0j5B,iBAAkB,IAAI,GACjE1j5B,KAAKqx5B,mBAAmB,OAAQ31O,EAASA,EAAQ6hO,QAAS7hO,EAAQz+M,UAAWk0b,EAAanx5B,KAAK2+4B,UAAU7B,WAAY984B,KAAKmr5B,SAASvp5B,MACvI,CACA5B,KAAK2+4B,UAAU7B,WAAa984B,KAAKmr5B,SAASvp5B,MAC1C5B,KAAKmr5B,SAAShl5B,MAAMi+J,QAAU,OAC9BpkK,KAAKmr5B,SAASvp5B,MAAQ,GACtB5B,KAAKoz5B,mBACL,IAAI504B,EAAQxe,KAAK4o5B,aAAaoL,YAAYh05B,KAAK2+4B,UAAU7B,YAAYt+3B,MAC1B,GAAvCxe,KAAK2+4B,UAAUd,aAAa5+lB,SAC5Br2J,EAAS5oJ,KAAK2+4B,UAAUd,aAAa5+lB,SAAkD,IAAvCj/S,KAAK2+4B,UAAUd,aAAa5+lB,SAC5EmvR,EAAOpukB,KAAK2+4B,UAAU7B,WAAWnq3B,MAAM,MAC3C,GAAIy7iB,EAAKhrkB,OAAS,EAAG,CACjBwlJ,GAAUwlb,EAAKhrkB,OAEf,IADA,IAAI+k6B,EAAY,GACPh85B,EAAI,EAAGA,EAAIiikB,EAAKhrkB,OAAQ+I,IAC7Bg85B,EAAU/75B,KAAKpM,KAAK4o5B,aAAaoL,YAAY5lV,EAAKjikB,IAAIqS,MACX,GAAvCxe,KAAK2+4B,UAAUd,aAAa5+lB,UAEpCzgS,EAAQ5a,KAAKqpC,IAAI9zB,MAAMvV,KAAMuk6B,EACjC,CACAno6B,KAAKi05B,iBAAiBz14B,EAAOoqI,GAC7B5oJ,KAAKk05B,mBAAmBl05B,KAAK2+4B,UAAUC,YAAa5+4B,KAAK2+4B,WACzD3+4B,KAAK8g6B,2BACT,EACAnkB,EAAYhs4B,UAAUmi5B,yBAA2B,WAC7C9y5B,KAAK2+4B,UAAUd,aAAar7b,WAAaxid,KAAKmr5B,SAAShl5B,MAAMq8c,WAC7Dxid,KAAK2+4B,UAAUjB,eAAejgb,YAA4C,KAA9Bz9d,KAAKmr5B,SAAShl5B,MAAMswH,MAC5Dz2H,KAAKonjB,SAAS12gB,WAAW1wC,KAAKmr5B,SAAShl5B,MAAMswH,MAAM9jG,MAAM,KAAK,GAAGA,MAAM,KAAK,IAAK+d,WAAW1wC,KAAKmr5B,SAAShl5B,MAAMswH,MAAM9jG,MAAM,KAAK,GAAGA,MAAM,KAAK,IAAK+d,WAAW1wC,KAAKmr5B,SAAShl5B,MAAMswH,MAAM9jG,MAAM,KAAK,GAAGA,MAAM,KAAK,KAClN3yB,KAAKmr5B,SAAShl5B,MAAMswH,MACe,SAAnCz2H,KAAKmr5B,SAAShl5B,MAAMgoI,WACpBnuI,KAAK2+4B,UAAUd,aAAaztxB,MAAO,EAGnCpwH,KAAK2+4B,UAAUd,aAAaztxB,MAAO,EAED,WAAlCpwH,KAAKmr5B,SAAShl5B,MAAMqwkB,UACpBx2kB,KAAK2+4B,UAAUd,aAAavtxB,QAAS,EAGrCtwH,KAAK2+4B,UAAUd,aAAavtxB,QAAS,EAEzCtwH,KAAK2+4B,UAAUd,aAAa5+lB,SAAYvuQ,WAAW1wC,KAAKmr5B,SAAShl5B,MAAM84S,SAC3E,EACA09lB,EAAYhs4B,UAAUqm5B,aAAe,SAAU984B,EAAGC,EAAGo94B,GACjD,IAAI5H,OACyBts5B,IAAzBrD,KAAK2+4B,UAAUnzwB,QACfmkxB,EAAa3v5B,KAAK2+4B,UAAUnzwB,MAAM74G,MAAM,WAEVtvB,IAA9BrD,KAAK2+4B,UAAUwoB,iBAAsD9j6B,IAAzBrD,KAAK2+4B,UAAUnzwB,OAAyC,SAAlBmkxB,EAAW,KACzD,UAAhC3v5B,KAAKmr5B,SAAShl5B,MAAMi+J,SACpBpkK,KAAK8y5B,2BACL9y5B,KAAKkz5B,gBAAgBlz5B,KAAK2+4B,WAAW,GACjCzk4B,GAAKC,EACAD,IAAMla,KAAK2+4B,UAAUC,YAAYn3iB,QAAYttV,IAAMna,KAAK2+4B,UAAUC,YAAYl3iB,SAC/E1nW,KAAKko6B,yBACLlo6B,KAAKq25B,gBAITr25B,KAAKko6B,yBACLlo6B,KAAKmZ,MAAMnZ,KAAK2+4B,UAAUnzwB,MAAOxrI,KAAK2+4B,WACtC3+4B,KAAKu94B,QAAQnx4B,KAAKpM,KAAK2+4B,WACvB3+4B,KAAK6v5B,mBACL7v5B,KAAKmr5B,SAAShl5B,MAAMoyD,UAAY,GAChCv4D,KAAK8v5B,uBAIT9v5B,KAAKq25B,YAAYkB,GAG7B,EACA5a,EAAYhs4B,UAAUy35B,cAAgB,SAAUnjO,EAAQuvD,EAAQztqB,EAAM7sE,EAAGC,GACrE,IAAImsV,EAAQ,CAAEpsV,EAAGA,EAAGC,EAAGA,GAyDvB,OAxDe,IAAXq6uB,EAC2B,eAAvBztqB,EAAKrmE,eACL4lV,EAAMpsV,EAAI+qrB,EAAO25M,YAAYzB,KAC7B72iB,EAAMnsV,EAAI8qrB,EAAO25M,YAAYl3iB,QAED,aAAvB3gR,EAAKrmE,eACV4lV,EAAMpsV,EAAI+qrB,EAAO25M,YAAYn3iB,OAC7BnB,EAAMnsV,EAAI8qrB,EAAO25M,YAAYxB,OAG7B92iB,EAAMpsV,EAAI+qrB,EAAO25M,YAAYn3iB,OAC7BnB,EAAMnsV,EAAI8qrB,EAAO25M,YAAYl3iB,QAGjB,KAAX8sZ,EACsB,eAAvBztqB,EAAKrmE,eACL4lV,EAAMpsV,EAAI+qrB,EAAO25M,YAAYn3iB,OAC7BnB,EAAMnsV,EAAI8qrB,EAAO25M,YAAYl3iB,QAED,aAAvB3gR,EAAKrmE,eACV4lV,EAAMpsV,EAAI+qrB,EAAO25M,YAAYzB,KAC7B72iB,EAAMnsV,EAAI8qrB,EAAO25M,YAAYxB,OAG7B92iB,EAAMpsV,EAAI+qrB,EAAO25M,YAAYzB,KAC7B72iB,EAAMnsV,EAAI8qrB,EAAO25M,YAAYl3iB,QAGjB,MAAX8sZ,EACsB,eAAvBztqB,EAAKrmE,eACL4lV,EAAMpsV,EAAI+qrB,EAAO25M,YAAYn3iB,OAC7BnB,EAAMnsV,EAAI8qrB,EAAO25M,YAAYxB,MAED,aAAvBr2zB,EAAKrmE,eACV4lV,EAAMpsV,EAAI+qrB,EAAO25M,YAAYzB,KAC7B72iB,EAAMnsV,EAAI8qrB,EAAO25M,YAAYl3iB,SAG7BpB,EAAMpsV,EAAI+qrB,EAAO25M,YAAYzB,KAC7B72iB,EAAMnsV,EAAI8qrB,EAAO25M,YAAYxB,MAGjB,MAAX5oJ,IACsB,eAAvBztqB,EAAKrmE,eACL4lV,EAAMpsV,EAAI+qrB,EAAO25M,YAAYzB,KAC7B72iB,EAAMnsV,EAAI8qrB,EAAO25M,YAAYxB,MAED,aAAvBr2zB,EAAKrmE,eACV4lV,EAAMpsV,EAAI+qrB,EAAO25M,YAAYn3iB,OAC7BnB,EAAMnsV,EAAI8qrB,EAAO25M,YAAYl3iB,SAG7BpB,EAAMpsV,EAAI+qrB,EAAO25M,YAAYn3iB,OAC7BnB,EAAMnsV,EAAI8qrB,EAAO25M,YAAYxB,OAG9B92iB,CACX,EACAq2iB,EAAYhs4B,UAAU035B,iBAAmB,SAAUpjO,EAAQuvD,EAAQztqB,EAAM7sE,EAAGC,GACxE,IAAImsV,EAAQ,CAAEpsV,EAAGA,EAAGC,EAAGA,GAyFvB,OAxFe,IAAXq6uB,EAC4C,eAAxCvvD,EAAO45M,YAAY,GAAGn+3B,cACK,eAAvBqmE,EAAKrmE,eACL4lV,EAAMpsV,EAAK+qrB,EAAO25M,YAAYn3iB,OAC9BnB,EAAMnsV,EAAK8qrB,EAAO25M,YAAYl3iB,QAEF,aAAvB3gR,EAAKrmE,gBACV4lV,EAAMpsV,EAAK+qrB,EAAO25M,YAAYzB,KAC9B72iB,EAAMnsV,EAAK8qrB,EAAO25M,YAAYxB,MAIP,eAAvBr2zB,EAAKrmE,eACL4lV,EAAMpsV,EAAK+qrB,EAAO25M,YAAYzB,KAC9B72iB,EAAMnsV,EAAK8qrB,EAAO25M,YAAYxB,MAEF,aAAvBr2zB,EAAKrmE,gBACV4lV,EAAMpsV,EAAK+qrB,EAAO25M,YAAYzB,KAC9B72iB,EAAMnsV,EAAK8qrB,EAAO25M,YAAYl3iB,QAItB,KAAX8sZ,EACuC,eAAxCvvD,EAAO45M,YAAY,GAAGn+3B,cACK,eAAvBqmE,EAAKrmE,eACL4lV,EAAMpsV,EAAK+qrB,EAAO25M,YAAYzB,KAC9B72iB,EAAMnsV,EAAK8qrB,EAAO25M,YAAYxB,MAEF,aAAvBr2zB,EAAKrmE,gBACV4lV,EAAMpsV,EAAK+qrB,EAAO25M,YAAYn3iB,OAC9BnB,EAAMnsV,EAAK8qrB,EAAO25M,YAAYxB,MAIP,eAAvBr2zB,EAAKrmE,eACL4lV,EAAMpsV,EAAK+qrB,EAAO25M,YAAYn3iB,OAC9BnB,EAAMnsV,EAAK8qrB,EAAO25M,YAAYxB,MAEF,aAAvBr2zB,EAAKrmE,gBACV4lV,EAAMpsV,EAAK+qrB,EAAO25M,YAAYn3iB,OAC9BnB,EAAMnsV,EAAK8qrB,EAAO25M,YAAYl3iB,QAItB,MAAX8sZ,EACuC,eAAxCvvD,EAAO45M,YAAY,GAAGn+3B,eACK,eAAvBqmE,EAAKrmE,eAIuB,aAAvBqmE,EAAKrmE,iBAHV4lV,EAAMpsV,EAAK+qrB,EAAO25M,YAAYn3iB,OAC9BnB,EAAMnsV,EAAK8qrB,EAAO25M,YAAYl3iB,QAQP,eAAvB3gR,EAAKrmE,eACL4lV,EAAMpsV,EAAK+qrB,EAAO25M,YAAYn3iB,OAC9BnB,EAAMnsV,EAAK8qrB,EAAO25M,YAAYl3iB,QAEF,aAAvB3gR,EAAKrmE,gBACV4lV,EAAMpsV,EAAK+qrB,EAAO25M,YAAYn3iB,OAC9BnB,EAAMnsV,EAAK8qrB,EAAO25M,YAAYxB,MAItB,MAAX5oJ,IACuC,eAAxCvvD,EAAO45M,YAAY,GAAGn+3B,cACK,eAAvBqmE,EAAKrmE,eACL4lV,EAAMpsV,EAAK+qrB,EAAO25M,YAAYn3iB,OAC9BnB,EAAMnsV,EAAK8qrB,EAAO25M,YAAYl3iB,QAEF,aAAvB3gR,EAAKrmE,gBACV4lV,EAAMpsV,EAAK+qrB,EAAO25M,YAAYzB,KAC9B72iB,EAAMnsV,EAAK8qrB,EAAO25M,YAAYl3iB,QAIP,eAAvB3gR,EAAKrmE,eACL4lV,EAAMpsV,EAAK+qrB,EAAO25M,YAAYzB,KAC9B72iB,EAAMnsV,EAAK8qrB,EAAO25M,YAAYl3iB,QAEF,aAAvB3gR,EAAKrmE,gBACV4lV,EAAMpsV,EAAK+qrB,EAAO25M,YAAYzB,KAC9B72iB,EAAMnsV,EAAK8qrB,EAAO25M,YAAYxB,OAInC92iB,CACX,EACAq2iB,EAAYhs4B,UAAUiz5B,eAAiB,SAAUvj6B,GAC7C,IAAI6Z,EACAC,EAaJ,GAZe,aAAX9Z,EAAEuM,MACFsN,EAAI7Z,EAAEg5B,QACNlf,EAAI9Z,EAAEi5B,SAEU,eAAXj5B,EAAEuM,OACP5M,KAAKo+4B,cAAclk4B,EAAIA,EAAI7Z,EAAEgpJ,QAAQ,GAAGhwH,QACxCr5B,KAAKo+4B,cAAcjk4B,EAAIA,EAAI9Z,EAAEgpJ,QAAQ,GAAG/vH,SAE5Ct5B,KAAKgk5B,gBAAiB,EACtBhk5B,KAAKs0jB,eAAe,QACpBt0jB,KAAKgk5B,gBAAiB,EACtBhk5B,KAAKkw5B,qBACAnklB,GAAkB7xT,IAAO6xT,GAAkB5xT,IAiF3C,GAAoC,UAAhCna,KAAKmr5B,SAAShl5B,MAAMi+J,SAA+C,KAAxBpkK,KAAKso6B,gBAAoC,cAAXjo6B,EAAEuM,KAAsB,CAClG8/E,EAAO1sF,KAAKmr5B,SAASvp5B,MACzB5B,KAAKmr5B,SAASvp5B,OAAS,IACvB5B,KAAKmr5B,SAASvp5B,MAAQ8qF,CAC1B,MArFoD,CAChD,IAAI630B,EAAOvk6B,KAAK6q5B,YAAYp2nB,wBAC5Bv6Q,GAAKqq5B,EAAK5gyB,KACVxpH,GAAKoq5B,EAAKr2wB,IACV,IAAIsmmB,OAAS,EACTztqB,EAAO,IAEPytqB,EAD+B,IAA/Bx0vB,KAAK2+4B,UAAU+kB,YACN1j6B,KAAKw0vB,OAGLx0vB,KAAKw0vB,OAASx0vB,KAAK2+4B,UAAU+kB,aAE7B,IACTlvK,EAAS,IAAMA,GAIXztqB,EAFwB,KAA5B/mF,KAAK2+4B,UAAU4pB,SACXvo6B,KAAK2+4B,UAAU4pB,WAAavo6B,KAAKm+4B,cAC1B,GAGAn+4B,KAAKm+4B,cAIZn+4B,KAAK2+4B,UAAU4pB,WAAavo6B,KAAKm+4B,cAC1B,GAEqB,KAAvBn+4B,KAAKm+4B,cACHn+4B,KAAK2+4B,UAAU4pB,SAGfvo6B,KAAKm+4B,cAGpB,IAAIzxzB,OAAO,EACX,GAAoC,SAAhC1sF,KAAKmr5B,SAAShl5B,MAAMi+J,QAAoB,CACxC13E,EAAOjD,GAAO,CAAC,EAAGzpF,KAAK2+4B,UAAW,CAAC,GAAG,GACtC,IAAK,IAAIxy4B,EAAI,EAAGA,EAAInM,KAAKu94B,QAAQn64B,OAAQ+I,IACjCskC,KAAK+mF,UAAUx3H,KAAK2+4B,aAAelu2B,KAAK+mF,UAAUx3H,KAAKu94B,QAAQpx4B,KAC/DnM,KAAKu94B,QAAQ/n3B,OAAOrpB,EAAG,GAG/BnM,KAAK6v5B,mBACL7v5B,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,QAC3E5oJ,KAAK4p5B,aAAa7qb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,QAC3E5oJ,KAAK425B,qBACC7qlB,GAAkB/rU,KAAKyw5B,qBAAyD,gBAAlCzw5B,KAAKyw5B,mBAAmBjlxB,OAA4BxrI,KAAK6h5B,eACzG7h5B,KAAKy55B,WAAWz55B,KAAK4p5B,cAEzB5p5B,KAAK2+4B,UAAYjyzB,EACjB1sF,KAAKoz5B,mBACL,IAAInuN,EAASx7mB,GAAO,CAAC,EAAGzpF,KAAK2+4B,UAAW,CAAC,GAAG,GAC5C,GAAIzk4B,GAAM+qrB,EAAO25M,YAAYn3iB,OAAwC,EAA9Bw9V,EAAOs2N,cAAc/4oB,QACxDtoQ,GAAM+qrB,EAAO25M,YAAYzB,KAAsC,EAA9Bl4M,EAAOs2N,cAAc/4oB,QACtDroQ,GAAM8qrB,EAAO25M,YAAYl3iB,OAAwC,EAA9Bu9V,EAAOs2N,cAAc/4oB,QACxDroQ,GAAM8qrB,EAAO25M,YAAYxB,KAAsC,EAA9Bn4M,EAAOs2N,cAAc/4oB,OAAc,CAUhE,IAKIg9M,EANR,GARAx/d,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,QACzC,IAA9Bq8iB,EAAO45M,YAAYz74B,SACnB6hsB,EAAO45M,YAAc,GACrB93zB,EAAO,IAEE,KAATA,GAAek+mB,EAAO45M,YAAYz74B,OAAS,IAC3C2jF,EAAOk+mB,EAAO45M,YAAY55M,EAAO45M,YAAYz74B,OAAS,IAEtD6hsB,EAAO45M,YAAYz74B,QAAU,EAE7B8W,GADIsld,EAASx/d,KAAKoo6B,cAAcnjO,EAAQuvD,EAAQztqB,EAAM7sE,EAAGC,IAC9CD,EACXC,EAAIqld,EAAOrld,OAIXD,GADIsld,EAASx/d,KAAKqo6B,iBAAiBpjO,EAAQuvD,EAAQztqB,EAAM7sE,EAAGC,IACjDD,EACXC,EAAIqld,EAAOrld,EAEfna,KAAKy25B,eAAev84B,EAAGC,EAAG8qrB,EAC9B,MAEIjlsB,KAAKq25B,aAEb,CACJ,CAMJ,EACA1Z,EAAYhs4B,UAAU8l5B,eAAiB,SAAUv84B,EAAGC,EAAG8qrB,GACnD,IACIuvD,EADAl1vB,EAAQU,MAGRw0vB,EAD+B,IAA/Bx0vB,KAAK2+4B,UAAU+kB,YACN1j6B,KAAKw0vB,OAGLx0vB,KAAKw0vB,OAASx0vB,KAAK2+4B,UAAU+kB,aAE7B,IACTlvK,EAAS,IAAMA,GAEnBx0vB,KAAKmp5B,4BACLnp5B,KAAKmr5B,SAAShl5B,MAAMi+J,QAAU,QAC9BpkK,KAAKmr5B,SAAShl5B,MAAMw9H,KAAOzpH,EAAI,KAC/Bla,KAAKmr5B,SAAShl5B,MAAM+nJ,IAAM/zI,EAAI,KAC9Bna,KAAKmr5B,SAAShl5B,MAAMq8c,WAAayiP,EAAO44M,aAAar7b,WACrDxid,KAAKmr5B,SAAShl5B,MAAM84S,SAAWgmZ,EAAO44M,aAAa5+lB,SAAW,KAC9Dj/S,KAAKmr5B,SAAShl5B,MAAMswH,MAAQwukB,EAAOy4M,eAAejgb,YAClDz9d,KAAKmr5B,SAAShl5B,MAAMgoI,WAAa82jB,EAAO44M,aAAaztxB,KAAO,OAAS,SACrEpwH,KAAKmr5B,SAAShl5B,MAAMqwkB,UAAYyuH,EAAO44M,aAAavtxB,OAAS,SAAW,SACxEtwH,KAAKmr5B,SAAShl5B,MAAMqhQ,OAAS,aAAexnQ,KAAKil5B,UAAUjl5B,KAAKkta,OAAqB,aACrFlta,KAAKmr5B,SAASvp5B,MAAQqjsB,EAAO63M,WAC7B984B,KAAKmr5B,SAAShl5B,MAAMsyF,SAAW,SAC/Bz4F,KAAKmr5B,SAAShl5B,MAAMqY,MAAQ,OAC5Bxe,KAAKmr5B,SAAShl5B,MAAMyiJ,OAAS,OAC7B5oJ,KAAKmr5B,SAAS/g5B,QACVoqvB,EAAS,KAAO,GAAKA,EAAS,MAAQ,GAAgB,IAAXA,GACvCx0vB,KAAK+g5B,WACL/g5B,KAAKmr5B,SAAShl5B,MAAMqY,MAASymrB,EAAO25M,YAAYh2vB,OAAU,KAC1D5oJ,KAAKmr5B,SAAShl5B,MAAMyiJ,OAAUq8iB,EAAO25M,YAAYpg4B,MAAS,OAQ1Dxe,KAAK+g5B,WACL/g5B,KAAKmr5B,SAAShl5B,MAAMqY,MAASymrB,EAAO25M,YAAYpg4B,MAAS,KACzDxe,KAAKmr5B,SAAShl5B,MAAMyiJ,OAAUq8iB,EAAO25M,YAAYh2vB,OAAU,MAOnE5oJ,KAAKwn6B,kBACDxn6B,KAAKsh5B,SAASl+4B,QAAU,GACxBpD,KAAKwo6B,mBAELh0K,EAAS,KAAO,GAAKA,EAAS,MAAQ,EAClC9jtB,WAAW1wC,KAAKmr5B,SAAShl5B,MAAMw9H,MAAQjzF,WAAW1wC,KAAKmr5B,SAAShl5B,MAAMqY,OAASxe,KAAKkh5B,QAAUlh5B,KAAKo05B,YACnGp05B,KAAK0n6B,0BAILh33B,WAAW1wC,KAAKmr5B,SAAShl5B,MAAMw9H,MAAQjzF,WAAW1wC,KAAKmr5B,SAAShl5B,MAAMqY,OAASxe,KAAKih5B,SAAWjh5B,KAAKm05B,WACpGn05B,KAAK0n6B,0BAGT1n6B,KAAKsnV,SACLlxT,YAAW,WACP92B,EAAMsp5B,aAAa7pb,UAAU,EAAG,EAAGz/d,EAAMmr5B,YAAYjs4B,MAAOlf,EAAMmr5B,YAAY7hwB,OAClF,GAAG,IAEX,EACA+zvB,EAAYhs4B,UAAU235B,aAAe,WACjC,IAAIpy3B,EAAQl2C,KAAKmr5B,SAAS/9vB,eACtBnxG,EAASj8C,KAAKmr5B,SAAS99vB,aAC3B,OAAOrtJ,KAAKmr5B,SAASvp5B,MAAMslB,UAAUgvB,EAAO+F,EAChD,EACA0g2B,EAAYhs4B,UAAU635B,iBAAmB,WACrC,IAAIC,EACAj0K,EACAztqB,EAAO,GACPk+mB,EAASx7mB,GAAO,CAAC,EAAGzpF,KAAK2+4B,UAAW,CAAC,GAAG,IAExCnqJ,EADuB,IAAvBvvD,EAAOy+N,YACE1j6B,KAAKw0vB,OAGLx0vB,KAAKw0vB,OAASvvD,EAAOy+N,aAErB,IACTlvK,EAAS,IAAMA,GAIXztqB,EAFgB,KAApBk+mB,EAAOsjO,SACHtjO,EAAOsjO,WAAavo6B,KAAKm+4B,cAClB,GAGAn+4B,KAAKm+4B,cAIZl5M,EAAOsjO,WAAavo6B,KAAKm+4B,cAClB,GAEqB,KAAvBn+4B,KAAKm+4B,cACHl5M,EAAOsjO,SAGPvo6B,KAAKm+4B,cAGL,IAAX3pJ,EAC2B,aAAvBztqB,EAAKrmE,cACL1gB,KAAKmr5B,SAAShl5B,MAAMy/b,UAAa5lc,KAAKo05B,YAAcp05B,KAAKo05B,WACnD1j3B,WAAW1wC,KAAKmr5B,SAAShl5B,MAAM+nJ,MAAS,MAG9Cu6wB,EAAc/33B,WAAW1wC,KAAKmr5B,SAAShl5B,MAAM+nJ,KAAOluJ,KAAKkh5B,QACzDlh5B,KAAKmr5B,SAAShl5B,MAAMy/b,UAAa5lc,KAAKo05B,WAAaqU,EAAe,MAGtD,KAAXj0K,EACsB,eAAvBztqB,EAAKrmE,cACL1gB,KAAKmr5B,SAAShl5B,MAAMy/b,UAAa5lc,KAAKm05B,WAAazj3B,WAAW1wC,KAAKmr5B,SAAShl5B,MAAMw9H,MAC5E3jI,KAAKih5B,UAAa,KAGxBjh5B,KAAKmr5B,SAAShl5B,MAAMy/b,UAAal1Z,WAAW1wC,KAAKmr5B,SAAShl5B,MAAMw9H,MAC1D3jI,KAAKih5B,SAAY,KAGX,MAAXzsJ,EACsB,aAAvBztqB,EAAKrmE,eACL+n5B,EAAc/33B,WAAW1wC,KAAKmr5B,SAAShl5B,MAAM+nJ,KAAOluJ,KAAKkh5B,QACzDlh5B,KAAKmr5B,SAAShl5B,MAAMy/b,UAAa5lc,KAAKo05B,WAAaqU,EAAe,MAGlEzo6B,KAAKmr5B,SAAShl5B,MAAMy/b,UAAal1Z,WAAW1wC,KAAKmr5B,SAAShl5B,MAAM+nJ,KAC1DluJ,KAAKkh5B,QAAW,KAGV,MAAX1sJ,IACsB,eAAvBztqB,EAAKrmE,cACL1gB,KAAKmr5B,SAAShl5B,MAAMy/b,UAAal1Z,WAAW1wC,KAAKmr5B,SAAShl5B,MAAMw9H,MAC1D3jI,KAAKih5B,SAAY,KAGvBjh5B,KAAKmr5B,SAAShl5B,MAAMy/b,UAAY5lc,KAAKm05B,WAAazj3B,WAAW1wC,KAAKmr5B,SAAShl5B,MAAMw9H,MAC3E3jI,KAAKih5B,UAAY,KAInC,EACAtE,EAAYhs4B,UAAU625B,gBAAkB,SAAUnn6B,GAC9C,IAAI4/B,EAAOjgC,KAAK+z5B,YAAW,GACS,UAAhC/z5B,KAAKmr5B,SAAShl5B,MAAMi+J,QACpBpkK,KAAKoz5B,kBAAiB,GAGtBpz5B,KAAKoz5B,mBAET,IAGI5+J,EAHAk0K,EAAiB1o6B,KAAK4o5B,aAAaoL,YAAY/z3B,GAAMzhB,MAASkyB,WAAW1wC,KAAKmr5B,SAAShl5B,MAAM84S,UAAY,EACzG0pnB,EAActo6B,EAAIL,KAAK4o5B,aAAaoL,YAAYj24B,OAAO4yC,aAAatwD,EAAEg4B,QAAQ7Z,MAAQ,EACtFymrB,EAASx7mB,GAAO,CAAC,EAAGzpF,KAAK2+4B,UAAW,CAAC,GAAG,GAExC53zB,EAAO,IAEPytqB,EADuB,IAAvBvvD,EAAOy+N,YACE1j6B,KAAKw0vB,OAGLx0vB,KAAKw0vB,OAASvvD,EAAOy+N,aAErB,IACTlvK,EAAS,IAAMA,GAGfztqB,EADAk+mB,EAAOm6N,YAAcp/5B,KAAKm+4B,cACnB,GAGAn+4B,KAAKm+4B,gBAEVpykB,GAAkB1rU,IAAMqwC,WAAW1wC,KAAKmr5B,SAAShl5B,MAAMqY,OAAUkq5B,EAAgBC,GAAiB58lB,GAAkB1rU,MACvG,IAAXm0vB,EAC2B,eAAvBztqB,EAAKrmE,cACAgwB,WAAW1wC,KAAKmr5B,SAAShl5B,MAAMw9H,MAAQ3jI,KAAKih5B,SAAYynB,EAAgBC,EAAc,IACvF3o6B,KAAKmr5B,SAAShl5B,MAAMqY,MAASkq5B,EAAgBC,EAAe,MAI3D3o6B,KAAKm05B,WAAazj3B,WAAW1wC,KAAKmr5B,SAAShl5B,MAAMw9H,MAChD3jI,KAAKih5B,UAAcynB,EAAgBC,IACrC3o6B,KAAKmr5B,SAAShl5B,MAAMqY,MAASkq5B,EAAgBC,EAAe,MAIpD,KAAXn0K,EACsB,aAAvBztqB,EAAKrmE,cACAgwB,WAAW1wC,KAAKmr5B,SAAShl5B,MAAM+nJ,KAAOluJ,KAAKkh5B,QAAWwnB,EAAgBC,EAAc,IACrF3o6B,KAAKmr5B,SAAShl5B,MAAMqY,MAASkq5B,EAAgBC,EAAe,MAI3D3o6B,KAAKo05B,YAAc1j3B,WAAW1wC,KAAKmr5B,SAAShl5B,MAAM+nJ,KACjDluJ,KAAKkh5B,SAAawnB,EAAgBC,IACpC3o6B,KAAKmr5B,SAAShl5B,MAAMqY,MAASkq5B,EAAgBC,EAAe,MAIpD,MAAXn0K,EACsB,eAAvBztqB,EAAKrmE,cACA1gB,KAAKm05B,WAAazj3B,WAAW1wC,KAAKmr5B,SAAShl5B,MAAMw9H,MAChD3jI,KAAKih5B,UAAcynB,EAAgBC,IACrC3o6B,KAAKmr5B,SAAShl5B,MAAMqY,MAASkq5B,EAAgBC,EAAe,MAI3Dj43B,WAAW1wC,KAAKmr5B,SAAShl5B,MAAMw9H,MAAQ3jI,KAAKih5B,SAAYynB,EAAgBC,EAAc,IACvF3o6B,KAAKmr5B,SAAShl5B,MAAMqY,MAASkq5B,EAAgBC,EAAe,MAIpD,MAAXn0K,IACsB,aAAvBztqB,EAAKrmE,cACA1gB,KAAKo05B,YAAc1j3B,WAAW1wC,KAAKmr5B,SAAShl5B,MAAM+nJ,KACjDluJ,KAAKkh5B,SAAawnB,EAAgBC,IACpC3o6B,KAAKmr5B,SAAShl5B,MAAMqY,MAASkq5B,EAAgBC,EAAe,MAI3Dj43B,WAAW1wC,KAAKmr5B,SAAShl5B,MAAM+nJ,KAAOluJ,KAAKkh5B,QAAWwnB,EAAgBC,EAAc,IACrF3o6B,KAAKmr5B,SAAShl5B,MAAMqY,MAASkq5B,EAAgBC,EAAe,OAKhF,EACAhsB,EAAYhs4B,UAAUm15B,eAAiB,SAAUr+jB,EAAQC,GACrD,IAAI37B,GAAkB/rU,KAAK2+4B,UAAUC,aAGrC,GAAI5+4B,KAAKi/4B,YAAYx41B,OAAQ,CACzB,IAAImi3B,EAAYnhkB,GAAkB,EAC9Bwkc,EAAavkc,GAAkB1nW,KAAK2+4B,UAAUd,aAAa5+lB,cAClB57S,IAAzCrD,KAAK2+4B,UAAUd,aAAa5+lB,WAC5Bj/S,KAAK2+4B,UAAUd,aAAa5+lB,SAAkE,GAAtDr7S,KAAK8Y,IAAI1c,KAAK2r5B,QAAQnt4B,MAAQxe,KAAK2r5B,QAAQ/iwB,SAEvF5oJ,KAAKi05B,iBAAiB2U,EAAW38H,GACjCjsyB,KAAKg94B,eAAe9i4B,EAAIla,KAAK2+4B,UAAUC,YAAYzB,KACnDn94B,KAAKg94B,eAAe7i4B,EAAIna,KAAK2+4B,UAAUC,YAAYxB,UACjB/54B,IAA9BrD,KAAK2+4B,UAAUwoB,aACfnn6B,KAAK2+4B,UAAUC,YAAcn1zB,GAAO,CAAC,EAAGzpF,KAAK2+4B,UAAUC,YAAa,CAAC,GAAG,IAE5E5+4B,KAAKu25B,WAAW,YACpB,MACK,GAAI9ujB,GAAUC,EACf1nW,KAAK2+4B,UAAUC,YAAYn3iB,OAASznW,KAAKg94B,eAAe9i4B,EAAIutV,EAC5DznW,KAAK2+4B,UAAUC,YAAYl3iB,OAAS1nW,KAAKg94B,eAAe7i4B,EAAIutV,EAC5D1nW,KAAKi/4B,YAAYC,YAAa,MAE7B,CACD,IAAI2pB,EAAa7o6B,KAAK2+4B,UACtB3+4B,KAAK2+4B,UAAUC,YAAc,CAAEn3iB,OAAQohkB,EAAW1B,WAAW1/jB,OAAQC,OAAQmhkB,EAAW1B,WAAWz/jB,OAC/Fy1iB,KAAM0rB,EAAW1B,WAAWhqB,KAAMC,KAAMyrB,EAAW1B,WAAW/pB,MAClEp94B,KAAK2+4B,UAAUC,YAAYpg4B,MAAQxe,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAK2+4B,UAAUC,YAAYn3iB,OAChGznW,KAAK2+4B,UAAUC,YAAYh2vB,OAAS5oJ,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAK2+4B,UAAUC,YAAYl3iB,MACrG,CACJ,EACAi1iB,EAAYhs4B,UAAUm45B,aAAe,SAAUtq5B,GAC3C,IAAIiryB,EAAYjryB,EAChB,GAAIiryB,GAAa,EACb,IAAK,IAAIt9yB,EAAI,EAAGA,EAAIs9yB,IAChBjryB,EAAQiryB,EAAYt9yB,EACpBnM,KAAK2+4B,UAAUC,YAAYn3iB,QAAUjpV,EACrCxe,KAAK2+4B,UAAUC,YAAYzB,MAAQ3+3B,IAC/Bxe,KAAK2+4B,UAAUC,YAAYn3iB,QAAUznW,KAAKih5B,UAC1Cjh5B,KAAK2+4B,UAAUC,YAAYzB,MAAQn94B,KAAKih5B,SAAWjh5B,KAAKm05B,YALjCho5B,IASvBnM,KAAK2+4B,UAAUC,YAAYn3iB,QAAUjpV,EACrCxe,KAAK2+4B,UAAUC,YAAYzB,MAAQ3+3B,OAK3C,IAASrS,EAAI,EAAGA,EAAIvI,KAAK8Y,IAAI+syB,KACzBjryB,EAAQiryB,EAAYt9yB,EACpBnM,KAAK2+4B,UAAUC,YAAYn3iB,QAAUjpV,EACrCxe,KAAK2+4B,UAAUC,YAAYzB,MAAQ3+3B,IAC/Bxe,KAAK2+4B,UAAUC,YAAYn3iB,QAAUznW,KAAKih5B,UAC1Cjh5B,KAAK2+4B,UAAUC,YAAYzB,MAAQn94B,KAAKih5B,SAAWjh5B,KAAKm05B,YALvBho5B,IASjCnM,KAAK2+4B,UAAUC,YAAYn3iB,QAAUjpV,EACrCxe,KAAK2+4B,UAAUC,YAAYzB,MAAQ3+3B,CAInD,EACAm+3B,EAAYhs4B,UAAUo45B,cAAgB,SAAUngxB,GAC5C,IAAIogxB,EAAapgxB,EACjB,GAAIogxB,GAAc,EACd,IAAK,IAAI785B,EAAI,EAAGA,EAAI685B,IAChBpgxB,EAASogxB,EAAa785B,EACtBnM,KAAK2+4B,UAAUC,YAAYl3iB,QAAU9+M,EACrC5oJ,KAAK2+4B,UAAUC,YAAYxB,MAAQx0vB,IAC/B5oJ,KAAK2+4B,UAAUC,YAAYl3iB,QAAU1nW,KAAKkh5B,SAC1Clh5B,KAAK2+4B,UAAUC,YAAYxB,MAAQp94B,KAAKkh5B,QAAUlh5B,KAAKo05B,aAL/Bjo5B,IASxBnM,KAAK2+4B,UAAUC,YAAYl3iB,QAAU9+M,EACrC5oJ,KAAK2+4B,UAAUC,YAAYxB,MAAQx0vB,OAK3C,IAASz8I,EAAI,EAAGA,EAAIvI,KAAK8Y,IAAIss5B,KACzBpgxB,EAASogxB,EAAa785B,EACtBnM,KAAK2+4B,UAAUC,YAAYl3iB,QAAU9+M,EACrC5oJ,KAAK2+4B,UAAUC,YAAYxB,MAAQx0vB,IAC/B5oJ,KAAK2+4B,UAAUC,YAAYl3iB,QAAU1nW,KAAKkh5B,SAC1Clh5B,KAAK2+4B,UAAUC,YAAYxB,MAAQp94B,KAAKkh5B,QAAUlh5B,KAAKo05B,aALrBjo5B,IASlCnM,KAAK2+4B,UAAUC,YAAYl3iB,QAAU9+M,EACrC5oJ,KAAK2+4B,UAAUC,YAAYxB,MAAQx0vB,CAInD,EACA+zvB,EAAYhs4B,UAAUs45B,mBAAqB,SAAUC,EAAmBC,EAAiBv85B,GACrF5M,KAAK2+4B,UAAUC,YAAYpg4B,MAAQxe,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAK2+4B,UAAUC,YAAYn3iB,OAChGznW,KAAK2+4B,UAAUC,YAAYh2vB,OAAS5oJ,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAK2+4B,UAAUC,YAAYl3iB,OACjG,IAAIu/jB,EAAuBjn6B,KAAKgn6B,8BAChCkC,EAAkBjC,qBAAuBA,EACzCkC,EAAgBlC,qBAAuBA,EAC1B,WAATr65B,GACA5M,KAAKsgS,QAAQ,gBAAiB4ooB,GAC9Blp6B,KAAKop6B,2BAA2BF,EAAkBjC,wBAGlDjn6B,KAAKsgS,QAAQ,gBAAiB6ooB,GAC9Bnp6B,KAAKop6B,2BAA2BD,EAAgBlC,sBAExD,EACAtqB,EAAYhs4B,UAAUq15B,kBAAoB,SAAU9r5B,EAAGC,EAAGy14B,GACtD,IAAImR,EAAe/g6B,KAAKgh6B,iBAAiBhh6B,KAAK2+4B,UAAUC,YAAYpg4B,MAAOxe,KAAK2+4B,UAAUC,YAAYh2vB,QAClGm+wB,EAAwB/m6B,KAAKgn6B,8BAC7BkC,EAAoB,CAAEh01B,OAAQ,SAAU6x1B,sBAAuBA,GAC/DoC,EAAkB,CAAEj01B,OAAQ,OAAQ6x1B,sBAAuBA,GAI/D,OAH6B,SAAzB/m6B,KAAK2+4B,UAAUnzwB,OAAyC,KAArBxrI,KAAK++V,aACxC/+V,KAAKkz5B,gBAAgBlz5B,KAAK2+4B,WAEtB3+4B,KAAK++V,YAAYr+U,eACrB,IAAK,YACD1gB,KAAKqp6B,eAAenv5B,EAAGC,EAAG4m5B,GAC1B/g6B,KAAKsp6B,qBAAqBtp6B,KAAK2+4B,WAC/B3+4B,KAAKip6B,mBAAmBC,EAAmBC,EAAiB,UAC5D,MACJ,IAAK,WACDnp6B,KAAKup6B,cAAcrv5B,EAAGC,GACtBna,KAAKsp6B,qBAAqBtp6B,KAAK2+4B,WAC/B3+4B,KAAKip6B,mBAAmBC,EAAmBC,EAAiB,UAC5D,MACJ,IAAK,YACDnp6B,KAAKwp6B,eAAetv5B,EAAGC,EAAG4m5B,GAC1B/g6B,KAAKsp6B,qBAAqBtp6B,KAAK2+4B,WAC/B3+4B,KAAKip6B,mBAAmBC,EAAmBC,EAAiB,UAC5D,MACJ,IAAK,WACDnp6B,KAAKyp6B,cAAcvv5B,EAAGC,GACtBna,KAAKsp6B,qBAAqBtp6B,KAAK2+4B,WAC/B3+4B,KAAKip6B,mBAAmBC,EAAmBC,EAAiB,UAC5D,MACJ,IAAK,WACDnp6B,KAAK0p6B,cAAcxv5B,EAAGC,GACtBna,KAAKsp6B,qBAAqBtp6B,KAAK2+4B,WAC/B3+4B,KAAKip6B,mBAAmBC,EAAmBC,EAAiB,UAC5D,MACJ,IAAK,YACDnp6B,KAAK2p6B,eAAezv5B,EAAGC,EAAG4m5B,GAC1B/g6B,KAAKsp6B,qBAAqBtp6B,KAAK2+4B,WAC/B3+4B,KAAKip6B,mBAAmBC,EAAmBC,EAAiB,UAC5D,MACJ,IAAK,WACDnp6B,KAAK4p6B,cAAc1v5B,EAAGC,GACtBna,KAAKsp6B,qBAAqBtp6B,KAAK2+4B,WAC/B3+4B,KAAKip6B,mBAAmBC,EAAmBC,EAAiB,UAC5D,MACJ,IAAK,YACDnp6B,KAAK6p6B,eAAe3v5B,EAAGC,EAAG4m5B,GAC1B/g6B,KAAKsp6B,qBAAqBtp6B,KAAK2+4B,WAC/B3+4B,KAAKip6B,mBAAmBC,EAAmBC,EAAiB,UAC5D,MACJ,QACI,IAAKvZ,IAAoB5v5B,KAAKi/4B,YAAYM,aAAc,CACpD,GAAIv/4B,KAAKk94B,UAAUz1iB,OAAQ,CACvB,IAAIjpV,EAASxe,KAAKk94B,UAAUC,KAAOn94B,KAAKi94B,cAAc/i4B,EAClD0uI,EAAU5oJ,KAAKk94B,UAAUE,KAAOp94B,KAAKi94B,cAAc9i4B,EACvDna,KAAK2+4B,UAAUC,YAAYn3iB,QAAUjpV,EACrCxe,KAAK2+4B,UAAUC,YAAYzB,MAAQ3+3B,EACnCxe,KAAK2+4B,UAAUC,YAAYl3iB,QAAU9+M,EACrC5oJ,KAAK2+4B,UAAUC,YAAYxB,MAAQx0vB,GAC9B5oJ,KAAKyh5B,oBAAsBzh5B,KAAK2+4B,UAAUC,YAAYn3iB,OAASznW,KAAKih5B,UACrEjh5B,KAAK2+4B,UAAUC,YAAYl3iB,OAAS1nW,KAAKkh5B,SAAWlh5B,KAAK2+4B,UAAUC,YAAYzB,KAC/En94B,KAAKih5B,SAAWjh5B,KAAKm05B,WAAan05B,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAKkh5B,QAAUlh5B,KAAKo05B,cACxFp05B,KAAK2+4B,UAAUC,YAAYn3iB,QAAUjpV,EACrCxe,KAAK2+4B,UAAUC,YAAYzB,MAAQ3+3B,EACnCxe,KAAK2+4B,UAAUC,YAAYl3iB,QAAU9+M,EACrC5oJ,KAAK2+4B,UAAUC,YAAYxB,MAAQx0vB,EACnC5oJ,KAAK8o6B,aAAatq5B,GAClBxe,KAAK+o6B,cAAcngxB,GAE3B,MAEI5oJ,KAAK2+4B,UAAUC,YAAYn3iB,OAASvtV,EAAIla,KAAKg94B,eAAe9i4B,EAAIA,EAAIla,KAAKg94B,eAAe9i4B,EACxFla,KAAK2+4B,UAAUC,YAAYl3iB,OAASvtV,EAAIna,KAAKg94B,eAAe7i4B,EAAIA,EAAIna,KAAKg94B,eAAe7i4B,EACxFD,EAAIA,EAAIla,KAAKg94B,eAAe9i4B,EAAIla,KAAKg94B,eAAe9i4B,EAAIA,EACxDC,EAAIA,EAAIna,KAAKg94B,eAAe7i4B,EAAIna,KAAKg94B,eAAe7i4B,EAAIA,EACxDna,KAAK2+4B,UAAUC,YAAYzB,KAAOjj4B,EAClCla,KAAK2+4B,UAAUC,YAAYxB,KAAOjj4B,EAEtCna,KAAKip6B,mBAAmBC,EAAmBC,EAAiB,OAChE,EAGZ,EACAxsB,EAAYhs4B,UAAU245B,qBAAuB,SAAUz45B,EAAKk2E,EAAM+i1B,GAC5C,UAAdj55B,EAAI26H,QAAsB36H,EAAI+t4B,YAAYpg4B,MAAQ,GAClD3N,EAAI+t4B,YAAYh2vB,OAAS,GAAc,eAAT7hE,GAAkC,aAATA,GAAyC,KAAlB+i1B,KAChD,SAA1Bj55B,EAAIk55B,oBAAiCl55B,EAAI+t4B,YAAYpg4B,MAAQ,GACpD,eAATuoE,GACAl2E,EAAIk55B,kBAAoB,QAEO,UAA1Bl55B,EAAIk55B,oBAAkCl55B,EAAI+t4B,YAAYpg4B,MAAQ,GAC1D,eAATuoE,GACAl2E,EAAIk55B,kBAAoB,OAEO,QAA1Bl55B,EAAIk55B,oBAAgCl55B,EAAI+t4B,YAAYh2vB,OAAS,GACzD,aAAT7hE,GACAl2E,EAAIk55B,kBAAoB,SAEO,WAA1Bl55B,EAAIk55B,oBAAmCl55B,EAAI+t4B,YAAYh2vB,OAAS,GAC5D,aAAT7hE,KACAl2E,EAAIk55B,kBAAoB,OAEvBh+lB,GAAkB+9lB,IAAoC,KAAlBA,IACP,UAA1Bj55B,EAAIk55B,kBACJl55B,EAAIk55B,kBAAoB,SAEO,WAA1Bl55B,EAAIk55B,kBACTl55B,EAAIk55B,kBAAoB,OAEO,SAA1Bl55B,EAAIk55B,kBACTl55B,EAAIk55B,kBAAoB,MAEO,QAA1Bl55B,EAAIk55B,oBACTl55B,EAAIk55B,kBAAoB,UAIxC,EACAptB,EAAYhs4B,UAAUq55B,wBAA0B,WACvChq6B,KAAKyh5B,oBACFzh5B,KAAK2+4B,UAAUC,YAAYn3iB,OAASznW,KAAKih5B,WACzCjh5B,KAAK2+4B,UAAUC,YAAYn3iB,OAASznW,KAAKih5B,UAEzCjh5B,KAAK2+4B,UAAUC,YAAYl3iB,OAAS1nW,KAAKkh5B,UACzClh5B,KAAK2+4B,UAAUC,YAAYl3iB,OAAS1nW,KAAKkh5B,SAEzClh5B,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAKih5B,SAAWjh5B,KAAKm05B,YACvDn05B,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAKih5B,SAAWjh5B,KAAKm05B,WAEvDn05B,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAKkh5B,QAAUlh5B,KAAKo05B,aACtDp05B,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAKkh5B,QAAUlh5B,KAAKo05B,YAGlE,EACAzX,EAAYhs4B,UAAUs55B,4BAA8B,WAChD,IAAIC,GAAa,EASjB,OARKlq6B,KAAKyh5B,oBACFzh5B,KAAK2+4B,UAAUC,YAAYn3iB,OAASznW,KAAKih5B,UACzCjh5B,KAAK2+4B,UAAUC,YAAYl3iB,OAAS1nW,KAAKkh5B,SACzClh5B,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAKih5B,SAAWjh5B,KAAKm05B,WACvDn05B,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAKkh5B,QAAUlh5B,KAAKo05B,cACtD8V,GAAa,GAGdA,CACX,EACAvtB,EAAYhs4B,UAAU045B,eAAiB,SAAUnv5B,EAAGC,EAAG4m5B,GACnD,IACIvi5B,EACAoqI,EACA20U,EACA4sc,EACAC,EAAYpq6B,KAAKq94B,UAAUnj4B,EAC3Bmw5B,EAAYrq6B,KAAKq94B,UAAUlj4B,EAC3B6k4B,EAAgBv1zB,GAAO,CAAC,EAAGzpF,KAAK2+4B,UAAW,MAAM,GACrD,GAA6B,SAAzB3+4B,KAAK2+4B,UAAUnzwB,WACSnoI,IAApBrD,KAAKs94B,SAASpj4B,QAAuC7W,IAApBrD,KAAKs94B,SAASnj4B,GAC/Cna,KAAKq94B,UAAUnj4B,EAAIla,KAAK2+4B,UAAUC,YAAYn3iB,OAASvtV,EACvDla,KAAKq94B,UAAUlj4B,EAAIna,KAAK2+4B,UAAUC,YAAYl3iB,OAASvtV,IAGvDna,KAAKq94B,UAAUnj4B,EAAIla,KAAKs94B,SAASpj4B,EAAIA,EACrCla,KAAKq94B,UAAUlj4B,EAAIna,KAAKs94B,SAASnj4B,EAAIA,GAEzCna,KAAKs94B,SAASpj4B,EAAIA,EAClBla,KAAKs94B,SAASnj4B,EAAIA,EAOlBgw5B,GANInq6B,KAAKq94B,UAAUnj4B,GAAKkw5B,GAAapq6B,KAAKq94B,UAAUlj4B,GAAKkw5B,EAC9Czm6B,KAAKgmD,IAAI5pD,KAAKq94B,UAAUnj4B,EAAGla,KAAKq94B,UAAUlj4B,GAG1CvW,KAAKqpC,IAAIjtC,KAAKq94B,UAAUnj4B,EAAGla,KAAKq94B,UAAUlj4B,IAEhC,GACrBna,KAAK2+4B,UAAUC,YAAYn3iB,QAAWs5jB,EAAavi5B,MAAQ,IAAO2r5B,EAClEnq6B,KAAK2+4B,UAAUC,YAAYl3iB,QAAWq5jB,EAAan4wB,OAAS,IAAOuhxB,EAC/Dnq6B,KAAKiq6B,gCACLjq6B,KAAK2+4B,UAAUC,YAAYn3iB,QAAWs5jB,EAAavi5B,MAAQ,IAAO2r5B,EAClEnq6B,KAAK2+4B,UAAUC,YAAYl3iB,QAAWq5jB,EAAan4wB,OAAS,IAAOuhxB,GAEvEnq6B,KAAK2+4B,UAAUC,YAAYpg4B,MAAQxe,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAK2+4B,UAAUC,YAAYn3iB,OAChGznW,KAAK2+4B,UAAUC,YAAYh2vB,OAAS5oJ,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAK2+4B,UAAUC,YAAYl3iB,OACjG1nW,KAAK4/5B,eAAe5/5B,KAAK2+4B,eAExB,CACD,IAAIgR,OAAa,EAIjB,QAH6Bts5B,IAAzBrD,KAAK2+4B,UAAUnzwB,QACfmkxB,EAAa3v5B,KAAK2+4B,UAAUnzwB,MAAM74G,MAAM,MAEf,gBAAzB3yB,KAAK2+4B,UAAUnzwB,YAAqDnoI,IAAzBrD,KAAK2+4B,UAAUnzwB,OAAyC,SAAlBmkxB,EAAW,GAAgB,CAG5G,GAFA3v5B,KAAK2+4B,UAAUC,YAAYn3iB,OAASvtV,EACpCla,KAAK2+4B,UAAUC,YAAYl3iB,OAASvtV,EAChCna,KAAK2+4B,UAAUC,YAAYn3iB,OAASznW,KAAK2+4B,UAAUC,YAAYzB,KAAM,CACrE,IAAIzwzB,EAAO1sF,KAAK2+4B,UAAUC,YAAYn3iB,OACtCznW,KAAK2+4B,UAAUC,YAAYn3iB,OAASznW,KAAK2+4B,UAAUC,YAAYzB,KAC/Dn94B,KAAK2+4B,UAAUC,YAAYzB,KAAOzwzB,EAClC1sF,KAAK++V,YAAc,WACvB,CACA,GAAI/+V,KAAK2+4B,UAAUC,YAAYl3iB,OAAS1nW,KAAK2+4B,UAAUC,YAAYxB,KAAM,CACjE1wzB,EAAO1sF,KAAK2+4B,UAAUC,YAAYl3iB,OACtC1nW,KAAK2+4B,UAAUC,YAAYl3iB,OAAS1nW,KAAK2+4B,UAAUC,YAAYxB,KAC/Dp94B,KAAK2+4B,UAAUC,YAAYxB,KAAO1wzB,EAClC1sF,KAAK++V,YAAc,WACvB,CACA/+V,KAAKgq6B,yBACT,MAEI,GAAIhq6B,KAAK2+4B,UAAUC,YAAYn3iB,OAASvtV,GAAKla,KAAK2+4B,UAAUC,YAAYl3iB,OAASvtV,EAAG,CAChFqE,EAAQtE,EAAIla,KAAK2+4B,UAAUC,YAAYn3iB,OACvC7+M,EAASzuI,EAAIna,KAAK2+4B,UAAUC,YAAYl3iB,OACxC61H,EAAQ35d,KAAKgmD,IAAIprC,EAAOoqI,GACxB,IAAI0hxB,EAAWtq6B,KAAKuq6B,cAAchtc,GAClCv9d,KAAK2+4B,UAAUC,YAAYn3iB,QAAU6ikB,EAASpw5B,EAC9Cla,KAAK2+4B,UAAUC,YAAYl3iB,QAAU4ikB,EAASnw5B,EAC9C,IAAIwpH,EAAO3jI,KAAKih5B,SAAW,EAAIjh5B,KAAKih5B,SAAW,EAC3CupB,EAAQxq6B,KAAKkh5B,QAAU,EAAIlh5B,KAAKkh5B,QAAU,GAC1Clh5B,KAAK2+4B,UAAUC,YAAYn3iB,OAAS9jO,GAAQ3jI,KAAK2+4B,UAAUC,YAAYl3iB,OAAS8ikB,KAChFxq6B,KAAK2+4B,UAAUC,YAAYn3iB,QAAU6ikB,EAASpw5B,EAC9Cla,KAAK2+4B,UAAUC,YAAYl3iB,QAAU4ikB,EAASnw5B,EAEtD,KACK,CACDqE,EAAQxe,KAAK2+4B,UAAUC,YAAYn3iB,OAASvtV,EAC5C0uI,EAASzuI,EAAIna,KAAK2+4B,UAAUC,YAAYxB,KACxC7/a,EAAQ35d,KAAKqpC,IAAIzuB,EAAOoqI,GACpB0hxB,EAAWtq6B,KAAKuq6B,cAAchtc,GAClCv9d,KAAK2+4B,UAAUC,YAAYn3iB,QAAU6ikB,EAASpw5B,EAC9Cla,KAAK2+4B,UAAUC,YAAYl3iB,QAAU4ikB,EAASnw5B,EAC1CwpH,EAAO3jI,KAAKih5B,SAAW,EAAIjh5B,KAAKih5B,SAAW,EAA/C,IACIwpB,EAAQzq6B,KAAKkh5B,QAAU,EAAIlh5B,KAAKkh5B,QAAU,GAC1Clh5B,KAAK2+4B,UAAUC,YAAYn3iB,OAAS9jO,GAAQ3jI,KAAK2+4B,UAAUC,YAAYl3iB,OAAS+ikB,KAChFzq6B,KAAK2+4B,UAAUC,YAAYn3iB,QAAU6ikB,EAASpw5B,EAC9Cla,KAAK2+4B,UAAUC,YAAYl3iB,QAAU4ikB,EAASnw5B,EAEtD,CAEJna,KAAK2+4B,UAAUC,YAAYpg4B,MAAQxe,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAK2+4B,UAAUC,YAAYn3iB,OAChGznW,KAAK2+4B,UAAUC,YAAYh2vB,OAAS5oJ,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAK2+4B,UAAUC,YAAYl3iB,OACjG1nW,KAAK0q6B,qBAAqB1rB,EAC9B,CACJ,EACArC,EAAYhs4B,UAAU445B,cAAgB,SAAUrv5B,EAAGC,GAC/C,IAAIqE,EACAoqI,EACA20U,EACJ,GAA6B,SAAzBv9d,KAAK2+4B,UAAUnzwB,MAAkB,CACjC,IAAImkxB,OAAa,EAIjB,QAH6Bts5B,IAAzBrD,KAAK2+4B,UAAUnzwB,QACfmkxB,EAAa3v5B,KAAK2+4B,UAAUnzwB,MAAM74G,MAAM,MAEf,gBAAzB3yB,KAAK2+4B,UAAUnzwB,YAAqDnoI,IAAzBrD,KAAK2+4B,UAAUnzwB,OAAyC,SAAlBmkxB,EAAW,GAAgB,CAG5G,GAFA3v5B,KAAK2+4B,UAAUC,YAAYl3iB,OAASvtV,EACpCna,KAAK2+4B,UAAUC,YAAYh2vB,OAAS5oJ,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAK2+4B,UAAUC,YAAYl3iB,OAC7F1nW,KAAK2+4B,UAAUC,YAAYl3iB,OAAS1nW,KAAK2+4B,UAAUC,YAAYxB,KAAM,CACrE,IAAI1wzB,EAAO1sF,KAAK2+4B,UAAUC,YAAYl3iB,OACtC1nW,KAAK2+4B,UAAUC,YAAYl3iB,OAAS1nW,KAAK2+4B,UAAUC,YAAYxB,KAC/Dp94B,KAAK2+4B,UAAUC,YAAYxB,KAAO1wzB,EAClC1sF,KAAK++V,YAAc,UACvB,CACA/+V,KAAKgq6B,yBACT,KACK,CACD,GAAIhq6B,KAAK2+4B,UAAUC,YAAYzB,KAAOjj4B,GAAKla,KAAK2+4B,UAAUC,YAAYl3iB,OAASvtV,EAAG,CAC9EqE,EAAQxe,KAAK2+4B,UAAUC,YAAYzB,KAAOjj4B,EAC1C0uI,EAASzuI,EAAIna,KAAK2+4B,UAAUC,YAAYl3iB,OACxC61H,EAAQ35d,KAAKgmD,IAAIprC,EAAOoqI,GACxB,IAAI0hxB,EAAWtq6B,KAAKuq6B,cAAchtc,GAClCv9d,KAAK2+4B,UAAUC,YAAYzB,MAAQmtB,EAASpw5B,EAC5Cla,KAAK2+4B,UAAUC,YAAYl3iB,QAAU4ikB,EAASnw5B,GAC1Cna,KAAK2+4B,UAAUC,YAAYzB,KAAQn94B,KAAKih5B,SAAWjh5B,KAAKm05B,WACxDn05B,KAAK2+4B,UAAUC,YAAYl3iB,OAAS1nW,KAAKkh5B,WACzClh5B,KAAK2+4B,UAAUC,YAAYzB,MAAQmtB,EAASpw5B,EAC5Cla,KAAK2+4B,UAAUC,YAAYl3iB,QAAU4ikB,EAASnw5B,EAEtD,KACK,CACDqE,EAAQtE,EAAIla,KAAK2+4B,UAAUC,YAAYzB,KACvCv0vB,EAAS5oJ,KAAK2+4B,UAAUC,YAAYl3iB,OAASvtV,EAC7Cojd,EAAQ35d,KAAKqpC,IAAIzuB,EAAOoqI,GACpB0hxB,EAAWtq6B,KAAKuq6B,cAAchtc,GAClCv9d,KAAK2+4B,UAAUC,YAAYzB,MAAQmtB,EAASpw5B,EAC5Cla,KAAK2+4B,UAAUC,YAAYl3iB,QAAU4ikB,EAASnw5B,GAC1Cna,KAAK2+4B,UAAUC,YAAYzB,KAAQn94B,KAAKih5B,SAAWjh5B,KAAKm05B,WACxDn05B,KAAK2+4B,UAAUC,YAAYl3iB,OAAS1nW,KAAKkh5B,WACzClh5B,KAAK2+4B,UAAUC,YAAYzB,MAAQmtB,EAASpw5B,EAC5Cla,KAAK2+4B,UAAUC,YAAYl3iB,QAAU4ikB,EAASnw5B,EAEtD,CACAna,KAAK2+4B,UAAUC,YAAYpg4B,MAAQxe,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAK2+4B,UAAUC,YAAYn3iB,OAChGznW,KAAK2+4B,UAAUC,YAAYh2vB,OAAS5oJ,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAK2+4B,UAAUC,YAAYl3iB,MACrG,CACJ,CACJ,EACAi1iB,EAAYhs4B,UAAU645B,eAAiB,SAAUtv5B,EAAGC,EAAG4m5B,GACnD,IACIvi5B,EACAoqI,EACA20U,EACA4sc,EACAC,EAAYpq6B,KAAKq94B,UAAUnj4B,EAC3Bmw5B,EAAYrq6B,KAAKq94B,UAAUlj4B,EAC3B6k4B,EAAgBv1zB,GAAO,CAAC,EAAGzpF,KAAK2+4B,UAAW,MAAM,GACrD,GAA6B,SAAzB3+4B,KAAK2+4B,UAAUnzwB,WACSnoI,IAApBrD,KAAKs94B,SAASpj4B,QAAuC7W,IAApBrD,KAAKs94B,SAASnj4B,GAC/Cna,KAAKq94B,UAAUnj4B,EAAIA,EAAIla,KAAK2+4B,UAAUC,YAAYzB,KAClDn94B,KAAKq94B,UAAUlj4B,EAAIna,KAAK2+4B,UAAUC,YAAYl3iB,OAASvtV,IAGvDna,KAAKq94B,UAAUnj4B,EAAIA,EAAIla,KAAKs94B,SAASpj4B,EACrCla,KAAKq94B,UAAUlj4B,EAAIna,KAAKs94B,SAASnj4B,EAAIA,GAEzCna,KAAKs94B,SAASpj4B,EAAIA,EAClBla,KAAKs94B,SAASnj4B,EAAIA,EAOlBgw5B,GANInq6B,KAAKq94B,UAAUnj4B,GAAKkw5B,GAAapq6B,KAAKq94B,UAAUlj4B,GAAKkw5B,EAC9Czm6B,KAAKgmD,IAAI5pD,KAAKq94B,UAAUnj4B,EAAGla,KAAKq94B,UAAUlj4B,GAG1CvW,KAAKqpC,IAAIjtC,KAAKq94B,UAAUnj4B,EAAGla,KAAKq94B,UAAUlj4B,IAEhC,GACrBna,KAAK2+4B,UAAUC,YAAYzB,MAAS4jB,EAAavi5B,MAAQ,IAAO2r5B,EAChEnq6B,KAAK2+4B,UAAUC,YAAYl3iB,QAAWq5jB,EAAan4wB,OAAS,IAAOuhxB,EAC/Dnq6B,KAAKiq6B,gCACLjq6B,KAAK2+4B,UAAUC,YAAYzB,MAAS4jB,EAAavi5B,MAAQ,IAAO2r5B,EAChEnq6B,KAAK2+4B,UAAUC,YAAYl3iB,QAAWq5jB,EAAan4wB,OAAS,IAAOuhxB,GAEvEnq6B,KAAK2+4B,UAAUC,YAAYpg4B,MAAQxe,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAK2+4B,UAAUC,YAAYn3iB,OAChGznW,KAAK2+4B,UAAUC,YAAYh2vB,OAAS5oJ,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAK2+4B,UAAUC,YAAYl3iB,OACjG1nW,KAAK4/5B,eAAe5/5B,KAAK2+4B,eAExB,CACD,IAAIgR,OAAa,EAIjB,QAH6Bts5B,IAAzBrD,KAAK2+4B,UAAUnzwB,QACfmkxB,EAAa3v5B,KAAK2+4B,UAAUnzwB,MAAM74G,MAAM,MAExC3yB,KAAKi/4B,YAAYM,mBAA0Cl84B,IAAzBrD,KAAK2+4B,UAAUnzwB,OAAyC,SAAlBmkxB,EAAW,GAAgB,CAGnG,GAFA3v5B,KAAK2+4B,UAAUC,YAAYzB,KAAOjj4B,EAClCla,KAAK2+4B,UAAUC,YAAYl3iB,OAASvtV,EAChCna,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAK2+4B,UAAUC,YAAYn3iB,OAAQ,CACrE,IAAI/6Q,EAAO1sF,KAAK2+4B,UAAUC,YAAYzB,KACtCn94B,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAK2+4B,UAAUC,YAAYn3iB,OAC7DznW,KAAK2+4B,UAAUC,YAAYn3iB,OAAS/6Q,EACpC1sF,KAAK++V,YAAc,WACvB,CACA,GAAI/+V,KAAK2+4B,UAAUC,YAAYl3iB,OAAS1nW,KAAK2+4B,UAAUC,YAAYxB,KAAM,CACjE1wzB,EAAO1sF,KAAK2+4B,UAAUC,YAAYl3iB,OACtC1nW,KAAK2+4B,UAAUC,YAAYl3iB,OAAS1nW,KAAK2+4B,UAAUC,YAAYxB,KAC/Dp94B,KAAK2+4B,UAAUC,YAAYxB,KAAO1wzB,EAClC1sF,KAAK++V,YAAc,WACvB,CACA/+V,KAAKgq6B,yBACT,MAEI,GAAIhq6B,KAAK2+4B,UAAUC,YAAYzB,KAAOjj4B,GAAKla,KAAK2+4B,UAAUC,YAAYl3iB,OAASvtV,EAAG,CAC9EqE,EAAQxe,KAAK2+4B,UAAUC,YAAYzB,KAAOjj4B,EAC1C0uI,EAASzuI,EAAIna,KAAK2+4B,UAAUC,YAAYl3iB,OACxC61H,EAAQ35d,KAAKgmD,IAAIprC,EAAOoqI,GACxB,IAAI0hxB,EAAWtq6B,KAAKuq6B,cAAchtc,GAClCv9d,KAAK2+4B,UAAUC,YAAYzB,MAAQmtB,EAASpw5B,EAC5Cla,KAAK2+4B,UAAUC,YAAYl3iB,QAAU4ikB,EAASnw5B,EAC9C,IAAIgj4B,EAAOn94B,KAAKih5B,SAAWjh5B,KAAKm05B,UAAYn05B,KAAK6q5B,YAAYrs4B,MACzDxe,KAAKih5B,SAAWjh5B,KAAKm05B,UAAYn05B,KAAK6q5B,YAAYrs4B,MAClD4+3B,EAAOp94B,KAAKkh5B,QAAU,EAAIlh5B,KAAKkh5B,QAAU,GACzClh5B,KAAK2+4B,UAAUC,YAAYzB,KAAOA,GAAQn94B,KAAK2+4B,UAAUC,YAAYl3iB,OAAS01iB,KAC9Ep94B,KAAK2+4B,UAAUC,YAAYzB,MAAQmtB,EAASpw5B,EAC5Cla,KAAK2+4B,UAAUC,YAAYl3iB,QAAU4ikB,EAASnw5B,EAEtD,KACK,CACDqE,EAAQtE,EAAIla,KAAK2+4B,UAAUC,YAAYzB,KACvCv0vB,EAAS5oJ,KAAK2+4B,UAAUC,YAAYl3iB,OAASvtV,EAC7Cojd,EAAQ35d,KAAKqpC,IAAIzuB,EAAOoqI,GACpB0hxB,EAAWtq6B,KAAKuq6B,cAAchtc,GAClCv9d,KAAK2+4B,UAAUC,YAAYzB,MAAQmtB,EAASpw5B,EAC5Cla,KAAK2+4B,UAAUC,YAAYl3iB,QAAU4ikB,EAASnw5B,EAC1Cgj4B,EAAOn94B,KAAKih5B,SAAWjh5B,KAAKm05B,UAAYn05B,KAAK6q5B,YAAYrs4B,MACzDxe,KAAKih5B,SAAWjh5B,KAAKm05B,UAAYn05B,KAAK6q5B,YAAYrs4B,MAClD4+3B,EAAOp94B,KAAKkh5B,QAAU,EAAIlh5B,KAAKkh5B,QAAU,GACzClh5B,KAAK2+4B,UAAUC,YAAYzB,KAAOA,GAAQn94B,KAAK2+4B,UAAUC,YAAYl3iB,OAAS01iB,KAC9Ep94B,KAAK2+4B,UAAUC,YAAYzB,MAAQmtB,EAASpw5B,EAC5Cla,KAAK2+4B,UAAUC,YAAYl3iB,QAAU4ikB,EAASnw5B,EAEtD,CAEJna,KAAK2+4B,UAAUC,YAAYpg4B,MAAQxe,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAK2+4B,UAAUC,YAAYn3iB,OAChGznW,KAAK2+4B,UAAUC,YAAYh2vB,OAAS5oJ,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAK2+4B,UAAUC,YAAYl3iB,OACjG1nW,KAAK0q6B,qBAAqB1rB,EAC9B,CACJ,EACArC,EAAYhs4B,UAAU845B,cAAgB,SAAUvv5B,EAAGC,GAC/C,IAAIqE,EACAoqI,EACA20U,EACJ,GAA6B,SAAzBv9d,KAAK2+4B,UAAUnzwB,MAAkB,CACjC,IAAImkxB,OAAa,EAIjB,QAH6Bts5B,IAAzBrD,KAAK2+4B,UAAUnzwB,QACfmkxB,EAAa3v5B,KAAK2+4B,UAAUnzwB,MAAM74G,MAAM,MAEf,gBAAzB3yB,KAAK2+4B,UAAUnzwB,YAAqDnoI,IAAzBrD,KAAK2+4B,UAAUnzwB,OAAyC,SAAlBmkxB,EAAW,GAAgB,CAG5G,GAFA3v5B,KAAK2+4B,UAAUC,YAAYn3iB,OAASvtV,EACpCla,KAAK2+4B,UAAUC,YAAYpg4B,MAAQxe,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAK2+4B,UAAUC,YAAYn3iB,OAC5FznW,KAAK2+4B,UAAUC,YAAYn3iB,OAASznW,KAAK2+4B,UAAUC,YAAYzB,KAAM,CACrE,IAAIzwzB,EAAO1sF,KAAK2+4B,UAAUC,YAAYn3iB,OACtCznW,KAAK2+4B,UAAUC,YAAYn3iB,OAASznW,KAAK2+4B,UAAUC,YAAYzB,KAC/Dn94B,KAAK2+4B,UAAUC,YAAYzB,KAAOzwzB,EAClC1sF,KAAK++V,YAAc,UACvB,CACA/+V,KAAKgq6B,yBACT,KACK,CACD,GAAIhq6B,KAAK2+4B,UAAUC,YAAYn3iB,OAASvtV,GAAKla,KAAK2+4B,UAAUC,YAAYxB,KAAOjj4B,EAAG,CAC9EqE,EAAQtE,EAAIla,KAAK2+4B,UAAUC,YAAYn3iB,OACvC7+M,EAAS5oJ,KAAK2+4B,UAAUC,YAAYxB,KAAOjj4B,EAC3Cojd,EAAQ35d,KAAKgmD,IAAIprC,EAAOoqI,GACxB,IAAI0hxB,EAAWtq6B,KAAKuq6B,cAAchtc,GAClCv9d,KAAK2+4B,UAAUC,YAAYn3iB,QAAU6ikB,EAASpw5B,EAC9Cla,KAAK2+4B,UAAUC,YAAYxB,MAAQktB,EAASnw5B,GACxCna,KAAK2+4B,UAAUC,YAAYn3iB,OAASznW,KAAKih5B,UAAYjh5B,KAAK2+4B,UAAUC,YAAYxB,KAC/Ep94B,KAAKkh5B,QAAUlh5B,KAAKo05B,cACrBp05B,KAAK2+4B,UAAUC,YAAYn3iB,QAAU6ikB,EAASpw5B,EAC9Cla,KAAK2+4B,UAAUC,YAAYxB,MAAQktB,EAASnw5B,EAEpD,KACK,CACDqE,EAAQxe,KAAK2+4B,UAAUC,YAAYn3iB,OAASvtV,EAC5C0uI,EAASzuI,EAAIna,KAAK2+4B,UAAUC,YAAYxB,KACxC7/a,EAAQ35d,KAAKqpC,IAAIzuB,EAAOoqI,GACpB0hxB,EAAWtq6B,KAAKuq6B,cAAchtc,GAClCv9d,KAAK2+4B,UAAUC,YAAYn3iB,QAAU6ikB,EAASpw5B,EAC9Cla,KAAK2+4B,UAAUC,YAAYxB,MAAQktB,EAASnw5B,GACxCna,KAAK2+4B,UAAUC,YAAYn3iB,OAASznW,KAAKih5B,UAAYjh5B,KAAK2+4B,UAAUC,YAAYxB,KAC/Ep94B,KAAKkh5B,QAAUlh5B,KAAKo05B,cACrBp05B,KAAK2+4B,UAAUC,YAAYn3iB,QAAU6ikB,EAASpw5B,EAC9Cla,KAAK2+4B,UAAUC,YAAYxB,MAAQktB,EAASnw5B,EAEpD,CACAna,KAAK2+4B,UAAUC,YAAYpg4B,MAAQxe,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAK2+4B,UAAUC,YAAYn3iB,OAChGznW,KAAK2+4B,UAAUC,YAAYh2vB,OAAS5oJ,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAK2+4B,UAAUC,YAAYl3iB,MACrG,CACJ,CACJ,EACAi1iB,EAAYhs4B,UAAU+45B,cAAgB,SAAUxv5B,EAAGC,GAC/C,IAAIqE,EACAoqI,EACA20U,EACJ,GAA6B,SAAzBv9d,KAAK2+4B,UAAUnzwB,MAAkB,CACjC,IAAImkxB,OAAa,EAIjB,QAH6Bts5B,IAAzBrD,KAAK2+4B,UAAUnzwB,QACfmkxB,EAAa3v5B,KAAK2+4B,UAAUnzwB,MAAM74G,MAAM,MAEf,gBAAzB3yB,KAAK2+4B,UAAUnzwB,YAAqDnoI,IAAzBrD,KAAK2+4B,UAAUnzwB,OAAyC,SAAlBmkxB,EAAW,GAAgB,CAG5G,GAFA3v5B,KAAK2+4B,UAAUC,YAAYzB,KAAOjj4B,EAClCla,KAAK2+4B,UAAUC,YAAYpg4B,MAAQxe,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAK2+4B,UAAUC,YAAYn3iB,OAC5FznW,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAK2+4B,UAAUC,YAAYn3iB,OAAQ,CACrE,IAAI/6Q,EAAO1sF,KAAK2+4B,UAAUC,YAAYzB,KACtCn94B,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAK2+4B,UAAUC,YAAYn3iB,OAC7DznW,KAAK2+4B,UAAUC,YAAYn3iB,OAAS/6Q,EACpC1sF,KAAK++V,YAAc,UACvB,CACA/+V,KAAKgq6B,yBACT,KACK,CACD,GAAIhq6B,KAAK2+4B,UAAUC,YAAYzB,KAAOjj4B,GAAKla,KAAK2+4B,UAAUC,YAAYxB,KAAOjj4B,EAAG,CAC5EqE,EAAQxe,KAAK2+4B,UAAUC,YAAYzB,KAAOjj4B,EAC1C0uI,EAAS5oJ,KAAK2+4B,UAAUC,YAAYxB,KAAOjj4B,EAC3Cojd,EAAQ35d,KAAKgmD,IAAIprC,EAAOoqI,GACxB,IAAI0hxB,EAAWtq6B,KAAKuq6B,cAAchtc,GAClCv9d,KAAK2+4B,UAAUC,YAAYzB,MAAQmtB,EAASpw5B,EAC5Cla,KAAK2+4B,UAAUC,YAAYxB,MAAQktB,EAASnw5B,GACxCna,KAAK2+4B,UAAUC,YAAYzB,KAAQn94B,KAAKih5B,SAAWjh5B,KAAKm05B,WACxDn05B,KAAK2+4B,UAAUC,YAAYxB,KAAQp94B,KAAKkh5B,QAAUlh5B,KAAKo05B,cACvDp05B,KAAK2+4B,UAAUC,YAAYzB,MAAQmtB,EAASpw5B,EAC5Cla,KAAK2+4B,UAAUC,YAAYxB,MAAQktB,EAASnw5B,EAEpD,KACK,CACDqE,EAAQtE,EAAIla,KAAK2+4B,UAAUC,YAAYzB,KACvCv0vB,EAASzuI,EAAIna,KAAK2+4B,UAAUC,YAAYxB,KACxC7/a,EAAQ35d,KAAKqpC,IAAIzuB,EAAOoqI,GACpB0hxB,EAAWtq6B,KAAKuq6B,cAAchtc,GAClCv9d,KAAK2+4B,UAAUC,YAAYzB,MAAQmtB,EAASpw5B,EAC5Cla,KAAK2+4B,UAAUC,YAAYxB,MAAQktB,EAASnw5B,GACxCna,KAAK2+4B,UAAUC,YAAYzB,KAAQn94B,KAAKih5B,SAAWjh5B,KAAKm05B,WAAcn05B,KAAK2+4B,UAAUC,YAAYxB,KAChGp94B,KAAKkh5B,QAAUlh5B,KAAKo05B,cACrBp05B,KAAK2+4B,UAAUC,YAAYzB,MAAQmtB,EAASpw5B,EAC5Cla,KAAK2+4B,UAAUC,YAAYxB,MAAQktB,EAASnw5B,EAEpD,CACAna,KAAK2+4B,UAAUC,YAAYpg4B,MAAQxe,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAK2+4B,UAAUC,YAAYn3iB,OAChGznW,KAAK2+4B,UAAUC,YAAYh2vB,OAAS5oJ,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAK2+4B,UAAUC,YAAYl3iB,MACrG,CACJ,CACJ,EACAi1iB,EAAYhs4B,UAAUg55B,eAAiB,SAAUzv5B,EAAGC,EAAG4m5B,GACnD,IACIvi5B,EACAoqI,EACA20U,EACA4sc,EACAC,EAAYpq6B,KAAKq94B,UAAUnj4B,EAC3Bmw5B,EAAYrq6B,KAAKq94B,UAAUlj4B,EAC3B6k4B,EAAgBv1zB,GAAO,CAAC,EAAGzpF,KAAK2+4B,UAAW,MAAM,GACrD,GAA6B,SAAzB3+4B,KAAK2+4B,UAAUnzwB,WACSnoI,IAApBrD,KAAKs94B,SAASpj4B,QAAuC7W,IAApBrD,KAAKs94B,SAASnj4B,GAC/Cna,KAAKq94B,UAAUnj4B,EAAIla,KAAK2+4B,UAAUC,YAAYn3iB,OAASvtV,EACvDla,KAAKq94B,UAAUlj4B,EAAIA,EAAIna,KAAK2+4B,UAAUC,YAAYxB,OAGlDp94B,KAAKq94B,UAAUnj4B,EAAIla,KAAKs94B,SAASpj4B,EAAIA,EACrCla,KAAKq94B,UAAUlj4B,EAAIA,EAAIna,KAAKs94B,SAASnj4B,GAEzCna,KAAKs94B,SAASpj4B,EAAIA,EAClBla,KAAKs94B,SAASnj4B,EAAIA,EAOlBgw5B,GANInq6B,KAAKq94B,UAAUnj4B,GAAKkw5B,GAAapq6B,KAAKq94B,UAAUlj4B,GAAKkw5B,EAC9Czm6B,KAAKgmD,IAAI5pD,KAAKq94B,UAAUnj4B,EAAGla,KAAKq94B,UAAUlj4B,GAG1CvW,KAAKqpC,IAAIjtC,KAAKq94B,UAAUnj4B,EAAGla,KAAKq94B,UAAUlj4B,IAEhC,GACrBna,KAAK2+4B,UAAUC,YAAYn3iB,QAAWs5jB,EAAavi5B,MAAQ,IAAO2r5B,EAClEnq6B,KAAK2+4B,UAAUC,YAAYxB,MAAS2jB,EAAan4wB,OAAS,IAAOuhxB,EAC7Dnq6B,KAAKiq6B,gCACLjq6B,KAAK2+4B,UAAUC,YAAYn3iB,QAAWs5jB,EAAavi5B,MAAQ,IAAO2r5B,EAClEnq6B,KAAK2+4B,UAAUC,YAAYxB,MAAS2jB,EAAan4wB,OAAS,IAAOuhxB,GAErEnq6B,KAAK2+4B,UAAUC,YAAYpg4B,MAAQxe,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAK2+4B,UAAUC,YAAYn3iB,OAChGznW,KAAK2+4B,UAAUC,YAAYh2vB,OAAS5oJ,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAK2+4B,UAAUC,YAAYl3iB,OACjG1nW,KAAK4/5B,eAAe5/5B,KAAK2+4B,eAExB,CACD,IAAIgR,OAAa,EAIjB,QAH6Bts5B,IAAzBrD,KAAK2+4B,UAAUnzwB,QACfmkxB,EAAa3v5B,KAAK2+4B,UAAUnzwB,MAAM74G,MAAM,MAEf,gBAAzB3yB,KAAK2+4B,UAAUnzwB,YAAqDnoI,IAAzBrD,KAAK2+4B,UAAUnzwB,OAAyC,SAAlBmkxB,EAAW,GAAgB,CAG5G,GAFA3v5B,KAAK2+4B,UAAUC,YAAYn3iB,OAASvtV,EACpCla,KAAK2+4B,UAAUC,YAAYxB,KAAOjj4B,EAC9Bna,KAAK2+4B,UAAUC,YAAYn3iB,OAASznW,KAAK2+4B,UAAUC,YAAYzB,KAAM,CACrE,IAAIzwzB,EAAO1sF,KAAK2+4B,UAAUC,YAAYn3iB,OACtCznW,KAAK2+4B,UAAUC,YAAYn3iB,OAASznW,KAAK2+4B,UAAUC,YAAYzB,KAC/Dn94B,KAAK2+4B,UAAUC,YAAYzB,KAAOzwzB,EAClC1sF,KAAK++V,YAAc,WACvB,CACA,GAAI/+V,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAK2+4B,UAAUC,YAAYl3iB,OAAQ,CACjEh7Q,EAAO1sF,KAAK2+4B,UAAUC,YAAYxB,KACtCp94B,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAK2+4B,UAAUC,YAAYl3iB,OAC7D1nW,KAAK2+4B,UAAUC,YAAYl3iB,OAASh7Q,EACpC1sF,KAAK++V,YAAc,WACvB,CACA/+V,KAAKgq6B,yBACT,MAEI,GAAIhq6B,KAAK2+4B,UAAUC,YAAYn3iB,OAASvtV,GAAKla,KAAK2+4B,UAAUC,YAAYxB,KAAOjj4B,EAAG,CAC9EqE,EAAQtE,EAAIla,KAAK2+4B,UAAUC,YAAYn3iB,OACvC7+M,EAAS5oJ,KAAK2+4B,UAAUC,YAAYxB,KAAOjj4B,EAC3Cojd,EAAQ35d,KAAKgmD,IAAIprC,EAAOoqI,GACxB,IAAI0hxB,EAAWtq6B,KAAKuq6B,cAAchtc,GAClCv9d,KAAK2+4B,UAAUC,YAAYn3iB,QAAU6ikB,EAASpw5B,EAC9Cla,KAAK2+4B,UAAUC,YAAYxB,MAAQktB,EAASnw5B,EAC5C,IAAIgj4B,EAAOn94B,KAAKih5B,SAAW,EAAIjh5B,KAAKih5B,SAAW,EAC3C7D,EAAOp94B,KAAKkh5B,QAAUlh5B,KAAKo05B,WAAap05B,KAAK6q5B,YAAYjiwB,OAAS5oJ,KAAKkh5B,QACvElh5B,KAAKo05B,WAAap05B,KAAK6q5B,YAAYjiwB,QACnC5oJ,KAAK2+4B,UAAUC,YAAYn3iB,OAAS01iB,GAAQn94B,KAAK2+4B,UAAUC,YAAYxB,KAAOA,KAC9Ep94B,KAAK2+4B,UAAUC,YAAYn3iB,QAAU6ikB,EAASpw5B,EAC9Cla,KAAK2+4B,UAAUC,YAAYxB,MAAQktB,EAASnw5B,EAEpD,KACK,CACDqE,EAAQxe,KAAK2+4B,UAAUC,YAAYn3iB,OAASvtV,EAC5C0uI,EAASzuI,EAAIna,KAAK2+4B,UAAUC,YAAYxB,KACxC7/a,EAAQ35d,KAAKqpC,IAAIzuB,EAAOoqI,GACpB0hxB,EAAWtq6B,KAAKuq6B,cAAchtc,GAClCv9d,KAAK2+4B,UAAUC,YAAYn3iB,QAAU6ikB,EAASpw5B,EAC9Cla,KAAK2+4B,UAAUC,YAAYxB,MAAQktB,EAASnw5B,EACxCgj4B,EAAOn94B,KAAKih5B,SAAW,EAAIjh5B,KAAKih5B,SAAW,EAC3C7D,EAAOp94B,KAAKkh5B,QAAUlh5B,KAAKo05B,WAAap05B,KAAK6q5B,YAAYjiwB,OAAS5oJ,KAAKkh5B,QACvElh5B,KAAKo05B,WAAap05B,KAAK6q5B,YAAYjiwB,QACnC5oJ,KAAK2+4B,UAAUC,YAAYn3iB,OAAS01iB,GAAQn94B,KAAK2+4B,UAAUC,YAAYxB,KAAOA,KAC9Ep94B,KAAK2+4B,UAAUC,YAAYn3iB,QAAU6ikB,EAASpw5B,EAC9Cla,KAAK2+4B,UAAUC,YAAYxB,MAAQktB,EAASnw5B,EAEpD,CAEJna,KAAK2+4B,UAAUC,YAAYpg4B,MAAQxe,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAK2+4B,UAAUC,YAAYn3iB,OAChGznW,KAAK2+4B,UAAUC,YAAYh2vB,OAAS5oJ,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAK2+4B,UAAUC,YAAYl3iB,OACjG1nW,KAAK0q6B,qBAAqB1rB,EAC9B,CACJ,EACArC,EAAYhs4B,UAAUi55B,cAAgB,SAAU1v5B,EAAGC,GAC/C,IAAIqE,EACAoqI,EACA20U,EACJ,GAA6B,SAAzBv9d,KAAK2+4B,UAAUnzwB,MAAkB,CACjC,IAAImkxB,OAAa,EAIjB,QAH6Bts5B,IAAzBrD,KAAK2+4B,UAAUnzwB,QACfmkxB,EAAa3v5B,KAAK2+4B,UAAUnzwB,MAAM74G,MAAM,MAEf,gBAAzB3yB,KAAK2+4B,UAAUnzwB,YAAqDnoI,IAAzBrD,KAAK2+4B,UAAUnzwB,OAAyC,SAAlBmkxB,EAAW,GAAgB,CAG5G,GAFA3v5B,KAAK2+4B,UAAUC,YAAYxB,KAAOjj4B,EAClCna,KAAK2+4B,UAAUC,YAAYh2vB,OAAS5oJ,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAK2+4B,UAAUC,YAAYl3iB,OAC7F1nW,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAK2+4B,UAAUC,YAAYl3iB,OAAQ,CACrE,IAAIh7Q,EAAO1sF,KAAK2+4B,UAAUC,YAAYxB,KACtCp94B,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAK2+4B,UAAUC,YAAYl3iB,OAC7D1nW,KAAK2+4B,UAAUC,YAAYl3iB,OAASh7Q,EACpC1sF,KAAK++V,YAAc,UACvB,CACA/+V,KAAKgq6B,yBACT,KACK,CACD,GAAIhq6B,KAAK2+4B,UAAUC,YAAYzB,KAAOjj4B,GAAKla,KAAK2+4B,UAAUC,YAAYxB,KAAOjj4B,EAAG,CAC5EqE,EAAQxe,KAAK2+4B,UAAUC,YAAYzB,KAAOjj4B,EAC1C0uI,EAAS5oJ,KAAK2+4B,UAAUC,YAAYxB,KAAOjj4B,EAC3Cojd,EAAQ35d,KAAKgmD,IAAIprC,EAAOoqI,GACxB,IAAI0hxB,EAAWtq6B,KAAKuq6B,cAAchtc,GAClCv9d,KAAK2+4B,UAAUC,YAAYzB,MAAQmtB,EAASpw5B,EAC5Cla,KAAK2+4B,UAAUC,YAAYxB,MAAQktB,EAASnw5B,GACxCna,KAAK2+4B,UAAUC,YAAYzB,KAAQn94B,KAAKih5B,SAAWjh5B,KAAKm05B,WACxDn05B,KAAK2+4B,UAAUC,YAAYxB,KAAQp94B,KAAKkh5B,QAAUlh5B,KAAKo05B,cACvDp05B,KAAK2+4B,UAAUC,YAAYzB,MAAQmtB,EAASpw5B,EAC5Cla,KAAK2+4B,UAAUC,YAAYxB,MAAQktB,EAASnw5B,EAEpD,KACK,CACDqE,EAAQtE,EAAIla,KAAK2+4B,UAAUC,YAAYzB,KACvCv0vB,EAASzuI,EAAIna,KAAK2+4B,UAAUC,YAAYxB,KACxC7/a,EAAQ35d,KAAKqpC,IAAIzuB,EAAOoqI,GACpB0hxB,EAAWtq6B,KAAKuq6B,cAAchtc,GAClCv9d,KAAK2+4B,UAAUC,YAAYzB,MAAQmtB,EAASpw5B,EAC5Cla,KAAK2+4B,UAAUC,YAAYxB,MAAQktB,EAASpw5B,GACxCla,KAAK2+4B,UAAUC,YAAYzB,KAAQn94B,KAAKih5B,SAAWjh5B,KAAKm05B,WACxDn05B,KAAK2+4B,UAAUC,YAAYxB,KAAQp94B,KAAKkh5B,QAAUlh5B,KAAKo05B,cACvDp05B,KAAK2+4B,UAAUC,YAAYzB,MAAQmtB,EAASpw5B,EAC5Cla,KAAK2+4B,UAAUC,YAAYxB,MAAQktB,EAASnw5B,EAEpD,CACAna,KAAK2+4B,UAAUC,YAAYpg4B,MAAQxe,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAK2+4B,UAAUC,YAAYn3iB,OAChGznW,KAAK2+4B,UAAUC,YAAYh2vB,OAAS5oJ,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAK2+4B,UAAUC,YAAYl3iB,MACrG,CACJ,CACJ,EACAi1iB,EAAYhs4B,UAAUk55B,eAAiB,SAAU3v5B,EAAGC,EAAG4m5B,GACnD,IACIvi5B,EACAoqI,EACA20U,EACA4sc,EACAC,EAAYpq6B,KAAKq94B,UAAUnj4B,EAC3Bmw5B,EAAYrq6B,KAAKq94B,UAAUlj4B,EAC3B6k4B,EAAgBv1zB,GAAO,CAAC,EAAGzpF,KAAK2+4B,UAAW,MAAM,GACrD,GAA6B,SAAzB3+4B,KAAK2+4B,UAAUnzwB,WACSnoI,IAApBrD,KAAKs94B,SAASpj4B,QAAuC7W,IAApBrD,KAAKs94B,SAASnj4B,GAC/Cna,KAAKq94B,UAAUnj4B,EAAIA,EAAIla,KAAK2+4B,UAAUC,YAAYzB,KAClDn94B,KAAKq94B,UAAUlj4B,EAAIA,EAAIna,KAAK2+4B,UAAUC,YAAYxB,OAGlDp94B,KAAKq94B,UAAUnj4B,EAAIA,EAAIla,KAAKs94B,SAASpj4B,EACrCla,KAAKq94B,UAAUlj4B,EAAIA,EAAIna,KAAKs94B,SAASnj4B,GAEzCna,KAAKs94B,SAASpj4B,EAAIA,EAClBla,KAAKs94B,SAASnj4B,EAAIA,EAOlBgw5B,GANInq6B,KAAKq94B,UAAUnj4B,GAAKkw5B,GAAapq6B,KAAKq94B,UAAUlj4B,GAAKkw5B,EAC9Czm6B,KAAKqpC,IAAIjtC,KAAKq94B,UAAUnj4B,EAAGla,KAAKq94B,UAAUlj4B,GAG1CvW,KAAKgmD,IAAI5pD,KAAKq94B,UAAUnj4B,EAAGla,KAAKq94B,UAAUlj4B,IAEhC,GACrBna,KAAK2+4B,UAAUC,YAAYzB,MAAS4jB,EAAavi5B,MAAQ,GAAM2r5B,EAC/Dnq6B,KAAK2+4B,UAAUC,YAAYxB,MAAS2jB,EAAan4wB,OAAS,GAAMuhxB,EAC5Dnq6B,KAAKiq6B,gCACLjq6B,KAAK2+4B,UAAUC,YAAYzB,MAAS4jB,EAAavi5B,MAAQ,GAAM2r5B,EAC/Dnq6B,KAAK2+4B,UAAUC,YAAYxB,MAAS2jB,EAAan4wB,OAAS,GAAMuhxB,GAEpEnq6B,KAAK2+4B,UAAUC,YAAYpg4B,MAAQxe,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAK2+4B,UAAUC,YAAYn3iB,OAChGznW,KAAK2+4B,UAAUC,YAAYh2vB,OAAS5oJ,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAK2+4B,UAAUC,YAAYl3iB,OACjG1nW,KAAK4/5B,eAAe5/5B,KAAK2+4B,eAExB,CACD,IAAIgR,OAAa,EAIjB,QAH6Bts5B,IAAzBrD,KAAK2+4B,UAAUnzwB,QACfmkxB,EAAa3v5B,KAAK2+4B,UAAUnzwB,MAAM74G,MAAM,MAEf,gBAAzB3yB,KAAK2+4B,UAAUnzwB,YAAqDnoI,IAAzBrD,KAAK2+4B,UAAUnzwB,OAAyC,SAAlBmkxB,EAAW,GAAgB,CAG5G,GAFA3v5B,KAAK2+4B,UAAUC,YAAYzB,KAAOjj4B,EAClCla,KAAK2+4B,UAAUC,YAAYxB,KAAOjj4B,EAC9Bna,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAK2+4B,UAAUC,YAAYn3iB,OAAQ,CACrE,IAAI/6Q,EAAO1sF,KAAK2+4B,UAAUC,YAAYzB,KACtCn94B,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAK2+4B,UAAUC,YAAYn3iB,OAC7DznW,KAAK2+4B,UAAUC,YAAYn3iB,OAAS/6Q,EACpC1sF,KAAK++V,YAAc,WACvB,CACA,GAAI/+V,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAK2+4B,UAAUC,YAAYl3iB,OAAQ,CACjEh7Q,EAAO1sF,KAAK2+4B,UAAUC,YAAYxB,KACtCp94B,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAK2+4B,UAAUC,YAAYl3iB,OAC7D1nW,KAAK2+4B,UAAUC,YAAYl3iB,OAASh7Q,EACpC1sF,KAAK++V,YAAc,WACvB,CACA/+V,KAAKgq6B,yBACT,MAEI,GAAIhq6B,KAAK2+4B,UAAUC,YAAYzB,KAAOjj4B,GAAKla,KAAK2+4B,UAAUC,YAAYxB,KAAOjj4B,EAAG,CAC5EqE,EAAQxe,KAAK2+4B,UAAUC,YAAYzB,KAAOjj4B,EAC1C0uI,EAAS5oJ,KAAK2+4B,UAAUC,YAAYxB,KAAOjj4B,EAC3Cojd,EAAQ35d,KAAKgmD,IAAIprC,EAAOoqI,GACxB,IAAI0hxB,EAAWtq6B,KAAKuq6B,cAAchtc,GAClCv9d,KAAK2+4B,UAAUC,YAAYzB,MAAQmtB,EAASpw5B,EAC5Cla,KAAK2+4B,UAAUC,YAAYxB,MAAQktB,EAASnw5B,EAC5C,IAAIgj4B,EAAOn94B,KAAKih5B,SAAWjh5B,KAAKm05B,UAAYn05B,KAAK6q5B,YAAYrs4B,MACzDxe,KAAKih5B,SAAWjh5B,KAAKm05B,UAAYn05B,KAAK6q5B,YAAYrs4B,MAClD4+3B,EAAOp94B,KAAKkh5B,QAAUlh5B,KAAKo05B,WAAap05B,KAAK6q5B,YAAYjiwB,OACzD5oJ,KAAKkh5B,QAAUlh5B,KAAKo05B,WAAap05B,KAAK6q5B,YAAYjiwB,QAClD5oJ,KAAK2+4B,UAAUC,YAAYzB,KAAOA,GAAQn94B,KAAK2+4B,UAAUC,YAAYxB,KAAOA,KAC5Ep94B,KAAK2+4B,UAAUC,YAAYzB,MAAQmtB,EAASpw5B,EAC5Cla,KAAK2+4B,UAAUC,YAAYxB,MAAQktB,EAASnw5B,EAEpD,KACK,CACDqE,EAAQtE,EAAIla,KAAK2+4B,UAAUC,YAAYzB,KACvCv0vB,EAASzuI,EAAIna,KAAK2+4B,UAAUC,YAAYxB,KACxC7/a,EAAQ35d,KAAKqpC,IAAIzuB,EAAOoqI,GACpB0hxB,EAAWtq6B,KAAKuq6B,cAAchtc,GAClCv9d,KAAK2+4B,UAAUC,YAAYzB,MAAQmtB,EAASpw5B,EAC5Cla,KAAK2+4B,UAAUC,YAAYxB,MAAQktB,EAASnw5B,EACxCgj4B,EAAOn94B,KAAKih5B,SAAWjh5B,KAAKm05B,UAAYn05B,KAAK6q5B,YAAYrs4B,MAAQxe,KAAKih5B,SACtEjh5B,KAAKm05B,UAAYn05B,KAAK6q5B,YAAYrs4B,MAClC4+3B,EAAOp94B,KAAKkh5B,QAAUlh5B,KAAKo05B,WAAap05B,KAAK6q5B,YAAYjiwB,OAAS5oJ,KAAKkh5B,QACvElh5B,KAAKo05B,WAAap05B,KAAK6q5B,YAAYjiwB,QACnC5oJ,KAAK2+4B,UAAUC,YAAYzB,KAAOA,GAAQn94B,KAAK2+4B,UAAUC,YAAYxB,KAAOA,KAC5Ep94B,KAAK2+4B,UAAUC,YAAYzB,MAAQmtB,EAASpw5B,EAC5Cla,KAAK2+4B,UAAUC,YAAYxB,MAAQktB,EAASnw5B,EAEpD,CAEJna,KAAK2+4B,UAAUC,YAAYpg4B,MAAQxe,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAK2+4B,UAAUC,YAAYn3iB,OAChGznW,KAAK2+4B,UAAUC,YAAYh2vB,OAAS5oJ,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAK2+4B,UAAUC,YAAYl3iB,OACjG1nW,KAAK0q6B,qBAAqB1rB,EAC9B,CACJ,EACArC,EAAYhs4B,UAAUui5B,gBAAkB,SAAUri5B,EAAKm05B,GACnD,IAIIxwK,EAJAv0tB,EAAOjgC,KAAK+z5B,WAAWiR,GACvBxm5B,EAAQxe,KAAK4o5B,aAAaoL,YAAY/z3B,GAAMzhB,MACL,GAAvCxe,KAAK2+4B,UAAUd,aAAa5+lB,SAC5Br2J,EAAU5oJ,KAAK2+4B,UAAUd,aAAa5+lB,SAAkD,IAAvCj/S,KAAK2+4B,UAAUd,aAAa5+lB,SAG7Eu1c,EADoB,IAApB3jvB,EAAI6y5B,YACK1j6B,KAAKw0vB,OAGLx0vB,KAAKw0vB,OAAS3jvB,EAAI6y5B,YAE3B33lB,GAAkBi5lB,GAEdn05B,EAAIgt4B,aAAaC,UADN,IAAXtpJ,GAA2B,MAAXA,EACah2uB,EAAQ3N,EAAIgt4B,aAAa5+lB,SAGzBr2J,EAAS/3I,EAAIgt4B,aAAa5+lB,SAGtD+lnB,IACLn05B,EAAIgt4B,aAAaC,UAAYt/3B,EAAQkyB,WAAW1wC,KAAKmr5B,SAAShl5B,MAAM84S,UAE5E,EACA09lB,EAAYhs4B,UAAUiv5B,eAAiB,SAAU/u5B,GAC7C,IAAI2jvB,EAEAA,EADoB,IAApB3jvB,EAAI6y5B,YACK1j6B,KAAKw0vB,OAGLx0vB,KAAKw0vB,OAAS3jvB,EAAI6y5B,YAG3B7y5B,EAAIgt4B,aAAa5+lB,SADN,IAAXu1c,GAA2B,MAAXA,IAA8B,MAAZA,EACL3jvB,EAAI+t4B,YAAYpg4B,MAAQ3N,EAAIgt4B,aAAaC,UAGzCjt4B,EAAI+t4B,YAAYh2vB,OAAS/3I,EAAIgt4B,aAAaC,SAE/E,EACAnB,EAAYhs4B,UAAU+55B,qBAAuB,SAAU1rB,GAC/Ch/4B,KAAK2+4B,UAAUC,YAAYpg4B,MAAQ,IACnCxe,KAAK2+4B,UAAUC,YAAYpg4B,MAAQ,EACnCxe,KAAK2+4B,UAAUC,YAAYn3iB,OAASu3iB,EAAcJ,YAAYn3iB,OAC9DznW,KAAK2+4B,UAAUC,YAAYzB,KAAO6B,EAAcJ,YAAYzB,MAE5Dn94B,KAAK2+4B,UAAUC,YAAYh2vB,OAAS,IACpC5oJ,KAAK2+4B,UAAUC,YAAYh2vB,OAAS,EACpC5oJ,KAAK2+4B,UAAUC,YAAYl3iB,OAASs3iB,EAAcJ,YAAYl3iB,OAC9D1nW,KAAK2+4B,UAAUC,YAAYxB,KAAO4B,EAAcJ,YAAYxB,KAEpE,EACAT,EAAYhs4B,UAAU455B,cAAgB,SAAUhtc,GAC5C,IAAIj3H,EAAQ,CAAEpsV,EAAGqjd,EAAOpjd,EAAGojd,GAC3B,IAAKxxJ,GAAkB/rU,KAAK2+4B,UAAUnzwB,QAAmC,gBAAzBxrI,KAAK2+4B,UAAUnzwB,OAClC,gBAAzBxrI,KAAK2+4B,UAAUnzwB,OAAoD,gBAAzBxrI,KAAK2+4B,UAAUnzwB,MAAyB,CAClF,IAAIo1xB,EAAQ5g6B,KAAK2+4B,UAAUnzwB,MAAM74G,MAAM,KACvC,GAAIiu4B,EAAMx95B,OAAS,EAAG,CAClBw95B,EAAQA,EAAM,GAAGju4B,MAAM,KACvB,IAAI234B,EAAW/sc,EAAShxc,SAASq04B,EAAM,GAAI,IAC3Ct6jB,EAAMpsV,EAAIow5B,EAAY/94B,SAASq04B,EAAM,GAAI,IACzCt6jB,EAAMnsV,EAAImw5B,EAAY/94B,SAASq04B,EAAM,GAAI,GAC7C,CACJ,CACA,OAAOt6jB,CACX,EACAq2iB,EAAYhs4B,UAAUoj5B,WAAa,SAAU4W,EAAW1q4B,GAIpD,IAAI2q4B,EAHA7+lB,GAAkB9rS,KAClBA,EAAO0q4B,EAAY3q6B,KAAKmr5B,SAASvp5B,MAAQ5B,KAAK2+4B,UAAU7B,YAM5D,IAHA,IAAI1uU,EAAOnuiB,EAAKtN,MAAM,MAClBk44B,EAASz8V,EAAK,GAAGhrkB,OACjB0n6B,EAAU18V,EAAK,GACVjikB,EAAI,EAAGA,EAAIiikB,EAAKhrkB,OAAQ+I,KAC7By+5B,EAAOx8V,EAAKjikB,GAAG/I,QACJyn6B,IACPC,EAAU18V,EAAKjikB,GACf0+5B,EAASD,GAGjB,OAAOE,CACX,EACAnuB,EAAYhs4B,UAAUo65B,aAAe,WAC7B/q6B,KAAK2+4B,UAAUC,cACX5+4B,KAAK2+4B,UAAUC,YAAYn3iB,OAASznW,KAAKih5B,UACzCjh5B,KAAK2+4B,UAAUC,YAAYn3iB,OAASznW,KAAKih5B,SACzCjh5B,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAK2+4B,UAAUC,YAAYn3iB,OAASznW,KAAK2+4B,UAAUC,YAAYpg4B,OAE5Fxe,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAKih5B,SAAWjh5B,KAAKm05B,YAC5Dn05B,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAKih5B,SAAWjh5B,KAAKm05B,UACvDn05B,KAAK2+4B,UAAUC,YAAYn3iB,OAASznW,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAK2+4B,UAAUC,YAAYpg4B,OAEjGxe,KAAK2+4B,UAAUC,YAAYl3iB,OAAS1nW,KAAKkh5B,QACzClh5B,KAAK2+4B,UAAUC,YAAYl3iB,OAAS1nW,KAAKkh5B,QAEpClh5B,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAKkh5B,QAAUlh5B,KAAKo05B,aAC3Dp05B,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAKkh5B,QAAUlh5B,KAAKo05B,WACtDp05B,KAAK2+4B,UAAUC,YAAYl3iB,OAAS1nW,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAK2+4B,UAAUC,YAAYh2vB,QAErG5oJ,KAAK2+4B,UAAUC,YAAYpg4B,MAAQxe,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAK2+4B,UAAUC,YAAYn3iB,OAChGznW,KAAK2+4B,UAAUC,YAAYh2vB,OAAS5oJ,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAK2+4B,UAAUC,YAAYl3iB,OAEzG,EACAi1iB,EAAYhs4B,UAAUq65B,SAAW,WACzBhr6B,KAAK2+4B,UAAUC,YAAYh2vB,OAAS,IACpC5oJ,KAAK2+4B,UAAUC,YAAYl3iB,QAAU,GACrC1nW,KAAK2+4B,UAAUC,YAAYxB,MAAQ,GACnCp94B,KAAK2+4B,UAAUqsB,SAAW,cAErBhr6B,KAAK2+4B,UAAUC,YAAYpg4B,MAAQ,IACxCxe,KAAK2+4B,UAAUC,YAAYn3iB,QAAU,GACrCznW,KAAK2+4B,UAAUC,YAAYzB,MAAQ,GACnCn94B,KAAK2+4B,UAAUqsB,SAAW,YAErBhr6B,KAAKi/4B,YAAYK,gBACtBt/4B,KAAK2+4B,UAAUqsB,SAAW,SAC1Bhr6B,KAAKi/4B,YAAYK,eAAgB,GAErCt/4B,KAAK2+4B,UAAUC,YAAYpg4B,MAAQxe,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAK2+4B,UAAUC,YAAYn3iB,OAChGznW,KAAK2+4B,UAAUC,YAAYh2vB,OAAS5oJ,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAK2+4B,UAAUC,YAAYl3iB,MACrG,EACAi1iB,EAAYhs4B,UAAUs65B,YAAc,SAAUC,EAAYC,EAAgBC,GACtEF,EAAW3nc,YAAcvje,KAAKil5B,UAAUjl5B,KAAKkta,OAAqB,aAClEg+f,EAAWnsc,UAAU,EAAG,EAAG/+d,KAAK6q5B,YAAYrs4B,MAAOxe,KAAK6q5B,YAAYjiwB,QACpEsixB,EAAW1tc,UAAY,oBACvB0tc,EAAWG,SAAS,EAAG,EAAGrr6B,KAAK6q5B,YAAYrs4B,MAAOxe,KAAK6q5B,YAAYjiwB,QACnE,IAAI6gqB,EAAYyhH,EAAWjzJ,UAC3BizJ,EAAWjzJ,UAAa,EACxBizJ,EAAWjqc,YACXiqc,EAAWI,QAAQtr6B,KAAK2+4B,UAAUwoB,WAAW1/jB,OAAU0jkB,EAAiB,EAAInr6B,KAAK2+4B,UAAUwoB,WAAWz/jB,OAC/F0jkB,EAAkB,EAAID,EAAiB,EAAGC,EAAkB,EAAG,EAAG,EAAG,EAAIxn6B,KAAKita,IAAI,GACzFq6f,EAAW3wK,SACX2wK,EAAWtsc,YACXssc,EAAW7sc,OACX6sc,EAAWjqc,YACXiqc,EAAW/pc,KAAMnhe,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAK2+4B,UAAUC,YAAYn3iB,QAAU,EAAKznW,KAAK2+4B,UAAUC,YAAYn3iB,QAAUznW,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAK2+4B,UAAUC,YAAYl3iB,QAAU,EAAK1nW,KAAK2+4B,UAAUC,YAAYl3iB,OAAS1nW,KAAK2+4B,UAAUC,YAAYpg4B,MAAQ,EAAI,EAAa,EAAV5a,KAAKita,IACjSq6f,EAAWtsc,YACXssc,EAAWlyJ,OACXkyJ,EAAWnsc,UAAU,EAAG,EAAG/+d,KAAK6q5B,YAAYrs4B,MAAOxe,KAAK6q5B,YAAYjiwB,QACpEsixB,EAAWh2W,UACXg2W,EAAWjzJ,UAAYwxC,EACvBzpzB,KAAKur6B,mBAAmBL,GAAY,GACpClr6B,KAAKi/4B,YAAYzzwB,MAAQ,EAC7B,EACAmxwB,EAAYhs4B,UAAU465B,mBAAqB,SAAUL,EAAYM,GAC7D,IAAI7b,EACJub,EAAWjzJ,UAAa,QACK50wB,IAAzBrD,KAAK2+4B,UAAUnzwB,QACfmkxB,EAAa3v5B,KAAK2+4B,UAAUnzwB,MAAM74G,MAAM,MAE5C,IAWI6huB,EAXAttU,EAAUz9V,GAAO,CAAC,EAAGzpF,KAAK2+4B,UAAW,CAAC,GAAG,QAChBt74B,IAAzBrD,KAAK2+4B,UAAUnzwB,QACfmkxB,EAAa3v5B,KAAK2+4B,UAAUnzwB,MAAM74G,MAAM,YAEvBtvB,IAAfss5B,GAA8C,SAAlBA,EAAW,UAA2Cts5B,IAAzBrD,KAAK2+4B,UAAUnzwB,OAAyBggyB,IACnGxr6B,KAAK4o5B,aAAaprb,UAAY,oBAC9Bx9d,KAAK4o5B,aAAayiB,SAAS,EAAG,EAAGrr6B,KAAK6q5B,YAAYrs4B,MAAOxe,KAAK6q5B,YAAYjiwB,QAC1E5oJ,KAAK4o5B,aAAa7pb,UAAU/+d,KAAK2+4B,UAAUC,YAAYn3iB,OAAQznW,KAAK2+4B,UAAUC,YAAYl3iB,OAAQ1nW,KAAK2+4B,UAAUC,YAAYpg4B,MAAOxe,KAAK2+4B,UAAUC,YAAYh2vB,SAEnKsixB,EAAW3nc,YAAcvje,KAAKil5B,UAAUjl5B,KAAKkta,OAAqB,aAClEg+f,EAAW1tc,UAAYx9d,KAAKil5B,UAAUjl5B,KAAKkta,OAAuB,gBAG9DsnV,EADwB,IAAxBttU,EAAQw8e,YACC1j6B,KAAKw0vB,OAGLx0vB,KAAKw0vB,OAASttU,EAAQw8e,aAEtB,IACTlvK,EAAS,IAAMA,GAEU,UAAzBx0vB,KAAK2+4B,UAAUnzwB,OAA8C,SAAzBxrI,KAAK2+4B,UAAUnzwB,OACnD0/xB,EAAWjqc,YACPuzR,EAAS,KAAO,GAAKA,EAAS,MAAQ,GACtC02K,EAAWhqc,OAAOh6C,EAAQukf,gBAAgBhkkB,OAAQy/E,EAAQukf,gBAAgB/jkB,QAC1EwjkB,EAAWQ,OAAOxkf,EAAQykf,mBAAmBlkkB,OAAQy/E,EAAQykf,mBAAmBjkkB,UAGhFwjkB,EAAWhqc,OAAOh6C,EAAQ0kf,iBAAiBnkkB,OAAQy/E,EAAQ0kf,iBAAiBlkkB,QAC5EwjkB,EAAWQ,OAAOxkf,EAAQ2kf,kBAAkBpkkB,OAAQy/E,EAAQ2kf,kBAAkBnkkB,SAElFwjkB,EAAW3wK,WAGX2wK,EAAWjqc,YACXiqc,EAAWx2oB,KAAKwyJ,EAAQ03d,YAAYn3iB,OAAQy/E,EAAQ03d,YAAYl3iB,OAAQw/E,EAAQ03d,YAAYpg4B,MAAO0oa,EAAQ03d,YAAYh2vB,QACvHsixB,EAAW3wK,SACX2wK,EAAWtsc,YACXssc,EAAWjzJ,WAAa,EACxBizJ,EAAWjqc,YACXiqc,EAAWhqc,OAAOh6C,EAAQq0e,cAAc9zjB,OAAQy/E,EAAQq0e,cAAc7zjB,QACtEwjkB,EAAW/pc,IAAIj6C,EAAQq0e,cAAc9zjB,OAAQy/E,EAAQq0e,cAAc7zjB,OAAQw/E,EAAQq0e,cAAc/4oB,OAAQ,EAAG,EAAI5+Q,KAAKita,IACrHq6f,EAAWhqc,OAAOh6C,EAAQ4kf,eAAerkkB,OAAQy/E,EAAQ4kf,eAAepkkB,QACxEwjkB,EAAW/pc,IAAIj6C,EAAQ4kf,eAAerkkB,OAAQy/E,EAAQ4kf,eAAepkkB,OAAQw/E,EAAQ4kf,eAAetppB,OAAQ,EAAG,EAAI5+Q,KAAKita,IACxHq6f,EAAWhqc,OAAOh6C,EAAQ6kf,iBAAiBtkkB,OAAQy/E,EAAQ6kf,iBAAiBrkkB,QAC5EwjkB,EAAW/pc,IAAIj6C,EAAQ6kf,iBAAiBtkkB,OAAQy/E,EAAQ6kf,iBAAiBrkkB,OAAQw/E,EAAQ6kf,iBAAiBvppB,OAAQ,EAAG,EAAI5+Q,KAAKita,IAC9Hq6f,EAAWhqc,OAAOh6C,EAAQ8kf,kBAAkBvkkB,OAAQy/E,EAAQ8kf,kBAAkBtkkB,QAC9EwjkB,EAAW/pc,IAAIj6C,EAAQ8kf,kBAAkBvkkB,OAAQy/E,EAAQ8kf,kBAAkBtkkB,OAAQw/E,EAAQ8kf,kBAAkBxppB,OAAQ,EAAG,EAAI5+Q,KAAKita,IACjIq6f,EAAW3wK,SACX2wK,EAAW1k1B,OACX0k1B,EAAWtsc,YACXssc,EAAWjzJ,WAAa,QAER50wB,IAAfss5B,GAA8C,SAAlBA,EAAW,IAA2C,SAAzB3v5B,KAAK2+4B,UAAUnzwB,OACzExrI,KAAKis6B,kBAAkBf,EAAY12K,GAEvCx0vB,KAAK2+4B,UAAYl1zB,GAAO,CAAC,EAAGy9V,EAAS,CAAC,GAAG,EAC7C,EACAy1d,EAAYhs4B,UAAU4l5B,WAAa,SAAU35b,EAAQ/rd,EAAKq75B,EAAa1sc,EAAQ2sc,EAAeC,EAAaC,GAEvG,IAAInB,EAyCJ,GA1CAlr6B,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,QAE9C,aAAzBg0U,EAAOl8c,cACPwq5B,EAAalr6B,KAAK4p5B,aAEY,cAAzBhtb,EAAOl8c,cACZwq5B,EAAalr6B,KAAK4o5B,aAEZ78kB,GAAkBqgmB,KACxBlB,EAAakB,GAEZD,GAAkBpgmB,GAAkB/rU,KAAK2+4B,UAAUnzwB,QACpDxrI,KAAK+q6B,eAEL/q6B,KAAKi/4B,YAAYI,QAAqB,aAAXzib,IAA0B/rd,GACrD7Q,KAAKgr6B,WAG2B,SADnBhr6B,KAAKi/4B,YAAYzzwB,MAAM74G,MAAM,KAC/B,GAAGjS,eAA4Bwr5B,GAC1Cls6B,KAAKss6B,gBAEL9sc,IACAx/d,KAAK2+4B,UAAUC,YAAYn3iB,OAAS+3H,EAAO/3H,OAC3CznW,KAAK2+4B,UAAUC,YAAYl3iB,OAAS83H,EAAO93H,OAC3C1nW,KAAK2+4B,UAAUC,YAAYzB,KAAO39a,EAAO29a,KACzCn94B,KAAK2+4B,UAAUC,YAAYxB,KAAO59a,EAAO49a,KACzCp94B,KAAK2+4B,UAAUC,YAAYpg4B,MAAQghd,EAAOhhd,MAC1Cxe,KAAK2+4B,UAAUC,YAAYh2vB,OAAS42U,EAAO52U,QAE3CmjL,GAAkB/rU,KAAK2+4B,UAAUjB,kBACjC194B,KAAK2+4B,UAAUjB,eAAiB194B,KAAK094B,gBAErC3xkB,GAAkB/rU,KAAK2+4B,UAAUjB,eAAetuwB,eAChDpvI,KAAK2+4B,UAAUjB,eAAetuwB,YAAc,GAE5Cv+H,IACA7Q,KAAK2+4B,UAAYl1zB,GAAO,CAAC,EAAG54E,EAAK,CAAC,GAAG,IAEzC7Q,KAAKk05B,qBACDl05B,KAAKi/4B,YAAYx41B,SACjBzmD,KAAK2+4B,UAAU7B,WAAa984B,KAAK884B,YAER,aAAzBlgb,EAAOl8c,cAA8B,CACrC,IACI6r5B,GAAS,EACTvs6B,KAAK2+4B,UAAUnzwB,OAES,SADTxrI,KAAK2+4B,UAAUnzwB,MAAM74G,MAAM,KACzB,KACb454B,GAAS,GAGbA,IACAvs6B,KAAK4o5B,aAAaprb,UAAY,oBAC9Bx9d,KAAK4o5B,aAAayiB,SAAS,EAAG,EAAGrr6B,KAAK6q5B,YAAYrs4B,MAAOxe,KAAK6q5B,YAAYjiwB,QAC1E5oJ,KAAK4o5B,aAAa7pb,UAAU/+d,KAAK2+4B,UAAUC,YAAYn3iB,OAAQznW,KAAK2+4B,UAAUC,YAAYl3iB,OAAQ1nW,KAAK2+4B,UAAUC,YAAYpg4B,MAAOxe,KAAK2+4B,UAAUC,YAAYh2vB,UAE/JmjL,GAAkBsgmB,IAAwBnB,IAAelr6B,KAAK4p5B,cAAgBshB,IAAelr6B,KAAK4o5B,cAClG5o5B,KAAKur6B,mBAAmBL,EAEhC,CACAlr6B,KAAKi/4B,YAAYE,aAAc,EAC3Btu4B,EACA7Q,KAAKws6B,aAAa5vc,EAAQ/rd,EAAI26H,MAAO4gyB,EAAaC,GAEzB,KAApBrs6B,KAAK884B,YAAqB984B,KAAKi/4B,YAAYx41B,OAChDzmD,KAAKws6B,aAAa5vc,EAAQ,OAAQwvc,EAAaC,GAE1Crs6B,KAAK2+4B,UAAUnzwB,MACpBxrI,KAAKws6B,aAAa5vc,EAAQ58d,KAAK2+4B,UAAUnzwB,MAAO4gyB,EAAaC,GAG7Drs6B,KAAKws6B,aAAa5vc,OAAQv5d,EAAW+o6B,EAAaC,GAElDrs6B,KAAKkj5B,iBACLlj5B,KAAKkj5B,gBAAiB,EACtBlj5B,KAAKuh6B,YAAc930B,GAAO,CAAC,EAAGzpF,KAAKsh6B,QAAS,CAAC,GAAG,GAChDth6B,KAAK4h5B,mBAAqB5h5B,KAAKmh6B,gBAAgBnh6B,KAAK2h6B,uBACpD3h6B,KAAKy75B,YAEb,EACA9e,EAAYhs4B,UAAUuj5B,mBAAqB,SAAUuY,EAAU575B,EAAK675B,EAAaxy5B,EAAGC,GAChFsy5B,EAAWA,GAAsBhj1B,GAAO,CAAC,EAAGzpF,KAAK2+4B,UAAUC,YAAa,CAAC,GAAG,GAC5E/t4B,EAAMA,GAAY44E,GAAO,CAAC,EAAGzpF,KAAK2+4B,UAAW,CAAC,GAAG,GACjD8tB,EAASju5B,MAAQiu5B,EAAStvB,KAAOsvB,EAAShlkB,OAC1CglkB,EAAS7jxB,OAAS6jxB,EAASrvB,KAAOqvB,EAAS/kkB,OAC3CxtV,EAAIA,GAAQ,EACZC,EAAIA,GAAQ,EACZ,IAAIwy5B,EAAiBF,EAASju5B,MAAQ,EAClCou5B,EAAkBH,EAAS7jxB,OAAS,EACpC45H,EAAS,IACb3xQ,EAAIs25B,WAAa,CAAE1/jB,OAAQglkB,EAAShlkB,OAASvtV,EAAGwtV,OAAQ+kkB,EAAS/kkB,OAASvtV,EACtEgj4B,KAAMsvB,EAAStvB,KAAOjj4B,EAAGkj4B,KAAMqvB,EAASrvB,KAAOjj4B,GACnDtJ,EAAIg85B,cAAgB,CAAEplkB,OAAQglkB,EAAShlkB,OAASvtV,EAAGwtV,OAAQ+kkB,EAASrvB,KAAOjj4B,EACvEgj4B,KAAMsvB,EAAStvB,KAAOjj4B,EAAGkj4B,KAAMqvB,EAASrvB,KAAOjj4B,GACnDtJ,EAAIi85B,YAAc,CAAErlkB,OAAQglkB,EAAShlkB,OAASvtV,EAAGwtV,OAAQ+kkB,EAAS/kkB,OAASvtV,EACvEgj4B,KAAMsvB,EAAShlkB,OAASttV,EAAGij4B,KAAMqvB,EAASrvB,KAAOjj4B,GACrDtJ,EAAIk85B,aAAe,CAAEtlkB,OAAQglkB,EAAStvB,KAAOjj4B,EAAGwtV,OAAQ+kkB,EAAS/kkB,OAASvtV,EACtEgj4B,KAAMsvB,EAAStvB,KAAOjj4B,EAAGkj4B,KAAMqvB,EAASrvB,KAAOjj4B,GACnDtJ,EAAI0q5B,cAAgB,CAAE9zjB,OAAQglkB,EAAShlkB,OAAQC,OAAQ+kkB,EAAS/kkB,OAC5DllF,OAAQ3xQ,EAAIs25B,WAAWhqB,KAAQ36nB,EAAU,GAC7C3xQ,EAAI465B,gBAAkB,CAAEhkkB,OAAQglkB,EAAShlkB,OAASklkB,EAAgBjlkB,OAAQ+kkB,EAAS/kkB,OAC/EllF,OAAQ3xQ,EAAIs25B,WAAWhqB,KAAQ36nB,EAAU,GAC7C3xQ,EAAIi75B,eAAiB,CAAErkkB,OAAQglkB,EAAStvB,KAAMz1iB,OAAQ+kkB,EAAS/kkB,OAC3DllF,OAAQ3xQ,EAAIs25B,WAAWhqB,KAAQ36nB,EAAU,GAC7C3xQ,EAAI+65B,iBAAmB,CAAEnkkB,OAAQglkB,EAAShlkB,OAAQC,OAAQ+kkB,EAAS/kkB,OAASklkB,EACxEpqpB,OAAQ3xQ,EAAIs25B,WAAWhqB,KAAQ36nB,EAAU,GAC7C3xQ,EAAIg75B,kBAAoB,CAAEpkkB,OAAQglkB,EAAStvB,KAAMz1iB,OAAQ+kkB,EAAS/kkB,OAASklkB,EACvEpqpB,OAAQ3xQ,EAAIs25B,WAAWhqB,KAAQ36nB,EAAU,GAC7C3xQ,EAAIk75B,iBAAmB,CAAEtkkB,OAAQglkB,EAAShlkB,OAAQC,OAAQ+kkB,EAASrvB,KAC/D56nB,OAAQ3xQ,EAAIs25B,WAAWhqB,KAAQ36nB,EAAU,GAC7C3xQ,EAAI865B,mBAAqB,CAAElkkB,OAAQglkB,EAAShlkB,OAASklkB,EAAgBjlkB,OAAQ+kkB,EAASrvB,KAClF56nB,OAAQ3xQ,EAAIs25B,WAAWhqB,KAAQ36nB,EAAU,GAC7C3xQ,EAAIm75B,kBAAoB,CAAEvkkB,OAAQglkB,EAAStvB,KAAMz1iB,OAAQ+kkB,EAASrvB,KAC9D56nB,OAAQ3xQ,EAAIs25B,WAAWhqB,KAAQ36nB,EAAU,GAC7C3xQ,EAAI+t4B,YAAc6tB,EACd1gmB,GAAkB2gmB,KAClB1s6B,KAAK2+4B,UAAYl1zB,GAAO,CAAC,EAAG54E,EAAK,CAAC,GAAG,GAE7C,EACA8r4B,EAAYhs4B,UAAU675B,aAAe,SAAU5vc,EAAQpxV,EAAO4gyB,EAAaC,GACvE,IAEInB,EAFA8B,OAAyB3p6B,IAAVmoI,EAAsBA,EAAQxrI,KAAKi/4B,YAAYzzwB,MAClExrI,KAAKi/4B,YAAYzzwB,MAAQwhyB,EAEI,aAAzBpwc,EAAOl8c,cACPwq5B,EAAalr6B,KAAK4p5B,aAEY,cAAzBhtb,EAAOl8c,cACZwq5B,EAAalr6B,KAAK4o5B,aAEZ78kB,GAAkBqgmB,KACxBlB,EAAakB,GAE4B,cAAzCps6B,KAAKi/4B,YAAYzzwB,MAAM9qH,eAA0E,YAAzC1gB,KAAKi/4B,YAAYzzwB,MAAM9qH,eACnC,SAAzC1gB,KAAKi/4B,YAAYzzwB,MAAM9qH,eAAqD,UAAzB1gB,KAAK2+4B,UAAUnzwB,QACrExrI,KAAK2+4B,UAAUnzwB,MAAQxrI,KAAKi/4B,YAAYzzwB,OAE5C0/xB,EAAW3nc,YAAcvje,KAAK2+4B,UAAUjB,eAAejgb,YAEnDytc,EAAW1tc,UADD,SAAVhyV,GAA8B,iBAAVA,EACGxrI,KAAK2+4B,UAAUjB,eAAejgb,YAG9Bz9d,KAAK2+4B,UAAUjB,eAAeC,UAEzD,IAAIsvB,EAAejt6B,KAAK2+4B,UAAUC,YAAYpg4B,MAAQ,EAClD0u5B,EAAgBlt6B,KAAK2+4B,UAAUC,YAAYh2vB,OAAS,EACpDuixB,EAAiBnr6B,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAK2+4B,UAAUC,YAAYn3iB,OAC9E2jkB,EAAkBpr6B,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAK2+4B,UAAUC,YAAYl3iB,OACnF,OAAQ1nW,KAAKi/4B,YAAYzzwB,MAAM9qH,eAC3B,IAAK,YACD1gB,KAAKmt6B,gBAAgBjC,GACjBn/lB,GAAkBsgmB,IAAuBnB,IAAelr6B,KAAK4o5B,cAC7D5o5B,KAAKur6B,mBAAmBL,GAE5B,MACJ,IAAK,UACDC,EAAiBvn6B,KAAK8Y,IAAIyu5B,GAC1BC,EAAkBxn6B,KAAK8Y,IAAI0u5B,GAC3BF,EAAWjqc,YACXiqc,EAAWI,QAAQtr6B,KAAK2+4B,UAAUC,YAAYn3iB,OAAU0jkB,EAAiB,EAAInr6B,KAAK2+4B,UAAUC,YAAYl3iB,OAAU0jkB,EAAkB,EAAID,EAAiB,EAAGC,EAAkB,EAAG,EAAG,EAAG,EAAIxn6B,KAAKita,IAAI,GACpJ,KAA5C7wa,KAAK2+4B,UAAUjB,eAAeC,YAC9ButB,EAAW1tc,UAAYx9d,KAAK2+4B,UAAUjB,eAAeC,UACrDutB,EAAW1k1B,QAEf0k1B,EAAWI,QAAQtr6B,KAAK2+4B,UAAUC,YAAYn3iB,OAAU0jkB,EAAiB,EAAInr6B,KAAK2+4B,UAAUC,YAAYl3iB,OAAU0jkB,EAAkB,EAAIxn6B,KAAK8Y,IAAKyu5B,EAAiB,EAAMnr6B,KAAK2+4B,UAAUjB,eAAetuwB,aAAexrI,KAAK8Y,IAAK0u5B,EAAkB,EAAMpr6B,KAAK2+4B,UAAUjB,eAAetuwB,aAAe,EAAG,EAAG,EAAIxrI,KAAKita,IAAI,GACxTq6f,EAAW1tc,UAAYx9d,KAAK2+4B,UAAUjB,eAAejgb,YACrDytc,EAAW1k1B,KAAK,WAChB0k1B,EAAWtsc,YACP7yJ,GAAkBsgmB,IAAuBnB,IAAelr6B,KAAK4o5B,cAC7D5o5B,KAAKur6B,mBAAmBL,GAE5B,MACJ,IAAK,cACGA,IAAelr6B,KAAK4p5B,eACpBshB,EAAalr6B,KAAK4o5B,cAEtB5o5B,KAAKir6B,YAAYC,EAAYC,EAAgBC,GAC7C,MACJ,IAAK,OACL,IAAK,QACDpr6B,KAAKot6B,UAAUlC,EAAYC,EAAgBC,GACE,UAAzCpr6B,KAAKi/4B,YAAYzzwB,MAAM9qH,eACvB1gB,KAAKqt6B,WAAWnC,GAEhBn/lB,GAAkBsgmB,IAAuBnB,IAAelr6B,KAAK4o5B,cAC7D5o5B,KAAKur6B,mBAAmBL,GAE5B,MACJ,IAAK,OACDlr6B,KAAKst6B,UAAUpC,GACf,MACJ,IAAK,cACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,YACL,IAAK,YACGA,IAAelr6B,KAAK4p5B,eACpBshB,EAAalr6B,KAAK4o5B,cAEtB5o5B,KAAKut6B,cAAcN,EAAcC,GACjClt6B,KAAKi/4B,YAAYzzwB,MAAQ,GACzB,MACJ,QACIxrI,KAAKut6B,cAAcN,EAAcC,GAG7C,EACAvwB,EAAYhs4B,UAAUy85B,UAAY,SAAUlC,EAAYC,EAAgBC,GACpE,IAAI3jkB,EACAC,EACAy1iB,EACAC,EACA5oJ,EAOW,KALXA,EAD+B,IAA/Bx0vB,KAAK2+4B,UAAU+kB,YACN1j6B,KAAKw0vB,OAGLx0vB,KAAKw0vB,OAASx0vB,KAAK2+4B,UAAU+kB,cAEtBlvK,EAAS,MAAQ,GACjC/sZ,EAASznW,KAAK2+4B,UAAUC,YAAYn3iB,OACpCC,EAAS1nW,KAAK2+4B,UAAUC,YAAYl3iB,OAAU0jkB,EAAkB,EAChEjuB,EAAOn94B,KAAK2+4B,UAAUC,YAAYzB,KAClCC,EAAOp94B,KAAK2+4B,UAAUC,YAAYl3iB,OAAU0jkB,EAAkB,IAG9D3jkB,EAASznW,KAAK2+4B,UAAUC,YAAYn3iB,OAAU0jkB,EAAiB,EAC/DzjkB,EAAS1nW,KAAK2+4B,UAAUC,YAAYl3iB,OACpCy1iB,EAAOn94B,KAAK2+4B,UAAUC,YAAYn3iB,OAAU0jkB,EAAiB,EAC7D/tB,EAAOp94B,KAAK2+4B,UAAUC,YAAYxB,MAEtC,IAAI8hB,EAAgBgM,EAAWjzJ,UAG/B,OAFAizJ,EAAWjzJ,UAAaj4wB,KAAK2+4B,UAAUjB,eAAetuwB,YACtD87xB,EAAWjqc,YACHjhe,KAAK2+4B,UAAUqsB,SAAStq5B,eAC5B,IAAK,aACL,IAAK,WACDwq5B,EAAWhqc,OAAOz5H,EAAQC,GAC1BwjkB,EAAWQ,OAAOvuB,EAAMC,GACxB,MACJ,IAAK,SACD8tB,EAAWhqc,OAAOlhe,KAAK2+4B,UAAUwoB,WAAW1/jB,OAAQznW,KAAK2+4B,UAAUwoB,WAAWz/jB,QAC9EwjkB,EAAWQ,OAAO1r6B,KAAK2+4B,UAAUkuB,cAAc1vB,KAAMn94B,KAAK2+4B,UAAUkuB,cAAczvB,MAG1F8tB,EAAW3wK,SACX2wK,EAAWjzJ,UAAYinJ,CAC3B,EACAviB,EAAYhs4B,UAAU085B,WAAa,SAAUnC,GACzC,IAAIhM,EAAgBgM,EAAWjzJ,UAW/B,OAVAizJ,EAAWjzJ,UAAaj4wB,KAAK2+4B,UAAUjB,eAAetuwB,YACtD87xB,EAAWjqc,YAEXiqc,EAAWhqc,OAAOlhe,KAAK2+4B,UAAUG,SAAS,GAAG5k4B,EAAGla,KAAK2+4B,UAAUG,SAAS,GAAG3k4B,GAC3E+w5B,EAAWQ,OAAO1r6B,KAAK2+4B,UAAUG,SAAS,GAAG5k4B,EAAGla,KAAK2+4B,UAAUG,SAAS,GAAG3k4B,GAC3E+w5B,EAAWQ,OAAO1r6B,KAAK2+4B,UAAUG,SAAS,GAAG5k4B,EAAGla,KAAK2+4B,UAAUG,SAAS,GAAG3k4B,GAC3E+w5B,EAAWQ,OAAO1r6B,KAAK2+4B,UAAUG,SAAS,GAAG5k4B,EAAGla,KAAK2+4B,UAAUG,SAAS,GAAG3k4B,GAC3E+w5B,EAAW1tc,UAAY0tc,EAAW3nc,YAClC2nc,EAAW1k1B,OAEHxmF,KAAK2+4B,UAAUorB,mBACnB,IAAK,QACDmB,EAAWhqc,OAAOlhe,KAAK2+4B,UAAUG,SAAS,GAAG5k4B,EAAGla,KAAK2+4B,UAAUG,SAAS,GAAG3k4B,EAAIna,KAAK2+4B,UAAUjB,eAAetuwB,aAC7G87xB,EAAWQ,OAAO1r6B,KAAK2+4B,UAAUG,SAAS,GAAG5k4B,EAAIla,KAAK2+4B,UAAUjB,eAAetuwB,YAAapvI,KAAK2+4B,UAAUG,SAAS,GAAG3k4B,GACvH+w5B,EAAWQ,OAAO1r6B,KAAK2+4B,UAAUG,SAAS,GAAG5k4B,EAAGla,KAAK2+4B,UAAUG,SAAS,GAAG3k4B,EAAIna,KAAK2+4B,UAAUjB,eAAetuwB,aAC7G87xB,EAAWQ,OAAO1r6B,KAAK2+4B,UAAUG,SAAS,GAAG5k4B,EAAGla,KAAK2+4B,UAAUG,SAAS,GAAG3k4B,EAAIna,KAAK2+4B,UAAUjB,eAAetuwB,aAC7G,MACJ,IAAK,OACD87xB,EAAWhqc,OAAOlhe,KAAK2+4B,UAAUG,SAAS,GAAG5k4B,EAAGla,KAAK2+4B,UAAUG,SAAS,GAAG3k4B,EAAIna,KAAK2+4B,UAAUjB,eAAetuwB,aAC7G87xB,EAAWQ,OAAO1r6B,KAAK2+4B,UAAUG,SAAS,GAAG5k4B,EAAIla,KAAK2+4B,UAAUjB,eAAetuwB,YAAapvI,KAAK2+4B,UAAUG,SAAS,GAAG3k4B,GACvH+w5B,EAAWQ,OAAO1r6B,KAAK2+4B,UAAUG,SAAS,GAAG5k4B,EAAGla,KAAK2+4B,UAAUG,SAAS,GAAG3k4B,EAAIna,KAAK2+4B,UAAUjB,eAAetuwB,aAC7G87xB,EAAWQ,OAAO1r6B,KAAK2+4B,UAAUG,SAAS,GAAG5k4B,EAAGla,KAAK2+4B,UAAUG,SAAS,GAAG3k4B,EAAIna,KAAK2+4B,UAAUjB,eAAetuwB,aAC7G,MACJ,IAAK,MACD87xB,EAAWhqc,OAAOlhe,KAAK2+4B,UAAUG,SAAS,GAAG5k4B,EAAIla,KAAK2+4B,UAAUjB,eAAetuwB,YAAapvI,KAAK2+4B,UAAUG,SAAS,GAAG3k4B,GACvH+w5B,EAAWQ,OAAO1r6B,KAAK2+4B,UAAUG,SAAS,GAAG5k4B,EAAGla,KAAK2+4B,UAAUG,SAAS,GAAG3k4B,EAAIna,KAAK2+4B,UAAUjB,eAAetuwB,aAC7G87xB,EAAWQ,OAAO1r6B,KAAK2+4B,UAAUG,SAAS,GAAG5k4B,EAAIla,KAAK2+4B,UAAUjB,eAAetuwB,YAAapvI,KAAK2+4B,UAAUG,SAAS,GAAG3k4B,GACvH+w5B,EAAWQ,OAAO1r6B,KAAK2+4B,UAAUG,SAAS,GAAG5k4B,EAAIla,KAAK2+4B,UAAUjB,eAAetuwB,YAAapvI,KAAK2+4B,UAAUG,SAAS,GAAG3k4B,GACvH,MACJ,IAAK,SACD+w5B,EAAWhqc,OAAOlhe,KAAK2+4B,UAAUG,SAAS,GAAG5k4B,EAAIla,KAAK2+4B,UAAUjB,eAAetuwB,YAAapvI,KAAK2+4B,UAAUG,SAAS,GAAG3k4B,GACvH+w5B,EAAWQ,OAAO1r6B,KAAK2+4B,UAAUG,SAAS,GAAG5k4B,EAAGla,KAAK2+4B,UAAUG,SAAS,GAAG3k4B,EAAIna,KAAK2+4B,UAAUjB,eAAetuwB,aAC7G87xB,EAAWQ,OAAO1r6B,KAAK2+4B,UAAUG,SAAS,GAAG5k4B,EAAIla,KAAK2+4B,UAAUjB,eAAetuwB,YAAapvI,KAAK2+4B,UAAUG,SAAS,GAAG3k4B,GACvH+w5B,EAAWQ,OAAO1r6B,KAAK2+4B,UAAUG,SAAS,GAAG5k4B,EAAIla,KAAK2+4B,UAAUjB,eAAetuwB,YAAapvI,KAAK2+4B,UAAUG,SAAS,GAAG3k4B,GAG/H+w5B,EAAW1tc,UAAY0tc,EAAW3nc,YAClC2nc,EAAW1k1B,KAAK,WAChB0k1B,EAAWtsc,YACXssc,EAAWjzJ,UAAYinJ,CAC3B,EACAviB,EAAYhs4B,UAAU285B,UAAY,SAAUpC,GAIxC,IAHA,IAAI98V,EAAOpukB,KAAK2+4B,UAAU7B,WAAWnq3B,MAAM,MAEvC07G,IADSruI,KAAK2+4B,UAAUd,aAAa5+lB,SAAkD,IAAvCj/S,KAAK2+4B,UAAUd,aAAa5+lB,UACpDmvR,EAAKhrkB,OAAWpD,KAAK2+4B,UAAUd,aAAa5+lB,SAAWmvR,EAAKhrkB,QAAWgrkB,EAAKhrkB,OAC/F+I,EAAI,EAAGA,EAAIiikB,EAAKhrkB,OAAQ+I,IAAK,CAClC,IAAI8zB,EAAOmuiB,EAAKjikB,GACZqh6B,GAAWrh6B,EAAI,GAAKnM,KAAK2+4B,UAAUd,aAAa5+lB,SAAW,IAAS9yS,EAAIkiI,GACvD,MAAjBruI,KAAKw0vB,SACLx0vB,KAAKw0vB,OAAS,GAEE,IAAhBx0vB,KAAKw0vB,QAAgC,MAAhBx0vB,KAAKw0vB,OACtBx0vB,KAAK2+4B,UAAUd,aAAa5+lB,SAAWj/S,KAAK2+4B,UAAUC,YAAYh2vB,SAClE5oJ,KAAK2+4B,UAAUd,aAAa5+lB,SAAWj/S,KAAK2+4B,UAAUC,YAAYh2vB,OACzB,GAApC5oJ,KAAK2+4B,UAAUC,YAAYh2vB,QAIhC5oJ,KAAK2+4B,UAAUd,aAAa5+lB,SAAWj/S,KAAK2+4B,UAAUC,YAAYpg4B,QAClExe,KAAK2+4B,UAAUd,aAAa5+lB,SAAWj/S,KAAK2+4B,UAAUC,YAAYpg4B,MAC1B,GAAnCxe,KAAK2+4B,UAAUC,YAAYpg4B,OAGxC0s5B,EAAW3nc,YAAcvje,KAAK2+4B,UAAUjB,eAAejgb,YACvDytc,EAAW1tc,UAAYx9d,KAAK2+4B,UAAUjB,eAAejgb,YACrD,IAAIq2b,EAAY,GACZ9z5B,KAAK2+4B,UAAUd,aAAaztxB,OAC5B0jyB,EAAY,SAEZ9z5B,KAAK2+4B,UAAUd,aAAavtxB,SAC5BwjyB,EAAY,WAEZ9z5B,KAAK2+4B,UAAUd,aAAaztxB,MAAQpwH,KAAK2+4B,UAAUd,aAAavtxB,SAChEwjyB,EAAY,gBAEhBoX,EAAW3mc,KAAOuvb,EAAY9z5B,KAAK2+4B,UAAUd,aAAa5+lB,SAAxC60mB,MAAgE9z5B,KAAK2+4B,UAAUd,aAAar7b,WACpE,IAAtCxid,KAAK2+4B,UAAUE,YAAYz74B,SAC3BpD,KAAK2+4B,UAAUE,YAAc,IAEjC,IAAK,IAAI7u4B,EAAI,EAAGA,EAAIhQ,KAAK2+4B,UAAUE,YAAYz74B,OAAQ4M,IACC,eAAhDhQ,KAAK2+4B,UAAUE,YAAY7u4B,GAAG0Q,eAC9Bwq5B,EAAWpyX,UAAUoyX,EAAWtuc,OAAOp+c,MAAO,GAC9C0s5B,EAAW3tc,OAAO,EAAG,GACrBv9d,KAAKyt6B,eAAe,aAAcvC,IAEmB,aAAhDlr6B,KAAK2+4B,UAAUE,YAAY7u4B,GAAG0Q,gBACnCwq5B,EAAWpyX,UAAU,EAAGoyX,EAAWtuc,OAAOh0U,QAC1CsixB,EAAW3tc,MAAM,GAAI,GACrBv9d,KAAKyt6B,eAAe,WAAYvC,IAGpClr6B,KAAK2+4B,UAAU+kB,cAAgB1j6B,KAAKw0vB,OACpCx0vB,KAAK0t6B,WAAWxC,GAGhBA,EAAWxmc,SAASzkc,EAAMjgC,KAAK2+4B,UAAUC,YAAYn3iB,OAAgD,GAAvCznW,KAAK2+4B,UAAUd,aAAa5+lB,SAAgBj/S,KAAK2+4B,UAAUC,YAAYl3iB,OAAS8lkB,GAElJ,IAAK,IAAI1s5B,EAAI,EAAGA,EAAI9gB,KAAK2+4B,UAAUE,YAAYz74B,OAAQ0d,IACC,eAAhD9gB,KAAK2+4B,UAAUE,YAAY/93B,GAAGJ,eAC9Bwq5B,EAAWpyX,UAAUoyX,EAAWtuc,OAAOp+c,MAAO,GAC9C0s5B,EAAW3tc,OAAO,EAAG,GACrBv9d,KAAKyt6B,eAAe,aAAcvC,IAEmB,aAAhDlr6B,KAAK2+4B,UAAUE,YAAY/93B,GAAGJ,gBACnCwq5B,EAAWpyX,UAAU,EAAGoyX,EAAWtuc,OAAOh0U,QAC1CsixB,EAAW3tc,MAAM,GAAI,GACrBv9d,KAAKyt6B,eAAe,WAAYvC,GAG5C,CACAlr6B,KAAKi/4B,YAAYx41B,QAAS,CAC9B,EACAk21B,EAAYhs4B,UAAU885B,eAAiB,SAAUj5K,EAAQ02K,GACxB,eAAzB12K,EAAO9zuB,cACH1gB,KAAK2+4B,UAAUC,YAAYn3iB,QAAUyjkB,EAAWtuc,OAAOp+c,MAAQ,GAC/Dxe,KAAK2+4B,UAAUC,YAAYn3iB,OAASyjkB,EAAWtuc,OAAOp+c,MAAQ,GAAM0s5B,EAAWtuc,OAAOp+c,MAAQ,EAC1Fxe,KAAK2+4B,UAAUC,YAAYzB,MAC/Bn94B,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAK2+4B,UAAUC,YAAYn3iB,OAASznW,KAAK2+4B,UAAUC,YAAYpg4B,MACjGxe,KAAKk05B,mBAAmBl05B,KAAK2+4B,UAAUC,YAAa5+4B,KAAK2+4B,YAEpD3+4B,KAAK2+4B,UAAUC,YAAYn3iB,QAAUyjkB,EAAWtuc,OAAOp+c,MAAQ,IACpExe,KAAK2+4B,UAAUC,YAAYn3iB,OAASyjkB,EAAWtuc,OAAOp+c,MAAQxe,KAAK2+4B,UAAUC,YAAYzB,KACzFn94B,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAK2+4B,UAAUC,YAAYn3iB,OAASznW,KAAK2+4B,UAAUC,YAAYpg4B,MACjGxe,KAAKk05B,mBAAmBl05B,KAAK2+4B,UAAUC,YAAa5+4B,KAAK2+4B,YAG/B,aAAzBnqJ,EAAO9zuB,gBACR1gB,KAAK2+4B,UAAUC,YAAYl3iB,QAAUwjkB,EAAWtuc,OAAOh0U,OAAS,GAChE5oJ,KAAK2+4B,UAAUC,YAAYl3iB,OAASwjkB,EAAWtuc,OAAOh0U,OAAS,GAAMsixB,EAAWtuc,OAAOh0U,OAAS,EAC5F5oJ,KAAK2+4B,UAAUC,YAAYxB,MAC/Bp94B,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAK2+4B,UAAUC,YAAYl3iB,OAAS1nW,KAAK2+4B,UAAUC,YAAYh2vB,OACjG5oJ,KAAKk05B,mBAAmBl05B,KAAK2+4B,UAAUC,YAAa5+4B,KAAK2+4B,YAEpD3+4B,KAAK2+4B,UAAUC,YAAYl3iB,QAAUwjkB,EAAWtuc,OAAOh0U,OAAS,IACrE5oJ,KAAK2+4B,UAAUC,YAAYl3iB,OAASwjkB,EAAWtuc,OAAOh0U,OAAS5oJ,KAAK2+4B,UAAUC,YAAYxB,KAC1Fp94B,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAK2+4B,UAAUC,YAAYl3iB,OAAS1nW,KAAK2+4B,UAAUC,YAAYh2vB,OACjG5oJ,KAAKk05B,mBAAmBl05B,KAAK2+4B,UAAUC,YAAa5+4B,KAAK2+4B,YAGrE,EACAhC,EAAYhs4B,UAAUw85B,gBAAkB,SAAUjC,GAC9C,IAAIvb,OACyBts5B,IAAzBrD,KAAK2+4B,UAAUnzwB,QACfmkxB,EAAa3v5B,KAAK2+4B,UAAUnzwB,MAAM74G,MAAM,MAEtB,SAAlBg93B,EAAW,GACXub,EAAW3nc,YAAc,OAGzB2nc,EAAW3nc,YAAcvje,KAAK2+4B,UAAUjB,eAAejgb,YAE3Dytc,EAAWjqc,YACXiqc,EAAWx2oB,KAAK10R,KAAK2+4B,UAAUC,YAAYn3iB,OAAQznW,KAAK2+4B,UAAUC,YAAYl3iB,OAAQ1nW,KAAK2+4B,UAAUC,YAAYpg4B,MAAOxe,KAAK2+4B,UAAUC,YAAYh2vB,QACnG,KAA5C5oJ,KAAK2+4B,UAAUjB,eAAeC,YAC9ButB,EAAW1tc,UAAYx9d,KAAK2+4B,UAAUjB,eAAeC,UACrDutB,EAAW1k1B,QAEf0k1B,EAAWx2oB,KAAK10R,KAAK2+4B,UAAUC,YAAYn3iB,OAASznW,KAAK2+4B,UAAUjB,eAAetuwB,YAAapvI,KAAK2+4B,UAAUC,YAAYl3iB,OAAS1nW,KAAK2+4B,UAAUjB,eAAetuwB,YAAapvI,KAAK2+4B,UAAUC,YAAYpg4B,MAAS,EAAIxe,KAAK2+4B,UAAUjB,eAAetuwB,YAAcpvI,KAAK2+4B,UAAUC,YAAYh2vB,OAAU,EAAI5oJ,KAAK2+4B,UAAUjB,eAAetuwB,aACzU87xB,EAAW1tc,UAAYx9d,KAAK2+4B,UAAUjB,eAAejgb,YACrDytc,EAAW1k1B,KAAK,WAChB0k1B,EAAWtsc,WACf,EACA+9a,EAAYhs4B,UAAU485B,cAAgB,SAAUN,EAAcC,GAC1Dlt6B,KAAK4o5B,aAAarlb,YAAcvje,KAAKil5B,UAAUjl5B,KAAKkta,OAAqB,aACzElta,KAAK4o5B,aAAa3nb,YAClBjhe,KAAK2+4B,UAAUgvB,gBAAkB,CAAElmkB,OAAQznW,KAAK2+4B,UAAUC,YAAYn3iB,OAAQC,OAAQ1nW,KAAK2+4B,UAAUC,YAAYl3iB,OACzGwlkB,EAAe/vB,KAAMn94B,KAAK2+4B,UAAUC,YAAYzB,KAAMC,KAAMp94B,KAAK2+4B,UAAUC,YAAYxB,KAAO8vB,GACtGlt6B,KAAK2+4B,UAAUivB,mBAAqB,CAAEnmkB,OAAQznW,KAAK2+4B,UAAUC,YAAYn3iB,OAAQC,OAAQ1nW,KAAK2+4B,UAAUC,YAAYl3iB,OAC3G,EAAIwlkB,EAAgB/vB,KAAMn94B,KAAK2+4B,UAAUC,YAAYzB,KAAMC,KAAMp94B,KAAK2+4B,UAAUC,YAAYxB,KAAQ,EAAI8vB,GACjHlt6B,KAAK2+4B,UAAUkvB,iBAAmB,CAAEpmkB,OAAQznW,KAAK2+4B,UAAUC,YAAYn3iB,OAASwlkB,EAC5EvlkB,OAAQ1nW,KAAK2+4B,UAAUC,YAAYl3iB,OAAQy1iB,KAAMn94B,KAAK2+4B,UAAUC,YAAYn3iB,OAASwlkB,EACrF7vB,KAAMp94B,KAAK2+4B,UAAUC,YAAYxB,MACrCp94B,KAAK2+4B,UAAUmvB,kBAAoB,CAAErmkB,OAAQznW,KAAK2+4B,UAAUC,YAAYn3iB,OAAU,EAAIwlkB,EAClFvlkB,OAAQ1nW,KAAK2+4B,UAAUC,YAAYl3iB,OAAQy1iB,KAAMn94B,KAAK2+4B,UAAUC,YAAYn3iB,OAAU,EAAIwlkB,EAC1F7vB,KAAMp94B,KAAK2+4B,UAAUC,YAAYxB,MACrCp94B,KAAK4o5B,aAAa1nb,OAAOlhe,KAAK2+4B,UAAUgvB,gBAAgBlmkB,OAAQznW,KAAK2+4B,UAAUgvB,gBAAgBjmkB,QAC/F1nW,KAAK4o5B,aAAa8iB,OAAO1r6B,KAAK2+4B,UAAUgvB,gBAAgBxwB,KAAMn94B,KAAK2+4B,UAAUgvB,gBAAgBjmkB,QAC7F1nW,KAAK4o5B,aAAa1nb,OAAOlhe,KAAK2+4B,UAAUivB,mBAAmBnmkB,OAAQznW,KAAK2+4B,UAAUivB,mBAAmBlmkB,QACrG1nW,KAAK4o5B,aAAa8iB,OAAO1r6B,KAAK2+4B,UAAUivB,mBAAmBzwB,KAAMn94B,KAAK2+4B,UAAUivB,mBAAmBlmkB,QACnG1nW,KAAK4o5B,aAAa1nb,OAAOlhe,KAAK2+4B,UAAUkvB,iBAAiBpmkB,OAAQznW,KAAK2+4B,UAAUkvB,iBAAiBnmkB,QACjG1nW,KAAK4o5B,aAAa8iB,OAAO1r6B,KAAK2+4B,UAAUkvB,iBAAiB1wB,KAAMn94B,KAAK2+4B,UAAUkvB,iBAAiBzwB,MAC/Fp94B,KAAK4o5B,aAAa1nb,OAAOlhe,KAAK2+4B,UAAUmvB,kBAAkBrmkB,OAAQznW,KAAK2+4B,UAAUmvB,kBAAkBpmkB,QACnG1nW,KAAK4o5B,aAAa8iB,OAAO1r6B,KAAK2+4B,UAAUmvB,kBAAkB3wB,KAAMn94B,KAAK2+4B,UAAUmvB,kBAAkB1wB,MACjGp94B,KAAK4o5B,aAAaruJ,SAClBv6vB,KAAK4o5B,aAAahqb,WACtB,EACA+9a,EAAYhs4B,UAAUs75B,kBAAoB,SAAUf,EAAY12K,GAC5D02K,EAAWjzJ,WAAa,EACxBizJ,EAAWjqc,YACkB,UAAzBjhe,KAAK2+4B,UAAUnzwB,OAA8C,SAAzBxrI,KAAK2+4B,UAAUnzwB,MAC/CgpnB,EAAS,KAAO,GAAKA,EAAS,MAAQ,GACtC02K,EAAWhqc,OAAOlhe,KAAK2+4B,UAAU8sB,gBAAgBhkkB,OAAQznW,KAAK2+4B,UAAU8sB,gBAAgB/jkB,QACxFwjkB,EAAW/pc,IAAInhe,KAAK2+4B,UAAU8sB,gBAAgBhkkB,OAAQznW,KAAK2+4B,UAAU8sB,gBAAgB/jkB,OAAQ1nW,KAAK2+4B,UAAU8sB,gBAAgBjppB,OAAQ,EAAG,EAAI5+Q,KAAKita,IAChJq6f,EAAWhqc,OAAOlhe,KAAK2+4B,UAAUgtB,mBAAmBlkkB,OAAQznW,KAAK2+4B,UAAUgtB,mBAAmBjkkB,QAC9FwjkB,EAAW/pc,IAAInhe,KAAK2+4B,UAAUgtB,mBAAmBlkkB,OAAQznW,KAAK2+4B,UAAUgtB,mBAAmBjkkB,OAAQ1nW,KAAK2+4B,UAAUgtB,mBAAmBnppB,OAAQ,EAAG,EAAI5+Q,KAAKita,MAGzJq6f,EAAWhqc,OAAOlhe,KAAK2+4B,UAAUitB,iBAAiBnkkB,OAAQznW,KAAK2+4B,UAAUitB,iBAAiBlkkB,QAC1FwjkB,EAAW/pc,IAAInhe,KAAK2+4B,UAAUitB,iBAAiBnkkB,OAAQznW,KAAK2+4B,UAAUitB,iBAAiBlkkB,OAAQ1nW,KAAK2+4B,UAAUitB,iBAAiBpppB,OAAQ,EAAG,EAAI5+Q,KAAKita,IACnJq6f,EAAWhqc,OAAOlhe,KAAK2+4B,UAAUktB,kBAAkBpkkB,OAAQznW,KAAK2+4B,UAAUktB,kBAAkBnkkB,QAC5FwjkB,EAAW/pc,IAAInhe,KAAK2+4B,UAAUktB,kBAAkBpkkB,OAAQznW,KAAK2+4B,UAAUktB,kBAAkBnkkB,OAAQ1nW,KAAK2+4B,UAAUktB,kBAAkBrppB,OAAQ,EAAG,EAAI5+Q,KAAKita,MAI1Jq6f,EAAWhqc,OAAOlhe,KAAK2+4B,UAAU8sB,gBAAgBhkkB,OAAQznW,KAAK2+4B,UAAU8sB,gBAAgB/jkB,QACxFwjkB,EAAW/pc,IAAInhe,KAAK2+4B,UAAU8sB,gBAAgBhkkB,OAAQznW,KAAK2+4B,UAAU8sB,gBAAgB/jkB,OAAQ1nW,KAAK2+4B,UAAU8sB,gBAAgBjppB,OAAQ,EAAG,EAAI5+Q,KAAKita,IAChJq6f,EAAWhqc,OAAOlhe,KAAK2+4B,UAAUitB,iBAAiBnkkB,OAAQznW,KAAK2+4B,UAAUitB,iBAAiBlkkB,QAC1FwjkB,EAAW/pc,IAAInhe,KAAK2+4B,UAAUitB,iBAAiBnkkB,OAAQznW,KAAK2+4B,UAAUitB,iBAAiBlkkB,OAAQ1nW,KAAK2+4B,UAAUitB,iBAAiBpppB,OAAQ,EAAG,EAAI5+Q,KAAKita,IACnJq6f,EAAWhqc,OAAOlhe,KAAK2+4B,UAAUktB,kBAAkBpkkB,OAAQznW,KAAK2+4B,UAAUktB,kBAAkBnkkB,QAC5FwjkB,EAAW/pc,IAAInhe,KAAK2+4B,UAAUktB,kBAAkBpkkB,OAAQznW,KAAK2+4B,UAAUktB,kBAAkBnkkB,OAAQ1nW,KAAK2+4B,UAAUktB,kBAAkBrppB,OAAQ,EAAG,EAAI5+Q,KAAKita,IACtJq6f,EAAWhqc,OAAOlhe,KAAK2+4B,UAAUgtB,mBAAmBlkkB,OAAQznW,KAAK2+4B,UAAUgtB,mBAAmBjkkB,QAC9FwjkB,EAAW/pc,IAAInhe,KAAK2+4B,UAAUgtB,mBAAmBlkkB,OAAQznW,KAAK2+4B,UAAUgtB,mBAAmBjkkB,OAAQ1nW,KAAK2+4B,UAAUgtB,mBAAmBnppB,OAAQ,EAAG,EAAI5+Q,KAAKita,KAE7Jq6f,EAAW3wK,SACX2wK,EAAW1k1B,OACX0k1B,EAAWtsc,YACXssc,EAAWjzJ,WAAa,CAC5B,EACA0kI,EAAYhs4B,UAAUw6hB,WAAa,SAAUjxhB,EAAGC,EAAGvN,GAC/C,GAA2B,cAAvBA,EAAK8T,eAAwD,eAAvB9T,EAAK8T,cAAgC,CAC3E,IACI6r5B,GAAS,EACTvs6B,KAAK2+4B,UAAUnzwB,OAEO,SADTxrI,KAAK2+4B,UAAUnzwB,MAAM74G,MAAM,KACzB,KACX454B,GAAS,GAGjBvs6B,KAAKil6B,cAAc/q5B,EAAGC,EAAGoy5B,GACzBvs6B,KAAK+t6B,mBAAmB7z5B,EAAGC,EAAGvN,EAClC,MAEI,OAAQ5M,KAAK++V,YAAYr+U,eACrB,IAAK,YACD1gB,KAAK2+4B,UAAU4c,cAAc9zjB,OAASvtV,EACtCla,KAAK2+4B,UAAU4c,cAAc7zjB,OAASvtV,EACtC,MACJ,IAAK,WACDna,KAAK2+4B,UAAU8sB,gBAAgBhkkB,OAASvtV,EACxCla,KAAK2+4B,UAAU8sB,gBAAgB/jkB,OAASvtV,EACxC,MACJ,IAAK,YACDna,KAAK2+4B,UAAUmtB,eAAerkkB,OAASvtV,EACvCla,KAAK2+4B,UAAUmtB,eAAepkkB,OAASvtV,EACvC,MACJ,IAAK,WACDna,KAAK2+4B,UAAUitB,iBAAiBnkkB,OAASvtV,EACzCla,KAAK2+4B,UAAUitB,iBAAiBlkkB,OAASvtV,EACzC,MACJ,IAAK,WACDna,KAAK2+4B,UAAUktB,kBAAkBpkkB,OAASvtV,EAC1Cla,KAAK2+4B,UAAUktB,kBAAkBnkkB,OAASvtV,EAC1C,MACJ,IAAK,YACDna,KAAK2+4B,UAAUotB,iBAAiBtkkB,OAASvtV,EACzCla,KAAK2+4B,UAAUotB,iBAAiBrkkB,OAASvtV,EACzC,MACJ,IAAK,WACDna,KAAK2+4B,UAAUgtB,mBAAmBlkkB,OAASvtV,EAC3Cla,KAAK2+4B,UAAUgtB,mBAAmBjkkB,OAASvtV,EAC3C,MACJ,IAAK,YACDna,KAAK2+4B,UAAUqtB,kBAAkBvkkB,OAASvtV,EAC1Cla,KAAK2+4B,UAAUqtB,kBAAkBtkkB,OAASvtV,EAC1C,MACJ,QACQna,KAAKk94B,UAAUz1iB,QAAUznW,KAAKk94B,UAAUx1iB,SACxC1nW,KAAKi94B,cAAc/i4B,EAAIla,KAAKk94B,UAAUC,KACtCn94B,KAAKi94B,cAAc9i4B,EAAIna,KAAKk94B,UAAUE,KACtCp94B,KAAKk94B,UAAUC,KAAOjj4B,EACtBla,KAAKk94B,UAAUE,KAAOjj4B,GAK1C,EACAwi4B,EAAYhs4B,UAAUs05B,cAAgB,SAAU/q5B,EAAGC,EAAGoy5B,GAClD,IAAIxH,GAAU,EACd,GAA4B,IAAxB/k6B,KAAKu94B,QAAQn64B,SAAiBpD,KAAKi/4B,YAAYM,eAAiBgtB,EAAQ,CAGxE,IAFA,IAAI3wkB,EAAQ,EACRzvV,OAAI,EACCsgB,EAAQ,EAAGA,EAAQzsB,KAAKu94B,QAAQn64B,OAAQqpB,IAAS,CACtD,IAAIw4qB,EAASx7mB,GAAO,CAAC,EAAGzpF,KAAKu94B,QAAQ9w3B,GAAQ,CAAC,GAAG,GAC7CvS,GAAM+qrB,EAAO25M,YAAYn3iB,OAAwC,EAA9Bw9V,EAAOs2N,cAAc/4oB,QACxDtoQ,GAAM+qrB,EAAO25M,YAAYzB,KAAsC,EAA9Bl4M,EAAOs2N,cAAc/4oB,QACtDroQ,GAAM8qrB,EAAO25M,YAAYl3iB,OAAwC,EAA9Bu9V,EAAOs2N,cAAc/4oB,QACxDroQ,GAAM8qrB,EAAO25M,YAAYxB,KAAsC,EAA9Bn4M,EAAOs2N,cAAc/4oB,SAClDxiR,KAAKsnV,SAA6C,SAAlCtnV,KAAKyq5B,YAAYtk5B,MAAM+yiB,QAAuD,SAAlCl5iB,KAAKyq5B,YAAYtk5B,MAAM+yiB,QAAqBl5iB,KAAK4k5B,iBAC/F,IAAVhpjB,GAAeA,EAAQ1hV,EAAI+qrB,EAAO25M,YAAYn3iB,UAC9C7L,EAAQ1hV,EAAIla,KAAKu94B,QAAQ9w3B,GAAOmy3B,YAAYn3iB,OAC5Ct7V,EAAIsgB,GAGHzsB,KAAKu94B,QAAQ9w3B,GAAO2p4B,YAAcp25B,KAAKg/4B,cAAcoX,YAC1Djq5B,EAAIsgB,GAGhB,CACA,GAAIs/S,GAAkB5/T,GAClBnM,KAAK6v5B,mBACLkV,GAAU,MAET,CACD/k6B,KAAK+95B,YAAct00B,GAAO,GAAIzpF,KAAKu94B,QAAS,IAAI,GAChDv94B,KAAKi/4B,YAAYM,cAAe,EAChCv/4B,KAAK2+4B,UAAYl1zB,GAAO,CAAC,EAAGzpF,KAAKu94B,QAAQpx4B,GAAI,CAAC,GAAG,GACjD,IAAIugF,EAAOjD,GAAO,CAAC,EAAGzpF,KAAKu94B,QAAQpx4B,GAAI,CAAC,GAAG,GAE3C,GADAnM,KAAKu94B,QAAQ/n3B,OAAOrpB,EAAG,GACH,IAAhBnM,KAAKw0vB,OAAc,CACnB,IAAI1oR,EAAS9re,KAAK4p5B,aAAaxj5B,OAC/BpG,KAAK4p5B,aAAa7qb,UAAU,EAAG,EAAG/+d,KAAK6q5B,YAAYrs4B,MAAOxe,KAAK6q5B,YAAYjiwB,QAC3E5oJ,KAAKq45B,yBACLr45B,KAAK4p5B,aAAa5qb,UAAUh/d,KAAK2r5B,QAAS3r5B,KAAKmh5B,QAASnh5B,KAAKoh5B,OAAQph5B,KAAKu55B,SAAUv55B,KAAKw55B,UAAWx55B,KAAKih5B,SAAUjh5B,KAAKkh5B,QAASlh5B,KAAKm05B,UAAWn05B,KAAKo05B,YACtJp05B,KAAK4p5B,aAAaxj5B,OAAS,OAC3BpG,KAAK835B,iBACL935B,KAAK2+4B,UAAYl1zB,GAAO,CAAC,EAAGqiZ,EAAQ,CAAC,GAAG,GACxC9re,KAAK+35B,eAAe/35B,KAAK4p5B,cACzB5p5B,KAAK4p5B,aAAaxj5B,OAAS0le,EAC3B9re,KAAKs85B,qBACT,MAEIt85B,KAAK895B,oCACL995B,KAAK+35B,eAAe/35B,KAAK4p5B,cAE7B5p5B,KAAK275B,iBAAiB375B,KAAK4p5B,gBACrB79kB,GAAkB/rU,KAAKyw5B,qBAAyD,gBAAlCzw5B,KAAKyw5B,mBAAmBjlxB,OAA4BxrI,KAAK6h5B,eACzG7h5B,KAAKy55B,WAAWz55B,KAAK4p5B,cAEzB5p5B,KAAK8l6B,iBACL9l6B,KAAK2+4B,UAAYl1zB,GAAO,CAAC,EAAGiD,EAAM,CAAC,GAAG,GACtC1sF,KAAK494B,mBAAqBn0zB,GAAO,CAAC,EAAGzpF,KAAK2+4B,UAAUjB,eAAgB,CAAC,GAAG,GACxE194B,KAAK+94B,iBAAmBt0zB,GAAO,CAAC,EAAGzpF,KAAK2+4B,UAAUd,aAAc,CAAC,GAAG,GACpE,IAAImwB,EAAgBhu6B,KAAKgn6B,8BACrBF,EAAoB,CAAE5x1B,OAAQ,SAAU6x1B,sBAAuBiH,EAC/D/G,qBAAsB+G,GAC1Bhu6B,KAAKsgS,QAAQ,gBAAiBwmoB,GAC9B9m6B,KAAKop6B,2BAA2BtC,EAAkBG,sBAC9Cjn6B,KAAK2+4B,UAAUC,cACX7ykB,GAAkB/rU,KAAK225B,cACvB325B,KAAK225B,WAAalt0B,GAAO,CAAC,EAAGzpF,KAAK2+4B,UAAW,CAAC,GAAG,IAErD3+4B,KAAKu25B,WAAW,YAAav25B,KAAK2+4B,UAAW,KAAM,MAAM,EAAM,MAAM,GAChE3+4B,KAAK4k5B,kBACF5k5B,KAAK2+4B,UAAUC,YAAYn3iB,OAASznW,KAAKih5B,UAGpCjh5B,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAKih5B,SAAWjh5B,KAAKm05B,WAGvDn05B,KAAK2+4B,UAAUC,YAAYl3iB,OAAS1nW,KAAKkh5B,SAGzClh5B,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAKkh5B,QAAUlh5B,KAAKo05B,cAR3Dp05B,KAAKyh5B,mBAAoB,IAarCsjB,GAAU,CACd,CACJ,CACA,OAAOA,CACX,EACApoB,EAAYhs4B,UAAU2r5B,oBAAsB,WACxC,GAAmC,IAA/Bt85B,KAAK2h5B,eAAev+4B,OAAc,CAClC,IAAI++4B,EAA2B14zB,GAAO,CAAC,EAAGzpF,KAAKmi5B,yBAA0B,CAAC,GAAG,GAC7Eni5B,KAAK895B,oCACL995B,KAAKmi5B,yBAA2BA,CACpC,MAEIni5B,KAAK895B,mCAEb,EACAnhB,EAAYhs4B,UAAUs95B,aAAe,SAAUz5K,GAC3Cx0vB,KAAK4p5B,aAAavrb,OAClBr+d,KAAK4p5B,aAAa7qb,UAAU,EAAG,EAAG/+d,KAAK6q5B,YAAYrs4B,MAAOxe,KAAK6q5B,YAAYjiwB,QAC3E5oJ,KAAK4p5B,aAAa9wW,UAAU94iB,KAAK6q5B,YAAYrs4B,MAAQ,EAAGxe,KAAK6q5B,YAAYjiwB,OAAS,GAClF5oJ,KAAK4p5B,aAAat5e,OAAO1sa,KAAKita,GAAK,IAAM2jV,GACzCx0vB,KAAK4p5B,aAAa9wW,WAAW94iB,KAAK6q5B,YAAYrs4B,MAAQ,GAAIxe,KAAK6q5B,YAAYjiwB,OAAS,GACpF,IAAIl8D,EAAO1sF,KAAK4p5B,aAAaxj5B,OAC7BpG,KAAKq45B,yBACLr45B,KAAK4p5B,aAAa5qb,UAAUh/d,KAAK2r5B,QAAS3r5B,KAAKmh5B,QAASnh5B,KAAKoh5B,OAAQph5B,KAAKu55B,SAAUv55B,KAAKw55B,UAAWx55B,KAAKih5B,SAAUjh5B,KAAKkh5B,QAASlh5B,KAAKm05B,UAAWn05B,KAAKo05B,YACtJp05B,KAAK4p5B,aAAaxj5B,OAASsmF,EAC3B1sF,KAAK4p5B,aAAa9wW,UAAU94iB,KAAK6q5B,YAAYrs4B,MAAQ,EAAGxe,KAAK6q5B,YAAYjiwB,OAAS,GAClF5oJ,KAAK4p5B,aAAat5e,OAAO1sa,KAAKita,GAAK,KAAO2jV,GAC1Cx0vB,KAAK4p5B,aAAa9wW,WAAW94iB,KAAK6q5B,YAAYrs4B,MAAQ,GAAIxe,KAAK6q5B,YAAYjiwB,OAAS,GACpF5oJ,KAAK4p5B,aAAa10V,SACtB,EACAynV,EAAYhs4B,UAAUo95B,mBAAqB,SAAU7z5B,EAAGC,EAAGvN,GACvD,IAAIsh6B,GAAW,EACmB,KAA9Blu6B,KAAK2+4B,UAAU7B,iBAA8Cz54B,IAAzBrD,KAAK2+4B,UAAUnzwB,OAAwBxrI,KAAKi/4B,YAAYM,cAC3Fv/4B,KAAKi/4B,YAAYI,SAAUr/4B,KAAKi/4B,YAAYx41B,SAC7CzmD,KAAK2+4B,UAAUnzwB,MAAQ,QAE3B,IAIIgpnB,EAJAvvD,EAASx7mB,GAAO,CAAC,EAAGzpF,KAAK2+4B,UAAW,CAAC,GAAG,GACxC5ykB,GAAkBk5X,EAAOs2N,kBAKzB/mK,EADuB,IAAvBvvD,EAAOy+N,YACE1j6B,KAAKw0vB,OAGLx0vB,KAAKw0vB,OAASvvD,EAAOy+N,aAErB,IACTlvK,EAAS,IAAMA,GAEfx0vB,KAAK2k5B,cACDzq4B,GAAM+qrB,EAAOs2N,cAAc9zjB,OAAwC,EAA9Bw9V,EAAOs2N,cAAc/4oB,QAC1DtoQ,GAAM+qrB,EAAOs2N,cAAc9zjB,OAAwC,EAA9Bw9V,EAAOs2N,cAAc/4oB,QAC1DroQ,GAAM8qrB,EAAOs2N,cAAc7zjB,OAAwC,EAA9Bu9V,EAAOs2N,cAAc/4oB,QAC1DroQ,GAAM8qrB,EAAOs2N,cAAc7zjB,OAAwC,EAA9Bu9V,EAAOs2N,cAAc/4oB,QAAqC,cAArBxiR,KAAK++V,aAC/EkmW,EAAOs2N,cAAc9zjB,OAASw9V,EAAOs2N,cAAc7zjB,OAAS,EAC5D1nW,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,YAChCg1X,GAAW,EACXlu6B,KAAK++V,YAAc/+V,KAAKyq5B,YAAYtk5B,MAAM+yiB,QAErCh/hB,GAAM+qrB,EAAOwmO,gBAAgBhkkB,OAAwC,EAA9Bw9V,EAAOs2N,cAAc/4oB,QACjEtoQ,GAAM+qrB,EAAOwmO,gBAAgBhkkB,OAAwC,EAA9Bw9V,EAAOs2N,cAAc/4oB,QAC5DroQ,GAAM8qrB,EAAOwmO,gBAAgB/jkB,OAAwC,EAA9Bu9V,EAAOs2N,cAAc/4oB,QAC5DroQ,GAAM8qrB,EAAOwmO,gBAAgB/jkB,OAAwC,EAA9Bu9V,EAAOs2N,cAAc/4oB,QAAqC,aAArBxiR,KAAK++V,aACjFkmW,EAAOwmO,gBAAgBhkkB,OAASw9V,EAAOwmO,gBAAgB/jkB,OAAS,EAChE1nW,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,WAChCg1X,GAAW,EACXlu6B,KAAK++V,YAAc/+V,KAAKyq5B,YAAYtk5B,MAAM+yiB,QAErCh/hB,GAAM+qrB,EAAO6mO,eAAerkkB,OAAwC,EAA9Bw9V,EAAOs2N,cAAc/4oB,QAChEtoQ,GAAM+qrB,EAAO6mO,eAAerkkB,OAAwC,EAA9Bw9V,EAAOs2N,cAAc/4oB,QAC3DroQ,GAAM8qrB,EAAO6mO,eAAepkkB,OAAwC,EAA9Bu9V,EAAOs2N,cAAc/4oB,QAC3DroQ,GAAM8qrB,EAAO6mO,eAAepkkB,OAAwC,EAA9Bu9V,EAAOs2N,cAAc/4oB,QAAqC,cAArBxiR,KAAK++V,aAChFkmW,EAAO6mO,eAAerkkB,OAASw9V,EAAO6mO,eAAepkkB,OAAS,EAC9D1nW,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,YAChCg1X,GAAW,EACXlu6B,KAAK++V,YAAc/+V,KAAKyq5B,YAAYtk5B,MAAM+yiB,QAErCh/hB,GAAM+qrB,EAAO2mO,iBAAiBnkkB,OAAwC,EAA9Bw9V,EAAOs2N,cAAc/4oB,QAClEtoQ,GAAM+qrB,EAAO2mO,iBAAiBnkkB,OAAwC,EAA9Bw9V,EAAOs2N,cAAc/4oB,QAC7DroQ,GAAM8qrB,EAAO2mO,iBAAiBlkkB,OAAwC,EAA9Bu9V,EAAOs2N,cAAc/4oB,QAC7DroQ,GAAM8qrB,EAAO2mO,iBAAiBlkkB,OAAwC,EAA9Bu9V,EAAOs2N,cAAc/4oB,QAAqC,aAArBxiR,KAAK++V,aAClFkmW,EAAO2mO,iBAAiBnkkB,OAASw9V,EAAO2mO,iBAAiBlkkB,OAAS,EAClE1nW,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,WAChCg1X,GAAW,EACXlu6B,KAAK++V,YAAc/+V,KAAKyq5B,YAAYtk5B,MAAM+yiB,QAErCh/hB,GAAM+qrB,EAAO4mO,kBAAkBpkkB,OAAwC,EAA9Bw9V,EAAOs2N,cAAc/4oB,QACnEtoQ,GAAM+qrB,EAAO4mO,kBAAkBpkkB,OAAwC,EAA9Bw9V,EAAOs2N,cAAc/4oB,QAC9DroQ,GAAM8qrB,EAAO4mO,kBAAkBnkkB,OAAwC,EAA9Bu9V,EAAOs2N,cAAc/4oB,QAC9DroQ,GAAM8qrB,EAAO4mO,kBAAkBnkkB,OAAwC,EAA9Bu9V,EAAOs2N,cAAc/4oB,QAAqC,aAArBxiR,KAAK++V,aACnFkmW,EAAO4mO,kBAAkBpkkB,OAASw9V,EAAO4mO,kBAAkBnkkB,OAAS,EACpE1nW,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,WAChCg1X,GAAW,EACXlu6B,KAAK++V,YAAc/+V,KAAKyq5B,YAAYtk5B,MAAM+yiB,QAErCh/hB,GAAM+qrB,EAAO8mO,iBAAiBtkkB,OAAwC,EAA9Bw9V,EAAOs2N,cAAc/4oB,QAClEtoQ,GAAM+qrB,EAAO8mO,iBAAiBtkkB,OAAwC,EAA9Bw9V,EAAOs2N,cAAc/4oB,QAC7DroQ,GAAM8qrB,EAAO8mO,iBAAiBrkkB,OAAwC,EAA9Bu9V,EAAOs2N,cAAc/4oB,QAC7DroQ,GAAM8qrB,EAAO8mO,iBAAiBrkkB,OAAwC,EAA9Bu9V,EAAOs2N,cAAc/4oB,QAAqC,cAArBxiR,KAAK++V,aAClFkmW,EAAO8mO,iBAAiBtkkB,OAASw9V,EAAO8mO,iBAAiBrkkB,OAAS,EAClE1nW,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,YAChCg1X,GAAW,EACXlu6B,KAAK++V,YAAc/+V,KAAKyq5B,YAAYtk5B,MAAM+yiB,QAErCh/hB,GAAM+qrB,EAAO0mO,mBAAmBlkkB,OAAwC,EAA9Bw9V,EAAOs2N,cAAc/4oB,QACpEtoQ,GAAM+qrB,EAAO0mO,mBAAmBlkkB,OAAwC,EAA9Bw9V,EAAOs2N,cAAc/4oB,QAC/DroQ,GAAM8qrB,EAAO0mO,mBAAmBjkkB,OAAwC,EAA9Bu9V,EAAOs2N,cAAc/4oB,QAC/DroQ,GAAM8qrB,EAAO0mO,mBAAmBjkkB,OAAwC,EAA9Bu9V,EAAOs2N,cAAc/4oB,QAAqC,aAArBxiR,KAAK++V,aACpFkmW,EAAO0mO,mBAAmBlkkB,OAASw9V,EAAO0mO,mBAAmBjkkB,OAAS,EACtE1nW,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,WAChCg1X,GAAW,EACXlu6B,KAAK++V,YAAc/+V,KAAKyq5B,YAAYtk5B,MAAM+yiB,QAErCh/hB,GAAM+qrB,EAAO+mO,kBAAkBvkkB,OAAwC,EAA9Bw9V,EAAOs2N,cAAc/4oB,QACnEtoQ,GAAM+qrB,EAAO+mO,kBAAkBvkkB,OAAwC,EAA9Bw9V,EAAOs2N,cAAc/4oB,QAC9DroQ,GAAM8qrB,EAAO+mO,kBAAkBtkkB,OAAwC,EAA9Bu9V,EAAOs2N,cAAc/4oB,QAC9DroQ,GAAM8qrB,EAAO+mO,kBAAkBtkkB,OAAwC,EAA9Bu9V,EAAOs2N,cAAc/4oB,QAAqC,cAArBxiR,KAAK++V,aACnFkmW,EAAO+mO,kBAAkBvkkB,OAASw9V,EAAO+mO,kBAAkBtkkB,OAAS,EACpE1nW,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,YAChCg1X,GAAW,EACXlu6B,KAAK++V,YAAc/+V,KAAKyq5B,YAAYtk5B,MAAM+yiB,SAG1Cl5iB,KAAKk94B,UAAUz1iB,OAASznW,KAAKi94B,cAAc/i4B,EAAIla,KAAKk94B,UAAUC,KAAOjj4B,EACrEla,KAAKk94B,UAAUx1iB,OAAS1nW,KAAKi94B,cAAc9i4B,EAAIna,KAAKk94B,UAAUE,KAAOjj4B,IAIzEna,KAAKk94B,UAAUz1iB,OAASznW,KAAKi94B,cAAc/i4B,EAAIla,KAAKk94B,UAAUC,KAAOjj4B,EACrEla,KAAKk94B,UAAUx1iB,OAAS1nW,KAAKi94B,cAAc9i4B,EAAIna,KAAKk94B,UAAUE,KAAOjj4B,GAEpD,UAAjB8qrB,EAAOz5jB,OAAsC,SAAjBy5jB,EAAOz5jB,QAC/BgpnB,EAAS,KAAO,GAAKA,EAAS,MAAQ,EACA,cAAlCx0vB,KAAKyq5B,YAAYtk5B,MAAM+yiB,QAA4D,cAAlCl5iB,KAAKyq5B,YAAYtk5B,MAAM+yiB,OACpEh/hB,GAAM+qrB,EAAO0mO,mBAAmBlkkB,OAAwC,EAA9Bw9V,EAAOs2N,cAAc/4oB,QAC/DtoQ,GAAM+qrB,EAAO0mO,mBAAmBlkkB,OAAwC,EAA9Bw9V,EAAOs2N,cAAc/4oB,QAC/DroQ,GAAM8qrB,EAAO0mO,mBAAmBjkkB,OAAwC,EAA9Bu9V,EAAOs2N,cAAc/4oB,QAC/DroQ,GAAM8qrB,EAAO0mO,mBAAmBjkkB,OAAwC,EAA9Bu9V,EAAOs2N,cAAc/4oB,QAAqC,aAArBxiR,KAAK++V,cACpFkmW,EAAO0mO,mBAAmBlkkB,OAASw9V,EAAO0mO,mBAAmBjkkB,OAAS,EACtE1nW,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,WAChCg1X,GAAW,EACXlu6B,KAAK++V,YAAc/+V,KAAKyq5B,YAAYtk5B,MAAM+yiB,QAGP,cAAlCl5iB,KAAKyq5B,YAAYtk5B,MAAM+yiB,QAA4D,cAAlCl5iB,KAAKyq5B,YAAYtk5B,MAAM+yiB,QACzEh/hB,GAAM+qrB,EAAOwmO,gBAAgBhkkB,OAAwC,EAA9Bw9V,EAAOs2N,cAAc/4oB,QAC5DtoQ,GAAM+qrB,EAAOwmO,gBAAgBhkkB,OAAwC,EAA9Bw9V,EAAOs2N,cAAc/4oB,QAC5DroQ,GAAM8qrB,EAAOwmO,gBAAgB/jkB,OAAwC,EAA9Bu9V,EAAOs2N,cAAc/4oB,QAC5DroQ,GAAM8qrB,EAAOwmO,gBAAgB/jkB,OAAwC,EAA9Bu9V,EAAOs2N,cAAc/4oB,QAAqC,aAArBxiR,KAAK++V,cACjFkmW,EAAOwmO,gBAAgBhkkB,OAASw9V,EAAOwmO,gBAAgB/jkB,OAAS,EAChE1nW,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,WAChCg1X,GAAW,EACXlu6B,KAAK++V,YAAc/+V,KAAKyq5B,YAAYtk5B,MAAM+yiB,QAKZ,cAAlCl5iB,KAAKyq5B,YAAYtk5B,MAAM+yiB,QAA4D,cAAlCl5iB,KAAKyq5B,YAAYtk5B,MAAM+yiB,OACpEh/hB,GAAM+qrB,EAAO2mO,iBAAiBnkkB,OAAwC,EAA9Bw9V,EAAOs2N,cAAc/4oB,QAC7DtoQ,GAAM+qrB,EAAO2mO,iBAAiBnkkB,OAAwC,EAA9Bw9V,EAAOs2N,cAAc/4oB,QAC7DroQ,GAAM8qrB,EAAO2mO,iBAAiBlkkB,OAAwC,EAA9Bu9V,EAAOs2N,cAAc/4oB,QAC7DroQ,GAAM8qrB,EAAO2mO,iBAAiBlkkB,OAAwC,EAA9Bu9V,EAAOs2N,cAAc/4oB,QAAqC,aAArBxiR,KAAK++V,cAClFkmW,EAAO2mO,iBAAiBnkkB,OAASw9V,EAAO2mO,iBAAiBlkkB,OAAS,EAClE1nW,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,WAChCg1X,GAAW,EACXlu6B,KAAK++V,YAAc/+V,KAAKyq5B,YAAYtk5B,MAAM+yiB,QAGP,cAAlCl5iB,KAAKyq5B,YAAYtk5B,MAAM+yiB,QAA4D,cAAlCl5iB,KAAKyq5B,YAAYtk5B,MAAM+yiB,QACzEh/hB,GAAM+qrB,EAAO4mO,kBAAkBpkkB,OAAwC,EAA9Bw9V,EAAOs2N,cAAc/4oB,QAC9DtoQ,GAAM+qrB,EAAO4mO,kBAAkBpkkB,OAAwC,EAA9Bw9V,EAAOs2N,cAAc/4oB,QAC9DroQ,GAAM8qrB,EAAO4mO,kBAAkBnkkB,OAAwC,EAA9Bu9V,EAAOs2N,cAAc/4oB,QAC9DroQ,GAAM8qrB,EAAO4mO,kBAAkBnkkB,OAAwC,EAA9Bu9V,EAAOs2N,cAAc/4oB,QAAqC,aAArBxiR,KAAK++V,cACnFkmW,EAAO4mO,kBAAkBpkkB,OAASw9V,EAAO4mO,kBAAkBnkkB,OAAS,EACpE1nW,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,WAChCg1X,GAAW,EACXlu6B,KAAK++V,YAAc/+V,KAAKyq5B,YAAYtk5B,MAAM+yiB,QAIhB,cAAlCl5iB,KAAKyq5B,YAAYtk5B,MAAM+yiB,QAA4D,cAAlCl5iB,KAAKyq5B,YAAYtk5B,MAAM+yiB,QACtC,cAAlCl5iB,KAAKyq5B,YAAYtk5B,MAAM+yiB,QAA4D,cAAlCl5iB,KAAKyq5B,YAAYtk5B,MAAM+yiB,SACxEl5iB,KAAKmu6B,2BAA2Bj05B,EAAGC,GACnC+z5B,GAAW,GAEX15K,EAAS,KAAO,GAAKA,EAAS,MAAQ,EACA,aAAlCx0vB,KAAKyq5B,YAAYtk5B,MAAM+yiB,QAA2D,aAAlCl5iB,KAAKyq5B,YAAYtk5B,MAAM+yiB,SACvEl5iB,KAAKmu6B,2BAA2Bj05B,EAAGC,GACnC+z5B,GAAW,GAIuB,aAAlClu6B,KAAKyq5B,YAAYtk5B,MAAM+yiB,QAA2D,aAAlCl5iB,KAAKyq5B,YAAYtk5B,MAAM+yiB,SACvEl5iB,KAAKmu6B,2BAA2Bj05B,EAAGC,GACnC+z5B,GAAW,IAIvBlu6B,KAAKi94B,cAAc/i4B,EAAIla,KAAKi94B,cAAc9i4B,EAAIna,KAAKq94B,UAAUnj4B,EAAIla,KAAKq94B,UAAUlj4B,EAAI,EACvE,eAATvN,GACIsh6B,GAAah05B,GAAK+qrB,EAAO25M,YAAYn3iB,QAAUvtV,GAAK+qrB,EAAO25M,YAAYzB,MACpEhj4B,GAAK8qrB,EAAO25M,YAAYl3iB,QAAUvtV,GAAK8qrB,EAAO25M,YAAYxB,QAC7Dp94B,KAAKi/4B,YAAYC,YAAa,GAIlCl/4B,KAAKi/4B,YAAYC,YAAa,EAEtC,EACAvC,EAAYhs4B,UAAUw95B,2BAA6B,SAAUj05B,EAAGC,GAC5Dna,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,OAChCl5iB,KAAK++V,YAAc,GACnB/+V,KAAKk94B,UAAUz1iB,OAASznW,KAAKi94B,cAAc/i4B,EAAIla,KAAKk94B,UAAUC,KAAOjj4B,EACrEla,KAAKk94B,UAAUx1iB,OAAS1nW,KAAKi94B,cAAc9i4B,EAAIna,KAAKk94B,UAAUE,KAAOjj4B,CACzE,EACAwi4B,EAAYhs4B,UAAU275B,cAAgB,WAClC,IAAIpy5B,EACAC,EACAqE,EACAoqI,EA2CJ,OA1CI5oJ,KAAK+g5B,WAAa,IAAMh1kB,GAAkB/rU,KAAK4w5B,wBAE3C5w5B,KAAKih5B,SAAWjh5B,KAAKih5B,SAAWjh5B,KAAKm05B,WAAan05B,KAAK6q5B,YAAY9lpB,aACnEvmP,EAAQxe,KAAKm05B,UAAYn05B,KAAKih5B,SAC1Bjh5B,KAAKih5B,SAAW,IAChBzi4B,GAAU,EAAIxe,KAAKih5B,WAIvBzi4B,EAAQxe,KAAK6q5B,YAAY9lpB,YAAc/kQ,KAAKih5B,SAE5Cjh5B,KAAKkh5B,QAAUlh5B,KAAKkh5B,QAAUlh5B,KAAKo05B,YAAcp05B,KAAK6q5B,YAAY3lpB,cAClEt8G,EAAS5oJ,KAAKo05B,WAAap05B,KAAKkh5B,QAC5Blh5B,KAAKkh5B,QAAU,IACft4vB,GAAW,EAAI5oJ,KAAKkh5B,UAIxBt4vB,EAAS5oJ,KAAK6q5B,YAAY3lpB,aAAellQ,KAAKkh5B,QAE9B,IAAhBlh5B,KAAKw0vB,SACLx0vB,KAAKkj5B,gBAAiB,KAI1B1k4B,EAAQxe,KAAKm05B,UACbvrwB,EAAS5oJ,KAAKo05B,WACVp05B,KAAKih5B,SAAW,IAChBzi4B,GAASxe,KAAKih5B,UAEdjh5B,KAAKkh5B,QAAU,IACft4vB,GAAU5oJ,KAAKkh5B,SAE0B,gBAAzClh5B,KAAKi/4B,YAAYzzwB,MAAM9qH,eAA4E,gBAAzC1gB,KAAKi/4B,YAAYzzwB,MAAM9qH,gBAC7E1gB,KAAKih5B,SAAWjh5B,KAAKm05B,UAAYn05B,KAAK6q5B,YAAYrs4B,QAClDA,GAAUxe,KAAKih5B,SAAWjh5B,KAAKm05B,UAAYn05B,KAAK6q5B,YAAYrs4B,OAE5Dxe,KAAKkh5B,QAAUlh5B,KAAKo05B,WAAap05B,KAAK6q5B,YAAYjiwB,SAClDA,GAAW5oJ,KAAKkh5B,QAAUlh5B,KAAKo05B,WAAap05B,KAAK6q5B,YAAYjiwB,UAIjE5oJ,KAAKi/4B,YAAYzzwB,MAAM9qH,eAC3B,IAAK,cACL,IAAK,cACD1gB,KAAKou6B,iBAAiB5v5B,EAAOoqI,GACzBpqI,IAAUxe,KAAKm05B,WAAavrwB,IAAW5oJ,KAAKo05B,aAC5Cp05B,KAAK2+4B,UAAUC,YAAYn3iB,QAAUznW,KAAKih5B,SAC1Cjh5B,KAAK2+4B,UAAUC,YAAYl3iB,QAAU1nW,KAAKkh5B,QAC1Clh5B,KAAK2+4B,UAAUC,YAAYzB,MAAQn94B,KAAKih5B,SACxCjh5B,KAAK2+4B,UAAUC,YAAYxB,MAAQp94B,KAAKkh5B,SAExClh5B,KAAK6q5B,YAAYrs4B,MAAQxe,KAAK6q5B,YAAYjiwB,QAC1C5oJ,KAAK2+4B,UAAUC,YAAYh2vB,OAAS5oJ,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAK2+4B,UAAUC,YAAYl3iB,OACjG1nW,KAAK2+4B,UAAUC,YAAYpg4B,MAAQxe,KAAK2+4B,UAAUC,YAAYh2vB,OAC9D5oJ,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAK2+4B,UAAUC,YAAYn3iB,OAASznW,KAAK2+4B,UAAUC,YAAYpg4B,QAGjGxe,KAAK2+4B,UAAUC,YAAYpg4B,MAAQxe,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAK2+4B,UAAUC,YAAYn3iB,OAChGznW,KAAK2+4B,UAAUC,YAAYh2vB,OAAS5oJ,KAAK2+4B,UAAUC,YAAYpg4B,MAC/Dxe,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAK2+4B,UAAUC,YAAYl3iB,OAAS1nW,KAAK2+4B,UAAUC,YAAYh2vB,QAErG,MACJ,IAAK,WACD1uI,EAAI,EACJC,EAAI,EACJ,MACJ,IAAK,WACDD,EAAI,EACJC,EAAI,EACJ,MACJ,IAAK,WACDD,EAAI,EACJC,EAAI,EACJ,MACJ,IAAK,WACDD,EAAI,EACJC,EAAI,EACJ,MACJ,IAAK,YACDD,EAAI,GACJC,EAAI,EASZ,QANU9W,IAAN6W,QAAyB7W,IAAN8W,IACnBna,KAAKqu6B,eAAen05B,EAAGC,EAAGqE,EAAOoqI,GAC7BpqI,IAAUxe,KAAKm05B,WAAavrwB,IAAW5oJ,KAAKo05B,YAC5Cp05B,KAAKsu6B,gBAGTtu6B,KAAK2+4B,UAAUC,YAAYn3iB,OAASznW,KAAKih5B,SAAU,CACnD,IAAIn93B,EAAQ9jB,KAAKih5B,SAAWjh5B,KAAK2+4B,UAAUC,YAAYn3iB,OAAU,IACjEznW,KAAK2+4B,UAAUC,YAAYn3iB,QAAU3jV,EACrC9jB,KAAK2+4B,UAAUC,YAAYzB,MAAQr53B,CACvC,CACA,GAAI9jB,KAAK2+4B,UAAUC,YAAYl3iB,OAAS1nW,KAAKkh5B,QAAS,CAC9Cp93B,EAAQ9jB,KAAKkh5B,QAAUlh5B,KAAK2+4B,UAAUC,YAAYl3iB,OAAU,IAChE1nW,KAAK2+4B,UAAUC,YAAYl3iB,QAAU5jV,EACrC9jB,KAAK2+4B,UAAUC,YAAYxB,MAAQt53B,CACvC,CACA9jB,KAAK2+4B,UAAUC,YAAYpg4B,MAAQxe,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAK2+4B,UAAUC,YAAYn3iB,OAChGznW,KAAK2+4B,UAAUC,YAAYh2vB,OAAS5oJ,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAK2+4B,UAAUC,YAAYl3iB,MACrG,EACAi1iB,EAAYhs4B,UAAUy95B,iBAAmB,SAAU5v5B,EAAOoqI,GACtD,IAAI2lxB,EAAa,IACbvu6B,KAAKm05B,UAAYn05B,KAAKo05B,YACtBp05B,KAAK2+4B,UAAUC,YAAYn3iB,OAASznW,KAAKk94B,UAAUz1iB,OAAWjpV,EAAQ,EAAMoqI,EAAS,EAC/E2lxB,EACNvu6B,KAAK2+4B,UAAUC,YAAYl3iB,OAAS1nW,KAAKk94B,UAAUx1iB,OAAW9+M,EAAS,EAAMA,EAAS,EAChF2lxB,EACNvu6B,KAAK2+4B,UAAUC,YAAYzB,KAAS3+3B,EAAQ,EAAMoqI,EAAS,EAAM2lxB,EACjEvu6B,KAAK2+4B,UAAUC,YAAYxB,KAASx0vB,EAAS,EAAMA,EAAS,EAAM2lxB,IAGlEvu6B,KAAK2+4B,UAAUC,YAAYl3iB,OAAS1nW,KAAKk94B,UAAUz1iB,OAAW7+M,EAAS,EAAMpqI,EAAS,EAChF+v5B,EACNvu6B,KAAK2+4B,UAAUC,YAAYxB,KAASx0vB,EAAS,EAAMpqI,EAAS,EAAK+v5B,EACjEvu6B,KAAK2+4B,UAAUC,YAAYn3iB,OAASznW,KAAKk94B,UAAUz1iB,OAAS8mkB,EAC5Dvu6B,KAAK2+4B,UAAUC,YAAYzB,KAAO3+3B,EAAQ+v5B,EAElD,EACA5xB,EAAYhs4B,UAAU295B,aAAe,WACjCtu6B,KAAK2+4B,UAAUC,YAAYn3iB,QAAUznW,KAAKih5B,SAC1Cjh5B,KAAK2+4B,UAAUC,YAAYl3iB,QAAU1nW,KAAKkh5B,QAC1Clh5B,KAAK2+4B,UAAUC,YAAYzB,MAAQn94B,KAAKih5B,SACxCjh5B,KAAK2+4B,UAAUC,YAAYxB,MAAQp94B,KAAKkh5B,QACxClh5B,KAAK2+4B,UAAUC,YAAYpg4B,MAAQxe,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAK2+4B,UAAUC,YAAYn3iB,OAChGznW,KAAK2+4B,UAAUC,YAAYh2vB,OAAS5oJ,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAK2+4B,UAAUC,YAAYl3iB,MACrG,EACAi1iB,EAAYhs4B,UAAU095B,eAAiB,SAAUn05B,EAAGC,EAAGq05B,EAAUC,GAU7D,IATA,IAAIF,EAAa,IACbl4Z,EAAgBm4Z,EAChBl4Z,EAAiBm4Z,EAEjBC,EAAer4Z,GAAiBC,EAAiBD,EAAgBC,EACjE93f,EAAQkw5B,GAFMx05B,EAAIC,GAGlByuI,EAAS8lxB,EACTC,EAAa3u6B,KAAK4u6B,SAASpw5B,EAAO63f,GAClCw4Z,EAAe,GACV1i6B,EAAI,EAAGA,EAAI,EAAGA,IACT,IAANA,EACA0i6B,EAAazi6B,KAAKoS,EAAQmw5B,GAG1BE,EAAazi6B,KAAKw8I,EAAS+lxB,GAGnCnw5B,EAAQqw5B,EAAa,GACrBjmxB,EAASimxB,EAAa,GACtB,IAAIC,EAAc9u6B,KAAK4u6B,SAAShmxB,EAAQ0tX,GACpCy4Z,EAAgB,GACpB,IAAS5i6B,EAAI,EAAGA,EAAI,EAAGA,IACT,IAANA,EACA4i6B,EAAc3i6B,KAAKoS,EAAQsw5B,GAG3BC,EAAc3i6B,KAAKw8I,EAASkmxB,GAGpCtw5B,EAAQuw5B,EAAc,GACtBnmxB,EAASmmxB,EAAc,GACvB/u6B,KAAK2+4B,UAAUC,YAAYpg4B,MAAQA,EACnCxe,KAAK2+4B,UAAUC,YAAYh2vB,OAASA,EACpC5oJ,KAAK2+4B,UAAUC,YAAYn3iB,QAAUznW,KAAKk94B,UAAUz1iB,QAAU4uK,EAAgB73f,GAAS,GAAK+v5B,EAC5Fvu6B,KAAK2+4B,UAAUC,YAAYl3iB,QAAU1nW,KAAKk94B,UAAUx1iB,QAAU4uK,EAAiB1tX,GAAU,GAAK2lxB,EAC9Fvu6B,KAAK2+4B,UAAUC,YAAYzB,MAAS9mY,EAAgB73f,GAAS,EAAIA,EAAS+v5B,EAC1Evu6B,KAAK2+4B,UAAUC,YAAYxB,MAAS9mY,EAAiB1tX,GAAU,EAAIA,EAAU2lxB,EACzEvu6B,KAAK2+4B,UAAUC,YAAYn3iB,OAASznW,KAAKih5B,UAAYjh5B,KAAKih5B,SAAWjh5B,KAAKm05B,UAAYn05B,KAAK6q5B,YAAY9lpB,cACvG/kQ,KAAK2+4B,UAAUC,YAAYn3iB,OAASznW,KAAKih5B,SACzCjh5B,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAK2+4B,UAAUC,YAAYn3iB,OAASjpV,EAAQ+v5B,GAE9Evu6B,KAAK2+4B,UAAUC,YAAYl3iB,OAAS1nW,KAAKkh5B,SAAWlh5B,KAAKkh5B,QAAUlh5B,KAAKo05B,WAAap05B,KAAK6q5B,YAAY3lpB,eACtGllQ,KAAK2+4B,UAAUC,YAAYl3iB,OAAS1nW,KAAKkh5B,QACzClh5B,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAK2+4B,UAAUC,YAAYl3iB,OAAS9+M,EAAS2lxB,GAEnFvu6B,KAAK2+4B,UAAUC,YAAYpg4B,MAAQxe,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAK2+4B,UAAUC,YAAYn3iB,OAChGznW,KAAK2+4B,UAAUC,YAAYh2vB,OAAS5oJ,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAK2+4B,UAAUC,YAAYl3iB,MACrG,EACAi1iB,EAAYhs4B,UAAUi+5B,SAAW,SAAUht6B,EAAOot6B,GAC9C,OAAOpt6B,EAAQot6B,EAAgBA,EAAgBpt6B,EAAQ,CAC3D,EACA+64B,EAAYhs4B,UAAUqw5B,iBAAmB,SAAUxi5B,EAAOoqI,GACtD,IAAIqmxB,EAAiBjv6B,KAAKmV,QAAQ4vP,YAC9BmqqB,EAAkBlv6B,KAAKmV,QAAQ+vP,aAAellQ,KAAKg+4B,cACvDkxB,EAAkBjolB,GAAQM,SAAW2nlB,EAAkBlv6B,KAAKg+4B,cAAgBkxB,EAG5E,IAAIC,GAFJF,GAAkB,IAEgBzw5B,EAC9B4w5B,GAFJF,GAAmB,IAEiBtmxB,EAChCymxB,EAAczr6B,KAAKgmD,IAAIprC,EAAOyw5B,GAC9BK,EAAe1r6B,KAAKgmD,IAAIg/F,EAAQsmxB,GASpC,OARIC,EAAa,GAAKA,EAAaC,GAC/BC,EAAc7w5B,EAAQ2w5B,EACtBG,EAAe1mxB,EAASumxB,GAEnBC,EAAc,GAAKA,EAAcD,IACtCE,EAAc7w5B,EAAQ4w5B,EACtBE,EAAe1mxB,EAASwmxB,GAErB,CAAE5w5B,MAAO6w5B,EAAazmxB,OAAQ0mxB,EACzC,EACA3yB,EAAYhs4B,UAAU4+5B,oBAAsB,SAAU/6K,EAAQ1vR,GAC1D,IAAI9E,EACA4vV,EACAp7D,EAAS,KAAO,GAAKA,EAAS,MAAQ,GACtCx0R,EAAWhge,KAAK2r5B,QAAQ/iwB,OACxBgnqB,EAAY5vzB,KAAK2r5B,QAAQnt4B,OAEpBg2uB,EAAS,MAAQ,GAAgB,IAAXA,IAC3Bx0R,EAAWhge,KAAK2r5B,QAAQnt4B,MACxBoxyB,EAAY5vzB,KAAK2r5B,QAAQ/iwB,QAE7Bk8U,EAAWtmd,MAAQwhd,EACnB8E,EAAWl8U,OAASgnqB,EACpB,IAAImxG,EAAe/g6B,KAAKgh6B,iBAAiBhhc,EAAU4vV,GACnD9qV,EAAW3+d,MAAM2wH,SAAWiqyB,EAAavi5B,MAAQ,KACjDsmd,EAAW3+d,MAAMy/b,UAAYm7d,EAAan4wB,OAAS,IACvD,EACA+zvB,EAAYhs4B,UAAU005B,UAAY,SAAUnr5B,EAAGC,GAC3C,IACIw14B,EADAC,GAAkB,EAEtB,QAAkCvs5B,IAA9BrD,KAAK2+4B,UAAUwoB,WAA0B,MACZ9j6B,IAAzBrD,KAAK2+4B,UAAUnzwB,QACfmkxB,EAAa3v5B,KAAK2+4B,UAAUnzwB,MAAM74G,MAAM,YAEzBtvB,IAAfss5B,GAA4B3v5B,KAAKi/4B,YAAYM,mBAGzBl84B,IAAfss5B,GAA8C,SAAlBA,EAAW,MAF5CC,GAAkB,IAKjBA,GAAmB5v5B,KAAKi+4B,YACzBj+4B,KAAK6q5B,YAAY1k5B,MAAM+yiB,OAASl5iB,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,QAEpE,IAAIA,EAASl5iB,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAChC+rJ,EAASx7mB,GAAO,CAAC,EAAGzpF,KAAK2+4B,UAAW,CAAC,GAAG,GAC5C3+4B,KAAKuk5B,kBAAoBt/M,EAAOmxN,UAChC,IAAI5hK,OAAS,GAETA,EADuB,IAAvBvvD,EAAOy+N,YACE1j6B,KAAKw0vB,OAGLx0vB,KAAKw0vB,OAASvvD,EAAOy+N,aAErB,IACTlvK,EAAS,IAAMA,GAEft6uB,GAAM+qrB,EAAOs2N,cAAc9zjB,OAAyC,EAA9Bw9V,EAAOs2N,cAAc/4oB,QAC3DtoQ,GAAM+qrB,EAAOs2N,cAAc9zjB,OAAyC,EAA9Bw9V,EAAOs2N,cAAc/4oB,QAC3DroQ,GAAM8qrB,EAAOs2N,cAAc7zjB,OAAyC,EAA9Bu9V,EAAOs2N,cAAc/4oB,QAC3DroQ,GAAM8qrB,EAAOs2N,cAAc7zjB,OAAyC,EAA9Bu9V,EAAOs2N,cAAc/4oB,OAC3DxiR,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,YAE3Bh/hB,GAAM+qrB,EAAOwmO,gBAAgBhkkB,OAAyC,EAA9Bw9V,EAAOs2N,cAAc/4oB,QAClEtoQ,GAAM+qrB,EAAOwmO,gBAAgBhkkB,OAAyC,EAA9Bw9V,EAAOs2N,cAAc/4oB,QAC7DroQ,GAAM8qrB,EAAOwmO,gBAAgB/jkB,OAAyC,EAA9Bu9V,EAAOs2N,cAAc/4oB,QAC7DroQ,GAAM8qrB,EAAOwmO,gBAAgB/jkB,OAAyC,EAA9Bu9V,EAAOs2N,cAAc/4oB,OAC7DxiR,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,WAE3Bh/hB,GAAM+qrB,EAAO6mO,eAAerkkB,OAAyC,EAA9Bw9V,EAAOs2N,cAAc/4oB,QACjEtoQ,GAAM+qrB,EAAO6mO,eAAerkkB,OAAyC,EAA9Bw9V,EAAOs2N,cAAc/4oB,QAC5DroQ,GAAM8qrB,EAAO6mO,eAAepkkB,OAAyC,EAA9Bu9V,EAAOs2N,cAAc/4oB,QAC5DroQ,GAAM8qrB,EAAO6mO,eAAepkkB,OAAyC,EAA9Bu9V,EAAOs2N,cAAc/4oB,OAC5DxiR,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,YAE3Bh/hB,GAAM+qrB,EAAO2mO,iBAAiBnkkB,OAAyC,EAA9Bw9V,EAAOs2N,cAAc/4oB,QACnEtoQ,GAAM+qrB,EAAO2mO,iBAAiBnkkB,OAAyC,EAA9Bw9V,EAAOs2N,cAAc/4oB,QAC9DroQ,GAAM8qrB,EAAO2mO,iBAAiBlkkB,OAAyC,EAA9Bu9V,EAAOs2N,cAAc/4oB,QAC9DroQ,GAAM8qrB,EAAO2mO,iBAAiBlkkB,OAAyC,EAA9Bu9V,EAAOs2N,cAAc/4oB,OAC9DxiR,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,WAE3Bh/hB,GAAM+qrB,EAAO4mO,kBAAkBpkkB,OAAyC,EAA9Bw9V,EAAOs2N,cAAc/4oB,QACpEtoQ,GAAM+qrB,EAAO4mO,kBAAkBpkkB,OAAyC,EAA9Bw9V,EAAOs2N,cAAc/4oB,QAC/DroQ,GAAM8qrB,EAAO4mO,kBAAkBnkkB,OAAyC,EAA9Bu9V,EAAOs2N,cAAc/4oB,QAC/DroQ,GAAM8qrB,EAAO4mO,kBAAkBnkkB,OAAyC,EAA9Bu9V,EAAOs2N,cAAc/4oB,OAC/DxiR,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,WAE3Bh/hB,GAAM+qrB,EAAO8mO,iBAAiBtkkB,OAAyC,EAA9Bw9V,EAAOs2N,cAAc/4oB,QACnEtoQ,GAAM+qrB,EAAO8mO,iBAAiBtkkB,OAAyC,EAA9Bw9V,EAAOs2N,cAAc/4oB,QAC9DroQ,GAAM8qrB,EAAO8mO,iBAAiBrkkB,OAAyC,EAA9Bu9V,EAAOs2N,cAAc/4oB,QAC9DroQ,GAAM8qrB,EAAO8mO,iBAAiBrkkB,OAAyC,EAA9Bu9V,EAAOs2N,cAAc/4oB,OAC9DxiR,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,YAE3Bh/hB,GAAM+qrB,EAAO0mO,mBAAmBlkkB,OAAyC,EAA9Bw9V,EAAOs2N,cAAc/4oB,QACrEtoQ,GAAM+qrB,EAAO0mO,mBAAmBlkkB,OAAyC,EAA9Bw9V,EAAOs2N,cAAc/4oB,QAChEroQ,GAAM8qrB,EAAO0mO,mBAAmBjkkB,OAAyC,EAA9Bu9V,EAAOs2N,cAAc/4oB,QAChEroQ,GAAM8qrB,EAAO0mO,mBAAmBjkkB,OAAyC,EAA9Bu9V,EAAOs2N,cAAc/4oB,OAChExiR,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,WAE3Bh/hB,GAAM+qrB,EAAO+mO,kBAAkBvkkB,OAAyC,EAA9Bw9V,EAAOs2N,cAAc/4oB,QACpEtoQ,GAAM+qrB,EAAO+mO,kBAAkBvkkB,OAAyC,EAA9Bw9V,EAAOs2N,cAAc/4oB,QAC/DroQ,GAAM8qrB,EAAO+mO,kBAAkBtkkB,OAAyC,EAA9Bu9V,EAAOs2N,cAAc/4oB,QAC/DroQ,GAAM8qrB,EAAO+mO,kBAAkBtkkB,OAAyC,EAA9Bu9V,EAAOs2N,cAAc/4oB,OAC/DxiR,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,YAE1Bh/hB,GAAK+qrB,EAAO25M,YAAYn3iB,QAC9BvtV,GAAK+qrB,EAAO25M,YAAYzB,MAAUhj4B,GAAK8qrB,EAAO25M,YAAYl3iB,QAC1DvtV,GAAK8qrB,EAAO25M,YAAYxB,KAEpBp94B,KAAKyq5B,YAAYtk5B,MAAM+yiB,OADvB02W,EACgC,OAGA,QAIhC5v5B,KAAKi/4B,YAAYM,eACjBv/4B,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,aAEpCl5iB,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,WAEf,UAAjB+rJ,EAAOz5jB,OAAsC,SAAjBy5jB,EAAOz5jB,QAC/BgpnB,EAAS,KAAO,GAAKA,EAAS,MAAQ,EACA,cAAlCx0vB,KAAKyq5B,YAAYtk5B,MAAM+yiB,QAA4D,cAAlCl5iB,KAAKyq5B,YAAYtk5B,MAAM+yiB,OACpEh/hB,GAAM+qrB,EAAO0mO,mBAAmBlkkB,OAAyC,EAA9Bw9V,EAAOs2N,cAAc/4oB,QAChEtoQ,GAAM+qrB,EAAO0mO,mBAAmBlkkB,OAAyC,EAA9Bw9V,EAAOs2N,cAAc/4oB,QAChEroQ,GAAM8qrB,EAAO0mO,mBAAmBjkkB,OAAyC,EAA9Bu9V,EAAOs2N,cAAc/4oB,QAChEroQ,GAAM8qrB,EAAO0mO,mBAAmBjkkB,OAAyC,EAA9Bu9V,EAAOs2N,cAAc/4oB,SAChExiR,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,YAGG,cAAlCl5iB,KAAKyq5B,YAAYtk5B,MAAM+yiB,QAA4D,cAAlCl5iB,KAAKyq5B,YAAYtk5B,MAAM+yiB,QACzEh/hB,GAAM+qrB,EAAOwmO,gBAAgBhkkB,OAAyC,EAA9Bw9V,EAAOs2N,cAAc/4oB,QAC7DtoQ,GAAM+qrB,EAAOwmO,gBAAgBhkkB,OAAyC,EAA9Bw9V,EAAOs2N,cAAc/4oB,QAC7DroQ,GAAM8qrB,EAAOwmO,gBAAgB/jkB,OAAyC,EAA9Bu9V,EAAOs2N,cAAc/4oB,QAC7DroQ,GAAM8qrB,EAAOwmO,gBAAgB/jkB,OAAyC,EAA9Bu9V,EAAOs2N,cAAc/4oB,SAC7DxiR,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,YAKF,cAAlCl5iB,KAAKyq5B,YAAYtk5B,MAAM+yiB,QAA4D,cAAlCl5iB,KAAKyq5B,YAAYtk5B,MAAM+yiB,OACpEh/hB,GAAM+qrB,EAAO2mO,iBAAiBnkkB,OAAyC,EAA9Bw9V,EAAOs2N,cAAc/4oB,QAC9DtoQ,GAAM+qrB,EAAO2mO,iBAAiBnkkB,OAAyC,EAA9Bw9V,EAAOs2N,cAAc/4oB,QAC9DroQ,GAAM8qrB,EAAO2mO,iBAAiBlkkB,OAAyC,EAA9Bu9V,EAAOs2N,cAAc/4oB,QAC9DroQ,GAAM8qrB,EAAO2mO,iBAAiBlkkB,OAAyC,EAA9Bu9V,EAAOs2N,cAAc/4oB,SAC9DxiR,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,YAGG,cAAlCl5iB,KAAKyq5B,YAAYtk5B,MAAM+yiB,QAA4D,cAAlCl5iB,KAAKyq5B,YAAYtk5B,MAAM+yiB,QACzEh/hB,GAAM+qrB,EAAO4mO,kBAAkBpkkB,OAAyC,EAA9Bw9V,EAAOs2N,cAAc/4oB,QAC/DtoQ,GAAM+qrB,EAAO4mO,kBAAkBpkkB,OAAyC,EAA9Bw9V,EAAOs2N,cAAc/4oB,QAC/DroQ,GAAM8qrB,EAAO4mO,kBAAkBnkkB,OAAyC,EAA9Bu9V,EAAOs2N,cAAc/4oB,QAC/DroQ,GAAM8qrB,EAAO4mO,kBAAkBnkkB,OAAyC,EAA9Bu9V,EAAOs2N,cAAc/4oB,SAC/DxiR,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,YAIN,cAAlCl5iB,KAAKyq5B,YAAYtk5B,MAAM+yiB,QAA4D,cAAlCl5iB,KAAKyq5B,YAAYtk5B,MAAM+yiB,QACtC,cAAlCl5iB,KAAKyq5B,YAAYtk5B,MAAM+yiB,QAA4D,cAAlCl5iB,KAAKyq5B,YAAYtk5B,MAAM+yiB,SACxEl5iB,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,QAEhCs7M,EAAS,KAAO,GAAKA,EAAS,MAAQ,EACA,aAAlCx0vB,KAAKyq5B,YAAYtk5B,MAAM+yiB,QAA2D,aAAlCl5iB,KAAKyq5B,YAAYtk5B,MAAM+yiB,SACvEl5iB,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,QAIE,aAAlCl5iB,KAAKyq5B,YAAYtk5B,MAAM+yiB,QAA2D,aAAlCl5iB,KAAKyq5B,YAAYtk5B,MAAM+yiB,SACvEl5iB,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,SAI7B,YAAXA,GAA0D,YAAlCl5iB,KAAKyq5B,YAAYtk5B,MAAM+yiB,QAAwB02W,IACvE5v5B,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,QAErB,SAAXA,GAAuD,YAAlCl5iB,KAAKyq5B,YAAYtk5B,MAAM+yiB,SAC5Cl5iB,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,OAExC,MACSl5iB,KAAKi+4B,YAAcj+4B,KAAKs+4B,UAC7Bt+4B,KAAK6q5B,YAAY1k5B,MAAM+yiB,OAASl5iB,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,OAG5Dl5iB,KAAKi/4B,YAAYM,cAAgBv/4B,KAAKs+4B,UACtCt+4B,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,YAGhCl5iB,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,UAGxC,GAAsC,YAAlCl5iB,KAAKyq5B,YAAYtk5B,MAAM+yiB,QAA0D,SAAlCl5iB,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAmB,CACrFA,EAASl5iB,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAChCl5iB,KAAKu94B,QAAQn64B,OAAS,IAAwC,SAAlCpD,KAAKyq5B,YAAYtk5B,MAAM+yiB,SAAsB02W,IACzE5v5B,KAAKwv6B,iBAAiBt15B,EAAGC,EAAGna,KAAKu94B,SAEtB,SAAXrkW,GAAuD,YAAlCl5iB,KAAKyq5B,YAAYtk5B,MAAM+yiB,SAC5Cl5iB,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,OAExC,CACuC,YAAlCl5iB,KAAKyq5B,YAAYtk5B,MAAM+yiB,QAA0D,SAAlCl5iB,KAAKyq5B,YAAYtk5B,MAAM+yiB,QACnEntO,GAAkB/rU,KAAKi9d,UAAU,KAA0C,SAAlCj9d,KAAKyq5B,YAAYtk5B,MAAM+yiB,QAAsB02W,GAC1F5v5B,KAAKyv6B,4BAA4Bv15B,EAAGC,EAE5C,EACAwi4B,EAAYhs4B,UAAU8+5B,4BAA8B,SAAUv15B,EAAGC,GAC7D,IAEIss5B,EAFAiJ,GAAY,EAChB1v6B,KAAKm35B,0BAA4B,EAEjC,IAAK,IAAIn15B,EAAI,EAAGA,EAAIhC,KAAK6i5B,gBAAiB7g5B,IAAK,CAC3Cyk6B,EAAUh90B,GAAO,GAAIzpF,KAAK0k5B,aAAa1i5B,GAAGw9d,OAAQ,IAClDx/d,KAAKw/d,OAAS/1Y,GAAO,GAAIzpF,KAAKi9d,UAAUj7d,GAAGw9d,OAAQ,IACnDx/d,KAAK4i5B,aAAe,EAEpB,IADA,IAAIjz1B,EAAM822B,EAAQrj6B,OACTi8B,EAAI,EAAGA,EAAIswB,EAAKtwB,IACrB,GAAU,IAANA,EAAS,CACT,IAAIu/3B,GAAW,EAIf,GAHK7ylB,GAAkB06lB,EAAQpn4B,EAAI,KAAQ0sS,GAAkB06lB,EAAQpn4B,MACjEu/3B,EAAW5+5B,KAAK4+5B,SAAS1k5B,EAAGC,EAAGss5B,EAAQpn4B,EAAI,GAAGnlB,EAAGus5B,EAAQpn4B,EAAI,GAAGllB,EAAGss5B,EAAQpn4B,GAAGnlB,EAAGus5B,EAAQpn4B,GAAGllB,IAE5Fyk5B,EAAU,CACV5+5B,KAAKgi5B,wBAAyB,EAC9Bhi5B,KAAKm35B,yBAA2Bn15B,EAChChC,KAAKg95B,mBACLh95B,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,UAChCw2X,GAAY,EACZ,KACJ,CACK,IAAK1v6B,KAAKii5B,uBAAyBji5B,KAAKi9d,UAAUj7d,GAAG25b,WAAY,CAKlE,GAJA37b,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,QACtEmjL,GAAkB/rU,KAAK2+4B,UAAUnzwB,QAA0C,SAAhCxrI,KAAKmr5B,SAAShl5B,MAAMi+J,SAChEpkK,KAAKu25B,WAAW,YAAav25B,KAAK2+4B,WAElC3+4B,KAAKii5B,sBAAuB,CAC5B,IAAIxkb,EAAcz9d,KAAKi9d,UAAUj7d,GAAGy7d,YACpCz9d,KAAKg95B,iBAAiBv/b,EAAaz9d,KAAKi9d,UAAUj7d,GAAGotI,YACzD,MAEIpvI,KAAKm35B,yBAA2B,KAEpCn35B,KAAKgi5B,wBAAyB,CAClC,CACJ,KACK,CACD,GAAI9n4B,EAAIla,KAAKw/d,OAAOngc,GAAGnlB,EAAIla,KAAKi9d,UAAUj7d,GAAGotI,aACzCl1H,EAAIla,KAAKw/d,OAAOngc,GAAGnlB,EAAIla,KAAKi9d,UAAUj7d,GAAGotI,aACzCj1H,EAAIna,KAAKw/d,OAAOngc,GAAGllB,EAAIna,KAAKi9d,UAAUj7d,GAAGotI,aACzCj1H,EAAIna,KAAKw/d,OAAOngc,GAAGllB,EAAIna,KAAKi9d,UAAUj7d,GAAGotI,YAAa,CACtDpvI,KAAKgi5B,wBAAyB,EAC9Bhi5B,KAAKm35B,yBAA2Bn15B,EAChChC,KAAKg95B,mBACLh95B,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,UAChCw2X,GAAY,EACZ,KACJ,CACK,IAAK1v6B,KAAKii5B,uBAAyBji5B,KAAKi9d,UAAUj7d,GAAG25b,WAAY,CAKlE,GAJA37b,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,QACtEmjL,GAAkB/rU,KAAK2+4B,UAAUnzwB,QAA0C,SAAhCxrI,KAAKmr5B,SAAShl5B,MAAMi+J,SAChEpkK,KAAKu25B,WAAW,YAAav25B,KAAK2+4B,WAElC3+4B,KAAKii5B,sBAAuB,CACxBxkb,EAAcz9d,KAAKi9d,UAAUj7d,GAAGy7d,YACpCz9d,KAAKg95B,iBAAiBv/b,EAAaz9d,KAAKi9d,UAAUj7d,GAAGotI,YACzD,CACApvI,KAAKgi5B,wBAAyB,CAClC,CACJ,CAEJ,GAAI0tB,EACA,KAER,CACJ,EACA/yB,EAAYhs4B,UAAU6+5B,iBAAmB,SAAUt15B,EAAGC,EAAGtJ,GACrD,IAAK,IAAI1E,EAAI,EAAGA,EAAI0E,EAAIzN,OAAQ+I,IAAK,CACjC,IAAI84rB,EAASx7mB,GAAO,CAAC,EAAG54E,EAAI1E,GAAI,CAAC,GAAG,GAEpC,GADAnM,KAAKuk5B,kBAAoBt/M,EAAOmxN,UAC5Bl84B,GAAM+qrB,EAAOs2N,cAAc9zjB,QAC3BvtV,GAAM+qrB,EAAOs2N,cAAc9zjB,QAC3BttV,GAAM8qrB,EAAOs2N,cAAc7zjB,QAC3BvtV,GAAM8qrB,EAAOs2N,cAAc7zjB,OAAS,CACpC1nW,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,YAChC,KACJ,CACK,GAAIh/hB,GAAM+qrB,EAAOwmO,gBAAgBhkkB,QAClCvtV,GAAM+qrB,EAAOwmO,gBAAgBhkkB,QAC7BttV,GAAM8qrB,EAAOwmO,gBAAgB/jkB,QAC7BvtV,GAAM8qrB,EAAOwmO,gBAAgB/jkB,OAAS,CACtC1nW,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,WAChC,KACJ,CACK,GAAIh/hB,GAAM+qrB,EAAO6mO,eAAerkkB,QACjCvtV,GAAM+qrB,EAAO6mO,eAAerkkB,QAC5BttV,GAAM8qrB,EAAO6mO,eAAepkkB,QAC5BvtV,GAAM8qrB,EAAO6mO,eAAepkkB,OAAS,CACrC1nW,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,YAChC,KACJ,CACK,GAAIh/hB,GAAM+qrB,EAAO2mO,iBAAiBnkkB,QACnCvtV,GAAM+qrB,EAAO2mO,iBAAiBnkkB,QAC9BttV,GAAM8qrB,EAAO2mO,iBAAiBlkkB,QAC9BvtV,GAAM8qrB,EAAO2mO,iBAAiBlkkB,OAAS,CACvC1nW,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,WAChC,KACJ,CACK,GAAIh/hB,GAAM+qrB,EAAO4mO,kBAAkBpkkB,QACpCvtV,GAAM+qrB,EAAO4mO,kBAAkBpkkB,QAC/BttV,GAAM8qrB,EAAO4mO,kBAAkBnkkB,QAC/BvtV,GAAM8qrB,EAAO4mO,kBAAkBnkkB,OAAS,CACxC1nW,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,WAChC,KACJ,CACK,GAAIh/hB,GAAM+qrB,EAAO8mO,iBAAiBtkkB,QACnCvtV,GAAM+qrB,EAAO8mO,iBAAiBtkkB,QAC9BttV,GAAM8qrB,EAAO8mO,iBAAiBrkkB,QAC9BvtV,GAAM8qrB,EAAO8mO,iBAAiBrkkB,OAAS,CACvC1nW,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,YAChC,KACJ,CACK,GAAIh/hB,GAAM+qrB,EAAO0mO,mBAAmBlkkB,QACrCvtV,GAAM+qrB,EAAO0mO,mBAAmBlkkB,QAChCttV,GAAM8qrB,EAAO0mO,mBAAmBjkkB,QAChCvtV,GAAM8qrB,EAAO0mO,mBAAmBjkkB,OAAS,CACzC1nW,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,WAChC,KACJ,CACK,GAAIh/hB,GAAM+qrB,EAAO+mO,kBAAkBvkkB,QACpCvtV,GAAM+qrB,EAAO+mO,kBAAkBvkkB,QAC/BttV,GAAM8qrB,EAAO+mO,kBAAkBtkkB,QAC/BvtV,GAAM8qrB,EAAO+mO,kBAAkBtkkB,OAAS,CACxC1nW,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,YAChC,KACJ,CACK,GAAKh/hB,GAAK+qrB,EAAO25M,YAAYn3iB,QAC9BvtV,GAAK+qrB,EAAO25M,YAAYzB,MAAUhj4B,GAAK8qrB,EAAO25M,YAAYl3iB,QAC1DvtV,GAAK8qrB,EAAO25M,YAAYxB,KAAO,CAC/Bp94B,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,OAChC,KACJ,CAEQl5iB,KAAKi/4B,YAAYM,eACjBv/4B,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,aAEpCl5iB,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,SAExC,CACJ,EACAyjW,EAAYhs4B,UAAUiu5B,SAAW,SAAU1k5B,EAAGC,EAAGw15B,EAAIC,EAAIC,EAAIC,GACzD,IAAIjvR,EAAKj9oB,KAAKgmD,IAAI+l3B,EAAIE,GAClB9uR,EAAKn9oB,KAAKqpC,IAAI0i4B,EAAIE,GAClB/uR,EAAKl9oB,KAAKgmD,IAAIgm3B,EAAIE,GAClB9uR,EAAKp9oB,KAAKqpC,IAAI2i4B,EAAIE,GACtB,OAAKjvR,GAAM3moB,GAAKA,GAAK6moB,GAAQD,GAAM3moB,GAAKA,GAAK6moB,CAMjD,EACA27P,EAAYhs4B,UAAU+/4B,mBAAqB,SAAUplvB,GACjD,IAAIygK,GAAkBzgK,GAAtB,CAGA,IAAInsC,EAAajuG,SAAS0I,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,kBAC3D41S,GAAkB5sM,KACfmsC,GACAnsC,EAAW+oJ,UAAU90P,IAAI,cACzB+rG,EAAW02J,cAAc3N,UAAU90P,IAAI,eAGvC+rG,EAAW+oJ,UAAU/0P,OAAO,cAC5BgsG,EAAW02J,cAAc3N,UAAU/0P,OAAO,cAE9C85T,GAAa9tN,EAAY,gBAAgBvwH,SAAW08J,GAExD,IAAI/yG,EAAYrnC,SAAS0I,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,iBAC1D41S,GAAkBxzQ,KACf+yG,GACA/yG,EAAU2vN,UAAU90P,IAAI,cACxBmlC,EAAUs9N,cAAc3N,UAAU90P,IAAI,eAGtCmlC,EAAU2vN,UAAU/0P,OAAO,cAC3BolC,EAAUs9N,cAAc3N,UAAU/0P,OAAO,cAE7C85T,GAAa10R,EAAW,gBAAgB3pD,SAAW08J,GAEvD,IAAIuqvB,EAAa3k4B,SAAS0I,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,eAC3D41S,GAAkB8plB,KACfvqvB,GACAuqvB,EAAW3toB,UAAU90P,IAAI,cACzByi4B,EAAWhgoB,cAAc3N,UAAU90P,IAAI,eAGvCyi4B,EAAW3toB,UAAU/0P,OAAO,cAC5B0i4B,EAAWhgoB,cAAc3N,UAAU/0P,OAAO,cAE9C85T,GAAa4okB,EAAY,OAAOjn5B,SAAW08J,GAE/C,IAAIllK,EAAS8qB,SAAS0I,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,WACvD41S,GAAkB3lU,KACfklK,GACAllK,EAAO8hR,UAAU90P,IAAI,cACrBhtB,EAAOyvR,cAAc3N,UAAU90P,IAAI,eAGnChtB,EAAO8hR,UAAU/0P,OAAO,cACxB/sB,EAAOyvR,cAAc3N,UAAU/0P,OAAO,cAE1C85T,GAAa7mV,EAAQ,OAAOwI,SAAW08J,EA/C3C,CAiDJ,EACAqxuB,EAAYhs4B,UAAUo/5B,YAAc,SAAUhsc,EAAM5F,GAChD,IAAIlod,EAAIib,SAASpwB,cAAc,KAC/BmV,EAAEkyC,KAAO47a,EACT9td,EAAE5N,OAAS,UACX4N,EAAE6td,SAAW3F,GACZjtc,SAASzd,MAAQyd,SAASuE,iBAAiB/D,YAAYzb,GACxDA,EAAE+sQ,QACF/sQ,EAAEue,WAAWW,YAAYlf,EAC7B,EACA0m4B,EAAYhs4B,UAAUq/5B,SAAW,SAAU7xc,GACvCxsD,GAAY3xa,KAAKmV,SACjBnV,KAAKmV,QAAQhP,MAAMmoI,QAAU,MAC7B,IAAIw2V,EAAa9ke,KAAKiw6B,wBAClBtvf,EAAUmkD,EAAWhC,YACzBpwD,GAAY1ya,KAAKmV,SACjBnV,KAAKmV,QAAQhP,MAAMmoI,QAAU,IAC7B,IAAInuG,EAAMjP,SAASmxI,gBAAgB,6BAA8B,OACjEliI,EAAInL,aAAa,QAAS8vc,EAAW3+d,MAAM2wH,UAC3C32F,EAAInL,aAAa,SAAU8vc,EAAW3+d,MAAMy/b,WAC5C,IACI9jT,EAAM5wH,SAASmxI,gBAAgB,6BAA8B,SACjEvgB,EAAIv2G,eAAe,KAAM,SAAUu5b,EAAWl8U,OAAO9xI,YACrDgrI,EAAIv2G,eAAe,KAAM,QAASu5b,EAAWtmd,MAAM1H,YACnDgrI,EAAIv2G,eAJU,+BAIc,aAAco1Y,GAC1CxgZ,EAAIzO,YAAYowH,GAChB,IACI4sC,EAAS,6FACQo2S,EAAWtmd,MADnB,aACmDsmd,EAAWl8U,OAD9D,KAGTn1I,EAAO0sB,EAAI+I,UAEXs8b,EANS,6BAMa1kW,KADf4tD,EAASj7K,EAFP,UAIb,OAAiB,OAAb0qd,EACOqH,GAGPxle,KAAK+v6B,YAAYvqc,EAAYrH,UACtB,KAEf,EACAw+a,EAAYhs4B,UAAUu/5B,SAAW,SAAU/xc,EAAUvxd,GAEjD,IAAIo5L,EAAQhmM,KACZ2xa,GAAY3xa,KAAKmV,SACjBnV,KAAKmV,QAAQhP,MAAMmoI,QAAU,MACZtuI,KAAKiw6B,wBAEXE,QAAO,SAAUpsc,GACxB,IAAIC,EAAUxqW,IAAIyqW,gBAAgBF,GAClC/9R,EAAM+puB,YAAY/rc,EAAS7F,EAAW,IAAMvxd,GAC5C8la,GAAY1sO,EAAM7wL,SAClB6wL,EAAM7wL,QAAQhP,MAAMmoI,QAAU,GAClC,GAAG,YACP,EACAquwB,EAAYhs4B,UAAUs/5B,sBAAwB,WAC1C,IAUIlP,EAVAH,EAAQ5g6B,KAAK6/5B,YACbuQ,EAAoBpw6B,KAAK4p5B,aAAaxj5B,OAE1C,GAAiC,SAA7BpG,KAAK4p5B,aAAaxj5B,OAAmB,CACrC,IAAIup5B,EAAa3v5B,KAAK4p5B,aAAaxj5B,OAAOusB,MAAM,KAC5C/wB,EAAQ8uC,WAAWi/2B,EAAW,GAAGh93B,MAAM,KAAK,IAChD/wB,IAAWg/5B,EAAMpi5B,MAAQoi5B,EAAMh4wB,QAAU,EACzC+mwB,EAAW,GAAK,QAAU/t5B,EAAQ,MAClC5B,KAAK4p5B,aAAaxj5B,OAASup5B,EAAW3p5B,KAAK,IAC/C,CAEA,IAAI8+d,EAAa9ke,KAAKc,cAAc,SAAU,CAC1Cq1B,GAAIn2B,KAAKmV,QAAQghB,GAAK,cAAeszT,MAAO,CAAE/kV,KAAM,iBAEpD2r6B,EAAcvrc,EAAWnI,WAAW,MAExC,GADA0zc,EAAYjq6B,OAASpG,KAAK4p5B,aAAaxj5B,OACnC2lU,GAAkB/rU,KAAKyw5B,oBAAqB,CAC5C3rb,EAAWtmd,MAAQxe,KAAK2r5B,QAAQnt4B,MAChCsmd,EAAWl8U,OAAS5oJ,KAAK2r5B,QAAQ/iwB,OACjCm4wB,EAAe/g6B,KAAKgh6B,iBAAiBhh6B,KAAK2r5B,QAAQnt4B,MAAOxe,KAAK2r5B,QAAQ/iwB,QACtEk8U,EAAW3+d,MAAM2wH,SAAWiqyB,EAAavi5B,MAAQ,KACjDsmd,EAAW3+d,MAAMy/b,UAAYm7d,EAAan4wB,OAAS,KACnDynxB,EAAYjq6B,OAASpG,KAAK4p5B,aAAaxj5B,OACvC,IAAIsmF,EAAO1sF,KAAK4p5B,aAAaxj5B,OAC7BpG,KAAKq45B,yBACLgY,EAAYrxc,UAAUh/d,KAAK2r5B,QAAS3r5B,KAAKmh5B,QAASnh5B,KAAKoh5B,OAAQph5B,KAAKu55B,SAAUv55B,KAAKw55B,UAAW,EAAG,EAAGx55B,KAAK2r5B,QAAQnt4B,MAAOxe,KAAK2r5B,QAAQ/iwB,QACrI5oJ,KAAK4p5B,aAAaxj5B,OAASsmF,CAC/B,KACK,CACDo4Y,EAAWtmd,MAAQxe,KAAKm05B,UACxBrvb,EAAWl8U,OAAS5oJ,KAAKo05B,WACzBic,EAAYjq6B,OAASpG,KAAK4p5B,aAAaxj5B,OACnCsmF,EAAO1sF,KAAK4p5B,aAAaxj5B,OAC7BpG,KAAKq45B,yBACLgY,EAAYrxc,UAAUh/d,KAAK2r5B,QAAS3r5B,KAAKmh5B,QAASnh5B,KAAKoh5B,OAAQph5B,KAAKu55B,SAAUv55B,KAAKw55B,UAAW,EAAG,EAAGx55B,KAAKm05B,UAAWn05B,KAAKo05B,YACzHp05B,KAAK4p5B,aAAaxj5B,OAASsmF,CAC/B,CAKA,GAJoB,IAAhB1sF,KAAKw0vB,QAAuC,KAAvBx0vB,KAAKm+4B,gBAC1Bn+4B,KAAKsw6B,kBAAkBD,GACvBrw6B,KAAKuw6B,uBAAuBF,IAE5Brw6B,KAAKu94B,QAAQn64B,OAAS,EAAG,CACrBspF,EAAO2j1B,EAAYjq6B,OACvBiq6B,EAAYjq6B,OAAS,OAErB,IADA,IAAI235B,EAAct00B,GAAO,GAAIzpF,KAAKu94B,QAAS,IAAI,GACtCpx4B,EAAI,EAAGA,EAAInM,KAAKu94B,QAAQn64B,OAAQ+I,IAErCnM,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYn3iB,QAAUznW,KAAKih5B,SAC3Cjh5B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYl3iB,QAAU1nW,KAAKkh5B,QAC3Clh5B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYzB,MAAQn94B,KAAKih5B,SACzCjh5B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYxB,MAAQp94B,KAAKkh5B,QACzClh5B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYpg4B,MAAQxe,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYzB,KAC5Dn94B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYn3iB,OAChCznW,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYh2vB,OAAS5oJ,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYxB,KAC7Dp94B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYl3iB,OAE5B37B,GAAkB/rU,KAAKyw5B,sBACvBzw5B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYn3iB,QAAUm5jB,EAAMpi5B,MAC5Cxe,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYl3iB,QAAUk5jB,EAAMh4wB,OAC5C5oJ,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYzB,MAAQyjB,EAAMpi5B,MAC1Cxe,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYxB,MAAQwjB,EAAMh4wB,OAC1C5oJ,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYpg4B,MAAQxe,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYzB,KAC5Dn94B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYn3iB,OAChCznW,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYh2vB,OAAS5oJ,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYxB,KAC7Dp94B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYl3iB,OAChC1nW,KAAKu94B,QAAQpx4B,GAAGux4B,eAAetuwB,cAAiBwxxB,EAAMpi5B,MAAQoi5B,EAAMh4wB,QAAU,EAChD,SAA1B5oJ,KAAKu94B,QAAQpx4B,GAAGq/H,QAChBxrI,KAAKu94B,QAAQpx4B,GAAG0x4B,aAAa5+lB,WAAc2hnB,EAAMpi5B,MAAQoi5B,EAAMh4wB,QAAU,IAGjF5oJ,KAAKu25B,WAAW,cAAev25B,KAAKu94B,QAAQpx4B,GAAI,KAAM,MAAM,EAAMkk6B,GAEtEA,EAAYjq6B,OAASsmF,EACrB1sF,KAAK6v5B,mBACL7v5B,KAAKu94B,QAAUwgB,CACnB,CACA,GAAI/95B,KAAK6i5B,gBAAkB,EAAG,CAG1B,IADA,IAAI6V,EAAgBjv0B,GAAO,CAAC,EAAGzpF,KAAKi9d,UAAW,CAAC,GAAG,GAC1Cj7d,EAAI,EAAGA,EAAIhC,KAAK6i5B,gBAAiB7g5B,IAAK,CAC3ChC,KAAKw/d,OAAS/1Y,GAAO,GAAIzpF,KAAKi9d,UAAUj7d,GAAGw9d,OAAQ,IACnDx/d,KAAK4i5B,aAAe,EACpB,IAAIjz1B,EAAM3vD,KAAKw/d,OAAOp8d,OACtB,GAAI2oU,GAAkB/rU,KAAKyw5B,oBAAqB,CAC5Czw5B,KAAKi9d,UAAUj7d,GAAGotI,cAAiBwxxB,EAAMpi5B,MAAQoi5B,EAAMh4wB,QAAU,EACjE,IAAK,IAAIvpH,EAAI,EAAGA,EAAIswB,EAAKtwB,IACrBr/B,KAAKw/d,OAAOngc,GAAGnlB,GAAKla,KAAKw/d,OAAOngc,GAAGnlB,EAAIla,KAAKih5B,UAAY2f,EAAMpi5B,MAC9Dxe,KAAKw/d,OAAOngc,GAAGllB,GAAKna,KAAKw/d,OAAOngc,GAAGllB,EAAIna,KAAKkh5B,SAAW0f,EAAMh4wB,MAErE,MAEI,IAASvpH,EAAI,EAAGA,EAAIswB,EAAKtwB,IACrBr/B,KAAKw/d,OAAOngc,GAAGnlB,GAAKla,KAAKih5B,SACzBjh5B,KAAKw/d,OAAOngc,GAAGllB,GAAKna,KAAKkh5B,OAGrC,CACAlh5B,KAAK+35B,eAAesY,GACpBrw6B,KAAKi9d,UAAYy7b,CACrB,CAKA,OAJI145B,KAAK6h5B,cACL7h5B,KAAKy55B,WAAW4W,GAAa,GAEjCrw6B,KAAK4p5B,aAAaxj5B,OAASgq6B,EACpBtrc,CACX,EACA63a,EAAYhs4B,UAAU4/5B,uBAAyB,SAAUF,GAErD,IADA,IAAI77K,EAASx0vB,KAAKw0vB,OACTrovB,EAAI,EAAGA,EAAInM,KAAK2h5B,eAAev+4B,OAAQ+I,IACJ,kBAA5BnM,KAAK2h5B,eAAex14B,GAC5BnM,KAAKww6B,aAAaH,EAAarw6B,KAAK2h5B,eAAex14B,IAEnB,eAA3BnM,KAAK2h5B,eAAex14B,GACzBnM,KAAKyw6B,qBAAqBJ,GAEM,aAA3Brw6B,KAAK2h5B,eAAex14B,IACzBnM,KAAK0w6B,mBAAmBL,GAGhCrw6B,KAAKw0vB,OAASA,CAClB,EACAmoJ,EAAYhs4B,UAAU6/5B,aAAe,SAAUH,EAAa77K,GACpDzob,GAAkB/rU,KAAKyw5B,qBACvBzw5B,KAAKuv6B,oBAAoBvv6B,KAAKw0vB,OAAQ67K,EAAYzzc,QAClDyzc,EAAYv3X,UAAUu3X,EAAYzzc,OAAOp+c,MAAQ,EAAG6x5B,EAAYzzc,OAAOh0U,OAAS,GAChFynxB,EAAY//f,OAAO1sa,KAAKita,GAAK,IAAM2jV,GACnC67K,EAAYrxc,UAAUh/d,KAAK0r5B,eAAgB1r5B,KAAKmh5B,QAASnh5B,KAAKoh5B,OAAQph5B,KAAKu55B,SAAUv55B,KAAKw55B,WAAY6W,EAAYzzc,OAAOh0U,OAAS,GAAIynxB,EAAYzzc,OAAOp+c,MAAQ,EAAG6x5B,EAAYzzc,OAAOh0U,OAAQynxB,EAAYzzc,OAAOp+c,SAGlN6x5B,EAAYv3X,UAAUu3X,EAAYzzc,OAAOp+c,MAAQ,EAAG6x5B,EAAYzzc,OAAOh0U,OAAS,GAChFynxB,EAAY//f,OAAO1sa,KAAKita,GAAK,IAAM2jV,GACnC67K,EAAYrxc,UAAUh/d,KAAK0r5B,gBAAiB2kB,EAAYzzc,OAAOh0U,OAAS,GAAIynxB,EAAYzzc,OAAOp+c,MAAQ,EAAG6x5B,EAAYzzc,OAAOh0U,OAAQynxB,EAAYzzc,OAAOp+c,QAE5Jxe,KAAKsw6B,kBAAkBD,EAC3B,EACA1zB,EAAYhs4B,UAAU8/5B,qBAAuB,SAAUJ,GACnDA,EAAYv3X,UAAUu3X,EAAYzzc,OAAOp+c,MAAO,GAChD6x5B,EAAY9yc,OAAO,EAAG,GACtB8yc,EAAYrxc,UAAUh/d,KAAK0r5B,eAAgB,EAAG,GAC9C1r5B,KAAKsw6B,kBAAkBD,EAC3B,EACA1zB,EAAYhs4B,UAAU+/5B,mBAAqB,SAAUL,GACjDA,EAAYv3X,UAAU,EAAGu3X,EAAYzzc,OAAOh0U,QAC5CynxB,EAAY9yc,MAAM,GAAI,GACtB8yc,EAAYrxc,UAAUh/d,KAAK0r5B,eAAgB,EAAG,GAC9C1r5B,KAAKsw6B,kBAAkBD,EAC3B,EACA1zB,EAAYhs4B,UAAU2/5B,kBAAoB,SAAUD,GAChDA,EAAYhS,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,GACxC,IAAI11K,EAAY0nL,EAAYzqc,aAAa,EAAG,EAAGyqc,EAAYzzc,OAAOp+c,MAAO6x5B,EAAYzzc,OAAOh0U,QAC5F5oJ,KAAK0r5B,eAAelt4B,MAAQmquB,EAAUnquB,MACtCxe,KAAK0r5B,eAAe9iwB,OAAS+/lB,EAAU//lB,OACvC5oJ,KAAK6r5B,gBAAgBhmb,aAAa8iR,EAAW,EAAG,EACpD,EACAg0J,EAAYhs4B,UAAUgg6B,UAAY,SAAUtyyB,GACxC,GAAoC,SAAhCr+H,KAAKmr5B,SAAShl5B,MAAMi+J,UAAuBpkK,KAAKi/4B,YAAYx41B,QAAmC,SAAzBzmD,KAAK2+4B,UAAUnzwB,OAAmB,CACzF,cAAXnN,EACAr+H,KAAK884B,WAAa984B,KAAK884B,WAAWls4B,MAAM,GAAI,GAG5C5Q,KAAK884B,YAAcz+wB,EAEvBr+H,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,QAC3E5oJ,KAAKoz5B,mBACL,IAAI504B,EAAQxe,KAAK4o5B,aAAaoL,YAAYh05B,KAAK884B,WAAa984B,KAAK+84B,gBAAgBv+3B,MACpC,GAAvCxe,KAAK2+4B,UAAUd,aAAa5+lB,SAC9Br2J,EAAS5oJ,KAAK2+4B,UAAUd,aAAa5+lB,SAAkD,IAAvCj/S,KAAK2+4B,UAAUd,aAAa5+lB,SAChFj/S,KAAK4o5B,aAAalkb,SAAS1ke,KAAK884B,WAAa984B,KAAK+84B,eAAgB/84B,KAAK2+4B,UAAUC,YAAYn3iB,OAAQznW,KAAK2+4B,UAAUC,YAAYl3iB,OAC5H1nW,KAAK2+4B,UAAUd,aAAa5+lB,UAChCj/S,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,QAC3E5oJ,KAAKi/4B,YAAYx41B,QAAS,EAC1BzmD,KAAK8l6B,eAAetn5B,EAAOoqI,EAC/B,CACJ,EACA+zvB,EAAYhs4B,UAAUyi5B,iBAAmB,SAAUuX,GAC/C3q6B,KAAK4o5B,aAAarlb,YAAcvje,KAAK2+4B,UAAUjB,eAAejgb,YAC9Dz9d,KAAK4o5B,aAAaprb,UAAYx9d,KAAK2+4B,UAAUjB,eAAejgb,YAC5D,IAAIq2b,EAAY,GACZ9z5B,KAAK2+4B,UAAUd,aAAaztxB,OAC5B0jyB,EAAY,SAEZ9z5B,KAAK2+4B,UAAUd,aAAavtxB,SAC5BwjyB,EAAY,WAEZ9z5B,KAAK2+4B,UAAUd,aAAaztxB,MAAQpwH,KAAK2+4B,UAAUd,aAAavtxB,SAChEwjyB,EAAY,gBAEhB,IAAI70mB,EAAW0rnB,EAAYj63B,WAAW1wC,KAAKmr5B,SAAShl5B,MAAM84S,UAAYj/S,KAAK2+4B,UAAUd,aAAa5+lB,SAC9FujK,EAA6C,UAAhCxid,KAAKmr5B,SAAShl5B,MAAMi+J,QAAsBpkK,KAAKmr5B,SAAShl5B,MAAMq8c,WAAaxid,KAAK2+4B,UAAUd,aAAar7b,WACxHxid,KAAK4o5B,aAAarkb,KAAOuvb,EAAY70mB,EAAZ60mB,MAAoCtxc,CACjE,EACAm6b,EAAYhs4B,UAAUig6B,eAAiB,SAAU1F,EAAYzjkB,EAAQC,GAKjE,IAJA,IAAI0mO,EAAOpukB,KAAK2+4B,UAAU7B,WAAWnq3B,MAAM,MAEvC07G,GADSruI,KAAK2+4B,UAAUd,aAAa5+lB,SACbmvR,EAAKhrkB,OAAWpD,KAAK2+4B,UAAUd,aAAa5+lB,SAAWmvR,EAAKhrkB,QAAWgrkB,EAAKhrkB,OACpGoq6B,EAAiD,IAAvCxt6B,KAAK2+4B,UAAUd,aAAa5+lB,SAAmB5wK,EACpDliI,EAAI,EAAGA,EAAIiikB,EAAKhrkB,OAAQ+I,IAAK,CAClC,IAAI8zB,EAAOmuiB,EAAKjikB,GACZA,EAAI,IACM,IAANA,IACAqh6B,GAAkD,IAAvCxt6B,KAAK2+4B,UAAUd,aAAa5+lB,UAE3CuunB,GAAUxt6B,KAAK2+4B,UAAUd,aAAa5+lB,SAAkD,IAAvCj/S,KAAK2+4B,UAAUd,aAAa5+lB,UAEjFisnB,EAAWxmc,SAASzkc,EAAMwnU,EAAgD,IAAvCznW,KAAK2+4B,UAAUd,aAAa5+lB,SAAiByoD,EAC5E8lkB,GAAUrh6B,EAAI,EAA2C,IAAvCnM,KAAK2+4B,UAAUd,aAAa5+lB,SAA0D,KAAvCj/S,KAAK2+4B,UAAUd,aAAa5+lB,UACrG,CACJ,EACA09lB,EAAYhs4B,UAAU+85B,WAAa,SAAUxC,GACzC,IAEI12K,EAFA/sZ,EAASznW,KAAK2+4B,UAAUC,YAAYn3iB,OACpCC,EAAS1nW,KAAK2+4B,UAAUC,YAAYl3iB,OAWxC,IARI8sZ,EAD+B,IAA/Bx0vB,KAAK2+4B,UAAU+kB,YACN1j6B,KAAKw0vB,OAGLx0vB,KAAKw0vB,OAASx0vB,KAAK2+4B,UAAU+kB,aAE7B,IACTlvK,EAAS,IAAMA,GAEfA,EAAS,MAAQ,IAAuB,MAAjBx0vB,KAAKw0vB,QAA0C,KAAvBx0vB,KAAKm+4B,cAU/C3pJ,EAAS,KAAO,GAAKA,EAAS,MAAQ,GAC3C02K,EAAWpyX,UAAU94iB,KAAK6q5B,YAAYrs4B,MAAQ,EAAGxe,KAAK6q5B,YAAYjiwB,OAAS,GAC3EsixB,EAAW56f,OAAO1sa,KAAKita,GAAK,IAAM2jV,GAClC02K,EAAWpyX,WAAW94iB,KAAK6q5B,YAAYjiwB,OAAS,GAAI5oJ,KAAK6q5B,YAAYrs4B,MAAQ,GACzEg2uB,EAAS,KAAO,GAAKA,EAAS,MAAQ,GACtC9sZ,EAAU1nW,KAAK6q5B,YAAYrs4B,MAAQxe,KAAK2+4B,UAAUC,YAAYzB,KAA+C,GAAvCn94B,KAAK2+4B,UAAUd,aAAa5+lB,SAClGwoD,EAASznW,KAAK2+4B,UAAUC,YAAYl3iB,QAE/B8sZ,EAAS,MAAQ,IACtB/sZ,EAASznW,KAAK6q5B,YAAYjiwB,OAAS5oJ,KAAK2+4B,UAAUC,YAAYxB,KAC9D11iB,EAAS1nW,KAAK2+4B,UAAUC,YAAYn3iB,OAAgD,GAAvCznW,KAAK2+4B,UAAUd,aAAa5+lB,UAE7Ej/S,KAAK4w6B,eAAe1F,EAAYzjkB,EAAQC,GACxCwjkB,EAAWpyX,UAAU94iB,KAAK6q5B,YAAYjiwB,OAAS,EAAG5oJ,KAAK6q5B,YAAYrs4B,MAAQ,GAC3E0s5B,EAAW56f,OAAO1sa,KAAKita,GAAK,KAAO2jV,GACnC02K,EAAWpyX,WAAW94iB,KAAK6q5B,YAAYrs4B,MAAQ,GAAIxe,KAAK6q5B,YAAYjiwB,OAAS,KAG7EsixB,EAAWpyX,UAAU94iB,KAAK6q5B,YAAYrs4B,MAAQ,EAAGxe,KAAK6q5B,YAAYjiwB,OAAS,GAC3EsixB,EAAW56f,OAAO1sa,KAAKita,GAAK,IAAM2jV,GAClC/sZ,EAASznW,KAAK6q5B,YAAYrs4B,MAAQxe,KAAK2+4B,UAAUC,YAAYzB,KAC7Dz1iB,EAAU1nW,KAAK6q5B,YAAYjiwB,OAAS5oJ,KAAK2+4B,UAAUC,YAAYxB,KAA+C,GAAvCp94B,KAAK2+4B,UAAUd,aAAa5+lB,SACnGisnB,EAAWpyX,WAAW94iB,KAAK6q5B,YAAYrs4B,MAAQ,GAAIxe,KAAK6q5B,YAAYjiwB,OAAS,GAC7E5oJ,KAAK4w6B,eAAe1F,EAAYzjkB,EAAQC,GACxCwjkB,EAAWpyX,UAAU94iB,KAAK6q5B,YAAYrs4B,MAAQ,EAAGxe,KAAK6q5B,YAAYjiwB,OAAS,GAC3EsixB,EAAW56f,OAAO1sa,KAAKita,GAAK,KAAO2jV,GACnC02K,EAAWpyX,WAAW94iB,KAAK6q5B,YAAYrs4B,MAAQ,GAAIxe,KAAK6q5B,YAAYjiwB,OAAS,QApCF,CAC3E6+M,EAASznW,KAAK2+4B,UAAUC,YAAYn3iB,OAAgD,IAAvCznW,KAAK2+4B,UAAUd,aAAa5+lB,SACzEyoD,EAAS1nW,KAAK2+4B,UAAUC,YAAYl3iB,QAAU1nW,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAK2+4B,UAAUC,YAAYl3iB,QAE3G,IADA,IAAI0mO,EAAOpukB,KAAK2+4B,UAAU7B,WAAWnq3B,MAAM,MAClCxmB,EAAI,EAAGA,EAAIiikB,EAAKhrkB,OAAQ+I,IAC7Bu7V,EAAS1nW,KAAK2+4B,UAAUC,YAAYl3iB,QAAUv7V,EAAInM,KAAK2+4B,UAAUd,aAAa5+lB,SACnC,IAAvCj/S,KAAK2+4B,UAAUd,aAAa5+lB,UAChCisnB,EAAWxmc,SAAS0pG,EAAKjikB,GAAIs7V,EAAQC,EAE7C,CA6BoB,MAAhB1nW,KAAKw0vB,SAAmC,MAAjBx0vB,KAAKw0vB,SAC5Bx0vB,KAAKw0vB,OAAS,EAEtB,EACAmoJ,EAAYhs4B,UAAU0x5B,UAAY,SAAU7tK,GACxC,GAAIx0vB,KAAKu94B,QAAQn64B,OAAS,EACtB,GAAe,eAAXoxvB,GAAsC,aAAXA,GAAoC,eAAXA,GAAsC,aAAXA,GACpE,uBAAXA,GAA8C,uBAAXA,EACnCx0vB,KAAK6w6B,4BAA4Br8K,EAAO9zuB,oBAEvC,GAAwB,kBAAZ8zuB,EAAsB,CACnCx0vB,KAAK6w6B,4BAA4Br8K,GACjC,IAAIosJ,EAAa5g5B,KAAK4p5B,aAAaxj5B,OACnCpG,KAAK4p5B,aAAaxj5B,OAASpG,KAAK6p5B,mBAChC,IAAK,IAAI194B,EAAI,EAAGA,EAAInM,KAAKu94B,QAAQn64B,OAAQ+I,IAAK,CAEpB,SADLnM,KAAKu94B,QAAQpx4B,GAAGq/H,MAAM74G,MAAM,KAC9B,IACX3yB,KAAKmZ,MAAMnZ,KAAKu94B,QAAQpx4B,GAAGq/H,MAAOxrI,KAAKu94B,QAAQpx4B,GAEvD,CACAnM,KAAK4p5B,aAAaxj5B,OAASw64B,CAC/B,CAER,EACAjE,EAAYhs4B,UAAUkg6B,4BAA8B,SAAUr8K,GAE1D,IADA,IAAIs8K,EACKrk5B,EAAQ,EAAGA,EAAQzsB,KAAKu94B,QAAQn64B,OAAQqpB,IAC7C,GAAIzsB,KAAK2+4B,UAAUnzwB,QAAUxrI,KAAKu94B,QAAQ9w3B,GAAO++G,OAC7CxrI,KAAK2+4B,UAAUC,YAAYn3iB,SAAWznW,KAAKu94B,QAAQ9w3B,GAAOmy3B,YAAYn3iB,QACtEznW,KAAK2+4B,UAAUC,YAAYl3iB,SAAW1nW,KAAKu94B,QAAQ9w3B,GAAOmy3B,YAAYl3iB,QACtE1nW,KAAK2+4B,UAAUC,YAAYzB,OAASn94B,KAAKu94B,QAAQ9w3B,GAAOmy3B,YAAYzB,MACpEn94B,KAAK2+4B,UAAUC,YAAYxB,OAASp94B,KAAKu94B,QAAQ9w3B,GAAOmy3B,YAAYxB,MACpEp94B,KAAK2+4B,UAAUyX,YAAcp25B,KAAKu94B,QAAQ9w3B,GAAO2p4B,UAAW,CAC5D0a,EAAkBrk5B,EAClB,KACJ,CAEJ,GAAe,eAAX+nuB,GAAsC,aAAXA,GAAoC,eAAXA,GAAsC,aAAXA,GACpE,uBAAXA,GAA8C,uBAAXA,EAAiC,CACpE,GAAe,eAAXA,GAAsC,eAAXA,EAC3B,IAAK,IAAIrovB,EAAI,EAAGA,EAAInM,KAAKu94B,QAAQn64B,OAAQ+I,IACjCnM,KAAKu94B,QAAQpx4B,GAAGiz5B,YAAcp/5B,KAAKm+4B,gBAC/Bn+4B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYn3iB,QAAUznW,KAAKih5B,SAAYjh5B,KAAKm05B,UAAY,GACxEn05B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYzB,KAAQn94B,KAAKih5B,SAAWjh5B,KAAKm05B,WACpDn05B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYn3iB,OAASznW,KAAKih5B,UAC/Cjh5B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYn3iB,OAASznW,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYzB,KAC7Dn94B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYpg4B,MAChCxe,KAAKk05B,mBAAmBl05B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAa5+4B,KAAKu94B,QAAQpx4B,KAE7DnM,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYn3iB,QAAUznW,KAAKih5B,SAAYjh5B,KAAKm05B,UAAY,IAC7En05B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYn3iB,OAASznW,KAAKih5B,UAAYjh5B,KAAKih5B,SAAWjh5B,KAAKm05B,UACvEn05B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYzB,MAChCn94B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYzB,KAAOn94B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYn3iB,OAC3DznW,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYpg4B,MAChCxe,KAAKk05B,mBAAmBl05B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAa5+4B,KAAKu94B,QAAQpx4B,KAEtEnM,KAAKu94B,QAAQpx4B,GAAGiz5B,UAAYp/5B,KAAKm+4B,cACjCn+4B,KAAKsp6B,qBAAqBtp6B,KAAKu94B,QAAQpx4B,GAAI,cAC3CnM,KAAKs25B,qBAAqBt25B,KAAKu94B,QAAQpx4B,IACvCnM,KAAKu94B,QAAQpx4B,GAAGgv5B,WAAa,CAAE1zjB,QAAUznW,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYn3iB,OAC7DznW,KAAKih5B,UAAYjh5B,KAAKm05B,UAC1BzsjB,QAAU1nW,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYl3iB,OAAS1nW,KAAKkh5B,SAAWlh5B,KAAKo05B,WACpEjX,MAAQn94B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYzB,KAAOn94B,KAAKih5B,UAAYjh5B,KAAKm05B,UACjE/W,MAAQp94B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYxB,KAAOp94B,KAAKkh5B,SAAWlh5B,KAAKo05B,WAChE514B,MAAOxe,KAAKm05B,UAAYn05B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYpg4B,MACpDoqI,OAAQ5oJ,KAAKo05B,WAAap05B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYh2vB,cAIjE,GAAe,aAAX4rmB,GAAoC,aAAXA,EAC9B,IAASrovB,EAAI,EAAGA,EAAInM,KAAKu94B,QAAQn64B,OAAQ+I,IACjCnM,KAAKu94B,QAAQpx4B,GAAGiz5B,YAAcp/5B,KAAKm+4B,gBAC/Bn+4B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYl3iB,QAAU1nW,KAAKkh5B,QAAWlh5B,KAAKo05B,WAAa,GACxEp05B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYxB,KAAQp94B,KAAKkh5B,QAAUlh5B,KAAKo05B,YACnDp05B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYl3iB,OAAS1nW,KAAKkh5B,SAC/Clh5B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYl3iB,OAAS1nW,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYxB,KAC7Dp94B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYh2vB,OAChC5oJ,KAAKk05B,mBAAmBl05B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAa5+4B,KAAKu94B,QAAQpx4B,KAE7DnM,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYl3iB,QAAU1nW,KAAK6q5B,YAAYjiwB,OAAS,IACrE5oJ,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYl3iB,OAAS1nW,KAAKkh5B,SAAWlh5B,KAAKkh5B,QAAUlh5B,KAAKo05B,WACrEp05B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYxB,MAChCp94B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYxB,KAAOp94B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYl3iB,OAC3D1nW,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYh2vB,OAChC5oJ,KAAKk05B,mBAAmBl05B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAa5+4B,KAAKu94B,QAAQpx4B,KAEtEnM,KAAKu94B,QAAQpx4B,GAAGiz5B,UAAYp/5B,KAAKm+4B,cACjCn+4B,KAAKsp6B,qBAAqBtp6B,KAAKu94B,QAAQpx4B,GAAI,YAC3CnM,KAAKs25B,qBAAqBt25B,KAAKu94B,QAAQpx4B,IACvCnM,KAAKu94B,QAAQpx4B,GAAGgv5B,WAAa,CAAE1zjB,QAAUznW,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYn3iB,OAC7DznW,KAAKih5B,UAAYjh5B,KAAKm05B,UAC1BzsjB,QAAU1nW,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYl3iB,OAAS1nW,KAAKkh5B,SAAWlh5B,KAAKo05B,WACpEjX,MAAQn94B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYzB,KAAOn94B,KAAKih5B,UAAYjh5B,KAAKm05B,UACjE/W,MAAQp94B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYxB,KAAOp94B,KAAKkh5B,SAAWlh5B,KAAKo05B,WAChE514B,MAAOxe,KAAKm05B,UAAYn05B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYpg4B,MACpDoqI,OAAQ5oJ,KAAKo05B,WAAap05B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYh2vB,cAIjE,GAAe,uBAAX4rmB,GAA8C,uBAAXA,EACxC,IAASrovB,EAAI,EAAGA,EAAInM,KAAKu94B,QAAQn64B,OAAQ+I,IACjCnM,KAAKu94B,QAAQpx4B,GAAGiz5B,YAAcp/5B,KAAKm+4B,gBAC/Bn+4B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYn3iB,QAAUznW,KAAKih5B,SAAYjh5B,KAAKm05B,UAAY,GACxEn05B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYzB,KAAQn94B,KAAKih5B,SAAWjh5B,KAAKm05B,WACpDn05B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYn3iB,OAASznW,KAAKih5B,UAC/Cjh5B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYn3iB,OAASznW,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYzB,KAC7Dn94B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYpg4B,MAChCxe,KAAKk05B,mBAAmBl05B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAa5+4B,KAAKu94B,QAAQpx4B,KAE7DnM,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYn3iB,QAAUznW,KAAKih5B,SAAYjh5B,KAAKm05B,UAAY,IAC7En05B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYn3iB,OAASznW,KAAKih5B,UAAYjh5B,KAAKih5B,SAAWjh5B,KAAKm05B,UACvEn05B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYzB,MAChCn94B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYzB,KAAOn94B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYn3iB,OAC3DznW,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYpg4B,MAChCxe,KAAKk05B,mBAAmBl05B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAa5+4B,KAAKu94B,QAAQpx4B,KAElEnM,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYl3iB,QAAU1nW,KAAKkh5B,QAAWlh5B,KAAKo05B,WAAa,GACxEp05B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYxB,KAAQp94B,KAAKkh5B,QAAUlh5B,KAAKo05B,YACnDp05B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYl3iB,OAAS1nW,KAAKkh5B,SAC/Clh5B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYl3iB,OAAS1nW,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYxB,KAC7Dp94B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYh2vB,OAChC5oJ,KAAKk05B,mBAAmBl05B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAa5+4B,KAAKu94B,QAAQpx4B,KAE7DnM,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYl3iB,QAAU1nW,KAAK6q5B,YAAYjiwB,OAAS,IACrE5oJ,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYl3iB,OAAS1nW,KAAKkh5B,SAAWlh5B,KAAKkh5B,QAAUlh5B,KAAKo05B,WACrEp05B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYxB,MAChCp94B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYxB,KAAOp94B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYl3iB,OAC3D1nW,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYh2vB,OAChC5oJ,KAAKk05B,mBAAmBl05B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAa5+4B,KAAKu94B,QAAQpx4B,KAEtEnM,KAAKu94B,QAAQpx4B,GAAGiz5B,UAAYp/5B,KAAKm+4B,cACjCn+4B,KAAKsp6B,qBAAqBtp6B,KAAKu94B,QAAQpx4B,GAAInM,KAAKm+4B,eAChDn+4B,KAAKs25B,qBAAqBt25B,KAAKu94B,QAAQpx4B,IACvCnM,KAAKu94B,QAAQpx4B,GAAGgv5B,WAAa,CAAE1zjB,QAAUznW,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYn3iB,OAC7DznW,KAAKih5B,UAAYjh5B,KAAKm05B,UAC1BzsjB,QAAU1nW,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYl3iB,OAAS1nW,KAAKkh5B,SAAWlh5B,KAAKo05B,WACpEjX,MAAQn94B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYzB,KAAOn94B,KAAKih5B,UAAYjh5B,KAAKm05B,UACjE/W,MAAQp94B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYxB,KAAOp94B,KAAKkh5B,SAAWlh5B,KAAKo05B,WAChE514B,MAAOxe,KAAKm05B,UAAYn05B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYpg4B,MACpDoqI,OAAQ5oJ,KAAKo05B,WAAap05B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYh2vB,cAI9CvlJ,IAApByt6B,IACA9w6B,KAAK2+4B,UAAYl1zB,GAAO,CAAC,EAAGzpF,KAAKu94B,QAAQuzB,GAAkB,CAAC,GAAG,GAEvE,MACK,GAAe,KAAXt8K,EACLx0vB,KAAKui6B,qBAEJ,IAAgB,KAAZ/tK,EACL,IAASrovB,EAAI,EAAGA,EAAI,EAAGA,IACnBnM,KAAKui6B,qBAGR,GAAwB,kBAAZ/tK,EACb,GAAIA,EAAS,EACTx0vB,KAAKui6B,qBAGL,IAASp25B,EAAI,EAAGA,EAAI,EAAGA,IACnBnM,KAAKui6B,eAIrB,EACA5lB,EAAYhs4B,UAAU4x5B,cAAgB,WAClC,IAAK,IAAIp25B,EAAI,EAAGA,EAAInM,KAAKu94B,QAAQn64B,OAAQ+I,IACrCnM,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYl3iB,OAAS1nW,KAAKkh5B,QAAWlh5B,KAAKo05B,WAAap05B,KAAKu94B,QAAQpx4B,GAAGgv5B,WAAW1zjB,OAClGznW,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYxB,KAAOp94B,KAAKkh5B,QAAWlh5B,KAAKo05B,WAAap05B,KAAKu94B,QAAQpx4B,GAAGgv5B,WAAWhe,KAChGn94B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYn3iB,OAAUznW,KAAKih5B,SAAWjh5B,KAAKm05B,UACtDn05B,KAAKm05B,UAAYn05B,KAAKu94B,QAAQpx4B,GAAGgv5B,WAAW/d,KACjDp94B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYzB,KAAQn94B,KAAKih5B,SAAWjh5B,KAAKm05B,UACpDn05B,KAAKm05B,UAAYn05B,KAAKu94B,QAAQpx4B,GAAGgv5B,WAAWzzjB,OACjD1nW,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYpg4B,MAAQxe,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYzB,KAC5Dn94B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYn3iB,OAChCznW,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYh2vB,OAAS5oJ,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYxB,KAC7Dp94B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYl3iB,OAChC1nW,KAAK4/5B,eAAe5/5B,KAAKu94B,QAAQpx4B,IACH,UAA1BnM,KAAKu94B,QAAQpx4B,GAAGq/H,QAChBxrI,KAAKsp6B,qBAAqBtp6B,KAAKu94B,QAAQpx4B,GAAI,KAAM,IACjDnM,KAAKs25B,qBAAqBt25B,KAAKu94B,QAAQpx4B,KAG/C,IAASA,EAAI,EAAGA,EAAInM,KAAKu94B,QAAQn64B,OAAQ+I,IACrCnM,KAAKk05B,mBAAmBl05B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAa5+4B,KAAKu94B,QAAQpx4B,IAGtE,IAASA,EAAI,EAAGA,EAAInM,KAAKu94B,QAAQn64B,OAAQ+I,IACrCnM,KAAKu94B,QAAQpx4B,GAAGgv5B,WAAa,CAAE1zjB,QAAUznW,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYn3iB,OAC7DznW,KAAKih5B,UAAYjh5B,KAAKm05B,UAC1BzsjB,QAAU1nW,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYl3iB,OAAS1nW,KAAKkh5B,SAAWlh5B,KAAKo05B,WACpEjX,MAAQn94B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYzB,KAAOn94B,KAAKih5B,UAAYjh5B,KAAKm05B,UACjE/W,MAAQp94B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYxB,KAAOp94B,KAAKkh5B,SAAWlh5B,KAAKo05B,WAChE514B,MAAOxe,KAAKm05B,UAAYn05B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYpg4B,MACpDoqI,OAAQ5oJ,KAAKo05B,WAAap05B,KAAKu94B,QAAQpx4B,GAAGyy4B,YAAYh2vB,OAElE,EACA+zvB,EAAYhs4B,UAAUoh5B,YAAc,SAAUlh5B,GAC1C,IAAK,IAAI1E,EAAI,EAAGA,EAAInM,KAAKu94B,QAAQn64B,OAAQ+I,IACrC,GAAIskC,KAAK+mF,UAAU3mH,KAAS4/B,KAAK+mF,UAAUx3H,KAAKu94B,QAAQpx4B,IAAK,CACzDnM,KAAKu94B,QAAQ/n3B,OAAOrpB,EAAG,GACvB,KACJ,CAEJnM,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,QACvE5oJ,KAAKyh5B,mBACDzh5B,KAAK2+4B,UAAUC,YAAYn3iB,OAASznW,KAAKih5B,WACzCjh5B,KAAKyh5B,mBAAoB,GAE7Bzh5B,KAAKu25B,WAAW,YAAa,KAAM,KAAM,MAAM,IAG/Cv25B,KAAKu25B,WAAW,YAAa,KAAM,KAAM,MAAM,EAEvD,EACA5Z,EAAYhs4B,UAAU0l5B,YAAc,SAAUkB,GAC1C,IAAIwZ,GAAW,EACf,QAA6B1t6B,IAAzBrD,KAAK2+4B,UAAUnzwB,OAAgD,SAAzBxrI,KAAK2+4B,UAAUnzwB,OAAkD,KAA9BxrI,KAAK2+4B,UAAU7B,WACxF984B,KAAK6v5B,mBACL7v5B,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,YAE1E,CACD,IAAI+mwB,OAAa,EACbC,GAAkB,EAUtB,QAT6Bvs5B,IAAzBrD,KAAK2+4B,UAAUnzwB,QACfmkxB,EAAa3v5B,KAAK2+4B,UAAUnzwB,MAAM74G,MAAM,YAEzBtvB,IAAfss5B,GAA4B3v5B,KAAKi/4B,YAAYM,mBAGzBl84B,IAAfss5B,GAA8C,SAAlBA,EAAW,MAF5CC,GAAkB,IAKjB7jlB,GAAkB/rU,KAAK2+4B,UAAUnzwB,SAAWokxB,GAA4C,UAAzB5v5B,KAAK2+4B,UAAUnzwB,MAAmB,CAClG,IAAK,IAAIr/H,EAAI,EAAGA,EAAInM,KAAKu94B,QAAQn64B,OAAQ+I,IACrC,GAAIskC,KAAK+mF,UAAUx3H,KAAK2+4B,aAAelu2B,KAAK+mF,UAAUx3H,KAAKu94B,QAAQpx4B,IAAK,CACpE4k6B,GAAW,EACX,KACJ,CAEJ,IAAKA,EAAU,CACPhlmB,GAAkB/rU,KAAK2+4B,UAAUyX,aACjCp25B,KAAK2+4B,UAAUyX,UAAY,UAAYp25B,KAAKu94B,QAAQn64B,OAAS,IAEjEpD,KAAK8g6B,4BACL,IAAIkQ,EAAehx6B,KAAK2+4B,UAAUyX,UAAUzj4B,MAAM,KAC9Cor4B,EAAc/95B,KAAKu94B,QAAQ/n3B,OAAO,EAAGjJ,SAASyk5B,EAAa,GAAI,IAAM,GACzEjT,EAAY3x5B,KAAKq9E,GAAO,CAAC,EAAGzpF,KAAK2+4B,UAAW,CAAC,GAAG,IAChD,IAASxy4B,EAAI,EAAGA,EAAInM,KAAKu94B,QAAQn64B,OAAQ+I,IACrC4x5B,EAAY3x5B,KAAKpM,KAAKu94B,QAAQpx4B,IAElCnM,KAAKu94B,QAAUwgB,EACfA,EAAc,GACd/95B,KAAK6v5B,mBACL7v5B,KAAK4p5B,aAAa7qb,UAAU,EAAG,EAAG/+d,KAAK6q5B,YAAYrs4B,MAAOxe,KAAK6q5B,YAAYjiwB,QAC3E5oJ,KAAK425B,mBACL525B,KAAK275B,iBAAiB375B,KAAK4p5B,cAC3B5p5B,KAAK275B,iBAAiB375B,KAAK4o5B,cAC3B5o5B,KAAKi/4B,YAAYzzwB,MAAQ,GACzBxrI,KAAK6v5B,mBACD7v5B,KAAK6h5B,cACL7h5B,KAAKy55B,WAAWz55B,KAAK4p5B,cAEzB5p5B,KAAKmp5B,4BACDp9kB,GAAkBwrlB,KAClBv35B,KAAK8w5B,0BAA0B,MAC/B9w5B,KAAK225B,WAAa,KAE1B,CACJ,CACJ,CACJ,EACAha,EAAYhs4B,UAAUw44B,0BAA4B,WACzCp9kB,GAAkB76S,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,yBAC5D41S,GAAkBkhB,GAAa/7T,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,uBAAwB,aAClG82T,GAAa/7T,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,uBAAwB,WAAWihH,UAEzF20L,GAAkB76S,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,8BAC7DjF,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,2BAA2BhwB,MAAMi+J,QAAU,OAE7F,EACAu4uB,EAAYhs4B,UAAUwI,MAAQ,SAAUqyH,EAAO36H,EAAK+rd,GAChD,IAAK58d,KAAK4O,SACN,GAAK5O,KAAKs+4B,YAAet+4B,KAAKi/4B,YAAYM,aAAc,CACpD,IAAI0B,EAAWjh5B,KAAKih5B,SAChBC,EAAUlh5B,KAAKkh5B,QACfiT,EAAYn05B,KAAKm05B,UACjBC,EAAap05B,KAAKo05B,WACtBp05B,KAAK895B,oCACL,IAAIpx0B,EAAO1sF,KAAK4p5B,aAAaxj5B,OAC7BpG,KAAK4p5B,aAAaxj5B,OAAS,OAC3BpG,KAAKs+4B,WAAY,EACjBt+4B,KAAK835B,iBACL935B,KAAK+35B,eAAe/35B,KAAK4p5B,cACzB5p5B,KAAKs+4B,WAAY,GACbt+4B,KAAK6h5B,eAAkB91kB,GAAkB/rU,KAAKyw5B,qBAAyD,gBAAlCzw5B,KAAKyw5B,mBAAmBjlxB,QAC7FxrI,KAAKy55B,WAAWz55B,KAAK4p5B,cAEzB5p5B,KAAKih5B,SAAWA,EAChBjh5B,KAAKkh5B,QAAUA,EACflh5B,KAAKm05B,UAAYA,EACjBn05B,KAAKo05B,WAAaA,EAClBp05B,KAAK4p5B,aAAaxj5B,OAASsmF,CAC/B,MAEIkwY,EAASA,GAAkB,WAC3B58d,KAAKi/4B,YAAYzzwB,WAAkBnoI,IAAVmoI,EAAsBA,EAAQxrI,KAAKi/4B,YAAYzzwB,MACzC,KAA3BxrI,KAAKi/4B,YAAYzzwB,QACjBxrI,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,QAC9C,SAAzB5oJ,KAAK2+4B,UAAUnzwB,OACfxrI,KAAKu25B,WAAW35b,EAAQ/rd,EAAK,KAAM,MAAM,GACzC7Q,KAAK275B,iBAAiB375B,KAAK4p5B,eAG3B5p5B,KAAKu25B,WAAW35b,EAAQ/rd,GAE5B7Q,KAAK2+4B,UAAUnzwB,MAAQxrI,KAAKi/4B,YAAYzzwB,MAAM9qH,cACzC8qH,GAAoC,KAA3BxrI,KAAKi/4B,YAAYzzwB,OAAiBxrI,KAAKi/4B,YAAYM,cAC7Dv/4B,KAAKu94B,QAAQnx4B,KAAKq9E,GAAO,CAAC,EAAGzpF,KAAK2+4B,UAAW,CAAC,GAAG,IAErD3+4B,KAAK884B,WAAa,GAIlC,EACAH,EAAYhs4B,UAAUsg6B,gBAAkB,SAAUhx4B,EAAMzhB,EAAOoqI,GAC3D,IAAIsoxB,EACAC,EACAlx4B,GAAQzhB,GAASoqI,GACjBsoxB,EAAc1y5B,EACd2y5B,EAAevoxB,IAGfsoxB,EAAclx6B,KAAK2+4B,UAAUC,YAAYpg4B,MACzC2y5B,EAAenx6B,KAAK2+4B,UAAUC,YAAYh2vB,QAE9C5oJ,KAAK2+4B,UAAUC,YAAYn3iB,OAAUznW,KAAK6q5B,YAAYrs4B,MAAQ,EAAK0y5B,EAAc,EACjFlx6B,KAAK2+4B,UAAUC,YAAYl3iB,OAAU1nW,KAAK6q5B,YAAYjiwB,OAAS,EAAKuoxB,EAAe,EACnFnx6B,KAAK2+4B,UAAUC,YAAYzB,KAAQn94B,KAAK6q5B,YAAYrs4B,MAAQ,EAAK0y5B,EAAc,EAC/Elx6B,KAAK2+4B,UAAUC,YAAYxB,KAAQp94B,KAAK6q5B,YAAYjiwB,OAAS,EAAKuoxB,EAAe,EAC7Elx4B,GAAQzhB,GAASoqI,IACjB5oJ,KAAKw+4B,gBAAgBtk4B,EAAIla,KAAK2+4B,UAAUC,YAAYn3iB,OACpDznW,KAAKw+4B,gBAAgBrk4B,EAAIna,KAAK2+4B,UAAUC,YAAYl3iB,OAE5D,EACAi1iB,EAAYhs4B,UAAUyg6B,oBAAsB,SAAUvg6B,GAClDA,EAAIku4B,cAAgB,GACpBlu4B,EAAIku4B,cAAc3y4B,KAAK,CAAE8N,GAAIrJ,EAAIiu4B,SAAS,GAAG5k4B,EAAIla,KAAKih5B,UAAYjh5B,KAAKm05B,UACnEh64B,GAAItJ,EAAIiu4B,SAAS,GAAG3k4B,EAAIna,KAAKkh5B,SAAWlh5B,KAAKo05B,aACjDvj5B,EAAIku4B,cAAc3y4B,KAAK,CAAE8N,GAAIrJ,EAAIiu4B,SAAS,GAAG5k4B,EAAIla,KAAKih5B,UAAYjh5B,KAAKm05B,UACnEh64B,GAAItJ,EAAIiu4B,SAAS,GAAG3k4B,EAAIna,KAAKkh5B,SAAWlh5B,KAAKo05B,aACjDvj5B,EAAIku4B,cAAc3y4B,KAAK,CAAE8N,GAAIrJ,EAAIiu4B,SAAS,GAAG5k4B,EAAIla,KAAKih5B,UAAYjh5B,KAAKm05B,UACnEh64B,GAAItJ,EAAIiu4B,SAAS,GAAG3k4B,EAAIna,KAAKkh5B,SAAWlh5B,KAAKo05B,YACrD,EACAzX,EAAYhs4B,UAAU2l5B,qBAAuB,SAAUzl5B,GACnD,GAAkB,UAAdA,EAAI26H,MAAmB,CACvB,IAAIgpnB,OAAS,EACTrsd,OAAY,EAiBhB,QAfIqsd,EADoB,IAApB3jvB,EAAI6y5B,YACK1j6B,KAAKw0vB,OAGLx0vB,KAAKw0vB,OAAS3jvB,EAAI6y5B,aAElB,IACTlvK,EAAS,IAAMA,GAGfrsd,EADAqsd,EAAS,KAAO,GAAKA,EAAS,MAAQ,EAC1B3jvB,EAAI+t4B,YAAYpg4B,MAGhB3N,EAAI+t4B,YAAYh2vB,OAEhC/3I,EAAIiu4B,SAAW,GACPju4B,EAAIk55B,mBACR,IAAK,QACDl55B,EAAIiu4B,SAAS1y4B,KAAK,CAAE8N,EAAGrJ,EAAI+t4B,YAAYzB,KAAOh1mB,EAAWhuR,EAAGtJ,EAAI+t4B,YAAYl3iB,SAC5E72V,EAAIiu4B,SAAS1y4B,KAAK,CAAE8N,EAAGrJ,EAAI+t4B,YAAYzB,KAAMhj4B,EAAGtJ,EAAI+t4B,YAAYl3iB,OAAUv/D,EAAY,IACtFt3R,EAAIiu4B,SAAS1y4B,KAAK,CAAE8N,EAAGrJ,EAAI+t4B,YAAYzB,KAAOh1mB,EAAWhuR,EAAGtJ,EAAI+t4B,YAAYxB,OAC5E,MACJ,IAAK,OACDvs4B,EAAIiu4B,SAAS1y4B,KAAK,CAAE8N,EAAGrJ,EAAI+t4B,YAAYn3iB,OAASt/D,EAAWhuR,EAAGtJ,EAAI+t4B,YAAYl3iB,SAC9E72V,EAAIiu4B,SAAS1y4B,KAAK,CAAE8N,EAAGrJ,EAAI+t4B,YAAYn3iB,OAAQttV,EAAGtJ,EAAI+t4B,YAAYl3iB,OAAUv/D,EAAY,IACxFt3R,EAAIiu4B,SAAS1y4B,KAAK,CAAE8N,EAAGrJ,EAAI+t4B,YAAYn3iB,OAASt/D,EAAWhuR,EAAGtJ,EAAI+t4B,YAAYxB,OAC9E,MACJ,IAAK,MACDvs4B,EAAIiu4B,SAAS1y4B,KAAK,CAAE8N,EAAGrJ,EAAI+t4B,YAAYn3iB,OAAQttV,EAAGtJ,EAAI+t4B,YAAYl3iB,OAASv/D,IAC3Et3R,EAAIiu4B,SAAS1y4B,KAAK,CAAE8N,EAAGrJ,EAAI+t4B,YAAYn3iB,OAAUt/D,EAAY,EAAIhuR,EAAGtJ,EAAI+t4B,YAAYl3iB,SACpF72V,EAAIiu4B,SAAS1y4B,KAAK,CAAE8N,EAAGrJ,EAAI+t4B,YAAYn3iB,OAASt/D,EAAWhuR,EAAGtJ,EAAI+t4B,YAAYl3iB,OAASv/D,IACvF,MACJ,IAAK,SACDt3R,EAAIiu4B,SAAS1y4B,KAAK,CAAE8N,EAAGrJ,EAAI+t4B,YAAYzB,KAAMhj4B,EAAGtJ,EAAI+t4B,YAAYxB,KAAOj1mB,IACvEt3R,EAAIiu4B,SAAS1y4B,KAAK,CAAE8N,EAAGrJ,EAAI+t4B,YAAYzB,KAAQh1mB,EAAY,EAAIhuR,EAAGtJ,EAAI+t4B,YAAYxB,OAClFvs4B,EAAIiu4B,SAAS1y4B,KAAK,CAAE8N,EAAGrJ,EAAI+t4B,YAAYzB,KAAOh1mB,EAAWhuR,EAAGtJ,EAAI+t4B,YAAYxB,KAAOj1mB,IAG3FnoS,KAAKox6B,oBAAoBvg6B,EAC7B,CACJ,EACA8r4B,EAAYhs4B,UAAU49rB,aAAe,SAAU/vrB,EAAOoqI,GAC7CmjL,GAAkBvtT,IAAWutT,GAAkBnjL,KAChD5oJ,KAAK2+4B,UAAUC,YAAYpg4B,MAAQA,EACnCxe,KAAK2+4B,UAAUC,YAAYh2vB,OAASA,EACS,YAAzC5oJ,KAAKi/4B,YAAYzzwB,MAAM9qH,gBACvB1gB,KAAK2+4B,UAAUC,YAAYpg4B,MAAQ,EAAIA,EACvCxe,KAAK2+4B,UAAUC,YAAYh2vB,OAAS,EAAIA,GAGpD,EACA+zvB,EAAYhs4B,UAAU0g6B,eAAiB,WACnC,IAAIlgB,EAAc1n0B,GAAO,CAAC,EAAGzpF,KAAKmj5B,QAAS,CAAC,GAAG,GAC3CznO,EAAU17qB,KAAKix5B,gBACnBv1O,EAAQ6hO,QAAU9zzB,GAAO,GAAIzpF,KAAKu94B,QAAS,IAAI,GAC/C7hO,EAAQz+M,UAAYxzY,GAAO,GAAIzpF,KAAKi9d,UAAW,IAAI,GACnDy+M,EAAQgoO,iBAAmBj6zB,GAAO,GAAIzpF,KAAK0j5B,iBAAkB,IAAI,GACjE1j5B,KAAKu94B,QAAQnx4B,KAAKpM,KAAK2+4B,WACvB3+4B,KAAKqx5B,mBAAmB,iBAAkB31O,EAASA,EAAQ6hO,QAAS7hO,EAAQz+M,UAAWk0b,GACvFnx5B,KAAKu94B,QAAQj/2B,MACbt+B,KAAKq25B,cACLr25B,KAAK6v5B,mBACL7v5B,KAAK8v5B,oBACT,EACAnT,EAAYhs4B,UAAUs/4B,UAAY,SAAUrj5B,EAAMwiI,EAAaquV,EAAakgb,EAAWzn2B,EAAO13B,EAAOoqI,GACjG,IAAK5oJ,KAAK4O,UAAY5O,KAAKy94B,cAAe,CACtCz94B,KAAKg35B,eACL,IAAIzZ,EAAU9zzB,GAAO,GAAIzpF,KAAKu94B,QAAS,IAAI,GAM3C,GALAv94B,KAAKs+4B,WAAY,EACjBt+4B,KAAK884B,WAAa,GAClB984B,KAAKyq5B,YAAYtk5B,MAAMi+J,QAAU,QACjCpkK,KAAK6v5B,mBACL7v5B,KAAKi/4B,YAAYzzwB,MAAQ5+H,EACoB,iBAAzC5M,KAAKi/4B,YAAYzzwB,MAAM9qH,eAA6E,KAAzC1gB,KAAKi/4B,YAAYzzwB,MAAM9qH,cAAsB,CACxG1gB,KAAK2+4B,UAAUnzwB,MAAQxrI,KAAKi/4B,YAAYzzwB,MAAM9qH,cAC9C1gB,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,QACvEmjL,GAAkB/rU,KAAK2+4B,UAAUjB,kBACjC194B,KAAK2+4B,UAAUjB,eAAiB194B,KAAK094B,gBAEzC194B,KAAK2+4B,UAAUjB,eAAetuwB,YAAcA,GAA4BpvI,KAAK2+4B,UAAUjB,eAAetuwB,YACtGpvI,KAAK2+4B,UAAUjB,eAAejgb,YAAcA,GAA4Bz9d,KAAK2+4B,UAAUjB,eAAejgb,YACtGz9d,KAAK2+4B,UAAUjB,eAAeC,UAAYA,GAAwB394B,KAAK2+4B,UAAUjB,eAAeC,UAChG,IAAIl0F,EAAYzpzB,KAAKm05B,UAAY,IAAM,IAAMn05B,KAAKm05B,UAAY,EAC1D6U,EAAahp6B,KAAKo05B,WAAa,IAAM,IAAMp05B,KAAKo05B,WAAa,EACjEp05B,KAAK2+4B,UAAUC,YAAYpg4B,MAAQiryB,EACnCzpzB,KAAK2+4B,UAAUC,YAAYh2vB,OAASogxB,EACS,SAAzChp6B,KAAKi/4B,YAAYzzwB,MAAM9qH,eAAqE,UAAzC1gB,KAAKi/4B,YAAYzzwB,MAAM9qH,eAC1E1gB,KAAK2+4B,UAAUqsB,SAAW,aAC1Bhr6B,KAAK2+4B,UAAUC,YAAYh2vB,QAAU,EACrC5oJ,KAAK2+4B,UAAUC,YAAYh2vB,QAAU,GACQ,UAAzC5oJ,KAAKi/4B,YAAYzzwB,MAAM9qH,gBACvB1gB,KAAK2+4B,UAAUC,YAAYpg4B,OAAS,KAGM,cAAzCxe,KAAKi/4B,YAAYzzwB,MAAM9qH,gBAC5B1gB,KAAK2+4B,UAAUC,YAAYpg4B,OAASxe,KAAK2+4B,UAAUC,YAAYpg4B,MAAQ,GAE3Exe,KAAKuusB,aAAa/vrB,EAAOoqI,GACpBmjL,GAAkB71R,GAOnBl2C,KAAKix6B,mBANLjx6B,KAAK2+4B,UAAUC,YAAYn3iB,OAASvxT,EAAMh8B,EAC1Cla,KAAK2+4B,UAAUC,YAAYl3iB,OAASxxT,EAAM/7B,EAC1Cna,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAK2+4B,UAAUC,YAAYn3iB,OAASznW,KAAK2+4B,UAAUC,YAAYpg4B,MACjGxe,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAK2+4B,UAAUC,YAAYl3iB,OAAS1nW,KAAK2+4B,UAAUC,YAAYh2vB,QAKxD,UAAzC5oJ,KAAKi/4B,YAAYzzwB,MAAM9qH,gBACvB1gB,KAAK2+4B,UAAUorB,kBAAoB,QACnC/p6B,KAAKs25B,qBAAqBt25B,KAAK2+4B,YAEnC3+4B,KAAKi/4B,YAAYC,WAAal/4B,KAAKi/4B,YAAYM,cAAe,EAC9Dv/4B,KAAK2+4B,UAAU+kB,YAAc1j6B,KAAKw0vB,OAClCx0vB,KAAK2+4B,UAAUygB,UAAYp/5B,KAAKm+4B,cAChCn+4B,KAAK2+4B,UAAU4pB,SAAWvo6B,KAAKm+4B,cAC/Bn+4B,KAAK2+4B,UAAUE,YAAc,GAC7B,IAAImvB,EAAgBhu6B,KAAKgn6B,8BACrBF,EAAoB,CAAE5x1B,OAAQ,SAAU6x1B,sBAAuBiH,EAC/D/G,qBAAsB+G,GAC1Bhu6B,KAAKsgS,QAAQ,gBAAiBwmoB,GAC9B9m6B,KAAKop6B,2BAA2BtC,EAAkBG,sBAClDjn6B,KAAKuusB,aAAa/vrB,EAAOoqI,GACzB5oJ,KAAKu25B,WAAW,aAChBv25B,KAAKkp5B,2BACLlp5B,KAAK4k5B,iBAAkB,EACvB5k5B,KAAKw05B,kBAAkBjX,GACvBv94B,KAAKs0jB,eAAe,UACpBt0jB,KAAKkw5B,oBACT,CACJ,CACJ,EACAvT,EAAYhs4B,UAAUq/4B,cAAgB,SAAU/v3B,EAAMuib,EAAYvjK,EAAU7uL,EAAME,EAAQmtW,EAAavjd,EAAGC,GACtG,IAAKna,KAAK4O,UAAY5O,KAAKy94B,cAAe,CACP,iBAA3Bz94B,KAAKi/4B,YAAYzzwB,QACjBxrI,KAAKmZ,QACLnZ,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,UAChCl5iB,KAAKi/4B,YAAYzzwB,MAAQ,IAE7BxrI,KAAKs+4B,WAAY,EACjBt+4B,KAAKg35B,eACL,IAAIt7O,EAAU17qB,KAAKix5B,gBACnBv1O,EAAQ6hO,QAAU9zzB,GAAO,GAAIzpF,KAAKu94B,QAAS,IAAI,GAC/C7hO,EAAQz+M,UAAYxzY,GAAO,GAAIzpF,KAAKi9d,UAAW,IAAI,GACnDy+M,EAAQgoO,iBAAmBj6zB,GAAO,GAAIzpF,KAAK0j5B,iBAAkB,IAAI,GACjE1j5B,KAAK884B,WAAa,GAClB984B,KAAK6v5B,mBACL7v5B,KAAK2+4B,UAAUnzwB,MAAQ,OACvBxrI,KAAKi/4B,YAAYM,cAAe,EAChCv/4B,KAAKi/4B,YAAYx41B,OAASzmD,KAAKi/4B,YAAYG,eAAgB,EAC3Dp/4B,KAAKyq5B,YAAYtk5B,MAAMi+J,QAAU,QACjCpkK,KAAKi/4B,YAAYzzwB,MAAQxrI,KAAK2+4B,UAAUnzwB,MAAQ,OAC5CugM,GAAkB/rU,KAAK2+4B,UAAUd,gBACjC794B,KAAK2+4B,UAAUd,aAAe794B,KAAK694B,cAEnC9xkB,GAAkB/rU,KAAK2+4B,UAAUjB,kBACjC194B,KAAK2+4B,UAAUjB,eAAiB194B,KAAK094B,gBAEzC194B,KAAK2+4B,UAAUjB,eAAejgb,YAAcA,GAA4Bz9d,KAAK2+4B,UAAUjB,eAAejgb,YACtGz9d,KAAK2+4B,UAAUd,aAAa592B,KAAOA,GAAcjgC,KAAK2+4B,UAAUd,aAAa592B,KAC7EjgC,KAAK2+4B,UAAUd,aAAar7b,WAAaA,GAA0Bxid,KAAK2+4B,UAAUd,aAAar7b,WAC/Fxid,KAAK2+4B,UAAUd,aAAa592B,KAAOA,GAAcjgC,KAAK2+4B,UAAUd,aAAa592B,KAC7EjgC,KAAK2+4B,UAAUd,aAAar7b,WAAaA,GAA0Bxid,KAAK2+4B,UAAUd,aAAar7b,WAC/Fxid,KAAK2+4B,UAAUd,aAAa5+lB,SAAWA,GAAsBj/S,KAAK2+4B,UAAUd,aAAa5+lB,SACzFj/S,KAAK2+4B,UAAUd,aAAaztxB,KAAOA,GAAcpwH,KAAK2+4B,UAAUd,aAAaztxB,KAC7EpwH,KAAK2+4B,UAAUd,aAAavtxB,OAASA,GAAkBtwH,KAAK2+4B,UAAUd,aAAavtxB,OAC/Ey7M,GAAkB/rU,KAAK2+4B,UAAUd,aAAa5+lB,YAC1Cj/S,KAAKm05B,UAAYn05B,KAAKo05B,WACtBp05B,KAAK2+4B,UAAUd,aAAa5+lB,SAAYj/S,KAAKm05B,UAAY,GAGzDn05B,KAAK2+4B,UAAUd,aAAa5+lB,SAAYj/S,KAAKo05B,WAAa,GAE1Dp05B,KAAK2+4B,UAAUd,aAAa5+lB,SAAW,KACvCj/S,KAAK2+4B,UAAUd,aAAa5+lB,SAAW,KAG3Cj/S,KAAKm05B,UAAY,IACjBn05B,KAAK2+4B,UAAUd,aAAa5+lB,SAAWr7S,KAAKiG,MAAO7J,KAAKm05B,UAAY,IAE/Dn05B,KAAKo05B,WAAa,MACvBp05B,KAAK2+4B,UAAUd,aAAa5+lB,SAAWr7S,KAAKiG,MAAO7J,KAAKo05B,WAAa,KAEzEp05B,KAAK2+4B,UAAU+kB,YAAc1j6B,KAAKw0vB,OAClCx0vB,KAAK2+4B,UAAUygB,UAAYp/5B,KAAKm+4B,cAChCn+4B,KAAK2+4B,UAAUE,YAAc,GAC7B7+4B,KAAKoz5B,mBACL,IAAI504B,EAAQxe,KAAK4o5B,aAAaoL,YAAYh05B,KAAK2+4B,UAAUd,aAAa592B,MAAMzhB,MACjC,GAAvCxe,KAAK2+4B,UAAUd,aAAa5+lB,SAC5Br2J,EAAS5oJ,KAAK2+4B,UAAUd,aAAa5+lB,SAAkD,IAAvCj/S,KAAK2+4B,UAAUd,aAAa5+lB,SAC3E8sB,GAAkB7xT,IAAO6xT,GAAkB5xT,GAO5Cna,KAAKix6B,iBAAgB,EAAMzy5B,EAAOoqI,IANlC5oJ,KAAK2+4B,UAAUC,YAAYn3iB,OAASvtV,EACpCla,KAAK2+4B,UAAUC,YAAYl3iB,OAASvtV,EACpCna,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAK2+4B,UAAUC,YAAYn3iB,OAASjpV,EACtExe,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAK2+4B,UAAUC,YAAYl3iB,OAAS9+M,GAK1E,IAAIolxB,EAAgBhu6B,KAAKgn6B,8BACrBF,EAAoB,CAAE5x1B,OAAQ,SAAU6x1B,sBAAuBiH,EAC/D/G,qBAAsB+G,GAC1Bhu6B,KAAKsgS,QAAQ,gBAAiBwmoB,GAC9B9m6B,KAAKop6B,2BAA2BtC,EAAkBG,sBAClDjn6B,KAAK2w6B,UAAU3w6B,KAAK2+4B,UAAUd,aAAa592B,MAC3CjgC,KAAK2+4B,UAAU4pB,SAAWvo6B,KAAKm+4B,cAC/Bn+4B,KAAKkz5B,gBAAgBlz5B,KAAK2+4B,WAC1B3+4B,KAAKu94B,QAAQnx4B,KAAKpM,KAAK2+4B,WACvB,IAAIwS,EAAc1n0B,GAAO,CAAC,EAAGzpF,KAAKmj5B,QAAS,CAAC,GAAG,GAC/Cnj5B,KAAKqx5B,mBAAmB,iBAAkB31O,EAASA,EAAQ6hO,QAAS7hO,EAAQz+M,UAAWk0b,GACvFnx5B,KAAK+x5B,YAAY/x5B,KAAKu94B,QAAQv94B,KAAKu94B,QAAQn64B,OAAS,IACpDpD,KAAKkp5B,2BACLlp5B,KAAK4k5B,iBAAkB,EACvB5k5B,KAAKs0jB,eAAe,QACpBt0jB,KAAKkw5B,oBACT,CACJ,EACAvT,EAAYhs4B,UAAUy45B,2BAA6B,SAAU4E,GAUzD,OATAhu6B,KAAK2+4B,UAAUyX,UAAY4X,EAAc734B,GACzCn2B,KAAK2+4B,UAAUC,YAAYn3iB,OAASumkB,EAAcvmkB,OAClDznW,KAAK2+4B,UAAUC,YAAYl3iB,OAASsmkB,EAActmkB,OAClD1nW,KAAK2+4B,UAAUC,YAAYpg4B,MAAQwv5B,EAAcxv5B,MACjDxe,KAAK2+4B,UAAUC,YAAYh2vB,OAASolxB,EAAcplxB,OAClD5oJ,KAAK2+4B,UAAUC,YAAYzB,KAAOn94B,KAAK2+4B,UAAUC,YAAYn3iB,OAASznW,KAAK2+4B,UAAUC,YAAYpg4B,MACjGxe,KAAK2+4B,UAAUC,YAAYxB,KAAOp94B,KAAK2+4B,UAAUC,YAAYl3iB,OAAS1nW,KAAK2+4B,UAAUC,YAAYh2vB,OACjG5oJ,KAAK2+4B,UAAUjB,eAAejgb,YAAcuwc,EAAcvwc,YAC1Dz9d,KAAK2+4B,UAAUjB,eAAeC,UAAYqwB,EAAcrwB,UAChD394B,KAAK2+4B,UAAUnzwB,OACnB,IAAK,UACDxrI,KAAK2+4B,UAAUC,YAAYpg4B,MAAQwv5B,EAAcxrpB,OAAS,EAC1D,MACJ,IAAK,OACL,IAAK,QACDxiR,KAAK2+4B,UAAUC,YAAYpg4B,MAAQwv5B,EAAc5q6B,OACjD,MACJ,IAAK,OACDpD,KAAK2+4B,UAAU7B,WAAakxB,EAAc/t4B,KAC1CjgC,KAAK2+4B,UAAUd,aAAa5+lB,SAAW+unB,EAAc/unB,SACrDj/S,KAAK2+4B,UAAUjB,eAAejgb,YAAcuwc,EAAcv3yB,MAGlE,GAA6B,SAAzBz2H,KAAK2+4B,UAAUnzwB,QAAqBugM,GAAkB/rU,KAAK2+4B,UAAUd,cACrE,IAAK,IAAI1x4B,EAAI,EAAGA,EAAI6h6B,EAAcx3V,UAAUpzkB,OAAQ+I,IACb,SAA/B6h6B,EAAcx3V,UAAUrqkB,GACxBnM,KAAK2+4B,UAAUd,aAAaztxB,MAAO,EAEC,WAA/B49yB,EAAcx3V,UAAUrqkB,GAC7BnM,KAAK2+4B,UAAUd,aAAavtxB,QAAS,EAED,cAA/B09yB,EAAcx3V,UAAUrqkB,KAC7BnM,KAAK2+4B,UAAUd,aAAattxB,WAAY,EAIxD,EACAosxB,EAAYhs4B,UAAU2g6B,cAAgB,SAAUzg6B,GAC5C,IAAI0g6B,EAAe,CAAC,EAmCpB,OAlCAA,EAAap74B,GAAKtlB,EAAIul5B,UACtBmb,EAAa3k6B,KAAO5M,KAAKur5B,aAAa164B,EAAI26H,OAC1C+lyB,EAAa9pkB,OAAS52V,EAAI+t4B,YAAYn3iB,OACtC8pkB,EAAa7pkB,OAAS72V,EAAI+t4B,YAAYl3iB,OACpB,cAAd72V,EAAI26H,OACJ+lyB,EAAa/y5B,MAAQ3N,EAAI+t4B,YAAYpg4B,MACrC+y5B,EAAa3oxB,OAAS/3I,EAAI+t4B,YAAYh2vB,OACtC2oxB,EAAa9zc,YAAc5sd,EAAI6s4B,eAAejgb,YAC9C8zc,EAAa5zB,UAAY9s4B,EAAI6s4B,eAAeC,UAC5C4zB,EAAaniyB,YAAcv+H,EAAI6s4B,eAAetuwB,aAE3B,YAAdv+H,EAAI26H,OACT+lyB,EAAa/upB,OAAS3xQ,EAAI+t4B,YAAYpg4B,MAAQ,EAC9C+y5B,EAAa9zc,YAAc5sd,EAAI6s4B,eAAejgb,YAC9C8zc,EAAa5zB,UAAY9s4B,EAAI6s4B,eAAeC,UAC5C4zB,EAAaniyB,YAAcv+H,EAAI6s4B,eAAetuwB,aAE3B,SAAdv+H,EAAI26H,OAAkC,UAAd36H,EAAI26H,OACjC+lyB,EAAanu6B,OAASyN,EAAI+t4B,YAAYpg4B,MACtC+y5B,EAAa9zc,YAAc5sd,EAAI6s4B,eAAejgb,YAC9C8zc,EAAaniyB,YAAcv+H,EAAI6s4B,eAAetuwB,aAE3B,SAAdv+H,EAAI26H,QACT+lyB,EAAatx4B,KAAOpvB,EAAIis4B,WACxBy0B,EAAatynB,SAAWpuS,EAAIgt4B,aAAa5+lB,SACzCsynB,EAAa96yB,MAAQ5lH,EAAI6s4B,eAAejgb,YACxC8zc,EAAa/6V,UAAY,GACrB3lkB,EAAIgt4B,aAAaztxB,MACjBmhzB,EAAa/6V,UAAUpqkB,KAAK,QAE5ByE,EAAIgt4B,aAAavtxB,QACjBihzB,EAAa/6V,UAAUpqkB,KAAK,WAG7Bml6B,CACX,EACA50B,EAAYhs4B,UAAU6g6B,uBAAyB,SAAU/k5B,GACrD,IAAI8k5B,EAAe,CAAC,EAMpB,OALAA,EAAap74B,GAAKn2B,KAAKi9d,UAAUxwc,GAAO0J,GACxCo74B,EAAa3k6B,KAAOuv4B,IAAUs1B,aAC9BF,EAAa/xc,OAAS/1Y,GAAO,GAAIzpF,KAAKi9d,UAAUxwc,GAAO+yc,QACvD+xc,EAAa9zc,YAAcz9d,KAAKi9d,UAAUxwc,GAAOgxc,YACjD8zc,EAAaniyB,YAAcpvI,KAAKi9d,UAAUxwc,GAAO2iH,YAC1CmiyB,CACX,EACA50B,EAAYhs4B,UAAU+g6B,gBAAkB,SAAUx35B,EAAGC,GACjD,IAAIuwE,GAAU,EAKd,OAJKqhP,GAAkB7xT,KAAO6xT,GAAkB5xT,IAAMD,GAAK,GAAKC,GAAK,GACjED,GAAKla,KAAK6q5B,YAAYrs4B,OAASrE,GAAKna,KAAK6q5B,YAAYrs4B,QACrDksE,GAAU,GAEPA,CACX,EACAiyzB,EAAYhs4B,UAAUgh6B,YAAc,WACI,SAAhC3x6B,KAAKmr5B,SAAShl5B,MAAMi+J,UACpBpkK,KAAK6v5B,mBACL7v5B,KAAKq25B,cACLr25B,KAAK6v5B,mBACL7v5B,KAAKi/4B,YAAYM,cAAe,EAExC,EACA5C,EAAYhs4B,UAAUih6B,aAAe,WACF,iBAA3B5x6B,KAAKi/4B,YAAYzzwB,QACjBxrI,KAAKmZ,QACLnZ,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,UAChCl5iB,KAAKi/4B,YAAYzzwB,MAAQ,IAE7BxrI,KAAK2x6B,aACT,EACAh1B,EAAYhs4B,UAAUkh6B,iBAAmB,SAAUr9K,GAChC,IAAXA,EACAx0vB,KAAKw0vB,OAAS,EAGdx0vB,KAAKw0vB,QAAUA,EAEC,MAAhBx0vB,KAAKw0vB,SAAmC,MAAjBx0vB,KAAKw0vB,SAC5Bx0vB,KAAKw0vB,OAAS,GAElBx0vB,KAAKs65B,uBACL,IAAIyD,EAAct00B,GAAO,GAAIzpF,KAAKu94B,QAAS,IAAI,GAC3CyB,EAAgBv1zB,GAAO,CAAC,EAAGzpF,KAAK2+4B,UAAW,CAAC,GAAG,GAqBnD,GApBA3+4B,KAAKu94B,QAAU,GACfv94B,KAAK6v5B,mBACA7v5B,KAAKuh5B,iBACNvh5B,KAAKs55B,8BAA8B,WAEvCt55B,KAAKiu6B,aAAaz5K,GACbx0vB,KAAKuh5B,kBACNvh5B,KAAKs55B,8BAA8B,WACnCt55B,KAAK2h5B,eAAev14B,KAAKoovB,IAEM,IAA/Bx0vB,KAAK2h5B,eAAev+4B,QACpBpD,KAAKy+5B,gCAETz+5B,KAAKu94B,QAAU9zzB,GAAO,GAAIs00B,EAAa,IAAI,GAC3C/95B,KAAK2+4B,UAAYl1zB,GAAO,CAAC,EAAGu1zB,EAAe,CAAC,GAAG,GAC3Ch/4B,KAAK6h5B,cACL7h5B,KAAKy55B,WAAWz55B,KAAK4p5B,cAEzB5p5B,KAAKqi6B,UAAU7tK,GACfx0vB,KAAK6v5B,mBACDr7J,EAAS,EACTx0vB,KAAKu/5B,8BAGL,IAAK,IAAIpz5B,EAAI,EAAGA,EAAI,EAAGA,IACnBnM,KAAKu/5B,yBAGbv/5B,KAAK+35B,eAAe/35B,KAAK4p5B,cACzB5p5B,KAAK8x6B,yBAAyBt9K,EAClC,EACAmoJ,EAAYhs4B,UAAUmh6B,yBAA2B,SAAUt9K,GACvD,IAAKzob,GAAkB/rU,KAAKyw5B,sBAAwB1klB,GAAkB/rU,KAAKyg6B,sBAAuB,CAC9F,IAAI9hB,EAAYl1zB,GAAO,CAAC,EAAGzpF,KAAK2+4B,UAAW,CAAC,GAAG,GAC3CpB,EAAU9zzB,GAAO,GAAIzpF,KAAKu94B,QAAS,IAAI,GACvCiG,EAAY,CAAE/7iB,OAAQznW,KAAKmh5B,QAASz5iB,OAAQ1nW,KAAKoh5B,OAAQ5i4B,MAAOxe,KAAKu55B,SAAU3wwB,OAAQ5oJ,KAAKw55B,WAC5FjW,EAAa,CAAE97iB,OAAQznW,KAAKih5B,SAAUv5iB,OAAQ1nW,KAAKkh5B,QAAS1i4B,MAAOxe,KAAKm05B,UAAWvrwB,OAAQ5oJ,KAAKo05B,YACpGp05B,KAAKu94B,QAAU,GACfv94B,KAAKu94B,QAAQnx4B,KAAKq9E,GAAO,CAAC,EAAGzpF,KAAKyw5B,mBAAoB,CAAC,GAAG,IAC1Dzw5B,KAAKmh5B,QAAU,EACfnh5B,KAAKoh5B,OAAS,EACdph5B,KAAKu55B,SAAWv55B,KAAK2r5B,QAAQnt4B,MAC7Bxe,KAAKw55B,UAAYx55B,KAAK2r5B,QAAQ/iwB,OAC9B5oJ,KAAKih5B,SAAWjh5B,KAAKyg6B,qBAAqBh5jB,OAC1CznW,KAAKkh5B,QAAUlh5B,KAAKyg6B,qBAAqB/4jB,OACzC1nW,KAAKm05B,UAAYn05B,KAAKyg6B,qBAAqBji5B,MAC3Cxe,KAAKo05B,WAAap05B,KAAKyg6B,qBAAqB73wB,OACpB,kBAAZ4rmB,IACRx0vB,KAAKs65B,uBACLt65B,KAAKy+5B,iCAETz+5B,KAAKu94B,QAAQ,GAAG6hB,UAAY,GAC5Bp/5B,KAAKqi6B,UAAU7tK,GACfx0vB,KAAKyw5B,mBAAqBhn0B,GAAO,CAAC,EAAGzpF,KAAKu94B,QAAQ,GAAI,CAAC,GAAG,GAC1Dv94B,KAAKyg6B,qBAAuB,CAAEh5jB,OAAQznW,KAAKih5B,SAAUv5iB,OAAQ1nW,KAAKkh5B,QAAS1i4B,MAAOxe,KAAKm05B,UAAWvrwB,OAAQ5oJ,KAAKo05B,YAC/Gp05B,KAAKu94B,QAAUA,EACfv94B,KAAK2+4B,UAAYA,EACjB3+4B,KAAKmh5B,QAAUqC,EAAU/7iB,OACzBznW,KAAKoh5B,OAASoC,EAAU97iB,OACxB1nW,KAAKu55B,SAAW/V,EAAUhl4B,MAC1Bxe,KAAKw55B,UAAYhW,EAAU56vB,OAC3B5oJ,KAAKih5B,SAAWsC,EAAW97iB,OAC3BznW,KAAKkh5B,QAAUqC,EAAW77iB,OAC1B1nW,KAAKm05B,UAAY5Q,EAAW/k4B,MAC5Bxe,KAAKo05B,WAAa7Q,EAAW36vB,MACjC,CACJ,EACA+zvB,EAAYhs4B,UAAU8t5B,8BAAgC,SAAUH,GAC5D,GAAIt+5B,KAAKw0vB,OAAS,KAAO,GAAKx0vB,KAAKw0vB,OAAS,MAAQ,EAAG,CACnDx0vB,KAAKih5B,UAAYjh5B,KAAK6q5B,YAAYrs4B,MAAQxe,KAAKo05B,YAAc,EAC7Dp05B,KAAKkh5B,SAAWlh5B,KAAK6q5B,YAAYjiwB,OAAS5oJ,KAAKm05B,WAAa,EAC5D,IAAIzn0B,EAAO1sF,KAAKm05B,UAChBn05B,KAAKm05B,UAAYn05B,KAAKo05B,WACtBp05B,KAAKo05B,WAAa1n0B,CACtB,MAEQq/O,GAAkBuylB,KAClBt+5B,KAAKih5B,UAAYjh5B,KAAK6q5B,YAAYrs4B,MAAQxe,KAAKm05B,WAAa,EAC5Dn05B,KAAKkh5B,SAAWlh5B,KAAK6q5B,YAAYjiwB,OAAS5oJ,KAAKo05B,YAAc,EAGzE,EACAzX,EAAYhs4B,UAAUoh6B,8BAAgC,SAAUhw2B,GAK5D,IAJA,IAAIiw2B,EAAc,EACdC,EAAa,EACbjjY,EAAa,EACbr3P,EAAW,EACNxrS,EAAI,EAAGA,EAAI41D,EAAW3+D,OAAQ+I,IACb,KAAlB41D,EAAW51D,IAA+B,gBAAlB41D,EAAW51D,IAEnC8l6B,EAAa,EACbjjY,EAAa,EACbr3P,EAAW,EACS,MAJpBq6nB,IAKIjw2B,EAAWzjC,MACXyjC,EAAWzjC,MACXyjC,EAAWzjC,MACXyjC,EAAWzjC,SAGS,KAAnByjC,EAAW51D,IAAgC,eAAlB41D,EAAW51D,IAEzC6l6B,EAAc,EACdhjY,EAAa,EACbr3P,EAAW,EACQ,MAJnBs6nB,IAKIlw2B,EAAWzjC,MACXyjC,EAAWzjC,MACXyjC,EAAWzjC,MACXyjC,EAAWzjC,QAGQ,eAAlByjC,EAAW51D,IAAyC,mBAAlB41D,EAAW51D,IAElD8l6B,EAAa,EACbD,EAAc,EACdr6nB,EAAW,EACQ,MAJnBq3P,IAKIjte,EAAWzjC,MACXyjC,EAAWzjC,QAGQ,aAAlByjC,EAAW51D,IAAuC,iBAAlB41D,EAAW51D,KAEhD6iiB,EAAa,EACbijY,EAAa,EACbD,EAAc,EACG,MAJjBr6nB,IAKI51O,EAAWzjC,MACXyjC,EAAWzjC,QAIvB,OAAOyjC,CACX,EACA460B,EAAYhs4B,UAAUuh6B,uBAAyB,SAAUnw2B,GACrD,IAAK,IAAI51D,EAAI,EAAGA,EAAI41D,EAAW3+D,OAAQ+I,IAC9B4/T,GAAkBhqQ,EAAW51D,EAAI,MACX,eAAlB41D,EAAW51D,IAAyC,mBAAlB41D,EAAW51D,IACpB,aAAtB41D,EAAW51D,EAAI,IAAuC,iBAAlB41D,EAAW51D,IAC5B,eAAtB41D,EAAW51D,EAAI,IAAyC,mBAAlB41D,EAAW51D,IAC3B,aAAtB41D,EAAW51D,EAAI,IAAuC,iBAAlB41D,EAAW51D,MAMxB,aAAlB41D,EAAW51D,IAAuC,iBAAlB41D,EAAW51D,IACvB,eAAtB41D,EAAW51D,EAAI,IAA6C,mBAAtB41D,EAAW51D,EAAI,IAClC,aAAtB41D,EAAW51D,EAAI,IAAuC,iBAAlB41D,EAAW51D,IACzB,eAAtB41D,EAAW51D,EAAI,IAAyC,mBAAlB41D,EAAW51D,MARlD41D,EAAWzjC,MACXyjC,EAAWzjC,MACXyjC,EAAWzjC,MACXyjC,EAAWzjC,OAavB,OAAOyjC,CACX,EACA460B,EAAYhs4B,UAAUwh6B,yBAA2B,SAAUpw2B,GACvD,IAAK,IAAI51D,EAAI,EAAGA,EAAI41D,EAAW3+D,OAAQ+I,IAC9B4/T,GAAkBhqQ,EAAW51D,EAAI,MACX,KAAlB41D,EAAW51D,IAA+B,gBAAlB41D,EAAW51D,KACZ,KAAvB41D,EAAW51D,EAAI,IAAgC,eAAlB41D,EAAW51D,OAIhB,KAAnB41D,EAAW51D,IAAgC,eAAlB41D,EAAW51D,IACnB,KAAtB41D,EAAW51D,EAAI,IAA+B,gBAAlB41D,EAAW51D,MAJxC41D,EAAWzjC,MACXyjC,EAAWzjC,OASvB,OAAOyjC,CACX,EACA460B,EAAYhs4B,UAAU4v5B,oBAAsB,SAAUx+1B,EAAYqw2B,GAQ9D,OAPArw2B,EAAa/hE,KAAK+x6B,8BAA8Bhw2B,GAChDA,EAAa/hE,KAAKky6B,uBAAuBnw2B,GAEf,KAD1BA,EAAa/hE,KAAKmy6B,yBAAyBpw2B,IAC5B3+D,QAAgBgv6B,IAC3Bpy6B,KAAKw0vB,OAAS,EACdx0vB,KAAKm+4B,cAAgB,IAElBp80B,CACX,EACA460B,EAAYhs4B,UAAU0h6B,eAAiB,SAAUp7zB,GAY7C,GAX6B,IAAzBj3G,KAAKsh5B,SAASl+4B,OACdpD,KAAKsh5B,SAASl14B,KAAK6qG,GAG6B,cAA5Cj3G,KAAKsh5B,SAASth5B,KAAKsh5B,SAASl+4B,OAAS,GACrCpD,KAAKsh5B,SAAShj3B,MAGdt+B,KAAKsh5B,SAASl14B,KAAK6qG,GAGvBj3G,KAAKsh5B,SAASl+4B,QAAU,EACxB,GAAgD,eAA5CpD,KAAKsh5B,SAASth5B,KAAKsh5B,SAASl+4B,OAAS,IAAmE,aAA5CpD,KAAKsh5B,SAASth5B,KAAKsh5B,SAASl+4B,OAAS,IACrD,eAA5CpD,KAAKsh5B,SAASth5B,KAAKsh5B,SAASl+4B,OAAS,IAAmE,aAA5CpD,KAAKsh5B,SAASth5B,KAAKsh5B,SAASl+4B,OAAS,GACjG,IAAK,IAAI+I,EAAI,EAAGA,EAAI,EAAGA,IACnBnM,KAAKsh5B,SAAShj3B,WAGjB,GAAgD,aAA5Ct+B,KAAKsh5B,SAASth5B,KAAKsh5B,SAASl+4B,OAAS,IAAiE,eAA5CpD,KAAKsh5B,SAASth5B,KAAKsh5B,SAASl+4B,OAAS,IACxD,aAA5CpD,KAAKsh5B,SAASth5B,KAAKsh5B,SAASl+4B,OAAS,IAAiE,eAA5CpD,KAAKsh5B,SAASth5B,KAAKsh5B,SAASl+4B,OAAS,GAC/F,IAAS+I,EAAI,EAAGA,EAAI,EAAGA,IACnBnM,KAAKsh5B,SAAShj3B,KAI9B,EACAq+2B,EAAYhs4B,UAAUy1uB,eAAiB,WACnCpmvB,KAAK4p5B,aAAa9wW,UAAU94iB,KAAK4p5B,aAAahtb,OAAOp+c,MAAO,GAC5Dxe,KAAK4p5B,aAAarsb,OAAO,EAAG,GAC5Bv9d,KAAK4o5B,aAAa9vW,UAAU94iB,KAAK4o5B,aAAahsb,OAAOp+c,MAAO,GAC5Dxe,KAAK4o5B,aAAarrb,OAAO,EAAG,EAChC,EACAo/a,EAAYhs4B,UAAU01uB,aAAe,WACjCrmvB,KAAK4p5B,aAAa9wW,UAAU,EAAG94iB,KAAK4p5B,aAAahtb,OAAOh0U,QACxD5oJ,KAAK4p5B,aAAarsb,MAAM,GAAI,GAC5Bv9d,KAAK4o5B,aAAa9vW,UAAU,EAAG94iB,KAAK4o5B,aAAahsb,OAAOh0U,QACxD5oJ,KAAK4o5B,aAAarrb,MAAM,GAAI,EAChC,EACAo/a,EAAYhs4B,UAAU2h6B,gBAAkB,SAAUr7zB,GAC5B,eAAdA,GAA8Bj3G,KAAKw0vB,OAAS,KAAO,GAAKx0vB,KAAKw0vB,OAAS,MAAQ,EAC9Ex0vB,KAAKqmvB,eAEc,aAAdpvoB,GAA4Bj3G,KAAKw0vB,OAAS,KAAO,GAAKx0vB,KAAKw0vB,OAAS,MAAQ,GAG9D,eAAdv9oB,EAFLj3G,KAAKomvB,iBAKc,aAAdnvoB,GACLj3G,KAAKqmvB,cAEb,EACAs2J,EAAYhs4B,UAAU2p5B,qBAAuB,WACzC,IAAIyG,EACA/g6B,KAAKw0vB,OAAS,KAAO,GAAKx0vB,KAAKw0vB,OAAS,MAAQ,GAChDusK,EAAe/g6B,KAAKgh6B,iBAAiBhh6B,KAAKw55B,UAAWx55B,KAAKu55B,UACtDv55B,KAAK0h5B,eACLqf,EAAavi5B,OAAUui5B,EAAavi5B,MAAQxe,KAAK+g5B,WACjDggB,EAAan4wB,QAAWm4wB,EAAan4wB,OAAS5oJ,KAAK+g5B,WACnD/g5B,KAAKm05B,UAAY4M,EAAan4wB,OAC9B5oJ,KAAKo05B,WAAa2M,EAAavi5B,OAEnCxe,KAAKih5B,UAAYjh5B,KAAK6q5B,YAAY9lpB,YAAcg8pB,EAAan4wB,QAAU,EACvE5oJ,KAAKkh5B,SAAWlh5B,KAAK6q5B,YAAY3lpB,aAAe67pB,EAAavi5B,OAAS,EACtExe,KAAKm05B,UAAY4M,EAAan4wB,OAC9B5oJ,KAAKo05B,WAAa2M,EAAavi5B,QAG/Bui5B,EAAe/g6B,KAAKgh6B,iBAAiBhh6B,KAAKu55B,SAAUv55B,KAAKw55B,WACrDx55B,KAAK0h5B,eACLqf,EAAavi5B,OAAUui5B,EAAavi5B,MAAQxe,KAAK+g5B,WACjDggB,EAAan4wB,QAAWm4wB,EAAan4wB,OAAS5oJ,KAAK+g5B,WACnD/g5B,KAAKm05B,UAAY4M,EAAavi5B,MAC9Bxe,KAAKo05B,WAAa2M,EAAan4wB,QAEnC5oJ,KAAKih5B,UAAYjh5B,KAAK6q5B,YAAY9lpB,YAAcg8pB,EAAavi5B,OAAS,EACtExe,KAAKkh5B,SAAWlh5B,KAAK6q5B,YAAY3lpB,aAAe67pB,EAAan4wB,QAAU,EACvE5oJ,KAAKm05B,UAAY4M,EAAavi5B,MAC9Bxe,KAAKo05B,WAAa2M,EAAan4wB,OAEvC,EACA+zvB,EAAYhs4B,UAAUux5B,YAAc,WAChCli6B,KAAKwh5B,eAAgB,EACrB,IAAI2gB,EAAoBni6B,KAAKm+4B,cACzBikB,EAAepi6B,KAAKsh5B,SACpByc,EAAct00B,GAAO,GAAIzpF,KAAKu94B,QAAS,IAAI,GAC3CyB,EAAgBv1zB,GAAO,CAAC,EAAGzpF,KAAK2+4B,UAAW,CAAC,GAAG,GACnD3+4B,KAAKsh5B,SAAW,GAChBth5B,KAAKu94B,QAAU,GACfv94B,KAAK6v5B,mBACL7v5B,KAAKu65B,wBAAwB,WAC7B,IAAI7t0B,EAAO1sF,KAAK4p5B,aAAaxj5B,OAC7BpG,KAAKq45B,yBACLr45B,KAAK4p5B,aAAa5qb,UAAUh/d,KAAK2r5B,QAAS3r5B,KAAKmh5B,QAASnh5B,KAAKoh5B,OAAQph5B,KAAKu55B,SAAUv55B,KAAKw55B,UAAWx55B,KAAKih5B,SAAUjh5B,KAAKkh5B,QAASlh5B,KAAKm05B,UAAWn05B,KAAKo05B,YACtJp05B,KAAK4p5B,aAAaxj5B,OAASsmF,EAC3B1sF,KAAKu65B,wBAAwB,WAAW,GACd,KAAtB4H,GAAmD,KAAvBni6B,KAAKm+4B,gBACjCgkB,EAAoBni6B,KAAKm+4B,eAE7Bn+4B,KAAKm+4B,cAAgBgkB,EACrBni6B,KAAKsh5B,SAAW8gB,EAChBpi6B,KAAKu94B,QAAU9zzB,GAAO,GAAIs00B,EAAa,IAAI,GAC3C/95B,KAAK4p5B,aAAaxj5B,OAAS,OAC3BpG,KAAK835B,iBACL935B,KAAK4p5B,aAAaxj5B,OAASsmF,EACa,IAApCsyzB,EAAcJ,YAAYpg4B,QAC1Bxe,KAAK2+4B,UAAYl1zB,GAAO,CAAC,EAAGu1zB,EAAe,CAAC,GAAG,IAEnDh/4B,KAAKwh5B,eAAgB,CACzB,EACA7E,EAAYhs4B,UAAUuo5B,eAAiB,SAAUt35B,GAQ7C,OANc,IAAVA,EACc,EAGA,EAAc,GAARA,EAAe,GAG3C,EACA+64B,EAAYhs4B,UAAU4h6B,eAAiB,SAAU3w6B,GAC7C,IAAIuxa,EAOJ,OALIA,EADU,IAAVvxa,EACc,EAGe,KAAbA,EAAQ,GAAY,GAEjCgC,KAAKmgB,MAAMovZ,EACtB,EACAwpe,EAAYhs4B,UAAUwo5B,yBAA2B,SAAUv35B,GAQvD,OANc,IAAVA,EACc,EAGA,EAAKA,EAAQ,GAGnC,EACA+64B,EAAYhs4B,UAAU6h6B,yBAA2B,SAAU5w6B,GACvD,IAAIuxa,EAOJ,OALIA,EADU,IAAVvxa,EACc,EAGc,KAAbA,EAAQ,GAEpBgC,KAAKmgB,MAAMovZ,EACtB,EACAwpe,EAAYhs4B,UAAU8h6B,qBAAuB,SAAU9pL,GACnD,IAAK,IAAIx8uB,EAAI,EAAGA,EAAIw8uB,EAAUz+sB,KAAK9mC,OAAQ+I,GAAK,EAAG,CAC/C,IACI+pwB,EAAS,EADDvtB,EAAUz+sB,KAAK/9B,GAAKw8uB,EAAUz+sB,KAAK/9B,EAAI,GAAKw8uB,EAAUz+sB,KAAK/9B,EAAI,GAE/D,MACR+pwB,EAAS,KAEbvtB,EAAUz+sB,KAAK/9B,GAAK+pwB,EACpBvtB,EAAUz+sB,KAAK/9B,EAAI,GAAK+pwB,EACxBvtB,EAAUz+sB,KAAK/9B,EAAI,GAAK+pwB,EACxBvtB,EAAUz+sB,KAAK/9B,EAAI,GAAK,GAC5B,CACA,OAAOw8uB,CACX,EACAg0J,EAAYhs4B,UAAUq54B,cAAgB,SAAUpo5B,GAC5C5B,KAAK4x6B,eACL5x6B,KAAKgg5B,gBAAgBC,WAAar+4B,EAClCA,EAAQ5B,KAAKk55B,eAAet35B,GAC5B,IAAIuv5B,EAAc1n0B,GAAO,CAAC,EAAGzpF,KAAKmj5B,QAAS,CAAC,GAAG,GAC3CznO,EAAU17qB,KAAKix5B,gBACnBv1O,EAAQ6hO,QAAU9zzB,GAAO,GAAIzpF,KAAKu94B,QAAS,IAAI,GAC/C7hO,EAAQz+M,UAAYxzY,GAAO,GAAIzpF,KAAKi9d,UAAW,IAAI,GACnDy+M,EAAQgoO,iBAAmBj6zB,GAAO,GAAIzpF,KAAK0j5B,iBAAkB,IAAI,GACjE1j5B,KAAK245B,iBAAiB,aAAc/25B,GACpC5B,KAAKqx5B,mBAAmB,aAAc31O,EAASA,EAAQ6hO,QAAS7hO,EAAQz+M,UAAWk0b,EACvF,EACAxU,EAAYhs4B,UAAUs54B,YAAc,SAAUro5B,GAC1C5B,KAAK4x6B,eACL5x6B,KAAKgg5B,gBAAgBE,SAAWt+4B,EAChCA,EAAQ5B,KAAKk55B,eAAet35B,GAC5BA,GAAS,IACT,IAAIuv5B,EAAc1n0B,GAAO,CAAC,EAAGzpF,KAAKmj5B,QAAS,CAAC,GAAG,GAC3CznO,EAAU17qB,KAAKix5B,gBACnBv1O,EAAQ6hO,QAAU9zzB,GAAO,GAAIzpF,KAAKu94B,QAAS,IAAI,GAC/C7hO,EAAQz+M,UAAYxzY,GAAO,GAAIzpF,KAAKi9d,UAAW,IAAI,GACnDy+M,EAAQgoO,iBAAmBj6zB,GAAO,GAAIzpF,KAAK0j5B,iBAAkB,IAAI,GACjE1j5B,KAAK245B,iBAAiB,WAAY/25B,GAClC5B,KAAKqx5B,mBAAmB,WAAY31O,EAASA,EAAQ6hO,QAAS7hO,EAAQz+M,UAAWk0b,EACrF,EACAxU,EAAYhs4B,UAAUu54B,OAAS,SAAUto5B,GACrC5B,KAAK4x6B,eACL5x6B,KAAKgg5B,gBAAgBG,IAAMv+4B,EAC3BA,GAAS,EACT,IAAIuv5B,EAAc1n0B,GAAO,CAAC,EAAGzpF,KAAKmj5B,QAAS,CAAC,GAAG,GAC3CznO,EAAU17qB,KAAKix5B,gBACnBv1O,EAAQ6hO,QAAU9zzB,GAAO,GAAIzpF,KAAKu94B,QAAS,IAAI,GAC/C7hO,EAAQz+M,UAAYxzY,GAAO,GAAIzpF,KAAKi9d,UAAW,IAAI,GACnDy+M,EAAQgoO,iBAAmBj6zB,GAAO,GAAIzpF,KAAK0j5B,iBAAkB,IAAI,GACjE1j5B,KAAK245B,iBAAiB,MAAO/25B,GAC7B5B,KAAKqx5B,mBAAmB,MAAO31O,EAASA,EAAQ6hO,QAAS7hO,EAAQz+M,UAAWk0b,EAChF,EACAxU,EAAYhs4B,UAAUw54B,cAAgB,SAAUvo5B,GAC5C5B,KAAK4x6B,eACL5x6B,KAAKgg5B,gBAAgBI,WAAax+4B,EAClCA,EAAQ5B,KAAKm55B,yBAAyBv35B,GACtCA,GAAS,IACT,IAAIuv5B,EAAc1n0B,GAAO,CAAC,EAAGzpF,KAAKmj5B,QAAS,CAAC,GAAG,GAC3CznO,EAAU17qB,KAAKix5B,gBACnBv1O,EAAQ6hO,QAAU9zzB,GAAO,GAAIzpF,KAAKu94B,QAAS,IAAI,GAC/C7hO,EAAQz+M,UAAYxzY,GAAO,GAAIzpF,KAAKi9d,UAAW,IAAI,GACnDy+M,EAAQgoO,iBAAmBj6zB,GAAO,GAAIzpF,KAAK0j5B,iBAAkB,IAAI,GACjE1j5B,KAAK245B,iBAAiB,aAAc/25B,GACpC5B,KAAKqx5B,mBAAmB,aAAc31O,EAASA,EAAQ6hO,QAAS7hO,EAAQz+M,UAAWk0b,EACvF,EACAxU,EAAYhs4B,UAAU054B,WAAa,SAAUzo5B,GACzC5B,KAAK4x6B,eACL5x6B,KAAKgg5B,gBAAgB1xwB,QAAU1sI,EAC3BA,GAAS,GACTA,GAAS,IAEM,KAAVA,EACLA,EAAQ,IAEO,KAAVA,EACLA,EAAQ,GAEO,KAAVA,EACLA,EAAQ,IAEO,KAAVA,EACLA,EAAQ,GAEO,IAAVA,IACLA,EAAQ,KAEZ,IAAIuv5B,EAAc1n0B,GAAO,CAAC,EAAGzpF,KAAKmj5B,QAAS,CAAC,GAAG,GAC3CznO,EAAU17qB,KAAKix5B,gBACnBv1O,EAAQ6hO,QAAU9zzB,GAAO,GAAIzpF,KAAKu94B,QAAS,IAAI,GAC/C7hO,EAAQz+M,UAAYxzY,GAAO,GAAIzpF,KAAKi9d,UAAW,IAAI,GACnDy+M,EAAQgoO,iBAAmBj6zB,GAAO,GAAIzpF,KAAK0j5B,iBAAkB,IAAI,GACjE1j5B,KAAK245B,iBAAiB,UAAW/25B,GACjC5B,KAAKqx5B,mBAAmB,UAAW31O,EAASA,EAAQ6hO,QAAS7hO,EAAQz+M,UAAWk0b,EACpF,EACAxU,EAAYhs4B,UAAU254B,QAAU,SAAU1o5B,GACtC5B,KAAK4x6B,eACL5x6B,KAAKgg5B,gBAAgB924B,KAAOtH,EAC5BA,GAAS,GAETA,GAAS,GACT,IAAIuv5B,EAAc1n0B,GAAO,CAAC,EAAGzpF,KAAKmj5B,QAAS,CAAC,GAAG,GAC3CznO,EAAU17qB,KAAKix5B,gBACnBv1O,EAAQ6hO,QAAU9zzB,GAAO,GAAIzpF,KAAKu94B,QAAS,IAAI,GAC/C7hO,EAAQz+M,UAAYxzY,GAAO,GAAIzpF,KAAKi9d,UAAW,IAAI,GACnDy+M,EAAQgoO,iBAAmBj6zB,GAAO,GAAIzpF,KAAK0j5B,iBAAkB,IAAI,GACjE1j5B,KAAK245B,iBAAiB,OAAQ/25B,GAC9B5B,KAAKqx5B,mBAAmB,OAAQ31O,EAASA,EAAQ6hO,QAAS7hO,EAAQz+M,UAAWk0b,EACjF,EACAxU,EAAYhs4B,UAAUy54B,YAAc,SAAUxo5B,GAC1C5B,KAAK4x6B,eACL5x6B,KAAKgg5B,gBAAgBK,SAAWz+4B,EAChCA,EAAQ5B,KAAKk55B,eAAet35B,GAC5B,IAAIuv5B,EAAc1n0B,GAAO,CAAC,EAAGzpF,KAAKmj5B,QAAS,CAAC,GAAG,GAC3CznO,EAAU17qB,KAAKix5B,gBACnBv1O,EAAQ6hO,QAAU9zzB,GAAO,GAAIzpF,KAAKu94B,QAAS,IAAI,GAC/C7hO,EAAQz+M,UAAYxzY,GAAO,GAAIzpF,KAAKi9d,UAAW,IAAI,GACnDy+M,EAAQgoO,iBAAmBj6zB,GAAO,GAAIzpF,KAAK0j5B,iBAAkB,IAAI,GACjE1j5B,KAAK245B,iBAAiB,WAAY/25B,GAClC5B,KAAKqx5B,mBAAmB,WAAY31O,EAASA,EAAQ6hO,QAAS7hO,EAAQz+M,UAAWk0b,EACrF,EACAxU,EAAYhs4B,UAAU0k5B,UAAY,SAAUzo5B,GACxCA,EAAOA,EAAK8T,cACZ1gB,KAAK4x6B,eACL,IAAIc,EAAa1y6B,KAAKijb,cAClBkue,EAAc1n0B,GAAO,CAAC,EAAGzpF,KAAKmj5B,QAAS,CAAC,GAAG,GAC3CznO,EAAU17qB,KAAKix5B,gBACnBv1O,EAAQ6hO,QAAU9zzB,GAAO,GAAIzpF,KAAKu94B,QAAS,IAAI,GAC/C7hO,EAAQz+M,UAAYxzY,GAAO,GAAIzpF,KAAKi9d,UAAW,IAAI,GACnDy+M,EAAQgoO,iBAAmBj6zB,GAAO,GAAIzpF,KAAK0j5B,iBAAkB,IAAI,GACjE1j5B,KAAK245B,iBAAiB/r5B,EAAM,MAC5B5M,KAAKqx5B,mBAAmBzk5B,EAAM8uqB,EAASA,EAAQ6hO,QAAS7hO,EAAQz+M,UAAWk0b,EAAa,KAAM,KAAMuhB,EACxG,EACA/1B,EAAYhs4B,UAAUum5B,YAAc,SAAUyb,GAC1C,IAAIjm1B,EAAO1sF,KAAK4p5B,aAAaxj5B,OAC7BpG,KAAKq25B,cACLr25B,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAK6q5B,YAAYrs4B,MAAOxe,KAAK6q5B,YAAYjiwB,QAC3E5oJ,KAAK4p5B,aAAa7qb,UAAU,EAAG,EAAG/+d,KAAK6q5B,YAAYrs4B,MAAOxe,KAAK6q5B,YAAYjiwB,QACvE+pxB,EACA3y6B,KAAKw+5B,sBAAsBx+5B,KAAK4p5B,aAAc,YAG1C5p5B,KAAK+g5B,WAAa,IAClB/g5B,KAAK0h5B,cAAe,GAExB1h5B,KAAKs55B,8BAA8B,YAEvCt55B,KAAKq45B,yBACLr45B,KAAKg+5B,4BACLh+5B,KAAK4p5B,aAAa5qb,UAAUh/d,KAAK2r5B,QAAS3r5B,KAAKmh5B,QAASnh5B,KAAKoh5B,OAAQph5B,KAAKu55B,SAAUv55B,KAAKw55B,UAAWx55B,KAAKih5B,SAAUjh5B,KAAKkh5B,QAASlh5B,KAAKm05B,UAAWn05B,KAAKo05B,YACtJp05B,KAAKg+5B,4BACD2U,EACA3y6B,KAAKw+5B,sBAAsBx+5B,KAAK4p5B,aAAc,YAG9C5p5B,KAAKs55B,8BAA8B,WACnCt55B,KAAK0h5B,cAAe,GAExB1h5B,KAAK4p5B,aAAaxj5B,OAAS,OAC3BpG,KAAK835B,iBACL935B,KAAK+35B,eAAe/35B,KAAK4p5B,cACzB5p5B,KAAK4p5B,aAAaxj5B,OAASsmF,GACvB1sF,KAAK6h5B,eAAkB91kB,GAAkB/rU,KAAKyw5B,qBAAyD,gBAAlCzw5B,KAAKyw5B,mBAAmBjlxB,QAC7FxrI,KAAKy55B,WAAWz55B,KAAK4p5B,aAE7B,EACAjN,EAAYhs4B,UAAUii6B,cAAgB,SAAU/h6B,GAC5C7Q,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAK6q5B,YAAYrs4B,MAAOxe,KAAK6q5B,YAAYjiwB,QAC3E5oJ,KAAK4p5B,aAAa7qb,UAAU,EAAG,EAAG/+d,KAAK6q5B,YAAYrs4B,MAAOxe,KAAK6q5B,YAAYjiwB,QAC3E5oJ,KAAK425B,mBACL525B,KAAKmp5B,4BACLnp5B,KAAKmr5B,SAAShl5B,MAAMi+J,QAAU,QAC9BpkK,KAAKmr5B,SAAShl5B,MAAMq8c,WAAa3xc,EAAIgt4B,aAAar7b,WAClDxid,KAAKmr5B,SAAShl5B,MAAM84S,SAAWpuS,EAAIgt4B,aAAa5+lB,SAAW,KAC3Dj/S,KAAKmr5B,SAAShl5B,MAAMswH,MAAQ5lH,EAAI6s4B,eAAejgb,YAC/Cz9d,KAAKmr5B,SAAShl5B,MAAMgoI,WAAat9H,EAAIgt4B,aAAaztxB,KAAO,OAAS,SAClEpwH,KAAKmr5B,SAAShl5B,MAAMqwkB,UAAY3lkB,EAAIgt4B,aAAavtxB,OAAS,SAAW,SACrEtwH,KAAKmr5B,SAAShl5B,MAAMqhQ,OAAS,aAAexnQ,KAAKil5B,UAAUjl5B,KAAKkta,OAAqB,aACrFlta,KAAKmr5B,SAASvp5B,MAAQiP,EAAIis4B,WAC1B984B,KAAK2+4B,UAAYl1zB,GAAO,CAAC,EAAG54E,EAAK,CAAC,GAAG,GACrC7Q,KAAKoz5B,mBACLpz5B,KAAKmr5B,SAAShl5B,MAAMqY,MAAQxe,KAAK2+4B,UAAUC,YAAYpg4B,MAAQ,IACnE,EACAm+3B,EAAYhs4B,UAAUki6B,iBAAmB,SAAUjm6B,EAAM66V,EAAQC,EAAQlpV,EAAOoqI,GAC5E,IAAI42U,EACAygc,EAAY,QAAUrz5B,EACM,gBAA5Bqz5B,EAAUv/4B,cACqB,KAA3B1gB,KAAKi/4B,YAAYzzwB,OAA2C,gBAA3BxrI,KAAKi/4B,YAAYzzwB,OAClDxrI,KAAKgg6B,oBAAoB,cAAev4jB,EAAQC,EAAQlpV,EAAOoqI,GAGlC,gBAA5Bq3wB,EAAUv/4B,eACf1gB,KAAKyq5B,YAAYtk5B,MAAMi+J,QAAU,QACjCpkK,KAAK684B,YAAa,IAGlB784B,KAAKi/4B,YAAYM,cAAe,EAChCv/4B,KAAKi/4B,YAAYzzwB,MAAQy0xB,EAAUv/4B,cAC/BlC,GAASoqI,EACT42U,EAAS,CAAE/3H,OAAQA,EAAQC,OAAQA,EAAQy1iB,KAAM11iB,EAASjpV,EAAO4+3B,KAAM11iB,EAAS9+M,EAC5EpqI,MAAOA,EAAOoqI,OAAQA,GAErBpqI,GAAuB,gBAAdyh5B,IACdzgc,EAAS,CAAE/3H,OAAQA,EAAQC,OAAQA,EAAQy1iB,KAAM11iB,EAASjpV,EAAO4+3B,KAAM11iB,EAASlpV,EAC5EA,MAAOA,EAAOoqI,OAAQpqI,IAE9Bxe,KAAK2+4B,UAAUnzwB,MAAQy0xB,EAAUv/4B,cACjC1gB,KAAKkg6B,wBACqC,IAAtClg6B,KAAK2+4B,UAAUC,YAAYn3iB,QAAsD,IAAtCznW,KAAK2+4B,UAAUC,YAAYl3iB,QACjC,IAArC1nW,KAAK2+4B,UAAUC,YAAYpg4B,OAAqD,IAAtCxe,KAAK2+4B,UAAUC,YAAYh2vB,SACrE42U,EAAS,CAAE/3H,OAAQznW,KAAK2+4B,UAAUC,YAAYn3iB,OAAQC,OAAQ1nW,KAAK2+4B,UAAUC,YAAYl3iB,OACrFy1iB,KAAMn94B,KAAK2+4B,UAAUC,YAAYzB,KAAMC,KAAMp94B,KAAK2+4B,UAAUC,YAAYxB,KACxE5+3B,MAAOxe,KAAK2+4B,UAAUC,YAAYpg4B,MAAOoqI,OAAQ5oJ,KAAK2+4B,UAAUC,YAAYh2vB,SAEpF5oJ,KAAKu25B,WAAW,YAAa,MAAM,EAAM/2b,GAEjD,EACAm9a,EAAYhs4B,UAAUqt5B,0BAA4B,WACX,KAA/Bh+5B,KAAK2h6B,wBAC8B,eAA/B3h6B,KAAK2h6B,sBACL3h6B,KAAKih5B,SAAWjh5B,KAAK6q5B,YAAY9lpB,aAAe/kQ,KAAKm05B,UAAYn05B,KAAKih5B,WAElC,aAA/Bjh5B,KAAK2h6B,wBAIV3h6B,KAAKih5B,SAAWjh5B,KAAK6q5B,YAAY9lpB,aAAe/kQ,KAAKm05B,UAAYn05B,KAAKih5B,WAHtEjh5B,KAAKkh5B,QAAUlh5B,KAAK6q5B,YAAY3lpB,cAAgBllQ,KAAKo05B,WAAap05B,KAAKkh5B,UAOnF,EACAvE,EAAYhs4B,UAAUmi6B,yBAA2B,SAAUji6B,GACvD7Q,KAAK4p5B,aAAaxj5B,OAASyK,EAAI4j5B,YAAYru5B,OAC3CpG,KAAKu94B,QAAU,GACfv94B,KAAKi9d,UAAY,GACjBj9d,KAAK6i5B,gBAAkB,EACvB7i5B,KAAK635B,cAAchn5B,EAAI4j5B,aACvBz05B,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,QAC3E5oJ,KAAK6v5B,mBACL7v5B,KAAKih5B,SAAWpw4B,EAAI4j5B,YAAYlR,WAAW97iB,OAC3CznW,KAAKkh5B,QAAUrw4B,EAAI4j5B,YAAYlR,WAAW77iB,OAC1C,IAAIi3iB,EAAYl1zB,GAAO,CAAC,EAAGzpF,KAAK2+4B,UAAW,CAAC,GAAG,GAC/C3+4B,KAAKu94B,QAAU9zzB,GAAO,GAAI54E,EAAI6j5B,gBAAiB,IAAI,GACnD105B,KAAKi9d,UAAYxzY,GAAO,GAAI54E,EAAI+j5B,kBAAmB,IAAI,GACvD505B,KAAK6i5B,gBAAkB7i5B,KAAKi9d,UAAU75d,OACtCpD,KAAK4p5B,aAAaxj5B,OAAS,OAC3BpG,KAAK065B,cACL165B,KAAK265B,uBACL365B,KAAK4p5B,aAAaxj5B,OAASyK,EAAI4j5B,YAAYru5B,OAC3CpG,KAAK2+4B,UAAYA,EACjB3+4B,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,QAClC,IAArC5oJ,KAAK2+4B,UAAUC,YAAYpg4B,OAAqD,IAAtCxe,KAAK2+4B,UAAUC,YAAYh2vB,QACrE5oJ,KAAKu25B,WAAW,YAExB,EACA5Z,EAAYhs4B,UAAUoi6B,cAAgB,SAAUnm6B,GAC5C,IACIhL,EACAox6B,EAFArjB,EAAa3v5B,KAAK4p5B,aAAaxj5B,OAAOusB,MAAM,KAGhD,OAAQ/lB,GACJ,IAAK,aACDom6B,EAAWrjB,EAAW,GAAGh93B,MAAM,KAC/B/wB,EAAQ8uC,WAAWsi4B,EAAS,GAAGrg5B,MAAM,KAAK,IAC1C3yB,KAAKgg5B,gBAAgBC,WAAajg5B,KAAKuy6B,eAAe3w6B,GACtD,MACJ,IAAK,WACDox6B,EAAWrjB,EAAW,GAAGh93B,MAAM,KAC/B/wB,EAAQ8uC,WAAWsi4B,EAAS,GAAGrg5B,MAAM,KAAK,IAC1C/wB,GAAS,IACT5B,KAAKgg5B,gBAAgBE,SAAWlg5B,KAAKuy6B,eAAe3w6B,GACpD,MACJ,IAAK,MACDox6B,EAAWrjB,EAAW,GAAGh93B,MAAM,KAC/B/wB,EAAQ8uC,WAAWsi4B,EAAS,GAAGrg5B,MAAM,KAAK,IAC1C/wB,GAAS,EACT5B,KAAKgg5B,gBAAgBG,IAAMv+4B,EAC3B,MACJ,IAAK,aACDox6B,EAAWrjB,EAAW,GAAGh93B,MAAM,KAC/B/wB,EAAQ8uC,WAAWsi4B,EAAS,GAAGrg5B,MAAM,KAAK,IAC1C/wB,GAAS,IACT5B,KAAKgg5B,gBAAgBI,WAAapg5B,KAAKwy6B,yBAAyB5w6B,GAChE,MACJ,IAAK,UACDox6B,EAAWrjB,EAAW,GAAGh93B,MAAM,KAEjB,OADd/wB,EAAQ8uC,WAAWsi4B,EAAS,GAAGrg5B,MAAM,KAAK,KAEtC/wB,EAAQ,GAEO,KAAVA,EACLA,EAAQ,GAEO,MAAVA,EACLA,EAAQ,GAEO,KAAVA,EACLA,EAAQ,GAEO,MAAVA,EACLA,EAAQ,EAGRA,GAAS,IAEb5B,KAAKgg5B,gBAAgB1xwB,QAAU1sI,EAC/B,MACJ,IAAK,OACDox6B,EAAWrjB,EAAW,GAAGh93B,MAAM,KAC/B/wB,EAAQ8uC,WAAWsi4B,EAAS,GAAGrg5B,MAAM,KAAK,IAC1C/wB,GAAS,GACT5B,KAAKgg5B,gBAAgB924B,KAAOtH,EAC5B,MACJ,IAAK,WACDox6B,EAAWrjB,EAAW,GAAGh93B,MAAM,KAC/B/wB,EAAQ8uC,WAAWsi4B,EAAS,GAAGrg5B,MAAM,KAAK,IAC1C3yB,KAAKgg5B,gBAAgBK,SAAWrg5B,KAAKuy6B,eAAe3w6B,GAGhE,EACA+64B,EAAYhs4B,UAAU20sB,aAAe,SAAU14sB,EAAM+25B,GACjD,GAAa,YAAT/25B,GAA+B,WAATA,GAA8B,SAATA,GAClC,SAATA,GAA4B,cAATA,GAAiC,kBAATA,GAClC,UAATA,GAA6B,WAATA,GAA8B,YAATA,EAAoB,CAC7D,IAAIq/hB,EAASjsiB,KAAKmV,QAAQykB,cAAc,4DACpCqygB,GACAA,EAAO/jR,UAAU/0P,OAAO,cAE5B,IAAI8/4B,EAAe/h5B,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,IAAMvpB,EAAO,UACtEqm6B,GACAA,EAAap9oB,cAAc3N,UAAU90P,IAAI,cAExC24S,GAAkB43lB,GAInB3j6B,KAAKijb,cAAgBjjb,KAAKmV,QAAQghB,GAAK,IAAMvpB,EAH7C5M,KAAKijb,cAAgB0gf,CAK7B,CACJ,EACAhnB,EAAYhs4B,UAAU2g5B,YAAc,SAAU98J,GAC1C,IAAImuK,GAAW,EACf,IAAK3i6B,KAAK4O,UAAY5O,KAAKy94B,eAAkBjpJ,EAAS,KAAO,EAAI,CAC7D,IAAI0+K,EAAiB,CAAE1+K,OAAQA,EAAQ1zqB,QAAQ,GAE/C,GADA9gF,KAAKsgS,QAAQ,WAAY4yoB,IACpBA,EAAepy1B,OAAQ,CACxB6h1B,GAAW,EACX,IAAIxR,EAAc1n0B,GAAO,CAAC,EAAGzpF,KAAKmj5B,QAAS,CAAC,GAAG,GAC3CznO,OAAU,EACV3vW,GAAkB/rU,KAAKgx5B,wBACvBt1O,EAAU17qB,KAAKix5B,iBACP1T,QAAU9zzB,GAAO,GAAIzpF,KAAKu94B,QAAS,MAAM,GACjD7hO,EAAQz+M,UAAYxzY,GAAO,CAAC,EAAGzpF,KAAKi9d,UAAW,MAAM,GACrDy+M,EAAQgoO,iBAAmBj6zB,GAAO,GAAIzpF,KAAK0j5B,iBAAkB,IAAI,IAErE1j5B,KAAK0j5B,iBAAiBt34B,KAAgB,KAAXoovB,EAAgB,cAAgB,cAC3D,IAAIm7J,EAAa,GACbwjB,OAAiB,EAChBpnmB,GAAkB/rU,KAAK2+4B,UAAUC,cAAiB7ykB,GAAkB/rU,KAAK2+4B,UAAUnzwB,cACvDnoI,IAAzBrD,KAAK2+4B,UAAUnzwB,QACfmkxB,EAAa3v5B,KAAK2+4B,UAAUnzwB,MAAM74G,MAAM,OAExC3yB,KAAKi/4B,YAAYM,cAAkC,SAAlBoQ,EAAW,MAC5CwjB,EAAiBnz6B,KAAKi/4B,YAAYM,aAAe,SAAWoQ,EAAW,GACvE3v5B,KAAK8g6B,4BACL9g6B,KAAKu94B,QAAQnx4B,KAAKpM,KAAK2+4B,WACvB3+4B,KAAK6v5B,qBAGb7v5B,KAAKg35B,aAAa,KAAM,MAAM,GAC9Bh35B,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,QAC3E5oJ,KAAK6x6B,iBAAiBr9K,GACtBx0vB,KAAK275B,iBAAiB375B,KAAK4p5B,cAC3B5p5B,KAAK275B,iBAAiB375B,KAAK4o5B,cACvB5o5B,KAAK6h5B,cACL7h5B,KAAKy55B,WAAWz55B,KAAK4p5B,cAEpB79kB,GAAkBonmB,KACnBnz6B,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,QAC3E5oJ,KAAK2+4B,UAAYl1zB,GAAO,CAAC,EAAGzpF,KAAKu94B,QAAQv94B,KAAKu94B,QAAQn64B,OAAS,GAAI,CAAC,GAAG,GACvEpD,KAAKu94B,QAAQj/2B,MACbt+B,KAAKu25B,WAAW,YAAav25B,KAAK2+4B,WAC7B3+4B,KAAKuh5B,iBACNvh5B,KAAKs0jB,eAAe,QAAQ,GAAM,KAGrCt0jB,KAAK484B,YAAc7wkB,GAAkB/rU,KAAKgx5B,sBAC3Chx5B,KAAKqx5B,mBAAmB,SAAU31O,EAASA,EAAQ6hO,QAAS7hO,EAAQz+M,UAAWk0b,GAEnFnx5B,KAAK484B,YAAa,EACd7wkB,GAAkB/rU,KAAK2+4B,UAAUnzwB,SAAWxrI,KAAKuh5B,gBACjDvh5B,KAAK8v5B,qBAEC9v5B,KAAKuh5B,iBACXvh5B,KAAKs0jB,eAAe,QAAQ,GAAM,GAEtCt0jB,KAAK2h5B,eAAiB3h5B,KAAKug6B,oBAAoBvg6B,KAAK2h5B,gBAAgB,EACxE,CACJ,CACA,OAAOghB,CACX,EACAhmB,EAAYhs4B,UAAU4g5B,UAAY,SAAUt6yB,GACxC,IAAKj3G,KAAK4O,UAAY5O,KAAKy94B,cAAe,CACtC,IAAIy1B,EAAiB,CAAEj8zB,UAAWA,EAAWn2B,QAAQ,GAErD,GADA9gF,KAAKsgS,QAAQ,WAAY4yoB,GACrBA,EAAepy1B,OACf,OAEJ,IAAIqw0B,EAAc1n0B,GAAO,CAAC,EAAGzpF,KAAKmj5B,QAAS,CAAC,GAAG,GAC3CznO,OAAU,EACV3vW,GAAkB/rU,KAAKgx5B,wBACvBt1O,EAAU17qB,KAAKix5B,iBACP1T,QAAU9zzB,GAAO,GAAIzpF,KAAKu94B,QAAS,MAAM,GACjD7hO,EAAQz+M,UAAYxzY,GAAO,CAAC,EAAGzpF,KAAKi9d,UAAW,MAAM,GACrDy+M,EAAQgoO,iBAAmBj6zB,GAAO,GAAIzpF,KAAK0j5B,iBAAkB,IAAI,IAErE1j5B,KAAK0j5B,iBAAiBt34B,KAAiC,eAA5B6qG,EAAUv2F,cAAiC,iBAAmB,gBACzF,IAAIiv4B,EAAa,GACbwjB,OAAiB,EAChBpnmB,GAAkB/rU,KAAK2+4B,UAAUC,oBACLv74B,IAAzBrD,KAAK2+4B,UAAUnzwB,QACfmkxB,EAAa3v5B,KAAK2+4B,UAAUnzwB,MAAM74G,MAAM,OAExC3yB,KAAKi/4B,YAAYM,cAAkC,SAAlBoQ,EAAW,MAC5CwjB,EAAiBnz6B,KAAKi/4B,YAAYM,aAAe,SAAWoQ,EAAW,GACvE3v5B,KAAK8g6B,4BACL9g6B,KAAKu94B,QAAQnx4B,KAAKpM,KAAK2+4B,WACvB3+4B,KAAK6v5B,qBAGb7v5B,KAAKg35B,aAAa,KAAM,MAAM,GAC9Bh35B,KAAK4p5B,aAAa7qb,UAAU,EAAG,EAAG/+d,KAAK6q5B,YAAYjiwB,OAAQ5oJ,KAAK6q5B,YAAYrs4B,OAC5Exe,KAAK4p5B,aAAa7qb,UAAU,EAAG,EAAG/+d,KAAK6q5B,YAAYrs4B,MAAOxe,KAAK6q5B,YAAYjiwB,QAC3E5oJ,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAK6q5B,YAAYjiwB,OAAQ5oJ,KAAK6q5B,YAAYrs4B,OAC5Exe,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAK6q5B,YAAYrs4B,MAAOxe,KAAK6q5B,YAAYjiwB,QAC3E,IAAIm1wB,EAAct00B,GAAO,GAAIzpF,KAAKu94B,QAAS,IAAI,GAC3CyB,EAAgBv1zB,GAAO,CAAC,EAAGzpF,KAAK2+4B,UAAW,CAAC,GAAG,GACnD3+4B,KAAKu94B,QAAU,GACfv94B,KAAK6v5B,mBACA7v5B,KAAKwh5B,eACNxh5B,KAAKs55B,8BAA8B,WAEP,eAA5BrizB,EAAUv2F,eACV1gB,KAAKsy6B,gBAAgBr7zB,EAAUv2F,eACU,eAArC1gB,KAAKm+4B,cAAcz93B,cACnB1gB,KAAKm+4B,cAAgB,GAGrBn+4B,KAAKm+4B,cAAgB,eAIzBn+4B,KAAKsy6B,gBAAgBr7zB,EAAUv2F,eACU,aAArC1gB,KAAKm+4B,cAAcz93B,cACnB1gB,KAAKm+4B,cAAgB,GAGrBn+4B,KAAKm+4B,cAAgB,YAGzBn+4B,KAAKmk5B,2BACLnk5B,KAAKih5B,UAAYjh5B,KAAKmi5B,yBAAyBjo4B,EAC/Cla,KAAKkh5B,SAAWlh5B,KAAKmi5B,yBAAyBho4B,GAElD,IAAIuyE,EAAO1sF,KAAK4p5B,aAAaxj5B,OAC7BpG,KAAKq45B,yBACLr45B,KAAK4p5B,aAAa5qb,UAAUh/d,KAAK2r5B,QAAS3r5B,KAAKmh5B,QAASnh5B,KAAKoh5B,OAAQph5B,KAAKu55B,SAAUv55B,KAAKw55B,UAAWx55B,KAAKih5B,SAAUjh5B,KAAKkh5B,QAASlh5B,KAAKm05B,UAAWn05B,KAAKo05B,YACtJp05B,KAAK4p5B,aAAaxj5B,OAASsmF,EAC3B1sF,KAAKsy6B,gBAAgBr7zB,EAAUv2F,eAC1B1gB,KAAKwh5B,gBACNxh5B,KAAKs55B,8BAA8B,WACnCt55B,KAAKqy6B,eAAep7zB,EAAU5Q,qBAC9BrmG,KAAK2h5B,eAAev14B,KAAK6qG,EAAUv2F,gBAEJ,IAA/B1gB,KAAK2h5B,eAAev+4B,SACe,KAA/BpD,KAAK2h6B,sBACL3h6B,KAAKy+5B,gCAGLz+5B,KAAKg+5B,6BAGTh+5B,KAAK6h5B,cACL7h5B,KAAKy55B,WAAWz55B,KAAK4p5B,cAEzB5p5B,KAAKu94B,QAAU9zzB,GAAO,GAAIs00B,EAAa,IAAI,GAC3C/95B,KAAK2+4B,UAAYl1zB,GAAO,CAAC,EAAGu1zB,EAAe,CAAC,GAAG,GAC/C,IAAK,IAAI7y4B,EAAI,EAAGwjD,EAAM3vD,KAAKu94B,QAAQn64B,OAAQ+I,EAAIwjD,EAAKxjD,IACL,IAAvCnM,KAAKu94B,QAAQpx4B,GAAG0y4B,YAAYz74B,OAC5BpD,KAAKu94B,QAAQpx4B,GAAG0y4B,YAAYzy4B,KAAK6qG,GAE5Bj3G,KAAKu94B,QAAQpx4B,GAAG0y4B,YAAY7+4B,KAAKu94B,QAAQpx4B,GAAG0y4B,YAAYz74B,OAAS,KAAO6zG,EAC7Ej3G,KAAKu94B,QAAQpx4B,GAAG0y4B,YAAYvg3B,MAG5Bt+B,KAAKu94B,QAAQpx4B,GAAG0y4B,YAAYzy4B,KAAK6qG,GAGzCj3G,KAAKqi6B,UAAUprzB,EAAUv2F,eACzB,IAAIkg4B,EAAa5g5B,KAAK4p5B,aAAaxj5B,OACnCpG,KAAK4p5B,aAAaxj5B,OAASpG,KAAK6p5B,mBAChC7p5B,KAAK835B,iBACA/rlB,GAAkB/rU,KAAKyw5B,sBACxBsN,EAAct00B,GAAO,GAAIzpF,KAAKu94B,QAAS,IAAI,GAC3Cv94B,KAAKu94B,QAAU,GACfv94B,KAAKu94B,QAAQnx4B,KAAKpM,KAAKyw5B,oBACvBzw5B,KAAKqi6B,UAAUprzB,EAAUv2F,eACzB1gB,KAAKyw5B,mBAAqBhn0B,GAAO,CAAC,EAAGzpF,KAAKu94B,QAAQ,GAAI,CAAC,GAAG,GAC1Dv94B,KAAKu94B,QAAUwgB,GAEa,eAA5B9mzB,EAAUv2F,eAA8D,aAA5Bu2F,EAAUv2F,eACtD1gB,KAAKs/5B,oBAAoBrozB,EAAUv2F,eACnC1gB,KAAK+35B,eAAe/35B,KAAK4p5B,eAGzB5p5B,KAAK+35B,eAAe/35B,KAAK4p5B,cAE7B5p5B,KAAK4p5B,aAAaxj5B,OAASw64B,EAC3B5g5B,KAAK6v5B,mBACL7v5B,KAAK8x6B,yBAAyB76zB,EAAUv2F,gBACnC1gB,KAAK484B,YAAc7wkB,GAAkB/rU,KAAKgx5B,sBAC3Chx5B,KAAKqx5B,mBAAmB,OAAQ31O,EAASA,EAAQ6hO,QAAS7hO,EAAQz+M,UAAWk0b,GAEjFnx5B,KAAK484B,YAAa,EAClB584B,KAAK275B,iBAAiB375B,KAAK4p5B,cAC3B5p5B,KAAK275B,iBAAiB375B,KAAK4o5B,cACvB5o5B,KAAK6h5B,cACL7h5B,KAAKy55B,WAAWz55B,KAAK4p5B,cAEpB79kB,GAAkBonmB,KACnBnz6B,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,QAC3E5oJ,KAAK2+4B,UAAYl1zB,GAAO,CAAC,EAAGzpF,KAAKu94B,QAAQv94B,KAAKu94B,QAAQn64B,OAAS,GAAI,CAAC,GAAG,GACvEpD,KAAKu94B,QAAQj/2B,MACbt+B,KAAKu25B,WAAW,YAAav25B,KAAK2+4B,WAC7B3+4B,KAAKwh5B,eACNxh5B,KAAKs0jB,eAAe,QAAQ,GAAM,IAGtCvoP,GAAkB/rU,KAAK2+4B,UAAUnzwB,SAAWxrI,KAAKwh5B,cACjDxh5B,KAAK8v5B,qBAEC9v5B,KAAKwh5B,eACXxh5B,KAAKs0jB,eAAe,QAAQ,GAAM,GAEtCt0jB,KAAK2h5B,eAAiB3h5B,KAAKug6B,oBAAoBvg6B,KAAK2h5B,gBAAgB,EACxE,CACJ,EACAhF,EAAYhs4B,UAAUyi6B,eAAiB,SAAUpuX,GAC7C,IAAI1jW,EAAM0jW,EAAIluiB,SAAS,IACvB,OAAsB,IAAfwqM,EAAIl+M,OAAe,IAAMk+M,EAAMA,CAC1C,EACAq7rB,EAAYhs4B,UAAUy2iB,SAAW,SAAU9jc,EAAGC,EAAGrtG,GAC7C,MAAO,IAAMlW,KAAKoz6B,eAAe9vzB,GAAKtjH,KAAKoz6B,eAAe7vzB,GAAKvjH,KAAKoz6B,eAAel95B,EACvF,EAMAym4B,EAAYhs4B,UAAU6moB,eAAiB,YAC9Bx3oB,KAAK4O,UAAY5O,KAAKy94B,gBACvBz94B,KAAKs+4B,WAAY,EACjBt+4B,KAAK6v5B,mBACL7v5B,KAAK++V,YAAc,GACnB/+V,KAAKk94B,UAAUz1iB,OAASznW,KAAKk94B,UAAUx1iB,OAAS1nW,KAAKk94B,UAAUC,KAAOn94B,KAAKk94B,UAAUE,KAAO,EAC5Fp94B,KAAKi/4B,YAAYzzwB,MAAQ,GACzBxrI,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,QAC3E5oJ,KAAKi/4B,YAAYE,aAAc,EAC/Bn/4B,KAAKi/4B,YAAYM,cAAe,EAChCv/4B,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,UAExC,EAYAyjW,EAAYhs4B,UAAU8m5B,KAAO,WACzB,IAAI8U,GAAS,EACb,IAAKvs6B,KAAK4O,UAAY5O,KAAKy94B,cAAe,CAClCz94B,KAAKi/4B,YAAYS,cACjB1/4B,KAAK2w5B,sBAET,IAAIhB,OAAa,EACbujB,EAAiB,CAAEpy1B,QAAQ,EAAO4lR,WAAY,CAAExsV,EAAGla,KAAK2+4B,UAAUC,YAAYn3iB,OAAQttV,EAAGna,KAAK2+4B,UAAUC,YAAYl3iB,QAAUU,SAAU,CAAEluV,EAAGla,KAAK2+4B,UAAUC,YAAYzB,KAAMhj4B,EAAGna,KAAK2+4B,UAAUC,YAAYxB,OAEhN,GADAp94B,KAAKsgS,QAAQ,WAAY4yoB,IACpBA,EAAepy1B,cACaz9E,IAAzBrD,KAAK2+4B,UAAUnzwB,QACfmkxB,EAAa3v5B,KAAK2+4B,UAAUnzwB,MAAM74G,MAAM,OAEvC3yB,KAAK4O,eAA0CvL,IAA9BrD,KAAK2+4B,UAAUwoB,aAA6Bnn6B,KAAKi/4B,YAAYM,cAAkC,SAAlBoQ,EAAW,KAAgB,CAC1H4c,GAAS,EACT,IAAIpb,EAAc1n0B,GAAO,CAAC,EAAGzpF,KAAKmj5B,QAAS,CAAC,GAAG,GAC3CznO,EAAUjylB,GAAO,CAAC,EAAGzpF,KAAKqz6B,uBAAwB,CAAC,GAAG,GAC1Drz6B,KAAK075B,UACL175B,KAAK+g5B,WAAa,EAClB/g5B,KAAKqx5B,mBAAmB,OAAQ31O,EAASA,EAAQ6hO,QAAS7hO,EAAQz+M,UAAWk0b,EAAa,KAAM,KAAM,KAAMnx5B,KAAK6h5B,cACjH7h5B,KAAK8w5B,0BAA0B,MAC/B9w5B,KAAKs0jB,eAAe,OACxB,CAER,CACA,OAAOi4W,CACX,EAeA5vB,EAAYhs4B,UAAUo2E,KAAO,SAAUkwB,GACnCj3G,KAAKux5B,UAAUt6yB,GACfj3G,KAAK8w5B,0BAA0B,KACnC,EAUAnU,EAAYhs4B,UAAUi1d,aAAe,WACjC,IAAIhJ,EAAS58d,KAAKiw6B,wBAElB,OADWrzc,EAAOD,WAAW,MAAMiJ,aAAa,EAAG,EAAGhJ,EAAOp+c,MAAOo+c,EAAOh0U,OAE/E,EAWA+zvB,EAAYhs4B,UAAUmyH,KAAO,SAAU54F,GACnC,IAAKlqC,KAAK4O,SAAU,CAChB+ia,GAAY3xa,KAAKmV,SACjBnV,KAAKmV,QAAQhP,MAAMmoI,QAAU,MAC7B,IAAIglyB,EAAapi5B,SAAS0I,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,YAoBhE,GAnBIm94B,IACAA,EAAWnt6B,MAAMi+J,QAAU,QAEK,IAAhCpkK,KAAK4/4B,gBAAgBx84B,QACpB2oU,GAAkB76S,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,eACzD41S,GAAkB/rU,KAAKm7nB,iBACvBn7nB,KAAKg+4B,cAAgB,EAEfjykB,GAAkB/rU,KAAKmV,QAAQykB,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,mBAC3En2B,KAAKg+4B,cAAgBh+4B,KAAKmV,QAAQykB,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,gBAAgB+uO,eAGhGllQ,KAAKi5C,QACLj5C,KAAKmpF,SACLnpF,KAAKw0vB,OAAS,EACdx0vB,KAAK+g5B,WAAa,EAClB/g5B,KAAKy94B,eAAgB,EACrBz94B,KAAKyw5B,mBAAqB,KAEb,kBADMvm3B,EACI,CACnB,IAAIi0b,EAAWj0b,EAAKvX,MAAM,KAQ1B,GAPIwrc,EAAS/6d,OAAS,GAClB+6d,EAAWA,EAASA,EAAS/6d,OAAS,GAAGuvB,MAAM,KAC/C3yB,KAAKm+d,SAAWA,EAASA,EAAS/6d,OAAS,IAG3CpD,KAAKm+d,SAAW,cAEfpyJ,GAAkB7hS,EAAKvX,MAAM,OAC7Bo5S,GAAkB7hS,EAAKvX,MAAM,KAAK,IAUnC3yB,KAAKile,SAAW,SAVwB,CACxC,IAAIA,EAAWjle,KAAKur5B,aAAarh3B,EAAKvX,MAAM,KAAK,IAE7C3yB,KAAKile,SADQ,QAAbA,GAAmC,QAAbA,EACN,OAGAA,CAExB,CAIAjle,KAAKyj6B,YAAYv53B,EACrB,MAEIlqC,KAAKm+d,SAAW,cAChBn+d,KAAKile,SAAW,KAChBjle,KAAK6q5B,YAAc353B,SAAS0I,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,gBAClEn2B,KAAKyq5B,YAAcv53B,SAAS0I,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,gBAClEn2B,KAAK4p5B,aAAe5p5B,KAAK6q5B,YAAYlub,WAAW,MAChD38d,KAAK4o5B,aAAe5o5B,KAAKyq5B,YAAY9tb,WAAW,MAChD38d,KAAK4p5B,aAAa7qb,UAAU,EAAG,EAAG/+d,KAAK6q5B,YAAYrs4B,MAAOxe,KAAK6q5B,YAAYjiwB,QAC3E5oJ,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,QAC3E5oJ,KAAK6r5B,gBAAgB9sb,UAAU,EAAG,EAAG/+d,KAAK0r5B,eAAelt4B,MAAOxe,KAAK0r5B,eAAe9iwB,QACpF5oJ,KAAK0r5B,eAAelt4B,MAAQxe,KAAK2r5B,QAAQnt4B,MAAQ0rB,EAAK1rB,MACtDxe,KAAK0r5B,eAAe9iwB,OAAS5oJ,KAAK2r5B,QAAQ/iwB,OAAS1+G,EAAK0+G,OACxD5oJ,KAAK6r5B,gBAAgBhmb,aAAa37b,EAAM,EAAG,GAC3ClqC,KAAK2r5B,QAAQjnvB,IAAM1kK,KAAK0r5B,eAAe5ob,WAE/C,CACJ,EASA65a,EAAYhs4B,UAAUsoC,MAAQ,WACrBj5C,KAAK4O,UAAa5O,KAAK+k5B,eACxB/k5B,KAAK6r5B,gBAAgB9sb,UAAU,EAAG,EAAG/+d,KAAK6q5B,YAAYrs4B,MAAOxe,KAAK6q5B,YAAYjiwB,QAC9E5oJ,KAAK6r5B,gBAAgB9sb,UAAU,EAAG,EAAG/+d,KAAK6q5B,YAAYjiwB,OAAQ5oJ,KAAK6q5B,YAAYrs4B,OAC/Exe,KAAK4p5B,aAAa7qb,UAAU,EAAG,EAAG/+d,KAAK6q5B,YAAYrs4B,MAAOxe,KAAK6q5B,YAAYjiwB,QAC3E5oJ,KAAK4p5B,aAAa7qb,UAAU,EAAG,EAAG/+d,KAAK6q5B,YAAYjiwB,OAAQ5oJ,KAAK6q5B,YAAYrs4B,OAC5Exe,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAK6q5B,YAAYrs4B,MAAOxe,KAAK6q5B,YAAYjiwB,QAC3E5oJ,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAK6q5B,YAAYjiwB,OAAQ5oJ,KAAK6q5B,YAAYrs4B,OAC5Exe,KAAK4p5B,aAAaxj5B,OAASpG,KAAK6p5B,mBAChC7p5B,KAAK6v5B,mBACL7v5B,KAAKs0jB,eAAe,QAChBrtO,GAAQM,UAAYr2T,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,oBAC9D82T,GAAa/7T,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,kBAAmB,WAAWihH,UACrFp3I,KAAKms5B,uBAETns5B,KAAKu94B,QAAU,GACfv94B,KAAKy94B,eAAgB,EACrBz94B,KAAKw0vB,OAASx0vB,KAAKq+4B,aAAe,EAClCr+4B,KAAK884B,WAAa984B,KAAKm+4B,cAAgB,GACvCn+4B,KAAKyq5B,YAAYtk5B,MAAMi+J,QAAU,QACjCpkK,KAAKi+4B,UAAYj+4B,KAAKs+4B,WAAY,EAClCt+4B,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAASl5iB,KAAK6q5B,YAAY1k5B,MAAM+yiB,OAAS,UAChEl5iB,KAAKw94B,aAAe,GACpBx94B,KAAK684B,WAAa784B,KAAK484B,YAAa,EACpC584B,KAAK+84B,eAAiB,GACtB/84B,KAAK4p5B,aAAa3xI,UAAYj4wB,KAAK4o5B,aAAa3wI,eAAY50wB,EAC5DrD,KAAKo+4B,cAAgB,CAAC,EACtBp+4B,KAAKu+4B,eAAiB,OACtBv+4B,KAAKw+4B,gBAAkB,CAAEtk4B,EAAG,EAAGC,EAAG,GAClCna,KAAKy+4B,aAAe,GACpBz+4B,KAAKok5B,YAAc,GACnBpk5B,KAAKmr5B,SAASvp5B,MAAQ5B,KAAKmr5B,SAASvh3B,YAAc,GAClD5pC,KAAKmr5B,SAAShl5B,MAAMi+J,QAAU,OAC9BpkK,KAAK094B,eAAiB,CAAEjgb,YAAa,OAAQkgb,UAAW,GAAIvuwB,YAAa,MACzEpvI,KAAK694B,aACD,CAAE592B,KAAM,aAAcuib,WAAY,QAASvjK,SAAU,KAAM6+lB,UAAW,KAAM1txB,MAAM,EAAOE,QAAQ,EAAOC,WAAW,GACvHvwH,KAAK494B,mBAAqB,CAAEngb,YAAa,OAAQkgb,UAAW,GAAIvuwB,YAAa,MAC7EpvI,KAAK+94B,iBACD,CAAE992B,KAAM,aAAcuib,WAAY,QAASvjK,SAAU,KAAM6+lB,UAAW,KAAM1txB,MAAM,EAAOE,QAAQ,EAAOC,WAAW,GACvHvwH,KAAK6se,WAAQxpe,EACbrD,KAAKq35B,oBAAiBh05B,EACtBrD,KAAKi/4B,YAAYS,aAAe1/4B,KAAK4k5B,iBAAkB,EACvD5k5B,KAAKq+4B,aAAe,EACpBr+4B,KAAK+95B,iBAAc165B,EACnBrD,KAAKgg5B,gBAAkB,CAAEC,WAAY,EAAGC,SAAU,EAAGC,IAAK,EAAG7xwB,QAAS,IAAK8xwB,WAAY,EACnFl34B,KAAM,EAAGm34B,SAAU,EAAGC,SAAS,EAAOC,IAAI,GAC9Cvg5B,KAAKwg5B,oBAAsB,CAAEP,WAAY,EAAGC,SAAU,EAAGC,IAAK,EAAG7xwB,QAAS,IAAK8xwB,WAAY,EACvFl34B,KAAM,EAAGm34B,SAAU,EAAGC,SAAS,EAAOC,IAAI,GAC9Cvg5B,KAAK6g5B,aAAe7g5B,KAAKijb,cAAgBjjb,KAAK2g5B,oBAAsB,GACpE3g5B,KAAK4p5B,aAAaxj5B,OAASpG,KAAK0g5B,uBAAyB1g5B,KAAKyg5B,gBAAkBzg5B,KAAK6p5B,mBACrF7p5B,KAAKih5B,SAAWjh5B,KAAKkh5B,QAAUlh5B,KAAKmh5B,QAAUnh5B,KAAKoh5B,OAAS,EAC5Dph5B,KAAKm05B,UAAYn05B,KAAKo05B,WAAap05B,KAAKu55B,SAAWv55B,KAAKw55B,UAAY,KACpEx55B,KAAKyw5B,mBAAqB,KAC1Bzw5B,KAAKqh5B,eAAiB,CAAE55iB,OAAQ,EAAGC,OAAQ,EAAGlpV,MAAO,EAAGoqI,OAAQ,GAChE5oJ,KAAK8h6B,QAAU,KACf9h6B,KAAKsh6B,QAAU,KACfth6B,KAAKuh6B,YAAc,KACnBvh6B,KAAKsh5B,SAAW,GAChBth5B,KAAK2i5B,gBAAgBlg4B,KAAOziB,KAAK2i5B,gBAAgB5ib,aAAe,EAChE//d,KAAK2i5B,gBAAgBvjb,OAASp/d,KAAK2i5B,gBAAgBtjb,OAAS,EAC5Dr/d,KAAKw/d,OAAS,GACdx/d,KAAKi9d,UAAY,CAAC,EAClBj9d,KAAK4i5B,aAAe5i5B,KAAK6i5B,gBAAkB7i5B,KAAK+i5B,oBAAsB/i5B,KAAK+j5B,6BAA+B,EAC1G/j5B,KAAK8i5B,mBAAoB,EACzB9i5B,KAAKuh5B,gBAAkBvh5B,KAAKwh5B,cAAgBxh5B,KAAKyh5B,kBAAoBzh5B,KAAK0h5B,cAAe,EACzF1h5B,KAAK4h5B,mBAAqB,CAAE1n4B,EAAG,EAAGC,EAAG,GACrCna,KAAK2h5B,eAAiB,GACtB3h5B,KAAK6h5B,cAAe,EACpB7h5B,KAAKsi5B,WAAY,EACjBti5B,KAAK8h5B,kBAAoB,CAAEr6iB,OAAQ,EAAGC,OAAQ,EAAGlpV,MAAO,EAAGoqI,OAAQ,GACnE5oJ,KAAK+h5B,cAAgB,EACrB/h5B,KAAKm35B,yBAA2Bn35B,KAAKi35B,0BAA4B,KACjEj35B,KAAKgi5B,uBAAyBhi5B,KAAKii5B,sBAAwBji5B,KAAK+k5B,cAAe,EAC/E/k5B,KAAKki5B,8BAAgC,CAAEzkb,YAAa,KAAMkgb,UAAW,KAAMvuwB,YAAa,MACxFpvI,KAAKmi5B,yBAA2B,CAAEjo4B,EAAG,EAAGC,EAAG,GAC3Cna,KAAKoi5B,uBAAyB,CAAElo4B,EAAG,EAAGC,EAAG,GACzCna,KAAK6q5B,YAAY1k5B,MAAMw9H,KAAO3jI,KAAKyq5B,YAAYtk5B,MAAMw9H,KAAO,GAC5D3jI,KAAK6q5B,YAAY1k5B,MAAM+nJ,IAAMluJ,KAAKyq5B,YAAYtk5B,MAAM+nJ,IAAM,GAC1DluJ,KAAK6q5B,YAAY1k5B,MAAM2wH,SAAW92H,KAAKyq5B,YAAYtk5B,MAAM2wH,SAAW,GACpE92H,KAAK6q5B,YAAY1k5B,MAAMy/b,UAAY5lc,KAAKyq5B,YAAYtk5B,MAAMy/b,UAAY,GACtE5lc,KAAK4w5B,sBAAwB,KAC7B5w5B,KAAKqi5B,iBAAmB,CAAEno4B,EAAG,EAAGC,EAAG,GACnCna,KAAKyi5B,qBAAuBzi5B,KAAK0i5B,iBAAmB1i5B,KAAK8k5B,qBAAsB,EAC/E9k5B,KAAKwi5B,kBAAoBxi5B,KAAKui5B,eAAiBvi5B,KAAK+g5B,WAAa,EACjE/g5B,KAAKwh6B,WAAa,KAClBxh6B,KAAKqk5B,sBAAwB,CAAEnq4B,EAAG,EAAGC,EAAG,GACxCna,KAAKgj5B,sBAAwB,UAC7Bhj5B,KAAKij5B,0BAA2B,EAChCjj5B,KAAK2k5B,eAAgB,EACrB3k5B,KAAKkj5B,gBAAiB,EACtBlj5B,KAAKi/4B,YAAc,CAAEzzwB,MAAO,GAAI0zwB,YAAY,EAAOC,aAAa,EAAO141B,QAAQ,EAAO241B,eAAe,EAAOC,QAAQ,EAChHC,eAAe,EAAOC,cAAc,EAAOC,UAAU,EAAOC,YAAY,EACxEC,cAAc,EAAO5yb,YAAY,EAAO6yb,QAAQ,GACpD3/4B,KAAKmj5B,QAAU,CAAEC,SAAU,EAAGC,YAAa,EAAGhB,iBAAkB,CAAEno4B,EAAG,EAAGC,EAAG,GAAKio4B,uBAAwB,CAAElo4B,EAAG,EAAGC,EAAG,GAC/Ggo4B,yBAA0B,CAAEjo4B,EAAG,EAAGC,EAAG,GAAKmp4B,iBAAkB,CAAEpp4B,EAAG,EAAGC,EAAG,GAAKwk4B,UAAW,CAAC,EACxFgD,eAAgB,GAAIntJ,OAAQ,EAAG2pJ,cAAe,GAAI4C,WAAY,EAAG0C,kBAAmB,EACpFF,WAAY,CAAE97iB,OAAQ,EAAGC,OAAQ,EAAGlpV,MAAO,EAAGoqI,OAAQ,GACtD46vB,UAAW,CAAE/7iB,OAAQ,EAAGC,OAAQ,EAAGlpV,MAAO,EAAGoqI,OAAQ,GAAKxiJ,OAAQ,IACtEpG,KAAK0j5B,iBAAmB,GACxB1j5B,KAAK2j5B,eAAiB3j5B,KAAKgk5B,eAAiBhk5B,KAAK4j5B,sBAAuB,EACxE5j5B,KAAKsnV,SAAU,EACftnV,KAAK6j5B,kBAAoB,CAAE3p4B,EAAG,EAAGC,EAAG,GACpCna,KAAKsj5B,iBAAmB,CAAEpp4B,EAAG,EAAGC,EAAG,GACnCna,KAAK8j5B,yBAA2B,EAChC9j5B,KAAK+j5B,6BAA+B,EACpC/j5B,KAAKyj5B,kBAAoB,EACzBzj5B,KAAKik5B,cAAgB,GACrBjk5B,KAAKkk5B,gBAAkB,GACvBlk5B,KAAKo35B,uBAAyB,KAC9Bp35B,KAAKgx5B,oBAAsB,KAC3Bhx5B,KAAKmk5B,0BAA2B,EAChCnk5B,KAAKyg6B,qBAAuB,KAC5Bzg6B,KAAKwk5B,oBAAsB,GAC3Bxk5B,KAAKu15B,YAAc,KACnBv15B,KAAKsk5B,SAAW,UAChBtk5B,KAAKuk5B,kBAAoB,GACzBvk5B,KAAK6k5B,qBAAsB,EAC3B7k5B,KAAKyk5B,UAAY,GACjBzk5B,KAAK0k5B,aAAe,CAAC,EACrB1k5B,KAAK225B,WAAa,KAClB325B,KAAKuz6B,uBAAyB,KACzBxnmB,GAAkB/rU,KAAKwj6B,mBACxBxj6B,KAAKisV,cAAc,CAAEm9jB,aAAc,CAAErI,WAAY/g5B,KAAKwj6B,oBAAsB,GAE3Ez3lB,GAAkB76S,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,8BAC7DjF,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,2BAA2BhwB,MAAMi+J,QAAU,QAEzFpkK,KAAKy94B,eAAgB,EACrBz94B,KAAKqj6B,eACLrj6B,KAAKy94B,eAAgB,EACrBz94B,KAAK0w5B,oBAAmB,GACxB1w5B,KAAKkv5B,0BAEb,EAeAvS,EAAYhs4B,UAAU2/Z,OAAS,SAAUkkV,GACrC,IAAImuK,EAAW3i6B,KAAKsx5B,YAAY98J,GAEhC,OADAx0vB,KAAK8w5B,0BAA0B,MACxB6R,CACX,EAYAhmB,EAAYhs4B,UAAU6/4B,OAAS,SAAU5j5B,EAAMuxd,GAC3C,IAAI7+d,EAAQU,KACZ,IAAKA,KAAK4O,UAAY5O,KAAKy94B,cAAe,CAClCz94B,KAAKii5B,uBACLji5B,KAAKs15B,oBAELt15B,KAAKs+4B,YACLt+4B,KAAKi/4B,YAAYO,UAAW,EAC5Bx/4B,KAAKmZ,SAE2B,UAAhCnZ,KAAKmr5B,SAAShl5B,MAAMi+J,SACpBpkK,KAAKg35B,eAETh35B,KAAKq25B,cACLr25B,KAAK4p5B,aAAaxj5B,OAASpG,KAAK6g5B,aAChCj04B,EAAOA,GAAc,MACrB5M,KAAKg35B,eACL,IAAIkQ,EAAa,CAAEpm1B,QAAQ,EAAOq9Y,SAAUA,GAAsBn+d,KAAKm+d,SACnE8G,SAAUr4d,GACV4m6B,EAAU,CAAEr1c,SAAUA,GAAsBn+d,KAAKm+d,SAAU8G,SAAUr4d,GACzE5M,KAAKsgS,QAAQ,aAAc4moB,GAAY,SAAU9oc,GACxCA,EAAmBt9Y,SACpBxhF,EAAM2/4B,YAAYU,QAAS,EAC3Bxhb,EAAWC,EAAmBD,SAAWC,EAAmBD,SAAWA,EAC5C,QAAvBvxd,EAAK8T,eACLy9c,EAAWA,GAAY7+d,EAAM6+d,SAC7B7+d,EAAM0w6B,SAAS7xc,KAEVvxd,EAAK8T,cACVy9c,EAAWA,GAAY7+d,EAAM6+d,SAC7B7+d,EAAM4w6B,SAAS/xc,EAAUvxd,EAAK8T,gBAMlCphB,EAAMghS,QAAQ,QAASkzoB,GACvBl06B,EAAMww5B,qBACNxw5B,EAAMur5B,YAAY1k5B,MAAMw9H,KAAOrkI,EAAMmr5B,YAAYtk5B,MAAMw9H,KAAO,GAC9DrkI,EAAMur5B,YAAY1k5B,MAAM+nJ,IAAM5uJ,EAAMmr5B,YAAYtk5B,MAAM+nJ,IAAM,GAC5D5uJ,EAAMur5B,YAAY1k5B,MAAM2wH,SAAWx3H,EAAMmr5B,YAAYtk5B,MAAM2wH,SAAW,GACtEx3H,EAAMur5B,YAAY1k5B,MAAMy/b,UAAYtmc,EAAMmr5B,YAAYtk5B,MAAMy/b,UAAY,GAEhF,GACJ,CACJ,EAkBA+2c,EAAYhs4B,UAAU65U,OAAS,SAAU59U,EAAM66V,EAAQC,EAAQlpV,EAAOoqI,GAClE,IAAK5oJ,KAAK4O,UAAY5O,KAAKy94B,cAAe,CACtC,IAAIgX,EAAcz05B,KAAKix5B,gBACvBwD,EAAYlX,QAAU9zzB,GAAO,GAAIzpF,KAAKu94B,QAAS,IAAI,GACnDkX,EAAYx3b,UAAYxzY,GAAO,GAAIzpF,KAAKi9d,UAAW,IAAI,GACvDw3b,EAAY/Q,iBAAmB1j5B,KAAK0j5B,iBACpC1j5B,KAAKqz6B,uBAAyB5e,EAC1Bz05B,KAAK+g5B,WAAa,IAAMh1kB,GAAkB/rU,KAAK2+4B,UAAUnzwB,QAAiD,SAAvCxrI,KAAK2+4B,UAAUnzwB,MAAM74G,MAAM,KAAK,IAAiBo5S,GAAkB/rU,KAAK4w5B,yBAC3I5w5B,KAAK4w5B,sBAAwBnn0B,GAAO,CAAC,EAAGzpF,KAAK2+4B,UAAW,CAAC,GAAG,IAEhE,IAAI/wB,GAAY,EACZ+hC,OAAa,OACYts5B,IAAzBrD,KAAK2+4B,UAAUnzwB,QACfmkxB,EAAa3v5B,KAAK2+4B,UAAUnzwB,MAAM74G,MAAM,YAEzBtvB,IAAfss5B,GAA4B3v5B,KAAKi/4B,YAAYM,mBAGzBl84B,IAAfss5B,GAA8C,SAAlBA,EAAW,MAF5C/hC,GAAY,GAKhB,IAAIlyM,EAAU17qB,KAAKix5B,gBASnB,GARAv1O,EAAQ6hO,QAAU9zzB,GAAO,GAAIzpF,KAAKu94B,QAAS,IAAI,GAC/C7hO,EAAQz+M,UAAYxzY,GAAO,GAAIzpF,KAAKi9d,UAAW,IAAI,GACnDy+M,EAAQgoO,iBAAmBj6zB,GAAO,GAAIzpF,KAAK0j5B,iBAAkB,IAAI,GACjE1j5B,KAAKg35B,eACLh35B,KAAK6v5B,mBACL7v5B,KAAK884B,WAAa,GAClB984B,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,QAC3E5oJ,KAAKyq5B,YAAYtk5B,MAAMi+J,QAAU,SAC5B2nK,GAAkB/rU,KAAKyw5B,qBAAuBzw5B,KAAKwi5B,kBAAoB,GACvD,IAAhBxi5B,KAAKw0vB,QAAoD,IAApCx0vB,KAAKmi5B,yBAAyBjo4B,GAA+C,IAApCla,KAAKmi5B,yBAAyBho4B,IAAYyz2B,EAAY,CAErH,GADA5t3B,KAAK6h5B,cAAe,EAChB7h5B,KAAKwi5B,kBAAoB,EAAG,CAC5B,IAAIzB,EAAa/g5B,KAAK+g5B,WAAa/g5B,KAAKwi5B,kBACxCxi5B,KAAKsi5B,WAAY,EAEjB,IADA,IAAI1F,EAAa584B,KAAK484B,WACbzw4B,EAAI,EAAGA,EAAkB,GAAb404B,EAAkB504B,IACnCnM,KAAK484B,YAAa,EAClB584B,KAAKkx5B,YAAY,IAErBlx5B,KAAK484B,WAAaA,EAClB584B,KAAK6g6B,gBACT,CACA7g6B,KAAKik5B,cAAgBx6zB,GAAO,GAAIzpF,KAAKu94B,QAAS,IAAI,GAClDv94B,KAAKkk5B,gBAAkBz6zB,GAAO,GAAIzpF,KAAKi9d,UAAW,IAAI,GACtDj9d,KAAK435B,+BACL535B,KAAKsi5B,WAAY,EACjBti5B,KAAK6h5B,cAAe,EACpB7h5B,KAAKo65B,wBAAuB,GAC5Bp65B,KAAK+g5B,WAAa/g5B,KAAKui5B,eACnBx2kB,GAAkB/rU,KAAKmj5B,QAAQxE,UAAUnzwB,QACzCxrI,KAAK6y6B,iBAAiBjm6B,EAAM66V,EAAQC,EAAQlpV,EAAOoqI,EAE3D,KAEiB,WAATh8I,IACA5M,KAAKi/4B,YAAYzzwB,MAAQ,IAE7BxrI,KAAK6y6B,iBAAiBjm6B,EAAM66V,EAAQC,EAAQlpV,EAAOoqI,EAE3D,CACJ,EACA+zvB,EAAYhs4B,UAAUuv5B,sBAAwB,WAC1C,IAAI8N,EAAgBhu6B,KAAKgn6B,8BACrBF,EAAoB,CAAE5x1B,OAAQ,SAAU6x1B,sBAAuBiH,EAC/D/G,qBAAsB+G,GAC1Bhu6B,KAAKsgS,QAAQ,gBAAiBwmoB,GAC9B9m6B,KAAKop6B,2BAA2BtC,EAAkBG,qBACtD,EASAtqB,EAAYhs4B,UAAUo/4B,aAAe,SAAUnu5B,GACvCA,GACA5B,KAAKw/d,OAAS,GACdx/d,KAAK6v5B,mBACL7v5B,KAAKs+4B,WAAY,EACjBt+4B,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,YAChCl5iB,KAAKyq5B,YAAYtk5B,MAAMi+J,QAAU,QAC7B2nK,GAAkB/rU,KAAK2+4B,UAAUjB,kBACjC194B,KAAK2+4B,UAAUjB,eAAiB194B,KAAK094B,gBAErC3xkB,GAAkB/rU,KAAK2+4B,UAAUjB,eAAetuwB,eAChDpvI,KAAK2+4B,UAAUjB,eAAetuwB,YAAc,GAEhDpvI,KAAKs0jB,eAAe,SAGpBt0jB,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,UAChCl5iB,KAAKmZ,QACLnZ,KAAK8v5B,qBACL9v5B,KAAKu+4B,eAAiB,OACtBv+4B,KAAKij5B,0BAA2B,EAExC,EAWAtG,EAAYhs4B,UAAU8i6B,aAAe,SAAU7x6B,IACtC5B,KAAK4O,UAAY5O,KAAKy94B,eACvBz94B,KAAK+v5B,aAAanu5B,EAE1B,EAWA+64B,EAAYhs4B,UAAUw+4B,IAAM,SAAUvt5B,IAC7B5B,KAAK4O,UAAY5O,KAAKy94B,gBACnB774B,GACA5B,KAAKi+4B,WAAY,EACjBj+4B,KAAKg35B,eACLh35B,KAAK684B,YAAa,EAClB784B,KAAK6q5B,YAAY1k5B,MAAM+yiB,OAASl5iB,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,OAChEl5iB,KAAK8h6B,QAAU,OAGf9h6B,KAAK684B,WAAa784B,KAAKi+4B,UAAYj+4B,KAAKi/4B,YAAYM,cAAe,EACnEv/4B,KAAK6q5B,YAAY1k5B,MAAM+yiB,OAASl5iB,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,WAG5E,EAaAyjW,EAAYhs4B,UAAUi+H,KAAO,SAAUmywB,EAAYwiB,GAC/C,IAAKvj6B,KAAK4O,UAAY5O,KAAKy94B,cAAe,CACtC,IAAI774B,EAAQ5B,KAAKio6B,qBAAqBlnB,GACtC,GAAIh1kB,GAAkBw3lB,GAClBvj6B,KAAKkx5B,WAAWtv5B,EAAO2h6B,QAIvB,IADA,IAAI325B,EAAOhL,EAAQ,EAAI,SAAW,UACzBuK,EAAI,EAAGA,EAAuB,GAAlBvI,KAAK8Y,IAAI9a,GAAcuK,IACxCnM,KAAKqm6B,iBAAiB9C,EAAUrp5B,EAAGqp5B,EAAUpp5B,EAAGvN,EAG5D,CACJ,EAgBA+v4B,EAAYhs4B,UAAU+i6B,YAAc,SAAUx55B,EAAGC,EAAGw55B,EAASC,EAASxkyB,EAAaquV,EAAakgb,GAC5F,IAAIk2B,GAAY,EACZnp1B,EAAU1qF,KAAK0x6B,gBAAgBx35B,EAAGC,GACtC,IAAKna,KAAK4O,UAAY5O,KAAKy94B,eAAiB/yzB,EAAS,CACjDmp1B,GAAY,EACZ7z6B,KAAKg35B,eACLh35B,KAAK2+4B,UAAUnzwB,MAAQ,UACQ,iBAA3BxrI,KAAKi/4B,YAAYzzwB,QACjBxrI,KAAKmZ,QACLnZ,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,UAChCl5iB,KAAKi/4B,YAAYzzwB,MAAQ,IAE7BxrI,KAAKi/4B,YAAYM,cAAe,EAChC,IAAIrp2B,EAAQ,CAAEh8B,EAAGA,EAAGC,EAAGA,GACvBna,KAAKiw5B,UAAU,UAAW7gxB,EAAaquV,EAAakgb,EAAWzn2B,EAAOy93B,EAASC,GAC/E5z6B,KAAKqx6B,gBACT,CACA,OAAOwC,CACX,EAYAl3B,EAAYhs4B,UAAU24xB,SAAW,SAAU7hc,EAAQC,EAAQy1iB,EAAMC,EAAMhuwB,EAAaquV,GAChF,IAAI4hb,GAAS,EACT30zB,EAAU1qF,KAAK0x6B,gBAAgBjqkB,EAAQC,GAC3C,IAAK1nW,KAAK4O,UAAY5O,KAAKy94B,eAAiB/yzB,EAAS,CACjD20zB,GAAS,EACTr/4B,KAAKg35B,eACLh35B,KAAK2+4B,UAAUnzwB,MAAQ,OACQ,iBAA3BxrI,KAAKi/4B,YAAYzzwB,QACjBxrI,KAAKmZ,QACLnZ,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,UAChCl5iB,KAAKi/4B,YAAYzzwB,MAAQ,IAE7BxrI,KAAKi/4B,YAAYM,cAAe,EAChC,IAAIrp2B,EAAQ,CAAEh8B,EAAGutV,EAAQttV,EAAGutV,GACxBlpV,EAAQ2+3B,EAAO11iB,EACf7+M,EAASw0vB,EAAO11iB,EACpB1nW,KAAKiw5B,UAAU,OAAQ7gxB,EAAaquV,EAAa,KAAMvnb,EAAO13B,EAAOoqI,GACrE5oJ,KAAKqx6B,gBACT,CACA,OAAOhyB,CACX,EAaA1C,EAAYhs4B,UAAUmj6B,UAAY,SAAUrskB,EAAQC,EAAQy1iB,EAAMC,EAAMhuwB,EAAaquV,GACjF,IAAIs2c,GAAU,EACVrp1B,EAAU1qF,KAAK0x6B,gBAAgBjqkB,EAAQC,GAC3C,IAAK1nW,KAAK4O,UAAY5O,KAAKy94B,eAAiB/yzB,EAAS,CACjDqp1B,GAAU,EACV/z6B,KAAKg35B,eACLh35B,KAAK2+4B,UAAUnzwB,MAAQ,QACQ,iBAA3BxrI,KAAKi/4B,YAAYzzwB,QACjBxrI,KAAKmZ,QACLnZ,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,UAChCl5iB,KAAKi/4B,YAAYzzwB,MAAQ,IAE7BxrI,KAAKi/4B,YAAYM,cAAe,EAChC,IAAIrp2B,EAAQ,CAAEh8B,EAAGutV,EAAQttV,EAAGutV,GACxBlpV,EAAQ2+3B,EAAO11iB,EACf7+M,EAASw0vB,EAAO11iB,EACpB1nW,KAAKiw5B,UAAU,QAAS7gxB,EAAaquV,EAAa,KAAMvnb,EAAO13B,EAAOoqI,GACtE5oJ,KAAKqx6B,gBACT,CACA,OAAO0C,CACX,EAaAp3B,EAAYhs4B,UAAU64xB,cAAgB,SAAUtvxB,EAAGC,EAAGqE,EAAOoqI,EAAQxZ,EAAaquV,EAAakgb,GAC3F,IAAIq2B,GAAc,EACdtp1B,EAAU1qF,KAAK0x6B,gBAAgBx35B,EAAGC,GACtC,IAAKna,KAAK4O,UAAY5O,KAAKy94B,eAAiB/yzB,EAAS,CACjDsp1B,GAAc,EACdh06B,KAAKg35B,eACLh35B,KAAK2+4B,UAAUnzwB,MAAQ,YACQ,iBAA3BxrI,KAAKi/4B,YAAYzzwB,QACjBxrI,KAAKmZ,QACLnZ,KAAKyq5B,YAAYtk5B,MAAM+yiB,OAAS,UAChCl5iB,KAAKi/4B,YAAYzzwB,MAAQ,IAE7BxrI,KAAKi/4B,YAAYM,cAAe,EAChC,IAAIrp2B,EAAQ,CAAEh8B,EAAGA,EAAGC,EAAGA,GACvBna,KAAKiw5B,UAAU,YAAa7gxB,EAAaquV,EAAakgb,EAAWzn2B,EAAO13B,EAAOoqI,GAC/E5oJ,KAAKqx6B,gBACT,CACA,OAAO2C,CACX,EAiBAr3B,EAAYhs4B,UAAUy2yB,SAAW,SAAUltyB,EAAGC,EAAG8lB,EAAMuib,EAAYvjK,EAAU7uL,EAAME,EAAQmG,GACvF,IAAIhwE,GAAS,EACTikC,EAAU1qF,KAAK0x6B,gBAAgBx35B,EAAGC,GAMtC,OALKna,KAAK4O,UAAY5O,KAAKy94B,eAAiB/yzB,IACxCjkC,GAAS,EACTzmD,KAAKgw5B,cAAc/v3B,EAAMuib,EAAYvjK,EAAU7uL,EAAME,EAAQmG,EAAOv8G,EAAGC,GACvEna,KAAKqx6B,kBAEF5q3B,CACX,EAWAk21B,EAAYhs4B,UAAUsj6B,YAAc,SAAU994B,GAC1C,IAAIwla,GAAa,EACjB,IAAK37b,KAAK4O,UAAY5O,KAAKy94B,cAEvB,GADAz94B,KAAKq25B,cACoB,UAArBlg4B,EAAGxD,MAAM,KAAK,GAAgB,CAE9B,IADA,IAAI9hB,OAAM,EACD1E,EAAI,EAAGA,EAAInM,KAAKu94B,QAAQn64B,OAAQ+I,IACrC,GAAInM,KAAKu94B,QAAQpx4B,GAAGiq5B,YAAcjg4B,EAAI,CAClCtlB,EAAM44E,GAAO,CAAC,EAAGzpF,KAAKu94B,QAAQpx4B,GAAI,CAAC,GAAG,GACtC,KACJ,CAEA4/T,GAAkBl7T,GAClB8qb,GAAa,GAGbA,GAAa,EACb37b,KAAK2+4B,UAAY9t4B,EACjB7Q,KAAK4p5B,aAAaxj5B,OAASpG,KAAK6g5B,aAChC7g5B,KAAK+x5B,YAAY/x5B,KAAK2+4B,WACO,SAAzB3+4B,KAAK2+4B,UAAUnzwB,MACfxrI,KAAKs0jB,eAAe,QAEU,QAAzBt0jB,KAAK2+4B,UAAUnzwB,MACpBxrI,KAAKs0jB,eAAe,OAGpBt0jB,KAAKs0jB,eAAe,UAExBt0jB,KAAKkw5B,qBAEb,KAC8B,QAArB/53B,EAAGxD,MAAM,KAAK,KACf3yB,KAAKii5B,uBACLji5B,KAAKyv5B,QAELzv5B,KAAKu45B,oBAAoBhs4B,SAAS4J,EAAGxD,MAAM,KAAK,GAAI,IAAM,IAC1Dgpa,GAAa,EACb37b,KAAKsl6B,mBAAmB/44B,SAAS4J,EAAGxD,MAAM,KAAK,GAAI,IAAM,GACzD3yB,KAAKkw5B,sBAGLv0d,GAAa,GAIzB,OAAOA,CACX,EAWAghd,EAAYhs4B,UAAUuj6B,YAAc,SAAU/94B,GAC1C,IAAKn2B,KAAK4O,UAAY5O,KAAKy94B,cAAe,CAEtC,GADAz94B,KAAKq25B,cACoB,UAArBlg4B,EAAGxD,MAAM,KAAK,IACd,IAAK,IAAIxmB,EAAI,EAAGA,EAAInM,KAAKu94B,QAAQn64B,OAAQ+I,IACrC,GAAInM,KAAKu94B,QAAQpx4B,GAAGiq5B,YAAcjg4B,EAAI,CAClCn2B,KAAKu94B,QAAQ/n3B,OAAOrpB,EAAG,GACvB,KACJ,MAGsB,QAArBgqB,EAAGxD,MAAM,KAAK,IACf3yB,KAAKu45B,oBAAoBhs4B,SAAS4J,EAAGxD,MAAM,KAAK,GAAI,IAAM,IAC1D3yB,KAAKw45B,mBAAmBjs4B,SAAS4J,EAAGxD,MAAM,KAAK,GAAI,IAAM,GAAG,GAGpE3yB,KAAK4p5B,aAAaxj5B,OAASpG,KAAK6g5B,aAChC7g5B,KAAK4p5B,aAAa7qb,UAAU,EAAG,EAAG/+d,KAAK6q5B,YAAYrs4B,MAAOxe,KAAK6q5B,YAAYjiwB,QAC3E5oJ,KAAK425B,mBACL525B,KAAK8v5B,oBACT,CACJ,EAUAnT,EAAYhs4B,UAAUwj6B,gBAAkB,SAAUh+4B,GAC9C,IAAIo74B,EACJ,IAAKvx6B,KAAK4O,UAAY5O,KAAKy94B,cAEvB,GADAz94B,KAAKq25B,cACoB,UAArBlg4B,EAAGxD,MAAM,KAAK,GAAgB,CAE9B,IADA,IAAI9hB,OAAM,EACD1E,EAAI,EAAGA,EAAInM,KAAKu94B,QAAQn64B,OAAQ+I,IACrC,GAAInM,KAAKu94B,QAAQpx4B,GAAGiq5B,YAAcjg4B,EAAI,CAClCtlB,EAAM44E,GAAO,CAAC,EAAGzpF,KAAKu94B,QAAQpx4B,GAAI,CAAC,GAAG,GACtC,KACJ,CAEJol6B,EAAevx6B,KAAKsx6B,cAAczg6B,EACtC,KAC8B,QAArBslB,EAAGxD,MAAM,KAAK,KACnB4+4B,EAAevx6B,KAAKwx6B,uBAAuBjl5B,SAAS4J,EAAGxD,MAAM,KAAK,GAAI,IAAM,IAGpF,OAAO4+4B,CACX,EAMA50B,EAAYhs4B,UAAUyj6B,iBAAmB,WACrC,IAAIC,EAAmB,GACvB,IAAKr06B,KAAK4O,UAAY5O,KAAKy94B,cAAe,CACtCz94B,KAAKq25B,cACL,IAAK,IAAIlq5B,EAAI,EAAGA,EAAInM,KAAKu94B,QAAQn64B,OAAQ+I,IAAK,CAC1C,IAAIol6B,EAAevx6B,KAAKsx6B,cAActx6B,KAAKu94B,QAAQpx4B,IACnDko6B,EAAiBjo6B,KAAKml6B,EAC1B,CACA,IAASpl6B,EAAI,EAAGA,EAAInM,KAAK6i5B,gBAAiB124B,IAAK,CACvCol6B,EAAevx6B,KAAKwx6B,uBAAuBrl6B,GAC/Cko6B,EAAiBjo6B,KAAKml6B,EAC1B,CACJ,CACA,OAAO8C,CACX,EAMA13B,EAAYhs4B,UAAUw4E,OAAS,WAC3B,IAAIsi0B,EAAgBv63B,SAAS0I,cAAc,IAAM55B,KAAKmV,QAAQghB,GAAK,kBAC9D41S,GAAkB0/kB,KACnBA,EAActl5B,MAAMqY,MAAQxe,KAAKmV,QAAQg7P,YAAc,EAAI,MAE/DnwQ,KAAK6q5B,YAAYrs4B,MAAQxe,KAAKyq5B,YAAYjs4B,MAAQxe,KAAKmV,QAAQg7P,YAAc,EACzE82E,GAAQM,UACHxb,GAAkB0/kB,KACnBA,EAActl5B,MAAMyiJ,OAAS5oJ,KAAKmV,QAAQ4/Q,aAAgB,EAAI/0R,KAAKg+4B,cAAiB,EAAI,MAE5Fh+4B,KAAK6q5B,YAAYjiwB,OAAS5oJ,KAAKyq5B,YAAY7hwB,OAAS5oJ,KAAKmV,QAAQ4/Q,aAAgB,EAAI/0R,KAAKg+4B,cAAiB,IAGtGjykB,GAAkB0/kB,KACnBA,EAActl5B,MAAMyiJ,OAAS5oJ,KAAKmV,QAAQ4/Q,aAAe/0R,KAAKg+4B,cAAgB,EAAI,MAEtFh+4B,KAAK6q5B,YAAYjiwB,OAAS5oJ,KAAKyq5B,YAAY7hwB,OAAS5oJ,KAAKmV,QAAQ4/Q,aAAe/0R,KAAKg+4B,cAAgB,GAEzGh+4B,KAAK4p5B,aAAaxj5B,OAASpG,KAAK6g5B,aAAe7g5B,KAAK0g5B,uBAAyB1g5B,KAAKyg5B,gBAAkBzg5B,KAAK6p5B,mBACzG7p5B,KAAK4p5B,aAAa7qb,UAAU,EAAG,EAAG/+d,KAAK6q5B,YAAYrs4B,MAAOxe,KAAK6q5B,YAAYjiwB,QAC3E5oJ,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,OAC/E,EAaA+zvB,EAAYhs4B,UAAU2j6B,cAAgB,SAAUC,EAAgB3y6B,GAC5D,IAAK5B,KAAK4O,UAAY5O,KAAKy94B,cAAe,CACtC,OAAQ82B,EAAe7z5B,eACnB,IAAK,aACD1gB,KAAKgq5B,cAAcpo5B,GACnB,MACJ,IAAK,WACD5B,KAAKiq5B,YAAYro5B,GACjB,MACJ,IAAK,MACD5B,KAAKkq5B,OAAOto5B,GACZ,MACJ,IAAK,aACD5B,KAAKmq5B,cAAcvo5B,GACnB,MACJ,IAAK,UACD5B,KAAKqq5B,WAAWzo5B,GAChB,MACJ,IAAK,OACD5B,KAAKsq5B,QAAQ1o5B,GACb,MACJ,IAAK,WACD5B,KAAKoq5B,YAAYxo5B,GAGzB5B,KAAK6g5B,aAAe7g5B,KAAK4p5B,aAAaxj5B,OACtCpG,KAAK8w5B,0BAA0B,KACnC,CACJ,EAUAnU,EAAYhs4B,UAAU6j6B,iBAAmB,SAAUC,IAC1Cz06B,KAAK4O,UAAY5O,KAAKy94B,gBACvBz94B,KAAKq15B,UAAUof,EAAa395B,YAC5B9W,KAAK6g5B,aAAe7g5B,KAAK4p5B,aAAaxj5B,OACtCpG,KAAK8w5B,0BAA0B,MAEvC,EASAnU,EAAYhs4B,UAAU2td,KAAO,WACzB,IAAKt+d,KAAK4O,UAAY5O,KAAKy94B,eACnBz94B,KAAKq+4B,aAAe,EAAG,CAClBtykB,GAAkB/rU,KAAK2+4B,UAAUnzwB,OAKlCxrI,KAAK8v5B,sBAJL9v5B,KAAKs0jB,eAAe,UACpBt0jB,KAAKkw5B,sBAKJnklB,GAAkB/rU,KAAK2+4B,UAAUC,cAAqD,IAArC5+4B,KAAK2+4B,UAAUC,YAAYpg4B,QAC7Exe,KAAKwh6B,WAAaxh6B,KAAK2+4B,WAE3B3+4B,KAAK6v5B,mBACL7v5B,KAAKq+4B,eACLr+4B,KAAKkv5B,0BACLlv5B,KAAK484B,YAAa,EAClB,IAAI/r4B,EAAM7Q,KAAKw94B,aAAax94B,KAAKq+4B,cAC7Br+4B,KAAKw94B,aAAap64B,SAAWpD,KAAKq+4B,aAClCr+4B,KAAKi/4B,YAAYS,cAAe,EAGhC1/4B,KAAKi/4B,YAAYS,cAAe,EAEd,0BAAlB7u4B,EAAI8md,WAAyE,UAAhC33d,KAAKmr5B,SAAShl5B,MAAMi+J,UACjEpkK,KAAKmr5B,SAAShl5B,MAAMi+J,QAAU,QAElCpkK,KAAKmV,QAAQykB,cAAc,iCAAiCsuP,UAAU90P,IAAI,UAC1EpzB,KAAK2j5B,gBAAiB,EACtB,IAAIhF,OAAY,EAIhB,OAHA3+4B,KAAKmj5B,QAAU15zB,GAAO,CAAC,EAAG54E,EAAIik5B,gBAAiB,CAAC,GAAG,GACnD905B,KAAK0j5B,iBAAmB7y4B,EAAI4j5B,YAAY/Q,iBACxC1j5B,KAAK4p5B,aAAaxj5B,OAASpG,KAAK6g5B,aAAehw4B,EAAI4j5B,YAAYru5B,OACvDyK,EAAI8md,WACR,IAAK,iBACD33d,KAAKu94B,QAAU9zzB,GAAO,GAAI54E,EAAI6j5B,gBAAiB,IAAI,GACnD105B,KAAK065B,cACL165B,KAAK4p5B,aAAa7qb,UAAU,EAAG,EAAG/+d,KAAK6q5B,YAAYrs4B,MAAOxe,KAAK6q5B,YAAYjiwB,QAC3E5oJ,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,QAC3E5oJ,KAAK484B,YAAa,EAClB584B,KAAK425B,mBACL525B,KAAK6v5B,mBACL,MACJ,IAAK,eACD7v5B,KAAKi9d,UAAYpsd,EAAI+j5B,kBACrB505B,KAAK6i5B,gBAAkB7i5B,KAAKi9d,UAAU75d,OACtCpD,KAAK265B,uBACL365B,KAAK4p5B,aAAa7qb,UAAU,EAAG,EAAG/+d,KAAK6q5B,YAAYrs4B,MAAOxe,KAAK6q5B,YAAYjiwB,QAC3E5oJ,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,QAC3E5oJ,KAAK484B,YAAa,EAClB584B,KAAK425B,mBACL,MACJ,IAAK,yBACD525B,KAAKi9d,UAAYpsd,EAAI+j5B,kBACrB505B,KAAK265B,uBACL365B,KAAK4p5B,aAAa7qb,UAAU,EAAG,EAAG/+d,KAAK6q5B,YAAYrs4B,MAAOxe,KAAK6q5B,YAAYjiwB,QAC3E5oJ,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,QAC3E5oJ,KAAK484B,YAAa,EAClB584B,KAAK425B,mBACL,MACJ,IAAK,wBACL,IAAK,YACqB,0BAAlB/l5B,EAAI8md,WACJ33d,KAAKi9d,UAAYpsd,EAAI+j5B,kBACrB505B,KAAK6i5B,gBAAkB7i5B,KAAKi9d,UAAU75d,OACtCpD,KAAK265B,wBAEkB,cAAlB9p5B,EAAI8md,YACT33d,KAAKu94B,QAAU1s4B,EAAI6j5B,gBACnB105B,KAAK065B,eAET165B,KAAK4p5B,aAAa7qb,UAAU,EAAG,EAAG/+d,KAAK6q5B,YAAYrs4B,MAAOxe,KAAK6q5B,YAAYjiwB,QAC3E5oJ,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,QAC3E5oJ,KAAK484B,YAAa,EAClB584B,KAAK425B,mBACL,MACJ,IAAK,wBACD525B,KAAKu94B,QAAU9zzB,GAAO,GAAI54E,EAAI6j5B,gBAAiB,IAAI,GACnD105B,KAAK065B,aAAY,GACjB165B,KAAK4p5B,aAAa7qb,UAAU,EAAG,EAAG/+d,KAAK6q5B,YAAYrs4B,MAAOxe,KAAK6q5B,YAAYjiwB,QAC3E5oJ,KAAK484B,YAAa,EAClB584B,KAAK425B,mBACL,IAAK,IAAIzq5B,EAAI,EAAGA,EAAI0E,EAAI6j5B,gBAAgBtx5B,OAAQ+I,IAAK,CACjD,GAAK4/T,GAAkB/rU,KAAKwh6B,YAOvB,CACD7iB,EAAYl1zB,GAAO,CAAC,EAAG54E,EAAI6j5B,gBAAgB7j5B,EAAI6j5B,gBAAgBtx5B,OAAS,GAAI,CAAC,GAAG,GAChFpD,KAAKu94B,QAAQ/n3B,OAAOrpB,EAAG,GACvB,KACJ,CAVI,GAAInM,KAAKwh6B,WAAWpL,YAAcvl5B,EAAI6j5B,gBAAgBvo5B,GAAGiq5B,UAAW,CAChEzX,EAAYl1zB,GAAO,CAAC,EAAG54E,EAAI6j5B,gBAAgBvo5B,GAAI,CAAC,GAAG,GACnDnM,KAAKu94B,QAAQ/n3B,OAAOrpB,EAAG,GACvB,KACJ,CAOR,CACK4/T,GAAkB4ykB,IACnB3+4B,KAAK4y6B,cAAcj0B,GAEa,UAAhC3+4B,KAAKmr5B,SAAShl5B,MAAMi+J,SACpBpkK,KAAKg35B,eAET,MACJ,IAAK,OAID,GAHKjrlB,GAAkB/rU,KAAKwh6B,cACxBxh6B,KAAK2+4B,UAAYl1zB,GAAO,CAAC,EAAGzpF,KAAKwh6B,WAAY,CAAC,GAAG,IAElB,IAA/B3w5B,EAAI6j5B,gBAAgBtx5B,QAAwC,IAAxBpD,KAAKu94B,QAAQn64B,OACjDpD,KAAKwh6B,WAAa/30B,GAAO,CAAC,EAAGzpF,KAAKu94B,QAAQ,GAAI,CAAC,GAAG,QAGlD,IAASpx4B,EAAI,EAAGA,EAAInM,KAAKu94B,QAAQn64B,OAAQ+I,IAAK,CAC1C,IAAK4/T,GAAkB/rU,KAAKu94B,QAAQpx4B,KAChC4/T,GAAkBl7T,EAAI6j5B,gBAAgBvo5B,IAAK,CAC3CnM,KAAKwh6B,WAAa/30B,GAAO,CAAC,EAAGzpF,KAAKu94B,QAAQpx4B,GAAI,CAAC,GAAG,GAClD,KACJ,CACA,GAAI0E,EAAI6j5B,gBAAgBvo5B,GAAGiq5B,YAAcp25B,KAAKu94B,QAAQpx4B,GAAGiq5B,UAAW,CAChEp25B,KAAKwh6B,WAAa/30B,GAAO,CAAC,EAAGzpF,KAAKu94B,QAAQpx4B,GAAI,CAAC,GAAG,GAClD,KACJ,CACJ,CAEJnM,KAAK2+4B,UAAYl1zB,GAAO,CAAC,EAAGzpF,KAAKwh6B,WAAY,CAAC,GAAG,GACjDxh6B,KAAKu94B,QAAU9zzB,GAAO,GAAI54E,EAAI6j5B,gBAAiB,IAAI,GACnD105B,KAAK065B,aAAY,GACjB165B,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,QAC3E5oJ,KAAK4p5B,aAAa7qb,UAAU,EAAG,EAAG/+d,KAAK6q5B,YAAYrs4B,MAAOxe,KAAK6q5B,YAAYjiwB,QAC3E5oJ,KAAK484B,YAAa,EAClB584B,KAAK425B,mBACL525B,KAAK6v5B,mBACL,MACJ,QACI7v5B,KAAK8y6B,yBAAyBji6B,GAC9B7Q,KAAK+y6B,cAAcli6B,EAAI8md,WACvB33d,KAAKsltB,aAAaz0sB,EAAI8md,UAAW9md,EAAIzK,QAGvB,SAAlByK,EAAI8md,WAAwB33d,KAAK6h5B,eACjC7h5B,KAAK6h5B,cAAe,EACpB7h5B,KAAKuz6B,uBAAyB9p1B,GAAO,CAAC,EAAGzpF,KAAKyw5B,mBAAoB,CAAC,GAAG,GACtEzw5B,KAAKyw5B,mBAAqB,OAExB1klB,GAAkB/rU,KAAKw94B,aAAax94B,KAAKq+4B,aAAe,KACvDr+4B,KAAKw94B,aAAax94B,KAAKq+4B,aAAe,GAAGwD,eAC5C7h5B,KAAK6h5B,cAAe,EACpB7h5B,KAAKy55B,WAAWz55B,KAAK4p5B,eAEzB5p5B,KAAK275B,iBAAiB375B,KAAK4p5B,cACvB5p5B,KAAK6h5B,cAAkC,SAAlBhx4B,EAAI8md,WACzB33d,KAAKy55B,WAAWz55B,KAAK4p5B,cAErB5p5B,KAAK+g5B,WAAa,IAClB/g5B,KAAK684B,YAAa,GAEtB784B,KAAK2j5B,gBAAiB,EACjB53kB,GAAkB/rU,KAAK2+4B,UAAUnzwB,QAAiD,SAAvCxrI,KAAK2+4B,UAAUnzwB,MAAM74G,MAAM,KAAK,GAI5E3yB,KAAK8v5B,qBAHL9v5B,KAAKs0jB,eAAe,QAAQ,GAAM,GAKjCvoP,GAAkB76S,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,8BAC7DjF,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,2BAA2BhwB,MAAMi+J,QAAU,QAEzFpkK,KAAKkv5B,yBACT,CAER,EAQAvS,EAAYhs4B,UAAU4td,KAAO,WACzB,IAAKv+d,KAAK4O,UAAY5O,KAAKy94B,eACnBz94B,KAAKq+4B,aAAer+4B,KAAKwk5B,oBAAoBph5B,OAAQ,CAChD2oU,GAAkB/rU,KAAK2+4B,UAAUnzwB,OAKlCxrI,KAAK8v5B,sBAJL9v5B,KAAKs0jB,eAAe,UACpBt0jB,KAAKkw5B,sBAKTlw5B,KAAKq+4B,eACLr+4B,KAAKkv5B,0BACLlv5B,KAAK484B,YAAa,EAClB,IAAI/r4B,EAAM7Q,KAAKw94B,aAAax94B,KAAKq+4B,aAAe,GAC5Cr+4B,KAAKw94B,aAAap64B,SAAWpD,KAAKq+4B,aAClCr+4B,KAAKi/4B,YAAYS,cAAe,EAGhC1/4B,KAAKi/4B,YAAYS,cAAe,EAEd,0BAAlB7u4B,EAAI8md,WAAyE,UAAhC33d,KAAKmr5B,SAAShl5B,MAAMi+J,UACjEpkK,KAAKmr5B,SAAShl5B,MAAMi+J,QAAU,QAElCpkK,KAAKmV,QAAQykB,cAAc,iCAAiCsuP,UAAU90P,IAAI,UAC1EpzB,KAAK2j5B,gBAAiB,EACtB3j5B,KAAKmj5B,QAAU15zB,GAAO,CAAC,EAAG54E,EAAIkk5B,eAAgB,CAAC,GAAG,GAClD/05B,KAAK0j5B,iBAAmB7y4B,EAAIgplB,WAAW6pT,iBACvC1j5B,KAAK4p5B,aAAaxj5B,OAASpG,KAAK6g5B,aAAehw4B,EAAIgplB,WAAWzzlB,OAC9D,IAAIu44B,OAAY,EAChB,OAAQ9t4B,EAAI8md,WACR,IAAK,iBACD33d,KAAKu94B,QAAU9zzB,GAAO,GAAI54E,EAAI8j5B,eAAgB,IAAI,GAClD305B,KAAK065B,cACL165B,KAAK4p5B,aAAa7qb,UAAU,EAAG,EAAG/+d,KAAK6q5B,YAAYrs4B,MAAOxe,KAAK6q5B,YAAYjiwB,QAC3E5oJ,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,QAC3E5oJ,KAAK484B,YAAa,EAClB584B,KAAK425B,mBACL525B,KAAK6v5B,mBACL,MACJ,IAAK,eACD7v5B,KAAKi9d,UAAYpsd,EAAIgk5B,iBACrB705B,KAAK6i5B,gBAAkB7i5B,KAAKi9d,UAAU75d,OACtCpD,KAAK265B,uBACL365B,KAAK4p5B,aAAa7qb,UAAU,EAAG,EAAG/+d,KAAK6q5B,YAAYrs4B,MAAOxe,KAAK6q5B,YAAYjiwB,QAC3E5oJ,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,QAC3E5oJ,KAAK484B,YAAa,EAClB584B,KAAK425B,mBACL,MACJ,IAAK,yBACD525B,KAAKi9d,UAAYpsd,EAAIgk5B,iBACrB705B,KAAK265B,uBACL365B,KAAK4p5B,aAAa7qb,UAAU,EAAG,EAAG/+d,KAAK6q5B,YAAYrs4B,MAAOxe,KAAK6q5B,YAAYjiwB,QAC3E5oJ,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,QAC3E5oJ,KAAK484B,YAAa,EAClB584B,KAAK425B,mBACL,MACJ,IAAK,wBACL,IAAK,YACqB,0BAAlB/l5B,EAAI8md,WACJ33d,KAAKi9d,UAAYpsd,EAAIgk5B,iBACrB705B,KAAK6i5B,gBAAkB7i5B,KAAKi9d,UAAU75d,OACtCpD,KAAK265B,wBAEkB,cAAlB9p5B,EAAI8md,YACT33d,KAAKu94B,QAAU1s4B,EAAI8j5B,eACnB305B,KAAK065B,eAET165B,KAAK4p5B,aAAa7qb,UAAU,EAAG,EAAG/+d,KAAK6q5B,YAAYrs4B,MAAOxe,KAAK6q5B,YAAYjiwB,QAC3E5oJ,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,QAC3E5oJ,KAAK484B,YAAa,EAClB584B,KAAK425B,mBACL,MACJ,IAAK,wBACD525B,KAAKu94B,QAAU9zzB,GAAO,GAAI54E,EAAI8j5B,eAAgB,IAAI,GAClD305B,KAAK065B,aAAY,GACjB165B,KAAK4p5B,aAAa7qb,UAAU,EAAG,EAAG/+d,KAAK6q5B,YAAYrs4B,MAAOxe,KAAK6q5B,YAAYjiwB,QAC3E5oJ,KAAK484B,YAAa,EAClB584B,KAAK425B,mBACL,IAAK,IAAIzq5B,EAAI,EAAGA,EAAI0E,EAAI8j5B,eAAevx5B,OAAQ+I,IAAK,CAChD,GAAK4/T,GAAkB/rU,KAAKwh6B,YAOvB,CACD7iB,EAAYl1zB,GAAO,CAAC,EAAG54E,EAAI8j5B,eAAe9j5B,EAAI8j5B,eAAevx5B,OAAS,GAAI,CAAC,GAAG,GAC9EpD,KAAKu94B,QAAQ/n3B,OAAOrpB,EAAG,GACvB,KACJ,CAVI,GAAInM,KAAKwh6B,WAAWpL,YAAcvl5B,EAAI8j5B,eAAexo5B,GAAGiq5B,UAAW,CAC/DzX,EAAYl1zB,GAAO,CAAC,EAAG54E,EAAI8j5B,eAAexo5B,GAAI,CAAC,GAAG,GAClDnM,KAAKu94B,QAAQ/n3B,OAAOrpB,EAAG,GACvB,KACJ,CAOR,CACK4/T,GAAkB4ykB,IACnB3+4B,KAAK4y6B,cAAcj0B,GAEa,UAAhC3+4B,KAAKmr5B,SAAShl5B,MAAMi+J,SACpBpkK,KAAKg35B,eAET,MACJ,IAAK,OAID,GAHKjrlB,GAAkB/rU,KAAKwh6B,cACxBxh6B,KAAK2+4B,UAAYl1zB,GAAO,CAAC,EAAGzpF,KAAKwh6B,WAAY,CAAC,GAAG,IAElB,IAA/B3w5B,EAAI6j5B,gBAAgBtx5B,QAAwC,IAAxBpD,KAAKu94B,QAAQn64B,OACjDpD,KAAKwh6B,WAAa/30B,GAAO,CAAC,EAAGzpF,KAAKu94B,QAAQ,GAAI,CAAC,GAAG,QAGlD,IAASpx4B,EAAI,EAAGA,EAAInM,KAAKu94B,QAAQn64B,OAAQ+I,IAAK,CAC1C,IAAK4/T,GAAkB/rU,KAAKu94B,QAAQpx4B,KAChC4/T,GAAkBl7T,EAAI6j5B,gBAAgBvo5B,IAAK,CAC3CnM,KAAKwh6B,WAAa/30B,GAAO,CAAC,EAAGzpF,KAAKu94B,QAAQpx4B,GAAI,CAAC,GAAG,GAClD,KACJ,CACA,GAAI0E,EAAI6j5B,gBAAgBvo5B,GAAGiq5B,YAAcp25B,KAAKu94B,QAAQpx4B,GAAGiq5B,UAAW,CAChEp25B,KAAKwh6B,WAAa/30B,GAAO,CAAC,EAAGzpF,KAAKu94B,QAAQpx4B,GAAI,CAAC,GAAG,GAClD,KACJ,CACJ,CAEJnM,KAAKu94B,QAAU9zzB,GAAO,GAAI54E,EAAI8j5B,eAAgB,IAAI,GAClD305B,KAAK065B,aAAY,GACjB165B,KAAK4p5B,aAAa7qb,UAAU,EAAG,EAAG/+d,KAAK6q5B,YAAYrs4B,MAAOxe,KAAK6q5B,YAAYjiwB,QAC3E5oJ,KAAK484B,YAAa,EAClB584B,KAAK425B,mBACL525B,KAAK6v5B,mBACL,MACJ,QACI7v5B,KAAKu94B,QAAU,GACfv94B,KAAKi9d,UAAY,GACjBj9d,KAAK6i5B,gBAAkB,EACvB7i5B,KAAK635B,cAAchn5B,EAAIgplB,YACvB75lB,KAAKih5B,SAAWpw4B,EAAIgplB,WAAW0pT,WAAW97iB,OAC1CznW,KAAKkh5B,QAAUrw4B,EAAIgplB,WAAW0pT,WAAW77iB,OACzCi3iB,EAAYl1zB,GAAO,CAAC,EAAGzpF,KAAK2+4B,UAAW,CAAC,GAAG,GAC3C3+4B,KAAKu94B,QAAU9zzB,GAAO,GAAI54E,EAAI8j5B,eAAgB,IAAI,GAClD305B,KAAKi9d,UAAYxzY,GAAO,GAAI54E,EAAIgk5B,iBAAkB,IAAI,GACtD705B,KAAK6i5B,gBAAkB7i5B,KAAKi9d,UAAU75d,OACtCpD,KAAK4p5B,aAAaxj5B,OAAS,OAC3BpG,KAAK065B,cACL165B,KAAK265B,uBACL365B,KAAK4p5B,aAAaxj5B,OAASyK,EAAIgplB,WAAWzzlB,OAC1CpG,KAAK2+4B,UAAYA,EACjB3+4B,KAAK4o5B,aAAa7pb,UAAU,EAAG,EAAG/+d,KAAKyq5B,YAAYjs4B,MAAOxe,KAAKyq5B,YAAY7hwB,QAClC,IAArC5oJ,KAAK2+4B,UAAUC,YAAYpg4B,OAAqD,IAAtCxe,KAAK2+4B,UAAUC,YAAYh2vB,QACrE5oJ,KAAKu25B,WAAW,aAEpBv25B,KAAK+y6B,cAAcli6B,EAAI8md,WACvB33d,KAAKsltB,aAAaz0sB,EAAI8md,WAGR,SAAlB9md,EAAI8md,WAAwB9md,EAAIgx4B,eAChC7h5B,KAAK6h5B,cAAe,EACpB7h5B,KAAKyw5B,mBAAqBhn0B,GAAO,CAAC,EAAGzpF,KAAKuz6B,uBAAwB,CAAC,GAAG,GACtEvz6B,KAAKuz6B,uBAAyB,MAEZ,SAAlB1i6B,EAAI8md,WAAyB9md,EAAIgx4B,eACjC7h5B,KAAK6h5B,cAAe,GAExB7h5B,KAAK275B,iBAAiB375B,KAAK4p5B,cACvB5p5B,KAAK6h5B,cACL7h5B,KAAKy55B,WAAWz55B,KAAK4p5B,cAErB5p5B,KAAK+g5B,WAAa,IAClB/g5B,KAAK684B,YAAa,GAEtB784B,KAAK2j5B,gBAAiB,EAClB3j5B,KAAKq+4B,eAAiBr+4B,KAAKw94B,aAAap64B,SACxCpD,KAAK484B,YAAa,GAEjB7wkB,GAAkB/rU,KAAK2+4B,UAAUnzwB,QAAiD,SAAvCxrI,KAAK2+4B,UAAUnzwB,MAAM74G,MAAM,KAAK,GAI5E3yB,KAAK8v5B,qBAHL9v5B,KAAKs0jB,eAAe,QAAQ,GAAM,GAKjCvoP,GAAkB76S,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,8BAC7DjF,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,2BAA2BhwB,MAAMi+J,QAAU,QAEzFpkK,KAAKkv5B,yBACT,CAER,EAQAvS,EAAYhs4B,UAAU+j6B,kBAAoB,WACtC,MAAO,CAAEx65B,EAAGla,KAAKih5B,SAAU9m4B,EAAGna,KAAKkh5B,QAAS1i4B,MAAOxe,KAAKm05B,UAAWvrwB,OAAQ5oJ,KAAKo05B,WACpF,EAEArkkB,IAAW,CACPjB,GAAS,KACV6tjB,EAAYhs4B,UAAW,gBAAY,GACtCo/U,IAAW,CACPjB,IAAS,IACV6tjB,EAAYhs4B,UAAW,gBAAY,GACtCo/U,IAAW,CACPjB,GAAS,SACV6tjB,EAAYhs4B,UAAW,cAAU,GACpCo/U,IAAW,CACPjB,GAAS,eACV6tjB,EAAYhs4B,UAAW,aAAS,GACnCo/U,IAAW,CACPjB,MACD6tjB,EAAYhs4B,UAAW,eAAW,GACrCo/U,IAAW,CACPjB,MACD6tjB,EAAYhs4B,UAAW,uBAAmB,GAC7Co/U,IAAW,CACPjB,GAAS,SACV6tjB,EAAYhs4B,UAAW,aAAS,GACnCo/U,IAAW,CACPjB,IAAS,IACV6tjB,EAAYhs4B,UAAW,qBAAiB,GAC3Co/U,IAAW,CACPjB,IAAS,IACV6tjB,EAAYhs4B,UAAW,8BAA0B,GACpDo/U,IAAW,CACPjB,MACD6tjB,EAAYhs4B,UAAW,kCAA8B,GACxDo/U,IAAW,CACPjB,IAAS,IACV6tjB,EAAYhs4B,UAAW,kBAAc,GACxCo/U,IAAW,CACPjB,IAAS,IACV6tjB,EAAYhs4B,UAAW,iBAAa,GACvCo/U,IAAW,CACPjB,IAAS,IACV6tjB,EAAYhs4B,UAAW,yBAAqB,GAC/Co/U,IAAW,CACPd,GAAQ,CAAC,EAAGwtjB,MACbE,EAAYhs4B,UAAW,wBAAoB,GAC9Co/U,IAAW,CACPd,GAAQ,CAAC,EAAGytjB,MACbC,EAAYhs4B,UAAW,oBAAgB,GAC1Co/U,IAAW,CACP94T,MACD0l3B,EAAYhs4B,UAAW,kBAAc,GACxCo/U,IAAW,CACP94T,MACD0l3B,EAAYhs4B,UAAW,eAAW,GACrCo/U,IAAW,CACP94T,MACD0l3B,EAAYhs4B,UAAW,iBAAa,GACvCo/U,IAAW,CACP94T,MACD0l3B,EAAYhs4B,UAAW,eAAW,GACrCo/U,IAAW,CACP94T,MACD0l3B,EAAYhs4B,UAAW,eAAW,GACrCo/U,IAAW,CACP94T,MACD0l3B,EAAYhs4B,UAAW,gBAAY,GACtCo/U,IAAW,CACP94T,MACD0l3B,EAAYhs4B,UAAW,gBAAY,GACtCo/U,IAAW,CACP94T,MACD0l3B,EAAYhs4B,UAAW,gBAAY,GACtCo/U,IAAW,CACP94T,MACD0l3B,EAAYhs4B,UAAW,qBAAiB,GAC3Co/U,IAAW,CACP94T,MACD0l3B,EAAYhs4B,UAAW,kBAAc,GACxCo/U,IAAW,CACP94T,MACD0l3B,EAAYhs4B,UAAW,aAAS,GACnCo/U,IAAW,CACP94T,MACD0l3B,EAAYhs4B,UAAW,sBAAkB,GAC5Co/U,IAAW,CACP94T,MACD0l3B,EAAYhs4B,UAAW,uBAAmB,GAC7Co/U,IAAW,CACP94T,MACD0l3B,EAAYhs4B,UAAW,0BAAsB,GAChDo/U,IAAW,CACP94T,MACD0l3B,EAAYhs4B,UAAW,sBAAkB,GAC5Co/U,IAAW,CACP94T,MACD0l3B,EAAYhs4B,UAAW,6BAAyB,GACnDo/U,IAAW,CACP94T,MACD0l3B,EAAYhs4B,UAAW,aAAS,GACnCo/U,IAAW,CACP94T,MACD0l3B,EAAYhs4B,UAAW,iCAA6B,GACvDgs4B,EAAcqI,EAAgBj1jB,IAAW,CACrCT,IACDqtjB,EAEP,CAhuciC,CAguc/Bv74B,KAQF,SAAW664B,GAEPA,EAAc,IAAI,MAElBA,EAAe,KAAI,OAEnBA,EAAc,IAAI,KACrB,CAPD,CAOGA,MAAaA,IAAW,CAAC,IAO5B,SAAWC,GAEPA,EAAsB,WAAI,aAE1BA,EAAoB,SAAI,UAC3B,CALD,CAKGA,MAAcA,IAAY,CAAC,IAO9B,SAAWC,GAEPA,EAAqB,UAAI,YAEzBA,EAAmB,QAAI,UAEvBA,EAAgB,KAAI,OAEpBA,EAAiB,MAAI,QAErBA,EAAgB,KAAI,OAEpBA,EAAwB,aAAI,cAC/B,CAbD,CAaGA,MAAcA,IAAY,CAAC,IAO9B,SAAWC,GAEPA,EAAYA,EAAwB,WAAI,GAAK,aAE7CA,EAAYA,EAAmB,MAAI,GAAK,QAExCA,EAAYA,EAAsB,SAAI,GAAK,WAE3CA,EAAYA,EAAqB,QAAI,GAAK,SAC7C,CATD,CASGA,MAAgBA,IAAc,CAAC,IAKlC,SAAWC,GAEPA,EAAkB,WAAI,aAEtBA,EAAsB,eAAI,iBAE1BA,EAAgB,SAAI,WAEpBA,EAAoB,aAAI,eAExBA,EAAc,OAAI,SAElBA,EAAkB,WAAI,aAEtBA,EAAkB,WAAI,aAEtBA,EAAiB,UAAI,YAErBA,EAAqB,cAAI,gBAEzBA,EAAgB,SAAI,WAEpBA,EAAoB,aAAI,eAExBA,EAAc,OAAI,SAElBA,EAAkB,WAAI,aAEtBA,EAAoB,aAAI,cAC3B,CA7BD,CA6BGA,MAAUA,IAAQ,CAAC,IAKtB,SAAWC,GACPA,EAAyB,KAAI,OAC7BA,EAA8B,UAAI,YAClCA,EAA6B,SAAI,WACjCA,EAA2B,OAAI,SAC/BA,EAA4B,QAAI,UAChCA,EAAyB,KAAI,OAC7BA,EAA0B,MAAI,QAC9BA,EAAyB,KAAI,OAC7BA,EAAwB,IAAI,MAC5BA,EAAyB,KAAI,OAC7BA,EAAwB,IAAI,MAC5BA,EAAyB,KAAI,OAC7BA,EAA0B,MAAI,QAC9BA,EAA8B,UAAI,YAClCA,EAA4B,QAAI,UAChCA,EAAyB,KAAI,OAC7BA,EAAoC,gBAAI,kBACxCA,EAAoC,gBAAI,kBACxCA,EAAoC,gBAAI,kBACxCA,EAAmC,eAAI,iBACvCA,EAA+B,WAAI,aACnCA,EAAgC,YAAI,cACpCA,EAAmC,eAAI,iBACvCA,EAAiC,aAAI,cACxC,CAzBD,CAyBGA,MAAuBA,IAAqB,CAAC,IAQhD,SAAWC,GAEPA,EAA2B,QAAI,UAE/BA,EAA0B,OAAI,SAE9BA,EAAwB,KAAI,OAE5BA,EAAwB,KAAI,OAE5BA,EAA6B,UAAI,YAEjCA,EAAyB,MAAI,QAE7BA,EAA0B,OAAI,QACjC,CAfD,CAeGA,MAAsBA,IAAoB,CAAC,IAQ9C,SAAWC,GAEPA,EAAgC,WAAI,aAEpCA,EAA8B,SAAI,WAElCA,EAAyB,IAAI,MAE7BA,EAAgC,WAAI,aAEpCA,EAA8B,SAAI,WAElCA,EAA6B,QAAI,UAEjCA,EAA0B,KAAI,MACjC,CAfD,CAeGA,MAAwBA,IAAsB,CAAC,IC1+clD,IAAIt21B,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAsBzCuu3B,IAAsC,SAAU7t3B,GAEhD,SAAS6t3B,EAAqBv16B,GAC1B,IAAIE,EAAQwnD,EAAOnnD,KAAKK,KAAMZ,IAAUY,KAOxC,OANAV,EAAMixW,kBAAmB,EACzBjxW,EAAM2zW,sBAAuB,EAC7B3zW,EAAM42W,uBAAyB,KAC/B52W,EAAMyzW,cAAgB,KACtBzzW,EAAM62W,iBAAkB,EACxB72W,EAAMwxW,QAAU,GACTxxW,CACX,CAUA,OApBA4mD,IAAUyu3B,EAAsB7t3B,GAWhC6t3B,EAAqBhk6B,UAAUyJ,OAAS,WACpC,KAAMpa,KAAKmV,UAAYnV,KAAKuwW,kBAAqBvwW,KAAK2rV,aAAgB3rV,KAAKwwW,oBAKvE,OAAO13K,GAAAA,cAAoB,MAAO94L,KAAKgyW,uBAAwB,GAAG54V,OAAOpZ,KAAKZ,MAAM0G,SAAU9F,KAAK8wW,UAJnGhqT,EAAOn2C,UAAUyJ,OAAOza,KAAKK,MAC7BA,KAAKuwW,kBAAmB,CAKhC,EACOokkB,CACX,CAtB0C,CAsBxCh4B,KAEFrniB,GAAYq/jB,IAAsB,CAACzkkB,GAAep3K,GAAAA,yCC3CrC87uB,IAAkB,WAClBC,IAAgB,SAChBC,IAAmB,YACnBC,IAAmB,YACnBC,IAAwB,iBAGxBC,IAAWx16B,OACXy16B,IAAWD,IAASF,KACpBI,IAAYF,IAAiB,OAC7BG,IAAYH,IAAiB,OAC7BI,IAAoBJ,IAAyB,eAC7CK,IAAoBJ,IAASF,KCPtCO,IAAwB,KActB,SAAU7z4B,IAAU8z4B,QAAA,IAAAA,IAAAA,GAAA,GACtB,IAAI3q5B,GAAuB,IAAd2q5B,EAAsB,KAAOD,IAsB1C,OApBK1q5B,WACUs0J,aAAe21vB,MACtBjq5B,EAASs0J,YAGRt0J,UAAiBhT,OAASi95B,MAC3Bjq5B,EAAShT,MAGRgT,UAAiBmG,SAAW8j5B,MAC7Bjq5B,EAASmG,QAGRnG,UAAiB0P,EAAAA,IAAWu64B,MAC7Bjq5B,EAAS0P,EAAAA,GAGbg74B,IAAgB1q5B,GAGbA,CACX,CAEM,SAAU+jB,IAAe13B,GAC3B,MAAM,IAAIU,UAAUV,EACxB,CAQM,SAAUu+5B,IAAY5k6B,GAGxB,GAFWuk6B,IAIP,OAJOA,IAIKvk6B,GAEhB,GAAW,MAAPA,EACA,MAAO,CAAC,EAEZ,IAAIjE,SAAciE,EAKlB,SAAS6k6B,IAAW,CAGpB,OAPI9o6B,IAASio6B,KAAiBjo6B,IAASgo6B,KACnChm4B,IAAe,0CAA4C/9B,GAI/D6k6B,EAAQX,KAAoBlk6B,EAErB,IAAK6k6B,CAChB,EC9D0Bh04B,OAAa,CAAC,GAAW,QACxBA,OAAa,CAAC,GAAY,QAD9C,ICbH4T,IDsCOqg4B,IAA4BR,KAbO,SAASxz5B,GAEnD,IAAK,IAAIV,EAAG9U,EAAI,EAAGnK,EAAImB,UAAUC,OAAQ+I,EAAInK,EAAGmK,IAE5C,IAAK,IAAIuW,KADTzB,EAAI9d,UAAUgJ,GAEN+o6B,IAASF,KAAuBr16B,KAAKshB,EAAGyB,KACvCf,EAAUe,GAAKzB,EAAEyB,IAI9B,OAAOf,CACX,EAKIi05B,IAAkB,SAASp06B,EAAQ0U,GAcnC,OAbA0/5B,IAAkBX,IAAyB,gBAEtC,CAAEz16B,UAAW,cAAgBkR,OAAS,SAAUlP,EAAQ0U,GACrD1U,EAAEhC,UAAY0W,CAClB,GAEA,SAAU1U,EAAQ0U,GACd,IAAK,IAAIwM,KAAKxM,EACNA,EAAE8+5B,KAAuBty5B,KACzBlhB,EAAEkhB,GAAKxM,EAAEwM,GAGrB,EACGkz5B,IAAgBp06B,EAAG0U,EAC9B,EAEM,SAAU2/5B,IAAYr06B,EAAQ0U,GAKhC,SAASkwC,IACLpmD,KAAKmW,YAAc3U,CACvB,QANW0U,IAAM0+5B,KAAyB,OAAN1+5B,GAChC04B,IAAe,uBAAyB7wB,OAAO7H,GAAK,iCAExD0/5B,IAAgBp06B,EAAG0U,GAKnB1U,EAAEuz6B,KAA0B,OAAN7+5B,EAAau/5B,IAAYv/5B,IAAMkwC,EAAG2u3B,KAAoB7+5B,EAAE6+5B,KAAmB,IAAK3u3B,EAC1G,CA8IM,SAAU0v3B,IAAgBvy6B,EAASD,GACrC,IAAK,IAAI6I,EAAI,EAAGu8J,EAAKplK,EAAKF,OAAQ4M,EAAIzM,EAAGH,OAAQ+I,EAAIu8J,EAAIv8J,IAAK6D,IAC1DzM,EAAGyM,GAAK1M,EAAK6I,GAGjB,OAAO5I,CACX,CCtNA,IAAIwy6B,IAAY,YAKZp+5B,IAAc,cAKdq+5B,IAAY,YAKZC,IAAc,WAKdC,IAAmB,gBAKnBC,IAAc,cAKdC,IAAe,YAUfC,IAAgB,cAKhBC,IAAqBD,IAIrBE,IAAyB,UAKzBC,IAAe,YAKfC,IAAa,YAIbC,IAAoB,OAASD,IAI7BE,IAAyB,iBAIzBC,IAAkB,gBAKlBC,IAAiB,cAKjBC,IAAkB,eAClBC,IAAMt36B,OAKNu36B,IAAqBD,IAAoB,eAIzCE,IAAkBF,IAAyB,oBAuB/C,IAAIG,IAlBJ,WACI,IAAIrs5B,EAaJ,cAZWs0J,aAAe42vB,MACtBlr5B,EAASs0J,YAERt0J,UAAiBhT,OAASk+5B,MAC3Blr5B,EAAShT,MAERgT,UAAiBmG,SAAW+k5B,MAC7Blr5B,EAASmG,QAERnG,UAAiB0P,EAAAA,IAAWw74B,MAC7Blr5B,EAAS0P,EAAAA,GAEN1P,GAAU,CAAC,CACtB,CAGWss5B,GACPC,IAAWF,IAAKP,OAA4BO,IAAKP,KAA0B,CAC3Ehz3B,GAAIrO,IAAK,CAAC,EACNA,IAAGwh4B,MAAmB,EACtBxh4B,IAAGuh4B,MAAkB,EACrBvh4B,KACJtzC,EAAG,MAMP,SAASq16B,IAAgBxm6B,EAAKlM,GAC1B,OAAOkM,GAAOkm6B,IAAIf,KAAWll6B,eAAenR,KAAKkR,EAAKlM,EAC1D,CAKA,SAAS2y6B,IAA0Bjv6B,GAC/B,OAAOA,IAAWA,IAAW0u6B,IAAIf,MAAc3t6B,IAAWqI,MAAMsl6B,KACpE,CAKA,SAASuB,IAAkClv6B,GACvC,OAAOiv6B,IAA0Bjv6B,IAAWA,IAAW6+B,SAAS8u4B,IACpE,CAKA,SAASwB,IAAanv6B,GAClB,IAAIov6B,EACJ,GAAIpv6B,EAAQ,CAER,GAAI2u6B,IACA,OAAOA,IAAmB3u6B,GAE9B,IAAIqv6B,EAAWrv6B,EAAOou6B,MAAepu6B,EAAO2t6B,OAAe3t6B,EAAOsP,KAAetP,EAAOsP,KAAaq+5B,KAAa,MAElHyB,EAAWpv6B,EAAOqu6B,MAAsBgB,EACnCL,IAAgBhv6B,EAAQqu6B,cAGlBru6B,EAAOuu6B,KACda,EAAWpv6B,EAAOqu6B,KAAqBru6B,EAAOuu6B,MAAoBvu6B,EAAOqu6B,KACzEru6B,EAAOuu6B,KAAmBc,EAEtC,CACI,OAAOD,CACX,CAMA,SAASE,IAAatv6B,EAAQ8T,GAC1B,IAAI/c,EAAQ,GACZ,GAAI636B,IACA736B,EAAQ636B,IAAgB5u6B,QAGxB,IAAK,IAAIwxX,KAAUxxX,EACO,kBAAXwxX,GAAuBw9iB,IAAgBhv6B,EAAQwxX,IACtDz6X,EAAMgN,KAAKytX,GAIvB,GAAIz6X,GAASA,EAAMgE,OAAS,EACxB,IAAK,IAAIw06B,EAAK,EAAGA,EAAKx46B,EAAMgE,OAAQw06B,IAChCz75B,EAAK/c,EAAMw46B,GAGvB,CASA,SAASC,IAAoBxv6B,EAAQiwE,EAAUw/1B,GAC3C,OAAQx/1B,IAAa3gE,YAAsBtP,EAAOiwE,KAAc291B,MAAgB6B,GAAWT,IAAgBhv6B,EAAQiwE,KAAcA,IAAam+1B,KAAcn+1B,IAAa091B,GAC7K,CAMA,SAAS+B,IAAgB7g6B,GACrB,MAAM,IAAIU,UAAU,iBAAmBV,EAC3C,CACA,SAAS8g6B,MACL,OAAOv46B,OAAOyY,OAAS,SAAArH,GAAA,IAAAsL,EAAA1c,OAAA,cAAA0c,EAAAA,EAAAtL,GAAA,UAAsB,CAAC,CAClD,CAyBA,SAASon6B,IAAY1v5B,EAAQ3mB,GACzB,IAAK,IAAIg26B,EAAKrv5B,EAAOnlB,OAAS,EAAGw06B,GAAM,EAAGA,IACtC,GAAIrv5B,EAAOqv5B,KAAQh26B,EACf,OAAO,EAGf,OAAO,CACX,CA0HA,SAASs26B,IAAmBn+4B,EAAOh5B,EAAWsH,EAAQ8v6B,EAAeC,GACjE,SAASC,EAAwBt+4B,EAAOu+C,GACpC,IAAIgg2B,EAAgB,WAEhB,IAAIC,EA1EhB,SAAsBlw6B,EAAQiwE,EAAUv+C,EAAOy+4B,GAC3C,IAAID,EAAW,KAGf,GAAIlw6B,GAAUgv6B,IAAgBt94B,EAAOq84B,KAAe,CAChD,IAAIqC,EAAgBpw6B,EAAO6t6B,MAAqB8B,MAQhD,IAPAO,GAAYE,EAAc1+4B,EAAMq84B,OAAkB4B,OAAc1/1B,KAG5Dy/1B,IAAgB,YAAcz/1B,EAAW,KAAO291B,MAI/CsC,EAASlC,OAAwD,IAAtCoC,EAAcnC,KAA+B,CAQzE,IANA,IAAIoC,GAAcrB,IAAgBhv6B,EAAQiwE,GAEtCqg2B,EAAWnB,IAAanv6B,GACxBkjT,EAAU,GAGPmtnB,GAAcC,IAAapB,IAAkCoB,KAAcV,IAAY1snB,EAASotnB,IAAW,CAC9G,IAAIC,EAAYD,EAASrg2B,GACzB,GAAIsg2B,EAAW,CACXF,EAAcE,IAAcJ,EAC5B,KACpB,CAEgBjtnB,EAAQn/S,KAAKus6B,GACbA,EAAWnB,IAAamB,EACxC,CACY,IACQD,IAGArw6B,EAAOiwE,GAAYig2B,GAGvBA,EAASlC,KAAiB,CAC1C,CACY,MAAOh26B,KAGHo46B,EAAcnC,MAAsB,CACpD,CACA,CACA,CACI,OAAOiC,CACX,CA0B2BM,CAAa746B,KAAMs4E,EAAUv+C,EAAOu+4B,IAzB/D,SAAuBhg2B,EAAUv+C,EAAOy+4B,GACpC,IAAII,EAAY7+4B,EAAMu+C,GAStB,OAPIsg2B,IAAcJ,IAEdI,EAAYpB,IAAaz94B,GAAOu+C,WAEzBsg2B,IAAc3C,KACrB8B,IAAgB,IAAMz/1B,EAAW,cAAgB291B,KAE9C2C,CACX,CAciFE,CAAcxg2B,EAAUv+C,EAAOu+4B,GAEpG,OAAOC,EAASp/5B,MAAMnZ,KAAMmD,UACxC,EAIQ,OADAm16B,EAAcnC,KAAe,EACtBmC,CACf,CACI,IAAKhB,IAA0Bv94B,GAAQ,CACnC,IAAI0+4B,EAAgBpw6B,EAAO6t6B,KAAoB7t6B,EAAO6t6B,MAAqB8B,MAC3E,IAAKV,IAA0BmB,GAAgB,CAC3C,IAAIM,EAAcN,EAAc136B,GAAc036B,EAAc136B,IAAci36B,OAEhC,IAAtCS,EAAcnC,OACdmC,EAAcnC,OAAwB8B,GAErCd,IAA0ByB,IAC3BpB,IAAatv6B,GAAQ,SAAU3D,GAEvBmz6B,IAAoBxv6B,EAAQ3D,GAAM,IAAU2D,EAAO3D,KAAUyz6B,EAAczz6B,KAE3Eq06B,EAAYr06B,GAAQ2D,EAAO3D,UACpB2D,EAAO3D,KAET2y6B,IAAgBt94B,EAAOr1B,IAAUq1B,EAAMr1B,KAAUq1B,EAAMr1B,GAAMyx6B,QAC9Dp84B,EAAMr1B,GAAQ2z6B,EAAwBt+4B,EAAOr1B,IAGzE,GAEA,CACA,CACA,CAkCA,SAASs06B,IAAY3w6B,EAAQ4w6B,GACzB,OAAI5B,IAAgBhv6B,EAAQ2t6B,KAEjB3t6B,EAAO3D,MAAQu06B,GAAgBzC,MAEhCnu6B,GAAU,CAAC,GAAGsP,MAAiB,CAAC,GAAGjT,MAAQu06B,GAAgBzC,GACzE,CAqDe,SAAS0C,IAAaj8uB,EAAU50L,EAAQ8w6B,EAAcr65B,GAE5Du45B,IAAgBp6uB,EAAU+4uB,MAC3B+B,IAAgB,4CAGpB,IAAIqB,EAAan8uB,EAAS+4uB,MA5F9B,SAAyBoD,EAAYC,GAEjC,GAAIrC,IAAoB,CAIpB,IAFA,IAAIzrnB,EAAU,GACV+tnB,EAAY9B,IAAa6B,GACtBC,IAAc/B,IAAkC+B,KAAerB,IAAY1snB,EAAS+tnB,IAAY,CACnG,GAAIA,IAAcF,EACd,OAAO,EAIX7tnB,EAAQn/S,KAAKkt6B,GACbA,EAAY9B,IAAa8B,EACrC,CACQ,OAAO,CACf,CAEI,OAAO,CACX,EA0ESC,CAAgBH,EAAY/w6B,IAC7B0v6B,IAAgB,IAAMiB,IAAY/7uB,GAAY,0BAA4B+7uB,IAAY3w6B,GAAU,KAEpG,IAAItH,EAAY,KACZs26B,IAAgB+B,EAAYhD,KAE5Br16B,EAAYq46B,EAAWhD,MAMvBr16B,EA/diB,WA+dgBi46B,IAAY/7uB,EAAU,KAAO,IAAMm6uB,IAASp16B,EAC7Eo16B,IAASp16B,IACTo36B,EAAWhD,KAAgBr16B,GAE/B,IAAIy46B,EAAcN,IAAa3C,KAC3BkD,IAAgBD,EAAY3C,KAC5B4C,GAAe365B,QAAuCzb,IAA5Byb,EAAQ+35B,OAClC4C,IAAgB365B,EAAQ+35B,MAG5B,IAAI6C,EAlTR,SAA2BL,GAEvB,IAAIK,EAAY1B,MAShB,OAPAL,IAAa0B,GAAY,SAAU306B,IAE1Bg16B,EAAUh16B,IAASmz6B,IAAoBwB,EAAY306B,GAAM,KAE1Dg16B,EAAUh16B,GAAQ206B,EAAW306B,GAEzC,IACWg16B,CACX,CAsSoBC,CAAkBtx6B,GAE9Bux6B,EApRR,SAAuBR,EAAYC,EAAYK,EAAWD,GACtD,SAASI,EAAexx6B,EAAQyx6B,EAAUxh2B,GACtC,IAAIyh2B,EAAUD,EAASxh2B,GACvB,GAAIyh2B,EAAQ5D,MAAgBsD,EAAa,CAErC,IAAIhB,EAAgBpw6B,EAAO6t6B,MAAqB,CAAC,GACP,IAAtCuC,EAAcnC,OACdyD,GAAWtB,EAAcqB,EAAS1D,OAAkB,CAAC,GAAG991B,IAAayh2B,EAErF,CACQ,OAAO,WAEH,OAAOA,EAAQ5g6B,MAAM9Q,EAAQlF,UACzC,CACA,CAEI,IAAIy26B,EAAY5B,MAChBL,IAAa+B,GAAW,SAAUh16B,GAE9Bk16B,EAAUl16B,GAAQm16B,EAAeR,EAAYK,EAAWh16B,EAChE,IAKI,IAHA,IAAIs16B,EAAYxC,IAAa4B,GACzB7tnB,EAAU,GAEPyunB,IAAczC,IAAkCyC,KAAe/B,IAAY1snB,EAASyunB,IAEvFrC,IAAaqC,GAAW,SAAUt16B,IAKzBk16B,EAAUl16B,IAASmz6B,IAAoBmC,EAAWt16B,GAAOsy6B,OAE1D4C,EAAUl16B,GAAQm16B,EAAeR,EAAYW,EAAWt16B,GAExE,IAIQ6mT,EAAQn/S,KAAK4t6B,GACbA,EAAYxC,IAAawC,GAE7B,OAAOJ,CACX,CAwOoBK,CAAcb,EAAY/w6B,EAAQqx6B,EAAWD,GAG7DN,EAAa9w6B,EAAQux6B,GAErB,IAAIxB,IAAoBpB,OAAwBwC,EAAY1C,KACxDsB,GAAmBt55B,IACnBs55B,IAAoBt55B,EAAQg45B,MAGhCoB,IAAmBkB,EAAYr46B,EAAWsH,EAAQqx6B,GAA+B,IAApBtB,EACjE,CAMAc,IAAa3C,KAA0Ba,IAASzz3B,EC1hBzC,IAAPu23B,IAAA,aACAC,IAAA,OACAC,IAAA,eACAC,IAAA,aACAC,IAAA,OACAC,IAAA,gBACAC,IAAA,SACAC,IAAA,qBACAC,IAAA,SACAC,IAAA,SACAC,IAAA,OACAC,IAAA,cACAC,IAAA,uBACAC,IAAA,0BACAC,IAAA,6BACAC,IAAA,0BACAC,IAAA,aACAC,IAAA,YACAC,IAAA,QACAC,IAAA,cACAC,IAAA,SACAC,IAAA,WACAC,IAAA,YACAC,IAAA,UACAC,IAAA,UACAC,IAAA,cACAC,IAAA,SACAC,IAAA,UACAC,IAAA,UACAC,IAAA,gBACAC,IAAA,YACAC,IAAA,YACAC,IAAA,UACAC,IAAA,YACAC,IAAA,YACAC,IAAA,QACAC,IAAA,aACAC,IAAA,SACAC,IAAA,WACAC,IAAA,QACAC,IAAA,UACAC,IAAA,wBACAC,IAAA,qBACAC,IAAA,cACAC,IAAA,OACAC,IAAA,OACAC,IAAA,UACAC,IAAA,YACAC,IAAA,aACAC,IAAA,SACAC,IAAA,SACAC,IAAA,WACAC,IAAA,UACAC,IAAA,SACAC,IAAA,aACAC,IAAA,UC3DAC,IAAA,GACAC,IAAA,WACAC,IAAA,OACAC,IAAA,gBACAC,IAAA,WACAC,IAAA,kBAEAC,IAAA,mBACAC,IAAA,WACAC,IAAA,aACAC,IAAA,kBACAC,IAAA,oBACAC,IAAA,YACAC,IAAA,iBACAC,IAAA,gBACAC,IAAA,aCbAC,IAAA,cACAC,IAAA,WACAC,IAAA,aACAC,IAAA,UAEAC,IAAA,SACAC,IAAA,OACAC,IAAA,WAKAtI,IAAA,YAKAuI,IAAA,cACAC,IAAA5J,IACA6J,IAAAjK,IAAAr34B,OAEAuh5B,KADAlK,IAAAp34B,KACAo34B,IAAA1w6B,MACA666B,IAAArh6B,OAAAg35B,KACAsK,IAAAD,IAAAN,KACAQ,IAAAF,IAAAV,KAGAa,KAFAH,IAAAT,KACAl96B,KAAAsz6B,KACA0J,MACAe,IAAA9u6B,MAAAgB,QACA+t6B,IAAAvK,IAAA6J,KACAW,IAAApK,IAAAyJ,KAEAY,IAAAD,IAAA5C,KAAA7H,KACA2K,IAAA,YACAC,IAAA,eACAC,IAAA,iBAKA9I,IAAAv36B,OAAA,eAKO,SAAP+36B,IAAAnv6B,GACA,GAAAA,EAAA,CAEA,GAAA2u6B,IACA,OAAAA,IAAA3u6B,GAGA,IAAAov6B,EAAApv6B,EAAAou6B,MAAApu6B,EAAA0s6B,MAAA1s6B,EAAA226B,KACA,GAAAvH,EACA,OAAAA,CAEA,CACA,WACA,CAOO,SAAPls1B,IAAA3pF,GACA,YAAAyB,IAAAzB,UAAAA,IAAAkz6B,GACA,CAIO,SAAP/omB,IAAAnqU,GACA,cAAAA,GAAA2pF,IAAA3pF,EACA,CACO,SAAPm+6B,IAAAn+6B,GACA,OAAAmqU,IAAAnqU,EACA,CACO,SAAPkP,IAAAD,EAAAlM,GACA,SAAAkM,IAAAyk6B,IAAAwH,KAAAjs6B,EAAAlM,GACA,CACO,SAAP2uD,IAAA1xD,GAEA,SAAAA,UAAAA,IAAAiz6B,IACA,CACO,SAAPr/2B,IAAA5zD,GAEA,SAAAA,UAAAA,IAAAgz6B,IACA,CAWO,SAAPoL,IAAAt76B,GACA,IAAA9C,EAAA8C,EAWA,OAVA9C,GAAAogF,IAAApgF,KAMAA,GADAA,GAHAA,EAAAA,EAAA866B,KAAAkD,KAAA,SAAAK,EAAA5hzB,GACA,OAAAA,EAAAt8G,aACA,KACA265B,KAAAmD,IAAA,MACAnD,KAAAoD,KAAA,SAAAG,EAAA9o6B,GACA,UAAAA,CACA,KAEAvV,CACA,CAOO,SAAPs+6B,IAAA736B,EAAA836B,GACA,GAAA936B,EACA,QAAA1D,KAAA0D,EACAit6B,IAAAwH,KAAAz06B,EAAA1D,IACAw76B,EAAArD,KAAAz06B,EAAA1D,EAAA0D,EAAA1D,GAIA,CAOO,SAAPy76B,IAAAx+6B,EAAAs2C,GACA,IAAArtB,GAAA,EAKA,OAJAjpB,GAAAs2C,KAAArtB,EAAAjpB,IAAAs2C,KAEArtB,EAAAy05B,IAAA196B,EAAA886B,KAAAxm4B,GAUO,SAAPt2C,EAAAs2C,GACA,IAAArtB,GAAA,EACAw15B,EAAAno4B,EAAAA,EAAAyi4B,KAAA,EACA2F,EAAA1+6B,EAAAA,EAAA+46B,KAAA,EACA,GAAA0F,GAAAC,GAAAA,GAAAD,KAAAx15B,EAAAjpB,IAAAs2C,GAAA,CAEA,IADA,IAAAhB,EAAAop4B,EAAA,EACA1I,EAAAyI,EAAA,EAAAzI,GAAA,EAAAA,IAAA,CACA,GAAAh26B,EAAAs1C,IAAAgB,EAAA0/3B,GACA,SAEA1g4B,GACA,CACArsB,GAAA,CACA,CACA,OAAAA,CACA,CAzBA015B,CAAA3+6B,EAAAs2C,IAEArtB,CACA,CA8DO,SAAP215B,IAAA5+6B,EAAAs2C,GACA,SAAAt2C,IAAAs2C,KACA,IAAAt2C,EAAAs66B,KAAAhk4B,EAGA,CAWO,IAAPxmC,IAAA8t6B,KACA,SAAA3u6B,GACA,SAAAA,GAAA,mBAAA4u6B,IAAA3C,KAAAjs6B,GACA,EAIO,SAAPixE,IAAAjxE,GACA,SAAAA,GAAA,mBAAA4u6B,IAAA3C,KAAAjs6B,GACA,CAMO,SAAPmxE,IAAApgF,GAEA,wBAAAA,CACA,CAMO,SAAP64C,IAAA74C,GAEA,wBAAAA,CACA,CAMO,SAAPgpF,IAAAhpF,GAEA,yBAAAA,CACA,CAcO,SAAP2xD,IAAA3xD,GACA,IAAAipB,GAAA,EACA,GAAAjpB,GAAA,kBAAAA,EAAA,CAEA,IAAAm4B,EAAAi94B,IAAAA,IAAAp16B,GAAA416B,IAAA516B,GACAm4B,GAMAA,EAAAil5B,MAAA1J,IAAAwH,KAAA/i5B,EAAAil5B,OACAjl5B,EAAAA,EAAAil5B,MAEAn05B,SAAAkP,IAAA664B,KAAA8K,IAAA5C,KAAA/i5B,KAAA4l5B,KAPA905B,GAAA,CASA,CACA,OAAAA,CACA,CAIO,SAAPsuF,IAAAj5G,GACA,GAAAA,EAEA,OAAAq/6B,IAAAr/6B,EAAAu+6B,OAMO,SAAPv+6B,GACA,GAAAA,GAAAA,EAAAqe,eAAA,CACA,IAAA6tE,EAAA,SAAAoJ,GACA,IAAA8tB,EAAAvlG,OAAAy3E,GAIA,OAHA,IAAA8tB,EAAAq3zB,OACAr3zB,EAAA,IAAAA,GAEAA,CACA,EACA,OAAApjH,EAAAqe,iBACA,IAAA6tE,EAAAlsF,EAAAqf,cAAA,GACA,IAAA6sE,EAAAlsF,EAAA4f,cACA,IAAAssE,EAAAlsF,EAAAsgB,eACA,IAAA4rE,EAAAlsF,EAAA8gB,iBACA,IAAAorE,EAAAlsF,EAAAghB,iBACA,IAAAnD,QAAA7d,EAAAgiB,qBAAA,KAAAwgG,QAAA,IAAA9xG,MAAA,KACA,GACA,CACA,CAxBA6v6B,CAAAvg7B,EAEA,CA+BO,SAAPwg7B,IAAAvz4B,EAAAgz4B,EAAAjh5B,GACA,IAAAywB,EAAAxiB,EAAAwt4B,KACA,IACA,QAAA9w3B,EAAA,EAAAA,EAAA8F,MACA9F,KAAA1c,KACA,IAAAgz4B,EAAArD,KAAA594B,GAAAiO,EAAAA,EAAA0c,GAAAA,EAAA1c,IAFA0c,KAOA,CACA,MAAAxpD,KACA,CAEA,CASO,SAAPsg7B,IAAAxz4B,EAAAiirB,EAAAltpB,GACA,GAAA/0B,EAAA,CAEA,GAAAA,EAAAyx4B,KACA,OAAAzx4B,EAAAyx4B,KAAAxvN,EAAAltpB,GAEA,IAAAvS,EAAAxiB,EAAAwt4B,KACAr36B,EAAA4+D,GAAA,EACA,IACA,QAAA012B,EAAAh06B,KAAAqpC,IAAA3pC,GAAA,EAAAA,EAAAqsD,EAAA/rD,KAAA8Y,IAAApZ,GAAA,GAAAs06B,EAAAjo3B,EAAAio3B,IACA,GAAAA,KAAAzq4B,GAAAA,EAAAyq4B,KAAAxoN,EACA,OAAAwoN,CAGA,CACA,MAAAv36B,KACA,CAEA,CACA,QACA,CASO,SAAPug7B,IAAAzz4B,EAAAgz4B,EAAAjh5B,GACA,IAAAg/Y,EACA,GAAA/wY,EAAA,CAEA,GAAAA,EAAA,IACA,OAAAA,EAAA,IAAAgz4B,EAAAjh5B,GAEA,IAAAywB,EAAAxiB,EAAAwt4B,KACAr76B,EAAA4/B,GAAAiO,EACA+wY,EAAA,IAAAxta,MAAAi/C,GACA,IACA,QAAAio3B,EAAA,EAAAA,EAAAjo3B,EAAAio3B,IACAA,KAAAzq4B,IACA+wY,EAAA05f,GAAAuI,EAAArD,KAAAx96B,EAAA6tC,EAAAyq4B,GAAAzq4B,GAGA,CACA,MAAA9sC,KACA,CAEA,CACA,OAAA69a,CACA,CASO,SAAP2igB,IAAA1z4B,EAAAgz4B,EAAAn/xB,GACA,IAAAp/I,EACA,GAAAurC,EAAA,CAEA,GAAAA,EAAA0x4B,KACA,OAAA1x4B,EAAA0x4B,KAAAsB,EAAAn/xB,GAEA,IAAArxF,EAAAxiB,EAAAwt4B,KACA/C,EAAA,EAEA,GAAAz06B,UAAAw36B,MAAA,EACA/46B,EAAAuB,UAAA,OAEA,CACA,KAAAy06B,EAAAjo3B,KAAAio3B,KAAAzq4B,IACAyq4B,IAEAh26B,EAAAurC,EAAAyq4B,IACA,CACA,KAAAA,EAAAjo3B,GACAio3B,KAAAzq4B,IACAvrC,EAAAu+6B,EAAAv+6B,EAAAurC,EAAAyq4B,GAAAA,EAAAzq4B,IAEAyq4B,GAEA,CACA,OAAAh26B,CACA,CAIO,SAAPk/6B,IAAAnz4B,GAKA,OAJAA,IAEAA,EAAA0x4B,KAAA1x4B,EAAAmx4B,KAAAnx4B,EAAAmx4B,OAAAnx4B,EAAA+u4B,KAAA/u4B,EAAA+u4B,KAAA,mBAAAgB,KAAA/v4B,GAEAA,CACA,CACA,IAAAoz4B,KAAA,CAAAjq6B,SAAA,MAAAsY,qBAAA,YACA4x5B,IAAA,CACA,WACA,iBACA,UACA,iBACA,gBACA,uBACA,eAQO,SAAPC,IAAApw6B,GACA,IAAAqw6B,SAAArw6B,EAKA,GAJAqw6B,IAAAtM,KAAAsM,IAAArM,KAAA,OAAAhk6B,GACA+9B,IAAA,iCAGAmy4B,KAAA5B,IACA,OAAAA,IAAAtu6B,GAEA,IAAAga,EAAA,GACA,QAAAlmB,KAAAkM,EACAA,GAAAyk6B,IAAAwH,KAAAjs6B,EAAAlM,IACAkmB,EAAAyv5B,KAAA316B,GAGA,GAAAo86B,IAEA,IADA,IAAAI,EAAAH,IAAArG,KACA/C,EAAA,EAAAA,EAAAuJ,EAAAvJ,IACA/m6B,GAAAyk6B,IAAAwH,KAAAjs6B,EAAAmw6B,IAAApJ,KACA/s5B,EAAAyv5B,KAAA0G,IAAApJ,IAIA,OAAA/s5B,CACA,CAWO,SAAPu25B,IAAA/46B,EAAA1D,EAAA6kR,EAAA63pB,GACA,GAAApC,IACA,IACA,IAAAht5B,EAAA,CACA9Z,YAAA,EACAE,cAAA,GASA,OAPAmxQ,IACAv3P,EAAAvb,IAAA8yQ,GAEA63pB,IACApv5B,EAAAvY,IAAA2n6B,GAEApC,IAAA526B,EAAA1D,EAAAstB,IACA,CACA,CACA,MAAA5xB,KAEA,CAGA,QACA,CACA,SAAAih7B,IAAA1/6B,GACA,OAAAA,CACA,CACO,SAAP2/6B,IAAA1w6B,GAQA,OAPAqu6B,KACAgB,IAAArv6B,GAAA,SAAAnM,EAAA9C,IACA8P,IAAA9P,IAAA0xD,IAAA1xD,KACAs96B,IAAAt96B,EAEA,IAEA4/6B,IAAA3w6B,EACA,CACO,IAAP2w6B,IAAAtC,KAAAoC,IAMO,SAAPG,MACA,IAAAC,EAAAjg7B,KACA,OAAAig7B,EAAAv82B,IAAAu82B,EAAAv82B,OAAA,IAAAu82B,GAAAhg7B,SACA,CAIO,SAAPig7B,IAAArn6B,GACA,OAAAwnE,IAAAxnE,GACAA,EAAA6/5B,KAEAuD,GACA,CAWO,SAAPh9xB,IAAAr4I,EAAA+2G,EAAAx9G,EAAAgg7B,EAAAC,GACA,IAAAC,EAAAlg7B,EAQA,OAPAyG,KACAy56B,EAAAz56B,EAAA+2G,MACAx9G,GAAAig7B,IAAAA,EAAAC,IAAAF,IAAAA,EAAAhg7B,KACAkg7B,EAAAlg7B,EACAyG,EAAA+2G,GAAA0i0B,IAGAA,CACA,CAOO,SAAPC,IAAA156B,EAAA+2G,EAAA4i0B,GACA,IAAAF,EAaA,OAZAz56B,IACAy56B,EAAAz56B,EAAA+2G,KACA2sN,IAAA+1mB,KAEAA,EAAAv21B,IAAAy21B,GAAA,GAAAA,EACA356B,EAAA+2G,GAAA0i0B,GAKAA,EAAAv21B,IAAAy21B,GAAA,GAAAA,EAEAF,CACA,CAMO,SAAPG,IAAAH,EAAAtp6B,GACA,OAAAuzT,IAAA+1mB,GAAAtp6B,EAAAsp6B,CACA,CAIO,SAAPI,IAAAtg7B,GACA,QAAAA,CACA,CACO,SAAPurU,IAAAj2T,GACA,UAAA6V,MAAA7V,EACA,CACA,SAAAir6B,IAAAvr6B,EAAA0hE,GACA,IAAA8p2B,EAAA,KACA19wB,EAAA,KAOA,OANAlvG,IAAA5+C,GACAwr6B,EAAAxr6B,EAGA8tJ,EAAA9tJ,EAEA,WAEA,IAAAyr6B,EAAAl/6B,UAIA,GAHAi/6B,IACA19wB,EAAA09wB,KAEA19wB,EACA,OAAAA,EAAApsF,GAAAmk2B,KAAA/3wB,EAAA29wB,EAEA,CACA,CA6DO,SAAPC,IAAAj66B,EAAA3D,EAAAkS,EAAAmj6B,EAAAwI,GACAl66B,GAAA3D,GAAAkS,KACA,IAAA2r6B,GAAAh31B,IAAAljF,EAAA3D,OACA2D,EAAA3D,GAAAy96B,IAAAvr6B,EAAAmj6B,GAGA,CASO,SAAPyI,IAAAn66B,EAAAuO,EAAA6r6B,EAAAF,GAQA,OAPAl66B,GAAAuO,GAAA08C,IAAAjrD,IAAAqJ,IAAA+w6B,IACA/B,IAAA+B,GAAA,SAAAC,GACA1g2B,IAAA0g2B,IACAJ,IAAAj66B,EAAAq66B,EAAA9r6B,EAAA8r6B,EAAAH,EAEA,IAEAl66B,CACA,CA0BO,SAAPs66B,IAAAC,GAMA,OAHAA,GAAAzN,MACAyN,EAAA3N,IAAAE,IAAA,GAAAyN,KAEAA,CACA,CACO,SAAPC,IAAAl2mB,EAAAk8b,EAAAi6K,EAAAC,EAAAC,EAAAC,GAEA,IAAAC,EAAA//6B,UACAgg7B,EAAAD,EAAA,OACAto1B,EAAAso1B,EAAAvI,KACAj1uB,GAAA,EACA77I,EAAA,EAYA,IAVA+wC,EAAA,GAAAhQ,IAAAu41B,KACAz9uB,EAAAy9uB,EACAA,EAAAD,EAAAr53B,IAAA,GACAA,KAGAyJ,IAAA6v3B,KACAA,EAAA,IAGAt53B,EAAA+wC,EAAA/wC,IAAA,CACA,IAAA2O,EAAA0q3B,EAAAr53B,GACAu53B,EAAA1x6B,IAAA8mD,GACA6q3B,EAAA/v3B,IAAAkF,GACA,QAAA7zD,KAAA6zD,EAAA,CAEA,GADA4q3B,GAAAz+6B,KAAA6zD,GAAA6q3B,GAAA/N,IAAAwH,KAAAtk3B,EAAA7zD,GACA,CAGA,IAAAgV,EAAA6+C,EAAA7zD,GACA2+6B,OAAA,EAEA,GAAA59uB,GAAA/rL,KAAA2p6B,EAAA5x6B,IAAAiI,KAAA45C,IAAA55C,IAAA,CAEA,IAAApY,EAAA4h7B,EAAAx+6B,GACA2+6B,EACA5x6B,IAAAnQ,KAEAA,EAAA,IAGAgyD,IAAAhyD,KAEAA,EAAA,IAGAoY,EAAAkp6B,IAAAn9uB,EAAAnkM,EAAAoY,EACA,MAEAtW,IAAAsW,IACAwp6B,EAAAx+6B,GAAAgV,EAtBA,CAwBA,CACA,CACA,OAAAwp6B,CACA,CC9xBA,IAAAI,IAAA,SACAC,IAAA,WACAC,IAAA,eACAC,IAAA,YAEAC,IAAA,WACAC,IAAA,UACAC,IAAA,cACAC,IAAA,OACAC,IAAA,SACAC,IAAA,WAEAC,IAAA,OACAC,IAAA,WACAC,IAAA,iBACAC,IAAA,KACAC,IAAA,KACAC,KAAA,EACAC,IAAA,KACAC,IAAA,KACA,SAAAC,IAAAxnvB,EAAAtgL,GACA,IAAA+n6B,GAAA,EACA,GAAAznvB,EAAA,CACA,IAEA,KADAynvB,EAAA/n6B,KAAAsgL,GACA,CACA,IAAAljK,EAAAkjK,EAAA83uB,KACAh74B,IACA2q5B,EAAA/n6B,KAAAod,EAEA,CACA,CACA,MAAA15B,KACA,CAEA,IAAAqk7B,EACA,IAEAA,GAAAn51B,KADA,IAAA0xG,GACAtgL,GACA,CACA,MAAAtc,KACA,CAGA,CACA,OAAAqk7B,CACA,CAYO,SAAPC,IAAAjg7B,GACA,IAAAkg7B,EAAAlj5B,MACA,OAAAkj5B,GAAAA,EAAAlg7B,GACAkg7B,EAAAlg7B,GAGAA,IAAA6+6B,KAAAsB,MAEA7z5B,OAEA,IACA,CAQO,SAAP6z5B,MACA,OAAAt84B,eAAAvX,SAAA6j5B,KAAA7j5B,OACA,CAMO,SAAP+nQ,MACA,OAAA8rpB,MACA7z5B,OAGA2z5B,IAAApB,IACA,CAQO,SAAPuB,MACA,OAAAv84B,eAAArX,WAAA2j5B,KAAA3j5B,SACA,CAMO,SAAP+ze,MACA,OAAA6/a,MACA5z5B,SAEAyz5B,IAAAnB,IACA,CAQO,SAAPuB,MACA,OAAAx84B,eAAArQ,YAAA284B,KAAA384B,UACA,CAMO,SAAP8s5B,MACA,OAAAD,MACA7s5B,UAEAys5B,IAAAjB,IACA,CAQO,SAAPuB,MACA,OAAA184B,eAAAquM,UAAAi+rB,KAAAj+rB,QACA,CAiBO,SAAPoymB,IAAAk8F,GACA,GAAAA,GAAAZ,IAAA,CACA,IAAAa,EAAAR,IAAA,kBACA,GAAAQ,EACA,OAAAA,CAEA,CACA,cAAAxt5B,WAAAk94B,KAAAl94B,SACAA,SAEAgt5B,IAAAhB,IACA,CAeO,SAAPyB,MACA,OAAAT,IAAAd,IACA,CAQO,SAAPwB,MACA,OAAA984B,eAAAkI,OAAAok4B,KAAApk4B,MAAA,OAAAk04B,IAAAb,KACA,CAMO,SAAPwB,MACA,OAAAD,MACA504B,MAAAk04B,IAAAb,KAEA,IACA,CA+BO,SAAP7wpB,MACA,IAAAy/P,EAAAsyZ,MACA,GAAAtyZ,IAAAA,EAAA0pZ,OAAAiI,KAAA,OAAAD,KAAA,CAGA,IAAAlssB,IADAmssB,IAAA3xZ,EAAA0pZ,OACAsB,KAAAb,OACAuH,IAAA5D,IAAAtosB,EAAA+rsB,MAAAzD,IAAAtosB,EAAAgssB,IACA,CACA,OAAAE,GACA,CAIO,SAAPmB,IAAAC,GAEA,QADA,IAAAA,IAAAA,EAAA,OACAA,EAAA,CACA,IAAAC,EAAAT,OAAA,GACAQ,EAAAC,GAAAA,EAAArJ,MAAAsB,KAAAb,OAAAa,GACA,CACA,IAAAttyB,GAAAo1yB,GAAA9H,KAAAb,OAEA,GAAA2D,IAAApwyB,EAAA6zyB,KAAA,CACA,IAAAp74B,EAAAo8d,OAAA,GACA,OAAArhgB,KAAAqpC,IAAA1gB,SAAA6jH,EAAAisyB,KAAA4H,KAAA,IAAAp74B,EAAA464B,MAAA,EACA,CACA,GAAAjD,IAAApwyB,EAAA8zyB,KAAA,CACA,IAAAwB,EAAAn55B,SAAA6jH,EAAAisyB,KAAA6H,KAAA,IACA,GAAAwB,EACA,OAAAA,EAAA,CAEA,CACA,WACA,CAIO,SAAPC,IAAArr6B,GACA,IAAAsr6B,EAAAnm7B,OAAAs16B,KAAAj+5B,SAAAgm6B,KAAAxi6B,GACAur6B,EAAAnI,IAOA,MANA,mBAAAkI,EACAC,EAAA,aAAAvr6B,EAAA0S,MAAA,gBAAA1S,EAAApD,QAAA,aAAAoD,EAAA6/5B,KAAA,IAEAkL,QACAQ,EAAAP,MAAA9tzB,UAAAl9G,IAEAsr6B,EAAAC,CACA,CAaO,SAAPC,MAIA,OAHA,OAAAtB,MACAA,IAAAO,OAAAx84B,QAAAy84B,MAAAe,aAEAvB,GACA,CAMO,SAAPrrG,IAAA6sG,GACA,IAAAtj5B,GAAA,EACA,IACAA,IAAAii5B,IAAA,SACA,IAAAzkwB,EAAAykwB,IAAA,WACAji5B,GAAAsj5B,GAAA9lwB,IACAx9I,EAAA+h5B,IAAAvkwB,EAAA,aAEA,CACA,MAAA7/K,KACA,CAEA,OAAAqiC,CACA,CACO,SAAPuj5B,MAOA,OANA,OAAA1B,MACAA,WAAA2B,iBAAApR,MACAqR,QACA5B,IAAAA,MAAAE,IAAAE,IAAAR,KAAA,oBAGAI,GACA,CAKO,SAAP4B,MACA,IAAAzj5B,GAAA,EACA,IAEAA,IADAii5B,IAAAR,IAEA,CACA,MAAA9j7B,KACA,CAEA,OAAAqiC,CACA,CCpWA,IAEA0j5B,IAFAC,IAAA,iEACAC,IAAA,KAEA,SAAAC,IAAA7h7B,EAAA41F,GACA,kBACA,IAAArhF,EAAA9V,UACAqj7B,EAAAC,IAAAns1B,GACA,GAAAks1B,EAAA,CACA,IAAAx2xB,EAAAw2xB,EAAAx2xB,SACAA,GAAAA,EAAAtrJ,IACAsrJ,EAAAtrJ,GAAA+36B,KAAAzsxB,EAAA/2I,EAEA,CACA,CACA,CASO,SAAPwt6B,IAAAns1B,GACA,IAAAukF,EAAAynwB,IAIA,OAHAznwB,IAAA,IAAAvkF,EAAAos1B,gBACA7nwB,EAAAynwB,KAXA,WAEA,IAAAj+6B,EAAAs86B,IAAA,aAIA,OAHAt86B,IACAi+6B,IAAAj+6B,EAAA,qBAEAi+6B,GACA,CAIAK,IAEA9nwB,EAAAA,EAAA,iBACA,CACO,SAAP+nwB,IAAAts1B,GACA,IAAA8r1B,IAAA,CACAA,IAAA,GACA,QAAAxO,EAAA,EAAAA,EAAAyO,IAAA1L,KAAA/C,IACAwO,IAAAC,IAAAzO,IAAA2O,IAAAF,IAAAzO,GAAAt90B,EAEA,CACA,OAAA8r1B,GACA,CCrBA,SAAAS,IAAA5m5B,GACA,OAAAA,EACA,IAAAA,EAAAy84B,KAAA,MAAAgB,KAAA,IAEAA,GACA,CACA,SAAAoJ,IAAA3q6B,EAAAjF,GACA,IAAA6v6B,SFiKA3v6B,UAAA095B,IACA195B,QAEAut6B,IAAAf,KEnKA,GAAAmD,EAAA,CACA,IAAAC,EAAA,MACAD,EAAA5q6B,KACA6q6B,EAAA7q6B,GAEAq5C,IAAAux3B,EAAAC,KACAD,EAAAC,GAAA9v6B,EAEA,CACA,CACA,IAAA+v6B,IAAA,WACA,SAAAA,EAAAC,EAAA3s1B,EAAA4s1B,EAAAz05B,QACA,IAAAy05B,IAAAA,GAAA,GACA,IAAAC,EAAA,KACAA,EAAA5L,KAAA0L,EACAE,EAAA3L,MACA0L,EA7BA,OAJA,mBAkCAD,EACA,IAAAG,EAAA3J,IACA2H,QACAgC,EAAA/B,MAAA9tzB,UAAA9kG,IAEA,IAAA405B,GAAA/s1B,EAAA,YAAAss1B,IAAAts1B,GAAAmj1B,MACAhr5B,EAAA,UAAAm05B,IAAAQ,GAAA3J,KACA0J,EAAA3L,MAAA6L,CACA,CAEA,OADAL,EAAAvhmB,SAAA,cACAuhmB,CACA,CAlBA,GAoBO,SAAPM,IAAAC,EAAAlt1B,GACA,OAAAkt1B,GAAA,IAAA9M,MAAA,IAAA+M,IAAAnt1B,EACA,CACA,IAAAmt1B,IAAA,WACA,SAAAA,EAAAnt1B,GACA,KAAAot1B,WAAA,mBAIA,KAAAh1yB,MAAA,GAIA,IAKAi1yB,EACAC,EACAC,EACAC,EARAC,EAAA,EAIAC,EAAA,GAKA9O,IAAAuO,EAAA,eAAAL,GAuEA,SAAAa,EAAAj8D,EAAA902B,GACA,KAyCA6w6B,GAAAF,GAzCA,CAIA,IAAA73vB,GAAA,EACAk4vB,EA1IA,QA0IAhx6B,EAAAsk6B,KAQA,GANAwM,EAAAE,GACAl4vB,GAAA,EAGAg4vB,EAAAE,IAAA,EAEAl4vB,IAEAg8rB,GAAA47D,IACAR,EAAA10yB,MAAA4nyB,KAAApj6B,GACA6w6B,IACAI,EAAA,IAAAn8D,EAAA,eAAA902B,IAGA6w6B,IAAAF,GAAA,CACA,IAAAO,EAAA,oEACAC,EAAA,IAAApB,IAAA,GAAAmB,GAAA,GACAhB,EAAA10yB,MAAA4nyB,KAAA+N,GACA,IAAAr8D,EACAo7D,EAAA9I,KAAA8J,GAGAhB,EAAA7I,KAAA6J,EAEA,CA7BA,CA+BA,CAUA,SAAAD,EAAAzj7B,EAAAwlC,GACA,IAAAs84B,EAAAC,IAAAns1B,GAAA,IACAks1B,GAAAA,EAAA1K,MACA0K,EAAA1K,KAAAp36B,EAAAwlC,EAEA,EAdA,SAAAowD,GACAqt1B,EAAA1F,IAAA3n1B,EAAAgu1B,oBAAA,GACAV,EAAA3F,IAAA3n1B,EAAAiu1B,sBAAA,GACAV,EAAA5F,IAAA3n1B,EAAAku1B,gBAAA,IACAV,EAAA7F,IAAA3n1B,EAAAmu1B,YAAAxG,IAAA3n1B,EAAAqi1B,MAAA,GACA,CA9GA+L,CAAApu1B,GAAA,IACA8s1B,EAAAuB,oBAAA,kBAAAhB,CAAA,EACAP,EAAAwB,sBAAA,kBAAAhB,CAAA,EACAR,EAAAyB,wBAAA,kBAAAhB,CAAA,EACAT,EAAAzK,KAAA,kBAAAmL,CAAA,EAMAV,EAAA0B,cAAA,SAAA98D,EAAAk7D,EAAA3s1B,EAAA7nE,EAAAy05B,QACA,IAAAA,IAAAA,GAAA,GACA,IAAAjw6B,EAAA,IAAA+v6B,IAAAC,EAAA3s1B,EAAA4s1B,EAAAz05B,GACA,GAAAo15B,EACA,MAAAnC,IAAAzu6B,GAIA,IAAA8v6B,EAAA,IAAAh7D,EAAAsyD,IAAAC,IACA,GAAAhz1B,IAAAr0E,EAAAuk6B,MAkBA0M,EAAA,aAAAn8D,EAAA,sBAAA902B,OAlBA,CACA,GAAAiw6B,EAAA,CAEA,IAAAe,GAAAhx6B,EAAAsk6B,MACAwM,EAAAE,IAAAP,GAAA37D,IACAo7D,EAAAJ,GAAA9v6B,EAAAuk6B,MACAuM,EAAAE,IAAA,EAEA,MAGAP,GAAA37D,GACAo7D,EAAAJ,GAAA9v6B,EAAAuk6B,MAGAwM,EAAAj8D,EAAA902B,EACA,CAKA,EAKAkw6B,EAAA7I,KAAA,SAAArn6B,GACA4v6B,IAAA,OAAA5v6B,GACAix6B,EAAA,UAAAjx6B,EACA,EAKAkw6B,EAAA9I,KAAA,SAAApn6B,GACA4v6B,IAAA,QAAA5v6B,GACAix6B,EAAA,QAAAjx6B,EACA,EAIAkw6B,EAAA2B,0BAAA,WACAhB,EAAA,EACAC,EAAA,EACA,EAMAZ,EAAAxK,KAAAqL,CAmDA,GACA,qBAuEA,CApNA,GAsNA,SAAAe,IAAApzvB,GACA,OAAAA,GAAA,IAAA6xvB,GACA,CAUO,SAAPwB,IAAArzvB,EAAAo2rB,EAAAk7D,EAAA3s1B,EAAA7nE,EAAAy05B,QACA,IAAAA,IAAAA,GAAA,GACA6B,IAAApzvB,GAAAkzvB,cAAA98D,EAAAk7D,EAAA3s1B,EAAA7nE,EAAAy05B,EACA,CAMO,SAAP+B,IAAAtzvB,EAAA1+K,GACA8x6B,IAAApzvB,GAAA2ovB,KAAArn6B,EACA,CCtSA,IAAAiy6B,IAAA,cACAC,IAAA,cACAC,IAAA,SACAC,IAAA,UACAC,IAAA,UACAC,IAAA,sBACAC,IAAA,sBACAC,IAAA,SACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA7kb,MACA8kb,IAAA,GACAC,IAAA,GAUO,SAAPC,IAAA3v1B,EAAAs7F,GAEA,IAAAo4I,EAAAk8mB,IAAAR,MAAAM,IAAAN,KAOA,OANA17mB,IAGAA,EAAAk8mB,IAAAR,KAAAQ,IAAA5v1B,EAAAs7F,GACAo0vB,IAAAN,KAAA17mB,GAEAA,CACA,CACA,SAAAm8mB,IAAAC,GACA,OAAAA,GACAA,EAAAx8c,WAGA,CAmBA,SAAAy8c,IAAAC,EAAA5l7B,GACA,SAAAA,GAAA4l7B,GAAA546B,IAAA446B,EAAAC,kBACA,IAAAD,EAAAC,cAAArO,KAAAx36B,EAGA,CAgBO,SAAP8l7B,IAAAhD,EAAAlt1B,GACA,IAAA8v1B,EACA,GAAA5C,EAEA4C,EAAA5C,EAAAiD,oBAEA,GAAAnw1B,EAAA,CACA,IAAAow1B,EAAApw1B,EAAA2h1B,KAEAmO,EADAM,EAAAhB,KACAgB,EAAAhB,KAGAQ,IAAA5v1B,EAEA,CAKA,OAJA8v1B,IAEAA,EAAAH,IAAA3v1B,GAAAkt1B,GAAA,IAAA9M,OAEA0P,CACA,CACO,SAAPF,IAAAS,EAAA/0vB,GACA,IAAAtgJ,EACAs14B,EA9DA,SAAAD,GACA,IAAAL,EAAAK,EAAA1O,KAAA0O,EAAA1O,MAAA,GAIA,GAFAv7xB,IAAA4pyB,EAAA,SAAAK,EAAAE,aAAA9K,IAAAh0mB,KACArrL,IAAA4pyB,EAAA,OAAAK,EAAAG,YAAA,SAAA/+mB,KACAA,IAAAu+mB,EAAAf,MAAA,CAEA,IAAAwB,OAAA,EACAx/1B,IAAAo/1B,EAAAnB,QACAuB,GAAAJ,EAAAnB,MAEAj+1B,IAAAo/1B,EAAAlB,QACAsB,GAAAJ,EAAAlB,MAEAa,EAAAf,KAAAwB,CACA,CACA,OAAAT,CACA,CA6CAU,CAAAL,GAAAX,KACAiB,EAAAL,EAAA992B,MAAA,IACAo+2B,EAAAN,EAAAx2wB,OAEA+2wB,GAAA,IAAAP,EAAArB,KACAa,IAAA904B,EAAA,CACAs4b,UAAA,WACA,IAAA11M,EAAAizpB,GAAAC,IAAAx1vB,GAGAy1vB,EAAArB,IAAAN,KAMA,OALAxxpB,GAAAmzpB,GAAAjB,IAAAiB,IAGAnzpB,EAAAiypB,IAAAkB,IAEAnzpB,CACA,IAEAokpB,KAAA,SAAA166B,GAEAup7B,GAAA,IAAAvp7B,CACA,EACA0zC,EAAA57B,IAAA,SAAAhV,EAAA9C,EAAA0p7B,EAAAl3wB,EAAAtnG,GACA,IAAAjiD,GAAA,EACA,GAAAs/5B,IAAAC,KA/DA,SAAAE,EAAA5l7B,GACA,SAAAA,GAAA4l7B,GAAA546B,IAAA446B,EAAAiB,kBACA,IAAAjB,EAAAiB,eAAArP,KAAAx36B,KAIA2l7B,IAAAC,EAAA5l7B,EACA,CAwDA8m7B,CAAAZ,EAAAlm7B,GAAA,CACA,IAAA6jB,EAAA,GACAu55B,EAAAhB,IAAAl/6B,GAAA876B,KACA7z3B,EAAAi43B,EAAA5F,KAAA,KAOA,IANA,IAAAry3B,IACAi43B,EAAAhB,IAAAl/6B,EAAAu66B,KAAA,EAAAty3B,IACAthC,EAAAkj6B,IAAA7p7B,EAAAu66B,KAAAty3B,EAAA,KAGA62F,IAAAn4H,EAAA,SAAA6rJ,GAAA82wB,EAAAhJ,IAAA321B,MACAwgP,IAAAu/mB,GAAA,CACA,IAAAI,EAAAz4pB,MACA,GAAA1nM,IAAAhjE,EAAA+g6B,MAAA,CACA,IAEAqC,EAFAlK,MAEA,IAAA6J,EAEA,GAAAK,EAAA,GACA,IAAAC,EAAA,IAAAnq7B,KACAmq7B,EAAAz20B,QAAAw20B,GACAjryB,IAAAn4H,EAAA+g6B,IAAAuC,IAAAD,EAAAF,EAAAvC,IAAAC,MAAAyC,IAAAD,EAAAF,EAAAvC,IAAAC,MAAA1L,IAAAwE,IACA,CACA,CACAwJ,GAEAhryB,IAAAn4H,EAAA,UAAAm15B,IAAA4N,EAAA,KAAA//1B,IAEA,CACA,IAAAw1rB,EAAAioE,MACAjoE,GAAA,WAAAA,EAAArnpB,WACAgnB,IAAAn4H,EAAA,mBAAAgjE,KAEA,OAAAq+1B,MACAA,KAAAkC,KAAA9G,OAAA,IAAA5I,OAEAwN,KACAlpyB,IAAAn4H,EAAA,uBAAAgjE,MAGAm1D,IAAAn4H,EAAA,OAAAukD,GAAAm+2B,EAAA,KAAA1/1B,MACAq/1B,EAAAmB,WAAAC,KACAtn7B,EAAAun7B,IAAAnK,EAAAv55B,IACAsC,GAAA,CACA,CACA,OAAAA,CACA,EACAyqB,EAAA5+B,IAAA,SAAAhS,GACA,IAAA9C,EAAA876B,IAIA,OAHAyM,IAAAC,KAAAC,IAAAO,EAAAlm7B,KACA9C,GAAAgp7B,EAAAsB,WAAAC,KAAAzn7B,IAEA9C,CACA,EACA0zC,EAAA824B,IAAA,SAAA1n7B,EAAAooE,GACA,IAAAjiD,GAAA,EAKA,OAJAs/5B,IAAAC,KAEAv/5B,EAAAu/5B,EAAAiC,MAAA3n7B,EAAAooE,IAEAjiD,CACA,EACAyqB,EAAA+24B,MAAA,SAAA3n7B,EAAAooE,GACA,IAAAx3B,EACAzqB,GAAA,EACA,GAAAug6B,IAAAx1vB,GAAA,CAEA,IAAArtK,IAAA+sB,EAAA,IACA,KAAAw3B,GAAA,IACAx3B,EAAAg04B,KAAA,gCACAh04B,GACA29O,QAEA1qQ,EAAA,iBAEAqi6B,EAAA0B,WAAAN,KACAtn7B,EAAAun7B,IAAAvO,IAAAn15B,IACAsC,GAAA,CACA,CACA,OAAAA,CACA,EACAyqB,GAGA,OADA804B,EAAAV,KAAAU,EACAA,CACA,CAIO,SAAPgB,IAAAx1vB,GACA,UAAA+zvB,IAAA,CACAA,KAAA,EACA,IAEAA,SAAAtm7B,KADAym7B,KAAA,IACAT,IACA,CACA,MAAAhp7B,KACA4o7B,IAAArzvB,EAAA,wCAAA+rvB,IAAAth7B,KAAA,CAAA0kU,UAAA4gnB,IAAAtl7B,MACA,CACA,CACA,OAAAsp7B,GACA,CACA,SAAA8B,IAAA3J,GACA,IAAAv55B,EAAA,GACAu55B,GAAAA,EAAAnH,MAEA+F,IADAI,IAAAgB,GAAAzF,KAAA,MACA,SAAAkQ,GAEA,GADAA,EAAAzL,IAAAyL,GAAA7O,KACA,CACA,IAAA7z3B,EAAA0i4B,EAAArQ,KAAA,MACA,IAAAry3B,EACAthC,EAAAgk6B,GAAA,KAGAhk6B,EAAAu45B,IAAAyL,EAAApQ,KAAA,EAAAty3B,KAAAi33B,IAAAyL,EAAApQ,KAAAty3B,EAAA,GAEA,CACA,IAEA,OAAAthC,CACA,CACA,SAAAsj6B,IAAAW,EAAArw6B,GACA,OAAAq5C,IAAAg33B,EAAArw6B,IACAqw6B,EAAArw6B,KAEA,IACA,CACA,SAAA8v6B,IAAArq7B,EAAA2mB,GACA,IAAAgnN,EAAA3tO,GAAA876B,IAIA,OAHAwC,IAAA335B,GAAA,SAAA7jB,EAAAo96B,GACAvysB,GAAA,KAAA7qO,GAAAqnU,IAAA+1mB,GAAApE,IAAA,IAAAoE,EACA,IACAvysB,CACA,CACA,SAAA48sB,IAAAzn7B,GACA,IAAA6qO,EAAAmusB,IACA,GAAAoM,IAAA,CACA,IAAA2C,EAAA3C,IAAAT,MAAA3L,IACAmM,MAAA4C,IACA1C,IAAA0B,IAAAgB,GACA5C,IAAA4C,GAEAl9sB,EAAAuxsB,IAAAiJ,IAAArl7B,IAAAg56B,IACA,CACA,OAAAnusB,CACA,CACA,SAAAy8sB,IAAAtn7B,EAAA6qO,GACAu6sB,MACAA,IAAAT,KAAA3k7B,EAAA,IAAA6qO,EAEA,CACO,SAAPu8sB,IAAA5zsB,GACA,QAAAl2J,IAAAk2J,QAQAsosB,IAAAtosB,EAAA,sBAAAsosB,IAAAtosB,EAAA,yBAUAsosB,IAAAtosB,EAAA,oCAAAsosB,IAAAtosB,EAAA,aAAAsosB,IAAAtosB,EAAA,gBAUAsosB,IAAAtosB,EAAA,qCAAAkosB,IAAAlosB,EAAA,kDAMAsosB,IAAAtosB,EAAA,cAAAsosB,IAAAtosB,EAAA,kBAKAsosB,IAAAtosB,EAAA,iBAAAsosB,IAAAtosB,EAAA,eAMAsosB,IAAAtosB,EAAA,kBAAAsosB,IAAAtosB,EAAA,qBAIA,CCtUA,IAAAw0sB,IAAA,MACAC,IAAA,mBACAC,IAAA,qBACAC,IAAA,KACAC,IAAA,WACA,SAAAA,EAAApo7B,EAAAqo7B,EAAAC,GACA,IAQAC,EARA7F,EAAA,KACA8F,GAAA,GACA9F,EAAAlx4B,MAAAur4B,MACA2F,EAAAjN,KAAAz16B,EACA0i7B,EAAA1L,KAAAsR,EACA5F,EAAAlK,KAAA,qBACA1n3B,IAAAu33B,MAGAG,EAAA9L,IAAAgG,EAAA,sBAOA,OALA6F,GAAAz33B,IAAAu33B,KACAE,EAAAF,IAEAA,EAAA,MAEAE,CACA,KAEA7F,EAAAjK,KAAA,SAAA7w6B,GACA,OAAAA,EAEAA,IAAAwg7B,EAAAH,MAAArg7B,IAAAwg7B,EAAAF,KACAxF,EAAA966B,IAEA866B,EAAAsF,MAAA,IAAApg7B,GAEA,IACA,EACA866B,EAAAhK,KAAA,SAAA9w6B,EAAA1K,GACA,GAAA0K,EAEA,GAAAA,IAAAwg7B,EAAAH,KAEAvF,EAAA966B,KACA866B,EAAAlK,KAAA,sBAEAkK,EAAA966B,GAAA1K,OAEA,GAAA0K,IAAAwg7B,EAAAF,KACAxF,EAAA966B,GAAA1K,MAEA,EACAwl7B,EAAAsF,KAAAtF,EAAAsF,MAAA,IACApg7B,GAAA1K,CACA,CAEA,EACAwl7B,EAAA/J,KAAA,WACA,IAAA8P,EAAA,EACAC,EAAAhG,EAAAjK,KAAA2P,EAAAF,MACA,GAAAl76B,IAAA076B,GACA,QAAAxV,EAAA,EAAAA,EAAAwV,EAAAzS,KAAA/C,IAAA,CACA,IAAAyV,EAAAD,EAAAxV,GACAyV,IACAF,GAAAE,EAAAzS,KAEA,CAEAwM,EAAAxM,KAAA6G,MAAA2F,EAAAlx4B,MACAkx4B,EAAAkG,OAAAlG,EAAAxM,KAAAuS,EACA/F,EAAA/J,KAAA,cACA6P,GAAA133B,IAAAu33B,KAEA3F,EAAAjvxB,QAAA40xB,IAEA,CACA,CAGA,OAFAD,EAAAS,iBAAA,SACAT,EAAAU,mBAAA,YACAV,CACA,CAzEA,GA2EAW,IAAA,WACA,SAAAA,EAAAh4lB,GAKA,KAAA0sgB,IAAA,GACA+2E,IAAAuU,EAAA,eAAArG,GACAA,EAAAlv6B,OAAA,SAAAwsJ,EAAAqoxB,EAAAC,GAGA,WAAAF,IAAApoxB,EAAAqoxB,EAAAC,EACA,EACA5F,EAAAsG,KAAA,SAAAC,GACAA,IACAA,EAAAtQ,OACA5nlB,GAAAjgS,IAAAigS,EAAA4olB,OACA5olB,EAAA4olB,KAAAsP,GAGA,EACAvG,EAAAhK,KAAA,SAAA9w6B,EAAA1K,GACA0K,KACA866B,EAAAsF,KAAAtF,EAAAsF,MAAA,IACApg7B,GAAA1K,EAEA,EACAwl7B,EAAAjK,KAAA,SAAA7w6B,GACA,OAAA866B,EAAAsF,MAAA,IAAApg7B,EACA,CACA,GACA,qBAmCA,CAlEA,GAoEAsh7B,IAAA,mBASO,SAAPC,IAAAC,EAAAC,EAAA5x6B,EAAA2gE,EAAAkw2B,GACA,GAAAc,EAAA,CACA,IAAAE,EAAAF,EAKA,GAJAE,EAAAxP,OAEAwP,EAAAA,EAAAxP,QAEAwP,EAAA,CACA,IAAAC,OAAA,EACAC,EAAAF,EAAA7Q,KAAAyQ,KACA,IAEA,GADAK,EAAAD,EAAA916B,OAAA616B,IAAAjx2B,EAAAkw2B,GACA,CACA,GAAAkB,GAAAD,EAAA7Q,OACA6Q,EAAA7Q,KAAA0P,IAAAH,KAAAuB,GACAA,EAAA/Q,MAAA+Q,EAAA9Q,MAAA,CACA,IAAAt36B,EAAAoo7B,EAAA/Q,KAAA2P,IAAAF,MACA9m7B,IACAA,EAAA,GACAoo7B,EAAA9Q,KAAA0P,IAAAF,KAAA9m7B,IAEAA,EAAAw06B,KAAA2T,EACA,CAIA,OADAD,EAAA5Q,KAAAwQ,IAAAK,GACA9x6B,EAAA8x6B,EACA,CACA,CACA,MAAA3tgB,GACA2tgB,GAAAA,EAAA7Q,MACA6Q,EAAA7Q,KAAA,YAAA98f,EAEA,SAGA2tgB,GACAD,EAAAN,KAAAO,GAGAD,EAAA5Q,KAAAwQ,IAAAM,EACA,CACA,CACA,CACA,OAAA/x6B,GACA,CCzMA,IAAAgy6B,IAAA,WACAC,IAAA,WAEAC,KAAA,EACAC,IAAA,UACAC,IAAA,UAEA,SAAAC,IAAAC,GACAA,EAAA,IAEAA,KAAA,GAEAH,IAAA,UAAAG,EAAAL,IACAG,IAAA,UAAAE,EAAAL,IACAC,KAAA,CACA,CACA,SAAAK,MAGA,IACA,IAAAvp3B,EAAA,WAAAs82B,MACA+M,KAAA5q7B,KAAAk2B,SAAAq05B,IAAAhp3B,GAAAA,EACA,CACA,MAAA9kE,KACA,CAEA,CAgBO,SAAPsu7B,IAAAC,GACA,IAAAht7B,EAAA,EACAye,ELmLAsk6B,IAAAZ,MAQAY,IAAAX,KKpKA,OAtBA3j6B,GAAAA,EAAAohM,kBAEA7/M,EAAAye,EAAAohM,gBAAA,IAAAzwK,YAAA,OAAAo94B,KAEA,IAAAxs7B,GAAAqxR,QAEAo7pB,KAEAK,MAIA9s7B,EAAAit7B,MAAAT,KAEA,IAAAxs7B,IAEAA,EAAAgC,KAAAiG,MAAAsk7B,IAAAvq7B,KAAAk2B,SAAA,IAEA805B,IAEAht7B,KAAA,GAEAA,CACA,CAmBO,SAAPit7B,IAAAD,GAGA,IAAAht7B,IAFA2s7B,IAAA,aAAAA,MAAAA,KAAA,IAAAH,MAEA,YADAE,IAAA,YAAAA,MAAAA,KAAA,IAAAF,QACA,EAAAA,IAKA,OAJAQ,IAEAht7B,KAAA,GAEAA,CACA,CAMO,SAAPi24B,IAAAjq0B,QACA,IAAAA,IAAAA,EAAA,IAMA,IALA,IAEAtxD,EAAAqy6B,QAAA,EACAv02B,EAAA,EACAvvD,EAAA6y5B,IACA7y5B,EAAA8v5B,KAAA/s2B,GACAwM,IACAvvD,GAPA,mEAOAs5C,OAAA,GAAA7nD,GACAA,KAAA,EACA,IAAA89D,IAGA99D,GAAAqy6B,OAAA,eAAAry6B,KAAA,EACA89D,EAAA,GAGA,OAAAvvD,CACA,CCxHA,IAAAo05B,IAAA5J,IACA7y4B,IAAA,SACAss5B,IAAA,IAAAj3C,IAAA,GACAk3C,IAAA,EAwBA,SAAAC,IAAA3m7B,GACA,WAAAA,EAAAm06B,MAAA,IAAAn06B,EAAAm06B,QAAAn06B,EAAAm06B,IACA,CACA,SAAAyS,IAAA/k5B,EAAA7hC,GACA,IAAA6m7B,EAAA7m7B,EAAA6hC,EAAA/T,IACA,IAAA+45B,EAAA,CACAA,EAAA,GACA,IACAF,IAAA3m7B,KA/BA,SAAAA,EAAA1D,EAAA/C,GACA,GAAAq96B,IACA,IAMA,OALAA,IAAA526B,EAAA1D,EAAA,CACA/C,MAAAA,EACAuW,YAAA,EACAE,cAAA,KAEA,CACA,CACA,MAAAhY,KAEA,CAGA,QACA,CAgBA8u7B,CAAA9m7B,EAAA6hC,EAAA/T,GAAA+45B,KAEA7m7B,EAAA6hC,EAAA/T,IAAA+45B,GAGA,CACA,MAAA7u7B,KACA,CAEA,CACA,OAAA6u7B,CACA,CACO,SAAPE,IAAA1q7B,EAAA2q7B,GAEA,YADA,IAAAA,IAAAA,GAAA,GACArP,IAAAt76B,EAAAqq7B,OAAAM,EAAA,IAAA7s5B,IAAAk74B,KAAAoR,IACA,CACO,SAAPQ,IAAA5q7B,GACA,IAAAwlC,EAAA,CACA/T,GAAAi55B,IAAA,YAAA1q7B,GAAAg56B,KAAA,IAAAl74B,KACAwhU,OAAA,SAAA37V,GACA,OAAA2m7B,IAAA3m7B,EACA,EACAqO,IAAA,SAAArO,EAAA3D,EAAAs96B,EAAAuN,GACA,IAAAL,EAAA7m7B,EAAA6hC,EAAA/T,IACA,OAAA+45B,EAQAA,EAAAlP,IAAAt76B,KAPA6q7B,KAEAL,EAAAD,IAAA/k5B,EAAA7hC,IACA236B,IAAAt76B,IAAAs96B,GAEAA,EAGA,EACAwN,KAAA,SAAAnn7B,EAAA3D,GACA,GAAA2D,GAAAA,EAAA3D,GACA,WACA2D,EAAA3D,EACA,CACA,MAAArE,KACA,CAGA,GAEA,OAAA6pC,CACA,CCjFA,IAAAul5B,IAAA,KACAC,IAAA,cACAC,IAAA,mBACAC,IAAA,cACAC,IAAA,sBACAC,IAAA,SACAC,IAAA,mBACAC,IAAA,WAEAC,IAAA,SACAC,IAAA,eACAC,IAAAf,IAAA,iBAEAgB,KADAhB,IAAA,iBACA,YACAiB,IAAA,SACAC,IAAA,EACAC,IAAAjB,IAAA,UACAkB,IAAA,sBACA,SAAAC,IAAA/r7B,GACA,OAAAA,GAAAA,EAAAg46B,KACAh46B,EAAAg46B,KAAA,+BAAAgB,KAEAh56B,CACA,CACA,SAAAgs7B,IAAAn65B,EAAAo65B,GACA,IAAAr74B,EACA,GAAAq74B,EAAA,CACA,IAAAC,EAAAlT,IACAhs6B,IAAAi/6B,IACAC,EAAAlT,IACAgD,IAAAiQ,GAAA,SAAAjs7B,IACAA,EAAA+r7B,IAAA/r7B,MAEA,MAAAA,EAAA,KACAA,EAAA,IAAAA,GAEAks7B,GAAAls7B,EAEA,KAGAks7B,EAAAH,IAAAE,GAEAC,IACA,MAAAA,EAAA,KACAA,EAAA,IAAAA,GAGAr65B,GAAAA,GAAAmn5B,KAAAkT,EAEA,CACA,IAAAC,EAAAL,IAAA3+4B,KAAAtb,GAAAmn5B,MAAA,GACA,OAAApo4B,EAAA,IACAyn4B,KAAA8T,EAAA,GACAv74B,EAAAupI,IAAAgywB,EAAA,IAAAnT,KAAArt6B,QAAA+/6B,IAAA,KAAA//6B,QAAAgg7B,IAAA3S,KAAArB,KAAA,KAAAnu5B,OAAAloB,KAAA,KACAsvC,CACA,CA6BA,SAAAw74B,IAAAzo7B,EAAA0o7B,EAAAxB,QACA,IAAAA,IAAAA,GAAA,GACA,IAAAyB,EAAAT,IAAA756B,IAAArO,EAAAyn7B,IAAA,GAAAP,GACA0B,EAAAD,EAAAD,GAIA,OAHAE,IACAA,EAAAD,EAAAD,GAAA,IAEAE,CACA,CACA,SAAAC,IAAArg7B,EAAAkg7B,EAAAI,EAAAC,GACAvg7B,GAAAkg7B,GAAAA,EAAAhU,OACAls6B,EAAAg/6B,KACAh/6B,EAAAg/6B,KAAAkB,EAAAhU,KAAAoU,EAAAC,GAEAvg7B,EAAA++6B,MACA/+6B,EAAA++6B,KAAAH,IAAAsB,EAAAhU,KAAAoU,GAGA,CAiBA,SAAAE,IAAAhp7B,EAAA+yH,EAAA21zB,EAAAO,GAEA,IADA,IAAAzn4B,EAAAuxE,EAAAu/yB,KACA9w3B,KAAA,CACA,IAAA0n4B,EAAAn2zB,EAAAvxE,GACA0n4B,IACAR,EAAAlywB,IAAAkywB,EAAAlywB,KAAA0ywB,EAAAR,QAAAlywB,IACAyywB,IAAAA,EAAAC,KACAL,IAAA7o7B,EAAAkp7B,EAAAR,QAAAQ,EAAAvU,KAAAuU,EAAA115B,SAEAu/F,EAAAkgzB,KAAAzx3B,EAAA,IAIA,CACA,CAgBO,SAAP2n4B,IAAAC,EAAAC,GAeA,OAbAA,EAQAhB,IAAA,KAPAh/6B,IAAAgg7B,GACA,CAAAD,GAAAr46B,OAAAs46B,GAGA,CAAAD,EAAAC,IAGA7ywB,GAAAw9vB,KAAA,KAGAoV,CAGA,CAYO,SAAPE,IAAAtp7B,EAAAkuB,EAAA465B,EAAAR,EAAAS,GACA,IAAA974B,OACA,IAAA874B,IAAAA,GAAA,GACA,IAAAvm6B,GAAA,EACA,GAAAxiB,EACA,IACA,IAAA0o7B,EAAAL,IAAAn65B,EAAAo65B,GAEA,GADA9l6B,EAjFA,SAAAha,EAAAkg7B,EAAAI,EAAAC,GACA,IAAAvm6B,GAAA,EAaA,OAZAha,GAAAkg7B,GAAAA,EAAAhU,MAAAoU,IACAtg7B,EAAA8+6B,MAEA9+6B,EAAA8+6B,KAAAoB,EAAAhU,KAAAoU,EAAAC,GACAvm6B,GAAA,GAEAha,EAAA6+6B,OAEA7+6B,EAAA6+6B,KAAAD,IAAAsB,EAAAhU,KAAAoU,GACAtm6B,GAAA,IAGAA,CACA,CAkEA+m6B,CAAAvp7B,EAAA0o7B,EAAAI,EAAAC,GACAvm6B,GAAA0l6B,IAAAvslB,OAAA37V,GAAA,CACA,IAAAwp7B,IAAAv84B,EAAA,CACAusK,KAAAyuuB,MACAS,QAAAA,IAEA/T,KAAAmU,EACA774B,EAAAzZ,QAAAu15B,EACA974B,GACAw74B,IAAAzo7B,EAAA0o7B,EAAAnk7B,MAAA0t6B,KAAAuX,EACA,CACA,CACA,MAAAxx7B,KACA,CAGA,OAAAwqB,CACA,CAaO,SAAPin6B,IAAAzp7B,EAAAkuB,EAAA465B,EAAAR,EAAAS,GAEA,QADA,IAAAA,IAAAA,GAAA,GACA/o7B,EACA,IACA,IAAA0p7B,EAAArB,IAAAn65B,EAAAo65B,GACAqB,GAAA,GArFA,SAAA3p7B,EAAA0o7B,EAAAO,GACA,GAAAP,EAAAhU,KACAsU,IAAAhp7B,EAAAyo7B,IAAAzo7B,EAAA0o7B,EAAAhU,MAAAgU,EAAAO,OAEA,CACA,IAAAW,EAAA1B,IAAA756B,IAAArO,EAAAyn7B,IAAA,IACA5P,IAAA+R,GAAA,SAAAC,EAAA92zB,GACAi2zB,IAAAhp7B,EAAA+yH,EAAA21zB,EAAAO,EACA,IAEA,IAAArQ,IAAAgR,GAAAtX,MACA4V,IAAAf,KAAAnn7B,EAAAyn7B,IAEA,CACA,CAwEAqC,CAAA9p7B,EAAA0p7B,GAAA,SAAAK,GACA,UAAAL,EAAAlzwB,IAAAsywB,IAAAiB,EAAApV,OAAAmU,KACAa,GAAA,GACA,EAGA,IACAA,GAEAd,IAAA7o7B,EAAA0p7B,EAAAZ,EAAAC,EAEA,CACA,MAAA/w7B,KACA,CAGA,CAkCO,SAAPgy7B,IAAA975B,EAAAzvB,EAAA6p7B,GACA,IAAA9l6B,GAAA,EACAlL,EAAAo5Q,MACAp5Q,IACAkL,EAAA8m6B,IAAAhy6B,EAAA4W,EAAAzvB,EAAA6p7B,GACA9l6B,EAAA8m6B,IAAAhy6B,EAAA,KAAA4W,EAAAzvB,EAAA6p7B,IAAA9l6B,GAEA,IAAAge,EAAAo8d,MAIA,OAHAp8d,IACAhe,EAAA8m6B,IAAA9o5B,EAAAtS,EAAAzvB,EAAA6p7B,IAAA9l6B,GAEAA,CACA,CA6BA,SAAAyn6B,IAAAl3zB,EAAA40B,EAAAuiyB,EAAA5B,GACA,IAAAx4uB,GAAA,EAUA,OATAnoD,GAAA50B,GAAAA,EAAAu/yB,KAAA,GACA+F,IAAAtlzB,GAAA,SAAA12H,GACAA,IACA6t7B,IAAA,IAAA5R,IAAA4R,EAAA7t7B,KACAyzM,EAAAk6uB,IAAA3t7B,EAAAsrJ,EAAA2gyB,IAAAx4uB,GAGA,IAEAA,CACA,CA0BO,SAAPqhF,IAAAp+J,EAAA40B,EAAA2gyB,GACAv1zB,GAAA1pH,IAAA0pH,IACAslzB,IAAAtlzB,GAAA,SAAA12H,GACAA,GA5DO,SAAP6xB,EAAAzvB,EAAA6p7B,GACA,IAAAhx6B,EAAAo5Q,MACAp5Q,IACAmy6B,IAAAny6B,EAAA4W,EAAAzvB,EAAA6p7B,GACAmB,IAAAny6B,EAAA,KAAA4W,EAAAzvB,EAAA6p7B,IAEA,IAAA9n5B,EAAAo8d,MACAp8d,GACAip5B,IAAAjp5B,EAAAtS,EAAAzvB,EAAA6p7B,EAEA,CAmDA6B,CAAA9t7B,EAAAsrJ,EAAA2gyB,EAEA,GAEA,CAYO,SAAP8B,IAAAziyB,EAAAuiyB,EAAA5B,GAGA,OAxCO,SAAPv1zB,EAAA40B,EAAAuiyB,EAAA5B,GACA,IAAAx4uB,GAAA,EAQA,OAPAnoD,GAAA50B,GAAA1pH,IAAA0pH,MACA+8E,EAAAm6uB,IAAAl3zB,EAAA40B,EAAAuiyB,EAAA5B,KACA4B,GAAAA,EAAA5X,KAAA,IAEAxiuB,EAAAm6uB,IAAAl3zB,EAAA40B,EAAA,KAAA2gyB,IAGAx4uB,CACA,CA8BAu6uB,CAAA,CAAAxC,IAAAD,IAAAD,KAAAhgyB,EAAAuiyB,EAAA5B,EACA,CAuBO,SAAPgC,IAAA3iyB,EAAAuiyB,EAAA5B,GAQA,IAAAiC,EAAApB,IAAArB,IAAAQ,GACAkC,EAAAP,IAAA,CAAAtC,KAAAhgyB,EAAAuiyB,EAAAK,GAQA,OAPAL,IAAA,IAAA5R,IAAA4R,EAAAxC,OACA8C,EAAAP,IAAA,CAAAvC,MAVA,SAAAz/pB,GACA,IAAAznP,EAAAo8d,MACAj1W,GAAAnnH,GAAA,WAAAA,EAAAmhO,iBACAh6G,EAAAsgI,EAEA,GAKAiiqB,EAAAK,IAAAC,IAEAA,GAAAN,IAEAM,EAAAF,IAAA3iyB,EAAA,KAAA2gyB,IAEAkC,CACA,CCxXO,SAAPC,MAIA,IAHA,IAEAz25B,EAFA025B,EAAA,kEAEAC,EAAAtV,IACAzn6B,EAAA,EAAAA,EAAA,EAAAA,IAEA+86B,GACAD,EAAA,IAFA125B,EAAAsy5B,QAGAoE,EAAA125B,GAAA,MACA025B,EAAA125B,GAAA,MACA025B,EAAA125B,GAAA,OACA025B,EAAA125B,GAAA,OACA025B,EAAA125B,GAAA,OACA025B,EAAA125B,GAAA,OACA025B,EAAA125B,GAAA,OAGA,IAAA425B,EAAAF,EAAA,KAAApE,OAAA,GACA,OAAAqE,EAAAzW,KAAA,KAAAyW,EAAAzW,KAAA,SAAAyW,EAAAzW,KAAA,MAAA0W,EAAAD,EAAAzW,KAAA,MAAAyW,EAAAzW,KAAA,MACA,CC5DA,IACA2W,IAAA,KACAC,IAAA,KACAC,IAAA,mCACAC,IAAA,mBAEA,SAAAz51B,IAAAh4F,EAAA+tD,EAAA2j4B,GACA,SAAA1x7B,GAAAA,EAAA+46B,OAAAhr3B,GAAA/tD,IAAA0x7B,MACA1x7B,EAAAuV,MAAA,cAGA,CACA,SAAAo86B,IAAA3x7B,EAAA+tD,EAAAqy3B,GACA,OAAApo1B,IAAAh4F,EAAA+tD,GACA/tD,EAEAog7B,CACA,CACA,SAAAwR,IAAA5x7B,IACAC,MAAAD,IAAAA,EAAA,GAAAA,EAAA,OACAA,EAAA,GAGA,IADA,IAAAipB,EAAAjpB,EAAAkV,SAAA,IACA+T,EAAA8v5B,KAAA,GACA9v5B,EAAA,IAAAA,EAEA,OAAAA,CACA,CASO,SAAP4o6B,IAAA38vB,EAAA48vB,EAAA786B,EAAA2rB,GACA,IAAA8S,EACA,OAAAA,EAAA,IACAmo4B,KAAA7j1B,IAAAp3D,EAAA,EAAA2w5B,KAAA3w5B,EAAA0w5B,IACA594B,EAAAgo4B,KAAAqW,IAAA78vB,GAAAA,EAAAg8vB,MACAx94B,EAAAo+4B,OAAAE,IAAAF,GAAAA,EAAAZ,MAAAvW,KAAA,MACAjn4B,EAAAu+4B,WAAAh96B,GAAA,GAAAA,GAAA,IAAAA,EAAA,EACAy+B,CACA,CAiDO,SAAPq+4B,IAAA/x7B,GACA,OAAAg4F,IAAAh4F,EAAA,GAAAwx7B,IACA,CAQO,SAAPQ,IAAAhy7B,GACA,OAAAg4F,IAAAh4F,EAAA,GAAAyx7B,IACA,CAoCO,SAAPS,IAAAly7B,GACA,GAAAA,EAAA,CAGA,IAAAiV,EAAA286B,IAAA5x7B,EAAA476B,MACA5j1B,IAAA/iF,EAAA,KACAA,EAAA,MAEA,IAAA2rB,EAAA5gC,EAAA676B,MAAAyV,IAMA,MALA,OAAA1w5B,GAAA,OAAAA,IAEAA,EAAA0w5B,KAGA,GAAA956B,OAAAopB,EAAA9hB,cAAA,KAAAtH,OAAAm66B,IAAA3x7B,EAAAk1L,QAAA,GAAAs8vB,KAAA1y6B,cAAA,KAAAtH,OAAAm66B,IAAA3x7B,EAAA8x7B,OAAA,GAAAL,KAAA3y6B,cAAA,KAAAtH,OAAAvC,EAAA6J,cACA,CACA,QACA,CC5JA,IAAAqz6B,IAAAzE,IAAA,UACO,SAAP0E,IAAA99zB,GACA,OAAA69zB,IAAAr96B,IAAAw/G,EAAA,cACA,CAQO,SAAP+9zB,IAAAC,EAAArxc,GAMA,IAJA,IAGAsxc,EAHAC,EAAA,GACA13zB,EAAA,KACAspE,EAAAkuvB,EAAArY,OAEA71uB,GAAA,CACA,IAAAquvB,EAAAruvB,EAAAm1uB,OACA,GAAAkZ,EAAA,CACA33zB,GACAlnE,IAAAknE,EAAAq/yB,OACAvm3B,IAAA6+3B,EAAArW,OAEAthzB,EAAAq/yB,KAAAsY,IAGA7+3B,IAAA6+3B,EAAA9Z,MACA8Z,EAAA9Z,QAGA4Z,EAAAH,IAAAK,IACA9Z,OAGA6Z,EAAA9Z,KAAA+Z,GAEA33zB,EAAA23zB,EACAruvB,EAAAA,EAAA61uB,MACA,CACA,CAEA6E,IAAA0T,GAAA,SAAAC,GACA,IAAA7M,EAAA0M,EAAAtW,OACAyW,EAAAna,KAAAga,EAAAI,SAAA9M,EAAA3kc,EAAAqxc,EAAArY,QACAsY,EAAAH,IAAAK,GAEAA,EAAAzW,MAAAuW,EAAAvW,OACAuW,EAAAvW,KAAA4J,GAEA2M,EAAA5Z,MAAA,SACA4Z,EAAA5Y,IACA,GACA,CACO,SAAPgZ,IAAAv4zB,GAEA,OAAAA,EAAA9tG,MAAA,SAAAsm6B,EAAAC,GACA,IAAA5p6B,EAAA,EACA,GAAA4p6B,EAAA,CACA,IAAAC,EAAAl/3B,IAAAi/3B,EAAAzW,MACAxo3B,IAAAg/3B,EAAAxW,MACAnz5B,EAAA6p6B,EAAAF,EAAAvW,KAAAwW,EAAAxW,KAAA,EAEAyW,IACA7p6B,GAAA,EAEA,MAEAA,EAAA2p6B,EAAA,KAEA,OAAA3p6B,CACA,GAEA,CCvEA,IAAA8p6B,IAAA,uBACAC,IAAA,UACAC,IAAA,aACAC,IAAA,EAmBA,SAAAC,IAAAC,EAAA161B,EAAAkt1B,EAAAyN,GAGA,IAAAC,EAAA,KACAC,EAAA,GACA,OAAAF,IAEAC,EAAAD,EAzBA,SAAAjvvB,EAAAwhvB,EAAAyN,GACA,KAAAjvvB,GAAA,CACA,GAAAA,EAAAm1uB,SAAA8Z,EACA,OAAAjvvB,EAEAA,EAAAA,EAAA61uB,MACA,CAEA,OAAAuZ,IAAA,CAAAH,GAAAzN,EAAAhN,MAAA,GAAAgN,EACA,CAgBA6N,CAAAL,EAAAxN,EAAAyN,GAAAD,GAEA,IAAA/56B,EAAA,CACAq66B,MAuCA,WACA,IAAAC,EAAAL,EAGA,GADAA,EAAAK,EAAAA,EAAA1Z,OAAA,MACA0Z,EAAA,CACA,IAAAC,EAAAL,EACAK,GAAAA,EAAA7a,KAAA,IACA+F,IAAA8U,GAAA,SAAAC,GACA,IACAA,EAAAt56B,KAAA2g6B,KAAA2Y,EAAA596B,KAAA496B,EAAAx86B,KACA,CACA,MAAA5Y,KACA4o7B,IAAAzB,EAAA9M,KAAA,iDAAAiL,IAAAtl7B,KACA,CACA,IACA807B,EAAA,GAEA,CACA,OAAAI,CACA,EAzDApzF,IAAA,CACAqlF,KAAA,WACA,OAAAA,CACA,EACAkO,QAAA,WACA,OAAAnO,IAAAC,EAAAlt1B,EACA,EACAg61B,OAAA,WACA,OAAAh61B,CACA,EACAq71B,UAAAC,EACAC,UAmFA,SAAAnO,EAAAto0B,EAAA5mG,QACA,IAAAA,IAAAA,GAAA,GACA,IAAAsp6B,EACAgU,EAAAF,EAAAlO,EAAA,MACAoO,IAAA/pnB,IAAA+pnB,EAAA120B,IACA0i0B,EAAAgU,EAAA120B,GAEA9kB,IAAAyxO,IAAAzxO,EAAA8kB,MACA0i0B,EAAAxn1B,EAAA8kB,IAEA,OAAA2sN,IAAA+1mB,GAAAtp6B,EAAAsp6B,CACA,EA7FAz3pB,QAAA,WACA,QAAA6qqB,CACA,EACAa,QAAA,WACA,OAAAb,CACA,EACAc,QAAA,SAAAC,GACAf,EAAAe,CACA,EACAC,QAqFA,SAAA/h0B,GAEA,IAAA8h0B,EACA,KAAAA,EAAAh76B,EAAAq66B,SAAA,CACA,IAAAp/zB,EAAA+/zB,EAAA9a,OACAjlzB,GAEA/B,EAAA+B,EAEA,CACA,EA9FAs/zB,WAGA,SAAAA,EAAApo5B,GAEA,IADA,IAAAn0B,EAAA,GACA3J,EAAA,EAAAA,EAAAnM,UAAAC,OAAAkM,IACA2J,EAAA3J,EAAA,GAAAnM,UAAAmM,GAEAkm7B,GACAL,EAAA7a,KAAA,CACAn+5B,KAAAq56B,EACA396B,KAAA0zE,IAAAn+C,GAAAnyB,EAAAkn1B,IAAA/0zB,EACAn0B,KAAAA,GAGA,IAqBA,SAAA286B,EAAAlO,EAAAlv6B,EAAA296B,GAGA,IAAAC,EACA,QAHA,IAAA596B,IAAAA,EAAA,SACA,IAAA296B,IAAAA,EAAA,GAEA771B,EAAA,CACA,IAAAw71B,EAAAx71B,EAAAyj1B,KACA+X,GAAApO,IACA0O,EAAAN,EAAApO,GAEA,CACA,GAAA0O,GAIA,GAAA9i4B,IAAA96C,IACA,IAAA296B,EAAA,CAEA,IAAAE,EAAAxT,KAAA,EAAArq6B,EAAA496B,GACA971B,GAAA,IAAA671B,GAGAjW,IAAA1n6B,GAAA,SAAA4mG,GAEA,GAAA2sN,IAAAsqnB,EAAAj30B,IAAA,CACA,IAAAk30B,EAAAh81B,EAAA8kB,GACA2sN,IAAAuqnB,KACAD,EAAAj30B,GAAAk30B,EAEA,CACA,IAEAF,EAAAC,CACA,OApBAD,EAAA596B,EAsBA,OAAA496B,CACA,CAwBA,OAAAn76B,CACA,CAQO,SAAPs76B,IAAAvB,EAAA161B,EAAAkt1B,EAAAyN,GACA,IAAAuB,EAAAzB,IAAAC,EAAA161B,EAAAkt1B,EAAAyN,GACAh66B,EAAAu76B,EAAAr0F,IAgBA,OAFAln1B,EAAA4/5B,KAbA,SAAAlvzB,GACA,IAAAsq0B,EAAAO,EAAAlB,QAGA,OADAW,GAAAA,EAAAjY,KAAAryzB,EAAA1wG,IACAg76B,CACA,EASAh76B,EAAA+g6B,KARA,SAAAhgzB,EAAAi5zB,GAKA,YAJA,IAAAj5zB,IAAAA,EAAA,MACAtqH,IAAAsqH,KACAA,EAAAo5zB,IAAAp5zB,EAAA1hC,EAAAkt1B,EAAAyN,IAEAsB,IAAAv6zB,GAAA/gH,EAAA4g6B,OAAAvh1B,EAAAkt1B,EAAAyN,EACA,EAGAh66B,CACA,CAQO,SAAPw76B,IAAAzB,EAAAxN,EAAAyN,GACA,IAAA361B,EAAAkt1B,EAAAhN,MAAA,GACAgc,EAAAzB,IAAAC,EAAA161B,EAAAkt1B,EAAAyN,GACAh66B,EAAAu76B,EAAAr0F,IAeA,OAFAln1B,EAAA4/5B,KAZA,SAAA6b,GACA,IAAAT,EAAAO,EAAAlB,QAEA,OADAW,GAAAA,EAAAU,OAAA176B,EAAAy76B,IACAT,CACA,EASAh76B,EAAA+g6B,KARA,SAAAhgzB,EAAAi5zB,GAKA,YAJA,IAAAj5zB,IAAAA,EAAA,MACAtqH,IAAAsqH,KACAA,EAAAo5zB,IAAAp5zB,EAAA1hC,EAAAkt1B,EAAAyN,IAEAwB,IAAAz6zB,GAAA/gH,EAAA4g6B,OAAA2L,EAAAyN,EACA,EAGAh66B,CACA,CAQO,SAAP276B,IAAA5B,EAAAxN,EAAAyN,GACA,IAAA361B,EAAAkt1B,EAAAhN,MAAA,GAEAv/5B,EADA856B,IAAAC,EAAA161B,EAAAkt1B,EAAAyN,GACA9yF,IAiBA,OAFAln1B,EAAA4/5B,KAdA,SAAA9hvB,GACA,OAAA99K,EAAAi76B,SAAA,SAAAhg0B,GACA1gE,IAAA0gE,EAAA0lzB,OACA1lzB,EAAA0lzB,KAAA3g6B,EAAA89K,EAEA,GACA,EASA99K,EAAA+g6B,KARA,SAAAhgzB,EAAAi5zB,GAKA,YAJA,IAAAj5zB,IAAAA,EAAA,MACAtqH,IAAAsqH,KACAA,EAAAo5zB,IAAAp5zB,EAAA1hC,EAAAkt1B,EAAAyN,IAEA2B,IAAA56zB,GAAA/gH,EAAA4g6B,OAAA2L,EAAAyN,EACA,EAGAh66B,CACA,CAQO,SAAPm66B,IAAAp5zB,EAAA1hC,EAAAkt1B,EAAAyN,GACA,IAAA4B,EAAA,KACAzj6B,GAAA6h6B,EACA,GAAAvj7B,IAAAsqH,IAAAA,EAAA2+yB,KAAA,GAEA,IAAAmc,EAAA,KACApW,IAAA1kzB,GAAA,SAAAq4zB,GAIA,GAHAjh6B,GAAA6h6B,IAAAZ,IACAjh6B,GAAA,GAEAA,GAAAih6B,GAAA7+3B,IAAA6+3B,EAAArW,MAAA,CAEA,IAAA+Y,EA6BO,SAAP7g0B,EAAA57B,EAAAkt1B,GACA,IAGAwP,EAHAzB,EAAA,KACA0B,EAAAzh4B,IAAA0gE,EAAA8nzB,MACAkZ,EAAA1h4B,IAAA0gE,EAAA6lzB,MAGAib,EADA9g0B,EACAA,EAAAmkzB,KAAA,IAAAnkzB,EAAA+nzB,KAAA,IAAA6W,MAGA,aAAAA,MAEA,IAAAqC,EAAA,CACAC,UAAA,WACA,OAAAlh0B,CACA,EACA6/zB,QAAA,WACA,OAAAR,CACA,EACA8B,iBAAAC,EACAX,OAAAY,EACApu2B,OAAAqu2B,EACAtmgB,IAAA8lgB,EACAS,SAAA,SAAAxB,GACAV,EAAAU,CACA,GAEA,SAAAyB,IACA,IAAAC,EAUA,OARAzh0B,GAAA1gE,IAAA0gE,EAAA2+zB,QAEA8C,EAAAzh0B,EAAA2+zB,QAEA8C,IAEAA,EAAApB,IAAAY,EAAA781B,EAAAkt1B,IAEAmQ,CACA,CACA,SAAAC,EAAAD,EAAAE,EAAAnz7B,EAAAo4E,EAAAkw2B,GACA,IAAA8K,GAAA,EACApQ,EAAAxxzB,EAAAA,EAAAmkzB,KAAAsa,IACAoD,EAAAJ,EAAA/C,KAiCA,OAhCAmD,IAEAA,EAAAJ,EAAA/C,KAAA,IAGA+C,EAAA3B,QAAAT,GACAr/zB,GACA23zB,IAAA8J,EAAA/Z,QAAA,kBAAA8J,EAAA,IAAAhj7B,CAAA,eAEAqz7B,EAAAf,IAAA,EACA,IAEA,IAAAgB,EAAAzC,EAAAA,EAAArkgB,IAAAwsf,IACAsa,IACAD,EAAAC,IAAA,GAEAF,EAAAD,EAAAF,EACA,CACA,MAAA1g7B,IACA,IAAAgh7B,GAAA1C,GAAAwC,EAAAxC,EAAArkgB,KACA+mgB,IAEAH,GAAA,GAEAvC,GAAA0C,GAGAhP,IAAA0O,EAAA7b,OAAA,gBAAA4L,EAAA,mBAAAhj7B,EAAA,MAAAih7B,IAAA1u6B,IAAA,gBAAA0u6B,IAAAoS,GAEA,CACA,GAAAj72B,EAAAkw2B,GAEA8K,CACA,CACA,SAAAR,EAAA3r0B,EAAAgs0B,GAEA,SAAAO,EAAAP,GACA,IAAAzh0B,IAAA+g0B,EACA,SAEA,IAAA9C,EAAAH,IAAA99zB,GACA,OAAAi+zB,EAAA5Y,OAAA4Y,EAAArW,OAMAoZ,GAEAhh0B,EAAA6lzB,KAAAwZ,GAEAr/zB,EAAA8nzB,KAAAryzB,EAAAgs0B,IAEA,EACA,CACAC,EApBAD,EAAAA,GAAAD,IAoBAQ,EAAA,sCAAA3i6B,KAAAo2F,EAAA,IAAAA,EAAA2R,OAGAq6zB,EAAA9c,KAAAlvzB,EAEA,CACA,SAAA4r0B,EAAAY,EAAAzB,GACA,SAAA0B,IAEA,IAAAN,GAAA,EACA,GAAA5h0B,EAAA,CACA,IAAAi+zB,EAAAH,IAAA99zB,GACAmi0B,EAAAni0B,EAAA0nzB,MAAAuW,EAAAvW,MAEA1nzB,GAAAmi0B,GAAAA,IAAAF,EAAA3Q,QAAA2M,EAAA5Y,OAEA4Y,EAAAvW,KAAA,KACAuW,EAAA5Y,MAAA,EACA4Y,EAAA5Z,MAAA,EACArkzB,EAAAqlzB,OAAA,IAAArlzB,EAAAqlzB,KAAA4c,EAAAzB,KAEAoB,GAAA,GAGA,CACA,OAAAA,CACA,CACAF,EAAAO,EAAAC,EAAA,wBAAA1B,EAAAhb,OAEAyc,EAAAtd,KAAA6b,EAEA,CACA,SAAAc,EAAAc,EAAAv/vB,GACA,SAAAw/vB,IAEA,IAAAT,GAAA,EACA,GAAA5h0B,EAAA,CACA,IAAAi+zB,EAAAH,IAAA99zB,GACAmi0B,EAAAni0B,EAAA0nzB,MAAAuW,EAAAvW,MAEA1nzB,GAAAmi0B,GAAAA,IAAAC,EAAA9Q,QAAA2M,EAAA5Y,MACArlzB,EAAA0lzB,OAAA,IAAA1lzB,EAAA0lzB,KAAA0c,EAAAv/vB,KAEA++vB,GAAA,EAGA,CACA,OAAAA,CACA,CACAF,EAAAU,EAAAC,EAAA,6BAEAD,EAAAzd,KAAA9hvB,EAEA,CACA,OAAAyovB,IAAA2V,EACA,CAtLAqB,CAAAnE,EAAA/51B,EAAAkt1B,GACAqP,IACAA,EAAAE,GAEAD,GAEAA,EAAAW,SAAAV,GAEAD,EAAAC,CACA,CACA,GACA,CACA,OAAA9B,IAAA4B,EAEAzB,IAAA,CAAAH,GAAA361B,EAAAkt1B,GAEAqP,CACA,CCnRO,SAAP4B,MACA,IAAAn/6B,EAAA,GAiBA,OACA8Z,IAjBA,SAAAnvB,GACAA,GACAqV,EAAAgh6B,KAAAr26B,EAEA,EAcA8vM,IAbA,SAAAokvB,EAAAzB,GACAhW,IAAApn6B,GAAA,SAAArV,GACA,IACAA,EAAAk07B,EAAAzB,EACA,CACA,MAAAr27B,KACA4o7B,IAAAkP,EAAArc,OAAA,kDAAA6J,IAAAtl7B,KACA,CACA,IACAiZ,EAAA,EACA,EAKA,CCnBA,IAAAo/6B,IAAA,YAMAC,IAAA,WACA,SAAAA,IACA,IAEAC,EACAC,EACAC,EACAC,EACAz+e,EANA8se,EAAA,KA4HA,SAAAsQ,EAAAsB,QACA,IAAAA,IAAAA,EAAA,MACA,IAAArB,EAAAqB,EACA,IAAArB,EAAA,CACA,IAAAsB,EAAAJ,GAAAtC,IAAA,QAAAnP,EAAAxJ,MAIA+Z,EAFAmB,GAAAA,EAAAJ,KAEAO,EAAAjd,KAAA,KAAA8c,EAAAJ,MAGAO,EAAAjd,KAAA,KAAA8c,EAEA,CACA,OAAAnB,CACA,CACA,SAAAuB,EAAA5+1B,EAAAkt1B,EAAA2R,GACA7+1B,GAEAomD,IAAApmD,EAAAyj1B,IAAA,QAAAhymB,MAEAotnB,GAAA3R,IAEA2R,EAAA3R,EAAA1M,OAAAe,QAEA,IAAAoa,EAAA6C,EACAA,GAAAA,EAAAJ,OAEAzC,EAAA6C,EAAAJ,QAGAtR,EAAAxJ,KAAA4J,EACAqR,EAAAtC,IAAA4C,EAAA7+1B,EAAAkt1B,EAAAyO,EACA,CACA,SAAAmD,IACAR,GAAA,EACAxR,EAAAxJ,KAAA,KACAib,EAAA,KACAC,EAAA,KACAx+e,EAAA,GACAy+e,EAAAN,KACA,CA9JAW,IACAlgB,IAAAyf,EAAAvR,GAAA,SAAAA,GACAA,EAAAlN,KAAA,SAAA5/0B,EAAAkt1B,EAAA3kc,EAAAs2c,GACAD,EAAA5+1B,EAAAkt1B,EAAA2R,GACAP,GAAA,CACA,EACAxR,EAAA7L,KAAA,SAAA4c,EAAAzB,GACA,IAAAph5B,EAGAky4B,EAAAJ,EAAAxJ,KACA,GAAA4J,KAAA2Q,GAAA3Q,IAAA2Q,EAAAva,QAAA,CAIA,IAAA/y5B,EACAwu6B,GAAA,EACAC,EAAAnB,GAAA1B,IAAA,KAAAjP,EAAAsR,GAAAA,EAAAJ,KAAAI,EAAAJ,OAAAI,GACAS,EAAA7C,KAAAph5B,EAAA,CACA6gF,OAAA,IAEAulzB,MAAA,EACApm4B,GAwBA,OAPA8x4B,EAAAzL,OAAA,IAAAyL,EAAAzL,KAAA2d,EAAAC,EAAAC,GAKA3u6B,GAAA,EAJA2u6B,IAMA3u6B,CAhCA,CASA,SAAA2u6B,IACA,IAAAH,EAAA,CACAA,GAAA,EACAN,EAAAhlvB,IAAAulvB,EAAA5C,GACA,IAAA+C,EAAAn/e,EACAA,EAAA,GAEAome,IAAA+Y,GAAA,SAAA5o6B,GACAA,EAAA6o6B,IACA,KACA,IAAA7u6B,GACAyu6B,EAAAze,KAAA0e,GAEAH,GACA,CACA,CASA,EACAhS,EAAAxL,KAAA,SAAA0c,EAAAv/vB,GAGA,IAAAyuvB,EAAAJ,EAAAxJ,KACA,GAAA4J,KAAA8Q,GAAA9Q,IAAA8Q,EAAA1a,QAAA,CAIA,IAAA/y5B,EACA8u6B,GAAA,EACAC,EAAAtB,GAAA1B,IAAA,KAAApP,EAAAsR,GAAAA,EAAAJ,KAAAI,EAAAJ,OAAAI,GACAe,EAAA9gwB,GAAA,CACA5iE,OAAA,GAcA,OANAixzB,EAAA0S,YAAA,IAAA1S,EAAA0S,UAAAF,EAAAC,EAAAE,GAIAlv6B,GAAA,EAHAkv6B,IAKAlv6B,CAnBA,CAOA,SAAAkv6B,IACAJ,IACAA,GAAA,EACAT,EAAAU,EAAAtF,SAAAsF,EAAApS,OAAAoS,EAAA/d,QAEA,CAQA,EACAuL,EAAA4S,SAAA,SAAAl25B,GACAA,IACApyB,IAAAoyB,GACAw2a,EAAAA,EAAAlhc,OAAA0qB,GAGAw2a,EAAAgge,KAAAx24B,GAGA,EACAw+4B,IAAA8E,EAAA,kCAAA2R,CAAA,SACA,IAEA3R,EAAAtL,KAAA,SAAA6b,GACA,OAAAD,EAAAC,GAAA7b,MACA,EACAsL,EAAA7M,KAAA,WACA,OAAAqe,CACA,EACAxR,EAAA32qB,eAAA,SAAAwprB,GACArB,EAAAqB,CACA,EAKA7S,EAAArL,KAAA,SAAAxl6B,GACAui7B,EAAAvi7B,CACA,EACA6w6B,EAAAvM,KAAA,SAAAlvzB,EAAAgs0B,GACAA,EAEAA,EAAA9c,KAAAlvzB,GAEAmt0B,GAAAtj4B,IAAAsj4B,EAAA9a,OAGA8a,EAAA9a,KAAAryzB,EAAA,KAEA,EACAy7zB,EAAAsQ,WAAAA,CA2CA,qBAwCA,CAhNA,GCRAwC,IAAA,SAAApz4B,GAEA,SAAAoz4B,IACA,IAGAC,EACAC,EACAC,EACAC,EANAh77B,EAAAwnD,EAAAnnD,KAAA,YAuFA,OAtFAL,EAAAwhG,SAAA,IACAxhG,EAAAoo7B,WAAA,cAKAxO,IAAAghB,EAAA567B,GAAA,SAAA8n7B,EAAAmT,GA8CA,SAAAnB,IACAe,EAAA,KACAC,EAAA,KACAC,EAAA,KACAC,EAAA,IACA,CACA,SAAAE,IAIA,OAHAL,GACAlR,IAAA7B,EAAAsO,UAAA,qFAEAyE,CACA,CAxDAf,IACAhS,EAAAv5wB,WAAA,SAAAvzE,EAAAkt1B,EAAA3kc,EAAAs2c,GAYA,GAXAry4B,EAAAn2C,UAAAk9J,WAAAluK,KAAAL,EAAAg7F,EAAAkt1B,EAAA3kc,EAAAs2c,GACAiB,EACA9/1B,EAAAmg2B,iBAAAng2B,EAAAmg2B,gBAAArT,EAAAM,YACApt1B,EAAAmg2B,gBAAArT,EAAAM,YACA,CAAA9wsB,QAAA,MACA8psB,IAAA79b,GAAA,SAAAxrP,GAEA,iCADAA,EAAAqwrB,aAEAyS,EAAA9isB,EAEA,IACA+isB,EAAAxjtB,QAAA,EA4CA,SAAAA,GACA,IAAA8jtB,EAAA,SAAAli4B,GAEA,IAAAmi4B,EAAA,KAGAA,EAFA,aAAAni4B,EAEAA,EAAA,SAGAA,EAGA8h4B,EAAAlk6B,YAAA,WACAkk6B,EAAA,KACA,IAAAM,EAAA,CAAA37P,IAAA07P,EAAA7jtB,UACAswsB,EAAAyT,cAAAD,EACA,OACA,EACAP,EAAAzjtB,EAAA2ymB,OAAAmxG,EACA,CA9DAI,CAAAV,EAAAxjtB,SACA,IAAAgktB,EAAA,CACA37P,IAAAm7P,EAAAxjtB,QAAAj/M,SAAAm/M,UAEAswsB,EAAAyT,cAAAD,EACA,CACA,EACAxT,EAAAqD,aAAA,WACA,OAAAD,IAAApD,EAAAI,KACA,EACAJ,EAAA2T,eAAAP,EACApT,EAAAiQ,iBAAA,SAAAtg6B,EAAA4g6B,GACAvQ,EAAA4T,YAAAjk6B,EAAA4g6B,EACA,EACAvQ,EAAA6T,YAAA,SAAA9C,EAAAzB,EAAAwE,GACA1l4B,IAAA6k4B,IACAA,IAEAC,GACAjk6B,aAAAik6B,GAEAlB,GACA,EAEA5W,IAAA4E,EAAAoT,EAAA,CACA,cACA,gBACA,aACA,iBACA,eAkCApZ,IAAAgG,EAAA,sCAAAgT,CAAA,GACA,IACA967B,CACA,QA1FA4mD,IAAAg04B,EAAApz4B,gBAmIA,CApIA,CAoIA6x4B,KACA,cCnIA,IAAAwC,IAAA,SAAAr04B,GAEA,SAAAq04B,EAAA/77B,EAAAg87B,EAAAzwzB,GACA,IAAArrI,EAAAwnD,EAAAnnD,KAAA,KAAAP,IAAA,KAwBA,OAvBAE,EAAA+77B,gBAAA,EACA/77B,EAAAg87B,sBAAA,EACAh87B,EAAAi87B,oBAAA,EACAj87B,EAAAk87B,qBAAA,EACAl87B,EAAAm87B,eAAA,EACAn87B,EAAAo87B,WAAA,EACAp87B,EAAAq87B,aAAA,IACAr87B,EAAAs87B,cAAA,SAAAv77B,GAQA,GAPA,IAAAf,EAAAg87B,uBACAh87B,EAAAg87B,sBAAA7Z,MACAni7B,EAAAk87B,qBAAAl87B,EAAAg87B,uBAGAh87B,EAAAk87B,qBAAA/Z,MAEAni7B,EAAAi87B,oBAAA,GACA,IAAAM,EAAAv87B,EAAAk87B,qBAAAl87B,EAAAi87B,oBACAj87B,EAAAm87B,gBAAAI,EACAv87B,EAAAi87B,oBAAA,CACA,CACA,EACAj87B,EAAAw87B,aAAAV,EACA977B,EAAAy87B,eAAApxzB,EACArrI,CACA,CAsCA,OAjEA4mD,IAAAi14B,EAAAr04B,GA4BAq04B,EAAAxq7B,UAAAqK,kBAAA,WACA,IAAA1b,EAAA,KACA,KAAA+77B,gBAAA5Z,MACA,KAAA6Z,sBAAA,EACA,KAAAG,eAAA,EACA,KAAAD,qBAAA,EACA,KAAAD,oBAAA,EACA,KAAAG,WAAA,EACA,KAAAM,YAAA93rB,aAAA,WACA5kQ,EAAAk87B,qBAAA,OAAAl87B,EAAAi87B,qBAAA9Z,MAAAni7B,EAAAk87B,sBAAAl87B,EAAAq87B,eACAr87B,EAAAi87B,oBAAA9Z,MACAni7B,EAAAo87B,aAEA,OACA,EACAP,EAAAxq7B,UAAAuK,qBAAA,WACA,YAAAmg7B,gBACA,UAAAtu6B,MAAA,2EAKA,GAHA,KAAAiv6B,aACA33rB,cAAA,KAAA23rB,aAEA,SAAAV,sBAAA,CAGA,IACAW,EAAA,CACApzgB,QAFA,KAAAqzgB,2BAGAx37B,KAAA,yCACAy37B,YAAA,GAEAC,EAAA,uBAAAL,gBACA,KAAAD,aAAAO,YAAAJ,EAAAG,EARA,CASA,EACAjB,EAAAxq7B,UAAAur7B,yBAAA,WACA,OAAAza,MAAA,KAAA6Z,sBAAA,KAAAG,eAAA,KAAAC,WAAA,KAAAC,cAAA,GACA,EACAR,CACA,CAnEA,CAmEAriwB,GAAAA,WAWe,SAAfwjwB,IAAAlB,EAAAh67B,EAAAupI,EAAA5pI,GAUA,YATAsC,IAAAsnI,GAAA,OAAAA,GAAA,kBAAAA,IACAA,EAAAvpI,EAAAuP,WACAvP,EAAAuP,UAAAwF,aACA/U,EAAAuP,UAAAwF,YAAAzR,MACA,gBAEArB,IAAAtC,GAAA,OAAAA,GAAA,kBAAAA,IACAA,EAAA,IAEA,SAAA+lD,GAEA,SAAAy14B,EAAAn97B,GACA,OAAA0nD,EAAAnnD,KAAA,KAAAP,EAAAg87B,EAAAzwzB,IAAA,IACA,CAKA,OARAzkF,IAAAq24B,EAAAz14B,GAIAy14B,EAAA5r7B,UAAAyJ,OAAA,WACA,OAAA0+K,GAAAA,cAAA,OAAAvzL,UAAA,KAAAq27B,cAAAtkb,YAAA,KAAAskb,cAAAY,SAAA,KAAAZ,cAAAt27B,YAAA,KAAAs27B,cAAAp27B,aAAA,KAAAo27B,cAAAa,YAAA,KAAAb,cAAA767B,UAAAA,GACA+3L,GAAAA,cAAA13L,EAAAoiD,IAAA,QAAApkD,QACA,EACAm97B,CACA,CAVA,CAUApB,IACA,CCrGA,IAAIuB,IAA6B,WAE7B,SAASA,EAAYC,GAEjB387B,KAAK487B,QAAU,6BACf587B,KAAK687B,OAASF,CAClB,CAuYA,OApYAD,EAAY/r7B,UAAUms7B,eAAiB,SAAUh+6B,EAASxS,GACtD,OAAOwS,EAAQxS,EACnB,EAOAow7B,EAAY/r7B,UAAUos7B,UAAY,SAAUj+6B,GAUxC,OATIitT,GAAkBjtT,EAAQqX,MAC1BrX,EAAQqX,GAAKn2B,KAAK687B,OAAS,QAE/B787B,KAAKg97B,OAAS9r6B,SAASg8T,eAAepuU,EAAQqX,IAC1C41S,GAAkB76S,SAASg8T,eAAepuU,EAAQqX,OAClDn2B,KAAKg97B,OAAS9r6B,SAASmxI,gBAAgBriK,KAAK487B,QAAS,QAEzD587B,KAAKg97B,OAASh97B,KAAKi97B,qBAAqBn+6B,EAAS9e,KAAKg97B,QACtDh97B,KAAKk97B,WAAWp+6B,EAAQN,MAAOM,EAAQ8pI,QAChC5oJ,KAAKg97B,MAChB,EAEAN,EAAY/r7B,UAAUus7B,WAAa,SAAU1+6B,EAAOoqI,GAChD,IAAIzzI,EAAU+b,SAASg8T,eAAeltV,KAAK687B,QACvCxm7B,EAAQ01T,GAAkB52T,GAA6C,KAAlCA,EAAQs/Q,wBAC7Cs3C,GAAkB/rU,KAAKwe,QAAUxe,KAAKwe,OAAS,EAC/Cxe,KAAKg97B,OAAOho6B,aAAa,QAASxW,EAAQA,EAAM1H,WAAaT,EAAKmI,MAAM1H,YAGxE9W,KAAKg97B,OAAOho6B,aAAa,QAASh1B,KAAKwe,MAAM1H,YAE7Ci1T,GAAkB/rU,KAAK4oJ,SAAW5oJ,KAAK4oJ,QAAU,EACjD5oJ,KAAKg97B,OAAOho6B,aAAa,SAAU4zH,EAASA,EAAO9xI,WAAa,OAGhE9W,KAAKg97B,OAAOho6B,aAAa,SAAUh1B,KAAK4oJ,OAAO9xI,WAEvD,EAOA4l7B,EAAY/r7B,UAAUq/xB,SAAW,SAAUlxxB,GACvC,IAAIguD,EAAO57C,SAASg8T,eAAepuU,EAAQqX,IAK3C,OAJa,OAAT22C,IACAA,EAAO57C,SAASmxI,gBAAgBriK,KAAK487B,QAAS,SAElD9v3B,EAAO9sE,KAAKi97B,qBAAqBn+6B,EAASguD,EAE9C,EAOA4v3B,EAAY/r7B,UAAU24xB,SAAW,SAAUxqxB,GACvC,IAAIi3G,EAAO7kG,SAASg8T,eAAepuU,EAAQqX,IAK3C,OAJa,OAAT4/F,IACAA,EAAO7kG,SAASmxI,gBAAgBriK,KAAK487B,QAAS,SAElD7m0B,EAAO/1H,KAAKi97B,qBAAqBn+6B,EAASi3G,EAE9C,EAOA2m0B,EAAY/r7B,UAAU64xB,cAAgB,SAAU1qxB,GAC5C,IAAI8hR,EAAY1vQ,SAASg8T,eAAepuU,EAAQqX,IAKhD,OAJkB,OAAdyqQ,IACAA,EAAY1vQ,SAASmxI,gBAAgBriK,KAAK487B,QAAS,SAEvDh8pB,EAAY5gS,KAAKi97B,qBAAqBn+6B,EAAS8hR,EAEnD,EAOA87pB,EAAY/r7B,UAAUws7B,WAAa,SAAUr+6B,GACzC,IAAIqyZ,EAASjgZ,SAASg8T,eAAepuU,EAAQqX,IAK7C,OAJe,OAAXg7Y,IACAA,EAASjgZ,SAASmxI,gBAAgBriK,KAAK487B,QAAS,WAEpDzrhB,EAASnxa,KAAKi97B,qBAAqBn+6B,EAASqyZ,EAEhD,EAOAurhB,EAAY/r7B,UAAUys7B,aAAe,SAAUt+6B,GAC3C,IAAIu+6B,EAAWns6B,SAASg8T,eAAepuU,EAAQqX,IAK/C,OAJiB,OAAbkn6B,IACAA,EAAWns6B,SAASmxI,gBAAgBriK,KAAK487B,QAAS,aAEtDS,EAAWr97B,KAAKi97B,qBAAqBn+6B,EAASu+6B,EAElD,EAOAX,EAAY/r7B,UAAU+i6B,YAAc,SAAU505B,GAC1C,IAAIws5B,EAAUp64B,SAASg8T,eAAepuU,EAAQqX,IAK9C,OAJgB,OAAZm14B,IACAA,EAAUp64B,SAASmxI,gBAAgBriK,KAAK487B,QAAS,YAErDtxB,EAAUtr6B,KAAKi97B,qBAAqBn+6B,EAASws5B,EAEjD,EAOAoxB,EAAY/r7B,UAAU2s7B,YAAc,SAAUx+6B,GAC1C,IAAIy+6B,EAAUrs6B,SAASg8T,eAAepuU,EAAQqX,IAK9C,OAJgB,OAAZon6B,IACAA,EAAUrs6B,SAASmxI,gBAAgBriK,KAAK487B,QAAS,YAErDW,EAAUv97B,KAAKi97B,qBAAqBn+6B,EAASy+6B,EAEjD,EAOAb,EAAY/r7B,UAAUqud,UAAY,SAAUlgd,GACxC,IAAIgjI,EAAM5wH,SAASmxI,gBAAgBriK,KAAK487B,QAAS,SAcjD,OAbA96yB,EAAIv2G,eAAe,KAAM,SAAUzsB,EAAQ8pI,OAAO9xI,YAClDgrI,EAAIv2G,eAAe,KAAM,QAASzsB,EAAQN,MAAM1H,YAChDgrI,EAAIv2G,eAAe,+BAAgC,OAAQzsB,EAAQqpC,MACnE25F,EAAIv2G,eAAe,KAAM,IAAKzsB,EAAQ5E,EAAEpD,YACxCgrI,EAAIv2G,eAAe,KAAM,IAAKzsB,EAAQ3E,EAAErD,YACxCgrI,EAAIv2G,eAAe,KAAM,KAAMzsB,EAAQqX,IACvC2rH,EAAIv2G,eAAe,KAAM,aAAczsB,EAAQyoP,YAC1CwkE,GAAkB/rU,KAAK887B,eAAeh+6B,EAAS,eAChDgjI,EAAIv2G,eAAe,KAAM,YAAavrC,KAAK887B,eAAeh+6B,EAAS,cAElEitT,GAAkBjtT,EAAQ0+6B,sBAC3B17yB,EAAIv2G,eAAe,KAAM,sBAAuBzsB,EAAQ0+6B,qBAErD17yB,CACX,EAQA46yB,EAAY/r7B,UAAU8s7B,WAAa,SAAU3+6B,EAASsvR,GAClD,IAAInuQ,EAAO/O,SAASmxI,gBAAgBriK,KAAK487B,QAAS,QAKlD,OAJA385B,EAAOjgC,KAAKi97B,qBAAqBn+6B,EAASmhB,GACrC8rS,GAAkB39B,KACnBnuQ,EAAK2J,YAAcwkQ,GAEhBnuQ,CACX,EAQAy85B,EAAY/r7B,UAAU+s7B,YAAc,SAAU5+6B,EAASsvR,GACnD,IAAIuvpB,EAAQzs6B,SAASmxI,gBAAgBriK,KAAK487B,QAAS,SAKnD,OAJAe,EAAQ397B,KAAKi97B,qBAAqBn+6B,EAAS6+6B,GACtC5xnB,GAAkB39B,KACnBuvpB,EAAM/z5B,YAAcwkQ,GAEjBuvpB,CACX,EAOAjB,EAAY/r7B,UAAUit7B,YAAc,SAAU395B,GAC1C,IAAInrB,EAAQoc,SAASmxI,gBAAgBriK,KAAK487B,QAAS,SAEnD,OADA9n7B,EAAM80B,YAAc3J,EACbnrB,CACX,EAMA4n7B,EAAY/r7B,UAAUkt7B,WAAa,WAE/B,OADW3s6B,SAASmxI,gBAAgBriK,KAAK487B,QAAS,OAEtD,EAOAF,EAAY/r7B,UAAUmt7B,eAAiB,SAAUh/6B,GAC7C,IAAI+9uB,EAAW3ruB,SAASmxI,gBAAgBriK,KAAK487B,QAAS,YAEtD,OADA//L,EAAW78vB,KAAKi97B,qBAAqBn+6B,EAAS+9uB,EAElD,EAOA6/L,EAAY/r7B,UAAUot7B,oBAAsB,SAAUj/6B,GAClD,IAAIk/6B,EAAgB9s6B,SAASmxI,gBAAgBriK,KAAK487B,QAAS,iBAE3D,OADAoB,EAAgBh+7B,KAAKi97B,qBAAqBn+6B,EAASk/6B,EAEvD,EAOAtB,EAAY/r7B,UAAUst7B,YAAc,SAAUn/6B,GAC1C,IAAIw/D,EAAQptD,SAASmxI,gBAAgBriK,KAAK487B,QAAS,KAEnD,OADAt+2B,EAAQt+E,KAAKi97B,qBAAqBn+6B,EAASw/D,EAE/C,EAQAo+2B,EAAY/r7B,UAAUut7B,cAAgB,SAAUp/6B,EAAS3J,GACrD,IAAImN,EAAU4O,SAASmxI,gBAAgBriK,KAAK487B,QAASzn7B,GAErD,OADAmN,EAAUtiB,KAAKi97B,qBAAqBn+6B,EAASwD,EAEjD,EASAo66B,EAAY/r7B,UAAUwt7B,qBAAuB,SAAUh5Y,EAAQzgjB,EAAMoa,GACjE,IAAIs/6B,EACJ,GAAKrynB,GAAkBo5O,EAAO,GAAGk5Y,WAa7BD,EAAYj5Y,EAAO,GAAG1ub,MAAM3/G,eAba,CACzC,IAAImG,EAAa,CACb,GAAMjd,KAAK687B,OAAS,IAAMn47B,EAAO,iBACjC,GAAMoa,EAAQ+nc,GAAK,IACnB,GAAM/nc,EAAQgoc,GAAK,IACnB,EAAKhoc,EAAQwkG,EAAI,IACjB,GAAMxkG,EAAQw/6B,GAAK,IACnB,GAAMx/6B,EAAQy/6B,GAAK,KAEvBv+7B,KAAKw+7B,aAAa,iBAAkBvh7B,EAAYkoiB,GAChDi5Y,EAAY,QAAUp+7B,KAAK687B,OAAS,IAAMn47B,EAAO,iBACrD,CAIA,OAAO057B,CACX,EASA1B,EAAY/r7B,UAAU8t7B,qBAAuB,SAAUt5Y,EAAQzgjB,EAAMoa,GACjE,IAAIs/6B,EACJ,GAAKrynB,GAAkBo5O,EAAO,GAAGk5Y,WAY7BD,EAAYj5Y,EAAO,GAAG1ub,MAAM3/G,eAZa,CACzC,IAAImG,EAAa,CACb,GAAMjd,KAAK687B,OAAS,IAAMn47B,EAAO,iBACjC,GAAMoa,EAAQ+hoB,GAAK,IACnB,GAAM/hoB,EAAQgioB,GAAK,IACnB,GAAMhioB,EAAQiioB,GAAK,IACnB,GAAMjioB,EAAQkioB,GAAK,KAEvBhhpB,KAAKw+7B,aAAa,iBAAkBvh7B,EAAYkoiB,GAChDi5Y,EAAY,QAAUp+7B,KAAK687B,OAAS,IAAMn47B,EAAO,iBACrD,CAIA,OAAO057B,CACX,EASA1B,EAAY/r7B,UAAU6t7B,aAAe,SAAUE,EAAc5/6B,EAASqmiB,GAClE,IAAIl/F,EAAOjmd,KAAK697B,aACZc,EAAWzt6B,SAASmxI,gBAAgBriK,KAAK487B,QAAS8B,GACtDC,EAAW3+7B,KAAKi97B,qBAAqBn+6B,EAAS6/6B,GAC9C,IAAK,IAAIxy7B,EAAI,EAAGA,EAAIg5iB,EAAO/hjB,OAAQ+I,IAAK,CACpC,IAAIyy7B,EAAS1t6B,SAASmxI,gBAAgBriK,KAAK487B,QAAS,QACpDgC,EAAO5p6B,aAAa,SAAUmwhB,EAAOh5iB,GAAGky7B,WACxCO,EAAO5p6B,aAAa,aAAcmwhB,EAAOh5iB,GAAGsqH,OAC5Cmo0B,EAAO5p6B,aAAa,eAAgBmwhB,EAAOh5iB,GAAGmiI,QAAW62a,EAAOh5iB,GAAGmiI,QAAW,KACzEy9L,GAAkBo5O,EAAOh5iB,GAAGhG,SAC7By47B,EAAOz47B,MAAM6pqB,QAAU7qH,EAAOh5iB,GAAGhG,OAErCw47B,EAASjt6B,YAAYkt6B,EACzB,CAEA,OADA34e,EAAKv0b,YAAYit6B,GACV14e,CACX,EAOAy2e,EAAY/r7B,UAAUku7B,aAAe,SAAU//6B,GAC3C,IAAImnc,EAAOjmd,KAAK697B,aACZhhM,EAAW78vB,KAAK897B,eAAe,CAAE,GAAMh/6B,EAAQqX,KACnDrX,EAAQqX,GAAKrX,EAAQqX,GAAK,QAC1B,IAAIu+P,EAAO10R,KAAKwpyB,cAAc1qxB,GAG9B,OAFA+9uB,EAASnruB,YAAYgjQ,GACrBuxL,EAAKv0b,YAAYmruB,GACV52S,CACX,EAOAy2e,EAAY/r7B,UAAUmu7B,qBAAuB,SAAUhg7B,GACnD,IAAImnc,EAAOjmd,KAAK697B,aACZhhM,EAAW78vB,KAAK897B,eAAe,CAAE,GAAMh/6B,EAAQqX,KACnDrX,EAAQqX,GAAKrX,EAAQqX,GAAK,UAC1B,IAAIg7Y,EAASnxa,KAAKm97B,WAAWr+6B,GAG7B,OAFA+9uB,EAASnruB,YAAYy/Y,GACrB80C,EAAKv0b,YAAYmruB,GACV52S,CACX,EAQAy2e,EAAY/r7B,UAAUss7B,qBAAuB,SAAUn+6B,EAAS3J,GAE5D,IADA,IAAI5Q,EAAO9E,OAAO8E,KAAKua,GACd3S,EAAI,EAAGA,EAAI5H,EAAKnB,OAAQ+I,IACb,UAAZ5H,EAAK4H,GACLgJ,EAAQhP,MAAM6pqB,QAAUlxpB,EAAQva,EAAK4H,IAGrCgJ,EAAQ6f,aAAazwB,EAAK4H,GAAI2S,EAAQva,EAAK4H,KAGnD,OAAOgJ,CACX,EAKAun7B,EAAY/r7B,UAAUg54B,aAAe,WACjC,OAAO,IACX,EACO+yC,CACX,CA9YiC,ICIG,WAEhC,SAASqC,EAAepC,GACpB387B,KAAK687B,OAASF,CAClB,CAGAoC,EAAepu7B,UAAUms7B,eAAiB,SAAUh+6B,EAASxS,GACzD,OAAOwS,EAAQxS,EACnB,EAQAyy7B,EAAepu7B,UAAUg54B,aAAe,SAAU7q4B,GAC9C,IAAIkg7B,EAAY9t6B,SAASpwB,cAAc,UAKvC,OAJAk+7B,EAAUhq6B,aAAa,KAAMh1B,KAAK687B,OAAS,WAC3C787B,KAAKmi2B,IAAM68F,EAAUrie,WAAW,MAChC38d,KAAKg/7B,UAAYA,EACjBh/7B,KAAKi/7B,cAAcng7B,EAAQN,MAAOM,EAAQ8pI,QACnC5oJ,KAAKg/7B,SAChB,EAQAD,EAAepu7B,UAAUsu7B,cAAgB,SAAUzg7B,EAAOoqI,GACtD,IAAIzzI,EAAU+b,SAASg8T,eAAeltV,KAAK687B,QACvCxm7B,EAAQ01T,GAAkB52T,GAA6C,KAAlCA,EAAQs/Q,wBAC7Cs3C,GAAkB/rU,KAAKwe,OACvBxe,KAAKg/7B,UAAUhq6B,aAAa,QAASxW,EAAQA,EAAM1H,WAAaT,EAAKmI,MAAM1H,YAG3E9W,KAAKg/7B,UAAUhq6B,aAAa,QAASh1B,KAAKwe,MAAM1H,YAEhDi1T,GAAkB/rU,KAAK4oJ,QACvB5oJ,KAAKg/7B,UAAUhq6B,aAAa,SAAU4zH,EAASA,EAAO9xI,WAAa,OAGnE9W,KAAKg/7B,UAAUhq6B,aAAa,SAAUh1B,KAAK4oJ,OAAO9xI,WAE1D,EAEAio7B,EAAepu7B,UAAUy8f,cAAgB,SAAUtuf,GAC/C9e,KAAKmi2B,IAAIlqF,UAAYj4wB,KAAK887B,eAAeh+6B,EAAS,gBAClD,IAAIog7B,EAAYl/7B,KAAK887B,eAAeh+6B,EAAS,oBAC7C,IAAKitT,GAAkBmznB,GAAY,CAC/B,IAAIC,EAAkBD,EAAUvs6B,MAAM,KACtC3yB,KAAKmi2B,IAAIi9F,YAAY,CAAC7y6B,SAAS4y6B,EAAgB,GAAI,IAAK5y6B,SAAS4y6B,EAAgB,GAAI,KACzF,CACAn/7B,KAAKmi2B,IAAI5+X,YAAcvje,KAAK887B,eAAeh+6B,EAAS,SACxD,EAOAig7B,EAAepu7B,UAAU24xB,SAAW,SAAUxqxB,GAC1C9e,KAAKmi2B,IAAI9jY,OACTr+d,KAAKmi2B,IAAIlhY,YACTjhe,KAAKmi2B,IAAIlqF,UAAYj4wB,KAAK887B,eAAeh+6B,EAAS,gBAClD9e,KAAKmi2B,IAAI5+X,YAAczkd,EAAQy7uB,OAC/Bv6vB,KAAKmi2B,IAAIjhY,OAAOpid,EAAQ+hoB,GAAI/hoB,EAAQgioB,IACpC9gpB,KAAKmi2B,IAAIupE,OAAO5s5B,EAAQiioB,GAAIjioB,EAAQkioB,IACpChhpB,KAAKmi2B,IAAI5nG,SACTv6vB,KAAKmi2B,IAAIjtS,SACb,EAQA6pY,EAAepu7B,UAAU64xB,cAAgB,SAAU1qxB,EAASug7B,GACxD,IAAIC,EAAYt/7B,KAAKmi2B,IACjBo9F,EAAezg7B,EAAQ6yxB,GAsB3B,OArBA3xyB,KAAKmi2B,IAAI9jY,OACTr+d,KAAKmi2B,IAAIlhY,YACLo+d,GACAr/7B,KAAKmi2B,IAAIrpT,UAAUumZ,EAAgB,GAAIA,EAAgB,IAE3Dr/7B,KAAKmi2B,IAAIq9F,YAAcx/7B,KAAK887B,eAAeh+6B,EAAS,WACpD9e,KAAKotgB,cAActuf,GACnB9e,KAAKmi2B,IAAIztkB,KAAK51Q,EAAQ5E,EAAG4E,EAAQ3E,EAAG2E,EAAQN,MAAOM,EAAQ8pI,QACtC,OAAjB22yB,GAAyBA,GAAgB,EACzCv/7B,KAAKy/7B,iBAAiB3g7B,IAGD,SAAjBA,EAAQ0nE,OACR1nE,EAAQ0nE,KAAO,eAEnBxmF,KAAKmi2B,IAAI3kY,UAAY1+c,EAAQ0nE,KAC7BxmF,KAAKmi2B,IAAIkpE,SAASvs5B,EAAQ5E,EAAG4E,EAAQ3E,EAAG2E,EAAQN,MAAOM,EAAQ8pI,QAC/D5oJ,KAAKmi2B,IAAI5nG,UAEbv6vB,KAAKmi2B,IAAIjtS,UACTl1jB,KAAKmi2B,IAAMm9F,EACHt/7B,KAAKg/7B,SACjB,EAEAD,EAAepu7B,UAAU8u7B,iBAAmB,SAAU3g7B,GAClD,IAAIyg7B,EAAezg7B,EAAQ6yxB,GACvBz3xB,EAAI4E,EAAQ5E,EACZC,EAAI2E,EAAQ3E,EACZqE,EAAQM,EAAQN,MAChBoqI,EAAS9pI,EAAQ8pI,OACA,SAAjB9pI,EAAQ0nE,OACR1nE,EAAQ0nE,KAAO,eAEnBxmF,KAAKmi2B,IAAI3kY,UAAY1+c,EAAQ0nE,KACzBhoE,EAAQ,EAAI+g7B,IACZA,EAAe/g7B,EAAQ,GAEvBoqI,EAAS,EAAI22yB,IACbA,EAAe32yB,EAAS,GAE5B5oJ,KAAKmi2B,IAAIlhY,YACTjhe,KAAKmi2B,IAAIjhY,OAAOhnd,EAAIsE,EAAQ+g7B,EAAcpl7B,GAC1Cna,KAAKmi2B,IAAIu9F,MAAMxl7B,EAAIsE,EAAOrE,EAAGD,EAAIsE,EAAOrE,EAAIyuI,EAAQ22yB,GACpDv/7B,KAAKmi2B,IAAIu9F,MAAMxl7B,EAAIsE,EAAOrE,EAAIyuI,EAAQ1uI,EAAGC,EAAIyuI,EAAQ22yB,GACrDv/7B,KAAKmi2B,IAAIu9F,MAAMxl7B,EAAGC,EAAIyuI,EAAQ1uI,EAAGC,EAAGol7B,GACpCv/7B,KAAKmi2B,IAAIu9F,MAAMxl7B,EAAGC,EAAGD,EAAIsE,EAAOrE,EAAGol7B,GACnCv/7B,KAAKmi2B,IAAIvjY,YACT5+d,KAAKmi2B,IAAI37wB,OACTxmF,KAAKmi2B,IAAI5nG,QACb,EAQAwkM,EAAepu7B,UAAUq/xB,SAAW,SAAUlxxB,EAASug7B,GACnD,IACIM,EADO7g7B,EAAQtd,EACEmxB,MAAM,KACvBgpU,EAAc37V,KAAK887B,eAAeh+6B,EAAS,gBAC3Cwg7B,EAAYt/7B,KAAKmi2B,IACjBpohB,GAAO,EACX/5U,KAAKmi2B,IAAI9jY,OACTr+d,KAAKmi2B,IAAIlhY,YACLo+d,GACAr/7B,KAAKmi2B,IAAIrpT,UAAUumZ,EAAgB,GAAIA,EAAgB,IAE3Dr/7B,KAAKmi2B,IAAIq9F,YAAc1g7B,EAAQwvH,QAAUxvH,EAAQwvH,QAAUtuI,KAAK887B,eAAeh+6B,EAAS,gBACxF9e,KAAKotgB,cAActuf,GACnB,IAAK,IAAI3S,EAAI,EAAGA,EAAIwz7B,EAAUv87B,OAAQ+I,GAAQ,EAAG,CAC7C,IAAI00oB,EAAKnwmB,WAAWiv5B,EAAUxz7B,EAAI,IAC9B20oB,EAAKpwmB,WAAWiv5B,EAAUxz7B,EAAI,IAClC,OAAQwz7B,EAAUxz7B,IACd,IAAK,IACI2S,EAAQ8g7B,QAAW9g7B,EAAQ+nc,IAC5B7md,KAAKmi2B,IAAIjhY,OAAO2/K,EAAIC,GAExB,MACJ,IAAK,IACIhioB,EAAQ8g7B,QACT5/7B,KAAKmi2B,IAAIupE,OAAO7qR,EAAIC,GAExB,MACJ,IAAK,IACD,IAAI++S,EAAKnv5B,WAAWiv5B,EAAUxz7B,EAAI,IAC9B2z7B,EAAKpv5B,WAAWiv5B,EAAUxz7B,EAAI,IAClCnM,KAAKmi2B,IAAI49F,iBAAiBl/S,EAAIC,EAAI++S,EAAIC,GACtC3z7B,GAAQ,EACR,MACJ,IAAK,IACD,IAAI6z7B,EAAKtv5B,WAAWiv5B,EAAUxz7B,EAAI,IAC9B8z7B,EAAKvv5B,WAAWiv5B,EAAUxz7B,EAAI,IAC9B+z7B,EAAKxv5B,WAAWiv5B,EAAUxz7B,EAAI,IAC9Bg07B,EAAKzv5B,WAAWiv5B,EAAUxz7B,EAAI,IAClCnM,KAAKmi2B,IAAIi+F,cAAcv/S,EAAIC,EAAIk/S,EAAIC,EAAIC,EAAIC,GAC3Ch07B,GAAQ,EACR,MACJ,IAAK,IACI2S,EAAQ8g7B,OAUJ7lnB,IACL/5U,KAAKmi2B,IAAIhhY,IAAIrid,EAAQ5E,EAAG4E,EAAQ3E,EAAG2E,EAAQ0jQ,OAAQ1jQ,EAAQo3B,MAAOp3B,EAAQs6B,IAAKt6B,EAAQuh7B,kBACvFrg8B,KAAKmi2B,IAAIhhY,IAAIrid,EAAQ5E,EAAG4E,EAAQ3E,EAAG2E,EAAQ8g7B,OAAQ9g7B,EAAQs6B,IAAKt6B,EAAQo3B,OAAQp3B,EAAQuh7B,kBACxFtmnB,GAAO,GAZHj7T,EAAQ+nc,GACR7md,KAAKmi2B,IAAIhhY,IAAIrid,EAAQ+nc,GAAI/nc,EAAQgoc,GAAIhoc,EAAQ0jQ,OAAQ,EAAG,EAAI5+Q,KAAKita,GAAI/xZ,EAAQuh7B,mBAG7Erg8B,KAAKmi2B,IAAIjhY,OAAOpid,EAAQ5E,EAAG4E,EAAQ3E,GACnCna,KAAKmi2B,IAAIhhY,IAAIrid,EAAQ5E,EAAG4E,EAAQ3E,EAAG2E,EAAQ0jQ,OAAQ1jQ,EAAQo3B,MAAOp3B,EAAQs6B,IAAKt6B,EAAQuh7B,kBACvFrg8B,KAAKmi2B,IAAIupE,OAAO5s5B,EAAQ5E,EAAG4E,EAAQ3E,IAQ3ChO,GAAQ,EACR,MACJ,IAAK,IACL,IAAK,IACDnM,KAAKmi2B,IAAIvjY,YAETzyd,GAAQ,EAGpB,CAUA,MATqB,SAAjB2S,EAAQ0nE,WAAoCnjF,IAAjByb,EAAQ0nE,OACnCxmF,KAAKmi2B,IAAI3kY,UAAY1+c,EAAQ0nE,KAC7BxmF,KAAKmi2B,IAAI37wB,QAETm1Q,EAAc,GACd37V,KAAKmi2B,IAAI5nG,SAEbv6vB,KAAKmi2B,IAAIjtS,UACTl1jB,KAAKmi2B,IAAMm9F,EACJt/7B,KAAKg/7B,SAChB,EAYAD,EAAepu7B,UAAU8s7B,WAAa,SAAU3+6B,EAASsvR,EAAOkypB,EAAQC,EAAQC,EAAIC,GAChF,IAAItyzB,EAAanuI,KAAK887B,eAAeh+6B,EAAS,eACzCitT,GAAkB59L,IAA4C,YAA7BA,EAAWztH,gBAC7CytH,EAAa,UAEjB,IAAI8wK,EAAWj/S,KAAK887B,eAAeh+6B,EAAS,aACxC0jc,EAAaxid,KAAK887B,eAAeh+6B,EAAS,eAE1Cyld,EADYvke,KAAK887B,eAAeh+6B,EAAS,cAAc4B,cACnC,IAAMytH,EAAa,IAAM8wK,EAAW,IAAMujK,EAC9DtpW,EAASl5G,KAAK887B,eAAeh+6B,EAAS,eACtCwvH,OAA8BjrI,IAApByb,EAAQwvH,QAAwBxvH,EAAQwvH,QAAU,EAYhE,GAXe,WAAXp1B,IACAA,EAAS,UAEbl5G,KAAKmi2B,IAAI9jY,OACTr+d,KAAKmi2B,IAAI3kY,UAAY1+c,EAAQ0nE,KAC7BxmF,KAAKmi2B,IAAI59X,KAAOA,EAChBvke,KAAKmi2B,IAAI39X,UAAYtrX,EACrBl5G,KAAKmi2B,IAAIq9F,YAAclxzB,EACnBxvH,EAAQ4h7B,WACR1g8B,KAAKmi2B,IAAI19X,aAAe3ld,EAAQ4h7B,WAE/BD,EAAS,CAEVzg8B,KAAKmi2B,IAAIrpT,UAAUh6hB,EAAQ5E,EAAKym7B,GAAiBL,GAAkB,GAAIxh7B,EAAQ3E,GAAKom7B,GAAkB,IACtGvg8B,KAAKmi2B,IAAI7xb,OAAOxxZ,EAAQ8h7B,cAAgBh97B,KAAKita,GAAK,IACtD,CAGA,OAFA7wa,KAAKmi2B,IAAIz9X,SAASt2L,EAAOqypB,EAAU3h7B,EAAQ5E,EAAI,EAAGum7B,EAAUD,EAAK,GACjExg8B,KAAKmi2B,IAAIjtS,UACFl1jB,KAAKg/7B,SAChB,EAQAD,EAAepu7B,UAAUws7B,WAAa,SAAUr+6B,EAASug7B,GACrD,IAAIC,EAAYt/7B,KAAKmi2B,IAcrB,OAbAni2B,KAAKmi2B,IAAI9jY,OACTr+d,KAAKmi2B,IAAIlhY,YACTjhe,KAAKmi2B,IAAIhhY,IAAIrid,EAAQ+nc,GAAI/nc,EAAQgoc,GAAIhoc,EAAQwkG,EAAG,EAAG,EAAI1/G,KAAKita,IAC5D7wa,KAAKmi2B,IAAI3kY,UAAY1+c,EAAQ0nE,KAC7BxmF,KAAKmi2B,IAAIq9F,YAAc1g7B,EAAQwvH,QAC/BtuI,KAAKmi2B,IAAI37wB,OACL642B,GACAr/7B,KAAKmi2B,IAAIrpT,UAAUumZ,EAAgB,GAAIA,EAAgB,IAE3Dr/7B,KAAKotgB,cAActuf,GACnB9e,KAAKmi2B,IAAI5nG,SACTv6vB,KAAKmi2B,IAAIjtS,UACTl1jB,KAAKmi2B,IAAMm9F,EACJt/7B,KAAKg/7B,SAChB,EAOAD,EAAepu7B,UAAUys7B,aAAe,SAAUt+6B,GAC9C9e,KAAKmi2B,IAAI9jY,OACTr+d,KAAKmi2B,IAAIlhY,YAET,IADA,IAAIzB,EAAS1gd,EAAQ0gd,OAAO7sc,MAAM,KACzBxmB,EAAI,EAAGA,EAAIqzd,EAAOp8d,OAAS,EAAG+I,IAAK,CACxC,IAAIm6V,EAAQk5H,EAAOrzd,GAAGwmB,MAAM,KACxBzY,EAAIw2B,WAAW41T,EAAM,IACrBnsV,EAAIu2B,WAAW41T,EAAM,IACf,IAANn6V,EACAnM,KAAKmi2B,IAAIjhY,OAAOhnd,EAAGC,GAGnBna,KAAKmi2B,IAAIupE,OAAOxx5B,EAAGC,EAE3B,CACAna,KAAKmi2B,IAAIlqF,UAAYj4wB,KAAK887B,eAAeh+6B,EAAS,gBAClD9e,KAAKmi2B,IAAI5+X,YAAczkd,EAAQy7uB,OAC/Bv6vB,KAAKmi2B,IAAI5nG,SACTv6vB,KAAKmi2B,IAAIjtS,SACb,EAQA6pY,EAAepu7B,UAAU+i6B,YAAc,SAAU505B,EAASug7B,GACtD,IAAIC,EAAYt/7B,KAAKmi2B,IACjB0+F,EAAgBj97B,KAAKqpC,IAAInuB,EAAQ6yxB,GAAI7yxB,EAAQ8yxB,IAC7C3of,EAASnqS,EAAQ6yxB,GAAKkvJ,EACtB33oB,EAASpqS,EAAQ8yxB,GAAKivJ,EAC1B7g8B,KAAKmi2B,IAAI9jY,OACTr+d,KAAKmi2B,IAAIlhY,YACTjhe,KAAKmi2B,IAAIrpT,UAAUh6hB,EAAQ+nc,GAAI/nc,EAAQgoc,IACnCu4e,GACAr/7B,KAAKmi2B,IAAIrpT,UAAUumZ,EAAgB,GAAIA,EAAgB,IAE3Dr/7B,KAAKmi2B,IAAI9jY,OACTr+d,KAAKmi2B,IAAI5kY,MAAMt0K,EAAQC,GACvBlpT,KAAKmi2B,IAAIhhY,IAAI,EAAG,EAAG0/d,EAAe,EAAG,EAAIj97B,KAAKita,IAAI,GAClD7wa,KAAKmi2B,IAAI3kY,UAAY1+c,EAAQ0nE,KAC7BxmF,KAAKmi2B,IAAI37wB,OACTxmF,KAAKmi2B,IAAIjtS,UACTl1jB,KAAKmi2B,IAAIlqF,UAAYj4wB,KAAK887B,eAAeh+6B,EAAS,gBAClD9e,KAAKmi2B,IAAI5+X,YAAczkd,EAAQy7uB,OAC/Bv6vB,KAAKmi2B,IAAI5nG,SACTv6vB,KAAKmi2B,IAAIjtS,UACTl1jB,KAAKmi2B,IAAMm9F,CACf,EAOAP,EAAepu7B,UAAUqud,UAAY,SAAUlgd,GAC3C9e,KAAKmi2B,IAAI9jY,OACT,IAAI4E,EAAW,IAAInE,MACd/yJ,GAAkBjtT,EAAQqpC,QAC3B86a,EAASv+T,IAAM5lJ,EAAQqpC,KACvBnoD,KAAKmi2B,IAAInjY,UAAUiE,EAAUnkd,EAAQ5E,EAAG4E,EAAQ3E,EAAG2E,EAAQN,MAAOM,EAAQ8pI,SAE9E5oJ,KAAKmi2B,IAAIjtS,SACb,EAOA6pY,EAAepu7B,UAAU8t7B,qBAAuB,SAAUt5Y,GACtD,IAAI27Y,EAKJ,OAJK/0nB,GAAkBo5O,EAAO,GAAGk5Y,aAC7ByC,EAAa9g8B,KAAKmi2B,IAAIs8F,qBAAqB,EAAG,EAAG,EAAGz+7B,KAAKg/7B,UAAUp2yB,SAE3D5oJ,KAAK+g8B,kBAAkB57Y,EAAQ27Y,EAE/C,EAOA/B,EAAepu7B,UAAUwt7B,qBAAuB,SAAUh5Y,GACtD,IAAI27Y,EAKJ,OAJK/0nB,GAAkBo5O,EAAO,GAAGk5Y,aAC7ByC,EAAa9g8B,KAAKmi2B,IAAIg8F,qBAAqB,EAAG,EAAG,EAAG,EAAG,EAAGn+7B,KAAKg/7B,UAAUp2yB,SAE7D5oJ,KAAK+g8B,kBAAkB57Y,EAAQ27Y,EAEnD,EAEA/B,EAAepu7B,UAAUow7B,kBAAoB,SAAU57Y,EAAQ27Y,GAC3D,IAAI1C,EACJ,GAAKrynB,GAAkBo5O,EAAO,GAAGk5Y,WAU7BD,EAAYj5Y,EAAO,GAAG1ub,MAAM3/G,eAVa,CACzC,IAAK,IAAI3K,EAAI,EAAGA,GAAKg5iB,EAAO/hjB,OAAS,EAAG+I,IAAK,CACzC,IAAIsqH,EAAQ0ub,EAAOh5iB,GAAGsqH,MAClBuq0B,EAAgB77Y,EAAOh5iB,GAAGky7B,UAAWzt7B,MAAM,GAAI,GAC/Cqw7B,EAAY106B,SAASy06B,EAAc,IAAM,IAC7CF,EAAWI,aAAaD,EAAWxq0B,EACvC,CACA2n0B,EAAY0C,EAAWhq7B,UAC3B,CAIA,OAAOsn7B,CACX,EAQAW,EAAepu7B,UAAUss7B,qBAAuB,SAAUn+6B,EAAS3J,GAG/D,IAFA,IAAI5Q,EAAO9E,OAAO8E,KAAKua,GACnByJ,EAAS9oB,OAAO8E,KAAKua,GAAS7Y,KAAI,SAAUqG,GAAO,OAAOwS,EAAQxS,EAAM,IACnEH,EAAI,EAAGA,EAAI5H,EAAKnB,OAAQ+I,IAC7BgJ,EAAQ6f,aAAazwB,EAAK4H,GAAIoc,EAAOpc,IAEzC,OAAO,IACX,EAOA4y7B,EAAepu7B,UAAUww7B,uBAAyB,SAAUri7B,GACxD9e,KAAKi97B,qBAAqBn+6B,EAAS9e,KAAKg/7B,WACxC,IAAI78F,EAAMni2B,KAAKmi2B,IACf,IAAKp2hB,GAAkB/rU,KAAK2gb,SAAU,CAClC,IAAIyghB,EAAQ,IAAItie,MAChBsie,EAAMzhxB,OAAS,WACXwirB,EAAInjY,UAAUoie,EAAO,EAAG,EAC5B,EACAA,EAAM18xB,IAAM1kK,KAAK2gb,OACrB,CACJ,EAMAo+gB,EAAepu7B,UAAUoud,UAAY,SAAUrqM,GAC3C10R,KAAKmi2B,IAAIjtS,UACTl1jB,KAAKmi2B,IAAIpjY,UAAUrqM,EAAKx6Q,EAAGw6Q,EAAKv6Q,EAAGu6Q,EAAKl2Q,MAAOk2Q,EAAK9rI,OACxD,EAKAm2yB,EAAepu7B,UAAUst7B,YAAc,WACnC,OAAO,IACX,EAMAc,EAAepu7B,UAAUku7B,aAAe,WACpC,OAAO,IACX,EAMAE,EAAepu7B,UAAUmu7B,qBAAuB,WAC5C,OAAO,IACX,EAMAC,EAAepu7B,UAAU0w7B,WAAa,SAAUvi7B,GAC5C9e,KAAKmi2B,IAAI9jY,OACTr+d,KAAKmi2B,IAAI3kY,UAAY,cACrBx9d,KAAKmi2B,IAAIztkB,KAAK51Q,EAAQ5E,EAAG4E,EAAQ3E,EAAG2E,EAAQN,MAAOM,EAAQ8pI,QAC3D5oJ,KAAKmi2B,IAAI37wB,OACTxmF,KAAKmi2B,IAAInpF,MACb,EAIA+lL,EAAepu7B,UAAU2w7B,cAAgB,WACrCth8B,KAAKmi2B,IAAIjtS,SACb,EAKA6pY,EAAepu7B,UAAU2s7B,YAAc,WACnC,OAAO,IACX,EAOAyB,EAAepu7B,UAAUkt7B,WAAa,WAClC,OAAO,IACX,EAKAkB,EAAepu7B,UAAUmt7B,eAAiB,WACtC,OAAO,IACX,EAOAiB,EAAepu7B,UAAUos7B,UAAY,WACjC,OAAO,IACX,CAEJ,CApgBoC,GCXpC,IAAI724B,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAuBtC,SAAS4t2B,IAAY/z3B,EAAMskc,GAC9B,IAAIg9d,EAAYth6B,GAAQ,GACpBuh6B,EAAatw6B,SAASg8T,eAAe,oBAKzC,GAJmB,OAAfs0mB,IACAA,EAAa1g8B,GAAc,OAAQ,CAAEq1B,GAAI,qBACzCjF,SAASzd,KAAKie,YAAY8v6B,IAER,kBAAVvh6B,IAAuBA,EAAKt1B,QAAQ,MAAQ,GAAKs1B,EAAKt1B,QAAQ,MAAQ,GAAI,CAElF,IADA,IAAI827B,EAAYxh6B,EAAKtN,MAAM,KAClBxmB,EAAI,EAAGA,EAAIs17B,EAAUr+7B,OAAQ+I,KACK,IAAnCs17B,EAAUt17B,GAAGxB,QAAQ,WACrB827B,EAAUt17B,GAAKs17B,EAAUt17B,GAAGkE,QAAQ,QAAS,MAGrD4vB,EAAOwh6B,EAAUz77B,KAAK,IAC1B,CAaA,OAZAw77B,EAAWt45B,UAAaq45B,EAAU527B,QAAQ,SAAW,GAAK427B,EAAU527B,QAAQ,UAAY,EAAK427B,EAAYth6B,EACzGuh6B,EAAWr77B,MAAM+jF,SAAW,QAC5Bs32B,EAAWr77B,MAAM84S,SAAWslL,EAAKlud,KACjCmr7B,EAAWr77B,MAAMgoI,WAAao2V,EAAKp2V,WACnCqzzB,EAAWr77B,MAAMqwkB,UAAYjyG,EAAKiyG,UAClCgrX,EAAWr77B,MAAMq8c,WAAa+hB,EAAK/hB,WACnCg/e,EAAWr77B,MAAMohQ,WAAa,SAC9Bi6rB,EAAWr77B,MAAM+nJ,IAAM,OACvBszyB,EAAWr77B,MAAMw9H,KAAO,IACxB69zB,EAAWr77B,MAAMyzvB,WAAa,SAE9B4nM,EAAWr77B,MAAMkoI,WAAa,SACvB,IAAIqzzB,IAAKF,EAAWz8rB,YAAay8rB,EAAWt8rB,aACvD,CAEO,SAASy8rB,IAAiBzn7B,EAAGC,EAAGyn7B,EAAYpj7B,EAAOoqI,GAGtD,YAFc,IAAVpqI,IAAoBA,EAAQ,QACjB,IAAXoqI,IAAqBA,EAAS,GAC1B1uI,GAAK0n7B,EAAW1n7B,EAAIsE,GAAStE,GAAK0n7B,EAAW1n7B,EAAI0n7B,EAAWpj7B,MAAQA,GAASrE,GAAKyn7B,EAAWzn7B,EAAIyuI,GAClGzuI,GAAKyn7B,EAAWzn7B,EAAIyn7B,EAAWh5yB,OAASA,CACnD,CA2FA,IAAI84yB,IACA,SAAclj7B,EAAOoqI,GACjB5oJ,KAAKwe,MAAQA,EACbxe,KAAK4oJ,OAASA,CAClB,EAKAi5yB,IACA,SAAc3n7B,EAAGC,EAAGqE,EAAOoqI,GACvB5oJ,KAAKka,EAAIA,EACTla,KAAKma,EAAIA,EACTna,KAAKwe,MAAQA,EACbxe,KAAK4oJ,OAASA,CAClB,EAIAk5yB,IACA,SAAcntqB,EAAQ/wJ,GAClB5jI,KAAK+vF,QAAU6zC,EACf5jI,KAAKq+tB,SAAW1pc,CACpB,EAKAotqB,IACA,SAAyB5r6B,GACrBn2B,KAAKm2B,GAAKA,CACd,EAKA6r6B,IAA4B,SAAUl74B,GAEtC,SAASk74B,EAAW7r6B,EAAIjc,EAAGC,EAAG++F,EAAQj5E,EAAMs4B,EAAW0p4B,EAAUrB,QAC3C,IAAdro4B,IAAwBA,EAAY,IACxC,IAAIj5D,EAAQwnD,EAAOnnD,KAAKK,KAAMm2B,IAAOn2B,KAWrC,OAVAV,EAAMi5D,UAAY,GAClBj5D,EAAM2i8B,SAAW,OACjB3i8B,EAAMsh8B,cAAgB,EACtBth8B,EAAM4a,EAAIA,EACV5a,EAAM6a,EAAIA,EACV7a,EAAM45G,OAASA,EACf55G,EAAM2gC,KAAOA,EACb3gC,EAAMi5D,UAAYA,EAClBj5D,EAAM2i8B,SAAWA,EACjB3i8B,EAAMsh8B,cAAgBA,EACfth8B,CACX,CACA,OAhBA4mD,IAAU874B,EAAYl74B,GAgBfk74B,CACX,CAlBgC,CAkB9BD,KAGK,SAAS/6pB,IAAW7wQ,GACvB,OAAOjF,SAASg8T,eAAe/2T,EACnC,CAEO,SAASm1B,IAAcn1B,GAC1B,IAAIhhB,EAAU6xR,IAAW7wQ,GACrBhhB,GACAge,GAAOhe,EAEf,CAEO,SAAS+s7B,IAAWvq6B,EAAU6zG,EAAOn1H,EAAM44G,EAAKnwG,EAASsvR,GAC5D,IAAIkyB,EAAW,IAAIo8nB,IAAY,IAC3Bhw2B,EAMD,SAAyB/0D,EAAUthB,EAAMm1H,EAAO1sH,EAASmwG,GAC5D,IAAIniD,EACAq13B,EAAe,OACf3j7B,EAAQnI,EAAKmI,MACboqI,EAASvyI,EAAKuyI,OACdw5yB,EAAOzq6B,EAASzd,EAChBmo7B,EAAO1q6B,EAASxd,EAChBD,EAAIyd,EAASzd,GAAMsE,EAAQ,EAC3BrE,EAAIwd,EAASxd,GAAMyuI,EAAS,EAChC,OAAQpd,GACJ,IAAK,SACL,IAAK,SACD22zB,EAAe,UACfh/2B,GAAMrkE,EAAS,CAAE,GAAMN,EAAQ,EAAG,GAAMoqI,EAAS,EAAG,GAAMw5yB,EAAM,GAAMC,IACtE,MACJ,IAAK,QAIDl/2B,GAAMrkE,EAAS,CAAE,EAHjBguD,EAAO,KAAY5yD,EAAI,IAAMmo7B,EAAtB,OAAgDD,EAAQ5j7B,EAAQ,GAAM,IAAM6j7B,EAA5E,MACSD,EAAO,KAAOC,EAAQz5yB,EAAS,GADxC,MACgEw5yB,EAAO,KACzEC,GAASz5yB,EAAS,KAEvB,MACJ,IAAK,iBAEDzlE,GAAMrkE,EAAS,CAAE,EADjBguD,EAAO,KAAY5yD,EAAI,IAAMmo7B,EAAtB,OAAgDD,EAAQ5j7B,EAAQ,GAAM,IAAM6j7B,IAEnF,MACJ,IAAK,eAEDl/2B,GAAMrkE,EAAS,CAAE,EADjBguD,EAAO,KAAYs13B,EAAO,KAAOC,EAAQz5yB,EAAS,GAA3C,MAAmEw5yB,EAAO,KAAOC,GAASz5yB,EAAS,KAE1G,MACJ,IAAK,UAMDzlE,GAAMrkE,EAAS,CAAE,EALjBguD,EAAO,KAAY5yD,EAAI,IAAMmo7B,EAAtB,MACSD,EAAO,KAAOC,GAASz5yB,EAAS,GADzC,OAEUw5yB,EAAQ5j7B,EAAQ,GAAM,IAAM6j7B,EAFtC,MAGSD,EAAO,KAAOC,EAAQz5yB,EAAS,GAHxC,MAIS1uI,EAAI,IAAMmo7B,EAAO,OAEjC,MACJ,IAAK,YAMDl/2B,GAAMrkE,EAAS,CAAE,EALjBguD,EAAO,KAAY5yD,EAAI,KAAOmo7B,GAASz5yB,EAAS,GAAzC,OACUw5yB,EAAQ5j7B,EAAQ,GAAM,KAAO6j7B,GAASz5yB,EAAS,GADzD,OAEUw5yB,EAAQ5j7B,EAAQ,GAAM,KAAO6j7B,EAAQz5yB,EAAS,GAFxD,MAGS1uI,EAAI,KAAOmo7B,EAAQz5yB,EAAS,GAHrC,MAIS1uI,EAAI,KAAOmo7B,GAASz5yB,EAAS,GAAM,OAEnD,MACJ,IAAK,WAKDzlE,GAAMrkE,EAAS,CAAE,EAJjBguD,EAAO,KAAY5yD,EAAI,KAAOmo7B,EAAQz5yB,EAAS,GAAxC,MACSw5yB,EAAO,KAAOC,GAASz5yB,EAAS,GADzC,OAEUw5yB,EAAQ5j7B,EAAQ,GAAM,KAAO6j7B,EAAQz5yB,EAAS,GAFxD,MAGS1uI,EAAI,KAAOmo7B,EAAQz5yB,EAAS,GAAM,OAElD,MACJ,IAAK,mBAKDzlE,GAAMrkE,EAAS,CAAE,EAJjBguD,EAAO,MAAas13B,EAAQ5j7B,EAAQ,GAAM,KAAO6j7B,EAAQz5yB,EAAS,GAA3D,MACSw5yB,EAAO,KAAOC,EAAQz5yB,EAAS,GADxC,OAEUw5yB,EAAQ5j7B,EAAQ,GAAM,KAAO6j7B,EAAQz5yB,EAAS,GAFxD,OAGUw5yB,EAAQ5j7B,EAAQ,GAAM,KAAO6j7B,EAAQz5yB,EAAS,GAAM,OAErE,MACJ,IAAK,WAID,IAHA,IAAI1zF,EAAK,GACLot4B,OAAS,EACTC,OAAS,EACJp27B,EAAI,EAAGA,GAAK,EAAGA,IACpBm27B,EAAU9j7B,EAAQ,EAAK5a,KAAK6ta,IAAK7ta,KAAKita,GAAK,KAAQ1ka,EAAI+oD,IACvDqt4B,EAAU35yB,EAAS,EAAKhlJ,KAAK8ta,IAAK9ta,KAAKita,GAAK,KAAQ1ka,EAAI+oD,IAEpD4X,EADM,IAAN3gE,EACO,MAAai27B,EAAOE,GAAU,KAAOD,EAAOE,GAAU,IAGtDz13B,EAAK1zD,OAAO,MAAagp7B,EAAOE,GAAU,KAAOD,EAAOE,GAAU,KAIjFp/2B,GAAMrkE,EAAS,CAAE,EADjBguD,EAAOA,EAAK1zD,OAAO,OAEnB,MACJ,IAAK,QACD+o7B,EAAe,QACfh/2B,GAAMrkE,EAAS,CAAE,KAAQmwG,EAAK,OAAU25B,EAAQ,MAASpqI,EAAOtE,EAAGA,EAAGC,EAAGA,IAGjF,MAAO,CAAEqo7B,aAAc1j7B,EAASqj7B,aAAcA,EAClD,CAxFeM,CAAgB9q6B,EAAUthB,EAAMm1H,EAAO1sH,EAASmwG,GACvDuy0B,EAAalhoB,EAAS,OAAS5zO,EAAKy12B,cAAcz12B,EAAK812B,cAE3D,OADAhB,EAAWxs6B,aAAa,aAAco5Q,GAC/BozpB,CACX,CAsFA,IAAIkB,IAA4B,SAAU574B,GAEtC,SAAS474B,EAAWvs6B,EAAIqwD,EAAMhoE,EAAOi4G,EAAO6X,EAAS4wzB,EAAW197B,GAC5D,IAAIlC,EAAQwnD,EAAOnnD,KAAKK,KAAMm2B,IAAOn2B,KAOrC,OANAV,EAAMgvI,QAAUA,EAChBhvI,EAAMknF,KAAOA,EACblnF,EAAMi7vB,OAAS9joB,EACfn3H,EAAM,gBAAkBkf,EACxBlf,EAAM,oBAAsB4/7B,EAC5B5/7B,EAAMkC,EAAIA,EACHlC,CACX,CACA,OAXA4mD,IAAUw84B,EAAY574B,GAWf474B,CACX,CAbgC,CAa9BX,KA8BF,IAAIY,IACA,SAAyBzo7B,EAAGC,GACxBna,KAAKka,EAAIA,EACTla,KAAKma,EAAIA,CACb,ECrWA+rC,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAazC2pS,IAA0C,SAAUxoJ,EAAYl/L,EAAQiE,EAAKkkB,GAC7E,IAA2HhvB,EAAvH6e,EAAIld,UAAUC,OAAQkgH,EAAIjjG,EAAI,EAAIhY,EAAkB,OAATmoB,EAAgBA,EAAO/wB,OAAOk+B,yBAAyBt1B,EAAQiE,GAAOkkB,EACrH,GAAuB,kBAAZuN,SAAoD,oBAArBA,QAAQiyT,SAAyB1sO,EAAIvlF,QAAQiyT,SAASzoJ,EAAYl/L,EAAQiE,EAAKkkB,QACpH,IAAK,IAAIrkB,EAAIo7L,EAAWnkM,OAAS,EAAG+I,GAAK,EAAGA,KAAS3K,EAAI+lM,EAAWp7L,MAAIm3G,GAAKjjG,EAAI,EAAI7e,EAAE8hH,GAAKjjG,EAAI,EAAI7e,EAAE6G,EAAQiE,EAAKg3G,GAAK9hH,EAAE6G,EAAQiE,KAASg3G,GAChJ,OAAOjjG,EAAI,GAAKijG,GAAK7jH,OAAO4c,eAAehU,EAAQiE,EAAKg3G,GAAIA,CAChE,EAmBIs/0B,IAA2B,SAAU974B,GAErC,SAAS874B,IACL,OAAkB,OAAX974B,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAmBA,OAtBAkmD,IAAU084B,EAAW974B,GAIrBipS,IAAW,CACPjB,GAAS,OACV8zmB,EAAUjy7B,UAAW,YAAQ,GAChCo/U,IAAW,CACPjB,GAAS,KACV8zmB,EAAUjy7B,UAAW,aAAS,GACjCo/U,IAAW,CACPjB,GAAS,aACV8zmB,EAAUjy7B,UAAW,kBAAc,GACtCo/U,IAAW,CACPjB,GAAS,WACV8zmB,EAAUjy7B,UAAW,kBAAc,GACtCo/U,IAAW,CACPjB,GAAS,WACV8zmB,EAAUjy7B,UAAW,iBAAa,GACrCo/U,IAAW,CACPjB,GAAS,IACV8zmB,EAAUjy7B,UAAW,eAAW,GAC5Biy7B,CACX,CAxB+B,CAwB7BzumB,IAOE0umB,IAA+B,SAAU/74B,GAEzC,SAAS+74B,IACL,OAAkB,OAAX/74B,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAUA,OAbAkmD,IAAU284B,EAAe/74B,GAIzBipS,IAAW,CACPjB,GAAS,KACV+zmB,EAAcly7B,UAAW,aAAS,GACrCo/U,IAAW,CACPjB,GAAS,IACV+zmB,EAAcly7B,UAAW,aAAS,GACrCo/U,IAAW,CACPjB,GAAS,KACV+zmB,EAAcly7B,UAAW,iBAAa,GAClCky7B,CACX,CAfmC,CAejC1umB,IAOE2umB,IAA4B,SAAUh84B,GAEtC,SAASg84B,IACL,OAAkB,OAAXh84B,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAaA,OAhBAkmD,IAAU484B,EAAYh84B,GAItBipS,IAAW,CACPjB,GAAS,IACVg0mB,EAAWny7B,UAAW,SAAK,GAC9Bo/U,IAAW,CACPjB,GAAS,IACVg0mB,EAAWny7B,UAAW,SAAK,GAC9Bo/U,IAAW,CACPjB,GAAS,IACVg0mB,EAAWny7B,UAAW,aAAS,GAClCo/U,IAAW,CACPjB,GAAS,IACVg0mB,EAAWny7B,UAAW,cAAU,GAC5Bmy7B,CACX,CAlBgC,CAkB9B3umB,IAOE4umB,IAA8B,SAAUj84B,GAExC,SAASi84B,IACL,OAAkB,OAAXj84B,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAOA,OAVAkmD,IAAU684B,EAAcj84B,GAIxBipS,IAAW,CACPjB,GAAS,IACVi0mB,EAAapy7B,UAAW,SAAK,GAChCo/U,IAAW,CACPjB,GAAS,IACVi0mB,EAAapy7B,UAAW,SAAK,GACzBoy7B,CACX,CAZkC,CAYhC5umB,IAcEjtD,IAAyB,SAAUpgP,GAOnC,SAASogP,EAAQpoR,EAAS3J,GACtB,OAAO2xC,EAAOnnD,KAAKK,KAAM8e,EAAS3J,IAAYnV,IAClD,CAm8BA,OA38BAkmD,IAAUghP,EAASpgP,GAcnBogP,EAAQv2R,UAAUmoV,UAAY,WAC1B94V,KAAKsrV,wBAAyB,EAC9BtrV,KAAKgj8B,sBACAhj8B,KAAKij8B,UACNjj8B,KAAKkj8B,YAETlj8B,KAAKmj8B,sBACT,EACAj8pB,EAAQv2R,UAAUqy7B,oBAAsB,WACpChj8B,KAAKsgU,SAAW,IAAIo8nB,IAAY187B,KAAKmV,QAAQghB,IAC7Cn2B,KAAKoj8B,WCrKN,SAA8Bl2hB,GACjC,IAAI/ma,EACJ,OAAQ+ma,GACJ,IAAK,eACL,IAAK,eACD/ma,EAAQ,CACJk97B,YAAa,UACbC,iBAAkB,UAClBC,kBAAmB,UACnBC,kBAAmB,WAEvB,MACJ,IAAK,eACL,IAAK,aACL,IAAK,gBACDr97B,EAAQ,CACJk97B,YAAa,UACbC,iBAAkB,UAClBC,kBAAmB,UACnBC,kBAAmB,WAEvB,MACJ,IAAK,aACDr97B,EAAQ,CACJk97B,YAAa,UACbC,iBAAkB,sBAClBC,kBAAmB,2BACnBC,kBAAmB,4BAEvB,MACJ,IAAK,WACDr97B,EAAQ,CACJk97B,YAAa,UACbC,iBAAkB,UAClBC,kBAAmB,UACnBC,kBAAmB,WAEvB,MACJ,IAAK,eACDr97B,EAAQ,CACJk97B,YAAa,UACbC,iBAAkB,UAClBC,kBAAmB,UACnBC,kBAAmB,WAEvB,MACJ,IAAK,aACDr97B,EAAQ,CACJk97B,YAAa,UACbC,iBAAkB,UAClBC,kBAAmB,UACnBC,kBAAmB,WAEvB,MACJ,IAAK,iBACDr97B,EAAQ,CACJk97B,YAAa,UACbC,iBAAkB,UAClBC,kBAAmB,UACnBC,kBAAmB,WAEvB,MACJ,IAAK,SACDr97B,EAAQ,CACJk97B,YAAa,UACbC,iBAAkB,UAClBC,kBAAmB,UACnBC,kBAAmB,WAEvB,MACJ,IAAK,aACDr97B,EAAQ,CACJk97B,YAAa,UACbC,iBAAkB,UAClBC,kBAAmB,UACnBC,kBAAmB,WAEvB,MACJ,QACIr97B,EAAQ,CACJk97B,YAAa,UACbC,iBAAkB,UAClBC,kBAAmB,UACnBC,kBAAmB,WAI/B,OAAOr97B,CACX,CD6E0Bs97B,CAAqBzj8B,KAAKkta,OAC5Clta,KAAK0j8B,cAAgB,GACrB1j8B,KAAKg3H,QAAU,EACfh3H,KAAK2j8B,iBAAmB,EACxB3j8B,KAAK4j8B,WAAa,GAClB5j8B,KAAK6gtB,SAAU,EACf7gtB,KAAK6j8B,YAAc,EACvB,EACA38pB,EAAQv2R,UAAUuy7B,UAAY,WAC1B,IAAIY,EAAY5y6B,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,QACtD4t6B,EAAiB7y6B,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,mBAC3Dn2B,KAAKgk8B,gBACLv2lB,GAAoBztW,KAAKmV,QAAQghB,GAAbn2B,kCAEpB8j8B,GAAaA,EAAUtv6B,YACvBrB,GAAO2w6B,GAEPC,GAAkBA,EAAevv6B,YACjCrB,GAAO4w6B,EAEf,EAIA78pB,EAAQv2R,UAAUyJ,OAAS,WAEvB,GADApa,KAAKik8B,WAAY,EACZjk8B,KAAKujC,SAUNvjC,KAAKkk8B,mBACLlk8B,KAAKmk8B,eAAenk8B,KAAK4h8B,WAAY5h8B,KAAK23B,cAX1B,CAChB33B,KAAKilD,WAAWjlD,KAAK6gtB,SACrB,IAAIujP,EAAW,CACXtj3B,QAAQ,EAAOp8E,KAAM,gBAAiBwnb,QAASlsb,MAEnDA,KAAKsgS,QAAQ,gBAAiB8jqB,GAC9B,IAAIC,EAAark8B,KAAKsk8B,qBAAqBtk8B,KAAK4h8B,WAAY5h8B,KAAK23B,UACjE33B,KAAKuk8B,WAAWF,EAAWhmO,SAAUgmO,EAAWt02B,QAAS/vF,KAAKwk8B,WAClE,CAKAxk8B,KAAKsgS,QAAQ,SAAU,CAAE4rJ,QAASlsb,OAClC,IAAImV,EAAU+b,SAASg8T,eAAe,oBAClC/3U,GACAge,GAAOhe,GAEXnV,KAAKsrV,wBAAyB,CAClC,EACApkD,EAAQv2R,UAAUwy7B,qBAAuB,WAErC,GADAnj8B,KAAKyk8B,aAAe,IACfzk8B,KAAKujC,UAAYvjC,KAAK43J,OAAQ,CAE3B53J,KAAKwsf,WACLxsf,KAAKmV,QAAQ6f,aAAa,MAAO,OAErC,IAAI8u6B,EAAY9j8B,KAAKsgU,SAASy8nB,UAAU,CAAE5m6B,GAAIn2B,KAAKmV,QAAQghB,GAAK,SAChEn2B,KAAKmV,QAAQuc,YAAYoy6B,GAEzB,IAAIY,EAAexz6B,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,UACxDuu6B,IACDA,EAAe1k8B,KAAKsgU,SAAS29nB,YAAY,CAAE9n6B,GAAIn2B,KAAKmV,QAAQghB,GAAK,YACpDnB,aAAa,YAAa,kBAE3C8u6B,EAAUpy6B,YAAYgz6B,GACtB,IAAIC,EAAc3k8B,KAAKsgU,SAAS0ve,SAAS,CACrC,GAAMhwyB,KAAKmV,QAAQghB,GAAK,QAAS,eAAgBn2B,KAAKwnQ,OAAOhpP,MAC7D,KAAQxe,KAAKwmF,MAAQxmF,KAAKoj8B,WAAWC,YAAa,QAA4B,iBAAfrj8B,KAAKkta,OAA2C,aAAflta,KAAKkta,OAAuC,eAAflta,KAAKkta,OAAyC,mBAAflta,KAAKkta,OAAgD,MAAjBlta,KAAKsuI,QAC7LtuI,KAAKsuI,QAAT,EACJ,OAAUtuI,KAAKwnQ,OAAO/wI,QAE1Biu0B,EAAahz6B,YAAYiz6B,EAC7B,CACJ,EACAz9pB,EAAQv2R,UAAU4z7B,WAAa,SAAUlmO,EAAUtuoB,EAAS15E,GACxD,GAAIrW,KAAK4k8B,OAAOxh8B,QAAU,EACtB,OAAO,KAQX,IANA,IAAIyh8B,EACAj66B,EAAQ,EACRk66B,EAAc9k8B,KAAKsgU,SAAS29nB,YAAY,CAAE9n6B,GAAIn2B,KAAKmV,QAAQghB,GAAK,qBAChEuu6B,EAAe19pB,IAAWhnS,KAAKmV,QAAQghB,GAAK,UAC5Cjc,GAAMla,KAAKwsf,UAAaxsf,KAAK+k8B,YAAYvm7B,MAASnI,EAAO,EACzC,EAAfrW,KAAKgl8B,QAAgB3u7B,EAAO,IAAO05E,EAAU/vF,KAAKil8B,aAAe,GAC7D317B,EAAK,EAAGgmC,EAAKt1C,KAAK4k8B,OAAQt17B,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CACrD,IAAIk8H,EAAQl2F,EAAGhmC,GACf,GAAc,SAAVk8H,EAAkB,CAElB,GADAq5zB,EAAc,IAAInC,IAAW1i8B,KAAKmV,QAAQghB,GAAK,cAAgBvL,EAAO5qB,KAAKuljB,QAAQ36hB,GAAQ,EAAG,UAAW,EAAG,MACxG5qB,KAAK6j8B,YAAYj56B,GAAQ,CACzB,IAAIosG,EAAU,EACVh3H,KAAK0uL,OAAO/jL,QAAQ,QAAU,IAC9BqsH,EAAUh3H,KAAK0uL,OAAO/7J,MAAM,YAAYvvB,OAASwnB,GAErDk66B,EAAYpz6B,YAAYww6B,IAAW,IAAIS,IAAgBzo7B,EAAGla,KAAK6j8B,YAAYj56B,GAAS5qB,KAAKg3H,SAAWqnmB,EAAWr+tB,KAAKil8B,aAAeju0B,IAAWwU,EAAO,IAAIk2zB,IAAKrr7B,EAAMA,GAAO,GAAIwu7B,EAAa,MAChM,CACAj66B,GACJ,CACJ,CACA856B,EAAahz6B,YAAYoz6B,EAC7B,EACA59pB,EAAQv2R,UAAU2z7B,qBAAuB,SAAU1C,EAAYjq6B,GAC3D,IAMI+8P,EANAwwqB,EAAal+pB,IAAWhnS,KAAKmV,QAAQghB,IACrCgv6B,EAAgB,IAAIxC,IAAgB,EAAG,GACvCyC,EAAc,IAAIzC,IAAgB,EAAG,GACrCmB,EAAY98pB,IAAWhnS,KAAKmV,QAAQghB,GAAK,QACzCuu6B,EAAe19pB,IAAWhnS,KAAKmV,QAAQghB,GAAK,UAC5Cwu6B,EAAc39pB,IAAWhnS,KAAKmV,QAAQghB,GAAK,SAE3C+zrB,GAAQ,EACRr6D,GAAS,EACTwuE,GAAW,EACXnktB,EAAI,EACJC,EAAI,EAuBR,GAtBoB,KAAhBna,KAAK0uL,SACL1uL,KAAK+k8B,YAAYn8yB,QAAU5oJ,KAAKql8B,SAEhCrl8B,KAAK+U,QAAQ3R,OAAS,GACtBsxR,EAAO10R,KAAKsl8B,sBAAsB1D,EAAY5h8B,KAAK23B,SAASzd,EAAGla,KAAK23B,SAASxd,GAC7E+vsB,GAAQ,IAGRx1b,EAAO10R,KAAKul8B,gBAAgB3D,EAAYjq6B,EAAUwt6B,EAAeC,GAC5Dpl8B,KAAKwl8B,UAONtr7B,GADA21oB,EAAUn7X,EAAKx6Q,EAAKyd,EAASzd,EAAIla,KAAKgoyB,WAAW9txB,GACnC,EAAIla,KAAKil8B,aACnBjl8B,KAAKyl8B,iBACL/wqB,EAAKx6Q,GAAK21oB,EAAS7vpB,KAAK2j8B,kBAAqB,EAAI3j8B,KAAK2j8B,oBAP1DtlO,IADAnU,EAASx1b,EAAKv6Q,EAAKwd,EAASxd,EAAIna,KAAKgoyB,WAAW7txB,GAEhDA,EAAK+vsB,EAAQ,EAAIlqtB,KAAKil8B,eAUV,KAAhBjl8B,KAAK0uL,OAAe,CACpB,IAAIg3wB,EAAc,EACd1u0B,EAAU,EACV2u0B,EAAa3l8B,KAAK4l8B,OAAS5l8B,KAAK6l8B,YAAc7l8B,KAAK0uL,OACvD,GAAI1uL,KAAK4l8B,QAAkC,kBAAhBD,IAA6BA,EAAWh77B,QAAQ,MAAQ,GAAKg77B,EAAWh77B,QAAQ,MAAQ,GAE/G+67B,EADgBC,EAAWhz6B,MAAM,QACTvvB,OAExBpD,KAAK0uL,OAAO/jL,QAAQ,QAAU,IAC9BqsH,EAAU,GAAKh3H,KAAK0uL,OAAO/7J,MAAM,YAAYvvB,OAAS,IAE1D,IAAIo8zB,EAAaw0F,IAAYh05B,KAAK4l8B,OAAS5l8B,KAAK6l8B,YAAc7l8B,KAAK0uL,OAAQ1uL,KAAK8z5B,WAAWlrwB,OACtF5oJ,KAAKql8B,QAAUK,GAAgBrnO,EAAWr+tB,KAAKil8B,aAAe,IAAMjl8B,KAAK4l8B,OAAS,EAAI5u0B,GAEvF/f,EAAY,MADc,EAAfj3G,KAAKgl8B,SAAiBn1S,GAAWq6D,GAAUmU,EAA+B,EAApBr+tB,KAAKil8B,eACzC,IAAMzlI,EACnC,MAAQ9qiB,EAAKl2Q,OAAUqxoB,GAAWq6D,GAAUmU,EAA+B,EAApBr+tB,KAAKil8B,cAAoC,EAAfjl8B,KAAKgl8B,SACtF,IAAMxlI,EACNsmI,EAAgB9l8B,KAAKsgU,SAAS0ve,SAAS,CACvC,GAAMhwyB,KAAKmV,QAAQghB,GAAK,eAAgB,eAAgB,EACxD,KAAQ,KAAM,QAAW,GAAK,OAAUn2B,KAAKoj8B,WAAWI,kBAAmB,EAAKvs1B,IAEpFyt1B,EAAahz6B,YAAYo06B,EAC7B,CACA,IAAI5v5B,EAAQl2C,KAAKwnQ,OAAOhpP,MAAQ,EAC5Bun7B,EAAY,IAAIlE,IAAK3r5B,EAAQh8B,EAAGg8B,EAAQ/7B,EAAGu6Q,EAAKl2Q,MAAQ03B,EAAOw+O,EAAK9rI,OAAS1yG,GAkBjF,GAjBAwu5B,EAAa1v6B,aAAa,UAAW,MACjCh1B,KAAK22iB,iBAAoB32iB,KAAK6gtB,SAAY7gtB,KAAKgm8B,UAI/Chm8B,KAAKim8B,UAAUf,EAAYxwqB,EAAKx6Q,EAAGw6Q,EAAKv6Q,GAHxCna,KAAKkm8B,kBAAkBhB,EAAYxwqB,GAMvCovqB,EAAU9u6B,aAAa,UAAW0/P,EAAK9rI,OAAS5oJ,KAAKwnQ,OAAOhpP,OAAaxe,KAAKwl8B,SAAa,EAAIxl8B,KAAKil8B,cAAgB,GAAGnu7B,YACvHgt7B,EAAU9u6B,aAAa,SAAU0/P,EAAKl2Q,MAAQxe,KAAKwnQ,OAAOhpP,OAAYxe,KAAKwl8B,SAAiBxl8B,KAAKil8B,aAAT,GAAyB,GAAGnu7B,YACpHgt7B,EAAU9u6B,aAAa,UAAW,KAC7B+2S,GAAkB/rU,KAAKq4iB,oBACxB6xK,EAAQlqtB,KAAKq4iB,iBAAiB1tiB,QAAQ,QAAU,EAChD0ztB,EAAWr+tB,KAAKq4iB,iBAAiB1tiB,QAAQ,WAAa,EACtDklpB,EAAS7vpB,KAAKq4iB,iBAAiB1tiB,QAAQ,SAAW,GAEtDg67B,EAAY3v6B,aAAa,IDtR1B,SAAuBmx6B,EAAIC,EAAI1xqB,EAAMywqB,EAAeF,EAAc/2yB,EAAKymI,EAAQhxJ,EAAM0i0B,EAAMC,EAAM9gmB,QAChF,IAAhBA,IAA0BA,EAAc,IAC5C,IAAIvuP,EAAY,GACZwwP,EAAS/yE,EAAKx6Q,EACdwtV,EAAShzE,EAAKv6Q,EACdqE,EAAQk2Q,EAAKx6Q,EAAIw6Q,EAAKl2Q,MACtBoqI,EAAS8rI,EAAKv6Q,EAAIu6Q,EAAK9rI,OAgF3B,OA/EIsF,GAKAj3C,GAJAA,EAAYA,EAAU79F,OAAO,KAAaquV,EAAU,KAAOC,EAAS0+lB,GAAM,MAAQ3+lB,EAAS,IACrFC,EAAS,KAAOD,EAAS0+lB,GAAM,IAAMz+lB,EADd,QAEXlpV,EAAQ2n7B,GAAM,IAAOz+lB,EAAU,MAAQlpV,EAAQ,IAC3DkpV,EAAS,IAAOlpV,EAAS,KAAOkpV,EAAS0+lB,KACzBht7B,OAAO,MAAcoF,EAAS,KAAOoqI,EAASw9yB,GAAM,MAAQ5n7B,EAAQ,IACnFoqI,EAAU,KAAOpqI,EAAQ2n7B,GAAM,IAAOv9yB,GACxB,IAAjBq8yB,IAIQhu1B,EAHY,mBAAhBuuP,EACK2/lB,EAAcjr7B,EAAI+q7B,EAAgBzm7B,EAAQ,GAC3Cy4F,EAAYA,EAAU79F,OAAO,OAAc+r7B,EAAcjr7B,EAAI+q7B,GAAgB,IAAOr8yB,IAC9DxvI,OAAO,OAAcit7B,EAAOpB,GAAgB,KAAOr8yB,EAASq8yB,GAArD,MACTE,EAAcjr7B,EAAK,IAAM0uI,IAG7C3xC,EAAYA,EAAU79F,OAAO,MAAc+r7B,EAAcjr7B,EAAK,IAAO0uI,IAC/CxvI,OAAO,OAAcit7B,EAAOpB,GAAgB,KAAOr8yB,EAASq8yB,GAArD,OACTE,EAAcjr7B,EAAI+q7B,GAAgB,IAAMr8yB,IAIhE3xC,EAAYA,EAAU79F,OAAO,OAAc+r7B,EAAcjr7B,EAAI+q7B,GAAgB,IAAOr8yB,IAC9DxvI,OAAO,MAAcit7B,EAAQ,KAAOz9yB,EAASq8yB,GAAtC,OACTE,EAAcjr7B,EAAI+q7B,GAAgB,IAAMr8yB,IAIhE3xC,EADCku1B,EAAcjr7B,EAAI+q7B,EAAgBx9lB,GAKd,IAAjBw9lB,EAJQhu1B,EAAU79F,OAAO,OAAcquV,EAAS0+lB,GAAM,IAAMv9yB,EAAS,MAAQ6+M,EAAS,IACpF7+M,EAAS,IAAO6+M,EAAU,KAAO7+M,EAASw9yB,GAAM,MAQtCnv1B,EAAU79F,OAAO,MAAcquV,EAAU,KAAO7+M,EAASw9yB,GAAM,OAI9EzxqB,EAOL19K,GAFAA,GADAA,GADAA,GAFAA,EAAYA,EAAU79F,OAAO,KAAaquV,EAAU,KAAOC,EAAS0+lB,GAAM,MAAQ3+lB,EAAS,IACpFC,EAAU,KAAOD,EAAS0+lB,GAAM,IAAOz+lB,EADjB,OACyCy9lB,EAAcjr7B,EAAI+q7B,GAAgB,IAAOv9lB,IACzFtuV,OAAO,MAAcit7B,EAAQ,IAAOlB,EAAchr7B,IAClDf,OAAO,OAAc+r7B,EAAcjr7B,EAAI+q7B,GAAgB,IAAOv9lB,IAC9DtuV,OAAO,OAAcoF,EAAQ2n7B,GAAM,IAAOz+lB,EAC1D,MAASlpV,EAAS,IAAOkpV,EAAU,IAAOlpV,EAAS,KAAOkpV,EAAS0+lB,KACnDht7B,OAAO,MAAcoF,EAAS,KAAOoqI,EAASw9yB,GAAM,MAAS5n7B,EAAS,IACrFoqI,EAAU,KAAOpqI,EAAQ2n7B,GAAM,IAAOv9yB,EADhB,OAEX6+M,EAAS0+lB,GAAM,IAAOv9yB,EAAU,MAAS6+M,EAAU,IAC9D7+M,EAAU,IAAO6+M,EAAU,KAAO7+M,EAASw9yB,GAAM,MAEnDzi0B,GAGL1sB,GAFAA,EAAYA,EAAU79F,OAAO,KAAaquV,EAAU,KAAOC,EAAS0+lB,GAAM,MAAQ3+lB,EAAS,IACpFC,EAAU,KAAOD,EAAS0+lB,GAAM,IAAOz+lB,IACxBtuV,OAAO,OAAcoF,EAAQ2n7B,GAAM,IAAOz+lB,EAAU,MAASlpV,EAAS,IACrFkpV,EAAU,IAAOlpV,EAAS,KAAOkpV,EAAS0+lB,GADpB,MACwC5n7B,EAAS,KAAO2m7B,EAAchr7B,EAAI8q7B,IACvGhu1B,EAA6B,mBAAhBuuP,EAAoCvuP,EAAU79F,OAAO,OAAcoF,EAAQym7B,GAAgB,KAAOqB,EAAOrB,IAClHhu1B,EAAU79F,OAAO,OAAcoF,EAAQym7B,GAAgB,IAAOqB,GAIlErv1B,GADAA,GAFAA,EAA6B,mBAAhBuuP,EAAoCvuP,EAAU79F,OAAO,MAAcoF,EAAS,IAAO2m7B,EAAchr7B,GAC1G88F,EAAU79F,OAAO,MAAcoF,EAAS,KAAO2m7B,EAAchr7B,EAAI8q7B,KAC/C7r7B,OAAO,MAAcoF,EAAS,KAAOoqI,EAASw9yB,GAAM,MAAQ5n7B,EAAQ,IAAOoqI,EAAU,KAAOpqI,EAAQ2n7B,GAAM,IAAOv9yB,IACjHxvI,OAAO,OAAcquV,EAAS0+lB,GAAM,IAAOv9yB,EAAU,MAAQ6+M,EAAS,IACrF7+M,EAAU,IAAO6+M,EAAU,KAAO7+M,EAASw9yB,GAAM,QAGxDnv1B,EAAYA,EAAU79F,OAAO,MAAaquV,EAAS0+lB,GAAM,IAAOz+lB,EAAU,MAASD,EAAU,IACtFC,EAAU,IAAOD,EAAU,KAAOC,EAAS0+lB,GADrB,MACyC3+lB,EAAU,KAAO09lB,EAAchr7B,EAAI8q7B,IACzGhu1B,EAA6B,mBAAhBuuP,EAAoCvuP,EAAU79F,OAAO,OAAcquV,EAASw9lB,GAAgB,KAAOqB,EAAOrB,IACnHhu1B,EAAU79F,OAAO,OAAcquV,EAASw9lB,GAAgB,IAAOqB,GAKnErv1B,GAFAA,GAFAA,EAA6B,mBAAhBuuP,EAAoCvuP,EAAU79F,OAAO,MAAcquV,EAAU,IAAO09lB,EAAchr7B,GAC3G88F,EAAU79F,OAAO,MAAcquV,EAAU,KAAO09lB,EAAchr7B,EAAI8q7B,KAChD7r7B,OAAO,MAAcquV,EAAU,KAAO7+M,EAASw9yB,GAAM,MAAQ3+lB,EAAS,IACrF7+M,EAAU,KAAO6+M,EAAS0+lB,GAAM,IAAOv9yB,IACxBxvI,OAAO,OAAcoF,EAAQ2n7B,GAAM,IAAOv9yB,EAAU,MAAQpqI,EAAQ,IACnFoqI,EAAU,IAAOpqI,EAAS,KAAOoqI,EAASw9yB,GADpB,MAEX5n7B,EAAS,KAAOkpV,EAAS0+lB,GAAM,MAAQ5n7B,EAAQ,IAC1DkpV,EAAU,KAAOlpV,EAAQ2n7B,GAAM,IAAOz+lB,EAAU,OAEpDzwP,CACX,CC+LsCsv1B,CAAcvm8B,KAAK2xyB,GAAI3xyB,KAAK4xyB,GAAIm0J,EAAWZ,EAAenl8B,KAAKil8B,aAAc/6O,EAAOmU,EAAUxuE,EAAQu1S,EAAYlr7B,EAAGkr7B,EAAYjr7B,EAAGna,KAAKwlW,cACnKxlW,KAAKwm8B,cAA+B,eAAfxm8B,KAAKkta,MAAwB,CAElD,IAAIu5hB,EAAWzm8B,KAAKmV,QAAQghB,GAAK,UACd,aAAfn2B,KAAKkta,OAAuC,iBAAflta,KAAKkta,OAChB,eAAflta,KAAKkta,OAAyC,mBAAflta,KAAKkta,MACvCy3hB,EAAY3v6B,aAAa,aAAc,mEAGvC2v6B,EAAY3v6B,aAAa,SAAUiyT,GAAQh0D,KAAO,GAAK,QAAUwzqB,EAAW,KAEhF,IAAIC,EAAS,eAAiBD,EAAW,sEACzCC,GAAU,yGACVA,GAAU,oGACV,IAAIC,EAAa3m8B,KAAKsgU,SAASu9nB,aAC/B8I,EAAW3x6B,aAAa,KAAMh1B,KAAKmV,QAAQghB,GAAK,0BAChDuu6B,EAAahz6B,YAAYi16B,GACzBA,EAAWz95B,UAAYw95B,CAC3B,CACA,IAAInjI,EAA6B,WAAfvj0B,KAAKkta,MAAqB,UAA2B,eAAflta,KAAKkta,MAAyB,UAAYlta,KAAKwnQ,OAAO/wI,MAU9G,OATAku0B,EAAY3v6B,aAAa,SAAUuuyB,GAC9Bx3f,GAAkB/rU,KAAKwnQ,OAAO03rB,YAC/ByF,EAAY3v6B,aAAa,mBAAoBh1B,KAAKwnQ,OAAO03rB,WAE7Dl/7B,KAAK4m8B,WAAW,IAAIjE,IAAgBzo7B,EAAGC,GAAIkktB,GAAWxuE,IAAWq6D,IAAUmU,GACvEr+tB,KAAK6m8B,SACL7m8B,KAAKwl8B,UAAYxl8B,KAAKwl8B,SACtBxl8B,KAAK6m8B,QAAS,GAEX,IAAI/E,IAAKzjO,GAAWxuE,IAAWq6D,IAAUmU,EACpD,EACAn3b,EAAQv2R,UAAUi27B,WAAa,SAAUtgmB,EAAO+3X,EAAUtuoB,GACtD,IAAI56E,EAAU+b,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,SACpDkosB,GACAlptB,EAAQ6f,aAAa,YAAa,eAAiBh1B,KAAKil8B,aAAe,KAEvEl12B,GACA56E,EAAQ6f,aAAa,YAAa,aAAeh1B,KAAKil8B,aAAe,MAE7E,EACA/9pB,EAAQv2R,UAAUm27B,kBAAoB,WAClC9m8B,KAAK0j8B,cAAgB,GACgD,KAAjE1j8B,KAAK0uL,OAAOr+K,QAAQ,OAAQ,IAAIA,QAAQ,SAAU,IAAIoiB,SACtDzyB,KAAK0j8B,cAAgB1j8B,KAAK0j8B,cAActq7B,OAAOpZ,KAAK0uL,SAExD1uL,KAAK0j8B,cAAgB1j8B,KAAK0j8B,cAActq7B,OAAOpZ,KAAK+U,QACxD,EAEAmyR,EAAQv2R,UAAUs0C,WAAa,SAAU0qqB,GACrC,IAGI94lB,EAIAkw0B,EACAx1Q,EAEAx7jB,EACAix0B,EAXAp+yB,EAAS,EACTpqI,EAAQ,EACRyo7B,EAAW,EAGX1ie,EAAO96Y,GAAO,CAAC,EAAGzpF,KAAK8z5B,UAAW,MAAM,GAAS,WACjD4wC,EAAe19pB,IAAWhnS,KAAKmV,QAAQghB,GAAK,UAG5C+w6B,EAAa,GAGjBln8B,KAAK8m8B,oBACL9m8B,KAAK4l8B,QAAS,EACd,IACI1s1B,EADqD,QAAtChoF,SAASzd,KAAK6e,aAAa,SAChBtyB,KAAKwsf,UAAY,MAAQ,QACvDxsf,KAAKmn8B,UAAYnn8B,KAAK4h8B,WAAW1n7B,EAAIla,KAAK23B,SAASzd,EACnDla,KAAKon8B,WAAcpn8B,KAAK4h8B,WAAW1n7B,EAAIla,KAAK4h8B,WAAWpj7B,MAASxe,KAAKmn8B,UACrE,IAAIxsb,EAAgB36gB,KAAK0uL,OAAOr+K,QAAQ,OAAQ,IAAIA,QAAQ,SAAU,IAAIoiB,OACtE406B,EAAYrn8B,KAAK0uL,OAAO/jL,QAAQ,QAAU,GAAK3K,KAAK0uL,OAAO/jL,QAAQ,SAAW,EAC9E287B,EAActzC,IAAYh05B,KAAK0j8B,cAAc,GAAIn/d,GAAM/ld,MAAS,EAAIxe,KAAKgl8B,QAAWhl8B,KAAKil8B,aACzFsC,EAAevn8B,KAAK23B,SAASzd,EAAIot7B,EAAetn8B,KAAK23B,SAASzd,EAC9Dst7B,EAAgBxn8B,KAAK4h8B,WAAW1n7B,EAAIla,KAAK4h8B,WAAWpj7B,MAAUxe,KAAK23B,SAASzd,EAAIot7B,EAEhFG,EAAiC,KAAlB9sb,EAAwB36gB,KAAKql8B,QAAU,EACtDqC,GAAQ,EACRC,GAAW,EACf3n8B,KAAK6j8B,YAAc,GACnB,IAGI+D,EAHApD,EAAcxk8B,KAAK4k8B,OAAOxh8B,OAAS,EAAK,GAAK,EAC7Cyk8B,EAAiB7n8B,KAAK4k8B,OAAOxh8B,OAAS,EAAK,EAAI,EAI/C+qI,EAAa,SACb25zB,EAAa9n8B,KAAKoj8B,WAAWG,kBAC7B/C,EAAM,GAAK9v5B,WAHA,QAGyBA,WAAW6zb,EAAKlud,MACpD+sR,EAAe,GACdusb,IAAY3vtB,KAAKij8B,WAClB334B,IAActrD,KAAKmV,QAAQghB,GAAK,SAChCm1B,IAActrD,KAAKmV,QAAQghB,GAAK,gBAChCm1B,IAActrD,KAAKmV,QAAQghB,GAAK,oBAChCm1B,IAActrD,KAAKmV,QAAQghB,GAAK,2BAOpC,IALA,IAAIrX,EAAU,IAAIkj7B,IAAWhi8B,KAAKmV,QAAQghB,GAAK,QAAwB,EAAfn2B,KAAKgl8B,QAA6B,EAAfhl8B,KAAKql8B,QAA6B,EAAfrl8B,KAAKg3H,SAAgC,IAAjBh3H,KAAKql8B,QAAgB,EAAI,GAAKns1B,EAAQ,IACpJ28K,ED1GL,SAAqB/2Q,EAASyld,EAAM9tW,EAAOtuF,GAC9C,IAAIu1Q,EACA4iB,EAAW,IAAIo8nB,IAAY,IAC/Bh/oB,EAAgB,CACZ,GAAM5+R,EAAQqX,GACd,EAAKrX,EAAQ5E,EACb,EAAK4E,EAAQ3E,EACb,KAAQs8G,EACR,YAAa8tW,EAAKlud,KAClB,aAAckud,EAAKiyG,UACnB,cAAejyG,EAAK/hB,WACpB,cAAe+hB,EAAKp2V,WACpB,cAAervH,EAAQo6F,OACvB,UAAap6F,EAAQy5C,UACrB,QAAWgsa,EAAKj2V,QAChB,oBAAqBxvH,EAAQmj7B,UAEjC,IAAIhi6B,EAA+B,kBAAjBnhB,EAAQmhB,KAAoBnhB,EAAQmhB,KAAOnhB,EAAQmhB,KAAK,GACtEuh6B,EAAalhoB,EAASm9nB,WAAW//oB,EAAez9Q,GAOpD,OANAuh6B,EAAWr77B,MAAMq8c,WAAa+hB,EAAK/hB,WACnCg/e,EAAWr77B,MAAMqwkB,UAAYjyG,EAAKiyG,UAClCgrX,EAAWr77B,MAAM84S,SAAWslL,EAAKlud,KACjCmr7B,EAAWr77B,MAAMgoI,WAAao2V,EAAKp2V,WACnCqzzB,EAAWr77B,MAAMswH,MAAQ8tW,EAAK9tW,MAC9BtuF,EAAOzW,YAAY8v6B,GACZA,CACX,CCgF4Brhd,CAAYrhe,EAASyld,EAAM,KAAMmge,GACjDqD,EAA8C,IAA9B/n8B,KAAK0j8B,cAActg8B,QAAgBpD,KAAK0j8B,cAAc,GAAG/47B,QAAQ,WAAa,EAC9F2oa,EAA2B,KAAhBtza,KAAK0uL,OAChBr4K,EAAOi9Z,GAAY+zhB,EAAY,GAAK,GAC/Bvm7B,EAAI,EAAGkn7B,EAAeho8B,KAAK0j8B,cAActg8B,OAAQ0d,EAAIkn7B,EAAcln7B,IAiBxE,GAhBAywqB,EAAiBvxrB,KAAK0j8B,cAAc5i7B,GAAGzQ,QAAQ,gBAAiB,OAC3DA,QAAQ,kBAAmB,QAC3BsiB,MAAM,YACP3yB,KAAKio8B,YAAcjo8B,KAAK0uL,SAAW1uL,KAAK0j8B,cAAc5i7B,KAAgD,IAA1C9gB,KAAK0j8B,cAAc5i7B,GAAGnW,QAAQ,SAC1Fi97B,EAAkBhk8B,KAAKmgB,MAAM/jB,KAAKmn8B,UAAYnn8B,KAAKon8B,WAAcpn8B,KAAKmn8B,UAAY9w7B,EAASrW,KAAKon8B,WAAa/w7B,GAC7Gk7qB,EAAiBvxrB,KAAK0j8B,cAAc5i7B,GAAG3J,MAAM,IAAIR,OAAO,OAASix7B,EAAkB,IAAK,OAElF,IAAN9m7B,IAAYin7B,GAAiB/n8B,KAAKio8B,aACjCjo8B,KAAKmn8B,UAAYG,GAAeC,KAChCvn8B,KAAKon8B,WAAaE,GAAeE,KAClCI,EAAkBhk8B,KAAKmgB,MAAM/jB,KAAKmn8B,UAAYnn8B,KAAKon8B,WAAcpn8B,KAAKmn8B,UAAY9w7B,EAASrW,KAAKon8B,WAAa/w7B,GAE7Gk7qB,GAD2B,KAAlB52K,EAAuBA,EAAgB36gB,KAAK0j8B,cAAc5i7B,IAC3C3J,MAAM,IAAIR,OAAO,OAASix7B,EAAkB,IAAK,MACzE5n8B,KAAK6l8B,YAAcwB,EAAY,MAAQ91Q,EAAevrrB,KAAK,QAAU,OAASurrB,EAAevrrB,KAAK,QAClGhG,KAAK4l8B,OAASr0Q,EAAenurB,OAAS,GAEhB,KAAtBmurB,EAAe,GAAnB,CAGW,IAANzwqB,GAA+B,KAAlB65f,GACd36gB,KAAK6j8B,YAAYz37B,MAAwB,KAAlBuugB,EAAwB36gB,KAAKql8B,QAAW,GAAKvm7B,EAAQ3E,EAAIyuI,GAEpF,IAAK,IAAIz8I,EAAI,EAAGwjD,EAAM4hoB,EAAenurB,OAAQ+I,EAAIwjD,EAAKxjD,IAAK,CACvD0qH,EAAQ06jB,EAAeplrB,GAAGkE,QAAQ,OAAQ,WAAWA,QAAQ,SAAU,YAAYA,QAAQ,KAAOrQ,KAAKwsf,UAAa,mBAAqB,mBACpI75d,MAAM,QACP3yB,KAAKwsf,WAAa31X,EAAMzzH,OAAS,GAAKmurB,EAAeplrB,GAAGgL,MAAM,QAC9D0/G,EAAM,GAAKA,EAAM,GAAGpkG,OACpBokG,EAAMrqH,WAEVy67B,EAAW,EACXU,GAAW,EACX/+yB,GAAU43yB,EACV,IAAK,IAAIxw7B,EAAI,EAAG02hB,EAAQ7va,EAAMzzH,OAAQ4M,EAAI02hB,EAAO12hB,IAC7C+lH,EAAOc,EAAM7mH,GACThQ,KAAKwsf,WAAsB,KAATz2X,GAAe/1H,KAAKko8B,UAAUny0B,KAChDA,EAAOA,EAAK38G,OAAO,WAElB,KAAK+P,KAAK4sG,IAAkB,KAATA,IACpBA,EAAO,OAEL4x0B,GAAqB,MAAT5x0B,GAA4E,KAA1DA,EAAK1lH,QAAQ,OAAQ,IAAIA,QAAQ,SAAU,IAAIoiB,UAC/Ew06B,GAAqB,MAATlx0B,EA5DX,EA4DuC,EACpC4x0B,IAAaD,GACT1n8B,KAAK0uL,OAAO/jL,QAAQ,QAAU,GAAW,IAANmW,IACnC2m7B,GAAezn8B,KAAK0uL,OAAO/7J,MAAM,YAAYvvB,QAEjD4j8B,EAAc,CACV9s7B,EAAmB,EAAfla,KAAKgl8B,SAAgBR,EAAaqD,GACtCrH,GAAIA,GAAOmH,EAAYF,EAAc,GAAIjh3B,KAAM,IAEnDih3B,EAAc,MAIVT,EADAU,GAASC,EACK,CACVzt7B,EAAsB,KAAlByggB,EAAyC,EAAf36gB,KAAKgl8B,SAAgBR,EAAaqD,GAC1C,EAAf7n8B,KAAKgl8B,SAAgBhl8B,KAAK4l8B,OAAUpB,EAAaqD,EAAiB,IAI/D,CAAC,EAGvBF,GAAW,EACXZ,EAAe/m8B,KAAKsgU,SAASo9nB,YAAYsJ,EAAa,IACtDnxqB,EAAcnkQ,YAAYq16B,GACtBhx0B,EAAKprH,QAAQ,QAAU,GAAO087B,GAAmB,IAANr37B,GAAiB,IAAN8Q,IAAawyZ,GAAYtza,KAAK4l8B,SACpFz3zB,EAAa,OACb25zB,EAAa9n8B,KAAKoj8B,WAAWE,iBAC7B4D,EAAa,eAAiB/4zB,EAC9Bo2V,EAAKp2V,WAAaA,EACjB44zB,EAAc/x6B,aAAa,OAAQh1B,KAAK8z5B,UAAUr9xB,OAASqx0B,KAG5DZ,EAA4B,SAAf/4zB,EAAwB,eAAiBA,EAAa,GACnEo2V,EAAKp2V,WAAaA,EACjB44zB,EAAc/x6B,aAAa,OAAQh1B,KAAK8z5B,UAAUr9xB,OAASqx0B,KAE5D/x0B,EAAKprH,QAAQ,SAAW,GAAO087B,GAAar37B,IAAM02hB,EAAQ,GAAW,IAAN5lhB,IAAawyZ,GAAYtza,KAAK4l8B,WAC7Fz3zB,EAAa,SACb25zB,EAAa9n8B,KAAKoj8B,WAAWG,mBAGhCwD,EAAcn95B,YAAcmsF,EAAO/1H,KAAKmo8B,sBAAsBpy0B,GAC/Dkx0B,GAAYjzC,IAAYj+xB,EAAMwuW,GAAM/ld,MACjB,KAAf0o7B,IACAH,EAAa5g8B,MAAMgoI,WAAa+4zB,EAAWv06B,MAAM,gBAAgB,GACjEo06B,EAAa5g8B,MAAMswH,MAAQsw0B,EAAaz06B,aAAa,SAGzDy06B,EAAa5g8B,MAAMq8c,WAAa,UAChCukf,EAAa5g8B,MAAMqwkB,UAAY,UAC/BuwX,EAAa5g8B,MAAM84S,SAAW,UAC9ByopB,GAAQ,GAGhBT,GAnHS,EAoHTzo7B,EAAQ5a,KAAKqpC,IAAIzuB,EAAOyo7B,GACxB7jqB,EAAah3R,KAAK667B,EACtB,CAjFA,CAmFJjn8B,KAAK+k8B,YAAc,IAAIrD,IAAKlj7B,GAASA,EAAQ,EAAK,EAAIxe,KAAKgl8B,QAAW,GAAIp8yB,GAC1E5oJ,KAAK+k8B,YAAYvm7B,OAAUgm7B,EAAaqD,EACxC,IAAI1y7B,EAAW0gR,EAAc1sP,WAAW,GACxC,GAAsB,KAAlBwxe,GAAwBxlgB,IAAYnV,KAAK4l8B,OAAQ,CACjDrhe,EAAKp2V,WAAa,OAClB,IAAIi6zB,GAAWpo8B,KAAK+k8B,YAAYvm7B,MAAS,EAAIxe,KAAKg3H,SAAY,EAAIg9xB,IAAYr5Y,EAAep2C,GAAM/ld,MAAQ,EAC3GrJ,EAAQ6f,aAAa,IAAKoz6B,EAAQtx7B,WACtC,CACA9W,KAAKqo8B,iBAAiBxyqB,EAAey9I,EAAUkxhB,EAAaqD,EAAezkqB,EAC/E,EACA8D,EAAQv2R,UAAU037B,iBAAmB,SAAUlod,EAAa7sE,EAAUkxhB,EAAYphqB,GAC9E,GAAIpjS,KAAKwsf,UAGL,IAFA,IAAIu6c,OAAe,EACfuB,EAAoBh1hB,EAAW,EAAI,EAC9Bnna,EAAI,EAAGA,EAAIg0e,EAAYh3c,WAAW/lC,OAAQ+I,IAC/C467B,EAAgB5md,EAAYh3c,WAAWh9B,GACjCmna,KAAYnna,EAAI,IAAO4/T,GAAkBg7nB,EAAaz06B,aAAa,QACrEy06B,EAAa/x6B,aAAa,KAAMh1B,KAAK+k8B,YAAYvm7B,OAASgm7B,EAAaphqB,EAAaklqB,KAAqBxx7B,YACzGwx7B,IAIhB,EACAphqB,EAAQv2R,UAAUw37B,sBAAwB,SAAUjja,GAChD,IAAIqja,EAAsBrja,EAAY/thB,MAAM,yBAC5C,GAAI40T,GAAkBw8nB,GAClB,OAAOrja,EAGX,IADA,IAAIsja,EAAYxo8B,KAAKko8B,UAAUhja,GACtB/4hB,EAAI,EAAGA,EAAIo87B,EAAoBnl8B,OAAQ+I,IACxCnM,KAAKyo8B,mBAAmBF,EAAoBp87B,GAAGkE,QAAQ,IAAK,IAAIA,QAAQ,IAAK,IAAIA,QAAQ,IAAK,IAAIoiB,UAClGyygB,EAAcA,EAAY70hB,QAAQk47B,EAAoBp87B,GAAIq87B,EAAY,SAAW,KAGzF,OAAOtja,CACX,EACAh+P,EAAQv2R,UAAU837B,mBAAqB,SAAUtz7B,GAC7C,MAAsD,gCAA/C+b,SAASpwB,cAAcqU,GAAS2B,UAC3C,EACAowR,EAAQv2R,UAAUu37B,UAAY,SAAUv7Z,GACpC,MAAO,8DAA8DxjhB,KAAKwjhB,EAC9E,EACAzlQ,EAAQv2R,UAAUwz7B,eAAiB,SAAUvC,EAAYjq6B,GACrD,IAAIys6B,EAAW,CAAEtj3B,QAAQ,EAAOp8E,KAAM,gBAAiBwnb,QAASlsb,MAChEA,KAAKsgS,QAAQ,gBAAiB8jqB,GAC9B,IAAIj85B,EAASjX,SAASg8T,eAAeltV,KAAKmV,QAAQghB,IAC9Cn2B,KAAKij8B,UACLjj8B,KAAKkj8B,YAET,IAAIwF,EAAevg6B,EAAOmC,kBAI1B,GAHIo+5B,GACAv16B,GAAOu16B,GAENtE,EAAStj3B,OAwCV3tD,GAAO6zQ,IAAWhnS,KAAKmV,QAAQghB,GAAK,iBAxClB,CAGlB,IAFA,IAAIsH,EAAO38B,GAAc,MAAO,CAAEq1B,GAAIn2B,KAAKmV,QAAQghB,GAAK,oBACpDy/U,EAAkB51W,KAAK4/gB,WAAW5/gB,KAAKkqC,KAAMlqC,KAAK2o8B,gBAAiBlr6B,EAAKtH,GAAIsH,EAAKtH,GAAK,kBAAmB,IACtGy/U,GAAmBA,EAAgBxyW,OAAS,GAC3C0pU,MAAyC,IAA3B8oC,EAAgBxyW,QAC9Bq6B,EAAK/L,YAAYkkV,EAAgB,IACjCA,EAAkB,MAGlBn4U,EAAK/L,YAAYkkV,EAAgB,IAGzCztU,EAAOzW,YAAY+L,GACnB,IAAItoB,EAAUnV,KAAKij8B,SAAWxl6B,EAAOz9B,KAAKmV,QACtCu/Q,EAAOv/Q,EAAQs/Q,wBACnBz0R,KAAKg3H,QAAU,EACfh3H,KAAK+k8B,YAAc,IAAIrD,IAAKhtqB,EAAKl2Q,MAAOk2Q,EAAK9rI,QAC7C,IAAIggzB,EAAc5o8B,KAAK43J,OAAS53J,KAAKsl8B,sBAAsB1D,EAAY5h8B,KAAK23B,SAASzd,EAAGla,KAAK23B,SAASxd,GAChGna,KAAKul8B,gBAAgB3D,EAAYjq6B,EAAU,IAAIgr6B,IAAgB,EAAG,GAAI,IAAIA,IAAgB,EAAG,IAOnG,IANI3i8B,KAAK22iB,iBAAoB32iB,KAAK6gtB,SAAY7gtB,KAAKgm8B,UAI/Chm8B,KAAKim8B,UAAU9w7B,EAASyz7B,EAAY1u7B,EAAG0u7B,EAAYzu7B,GAHnDna,KAAKkm8B,kBAAkBlm8B,KAAKmV,QAASyz7B,GAKrC5o8B,KAAKgk8B,eAAgB,CAErB,IAAI6E,EAAkB,WAClB,IAAIC,EAAQ9hqB,IAAW+hqB,EAAa5z7B,QAAQghB,IAAIs+P,wBAChDs0qB,EAAahE,YAAc,IAAIrD,IAAKoH,EAAMtq7B,MAAOsq7B,EAAMlgzB,QACvD,IAAIogzB,EAAeD,EAAaxD,gBAAgB3D,EAAYjq6B,EAAU,IAAIgr6B,IAAgB,EAAG,GAAI,IAAIA,IAAgB,EAAG,IACxHoG,EAAa9C,UAAUj/pB,IAAW+hqB,EAAa5z7B,QAAQghB,IAAK6y6B,EAAa9u7B,EAAG8u7B,EAAa7u7B,EAC7F,EAEI4u7B,EAAe/o8B,KACnB6o8B,EAAgBhp8B,KAAKkp8B,EAAcnH,EAAYjq6B,GAC/C21U,GAAqBttW,KAAKmV,QAAQghB,GAAbn2B,iCAAyDA,KAAKgk8B,eAAet/7B,KAAM1E,KAAKgk8B,eAAe775B,YAAQ9kC,EAAWwl8B,EACnJ,CACJ,CAIJ,EACA3hqB,EAAQv2R,UAAU207B,sBAAwB,SAAU3gM,EAAQzqvB,EAAGC,GAC3D,IAAIqE,EAAQxe,KAAK+k8B,YAAYvm7B,MAAS,EAAIxe,KAAKgl8B,QAC3Cp8yB,EAAS5oJ,KAAK+k8B,YAAYn8yB,OAAU,EAAI5oJ,KAAKql8B,QAC7CuD,EAAc,IAAI/G,IAAK3n7B,EAAI,EAAIla,KAAKg3H,QAAS78G,EAAIyuI,EAAS5oJ,KAAKg3H,QAASx4G,EAAOoqI,GAUnF,OATIggzB,EAAYzu7B,EAAIwqvB,EAAOxqvB,IACvByu7B,EAAYzu7B,GAAMyu7B,EAAYhgzB,OAAS,EAAI5oJ,KAAKg3H,SAEhD4x0B,EAAY1u7B,EAAI0u7B,EAAYpq7B,MAAQmmvB,EAAOzqvB,EAAIyqvB,EAAOnmvB,QACtDoq7B,EAAY1u7B,GAAM0u7B,EAAYpq7B,MAAQ,EAAIxe,KAAKg3H,SAE/C4x0B,EAAY1u7B,EAAIyqvB,EAAOzqvB,IACvB0u7B,EAAY1u7B,EAAIyqvB,EAAOzqvB,GAEpB0u7B,CACX,EACA1hqB,EAAQv2R,UAAUs47B,mBAAqB,SAAUtkM,EAAQukM,EAAgB/D,EAAeC,GACpF,IAAIl72B,EAAWlqF,KAAKq4iB,iBAChB8wZ,EAAQnp8B,KAAKgoyB,WAAW9txB,EACxBkv7B,EAAQpp8B,KAAKgoyB,WAAW7txB,EACxBkv7B,EAAerp8B,KAAK0d,OACpBc,EAAQxe,KAAK+k8B,YAAYvm7B,MAAS,EAAIxe,KAAKgl8B,QAC3Cp8yB,EAAS5oJ,KAAK+k8B,YAAYn8yB,OAAU,EAAI5oJ,KAAKql8B,QAC7C1t6B,EAAW,IAAIgr6B,IAAgBuG,EAAehv7B,EAAGgv7B,EAAe/u7B,GA+BpE,MA9BiB,QAAb+vE,GAAmC,WAAbA,GACtBvyD,EAAW,IAAIgr6B,IAAgBhr6B,EAASzd,EAAIiv7B,EAAQnp8B,KAAK+k8B,YAAYvm7B,MAAQ,EAAIxe,KAAKg3H,QAASr/F,EAASxd,EAAIiv7B,EAAQpp8B,KAAK+k8B,YAAYn8yB,OAAU,EAAI5oJ,KAAKg3H,QAAWh3H,KAAKil8B,aAAeoE,GACvLlE,EAAcjr7B,EAAIkr7B,EAAYlr7B,EAAIsE,EAAQ,EACzB,WAAb0rE,IACAvyD,EAASxd,EAAI+u7B,EAAe/u7B,EAAIiv7B,EAAQC,GAExC1kM,EAAOzqvB,EAAIyqvB,EAAOnmvB,MAAQmZ,EAASzd,EAAIsE,GACvCmZ,EAASzd,EAAKyqvB,EAAOnmvB,MAAQA,EAAWmmvB,EAAOzqvB,EAAIyqvB,EAAOnmvB,MAASA,EAAQ,EAAKmmvB,EAAOzqvB,EACvFir7B,EAAcjr7B,EAAIkr7B,EAAYlr7B,EAAKyqvB,EAAOnmvB,MAAQA,EAAUmmvB,EAAOzqvB,EAAIgv7B,EAAehv7B,EAAIyd,EAASzd,EAAKgv7B,EAAehv7B,GAElHyqvB,EAAOzqvB,EAAIyd,EAASzd,IACzByd,EAASzd,EAAIyqvB,EAAOzqvB,EACpBir7B,EAAcjr7B,EAAIkr7B,EAAYlr7B,EAAIgv7B,EAAehv7B,KAIrDyd,EAAW,IAAIgr6B,IAAgBhr6B,EAASzd,EAAIiv7B,EAAQE,EAAc1x6B,EAASxd,EAAIiv7B,EAAQpp8B,KAAK+k8B,YAAYn8yB,OAAS,EAAK5oJ,KAAKg3H,SAC3Hmu0B,EAAchr7B,EAAIir7B,EAAYjr7B,EAAIyuI,EAAS,EAC1B,SAAb1+D,IACAvyD,EAASzd,EAAIgv7B,EAAehv7B,EAAIiv7B,EAAQE,GAAgB7q7B,EAAQxe,KAAKil8B,eAErEtgM,EAAOxqvB,EAAIwqvB,EAAO/7mB,OAASjxH,EAASxd,EAAIyuI,GACxCjxH,EAASxd,EAAKwqvB,EAAO/7mB,OAASA,EAAY+7mB,EAAOxqvB,EAAIwqvB,EAAO/7mB,OAAUA,EAAS,EAAK+7mB,EAAOxqvB,EAC3Fgr7B,EAAchr7B,EAAIir7B,EAAYjr7B,EAAKwqvB,EAAO/7mB,OAASA,EAAW+7mB,EAAOxqvB,EAAI+u7B,EAAe/u7B,EAAIwd,EAASxd,EAAK+u7B,EAAe/u7B,GAEpHwqvB,EAAOxqvB,EAAIwd,EAASxd,IACzBwd,EAASxd,EAAIwqvB,EAAOxqvB,EACpBgr7B,EAAchr7B,EAAIir7B,EAAYjr7B,EAAI+u7B,EAAe/u7B,IAGlD,IAAI0n7B,IAAKlq6B,EAASzd,EAAGyd,EAASxd,EAAGqE,EAAOoqI,EACnD,EAEAs+I,EAAQv2R,UAAU407B,gBAAkB,SAAU5gM,EAAQukM,EAAgB/D,EAAeC,GACjF,IAAKr5nB,GAAkB/rU,KAAKq4iB,kBAExB,OADkBr4iB,KAAKip8B,mBAAmBtkM,EAAQukM,EAAgB/D,EAAeC,GAGrF,IAAIzt6B,EAAW,IAAIgr6B,IAAgBuG,EAAehv7B,EAAGgv7B,EAAe/u7B,GAChEqE,EAAQxe,KAAK+k8B,YAAYvm7B,MAAS,EAAIxe,KAAKgl8B,QAC3Cp8yB,EAAS5oJ,KAAK+k8B,YAAYn8yB,OAAU,EAAI5oJ,KAAKql8B,QAC7CgE,EAAerp8B,KAAK0d,OACpByr7B,EAAQnp8B,KAAKgoyB,WAAW9txB,EACxBkv7B,EAAQpp8B,KAAKgoyB,WAAW7txB,EACxBmv7B,EAAU3kM,EAAOzqvB,EACjBqv7B,EAAU5kM,EAAOxqvB,EAmJrB,OAlJAna,KAAKwp8B,aAAc,EACdxp8B,KAAKwl8B,UA4EN7t6B,EAAW,IAAIgr6B,IAAgBhr6B,EAASzd,EAAIiv7B,EAAQE,EAAc1x6B,EAASxd,EAAIiv7B,EAAQpp8B,KAAK+k8B,YAAYn8yB,OAAS,EAAK5oJ,KAAKg3H,SAC3Hmu0B,EAAchr7B,EAAIir7B,EAAYjr7B,EAAIyuI,EAAS,GACtCjxH,EAASzd,EAAIsE,EAAQxe,KAAKil8B,aAAeqE,EAAU3kM,EAAOnmvB,OAAWxe,KAAKw9U,cAC3E7lT,EAASzd,GAAKgv7B,EAAehv7B,EAAIyqvB,EAAOnmvB,MAAQmmvB,EAAOzqvB,EAAIyqvB,EAAOnmvB,MAAQ0q7B,EAAehv7B,GACnFiv7B,EAAQE,GAAgB7q7B,EAAQxe,KAAKil8B,eAE3Ctt6B,EAASzd,EAAIov7B,IACb3x6B,EAASzd,GAAKgv7B,EAAehv7B,EAAI,EAAI,EAAIgv7B,EAAehv7B,GAAKiv7B,EAAQE,GAEpE1x6B,EAASzd,EAAIsE,EAAQxe,KAAKil8B,aAAeqE,EAAU3kM,EAAOnmvB,QAC3DmZ,EAASzd,GAAKgv7B,EAAehv7B,EAAIyqvB,EAAOnmvB,MAAQmmvB,EAAOzqvB,EAAIyqvB,EAAOnmvB,MAAQ0q7B,EAAehv7B,GACnFiv7B,EAAQE,GAAgB7q7B,EAAQxe,KAAKil8B,eAE3Ctt6B,EAASxd,GAAKov7B,IACdpE,EAAchr7B,GAAMov7B,EAAU5x6B,EAASxd,EACvCir7B,EAAYjr7B,GAAMov7B,EAAU5x6B,EAASxd,EACrCwd,EAASxd,EAAIov7B,GAEb5x6B,EAASxd,EAAIyuI,GAAU2gzB,EAAU5kM,EAAO/7mB,SACxCu8yB,EAAchr7B,GAAOwd,EAASxd,EAAIyuI,GAAW2gzB,EAAU5kM,EAAO/7mB,QAC9Dw8yB,EAAYjr7B,GAAOwd,EAASxd,EAAIyuI,GAAW2gzB,EAAU5kM,EAAO/7mB,QAC5DjxH,EAASxd,GAAOwd,EAASxd,EAAIyuI,GAAW2gzB,EAAU5kM,EAAO/7mB,SAEzDu8yB,EAAchr7B,EAAIna,KAAKil8B,aAAer8yB,EAAS5oJ,KAAK4xyB,KACpDuzJ,EAAchr7B,EAAIyuI,EAAS5oJ,KAAK4xyB,GAAK5xyB,KAAKil8B,aAC1CG,EAAYjr7B,EAAIyuI,GAEhBu8yB,EAAchr7B,EAAIna,KAAKil8B,aAAejl8B,KAAK4xyB,KAC3CuzJ,EAAchr7B,EAAIir7B,EAAYjr7B,EAAIna,KAAK4xyB,GAAK5xyB,KAAKil8B,cAE5B,UAArBjl8B,KAAKwlW,eACA7tU,EAASxd,EAAIgr7B,EAAchr7B,EAAKna,KAAK4j8B,WAAa5j8B,KAAKil8B,cACtDtgM,EAAOxqvB,EAAIwqvB,EAAO/7mB,QAAWjxH,EAASxd,EAAIgr7B,EAAchr7B,GAAMna,KAAK4j8B,WAAa5j8B,KAAKil8B,gBACvFjl8B,KAAKwp8B,aAAc,GAElB7H,IAAiBhq6B,EAASzd,EAAGyd,EAASxd,EAAGwqvB,KAAW3kwB,KAAKwp8B,cAC1Dxp8B,KAAKwl8B,UAAYxl8B,KAAKwl8B,SACtB7t6B,EAAW,IAAIgr6B,IAAgBuG,EAAehv7B,EAAIiv7B,EAAQnp8B,KAAKg3H,QAAUh3H,KAAK+k8B,YAAYvm7B,MAAQ,EAAG0q7B,EAAe/u7B,EAAIiv7B,EAAQpp8B,KAAK+k8B,YAAYn8yB,OAAU,EAAI5oJ,KAAKg3H,QAAWqy0B,EAAerp8B,KAAKil8B,cACnMjl8B,KAAK6m8B,QAAS,EACdzB,EAAYlr7B,EAAIir7B,EAAcjr7B,EAAIsE,EAAQ,EAC1C4m7B,EAAYjr7B,EAAIgr7B,EAAchr7B,EAAI,GAC9Bwd,EAASxd,EAAIov7B,GAAYvp8B,KAAKw9U,cAC9B7lT,EAASxd,GAAK+u7B,EAAe/u7B,EAAI,EAAI,EAAI+u7B,EAAe/u7B,GAAKkv7B,EAAeD,GAE5Ezx6B,EAASxd,EAAIna,KAAKil8B,aAAer8yB,EAAS2gzB,EAAU5kM,EAAO/7mB,SAC3DjxH,EAASxd,EAAIvW,KAAKgmD,IAAIs/4B,EAAe/u7B,EAAGov7B,EAAU5kM,EAAO/7mB,QAAUwgzB,EAC7Dpp8B,KAAK+k8B,YAAYn8yB,OAAU,EAAI5oJ,KAAKg3H,QAAWqy0B,EAAerp8B,KAAKil8B,cAE7EG,EAAYlr7B,EAAIsE,EAAQ,EACpBmZ,EAASzd,EAAIov7B,IACblE,EAAYlr7B,GAAMov7B,EAAU3x6B,EAASzd,EACrCir7B,EAAcjr7B,GAAMov7B,EAAU3x6B,EAASzd,EACvCyd,EAASzd,EAAIov7B,GAEb3x6B,EAASzd,EAAIsE,EAAQmmvB,EAAOnmvB,MAAQ8q7B,IACpCnE,EAAcjr7B,GAAOyd,EAASzd,EAAIsE,GAAUmmvB,EAAOnmvB,MAAQ8q7B,GAC3DlE,EAAYlr7B,GAAOyd,EAASzd,EAAIsE,GAAUmmvB,EAAOnmvB,MAAQ8q7B,GACzD3x6B,EAASzd,GAAOyd,EAASzd,EAAIsE,GAAUmmvB,EAAOnmvB,MAAQ8q7B,IAErDtp8B,KAAKil8B,aAAgBE,EAAcjr7B,EAAIsE,EAAQxe,KAAK2xyB,KACrDyzJ,EAAYlr7B,EAAIsE,EAAQxe,KAAK2xyB,GAAM3xyB,KAAKil8B,aACxCE,EAAcjr7B,EAAIsE,EAAQxe,KAAK2xyB,GAAM3xyB,KAAKil8B,cAE1CE,EAAcjr7B,EAAKla,KAAKil8B,aAAgBjl8B,KAAK2xyB,KAC7CwzJ,EAAcjr7B,EAAIkr7B,EAAYlr7B,EAAIla,KAAK2xyB,GAAM3xyB,KAAKil8B,kBA3I9Dtt6B,EAAW,IAAIgr6B,IAAgBhr6B,EAASzd,EAAIiv7B,EAAQnp8B,KAAK+k8B,YAAYvm7B,MAAQ,EAAIxe,KAAKg3H,QAASr/F,EAASxd,EAAIiv7B,EAAQpp8B,KAAK+k8B,YAAYn8yB,OAAU,GAAK5oJ,KAAKyl8B,eAAiBzl8B,KAAK2j8B,iBAAmB3j8B,KAAKg3H,SAAYh3H,KAAKil8B,aAAeoE,GACvOlE,EAAcjr7B,EAAIkr7B,EAAYlr7B,EAAIsE,EAAQ,GACrCmZ,EAASxd,EAAIov7B,GAAYvp8B,KAAKw9U,aAAuC,gBAArBx9U,KAAKwlW,cACtD7tU,EAASxd,GAAK+u7B,EAAe/u7B,EAAI,EAAI,EAAI+u7B,EAAe/u7B,GAAKiv7B,EAAQC,GAErE1x6B,EAASxd,EAAIyuI,EAAS5oJ,KAAKil8B,aAAesE,EAAU5kM,EAAO/7mB,SAC3DjxH,EAASxd,EAAIvW,KAAKgmD,IAAIs/4B,EAAe/u7B,EAAGov7B,EAAU5kM,EAAO/7mB,QAAUwgzB,EAC7Dpp8B,KAAK+k8B,YAAYn8yB,OAAU,EAAI5oJ,KAAKg3H,QAAWh3H,KAAKil8B,aAAeoE,IAEvE1x6B,EAASzd,EAAIsE,EAAQ8q7B,EAAU3kM,EAAOnmvB,OAAUmZ,EAASxd,EAAIov7B,GAAYvp8B,KAAKw9U,aAAuC,gBAArBx9U,KAAKwlW,cACvG7tU,EAASxd,GAAK+u7B,EAAe/u7B,EAAI,EAAI,EAAI+u7B,EAAe/u7B,GAAKiv7B,EAAQC,GAEzEjE,EAAYlr7B,EAAIsE,EAAQ,EACpBmZ,EAASzd,EAAIov7B,GAAkC,gBAArBtp8B,KAAKwlW,cAC/B2/lB,EAAcjr7B,GAAMov7B,EAAU3x6B,EAASzd,EACvCkr7B,EAAYlr7B,GAAMov7B,EAAU3x6B,EAASzd,EACrCyd,EAASzd,EAAIov7B,GAEb3x6B,EAASzd,EAAIsE,EAAQ8q7B,EAAU3kM,EAAOnmvB,OAAgC,gBAArBxe,KAAKwlW,cACtD2/lB,EAAcjr7B,GAAOyd,EAASzd,EAAIsE,GAAU8q7B,EAAU3kM,EAAOnmvB,OAC7D4m7B,EAAYlr7B,GAAOyd,EAASzd,EAAIsE,GAAU8q7B,EAAU3kM,EAAOnmvB,OAC3DmZ,EAASzd,GAAOyd,EAASzd,EAAIsE,GAAU8q7B,EAAU3kM,EAAOnmvB,QAExDmZ,EAASzd,EAAIov7B,GAAkC,gBAArBtp8B,KAAKwlW,cAC/B2/lB,EAAcjr7B,GAAMov7B,EAAU3x6B,EAASzd,EACvCkr7B,EAAYlr7B,GAAMov7B,EAAU3x6B,EAASzd,EACrCyd,EAASzd,EAAIov7B,GAEbnE,EAAcjr7B,EAAIla,KAAKil8B,aAAezm7B,EAAQxe,KAAK2xyB,KACnDwzJ,EAAcjr7B,EAAIsE,EAAQxe,KAAK2xyB,GAAK3xyB,KAAKil8B,aACzCG,EAAYlr7B,EAAIsE,EAAQxe,KAAK2xyB,GAAK3xyB,KAAKil8B,cAEvCE,EAAcjr7B,EAAIla,KAAKil8B,aAAejl8B,KAAK2xyB,KAC3CwzJ,EAAcjr7B,EAAIkr7B,EAAYlr7B,EAAIla,KAAK2xyB,GAAK3xyB,KAAKil8B,cAE5B,UAArBjl8B,KAAKwlW,eACCm/Z,EAAOzqvB,EAAIyqvB,EAAOnmvB,OAAUmZ,EAASzd,EAAIir7B,EAAcjr7B,GAAMla,KAAK4j8B,WAAa5j8B,KAAKil8B,cACrFtt6B,EAASzd,EAAIir7B,EAAcjr7B,EAAKla,KAAK4j8B,WAAa5j8B,KAAKil8B,gBACxDjl8B,KAAKwp8B,aAAc,GAElB7H,IAAiBhq6B,EAASzd,EAAGyd,EAASxd,EAAGwqvB,KAAW3kwB,KAAKwp8B,cAC1Dxp8B,KAAKwl8B,UAAYxl8B,KAAKwl8B,SACtBxl8B,KAAK6m8B,QAAS,EACdlv6B,EAAW,IAAIgr6B,IAAgBuG,EAAehv7B,EAAImv7B,EAAeF,EAAOD,EAAe/u7B,EAAIiv7B,EAAQpp8B,KAAK+k8B,YAAYn8yB,OAAS,EAAK5oJ,KAAKg3H,SACvIou0B,EAAYlr7B,EAAIir7B,EAAcjr7B,EAAI,EAClCkr7B,EAAYjr7B,EAAIgr7B,EAAchr7B,EAAIyuI,EAAS,GACtCjxH,EAASzd,EAAIla,KAAKil8B,aAAezm7B,EAAQ8q7B,EAAU3kM,EAAOnmvB,OAAWxe,KAAKw9U,cAC3E7lT,EAASzd,GAAKgv7B,EAAehv7B,EAAIyqvB,EAAOnmvB,MAAQmmvB,EAAOnmvB,MAAQ0q7B,EAAehv7B,GACxEiv7B,EAAQE,GAAgBrp8B,KAAKil8B,aAAezm7B,IAElDmZ,EAASzd,EAAIov7B,IACb3x6B,EAASzd,GAAKgv7B,EAAehv7B,EAAI,EAAI,EAAIgv7B,EAAehv7B,GAAKmv7B,EAAeF,GAE5Exx6B,EAASxd,GAAKov7B,IACdnE,EAAYjr7B,GAAMov7B,EAAU5x6B,EAASxd,EACrCgr7B,EAAchr7B,GAAMov7B,EAAU5x6B,EAASxd,EACvCwd,EAASxd,EAAIov7B,GAEb5x6B,EAASxd,EAAIyuI,GAAU+7mB,EAAO/7mB,OAAS2gzB,IACvCpE,EAAchr7B,GAAOwd,EAASxd,EAAIyuI,GAAW+7mB,EAAO/7mB,OAAS2gzB,GAC7DnE,EAAYjr7B,GAAOwd,EAASxd,EAAIyuI,GAAW+7mB,EAAO/7mB,OAAS2gzB,GAC3D5x6B,EAASxd,GAAOwd,EAASxd,EAAIyuI,GAAW+7mB,EAAO/7mB,OAAS2gzB,IAEvDvp8B,KAAKil8B,aAAgBE,EAAchr7B,EAAIyuI,EAAS5oJ,KAAK4xyB,KACtDuzJ,EAAchr7B,EAAIyuI,EAAS5oJ,KAAKil8B,aAAejl8B,KAAK4xyB,GACpDwzJ,EAAYjr7B,EAAIyuI,GAEhBu8yB,EAAchr7B,EAAIna,KAAKil8B,aAAejl8B,KAAK4xyB,KAC3CuzJ,EAAchr7B,EAAKna,KAAKil8B,aAAgBjl8B,KAAK4xyB,GAC7CwzJ,EAAYjr7B,EAAI,MA2EzB,IAAI0n7B,IAAKlq6B,EAASzd,EAAGyd,EAASxd,EAAGqE,EAAOoqI,EACnD,EACAs+I,EAAQv2R,UAAUu17B,kBAAoB,SAAUhB,EAAYxwqB,GACxD,IAGI+0qB,EAHAnq8B,EAAQU,KACRka,EAAIw2B,WAAWw05B,EAAW/+7B,MAAMw9H,MAChCxpH,EAAIu2B,WAAWw05B,EAAW/+7B,MAAM+nJ,KAEpC,IAAI+hM,GAAU,CAAC,GAAGhuC,QAAQijpB,EAAY,CAClCjx1B,SAAUj0G,KAAKi0G,SACfw9O,SAAU,SAAUx4U,GAChBww7B,EAAcxw7B,EAAKysI,UAAYzsI,EAAKg7F,SACpCix1B,EAAW/+7B,MAAMgpJ,UAAY,KACF,UAAtB7vJ,EAAMkmW,aAA2BlmW,EAAMs4J,SAAYt4J,EAAMktf,WAC1D04c,EAAW/+7B,MAAMm+I,WAAawoL,KAAa,iBAAmB,iBAC9Do4nB,EAAW/+7B,MAAMoyD,UAAY,cAAgBr+C,EAAIuv7B,GAAc/0qB,EAAKx6Q,EAAIA,IAAM,OAASC,EAAIsv7B,GAAc/0qB,EAAKv6Q,EAAIA,IAAM,QAGxH+q7B,EAAW/+7B,MAAMw9H,KAAQzpH,EAAIuv7B,GAAc/0qB,EAAKx6Q,EAAIA,GAAM,KAC1Dgr7B,EAAW/+7B,MAAM+nJ,IAAO/zI,EAAIsv7B,GAAc/0qB,EAAKv6Q,EAAIA,GAAM,KAEjE,EACAi/B,IAAK,SAAU87D,GACX51G,EAAM2m8B,UAAUf,EAAYxwqB,EAAKx6Q,EAAGw6Q,EAAKv6Q,GACzC7a,EAAMghS,QAAQ,oBAAqB,CAAE4rJ,QAAS5sb,GAClD,GAER,EACA4nS,EAAQv2R,UAAUs17B,UAAY,SAAUf,EAAYhr7B,EAAGC,GACzB,UAArBna,KAAKwlW,cAA2BxlW,KAAK43J,QAAW53J,KAAKgm8B,WAAehm8B,KAAKwsf,WAI1E04c,EAAW/+7B,MAAMw9H,KAAOzpH,EAAI,KAC5Bgr7B,EAAW/+7B,MAAM+nJ,IAAM/zI,EAAI,MAJ3B+q7B,EAAW/+7B,MAAMoyD,UAAY,aAAer+C,EAAI,MAAQC,EAAI,KAMpE,EACA+sR,EAAQv2R,UAAUuz7B,iBAAmB,WACjC,GAAIlk8B,KAAKujC,SACL,IACQrS,SAAS1gB,iBAAiBxQ,KAAKujC,UAAUngC,OACzCpD,KAAK4/gB,WAAaxhC,GAAiBltd,SAAS0I,cAAc55B,KAAKujC,UAAU2F,UAAUzW,QAGnFzyB,KAAK4/gB,WAAaxhC,GAAiBp+e,KAAKujC,SAEhD,CACA,MAAOljC,KACHL,KAAK4/gB,WAAaxhC,GAAiBp+e,KAAKujC,SAC5C,CAER,EAEA2jQ,EAAQv2R,UAAU+47B,QAAU,WACxB,IAAIpq8B,EAAQU,KACRi0iB,EAAkBj0iB,KAAKij8B,WAAajj8B,KAAKujC,SAAYyjQ,IAAWhnS,KAAKmV,QAAQghB,GAAK,QAClF6wQ,IAAWhnS,KAAKmV,QAAQghB,IACxB+u6B,EAAal+pB,IAAWhnS,KAAKmV,QAAQghB,IACzC,GAAI89gB,EAAgB,CAChB,IAAI01Z,EAAiB11Z,EAAev/gB,WAQpC,GAPIi16B,EAAeln6B,WAAalP,KAAK2G,eACjCyv6B,EAAiB11Z,EAAe3pgB,mBAEhCtqC,KAAKij8B,WAAajj8B,KAAKujC,WACvBom6B,EAAiBz46B,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,UAAYjF,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,UAC7Gwz6B,IAEHA,EACD,OAAO,KAEX,IAAIC,EAAYl55B,WAAWi55B,EAAer36B,aAAa,YACvDs36B,EAAa79nB,GAAkB69nB,GAAyB,EAAZA,EAC5C,IAAI35mB,GAAU,CAAC,GAAGhuC,QAAQ0npB,EAAgB,CACtC111B,SAAU,IACVw9O,SAAU,SAAUx4U,GAEhB3Z,EAAMqjf,kBAAkBgnd,EAAgBC,EAAY3w7B,EAAKysI,UAAYzsI,EAAKg7F,SAC9E,EACA76D,IAAK,WACD95C,EAAM2k8B,WAAY,EAClB3k8B,EAAMuq8B,aAAaF,GACnBzE,EAAW/+7B,MAAMm+I,WAAa,EAClC,GAER,CACJ,EACA4iJ,EAAQv2R,UAAUgye,kBAAoB,SAAUmnd,EAAcx7zB,EAASoX,GACnEokzB,EAAa3j8B,MAAMgpJ,UAAY,GAC/B26yB,EAAa906B,aAAa,WAAYs5G,EAAUoX,GAAW5uI,WAC/D,EAIAowR,EAAQv2R,UAAUk57B,aAAe,SAAUC,GACvCA,EAAa906B,aAAa,UAAW,KACjCh1B,KAAKujC,WACLum6B,EAAa3j8B,MAAMi+J,QAAU,QAEjCpkK,KAAKsgS,QAAQ,oBAAqB,CAAE4rJ,QAASlsb,MACjD,EAMAknS,EAAQv2R,UAAU0pV,eAAiB,WAE/B,OAAOr6V,KAAK26V,aADI,GAEpB,EAMAzzD,EAAQv2R,UAAUo8U,cAAgB,WAC9B,MAAO,SACX,EAMA7lD,EAAQv2R,UAAUymI,QAAU,WACxBtwF,EAAOn2C,UAAUymI,QAAQz3I,KAAKK,MAC9BA,KAAKmV,QAAQ+yQ,UAAU/0P,OAAO,YAClC,EAOA+zQ,EAAQv2R,UAAU+7U,kBAAoB,SAAUiF,EAASC,GACjD5xV,KAAKgk8B,gBACLv2lB,GAAoBztW,KAAKmV,QAAQghB,GAAbn2B,kCAExBA,KAAK6gtB,SAAU,EACf7gtB,KAAKoa,QACT,EACA21U,IAAW,CACPjB,IAAS,IACV5nD,EAAQv2R,UAAW,cAAU,GAChCo/U,IAAW,CACPjB,IAAS,IACV5nD,EAAQv2R,UAAW,cAAU,GAChCo/U,IAAW,CACPjB,IAAS,IACV5nD,EAAQv2R,UAAW,iBAAa,GACnCo/U,IAAW,CACPjB,IAAS,IACV5nD,EAAQv2R,UAAW,oBAAgB,GACtCo/U,IAAW,CACPjB,GAAS,OACV5nD,EAAQv2R,UAAW,YAAQ,GAC9Bo/U,IAAW,CACPjB,GAAS,KACV5nD,EAAQv2R,UAAW,cAAU,GAChCo/U,IAAW,CACPjB,GAAS,MACV5nD,EAAQv2R,UAAW,eAAW,GACjCo/U,IAAW,CACPd,GAAQ,CAAE54U,KAAM,OAAQ83H,WAAY,SAAU1X,MAAO,KAAM+/c,UAAW,SAAUh0H,WAAY,YAAcogf,MAC3G17pB,EAAQv2R,UAAW,iBAAa,GACnCo/U,IAAW,CACPjB,GAAS,OACV5nD,EAAQv2R,UAAW,gBAAY,GAClCo/U,IAAW,CACPjB,IAAS,IACV5nD,EAAQv2R,UAAW,uBAAmB,GACzCo/U,IAAW,CACPjB,GAAS,MACV5nD,EAAQv2R,UAAW,gBAAY,GAClCo/U,IAAW,CACPjB,IAAS,IACV5nD,EAAQv2R,UAAW,gBAAY,GAClCo/U,IAAW,CACPjB,IAAS,IACV5nD,EAAQv2R,UAAW,kBAAc,GACpCo/U,IAAW,CACPd,GAAQ,CAAEx4N,MAAO,UAAWj4G,MAAO,IAAOqk7B,MAC3C37pB,EAAQv2R,UAAW,cAAU,GAChCo/U,IAAW,CACPjB,GAAS,KACV5nD,EAAQv2R,UAAW,eAAW,GACjCo/U,IAAW,CACPjB,GAAS,KACV5nD,EAAQv2R,UAAW,kBAAc,GACpCo/U,IAAW,CACPd,GAAQ,CAAE/0U,EAAG,EAAGC,EAAG,GAAK4o7B,MACzB77pB,EAAQv2R,UAAW,kBAAc,GACpCo/U,IAAW,CACPjB,GAAS,KACV5nD,EAAQv2R,UAAW,eAAW,GACjCo/U,IAAW,CACPjB,GAAS,KACV5nD,EAAQv2R,UAAW,cAAU,GAChCo/U,IAAW,CACPd,GAAQ,CAAE/0U,EAAG,EAAGC,EAAG,GAAK4o7B,MACzB77pB,EAAQv2R,UAAW,gBAAY,GAClCo/U,IAAW,CACPjB,GAAS,IACV5nD,EAAQv2R,UAAW,cAAU,GAChCo/U,IAAW,CACPjB,GAAS,IACV5nD,EAAQv2R,UAAW,UAAM,GAC5Bo/U,IAAW,CACPjB,GAAS,IACV5nD,EAAQv2R,UAAW,UAAM,GAC5Bo/U,IAAW,CACPjB,GAAS,IACV5nD,EAAQv2R,UAAW,eAAW,GACjCo/U,IAAW,CACPjB,GAAS,IACV5nD,EAAQv2R,UAAW,eAAW,GACjCo/U,IAAW,CACPjB,GAAS,IACV5nD,EAAQv2R,UAAW,oBAAgB,GACtCo/U,IAAW,CACPjB,GAAS,OACV5nD,EAAQv2R,UAAW,YAAQ,GAC9Bo/U,IAAW,CACPjB,GAAS,aACV5nD,EAAQv2R,UAAW,aAAS,GAC/Bo/U,IAAW,CACPd,GAAQ,CAAE/0U,EAAG,EAAGC,EAAG,EAAGqE,MAAO,EAAGoqI,OAAQ,GAAKk6yB,MAC9C57pB,EAAQv2R,UAAW,kBAAc,GACpCo/U,IAAW,CACPjB,GAAS,OACV5nD,EAAQv2R,UAAW,qBAAiB,GACvCo/U,IAAW,CACPjB,MACD5nD,EAAQv2R,UAAW,sBAAkB,GACxCo/U,IAAW,CACPjB,IAAS,IACV5nD,EAAQv2R,UAAW,gBAAY,GAClCo/U,IAAW,CACPjB,IAAS,IACV5nD,EAAQv2R,UAAW,kBAAc,GACpCo/U,IAAW,CACPjB,GAAS,OACV5nD,EAAQv2R,UAAW,wBAAoB,GAC1Co/U,IAAW,CACPjB,GAAS,OACV5nD,EAAQv2R,UAAW,uBAAmB,GACzCo/U,IAAW,CACPjB,GAAS,KACV5nD,EAAQv2R,UAAW,mBAAe,GACrCo/U,IAAW,CACP94T,MACDiwQ,EAAQv2R,UAAW,qBAAiB,GACvCo/U,IAAW,CACP94T,MACDiwQ,EAAQv2R,UAAW,cAAU,GAChCo/U,IAAW,CACP94T,MACDiwQ,EAAQv2R,UAAW,yBAAqB,GAC3Co/U,IAAW,CACPjB,IAAS,IACV5nD,EAAQv2R,UAAW,iBAAa,GACnCo/U,IAAW,CACPjB,IAAS,IACV5nD,EAAQv2R,UAAW,sBAAkB,GACxCu2R,EAAU6oD,IAAW,CACjBT,IACDpoD,EAEP,CA78B6B,CA68B3B9lS,IE1lCE8kD,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAyBzCy74B,IACA,SAAc3n7B,EAAGC,EAAGyuI,EAAQpqI,GACxBxe,KAAKka,EAAIA,EACTla,KAAKma,EAAIA,EACTna,KAAK4oJ,OAASA,EACd5oJ,KAAKwe,MAAQA,CACjB,EAKAkj7B,IACA,SAAc94yB,EAAQpqI,GAClBxe,KAAK4oJ,OAASA,EACd5oJ,KAAKwe,MAAQA,CACjB,EAcAur7B,IAA4B,SAAUjj5B,GAEtC,SAASij5B,EAAW5z6B,EAAIqwD,EAAMhoE,EAAOi4G,EAAO6X,EAASomJ,EAAMi9gB,EAAIC,EAAIr5uB,EAAW2m4B,GAC1E,IAAI5/7B,EAAQwnD,EAAOnnD,KAAKK,KAAMm2B,EAAIqwD,EAAMhoE,EAAOi4G,EAAO6X,EAAS4wzB,IAAcl/7B,KAS7E,OARAV,EAAM6a,EAAIu6Q,EAAKv6Q,EACf7a,EAAM4a,EAAIw6Q,EAAKx6Q,EACf5a,EAAMspJ,OAAS8rI,EAAK9rI,OACpBtpJ,EAAMkf,MAAQk2Q,EAAKl2Q,MACnBlf,EAAMqyyB,GAAKA,GAAU,EACrBryyB,EAAMsyyB,GAAKA,GAAU,EACrBtyyB,EAAMi5D,UAAYA,GAAwB,GAC1Cj5D,EAAMi7vB,OAAoB,IAAV/7uB,GAAgC,KAAjBlf,EAAMi7vB,OAAiB9joB,EAAQ,cACvDn3H,CACX,CACA,OAbA4mD,IAAU6j5B,EAAYjj5B,GAafij5B,CACX,CAfgC,CAe9BrH,KAGEsH,IACA,SAAoB1m1B,EAAGC,EAAGrtG,GACtBlW,KAAKsjH,EAAIA,EACTtjH,KAAKujH,EAAIA,EACTvjH,KAAKkW,EAAIA,CACb,EASG,SAASk95B,IAAexx6B,GAC3B,IAAI0/M,EAAM1/M,EAAMkV,SAAS,IACzB,OAAsB,IAAfwqM,EAAIl+M,OAAe,IAAMk+M,EAAMA,CAC1C,CAQO,SAAS2ovB,IAAexz0B,GAC3BA,EAAkB,gBAAVA,EAA0B,QAAUA,EAC5CvlG,SAASzd,KAAKie,YAAY5wB,GAAc,OAAQ,CAAEq1B,GAAI,sBACtD,IAAIhhB,EAAU+b,SAASg8T,eAAe,oBACtC/3U,EAAQhP,MAAMswH,MAAQA,EACtBA,EAAQzlG,OAAOwhQ,iBAAiBr9Q,GAASshH,MACzCtjG,GAAOhe,GACP,IAtB6BvT,EAuBzBso8B,EADM,uGACWr45B,KAAK4kF,GAC1B,MAvBO,IAAM28yB,KADgBxx6B,EAwBL,IAAIoo8B,IAAWz96B,SAAS296B,EAAW,GAAI,IAAK396B,SAAS296B,EAAW,GAAI,IAAK396B,SAAS296B,EAAW,GAAI,MAvBvF5m1B,GAAK8vzB,IAAexx6B,EAAM2hH,GAAK6vzB,IAAexx6B,EAAMsU,EAwB1F,CAEA,IAAI8r7B,IACA,SAAoB7r6B,EAAI8oR,EAAUu3R,EAAWh0H,EAAYr0U,EAAYg8zB,EAAY3j3B,EAAMtsE,EAAGC,EAAGqE,EAAOoqI,GAChG5oJ,KAAKm2B,GAAKA,EACVn2B,KAAK,aAAei/S,EACpBj/S,KAAK,cAAgBw2kB,EACrBx2kB,KAAK,eAAiBwid,EACtBxid,KAAK,eAAiBmuI,EACtBnuI,KAAK,eAAiBmq8B,EACtBnq8B,KAAKwmF,KAAOA,EACZxmF,KAAKka,EAAIA,EACTla,KAAKma,EAAIA,EACTna,KAAKwe,MAAQA,GAAgB,EAC7Bxe,KAAK4oJ,OAASA,GAAkB,CACpC,EAKG,SAASwhzB,IAAiBn5hB,EAASC,EAAS1uJ,EAAQ6nrB,GACvD,IAAIC,GAAkBD,EAAiB,KAAOzm8B,KAAKita,GAAK,KACxD,MAAO,CACH32Z,EAAG+2Z,EAAWzuJ,EAAS5+Q,KAAK6ta,IAAI64hB,GAChCnw7B,EAAG+2Z,EAAW1uJ,EAAS5+Q,KAAK8ta,IAAI44hB,GAExC,CAEO,SAASC,IAAWrw7B,EAAGC,EAAGqoQ,EAAQgorB,EAAYC,EAAUpymB,EAAWqymB,GACtE,IAAIx05B,EAAQk05B,IAAiBlw7B,EAAGC,EAAGqoQ,EAAQgorB,GACvCpx5B,EAAMgx5B,IAAiBlw7B,EAAGC,EAAGqoQ,EAAQiorB,GACrCE,EAAe,IACfC,EAAavymB,EAAa,IAAM,IAgBpC,OAXIsymB,EAJCtymB,GAIgBmymB,GAAcC,EAAYD,EAAaA,EAAa,KAAOC,GAAY,IAAM,IAAM,KAHnFA,GAAYD,EAAcC,EAAWA,EAAW,KAAOD,GAAc,IAAM,IAAM,IAMlGE,EACI,KAAOxw7B,EAAI,IAAMC,EAAI,MAAQ+7B,EAAMh8B,EAAI,IAAMg8B,EAAM/7B,EAAI,MAAQqoQ,EAAS,IACxEA,EADA,QAC6BmorB,EAAe,IAAMC,EAAY,IAAMxx5B,EAAIl/B,EAAI,IAAMk/B,EAAIj/B,EADtF,KAIA,IAAM+7B,EAAMh8B,EAAI,IAAMg8B,EAAM/7B,EAC5B,IAAMqoQ,EAAS,IAAMA,EADrB,MACgDmorB,EAAe,IAAMC,EAAY,IAAMxx5B,EAAIl/B,EAAI,IAAMk/B,EAAIj/B,CAGrH,CAEO,SAAS0w7B,IAAejp8B,EAAOkp8B,GAClC,OAAc,OAAVlp8B,QAA4ByB,IAAVzB,GACa,IAAxBA,EAAM+I,QAAQ,KAAemg8B,EAAgB,IAAOv+6B,SAAS3qB,EAAO,IAAM2qB,SAAS3qB,EAAO,IAE9F,IACX,CAEO,SAASwrgB,IAActuf,EAAS3J,GAEnC,IADA,IAAI5Q,EAAO9E,OAAO8E,KAAKua,GACd3S,EAAI,EAAGA,EAAI5H,EAAKnB,OAAQ+I,IAC7BgJ,EAAQ6f,aAAazwB,EAAK4H,GAAI2S,EAAQva,EAAK4H,KAE/C,OAAOgJ,CACX,CAMO,SAAS6+L,IAAO+d,EAAa24Q,EAAYqge,EAAU921B,EAAUokP,GAChE,IACIj/S,EAAMsxb,GAAeryI,GAAc0ymB,EAAWA,GAClD,OAFa1ymB,EAAa0ymB,GAAYA,GAEvBnn8B,KAAK6ta,IAAI1/M,EAAc99G,GAAYrwG,KAAKita,GAAK,IAAMz3X,CACtE,CA0BA,IC/MWij2B,ID+MP2uD,IACA,SAA0B9w7B,EAAGC,GACzBna,KAAKka,EAAIA,EACTla,KAAKma,EAAIA,CACb,GClNJ,SAAWki4B,GAEPA,EAAM4uD,iBAAmB,CACrB507B,KAAM,OACN83H,WAAY,SACZ1X,MAAO,KACP+/c,UAAW,SACXh0H,WAAY,WAEnB,CATD,CASG65b,MAAUA,IAAQ,CAAC,ICVtB,IAAIn21B,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAazC2pS,IAA0C,SAAUxoJ,EAAYl/L,EAAQiE,EAAKkkB,GAC7E,IAA2HhvB,EAAvH6e,EAAIld,UAAUC,OAAQkgH,EAAIjjG,EAAI,EAAIhY,EAAkB,OAATmoB,EAAgBA,EAAO/wB,OAAOk+B,yBAAyBt1B,EAAQiE,GAAOkkB,EACrH,GAAuB,kBAAZuN,SAAoD,oBAArBA,QAAQiyT,SAAyB1sO,EAAIvlF,QAAQiyT,SAASzoJ,EAAYl/L,EAAQiE,EAAKkkB,QACpH,IAAK,IAAIrkB,EAAIo7L,EAAWnkM,OAAS,EAAG+I,GAAK,EAAGA,KAAS3K,EAAI+lM,EAAWp7L,MAAIm3G,GAAKjjG,EAAI,EAAI7e,EAAE8hH,GAAKjjG,EAAI,EAAI7e,EAAE6G,EAAQiE,EAAKg3G,GAAK9hH,EAAE6G,EAAQiE,KAASg3G,GAChJ,OAAOjjG,EAAI,GAAKijG,GAAK7jH,OAAO4c,eAAehU,EAAQiE,EAAKg3G,GAAIA,CAChE,EAMI4n1B,IAAwB,SAAUpk5B,GAElC,SAASok5B,IACL,OAAkB,OAAXpk5B,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAaA,OAhBAkmD,IAAUgl5B,EAAQpk5B,GAIlBipS,IAAW,CACPjB,GAAS,KACVo8mB,EAAOv67B,UAAW,WAAO,GAC5Bo/U,IAAW,CACPjB,GAAS,KACVo8mB,EAAOv67B,UAAW,cAAU,GAC/Bo/U,IAAW,CACPjB,GAAS,KACVo8mB,EAAOv67B,UAAW,YAAQ,GAC7Bo/U,IAAW,CACPjB,GAAS,KACVo8mB,EAAOv67B,UAAW,aAAS,GACvBu67B,CACX,CAlB4B,CAkB1B/2mB,IAKE0uB,IAAsB,SAAU/7T,GAEhC,SAAS+7T,IACL,OAAkB,OAAX/7T,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAyBA,OA5BAkmD,IAAU28T,EAAM/7T,GAIhBipS,IAAW,CACPjB,GAAS,WACV+zB,EAAKlyW,UAAW,iBAAa,GAChCo/U,IAAW,CACPjB,GAAS,SACV+zB,EAAKlyW,UAAW,YAAQ,GAC3Bo/U,IAAW,CACPjB,GAAS,WACV+zB,EAAKlyW,UAAW,kBAAc,GACjCo/U,IAAW,CACPjB,GAAS,KACV+zB,EAAKlyW,UAAW,aAAS,GAC5Bo/U,IAAW,CACPjB,GAAS,aACV+zB,EAAKlyW,UAAW,kBAAc,GACjCo/U,IAAW,CACPjB,GAAS,IACV+zB,EAAKlyW,UAAW,eAAW,GAC9Bo/U,IAAW,CACPjB,GAAS,QACV+zB,EAAKlyW,UAAW,qBAAiB,GACpCo/U,IAAW,CACPjB,GAAS,KACV+zB,EAAKlyW,UAAW,YAAQ,GACpBkyW,CACX,CA9B0B,CA8BxB1uB,IAKElE,IAA2B,SAAUnpS,GAErC,SAASmpS,IACL,OAAkB,OAAXnpS,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAUA,OAbAkmD,IAAU+pS,EAAWnpS,GAIrBipS,IAAW,CACPjB,IAAS,IACVmB,EAAUt/U,UAAW,cAAU,GAClCo/U,IAAW,CACPjB,GAAS,MACVmB,EAAUt/U,UAAW,gBAAY,GACpCo/U,IAAW,CACPjB,GAAS,IACVmB,EAAUt/U,UAAW,aAAS,GAC1Bs/U,CACX,CAf+B,CAe7BkE,IAKEg3mB,IAA4C,SAAUrk5B,GAEtD,SAASqk5B,IACL,OAAkB,OAAXrk5B,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAUA,OAbAkmD,IAAUil5B,EAA4Brk5B,GAItCipS,IAAW,CACPjB,GAAS,OACVq8mB,EAA2Bx67B,UAAW,eAAW,GACpDo/U,IAAW,CACPjB,GAAS,IACVq8mB,EAA2Bx67B,UAAW,uBAAmB,GAC5Do/U,IAAW,CACPjB,GAAS,OACVq8mB,EAA2Bx67B,UAAW,wBAAoB,GACtDw67B,CACX,CAfgD,CAe9Ch3mB,IAKEquY,IAAwB,SAAU17qB,GAElC,SAAS07qB,IACL,OAAkB,OAAX17qB,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAOA,OAVAkmD,IAAUs8qB,EAAQ17qB,GAIlBipS,IAAW,CACPjB,GAAS,KACV0zY,EAAO7xtB,UAAW,aAAS,GAC9Bo/U,IAAW,CACPjB,GAAS,IACV0zY,EAAO7xtB,UAAW,aAAS,GACvB6xtB,CACX,CAZ4B,CAY1BruY,IAOEi3mB,IAAiC,SAAUtk5B,GAE3C,SAASsk5B,IACL,OAAkB,OAAXtk5B,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAmBA,OAtBAkmD,IAAUkl5B,EAAiBtk5B,GAI3BipS,IAAW,CACPjB,IAAS,IACVs8mB,EAAgBz67B,UAAW,cAAU,GACxCo/U,IAAW,CACPjB,GAAS,OACVs8mB,EAAgBz67B,UAAW,YAAQ,GACtCo/U,IAAW,CACPjB,GAAS,OACVs8mB,EAAgBz67B,UAAW,cAAU,GACxCo/U,IAAW,CACPjB,IAAS,IACVs8mB,EAAgBz67B,UAAW,0BAAsB,GACpDo/U,IAAW,CACPd,GAAQotjB,IAAM4uD,iBAAkBpolB,MACjCuolB,EAAgBz67B,UAAW,iBAAa,GAC3Co/U,IAAW,CACPd,GAAQ,CAAEx4N,MAAO,UAAWj4G,MAAO,IAAOgktB,MAC3C4oO,EAAgBz67B,UAAW,cAAU,GACjCy67B,CACX,CAxBqC,CAwBnCj3mB,IAKEk3mB,IAA4B,SAAUvk5B,GAEtC,SAASuk5B,IACL,OAAkB,OAAXvk5B,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAUA,OAbAkmD,IAAUml5B,EAAYvk5B,GAItBipS,IAAW,CACPjB,GAAS,KACVu8mB,EAAW167B,UAAW,aAAS,GAClCo/U,IAAW,CACPjB,GAAS,OACVu8mB,EAAW167B,UAAW,aAAS,GAClCo/U,IAAW,CACPjB,GAAS,OACVu8mB,EAAW167B,UAAW,WAAO,GACzB067B,CACX,CAfgC,CAe9Bl3mB,ICtLSm3mB,IAAgB,GAIhBC,IAAgB,OAIhBC,IAAe,eAIfC,IAAoB,oBAwBpB7O,IAAU,6BAYV8O,IAAgB,gBC5CvBC,IAAiC,WAMjC,SAASA,EAAgBC,GAErB5r8B,KAAKigC,KAAO,GACZjgC,KAAK4r8B,QAAUA,CACnB,CAwLA,OApLAD,EAAgBh77B,UAAUu7a,QAAU,SAAU7rb,GAC1C,IAAIwr8B,EAAa366B,SAASg8T,eAAeltV,KAAK4r8B,QAAQz27B,QAAQghB,GAAK,YAC/D216B,EAAaD,GAAct/6B,SAASs/6B,EAAWv56B,aAAa,WAAY,IAAM,EAElF,GADAtyB,KAAKk1iB,cAAc70iB,EAAGL,KAAK4r8B,SAAUE,GACjC9r8B,KAAK4r8B,QAAQ1/gB,QAAQv7B,QAAgC,aAAtB3wZ,KAAK4r8B,QAAQh/7B,MAAuB5M,KAAK4r8B,QAAQz8yB,UAAUwhQ,SAAY3wZ,KAAK4r8B,QAAQ1/gB,QAAQ6/gB,mBAAqB,CAChJF,EAAW1l8B,MAAMohQ,WAAa,SAC9B,IAAItmL,EAAQjhF,KAAK4r8B,QAAQI,kBAAoBhs8B,KAAK4r8B,QAAQK,SAAShr3B,MAAQjhF,KAAK4r8B,QAAQz8yB,UAAUl7C,SAC9Fj0G,KAAK4r8B,QAAQz8yB,UAAUl7C,SAC3Bj0G,KAAKks8B,aAAals8B,KAAK4r8B,QAASC,EAAY5q3B,EAChD,CACA,GAAIjhF,KAAK4r8B,QAAQz8yB,UAAUwhQ,SAAY3wZ,KAAK4r8B,QAAQ1/gB,QAAQ6/gB,oBAA+C,aAAtB/r8B,KAAK4r8B,QAAQh/7B,KAAsB,CAChHq0E,EAAQjhF,KAAK4r8B,QAAQI,kBAAoBhs8B,KAAK4r8B,QAAQx7mB,OAAOnvQ,MAAQjhF,KAAK4r8B,QAAQz8yB,UAAUluE,MAC5FjhF,KAAK4r8B,QAAQI,oBACbH,EAAW1l8B,MAAMohQ,WAAa,UAElCvnQ,KAAKms8B,iBAAiBN,EAAY7r8B,KAAK4r8B,QAAS3q3B,EACpD,CACJ,EAIA0q3B,EAAgBh77B,UAAUu77B,aAAe,SAAUz6mB,EAAUt8U,EAAS8rE,GAClD,IAAIgvQ,GAAU,CAAC,GACrBhuC,QAAQ9sS,EAAS,CACvB8+F,SAAUw9O,EAAStiM,UAAUl7C,SAC7BhzB,MAAOA,EACPwwQ,SAAU,SAAUx4U,GAChBA,EAAK9D,QAAQhP,MAAMohQ,WAAa,SACpC,GAER,EAIAoksB,EAAgBh77B,UAAUw77B,iBAAmB,SAAUh37B,EAASs8U,EAAUxwQ,GACtE,IAAI3hF,EAAQU,KACRmvJ,EAAY,IAAI8gM,GAAU,CAAC,GAC3B86mB,EAAWx+6B,SAASpX,EAAQhP,MAAMw9H,KAAM,IACxCyo0B,EAAal76B,SAASg8T,eAAeltV,KAAK4r8B,QAAQz27B,QAAQghB,GAAK,gBAC/D3X,EAAQ+N,SAAS6/6B,EAAW956B,aAAa,SAAU,IACvD68H,EAAU8yJ,QAAQ9sS,EAAS,CACvB8+F,SAAUw9O,EAAStiM,UAAUl7C,SAC7BhzB,MAAOA,EACPwwQ,SAAU,SAAUx4U,GAGhB,GAFAw4U,EAAS46mB,cAAe,EACxBpz7B,EAAKvU,KAAO,aACU,WAAlB+sV,EAAS7kV,MACLqM,EAAKysI,WAAazsI,EAAKgoE,MAAO,CAC9BhoE,EAAK9D,QAAQhP,MAAMohQ,WAAa,UAChC,IAAI3lQ,EAAQoyM,IAAO/6L,EAAKysI,UAAY,GAAKlnI,EAAQ,EAAIlf,EAAMss8B,QAAQU,aAAapy7B,EAAI,GAAK6w7B,GAAYvs7B,EAAQ,EAAIlf,EAAMss8B,QAAQU,aAAapy7B,EAAI,GAAIjB,EAAKg7F,SAAUw9O,EAAS4G,WAC5Kp/U,EAAK9D,QAAQhP,MAAMw9H,KAAO,GAC1B1qH,EAAK9D,QAAQhP,MAAMw9H,KAAO/hI,EAAQ,KAAKkV,UAC3C,CAER,EACAsiC,IAAK,SAAUngC,GACXw4U,EAAS46mB,cAAe,EACxBpz7B,EAAK9D,QAAQhP,MAAMw9H,KAAO,GAC1B1qH,EAAK9D,QAAQhP,MAAMw9H,KAAOon0B,EAAW,KAAKj07B,UAC9C,GAER,EACA607B,EAAgBh77B,UAAUukiB,cAAgB,SAAU70iB,EAAGks8B,EAAO1rP,GAC1D7gtB,KAAKws8B,WAAaxs8B,KAAKqlB,OAAQrlB,KAAK4r8B,QAAQ1/gB,QAAQ6/gB,qBAAsB1r8B,EAAEgI,OAAO8tB,GAAGxrB,QAAQ,iBAAmB,GAAKtK,EAAEgI,OAAO8tB,GAAGxrB,QAAQ,mBAAqB,GAAI3K,KAAK4r8B,QAAQI,kBAAyChs8B,KAAK4r8B,QAAQhq8B,OACtO5B,KAAKys8B,qBAAqBps8B,EAAGwgtB,EAAS7gtB,KAAKws8B,WAC/C,EAIAb,EAAgBh77B,UAAU0U,OAAS,SAAUy6Y,GACzC,IACIl+Z,EADA8q8B,EAAgB5siB,EAAYhpZ,WAOhC,OALI9W,KAAK4r8B,QAAQ1/gB,QAAQ7ma,SACrBqn7B,EAAgB1s8B,KAAK4r8B,QAAQ1/gB,QAAQ7ma,OACrCzjB,EAAQ,IAAI+U,OAAO,WAAiB,MACpC+17B,EAAgBA,EAAcr87B,QAAQzO,EAAMgV,OAAQkpZ,EAAYhpZ,aAE7D417B,CACX,EAIAf,EAAgBh77B,UAAUg87B,cAAgB,SAAU141B,GAChD,IAAI30G,EAAQU,KACSkxB,SAASg8T,eAAeltV,KAAK4r8B,QAAQz27B,QAAQghB,GAAK,cAEnEn2B,KAAK4s8B,gBAAkBx26B,YAAW,WAC1B92B,EAAMut8B,YACNvt8B,EAAMut8B,WAAWnD,SAEzB,GAAGz11B,GAEX,EAIA031B,EAAgBh77B,UAAU877B,qBAAuB,SAAUps8B,EAAGwgtB,EAAStvB,GACnE,IACI6yQ,EAAW,CACXtj3B,QAAQ,EAAOp8E,KAAMgn8B,IAAezr6B,KAAMsxpB,EAAiB,KAI/D,GAFAvxrB,KAAK4r8B,QAAQtrqB,QAAQorqB,IAAetH,GACpC7yQ,EAAiB6yQ,EAASnk6B,MACrBmk6B,EAAStj3B,OAEV,GADA9gF,KAAKigC,KAAO,GAAG7mB,OAAOgr7B,EAASnk6B,MACL,WAAtBjgC,KAAK4r8B,QAAQh/7B,KAAmB,CAChC,IAAIkg8B,EAAmB9s8B,KAAK4r8B,QAAQx7mB,OAAO28mB,oBAAsB/10B,IAAeh3H,KAAK4r8B,QAAQU,aAAapy7B,EACtG8y7B,EAAiD,aAA9Bht8B,KAAK4r8B,QAAQrM,aAAgCv/7B,KAAK4r8B,QAAQU,aAAany7B,EAVxF,EAUwGna,KAAK4r8B,QAAQU,aAAany7B,EAAKna,KAAK4r8B,QAAQU,aAAa1jzB,OAAS,GAC3K5oJ,KAAK4r8B,QAAQqB,kBAAoBjt8B,KAAK4r8B,QAAQqB,kBAAoBjt8B,KAAK4r8B,QAAQxI,WAAW8J,yBAA2B,EAXpH,EAaNlt8B,KAAKyvqB,cAAczvqB,KAAK4r8B,QAAS/qP,IAAU7gtB,KAAK4r8B,QAAQ1/gB,QAAQv7B,QAAW3wZ,KAAK4r8B,QAAQ1/gB,QAAQ6/gB,qBAAwB1r8B,EAAEgI,OAAO8tB,GAAGxrB,QAAQ,iBAAmB,EAA2I,IAAIqg8B,IAAiBhr8B,KAAK4r8B,QAAQx7mB,OAAO+8mB,YAAen20B,IAAgBh3H,KAAK4r8B,QAAQU,aAAapy7B,EAAI8y7B,GAA1O,IAAIhC,IAAgD,aAA9Bhr8B,KAAK4r8B,QAAQrM,aAA+BuN,EAblO,EAa8PA,EAAiBE,GAA8Iht8B,KAAK4r8B,QAAQwB,gBACpb,KACK,CACD,IAAIC,EAAoBrt8B,KAAK4r8B,QAAQK,SAASvrZ,YAAYxmiB,EAAI88G,IAC1Ds20B,EAAoBtt8B,KAAK4r8B,QAAQK,SAASvrZ,YAAYvmiB,EAAIna,KAAK4r8B,QAAQU,aAAany7B,EAAI68G,IAC5Fh3H,KAAKyvqB,cAAczvqB,KAAK4r8B,QAAS/qP,IAAU7gtB,KAAK4r8B,QAAQ1/gB,QAAQv7B,QAAW3wZ,KAAK4r8B,QAAQ1/gB,QAAQ6/gB,qBAAwB1r8B,EAAEgI,OAAO8tB,GAAGxrB,QAAQ,mBAAqB,EAAsE,IAAIqg8B,IAAiBhr8B,KAAK4r8B,QAAQK,SAASsB,kBAAkBrz7B,EAAI88G,IAAah3H,KAAK4r8B,QAAQK,SAASsB,kBAAkBpz7B,EAAIna,KAAK4r8B,QAAQU,aAAany7B,EAAI68G,KAAvN,IAAIg00B,IAAiBqC,EAAmBC,GAA8Ltt8B,KAAK4r8B,QAAQwB,gBAC/Z,CAEJpt8B,KAAKorV,YAAa,CACtB,EAIAugnB,EAAgBh77B,UAAU8+pB,cAAgB,SAAU88R,EAAO1rP,EAASlprB,EAAUgtuB,GACtE9jD,EACA7gtB,KAAK6s8B,WAAa,IAAIW,IAAW,CAC7Bl/zB,QAAS,IACTogD,OAAQ,GACR35K,QAAS/U,KAAKigC,KACdumD,KAAMxmF,KAAK4r8B,QAAQ1/gB,QAAQ1lW,KAC3BghL,OAAQxnQ,KAAK4r8B,QAAQ1/gB,QAAQ1kL,OAC7BmvS,iBAAiB,EACjBh/gB,SAAUA,EACVu1Y,MAAOlta,KAAK4r8B,QAAQ1+hB,MACpB00hB,WAAYj9L,EACZphuB,SAAU,KAEV7lB,OAAQ,IAERsn7B,QAAS,EAETK,QAAS,IACTvxC,UAAW9z5B,KAAK4r8B,QAAQ1/gB,QAAQ4ne,UAChCmxC,aAAc,EACdwI,cAAezt8B,KAAK4r8B,QAAQ8B,aAC5Bz51B,SAAU,IACV+v1B,eAAgB,CAAEt/7B,KAAM,WAAYyjC,OAAQnoC,KAAK4r8B,QAAQ1/gB,SACzDy8gB,gBAAiB3o8B,KAAK4r8B,QACtBp/c,UAAW+/c,EAAMl0mB,UACjBmN,YAAa,eACd,IAAMxlW,KAAK4r8B,QAAQz27B,QAAQghB,GAAK,YAG/Bn2B,KAAK6s8B,aACL7s8B,KAAK6s8B,WAAWl16B,SAAWA,EAC3B33B,KAAK6s8B,WAAW937B,QAAU/U,KAAKigC,KAC/BjgC,KAAK6s8B,WAAWn+wB,OAAS,GACzB1uL,KAAK6s8B,WAAWnv7B,OAAS,IACzB1d,KAAK6s8B,WAAW/4C,UAAY9z5B,KAAK4r8B,QAAQ1/gB,QAAQ4ne,UACjD9z5B,KAAK6s8B,WAAWjL,WAAaj9L,EAC7B3kwB,KAAK6s8B,WAAW5H,aAAe,EAC/Bjl8B,KAAK6s8B,WAAWzgnB,WAG5B,EAIAu/mB,EAAgBh77B,UAAUo8U,cAAgB,WACtC,MAAO,iBACX,EAOA4+mB,EAAgBh77B,UAAUymI,QAAU,WAChC,EAEGu0zB,CACX,CAnMqC,GCCjCgC,IAAmC,WACnC,SAASA,IACT,CAwVA,OAtVAA,EAAkBh97B,UAAUi97B,kBAAoB,SAAUz47B,EAASs8U,EAAUxwQ,EAAO61b,EAAe3zP,GAC/F,IAAI7jR,EAAQU,KACRmvJ,EAAY,IAAI8gM,GAAU,CAAC,GAC3B49mB,EAAa147B,EACb8+F,EAAYw9O,EAAS7uE,SAAY,IAAO6uE,EAAStiM,UAAUl7C,SAC3Dz1F,EAAQqv7B,EAAWv76B,aAAa,SAChCpY,EAAI2z7B,EAAWv76B,aAAa,KAC5Bgm4B,EAAe,EACf125B,EAAQ,EACRs0C,EAAUu7S,EAAS4G,WAAwC,aAA1B5G,EAAS8tmB,aAAgDhz6B,SAASrS,EAAG,IAA5B48f,EAC1E19d,EAAQq4S,EAAS4G,WAAwC,aAA1B5G,EAAS8tmB,aACxChz6B,SAAS/N,EAAO,IAAMs4f,EADkDvqf,SAAS/N,EAAO,IAAM03B,EAE9F435B,EAAOvh7B,SAASrS,EAAG,IAAMk/B,EAC7By05B,EAAW1n8B,MAAMohQ,WAAa,SAC9Bp4G,EAAU8yJ,QAAQ4rpB,EAAY,CAC1B551B,SAAUA,EACVhzB,MAAOA,EACPwwQ,SAAU,SAAUx4U,GAChBw4U,EAAS46mB,cAAe,EACpB56mB,EAAS4G,WAAyC,aAA1B5G,EAAS8tmB,aAC7Btm7B,EAAKysI,WAAazsI,EAAKgoE,QACvB4s3B,EAAW1n8B,MAAMohQ,WAAa,UAC1BkqF,EAAS7uE,UACThhR,EAAQtC,EAAMyu8B,cAAe907B,EAAKysI,UAAYzsI,EAAKg7F,SAAW1nF,SAASrS,EAAG,IAAKqS,SAAS/N,EAAO,KAAK,GACpG854B,EAAetktB,IAAO/6L,EAAKysI,UAAW,GAAK,GAAKzsI,EAAKg7F,UAAU,GAC/DkvK,EAAOnuP,aAAa,UAAWsj4B,EAAaxh5B,YAC5C+27B,EAAW746B,aAAa,IAAKpzB,EAAMkV,cAGnClV,EAAQoyM,IAAO/6L,EAAKysI,UAAWxvG,EAAOkD,EAAKngC,EAAKg7F,UAAU,GAC1D451B,EAAW746B,aAAa,IAAKpzB,EAAMkV,cAKvCmC,EAAKysI,WAAazsI,EAAKgoE,QACvB4s3B,EAAW1n8B,MAAMohQ,WAAa,UAC1BkqF,EAAS7uE,UACThhR,EAAQtC,EAAMyu8B,cAAe907B,EAAKysI,UAAYzsI,EAAKg7F,SAAW,EAAG1nF,SAAS/N,EAAO,KAAK,GACtF854B,EAAetktB,IAAO/6L,EAAKysI,UAAW,GAAK,GAAKzsI,EAAKg7F,UAAU,GAC/DkvK,EAAOnuP,aAAa,UAAWsj4B,EAAaxh5B,YAC5C+27B,EAAW746B,aAAa,QAASpzB,EAAMkV,cAGvClV,EAAQoyM,IAAO/6L,EAAKysI,UAAWxvG,EAAOkD,EAAKngC,EAAKg7F,UAAU,GAC1D451B,EAAW746B,aAAa,QAASpzB,EAAMkV,aAIvD,EACAsiC,IAAK,WACDq4S,EAAS46mB,cAAe,EACxBwB,EAAW1n8B,MAAMohQ,WAAa,GAC1BkqF,EAAS4G,WAAyC,aAA1B5G,EAAS8tmB,aAC7B9tmB,EAAS7uE,UACTirrB,EAAW746B,aAAa,IAAK9a,EAAEpD,YAC/BxX,EAAMsu8B,kBAAkBz47B,EAASs8U,EAAUxwQ,EAAO61b,EAAe3zP,IAGjE0qrB,EAAW746B,aAAa,IAAK846B,EAAKh37B,aAItC+27B,EAAW746B,aAAa,QAASxW,GAC7BizU,EAAS7uE,UACTtjR,EAAMsu8B,kBAAkBz47B,EAASs8U,EAAUxwQ,EAAO61b,EAAe3zP,IAGzEsuE,EAASnxD,QAAQ,oBAAqB,CAClC1+R,MAAO6vV,EAAS7vV,MAAOos8B,WAAYv8mB,EAASu8mB,WAC5CC,cAAex8mB,EAASw8mB,eAEhC,GAER,EAEAN,EAAkBh97B,UAAUu97B,sBAAwB,SAAU/47B,EAASg57B,EAAeC,EAAW38mB,EAAUora,GACvG,IAAIv9vB,EAAQU,KACRmvJ,EAAY,IAAI8gM,GAAU,CAAC,GAC3B49mB,EAAa147B,EACb+E,EAAI2z7B,EAAWv76B,aAAa,KAC5B9T,EAAQqv7B,EAAWv76B,aAAa,SAChC1wB,EAAQ,EACRs0C,EAAS13B,GAAW+N,SAAS/N,EAAO,KAAQ2v7B,EAC5C/05B,EAAOq4S,EAAS66mB,aAAapy7B,EAAIu3U,EAAS66mB,aAAa9t7B,OAAWA,EAAU+N,SAAS/N,EAAO,IAAO2v7B,GACnGl61B,EAAaw9O,EAAS48mB,uBAAwD58mB,EAAStiM,UAAUl7C,SAAW,IAA5Dw9O,EAAStiM,UAAUl7C,SACvEk7C,EAAU8yJ,QAAQ46c,EAAU,CACxB5opB,SAAUA,EACVhzB,MAAO,EACPwwQ,SAAU,SAAUx4U,GACZw4U,EAAS4G,WAAyC,aAA1B5G,EAAS8tmB,cACjC397B,EAAQoyM,IAAO/6L,EAAKysI,UAAWn5H,SAASrS,EAAG,KAAOu3U,EAAS66mB,aAAapy7B,EAAIi07B,EAAe/05B,EAAKngC,EAAKg7F,UAAU,GAC1Gw9O,EAAS48mB,uBAIVR,EAAW746B,aAAa,IAAKy8T,EAAS68mB,YAAY1s8B,EAAOus8B,EAAeC,IAHxEP,EAAW746B,aAAa,IAAKpzB,EAAMkV,cAOvClV,EAAQoyM,IAAO/6L,EAAKysI,UAAWxvG,EAAOkD,EAAKngC,EAAKg7F,UAAU,GACrDw9O,EAAS48mB,uBAIVR,EAAW746B,aAAa,IAAKy8T,EAAS68mB,YAAY1s8B,EAAOus8B,EAAeC,IAHxEP,EAAW746B,aAAa,IAAKpzB,EAAMkV,YAM/C,EACAsiC,IAAK,WACGq4S,EAAS4G,YAAc5G,EAAS48mB,wBAAsD,aAA1B58mB,EAAS8tmB,aACrEsO,EAAW746B,aAAa,IAAK9a,EAAEpD,YAEzB26U,EAAS48mB,wBACfR,EAAW746B,aAAa,IAAKkhB,EAAMp/B,YAElC26U,EAAS88mB,sBACVjv8B,EAAM4u8B,sBAAsB/47B,EAASg57B,EAAeC,EAAW38mB,EAAUora,EAEjF,GAER,EAEA8wM,EAAkBh97B,UAAU697B,mBAAqB,SAAUr57B,EAASs8U,EAAU7vV,GAC1E,IAAItC,EAAQU,KACRmvJ,EAAY,IAAI8gM,GAAU,CAAC,GAC3BqW,EAAQ,IAAO7U,EAAStiM,UAAUl7C,SACtCk7C,EAAU8yJ,QAAQ9sS,EAAS,CACvB8+F,SAAUw9O,EAAStiM,UAAUl7C,SAC7BhzB,MAAOwwQ,EAAStiM,UAAUluE,MAC1BwwQ,SAAU,WACN7vV,GAAU6vV,EAAS4G,WAAciO,EAAQA,EACzCnxV,EAAQ6f,aAAa,oBAAqB,aAAepzB,EAAQ,gBACrE,EACAw3C,IAAK,WACIq4S,EAAS88mB,sBACVjv8B,EAAMkv8B,mBAAmBr57B,EAASs8U,EAAU7vV,EAEpD,GAER,EAEA+r8B,EAAkBh97B,UAAU897B,oBAAsB,SAAUv07B,EAAGC,EAAGqoQ,EAAQksrB,EAAaC,EAAUx57B,EAASs8U,EAAU28mB,EAAWnt3B,EAAOypZ,EAAYkke,EAAezrrB,GAC7J,IAAI7jR,EAAQU,KACRmvJ,EAAY,IAAI8gM,GAAU,CAAC,GAC3B4+mB,EAAe157B,EACf+gC,EAAQu7S,EAAS+4mB,WACjBsE,EAAatsrB,EAAU4rrB,EAAY,EACnCh15B,EAAM,EACNk/2B,EAAe,EACfrkzB,EAAYw9O,EAAS7uE,SAAY,IAAO6uE,EAAStiM,UAAUl7C,SAC/D/9D,GAAoC,UAA1Bu7S,EAAS8tmB,cAA4BoP,IAAapD,KAA8B,IAAboD,EACvEl9mB,EAAS4G,UAAcizmB,IAAqB8C,GAAa,IAAsBA,EAAa,EAClGO,GAAuC,UAA1Bl9mB,EAAS8tmB,cAA4BoP,IAAapD,KAA8B,IAAboD,EAC3ErD,IAAqB8C,EAAY,EACtCM,GAA0C,UAA1Bj9mB,EAAS8tmB,cAA4BoP,IAAapD,KAA8B,IAAboD,EAC7El9mB,EAAS4G,WAAc,IAAsB+1mB,EAAa9C,IAAqB8C,EAAa,EAClG,IAAIW,EAAahjoB,GAAkB2+J,GAA4Bx0b,EAAbw0b,EAC9Cske,EAAWjjoB,GAAkB2+J,GAA0Cike,EAA3BA,EAAWC,EAC3DC,EAAa756B,aAAa,aAAc,UACxCm6H,EAAU8yJ,QAAQ4spB,EAAc,CAC5B561B,SAAUA,EACVhzB,MAAOA,EACPwwQ,SAAU,SAAUx4U,GAChBw4U,EAAS46mB,cAAe,EACpBpz7B,EAAKysI,WAAazsI,EAAKgoE,QACvB4t3B,EAAa756B,aAAa,aAAc,WACpCy8T,EAAS7uE,UACTxpO,EAAM95C,EAAMyu8B,cAAe907B,EAAKysI,UAAYzsI,EAAKg7F,SAAW861B,EAAUC,EAAQv9mB,EAAS4G,WACvFigkB,EAAetktB,IAAO/6L,EAAKysI,UAAW,GAAK,GAAKzsI,EAAKg7F,UAAU,GAC/DkvK,EAAOnuP,aAAa,UAAWsj4B,EAAaxh5B,YAC5C+37B,EAAa756B,aAAa,IAAKu16B,IAAWrw7B,EAAGC,EAAG207B,EAAY545B,EAAOkD,EAAM,IAAKq4S,EAAS4G,WAAW,MAGlGj/S,EAAM46J,IAAO/6L,EAAKysI,UAAWqpzB,EAAUC,EAAQ/17B,EAAKg7F,SAAUw9O,EAAS4G,WACvEw2mB,EAAa756B,aAAa,IAAKu16B,IAAWrw7B,EAAGC,EAAG207B,EAAY545B,EAAOkD,EAAM,IAAKq4S,EAAS4G,WAAW,KAG9G,EACAj/S,IAAK,WACDq4S,EAAS46mB,cAAe,EACxBwC,EAAa756B,aAAa,aAAc,IACxC656B,EAAa756B,aAAa,IAAKu16B,IAAWrw7B,EAAGC,EAAG207B,EAAY545B,EAAOw45B,EAAaj9mB,EAAS4G,WAAW,IAChG5G,EAAS7uE,UACTtjR,EAAMmv8B,oBAAoBv07B,EAAGC,EAAGqoQ,EAAQksrB,EAAaC,EAAUx57B,EAASs8U,EAAU28mB,EAAWnt3B,EAAOypZ,EAAYkke,EAAezrrB,GAEnIsuE,EAASnxD,QAAQ,oBAAqB,CAClC1+R,MAAO6vV,EAAS7vV,MAAOos8B,WAAYv8mB,EAASu8mB,WAC5CC,cAAex8mB,EAASw8mB,eAEhC,GAER,EAEAN,EAAkBh97B,UAAUs+7B,wBAA0B,SAAUC,EAAkBz9mB,EAAUv7S,EAAOkD,EAAKl/B,EAAGC,EAAGqoQ,EAAQ4rrB,EAAWvxM,GAC7H,IAAIv9vB,EAAQU,KACRmvJ,EAAY,IAAI8gM,GAAU,CAAC,GAC3B6+mB,EAAatsrB,GAAYivE,EAAS48mB,uBAA4C,EAAjBD,EAAY,GACzEn61B,EAAWw9O,EAAStiM,UAAUl7C,SAC9BryG,EAAU6vV,EAAS48mB,uBAA4C,IAAOp61B,EAAzB,IAAOA,EACxDk7C,EAAU8yJ,QAAQ46c,EAAU,CACxBpra,SAAU,WACNy9mB,EAAiB/o8B,MAAMohQ,WAAa,UACpCrxN,GAAUu7S,EAAS4G,WAAcz2V,EAAQA,EACzCw3C,GAAQq4S,EAAS4G,WAAcz2V,EAAQA,EACvCst8B,EAAiBl66B,aAAa,IAAKu16B,IAAWrw7B,EAAGC,EAAG207B,EAAY545B,EAAQ,IAAKkD,EAAM,IAAKq4S,EAAS4G,WAAY5G,EAAS48mB,wBAC1H,EACAj15B,IAAK,WACIq4S,EAAS88mB,sBACVjv8B,EAAM2v8B,wBAAwBC,EAAkBz9mB,EAAUv7S,EAAOkD,EAAKl/B,EAAGC,EAAGqoQ,EAAQ4rrB,EAAWvxM,EAEvG,GAER,EAEA8wM,EAAkBh97B,UAAUw+7B,iBAAmB,SAAUC,EAAWl55B,EAAOkD,EAAKq4S,EAAUxwQ,EAAO2ptB,GAC7F,IAEImkK,EACAC,EAHA7/yB,EAAY,IAAI8gM,GAAU,CAAC,GAC3B7hD,EAAQ,IAAI6hD,GAAU,CAAC,GAGvBhwT,EAAOmv6B,EAAUlm6B,UACjBtnC,EAAQ,EACRyt8B,EAAO,EACP7D,EAAe,EAEf8D,EAAY79mB,EAAS89mB,WAAWtv6B,KAChCuv6B,EAAW/9mB,EAAS89mB,WAAW72L,cAC/BnjY,EAAOhpX,SAAS6i7B,EAAU986B,aAAa,KAAM,IACjD886B,EAAUp66B,aAAa,aAAc,UACf,WAAlBy8T,EAAS7kV,OAGTmi8B,GAFAA,EAAYt9mB,EAAS4G,UAAc5G,EAAS66mB,aAAapy7B,EAAIu3U,EAAS66mB,aAAa9t7B,MAAUosxB,EAAW,EACpG10vB,EAAS00vB,EAAW,IACA,EAAK,EAAImkK,EACjCC,EAAUv9mB,EAAS4G,UAAa02mB,EAAWx5jB,EAAOA,EAAOw5jB,GAE7D5/yB,EAAU8yJ,QAAQmtpB,EAAW,CACzBn71B,SAAUw9O,EAAStiM,UAAUl7C,SAC7BhzB,MAAOA,EACPwwQ,SAAU,SAAUx4U,GAChBw4U,EAAS46mB,cAAe,EACxBpz7B,EAAKvU,KAAO,aACU,WAAlB+sV,EAAS7kV,KACLqM,EAAKysI,WAAazsI,EAAKgoE,OACL,KAAdqu3B,IACAF,EAAUp66B,aAAa,aAAc,WACrCpzB,EAAQoyM,IAAO/6L,EAAKysI,UAAWxvG,EAAOkD,EAAKngC,EAAKg7F,UAAU,GAC1Du31B,EAAej/6B,UAAY3oB,KAAKmgB,MAAMniB,GAAU6vV,EAAS66mB,aAAa9t7B,MAtBzE,KAsB8F1H,WAAY,IACvGs47B,EAAUlm6B,UAAYsi6B,EAAa107B,WAAa,IAC/B,QAAb047B,GAAmC,WAAbA,IACtBH,EAAOr7vB,IAAO/6L,EAAKysI,UAAWqpzB,EAAUC,EAAQ/17B,EAAKg7F,SAAUw9O,EAAS4G,WACxE+2mB,EAAUp66B,aAAa,IAAKq66B,EAAKv47B,cAKtB,aAAlB26U,EAAS7kV,MACI,KAAd0i8B,IACAF,EAAUp66B,aAAa,aAAc,WACrCpzB,EAAQoyM,IAAO/6L,EAAKysI,UAAWxvG,EAAOkD,EAAMlD,EAAOj9B,EAAKg7F,UAAU,GAClEu31B,EAAej/6B,UAAY3oB,KAAKmgB,MAAMniB,GAAU6vV,EAASg+mB,WAnCxD,KAmCkF347B,WAAY,IAC/Fs47B,EAAUlm6B,UAAYsi6B,EAAa107B,WAAa,IAG5D,EACAsiC,IAAK,WACDq4S,EAAS46mB,cAAe,EACN,KAAdiD,GACAF,EAAUlm6B,UAAYjJ,EACtBmv6B,EAAUp66B,aAAa,IAAKugX,EAAKz+X,aAGjCs3R,EAAM6T,QAAQmtpB,EAAW,CACrB39mB,SAAU,SAAUx4U,GAChBm27B,EAAUp66B,aAAa,aAAc,WACrCpzB,EAAQoyM,IAAO/6L,EAAKysI,UAAW,EAAG,EAAGzsI,EAAKg7F,UAAU,GACpDm71B,EAAUp66B,aAAa,UAAWpzB,EAAMkV,WAC5C,EACAsiC,IAAK,WACDg25B,EAAUp66B,aAAa,UAAW,IACtC,GAGZ,GAER,EAEA246B,EAAkBh97B,UAAU++7B,sBAAwB,SAAUb,EAAcp9mB,EAAUk+mB,EAAaf,GAC/F,IAIIgB,EACAC,EAGAlB,EACAmB,EACAC,EAVA5gzB,EAAY,IAAI8gM,GAAU,CAAC,GAC3BruV,EAAQ,EAERu+H,EAAesxN,EAASr8I,YAAYhyM,OAAS,EAG7C8yC,EAAQu7S,EAAS+4mB,WACjBiF,EAAah+mB,EAASg+mB,WAItBtv0B,GAAgBsxN,EAASu+mB,2BACzBH,EAAsB3+6B,SAASg8T,eAAeuE,EAASt8U,QAAQghB,GAAK,eAAerwB,SAAS,KACjE+p8B,EAAoB/p8B,SAAS,IACJ,SAA5C+p8B,EAAoB/p8B,SAAS,GAAGsiC,UAChCwn6B,EAAwBC,EAAoB/p8B,SAAS,IAIjE6o8B,GAAal9mB,EAAS2ymB,SAASxi8B,MAAQ6vV,EAASw1D,UAAYx1D,EAASy1D,QAAUz1D,EAASw1D,SAAYx1D,EAASg+mB,WAC7Gh+mB,EAASw+mB,cAAgBtB,EACpBl9mB,EAAS2ymB,SAASxi8B,MAAQ6vV,EAASw1D,SAAWx1D,EAAS2ymB,SAASxi8B,MAAQ6vV,EAASy1D,QAAW,EAAIynjB,EACrGl9mB,EAASy+mB,YAAch65B,EAAQy45B,EAC/BoB,GAAkBt+mB,EAAS2ymB,SAASxi8B,MAAQ6vV,EAASw1D,UAAYx1D,EAASy1D,QAAUz1D,EAASw1D,SArB5E,IAsBjB8ojB,EAAiBt+mB,EAAS2ymB,SAASxi8B,MAAQ6vV,EAASw1D,SAAWx1D,EAAS2ymB,SAASxi8B,MAAQ6vV,EAASy1D,QAAW,EACzGtjZ,KAAKmgB,MAAMgs7B,GACf,IAAIrle,EAAe3+J,GAAkB4joB,GAA8Bz55B,EAAdy55B,EACjD5E,EAAah/nB,GAAkB4joB,GAA2ChB,EAA3BA,EAAWC,EAC1Dn9mB,EAAS2ymB,SAASxi8B,OAAS6vV,EAASw1D,SAAWx1D,EAAS2ymB,SAASxi8B,MAAQ6vV,EAASy1D,QAClF0ojB,EAAsB1m6B,UAAY6m6B,EAAgB,IAGlD5gzB,EAAU8yJ,QAAQ4spB,EAAc,CAC5B561B,SAAUw9O,EAAStiM,UAAUl7C,SAC7BhzB,MAAOwwQ,EAAStiM,UAAUluE,MAC1BwwQ,SAAU,SAAUx4U,GAChBw4U,EAAS46mB,cAAe,EACpBls0B,GAAgByv0B,IAChBhu8B,EAAQoyM,IAAO/6L,EAAKysI,UAAWglV,EAAYqge,EAAU9x7B,EAAKg7F,UAAU,GACpE671B,EAAuBvj7B,WAAY3oB,KAAKmgB,MAAMniB,GAASs0C,GAASu55B,EArC/D,KAqCyF347B,WAAY,IACtG847B,EAAsB1m6B,UAAY4m6B,EAAuBA,EAAqBh57B,WAAa,IAAM,KAEzG,EACAsiC,IAAK,WACDq4S,EAAS46mB,cAAe,EACxBuD,EAAsB1m6B,UAAY6m6B,EAAgB,GACtD,GAGZ,EACApC,EAAkBh97B,UAAUo97B,cAAgB,SAAUps7B,EAAGu0B,EAAOkD,EAAKi/S,GACjE,IAAI51U,EAAO,EAAI7e,KAAKwe,IAAI,EAAIT,EAAG,GAE/B,OADgBu0B,GAAWmiT,GAA8B51U,EAAO22B,EAAvB32B,EAAO22B,EAEpD,EACOu05B,CACX,CA3VuC,GCFnCwC,IAAyB,WACzB,SAASA,IACT,CA8NA,OA5NAA,EAAQx/7B,UAAUy/7B,oBAAsB,SAAU3+mB,EAAUt7T,EAAI3X,EAAO8vH,EAAS8/zB,EAAWD,GACvF,IAAI/L,EAAQ3wmB,EAAS4G,UAAyC,UAA1B5G,EAAS8tmB,aACxC9tmB,EAAS66mB,aAAapy7B,EAAIu3U,EAAS66mB,aAAa9t7B,MAAW8s7B,IAAqB8C,EAChF38mB,EAAS66mB,aAAapy7B,EAAIu3U,EAAS66mB,aAAa9t7B,MACrB,UAA1BizU,EAAS8tmB,aAA6B9tmB,EAAS66mB,aAAapy7B,EAAKox7B,IAAqB8C,EAAa38mB,EAAS66mB,aAAapy7B,EAC3Hmo7B,EAAQ5wmB,EAAS66mB,aAAany7B,EAAKs3U,EAAS66mB,aAAa1jzB,OAAS,EAClEynzB,EAAY5+mB,EAAS4+mB,UAAY5+mB,EAAS2xmB,WAAWkN,eACrDC,EAAWpC,EAAgB18mB,EAAS++mB,aACpCC,EAAetC,GAAkB18mB,EAAS++mB,aAAe,GAAKH,EAClEI,GAAeA,GACiB,UAA1Bh/mB,EAAS8tmB,aAA4B9tmB,EAAS++mB,cAAgBlF,IAAgB8C,GAAa,IAAM38mB,EAAS++mB,aAWhH,IAVA,IAGIE,EACAj60B,EAEAmnL,EACA+ypB,EAPAC,EAAiC,UAA1Bn/mB,EAAS8tmB,aAA6B8Q,EAAY/E,IAAgB8C,EAAciC,EACvFQ,EAAep/mB,EAASnxB,SAAS29nB,YAAY,CAAE,GAAMxsmB,EAASt8U,QAAQghB,GAAKA,IAC3EvL,EAAQhnB,KAAKC,KAAK2a,EAAQ+x7B,GAG1Bvg8B,EAAI,EAGJ8g8B,EAAsC,UAA1Br/mB,EAAS8tmB,aAA6B/g7B,EAAS8s7B,IAAgB8C,EAAc5v7B,EACzFuy7B,EAAkBt/mB,EAASw7mB,mBAAqBx7mB,EAAS2xmB,WAAW8J,wBAC/D/g8B,EAAI,EAAGA,EAAIye,EAAOze,IACvBuk8B,EAAYI,EAAWL,EAAeK,EAAWL,EAC7Czg8B,EAAIyhV,EAASu/mB,aAAa5t8B,QAC1BqzH,EAAQg7N,EAASu/mB,aAAahh8B,GAC9BA,MAGAA,EAAI,EACJymH,EAAQg7N,EAASu/mB,aAAahh8B,GAC9BA,KAEJ4tS,EAAS,IAAI8kpB,IAAWjxmB,EAASt8U,QAAQghB,GAAKA,EAAKhqB,EAAG,OAAQ4k8B,EAAiBt60B,EAAO6X,EAAS,IAAKtuI,KAAKix8B,qBAAqB7O,EAAMC,EAAMqO,EAAUj/mB,EAAS4G,YAC7Js4mB,EAAcl/mB,EAASnxB,SAAS0ve,SAASpyf,GACX,UAA1B6zC,EAAS8tmB,cACToR,EAAY376B,aAAa,iBAAkB,SAE/C676B,EAAan/6B,YAAYi/6B,GACzBvO,GAAS3wmB,EAAS4G,WAAco4mB,EAAcG,EAAMH,EAAcG,EAElEE,GADAA,GAAYL,EAAcG,GACH,EAAK,EAAIE,EAEpC,OAAOD,CACX,EACAV,EAAQx/7B,UAAUsg8B,qBAAuB,SAAU/27B,EAAGC,EAAGqE,EAAO65U,GAC5D,MAAO,KAAYn+U,EAAI,IAAMC,EAAtB,MAAuCD,GAAMm+U,GAAc75U,EAAQA,IAAU,IAAMrE,CAC9F,EAEAg27B,EAAQx/7B,UAAUug8B,sBAAwB,SAAUz/mB,EAAUt7T,EAAIjc,EAAGC,EAAGmpG,EAAG1hH,EAAO0sI,EAAS8/zB,EAAWqB,EAAYtB,GAC9G,IAAIj45B,EAAQu7S,EAAS+4mB,WACjBpx5B,EAAMp5C,KAAKmx8B,aAAa1/mB,EAASw1D,QAASx1D,EAASy1D,QAAStlZ,EAAO6vV,EAASg+mB,YAChFr25B,GAAkC,UAA1Bq4S,EAAS8tmB,cAA4B9tmB,EAASg+mB,aAAelE,IACjEvr8B,KAAKmx8B,aAAa,EAAGhD,EAAiB7C,IAAqB8C,EAAYqB,GAAc,EACzF,IAAIp57B,EAAQ837B,GAAkB18mB,EAASg+mB,aAAelE,IAAiB95mB,EAAS++mB,aAC5E/+mB,EAAS++mB,aAAe,IAAM/+mB,EAAS4+mB,UAAY5+mB,EAAS2xmB,WAAWgO,kBAC3E/67B,GAAQA,GACwB,UAA1Bo7U,EAAS8tmB,cACJ9tmB,EAASg+mB,aAAelE,IACvB95mB,EAAS++mB,aAAe/+mB,EAAS++mB,aAAe,GAAKlF,IAAgB8C,EAAa,IAAM38mB,EAAS++mB,aAC7G,IAAIa,EAAYrx8B,KAAKmx8B,aAAa,EAAGhD,EAAgBA,EAAgB18mB,EAAS++mB,aAAef,GAC7F4B,GAAwC,UAA1B5/mB,EAAS8tmB,cAA4B9tmB,EAASg+mB,aAAelE,IACvEvr8B,KAAKmx8B,aAAa,EAAGhD,EAAiB7C,IAAqB8C,EAAYqB,GAAc,EACzF,IAAI6B,EAAStx8B,KAAKmx8B,aAAa,EAAGhD,EAAe937B,EAAMo57B,GACnDmB,EAAM5w8B,KAAKmx8B,aAAa,EAAGhD,EAAgB18mB,EAAS4+mB,UAAY5+mB,EAAS2xmB,WAAWgO,iBAAmB3B,GAC3GmB,GAAkC,UAA1Bn/mB,EAAS8tmB,aAA4Bv/7B,KAAKmx8B,aAAa,EAAGhD,EAAgB7C,IAAgB8C,EAAYqB,GAAc,EAY5H,IAXA,IAGIkB,EACAY,EACAC,EAEA/60B,EAEAmnL,EATAizpB,EAAep/mB,EAASnxB,SAAS29nB,YAAY,CAAE,GAAMxsmB,EAASt8U,QAAQghB,GAAKA,IAC3Es76B,EAAW7t8B,KAAKiG,MAAMuvC,EAAMi45B,GAC5Bzm7B,EAAQhnB,KAAKC,MAAMu1C,EAAMw35B,EAAMa,GAAYH,GAI3CI,GAAax75B,GAAUu7S,EAAS4G,WAAci5mB,EAASA,IAAW,IAElEth8B,EAAI,EAEJ2h8B,EAAoBlgnB,EAASw7mB,mBAAqBx7mB,EAAS2xmB,WAAWwO,0BACjEzl8B,EAAI,EAAGA,EAAIye,EAAOze,IAGvBwk8B,EAAcpG,IAAWrw7B,EAAGC,EAAGmpG,EAAGptE,EAFlCs75B,EAAc//mB,EAAS4G,UAAe5G,EAAS+4mB,WAAapx5B,EAAMs45B,EAAajgnB,EAAS+4mB,WAAapx5B,EAAMs45B,EACrGjgnB,EAAS+4mB,WAAapx5B,EAAMs45B,EAAajgnB,EAAS+4mB,WAAapx5B,EAAMs45B,EACtBjgnB,EAAS4G,WAC1DroV,EAAIyhV,EAASu/mB,aAAa5t8B,QAC1BqzH,EAAQg7N,EAASu/mB,aAAahh8B,GAC9BA,MAGAA,EAAI,EACJymH,EAAQg7N,EAASu/mB,aAAahh8B,GAC9BA,KAEJ4tS,EAAS,IAAI8kpB,IAAWjxmB,EAASt8U,QAAQghB,GAAKA,EAAKhqB,EAAG,OAAQwl8B,EAAmBl70B,EAAO6X,EAAS,IAAKqi0B,GACtGY,EAAkB9/mB,EAASnxB,SAAS0ve,SAASpyf,GACf,UAA1B6zC,EAAS8tmB,cACTgS,EAAgBv86B,aAAa,iBAAkB,SAEnD676B,EAAan/6B,YAAY6/6B,GACzBr75B,EAAQs75B,GAAe//mB,EAAS4G,WAAcu4mB,EAAMA,GACpDc,GAAcjgnB,EAAS4G,WAAci5mB,EAASV,EAAMU,EAASV,EAEjE,OAAOC,CACX,EACAV,EAAQx/7B,UAAUwg8B,aAAe,SAAUvn5B,EAAK3c,EAAKrrC,EAAO6t8B,GAExD,OADc7t8B,EAAQgoD,IAAQ3c,EAAM2c,GAAQ6l5B,CAEhD,EACAU,EAAQx/7B,UAAUkh8B,kBAAoB,SAAUj4c,EAAYnoK,EAAU08mB,GAoBlE,IAnBA,IASIxP,EACAmT,EACAC,EACAn0pB,EACAmxpB,EACAC,EACAvnmB,EACA01iB,EACA1mxB,EACAu70B,EAlBAz8jB,EAAO9jD,EAAS66mB,aAAapy7B,GAAMu3U,EAAS4G,UAAa5G,EAAS66mB,aAAa9t7B,MAAQ,GACvFkpV,EAAUjW,EAAS66mB,aAAany7B,EAAKs3U,EAAS66mB,aAAa1jzB,OAAS,EACpEqpzB,EAAaxgnB,EAASnxB,SAAS29nB,YAAY,CAAE,GAAMxsmB,EAASt8U,QAAQghB,GAAK,sBACzEjzB,EAAQuuV,EAASygnB,YACjB9D,EAAY38mB,EAASw7mB,mBAAqBx7mB,EAAS2xmB,WAAW8J,wBAC9D5+zB,EAAUmjN,EAAS2xmB,WAAW+O,gBAC9BC,EAAW3gnB,EAASw1D,QACpBorjB,EAAW5gnB,EAAS7vV,MACpB0w8B,EAAS7gnB,EAAS4G,UAAa,IAAO,GAWjClsV,EAAI,EAAGA,EAAIjJ,EAAME,OAAQ+I,IAC9B2l8B,EAAc5u8B,EAAMiJ,GAAG+pC,OAASk85B,GAAYlv8B,EAAMiJ,GAAG+pC,OAASm85B,GAC1Dnv8B,EAAMiJ,GAAGitC,KAAOg55B,GAAYlv8B,EAAMiJ,GAAGitC,KAAOi55B,EAChDtD,EAAWn1c,EAAanoK,EAAS8gnB,uBAAuBrv8B,EAAMiJ,GAAG+pC,MAAOk85B,EAAUC,GAClFrD,EAASp1c,EAAanoK,EAAS8gnB,uBAAuBrv8B,EAAMiJ,GAAGitC,IAAKg55B,EAAUC,GAC9E5qmB,EAAS8tC,GAAS9jD,EAAS4G,WAAc02mB,EAAWA,GACpD5xD,EAAO5ngB,GAAS9jD,EAAS4G,WAAc22mB,EAASA,GAChDvnmB,EAAUqqmB,EAAgBrgnB,EAAS+gnB,YAAcrm8B,EAAI,EAAKs7V,EAAS6qmB,EAAQ7qmB,EAAU8tC,EACrF4ngB,EAAQ20D,EAAc30D,EAAO5ngB,EAC7B9+Q,EAASg7N,EAAS+gnB,WAAc,sBAAwBrm8B,EAAI,IAAMjJ,EAAMiJ,GAAGsqH,MAC3EmnL,EAAS,IAAI8kpB,IAAWjxmB,EAASt8U,QAAQghB,GAAK,gBAAkBhqB,EAAG,OAAQii8B,EAAW330B,EAAO6X,EAAS,IAAK,KAAYm5N,EAAS,IAAMC,EAA3B,KAAgDy1iB,EAAO,IAAMz1iB,GACxKqqmB,EAAYtgnB,EAASnxB,SAAS0ve,SAASpyf,GACT,UAA1B6zC,EAAS8tmB,cAA4B4O,GACrC4D,EAAU/86B,aAAa,iBAAkB,SAE7Ci96B,EAAWvg7B,YAAYqg7B,GACnBtgnB,EAAS+gnB,aAELR,EADA9u8B,EAAME,OAAS,IAAM+I,EACVjJ,EAAMiJ,GAAGsqH,MAGTvzH,EAAMiJ,EAAI,GAAGsqH,MAE5Bko0B,EAAW3+7B,KAAKyy8B,uBAAuBtm8B,EAAGjJ,EAAMiJ,GAAGsqH,MAAOu70B,EAAUvqmB,EAAQ01iB,EAAM1rjB,GAClFwgnB,EAAWvg7B,YAAYit6B,IAG/B,OAAOsT,CACX,EACA9B,EAAQx/7B,UAAU+h8B,oBAAsB,SAAUzhiB,EAASC,EAAS1uJ,EAAQivE,GAiBxE,IAhBA,IAQIktmB,EACA6L,EACAC,EACAsH,EACAY,EACA/0pB,EACAnnL,EACAu70B,EAfAC,EAAaxgnB,EAASnxB,SAAS29nB,YAAY,CAAE,GAAMxsmB,EAASt8U,QAAQghB,GAAK,wBACzEjzB,EAAQuuV,EAASygnB,YACjB9D,EAAY38mB,EAASw7mB,mBAAqBx7mB,EAAS2xmB,WAAW8J,wBAC9D5+zB,EAAUmjN,EAAS2xmB,WAAW+O,gBAC9BC,EAAW3gnB,EAASw1D,QACpBorjB,EAAW5gnB,EAAS7vV,MACpBs0C,EAAQu7S,EAAS+4mB,WACjBoI,EAAW5y8B,KAAKmx8B,aAAa1/mB,EAASw1D,QAASx1D,EAASy1D,QAASz1D,EAAS7vV,MAAO6vV,EAASg+mB,YASrFtj8B,EAAI,EAAGA,EAAIjJ,EAAME,OAAQ+I,IAC9Bwm8B,EAAgBzv8B,EAAMiJ,GAAG+pC,OAASk85B,GAAYlv8B,EAAMiJ,GAAG+pC,OAASm85B,GAC5Dnv8B,EAAMiJ,GAAGitC,KAAOg55B,GAAYlv8B,EAAMiJ,GAAGitC,KAAOi55B,EAChD7H,EAAaxq8B,KAAKmx8B,aAAaiB,EAAUC,EAAUnv8B,EAAMiJ,GAAG+pC,MAAO085B,GACnEnI,EAAWzq8B,KAAKmx8B,aAAaiB,EAAUC,EAAUnv8B,EAAMiJ,GAAGitC,IAAKw55B,GAC/DpI,EAAcmI,GAAiBz85B,GAAUu7S,EAAS4G,WAAcmymB,EAAaA,IAAe,IAAMt05B,EAClGu05B,EAAYkI,GAAiBz85B,GAAUu7S,EAAS4G,WAAcoymB,EAAWA,IAAa,IAAMv05B,EAC5FugF,EAASg7N,EAAS+gnB,WAAc,wBAA0Brm8B,EAAI,IAAMjJ,EAAMiJ,GAAGsqH,MAC7EmnL,EAAS,IAAI8kpB,IAAWjxmB,EAASt8U,QAAQghB,GAAK,kBAAoBhqB,EAAG,OAAQii8B,EAAW330B,EAAO6X,EAAS,IAAKi8zB,IAAWt5hB,EAASC,EAAS1uJ,EAAQgorB,EAAYC,EAAUh5mB,EAAS4G,YACjL05mB,EAAYtgnB,EAASnxB,SAAS0ve,SAASpyf,GACT,UAA1B6zC,EAAS8tmB,cAA4BiL,IAAeC,GACpDsH,EAAU/86B,aAAa,iBAAkB,SAE7Ci96B,EAAWvg7B,YAAYqg7B,GACnBtgnB,EAAS+gnB,aAELR,EADA9u8B,EAAME,OAAS,IAAM+I,EACVjJ,EAAMiJ,GAAGsqH,MAGTvzH,EAAMiJ,EAAI,GAAGsqH,MAE5Bko0B,EAAW3+7B,KAAK6y8B,yBAAyB1m8B,EAAGjJ,EAAMiJ,GAAGsqH,MAAOu70B,EAAUxH,EAAYC,EAAUjorB,EAAQyuJ,EAASC,EAASz/E,GACtHwgnB,EAAWvg7B,YAAYit6B,IAG/B,OAAOsT,CACX,EACA9B,EAAQx/7B,UAAU8h8B,uBAAyB,SAAUt86B,EAAI286B,EAAYd,EAAU975B,EAAOkD,EAAKq4S,GACvF,IAAIwvmB,EAAY,GACZrjpB,EAAS,CAAEznR,GAAI,iBAAmBA,EAAS0qnB,GAAI3qmB,EAAMp/B,WAAYiqoB,GAAI3nmB,EAAItiC,YAC7Emq7B,EAAU,GAAK,CAAExq0B,MAAOq80B,EAAYzU,UAAW,OAC/C4C,EAAU,GAAK,CAAExq0B,MAAOu70B,EAAU3T,UAAW,QAC7C,IAAI0U,EAAiBthnB,EAASnxB,SAASk+nB,aAAa,iBAAkB5gpB,EAAQqjpB,GAE9E,OADA8R,EAAezo6B,kBAAkBtV,aAAa,gBAAiB,kBACxD+96B,CACX,EACA5C,EAAQx/7B,UAAUki8B,yBAA2B,SAAU186B,EAAI286B,EAAYd,EAAU975B,EAAOkD,EAAKs1X,EAAKx0Z,EAAGC,EAAGs3U,GACpG,IAAIwvmB,EAAY,GACZh11B,EAAOm+1B,IAAiBlw7B,EAAGC,EAAGu0Z,EAAKx4X,GACnCg2D,EAAOk+1B,IAAiBlw7B,EAAGC,EAAGu0Z,EAAKt1X,GACnCwkQ,EAAS,CACTznR,GAAI,mBAAqBA,EAAS0qnB,GAAI50iB,EAAK/xF,EAAEpD,WAAYiqoB,GAAI70iB,EAAKhyF,EAAEpD,WACpEgqoB,GAAI70iB,EAAK9xF,EAAErD,WAAYkqoB,GAAI90iB,EAAK/xF,EAAErD,YAEtCmq7B,EAAU,GAAK,CAAExq0B,MAAOq80B,EAAYzU,UAAW,OAC/C4C,EAAU,GAAK,CAAExq0B,MAAOu70B,EAAU3T,UAAW,QAC7C,IAAI0U,EAAiBthnB,EAASnxB,SAASk+nB,aAAa,iBAAkB5gpB,EAAQqjpB,GAE9E,OADA8R,EAAezo6B,kBAAkBtV,aAAa,gBAAiB,kBACxD+96B,CACX,EACO5C,CACX,CAjO6B,GCEzB6C,IAAwB,WACxB,SAASA,EAAOvhnB,GACZzxV,KAAK4s1B,QAAU,IAAIujH,IACnBnw8B,KAAKmvJ,UAAY,IAAIw+yB,IACrB3t8B,KAAKyxV,SAAWA,CACpB,CA6cA,OA3cAuhnB,EAAOri8B,UAAUsi8B,kBAAoB,WACjC,IAEIC,EACAt1pB,EAHA6zC,EAAWzxV,KAAKyxV,SAChB0hnB,EAAmB1hnB,EAASnxB,SAAS29nB,YAAY,CAAE,GAAMxsmB,EAASt8U,QAAQghB,GAAK,sBAGnFn2B,KAAKoz8B,QAAkD,KAAvCpz8B,KAAKyxV,SAASygnB,YAAY,GAAGz70B,OAAuD,OAAvCz2H,KAAKyxV,SAASygnB,YAAY,GAAGh85B,OACjD,OAArCl2C,KAAKyxV,SAASygnB,YAAY,GAAG945B,IACjC,IAAIg15B,EAAa38mB,EAAS4hnB,gBAAkB5hnB,EAAS2xmB,WAAWkQ,qBAC5D/4M,EAAU9oa,EAAS2ymB,SAAS4J,YAAcv8mB,EAAS2xmB,WAAWmQ,iBACpC,aAA1B9hnB,EAAS8tmB,aACL9tmB,EAAS++mB,aAAe,EACxB0C,EAAclz8B,KAAKwz8B,yBAAyB,gBAAiBj5M,EAAQ6zM,GAAW,EAAM,EAAG38mB,IAGzF7zC,EAAS,IAAI8kpB,IAAWjxmB,EAASt8U,QAAQghB,GAAK,eAAgBokuB,EAAQ,EAAG,OAAQ9oa,EAAS2xmB,WAAWqQ,aAAc,IAAKzz8B,KAAKu/7B,aAAa9tmB,EAAS66mB,aAAapy7B,EAAGu3U,EAAS66mB,aAAany7B,EAAGs3U,EAAS66mB,aAAa9t7B,MAAO4v7B,EAAW,EAAG,KACvO8E,EAAczhnB,EAASnxB,SAAS0ve,SAASpyf,KAI7CA,EAAS,IAAI8kpB,IAAWjxmB,EAASt8U,QAAQghB,GAAK,eAAgB,OAAQi46B,EAAW7zM,EAAQ9oa,EAAS2xmB,WAAWqQ,aAAc,IAAKhinB,EAAS68mB,YAAY78mB,EAAS66mB,aAAapy7B,EAAGu3U,EAAS66mB,aAAa9t7B,MAAO4v7B,IAC3M8E,EAAczhnB,EAASnxB,SAAS0ve,SAASpyf,GACzC6zC,EAASiinB,WAAaR,EAAYS,iBACJ,UAA1BlinB,EAAS8tmB,cAA6Bv/7B,KAAKoz8B,SAC3CF,EAAYl+6B,aAAa,iBAAkB,SAE3Cy8T,EAAS++mB,aAAe,IAAMxw8B,KAAKoz8B,UAAY3hnB,EAAS48mB,yBACxD58mB,EAASminB,YAAcninB,EAASoinB,qBAAqBpinB,EAASiinB,WAAYtF,GAC1E8E,EAAYl+6B,aAAa,mBAAoBy8T,EAASminB,eAG9DT,EAAiBzh7B,YAAYwh7B,GAC7BzhnB,EAASqymB,UAAUpy6B,YAAYyh7B,EACnC,EAGAH,EAAOri8B,UAAUmj8B,qBAAuB,SAAUj7mB,EAASi+K,QACjC,IAAlBA,IAA4BA,EAAgB,GAChD,IACIl5N,EACAm2pB,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EARA5inB,EAAWzxV,KAAKyxV,SAShB6inB,EAAa7inB,EAAS7vV,QAAU6vV,EAASy1D,QACzCqtjB,EAAwB9inB,EAAS66mB,aAAa9t7B,MAAQizU,EAAS8gnB,uBAAuB9gnB,EAAS7vV,OAC/Fus8B,EAAgB18mB,EAAS8gnB,uBAAuB9gnB,EAAS2ymB,SAASxi8B,OACtE5B,KAAK+s8B,oBAAsBt7mB,EAAS66mB,aAAa9t7B,OAC3CizU,EAAS+inB,kBAAoB/inB,EAAS48mB,uBAA0B,EAAIF,GAKtE+F,EAJCr7mB,EAIqB7xD,IAAWyqD,EAASt8U,QAAQghB,GAAK,wBAHjCs7T,EAASnxB,SAAS29nB,YAAY,CAAE,GAAMxsmB,EAASt8U,QAAQghB,GAAK,yBAKtF,IAAIi46B,EAAa38mB,EAASw7mB,mBAAqBx7mB,EAAS2xmB,WAAW8J,wBAC/D3yM,EAAW9oa,EAASgjnB,UAAkD,QAAUhjnB,EAASt8U,QAAQghB,GAAK,kBAArEn2B,KAAK008B,8BAEtC92pB,EAD0B,aAA1B6zC,EAAS8tmB,aACA,IAAImD,IAAWjxmB,EAASt8U,QAAQghB,GAAK,kBAAmBokuB,EAAQ,EAAG,OAAQ9oa,EAAS2xmB,WAAW+O,gBAAiB,IAAKny8B,KAAKu/7B,aAAa9tmB,EAAS66mB,aAAapy7B,EAAGu3U,EAAS66mB,aAAany7B,EAAGna,KAAK+s8B,oBAAqBqB,EAAW,EAAIkG,GAAa7inB,EAAS+inB,gBAAmB,GAAK,UAGhR,IAAI9R,IAAWjxmB,EAASt8U,QAAQghB,GAAK,kBAAmB,OAAQi46B,EAAW7zM,EAAQ9oa,EAAS2xmB,WAAW+O,gBAAiB,IAAK1gnB,EAAS68mB,YAAY78mB,EAAS66mB,aAAapy7B,EAAGla,KAAK+s8B,oBAAqBqB,IAElN38mB,EAAS08mB,cAAgB18mB,EAASnxB,SAAS0ve,SAASpyf,GAAQ+1pB,iBAC5DlinB,EAASminB,YAAgBninB,EAAS48mB,uBAC9B58mB,EAASoinB,qBAAqBpinB,EAAS08mB,cAAeC,GADE38mB,EAASminB,YAElC,OAA/BninB,EAASu6mB,mBAA+Bv6mB,EAAS+inB,iBACjDx08B,KAAK208B,mBAAmBljnB,GAEI,OAA5BA,EAAS2ymB,SAASxi8B,QACY,aAA1B6vV,EAAS8tmB,aAELwU,EADAtinB,EAAS++mB,aAAe,EACPxw8B,KAAKwz8B,yBAAyB,mBAAoBj5M,EAAQ6zM,GAAW,EAAOpu8B,KAAK+s8B,oBAAqBt7mB,EAAUA,EAAS2xmB,WAAW+O,iBAGpI1gnB,EAASnxB,SAAS0ve,SAASpyf,GAIX,IAAjC6zC,EAASu/mB,aAAa5t8B,QAAiBquV,EAAS+inB,iBAAoBx08B,KAAKoz8B,QAIpEpz8B,KAAKoz8B,UAAY3hnB,EAAS+inB,gBAC/BT,EAAiB/z8B,KAAK4s1B,QAAQilH,kBAAkB7x8B,KAAK+s8B,oBAAqBt7mB,EAAU08mB,IAG/Et1mB,IAIDk7mB,EAAiB/sqB,IAAWyqD,EAASt8U,QAAQghB,GAAK,oBACnCnB,aAAa,IAAKy8T,EAAS68mB,YAAY78mB,EAAS66mB,aAAapy7B,EAAGla,KAAK+s8B,oBAAqBqB,IACzG2F,EAAe/+6B,aAAa,SAAUuluB,IALtCw5M,EAAiBtinB,EAASnxB,SAAS0ve,SAASpyf,GAO5C6zC,EAAS++mB,aAAe,GACxBuD,EAAe/+6B,aAAa,mBAAoBy8T,EAASminB,aAE/B,UAA1BninB,EAAS8tmB,cAA4B4O,GACrC4F,EAAe/+6B,aAAa,iBAAkB,WAnBlDo/6B,EAAiB3inB,EAAS48mB,uBAAgD58mB,EAAS08mB,cAA/B18mB,EAASiinB,WAC7DK,EAAiB/z8B,KAAK4s1B,QAAQwjH,oBAAoB3+mB,EAAU,yBAA0BzxV,KAAK+s8B,oBAAqBt7mB,EAAS2xmB,WAAW+O,gBAAiB/D,EAAWgG,IAsBxKF,EAAoBxi7B,YAAYqi7B,GAC5BtinB,EAASgjnB,YAAchjnB,EAAS+inB,kBAChCH,EAAiBr08B,KAAK008B,8BACtB108B,KAAK408B,oBAAoBP,EAAgBH,EAAqBzinB,KAE9DA,EAAS7uE,UAAa6uE,EAAS+inB,iBAAoB/inB,EAASgjnB,WAC5Dz08B,KAAK608B,kBAAkBX,EAAqB/F,EAAenu8B,KAAK+s8B,oBAAqBqB,EAAWv1mB,IAEhGpH,EAAStiM,UAAUwhQ,QAAWl/D,EAAS+inB,iBAAoB/inB,EAAS7uE,UAAa6uE,EAASgjnB,YAEtFN,EADgC,OAA/B1inB,EAASu6mB,kBACOv6mB,EAAStiM,UAAUluE,OAASjhF,KAAKmt8B,YAAcnt8B,KAAK+s8B,qBAGpDt7mB,EAAStiM,UAAUluE,MAExCjhF,KAAKihF,MAAQkz3B,EACbH,EAAiBvinB,EAASqsmB,eAAersmB,EAASora,SAAUsxM,EAAe,KAAMt1mB,EAASu1mB,GAAW,EAAkC,aAA1B38mB,EAAS8tmB,cAA+B+U,GACrJJ,EAAoBxi7B,YAAY+/T,EAASora,UACzCk3M,EAAe/+6B,aAAa,QAAS,kBAAoBy8T,EAASt8U,QAAQghB,GAAK,cAC/En2B,KAAKmvJ,UAAUy+yB,kBAAkBoG,EAAgBvinB,EAAU0inB,EAAgBt7mB,EAAUi+K,EAAgB,IAErGrlL,EAAS+inB,kBACTP,EAAwBxinB,EAASqsmB,eAAersmB,EAASora,SAAWpra,EAAS48mB,uBAA0B,EAAIF,EAAe,KAAMt1mB,EAASu1mB,EAAW38mB,EAAS48mB,wBAC7J6F,EAAoBxi7B,YAAY+/T,EAASora,UACzCk3M,EAAe/+6B,aAAa,QAAS,kBAAoBy8T,EAASt8U,QAAQghB,GAAK,cAC/En2B,KAAKmvJ,UAAU++yB,sBAAyBz8mB,EAAS48mB,uBAAkD0F,EAAxBE,EAAyCj08B,KAAK+s8B,oBAAqBqB,EAAW38mB,EAAUwinB,IAEvKxinB,EAASqymB,UAAUpy6B,YAAYwi7B,GAC/BzinB,EAASqlL,cAAgBy9b,EAEjC,EAEAvB,EAAOri8B,UAAUgk8B,mBAAqB,SAAUljnB,GAC5C,IAAIqjnB,EACAC,EACAC,EACAp3pB,EACAw2pB,EACAE,EAAa7inB,EAASu6mB,oBAAsBv6mB,EAASy1D,QACrD+tjB,EAAyBxjnB,EAAS8gnB,uBAAuB9gnB,EAASu6mB,mBACtEhs8B,KAAKmt8B,YAAc6H,EAAoBvjnB,EAAS66mB,aAAa9t7B,MAAQy27B,EACrE,IAAIC,EAAoBzjnB,EAASnxB,SAAS29nB,YAAY,CAAE,GAAMxsmB,EAASt8U,QAAQghB,GAAK,uBAChFi46B,EAAY38mB,EAAS0jnB,2BAA6B1jnB,EAAS0jnB,2BACxD1jnB,EAASw7mB,mBAAqBx7mB,EAAS2xmB,WAAW8J,wBACrD3yM,EAAS9oa,EAAS2jnB,uBAAyB3jnB,EAAS2jnB,uBAAyBp18B,KAAK008B,8BACxD,aAA1BjjnB,EAAS8tmB,aACL9tmB,EAAS++mB,aAAe,EACxBsE,EAAe908B,KAAKwz8B,yBAAyB,iBAAkBj5M,EAAQ6zM,GAAW,EAAO4G,EAAmBvjnB,EAAUA,EAAS2xmB,WAAWiS,gBAG1Iz3pB,EAAS,IAAI8kpB,IAAWjxmB,EAASt8U,QAAQghB,GAAK,gBAAiBokuB,EAAQ,EAAG,OAAQ9oa,EAAS2xmB,WAAWiS,cAAe,IAAKr18B,KAAKu/7B,aAAa9tmB,EAAS66mB,aAAapy7B,EAAGu3U,EAAS66mB,aAAany7B,EAAG667B,EAAmB5G,EAAW,EAAIkG,EAAa,GAAK,UAClPQ,EAAerjnB,EAASnxB,SAAS0ve,SAASpyf,KAI9CA,EAAS,IAAI8kpB,IAAWjxmB,EAASt8U,QAAQghB,GAAK,gBAAiB,OAAQi46B,EAAW7zM,EAAQ9oa,EAAS2xmB,WAAWiS,cAAe,IAAK5jnB,EAAS68mB,YAAY78mB,EAAS66mB,aAAapy7B,EAAG867B,EAAmB5G,IAC9J,IAAjC38mB,EAASu/mB,aAAa5t8B,QAAiBquV,EAAS+inB,iBAAoBx08B,KAAKoz8B,SAKzE0B,EAAerjnB,EAASnxB,SAAS0ve,SAASpyf,GACtC6zC,EAAS++mB,aAAe,IAAMxw8B,KAAKoz8B,SACnC0B,EAAa9/6B,aAAa,mBAAoBy8T,EAASminB,aAE7B,UAA1BninB,EAAS8tmB,cAA6Bv/7B,KAAKoz8B,SAC3C0B,EAAa9/6B,aAAa,iBAAkB,WAThDo/6B,EAAiB3inB,EAAS48mB,uBAAgD58mB,EAAS08mB,cAA/B18mB,EAASiinB,WAC7DoB,EAAe908B,KAAK4s1B,QAAQwjH,oBAAoB3+mB,EAAU,uBAAwBujnB,EAAmBvjnB,EAAS2xmB,WAAWiS,cAAgB5jnB,EAASw7mB,mBAAqBx7mB,EAAS2xmB,WAAW8J,wBAA0BkH,KAY7Nc,EAAkBxj7B,YAAYoj7B,GAC1BrjnB,EAAStiM,UAAUwhQ,SACnBokjB,EAAiBtjnB,EAASqsmB,eAAersmB,EAAS6jnB,eAAgBL,EAAwB,MAAM,EAAO7G,GAAW,EAAkC,aAA1B38mB,EAAS8tmB,cAA+B+U,GAClKY,EAAkBxj7B,YAAY+/T,EAAS6jnB,gBACvCR,EAAa9/6B,aAAa,QAAS,kBAAoBy8T,EAASt8U,QAAQghB,GAAK,oBAC7En2B,KAAKmvJ,UAAUy+yB,kBAAkBmH,EAAgBtjnB,EAAUA,EAAStiM,UAAUluE,MAAO,IAEzFwwQ,EAASqymB,UAAUpy6B,YAAYwj7B,EACnC,EAGAlC,EAAOri8B,UAAU4k8B,kBAAoB,SAAUC,GAE3C,IAAIC,EACAlgkB,EACAC,EACAo1Z,OAJsB,IAAtB4qK,IAAgCA,GAAoB,GAKxD,IACI53pB,EACA83pB,EACA/kgB,EACA50K,EAEA8ge,EACAuxM,EAAapu8B,KAAKyxV,SAASw7mB,mBAAqBjt8B,KAAKyxV,SAAS2xmB,WAAW8J,wBAEzEz7mB,EAAWzxV,KAAKyxV,SAChBinb,EAAgBjnb,EAAS89mB,WAAW72L,cACpC42L,EAAY79mB,EAAS89mB,WAAWtv6B,KAChC016B,EAAiB318B,KAAK008B,8BACtBvG,EAAgB18mB,EAAS66mB,aAAa9t7B,MAAQizU,EAAS8gnB,uBAAuB9gnB,EAAS7vV,OACvFg08B,EAAmBnknB,EAASnxB,SAAS29nB,YAAY,CAAE,GAAMxsmB,EAASt8U,QAAQghB,GAAK,sBAC/EjF,SAASg8T,eAAe0onB,EAAiBz/6B,KACzCjF,SAASg8T,eAAe0onB,EAAiBz/6B,IAAIhD,SAEjD,IAAI0i7B,GAAepknB,EAAS7vV,MAAQ6vV,EAASw1D,UAAYx1D,EAASy1D,QAAUz1D,EAASw1D,SAlBpE,IAmBb6ujB,EAAerknB,EAAS7vV,MAAQ6vV,EAASw1D,SAAWx1D,EAAS7vV,MAAQ6vV,EAASy1D,QAAW,EAAItjZ,KAAKmgB,MAAM8x7B,GAExGE,EPzIL,SAA2Bz0vB,GAC9B,IAAIz2L,EAAS,4CAA4CgnB,KAAKyvK,GAC9D,OAAOz2L,EAAS,IAAIm/6B,IAAWz96B,SAAS1B,EAAO,GAAI,IAAK0B,SAAS1B,EAAO,GAAI,IAAK0B,SAAS1B,EAAO,GAAI,KACjG,IAAIm/6B,IAAW,IAAK,IAAK,IACjC,COqIuBgM,CAAkB/L,IAAe0L,IAC5Cz1D,EAAWt84B,KAAKmgB,OAAoB,IAAbgy7B,EAASzy1B,EAAuB,IAAbyy1B,EAASxy1B,EAAuB,IAAbwy1B,EAAS7/7B,GAAW,KACjFku7B,EAAW,CACXtj3B,QAAQ,EAAO7gD,KAAMqv6B,GAAwBvx7B,OAAO+37B,GAAe,IAAKr/0B,MAAOg7N,EAAS89mB,WAAW940B,OAEvGg7N,EAASnxD,QAAQ,aAAc8jqB,GAC1BA,EAAStj3B,SACV8ptB,EAAWopH,IAAYowC,EAASnk6B,KAAMwxT,EAAS89mB,YAC/CmG,EAAcjknB,EAAS4G,UAAc5G,EAAS66mB,aAAapy7B,EAAIu3U,EAAS66mB,aAAa9t7B,MAAQosxB,EAASpsxB,MAAQ,EACzGizU,EAAS66mB,aAAapy7B,EAAI0wxB,EAASpsxB,MAAQ,EAC5CizU,EAASwknB,aACa,SAAlBv9L,EACAnjY,EAAOmgkB,GAAejknB,EAAS4G,WAzB7B,KA2BqB,WAAlBqgb,GACL38e,EAAU01D,EAAS4G,UAAc5G,EAAS66mB,aAAapy7B,EAAIu3U,EAAS66mB,aAAa9t7B,MAAQ2v7B,EAAgB,EACpG18mB,EAAS66mB,aAAapy7B,EAAIi07B,EAAgB,EAG3C54jB,GAFG9jD,EAAS4G,UAAct8D,GAAU25qB,EAAe35qB,GAAU25qB,GAEtD35qB,EAGA25qB,IAIX/kgB,EAAOl/G,EAAS4G,UACV5G,EAAS66mB,aAAapy7B,EAAIu3U,EAAS66mB,aAAa9t7B,MAAQ2v7B,EAAiBvjK,EAASpsxB,MAAQ,EAC3FizU,EAAS66mB,aAAapy7B,EAAIi07B,EAAgBvjK,EAASpsxB,MAAQ,EAChEmyb,GAAQl/G,EAAS4G,UA1Cf,KA6CEk9C,GAFG9jD,EAAS4G,UAAcs4G,GAAO+kgB,EAAe/kgB,GAAO+kgB,GAEhD/kgB,EAGA+kgB,GAKO,SAAlBh9L,EACAnjY,EAAOmgkB,GAAejknB,EAAS4G,WAtD7B,KAwDqB,WAAlBqgb,EACLnjY,GAAQ9jD,EAAS66mB,aAAapy7B,EAAIu3U,EAAS66mB,aAAa9t7B,OAAS,GAGjE+2X,EAAQ9jD,EAAS4G,UACZ5G,EAAS66mB,aAAapy7B,EAAI0wxB,EAASpsxB,MAAQ,EAC3CizU,EAAS66mB,aAAapy7B,EAAIu3U,EAAS66mB,aAAa9t7B,MAAQosxB,EAASpsxB,MAAQ,EAC9E+2X,GAAS9jD,EAAS4G,UA/DhB,MAmENm9C,EAD+B,aAA/Bx1Y,KAAKyxV,SAAS8tmB,aACP9tmB,EAAS66mB,aAAany7B,EAAKi07B,EAAY,EAAMxjK,EAAShipB,OAAS,EAG/D6oM,EAAS66mB,aAAany7B,EAAKs3U,EAAS66mB,aAAa1jzB,OAAS,EAAMgipB,EAAShipB,OAAS,EAE7Fg1J,EAAS,IAAIokpB,IAAWvwmB,EAASt8U,QAAQghB,GAAK,eAAgBs7T,EAAS89mB,WAAWl57B,MAAQo7U,EAAS2xmB,WAAW8S,eAAgBzknB,EAAS89mB,WAAW/4X,WAAa/kP,EAAS2xmB,WAAW+S,gBAAiB1knB,EAAS89mB,WAAW/sf,YAAc/wH,EAAS2xmB,WAAWgT,iBAAkB3knB,EAAS89mB,WAAWph0B,WAAY,SAAUi2zB,EAAS3t0B,QAAWypxB,GAAY,IAAO,QAAU,SAAU3qgB,EAAMC,GACvXigkB,EAAchknB,EAASnxB,SAASm9nB,WAAW7/oB,EAAQwmpB,EAASnk6B,MAC5D216B,EAAiBlk7B,YAAY+j7B,GACzBhknB,EAAStiM,UAAUwhQ,SAAWl/D,EAAS+inB,kBACvC33M,EAAWpra,EAASnxB,SAASw9nB,eAAe,CAAE,GAAMrsmB,EAASt8U,QAAQghB,GAAK,mBAC1Es7T,EAASqsmB,eAAejhM,EAAU,EAAG,MAAM,EAAQpra,EAASw7mB,mBAAqBx7mB,EAAS2xmB,WAAW8J,yBAA0B,GAC/H0I,EAAiBlk7B,YAAYmruB,GAC7B44M,EAAYzg7B,aAAa,QAAS,kBAAoBy8T,EAASt8U,QAAQghB,GAAK,mBAC5En2B,KAAKmvJ,UAAUggzB,iBAAiBsG,EAAcD,EAAoB/jnB,EAAS4knB,mBAAqB,EAAIlI,GAAiBqH,EAAoB/jnB,EAAS4knB,mBAAqB,GAAI5knB,EAAUzxV,KAAKihF,MAAO2ptB,EAASpsxB,QAE9MizU,EAASqymB,UAAUpy6B,YAAYkk7B,GAC/BnknB,EAAS4knB,mBAAqBlI,EAEtC,EAEA6E,EAAOri8B,UAAUkk8B,kBAAoB,SAAUyB,EAAenI,EAAepB,EAAqBqB,EAAWv1mB,GACzG,IAAI09mB,EAEA34pB,EADA6zC,EAAWzxV,KAAKyxV,SAEhB6inB,EAAa7inB,EAAS7vV,QAAU6vV,EAASy1D,QACf,aAA1Bz1D,EAAS8tmB,aACL9tmB,EAAS++mB,aAAe,EACxB+F,EAAev28B,KAAKwz8B,yBAAyB,yBAA0B,UAAWpF,GAAW,EAAOrB,EAAqBt7mB,EAAU,KAGnI7zC,EAAS,IAAI8kpB,IAAWjxmB,EAASt8U,QAAQghB,GAAK,wBAAyB,UAAW,EAAG,OAAQ,GAAK,IAAKn2B,KAAKu/7B,aAAa9tmB,EAAS66mB,aAAapy7B,EAAGu3U,EAAS66mB,aAAany7B,EAAG4y7B,EAAqBqB,EAAW,EAAGkG,EAAY,GAAK,UAC/NiC,EAAe9knB,EAASnxB,SAAS0ve,SAASpyf,KAIzCi7C,GAKD09mB,EAAevvqB,IAAWyqD,EAASt8U,QAAQghB,GAAK,0BACnCnB,aAAa,IAAKy8T,EAAS68mB,YAAY78mB,EAAS66mB,aAAapy7B,EAAG6y7B,EAAqBqB,KALlGxwpB,EAAS,IAAI8kpB,IAAWjxmB,EAASt8U,QAAQghB,GAAK,wBAAyB,OAAQi46B,EAAW,UAAW,GAAK,GAAI38mB,EAAS68mB,YAAY78mB,EAAS66mB,aAAapy7B,EAAG6y7B,EAAqBqB,IACjLmI,EAAe9knB,EAASnxB,SAAS0ve,SAASpyf,IAM1C6zC,EAAS++mB,aAAe,IAAMxw8B,KAAKoz8B,SACnCmD,EAAavh7B,aAAa,mBAAoBy8T,EAASminB,aAE7B,UAA1BninB,EAAS8tmB,cAA4B4O,IAAkBnu8B,KAAKoz8B,SAC5DmD,EAAavh7B,aAAa,iBAAkB,UAGpD,IAAIwh7B,EAAa/knB,EAASqsmB,eAAersmB,EAASora,SAAUsxM,EAAe,KAAMt1mB,EAASu1mB,GAAW,GACrGmI,EAAavh7B,aAAa,QAAS,kBAAoBy8T,EAASt8U,QAAQghB,GAAK,cAC7Emg7B,EAAc5k7B,YAAY6k7B,GAC1BD,EAAc5k7B,YAAY+/T,EAASora,UACnC78vB,KAAKmvJ,UAAUy+yB,kBAAkB4I,EAAY/knB,EAAU,EAAG,EAAG8knB,EACjE,EAEAvD,EAAOri8B,UAAUik8B,oBAAsB,SAAUn+0B,EAAOn4C,EAAOmzQ,GAC3D,IAGI9rD,EACA8wqB,EAJAxwf,EAAOx0H,EAASnxB,SAASu9nB,aACzBkV,EAAiB7h7B,SAASmxI,gBAAgBu6xB,IJ1S5B,kBImTlB6Z,EAAa,CAAC,CAAE/47B,OAAQ,MAAO,aAAc+4G,EAAO,eAAgB,KAChE,CAAE/4G,OAAQ,MAAO,aAAc+4G,EAAO,eAAgB,QAC1Ds80B,EAAiB3lc,IAPA,CACbj3e,GAAIs7T,EAASt8U,QAAQghB,GAAK,iBAAkB0qnB,GAAKpvT,EAAS66mB,aAAapy7B,EAAGpD,WAC1EiqoB,IAAKtvT,EAAS66mB,aAAapy7B,EALd,IAK8BpD,WAC3C4/7B,aAAc,SAAUC,cAAe,iBAAkBC,kBAAmB,eAIrC7D,GAC3C,IAAK,IAAI5m8B,EAAI,EAAGA,EAAIsq8B,EAAWrz8B,OAAQ+I,IACnCw5R,EAAOz0Q,SAASmxI,gBAAgBu6xB,IJnTnB,QIoTbj3pB,EAAOynO,IAAcqpc,EAAWtq8B,GAAIw5R,GACpCotqB,EAAerh7B,YAAYi0Q,GAE/BsgL,EAAKv0b,YAAYqh7B,GACjBz03B,EAAM5sD,YAAYu0b,GACdx0H,EAAStiM,UAAUwhQ,QACnB3wZ,KAAKmvJ,UAAUq/yB,mBAAmBuE,EAAgBthnB,EAAU,EAEpE,EAEAuhnB,EAAOri8B,UAAU+j8B,4BAA8B,WAC3C,IAAImC,EACAplnB,EAAWzxV,KAAKyxV,SAEpB,OADWA,EAASxwV,MAEhB,IAAK,UACD418B,EAAcplnB,EAAS2xmB,WAAW3zuB,QAClC,MACJ,IAAK,OACDonvB,EAAcplnB,EAAS2xmB,WAAW7m6B,KAClC,MACJ,IAAK,UACDs66B,EAAcplnB,EAAS2xmB,WAAW18zB,QAClC,MACJ,IAAK,SACDmw0B,EAAcplnB,EAAS2xmB,WAAW0T,OAClC,MACJ,QACID,EAAeplnB,EAAS2ymB,SAAS6J,eAAiBx8mB,EAAS2xmB,WAAW2T,oBAE9E,OAAOF,CACX,EAEA7D,EAAOri8B,UAAU4u7B,aAAe,SAAUrl7B,EAAGC,EAAGqE,EAAOoqI,EAAQ45H,EAAQw0rB,GACnE,IAAIlq4B,EAAO,GACPwzZ,EAAW9hd,EACXy47B,EAAYz0rB,EAChB,OAAQw0rB,GACJ,IAAK,QACDlq4B,EAAO,IAAM5yD,EAAI,IAAMC,EAAhB,KACMqE,EADN,KAEMoqI,EAFN,MAGOpqI,EAHP,KAIKgkQ,EAAS,IAAMA,EAAS,WAAaA,EAAS,KAAOA,EAJ1D,MAKM,EAAIA,EAAS55H,GALnB,KAMK45H,EAAS,IAAMA,EAAS,UAAYA,EAAS,KAAOA,EANzD,KAQP,MACJ,IAAK,MACD11M,EAAO,IAAM5yD,EAAI,IAAMC,EAAhB,MACMmmd,EAAW22e,GADjB,KAEKA,EAAY,IAAMA,EAAY,UAAYA,EAAY,IAAMA,EAFjE,MAGMruzB,EAAS,EAAIquzB,GAHnB,KAIKA,EAAY,IAAMA,EAAY,WAAaA,EAAY,IAAMA,EAJlE,MAKMz0rB,EAAS89M,GALf,MAMO13U,EANP,KAQP,MACJ,IAAK,OACD97E,EAAO,IAAM5yD,EAAI,IAAMC,EAAhB,KACMqE,EADN,KAEMoqI,EAFN,MAGOpqI,EAHP,MAIOoqI,EAJP,KAMP,MACJ,QACI97E,EAAO,IAAM5yD,EAAI,IAAMC,EAAhB,MACMqE,EAAQgkQ,GADd,KAEKA,EAAS,IAAMA,EAAS,UAAYA,EAAS,IAAMA,EAFxD,MAGM55H,EAAS,EAAI45H,GAHnB,KAIKA,EAAS,IAAMA,EAAS,WAAaA,EAAS,IAAMA,EAJzD,MAKMA,EAAShkQ,GALf,KAMKgkQ,EAAS,IAAMA,EAAS,WAAaA,EAAS,KAAOA,EAN1D,MAOM,EAAIA,EAAS55H,GAPnB,KAQK45H,EAAS,IAAMA,EAAS,UAAYA,EAAS,KAAOA,EARzD,KAWf,OAAO11M,CACX,EAEAkm4B,EAAOri8B,UAAU6i8B,yBAA2B,SAAUr96B,EAAIokuB,EAAQ6zM,EAAW8I,EAAS/I,EAAe18mB,EAAUnjN,GAW3G,IAVA,IAGIsvK,EACAu5pB,EACA5G,EAIAI,EATAvO,EAAO3wmB,EAAS66mB,aAAapy7B,EAC7Bmo7B,EAAO5wmB,EAAS66mB,aAAany7B,EAC7BqE,EAAQizU,EAAS66mB,aAAa9t7B,MAI9B6x7B,EAAY5+mB,EAAS4+mB,UAAY5+mB,EAAS2xmB,WAAWkN,eACrDI,GAAYly7B,GAAUizU,EAAS++mB,aAAe,GAAKH,GAAa5+mB,EAAS++mB,aACzEK,EAAep/mB,EAASnxB,SAAS29nB,YAAY,CAAE,GAAMxsmB,EAASt8U,QAAQghB,GAAKA,EAAK,iBAE3EhqB,EAAI,EAAGA,GAAKslV,EAAS++mB,aAAcrk8B,IAOxC,GALIgr8B,EADM,IAANhr8B,GAAWA,IAAMslV,EAAS++mB,aACR,IAANrk8B,EAAW,QAAU,MAGtB,OAEX+q8B,EACAt5pB,EAAS,IAAI8kpB,IAAWjxmB,EAASt8U,QAAQghB,GAAKA,EAAKhqB,EAAGouvB,EAAQ,EAAG,OAAQ9oa,EAAS2xmB,WAAWqQ,aAAc,IAAKzz8B,KAAKu/7B,aAAa6C,EAAMC,EAAMqO,EAAUtC,EAAW,EAAG+I,IACtKxG,EAAcl/mB,EAASnxB,SAAS0ve,SAASpyf,GACzCizpB,EAAan/6B,YAAYi/6B,GACzBvO,GAASsO,EAAWL,OASpB,GANAE,EAAYpC,EAAgBuC,EAAYvC,EAAgBuC,EACxD9ypB,EAAS,IAAI8kpB,IAAWjxmB,EAASt8U,QAAQghB,GAAKA,EAAKhqB,EAAGouvB,EAAQ,EAAG,OAAQjsnB,EAAS,IAAKtuI,KAAKu/7B,aAAa6C,EAAMC,EAAMkO,EAAUnC,EAAW,EAAG+I,IAC7IxG,EAAcl/mB,EAASnxB,SAAS0ve,SAASpyf,GACzCizpB,EAAan/6B,YAAYi/6B,GACzBvO,GAASsO,EAAWL,GACpBlC,GAAkBuC,EAAWL,IACR,EACjB,MAIZ,OAAOQ,CACX,EACOmC,CACX,CAnd4B,GCAxBoE,IAA0B,WAC1B,SAASA,EAAS3lnB,GACdzxV,KAAK4s1B,QAAU,IAAIujH,IACnBnw8B,KAAKmvJ,UAAY,IAAIw+yB,IACrB3t8B,KAAKyxV,SAAWA,CACpB,CAgRA,OA9QA2lnB,EAASzm8B,UAAU0m8B,oBAAsB,WACrC,IAEI70rB,EACAiorB,EAHAh5mB,EAAWzxV,KAAKyxV,SAChB6lnB,EAAqB7lnB,EAASnxB,SAAS29nB,YAAY,CAAE,GAAMxsmB,EAASt8U,QAAQghB,GAAK,wBAGjFq06B,EAAa/4mB,EAAS+4mB,WAC1B/4mB,EAASg+mB,YAAch+mB,EAASg5mB,SAAWh5mB,EAAS+4mB,YAAc,IAClE/4mB,EAASg+mB,WAAch+mB,EAASg+mB,YAAc,EAAK,IAAMh+mB,EAASg+mB,WAAch+mB,EAASg+mB,WACzFh+mB,EAASg+mB,YAAuC,MAAxBh+mB,EAASg+mB,WAAsB,IAAO,EAC9Dzv8B,KAAKu38B,cAAgB9M,GAAYh5mB,EAAS+4mB,YAAe/4mB,EAAS4G,WAAc5G,EAASg+mB,YAAch+mB,EAASg+mB,aAAe,IAC/Hzv8B,KAAKixa,QAAUx/E,EAAS66mB,aAAapy7B,EAAKu3U,EAAS66mB,aAAa9t7B,MAAQ,EACxExe,KAAKkxa,QAAUz/E,EAAS66mB,aAAany7B,EAAKs3U,EAAS66mB,aAAa1jzB,OAAS,EACzE5oJ,KAAKw38B,aAAe5z8B,KAAKqpC,IAAIwkT,EAAS4hnB,eAAgB5hnB,EAASw7mB,oBAC3Drp8B,KAAKqpC,IAAIwkT,EAAS2xmB,WAAWwO,0BAA2BngnB,EAAS2xmB,WAAWqU,wBAChFz38B,KAAKyt8B,cAAiB7p8B,KAAKgmD,IAAI6nS,EAAS66mB,aAAa1jzB,OAAQ6oM,EAAS66mB,aAAa9t7B,OAAS,EAAKxe,KAAKw38B,aAAe,EAErHh1rB,EAAqB,QADrBA,EAASqorB,IAAep5mB,EAASjvE,OAAQxiR,KAAKyt8B,gBACjB,EAAIjrrB,EACjC,IAAI+3e,EAAU9oa,EAAS2ymB,SAAS4J,YAAcv8mB,EAAS2xmB,WAAWsU,mBAC9Dlx3B,EAAQirQ,EAASkmnB,kBAAsBlmnB,EAAS2ymB,SAAS4J,YAAcv8mB,EAAS2xmB,WAAWsU,mBAAsB,OACjHto0B,EAAeqiN,EAASkmnB,kBAAqB,EAC5ClmnB,EAAS4hnB,gBAAkB5hnB,EAAS2xmB,WAAWqU,uBAChD5I,EAAetE,IAAWvq8B,KAAKixa,QAASjxa,KAAKkxa,QAAS1uJ,EAAQgorB,EAAYC,EAAUh5mB,EAAS4G,UAAW5G,EAASkmnB,mBACrH338B,KAAKoz8B,QAAkD,KAAvCpz8B,KAAKyxV,SAASygnB,YAAY,GAAGz70B,OAAuD,OAAvCz2H,KAAKyxV,SAASygnB,YAAY,GAAGh85B,OACjD,OAArCl2C,KAAKyxV,SAASygnB,YAAY,GAAG945B,IACjC,IAAIwkQ,EAAS,IAAI8kpB,IAAWjxmB,EAASt8U,QAAQghB,GAAK,iBAAkBqwD,EAAM4oD,EAAamrnB,EAAQ9oa,EAAS2xmB,WAAWqQ,aAAc,IAAK5E,GAClI+I,EAAgBnmnB,EAASnxB,SAAS0ve,SAASpyf,GAC/C6zC,EAASiinB,WAAakE,EAAcjE,iBAChClinB,EAAS++mB,aAAe,IAAM/+mB,EAAS48mB,yBAA2B58mB,EAASkmnB,oBAAsB338B,KAAKoz8B,UACtG3hnB,EAASminB,YAAcninB,EAASoinB,qBAAqBpinB,EAASiinB,WAAYtk0B,GAC1Ewo0B,EAAc5i7B,aAAa,mBAAoBy8T,EAASminB,cAE9B,UAA1BninB,EAAS8tmB,cAA6B9tmB,EAASkmnB,mBAAsB338B,KAAKoz8B,SAC1EwE,EAAc5i7B,aAAa,iBAAkB,SAEjDsi7B,EAAmB5l7B,YAAYkm7B,GAC/BnmnB,EAASqymB,UAAUpy6B,YAAY4l7B,EACnC,EAEAF,EAASzm8B,UAAUkn8B,uBAAyB,SAAUlI,EAAamI,EAAkBj/mB,GACjF,IAEI4xmB,EACAgF,EACAjtrB,EACAu1rB,EACAC,EACAtJ,EACAQ,EACA+I,EACAC,EACA9D,EAXA3inB,EAAWzxV,KAAKyxV,SAChB+4mB,EAAa/4mB,EAAS+4mB,WAetB0N,EAJCr/mB,EAIuB7xD,IAAWyqD,EAASt8U,QAAQghB,GAAK,0BAHjCs7T,EAASnxB,SAAS29nB,YAAY,CAAE,GAAMxsmB,EAASt8U,QAAQghB,GAAK,2BAMxFqsP,EAAqB,QADrBA,EAASqorB,IAAep5mB,EAAS0mnB,YAAan48B,KAAKyt8B,gBACtB,EAAIjrrB,EACjCivE,EAASqmnB,iBAAmBpJ,EAAcj9mB,EAAS8gnB,uBAAuB9gnB,EAAS2ymB,SAASxi8B,OAC5F,IAAIw28B,GAAoB3mnB,EAAS+4mB,YAAe/4mB,EAAS4G,WAAcq2mB,EAAcA,IAAgB,IACrGj9mB,EAAS4mnB,iBAAmB5N,EAAah5mB,EAAS+inB,kBAAoB/inB,EAAS48mB,wBAA2B58mB,EAAS+4mB,YAAe/4mB,EAAS4G,WAAc5G,EAASg+mB,WAAah+mB,EAASg+mB,aAAe,IAAM2I,EAE7MJ,GADAA,GAAsBtJ,EAAcj9mB,EAAS+4mB,YAAc,MACf,EAAK,IAAMwN,EAAsBA,EAC7EA,GAA8C,MAAvBA,EAA8B,IAAO,EAC5D,IAAInJ,EAAetE,IAAWvq8B,KAAKixa,QAASjxa,KAAKkxa,QAAS1uJ,EAAQgorB,EAAYC,EAAUh5mB,EAAS4G,UAAW5G,EAASkmnB,mBACjHp9M,EAASv6vB,KAAKs48B,gCACd9x3B,EAAQirQ,EAASkmnB,kBAAqBp9M,EAAS,OAC/C6zM,EAAa38mB,EAASw7mB,mBAAqBx7mB,EAAS2xmB,WAAWwO,0BAC/Dxi0B,EAAeqiN,EAASkmnB,kBAAqB,EAAIvJ,EACjDxwpB,EAAS,IAAI8kpB,IAAWjxmB,EAASt8U,QAAQghB,GAAK,oBAAqBqwD,EAAM4oD,EAAamrnB,EAAQ9oa,EAAS2xmB,WAAW+O,gBAAiB,IAAKtD,GAC5Ip9mB,EAAS08mB,cAAgB18mB,EAASnxB,SAAS0ve,SAASpyf,GAAQ+1pB,iBAC5DlinB,EAASminB,YAAc5z8B,KAAKu48B,oBAAoB9mnB,EAAU28mB,GAC1Dpu8B,KAAK0gjB,YAAc0pZ,IAAiBpq8B,KAAKixa,QAASjxa,KAAKkxa,QAAS1uJ,EAAQiorB,GACrC,OAA/Bh5mB,EAASu6mB,mBAA+Bv6mB,EAAS+inB,iBACjDx08B,KAAKw48B,qBAAqB/mnB,EAAUjvE,EAAQw1rB,GAEhB,OAA5BvmnB,EAAS2ymB,SAASxi8B,QACmB,IAAjC6vV,EAASu/mB,aAAa5t8B,QAAiBquV,EAAS+inB,iBAAoB/inB,EAASkmnB,kBAKxE338B,KAAKoz8B,UAAY3hnB,EAAS+inB,gBAC/BtF,EAAmBlv8B,KAAK4s1B,QAAQ8lH,oBAAoB1y8B,KAAKixa,QAASjxa,KAAKkxa,QAAS1uJ,EAAQivE,IAGnFoH,GAKDk/mB,GADA7I,EAAmBloqB,IAAWyqD,EAASt8U,QAAQghB,GAAK,sBACpB7D,aAAa,KAC7C486B,EAAiBl66B,aAAa,SAAUuluB,GACxC20M,EAAiBl66B,aAAa,IAAK656B,IANnCK,EAAmBz9mB,EAASnxB,SAAS0ve,SAASpyf,GAQ9C6zC,EAAS++mB,aAAe,IAAM/+mB,EAASkmnB,mBACvCzI,EAAiBl66B,aAAa,mBAAoBy8T,EAASminB,aAEjC,UAA1BninB,EAAS8tmB,cAA4BiL,IAAeC,GACpDyE,EAAiBl66B,aAAa,iBAAkB,WArBpDy66B,EAAeh+mB,EAAS48mB,uBAAgD2J,EAAtBvmnB,EAASg+mB,WAC3D2E,EAAiB3inB,EAAS48mB,uBAAgD58mB,EAAS08mB,cAA/B18mB,EAASiinB,WAC7DxE,EAAmBlv8B,KAAK4s1B,QAAQskH,sBAAsBz/mB,EAAU,2BAA4BzxV,KAAKixa,QAASjxa,KAAKkxa,QAAS1uJ,EAAQivE,EAAS2ymB,SAASxi8B,MAAO6vV,EAAS2xmB,WAAW+O,gBAAiB/D,EAAWqB,EAAY2E,IAsBzN8D,EAAsBxm7B,YAAYw96B,IAC9Bz9mB,EAAS7uE,UAAa6uE,EAAS+inB,iBAAoB/inB,EAASkmnB,mBAC5D338B,KAAK608B,kBAAkBqD,EAAuB11rB,EAAQpzI,EAAay/zB,EAAcuJ,EAAkB1J,EAAa71mB,IAEhHpH,EAAStiM,UAAUwhQ,QAAUl/D,EAAS+inB,mBACtCx08B,KAAKihF,MAAwC,OAA/BwwQ,EAASu6mB,kBAA8B,IAAMv6mB,EAAStiM,UAAUluE,MAC9Eg33B,EAAiBxmnB,EAASqsmB,eAAersmB,EAASora,SAAU,KAAMhka,EAAUk/mB,EAAe,GAAIl/mB,GAC/Fq/mB,EAAsBxm7B,YAAY+/T,EAASora,WACvCpra,EAAStiM,UAAUwhQ,QAAWl/D,EAAS+inB,iBAAoB/inB,EAAS7uE,WACpEssrB,EAAiBl66B,aAAa,QAAS,kBAAoBy8T,EAASt8U,QAAQghB,GAAK,cACjFn2B,KAAKmvJ,UAAUs/yB,oBAAoBzu8B,KAAKixa,QAASjxa,KAAKkxa,QAAS1uJ,EAAQ41rB,EAAkB1J,EAAauJ,EAAgBxmnB,EAAU28mB,EAAWpu8B,KAAKihF,MAAO43Q,EAAU82mB,EAAc,KAAM92mB,EAAUi/mB,EAAmB,OAElNrmnB,EAAS+inB,kBACL/inB,EAAS48mB,wBACT4J,EAAejj7B,aAAa,IAAKu16B,IAAWvq8B,KAAKixa,QAASjxa,KAAKkxa,QAAS1uJ,EAAU4rrB,EAAY,EAAI38mB,EAAS+4mB,WAAYxq8B,KAAKu38B,cAAe9lnB,EAAS4G,WAAW,IAEnK62mB,EAAiBl66B,aAAa,QAAS,kBAAoBy8T,EAASt8U,QAAQghB,GAAK,cACjFn2B,KAAKmvJ,UAAU8/yB,wBAA0Bx9mB,EAAS48mB,uBAA2Ca,EAAjB+I,EAAmCxmnB,EAAU+4mB,EAAY4N,EAAkBp48B,KAAKixa,QAASjxa,KAAKkxa,QAAS1uJ,EAAQ4rrB,EAAW6J,KAG9MxmnB,EAASqymB,UAAUpy6B,YAAYwm7B,GAEvC,EAEAd,EAASzm8B,UAAU6n8B,qBAAuB,SAAU/mnB,EAAUjvE,EAAQw1rB,GAClE,IAAI1C,EACAmD,EACArE,EACA3E,EACAiJ,EAAsBjnnB,EAASnxB,SAAS29nB,YAAY,CAAE,GAAMxsmB,EAASt8U,QAAQghB,GAAK,0BAClFwi7B,EAAYlnnB,EAAS8gnB,uBAAuB9gnB,EAASu6mB,mBACrDvB,GAAYh5mB,EAAS+4mB,YAAe/4mB,EAAS4G,WAAcsgnB,EAAYA,IAAc,IACrF9J,EAAetE,IAAWvq8B,KAAKixa,QAASjxa,KAAKkxa,QAAS1uJ,EAAQivE,EAAS+4mB,WAAYC,EAAUh5mB,EAAS4G,UAAW5G,EAASkmnB,mBAC9H338B,KAAKut8B,kBAAoBnD,IAAiBpq8B,KAAKixa,QAASjxa,KAAKkxa,QAAS1uJ,EAAQiorB,GAC9E,IAAIlwM,EAAS9oa,EAAS2jnB,uBAAyB3jnB,EAAS2jnB,uBAAyBp18B,KAAKs48B,gCAClF9x3B,EAAQirQ,EAASkmnB,kBAAqBp9M,EAAS,OAC/CnrnB,EAAeqiN,EAASkmnB,kBAAqB,EAC5ClmnB,EAAS0jnB,2BAA6B1jnB,EAAS0jnB,2BAC3C1jnB,EAASw7mB,mBAAqBx7mB,EAAS2xmB,WAAWwO,0BACvDh0pB,EAAS,IAAI8kpB,IAAWjxmB,EAASt8U,QAAQghB,GAAK,kBAAmBqwD,EAAM4oD,EAAamrnB,EAAQ9oa,EAAS2xmB,WAAWiS,cAAe,IAAKxG,GACnG,IAAjCp9mB,EAASu/mB,aAAa5t8B,QAAiBquV,EAAS+inB,iBAAoB/inB,EAASkmnB,mBAAsB338B,KAAKoz8B,SAMxGqF,EAAiBhnnB,EAASnxB,SAAS0ve,SAASpyf,GACxC6zC,EAAS++mB,aAAe,IAAM/+mB,EAASkmnB,oBAAsB338B,KAAKoz8B,SAClEqF,EAAezj7B,aAAa,mBAAoBy8T,EAASminB,aAE/B,UAA1BninB,EAAS8tmB,cAA6Bv/7B,KAAKoz8B,SAC3CqF,EAAezj7B,aAAa,iBAAkB,WAVlDy66B,EAAeh+mB,EAAS48mB,uBAAgD2J,EAAtBvmnB,EAASg+mB,WAC3D2E,EAAiB3inB,EAAS48mB,uBAAgD58mB,EAAS08mB,cAA/B18mB,EAASiinB,WAC7D+E,EAAiBz48B,KAAK4s1B,QAAQskH,sBAAsBz/mB,EAAU,yBAA0BzxV,KAAKixa,QAASjxa,KAAKkxa,QAAS1uJ,EAAQivE,EAASu6mB,kBAAmBv6mB,EAAS2xmB,WAAWiS,cAAejm0B,EAAaqg0B,EAAY2E,IAWxNsE,EAAoBhn7B,YAAY+m7B,GAC5BhnnB,EAAStiM,UAAUwhQ,SAAWl/D,EAAS7uE,WACvC0yrB,EAAiB7jnB,EAASqsmB,eAAersmB,EAAS6jnB,eAAgB,KAAM,IAAI,GAC5EoD,EAAoBhn7B,YAAY+/T,EAAS6jnB,gBACzCmD,EAAezj7B,aAAa,QAAS,kBAAoBy8T,EAASt8U,QAAQghB,GAAK,oBAC/En2B,KAAKmvJ,UAAUs/yB,oBAAoBzu8B,KAAKixa,QAASjxa,KAAKkxa,QAAS1uJ,EAAQiorB,EAAUkO,EAAWrD,EAAgB7jnB,EAAWA,EAASw7mB,mBAAqBx7mB,EAAS2xmB,WAAWwO,0BAA4BngnB,EAAStiM,UAAUluE,QAE5NwwQ,EAASqymB,UAAUpy6B,YAAYgn7B,EACnC,EAEAtB,EAASzm8B,UAAUio8B,oBAAsB,SAAUpD,GAE/C,IAAIp85B,EACAy/5B,EACA3niB,EACA05X,EACAhtf,OALsB,IAAtB43pB,IAAgCA,GAAoB,GAMxD,IACI/jnB,EAAWzxV,KAAKyxV,SAChB69mB,EAAY79mB,EAAS89mB,WAAWtv6B,KAChC646B,EAAqBrnnB,EAASnxB,SAAS29nB,YAAY,CAAE,GAAMxsmB,EAASt8U,QAAQghB,GAAK,wBACjFjF,SAASg8T,eAAe4rnB,EAAmB3i7B,KAC3CjF,SAASg8T,eAAe4rnB,EAAmB3i7B,IAAIhD,SAEnD,IAAI0i7B,GAAepknB,EAAS7vV,MAAQ6vV,EAASw1D,UAAYx1D,EAASy1D,QAAUz1D,EAASw1D,SAPpE,IAQb8xjB,EAAiBtnnB,EAAS7vV,MAAQ6vV,EAASw1D,SAAWx1D,EAAS7vV,MAAQ6vV,EAASy1D,QAAW,EAAItjZ,KAAKmgB,MAAM8x7B,GAC1GzR,EAAW,CACXtj3B,QAAQ,EAAO7gD,KAAMqv6B,GAAwBvx7B,OAAOg77B,GAAiB,IAAKti1B,MAAOg7N,EAAS89mB,WAAW940B,OAEzGg7N,EAASnxD,QAAQ,aAAc8jqB,GAC1BA,EAAStj3B,SACV8ptB,EAAWopH,IAAYowC,EAASnk6B,KAAMwxT,EAAS89mB,YAC/Cr+hB,EAAUlxa,KAAKkxa,QAAW05X,EAAShipB,OAAS,EAC5Cg1J,EAAS,IAAIokpB,IAAWvwmB,EAASt8U,QAAQghB,GAAK,iBAAkBs7T,EAAS89mB,WAAWl57B,MAAQo7U,EAAS2xmB,WAAW4V,iBAAkBvnnB,EAAS89mB,WAAW/4X,WAAa/kP,EAAS2xmB,WAAW6V,kBAAmBxnnB,EAAS89mB,WAAW/sf,YAAc/wH,EAAS2xmB,WAAW8V,mBAAoBznnB,EAAS89mB,WAAWph0B,WAAY,SAAUi2zB,EAAS3t0B,OAASg7N,EAAS2xmB,WAAWn4b,UAAWjrgB,KAAKixa,QAASC,EAASz/E,EAAS66mB,aAAa9t7B,MAAOizU,EAAS66mB,aAAa1jzB,QACzbiwzB,EAAgBpnnB,EAASnxB,SAASm9nB,WAAW7/oB,EAAQwmpB,EAASnk6B,MAC9D646B,EAAmBpn7B,YAAYmn7B,GAC3BpnnB,EAAStiM,UAAUwhQ,SAAWl/D,EAAS+inB,kBACvCp75B,GAAQq4S,EAAS7vV,MAAQ6vV,EAASw1D,UAAYx1D,EAASy1D,QAAUz1D,EAASw1D,SAAYx1D,EAASg+mB,WAC/Fr25B,EAAOq4S,EAAS7vV,MAAQ6vV,EAASw1D,SAAWx1D,EAAS7vV,MAAQ6vV,EAASy1D,QAAW,EAAI9tW,EACrFp5C,KAAKmvJ,UAAUggzB,iBAAiB0J,EAAerD,EAAoB/jnB,EAASqlL,cACxErlL,EAAS+4mB,WAAYpx5B,EAAKq4S,EAAUzxV,KAAKihF,QAEjDwwQ,EAASqymB,UAAUpy6B,YAAYon7B,GAC/BrnnB,EAASqlL,cAAgB19d,EAEjC,EAEAg+5B,EAASzm8B,UAAUkk8B,kBAAoB,SAAUyB,EAAe9zrB,EAAQpzI,EAAay/zB,EAAcpE,EAAUkE,EAAU91mB,GACnH,IAAIsgnB,EACAv7pB,EACA6zC,EAAWzxV,KAAKyxV,SAChB28mB,EAAYh/zB,EAAc,EACzBypN,GAKDsgnB,EAAiBnyqB,IAAWyqD,EAASt8U,QAAQghB,GAAK,4BACnCnB,aAAa,IAAK656B,IALjCjxpB,EAAS,IAAI8kpB,IAAWjxmB,EAASt8U,QAAQghB,GAAK,0BAA2B,OAAQi46B,EAAW,UAAW,GAAK,IAAKS,GACjHsK,EAAiB1nnB,EAASnxB,SAAS0ve,SAASpyf,IAM5C6zC,EAAS++mB,aAAe,GACxB2I,EAAenk7B,aAAa,mBAAoBy8T,EAASminB,aAE/B,UAA1BninB,EAAS8tmB,cACT4Z,EAAenk7B,aAAa,iBAAkB,SAElD,IAAIwh7B,EAAa/knB,EAASqsmB,eAAersmB,EAASora,SAAU,KAAM,GAAIhka,GACtEsgnB,EAAenk7B,aAAa,QAAS,kBAAoBy8T,EAASt8U,QAAQghB,GAAK,cAC/Emg7B,EAAc5k7B,YAAYyn7B,GAC1B7C,EAAc5k7B,YAAY+/T,EAASora,UACnC78vB,KAAKmvJ,UAAUs/yB,oBAAoBzu8B,KAAKixa,QAASjxa,KAAKkxa,QAAS1uJ,EAAQiorB,EAAUkE,EAAU6H,EAAY/knB,EAAU28mB,EAAW,EAAG,KAAM,KAAM+K,EAC/I,EAEA/B,EAASzm8B,UAAU4n8B,oBAAsB,SAAU9mnB,EAAU28mB,GACzD,IAAIgL,EACAC,EACAC,EAAQ/s7B,SAASklU,EAASjvE,OAAQ,IAAMj2P,SAASklU,EAAS0mnB,YAAa,IAY3E,OAXc,IAAVmB,GAAgB7nnB,EAAS48mB,uBAMzB+K,EADK3nnB,EAAS48mB,uBACC58mB,EAASoinB,qBAAqBpinB,EAAS08mB,cAAeC,GAGtD38mB,EAASminB,aARxByF,EAAkB5nnB,EAASiinB,YAAe4F,EAAQ,EAAM7nnB,EAASiinB,WAAa9v8B,KAAK8Y,IAAI487B,GAAU/s7B,SAASklU,EAASjvE,OAAQ,KACrHivE,EAASiinB,WAAa9v8B,KAAK8Y,IAAI487B,GAAU/s7B,SAASklU,EAASjvE,OAAQ,KACzE42rB,EAAe3nnB,EAASoinB,qBAAqBwF,EAAiBjL,IAQ3DgL,CACX,EAEAhC,EAASzm8B,UAAU2n8B,8BAAgC,WAC/C,IAAIiB,EACA9nnB,EAAWzxV,KAAKyxV,SAEpB,OADWA,EAASxwV,MAEhB,IAAK,UACDs48B,EAAgB9nnB,EAAS2xmB,WAAW3zuB,QACpC,MACJ,IAAK,OACD8pvB,EAAgB9nnB,EAAS2xmB,WAAW7m6B,KACpC,MACJ,IAAK,UACDg96B,EAAgB9nnB,EAAS2xmB,WAAW18zB,QACpC,MACJ,IAAK,SACD6y0B,EAAgB9nnB,EAAS2xmB,WAAW0T,OACpC,MACJ,QACIyC,EAAiB9nnB,EAAS2ymB,SAAS6J,eAAiBx8mB,EAAS2xmB,WAAWoW,sBAEhF,OAAOD,CACX,EACOnC,CACX,CAtR8B,GCR1Blx5B,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAazC2pS,IAA0C,SAAUxoJ,EAAYl/L,EAAQiE,EAAKkkB,GAC7E,IAA2HhvB,EAAvH6e,EAAIld,UAAUC,OAAQkgH,EAAIjjG,EAAI,EAAIhY,EAAkB,OAATmoB,EAAgBA,EAAO/wB,OAAOk+B,yBAAyBt1B,EAAQiE,GAAOkkB,EACrH,GAAuB,kBAAZuN,SAAoD,oBAArBA,QAAQiyT,SAAyB1sO,EAAIvlF,QAAQiyT,SAASzoJ,EAAYl/L,EAAQiE,EAAKkkB,QACpH,IAAK,IAAIrkB,EAAIo7L,EAAWnkM,OAAS,EAAG+I,GAAK,EAAGA,KAAS3K,EAAI+lM,EAAWp7L,MAAIm3G,GAAKjjG,EAAI,EAAI7e,EAAE8hH,GAAKjjG,EAAI,EAAI7e,EAAE6G,EAAQiE,EAAKg3G,GAAK9hH,EAAE6G,EAAQiE,KAASg3G,GAChJ,OAAOjjG,EAAI,GAAKijG,GAAK7jH,OAAO4c,eAAehU,EAAQiE,EAAKg3G,GAAIA,CAChE,EAmBIm21B,IAA6B,SAAU3y5B,GAEvC,SAAS2y5B,EAAY367B,EAAS3J,GAC1B,IAAI7V,EAAQwnD,EAAOnnD,KAAKK,KAAM8e,EAAS3J,IAAYnV,KAiBnD,OAfAV,EAAM8wV,OAAS,IAAI4inB,IAAO1z8B,GAE1BA,EAAM2s8B,SAAW,IAAImL,IAAS938B,GAE9BA,EAAMo68B,kBAAoB,IAAI/L,IAI9Bru8B,EAAMiv8B,sBAAuB,EAE7Bjv8B,EAAM2pT,OAAS,EAEf3pT,EAAM4pT,OAAS,EAEf5pT,EAAMq68B,sBAAwB,IAAIhO,IAAgBrs8B,GAC3CA,CACX,CA4nBA,OAhpBA4mD,IAAUuz5B,EAAa3y5B,GAqBvB2y5B,EAAY9o8B,UAAUo8U,cAAgB,WAClC,MAAO,aACX,EACA0snB,EAAY9o8B,UAAUmoV,UAAY,WAC9B94V,KAAKwqc,eACLxqc,KAAKgj8B,sBACLhj8B,KAAK+jW,YACT,EACA01mB,EAAY9o8B,UAAUqy7B,oBAAsB,WACxChj8B,KAAKss8B,aAAe,IAAIzK,IAAK,EAAG,EAAG,EAAG,GACtC7h8B,KAAK0t8B,aAAe,IAAIhM,IAAK,EAAG,EACpC,EACA+X,EAAY9o8B,UAAUyJ,OAAS,WAC3B,IAAI9a,EAAQU,KACZA,KAAKsgS,QAAQ,OAAQ,CAAEygN,YAAa/gf,OACpCA,KAAKmV,QAAQhP,MAAMi+J,QAAU,QAC7BpkK,KAAKmV,QAAQhP,MAAM+jF,SAAW,WAC9BlqF,KAAK458B,2BACL558B,KAAKqta,WACLrta,KAAK658B,YACL758B,KAAKok8B,SAAW,CAAExi8B,MAAO5B,KAAK4B,MAAOqs8B,cAAeju8B,KAAKiu8B,cAAeD,WAAYhu8B,KAAKgu8B,YACrFhu8B,KAAKok8B,SAASxi8B,QAAU5B,KAAKknZ,QAC7BlnZ,KAAKsgS,QAAQmrqB,IAAmBzr8B,KAAKok8B,UAAU,WAAc9k8B,EAAMw68B,kBAAoB,IAGvF958B,KAAKsgS,QAAQkrqB,IAAcxr8B,KAAKok8B,UAAU,WAAc9k8B,EAAMw68B,kBAAoB,GAE1F,EACAL,EAAY9o8B,UAAUmp8B,iBAAmB,WACrC958B,KAAK+58B,iBACL/58B,KAAKsgS,QAAQ,SAAU,CAAEygN,YAAa/gf,OACtCA,KAAK45V,iBACL55V,KAAKg68B,0BAA2B,IAAIv48B,MAAOC,SAC/C,EAIA+38B,EAAY9o8B,UAAUip8B,yBAA2B,WAC7C,IAAIpjkB,EAAiBx2Y,KAAKmV,QAAQ4vP,aAAe/kQ,KAAKmV,QAAQg7P,YAC1D8mI,EAAkBj3Y,KAAKmV,QAAQ+vP,aAC/B1mP,EAAuB,WAAdxe,KAAK4M,KAAqB,IAAM,IACzCg8I,EAAwB,WAAd5oJ,KAAK4M,KAAqB,GAAK,IAEzCwh8B,EAAYxq8B,KAAKqpC,IAAIjtC,KAAKit8B,kBAAmBjt8B,KAAKqz8B,gBACtDzqzB,EAAwB,WAAd5oJ,KAAK4M,MAAqBwh8B,EAAaxlzB,EAFnC,GAEwDwlzB,EAFxD,GAE8ExlzB,EAC5F5oJ,KAAK0t8B,aAAalv7B,MAAQqs7B,IAAe7q8B,KAAKwe,MAAOg4X,IAAmBA,GAAkBh4X,EAC1Fxe,KAAK0t8B,aAAa9kzB,OAASiizB,IAAe7q8B,KAAK4oJ,OAAQquP,IAAoBA,GAAmBruP,EAC9F5oJ,KAAKss8B,aAAapy7B,EAAIla,KAAKqvT,OAAO1rL,KAClC3jI,KAAKss8B,aAAany7B,EAAIna,KAAKqvT,OAAOnhK,IAClCluJ,KAAKss8B,aAAa9t7B,MAAQxe,KAAK0t8B,aAAalv7B,OAASxe,KAAKqvT,OAAO1rL,KAAO3jI,KAAKqvT,OAAOzrL,OACpF5jI,KAAKss8B,aAAa1jzB,OAAS5oJ,KAAK0t8B,aAAa9kzB,QAAU5oJ,KAAKqvT,OAAOnhK,IAAMluJ,KAAKqvT,OAAO16B,QACrF30R,KAAKot8B,gBAAkB,IAAIvL,IAAK7h8B,KAAKss8B,aAAapy7B,EAAGla,KAAKss8B,aAAany7B,EAAGna,KAAK0t8B,aAAa9kzB,OAAQ5oJ,KAAK0t8B,aAAalv7B,MAC1H,EAIAi77B,EAAY9o8B,UAAUsp8B,kBAAoB,WACtCj68B,KAAKk68B,kBACT,EAIAT,EAAY9o8B,UAAUop8B,eAAiB,WACnC/58B,KAAKm68B,yBACLn68B,KAAKo68B,cACLp68B,KAAKq68B,iBACLr68B,KAAKs68B,cACDt68B,KAAKo1M,YAAYhyM,OAAS,GAC1BpD,KAAKi68B,oBAETj68B,KAAKu68B,8BACDv68B,KAAKksb,QAAQv7B,SAAY3wZ,KAAKksb,QAAQ6/gB,oBACtC/r8B,KAAK258B,sBAAsBzthB,SAEnC,EACAuthB,EAAY9o8B,UAAUwp8B,uBAAyB,WAC3C,IAAIK,EAAatp7B,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,qBACvDn2B,KAAKksb,QAAQv7B,SACb3wZ,KAAKi0iB,eAAiBnziB,GAAc,MAAO,CACvCq1B,GAAIn2B,KAAKmV,QAAQghB,GAAK,WACtBp1B,UAAW,eACXmzR,OAAQ,6EAERsmrB,GACAx68B,KAAKw68B,WAAW9o7B,YAAY1xB,KAAKi0iB,iBAGzC,IAAIA,EAAiB/ihB,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,YAC/D,GAAIqk7B,EAGA,OAFAA,EAAWtx6B,UAAY,QACvBlpC,KAAKw68B,WAAavma,EAAiBuma,EAAW9o7B,YAAYuihB,GAAkBuma,GAGhFx68B,KAAKw68B,WAAa158B,GAAc,MAAO,CACnCq1B,GAAIn2B,KAAKmV,QAAQghB,GAAK,oBACtB+9P,OAAQ,uBAEZl0R,KAAKmV,QAAQuc,YAAY1xB,KAAKw68B,YAC1Bx68B,KAAKi0iB,gBACLj0iB,KAAKw68B,WAAW9o7B,YAAY1xB,KAAKi0iB,eAEzC,EAIAwla,EAAY9o8B,UAAU4p8B,4BAA8B,WAChD,IAAIpl8B,EAAUnV,KAAKw68B,WACf9lrB,EAAO10R,KAAKmV,QAAQs/Q,wBACxB,GAAIuS,IAAWhnS,KAAK8j8B,UAAU3t6B,IAAK,CAC/B,IAAIsk7B,EAAUzzqB,IAAWhnS,KAAK8j8B,UAAU3t6B,IAAIs+P,wBAC5Ct/Q,EAAQhP,MAAMw9H,KAAO//H,KAAKqpC,IAAIwt6B,EAAQ920B,KAAO+wJ,EAAK/wJ,KAAM,GAAK,KAC7DxuH,EAAQhP,MAAM+nJ,IAAMtqJ,KAAKqpC,IAAIwt6B,EAAQvszB,IAAMwmI,EAAKxmI,IAAK,GAAK,IAC9D,CACJ,EACAurzB,EAAY9o8B,UAAUkp8B,UAAY,WAC9B758B,KAAK068B,YACL168B,KAAKsgU,SAAW,IAAIo8nB,IAAY187B,KAAKmV,QAAQghB,IAC7Cn2B,KAAK8j8B,UAAY9j8B,KAAKsgU,SAASy8nB,UAAU,CACrC5m6B,GAAIn2B,KAAKmV,QAAQghB,GAAK,MACtB3X,MAAOxe,KAAK0t8B,aAAalv7B,MACzBoqI,OAAQ5oJ,KAAK0t8B,aAAa9kzB,OAC1BziJ,MAAO,oBAAsBnG,KAAKoj8B,WAAWxle,iBAErD,EACA67e,EAAY9o8B,UAAUgq8B,gBAAkB,WACpC368B,KAAK68vB,SAAW78vB,KAAKsgU,SAASw9nB,eAAe,CAAE,GAAM997B,KAAKmV,QAAQghB,GAAK,cACvEn2B,KAAKs18B,eAAiBt18B,KAAKsgU,SAASw9nB,eAAe,CAAE,GAAM997B,KAAKmV,QAAQghB,GAAK,mBACjF,EACAsj7B,EAAY9o8B,UAAUyp8B,YAAc,WACd,WAAdp68B,KAAK4M,KACL5M,KAAKowV,OAAO6inB,oBAEO,aAAdjz8B,KAAK4M,MACV5M,KAAKis8B,SAASoL,qBAEtB,EACAoC,EAAY9o8B,UAAU0p8B,eAAiB,WACnCr68B,KAAK268B,kBACa,WAAd368B,KAAK4M,KACL5M,KAAKowV,OAAO0jnB,uBAEO,aAAd9z8B,KAAK4M,MACV5M,KAAKis8B,SAAS4L,wBAEtB,EACA4B,EAAY9o8B,UAAU2p8B,YAAc,WACd,WAAdt68B,KAAK4M,MAAqB5M,KAAK468B,oBAAsB568B,KAAKw08B,gBAC1Dx08B,KAAKowV,OAAOmlnB,oBAEO,aAAdv18B,KAAK4M,MAAuB5M,KAAK468B,oBAAsB568B,KAAKw08B,iBACjEx08B,KAAKis8B,SAAS2M,sBAElB548B,KAAKmV,QAAQuc,YAAY1xB,KAAK8j8B,UAClC,EACA2V,EAAY9o8B,UAAU297B,YAAc,SAAUp07B,EAAGsE,EAAO4v7B,GACpD,IAAIlte,EAAUlhe,KAAKq4V,UAAqC,UAAtBr4V,KAAKu/7B,aAClCrl7B,EAAIla,KAAKss8B,aAAa9t7B,MAAW8s7B,IAAqB8C,EAAcl07B,EAAIla,KAAKss8B,aAAa9t7B,MACnE,UAAtBxe,KAAKu/7B,aAA6Brl7B,EAAKox7B,IAAqB8C,EAAal07B,EAE/Ek07B,EAAY5v7B,EAAQ4v7B,GAAmC,UAAtBpu8B,KAAKu/7B,aAA2B/g7B,EAAQ4v7B,EACzE,IAAI1iC,EAAU1r6B,KAAKq4V,UAAqC,UAAtBr4V,KAAKu/7B,cAA4B/g7B,EAC9D0id,EAAS1id,EAAS8s7B,IAAgB8C,EAAelte,EAAS1id,EACnC,UAAtBxe,KAAKu/7B,cAA4B/g7B,EAAU0id,EAAS1id,EAAS8s7B,IAAgB8C,EAAelte,EAAS1id,EAC3G,MAAO,IAAM0id,EAAS,KAAOlhe,KAAKss8B,aAAany7B,EAAKna,KAAKss8B,aAAa1jzB,OAAS,GAC3E,IAAM8ixB,EAAS,KAAO1r6B,KAAKss8B,aAAany7B,EAAKna,KAAKss8B,aAAa1jzB,OAAS,EAChF,EACA6wzB,EAAY9o8B,UAAU4h8B,uBAAyB,SAAU3w8B,EAAOqlZ,EAASC,GACrE,IAAIt9V,EAAMq9V,GAAWjnZ,KAAKinZ,QACtBh6W,EAAMi6W,GAAWlnZ,KAAKknZ,QACtB6jjB,GAAYnp8B,EAAQgoD,IAAQ3c,EAAM2c,IAAuB,WAAd5pD,KAAK4M,KAAqB,EAAI5M,KAAKyv8B,YAElF,OADc7t8B,EAAQgoD,GAAOhoD,EAAQqrC,EAAO,EAAI895B,CAEpD,EACA0O,EAAY9o8B,UAAUkj8B,qBAAuB,SAAUr17B,EAAO4v7B,GAC1D,IAAIxj7B,EAAuB,aAAd5qB,KAAK4M,MAAuB5M,KAAKyv8B,aAAelE,IAAiBvr8B,KAAKww8B,aAAexw8B,KAAKww8B,aAAe,EAClHqK,EAAe768B,KAAKyv8B,aAAelE,KAA+B,WAAdvr8B,KAAK4M,KAAqB5M,KAAKww8B,aAAexw8B,KAAKww8B,aAAe,EACtHI,EAAM5w8B,KAAKqw8B,WAA4B,WAAdrw8B,KAAK4M,KAAqB5M,KAAKoj8B,WAAWkN,eAAiBtw8B,KAAKoj8B,WAAWgO,kBACpG/67B,EAAQmI,EAAQoM,EAAQgm7B,EAG5B,MAAO,KAFPv67B,GAAQA,GAA+B,UAAtBrW,KAAKu/7B,aAA6Bsb,GAAevP,IAAgB8C,GAAc,IAAMpu8B,KAAKww8B,cAEvF,KADpBI,GAA8B,UAAtB5w8B,KAAKu/7B,aAA4B+L,IAAgB8C,EAAY,EAEzE,EACAqL,EAAY9o8B,UAAUmt7B,eAAiB,SAAUjhM,EAAU35vB,EAAO1B,EAAGq3V,EAASu1mB,EAAW0M,EAASC,GAC9F,IAAIju4B,EACA4nN,EACAkpB,EACAo9pB,EACAC,EACAC,EACAhh8B,EAAIla,KAAKss8B,aAAapy7B,EACtB0/e,EAAa55f,KAAKss8B,aAAa9t7B,MA2CnC,MA1CkB,WAAdxe,KAAK4M,MACqB,aAAtB5M,KAAKu/7B,cACLyb,EAAO9g8B,EACPgh8B,EAAYthd,EAAa12f,EACzB838B,GAAUF,EAAkB,GAAL,EACvBG,EAAOj78B,KAAKss8B,aAAany7B,EACzB+g8B,IAAgBJ,GAAWC,GAAc/68B,KAAKw08B,gBAAmB,EAAI,IAIrEwG,EAAQh78B,KAAKq4V,YAAcyinB,EAAY5g8B,EAAI0/e,GAAoC,UAAtB55f,KAAKu/7B,aAA2B6O,EAAY,GAAK,GAAMl07B,GAA2B,UAAtBla,KAAKu/7B,aAA2B6O,EAAY,GAAK,GACtK8M,EAAYthd,EAAa12f,EAIzB+38B,EAAQj78B,KAAKss8B,aAAany7B,EAAKna,KAAKss8B,aAAa1jzB,OAAS,EAAOwlzB,EAAY,EAC7E8M,GAAoC,UAAtBl78B,KAAKu/7B,cAA6Bub,EAAyC,EAA7BxP,IAAgB8C,GAE3Ev1mB,IAMD/rR,EAAOk6N,IAAWhnS,KAAKmV,QAAQghB,GAAK,iBAAmB2k7B,EAAU,QAAU,MACtE9l7B,aAAa,QAAUkm7B,EAAWpk8B,YACnC9W,KAAK4iR,UACL91M,EAAK93C,aAAa,IAAMgm7B,EAAMlk8B,cARlC49Q,EAAO,IAAIq1qB,IAAW/p8B,KAAKmV,QAAQghB,GAAK,iBAAmB2k7B,EAAU,QAAU,IAAK,cAAe,EAAG,cAAe,EAAG,IAAIjZ,IAAKmZ,EAAMC,EAAM7M,EAAW8M,IACxJpu4B,EAAO9sE,KAAKsgU,SAASkpe,cAAc90gB,GACnCmoe,EAASnruB,YAAYo7C,KAWpB+rR,GAMD/rR,EAAOk6N,IAAWhnS,KAAKmV,QAAQghB,GAAK,oBAC/BnB,aAAa,IAAKxzB,IANvBo8S,EAAS,IAAI8kpB,IAAW1i8B,KAAKmV,QAAQghB,GAAK,kBAAmB,cAAe,GAAI,cAAe,EAAG,IAAK30B,GACvGsrE,EAAO9sE,KAAKsgU,SAAS0ve,SAASpyf,GAC9Bi/c,EAASnruB,YAAYo7C,IAOtBA,CACX,EAIA2s4B,EAAY9o8B,UAAU08Z,SAAW,WAE7B,OADArta,KAAKoj8B,WR9RN,SAA+Bl2hB,GAClC,IAAI/ma,EACJ,OAAQ+ma,GACJ,IAAK,WACD/ma,EAAQ,CACJot8B,iBAAkB,UAClBwD,oBAAqB,UACrBW,mBAAoB,UACpB8B,sBAAuB,UACvB57e,gBAAiB,cACjBqtC,UAAW,UACXmrc,iBAAkB,SAClBF,eAAgB,KAChBC,gBAAiB,UACjB+C,mBAAoB,SACpBD,kBAAmB,SACnBD,iBAAkB,KAClB7G,gBAAiB,EACjBsB,aAAc,IACd4B,cAAe,GACf/E,eAAgB,EAChBc,iBAAkB,EAClBkC,qBAAsB,EACtBpG,wBAAyB,EACzBuK,uBAAwB,EACxB7F,0BAA2B,EAC3BvO,YAAa,UACbE,kBAAmB,UACnB9zuB,QAAS,UACTqnvB,OAAQ,UACRpw0B,QAAS,UACTnqG,KAAM,WAEV,MACJ,IAAK,YACDp2B,EAAQ,CACJot8B,iBAAkB,UAClBwD,oBAAqB,UACrBW,mBAAoB,UACpB8B,sBAAuB,UACvB57e,gBAAiB,cACjBqtC,UAAW,UACXmrc,iBAAkB,YAClBD,gBAAiB,UACjBD,eAAgB,KAChBgD,mBAAoB,WACpBD,kBAAmB,SACnBD,iBAAkB,KAClB7G,gBAAiB,EACjBsB,aAAc,EACd4B,cAAe,IACf/E,eAAgB,EAChBc,iBAAkB,EAClBkC,qBAAsB,GACtBpG,wBAAyB,GACzBuK,uBAAwB,EACxB7F,0BAA2B,EAC3BvO,YAAa,UACbE,kBAAmB,UACnB9zuB,QAAS,UACTqnvB,OAAQ,UACRpw0B,QAAS,UACTnqG,KAAM,WAEV,MACJ,IAAK,aACDp2B,EAAQ,CACJot8B,iBAAkB,UAClBwD,oBAAqB,UACrBW,mBAAoB,UACpB8B,sBAAuB,UACvB57e,gBAAiB,cACjBqtC,UAAW,UACXmrc,iBAAkB,YAClBD,gBAAiB,UACjBD,eAAgB,KAChBgD,mBAAoB,YACpBD,kBAAmB,SACnBD,iBAAkB,KAClB7G,gBAAiB,EACjBsB,aAAc,EACd4B,cAAe,IACf/E,eAAgB,EAChBc,iBAAkB,EAClBkC,qBAAsB,GACtBpG,wBAAyB,GACzBuK,uBAAwB,EACxB7F,0BAA2B,EAC3BvO,YAAa,UACbE,kBAAmB,UACnB9zuB,QAAS,UACTqnvB,OAAQ,UACRpw0B,QAAS,UACTnqG,KAAM,WAEV,MACJ,IAAK,eACDp2B,EAAQ,CACJot8B,iBAAkB,UAClBwD,oBAAqB,UACrBW,mBAAoB,UACpB8B,sBAAuB,UACvB57e,gBAAiB,cACjBqtC,UAAW,UACXmrc,iBAAkB,WAClBF,eAAgB,KAChBC,gBAAiB,UACjB+C,mBAAoB,WACpBD,kBAAmB,SACnBD,iBAAkB,KAClB7G,gBAAiB,EACjBsB,aAAc,EACd4B,cAAe,IACf/E,eAAgB,EAChBc,iBAAkB,EAClBkC,qBAAsB,EACtBpG,wBAAyB,EACzBuK,uBAAwB,EACxB7F,0BAA2B,EAC3BvO,YAAa,UACbE,kBAAmB,UACnB9zuB,QAAS,UACTqnvB,OAAQ,UACRpw0B,QAAS,UACTnqG,KAAM,WAEV,MACJ,IAAK,WACDp2B,EAAQ,CACJot8B,iBAAkB,UAClBwD,oBAAqB,UACrBW,mBAAoB,UACpB8B,sBAAuB,UACvB57e,gBAAiB,cACjBqtC,UAAW,UACXmrc,iBAAkB,QAClBF,eAAgB,KAChBC,gBAAiB,UACjB+C,mBAAoB,QACpBD,kBAAmB,SACnBD,iBAAkB,KAClB7G,gBAAiB,EACjBsB,aAAc,EACd4B,cAAe,IACf/E,eAAgB,EAChBc,iBAAkB,EAClBkC,qBAAsB,EACtBpG,wBAAyB,EACzBuK,uBAAwB,EACxB7F,0BAA2B,EAC3BvO,YAAa,UACbE,kBAAmB,UACnB9zuB,QAAS,UACTqnvB,OAAQ,UACRpw0B,QAAS,UACTnqG,KAAM,WAEV,MACJ,IAAK,eACDp2B,EAAQ,CACJot8B,iBAAkB,UAClBwD,oBAAqB,UACrBW,mBAAoB,UACpB8B,sBAAuB,UACvB57e,gBAAiB,cACjBqtC,UAAW,UACXmrc,iBAAkB,QAClBF,eAAgB,KAChBC,gBAAiB,UACjB+C,mBAAoB,SACpBD,kBAAmB,SACnBD,iBAAkB,KAClB7G,gBAAiB,EACjBsB,aAAc,EACd4B,cAAe,IACf/E,eAAgB,EAChBc,iBAAkB,EAClBkC,qBAAsB,EACtBpG,wBAAyB,EACzBuK,uBAAwB,EACxB7F,0BAA2B,EAC3BvO,YAAa,UACbE,kBAAmB,UACnB9zuB,QAAS,UACTqnvB,OAAQ,UACRpw0B,QAAS,UACTnqG,KAAM,WAEV,MACJ,IAAK,aACL,IAAK,gBACL,IAAK,eACDp2B,EAAQ,CACJot8B,iBAAkB,UAClBwD,oBAAqB,UACrBW,mBAAoB,UACpB8B,sBAAuB,UACvB57e,gBAAiB,cACjBqtC,UAAW,UACXmrc,iBAAkB,YAClBD,gBAAiB,SACjBD,eAAgB,KAChBgD,mBAAoB,YACpBD,kBAAmB,SACnBD,iBAAkB,KAClB7G,gBAAiB,EACjBsB,aAAc,EACd4B,cAAe,IACf/E,eAAgB,EAChBc,iBAAkB,EAClBkC,qBAAsB,GACtBpG,wBAAyB,GACzBuK,uBAAwB,EACxB7F,0BAA2B,EAC3BvO,YAAa,UACbE,kBAAmB,UACnB9zuB,QAAS,UACTqnvB,OAAQ,UACRpw0B,QAAS,UACTnqG,KAAM,WAEV,MACJ,IAAK,aACDp2B,EAAQ,CACJot8B,iBAAkB,UAClBwD,oBAAqB,UACrBW,mBAAoB,UACpB8B,sBAAuB,UACvB57e,gBAAiB,cACjBqtC,UAAW,UACXmrc,iBAAkB,iBAClBD,gBAAiB,SACjBD,eAAgB,KAChBgD,mBAAoB,iBACpBD,kBAAmB,SACnBD,iBAAkB,KAClB7G,gBAAiB,EACjBsB,aAAc,EACd4B,cAAe,IACf/E,eAAgB,EAChBc,iBAAkB,EAClBkC,qBAAsB,GACtBpG,wBAAyB,GACzBuK,uBAAwB,EACxB7F,0BAA2B,EAC3BvO,YAAa,UACbE,kBAAmB,UACnB9zuB,QAAS,UACTqnvB,OAAQ,UACRpw0B,QAAS,UACTnqG,KAAM,WAEV,MACJ,IAAK,iBACDp2B,EAAQ,CACJot8B,iBAAkB,UAClBwD,oBAAqB,UACrBW,mBAAoB,UACpB8B,sBAAuB,UACvB57e,gBAAiB,cACjBqtC,UAAW,UACXmrc,iBAAkB,iBAClBD,gBAAiB,SACjBD,eAAgB,KAChBgD,mBAAoB,iBACpBD,kBAAmB,SACnBD,iBAAkB,KAClB7G,gBAAiB,EACjBsB,aAAc,EACd4B,cAAe,GACf/E,eAAgB,EAChBc,iBAAkB,EAClBkC,qBAAsB,GACtBpG,wBAAyB,GACzBuK,uBAAwB,EACxB7F,0BAA2B,EAC3BvO,YAAa,UACbE,kBAAmB,UACnB9zuB,QAAS,UACTqnvB,OAAQ,UACRpw0B,QAAS,UACTnqG,KAAM,WAEV,MACJ,IAAK,SACDp2B,EAAQ,CACJot8B,iBAAkB,UAClBwD,oBAAqB,UACrBW,mBAAoB,UACpB8B,sBAAuB,UACvB57e,gBAAiB,cACjBqtC,UAAW,UACXmrc,iBAAkB,iBAClBD,gBAAiB,SACjBD,eAAgB,KAChBgD,mBAAoB,iBACpBD,kBAAmB,SACnBD,iBAAkB,KAClB7G,gBAAiB,EACjBsB,aAAc,EACd4B,cAAe,IACf/E,eAAgB,EAChBc,iBAAkB,EAClBkC,qBAAsB,GACtBpG,wBAAyB,GACzBuK,uBAAwB,EACxB7F,0BAA2B,EAC3BvO,YAAa,UACbE,kBAAmB,UACnB9zuB,QAAS,UACTqnvB,OAAQ,UACRpw0B,QAAS,UACTnqG,KAAM,WAEV,MACJ,IAAK,aACDp2B,EAAQ,CACJot8B,iBAAkB,UAClBwD,oBAAqB,UACrBW,mBAAoB,UACpB8B,sBAAuB,UACvB57e,gBAAiB,cACjBqtC,UAAW,UACXmrc,iBAAkB,iBAClBD,gBAAiB,SACjBD,eAAgB,KAChBgD,mBAAoB,iBACpBD,kBAAmB,SACnBD,iBAAkB,KAClB7G,gBAAiB,EACjBsB,aAAc,EACd4B,cAAe,IACf/E,eAAgB,EAChBc,iBAAkB,EAClBkC,qBAAsB,GACtBpG,wBAAyB,GACzBuK,uBAAwB,EACxB7F,0BAA2B,EAC3BvO,YAAa,UACbE,kBAAmB,UACnB9zuB,QAAS,UACTqnvB,OAAQ,UACRpw0B,QAAS,UACTnqG,KAAM,WAEV,MACJ,QACIp2B,EAAQ,CACJot8B,iBAAkB,UAClBwD,oBAAqB,UACrBW,mBAAoB,UACpB8B,sBAAuB,UACvB57e,gBAAiB,cACjBqtC,UAAW,UACXmrc,iBAAkB,WAClBD,gBAAiB,UACjBD,eAAgB,KAChBgD,mBAAoB,WACpBD,kBAAmB,SACnBD,iBAAkB,KAClB7G,gBAAiB,EACjBsB,aAAc,EACd4B,cAAe,GACf/E,eAAgB,EAChBc,iBAAkB,EAClBkC,qBAAsB,EACtBpG,wBAAyB,EACzBuK,uBAAwB,EACxB7F,0BAA2B,EAC3BvO,YAAa,UACbE,kBAAmB,UACnB9zuB,QAAS,UACTqnvB,OAAQ,UACRpw0B,QAAS,UACTnqG,KAAM,WAIlB,OAAOp2B,CACX,CQ7F0Bg18B,CAAsBn78B,KAAKkta,OACrClta,KAAKkta,OACT,IAAK,YACL,IAAK,aACDlta,KAAKu/7B,aAAqC,SAAtBv/7B,KAAKu/7B,aACL,WAAdv/7B,KAAK4M,KAAqB,WAAa,QAAW5M,KAAKu/7B,aAC7D,MACJ,QACIv/7B,KAAKu/7B,aAAqC,SAAtBv/7B,KAAKu/7B,aAA0B,SAAWv/7B,KAAKu/7B,aAE/E,EAIAka,EAAY9o8B,UAAUup8B,iBAAmB,WACjCl68B,KAAKgw8B,0BAA4Bhw8B,KAAKo1M,YAAYhyM,OAAS,GAC3DpD,KAAKgw8B,yBAAyBiK,kBAAkBj68B,KAAKw68B,WAE7D,EAOAf,EAAY9o8B,UAAUyq8B,eAAiB,WACnC,IAAI978B,EAAQU,KAEZ,MAAM,IAAIyB,MAAOC,UAAY1B,KAAKg68B,yBAA2B,KACzD,OAAO,EAEX,IAAIxh5B,EAAM,CACNmj0B,IAAK373B,KACL0E,KAAM,UACN228B,YAAa,IAAI3Z,IAAK,EAAG,GACzB4Z,aAAc,IAAI5Z,IAAK1h8B,KAAK0t8B,aAAalv7B,MAAOxe,KAAK0t8B,aAAa9kzB,QAClE9nE,SAAS9gF,KAAKqs8B,cAsBlB,OApBIrs8B,KAAKorhB,UACL/0f,aAAar2B,KAAKorhB,UAEtBprhB,KAAKorhB,SAAWh1f,YAAW,WACnB92B,EAAM64R,YACN9hQ,aAAa/2B,EAAM8rhB,WAGvB5yd,EAAI6i5B,YAAc/78B,EAAMou8B,aACxBpu8B,EAAMghS,QAAQ,UAAW9nO,IACJ,OAAhBl5D,EAAMkf,OAAmC,OAAjBlf,EAAMspJ,QAAmBtpJ,EAAMkf,MAAM7T,QAAQ,MAAQ,GAAKrL,EAAMspJ,OAAOj+I,QAAQ,MAAQ,KAC5G6tD,EAAIsoB,SACJxhF,EAAMk78B,aACNl78B,EAAMk78B,WAAWtx6B,UAAY,IAEjC5pC,EAAMs68B,2BACNt68B,EAAMu68B,YACNv68B,EAAMy68B,kBAEd,GAAG,MACI,CACX,EACAN,EAAY9o8B,UAAU4q8B,mBAAqB,SAAUl78B,GACjDL,KAAKw78B,WNpVW,aMoVYn78B,EAChC,EACAo58B,EAAY9o8B,UAAU8q8B,kBAAoB,SAAUp78B,GAChDL,KAAKw78B,WNnVU,YMmVYn78B,EAC/B,EACAo58B,EAAY9o8B,UAAU+q8B,kBAAoB,SAAUr78B,GAChDL,KAAKw78B,WN9UU,YM8UYn78B,GAC3B,IAAIgI,EAAShI,EAAEgI,OACXrI,KAAKksb,QAAQv7B,QAAU3wZ,KAAKksb,QAAQ6/gB,qBAChC1j8B,EAAO8tB,GAAGxrB,QAAQ,qBAAuB,GAAKtC,EAAO8tB,GAAGxrB,QAAQ,mBAAqB,GAAKtC,EAAO8tB,GAAGxrB,QAAQ,mBAAqB,GAAKtC,EAAO8tB,GAAGxrB,QAAQ,iBAAmB,GAAKtC,EAAO8tB,GAAGxrB,QAAQ,iBAAmB,EACrN3K,KAAK258B,sBAAsBzthB,QAAQ7rb,GAE9BL,KAAK258B,sBAAsBvunB,aAChCprV,KAAK258B,sBAAsBhN,cAAc,KACzC3s8B,KAAK258B,sBAAsBvunB,YAAa,GAGpD,EACAqunB,EAAY9o8B,UAAUgr8B,gBAAkB,SAAUt78B,GAC9CL,KAAKw78B,WN/VQ,UM+VYn78B,EAC7B,EACAo58B,EAAY9o8B,UAAUir8B,mBAAqB,SAAUv78B,GACjDL,KAAKw78B,WN1VW,aM0VYn78B,EAChC,EACAo58B,EAAY9o8B,UAAU6q8B,WAAa,SAAUjl7B,EAAWl2B,GACpD,IAAI8U,EAAU9U,EAAEgI,OAChBrI,KAAKsgS,QAAQ/pQ,EAAW,CAAEluB,OAAQ8M,EAAQghB,IAC9C,EAIAsj7B,EAAY9o8B,UAAU65b,aAAe,WACjC,IAAInkG,EAAapf,GAAQwB,gBACrBye,EAAYjgB,GAAQyB,eACpBmznB,EAAY50nB,GAAQ0B,cAEpB9gV,EAAco/U,GAAQI,UAAY,eAAiB,aAEvDxuG,GAAa1lN,OAAOnzB,KAAKmV,QAAS,QAASnV,KAAKu78B,oBAChD1iuB,GAAa1lN,OAAOnzB,KAAKmV,QAASkxV,EAAYrmW,KAAKy78B,mBACnD5iuB,GAAa1lN,OAAOnzB,KAAKmV,QAAS+xV,EAAWlnW,KAAK078B,mBAClD7iuB,GAAa1lN,OAAOnzB,KAAKmV,QAAS0m8B,EAAW778B,KAAK278B,iBAClD9iuB,GAAa1lN,OAAOnzB,KAAKmV,QAAStN,EAAa7H,KAAK478B,oBACpD5q7B,OAAOoK,oBAAqB6rT,GAAQK,SAAY,gBAAiBt2T,QAAU,wBAAyBA,OAAW,oBAAsB,SAAUhxB,KAAK878B,aACxJ,EAIArC,EAAY9o8B,UAAUozV,WAAa,WAC/B,IAAIsC,EAAapf,GAAQwB,gBACrBye,EAAYjgB,GAAQyB,eACpBmznB,EAAY50nB,GAAQ0B,cAEpB9gV,EAAco/U,GAAQI,UAAY,eAAiB,aAEvDxuG,GAAazlN,IAAIpzB,KAAKmV,QAAS,QAASnV,KAAKu78B,mBAAoBv78B,MACjE64O,GAAazlN,IAAIpzB,KAAKmV,QAASkxV,EAAYrmW,KAAKy78B,kBAAmBz78B,MACnE64O,GAAazlN,IAAIpzB,KAAKmV,QAAS+xV,EAAWlnW,KAAK078B,kBAAmB178B,MAClE64O,GAAazlN,IAAIpzB,KAAKmV,QAAS0m8B,EAAW778B,KAAK278B,gBAAiB378B,MAChE64O,GAAazlN,IAAIpzB,KAAKmV,QAAStN,EAAa7H,KAAK478B,mBAAoB578B,MACrEA,KAAK878B,aAAe978B,KAAKo78B,eAAev78B,KAAKG,MAC7CgxB,OAAOsK,iBAAkB2rT,GAAQK,SAAY,gBAAiBt2T,QAAU,wBAAyBA,OAAW,oBAAsB,SAAUhxB,KAAK878B,aACrJ,EACArC,EAAY9o8B,UAAU+p8B,UAAY,WAC9B,IAAI7O,EAAa366B,SAASg8T,eAAeltV,KAAKmV,QAAQghB,GAAK,OACvD016B,GACA146B,GAAO046B,EAEf,EACA4N,EAAY9o8B,UAAU+7U,kBAAoB,SAAUiF,EAASC,GACzD,IAAK,IAAItiV,EAAK,EAAGgmC,EAAK71C,OAAO8E,KAAKotV,GAAUriV,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CAE9D,OADWgmC,EAAGhmC,IAEV,IAAK,cACDtP,KAAKw68B,WAAWtx6B,UAAY,GAC5BlpC,KAAKk68B,mBACL,MACJ,IAAK,QACDl68B,KAAKqs8B,eAAgBrs8B,KAAKmvJ,UAAUwhQ,OACpC3wZ,KAAKok8B,SAAW,CACZxi8B,MAAO5B,KAAK4B,MACZqs8B,cAAeju8B,KAAKok8B,SAAS6J,cAC7BD,WAAYhu8B,KAAKok8B,SAAS4J,YAE1Bhu8B,KAAKok8B,SAASxi8B,MAAQgwV,EAAQhwV,OAAS5B,KAAKmvJ,UAAUwhQ,SACtD3wZ,KAAKok8B,SAASxi8B,MAAQgwV,EAAQhwV,OAE9B5B,KAAKok8B,SAASxi8B,QAAU5B,KAAKknZ,QAC7BlnZ,KAAKsgS,QAAQmrqB,IAAmBzr8B,KAAKok8B,UAGrCpk8B,KAAKsgS,QAAQkrqB,IAAcxr8B,KAAKok8B,UAElB,aAAdpk8B,KAAK4M,MACL5M,KAAKis8B,SAAS4L,uBAAuB738B,KAAKq48B,iBAAkBr48B,KAAK838B,kBAAmB/roB,GAAkB6lB,EAAQhwV,QAC1G5B,KAAK468B,mBACL568B,KAAKis8B,SAAS2M,qBAAoB,GAElC548B,KAAKgw8B,0BAA4Bhw8B,KAAKmvJ,UAAUwhQ,SAAW3wZ,KAAKw08B,iBAChEx08B,KAAK058B,kBAAkBhK,sBAAsB1v8B,KAAK68vB,SAAU78vB,KAAMA,KAAKkw8B,YAAalw8B,KAAKiw8B,iBAI7Fjw8B,KAAKowV,OAAO0jnB,sBAAsB/noB,GAAkB6lB,EAAQhwV,OAAQ5B,KAAK82gB,eACrE92gB,KAAK468B,mBACL568B,KAAKowV,OAAOmlnB,mBAAkB,IAGtC,MACJ,IAAK,YACDv18B,KAAK658B,YACL758B,KAAK+58B,iBAGjB,CACJ,EACAN,EAAY9o8B,UAAUuiV,gBAAkB,WACpC,IAAIc,EAAU,GAiBd,OAfmBh0V,KAAKo1M,YAAY3wM,MAAK,SAAU7C,GAC/C,OAA0B,OAAlBA,EAAMmT,OAClB,KAEIi/U,EAAQ5nV,KAAK,CACTqnV,OAAQ,qBACRx6U,KAAM,CAACjZ,QAGXA,KAAKksb,QAAQv7B,QACb38D,EAAQ5nV,KAAK,CACTqnV,OAAQ,UACRx6U,KAAM,CAACjZ,QAGRg0V,CACX,EACAylnB,EAAY9o8B,UAAU0pV,eAAiB,WACnC,MAAO,GACX,EACAo/mB,EAAY9o8B,UAAU01S,KAAO,WACpB0lB,GAAkB/rU,KAAK8j8B,aACxB9j8B,KAAK8j8B,UAAU9u6B,aAAa,aAAc,WACtCh1B,KAAKw08B,kBACLx08B,KAAKuu8B,sBAAuB,EACV,WAAdvu8B,KAAK4M,KACL5M,KAAKowV,OAAO0jnB,sBAAqB,GAGjC9z8B,KAAKis8B,SAAS4L,uBAAuB,KAAM,MAAM,IAIjE,EACA4B,EAAY9o8B,UAAU4sR,KAAO,WACpBwuC,GAAkB/rU,KAAK8j8B,aACxB9j8B,KAAK8j8B,UAAU9u6B,aAAa,aAAc,UACtCh1B,KAAKw08B,kBACLx08B,KAAKuu8B,sBAAuB,GAGxC,EAQAkL,EAAY9o8B,UAAUymI,QAAU,WAC5Bp3I,KAAKwqc,eACL1jZ,EAAOn2C,UAAUymI,QAAQz3I,KAAKK,MAC9BA,KAAK068B,YAED168B,KAAKywW,SACLzwW,KAAKu6V,gBAETv6V,KAAK8j8B,UAAY,KACjB9j8B,KAAKmV,QAAQ+yQ,UAAU/0P,OAAO,iBACzBnzB,KAAK2rV,aACN3rV,KAAKuu8B,sBAAuB,EAEpC,EACAx+mB,IAAW,CACPjB,GAAS,WACV2qnB,EAAY9o8B,UAAW,YAAQ,GAClCo/U,IAAW,CACPjB,GAAS,OACV2qnB,EAAY9o8B,UAAW,aAAS,GACnCo/U,IAAW,CACPjB,GAAS,OACV2qnB,EAAY9o8B,UAAW,yBAAqB,GAC/Co/U,IAAW,CACPjB,GAAS,KACV2qnB,EAAY9o8B,UAAW,8BAA0B,GACpDo/U,IAAW,CACPjB,GAAS,OACV2qnB,EAAY9o8B,UAAW,kCAA8B,GACxDo/U,IAAW,CACPjB,GAAS,IACV2qnB,EAAY9o8B,UAAW,eAAW,GACrCo/U,IAAW,CACPjB,GAAS,MACV2qnB,EAAY9o8B,UAAW,eAAW,GACrCo/U,IAAW,CACPjB,GAAS,IACV2qnB,EAAY9o8B,UAAW,kBAAc,GACxCo/U,IAAW,CACPjB,GAAS,IACV2qnB,EAAY9o8B,UAAW,gBAAY,GACtCo/U,IAAW,CACPjB,GAAS,SACV2qnB,EAAY9o8B,UAAW,cAAU,GACpCo/U,IAAW,CACPjB,GAAS,SACV2qnB,EAAY9o8B,UAAW,mBAAe,GACzCo/U,IAAW,CACPjB,GAAS,IACV2qnB,EAAY9o8B,UAAW,oBAAgB,GAC1Co/U,IAAW,CACPjB,GAAS,OACV2qnB,EAAY9o8B,UAAW,gBAAY,GACtCo/U,IAAW,CACPjB,GAAS,KACV2qnB,EAAY9o8B,UAAW,oBAAgB,GAC1Co/U,IAAW,CACPjB,GAAS,SACV2qnB,EAAY9o8B,UAAW,oBAAgB,GAC1Co/U,IAAW,CACPjB,GAAS,OACV2qnB,EAAY9o8B,UAAW,cAAU,GACpCo/U,IAAW,CACPjB,GAAS,OACV2qnB,EAAY9o8B,UAAW,aAAS,GACnCo/U,IAAW,CACPjB,IAAS,IACV2qnB,EAAY9o8B,UAAW,uBAAmB,GAC7Co/U,IAAW,CACPjB,IAAS,IACV2qnB,EAAY9o8B,UAAW,gBAAY,GACtCo/U,IAAW,CACPjB,IAAS,IACV2qnB,EAAY9o8B,UAAW,kBAAc,GACxCo/U,IAAW,CACPjB,IAAS,IACV2qnB,EAAY9o8B,UAAW,iBAAa,GACvCo/U,IAAW,CACPjB,GAAS,SACV2qnB,EAAY9o8B,UAAW,YAAQ,GAClCo/U,IAAW,CACPjB,IAAS,IACV2qnB,EAAY9o8B,UAAW,iBAAa,GACvCo/U,IAAW,CACPjB,IAAS,IACV2qnB,EAAY9o8B,UAAW,oBAAgB,GAC1Co/U,IAAW,CACPjB,GAAS,OACV2qnB,EAAY9o8B,UAAW,kBAAc,GACxCo/U,IAAW,CACPjB,GAAS,OACV2qnB,EAAY9o8B,UAAW,qBAAiB,GAC3Co/U,IAAW,CACPjB,GAAS,IACV2qnB,EAAY9o8B,UAAW,sBAAkB,GAC5Co/U,IAAW,CACPjB,GAAS,IACV2qnB,EAAY9o8B,UAAW,yBAAqB,GAC/Co/U,IAAW,CACPjB,IAAS,IACV2qnB,EAAY9o8B,UAAW,yBAAqB,GAC/Co/U,IAAW,CACPjB,GAAS,WACV2qnB,EAAY9o8B,UAAW,aAAS,GACnCo/U,IAAW,CACPjB,IAAS,IACV2qnB,EAAY9o8B,UAAW,yBAAqB,GAC/Co/U,IAAW,CACPjB,IAAS,IACV2qnB,EAAY9o8B,UAAW,8BAA0B,GACpDo/U,IAAW,CACPd,GAAQ,CAAE54U,KAAM,KAAMogH,MAAO,KAAM+/c,UAAW,KAAMroc,WAAY,SAAUq0U,WAAY,MAAQ3/F,MAC/F42lB,EAAY9o8B,UAAW,kBAAc,GACxCo/U,IAAW,CACPd,GAAQ,CAAC,EAAGi8mB,MACbuO,EAAY9o8B,UAAW,cAAU,GACpCo/U,IAAW,CACPd,GAAQ,CAAC,EAAGgB,MACbwpnB,EAAY9o8B,UAAW,iBAAa,GACvCo/U,IAAW,CACPd,GAAQ,CAAC,EAAGm8mB,MACbqO,EAAY9o8B,UAAW,eAAW,GACrCo/U,IAAW,CACP94T,MACDwi7B,EAAY9o8B,UAAW,YAAQ,GAClCo/U,IAAW,CACP94T,MACDwi7B,EAAY9o8B,UAAW,kBAAc,GACxCo/U,IAAW,CACP94T,MACDwi7B,EAAY9o8B,UAAW,cAAU,GACpCo/U,IAAW,CACP94T,MACDwi7B,EAAY9o8B,UAAW,oBAAgB,GAC1Co/U,IAAW,CACP94T,MACDwi7B,EAAY9o8B,UAAW,yBAAqB,GAC/Co/U,IAAW,CACP94T,MACDwi7B,EAAY9o8B,UAAW,yBAAqB,GAC/Co/U,IAAW,CACP94T,MACDwi7B,EAAY9o8B,UAAW,kBAAc,GACxCo/U,IAAW,CACP94T,MACDwi7B,EAAY9o8B,UAAW,iBAAa,GACvCo/U,IAAW,CACP94T,MACDwi7B,EAAY9o8B,UAAW,eAAW,GACrCo/U,IAAW,CACP94T,MACDwi7B,EAAY9o8B,UAAW,iBAAa,GACvCo/U,IAAW,CACP94T,MACDwi7B,EAAY9o8B,UAAW,kBAAc,GACxCo/U,IAAW,CACP94T,MACDwi7B,EAAY9o8B,UAAW,qBAAiB,GAC3Co/U,IAAW,CACPb,GAAW,CAAC,CAAC,GAAIi8mB,MAClBsO,EAAY9o8B,UAAW,mBAAe,GACzCo/U,IAAW,CACPb,GAAW,CAAC,CAAC,GAAIm8mB,MAClBoO,EAAY9o8B,UAAW,mBAAe,GACzC8o8B,EAAc1pnB,IAAW,CACrBT,IACDmqnB,EAEP,CAlpBiC,CAkpB/Br48B,ICvrBE8kD,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAsBzC215B,IAAsC,SAAUj15B,GAEhD,SAASi15B,EAAqB388B,GAC1B,IAAIE,EAAQwnD,EAAOnnD,KAAKK,KAAMZ,IAAUY,KAQxC,OAPAV,EAAMixW,kBAAmB,EACzBjxW,EAAM2zW,sBAAuB,EAC7B3zW,EAAM+zW,cAAgB,CAAE,uBAA0B,wBAAyB,YAAe,cAC1F/zW,EAAM42W,uBAAyB,KAC/B52W,EAAMyzW,cAAgB,KACtBzzW,EAAM62W,iBAAkB,EACxB72W,EAAMwxW,QAAU,GACTxxW,CACX,CAUA,OArBA4mD,IAAU615B,EAAsBj15B,GAYhCi15B,EAAqBpr8B,UAAUyJ,OAAS,WACpC,KAAMpa,KAAKmV,UAAYnV,KAAKuwW,kBAAqBvwW,KAAK2rV,aAAgB3rV,KAAKwwW,oBAKvE,OAAO13K,GAAAA,cAAoB,MAAO94L,KAAKgyW,uBAAwB,GAAG54V,OAAOpZ,KAAKZ,MAAM0G,SAAU9F,KAAK8wW,UAJnGhqT,EAAOn2C,UAAUyJ,OAAOza,KAAKK,MAC7BA,KAAKuwW,kBAAmB,CAKhC,EACOwrmB,CACX,CAvB0C,CAuBxCtC,KAEFnkmB,GAAYymmB,IAAsB,CAAC7rmB,GAAep3K,GAAAA,YC/ClD,IAAI5yI,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAazC2pS,IAA0C,SAAUxoJ,EAAYl/L,EAAQiE,EAAKkkB,GAC7E,IAA2HhvB,EAAvH6e,EAAIld,UAAUC,OAAQkgH,EAAIjjG,EAAI,EAAIhY,EAAkB,OAATmoB,EAAgBA,EAAO/wB,OAAOk+B,yBAAyBt1B,EAAQiE,GAAOkkB,EACrH,GAAuB,kBAAZuN,SAAoD,oBAArBA,QAAQiyT,SAAyB1sO,EAAIvlF,QAAQiyT,SAASzoJ,EAAYl/L,EAAQiE,EAAKkkB,QACpH,IAAK,IAAIrkB,EAAIo7L,EAAWnkM,OAAS,EAAG+I,GAAK,EAAGA,KAAS3K,EAAI+lM,EAAWp7L,MAAIm3G,GAAKjjG,EAAI,EAAI7e,EAAE8hH,GAAKjjG,EAAI,EAAI7e,EAAE6G,EAAQiE,EAAKg3G,GAAK9hH,EAAE6G,EAAQiE,KAASg3G,GAChJ,OAAOjjG,EAAI,GAAKijG,GAAK7jH,OAAO4c,eAAehU,EAAQiE,EAAKg3G,GAAIA,CAChE,EAaI041B,IAAiB,gBAEjBxvQ,IAAQ,UACRyvQ,IAAe,kBACfC,IAAgB,mBAGhBl6jB,IAAO,oBAGPz2K,IAAQ,UACR6mC,IAAS,WAET+psB,IAAY,eACZC,IAAU,aACVC,IAAc,cACd9pjB,IAAa,gBAEb+pjB,IAAa,gBACbx6jB,IAAa,gBACby6jB,IAAa,gBACbC,IAAW,cACXhltB,IAAW,aACX4b,IAAW,aACXqpsB,IAAW,aACXC,IAAW,SACXC,IAAW,SACX/oQ,IAAS,WACTgpQ,IAAQ,UACRC,IAAgB,mBAChBC,IAAiB,yBAEjBC,IAAU,YAGVx6jB,IAAQ,UACRy6jB,IAAY,iBACZj0a,IAAU,YACVk0a,IAAU,aACV76jB,IAAa,gBACb86jB,IAAe,kBACfC,IAAe,kBAKfl7jB,IAAS,WACTppI,IAAU,YAEVqtb,IAAY,cAEZr9Z,IAAQ,UACR2pH,IAAW,mBAGX4qjB,IAAO,SACPC,IAAM,QAENC,IAAc,aAEdC,IAAgB,qBAChBrwe,IAAc,CAAC,QAAS,QAAS,SACjCswe,IAAyB,SAAU125B,GAEnC,SAAS025B,IACL,OAAkB,OAAX125B,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAUA,OAbAkmD,IAAUs35B,EAAS125B,GAInBipS,IAAW,CACPjB,MACD0unB,EAAQ7s8B,UAAW,aAAS,GAC/Bo/U,IAAW,CACPjB,MACD0unB,EAAQ7s8B,UAAW,aAAS,GAC/Bo/U,IAAW,CACPjB,MACD0unB,EAAQ7s8B,UAAW,WAAO,GACtB6s8B,CACX,CAf6B,CAe3BrpnB,IAeE+tE,IAAiC,SAAUp7W,GAS3C,SAASo7W,EAAgBpjZ,EAAS3J,GAC9B,IAAI7V,EAAQwnD,EAAOnnD,KAAKK,KAAM8e,EAAS3J,IAAYnV,KAiBnD,OAhBAV,EAAMm+8B,eAAgB,EACtBn+8B,EAAMo+8B,gBAAiB,EACvBp+8B,EAAMq+8B,YAAc,GACpBr+8B,EAAMqxb,cAAgB,GACtBrxb,EAAMs+8B,iBAAmB,GACzBt+8B,EAAMu+8B,YAAa,EACnBv+8B,EAAMw+8B,cAAe,EACrBx+8B,EAAMy+8B,oBAAqB,EAC3Bz+8B,EAAM0+8B,kBAAmB,EACzB1+8B,EAAMqP,aAAe,GACrBrP,EAAMurd,aAAc,EACpBvrd,EAAMs8b,cAAe,EACrBt8b,EAAMszZ,mBAAqB,KAC3BtzZ,EAAM4jZ,WAAY,EAClB5jZ,EAAM2jZ,eAAgB,EACtB3jZ,EAAM2+8B,iBAAmBn/7B,EAClBxf,CACX,CAmxIA,OA9yIA4mD,IAAUg8W,EAAiBp7W,GAkC3Bo7W,EAAgBvxZ,UAAUyJ,OAAS,WAC/Bpa,KAAK6tK,aACL7tK,KAAKisV,cAAc,CAAE2jE,UAAW5vZ,KAAK0qe,aAAc,GACnD1qe,KAAKisV,cAAc,CAAE4jE,QAAS7vZ,KAAK+q8B,WAAY,GAC/C/q8B,KAAKk+8B,gBACLl+8B,KAAKm+8B,kBAAiB,GAClBn+8B,KAAKmV,QAAQ2f,aAAa,aAC1B90B,KAAKmV,QAAQ6f,aAAa,WAAY,SAE1C2iG,GAAM4lR,eAAev9Y,KAAKq3S,aAAcr3S,KAAKozZ,aAAatmZ,WACrDi/T,GAAkB/rU,KAAKozZ,aAAahtQ,QAAQ,KAAQ2lL,GAAkB/rU,KAAKozZ,aAAatmZ,UAAUgmV,uBAAuB,yBAAyB,KAA+B,UAAxB9yV,KAAKs9Y,gBAC/Jt9Y,KAAKozZ,aAAatmZ,UAAUgmV,uBAAuB,yBAAyB,GAAG5qE,UAAU90P,IAAI,WAE5F24S,GAAkBt2O,GAAQz1F,KAAKmV,QAAS,cAAgBsgF,GAAQz1F,KAAKmV,QAAS,YAAYvG,WAC3F5O,KAAKk4R,SAAU,GAEnBl4R,KAAK45V,gBACT,EAOAsoE,EAAgBvxZ,UAAUmoV,UAAY,WAgDlC,GA/CA94V,KAAKo+8B,gBAAkB,CACnBnljB,aAAc,gBACdxmW,OAAQ,SACRizN,MAAO,QACP47B,IAAK,MACLwjG,cAAe,iBACfC,aAAc,gBACdb,OAAQ,UACRD,SAAU,YACVY,SAAU,SAEd7kZ,KAAKq+8B,gBAAkB,CACnB164B,YAAa3jE,KAAK2jE,YAClB264B,WAAY,aACZC,SAAU,WACVC,YAAa,eACbC,UAAW,QACXC,WAAY,SACZjw8B,aAAc,gBACdwG,KAAM,QAKVjV,KAAK2+8B,SAAW3t7B,OAAOo1b,WAAW,qBAAqB3xb,QACvDz0B,KAAKq3S,aAAer3S,KAAKmV,QACzBnV,KAAKymsB,WAAa,KACW,wBAAzBzmsB,KAAKmV,QAAQizB,UACbpoC,KAAKymsB,WAAazmsB,KAAKmV,QAAQizB,QAC/BpoC,KAAKq3S,aAAer3S,KAAKc,cAAc,SACvCd,KAAKmV,QAAQuc,YAAY1xB,KAAKq3S,eAElCr3S,KAAKgM,aAAehM,KAAKmV,QAAQguB,WAAU,GAC3C8kP,GAAY,CAACjoR,KAAKgM,cAAe,CAACg2Y,IAhL5B,YADA,UAkLNhiZ,KAAKy2Z,+BACDz2Z,KAAKmV,QAAQmd,aAAa,MACF,OAApBtyB,KAAKymsB,aACLzmsB,KAAKq3S,aAAalhR,GAAKn2B,KAAKmV,QAAQmd,aAAa,MAAQ,WAI7DtyB,KAAKmV,QAAQghB,GAAK42S,GAAY,sBACN,OAApB/sU,KAAKymsB,YACLn7rB,GAAWtL,KAAKq3S,aAAc,CAAE,GAAMr3S,KAAKmV,QAAQghB,GAAK,YAGhEn2B,KAAK4+8B,kBAAkB5+8B,KAAK4B,QACvB5B,KAAK4yZ,oBAA+C,kBAAhB5yZ,KAAK4B,MAAsB,CAChE,IAAIi98B,EAAa7+8B,KAAK4B,MAAM+wB,MAAM,IAAM3yB,KAAKmoF,UAAY,KACzDnoF,KAAK4B,MAAQ,CAAC,IAAIH,KAAKo98B,EAAW,IAAK,IAAIp98B,KAAKo98B,EAAW,IAC/D,CACA7+8B,KAAK8+8B,eACL9+8B,KAAKiF,SAAWjF,KAAKmV,QAAQ2f,aAAa,YAAc90B,KAAKmV,QAAQmd,aAAa,YAAc,IAChGtyB,KAAKmV,QAAQ4f,gBAAgB,YAC7B+xB,EAAOn2C,UAAUmoV,UAAUn5V,KAAKK,MAChCA,KAAK++8B,gBAAkB/+8B,KAAKg/8B,aAAan/8B,KAAKG,MAC9CA,KAAKi/8B,gBAAkBj/8B,KAAKk/8B,aAAar/8B,KAAKG,MAC9CA,KAAKm/8B,sBAAwBn/8B,KAAKo/8B,cAAcv/8B,KAAKG,MACrDA,KAAKq/8B,sBAAwBr/8B,KAAKs/8B,kBAAkBz/8B,KAAKG,MACzDA,KAAKu/8B,cAAgBv/8B,KAAKglZ,eAAehlZ,KAAK0qe,YAC9C1qe,KAAKw/8B,YAAcx/8B,KAAKglZ,eAAehlZ,KAAK+q8B,UAC5C/q8B,KAAK+mC,YAAc0uD,GAAQz1F,KAAKmV,QAAS,OAC7C,EACA+sZ,EAAgBvxZ,UAAUo5X,YAAc,WAChC/pY,KAAK4B,OAAS5B,KAAK4B,MAAMwB,OAAS,GAC9BpD,KAAK4B,MAAM,aAAcH,OAASI,OAAO7B,KAAK4B,MAAM,KACpD5B,KAAKisV,cAAc,CAAE2jE,UAAW5vZ,KAAK4B,MAAM,KAAM,GACjD5B,KAAK0qe,WAAa1qe,KAAK4B,MAAM,IAEC,kBAAlB5B,KAAK4B,MAAM,GACA,KAAlB5B,KAAK4B,MAAM,IAAYC,OAAQ,IAAIJ,KAAKzB,KAAKilZ,WAAWjlZ,KAAK4B,MAAM,OACpE5B,KAAK0qe,WAAa,KAClB1qe,KAAK0gJ,aAGL1gJ,KAAKisV,cAAc,CAAE2jE,UAAW,IAAInuZ,KAAKzB,KAAKilZ,WAAWjlZ,KAAK4B,MAAM,OAAQ,GAC5E5B,KAAK0qe,WAAa,IAAIjpe,KAAKzB,KAAKilZ,WAAWjlZ,KAAK4B,MAAM,OAI1D5B,KAAK0qe,WAAa,KAClB1qe,KAAK0gJ,YAEL1gJ,KAAK4B,MAAM,aAAcH,OAASI,OAAO7B,KAAK4B,MAAM,KACpD5B,KAAKisV,cAAc,CAAE4jE,QAAS7vZ,KAAK4B,MAAM,KAAM,GAC/C5B,KAAK+q8B,SAAW/q8B,KAAK4B,MAAM,IAEG,kBAAlB5B,KAAK4B,MAAM,GACA,KAAlB5B,KAAK4B,MAAM,IAAYC,OAAQ,IAAIJ,KAAKzB,KAAKilZ,WAAWjlZ,KAAK4B,MAAM,OACpE5B,KAAKisV,cAAc,CAAE4jE,QAAS,OAAQ,GACtC7vZ,KAAK+q8B,SAAW,KAChB/q8B,KAAK0gJ,aAGL1gJ,KAAKisV,cAAc,CAAE4jE,QAAS,IAAIpuZ,KAAKzB,KAAKilZ,WAAWjlZ,KAAK4B,MAAM,OAAQ,GAC1E5B,KAAK+q8B,SAAW,IAAItp8B,KAAKzB,KAAKilZ,WAAWjlZ,KAAK4B,MAAM,KACpD5B,KAAK0gJ,aAIT1gJ,KAAKisV,cAAc,CAAE4jE,QAAS,OAAQ,GACtC7vZ,KAAK+q8B,SAAW,KAChB/q8B,KAAK0gJ,aAGJ1gJ,KAAK4B,OAAS5B,KAAK4B,MAAMs0C,OAC1Bl2C,KAAK4B,MAAMs0C,iBAAiBz0C,OAASI,OAAO7B,KAAK4B,MAAMs0C,QACvDl2C,KAAKisV,cAAc,CAAE2jE,UAAW5vZ,KAAK4B,MAAMs0C,QAAS,GACpDl2C,KAAK0qe,WAAa1qe,KAAK4B,MAAMs0C,OAEI,kBAArBl2C,KAAK4B,MAAMs0C,OACvBl2C,KAAKisV,cAAc,CAAE2jE,UAAW,IAAInuZ,KAAKzB,KAAKilZ,WAAWjlZ,KAAK4B,MAAMs0C,UAAW,GAC/El2C,KAAK0qe,WAAa,IAAIjpe,KAAKzB,KAAKilZ,WAAWjlZ,KAAK4B,MAAMs0C,UAGtDl2C,KAAK0qe,WAAa,KAClB1qe,KAAK0gJ,YAEL1gJ,KAAK4B,MAAMw3C,eAAe33C,OAASI,OAAO7B,KAAK4B,MAAMw3C,MACrDp5C,KAAKisV,cAAc,CAAE4jE,QAAS7vZ,KAAK4B,MAAMw3C,MAAO,GAChDp5C,KAAK+q8B,SAAW/q8B,KAAK4B,MAAMw3C,KAEI,kBAAnBp5C,KAAK4B,MAAMw3C,KACvBp5C,KAAKisV,cAAc,CAAE4jE,QAAS,IAAIpuZ,KAAKzB,KAAKilZ,WAAWjlZ,KAAK4B,MAAMw3C,QAAS,GAC3Ep5C,KAAK+q8B,SAAW,IAAItp8B,KAAKzB,KAAKilZ,WAAWjlZ,KAAK4B,MAAMw3C,MACpDp5C,KAAK0gJ,aAGL1gJ,KAAKisV,cAAc,CAAE4jE,QAAS,OAAQ,GACtC7vZ,KAAK+q8B,SAAW,KAChB/q8B,KAAK0gJ,aAGJqrL,GAAkB/rU,KAAK4B,SAC5B5B,KAAK+q8B,SAAW/q8B,KAAKglZ,eAAe,IAAIvjZ,KAAKzB,KAAKilZ,WAAWjlZ,KAAK6vZ,WAClE7vZ,KAAK0qe,WAAa1qe,KAAKglZ,eAAe,IAAIvjZ,KAAKzB,KAAKilZ,WAAWjlZ,KAAK4vZ,aACpE5vZ,KAAK0gJ,WAEb,EACAwhR,EAAgBvxZ,UAAUmu8B,aAAe,WACrC9+8B,KAAKujZ,UAAY,IAAItkE,GAAqBj/U,KAAKD,QAC/CC,KAAKo5Z,cACLp5Z,KAAK0tZ,aACD3hF,GAAkB/rU,KAAKiM,iBAAmBjM,KAAKiM,eAAiB,GAAKjM,KAAKiM,eAAiB,IAC3FjM,KAAKisV,cAAc,CAAEhgV,eAAgBjM,KAAKujZ,UAAUx0Y,sBAAuB,GAE/E/O,KAAK+pY,aACT,EACAm4B,EAAgBvxZ,UAAUyoZ,YAAc,WACpC,GAAIp5Z,KAAKqlB,OACL,GAA2B,kBAAhBrlB,KAAKqlB,OACZrlB,KAAKy0Z,aAAez0Z,KAAKqlB,YAExB,GAA6B,KAAzBrlB,KAAKqlB,OAAO4tT,UAAoBlH,GAAkB/rU,KAAKqlB,OAAO4tT,UAKnEjzU,KAAKy0Z,aAAe,SAL0D,CAC9E,IAAI4E,EAAiBr5Z,KAAKqlB,OAAO4tT,SACjCjzU,KAAKy0Z,aAAez0Z,KAAKujZ,UAAU5jE,eAAe,CAAE1M,SAAUomF,EAAgBzsZ,KAAM,QACxF,MAMA5M,KAAKy0Z,aAAe,IAE5B,EACAyN,EAAgBvxZ,UAAUk9J,WAAa,WACX,OAApB7tK,KAAKymsB,YACLzmsB,KAAK+4Z,oBAAoB/4Z,KAAKmV,QAASnV,KAAKq3S,cAEhDr3S,KAAKg5Z,qBAAoB,GACzB71U,GAAMnjF,KAAK8jZ,kBAAmB,CAAEoV,SAAU,YAAa53G,IAAK,QAC5D,IAAIprQ,EAAQl2C,KAAKglZ,eAAe,IAAIvjZ,KAAKzB,KAAKilZ,WAAWjlZ,KAAK0qe,cAC9D1qe,KAAKisV,cAAc,CAAE2jE,UAAW15W,IAAS,GACzCl2C,KAAKisV,cAAc,CAAE8+mB,SAAU/q8B,KAAKglZ,eAAe,IAAIvjZ,KAAKzB,KAAKilZ,WAAWjlZ,KAAK+q8B,cAAe,GAChG/q8B,KAAK0gJ,WACL1gJ,KAAKisV,cAAc,CAAEriS,IAAK5pD,KAAKglZ,eAAe,IAAIvjZ,KAAKzB,KAAKilZ,WAAWjlZ,KAAK4pD,SAAU,GACtF5pD,KAAKisV,cAAc,CAAEh/S,IAAKjtC,KAAKglZ,eAAe,IAAIvjZ,KAAKzB,KAAKilZ,WAAWjlZ,KAAKitC,SAAU,GACtFjtC,KAAK+zZ,KAAO,IAAIxuD,GAAK,kBAAmBvlW,KAAKq+8B,gBAAiBr+8B,KAAKD,QACnEC,KAAK+zZ,KAAKruD,UAAU1lW,KAAKD,QACzBC,KAAKisV,cAAc,CAAEtoR,YAAa3jE,KAAK2jE,aAAe3jE,KAAK+zZ,KAAKhuD,YAAY,iBAAkB,GAC9F/lW,KAAKy/8B,iBACLz/8B,KAAK6gZ,cACL7gZ,KAAK0zZ,+BACL1zZ,KAAK0/8B,oBACL1/8B,KAAK6+V,YACT,EACAqjE,EAAgBvxZ,UAAUwt8B,iBAAmB,SAAUjqjB,GACnD,IAAI5oZ,EAAa,CAAC,EAClB,GAAK4oZ,EAOD5oZ,EAAatL,KAAKs2Z,oBANlB,IAAK,IAAInqZ,EAAI,EAAGA,EAAInM,KAAKmV,QAAQ7J,WAAWlI,OAAQ+I,IAChDb,EAAWtL,KAAKmV,QAAQ7J,WAAWa,GAAGzH,MAClC1E,KAAKmV,QAAQmd,aAAatyB,KAAKmV,QAAQ7J,WAAWa,GAAGzH,MAMjE,IAAK,IAAI4K,EAAK,EAAGgmC,EAAK71C,OAAO8E,KAAK+G,GAAagE,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CACjE,IAAI8nd,EAAM9hb,EAAGhmC,GACe,IAAxB8nd,EAAIzsd,QAAQ,UACZ3K,KAAK2/8B,iBAAiB3q7B,aAAaoic,EAAK9rd,EAAW,GAAK8rd,IACxDp3d,KAAK4/8B,kBAAkB5q7B,aAAaoic,EAAK9rd,EAAW,GAAK8rd,IAEjE,CACJ,EACAl1D,EAAgBvxZ,UAAU+u8B,kBAAoB,WACtC1/8B,KAAKuzZ,UACAvzZ,KAAKu+Y,UACNv+Y,KAAKq3S,aAAatiR,gBAAgB,YAItCzpB,GAAWtL,KAAKq3S,aAAc,CAAE,SAAY,KAEhDr3S,KAAK6/8B,sBACT,EACA39iB,EAAgBvxZ,UAAUkv8B,qBAAuB,WACxC7/8B,KAAKuzZ,YAAavzZ,KAAKozZ,cAAiBpzZ,KAAKu+Y,SAQzCv+Y,KAAKozZ,cACVnrI,GAAY,CAACjoR,KAAKozZ,aAAatmZ,WAAY,CAACww8B,MARZ,KAA5Bt98B,KAAKq3S,aAAaz1S,MAClBqmR,GAAY,CAACjoR,KAAKozZ,aAAatmZ,WAAY,CAACww8B,MAG5C90rB,GAAS,CAACxoR,KAAKozZ,aAAatmZ,WAAY,CAACww8B,KAMrD,EACAp7iB,EAAgBvxZ,UAAUooZ,oBAAsB,SAAU5jZ,EAASmQ,GAC/D,IAAI5gB,EAAOyQ,EAAQmd,aAAa,QAAUnd,EAAQmd,aAAa,QAAUnd,EAAQmd,aAAa,MAC9FhN,EAAM0P,aAAa,OAAQtwB,GAC3ByQ,EAAQ4f,gBAAgB,QAExB,IADA,IAAIzpB,EAAa,CAAC,WAAY,gBAAiB,QACtCa,EAAI,EAAGA,EAAIb,EAAWlI,OAAQ+I,IACnC,IAAI4/T,GAAkB52T,EAAQmd,aAAahnB,EAAWa,KAAtD,CAGA,IAAIi/B,EAAOj2B,EAAQmd,aAAahnB,EAAWa,IAC3CmZ,EAAM0P,aAAa1pB,EAAWa,GAAIi/B,GAClCj2B,EAAQ4f,gBAAgBzpB,EAAWa,GAHnC,CAKR,EACA+1Z,EAAgBvxZ,UAAU+iZ,6BAA+B,WACrD,IAAK3nF,GAAkB/rU,KAAKs2Z,gBACxB,IAAK,IAAIhnZ,EAAK,EAAGgmC,EAAK71C,OAAO8E,KAAKvE,KAAKs2Z,gBAAiBhnZ,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CAC1E,IAAIhD,EAAMgpC,EAAGhmC,GACb,GAAI49d,IAAYvie,QAAQ2B,IAAQ,EAC5B,GAAY,UAARA,EAAiB,CACjB,IAAI2xb,EAAqBj+b,KAAKs2Z,eAAe,GAAKhqZ,GAAK+D,QAAQ,OAAQ,KAAMoiB,OACnD,KAAtBwra,GACAz1K,GAAS,CAACxoR,KAAKozZ,aAAatmZ,WAAYmxb,EAAkBtra,MAAM,KAExE,MACK,GAAY,UAARrmB,EAAiB,CACtB,IAAIwz8B,EAAiB9/8B,KAAKozZ,aAAatmZ,UAAUwlB,aAAahmB,GAC9Dwz8B,EAAkB/zoB,GAAkB+zoB,GAChC9/8B,KAAKs2Z,eAAe,GAAKhqZ,GAD0Bwz8B,EAAiB9/8B,KAAKs2Z,eAAe,GAAKhqZ,GAEjGtM,KAAKozZ,aAAatmZ,UAAUkoB,aAAa1oB,EAAKwz8B,EAClD,MAEI9/8B,KAAKozZ,aAAatmZ,UAAUkoB,aAAa1oB,EAAKtM,KAAKs2Z,eAAe,GAAKhqZ,GAGnF,CAER,EACA41Z,EAAgBvxZ,UAAU8lZ,6BAA+B,WACrD,IAAK1qF,GAAkB/rU,KAAKs2Z,gBACxB,IAAK,IAAIhnZ,EAAK,EAAGgmC,EAAK71C,OAAO8E,KAAKvE,KAAKs2Z,gBAAiBhnZ,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CAC1E,IAAIhD,EAAMgpC,EAAGhmC,GACT49d,IAAYvie,QAAQ2B,GAAO,GAC3BtM,KAAKq3S,aAAariR,aAAa1oB,EAAKtM,KAAKs2Z,eAAe,GAAKhqZ,GAErE,CAER,EACA41Z,EAAgBvxZ,UAAU4+V,eAAiB,SAAUwwmB,EAAaC,GACzDj0oB,GAAkBi0oB,KACnBA,EAAeA,EAAY3v8B,QAAQ,OAAQ,KAAMoiB,QAEhDs5S,GAAkBg0oB,KACnBA,EAAeA,EAAY1v8B,QAAQ,OAAQ,KAAMoiB,QAErDklG,GAAMinR,YAAYmhkB,EAAa,CAAC//8B,KAAKozZ,aAAatmZ,WAAYkz8B,GAC1Dhg9B,KAAKmlZ,cACLxtR,GAAMinR,YAAYmhkB,EAAa,CAAC//8B,KAAKmlZ,cAAe66jB,EAE5D,EACA99iB,EAAgBvxZ,UAAU8u8B,eAAiB,WACvCz/8B,KAAK298B,YAAc,GACnB,IAAIxx8B,EAAI,EACR,IAAKo/E,GAAYvrF,KAAKuijB,QAAQ,GAAGrsgB,OAASl2C,KAAKuijB,QAAQ,GAAGnpgB,KAAOp5C,KAAKuijB,QAAQ,GAAGn0Q,OAAQ,CACrF,IAAK,IAAI9+R,EAAK,EAAGgmC,EAAKt1C,KAAKuijB,QAASjziB,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CACtD,IAAIpM,EAAQoyC,EAAGhmC,GACX6mB,EAAKjzB,EAAMkrS,MAAM/9R,QAAQ,OAAQ,IAAM,OAASlE,EAC3B,kBAAdjJ,EAAMk2C,IACbp5C,KAAK298B,YAAYvx8B,KAAK,CAClB+pB,GAAIA,EAAI8J,KAAM/8B,EAAMkrS,MAAOh1P,IAAK,IAAI33C,KAAKzB,KAAKilZ,WAAW/hZ,EAAMk2C,MAAOlD,MAAO,IAAIz0C,KAAKzB,KAAKilZ,WAAW/hZ,EAAMgzC,UAIhHl2C,KAAK298B,YAAYvx8B,KAAK,CAAE+pB,GAAIA,EAAI8J,KAAM/8B,EAAMkrS,MAAOl4P,MAAOhzC,EAAMgzC,MAAOkD,IAAKl2C,EAAMk2C,KAE1F,CACA,IAAIw2W,EAAY7jF,GAAkB/rU,KAAK0qe,YAAc,KAAO,IAAIjpe,MAAMzB,KAAK0qe,YACvE76E,EAAU9jF,GAAkB/rU,KAAK+q8B,UAAY,KAAO,IAAItp8B,MAAMzB,KAAK+q8B,UACvE/q8B,KAAK298B,YAAYvx8B,KAAK,CAAE+pB,GAAI,eAAgB8J,KAAMjgC,KAAK+zZ,KAAKhuD,YAAY,eAAgB7vT,MAAO05W,EAAWx2W,IAAKy2W,IAC1G9jF,GAAkB/rU,KAAK0qe,aAAgB3+J,GAAkB/rU,KAAK+q8B,YAC/D/q8B,KAAKy98B,eAAgB,EACrBz98B,KAAKojT,YAAcpjT,KAAK298B,YAAYv68B,OAAS,EAErD,CACJ,EACA8+Z,EAAgBvxZ,UAAUkuV,WAAa,WACnChmH,GAAazlN,IAAIpzB,KAAKozZ,aAAahtQ,QAAQ,GAAI,YAAapmJ,KAAKig9B,iBAAkBjg9B,MACnF64O,GAAazlN,IAAIpzB,KAAKq3S,aAAc,QAASr3S,KAAKo1Z,kBAAmBp1Z,MACrE64O,GAAazlN,IAAIpzB,KAAKq3S,aAAc,OAAQr3S,KAAKq1Z,iBAAkBr1Z,MACnE64O,GAAazlN,IAAIpzB,KAAKq3S,aAAc,SAAUr3S,KAAKu1Z,mBAAoBv1Z,MACnEA,KAAK+gZ,iBAAmB/gZ,KAAKozZ,aAAaxT,aAC1C/mK,GAAazlN,IAAIpzB,KAAKozZ,aAAaxT,YAAa,YAAa5/Y,KAAKw1Z,aAAcx1Z,MAE/EA,KAAK2+8B,WACN3+8B,KAAKo+8B,gBAAkB303B,GAAOzpF,KAAKo+8B,gBAAiBp+8B,KAAK4kW,YACzD5kW,KAAKkg9B,oBAAsB,IAAI57mB,GAAetkW,KAAKq3S,aAAc,CAC7D9gR,UAAW,UACX2uU,UAAWllW,KAAKi1Z,aAAap1Z,KAAKG,MAClC4kW,WAAY5kW,KAAKo+8B,mBAGrBp+8B,KAAK+mC,aACL8xM,GAAazlN,IAAIpzB,KAAK+mC,YAAa,QAAS/mC,KAAKwwZ,iBAAkBxwZ,MAEnEA,KAAKk4R,QACLl4R,KAAKq3S,aAAariR,aAAa,WAAYh1B,KAAKiF,UAGhDjF,KAAKq3S,aAAapyS,UAAY,CAEtC,EACAi9Z,EAAgBvxZ,UAAUklZ,aAAe,WACrCh9K,GAAa1lN,OAAOnzB,KAAKozZ,aAAahtQ,QAAQ,GAAI,YAAapmJ,KAAKig9B,kBACpEpnuB,GAAa1lN,OAAOnzB,KAAKq3S,aAAc,OAAQr3S,KAAKq1Z,kBACpDx8K,GAAa1lN,OAAOnzB,KAAKq3S,aAAc,QAASr3S,KAAKo1Z,mBACrDv8K,GAAa1lN,OAAOnzB,KAAKq3S,aAAc,SAAUr3S,KAAKu1Z,oBAClDv1Z,KAAK+gZ,iBAAmB/gZ,KAAKozZ,aAAaxT,aAC1C/mK,GAAa1lN,OAAOnzB,KAAKozZ,aAAaxT,YAAa,uBAAwB5/Y,KAAKw1Z,cAE/Ex1Z,KAAK2+8B,UACD5yoB,GAAkB/rU,KAAKkg9B,sBACxBlg9B,KAAKkg9B,oBAAoB9o0B,UAG7Bp3I,KAAK+mC,aACL8xM,GAAa1lN,OAAOnzB,KAAK+mC,YAAa,QAAS/mC,KAAKwwZ,kBAExDxwZ,KAAKq3S,aAAapyS,UAAY,CAClC,EACAi9Z,EAAgBvxZ,UAAUwv8B,kBAAoB,WAC1C,GAAIng9B,KAAK2/8B,kBAAoB3/8B,KAAK4/8B,kBAAmB,CACjD,IAAIv67B,EAAS,CAAEzY,KAAM,WAAYqmU,SAAU,OACb,kBAAnBjzU,KAAK4vZ,YACZ5vZ,KAAK4vZ,UAAY5vZ,KAAKujZ,UAAU9lO,UAAUz9K,KAAK4vZ,UAAWvqY,IAElC,kBAAjBrlB,KAAK6vZ,UACZ7vZ,KAAK6vZ,QAAU7vZ,KAAKujZ,UAAU9lO,UAAUz9K,KAAK6vZ,QAASxqY,IAE1DrlB,KAAK2/8B,iBAAiB/98B,MAAS5B,KAAK4vZ,WAAa5vZ,KAAKujZ,UAAU9jE,WAAWz/U,KAAK4vZ,UAAWvqY,IACnFrlB,KAAKq3S,aAAaz1S,MAC1B5B,KAAK4/8B,kBAAkBh+8B,MAAS5B,KAAK6vZ,SAAW7vZ,KAAKujZ,UAAU9jE,WAAWz/U,KAAK6vZ,QAASxqY,IACnFrlB,KAAKq3S,aAAaz1S,MACvB5B,KAAKg7B,cAAch7B,KAAK2/8B,iBAAkB,YAC1C3/8B,KAAKg7B,cAAch7B,KAAK2/8B,iBAAkB,SAC9C,CACJ,EACAz9iB,EAAgBvxZ,UAAU4kZ,mBAAqB,SAAUl1Z,GAChDL,KAAKk4R,UAGV73R,EAAEiO,kBACFtO,KAAKmg9B,oBACT,EACAj+iB,EAAgBvxZ,UAAUolZ,eAAiB,WACnC/1Z,KAAK+gZ,iBAAmB/gZ,KAAKozZ,aAAaxT,aAC1C/mK,GAAazlN,IAAIpzB,KAAKozZ,aAAaxT,YAAa,YAAa5/Y,KAAKw1Z,aAAcx1Z,KAExF,EACAkia,EAAgBvxZ,UAAU6kZ,aAAe,SAAUn1Z,GAC/C,GAAKL,KAAKk4R,QAAV,CAGAl4R,KAAKi9f,UAAYj9f,KAAK4B,MACtBvB,EAAEgO,iBACFrO,KAAKq0D,QACL,IAAI2hW,EAAc,CACdj/X,MAAO12B,GAQX,GANAL,KAAKisV,cAAc,CAAE4jE,QAAS7vZ,KAAKglZ,eAAehlZ,KAAK+q8B,YAAa,GACpE/q8B,KAAKisV,cAAc,CAAE2jE,UAAW5vZ,KAAKglZ,eAAehlZ,KAAK0qe,cAAe,GACxE1qe,KAAKsgS,QAAQ,UAAW01H,GACxBh2Z,KAAK82Z,cAAcz2Z,GACnBL,KAAKog9B,aACLpg9B,KAAKu9R,KAAKl9R,GACNo1F,GAAQz1F,KAAKmV,QAAS,QAAS,CAC/B,IAAIA,EAAUnV,KAAK2/8B,iBACfzpjB,EAAahlY,SAAS8F,YAAY,iBACtCk/X,EAAWr/X,UAAU,SAAS,GAAO,GACrC1hB,EAAQ6lB,cAAck7X,EAC1B,CAlBA,CAmBJ,EACAgM,EAAgBvxZ,UAAUmlZ,aAAe,WACrC91Z,KAAK498B,iBAAmB598B,KAAKq3S,aAAaz1S,MAC1C5B,KAAKqg9B,mBAAqBrg9B,KAAK0qe,WAC/B1qe,KAAKsg9B,iBAAmBtg9B,KAAK+q8B,SAC7B/q8B,KAAKi9f,UAAY,KACjBj9f,KAAKu/8B,cAAgBv/8B,KAAKglZ,eAAehlZ,KAAK0qe,YAC9C1qe,KAAKw/8B,YAAcx/8B,KAAKglZ,eAAehlZ,KAAK+q8B,UAC5C/q8B,KAAK0gJ,WACL1gJ,KAAKk+8B,eACT,EACAh8iB,EAAgBvxZ,UAAU6/Y,iBAAmB,SAAUnwZ,GACnD,GAAKL,KAAKk4R,SAGNl4R,KAAK+mC,aAAgB1mC,EAAEgI,SAAWrI,KAAK+mC,cAAiB/mC,KAAKq3S,aAAazoS,SAAU,CACpF,IAAImgB,EAAM/uB,KAAKq3S,aAAa/kR,aAAa,SACpCy5S,GAAkB/rU,KAAKug9B,YAcxBvg9B,KAAKisV,cAAc,CAAErqV,MAAO,KAAMguZ,UAAW,KAAMC,QAAS,OAAQ,GACpE7vZ,KAAK0qe,WAAa1qe,KAAK+q8B,SAAW,OAd7Bh/nB,GAAkB/rU,KAAK4B,QAAWmqU,GAAkB/rU,KAAK4B,MAAMs0C,QAMhEl2C,KAAKisV,cAAc,CAAErqV,MAAO,CAAC5B,KAAKug9B,UAAWvg9B,KAAKwg9B,WAAY,GAC9Dxg9B,KAAK0qe,WAAa1qe,KAAK4B,MAAM,GAC7B5B,KAAK+q8B,SAAW/q8B,KAAK4B,MAAM,KAP3B5B,KAAKisV,cAAc,CAAErqV,MAAO,CAAEs0C,MAAOl2C,KAAKug9B,UAAWnn6B,IAAKp5C,KAAKwg9B,WAAa,GAC5Exg9B,KAAK0qe,WAAa1qe,KAAK4B,MAAMs0C,MAC7Bl2C,KAAK+q8B,SAAW/q8B,KAAK4B,MAAMw3C,KAO/Bp5C,KAAKisV,cAAc,CAAE2jE,UAAW5vZ,KAAK0qe,WAAY76E,QAAS7vZ,KAAK+q8B,WAAY,IAMlD,wBAAzB/q8B,KAAKmV,QAAQizB,UACbpoC,KAAKisV,cAAc,CAAErqV,MAAO,KAAMguZ,UAAW,KAAMC,QAAS,OAAQ,GACpE9gY,EAAM,GACN/uB,KAAK0qe,WAAa1qe,KAAK+q8B,SAAW,KAClC/q8B,KAAKq3S,aAAariR,aAAa,QAAS,KAE5Ch1B,KAAK81Z,eACD91Z,KAAKq3S,eACL1/K,GAAM+oB,SAAS3xH,EAAK/uB,KAAKq3S,aAAcr3S,KAAKs9Y,eAAgBt9Y,KAAK+gZ,iBACjE/gZ,KAAK00Z,aAEb,CACJ,EACAwN,EAAgBvxZ,UAAU0jD,MAAQ,WACN,OAApBr0D,KAAK0qe,aACL1qe,KAAK0qe,WAAa,MAEA,OAAlB1qe,KAAK+q8B,WACL/q8B,KAAK+q8B,SAAW,MAEhB/q8B,KAAK4B,OAAS5B,KAAK4B,MAAMs0C,OACzBl2C,KAAKisV,cAAc,CAAErqV,MAAO,CAAEs0C,MAAO,KAAMkD,IAAK,QAAU,GAE3C,OAAfp5C,KAAK4B,OAAkB5B,KAAK4B,MAAMwB,OAAS,GAC3CpD,KAAKisV,cAAc,CAAErqV,MAAO,OAAQ,GAExC+1H,GAAM+oB,SAAS,GAAI1gJ,KAAKq3S,aAAcr3S,KAAKs9Y,eAAgBt9Y,KAAK+gZ,iBAC1Dh1E,GAAkB/rU,KAAKyg9B,eACzBzg9B,KAAKyg9B,YAAY7x8B,SAAW5O,KAAKyg9B,YAAYtr8B,QAAQvG,UAAW,GAEpE5O,KAAKs9b,iBACT,EACAp7B,EAAgBvxZ,UAAUsv8B,iBAAmB,SAAU5/8B,GAC9CL,KAAKk4R,UAGNl4R,KAAK2+8B,UACL3+8B,KAAKq3S,aAAariR,aAAa,WAAY,IAE/C30B,EAAEgO,iBACFrO,KAAKgpS,cAAgB,KACjBhpS,KAAKq7b,eAAiBnqa,SAASzd,KAAKyf,SAASlzB,KAAK41Z,SAASzgZ,SAC3DnV,KAAK0g9B,cAAcrg9B,IAGnBL,KAAK+98B,oBAAqB,EAC1B/98B,KAAKozZ,aAAatmZ,UAAUhH,SAAS,GAAGsE,QACxCpK,KAAKqmT,KAAK,KAAMhmT,GACXL,KAAK2+8B,UACD5yoB,GAAkB/rU,KAAK2g9B,gBACxB3g9B,KAAK+98B,oBAAqB,EAC1B/98B,KAAK4g9B,gBACL5g9B,KAAK+98B,oBAAqB,GAGlCv1rB,GAAS,CAACxoR,KAAKozZ,aAAatmZ,WAAY,CAACylZ,OAEjD,EACA2P,EAAgBvxZ,UAAUqoZ,oBAAsB,SAAU9E,GACtDl0Z,KAAKujZ,UAAY,IAAItkE,GAAqBj/U,KAAKD,QAK/C,IAJA,IAAIuL,EAAa4oZ,EAAYnoF,GAAkB/rU,KAAKs2Z,gBAAkB,GAAK72Z,OAAO8E,KAAKvE,KAAKs2Z,gBACxF,CAAC,YAAa,UAAW,UAAW,UAAW,MAAO,MAAO,WAAY,WAAY,QAAS,OAAQ,cAClG,OAAQ,SACZjxY,EAAS,CAAEA,OAAQrlB,KAAKy0Z,aAAc7nZ,KAAM,OAAQqmU,SAAU,OACzD3jU,EAAK,EAAGiqZ,EAAejuZ,EAAYgE,EAAKiqZ,EAAan2Z,OAAQkM,IAAM,CACxE,IAAI3K,EAAO40Z,EAAajqZ,GACxB,IAAKy8T,GAAkB/rU,KAAKq3S,aAAa/kR,aAAa3tB,IAClD,OAAQA,GACJ,IAAK,WACD,GAAKonU,GAAkB/rU,KAAKi+8B,wBAA2D568B,IAArCrD,KAAKi+8B,iBAA0B,SAAqB/pjB,EAAW,CAC7G,IAAItlZ,EAAoD,aAAzC5O,KAAKq3S,aAAa/kR,aAAa3tB,IACD,KAAzC3E,KAAKq3S,aAAa/kR,aAAa3tB,IAAyD,SAAzC3E,KAAKq3S,aAAa/kR,aAAa3tB,GAClF3E,KAAKisV,cAAc,CAAE/zD,SAAUtpR,IAAaslZ,EAChD,CACA,MACJ,IAAK,WACD,GAAKnoF,GAAkB/rU,KAAKi+8B,wBAA4D568B,IAAtCrD,KAAKi+8B,iBAA2B,UAAqB/pjB,EAAW,CAC9G,IAAI3V,EAAoD,aAAzCv+Y,KAAKq3S,aAAa/kR,aAAa3tB,IACD,SAAzC3E,KAAKq3S,aAAa/kR,aAAa3tB,IAA6D,KAAzC3E,KAAKq3S,aAAa/kR,aAAa3tB,GACtF3E,KAAKisV,cAAc,CAAEsyD,SAAUA,IAAa2V,EAChD,CACA,MACJ,IAAK,eACInoF,GAAkB/rU,KAAKi+8B,wBAA+D568B,IAAzCrD,KAAKi+8B,iBAA8B,aAAqB/pjB,IACtGl0Z,KAAKisV,cAAc,CAAEtoR,YAAa3jE,KAAKq3S,aAAa/kR,aAAa3tB,KAAUuvZ,GAE/E,MACJ,IAAK,QACD,GAAKnoF,GAAkB/rU,KAAKi+8B,wBAAyD568B,IAAnCrD,KAAKi+8B,iBAAwB,OAAqB/pjB,EAAW,CAC3G,IAAItyZ,EAAQ5B,KAAKq3S,aAAa/kR,aAAa3tB,GAC3C3E,KAAKisV,cAAcvrM,GAAS/7I,EAAM/C,EAAO,CAAC,IAAKsyZ,EACnD,CACA,MACJ,IAAK,QACDl0Z,KAAKq3S,aAAariR,aAAa,QAAS,GAAKh1B,KAAKq3S,aAAa/kR,aAAa3tB,IAC5E,MACJ,IAAK,MACD,GAAKonU,GAAkB/rU,KAAK4pD,OAAS5pD,KAAK4pD,OAAS,IAAInoD,KAAK,KAAM,EAAG,IAAOyyZ,EAAW,CACnF,IAAIK,EAAYv0Z,KAAKujZ,UAAU9lO,UAAUz9K,KAAKq3S,aAAa/kR,aAAa3tB,GAAO0gB,GAC/ErlB,KAAKisV,cAAcvrM,GAAS/7I,EAAM4vZ,EAAW,CAAC,IAAKL,EACvD,CACA,MACJ,IAAK,OACDl0Z,KAAKq3S,aAAariR,aAAa,OAAQ,GAAKh1B,KAAKq3S,aAAa/kR,aAAa3tB,IAC3E,MACJ,IAAK,MACD,GAAKonU,GAAkB/rU,KAAKitC,OAASjtC,KAAKitC,OAAS,IAAIxrC,KAAK,KAAM,GAAI,KAAQyyZ,EAAW,CACjFK,EAAYv0Z,KAAKujZ,UAAU9lO,UAAUz9K,KAAKq3S,aAAa/kR,aAAa3tB,GAAO0gB,GAC/ErlB,KAAKisV,cAAcvrM,GAAS/7I,EAAM4vZ,EAAW,CAAC,IAAKL,EACvD,CACA,MACJ,IAAK,YACD,GAAInoF,GAAkB/rU,KAAK4vZ,WAAY,CAC/B2E,EAAYv0Z,KAAKujZ,UAAU9lO,UAAUz9K,KAAKq3S,aAAa/kR,aAAa3tB,GAAO0gB,GAC/ErlB,KAAK0qe,WAAan2E,EAClBv0Z,KAAK0gJ,UACT,CACA,MACJ,IAAK,UACD,GAAIqrL,GAAkB/rU,KAAK6vZ,SAAU,CAC7B0E,EAAYv0Z,KAAKujZ,UAAU9lO,UAAUz9K,KAAKq3S,aAAa/kR,aAAa3tB,GAAO0gB,GAC/ErlB,KAAK+q8B,SAAWx2iB,EAChBv0Z,KAAK0gJ,UACT,CACA,MACJ,IAAK,UACGqrL,GAAkB/rU,KAAK6g9B,UACvB7g9B,KAAKisV,cAAcvrM,GAAS/7I,EAAM4nB,SAASvsB,KAAKq3S,aAAa/kR,aAAa3tB,GAAO,IAAK,CAAC,IAAI,GAE/F,MACJ,IAAK,UACGonU,GAAkB/rU,KAAK8g9B,UACvB9g9B,KAAKisV,cAAcvrM,GAAS/7I,EAAM4nB,SAASvsB,KAAKq3S,aAAa/kR,aAAa3tB,GAAO,IAAK,CAAC,IAAI,GAE/F,MACJ,IAAK,OAC4C,SAAzC3E,KAAKq3S,aAAa/kR,aAAa3tB,IAC/B3E,KAAKq3S,aAAariR,aAAa,OAAQ,QAK3D,CACJ,EACAktY,EAAgBvxZ,UAAUu1b,YAAc,WACpC,IAAK,IAAI/5b,EAAI,EAAGA,EAAInM,KAAK298B,YAAYv68B,OAAQ+I,IACpCA,IAAOnM,KAAK298B,YAAYv68B,OAAS,GAAkC,iBAA3BpD,KAAK298B,YAAYxx8B,GAAGgqB,IAC7Dn2B,KAAK298B,YAAYno7B,OAAOrpB,EAAG,GAGnCnM,KAAKojT,YAAcpjT,KAAK298B,YAAYv68B,OAAS,EAC7CpD,KAAKy98B,eAAgB,EACrB,IAAStx8B,EAAI,EAAGA,GAAKnM,KAAK298B,YAAYv68B,OAAS,EAAG+I,IAAK,CACnD,IAAIyjZ,EAAY5vZ,KAAK298B,YAAYxx8B,GAAG+pC,MAChC25W,EAAU7vZ,KAAK298B,YAAYxx8B,GAAGitC,IAC9Bp5C,KAAK0qe,YAAc1qe,KAAK+q8B,WAClB,IAAItp8B,KAAKmuZ,EAAUntZ,SAAS,EAAG,EAAG,EAAG,OAAS,IAAIhB,KAAKzB,KAAK0qe,WAAWjoe,SAAS,EAAG,EAAG,EAAG,MACzF,IAAIhB,KAAKouZ,EAAQptZ,SAAS,EAAG,EAAG,EAAG,OAAS,IAAIhB,KAAKzB,KAAK+q8B,SAASto8B,SAAS,EAAG,EAAG,EAAG,MACvFzC,KAAKojT,YAAcj3S,EACnBnM,KAAKy98B,eAAgB,EAGjC,CACAz98B,KAAKmlZ,aAAerkZ,GAAc,MAAO,CAAEq1B,GAAIn2B,KAAKmV,QAAQghB,GAAK,SAAUp1B,UAAWihZ,IAAO,IAAMwqT,MACnGxssB,KAAK+g9B,wBACL,IAAIC,GAAahh9B,KAAKy98B,eAAiBz98B,KAAK2+8B,UACvCpz3B,GAAYvrF,KAAKuijB,QAAQ,GAAGrsgB,OAASl2C,KAAKuijB,QAAQ,GAAGnpgB,KAAOp5C,KAAKuijB,QAAQ,GAAGn0Q,QAAU4yqB,GACvFhh9B,KAAK098B,gBAAiB,EACtB198B,KAAKih9B,gBACLjh9B,KAAKkh9B,mBACLlh9B,KAAKykc,gBAGLzkc,KAAK098B,gBAAiB,EACtB198B,KAAK88hB,gBAEb,EACA56H,EAAgBvxZ,UAAUmshB,cAAgB,WACtC98hB,KAAKmh9B,gBACLnh9B,KAAKoh9B,qBACLph9B,KAAKqh9B,YAAarh9B,KAAK2+8B,SAAW,CAAC3+8B,KAAK0jZ,iBAAmB,CAAC1jZ,KAAK2g9B,aAAc3g9B,KAAKsh9B,gBAC/Ev1oB,GAAkB/rU,KAAK+q8B,WAAch/nB,GAAkB/rU,KAAK0qe,aAC5D3+J,GAAkB/rU,KAAKgoZ,qBAAsBhoZ,KAAKgoZ,kBAAkB18O,YACrEtrK,KAAKuh9B,qBAETvh9B,KAAKwh9B,cACT,EACAt/iB,EAAgBvxZ,UAAU8w8B,oBAAsB,WACxCzh9B,KAAK0h9B,iBAAmB1h9B,KAAK2h9B,iBAAmB3h9B,KAAK4h9B,kBAAoB5h9B,KAAK6h9B,mBAC9EhpuB,GAAaswG,YAAYnpV,KAAK0h9B,iBAC9B7ouB,GAAaswG,YAAYnpV,KAAK2h9B,iBAC9B9ouB,GAAaswG,YAAYnpV,KAAK4h9B,kBAC9B/ouB,GAAaswG,YAAYnpV,KAAK6h9B,kBAEtC,EACA3/iB,EAAgBvxZ,UAAUmx8B,eAAiB,WACvCh75B,EAAOn2C,UAAUo8Y,YAAYptZ,KAAKK,KACtC,EACAkia,EAAgBvxZ,UAAUox8B,kBAAoB,WAC1C/h9B,KAAKyh9B,sBACDzh9B,KAAK0h9B,kBAAoB1h9B,KAAK0h9B,gBAAgBx5rB,UAAUh1P,SAASskO,MACjE3e,GAAazlN,IAAIpzB,KAAK0h9B,gBAAiB,YAAa1h9B,KAAKi/8B,iBAEzDj/8B,KAAK2h9B,kBAAoB3h9B,KAAK2h9B,gBAAgBz5rB,UAAUh1P,SAASskO,MACjE3e,GAAazlN,IAAIpzB,KAAK2h9B,gBAAiB,YAAa3h9B,KAAK++8B,iBAEzD/+8B,KAAK4h9B,mBAAqB5h9B,KAAK4h9B,iBAAiB15rB,UAAUh1P,SAASskO,MACnE3e,GAAazlN,IAAIpzB,KAAK4h9B,iBAAkB,YAAa5h9B,KAAKi/8B,iBAE1Dj/8B,KAAK6h9B,mBAAqB7h9B,KAAK6h9B,iBAAiB35rB,UAAUh1P,SAASskO,MACnE3e,GAAazlN,IAAIpzB,KAAK6h9B,iBAAkB,YAAa7h9B,KAAK++8B,gBAElE,EACA78iB,EAAgBvxZ,UAAUyw8B,mBAAqB,WACtCph9B,KAAK2+8B,UAmBN3+8B,KAAKgi9B,sBACLnpuB,GAAazlN,IAAIpzB,KAAKii9B,YAAY9s8B,QAAS,QAASnV,KAAKki9B,kBAAmBli9B,MAC5E64O,GAAazlN,IAAIpzB,KAAKmi9B,UAAUht8B,QAAS,QAASnV,KAAKki9B,kBAAmBli9B,QApB1EA,KAAK8h9B,iBACL9h9B,KAAK+h9B,oBACL/h9B,KAAKoi9B,qBACLpi9B,KAAK2lZ,mBAAqB3lZ,KAAK41Z,SAASzgZ,QAAQykB,cAAc,IAAMsi7B,IAAgB,KAAOtoQ,IAAS,KAAOgpQ,KAC3G588B,KAAK2lZ,mBAAqB3lZ,KAAK41Z,SAASzgZ,QAAQykB,cAAc,IAAMqi7B,IAAe,KAAOroQ,IAAS,KAAOgpQ,KAC1G588B,KAAK8jZ,kBAAoBr6T,GAAOzpF,KAAK8jZ,kBAAmB9jZ,KAAK4kW,YAC7D5kW,KAAKqi9B,mBAAqB,IAAI/9mB,GAAetkW,KAAK2g9B,aAAc,CAC5Dpq7B,UAAW,UACX2uU,UAAWllW,KAAKsi9B,gBAAgBzi9B,KAAKG,MACrC4kW,WAAY5kW,KAAK8jZ,oBAErB9jZ,KAAKui9B,oBAAsB,IAAIj+mB,GAAetkW,KAAKsh9B,cAAe,CAC9D/q7B,UAAW,UACX2uU,UAAWllW,KAAKsi9B,gBAAgBzi9B,KAAKG,MACrC4kW,WAAY5kW,KAAK8jZ,qBAQrB9jZ,KAAKk2C,QAAUl2C,KAAKssE,OACpBtsE,KAAKwi9B,yBAETxi9B,KAAKyi9B,mBACT,EACAvgjB,EAAgBvxZ,UAAUyx8B,mBAAqB,WAC3CvwnB,GAAa7xV,KAAK0h9B,gBAAiB,CAAEnx8B,SAAU,UAAW0jG,SAAU,IAAKg+O,gBAAgB,IACzFJ,GAAa7xV,KAAK2h9B,gBAAiB,CAAEpx8B,SAAU,UAAW0jG,SAAU,IAAKg+O,gBAAgB,IACzFJ,GAAa7xV,KAAK4h9B,iBAAkB,CAAErx8B,SAAU,UAAW0jG,SAAU,IAAKg+O,gBAAgB,IAC1FJ,GAAa7xV,KAAK6h9B,iBAAkB,CAAEtx8B,SAAU,UAAW0jG,SAAU,IAAKg+O,gBAAgB,GAC9F,EACAiwE,EAAgBvxZ,UAAUqx8B,oBAAsB,WAC5CnpuB,GAAaswG,YAAYnpV,KAAK0lZ,UAC9B7sK,GAAaswG,YAAYnpV,KAAKylZ,cAC9B5zD,GAAa7xV,KAAK0lZ,SAAU,CAAEn1Y,SAAU,UAAW0jG,SAAU,IAAKg+O,gBAAgB,IAClFJ,GAAa7xV,KAAKylZ,aAAc,CAAEl1Y,SAAU,UAAW0jG,SAAU,IAAKg+O,gBAAgB,IAClFjyV,KAAK0lZ,WAAa1lZ,KAAK0lZ,SAASx9H,UAAUh1P,SAASskO,MACnD3e,GAAazlN,IAAIpzB,KAAK0lZ,SAAU,YAAa1lZ,KAAKm/8B,uBAElDn/8B,KAAKylZ,eAAiBzlZ,KAAKylZ,aAAav9H,UAAUh1P,SAASskO,MAC3D3e,GAAazlN,IAAIpzB,KAAKylZ,aAAc,YAAazlZ,KAAKq/8B,sBAE9D,EACAn9iB,EAAgBvxZ,UAAUyu8B,cAAgB,SAAU/+8B,GAChD,IAAIs7F,EAAWlG,GAAQp1F,EAAEgI,OAAQ,IAAMo08B,KACvCz88B,KAAK0i9B,qBAAqB/m3B,GAC1B37F,KAAKgpZ,aAAa3oZ,GAClBL,KAAK2i9B,kBACT,EACAzgjB,EAAgBvxZ,UAAU2u8B,kBAAoB,SAAUj/8B,GACpD,IAAIs7F,EAAWlG,GAAQp1F,EAAEgI,OAAQ,IAAMo08B,KACvCz88B,KAAK0i9B,qBAAqB/m3B,GAC1B37F,KAAK8oZ,iBAAiBzoZ,GACtBL,KAAK2i9B,kBACT,EACAzgjB,EAAgBvxZ,UAAU+x8B,qBAAuB,SAAU/m3B,GACnDA,IACA37F,KAAKylZ,aAAe9pT,EAAS/hE,cAAc,IAAM+i7B,KACjD388B,KAAK0lZ,SAAW/pT,EAAS/hE,cAAc,IAAM8i7B,KAC7C188B,KAAK0jZ,gBAAkB/nT,EACvB37F,KAAK4i9B,eAAiBjn3B,EACtB37F,KAAK6lZ,eAAiBlqT,EAAS/hE,cAAc,IAAMmvgB,KACnD/oiB,KAAK+nZ,iBAAmBv9D,GAAO,IAAMu+M,IAAU,SAAUptc,GACzD37F,KAAK0nC,MAAQi0D,EAAS/hE,cAAc,IAAMmvgB,KAASpzgB,qBAAqB,SAAS,GACjF31B,KAAK2lZ,mBAAqBhqT,EAAS/hE,cAAc,IAAMg6qB,IAAS,KAAOgpQ,KACvE588B,KAAKulZ,cAAgB5pT,EAAS/hE,cAAc,IAAMg6qB,KAE1D,EACA1xS,EAAgBvxZ,UAAUux8B,kBAAoB,SAAUnr7B,GAEpD,GADcA,EAAMoE,cACR+sP,UAAUh1P,SAASmp7B,OAAiBtwoB,GAAkB/rU,KAAK0qe,YAAa,CAChF1qe,KAAKmi9B,UAAUht8B,QAAQ+yQ,UAAU/0P,OAAOi/O,KACxCpyQ,KAAKii9B,YAAY9s8B,QAAQ+yQ,UAAU90P,IAAIg/O,KACvC,IAAIz2K,EAAW37F,KAAK41Z,SAASzgZ,QAAQykB,cAAc,IAAM6i7B,KACzDz88B,KAAK0i9B,qBAAqB/m3B,GACtBowO,GAAkB/rU,KAAK0jZ,gBAAgB9pX,cAAc,IAAMui7B,IAAY,2BACvEn88B,KAAKqxG,YAAc,IAAI5vG,MAAMzB,KAAK0qe,YAClCv3c,GAAOnzB,KAAK+nZ,kBACZ/nZ,KAAK+lZ,oBACL/lZ,KAAK2i9B,oBAET3i9B,KAAK6i9B,qBACT,MACK,IAAK92oB,GAAkB/rU,KAAK0qe,cAAgB3+J,GAAkB/rU,KAAK+q8B,UAAW,CAC/E/q8B,KAAKii9B,YAAY9s8B,QAAQ+yQ,UAAU/0P,OAAOi/O,KAC1CpyQ,KAAKmi9B,UAAUht8B,QAAQ+yQ,UAAU90P,IAAIg/O,KACjCz2K,EAAW37F,KAAK41Z,SAASzgZ,QAAQykB,cAAc,IAAM6i7B,KACzDz88B,KAAK0i9B,qBAAqB/m3B,GACtBowO,GAAkB/rU,KAAK0jZ,gBAAgB9pX,cAAc,IAAMwi7B,IAAU,2BACrEp88B,KAAKqxG,YAAc,IAAI5vG,MAAMzB,KAAK+q8B,UAClC536B,GAAOnzB,KAAK+nZ,kBACZ/nZ,KAAK+lZ,oBACL/lZ,KAAK2i9B,oBAET3i9B,KAAK8i9B,iBAAiB9i9B,KAAK41Z,SAASzgZ,QAAQykB,cAAc,IAAM6i7B,MAChEz88B,KAAK+i9B,iBACT,CACJ,EACA7gjB,EAAgBvxZ,UAAUykZ,kBAAoB,WAC1C,GAAKp1Z,KAAKk4R,QAAV,CAGAl4R,KAAK6qd,aAAc,EACnB,IAAIl0D,EAAiB,CACjBzhT,MAAOl1G,MAENA,KAAK47b,cACN57b,KAAKsgS,QAAQ,QAASq2H,GAE1B32Z,KAAK6/8B,uBACL7/8B,KAAKmg9B,oBACDng9B,KAAK42Z,cAAgB52Z,KAAK47b,cAC1B57b,KAAK47b,cAAe,EACpB57b,KAAKqmT,QAGLrmT,KAAK47b,cAAe,CAfxB,CAiBJ,EACA15B,EAAgBvxZ,UAAU0kZ,iBAAmB,SAAUh1Z,GACnD,GAAKL,KAAKk4R,QAAV,CAGA,IAAKl4R,KAAK6qd,YAAa,CACnB,IAAIjpd,EAAQ5B,KAAKq3S,aAAaz1S,MAO9B,GANKmqU,GAAkB/rU,KAAK298B,cACpB398B,KAAK298B,YAAYv68B,OAAS,GAAKpD,KAAK498B,mBAAqB598B,KAAKq3S,aAAaz1S,QAC3E5B,KAAKojT,YAAcpjT,KAAK298B,YAAYv68B,OAAS,EAC7CpD,KAAKy98B,eAAgB,IAGxB1xoB,GAAkBnqU,IAA2B,KAAjBA,EAAM6wB,OAAe,CAClD,IAAIvvB,EAAQtB,EAAM+wB,MAAM,IAAM3yB,KAAKmoF,UAAY,KAC/C,GAAIjlF,EAAME,OAAS,EAAG,CAClBpD,KAAK4yZ,mBAAqB,KAC1B,IAAI0E,EAAc,CAAEjyY,OAAQrlB,KAAKy0Z,aAAc7nZ,KAAM,OAAQqmU,SAAU,OACnE/8R,EAAQ,IAAIz0C,KAAKyB,EAAM,IACvBk2C,EAAM,IAAI33C,KAAKyB,EAAM,IACrB0sZ,EAAY5vZ,KAAKgj9B,gBAAgB9s6B,GAAO,EAAOhzC,EAAOo0Z,GACtDzH,EAAU7vZ,KAAKgj9B,gBAAgB5p6B,GAAK,EAAMl2C,EAAOo0Z,GACrD,KAAKvrF,GAAkB6jF,IAAe/tZ,OAAO+tZ,IAAe7jF,GAAkB8jF,IAAahuZ,OAAOguZ,IAAU,CACxG,IAAIozjB,EAAejj9B,KAAK0qe,WACxB1qe,KAAK0qe,WAAa96E,EAClB,IAAIszjB,EAAalj9B,KAAK+q8B,SAOtB,GANA/q8B,KAAK+q8B,SAAWl7iB,EAChB7vZ,KAAK0gJ,WACL1gJ,KAAKmj9B,iBACDvh9B,IAAU5B,KAAK498B,kBACf598B,KAAK82Z,cAAcz2Z,IAElBL,KAAK6qd,aAAe35b,SAAS0vH,gBAAkB5gJ,KAAKq3S,aAAc,CACnEr3S,KAAK47b,cAAe,EACpB,IAAI7kC,EAAgB,CAChB7hT,MAAOl1G,MAEXA,KAAKsgS,QAAQ,OAAQy2H,EACzB,CAQA,OAPA/2Z,KAAKmg9B,yBAGDng9B,KAAK2+8B,UAAY3+8B,KAAKq7b,gBACtBr7b,KAAK0qe,WAAau4e,EAClBjj9B,KAAK+q8B,SAAWmY,GAGxB,CAESlj9B,KAAKq0Z,aACNr0Z,KAAK0qe,WAAa,KAClB1qe,KAAK+q8B,SAAW,KAChB/q8B,KAAK0gJ,WAGjB,MAES1gJ,KAAKq0Z,aACNr0Z,KAAK0qe,WAAa,KAClB1qe,KAAK+q8B,SAAW,KAChB/q8B,KAAK0gJ,WAGjB,CAoBA,GAnBK1gJ,KAAKq0Z,YAUDtoF,GAAkBnqU,IAA2B,KAAjBA,EAAM6wB,SACnCzyB,KAAK0qe,WAAa,KAClB1qe,KAAK+q8B,SAAW,MAEpBpz0B,GAAM+oB,SAAS,GAAI1gJ,KAAKq3S,aAAcr3S,KAAKs9Y,eAAgBt9Y,KAAK+gZ,iBAChE/gZ,KAAKqzZ,gBAdDtnF,GAAkB/rU,KAAK41Z,YACvB51Z,KAAKqxG,YAAc,MAEvBrxG,KAAKqg9B,mBAAqBrg9B,KAAKsg9B,iBAAmB,KAClDtg9B,KAAK0qe,WAAa,KAClB1qe,KAAK+q8B,SAAW,KAChB/q8B,KAAK0gJ,YAUT1gJ,KAAK00Z,aACL10Z,KAAK82Z,cAAcz2Z,IACdL,KAAK6qd,aAAe35b,SAAS0vH,gBAAkB5gJ,KAAKq3S,aAAc,CACnEr3S,KAAK47b,cAAe,EAChB7kC,EAAgB,CAChB7hT,MAAOl1G,MAEXA,KAAKsgS,QAAQ,OAAQy2H,EACzB,CACJ,CACA/2Z,KAAKmg9B,mBAvFL,CAwFJ,EAEAj+iB,EAAgBvxZ,UAAUqy8B,gBAAkB,SAAU9i9B,EAAMw8C,EAAOx5C,EAAOo0Z,GACtE,MAAmB,UAAft3Z,KAAKssE,MACEtsE,KAAKujZ,UAAU9lO,UAAUv6K,EAAMw5C,EAAQ,EAAI,GAAGjqB,OAAQ6kY,GAEzC,SAAft3Z,KAAKssE,MACH,IAAI7qE,KAAKvB,EAAKE,cAAeF,EAAKC,YAAcu8C,EAAQ,EAAI,GAAIA,EAAQ,EAAI,GAG5E,IAAIj7C,KAAKvB,EAAKE,cAAes8C,EAAQ,GAAK,EAAGA,EAAQ,GAAK,EAEzE,EACAwlX,EAAgBvxZ,UAAUyv8B,WAAa,WACnCpg9B,KAAKqg9B,mBAAqBrg9B,KAAKsg9B,iBAAmB,KAClDtg9B,KAAKqxG,YAAc,IACvB,EACA6wT,EAAgBvxZ,UAAU+jZ,WAAa,WACnC,IAAI0ujB,EAAWpj9B,KAAKq3S,aAAaz1S,MAAM6wB,QACjCs5S,GAAkB/rU,KAAK+q8B,WAAah/nB,GAAkB/rU,KAAK0qe,aAA4B,KAAb04e,IACzEr3oB,GAAkB/rU,KAAK0qe,cAAgB1qe,KAAK0qe,YAAc1qe,KAAK4pD,MACxDmiR,GAAkB/rU,KAAK0qe,cAAgB3+J,GAAkB/rU,KAAK+q8B,YAAe/q8B,KAAK0qe,YAAc1qe,KAAK+q8B,WACtGh/nB,GAAkB/rU,KAAK+q8B,YAAc/q8B,KAAK+q8B,UAAY/q8B,KAAKitC,KAC/DjtC,KAAK0qe,YAAc1qe,KAAKqj9B,eAAerj9B,KAAK0qe,aACzC1qe,KAAK+q8B,UAAY/q8B,KAAKqj9B,eAAerj9B,KAAK+q8B,YAA6B,KAAbqY,GAClE56rB,GAAS,CAACxoR,KAAKozZ,aAAatmZ,WAAYy+N,KACxCjgO,GAAWtL,KAAKq3S,aAAc,CAAE,eAAgB,UAG5Cr3S,KAAKozZ,eACLnrI,GAAY,CAACjoR,KAAKozZ,aAAatmZ,WAAYy+N,KAC3CjgO,GAAWtL,KAAKq3S,aAAc,CAAE,eAAgB,UAG5D,EACA6qH,EAAgBvxZ,UAAU2y8B,kBAAoB,SAAUC,EAAgB55nB,EAAK65nB,GAezE,YAdsB,IAAlBA,IAA4BA,GAAgB,GAC5CA,GACAxj9B,KAAKyi9B,oBAELc,GACAvj9B,KAAKyj9B,mBAAqB,IAAIhi9B,MAAMzB,KAAKqxG,aACzCs4O,EAAM3pV,KAAK2g9B,eAGX3g9B,KAAK0j9B,oBAAsB,IAAIji9B,MAAMzB,KAAKqxG,aAC1Cs4O,EAAM3pV,KAAKsh9B,eAEfth9B,KAAK2j9B,sBAAsBh6nB,GAC3B3pV,KAAK0nC,MAAMt9B,QACJu/U,CACX,EACAu4E,EAAgBvxZ,UAAUiz8B,cAAgB,SAAUvj9B,EAAGkj9B,EAAgBM,EAAWC,EAAYn6nB,GAC1F,IACIzpV,EAEA+sC,EAHAnU,EAAO94B,KAAK4nZ,cAAc5nZ,KAAK2nZ,eAE/B/9V,EAAM5pD,KAAK4pD,IAQf,OAFI3c,EAJC8+R,GAAkB/rU,KAAK8g9B,WAAY9g9B,KAAKg+8B,kBAAqBjyoB,GAAkB/rU,KAAK0qe,YAI/E1qe,KAAKitC,IAHL,IAAIxrC,KAAK,IAAIA,MAAMzB,KAAK0qe,YAAYhne,QAAQ1D,KAAK0qe,WAAWpoe,WAAatC,KAAK8g9B,QAAU,KAK1Fzg9B,EAAE60E,QACN,IAAK,YACDh1E,EAAO,IAAIuB,MAAMzB,KAAKqxG,aACtBrxG,KAAK2oZ,OAAOzoZ,EAAM,EAAGG,EAAG4sC,EAAK2c,GACzB255B,IAAmBrj9B,KAAU4j9B,IAC7Bn6nB,EAAM3pV,KAAKsj9B,mBAAkB,EAAO35nB,IAExC3pV,KAAKsoZ,iBAAiB,EAAGxvX,EAAMz4B,EAAG4sC,EAAK2c,GACvC5pD,KAAKyzf,cAAc9pK,EAAKtpV,GACxB,MACJ,IAAK,WACDH,EAAO,IAAIuB,MAAMzB,KAAKqxG,aACtBrxG,KAAK2oZ,OAAOzoZ,GAAO,EAAGG,EAAG4sC,EAAK2c,GACzB255B,IACIrj9B,KAAU2j9B,IACXl6nB,EAAM3pV,KAAKsj9B,mBAAkB,EAAM35nB,IAG3C3pV,KAAKsoZ,kBAAkB,EAAGxvX,EAAMz4B,EAAG4sC,EAAK2c,GACxC5pD,KAAKyzf,cAAc9pK,EAAKtpV,GACxB,MACJ,IAAK,SACY,IAATy4B,GACA54B,EAAO,IAAIuB,MAAMzB,KAAKqxG,aACtBrxG,KAAK2oZ,OAAOzoZ,GAAO,EAAGG,EAAG4sC,EAAK2c,IACzB1pD,IAAS2j9B,IAAcN,IACxB55nB,EAAM3pV,KAAKsj9B,mBAAkB,EAAM35nB,IAEvC3pV,KAAKsoZ,kBAAkB,EAAGxvX,EAAMz4B,EAAG4sC,EAAK2c,IAGxC5pD,KAAKsoZ,kBAAkB,EAAGxvX,EAAMz4B,EAAGL,KAAKitC,IAAKjtC,KAAK4pD,KAEtD5pD,KAAKyzf,cAAc9pK,EAAKtpV,GACxB,MACJ,IAAK,WACY,IAATy4B,GACA54B,EAAO,IAAIuB,MAAMzB,KAAKqxG,aACtBrxG,KAAK2oZ,OAAOzoZ,EAAM,EAAGG,EAAG4sC,EAAK2c,GACzB255B,IAAmBrj9B,IAAS4j9B,IAC5Bn6nB,EAAM3pV,KAAKsj9B,mBAAkB,EAAO35nB,IAExC3pV,KAAKsoZ,iBAAiB,EAAGxvX,EAAMz4B,EAAG4sC,EAAK2c,IAGvC5pD,KAAKsoZ,iBAAiB,EAAGxvX,EAAMz4B,EAAGL,KAAKitC,IAAKjtC,KAAK4pD,KAErD5pD,KAAKyzf,cAAc9pK,EAAKtpV,GACxB,MACJ,IAAK,OACDL,KAAKqxG,YAAcrxG,KAAK8jV,SAAS9jV,KAAKqxG,aACtCl+E,GAAOnzB,KAAK+nZ,kBACC,IAATjvX,EACA94B,KAAKsN,aAAajN,GAEJ,IAATy4B,EACL94B,KAAK4mZ,YAAYvmZ,GAGjBL,KAAK6mZ,cAAcxmZ,GAEvBL,KAAKyzf,cAAc9pK,EAAKtpV,GACxB,MACJ,IAAK,MACDL,KAAKqxG,YAAcrxG,KAAK8P,QAAQ9P,KAAKqxG,YAAav4E,GAClD3F,GAAOnzB,KAAK+nZ,kBACC,IAATjvX,EACA94B,KAAKsN,aAAajN,GAEJ,IAATy4B,EACL94B,KAAK4mZ,YAAYvmZ,GAGjBL,KAAK6mZ,cAAcxmZ,GAEvBL,KAAKyzf,cAAc9pK,EAAKtpV,GACxB,MACJ,IAAK,MACGL,KAAK+j9B,iBAAiBp6nB,EAAKsynB,OAC3BtynB,EAAM3pV,KAAKsj9B,mBAAkB,EAAO35nB,GAAK,GACzC3pV,KAAKqxG,YAAcrxG,KAAKgk9B,iBAAiBhk9B,KAAKsh9B,eAC9Cxo7B,EAAO94B,KAAK4nZ,cAAc5nZ,KAAK2nZ,eAC/B3nZ,KAAKsoZ,iBAAiB,EAAGxvX,EAAMz4B,EAAG4sC,EAAK2c,GACvC5pD,KAAKyzf,cAAc9pK,EAAKtpV,IAE5B,MACJ,IAAK,WACGL,KAAK+j9B,iBAAiBp6nB,EAAKuynB,OAC3BvynB,EAAM3pV,KAAKsj9B,mBAAkB,EAAM35nB,GAAK,GACxC3pV,KAAKqxG,YAAcrxG,KAAKgk9B,iBAAiBhk9B,KAAK2g9B,cAC9C3g9B,KAAKsoZ,iBAAiB,EAAGxvX,EAAMz4B,EAAG4sC,EAAK2c,GACvC5pD,KAAKyzf,cAAc9pK,EAAKtpV,IAIxC,EACA6ha,EAAgBvxZ,UAAUqz8B,iBAAmB,SAAUro3B,GACnD,IAAIso3B,EAA0D,IAA3Cjk9B,KAAK4nZ,cAAc5nZ,KAAK2nZ,eAAuBhsT,EAAS71F,SAAS,GAAGwkC,kBAAkB1Q,cAAc,qEAAuE+hE,EAAS71F,SAAS,GAAGwkC,kBAAkB1Q,cAAc,sEAC/Osq7B,EAAaD,GAAgBA,EAAa9t7B,GAAK8t7B,EAAa9t7B,GAAGxD,MAAM,KAAK,GAAK,KAC/Ewx7B,EAAkB,IAAI1i9B,KAAKzB,KAAKqxG,YAAYjxG,cAAeJ,KAAKqxG,YAAYlxG,WAAY,GAE5F,OADgB+j9B,EAAa,IAAIzi9B,MAAMyi9B,GAAcC,CAEzD,EACAjijB,EAAgBvxZ,UAAU2x8B,gBAAkB,SAAUji9B,EAAGuB,GACrD,IAAI1B,EACA44B,EAAO94B,KAAK4nZ,cAAc5nZ,KAAK2nZ,eAC/By8jB,EAAiB,IAAI3i9B,KAAKzB,KAAK0j9B,oBAAoBtj9B,cAAeJ,KAAK0j9B,oBAAoBvj9B,WAAY,GACvGkk9B,EAAgB,IAAI5i9B,KAAKzB,KAAKyj9B,mBAAmBrj9B,cAAeJ,KAAKyj9B,mBAAmBtj9B,WAAa,EAAG,GACxGwpV,EAAMl0P,GAAQp1F,EAAEgI,OAAQ,IAAM6z8B,KAE9BqH,GADJ55nB,EAAM5d,GAAkB4d,GAAO3pV,KAAK2g9B,aAAeh3nB,GAC1BzhE,UAAUh1P,SAAS+o7B,KAC5Cj88B,KAAK2j9B,sBAAsBh6nB,GAC3B,IAAIu+D,EAAeloZ,KAAK+nZ,iBAAiBnuX,cAAc,oBACnDuuX,EAAcx+D,EAAI/vT,cAAc,SAAWoj7B,KAC3CptjB,EAAYjmE,EAAI/vT,cAAc,SAAWui7B,KACzCtsjB,EAAUlmE,EAAI/vT,cAAc,SAAWwi7B,KACvCh0jB,EAAapoZ,KAAK4nZ,cAAc5nZ,KAAKssE,OACrC+7U,EAAiBvvX,IAASsvX,GAAcpoZ,KAAK4nZ,cAAc5nZ,KAAKk2C,QAAUkyW,EAC1Eu4jB,EAAelr3B,GAAQp1F,EAAEgI,OAAQ,IAAM4z8B,KACvCqF,EAAgB7r3B,GAAQp1F,EAAEgI,OAAQ,IAAM6z8B,KACxCoI,EAAgB7u3B,GAAQp1F,EAAEgI,OAAQ,IAAM008B,KAe5C,OAdKhxoB,GAAkBo8E,GAIbp8E,GAAkB8jF,IAAa7vZ,KAAK898B,aAGpC/xoB,GAAkB6jF,IAAe5vZ,KAAK898B,aAGtC998B,KAAK898B,cACX998B,KAAKqxG,YAAY3tG,QAAQ,GAHzB1D,KAAKqxG,YAAc,IAAI5vG,MAAMzB,KAAK0qe,YAHlC1qe,KAAKqxG,YAAc,IAAI5vG,MAAMzB,KAAK+q8B,UAHlC/q8B,KAAKqxG,YAAcrxG,KAAKqxG,YAW5BrxG,KAAKg0M,OAAS,GACN3zM,EAAE60E,QACN,IAAK,aACGl1E,KAAKq7b,gBACLr7b,KAAKu9R,KAAKl9R,GACVL,KAAK47b,cAAe,EACpB57b,KAAKq3S,aAAajtS,QAClBo+Q,GAAS,CAACxoR,KAAKozZ,aAAatmZ,WAAY,CAACylZ,OAE7C,MACJ,IAAK,SACD,GAAIlK,EAAe,CACf,IAAIlzY,EAAW42T,GAAkBo8E,GAA6ByH,EAAdzH,EAC3Cp8E,GAAkB52T,IAAaA,EAAQ+yQ,UAAUh1P,SAASskO,MAC3Dx3P,KAAKoggB,YAAY,KAAOjrf,EAEhC,MAES42T,GAAkBm8E,IAAkBG,IAAkBt8E,GAAkBo8E,KACpEp8E,GAAkB/rU,KAAK4B,SAEpBA,EADA5B,KAAK0jZ,gBAAgBx7H,UAAUh1P,SAAS+o7B,KAChCj88B,KAAK4vZ,UAGL5vZ,KAAK6vZ,SAGrB7vZ,KAAKgkZ,YAAc3jZ,EACnBL,KAAKwoZ,aAAa,OAAQ1vX,EAAOqvX,GAAeD,EAAetmZ,IAGvEvB,EAAEgO,iBACF,MACJ,IAAK,cAEG,IAAIk28B,EAAW,IAAI9i9B,KAAKzB,KAAKqxG,YAAYjxG,cAAe,EAAG,IACtDmj9B,IAAmBgB,GAAYF,IAChC16nB,EAAM3pV,KAAKsj9B,mBAAkB,EAAM35nB,IAEvC7iS,EAAOn2C,UAAUk3Y,WAAWloZ,KAAKK,KAAM,QAAS,IAAIyB,KAAKzB,KAAKqxG,YAAYjxG,cAAe,EAAG,IAC5FJ,KAAKyzf,cAAc9pK,EAAKtpV,GAE5B,MACJ,IAAK,gBACI0rU,GAAkB40oB,GAGb50oB,GAAkBu1oB,GAUnBv1oB,GAAkBu4oB,IACnBtk9B,KAAKskf,aAAanve,QAAQ/K,QAVzB2hU,GAAkB/rU,KAAKsk9B,eAKxBtk9B,KAAKskf,aAAanve,QAAQ/K,SAJ1BpK,KAAKsk9B,cAAcl68B,QACnBpK,KAAKyi9B,qBALTzi9B,KAAKsh9B,cAAcx78B,SAAS,GAAGwkC,kBAAkBlgC,QAgBrD/J,EAAEgO,iBACF,MACJ,IAAK,eACI09T,GAAkB40oB,GASd50oB,GAAkBu1oB,IACnBth9B,KAAK2g9B,aAAa768B,SAAS,GAAGwkC,kBAAkBlgC,SATV,IAAtCpK,KAAKyg9B,YAAYtr8B,QAAQvG,SACzB5O,KAAKyg9B,YAAYtr8B,QAAQ/K,QAGzBpK,KAAKskf,aAAanve,QAAQ/K,QAQlC/J,EAAEgO,iBACF,MACJ,IAAK,YACGrO,KAAK0jZ,gBAAgBx7H,UAAUh1P,SAAS+o7B,KACxCj88B,KAAKwk9B,mBAAmBnk9B,EAAGL,KAAK0jZ,iBAKpCrjZ,EAAEgO,iBACF,MACJ,IAAK,cACK09T,GAAkBm8E,IAAkBn8E,GAAkBo8E,IAAkBE,IACrEt8E,GAAkB/rU,KAAK4B,SAEpBA,EADA5B,KAAK0jZ,gBAAgBx7H,UAAUh1P,SAAS+o7B,KAChCj88B,KAAK4vZ,UAGL5vZ,KAAK6vZ,SAGrB7vZ,KAAKgkZ,YAAc3jZ,EACnBL,KAAKwoZ,aAAa,OAAQ1vX,EAAOovX,GAAgBC,EAAcvmZ,IAEnEvB,EAAEgO,iBACF,MACJ,IAAK,aAEOk28B,EAAW,IAAI9i9B,KAAKzB,KAAKqxG,YAAYjxG,cAAe,GAAI,IACxDmj9B,IAAmBgB,GAAYH,IAC/Bz6nB,EAAM3pV,KAAKsj9B,mBAAkB,EAAO35nB,IAExC7iS,EAAOn2C,UAAUk3Y,WAAWloZ,KAAKK,KAAM,QAAS,IAAIyB,KAAKzB,KAAKqxG,YAAYjxG,cAAe,GAAI,KAC7FJ,KAAKyzf,cAAc9pK,EAAKtpV,GAE5B,MACJ,IAAK,SACDH,EAAO,IAAIuB,MAAMzB,KAAKqxG,aACtBrxG,KAAK+B,UAAU7B,GAAO,IACjBqj9B,IAAmBrj9B,IAASmk9B,IAC7B16nB,EAAM3pV,KAAKsj9B,mBAAkB,EAAM35nB,IAEvC3pV,KAAK+B,UAAU/B,KAAKqxG,aAAc,GAClCvqD,EAAOn2C,UAAUk3Y,WAAWloZ,KAAKK,KAAM,QAASA,KAAKqxG,aACrDrxG,KAAKyzf,cAAc9pK,EAAKtpV,GACxB,MACJ,IAAK,WACDH,EAAO,IAAIuB,MAAMzB,KAAKqxG,aACtBrxG,KAAK+B,UAAU7B,EAAM,GACjBqj9B,IAAmBrj9B,IAASkk9B,IAC5Bz6nB,EAAM3pV,KAAKsj9B,mBAAkB,EAAO35nB,IAExC3pV,KAAK+B,UAAU/B,KAAKqxG,YAAa,GACjCvqD,EAAOn2C,UAAUk3Y,WAAWloZ,KAAKK,KAAM,QAASA,KAAKqxG,aACrDrxG,KAAKyzf,cAAc9pK,EAAKtpV,GACxB,MACJ,IAAK,cACDH,EAAO,IAAIuB,MAAMzB,KAAKqxG,aACtBrxG,KAAKyoZ,SAASvoZ,GAAO,IAChBqj9B,IAAmBrj9B,IAASmk9B,IAC7B16nB,EAAM3pV,KAAKsj9B,mBAAkB,EAAM35nB,IAEvC3pV,KAAKyoZ,SAASzoZ,KAAKqxG,aAAc,GACjCvqD,EAAOn2C,UAAUk3Y,WAAWloZ,KAAKK,KAAM,QAASA,KAAKqxG,aACrDrxG,KAAKyzf,cAAc9pK,EAAKtpV,GACxB,MACJ,IAAK,gBACDH,EAAO,IAAIuB,MAAMzB,KAAKqxG,aACtBrxG,KAAKyoZ,SAASvoZ,EAAM,GAChBqj9B,IAAmBrj9B,IAASkk9B,IAC5Bz6nB,EAAM3pV,KAAKsj9B,mBAAkB,EAAO35nB,IAExC3pV,KAAKyoZ,SAASzoZ,KAAKqxG,YAAa,GAChCvqD,EAAOn2C,UAAUk3Y,WAAWloZ,KAAKK,KAAM,QAASA,KAAKqxG,aACrDrxG,KAAKyzf,cAAc9pK,EAAKtpV,GACxB,MACJ,IAAK,WACI0rU,GAAkB/rU,KAAKsk9B,iBACxBtk9B,KAAKsk9B,cAActv7B,aAAa,WAAY,KAC5Ch1B,KAAKsk9B,cAAcl68B,QACnBpK,KAAKyi9B,qBAELc,GACAlj9B,EAAEgO,iBAEFrO,KAAK+j9B,iBAAiBp6nB,EAAKuynB,OAC3Bl88B,KAAKqxG,YAAc,IAAI5vG,MAAMzB,KAAKyj9B,oBAClCzj9B,KAAK4j9B,cAAcvj9B,EAAGkj9B,EAAgBc,EAAeD,EAAgBz6nB,IAEzE,MACJ,IAAK,WACG3pV,KAAKyg9B,cAAgBzg9B,KAAKyg9B,YAAY7x8B,UACtC5O,KAAK0g9B,cAAcrg9B,GAEvB,MACJ,IAAK,MACGL,KAAK+j9B,iBAAiBp6nB,EAAKsynB,OAC3Bj88B,KAAKqxG,YAAc,IAAI5vG,MAAMzB,KAAK0j9B,qBAClC1j9B,KAAK4j9B,cAAcvj9B,EAAGkj9B,EAAgBc,EAAeD,EAAgBz6nB,IAEzE,MACJ,QACI3pV,KAAK4j9B,cAAcvj9B,EAAGkj9B,EAAgBc,EAAeD,EAAgBz6nB,GACrE3pV,KAAKyk9B,kBAEbzk9B,KAAK0k9B,cACT,EACAxijB,EAAgBvxZ,UAAUoz8B,iBAAmB,SAAUp6nB,EAAKg7nB,GACxD,IAAIpB,EAAiB55nB,EAAIzhE,UAAUh1P,SAASyx7B,GACxCC,EAAc5k9B,KAAKsh9B,cAAc1n7B,cAAc,aAC/Cir7B,EAAa7k9B,KAAK2g9B,aAAa/m7B,cAAc,aAC7Ckr7B,IAAeF,GAAcA,EAAY18rB,UAAUh1P,SAAS,WAC5D6x7B,IAAcF,GAAaA,EAAW38rB,UAAUh1P,SAAS,WACzD8x7B,IAAcJ,GAAcA,EAAY18rB,UAAUh1P,SAAS,UAC3D+x7B,IAAaJ,GAAaA,EAAW38rB,UAAUh1P,SAAS,UACxDgy7B,IAAgBN,GAAcA,EAAY18rB,UAAUh1P,SAAS,YAC7Diy7B,IAAeN,GAAaA,EAAW38rB,UAAUh1P,SAAS,YAC9D,OAAOqw7B,IAAmBwB,GAAeE,GAAcE,KAClDL,GAAgBE,GAAeE,KAAmBll9B,KAAK2+8B,QAChE,EACAz8iB,EAAgBvxZ,UAAU8if,cAAgB,SAAU93Z,EAAUt7F,GAC1DL,KAAKwi9B,uBAAuB7m3B,GACxBA,EAASusL,UAAUh1P,SAAS+o7B,KAC5Bj88B,KAAKyj9B,mBAAqB,IAAIhi9B,MAAMzB,KAAKqxG,aAGzCrxG,KAAK0j9B,oBAAsB,IAAIji9B,MAAMzB,KAAKqxG,aAE9CrxG,KAAK8h9B,iBACL9h9B,KAAK+h9B,oBACL/h9B,KAAKqh9B,YAAY,CAAC1l3B,IAClB37F,KAAK898B,aAAe998B,KAAKqj9B,eAAerj9B,KAAKqxG,aAC7ChxG,EAAEgO,gBACN,EACA6zZ,EAAgBvxZ,UAAUskZ,aAAe,SAAU50Z,GAC/C,OAAQA,EAAE60E,QACN,IAAK,eACIl1E,KAAKq7b,gBAC0B,KAA5Br7b,KAAKq3S,aAAaz1S,QAClB5B,KAAKq0D,QACLr0D,KAAK82Z,cAAcz2Z,GACnBL,KAAKog9B,cAETpg9B,KAAKqmT,KAAK,KAAMhmT,GAChBL,KAAK+98B,oBAAqB,EACrB/98B,KAAK2+8B,UACD5yoB,GAAkB/rU,KAAK2g9B,eACxB3g9B,KAAK4g9B,gBAGb5g9B,KAAK698B,YAAa,GAEtB,MACJ,IAAK,SACG798B,KAAKq7b,eACLr7b,KAAKu9R,KAAKl9R,GAEd,MACJ,IAAK,QACG6wB,SAAS0vH,gBAAkB5gJ,KAAKq3S,eAChCr3S,KAAKq1Z,iBAAiBh1Z,GACtBL,KAAKu9R,KAAKl9R,IAEd,MACJ,IAAK,MACG6wB,SAAS0vH,gBAAkB5gJ,KAAKq3S,cAAgBr3S,KAAKq7b,gBACrDr7b,KAAKu9R,KAAKl9R,GACVA,EAAEgO,kBAIlB,EACA6zZ,EAAgBvxZ,UAAU6x8B,uBAAyB,SAAU7m3B,GAQzD,IAPA,IAOSrsF,EAAK,EAAG818B,EANbzp3B,EACUA,EAASnrF,iBAAiB,IAAMis8B,IAAW,OAG3Cz88B,KAAK41Z,SAASzgZ,QAAQ3E,iBAAiB,IAAMis8B,IAAW,OAEhCnt8B,EAAK818B,EAAUhi9B,OAAQkM,IAAM,CAC/D,IAAI++jB,EAAO+2Y,EAAU918B,GACrBupO,GAAaswG,YAAYklP,GACNA,EAAKnmT,UAAUh1P,SAASskO,MAAa62U,EAAKnmT,UAAUh1P,SAASgq7B,MAC1D7uY,EAAKnmT,UAAUh1P,SAASkvX,OACrCpiZ,KAAK2+8B,UACN9luB,GAAazlN,IAAIi7iB,EAAM,YAAarukB,KAAKql9B,eAAgBrl9B,MAE7D64O,GAAazlN,IAAIi7iB,EAAM,YAAarukB,KAAKoggB,YAAapggB,MAE9D,CACJ,EACAkia,EAAgBvxZ,UAAU8x8B,kBAAoB,WAG1C,IAFA,IAAI9g9B,GAAUoqU,GAAkB/rU,KAAK0qe,cAAgB3+J,GAAkB/rU,KAAK+q8B,UAEnEz77B,EAAK,EAAGg28B,EADCtl9B,KAAK41Z,SAASzgZ,QAAQ3E,iBAAiB,IAAMis8B,IAAW,KAAOO,KACnC1t8B,EAAKg28B,EAAcli9B,OAAQkM,IAAM,CAC3E,IAAIq6U,EAAM27nB,EAAch28B,GACpB1M,EAAQ,IAAInB,KACZ8j9B,EAAUvl9B,KAAKotZ,WAAW,KAAMzjE,IAChB,UAAf3pV,KAAKssE,OAA4C,UAAvBtsE,KAAK2nZ,iBAC9Bh+D,EAAIzhE,UAAUh1P,SAASqvX,MAAW54D,EAAIzhE,UAAUh1P,SAASqvX,MAAU5gZ,IAClD,SAAf3B,KAAKssE,OAA2C,SAAvBtsE,KAAK2nZ,iBAC3B3nZ,KAAKuC,YAAYK,EAAO2i9B,KAAavl9B,KAAKwl9B,WAAW5i9B,EAAO2i9B,IAAa5j9B,IAC7D,WAAf3B,KAAKssE,OAA6C,WAAvBtsE,KAAK2nZ,iBAC9B3nZ,KAAKwl9B,WAAW5i9B,EAAO2i9B,IAAY5j9B,MACzCgoV,EAAIzhE,UAAU/0P,OAAO6p7B,KAChBrznB,EAAIzhE,UAAUh1P,SAASip7B,MAAexynB,EAAIzhE,UAAUh1P,SAASkp7B,MAC9DzynB,EAAI50T,gBAAgB,cAGhC,CACJ,EACAmtY,EAAgBvxZ,UAAU008B,eAAiB,SAAUtu7B,EAAO5hB,GACxD,IAAIggY,EAAiBhgY,GAAW4hB,EAAMoE,cAClCk2E,EAAcrxG,KAAKotZ,WAAW,KAAMjY,GACxC,IAAKppE,GAAkB/rU,KAAK0qe,cAAgB1qe,KAAK0qe,aAAe1qe,KAAK4pD,MAAQ5pD,KAAK0qe,aAAe1qe,KAAKitC,OAC5FjtC,KAAKqj9B,eAAerj9B,KAAK+q8B,YAAc/q8B,KAAKqj9B,eAAerj9B,KAAK0qe,aAC/D3+J,GAAkB/rU,KAAK+q8B,WAAah/nB,GAAkB/rU,KAAK0qe,cACzD3+J,GAAkB/rU,KAAK0qe,aAAe3+J,GAAkB/rU,KAAK+q8B,WAElE,IADA,IACSz77B,EAAK,EAAGm28B,EADHzl9B,KAAK41Z,SAASzgZ,QAAQ3E,iBAAiB,IAAMis8B,IAAW,OAChCnt8B,EAAKm28B,EAAUri9B,OAAQkM,IAAM,CAC/D,IAAIq6U,EAAM87nB,EAAUn28B,GAChBo28B,GAAmB/7nB,EAAIzhE,UAAUh1P,SAASskO,MAAamyF,EAAIzhE,UAAUh1P,SAASgq7B,KAClF,IAAKvznB,EAAIzhE,UAAUh1P,SAASkvX,MAAesjkB,EAAgB,CACvD,IAAIH,EAAUvl9B,KAAKotZ,WAAW,KAAMzjE,GAChCg8nB,EAAiB,IAAIlk9B,MAAMzB,KAAK0qe,YACjB,IAAIjpe,MAAM8j9B,GACZ9i9B,SAAS,EAAG,EAAG,EAAG,IAAMkj9B,EAAelj9B,SAAS,EAAG,EAAG,EAAG,KAAO8i9B,IAAYl02B,EACzFm3K,GAAS,CAACmhE,GAAM2ynB,KAGhBr0rB,GAAY,CAAC0hE,GAAM,CAAC2ynB,KAE5B,CACJ,CAGZ,EACAp6iB,EAAgBvxZ,UAAUi18B,eAAiB,SAAUC,EAAUC,GAC3D,IAAIpt2B,GAAS,EAiBb,MAhBmB,UAAf14G,KAAKssE,MACAu54B,EAAUpj9B,SAAS,EAAG,EAAG,EAAG,KAAQqj9B,EAAQrj9B,SAAS,EAAG,EAAG,EAAG,KAC/Di2G,GAAS,GAGO,SAAf14G,KAAKssE,MACLu54B,EAASzl9B,gBAAkB0l9B,EAAO1l9B,eAClCyl9B,EAAS1l9B,aAAe2l9B,EAAO3l9B,aAChCu4G,GAAS,GAGO,WAAf14G,KAAKssE,OACNu54B,EAASzl9B,gBAAkB0l9B,EAAO1l9B,gBAClCs4G,GAAS,GAGVA,CACX,EACAwpT,EAAgBvxZ,UAAU0w8B,YAAc,SAAU0E,GAC9C,IAAKh6oB,GAAkB/rU,KAAK0qe,YACxB,IAAK,IAAIp7d,EAAK,EAAG028B,EAAsBD,EAAmBz28B,EAAK028B,EAAoB5i9B,OAAQkM,IAGvF,IAFA,IAESgmC,EAAK,EAAG2w6B,EAFFD,EAAoB128B,GACZkB,iBAAiB,IAAMis8B,IAAW,OACnBnn6B,EAAK2w6B,EAAU7i9B,OAAQkyC,IAAM,CAC/D,IAAIq0S,EAAMs8nB,EAAU3w6B,GACpB,IAAKq0S,EAAIzhE,UAAUh1P,SAASkvX,OAAgBz4D,EAAIzhE,UAAUh1P,SAASskO,KAAW,CAC1E,IAAI+ttB,EAAUvl9B,KAAKotZ,WAAW,KAAMzjE,GAChCu8nB,EAAelm9B,KAAKotZ,WAAW,KAAMzjE,GAuBzC,GAtBK5d,GAAkB/rU,KAAK+q8B,UAYxB9irB,GAAY,CAAC0hE,GAAM,CAAC2ynB,MAXhBt88B,KAAK2nZ,gBAAkB3nZ,KAAKssE,QAC3B454B,EAAazj9B,SAAS,EAAG,EAAG,EAAG,KAAO,IAAIhB,MAAMzB,KAAK0qe,YAAYjoe,SAAS,EAAG,EAAG,EAAG,KAChFyj9B,EAAazj9B,SAAS,EAAG,EAAG,EAAG,KAAO,IAAIhB,MAAMzB,KAAK+q8B,UAAUto8B,SAAS,EAAG,EAAG,EAAG,KACpFzC,KAAK4l9B,eAAe,IAAInk9B,MAAMzB,KAAK0qe,YAAa,IAAIjpe,MAAMzB,KAAK+q8B,aAC/D,IAAItp8B,MAAMzB,KAAK0qe,YAAYjoe,SAAS,EAAG,EAAG,EAAG,KAAOzC,KAAK4pD,MACtD,IAAInoD,MAAMzB,KAAK+q8B,UAAUto8B,SAAS,EAAG,EAAG,EAAG,KAAOzC,KAAKitC,MACtDjtC,KAAKqj9B,eAAerj9B,KAAK0qe,cAAe1qe,KAAKqj9B,eAAerj9B,KAAK+q8B,WACtEvirB,GAAS,CAACmhE,GAAM2ynB,KAMpB3ynB,EAAIzhE,UAAUh1P,SAASkgP,MAAau2E,EAAIzhE,UAAUh1P,SAASkp7B,OACzD8J,KAAkBlm9B,KAAK+q8B,WACzB9irB,GAAY,CAAC0hE,GAAM,CAACv2E,MACpB6U,GAAY,CAAC0hE,GAAM,CAACyynB,OAEpBzynB,EAAIzhE,UAAUh1P,SAASop7B,OAAiB4J,GAAgBlm9B,KAAK+q8B,UAC7D9irB,GAAY,CAAC0hE,GAAM,CAAC2ynB,OAEnB3ynB,EAAIzhE,UAAUh1P,SAAS4uX,KAAa,CACrC,IAAI6jkB,EAAiB,IAAIlk9B,MAAMzB,KAAK0qe,YAChCy7e,EAAiB,IAAI1k9B,MAAM8j9B,GAC3Bvl9B,KAAK2nZ,gBAAkB3nZ,KAAKssE,QAC3B654B,EAAe1j9B,SAAS,EAAG,EAAG,EAAG,MAAQkj9B,EAAelj9B,SAAS,EAAG,EAAG,EAAG,KACvE0j9B,EAAe1j9B,SAAS,EAAG,EAAG,EAAG,KAAOkj9B,EAAelj9B,SAAS,EAAG,EAAG,EAAG,KAC5EzC,KAAK0qe,aAAe1qe,KAAK4pD,MACtB5pD,KAAKozZ,aAAatmZ,UAAUo7Q,UAAUh1P,SAAS,aAC9ClzB,KAAKqj9B,eAAerj9B,KAAK0qe,cAAe1qe,KAAKqj9B,eAAerj9B,KAAK+q8B,YACtEvirB,GAAS,CAACmhE,GAAM,CAACwynB,IAAW/osB,MAC5BpzQ,KAAKom9B,sBAAsBz8nB,EAAK3pV,KAAK0qe,YAAY,IAErD,IAAI27e,EAAe,IAAI5k9B,MAAMzB,KAAK+q8B,UACP,SAAvB/q8B,KAAK2nZ,cACLw+jB,EAAiB,IAAI1k9B,KAAK0k9B,EAAe/l9B,cAAe+l9B,EAAehm9B,WAAa,EAAG,GAE3D,WAAvBH,KAAK2nZ,gBACVw+jB,EAAiB,IAAI1k9B,KAAK0k9B,EAAe/l9B,cAAe,GAAI,KAE5DJ,KAAK2nZ,gBAAkB3nZ,KAAKssE,QAC3By/P,GAAkB/rU,KAAK+q8B,YACvBob,EAAe1j9B,SAAS,EAAG,EAAG,EAAG,MAAQ4j9B,EAAa5j9B,SAAS,EAAG,EAAG,EAAG,KACrE0j9B,EAAe1j9B,SAAS,EAAG,EAAG,EAAG,KAAO4j9B,EAAa5j9B,SAAS,EAAG,EAAG,EAAG,KAC1EzC,KAAK0qe,aAAe1qe,KAAK4pD,MACtB5pD,KAAKozZ,aAAatmZ,UAAUo7Q,UAAUh1P,SAAS,aAC9ClzB,KAAKqj9B,eAAerj9B,KAAK0qe,cAAe1qe,KAAKqj9B,eAAerj9B,KAAK+q8B,YACtEvirB,GAAS,CAACmhE,GAAM,CAACyynB,IAAShpsB,MAC1BpzQ,KAAKom9B,sBAAsBz8nB,EAAK3pV,KAAK0qe,YAAY,KAEhD66e,KAAavl9B,KAAK0qe,YAAe3+J,GAAkB/rU,KAAK+q8B,YAAcwa,KAAavl9B,KAAK+q8B,UACzF/q8B,KAAKom9B,sBAAsBz8nB,EAAK3pV,KAAK+q8B,UAAU,GAAO,EAE9D,CACJ,CACJ,CAGZ,EACA7oiB,EAAgBvxZ,UAAU8z8B,gBAAkB,aAClC14oB,GAAkB/rU,KAAK6g9B,UAAY7g9B,KAAK6g9B,QAAU,IAAQ90oB,GAAkB/rU,KAAK8g9B,UAAY9g9B,KAAK8g9B,QAAU,KACzG9g9B,KAAK2+8B,SAKN3+8B,KAAK8i9B,iBAAiB9i9B,KAAK41Z,SAASzgZ,QAAQykB,cAAc,IAAM6i7B,OAJhEz88B,KAAK8i9B,iBAAiB9i9B,KAAK41Z,SAASzgZ,QAAQykB,cAAc,IAAMqi7B,MAChEj88B,KAAK8i9B,iBAAiB9i9B,KAAK41Z,SAASzgZ,QAAQykB,cAAc,IAAMsi7B,OAM5E,EACAh6iB,EAAgBvxZ,UAAU218B,UAAY,SAAUjm9B,GAC5C,IAAIgjT,EACAngT,EACA0sZ,EAAa7jF,GAAkB/rU,KAAK0qe,YAG/B,KAFL1qe,KAAKujZ,UAAU9jE,WAAWz/U,KAAK0qe,WAAY,CACvCrld,OAAQrlB,KAAKy0Z,aAAc7nZ,KAAM,OAAQqmU,SAAU,QAEvD48E,EAAW9jF,GAAkB/rU,KAAK+q8B,UAG7B,KAFL/q8B,KAAKujZ,UAAU9jE,WAAWz/U,KAAK+q8B,SAAU,CACrC1l7B,OAAQrlB,KAAKy0Z,aAAc7nZ,KAAM,OAAQqmU,SAAU,QAqB3D,OAnBKlH,GAAkB/rU,KAAK+q8B,WAAch/nB,GAAkB/rU,KAAK0qe,aAM7DrnL,EAAa,GACbngT,EAAQ,IANRmgT,EAAausG,EAAY,IAAM5vZ,KAAKmoF,UAAY,IAAM0nU,EACtD3sZ,EAASU,KAAKmgB,MAAMngB,KAAK8Y,KAAK1c,KAAKum9B,wBAAwBvm9B,KAAK0qe,YAAYhpe,UACxE1B,KAAKum9B,wBAAwBvm9B,KAAK+q8B,UAAUrp8B,WAAa,QAA0B,GAMhF,CACPE,MAAO5B,KAAK4B,MACZguZ,UAAW5vZ,KAAK0qe,WAChB76E,QAAS7vZ,KAAK+q8B,SACd/yiB,QAAS90Z,EACT6zB,MAAO12B,GAAK,KACZ8U,QAASnV,KAAKmV,QACdk9Y,cAAetmF,GAAkB1rU,GACjC4/B,KAAMojR,EAGd,EACA6+G,EAAgBvxZ,UAAU618B,iBAAmB,SAAU78nB,EAAK88nB,EAAaC,GACrE,IAAI9k9B,GAAS5B,KAAKotZ,WAAW,KAAMzjE,GAC/BiwE,EAAe,mCAAmCvpZ,QAAQ,MAAO,GAAKzO,GACtE+k9B,EAAS3m9B,KAAK41Z,UAAY51Z,KAAK41Z,SAASzgZ,QAAQykB,cAAcggY,GAC7D7tF,GAAkB46oB,KACfF,GACAj+rB,GAAS,CAACm+rB,GAAS,CAACxK,IAAW/osB,MAC/BpzQ,KAAKom9B,sBAAsBO,EAAQ3m9B,KAAK0qe,YAAY,KAGpDliN,GAAS,CAACm+rB,GAAS,CAACvK,IAAShpsB,MAC7BpzQ,KAAKom9B,sBAAsBO,EAAQ3m9B,KAAK+q8B,UAAU,IAElD2b,GACA1m9B,KAAKom9B,sBAAsBz8nB,EAAK3pV,KAAK+q8B,UAAU,GAAO,GAGlE,EACA7oiB,EAAgBvxZ,UAAUyvf,YAAc,SAAUrpe,EAAO5hB,GACrD,IAAIwr8B,EACAW,EACAvq7B,GACAA,EAAM1oB,iBAEV,IAAInO,EAAO6rU,GAAkBh1S,GAAS/2B,KAAKotZ,WAAW,KAAMj4Y,GACtDnV,KAAKotZ,WAAWr2X,EAAO,MACzB5c,EAAIja,EAAKE,cACT2gB,EAAI7gB,EAAKC,WACT2jV,EAAW,IAAIriV,KAAK0Y,EAAG4G,EAAG,GAC1BjR,EAAU,IAAIrO,KAAK0Y,EAAG4G,EAAI,EAAG,GAC7B6/Y,EAAa,IAAIn/Z,KAAK0Y,EAAG,EAAG,GAC5Bys8B,EAAY,IAAInl9B,KAAK0Y,EAAG,GAAI,IAC3B4xT,GAAkB/rU,KAAK+q8B,WAAch/nB,GAAkB/rU,KAAK0qe,YAKxD1qe,KAAK2+8B,UAAY3+8B,KAAKii9B,YAAY9s8B,QAAQ+yQ,UAAUh1P,SAASk/O,MAClEpyQ,KAAKs9b,oBALAt9b,KAAK2+8B,UAAY3+8B,KAAK2+8B,WAAa3+8B,KAAKmi9B,UAAUht8B,QAAQ+yQ,UAAUh1P,SAASk/O,OAC9EpyQ,KAAKs9b,kBAMb,IAAI3zG,EAAMx0U,GAAW4hB,EAAMoE,cAC3B,GAAI4wS,GAAkB/rU,KAAK0qe,YAClB3+J,GAAkB/rU,KAAKqg9B,sBACxBng9B,EAAKuC,SAASzC,KAAKqg9B,mBAAmBl97B,YACtCjjB,EAAK0kG,WAAW5kG,KAAKqg9B,mBAAmBj97B,cACxCljB,EAAKwkG,WAAW1kG,KAAKqg9B,mBAAmBh97B,eAE5CrjB,KAAK0qe,WAA6B,UAAf1qe,KAAKssE,MAAqB,IAAI7qE,KAAKzB,KAAKilZ,WAAW/kZ,IAClD,SAAfF,KAAKssE,MAAoBw3Q,EAAW88E,EACzC5ga,KAAK+q8B,SAAW,KAChB/q8B,KAAK0gJ,WACL8nI,GAAS,CAACmhE,GAAMwynB,KAChBn88B,KAAKom9B,sBAAsBz8nB,EAAK3pV,KAAK0qe,YAAY,GAC7C/gJ,EAAIzhE,UAAUh1P,SAAS4uX,MACvB9hZ,KAAKwm9B,iBAAiB78nB,GAAK,GAE/B3pV,KAAKyk9B,kBACLzk9B,KAAKyg9B,YAAY7x8B,UAAW,EAC5B5O,KAAKyg9B,YAAYtr8B,QAAQvG,UAAW,EAChC5O,KAAK2+8B,WACL3+8B,KAAKmi9B,UAAUht8B,QAAQ+yQ,UAAU90P,IAAIg/O,KACrCpyQ,KAAKii9B,YAAY9s8B,QAAQ+yQ,UAAU/0P,OAAOi/O,KAC1CpyQ,KAAKmi9B,UAAUht8B,QAAQ4f,gBAAgB,YACvC/0B,KAAK+i9B,mBAET/i9B,KAAKsgS,QAAQ,SAAUtgS,KAAKsm9B,UAAUvv7B,SAGtC,IAAK72B,KAAUF,KAAK0qe,aAAexqe,GAAQF,KAAK0qe,WAAY,CACxD,IAAKxqe,KAAUF,KAAK0qe,aAAe3+J,GAAkB/rU,KAAK6g9B,UAAY7g9B,KAAK6g9B,QAAU,EACjF,OAEJ7g9B,KAAK+q8B,SAAW,KAChB/q8B,KAAK0gJ,YACD1gJ,KAAK2+8B,UAAYxp8B,IACjBnV,KAAKql9B,eAAetu7B,EAAO5hB,GAE1B42T,GAAkB/rU,KAAKsg9B,oBACxBpg9B,EAAKuC,SAASzC,KAAKsg9B,iBAAiBn97B,YACpCjjB,EAAK0kG,WAAW5kG,KAAKsg9B,iBAAiBl97B,cACtCljB,EAAKwkG,WAAW1kG,KAAKsg9B,iBAAiBj97B,eAE1CrjB,KAAK+q8B,SAA2B,UAAf/q8B,KAAKssE,MAAqB,IAAI7qE,KAAKzB,KAAKilZ,WAAW/kZ,IAChD,SAAfF,KAAKssE,MAAoBx8D,EAAU828B,EACxC5m9B,KAAK0gJ,WACL,IAAIw9a,EAASl+jB,KAAK41Z,SAASzgZ,QAAQ3E,iBAAiB,IAAM4r8B,KAC1D,GAAIp88B,KAAK2+8B,SAAU,CACf3+8B,KAAKii9B,YAAY9s8B,QAAQ+yQ,UAAU/0P,OAAOi/O,KAC1CpyQ,KAAKmi9B,UAAUht8B,QAAQ+yQ,UAAU90P,IAAIg/O,KACrC,IAAK,IAAI9iQ,EAAK,EAAGu38B,EAAW3oZ,EAAQ5ujB,EAAKu38B,EAASzj9B,OAAQkM,IAAM,CAC5D,IAAI6rd,EAAQ0rf,EAASv38B,GACrB6rd,EAAMpmc,gBAAgB,cACjBomc,EAAMjzM,UAAUh1P,SAASip7B,MAK1Bn88B,KAAKom9B,sBAAsBjrf,EAAOn7d,KAAK0qe,YAAY,GACnDziN,GAAY,CAACkzM,GAAQ,CAACihf,QALtBjhf,EAAMnmc,aAAa,gBAAiB,SACpCizP,GAAY,CAACkzM,GAAQ,CAACihf,IAAShpsB,MAMvC,CACJ,CACAoV,GAAS,CAACmhE,GAAMyynB,MACXp88B,KAAK+q8B,YAAc/q8B,KAAK0qe,WACzB1qe,KAAKom9B,sBAAsBz8nB,EAAK3pV,KAAK+q8B,UAAU,GAAO,GAGtD/q8B,KAAKom9B,sBAAsBz8nB,EAAK3pV,KAAK+q8B,UAAU,GAE/CphnB,EAAIzhE,UAAUh1P,SAAS4uX,QAClB9hZ,KAAK+q8B,YAAc/q8B,KAAK0qe,WACzB1qe,KAAKwm9B,iBAAiB78nB,GAAK,GAAO,GAGlC3pV,KAAKwm9B,iBAAiB78nB,GAAK,IAInC,IAAK,IAAIr0S,EAAK,EAAGwx6B,EADjB5oZ,EAASl+jB,KAAK41Z,SAASzgZ,QAAQ3E,iBAAiB,IAAM4r8B,KAClB9m6B,EAAKwx6B,EAAS1j9B,OAAQkyC,IAAM,CAC5D,IAAIyx6B,EAAQD,EAASxx6B,GACjByx6B,EAAM7+rB,UAAUh1P,SAASip7B,MACzBl0rB,GAAY,CAAC8+rB,GAAQ,CAACzK,KAE9B,CACAt88B,KAAKyg9B,YAAY7x8B,UAAW,EAC5B5O,KAAKyg9B,YAAYtr8B,QAAQvG,UAAW,EAC/B5O,KAAK2+8B,UACN3+8B,KAAK6i9B,uBAEJ92oB,GAAkB/rU,KAAKgoZ,oBAAsBhoZ,KAAKgoZ,kBAAkB18O,YACrEtrK,KAAKuh9B,qBAETvh9B,KAAKsgS,QAAQ,SAAUtgS,KAAKsm9B,UAAUvv7B,GAC1C,MACU72B,GAAQF,KAAK0qe,aACnB1qe,KAAK6i9B,sBACL7i9B,KAAK0qe,WAA6B,UAAf1qe,KAAKssE,MAAqB,IAAI7qE,KAAKzB,KAAKilZ,WAAW/kZ,IAClD,SAAfF,KAAKssE,MAAoBw3Q,EAAW88E,EACzC5ga,KAAK0gJ,WACL1gJ,KAAKgn9B,2BACL/+rB,GAAYjoR,KAAK41Z,SAASzgZ,QAAQ3E,iBAAiB,IAAM2r8B,KAAY,CAACA,IAAW/osB,MACjFoV,GAAS,CAACmhE,GAAMwynB,KAChBn88B,KAAKom9B,sBAAsBz8nB,EAAK3pV,KAAK0qe,YAAY,GAC7C/gJ,EAAIzhE,UAAUh1P,SAAS4uX,MACvB9hZ,KAAKwm9B,iBAAiB78nB,GAAK,GAE/B3pV,KAAKyk9B,mBAGT1t7B,IACA4p7B,EAAelr3B,GAAQ1+D,EAAM1uB,OAAQ,IAAM4z8B,MAE1ClwoB,GAAkB40oB,IAIf5p7B,IACAuq7B,EAAgBvq7B,GAAS0+D,GAAQ1+D,EAAM1uB,OAAQ,IAAM6z8B,MAEpDnwoB,GAAkBu1oB,IACnBth9B,KAAKsh9B,cAAcx78B,SAAS,GAAGwkC,kBAAkBlgC,SAPrDpK,KAAK2g9B,aAAa768B,SAAS,GAAGwkC,kBAAkBlgC,QAUpDo+Q,GAAS,CAACmhE,GAAMv2E,KAChBpzQ,KAAK+h9B,oBACL/h9B,KAAKwh9B,eACLxh9B,KAAKyi9B,mBACT,EACAvgjB,EAAgBvxZ,UAAUoy8B,gBAAkB,WACxC,IAAKh3oB,GAAkB/rU,KAAK0qe,YAAa,CACrC,IAAIu8e,EAAUjn9B,KAAK0jZ,gBAAgBlzY,iBAAiB,IAAMis8B,IAAW,OACjEgK,GAAc,EAClB,GAAIzm9B,KAAK2nZ,gBAAkB3nZ,KAAKssE,MAAO,CACnC,IAAK,IAAIh9D,EAAK,EAAG438B,EAAYD,EAAS338B,EAAK438B,EAAU9j9B,OAAQkM,IAAM,CAE/D,KADIq6U,EAAMu9nB,EAAU538B,IACX44Q,UAAUh1P,SAASip7B,OAAexynB,EAAIzhE,UAAUh1P,SAASkvX,OACzDz4D,EAAIzhE,UAAUh1P,SAASskO,KAAW,CAEnC,IADcx3P,KAAKotZ,WAAW,KAAMzjE,IACpB3pV,KAAK0qe,WAAY,CAC7BliN,GAAS,CAACmhE,GAAM,CAACuznB,IAAc1ltB,IAAUqhB,MACzChgC,GAAaswG,YAAYQ,GACzB,QACJ,CAEI,KAER,CAEJ,GAAIA,EAAIzhE,UAAUh1P,SAASip7B,OAAexynB,EAAIzhE,UAAUh1P,SAAS4uX,KAAa,CAC1E2kkB,GAAc,EACd,KACJ,CACJ,CACIA,IACKzm9B,KAAKylZ,aAAav9H,UAAUh1P,SAASskO,MACtCgxB,GAAS,CAACxoR,KAAKylZ,cAAe,CAAC03jB,IAAc3ltB,IAAUqhB,MAGnE,KACK,CACD,IAAK,IAAIvjO,EAAK,EAAG6x6B,EAAYF,EAAS3x6B,EAAK6x6B,EAAU/j9B,OAAQkyC,IAAM,CAC/D,IAAIq0S,EAAMw9nB,EAAU7x6B,GAChBotV,EAAa1iY,KAAK0qe,WAAWvqe,WAC7Bi0F,EAAYp0F,KAAK0qe,WAAWtqe,cAC5B+U,EAAUnV,KAAKotZ,WAAW,KAAMzjE,GACpC,GAAK3pV,KAAKii9B,YAAY9s8B,QAAQ+yQ,UAAUh1P,SAASk/O,QAAoC,SAAvBpyQ,KAAK2nZ,eAC9DxyY,EAAQhV,WAAauiY,GAAgBvtX,EAAQ/U,eAAiBg0F,GACpC,WAAvBp0F,KAAK2nZ,eAA+BxyY,EAAQhV,YAAcuiY,GACzDvtX,EAAQ/U,cAAgBg0F,GAI7B,MAHAo0L,GAAS,CAACmhE,GAAM,CAACnyF,KAKzB,CACIyvtB,EAAQ,GAAG/+rB,UAAUh1P,SAASskO,KAC9Bx3P,KAAKuuZ,qBAAoB,GAEpB04jB,EAAQA,EAAQ7j9B,OAAS,GAAG8kR,UAAUh1P,SAASskO,MACpDx3P,KAAKyuZ,iBAAgB,EAE7B,CACJ,CACJ,EACAyT,EAAgBvxZ,UAAUmy8B,iBAAmB,SAAUnn3B,GACnD,IAAMowO,GAAkB/rU,KAAK0qe,aAAe3+J,GAAkB/rU,KAAK+q8B,WAC9D/q8B,KAAK2+8B,UAAY3+8B,KAAKmi9B,UAAUht8B,QAAQ+yQ,UAAUh1P,SAASk/O,MAC5D,IAAM25D,GAAkB/rU,KAAK6g9B,UAAY7g9B,KAAK6g9B,QAAU,IAAQ90oB,GAAkB/rU,KAAK8g9B,UAAY9g9B,KAAK8g9B,QAAU,EAAI,CAClH,IAAIsG,EAAqBpn9B,KAAKum9B,wBAAwBvm9B,KAAK0qe,YACvDntG,EAAU,IAAI97X,KAAK,IAAIA,MAAM2l9B,GAAoB1j9B,QAAQ0j9B,EAAmB9k9B,WAAatC,KAAK6g9B,QAAU,KACxGrjlB,EAAU,IAAI/7X,KAAK,IAAIA,MAAM2l9B,GAAoB1j9B,QAAQ0j9B,EAAmB9k9B,WAAatC,KAAK8g9B,QAAU,KAC5GvjlB,GAAYxxD,GAAkB/rU,KAAK6g9B,UAAY7g9B,KAAK6g9B,QAAU,EAAKtjlB,EAAU,KAC7EC,GAAYzxD,GAAkB/rU,KAAK8g9B,UAAY9g9B,KAAK8g9B,QAAU,EAAKtjlB,EAAU,KAClD,SAAvBx9X,KAAK2nZ,eACLpqB,EAAUxxD,GAAkBwxD,GAAW,KAAO,IAAI97X,KAAK87X,EAAQn9X,cAAem9X,EAAQp9X,WAAY,GAClGq9X,EAAUzxD,GAAkByxD,GAAW,KAAO,IAAI/7X,KAAK+7X,EAAQp9X,cAAeo9X,EAAQr9X,WAAY,IAEtE,WAAvBH,KAAK2nZ,gBACVpqB,EAAUxxD,GAAkBwxD,GAAW,KAAO,IAAI97X,KAAK87X,EAAQn9X,cAAgB,EAAG,GAAI,GACtFo9X,EAAUzxD,GAAkByxD,GAAW,KAAO,IAAI/7X,KAAK+7X,EAAQp9X,cAAe,EAAG,IAIrF,IAFA,IACIin9B,OAAS,EACJ/38B,EAAK,EAAGg48B,EAFH3r3B,EAASnrF,iBAAiB,IAAMis8B,IAAW,OAEnBnt8B,EAAKg48B,EAAUlk9B,OAAQkM,IAAM,CAC/D,IAAIq6U,EAAM29nB,EAAUh48B,GACpB,IAAKq6U,EAAIzhE,UAAUh1P,SAASip7B,OAAexynB,EAAIzhE,UAAUh1P,SAASkvX,KAAa,CAC3E,IAAImjkB,EAAUvl9B,KAAKotZ,WAAW,KAAMzjE,GAKpC,GAJA47nB,EAAUvl9B,KAAKum9B,wBAAwBhB,IAClCx5oB,GAAkBwxD,KAAagolB,KAAaholB,GAAW5zC,EAAIzhE,UAAUh1P,SAASskO,MAC/E+lI,EAAQ75X,QAAQ65X,EAAQj7X,UAAY,IAEnCqnV,EAAIzhE,UAAUh1P,SAASskO,KAAW,CACnC,IAAK+ttB,IAAY6B,EACb,UAECr7oB,GAAkBwxD,KAAagolB,GAAWholB,IAC3C/0G,GAAS,CAACmhE,GAAM,CAACuznB,IAAc1ltB,IAAUqhB,MACzChgC,GAAaswG,YAAYQ,KAExB5d,GAAkByxD,KAAa+nlB,GAAW/nlB,IAC3Ch1G,GAAS,CAACmhE,GAAM,CAACuznB,IAAc1ltB,IAAUqhB,MACzC74Q,KAAKg+8B,kBAAmB,EACxBnluB,GAAaswG,YAAYQ,GACrB5d,GAAkBs7oB,KAAY19nB,EAAIzhE,UAAUh1P,SAAS4uX,OACrDulkB,EAAS19nB,GAGrB,CACJ,CACJ,CACA,IAAK5d,GAAkBs7oB,GACnB,GAAIrn9B,KAAK2+8B,SACA3+8B,KAAK0lZ,SAASx9H,UAAUh1P,SAASskO,MAClCgxB,GAAS,CAACxoR,KAAK0lZ,UAAW,CAACy3jB,IAAc3ltB,IAAUqhB,UAGtD,CACD,IAAI0usB,EAAa9x3B,GAAQ4x3B,EAAQ,IAAMnL,MACvCqL,EAAax7oB,GAAkBw7oB,GAAcvn9B,KAAK2g9B,aAAe4G,GACjCr/rB,UAAUh1P,SAAS+o7B,MAO1Cj88B,KAAK6h9B,iBAAiB35rB,UAAUh1P,SAASskO,MAC1CgxB,GAAS,CAACxoR,KAAK6h9B,kBAAmB,CAAC1E,IAAc3ltB,IAAUqhB,MAE1D74Q,KAAK2h9B,gBAAgBz5rB,UAAUh1P,SAASskO,MACzCgxB,GAAS,CAACxoR,KAAK2h9B,iBAAkB,CAACxE,IAAc3ltB,IAAUqhB,MAEzD74Q,KAAK4h9B,iBAAiB15rB,UAAUh1P,SAASskO,MAC1CgxB,GAAS,CAACxoR,KAAK4h9B,kBAAmB,CAACzE,IAAc3ltB,IAAUqhB,OAZ1D74Q,KAAK6h9B,iBAAiB35rB,UAAUh1P,SAASskO,MAC1CgxB,GAAS,CAACxoR,KAAK6h9B,kBAAmB,CAAC1E,IAAc3ltB,IAAUqhB,KAcvE,CAER,OAGA74Q,KAAKg+8B,kBAAmB,CAEhC,EACA97iB,EAAgBvxZ,UAAU418B,wBAA0B,SAAU3k9B,GAE1D,OADgB,IAAIH,KAAKG,EAAMxB,cAAewB,EAAMzB,WAAYyB,EAAMU,UAE1E,EACA4/Z,EAAgBvxZ,UAAUky8B,oBAAsB,WAE5C,IADA,IACSvz8B,EAAK,EAAGk48B,EADHxn9B,KAAK41Z,SAASzgZ,QAAQ3E,iBAAiB,IAAMis8B,IAAN,OAA+BS,KAC9C5t8B,EAAKk48B,EAAUpk9B,OAAQkM,IAAM,CAC/D,IAAIq6U,EAAM69nB,EAAUl48B,GAChBq6U,EAAIzhE,UAAUh1P,SAASgq7B,OACvBj1rB,GAAY,CAAC0hE,GAAM,CAACuznB,IAAc1ltB,IAAUqhB,MAC5ChgC,GAAazlN,IAAIu2T,EAAK,QAAS3pV,KAAKoggB,YAAapggB,MAC5CA,KAAK2+8B,UACN9luB,GAAazlN,IAAIu2T,EAAK,YAAa3pV,KAAKql9B,eAAgBrl9B,MAGpE,CACIA,KAAK2+8B,UACD3+8B,KAAK0lZ,SAASx9H,UAAUh1P,SAASiq7B,MACjCl1rB,GAAY,CAACjoR,KAAK0lZ,UAAW,CAACy3jB,IAAc3ltB,IAAUqhB,MAEtD74Q,KAAKylZ,aAAav9H,UAAUh1P,SAASiq7B,MACrCl1rB,GAAY,CAACjoR,KAAKylZ,cAAe,CAAC03jB,IAAc3ltB,IAAUqhB,QAI1D74Q,KAAK6h9B,iBAAiB35rB,UAAUh1P,SAASiq7B,MACzCl1rB,GAAY,CAACjoR,KAAK6h9B,kBAAmB,CAAC1E,IAAc3ltB,IAAUqhB,MAE9D74Q,KAAK4h9B,iBAAiB15rB,UAAUh1P,SAASiq7B,MACzCl1rB,GAAY,CAACjoR,KAAK4h9B,kBAAmB,CAACzE,IAAc3ltB,IAAUqhB,MAE9D74Q,KAAK2h9B,gBAAgBz5rB,UAAUh1P,SAASiq7B,MACxCl1rB,GAAY,CAACjoR,KAAK2h9B,iBAAkB,CAACxE,IAAc3ltB,IAAUqhB,MAGzE,EACAqpJ,EAAgBvxZ,UAAU6w8B,aAAe,WACrC,IAAIn87B,EAAS,CAAEzY,KAAM,OAAQqmU,SAAU,SACvC,GAAKlH,GAAkB/rU,KAAK+q8B,WAAch/nB,GAAkB/rU,KAAK0qe,YAU7D1qe,KAAK41Z,SAASzgZ,QAAQykB,cAAc,IAAMqj7B,KAASrz6B,YAAc5pC,KAAK+zZ,KAAKhuD,YAAY,oBAVb,CAC1E,IAAI7iW,EAASU,KAAKmgB,MAAMngB,KAAK8Y,KAAK1c,KAAKum9B,wBAAwBvm9B,KAAK0qe,YAAYhpe,UAC5E1B,KAAKum9B,wBAAwBvm9B,KAAK+q8B,UAAUrp8B,WAAa,QAA0B,EAClFqqU,GAAkB/rU,KAAKyn9B,kBACxBvk9B,GAAgBlD,KAAKyn9B,eACrBzn9B,KAAKyn9B,eAAiB,MAE1Bzn9B,KAAK41Z,SAASzgZ,QAAQykB,cAAc,IAAMqj7B,KAASrz6B,YAAc1mC,EAAM4T,WAAa,IAAM9W,KAAK+zZ,KAAKhuD,YAAY,OACpH,CAIK/lW,KAAK2+8B,UAeD5yoB,GAAkB/rU,KAAK0qe,YAIxB1qe,KAAKii9B,YAAY9s8B,QAAQy0B,YAAc5pC,KAAK+zZ,KAAKhuD,YAAY,cAH7D/lW,KAAKii9B,YAAY9s8B,QAAQy0B,YAAc5pC,KAAKujZ,UAAU9jE,WAAWz/U,KAAK0qe,WAAYrld,GAKjF0mT,GAAkB/rU,KAAK+q8B,WAAch/nB,GAAkB/rU,KAAK0qe,YAI7D1qe,KAAKmi9B,UAAUht8B,QAAQy0B,YAAc5pC,KAAK+zZ,KAAKhuD,YAAY,YAH3D/lW,KAAKmi9B,UAAUht8B,QAAQy0B,YAAc5pC,KAAKujZ,UAAU9jE,WAAWz/U,KAAK+q8B,SAAU1l7B,KArB7E0mT,GAAkB/rU,KAAK+q8B,WAAch/nB,GAAkB/rU,KAAK0qe,YAI7D1qe,KAAK41Z,SAASzgZ,QAAQykB,cAAc,IAAM4i7B,KAAU5y6B,YAAc5pC,KAAK+zZ,KAAKhuD,YAAY,YAHxF/lW,KAAK41Z,SAASzgZ,QAAQykB,cAAc,IAAM4i7B,KAAU5y6B,YAAc5pC,KAAKujZ,UAAU9jE,WAAWz/U,KAAK+q8B,SAAU1l7B,GAK1G0mT,GAAkB/rU,KAAK0qe,YAIxB1qe,KAAK41Z,SAASzgZ,QAAQykB,cAAc,IAAM2i7B,KAAY3y6B,YAAc5pC,KAAK+zZ,KAAKhuD,YAAY,cAH1F/lW,KAAK41Z,SAASzgZ,QAAQykB,cAAc,IAAM2i7B,KAAY3y6B,YAAc5pC,KAAKujZ,UAAU9jE,WAAWz/U,KAAK0qe,WAAYrld,KAoBlHrlB,KAAKqj9B,eAAerj9B,KAAK0qe,aAAe1qe,KAAKqj9B,eAAerj9B,KAAK+q8B,YAC/Dh/nB,GAAkB/rU,KAAK0qe,cAAgB1qe,KAAK0qe,YAAc1qe,KAAK4pD,MACzDmiR,GAAkB/rU,KAAK+q8B,YAAc/q8B,KAAK+q8B,UAAY/q8B,KAAKitC,MAC1D8+R,GAAkB/rU,KAAK0qe,cAAgB3+J,GAAkB/rU,KAAK+q8B,YAC5D/q8B,KAAK0qe,YAAc1qe,KAAK+q8B,YAC/B/q8B,KAAK2+8B,UAMN3+8B,KAAKii9B,YAAY9s8B,QAAQy0B,YAAc5pC,KAAK+zZ,KAAKhuD,YAAY,cAC7D/lW,KAAKmi9B,UAAUht8B,QAAQy0B,YAAc5pC,KAAK+zZ,KAAKhuD,YAAY,YAC3D/lW,KAAK41Z,SAASzgZ,QAAQykB,cAAc,IAAMqj7B,KAASrz6B,YAAc5pC,KAAK+zZ,KAAKhuD,YAAY,kBAPvF/lW,KAAK41Z,SAASzgZ,QAAQykB,cAAc,IAAMqj7B,KAASrz6B,YAAc5pC,KAAK+zZ,KAAKhuD,YAAY,gBACvF/lW,KAAK41Z,SAASzgZ,QAAQykB,cAAc,IAAM2i7B,KAAY3y6B,YAAc5pC,KAAK+zZ,KAAKhuD,YAAY,cAC1F/lW,KAAK41Z,SAASzgZ,QAAQykB,cAAc,IAAM4i7B,KAAU5y6B,YAAc5pC,KAAK+zZ,KAAKhuD,YAAY,cAQ5F/lW,KAAK41Z,SAASzgZ,QAAQykB,cAAc,mBACpC55B,KAAK41Z,SAASzgZ,QAAQykB,cAAc,iBAAiBgQ,YACR,KAAzC5pC,KAAK+zZ,KAAKhuD,YAAY,eAAwB/lW,KAAK+zZ,KAAKhuD,YAAY,eAAiB,eAEjG,EACAm8D,EAAgBvxZ,UAAU2sb,gBAAkB,WACxCt9b,KAAK0qe,WAAa,KAClB1qe,KAAK+q8B,SAAW,KAChB/q8B,KAAK0gJ,WACL1gJ,KAAKgn9B,2BACDhn9B,KAAK41Z,WACD51Z,KAAK41Z,SAASzgZ,QAAQ3E,iBAAiB,IAAM4iQ,KAAUhwQ,OAAS,GAChE6kR,GAAYjoR,KAAK41Z,SAASzgZ,QAAQ3E,iBAAiB,IAAM4iQ,KAAW,CAAC+osB,IAAWC,IAAShpsB,MAEzFpzQ,KAAK41Z,SAASzgZ,QAAQ3E,iBAAiB,IAAMws8B,KAAW558B,OAAS,GACjE6kR,GAAYjoR,KAAK41Z,SAASzgZ,QAAQ3E,iBAAiB,IAAMws8B,KAAYA,KAErEh98B,KAAK41Z,SAASzgZ,QAAQ3E,iBAAiB,IAAM8r8B,KAAYl58B,OAAS,GAClE6kR,GAAYjoR,KAAK41Z,SAASzgZ,QAAQ3E,iBAAiB,IAAM8r8B,KAAa,CAACA,MAGnF,EACAp6iB,EAAgBvxZ,UAAUy18B,sBAAwB,SAAUz8nB,EAAKzpV,EAAMum9B,EAAaC,GAChF,GAAI/8nB,EAAK,CACL,IAAI70U,EAAQ9U,KAAKujZ,UAAU9jE,WAAWv/U,EAAM,CAAE0M,KAAM,OAAQqmU,SAAU,UACjElH,GAAkB26oB,IAAaA,EAChC/8nB,EAAI30T,aAAa,aAAc,qCAA4ClgB,GAG3E60U,EAAI30T,aAAa,aAAc,gBAAkByx7B,EAAc,QAAU,OAAS,YAAmB3x8B,GAEzG60U,EAAI30T,aAAa,gBAAiB,OACtC,CACJ,EACAktY,EAAgBvxZ,UAAUq28B,yBAA2B,WACjD,GAAIhn9B,KAAK41Z,SAAU,CAEf,IADA,IACStmZ,EAAK,EAAGo93B,EADL1s4B,KAAK41Z,SAASzgZ,QAAQ3E,iBAAiB,IAAM2r8B,KACvB7s8B,EAAKo93B,EAAQtp4B,OAAQkM,IAAM,EACrDq6U,EAAM+ijB,EAAQp93B,IACd0lB,aAAa,gBAAiB,SAClC20T,EAAI50T,gBAAgB,aACxB,CAEA,IADA,IACSugB,EAAK,EAAGq31B,EADP3s4B,KAAK41Z,SAASzgZ,QAAQ3E,iBAAiB,IAAM4r8B,KACzB9m6B,EAAKq31B,EAAMvp4B,OAAQkyC,IAAM,CACnD,IAAIq0S,KAAMgjjB,EAAMr31B,IACZtgB,aAAa,gBAAiB,SAClC20T,EAAI50T,gBAAgB,aACxB,CACJ,CACJ,EACAmtY,EAAgBvxZ,UAAUgz8B,sBAAwB,SAAUho3B,GACpDA,EAASusL,UAAUh1P,SAAS+o7B,MAC5Bj88B,KAAK0jZ,gBAAkB1jZ,KAAK2g9B,aAC5B3g9B,KAAKqxG,YAAcrxG,KAAKyj9B,mBACxBzj9B,KAAKylZ,aAAezlZ,KAAK0h9B,gBACzB1h9B,KAAK0lZ,SAAW1lZ,KAAK2h9B,kBAGrB3h9B,KAAK0jZ,gBAAkB1jZ,KAAKsh9B,cAC5Bth9B,KAAKqxG,YAAcrxG,KAAK0j9B,oBACxB1j9B,KAAKylZ,aAAezlZ,KAAK4h9B,iBACzB5h9B,KAAK0lZ,SAAW1lZ,KAAK6h9B,kBAEzB7h9B,KAAK6lZ,eAAiBlqT,EAAS/hE,cAAc,IAAMmvgB,KACnD/oiB,KAAK+nZ,iBAAmBv9D,GAAO,IAAMu+M,IAAU,SAAUptc,GACzD37F,KAAK0nC,MAAQi0D,EAAS/hE,cAAc,IAAMmvgB,KAASpzgB,qBAAqB,SAAS,GACjF31B,KAAK2lZ,mBAAqBhqT,EAAS/hE,cAAc,IAAMg6qB,IAAS,KAAOgpQ,KACvE588B,KAAKulZ,cAAgB5pT,EAAS/hE,cAAc,IAAMg6qB,IACtD,EACA1xS,EAAgBvxZ,UAAUuu8B,aAAe,SAAU7+8B,GAC/CA,EAAEgO,iBACF,IAAIs7U,EAAMl0P,GAAQp1F,EAAEgI,OAAQ,IAAM4z8B,KAClCtynB,EAAM5d,GAAkB4d,GAAOl0P,GAAQp1F,EAAEgI,OAAQ,IAAM6z8B,KAAiBvynB,EACxE3pV,KAAK2j9B,sBAAsBh6nB,GAC3B3pV,KAAK8oZ,iBAAiBzoZ,IACjB0rU,GAAkB/rU,KAAK0qe,aAAe3+J,GAAkB/rU,KAAK+q8B,WAC9D/q8B,KAAK8i9B,iBAAiBn5nB,GAE1B3pV,KAAK0n9B,cAAc/9nB,EACvB,EAEAu4E,EAAgBvxZ,UAAUgy8B,iBAAmB,SAAUh5nB,GACnD3pV,KAAKgi9B,sBACLhi9B,KAAKqh9B,YAAY,CAACrh9B,KAAK41Z,SAASzgZ,QAAQykB,cAAc,IAAM6i7B,OACxDz88B,KAAKmi9B,UAAUht8B,QAAQ+yQ,UAAUh1P,SAASk/O,MAC1CpyQ,KAAK8i9B,iBAAiB9i9B,KAAK41Z,SAASzgZ,QAAQykB,cAAc,IAAM6i7B,MAEhEz88B,KAAKmi9B,UAAUht8B,QAAQ+yQ,UAAUh1P,SAASk/O,MAC1CpyQ,KAAK+i9B,kBAEL/i9B,KAAK2nZ,gBAAkB3nZ,KAAKssE,OAC5BtsE,KAAKwi9B,yBAETxi9B,KAAKyi9B,mBACT,EACAvgjB,EAAgBvxZ,UAAU+28B,cAAgB,SAAU/r3B,EAAUgs3B,QACvC,IAAfA,IAAyBA,EAAa,MACtChs3B,EAASusL,UAAUh1P,SAASgp7B,KAC5Bl88B,KAAK0j9B,oBAAsB,IAAIji9B,OAAOkm9B,GAA0B3n9B,KAAKqxG,cAGrErxG,KAAKyj9B,mBAAqB,IAAIhi9B,MAAMzB,KAAKqxG,aAE7CrxG,KAAK+h9B,qBACiB,UAAf/h9B,KAAKssE,OACLtsE,KAAK2g9B,aAAa/m7B,cAAc,cAAcsuP,UAAUh1P,SAAS,YACjElzB,KAAKsh9B,cAAc1n7B,cAAc,cAAcsuP,UAAUh1P,SAAS,YACjD,SAAflzB,KAAKssE,OACHtsE,KAAK2g9B,aAAa/m7B,cAAc,cAAcsuP,UAAUh1P,SAAS,WACjElzB,KAAKsh9B,cAAc1n7B,cAAc,cAAcsuP,UAAUh1P,SAAS,WACrD,WAAflzB,KAAKssE,OACHtsE,KAAK2g9B,aAAa/m7B,cAAc,cAAcsuP,UAAUh1P,SAAS,aACjElzB,KAAKsh9B,cAAc1n7B,cAAc,cAAcsuP,UAAUh1P,SAAS,aACtElzB,KAAK2+8B,WACR3+8B,KAAKwi9B,yBAETxi9B,KAAKyi9B,oBACLzi9B,KAAKqh9B,YAAY,CAAC1l3B,GACtB,EACAumU,EAAgBvxZ,UAAUqu8B,aAAe,SAAUjo7B,GAC/CA,EAAM1oB,iBACN,IAAIs7U,EAAMl0P,GAAQ1+D,EAAM1uB,OAAQ,IAAM4z8B,KACtCtynB,EAAM5d,GAAkB4d,GAAOl0P,GAAQ1+D,EAAM1uB,OAAQ,IAAM6z8B,KAAiBvynB,EAC5E3pV,KAAK2j9B,sBAAsBh6nB,GAC3B3pV,KAAKgpZ,aAAajyX,IACbg1S,GAAkB/rU,KAAK0qe,aAAe3+J,GAAkB/rU,KAAK+q8B,WAC9D/q8B,KAAK8i9B,iBAAiBn5nB,GAE1B3pV,KAAK0n9B,cAAc/9nB,EACvB,EACAu4E,EAAgBvxZ,UAAU0qb,YAAc,WACpC,QAAKtvH,GAAkB/rU,KAAK41Z,YAAa51Z,KAAK41Z,SAASzgZ,QAAQ+yQ,UAAUh1P,SAASs5qB,KAItF,EACAtqS,EAAgBvxZ,UAAUi38B,kBAAoB,WAC1C,IAAIC,EAAiB7n9B,KAAKc,cAAc,MAAO,CAAEC,UA9oEjC,gBA+oEhB,GAAKf,KAAK2+8B,SAYL,CACD,IAAImJ,EAAS9n9B,KAAKc,cAAc,SAAU,CAAEC,UAvpExC,cAwpEAgn9B,EAAW/n9B,KAAKc,cAAc,SAAU,CAAEC,UAAWs78B,MACzDr88B,KAAKii9B,YAAc,IAAIn+rB,GAAO,CAAE/uQ,QAAS/U,KAAK+zZ,KAAKhuD,YAAY,eAAiBginB,GAChF/n9B,KAAKmi9B,UAAY,IAAIr+rB,GAAO,CAAE/uQ,QAAS/U,KAAK+zZ,KAAKhuD,YAAY,aAAe+hnB,GAC5ED,EAAen27B,YAAYq27B,GAC3BF,EAAen27B,YAAYo27B,EAC/B,KAnBoB,CAChB,IAAIxJ,EAAat+8B,KAAKc,cAAc,IAAK,CAAEC,UAAWw78B,MAClDgC,EAAWv+8B,KAAKc,cAAc,IAAK,CAAEC,UAAWy78B,MAChDwL,EAAaho9B,KAAKc,cAAc,OAAQ,CAAEC,UA9mEzC,0BA+mELuK,GAAWgz8B,EAAY,CAAE,cAAe,OAAQ,YAAa,YAAa,aAAc,aAAc,KAAQ,WAC9Ghz8B,GAAWiz8B,EAAU,CAAE,cAAe,OAAQ,YAAa,YAAa,aAAc,WAAY,KAAQ,WAC1GsJ,EAAen27B,YAAY4s7B,GAC3BuJ,EAAen27B,YAAYs27B,GAC3BH,EAAen27B,YAAY6s7B,GAC3BD,EAAW106B,YAAc5pC,KAAK+zZ,KAAKhuD,YAAY,cAC/Cw4mB,EAAS306B,YAAc5pC,KAAK+zZ,KAAKhuD,YAAY,WACjD,CASA,OAAO8hnB,CACX,EACA3ljB,EAAgBvxZ,UAAUs38B,aAAe,WACjCjo9B,KAAKq0Z,WACAtoF,GAAkB/rU,KAAKqg9B,qBAAwBt0oB,GAAkB/rU,KAAKsg9B,oBACvEtg9B,KAAK0qe,WAAa1qe,KAAKqg9B,mBACvBrg9B,KAAK+q8B,SAAW/q8B,KAAKsg9B,iBACrBtg9B,KAAK0gJ,WACL1gJ,KAAKqzZ,gBAITrzZ,KAAKqzZ,cACLrzZ,KAAKog9B,aACLpg9B,KAAKisV,cAAc,CAAE2jE,UAAW,OAAQ,GACxC5vZ,KAAKisV,cAAc,CAAE4jE,QAAS,OAAQ,GACtC7vZ,KAAK0qe,WAAa,KAClB1qe,KAAK+q8B,SAAW,KAChB/q8B,KAAK0gJ,WACL1gJ,KAAK00Z,cAET10Z,KAAKisV,cAAc,CAAE/zD,SAAS,IAAS,GACvCvgK,GAAMwnR,WAAWn/Y,KAAKk4R,QAASl4R,KAAKq3S,cACpCr3S,KAAK6+V,YACT,EACAqjE,EAAgBvxZ,UAAUqld,eAAiB,WACvCh2d,KAAK4pD,IAAMmiR,GAAkB/rU,KAAK4pD,QAAW5pD,KAAK4pD,IAAO5pD,KAAK4pD,IAAM,IAAInoD,KAAK,KAAM,EAAG,GAAKzB,KAAK4pD,IAChG5pD,KAAKitC,IAAM8+R,GAAkB/rU,KAAKitC,QAAWjtC,KAAKitC,IAAOjtC,KAAKitC,IAAM,IAAIxrC,KAAK,KAAM,GAAI,IAAMzB,KAAKitC,IAC5FjtC,KAAK4pD,KAAO5pD,KAAKitC,KAIlB8+R,GAAkB/rU,KAAK6g9B,UAAa90oB,GAAkB/rU,KAAK8g9B,UACxD9g9B,KAAK8g9B,QAAU,GAAK9g9B,KAAK6g9B,QAAU,GAAM7g9B,KAAK6g9B,QAAU7g9B,KAAK8g9B,UAC7D9g9B,KAAK8g9B,QAAU,OAGlB/0oB,GAAkB/rU,KAAK6g9B,UAAY7g9B,KAAK6g9B,QAAU,IACnD7g9B,KAAK6g9B,QAAU,OAEd90oB,GAAkB/rU,KAAK8g9B,UAAY9g9B,KAAK8g9B,QAAU,IACnD9g9B,KAAK8g9B,QAAU,OAZf9g9B,KAAKio9B,cAcb,EACA/ljB,EAAgBvxZ,UAAUu38B,oBAAsB,WACvCn8oB,GAAkB/rU,KAAK0qe,eACnB1qe,KAAK0qe,aAAe1qe,KAAK4pD,KAC1B5pD,KAAK0qe,WAAa1qe,KAAK4pD,IACvB5pD,KAAK0gJ,aAEC1gJ,KAAK0qe,aAAe1qe,KAAK4pD,MAAQ5pD,KAAK0qe,aAAe1qe,KAAKitC,MAChEjtC,KAAK0qe,WAAa1qe,KAAKitC,MAG1B8+R,GAAkB/rU,KAAK+q8B,aACnB/q8B,KAAK+q8B,UAAY/q8B,KAAKitC,KACvBjtC,KAAK+q8B,SAAW/q8B,KAAKitC,IACrBjtC,KAAK0gJ,aAEC1gJ,KAAK+q8B,UAAY/q8B,KAAK4pD,MAC5B5pD,KAAK+q8B,SAAW/q8B,KAAK4pD,IACrB5pD,KAAK0gJ,aAGb1gJ,KAAKmo9B,oBACT,EACAjmjB,EAAgBvxZ,UAAUy38B,cAAgB,WACtCpo9B,KAAKmo9B,oBACT,EACAjmjB,EAAgBvxZ,UAAUw38B,mBAAqB,WAC3C,IAAKp8oB,GAAkB/rU,KAAK0qe,cAAgB3+J,GAAkB/rU,KAAK+q8B,UAAW,CAC1E,IAAI7n8B,EAASU,KAAKmgB,MAAMngB,KAAK8Y,KAAK1c,KAAKum9B,wBAAwBvm9B,KAAK0qe,YAAYhpe,UAC5E1B,KAAKum9B,wBAAwBvm9B,KAAK+q8B,UAAUrp8B,WAAa,QAA0B,EACvF,IAAMqqU,GAAkB/rU,KAAK6g9B,UAAY7g9B,KAAK6g9B,QAAU,KAAQ398B,GAASlD,KAAK6g9B,SAC1E,GAAI7g9B,KAAKq0Z,WAAY,CACjB,IAAIn0Z,EAAO,IAAIuB,MAAMzB,KAAK0qe,YAC1Bxqe,EAAKwD,QAAQxD,EAAKoC,WAAatC,KAAK6g9B,QAAU,KACzC3g9B,GAAQF,KAAKitC,KACdjtC,KAAK+q8B,SAAW/q8B,KAAKitC,IACrBjtC,KAAK0gJ,aAGL1gJ,KAAK+q8B,SAAW7q8B,EAChBF,KAAK0gJ,WAEb,MAEI1gJ,KAAK0qe,WAAa,KAClB1qe,KAAK+q8B,SAAW,KAChB/q8B,KAAK0gJ,WAGPqrL,GAAkB/rU,KAAK8g9B,YAAY9g9B,KAAK8g9B,QAAU,IAAQ598B,GAASlD,KAAK8g9B,UACtE9g9B,KAAKq0Z,YACLr0Z,KAAK+q8B,SAAW,IAAItp8B,MAAMzB,KAAK0qe,YAC/B1qe,KAAK+q8B,SAASrn8B,QAAQ1D,KAAK+q8B,SAASzo8B,WAAatC,KAAK8g9B,QAAU,IAChE9g9B,KAAK0gJ,aAGL1gJ,KAAK0qe,WAAa,KAClB1qe,KAAK+q8B,SAAW,KAChB/q8B,KAAK0gJ,YAGjB,CACJ,EACAwhR,EAAgBvxZ,UAAU038B,eAAiB,WACvCro9B,KAAK0jZ,gBAAkB1jZ,KAAKc,cAAc,OAC1Cd,KAAK0jZ,gBAAgBx7H,UAAU90P,IAAIqp7B,KAC/Bz88B,KAAKq4V,WACLr4V,KAAK0jZ,gBAAgBx7H,UAAU90P,IA3uEjC,SA6uEF9nB,GAAWtL,KAAK0jZ,gBAAiB,CAAE,YAAa,aAChD58V,EAAOn2C,UAAUgzY,aAAahkZ,KAAKK,MACnC8mD,EAAOn2C,UAAUizY,cAAcjkZ,KAAKK,KACxC,EACAkia,EAAgBvxZ,UAAUpO,YAAc,SAAU2zC,EAAOkD,GACrD,OAAIlD,EAAM/1C,aAAei5C,EAAIj5C,YAAc+1C,EAAM91C,gBAAkBg5C,EAAIh5C,aAI3E,EACA8ha,EAAgBvxZ,UAAU608B,WAAa,SAAUtv6B,EAAOkD,GACpD,OAAIlD,EAAM91C,gBAAkBg5C,EAAIh5C,aAIpC,EACA8ha,EAAgBvxZ,UAAU238B,aAAe,SAAUpy6B,EAAOkD,GACtD,IAAIg7C,EAAYl+C,EAAM91C,cAClBmo9B,EAAUnv6B,EAAIh5C,cAClB,OAAKg0F,EAAaA,EAAY,KAAUm03B,EAAWA,EAAU,EAIjE,EACArmjB,EAAgBvxZ,UAAU638B,sBAAwB,WAC1Cxo9B,KAAKuC,YAAYvC,KAAK4pD,IAAK5pD,KAAKitC,OAASjtC,KAAKqxG,aAAerxG,KAAKitC,KAAOjtC,KAAKuC,YAAYvC,KAAKqxG,YAAarxG,KAAKitC,MACjHjtC,KAAKqxG,YAAc,IAAI5vG,MAAMzB,KAAKitC,KAClCjtC,KAAKqxG,YAAY3tG,QAAQ,GACzB1D,KAAKqxG,YAAYnvG,SAASlC,KAAKqxG,YAAYlxG,WAAa,IAEnDH,KAAKqxG,YAAcrxG,KAAK4pD,MAC7B5pD,KAAKqxG,YAAc,IAAI5vG,KAAKzB,KAAKilZ,WAAWjlZ,KAAK4pD,MAEzD,EACAs4W,EAAgBvxZ,UAAU838B,gBAAkB,WACxC,GAAK18oB,GAAkB/rU,KAAK+q8B,WAAch/nB,GAAkB/rU,KAAK0qe,aAAgB1qe,KAAKuC,YAAYvC,KAAK+q8B,SAAU/q8B,KAAKqxG,cAC9GrxG,KAAKqj9B,eAAerj9B,KAAK+q8B,WAAc/q8B,KAAKqj9B,eAAerj9B,KAAK0qe,YAMpE,OAFA1qe,KAAKqxG,YAAY3tG,QAAQ,QACzB1D,KAAKqxG,YAAYnvG,SAASlC,KAAKqxG,YAAYlxG,WAAa,GAG5D,GAPIH,KAAKqxG,YAAc,IAAI5vG,MAAMzB,KAAK+q8B,WAOhCh/nB,GAAkB/rU,KAAK0qe,cAAgB1qe,KAAK0qe,YAAc1qe,KAAK4pD,MAC5DmiR,GAAkB/rU,KAAK+q8B,YAAc/q8B,KAAK+q8B,UAAY/q8B,KAAKitC,MAC1D8+R,GAAkB/rU,KAAK0qe,cAAgB3+J,GAAkB/rU,KAAK+q8B,YAAe/q8B,KAAK0qe,YAAc1qe,KAAK+q8B,SAAW,CACtH/q8B,KAAKqxG,YAAc,IAAI5vG,MAAK,IAAIA,MAAOgB,SAAS,EAAG,EAAG,EAAG,IACzDzC,KAAKqxG,YAAY3tG,QAAQ,GACzB,IAAIuF,EAAQjJ,KAAKqxG,YAAYlxG,WAAa,EAC1CH,KAAKqxG,YAAYnvG,SAAS+G,EAC9B,CACJ,EACAi5Z,EAAgBvxZ,UAAU+38B,eAAiB,WACvC,GAAK38oB,GAAkB/rU,KAAK+q8B,WAAch/nB,GAAkB/rU,KAAK0qe,aAAgB1qe,KAAKwl9B,WAAWxl9B,KAAK+q8B,SAAU/q8B,KAAKqxG,cAC7GrxG,KAAKqj9B,eAAerj9B,KAAK+q8B,WAAc/q8B,KAAKqj9B,eAAerj9B,KAAK0qe,YADxE,CAKI1qe,KAAKqxG,YAAYnvG,SAAS,GAC1B,IAAIupZ,EAAKzrZ,KAAKqxG,YAAYjxG,cAAgB,EAC1CJ,KAAKqxG,YAAYxM,YAAY4mT,EAEjC,MAPIzrZ,KAAKqxG,YAAc,IAAI5vG,MAAMzB,KAAK+q8B,YAQhCh/nB,GAAkB/rU,KAAK+q8B,YAAc/q8B,KAAK+q8B,UAAY/q8B,KAAKitC,MACvD8+R,GAAkB/rU,KAAK0qe,cAAgB3+J,GAAkB/rU,KAAK+q8B,YAAe/q8B,KAAK0qe,YAAc1qe,KAAK+q8B,WACtGh/nB,GAAkB/rU,KAAK0qe,cAAgB1qe,KAAK0qe,YAAc1qe,KAAK4pD,OACpE5pD,KAAKqxG,YAAc,IAAI5vG,MAAK,IAAIA,MAAOgB,SAAS,EAAG,EAAG,EAAG,IACzDzC,KAAKqxG,YAAYnvG,SAAS,GAC1BlC,KAAKqxG,YAAYxM,YAAY7kG,KAAKqxG,YAAYjxG,cAAgB,GAEtE,EACA8ha,EAAgBvxZ,UAAUg48B,iBAAmB,WACzC,GAAK58oB,GAAkB/rU,KAAK+q8B,WAAch/nB,GAAkB/rU,KAAK0qe,aAAgB1qe,KAAKso9B,aAAato9B,KAAK+q8B,SAAU/q8B,KAAKqxG,cAC/GrxG,KAAKqj9B,eAAerj9B,KAAK+q8B,WAAc/q8B,KAAKqj9B,eAAerj9B,KAAK0qe,YADxE,CAKI,IAAIk+e,EAAQ5o9B,KAAKqxG,YAAYjxG,cAAgB,GAC7CJ,KAAKqxG,YAAYxM,YAAY+j3B,EAEjC,MANI5o9B,KAAKqxG,YAAc,IAAI5vG,MAAMzB,KAAK+q8B,YAO/Bh/nB,GAAkB/rU,KAAK0qe,cAAgB3+J,GAAkB/rU,KAAK+q8B,YAAe/q8B,KAAK0qe,YAAc1qe,KAAK+q8B,WACnGh/nB,GAAkB/rU,KAAK+q8B,YAAc/q8B,KAAK+q8B,UAAY/q8B,KAAKitC,MAC3D8+R,GAAkB/rU,KAAK0qe,cAAgB1qe,KAAK0qe,YAAc1qe,KAAK4pD,OACpE5pD,KAAKqxG,YAAc,IAAI5vG,MAAK,IAAIA,MAAOgB,SAAS,EAAG,EAAG,EAAG,IACzDzC,KAAKqxG,YAAYxM,YAAY7kG,KAAKqxG,YAAYjxG,cAAgB,IAEtE,EACA8ha,EAAgBvxZ,UAAUk48B,iBAAmB,WACpC98oB,GAAkB/rU,KAAK0qe,aAexB1qe,KAAKqxG,YAAc,IAAI5vG,MAAK,IAAIA,MAAOgB,SAAS,EAAG,EAAG,EAAG,IACzDzC,KAAKwo9B,0BAfAz8oB,GAAkB/rU,KAAKitC,MAAQjtC,KAAKuC,YAAYvC,KAAK0qe,WAAY1qe,KAAKitC,MACvEjtC,KAAKqxG,YAAc,IAAI5vG,MAAMzB,KAAKitC,KAClCjtC,KAAKqxG,YAAY3tG,QAAQ,GACzB1D,KAAKqxG,YAAYnvG,SAASlC,KAAKqxG,YAAYlxG,WAAa,IAEjDH,KAAK0qe,YAAc1qe,KAAK4pD,KAAO5pD,KAAK0qe,YAAc1qe,KAAKitC,MAC3DjtC,KAAKqj9B,eAAerj9B,KAAK0qe,YAI5B1qe,KAAKqxG,YAAc,IAAI5vG,MAAMzB,KAAK0qe,YAHlC1qe,KAAKqxG,YAAc,IAAI5vG,MAAK,IAAIA,MAAOgB,SAAS,EAAG,EAAG,EAAG,MAU3DspU,GAAkB/rU,KAAK+q8B,YAAc/q8B,KAAK+q8B,UAAY/q8B,KAAKitC,MACxD8+R,GAAkB/rU,KAAK0qe,cAAgB1qe,KAAK0qe,YAAc1qe,KAAK4pD,MAC9DmiR,GAAkB/rU,KAAK0qe,cAAgB3+J,GAAkB/rU,KAAK+q8B,YAAe/q8B,KAAK0qe,YAAc1qe,KAAK+q8B,YAC3G/q8B,KAAKqxG,YAAc,IAAI5vG,MAAK,IAAIA,MAAOgB,SAAS,EAAG,EAAG,EAAG,KAE7DzC,KAAKwo9B,uBACT,EACAtmjB,EAAgBvxZ,UAAU6mZ,eAAiB,WACvC,IAAIsxjB,EAAoB9o9B,KAAKc,cAAc,MAAO,CAAEC,UAz2EpC,yBA02EhB,GAAKf,KAAK2+8B,SAiDL,CACI5yoB,GAAkB/rU,KAAK0qe,cACxB1qe,KAAKqxG,YAAc,IAAI5vG,MAAMzB,KAAK0qe,aAEtC5jb,EAAOn2C,UAAUssK,aAAat9K,KAAKK,MACnC8mD,EAAOn2C,UAAU20Y,aAAa3lZ,KAAKK,MACnC8mD,EAAOn2C,UAAUyJ,OAAOza,KAAKK,MAC7B,IAAI+o9B,EAAW/o9B,KAAK0jZ,gBAAgB9pX,cAAc,IAAM6i7B,IAAW,KAAOE,KACtEj3jB,EAAW1lZ,KAAK0jZ,gBAAgB9pX,cAAc,IAAM6i7B,IAAW,KAAOC,KAC1Evp7B,GAAOnzB,KAAK0jZ,gBAAgB9pX,cAAc,IAAM6i7B,IAAW,KAAOI,MAClE788B,KAAK0jZ,gBAAgB9pX,cAAc,IAAM6i7B,IAAW,KAAO7oQ,KAAQlirB,YAAYg0X,GAC/E1lZ,KAAK0jZ,gBAAgB9pX,cAAc,IAAM6i7B,IAAW,KAAO7oQ,KAAQlirB,YAAYq37B,GAC/E711B,GAAQ,CAAC611B,GAAW/o9B,KAAK0jZ,gBAAgB9pX,cAAc,IAAM6i7B,IAAW,KAAO7oQ,MAC/E5zsB,KAAK4i9B,eAAiB5i9B,KAAK0jZ,gBAC3BolkB,EAAkBp37B,YAAY1xB,KAAK0jZ,iBACnC1jZ,KAAK2lZ,mBAAqB3lZ,KAAK0jZ,gBAAgB9pX,cAAc,IAAM6i7B,IAAW,KAAO7oQ,IAAS,KAAOgpQ,IACzG,KAjEoB,CAChB588B,KAAK6o9B,mBACL7o9B,KAAKqo9B,iBACLro9B,KAAKyj9B,mBAAqB,IAAIhi9B,MAAMzB,KAAKqxG,aACzCrxG,KAAK0jZ,gBAAgBx7H,UAAU90P,IAAI6o7B,KACnCj88B,KAAK0h9B,gBAAkB1h9B,KAAK0jZ,gBAAgB9pX,cAAc,IAAMqi7B,IAAe,KAAOU,KACtF388B,KAAK2h9B,gBAAkB3h9B,KAAK0jZ,gBAAgB9pX,cAAc,IAAMqi7B,IAAe,KAAOS,KACtF188B,KAAKgp9B,UAAYhp9B,KAAK0jZ,gBAAgB9pX,cAAc,IAAMqi7B,IAAe,KAAOW,KAChFzp7B,GAAOnzB,KAAK0jZ,gBAAgB9pX,cAAc,IAAMqi7B,IAAe,KAAOY,MACtE788B,KAAK0jZ,gBAAgB9pX,cAAc,IAAMqi7B,IAAe,KAAOroQ,KAAQlirB,YAAY1xB,KAAK2h9B,iBACxF3h9B,KAAK0jZ,gBAAgB9pX,cAAc,IAAMqi7B,IAAe,KAAOroQ,KAAQlirB,YAAY1xB,KAAK0h9B,iBACxFxu1B,GAAQ,CAAClzH,KAAK0h9B,iBAAkB1h9B,KAAK0jZ,gBAAgB9pX,cAAc,IAAMqi7B,IAAe,KAAOroQ,MAC/F5zsB,KAAK2g9B,aAAe3g9B,KAAK0jZ,gBACzB,IAAIulkB,EAAgBjp9B,KAAKc,cAAc,MAAO,CAAEC,UA55ExC,qBA65EJmo9B,EAAiBlp9B,KAAKc,cAAc,MAAO,CAAEC,UA55ExC,sBA65ETko9B,EAAcv37B,YAAY1xB,KAAK2g9B,cAC/BmI,EAAkBp37B,YAAYu37B,GACzBjp9B,KAAK2+8B,UACN9luB,GAAazlN,IAAIpzB,KAAKgp9B,UAAW,QAAShp9B,KAAKmp9B,aAAcnp9B,MAE9C,UAAfA,KAAKk2C,OACLl2C,KAAKyo9B,kBAEU,SAAfzo9B,KAAKk2C,OACLl2C,KAAK0o9B,iBAEU,WAAf1o9B,KAAKk2C,OACLl2C,KAAK2o9B,mBAET3o9B,KAAKqo9B,iBACLro9B,KAAK0j9B,oBAAsB,IAAIji9B,MAAMzB,KAAKqxG,aAC1Cm3K,GAAS,CAACxoR,KAAK0jZ,iBAAkBw4jB,KACjCl88B,KAAKsh9B,cAAgBth9B,KAAK0jZ,gBAC1Bz7H,GAAY,CAACjoR,KAAK2g9B,cAAgB3g9B,KAAK2g9B,aAAa/m7B,cAAc,qBAAsB,YACxFquP,GAAY,CAACjoR,KAAKsh9B,eAAiBth9B,KAAKsh9B,cAAc1n7B,cAAc,qBAAsB,YAC1F55B,KAAK4h9B,iBAAmB5h9B,KAAK0jZ,gBAAgB9pX,cAAc,IAAMsi7B,IAAgB,KAAOS,KACxF388B,KAAK6h9B,iBAAmB7h9B,KAAK0jZ,gBAAgB9pX,cAAc,IAAMsi7B,IAAgB,KAAOQ,KACxF188B,KAAKop9B,WAAapp9B,KAAK0jZ,gBAAgB9pX,cAAc,IAAMsi7B,IAAgB,KAAOU,KAClFzp7B,GAAOnzB,KAAK0jZ,gBAAgB9pX,cAAc,IAAMsi7B,IAAgB,KAAOW,MACvE788B,KAAK0jZ,gBAAgB9pX,cAAc,SAAS5E,aAAa,WAAY,KACrEh1B,KAAK0jZ,gBAAgB9pX,cAAc,IAAMsi7B,IAAgB,KAAOtoQ,KAAQlirB,YAAY1xB,KAAK6h9B,kBACzF7h9B,KAAK0jZ,gBAAgB9pX,cAAc,IAAMsi7B,IAAgB,KAAOtoQ,KAAQlirB,YAAY1xB,KAAK4h9B,kBACzF1u1B,GAAQ,CAAClzH,KAAK4h9B,kBAAmB5h9B,KAAK0jZ,gBAAgB9pX,cAAc,IAAMsi7B,IAAgB,KAAOtoQ,MACjGs1Q,EAAex37B,YAAY1xB,KAAKsh9B,eAChCwH,EAAkBp37B,YAAYw37B,GACzBlp9B,KAAK2+8B,UACN9luB,GAAazlN,IAAIpzB,KAAKop9B,WAAY,QAASpp9B,KAAKqp9B,cAAerp9B,KAEvE,CAkBA,OAAO8o9B,CACX,EACA5mjB,EAAgBvxZ,UAAUw48B,aAAe,SAAU9o9B,GAC3CL,KAAKq7b,gBACLr7b,KAAK0jZ,gBAAkB1jZ,KAAK2g9B,aAC5B3g9B,KAAKwk9B,mBAAmBnk9B,EAAGL,KAAK0jZ,iBAExC,EACAwe,EAAgBvxZ,UAAU6z8B,mBAAqB,SAAUnk9B,EAAG8U,GACxDnV,KAAK0nC,MAAQvyB,EAAQykB,cAAc,SACnC55B,KAAK2lZ,mBAAqBxwY,EAAQykB,cAAc,YAChD55B,KAAK+nZ,iBAAmB5yY,EAAQykB,cAAc,SAC9C55B,KAAKymZ,iBAAmBtxY,EAAQykB,cAAc,SAC9C55B,KAAK6lZ,eAAiB1wY,EAAQykB,cAAc,cAC5C55B,KAAK2j9B,sBAAsBxu8B,GAC3B2xC,EAAOn2C,UAAU02Y,cAAc1nZ,KAAKK,KAAMK,GAC1CL,KAAK8h9B,gBACT,EACA5/iB,EAAgBvxZ,UAAU048B,cAAgB,SAAUhp9B,GAC5CL,KAAKq7b,gBACLr7b,KAAK0jZ,gBAAkB1jZ,KAAKsh9B,cAC5Bth9B,KAAKwk9B,mBAAmBnk9B,EAAGL,KAAK0jZ,iBAExC,EACAwe,EAAgBvxZ,UAAUu8Y,kBAAoB,SAAU7sZ,GAC/CL,KAAK2+8B,WACFlp3B,GAAQp1F,EAAEgI,OAAQ,gCAClBrI,KAAK0jZ,gBAAkB1jZ,KAAK2g9B,aAC5B3g9B,KAAK2j9B,sBAAsB3j9B,KAAK2g9B,gBAGhC3g9B,KAAK0jZ,gBAAkB1jZ,KAAKsh9B,cAC5Bth9B,KAAK2j9B,sBAAsB3j9B,KAAKsh9B,gBAG5C,EASAp/iB,EAAgBvxZ,UAAUg3Y,YAAc,WACpC,OAAO7gW,EAAOn2C,UAAUg3Y,YAAYhoZ,KAAKK,KAC7C,EAEAkia,EAAgBvxZ,UAAU248B,gBAAkB,SAAUxw7B,GAClD,MAAa,SAATA,EACO,OAEO,WAATA,EACE,SAGA,OAEf,EACAopY,EAAgBvxZ,UAAU++Y,eAAiB,SAAUrvZ,GAEjD,GADAL,KAAKsgS,QAAQ,YAAatgS,KAAK2vZ,gBAC1B5jF,GAAkB/rU,KAAK41Z,UAAW,CACnC,IACI98X,EAAO94B,KAAKsp9B,gBAAgBtp9B,KAAK2nZ,eACrC,GAAI3nZ,KAAK2+8B,SACD7l7B,IAAS94B,KAAKssE,OACdtsE,KAAKwi9B,yBACLxi9B,KAAK2i9B,mBACL3i9B,KAAKyi9B,oBACLzi9B,KAAKyk9B,mBAGLzk9B,KAAK+i9B,uBAIT,GAAK/i9B,KAAK2+8B,UAAY7l7B,IAAS94B,KAAKssE,MAkDhCtsE,KAAK8h9B,iBACL9h9B,KAAK+h9B,wBAnDkC,CAEvC,IADU/h9B,KAAK0jZ,gBAAgBx7H,UAAUh1P,SAAS,mBAAqBlzB,KAAK2g9B,aAAe3g9B,KAAKsh9B,iBAChFth9B,KAAK2g9B,gBAAkBtg9B,GAAMA,EAAE86B,cAAcr1B,SAAS,GAAGoiR,UAAUh1P,SAAS,aACnF64S,GAAkB/rU,KAAKgkZ,cAevB3jZ,IAAMA,EAAE86B,cAAcr1B,SAAS,GAAGoiR,UAAUh1P,SAAS,aACrD64S,GAAkB/rU,KAAKgkZ,gBAC5BhkZ,KAAK0j9B,oBAAsB,IAAIji9B,MAAMzB,KAAKqxG,aAC1CrxG,KAAKg0M,OAAS,GACdh0M,KAAKqxG,YAAcrxG,KAAK0j9B,oBACxB1j9B,KAAK2j9B,sBAAsB3j9B,KAAKsh9B,eAChCth9B,KAAK0n9B,cAAc1n9B,KAAKsh9B,eACxBth9B,KAAK2j9B,sBAAsB3j9B,KAAK2g9B,cAC5B3g9B,KAAK0qe,YAAc3+J,GAAkB/rU,KAAK+q8B,YAC7B,UAATjy6B,GAAoB94B,KAAK0qe,WAAWvqe,WAAaH,KAAK0j9B,oBAAoBvj9B,YAC1EH,KAAK0qe,WAAWtqe,eAAiBJ,KAAK0j9B,oBAAoBtj9B,eAG5C,SAAT04B,GAAmB94B,KAAK0qe,WAAWtqe,cAAgBJ,KAAK0j9B,oBAAoBtj9B,eAFjF0mD,EAAOn2C,UAAUk3Y,WAAWloZ,KAAKK,KAAM84B,EAAM,IAAIr3B,MAAMzB,KAAK0qe,aAUhE5jb,EAAOn2C,UAAUk3Y,WAAWloZ,KAAKK,KAAM84B,EAAM94B,KAAKyj9B,oBAEtDzj9B,KAAK0n9B,cAAc1n9B,KAAK2g9B,cACxB3g9B,KAAK8h9B,iBACL9h9B,KAAK+h9B,oBACL/h9B,KAAKoi9B,qBACLpi9B,KAAKgkZ,YAAc,UA1CyB,CAC5ChkZ,KAAKyj9B,mBAAqB,IAAIhi9B,MAAMzB,KAAKqxG,aACzCrxG,KAAKg0M,OAAS,GACdh0M,KAAKqxG,YAAcrxG,KAAKyj9B,mBACxBzj9B,KAAK2j9B,sBAAsB3j9B,KAAK2g9B,cAChC3g9B,KAAK0n9B,cAAc1n9B,KAAK2g9B,cACxB3g9B,KAAK2j9B,sBAAsB3j9B,KAAKsh9B,eAChCx65B,EAAOn2C,UAAUk3Y,WAAWloZ,KAAKK,KAAM84B,EAAM94B,KAAK0j9B,qBAClD,IAAIiE,EAAa3n9B,KAAK0j9B,oBAAsB1j9B,KAAK0j9B,oBAAsB1j9B,KAAKqxG,YAC5ErxG,KAAK0n9B,cAAc1n9B,KAAKsh9B,cAAeqG,GACvC3n9B,KAAK8h9B,iBACL9h9B,KAAK+h9B,oBACL/h9B,KAAKoi9B,qBACLpi9B,KAAKgkZ,YAAc,IACvB,CA8BAhkZ,KAAKyk9B,iBACT,CAMR,CACJ,EACAvijB,EAAgBvxZ,UAAUww8B,cAAgB,WACtC,IAAIoI,EAAmBvp9B,KAAKc,cAAc,MAAO,CAAEC,UAAW+78B,MAC1D0M,EAAkBxp9B,KAAKc,cAAc,MAAO,CAAEC,UA7jFxC,mBA8jFN8m9B,EAAiB7n9B,KAAK4n9B,oBAC1B4B,EAAgB937B,YAAYm27B,GAC5B,IAAI7vjB,EAAUh4Z,KAAKc,cAAc,MAAO,CAAEC,UAAWk88B,MACrD3x8B,GAAW0sZ,EAAS,CAAE,aAAc,kBACpCA,EAAQpuX,YAAc5pC,KAAK+zZ,KAAKhuD,YAAY,gBAC5CyjnB,EAAgB937B,YAAYsmY,GAC5B,IAAI7vU,EAAYnoF,KAAKc,cAAc,MAAO,CAAEC,UAxjFpC,gBAyjFJ+n9B,EAAoB9o9B,KAAKw3Z,iBAC7B+xjB,EAAiB737B,YAAY837B,GAC7BD,EAAiB737B,YAAYy2D,GAC7Boh4B,EAAiB737B,YAAYo37B,GAC7B,IAAIW,EAAgBzp9B,KAAKc,cAAc,MAAO,CAAEC,UAvkF3C,aAwkFD2o9B,EAAY1p9B,KAAKc,cAAc,SAAU,CAAEC,UAAW8/iB,YAAeu8Z,IAAO,IAAMC,MAClFsM,EAAW3p9B,KAAKc,cAAc,UAClC0nR,GAAS,CAACmhsB,GAAW,CA/jFjB,UA+jFyBvM,IArjFvB,YAqjFsCC,MAC5CoM,EAAc/37B,YAAYi47B,GAC1BF,EAAc/37B,YAAYg47B,GAC1B,IAAI/4jB,GAAU5kF,GAAkB/rU,KAAK0qe,cAAgB3+J,GAAkB/rU,KAAK+q8B,WAC5E/q8B,KAAKskf,aAAe,IAAIxgO,GAAO,CAAE/uQ,QAAS/U,KAAK+zZ,KAAKhuD,YAAY,eAAiB2jnB,GACjF1p9B,KAAKyg9B,YAAc,IAAI38rB,GAAO,CAAE/uQ,QAAS/U,KAAK+zZ,KAAKhuD,YAAY,aAAcn3V,UAAW+hZ,GAAUg5jB,GAClG9wuB,GAAazlN,IAAIu27B,EAAU,QAAS3p9B,KAAK0g9B,cAAe1g9B,MACxD64O,GAAazlN,IAAIs27B,EAAW,QAAS1p9B,KAAK4p9B,eAAgB5p9B,MAC1DA,KAAKmlZ,aAAazzX,YAAY637B,GACzBvp9B,KAAK2+8B,YACDpz3B,GAAYvrF,KAAKuijB,QAAQ,GAAGrsgB,OAASl2C,KAAKuijB,QAAQ,GAAGnpgB,KAAOp5C,KAAKuijB,QAAQ,GAAGn0Q,SAC7EpuS,KAAKih9B,gBACLjh9B,KAAKkh9B,mBACL14rB,GAAS,CAAC+gsB,GAtlFR,kBAulFF/gsB,GAAS,CAACxoR,KAAKmlZ,cAAe,oBAChBnlZ,KAAKmlZ,aAAavrX,cAAc,IAAMmj7B,KAC5C528B,MAAMyiJ,OAAS5oJ,KAAKmlZ,aAAavrX,cAAc,IAAMkj7B,KAAgBrorB,wBAAwB7rI,OAAS,OAGtH5oJ,KAAKmlZ,aAAazzX,YAAY+37B,GAC1Bzp9B,KAAK2+8B,UACL3+8B,KAAK6p9B,qBAET7p9B,KAAKykc,aACT,EACAviC,EAAgBvxZ,UAAUi58B,eAAiB,SAAUz8jB,GAC7Cj8X,SAAS0vH,gBAAkB5gJ,KAAKq3S,eAChCr3S,KAAK47b,cAAe,EACpB57b,KAAKq3S,aAAajtS,QAClBo+Q,GAAS,CAACxoR,KAAKozZ,aAAatmZ,WAAY,CAACylZ,OAE7CpF,EAAI9+Y,iBACArO,KAAK698B,aACL798B,KAAKq3S,aAAajtS,QAClBpK,KAAK698B,YAAa,GAEtB798B,KAAK0qe,WAAa,KAClB1qe,KAAK+q8B,SAAW,KAChB/q8B,KAAKs9b,kBACLt9b,KAAKu9R,KAAK4vH,EACd,EACA+U,EAAgBvxZ,UAAUk58B,mBAAqB,WACvC99oB,GAAkB/rU,KAAK0qe,aAAe3+J,GAAkB/rU,KAAK+q8B,WAC7D/q8B,KAAKmi9B,UAAUht8B,QAAQ6f,aAAa,WAAY,IAChDh1B,KAAKii9B,YAAY9s8B,QAAQ+yQ,UAAU90P,IAAIg/O,MAEjC25D,GAAkB/rU,KAAK0qe,aAC7B1qe,KAAKii9B,YAAY9s8B,QAAQ+yQ,UAAU90P,IAAIg/O,IAE/C,EACA8vJ,EAAgBvxZ,UAAU+v8B,cAAgB,SAAUvzjB,GAChD,IAAI28jB,GAAiB,EACJ,eAAb38jB,EAAIvgZ,MACJugZ,EAAI9+Y,iBAEJrO,KAAK+p9B,gBAAkB/p9B,KAAK+p9B,eAAejp4B,SAC3C9gF,KAAK0qe,WAAa1qe,KAAKmlZ,aAAavrX,cAAc,kBAC9C55B,KAAKotZ,WAAW,KAAMptZ,KAAKmlZ,aAAavrX,cAAc,kBAC1D55B,KAAK+q8B,SAAW/q8B,KAAKmlZ,aAAavrX,cAAc,gBAC5C55B,KAAKotZ,WAAW,KAAMptZ,KAAKmlZ,aAAavrX,cAAc,gBAC1D55B,KAAK0gJ,YAELxvH,SAAS0vH,gBAAkB5gJ,KAAKq3S,eAChCr3S,KAAK47b,cAAe,EACpB57b,KAAKq3S,aAAajtS,QAClBo+Q,GAAS,CAACxoR,KAAKozZ,aAAatmZ,WAAY,CAACylZ,OAE5B,eAAbpF,EAAIvgZ,MACJ5M,KAAK+p9B,iBAAmB/p9B,KAAK+p9B,eAAejp4B,QAC5CqsU,EAAI9+Y,iBAEH09T,GAAkB/rU,KAAK0qe,aAAgB3+J,GAAkB/rU,KAAK+q8B,UAc/D/q8B,KAAKu9R,KAAK4vH,GAAY,OAbtBntZ,KAAKqg9B,mBAAqB,IAAI5+8B,MAAMzB,KAAK0qe,YACzC1qe,KAAKsg9B,iBAAmB,IAAI7+8B,MAAMzB,KAAK+q8B,UACvC/q8B,KAAK498B,iBAAmB598B,KAAKq3S,aAAaz1S,MAC1C+1H,GAAM+oB,SAAS1gJ,KAAKsm9B,UAAUn5jB,GAAKltX,KAAMjgC,KAAKq3S,aAAcr3S,KAAKs9Y,eAAgBt9Y,KAAK+gZ,kBACjF/gZ,KAAKu/8B,iBAAmBv/8B,KAAK0qe,aAAe1qe,KAAKw/8B,eAAiBx/8B,KAAK+q8B,WACxE+e,GAAiB,GAErB9p9B,KAAK82Z,cAAc3J,GACnBntZ,KAAKu9R,KAAK4vH,GAAY,MACtBntZ,KAAK00Z,aACLo1jB,GAAiB,GAKfr03B,GAAQ03T,EAAI9kZ,OAAQ,IAAM2z8B,MACvB8N,GACL9p9B,KAAKk3Z,WAEJl3Z,KAAK2+8B,WACN3+8B,KAAK698B,YAAa,EACd798B,KAAK+98B,qBACL/98B,KAAKozZ,aAAatmZ,UAAUhH,SAAS,GAAGsE,QACxCpK,KAAKo+8B,gBAAkB303B,GAAOzpF,KAAKo+8B,gBAAiBp+8B,KAAK4kW,YACzD5kW,KAAKgq9B,oBAAsB,IAAI1lnB,GAAetkW,KAAKozZ,aAAatmZ,UAAUhH,SAAS,GAAI,CACnFywB,UAAW,UACXquU,WAAY5kW,KAAKo+8B,gBACjBl5mB,UAAWllW,KAAKiq9B,qBAAqBpq9B,KAAKG,SAI1D,EACAkia,EAAgBvxZ,UAAU8ub,aAAe,SAAU1oa,EAAOxB,GACtD,GAAmB,eAAfwB,EAAMnqB,KAAV,CAGA,IACImvJ,EAAKtmE,GADIlgE,GAAQwB,EAAM1uB,OACF,IAAM69rB,KAC3BgkR,EAAUnuzB,GAAMA,EAAGmsH,UAAUh1P,SAASk/O,KACtCr2G,GAAMA,EAAGmsH,UAAUh1P,SAASgzqB,MAC5BlmsB,KAAKmq9B,iBAAiBpuzB,EAAIhlI,GAE9B/2B,KAAK47b,cAAe,EACpB57b,KAAKq3S,aAAajtS,QACbpK,KAAK2+8B,WACN3+8B,KAAK47b,cAAe,EAChB7/R,GAAMA,EAAGmsH,UAAUh1P,SAASgzqB,MAAwC,iBAA1BnqiB,EAAGzpI,aAAa,MAC1DtyB,KAAK2g9B,aAAa768B,SAAS,GAAGwkC,kBAAkBlgC,QAG3C8/8B,GAA0B,YAAfnz7B,EAAMnqB,MAClB5M,KAAKq3S,aAAajtS,QAhB9B,CAoBJ,EACA83Z,EAAgBvxZ,UAAU+ub,YAAc,SAAU3oa,GAC9C,IAAIglI,EAAKtmE,GAAQ1+D,EAAM1uB,OAAQ,IAAM69rB,KACjCnqiB,GAAMA,EAAGmsH,UAAUh1P,SAASgzqB,OAAenqiB,EAAGmsH,UAAUh1P,SAAS21Q,MACjErgB,GAAS,CAACzsH,GAAK8sI,IAEvB,EACAq5H,EAAgBvxZ,UAAUvL,aAAe,SAAU2xB,GAC/C,IAAIxB,EAAOkgE,GAAQ1+D,EAAM1uB,OAAQ,IAAMwgS,KAClCkjC,GAAkBx2S,IACnB0yP,GAAY,CAAC1yP,GAAOszQ,IAE5B,EACAq5H,EAAgBvxZ,UAAUw58B,iBAAmB,SAAUpuzB,EAAIhlI,GACvD,GAAIglI,KAAQA,EAAGmsH,UAAUh1P,SAASk/O,MAAYpyQ,KAAK2+8B,UAAY5izB,EAAGmsH,UAAUh1P,SAASk/O,MAAW,CAC5F,GAAIpyQ,KAAK2+8B,UAAY5izB,EAAGmsH,UAAUh1P,SAASk/O,KAGvC,OAFApyQ,KAAKojT,YAAc1yS,MAAMC,UAAUC,MAAMjR,KAAKK,KAAK2wb,eAAehmb,QAAQoxJ,GAEtD,iBADL/7J,KAAK298B,YAAY398B,KAAKojT,aACxBjtR,QACTn2B,KAAKoq9B,yBAGT,EAEJpq9B,KAAK43f,sBACL53f,KAAKojT,YAAc1yS,MAAMC,UAAUC,MAAMjR,KAAKK,KAAK2wb,eAAehmb,QAAQoxJ,GAC1EysH,GAAS,CAACzsH,GAAKq2G,KACfr2G,EAAG/mI,aAAa,gBAAiB,QACjC,IAAIzM,EAASvoB,KAAK298B,YAAY398B,KAAKojT,aACjB,iBAAd76R,EAAO4N,GACPn2B,KAAKoq9B,oBAGLpq9B,KAAKqq9B,iBAAiB9h8B,EAAQwO,EAEtC,CACJ,EACAmrY,EAAgBvxZ,UAAUinf,oBAAsB,WAC5C,IAAIrie,EAAOv1B,KAAKsk9B,cAAc1q7B,cAAc,IAAMw4O,KAC7C25D,GAAkBx2S,KACnB0yP,GAAY,CAAC1yP,GAAO68O,KACpB78O,EAAKR,gBAAgB,iBAE7B,EACAmtY,EAAgBvxZ,UAAU+vI,SAAW,WACjC1gJ,KAAKwpe,WAAa,CAACxpe,KAAK0qe,WAAY1qe,KAAK+q8B,SAC7C,EACA7oiB,EAAgBvxZ,UAAU058B,iBAAmB,SAAU9h8B,EAAQloB,GAC3DL,KAAKu9R,KAAK,MACVv9R,KAAK298B,YAAY398B,KAAK298B,YAAYv68B,OAAS,GAAG8yC,MAAQ,KACtDl2C,KAAK298B,YAAY398B,KAAK298B,YAAYv68B,OAAS,GAAGg2C,IAAM,KACpDp5C,KAAK0qe,WAAanid,EAAO2tB,MACzBl2C,KAAK+q8B,SAAWxi7B,EAAO6wB,IACvBp5C,KAAK0gJ,WACL1gJ,KAAKmj9B,iBACLnj9B,KAAKsgS,QAAQ,SAAUtgS,KAAKsm9B,UAAUjm9B,IACtCL,KAAK82Z,cAAcz2Z,GACnBL,KAAK498B,iBAAmB598B,KAAKq3S,aAAaz1S,MAC1C5B,KAAKy98B,eAAgB,EACrBz98B,KAAK2g9B,aAAe3g9B,KAAKsh9B,cAAgB,KACrCth9B,KAAK698B,aACL798B,KAAK+98B,oBAAqB,EAC1B/98B,KAAKq3S,aAAajtS,QAE1B,EAEA83Z,EAAgBvxZ,UAAUswb,UAAY,SAAU9rb,EAAS4hB,GACrD/2B,KAAK0k9B,eACe,MAAhB1k9B,KAAK2uI,OACL3uI,KAAK41Z,SAASvvG,KAAK,KAAMrmT,KAAKmV,SAG9BnV,KAAK41Z,SAASvvG,KAAK,KAAM,MAEzBrmT,KAAK2+8B,UACL3+8B,KAAK41Z,SAAShc,iBAEtB,EACAsoB,EAAgBvxZ,UAAUy58B,kBAAoB,WAC1Cpq9B,KAAK098B,gBAAiB,EACtB198B,KAAK41Z,SAASr4H,OACdv9R,KAAKmlZ,aAAenlZ,KAAKc,cAAc,MAAO,CAAEq1B,GAAIn2B,KAAKmV,QAAQghB,GAAK,SAAUp1B,UAAWihZ,IAAO,IAAMwqT,MACxGxssB,KAAK88hB,gBACL98hB,KAAKy+gB,cAAc/lL,SAAShnU,YAAY1xB,KAAKmlZ,cAC7CnlZ,KAAKihc,YACLjhc,KAAKy98B,eAAgB,EAChBz98B,KAAK2+8B,UACN3+8B,KAAK4g9B,eAEb,EACA1+iB,EAAgBvxZ,UAAUuw8B,iBAAmB,WACzC,IAAK,IAAI5x8B,EAAK,EAAGgmC,EAAKt1C,KAAK2wb,cAAerhb,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CAE5DuiV,GADSv8S,EAAGhmC,GAEhB,CACJ,EACA4yZ,EAAgBvxZ,UAAUsw8B,cAAgB,WACtC,IAAK113B,GAAYvrF,KAAKuijB,QAAQ,GAAGrsgB,OAASl2C,KAAKuijB,QAAQ,GAAGnpgB,KAAOp5C,KAAKuijB,QAAQ,GAAGn0Q,OAAQ,CACrFpuS,KAAKsk9B,cAAgBtk9B,KAAKc,cAAc,MAAO,CAAEC,UAAWg88B,IAAStznB,MAAO,CAAE,SAAY,OAC1F,IAAI4+W,EAAU90R,GAAS+c,WAAWtwb,KAAKc,cAAed,KAAK298B,YAAa,MAAM,GAC9Ery8B,GAAW+8rB,EAAS,CAAE,KAAQ,UAAW,cAAe,QAAS,GAAMrosB,KAAKmV,QAAQghB,GAAK,WAAY,SAAY,MACjHn2B,KAAKsk9B,cAAc5y7B,YAAY22qB,GAC/BrosB,KAAKmlZ,aAAazzX,YAAY1xB,KAAKsk9B,eACnC,IAAIgG,EAAgBtq9B,KAAKsk9B,cAAc1q7B,cAAc,iBAChDmyS,GAAkBu+oB,KACnBA,EAAc1g7B,YAAuD,KAAzC5pC,KAAK+zZ,KAAKhuD,YAAY,eAAwB/lW,KAAK+zZ,KAAKhuD,YAAY,eAC1F,gBAEV/lW,KAAK2wb,cAAgB3wb,KAAKsk9B,cAAc9z8B,iBAAiB,IAAM01rB,KAC/DlmsB,KAAKg9b,iBACDh9b,KAAK2+8B,WACL3+8B,KAAKsk9B,cAAcn+8B,MAAMqY,MAAQxe,KAAKozZ,aAAatmZ,UAAU2nR,wBAAwBj2Q,MAAQ,OAE5FutT,GAAkB/rU,KAAKojT,cAAgBpjT,KAAKojT,aAAe,GAC5D56B,GAAS,CAACxoR,KAAK2wb,cAAc3wb,KAAKojT,cAAehxC,IAEzD,CACJ,EACA8vJ,EAAgBvxZ,UAAUqsb,eAAiB,WACvCnkN,GAAazlN,IAAIpzB,KAAKsk9B,cAAe,QAAStk9B,KAAKy/b,aAAcz/b,MAC5DA,KAAK2+8B,WACN9luB,GAAazlN,IAAIpzB,KAAKsk9B,cAAe,YAAatk9B,KAAK0/b,YAAa1/b,MACpE64O,GAAazlN,IAAIpzB,KAAKsk9B,cAAe,WAAYtk9B,KAAKoF,aAAcpF,MAE5E,EACAkia,EAAgBvxZ,UAAUosb,iBAAmB,WACpChxH,GAAkB/rU,KAAKsk9B,iBACxBzruB,GAAa1lN,OAAOnzB,KAAKsk9B,cAAe,mBAAoBtk9B,KAAKy/b,cAC5Dz/b,KAAK2+8B,WACN9luB,GAAa1lN,OAAOnzB,KAAKsk9B,cAAe,YAAatk9B,KAAK0/b,aAC1D7mN,GAAa1lN,OAAOnzB,KAAKsk9B,cAAe,WAAYtk9B,KAAKoF,eAGrE,EACA88Z,EAAgBvxZ,UAAU8zb,YAAc,WACpC,IAAInlc,EAAQU,KACZA,KAAKmlZ,aAAaj9H,UAAU90P,IAAI,aAChC,IAAIgjX,EAAap2Y,KAAKmlZ,aAAa1wH,wBAAwBj2Q,MACtDutT,GAAkB/rU,KAAK4vW,WAAsC,KAAzB5vW,KAAK4vW,SAASn9U,SACnDzyB,KAAKmlZ,aAAapkZ,WAAa,IAAMf,KAAK4vW,UAE1C5vW,KAAK2+8B,UAAY3+8B,KAAK098B,iBACtB198B,KAAKqlZ,MAAQrlZ,KAAKc,cAAc,OAChCowB,SAASzd,KAAKie,YAAY1xB,KAAKqlZ,QAEnCrlZ,KAAK41Z,SAAW,IAAIlkO,GAAM1xL,KAAKmlZ,aAAc,CACzCjL,SAAUl6Y,KAAK2+8B,UAAY3+8B,KAAK098B,eAAiBxs7B,SAASzd,KACpDs4T,GAAkB/rU,KAAKgpS,eAAsChpS,KAAKozZ,aAAatmZ,UAAvC9M,KAAKgpS,cACnD9+M,SAAWlqF,KAAK2+8B,SACVpz3B,GAAYvrF,KAAKuijB,QAAQ,GAAGrsgB,OAASl2C,KAAKuijB,QAAQ,GAAGnpgB,KAAOp5C,KAAKuijB,QAAQ,GAAGn0Q,QAAWpuS,KAAK098B,eAC7D,CAAEt87B,EAAG,SAAUvC,EAAG,UAA/C,CAAEuC,EAAG,OAAQvC,EAAG,UACpB7e,KAAKq4V,UAAY,CAAEj3U,EAAG,OAAQvC,EAAG,UAAa,CAAEuC,EAAG,QAASvC,EAAG,UACnE0zU,QAASvyV,KAAK2+8B,UAAY3+8B,KAAKq4V,UAAY,GAAK+9C,EAChD5jD,QA90FM,EA+0FN8oD,UAAWt7Y,KAAK2+8B,SACVpz3B,GAAYvrF,KAAKuijB,QAAQ,GAAGrsgB,OAASl2C,KAAKuijB,QAAQ,GAAGnpgB,KAAOp5C,KAAKuijB,QAAQ,GAAGn0Q,QAAWpuS,KAAK098B,eAC3E,CAAEt87B,EAAG,MAAOvC,EAAG,OAA9B,CAAEuC,EAAG,OAAoC,CAAEA,EAAG,MAAOvC,EAAG,QAChEg9X,WAAY77Y,KAAK2+8B,UAAY3+8B,KAAK098B,eAAiB,YAAc,WACjErlnB,UAAWr4V,KAAKq4V,UAChB1pN,OAAQ3uI,KAAK2uI,OACb7L,KAAM,WACFx3H,GAAWhM,EAAM+3S,aAAc,CAAE,gBAAiB,OAAQ,YAAa/3S,EAAM+3S,aAAalhR,GAAK,aAC3F72B,EAAMsC,MACN0J,GAAWhM,EAAM+3S,aAAc,CAAE,wBAAyB/3S,EAAM+3S,aAAalhR,KAG7E72B,EAAM+3S,aAAatiR,gBAAgB,yBAEvCyzP,GAAS,CAAClpR,EAAM8zZ,aAAahtQ,QAAQ,IAAKgsH,KACrC9yQ,EAAMq/8B,WACHr/8B,EAAMglf,eACNhlf,EAAMir9B,kBAAoB,IAAIjmnB,GAAehlW,EAAMglf,aAAanve,QAAS,CACrEohB,UAAW,UACX2uU,UAAW5lW,EAAM2q9B,qBAAqBpq9B,KAAKP,GAC3CslW,WAAY,CAAEtjD,IAAK,MAAOwjG,cAAe,iBAAkBC,aAAc,mBAE7EzlZ,EAAMir9B,kBAAoB,IAAIjmnB,GAAehlW,EAAMmh9B,YAAYtr8B,QAAS,CACpEohB,UAAW,UACX2uU,UAAW5lW,EAAM2q9B,qBAAqBpq9B,KAAKP,GAC3CslW,WAAY,CAAEkgD,cAAe,iBAAkBC,aAAc,oBAGhEh5E,GAAkBzsU,EAAMqh9B,eACpBrh9B,EAAMy+8B,oBACPz+8B,EAAMsh9B,gBAGT70oB,GAAkBzsU,EAAMgl9B,iBACzBhl9B,EAAM8+8B,gBAAkB303B,GAAOnqF,EAAM8+8B,gBAAiB9+8B,EAAMslW,YAC5DtlW,EAAMkr9B,qBAAuB,IAAIlmnB,GAAehlW,EAAMgl9B,cAAe,CACjE/t7B,UAAW,UACX2uU,UAAW5lW,EAAMmr9B,uBAAuB5q9B,KAAKP,GAC7CslW,WAAYtlW,EAAM8+8B,kBAEtB9+8B,EAAMkr9B,qBAAuB,IAAIlmnB,GAAehlW,EAAMgl9B,cAAe,CACjE/t7B,UAAW,UACX2uU,UAAW5lW,EAAM2q9B,qBAAqBpq9B,KAAKP,GAC3CslW,WAAY,CAAEkgD,cAAe,iBAAkBC,aAAc,mBAE7Dh5E,GAAkBzsU,EAAMqh9B,eACxBrh9B,EAAMurd,aAAc,EACpBvrd,EAAMgl9B,cAAcl68B,SAGpB9K,EAAMgl9B,cAActv7B,aAAa,WAAY,OAGrD11B,EAAMor9B,wBAENpr9B,EAAMq/8B,WAAa13nB,GAAQM,UAC3B1uG,GAAazlN,IAAIlC,SAAU,UAAW5xB,EAAMqr9B,kBAAmBrr9B,EAEvE,EACAk8I,MAAO,WACHlwI,GAAWhM,EAAM+3S,aAAc,CAAE,gBAAiB,UAClD/3S,EAAM+3S,aAAatiR,gBAAgB,aACnCz1B,EAAM+3S,aAAatiR,gBAAgB,yBACnCkzP,GAAY,CAAC3oR,EAAM8zZ,aAAahtQ,QAAQ,IAAKgsH,KACzC9yQ,EAAMy+8B,oBACNz+8B,EAAM8zZ,aAAatmZ,UAAUhH,SAAS,GAAGsE,QAExCmhF,GAAYjsF,EAAMijjB,QAAQ,GAAGrsgB,OAAS52C,EAAMijjB,QAAQ,GAAGnpgB,KAAO95C,EAAMijjB,QAAQ,GAAGn0Q,QAChF9uS,EAAMy9b,mBAELhxH,GAAkBzsU,EAAMs2Z,YACpB7pF,GAAkBzsU,EAAMs2Z,SAASzgZ,QAAQ0gR,gBAC1Cy0D,GAAOhrV,EAAMs2Z,SAASzgZ,SAE1B7V,EAAMs2Z,SAASx+Q,UACf93I,EAAMs2Z,SAAW,MAEjBt2Z,EAAMq/8B,WAAa13nB,GAAQM,UAC3B1uG,GAAa1lN,OAAOjC,SAAU,UAAW5xB,EAAMqr9B,kBAEvD,EAAG/yjB,mBAAoB,WACd3wE,GAAQM,UACTjoV,EAAMi+R,MAEd,IAEAv9R,KAAK2+8B,WACL3+8B,KAAK41Z,SAASzgZ,QAAQ+yQ,UAAU90P,IAAI6uX,KAC/BjiZ,KAAK2+8B,UACN3+8B,KAAK41Z,SAASzgZ,QAAQ+yQ,UAAU90P,IAAI,aAGxCpzB,KAAK2+8B,UAAY3+8B,KAAK098B,iBACtBl1rB,GAAS,CAACxoR,KAAKqlZ,OAAQ,CAACpD,IAAQD,IAAM,kBACtC9wX,SAASzd,KAAK1S,WAAa,IAAMyxZ,IACjCxyZ,KAAKqlZ,MAAMl/Y,MAAMi+J,QAAU,SAE/By0E,GAAazlN,IAAIlC,SAAU,uBAAwBlxB,KAAKi3Z,gBAAiBj3Z,KAC7E,EACAkia,EAAgBvxZ,UAAUg68B,kBAAoB,SAAUtq9B,GACpD,GACS,KADDA,EAAEC,QAEFN,KAAKu9R,KAAKl9R,EAGtB,EACA6ha,EAAgBvxZ,UAAUiw8B,cAAgB,WACtC,IAAIhxjB,EAAY5vZ,KAAK41Z,UAAY51Z,KAAK41Z,SAASzgZ,QAAQykB,cAAc,IAAMui7B,KAC3E,GAAIvsjB,EAAW,CACX,IAAIjmE,EAAMl0P,GAAQm6T,EAAW,IAAMssjB,KACnCvynB,EAAM5d,GAAkB4d,GAAO3pV,KAAK2g9B,aAAeh3nB,EAC/C3pV,KAAK+98B,mBACL/98B,KAAKozZ,aAAatmZ,UAAU1C,SAG5BpK,KAAK6qd,aAAc,EACnBlhI,EAAI7jV,SAAS,GAAGwkC,kBAAkBlgC,SAEtCo+Q,GAAS,CAAConI,GAAYotjB,IAC1B,MAEQh98B,KAAK+98B,mBACL/98B,KAAKozZ,aAAatmZ,UAAU1C,SAG5BpK,KAAK6qd,aAAc,EACnB7qd,KAAK2g9B,aAAa768B,SAAS,GAAGwkC,kBAAkBlgC,QAG5D,EACA83Z,EAAgBvxZ,UAAU+z8B,aAAe,WACrC,IAAInia,EAAUvijB,KAAK41Z,UAAY51Z,KAAK41Z,SAASzgZ,QAAQykB,cAAc,IAAMmj7B,KACrE6N,EAAiB5q9B,KAAK41Z,UAAY51Z,KAAK41Z,SAASzgZ,QAAQykB,cAAc,IAAMkj7B,KAC3E/woB,GAAkBw2O,IAAax2O,GAAkB6+oB,KAClDroa,EAAQp8iB,MAAMyiJ,OAASgi0B,EAAen2rB,wBAAwB7rI,OAAS,KAE/E,EACAs5Q,EAAgBvxZ,UAAU858B,uBAAyB,SAAUpq9B,GACzD,OAAQA,EAAE60E,QACN,IAAK,WACDl1E,KAAK6q9B,aAAaxq9B,GAClBL,KAAKogc,oBACL//b,EAAEgO,iBACF,MACJ,IAAK,SACDrO,KAAK8q9B,WAAWzq9B,GAChBL,KAAKogc,oBACL//b,EAAEgO,iBACF,MACJ,IAAK,QAEG,IAAI088B,EAAU/q9B,KAAKgr9B,aACfC,EAAUjr9B,KAAKkr9B,cACnB,IAAKn/oB,GAAkB/rU,KAAK2g9B,gBAAkB50oB,GAAkBk/oB,GAC5D,GAAIl/oB,GAAkBg/oB,KAAch/oB,GAAkBk/oB,IAAYA,IAAYF,EAG1E,GAFA/q9B,KAAKojT,YAAc1yS,MAAMC,UAAUC,MAAMjR,KAAKK,KAAK2wb,eAAehmb,QAAQsg9B,GAExD,iBADLjr9B,KAAK298B,YAAY398B,KAAKojT,aACxBjtR,GAIP,OAHAn2B,KAAK4g9B,gBACLqK,EAAQ/isB,UAAU/0P,OAAO01Q,UACzBxoS,EAAEgO,iBAKT09T,GAAkBg/oB,IAAah/oB,GAAkBk/oB,IAClDjr9B,KAAKy/b,aAAap/b,EAAG0q9B,GAAWE,GAEpC5q9B,EAAEgO,iBAEN,MACJ,IAAK,MACD,GAAIrO,KAAK2g9B,aAAc,CACnB,IAAIpr7B,EAAOv1B,KAAKgr9B,aACXj/oB,GAAkBx2S,IACnBA,EAAK2yP,UAAU/0P,OAAO01Q,IAE9B,MAEI7oS,KAAKu9R,KAAKl9R,GACVA,EAAEgO,iBAIlB,EAEA6zZ,EAAgBvxZ,UAAUk68B,aAAe,SAAUxq9B,GAC/C,IAAI0q9B,EAAU/q9B,KAAKgr9B,aACfC,EAAUjr9B,KAAKkr9B,cACnB,GAAKn/oB,GAAkBg/oB,GAOlB,GAAKh/oB,GAAkBk/oB,GAOxBzisB,GAAS,CAACxoR,KAAK2wb,cAAc,IAAK9nJ,SAPA,CAClC,IAAI9sI,GACCgwK,GADDhwK,EAAKkvzB,EAAQ53rB,qBACat3H,EAAGmsH,UAAUh1P,SAASgzqB,MAChD19a,GAAS,CAACzsH,GAAK8sI,IAEvB,MAVSkjC,GADDhwK,EAAKgvzB,EAAQ13rB,qBACat3H,EAAGmsH,UAAUh1P,SAASgzqB,OAChDj+a,GAAY,CAAC8isB,GAAUlirB,KACvBrgB,GAAS,CAACzsH,GAAK8sI,KAY3B,EAEAq5H,EAAgBvxZ,UAAUm68B,WAAa,SAAUzq9B,GAC7C,IAAI0q9B,EAAU/q9B,KAAKgr9B,aACfC,EAAUjr9B,KAAKkr9B,cACnB,GAAKn/oB,GAAkBg/oB,IAOlB,IAAKh/oB,GAAkBk/oB,GAAU,CAClC,IAAIlvzB,GACCgwK,GADDhwK,EAAKkvzB,EAAQ96d,yBACap0V,EAAGmsH,UAAUh1P,SAASgzqB,MAChD19a,GAAS,CAACzsH,GAAK8sI,IAEvB,OAVSkjC,GADDhwK,EAAKgvzB,EAAQ56d,yBACap0V,EAAGmsH,UAAUh1P,SAASgzqB,OAChDj+a,GAAY,CAAC8isB,GAAUlirB,KACvBrgB,GAAS,CAACzsH,GAAK8sI,KAS3B,EACAq5H,EAAgBvxZ,UAAUq68B,WAAa,WAEnC,OADWhr9B,KAAKsk9B,cAAc1q7B,cAAc,IAAMivQ,IAEtD,EACAq5H,EAAgBvxZ,UAAUu68B,YAAc,WAEpC,OADWlr9B,KAAKsk9B,cAAc1q7B,cAAc,IAAMw4O,IAEtD,EACA8vJ,EAAgBvxZ,UAAU+58B,qBAAuB,WAC7C1q9B,KAAKgq9B,oBAAsB,IAAI1lnB,GAAetkW,KAAKmlZ,aAAc,CAC7D5uX,UAAW,UACX2uU,UAAWllW,KAAKiq9B,qBAAqBpq9B,KAAKG,MAC1C4kW,WAAY,CAAEnyS,OAAQ,YAE1BzyD,KAAKo+8B,gBAAkB303B,GAAOzpF,KAAKo+8B,gBAAiBp+8B,KAAK4kW,YACzD5kW,KAAKgq9B,oBAAsB,IAAI1lnB,GAAetkW,KAAKozZ,aAAatmZ,UAAUhH,SAAS,GAAI,CACnFywB,UAAW,UACX2uU,UAAWllW,KAAKiq9B,qBAAqBpq9B,KAAKG,MAC1C4kW,WAAY5kW,KAAKo+8B,iBAEzB,EACAl8iB,EAAgBvxZ,UAAUyvb,kBAAoB,WAC1C,IAAIkF,EAAatlc,KAAKsk9B,cAAc7vrB,wBAAwB7rI,OACxDqxS,EAAQj6b,KAAKsk9B,cAAc1q7B,cAAc,IAAMivQ,KAC/C1lB,EAASnjR,KAAKsk9B,cAAc1q7B,cAAc,IAAMw4O,KAChDj9P,EAAW42T,GAAkBkuH,GAAiB92K,EAAR82K,EAC1C,IAAKluH,GAAkB52T,GAAU,CAC7B,IAAIikd,EAAUjkd,EAAQk+Q,mBAClBzqI,EAASwwU,EAAUA,EAAQx2K,UAAYztS,EAAQytS,UAC/Co1I,EAAW7ib,EAAQs/Q,wBAAwB7rI,OAC1CA,EAASzzI,EAAQytS,UAAa0iJ,EAC/Btlc,KAAKsk9B,cAAcn2zB,UAAYirU,EAAWxwU,GAAU08S,EAAa,EAAItN,EAAW,GAAMpvS,EAGtF5oJ,KAAKsk9B,cAAcn2zB,UAAY,CAEvC,CACJ,EACA+zQ,EAAgBvxZ,UAAUs58B,qBAAuB,SAAU5p9B,GACvD,IAAIik9B,EAAgB7u3B,GAAQp1F,EAAEgI,OAAQ,IAAM008B,KAC5C,OAAQ188B,EAAE60E,QACN,IAAK,SACGl1E,KAAKq7b,eACDr7b,KAAK698B,aACL798B,KAAKq3S,aAAajtS,QAClBpK,KAAK698B,YAAa,GAEtB798B,KAAKu9R,KAAKl9R,IAGVL,KAAKozZ,aAAatmZ,UAAUhH,SAAS,GAAGoD,OAE5C,MACJ,IAAK,QACIlJ,KAAKq7b,cAINr7b,KAAKozZ,aAAatmZ,UAAUhH,SAAS,GAAGsE,QAHxCpK,KAAKqmT,KAAK,KAAMhmT,GAKpB,MACJ,IAAK,MACDL,KAAKu9R,KAAKl9R,GACV,MACJ,IAAK,gBACI0rU,GAAkBu4oB,GAIfpz7B,SAAS0vH,gBAAkB5gJ,KAAKskf,aAAanve,UAAiD,IAAtCnV,KAAKyg9B,YAAYtr8B,QAAQvG,SACjF5O,KAAKyg9B,YAAYtr8B,QAAQ/K,QAGzBpK,KAAK2g9B,aAAa768B,SAAS,GAAGwkC,kBAAkBlgC,QAPpDpK,KAAKskf,aAAanve,QAAQ/K,QAU9B/J,EAAEgO,iBACF,MACJ,IAAK,eACI09T,GAAkBu4oB,GAIfpz7B,SAAS0vH,gBAAkB5gJ,KAAKyg9B,YAAYtr8B,UAAiD,IAAtCnV,KAAKyg9B,YAAYtr8B,QAAQvG,SAChF5O,KAAKskf,aAAanve,QAAQ/K,QAGrB2hU,GAAkB/rU,KAAKsk9B,gBAAmBpz7B,SAAS0vH,gBAAkB5gJ,KAAKskf,aAAanve,QAIxFnV,KAAKsh9B,cAAcx78B,SAAS,GAAGwkC,kBAAkBlgC,QAHjDpK,KAAKsk9B,cAAcl68B,QAR3BpK,KAAKsh9B,cAAcx78B,SAAS,GAAGwkC,kBAAkBlgC,QAerD/J,EAAEgO,iBAGd,EACA6zZ,EAAgBvxZ,UAAUsmZ,gBAAkB,SAAU52Z,GAClD,IAAI0rU,GAAkB/rU,KAAK41Z,UAA3B,CAGA,IAAIvtZ,EAAShI,EAAEgI,OACVrI,KAAKozZ,aAAatmZ,UAAUomB,SAAS7qB,KACpC0jU,GAAkB/rU,KAAK41Z,WAAcngU,GAAQptF,EAAQ,QAAUrI,KAAKmlZ,aAAahvX,GAAK,OAAoB,cAAX91B,EAAEuM,OACpF,eAAXvM,EAAEuM,OAAsC,cAAXvM,EAAEuM,MAC/B5M,KAAK+p9B,iBAAmB/p9B,KAAK+p9B,eAAejp4B,SAC5CzgF,EAAEgO,kBAGL09T,GAAkB/rU,KAAKgpS,iBACtB+iC,GAAkB/rU,KAAKgpS,gBAAoB3gS,IAAWrI,KAAKgpS,gBAC3DvzM,GAAQptF,EAAQ,QAAUrI,KAAKmlZ,aAAahvX,GAAK,OAC9Cs/D,GAAQptF,EAAQ,IAAM2z8B,OAAoBh88B,KAAKozZ,aAAatmZ,WAC5D2oF,GAAQptF,EAAQ,gCAAmCA,EAAO6/Q,UAAUh1P,SAAS,WAClFlzB,KAAK6qd,aAAc,EACf7qd,KAAKq7b,eAAiBnqa,SAASzd,KAAKyf,SAASlzB,KAAK41Z,SAASzgZ,WAC3DnV,KAAK0g9B,cAAcrg9B,GACdL,KAAK2+8B,WACN3+8B,KAAK+98B,oBAAqB,IAlBtC,CAsBJ,EACA77iB,EAAgBvxZ,UAAUkwY,YAAc,WACpC,IAAIo2E,EAAuBj3d,KAAK4vW,SAC3B7jC,GAAkB/rU,KAAK4vW,WAA+B,KAAlB5vW,KAAK4vW,WAC1CqnH,EAAwBj3d,KAAK4vW,SAASv/V,QAAQ,OAAQ,KAAMoiB,QAEhEzyB,KAAKozZ,aAAez7R,GAAMkpR,YAAY,CAClCvD,eAAgBt9Y,KAAKs9Y,eACrBnoY,QAASnV,KAAKq3S,aACd3kR,WAAY,CACR6rX,SAAUv+Y,KAAKu+Y,SACf56U,YAAa3jE,KAAK2jE,YAClBisS,SAAUqnH,EACV/+L,QAASl4R,KAAKk4R,QACdmgE,UAAWr4V,KAAKq4V,UAChB0oD,gBAAiB/gZ,KAAK+gZ,iBAE1B36P,QAAS,CAhvGD,4CAivGTpmJ,KAAKc,eACRwK,GAAWtL,KAAKq3S,aAAc,CAC1B,SAAY,IAAK,gBAAiB,QAAS,KAAQ,WACnD,aAAgB,MAAO,gBAAkBr3S,KAAKk4R,QAAmB,QAAT,OACxD,YAAe,MAAO,eAAkB,MAAO,WAAc,UAEjEvgK,GAAM8nR,cAAc,CAAE,aAAc,UAAYz/Y,KAAKozZ,aAAahtQ,QAAQ,IACrE2lL,GAAkB/rU,KAAK2jE,cAA4C,KAA5B3jE,KAAK2jE,YAAYlxC,QACzDklG,GAAM8nR,cAAc,CAAE,mBAAoBz/Y,KAAK2jE,aAAe3jE,KAAKq3S,cAEvEr3S,KAAKqnc,YAAYrnc,KAAKwe,OACtBgqQ,GAAS,CAACxoR,KAAKozZ,aAAatmZ,WA9vGb,wBA+vGXi/T,GAAkB/rU,KAAKq3S,aAAa/kR,aAAa,UACjDhnB,GAAWtL,KAAKq3S,aAAc,CAAE,KAAQr3S,KAAKmV,QAAQghB,KAE1B,WAA3Bn2B,KAAKq3S,aAAazqS,OAClB5M,KAAKozZ,aAAatmZ,UAAU3G,MAAMi+J,QAAU,QAEhDpkK,KAAKmj9B,iBACLnj9B,KAAK498B,iBAAmB598B,KAAKq3S,aAAaz1S,MAC1C5B,KAAKq3S,aAAariR,aAAa,QAASh1B,KAAKq3S,aAAaz1S,OAC1D5B,KAAKug9B,UAAYvg9B,KAAK4vZ,UACtB5vZ,KAAKwg9B,QAAUxg9B,KAAK6vZ,OACxB,EACAqS,EAAgBvxZ,UAAU02b,YAAc,SAAU7ob,GAE1Cxe,KAAKozZ,aAAatmZ,UAAU3G,MAAMqY,MADjB,kBAAVA,EACoCxe,KAAKwe,MAE1B,kBAAVA,EAC8BkvT,GAAW1tU,KAAKwe,OAGhB,MAElD,EACA0jZ,EAAgBvxZ,UAAUow8B,sBAAwB,WACjB,SAAzB/g9B,KAAKsmZ,iBACL99H,GAAS,CAACxoR,KAAKmlZ,cA5tGP,4BA8tGhB,EACA+c,EAAgBvxZ,UAAUwy8B,eAAiB,WACvCnj9B,KAAKg2d,iBACDh2d,KAAKq0Z,YACLr0Z,KAAKko9B,sBAET,IAAI58yB,EAAatrK,KAAKo0Z,gBAClBp0Z,KAAKq0Z,YAAe/oP,IACpBtrK,KAAK0qe,WAAa1qe,KAAKqg9B,mBACvBrg9B,KAAKisV,cAAc,CAAE2jE,UAAW5vZ,KAAK0qe,aAAc,GACnD1qe,KAAK+q8B,SAAW/q8B,KAAKsg9B,iBACrBtg9B,KAAKisV,cAAc,CAAE4jE,QAAS7vZ,KAAK+q8B,WAAY,GAC/C/q8B,KAAK0gJ,YAET1gJ,KAAKqzZ,cACArzZ,KAAKq0Z,YACNr0Z,KAAKoo9B,iBAEJpo9B,KAAKq0Z,YAAe/oP,GACrBtrK,KAAKog9B,aAEJr0oB,GAAkB/rU,KAAK+q8B,WAAch/nB,GAAkB/rU,KAAK0qe,aAC5Dp/T,GAAeygK,GAAkB/rU,KAAKgoZ,qBAAsBhoZ,KAAKgoZ,kBAAkB18O,YACpFtrK,KAAKuh9B,qBAETvh9B,KAAK00Z,aACL10Z,KAAKqg9B,mBAAqBt0oB,GAAkB/rU,KAAK0qe,aAAe7oe,OAAO7B,KAAK0qe,YAAc,KAAO,IAAIjpe,MAAMzB,KAAK0qe,YAChH1qe,KAAKsg9B,iBAAmBv0oB,GAAkB/rU,KAAK+q8B,WAAalp8B,OAAO7B,KAAK+q8B,UAAY,KAAO,IAAItp8B,MAAMzB,KAAK+q8B,SAC9G,EACA7oiB,EAAgBvxZ,UAAU0iZ,YAAc,WACpC,IAAKtnF,GAAkB/rU,KAAK+q8B,YAAch/nB,GAAkB/rU,KAAK0qe,YAAa,CAC1E,IAAIygf,EAAe,CAAE9l8B,OAAQrlB,KAAKy0Z,aAAc7nZ,KAAM,OAAQqmU,SAAU,OACpE28E,EAAY5vZ,KAAKujZ,UAAU9jE,WAAWz/U,KAAK0qe,WAAYygf,GACvDt7jB,EAAU7vZ,KAAKujZ,UAAU9jE,WAAWz/U,KAAK+q8B,SAAUogB,GACvDxz1B,GAAM+oB,SAASkvQ,EAAY,IAAM5vZ,KAAKmoF,UAAY,IAAM0nU,EAAS7vZ,KAAKq3S,aAAcr3S,KAAKs9Y,eAAgBt9Y,KAAK+gZ,iBAC9G/gZ,KAAKqg9B,mBAAqB,IAAI5+8B,MAAMzB,KAAK0qe,YACzC1qe,KAAKsg9B,iBAAmB,IAAI7+8B,MAAMzB,KAAK+q8B,SAC3C,EACK/q8B,KAAKq0Z,YAActoF,GAAkB/rU,KAAK4B,QAAU5B,KAAK4yZ,oBAC1Dj7R,GAAM+oB,SAAS1gJ,KAAK4yZ,mBAAoB5yZ,KAAKq3S,aAAcr3S,KAAKs9Y,eAAgBt9Y,KAAK+gZ,gBAE7F,EACAmhB,EAAgBvxZ,UAAUiu8B,kBAAoB,SAAUh98B,GACpD,IAAKmqU,GAAkBnqU,GAAQ,CAC3B,IAAIw1G,GAAU,EACVg02B,OAAe,EACfC,OAAa,EACbppY,EAAc,KACdqpY,EAAY,KACZr4kB,EAAc,KACds4kB,GAAc,EACdC,GAAY,EACZC,GAAgB,EACpB,GAAuB,kBAAX7p9B,EAAqB,CAC7B,IAAIsB,EAAQtB,EAAM+wB,MAAM,IAAM3yB,KAAKmoF,UAAY,KAC1B,IAAjBjlF,EAAME,QACN6+kB,EAAc/+kB,EAAM,GACpBoo9B,EAAYpo9B,EAAM,KAGlBk0G,GAAU,EACV67R,EAAcrxY,EAEtB,MAEQA,EAAMwB,OAAS,GACfgo9B,EAAexp9B,EAAM,GACrByp9B,EAAazp9B,EAAM,KAGnBwp9B,EAAexp9B,EAAMs0C,MACrBm16B,EAAazp9B,EAAMw3C,KAEjBgy6B,aAAwB3p9B,MAAmC,kBAAlB2p9B,EAGtCA,aAAwB3p9B,KAC7B8p9B,GAAc,EAERx/oB,GAAkBq/oB,KACxBK,GAAgB,GANhBxpY,EAAcjilB,KAAK0r9B,eAAeN,GAQhCC,aAAsB5p9B,MAAiC,kBAAhB4p9B,EAGpCA,aAAsB5p9B,KAC3B+p9B,GAAY,EAENz/oB,GAAkBs/oB,KACxBI,GAAgB,GANhBH,EAAYtr9B,KAAK0r9B,eAAeL,IASnCt/oB,GAAkBk2Q,KAAiBspY,IAAgBx/oB,GAAkBu/oB,KACpEv/oB,GAAkBk2Q,KAAiBupY,GAAaz/oB,GAAkBu/oB,MACpEl02B,GAAU,GAEVq02B,IACAxpY,EAAcqpY,EAAYr4kB,EAAc,KACxC77R,GAAU,GAEV6qe,IACA7qe,EAAUA,GAAWp3G,KAAKwzZ,kBAAkByuL,IAE5CqpY,IACAl02B,EAAUA,GAAWp3G,KAAKwzZ,kBAAkB83jB,IAE5Cl02B,IACIm02B,IAAgBE,IAChBxpY,EAAcmpY,EAAaO,sBAE3BH,IAAcC,IACdH,EAAYD,EAAWM,sBAEtB5/oB,GAAkBk2Q,IAAiBl2Q,GAAkBu/oB,GAGhDv/oB,GAAkBk2Q,GAGlBl2Q,GAAkBu/oB,KACxBr4kB,EAAcq4kB,GAHdr4kB,EAAcgvM,EAHdhvM,EAAcgvM,EAAc,IAAMjilB,KAAKmoF,UAAY,IAAMmj4B,EAQ7Dtr9B,KAAK4yZ,mBAAqB3f,EAC1BjzY,KAAKisV,cAAc,CAAErqV,MAAO,OAAQ,GACpC5B,KAAKisV,cAAc,CAAEy+I,WAAY,OAAQ,GACzC1qe,KAAKisV,cAAc,CAAE8+mB,SAAU,OAAQ,GACvC/q8B,KAAK4vZ,UAAY,KACjB5vZ,KAAK6vZ,QAAU,KAEvB,CACJ,EACAqS,EAAgBvxZ,UAAU+68B,eAAiB,SAAU9p9B,GACjD,IAAI2sB,EAAc,KAOlB,OANKw9S,GAAkBnqU,IAA4B,kBAAVA,EAG/BmqU,GAAkBnqU,IAA4B,kBAAVA,IAC1C2sB,EAAc,GAAK3sB,GAHnB2sB,EAAe3sB,EAAOkV,WAKnByX,CACX,EACA2zY,EAAgBvxZ,UAAU6iZ,kBAAoB,SAAU5xZ,GACpD,IAEIgq9B,EAFA34kB,EAAcrxY,EACdw1G,GAAU,EAGd,GADAw02B,EAAY,CAAEvm8B,OAAQrlB,KAAKy0Z,aAAc7nZ,KAAM,OAAQqmU,SAAU,OACtC,kBAAhBggE,EACP77R,GAAU,MAET,CACD,IAAImsS,EAAY,IAAItkE,GAAqBj/U,KAAKD,QAC9C,IAAKC,KAAKglZ,eAAezB,EAAU9lO,UAAUw1N,EAAa24kB,IAAa,CACnE,IACIC,EAAe,KAInBA,EAAe,+IAFH,kJAGI1i8B,KAAK8pX,KAAiB44kB,EAAa1i8B,KAAK8pX,IAChD,mBAAoB9pX,KAAK8pX,IAAgBpxY,OAAO,IAAIJ,KAAKzB,KAAKilZ,WAAWhS,QAC7E77R,GAAU,EAElB,CACJ,CACA,OAAOA,CACX,EACA8qT,EAAgBvxZ,UAAU0y8B,eAAiB,SAAUnj9B,GACjD,GAAI6rU,GAAkB7rU,GAClB,OAAO,EAEX,IAAI0B,EAAQ,IAAIH,MAAMvB,GACtB,IAAK0B,GAAS5B,KAAK4pD,MAAQhoD,GAAS5B,KAAKitC,IACrC,OAAO,EAEXjtC,KAAK8r9B,sBAAwB,CACzB5r9B,KAAM0B,EACN0pK,YAAY,GAEhB,IAAIryJ,EAAOjZ,KAAK8r9B,sBAEhB,OADA9r9B,KAAK+r9B,uBAAuB9y8B,KACxBA,EAAKqyJ,UAIb,EACA42P,EAAgBvxZ,UAAU4w8B,mBAAqB,WAC3Cvh9B,KAAK2O,aAAe,GACpB3O,KAAKyn9B,eAAiB,KAGtB,IAFA,IAAIr+jB,EAAY,IAAI3nZ,MAAMzB,KAAK0qe,YAC3B9/c,EAAQ,GACJw+X,IAAcppZ,KAAK+q8B,WAAa/q8B,KAAK+q8B,WAAa/q8B,KAAKitC,KAAK,CAChEjtC,KAAK8r9B,sBAAwB,CACzB5r9B,KAAMkpZ,EACN99O,YAAY,GAEhB,IAAIryJ,EAAOjZ,KAAK8r9B,sBAChB9r9B,KAAK+r9B,uBAAuB9y8B,GACxBA,EAAKqyJ,aACLtrK,KAAK2O,aAAavC,KAAK,IAAI3K,MAAMwX,EAAK/Y,QACjCkpZ,GAAappZ,KAAK0qe,aAAethF,GAAappZ,KAAK+q8B,UACpDng7B,KAGR5qB,KAAK2oZ,OAAOS,EAAW,EAAG,KAAMppZ,KAAKitC,IAAKjtC,KAAK4pD,IACnD,CACA5pD,KAAKyn9B,eAAiB787B,CAC1B,EACAs3Y,EAAgBvxZ,UAAUo78B,uBAAyB,SAAU9y8B,GACzDwwE,GAAOzpF,KAAK8r9B,sBAAuB,CAAEpn9B,KAAM,kBAC3C1E,KAAKsgS,QAAQ,gBAAiBrnR,EAClC,EACAipZ,EAAgBvxZ,UAAUyjZ,cAAgB,WACtC,IAAI43jB,GAAkB,EAClBC,GAAgB,EASpB,OARKlgpB,GAAkB/rU,KAAK+q8B,WAAch/nB,GAAkB/rU,KAAK0qe,cAC7Dshf,EAAkBhs9B,KAAKqj9B,eAAerj9B,KAAK0qe,YAC3Cuhf,EAAgBjs9B,KAAKqj9B,eAAerj9B,KAAK+q8B,UACpC/q8B,KAAKq7b,gBACNr7b,KAAKqxG,YAAc,MAEvBrxG,KAAK0gJ,YAEDsr0B,GAAmBC,CAC/B,EACA/pjB,EAAgBvxZ,UAAUut8B,cAAgB,WACjCl+8B,KAAK4B,OAA4B,OAAnB5B,KAAK4vZ,WAAuC,OAAjB5vZ,KAAK6vZ,QAG3B,OAAf7vZ,KAAK4B,OAAuC,OAArB5B,KAAK4B,MAAMs0C,MACpB,OAAfl2C,KAAK4B,MACL5B,KAAKisV,cAAc,CAAErqV,MAAO,CAAC5B,KAAK4vZ,UAAW5vZ,KAAK6vZ,WAAY,GAEpC,OAArB7vZ,KAAK4B,MAAMs0C,OAChBl2C,KAAKisV,cAAc,CAAErqV,MAAO,CAAEs0C,MAAOl2C,KAAK4vZ,UAAWx2W,IAAKp5C,KAAK6vZ,WAAa,GAI3E7vZ,KAAK4B,OAAS5B,KAAK4B,MAAMwB,OAAS,GACnCpD,KAAKi9f,WAAaj9f,KAAKi9f,UAAU75f,OAAS,IACrCpD,KAAK4vZ,aAAe5vZ,KAAK4B,MAAM,KAAO5B,KAAK6vZ,WAAa7vZ,KAAK4B,MAAM,IACpE5B,KAAKisV,cAAc,CAAErqV,MAAO,CAAC5B,KAAK4vZ,UAAW5vZ,KAAK6vZ,WAAY,GAE9D7vZ,KAAK4B,OAA0B,MAAjB5B,KAAK4B,MAAM,IAA+B,MAAjB5B,KAAK4B,MAAM,IAClD5B,KAAKisV,cAAc,CAAErqV,MAAO,OAAQ,IAInC5B,KAAK4B,OAAS5B,KAAK4B,MAAMs0C,OAC1Bl2C,KAAKisV,cAAc,CAAErqV,MAAO,CAAEs0C,MAAOl2C,KAAK4vZ,UAAWx2W,IAAKp5C,KAAK6vZ,WAAa,GAtBpF7vZ,KAAKisV,cAAc,CAAErqV,MAAO,OAAQ,GA0BxC5B,KAAKks9B,mBACT,EAQAhqjB,EAAgBvxZ,UAAUqqB,cAAgB,SAAU7lB,EAASvI,GACzD,IAAI0jR,EAAMp/P,SAAS8F,YAAY,cAC/Bs5P,EAAIz5P,UAAUjqB,GAAM,GAAO,GAC3BuI,EAAQ6lB,cAAcs1P,GACtBtwR,KAAK2/8B,iBAAiB3k7B,cAAcs1P,EACxC,EACA4xI,EAAgBvxZ,UAAUmmZ,cAAgB,SAAUz2Z,IAC3CL,KAAKu/8B,iBAAmBv/8B,KAAK0qe,aAAe1qe,KAAKw/8B,eAAiBx/8B,KAAK+q8B,WACxE/q8B,KAAKisV,cAAc,CAAE4jE,QAAS7vZ,KAAKglZ,eAAehlZ,KAAK+q8B,YAAa,GACpE/q8B,KAAKisV,cAAc,CAAE2jE,UAAW5vZ,KAAKglZ,eAAehlZ,KAAK0qe,cAAe,GACxE1qe,KAAKk+8B,gBACDl+8B,KAAKkjZ,WAAaljZ,KAAKijZ,cACvBjjZ,KAAKijZ,eAAgB,EAGrBjjZ,KAAKsgS,QAAQ,SAAUtgS,KAAKsm9B,UAAUjm9B,KAG9CL,KAAK498B,iBAAmB598B,KAAKq3S,aAAaz1S,MAC1C5B,KAAKu/8B,cAAgBv/8B,KAAKglZ,eAAehlZ,KAAK0qe,YAC9C1qe,KAAKw/8B,YAAcx/8B,KAAKglZ,eAAehlZ,KAAK+q8B,SAChD,EASA7oiB,EAAgBvxZ,UAAUk3Y,WAAa,SAAU/uX,EAAM54B,GACnD,GAAIF,KAAKq7b,cAAe,CACpB,GAA2B,UAAvBvia,EAAKpY,cACLoY,EAAO,aAEN,GAA2B,SAAvBA,EAAKpY,cACVoY,EAAO,WAEN,IAA2B,WAAvBA,EAAKpY,cAIV,OAHAoY,EAAO,QAIX,CACI94B,KAAK4nZ,cAAc9uX,GAAQ94B,KAAK4nZ,cAAc5nZ,KAAKssE,SACnDxzC,EAAO94B,KAAKssE,OAEZtsE,KAAK2+8B,SACL735B,EAAOn2C,UAAUk3Y,WAAWloZ,KAAKK,KAAM84B,EAAM54B,IAGzCA,EAAOF,KAAK4pD,IACZ1pD,EAAO,IAAIuB,MAAMzB,KAAK4pD,KAEjB1pD,GAAQF,KAAKitC,MAClB/sC,EAAO,IAAIuB,MAAMzB,KAAKitC,MAEb,UAATnU,GAAoB94B,KAAKuC,YAAYrC,EAAMF,KAAKitC,KAChD/sC,EAAO,IAAIuB,KAAKzB,KAAKitC,IAAI7sC,cAAeJ,KAAKitC,IAAI9sC,WAAa,EAAGH,KAAK4pD,IAAItnD,WAE5D,SAATw2B,GAAmB94B,KAAKwl9B,WAAWtl9B,EAAMF,KAAKitC,KACnD/sC,EAAO,IAAIuB,KAAMzB,KAAKitC,IAAI7sC,cAAgB,EAAIJ,KAAKitC,IAAI9sC,WAAYH,KAAKitC,IAAI3qC,WAE9D,WAATw2B,GAAqB94B,KAAKso9B,aAAapo9B,EAAMF,KAAKitC,OACvD/sC,EAAO,IAAIuB,KAAMzB,KAAKitC,IAAI7sC,cAAgB,GAAKJ,KAAKitC,IAAI9sC,WAAYH,KAAKitC,IAAI3qC,YAEjFtC,KAAKyj9B,mBAAqBvj9B,EAC1BF,KAAK081B,SAAS181B,KAAK2g9B,aAAc3g9B,KAAKyj9B,mBAAoB3q7B,GAEtD54B,EADS,UAAT44B,EACO,IAAIr3B,KAAKzB,KAAKqxG,YAAYnvG,SAASlC,KAAKqxG,YAAYlxG,WAAa,IAE1D,SAAT24B,EACE,IAAIr3B,KAAKzB,KAAKqxG,YAAYxM,YAAY7kG,KAAKqxG,YAAYjxG,cAAgB,IAGvE,IAAIqB,KAAKzB,KAAKqxG,YAAYxM,YAAY7kG,KAAKqxG,YAAYjxG,cAAgB,KAElFJ,KAAK0j9B,oBAAsBxj9B,EAC3BF,KAAK081B,SAAS181B,KAAKsh9B,cAAeth9B,KAAK0j9B,oBAAqB5q7B,GAC5D94B,KAAKqi9B,mBAAqBri9B,KAAKui9B,oBAAsB,KACrDvi9B,KAAK8h9B,kBAEL9h9B,KAAK2nZ,gBAAkB3nZ,KAAKssE,OAC5BtsE,KAAKwi9B,yBAETxi9B,KAAKyi9B,oBACLzi9B,KAAKqh9B,YAAarh9B,KAAK2+8B,SAAW,CAAC3+8B,KAAK0jZ,iBAAmB,CAAC1jZ,KAAK2g9B,aAAc3g9B,KAAKsh9B,eACxF,CACJ,EACAp/iB,EAAgBvxZ,UAAU+r1B,SAAW,SAAU/gwB,EAAUz7F,EAAM44B,GAC3D94B,KAAK0jZ,gBAAkB/nT,EACvB37F,KAAK0nC,MAAQi0D,EAAS/hE,cAAc,SACpC55B,KAAK+nZ,iBAAmBpsT,EAAS/hE,cAAc,SAC/C55B,KAAK2lZ,mBAAqBhqT,EAAS/hE,cAAc,YACjD55B,KAAKymZ,iBAAmB9qT,EAAS/hE,cAAc,SAC/C55B,KAAK6lZ,eAAiBlqT,EAAS/hE,cAAc,cAC7C55B,KAAKylZ,aAAe9pT,EAAS/hE,cAAc,WAC3C55B,KAAK0lZ,SAAW/pT,EAAS/hE,cAAc,WACvC55B,KAAKg0M,OAvkHA,WAwkHLltJ,EAAOn2C,UAAUk3Y,WAAWloZ,KAAKK,KAAM84B,EAAM54B,EACjD,EAMAgia,EAAgBvxZ,UAAU+nZ,QAAU,WAC5BxnY,SAAS0vH,gBAAkB5gJ,KAAKq3S,cAAgBr3S,KAAKk4R,UACrD1P,GAAS,CAACxoR,KAAKozZ,aAAatmZ,WAAY,CAACylZ,MACzCvyZ,KAAKq3S,aAAajtS,QAE1B,EAMA83Z,EAAgBvxZ,UAAUumZ,SAAW,WACjC,IAAIhE,EAASlzZ,KAAK6qd,YACd35b,SAAS0vH,gBAAkB5gJ,KAAKq3S,eAChCpvB,GAAY,CAACjoR,KAAKozZ,aAAatmZ,WAAY,CAACylZ,MAC5CvyZ,KAAK6qd,aAAc,EACnB7qd,KAAKq3S,aAAanuS,OAClBlJ,KAAK6qd,YAAc33D,EAE3B,EAMAgP,EAAgBvxZ,UAAUymI,QAAU,WAChCp3I,KAAK61Z,eACL71Z,KAAKu9R,KAAK,MACV,IAAI4urB,EAAY,CACZ,SAAY,IAAK,gBAAiB,QAAS,KAAQ,WACnD,aAAgB,MAAO,gBAAkBns9B,KAAKk4R,QAAmB,QAAT,OACxD,YAAe,MAAO,eAAkB,MAAO,eAAgB,QAAS,WAAc,SAEtFl4R,KAAKq3S,eACLpvB,GAAY,CAACjoR,KAAKq3S,cAAe,CAAC2qG,MAClCnpK,GAAa1lN,OAAOnzB,KAAKq3S,aAAc,OAAQr3S,KAAKq1Z,kBACpD19R,GAAM6nR,iBAAiB2skB,EAAWns9B,KAAKq3S,cAClC00B,GAAkB/rU,KAAKgM,aAAasmB,aAAa,aAIlDtyB,KAAKq3S,aAAatiR,gBAAgB,YAHlC/0B,KAAKq3S,aAAariR,aAAa,WAAYh1B,KAAKiF,UAKpDjF,KAAK64Z,uBACL74Z,KAAKq3S,aAAanvB,UAAU/0P,OAAO,WAC9B44S,GAAkB/rU,KAAKozZ,gBACxBv6K,GAAa1lN,OAAOnzB,KAAKozZ,aAAahtQ,QAAQ,GAAI,YAAapmJ,KAAKig9B,kBAC5C,OAApBjg9B,KAAKymsB,YACLzmsB,KAAKozZ,aAAatmZ,UAAU+oR,cAAcnkQ,YAAY1xB,KAAKq3S,cAE/DizC,GAAOtqV,KAAKozZ,aAAatmZ,aAG5Bi/T,GAAkB/rU,KAAKkg9B,sBAAyBlg9B,KAAK2+8B,UACtD3+8B,KAAKkg9B,oBAAoB9o0B,UAEzBp3I,KAAK41Z,WACA51Z,KAAK2+8B,UACN3+8B,KAAKyh9B,uBAGb365B,EAAOn2C,UAAUymI,QAAQz3I,KAAKK,MAC9BA,KAAKozZ,aAAepzZ,KAAKmlZ,aAAenlZ,KAAK41Z,SAAW51Z,KAAKgM,aAAehM,KAAKsk9B,cAAgB,KAC7Ftk9B,KAAK+mC,aACL8xM,GAAa1lN,OAAOnzB,KAAK+mC,YAAa,QAAS/mC,KAAKwwZ,kBAElDzkF,GAAkB/rU,KAAK2/8B,mBACpB5zoB,GAAkB/rU,KAAK4/8B,qBAC5Bt1nB,GAAOtqV,KAAK2/8B,kBACZr1nB,GAAOtqV,KAAK4/8B,mBACZ5/8B,KAAK2/8B,iBAAmB3/8B,KAAK4/8B,kBAAoB,KACjD5/8B,KAAKq3S,aAAariR,aAAa,OAAQh1B,KAAKmV,QAAQmd,aAAa,cACjEtyB,KAAKq3S,aAAatiR,gBAAgB,cAEtC/0B,KAAK+p9B,eAAiB,KACtB/p9B,KAAK2g9B,aAAe,KACpB3g9B,KAAKop9B,WAAa,KAClBpp9B,KAAKgp9B,UAAY,KACjBhp9B,KAAKy+gB,cAAgB,KACrBz+gB,KAAK2h9B,gBAAkB,KACvB3h9B,KAAKsh9B,cAAgB,KACrBth9B,KAAK+p9B,eAAiB,KACtB/p9B,KAAK4h9B,iBAAmB,KACxB5h9B,KAAK0h9B,gBAAkB,KACvB1h9B,KAAKgq9B,oBAAsB,KAC3Bhq9B,KAAKskf,aAAe,KACpBtkf,KAAKyg9B,YAAc,KACnBzg9B,KAAK0jZ,gBAAkB,KACvB1jZ,KAAKqi9B,mBAAqB,KAC1Bri9B,KAAK6h9B,iBAAmB,KACxB7h9B,KAAK2h9B,gBAAkB,KACvB3h9B,KAAKuq9B,kBAAoB,KACzBvq9B,KAAKui9B,oBAAsB,KAC3Bvi9B,KAAKqi9B,mBAAqB,KAC1Bri9B,KAAKwq9B,qBAAuB,KAC5Bxq9B,KAAK2wb,cAAgB,KACrB3wb,KAAK41Z,SAAW,KAChB51Z,KAAKmlZ,aAAe,IACxB,EACA+c,EAAgBvxZ,UAAUkoZ,qBAAuB,WAE7C,IADA,IAAIztX,EAAO,GACFj/B,EAAI,EAAGA,EAAInM,KAAKq3S,aAAa/rS,WAAWlI,OAAQ+I,IACrDi/B,EAAKj/B,GAAKnM,KAAKq3S,aAAa/rS,WAAWa,GAAGzH,KAE9C,IAASyH,EAAI,EAAGA,EAAIi/B,EAAKhoC,OAAQ+I,IACzB4/T,GAAkB/rU,KAAKgM,aAAasmB,aAAa8Y,EAAKj/B,MACxB,UAA1Bi/B,EAAKj/B,GAAGuU,gBACR1gB,KAAKq3S,aAAaz1S,MAAQ,IAE9B5B,KAAKq3S,aAAatiR,gBAAgBqW,EAAKj/B,MAGT,UAA1Bi/B,EAAKj/B,GAAGuU,gBACR1gB,KAAKq3S,aAAaz1S,MAAQ5B,KAAKgM,aAAasmB,aAAa8Y,EAAKj/B,KAElEnM,KAAKq3S,aAAariR,aAAaoW,EAAKj/B,GAAInM,KAAKgM,aAAasmB,aAAa8Y,EAAKj/B,KAGxF,EAOA+1Z,EAAgBvxZ,UAAUo8U,cAAgB,WACtC,MAAO,iBACX,EAOAm1E,EAAgBvxZ,UAAU0pV,eAAiB,WAEvC,OAAOr6V,KAAK26V,aADI,CAAC,YAAa,UAAW,SAE7C,EAMAunE,EAAgBvxZ,UAAU64Z,iBAAmB,WACzC,IAAItma,EAeJ,OAdK6oU,GAAkB/rU,KAAK0qe,aAAgB3+J,GAAkB/rU,KAAK+q8B,UAY/D7n8B,EAAQ,GAXRA,EAASU,KAAKmgB,MAAMngB,KAAK8Y,KAAK1c,KAAKum9B,wBAAwBvm9B,KAAK0qe,YAAYhpe,UACxE1B,KAAKum9B,wBAAwBvm9B,KAAK+q8B,UAAUrp8B,WAAa,QAA0B,GAClFqqU,GAAkB/rU,KAAKgoZ,oBAAsBhoZ,KAAKgoZ,kBAAkB18O,YACrEtrK,KAAKuh9B,qBAEJx1oB,GAAkB/rU,KAAKyn9B,kBACxBvk9B,GAAgBlD,KAAKyn9B,eACrBzn9B,KAAKyn9B,eAAiB,OAMvB,CAAE73jB,UAAW5vZ,KAAK0qe,WAAY76E,QAAS7vZ,KAAK+q8B,SAAU/yiB,QAAS90Z,EAC1E,EASAg/Z,EAAgBvxZ,UAAU01S,KAAO,SAAUlxS,EAAS4hB,GAChD,IAAIz3B,EAAQU,KAIZ,GAHIA,KAAK2+8B,UAAY3+8B,KAAK41Z,UACtB51Z,KAAK41Z,SAAShc,oBAEb55Y,KAAKk4R,SAAWl4R,KAAKu+Y,WAAcv+Y,KAAKk4R,SAAWl4R,KAAK41Z,YAIpD51Z,KAAKq7b,cAAe,CACjBlmb,IACAnV,KAAKgpS,cAAgB7zR,GAEzBnV,KAAKkmc,eACDlmc,KAAK2+8B,UAAY13nB,GAAQM,YACzBvnV,KAAKos9B,qBAAuBps9B,KAAKc,cAAc,MAAO,CAAEC,UAAW,mCACnEmwB,SAASzd,KAAKie,YAAY1xB,KAAKos9B,uBAEnCps9B,KAAKy+gB,cAAgB,CACjBr8Q,MAAOpiQ,KAAK41Z,UAAY,KACxB90U,QAAQ,EACR5gF,KAAMF,KAAKq3S,aAAaz1S,MACxBszG,MAAOl1G,KACP+2B,MAAOA,GAAgB,KACvB2hU,SAAU14V,KAAK2+8B,UAAY13nB,GAAQM,SAAWvnV,KAAKos9B,qBAAuBl77B,SAASzd,MAEvF,IAAImxU,EAAY5kV,KAAKy+gB,cACrBz+gB,KAAKsgS,QAAQ,OAAQskD,GAAW,SAAUA,GAEtC,GADAtlV,EAAMm/gB,cAAgB75L,GACjBtlV,EAAMm/gB,cAAc39b,OAAQ,CAC7BxhF,EAAMm/gB,cAAc/lL,SAAShnU,YAAYpyB,EAAM6lZ,cAC/C7lZ,EAAM2hc,UAAU9rb,EAAS4hB,GACzB,IAAIiq7B,GAAa1h9B,EAAMm+8B,eAAkBn+8B,EAAMq/8B,UAAYr/8B,EAAMm+8B,eAC5Dly3B,GAAYjsF,EAAMijjB,QAAQ,GAAGrsgB,OAAS52C,EAAMijjB,QAAQ,GAAGnpgB,KAAO95C,EAAMijjB,QAAQ,GAAGn0Q,QAAU4yqB,GAC1F1h9B,EAAM8gc,oBAEV9gc,EAAMml9B,kBACDnl9B,EAAMq/8B,WAAe5yoB,GAAkBzsU,EAAMswZ,YAAgB7jF,GAAkBzsU,EAAMuwZ,WACtFvwZ,EAAM6i9B,UAAUht8B,QAAQ+yQ,UAAU90P,IAAIg/O,KACtC9yQ,EAAM2i9B,YAAY9s8B,QAAQ+yQ,UAAU/0P,OAAOi/O,KAC3C9yQ,EAAM6i9B,UAAUht8B,QAAQ4f,gBAAgB,YACxCz1B,EAAMyj9B,mBAEVj85B,EAAOn2C,UAAUu0Y,gBAAgBvlZ,KAAKL,EAAOA,EAAM8s9B,qBAAsB9s9B,EAAMs2Z,SAASzgZ,QAAS7V,EAAM+lZ,MAEvG/lZ,EAAMq/8B,UAAY13nB,GAAQM,SAC9B,CACJ,GACJ,CAER,EAMA26E,EAAgBvxZ,UAAU4sR,KAAO,SAAUxmQ,GACvC,IAAIz3B,EAAQU,KACZ,GAAIA,KAAK41Z,UAuBL,GAtBI7pF,GAAkB/rU,KAAKsg9B,mBAAqBv0oB,GAAkB/rU,KAAKqg9B,oBACnErg9B,KAAKog9B,cAGAr0oB,GAAkB/rU,KAAKqg9B,qBAMxBrg9B,KAAK0qe,WAAa,KAClB1qe,KAAK0gJ,aANL1gJ,KAAK0qe,WAAa,IAAIjpe,KAAKzB,KAAKilZ,WAAWjlZ,KAAKqg9B,qBAChDrg9B,KAAK0gJ,WACL1gJ,KAAKqxG,YAAc,IAAI5vG,KAAKzB,KAAKilZ,WAAWjlZ,KAAK0qe,cAMhD3+J,GAAkB/rU,KAAKsg9B,mBAKxBtg9B,KAAK+q8B,SAAW,KAChB/q8B,KAAK0gJ,aALL1gJ,KAAK+q8B,SAAW,IAAItp8B,KAAKzB,KAAKilZ,WAAWjlZ,KAAKsg9B,mBAC9Ctg9B,KAAK0gJ,aAOT1gJ,KAAKq7b,cAAe,CACpBr7b,KAAK+p9B,eAAiB,CAClBjp4B,QAAQ,EACRshL,MAAOpiQ,KAAK41Z,SACZ11Z,KAAMF,KAAKq3S,aAAaz1S,MACxBszG,MAAOl1G,KACP+2B,MAAOA,GAAgB,MAE3B,IAAI6tT,EAAY5kV,KAAK+p9B,eACrB/p9B,KAAKsgS,QAAQ,QAASskD,GAAW,SAAUA,GACvCtlV,EAAMyq9B,eAAiBnloB,EAClBtlV,EAAMyq9B,eAAejp4B,OA2CtBmnM,GAAY,CAAC3oR,EAAM8zZ,aAAahtQ,QAAQ,IAAKgsH,MA1CzC9yQ,EAAMq/8B,WACD5yoB,GAAkBzsU,EAAM2i9B,cAAiBl2oB,GAAkBzsU,EAAM6i9B,aAClEtpuB,GAAa1lN,OAAO7zB,EAAM2i9B,YAAY9s8B,QAAS,mBAAoB7V,EAAM4i9B,mBACzErpuB,GAAa1lN,OAAO7zB,EAAM6i9B,UAAUht8B,QAAS,mBAAoB7V,EAAM4i9B,qBAG3E5i9B,EAAMs2Z,WACNt2Z,EAAMs2Z,SAASr4H,OACXj+R,EAAMurd,cACNvrd,EAAM+3S,aAAajtS,QACnBo+Q,GAAS,CAAClpR,EAAM8zZ,aAAatmZ,WAAY,CAACylZ,QAG7CjzZ,EAAMq/8B,WACF5yoB,GAAkBzsU,EAAM+i9B,qBAAwBt2oB,GAAkBzsU,EAAMij9B,uBACzEjj9B,EAAM+i9B,mBAAmBjr0B,UACzB93I,EAAMij9B,oBAAoBnr0B,WAEzB20L,GAAkBzsU,EAAMgl9B,gBACzBhl9B,EAAMkr9B,qBAAqBpz0B,UAE1B20L,GAAkBzsU,EAAMglf,eACzBhlf,EAAMir9B,kBAAkBnz0B,WAGhC93I,EAAM0pS,cAAgB,KACtB/gB,GAAY,CAAC/2P,SAASzd,MAAO++Y,KAC7B35K,GAAa1lN,OAAOjC,SAAU,uBAAwB5xB,EAAM23Z,iBACxD33Z,EAAMq/8B,UAAYr/8B,EAAM+lZ,QACxB/lZ,EAAM+lZ,MAAMl/Y,MAAMi+J,QAAU,OAC5B9kK,EAAM+lZ,MAAMl5W,UAAY,GACxB7sC,EAAM+lZ,MAAQ,OAEd/lZ,EAAMq/8B,UAAY13nB,GAAQM,YACrBxb,GAAkBzsU,EAAM8s9B,wBACzB9s9B,EAAM8s9B,qBAAqBj57B,SAC3B7zB,EAAM8s9B,qBAAuB,OAGrC9s9B,EAAMu+8B,WAAav+8B,EAAMw+8B,cAAe,GAK5Cx+8B,EAAMug9B,uBACNvg9B,EAAM6g9B,oBACF7g9B,EAAMq/8B,UAAYr/8B,EAAMi0Z,YAAcj0Z,EAAMi/Y,UAC5Cj/Y,EAAM+3S,aAAatiR,gBAAgB,WAE3C,GACJ,OAGA/0B,KAAK6/8B,uBACL7/8B,KAAKmg9B,oBACDng9B,KAAK2+8B,UAAY3+8B,KAAKuzZ,YAAcvzZ,KAAKu+Y,UACzCv+Y,KAAKq3S,aAAatiR,gBAAgB,WAG9C,EAEAmtY,EAAgBvxZ,UAAU+0V,UAAY,WAClC1lW,KAAKujZ,UAAY,IAAItkE,GAAqBj/U,KAAKD,QAC/CC,KAAK+zZ,KAAKruD,UAAU1lW,KAAKD,QACzBC,KAAKisV,cAAc,CAAEtoR,YAAa3jE,KAAK+zZ,KAAKhuD,YAAY,iBAAkB,GAC1EpuO,GAAMonR,eAAe/+Y,KAAK2jE,YAAa3jE,KAAKq3S,cAC5Cr3S,KAAKqzZ,cACLrzZ,KAAKmg9B,oBACLng9B,KAAK82Z,eACT,EACAoL,EAAgBvxZ,UAAU078B,cAAgB,WACtCrs9B,KAAK0tZ,YACL1tZ,KAAKmj9B,iBACLnj9B,KAAK82Z,eACT,EACAoL,EAAgBvxZ,UAAUjN,QAAU,WAChCi0H,GAAM+oB,SAAS,GAAI1gJ,KAAKq3S,aAAcr3S,KAAKs9Y,eAAgBt9Y,KAAK+gZ,iBAChE/gZ,KAAKqs9B,eACT,EACAnqjB,EAAgBvxZ,UAAU278B,YAAc,YAC/Bts9B,KAAK4pD,MAAQ5pD,KAAKitC,MACnBjtC,KAAKisV,cAAc,CAAE/zD,SAAS,IAAQ,GACtCvgK,GAAMwnR,WAAWn/Y,KAAKk4R,QAASl4R,KAAKq3S,cAChCr3S,KAAKmV,QAAQ2f,aAAa,aAC1B90B,KAAK6+V,aAGjB,EACAqjE,EAAgBvxZ,UAAU478B,gBAAkB,SAAU56nB,EAASC,GAC3D5xV,KAAKisV,cAAc,CAAE2jE,UAAW,OAAQ,GACxC5vZ,KAAKisV,cAAc,CAAE4jE,QAAS,OAAQ,GAClCj+D,EAAQhwV,OAASgwV,EAAQhwV,MAAMwB,OAAS,EACxCpD,KAAKisV,cAAc,CAAErqV,MAAO,OAAQ,IAE/BgwV,EAAQhwV,OAASgwV,EAAQhwV,MAAMs0C,OAG/B07S,EAAQhwV,QAAUgwV,EAAQhwV,MAAMs0C,QAFrCl2C,KAAKisV,cAAc,CAAErqV,MAAO,CAAEs0C,MAAO,KAAMkD,IAAK,QAAU,GAK9Dp5C,KAAK+pY,cACL/pY,KAAK0D,SACT,EACAw+Z,EAAgBvxZ,UAAUu78B,kBAAoB,WACtCngpB,GAAkB/rU,KAAK2/8B,mBAAqB5zoB,GAAkB/rU,KAAK4/8B,qBACnE5/8B,KAAK2/8B,iBAAmB3/8B,KAAKc,cAAc,SAC3Cd,KAAK4/8B,kBAAoB5/8B,KAAKc,cAAc,UAE3CirU,GAAkB/rU,KAAKq3S,aAAa/kR,aAAa,WAClDtyB,KAAKq3S,aAAariR,aAAa,YAAah1B,KAAKq3S,aAAa/kR,aAAa,SAC3EtyB,KAAKq3S,aAAatiR,gBAAgB,SAEtCzpB,GAAWtL,KAAK2/8B,iBAAkB,CAC9B,KAAQ,OAAQ,KAAQ3/8B,KAAKq3S,aAAa/kR,aAAa,aAAc,MAASir7B,MAElFjy8B,GAAWtL,KAAK4/8B,kBAAmB,CAC/B,KAAQ,OAAQ,KAAQ5/8B,KAAKq3S,aAAa/kR,aAAa,aAAc,MAASir7B,MAElF,IAAIl47B,EAAS,CAAEzY,KAAM,WAAYqmU,SAAU,OAC3CjzU,KAAK2/8B,iBAAiB/98B,MAAQ5B,KAAK4vZ,WAAa5vZ,KAAKujZ,UAAU9jE,WAAWz/U,KAAK4vZ,UAAWvqY,GAC1FrlB,KAAK4/8B,kBAAkBh+8B,MAAQ5B,KAAK6vZ,SAAW7vZ,KAAKujZ,UAAU9jE,WAAWz/U,KAAK6vZ,QAASxqY,GACvFrlB,KAAKq3S,aAAaxhB,cAAcnkQ,YAAY1xB,KAAK2/8B,kBACjD3/8B,KAAKq3S,aAAaxhB,cAAcnkQ,YAAY1xB,KAAK4/8B,kBACrD,EACA19iB,EAAgBvxZ,UAAU678B,cAAgB,WAClCxs9B,KAAKq7b,gBACLr7b,KAAK6i9B,sBACL7i9B,KAAKyk9B,kBACDzk9B,KAAK2+8B,UACL3+8B,KAAK+i9B,mBAEJ/i9B,KAAKq0Z,YAAetoF,GAAkB/rU,KAAK0qe,aAAe3+J,GAAkB/rU,KAAK+q8B,UAClF/q8B,KAAKs9b,kBAGLt9b,KAAKqh9B,YAAarh9B,KAAK2+8B,SAAW,CAAC3+8B,KAAK0jZ,iBAAmB,CAAC1jZ,KAAK2g9B,aAAc3g9B,KAAKsh9B,gBAExFth9B,KAAKwh9B,eAEb,EAEAt/iB,EAAgBvxZ,UAAU878B,iBAAmB,SAAUvs9B,EAAMw8C,GACzD,MAAmB,UAAf18C,KAAKssE,MACEtsE,KAAKglZ,eAAe,IAAIvjZ,KAAKzB,KAAKilZ,WAAW/kZ,KAEhC,SAAfF,KAAKssE,MACH,IAAI7qE,KAAKvB,EAAKE,cAAeF,EAAKC,YAAcu8C,EAAQ,EAAI,GAAIA,EAAQ,EAAI,GAG5E,IAAIj7C,KAAKvB,EAAKE,cAAes8C,EAAQ,GAAK,EAAGA,EAAQ,GAAK,EAEzE,EASAwlX,EAAgBvxZ,UAAU+7U,kBAAoB,SAAUiF,EAASC,GAE7D,IADA,IAAIvsU,EAAS,CAAEA,OAAQrlB,KAAKy0Z,aAAc7nZ,KAAM,OAAQqmU,SAAU,OACzD3jU,EAAK,EAAGgmC,EAAK71C,OAAO8E,KAAKotV,GAAUriV,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CAC9D,IAAI3K,EAAO2wC,EAAGhmC,GAKd,OAJgB,CAAC,UAAW,UAAW,SACzB3E,QAAQhG,GAAQ,GAC1B3E,KAAKu9R,KAAK,MAEN54R,GACJ,IAAK,QACD3E,KAAKqnc,YAAYrnc,KAAKwe,OACtBm5G,GAAM4lR,eAAev9Y,KAAKq3S,aAAcr3S,KAAKozZ,aAAatmZ,WACrDi/T,GAAkB/rU,KAAKozZ,aAAahtQ,QAAQ,KAAQ2lL,GAAkB/rU,KAAKozZ,aAAatmZ,UAAUgmV,uBAAuB,yBAAyB,KAA+B,UAAxB9yV,KAAKs9Y,gBAC/Jt9Y,KAAKozZ,aAAatmZ,UAAUgmV,uBAAuB,yBAAyB,GAAG5qE,UAAU90P,IAAI,UAEjG,MACJ,IAAK,YACDpzB,KAAK498B,iBAAmB598B,KAAKq3S,aAAaz1S,MAC1C5B,KAAKisV,cAAc,CAAE9jQ,UAAWwpQ,EAAQxpQ,YAAa,GACrDnoF,KAAKqzZ,cACLrzZ,KAAK82Z,gBACL,MACJ,IAAK,cACDn/R,GAAMonR,eAAeptD,EAAQhuR,YAAa3jE,KAAKq3S,cAC/Cr3S,KAAKisV,cAAc,CAAEtoR,YAAaguR,EAAQhuR,cAAe,GACzD,MACJ,IAAK,WACDg0D,GAAMqnR,YAAYh/Y,KAAKu+Y,SAAUv+Y,KAAKq3S,cACtCr3S,KAAK0/8B,oBACL,MACJ,IAAK,WACD1/8B,KAAKuvW,eAAe5d,EAAQie,SAAUhe,EAAQge,UAC9C,MACJ,IAAK,UACD5vW,KAAKisV,cAAc,CAAE/zD,QAASy5D,EAAQz5D,UAAW,GACjDvgK,GAAMwnR,WAAWn/Y,KAAKk4R,QAASl4R,KAAKq3S,cAChCr3S,KAAKk4R,QACLl4R,KAAKq3S,aAAariR,aAAa,WAAYh1B,KAAKiF,UAGhDjF,KAAKq3S,aAAapyS,UAAY,EAElC,MACJ,IAAK,YACDjF,KAAK0/8B,oBACL,MACJ,IAAK,YACD1/8B,KAAKisV,cAAc,CAAEoM,UAAW1G,EAAQ0G,YAAa,GACrD1gO,GAAMgiR,aAAa35Y,KAAKq4V,UAAW,CAACr4V,KAAKozZ,aAAatmZ,YACtD,MACJ,IAAK,SACD9M,KAAKisV,cAAc,CAAEt9M,OAAQgjN,EAAQhjN,SAAU,GAC/C,MACJ,IAAK,SACD3uI,KAAKisV,cAAc,CAAE5mU,OAAQssU,EAAQtsU,SAAU,GAC/CrlB,KAAKo5Z,cACLp5Z,KAAKqzZ,cACLrzZ,KAAK82Z,gBACL,MACJ,IAAK,SACD92Z,KAAKujZ,UAAY,IAAItkE,GAAqBj/U,KAAKD,QAC/CC,KAAK+zZ,KAAKruD,UAAU1lW,KAAKD,QACzBC,KAAKisV,cAAc,CAAEtoR,YAAa3jE,KAAK+zZ,KAAKhuD,YAAY,iBAAkB,GAC1EpuO,GAAMonR,eAAe/+Y,KAAK2jE,YAAa3jE,KAAKq3S,cAC5Cr3S,KAAK0lW,YACL,MACJ,IAAK,iBACD1lW,KAAKy2Z,+BACLz2Z,KAAK0zZ,+BACL1zZ,KAAKm+8B,kBAAiB,GACtBn+8B,KAAKg5Z,qBAAoB,GACzB,MACJ,IAAK,kBACDrhS,GAAM+nR,eAAe1/Y,KAAK+gZ,gBAAiB/gZ,KAAKq3S,aAAcr3S,KAAKozZ,cACnEpzZ,KAAK+1Z,iBACL,MACJ,IAAK,YACgC,kBAAtBpkE,EAAQi+D,YACfj+D,EAAQi+D,UAAY5vZ,KAAKujZ,UAAU9lO,UAAUk0K,EAAQi+D,UAAWvqY,KAE/DrlB,KAAKu/8B,iBAAmB5tnB,EAAQi+D,YACjC5vZ,KAAK0qe,WAAa1qe,KAAKys9B,iBAAiB96nB,EAAQi+D,WAAW,GAC3D5vZ,KAAK0D,UACL1D,KAAK0gJ,YAET,MACJ,IAAK,UAC8B,kBAApBixM,EAAQk+D,UACfl+D,EAAQk+D,QAAU7vZ,KAAKujZ,UAAU9lO,UAAUk0K,EAAQk+D,QAASxqY,KAE3DrlB,KAAKw/8B,eAAiB7tnB,EAAQk+D,UAC/B7vZ,KAAK+q8B,SAAW/q8B,KAAKys9B,iBAAiB96nB,EAAQk+D,SAAS,GACvD7vZ,KAAK0D,UACL1D,KAAK0gJ,YAET,MACJ,IAAK,QAGD,GAFA1gJ,KAAK4yZ,mBAAqB,KAC1B5yZ,KAAK4+8B,kBAAkBjtnB,EAAQ/vV,OACA,kBAAnB+vV,EAAQ/vV,MAChB,GAAK5B,KAAK4yZ,mBAON5yZ,KAAKus9B,gBAAgB56nB,EAASC,OAPJ,CAC1B,IAAIitnB,EAAaltnB,EAAQ/vV,MAAM+wB,MAAM,IAAM3yB,KAAKmoF,UAAY,KAC5DnoF,KAAK4B,MAAQ,CAAC,IAAIH,KAAKo98B,EAAW,IAAK,IAAIp98B,KAAKo98B,EAAW,KAC3D7+8B,KAAK+pY,cACL/pY,KAAK0D,SACT,MAMMqoU,GAAkB4lB,EAAQ/vV,QAAU+vV,EAAQ/vV,MAAMwB,OAAS,IACzD2oU,GAAkB4lB,EAAQ/vV,QAAU+vV,EAAQ/vV,MAAMs0C,OACtDl2C,KAAKi9f,UAAYtrK,EAAQ/vV,MACA,OAArB+vV,EAAQ/vV,MAAM,IAAwC,OAAxB+vV,EAAQ/vV,MAAMs0C,MACf,IAAzBy7S,EAAQ/vV,MAAMwB,QAAiBuuV,EAAQ/vV,MAAMs0C,MAC7Cl2C,KAAKus9B,gBAAgB56nB,EAASC,GAEJ,OAArBD,EAAQ/vV,MAAM,IACM,OAAxB+vV,EAAQ/vV,MAAMs0C,OACfl2C,KAAKus9B,gBAAgB56nB,EAASC,IAG3B5xV,KAAKu/8B,iBAAmB5tnB,EAAQ/vV,MAAM,KACzC5B,KAAKw/8B,eAAiB7tnB,EAAQ/vV,MAAM,KACtC5B,KAAKu/8B,kBAAoB5tnB,EAAQ/vV,MAAMs0C,QACjCl2C,KAAKw/8B,eAAiB7tnB,EAAQ/vV,MAAMs0C,UACf,IAAzBy7S,EAAQ/vV,MAAMwB,QAGTuuV,EAAQ/vV,MAAMs0C,SAFnBl2C,KAAKwpe,WAAa73I,EAAQ/vV,OAK9B5B,KAAK+pY,cACL/pY,KAAK0D,aAILqoU,GAAkB/rU,KAAK4B,QACG,MAAvB+vV,EAAQ/vV,MAAMs0C,SACjBl2C,KAAKi9f,UAAYtrK,EAAQ/vV,MACzB5B,KAAK0qe,WAAa,KAClB1qe,KAAK+q8B,SAAW,KAChB/q8B,KAAKus9B,gBAAgB56nB,EAASC,IAI1C,GAAI5xV,KAAKq7b,cAAe,CACpB,GAAItvH,GAAkB/rU,KAAK0qe,aAAe3+J,GAAkB/rU,KAAK+q8B,UAK7D,OAJA/q8B,KAAKs9b,uBACDt9b,KAAK2+8B,UACL3+8B,KAAK6p9B,sBAIT7p9B,KAAK2+8B,UACL3+8B,KAAK081B,SAAS181B,KAAK4i9B,eAAgB5i9B,KAAK0qe,WAAY1qe,KAAK2nZ,eACzD3nZ,KAAK6p9B,uBAGL7p9B,KAAK081B,SAAS181B,KAAK2g9B,aAAc3g9B,KAAK0qe,WAAY1qe,KAAK2nZ,eACvD3nZ,KAAK0n9B,cAAc1n9B,KAAK2g9B,cACxB3g9B,KAAK081B,SAAS181B,KAAKsh9B,cAAeth9B,KAAK+q8B,SAAU/q8B,KAAK2nZ,eACtD3nZ,KAAK0n9B,cAAc1n9B,KAAKsh9B,gBAE5Bth9B,KAAKqh9B,YAAarh9B,KAAK2+8B,SAAW,CAAC3+8B,KAAK0jZ,iBAAmB,CAAC1jZ,KAAK2g9B,aAAc3g9B,KAAKsh9B,gBACpFth9B,KAAKwh9B,eACLxh9B,KAAKyg9B,YAAY7x8B,SAAW5O,KAAKyg9B,YAAYtr8B,QAAQvG,UAAW,CACpE,CACA5O,KAAKijZ,cAAgBjjZ,KAAKkjZ,WAAaljZ,KAAKijZ,eAAiBjjZ,KAAKijZ,cAAgBjjZ,KAAKijZ,cACvF,MACJ,IAAK,UACDjjZ,KAAKisV,cAAc,CAAE40nB,QAASlvnB,EAAQkvnB,UAAW,GACjD7g9B,KAAKqs9B,gBACLrs9B,KAAKws9B,gBACL,MACJ,IAAK,UACDxs9B,KAAKisV,cAAc,CAAE60nB,QAASnvnB,EAAQmvnB,UAAW,GACjD9g9B,KAAKqs9B,gBACLrs9B,KAAKws9B,gBACL,MACJ,IAAK,MACDxs9B,KAAKisV,cAAc,CAAEriS,IAAK5pD,KAAKglZ,eAAe,IAAIvjZ,KAAKzB,KAAKilZ,WAAWtzD,EAAQ/nS,SAAU,GACzF5pD,KAAK498B,iBAAmB598B,KAAKq3S,aAAaz1S,MAC1C5B,KAAKss9B,cACLts9B,KAAKqs9B,gBACL,MACJ,IAAK,MACDrs9B,KAAKisV,cAAc,CAAEh/S,IAAKjtC,KAAKglZ,eAAe,IAAIvjZ,KAAKzB,KAAKilZ,WAAWtzD,EAAQ1kT,SAAU,GACzFjtC,KAAKss9B,cACLts9B,KAAKqs9B,gBACL,MACJ,IAAK,aACDrs9B,KAAK4yZ,mBAAqB,KAC1B5yZ,KAAKisV,cAAc,CAAEooE,WAAY1iE,EAAQ0iE,aAAc,GACvDr0Z,KAAKqs9B,gBACL,MACJ,IAAK,UACDrs9B,KAAKisV,cAAc,CAAEs2N,QAAS5wN,EAAQ4wN,UAAW,GACjDvijB,KAAKy/8B,iBACL,MACJ,IAAK,iBACDz/8B,KAAKs9Y,eAAiB3rD,EAAQ2rD,eAC9B3lR,GAAMspR,eAAejhZ,KAAKozZ,cAC1Bz7R,GAAMwpR,YAAYnhZ,KAAKq3S,aAAcr3S,KAAKs9Y,eAAgBt9Y,KAAK2jE,aAC1DooQ,GAAkB/rU,KAAKozZ,aAAahtQ,QAAQ,KAAQ2lL,GAAkB/rU,KAAKozZ,aAAatmZ,UAAUgmV,uBAAuB,yBAAyB,KAA+B,UAAxB9yV,KAAKs9Y,gBAC/Jt9Y,KAAKozZ,aAAatmZ,UAAUgmV,uBAAuB,yBAAyB,GAAG5qE,UAAU90P,IAAI,UAEjG,MACJ,IAAK,QACDpzB,KAAKisV,cAAc,CAAE/1S,MAAOy7S,EAAQz7S,QAAS,GAC7Cl2C,KAAKqs9B,gBACL,MACJ,IAAK,QACDrs9B,KAAKisV,cAAc,CAAE3/Q,MAAOqlR,EAAQrlR,QAAS,GAC7CtsE,KAAKqs9B,gBAGjB,CACJ,EACAt8nB,IAAW,CACPjB,GAAS,OACVozE,EAAgBvxZ,UAAW,aAAS,GACvCo/U,IAAW,CACPjB,IAAS,IACVozE,EAAgBvxZ,UAAW,yBAAqB,GACnDo/U,IAAW,CACPjB,GAAS,IAAIrtV,KAAK,KAAM,EAAG,KAC5Byga,EAAgBvxZ,UAAW,WAAO,GACrCo/U,IAAW,CACPjB,GAAS,IAAIrtV,KAAK,KAAM,GAAI,MAC7Byga,EAAgBvxZ,UAAW,WAAO,GACrCo/U,IAAW,CACPjB,GAAS,OACVozE,EAAgBvxZ,UAAW,cAAU,GACxCo/U,IAAW,CACPjB,GAAS,OACVozE,EAAgBvxZ,UAAW,sBAAkB,GAChDo/U,IAAW,CACPjB,IAAS,IACVozE,EAAgBvxZ,UAAW,kBAAc,GAC5Co/U,IAAW,CACPjB,GAAS,cACVozE,EAAgBvxZ,UAAW,oBAAgB,GAC9Co/U,IAAW,CACPjB,IAAS,IACVozE,EAAgBvxZ,UAAW,mBAAe,GAC7Co/U,IAAW,CACP94T,MACDirY,EAAgBvxZ,UAAW,eAAW,GACzCo/U,IAAW,CACP94T,MACDirY,EAAgBvxZ,UAAW,iBAAa,GAC3Co/U,IAAW,CACP94T,MACDirY,EAAgBvxZ,UAAW,cAAU,GACxCo/U,IAAW,CACP94T,MACDirY,EAAgBvxZ,UAAW,eAAW,GACzCo/U,IAAW,CACP94T,MACDirY,EAAgBvxZ,UAAW,iBAAa,GAC3Co/U,IAAW,CACP94T,MACDirY,EAAgBvxZ,UAAW,qBAAiB,GAC/Co/U,IAAW,CACPjB,GAAS,OACVozE,EAAgBvxZ,UAAW,iBAAa,GAC3Co/U,IAAW,CACPjB,GAAS,OACVozE,EAAgBvxZ,UAAW,eAAW,GACzCo/U,IAAW,CACPb,GAAW,CAAC,CAAC,GAAIsunB,MAClBt7iB,EAAgBvxZ,UAAW,eAAW,GACzCo/U,IAAW,CACPjB,GAAS,KACVozE,EAAgBvxZ,UAAW,aAAS,GACvCo/U,IAAW,CACPjB,GAAS,MACVozE,EAAgBvxZ,UAAW,cAAU,GACxCo/U,IAAW,CACPjB,IAAS,IACVozE,EAAgBvxZ,UAAW,uBAAmB,GACjDo/U,IAAW,CACPjB,IAAS,IACVozE,EAAgBvxZ,UAAW,uBAAmB,GACjDo/U,IAAW,CACPjB,GAAS,UACVozE,EAAgBvxZ,UAAW,aAAS,GACvCo/U,IAAW,CACPjB,GAAS,UACVozE,EAAgBvxZ,UAAW,aAAS,GACvCo/U,IAAW,CACPjB,GAAS,KACVozE,EAAgBvxZ,UAAW,gBAAY,GAC1Co/U,IAAW,CACPjB,GAAS,MACVozE,EAAgBvxZ,UAAW,iBAAa,GAC3Co/U,IAAW,CACPjB,GAAS,OACVozE,EAAgBvxZ,UAAW,eAAW,GACzCo/U,IAAW,CACPjB,GAAS,OACVozE,EAAgBvxZ,UAAW,eAAW,GACzCo/U,IAAW,CACPjB,IAAS,IACVozE,EAAgBvxZ,UAAW,kBAAc,GAC5Co/U,IAAW,CACPjB,GAAS,OACVozE,EAAgBvxZ,UAAW,kBAAc,GAC5Co/U,IAAW,CACPjB,GAAS,OACVozE,EAAgBvxZ,UAAW,cAAU,GACxCo/U,IAAW,CACPjB,IAAS,IACVozE,EAAgBvxZ,UAAW,eAAW,GACzCo/U,IAAW,CACPjB,IAAS,IACVozE,EAAgBvxZ,UAAW,gBAAY,GAC1Co/U,IAAW,CACPjB,IAAS,IACVozE,EAAgBvxZ,UAAW,iBAAa,GAC3Co/U,IAAW,CACPjB,GAAS,UACVozE,EAAgBvxZ,UAAW,sBAAkB,GAChDo/U,IAAW,CACPjB,GAAS,OACVozE,EAAgBvxZ,UAAW,mBAAe,GAC7Co/U,IAAW,CACPjB,GAAS,CAAC,IACXozE,EAAgBvxZ,UAAW,sBAAkB,GAChDo/U,IAAW,CACP94T,MACDirY,EAAgBvxZ,UAAW,YAAQ,GACtCo/U,IAAW,CACP94T,MACDirY,EAAgBvxZ,UAAW,aAAS,GACvCo/U,IAAW,CACP94T,MACDirY,EAAgBvxZ,UAAW,cAAU,GACxCo/U,IAAW,CACP94T,MACDirY,EAAgBvxZ,UAAW,aAAS,GACvCo/U,IAAW,CACP94T,MACDirY,EAAgBvxZ,UAAW,YAAQ,GACtCuxZ,EAAkBnyE,IAAW,CACzBT,IACD4yE,EAEP,CAhzIqC,CAgzInCrf,IC36IE38V,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAsBzCsm6B,IAA0C,SAAU5l6B,GAEpD,SAAS4l6B,EAAyBtt9B,GAC9B,IAAIE,EAAQwnD,EAAOnnD,KAAKK,KAAMZ,IAAUY,KAQxC,OAPAV,EAAMixW,kBAAmB,EACzBjxW,EAAM2zW,sBAAuB,EAC7B3zW,EAAM+zW,cAAgB,CAAE,QAAW,UACnC/zW,EAAM42W,uBAAyB,KAC/B52W,EAAMyzW,cAAgB,KACtBzzW,EAAM62W,iBAAkB,EACxB72W,EAAMwxW,QAAU,GACTxxW,CACX,CAUA,OArBA4mD,IAAUwm6B,EAA0B5l6B,GAYpC4l6B,EAAyB/78B,UAAUyJ,OAAS,WACxC,KAAMpa,KAAKmV,UAAYnV,KAAKuwW,kBAAqBvwW,KAAK2rV,aAAgB3rV,KAAKwwW,oBAKvE,OAAO13K,GAAAA,cAAoBA,GAAAA,SAAgB,KAAM,GAAG1/K,OAAO0/K,GAAAA,cAAoB,QAAS94L,KAAKgyW,wBAAyBhyW,KAAK8wW,UAJ3HhqT,EAAOn2C,UAAUyJ,OAAOza,KAAKK,MAC7BA,KAAKuwW,kBAAmB,CAKhC,EACOm8mB,CACX,CAvB8C,CAuB5CxqjB,KAEF5sD,GAAYo3mB,IAA0B,CAACx8mB,GAAep3K,GAAAA,YC/CtD,IAAI5yI,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAsBzCum6B,IAAsC,SAAU7l6B,GAEhD,SAAS6l6B,EAAqBvt9B,GAC1B,IAAIE,EAAQwnD,EAAOnnD,KAAKK,KAAMZ,IAAUY,KAQxC,OAPAV,EAAMixW,kBAAmB,EACzBjxW,EAAM2zW,sBAAuB,EAC7B3zW,EAAM+zW,cAAgB,CAAE,iBAAoB,mBAC5C/zW,EAAM42W,uBAAyB,KAC/B52W,EAAMyzW,cAAgB,KACtBzzW,EAAM62W,iBAAkB,EACxB72W,EAAMwxW,QAAU,GACTxxW,CACX,CAUA,OArBA4mD,IAAUym6B,EAAsB7l6B,GAYhC6l6B,EAAqBh88B,UAAUyJ,OAAS,WACpC,KAAMpa,KAAKmV,UAAYnV,KAAKuwW,kBAAqBvwW,KAAK2rV,aAAgB3rV,KAAKwwW,oBAKvE,OAAO13K,GAAAA,cAAoB,SAAU94L,KAAKgyW,uBAAwB,GAAG54V,OAAOpZ,KAAKZ,MAAM0G,SAAU9F,KAAK8wW,UAJtGhqT,EAAOn2C,UAAUyJ,OAAOza,KAAKK,MAC7BA,KAAKuwW,kBAAmB,CAKhC,EACOo8mB,CACX,CAvB0C,CAuBxCn7a,KAEFl8L,GAAYq3mB,IAAsB,CAACz8mB,GAAep3K,GAAAA,YC/ClD,IAAI5yI,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAsBzCwm6B,IAAsC,SAAU9l6B,GAEhD,SAAS8l6B,EAAqBxt9B,GAC1B,IAAIE,EAAQwnD,EAAOnnD,KAAKK,KAAMZ,IAAUY,KAOxC,OANAV,EAAMixW,kBAAmB,EACzBjxW,EAAM2zW,sBAAuB,EAC7B3zW,EAAM42W,uBAAyB,KAC/B52W,EAAMyzW,cAAgB,KACtBzzW,EAAM62W,iBAAkB,EACxB72W,EAAMwxW,QAAU,GACTxxW,CACX,CAUA,OApBA4mD,IAAU0m6B,EAAsB9l6B,GAWhC8l6B,EAAqBj88B,UAAUyJ,OAAS,WACpC,KAAMpa,KAAKmV,UAAYnV,KAAKuwW,kBAAqBvwW,KAAK2rV,aAAgB3rV,KAAKwwW,oBAKvE,OAAO13K,GAAAA,cAAoBA,GAAAA,SAAgB,KAAM,GAAG1/K,OAAO0/K,GAAAA,cAAoB,QAAS94L,KAAKgyW,wBAAyBhyW,KAAK8wW,UAJ3HhqT,EAAOn2C,UAAUyJ,OAAOza,KAAKK,MAC7BA,KAAKuwW,kBAAmB,CAKhC,EACOq8mB,CACX,CAtB0C,CAsBxC13X,KAEF5/O,GAAYs3mB,IAAsB,CAAC18mB,GAAep3K,GAAAA,YC9ClD,IAAI5yI,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAsBzCym6B,IAAmC,SAAU/l6B,GAE7C,SAAS+l6B,EAAkBzt9B,GACvB,IAAIE,EAAQwnD,EAAOnnD,KAAKK,KAAMZ,IAAUY,KAOxC,OANAV,EAAMixW,kBAAmB,EACzBjxW,EAAM2zW,sBAAuB,EAC7B3zW,EAAM42W,uBAAyB,KAC/B52W,EAAMyzW,cAAgB,KACtBzzW,EAAM62W,iBAAkB,EACxB72W,EAAMwxW,QAAU,GACTxxW,CACX,CAUA,OApBA4mD,IAAU2m6B,EAAmB/l6B,GAW7B+l6B,EAAkBl88B,UAAUyJ,OAAS,WACjC,KAAMpa,KAAKmV,UAAYnV,KAAKuwW,kBAAqBvwW,KAAK2rV,aAAgB3rV,KAAKwwW,oBAKvE,OAAO13K,GAAAA,cAAoBA,GAAAA,SAAgB,KAAM,GAAG1/K,OAAO0/K,GAAAA,cAAoB,QAAS94L,KAAKgyW,wBAAyBhyW,KAAK8wW,UAJ3HhqT,EAAOn2C,UAAUyJ,OAAOza,KAAKK,MAC7BA,KAAKuwW,kBAAmB,CAKhC,EACOs8mB,CACX,CAtBuC,CAsBrCt6Q,KAEFj9V,GAAYu3mB,IAAmB,CAAC38mB,GAAep3K,GAAAA,4BC1CpCg0xB,IAAY,YAMZtioB,IAAS,SAITqpI,IAAc,cAEdH,IAAiB,iBAEjB9/B,IAAgB,gBAEhBm5hB,IAAa,aAEbC,IAAa,aAEbC,IAAa,aAEbC,IAAgB,gBAMhBl0b,IAAY,YAEZC,IAAa,aAcbk0b,IAAc,cAEdC,IAAa,aAWb7tX,IAAY,aAEZ8tX,IAAe,gBAEf7tX,IAAe,gBAIf8tX,IAAgB,iBAEhBC,IAAiB,mBAEjB9tX,IAAW,YAEX+tX,IAAgB,iBAEhBC,IAAgB,kBCtEhBC,IAAa,MACbzz2B,IAAgB,IAQpB,SAAS0z2B,IAA0B7g9B,EAAWgpgB,GACjD,IAAIltX,EACA17I,EAAKpM,GAAc,MAAO,CAAEC,UAAW+0gB,IAAgB3ye,YAM3D,OALAj2B,EAAG/G,MAAMohQ,WAAa,SACtBr6P,EAAG/G,MAAM+jF,SAAW,WACpBp9E,EAAU4kB,YAAYxkB,GACtB07I,EAAS17I,EAAGunR,wBAAwB7rI,OACpCz1H,GAAOjmB,GACA07I,CACX,CAwBO,SAASgl0B,IAAcz48B,GAC1B,IAAIhP,EAAQqsR,iBAAiBr9Q,GAC7B,OAAO6b,OAAO687B,gBACV,IAAIA,gBAAgB1n9B,EAAM2n9B,iBAAiBC,IAAM,CACzD,CAOO,SAASC,IAAc748B,GAC1B,IAAIhP,EAAQqsR,iBAAiBr9Q,GAC7B,OAAO6b,OAAO687B,gBACV,IAAIA,gBAAgB1n9B,EAAM2n9B,iBAAiBG,IAAM,CACzD,CAQO,SAASC,IAAiBhu9B,EAAM+L,GACnC,IAAIwwX,EAAQ,IAAIh7X,KAAKvB,EAAKwB,WAE1B,OADAuK,GAAkBA,EAAiBwwX,EAAM94X,SAAW,GAAY,EACzD,IAAIlC,KAAKg7X,EAAM/4X,QAAQ+4X,EAAMn6X,UAAY2J,GACpD,CAQO,SAASki9B,IAAgBju9B,EAAM+L,GAClC,IAAImi9B,EAAYF,IAAiBhu9B,EAAM+L,GACnCoi9B,EAAW,IAAI5s9B,KAAK2s9B,EAAUhu9B,cAAegu9B,EAAUju9B,WAAYiu9B,EAAU9r9B,UAAY,GAC7F,OAAO,IAAIb,KAAK4s9B,EAAS3s9B,UAC7B,CAOO,SAAS4s9B,IAAiBpu9B,GAC7B,OAAO,IAAIuB,KAAKvB,EAAKE,cAAeF,EAAKC,WAAY,EACzD,CAOO,SAASou9B,IAAgBru9B,GAC5B,OAAO,IAAIuB,KAAKvB,EAAKE,cAAeF,EAAKC,WAAa,EAAG,EAC7D,CAOO,SAASsD,IAAcvD,GAC1B,IAAIu8X,EAAQ,IAAIh7X,KAAKvB,EAAKE,cAAe,EAAG,GAAG0B,UAE3Cke,GADc,IAAIve,KAAKvB,EAAKE,cAAeF,EAAKC,WAAYD,EAAKoC,WAAWR,UAChD26X,EAAQixlB,KAAcA,IACtD,OAAO9p9B,KAAKC,KAAKmc,EAAY,EACjC,CAkBO,SAASm1F,IAAQj1G,EAAMuiB,GAC1B,IAAI+r8B,EAAiBtu9B,EAAKshB,oBACtBhgB,EAAI,IAAIC,KAAKvB,EAAKwB,UAAY+gB,GAC9BysY,EAAe1tZ,EAAEggB,oBAAsBgt8B,EAE3C,OADAtu9B,EAAKi1G,QAAQ3zG,EAAEE,UAAYwtZ,EAAej1S,KACnC/5G,CACX,CAOO,SAASuu9B,IAAUvu9B,GACtB,OAAO,IAAIuB,KAAKvB,EAAKE,cAAeF,EAAKC,WAAYD,EAAKoC,UAC9D,CAOO,SAASos9B,IAAYxu9B,GACxB,IAAIyu9B,EAAc,IAAIlt9B,KAAKvB,EAAKE,cAAeF,EAAKC,WAAYD,EAAKoC,UAAW,EAAG,EAAG,GAAGkf,oBAErFF,EADaphB,EAAKshB,oBACYmt8B,EAClC,OAASzu9B,EAAKwB,UAAY,IAAID,KAAKvB,EAAKE,cAAeF,EAAKC,WAAYD,EAAKoC,UAAW,EAAG,EAAG,GAAGZ,UACzE,GAAjB4f,EAAsB,GACjC,CAkBO,SAASst8B,IAAQ1u9B,EAAM2u9B,GAE1B,OADA3u9B,EAAO,IAAIuB,KAAK,GAAKvB,GACd,IAAIuB,KAAKvB,EAAKwD,QAAQxD,EAAKoC,UAAYus9B,GAClD,CAQO,SAAS9s9B,IAAU7B,EAAM4u9B,GAE5B,IAAI7r9B,GADJ/C,EAAO,IAAIuB,KAAK,GAAKvB,IACNoC,UAIf,OAHApC,EAAKwD,QAAQ,GACbxD,EAAKgC,SAAShC,EAAKC,WAAa2u9B,GAChC5u9B,EAAKwD,QAAQE,KAAKgmD,IAAI3mD,EAAKksZ,IAAWjvZ,KAC/BA,CACX,CAwBO,SAAS6u9B,IAAiB7u9B,EAAM8u9B,EAAWC,GAC9C,IAAIxylB,EAAQ,IAAIh7X,KAAKvB,EAAKwB,WAC1B+6X,EAAMh6X,SAASus9B,EAAU7r8B,YACzBs5W,EAAM73R,WAAWoq3B,EAAU5r8B,cAC3Bq5W,EAAM/3R,WAAWsq3B,EAAU3r8B,cAC3B,IAAIq5W,EAAQ,IAAIj7X,KAAKvB,EAAKwB,WAS1B,OAR2B,IAAvBut9B,EAAQ9r8B,WACRu5W,EAAQkylB,IAAQlylB,EAAO,IAGvBA,EAAMj6X,SAASws9B,EAAQ9r8B,YACvBu5W,EAAM93R,WAAWqq3B,EAAQ7r8B,cACzBs5W,EAAMh4R,WAAWuq3B,EAAQ5r8B,eAEtB,CAAE2r8B,UAAWvylB,EAAOwylB,QAASvylB,EACxC,CAOO,SAASyyB,IAAWjvZ,GACvB,OAAOqu9B,IAAgBru9B,GAAMoC,SACjC,CAmBO,SAAS4s9B,IAAkBhv9B,GAC9B,OAAiC,IAA1BA,EAAKyK,QAAQ,QAAiB,IAAIlJ,KAAK8qB,SAASrsB,EAAKiX,MAAM,QAAQL,WAAY,MAC3D,IAAvB5W,EAAKyK,QAAQ,KAAc,IAAIlJ,KAAKvB,GAAQ,IAAIuB,KAAKvB,EAAKmQ,QAAQ,KAAM,KAChF,CAOO,SAASm1nB,MACZ,IACI5joB,EADAkkhB,EAAUhlhB,GAAc,OAE5BglhB,EAAQ3/gB,MAAM6pqB,QAAU,8EACxB9+oB,SAASzd,KAAKie,YAAYo0f,GAC1B,IAAI86Y,EAASzioB,iBAAqD,SAAhCA,iBAAiBz7K,QAAQ,IAAiBy7K,kBAAoB,EAC5Fv6R,KAAKC,KAAKs6R,iBAAmB,GAAKv6R,KAAKiG,MAAMs0R,iBAAmB,GAAK,EAGzE,OAFAv8R,EAASkkhB,EAAQ31Q,YAAc21Q,EAAQ/gR,YAAc67pB,EAAS,EAC9D1v4B,SAASzd,KAAK0hB,YAAY2wf,GACnBlkhB,CACX,CAYO,SAASut9B,IAAgBjl7B,EAAMk1E,EAAOx9G,EAAOm1B,EAAOq47B,GACvD,IAAK,IAAIjj9B,EAAI,EAAG40S,EAAW72Q,EAAK9mC,OAAQ+I,EAAI40S,EAAU50S,IAClD,GAAI+9B,EAAK3d,SAASpgB,EAAE2K,WAAY,KAAK,GAAKsoG,KAAWx9G,EAAO,CACxD,IAAIm1B,EASA,OAAO5qB,EARP,IAAIkj9B,EAAUD,EAAmBx+8B,OAAO,GAAG,GAAGwuG,MAG9C,IAFWroF,EAAM,GAAKs47B,aAAoB3+8B,MAAQqmB,EAAM,GAAKs47B,GAAW,CAACt47B,EAAM,GAAKs47B,KAClErp9B,KAAK,KACXwkD,SAAStgB,EAAK3d,SAASpgB,EAAE2K,WAAY,KAAKs48B,EAAmBx+8B,OAAO,GAAG,GAAG0+8B,eAClF,OAAOnj9B,CAMnB,CAEJ,OAAQ,CACZ,CAOO,SAASoj9B,IAAep68B,GAC3B,IAAIhP,EAAQqsR,iBAAiBr9Q,GAC7B,OAAOA,EAAQ4/Q,cAAgBxoQ,SAASpmB,EAAMqvR,UAAW,KAAO,IAAMjpQ,SAASpmB,EAAM+wR,aAAc,KAAO,EAC9G,CAOO,SAASs4rB,IAAer68B,GAE3B,IADA,IACS7F,EAAK,EAAGmg9B,EADK,GAAG7+8B,MAAMjR,KAAKwV,EAAQrP,UACUwJ,EAAKmg9B,EAAkBrs9B,OAAQkM,IAAM,CACvF,IAAIog9B,EAAeD,EAAkBng9B,GACrC6F,EAAQggB,YAAYu67B,EACxB,CACJ,CAOO,SAASz52B,IAAqB/1G,GACjC,IAAIyv9B,EAAM,IAAIlu9B,KAAKvB,EAAKE,cAAe,EAAG,GACtCwv9B,EAAM,IAAInu9B,KAAKvB,EAAKE,cAAe,EAAG,GAC1C,OAAOF,EAAKshB,oBAAsB5d,KAAKqpC,IAAI0i7B,EAAInu8B,oBAAqBou8B,EAAIpu8B,oBAC5E,CAOO,SAASqu8B,IAAiB3v9B,GAC7B,IAAIwe,EAAOxe,EAAKE,cACZ6I,EAAQ/I,EAAKC,WACb8C,EAAM/C,EAAKoC,UACXub,EAAQ3d,EAAKijB,WACbrF,EAAU5d,EAAKkjB,aACfo8E,EAAUt/F,EAAKmjB,aACfpB,EAAe/hB,EAAKojB,kBACxB,OAAO7hB,KAAKyhB,IAAIxE,EAAMzV,EAAOhG,EAAK4a,EAAOC,EAAS0hF,EAASv9E,EAC/D,CAwBO,SAAS6t8B,IAAoBt22B,EAAa5sG,GAC7C,GAAa,aAATA,EACA4sG,EAAcA,EAAY7mF,MAAM,KAAK1sB,KAAI,SAAU5F,GAAK,OAAOA,EAAE8jE,OAAO,GAAGozV,oBAAsBl3Z,EAAE6mB,UAAU,EAAI,IAAGlhB,KAAK,UAExH,GAAa,WAAT4G,EAAmB,CACxB,GAAI4sG,EAAY,IAAM,KAAOA,EAAY,IAAM,IAAK,CAChD,IAAIxwF,EAAQwwF,EAAYriG,MAAM,YAC9BqiG,EAAcuyN,GAAkB/iT,GAASwwF,EACrCA,EAAY5oG,MAAM,EAAGoY,EAAMyD,OAAS+sF,EAAYxwF,EAAMyD,OAAO8qY,oBAAsB/9S,EAAY5oG,MAAMoY,EAAMyD,MAAQ,EAC3H,CACA+sF,EAAcA,EAAY,GAAG+9S,oBAAsB/9S,EAAY5oG,MAAM,EACzE,CACA,OAAO4oG,CACX,CC/YO,IAAIwoS,IAAO,aAEPE,IAAM,QAEN6tkB,IAAe,WAEfC,IAAa,eAEbn0sB,IAAO,UAEPo0sB,IAAe,WAEfC,IAAgB,YAEhBC,IAAwB,oBAIxBC,IAAqB,kBAMrBC,IAAmB,gBAEnBC,IAAsB,kBAEtBC,IAAmB,eAEnBC,IAAmB,eAEnBhnb,IAAa,eAIbinb,IAAyB,qBAEzBC,IAA8B,0BAE9BC,IAAqB,iBAUrBC,IAAmB,gBAEnBC,IAAoB,gBAEpBC,IAAoB,iBAEpBC,IAAsB,kBAEtBC,IAAuB,mBAEvBC,IAAmB,eAMnBC,IAAkB,cAMlBC,IAAoB,gBAIpBC,IAA6B,yBAE7BC,IAAsB,kBAEtBC,IAA6B,yBAE7BC,IAA8B,0BAE9BC,IAAuB,eAEvBC,IAAwB,gBAExBC,IAAwB,oBAExBC,IAA0B,sBAE1BC,IAA2B,uBAE3BC,IAAuB,mBAEvBC,IAAwB,oBAExBC,IAAmB,eAEnBC,IAAkB,eAElBC,IAAwB,oBAExBC,IAAqB,iBAErBC,IAAyB,qBAEzBC,IAA0B,sBAE1BC,IAAoB,gBAEpBC,IAAyB,qBAIzBC,IAAyB,qBAEzBC,IAA4B,wBAE5BC,IAAoB,gBAIpBC,IAA6B,wCAE7BC,IAAiB,qBAEjBC,IAA0B,8BAE1BC,IAAsB,kBAEtBC,IAA4B,wBAE5BC,IAAoB,gBAIpBC,IAA0B,sBAE1BC,IAA8B,0BAE9BC,IAAoB,gBAEpBC,IAA0B,sBAE1BC,IAAwB,oBAExBC,IAAqB,uBAErBC,IAAsB,wBAEtBC,IAAe,iBAIfC,IAAmB,SAEnBC,IAAmB,eAEnBC,IAAoB,gBAEpBC,IAAqB,iBAErBC,IAAsB,kBAMtBC,IAAuB,8BAUvBC,IAAiB,aAEjBC,IAAoB,gBAQpBC,IAAkB,cAUlBC,IAAwB,cAMxBC,IAAwB,cAExBC,IAAyB,eAEzBC,IAAqB,iBAErBC,IAAkB,cAElBC,IAAsB,yBAItBC,IAA6B,yBAE7BC,IAAmB,eAEnBC,IAAqB,iBAErBC,IAAqB,iBAErBC,IAAsB,iBAEtBC,IAAuB,kBAMvBC,IAA8B,oBAE9BC,IAAmC,yBAEnCC,IAAmB,eAEnBC,IAAmC,gCAEnCC,IAA2B,wBAE3BC,IAAoB,qBAEpBC,IAA0B,sBAE1BC,IAAmC,gCAEnCC,IAA+B,uBAE/BC,IAAiC,yBAEjCC,IAAuB,mBAEvBC,IAAmB,eAEnBC,IAAoB,gBAIpBC,IAAqB,iBAErBC,IAA4B,wBAI5BC,IAAqB,iBAErBC,IAA0B,sBAI1BC,IAAkC,kBAElCC,IAAqB,iBAErBC,IAAmB,eAEnBC,IAAqB,iBAErBC,IAAgB,kBAEhBC,IAA2B,uBAE3BC,IAAyB,qBAIzBC,IAA+B,2BAE/BC,IAA8B,eAE9BC,IAA+B,gBAE/BC,IAAyB,qBAEzBC,IAA2B,uBAE3BC,IAA2B,6BAI3BC,IAAgC,kCAEhCC,IAA4B,8BAE5BC,IAAsC,kCAEtCC,IAA0B,4BAE1BC,IAA4B,wBAE5BC,IAA4B,wBAE5BC,IAAwB,kBAExBC,IAA4B,sBAE5BC,IAA+B,yBAE/BC,IAA+B,2BAE/BC,IAA4B,oBAI5BC,IAAa,kBAIbC,IAA6B,YAE7BC,IAAkB,cAQlBC,IAA4B,WAI5BC,IAAgB,YAEhBC,IAAiB,aAIjBC,IAAyB,qBAIzBC,IAA2B,UAE3BC,IAAyB,QAIzBC,IAAoB,gBAIpBC,IAA4B,wBAE5BC,IAAmC,kBAEnCC,IAA8B,oBAE9BC,IAA4B,kBAI5BC,IAA+B,cAE/BC,IAAmC,iBAEnCC,IAAiC,eAIjCC,IAAgC,eAEhCC,IAAkC,iBAElCC,IAAa,SAEbC,IAAkB,cAElBC,IAAe,WAEfC,IAAoB,gBAEpBC,IAAc,UAEdC,IAAmB,eAEnBC,IAAyB,mBAIzBC,IAA2B,YAM3BC,IAAe,WAEfC,IAAgB,kBAEhBC,IAAsB,wBAItBC,IAAgB,kBAEhBC,IAAqB,cAErBC,IAAuB,yBAIvBC,IAA8B,gCAE9BC,IAAsB,wBAEtBC,IAAiB,aAEjBC,IAAsB,kBAEtBC,IAAyB,qBAEzBC,IAAuB,mBAEvBC,IAAuB,mBAEvBC,IAAqB,iBAErBC,IAAc,gBAEdC,IAAoB,sBAIpB9mtB,IAAY,cAIZ+mtB,IAAuB,mBAEvBC,IAA2B,uBAE3BC,IAAgB,kBAEhBC,IAA4B,mBAE5BC,IAA0B,iBCrcjCC,IAAgC,WAChC,SAASA,EAAeny7B,GACpBnoC,KAAKmoC,OAASA,EACdnoC,KAAK+zZ,KAAO/zZ,KAAKmoC,OAAOkje,UACxBrrgB,KAAKw33B,eACLx33B,KAAKs7B,kBACT,CAgiBA,OA/hBAg/7B,EAAe3p9B,UAAU2qB,iBAAmB,WACxCt7B,KAAKmoC,OAAO5uB,GAAG6hH,IAAsBp7H,KAAKu69B,iBAAkBv69B,KAChE,EACAs69B,EAAe3p9B,UAAUyqB,oBAAsB,WAC3Cp7B,KAAKmoC,OAAO3uB,IAAI4hH,IAAsBp7H,KAAKu69B,iBAC/C,EACAD,EAAe3p9B,UAAU4p9B,iBAAmB,SAAUl69B,GAClD,IAAI0kkB,EAAatve,GAAQp1F,EAAE02B,MAAM1uB,OAAQ,oDACrCmy9B,EAAa/k4B,GAAQp1F,EAAE02B,MAAM1uB,OAAQ,6BACrCoy9B,EAAcz69B,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KAC1D,GAAI7va,KAAKmoC,OAAOumrB,WACZ,GAAK3iZ,GAAkByupB,KAAgBA,EAAWtysB,UAAUh1P,SAAS,mBACjEsn8B,EAAWtysB,UAAUh1P,SAAS,cAAmBsn8B,EAAWtysB,UAAUh1P,SAAS,cAC/ElzB,KAAKmV,QAAQykB,cAAc,kBAAkBsuP,UAAUh1P,SAAS28Y,KAG/D,CACD5nJ,GAAY,CAACwysB,GAAc5qjB,KAC3B,IAAIu1B,EAAWplc,KAAKmV,QAAQykB,cAAc,kBAC1C,IAAKmyS,GAAkBq5H,GAAW,CAC9B,IAAIxvC,EAAWwvC,EAASp4G,cAAc,IAClC4oE,IAAe7pF,GAAkByupB,IAAeA,EAAWtysB,UAAUh1P,SAAS,cAC9Ekya,EAASl9K,UAAUh1P,SAAS28Y,MAC5Bja,EAASr4H,MAEjB,CACJ,MAZI/U,GAAS,CAACiysB,GAAc5qjB,KAc3B9jG,GAAkBg5P,IAGvB/kkB,KAAK069B,iBACT,EACAJ,EAAe3p9B,UAAU+p9B,gBAAkB,WACnC169B,KAAK269B,aACL369B,KAAK269B,YAAYp9rB,MAEzB,EACA+8rB,EAAe3p9B,UAAU6m3B,aAAe,WACpCx33B,KAAKmV,QAAUrU,GAAc,MAAO,CAAEC,UDqEf,iCCpEvB,IAAI4vpB,EAAa7vpB,GAAc,MAAO,CAAEC,UAAW8ua,MACnD7va,KAAKmV,QAAQuc,YAAYi/nB,GACzB3wpB,KAAKmoC,OAAOhzB,QAAQwf,aAAa30B,KAAKmV,QAASnV,KAAKmoC,OAAOhzB,QAAQm1B,mBACnEtqC,KAAKmsjB,eACT,EACAmua,EAAe3p9B,UAAUw7iB,cAAgB,WACrC,IAAI7sjB,EAAQU,KACR8nD,EAAQ9nD,KAAKw4b,WACjBx4b,KAAKmoC,OAAOm4P,QAAQllK,IAAoB,CAAEu8S,YAAa,uBAAwB7vX,MAAOA,IAAS,SAAU7uC,GACrG3Z,EAAMungB,WAAa,IAAIiyB,IAAQ,CAC3Bhxe,MAAO7uC,EAAK6uC,MACZwye,aAAc,QACdiyB,QAASjtjB,EAAM60jB,oBAAoBt0jB,KAAKP,GACxC+4V,UAAW/4V,EAAM6oC,OAAOkwT,UACxB00F,oBAAqBztb,EAAM6oC,OAAO4kZ,oBAClChtb,OAAQT,EAAM6oC,OAAOpoC,SAEzBT,EAAMungB,WAAWnuK,SAASp5V,EAAM6oC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,MACnE,IAAI+qjB,EAAat79B,EAAMungB,WAAW1xf,QAAQykB,cAAc,WACpDgh8B,GACAA,EAAWtw7B,kBAAkBtV,aAAa,QAAS11B,EAAMy0Z,KAAKhuD,YAAY,aAE9E,IAAI80nB,EAAav79B,EAAMungB,WAAW1xf,QAAQykB,cAAc,WACpDih8B,GACAA,EAAWvw7B,kBAAkBtV,aAAa,QAAS11B,EAAMy0Z,KAAKhuD,YAAY,SAE9EzmW,EAAMw79B,gBACNx79B,EAAMy79B,mBACNz79B,EAAM6oC,OAAOm4P,QAAQllK,IAAuB,CAAEu8S,YAAa,sBAAuB7vX,MAAOxoD,EAAMungB,WAAW/+c,OAC9G,GACJ,EACAwy6B,EAAe3p9B,UAAUqq9B,YAAc,WACnC,IAAI179B,EAAQU,KACZ,GAAIA,KAAK6mgB,WAAY,CACjB,IAAI/+c,EAAQ9nD,KAAKw4b,WACjBx4b,KAAKmoC,OAAOm4P,QAAQllK,IAAoB,CAAEu8S,YAAa,uBAAwB7vX,MAAOA,IAAS,SAAU7uC,GACrG3Z,EAAMungB,WAAW/+c,MAAQ7uC,EAAK6uC,MAC9BxoD,EAAMungB,WAAWz6K,WACjB9sV,EAAM6oC,OAAOm4P,QAAQllK,IAAuB,CAAEu8S,YAAa,sBAAuB7vX,MAAOxoD,EAAMungB,WAAW/+c,OAC9G,GACJ,CACJ,EACAwy6B,EAAe3p9B,UAAUsq9B,wBAA0B,WAC/C,OAAIj79B,KAAKmoC,OAAOumrB,WACL1utB,KAAK6mgB,WAAW1xf,QAEpBnV,KAAKmV,QAAQykB,cAAc,gBACtC,EACA0g8B,EAAe3p9B,UAAUuq9B,aAAe,SAAUzu8B,GAC1CzsB,KAAKm79B,iBACLn79B,KAAKm79B,eAAelv9B,eAAiBwgB,EACrCzsB,KAAKm79B,eAAe/uoB,WAE5B,EACAkuoB,EAAe3p9B,UAAUyq9B,gBAAkB,SAAUl79B,GAC7CF,KAAKm79B,iBACLn79B,KAAKm79B,eAAev59B,MAAQ1B,EAC5BF,KAAKm79B,eAAe/uoB,WAE5B,EACAkuoB,EAAe3p9B,UAAU0q9B,sBAAwB,WACzCr79B,KAAKm79B,iBACLn79B,KAAKm79B,eAAevx6B,IAAM5pD,KAAKmoC,OAAOo1V,QACtCv9X,KAAKm79B,eAAelu7B,IAAMjtC,KAAKmoC,OAAOq1V,QACtCx9X,KAAKm79B,eAAe/uoB,WAE5B,EACAkuoB,EAAe3p9B,UAAU248B,gBAAkB,WACvC,MAAI,CAAC,QAAS,cAAe,iBAAiB3+8B,QAAQ3K,KAAKmoC,OAAOw/W,cAAgB,EACvE,OAEF,CAAC,OAAQ,gBAAgBh9Y,QAAQ3K,KAAKmoC,OAAOw/W,cAAgB,EAC3D,SAGA,OAEf,EACA2ykB,EAAe3p9B,UAAU2q9B,gBAAkB,WACvC,GAAIt79B,KAAKm79B,eAAgB,CACrB,IAAII,EAAev79B,KAAKsp9B,kBACxBtp9B,KAAKm79B,eAAe7u5B,MAAQiv5B,EAC5Bv79B,KAAKm79B,eAAejl7B,MAAQql7B,EAC5Bv79B,KAAKm79B,eAAetioB,SACxB,CACJ,EACAyhoB,EAAe3p9B,UAAUoq9B,iBAAmB,WACxC,IAAI9ub,EAAS,GAAGr7hB,MAAMjR,KAAKK,KAAK6mgB,WAAW1xf,QAAQ3E,iBAAiB,aACpEy3Q,GAAYgkR,EAAQ,CAAC,kBACjBA,EAAO7oiB,OAAS,GAAK6oiB,EAAOjsiB,KAAKmoC,OAAOqz7B,YACxChzsB,GAAS,CAACyjR,EAAOjsiB,KAAKmoC,OAAOqz7B,YAAa,CAAC,iBAEnD,EACAlB,EAAe3p9B,UAAU8q9B,gBAAkB,SAAUv79B,GACjD,IAAI+riB,EAASjsiB,KAAK6mgB,WAAW1xf,QAAQykB,cAAc,iBACnD,GAAKqygB,EAAL,CAGA,IAAI6/B,EAAU7/B,EAAOrygB,cAAc,oBACnC,GAAI55B,KAAKmoC,OAAOuz7B,kBAAkBC,kBAAmB,CACjD7vZ,EAAQliiB,YAAc,GACtB,IAAI3wB,EAAO,CACP22Y,UAAW5vZ,KAAKmoC,OAAOyz7B,WAAWC,eAClChskB,QAAS7vZ,KAAKmoC,OAAOyz7B,WAAWE,aAAcn0kB,YAAa3nZ,KAAKmoC,OAAOw/W,aAEvEo0kB,EAAW/79B,KAAKmoC,OAAOuz7B,kBAAkBM,sBACzC7unB,EAAantW,KAAKmoC,OAAOhzB,QAAQghB,GAAK,IAAM4l8B,EAAW,oBAE3D/o2B,GADmB,GAAGpiH,MAAMjR,KAAKK,KAAKmoC,OAAO8z7B,sBAAZj89B,CAAmCiZ,EAAMjZ,KAAKmoC,OAAQ,oBAAqBglU,GAAY,IACnG2+N,EACzB,KACK,CACD,IAAI7riB,EAAOjgC,KAAKmoC,OAAOyz7B,WAAWM,iBAAiBh89B,GACnD+riB,EAAO3hgB,kBAAkBtV,aAAa,aAAciL,GACpD6riB,EAAQliiB,YAAc3J,CAC1B,CACAjgC,KAAK64V,SAlBL,CAmBJ,EACAyhoB,EAAe3p9B,UAAUkoV,QAAU,WAC3B74V,KAAK6mgB,YACL7mgB,KAAK6mgB,WAAW+2B,iBAExB,EACA08b,EAAe3p9B,UAAUmq9B,cAAgB,WACrC,IAAIqB,EAASn89B,KAAK6mgB,WAAW1xf,QAAQykB,cAAc,UAC/Cui8B,IACKn89B,KAAKmoC,OAAOi07B,cAAcpuV,YAI3B/lX,GAAY,CAACk0sB,GAAStsjB,KAHtBrnJ,GAAS,CAAC2zsB,GAAStsjB,KAM/B,EACAyqjB,EAAe3p9B,UAAUur9B,iBAAmB,WAIxC,OAAOG,IAHUr89B,KAAKmoC,OAAOo7W,UAAU9jE,WAAWz/U,KAAKmoC,OAAO+/W,aAAc,CACxE7iY,OAAQ,SAAUs2E,SAAU37F,KAAKmoC,OAAOm07B,oBAEA,SAChD,EACAhC,EAAe3p9B,UAAU6nb,SAAW,WAChC,IAAI1wY,EAAQ,GAiCZ,GAhCAA,EAAM17C,KAAK,CACPoyS,MAAO,OAAQumP,WAAY,cAAeG,YAAa,WAAYzsc,SAAU,OAC7Em3Q,SAAU,SAAU0mD,eAAgB,CAAE,KAAQ,gBAElDxuW,EAAM17C,KAAK,CACPoyS,MAAO,OAAQumP,WAAY,cAAeG,YAAa,OAAQzsc,SAAU,OACzEm3Q,SAAU,SAAU0mD,eAAgB,CAAE,KAAQ,gBAElDxuW,EAAM17C,KAAK,CACPoyS,MAAO,OAAQv+Q,KAAMjgC,KAAKk89B,mBAAoBl3b,WAAY,oBAAqBp1L,SAAU,eACzFn3Q,SAAU,OACV69T,eAAgB,CAAE,cAAe,OAAQ,YAAa,YAAa,KAAQ,gBAE3Et2Z,KAAKmoC,OAAOumrB,YAAc1utB,KAAKmoC,OAAOktlB,kBACtCvtkB,EAAM17C,KAAK,CACPoyS,MAAO,QAASk/O,kBAAoB19hB,KAAKmoC,OAAOumrB,YAAc1utB,KAAKmoC,OAAOktlB,iBAAmBtwF,WAAY,aACzG9kgB,KAAMjgC,KAAK+zZ,KAAKhuD,YAAY,YAAa6J,SAAU,QAASn3Q,SAAU,SAE1E3wC,EAAM17C,KAAK,CACPoyS,MAAO,QAASk/O,kBAAoB19hB,KAAKmoC,OAAOumrB,YAAc1utB,KAAKmoC,OAAOktlB,iBAAmBtwF,WAAY,eACzG9kgB,KAAMjgC,KAAK+zZ,KAAKhuD,YAAY,SAAU6J,SAAU,UAAWn3Q,SAAU,WAIzE3wC,EAAM17C,KAAK,CACPoyS,MAAO,QAASk/O,kBAAoB19hB,KAAKmoC,OAAOumrB,YAAc1utB,KAAKmoC,OAAOktlB,iBAAmBtwF,WAAY,aACzG9kgB,KAAMjgC,KAAK+zZ,KAAKhuD,YAAY,SAAU6J,SAAU,UAAWn3Q,SAAU,SAErEz4F,KAAKmoC,OAAOo07B,MAAMn59B,OAAS,GAC3B0kD,EAAM17C,KAAK,CAAEoyS,MAAO,QAAS5xS,KAAM,YAAagjW,SAAU,0BAG9D5vW,KAAKmoC,OAAOo07B,MAAMn59B,OAAS,EAC3B,IAAK,IAAIkM,EAAK,EAAGgmC,EAAKt1C,KAAKmoC,OAAOo07B,MAAOjt9B,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CAC3D,IAAIimB,EAAO+f,EAAGhmC,GACdw4C,EAAM17C,KAAKpM,KAAKiwtB,cAAc16rB,GAClC,CAEJ,OAAOuyB,CACX,EACAwy6B,EAAe3p9B,UAAUs/sB,cAAgB,SAAU16rB,GAC/C,IAAIwm8B,EACAnq1B,EASA94G,EARkB,kBAAVvD,GACRwm8B,EAAWxm8B,EAAK7U,cAChBkxH,EAAc,OAGdmq1B,EAAWxm8B,EAAKqoR,OAAOl9R,cACvBkxH,EAAcr8G,EAAKq8G,aAIvB,IAAI4q1B,EAAoBx89B,KAAKmoC,OAAOumrB,YAAc1utB,KAAKmoC,OAAOktlB,iBAC9D,OAAQ0mW,GACJ,IAAK,MACDjj8B,EAAO,CACH0lR,MAAO,QAASk/O,kBAAmB8+b,EAAmBz3b,WAAY,aAClE9kgB,KAAM2xG,GAAe5xI,KAAK+zZ,KAAKhuD,YAAY,OAAQ6J,SAAU,iBAEjE,MACJ,IAAK,OACD92U,EAAO,CACH0lR,MAAO,QAASk/O,kBAAmB8+b,EAAmBz3b,WAAY,cAClE9kgB,KAAM2xG,GAAe5xI,KAAK+zZ,KAAKhuD,YAAY,QAAS6J,SAAU,kBAElE,MACJ,IAAK,WACD92U,EAAO,CACH0lR,MAAO,QAASk/O,kBAAmB8+b,EAAmBz3b,WAAY,kBAClE9kgB,KAAM2xG,GAAe5xI,KAAK+zZ,KAAKhuD,YAAY,YAAa6J,SAAU,uBAEtE,MACJ,IAAK,QACD92U,EAAO,CACH0lR,MAAO,QAASk/O,kBAAmB8+b,EAAmBz3b,WAAY,eAClE9kgB,KAAM2xG,GAAe5xI,KAAK+zZ,KAAKhuD,YAAY,SAAU6J,SAAU,mBAEnE,MACJ,IAAK,OACD92U,EAAO,CACH0lR,MAAO,QAASk/O,kBAAmB8+b,EAAmBz3b,WAAY,cAClE9kgB,KAAM2xG,GAAe5xI,KAAK+zZ,KAAKhuD,YAAY,QAAS6J,SAAU,kBAElE,MACJ,IAAK,SACD92U,EAAO,CACH0lR,MAAO,QAASk/O,kBAAmB8+b,EAAmBz3b,WAAY,gBAClE9kgB,KAAM2xG,GAAe5xI,KAAK+zZ,KAAKhuD,YAAY,UAAW6J,SAAU,oBAEpE,MACJ,IAAK,cACD92U,EAAO,CACH0lR,MAAO,QAASk/O,kBAAmB8+b,EAAmBz3b,WAAY,sBAClE9kgB,KAAM2xG,GAAe5xI,KAAK+zZ,KAAKhuD,YAAY,eAAgB6J,SAAU,0BAEzE,MACJ,IAAK,cACD92U,EAAO,CACH0lR,MAAO,QAASk/O,kBAAmB8+b,EAAmBz3b,WAAY,sBAClE9kgB,KAAM2xG,GAAe5xI,KAAK+zZ,KAAKhuD,YAAY,eAAgB6J,SAAU,0BAEzE,MACJ,IAAK,eACD92U,EAAO,CACH0lR,MAAO,QAASk/O,kBAAmB8+b,EAAmBz3b,WAAY,uBAClE9kgB,KAAM2xG,GAAe5xI,KAAK+zZ,KAAKhuD,YAAY,gBAAiB6J,SAAU,2BAE1E,MACJ,IAAK,mBACD92U,EAAO,CACH0lR,MAAO,QAASk/O,kBAAmB8+b,EAAmBz3b,WAAY,2BAClE9kgB,KAAM2xG,GAAe5xI,KAAK+zZ,KAAKhuD,YAAY,oBAAqB6J,SAAU,gCAE9E,MACJ,IAAK,gBACD92U,EAAO,CACH0lR,MAAO,QAASk/O,kBAAmB8+b,EAAmBz3b,WAAY,wBAClE9kgB,KAAM2xG,GAAe5xI,KAAK+zZ,KAAKhuD,YAAY,iBAAkB6J,SAAU,4BAE3E,MACJ,IAAK,eAED92U,EAAO,CACH0lR,MAAO,QAASk/O,kBAAmB8+b,EAAmBz3b,WAAY,yBAF7B,aAArBxvgB,EAAKmghB,YAA8B,WAAa,cAGhEz1gB,KAAM2xG,GAAe5xI,KAAK+zZ,KAAKhuD,YAAY,gBAAiB6J,SAAU,2BAIlF,OAAO92U,CACX,EACAwh8B,EAAe3p9B,UAAU8r9B,kBAAoB,WACzC,IAAIC,EAAiB579B,GAAc,MAAO,CAAEC,UDnTpB,mBCoTpB479B,EAAoB779B,GAAc,MAAO,CAAEC,UDlTpB,sBCmT3B279B,EAAehr8B,YAAYir8B,GAC3B389B,KAAKmV,QAAQuc,YAAYgr8B,GACzB189B,KAAK269B,YAAc,IAAIjpyB,GAAMgryB,EAAgB,CACzC7ilB,eAAgB,OAChBgC,WAAY,WACZ3B,SAAUl6Y,KAAKi79B,0BACf/w4B,SAAU,CAAE9oE,EAAG,OAAQvC,EAAG,UAC1Bw5U,UAAWr4V,KAAKmoC,OAAOkwT,YAE3B,IAAIkjoB,EAAev79B,KAAKsp9B,kBACpBsT,EAA4C,UAA5B589B,KAAKmoC,OAAOw/W,cAC3B57E,GAAkB/rU,KAAKmoC,OAAOuz7B,kBAAkBjwlB,eAAiBzrY,KAAK689B,kBAC3E789B,KAAKm79B,eAAiB,IAAIxgnB,GAAS,CAC/B/4W,MAAOg79B,EAAgB589B,KAAKmoC,OAAOuz7B,kBAAkBjwlB,YAAczrY,KAAKmoC,OAAO+/W,aAC/Et+V,IAAK5pD,KAAKmoC,OAAOo1V,QACjBtwV,IAAKjtC,KAAKmoC,OAAOq1V,QACjBvxX,eAAgBjM,KAAKmoC,OAAOuz7B,kBAAkBzv9B,eAC9CosV,UAAWr4V,KAAKmoC,OAAOkwT,UACvBt4V,OAAQC,KAAKmoC,OAAOpoC,OACpBusE,MAAOiv5B,EACPrl7B,MAAOql7B,EACPj4kB,aAActjZ,KAAKmoC,OAAOm7W,aAC1BpvT,OAAQl0F,KAAK889B,eAAej99B,KAAKG,QAErCA,KAAK+89B,sBACL/89B,KAAKm79B,eAAezioB,SAASikoB,GAC7B389B,KAAK269B,YAAYp9rB,MACrB,EACA+8rB,EAAe3p9B,UAAUms9B,eAAiB,SAAU7j9B,GAChD,GAAIA,EAAKrX,MAAMF,YAAc1B,KAAKmoC,OAAO+/W,aAAaxmZ,UAAW,CAC7D,IAAIs79B,EAAeX,IAAe,IAAI569B,KAAKwX,EAAKrX,QAChD5B,KAAKmoC,OAAO807B,WAAWD,EAC3B,CACAh99B,KAAK269B,YAAYp9rB,MACrB,EACA+8rB,EAAe3p9B,UAAUos9B,oBAAsB,WACvC/89B,KAAKm79B,iBACLn79B,KAAKm79B,eAAe7gzB,SAAWt6K,KAAKmoC,OAAOmyI,UAAYt6K,KAAKmoC,OAAO+07B,SAASC,uBAEpF,EACA7C,EAAe3p9B,UAAUys9B,mBAAqB,SAAUnk9B,GACpD,IAAI5Q,EAASotF,GAAQx8E,EAAKuuV,cAAcn/V,OAAQ,YAEhD,MADY,GAAGuI,MAAMjR,KAAKK,KAAKmV,QAAQ3E,iBAAiB,aAC3C7F,QAAQtC,EACzB,EACAiy9B,EAAe3p9B,UAAUwjjB,oBAAsB,SAAUl7iB,GACrD,GAAKA,EAAKsc,KAAV,CAGA,IACI2U,EACAuiW,EACA16K,EACJ,OAJe94M,EAAKsc,KAAKq6U,SAASv/V,QAAQ,WAAY,KAKlD,IAAK,eACIrQ,KAAK269B,aACN369B,KAAKy89B,oBAELz89B,KAAK269B,YAAYxl9B,QAAQ+yQ,UAAUh1P,SAAS28Y,KAC5C7va,KAAK269B,YAAYp9rB,OAGjBv9R,KAAK269B,YAAYt0qB,OAErB,MACJ,IAAK,QACDrmT,KAAKmoC,OAAOk17B,WAAW,MAAOpk9B,EAAKuuV,mBAAenkW,EAAWrD,KAAKo99B,mBAAmBnk9B,IACrF,MACJ,IAAK,SACDjZ,KAAKmoC,OAAOk17B,WAAW,OAAQpk9B,EAAKuuV,mBAAenkW,EAAWrD,KAAKo99B,mBAAmBnk9B,IACtF,MACJ,IAAK,cACDjZ,KAAKmoC,OAAOk17B,WAAW,WAAYpk9B,EAAKuuV,mBAAenkW,EAAWrD,KAAKo99B,mBAAmBnk9B,IAC1F,MACJ,IAAK,UACDjZ,KAAKmoC,OAAOk17B,WAAW,QAASpk9B,EAAKuuV,mBAAenkW,EAAWrD,KAAKo99B,mBAAmBnk9B,IACvF,MACJ,IAAK,SACDjZ,KAAKmoC,OAAOk17B,WAAW,OAAQpk9B,EAAKuuV,mBAAenkW,EAAWrD,KAAKo99B,mBAAmBnk9B,IACtF,MACJ,IAAK,WACDjZ,KAAKmoC,OAAOk17B,WAAW,SAAUpk9B,EAAKuuV,mBAAenkW,EAAWrD,KAAKo99B,mBAAmBnk9B,IACxF,MACJ,IAAK,iBACDjZ,KAAKmoC,OAAOk17B,WAAW,cAAepk9B,EAAKuuV,mBAAenkW,EAAWrD,KAAKo99B,mBAAmBnk9B,IAC7F,MACJ,IAAK,iBACDjZ,KAAKmoC,OAAOk17B,WAAW,cAAepk9B,EAAKuuV,mBAAenkW,EAAWrD,KAAKo99B,mBAAmBnk9B,IAC7F,MACJ,IAAK,kBACDjZ,KAAKmoC,OAAOk17B,WAAW,eAAgBpk9B,EAAKuuV,mBAAenkW,EAAWrD,KAAKo99B,mBAAmBnk9B,IAC9F,MACJ,IAAK,uBACDjZ,KAAKmoC,OAAOk17B,WAAW,mBAAoBpk9B,EAAKuuV,mBAAenkW,EAAWrD,KAAKo99B,mBAAmBnk9B,IAClG,MACJ,IAAK,mBACDjZ,KAAKmoC,OAAOk17B,WAAW,gBAAiBpk9B,EAAKuuV,mBAAenkW,EAAWrD,KAAKo99B,mBAAmBnk9B,IAC/F,MACJ,IAAK,kBACDjZ,KAAKmoC,OAAOk17B,WAAW,eAAgBpk9B,EAAKuuV,mBAAenkW,EAAWrD,KAAKo99B,mBAAmBnk9B,IAC9F,MACJ,IAAK,UACD84M,EAAcsqwB,IAAer89B,KAAKmoC,OAAOm17B,mBACT,WAA5Bt99B,KAAKmoC,OAAOw/W,aAAwD,gBAA5B3nZ,KAAKmoC,OAAOw/W,cAAkC3nZ,KAAKmoC,OAAOo17B,eAAexrwB,IACrF,UAA5B/xN,KAAKmoC,OAAOw/W,aAA2B3nZ,KAAKmoC,OAAOuz7B,kBAAkBjwlB,cAAgBzrY,KAAK689B,mBACtFR,IAAer89B,KAAKmoC,OAAOuz7B,kBAAkBjwlB,eAAiB15K,GAA2C,UAA5B/xN,KAAKmoC,OAAOw/W,aAC7F3nZ,KAAKmoC,OAAOuz7B,kBAAkB8B,cAAgB,IAAMx99B,KAAK689B,mBACtDR,IAAeA,IAAsBr89B,KAAKmoC,OAAO+/W,iBAAmBn2L,IACvE/xN,KAAKmoC,OAAO807B,WAAWlrwB,EAAa94M,EAAKuuV,eAE7C,MACJ,IAAK,SACDxnW,KAAKmoC,OAAO807B,WAAWj99B,KAAKmoC,OAAOyz7B,WAAW6B,oBAAoB,YAAaxk9B,EAAKuuV,eACpF,MACJ,IAAK,SACDxnW,KAAKmoC,OAAO807B,WAAWj99B,KAAKmoC,OAAOyz7B,WAAW6B,oBAAoB,QAASxk9B,EAAKuuV,eAChF,MACJ,IAAK,QAED,GADAilC,EAAazsY,KAAKmoC,OAAOu17B,gBAAgB3mzB,UAAUr1K,YAAc1B,KAAKmoC,OAAOu17B,gBAAgBhxlB,QAAQhrY,UACjG1B,KAAKmoC,OAAOu17B,kBAAoBjxlB,EAChCviW,EAAOlqC,KAAKmoC,OAAOu17B,oBAElB,CACD,IAAIlwpB,EAAWxtU,KAAKmoC,OAAOuz7B,kBAAkBiC,UAAUnwpB,SACnDowpB,EAAY599B,KAAKmoC,OAAOuz7B,kBAAkBiC,UAAUC,UACpDC,EAAcrwpB,EAAW6upB,IAAsBuB,EAC/C7mzB,EAAY,IAAIt1K,KAAKzB,KAAKmoC,OAAO+/W,aAAaxmZ,WAC9Co89B,EAAgB999B,KAAKmoC,OAAOm17B,iBAChCvmzB,EAAUt0K,SAASq79B,EAAc368B,WAAavf,KAAKmgB,MAAMgzJ,EAAU3zJ,aAAey68B,GAAcA,EAAa,GAC7G,IAAInxlB,EAAU,IAAIjrY,KAAK,IAAIA,KAAKs1K,EAAUr1K,WAAW8iG,gBAAgBuyE,EAAUzzJ,kBAAoBu68B,IACnG3z7B,EAAO,CAAE6sI,UAAWA,EAAW21N,QAASA,EAASqxlB,UAAU,EAC/D,CACA/99B,KAAKmoC,OAAO617B,YAAYC,WAAWx04B,GAAOv/C,EAAM,CAAE42C,QAAQ,EAAO/pD,MAAO9d,EAAKuuV,gBAAkB,OAGvG,IAAIz7B,GAAkB/rU,KAAK6mgB,YAA3B,CAGA,IAAIq3d,EAAel+9B,KAAK6mgB,WAAW1xf,QAAQykB,cAAc,kBACrDsk8B,GAAmC,UAAnBjl9B,EAAKsc,KAAK3oB,MAC1Bsx9B,EAAalxoB,cAAc,GAAGzvD,KAAK,CAAE74R,KAAM,UAAWuvG,SAAU,KAHpE,CAzFA,CA8FJ,EACAqm3B,EAAe3p9B,UAAUks9B,gBAAkB,WACvC,IAAIsB,EAAe9B,IAAer89B,KAAKmoC,OAAO+/W,cAAcxmZ,UAC5D,OAAOy89B,GAAgBn+9B,KAAKmoC,OAAOyz7B,WAAWC,eAAen69B,WACzDy89B,GAAgBn+9B,KAAKmoC,OAAOyz7B,WAAWE,aAAap69B,SAC5D,EACA449B,EAAe3p9B,UAAUyt9B,iBAAmB,WACxC,OAAOp+9B,KAAK6mgB,WAAW1xf,OAC3B,EACAml9B,EAAe3p9B,UAAU0t9B,kBAAoB,SAAUC,GACnD,IAAI1D,EAAa569B,KAAK6mgB,WAAW1xf,QAAQykB,cAAc,WACnDih8B,EAAa769B,KAAK6mgB,WAAW1xf,QAAQykB,cAAc,WACnD2k8B,EAAev+9B,KAAK6mgB,WAAW1xf,QAAQykB,cAAc,iBACrDgh8B,IACkB,QAAd0D,EACA91sB,GAAS,CAACoysB,GAAa/qjB,KAGvB5nJ,GAAY,CAAC2ysB,GAAa/qjB,MAG9BgrjB,IACkB,QAAdyD,EACA91sB,GAAS,CAACqysB,GAAahrjB,KAGvB5nJ,GAAY,CAAC4ysB,GAAahrjB,MAG9B0ujB,IACkB,QAAdD,EACA91sB,GAAS,CAAC+1sB,GAAe1ujB,KAGzB5nJ,GAAY,CAACs2sB,GAAe1ujB,KAGxC,EACAyqjB,EAAe3p9B,UAAU6t9B,wBAA0B,WAC/C,IAAI3/3B,EAAqC,WAA5B7+F,KAAKmoC,OAAOw/W,YACrB,CAAC3nZ,KAAKmoC,OAAOs27B,sBAAsB,IAAMz+9B,KAAKmoC,OAAOs27B,sBACrD7D,EAAa569B,KAAK6mgB,WAAW1xf,QAAQykB,cAAc,WACnDih8B,EAAa769B,KAAK6mgB,WAAW1xf,QAAQykB,cAAc,WACnD8k8B,EAAY,IAAIj99B,KAAKo9F,EAAM,GAAGn9F,WAC9B8qZ,EAAW,IAAI/qZ,KAAKo9F,EAAMA,EAAMz7F,OAAS,GAAG1B,WAChD,GAAgC,aAA5B1B,KAAKmoC,OAAOw/W,aAA0D,qBAA5B3nZ,KAAKmoC,OAAOw/W,YAEtD6E,EAAW6vkB,IADXqC,EAAYrC,IAAsBA,IAAer89B,KAAKmoC,OAAO+/W,cAAeloZ,KAAKmoC,OAAOl8B,gBACrD,EAAIjM,KAAKmoC,OAAOuz7B,kBAAkBlupB,eAEpE,GAAgC,UAA5BxtU,KAAKmoC,OAAOw/W,YAAyB,CAC1C,IAAIg3kB,GAAiB5ypB,GAAkB/rU,KAAKmoC,OAAOuz7B,kBAAkBjwlB,cACjEzrY,KAAKmoC,OAAOuz7B,kBAAkB8B,cAAgB,EAClDkB,EAAYC,EAAgB3+9B,KAAKmoC,OAAOyz7B,WAAWC,eAAiBQ,IAAsBr89B,KAAKmoC,OAAO+/W,cACtGsE,EAAWmykB,EAAgB3+9B,KAAKmoC,OAAOyz7B,WAAWE,aAC9CO,IAAqBA,IAAeqC,EAAW1+9B,KAAKmoC,OAAOuz7B,kBAAkBlupB,SAAW,GAChG,CACKzB,GAAkB6upB,IACnB569B,KAAK6mgB,WAAWwN,YAAYumd,EAAY8D,EAAYrC,IAAer89B,KAAKmoC,OAAOo1V,UAE9ExxD,GAAkB8upB,IACnB769B,KAAK6mgB,WAAWwN,YAAYwmd,EAAYrukB,EAAW6vkB,IAAer89B,KAAKmoC,OAAOq1V,UAElFx9X,KAAKq79B,uBACT,EACAf,EAAe3p9B,UAAUo8U,cAAgB,WACrC,MAAO,WACX,EACAutoB,EAAe3p9B,UAAUymI,QAAU,WAC3Bp3I,KAAK269B,cAAgB369B,KAAK269B,YAAYxisB,cACtCn4R,KAAK269B,YAAYvj1B,UACjBp3I,KAAK269B,YAAc,MAEnB369B,KAAKm79B,iBAAmBn79B,KAAKm79B,eAAehjsB,cAC5Cn4R,KAAKm79B,eAAe/j1B,UACpBp3I,KAAKm79B,eAAiB,MAEtBn79B,KAAK6mgB,aAAe7mgB,KAAK6mgB,WAAW1uO,cACpCn4R,KAAK6mgB,WAAWzvX,UAChBp3I,KAAKo7B,sBACLjI,GAAOnzB,KAAKmV,SACZnV,KAAK6mgB,WAAa,MAEtB7mgB,KAAKmV,QAAU,KACfnV,KAAKmoC,OAAS,KACdnoC,KAAK+zZ,KAAO,IAChB,EACOumkB,CACX,CAviBoC,GCNhCty0B,IAAwB,WAMxB,SAASA,EAAO7/G,GACZnoC,KAAKmoC,OAASA,EACdnoC,KAAKs7B,kBACT,CA8EA,OAvEA0sH,EAAOr3I,UAAUo8U,cAAgB,WAC7B,MAAO,QACX,EAOA/kM,EAAOr3I,UAAUqyS,SAAW,WACxBhjT,KAAKmoC,OAAOhzB,QAAQhP,MAAMqY,MAAQkvT,GAAW1tU,KAAKmoC,OAAO3pB,MAC7D,EAOAwpI,EAAOr3I,UAAUw5gB,UAAY,WACzBnqhB,KAAKmoC,OAAOhzB,QAAQhP,MAAMyiJ,OAAS8kL,GAAW1tU,KAAKmoC,OAAOygH,OAC9D,EAOAZ,EAAOr3I,UAAU2qB,iBAAmB,WAChCt7B,KAAKmoC,OAAO5uB,GAAGimlB,IAAcx/lB,KAAK4+9B,cAAe5+9B,MACjDA,KAAKmoC,OAAO5uB,GAAGkmlB,IAAUz/lB,KAAK0sV,kBAAmB1sV,KACrD,EAOAgoJ,EAAOr3I,UAAUyqB,oBAAsB,WACnCp7B,KAAKmoC,OAAO3uB,IAAIgmlB,IAAcx/lB,KAAK4+9B,eACnC5+9B,KAAKmoC,OAAO3uB,IAAIimlB,IAAUz/lB,KAAK0sV,kBACnC,EAOA1kM,EAAOr3I,UAAUiu9B,cAAgB,WAC7B5+9B,KAAKgjT,WACLhjT,KAAKmqhB,YACL,IAAIjgf,EAAO,CAAE207B,cAAe7+9B,KAAKmoC,OAAO6mnB,mBAAoBh4oB,OAAQhX,KAAK+sV,iBACzE/sV,KAAKmoC,OAAOkxK,OAAOk0wB,IAAgBrj7B,EACvC,EAOA89G,EAAOr3I,UAAU+7U,kBAAoB,WACjC1sV,KAAK4+9B,eACT,EAOA520B,EAAOr3I,UAAUymI,QAAU,WACvBp3I,KAAKo7B,qBACT,EACO4sH,CACX,CAxF4B,GCGxB820B,IAA+B,WAC/B,SAASA,EAAc327B,GACnBnoC,KAAKmoC,OAASA,EACdnoC,KAAKmV,QAAUnV,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KACvD7va,KAAK++9B,SAAW,IAAI74nB,GAAMlmW,KAAKmV,QAAS,CACpCg1S,OAAQnqT,KAAKumc,cAAc1mc,KAAKG,MAChCiyhB,MAAOjyhB,KAAKkyhB,aAAaryhB,KAAKG,MAC9BuwhB,QAASvwhB,KAAKqtiB,eAAextiB,KAAKG,MAClC0oW,cAAe,CAAEC,uBAAwB,KAE7C9vH,GAAazlN,IAAIpzB,KAAKmV,QAAS,gBAAiBnV,KAAKonR,gBAAiBpnR,MACtEA,KAAKg/9B,mBAAqBh/9B,KAAKmoC,OAAOkwT,UAAY,QAAU,OAC5Dr4V,KAAKi/9B,oBAAsBj/9B,KAAKmoC,OAAOkwT,UAAY,OAAS,OAChE,CAyNA,OAxNAymoB,EAAcnu9B,UAAU41b,cAAgB,SAAUlmc,GAC9C,KAAgC,WAA5BL,KAAKmoC,OAAOw/W,aAA4B3nZ,KAAKmoC,OAAO+27B,cAAchq5B,SAAWl1E,KAAKmoC,OAAOg37B,cACxF9+9B,EAAEmnW,eAAiBnnW,EAAEmnW,cAAcn/V,SAC/BhI,EAAEmnW,cAAcn/V,OAAO6/Q,UAAUh1P,SAAS28Y,MACvCp6U,GAAQp1F,EAAEmnW,cAAcn/V,OAAQ,IAAMwna,QAA4B7va,KAAKmoC,OAAOumrB,YAH1F,CAYA,GANK1utB,KAAKo/9B,iBACNp/9B,KAAKo/9B,eAAiB399B,KAAK0jE,OAE3BnlE,KAAKmV,QAAQ+yQ,UAAUh1P,SAAS28Y,MAChC7va,KAAKonR,kBAEiB,SAAtB/mR,EAAEwnW,iBAAoD,UAAtBxnW,EAAEwnW,gBAA6B,CAC/D,IAAI5uV,EAAO,CAAE0+Z,YAAa,eAAgB72V,QAAQ,EAAO/pD,MAAO12B,EAAEmnW,eAElE,GADAxnW,KAAKmoC,OAAOm4P,QAAQllK,IAAoBniH,GACpCA,EAAK6nE,OACL,OAEJ,IAAIyxc,EAAYvyhB,KAAKmV,QAAQykB,cAAc,IAAMi2Y,KACjD,GAAI0iH,GAAaA,EAAUniR,YAAcmiR,EAAUxtR,YAC/C,OAGA/kQ,KAAKq/9B,mBAAoB,EACzBh/9B,EAAEmnW,cAAcn5V,iBAChBhO,EAAEmnW,cAAcl5V,iBAExB,CACA,GAAIjO,EAAEwnW,kBAAoB7nW,KAAKg/9B,mBAAoB,CAC1Ch/9B,KAAKs/9B,YACNt/9B,KAAK0kgB,YAAY70F,IAAsB,QACvC7va,KAAKs/9B,UAAY,CACbnq9B,QAASnV,KAAKmoC,OAAOyz7B,WAAWx0d,WAChCl/G,aAAc,IAAIzmZ,KAAKzB,KAAKmoC,OAAO+/W,aAAaxmZ,WAChD699B,YAAav/9B,KAAKmoC,OAAOyz7B,WAAW2D,YACpCC,UAAWx/9B,KAAKmoC,OAAOyz7B,WAAW4D,WAEtCx/9B,KAAK4+9B,cAAc5+9B,KAAKs/9B,UAAUnq9B,UAEtC,IAAI+E,EAAIla,KAAKmoC,OAAOkwT,UAAYh4V,EAAEsnW,WAAatnW,EAAEsnW,UACjD3nW,KAAKmV,QAAQhP,MAAMoyD,UAAY,eAAiBv4D,KAAKgu9B,cAAchu9B,KAAKmV,SAAW+E,GAAK,KAC5F,MACK,GAAI7Z,EAAEwnW,kBAAoB7nW,KAAKi/9B,oBAAqB,CACrD,IAAIQ,EAAY,EACXz/9B,KAAK0/9B,gBACN1/9B,KAAK0kgB,YAAY70F,IAA0B,YAC3C7va,KAAK0/9B,cAAgB,CACjBvq9B,QAASnV,KAAKmoC,OAAOyz7B,WAAWx0d,WAChCl/G,aAAc,IAAIzmZ,KAAKzB,KAAKmoC,OAAO+/W,aAAaxmZ,WAChD699B,YAAav/9B,KAAKmoC,OAAOyz7B,WAAW2D,YACpCC,UAAWx/9B,KAAKmoC,OAAOyz7B,WAAW4D,WAEtCx/9B,KAAK4+9B,cAAc5+9B,KAAK0/9B,cAAcvq9B,SACtCsq9B,EAAYz/9B,KAAK0/9B,cAAcvq9B,QAAQg7P,aAEvCj2P,EAAIla,KAAKmoC,OAAOkwT,UAAYonoB,EAAYp/9B,EAAEsnW,WAAa83nB,EAAYp/9B,EAAEsnW,UACzE3nW,KAAKmV,QAAQhP,MAAMoyD,UAAY,eAAiBv4D,KAAKgu9B,cAAchu9B,KAAKmV,SAAW+E,GAAK,KAC5F,CApDA,CAqDJ,EACA4k9B,EAAcnu9B,UAAUuhhB,aAAe,SAAU7xhB,GAC7C,GAAKL,KAAKq/9B,oBAAqBr/9B,KAAKmoC,OAAO+27B,cAAchq5B,QAAWl1E,KAAKmoC,OAAOg37B,aAAhF,CAGAn/9B,KAAKq/9B,mBAAoB,EACzB,IAAIM,EAAiC,SAArBt/9B,EAAEkoW,eACdvoW,KAAKmoC,OAAOyz7B,WAAW2D,YAAY,GAAKv/9B,KAAKmoC,OAAOyz7B,WAAW2D,YAAY3u9B,OAAO,GAAG,GACzF,GAA0B,SAArBvQ,EAAEkoW,gBAA6Bo3nB,EAAY3/9B,KAAKmoC,OAAOq1V,SAClC,UAArBn9X,EAAEkoW,gBAA8Bo3nB,GAAa3/9B,KAAKmoC,OAAOo1V,QAAU,CACpE,IAAI96W,EAAOhhB,KAAK0jE,MAAQnlE,KAAKo/9B,eACzBQ,EAAcv/9B,EAAEsnW,WAAa1gB,GAAQM,SAAW,EAAI,MACpDq4oB,EAAan98B,GAASpiB,EAAEsnW,UAAa3nW,KAAKmoC,OAAOhzB,QAAQg7P,YAAc,GACvEnwQ,KAAK6/9B,WAAWx/9B,EAAEkoW,gBACdq3nB,EAAan98B,GAASpiB,EAAEsnW,UAAa3nW,KAAKmoC,OAAOhzB,QAAQg7P,YAAc,IACvEnwQ,KAAKmV,QAAQhP,MAAM6mR,oBAAwBi6D,GAAQM,SAAWlnV,EAAEsnW,UAAYi4nB,GAAcn98B,EAAQ,GAAM,KAE5GziB,KAAK8/9B,aAAaz/9B,EAAEkoW,iBAGpBvoW,KAAK+/9B,cAET,IAAI9m9B,EAAO,CAAE0+Z,YAAa,eAAgB72V,QAAQ,EAAO/pD,MAAO12B,EAAEmnW,eAClExnW,KAAKmoC,OAAOm4P,QAAQllK,IAAuBniH,EAC/C,MAEIjZ,KAAK+/9B,cAET//9B,KAAKo/9B,eAAiB,IAxBtB,CAyBJ,EACAN,EAAcnu9B,UAAU08hB,eAAiB,SAAUhtiB,GAE1C0rU,GADQt2O,GAAQp1F,EAAEmnW,cAAcn/V,OAAQ,IAAMwna,QACjB7va,KAAKmoC,OAAOumrB,YAC1C1utB,KAAKmoC,OAAO637B,WAAWC,kBAAkB5/9B,EAAEmnW,cAGnD,EACAs3nB,EAAcnu9B,UAAU+zf,YAAc,SAAUjzJ,EAASyunB,GAChDlg+B,KAAKmg+B,aAUNng+B,KAAKmoC,OAAO8jT,cAAc,CAAEi8D,aAAcloZ,KAAKmg+B,aAAaj4kB,eAAgB,IAT5EloZ,KAAKmg+B,aAAe,CAChBhr9B,QAASnV,KAAKmoC,OAAOyz7B,WAAWx0d,WAChCl/G,aAAc,IAAIzmZ,KAAKzB,KAAKmoC,OAAO+/W,aAAaxmZ,WAChD699B,YAAav/9B,KAAKmoC,OAAOyz7B,WAAW2D,YACpCC,UAAWx/9B,KAAKmoC,OAAOyz7B,WAAW4D,WAEtCx/9B,KAAK4+9B,cAAc5+9B,KAAKmg+B,aAAahr9B,UAKzCnV,KAAKmoC,OAAO8jT,cAAc,CAAEi8D,aAAcloZ,KAAKmoC,OAAOyz7B,WAAW6B,oBAAoByC,KAAiB,GAClGlg+B,KAAKmoC,OAAO06mB,cACZ7ipB,KAAKmoC,OAAO06mB,aAAau4U,gBAAgBp79B,KAAKmoC,OAAO+/W,cAEzDloZ,KAAKmoC,OAAOyz7B,WAAWwE,iBACvBpg+B,KAAKmoC,OAAOyz7B,WAAW5+b,aAAavrL,EACxC,EACAqtnB,EAAcnu9B,UAAUkv9B,WAAa,SAAU5o3B,GAC3C,GAAIA,IAAcj3G,KAAKg/9B,mBAAoB,CACvC,IAAIty4B,EAAO1sF,KAAKs/9B,UAChBt/9B,KAAKs/9B,UAAYt/9B,KAAKmg+B,aACtBng+B,KAAKmg+B,aAAezz4B,CACxB,KACK,CACGA,EAAO1sF,KAAK0/9B,cAChB1/9B,KAAK0/9B,cAAgB1/9B,KAAKmg+B,aAC1Bng+B,KAAKmg+B,aAAezz4B,CACxB,CACJ,EACAoy4B,EAAcnu9B,UAAUmv9B,aAAe,SAAUv3nB,GAC7C,IAAIjpW,EAAQU,KAGRiZ,EAAO,CACPi8D,OAAQ,OAAQ4L,QAAQ,EAAO0wU,aAHhBjpD,IAAmBvoW,KAAKg/9B,mBACvCh/9B,KAAKs/9B,UAAUp3kB,aAAeloZ,KAAK0/9B,cAAcx3kB,aAEU72S,YAAarxG,KAAKmg+B,aAAaj4kB,cAE9FloZ,KAAKmoC,OAAOm4P,QAAQllK,IAAmBniH,GAAM,SAAUon9B,GACnD,GAAIA,EAAQv/4B,OACRxhF,EAAMug+B,WAAWt3nB,GACjBjpW,EAAMyg+B,kBAEL,CACDzg+B,EAAM6oC,OAAOyz7B,WAAWxva,SAAS9sjB,EAAM6g+B,aAAahr9B,SACpD7V,EAAM6oC,OAAO8jT,cAAc,CAAEi8D,aAAc5oZ,EAAM6g+B,aAAaj4kB,eAAgB,GAC9E,IAAIo4kB,OAAa,EAEbA,EADAhh+B,EAAM6oC,OAAOkwT,UACAkQ,IAAmBjpW,EAAM0/9B,mBACjC1/9B,EAAMog+B,cAAgBpg+B,EAAMog+B,cAAcvq9B,QAAQwtS,WAAarjT,EAAM6g+B,aAAahr9B,QAAQg7P,YAAe,EAGjGo4F,IAAmBjpW,EAAM0/9B,oBAAsB1/9B,EAAM6g+B,aAAahr9B,QAAQwtS,WAAa,EAExGrjT,EAAM6oC,OAAOyz7B,WAAW2D,YAAcjg+B,EAAM6g+B,aAAaZ,YACzDjg+B,EAAM6oC,OAAOyz7B,WAAW4D,UAAYlg+B,EAAM6g+B,aAAaX,UACvDh3sB,GAAS,CAAClpR,EAAM6V,SAAU06Z,KAC1Bvwa,EAAM6V,QAAQhP,MAAMoyD,UAAY,cAAgB+n6B,EAAa,MACzDhh+B,EAAM6oC,OAAO06mB,cACbvjpB,EAAM6oC,OAAO06mB,aAAa44U,kBAE9Bn89B,EAAM6oC,OAAOukf,kBACbpthB,EAAM6oC,OAAOo47B,WAAW9lW,oBAC5B,CACJ,GACJ,EACAqkW,EAAcnu9B,UAAUov9B,YAAc,WAClC//9B,KAAKmoC,OAAOyz7B,WAAWxva,SAASpsjB,KAAKmg+B,aAAahr9B,SAClDnV,KAAKmoC,OAAO8jT,cAAc,CAAEi8D,aAAcloZ,KAAKmg+B,aAAaj4kB,eAAgB,GAC5EloZ,KAAKmoC,OAAOyz7B,WAAW2D,YAAcv/9B,KAAKmg+B,aAAaZ,YACvDv/9B,KAAKmoC,OAAOyz7B,WAAW4D,UAAYx/9B,KAAKmg+B,aAAaX,UACrDh3sB,GAAS,CAACxoR,KAAKmV,SAAU06Z,KACzB,IAAI4vjB,EAAYz/9B,KAAK0/9B,cAAgB1/9B,KAAK0/9B,cAAcvq9B,QAAQg7P,YAAc,EAC9EnwQ,KAAKmV,QAAQhP,MAAMoyD,UAAY,eAAiBv4D,KAAKmoC,OAAOkwT,UAAYonoB,GAAaz/9B,KAAKmg+B,aAAahr9B,QAAQwtS,YAAc,KACjI,EACAm8qB,EAAcnu9B,UAAUy2Q,gBAAkB,WACtCa,GAAY,CAACjoR,KAAKmV,SAAU06Z,KAC5B7va,KAAKmV,QAAQhP,MAAM6mR,mBAAqB,GACxChtR,KAAKmV,QAAQhP,MAAMoyD,UAAY,GAC3Bv4D,KAAK0/9B,gBACLvs8B,GAAOnzB,KAAK0/9B,cAAcvq9B,SAC1BnV,KAAK0/9B,cAAgB,KACrBz3sB,GAAY,CAACjoR,KAAKmg+B,aAAahr9B,SAAU06Z,KACzCrnJ,GAAS,CAACxoR,KAAKmg+B,aAAahr9B,SAAU06Z,MAEtC7va,KAAKs/9B,YACLns8B,GAAOnzB,KAAKs/9B,UAAUnq9B,SACtBnV,KAAKs/9B,UAAY,KACjBr3sB,GAAY,CAACjoR,KAAKmg+B,aAAahr9B,SAAU06Z,KACzCrnJ,GAAS,CAACxoR,KAAKmg+B,aAAahr9B,SAAU06Z,MAE1C7va,KAAKmg+B,aAAe,KACpBng+B,KAAKmoC,OAAOyz7B,WAAWx0d,WAAWjhgB,MAAMqY,MAAQ,EACpD,EACAsg9B,EAAcnu9B,UAAUq98B,cAAgB,SAAU748B,GAC9C,IAAIhP,EAAQ6qB,OAAOwhQ,iBAAiBr9Q,GACpC,OAAO,IAAI048B,gBAAgB1n9B,EAAM2n9B,iBAAiBG,GACtD,EACA6Q,EAAcnu9B,UAAUiu9B,cAAgB,SAAUzp9B,GAC9CA,EAAQhP,MAAMqY,MAASxe,KAAKmoC,OAAOhzB,QAAQ4vP,YAAe,IAC9D,EACA+5tB,EAAcnu9B,UAAU6v9B,YAAc,WAClCxg+B,KAAKmg+B,aAAe,KACpBng+B,KAAK0/9B,cAAgB,KACrB1/9B,KAAKs/9B,UAAY,KACjBt/9B,KAAKo/9B,eAAiB,KACtBp/9B,KAAKmV,QAAQhP,MAAMoyD,UAAY,GAC/Bv4D,KAAKmV,QAAQhP,MAAM6mR,mBAAqB,GACxCqvsB,IAAoBr89B,KAAKmV,SACzB8yQ,GAAY,CAACjoR,KAAKmV,SAAU06Z,IAChC,EACAivjB,EAAcnu9B,UAAUymI,QAAU,WAC1Bp3I,KAAK++9B,WACL/+9B,KAAK++9B,SAAS3n1B,UACdp3I,KAAK++9B,SAAW,MAEpBlmvB,GAAa1lN,OAAOnzB,KAAKmV,QAAS,gBAAiBnV,KAAKonR,iBACxDpnR,KAAKwg+B,aACT,EACO1B,CACX,CAvOmC,GCE/B2B,IAAqC,WACrC,SAASA,EAAoBt47B,GACzBnoC,KAAKyukB,cAAgB,GACrBzukB,KAAK4kW,WAAa,CACdo0Q,UAAW,YACXC,QAAS,UACT6kD,WAAY,aACZC,UAAW,YACX2iU,eAAgB,kBAChBC,aAAc,gBACdC,gBAAiB,mBACjBC,eAAgB,kBAChB3hU,cAAe,iBACfC,eAAgB,kBAChB2hU,OAAQ,QACRC,OAAQ,QACRC,SAAU,QACVC,QAAS,QACTC,QAAS,QACTC,OAAQ,QACRC,SAAU,QACVC,SAAU,QACVC,QAAS,QACT57sB,MAAO,QACPjzN,OAAQ,SACRwhF,OAAQ,SACRst1B,UAAW,YACXl9kB,KAAM,OACNC,OAAQ,SACRC,SAAU,WACVjjG,IAAK,MACL43G,SAAU,YACVsokB,iBAAkB,qBAClBC,mBAAoB,uBACpBC,mBAAoB,uBACpBC,oBAAqB,yBAEzB3h+B,KAAKmoC,OAASA,EACdnoC,KAAKmoC,OAAOhzB,QAAQlQ,UAA6C,IAAlCjF,KAAKmoC,OAAOhzB,QAAQlQ,SAAkB,EAAIjF,KAAKmoC,OAAOhzB,QAAQlQ,SAC7FjF,KAAKsnZ,eAAiB,IAAIhjD,GAAetkW,KAAKmoC,OAAOhzB,QAAS,CAC1D+vV,UAAWllW,KAAKu/b,iBAAiB1/b,KAAKG,MACtC4kW,WAAY5kW,KAAK4kW,WACjBruU,UAAW,YAEfv2B,KAAKs7B,kBACT,CAqkCA,OApkCAml8B,EAAoB9v9B,UAAU4ub,iBAAmB,SAAUl/b,GACvD,OAAQA,EAAE60E,QACN,IAAK,YACL,IAAK,iBACDl1E,KAAK4h+B,YAAYvh+B,EAAGA,EAAEw3B,UACtB,MACJ,IAAK,UACL,IAAK,eACD73B,KAAK6h+B,UAAUxh+B,EAAGA,EAAEw3B,UACpB,MACJ,IAAK,YACL,IAAK,iBACD73B,KAAK8h+B,YAAYzh+B,EAAGA,EAAEw3B,UACtB,MACJ,IAAK,aACL,IAAK,kBACD73B,KAAK+h+B,aAAa1h+B,EAAGA,EAAEw3B,UACvB,MACJ,IAAK,gBACD73B,KAAKmoC,OAAO807B,WAAWj99B,KAAKmoC,OAAOyz7B,WAAW6B,oBAAoB,YAAap99B,GAC3EL,KAAKmoC,OAAO06mB,cACZ7ipB,KAAKmoC,OAAO06mB,aAAa1toB,QAAQykB,cAAc,kBAAkBxvB,QAErE,MACJ,IAAK,iBACDpK,KAAKmoC,OAAO807B,WAAWj99B,KAAKmoC,OAAOyz7B,WAAW6B,oBAAoB,QAASp99B,GACvEL,KAAKmoC,OAAO06mB,cACZ7ipB,KAAKmoC,OAAO06mB,aAAa1toB,QAAQykB,cAAc,kBAAkBxvB,QAErE,MACJ,IAAK,SACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,UACL,IAAK,SACL,IAAK,WACL,IAAK,WACL,IAAK,UACDpK,KAAKgi+B,sBAAsB3h+B,GAC3B,MACJ,IAAK,QACDL,KAAKii+B,aAAa5h+B,GAClB,MACJ,IAAK,OACDL,KAAKki+B,iBACL,MACJ,IAAK,MACL,IAAK,WACDli+B,KAAKmi+B,WAAW9h+B,EAAGA,EAAEw3B,UACrB,MACJ,IAAK,SACL,IAAK,YACD73B,KAAKoi+B,cAAc/h+B,GACnB,MACJ,IAAK,mBACL,IAAK,qBACL,IAAK,qBACL,IAAK,sBACDL,KAAKqi+B,iCAAiChi+B,GACtC,MACJ,IAAK,SACDL,KAAKsi+B,cAAcji+B,GACnB,MACJ,IAAK,UACGL,KAAKmoC,OAAOo67B,aAAevi+B,KAAKmoC,OAAOq67B,eACvCni+B,EAAEgO,iBACFrO,KAAKyi+B,eAAepi+B,IAIpC,EACAog+B,EAAoB9v9B,UAAU8x9B,eAAiB,SAAUpi+B,GACrD,IAAIgI,EAAShI,EAAEgI,OACf,GAAIA,EAAO6/Q,UAAUh1P,SAAS28Y,MAAyBxna,EAAO6/Q,UAAUh1P,SAAS28Y,KAAyB,CACtG7va,KAAKmoC,OAAOu17B,gBAAkB199B,KAAK0i+B,oBAAoBr69B,GACvD,IAAI4Q,EAAOwwE,GAAOzpF,KAAKmoC,OAAOu17B,gBAAiB,CAAE584B,QAAQ,EAAO/pD,MAAO12B,IACnEsi+B,EAAa,CACbxt9B,QAAS8D,EAAK9D,QACdgrzB,WAAYlnzB,EAAKknzB,WAAYvzzB,KAAM,QAEvC5M,KAAKmoC,OAAOkxK,OAAOtiL,IAAmB4r8B,EAC1C,CACIt69B,EAAO6/Q,UAAUh1P,SAAS28Y,MAC1Bxna,EAAO26Q,OAGf,EACAy9sB,EAAoB9v9B,UAAU2qB,iBAAmB,WAC7Ct7B,KAAKmoC,OAAO5uB,GAAGwd,IAAqB/2B,KAAK4i+B,gBAAiB5i+B,KAC9D,EACAyg+B,EAAoB9v9B,UAAUyqB,oBAAsB,WAChDp7B,KAAKmoC,OAAO3uB,IAAIud,IAAqB/2B,KAAK4i+B,gBAC9C,EACAnC,EAAoB9v9B,UAAUiy9B,gBAAkB,SAAUvi+B,GACtD,IAAIA,EAAE02B,MAAMc,WAGZ73B,KAAK6i+B,cAAgB7i+B,KAAK8i+B,eAAezi+B,EAAE02B,QACvC/2B,KAAKmoC,OAAOuz7B,kBAAkBn9kB,UAAwC,gBAA5Bv+Y,KAAKmoC,OAAOw/W,aAAkC3nZ,KAAK6i+B,gBAG7Fxi+B,EAAE02B,MAAM1uB,OAAO6/Q,UAAUh1P,SAAS28Y,MAA2C,IAAlBxva,EAAE02B,MAAMsB,QACnEr4B,KAAKmoC,OAAO467B,sBACZlqvB,GAAazlN,IAAIpzB,KAAKmoC,OAAO+8kB,kBAAmB,YAAallnB,KAAKgj+B,iBAAkBhj+B,MACpF64O,GAAazlN,IAAIpzB,KAAKmoC,OAAO+8kB,kBAAmB,UAAWllnB,KAAKij+B,SAAUjj+B,OAE1EK,EAAE02B,MAAM1uB,OAAO6/Q,UAAUh1P,SAAS28Y,MAA6C,IAAlBxva,EAAE02B,MAAMsB,QAAa,CAClFr4B,KAAKmoC,OAAO467B,sBACZ,IAAIG,EAAYlj+B,KAAKmoC,OAAOg77B,eAC5BtqvB,GAAazlN,IAAI8v8B,EAAW,YAAalj+B,KAAKgj+B,iBAAkBhj+B,MAChE64O,GAAazlN,IAAI8v8B,EAAW,UAAWlj+B,KAAKij+B,SAAUjj+B,KAC1D,CACJ,EACAyg+B,EAAoB9v9B,UAAUqy9B,iBAAmB,SAAU3i+B,GAEvDmoR,GADmB,GAAG53Q,MAAMjR,KAAKK,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiB,IAAMq/Z,MACrD,kBACvB,IAAIuzjB,EAAiBpj+B,KAAKmoC,OAAOk77B,mBAAmBhj+B,EAAE4lJ,MAAO5lJ,EAAE2lJ,OAC/D,GAAIo90B,EAAezusB,QAAUyusB,EAAel10B,KAAOk10B,EAAez/1B,MAAQy/1B,EAAex/1B,MAAO,CAC5F,IAAIqjK,EAAWjnS,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KACnDyzjB,EAAYr8rB,EAASlS,cAAgBkS,EAASiX,cAAgBjX,EAAS94I,WAAa,GACpF84I,EAAS94I,UAAY84I,EAASlS,cAAgBkS,EAASiX,aACvDqlrB,EAAYt8rB,EAAS92B,aAAe82B,EAAS72B,aAAe62B,EAASh5I,YAAc,GACnFg5I,EAASh5I,WAAag5I,EAAS92B,aAAe82B,EAAS72B,YACvDkztB,IAAcF,EAAel10B,KAAOk10B,EAAezusB,UACnDsS,EAAS94I,WAAai10B,EAAel10B,KAAO7tJ,EAAEgI,OAAO0sR,aAAe10R,EAAEgI,OAAO0sR,cAE7EwusB,IAAcH,EAAez/1B,MAAQy/1B,EAAex/1B,SACpDqjK,EAASh5I,YAAcm10B,EAAez/1B,MAAQtjI,EAAEgI,OAAO8nQ,YAAc9vQ,EAAEgI,OAAO8nQ,YAEtF,CACA,IAAI9nQ,EAASrI,KAAK8i+B,eAAezi+B,GAC7BgI,GACArI,KAAKw/oB,aAAY,EAAMn3oB,EAE/B,EACAo49B,EAAoB9v9B,UAAUmy9B,eAAiB,SAAUzi+B,GACrD,OAAOo1F,GAAQp1F,EAAEgI,OAAQ,IAAMwna,IAAuB,KAAOA,IACjE,EACA4wjB,EAAoB9v9B,UAAUsy9B,SAAW,SAAU5i+B,GAC/C,IAAIf,EAAQU,KAOZ,GALAioR,GADmB,GAAGr3Q,MAAMjR,KAAKK,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiB,IAAMq/Z,MAClD,kBACtBxva,EAAEgI,OAAO6/Q,UAAUh1P,SAAS28Y,OAC5Bh3L,GAAa1lN,OAAOnzB,KAAKmoC,OAAO+8kB,kBAAmB,YAAallnB,KAAKgj+B,kBACrEnqvB,GAAa1lN,OAAOnzB,KAAKmoC,OAAO+8kB,kBAAmB,UAAWllnB,KAAKij+B,WAEnE5i+B,EAAEgI,OAAO6/Q,UAAUh1P,SAAS28Y,KAAyB,CACrD,IAAIqzjB,EAAYlj+B,KAAKmoC,OAAOg77B,eAC5BtqvB,GAAa1lN,OAAO+v8B,EAAW,YAAalj+B,KAAKgj+B,kBACjDnqvB,GAAa1lN,OAAO+v8B,EAAW,UAAWlj+B,KAAKij+B,SACnD,CACA,IAAIjj+B,KAAKwj+B,gBAAgBnj+B,GAAzB,CAGA,IAAI4ya,EAAW,IAAMpD,IAAuB,KAAOA,IAAyB,KAAOA,IAC/Exna,EAASotF,GAAQp1F,EAAEgI,OAAQ4qa,GAC/B,GAAgC,iBAA5Bjza,KAAKmoC,OAAOw/W,cAAkCt/Y,EAAO6/Q,UAAUh1P,SAAS28Y,KAA5E,CAGA7va,KAAKmoC,OAAOu17B,gBAAkB199B,KAAK0i+B,oBAAoBr69B,GACvD,IAAIo79B,EAAW,CAAC,EACZzj+B,KAAKmoC,OAAO617B,aACZh+9B,KAAKmoC,OAAO617B,YAAY0F,mBAAmB1j+B,KAAKmoC,OAAOu17B,gBAAiB+F,GAE5E,IAAIh1Z,EAAgBzukB,KAAKmoC,OAAOw77B,mBAC5B1q9B,EAAO,CACPixB,KAAMu57B,EAAUtu9B,QAASnV,KAAKmoC,OAAOu17B,gBAAgBvo9B,QAAS4hB,MAAO12B,EACrEs3a,YAAay1iB,IAAYwW,gBAAgB,GAE7C5j+B,KAAKmoC,OAAOm4P,QAAQvpQ,IAAc9d,GAAM,SAAU8m3B,GAE9C,IADkBA,EAAW6jG,gBAAkBtk+B,EAAM6oC,OAAO077B,0BACzCp1Z,EAAcrrkB,OAAS,EAAG,CACzC,IAAIwymB,EAAWnshB,GAAOnqF,EAAM6oC,OAAOu17B,gBAAiB,CAAE584B,QAAQ,EAAO/pD,MAAO12B,EAAGqE,KAAM,cACrFpF,EAAM6oC,OAAOkxK,OAAOtiL,IAAiB6+kB,EACzC,CACJ,GAjBA,CALA,CAuBJ,EACA6qX,EAAoB9v9B,UAAUsx9B,aAAe,SAAU5h+B,GACnD,KAAKL,KAAKmoC,OAAOuz7B,kBAAkBn9kB,WAAal+Y,EAAEgI,OAAO6/Q,UAAUh1P,SAAS28Y,MACrE7va,KAAKwj+B,gBAAgBnj+B,MAGI,iBAA5BL,KAAKmoC,OAAOw/W,cAAkCtnZ,EAAEgI,OAAO6/Q,UAAUh1P,SAAS28Y,MAA9E,CAGA,IAAIxna,EAAShI,EAAEgI,OACf,GAAIotF,GAAQptF,EAAQ,IAAMwna,KAClBxna,EAAO6/Q,UAAUh1P,SAAS28Y,MAC1Bxna,EAAO6/Q,UAAUh1P,SAAS28Y,MAC1Bxna,EAAO6/Q,UAAUh1P,SAAS28Y,MAC1Bxna,EAAO6/Q,UAAUh1P,SAAS28Y,MAC1Bxna,EAAO6/Q,UAAUh1P,SAAS28Y,MAC1Bxna,EAAO26Q,QACP3iR,EAAEgO,kBAEGhG,EAAO6/Q,UAAUh1P,SAAS28Y,OAC/B7va,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KAAwB7sJ,QAChE3iR,EAAEgO,uBAIV,GAAIhG,EAAO6/Q,UAAUh1P,SAAS28Y,MAA6Bxna,EAAO6/Q,UAAUh1P,SAAS28Y,KAArF,CACI,IAAIi0jB,EAAez79B,EAAOuxB,cAAc,IAAMi2Y,KAC1Ci0jB,GACAA,EAAa9gtB,OAGrB,MACA,GAAI36Q,EAAO6/Q,UAAUh1P,SAAS28Y,MAAyBxna,EAAO6/Q,UAAUh1P,SAAS28Y,KAAjF,CACI7va,KAAKmoC,OAAOu17B,gBAAkB199B,KAAK0i+B,oBAAoBr69B,GACvD,IAAI4Q,EAAOwwE,GAAOzpF,KAAKmoC,OAAOu17B,gBAAiB,CAAE584B,QAAQ,EAAO/pD,MAAO12B,IACvE,GAAIL,KAAKmoC,OAAOo67B,YAAa,CACzB,IAAII,EAAa,CACbxt9B,QAAS8D,EAAK9D,QACdgrzB,WAAYlnzB,EAAKknzB,WAAYvzzB,KAAM,QAEvC5M,KAAKmoC,OAAOkxK,OAAOtiL,IAAmB4r8B,EAC1C,KAEoC,SAA5B3i+B,KAAKmoC,OAAOw/W,YACZt/Y,EAAO26Q,QAGPhjR,KAAKmoC,OAAOkxK,OAAOtiL,IAAiB9d,EAIhD,MACA,GAAI5Q,EAAO6/Q,UAAUh1P,SAAS28Y,MAA6B7va,KAAKmoC,OAAOq67B,aACnExi+B,KAAKmoC,OAAOq67B,aAAauB,kBAAkB179B,OAD/C,CAIA,KAAIA,EAAO6/Q,UAAUh1P,SAAS28Y,MAA0Bxna,EAAO6/Q,UAAUh1P,SAAS28Y,MAC9Exna,EAAO6/Q,UAAUh1P,SAAS28Y,MAAyCxna,EAAO6/Q,UAAUh1P,SAAS28Y,MAIjG,OAAIxna,EAAO6/Q,UAAUh1P,SAAS28Y,MAC1B7va,KAAKmoC,OAAO8jT,cAAc,CAAEi8D,aAAcloZ,KAAKmoC,OAAO677B,mBAAmB379B,KAAW,GACpFrI,KAAKmoC,OAAOk17B,WAAWr99B,KAAKmoC,OAAO877B,kBAAmB5j+B,QACtDL,KAAKsi+B,cAAcji+B,SAHvB,EAHIgI,EAAO26Q,OAHX,CA/CA,CA2DJ,EACAy9sB,EAAoB9v9B,UAAU+x9B,oBAAsB,SAAUr69B,GAC1D,IAAI679B,EACJ,GAAIlk+B,KAAKyukB,cAAcrrkB,OAAS,GAAKiF,EAAO6/Q,UAAUh1P,SAAS28Y,KAA0B,CACrF,IAAI35X,EAAQl2C,KAAKmoC,OAAOg87B,eAAenk+B,KAAKyukB,cAAc,IACtDr1hB,EAAMp5C,KAAKmoC,OAAOg87B,eAAenk+B,KAAKyukB,cAAc79jB,OAAO,GAAG,IAClEslC,EAAMw2V,QAAUtzV,EAAIszV,QACpBx2V,EAAM/gC,QAAU9M,EAChB679B,EAAchu7B,CAClB,MAEIgu7B,EAAclk+B,KAAKmoC,OAAOg87B,eAAe979B,GAE7C,OAAO679B,CACX,EACAzD,EAAoB9v9B,UAAUyz9B,SAAW,SAAUC,EAAgBnu7B,EAAOkD,GACtE,IAAIw4kB,EAAW5xnB,KAAKmoC,OAAO+8kB,kBACvBo/W,EAA6C,iBAA5Btk+B,KAAKmoC,OAAOw/W,YAC7B34N,EAAQs1yB,IAAmBD,EAAiB,IAAMx0jB,IAAuB,SAAWA,IAAuB,IAAM,KACjH8hK,EAAQ,GAAG/gkB,MAAMjR,KAAKiynB,EAASphnB,iBAAiBw+K,IAChDqkZ,EAASu+C,EAASxjD,KAAKhrkB,OACvBmh+B,EAAY3yW,EAASxjD,KAAK,GAAGuD,MAAMvukB,OACvC,GAAI8yC,GAASA,EAAMgyO,UAAUh1P,SAAS28Y,KAAyB,CAC3D,IAAIqzjB,EAAYlj+B,KAAKmoC,OAAOg77B,eAC5BxxZ,EAAQ,GAAG/gkB,MAAMjR,KAAKuj+B,EAAUvxZ,OAChC0B,EAAS,EACTkxZ,EAAYrB,EAAUvxZ,MAAMvukB,MAChC,CACA,IAAIqxC,EAAak9hB,EAAMhnkB,QAAQurC,GAC3BxB,EAAWi9hB,EAAMhnkB,QAAQyuC,GACzBor7B,EAAe,GACnB,GAAIH,EAAgB,CAChB,IAAK,IAAIl49B,EAAI,EAAGA,EAAIo49B,EAAWp49B,IAC3B,IAAK,IAAI6D,EAAI,EAAGA,EAAIqjkB,EAAQrjkB,IAAK,CAC7B,IAAIq+jB,EAAOsD,EAAM4yZ,EAAYv09B,EAAI7D,GAC7Bm49B,GAAkBj2Z,EAAKnmT,UAAUh1P,SAAS28Y,MAG9C20jB,EAAap49B,KAAKiikB,EACtB,CAEJ55hB,EAAa+v7B,EAAa759B,QAAQurC,GAClCxB,EAAW8v7B,EAAa759B,QAAQyuC,EACpC,CACA,GAAI3E,EAAaC,EAAU,CACvB,IAAIg4C,EAAOj4C,EACXA,EAAaC,EACbA,EAAWg4C,CACf,CAEA,OADa234B,EAAiBG,EAAe7yZ,GAC/B/gkB,MAAM6jC,EAAYC,EAAW,EAC/C,EACA+r7B,EAAoB9v9B,UAAUux9B,eAAiB,WAC3C,GAAgC,WAA5Bli+B,KAAKmoC,OAAOw/W,YAA0B,CACtC,IAAI88kB,EAAYzk+B,KAAKmoC,OAAO+8kB,kBAAkBtrlB,cAAc,mBAG5D,OAFA6q8B,EAAUzv8B,aAAa,WAAY,UACnCyv8B,EAAUr69B,OAEd,CAEA,GADApK,KAAKmoC,OAAOu87B,UAAUC,iCAClB3k+B,KAAKmoC,OAAOyz7B,WAAWgJ,kBAAgD,iBAA5B5k+B,KAAKmoC,OAAOw/W,YAAgC,CACvF,IAAI0mL,EAAOrukB,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,IAC/C,YAAcA,IAAmB,MAAQA,IAAuB,SAAWA,IAAiC,KAChH7va,KAAKw/oB,aAAY,EAAOnxE,EAC5B,MACK,GAAIrukB,KAAKmoC,OAAOw/W,YAAYh9Y,QAAQ,SAAW,EAAG,CACnD,IAAIqkL,EAAQ,IAAM6gP,IAAuB,SAAWA,IAAxC,UAAgFA,IAAiC,IAE7H7gP,GADiD,iBAA5BhvL,KAAKmoC,OAAOw/W,aAAgF,aAA9C3nZ,KAAKmoC,OAAOuz7B,kBAAkBhmb,YACvE,eAAiB11iB,KAAKmoC,OAAOyz7B,WAAWhskB,YAAYluZ,UAAY,KAAO,GACjG1B,KAAKw/oB,aAAY,EAAOx/oB,KAAKmoC,OAAOhzB,QAAQykB,cAAco1J,GAC9D,MAEIhvL,KAAKw/oB,aAAY,EAAOx/oB,KAAKmoC,OAAO087B,sBAAsB,GAElE,EACApE,EAAoB9v9B,UAAUm09B,qBAAuB,WACjD,OAAO9k+B,KAAKmoC,OAAOyz7B,WAAWkJ,oBAClC,EASArE,EAAoB9v9B,UAAU6uoB,YAAc,SAAUulV,EAAYC,GAC9D,IAAI1l+B,EAAQU,KACZA,KAAKmoC,OAAO467B,sBACZ,IAAI169B,EAAU289B,aAAsBt09B,MAASs09B,EAAWp09B,OAAO,GAAG,GAAKo09B,EACvE,GAAID,EAAY,CACZ,IAAIE,EACAC,EAAU,CAAC,MAAO,OAAQ,WAAY,cAAe,eAAgB,mBAAoB,gBAAiB,gBAC1Gjs9B,EAAO,CAAE9D,QAAS6v9B,EAAYrtjB,YAAa,YAAawtjB,kBAAkB,GAC9Enl+B,KAAKmoC,OAAOq67B,aAAa4C,iCACzBpl+B,KAAKmoC,OAAOm4P,QAAQvpQ,IAAc9d,GAAM,SAAU8m3B,GAE9C,IADyBA,EAAWolG,mBAAuB7l+B,EAAM6oC,OAAOk97B,uBAClD,CAClB,IAAIf,EAA8C,iBAA7Bhl+B,EAAM6oC,OAAOw/W,YAClC,GAAI28kB,GAAiE,eAA/Chl+B,EAAM6oC,OAAOuz7B,kBAAkBhmb,aAA6D,UAA7Bp2iB,EAAM6oC,OAAOw/W,YAAyB,CACvH,IAAI29kB,EAAchB,GAAkBhl+B,EAAM6oC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,EAC5FiF,EAASi99B,EAAchm+B,EAAMuj+B,cACzBvj+B,EAAMuj+B,cAAchtsB,cAAc/vR,SAASuC,EAAO8tnB,UAC1D,MACS+uW,EAAQv69B,QAAQrL,EAAM6oC,OAAOw/W,cAAgB,IAClDt/Y,EAASA,EAAOwtR,cAAc/vR,SAASxG,EAAMuj+B,cAAc1sW,WAEnE,CACA,IAAI1nD,EAAgBnvkB,EAAM8k+B,SAAS9k+B,EAAMwl+B,uBAAwBxl+B,EAAMuj+B,cAAex69B,GACtF,GAAI/I,EAAM6oC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,EAAG,CAC3D6h+B,EAAc3l+B,EAAMuj+B,cAAcvw8B,aAAa,oBAE/C,IADA,IAAIiz8B,EAAwB,GACnBj29B,EAAK,EAAGk29B,EAAkB/2Z,EAAen/jB,EAAKk29B,EAAgBpi+B,OAAQkM,IAAM,EAC7E++jB,EAAOm3Z,EAAgBl29B,IAClBgjB,aAAa,sBAAwB2y8B,GAC1CM,EAAsBn59B,KAAKiikB,EAEnC,CACAI,EAAgB82Z,CACpB,CAKA,GAJKjm+B,EAAM6oC,OAAOs97B,0BACdh3Z,EAAgB,CAACnvkB,EAAMuj+B,gBAE3Bvj+B,EAAMmvkB,cAAgBA,EAClBA,EAAcrrkB,OAAS,IAAMiF,EAAO6/Q,UAAUh1P,SAAS28Y,KAAyB,CAChF,IAAI61jB,EAAcpm+B,EAAMqm+B,eAAel3Z,GACvC,GAAInvkB,EAAM6oC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,EAAG,CAE3D,IADA,IAAIwi+B,EAAsB,GACjBtw7B,EAAK,EAAGuw7B,EAAgBH,EAAapw7B,EAAKuw7B,EAAczi+B,OAAQkyC,IAAM,CAC3E,IAAI+4hB,KAAOw3Z,EAAcvw7B,IAChBhjB,aAAa,sBAAwB2y8B,GAC1CW,EAAoBx59B,KAAKiikB,EAEjC,CACAq3Z,EAAcE,CAClB,CACAn3Z,EAAgBA,EAAcr1jB,OAAOss9B,EACzC,CACKr99B,EAAOiqB,aAAa,sBAAwB2y8B,GAAgB3l+B,EAAM6oC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,IACrHiF,EAAS/I,EAAMmvkB,cAAcnvkB,EAAMmvkB,cAAcrrkB,OAAS,IAE9D9D,EAAM6oC,OAAO297B,iBAAiBr3Z,EAAepmkB,EACjD,GACJ,KACK,CACG4Q,EAAO,CACP9D,QAAS9M,EAAQsva,YAAay1iB,KAYlCpt9B,KAAKmoC,OAAOm4P,QAAQvpQ,IAAc9d,GAAM,WACpC3Z,EAAMuj+B,cAAgBx69B,EACtB/I,EAAMmvkB,cAAgB,CAACpmkB,GACvB/I,EAAM6oC,OAAO297B,iBAAiB,CAACz99B,GAASA,EAC5C,GACJ,CACJ,EACAo49B,EAAoB9v9B,UAAUo19B,kBAAoB,SAAUrnE,EAAWr25B,GACnE,IAAI299B,EAAehm+B,KAAKim+B,yBACxB,KAAID,EAAa5i+B,OAAS,GAA1B,CAIA,IAAI8i+B,EACJ,GAFAlm+B,KAAKmoC,OAAOu87B,UAAUC,iCAElBt89B,EAAO6/Q,UAAUh1P,SAAS28Y,KAAwB,CAClD,IAAI82c,EAAcq/G,EAAar79B,QAAQtC,GACvC699B,EAAaF,EAActnE,EAAY/3C,EAAc,EAAIA,EAAc,EAC3E,MAEIu/G,EAAaxnE,EAAYsnE,EAAaA,EAAa5i+B,OAAS,GAAK4i+B,EAAa,GAE9EE,IACAlm+B,KAAKmoC,OAAOu87B,UAAUyB,wBAAwB,CAACD,IAAa,GAC5DA,EAAW979B,QACXo+Q,GAAS,CAAC09sB,GAAar2jB,KAb3B,CAeJ,EACA4wjB,EAAoB9v9B,UAAUy19B,qCAAuC,SAAU1nE,EAAWr25B,GACtF,IAAI/I,EAAQU,KAGZ,GAFAA,KAAKmoC,OAAOu87B,UAAUC,iCACtB3k+B,KAAKmoC,OAAO467B,sBACR169B,EAAO6/Q,UAAUh1P,SAAS28Y,MAAyBxna,EAAO6/Q,UAAUh1P,SAAS28Y,KAAyB,CACtG,IAAIw2jB,EAAwBrm+B,KAAKsm+B,+BAC7BC,EAAqB,GACrBC,EAAiBxm+B,KAAKmoC,OAAO677B,mBAAmB379B,GAAQ3G,UAY5D,GAX2B1B,KAAKmoC,OAAOs+7B,gBAAgBrg+B,QAAO,SAAUsg+B,GACpE,OAAShoE,EACJgoE,EAAYpn+B,EAAM6oC,OAAOw+7B,YAAY5vzB,WAAWr1K,WAAa8k+B,EAD5CE,EAAYpn+B,EAAM6oC,OAAOw+7B,YAAY5vzB,WAAWr1K,WAAa8k+B,CAEvF,IACqBpg+B,QAAO,SAAU2wB,GAClCsv8B,EAAsBjg+B,QAAO,SAAU+O,GAC/Bs7B,KAAK+mF,UAAUzgG,EAAMguwB,QAAUt0vB,KAAK+mF,UAAUriH,EAAQmd,aAAa,eACnEi08B,EAAmBn69B,KAAK+I,EAEhC,GACJ,IACIox9B,EAAmBnj+B,OAAS,EAAG,CAC/B,IAAImsZ,EAAkBmvgB,EAAY6nE,EAAmBA,EAAmBnj+B,OAAS,GAAKmj+B,EAAmB,GACrGK,EAAgB5m+B,KAAK6m+B,6BAA6Bt3kB,EAAgBj9X,aAAa,cACnFtyB,KAAKmoC,OAAOu87B,UAAUyB,wBAAwBS,GAAe,GAC5DA,EAAcA,EAAcxj+B,OAAS,GAAIgH,OAC9C,CACJ,CACJ,EACAq29B,EAAoB9v9B,UAAUg19B,eAAiB,SAAUh0Z,GACrD,IAAIuxZ,EAAYlj+B,KAAKmoC,OAAOg77B,eAC5B,IAAKD,EACD,MAAO,GAEX,IAAI1uZ,EAAY7C,EAAM,GAClB8C,EAAU9C,EAAMA,EAAMvukB,OAAS,GAC/B8yC,EAAQl2C,KAAKmoC,OAAOg87B,eAAe3vZ,GAEvC,OADUx0kB,KAAKmoC,OAAOg87B,eAAe1vZ,GAC7B/nM,QAAQhrY,UAAYw0C,EAAM6gI,UAAUr1K,WAAa269B,IACnC,GAAGzr9B,MAAMjR,KAAKuj+B,EAAUvxZ,OACvB/gkB,MAAM4jkB,EAAU2hD,UAAW1hD,EAAQ0hD,UAAY,GAE/D,EACX,EACAsqW,EAAoB9v9B,UAAUs19B,uBAAyB,WACnD,MAAO,GAAGr19B,MAAMjR,KAAKK,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiB,IAAMq/Z,KACpE,EACA4wjB,EAAoB9v9B,UAAUk29B,6BAA+B,SAAUhlxB,GACnE,MAAO,GAAGjxM,MAAMjR,KAAKK,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiB,kBAAoBqxM,EAAO,MACzF,EACA4+wB,EAAoB9v9B,UAAU219B,6BAA+B,WACzD,IAAIN,EAAehm+B,KAAKim+B,yBACpBa,EAAsB,GAM1B,OALAd,EAAa//9B,KAAI,SAAUrE,GAAS,OAAOA,EAAM0wB,aAAa,YAAc,IAAGlsB,QAAO,SAAUxE,EAAO6qB,EAAO5U,GACtGA,EAAKlN,QAAQ/I,KAAW6qB,GACxBq68B,EAAoB169B,KAAK459B,EAAaz58B,SAASE,EAAM3V,WAAY,KAEzE,IACOgw9B,CACX,EACArG,EAAoB9v9B,UAAUo29B,kCAAoC,SAAU1+9B,GACxE,IAAI2+9B,EAAiBhn+B,KAAKmoC,OAAOu87B,UAAUuC,eAAe5+9B,EAAOiqB,aAAa,cAC9E,OAAOtyB,KAAKmoC,OAAOu87B,UAAUwC,qBAAqB,CAACF,GACvD,EACAvG,EAAoB9v9B,UAAUqx9B,sBAAwB,SAAU3h+B,GAC5D,IAAIosB,EAAQF,SAASlsB,EAAEiM,IAAK,IAAM,EAClC,GAAImgB,EAAQzsB,KAAKmoC,OAAOo07B,MAAMn59B,OAAQ,CAClC,IAAI01B,EAAO94B,KAAKmoC,OAAOg/7B,gBAAgB568B,SAASE,EAAM3V,WAAY,KAAK8mS,OACvE59S,KAAKmoC,OAAOk17B,WAAWvk8B,EAAMz4B,OAAGgD,EAAWopB,GACvCzsB,KAAKmoC,OAAO06mB,cACZ7ipB,KAAKmoC,OAAO06mB,aAAa1toB,QAAQykB,cAAc,yBAAyBxvB,OAEhF,CACJ,EACAq29B,EAAoB9v9B,UAAUy29B,mBAAqB,SAAU9C,GACzD,IAAI+C,EAAiB/C,GAAgE,aAA9Ctk+B,KAAKmoC,OAAOuz7B,kBAAkBhmb,YACjE4xb,EAAUtn+B,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,EACrE,SAAIik+B,GAAkBC,GAAWhD,GAAkBtk+B,KAAK6i+B,cAAc36sB,UAAUh1P,SAAS28Y,WAGrF7va,KAAKmoC,OAAOyz7B,WAAWgJ,kBAAqBN,IAA8C,gBAA5Btk+B,KAAKmoC,OAAOw/W,YAIlF,EACA84kB,EAAoB9v9B,UAAUkx9B,UAAY,SAAUxh+B,EAAG0k+B,GACnD,IAAIT,EAA6C,iBAA5Btk+B,KAAKmoC,OAAOw/W,YACjC,IAAIo9kB,IAAc/k+B,KAAKon+B,mBAAmB9C,GAA1C,CAGA,IAAIj89B,EAAUhI,EAAEgI,OACZk/9B,EAAmBvn+B,KAAKmoC,OAAOw77B,mBAC/B6D,EAAwBxn+B,KAAKmoC,OAAOu87B,UAAU+C,0BAC9CC,EAAmB1n+B,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KAC3D83jB,EAAoB3n+B,KAAK4n+B,uBAU7B,GATIL,EAAiBnk+B,OAAS,IAAM/C,EAAEgI,OAAO6/Q,UAAUh1P,SAAS28Y,OAC5Dxna,EAASk/9B,EAAiBA,EAAiBnk+B,OAAS,IAEpDok+B,EAAsBpk+B,OAAS,IAAMsk+B,EAAiBx/sB,UAAUh1P,SAAS28Y,OACxE83jB,EAAkBz/sB,UAAUh1P,SAAS28Y,OACqC,IAA3E,CAAC,MAAO,OAAQ,WAAY,SAASlla,QAAQ3K,KAAKmoC,OAAOw/W,eACzDt/Y,EAASrI,KAAK+m+B,kCAAkCS,EAAsBA,EAAsBpk+B,OAAS,IACrGpD,KAAKmoC,OAAOu87B,UAAUC,kCAErBt89B,EAGL,GAAIA,EAAO6/Q,UAAUh1P,SAAS28Y,OAA0B7va,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KAAiB,CAC7G,IAAIg4jB,EAAY7n+B,KAAKmoC,OAAO2/7B,eACxBC,EAAcF,EAAUl99B,QAAQtC,EAAOwtR,eACvCmvsB,OAAa,EAKjB,GAJIV,GAAkBS,GAAuE,IAAzD/k+B,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,SAC9E4h+B,EAAahl+B,KAAK8k+B,uBAAyB9k+B,KAAKgo+B,sBAAsBH,EAAWx/9B,EAAQ0/9B,GAAa,GAClG/n+B,KAAKio+B,wBAAwBJ,EAAWx/9B,EAAQ0/9B,GAAa,KAEhEA,EAAc,GAAK/C,IAAe+C,EAAcF,EAAUzk+B,OAAQ,CAEnE,GADA4h+B,EAAaA,GAA2B6C,EAAUE,EAAc,GAAIp2Z,MAAMtpkB,EAAO8tnB,WACjD,SAA5Bn2nB,KAAKmoC,OAAOw/W,aAA0Bq9kB,EAAW98sB,UAAUh1P,SAAS28Y,KAAuB,CAC3F,KAAI7va,KAAKmoC,OAAOyz7B,WAAWC,eAAen69B,WAAasj+B,EAAW1y8B,aAAa,cAI3E,OAHA0y8B,EAAahl+B,KAAKko+B,kBAAkBL,EAAWE,EAAc,EAAG1/9B,EAAO8tnB,WAAW,EAK1F,CACAn2nB,KAAKw/oB,YAAYulV,EAAYC,EACjC,CACJ,KACqC,WAA5Bhl+B,KAAKmoC,OAAOw/W,aAAwD,gBAA5B3nZ,KAAKmoC,OAAOw/W,aACzD3nZ,KAAK+l+B,mBAAkB,EAAM199B,EAxCjC,CA0CJ,EACAo49B,EAAoB9v9B,UAAUix9B,YAAc,SAAUvh+B,EAAG0k+B,GACrD,IAAIT,EAA6C,iBAA5Btk+B,KAAKmoC,OAAOw/W,YACjC,IAAIo9kB,IAAc/k+B,KAAKon+B,mBAAmB9C,GAA1C,CAGA,IAAIj89B,EAAUhI,EAAEgI,OACZomkB,EAAgBzukB,KAAKmoC,OAAOw77B,mBAC5B4D,EAAmBvn+B,KAAKmoC,OAAOu87B,UAAU+C,0BACzCC,EAAmB1n+B,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KAC3D83jB,EAAoB3n+B,KAAK4n+B,uBACzBn5Z,EAAcrrkB,OAAS,IAAM/C,EAAEgI,OAAO6/Q,UAAUh1P,SAAS28Y,OACzDxna,EAASomkB,EAAcA,EAAcrrkB,OAAS,IAE9Cmk+B,EAAiBnk+B,OAAS,IAAMsk+B,EAAiBx/sB,UAAUh1P,SAAS28Y,OACnE83jB,EAAkBz/sB,UAAUh1P,SAAS28Y,OACqC,IAA3E,CAAC,MAAO,OAAQ,WAAY,SAASlla,QAAQ3K,KAAKmoC,OAAOw/W,eACzDt/Y,EAASrI,KAAK+m+B,kCAAkCQ,EAAiBA,EAAiBnk+B,OAAS,IAC3FpD,KAAKmoC,OAAOu87B,UAAUC,kCAE1B,IAAIkD,EAAY7n+B,KAAKmoC,OAAO2/7B,eAC5B,GAAKz/9B,EAGL,GAAIA,EAAO6/Q,UAAUh1P,SAAS28Y,OAA0B7va,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KAAiB,CAC7G,IAAIk4jB,EAAcF,EAAUl99B,QAAQtC,EAAOwtR,eACvCmvsB,OAAa,EAKjB,GAJIV,GAAkBS,GAAuE,IAAzD/k+B,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,SAC9E4h+B,EAAahl+B,KAAK8k+B,uBAAyB9k+B,KAAKgo+B,sBAAsBH,EAAWx/9B,EAAQ0/9B,GAAa,GAChG/n+B,KAAKio+B,wBAAwBJ,EAAWx/9B,EAAQ0/9B,GAAa,IAEnEA,GAAe,IAAOA,EAAcF,EAAUzk+B,OAAS,GAAM4h+B,GAAa,CAE1E,GADAA,EAAaA,GAA2B6C,EAAUE,EAAc,GAAIp2Z,MAAMtpkB,EAAO8tnB,WACjD,SAA5Bn2nB,KAAKmoC,OAAOw/W,aAA0Bq9kB,EAAW98sB,UAAUh1P,SAAS28Y,KAAuB,CAC3F,KAAI7va,KAAKmoC,OAAOyz7B,WAAWE,aAAap69B,WAAasj+B,EAAW1y8B,aAAa,cAIzE,OAHA0y8B,EAAahl+B,KAAKko+B,kBAAkBL,EAAWE,EAAc,EAAG1/9B,EAAO8tnB,WAAW,EAK1F,CACAn2nB,KAAKw/oB,YAAYulV,EAAYC,EACjC,CACJ,KACqC,WAA5Bhl+B,KAAKmoC,OAAOw/W,aAAwD,gBAA5B3nZ,KAAKmoC,OAAOw/W,aACzD3nZ,KAAK+l+B,mBAAkB,EAAO199B,EAxClC,CA0CJ,EACAo49B,EAAoB9v9B,UAAUu39B,kBAAoB,SAAUL,EAAWl3Z,EAAUwlD,EAAW+5Q,GACxF,KAAO23F,EAAUt78B,SAASokjB,EAAS75jB,WAAY,MAC3C+w9B,EAAUt78B,SAASokjB,EAAS75jB,WAAY,KAAK66jB,MAAMpljB,SAAS4pmB,EAAUr/mB,WAAY,KAAKoxQ,UAAUh1P,SAAS28Y,MAC1G8gK,GAAuBu/T,GAAQ,EAAI,EAEvC,OAAO23F,EAAUt78B,SAASokjB,EAAS75jB,WAAY,KAAK66jB,MAAMpljB,SAAS4pmB,EAAUr/mB,WAAY,IAC7F,EAEA2p9B,EAAoB9v9B,UAAUs39B,wBAA0B,SAAUJ,EAAWx/9B,EAAQ0/9B,EAAa73F,GAC9F,IAAIrjf,EAAMg7kB,EAAUE,GAAe73F,GAAQ,EAAI,IAC3C7hU,EAAOxhL,EAAMA,EAAI8kL,MAAMtpkB,EAAO8tnB,WAAa9tnB,EAC/C,GAAIgmkB,EAAKnmT,UAAUh1P,SAAS28Y,KAAuB,CAC/C,IAAIs4jB,EAAWt7kB,EAAIjzX,cAAc,IAAMi2Y,IAAuB,SAAWA,IAAuB,KAC5F3va,EAAO,IAAIuB,MAAM0m+B,EAAS718B,aAAa,cACvC08J,EAAQ,eAAiB,IAAIvtL,KAAKvB,EAAKE,cAAeF,EAAKC,WAAa,EAAG,GAAGuB,UAAY,KAC9F2skB,EAAOA,EAAK8nD,UAAYgyW,EAAShyW,UAAYgyW,EAAWt7kB,EAAIjzX,cAAco1J,EAC9E,CACA,OAAOq/Y,CACX,EAEAoyZ,EAAoB9v9B,UAAUq39B,sBAAwB,SAAUH,EAAWx/9B,EAAQ0/9B,EAAa73F,GAC5F,IACI80F,EADS90F,GAAQ63F,EAAc,IAAM73F,GAAQ63F,EAAcF,EAAUzk+B,OAAS,EACxDyk+B,EAAUE,GAAe73F,GAAQ,EAAI,IAAIv+T,MAAMtpkB,EAAO8tnB,gBAAa9ynB,EAC7F,IAAK2h+B,GAAcA,EAAW98sB,UAAUh1P,SAAS28Y,KAAuB,CAEpE,GADag4jB,EAAUt78B,SAASw78B,EAAYjx9B,WAAY,KAAK66jB,MAAMtpkB,EAAO8tnB,WAAa+5Q,EAAO,GAAK,IACvF,CACR,IAAIk4F,GAAY//9B,EAAOiqB,aAAa,cAAgB492B,EAAOmsF,KAAmBA,KAC9E,OAAOr89B,KAAKmoC,OAAO+8kB,kBAAkBtrlB,cAAc,IAAMi2Y,IAAuB,eAAiBu4jB,EAAW,KAChH,CACApD,EAAa389B,CACjB,CACA,OAAO289B,CACX,EACAvE,EAAoB9v9B,UAAU039B,iBAAmB,SAAUhg+B,GACvD,IAAIupnB,EAAwC,SAA5B5xnB,KAAKmoC,OAAOw/W,YAAyBt/Y,EAAOotF,QAAQ,SAAWz1F,KAAKmoC,OAAO+8kB,kBACvF6iX,EAAc1/9B,EAAOmsB,WAAW8z8B,gBAOpC,MANU,CACNnz9B,QAASy8mB,EACTjhD,SAAUo3Z,EACV1zZ,YAAahskB,EAAO8tnB,UACpBj0T,SAAU0vT,EAASxjD,KAAK7hjB,SAASw78B,EAAYjx9B,WAAY,KAAK66jB,MAAMvukB,OAG5E,EACAq99B,EAAoB9v9B,UAAUi39B,qBAAuB,WACjD,OAAQ5n+B,KAAKmoC,OAAOumrB,WAAax9rB,SAASzd,KAAOzT,KAAKmoC,OAAOhzB,SAASykB,cAAc,IAAMi2Y,IAC9F,EACA4wjB,EAAoB9v9B,UAAU439B,wBAA0B,SAAUlo+B,EAAG0k+B,EAAYT,GAC7E,IAAI7rkB,EAAsC,gBAA5Bz4Z,KAAKmoC,OAAOw/W,aAAiC28kB,GAAkBtk+B,KAAK6i+B,cAAc36sB,UAAUh1P,SAAS28Y,KACnH,GAAgC,WAA5B7va,KAAKmoC,OAAOw/W,aAA6Bo9kB,GAActskB,EACvD,OAAO,EAEX,GAAIz4Z,KAAKwj+B,gBAAgBnj+B,IAAM0k+B,EAC3B,OAAO,EAEX,IAAI2C,EAAmB1n+B,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KAC3D83jB,EAAoB3n+B,KAAK4n+B,uBAC7B,SAAIF,EAAiBx/sB,UAAUh1P,SAAS28Y,OAAmB83jB,EAAkBz/sB,UAAUh1P,SAAS28Y,KAIpG,EACA4wjB,EAAoB9v9B,UAAUox9B,aAAe,SAAU1h+B,EAAG0k+B,GACtD,IAAIT,EAA6C,iBAA5Btk+B,KAAKmoC,OAAOw/W,YACjC,IAAI3nZ,KAAKuo+B,wBAAwBlo+B,EAAG0k+B,EAAYT,GAAhD,CAGA,IACIU,EADAv2Z,EAAgBzukB,KAAKmoC,OAAOw77B,mBAE5B6E,EAAuBxo+B,KAAKmoC,OAAOu87B,UAAU+C,0BAC7Cp/9B,EAAUhI,EAAEgI,OAKhB,GAJIomkB,EAAcrrkB,OAAS,IAAMiF,EAAO6/Q,UAAUh1P,SAAS28Y,OACtDxna,EAAO6/Q,UAAUh1P,SAAS28Y,OAC3Bxna,EAASomkB,EAAcA,EAAcrrkB,OAAS,MAE9Col+B,EAAqBpl+B,OAAS,KAC9BiF,EAASrI,KAAK+m+B,kCAAkCyB,EAAqBA,EAAqBpl+B,OAAS,IACnGpD,KAAKmoC,OAAOu87B,UAAUC,iCACjBt89B,GAIT,GAAIA,EAAO6/Q,UAAUh1P,SAAS28Y,MACzBxva,EAAEgI,OAAQ6/Q,UAAUh1P,SAAS28Y,KAAuB,CACrD,IAAIvja,EAAMtM,KAAKqo+B,iBAAiBhg+B,GAC5Bog+B,EAAa,IAAIhn+B,MAAM4G,EAAOiqB,aAAa,cAC3Co28B,EAAyC,SAA5B1o+B,KAAKmoC,OAAOw/W,aAA0B8glB,EAAW/m+B,YAAc269B,IAAqBoM,GAAY/m+B,UACjH,GAAI4K,EAAI+nkB,aAAe,GAAK/nkB,EAAI+nkB,YAAc/nkB,EAAI41T,SAAW,IAAMwmqB,EAC/D1D,EAAahl+B,KAAK2o+B,sBAAsBtg+B,EAAQiE,EAAI6I,QAAQi5jB,KAAK9hkB,EAAIqkkB,UAAUgB,MAAMtpkB,EAAO8tnB,UAAY,GAAI,SACxGmuW,GAAkBS,GAAcC,EAAW98sB,UAAUh1P,SAAS28Y,OAC9Dm1jB,EAAahl+B,KAAK4o+B,0BAA0Bt89B,EAAKjE,GAAQ,IAExD0jU,GAAkBi5pB,IACnBhl+B,KAAKw/oB,YAAYulV,EAAYC,QAGhC,GAAI149B,EAAI+nkB,cAAgB/nkB,EAAI41T,SAAW,GAAKwmqB,EAC7C,IAAK1o+B,KAAK8k+B,wBAA0Bx49B,EAAIqkkB,SAAWrkkB,EAAI6I,QAAQi5jB,KAAKhrkB,OAAS,IAAMsl+B,EAAY,CAC3F1D,EAAahl+B,KAAK2o+B,sBAAsBtg+B,EAAQiE,EAAI6I,QAAQi5jB,KAAK9hkB,EAAIqkkB,SAAW,GAAGgB,MAAM,GAAI,SAC7F,IAAIk3Z,EAAmBvE,GAAkBS,GAAcC,EAAW98sB,UAAUh1P,SAAS28Y,KAEhF9jG,GADLi5pB,EAAa6D,EAAmB7o+B,KAAK8o+B,2BAA2Bx89B,EAAKjE,GAAQ,GAAQ289B,IAEjFhl+B,KAAKw/oB,YAAYulV,EAAYC,EAErC,MACK,IAAKD,EAAY,CAClB,GAAI2D,GAAcD,EAAW/m+B,YAAc1B,KAAKmoC,OAAOyz7B,WAAWE,aAAap69B,UAE3E,YADA1B,KAAKw/oB,YAAYulV,EAAY/k+B,KAAKmoC,OAAOhzB,QAAQykB,cAAc,SAAWi2Y,IAAuB,iBAAmB44jB,EAAW/m+B,UAAY269B,KAAmB,OAGlK,IAAI1rZ,EAAW3wkB,KAAK8k+B,uBAAyBx49B,EAAIqkkB,SAAW,EAC5D3wkB,KAAKmoC,OAAO807B,WAAWj99B,KAAKmoC,OAAOyz7B,WAAW6B,oBAAoB,QAASp99B,GAC3E,IAAIuxnB,EAAW5xnB,KAAKmoC,OAAO+8kB,kBACvB72C,EAAOq6Z,EAAa92W,EAASxjD,KAAK7hjB,SAASokjB,EAAS75jB,WAAY,KAAK8iB,cAAc,IAAMi2Y,IAAuB,SAAWA,IAAuB,KAChJ+hN,EAASxjD,KAAK7hjB,SAASokjB,EAAS75jB,WAAY,KAAK66jB,MAAM,GAC7D3xkB,KAAKw/oB,aAAY,EAAOnxE,EAC5B,CAER,MACK,GAAIhmkB,EAAO6/Q,UAAUh1P,SAAS28Y,KAAyB,CACxD,IAAIk5jB,EAAc1g+B,EAAO8tnB,UACrB+sW,EAAYlj+B,KAAKmoC,OAAOg77B,eACxBtuZ,EAAcquZ,EAAUvxZ,MAAMvukB,OAClC,GAAI2l+B,GAAe,GAAKA,EAAcl0Z,EAAc,EAChD70kB,KAAKw/oB,YAAYulV,EAAY7B,EAAUvxZ,MAAMo3Z,EAAc,SAE1D,GAAIA,IAAgBl0Z,EAAc,IAAMkwZ,EAAY,CACrD/k+B,KAAKmoC,OAAO807B,WAAWj99B,KAAKmoC,OAAOyz7B,WAAW6B,oBAAoB,QAASp99B,GAC3E,IAAI2o+B,EAAchp+B,KAAKmoC,OAAOg77B,eAC9Bnj+B,KAAKw/oB,aAAY,EAAOwpV,EAAYr3Z,MAAM,GAC9C,CACJ,CAjEA,CAkEJ,EACA8uZ,EAAoB9v9B,UAAUmx9B,YAAc,SAAUzh+B,EAAG0k+B,GACrD,IAAIT,EAA6C,iBAA5Btk+B,KAAKmoC,OAAOw/W,YACjC,IAAI3nZ,KAAKuo+B,wBAAwBlo+B,EAAG0k+B,EAAYT,GAAhD,CAGA,IAEIU,EAFA389B,EAAUhI,EAAEgI,OACZomkB,EAAgBzukB,KAAKmoC,OAAOw77B,mBAE5Bl1Z,EAAcrrkB,OAAS,IAAMiF,EAAO6/Q,UAAUh1P,SAAS28Y,OACtDxna,EAAO6/Q,UAAUh1P,SAAS28Y,OAC3Bxna,EAASomkB,EAAcA,EAAcrrkB,OAAS,IAElD,IAAImk+B,EAAmBvn+B,KAAKmoC,OAAOu87B,UAAU+C,0BAC7C,KAAIF,EAAiBnk+B,OAAS,KAC1BiF,EAASrI,KAAK+m+B,kCAAkCQ,EAAiBA,EAAiBnk+B,OAAS,IAC3FpD,KAAKmoC,OAAOu87B,UAAUC,iCACjBt89B,GAIT,GAAKhI,EAAEgI,OAAQ6/Q,UAAUh1P,SAAS28Y,MAC9Bxna,EAAO6/Q,UAAUh1P,SAAS28Y,KAAuB,CACjD,IAAIvja,EAAMtM,KAAKqo+B,iBAAiBhg+B,GAC5Bog+B,EAAa,IAAIhn+B,MAAM4G,EAAOiqB,aAAa,cAC3C228B,EAA2C,SAA5Bjp+B,KAAKmoC,OAAOw/W,aAA0B8glB,EAAW/m+B,YAAc269B,IAAsBoM,GAAY/m+B,UACpH,GAAI4K,EAAI+nkB,YAAc,GAAK/nkB,EAAI+nkB,YAAc/nkB,EAAI41T,WAAa+mqB,EAC1DjE,EAAahl+B,KAAK2o+B,sBAAsBtg+B,EAAQiE,EAAI6I,QAAQi5jB,KAAK9hkB,EAAIqkkB,UAAUgB,MAAMtpkB,EAAO8tnB,UAAY,GAAI,QACxGmuW,GAAkBS,GAAcC,EAAW98sB,UAAUh1P,SAAS28Y,OAC9Dm1jB,EAAahl+B,KAAK4o+B,0BAA0Bt89B,EAAKjE,GAAQ,IAExD0jU,GAAkBi5pB,IACnBhl+B,KAAKw/oB,YAAYulV,EAAYC,QAGhC,GAAwB,IAApB149B,EAAI+nkB,aAAqB40Z,EAC9B,IAAKjp+B,KAAK8k+B,wBAA0Bx49B,EAAIqkkB,SAAW,EAAG,CAClDq0Z,EAAahl+B,KAAK2o+B,sBAAsBtg+B,EAAQiE,EAAI6I,QAAQi5jB,KAAK9hkB,EAAIqkkB,SAAW,GAAGgB,MAAMrlkB,EAAI41T,SAAW,GAAI,QAC5G,IAAI4qF,EAAiBw3kB,GAAkBS,GAAcC,EAAW98sB,UAAUh1P,SAAS28Y,KAE9E9jG,GADLi5pB,EAAal4kB,EAAiB9sZ,KAAK8o+B,2BAA2Bx89B,EAAKjE,GAAQ,GAAS289B,IAEhFhl+B,KAAKw/oB,YAAYulV,EAAYC,EAErC,MACK,IAAKD,EAAY,CAClB,GAAIkE,GAAgBR,EAAW/m+B,YAAc1B,KAAKmoC,OAAOyz7B,WAAWC,eAAen69B,UAE/E,YADA1B,KAAKw/oB,YAAYulV,EAAY/k+B,KAAKmoC,OAAOhzB,QAAQykB,cAAc,gBAAkB6u8B,EAAW/m+B,UAAY269B,KAAmB,OAG/Hr89B,KAAKmoC,OAAO807B,WAAWj99B,KAAKmoC,OAAOyz7B,WAAW6B,oBAAoB,YAAap99B,GAC/E,IAAIuxnB,EAAW5xnB,KAAKmoC,OAAO+8kB,kBACvBv0C,EAAW3wkB,KAAK8k+B,uBAAyBx49B,EAAIqkkB,SAAWihD,EAASxjD,KAAKhrkB,OAAS,EAC/EirkB,EAAOujD,EAASxjD,KAAK7hjB,SAASokjB,EAAS75jB,WAAY,KAAK66jB,MAAMrlkB,EAAI41T,SAAW,GACjF,GAAI+mqB,EAAc,CACd,IAAIth8B,EAAQ3nC,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiB,IAAMq/Z,IAA0B,UACjFw+J,EAAO1miB,EAAMpS,KAAKoS,EAAMvkC,OAAS,GAAGw2B,cAAc,SAAWi2Y,IAAuB,gBAAkB7va,KAAKmoC,OAAOyz7B,WAAWE,aAAap69B,UAAY,KAC1J,CACA1B,KAAKw/oB,aAAY,EAAOnxE,EAC5B,CAER,MACK,GAAIhmkB,EAAO6/Q,UAAUh1P,SAAS28Y,KAAyB,CACxD,IAAIk5jB,EAAc1g+B,EAAO8tnB,UACrB+sW,EAAYlj+B,KAAKmoC,OAAOg77B,eACxBtuZ,EAAcquZ,EAAUvxZ,MAAMvukB,OAClC,GAAI2l+B,EAAc,GAAKA,EAAcl0Z,EACjC70kB,KAAKw/oB,YAAYulV,EAAY7B,EAAUvxZ,MAAMo3Z,EAAc,SAE1D,GAAoB,IAAhBA,IAAsBhE,EAAY,CACvC/k+B,KAAKmoC,OAAO807B,WAAWj99B,KAAKmoC,OAAOyz7B,WAAW6B,oBAAoB,YAAap99B,GAC/E,IAAI6o+B,EAAclp+B,KAAKmoC,OAAOg77B,eAC9Bnj+B,KAAKw/oB,aAAY,EAAO0pV,EAAYv3Z,MAAMkD,EAAc,GAC5D,CACJ,CApEA,CAqEJ,EACA4rZ,EAAoB9v9B,UAAUi49B,0BAA4B,SAAUt89B,EAAKjE,EAAQ0nF,GAC7E,OAAO/vF,KAAK8k+B,uBAAyB9k+B,KAAKmp+B,yBAAyB9g+B,EAAQ0nF,GACvE/vF,KAAK8o+B,2BAA2Bx89B,EAAKjE,EAAQ0nF,EACrD,EACA0w4B,EAAoB9v9B,UAAUm49B,2BAA6B,SAAUx89B,EAAKjE,EAAQ0nF,GAC9E,IAAI88T,EAAMvgZ,EAAI6I,QAAQi5jB,KAAK/lkB,EAAOmsB,WAAW8z8B,iBAAmBv44B,EAAU,GAAK,IAC/E,GAAI88T,EAAK,CACL,IAAI79N,EAAQj/F,EAAU,IAAM8/U,IAAuB,SAAWA,IAAuB,IAC/E,iBAAoBxna,EAAOiqB,aAAa,aAAgB+p8B,KAAmB,KACjF,OAAOxvkB,EAAIjzX,cAAco1J,EAC7B,CACA,OAAO3mL,CACX,EACAo49B,EAAoB9v9B,UAAUw49B,yBAA2B,SAAU9g+B,EAAQ0nF,GACvE,IAAI7vF,EAAO,IAAIuB,MAAM4G,EAAOiqB,aAAa,cACrC4jB,EAAQ,IAAIz0C,KAAKvB,EAAKE,cAAeF,EAAKC,YAAc4vF,EAAU,GAAK,GAAI,GAC3E6hiB,EAAW5xnB,KAAKmoC,OAAO+8kB,kBACvB8/W,EAAapzW,EAASh4lB,cAAc,eAAiBsc,EAAMx0C,UAAY,MAC3E,OAAIsj+B,EAAWxw8B,WAAW8z8B,gBAAkBjg+B,EAAOmsB,WAAW8z8B,gBACnDtD,EAEJpzW,EAASh4lB,cAAc,eAAiB,IAAIn4B,KAAKy0C,EAAM91C,cAAe81C,EAAM/1C,WAAa,EAAG,GAAGuB,UAAY,KACtH,EACA++9B,EAAoB9v9B,UAAUg49B,sBAAwB,SAAU13Z,EAAa5okB,EAAQuE,GACjF,IAAIw89B,EAAYpp+B,KAAK6i+B,cAAcvw8B,aAAa,oBAChD,GAAItyB,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,GAAiC,UAA5BpD,KAAKmoC,OAAOw/W,aACpEspL,GAAe5okB,GAAUA,EAAOiqB,aAAa,sBAAwB828B,EAAW,CAChF,IAAI/33B,EAAcrxG,KAAKmoC,OAAO677B,mBAAmB/yZ,GAC7Co4Z,EAAyB,UAATz89B,EAAoB,IAAInL,KAAK4vG,EAAY3tG,QAAQ2tG,EAAY/uG,UAAY,IACvF,IAAIb,KAAK4vG,EAAY3tG,QAAQ2tG,EAAY/uG,UAAY,IAC3D+F,EAAS,GAAGuI,MAAMjR,KAAKK,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiB,iBACtD649B,EAAa3n+B,UAAUoV,WAD+B,wBACasy9B,EAAY,OAAO,EAChG,CAEJ,OAAO/g+B,CACX,EACAo49B,EAAoB9v9B,UAAU249B,qBAAuB,SAAUx89B,GAI3D,MAAO,GAAG8D,MAAMjR,KAAKmN,EAAU0D,iBAHb,6RAItB,EACAiw9B,EAAoB9v9B,UAAU449B,kBAAoB,SAAUlp+B,EAAG+kZ,GAC3D,IAAI9lZ,EAAQU,KACRk9gB,EAAoBl9gB,KAAKsp+B,qBAAqBlklB,GAU9CoklB,GATJtsd,EAAoBA,EAAkB92gB,QAAO,SAAU+O,GACnD,IAAIumgB,EAAYp8gB,EAAM6oC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KACzD,OAAI6rG,GAAaA,EAAUtoP,eACdj+Q,EAAQ+yQ,UAAUh1P,SAAS28Y,MAAmB16Z,EAAQ+yQ,UAAUh1P,SAAS28Y,QAGzE16Z,EAAQ+yQ,UAAUh1P,SAAS28Y,MAAyB16Z,EAAQ+yQ,UAAUh1P,SAAS28Y,KAEhG,KACiC,GAC7B8ud,EAAUzhX,EAAkBA,EAAkB95gB,OAAS,GACtD2oU,GAAkB4yjB,IAAYzt2B,SAAS0vH,gBAAkB+9uB,GAAYt+3B,EAAEw3B,WACxEx3B,EAAEgO,iBACFm79B,EAASp/9B,UAER2hU,GAAkBy9pB,IAAat48B,SAAS0vH,gBAAkB4o1B,GAAYnp+B,EAAEw3B,WACzEx3B,EAAEgO,iBACFsw3B,EAAQv03B,QAEhB,EACAq29B,EAAoB9v9B,UAAUwx9B,WAAa,SAAU9h+B,EAAGq+5B,GACpD,IAAIr25B,EAAShI,EAAEgI,OAKf,GAJIA,EAAO6/Q,UAAUh1P,SAAS28Y,MAA6B7va,KAAKmoC,OAAOq67B,eACnEn69B,EAASA,EAAOotF,QAAQ,kBACxBz1F,KAAKmoC,OAAOq67B,aAAauB,kBAAkB1j+B,EAAEgI,SAEjB,iBAA5BrI,KAAKmoC,OAAOw/W,aAAkCt/Y,EAAO6/Q,UAAUh1P,SAAS28Y,KACpExna,EAAO6/Q,UAAUh1P,SAAS28Y,MAC1B7va,KAAKmoC,OAAO467B,0BAFpB,CAMA,IAAI59kB,EAAe1vT,GAAQptF,EAAQ,IAAMwna,IAA0B,KAAOA,KAC1E,GAAI1qB,GAAgBA,EAAaj9H,UAAUh1P,SAAS28Y,KAKhD,OAJI1qB,EAAaj9H,UAAUh1P,SAAS28Y,MAChC7va,KAAKmoC,OAAOu87B,UAAUC,sCAE1B3k+B,KAAKup+B,kBAAkBlp+B,EAAG8kZ,GAG9B,GAAI98Y,EAAO6/Q,UAAUh1P,SAAS28Y,KAC1B7va,KAAKmoC,OAAOu87B,UAAUC,sCAG1B,GAAIt89B,EAAO6/Q,UAAUh1P,SAAS28Y,MAA6B7va,KAAKmoC,OAAOyz7B,WAAWgJ,kBAC3E5k+B,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,EAD9D,CAEI,IAAIqpB,EAAQF,SAASlkB,EAAOiqB,aAAa,oBAAqB,IAC1Dm38B,EAAc,IAAM55jB,IAAwB,uBAA0B6uf,EAAYjy4B,EAAQ,EAAIA,GAAS,KAE3G,IADIi98B,EAAc,GAAG949B,MAAMjR,KAAKK,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiBi59B,KACrDrm+B,OAAS,EAAG,CACxBpD,KAAKmoC,OAAOu87B,UAAUC,iCACtB,IAAIgF,EAAmBjrE,EAAYgrE,EAAY949B,OAAO,GAAG,GAAK849B,EAAY,GAC1E1p+B,KAAKmoC,OAAOu87B,UAAUyB,wBAAwB,CAACwD,IAAmB,GAClEA,EAAiBv/9B,QACjB/J,EAAEgO,gBACN,MACK,GAAIoe,EAAQ,IAAMzsB,KAAKmoC,OAAOyh8B,aAAaC,kBAAkBzm+B,OAC9DpD,KAAKmoC,OAAOhzB,QAAQ/K,QACpB/J,EAAEgO,sBAED,GAAIrO,KAAKmoC,OAAO2h8B,oBAAqB,CACtC,IAAIC,EAAU/p+B,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KAClDm6jB,EAAmBpm+B,KAAKmgB,MAAMgm9B,EAAQh1sB,aAAe/0R,KAAKmoC,OAAOyh8B,aAAaK,kBAAkB7m+B,QACpGpD,KAAKmoC,OAAOhzB,QAAQykB,cAAc,mBAAmBu0H,WAAcuwwB,EAAYjy4B,EAAQ,EAAIA,EAAQ,GAAKu98B,EACxGhq+B,KAAKmoC,OAAO2h8B,oBAAoBI,kBACpC,MAEIlq+B,KAAKogc,kBAAkB3za,EAG/B,MACA,GAAIpkB,EAAO6/Q,UAAUh1P,SAAS28Y,KAA9B,CACI,IAAI65jB,EAAc,GAAG949B,MAAMjR,KAAKK,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiB,IAAMq/Z,MACvEy0jB,EAA6C,iBAA5Btk+B,KAAKmoC,OAAOw/W,YAEjC,IADiB3nZ,KAAKmoC,OAAOyz7B,WAAWgJ,mBAAqBN,GAC1CA,GAAgE,aAA9Ctk+B,KAAKmoC,OAAOuz7B,kBAAkBhmb,cAA+B11iB,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,EAAG,CACpJqpB,EAAQF,SAASlkB,EAAOiqB,aAAa,oBAAqB,IAC9Do38B,EAAc,GAAG949B,MAAMjR,KAAKK,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiB,IAAMq/Z,IAAwB,sBAAyBpjZ,EAAQ,OAChI,IAAI098B,EAAkB,IAAMt6jB,IAA2B,uBAA0B6uf,EAAYjy4B,EAAQA,EAAQ,GAAK,KAC9G298B,EAAepq+B,KAAKmoC,OAAOhzB,QAAQykB,cAAcuw8B,GACrD,GAAIC,IAAiB1rE,GAAar25B,EAAOiqB,aAAa,eAAiBo38B,EAAY,GAAGp38B,aAAa,eAC9Fos4B,GAAar25B,EAAOiqB,aAAa,eAAiBo38B,EAAY949B,OAAO,GAAG,GAAG0hB,aAAa,cAazF,OAZAtyB,KAAKmoC,OAAOu87B,UAAUC,iCAClB3k+B,KAAKmoC,OAAO2h8B,oBACZM,EAAahg+B,MAAM,CAAEkjR,eAAe,IAGpC88sB,EAAahg+B,QAEbpK,KAAKmoC,OAAOyz7B,WAAWgJ,kBAAoB5k+B,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,GAClG2oU,GAAkB/rU,KAAKmoC,OAAO2h8B,sBAC9B9p+B,KAAKogc,kBAAkB3za,QAE3BpsB,EAAEgO,gBAGV,CACA,IAAIm69B,EAAuBxo+B,KAAKmoC,OAAOu87B,UAAU+C,0BAKjD,GAJIe,EAAqBpl+B,OAAS,IAC9BiF,EAASmg+B,EAAqBA,EAAqBpl+B,OAAS,IAEhEpD,KAAKmoC,OAAOu87B,UAAUC,kCACjBjmE,GAAar25B,EAAOiqB,aAAa,eAAiBo38B,EAAYA,EAAYtm+B,OAAS,GAAGkvB,aAAa,cACpGos4B,GAAar25B,EAAOiqB,aAAa,eAAiBo38B,EAAY,GAAGp38B,aAAa,aAC9E,OAE4B,WAA5BtyB,KAAKmoC,OAAOw/W,aAAwD,gBAA5B3nZ,KAAKmoC,OAAOw/W,cACpD3nZ,KAAK+l+B,kBAAkBrnE,EAAWr25B,GAClChI,EAAEgO,iBAGV,KAxCA,CAyCA,IAAIogkB,EAAgBzukB,KAAKmoC,OAAOw77B,mBAChC,GAAIl1Z,EAAcrrkB,OAAS,IAAMiF,EAAO6/Q,UAAUh1P,SAAS28Y,KAIvD,OAHAxna,EAASomkB,EAAcA,EAAcrrkB,OAAS,GAC9CpD,KAAKom+B,qCAAqC1nE,EAAWr25B,QACrDhI,EAAEgO,iBAGFhG,IAAWA,EAAO6/Q,UAAUh1P,SAAS28Y,MAA6B7va,KAAKmoC,OAAOyz7B,WAAWgJ,kBACtF5k+B,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,GAC1DpD,KAAKqq+B,0BAA0Bhi+B,EAAQq25B,EAV3C,CAhFA,CA4FJ,EACA+hE,EAAoB9v9B,UAAUyx9B,cAAgB,SAAU/h+B,GACpD,IAAIu+gB,EAAY1tf,SAAS0vH,cACzB,GAAgC,gBAA5B5gJ,KAAKmoC,OAAOw/W,YAA+B,CAC3C,IAAI2G,EAActuZ,KAAKmoC,OAAOu87B,UAAU4F,oBAAoBn19B,QAC5DypgB,EAActwH,GAAeviF,GAAkBuiF,EAAYlrZ,QAAWkrZ,EAAcA,EAAY,EACpG,CACA,GAAIswH,GAAaA,EAAU12P,UAAUh1P,SAAS28Y,KAAwB,CAGlE,GAFArnJ,GAAS,CAACo2P,GAAY/uG,KACtB7va,KAAKmoC,OAAOoi8B,gBAAkBvq+B,KAAKmoC,OAAOu87B,UAAU4F,oBAChDtq+B,KAAKmoC,OAAOuz7B,kBAAkBn9kB,UAAYqgI,EAAU12P,UAAUh1P,SAAS28Y,OACtE7va,KAAKmoC,OAAOi07B,cAAcvmU,cAC3B,OAEJ71pB,KAAKmoC,OAAO637B,WAAWwK,YAAYnq+B,EACvC,CACJ,EACAog+B,EAAoB9v9B,UAAU0x9B,iCAAmC,SAAUhi+B,GACvE,GAAIL,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,GAAK8tB,SAAS0vH,cAAcsnI,UAAUh1P,SAAS28Y,KAAwB,CAC9H,IAAIswZ,EAAa5zyB,SAAS2E,SAAS0vH,cAActuH,aAAa,oBAAqB,IAEnF7F,GADIA,EAAsB,uBAAbpsB,EAAE60E,QAAgD,qBAAb70E,EAAE60E,OAAiCirvB,EAAa,EAAIA,EAAa,GACnG,EAAI,EAAI1zyB,EAAQzsB,KAAKmoC,OAAOyh8B,aAAaC,kBAAkBzm+B,OACvEpD,KAAKmoC,OAAOyh8B,aAAaC,kBAAkBzm+B,OAASqpB,EAExD,IADA,IAAIg+8B,EAAW,GACY,IAApBA,EAASrn+B,QAAgBqpB,GAAS,GAAKA,GAASzsB,KAAKmoC,OAAOyh8B,aAAaC,kBAAkBzm+B,QAC9Fqn+B,EAAW,GAAG759B,MAAMjR,KAAKK,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiB,IAAMq/Z,IAAwB,sBAAyBpjZ,EAAQ,OAC7HA,EAAsB,uBAAbpsB,EAAE60E,QAAgD,qBAAb70E,EAAE60E,OAAiCzoD,EAAQ,EAAIA,EAAQ,EAEzG,IAAIy58B,EAAauE,EAAS,GACtBvE,IACAlm+B,KAAKmoC,OAAOu87B,UAAUC,iCACtB3k+B,KAAKmoC,OAAOu87B,UAAUyB,wBAAwB,CAACD,IAAa,GAC5DA,EAAW979B,QAEnB,MACK,GAAIpK,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,IAC3D8tB,SAAS0vH,cAAcsnI,UAAUh1P,SAAS28Y,KAAwB,CACnE,IAAIpjZ,EAAQzsB,KAAKmoC,OAAOyh8B,aAAac,kBAAkB,GAAGvqK,WACtDspK,EAAc,IAAM55jB,IAAwB,sBAAyBpjZ,EAAQ,KAC7Ei98B,EAAc,GAAG949B,MAAMjR,KAAKK,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiBi59B,IACrE,GAAIC,EAAYtm+B,OAAS,EAAG,CACxBpD,KAAKmoC,OAAOu87B,UAAUC,iCACtB,IAAIgF,EAAmBD,EAAY,GACnC1p+B,KAAKmoC,OAAOu87B,UAAUyB,wBAAwB,CAACwD,IAAmB,GAClEA,EAAiBv/9B,QACjB/J,EAAEgO,gBACN,CACJ,CACJ,EACAoy9B,EAAoB9v9B,UAAU2x9B,cAAgB,SAAUvr8B,GACpD/2B,KAAKmoC,OAAO637B,WAAW2K,aAAa5z8B,GACpC/2B,KAAKmoC,OAAO637B,WAAW4K,UAAUrtsB,OAC7Bv9R,KAAKmoC,OAAO06mB,cACZ7ipB,KAAKmoC,OAAO06mB,aAAa63U,kBAEzB169B,KAAKmoC,OAAOq67B,cACZxi+B,KAAKmoC,OAAOq67B,aAAa4C,gCAEjC,EACA3E,EAAoB9v9B,UAAU6y9B,gBAAkB,SAAUnj+B,GACtD,IAAIgI,EAASotF,GAAQp1F,EAAEgI,OAAQ,IAAMwna,KACrC,SAAI7va,KAAKmoC,OAAOyz7B,WAAWgJ,kBAAqB74pB,GAAkB1jU,GAItE,EACAo49B,EAAoB9v9B,UAAU059B,0BAA4B,SAAUhi+B,EAAQq25B,GACxE,IAAImsE,EAAc,GAAGj69B,MAAMjR,KAAKK,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiB,mBACjEs69B,EAAkBD,EAAYlg+B,QAAQtC,GACtC0i+B,EAAkBrsE,EAA+CmsE,EAAYC,EAAkB,GAAjED,EAAYC,EAAkB,GAChE,GAAIC,GAAkBA,EAAe7itB,UAAUh1P,SAAS28Y,KAA2B,CAC/E,IAAIswZ,EAAa5zyB,SAASw+8B,EAAez48B,aAAa,oBAAqB,IAC3E,GAAItyB,KAAKmoC,OAAO2h8B,oBAAqB,CACjC,IAAIkB,EAAehr+B,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KAC5C,GAAGj/Z,MAAMjR,KAAKK,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiB,IAAMq/Z,MAC/Dxpa,SAAQ,SAAU8O,GACnBA,EAAQs/Q,wBAAwBvmI,IAAM880B,EAAav2sB,wBAAwBvmI,KAC3E/4I,EAAQ6f,aAAa,WAAY,KAEzC,GACJ,MAEIh1B,KAAKogc,kBAAkB+/X,EAE/B,CACJ,EACAsgK,EAAoB9v9B,UAAUyvb,kBAAoB,SAAU3za,GACxD,IAAI078B,EAAWno+B,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,IAAuB,sBAAyBpjZ,EAAQ,MAC3G078B,IACAno+B,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KAAwB1hR,UAAYg60B,EAASvlrB,UAE7F,EAMA69qB,EAAoB9v9B,UAAUo8U,cAAgB,WAC1C,MAAO,UACX,EAOA0zoB,EAAoB9v9B,UAAUymI,QAAU,WACpCp3I,KAAKo7B,sBACLp7B,KAAKyukB,cAAgB,GACrBzukB,KAAKsnZ,eAAelwQ,SACxB,EACOqp1B,CACX,CAnnCyC,GCHrClxX,IAAsB,WAStB,SAASA,EAAKpnkB,EAAQ2qY,EAAY9jP,GAC9BhvL,KAAKmoC,OAASA,EACdnoC,KAAK2vmB,gBAAgB78L,EAAY9jP,EACrC,CAyEA,OAhEAugb,EAAK5+lB,UAAUg/lB,gBAAkB,SAAU78L,EAAY9jP,GACnDhvL,KAAKo0a,YAActB,aAAsBuQ,GAAcvQ,EAAa,IAAIuQ,GAAYvQ,GACpF9ya,KAAKgvL,MAAQA,aAAiBwkP,GAAQxkP,EAAQ,IAAIwkP,EACtD,EASA+7L,EAAK5+lB,UAAUqxlB,cAAgB,SAAUpyM,EAAWC,GAChD,IAAI7gO,EAAQhvL,KAAKgvL,MAAMztL,QACvB,GAAIvB,KAAKmoC,QAAUnoC,KAAKmoC,OAAOi07B,cAAc6O,uBAAyBr7kB,GAAaC,EAAS,CACxF,IAAIq7kB,EAAYlr+B,KAAKmr+B,iBAAiBv7kB,EAAWC,GAC7Cu7kB,EAAkB,IAAIj2jB,GAAUn1a,KAAKmoC,OAAOw+7B,YAAY0E,eAAgB,WAAY,MAAM10jB,IAAI,IAAIxB,GAAUn1a,KAAKmoC,OAAOw+7B,YAAY0E,eAAgB,WAAY,KACpK,OAAOr8yB,EAAMnmI,MAAMqi7B,EAAUr0jB,GAAGu0jB,GACpC,CAOA,OANIx7kB,GACA5gO,EAAM4lP,UAAU,YAAahlB,EAAUz2S,eAEvC02S,GACA7gO,EAAM4lP,UAAU,UAAW/kB,EAAQ12S,eAEhC61E,CACX,EASAugb,EAAK5+lB,UAAUw69B,iBAAmB,SAAUv7kB,EAAWC,GACnD,IAAIy7kB,EAAetr+B,KAAKmoC,OAAOw+7B,YAM/B,OALgB,IAAIxxjB,GAAUm2jB,EAAav0zB,UAAW,qBAAsB64O,GACvE+mB,IAAI,IAAIxB,GAAUm2jB,EAAa5+lB,QAAS,qBAAsBkjB,IAC9D+mB,IAAI,IAAIxB,GAAUm2jB,EAAav0zB,UAAW,WAAY84O,IACtDgnB,GAAG,IAAI1B,GAAUm2jB,EAAav0zB,UAAW,kBAAmB64O,GAC5D+mB,IAAI,IAAIxB,GAAUm2jB,EAAa5+lB,QAAS,cAAekjB,IAEhE,EAQA2/M,EAAK5+lB,UAAU4nE,QAAU,SAAUy2G,GAC/B,OAAOhvL,KAAKo0a,YAAYG,aAAavlP,EACzC,EAOAugb,EAAK5+lB,UAAUymI,QAAU,WACrBp3I,KAAKo0a,YAAc,KACnBp0a,KAAKgvL,MAAQ,IACjB,EACOugb,CACX,CAtF0B,GCJtBg8X,IAA2B,WAC3B,SAASA,IACT,CAgFA,OA/EAA,EAAU569B,UAAU298B,iBAAmB,SAAUpu9B,GAC7C,OAAO,IAAIuB,KAAKvB,EAAKE,cAAeF,EAAKC,WAC7C,EACAor+B,EAAU569B,UAAU498B,gBAAkB,SAAU7sC,GAC5C,OAAO,IAAIjg7B,KAAKig7B,EAAGth7B,cAAesh7B,EAAGvh7B,WAAa,EAAG,EACzD,EACAor+B,EAAU569B,UAAUs49B,aAAe,SAAU/o+B,GACzC,OAA2B,IAAnBA,EAAKoC,SACjB,EACAip+B,EAAU569B,UAAU669B,qBAAuB,WACvC,OAAO,GACX,EACAD,EAAU569B,UAAU869B,iBAAmB,SAAUvr+B,EAAMstU,GACnD,OAASttU,EAAKE,cAAgBotU,GAAY,IAAM,EAAK,IAAM,GAC/D,EACA+9pB,EAAU569B,UAAUrO,QAAU,SAAUpC,GACpC,OAAOA,EAAKoC,SAChB,EACAip+B,EAAU569B,UAAUxQ,SAAW,SAAUD,GACrC,OAAQA,EAAKC,WAAa,CAC9B,EACAor+B,EAAU569B,UAAUvQ,YAAc,SAAUF,GACxC,OAAOA,EAAKE,aAChB,EACAmr+B,EAAU569B,UAAU+69B,gBAAkB,SAAUxr+B,EAAMstU,GAClD,OAAO,IAAI/rU,KAAKvB,EAAKE,cAAgBotU,EAAU,EAAG,EACtD,EACA+9pB,EAAU569B,UAAUg79B,kBAAoB,SAAUzr+B,GAC9C,OAAOF,KAAKuu9B,gBAAgBru9B,GAAMoC,SACtC,EACAip+B,EAAU569B,UAAUi79B,kBAAoB,SAAU1r+B,GAC9C,OAAO,IAAIuB,KAAKvB,EAAKE,cAAeF,EAAKC,WAAY,EAAGD,EAAKijB,WAAYjjB,EAAKkjB,aAClF,EACAmo9B,EAAU569B,UAAUk79B,gBAAkB,SAAU3r+B,GAE5C,OADAA,EAAKwD,QAAQ,GACN,IAAIjC,KAAKvB,EAAKgC,SAAShC,EAAKC,WAAa,GACpD,EACAor+B,EAAU569B,UAAUm79B,gBAAkB,SAAU5r+B,EAAM+U,GAClD,OAAOA,CACX,EACAs29B,EAAU569B,UAAUjN,QAAU,SAAUw/U,EAAShjV,GAC7CgjV,EAAQx/U,QAAQxD,EACpB,EACAqr+B,EAAU569B,UAAUo79B,aAAe,SAAU7r+B,EAAMstU,EAAUoiF,EAAWo8kB,EAAYC,GAC3ElgqB,GAAkBkgqB,GAInB/r+B,EAAKgC,SAAShC,EAAKC,WAAaqtU,EAAUoiF,GAH1C1vZ,EAAKgC,UAAU+p+B,EAAYD,EAAa9r+B,EAAKC,YAAcqtU,EAKnE,EACA+9pB,EAAU569B,UAAUzO,SAAW,SAAUhC,EAAMstU,EAAUoiF,GACrD1vZ,EAAKwD,QAAQ,GACbxD,EAAK2kG,YAAY3kG,EAAKE,eACtBF,EAAKgC,SAASsrU,EAAW,GACzB,IAAI0+pB,EAAS,IAAIzq+B,KAAKvB,EAAKE,cAAeF,EAAKC,WAAa,EAAG,GAAGmC,UAClEpC,EAAKwD,QAAQE,KAAKgmD,IAAIgmW,EAAWs8kB,GACrC,EACAX,EAAU569B,UAAU83Y,SAAW,SAAUvoZ,EAAMstU,GAC3CttU,EAAK2kG,YAAY3kG,EAAKE,cAAgBotU,EAC1C,EACA+9pB,EAAU569B,UAAUpO,YAAc,SAAUk6X,EAAOC,GAC/C,OAAQD,EAAMt8X,aAAeu8X,EAAMv8X,UACvC,EACAor+B,EAAU569B,UAAUw79B,WAAa,SAAUjs+B,EAAMQ,GAC7C,OAAiD,IAAzCA,EAAOiK,QAAQzK,EAAKC,WAAa,EAC7C,EACAor+B,EAAU569B,UAAU69Y,aAAe,SAAU/xB,EAAOC,GAChD,OAAQD,EAAMt8X,WAAau8X,EAAMv8X,UACrC,EACAor+B,EAAU569B,UAAU608B,WAAa,SAAU/olB,EAAOC,GAC9C,OAAQD,EAAMr8X,gBAAkBs8X,EAAMt8X,aAC1C,EACAmr+B,EAAU569B,UAAUy79B,YAAc,SAAUls+B,GACxC,OAA4B,KAApBA,EAAKC,UACjB,EACAor+B,EAAU569B,UAAU2yF,WAAa,SAAU5kF,EAAM8uT,GAC7C,OAAS9uT,EAAO8uT,GAAY,IAAM,CACtC,EACO+9pB,CACX,CAnF+B,GAsF3Bc,IAAyB,WACzB,SAASA,IACT,CAsIA,OArIAA,EAAQ179B,UAAU298B,iBAAmB,SAAUpu9B,GAC3C,IAAIsxU,EAAQxxU,KAAKuwU,aAAarwU,GAE9B,OADY+tU,GAAYwD,YAAYD,EAAM9yT,KAAM8yT,EAAMvoU,MAAO,EAEjE,EACAoj+B,EAAQ179B,UAAU498B,gBAAkB,SAAUru9B,GAC1C,IAAIsxU,EAAQxxU,KAAKuwU,aAAarwU,GAC1B+O,EAAcjP,KAAKwO,eAAegjU,EAAMvoU,MAAOuoU,EAAM9yT,MACrD8xT,EAAQvC,GAAYwD,YAAYD,EAAM9yT,KAAM8yT,EAAMvoU,MAAOgG,GACzDq99B,EAAa,IAAI7q+B,KAAK+uU,EAAM9uU,WAChC4q+B,EAAa,IAAI7q+B,KAAK6q+B,EAAW5o+B,QAAQ4o+B,EAAWhq+B,UAAY,IAChE,IAAIiq+B,EAAavs+B,KAAKuwU,aAAa+7pB,GACnC,OAAI96pB,EAAMvoU,QAAUsj+B,EAAWtj+B,MACpBqj+B,GAEXC,EAAavs+B,KAAKuwU,aAAaC,GAC3BgB,EAAMvoU,QAAUsj+B,EAAWtj+B,MACpBunU,EAEJ,IAAI/uU,KAAK+uU,EAAM9sU,QAAQ8sU,EAAMluU,UAAY,IACpD,EACA+p+B,EAAQ179B,UAAUs49B,aAAe,SAAU/o+B,GAEvC,OAA2B,IADXF,KAAKuwU,aAAarwU,GAChBA,IACtB,EACAms+B,EAAQ179B,UAAU669B,qBAAuB,WACrC,OAAO,GACX,EACAa,EAAQ179B,UAAU869B,iBAAmB,SAAUvr+B,EAAMstU,GACjD,IAAIgE,EAAQxxU,KAAKuwU,aAAarwU,GAC9B,OAAOF,KAAKsjG,WAAWkuO,EAAM9yT,KAAM8uT,GAAY,IAAM,GACzD,EACA6+pB,EAAQ179B,UAAUrO,QAAU,SAAUpC,GAElC,OADgBF,KAAKuwU,aAAarwU,GACjBA,IACrB,EACAms+B,EAAQ179B,UAAUxQ,SAAW,SAAUD,GAEnC,OADYF,KAAKuwU,aAAarwU,GACjB+I,KACjB,EACAoj+B,EAAQ179B,UAAUvQ,YAAc,SAAUF,GAEtC,OADYF,KAAKuwU,aAAarwU,GACjBwe,IACjB,EACA2t9B,EAAQ179B,UAAU+69B,gBAAkB,SAAUxr+B,EAAMstU,GAChD,IAAIgE,EAAQxxU,KAAKuwU,aAAarwU,GAE9B,OADY+tU,GAAYwD,YAAYD,EAAM9yT,KAAO8uT,EAAU,EAAG,EAElE,EACA6+pB,EAAQ179B,UAAUg79B,kBAAoB,SAAUzr+B,GAC5C,IAAIs9X,EAAUx9X,KAAKuu9B,gBAAgBru9B,GAEnC,OADgBF,KAAKuwU,aAAaitD,GACjBt9X,IACrB,EACAms+B,EAAQ179B,UAAUi79B,kBAAoB,SAAU1r+B,GAC5C,IAAIw+9B,EAAY1+9B,KAAKsu9B,iBAAiBpu9B,GACtC,OAAO,IAAIuB,KAAKi99B,EAAUt+9B,cAAes+9B,EAAUv+9B,WAAYu+9B,EAAUp89B,UAAWpC,EAAKijB,WAAYjjB,EAAKkjB,aAC9G,EACAip9B,EAAQ179B,UAAUk79B,gBAAkB,SAAU3r+B,GAC1C,IAAIssZ,EAAWxsZ,KAAKuu9B,gBAAgBru9B,GAEpC,OADAssZ,EAAS9oZ,QAAQ8oZ,EAASlqZ,UAAY,GAC/B,IAAIb,KAAK+qZ,EAAStqZ,SAASsqZ,EAASrsZ,YAC/C,EACAks+B,EAAQ179B,UAAUm79B,gBAAkB,SAAU5r+B,EAAM+U,GAGhD,IAFA,IAAIu8T,EAAQxxU,KAAKuwU,aAAarwU,GAC1B+C,EAAM,GACDkJ,EAAI,EAAGA,EAAI8I,EAAK7R,OAAQ+I,IAAK,CAClC,IAAIqkU,EAAQvC,GAAYwD,YAAYD,EAAM9yT,KAAM8yT,EAAMvoU,MAAOgM,EAAKsX,SAASpgB,EAAE2K,WAAY,MACzF7T,EAAImJ,KAAKokU,EAAMluU,UACnB,CACA,OAAOW,CACX,EACAop+B,EAAQ179B,UAAUjN,QAAU,SAAUw/U,EAAShjV,GAC3C,IAAIsxU,EAAQxxU,KAAKuwU,aAAa2S,GAC1B1S,EAAQvC,GAAYwD,YAAYD,EAAM9yT,KAAM8yT,EAAMvoU,MAAO/I,GAC7DF,KAAKws+B,cAActppB,EAAS1S,EAChC,EACA67pB,EAAQ179B,UAAUo79B,aAAe,SAAU7r+B,EAAMstU,EAAUoiF,EAAWo8kB,EAAYC,GAC9E,IAAIvN,EAAc3ypB,GAAkBkgqB,GAAiD/r+B,EAAnCF,KAAKsu9B,iBAAiB2d,GACpEz6pB,EAAQxxU,KAAKuwU,aAAamupB,GAC1BlupB,EAAQvC,GAAYwD,YAAYD,EAAM9yT,KAAM8yT,EAAMvoU,MAAQukU,EAAUoiF,GACxE5vZ,KAAKws+B,cAActs+B,EAAMswU,EAC7B,EACA67pB,EAAQ179B,UAAUzO,SAAW,SAAUhC,EAAMstU,EAAUoiF,GACnD,IAAIp+E,EAAQxxU,KAAKuwU,aAAarwU,GAC1BswU,EAAQvC,GAAYwD,YAAYD,EAAM9yT,KAAM8uT,EAAUoiF,GAC1D5vZ,KAAKws+B,cAActs+B,EAAMswU,EAC7B,EACA67pB,EAAQ179B,UAAU83Y,SAAW,SAAUvoZ,EAAMstU,EAAUw+pB,GACnD,IAAIx6pB,EAAQxxU,KAAKuwU,aAAarwU,GAC1BswU,EAAQvC,GAAYwD,YAAYD,EAAM9yT,KAAO8uT,EAAUw+pB,EAAY,GACvEhs+B,KAAKws+B,cAActs+B,EAAMswU,EAC7B,EACA67pB,EAAQ179B,UAAUpO,YAAc,SAAUk6X,EAAOC,GAC7C,IAAI+vmB,EAAezs+B,KAAKuwU,aAAaksD,GACjCiwmB,EAAY1s+B,KAAKuwU,aAAamsD,GAClC,OAAQ+vmB,EAAaxj+B,QAAUyj+B,EAAUzj+B,KAC7C,EACAoj+B,EAAQ179B,UAAUw79B,WAAa,SAAUjs+B,EAAMQ,GAC3C,IAAI8wU,EAAQxxU,KAAKuwU,aAAarwU,GAC9B,OAAyC,IAAjCQ,EAAOiK,QAAQ6mU,EAAMvoU,MACjC,EACAoj+B,EAAQ179B,UAAU69Y,aAAe,SAAU/xB,EAAOC,GAC9C,IAAIlrD,EAAQxxU,KAAKuwU,aAAaksD,GAC1BkwmB,EAAS3s+B,KAAKuwU,aAAamsD,GAC/B,OAAQlrD,EAAMvoU,MAAQ0j+B,EAAO1j+B,KACjC,EACAoj+B,EAAQ179B,UAAU608B,WAAa,SAAU/olB,EAAOC,GAC5C,IAAIlrD,EAAQxxU,KAAKuwU,aAAaksD,GAC1BkwmB,EAAS3s+B,KAAKuwU,aAAamsD,GAC/B,OAAQlrD,EAAM9yT,OAASiu9B,EAAOju9B,IAClC,EACA2t9B,EAAQ179B,UAAUy79B,YAAc,SAAUls+B,GAEtC,OAAwB,KADZF,KAAKuwU,aAAarwU,GAChB+I,KAClB,EACAoj+B,EAAQ179B,UAAU679B,cAAgB,SAAUts+B,EAAMswU,GAC9CtwU,EAAK2kG,YAAY2rO,EAAMpwU,cAAeowU,EAAMrwU,WAAYqwU,EAAMluU,UAClE,EACA+p+B,EAAQ179B,UAAU2yF,WAAa,SAAU5kF,EAAM8uT,GAC3C,OAAQ,GAAK,IAAM9uT,EAAO8uT,IAAa,GAAK,EAChD,EACA6+pB,EAAQ179B,UAAUnC,eAAiB,SAAUvF,EAAOyV,GAChD,IAAItb,EAAS,EAKb,OAJAA,EAAS,IAAO6F,EAAQ,GAAK,EACf,KAAVA,GAAgBjJ,KAAKsjG,WAAW5kF,EAAM,IACtCtb,IAEGA,CACX,EACAip+B,EAAQ179B,UAAU4/T,aAAe,SAAUrwU,GACvC,OAAO+tU,GAAYsC,aAAarwU,EACpC,EACOms+B,CACX,CAzI6B,GCtFzBO,IAA0B,WAC1B,SAASA,IACL5s+B,KAAK6s+B,aAAe,GACpB7s+B,KAAK6s+B,aAAe7s+B,KAAK8s+B,iBAC7B,CAyCA,OAxCAF,EAASj89B,UAAU+M,OAAS,SAAUxd,EAAMo6K,GACxC,IAAIq0yB,EAAczu9B,EAAKshB,oBACvB,IACI,IAAIqtX,EAAgB,IAAIptY,KAAKvB,EAAK6qH,eAAe,QAAS,CAAEh3B,SAAUumF,KACtE,OAAKz4K,MAAMgtY,EAAcntY,WAGlB,GAFMxB,EAAKwB,UAAYmtY,EAAcntY,WAAa,IAASit9B,CAGtE,CACA,MAAO138B,IACH,OAAO,CACX,CACJ,EACA219B,EAASj89B,UAAU89D,QAAU,SAAUvuE,EAAM64H,EAAYg02B,GAC3B,kBAAfh02B,IACPA,EAAa/4H,KAAK0d,OAAOxd,EAAM64H,IAEX,kBAAbg02B,IACPA,EAAW/s+B,KAAK0d,OAAOxd,EAAM6s+B,IAEjC,IAAIC,EAAkB9s+B,EAAKshB,oBAEvByr9B,GADJ/s+B,EAAO,IAAIuB,KAAKvB,EAAKwB,UAAsC,KAAzBq3H,EAAag02B,KACtBvr9B,oBACzB,OAAO,IAAI/f,KAAKvB,EAAKwB,UAAgD,KAAnCur+B,EAAgBD,GACtD,EACAJ,EAASj89B,UAAUyiB,IAAM,SAAUlzB,EAAMo6K,GACrC,OAAOt6K,KAAKyuE,QAAQvuE,EAAMA,EAAKshB,oBAAqB84J,EACxD,EACAsyzB,EAASj89B,UAAUwiB,OAAS,SAAUjzB,EAAMo6K,GACxC,OAAOt6K,KAAKyuE,QAAQvuE,EAAMo6K,EAAUp6K,EAAKshB,oBAC7C,EACAor9B,EAASj89B,UAAUu89B,kBAAoB,SAAUht+B,GAC7C,OAAO,IAAIuB,KAAKvB,EAAKwB,UAAwC,IAA3BxB,EAAKshB,oBAC3C,EACAor9B,EAASj89B,UAAUws9B,qBAAuB,WACtC,OAAOns8B,OAAO4iE,MAAOA,KAAKC,iBAAiBC,kBAAkBC,UAAoB,KACrF,EACA644B,EAASj89B,UAAUm89B,gBAAkB,WACjC,OAAOD,GACX,EACOD,CACX,CA9C8B,GAgDnBC,IAAe,CACtB,CAAEl0M,MAAO,eAAgBh8vB,KAAM,oBAC/B,CAAEg8vB,MAAO,oBAAqBh8vB,KAAM,yBACpC,CAAEg8vB,MAAO,mBAAoBh8vB,KAAM,2BACnC,CAAEg8vB,MAAO,oBAAqBh8vB,KAAM,yBACpC,CAAEg8vB,MAAO,iBAAkBh8vB,KAAM,sBACjC,CAAEg8vB,MAAO,oBAAqBh8vB,KAAM,yBACpC,CAAEg8vB,MAAO,oBAAqBh8vB,KAAM,2BACpC,CAAEg8vB,MAAO,kBAAmBh8vB,KAAM,uBAClC,CAAEg8vB,MAAO,sBAAuBh8vB,KAAM,4BACtC,CAAEg8vB,MAAO,kBAAmBh8vB,KAAM,sCAClC,CAAEg8vB,MAAO,oBAAqBh8vB,KAAM,wCACpC,CAAEg8vB,MAAO,qBAAsBh8vB,KAAM,yCACrC,CAAEg8vB,MAAO,mBAAoBh8vB,KAAM,wBACnC,CAAEg8vB,MAAO,iBAAkBh8vB,KAAM,6BACjC,CAAEg8vB,MAAO,kBAAmBh8vB,KAAM,uCAClC,CAAEg8vB,MAAO,mBAAoBh8vB,KAAM,mDACnC,CAAEg8vB,MAAO,uBAAwBh8vB,KAAM,4CACvC,CAAEg8vB,MAAO,mBAAoBh8vB,KAAM,wCACnC,CAAEg8vB,MAAO,qBAAsBh8vB,KAAM,0CACrC,CAAEg8vB,MAAO,sBAAuBh8vB,KAAM,2CACtC,CAAEg8vB,MAAO,iBAAkBh8vB,KAAM,sBACjC,CAAEg8vB,MAAO,kBAAmBh8vB,KAAM,4BAClC,CAAEg8vB,MAAO,sBAAuBh8vB,KAAM,0CACtC,CAAEg8vB,MAAO,iBAAkBh8vB,KAAM,qCACjC,CAAEg8vB,MAAO,sBAAuBh8vB,KAAM,0CACtC,CAAEg8vB,MAAO,mBAAoBh8vB,KAAM,uCACnC,CAAEg8vB,MAAO,qBAAsBh8vB,KAAM,0BACrC,CAAEg8vB,MAAO,sBAAuBh8vB,KAAM,2BACtC,CAAEg8vB,MAAO,oBAAqBh8vB,KAAM,yBACpC,CAAEg8vB,MAAO,oBAAqBh8vB,KAAM,yBACpC,CAAEg8vB,MAAO,kBAAmBh8vB,KAAM,uBAClC,CAAEg8vB,MAAO,iBAAkBh8vB,KAAM,8BACjC,CAAEg8vB,MAAO,iBAAkBh8vB,KAAM,sBACjC,CAAEg8vB,MAAO,iBAAkBh8vB,KAAM,6BACjC,CAAEg8vB,MAAO,mBAAoBh8vB,KAAM,4BACnC,CAAEg8vB,MAAO,kBAAmBh8vB,KAAM,sCAClC,CAAEg8vB,MAAO,kBAAmBh8vB,KAAM,sCAClC,CAAEg8vB,MAAO,oBAAqBh8vB,KAAM,yBACpC,CAAEg8vB,MAAO,iBAAkBh8vB,KAAM,sBACjC,CAAEg8vB,MAAO,kBAAmBh8vB,KAAM,uBAClC,CAAEg8vB,MAAO,eAAgBh8vB,KAAM,oBAC/B,CAAEg8vB,MAAO,iBAAkBh8vB,KAAM,sBACjC,CAAEg8vB,MAAO,iBAAkBh8vB,KAAM,sBACjC,CAAEg8vB,MAAO,yBAA0Bh8vB,KAAM,8BACzC,CAAEg8vB,MAAO,qBAAsBh8vB,KAAM,0BACrC,CAAEg8vB,MAAO,kBAAmBh8vB,KAAM,uCAClC,CAAEg8vB,MAAO,mBAAoBh8vB,KAAM,wBACnC,CAAEg8vB,MAAO,mBAAoBh8vB,KAAM,uBACnC,CAAEg8vB,MAAO,oBAAqBh8vB,KAAM,yBACpC,CAAEg8vB,MAAO,kBAAmBh8vB,KAAM,uBAClC,CAAEg8vB,MAAO,kBAAmBh8vB,KAAM,uBAClC,CAAEg8vB,MAAO,qBAAsBh8vB,KAAM,0BACrC,CAAEg8vB,MAAO,iBAAkBh8vB,KAAM,sBACjC,CAAEg8vB,MAAO,iBAAkBh8vB,KAAM,sBACjC,CAAEg8vB,MAAO,iBAAkBh8vB,KAAM,sBACjC,CAAEg8vB,MAAO,qBAAsBh8vB,KAAM,0BACrC,CAAEg8vB,MAAO,wBAAyBh8vB,KAAM,6BACxC,CAAEg8vB,MAAO,sBAAuBh8vB,KAAM,2BACtC,CAAEg8vB,MAAO,sBAAuBh8vB,KAAM,2BACtC,CAAEg8vB,MAAO,wBAAyBh8vB,KAAM,6BACxC,CAAEg8vB,MAAO,gBAAiBh8vB,KAAM,qBAChC,CAAEg8vB,MAAO,mBAAoBh8vB,KAAM,6CACnC,CAAEg8vB,MAAO,oBAAqBh8vB,KAAM,yBACpC,CAAEg8vB,MAAO,mBAAoBh8vB,KAAM,wBACnC,CAAEg8vB,MAAO,gBAAiBh8vB,KAAM,qBAChC,CAAEg8vB,MAAO,iCAAkCh8vB,KAAM,4BACjD,CAAEg8vB,MAAO,uBAAwBh8vB,KAAM,4BACvC,CAAEg8vB,MAAO,kBAAmBh8vB,KAAM,uBAClC,CAAEg8vB,MAAO,iBAAkBh8vB,KAAM,sBACjC,CAAEg8vB,MAAO,oBAAqBh8vB,KAAM,yBACpC,CAAEg8vB,MAAO,kBAAmBh8vB,KAAM,uBAClC,CAAEg8vB,MAAO,iBAAkBh8vB,KAAM,sBACjC,CAAEg8vB,MAAO,mBAAoBh8vB,KAAM,wBACnC,CAAEg8vB,MAAO,qBAAsBh8vB,KAAM,0BACrC,CAAEg8vB,MAAO,oBAAqBh8vB,KAAM,sBACpC,CAAEg8vB,MAAO,qBAAsBh8vB,KAAM,0BACrC,CAAEg8vB,MAAO,uBAAwBh8vB,KAAM,4BACvC,CAAEg8vB,MAAO,iBAAkBh8vB,KAAM,sBACjC,CAAEg8vB,MAAO,qBAAsBh8vB,KAAM,uBACrC,CAAEg8vB,MAAO,gBAAiBh8vB,KAAM,wBAChC,CAAEg8vB,MAAO,mBAAoBh8vB,KAAM,wBACnC,CAAEg8vB,MAAO,mBAAoBh8vB,KAAM,uBACnC,CAAEg8vB,MAAO,kBAAmBh8vB,KAAM,uBAClC,CAAEg8vB,MAAO,oBAAqBh8vB,KAAM,yBACpC,CAAEg8vB,MAAO,yBAA0Bh8vB,KAAM,6BACzC,CAAEg8vB,MAAO,kBAAmBh8vB,KAAM,sBAClC,CAAEg8vB,MAAO,sBAAuBh8vB,KAAM,0BACtC,CAAEg8vB,MAAO,uBAAwBh8vB,KAAM,4BACvC,CAAEg8vB,MAAO,iBAAkBh8vB,KAAM,uBACjC,CAAEg8vB,MAAO,eAAgBh8vB,KAAM,qBAC/B,CAAEg8vB,MAAO,gBAAiBh8vB,KAAM,sBAChC,CAAEg8vB,MAAO,kBAAmBh8vB,KAAM,8BAClC,CAAEg8vB,MAAO,oBAAqBh8vB,KAAM,0BACpC,CAAEg8vB,MAAO,uBAAwBh8vB,KAAM,4BACvC,CAAEg8vB,MAAO,gBAAiBh8vB,KAAM,sBAChC,CAAEg8vB,MAAO,kBAAmBh8vB,KAAM,wBAClC,CAAEg8vB,MAAO,iBAAkBh8vB,KAAM,sBACjC,CAAEg8vB,MAAO,UAAWh8vB,KAAM,wCAC1B,CAAEg8vB,MAAO,gBAAiBh8vB,KAAM,sBAChC,CAAEg8vB,MAAO,gBAAiBh8vB,KAAM,sBAChC,CAAEg8vB,MAAO,kBAAmBh8vB,KAAM,wBAClC,CAAEg8vB,MAAO,qBAAsBh8vB,KAAM,yBACrC,CAAEg8vB,MAAO,MAAOh8vB,KAAM,OACtB,CAAEg8vB,MAAO,iBAAkBh8vB,KAAM,uBACjC,CAAEg8vB,MAAO,mBAAoBh8vB,KAAM,yBACnC,CAAEg8vB,MAAO,iBAAkBh8vB,KAAM,uBACjC,CAAEg8vB,MAAO,gBAAiBh8vB,KAAM,sBAChC,CAAEg8vB,MAAO,kBAAmBh8vB,KAAM,wBAClC,CAAEg8vB,MAAO,kBAAmBh8vB,KAAM,wBAClC,CAAEg8vB,MAAO,kBAAmBh8vB,KAAM,gDAClC,CAAEg8vB,MAAO,gBAAiBh8vB,KAAM,8CAChC,CAAEg8vB,MAAO,eAAgBh8vB,KAAM,qBAC/B,CAAEg8vB,MAAO,oBAAqBh8vB,KAAM,0BACpC,CAAEg8vB,MAAO,mBAAoBh8vB,KAAM,yBACnC,CAAEg8vB,MAAO,eAAgBh8vB,KAAM,qBAC/B,CAAEg8vB,MAAO,oBAAqBh8vB,KAAM,0BACpC,CAAEg8vB,MAAO,gBAAiBh8vB,KAAM,sBAChC,CAAEg8vB,MAAO,eAAgBh8vB,KAAM,qBAC/B,CAAEg8vB,MAAO,gBAAiBh8vB,KAAM,sBAChC,CAAEg8vB,MAAO,kBAAmBh8vB,KAAM,wBAClC,CAAEg8vB,MAAO,cAAeh8vB,KAAM,oBAC9B,CAAEg8vB,MAAO,eAAgBh8vB,KAAM,qBAC/B,CAAEg8vB,MAAO,cAAeh8vB,KAAM,oBAC9B,CAAEg8vB,MAAO,mBAAoBh8vB,KAAM,yBACnC,CAAEg8vB,MAAO,gBAAiBh8vB,KAAM,sBAChC,CAAEg8vB,MAAO,eAAgBh8vB,KAAM,qBAC/B,CAAEg8vB,MAAO,gBAAiBh8vB,KAAM,sBAChC,CAAEg8vB,MAAO,gBAAiBh8vB,KAAM,sBAChC,CAAEg8vB,MAAO,gBAAiBh8vB,KAAM,sBAChC,CAAEg8vB,MAAO,aAAch8vB,KAAM,qBAC7B,CAAEg8vB,MAAO,gBAAiBh8vB,KAAM,sBAChC,CAAEg8vB,MAAO,cAAeh8vB,KAAM,sBAC9B,CAAEg8vB,MAAO,mBAAoBh8vB,KAAM,yBACnC,CAAEg8vB,MAAO,eAAgBh8vB,KAAM,qBAC/B,CAAEg8vB,MAAO,kBAAmBh8vB,KAAM,wBAClC,CAAEg8vB,MAAO,gBAAiBh8vB,KAAM,wBAChC,CAAEg8vB,MAAO,YAAah8vB,KAAM,oBAC5B,CAAEg8vB,MAAO,kBAAmBh8vB,KAAM,wBAClC,CAAEg8vB,MAAO,iBAAkBh8vB,KAAM,yBACjC,CAAEg8vB,MAAO,sBAAuBh8vB,KAAM,4BACtC,CAAEg8vB,MAAO,kBAAmBh8vB,KAAM,wBAClC,CAAEg8vB,MAAO,cAAeh8vB,KAAM,oBAC9B,CAAEg8vB,MAAO,gBAAiBh8vB,KAAM,sBAChC,CAAEg8vB,MAAO,qBAAsBh8vB,KAAM,uCACrC,CAAEg8vB,MAAO,eAAgBh8vB,KAAM,uBAC/B,CAAEg8vB,MAAO,cAAeh8vB,KAAM,oBAC9B,CAAEg8vB,MAAO,eAAgBh8vB,KAAM,qBAC/B,CAAEg8vB,MAAO,iBAAkBh8vB,KAAM,uBACjC,CAAEg8vB,MAAO,iBAAkBh8vB,KAAM,uBACjC,CAAEg8vB,MAAO,iBAAkBh8vB,KAAM,uBACjC,CAAEg8vB,MAAO,kBAAmBh8vB,KAAM,wBAClC,CAAEg8vB,MAAO,eAAgBh8vB,KAAM,uBAC/B,CAAEg8vB,MAAO,kBAAmBh8vB,KAAM,wBAClC,CAAEg8vB,MAAO,eAAgBh8vB,KAAM,qBAC/B,CAAEg8vB,MAAO,gBAAiBh8vB,KAAM,kCAChC,CAAEg8vB,MAAO,iBAAkBh8vB,KAAM,uBACjC,CAAEg8vB,MAAO,aAAch8vB,KAAM,qBAC7B,CAAEg8vB,MAAO,cAAeh8vB,KAAM,sBAC9B,CAAEg8vB,MAAO,mBAAoBh8vB,KAAM,qBACnC,CAAEg8vB,MAAO,cAAeh8vB,KAAM,sBAC9B,CAAEg8vB,MAAO,YAAah8vB,KAAM,oBAC5B,CAAEg8vB,MAAO,aAAch8vB,KAAM,qBAC7B,CAAEg8vB,MAAO,cAAeh8vB,KAAM,oBAC9B,CAAEg8vB,MAAO,mBAAoBh8vB,KAAM,yBACnC,CAAEg8vB,MAAO,gBAAiBh8vB,KAAM,kCAChC,CAAEg8vB,MAAO,iBAAkBh8vB,KAAM,uBACjC,CAAEg8vB,MAAO,eAAgBh8vB,KAAM,uBAC/B,CAAEg8vB,MAAO,eAAgBh8vB,KAAM,uBAC/B,CAAEg8vB,MAAO,aAAch8vB,KAAM,qBAC7B,CAAEg8vB,MAAO,aAAch8vB,KAAM,qBAC7B,CAAEg8vB,MAAO,cAAeh8vB,KAAM,sBAC9B,CAAEg8vB,MAAO,gBAAiBh8vB,KAAM,wBAChC,CAAEg8vB,MAAO,gBAAiBh8vB,KAAM,wBAChC,CAAEg8vB,MAAO,eAAgBh8vB,KAAM,uBAC/B,CAAEg8vB,MAAO,mBAAoBh8vB,KAAM,yBACnC,CAAEg8vB,MAAO,kBAAmBh8vB,KAAM,wBAClC,CAAEg8vB,MAAO,oBAAqBh8vB,KAAM,sBACpC,CAAEg8vB,MAAO,qBAAsBh8vB,KAAM,yCACrC,CAAEg8vB,MAAO,gBAAiBh8vB,KAAM,wBAChC,CAAEg8vB,MAAO,eAAgBh8vB,KAAM,uBAC/B,CAAEg8vB,MAAO,eAAgBh8vB,KAAM,mCAC/B,CAAEg8vB,MAAO,gBAAiBh8vB,KAAM,wBAChC,CAAEg8vB,MAAO,cAAeh8vB,KAAM,sBAC9B,CAAEg8vB,MAAO,eAAgBh8vB,KAAM,uBAC/B,CAAEg8vB,MAAO,gBAAiBh8vB,KAAM,sBAChC,CAAEg8vB,MAAO,aAAch8vB,KAAM,qBAC7B,CAAEg8vB,MAAO,YAAah8vB,KAAM,gCAC5B,CAAEg8vB,MAAO,eAAgBh8vB,KAAM,uBAC/B,CAAEg8vB,MAAO,oBAAqBh8vB,KAAM,sBACpC,CAAEg8vB,MAAO,eAAgBh8vB,KAAM,qBAC/B,CAAEg8vB,MAAO,cAAeh8vB,KAAM,uBAC9B,CAAEg8vB,MAAO,eAAgBh8vB,KAAM,uBAC/B,CAAEg8vB,MAAO,mBAAoBh8vB,KAAM,yBACnC,CAAEg8vB,MAAO,mBAAoBh8vB,KAAM,qBACnC,CAAEg8vB,MAAO,cAAeh8vB,KAAM,qBAC9B,CAAEg8vB,MAAO,YAAah8vB,KAAM,oBAC5B,CAAEg8vB,MAAO,eAAgBh8vB,KAAM,uBAC/B,CAAEg8vB,MAAO,mBAAoBh8vB,KAAM,uCACnC,CAAEg8vB,MAAO,cAAeh8vB,KAAM,sBAC9B,CAAEg8vB,MAAO,gBAAiBh8vB,KAAM,oCAChC,CAAEg8vB,MAAO,kBAAmBh8vB,KAAM,0BAClC,CAAEg8vB,MAAO,iBAAkBh8vB,KAAM,yBACjC,CAAEg8vB,MAAO,oBAAqBh8vB,KAAM,4BACpC,CAAEg8vB,MAAO,aAAch8vB,KAAM,qBAC7B,CAAEg8vB,MAAO,gBAAiBh8vB,KAAM,wBAChC,CAAEg8vB,MAAO,cAAeh8vB,KAAM,sBAC9B,CAAEg8vB,MAAO,eAAgBh8vB,KAAM,mCAC/B,CAAEg8vB,MAAO,iBAAkBh8vB,KAAM,yBACjC,CAAEg8vB,MAAO,cAAeh8vB,KAAM,sBAC9B,CAAEg8vB,MAAO,mBAAoBh8vB,KAAM,2BACnC,CAAEg8vB,MAAO,kBAAmBh8vB,KAAM,oCAClC,CAAEg8vB,MAAO,iBAAkBh8vB,KAAM,yBACjC,CAAEg8vB,MAAO,YAAah8vB,KAAM,oBAC5B,CAAEg8vB,MAAO,gBAAiBh8vB,KAAM,wBAChC,CAAEg8vB,MAAO,eAAgBh8vB,KAAM,mCAC/B,CAAEg8vB,MAAO,gBAAiBh8vB,KAAM,qBAChC,CAAEg8vB,MAAO,aAAch8vB,KAAM,qBAC7B,CAAEg8vB,MAAO,aAAch8vB,KAAM,qBAC7B,CAAEg8vB,MAAO,mBAAoBh8vB,KAAM,qCACnC,CAAEg8vB,MAAO,4BAA6Bh8vB,KAAM,gCAC5C,CAAEg8vB,MAAO,qBAAsBh8vB,KAAM,uCACrC,CAAEg8vB,MAAO,eAAgBh8vB,KAAM,oBAC/B,CAAEg8vB,MAAO,mBAAoBh8vB,KAAM,uCACnC,CAAEg8vB,MAAO,uBAAwBh8vB,KAAM,4BACvC,CAAEg8vB,MAAO,kBAAmBh8vB,KAAM,oBAClC,CAAEg8vB,MAAO,qBAAsBh8vB,KAAM,uCACrC,CAAEg8vB,MAAO,mBAAoBh8vB,KAAM,qBACnC,CAAEg8vB,MAAO,mBAAoBh8vB,KAAM,qCACnC,CAAEg8vB,MAAO,mBAAoBh8vB,KAAM,gDACnC,CAAEg8vB,MAAO,gBAAiBh8vB,KAAM,qBAChC,CAAEg8vB,MAAO,sBAAuBh8vB,KAAM,2BACtC,CAAEg8vB,MAAO,iBAAkBh8vB,KAAM,sBACjC,CAAEg8vB,MAAO,eAAgBh8vB,KAAM,mCAC/B,CAAEg8vB,MAAO,oBAAqBh8vB,KAAM,uBACpC,CAAEg8vB,MAAO,iBAAkBh8vB,KAAM,sBACjC,CAAEg8vB,MAAO,kBAAmBh8vB,KAAM,sBAClC,CAAEg8vB,MAAO,mBAAoBh8vB,KAAM,wBACnC,CAAEg8vB,MAAO,oBAAqBh8vB,KAAM,yBACpC,CAAEg8vB,MAAO,iBAAkBh8vB,KAAM,sBACjC,CAAEg8vB,MAAO,iBAAkBh8vB,KAAM,uDACjC,CAAEg8vB,MAAO,kBAAmBh8vB,KAAM,qBAClC,CAAEg8vB,MAAO,iBAAkBh8vB,KAAM,sBACjC,CAAEg8vB,MAAO,eAAgBh8vB,KAAM,oBAC/B,CAAEg8vB,MAAO,iBAAkBh8vB,KAAM,sBACjC,CAAEg8vB,MAAO,mBAAoBh8vB,KAAM,wBACnC,CAAEg8vB,MAAO,oBAAqBh8vB,KAAM,yBACpC,CAAEg8vB,MAAO,kBAAmBh8vB,KAAM,uBAClC,CAAEg8vB,MAAO,eAAgBh8vB,KAAM,oBAC/B,CAAEg8vB,MAAO,oBAAqBh8vB,KAAM,yBACpC,CAAEg8vB,MAAO,eAAgBh8vB,KAAM,oBAC/B,CAAEg8vB,MAAO,qBAAsBh8vB,KAAM,2BC3NzC,SAASww8B,IAAgBC,EAAYjnlB,EAASklH,GAC1C,IAAIgie,EAAU,GACd,GAAID,EAAWE,SAASlq+B,OACpBiq+B,GAAWD,EAAWE,SAAS,QAE9B,GAAIF,EAAWnq+B,IAAK,CACrB,IAAIi0C,EAAMk27B,EAAWt0lB,YAAc,EACnCu0lB,GAAWhie,EAAUtlK,YAAYwnoB,IAAQr27B,GAAO,EAAIA,EAAOq27B,IAAQnq+B,OAAS,IACtE,IAAM0s9B,IAAoBj18B,GAAS2y9B,IAAeJ,EAAWnq+B,IAAI,IAAKkjZ,GAAU,SAC1F,CACA,OAAOknlB,CACX,CAeO,SAAS7v2B,IAASoyR,EAAW11R,EAAMuz2B,EAAaC,EAAgBC,EAAcC,EAAUtqlB,EAAcuqlB,EAAa/+lB,QACjG,IAAjB6+lB,IAA2BA,EAAeG,UAC7B,IAAbF,IAAuBA,EAAW,WACjB,IAAjBtqlB,IAA2BA,EAAe,kBAC1B,IAAhBuqlB,IAA0BA,EAAc,WACxB,IAAhB/+lB,IAA0BA,EAAc,MAC5C,IACIi/lB,EADAX,EAAaY,IAAsB9z2B,GAEvC+z2B,IAAeC,IAAgB5qlB,GAC/B,IAAIp5W,EAAO,GACP+1sB,EAAe,IAAIx+uB,KAAKmuZ,EAAUluZ,WACtCys+B,IAAkB,GAClB,IAAIp8kB,EAAWhmF,GAAkB0hqB,GAAe,GAAKA,EAAY968B,MAAM,KACnE69D,EAAK,IAAIo84B,IAoBb,GAnBA76kB,EAAS1rZ,SAAQ,SAAU0O,GACvB,IAAIq59B,EAAaC,IAAgCt59B,GAC7C849B,GAAe/+lB,IACfs/lB,EAAa594B,EAAG/hB,QAAQ,IAAIhtE,KAAK2s+B,EAAW1s+B,WAAYms+B,EAAa/+lB,IAEzEq/lB,IAAgB/h+B,KAAK,IAAI3K,KAAK2s+B,EAAW1s+B,WAAWe,SAAS,EAAG,EAAG,EAAG,GAC1E,IACA2q+B,EAAWkB,kBAAqBviqB,GAAkBqhqB,EAAWxi9B,OAAkC,EAAzBuj9B,IAAgB/q+B,OAElFmr+B,IADAX,GAAYA,EAAWh+kB,IAAcw9kB,EAAWxi9B,MACjC,IAAInpB,KAAK,IAAIA,KAAKms+B,EAASls+B,WAAWe,SAAS,EAAG,EAAG,IAGrD,MAEd2q+B,EAAWly3B,OAASqz3B,OACrBR,EAAY,IAAIts+B,KAAK8s+B,IAAa7s+B,YACxBgC,QAAQ6q+B,IAAajs+B,UAAYqr+B,EAAgBP,EAAW5/pB,UACtE4/pB,EAAWly3B,MAAQ6y3B,GAEnBX,EAAWly3B,OAAS00S,EAAYw9kB,EAAWly3B,MAC3C,OAAOhxE,EAIX,GAFAsk8B,IAAgBb,EA81CpB,SAA2B1q+B,GACvB,KAAOwr+B,IAAS,KAAOxr+B,GACnBqta,IAAOm+jB,IAEf,CAj2CIC,CAAkBC,IAASpi9B,SAASmh9B,EAAe529B,WAAY,MAC3Ds29B,EAAWly3B,MAAO,CAClB,IAAI9hE,EAAMq16B,IAAU2e,EAAWly3B,OAC/Bky3B,EAAWly3B,MAAQ,IAAIz5G,KAAK23C,EAAIh5C,cAAeg5C,EAAIj5C,WAAYi5C,EAAI92C,UAAW,GAAI,GAAI,GAC1F,CACA,OAAQ8q+B,EAAWv3P,MACf,IAAK,SA+Eb,SAAmBjmV,EAAWC,EAAS3lX,EAAMkj8B,GACzC,IAAIr7kB,EAAW,IAAItwZ,KAAKmuZ,EAAUluZ,WAC9B8rU,EAAW4/pB,EAAW5/pB,SACtBohqB,EAAgBC,IAAaj/kB,EAAWw9kB,GAExC0B,EAAe1B,EAAWnq+B,IAC9B,KAAO8r+B,IAAah9kB,EAAUlC,MAElB44d,IAAc12d,EAAUq7kB,KAClB0B,EAAank+B,QAAQgk+B,IAAS58kB,EAASpuZ,YAAc,GAA6B,IAAxBmr+B,EAAa1r+B,UACjF4r+B,IAAmB9k8B,EAAM6nX,EAASrwZ,WAC9Bkt+B,GAAkB1k8B,EAAK9mC,OAASgq+B,EAAWkB,mBAAsBM,KAIzE78kB,EAASruZ,QAAQquZ,EAASzvZ,UAAYkrU,GAClCukF,EAAS5uY,aAAeysY,EAAUzsY,YAClC4uY,EAAStvZ,SAASmtZ,EAAUzsY,WAGxC,CAlGY8r9B,CAAUhvP,EAAcmtP,EAAWly3B,MAAOhxE,EAAMkj8B,GAChD,MACJ,IAAK,UA2Gb,SAAoBx9kB,EAAWC,EAAS3lX,EAAMkj8B,GAC1C,IAAIr7kB,EAAW,IAAItwZ,KAAKmuZ,EAAUluZ,WAC7B0r+B,EAAWnq+B,IAAIG,QAChBgq+B,EAAWnq+B,IAAImJ,KAAKui+B,IAAS/+kB,EAAUjsZ,WAE3C,IAIIur+B,EAJA1hqB,EAAW4/pB,EAAW5/pB,SACtBshqB,EAAe1B,EAAWnq+B,IAC1B2r+B,EAAgBC,IAAaj/kB,EAAWw9kB,GACxC+B,GAAY,EAEZC,EAAiB,GACrB,GAAIN,EAAa1r+B,OAAS,EAKtB,KAJI2oU,GAAkBqhqB,EAAWiC,OAA6B,KAApBjC,EAAWiC,QACjDjC,EAAWiC,KAAOZ,IAAS,IAE/BS,EAAYP,IAAShk+B,QAAQyi+B,EAAWiC,MACjCN,IAAah9kB,EAAUlC,IAAU,CACpC,IAAIy/kB,EAAgBX,IAAShk+B,QAAQgk+B,IAAS58kB,EAASpuZ,WAAaur+B,EAEhEK,EAAgB3gB,IAAQ78jB,IAD5Bu9kB,GAAmC,IAAnBA,EAAuB,EAAIA,IAEvCE,EAAc5gB,IAAQ2gB,EAAe,GACrCE,EAAkB,IAAIhu+B,KAAKswZ,EAASrwZ,WAGxC,IAFA8t+B,EAAc/gB,IAAU+gB,GACxBC,EAAkBhhB,IAAUghB,GACrBD,GAAeC,IACdX,EAAank+B,QAAQgk+B,IAAS58kB,EAASpuZ,YAAc,GACrDyr+B,EAAehj+B,KAAK,CAAC2lZ,EAASrwZ,cAE9Bkt+B,GAAkB1k8B,EAAK9mC,OAASgq+B,EAAWkB,mBAAsBM,KAGrE78kB,EAASruZ,QAAQquZ,EAASzvZ,UAAY,GAClCyvZ,EAAS5uY,aAAeysY,EAAUzsY,YAClC4uY,EAAStvZ,SAASmtZ,EAAUzsY,YAGhCss9B,EAAkBhhB,IADlBghB,EAAkB,IAAIhu+B,KAAKswZ,EAASrwZ,YAIxC,GADAqwZ,EAASruZ,QAAQquZ,EAASzvZ,UAAY,GAClCss+B,GAAkB1k8B,EAAK9mC,OAASgq+B,EAAWkB,mBAAsBM,EACjE,MAEJ78kB,EAASruZ,QAASquZ,EAASzvZ,UAAa,EAAsB,GAAhBkrU,EAAW,IACzDkiqB,IAAqBN,EAAgBD,EAAWv/kB,EAAWC,EAAS3lX,EAAMkj8B,GAC1EgC,EAAiB,EACrB,KAEC,CAED,IADAr9kB,EAAW49kB,IAAoB//kB,EAAWw9kB,EAAWnq+B,KAC9C8r+B,IAAah9kB,EAAUlC,MAC1Bs/kB,EAAY1mH,IAAc12d,EAAUq7kB,KAClB0B,EAAank+B,QAAQgk+B,IAAS58kB,EAASpuZ,YAAc,GACnEqr+B,IAAmB9k8B,EAAM6nX,EAASrwZ,aAElCkt+B,GAAkB1k8B,EAAK9mC,OAASgq+B,EAAWkB,mBAAsBM,KAGrE78kB,EAASruZ,QAAQquZ,EAASzvZ,UAAwB,EAAXkrU,GAE3CkiqB,IAAqBN,EAAgBD,EAAWv/kB,EAAWC,EAAS3lX,EAAMkj8B,GAC1EgC,EAAiB,EACrB,CACJ,CAxKYQ,CAAW3vP,EAAcmtP,EAAWly3B,MAAOhxE,EAAMkj8B,GACjD,MACJ,IAAK,UACDyC,IAAY5vP,EAAcmtP,EAAWly3B,MAAOhxE,EAAMkj8B,GAClD,MACJ,IAAK,UA4Nb,SAAoBx9kB,EAAWC,EAAS3lX,EAAMkj8B,GAE1C,OAyHJ,SAAyBA,GACrB,GAAIA,EAAW0C,QAAQ1s+B,OACnB,MAAO,UAEN,GAAIgq+B,EAAW2C,OAAO3s+B,OACvB,MAAO,SAEX,MAAO,OACX,CAlIoB4s+B,CAAgB5C,IAE5B,IAAK,QACDyC,IAAYjglB,EAAWC,EAAS3lX,EAAMkj8B,GACtC,MACJ,IAAK,UAkBb,SAAuBx9kB,EAAWC,EAAS3lX,EAAMkj8B,GAC7C,IACIr7kB,EAEA3qZ,EAEA6o+B,EAEAF,EACAvymB,EACAD,EATA2ymB,EAASjC,IAAavC,gBAAgB97kB,EAAW,GAEjDg/kB,EAAgBC,IAAaj/kB,EAAWw9kB,GAIxC+C,EAAU/C,EAAW2C,OAIrBX,EAAiB,GACjBN,EAAe1B,EAAWnq+B,IAC9B,KAAO8r+B,IAAamB,EAAQrglB,IAAU,CAElCoglB,EAAiB,EADNxB,IAAS9j+B,QAAQgk+B,IAASuB,EAAOvs+B,WACX,EACjC,IAAK,IAAI8oB,EAAQ,EAAGA,EAAQ0j9B,EAAQ/s+B,OAAQqpB,IAKxC,IAFA+wW,EAAsB,KADtBuymB,GADAA,EAASI,EAAQ5j9B,SAASE,EAAM3V,WAAY,MACzB,EAAKi59B,EAAS,GAAKA,EAAS,GACpBE,EAAgBA,EAAgC,GAAdF,EAAS,GACtExymB,EAAsB,IAAXwymB,EAAgBE,EAAgB,EAAIA,EAAgC,GAAdF,EAAS,GACnExymB,EAAUC,GACbu0B,EAAW,IAAItwZ,KAAKyu+B,EAAOxu+B,UAAags9B,IAAanwlB,IACzB,IAAxBuxmB,EAAa1r+B,QAAgB0r+B,EAAank+B,QAAQgk+B,IAAS58kB,EAASpuZ,YAAc,KAC9EooU,GAAkBqhqB,EAAWt0lB,aAC7Bs3lB,IAAqBhp+B,EAAOwoZ,EAAWC,EAAS3lX,EAAMkj8B,EAAYr7kB,EAASrwZ,WAG3E0t+B,EAAehj+B,KAAK,CAAC2lZ,EAASrwZ,aAGtC67X,IAMR,GAHKxxD,GAAkBqhqB,EAAWt0lB,cAC9Bu3lB,IAAkCjB,EAAgBho+B,EAAOwoZ,EAAWC,EAAS3lX,EAAMkj8B,GAEnFwB,GAAkB1k8B,EAAK9mC,OAASgq+B,EAAWkB,mBAAsBM,EACjE,OAEJsB,EAASjC,IAAavC,gBAAgB35kB,EAAUq7kB,EAAW5/pB,UAC3D4hqB,EAAiB,EACrB,CACJ,CA5DYkB,CAAc1glB,EAAWC,EAAS3lX,EAAMkj8B,GACxC,MACJ,IAAK,WAqEb,SAAwBx9kB,EAAWC,EAAS3lX,EAAMkj8B,GAC9C,IACIr7kB,EAEA3qZ,EAEAlH,EALAgw+B,EAASjC,IAAavC,gBAAgB97kB,EAAW,GAEjDg/kB,EAAgBC,IAAaj/kB,EAAWw9kB,GAExCmD,EAAiB,GAEjBzB,EAAe1B,EAAWnq+B,IAC9B,KAAO8r+B,IAAamB,EAAQrglB,IAAU,CAClC,IAAK,IAAIpjY,EAAQ,EAAGA,EAAQ2g9B,EAAW0C,QAAQ1s+B,OAAQqpB,IACnDvsB,EAAOkt+B,EAAW0C,QAAQvj9B,SAASE,EAAM3V,WAAY,KACrDi7Y,EAAW,IAAItwZ,KAAKyu+B,EAAOxu+B,WACtBxB,IAAS+t+B,IAAazC,wBAA0Btr+B,KAAU+t+B,IAAazC,wBACtEyC,IAAa3q4B,WAAW2q4B,IAAa7t+B,YAAY2xZ,GAAW,IAIlEA,EAASruZ,QAAQquZ,EAASzvZ,WAAcpC,EAAO,EAC3C+t+B,IAAaxC,iBAAiB15kB,EAAU,GAAK,EAAI7xZ,EAAOA,KAChC,IAAxB4u+B,EAAa1r+B,QAAgB0r+B,EAAank+B,QAAQgk+B,IAAS58kB,EAASpuZ,YAAc,KACpD,MAA1Byp+B,EAAWt0lB,YACXs3lB,IAAqBhp+B,EAAOwoZ,EAAWC,EAAS3lX,EAAMkj8B,EAAYr7kB,EAASrwZ,WAG3E6u+B,EAAenk+B,KAAK,CAAC2lZ,EAASrwZ,cAVlCqwZ,EAASruZ,QAAQquZ,EAASzvZ,UAAY,GAiB9C,GAHKypU,GAAkBqhqB,EAAWt0lB,cAC9Bu3lB,IAAkCE,EAAgBnp+B,EAAOwoZ,EAAWC,EAAS3lX,EAAMkj8B,GAEnFwB,GAAkB1k8B,EAAK9mC,OAASgq+B,EAAWkB,mBAAsBM,EACjE,OAEJsB,EAASjC,IAAavC,gBAAgB35kB,EAAUq7kB,EAAW5/pB,UAC3D+iqB,EAAiB,EACrB,CACJ,CAzGYC,CAAe5glB,EAAWC,EAAS3lX,EAAMkj8B,GAGrD,CAxOYqD,CAAWxwP,EAAcmtP,EAAWly3B,MAAOhxE,EAAMkj8B,GAEzD,OAAOlj8B,CACX,CAOO,SAASmk8B,IAAgCqC,GAC5C,OAAO,IAAIjv+B,KAAKiv+B,EAAcv47B,OAAO,EAAG,GACpC,IAAMu47B,EAAcv47B,OAAO,EAAG,GAC9B,IAAMu47B,EAAcv47B,OAAO,EAAG,GAC9B,IAAMu47B,EAAcv47B,OAAO,GAAI,GAC/B,IAAMu47B,EAAcv47B,OAAO,IACnC,CASA,SAAS627B,IAAmB9k8B,EAAMhqC,GAC9B,IAAIyw+B,EAAY,IAAIlv+B,KAAKvB,GAAMuC,SAAS,EAAG,EAAG,EAAG,IACL,IAAxC0r+B,IAAgBxj+B,QAAQgm+B,MAAuBpC,KAAgBoC,GAAapC,IAAa7s+B,YACzFwoC,EAAK99B,KAAKlM,EAElB,CASA,SAAS2u+B,IAAaj/kB,EAAWw9kB,GAC7B,IAAIxi9B,EAAQ4j9B,IAiBZ,OAhBIpB,EAAWxi9B,MACXA,EAAQwi9B,EAAWxi9B,MAEdwi9B,EAAWly3B,QACQ,UAApBky3B,EAAWv3P,MAAwC,WAApBu3P,EAAWv3P,KAC1CjrtB,EAAQhnB,KAAKiG,OAAOuj+B,EAAWly3B,MAAMx5G,UAAYkuZ,EAAUluZ,WAAags9B,KAAc,EAE7D,YAApB0f,EAAWv3P,MAA0C,WAApBu3P,EAAWv3P,OACjDjrtB,EAAQhnB,KAAKiG,OAAQuj+B,EAAWly3B,MAAM/6G,WAAa,GAAKit+B,EAAWly3B,MAAM96G,eACpEwvZ,EAAUzvZ,WAAa,GAAKyvZ,EAAUxvZ,gBAAkBgt+B,EAAW5/pB,WACnE4/pB,EAAWnq+B,IAAIG,OAAS,EAAKQ,KAAKiG,OAAOuj+B,EAAWly3B,MAAMx5G,UAAYkuZ,EAAUluZ,WAAags9B,KAAc,EAAK,GAC7F,WAApB0f,EAAWv3P,OACXjrtB,EAAQwi9B,EAAWnk+B,MAAM7F,OAAS,EAAKwnB,EAAQwi9B,EAAWnk+B,MAAM7F,OAAUwnB,KAI/EA,CACX,CAmHA,SAASil9B,IAAYjglB,EAAWC,EAAS3lX,EAAMkj8B,GAEtCA,EAAWnk+B,MAAM7F,QAAWgq+B,EAAWnq+B,IAAIG,QAAWgq+B,EAAWE,SAASlq+B,OAMtEgq+B,EAAWnk+B,MAAM7F,OAAS,IAAMgq+B,EAAWnq+B,IAAIG,SAAWgq+B,EAAWE,SAASlq+B,QACnFgq+B,EAAWE,SAASlh+B,KAAKwjZ,EAAUttZ,YANnC8q+B,EAAWE,SAASlh+B,KAAKwjZ,EAAUttZ,WACX,WAApB8q+B,EAAWv3P,MACXu3P,EAAWnk+B,MAAMmD,KAAKwjZ,EAAUzvZ,WAAa,IAMrD,IAAIyw+B,EA0nCR,SAAiCxD,GAC7B,GAAIA,EAAWE,SAASlq+B,SAAWgq+B,EAAWnq+B,IAAIG,OAC9C,MAAO,OAEN,IAAKgq+B,EAAWE,SAASlq+B,QAAUgq+B,EAAWnq+B,IAAIG,OACnD,MAAO,MAEX,MAAO,MACX,CAloCmByt+B,CAAwBzD,GACvC,OAAQwD,GACJ,IAAK,MACD,OAAQxD,EAAWv3P,MACf,IAAK,UACDi7P,IAAkClhlB,EAAWC,EAAS3lX,EAAMkj8B,GAC5D,MACJ,IAAK,UA+erB,SAA+Bx9kB,EAAWC,EAAS3lX,EAAMkj8B,GACrD,IAAI0B,EAAe1B,EAAWnq+B,IAC1B8t+B,EAAiBjC,EAAa7o+B,KAAI,SAAUsvB,GAAQ,OAAOy78B,IAAU7n9B,KAAKoM,EAAO,IAErF,GAAIu58B,EAAa1r+B,OAAS,GAAK2t+B,EAAepm+B,SAAQ,IAAS,EAE3D,YAuFR,SAAkDilZ,EAAWC,EAAS3lX,EAAMkj8B,GACxE,IAMI3g9B,EACArlB,EAEA6p+B,EACA5/3B,EACA463B,EAXA6C,EAAe1B,EAAWnq+B,IAC1B2r+B,EAAgBC,IAAaj/kB,EAAWw9kB,GACxCr7kB,EAAW,IAAItwZ,KAAKmuZ,EAAUluZ,WAC9B8rU,EAAW4/pB,EAAW5/pB,SACtB0jqB,EAAkB,GAClBX,EAAiB,GAGjBY,EAAY,EAIhBp/kB,EAAWk8kB,IAAarC,kBAAkB75kB,GAC1C,IAAIq/kB,EAAQ,GACRhE,EAAWnk+B,MAAM7F,QACjB6q+B,IAAa/r+B,SAAS6vZ,EAAUq7kB,EAAWnk+B,MAAM,GAAI,GAEzD8oZ,EAAW49kB,IAAoB59kB,EAAUq7kB,EAAWnq+B,KACpD,KAAO8r+B,IAAah9kB,EAAUlC,IAAU,CACpCohlB,EAAmB,IAAIxv+B,KAAKswZ,EAASrwZ,WACrC,IAAK,IAAIyK,EAAI,EAAGA,GAAKih+B,EAAWnk+B,MAAM7F,OAAQ+I,IAC1C,IAAK,IAAI6D,EAAI,EAAGA,GAAK8+9B,EAAa1r+B,OAAS,EAAG4M,IAAK,CAI/C,IAFA+hZ,EAAW49kB,IADX59kB,EAAWk8kB,IAAarC,kBAAkB75kB,GACDq7kB,EAAWnq+B,KACpDiu+B,EAAkB,GACXjD,IAAazoB,WAAWyrB,EAAkBl/kB,IAC5C68kB,GAAkB1k8B,EAAK9mC,OAASgq+B,EAAWkB,mBAAsBM,GAClE,KAAOX,IAAazoB,WAAWyrB,EAAkBl/kB,IAAW,CAExD,GADAk/kB,EAAmB,IAAIxv+B,KAAKswZ,EAASrwZ,WACL,IAA5B0r+B,EAAWnk+B,MAAM7F,QAChBgq+B,EAAWnk+B,MAAM7F,OAAS,GAAKgq+B,EAAWnk+B,MAAMsjB,SAASpgB,EAAE2K,WAAY,OAASm39B,IAAa9t+B,SAAS8w+B,GAAoB,CAC3H,IAAII,EAAoBvC,EAAavi9B,SAASvc,EAAE8G,WAAY,KAAKK,MAAMm69B,KACnEpn5B,EAAW39D,SAAS8k9B,EAAkB,GAAI,IAE9C,IADAhg4B,EAAc,IAAI5vG,KAAKswZ,EAASrwZ,WACzBus+B,IAAazoB,WAAWn02B,EAAa0gT,IACrCk8kB,IAAa1r+B,YAAY8uG,EAAa0gT,IACrCs/kB,EAAkBA,EAAkBju+B,OAAS,KAAOur+B,IAASt93B,EAAY1tG,WACzEut+B,EAAgB9k+B,KAAK,CAACilG,EAAY3vG,YAEtC2vG,EAAY3tG,QAAQ2tG,EAAY/uG,UAAa,GAEjD+uG,EAAY3tG,QAAQ2tG,EAAY/uG,UAAa,GAEzCmqB,EADA4k9B,EAAkB,GAAG1m+B,QAAQ,MAAQ,EAC7Bum+B,EAAgB9t+B,SAAW,EAAI8mF,EAG/BA,EAAW,EAEvBz9D,EAAQ5qB,MAAM4qB,GAAS,EAAIA,CAC/B,CACA0k9B,EAAYI,IAAiBx/kB,EAAUq7kB,EAAY+D,EAAWlF,EAAW,GACzEl6kB,EAAW49kB,IAAoB59kB,EAAUq7kB,EAAWnq+B,IACxD,CAWJ,GATA8uZ,EAAiB,IAAN/hZ,GAAWqhG,EAAc,IAAI5vG,KAAK4vG,EAAY3vG,WAAa,IAAID,KAAKwv+B,EAAiBvv+B,WAC5Fwv+B,EAAgB9t+B,OAAS,IACrB2oU,GAAkBqhqB,EAAWt0lB,aAC7Bu3lB,IAAkCa,EAAiB9p+B,EAAOwoZ,EAAWC,EAAS3lX,EAAMkj8B,EAAY3g9B,GAGhG8j9B,EAAiB,CAAEiB,IAA4BN,EAAiBzk9B,EAAO2k9B,KAG3ExC,GAAkB1k8B,EAAK9mC,OAASgq+B,EAAWkB,mBAAsBM,EACjE,MAER,CAEC7iqB,GAAkBqhqB,EAAWt0lB,eAC9B24lB,IAAoClB,EAAgBnp+B,EAAOwoZ,EAAWC,EAAS3lX,EAAMkj8B,GACrFgE,EAAQ,IAERnD,IAAa7B,YAAYr6kB,IACzBk8kB,IAAalC,aAAah6kB,EAAU,EAAG,GACvCA,EAASltT,YAAYktT,EAAS3xZ,cAAgBotU,EAAW,IAGzDukF,EAASltT,YAAYktT,EAAS3xZ,cAAgBotU,GAElDukF,EAAW49kB,IAAoB59kB,EAAUq7kB,EAAWnq+B,KAChDmq+B,EAAWnk+B,MAAM7F,QACjB6q+B,IAAa/r+B,SAAS6vZ,EAAUq7kB,EAAWnk+B,MAAM,GAAI8oZ,EAASzvZ,UAEtE,CACJ,CA7KQov+B,CAAyC9hlB,EAAWC,EAAS3lX,EAAMkj8B,GAGlE,GAAIA,EAAWnk+B,MAAM7F,QAAkC,IAAxB0r+B,EAAa1r+B,QAAgB2t+B,EAAepm+B,SAAQ,IAAS,EAE7F,YADAmm+B,IAAkClhlB,EAAWC,EAAS3lX,EAAMkj8B,GAGhE,IACI6D,EADAl/kB,EAAW,IAAItwZ,KAAKmuZ,EAAUluZ,WAE9Bkt+B,EAAgBC,IAAaj/kB,EAAWw9kB,GACxC5/pB,EAAW4/pB,EAAW5/pB,SACtB0jqB,EAAkB,GAClB9D,EAAWnk+B,MAAM7F,QACjB6q+B,IAAa/r+B,SAAS6vZ,EAAUq7kB,EAAWnk+B,MAAM,GAAI8oZ,EAASzvZ,WAG9DypU,GAAkBqhqB,EAAWt0lB,cAA4C,IAA5Bs0lB,EAAWnk+B,MAAM7F,QAA6C,IAA7Bgq+B,EAAW2C,OAAO3s+B,QAChG2uZ,EAASltT,YAAY+qT,EAAUxvZ,cAAe,EAAG,GAGrD2xZ,EAAW49kB,IADX59kB,EAAWk8kB,IAAarC,kBAAkB75kB,GACDq7kB,EAAWnq+B,KACpD,KAAO8r+B,IAAah9kB,EAAUlC,IAAU,CAEpC,IADAohlB,EAAmB,IAAIxv+B,KAAKswZ,EAASrwZ,WAC9Bus+B,IAAazoB,WAAWyrB,EAAkBl/kB,IAC5C68kB,GAAkB1k8B,EAAK9mC,OAASgq+B,EAAWkB,mBAAsBM,GAElE,IADAqC,EAAmB,IAAIxv+B,KAAKswZ,EAASrwZ,WAC9Bus+B,IAAazoB,WAAWyrB,EAAkBl/kB,IAAW,CACxD,KAAgC,IAA5Bq7kB,EAAWnk+B,MAAM7F,QAAiBgq+B,EAAWnk+B,MAAM7F,OAAS,IACxD6q+B,IAAa9B,WAAWp6kB,EAAUq7kB,EAAWnk+B,QA4BhD,CACDgl+B,IAAalC,aAAah6kB,EAAU,EAAG,GACvCA,EAAW49kB,IAAoB59kB,EAAUq7kB,EAAWnq+B,KACpD,KACJ,CA/BI,GAAI6r+B,EAAa1r+B,OAAS,EAAG,CACzB,GAAI6q+B,IAAaz/kB,aAAayilB,EAAkBl/kB,GAAW,CACvDk8kB,IAAalC,aAAah6kB,EAAU,EAAG,GACvCA,EAAW49kB,IAAoB59kB,EAAUq7kB,EAAWnq+B,KACpD,KACJ,CACI6r+B,EAAank+B,QAAQgk+B,IAASsC,EAAiBtt+B,YAAc,GAC7Dut+B,EAAgB9k+B,KAAK,CAAC6k+B,EAAiBvv+B,YAE3Cuv+B,EAAiBvt+B,QAAQut+B,EAAiB3u+B,UAAa,EAC3D,KACK,CAED,GAAI2u+B,EAAiB7w+B,cAAgB2xZ,EAAS3xZ,cAAe,CACzD6t+B,IAAalC,aAAah6kB,EAAU,EAAG,GACvCA,EAAW49kB,IAAoB59kB,EAAUq7kB,EAAWnq+B,KACpD,KACJ,CACA,IAAI0u+B,EAASC,IAAa9C,EAAa,IACnCH,IAASsC,EAAiBtt+B,YAAcgu+B,GACrC,IAAIlw+B,KAAKwv+B,EAAiB7w+B,cAAe6w+B,EAAiB9w+B,WAAY,GACnE,IAAIsB,KAAKmuZ,EAAUxvZ,gBACzB8w+B,EAAgB9k+B,KAAK,CAAC6k+B,EAAiBvv+B,YAE3Cuv+B,EAAiBvt+B,QAAQut+B,EAAiB3u+B,UAAa,EAC3D,CAOR,CAUJ,GARAyvZ,EAASltT,YAAYos4B,EAAiB7w+B,cAAe6w+B,EAAiB9w+B,WAAY8w+B,EAAiB3u+B,WAEnGuv+B,IAAiCX,EAAiBthlB,EAAWC,EAAS3lX,EAAMkj8B,GACxEa,IAAa7B,YAAYr6kB,KACzBk8kB,IAAalC,aAAah6kB,EAAU,EAAG,GACvCA,EAAW49kB,IAAoB59kB,EAAUq7kB,EAAWnq+B,MAExD8uZ,EAASltT,YAAYktT,EAAS3xZ,cAAgBotU,EAAW,GACrDohqB,GAAkB1k8B,EAAK9mC,OAASgq+B,EAAWkB,mBAAsBM,EACjE,OAEJ78kB,EAAW49kB,IAAoB59kB,EAAUq7kB,EAAWnq+B,KACpDiu+B,EAAkB,EACtB,CACJ,CAhkBoBY,CAAsBlilB,EAAWC,EAAS3lX,EAAMkj8B,GAGxD,MACJ,IAAK,OACL,IAAK,OACD,OAAQA,EAAWv3P,MACf,IAAK,UACDk8P,IAAmCnilB,EAAWC,EAAS3lX,EAAMkj8B,GAC7D,MACJ,IAAK,UAsLrB,SAAgCx9kB,EAAWC,EAAS3lX,EAAMkj8B,GACtD,GAAIA,EAAWnk+B,MAAM7F,OAEjB,YADA2u+B,IAAmCnilB,EAAWC,EAAS3lX,EAAMkj8B,GAGjE,IACI6D,EADAe,EAAWC,IAA2BrilB,EAAWw9kB,GAErD4E,EAASjglB,SAAWiglB,EAASE,SAAWjE,IAAarC,kBAAkBoG,EAASjglB,UAChF,KAAOg9kB,IAAaiD,EAASjglB,SAAUlC,IAAU,CAE7C,IADAohlB,EAAmB,IAAIxv+B,KAAKuw+B,EAASjglB,SAASrwZ,WACvCus+B,IAAazoB,WAAWyrB,EAAkBe,EAASjglB,WACrDiglB,EAASpD,eAAkB1k8B,EAAK9mC,OAASgq+B,EAAWkB,mBAAsB0D,EAASpD,eAAgB,CACpG,KAAgC,IAA5BxB,EAAWnk+B,MAAM7F,QAAiBgq+B,EAAWnk+B,MAAM7F,OAAS,IACxD6q+B,IAAa9B,WAAW6F,EAASjglB,SAAUq7kB,EAAWnk+B,QAKzD,CACDgl+B,IAAalC,aAAaiG,EAASjglB,SAAU,EAAG,GAChDiglB,EAASjglB,SAAW49kB,IAAoBqC,EAASjglB,SAAUq7kB,EAAWnq+B,KACtE,KACJ,CARIkv+B,IAAmC/E,EAAY4E,EAAUnilB,GAAS,GAClEmilB,EAAS/F,UAAY,IAAIxq+B,KAAKuw+B,EAASjglB,SAASrwZ,WAChDsw+B,EAASb,UAAYI,IAAiBS,EAASjglB,SAAUq7kB,EAAY4E,EAASb,UAAWa,EAAS/F,UAO1G,CAOA,GANA+F,EAASjglB,SAASltT,YAAYos4B,EAAiB7w+B,cAAe6w+B,EAAiB9w+B,WAAY8w+B,EAAiB3u+B,WAC5Got+B,IAAqBsC,EAASzB,eAAgByB,EAAS5q+B,MAAOwoZ,EAAWC,EAAS3lX,EAAMkj8B,GACpFa,IAAa7B,YAAY4F,EAASjglB,YAClCk8kB,IAAalC,aAAaiG,EAASjglB,SAAU,EAAG,GAChDiglB,EAASjglB,SAAW49kB,IAAoBqC,EAASjglB,SAAUq7kB,EAAWnq+B,MAEtE+u+B,EAASpD,eAAkB1k8B,EAAK9mC,OAASgq+B,EAAWkB,mBAAsB0D,EAASpD,cACnF,OAEJoD,EAASjglB,SAASltT,YAAYmt4B,EAASjglB,SAAS3xZ,cAAgBgt+B,EAAW5/pB,SAAW,GACtFwkqB,EAASjglB,SAAW49kB,IAAoBqC,EAASjglB,SAAUq7kB,EAAWnq+B,KACtE+u+B,EAASb,UAAYI,IAAiBS,EAASjglB,SAAUq7kB,EAAY4E,EAASb,UAAWa,EAAS/F,WAClG+F,EAASzB,eAAiB,EAC9B,CACJ,CA3NoB6B,CAAuBxilB,EAAWC,EAAS3lX,EAAMkj8B,IAKrE,CAuJA,SAAS6E,IAA2BrilB,EAAWw9kB,GAC3C,IAAI4E,EAAW,CACXd,gBAAiB,GACjBzk9B,MAAO,EACPslY,SAAU,IAAItwZ,KAAKmuZ,EAAUluZ,WAC7Bww+B,SAAU,IAAIzw+B,KAAKmuZ,EAAUluZ,WAC7Bkt+B,cAAeC,IAAaj/kB,EAAWw9kB,GACvC+D,UAAW,EACXZ,eAAgB,IAKpB,OAHInD,EAAWnk+B,MAAM7F,QACjB6q+B,IAAa/r+B,SAAS8v+B,EAASjglB,SAAUq7kB,EAAWnk+B,MAAM,GAAI+o+B,EAASjglB,SAASzvZ,WAE7E0v+B,CACX,CA4DA,SAASD,IAAmCnilB,EAAWC,EAAS3lX,EAAMkj8B,GAClE,IAAI4E,EAAWC,IAA2BrilB,EAAWw9kB,GAErD,GADA4E,EAASjglB,SAAWiglB,EAASE,SAAWjE,IAAarC,kBAAkBoG,EAASjglB,aACtD,YAApBq7kB,EAAWv3P,MAA8C,KAAxBu3P,EAAW5/pB,UAAyC,WAApB4/pB,EAAWv3P,OAC9Eo4P,IAAatC,kBAAkB/7kB,GAAaw9kB,EAAWE,SAAS,IAGpE,KAAOyB,IAAaiD,EAASjglB,SAAUlC,IAAU,CAM7C,GALAmilB,EAAS/F,UAAY,IAAIxq+B,KAAKuw+B,EAASjglB,SAASrwZ,WAChDyw+B,IAAmC/E,EAAY4E,EAAUnilB,GAAS,EAAMD,EAAW1lX,GAC9E6hS,GAAkBqhqB,EAAWt0lB,cAC9Bu3lB,IAAkC2B,EAASzB,eAAgByB,EAAS5q+B,MAAOwoZ,EAAWC,EAAS3lX,EAAMkj8B,GAErG4E,EAASpD,eAAkB1k8B,EAAK9mC,OAASgq+B,EAAWkB,mBAAsB0D,EAASpD,cACnF,OAEJoD,EAASb,UAAYI,IAAiBS,EAASjglB,SAAUq7kB,EAAY4E,EAASb,UAAWa,EAAS/F,WAClG+F,EAASzB,eAAiB,EAC9B,CACJ,CAaA,SAAS4B,IAAmC/E,EAAYiF,EAAkBxilB,EAASyilB,EAAW1ilB,EAAW1lX,GACrG,IAAK,IAAIzd,EAAQ,EAAGA,EAAQ2g9B,EAAWE,SAASlq+B,OAAQqpB,IAAS,CAC7D4l9B,EAAiBny+B,KAAOkt+B,EAAWE,SAAS/g9B,SAASE,EAAM3V,WAAY,KACvEu79B,EAAiBtglB,SAAWk8kB,IAAarC,kBAAkByG,EAAiBtglB,UAC5E,IAAIv0B,EAAUywmB,IAAatC,kBAAkB0G,EAAiBtglB,UAE9D,GADAsglB,EAAiBny+B,KAAOmy+B,EAAiBny+B,KAAO,EAAImy+B,EAAiBny+B,KAAQs9X,EAAU60mB,EAAiBny+B,KAAO,EAC3Gqy+B,IAAmBF,EAAiBtglB,SAAUsglB,EAAiBny+B,KAAMmy+B,EAAiBH,WAClFG,EAAiBny+B,KAAO,EAAI,CAEhC,GADA+t+B,IAAavq+B,QAAQ2u+B,EAAiBtglB,SAAUsglB,EAAiBny+B,MAC7D2vZ,GAAWwilB,EAAiBtglB,SAAWlC,EACvC,QAE0B,IAA1Bu9kB,EAAWnq+B,IAAIG,QAAgBgq+B,EAAWnq+B,IAAI0H,QAAQgk+B,IAAS0D,EAAiBtglB,SAASpuZ,YAAc,KACnG2u+B,GAAavmqB,GAAkBqhqB,EAAWt0lB,cAAiBu5lB,EAAiBzD,eACxE1k8B,EAAK9mC,OAASgq+B,EAAWkB,kBAAqB+D,EAAiBzD,cACnEwB,IAAqBiC,EAAiBjr+B,MAAOwoZ,EAAWC,EAAS3lX,EAAMkj8B,EAAYiF,EAAiBtglB,SAASrwZ,WAG7G2w+B,EAAiB9B,eAAenk+B,KAAK,CAACim+B,EAAiBtglB,SAASrwZ,YAG5E,CACJ,CACJ,CAYA,SAAS6v+B,IAAiBx/kB,EAAUq7kB,EAAY+D,EAAWlF,EAAWz+pB,QAChD,IAAdy+pB,IAAwBA,EAAY,MACxC,IAAI7wpB,EAAY6wpB,EAAYA,EAAU9r+B,WAAa,EAC/CyvZ,EAAYq+kB,IAAarC,kBAAkB75kB,GAmB/C,OAlBAvkF,EAAWzB,GAAkByB,GAAY4/pB,EAAW5/pB,SAAWA,EAC/DukF,EAASltT,YAAY+qT,EAAUxvZ,eAC/B2xZ,EAAS7vZ,SAAS0tZ,EAAUzvZ,YAC5B4xZ,EAASruZ,QAAQksZ,EAAUttZ,WACvB8q+B,EAAWnk+B,MAAM7F,QACjB+t+B,IACAA,GAAwB/D,EAAWnk+B,MAAM7F,OACzC6q+B,IAAa/r+B,SAAS6vZ,EAAUq7kB,EAAWnk+B,MAAMsjB,SAAS4k9B,EAAUr69B,WAAY,KAAM,GACpE,IAAdq69B,GACAlD,IAAaxllB,SAASsJ,EAAUvkF,EAAU4/pB,EAAWnk+B,MAAM,MAI3Dgj+B,GAAcA,EAAU7r+B,cAAgB2xZ,EAAS3xZ,gBACjDg7U,EAAY22E,EAAS5xZ,WAAa,GAEtC8t+B,IAAalC,aAAah6kB,EAAUvkF,EAAU,EAAG4N,EAAW6wpB,IAEzDkF,CACX,CA0HA,SAASL,IAAkClhlB,EAAWC,EAAS3lX,EAAMkj8B,GAGjE,GAFmBA,EAAWnq+B,IAEbG,OAAS,GAlH9B,SAA4BwsZ,EAAWC,EAAS3lX,EAAMkj8B,GAClD,IAAI0B,EAAe1B,EAAWnq+B,IAC1B8uZ,EAAW,IAAItwZ,KAAKmuZ,EAAUluZ,WAClCqwZ,EAAWk8kB,IAAarC,kBAAkB75kB,GAC1C,IAGItlY,EACArlB,EAGA6k+B,EAPAiF,EAAkB,GAClBX,EAAiB,GACjB1x4B,EAAQ,GAGR+v4B,EAAgBC,IAAaj/kB,EAAWw9kB,GACxC+D,EAAY,EAMhB,IAJI/D,EAAWnk+B,MAAM7F,QACjB6q+B,IAAa/r+B,SAAS6vZ,EAAUq7kB,EAAWnk+B,MAAM,GAAI,GAEzD8oZ,EAAW49kB,IAAoB59kB,EAAUq7kB,EAAWnq+B,KAC7C8r+B,IAAah9kB,EAAUlC,IACtB++kB,GAAkB1k8B,EAAK9mC,OAASgq+B,EAAWkB,kBAAqBM,GAAgB,CACpF,IAAIqC,EAAmB,IAAIxv+B,KAAKswZ,EAASrwZ,WAEzC,GADqBot+B,EAAa7o+B,KAAI,SAAUsvB,GAAQ,OAAOy78B,IAAU7n9B,KAAKoM,EAAO,IAClE5qB,SAAQ,IAAS,EAAG,CACnC,IAAK,IAAIqF,EAAI,EAAGA,GAAK8+9B,EAAa1r+B,OAAS,EAAG4M,IAAK,CAC/C,IAAIqh+B,EAAoBvC,EAAavi9B,SAASvc,EAAE8G,WAAY,KAAKK,MAAMm69B,KACnEpn5B,EAAW39D,SAAS8k9B,EAAkB,GAAI,IAK9C,IAJAt/kB,EAAW,IAAItwZ,KAAKswZ,EAASrwZ,WAE7BqwZ,EAAW49kB,IADX59kB,EAAWk8kB,IAAarC,kBAAkB75kB,GACD+8kB,GACzCmC,EAAiBps4B,YAAYktT,EAAS3xZ,cAAe2xZ,EAAS5xZ,WAAY4xZ,EAASzvZ,WAC5E2r+B,IAAazoB,WAAWyrB,EAAkBl/kB,IAAak8kB,IAAa1r+B,YAAY0u+B,EAAkBl/kB,IACjGs/kB,EAAkBA,EAAkBju+B,OAAS,KAAOur+B,IAASsC,EAAiBtt+B,WAC9Eut+B,EAAgB9k+B,KAAK,CAAC6k+B,EAAiBvv+B,YAE3Cuv+B,EAAiBvt+B,QAAQut+B,EAAiB3u+B,UAAa,GAkB3D,GAhBA2u+B,EAAiBvt+B,QAAQut+B,EAAiB3u+B,UAAa,GAEnDmqB,EADA4k9B,EAAkB,GAAG1m+B,QAAQ,MAAQ,EAC7Bum+B,EAAgB9t+B,SAAW,EAAI8mF,EAG/BA,EAAW,EAEvBz9D,EAAQ5qB,MAAM4qB,GAAS,EAAIA,EACvByk9B,EAAgB9t+B,OAAS,IACrB2oU,GAAkBqhqB,EAAWt0lB,aAC7Bu3lB,IAAkCa,EAAiB9p+B,EAAOwoZ,EAAWC,EAAS3lX,EAAMkj8B,EAAY3g9B,GAGhG8j9B,EAAiB,CAAEiB,IAA4BN,EAAiBzk9B,EAAOoyE,KAG3E+v4B,GAAkB1k8B,EAAK9mC,OAASgq+B,EAAWkB,mBAAsBM,EACjE,OAEJsC,EAAkB,EACtB,CACKnlqB,GAAkBqhqB,EAAWt0lB,eAC9B24lB,IAAoClB,EAAgBnp+B,EAAOwoZ,EAAWC,EAAS3lX,EAAMkj8B,GACrFvu4B,EAAQ,IAEZsy4B,EAAYI,IAAiBx/kB,EAAUq7kB,EAAY+D,EAAWlF,GAC9Dl6kB,EAAW49kB,IAAoB59kB,EAAUq7kB,EAAWnq+B,KACpDiu+B,EAAkB,EACtB,KACK,CACD,IAAI9B,EAAiB,GACjBoD,EAAeC,IAAgB3D,GACnCmC,EAAiBps4B,YAAYktT,EAAS3xZ,cAAe2xZ,EAAS5xZ,WAAY4xZ,EAASzvZ,WACnF,IAAIow+B,EAAc,IAAIjx+B,KAAKswZ,EAASrwZ,WAEpC,IADAuq+B,EAAY,IAAIxq+B,KAAKswZ,EAASrwZ,WACvBus+B,IAAa1r+B,YAAYmw+B,EAAa3glB,IACzCq9kB,EAAehj+B,KAAK2lZ,EAASrwZ,WACzBot+B,EAAank+B,QAAQgk+B,IAAS58kB,EAASpuZ,YAAc,IACrDut+B,EAAgB9k+B,KAAKgj+B,GACrBA,EAAiB,IAErBr9kB,EAASruZ,QAAQquZ,EAASzvZ,UACpBkw+B,EAAa7D,IAAS58kB,EAASpuZ,YAGzC,GADA8oB,EAAU2g9B,EAAWt0lB,YAAc,EAAMo4lB,EAAgB9t+B,OAASgq+B,EAAWt0lB,YAAes0lB,EAAWt0lB,YAAc,EACjH/sE,GAAkBqhqB,EAAWt0lB,aAAc,CAC3CrsX,EAAQ,EAER,IADA,IAAI2k9B,EAAQ,GACHji+B,EAAO,EAAGA,EAAO+h+B,EAAgB9t+B,OAAQ+L,IAC9C,IAAK,IAAI09Y,EAAM,EAAGA,EAAMqklB,EAAgB3k9B,SAASpd,EAAK2H,WAAY,KAAK1T,OAAQypZ,IAC3EuklB,EAAMhl+B,KAAK8k+B,EAAgB3k9B,SAASpd,EAAK2H,WAAY,KAAKyV,SAASsgY,EAAI/1Y,WAAY,MAG3Fo69B,EAAkB,CAACE,EACvB,CAIA,GAHIF,EAAgB9t+B,OAAS,GACzBit+B,IAAkCa,EAAiB9p+B,EAAOwoZ,EAAWC,EAAS3lX,EAAMkj8B,EAAY3g9B,GAEhGmi9B,GAAkB1k8B,EAAK9mC,OAASgq+B,EAAWkB,mBAAsBM,EACjE,OAEJuC,EAAYI,IAAiBx/kB,EAAUq7kB,EAAY+D,EAAWlF,GAC9Dl6kB,EAAW49kB,IAAoB59kB,EAAUq7kB,EAAWnq+B,KACpDiu+B,EAAkB,EACtB,CACJ,CACJ,CAeQyB,CAAmB/ilB,EAAWC,EAAS3lX,EAAMkj8B,OADjD,CAIA,IAGInB,EAHAl6kB,EAAW,IAAItwZ,KAAKmuZ,EAAUluZ,WAC9Bkt+B,EAAgBC,IAAaj/kB,EAAWw9kB,GACxC8D,EAAkB,GAElBC,EAAY,EAMhB,IALAp/kB,EAAWk8kB,IAAarC,kBAAkB75kB,GACtCq7kB,EAAWnk+B,MAAM7F,QACjB6q+B,IAAa/r+B,SAAS6vZ,EAAUq7kB,EAAWnk+B,MAAM,GAAI,GAEzD8oZ,EAAW49kB,IAAoB59kB,EAAUq7kB,EAAWnq+B,KAC7C8r+B,IAAah9kB,EAAUlC,IAAa++kB,GAAkB1k8B,EAAK9mC,OAASgq+B,EAAWkB,kBAAqBM,GAAgB,CACvH3C,EAAY,IAAIxq+B,KAAKswZ,EAASrwZ,WAE9B,IADA,IAAIuv+B,EAAmB,IAAIxv+B,KAAKswZ,EAASrwZ,WAClCus+B,IAAa1r+B,YAAYwvZ,EAAUk/kB,IACtCC,EAAgB9k+B,KAAK,CAAC6k+B,EAAiBvv+B,YACvCuv+B,EAAiBvt+B,QAAQut+B,EAAiB3u+B,UAAa,GAG3Duv+B,IAAiCX,EAAiBthlB,EAAWC,EAAS3lX,EAAMkj8B,GAC5E+D,EAAYI,IAAiBx/kB,EAAUq7kB,EAAY+D,EAAWlF,GAC9Dl6kB,EAAW49kB,IAAoB59kB,EAAUq7kB,EAAWnq+B,KACpDiu+B,EAAkB,EACtB,CAvBA,CAwBJ,CA0OA,SAASxB,IAAqBa,EAAgBnp+B,EAAOwoZ,EAAWC,EAAS3lX,EAAMkj8B,GAC3E,IAAI3g9B,EAAU2g9B,EAAWt0lB,YAAc,EAClCy3lB,EAAent+B,OAASgq+B,EAAWt0lB,YAAes0lB,EAAWt0lB,YAAc,EAC5E/sE,GAAkBqhqB,EAAWt0lB,eAC7BrsX,EAAQ,EACR8j9B,EAAiBqC,IAAiCrC,IAElDA,EAAent+B,OAAS,GACxBit+B,IAAkCE,EAAgBnp+B,EAAOwoZ,EAAWC,EAAS3lX,EAAMkj8B,EAAY3g9B,EAEvG,CAQA,SAASmm9B,IAAiC1B,GAEtC,IADA,IAAIE,EAAQ,GACHji+B,EAAO,EAAGA,EAAO+h+B,EAAgB9t+B,OAAQ+L,IAC9C,IAAK,IAAI09Y,EAAM,EAAGA,EAAMqklB,EAAgB3k9B,SAASpd,EAAK2H,WAAY,KAAK1T,OAAQypZ,IAC3EuklB,EAAMhl+B,KAAK,IAAI3K,KAAKyv+B,EAAgB3k9B,SAASpd,EAAK2H,WAAY,KAAKyV,SAASsgY,EAAI/1Y,WAAY,MAAMpV,WAI1G,OADAwv+B,EAAkBE,EAAMhu+B,OAAS,EAAI,CAACgu+B,GAAS,EAEnD,CAYA,SAASS,IAAiCX,EAAiBthlB,EAAWC,EAAS3lX,EAAMkj8B,GACjF,IACIhm+B,EACAgq+B,EAAQ,GAERyB,EAhFR,SAAiC3B,EAAiBpC,GAC9C,IAAIri9B,EACAqm9B,EAA6B,CAAE5B,gBAAiB,GAAIzk9B,MAAO,GAC/D,GAA4B,IAAxBqi9B,EAAa1r+B,OAAc,CAE3B,IAAI2v+B,EAAqBjE,EAAa,GAAG339B,MAAMm69B,KAC3C0B,OAAc,EACdD,EAAmB3v+B,OAAS,EAE5BqpB,GADAum9B,EAAczm9B,SAASwm9B,EAAmB,GAAI,KACtB,EAAM7B,EAAgB9t+B,OAAS4v+B,EAAeA,EAAc,GAGpFvm9B,EAAQ,EACRyk9B,EAAkB0B,IAAiC1B,GAE3D,MAEIzk9B,EAAQ,EACRyk9B,EAAkB0B,IAAiC1B,GAIvD,OAFA4B,EAA2B5B,gBAAkBA,EAC7C4B,EAA2Brm9B,MAAQA,EAC5Bqm9B,CACX,CAyDgCG,CAAwB/B,EAJjC9D,EAAWnq+B,KAK9Biu+B,EAAkB2B,EAAsB3B,gBACxC,IAAIzk9B,EAAQom9B,EAAsBpm9B,MACJ,MAA1B2g9B,EAAWt0lB,YAEX24lB,IADiB,CAAED,IAA4BN,EAAiBzk9B,EAAO2k9B,IACnBhq+B,EAAOwoZ,EAAWC,EAAS3lX,EAAMkj8B,GAGjF8D,EAAgB9t+B,OAAS,GACzBit+B,IAAkCa,EAAiB9p+B,EAAOwoZ,EAAWC,EAAS3lX,EAAMkj8B,EAAY3g9B,GAGxG2k9B,EAAQ,EACZ,CAUA,SAASI,IAA4BN,EAAiBzk9B,EAAO2k9B,GACzD,IAAK,IAAIji+B,EAAO,EAAGA,EAAO+h+B,EAAgB3k9B,SAASE,EAAM3V,WAAY,KAAK1T,OAAQ+L,IAC9Eii+B,EAAMhl+B,KAAK8k+B,EAAgB3k9B,SAASE,EAAM3V,WAAY,KAAKyV,SAASpd,EAAK2H,WAAY,MAEzF,OAAOs69B,CACX,CAaA,SAAShB,IAAqBhp+B,EAAOwoZ,EAAWC,EAAS3lX,EAAMkj8B,EAAY8F,GACvE,IAAItE,EAAgBC,IAAaj/kB,EAAWw9kB,GACxC+F,EAAS,IAAI1x+B,KAAKyx+B,GACtB9r+B,EAAQqh3B,IAAc0qH,EAAQ/F,GACzB+F,GAAUvjlB,GAAcm/kB,IAAaoE,EAAQtjlB,IAAYzoZ,GACvDwn+B,GAAkB1k8B,EAAK9mC,OAASgq+B,EAAWkB,kBAAqBM,GACnEI,IAAmB9k8B,EAAMgp8B,EAEjC,CAYA,SAASE,IAAU109B,EAAMgv9B,EAAgBwD,EAAiB/h+B,EAAMi+9B,GAC5D,IAAInh+B,EAAiByh+B,GAAkB,EACnC2F,EAAe,IAAI5x+B,KAAKid,EAAM0u9B,EAAWnk+B,MAAM,GAAK,EAAG,GAEvDqq+B,EADc,IAAI7x+B,KAAKid,EAAM0u9B,EAAWnk+B,MAAM,GAAI,GAChB3G,UAElCix+B,GADgBF,EAAa1v+B,SAAWsI,EAAiB,GAAK,EACxCqn+B,EACtB1o9B,EAAQhnB,KAAKC,KAAK0v+B,EAAO,GAAK,EAC9BL,EAAUhC,EAAgB3k9B,SAASpd,EAAK2H,WAAY,KAAKyV,SAAS3B,EAAM9T,WAAY,KAGxF,OADY2x2B,IADC,IAAIhn3B,KAAKyx+B,GACY9F,GACjBxi9B,EAAQA,EAAQ,CACrC,CAaA,SAAS6m9B,IAAoCP,EAAiB9p+B,EAAOwoZ,EAAWC,EAAS3lX,EAAMkj8B,GAC3F,GAAI8D,EAAgB9t+B,OAAS,EACzB,IAAK,IAAI+L,EAAO,EAAGA,EAAO+h+B,EAAgB9t+B,OAAQ+L,IAAQ,CACtD+h+B,EAAgB3k9B,SAASpd,EAAK2H,WAAY,KAAKoX,OAC/C,IACI6i9B,EADe3D,EAAWnq+B,IACIgD,KAAI,SAAUsvB,GAAQ,OAAOy78B,IAAU7n9B,KAAKoM,EAAO,IACjFi+8B,EAAiC,WAApBpG,EAAWv3P,MAAsBu3P,EAAWqG,WAAW9o+B,QAAQ,YAAc,KACxFom+B,EAAepm+B,SAAQ,IAAS,GAClCyo+B,IAAU,IAAI3x+B,KAAKyv+B,EAAgB,GAAG,IAAI9w+B,cAAe,EAAG8w+B,EAAiB/h+B,EAAMi+9B,GAChF8D,EAAgB3k9B,SAASpd,EAAK2H,WAAY,KAAK1T,OAASgq+B,EAAWt0lB,YACtErsX,EAAU2g9B,EAAWt0lB,YAAc,EAAK06lB,EAAYpG,EAAWt0lB,YAAc,EAEjFs3lB,IAAqBhp+B,EAAOwoZ,EAAWC,EAAS3lX,EAAMkj8B,EADxC8D,EAAgB3k9B,SAASpd,EAAK2H,WAAY,KAAKyV,SAASE,EAAM3V,WAAY,KAE5F,CAER,CAcA,SAASu59B,IAAkCa,EAAiB9p+B,EAAOwoZ,EAAWC,EAAS3lX,EAAMkj8B,EAAY3g9B,GACrG,GAAIyk9B,EAAgB9t+B,OAAS,EAAG,CAC5BqpB,EAASs/S,GAAkBt/S,GACrB2g9B,EAAWt0lB,YAAc,EACpBo4lB,EAAgB9t+B,OAASgq+B,EAAWt0lB,YAAes0lB,EAAWt0lB,YAAc,EAFnDrsX,EAGpCyk9B,EAAgB3k9B,SAASE,EAAM3V,WAAY,KAAKoX,OAChD,IAAK,IAAI/e,EAAO,EAAGA,EAAO+h+B,EAAgB3k9B,SAASE,EAAM3V,WAAY,KAAK1T,OAAQ+L,IAAQ,CAEtFih+B,IAAqBhp+B,EAAOwoZ,EAAWC,EAAS3lX,EAAMkj8B,EADxC8D,EAAgB3k9B,SAASE,EAAM3V,WAAY,KAAKyV,SAASpd,EAAK2H,WAAY,KAE5F,CACJ,CACJ,CASA,SAASi49B,IAAan/kB,EAAWC,GAC7B,OAAOA,GAAWD,GAAaC,CACnC,CAQA,SAAS+hlB,IAAa9C,GAGlB,OADaA,EAAaz+9B,QAAQqj+B,IAAsB,GAE5D,CA8BA,SAAS/D,IAAoB//kB,EAAWk/kB,GACpC,IACI6C,EADA5/kB,EAAW,IAAItwZ,KAAKmuZ,EAAUluZ,WAElC,GAAIot+B,EAAa1r+B,OAAS,EAAG,CAEzB,IADA,IAAIuw+B,EAAkB,GACbxn+B,EAAI,EAAGA,GAAK2i+B,EAAa1r+B,OAAS,EAAG+I,IAC1Cwl+B,EAASC,IAAa9C,EAAavi9B,SAASpgB,EAAE2K,WAAY,MAC1D689B,EAAgBvn+B,KAAKul+B,GAEzB,IAA8D,IAA1DgC,EAAgBhp+B,QAAQgk+B,IAAS58kB,EAASpuZ,WAC1C,GACIouZ,EAASruZ,QAAQquZ,EAASzvZ,UAAY,UACyB,IAA1Dqx+B,EAAgBhp+B,QAAQgk+B,IAAS58kB,EAASpuZ,WAE3D,CACA,OAAOouZ,CACX,CAOO,SAASi8kB,IAAsB/lH,GAClC,IAgBIv7xB,EAhBA0g5B,EAAa,CACbv3P,KAAM,KACNroa,SAAU,EACV5iT,MAAO,KACPswF,MAAO,KACPj4G,IAAK,GACLos+B,KAAM,KACNpm+B,MAAO,GACP8m+B,OAAQ,GACRzC,SAAU,GACVwC,QAAS,GACTh3lB,YAAa,KACb26lB,WAAY,IAEZjqH,EAAYvB,EAAMt11B,MAAM,KACxBih9B,EAAY,GA8ChB,GA5CApqH,EAAUnj3B,SAAQ,SAAU6jC,GAExB,QADA0p8B,EAAY1p8B,EAAKvX,MAAM,MACL,IACd,IAAK,QACD+5D,EAAOkn5B,EAAU,GACjBxG,EAAWly3B,MAAQmz3B,IAAgC3h5B,GACnD,MACJ,IAAK,QACD0g5B,EAAWnq+B,IAAM2w+B,EAAU,GAAGjh9B,MAAM,KACpCy68B,EAAWqG,WAAWrn+B,KAAKwn+B,EAAU,IACrC,MACJ,IAAK,aACDxG,EAAWE,SAAWsG,EAAU,GAAGjh9B,MAAM,KAAK1sB,IAAI4f,QAClDun9B,EAAWqG,WAAWrn+B,KAAKwn+B,EAAU,IACrC,MACJ,IAAK,UACDxG,EAAWnk+B,MAAQ2q+B,EAAU,GAAGjh9B,MAAM,KAAK1sB,IAAI4f,QAC/Cun9B,EAAWqG,WAAWrn+B,KAAKwn+B,EAAU,IACrC,MACJ,IAAK,YACDxG,EAAW0C,QAAU8D,EAAU,GAAGjh9B,MAAM,KAAK1sB,IAAI4f,QACjDun9B,EAAWqG,WAAWrn+B,KAAKwn+B,EAAU,IACrC,MACJ,IAAK,WACDxG,EAAW2C,OAAS6D,EAAU,GAAGjh9B,MAAM,KAAK1sB,IAAI4f,QAChDun9B,EAAWqG,WAAWrn+B,KAAKwn+B,EAAU,IACrC,MACJ,IAAK,WACDxG,EAAW5/pB,SAAWjhT,SAASqn9B,EAAU,GAAI,IAC7C,MACJ,IAAK,QACDxG,EAAWxi9B,MAAQ2B,SAASqn9B,EAAU,GAAI,IAC1C,MACJ,IAAK,WACDxG,EAAWt0lB,YAAcvsX,SAASqn9B,EAAU,GAAI,IAAM,GAAK,EAAIrn9B,SAASqn9B,EAAU,GAAI,IACtF,MACJ,IAAK,OACDxG,EAAWv3P,KAAO+9P,EAAU,GAC5B,MACJ,IAAK,OACDxG,EAAWiC,KAAOuE,EAAU,GAGxC,IACyB,YAApBxG,EAAWv3P,MAAuD,IAA/Bu3P,EAAWE,SAASlq+B,OAAe,CACvE,IAAIqpB,EAAQ2g9B,EAAWqG,WAAW9o+B,QAAQ,SAC1Cyi+B,EAAWqG,WAAWj+8B,OAAO/I,EAAO,EACxC,CACA,OAAO2g9B,CACX,CAUA,SAASmF,IAAmBxglB,EAAU7nX,EAAM0lX,GAExC,OAAQ1lX,GADM+j8B,IAAatC,kBAAkB55kB,IAChBA,GAAYnC,CAC7C,CAQA,SAAS6ilB,IAAgB3D,GACrB,IAAI+E,EAAW,CAAC,EAchB,OAbA/E,EAAazo+B,SAAQ,SAAU8O,EAASsX,GACpC,GAAIA,IAAUqi9B,EAAa1r+B,OAAS,EAAG,CAGnC,IAFA,IAAIqxC,EAAag67B,IAAS9j+B,QAAQwK,GAC9Bu3E,EAAOj4C,EACJi4C,EAAO,IAAM+h5B,IAAS9j+B,QAAQmk+B,EAAa,KAC9Cpi5B,IAEJmn5B,EAAS,GAAK1+9B,GAAWu3E,EAAOj4C,CACpC,MAEIo/7B,EAAS,GAAK1+9B,GAAWs59B,IAAS9j+B,QAAQmk+B,EAAcri9B,EAAQ,IAAOgi9B,IAAS9j+B,QAAQwK,EAEhG,IACO0+9B,CACX,CAiCA,SAASC,IAAU/hlB,EAAUgilB,GACzB,IACI7p8B,EADAwiD,EAAOqn5B,EAAgBnj+B,MAAM,GAE7Bk/9B,EAoBR,SAAoBz+3B,GACX2i4B,IAAoB/F,IAAa7t+B,YAAYixG,MAC9C2i4B,IAAoB/F,IAAa7t+B,YAAYixG,IAAgB483B,IAAavC,gBAAgBr63B,EAAa,IAE3G,IAAI0gT,EAAWiilB,IAAoB/F,IAAa7t+B,YAAYixG,IACxDvtF,EAAOutF,EAAY3vG,UAAYqwZ,EAASrwZ,UAC5C,OAAOkC,KAAKC,KAAKigB,EAAO4p8B,IAC5B,CA3BkBumB,CAAWlilB,GAEzB,IADA7nX,EAAOwiD,EAAKpzC,QACLpP,GAAM,CAIT,GAHIA,EAAO,IACPA,EAAOA,EAAO+j8B,IAAaxC,iBAAiB15kB,EAAU,GAAK,GAE3D7nX,IAAS4l8B,EACT,OAAO,EAEX5l8B,EAAOwiD,EAAKpzC,OAChB,CACA,OAAO,CACX,CAuCA,SAASg3X,IAAOr7Z,GACZ,IAAIi1B,EAAOj1B,EAAKqkC,QAChBrkC,EAAK7I,KAAK89B,EACd,CAqBA,SAASu+0B,IAAc12d,EAAUq7kB,GAC7B,IAAIhm+B,GAAQ,EACR0n+B,EAAe1B,EAAWnq+B,IAC1Bix+B,EAAgB9G,EAAWnk+B,MAC3Bkr+B,EAAelG,IAAanC,gBAAgB/5kB,EAAUq7kB,EAAWE,UACjEyG,EAAkB3G,EAAW0C,QAyBjC,OAxBA1C,EAAWqG,WAAWpt+B,SAAQ,SAAU6zH,GACpC,OAAQA,GACJ,IAAK,SA3QjB,SAAuBj3H,EAAK6r+B,GACxB,IAAIsF,EAAqB,GAUzB,OATAtF,EAAazo+B,SAAQ,SAAU8O,GAC3B,IAAIk/9B,EAA0Bl/9B,EAAQgC,MAAMm69B,KACL,IAAnC+C,EAAwBjx+B,OACxBgx+B,EAAmBho+B,KAAKio+B,EAAwB,IAGhDD,EAAmBho+B,KAAKio+B,EAAwB,GAExD,KACgF,IAAxED,EAAmBzp+B,QAAQgk+B,IAASpi9B,SAAStpB,EAAI6T,WAAY,KACzE,EAgQoBw99B,CAAcvilB,EAASpuZ,SAAUmr+B,KACjC1n+B,GAAQ,GAEZ,MACJ,IAAK,UACG6m+B,IAAa9B,WAAWp6kB,EAAUmilB,KAClC9s+B,GAAQ,GAEZ,MACJ,IAAK,cAxHjB,SAAmB2qZ,EAAUoilB,GACzB,IACIjq8B,EADAwiD,EAAOyn5B,EAAavj+B,MAAM,GAE1B4sX,EAAUywmB,IAAatC,kBAAkB55kB,GAE7C,IADA7nX,EAAOwiD,EAAKpzC,QACLpP,GAAM,CAIT,GAHIA,EAAO,IACPA,EAAOA,EAAOszV,EAAU,GAExBtzV,IAAS6nX,EAASzvZ,UAClB,OAAO,EAEX4nC,EAAOwiD,EAAKpzC,OAChB,CACA,OAAO,CACX,EA0GoBi77B,CAAUxilB,EAAUoilB,KACpB/s+B,GAAQ,GAEZ,MACJ,IAAK,YACG0s+B,IAAU/hlB,EAAUgilB,KACpB3s+B,GAAQ,GAIxB,IACOA,CACX,CAQO,SAAS8m+B,IAAgB5qlB,GAC5B,MAAqB,YAAjBA,EACO,IAAI+olB,IAER,IAAId,GACf,CACA,IACI4C,IAEAK,IACAD,IACAN,IALA+F,IAAsB,CAAC,EAEvBvF,IAAW,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAIhDE,IAAW,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAChDb,IAAgB,GAChBP,IAAU,CAAC,QAAS,SAAU,QAAS,SAAU,QACjDiH,IAAQ,eACRp5M,IAAK,YACLq5M,IAAQ,QACRC,IAAQ,eACRC,IAAO,aACPC,IAAQ,cACRrj+B,IAAS,eACTsj+B,IAAQ,cACRrH,IAAiB,CACjBsH,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,OAGJpE,IAAY,KAEZ0C,IAAuB,UAEvBpC,IAAuB,mBAOpB,SAAS+D,IAA4Bn1+B,GACxC,MAAO,CAACA,EAAKqe,iBACT+29B,IAAgBp1+B,EAAKqf,cAAgB,GACrC+19B,IAAgBp1+B,EAAK4f,cACrB,IACAw19B,IAAgBp1+B,EAAKsgB,eACrB809B,IAAgBp1+B,EAAK8gB,iBACrBs09B,IAAgBp1+B,EAAKghB,iBACrB,KAAKlb,KAAK,GAClB,CAQA,SAASsv+B,IAAgBp1+B,GACrB,OAAQ,IAAMA,GAAM0Q,OAAO,EAC/B,CCtlDA,IAAI2k+B,IAA2B,WAM3B,SAASA,EAAUpt8B,GACfnoC,KAAKw1+B,MAAQ,GACbx1+B,KAAKo54B,gBAAiB,EACtBp54B,KAAKmoC,OAASA,CAClB,CAmyCA,OAlyCAot8B,EAAU5k+B,UAAU8za,YAAc,SAAUrpT,EAAQq62B,EAAqB5H,GACrE,IAAIvu+B,EAAQU,KACRk2C,EAAQl2C,KAAKmoC,OAAOyz7B,WAAWhskB,YAC/Bx2W,EAAMp5C,KAAKmoC,OAAOyz7B,WAAW/rkB,UAC7B18L,EAASnzN,KAAKmoC,OAAOw+7B,YACrB/q2B,EAAY,GACZlvC,EAAO,EACPu5uB,GAAa,EACbmpJ,EAAqBpv9B,KAAKmoC,OAAOyh8B,aAAe5p+B,KAAKmoC,OAAOyh8B,aAAaxa,mBAAqB,GAC9Fh01B,EAAOh4H,OAAS,GAAK2oU,GAAkB3wM,EAAO,GAAG+3F,EAAOh9L,OACxD8vyB,GAAa,GAyDjB,IAvDA,IAAIx5f,EAAU,SAAU8c,GAChB08e,IACA18e,EAAQp2H,EAAOh9L,IAAMu2D,KAEzB68P,EAAU4R,EAAOu6oB,oBAAoBnspB,GACjCkspB,EACAt6oB,EAAOw6oB,sBAAsBpspB,EAASskpB,GAEhC1yoB,EAAOhzT,OAAOsykB,YAAet/Q,EAAOhzT,OAAO+27B,cAAc0W,oBAC/DrspB,EAAU4R,EAAO06oB,gBAAgBtspB,IAErC,IAAK,IAAIx3R,EAAQ,EAAGA,EAAQq95B,EAAmBhs9B,OAAQ2uD,IACuB,OAAtEw3R,EAAQ6loB,EAAmB7i8B,SAASwlC,EAAMj7C,WAAY,KAAKsoG,QAAyF,IAAtEmqO,EAAQ6loB,EAAmB7i8B,SAASwlC,EAAMj7C,WAAY,KAAKsoG,SACzImqO,EAAQ6loB,EAAmB7i8B,SAASwlC,EAAMj7C,WAAY,KAAKsoG,YAAS/7G,GAM5E,GAHK0oU,GAAkBwd,EAAQp2H,EAAOk4wB,kBAAuD,KAAnC9hpB,EAAQp2H,EAAOk4wB,kBACrE9hpB,EAAQp2H,EAAOk4wB,gBAAkB,MAEhCt/pB,GAAkBwd,EAAQp2H,EAAOk4wB,mBAAoBt/pB,GAAkBwd,EAAQp2H,EAAO2ixB,gBACrF36oB,EAAOhzT,OAAOo47B,YAAcploB,EAAOhzT,OAAOo47B,WAAWwV,QAAQpzjB,aAI/D,GAAIxnF,EAAOhzT,OAAOo47B,YAAcploB,EAAOhzT,OAAOo47B,WAAWwV,QAAQpzjB,aAC7D,IAAK52G,GAAkBwd,EAAQp2H,EAAOk4wB,kBAAoBt/pB,GAAkBwd,EAAQp2H,EAAO2ixB,eAUvF,IATA,IACI/0jB,EAAU,SAAUi1jB,GACpB,IAAIC,EAAM96oB,EAAOhzT,OAAOs+7B,gBAAgBrg+B,QAAO,SAAU8jC,GACrD,OAAOA,EAAKipL,EAAOp8C,WAAWr1K,UAAYs0+B,EAAW7ixB,EAAOp8C,WAAWr1K,YAAc,GACjFwoC,EAAKipL,EAAOh9L,MAAQ6/8B,EAAW7ixB,EAAOh9L,GAC9C,IACA6/8B,EAAWjxM,KAAQkxM,EAAI7y+B,OAAS,EAAK6y+B,EAAI,GAAGlxM,KAAO5pc,EAAO35I,eAC1D5lF,EAAUxvH,KAAK4p+B,EACnB,EACS1m+B,EAAK,EAAG4m+B,EATK/6oB,EAAOg7oB,mBAAmB5spB,EAAS,KAAMskpB,GAAa,GAStBv+9B,EAAK4m+B,EAAkB9y+B,OAAQkM,IAAM,CAEvFyxa,EADiBm1jB,EAAkB5m+B,GAEvC,KAEC,CACD,IAAI2m+B,EAAM96oB,EAAOhzT,OAAOs+7B,gBAAgBrg+B,QAAO,SAAU8jC,GACrD,OAAOA,EAAK5qC,EAAM6oC,OAAOw+7B,YAAYxw8B,MAAQozT,EAAQjqV,EAAM6oC,OAAOw+7B,YAAYxw8B,GAClF,IACAozT,EAAQw7c,KAAQkxM,EAAI7y+B,OAAS,EAAK6y+B,EAAI,GAAGlxM,KAAO5pc,EAAO35I,eACvD5lF,EAAUxvH,KAAKm9U,EACnB,MAGAA,EAAQw7c,KAAO5pc,EAAO35I,eACtB5lF,EAAUxvH,KAAKm9U,QA7BnB3tN,EAAYA,EAAUxiH,OAAO+hV,EAAOg7oB,mBAAmB5spB,EAAS,KAAMskpB,GAAa,GAgC3F,EACI1yoB,EAASn7V,KACJsP,EAAK,EAAG8m+B,EAAWh72B,EAAQ9rH,EAAK8m+B,EAAShz+B,OAAQkM,IAAM,CAE5Dm9T,EADc2pqB,EAAS9m+B,GAE3B,CACAtP,KAAKmoC,OAAOs+7B,gBAAkB,GAC9B,IAAIv9oB,EAAYttN,EAAUx1H,QAAO,SAAU8jC,GACvC,OAAQA,EAAK5qC,EAAM6oC,OAAOw+7B,YAAY0P,QAC1C,IACAr2+B,KAAKmoC,OAAOs+7B,gBAAkBzm+B,KAAKs2+B,aAAapg8B,EAAOkD,EAAK8vS,GAI5D,IAHA,IAAIqtpB,EAAY362B,EAAUx1H,QAAO,SAAU8jC,GACvC,OAAOA,EAAK5qC,EAAM6oC,OAAOw+7B,YAAY0P,QACzC,IACS/g8B,EAAK,EAAGkh8B,EAAcD,EAAWjh8B,EAAKkh8B,EAAYpz+B,OAAQkyC,IAAM,CACrE,IAAImh8B,EAAWD,EAAYlh8B,GAC3B,GAAImh8B,EAAStjxB,EAAO4qwB,UACM1B,IAAe,IAAI569B,KAAKg1+B,EAAStjxB,EAAOp8C,WAAWr1K,YACrE269B,IAAe,IAAI569B,KAAKg1+B,EAAStjxB,EAAOu5K,SAAShrY,cAEjD+0+B,EAAStjxB,EAAOp8C,WAAaslzB,IAAeoa,EAAStjxB,EAAOp8C,YAC5D0/zB,EAAStjxB,EAAOu5K,SAAW2vlB,IAAaA,IAAeoa,EAAStjxB,EAAOu5K,UAAW,GAG9F,CAEA,OADA1sY,KAAKmoC,OAAOuu8B,eAAiBH,EACtBrtpB,CACX,EACAqspB,EAAU5k+B,UAAU+k+B,oBAAsB,SAAUxspB,GAOhD,MAN4D,kBAAjDA,EAAUlpV,KAAKmoC,OAAOw+7B,YAAY5vzB,aACzCmyK,EAAUlpV,KAAKmoC,OAAOw+7B,YAAY5vzB,WAAaslzB,IAAuBnzoB,EAAUlpV,KAAKmoC,OAAOw+7B,YAAY5vzB,aAElD,kBAA/CmyK,EAAUlpV,KAAKmoC,OAAOw+7B,YAAYj6lB,WACzCxjD,EAAUlpV,KAAKmoC,OAAOw+7B,YAAYj6lB,SAAW2vlB,IAAuBnzoB,EAAUlpV,KAAKmoC,OAAOw+7B,YAAYj6lB,WAEnGxjD,CACX,EACAqspB,EAAU5k+B,UAAUgm+B,mBAAqB,SAAUC,QACvB,IAApBA,IAA8BA,EAAkB52+B,KAAKmoC,OAAO0u8B,YAEhE,IADA,IAAIj72B,EAAY,GACPtsH,EAAK,EAAGwn+B,EAAoBF,EAAiBtn+B,EAAKwn+B,EAAkB1z+B,OAAQkM,IAAM,CACvF,IAAIwqV,EAAUg9oB,EAAkBxn+B,IAC3By8T,GAAkB+tB,EAAQ95V,KAAKmoC,OAAOw+7B,YAAY0E,kBACnDt/pB,GAAkB+tB,EAAQ95V,KAAKmoC,OAAOw+7B,YAAYmP,eAClDl62B,EAAYA,EAAUxiH,OAAOpZ,KAAKm2+B,mBAAmBr8oB,IAGrDl+N,EAAUxvH,KAAK0tV,EAEvB,CACA,OAAOl+N,CACX,EACA252B,EAAU5k+B,UAAUom+B,uBAAyB,SAAUlJ,GACnD,IAAI3j8B,EAAOlqC,KAAKmoC,OAAO0u8B,WAAWz99B,OAAOpZ,KAAKmoC,OAAOou8B,WACjD362B,EAAY57H,KAAKykb,YAAYv6Y,GAAM,EAAM2j8B,GAC7C7t+B,KAAKmoC,OAAOkxK,OAAOtiL,IAAiB,CAAEig9B,cAAep72B,GACzD,EACA252B,EAAU5k+B,UAAUsm+B,gBAAkB,SAAU/tpB,GAC5C,IAAI/1H,EAASnzN,KAAKmoC,OAAOw+7B,YAGzB,GAFAz9oB,EAAU/1H,EAAO+jxB,eAAiBhupB,EAAU/1H,EAAO+jxB,gBAAkBhupB,EAAU/1H,EAAOgkxB,aACtFjupB,EAAU/1H,EAAOgkxB,aAAejupB,EAAU/1H,EAAOgkxB,cAAgBjupB,EAAU/1H,EAAO+jxB,eAC9El3+B,KAAKmoC,OAAOmyI,SAAU,CACtB,IAAI88zB,EAAUlupB,EAAU/1H,EAAO+jxB,eAC3BG,EAAQnupB,EAAU/1H,EAAOgkxB,aAC7BjupB,EAAU/1H,EAAOp8C,WAAa/2K,KAAKmoC,OAAO+07B,SAASzu5B,QAAQy6Q,EAAU/1H,EAAOp8C,WAAY/2K,KAAKmoC,OAAOmyI,SAAU88zB,GAC9GlupB,EAAU/1H,EAAOu5K,SAAW1sY,KAAKmoC,OAAO+07B,SAASzu5B,QAAQy6Q,EAAU/1H,EAAOu5K,SAAU1sY,KAAKmoC,OAAOmyI,SAAU+8zB,EAC9G,CACJ,EACA9B,EAAU5k+B,UAAUgl+B,sBAAwB,SAAU5+8B,EAAO828B,GACzD,IAAI16wB,EAASnzN,KAAKmoC,OAAOw+7B,YACrB5v8B,EAAMo8L,EAAO4qwB,YAGb8P,GAAe7t+B,KAAKmoC,OAAOmyI,UAC3BvjJ,EAAMo8L,EAAOp8C,WAAa/2K,KAAKmoC,OAAO+07B,SAASzu5B,QAAQ13C,EAAMo8L,EAAOp8C,WAAY82zB,EAAa7t+B,KAAKmoC,OAAOmyI,UACzGvjJ,EAAMo8L,EAAOu5K,SAAW1sY,KAAKmoC,OAAO+07B,SAASzu5B,QAAQ13C,EAAMo8L,EAAOu5K,SAAUmhmB,EAAa7t+B,KAAKmoC,OAAOmyI,YAE/FuzzB,GAAe7t+B,KAAKmoC,OAAOmyI,UACjCvjJ,EAAMo8L,EAAOp8C,WAAa/2K,KAAKmoC,OAAO+07B,SAAS9p8B,IAAI2D,EAAMo8L,EAAOp8C,WAAY/2K,KAAKmoC,OAAOmyI,UACxFvjJ,EAAMo8L,EAAOu5K,SAAW1sY,KAAKmoC,OAAO+07B,SAAS9p8B,IAAI2D,EAAMo8L,EAAOu5K,SAAU1sY,KAAKmoC,OAAOmyI,WAE/EuzzB,IAAgB7t+B,KAAKmoC,OAAOmyI,WACjCvjJ,EAAMo8L,EAAOp8C,WAAa/2K,KAAKmoC,OAAO+07B,SAAS/p8B,OAAO4D,EAAMo8L,EAAOp8C,WAAY82zB,GAC/E928B,EAAMo8L,EAAOu5K,SAAW1sY,KAAKmoC,OAAO+07B,SAAS/p8B,OAAO4D,EAAMo8L,EAAOu5K,SAAUmhmB,IAEnF,EACA0H,EAAU5k+B,UAAUkl+B,gBAAkB,SAAU9+8B,EAAO2n4B,QACjC,IAAdA,IAAwBA,GAAY,GACxC,IAAIvrsB,EAASnzN,KAAKmoC,OAAOw+7B,YACzB,GAAI5v8B,EAAMo8L,EAAO+jxB,gBAAkBng9B,EAAMo8L,EAAOgkxB,aAAc,CAC1D,IAAID,EAAgBng9B,EAAMo8L,EAAO+jxB,gBAAkBng9B,EAAMo8L,EAAOgkxB,aAC5DA,EAAcpg9B,EAAMo8L,EAAOgkxB,cAAgBpg9B,EAAMo8L,EAAO+jxB,eACxDx4E,EACI1+5B,KAAKmoC,OAAOmyI,UACZvjJ,EAAMo8L,EAAOp8C,WAAa/2K,KAAKmoC,OAAO+07B,SAASzu5B,QAAQ13C,EAAMo8L,EAAOp8C,WAAYmg0B,EAAel3+B,KAAKmoC,OAAOmyI,UAC3GvjJ,EAAMo8L,EAAOu5K,SAAW1sY,KAAKmoC,OAAO+07B,SAASzu5B,QAAQ13C,EAAMo8L,EAAOu5K,SAAUyqmB,EAAan3+B,KAAKmoC,OAAOmyI,UACrGvjJ,EAAMo8L,EAAOp8C,WAAa/2K,KAAKmoC,OAAO+07B,SAAS/p8B,OAAO4D,EAAMo8L,EAAOp8C,WAAY/2K,KAAKmoC,OAAOmyI,UAC3FvjJ,EAAMo8L,EAAOu5K,SAAW1sY,KAAKmoC,OAAO+07B,SAAS/p8B,OAAO4D,EAAMo8L,EAAOu5K,SAAU1sY,KAAKmoC,OAAOmyI,YAGvFvjJ,EAAMo8L,EAAOp8C,WAAa/2K,KAAKmoC,OAAO+07B,SAAS/p8B,OAAO4D,EAAMo8L,EAAOp8C,WAAYmg0B,GAC/Eng9B,EAAMo8L,EAAOu5K,SAAW1sY,KAAKmoC,OAAO+07B,SAAS/p8B,OAAO4D,EAAMo8L,EAAOu5K,SAAUyqmB,KAI/Epg9B,EAAMo8L,EAAOp8C,WAAa/2K,KAAKmoC,OAAO+07B,SAAS9p8B,IAAI2D,EAAMo8L,EAAOp8C,WAAYmg0B,GAC5Eng9B,EAAMo8L,EAAOu5K,SAAW1sY,KAAKmoC,OAAO+07B,SAAS9p8B,IAAI2D,EAAMo8L,EAAOu5K,SAAUyqmB,GACpEn3+B,KAAKmoC,OAAOmyI,WACZvjJ,EAAMo8L,EAAOp8C,WAAa/2K,KAAKmoC,OAAO+07B,SAASzu5B,QAAQ13C,EAAMo8L,EAAOp8C,WAAYmg0B,EAAel3+B,KAAKmoC,OAAOmyI,UAC3GvjJ,EAAMo8L,EAAOu5K,SAAW1sY,KAAKmoC,OAAO+07B,SAASzu5B,QAAQ13C,EAAMo8L,EAAOu5K,SAAUyqmB,EAAan3+B,KAAKmoC,OAAOmyI,WAGjH,MACSt6K,KAAKmoC,OAAOmyI,WACbokvB,GACA3n4B,EAAMo8L,EAAOp8C,WAAa/2K,KAAKmoC,OAAO+07B,SAAS/p8B,OAAO4D,EAAMo8L,EAAOp8C,WAAY/2K,KAAKmoC,OAAOmyI,UAC3FvjJ,EAAMo8L,EAAOu5K,SAAW1sY,KAAKmoC,OAAO+07B,SAAS/p8B,OAAO4D,EAAMo8L,EAAOu5K,SAAU1sY,KAAKmoC,OAAOmyI,YAGvFvjJ,EAAMo8L,EAAOp8C,WAAa/2K,KAAKmoC,OAAO+07B,SAAS9p8B,IAAI2D,EAAMo8L,EAAOp8C,WAAY/2K,KAAKmoC,OAAOmyI,UACxFvjJ,EAAMo8L,EAAOu5K,SAAW1sY,KAAKmoC,OAAO+07B,SAAS9p8B,IAAI2D,EAAMo8L,EAAOu5K,SAAU1sY,KAAKmoC,OAAOmyI,YAG5F,OAAOvjJ,CACX,EACAw+8B,EAAU5k+B,UAAU2m+B,kBAAoB,SAAUb,GAC9C,IAGIc,EAHApkxB,EAASnzN,KAAKmoC,OAAOw+7B,YACrB6Q,EAASf,EAAStjxB,EAAOp8C,WACzB0g0B,EAAOhB,EAAStjxB,EAAOu5K,SAE3B,GAAI1sY,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,EAAG,CAC1D,IAAI8mC,EAAOlqC,KAAK03+B,uBAAuBjB,GACvCc,EAAev3+B,KAAKmoC,OAAOyh8B,aAAaC,kBAAkBt98B,SAAS2d,EAAKpzB,WAAY,IACxF,CAEA,IADA,IAAI6g+B,EAAclu5B,GAAO,GAAIzpF,KAAKmoC,OAAOuu8B,eAAgB,MAAM,GACtDpn+B,EAAK,EAAGso+B,EAAgBD,EAAaro+B,EAAKso+B,EAAcx0+B,OAAQkM,IAAM,CAC3E,IAAIuo+B,EAAaD,EAActo+B,GAC/B,GAAIuo+B,EAAW1kxB,EAAO4qwB,UACI8Z,EAAW1kxB,EAAOu5K,SAAShrY,UAC7C269B,IAAe,IAAI569B,KAAKo2+B,EAAW1kxB,EAAOu5K,SAAShrY,YAAYA,YAE/Dm2+B,EAAW1kxB,EAAOp8C,WAAaslzB,IAAewb,EAAW1kxB,EAAOp8C,YAChE8g0B,EAAW1kxB,EAAOu5K,SAAW2vlB,IAAaA,IAAewb,EAAW1kxB,EAAOu5K,UAAW,GAGlG,CACA,OAAO1sY,KAAKs2+B,aAAakB,EAAQC,EAAME,EAAaJ,EACxD,EACAhC,EAAU5k+B,UAAU2l+B,aAAe,SAAU1mlB,EAAWC,EAASm2kB,EAAc8R,QACtD,IAAjB9R,IAA2BA,EAAehm+B,KAAKmoC,OAAOs+7B,iBAC1D,IAAIx98B,EAAYjpB,KAAKmoC,OAAO4v8B,WAAW5M,iBAAiBv7kB,EAAWC,GAC/DzpZ,EAAS,IAAIi9a,GAAY,CAAEvrT,KAAMku2B,IAAgBvxjB,cAAa,IAAIjB,IAAQ3qX,MAAM5/B,IAIpF,OAHI6u9B,IACA1x+B,EAASpG,KAAKg4+B,uBAAuBF,EAAgB1x+B,IAElDpG,KAAKi4+B,WAAW7x+B,EAC3B,EACAmv+B,EAAU5k+B,UAAUun+B,oBAAsB,SAAUtB,EAAiBhnlB,EAAWC,GAC5E,IAAIvwZ,EAAQU,KACRm4+B,EAAiB,GAarB,OAXIA,EADAvolB,GAAaC,EACI7vZ,KAAKs2+B,aAAa1mlB,EAAWC,EAAS+mlB,GAElDhnlB,IAAcC,EACF+mlB,EAAgBxw+B,QAAO,SAAU/F,GAAK,OAAOA,EAAEf,EAAM6oC,OAAOw+7B,YAAY5vzB,YAAc64O,CAAW,KAE5GA,GAAaC,EACF+mlB,EAAgBxw+B,QAAO,SAAU/F,GAAK,OAAOA,EAAEf,EAAM6oC,OAAOw+7B,YAAYj6lB,UAAYmjB,CAAS,IAG7F+mlB,EAEd52+B,KAAKi4+B,WAAWE,EAC3B,EACA5C,EAAU5k+B,UAAUqn+B,uBAAyB,SAAUF,EAAgB9R,QAC9C,IAAjBA,IAA2BA,EAAehm+B,KAAKmoC,OAAOs+7B,iBAG1D,IAFA,IAAIx98B,EAAY,CAAC,EACbmm8B,EAAqBpv9B,KAAKmoC,OAAOyh8B,aAAaxa,mBACzCr95B,EAAQ,EAAGA,EAAQq95B,EAAmBhs9B,OAAQ2uD,IACnD9oC,EAAUmm8B,EAAmB7i8B,SAASwlC,EAAMj7C,WAAY,KAAKsoG,OAAS043B,EAAeM,WAAW7r9B,SAASwlC,EAAMj7C,WAAY,KAE/H,IAAIvS,EAAO9E,OAAO8E,KAAK0kB,GACnBov9B,EAAqBrS,EAAa5/9B,QAAO,SAAUqw+B,GAAY,OAAOly+B,EAAK6lF,OAAM,SAAU99E,GAC3F,OAAImq+B,EAAS,GAAKnq+B,aAAgBoE,MACvB+l+B,EAAS,GAAKnq+B,GAAK3B,QAAQse,EAAU,GAAK3c,KAAS,EAGnDmq+B,EAAS,GAAKnq+B,KAAS2c,EAAU,GAAK3c,EAErD,GAAI,IACJ,OAAO+r+B,CACX,EACA9C,EAAU5k+B,UAAUsn+B,WAAa,SAAUK,GACvC,IAAIt4+B,KAAKmoC,OAAOi07B,cAAcjqX,cAAqE,oBAA5CnymB,KAAKmoC,OAAOi07B,cAAcjqX,cAAoF,kBAA5CnymB,KAAKmoC,OAAOi07B,cAAcjqX,aAG9I,CACD,IAAIomY,EAAkBv4+B,KAAKmoC,OAAOw+7B,YAClC2R,EAAuBpq9B,MAAK,SAAUjY,EAAGC,GACrC,IAAI9T,EAAK6T,EAAEsi+B,EAAgBxh0B,WACvB10K,EAAK6T,EAAEqi+B,EAAgBxh0B,WAC3B,OAAO30K,EAAGV,UAAYW,EAAGX,SAC7B,GACJ,MATI42+B,EAAyBt4+B,KAAKw4+B,cAAcF,GAUhD,OAAOA,CACX,EACA/C,EAAU5k+B,UAAU8n+B,eAAiB,SAAUzS,GAC3C,IAAIhm+B,KAAKmoC,OAAOi07B,cAAcjqX,cAAqE,oBAA5CnymB,KAAKmoC,OAAOi07B,cAAcjqX,cAAoF,kBAA5CnymB,KAAKmoC,OAAOi07B,cAAcjqX,aAG9I,CACD,IAAIumY,EAAiB14+B,KAAKmoC,OAAOw+7B,YACjCX,EAAa938B,MAAK,SAAUyq9B,EAASC,GACjC,IAAIC,EAAKF,EAAQD,EAAe3h0B,WAC5B+h0B,EAAKF,EAAQF,EAAe3h0B,WAC5Bgi0B,EAAKJ,EAAQD,EAAehsmB,SAC5BssmB,EAAKJ,EAAQF,EAAehsmB,SAC5BtqY,EAAK22+B,EAAGr3+B,UAAYm3+B,EAAGn3+B,UACvBW,EAAK22+B,EAAGt3+B,UAAYo3+B,EAAGp3+B,UAC3B,OAAQm3+B,EAAGn3+B,UAAYo3+B,EAAGp3+B,WAAaW,EAAKD,CAChD,GACJ,MAbI4j+B,EAAehm+B,KAAKw4+B,cAAcxS,GActC,OAAOA,CACX,EACAuP,EAAU5k+B,UAAU6n+B,cAAgB,SAAUxS,GAC1C,GAAwD,oBAA5Chm+B,KAAKmoC,OAAOi07B,cAAcjqX,aAClC,OAAOnymB,KAAKmoC,OAAOi07B,cAAcjqX,aAAaxymB,KAAKK,KAAKmoC,OAAQ697B,GAE/D,GAAwD,kBAA5Chm+B,KAAKmoC,OAAOi07B,cAAcjqX,aAA4B,CACnE,IAAItmS,EAAS7rU,KAAKmoC,OAAOi07B,cAAcjqX,aAAax/kB,MAAM,KACtDsm9B,OAAS,EAIb,GAHKltqB,GAAkB/6S,UACnBio9B,EAASjo9B,OAAO66S,EAAOA,EAAOzoU,OAAS,KAEvC61+B,EACA,OAAOA,EAAOjT,EAEtB,CACA,OAAOA,CACX,EACAuP,EAAU5k+B,UAAUuo+B,yBAA2B,SAAUlw9B,GAErD,IADA,IAAIq6P,EAAQz/Q,KAAKqpC,IAAI9zB,MAAMvV,KAAMolB,GACxB7c,EAAI,EAAGA,EAAIk3Q,EAAOl3Q,IACvB,IAA0B,IAAtB6c,EAAMre,QAAQwB,GACd,OAAOA,EAGf,OAAOk3Q,EAAQ,CACnB,EACAkytB,EAAU5k+B,UAAUwo+B,gBAAkB,SAAUpi9B,GAC5C,IAAI4v8B,EAAc3m+B,KAAKmoC,OAAOw+7B,YAC1Bz87B,EAAO,GACPkv8B,EAAiBri9B,EAAM4v8B,EAAY5vzB,WACnCsi0B,EAAeti9B,EAAM4v8B,EAAYj6lB,SAGrC,GAFsB2vlB,IAAe,IAAI569B,KAAK23+B,EAAe13+B,YACzD269B,IAAe,IAAI569B,KAAK43+B,EAAa33+B,YAQrC,IANA,IAAIw0C,EAAQ,IAAIz0C,KAAK23+B,EAAe13+B,WAChC03C,EAAMij7B,IAAaA,IAAe,IAAI569B,KAAK23+B,EAAe13+B,YAAa,GACvEmuZ,EAAuC,IAA5BwplB,EAAal29B,YAAkD,IAA9Bk29B,EAAaj29B,aACzDi29B,EAAehd,IAAagd,EAAc,GAC1C5s9B,EAAQ,EACR6s9B,EV9FT,SAAsB1plB,EAAWC,GACpC,IAAI0plB,EAAU9qB,IAAU,IAAIht9B,KAAKmuZ,IAC7BljB,EAAU+hlB,IAAU,IAAIht9B,KAAKouZ,IACjC,OAAOjsZ,KAAKmgB,OAAO2oX,EAAQhrY,UAAY63+B,EAAQ73+B,WAAags9B,IAChE,CU0F8B2O,CAAkB+c,EAAe13+B,UAAWmuZ,EAAQnuZ,WAC/D03C,GAAOig8B,GAAgBnj8B,EAAMx0C,YAAc03C,EAAI13C,WAAW,CAC7D,IAAIu0+B,EAAMxs5B,GAAO,CAAC,EAAG1yD,GACrBk/8B,EAAItP,EAAY5vzB,WAAa7gI,EAC7B+/7B,EAAItP,EAAYj6lB,SAAWtzV,EAC3B687B,EAAI/r8B,KAAO,CAAEzd,MAAOA,EAAO7B,MAAO0u9B,GAClCrD,EAAIlxM,KAAO/kyB,KAAKwhN,eAChBy0xB,EAAIxgY,WAAY,EAChBvrkB,EAAK99B,KAAK6p+B,GACV//7B,EAAQkD,EACHij7B,IAAe,IAAI569B,KAAKy0C,EAAMx0C,YAAYA,YAAc269B,IAAe,IAAI569B,KAAK43+B,EAAa33+B,YAAYA,WACrG03C,EAAI13C,YAAc23+B,EAAa33+B,WACpC03C,EAAM,IAAI33C,KAAKy0C,EAAMx0C,WACrB03C,EAAM,IAAI33C,KAAK23C,EAAI32C,SAAS42+B,EAAal29B,WAAYk29B,EAAaj29B,aAAci29B,EAAah29B,gBAG7F+1B,EAAMij7B,IAAaA,IAAe,IAAI569B,KAAKy0C,EAAMx0C,YAAa,GAElE+qB,GACJ,MAGAyd,EAAK99B,KAAK2qB,GAEd,OAAOmT,CACX,EACAqr8B,EAAU5k+B,UAAU6o+B,WAAa,SAAUzi9B,EAAO0i9B,GAC9C,IAAItmxB,EAASnzN,KAAKmoC,OAAOw+7B,YACrBzw7B,EAAQmm7B,IAAetl8B,EAAMo8L,EAAOp8C,YAAYr1K,UAChD03C,EAAMij7B,IAAetl8B,EAAMo8L,EAAOu5K,UAAUhrY,UAC5C269B,IAAiBtl8B,EAAMo8L,EAAOu5K,WAAa,IAE3CtzV,EAAMlD,GADFw2C,EAAO2v4B,IAAaA,IAAetl8B,EAAMo8L,EAAOu5K,WAAY,GAAGhrY,WAC9Cw0C,EAAQw2C,GAEjC,IAAIgt5B,EAAWxj8B,EACXyj8B,EAASvg8B,EACTshhB,EAAS,GACb,GAAIxkhB,IAAUkD,EAAK,CACXlD,EAAQuj8B,EAAW,GAAG/3+B,YACtBw0C,EAAQuj8B,EAAW,GAAG/3+B,WAEtB03C,EAAMqg8B,EAAWA,EAAWr2+B,OAAS,GAAG1B,YACxC03C,EAAMqg8B,EAAWA,EAAWr2+B,OAAS,GAAG1B,WAG5C,IADA,IAAIk4+B,EAAS1j8B,EACJ6b,EAAQ,EAAGA,EAAQ/xD,KAAKw1+B,MAAMpy+B,OAAQ2uD,IAAS,CACpD,IAAI8n7B,EAAO75+B,KAAKw1+B,MAAMjp9B,SAASwlC,EAAMj7C,WAAY,KACjD,GAAgC,aAA5B9W,KAAKmoC,OAAOw/W,aAA0D,qBAA5B3nZ,KAAKmoC,OAAOw/W,aACnD3nZ,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMw75B,QAAU95+B,KAAKmoC,OAAOuz7B,kBAAkBqe,YAAa,CAE5F,IADA,IAAIC,EAAY,GACP1q+B,EAAK,EAAG2q+B,EAASJ,EAAMvq+B,EAAK2q+B,EAAO72+B,OAAQkM,IAAM,CACtD,IAAI2R,EAAIg59B,EAAO3q+B,GACf0q+B,EAAU5t+B,KAAK,IAAI3K,KAAKwf,GAC5B,CACA,IAAIi59B,EAAgBl6+B,KAAKm6+B,iBAAiBH,GAC1C,IAAKjuqB,GAAkBmuqB,IAAkBA,EAAc92+B,OAAS,EAAG,CAC/Dy2+B,EAAO,GACP,IAAK,IAAIvk8B,EAAK,EAAG8k8B,EAAkBF,EAAe5k8B,EAAK8k8B,EAAgBh3+B,OAAQkyC,IAAM,CACjF,IAAIp1C,EAAOk6+B,EAAgB9k8B,GAC3Buk8B,EAAKzt+B,KAAKlM,EAAKwB,UACnB,CACJ,CACJ,CACA,GAAsB,kBAAVm4+B,EAAoB,CAC5B,IAAInt5B,EAAOmt5B,GACXA,EAAO,IACFzt+B,KAAKsgF,EACd,CACA,IAAI2t5B,EAAYR,EAAK,GAErB,IADAD,EAAUA,GAAUS,GAAajh8B,GAAOih8B,EAAaA,EAAYT,GACpDxg8B,GAAOih8B,EAAYjh8B,EAC5B,MAEJ,IAAKp5C,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMw75B,QAAU95+B,KAAKmoC,OAAOuz7B,kBAAkBqe,aACjD,aAA5B/5+B,KAAKmoC,OAAOw/W,aAA0D,qBAA5B3nZ,KAAKmoC,OAAOw/W,YAAoC,CAC1F,IAAIlzW,EAAaol8B,EAAKlv+B,QAAQiv+B,GAC9B,IAAoB,IAAhBnl8B,EAAmB,CACnB,IAAIC,EAAWml8B,EAAKlv+B,QAAQyuC,GACxBkh8B,GAAyB,IAAd5l8B,EAEX9pB,GADJ8pB,EAAW4l8B,EAAW5l8B,EAAWml8B,EAAKz2+B,OAAS,GACtBqxC,EAAc,EACnCo7mB,EAAUgqV,EAAKtt9B,SAASkoB,EAAW39B,WAAY,OAAS4i+B,EACxD3p5B,EAAW8p5B,EAAKtt9B,SAASmoB,EAAS59B,WAAY,OAAS6i+B,EAE3D,GADAj/a,EAAOtujB,KAAKpM,KAAKu6+B,iBAAiBxj9B,EAAO8i9B,EAAKtt9B,SAASkoB,EAAW39B,WAAY,KAAM+i+B,EAAKtt9B,SAASmoB,EAAS59B,WAAY,KAAM8T,EAAOiloB,EAAQ9/jB,IACxIuq5B,EACA,KAER,CACJ,MAEI,GAAIt6+B,KAAKw6+B,YAAYZ,EAAQC,EAAK,GAAIA,EAAKA,EAAKz2+B,OAAS,IAAK,CAE1D,IADA,IAAIq3+B,EAAY,GACPtu+B,EAAI,EAAGA,EAAI0t+B,EAAKz2+B,OAAQ+I,IACzBnM,KAAKw6+B,YAAYX,EAAKtt9B,SAASpgB,EAAE2K,WAAY,KAAM4i+B,EAAUC,IAC7Dc,EAAUru+B,KAAKyt+B,EAAKtt9B,SAASpgB,EAAE2K,WAAY,MAGnD,GAAI2j+B,EAAUr3+B,OAAS,EACnB,GAAKpD,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMw75B,OAMrC,IAAK,IAAIpk8B,EAAK,EAAGgl8B,EAAcD,EAAW/k8B,EAAKgl8B,EAAYt3+B,OAAQsyC,IAAM,CACrE,IAAIil8B,EAASD,EAAYhl8B,GACzBglhB,EAAOtujB,KAAKpM,KAAKu6+B,iBAAiBxj9B,EAAO4j9B,EAAQA,EAAQ,EAAIA,IAAWjB,EAAYiB,IAAWhB,GACnG,KAT6C,CACzC9pV,EAAU4qV,EAAU,KAAOf,EAC3B3p5B,EAAW0q5B,EAAUA,EAAUr3+B,OAAS,KAAOu2+B,EACnDj/a,EAAOtujB,KAAKpM,KAAKu6+B,iBAAiBxj9B,EAAO0j9B,EAAU,GAAIA,EAAUA,EAAUr3+B,OAAS,GAAIq3+B,EAAUr3+B,OAAQyspB,EAAQ9/jB,GACtH,CAQR,CAER,CACJ,MAEI2qe,EAAOtujB,KAAKpM,KAAKu6+B,iBAAiBxj9B,EAAOmf,EAAOkD,EAAK,GAAG,GAAO,IAEnE,OAAOshhB,CACX,EACA66a,EAAU5k+B,UAAU4p+B,iBAAmB,SAAUxj9B,EAAOmf,EAAOkD,EAAKxuB,EAAOiloB,EAAQ9/jB,GAC/E,IAAIojI,EAASnzN,KAAKmoC,OAAOw+7B,YACrBtm+B,EAAIopF,GAAO,CAAC,EAAG1yD,EAAO,MAAM,GAC5BmT,EAAO,CAAEtf,MAAOA,EAAOiloB,OAAQA,EAAQ9/jB,QAASA,GAMpD,OALA7lD,EAAKipL,EAAOp8C,WAAahgJ,EAAMo8L,EAAOp8C,WACtC7sI,EAAKipL,EAAOu5K,SAAW31W,EAAMo8L,EAAOu5K,SACpCrsY,EAAE6pC,KAAOA,EACT7pC,EAAE8yN,EAAOp8C,WAAa,IAAIt1K,KAAKy0C,GAC/B71C,EAAE8yN,EAAOu5K,SAAW,IAAIjrY,KAAK23C,GACtB/4C,CACX,EACAk1+B,EAAU5k+B,UAAU6p+B,YAAc,SAAUt6+B,EAAMg2C,EAAOkD,GACrD,OAAOlD,GAASh2C,GAAQA,GAAQk5C,CACpC,EACAm87B,EAAU5k+B,UAAUiq+B,yBAA2B,SAAUvy+B,GAErD,GADArI,KAAK2k+B,iCACD3k+B,KAAKmoC,OAAOo/7B,iBAAiBnk+B,QAAU,EACvCpD,KAAKmoC,OAAOo/7B,iBAAiBn79B,KAAK/D,OAEjC,CACD,IAAIwy+B,EAAoB76+B,KAAKmoC,OAAOo/7B,iBAAiBnh+B,QAAO,SAAU+O,GAClE,OAAOA,EAAQmd,aAAa,eAAiBjqB,EAAOiqB,aAAa,YACrE,IACA,GAAIuo9B,EAAkBz3+B,QAAU,EAG5B,IAFA,IAAI03+B,EAAkB,kBAAoBzy+B,EAAOiqB,aAAa,aAAe,KAEpEhjB,EAAK,EAAGyr+B,EADG,GAAGnq+B,MAAMjR,KAAKK,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiBsq+B,IACrBxr+B,EAAKyr+B,EAAgB33+B,OAAQkM,IAAM,CACjF,IAAI6F,EAAU4l+B,EAAgBzr+B,GAC9BtP,KAAKmoC,OAAOo/7B,iBAAiBn79B,KAAK+I,EACtC,KAEC,CACD,IAAIoy9B,EAAmBvn+B,KAAKmoC,OAAOo/7B,iBAAiBnh+B,QAAO,SAAU+O,GACjE,OAAOA,EAAQmd,aAAa,eAAiBjqB,EAAOiqB,aAAa,YACrE,IACAtyB,KAAKmoC,OAAOo/7B,iBAAmBA,CACnC,CACJ,CAIA,OAHIl/9B,GAAUrI,KAAKmoC,OAAOo/7B,iBAAiBnk+B,OAAS,GAChDpD,KAAKmm+B,wBAAwBnm+B,KAAKmoC,OAAOo/7B,kBAAkB,GAExDvn+B,KAAKmoC,OAAOo/7B,gBACvB,EACAgO,EAAU5k+B,UAAU259B,kBAAoB,WACpC,IAAIhr+B,EAAQU,KACRg7+B,EAAc,GACdC,EAAgB,GAWpB,MAVyB,GAAGrq+B,MAAMjR,KAAKK,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiB,IAAMq/Z,MAC/Dzpa,QAAO,SAAU+O,GAIF,IAHT6l+B,EAAY50+B,QAAO,SAAU2wB,GAC9C,OAAOA,EAAMguwB,OAAS5vxB,EAAQmd,aAAa,YAC/C,IACmBlvB,QACf43+B,EAAY5u+B,KAAK9M,EAAM2n+B,eAAe9x9B,EAAQmd,aAAa,eAE/D2o9B,EAAc7u+B,KAAK+I,EACvB,IACO,CACH4hB,MAAOik9B,EAAY53+B,OAAS,EAAI43+B,EAAcA,EAAY,GAC1D7l+B,QAAS8l+B,EAAc73+B,OAAS,EAAI63+B,EAAgBA,EAAc,GAE1E,EACA1F,EAAU5k+B,UAAUg09B,+BAAiC,WACjD,IAAI6D,EAAuBxo+B,KAAKyn+B,0BAChCx/sB,GAAYugtB,EAAsB34jB,KACF,WAA5B7va,KAAKmoC,OAAOw/W,aAAwD,gBAA5B3nZ,KAAKmoC,OAAOw/W,aACpD1/H,GAAYugtB,EAAsB34jB,IAE1C,EACA0lkB,EAAU5k+B,UAAUw19B,wBAA0B,SAAUx0Z,EAAO/1I,GAC3B,gBAA5B57b,KAAKmoC,OAAOw/W,aACZ3nZ,KAAKmoC,OAAO467B,sBAEhBv6sB,GAASmpT,EAAO9hK,KACZ8hK,EAAMvukB,OAAS,IAAMw4b,GACrB+1I,EAAMA,EAAMvukB,OAAS,GAAGgH,OAEhC,EACAmr+B,EAAU5k+B,UAAU829B,wBAA0B,WAC1C,MAAO,GAAG729B,MAAMjR,KAAKK,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiB,IAAMq/Z,IAAyB,KAAOA,IAAwB,UAC5H,EACA0lkB,EAAU5k+B,UAAUw/nB,aAAe,SAAUl9O,GACzC,IAAIjzZ,KAAKmoC,OAAO617B,YAAYl8c,eAAgB9hhB,KAAKmoC,OAAO617B,YAAYl8c,aAAajyO,QAAjF,CAGA,IAAI+uO,EAAY1tf,SAAS0vH,cACrB2ub,EAAevvkB,KAAKmoC,OAAOw77B,mBAC/B,KAAIp0Z,EAAanskB,OAAS,IAAOw7gB,IAAc5+gB,KAAKmoC,OAAOhzB,QAAQ+d,SAAS0rf,KACnC,IAArC2wD,EAAa5kkB,QAAQi0gB,KAAuB3rH,IADhD,CASA,IAAIu1kB,EAAuBxo+B,KAAKyn+B,0BAChC,OAAIe,EAAqBpl+B,OAAS,EAC1BpD,KAAKmoC,OAAOoi8B,iBAAmBvq+B,KAAKmoC,OAAOoi8B,gBAAgBp19B,SAAWqz9B,EAAqB799B,QAAQ3K,KAAKmoC,OAAOoi8B,gBAAgBp19B,UAAY,OAC3InV,KAAKmoC,OAAOoi8B,gBAAgBp19B,QAAQ/K,aAGxCo+9B,EAAqBA,EAAqBpl+B,OAAS,GAAGgH,aAL1D,CAFA,CANI,GAAIpK,KAAKmoC,OAAO+y8B,0BAA2B,CACvC,IAAI7y+B,GAAY0jU,GAAkB/rU,KAAKmoC,OAAOu17B,kBAC1C199B,KAAKmoC,OAAOu17B,gBAAgBvo9B,SAAYo6jB,EAAaA,EAAanskB,OAAS,GAC/EpD,KAAKmoC,OAAO+y8B,0BAA0B17V,YAAYn3oB,aAAkBqI,MAAOrI,EAC/E,CATJ,CAqBJ,EACAkt+B,EAAU5k+B,UAAUu29B,qBAAuB,SAAU2P,GACjD,IAAIxu+B,EACJ,GAAgC,WAA5BrI,KAAKmoC,OAAOw/W,aAAwD,gBAA5B3nZ,KAAKmoC,OAAOw/W,YACpD,OAAOt/Y,EAEX,GAAIwu+B,EAAWzz+B,OAAS,EAAG,CACvB,IAAI4j+B,EAAiB6P,EAAWA,EAAWzz+B,OAAS,GAChDg2+B,EAAiBpS,EAAehn+B,KAAKmoC,OAAOw+7B,YAAY5vzB,WACxDok0B,EAAc,IAAI15+B,MAAM23+B,GAAgBx04B,WAAW,EAAG,EAAG,GACzDm53B,EAAW/99B,KAAKo7+B,oBAAoBpU,IACR,UAA5Bhn+B,KAAKmoC,OAAOw/W,aAA2Bo2kB,KACvCod,EAAc,IAAI15+B,MAAM23+B,GAAgB32+B,SAAS,EAAG,EAAG,EAAG,IAE9D,IAAI44+B,OAAa,EAEbA,EADAtd,IAA8E,IAAlE,CAAC,MAAO,OAAQ,YAAYpz9B,QAAQ3K,KAAKmoC,OAAOw/W,aAC/C3nZ,KAAKmoC,OAAOg77B,eAGZnj+B,KAAKmoC,OAAO+8kB,kBAE7B,IAAIh9Y,EAAc,eAAiB,IAAIzmO,KAAK05+B,GAAaz5+B,UAAY,KAKrE,GAJI1B,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,IACvD8kO,GAAe,sBAAwBloO,KAAK03+B,uBAAuB1Q,GAAkB,MAEzF3+9B,EAASgz+B,EAAWzh9B,cAAcsuM,GAM9B,OAJAloO,KAAKmoC,OAAOu17B,gBAAkB199B,KAAKmoC,OAAOg87B,eAAe979B,GACrDrI,KAAKmoC,OAAO+y8B,2BACZl7+B,KAAKmoC,OAAO+y8B,0BAA0B17V,aAAY,EAAOn3oB,GAEtDA,CAEf,CACA,OAAOA,CACX,EACAkt+B,EAAU5k+B,UAAU+m+B,uBAAyB,SAAUxupB,GAKnD,IAJA,IAAIoypB,EACAnxM,EACAoxM,EACAC,EACKrv+B,EAAInM,KAAKmoC,OAAOyh8B,aAAaxa,mBAAmBhs9B,OAAS,EAAG+I,GAAK,EAAGA,IAAK,CAE9E,IAAK4/T,GADcmd,EAAUlpV,KAAKmoC,OAAOyh8B,aAAaxa,mBAAmB7i8B,SAASpgB,EAAE2K,WAAY,KAAKsoG,QAC/D,CAClC+qrB,EAAWnqyB,KAAKmoC,OAAOyh8B,aAAaxa,mBAAmB7i8B,SAASpgB,EAAE2K,WAAY,KAC9Ewk+B,EAAanv+B,EACbov+B,EAAYpxM,EAASzlyB,KACrB82+B,EAAUrxM,EAAS/qrB,MACnB,KACJ,CACJ,CACI2sN,GAAkBwvqB,IAAcxvqB,GAAkBuvqB,KAClDC,EAAYv7+B,KAAKmoC,OAAOin7B,mBAAmBx+8B,OAAO,GAAG,GAAGlM,KACxD42+B,EAAat7+B,KAAKmoC,OAAOin7B,mBAAmBhs9B,OAAS,EACrDo4+B,EAAUx7+B,KAAKmoC,OAAOin7B,mBAAmBx+8B,OAAO,GAAG,GAAGwuG,MACtD+qrB,EAAWnqyB,KAAKmoC,OAAOin7B,mBAAmBhp9B,QAAO,SAAU/F,EAAGosB,GAC1D,OAAIpsB,EAAEqE,OAAS62+B,GACXD,EAAa7u9B,EACNpsB,GAEJ,IACX,IAAG,IAEP,IAAI81B,EAAO+yT,EAAU,GAAKsypB,aAAoB9q+B,MAC1Cw4U,EAAU,GAAKsypB,GAAS,GAAKtypB,EAAU,GAAKsypB,GAChD,GAAIF,EAAa,EAAG,CAChB,IAAIG,EAAcz7+B,KAAKmoC,OAAOin7B,mBAAmBksB,EAAa,GAAGl83B,MACjE,OAAOp/G,KAAKmoC,OAAOyh8B,aAAa8R,uBAAuBvl9B,EAAIol9B,EAAWpxM,EAAUjhd,EAAWuypB,EAC/F,CAEI,OAAOz7+B,KAAKmoC,OAAOyh8B,aAAa8R,uBAAuBvl9B,EAAIol9B,EAAWpxM,EAE9E,EACAorM,EAAU5k+B,UAAUyq+B,oBAAsB,SAAUrk9B,GAChD,IAAIu08B,EAAetr+B,KAAKmoC,OAAOw+7B,YAC3B5I,EAAWhn8B,EAAMu08B,EAAavN,UAC9B4d,GAActf,IAAsBtl8B,EAAMu08B,EAAa5+lB,UAAY2vlB,IAAsBtl8B,EAAMu08B,EAAav0zB,aAC1GslzB,KAAoB,EAC1B,SAAQ0B,GAAiE,aAApD/99B,KAAKmoC,OAAOi07B,cAAcwf,uBAAwCD,EAC3F,EACApG,EAAU5k+B,UAAU2qB,iBAAmB,WACnCt7B,KAAKmoC,OAAO5uB,GAAGwd,IAAqB/2B,KAAK67+B,wBAAyB77+B,KACtE,EACAu1+B,EAAU5k+B,UAAUyqB,oBAAsB,WACtCp7B,KAAKmoC,OAAO3uB,IAAIud,IAAqB/2B,KAAK67+B,wBAC9C,EACAtG,EAAU5k+B,UAAUkr+B,wBAA0B,SAAU9k9B,GACpD,IAAI5hB,EAAU4hB,EAAMA,MAAM1uB,OACtBotF,GAAQtgF,EAAS,IAAM06Z,KACS,gBAA5B7va,KAAKmoC,OAAOw/W,aACZ3nZ,KAAKmoC,OAAO467B,sBAGVtt4B,GAAQtgF,EAAS,IAAM06Z,OAC7B7va,KAAK2k+B,iCACL3k+B,KAAKmoC,OAAOo/7B,iBAAmB,GAEvC,EACAgO,EAAU5k+B,UAAUmr+B,sBAAwB,SAAU3m+B,EAAS4hB,EAAOgl9B,QAC5C,IAAlBA,IAA4BA,GAAgB,GAChD,IAAI7+gB,GAAenxJ,GAAkBh1S,IAAUA,EAAM/2B,KAAKmoC,OAAOw+7B,YAAY1nlB,YAC7EpmK,GAAazlN,IAAIje,EAAS,QAASnV,KAAKit9B,WAAYjt9B,MAC/CA,KAAKmoC,OAAOumrB,YAAe1utB,KAAKmoC,OAAOuz7B,kBAAkBn9kB,UAAa2+E,IACvErkP,GAAazlN,IAAIje,EAAS,aAAcnV,KAAKg8+B,gBAAiBh8+B,MAC9D64O,GAAazlN,IAAIje,EAAS,WAAYnV,KAAKi8+B,iBAAkBj8+B,OAE5DA,KAAKmoC,OAAOuz7B,kBAAkBn9kB,UAAa2+E,GAAe6+gB,IACvD/7+B,KAAKmoC,OAAO6+lB,cACZhnoB,KAAKmoC,OAAO6+lB,aAAak1W,gBAAgB/m+B,GAEzCnV,KAAKmoC,OAAOg08B,mBACZn8+B,KAAKmoC,OAAOg08B,kBAAkBC,cAAcjn+B,GAGxD,EACAog+B,EAAU5k+B,UAAUqr+B,gBAAkB,SAAU37+B,GAC5C,IAAIf,EAAQU,KACZo2B,YAAW,WAAc,OAAO92B,EAAM854B,gBAAiB,CAAO,GAAG,KACjE/44B,EAAEgO,iBACErO,KAAKo54B,eACLp54B,KAAKi8+B,iBAAiB57+B,GAEhBL,KAAKo54B,iBACXp54B,KAAKo54B,gBAAiB,EACtBp54B,KAAKit9B,WAAW5s9B,GAExB,EACAk1+B,EAAU5k+B,UAAU0r+B,oBAAsB,SAAUln+B,EAASmn+B,EAAWp/gB,GACpE,GAAKl9d,KAAKmoC,OAAO6+lB,cAAiBhnoB,KAAKmoC,OAAOgqlB,gBAAiBnynB,KAAKmoC,OAAOuz7B,kBAAkBn9kB,WAAY2+E,EAGzG,IAAK,IAAI5td,EAAK,EAAGgmC,EAAK71C,OAAO8E,KAAK+3+B,GAAYht+B,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CAChE,IAAIit+B,EAAajn8B,EAAGhmC,GAChBgud,EAAgBx8d,GAAc,MAAO,CAAEC,UAAW8ua,MACtD,OAAQ0skB,GACJ,IAAK,SACID,EAAUzsV,SACXvyL,EAAc5rc,YAAY5wB,GAAc,MAAO,CAAEC,UAAW,yBAC5DynR,GAAS,CAAC80M,GAAgBt9d,KAAKmoC,OAAOkwT,UAAYw3E,IAA2BA,KAC7E38S,GAAQ,CAACoqW,GAAgBnod,IAE7B,MACJ,IAAK,UACImn+B,EAAUvs5B,UACXutY,EAAc5rc,YAAY5wB,GAAc,MAAO,CAAEC,UAAW,yBAC5DynR,GAAS,CAAC80M,GAAgBt9d,KAAKmoC,OAAOkwT,UAAYw3E,IAA0BA,KAC5E78S,GAAO,CAACsqW,GAAgBnod,IAE5B,MACJ,IAAK,QACImn+B,EAAUpyR,QACX5sP,EAAc5rc,YAAY5wB,GAAc,MAAO,CAAEC,UAAW,yBAC5DynR,GAAS,CAAC80M,GT5eF,iBS6eRpqW,GAAQ,CAACoqW,GAAgBnod,IAE7B,MACJ,IAAK,WACImn+B,EAAUj+Q,WACX/gQ,EAAc5rc,YAAY5wB,GAAc,MAAO,CAAEC,UAAW,yBAC5DynR,GAAS,CAAC80M,GTjfC,oBSkfXtqW,GAAO,CAACsqW,GAAgBnod,IAIxC,CACJ,EACAog+B,EAAU5k+B,UAAUs88B,WAAa,SAAU/joB,GACvC,IAAI5pV,EAAQU,KACRqI,EAAS6gV,EAAU7gV,OACvB,KAAIA,EAAO6/Q,UAAUh1P,SAAS28Y,MAAyBxna,EAAO6/Q,UAAUh1P,SAAS28Y,MAC7Exna,EAAO6/Q,UAAUh1P,SAAS28Y,MAG9B,IAAK3mF,EAAUtxT,SAAWsxT,EAAUnxT,UAAgC,IAApBmxT,EAAU7wT,OAAer4B,KAAKmoC,OAAO+y8B,0BAA2B,CAC5Gl7+B,KAAKmoC,OAAO637B,WAAWA,WAAWzisB,OAClCv9R,KAAKmoC,OAAOo/7B,iBAAmB,GAAG329B,MAAMjR,KAAKK,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiB,IAAMq/Z,MACxF,IAAIi+H,EAAWr4c,GAAQyzP,EAAU7gV,OAAQ,IAAMwna,KAC/C7va,KAAK46+B,yBAAyB9sc,GAC9B9tiB,KAAKuq+B,gBAAgBrhpB,GAAW,GAChC,IAAI62iB,EAAa,CACb711B,KAAMlqC,KAAKmoC,OAAOoi8B,gBAAgBxz8B,MAClC5hB,QAASnV,KAAKmoC,OAAOoi8B,gBAAgBp19B,QACrC4hB,MAAOmyT,EAAWyuF,YAAa,eAEnC33a,KAAKmoC,OAAOm4P,QAAQvpQ,IAAcgp2B,GAClC,IAAI9m3B,EAAOwwE,GAAOzpF,KAAKmoC,OAAOoi8B,gBAAiB,CAAEzp5B,QAAQ,EAAO0mR,cAAete,IAC/ElpV,KAAKmoC,OAAOm4P,QAAQvpQ,IAAkB9d,EAC1C,KACK,CACDjZ,KAAK2k+B,iCACL3k+B,KAAKuq+B,gBAAgBrhpB,GAAW,GAChC,IAAIq/M,EAAkB,CAClBr+f,KAAMlqC,KAAKmoC,OAAOoi8B,gBAAgBxz8B,MAClC5hB,QAASnV,KAAKmoC,OAAOoi8B,gBAAgBp19B,QACrC4hB,MAAOmyT,EAAWyuF,YAAa,eAEnC33a,KAAKmoC,OAAOm4P,QAAQvpQ,IAAcwxgB,GAC9BtvhB,EAAOwwE,GAAOzpF,KAAKmoC,OAAOoi8B,gBAAiB,CAAEzp5B,QAAQ,EAAO0mR,cAAete,IAC/ElpV,KAAKmoC,OAAOm4P,QAAQvpQ,IAAkB9d,GAAM,SAAUuj+B,GAClD,GAAIA,EAAe175B,OACfxhF,EAAMql+B,iCACNrl+B,EAAM6oC,OAAOo/7B,iBAAmB,GAC5Bjo+B,EAAM6oC,OAAO637B,YACb1g+B,EAAM6oC,OAAO637B,WAAWyc,sBAO5B,GAHiC,WAA7Bn9+B,EAAM6oC,OAAOw/W,aAAyD,gBAA7BroZ,EAAM6oC,OAAOw/W,aACtDn/H,GAAS,CAAClpR,EAAM6oC,OAAOoi8B,gBAAgBp19B,SAAU06Z,KAEjDvwa,EAAM6oC,OAAOo67B,YAAa,CAC1B,IAAII,EAAa,CACbz47B,KAAMsy8B,EAAezl9B,MACrB5hB,QAASqn+B,EAAern+B,QACxBvI,KAAM,SAEVtN,EAAM6oC,OAAOkxK,OAAOtiL,IAAmB4r8B,EAC3C,MAEIrj+B,EAAM6oC,OAAOkxK,OAAOtiL,IAAkByl9B,EAGlD,GACJ,CACJ,EACAjH,EAAU5k+B,UAAUsr+B,iBAAmB,SAAU57+B,GACzCL,KAAKmoC,OAAO637B,YACZhg+B,KAAKmoC,OAAO637B,WAAWyc,gBAAe,GAE3B,eAAXp8+B,EAAEuM,MACF5M,KAAKuq+B,gBAAgBlq+B,GAAG,GAE5BL,KAAK2k+B,iCACL3k+B,KAAKmoC,OAAOo/7B,iBAAmB,GAC3Bvn+B,KAAKmoC,OAAOoi8B,gBAAgBp19B,QAAQ+yQ,UAAUh1P,SAAS28Y,MACvD7va,KAAKmoC,OAAOoi8B,gBAAgBp19B,QAAQykB,cAAc,IAAMi2Y,QAGvD9jG,GAAkB/rU,KAAKmoC,OAAOoi8B,gBAAgBxz8B,QAC/Cg1S,GAAkB/rU,KAAKmoC,OAAOoi8B,gBAAgBxz8B,MAAM/2B,KAAKmoC,OAAOw+7B,YAAYmP,eAC5E91+B,KAAKmoC,OAAO617B,YAAYC,WAAWj+9B,KAAKmoC,OAAOoi8B,gBAAgBxz8B,MAAO,SAGtE/2B,KAAKmoC,OAAOk2hB,cAAgB,iBAC5Br+jB,KAAKmoC,OAAO637B,WAAW0c,uBAE/B,EACAnH,EAAU5k+B,UAAUs29B,eAAiB,SAAUplxB,GAC3C,OAAO7hN,KAAKmoC,OAAOs+7B,gBAAgBrg+B,QAAO,SAAU8jC,GAAQ,OAAOA,EAAK66vB,OAASljlB,CAAM,IAAG,EAC9F,EACA0zxB,EAAU5k+B,UAAUgs+B,aAAe,SAAUxm9B,GACzC,IAAI72B,EAAQU,KACZ,OAAOA,KAAKmoC,OAAO0u8B,WAAWzw+B,QAAO,SAAU8jC,GAC3C,OAAOA,EAAK5qC,EAAM6oC,OAAOw+7B,YAAYxw8B,MAAQA,CACjD,IAAG,EACP,EACAo/8B,EAAU5k+B,UAAU6wM,aAAe,WAC/B,MAAO,uCAAuCnxM,QAAQ,SAAS,SAAUgQ,GACrE,IAAIijG,EAAoB,GAAhB1/G,KAAKk2B,SAAgB,EAE7B,OADe,MAANzZ,EAAaijG,EAAS,EAAJA,EAAU,GAC5BxsG,SAAS,GACtB,GACJ,EACAy+9B,EAAU5k+B,UAAUis+B,eAAiB,WACjC,OAAsC,IAAlC58+B,KAAKmoC,OAAO0u8B,WAAWzz+B,cACRpD,KAAKmoC,OAAO0u8B,WAAW,GAAG72+B,KAAKmoC,OAAOw+7B,YAAYxw8B,IAEhC,IAAjCn2B,KAAKmoC,OAAOou8B,UAAUnz+B,cACPpD,KAAKmoC,OAAOou8B,UAAU,GAAGv2+B,KAAKmoC,OAAOw+7B,YAAYxw8B,IAE7D,QACX,EACAo/8B,EAAU5k+B,UAAUks+B,cAAgB,SAAUC,GAC1C,IAIIpqxB,EAJApzN,EAAQU,KACZ,GAAIA,KAAKmoC,OAAO0u8B,WAAWzz+B,OAAS,GAAKpD,KAAKmoC,OAAOou8B,UAAUnz+B,OAAS,EACpE,OAAO,EAGX,IAAI25+B,EAAS/8+B,KAAK48+B,iBAIlB,GAHe,WAAXG,IACArqxB,EAAU1yN,KAAKwhN,gBAEJ,WAAXu7xB,EAAqB,CACrB,IAEIxkH,EAFQv43B,KAAKmoC,OAAO0u8B,WAAWz99B,OAAOpZ,KAAKmoC,OAAOou8B,WACnCtw+B,KAAI,SAAU8wB,GAAS,OAAOA,EAAMz3B,EAAM6oC,OAAOw+7B,YAAYxw8B,GAAK,IAClElkB,QAAO,SAAUgE,EAAGC,GAAK,OAAOtS,KAAKqpC,IAAIh3B,EAAGC,EAAI,IAEnEw8M,GADA6lqB,EAAQxsjB,GAAkB+wqB,GAAcvkH,EAAQA,EAAQukH,GACtC,CACtB,CACA,OAAOpqxB,CACX,EACA6ixB,EAAU5k+B,UAAU459B,gBAAkB,SAAUrhpB,EAAW67oB,GACvD,IAAIzl+B,EAAQU,KACRqI,EAASotF,GAAQyzP,EAAU7gV,OAAQ,IAAMwna,KACzChuN,EAAOx5M,EAAOiqB,aAAa,aAC3Byy8B,IACA/k+B,KAAKmm+B,wBAAwB,GAAGv19B,MAAMjR,KAAKK,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiB,kBAAoBqxM,EAAO,QAAQ,GACnHx5M,EAAO+B,SAEX,IAAIs89B,EAAc1m+B,KAAKin+B,eAAeplxB,GAClC6kxB,GAAeA,EAAYjxX,YAC3BixX,EAAc1m+B,KAAKmoC,OAAO0u8B,WAAWzw+B,QAAO,SAAUyK,GAClD,OAAOA,EAAIvR,EAAM6oC,OAAOw+7B,YAAYxw8B,MAAQuw8B,EAAYpn+B,EAAM6oC,OAAOw+7B,YAAYxw8B,GACrF,IAAG,IAEPn2B,KAAKmoC,OAAOoi8B,gBAAkB,CAAExz8B,MAAO2v8B,EAAavx9B,QAAS9M,EACjE,EACAkt+B,EAAU5k+B,UAAUwl+B,mBAAqB,SAAUp/8B,EAAO628B,EAAUC,EAAamP,GAC7E,IAAIptlB,EAAY74X,EAAM/2B,KAAKmoC,OAAOw+7B,YAAY5vzB,WAC1C84O,EAAU94X,EAAM/2B,KAAKmoC,OAAOw+7B,YAAYj6lB,SACxCuwmB,EAAYlm9B,EAAM/2B,KAAKmoC,OAAOw+7B,YAAY0E,gBAC1Cn6kB,EAAerB,EAAQruY,oBAAsBouY,EAAUpuY,oBACvDyyF,EAAY47S,EAAQnuZ,UAAYkuZ,EAAUluZ,UAA6B,IAAfwvZ,EAC5D08kB,EAAW,IAAIns+B,MAAMms+B,GAAY5t+B,KAAKmoC,OAAOyz7B,WAAWhskB,aAAaluZ,UAAYuyG,GACjF,IACIkhoB,EADApwa,EAAYhuS,EAAM/2B,KAAKmoC,OAAOw+7B,YAAYuW,qBAEd,WAA5Bl9+B,KAAKmoC,OAAOw/W,aAA4Bq1lB,IACxC7nQ,EV/sBL,SAAsBvlV,EAAWC,GACpC,OAAOjsZ,KAAKC,MAAMgsZ,EAAQnuZ,UAAYkuZ,EAAUluZ,WAAags9B,IACjE,CU6sBuB2O,CAAkBuR,EAAU5t+B,KAAKmoC,OAAOyz7B,WAAW/rkB,WAAa,GAE/E,IAAI/gB,EAAc9uY,KAAKmoC,OAAOmyI,UAAYt6K,KAAKmoC,OAAO+07B,SAASC,uBAG3Dt+3B,EAAQ2+B,IAASoyR,EAAWqtlB,EAAWl4qB,EAF5B/kU,KAAKmoC,OAAOuz7B,kBAAkBzv9B,eAEmBkpuB,EAAUy4P,EADvD5t+B,KAAKmoC,OAAOm7W,aACmEuqlB,EAAa/+lB,GAC/E,WAA5B9uY,KAAKmoC,OAAOw/W,cAA4D,IAAhCs1lB,EAAUty+B,QAAQ,WAAmD,IAAhCsy+B,EAAUty+B,QAAQ,WAC3FohU,GAAkBh1S,EAAMom9B,gBACxBpm9B,EAAMom9B,eAAiB,CAAEjn8B,MAAO,IAAIz0C,KAAKo9F,EAAM,IAAKzlD,IAAK,IAAI33C,KAAKo9F,EAAMA,EAAMz7F,OAAS,MAGnFy7F,EAAM,GAAK9nE,EAAMom9B,eAAejn8B,MAAMx0C,YACtCq1B,EAAMom9B,eAAejn8B,MAAQ,IAAIz0C,KAAKo9F,EAAM,KAE5CA,EAAMA,EAAMz7F,OAAS,GAAK2zB,EAAMom9B,eAAe/j8B,IAAI13C,YACnDq1B,EAAMom9B,eAAe/j8B,IAAM,IAAI33C,KAAKo9F,EAAMA,EAAMz7F,OAAS,OAKrE,IADA,IAAIg6+B,EAAuB,GAClB9t+B,EAAK,EAAG+t+B,EAAUx+4B,EAAOvvF,EAAK+t+B,EAAQj6+B,OAAQkM,IAAM,CACzD,IAAIpP,EAAOm9+B,EAAQ/t+B,GACfgu+B,EAAe7z5B,GAAO,CAAC,EAAG1yD,EAAO,MAAM,GAC3C72B,EAAOF,KAAKu9+B,mBAAmBr9+B,EAAMo9+B,GACrCA,EAAat9+B,KAAKmoC,OAAOw+7B,YAAY5vzB,WAAa,IAAIt1K,KAAKvB,GAC3Do9+B,EAAat9+B,KAAKmoC,OAAOw+7B,YAAYj6lB,SAAW,IAAIjrY,KAAK,IAAIA,KAAKvB,GAAMskG,gBAAgByP,IACxFqp4B,EAAat9+B,KAAKmoC,OAAOw+7B,YAAYmP,cAAgBwH,EAAat9+B,KAAKmoC,OAAOw+7B,YAAYxw8B,WACnFmn9B,EAAat9+B,KAAKmoC,OAAOw+7B,YAAYuW,4BACrCI,EAAat9+B,KAAKmoC,OAAOw+7B,YAAY6W,aAC5CF,EAAav4M,KAAO/kyB,KAAKwhN,eACzB47xB,EAAqBhx+B,KAAKkx+B,EAC9B,CACA,OAAOF,CACX,EACA7H,EAAU5k+B,UAAU4s+B,mBAAqB,SAAUr9+B,EAAM62B,GACrD,IAAI0m9B,EAAYv9+B,EAChB,GAAIF,KAAKmoC,OAAOmyI,WACXvjJ,EAAM/2B,KAAKmoC,OAAOw+7B,YAAYuQ,gBAAkBng9B,EAAM/2B,KAAKmoC,OAAOw+7B,YAAYwQ,cAAe,CAC9F,IAAIuG,EAAc19+B,KAAK29+B,WAAW5m9B,EAAM/2B,KAAKmoC,OAAOw+7B,YAAY5vzB,WAAY,IAAIt1K,KAAKvB,GAAO62B,EAAM/2B,KAAKmoC,OAAOw+7B,YAAYuQ,gBACtH0G,EAAY59+B,KAAK29+B,WAAW5m9B,EAAM/2B,KAAKmoC,OAAOw+7B,YAAY5vzB,WAAY,IAAIt1K,KAAKvB,GAAOF,KAAKmoC,OAAOmyI,UACtGmj0B,EAAa,IAAIh8+B,KAAKvB,GAAMwB,UAAwC,KAA3Bg8+B,EAAcE,EAC3D,CACA,OAAOH,CACX,EACAlI,EAAU5k+B,UAAUgt+B,WAAa,SAAU/tlB,EAAW6tlB,EAAWnj0B,GAG7D,OAFkBt6K,KAAKmoC,OAAO+07B,SAASx/8B,OAAO,IAAIjc,KAAKmuZ,GAAYt1O,GACjDt6K,KAAKmoC,OAAO+07B,SAASx/8B,OAAO,IAAIjc,KAAKg8+B,GAAYnj0B,EAEvE,EACAi7zB,EAAU5k+B,UAAUkt+B,eAAiB,SAAUpH,EAAUqH,GAErD,IAAIC,OADa,IAAbD,IAAuBA,GAAW,GAEtC,IACIrH,EAAWz2+B,KAAKg++B,kBAAkBvH,MAE9BsH,EAAct05B,GAAO,CAAC,EAAGgt5B,EAAU,MAAM,UAExCA,GAAYqH,GACrB,GAAIA,GAAYC,EAAa,CACzB,IAAIh86B,EAAa/hE,KAAKi++B,oBAAoBF,GACtCG,EAAYn86B,EAAWo86B,OAAOvt+B,OAAO,GAAG,GACxCmxD,EAAWi06B,WAAW5y+B,OAAS,IAAM26+B,EAAY/9+B,KAAKmoC,OAAOw+7B,YAAYuW,uBACzEgB,EAAYn86B,EAAWi06B,WAAWpl+B,OAAO,GAAG,IAE5Cst+B,IACAH,EAAY/9+B,KAAKmoC,OAAOw+7B,YAAY0E,gBAAkB6S,EAAUl++B,KAAKmoC,OAAOw+7B,YAAY0E,gBAEhG,CACA,OAAO0S,CACX,EACAxI,EAAU5k+B,UAAUst+B,oBAAsB,SAAU7ppB,EAAWikjB,GAC3D,IAAI+lG,EAAsB,GACtBhB,EAAuB,GACvBiB,EAAiBjqpB,EACrB,IACIiqpB,EAAiBr++B,KAAKg++B,kBAAkBK,GAAgB,KAEpDD,EAAoBhy+B,KAAKiy+B,GAE7BjB,EAAuBA,EAAqBhk+B,OAAOpZ,KAAKs++B,mBAAmBD,GAAkBjqpB,UACxFiqpB,GACT,IAAI1yS,EAAc,CAAC,EACnB,GAAI0sM,EAAU,CACV,IAAIkmG,EAAWv++B,KAAKmoC,OAAOw+7B,YAC3Bh7R,EAAc,CACVwyS,OAAQC,EAAoBh4+B,QAAO,SAAU8iV,GACzC,OAAOA,EAAUq1pB,EAASxn0B,YAAcshuB,EAASkmG,EAASxn0B,UAC9D,IACAi/zB,WAAYoH,EAAqBh3+B,QAAO,SAAU8iV,GAC9C,OAAOA,EAAUq1pB,EAASxn0B,YAAcshuB,EAASkmG,EAASxn0B,UAC9D,IAER,MAEI40hB,EAAc,CAAEwyS,OAAQC,EAAqBpI,WAAYoH,GAE7D,OAAOzxS,CACX,EACA4pS,EAAU5k+B,UAAUqt+B,kBAAoB,SAAU5ppB,EAAWsqkB,GACzD,IACI95d,EADAzxO,EAASnzN,KAAKmoC,OAAOw+7B,YAGrB/hiB,EADA85d,EACatqkB,EAAUjhI,EAAOh9L,IAGhBi+T,EAAUjhI,EAAO2ixB,eAAiB1hpB,EAAUjhI,EAAOqqxB,aAErE,IAAIgB,EAAYx++B,KAAKmoC,OAAO0u8B,WAAWzw+B,QAAO,SAAU8jC,GACpD,OAAOA,EAAKw03B,EAAYvrsB,EAAOqqxB,YAAcrqxB,EAAOh9L,MAAQyua,CAChE,IACA,OAAO45iB,EAAUll8B,OACrB,EACAi87B,EAAU5k+B,UAAU8t+B,iBAAmB,SAAUrqpB,EAAWikjB,GACxD,IAAIqmG,EAActqpB,EAAUp0V,KAAKmoC,OAAOw+7B,YAAY5vzB,WAChD4n0B,EAAatmG,EAASr44B,KAAKmoC,OAAOw+7B,YAAY5vzB,WAClD,OAAO2n0B,EAAYv79B,aAAew79B,EAAWx79B,YAAcu79B,EAAYt79B,eAAiBu79B,EAAWv79B,cAC/Fs79B,EAAYr79B,eAAiBs79B,EAAWt79B,YAChD,EACAky9B,EAAU5k+B,UAAU2t+B,mBAAqB,SAAU7H,EAAU70xB,EAAQg9xB,QAClD,IAAXh9xB,IAAqBA,GAAS,QACd,IAAhBg9xB,IAA0BA,GAAc,GAC5C,IAAIpD,EAAU55xB,EAAS,OAAUg9xB,EAAe5++B,KAAKmoC,OAAOw+7B,YAAY6W,YAAcx9+B,KAAKmoC,OAAOw+7B,YAAYmP,aAC1Gx5mB,EAAW16K,EAAS,OAAS5hN,KAAKmoC,OAAOw+7B,YAAYxw8B,GAEzD,OADiByrL,EAAS5hN,KAAKmoC,OAAOs+7B,gBAAkBzm+B,KAAKmoC,OAAO0u8B,YAClDzw+B,QAAO,SAAU8jC,GAAQ,OAAOA,EAAK,GAAKsx8B,KAAa/E,EAAS,GAAKn6mB,EAAW,GACtG,EACAi5mB,EAAU5k+B,UAAUku+B,mBAAqB,SAAU1o9B,GAI/C,IAHA,IAAIg9L,EAASnzN,KAAKmoC,OAAOw+7B,YACrByW,EAAuB,GAElB9t+B,EAAK,EAAGwv+B,EADE9++B,KAAKmoC,OAAO0u8B,WAAWzw+B,QAAO,SAAUyK,GAAO,OAAOA,EAAIsiN,EAAOh9L,MAAQA,CAAI,IAChD7mB,EAAKwv+B,EAAe17+B,OAAQkM,IAAM,CAC9E,IAAIyv+B,EAAUD,EAAexv+B,GACxBy8T,GAAkBgzqB,EAAQ5rxB,EAAOk4wB,mBAClC+R,EAAuBA,EAAqBhk+B,OAAOpZ,KAAKm2+B,mBAAmB4I,IAEnF,CACA,OAAO3B,CACX,EACA7H,EAAU5k+B,UAAUqu+B,sBAAwB,SAAUjo0B,EAAW21N,GAG7D,IAFA,IAAIv5K,EAASnzN,KAAKmoC,OAAOw+7B,YACrByW,EAAuB,GAClB9t+B,EAAK,EAAGgmC,EAAKt1C,KAAKmoC,OAAO0u8B,WAAYvn+B,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CAChE,IAAI2v+B,EAAU3p8B,EAAGhmC,GACZy8T,GAAkBkzqB,EAAQ9rxB,EAAOk4wB,mBAClC+R,EAAuBA,EAAqBhk+B,OAAOpZ,KAAKm2+B,mBAAmB8I,IAEnF,CAIA,OAHa7B,EAAqBh3+B,QAAO,SAAUyK,GAC/C,OAAOA,EAAIsiN,EAAOp8C,YAAcA,GAAalmK,EAAIsiN,EAAOu5K,UAAYA,IAAY3gE,GAAkBl7T,EAAIsiN,EAAO2ixB,cACjH,GAEJ,EACAP,EAAU5k+B,UAAUuu+B,sBAAwB,SAAUC,GAClD,IACIC,EADAjsxB,EAASnzN,KAAKmoC,OAAOw+7B,YAErB0Y,EAAqB,GASzB,IAPID,EAD0B,kBAAnBD,GAAyD,kBAAnBA,EAC9Bn/+B,KAAKmoC,OAAO0u8B,WAAWzw+B,QAAO,SAAUyK,GACnD,OAAOA,EAAIsiN,EAAOh9L,MAAQgp9B,CAC9B,IAAG,GAGY115B,GAAO,CAAC,EAAG015B,EAAgB,MAAM,IAEnChsxB,EAAO+pxB,qBAsBpB,IArBA,IAAIoC,EAAiBF,EAAajsxB,EAAO+pxB,qBAAqBvq9B,MAAM,KAChEquZ,EAAU,SAAU70a,EAAGwjD,GAIvB,GAAsB,IAHTq3X,EAAO7+Y,OAAO0u8B,WAAWzw+B,QAAO,SAAUqw+B,GACnD,OAAOA,EAAStjxB,EAAO2ixB,gBAAkBsJ,EAAajsxB,EAAOh9L,KAAOsg9B,EAAStjxB,EAAO+pxB,uBAAyBoC,EAAe/y9B,SAASpgB,EAAE2K,WAAY,IACvJ,IACW1T,OAAc,CACrB,IAAIm8+B,EAASlR,IAAgCiR,EAAe/y9B,SAASpgB,EAAE2K,WAAY,MAC/E0o+B,EAAc/15B,GAAO,CAAC,EAAG015B,EAAgB,MAAM,GACnDK,EAAYrsxB,EAAO2ixB,cAAgBsJ,EAAajsxB,EAAOh9L,WAChDqp9B,EAAYrsxB,EAAOqqxB,aAC1BgC,EAAYrsxB,EAAO+pxB,qBAAuBoC,EAAe/y9B,SAASpgB,EAAE2K,WAAY,KAChF,IAAI84Y,EAAY,IAAInuZ,KAAK89+B,EAAO79+B,WAC5B+gB,EAAO289B,EAAajsxB,EAAOu5K,SAAShrY,UAAY09+B,EAAajsxB,EAAOp8C,WAAWr1K,UAC/EmuZ,EAAU,IAAIpuZ,KAAKmuZ,EAAUluZ,WACjCmuZ,EAAQrrT,gBAAgB/hF,GACxB+89B,EAAYrsxB,EAAOp8C,WAAa,IAAIt1K,KAAKmuZ,EAAUluZ,WACnD89+B,EAAYrsxB,EAAOu5K,SAAW,IAAIjrY,KAAKouZ,EAAQnuZ,WAC/C29+B,EAAmBjz+B,KAAKoz+B,EAC5B,CACJ,EACIx4jB,EAAShnb,KACJmM,EAAI,EAAGwjD,EAAM2v7B,EAAel8+B,OAAQ+I,EAAIwjD,EAAKxjD,IAClD60a,EAAQ70a,GAGhB,OAAOkz+B,CACX,EACA9J,EAAU5k+B,UAAU8u+B,mBAAqB,SAAUtq+B,EAAS+0B,EAAMt9B,EAAM6f,EAAO2ovB,GAC3E,GAAKp1wB,KAAKmoC,OAAOyh8B,aAAjB,CAGA,IAQInz2B,EAAQz2H,KAAKmoC,OAAOyh8B,aAAa8V,iBAAiBx18B,EAAMzd,GACxDgqG,IACAthH,EAAQhP,MAAMyG,GAASm/T,GAAkBqpc,GAAoC3+oB,EAVhE,SAAUA,EAAO2+oB,GAK9B,OAJA3+oB,EAAQA,EAAMpmH,QAAQ,IAAK,IAIpB,QAHCkc,SAASkqG,EAAMvvG,UAAU,EAAGuvG,EAAMrzH,OAAS,GAAI,IAGlC,KAFbmpB,SAASkqG,EAAMvvG,UAAUuvG,EAAMrzH,OAAS,EAAG,EAAIqzH,EAAMrzH,OAAS,GAAI,IAE1C,KADxBmpB,SAASkqG,EAAMvvG,UAAU,EAAIuvG,EAAMrzH,OAAS,EAAG,EAAIqzH,EAAMrzH,OAAS,GAAI,IACnC,KAAOgywB,EAAQ,GAC9D,CAIsDuqO,CAAWlp3B,EAAO2+oB,GAXxE,CAaJ,EACAmgO,EAAU5k+B,UAAUiv+B,8BAAgC,SAAUzokB,EAAQj2W,EAAU2+6B,GAC5E,IAQIjqoB,EARAkqoB,EAAgB3okB,EAAOn3a,KAAKmoC,OAAOw+7B,YAAYrvhB,UAAYt3c,KAAKmoC,OAAOi07B,cAAcjpwB,OAAOmkP,QAAQz2c,QACpGk/+B,EAAqBj/+B,GAAc,MAAO,CAC1CC,UAAW8ua,IACXpmF,MAAO,CACH,UAAW,eAAiB0tF,EAAOn3a,KAAKmoC,OAAOw+7B,YAAYxw8B,IAC3D,gBAAiB,UAIzB,GAAK41S,GAAkB/rU,KAAKmoC,OAAOuz7B,kBAAkBskB,eAQhD,CACD,IAAIC,EAAqBn/+B,GAAc,MAAO,CAAEC,UAAW8ua,MAC3D7va,KAAKmoC,OAAOyD,SAASk08B,EAAcG,GACnCrqoB,EAAkB,CAACqqoB,EACvB,KAZqE,CACjE,IAEI9yoB,EAFantW,KAAKmoC,OAAOhzB,QAAQghB,GAAK,IAC3Bn2B,KAAKmoC,OAAOuz7B,kBAAkBwkB,kBACJ,gBACrC1lpB,EAAe,iBAAmBqlpB,IACW,IAA7C7/+B,KAAKmoC,OAAOw/W,YAAYh9Y,QAAQ,QAAiB,IAAMu2D,EAAW,IACtE00S,EAAkB51W,KAAKmoC,OAAOg48B,wBAAZng/B,CAAqCm3a,EAAQn3a,KAAKmoC,OAAQqyT,EAAc2S,GAAY,EAC1G,CAQA,OAFAn6O,GAAO4iP,EAAiBmqoB,GACxB//+B,KAAKog/B,qBAAqBL,EAAoB7+6B,GACvC6+6B,CACX,EACAxK,EAAU5k+B,UAAUyv+B,qBAAuB,SAAUL,EAAoB7+6B,GAChE6qQ,GAAkB/rU,KAAK4vW,WACxBpnF,GAAS,CAACu3tB,GAAqB//+B,KAAK4vW,UAEpC5vW,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,GACvD28+B,EAAmB/q9B,aAAa,mBAAoBksC,EAASpqD,WAErE,EACAy+9B,EAAU5k+B,UAAU0v+B,qBAAuB,SAAUtp9B,GACjD,OAAQA,EAAM/2B,KAAKmoC,OAAOw+7B,YAAY1nlB,aAAej/Y,KAAKmoC,OAAOo2W,UAAUznY,UAC/E,EACAy+9B,EAAU5k+B,UAAU2v+B,aAAe,SAAUp3pB,GAIzC,IAHA,IAAI0tpB,EAAmB1tpB,aAAqBx4U,MAASw4U,EAAY,CAACA,GAC9Dq3pB,GAAe,EACfptxB,EAASnzN,KAAKmoC,OAAOw+7B,YAChBr39B,EAAK,EAAGgmC,EAAKsh8B,EAAiBtn+B,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CACzD,IAAIkx+B,EAAUlr8B,EAAGhmC,GACbmx+B,EAAU,GACT10qB,GAAkBy0qB,EAAQrtxB,EAAOk4wB,mBACjCt/pB,GAAkBy0qB,EAAQrtxB,EAAO2ixB,gBAAkB0K,EAAQrtxB,EAAOh9L,MAAQqq9B,EAAQrtxB,EAAO2ixB,cAI1F2K,EAAQr0+B,KAAKo0+B,GAHbC,EAAUzg/B,KAAKm2+B,mBAAmBqK,GAKtC,IAAK,IAAI9q8B,EAAK,EAAGgr8B,EAAYD,EAAS/q8B,EAAKgr8B,EAAUt9+B,OAAQsyC,IAAM,CAC/D,IAAIxL,EAAOw28B,EAAUhr8B,GAErB,GADwB11C,KAAKs3+B,kBAAkBpt8B,GACzB9mC,OAAS,EAAG,CAC9Bm9+B,GAAe,EACf,KACJ,CACJ,CACJ,CAEA,OADAvg/B,KAAKmoC,OAAO+27B,cAAcmX,QAAUkK,EAC7BA,CACX,EACAhL,EAAU5k+B,UAAUgw+B,oBAAsB,SAAU7tkB,EAAY9jP,GAC5D,OAAO,IAAIq0P,GAAYvQ,GAAY2B,cAAa,IAAIjB,IAAQ3qX,MAAMmmI,GACtE,EACAumzB,EAAU5k+B,UAAUiw+B,gBAAkB,SAAU7C,EAAahn0B,GACzD,IAEI8p0B,EACAC,EAHA3txB,EAASnzN,KAAKmoC,OAAOw+7B,YACzB5vzB,EAAYg1J,GAAkBh1J,GAAagn0B,EAAY5qxB,EAAOp8C,WAAaA,EAG3E,IAGIgq0B,EAHAC,EAA4B,GAC5BC,EAAQlD,EAAY5qxB,EAAOh9L,IAC3B+q9B,EAAcnD,EAAY5qxB,EAAOqqxB,aAEjC2D,EAA+C,eAA9Bnh/B,KAAKmoC,OAAOk2hB,cAAiC,cAAgB,qBAClF,GACI0ib,EAAsB,IAAI5rkB,GAAUhiN,EAAOqqxB,YAAa,QAASyD,GAC7DtqkB,IAAI,IAAIxB,GAAUhiN,EAAOp8C,UAAWoq0B,EAAgBpq0B,IAGnDg1J,GADL80qB,GADAC,EAAe9g/B,KAAK2g/B,oBAAoB3g/B,KAAKmoC,OAAO0u8B,WAAYkK,IAC1Bnw+B,OAAO,GAAG,KACEiw+B,EAAuB1txB,EAAOh9L,MAAQ+q9B,EAMpFA,EAAc,MALdF,EAA0B50+B,KAAKy0+B,GAC/BI,EAAQJ,EAAuB1txB,EAAOh9L,IACtC+q9B,EAAcL,EAAuB1txB,EAAOqqxB,oBAKnB,IAAxBsD,EAAa19+B,SAAiB2oU,GAAkB80qB,EAAuB1txB,EAAOqqxB,eACvF,OAAOwD,CACX,EACAzL,EAAU5k+B,UAAUyw+B,qBAAuB,SAAUJ,EAA2Bjq0B,GAI5E,IAHA,IAEIsq0B,EAFAluxB,EAASnzN,KAAKmoC,OAAOw+7B,YACrB2a,EAA4B,GAEvBhy+B,EAAK,EAAGiy+B,EAA8BP,EAA2B1x+B,EAAKiy+B,EAA4Bn++B,OAAQkM,IAAM,CACrH,IAAIky+B,EAAUD,EAA4Bjy+B,GACtCmy+B,EAAgB,IAAItskB,GAAUhiN,EAAO2ixB,aAAc,QAAS0L,EAAQruxB,EAAOh9L,KAC3E0gZ,GAAG,IAAI1B,GAAUhiN,EAAO2ixB,aAAc,QAAS0L,EAAQruxB,EAAOqqxB,cAC9D7mkB,IAAI,IAAIxB,GAAUhiN,EAAO2ixB,aAAc,gBAAYzy+B,IACnDsza,IAAI,IAAIxB,GAAUhiN,EAAO2ixB,aAAc,WAAY,QACrB,wBAA9B91+B,KAAKmoC,OAAOk2hB,eAAyE,0BAA9Br+jB,KAAKmoC,OAAOk2hB,gBACnEojb,EAAgBA,EAAc9qkB,IAAI,IAAIxB,GAAUhiN,EAAOp8C,UAAW,qBAAsBA,KAE5Fsq0B,EAAkBrh/B,KAAK2g/B,oBAAoB3g/B,KAAKmoC,OAAO0u8B,WAAY4K,GACnEH,EAA4BA,EAA0Blo+B,OAAOio+B,EACjE,CACA,OAAOC,CACX,EACA/L,EAAU5k+B,UAAUwp+B,iBAAmB,SAAUV,GAC7C,IAEIiI,EAFAhjB,EAAY,EACZlykB,EAAWitlB,EAAWr2+B,OAE1B,GAAIq2+B,EAAW,GAAKz5+B,KAAKmoC,OAAOo1V,SAAWk8mB,EAAWA,EAAWr2+B,OAAS,GAAKpD,KAAKmoC,OAAOq1V,QAAS,CAChG,IAAK,IAAIrxX,EAAI,EAAGA,EAAIst+B,EAAWr2+B,OAAQ+I,IAC/Bkw9B,IAAeod,EAAWlt9B,SAASpgB,EAAE2K,WAAY,MAAMpV,YAAc269B,IAAe,IAAI569B,KAAKzB,KAAKmoC,OAAOo1V,UAAU77X,YACnHg99B,EAAYvy9B,GAEZkw9B,IAAeod,EAAWlt9B,SAASpgB,EAAE2K,WAAY,MAAMpV,YAAc269B,IAAe,IAAI569B,KAAKzB,KAAKmoC,OAAOq1V,UAAU97X,YACnH8qZ,EAAWrgZ,GAGnBu1+B,EAAgBjI,EAAWrz+B,QAAO,SAAUlG,GAAQ,OAAOA,GAAQu5+B,EAAWlt9B,SAASmy8B,EAAU5n9B,WAAY,MAAQ5W,GAAQu5+B,EAAWlt9B,SAASigY,EAAS11Y,WAAY,IAAM,GAChL,CACA,OAAO4q+B,CACX,EACAnM,EAAU5k+B,UAAUgx+B,aAAe,SAAUlL,EAAUvg8B,EAAOkD,EAAKqsP,GAC/D,IAAIm8sB,EAAcxo8B,EAAI13C,UAAY+jS,EAASuprB,UAAUtt9B,WAAaw0C,EAAMx0C,UAAY+jS,EAASwprB,QAAQvt9B,UACjGmg/B,EAAcp8sB,EAASuprB,UAAUtt9B,WAAaw0C,EAAMx0C,WACpD+0+B,EAASz2+B,KAAKmoC,OAAOw+7B,YAAY5vzB,WAAWr1K,WAAa+jS,EAASuprB,UAAUtt9B,WAC5E+0+B,EAASz2+B,KAAKmoC,OAAOw+7B,YAAYj6lB,SAAShrY,UAAY+jS,EAASwprB,QAAQvt9B,WAAaw0C,EAAMx0C,YAAc03C,EAAI13C,UAChH,OAAOkg/B,GAAeC,CAC1B,EACAtM,EAAU5k+B,UAAUmx+B,mBAAqB,SAAUC,GAC/C,IAAIC,EAAe,EACF,GAAGpx+B,MAAMjR,KAAKK,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiB,IAAMq/Z,MAC/Dxpa,SAAQ,SAAU8O,GACb,GAAGvE,MAAMjR,KAAKwV,EAAQrP,UAC5BO,SAAQ,SAAUsjV,GAAOA,EAAIxjV,MAAM+nJ,IAAM8z1B,EAAe,IAAM,IACpEA,GAAgB7s+B,EAAQ4/Q,YAC5B,IACAittB,EAAeD,EAAWhttB,aAAeittB,EACzChi/B,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KAAwB1pa,MAAMyiJ,OAAUo51B,EAAe,GAAM,KACjGhi/B,KAAKmoC,OAAO+27B,cAAcpqjB,OAC1BtsJ,GAAS,CAACu5tB,GAAalykB,KAGvB5nJ,GAAY,CAAC85tB,GAAalykB,IAElC,EACA0lkB,EAAU5k+B,UAAUsx+B,2BAA6B,SAAUC,EAAenr0B,EAAW21N,GACjF,GAAI31N,EAAUr1K,UAAYgrY,EAAQhrY,YACT269B,IAAsB3vlB,GAAW2vlB,IAAsBtlzB,IAAcslzB,IACtEr89B,KAAKmoC,OAAOi07B,cAAc+lB,qBAAsB,CAChE,IAAIC,EAAU,IAAI3g/B,KAAKs1K,GAGvB,GAFAqr0B,EAAQx94B,WAAWw94B,EAAQh/9B,aAAepjB,KAAKmoC,OAAOi07B,cAAc+lB,uBACpEz1mB,EAAU01mB,GACE1g/B,UAAYwg/B,EAAcjzB,QAAQvt9B,UAAW,CACrD,IAAI2g/B,EAAY,IAAI5g/B,KAAKyg/B,EAAcjzB,QAAQvt9B,WAC/C2g/B,EAAUz94B,WAAWy94B,EAAUj/9B,aAAepjB,KAAKmoC,OAAOi07B,cAAc+lB,sBACxEpr0B,EAAYsr0B,EACZ31mB,EAAUw1mB,EAAcjzB,OAC5B,CACJ,CAEJ,MAAO,CAAEr/jB,UAAW74O,EAAW84O,QAASnjB,EAC5C,EACA6omB,EAAU5k+B,UAAU2x+B,mBAAqB,SAAU11+B,EAAM6f,QACxC,IAAT7f,IAAmBA,EAAO,SAChB,IAAV6f,IAAoBA,EAAQ,GAGhC,IAFA,IAAIgtlB,EAAK34mB,GAAc,MACnB06xB,EAASx7xB,KAAKmoC,OAAOyz7B,WAAW4D,UAAU5u9B,OAAO,GAAG,GAC/CzE,EAAI,EAAGwjD,EAAM6ruB,EAAOp4xB,OAAQ+I,EAAIwjD,EAAKxjD,IAAK,CAC/C,IAAI6sH,EAAMwiqB,EAAOjvwB,SAASpgB,EAAE2K,WAAY,KACpCyr+B,EAAkBzh/B,GAAc,KAAM,CACtCC,UAAqB,WAAT6L,EAAqBija,IAAiD,kBAATjja,EACrEija,IAA6BA,IAAuBpmF,MAAO,CAAE,YAAazwN,EAAI94H,KAAKwB,UAAUoV,cAKrG,GAHKi1T,GAAkB/yM,EAAImnsB,aACvBoiL,EAAgBvt9B,aAAa,mBAAoBgkG,EAAImnsB,WAAWrpzB,YAEvD,KAATlK,EAAa,CACb,IAAI8zY,EAAe5/Y,GAAc,MAAO,CACpCq1B,GAAI05Y,IAAgC,IAAMpjZ,EAAM3V,WAChD/V,UAAW8ua,MAEf0ykB,EAAgB7w9B,YAAYgvX,EAChC,CACA+4N,EAAG/nlB,YAAY6w9B,GACf919B,GAAgB,CACpB,CACA,OAAOgtlB,CACX,EACA87X,EAAU5k+B,UAAU6x+B,mBAAqB,SAAUni/B,GAC/C,GAAI0rU,GAAkB1rU,GAClB,OAAOA,EAEX,IAAIukV,EAAYvkV,EAAE02B,MAClB,OAAO6tT,GAAaA,EAAUr7L,eAAiBq7L,EAAUr7L,eAAe,GAAKlpJ,EAAEkpJ,eAAiBlpJ,EAAEkpJ,eAAe,GAC7Gq7L,GAAavkV,CACrB,EACAk1+B,EAAU5k+B,UAAU8x+B,kBAAoB,SAAUtt+B,EAASmn+B,GACvD,IAAIztjB,EAAc/tb,GAAc,MAAO,CAAEC,UAAW8ua,IAA4B,IAAMA,MACtF,GAAIyskB,EAAUzsV,OAAQ,CAClB,IAAI6yV,EAAW7zjB,EAAY1rZ,YAC3BqlP,GAAS,CAACk6tB,GAAW7ykB,KACrB38S,GAAQ,CAACwv3B,GAAWvt+B,EACxB,CACA,GAAImn+B,EAAUvs5B,QAAS,CACnB,IAAI4y5B,EAAY9zjB,EAAY1rZ,YAC5BqlP,GAAS,CAACm6tB,GAAY9ykB,KACtB78S,GAAO,CAAC2v3B,GAAYxt+B,EACxB,CACA,GAAImn+B,EAAUpyR,MAAO,CACjB,IAAI04R,EAAU/zjB,EAAY1rZ,YAC1BqlP,GAAS,CAACo6tB,GTvlCW,aSwlCrB1v3B,GAAQ,CAAC0v3B,GAAUzt+B,EACvB,CACA,GAAImn+B,EAAUj+Q,SAAU,CACpB,IAAIwkR,EAAah0jB,EAAY1rZ,YAC7BqlP,GAAS,CAACq6tB,GT1lCa,eS2lCvB7v3B,GAAO,CAAC6v3B,GAAa1t+B,EACzB,CACJ,EACAog+B,EAAU5k+B,UAAU65b,aAAe,WAE/B,IADA,IACSl7b,EAAK,EAAGwz+B,EADC,GAAGly+B,MAAMjR,KAAKK,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiB,IAAMq/Z,MAC7Bvga,EAAKwz+B,EAAc1/+B,OAAQkM,IAAM,CAC3E,IAAI6F,EAAU2t+B,EAAcxz+B,GAC5BupO,GAAaswG,YAAYh0U,EAC7B,CACJ,EACAog+B,EAAU5k+B,UAAUymI,QAAU,WAC1Bp3I,KAAKwqc,eACLxqc,KAAKmoC,OAAS,IAClB,EACOot8B,CACX,CA9yC+B,GCZ3Brv7B,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAuBzC287B,IAA+B,SAAUj87B,GAEzC,SAASi87B,EAAc568B,GACnB,IAAI7oC,EAAQwnD,EAAOnnD,KAAKK,KAAMmoC,IAAWnoC,KAiBzC,OAhBAV,EAAMm6+B,WAAa,GACnBn6+B,EAAM0j/B,eAAiB,GACvB1j/B,EAAM2j/B,qBAAuB,GAC7B3j/B,EAAM4j/B,cAAgB,GACtB5j/B,EAAM6j/B,WAAa,GACnB7j/B,EAAM8j/B,YAAc,GACpB9j/B,EAAM+j/B,aAAe,GACrB/j/B,EAAMs+9B,UAAYt+9B,EAAM6oC,OAAOuz7B,kBAAkBiC,UAAUC,UAC3Dt+9B,EAAMkuU,SAAWluU,EAAM6oC,OAAOuz7B,kBAAkBiC,UAAUnwpB,SAC1DluU,EAAMgk/B,YAAc,EACpBhk/B,EAAM0v9B,UAAY1v9B,EAAM6oC,OAAOyz7B,WAAW2nB,eAC1Cjk/B,EAAM2v9B,QAAU3v9B,EAAM6oC,OAAOyz7B,WAAW4nB,aACxClk/B,EAAM6V,QAAU7V,EAAM6oC,OAAOyz7B,WAAWx0d,WACxC9ngB,EAAM6zN,OAAS7zN,EAAM6oC,OAAOw+7B,YAC5Brn+B,EAAM6vJ,UAAY,IAAI8gM,GAAU,CAAEwB,SAAUnyV,EAAMmk/B,kBAAkB5j/B,KAAKP,KACzEA,EAAMg8B,mBACCh8B,CACX,CA+yBA,OAn0BA4mD,IAAU687B,EAAej87B,GAqBzBi87B,EAAcpy+B,UAAU+y+B,mBAAqB,WACzC,IAAI33qB,GAAkB/rU,KAAKmoC,QAA3B,CAGInoC,KAAKmoC,OAAOg08B,mBACZn8+B,KAAKmoC,OAAOg08B,kBAAkBl9oB,cAElCj/V,KAAK6/+B,wBAA0B7/+B,KAAKmoC,OAAOw78B,2BAI3C,IAHA,IAAIC,EAAkB,GAAGhz+B,MAAMjR,KAAKK,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiB,IAAMq/Z,IAC3E,KAAOA,IAAwB,KAAOA,MACtCqve,KAAcl/4B,KAAKmoC,OAAOo47B,aAAcvg+B,KAAKmoC,OAAOo47B,WAAWwV,QAAQpzjB,cAClErza,EAAK,EAAGu0+B,EAAoBD,EAAiBt0+B,EAAKu0+B,EAAkBzg/B,OAAQkM,IAAM,CACvF,IAAInF,EAAU05+B,EAAkBv0+B,GAChC,IAAI4v4B,GAAgB/04B,EAAQ+9Q,UAAUh1P,SAAS28Y,MAC3C1la,EAAQ+9Q,UAAUh1P,SAAS28Y,KAU3B18Y,GAAOhpB,QARP,IADA,IAAIg2zB,EAAa5zyB,SAASpiB,EAAQmoB,aAAa,oBAAqB,IAC3DtiB,EAAI,EAAG2/C,EAAM3vD,KAAKmoC,OAAOo47B,WAAWwV,QAAQ+N,YAAY1g/B,OAAQ4M,EAAI2/C,EAAK3/C,IAC1EmwzB,IAAeng0B,KAAKmoC,OAAOo47B,WAAWwV,QAAQ+N,YAAYv39B,SAASvc,EAAE8G,WAAY,KAAKqpzB,YACtFA,IAAeng0B,KAAKmoC,OAAOo47B,WAAWwV,QAAQ18R,YAAY9srB,SAASvc,EAAE8G,WAAY,KAAKqpzB,YACtFhtyB,GAAOhpB,EAOvB,CACA,GAAKnK,KAAKmV,QAAQykB,cAAc,IAAMi2Y,OAGlC7va,KAAKmoC,OAAO2h8B,qBACZ9p+B,KAAKmoC,OAAO2h8B,oBAAoBia,wBAEpC/j/B,KAAKgk/B,cAAgB,GAAGpz+B,MAAMjR,KAAKK,KAAKmV,QAAQ3E,iBAAiB,IAAMq/Z,MACvE7va,KAAKik/B,mBAAmB,GACmB,IAAvCjk/B,KAAKmoC,OAAOs+7B,gBAAgBrj+B,QAAsD,IAAtCpD,KAAKmoC,OAAOuu8B,eAAetz+B,QAA3E,CAGA,IAAI4pb,EAAiBhtb,KAAKmV,QAAQykB,cAAc,IAAMi2Y,KACtDh3L,GAAa1lN,OAAO65Z,EAAgB,QAAShtb,KAAKkk/B,mBAClDrrwB,GAAazlN,IAAI45Z,EAAgB,QAAShtb,KAAKkk/B,kBAAmBlk/B,MAClEA,KAAKgj/B,eAAiB,GACtBhj/B,KAAKij/B,qBAAuB,GAC5Bjj/B,KAAKmk/B,mBACLnk/B,KAAKok/B,qBACLpk/B,KAAKqk/B,aAAa,gBACdrk/B,KAAKqj/B,aAAajg/B,OAAS,IAC3BpD,KAAKqj/B,aAAerj/B,KAAKqj/B,aAAaj9+B,QAAO,SAAUmvB,EAAM9I,EAAO0gB,GAChE,OAAO1gB,IAAU0gB,EAAIlnC,KAAI,SAAUsvB,GAAQ,OAAOA,EAAKwvwB,IAAM,IAAGp6xB,QAAQ4qB,EAAKwvwB,KACjF,IACA98gB,GAAYjoR,KAAKgk/B,cAAen0kB,KAChC7va,KAAKw1+B,MAAMpp+B,KAAKpM,KAAKmoC,OAAOyz7B,WAAW2D,YAAYt59B,KAAI,SAAU/F,GAAQ,OAAQA,CAAM,KACvFF,KAAKqk/B,aAAa,gBAClBrk/B,KAAKmvJ,UAAU8yJ,QAAQjiT,KAAKgk/B,cAAc,KAE9Chk/B,KAAKmoC,OAAOkxK,OAAOj+E,IAAqB,CAAC,GACzCotJ,GAASxoR,KAAKgk/B,cAAen0kB,KACzBqve,IACAl/4B,KAAKmoC,OAAOo47B,WAAWwV,QAAQpzjB,cAAe,GAElD3ib,KAAKmoC,OAAOukf,iBAvBZ,CAlCA,CA0DJ,EACAq2d,EAAcpy+B,UAAUwz+B,iBAAmB,WAUvC,GATAnk/B,KAAKsqhB,UAAatqhB,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,EAAKpD,KAAKmoC,OAAO+27B,cAActuX,gBACpG,CAAC5wmB,KAAKmoC,OAAOyh8B,aAAaC,kBAAkB7p+B,KAAKmoC,OAAO+27B,cAAc/+J,aACtEng0B,KAAKmoC,OAAOyh8B,aAAaC,kBAAoB,GAC7C7p+B,KAAKsqhB,UAAUlnhB,OAAS,GAAKpD,KAAKmoC,OAAOuz7B,kBAAkB4oB,uBAAyBtk/B,KAAKmoC,OAAO2h8B,sBAChG9p+B,KAAKsqhB,UAAYtqhB,KAAKmoC,OAAOyh8B,aAAac,mBAE9C1q+B,KAAKuyzB,WACD7hxB,WAAW1wC,KAAKmoC,OAAOhzB,QAAQykB,cAAc,4BAA4B66P,wBAAwB7rI,OAAOlmC,QAAQ,IACpH1iH,KAAKy5+B,WAAW,GAAKz5+B,KAAKmoC,OAAOyz7B,WAAW2D,YACxCv/9B,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,EACvD,IAAK,IAAI+I,EAAI,EAAGwjD,EAAM3vD,KAAKsqhB,UAAUlnhB,OAAQ+I,EAAIwjD,EAAKxjD,IAClDnM,KAAKy5+B,WAAWlt9B,SAASpgB,EAAE2K,WAAY,KAAO9W,KAAKsqhB,UAAU/9f,SAASpgB,EAAE2K,WAAY,KAAKyo9B,WAGrG,EACAwjB,EAAcpy+B,UAAU0mqB,UAAY,SAAUnhoB,EAAOkD,GACjD,IAAImr8B,GAAaloB,IAAsBjj7B,GAAOij7B,IAAsBnm7B,IAChEmm7B,KAAsBr89B,KAAKuyzB,WAAavyzB,KAAK499B,WAAa599B,KAAKwtU,SAEnE,OADA+2qB,EAAaA,GAAa,EAAKvk/B,KAAKuyzB,WAAagyL,CAErD,EACAxB,EAAcpy+B,UAAU6z+B,YAAc,SAAU/N,EAAUgO,EAAoBh49B,EAAOi49B,GACjF,IAAInC,EAAkBvi/B,KAAKmV,QAAQykB,cAAc,IAAMi2Y,IAAgC,QAAUA,IAAgC,IAAMpjZ,EAAQ,MAC3IzsB,KAAKmoC,OAAOkwT,UACZrN,GAAkBy5pB,EAAoB,CAAE,MAASC,IAGjD15pB,GAAkBy5pB,EAAoB,CAAE,KAAQC,IAEpD,IAAInt9B,EAAYkt9B,EAAmBv8tB,UAAUh1P,SAAS28Y,KAA+B,aAAe,QAChG52Z,EAAO,CACPixB,KAAMu/C,GAAO,CAAC,EAAGgt5B,EAAU,MAAM,GACjCth+B,QAASsv+B,EAAoB3j6B,QAAQ,EAAOl0E,KAAM2qB,GAEtDv3B,KAAKmoC,OAAOm4P,QAAQllK,IAAsBniH,GAAM,SAAU2rU,GACjDA,EAAU9jQ,QACXyh6B,EAAgB7w9B,YAAY+y9B,EAEpC,GACJ,EACA1B,EAAcpy+B,UAAUyz+B,mBAAqB,WAGzC,IAFA,IAAI95d,EAAYtqhB,KAAK2k/B,kBACjBC,EAAY5k/B,KAAK6k/B,gBACZv1+B,EAAK,EAAGw1+B,EAAcx6d,EAAWh7gB,EAAKw1+B,EAAY1h/B,OAAQkM,IAG/D,IAFA,IAAI66xB,EAAW26M,EAAYx1+B,GACvBiw9B,EAAcv/9B,KAAKy5+B,WAAWlt9B,SAAS49wB,EAASrzxB,WAAY,KACvD7T,EAAM,EAAG89S,EAAWw+qB,EAAYn89B,OAAQH,EAAM89S,EAAU99S,IAAO,CAIpE,IAHA,IAAI2sZ,EAAY,IAAInuZ,KAAK899B,EAAYhz8B,SAAStpB,EAAI6T,WAAY,KAAKpV,WAC/DmuZ,EAAUwskB,IAAakD,EAAYhz8B,SAAStpB,EAAI6T,WAAY,KAAM,GAE7Dw+B,EAAK,EAAGyv8B,EADE/k/B,KAAKs2+B,aAAa1mlB,EAAWC,EAAS7vZ,KAAKmoC,OAAOuu8B,eAAgB12+B,KAAKsqhB,UAAU/9f,SAAS49wB,EAASrzxB,WAAY,MAClFw+B,EAAKyv8B,EAAe3h/B,OAAQkyC,IAAM,CAC9E,IAAIi0S,EAAUw7pB,EAAezv8B,GACzBt1C,KAAKmoC,OAAOyh8B,cACZ5p+B,KAAKgl/B,UAAUz7pB,EAAS4gd,GAE5BnqyB,KAAKil/B,kBAAkB17pB,EAAStmV,EAAKknyB,EAAUy6M,GAC/C5k/B,KAAK4vW,SAAW,KAChB5vW,KAAKo4+B,WAAa,IACtB,CACAwM,GAAa,CACjB,CAER,EACA7B,EAAcpy+B,UAAUs0+B,kBAAoB,SAAUxO,EAAUhI,EAAUtkM,EAAU+6M,GAChF,IAAIC,EAAcnl/B,KAAKol/B,eAAe3O,EAAUhI,EAAUtkM,GACtDqtM,EAAS2N,EAAYnl/B,KAAKmzN,OAAOp8C,WACjC0g0B,EAAO0N,EAAYnl/B,KAAKmzN,OAAOu5K,SAE/BjnG,EAAW42rB,IADGA,IAAe,IAAI569B,KAAKzB,KAAKy5+B,WAAWlt9B,SAAS49wB,EAASrzxB,WAAY,KAAKyV,SAASki9B,EAAS339B,WAAY,KAAKpV,YAC9E1B,KAAKgv9B,UAAWhv9B,KAAKiv9B,SACvE,GAAIuoB,GAAUC,GAAQz3+B,KAAK2h/B,aAAalL,EAAUe,EAAQC,EAAMhysB,IAAazlS,KAAKql/B,mBAAmBl7M,EAAUqtM,GAAS,CACpH,IAAI8N,OAAW,EACXC,OAAc,EAClB,GAAIJ,EAAYnl/B,KAAKmzN,OAAO4qwB,UAExBwnB,EAAc73qB,GADI1tU,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,IAAyB,UAC9C96I,cACrCuwtB,EAAW53qB,GAAW,QAGtB63qB,EAAc73qB,GAAW1tU,KAAKq3qB,UAAUmgU,EAAQC,IAChD6N,EAAW53qB,GAAW1tU,KAAKwl/B,YAAYhO,EAAQ/I,EAAUtkM,IAE7D,IAAIs6M,EAAqBzk/B,KAAK4/+B,8BAA8BnJ,EAAUtsM,EAAUnqyB,KAAK6/+B,yBACrF70pB,GAAkBy5pB,EAAoB,CAAE,MAAS,OAAQ,OAAUc,EAAa,IAAOD,IACvF,IAAI749B,EAAQzsB,KAAKyl/B,YAAYhX,EAAUtkM,EAAU+6M,GACjDll/B,KAAKwk/B,YAAY/N,EAAUgO,EAAoBh49B,EAAO,MAC1D,CACJ,EACAs29B,EAAcpy+B,UAAU0z+B,aAAe,SAAU9s9B,GAC7C0wP,GAAYjoR,KAAKgk/B,cAAen0kB,KAgEhC,IA/DA,IAGI8/S,EAHAinR,EAAiC,iBAAdr/8B,EAAgCv3B,KAAKy4+B,eAAez4+B,KAAKqj/B,mBAAgBhg/B,EAC5FinhB,EAAYtqhB,KAAK2k/B,kBACjBC,EAAY5k/B,KAAK6k/B,gBAEjBN,EAA0B,iBAAdht9B,EAA+B8k8B,IAA+Br89B,KAAKmV,QAAQykB,cAAc,IAAMi2Y,KAAuCA,KAAyB,EAC3K61kB,EAA6B,iBAAdnu9B,GAAgCv3B,KAAKgk/B,cAAc5g/B,OAAS,EAAIpD,KAAKgk/B,cAAc,GAAGphsB,UAAY,EACjH6pB,EAAU,SAAU09d,GACpBx6E,GAAW,EACPx0X,EAAOhzT,OAAOo47B,YAAcploB,EAAOhzT,OAAOo47B,WAAWwV,QAAQpzjB,cAA8B,iBAAdprZ,IACzE4jU,EAAOhzT,OAAO+27B,cAActuX,iBAC6F,IAAzHz1Q,EAAOhzT,OAAOo47B,WAAWwV,QAAQ+N,YAAY19+B,QAAO,SAAU8jC,GAAQ,OAAOA,EAAKi2xB,aAAeh2B,CAAU,IAAG/myB,QACW,IAAzH+3V,EAAOhzT,OAAOo47B,WAAWwV,QAAQ18R,YAAYjzsB,QAAO,SAAU8jC,GAAQ,OAAOA,EAAKi2xB,aAAeh2B,CAAU,IAAG/myB,SAC9GustB,GAAW,GAGnBx0X,EAAOq6oB,MAAQ,GACf,IAAIjW,EAAcpkoB,EAAOs+oB,WAAWlt9B,SAAS49wB,EAASrzxB,WAAY,KAC9D6u+B,EAAexqpB,EAAOg/oB,iBAAiB5a,IAAgBA,EAC3DpkoB,EAAOq6oB,MAAMpp+B,KAAKmz9B,EAAYt59B,KAAI,SAAU/F,GAAQ,OAAQA,CAAM,KAClE,IAAK,IAAI+C,EAAM,EAAG4k6B,EAAW03D,EAAYn89B,OAAQH,EAAM4k6B,GACnD03D,EAAYhz8B,SAAStpB,EAAI6T,WAAY,MAAQ6u+B,EAAaA,EAAavi/B,OAAS,GAAIH,IAAO,CAC3Fk4V,EAAO6npB,eAAiB,GACxB,IAAIpzlB,EAAY,IAAInuZ,KAAK899B,EAAYhz8B,SAAStpB,EAAI6T,WAAY,KAAKpV,WAC/DmuZ,EAAUwskB,IAAakD,EAAYhz8B,SAAStpB,EAAI6T,WAAY,KAAM,GAClEw/9B,EAAen7oB,EAAOm7oB,aAAa1mlB,EAAWC,EAAS+mlB,EAAiBz7oB,EAAOmvL,UAAU/9f,SAAS49wB,EAASrzxB,WAAY,MAC3H,GAAI64sB,EACA,IAAK,IAAIrgtB,EAAK,EAAGs2+B,EAAiBtP,EAAchn+B,EAAKs2+B,EAAexi/B,OAAQkM,IAAM,CAC9E,IAAIwqV,EAAU8rpB,EAAet2+B,GAI7B,GAHI6rV,EAAOhzT,OAAOyh8B,cACdzuoB,EAAO6ppB,UAAUlrpB,EAASqwc,GAEZ,iBAAd5ywB,EACA4jU,EAAO0qpB,mBAAmB/rpB,EAAS72V,EAAKknyB,EAAUy6M,GAAW,EAAOc,EAAcnB,QAGlF,GAAIpppB,EAAOigpB,oBAAoBthpB,GAC3BqB,EAAOkopB,aAAaj3+B,KAAKq9E,GAAO,CAAC,EAAGqwQ,EAAS,MAAM,QAElD,CACD,GAAIqB,EAAOhzT,OAAOi07B,cAAc0pB,iBACxB3qpB,EAAO4qpB,gBAAgBjspB,EAAS72V,GAAK,EAAOknyB,GAAY,EACxD,SAGRhvc,EAAO6qpB,mBAAmBlspB,EAAS72V,EAAKknyB,EAAUy6M,EACtD,CAEJzppB,EAAOyU,SAAW,KAClBzU,EAAOi9oB,WAAa,IACxB,MAGA,IAAK,IAAI9i8B,EAAK,EAAG2w8B,EAAiB3P,EAAchh8B,EAAK2w8B,EAAe7i/B,OAAQkyC,IAAM,CAC9E,IAAIyp8B,EAAUkH,EAAe3w8B,GACzB6lT,EAAOigpB,oBAAoB2D,IAC3B5jpB,EAAOkopB,aAAaj3+B,KAAKq9E,GAAO,CAAC,EAAGs15B,EAAS,MAAM,GAE3D,CAEJ6F,GAAa,CACjB,CACJ,EACIzppB,EAASn7V,KACJsP,EAAK,EAAG42+B,EAAc57d,EAAWh7gB,EAAK42+B,EAAY9i/B,OAAQkM,IAAM,CAErEm9T,EADey5qB,EAAY52+B,GAE/B,CACJ,EACAyz+B,EAAcpy+B,UAAUk0+B,cAAgB,WACpC,OAAO7k/B,KAAKmoC,OAAO2h8B,qBAAuB9p+B,KAAKmoC,OAAOuz7B,kBAAkB4oB,uBAAyBtk/B,KAAKmoC,OAAOw17B,UAAUhtkB,OACnHpkY,SAASvsB,KAAKmV,QAAQykB,cAAc,IAAMi2Y,KAA+Bv9Y,aAAa,MAAMK,MAAM,KAAK/hB,OAAO,GAAG,GAAI,IAAM,CACnI,EACAmy+B,EAAcpy+B,UAAU80+B,YAAc,SAAUhX,EAAUtkM,EAAU+6M,GAChE,IAAI5l/B,EAAQU,KACZ,IAAKA,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMw75B,OACrC,OAAOoL,EAEX,GAAIll/B,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMw75B,SAAW95+B,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAM6n6B,mBAAoB,CACvG,IAAIC,EAAgBpm/B,KAAKmoC,OAAOyh8B,aAAaC,kBAAkB,GAAGtK,YAAY509B,QAAQ3K,KAAKy5+B,WAAWlt9B,SAAS49wB,EAASrzxB,WAAY,KAAKyV,SAASki9B,EAAS339B,WAAY,MACvK,OAAQ9W,KAAKsqhB,UAAUlnhB,OAASgj/B,EAAiBj8M,CACrD,CAKA,IAJA,IAAIxnY,EAAY,EACZ0jlB,EAAcrm/B,KAAKmoC,OAAOyz7B,WAAW4D,UAAU,GAC/Cnu3B,EAAcrxG,KAAKy5+B,WAAWlt9B,SAAS49wB,EAASrzxB,WAAY,KAAKyV,SAASki9B,EAAS339B,WAAY,KAAKpV,UACpG4k/B,EAAmB,GACdn6+B,EAAI,EAAGA,EAAIk6+B,EAAYjj/B,SAC5Bkj/B,EAAmBtm/B,KAAKmoC,OAAOyh8B,aAAa2c,iBAAiBh69B,SAASpgB,EAAE2K,WAAY,KAChFu6F,IAAgBg14B,EAAY959B,SAASpgB,EAAE2K,WAAY,KAAK5W,KAAKwB,WAF7ByK,IAKpCw2Z,GAAwB0jlB,EAAY959B,SAASpgB,EAAE2K,WAAY,KAAKm/lB,QAEpE,IAAI/0iB,EAAWol7B,EAAiBp99B,WAAU,SAAUhP,GAAK,OAAOA,EAAEk+9B,WAAWth+B,aACzExX,EAAMgrhB,UAAU/9f,SAAS49wB,EAASrzxB,WAAY,KAAKsh+B,WAAWth+B,UAAY,IAC9E,OAAIoqD,EAAW,EACJyhW,EAEJA,EAAYzhW,CACvB,EACA6h7B,EAAcpy+B,UAAUq0+B,UAAY,SAAUju9B,EAAOyv9B,GAC7Cxm/B,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,GACvDpD,KAAK4vW,SAAW5vW,KAAKsqhB,UAAU/9f,SAASi69B,EAAc1v+B,WAAY,KAAK84V,SACvE5vW,KAAKo4+B,WAAap4+B,KAAKsqhB,UAAU/9f,SAASi69B,EAAc1v+B,WAAY,KAAKsh+B,YAGzEp4+B,KAAK4vW,SAAW5vW,KAAKmoC,OAAOyh8B,aAAa6c,YAAY1v9B,EAE7D,EACAgs9B,EAAcpy+B,UAAUg0+B,gBAAkB,WAMtC,OAJgBj0+B,MAAMyI,MAAM,KAAM,CAC9B/V,OAASpD,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,IAAMpD,KAAKmoC,OAAO+27B,cAActuX,gBAC5F5wmB,KAAKsqhB,UAAUlnhB,OAAS,IAC7B6C,KAAI,SAAUrE,EAAO6qB,GAAS,OAAOA,CAAO,GAEnD,EAEAs29B,EAAcpy+B,UAAU+1+B,yBAA2B,SAAUvvkB,EAAQ4mjB,EAAU7z7B,EAAMigwB,GACjF,IAAImhM,EAAetr+B,KAAKmoC,OAAOw+7B,YAC3BggB,EAAiBxvkB,EAAOm0jB,EAAah0hB,UAAYt3c,KAAKmoC,OAAOi07B,cAAcjpwB,OAAOmkP,QAAQz2c,SACvFb,KAAKmoC,OAAOkje,UAAUtlK,YAAY,YACrCg6oB,EAAqBj/+B,GAAc,MAAO,CAC1CC,UAAW8ua,IACXpmF,MAAO,CACH,UAAW,eAAiB0tF,EAAOm0jB,EAAan18B,IAChD,YAAaghZ,EAAO4tX,KACpB,KAAQ,SACR,SAAY,IACZ,gBAAiB/kyB,KAAKmoC,OAAOu87B,UAAU2b,qBAAqBlpkB,GAC5D,aAAcn3a,KAAKmoC,OAAOy+8B,sBAAsBzvkB,MAGpDA,EAAOn3a,KAAKmzN,OAAO8rL,aACnBz2H,GAAS,CAACu3tB,GAAqB,eAEnC,IAMInqoB,EANAixoB,EAAqB/l/B,GAAc,MAAO,CAAEC,UAAW8ua,MAE3D,GADAkwkB,EAAmBru9B,YAAYm19B,GAC3B7m/B,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,EAAG,CAC1D,IAAIoj/B,EAAgBxm/B,KAAKmoC,OAAO+27B,cAActuX,gBAAkB5wmB,KAAKmoC,OAAO+27B,cAAc/+J,WAAah2B,EACvG41M,EAAmB/q9B,aAAa,mBAAoBwx9B,EAAc1v+B,WACtE,CAEA,IAAIoyU,EAAYh/S,EAChB,GAAK6hS,GAAkB/rU,KAAKmoC,OAAOuz7B,kBAAkBskB,eAQhD,CACD,IAAIC,EAAqBn/+B,GAAc,MAAO,CAAEC,UAAW8ua,MAE3D,GADA7va,KAAKmoC,OAAOyD,SAAS+68B,EAAe1G,GAChCliB,EACA,GAAI5mjB,EAAOm0jB,EAAavN,UACpBnonB,EAAkB,CAACqqoB,OAElB,CACDrqoB,EAAkB,GAClB,IAAIkxoB,EAAuBhm/B,GAAc,MAAO,CAC5CC,UAAW8ua,KAAwB7va,KAAKmoC,OAAOumrB,WAAa,IAAM7+S,IAAoB,IACtF3mY,UAAWlpC,KAAKmoC,OAAO4+8B,cAAc5vkB,EAAOm0jB,EAAav0zB,cAEzDiw0B,EAAqBlm/B,GAAc,MAAO,CAC1CC,UAAW8ua,KAAwB7va,KAAKmoC,OAAOumrB,WAAa,IAAM7+S,IAAoB,IACtF3mY,UAAWlpC,KAAKmoC,OAAO4+8B,cAAc5vkB,EAAOm0jB,EAAa5+lB,YAE7DlkH,GAAS,CAACy3tB,GAAqB,iBAC1B/2pB,EAAU2mU,QACXj6S,EAAgBxpW,KAAK06+B,GAEzBlxoB,EAAgBxpW,KAAK6z+B,GAChB/2pB,EAAUn5P,SACX6lR,EAAgBxpW,KAAK46+B,EAE7B,KAEC,CACD,IAAIC,EAAUjn/B,KAAKmoC,OAAO4+8B,cAAc5vkB,EAAOm0jB,EAAav0zB,YAAc,MACtE/2K,KAAKmoC,OAAO4+8B,cAAc5vkB,EAAOm0jB,EAAa5+lB,UAC9Cw6mB,EAAkBpm/B,GAAc,MAAO,CACvCC,UAAW8ua,KAAwB7va,KAAKmoC,OAAOumrB,WAAa,IAAM7+S,IAAoB,IACtF3mY,UAAW+98B,IAEXE,EAAsBrm/B,GAAc,MAAO,CAAEC,UAAW8ua,MAC5D7va,KAAKmoC,OAAOyD,SAAUurY,EAAOm0jB,EAAa3z8B,WAAa33B,KAAKmoC,OAAOi07B,cAAcjpwB,OAAOx7L,SAAS92B,SAAW,GAAKsm/B,GACjHvxoB,EAAkB,CAACqqoB,EAAoBiH,EAAiBC,EAC5D,CACJ,KA9CqE,CACjE,IAEIh6oB,EAFYntW,KAAKmoC,OAAOhzB,QAAQghB,GAAK,IAC1Bn2B,KAAKmoC,OAAOuz7B,kBAAkBwkB,kBACL,gBACpCh/6B,EAAWlhE,KAAKmoC,OAAO+27B,cAActuX,gBAAkB5wmB,KAAKmoC,OAAO+27B,cAAc/+J,WAAah2B,EAC9F3vc,EAAe,iBAAmBx6V,KAAK6/+B,wBAA0B,IAAM3+6B,EAAW,IACtF00S,EAAkB51W,KAAKmoC,OAAOg48B,wBAAZng/B,CAAqCm3a,EAAQn3a,KAAKmoC,OAAQqyT,EAAc2S,GAAY,EAC1G,CAyCA,GADAn6O,GAAO4iP,EAAiBixoB,IACnB7m/B,KAAKmoC,OAAOumrB,cACX3iZ,GAAkBorG,EAAOm0jB,EAAaD,mBAAqBt/pB,GAAkBorG,EAAOm0jB,EAAawK,gBAAiB,CACpH,IAAIt1lB,EAAa22B,EAAOm0jB,EAAan18B,MAAQghZ,EAAOm0jB,EAAawK,cAC7DjmkB,IAAkCA,IAClCu3kB,EAAiBtm/B,GAAc,MAAO,CAAEC,UAAW8ua,IAAW,IAAMrvB,IACpEu9kB,EACA8oB,EAAmBn19B,YAAY019B,GAG/BrH,EAAmBru9B,YAAY019B,EAEvC,CAOA,OANApn/B,KAAKmoC,OAAOu87B,UAAU+d,kBAAkB1kB,EAAW8oB,EAAqB9G,EAAoB72pB,GACvFnd,GAAkB/rU,KAAK4vW,WACxBpnF,GAAS,CAACu3tB,GAAqB//+B,KAAK4vW,UAExC5vW,KAAKy/+B,mBAAmBM,EAAoB5okB,EAAQ,kBAAmBn3a,KAAKo4+B,YAC5Ep4+B,KAAKq8+B,oBAAoB0D,EAAoB72pB,EAAWiuF,EAAOn3a,KAAKmzN,OAAO8rL,aACpE8gmB,CACX,EACAgD,EAAcpy+B,UAAU02+B,oBAAsB,SAAUnkB,EAAWt48B,EAAO089B,GACtE,IAAI769B,EAAQ669B,EAAa189B,EACrB289B,EAAerkB,EAAU328B,SAASE,EAAM3V,WAAY,KACxD,GAAIyw+B,EAAapxjB,mBAAqB,EAAG,CACrC,IAAIqxjB,EAAiB1m/B,GAAc,MAAO,CACtCC,UAAW8ua,IACX15Y,GAAI05Y,IAA8B,IAAMpjZ,EAAM3V,aAE9C2w+B,EAAuB3m/B,GAAc,MAAO,CAC5CC,UAAW8ua,IACXpmF,MAAO,CAAE,SAAY,IAAK,aAAch9T,EAAM3V,WAAY,aAAc,KACxEoyB,UAAW,YAAclpC,KAAKmoC,OAAOumrB,WAAa,GAAK1utB,KAAKmoC,OAAOkje,UAAUtlK,YAAY,WAE7FyhpB,EAAe919B,YAAY+19B,GAC3BF,EAAa719B,YAAY819B,GACzB3uwB,GAAazlN,IAAIq09B,EAAsB,QAASzn/B,KAAKkk/B,kBAAmBlk/B,KAC5E,KACK,CACD,IAAI0n/B,EAAYH,EAAa3t9B,cAAc,IAAMi2Y,KAC7C83kB,EAAYp79B,SAASm79B,EAAUp19B,aAAa,cAAe,IAAM,EACrEo19B,EAAU1y9B,aAAa,aAAc2y9B,EAAU7w+B,YAC/C4w+B,EAAUx+8B,UAAY,IAAMlpC,KAAKmoC,OAAOo7W,UAAU/jE,aAAamoqB,GAAa,UAAY3n/B,KAAKmoC,OAAOumrB,WAAa,GAAK1utB,KAAKmoC,OAAOkje,UAAUtlK,YAAY,QAC5J,CACJ,EACAg9oB,EAAcpy+B,UAAUy0+B,eAAiB,SAAUjukB,EAAQl0a,EAAKknyB,GAC5D,IAAI94rB,EAAcgr3B,IAAer89B,KAAKy5+B,WAAWlt9B,SAAS49wB,EAASrzxB,WAAY,KAAKyV,SAAStpB,EAAI6T,WAAY,MACzG6u+B,EAAe3l/B,KAAKm6+B,iBAAiBn6+B,KAAKy5+B,WAAWlt9B,SAAS49wB,EAASrzxB,WAAY,OAAS,CAACu6F,GAEvE,IADTs04B,EAAav/+B,QAAO,SAAUlG,GAAQ,OAAOA,EAAKyD,WAAaV,CAAK,IACtEG,SACXiuG,EAAcgr3B,IAAespB,EAAa,KAE9C,IAAIvm4B,EAAQp/G,KAAKmoC,OAAOw+7B,YACpBlhsB,EAAW42rB,IAAsBhr3B,EAAarxG,KAAKgv9B,UAAWhv9B,KAAKiv9B,SACnEl47B,EAAQ0yD,GAAO,CAAC,EAAG0tV,EAAQ,MAAM,GACrCpgZ,EAAM0+kB,UAAY,CAAE4oH,UAAU,EAAOnU,OAAO,GACxC/yS,EAAO/3T,EAAM23D,WAAWr1K,UAAY+jS,EAASuprB,UAAUtt9B,YACvDq1B,EAAMqoF,EAAM23D,WAAa0uH,EAASuprB,UAClCj47B,EAAM0+kB,UAAUy0G,OAAQ,GAExB/yS,EAAO/3T,EAAMstR,SAAShrY,UAAY+jS,EAASwprB,QAAQvt9B,YACnDq1B,EAAMqoF,EAAMstR,SAAWjnG,EAASwprB,QAChCl47B,EAAM0+kB,UAAU4oH,UAAW,GAE/B,IAAIupR,EAAa5n/B,KAAKii/B,2BAA2Bx8sB,EAAU1uQ,EAAMqoF,EAAM23D,WAAYhgJ,EAAMqoF,EAAMstR,UAG/F,OAFA31W,EAAMqoF,EAAM23D,WAAa6w0B,EAAWh4lB,UACpC74X,EAAMqoF,EAAMstR,SAAWk7mB,EAAW/3lB,QAC3B94X,CACX,EACAgs9B,EAAcpy+B,UAAU00+B,mBAAqB,SAAUl7M,EAAUj0vB,GAC7D,GAAIl2C,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAM6n6B,oBAAsBnm/B,KAAKsqhB,UAAUlnhB,OAAS,EAAG,CACrF,IAAIyk/B,EAAW7n/B,KAAKsqhB,UAAU/9f,SAAS49wB,EAASrzxB,WAAY,KACxDyg+B,aAAav3+B,KAAKsqhB,UAAU/9f,SAAS49wB,EAASrzxB,WAAY,KAAKqzxB,SAAS29M,gBACxE9n/B,KAAKmoC,OAAOuz7B,kBAAkBmsB,SAClC,OAAOA,GAAYA,EAASl9+B,QAAQurC,EAAMvyC,WAAa,CAC3D,CACA,OAAO,CACX,EAEAo/+B,EAAcpy+B,UAAUk1+B,mBAAqB,SAAUpP,EAAUhI,EAAUtkM,EAAU+6M,EAAUrp3B,EAAQks3B,EAASC,GAC5G,IAAI1o/B,EAAQU,KACRio/B,EAAejo/B,KAAKm6+B,iBAAiBn6+B,KAAKy5+B,WAAWlt9B,SAAS49wB,EAASrzxB,WAAY,OACnF9W,KAAKy5+B,WAAWlt9B,SAAS49wB,EAASrzxB,WAAY,KAC9C9W,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMw75B,SACpC95+B,KAAKw1+B,MAAM,GAAK,CAACx1+B,KAAKy5+B,WAAWlt9B,SAAS49wB,EAASrzxB,WAAY,KAAKyV,SAASki9B,EAAS339B,WAAY,KAAKpV,WACvGum/B,EAAe,CAACjo/B,KAAKy5+B,WAAWlt9B,SAAS49wB,EAASrzxB,WAAY,KAAKyV,SAASki9B,EAAS339B,WAAY,OAErG,IAAIqga,EAASn3a,KAAKw5+B,WAAW/C,EAAUwR,GAAc,GACjDzQ,EAAS,IAAI/1+B,KAAK01a,EAAOn3a,KAAKmoC,OAAOw+7B,YAAY5vzB,WAAWr1K,WAC5D+1+B,EAAO,IAAIh2+B,KAAK01a,EAAOn3a,KAAKmoC,OAAOw+7B,YAAYj6lB,SAAShrY,WACxDwm/B,EAAW,EACX56d,EAAW,EACX66d,EAAcF,EAAa,GAAGvm/B,WAAa81+B,EAAO91+B,WAClD269B,IAAa4rB,EAAar3+B,OAAO,GAAG,GAAI,GAAGlP,WAAa81+B,EAAO91+B,UACnE,GAAI81+B,GAAUC,GAAQ0Q,GAAeno/B,KAAKql/B,mBAAmBl7M,EAAUqtM,GAAS,CAC5E,IAAI4Q,EAAoB,GAaxB,GAZIpo/B,KAAKij/B,qBAAqB129B,SAAS49wB,EAASrzxB,WAAY,OACxDsx+B,EAAoBpo/B,KAAKij/B,qBAAqB129B,SAAS49wB,EAASrzxB,WAAY,KAAK1Q,QAAO,SAAU2wB,GAC9F,OAAOA,EAAMguwB,OAAS0xM,EAAS1xM,IACnC,IACI/kyB,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMw75B,SACpCsO,EAAoBA,EAAkBhi/B,QAAO,SAAU2wB,GACnD,OAAOA,EAAMz3B,EAAM6oC,OAAOw+7B,YAAY5vzB,YAAckx0B,EAAa179B,SAASki9B,EAAS339B,WAAY,MAC3FigB,EAAMz3B,EAAM6oC,OAAOw+7B,YAAYj6lB,UAC3B2vlB,IAAa,IAAI569B,MAAMwm/B,EAAa179B,SAASki9B,EAAS339B,WAAY,MAAO,EACrF,MAGyB,IAA7Bsx+B,EAAkBhl/B,OAAc,CAChC,IAAIil/B,EAAqBlxkB,EAAOjtY,KAAKtf,MACjC099B,EAAgBto/B,KAAK+l/B,gBAAgB5ukB,EAAQs3jB,GAAU,EAAMtkM,GACjEhzX,EAAOoxkB,MAAQD,EACfto/B,KAAKsj/B,YAAetj/B,KAAKsj/B,YAAcgF,EAAiBA,EAAgBto/B,KAAKsj/B,YAC7E,IAAIkF,EAAkBrxkB,EAAOjtY,KAAK6lD,QAAU,EACZ,QAA5B/vF,KAAKmoC,OAAOw/W,YAAwB,EAAI,EACxC0gmB,GAAsB,IACtBH,EAAiC,IAArBG,EAA4BG,GAExCz8qB,GAAkB/rU,KAAKij/B,qBAAqB129B,SAAS49wB,EAASrzxB,WAAY,QAC1E9W,KAAKij/B,qBAAqB129B,SAAS49wB,EAASrzxB,WAAY,KAAO,IAEnE9W,KAAKij/B,qBAAqB129B,SAAS49wB,EAASrzxB,WAAY,KAAK1K,KAAKq9E,GAAO,CAAC,EAAG0tV,EAAQ,MAAM,IAC3F,IAIIsxkB,EAJAzf,EAAc,GAAGp49B,MAAMjR,KAAKK,KAAKmV,QAAQykB,cAAc,IAAMi2Y,KAAsB/pa,UACnF4i/B,EAAW1o/B,KAAKyl/B,YAAYhX,EAAUtkM,EAAU+6M,GAChDyD,EAAiB3o/B,KAAKmV,QAAQykB,cAAc,IAAMi2Y,IAClD,eAAiB64kB,EAAW,GAAK,KAQrClguB,GAAS,CALLiguB,EADA5s3B,EACuB77H,KAAKmoC,OAAOq67B,aAAaomB,+BAA+BnS,GAGxDz2+B,KAAK0m/B,yBAAyBjQ,GAAU,EAAMt/jB,EAAOjtY,KAAMigwB,IAErDt6X,KACjC,IAAI3mF,EAAYz/P,GAAO,CAAC,EAAG0tV,EAAOjtY,KAAM,MAAM,GAC9Cus8B,EAASvs8B,KAAOg/S,EAChB,IAAIjwU,EAAO,CAAEixB,KAAMus8B,EAAUth+B,QAASsz+B,EAAsB3n6B,QAAQ,GACpE9gF,KAAKmoC,OAAOm4P,QAAQllK,IAAsBniH,GAAM,SAAU2rU,GACtD,IAAKA,EAAU9jQ,OAAQ,CAInB,GAHA6n6B,EAAej39B,YAAY+29B,GAE3Bz9pB,GAAkBy9pB,EAAsB,CAAE,MAASP,EAAW,IAAK,IAAOx6qB,GAD1E4/M,IAA+B,IAAlBg7d,EAAsBP,EAAWA,EAAWO,EAAgBN,GAAiB,KAEtFM,EAAgB,EAAG,CACnBhp/B,EAAM6j/B,WAAW/2+B,KAAKq8+B,GACtB,IAAK,IAAI799B,EAAQ,EAAGi+9B,EAAWR,EAAoBz99B,EAAQi+9B,EAAUj+9B,IACjEtrB,EAAM+n/B,oBAAoBre,EAAap+8B,EAAO899B,EAEtD,CACApp/B,EAAM0k/B,cAAc,GAAGhv9B,aAAa,aAAc11B,EAAMgk/B,YAAYxs+B,YACpE,IAAIgy+B,EAC+D,IAD1Cxp/B,EAAM6oC,OAAO+27B,cAAcpqjB,QAAUx1a,EAAMgk/B,YAAc,EAC7E,EAAI0E,GAAiB1o/B,EAAMgk/B,YAAc,GAAK0E,GACnD1o/B,EAAM2k/B,mBAAmB6E,GACzBxp/B,EAAMyp/B,mBACNzp/B,EAAMw8+B,sBAAsB2M,EAAsBhS,EACtD,CACJ,GACJ,CACJ,CACJ,EACAsM,EAAcpy+B,UAAUq1+B,mBAAqB,SAAUvP,EAAUhI,EAAUtkM,EAAU+6M,EAAUrp3B,GAC3F,IAAIs7S,EAASn3a,KAAKol/B,eAAe3O,EAAUhI,EAAUtkM,GACjDqtM,EAASrgkB,EAAOn3a,KAAKmzN,OAAOp8C,WAC5B0g0B,EAAOtgkB,EAAOn3a,KAAKmzN,OAAOu5K,SAG1B4gJ,EAAW,EAEX7nP,EAAW42rB,IADGA,IAAe,IAAI569B,KAAKzB,KAAKy5+B,WAAWlt9B,SAAS49wB,EAASrzxB,WAAY,KAAKyV,SAASki9B,EAAS339B,WAAY,KAAKpV,YAC9E1B,KAAKgv9B,UAAWhv9B,KAAKiv9B,SACnE0yB,EAAe3h/B,KAAK2h/B,aAAalL,EAAUe,EAAQC,EAAMhysB,GAC7D,KAAK+xsB,EAAO91+B,UAAY1B,KAAKmoC,OAAOo1V,QAAQ77X,WAAe+1+B,EAAK/1+B,UAAY1B,KAAKmoC,OAAOq1V,QAAQ97X,YAG5F81+B,GAAUC,GAAQkK,GAAgB3h/B,KAAKql/B,mBAAmBl7M,EAAUqtM,GAAS,CAC7E,IAAI+M,EAAYvk/B,KAAKq3qB,UAAUmgU,EAAQC,GACnCD,EAAO91+B,UAAY+jS,EAASuprB,UAAUtt9B,YACtC4rhB,EAAWtthB,KAAKwl/B,YAAYhO,EAAQ/I,EAAUtkM,IAElD,IAAI6+M,EAAWhp/B,KAAK+l/B,gBAAgB5ukB,EAAQs3jB,GAAU,EAAOtkM,GAC7DhzX,EAAOoxkB,MAAQS,EACfhp/B,KAAKoj/B,YAAYh3+B,KAAK+qa,GAClBn3a,KAAKoj/B,YAAYhg/B,OAAS,GACtB2oU,GAAkB/rU,KAAKkj/B,cAAc329B,SAASy89B,EAASly+B,WAAY,QACnE9W,KAAKkj/B,cAAc329B,SAASy89B,EAASly+B,WAAY,KAAO,IAE5D9W,KAAKkj/B,cAAc329B,SAASy89B,EAASly+B,WAAY,KAAK1K,KAAK+qa,KAG3Dn3a,KAAKkj/B,cAAgB,GACrBlj/B,KAAKkj/B,cAAc92+B,KAAK,CAAC+qa,KAG7B,IAAIithB,EAAW,CACX336B,MAAOu89B,EAAUrl3B,KA5BX,KA4B0BnlH,MAFzBxe,KAAKip/B,gBAGZhm/B,IAAKii/B,EAAUzW,SAAUA,EAAUt3jB,OAAQA,EAAQgzX,SAAUA,GAE7D94S,EAAWrxf,KAAKkp/B,sBAAsB9kD,GAC9B/yc,EAAS62f,SACjBn8qB,GAAkB/rU,KAAKgj/B,eAAez29B,SAAS49wB,EAASrzxB,WAAY,QACpE9W,KAAKgj/B,eAAez29B,SAAS49wB,EAASrzxB,WAAY,KAAO,IAE7D9W,KAAKgj/B,eAAez29B,SAAS49wB,EAASrzxB,WAAY,KAAK1K,KAAKq9E,GAAO,CAAC,EAAG0tV,EAAQ,MAAM,IACrF,IAAIstkB,OAAqB,EAOzBz5pB,GALIy5pB,EADA5o3B,EACqB77H,KAAKmoC,OAAOq67B,aAAaomB,+BAA+BnS,GAGxDz2+B,KAAK0m/B,yBAAyBjQ,GAAU,EAAOt/jB,EAAOs+L,UAAW00L,GAEpD,CAClC,MAAUnqyB,KAAKmoC,OAAOi07B,cAAc0pB,gBAAkB,OAASz0f,EAAS62f,SACxE,OAAU3D,EAAY,KAAM,IAAOj3d,EAAW,OAElD,IACI1nF,EAAY2+iB,EAAY,GADmE,GAA9EE,EAAmBj0+B,iBAAiB,IAAMq/Z,KAA2Bzsa,OAElF+l/B,EAAiB1E,EAAmB7q9B,cAAc,IAAMi2Y,MACvD7va,KAAKmoC,OAAOumrB,YAAcy6R,IAC3BA,EAAehj/B,MAAMy/b,UAAYl4H,GAAWk4H,IAEhD,IAAIn5a,EAAQzsB,KAAKyl/B,YAAYhX,EAAUtkM,EAAU+6M,GAC7Ch8pB,EAAY,CAAC,EACjBA,EAAUlpV,KAAKmzN,OAAOp8C,WAAa0/zB,EAASz2+B,KAAKmzN,OAAOp8C,WACxDmyK,EAAUlpV,KAAKmzN,OAAOu5K,SAAW+pmB,EAASz2+B,KAAKmzN,OAAOu5K,SACtDyqC,EAAOjtY,KAAOg/S,EACdlpV,KAAKwk/B,YAAYrtkB,EAAQstkB,EAAoBh49B,EAAO4ke,EAASqzf,SAC7D1k/B,KAAK87+B,sBAAsB2I,EAAoBhO,EACnD,CACJ,EACAsM,EAAcpy+B,UAAUs4+B,cAAgB,WACpC,IACIx/L,IADoC,QAA5BzpzB,KAAKmoC,OAAOw/W,YAAwB,GAAK,IAC3B3nZ,KAAKkj/B,cAAc9/+B,QAAUpD,KAAKkj/B,cAAc9/+B,OAC1E,OAAQqmzB,EAAY,EAAI,EAAIA,GAAa,GAC7C,EACAs5L,EAAcpy+B,UAAUy4+B,aAAe,SAAUlB,EAAUz79B,GACvD,IAAI489B,GAAY348B,WAAWw38B,GAAY,GAAKz79B,EAC5C,OAAQ489B,EAAW,GAAK,GAAKA,GAAY,GAC7C,EACAtG,EAAcpy+B,UAAU60+B,YAAc,SAAUtl/B,EAAM+C,EAAKknyB,GACvD,IACI6kL,EADgBqN,IAAsBA,IAAer89B,KAAKy5+B,WAAWlt9B,SAAS49wB,EAASrzxB,WAAY,KAAKyV,SAAStpB,EAAI6T,WAAY,MAAO9W,KAAKgv9B,UAAWhv9B,KAAKiv9B,SACnID,UAC1Bs6B,EAA4D,IAA1Cpp/B,EAAKijB,WAAa6r8B,EAAU7r8B,aAAqBjjB,EAAKkjB,aAAe4r8B,EAAU5r8B,cACrG,OAAQpjB,KAAKmoC,OAAOuz7B,kBAAkBiC,UAAUhtkB,OAAY24lB,EAAgBtp/B,KAAKuyzB,WAAavyzB,KAAK499B,UAAa599B,KAAKwtU,SAAY,CACrI,EACAu1qB,EAAcpy+B,UAAUo1+B,gBAAkB,SAAU5ukB,EAAQl0a,EAAK869B,EAAU5zL,GACvE,IAAI7qyB,EAAQU,KACRsr+B,EAAetr+B,KAAKmoC,OAAOw+7B,YAC3B4iB,EAAa,GACbP,GAAY,EAEhB,GADAhp/B,KAAKkj/B,cAAgB,GACjBnlB,GACA,IAAKhypB,GAAkB/rU,KAAKij/B,qBAAqB129B,SAAS49wB,EAASrzxB,WAAY,MAAO,CAClF,IAAI0y+B,EAASntB,IAAe,IAAI569B,KAAKzB,KAAKy5+B,WAAWlt9B,SAAS49wB,EAASrzxB,WAAY,KAAKyV,SAAStpB,EAAI6T,WAAY,KAAKpV,YACtH6n/B,EAAavp/B,KAAKij/B,qBAAqB129B,SAAS49wB,EAASrzxB,WAAY,KAAK1Q,QAAO,SAAU6v+B,GACvF,OAAO5Z,IAAe4Z,EAAI3K,EAAav0zB,YAAYr1K,WAAa8n/B,EAAO9n/B,WACnE269B,IAAe4Z,EAAI3K,EAAa5+lB,UAAUhrY,WAAa8n/B,EAAO9n/B,SACtE,IACI1B,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,IACvDmm/B,EAAavp/B,KAAKg4+B,uBAAuBh4+B,KAAKsqhB,UAAU/9f,SAAS49wB,EAASrzxB,WAAY,KAAMyy+B,GAEpG,MAEC,CACD,IAAIE,EAAqB19qB,GAAkB/rU,KAAKgj/B,eAAez29B,SAAS49wB,EAASrzxB,WAAY,MAChC,GAAzD9W,KAAKgj/B,eAAez29B,SAAS49wB,EAASrzxB,WAAY,KAClD4y+B,EAAgB,GAChBC,EAAgBxykB,EAAOm0jB,EAAav0zB,WACpC6y0B,EAAczykB,EAAOm0jB,EAAa5+lB,SACtC1sY,KAAKoj/B,YAAcqG,EAAkBrj/B,QAAO,SAAU8jC,GAClD,OAAQA,EAAKoh8B,EAAa5+lB,SAAWi9mB,GAAiBz/8B,EAAKoh8B,EAAav0zB,YAAc6y0B,GACjF1/8B,EAAKoh8B,EAAav0zB,YAAc6y0B,GAAe1/8B,EAAKoh8B,EAAa5+lB,UAAYi9mB,GAC7Ez/8B,EAAKoh8B,EAAa5+lB,SAAShrY,YAAcwoC,EAAKoh8B,EAAav0zB,WAAWr1K,WACnEwoC,EAAKoh8B,EAAav0zB,WAAWr1K,YAAcio/B,EAAcjo/B,WAAawoC,EAAKoh8B,EAAa5+lB,SAAWk9mB,CAC/G,IACI5p/B,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,IACvDpD,KAAKoj/B,YAAcpj/B,KAAKg4+B,uBAAuBh4+B,KAAKsqhB,UAAU/9f,SAAS49wB,EAASrzxB,WAAY,KAAM9W,KAAKoj/B,cAE3Gpj/B,KAAKoj/B,YAAY/8+B,SAAQ,SAAUwK,GAC/B,IAAIg5+B,EAAaJ,EAAkBrj/B,QAAO,SAAU8jC,GAChD,OAAOA,EAAKoh8B,EAAa5+lB,SAAW77X,EAAIy69B,EAAav0zB,YAAc7sI,EAAKoh8B,EAAav0zB,YAAclmK,EAAIy69B,EAAa5+lB,QACxH,IACIptY,EAAM6oC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,IACxDym/B,EAAavq/B,EAAM04+B,uBAAuB14+B,EAAMgrhB,UAAU/9f,SAAS49wB,EAASrzxB,WAAY,KAAM+y+B,IAElG,IAAI9n7B,EAAa8n7B,EAAWzj/B,QAAO,SAAU2oB,GACzC,OAA2C,IAApCzvB,EAAM8j/B,YAAYz4+B,QAAQokB,EACrC,IACIgzC,EAAW3+D,OAAS,IACpBsm/B,EAAgBA,EAActw+B,OAAO2oD,GAE7C,IACA,IAAK,IAAI51D,EAAI,EAAGA,EAAIu9+B,EAActm/B,OAAS,EAAG+I,IAC1C,IAAK,IAAI6D,EAAI7D,EAAI,EAAG6D,EAAI05+B,EAActm/B,OAAQ4M,IACtC05+B,EAAcn99B,SAASpgB,EAAE2K,WAAY,KAAKw09B,EAAan18B,MACvDuz9B,EAAcn99B,SAASvc,EAAE8G,WAAY,KAAKw09B,EAAan18B,MACvDuz9B,EAAcl09B,OAAOxlB,EAAG,GACxBA,KAIZhQ,KAAKoj/B,YAAcpj/B,KAAKoj/B,YAAYhq+B,OAAOsw+B,GAE3C,IAAK,IAAIp6+B,EAAK,EAAGw6+B,EADjBP,EAAavp/B,KAAKoj/B,YAC0B9z+B,EAAKw6+B,EAAa1m/B,OAAQkM,IAAM,CACxE,IAAI2v+B,EAAU6K,EAAax6+B,GAEvBmd,EADWwy9B,EACMsJ,MACjBx8qB,GAAkB/rU,KAAKkj/B,cAAc329B,SAASE,EAAM3V,WAAY,MAChE9W,KAAKkj/B,cAAc329B,SAASE,EAAM3V,WAAY,KAAO,CAACmo+B,GAGtDj/+B,KAAKkj/B,cAAc329B,SAASE,EAAM3V,WAAY,KAAK1K,KAAK6y+B,EAEhE,CACJ,CAYA,GAXKlhB,IACDwrB,EAAaA,EAAWnj/B,QAAO,SAAUyK,GAAO,OAAQA,EAAIy69B,EAAav0zB,aAAeogQ,EAAOm0jB,EAAav0zB,YACxGlmK,EAAIy69B,EAAa5+lB,SAAWyqC,EAAOm0jB,EAAa5+lB,UAAY77X,EAAIy69B,EAAa5+lB,SAAWyqC,EAAOm0jB,EAAav0zB,YAC5GlmK,EAAIy69B,EAAav0zB,WAAaogQ,EAAOm0jB,EAAa5+lB,UAAY77X,EAAIy69B,EAAa5+lB,WAAayqC,EAAOm0jB,EAAav0zB,YAC7GlmK,EAAIy69B,EAAav0zB,aAAeogQ,EAAOm0jB,EAAa5+lB,UACrD77X,EAAIy69B,EAAav0zB,WAAWr1K,YAAcy1a,EAAOm0jB,EAAav0zB,WAAWr1K,WACvEmP,EAAIy69B,EAAa5+lB,SAAShrY,YAAcy1a,EAAOm0jB,EAAa5+lB,SAAShrY,WACjEmP,EAAIy69B,EAAav0zB,WAAWr1K,YAAcy1a,EAAOm0jB,EAAav0zB,WAAWr1K,WACzEmP,EAAIy69B,EAAa5+lB,SAAShrY,UAAYy1a,EAAOm0jB,EAAa5+lB,SAAShrY,WACnEmP,EAAIy69B,EAAa5+lB,SAAShrY,UAAYy1a,EAAOm0jB,EAAa5+lB,SAAShrY,SAAa,KAE5F6n/B,EAAWnm/B,OAAS,EAAG,CACvB,IAAI2m/B,EAAWR,EAAWtj/B,KAAI,SAAU4K,GAAO,OAAOA,EAAI03+B,KAAO,IACjES,EAAYe,EAAS3m/B,OAAS,EAAKpD,KAAKk5+B,yBAAyB6Q,GAAY,CACjF,CACA,OAAsB,IAAdf,EAAmB,EAAIA,CACnC,EACAjG,EAAcpy+B,UAAUu4+B,sBAAwB,SAAUjw+B,GAEtD,IADA,IAAIixB,EAAO,CAAEg+8B,SAAUjv+B,EAAKuF,MAAOkm+B,QAASzr+B,EAAK0qH,MACxCx3H,EAAI,EAAG69+B,EAAUhq/B,KAAKkj/B,cAAc9/+B,OAAQ+I,EAAI69+B,EAAS79+B,IAC9D,IAAK4/T,GAAkB/rU,KAAKkj/B,cAAc329B,SAASpgB,EAAE2K,WAAY,MAC7D,IAAK,IAAI9G,EAAI,EAAGi6+B,EAAUjq/B,KAAKkj/B,cAAc329B,SAASpgB,EAAE2K,WAAY,KAAK1T,OAAQ4M,EAAIi6+B,EAASj6+B,IAAK,CAC/F,IAAIk1+B,EAAWll/B,KAAKyl/B,YAAYxs+B,EAAKw19B,SAAUx19B,EAAKkxxB,SAAUlxxB,EAAKhW,KAC/DkS,EAAUnV,KAAKmV,QAAQykB,cAAc,0BAA4Bsr9B,GACrE,GAAI/v+B,GAAWA,EAAQghb,kBAAoB,EAAG,CAC1C,IAAI+zjB,EAAUlq/B,KAAKkj/B,cAAc329B,SAASpgB,EAAE2K,WAAY,KAAKyV,SAASvc,EAAE8G,WAAY,KAAKiuxB,KACzF,GAAI5vxB,EAAQ3E,iBAAiB,kBAAoB05+B,EAAU,MAAM9m/B,OAAS,GAAK8m/B,IAAYjx+B,EAAKk+Z,OAAO4tX,KAAM,CACzG,IAAIolN,EAAOh1+B,EAAQykB,cAAc,kBAAoBsw9B,EAAU,MAC3Dx58B,WAAWz3B,EAAKuF,QAAUkyB,WAAWy58B,EAAKhk/B,MAAMqY,QAC5Cxe,KAAKmoC,OAAOkwT,UACZ8xpB,EAAKhk/B,MAAMy9H,MAAQ5jI,KAAKop/B,aAAanw+B,EAAKuF,MAAOrS,GAGjDg++B,EAAKhk/B,MAAMw9H,KAAO3jI,KAAKop/B,aAAanw+B,EAAKuF,MAAOrS,GAEpDg++B,EAAKhk/B,MAAMqY,MAAUkyB,WAAWz3B,EAAKuF,OAAW,IAChD0rB,EAAKg+8B,SAAWiC,EAAKhk/B,MAAMqY,OAG3B0rB,EAAKg+8B,SAAWiC,EAAKhk/B,MAAMqY,KAEnC,KACK,CACD,IAAI0p+B,EAAWjv+B,EAAKuF,MAChButT,GAAkB/rU,KAAKkj/B,cAAc/2+B,EAAI,MACzC+7+B,EAAWlo/B,KAAKip/B,iBAEpB/+8B,EAAKg+8B,SAAWA,EAChBh+8B,EAAKw68B,QAAU1k/B,KAAKop/B,aAAalB,EAAUjv+B,EAAKwT,MACpD,CACJ,CACJ,CAGR,OAAOyd,CACX,EACA648B,EAAcpy+B,UAAUsz+B,mBAAqB,SAAUr71B,GACnD,IAAIm51B,EAAa/h/B,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KAC9B,SAAvB7va,KAAKmoC,OAAOygH,QAAsB5oJ,KAAKmoC,OAAOii9B,oBAC9C5huB,GAAS,CAACu5tB,GAAalykB,KAE3B,IAAIqzjB,EAAYlj+B,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KAExD,GADAqzjB,EAAU/89B,MAAMyiJ,OAAS,GACrB5oJ,KAAKmoC,OAAO+27B,cAAcpqjB,QAAiC,SAAvB90a,KAAKmoC,OAAOygH,QAAqB5oJ,KAAKmoC,OAAOii9B,mBACjFlnB,EAAU/89B,MAAMyiJ,OAAUA,EAAS,GAAM,KACzC5oJ,KAAKmoC,OAAOu87B,UAAUod,mBAAmBC,OAExC,CACD,IAAK,IAAIzy+B,EAAK,EAAGgmC,EAAKt1C,KAAKgk/B,cAAe10+B,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CAC9CgmC,EAAGhmC,GACTnJ,MAAMyiJ,OAAUA,EAAS,GAAM,IAC3C,CACAq/H,GAAY,CAAC85tB,GAAalykB,IAC9B,CACJ,EACAkzkB,EAAcpy+B,UAAUo4+B,iBAAmB,WACvC,IAAIzp/B,EAAQU,KACZA,KAAKmj/B,WAAW/8+B,QAAO,SAAU+O,IACxB7V,EAAM6oC,OAAO+27B,cAAcpqjB,QAAUx1a,EAAMgk/B,YAAc,GAC1D96tB,GAAS,CAACrzQ,GAAU06Z,KACpB16Z,EAAQ6f,aAAa,WAAY,QAGjCizP,GAAY,CAAC9yQ,GAAU06Z,KACvB16Z,EAAQ6f,aAAa,WAAY,KAEzC,IACA,IAAIq19B,EAAiBrq/B,KAAKmV,QAAQykB,cAAc,IAAMi2Y,KAClD7va,KAAKmoC,OAAO+27B,cAAcpqjB,QAC1B7sJ,GAAY,CAACoiuB,GAAiBx6kB,KAC9BrnJ,GAAS,CAAC6huB,GAAiBx6kB,OAG3B5nJ,GAAY,CAACoiuB,GAAiBx6kB,KAC9BrnJ,GAAS,CAAC6huB,GAAiBx6kB,MAE3B7va,KAAKsj/B,YAAc,EACnBr7tB,GAAY,CAACoiuB,GAAiBx6kB,KAG9BrnJ,GAAS,CAAC6huB,GAAiBx6kB,KAEf,GAAGj/Z,MAAMjR,KAAKK,KAAKmV,QAAQ3E,iBAAiB,IAAMq/Z,MACxDxpa,SAAQ,SAAU8O,IACnB7V,EAAM6oC,OAAO+27B,cAAcpqjB,QAAUx1a,EAAMgk/B,YAAc,EAC1Dr7tB,GAAY,CAAC9yQ,GAAU06Z,KAGvBrnJ,GAAS,CAACrzQ,GAAU06Z,IAE5B,GACJ,EACAkzkB,EAAcpy+B,UAAU25+B,eAAiB,WACrC,IAAIj6V,EAAevvpB,GAAc,MAAO,CAAEC,UAAW8ua,IAAuB37I,OAAQ,sBACjEl0R,KAAKmV,QAAQykB,cAAc,IAAMi2Y,IAAuC,gBAC9En+Y,YAAY2+nB,GACzB,IAAIzngB,EAASyngB,EAAat7X,aAE1B,OADA5hQ,GAAOk9nB,GACAzngB,CACX,EACAm61B,EAAcpy+B,UAAUuz+B,kBAAoB,WACxC,IAEIjpY,EAFA5ymB,EAASrI,KAAKmV,QAAQykB,cAAc,IAAMi2Y,KAC9C7va,KAAKmoC,OAAO+27B,cAAcpqjB,OAASzsa,EAAO6/Q,UAAUh1P,SAAS28Y,KAEzD7va,KAAKmoC,OAAO+27B,cAAcpqjB,QAC1Bzsa,EAAO2sB,aAAa,QAASh1B,KAAKmoC,OAAOkje,UAAUtlK,YAAY,0BAC/D19V,EAAO2sB,aAAa,aAAc,oBAClCimlB,GAAcj7mB,KAAKsj/B,YAAc,GAAKtj/B,KAAKsq/B,iBAAoB,IAG/Dji/B,EAAO2sB,aAAa,QAASh1B,KAAKmoC,OAAOkje,UAAUtlK,YAAY,wBAC/D19V,EAAO2sB,aAAa,aAAc,kBAClCimlB,EAAa,EAAIj7mB,KAAKsq/B,iBAAoB,EAC1Ctq/B,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KAA4B1hR,UAAY,GAEpFnuJ,KAAKik/B,mBAAmBhpY,GACxBj7mB,KAAKmvJ,UAAU8yJ,QAAQjiT,KAAKgk/B,cAAc,IAC1Chk/B,KAAK+o/B,mBACL/o/B,KAAKmvJ,UAAU8yJ,QAAQ55S,EAC3B,EACA06+B,EAAcpy+B,UAAU8y+B,kBAAoB,WACxCzj/B,KAAKmoC,OAAOkxK,OAAOj+E,IAAqB,CAAC,EAC7C,EACA2n3B,EAAcpy+B,UAAUymI,QAAU,YACzBp3I,KAAKmoC,QAAUnoC,KAAKmoC,QAAUnoC,KAAKmoC,OAAOgwP,cAG/Cn4R,KAAKo7B,sBACLp7B,KAAKgk/B,cAAgB,KACrBhk/B,KAAKij/B,qBAAuB,KAC5Bjj/B,KAAKgj/B,eAAiB,KACtBhj/B,KAAK499B,UAAY,KACjB599B,KAAKwtU,SAAW,KAChBxtU,KAAKgv9B,UAAY,KACjBhv9B,KAAKiv9B,QAAU,KACfjv9B,KAAKmV,QAAU,KACfnV,KAAKmzN,OAAS,KACdnzN,KAAKmvJ,UAAY,KACjBroG,EAAOn2C,UAAUymI,QAAQz3I,KAAKK,MAClC,EACO+i/B,CACX,CAr0BmC,CAq0BjCxN,KC51BErv7B,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAwBzCmk8B,IAA4B,SAAUzj8B,GAEtC,SAASyj8B,EAAWpi9B,GAChB,IAAI7oC,EAAQwnD,EAAOnnD,KAAKK,KAAMmoC,IAAWnoC,KAezC,OAdAV,EAAM0j/B,eAAiB,GACvB1j/B,EAAMkr/B,kBAAoB,EAC1Blr/B,EAAMmr/B,oBAAsB,GAC5Bnr/B,EAAM0zlB,WAAa,MACnB1zlB,EAAM6V,QAAU7V,EAAM6oC,OAAOyz7B,WAAWx0d,WACxC9ngB,EAAM6zN,OAAS7zN,EAAM6oC,OAAOw+7B,YAC5Brn+B,EAAMsmc,UAAYtmc,EAAM6oC,OAAOi07B,cAAc0pB,kBAAoBxm/B,EAAM6oC,OAAOi07B,cAAcsuB,kBACpFpr/B,EAAM6oC,OAAOwi9B,cACrBrr/B,EAAMsr/B,cAAgBtr/B,EAAM6oC,OAAOi07B,cAAc0pB,iBAAmBxm/B,EAAM6oC,OAAOi07B,cAAcsuB,kBACvFpr/B,EAAM6oC,OAAOwi9B,cACrBrr/B,EAAMur/B,eAAkBvr/B,EAAMsmc,WAAatmc,EAAMsr/B,cACjDtr/B,EAAMmr/B,oBACDnr/B,EAAM6oC,OAAOwi9B,eAAiBrr/B,EAAM6oC,OAAOi07B,cAAc0uB,iBAAoB,EAAIxr/B,EAAMmr/B,oBAC5Fnr/B,EAAMg8B,mBACCh8B,CACX,CAspBA,OAxqBA4mD,IAAUqk8B,EAAYzj8B,GAmBtByj8B,EAAW55+B,UAAUo6+B,mBAAqB,SAAUC,GAChD,GAAIA,EAAW5n/B,OAAS,EAGpB,IAAK,IAAIkM,EAAK,EAAG27+B,EAFjBD,EAA0C,UAA5Bhr/B,KAAKmoC,OAAOw/W,cAA6B3nZ,KAAKmoC,OAAOyz7B,WAAWgJ,mBACzE5k+B,KAAKmoC,OAAOuz7B,kBAAkBiC,UAAUhtkB,OAAWq6lB,EAAa,CAACA,EAAW,IACrC17+B,EAAK27+B,EAAa7n/B,OAAQkM,IAAM,CACxE,IAAIgtB,EAAO2u9B,EAAa37+B,GACpBgtB,EAAKu5P,eAAiBv5P,EAAKu5P,cAAcrhQ,YACzCrB,GAAOmJ,EAAKu5P,cAEpB,CAER,EACA00tB,EAAW55+B,UAAU+y+B,mBAAqB,WAClC1j/B,KAAKmoC,OAAOg08B,mBACZn8+B,KAAKmoC,OAAOg08B,kBAAkBl9oB,cAElCj/V,KAAK6/+B,wBAA0B7/+B,KAAKmoC,OAAOw78B,2BAC3C,IAAIuH,EAAUlr/B,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KAClD7va,KAAKmoC,OAAOwi9B,gBACZ3q/B,KAAKmoC,OAAO+27B,cAAchx0B,IAAMg91B,EAAQ/81B,UACxCnuJ,KAAKmoC,OAAO+27B,cAAcv71B,KAAOun3B,EAAQj91B,YAE7C,IAAI8x1B,EAAqB,GAAGnv+B,MAAMjR,KAAKK,KAAKmV,QAAQ3E,iBAAiB,IAAMq/Z,MAC3E,GAAI7va,KAAKmoC,OAAOo47B,YAAcvg+B,KAAKmoC,OAAOo47B,WAAWwV,QAAQpzjB,aACzD,IAAK,IAAIx2a,EAAI,EAAGwjD,EAAM3vD,KAAKmoC,OAAOo47B,WAAWwV,QAAQ+N,YAAY1g/B,OAAQ+I,EAAIwjD,EAAKxjD,IAAK,CACnF,IAAI6++B,EAAa,GAAGp6+B,MAAMjR,KAAKK,KAAKmV,QAAQ3E,iBAAiB,6CACzDxQ,KAAKmoC,OAAOo47B,WAAWwV,QAAQ+N,YAAYv39B,SAASpgB,EAAE2K,WAAY,KAAKqpzB,WAAa,OAExF,GADAng0B,KAAK+q/B,mBAAmBC,GACpBhr/B,KAAKmoC,OAAOo47B,WAAWwV,QAAQ18R,YAAY9srB,SAASpgB,EAAE2K,WAAY,MAClE9W,KAAKmoC,OAAOo47B,WAAWwV,QAAQ+N,YAAYv39B,SAASpgB,EAAE2K,WAAY,KAAKqpzB,aACnEng0B,KAAKmoC,OAAOo47B,WAAWwV,QAAQ18R,YAAY9srB,SAASpgB,EAAE2K,WAAY,KAAKqpzB,WAAY,CACvF,IAAIx2e,EAAM,GAAG/4U,MAAMjR,KAAKK,KAAKmV,QAAQ3E,iBAAiB,6CAClDxQ,KAAKmoC,OAAOo47B,WAAWwV,QAAQ18R,YAAY9srB,SAASpgB,EAAE2K,WAAY,KAAKqpzB,WAAa,OACxFng0B,KAAK+q/B,mBAAmBphqB,EAC5B,CACJ,MAGA,IAAK,IAAIr6U,EAAK,EAAG67+B,EAAuBpL,EAAoBzw+B,EAAK67+B,EAAqB/n/B,OAAQkM,IAAM,CAEhG6jB,GADWg49B,EAAqB77+B,GAEpC,CAGJ,GADAtP,KAAKor/B,qBAAqBv7kB,KACrB7va,KAAKmV,QAAQykB,cAAc,IAAMi2Y,KAAtC,CAGA,GAAgC,UAA5B7va,KAAKmoC,OAAOw/W,YAAyB,CACrC,IAAIx9Y,EAAUrJ,GAAc,MAAO,CAAEC,UAAW8ua,MAC5Cw7kB,EAASrr/B,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KACrDw7kB,EAAO359B,YAAYvnB,GACnBnK,KAAKwq/B,kBAAoBrg/B,EAAQy4S,UAAYyosB,EAAOzosB,UACpDyosB,EAAOl29B,YAAYhrB,EACvB,CACAnK,KAAKgo/B,YAAc3rB,IAA+Br89B,KAAKmV,QAAS06Z,KAChE,IAAI1hR,EAAY+81B,EAAQ/81B,UAcxB,GAbInuJ,KAAKmoC,OAAOwi9B,eAAiB3q/B,KAAKmoC,OAAO2h8B,sBAAwB9p+B,KAAKmoC,OAAO2h8B,oBAAoBwhB,qBAC7Fv/qB,GAAkB/rU,KAAKmoC,OAAOk2hB,iBAClC6sb,EAAQ/81B,UAAY+81B,EAAQ/81B,UAAY,GAExCnuJ,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,GACvDpD,KAAKur/B,uBACDvr/B,KAAKmoC,OAAO2h8B,qBACZ9p+B,KAAKmoC,OAAO2h8B,oBAAoBia,yBAIpC/j/B,KAAKwr/B,oBAAoBxr/B,KAAKmoC,OAAOyz7B,WAAW2D,YAAav/9B,KAAKmoC,OAAOuz7B,kBAAkBmsB,UAE3F7n/B,KAAKmoC,OAAOwi9B,cAAe,CAC3B3q/B,KAAKyr/B,sBACL,IAAIvh9B,EAAO,CACP207B,cAAe7+9B,KAAKmoC,OAAO6mnB,mBAC3Bh4oB,OAAQhX,KAAKmoC,OAAO4kT,gBACpB2+pB,uBAAuB,EACvBr2V,eAAgB,CAAE1xhB,KAAM3jI,KAAKmoC,OAAO+27B,cAAcv71B,KAAMuqB,IAAKluJ,KAAKmoC,OAAO+27B,cAAchx0B,MAe3F,GAbIluJ,KAAKmoC,OAAO2h8B,sBAAwB9p+B,KAAKmoC,OAAO2h8B,oBAAoBwhB,qBAChEtr/B,KAAKmoC,OAAOk2hB,eACZ6sb,EAAQ/81B,UAAYA,EACpBnuJ,KAAKmoC,OAAOk2hB,cAAgB,MAG5Br+jB,KAAKmoC,OAAO2h8B,oBAAoB6hB,6BAGnC3r/B,KAAKmoC,OAAOwwT,mBACb34V,KAAKmoC,OAAOkxK,OAAOj+E,IAAqB,CAAC,GAE7Cp7H,KAAKmoC,OAAOkxK,OAAOj+E,IAAuBlxF,GACV,UAA5BlqC,KAAKmoC,OAAOw/W,aAA2B3nZ,KAAKmoC,OAAOyj9B,eAAgB,CACnE,IAAIC,EAAe,GAAGj7+B,MAAMjR,KAAKK,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiB,4CAChD,GAAGI,MAAMjR,KAAKK,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiB,IAAMq/Z,MAC/Dxpa,SAAQ,SAAUgokB,EAAMlikB,GAEpC6+U,GAAkBqjP,EAAM,CAAE,OADbw9a,EAAat/9B,SAASpgB,EAAE2K,WAAY,KAAKi+Q,aACT,MACjD,IACA/0R,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KAA+B1hR,UACnEnuJ,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KAAwB1hR,SACxE,CACJ,CACAnuJ,KAAKmoC,OAAOukf,iBAvDZ,CAwDJ,EACA69d,EAAW55+B,UAAU66+B,oBAAsB,SAAU/R,EAAYoO,EAAUzlkB,GAEvE,IAAImnkB,EACAuC,EAFJ9r/B,KAAKgj/B,eAAiB,GAGtB,IAAI9h7B,EAAW,EAgBf,GAfIkhX,GACAlhX,EAAWkhX,EAAQ+9Y,WACnBng0B,KAAK4vW,SAAWwyE,EAAQxyE,SACxB5vW,KAAKo4+B,WAAah2jB,EAAQg2jB,WAC1BmR,EAAavp/B,KAAKmoC,OAAOu87B,UAAUsT,uBAAuB51jB,EAASpib,KAAKmoC,OAAOs+7B,iBAC/EqlB,EAAY9r/B,KAAKmoC,OAAOu87B,UAAUsT,uBAAuB51jB,EAASpib,KAAKmoC,OAAOuu8B,gBAC9E12+B,KAAK+r/B,UAAY,GAAGn7+B,MAAMjR,KAAKK,KAAKmV,QAAQ3E,iBAAiB,IAAMq/Z,IAAuB,sBAAwB3uW,EAAW,SAG7Hqo7B,EAAavp/B,KAAKmoC,OAAOs+7B,gBACzBqlB,EAAY9r/B,KAAKmoC,OAAOuu8B,eACxB12+B,KAAK+r/B,UAAY,GAAGn7+B,MAAMjR,KAAKK,KAAKmV,QAAQ3E,iBAAiB,IAAMq/Z,OAEvE7va,KAAKy4+B,eAAe8Q,GACpBvp/B,KAAKy4+B,eAAeqT,GACY,UAA5B9r/B,KAAKmoC,OAAOw/W,aAA2B3nZ,KAAKmoC,OAAOwi9B,eAA0E,IAAzD3q/B,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAc,CAChI,IAAI4o/B,EAAa,GAAGp7+B,MAAMjR,KAAKK,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiB,4CAChEy7+B,EAAWjs/B,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KAAyB3qK,aAAe8mvB,EAAW5o/B,OAC1G4o/B,EAAW3l/B,SAAQ,SAAUgokB,GACzBrjP,GAAkBqjP,EAAM,CAAE,OAAU49a,EAAW,MACnD,GACJ,CACA,IAAIC,EAAals/B,KAAK+r/B,UAAU/r/B,KAAKmoC,OAAOyz7B,WAAWgJ,iBACnD,EAAI5k+B,KAAK+r/B,UAAU3o/B,OAAS,GAAGqxR,wBACnCz0R,KAAKiuzB,UAAYi+L,EAAW1t+B,MAC5Bxe,KAAKuyzB,WAAa25L,EAAWtj2B,OAC7B5oJ,KAAKy5+B,WAAaA,EAClB,IAAIiI,EAAgB1h/B,KAAKm6+B,iBAAiBV,GAC1Cz5+B,KAAKms/B,aAAatE,GAAY7n/B,KAAKmoC,OAAOuz7B,kBAAkBmsB,UAC5D7n/B,KAAKok/B,mBAAmB0H,EAAW5q7B,EAAUkhX,GAE7C,IADA,IAAIhnT,EAAS,GACJ9rH,EAAK,EAAGw6+B,EAAeP,EAAYj6+B,EAAKw6+B,EAAa1m/B,OAAQkM,IAAM,CACxE,IAAIi6U,EAAUugqB,EAAax6+B,GACvBtP,KAAKmoC,OAAOyh8B,eAAiBxnjB,IAC7Bpib,KAAK4vW,SAAW5vW,KAAKmoC,OAAOyh8B,aAAa6c,YAAYl9pB,IAEzDnuN,EAASA,EAAOhiH,OAAOpZ,KAAKw5+B,WAAWjwpB,EAASm4pB,GAAiB1h/B,KAAKy5+B,YAC1E,CACA,IAAK,IAAI1n7B,EAAQ,EAAGA,EAAQ/xD,KAAKw1+B,MAAMpy+B,OAAQ2uD,IAAS,CACpD/xD,KAAKgj/B,eAAiB,GAItB,IAHA,IAAInJ,EAAO75+B,KAAKw1+B,MAAMjp9B,SAASwlC,EAAMj7C,WAAY,KAC7C+4Y,EAAUwskB,IAAa,IAAI569B,KAAKo4+B,EAAKA,EAAKz2+B,OAAS,IAAK,GAEnDkyC,EAAK,EAAG828B,EADGps/B,KAAKs2+B,aAAa,IAAI70+B,KAAKo4+B,EAAK,IAAKhqlB,EAASz0R,GAChB9lF,EAAK828B,EAAgBhp/B,OAAQkyC,IAAM,CACjF,IAAIwkT,EAAUsypB,EAAgB928B,GAC9B,GAAIt1C,KAAK4lc,UAAW,CAChB,IAAIymjB,EAAoC,UAA5Brs/B,KAAKmoC,OAAOw/W,YAA0B7tD,EAAQ95V,KAAKmzN,OAAOp8C,WAClE/2K,KAAKss/B,aAAaxypB,EAASA,EAAQ5vT,MACvC,GAAIlqC,KAAKk8C,SAASmw8B,GAAS,EACvB,QAER,CACArs/B,KAAKus/B,oBAAoBzypB,GACzB95V,KAAKqk/B,aAAavqpB,EAAS54R,EAAUqo7B,EACzC,CACJ,CACAvp/B,KAAK4vW,SAAW,KAChB5vW,KAAKo4+B,WAAa,IACtB,EACAmS,EAAW55+B,UAAUyz+B,mBAAqB,SAAUzM,EAAaz26B,EAAUkhX,GACvE,IAAK,IAAI9ya,EAAK,EAAGso+B,EAAgBD,EAAaro+B,EAAKso+B,EAAcx0+B,OAAQkM,IAAM,CAC3E,IAAIyv+B,EAAUnH,EAActo+B,GACxBtP,KAAKmoC,OAAOyh8B,eAAiBxnjB,IAC7Bpib,KAAK4vW,SAAW5vW,KAAKmoC,OAAOyh8B,aAAa6c,YAAY1H,IAEzD,IAAIyN,EAAmB,GACvB,GAAwB,QAApBxs/B,KAAKgzlB,YAAyB+rZ,EAAQ/++B,KAAKmzN,OAAO4qwB,UAsBlDyuB,EAAiBpg/B,KAAK2y+B,OAtBuC,CAC7D,IAYQ1++B,EAZJqsF,EAAOjD,GAAO,CAAC,EAAGs15B,EAAS,MAAM,GACjC0N,EAAazs/B,KAAKys/B,WAAW//5B,EAAK1sF,KAAKmzN,OAAOp8C,WAAYrqF,EAAK1sF,KAAKmzN,OAAOu5K,UAE/E,GADAhgT,EAAKgg6B,YAAcD,GACdA,GAAcpwB,IAAiB3v4B,EAAK1sF,KAAKmzN,OAAOp8C,YAAc,GAC3D12K,EAAIopF,GAAO,CAAC,EAAGs15B,EAAS,MAAM,IAChC/++B,KAAKmzN,OAAOu5K,SAAW2vlB,IAAaA,IAAe,IAAI569B,KAAKs9+B,EAAQ/++B,KAAKmzN,OAAOp8C,WAAa,KAAM,GACrG12K,EAAEqs/B,aAAc,EAChBhg6B,EAAK1sF,KAAKmzN,OAAOp8C,WAAa12K,EAAEL,KAAKmzN,OAAOu5K,SAC5C8/mB,EAAiBpg/B,KAAK/L,GAG1B,KADAos/B,EAAazs/B,KAAKys/B,WAAW//5B,EAAK1sF,KAAKmzN,OAAOp8C,WAAYrqF,EAAK1sF,KAAKmzN,OAAOu5K,YACxD2vlB,IAAiB3v4B,EAAK1sF,KAAKmzN,OAAOu5K,UAAY,GACzDrsY,EAAIopF,GAAO,CAAC,EAAGs15B,EAAS,MAAM,IAChC/++B,KAAKmzN,OAAOp8C,WAAaslzB,IAAe,IAAI569B,KAAKs9+B,EAAQ/++B,KAAKmzN,OAAOu5K,SAAW,KAClFrsY,EAAEqs/B,aAAc,EAChBF,EAAiBpg/B,KAAK/L,GACtBqsF,EAAK1sF,KAAKmzN,OAAOu5K,SAAWrsY,EAAEL,KAAKmzN,OAAOp8C,WAE9Cy10B,EAAiBpg/B,KAAKsgF,EAC1B,CAIA,IAAK,IAAIp3C,EAAK,EAAGq38B,EAAqBH,EAAkBl38B,EAAKq38B,EAAmBvp/B,OAAQkyC,IAGpF,IAFA,IAAIs38B,EAAaD,EAAmBr38B,GAE3BI,EAAK,EAAGm38B,EADG7s/B,KAAKw5+B,WAAWoT,EAAY5s/B,KAAKy5+B,YACH/j8B,EAAKm38B,EAAgBzp/B,OAAQsyC,IAAM,CACjF,IAAIup8B,EAAU4N,EAAgBn38B,GAC9B11C,KAAKil/B,kBAAkBhG,EAAS/96B,IAAY0r7B,EAAWF,YAC3D,CAER,CACJ,EACAnC,EAAW55+B,UAAU87+B,WAAa,SAAUv28B,EAAOkD,GAC/C,OAAO,IAAI33C,MAAMy0C,GAAOzzC,SAAS,EAAG,EAAG,EAAG,KAAO,IAAIhB,MAAM23C,GAAK32C,SAAS,EAAG,EAAG,EAAG,EACtF,EACA8n/B,EAAW55+B,UAAUs0+B,kBAAoB,SAAUlu9B,EAAOmqC,EAAU4r7B,GAChE,IAAI5jqB,EAAYnyT,EAAMmT,KAClB6sI,EAAY/2K,KAAKss/B,aAAav19B,EAAOmyT,GACrCwjD,EAAU1sY,KAAK+s/B,WAAWh29B,EAAOmyT,GACjCjmV,EAAMjD,KAAKmoC,OAAO6k9B,eAAeht/B,KAAKy5+B,WAAYpd,IAAe,IAAI569B,KAAKs1K,EAAUr1K,aACxF,KAAIuB,EAAM,GAAK8zK,EAAY21N,GAA3B,CAGA,IAAI2+mB,EAASrr/B,KAAKit/B,UAAUhq/B,GACxBinF,EAAWlqF,KAAKmjI,YAAY4zC,EAAW21N,EAAS31W,EAAM/2B,KAAKmzN,OAAO4qwB,UAAW969B,GACjF,GAAK6p/B,EAgBD9s/B,KAAKkt/B,qBAAqB7B,EAAQnh6B,EAAUhpB,OAhBnC,CACT,IAAIis7B,EAAajkqB,EAAUt+T,MACvBs99B,EAAWlo/B,KAAKip/B,cAAcly0B,EAAW21N,EAAS31W,EAAM/2B,KAAKmzN,OAAO4qwB,UAAWovB,GACnFjF,EAAYA,GAAY,EAAKlo/B,KAAKiuzB,UAAYi6L,EAC9C,IAAIxD,EAAW1k/B,KAAKmoC,OAAOkwT,UAAa,EAAInuQ,EACxCkj6B,EAAYpt/B,KAAKmoC,OAAOkwT,UAAanuQ,EAAW,EAChDq65B,EAAYvk/B,KAAKuyzB,WAAavyzB,KAAKwq/B,kBACnC6C,EAASrt/B,KAAKst/B,UAAUps7B,GACxBkuc,EAAepvgB,KAAK4/+B,8BAA8B7o9B,EAAOmqC,EAAUlhE,KAAK6/+B,yBAC5E70pB,GAAkBokL,EAAc,CAC5B,MAAS84e,EAAW,KAAM,OAAU3D,EAAY,KAAM,KAAQG,EAAU,KACxE,MAAS0I,EAAW,KAAM,IAAOC,EAAS,OAE9Crt/B,KAAKut/B,mBAAmBx29B,EAAOq4e,EAAci8e,EACjD,CAjBA,CAqBJ,EAEAd,EAAW55+B,UAAUu8+B,qBAAuB,SAAU7B,EAAQnh6B,EAAUhpB,GACpE,IAAIss7B,EAAiB1s/B,GAAc,MAAO,CAAEC,UAAW,WAAa8ua,MAChE9jG,GAAkBs/qB,EAAOzx9B,cAAc,IAAMi2Y,OAC7Cw7kB,EAAO359B,YAAY879B,EAE3B,EAEAjD,EAAW55+B,UAAU27+B,aAAe,SAAUv19B,EAAOmyT,GACjD,OAAOnyT,EAAM/2B,KAAKmzN,OAAOp8C,UAC7B,EAEAwz0B,EAAW55+B,UAAUo8+B,WAAa,SAAUh29B,EAAOmyT,GAC/C,OAAOnyT,EAAM/2B,KAAKmzN,OAAOu5K,QAC7B,EACA69mB,EAAW55+B,UAAUs8+B,UAAY,SAAUhq/B,GACvC,OAAOjD,KAAK+r/B,UAAUx/9B,SAAStpB,EAAI6T,WAAY,IACnD,EACAyz+B,EAAW55+B,UAAUs4+B,cAAgB,SAAUr5lB,EAAWC,EAASkukB,EAAUnz8B,GACzE,OAAOA,EAAQ5qB,KAAKiuzB,UAAY,CACpC,EAEAs8L,EAAW55+B,UAAUwyH,YAAc,SAAU4zC,EAAW21N,EAASqxlB,EAAU969B,GACvE,OAAO,CACX,EAEAsn/B,EAAW55+B,UAAU28+B,UAAY,SAAUps7B,GACvC,OAAO,CACX,EACAqp7B,EAAW55+B,UAAU47+B,oBAAsB,SAAUx19B,GACjD,IAAqD,IAAjD/2B,KAAKmoC,OAAOw/W,YAAYh9Y,QAAQ,aAAkD,kBAA5B3K,KAAKmoC,OAAOw/W,cAC/D5wX,EAAM/2B,KAAKmzN,OAAO4qwB,UADzB,CAIA,IAAI0vB,EAAY129B,EAAMmT,KAClBgM,EAAQl2C,KAAKmoC,OAAOyz7B,WAAW2nB,eAC/Bnq8B,EAAMp5C,KAAKmoC,OAAOyz7B,WAAW4nB,aAC7Bx0B,EAAYqN,IAAsBtl8B,EAAM/2B,KAAKmzN,OAAOp8C,WAAY7gI,EAAOkD,GACvE616B,EAAUoN,IAAsBtl8B,EAAM/2B,KAAKmzN,OAAOu5K,SAAUx2V,EAAOkD,GACnEs08B,EAAkBD,EAAUzt/B,KAAKmzN,OAAOp8C,WACxC420B,EAAgBF,EAAUzt/B,KAAKmzN,OAAOu5K,SAG1C,GAFA+gnB,EAAU59V,OAAS49V,EAAU59V,QAAU69V,EAAgBhs/B,UAAYst9B,EAAUA,UAAUtt9B,UACvF+r/B,EAAU195B,QAAU095B,EAAU195B,SAAW495B,EAAcjs/B,UAAYut9B,EAAQA,QAAQvt9B,UAC/E269B,IAAeqxB,GAAiBhs/B,YAAc269B,IAAesxB,GAAejs/B,UAAW,CACvF,IAAIks/B,EAAkB5+B,EAAUA,UAC5B6+B,EAAgB5+B,EAAQA,QACxBl4yB,EAAY,IAAIt1K,KAAK469B,IAAeqxB,IAIxC,GAHA320B,EAAUt0K,SAASor/B,EAAc1q+B,WAAY0q+B,EAAczq+B,aAAcyq+B,EAAcxq+B,cACvFoq+B,EAAU59V,OAAS49V,EAAU59V,QAAU69V,EAAgBhs/B,YAAcks/B,EAAgBtr/B,YAAc0s9B,EAAUC,QAAQ3s9B,UACjHy0K,EAAUr1K,UAAY269B,IAAatlzB,EAAW,GAAGr1K,WACjDis/B,EAAcjs/B,YAAc269B,IAAesxB,GAAejs/B,UAAW,CACrE,IAAIgrY,EAAU,IAAIjrY,KAAK469B,IAAesxB,IACtCF,EAAU195B,QAAU095B,EAAU195B,SAAW495B,EAAcjs/B,WACnDgrY,EAAQjqY,SAASmr/B,EAAgBzq+B,WAAYyq+B,EAAgBxq+B,aAAcwq+B,EAAgBvq+B,aACnG,CACJ,CAtBA,CAuBJ,EACAkn+B,EAAW55+B,UAAU46+B,qBAAuB,WACxC,IAAIjhe,EAAYtqhB,KAAKmoC,OAAO+27B,cAActuX,gBACtC,CAAC5wmB,KAAKmoC,OAAOyh8B,aAAaC,kBAAkB7p+B,KAAKmoC,OAAO+27B,cAAc/+J,aACtEng0B,KAAKmoC,OAAOyh8B,aAAac,kBAC7B,GAAI1q+B,KAAKmoC,OAAOo47B,YAAcvg+B,KAAKmoC,OAAOo47B,WAAWwV,QAAQpzjB,aAAc,CACvE,IAAK,IAAIx2a,EAAI,EAAGwjD,EAAM3vD,KAAKmoC,OAAOo47B,WAAWwV,QAAQ+N,YAAY1g/B,OAAQ+I,EAAIwjD,EAAKxjD,IAAK,CACnF,IAAI2h/B,EAAY9t/B,KAAKmoC,OAAOo47B,WAAWwV,QAAQ+N,YAAYv39B,SAASpgB,EAAE2K,WAAY,KAElF,GADA9W,KAAKwr/B,oBAAoBsC,EAAUvuB,YAAauuB,EAAUjG,SAAUiG,GAChE9t/B,KAAKmoC,OAAOo47B,WAAWwV,QAAQ+N,YAAYv39B,SAASpgB,EAAE2K,WAAY,KAAKqpzB,aACvEng0B,KAAKmoC,OAAOo47B,WAAWwV,QAAQ18R,YAAY9srB,SAASpgB,EAAE2K,WAAY,KAAKqpzB,WAAY,CACnF,IAAI93zB,EAASrI,KAAKmoC,OAAOo47B,WAAWwV,QAAQ18R,YAAY9srB,SAASpgB,EAAE2K,WAAY,KAC/E9W,KAAKwr/B,oBAAoBnj/B,EAAOk39B,YAAal39B,EAAOw/+B,SAAUx/+B,EAClE,CACJ,CACArI,KAAKmoC,OAAOo47B,WAAWwV,QAAQpzjB,cAAe,CAClD,MAEI,IAAK,IAAIrza,EAAK,EAAGw1+B,EAAcx6d,EAAWh7gB,EAAKw1+B,EAAY1h/B,OAAQkM,IAAM,CACrE,IAAIy++B,EAAWjJ,EAAYx1+B,GAC3BtP,KAAKwr/B,oBAAoBuC,EAASxuB,YAAawuB,EAASlG,SAAUkG,EACtE,CAER,EACAxD,EAAW55+B,UAAUw7+B,aAAe,SAAUtE,GAC1C7n/B,KAAKw1+B,MAAQ,GAIb,IAHA,IAAI324B,EAAQ7+F,KAAKy5+B,WAAWxz+B,KAAI,SAAU/F,GAAQ,OAAQA,CAAM,IAC5D2u9B,GAAY7u9B,KAAKmoC,OAAOuz7B,kBAAkBqe,aAAgB/5+B,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMw75B,QAC9F95+B,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAM6n6B,mBAAsB0B,EAASzk/B,OZ3WtD,EY4WVy7F,EAAMz7F,OAAS,GAClBpD,KAAKw1+B,MAAMpp+B,KAAKyyF,EAAMrpE,OAAO,EAAGq57B,GAExC,EACA07B,EAAW55+B,UAAU+1+B,yBAA2B,SAAUvvkB,EAAQj2W,EAAU8s7B,QACjD,IAAnBA,IAA6BA,GAAiB,GAClD,IAAIlO,EAAgB3okB,EAAOn3a,KAAKmzN,OAAOmkP,UAAYt3c,KAAKmoC,OAAOi07B,cAAcjpwB,OAAOmkP,QAAQz2c,SACxFb,KAAKmoC,OAAOkje,UAAUtlK,YAAY,YAClCkopB,EAAYxk6B,GAAO,CAAC,EAAG0tV,EAAQA,EAAOjtY,MAAM,GAC5Cu/S,EAAQ,CACR,UAAW,eAAiB0tF,EAAOn3a,KAAKmzN,OAAOh9L,IAC/C,KAAQ,SAAU,SAAY,IAC9B,gBAAiBn2B,KAAKmoC,OAAOu87B,UAAU2b,qBAAqBlpkB,GAC5D,aAAcn3a,KAAKmoC,OAAOy+8B,sBAAsBqH,EAAWnO,IAE1DkO,IACDvkqB,EAAM,aAAe0tF,EAAO4tX,MAE5B/kyB,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,IACvDqmV,EAAM,oBAAsBvoR,EAASpqD,YAEzC,IAAIip+B,EAAqBj/+B,GAAc,MAAO,CAAEC,UAAW8ua,IAAuBpmF,MAAOA,IACpF1d,GAAkB/rU,KAAK4vW,WACxBpnF,GAAS,CAACu3tB,GAAqB//+B,KAAK4vW,UAEpCunE,EAAOn3a,KAAKmzN,OAAO8rL,aACnBz2H,GAAS,CAACu3tB,GAAqB,eAEnC,IAEInqoB,EAFAixoB,EAAqB/l/B,GAAc,MAAO,CAAEC,UAAW8ua,MAC3DkwkB,EAAmBru9B,YAAYm19B,GAE/B,IAAI39pB,EAAYiuF,EAAOjtY,KACnBus8B,EAAWz2+B,KAAKku/B,aAAa/2kB,GACjC,GAAKprG,GAAkB/rU,KAAKmoC,OAAOuz7B,kBAAkBskB,eAOhD,CACD,IAAImO,EAAiBh3kB,EAAOn3a,KAAKmzN,OAAOx7L,WAAa33B,KAAKmoC,OAAOi07B,cAAcjpwB,OAAOx7L,SAAS92B,SAAW,GACtGo/+B,EAAqBn/+B,GAAc,MAAO,CAAEC,UAAW8ua,MAC3D7va,KAAKmoC,OAAOyD,SAAUk08B,GAAgBqO,EAAgB,KAAOA,EAAgB,IAAMlO,GACnF,IAAI6G,EAAuBhm/B,GAAc,MAAO,CAC5CC,UAAW8ua,KAAwB7va,KAAKmoC,OAAOumrB,WAAa,IAAM7+S,IAAoB,IACtF3mY,UAAWlpC,KAAKmoC,OAAO4+8B,cAAc79pB,EAAUlpV,KAAKmzN,OAAOp8C,cAE3Diw0B,EAAqBlm/B,GAAc,MAAO,CAC1CC,UAAW8ua,KAAwB7va,KAAKmoC,OAAOumrB,WAAa,IAAM7+S,IAAoB,IACtF3mY,UAAWlpC,KAAKmoC,OAAO4+8B,cAAc79pB,EAAUlpV,KAAKmzN,OAAOu5K,YAE/D,GAAgC,UAA5B1sY,KAAKmoC,OAAOw/W,YACRwvB,EAAOn3a,KAAKmzN,OAAO4qwB,WACnBnonB,EAAkB,CAACqqoB,GACnBz3tB,GAAS,CAACy3tB,GAAqB,kBAE1B/2pB,EAAUt+T,OAAS,IAAMs+T,EAAU2mU,SAAW3mU,EAAUn5P,QAC7D6lR,EAAkB,CAACkxoB,EAAsB7G,IAGzCrqoB,EAAkB,GAClBptF,GAAS,CAACy3tB,GAAqB,iBAC1B/2pB,EAAU2mU,QACXj6S,EAAgBxpW,KAAK06+B,GAEzBlxoB,EAAgBxpW,KAAK6z+B,GAChB/2pB,EAAUn5P,SACX6lR,EAAgBxpW,KAAK46+B,QAI5B,CACD,IAAIpgb,OAAe,EACnB,GAAIzvJ,EAAOn3a,KAAKmzN,OAAO4qwB,UAAW,CAI9Bn3Z,EAAe,CAACq5a,EAHGn/+B,GAAc,MAAO,CACpCC,UAAW8ua,IAAsB3mY,UAAWlpC,KAAKmoC,OAAOkje,UAAUtlK,YAAY,YAGtF,KACK,CACD,IAAIrzQ,EAAa1yF,KAAKmoC,OAAO4+8B,cAAc79pB,EAAUlpV,KAAKmzN,OAAOp8C,YAC3D,MAAQ/2K,KAAKmoC,OAAO4+8B,cAAc79pB,EAAUlpV,KAAKmzN,OAAOu5K,UAC1D0hnB,EAAUtt/B,GAAc,MAAO,CAC/BC,UAAW8ua,KAAwB7va,KAAKmoC,OAAOumrB,WAAa,IAAM7+S,IAAoB,IAAK3mY,UAAWwpD,IAEtG275B,EAAcvt/B,GAAc,MAAO,CAAEC,UAAW8ua,MACpD7va,KAAKmoC,OAAOyD,SAASui9B,EAAeE,GACpCznb,EAAe,CAACq5a,EAAoBmO,EAASC,EACjD,CACA,IAAI/x9B,EAAOx7B,GAAc,MAAO,CAAEC,UAAW,iBAC7CiyH,GAAO4zc,EAActqiB,GACrBs5U,EAAkB,CAACt5U,EACvB,CACJ,KA7DqE,CACjE,IAEI6wU,EAFantW,KAAKmoC,OAAOhzB,QAAQghB,GAAK,IAC3Bn2B,KAAKmoC,OAAOuz7B,kBAAkBwkB,kBACJ,gBACrCF,EAAgB,iBAAmBhg/B,KAAK6/+B,wBAA0B,IAAM3+6B,EAAW,IACvF00S,EAAkB51W,KAAKmoC,OAAOg48B,wBAAZng/B,CAAqCy2+B,EAAUz2+B,KAAKmoC,OAAQ638B,EAAe7yoB,GAAY,EAC7G,CA2DA,OAHAn6O,GAAO4iP,EAAiBixoB,GACxB7m/B,KAAKsu/B,iBAAiBn3kB,EAAQ0vkB,GAC9B7m/B,KAAKq8+B,oBAAoB0D,EAAoB5okB,EAAOjtY,KAAMitY,EAAOn3a,KAAKmzN,OAAO8rL,aACtE8gmB,CACX,EACAwK,EAAW55+B,UAAU29+B,iBAAmB,SAAUn3kB,EAAQ0vkB,GACtD,IAAI39pB,EAAYiuF,EAAOjtY,KACvB,IAAK6hS,GAAkBorG,EAAOn3a,KAAKmzN,OAAOk4wB,mBAAqBt/pB,GAAkBorG,EAAOn3a,KAAKmzN,OAAO2ixB,eAAgB,CAChH,IAAIt1lB,EAAa22B,EAAOn3a,KAAKmzN,OAAOh9L,MAAQghZ,EAAOn3a,KAAKmzN,OAAO2ixB,cAC3DjmkB,IAAkCA,IACtCg3kB,EAAmBn19B,YAAY5wB,GAAc,MAAO,CAChDC,UAAW8ua,IAAW,IAAMrvB,GAAaxgZ,KAAKmoC,OAAOumrB,WAAa,IAAM7+S,IAAoB,MAEpG,CACI3mF,EAAU2mU,QAIV38hB,GAAQ,CAHOpyH,GAAc,MAAO,CAChCC,UAAW8ua,IAA4B,IAAMA,IAAW,IAAMA,OAE9Cg3kB,GAEpB39pB,EAAUn5P,SAIVijC,GAAO,CAHSlyH,GAAc,MAAO,CACjCC,UAAW8ua,IAA4B,IAAMA,IAAW,IAAMA,OAE9Cg3kB,EAE5B,EAEA0D,EAAW55+B,UAAU0z+B,aAAe,SAAUtt9B,EAAOmqC,EAAUqo7B,GAC3D,IAAIxy0B,EAAYhgJ,EAAM/2B,KAAKmzN,OAAOp8C,WAC9B21N,EAAU31W,EAAM/2B,KAAKmzN,OAAOu5K,SAC5BzpY,EAAMjD,KAAKmoC,OAAO6k9B,eAAeht/B,KAAKy5+B,WAAYpd,IAAetlzB,IACrE,KAAK9zK,EAAM,GAAO8zK,EAAUr1K,UAAY1B,KAAKmoC,OAAOo1V,QAAQ77X,WAAegrY,EAAQhrY,UAAY1B,KAAKmoC,OAAOq1V,QAAQ97X,WAAnH,CAGA,IAAI6s/B,EAAevu/B,KAAKk8C,SAAS66H,GACjChgJ,EAAMwx9B,MAAQgG,EACd,IAAIpB,EAAap29B,EAAMmT,KAAKtf,MAC5B,GAAImsJ,EAAUr1K,WAAagrY,EAAQhrY,UAAW,CAC1C,IAAIwm/B,EAAYiF,EAAant/B,KAAKiuzB,UAAa,EAC3Co9L,EAASrr/B,KAAK+r/B,UAAUx/9B,SAAStpB,EAAI6T,WAAY,KACjDu2+B,EAAUkB,GAAgBvu/B,KAAKgo/B,YAre/B,GAseAp/1B,EAAS5oJ,KAAKwq/B,mBAAsB+D,EAAe,IAAMvu/B,KAAKgo/B,YAte9D,GAse0Fho/B,KAAKyq/B,oBAC/F+D,EAAkBxu/B,KAAK6q/B,eAAiB0D,EAAe,EAAmBvu/B,KAAKuyzB,WAAa3pqB,EAChG,GAAI5oJ,KAAKmoC,OAAOwi9B,eAAiB6D,EAAiB,CAC9Cxu/B,KAAKgj/B,eAAe52+B,KAAKq9E,GAAO,CAAC,EAAG1yD,EAAO,MAAM,IACjD,IAAI0t9B,OAAqB,EAWzB,GATIA,EADAzk/B,KAAKyu/B,YACgBzu/B,KAAKmoC,OAAOq67B,aAAaomB,iCAGzB5o/B,KAAK0m/B,yBAAyB3v9B,EAAOmqC,GAE9DlhE,KAAKy/+B,mBAAmBgF,EAAoB1t9B,EAAO,kBAAmB/2B,KAAKo4+B,YAC3Ep4+B,KAAK87+B,sBAAsB2I,EAAoB1t9B,GAC/Ci0T,GAAkBy5pB,EAAoB,CAAE,MAASyD,EAAW,KAAM,IAAOmF,EAAS,OAClFrt/B,KAAKut/B,mBAAmBx29B,EAAO0t9B,EAAoB4G,GAC/Crr/B,KAAKmoC,OAAOwi9B,cAAe,CAC3B,IAAIj29B,EAAa229B,EAAOx1tB,cAAcvrP,kBACtCtqC,KAAK0u/B,iBAAiBh69B,EAAYk0H,EACtC,CACJ,MAEI,IAAK,IAAIz8I,EAAI,EAAGA,EAAIgh/B,EAAYhh/B,IAC5B,GAAInM,KAAK+r/B,UAAU9o/B,EAAMkJ,GAAI,CACzB,IAAIwi/B,EAAY3u/B,KAAK+r/B,UAAU9o/B,EAAMkJ,GAAGytB,cAAc,IAAMi2Y,KAC5D,GAAI8+kB,EAAW,CACX,IAAI/j+B,EAAQ2B,SAASoi+B,EAAUr89B,aAAa,cAAe,IAAM,EACjEq89B,EAAU359B,aAAa,aAAcpK,EAAM9T,YAC3C63+B,EAAUzl9B,UAAYlpC,KAAK4u/B,qBAAqBhk+B,EACpD,KACK,CACD,IAAIglY,EAAY,IAAInuZ,KAAKzB,KAAKy5+B,WAAWx2+B,EAAMkJ,GAAGzK,WAC9CmuZ,EAAUwskB,IAAar89B,KAAKy5+B,WAAWx2+B,EAAMkJ,GAAI,GACjDg0zB,EAAang0B,KAAK+r/B,UAAU9o/B,EAAMkJ,GAAGmmB,aAAa,oBAClDm19B,EAAuBzn/B,KAAK6u/B,wBAAwB,EAAGj/lB,EAAWC,GACjE9jF,GAAkBo0f,IACnBsnL,EAAqBzy9B,aAAa,mBAAoBmryB,GAE1DsnL,EAAqBth/B,MAAM+nJ,IAAOluJ,KAAKuyzB,WAAavyzB,KAAKwq/B,kBAAoBxq/B,KAAKyq/B,oBAAuB,KACzGhD,EAAqBth/B,MAAMqY,MAAQxe,KAAKiuzB,UAAY,EAAI,KACxDjuzB,KAAK8u/B,cAAc9u/B,KAAK+r/B,UAAU9o/B,EAAMkJ,GAAIs7+B,GAC5C5uwB,GAAazlN,IAAIq09B,EAAsB,QAASzn/B,KAAK+u/B,mBAAoB/u/B,KAC7E,CACJ,CAGZ,CArDA,CAsDJ,EACAuq/B,EAAW55+B,UAAU+9+B,iBAAmB,SAAUrgb,EAAMzlb,GAC/CA,EAASylb,EAAKt5S,cACfi2D,GAAkBqjP,EAAM,CAAE,OAAUzlb,EAAS,MAErD,EACA2h2B,EAAW55+B,UAAU86+B,oBAAsB,WAEvC,IADA,IACSn8+B,EAAK,EAAG0/+B,EADE,GAAGp++B,MAAMjR,KAAKK,KAAKmV,QAAQ3E,iBAAiB,IAAMq/Z,MACrBvga,EAAK0/+B,EAAe5r/B,OAAQkM,IAAM,CAC9E,IAAI6F,EAAU65+B,EAAe1/+B,GACzBjH,EAASotF,GAAQtgF,EAAS,MAC9BnV,KAAKwq/B,kBAAoBr1+B,EAAQi+Q,aAAawvB,UAAYv6S,EAAOu6S,UACjEztS,EAAQhP,MAAMyiJ,OAAWvgJ,EAAO0sR,aAAe,EAAK/0R,KAAKwq/B,kBAAqB,KAC9E,IAAI919B,EAAarsB,EAAOiiC,kBACpB9rB,EAAQ5a,KAAKmgB,MAAM5O,EAAQg7P,YAAcz7O,EAAWy7O,aACxDh7P,EAAQhP,MAAMqY,MAASkW,EAAWy7O,YAAc3xP,EAAS,IAC7D,CACJ,EAEA+r+B,EAAW55+B,UAAUs++B,kBAAoB,SAAUr/lB,EAAWC,EAASswa,EAAYopL,GAC/E,IAAIpR,EACJ,GAAIpsqB,GAAkBo0f,GAClBg4K,EAAiBn4+B,KAAKs2+B,aAAa1mlB,EAAWC,OAE7C,CACD,IAAI3lX,EAAOlqC,KAAKmoC,OAAOyh8B,aAAaC,kBAAkBt98B,SAAS4zyB,EAAY,KAC3Eg4K,EAAiBn4+B,KAAKs2+B,aAAa1mlB,EAAWC,EAAS9jF,GAAkBw9qB,QAAclm/B,EAAYkm/B,EAAYr/8B,EACnH,CACA,OAAOiu8B,CACX,EACAoS,EAAW55+B,UAAUu++B,iBAAmB,SAAUhv/B,EAAM8l+B,GAGpD,IAFA,IAAImpB,EAAmB,GACnBns+B,EAAWq58B,IAAen89B,GAAMwB,UAC3B4N,EAAK,EAAG8/+B,EAAiBppB,EAAc129B,EAAK8/+B,EAAehs/B,OAAQkM,IAAM,CAC9E,IAAI2m+B,EAAMmZ,EAAe9/+B,GACpB+s9B,IAAe4Z,EAAIj2+B,KAAKmzN,OAAOp8C,YAAYr1K,WAAashB,GACxDq58B,IAAe4Z,EAAIj2+B,KAAKmzN,OAAOu5K,UAAUhrY,WAAashB,GACvDms+B,EAAiB/i/B,KAAK6p+B,EAE9B,CACA,OAAOkZ,CACX,EACA5E,EAAW55+B,UAAUurC,SAAW,SAAUh8C,GACtC,IAAI8o/B,GAAY,EACZhjB,EAAehm+B,KAAKgj/B,eACxB,GAAIhd,EAAa5i+B,OAAS,EAAG,CACzB,IACI2m/B,EADmB/p/B,KAAKkv/B,iBAAiBhv/B,EAAM8l+B,GACnB//9B,KAAI,SAAU4K,GAAO,OAAOA,EAAI03+B,KAAO,IACvES,EAAYe,EAAS3m/B,OAAS,EAAKpD,KAAKk5+B,yBAAyB6Q,GAAY,CACjF,CACA,OAAsB,IAAdf,EAAmB,EAAIA,CACnC,EACAuB,EAAW55+B,UAAUo++B,mBAAqB,SAAUh49B,GAChD,IAAIz3B,EAAQU,KACRqI,EAASotF,GAAQ1+D,EAAM1uB,OAAQ,IAAMwna,KACrCjgB,EAAY,IAAInuZ,KAAK8qB,SAASlkB,EAAOiqB,aAAa,mBAAoB,KACtEu9X,EAAU,IAAIpuZ,KAAK8qB,SAASlkB,EAAOiqB,aAAa,iBAAkB,KAClE6tyB,EAAa93zB,EAAOiqB,aAAa,oBACjC+89B,EAAW,CACXvu6B,QAAQ,EAAO/pD,MAAOA,EAAO5hB,QAAS9M,EAAQgzb,aAAa,EAC3DtkR,UAAW64O,EAAWljB,QAASmjB,EAASkskB,SAAU/79B,KAAKmoC,OAAO877B,mBAE9D9jK,IACAkvL,EAASlvL,WAAa5zyB,SAAS4zyB,EAAY,KAE/Cng0B,KAAKmoC,OAAOm4P,QbjmBS,kBaimBuB+utB,GAAU,SAAU9lX,GAC5D,IAAKA,EAAUzojB,OACX,GAAIyojB,EAAUluM,YAAa,CACvB,IAAI88iB,EAAiB74+B,EAAM2v/B,kBAAkBr/lB,EAAWC,EAASswa,GAC7DmvL,EAAa,CAAEpv/B,KAAM0vZ,EAAW74X,MAAOoh9B,EAAgBhj+B,QAAS4hB,EAAM1uB,QAC1E/I,EAAM6oC,OAAO637B,WAAWuvB,eAAeD,EAAYz/lB,EAASswa,EAChE,MAEI7g0B,EAAM6oC,OAAO8jT,cAAc,CAAEi8D,aAAc0H,IAAa,GACxDtwZ,EAAM6oC,OAAOk17B,WAAW9zV,EAAUwyV,SAAUhl8B,EAGxD,GACJ,EACAwz9B,EAAW55+B,UAAU48+B,mBAAqB,SAAUx29B,EAAO0t9B,EAAoB4G,GAC3E,IAAI/r/B,EAAQU,KACRu3B,EAAYkt9B,EAAmBv8tB,UAAUh1P,SAAS28Y,KAA+B,aAAe,QAChG2/kB,EAAgB/K,EAAmBv8tB,UAAUh1P,SAAS28Y,KAEtD52Z,EAAO,CAAEixB,KADElqC,KAAKku/B,aAAan39B,GACJ5hB,QAASsv+B,EAAoB3j6B,QAAQ,EAAOl0E,KAAM2qB,GAC/Ev3B,KAAKmoC,OAAOm4P,QAAQllK,IAAsBniH,GAAM,SAAU2rU,GAClDA,EAAU9jQ,OACVxhF,EAAM0j/B,eAAe1k9B,MAGrBh/B,EAAMwv/B,cAAczD,EAAQ5G,EAAoB+K,EAExD,GACJ,EACAjF,EAAW55+B,UAAUu9+B,aAAe,SAAUn39B,GAC1C,IAAI0/8B,EAAWht5B,GAAO,CAAC,EAAG1yD,EAAO,MAAM,GAGvC,OAFA0/8B,EAASz2+B,KAAKmzN,OAAOp8C,WAAahgJ,EAAMmT,KAAKlqC,KAAKmzN,OAAOp8C,WACzD0/zB,EAASz2+B,KAAKmzN,OAAOu5K,SAAW31W,EAAMmT,KAAKlqC,KAAKmzN,OAAOu5K,SAChD+pmB,CACX,EACA8T,EAAW55+B,UAAUm++B,cAAgB,SAAUzD,EAAQl2+B,EAASq6+B,QACtC,IAAlBA,IAA4BA,GAAgB,GAC5Cxv/B,KAAK6q/B,gBAAkB2E,GACvBxv/B,KAAKyv/B,kBAAkBt6+B,EAASk2+B,GAEpC,IAAIqE,EAAarE,EAAOzx9B,cAAc,IAAMi2Y,KAC5C,GAAI6/kB,EACAA,EAAWh+9B,YAAYvc,OAEtB,CACD,IAAIhL,EAAUrJ,GAAc,MAAO,CAAEC,UAAW8ua,MAChD1la,EAAQunB,YAAYvc,GACpBk2+B,EAAO359B,YAAYvnB,EACvB,CACJ,EACAog/B,EAAW55+B,UAAUk++B,wBAA0B,SAAUjk+B,EAAOglY,EAAWC,GAWvE,OAV2B/uZ,GAAc,MAAO,CAC5CC,UAAW8ua,IACX3mY,UAAWlpC,KAAK4u/B,qBAAqBhk+B,GACrC6+T,MAAO,CACH,SAAY,IACZ,aAAc7+T,EAAM9T,WACpB,kBAAmB84Y,EAAUluZ,UAAUoV,WACvC,gBAAiB+4Y,EAAQnuZ,UAAUoV,aAI/C,EACAyz+B,EAAW55+B,UAAUi++B,qBAAuB,SAAUhk+B,GAClD,MAAO,IAAM5qB,KAAKmoC,OAAOo7W,UAAU/jE,aAAa50T,GAAS,UAAY5qB,KAAKmoC,OAAOumrB,WAAa,GAAK1utB,KAAKmoC,OAAOkje,UAAUtlK,YAAY,QACzI,EACAwkpB,EAAW55+B,UAAUy6+B,qBAAuB,SAAU76+B,GAElD,IADA,IACSjB,EAAK,EAAGoomB,EADN,GAAG9mmB,MAAMjR,KAAKK,KAAKmV,QAAQ3E,iBAAiB,IAAMD,EAAW,cACxCjB,EAAKoomB,EAAOt0mB,OAAQkM,IAAM,CAC5CoomB,EAAOpomB,GACbg7B,kBAAkBnkC,MAAMyiJ,OAAS,EACzC,CACJ,EACA2h2B,EAAW55+B,UAAU8++B,kBAAoB,SAAU149B,EAAOs3iB,GACtD,IAAIzyD,EAAeygd,IAAoBhuZ,EAAKz0iB,cAAc,IAAMi2Y,MAEhE7kF,GAAkBj0T,EAAO,CAAE,OADbs3iB,EAAKt5S,aAAe6mP,GAAiB57gB,KAAK4lc,UAAY,EAAI5lc,KAAKyq/B,qBAC/B,KAAM,cAAe,UACvE,EACAF,EAAW55+B,UAAUymI,QAAU,WAC3Bp3I,KAAKmV,QAAU,KACfnV,KAAKmzN,OAAS,KACdnzN,KAAK4lc,UAAY,KACjB5lc,KAAK4q/B,cAAgB,KACrB5q/B,KAAK6q/B,eAAiB,KACtB7q/B,KAAKyq/B,oBAAsB,KAC3Bzq/B,KAAKo7B,sBACL0rB,EAAOn2C,UAAUymI,QAAQz3I,KAAKK,KAClC,EACOuq/B,CACX,CA1qBgC,CA0qB9BhV,KClsBErv7B,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAyBzCup8B,IAA+B,SAAU7o8B,GAEzC,SAAS6o8B,EAAcxn9B,EAAQv7B,GAC3B,IAAItN,EAAQwnD,EAAOnnD,KAAKK,KAAMmoC,IAAWnoC,KACzCV,EAAM0v9B,UAAY1v9B,EAAM6oC,OAAOyz7B,WAAW2nB,eAC1Cjk/B,EAAM2v9B,QAAU3v9B,EAAM6oC,OAAOyz7B,WAAW4nB,aACxClk/B,EAAMs+9B,UAAYt+9B,EAAM6oC,OAAOuz7B,kBAAkBiC,UAAUC,UAC3Dt+9B,EAAMkuU,SAAWluU,EAAM6oC,OAAOuz7B,kBAAkBiC,UAAUnwpB,SAC1DluU,EAAM2D,IAAM,EACZ3D,EAAMqxkB,SAAW,EACjBrxkB,EAAMsw/B,SAAW,GACjBtw/B,EAAM0zlB,WAAapmlB,EACnBtN,EAAMuw/B,gBAAkB,GAAGj/+B,MAAMjR,KAAKL,EAAM6V,QAAQ3E,iBAAiB,IAAMq/Z,MAC3E,IAAI4pM,EAAK,GAAG7omB,MAAMjR,KAAKL,EAAM6V,QAAQ3E,iBAAiB,IAAMq/Z,IAA0B,cAGtF,OAFAvwa,EAAMww/B,UAA0B,IAAdr2Y,EAAGr2mB,OAAe,EAAIq2mB,EAAG,GAAG3zmB,SAAS1C,OACvD9D,EAAMyV,QAAUzV,EAAM6oC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KAClDvwa,CACX,CAugBA,OAvhBA4mD,IAAUyp8B,EAAe7o8B,GAiBzB6o8B,EAAch/+B,UAAUw7+B,aAAe,WAGnC,GAFAns/B,KAAKw1+B,MAAQ,GACbx1+B,KAAKw1+B,MAAMpp+B,KAAKpM,KAAKmoC,OAAOyz7B,WAAW2D,YAAYt59B,KAAI,SAAU/F,GAAQ,OAAQA,CAAM,KACnFF,KAAKmoC,OAAOuz7B,kBAAkBxtT,WAAW9qqB,OAAS,GACe,SAAjEpD,KAAKmoC,OAAOuz7B,kBAAkBxtT,WAAWt9pB,OAAO,GAAG,GAAGgtS,OAAmB,CACzE59S,KAAKgzlB,WAAa,MAClB,IAAIm1Y,EAAWno+B,KAAK+U,QAAQ6kB,cAAc,IAAMi2Y,KAChD7va,KAAKiuzB,UAAYk6K,EAAS1zsB,wBAAwBj2Q,QAAU2p9B,EAAS718B,aAAa,YAAc,GAChGtyB,KAAK+v/B,YAAc,CACvB,MAEI/v/B,KAAK+v/B,YAAe/v/B,KAAK8v/B,UAAY9v/B,KAAKy5+B,WAAWr2+B,MAE7D,EACAus/B,EAAch/+B,UAAUu++B,iBAAmB,SAAUhv/B,EAAM8l+B,GACvD,IAAImpB,EAAmB,GACvB,GAAwB,QAApBnv/B,KAAKgzlB,WACL,IAAK,IAAI1jlB,EAAK,EAAG8/+B,EAAiBppB,EAAc129B,EAAK8/+B,EAAehs/B,OAAQkM,IAAM,CAEzE+s9B,KADD4Z,EAAMmZ,EAAe9/+B,IACDtP,KAAKmzN,OAAOp8C,YAAYr1K,WAAa269B,IAAe,IAAI569B,KAAKvB,EAAKwB,YAAYA,WACjG269B,IAAe4Z,EAAIj2+B,KAAKmzN,OAAOu5K,UAAUhrY,WAAa269B,IAAe,IAAI569B,KAAKvB,EAAKwB,YAAYA,WAChGyt/B,EAAiB/i/B,KAAK6p+B,EAE9B,MAGA,IAAK,IAAI3g8B,EAAK,EAAG068B,EAAiBhqB,EAAc1w7B,EAAK068B,EAAe5s/B,OAAQkyC,IAAM,CAC9E,IAAI2g8B,EACA/spB,GADA+spB,EAAM+Z,EAAe168B,IACLpL,KAChBg/S,EAAU+mqB,cAAcvu/B,WAAaxB,EAAKwB,WAC1CwnV,EAAUgnqB,YAAYxu/B,UAAYxB,EAAKwB,WACvCyt/B,EAAiB/i/B,KAAK6p+B,EAE9B,CAEJ,OAAOkZ,CACX,EACAQ,EAAch/+B,UAAUw/+B,qBAAuB,SAAUvgmB,EAAWC,GAChE,IAAIm5lB,GAAY,EACZhjB,EAAehm+B,KAAKgj/B,eACxB,GAAIhd,EAAa5i+B,OAAS,EAAG,CACzB,IACI2m/B,EADmB/p/B,KAAKow/B,6BAA6BxgmB,EAAWC,EAASm2kB,GAC7C//9B,KAAI,SAAU4K,GAAO,OAAOA,EAAI03+B,KAAO,IACvES,EAAYe,EAAS3m/B,OAAS,EAAKpD,KAAKk5+B,yBAAyB6Q,GAAY,CACjF,CACA,OAAsB,IAAdf,EAAmB,EAAIA,CACnC,EACA2G,EAAch/+B,UAAUy/+B,6BAA+B,SAAUxgmB,EAAWC,EAASyolB,GAEjF,IADA,IAAItS,EAAe,GACV129B,EAAK,EAAG+g/B,EAA2B/X,EAAwBhp+B,EAAK+g/B,EAAyBjt/B,OAAQkM,IAAM,CAC5G,IAAI2m+B,EAAMoa,EAAyB/g/B,GACnC,GAAwB,QAApBtP,KAAKgzlB,WACAqpY,IAAe4Z,EAAIj2+B,KAAKmzN,OAAOp8C,YAAYr1K,WAAa269B,IAAe,IAAI569B,KAAKmuZ,EAAUluZ,YAAYA,WACtG269B,IAAe4Z,EAAIj2+B,KAAKmzN,OAAOu5K,UAAUhrY,WAAa269B,IAAe,IAAI569B,KAAKmuZ,EAAUluZ,YAAYA,WACrGsk+B,EAAa559B,KAAK6p+B,OAGrB,CACD,IAAI/spB,EAAY+spB,EAAI/r8B,MACdg/S,EAAU+mqB,cAAcvu/B,WAAakuZ,EAAUluZ,WAAekuZ,EAAUluZ,UAAYwnV,EAAUgnqB,YAAYxu/B,WAC1GkuZ,EAAUluZ,WAAawnV,EAAU+mqB,cAAcvu/B,WAAewnV,EAAU+mqB,cAAcvu/B,UAAYmuZ,EAAQnuZ,YAC5Gsk+B,EAAa559B,KAAK6p+B,EAE1B,CACJ,CACA,OAAOjQ,CACX,EACA2pB,EAAch/+B,UAAU46+B,qBAAuB,WAC3Cvr/B,KAAKor/B,qBAAqBv7kB,KAC1B,IAAIy6G,EAAYtqhB,KAAKmoC,OAAO+27B,cAActuX,gBACtC,CAAC5wmB,KAAKmoC,OAAOyh8B,aAAaC,kBAAkB7p+B,KAAKmoC,OAAO+27B,cAAc/+J,aACtEng0B,KAAKmoC,OAAOyh8B,aAAac,kBAC7B,GAAI1q+B,KAAKmoC,OAAOo47B,YAAcvg+B,KAAKmoC,OAAOo47B,WAAWwV,QAAQpzjB,aAAc,CACvE,IAAK,IAAIx2a,EAAI,EAAGwjD,EAAM3vD,KAAKmoC,OAAOo47B,WAAWwV,QAAQ+N,YAAY1g/B,OAAQ+I,EAAIwjD,EAAKxjD,IAAK,CACnF,IAAIyK,EAAS5W,KAAKmoC,OAAOo47B,WAAWwV,QAAQ+N,YAAYv39B,SAASpgB,EAAE2K,WAAY,KAG/E,GAFA9W,KAAK2wkB,SAAW/5jB,EAAOupzB,WACvBng0B,KAAKwr/B,oBAAoBxr/B,KAAKmoC,OAAOyz7B,WAAW2D,YAAav/9B,KAAKmoC,OAAOuz7B,kBAAkBmsB,SAAUjx+B,GACjG5W,KAAKmoC,OAAOo47B,WAAWwV,QAAQ18R,YAAY9srB,SAASpgB,EAAE2K,WAAY,MAAQ9W,KAAKmoC,OAAOo47B,WAAWwV,QAAQ+N,YAAYv39B,SAASpgB,EAAE2K,WAAY,KAAKqpzB,aACjJng0B,KAAKmoC,OAAOo47B,WAAWwV,QAAQ18R,YAAY9srB,SAASpgB,EAAE2K,WAAY,KAAKqpzB,WAAY,CACnF,IAAI93zB,EAASrI,KAAKmoC,OAAOo47B,WAAWwV,QAAQ18R,YAAY9srB,SAASpgB,EAAE2K,WAAY,KAC/E9W,KAAK2wkB,SAAWtokB,EAAO83zB,WACvBng0B,KAAKwr/B,oBAAoBxr/B,KAAKmoC,OAAOyz7B,WAAW2D,YAAav/9B,KAAKmoC,OAAOuz7B,kBAAkBmsB,SAAUx/+B,EACzG,CACJ,CACArI,KAAKmoC,OAAOo47B,WAAWwV,QAAQpzjB,cAAe,CAClD,MAEI,IAASx2a,EAAI,EAAGA,EAAIm+gB,EAAUlnhB,OAAQ+I,IAClCnM,KAAK2wkB,SAAWxkkB,EAChBnM,KAAKwr/B,oBAAoBxr/B,KAAKmoC,OAAOyz7B,WAAW2D,YAAav/9B,KAAKmoC,OAAOuz7B,kBAAkBmsB,SAAUv9d,EAAU/9f,SAASpgB,EAAE2K,WAAY,KAGlJ,EACA64+B,EAAch/+B,UAAU0z+B,aAAe,SAAUtt9B,EAAOmqC,EAAUiu7B,GAC9D,IAAIp40B,EAAYhgJ,EAAM/2B,KAAKmzN,OAAOp8C,WAC9B21N,EAAU31W,EAAM/2B,KAAKmzN,OAAOu5K,SAChC,KAAK31N,EAAUr1K,UAAY1B,KAAKmoC,OAAOo1V,QAAQ77X,WAAegrY,EAAQhrY,UAAY1B,KAAKmoC,OAAOq1V,QAAQ97X,WAAtG,CAGA,IAAIwnV,EAAYnyT,EAAMmT,KACtB6sI,EAAY/2K,KAAKss/B,aAAav19B,EAAOmyT,GACrCwjD,EAAU1sY,KAAK+s/B,WAAWh29B,EAAOmyT,GACjC,IAAIg5pB,EAAgB7lB,IAAsBtl8B,EAAM/2B,KAAKmzN,OAAOp8C,WAAY/2K,KAAKgv9B,UAAWhv9B,KAAKiv9B,SACzF24B,EAAa5n/B,KAAKii/B,2BAA2BC,EAAenr0B,EAAW21N,GAI3E,GAHA31N,EAAY6w0B,EAAWh4lB,UACvBljB,EAAUk7mB,EAAW/3lB,QACrB7vZ,KAAKiD,IAAMjD,KAAKmoC,OAAO6k9B,eAAeht/B,KAAKy5+B,WAAYpd,IAAe,IAAI569B,KAAKs1K,EAAUr1K,eACrF1B,KAAKiD,IAAM,GAAf,CAGA,IAAIoo/B,EAASrr/B,KAAKit/B,YACdsB,EAAgBxirB,GAAkB/rU,KAAKmoC,OAAOi07B,cAAcjqX,cAAiBnymB,KAAKk8C,SAAS66H,GAAa/2K,KAAKmw/B,qBAAqBp50B,EAAW21N,GACjJ31W,EAAMwx9B,MAAQgG,EACd,IAAIhK,EAAYvk/B,KAAKgo/B,YACjBmF,EAAajkqB,EAAUt+T,MACvB6r9B,EAAWht5B,GAAO,CAAC,EAAG1yD,EAAO,MAAM,GACvC0/8B,EAASz2+B,KAAKmzN,OAAOp8C,WAAamyK,EAAUlpV,KAAKmzN,OAAOp8C,WACxD0/zB,EAASz2+B,KAAKmzN,OAAOu5K,SAAWxjD,EAAUlpV,KAAKmzN,OAAOu5K,SACtD,IACIjnG,EAAW42rB,IADGA,IAAe,IAAI569B,KAAKzB,KAAKy5+B,WAAWz5+B,KAAKiD,KAAKvB,YAClB1B,KAAKgv9B,UAAWhv9B,KAAKiv9B,SACnE0yB,GAAe,EAOnB,GALIA,KADA3h/B,KAAKsw/B,iBAAkB7Z,EAASz2+B,KAAKmzN,OAAO4qwB,YAI7B/99B,KAAK2h/B,aAAalL,EAAU1/zB,EAAW21N,EAASjnG,GAE/D1uH,GAAa21N,GAAWi1mB,EAAc,CACtC,IAAIuG,EAAWlo/B,KAAKip/B,cAAcly0B,EAAW21N,EAAS31W,EAAM/2B,KAAKmzN,OAAO4qwB,UAAWovB,GACnFjF,EAA+B,QAApBlo/B,KAAKgzlB,WAAuBk1Z,EAAW,EAAIA,EACtD,IAAIxD,EACA0I,EACAlj6B,EAAWlqF,KAAKmjI,YAAY4zC,EAAW21N,EAAS31W,EAAM/2B,KAAKmzN,OAAO4qwB,UAAW/99B,KAAKiD,KACtFil/B,EAAYA,GAAY,EAAKlo/B,KAAKiuzB,UAAYi6L,EAC9Clo/B,KAAKgj/B,eAAe52+B,KAAKq9E,GAAO,CAAC,EAAG1yD,EAAO,MAAM,IAC7Cg1S,GAAkB/rU,KAAK4v/B,SAASrj+B,SAAS20C,EAASpqD,WAAY,QAC9D9W,KAAK4v/B,SAASrj+B,SAAS20C,EAASpqD,WAAY,KAAO9W,KAAKst/B,UAAUps7B,IAEtE,IAAIy3c,EAAQ34gB,KAAK4v/B,SAASrj+B,SAAS20C,EAASpqD,WAAY,KACpDu2+B,EAAU10e,GAAS34gB,KAAK4lc,UAAY,EAnKpC,GAmKuD2ojB,GAAgBhK,EAnKvE,GAoKJG,EAAW1k/B,KAAKmoC,OAAOkwT,UAAa,EAAInuQ,EACxCkj6B,EAAYpt/B,KAAKmoC,OAAOkwT,UAAanuQ,EAAW,EAChD,IAAI0+D,GAAW2l2B,EAAe,IAAMhK,EAtKhC,GAsK0Dvk/B,KAAKyq/B,oBAC/D8F,EAAYvw/B,KAAK6q/B,eAAiB0D,EAAe,EAAmBvu/B,KAAKuyzB,WAAa3pqB,EAC1F,GAAI5oJ,KAAKmoC,OAAOwi9B,eAAiB4F,EAAW,CACxC,IAAI9L,OAAqB,EAYzB,GAVIA,EADA14qB,GAAkB/rU,KAAKyu/B,aACFzu/B,KAAK0m/B,yBAAyB3v9B,EAAOmqC,GAGrClhE,KAAKmoC,OAAOq67B,aAAaomB,iCAElD5o/B,KAAKy/+B,mBAAmBgF,EAAoB1t9B,EAAO,kBAAmB/2B,KAAKo4+B,YAC3EptpB,GAAkBy5pB,EAAoB,CAClC,MAASyD,EAAW,KAAM,KAAQxD,EAAU,KAAM,MAAS0I,EAAW,KAAM,IAAOC,EAAS,OAEhGrt/B,KAAK87+B,sBAAsB2I,EAAoB1t9B,GAC3C/2B,KAAKmoC,OAAOwi9B,cAAe,CAC3B,IAAIO,EAAUlr/B,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KAClD2glB,EAAWtF,EAAQz2tB,wBAAwBj2Q,MAC3Ciy+B,EAAkBvF,EAAQn2tB,eAAiBm2tB,EAAQhmvB,cACnDgmvB,EAAQ/6uB,cAAgB+6uB,EAAQnmvB,YACpC/kQ,KAAKut/B,mBAAmBx29B,EAAO0t9B,EAAoB4G,GACnD,IAAI329B,EAAa10B,KAAK0w/B,cAAcxv7B,GACpClhE,KAAK0u/B,iBAAiBh69B,EAAYk0H,GAC9B6n2B,IACCvF,EAAQ/6uB,YAAc+6uB,EAAQnmvB,aAAeyrvB,IAAatF,EAAQz2tB,wBAAwBj2Q,QAC3Fxe,KAAK2w/B,mBAAmBH,EAEhC,MAEIxw/B,KAAKut/B,mBAAmBx29B,EAAO0t9B,EAAoB4G,EAE3D,MAEI,IAAK,IAAIl/+B,EAAI,EAAGA,EAAIgh/B,EAAYhh/B,IAAK,CACjC,IAAIyk/B,EAAgBvF,EAAOzx9B,cAAc,IAAMi2Y,KAC3CghlB,EAAU7w/B,KAAKmoC,OAAOkwT,UAAa+0pB,EAAW1I,EAClDmM,EAAUjt/B,KAAKiG,MAAMgn/B,EAAS7w/B,KAAKiuzB,WAAajuzB,KAAKiuzB,UACrD,IAAIzgf,EAAWxtU,KAAKwtU,SAAWxtU,KAAK499B,UAChChukB,EAAsD,kBAAzC5vZ,KAAKmoC,OAAOuz7B,kBAAkB99qB,QAAkD,QAApB59S,KAAKgzlB,YAA8B,IAAN7mlB,EACtG,IAAI1K,KAAKzB,KAAKy5+B,WAAWz5+B,KAAKiD,IAAMkJ,GAAGzK,WAAa,IAAID,KAAKs1K,GAC7D84O,EAAUwskB,IAAar89B,KAAKy5+B,WAAWz5+B,KAAKiD,IAAMkJ,GAAI,GAC1D,GAA6C,kBAAzCnM,KAAKmoC,OAAOuz7B,kBAAkB99qB,QAAkD,QAApB59S,KAAKgzlB,WAAsB,CACvF,IAAI89Z,EAAa9w/B,KAAKmjI,YAAYysR,EAAWC,EAAS94X,EAAM/2B,KAAKmzN,OAAO4qwB,UAAY/99B,KAAKiD,IAAMkJ,GAC/FnM,KAAK+w/B,4BAA4Bh60B,EAAW64O,EAAWC,EAAS00lB,EAAW/2qB,EAAUtsQ,EAAUiu7B,EAAkBx2e,EAAO+re,EAAS0I,EAAU/B,EAAQuF,EAAeC,EAAQC,EAC9K,MAII,IAFA,IAAIlzB,GAAavB,IAAsB3vlB,GAAW2vlB,IAAsBtlzB,IAAcslzB,IAClFr89B,KAAK499B,UAAY599B,KAAKwtU,SACjB1sT,EAAI,EAAGA,EAAI888B,IAChBhukB,EAAmB,IAAN9uY,EAAW,IAAIrf,KAAKmuZ,EAAUluZ,WAAa,IAAID,KAAKmuZ,EAAUluZ,UAAa,IAAQ8rU,MAChGqiF,EAAU,IAAIpuZ,KAAKmuZ,EAAUluZ,UAAa,IAAQ8rU,IACtC9rU,UAAYgrY,EAAQhrY,YAHLof,IAAK,CAMhC,IAAIkw+B,EAAahx/B,KAAKmjI,YAAYysR,EAAWC,GAAS,EAAQ7vZ,KAAKiD,IAAMkJ,GACzE,GAAI0k/B,EAASG,EACT,MAEJH,EAASG,EACThx/B,KAAK+w/B,4BAA4Bh60B,EAAW64O,EAAWC,EAAS00lB,EAAW/2qB,EAAUtsQ,EAAUiu7B,EAAkBx2e,EAAO+re,EAAS0I,EAAU/B,EAAQuF,EAAeC,EAAQG,EAC9K,CAER,CAER,CACAhx/B,KAAKmoC,OAAOukf,iBAlGZ,CAXA,CA8GJ,EACAije,EAAch/+B,UAAUog/B,4BAA8B,SAAUh60B,EAAW64O,EAAWC,EAAS00lB,EAAW/2qB,EAAUtsQ,EAAUiu7B,EAAkBjh2B,EAAKw21B,EAAS0I,EAAU/B,EAAQuF,EAAeC,EAAQ3m6B,GAInM,GAHAw65B,EAAW1k/B,KAAKmoC,OAAOkwT,UAAa+0pB,EAAWlj6B,EAAWA,EAC1D2m6B,EAAU7w/B,KAAKmoC,OAAOkwT,UAAa+0pB,EAAW1I,EAC9CmM,EAAUjt/B,KAAKiG,MAAMgn/B,EAAS7w/B,KAAKiuzB,WAAajuzB,KAAKiuzB,UAChDo9L,GAAUt/qB,GAAkB6krB,KAC3B5w/B,KAAKix/B,eAAeJ,EAAQxF,GAAU,CACxC,IAAI6F,EAA0D,kBAAzClx/B,KAAKmoC,OAAOuz7B,kBAAkB99qB,QAAkD,QAApB59S,KAAKgzlB,WAAwB,IAAIvxlB,MAAMs1K,GAAa64O,EACjIuhmB,EAAiB,IAAI1v/B,KAAKyv/B,EAActs5B,WAAWhhG,KAAKiG,MAAMqn/B,EAAc9t+B,aAAeoqT,GAAYA,IACvG4jrB,EAAc,IAAI3v/B,KAAK0v/B,EAAczv/B,UAAa,IAAQ8rU,GAC1D2yf,OAAa,EACbng0B,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,IAAM2oU,GAAkB7qQ,KAC/Ei/vB,EAAaj/vB,EAASpqD,YAE1B,IAAIw/9B,EAAet2+B,KAAKqx/B,gBAAgBzhmB,EAAWC,EAASshmB,EAAeC,EAAajxL,EAAYgvL,GAChGmC,EAAUtx/B,KAAKuyzB,WAAavyzB,KAAKyq/B,oBACrClG,EAAYvk/B,KAAK4q/B,cAAgB0G,EAxP7B,EAwPmD/M,EACvD,IAAIgN,EAAmB3t/B,KAAKiG,MAAMyn/B,GAAW/M,EAzPzC,IA0PA359B,EAAS0r9B,EAAalz+B,OAASmu/B,GAAqB,EAAI,EAAKjb,EAAalz+B,OAASmu/B,EACnF9J,OAAuB,EAEvBA,EADoB,QAApBzn/B,KAAKgzlB,WACkBhzlB,KAAK6u/B,wBAAwBjk+B,EAAOglY,EAAWC,GAG/C7vZ,KAAK6u/B,wBAAwBjk+B,EAAOum+B,EAAeC,GAEzErlrB,GAAkBo0f,IACnBsnL,EAAqBzy9B,aAAa,mBAAoBmryB,GAE1DsnL,EAAqBth/B,MAAM+nJ,IAAMA,EAAMoj2B,EAAU,KACjD7J,EAAqBth/B,MAAMqY,MAAQxe,KAAKiuzB,UAAY,KACpDw5L,EAAqBth/B,MAAMw9H,KAAQ//H,KAAKiG,MAAM66+B,EAAU1k/B,KAAKiuzB,WAAajuzB,KAAKiuzB,UAAa,KAC5Fw5L,EAAqBth/B,MAAMy9H,MAAShgI,KAAKiG,MAAMuj/B,EAAWpt/B,KAAKiuzB,WAAajuzB,KAAKiuzB,UAAa,KAC9FjuzB,KAAK8u/B,cAAczD,EAAQ5D,GAC3B5uwB,GAAazlN,IAAIq09B,EAAsB,QAASzn/B,KAAK+u/B,mBAAoB/u/B,KAC7E,CACJ,EACA2v/B,EAAch/+B,UAAU+9+B,iBAAmB,SAAUrgb,EAAMzlb,GAEvD,GAAIA,GADmC,KAAtBylb,EAAKlokB,MAAMyiJ,OAAgB5oJ,KAAKuyzB,WAAahmyB,SAAS8hjB,EAAKlokB,MAAMyiJ,OAAQ,KACjE,CAErB,GADAoiM,GAAkBqjP,EAAM,CAAE,OAAUzlb,EAAS,OACzC5oJ,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,EAAG,CAC1D,IAAIgn+B,EAAepq+B,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,IAAN,+BACjDw+J,EAAK/7iB,aAAa,oBAAsB,MACxC838B,GACAp/oB,GAAkBo/oB,EAAc,CAAE,OAAUxh1B,EAAS,MAE7D,CACA,IAAI4o2B,EAAcxx/B,KAAKmoC,OAAOhzB,QAAQykB,cAAc,+CAC/Cy0iB,EAAKx4S,cAAc86S,SAAW,GAAK,QACpC6gb,GACAxmqB,GAAkBwmqB,EAAa,CAAE,OAAU5o2B,EAAS,MAE5D,CACJ,EACA+m2B,EAAch/+B,UAAUgg/B,mBAAqB,SAAUH,GACnD,IAAIlx/B,EAAQU,KACRy5mB,EAAKz5mB,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,IAA0B,aAC3E7va,KAAKiuzB,UAAYjuzB,KAAK+r/B,UAAU,GAAGt3tB,wBAAwBj2Q,MAC3D,IAAIiz+B,EAAqBzx/B,KAAKiuzB,UAAYx0M,EAAG3zmB,SAAS1C,QAAWot/B,EAAW,KACjE,GAAG5/+B,MAAMjR,KAAKK,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiB,IAAMq/Z,MAC/Dxpa,SAAQ,SAAU4v+B,GACf32+B,EAAM6oC,OAAOkwT,WAAiC,QAApB49oB,EAAI9v+B,MAAMy9H,MACpCqy2B,EAAI9v+B,MAAMy9H,MAAUlzF,WAAWul8B,EAAI9v+B,MAAMy9H,OAAS,IAAO6t3B,EAAqB,KAEtD,QAAnBxb,EAAI9v+B,MAAMw9H,OACfsy2B,EAAI9v+B,MAAMw9H,KAASjzF,WAAWul8B,EAAI9v+B,MAAMw9H,MAAQ,IAAO8t3B,EAAqB,MAEhFxb,EAAI9v+B,MAAMqY,MAAUkyB,WAAWul8B,EAAI9v+B,MAAMqY,OAAS,IAAOiz+B,EAAqB,IAClF,GACJ,EACA9B,EAAch/+B,UAAU+/+B,cAAgB,SAAUjk+B,GAC9C,IAAIuiK,EAAQ,IAAM6gP,IAA0B,YACxCswZ,EAAa,GAKjB,OAJIng0B,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,IACvD+8zB,EAAa,sBAAwB1zyB,EAAM3V,WAAa,MAEnD9W,KAAKmoC,OAAOhzB,QAAQykB,cAAco1J,EAAQmxoB,EAEvD,EACAwvL,EAAch/+B,UAAU86+B,oBAAsB,WAE1C,IADA,IACSn8+B,EAAK,EAAG0/+B,EADE,GAAGp++B,MAAMjR,KAAKK,KAAKmV,QAAQ3E,iBAAiB,IAAMq/Z,MACrBvga,EAAK0/+B,EAAe5r/B,OAAQkM,IAAM,CAC9E,IAAI6F,EAAU65+B,EAAe1/+B,GACzB4xD,EAAW30C,SAASpX,EAAQmd,aAAa,oBAAqB,IAC9DoC,EAAa10B,KAAK0w/B,cAAcxv7B,GACpC/rD,EAAQhP,MAAMyiJ,OAASl0H,EAAWqgQ,aAAe,KACjD,IAAIv2Q,EAAQ5a,KAAKmgB,MAAM5O,EAAQg7P,YAAcz7O,EAAWy7O,aACxDh7P,EAAQhP,MAAMqY,MAASkW,EAAWy7O,YAAc3xP,EAAS,IAC7D,CAEA,IADA,IACS82B,EAAK,EAAGo88B,EADI,GAAG9g/B,MAAMjR,KAAKK,KAAKmV,QAAQ3E,iBAAiB,IAAMq/Z,MACnBv6X,EAAKo88B,EAAiBtu/B,OAAQkyC,IAAM,CAChFngC,EAAUu8+B,EAAiBp88B,GAC3B4rB,EAAW30C,SAASpX,EAAQmd,aAAa,oBAAqB,IAClEnd,EAAQhP,MAAM+nJ,IAAMluJ,KAAKst/B,UAAUps7B,GAC/BlhE,KAAK0w/B,cAAcxv7B,GAAU6zN,aArUhB,GAqUwD,IAC7E,CACJ,EACA46tB,EAAch/+B,UAAU27+B,aAAe,SAAUv19B,EAAOmyT,GACpD,IAAInyK,EAAYhgJ,EAAM/2B,KAAKmzN,OAAOp8C,WAC9B0uH,EAAW42rB,IAAsBtlzB,EAAW/2K,KAAKgv9B,UAAWhv9B,KAAKiv9B,SAiBrE,OAfIl4yB,EADA/2K,KAAKsw/B,eACOv59B,EAAM/2B,KAAKmzN,OAAOp8C,WAG1B0uH,EAASuprB,UAAUtt9B,WAAawnV,EAAUlpV,KAAKmzN,OAAOp8C,WAC1C0uH,EAASuprB,UAEhBvprB,EAASwprB,QAAQvt9B,WAAawnV,EAAUlpV,KAAKmzN,OAAOp8C,WAC7C/2K,KAAK2x/B,WAAWlstB,EAASuprB,UAAW9loB,GAGpCA,EAAUlpV,KAAKmzN,OAAOp8C,WAI1CmyK,EAAU+mqB,cAAiBl59B,EAAM/2B,KAAKmzN,OAAO4qwB,UAAat4rB,EAASuprB,UAAY9loB,EAAUlpV,KAAKmzN,OAAOp8C,WAC9FA,CACX,EACA440B,EAAch/+B,UAAUgh/B,WAAa,SAAU560B,EAAWmyK,GAEtD,IADA,IAAI0mE,EACKzjZ,EAAI,EAAGA,GAAKnM,KAAKy5+B,WAAWr2+B,OAAQ+I,IAEzC,GADAyjZ,EAAYyskB,IAAatlzB,EAAW5qK,IACgE,IAAhGnM,KAAKmoC,OAAO6k9B,eAAeht/B,KAAKy5+B,WAAYpd,IAAe,IAAI569B,KAAKs1K,EAAUr1K,aAE9E,OADAwnV,EAAUt+T,MAAQs+T,EAAUt+T,MAAQ,EAC7BglY,EAGf,OAAOA,CACX,EACA+/lB,EAAch/+B,UAAUo8+B,WAAa,SAAUh29B,EAAOmyT,GAClD,IAAIwjD,EAAU31W,EAAM/2B,KAAKmzN,OAAOu5K,SAC5BjnG,EAAW42rB,IAAsB3vlB,EAAS1sY,KAAKgv9B,UAAWhv9B,KAAKiv9B,SAenE,OAdIjv9B,KAAKsw/B,eACL5jnB,EAAUxjD,EAAUlpV,KAAKmzN,OAAOu5K,UAGhCA,EAAUxjD,EAAUlpV,KAAKmzN,OAAOu5K,UAC5BjnG,EAASwprB,QAAQvt9B,WAAawnV,EAAUlpV,KAAKmzN,OAAOu5K,UAAY31W,EAAM/2B,KAAKmzN,OAAO4qwB,aAClFrxlB,EAAUjnG,EAASwprB,SAEnBxprB,EAASuprB,UAAUtt9B,WAAawnV,EAAUlpV,KAAKmzN,OAAOu5K,SAAShrY,YAAcq1B,EAAM/2B,KAAKmzN,OAAO4qwB,YAC/FrxlB,EAAU1sY,KAAK4x/B,eAAenstB,EAASuprB,UAAWvprB,EAASwprB,QAAS/loB,KAI5EA,EAAUgnqB,YAAen59B,EAAM/2B,KAAKmzN,OAAO4qwB,UAAat4rB,EAASwprB,QAAU/loB,EAAUlpV,KAAKmzN,OAAOu5K,SAC1FA,CACX,EACAijnB,EAAch/+B,UAAUih/B,eAAiB,SAAU760B,EAAW21N,EAASxjD,GACnE,IAAK,IAAI/8U,EAAI,EAAGA,GAAKnM,KAAKy5+B,WAAWr2+B,OAAQ+I,IAAK,CAC9C,IAAI0jZ,EAAUwskB,IAAa3vlB,GAAUvgY,GACrC,IAAoG,IAAhGnM,KAAKmoC,OAAO6k9B,eAAeht/B,KAAKy5+B,WAAYpd,IAAe,IAAI569B,KAAKs1K,EAAUr1K,aAAqB,EACnGmuZ,EAAUwskB,IAAe,IAAI569B,KAAKouZ,EAAQnuZ,aAClCe,SAASiqY,EAAQvpX,WAAYupX,EAAQtpX,aAAcspX,EAAQrpX,cACnE,IAAIuH,EAAQs+T,EAAUt+T,MAClB+i+B,EAAgBzkqB,EAAUlpV,KAAKmzN,OAAOu5K,SAE1C,OADAxjD,EAAUt+T,MAAqC,IAA7B+i+B,EAAcxq+B,YAAmD,IAA/Bwq+B,EAAcvq+B,aAAqBwH,EAAQ,EAAIA,EAC5FilY,CACX,CACJ,CACA,OAAO3mE,EAAUlpV,KAAKmzN,OAAOu5K,QACjC,EACAijnB,EAAch/+B,UAAUs4+B,cAAgB,SAAUr5lB,EAAWC,EAASkukB,EAAUnz8B,GAC5E,MAAwB,QAApB5qB,KAAKgzlB,YAAwB+qY,EACrBnz8B,EAAQ5qB,KAAK+v/B,YAAe/v/B,KAAKiuzB,UAEzCjuzB,KAAKmC,UAAUytZ,EAAWC,GACnB7vZ,KAAK6x/B,sBAAsBjimB,EAAWC,GAGtC7vZ,KAAK8x/B,sBAAsBlimB,EAAWC,EAASjlY,EAE9D,EACA+k+B,EAAch/+B,UAAUkh/B,sBAAwB,SAAUjimB,EAAWC,GACjE,OAASwskB,IAAsBxskB,GAAWwskB,IAAsBzskB,IAC5DyskB,KAAsBr89B,KAAKiuzB,UAAYjuzB,KAAK499B,WAAa599B,KAAKwtU,QACtE,EACAmirB,EAAch/+B,UAAUmh/B,sBAAwB,SAAUlimB,EAAWC,EAASs9lB,GAC1E,IACI7shB,EADA9hd,EAAS2u+B,EAAant/B,KAAK+v/B,YAAe/v/B,KAAKiuzB,UAE/C/3wB,EAAQmm7B,IAAsBA,IAAe,IAAI569B,KAAKmuZ,EAAUluZ,YAAa1B,KAAKgv9B,UAAWhv9B,KAAKiv9B,SAClG5uf,EAAarge,KAAK6x/B,sBAAsB378B,EAAM846B,UAAWp/jB,GAC7D,IAAkG,IAA9F5vZ,KAAKmoC,OAAO6k9B,eAAeht/B,KAAKy5+B,WAAYpd,IAAe,IAAI569B,KAAKouZ,EAAQnuZ,aAC5E4+d,EAAW,MAEV,CACD,IAAIlnb,EAAMij7B,IAAsBA,IAAe,IAAI569B,KAAKouZ,EAAQnuZ,YAAa1B,KAAKgv9B,UAAWhv9B,KAAKiv9B,SAClG3uf,EAAWtge,KAAK6x/B,sBAAsBhimB,EAASz2W,EAAI616B,SACnD3uf,EAAatge,KAAK+v/B,YAAc/v/B,KAAKiuzB,YAAe3tV,EAAY,EAAIA,CACxE,CACA,IAAIyxhB,EAAe1xhB,EAAaC,EAChC,OAAQ9hd,EAAQuz+B,EAAgBvz+B,EAAQuz+B,EAAevz+B,EAAQ6hd,CACnE,EACAsvhB,EAAch/+B,UAAUxO,UAAY,SAAU40K,EAAW21N,GAGrD,OAFe1sY,KAAKmoC,OAAO6k9B,eAAeht/B,KAAKy5+B,WAAYpd,IAAe,IAAI569B,KAAKs1K,EAAUr1K,eAChF1B,KAAKmoC,OAAO6k9B,eAAeht/B,KAAKy5+B,WAAYpd,IAAe,IAAI569B,KAAKirY,EAAQhrY,YAE7F,EACAiu/B,EAAch/+B,UAAUqh/B,mBAAqB,SAAUvstB,EAAU1uH,EAAW9zK,GACxE,IAAIgv/B,EAAUjy/B,KAAKmC,UAAU40K,EAAW0uH,EAASuprB,YAC3CqN,IAAsBtlzB,GAAaslzB,IAAsB52rB,EAASuprB,aAC/DqN,IAAqBr89B,KAAKwtU,UAAaxtU,KAAK499B,UAAY,EACjE,OAAY,IAAR369B,EACOgv/B,EAGOru/B,KAAKmgB,OAASs48B,IAAsB52rB,EAASwprB,SAAWoN,IAAsB52rB,EAASuprB,YACjGqN,IAAsBr89B,KAAKwtU,SAAYxtU,KAAK499B,WAC9B369B,EAAOgv/B,CAEjC,EACAtC,EAAch/+B,UAAUwyH,YAAc,SAAU4zC,EAAW21N,EAASqxlB,EAAU969B,GAC1E,GAAwB,QAApBjD,KAAKgzlB,YAAwB+qY,EAC7B,OAAQ969B,EAAMjD,KAAK+v/B,YAAe/v/B,KAAKiuzB,UAE3C,IACIxohB,EAAW42rB,IADGA,IAAe,IAAI569B,KAAKzB,KAAKy5+B,WAAWlt9B,SAAStpB,EAAI6T,WAAY,KAAKpV,YACtC1B,KAAKgv9B,UAAWhv9B,KAAKiv9B,SAcvE,OAZIxprB,EAASwprB,QAAQvt9B,WAAagrY,EAAQhrY,WAAa+jS,EAASuprB,UAAUtt9B,WAAaq1K,EAAUr1K,UACjF1B,KAAKgy/B,mBAAmBvstB,EAAUA,EAASuprB,UAAW/r9B,GAE7DwiS,EAASwprB,QAAQvt9B,WAAagrY,EAAQhrY,UAC/B1B,KAAKgy/B,mBAAmBvstB,EAAU1uH,EAAW9zK,GAEpDwiS,EAASuprB,UAAUtt9B,WAAaq1K,EAAUr1K,UACnC1B,KAAKgy/B,mBAAmBvstB,EAAUA,EAASuprB,UAAW/r9B,GAGtDjD,KAAKgy/B,mBAAmBvstB,EAAU1uH,EAAW9zK,IAE1CjD,KAAKiuzB,SAC5B,EACA0hM,EAAch/+B,UAAU0g/B,gBAAkB,SAAUzhmB,EAAWC,EAAS94O,EAAW21N,EAASwlnB,EAAQ3I,GAChG,MAAwB,QAApBvp/B,KAAKgzlB,WACEhzlB,KAAKiv/B,kBAAkBr/lB,EAAWC,EAASqimB,EAAQ3I,GAGnDvp/B,KAAKiv/B,kBAAkBl40B,EAAW21N,EAASwlnB,EAAQ3I,EAElE,EACAoG,EAAch/+B,UAAUsg/B,eAAiB,SAAUJ,EAAQxF,GAEvD,IADA,IAAIuF,EAAgB,GAAGhg/B,MAAMjR,KAAK0r/B,EAAO76+B,iBAAiB,IAAMq/Z,MACvD1ja,EAAI,EAAGA,EAAIyk/B,EAAcxt/B,OAAQ+I,IAAK,CAC3C,IAAIgm/B,OAAe,EAInB,GAHIvB,IACAuB,EAAgBny/B,KAAKmoC,OAAOkwT,UAAau4pB,EAAcrk+B,SAASpgB,EAAE2K,WAAY,KAAK3Q,MAAMy9H,MAAQgt3B,EAAcrk+B,SAASpgB,EAAE2K,WAAY,KAAK3Q,MAAMw9H,MAEjJp3G,SAAS4l+B,EAAc,MAAQvu/B,KAAKiG,MAAMgn/B,GAC1C,OAAO,CAEf,CACA,OAAO,CACX,EACAlB,EAAch/+B,UAAU28+B,UAAY,SAAUps7B,GAC1C,OAAIlhE,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,IAAMpD,KAAKmoC,OAAO+27B,cAActuX,gBAChF5wmB,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,IAAN,+BACC3uW,EAASpqD,WAAa,MAAM8rS,UAEnE,CACX,EACA+ssB,EAAch/+B,UAAUs8+B,UAAY,WAChC,IAAImF,EAAYpy/B,KAAKmoC,OAAO+27B,cAActuX,gBAAkB,EAAI5wmB,KAAK2wkB,SACrE,OAAO3wkB,KAAK6v/B,gBAAgBtj+B,SAAS6l+B,EAAUt7+B,WAAY,IAC/D,EACA64+B,EAAch/+B,UAAUu8+B,qBAAuB,SAAU7B,EAAQnh6B,EAAUhpB,GAEvE,MAAIlhE,KAAKmoC,OAAO+loB,WAAW9qqB,OAAS,IACsC,SAArEpD,KAAKmoC,OAAO+loB,WAAWluqB,KAAKmoC,OAAO+loB,WAAW9qqB,OAAS,GAAGw6S,QACc,SAArE59S,KAAKmoC,OAAO+loB,WAAWluqB,KAAKmoC,OAAO+loB,WAAW9qqB,OAAS,GAAGw6S,UAGlE1zN,EAAYtmF,KAAKiG,MAAMqgF,EAAWlqF,KAAKiuzB,WAAajuzB,KAAKiuzB,UAAajuzB,KAAKiuzB,UAvfvD,IAwffjuzB,KAAKix/B,eAAe/m6B,EAAUmh6B,IAAS,CACxC,IAAImC,EAAiB1s/B,GAAc,MAAO,CAAEC,UAAW,WAAa8ua,MAChE7va,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,GACvDoq/B,EAAex49B,aAAa,mBAAoBksC,EAASpqD,YAEzD9W,KAAKmoC,OAAOkwT,UACZm1pB,EAAern/B,MAAMy9H,MAAQ15C,EAAW,KAGxCsj6B,EAAern/B,MAAMw9H,KAAOz5C,EAAW,KAE3Csj6B,EAAern/B,MAAM+nJ,IAAMluJ,KAAKst/B,UAAUps7B,GAAYlhE,KAAKuyzB,WAlgB1C,GAkgBgF,KACjGvyzB,KAAK8u/B,cAAczD,EAAQmC,EAC/B,CACJ,EAEAmC,EAAch/+B,UAAU8++B,kBAAoB,SAAU149B,EAAOs3iB,GACzDrjP,GAAkBj0T,EAAO,CACrB,OAAW/2B,KAAKuyzB,YAAcvyzB,KAAK4lc,UAAY,EA3gB3C,IA2gB6D5lc,KAAK4lc,UAAY,EAAI5lc,KAAKyq/B,qBAAwB,MAE3H,EACAkF,EAAch/+B,UAAU2/+B,aAAe,WACnC,MAAgC,kBAA5Btw/B,KAAKmoC,OAAOw/W,cAAoC3nZ,KAAKmoC,OAAOuz7B,kBAAkBiC,UAAUhtkB,QACvF3wZ,KAAKmoC,OAAOuz7B,kBAAkBxtT,WAAW9qqB,OAAS,GACkB,SAAjEpD,KAAKmoC,OAAOuz7B,kBAAkBxtT,WAAWt9pB,OAAO,GAAG,GAAGgtS,MAIlE,EACA+xsB,EAAch/+B,UAAUymI,QAAU,WAC9Bp3I,KAAKgzlB,WAAa,KAClBhzlB,KAAK6v/B,gBAAkB,KACvB7v/B,KAAK8v/B,UAAY,KACjB9v/B,KAAK+U,QAAU,KACf+xC,EAAOn2C,UAAUymI,QAAQz3I,KAAKK,MAC9BA,KAAKmoC,OAAS,IAClB,EACOwn9B,CACX,CAzhBmC,CAyhBjCpF,KCviBE8H,IAA4B,WAC5B,SAASA,EAAWlq9B,GAChBnoC,KAAKmoC,OAASA,EACdnoC,KAAKmoC,OAAO5uB,GAAG6hH,IAAoBp7H,KAAKsy/B,WAAYty/B,KACxD,CAyOA,OAxOAqy/B,EAAW1h/B,UAAU2h/B,WAAa,SAAUr5+B,GAIxC,GAHIjZ,KAAKmoC,OAAO637B,YACZhg+B,KAAKmoC,OAAO637B,WAAWyc,iBAET,SAAdxj+B,EAAKrM,KAAiB,CACtB,IAAI2l/B,EAAcvy/B,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KACtD0ilB,GAAeA,EAAYrquB,UAAUh1P,SAAS28Y,MAC9C7va,KAAKmoC,OAAO637B,WAAW4K,UAAUrtsB,OAErCv9R,KAAKol+B,iCACLpl+B,KAAKwy/B,SAASv5+B,EAClB,MAEQjZ,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,OACxC52Z,EAAK9D,QAAQykB,cAAc,IAAMi2Y,MACjC7va,KAAKol+B,iCAETpl+B,KAAKyy/B,UAAUx5+B,EAEvB,EACAo5+B,EAAW1h/B,UAAU6h/B,SAAW,SAAUv5+B,GACtC,IAAIy5+B,EAAU1y/B,KAAK2y/B,oBACfx8X,EAAYl9mB,EAAK9D,QAAQghnB,UACzBvrmB,EAAQ5qB,KAAK4y/B,kBAAkBF,GAC/B9n+B,EAAQ,IACRA,EAAQhnB,KAAKmgB,MAAM6G,GAEnBurmB,KADAvrmB,GAGJ,IAAIsrB,EAAQmm7B,IAAe,IAAI569B,KAAK,GAAKix/B,EAAQ1y/B,KAAKmoC,OAAOw+7B,YAAY5vzB,aAAar1K,UAClF03C,EAAMij7B,IAAe,IAAI569B,KAAK,GAAKix/B,EAAQ1y/B,KAAKmoC,OAAOw+7B,YAAYj6lB,WAAWhrY,UAC9Ew/D,EAAWjoD,EAAKknzB,YAAc,EAC9B/kiB,EAAyC,QAA5Bp7R,KAAKmoC,OAAOw/W,aAAqD,SAA5B3nZ,KAAKmoC,OAAOw/W,aAAsD,aAA5B3nZ,KAAKmoC,OAAOw/W,YACxG,GAAI3nZ,KAAKmoC,OAAOuz7B,kBAAkBiC,UAAUhtkB,QAAUv1H,EAAY,CAC9D,IAAIqzsB,EAAWikB,EAAQ1y/B,KAAKmoC,OAAOw+7B,YAAY5vzB,WAAWpzK,SAC1D3D,KAAK6y/B,yBAAyBH,EAASjkB,EAAUvt6B,EAAUi1jB,EAC/D,KACqC,UAA5Bn2nB,KAAKmoC,OAAOw/W,cAA6B3nZ,KAAKmoC,OAAOuz7B,kBAAkBiC,UAAUhtkB,QAAUv1H,EAChGp7R,KAAK8y/B,sBAAsBJ,EAASxx7B,EAAUhrB,EAAOkD,GAGrDp5C,KAAK+y/B,yBAAyBL,EAASx88B,EAAOkD,EAAK8nB,GAEvD,IAAI8x7B,EAAgBhz/B,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KACxDmjlB,GACAA,EAAc5o/B,OAEtB,EACAio/B,EAAW1h/B,UAAU8h/B,UAAY,SAAUx5+B,GACvC,IACIq+b,EADA07iB,EAAgB/5+B,EAAK9D,QAAQykB,cAAc,IAAMi2Y,KAErD,GAAImjlB,EACA17iB,EAAU07iB,EAAcpx/B,UAEvB,CACD,IAAIqx/B,EAASh6+B,EAAK9D,QAAQykB,cAAc,IAAMi2Y,KAS9C,GARK9jG,GAAkBknrB,GAKnB37iB,EAAUr+b,EAAKixB,KAAKlqC,KAAKmoC,OAAOw+7B,YAAYrvhB,UAJ5C9uL,GAAS,CAACyquB,GAASpjlB,KACnBynC,EAAU27iB,EAAO/m8B,WAKrB8m8B,EAAgBly/B,GAAc,QAAS,CAAEC,UAAW8ua,IAA0BpmF,MAAO,CAAE7nV,MAAO01c,KAC1F7hX,GAAQx8E,EAAK9D,QAAS,IAAM06Z,KAC5B52Z,EAAK9D,QAAQwf,aAAaq+9B,EAAeC,QAExC,GAAI,CAAC,SAAU,eAAeto/B,QAAQ3K,KAAKmoC,OAAOw/W,cAAgB,EAAG,CACtE,IAAIurmB,EAAcj6+B,EAAK9D,QAAQykB,cAAc,IAAMi2Y,KAC/C9jG,GAAkBmnrB,KAClBA,EAAcpy/B,GAAc,MAAO,CAAEC,UAAW8ua,MAChD52Z,EAAK9D,QAAQ+9G,QAAQgg4B,IAEzBA,EAAYv+9B,aAAaq+9B,EAAeE,EAAYx+9B,WACxD,MAEIzb,EAAK9D,QAAQykB,cAAc,0BAA0Bs5F,QAAQ8/3B,GAEjEA,EAAc5o/B,OAClB,CACA4o/B,EAAc/2sB,kBAAkBq7J,EAAQl0c,OAAQk0c,EAAQl0c,OAC5D,EACAiv/B,EAAW1h/B,UAAUki/B,yBAA2B,SAAUH,EAASjkB,EAAUvt6B,EAAUiy7B,GACnF,IAAI798B,EACA1qB,EAAQ5qB,KAAK4y/B,kBAAkBF,GAC/BU,EAAgB,IAAIrQ,IAAc/i/B,KAAKmoC,QAC3Cir9B,EAAcjP,mBACd,IAAI139B,EAAQ2m+B,EAAc3Z,WAAWlt9B,SAAS20C,EAASpqD,WAAY,KAAK7Q,KAAI,SAAU/F,GAAQ,OAAOA,EAAKyD,QAAU,IAAGgH,QAAQ8j+B,GAC/H,GAAI7j9B,GAAS,EAAG,CACZwo+B,EAAcpP,cAAgB,GAAGpz+B,MAAMjR,KAAKK,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiB,IAAMq/Z,OACtFv6X,EAAK898B,EAAc5d,OAAOpp+B,KAAK+M,MAAMm8B,EAAIt1C,KAAKmoC,OAAOyz7B,WAAW2D,YAAYt59B,KAAI,SAAU/F,GAAQ,OAAQA,CAAM,KACjH,IAAImz/B,EAAiB,GAAGzi/B,MAAMjR,KAAKK,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiB,IAAMq/Z,MAC1EyzkB,EAAc,EACd+P,EAAejw/B,OAAS,IACxBkg/B,EAAc1/+B,KAAKiG,MAAM7J,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KAAsBp7I,wBAAwB7rI,OAC3Gyq2B,EAAe,GAAGt+tB,cAAgB,GAE1Cq+tB,EAAc9P,YAAcA,EAC5B,IAAIiB,EAAYloB,IAA+Br89B,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KAAuCA,KAC1Hk4kB,EAAUqL,EAAcpP,cAAc5g/B,OAAS,EAAIgw/B,EAAcpP,cAAc,GAAGphsB,UAAY,EAClGwwsB,EAAcvN,mBAAmB6M,EAASjm+B,EAAOy0C,EAAUiy7B,EAAWnz/B,KAAKmoC,OAAOo67B,YAAawlB,EAASxD,EAC5G,MAEI6O,EAAcpN,mBAAmB0M,EAASjm+B,EAAOy0C,EAAUiy7B,EAAWnz/B,KAAKmoC,OAAOo67B,YAE1F,EACA8vB,EAAW1h/B,UAAUmi/B,sBAAwB,SAAUJ,EAASjm+B,EAAOypB,EAAOkD,GAC1E,IAAIxuB,EAAQ5qB,KAAK4y/B,kBAAkBF,GAC/BY,EAAatz/B,KAAKmoC,OAAOu87B,UAAU6V,iBAAiBmY,EAASx88B,EAAOkD,EAAKxuB,GAAO,GAAO,GACvF2o+B,EAAa,IAAIhJ,IAAWvq/B,KAAKmoC,QACrCor9B,EAAW9Z,WAAaz5+B,KAAKmoC,OAAOyz7B,WAAW2D,YAC/Cg0B,EAAW9E,YAAczu/B,KAAKmoC,OAAOo67B,YACrC,IAAIhD,EAAcv/9B,KAAKmoC,OAAOyz7B,WAAW2D,YACrCsoB,EAAW7n/B,KAAKmoC,OAAOuz7B,kBAAkBmsB,SACzC2L,EAAoB,IAAM3jlB,IAC9B,GAAI7va,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,EAAG,CAC1Dow/B,GAAqB,sBAAwB/m+B,EAAQ,KACrD,IAAI8q9B,EAAev3+B,KAAKmoC,OAAOyh8B,aAAaC,kBAAkBt98B,SAASE,EAAM3V,WAAY,KACzFyo9B,EAAcgY,EAAahY,YAC3BsoB,EAAWtQ,EAAasQ,QAC5B,CACA0L,EAAW9Z,WAAala,EACxBg0B,EAAWxH,UAAY,GAAGn7+B,MAAMjR,KAAKK,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiBgj/B,IAC1ED,EAAWtlM,UAAYslM,EAAWxH,UAAU,GAAG57uB,YAC/CojvB,EAAWhhM,WAAaghM,EAAWxH,UAAU,GAAGh3tB,aAChDw+tB,EAAWvL,YACP3rB,IAA+Br89B,KAAKmoC,OAAOsr9B,YAAYt++B,SAAWo++B,EAAWp++B,QAAS06Z,KAC1F0jlB,EAAWpH,aAAatE,GAGxB,IAFA,IAAInG,EAAgB6R,EAAWpZ,iBAAiB5a,GAEvCjw9B,EAAK,EAAG88+B,EADGmH,EAAW/Z,WAAW8Z,EAAY5R,GAAiBniB,GACrBjw9B,EAAK88+B,EAAgBhp/B,OAAQkM,IAAM,CACjF,IAAI45U,EAAYkjqB,EAAgB98+B,GAChCik/B,EAAWlP,aAAan7pB,EAAWz8T,EACvC,CACoBzsB,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KAC9Czla,OAClB,EACAio/B,EAAW1h/B,UAAUoi/B,yBAA2B,SAAUL,EAASx88B,EAAOkD,EAAK8nB,GAC3E,IAAIt2C,EAAQ5qB,KAAK4y/B,kBAAkBF,GAC/BY,EAAatz/B,KAAKmoC,OAAOu87B,UAAU6V,iBAAiBmY,EAASx88B,EAAOkD,EAAKxuB,GAAO,GAAO,GACvF8o+B,EAAe,IAAI/D,IAAc3v/B,KAAKmoC,OAAQnoC,KAAKmoC,OAAOuz7B,kBAAkBiC,UAAUhtkB,OAAS,OAAS,OAC5G+imB,EAAaja,WAAaz5+B,KAAKmoC,OAAOyz7B,WAAW2D,YACjDm0B,EAAa7D,gBAAkB,GAAGj/+B,MAAMjR,KAAKK,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiB,IAAMq/Z,MACxF,IAAIs4jB,EAAWno+B,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KACvD6jlB,EAAajF,YAAczu/B,KAAKmoC,OAAOo67B,YACvCmxB,EAAazlM,UAAYk6K,EAASh4tB,YAClCujvB,EAAanhM,WAAa41K,EAASpzsB,aACnC,IAAI+6tB,EAAyG,IAA7F9v/B,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiB,IAAMq/Z,IAA0B,aAAazsa,OAC9F,EAAIpD,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiB,IAAMq/Z,IAA0B,aAAa,GAAG/pa,SAAS1C,OACtGsw/B,EAAa3D,YAAcD,EAAY4D,EAAaja,WAAWr2+B,OAC/Dsw/B,EAAa1L,YAAc3rB,IAA+Bq3B,EAAav++B,QAAS06Z,KAChF6jlB,EAAarP,aAAaiP,EAAYpy7B,EAC1C,EACAmx7B,EAAW1h/B,UAAUii/B,kBAAoB,SAAUF,GAC/C,IAAI9imB,EAAY8imB,EAAQ1y/B,KAAKmoC,OAAOw+7B,YAAY5vzB,WAC5C84O,EAAU6imB,EAAQ1y/B,KAAKmoC,OAAOw+7B,YAAYj6lB,SAE9C,OADgB9oY,KAAK8Y,IAAImzY,EAAQnuZ,UAAYkuZ,EAAUluZ,WAAa269B,GAExE,EACAg2B,EAAW1h/B,UAAUgi/B,kBAAoB,SAAUtq/B,GAC/C,IAAIs9kB,EAAgB3llB,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KACxDynC,EAAUquI,EAAgBA,EAAc/jlB,MAAQyG,EAASA,EAAO6gC,UAAY,GAC5Ewp9B,EAAU,CAAC,EAUf,OATAA,EAAQ1y/B,KAAKmoC,OAAOw+7B,YAAYxw8B,IAAMn2B,KAAKmoC,OAAOu87B,UAAUmY,gBAC5D6V,EAAQ1y/B,KAAKmoC,OAAOw+7B,YAAYrvhB,SAAWA,EAC3Co7iB,EAAQ1y/B,KAAKmoC,OAAOw+7B,YAAY5vzB,WAAa/2K,KAAKmoC,OAAOu17B,gBAAgB3mzB,UACzE270B,EAAQ1y/B,KAAKmoC,OAAOw+7B,YAAYj6lB,SAAW1sY,KAAKmoC,OAAOu17B,gBAAgBhxlB,QACvEgmnB,EAAQ1y/B,KAAKmoC,OAAOw+7B,YAAY5I,UAAY/99B,KAAKmoC,OAAOu17B,gBAAgBK,SACxE/99B,KAAKmoC,OAAO617B,YAAY21B,wBAAwBjB,GAC5C1y/B,KAAKmoC,OAAOyh8B,cACZ5p+B,KAAKmoC,OAAOyh8B,aAAagqB,kBAAkBlB,EAAS1y/B,KAAKmoC,OAAOu17B,gBAAgBv9J,YAE7EuyL,CACX,EACAL,EAAW1h/B,UAAU688B,cAAgB,WACjC,IAAInl9B,EAASrI,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KACjDxna,GAA2B,KAAjBA,EAAOzG,MACjB5B,KAAK+j+B,kBAAkB179B,GAGvBrI,KAAKol+B,gCAEb,EACAitB,EAAW1h/B,UAAUoz9B,kBAAoB,SAAU179B,GAC/C,GAAIotF,GAAQptF,EAAQ,IAAMwna,KAA+B,CACrD,IAAI6ilB,EAAU1y/B,KAAK2y/B,kBAAkBtq/B,GACrCrI,KAAKmoC,OAAO0r9B,SAASnB,EACzB,KACK,CACD,IAAIrkuB,EAAc54L,GAAQptF,EAAQ,IAAMwna,KACpCiklB,EAAe9z/B,KAAKmoC,OAAO4r9B,gBAAgB1luB,GAC/CyluB,EAAa9z/B,KAAKmoC,OAAOw+7B,YAAYrvhB,SAAWjvc,EAAOzG,MACvD,IAAIy8jB,OAAgB,EAChBy1b,EAAa9z/B,KAAKmoC,OAAOw+7B,YAAYxw8B,MAAQ299B,EAAa9z/B,KAAKmoC,OAAOw+7B,YAAYmP,gBAClFz3a,EAAgB,iBAChBy1b,EAAa9z/B,KAAKmoC,OAAOw+7B,YAAYxw8B,IAAMn2B,KAAKmoC,OAAOu87B,UAAUmY,iBAErE78+B,KAAKmoC,OAAO26tB,UAAUgxP,EAAcz1b,EACxC,CACAr+jB,KAAKol+B,gCACT,EACAitB,EAAW1h/B,UAAUi4+B,+BAAiC,SAAUoL,GAC5D,IAAIC,EAA2Bnz/B,GAAc,MAAO,CAChDC,UAAW8ua,IAAwB,IAAMA,MAEzCqklB,EAAgBpz/B,GAAc,MAAO,CAAEC,UAAW8ua,MACtDoklB,EAAyBvi+B,YAAYwi+B,GACrC,IAAIr43B,EAAS/6H,GAAc,QAAS,CAAEC,UAAW8ua,MAKjD,OAJAqklB,EAAcxi+B,YAAYmqG,GACtBm43B,GACAh0/B,KAAKmoC,OAAOu87B,UAAU+a,mBAAmBwU,EAA0BD,EAAY,mBAE5EC,CACX,EACA5B,EAAW1h/B,UAAUy09B,+BAAiC,WAClD,IAAI+uB,EAAoB,GAAGvj/B,MAAMjR,KAAKK,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiB,IAAMq/Z,MAC7EsklB,EAAkB/w/B,OAAS,GAC3B+w/B,EAAkB9t/B,SAAQ,SAAU6J,GAAQ,OAAOijB,GAAOjjB,EAAO,IAErE,IAAI8i/B,EAAgBhz/B,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KAC5D,GAAImjlB,EAAe,CACf,IACI17iB,EADqB7hX,GAAQu95B,EAAe,IAAMnjlB,KACrBj2Y,cAAc,IAAMi2Y,KAChD9jG,GAAkBurI,IACnBrvL,GAAY,CAACqvL,GAAUznC,KAE3B18Y,GAAO6/9B,EACX,CACJ,EACAX,EAAW1h/B,UAAUymI,QAAU,WAC3Bp3I,KAAKmoC,OAAO3uB,IAAI4hH,IAAoBp7H,KAAKsy/B,WAC7C,EACOD,CACX,CA9OgC,GCJ5B+B,IAAgC,WAChC,SAASA,IACT,CA8FA,OA7FAA,EAAezj/B,UAAU0j/B,oBAAsB,SAAU5q1B,EAAMw+sB,EAAO9y2B,EAASpV,GAC3E,IAAIT,EAAQU,KACZA,KAAKmV,QAAUA,EACfnV,KAAK03oB,QAAU,IAAI6vO,IAAc99sB,EAAM,CACnC1pK,OAAQA,EACRmr3B,gBAAiB,SAAU7zkB,EAAcpgS,GACrC3X,EAAMg1/B,eAAej9sB,EAAcpgS,EACvC,EACAgx2B,MAAOA,EACPssI,mBAAoB,SAAUt7+B,GAC1B3Z,EAAMi1/B,mBAAmBt7+B,EAC7B,EACAmxqB,SAAU,SAAUnxqB,GAChB3Z,EAAM43Z,SAASj+Y,EACnB,GAER,EACAm7+B,EAAezj/B,UAAUumZ,SAAW,SAAUj+Y,GAC1C,IAAI5Q,EAAS4Q,EAAKugB,cACdnxB,IAAWA,EAAO6/Q,UAAUh1P,SAAS,wBAA0B7qB,EAAO6/Q,UAAUh1P,SAAS,YACtF7qB,EAAO6/Q,UAAUh1P,SAAS28Y,MAA2Bxna,EAAO6/Q,UAAUh1P,SAAS28Y,MAC/Exna,EAAO6/Q,UAAUh1P,SAAS28Y,MAAwCxna,EAAO6/Q,UAAUh1P,SAAS28Y,MAC5Fxna,EAAO6/Q,UAAUh1P,SAAS28Y,MAC7B7va,KAAKw0/B,aAAc,EAGnBx0/B,KAAKw0/B,aAAc,CAE3B,EACAJ,EAAezj/B,UAAU4j/B,mBAAqB,SAAUt7+B,GACpD,IAAIwkB,EAAOz9B,KAAKmV,QAAQykB,cAAc,IAAM3gB,EAAKw8c,UAAY,UACzDh4b,IACAA,EAAKt3B,MAAMi+J,QAA2B,YAAhBnrJ,EAAKw9H,OAAwB,GAAK,OAEhE,EACA292B,EAAezj/B,UAAU2j/B,eAAiB,SAAUj9sB,EAAcpgS,GAC9D,IAAIkf,EAAKlf,EAAMqb,aAAa,OACxBmL,EAAOz9B,KAAKmV,QAAQykB,cAAc,IAAMzD,EAAK,UAC5CsH,GAASz9B,KAAKw0/B,aACfx0/B,KAAKyvqB,cAAcp4X,EAAcpgS,EAAOkf,EAAI,IAE3C41S,GAAkBtuS,KACnBA,EAAK7D,cAAc,YAAYsP,UAAYjyB,EAAMiyB,UAEzD,EACAkr9B,EAAezj/B,UAAU8+pB,cAAgB,SAAUt6pB,EAAS8B,EAAOvS,EAAM0/J,GACrE,IAAIqw1B,EACAz1S,EACA01S,EAAcv/+B,EAAQs/Q,wBACtBz0R,KAAKmV,QAAQ+yQ,UAAUh1P,SAAS28Y,MAChC4klB,EAAaz0/B,KAAKmV,QAClB6psB,EAASh/sB,KAAKmV,QAAQs/Q,yBAItBuqb,GADAy1S,EAAaz0/B,KAAKmV,QAAQykB,cAAc,sCACpB66P,wBAExB,IAAI64C,EAAMxsU,GAAc,MAAO,CAC3BC,UAAW,0BAA4B8ua,IACvC15Y,GAAIzxB,EAAO,SACXwvR,OAAQ,WAAa9vH,EAAU,SAC1Bsw1B,EAAY//tB,OAASqqb,EAAO9wjB,IAAMum2B,EAAWtm2B,UAAY,GAAK,YAC9Dum2B,EAAY/w3B,KAAOq7kB,EAAOr7kB,KAAO8w3B,EAAWxm2B,WAAaym2B,EAAYl2+B,MAAQ,GAAK,QAEvFzJ,EAAUjU,GAAc,MAAO,CAAEC,UAAW,kBAChDgU,EAAQ2c,YAAYza,GACpB,IAAIklR,EAAQr7R,GAAc,MAAO,CAAEC,UAAW,0BAC9Co7R,EAAMzqQ,YAAY5wB,GAAc,MAAO,CAAEC,UAAW,iCACpDo7R,EAAMzqQ,YAAY5wB,GAAc,MAAO,CAAEC,UAAW,iCACpDusU,EAAI57S,YAAY3c,GAChBu4T,EAAI57S,YAAYyqQ,GAChBs4tB,EAAW/i+B,YAAY47S,GACvBA,EAAInnU,MAAMw9H,KAAQp3G,SAAS+gT,EAAInnU,MAAMw9H,KAAM,IAAM2pM,EAAIn9D,YAAc,EAAK,IAC5E,EACAikvB,EAAezj/B,UAAUgk/B,eAAiB,WACtC,GAAI30/B,KAAKmV,QAEL,IADA,IACS7F,EAAK,EAAGuhV,EADF,GAAGjgV,MAAMjR,KAAKK,KAAKmV,QAAQ3E,iBAAiB,IAAMq/Z,MACzBvga,EAAKuhV,EAAWztV,OAAQkM,IAAM,CAElE6jB,GADW09T,EAAWvhV,GAE1B,CAEAtP,KAAK03oB,SAAW13oB,KAAK03oB,QAAQvioB,SAC7BnV,KAAK03oB,QAAQz+lB,OAErB,EACAm78B,EAAezj/B,UAAUymI,QAAU,WAC3Bp3I,KAAK03oB,SAAW13oB,KAAK03oB,QAAQvioB,UAAYnV,KAAK03oB,QAAQv/W,aACtDn4R,KAAK03oB,QAAQtggB,UAEjBp3I,KAAK03oB,QAAU,KACf13oB,KAAKmV,QAAU,IACnB,EACOi/+B,CACX,CAjGoC,GCOhCQ,IAA6B,WAC7B,SAASA,EAAYzs9B,GACjBnoC,KAAK60/B,uBAAwB,EAC7B70/B,KAAK2ib,cAAe,EACpB3ib,KAAKmoC,OAASA,EACdnoC,KAAK+zZ,KAAO/zZ,KAAKmoC,OAAOkje,UACxBrrgB,KAAK80/B,eAAiB,IAAIV,IAC1Bp0/B,KAAKoa,SACLpa,KAAKs7B,kBACT,CAm2CA,OAl2CAs59B,EAAYjk/B,UAAUyJ,OAAS,WAC3Bpa,KAAK+0/B,mBACL/0/B,KAAKg1/B,kBACLh1/B,KAAKi1/B,mBACT,EACAL,EAAYjk/B,UAAUok/B,iBAAmB,WACrC,IAAIptB,EAAoB7m+B,GAAc,MAAO,CAAEC,UAAW8ua,IAA0B,mBAChF7va,KAAKmoC,OAAOumrB,YACZx9rB,SAASzd,KAAKie,YAAYi28B,GAC1Bn/sB,GAAS,CAACm/sB,GAAoB93jB,MAG9B7va,KAAKmoC,OAAOhzB,QAAQuc,YAAYi28B,GAEpC3n+B,KAAKgg+B,WAAa,IAAItuyB,GAAMi2yB,EAAmB,CAC3C9rlB,WAAa77Y,KAAKmoC,OAAOumrB,WAAa,YAAc,WACpDr2X,UAAWr4V,KAAKmoC,OAAOkwT,UACvBv1N,KAAM9iI,KAAKk1/B,eAAer1/B,KAAKG,MAC/Bw7I,MAAOx7I,KAAKm1/B,gBAAgBt1/B,KAAKG,MACjCy8Y,cAAgBz8Y,KAAKmoC,OAAOumrB,WAAa,CAAEhqtB,KAAM,WAAc,CAAEA,KAAM,UAAWuvG,SAAU,KAC5FuoS,cAAgBx8Y,KAAKmoC,OAAOumrB,WAAa,CAAEhqtB,KAAM,UAAa,CAAEA,KAAM,SAAUuvG,SAAU,KAC1FqnS,UAAYt7Y,KAAKmoC,OAAOumrB,WAAa,CAAEttsB,EAAG,MAAOvC,EAAG,OAC/C7e,KAAKmoC,OAAOkwT,UAAY,CAAEj3U,EAAG,OAAQvC,EAAG,OAAU,CAAEuC,EAAG,OAAQvC,EAAG,OACvEqrE,SAAWlqF,KAAKmoC,OAAOumrB,YAAc1utB,KAAKmoC,OAAOkwT,UAAY,CAAEj3U,EAAG,OAAQvC,EAAG,OAAU,CAAEuC,EAAG,QAASvC,EAAG,OACxGy3X,gBAAkBt2Y,KAAKmoC,OAAOumrB,WAAax9rB,SAASzd,KAAOzT,KAAKmoC,OAAOhzB,QACvEw5H,OAAS3uI,KAAKmoC,OAAOumrB,WAAa,KAAO,GAEjD,EACAkmS,EAAYjk/B,UAAUqk/B,gBAAkB,WACpC,IAAII,EAAiB,eAAkBvllB,IAAlB,kDACEA,IAA6B,YAAgB7va,KAAK+zZ,KAAKhuD,YAAY,SADrE,oCAEE8pE,IAAmC,iBAAqBA,IAF1D,uBAGEA,IAAmC,IAAMA,IAAqB,0CACjF63jB,EAAmB5m+B,GAAc,MAAO,CACxCC,UAAW8ua,IAA+B,iBAC1C3mY,UAAWks9B,IAEXp1/B,KAAKmoC,OAAOumrB,YACZx9rB,SAASzd,KAAKie,YAAYg28B,GAC1Bl/sB,GAAS,CAACk/sB,GAAmB73jB,MAG7B7va,KAAKmoC,OAAOhzB,QAAQuc,YAAYg28B,GAEpC1n+B,KAAK4q+B,UAAY,IAAIl5yB,GAAMg2yB,EAAkB,CACzC7rlB,WAAa77Y,KAAKmoC,OAAOumrB,WAAa,YAAc,WACpDr2X,UAAWr4V,KAAKmoC,OAAOkwT,UACvBokD,cAAe,CAAE/3Y,KAAM,UAAWuvG,SAAU,KAC5CuoS,cAAe,CAAE93Y,KAAM,SAAUuvG,SAAU,KAC3C6uB,KAAM9iI,KAAKq1/B,cAAcx1/B,KAAKG,MAC9Bw7I,MAAOx7I,KAAKs1/B,eAAez1/B,KAAKG,MAChCs7Y,UAAYt7Y,KAAKmoC,OAAOumrB,WAAa,CAAEttsB,EAAG,MAAOvC,EAAG,OAC/C7e,KAAKmoC,OAAOkwT,UAAY,CAAEj3U,EAAG,OAAQvC,EAAG,OAAU,CAAEuC,EAAG,OAAQvC,EAAG,QACvEy3X,gBAAkBt2Y,KAAKmoC,OAAOumrB,WAAax9rB,SAASzd,KAAOzT,KAAKmoC,OAAOhzB,QACvEw5H,OAAS3uI,KAAKmoC,OAAOumrB,WAAa,KAAO,IAE7C,IAAI6mS,EAAcv1/B,KAAK4q+B,UAAUz19B,QAAQykB,cAAc,IAAMi2Y,KAC7D7va,KAAKyvY,aAAa,UAAWogC,IAAW,IAAMA,KAAsB,EAAO0llB,EAAav1/B,KAAKw1/B,YAC7F38wB,GAAazlN,IAAIpzB,KAAK4q+B,UAAUz19B,QAAQykB,cAAc,IAAMi2Y,KAAmC,QAAS7va,KAAKy1/B,gBAAiBz1/B,KAClI,EACA40/B,EAAYjk/B,UAAUsk/B,kBAAoB,WACtC,IAAIx3e,EAAc,CACd,CAAEA,YAAa,CAAE7tK,SAAU,yBAA0BzmN,WAAW,GAAQ65H,MAAOhjR,KAAK01/B,kBAAkB71/B,KAAKG,OAC3G,CAAEy9gB,YAAa,CAAE7tK,SAAU,6BAA8BzmN,WAAW,GAAS65H,MAAOhjR,KAAK01/B,kBAAkB71/B,KAAKG,OAChH,CACIy9gB,YAAa,CAAE7tK,SAAU,yCAA0CzmN,WAAW,GAC9E65H,MAAOhjR,KAAK01/B,kBAAkB71/B,KAAKG,QAG3C,GAAIA,KAAKmoC,OAAOi07B,cAAcu5B,oBAAqB,CAC/C,IAAIC,EAAwB,CACxBn4e,YAAa,CAAE7tK,SAAU,gCAAiCzmN,WAAW,GAAS65H,MAAOhjR,KAAK01/B,kBAAkB71/B,KAAKG,OAErHy9gB,EAAYjof,OAAO,EAAG,EAAGog+B,EAC7B,CACA51/B,KAAK61/B,YAAc,IAAI9luB,IAAO,CAC1Bs9K,kBAAmB,CAAEr5P,OAAQ,QAC7B5tD,QAASq3X,EACT7tK,Sf4MoB,iBe3MpBytK,eAAe,EACfhlL,UAAWr4V,KAAKmoC,OAAOkwT,UACvB00F,oBAAqB/sb,KAAKmoC,OAAO4kZ,oBACjClmT,YAAa7mI,KAAK81/B,uBAAuBj2/B,KAAKG,MAC9Cu8gB,SAAS,EACTryb,SAAU,CAAE9oE,EAAG,SAAUvC,EAAG,UAC5BqhgB,eAAe,EACf73gB,OAAQ6oB,SAASzd,KACjBo8R,SAAS,EACTrxR,MAAO,SAEX,IAAI6jgB,EAAgBvhhB,GAAc,MAAO,CAAEq1B,GAAIn2B,KAAKmoC,OAAOhzB,QAAQghB,GAAK,gBACxEn2B,KAAKmoC,OAAOhzB,QAAQuc,YAAY2wf,GAChCrihB,KAAK61/B,YAAYn9pB,SAAS2pL,GAC1B,IAAIE,EAAWvihB,KAAK61/B,YAAY1g/B,QAAQykB,cAAc,IAAMi2Y,KACxD0yG,IACAA,EAASvtf,aAAa,aAAch1B,KAAK+zZ,KAAKhuD,YAAY,eAC1Dw8K,EAASvtf,aAAa,aAAcutf,EAASr5e,YAEjD,IAAIo7c,EAAetkf,KAAK61/B,YAAY1g/B,QAAQykB,cAAc,IAAMi2Y,KAC5Dy0E,IACAA,EAAatvd,aAAa,aAAch1B,KAAK+zZ,KAAKhuD,YAAY,WAC9Du+I,EAAatvd,aAAa,aAAcsvd,EAAap7c,YAErDlpC,KAAK61/B,YAAY1g/B,QAAQykB,cAAc,yBACvC55B,KAAK61/B,YAAY1g/B,QAAQykB,cAAc,wBAAwB5E,aAAa,QAASh1B,KAAK+zZ,KAAKhuD,YAAY,SAEnH,EAEA6upB,EAAYjk/B,UAAU8+X,aAAe,SAAU1uY,EAAW2gR,EAAUp2G,EAAYn2J,EAAS4g/B,GACrE,IAAIjyuB,GAAO,CACvB8rF,SAAU7uW,EACV6N,SAAU08J,EACV+sL,UAAWr4V,KAAKmoC,OAAOkwT,UACvB00F,oBAAqB/sb,KAAKmoC,OAAO4kZ,oBACjCd,QAASvqK,IAEHg3E,SAASvjV,GACnB0jO,GAAazlN,IAAIje,EAAS,QAAS4g/B,EAAY/1/B,MAC/CioR,GAAY,CAAC9yQ,GAAU06Z,IAC3B,EACA+klB,EAAYjk/B,UAAUql/B,iBAAmB,SAAU9g7B,GAC/C,IAAIgzM,EAAY,CACZ2nJ,IAAmCA,IAA+BA,IAClEA,IAA+BA,IAAkCA,KAEjE0yG,EAAWvihB,KAAK61/B,YAAY1g/B,QAAQykB,cAAc,IAAMi2Y,KACxDy0E,EAAetkf,KAAK61/B,YAAY1g/B,QAAQykB,cAAc,IAAMi2Y,KAC5DomlB,EAAuBj2/B,KAAK61/B,YAAY1g/B,QAAQykB,cAAc,IAAMi2Y,KAOxE,OANA5nJ,GAAY,CAACs6P,EAAUj+B,GAAep8N,GACtCM,GAAS,CAACxoR,KAAK61/B,YAAY1g/B,QAAQykB,cAAc,IAAMi2Y,MAAiCA,KACpF7va,KAAKmoC,OAAOi07B,cAAcu5B,sBAC1BntuB,GAAS,CAACytuB,GAAuBpmlB,KACjC5nJ,GAAY,CAACjoR,KAAK61/B,YAAY1g/B,SAAU06Z,MAEpC36V,GACJ,IAAK,aACDszM,GAAS,CAAC+5P,GAAW1yG,KACrBrnJ,GAAS,CAAC87N,GAAez0E,KACrB7va,KAAKmoC,OAAOi07B,cAAcu5B,sBAC1B1tuB,GAAY,CAACguuB,GAAuBpmlB,KACpCrnJ,GAAS,CAACxoR,KAAK61/B,YAAY1g/B,SAAU06Z,KACrCrnJ,GAAS,CAACytuB,GAAuBpmlB,MAErC,MACJ,IAAK,SACDrnJ,GAAS,CAAC+5P,GAAW1yG,KACrBrnJ,GAAS,CAAC87N,GAAez0E,KACzB,MACJ,IAAK,QACDrnJ,GAAS,CAAC+5P,GAAW,CAAC1yG,IAA2BA,MACjDrnJ,GAAS,CAAC87N,GAAe,CAACz0E,IAA+BA,MAGrE,EACA+klB,EAAYjk/B,UAAUul/B,oBAAsB,WACxC,IAAIzs1B,EAAOzpK,KAAKgg+B,WAAW7q9B,QAAQykB,cAAc,IAAMi2Y,KACnDo4c,EAAQ,CAAC,EACbA,EAAMjo3B,KAAKmoC,OAAOi07B,cAAcjpwB,OAAOmkP,QAAQ5yc,MAAQ1E,KAAKmoC,OAAOi07B,cAAcjpwB,OAAOmkP,QAAQ6+iB,WAChGn2/B,KAAK80/B,eAAeT,oBAAoB5q1B,EAAMw+sB,EAAOjo3B,KAAKgg+B,WAAW7q9B,QAASnV,KAAKmoC,OAAOpoC,OAC9F,EACA60/B,EAAYjk/B,UAAU+r+B,oBAAsB,WACxC,IAAI0Z,EAAiBp2/B,KAAK61/B,YAAY1g/B,QAAQykB,cAAc,IAAMi2Y,KAC9DumlB,IACAA,EAAelt9B,UAAYlpC,KAAK+zZ,KAAKhuD,YAA0C,WAA9B/lW,KAAKmoC,OAAOk2hB,cAA6B,cAAgB,aAC1G+3b,EAAeph+B,aAAa,aAAcoh+B,EAAelt9B,YAE7D,IAAImt9B,EAA0Br2/B,KAAK61/B,YAAY1g/B,QAAQykB,cAAc,IAAMi2Y,KACvEwmlB,IACAA,EAAwBnt9B,UAAYlpC,KAAK+zZ,KAAKhuD,YAAY,sBAC1DswpB,EAAwBrh+B,aAAa,aAAcqh+B,EAAwBnt9B,YAE/E,IAAIot9B,EAAmBt2/B,KAAK61/B,YAAY1g/B,QAAQykB,cAAc,IAAMi2Y,KAChEymlB,IACAA,EAAiBpt9B,UAAYlpC,KAAK+zZ,KAAKhuD,YAA0C,WAA9B/lW,KAAKmoC,OAAOk2hB,cAA6B,eAAiB,cAC7Gi4b,EAAiBth+B,aAAa,aAAcsh+B,EAAiBpt9B,YAEjElpC,KAAK61/B,YAAY9g/B,QAAU/U,KAAK+zZ,KAAKhuD,YAAY,eACjD/lW,KAAK61/B,YAAYnn0B,OAAS1uL,KAAK+zZ,KAAKhuD,YAA0C,WAA9B/lW,KAAKmoC,OAAOk2hB,cAA6B,cAAgB,aACzGr+jB,KAAKg2/B,iBAAiB,cACtBh2/B,KAAKu2/B,gBAAgB,kBACzB,EACA3B,EAAYjk/B,UAAU6l/B,8BAAgC,SAAU5p/B,GAC5D5M,KAAKg2/B,iBAAiB,SACtB,IAAIzze,EAAWvihB,KAAK61/B,YAAY1g/B,QAAQykB,cAAc,IAAMi2Y,KAC5D0yG,EAASr5e,UAAYlpC,KAAK+zZ,KAAKhuD,YAAY,MAC3Cw8K,EAASvtf,aAAa,aAAcutf,EAASr5e,WAC7C,IAIIut9B,EAJAnygB,EAAetkf,KAAK61/B,YAAY1g/B,QAAQykB,cAAc,IAAMi2Y,KAKhE,OAJAy0E,EAAap7c,UAAYlpC,KAAK+zZ,KAAKhuD,YAAY,UAC/Cu+I,EAAatvd,aAAa,aAAcsvd,EAAap7c,WACrDlpC,KAAK61/B,YAAYnn0B,OAAS1uL,KAAK+zZ,KAAKhuD,YAAY,SAExCn5V,GACJ,IAAK,eACD47Q,GAAS,CAAC87N,GAAez0E,KACzB7va,KAAK61/B,YAAY9g/B,QAAU/U,KAAK+zZ,KAAKhuD,YAAY,gBACjD,MACJ,IAAK,cACDv9E,GAAS,CAAC87N,GAAez0E,KACzB7va,KAAK61/B,YAAY9g/B,QAAU/U,KAAK+zZ,KAAKhuD,YAAY,eACjD,MACJ,IAAK,eACDv9E,GAAS,CAAC87N,GAAez0E,KACzB7va,KAAK61/B,YAAY9g/B,QAAU/U,KAAK+zZ,KAAKhuD,YAAY,gBACjD,MACJ,IAAK,oBAED99E,GAAY,CAACq8N,EADbmygB,EAAez2/B,KAAK61/B,YAAY1g/B,QAAQykB,cAAc,IAAMi2Y,MAClBA,KAC1C7va,KAAK61/B,YAAY9g/B,QAAU/U,KAAK+zZ,KAAKhuD,YAAY,qBACjDw8K,EAASr5e,UAAYlpC,KAAK+zZ,KAAKhuD,YAAY,OAC3Cu+I,EAAap7c,UAAYlpC,KAAK+zZ,KAAKhuD,YAAY,MAC/C0wpB,EAAavt9B,UAAYlpC,KAAK+zZ,KAAKhuD,YAAY,UAC/C,MACJ,IAAK,kBACDv9E,GAAS,CAAC87N,GAAez0E,KACzB7va,KAAK61/B,YAAY9g/B,QAAU/U,KAAK+zZ,KAAKhuD,YAAY,oBAGnD/lW,KAAKmoC,OAAOuu9B,4BAAuC,iBAAT9p/B,GAA4B5M,KAAKmoC,OAAOuu9B,6BACpF12/B,KAAKu2/B,gBAAgB,4BAE7B,EACA3B,EAAYjk/B,UAAUgm/B,gBAAkB,WACpC,IAAI32/B,KAAKmoC,OAAOuz7B,kBAAkBn9kB,SAAlC,CAGA,IAAIgkI,EAAWvihB,KAAK61/B,YAAY1g/B,QAAQykB,cAAc,IAAMi2Y,KACxD0yG,IACAA,EAASr5e,UAAYlpC,KAAK+zZ,KAAKhuD,YAAY,UAC3Cw8K,EAASvtf,aAAa,aAAcutf,EAASr5e,YAEjD,IAAIo7c,EAAetkf,KAAK61/B,YAAY1g/B,QAAQykB,cAAc,IAAMi2Y,KAC5Dy0E,IACAA,EAAap7c,UAAYlpC,KAAK+zZ,KAAKhuD,YAAY,UAC/Cu+I,EAAatvd,aAAa,aAAcsvd,EAAap7c,YAEzDlpC,KAAK61/B,YAAY9g/B,QAAW/U,KAAKmoC,OAAOoi8B,gBAAgBxz8B,MAAM3zB,OAAS,EACnEpD,KAAK+zZ,KAAKhuD,YAAY,yBAA2B/lW,KAAK+zZ,KAAKhuD,YAAY,iBAC3E/lW,KAAK61/B,YAAYnn0B,OAAU1uL,KAAKmoC,OAAOoi8B,gBAAgBxz8B,MAAM3zB,OAAS,EAClEpD,KAAK+zZ,KAAKhuD,YAAY,uBAAyB/lW,KAAK+zZ,KAAKhuD,YAAY,eACzE/lW,KAAKg2/B,iBAAiB,UACtBh2/B,KAAKu2/B,gBAAgB,cAhBrB,CAiBJ,EACA3B,EAAYjk/B,UAAUim/B,oBAAsB,SAAUhq/B,EAAMs8U,GACxDlpV,KAAK61/B,YAAYnn0B,OAAS1uL,KAAK+zZ,KAAKhuD,YAAY,SAChD/lW,KAAK61/B,YAAY9g/B,QAAU/U,KAAK+zZ,KAAKhuD,YAAYn5V,GACjD,IAAI21gB,EAAWvihB,KAAK61/B,YAAY1g/B,QAAQykB,cAAc,IAAMi2Y,KACxD0yG,IACAA,EAASr5e,UAAYlpC,KAAK+zZ,KAAKhuD,YAAY,MAC3Cw8K,EAASvtf,aAAa,aAAcutf,EAASr5e,YAEjD,IAAIo7c,EAAetkf,KAAK61/B,YAAY1g/B,QAAQykB,cAAc,IAAMi2Y,KAC5Dy0E,IACAA,EAAap7c,UAAYlpC,KAAK+zZ,KAAKhuD,YAAY,UAC/Cw8K,EAASvtf,aAAa,aAAcsvd,EAAap7c,YAErDlpC,KAAKg2/B,iBAAiB,SACtBh2/B,KAAKu2/B,gBAAgB,kBAAmBrtqB,EAC5C,EACA0rqB,EAAYjk/B,UAAU4l/B,gBAAkB,SAAU9la,EAAWvnQ,GACzD,IAAI5pV,EAAQU,KACZA,KAAK61/B,YAAYzpqB,WACjB,IAAI/C,EAAY,CACZz8U,KAAM6jlB,EAAW3vgB,QAAQ,EAAO3rE,QAASnV,KAAK61/B,YAAY1g/B,QAC1D+0B,KAAMu/C,GAAO,CAAC,EAAIy/P,GAAalpV,KAAKmoC,OAAOoi8B,gBAAgBxz8B,MAAQ,MAAM,IAE7E/2B,KAAKmoC,OAAOm4P,QAAQvpQ,IAAiBsyT,GAAW,SAAUwtqB,GACjDA,EAAU/16B,QACXxhF,EAAMu2/B,YAAYxvsB,MAE1B,GACJ,EACAuusB,EAAYjk/B,UAAUmm/B,oBAAsB,SAAUlgB,EAAiBwB,EAAYj4K,GAC/E,IAAI7g0B,EAAQU,KACRmzN,EAASnzN,KAAKmoC,OAAOw+7B,YACrBowB,EAAsBj2/B,GAAc,MAAO,CAAEC,UAAW8ua,MACxDmnlB,EAAsBl2/B,GAAc,MAAO,CAAEC,UAAW8ua,MAC5D,GAA+B,IAA3B+mkB,EAAgBxz+B,OAChB4z/B,EAAsBl2/B,GAAc,MAAO,CACvCC,UAAW8ua,IACX3mY,UAAWlpC,KAAK+zZ,KAAKhuD,YAAY,yBAgDrC,IA5CA,IAAIt5B,EAAU,SAAUyc,GACpB,IAAI+tqB,EAAa/tqB,EAAU/1H,EAAOmkP,UAAYn8G,EAAOhzT,OAAOi07B,cAAcjpwB,OAAOmkP,QAAQz2c,SAClFs6V,EAAOhzT,OAAOkje,UAAUtlK,YAAY,YACvC0+oB,EAAqB3j/B,GAAc,MAAO,CAC1CC,UAAW8ua,IACXpmF,MAAO,CACH,UAAW,GAAKP,EAAU/1H,EAAOh9L,IACjC,YAAa+yT,EAAU67c,KAAM,KAAQ,SAAU,SAAY,IAC3D,gBAAiB5pc,EAAOhzT,OAAOu87B,UAAU2b,qBAAqBn3pB,GAC9D,aAAciS,EAAOhzT,OAAOy+8B,sBAAsB19pB,MAI1D,GAAKnd,GAAkBovB,EAAOhzT,OAAOuz7B,kBAAkBskB,eAMnDyE,EAAmB/y9B,YAAY5wB,GAAc,MAAO,CAAEC,UAAW8ua,OACjE10E,EAAOhzT,OAAOyD,SAASqr9B,EAAWxS,EAAmBn68B,uBAPc,CACnE,IAAIsjU,EAASzS,EAAOhzT,OAAOhzB,QAAQghB,GAAK,IAAMglU,EAAOhzT,OAAOuz7B,kBAAkBwkB,kBAAoB,gBAElGlt3B,GADkBmoO,EAAOhzT,OAAOg48B,wBAAdhlpB,CAAuCjS,EAAWiS,EAAOhzT,OAAQ,gBAAiBylU,GAAQ,GACpF62oB,EAC5B,CAQA,GAHK14qB,GAAkBo0f,IACnBskL,EAAmBzv9B,aAAa,mBAAoBmryB,IAEnDp0f,GAAkBmd,EAAU/1H,EAAOk4wB,iBAAkB,CACtD,IAAI7qlB,EAAat3D,EAAU/1H,EAAOh9L,MAAQ+yT,EAAU/1H,EAAO2ixB,cACvDjmkB,IAAkCA,IACtC40kB,EAAmB/y9B,YAAY5wB,GAAc,MAAO,CAAEC,UAAW8ua,IAAW,IAAMrvB,IACtF,CACA,IAAIvnY,EAAO,CACPixB,KAAMu/C,GAAO,CAAC,EAAGy/P,EAAW,MAAM,GAClC/zU,QAASsv+B,EAAoB3j6B,QAAQ,GAEzCq6Q,EAAOhzT,OAAOm4P,QAAQvpQ,IAAqB9d,GAAM,SAAU2rU,GACvD,IAAKA,EAAU9jQ,OAAQ,CACnBk26B,EAAoBtl+B,YAAY+y9B,GAChC,IAAI1I,EAAgBz8+B,EAAM6oC,OAAOumrB,YAA2C,SAA7BpvtB,EAAM6oC,OAAOw/W,YAC5DroZ,EAAM6oC,OAAOu87B,UAAUoX,sBAAsB2I,EAAoBv7pB,EAAW6ypB,GAC5Ez8+B,EAAM6oC,OAAOu87B,UAAU+a,mBAAmBgF,EAAoBv7pB,EAAW,kBAAmBkvpB,EAChG,CACJ,GACJ,EACIj9oB,EAASn7V,KACJsP,EAAK,EAAGwn+B,EAAoBF,EAAiBtn+B,EAAKwn+B,EAAkB1z+B,OAAQkM,IAAM,CAEvFm9T,EADgBqqqB,EAAkBxn+B,GAEtC,CAGJ,OADAyn/B,EAAoBrl+B,YAAYsl+B,GACzBD,CACX,EACAnC,EAAYjk/B,UAAUsv9B,kBAAoB,SAAU5/9B,GAChD,IAAIgI,EAASotF,GAAQp1F,EAAEgI,OAAQ,IAAMwna,KACrC7va,KAAK60/B,uBAAwB,EAC7B70/B,KAAKmoC,OAAOo/7B,iBAAmB,GAC/Bvn+B,KAAK60/B,uBAAwB,EAC7B70/B,KAAKmoC,OAAOu87B,UAAUkW,yBAAyBvy+B,GAC/CrI,KAAKmoC,OAAOoi8B,gBAAkBvq+B,KAAKmoC,OAAOu87B,UAAU4F,oBACpD,IAAIzoxB,EAAOx5M,EAAOiqB,aAAa,aAC3Bmk9B,EAAWz2+B,KAAKmoC,OAAOu87B,UAAUuC,eAAeplxB,GACpD,IAAIkqH,GAAkB0qqB,GAAtB,CAGA,IAAIygB,EAAczgB,EAASz2+B,KAAKmoC,OAAOw+7B,YAAYrvhB,UAAYt3c,KAAK+zZ,KAAKhuD,YAAY,WACjFi6oB,EAAgB,mDAAwEnwkB,IAAxE,oBACMA,IAAkB,YAAgB7va,KAAK+zZ,KAAKhuD,YAAY,SAD9D,0BAEG8pE,IAAoB,KAAQqnlB,EAF/B,wBAGMrnlB,IAAiB,YAAgB7va,KAAK+zZ,KAAKhuD,YAAY,QAH7D,6BAIM8pE,IAAmB,YAAgB7va,KAAK+zZ,KAAKhuD,YAAY,UAAY,0BAC/F/lW,KAAKgg+B,WAAW7q9B,QAAQ+zB,UAAY828B,EACpC,IAAI7/d,EAAYnghB,KAAKgg+B,WAAW7q9B,QAAQykB,cAAc,IAAMi2Y,KAC5D7va,KAAKyvY,aAAa,yBAA0BogC,IAAW,IAAMA,KAAsB,EAAOswG,EAAWnghB,KAAKw1/B,YAC1G,IAAIj3mB,EAAWv+Y,KAAKmoC,OAAOuz7B,kBAAkBn9kB,UAAYk4lB,EAASz2+B,KAAKmoC,OAAOw+7B,YAAY1nlB,YACtFk4mB,GAAcn3/B,KAAKmoC,OAAOi07B,cAAchwV,cAAgB7tP,EACxD64mB,GAAgBp3/B,KAAKmoC,OAAOi07B,cAAcvmU,eAAiBt3Q,EAC3Dmlb,EAAW1j0B,KAAKgg+B,WAAW7q9B,QAAQykB,cAAc,IAAMi2Y,KACvD6zZ,GACA1j0B,KAAKyvY,aAAa,yBAA0BogC,IAAW,IAAMA,IAAqBsnlB,EAAYzzL,EAAU1j0B,KAAKq3/B,WAEjH,IAAIz1gB,EAAa5hf,KAAKgg+B,WAAW7q9B,QAAQykB,cAAc,IAAMi2Y,KACzD+xE,GACA5hf,KAAKyvY,aAAa,yBAA0BogC,IAAW,IAAMA,IAAuBunlB,EAAcx1gB,EAAY5hf,KAAKwq+B,aAEvHxq+B,KAAKs3/B,qBAAqBjv/B,EAAQrI,KAAKmoC,OAAOu87B,UAAU8d,mBAAmBni/B,GArB3E,CAsBJ,EACAu0/B,EAAYjk/B,UAAU4m/B,cAAgB,SAAUt++B,GAC5C,IAAIiua,EAAU,CAAC,EAIf,GAHAA,EAAQlnb,KAAKmoC,OAAOw+7B,YAAY5vzB,WAAa/2K,KAAKmoC,OAAOu17B,gBAAgB3mzB,UACzEmwQ,EAAQlnb,KAAKmoC,OAAOw+7B,YAAYj6lB,SAAW1sY,KAAKmoC,OAAOu17B,gBAAgBhxlB,QACvEw6C,EAAQlnb,KAAKmoC,OAAOw+7B,YAAY5I,UAAY/99B,KAAKmoC,OAAOu17B,gBAAgBK,SACpE/99B,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,EAAG,CAC1D,IAAI4h+B,EAAa/r9B,EAAK9D,mBAAmBzE,MAAQuI,EAAK9D,QAAQ,GAAK8D,EAAK9D,QACpEgrzB,EAAa5zyB,SAASy48B,EAAW1y8B,aAAa,oBAAqB,IACvEtyB,KAAKmoC,OAAOyh8B,aAAagqB,kBAAkB1skB,EAASrlb,MAAMs+zB,GAAc,KAAOA,EACnF,CACA,OAAOng0B,KAAKmoC,OAAOu87B,UAAU4b,aAAap5jB,EAC9C,EACA0tkB,EAAYjk/B,UAAUm88B,UAAY,SAAU7z8B,GACxC,IAAI/Y,EAAO,IAAIuB,KAAKwX,EAAK89J,UAAUr1K,WACnC,GAAK1B,KAAKmoC,OAAOqv9B,eAAkBx3/B,KAAKmoC,OAAOi07B,cAAcpuV,aAC7B,gBAA5BhuoB,KAAKmoC,OAAOw/W,cAAiC3nZ,KAAKu3/B,cAAct++B,IAC/DjZ,KAAKmoC,OAAOsv9B,aAAa,IAAIh2/B,KAAKvB,EAAKuC,SAAS,EAAG,EAAG,EAAG,KAF9D,CAMA,IAAI0yf,EAAappL,GAAkB9yT,EAAK8d,OAA6B9d,EAAK9D,QAAzB8D,EAAK8d,MAAM1uB,OAC5D,GAAIrI,KAAKmoC,OAAOumrB,WAAhB,CACI1utB,KAAKy8+B,iBACL,IAAIib,EAAgB13/B,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KACxD9jG,GAAkB2rrB,KAClBA,EAAgB52/B,GAAc,MAAO,CACjCC,UAAW8ua,IACX3mY,UAAW,0BAA8BlpC,KAAK+zZ,KAAKhuD,YAAY,YAAc,YAGrF,IAAIi/nB,EAAavv4B,GAAQ0/Z,EAAW,IAAMtlF,IAAuB,KAAOA,KACpEm1jB,GACAA,EAAWtz8B,YAAYgm+B,EAG/B,KAdA,CAeA,IAAIrv/B,EAASotF,GAAQ0/Z,EAAW,IAAMtlF,IAAuB,KAAOA,IAAyB,KACzFA,KACJ,IAAI9jG,GAAkB1jU,KAAW8sf,EAAUjtO,UAAUh1P,SAAS28Y,KAI9D,GADmB7va,KAAKgg+B,WAAW9llB,WAAa7xY,GAC5BrI,KAAKgg+B,WAAW7q9B,QAAQ+yQ,UAAUh1P,SAAS28Y,KAA/D,CACI,IAAI8nlB,EAAmB33/B,KAAKgg+B,WAAW7q9B,QAAQykB,cAAc,IAAMi2Y,KAC/D8nlB,GACAA,EAAiBvt/B,OAMzB,KATA,CAOSpK,KAAKgg+B,WAAW7q9B,SACrBnV,KAAK43/B,oBAAoB,cAE7B,IAAIlr6B,EAAO,CAAC,EACZA,EAAK1sF,KAAKmoC,OAAOw+7B,YAAY5vzB,WAAa/2K,KAAKmoC,OAAOu17B,gBAAgB3mzB,UACtErqF,EAAK1sF,KAAKmoC,OAAOw+7B,YAAYj6lB,SAAW1sY,KAAKmoC,OAAOu17B,gBAAgBhxlB,QACpEhgT,EAAK1sF,KAAKmoC,OAAOw+7B,YAAY5I,UAAY/99B,KAAKmoC,OAAOu17B,gBAAgBK,SACrE,IAAI85B,EAAiB/2/B,GAAc,MAAO,CAAEC,UAAW8ua,MACvDgolB,EAAenm+B,YAAY1xB,KAAK83/B,eAAe,OAAQpr6B,IACvDmr6B,EAAenm+B,YAAY1xB,KAAK+3/B,gBAAgB,OAAQ9++B,EAAMyzE,IAC9Dmr6B,EAAenm+B,YAAY1xB,KAAKg4/B,eAAe,OAAQtr6B,IACvD,IAAIy85B,EAAiB0O,EAAej+9B,cAAc,IAAMi2Y,KACpDs5kB,GACAxx3B,GAAMkpR,YAAY,CAAE1rY,QAASg0+B,EAAgBz29B,WAAY,CAAEixC,YAAa3jE,KAAK+zZ,KAAKhuD,YAAY,eAE7Fh6B,GAAkB/rU,KAAKmoC,OAAOi07B,cAAcjpwB,OAAOmkP,QAAQz2c,WAC5Dso/B,EAAevn/B,MAAQ5B,KAAKmoC,OAAOi07B,cAAcjpwB,OAAOmkP,QAAQz2c,SAEpE,IAAIs/gB,EAAY03e,EAAej+9B,cAAc,IAAMi2Y,KAC/CswG,GACAnghB,KAAKyvY,aAAa,yBAA0BogC,IAAW,IAAMA,KAAsB,EAAOswG,EAAWnghB,KAAKi5hB,YAE9G,IAAIg/d,EAAaJ,EAAej+9B,cAAc,IAAMi2Y,KAChDoolB,GACAj4/B,KAAKyvY,aAAa,SAAU,IAAI,EAAOwonB,EAAYj4/B,KAAKk4/B,cAE5D,IAAIC,EAAaN,EAAej+9B,cAAc,IAAMi2Y,KAChDsolB,GACAn4/B,KAAKyvY,aAAa,mBAAoB,GAAIzvY,KAAKmoC,OAAOuz7B,kBAAkBn9kB,SAAU45mB,EAAYn4/B,KAAKo4/B,WAEnGp4/B,KAAK4q+B,WACL5q+B,KAAK4q+B,UAAUrtsB,OAEnBv9R,KAAKgg+B,WAAWjr9B,QAAU8i/B,EAC1B73/B,KAAKgg+B,WAAW9llB,SAAW7xY,EAC3BrI,KAAKgg+B,WAAW5zoB,WAChBpsV,KAAKs3/B,qBAAqBjv/B,EAAQrI,KAAKmoC,OAAOu87B,UAAU8d,mBAAmBvp+B,EAAK8d,OAlChF,CAhBA,CAhBA,MAFI/2B,KAAKy8+B,gBAqEb,EACAmY,EAAYjk/B,UAAU0n/B,iBAAmB,SAAUj93B,GAE/C,GADmBp7H,KAAKgg+B,WAAW9llB,WAAazkT,GAAQ2lC,EAAOjmH,QAAS,IAAM06Z,MAC1D7va,KAAKgg+B,WAAW7q9B,QAAQ+yQ,UAAUh1P,SAAS28Y,KAAiB,CAC5E,IAAI6zZ,EAAW1j0B,KAAKgg+B,WAAW7q9B,QAAQykB,cAAc,IAAMi2Y,KAI3D,GAHI6zZ,GACAA,EAASt5zB,SAERpK,KAAKmoC,OAAOumrB,WAAY,CACzB,IAAI4pS,EAAat4/B,KAAKgg+B,WAAW7q9B,QAAQykB,cAAc,IAAMi2Y,KACzDyolB,GACAA,EAAWlu/B,OAEnB,CACA,OAAO,CACX,CACA,OAAO,CACX,EACAwq/B,EAAYjk/B,UAAU4n/B,gBAAkB,SAAU3r/B,GAC9C,MAAuD,SAAhD5M,KAAKmoC,OAAOqw9B,mBAAmB3/L,cAA2B74zB,KAAKmoC,OAAOqw9B,mBAAmB3/L,eAAiBjszB,CACrH,EACAgo/B,EAAYjk/B,UAAUs88B,WAAa,SAAU7x1B,GAIzC,GAHIp7H,KAAKmoC,OAAOsw9B,cACZz4/B,KAAKmoC,OAAOsw9B,aAAaj92B,QAExBx7I,KAAKmoC,OAAOqv9B,cAGjB,GAAIx3/B,KAAKmoC,OAAOumrB,YAAc1utB,KAAK60/B,sBAC/B70/B,KAAK04/B,wBAAwBjj6B,GAAQ2lC,EAAOjmH,QAAS,IAAM06Z,UAE1D,CACD,IAAI8olB,EAAe34/B,KAAKq4/B,iBAAiBj93B,GAEzC,GADAp7H,KAAKmoC,OAAOo/7B,iBAAmB,GAC3BoxB,EACA,OAEK34/B,KAAKgg+B,WAAW7q9B,SACrBnV,KAAK43/B,oBAAoB,cAE7B,IAAI1uqB,EAAY9tN,EAAOrkG,MACnB6h+B,EAAkB93/B,GAAc,MAAO,CAAEC,UAAW8ua,MACxD+olB,EAAgBln+B,YAAY1xB,KAAK83/B,eAAe,QAAS5uqB,IACzD0vqB,EAAgBln+B,YAAY1xB,KAAK+3/B,gBAAgB,QAAS383B,EAAQ8tN,IAClE0vqB,EAAgBln+B,YAAY1xB,KAAKg4/B,eAAe,QAAS9uqB,IACzD,IAAIq1D,EAAWv+Y,KAAKmoC,OAAOuz7B,kBAAkBn9kB,UAAYr1D,EAAUlpV,KAAKmoC,OAAOw+7B,YAAY1nlB,YACvFk4mB,GAAcn3/B,KAAKmoC,OAAOi07B,cAAchwV,cAAgB7tP,EACxD64mB,GAAgBp3/B,KAAKmoC,OAAOi07B,cAAcvmU,eAAiBt3Q,EAC3Dmlb,EAAWk1L,EAAgBh/9B,cAAc,IAAMi2Y,KAC/CgplB,EAAc,yBACdn1L,GACA1j0B,KAAKyvY,aAAaopnB,EAAahplB,IAAW,IAAMA,IAAqBsnlB,EAAYzzL,EAAU1j0B,KAAKq3/B,WAEpG,IAAIz1gB,EAAag3gB,EAAgBh/9B,cAAc,IAAMi2Y,KACjD+xE,GACA5hf,KAAKyvY,aAAaopnB,EAAahplB,IAAW,IAAMA,IAAuBunlB,EAAcx1gB,EAAY5hf,KAAKwq+B,aAE1G,IAAIrqd,EAAYy4e,EAAgBh/9B,cAAc,IAAMi2Y,KAChDswG,GACAnghB,KAAKyvY,aAAaopnB,EAAahplB,IAAW,IAAMA,KAAsB,EAAOswG,EAAWnghB,KAAKi5hB,YAEjG,IAAIq/d,EAAaM,EAAgBh/9B,cAAc,IAAMi2Y,KACjDyolB,GACAt4/B,KAAKyvY,aAAa,mBAAoB,GAAI0nnB,EAAYmB,EAAYt4/B,KAAKq3/B,WAE3E,IAAIyB,EAAeF,EAAgBh/9B,cAAc,IAAMi2Y,KACnDiplB,GACA94/B,KAAKyvY,aAAa,SAAU,GAAI2nnB,EAAc0B,EAAc94/B,KAAKwq+B,aAEjExq+B,KAAK4q+B,YAAcn14B,GAAQ2lC,EAAOjmH,QAAS,IAAM06Z,MACjD7va,KAAK4q+B,UAAUrtsB,OAEnBv9R,KAAKgg+B,WAAWjr9B,QAAU6j/B,EAC1B54/B,KAAKgg+B,WAAW9llB,SAAWl6Y,KAAKmoC,OAAOumrB,WAAax9rB,SAASzd,KACzDgiF,GAAQ2lC,EAAOjmH,QAAS,IAAM06Z,KAClC7va,KAAKgg+B,WAAW5zoB,WAChBpsV,KAAKs3/B,qBAAqBl83B,EAAOjmH,QAASnV,KAAKmoC,OAAOu87B,UAAU8d,mBAAmBpn3B,EAAOosO,eAC9F,CACJ,EACAotpB,EAAYjk/B,UAAUmn/B,eAAiB,SAAUiB,EAAYjnkB,GACzD,IAAIvE,EAAiBzsb,GAAc,MAAO,CAAEC,UAAW8ua,MACvD,GAAI7va,KAAKu4/B,gBAAgBQ,IAAe/4/B,KAAKmoC,OAAOqw9B,mBAAmB9p0B,OAAQ,CAC3E,IAAIsq0B,EAAavv6B,GAAO,CAAC,EAAGqoW,EAAY,CAAE3mT,YAAa4t3B,EAAWr4+B,gBAAiB,GAC/EysV,EAAantW,KAAKmoC,OAAOhzB,QAAQghB,GACjC8i+B,EAAa,GAAGro/B,MAAMjR,KAAKK,KAAKmoC,OAAO+w9B,6BAAZl5/B,CAA0Cg5/B,EAAYh5/B,KAAKmoC,OAAQ,SAAUglU,EAAa,mBAAmB,IAC5In6O,GAAO,GAAGpiH,MAAMjR,KAAKs5/B,GAAa1rkB,EACtC,KACK,CACD,IAAI7+P,OAAS,EACTz1K,OAAO,EACX,OAAQ8/+B,GACJ,IAAK,OACDrq0B,EAAS,eAAkBmhP,IAAgC,oBAAwBA,IAA1E,YACG7va,KAAK+zZ,KAAKhuD,YAAY,SAAW,oBAC7C,MACJ,IAAK,QACD9sV,EAAOjZ,KAAKm5/B,mBAAmBrnkB,GAC/BpjQ,EAAS,eAAkBmhP,IAAlB,oBACkBA,IAAiB,IAAMA,IAAY,YAAgB7va,KAAK+zZ,KAAKhuD,YAAY,QAD3F,6BAEkB8pE,IAAmB,IAAMA,IAAY,YAAgB7va,KAAK+zZ,KAAKhuD,YAAY,UAF7F,6BAGiB8pE,IAAkB,YAAgB7va,KAAK+zZ,KAAKhuD,YAAY,SAHzE,gCAIc8pE,IAAmB,iBAAqBA,IAAoB,IAAMA,IAJhF,aAKU52Z,EAAK6m+B,aAAe7m+B,EAAK6m+B,aAAasZ,WAAW,IAAK,KAAQng/B,EAAK6m+B,cAAgB,kBAG9G,IAAIuZ,EAAkBv4/B,GAAc,MAAO,CAAEooC,UAAWwlJ,IACxD,GAAmB,UAAfqq0B,EAAwB,CACxB,IAAIO,EAAcD,EAAgBz/9B,cAAc,IAAMi2Y,KACtD7va,KAAKmoC,OAAOyD,SAAS3yB,EAAK6m+B,aAAcwZ,EAC5C,CACAtm4B,GAAO,GAAGpiH,MAAMjR,KAAK05/B,EAAgBlw9B,YAAaokZ,EACtD,CACA,OAAOA,CACX,EACAqnkB,EAAYjk/B,UAAUon/B,gBAAkB,SAAUnr/B,EAAMqM,EAAMixB,GAC1D,IAAIqv9B,EAAkBz4/B,GAAc,MAAO,CAAEC,UfpUpB,oBeqUzB,GAAIf,KAAKu4/B,gBAAgB3r/B,IAAS5M,KAAKmoC,OAAOqw9B,mBAAmBzj/B,QAAS,CACtE,IAAIyk/B,EAAc/v6B,GAAO,CAAC,EAAGv/C,EAAM,CAAEihG,YAAav+H,EAAK8T,gBAAiB,GACpEysV,EAAantW,KAAKmoC,OAAOhzB,QAAQghB,GACjCsj+B,EAAc,GAAG7o/B,MAAMjR,KAAKK,KAAKmoC,OAAOux9B,8BAAZ15/B,CAA2Cw5/B,EAAax5/B,KAAKmoC,OAAQ,UAAWglU,EAAa,oBAAoB,IACjJn6O,GAAO,GAAGpiH,MAAMjR,KAAK85/B,GAAcF,EACvC,KACK,CACD,IAAIxk/B,OAAU,EACVmv9B,OAAc,EACd9/B,OAAW,EACXu1D,EAAe35/B,KAAK45/B,gBAAgB3g/B,EAAMrM,EAAK8T,eACnD,OAAQ9T,GACJ,IAAK,OACDs39B,EAAclk+B,KAAKm5/B,mBAAmBjv9B,GACtCn1B,EAAU,4DAAiF86Z,IAAjF,4CACiCA,IADjC,+BAEE7va,KAAKmoC,OAAOw+7B,YAAYrvhB,QAAU,4CAAgDznC,IAFpF,iBAGaA,IAA2B,IAAMA,IAAW,uBAA2BA,IAA8B,IACvHA,IAAoB,KAAQq0jB,EAAYpn5B,QAAU,gBACjD98E,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,EAAI,eAAkBysa,IAAlB,iBACtCA,IAA0B,IAAMA,IAAW,wBAA4BA,IAA6B,IACtHA,IAAoB,iBAAqB,IAAM,6BACxD,MACJ,IAAK,QACDu0hB,EAAWpk8B,KAAKm5/B,mBAAmBjv9B,GACnCn1B,EAAU,eAAiB86Z,IAAsB,iBAAmBA,IAA2B,IAAMA,IAA3F,2CACuDA,IAAoB,iBACjFA,IAA8B,IAAMA,IAAoB,KAAOu0hB,EAAStn3B,QAAU,SAClF5yC,EAAKlqC,KAAKmoC,OAAOw+7B,YAAY0E,kBAC7Bt29B,GAAW,oCAAsD86Z,IAAoB,KACjF7va,KAAK65/B,qBAAqB3v9B,GAAQ,UAE1Cn1B,GAAW,eACPm1B,EAAKlqC,KAAKmoC,OAAOw+7B,YAAYhv8B,YAC7B5iB,GAAW,eAAiB86Z,IAAjB,iCACPA,IAAW,uBAAyBA,IAA6B,IAAMA,IAAoB,mBAE/F3lY,EAAKlqC,KAAKmoC,OAAOw+7B,YAAYuQ,gBAAkBht8B,EAAKlqC,KAAKmoC,OAAOw+7B,YAAYwQ,gBAC5Epi+B,GAAW,eAAiB86Z,IAAjB,kCAA2FA,IAA3F,2CACsDA,IAAoB,KACjF7va,KAAK85/B,YAAY5v9B,GAAQ,gBAE7BA,EAAKlqC,KAAKmoC,OAAOw+7B,YAAYt+6B,eAC7BtzC,GAAW,eAAiB86Z,IAAjB,oCAA+FA,IACtG,uBAAyBA,IAAgC,IAAMA,IAAoB,kBAEvF7va,KAAKmoC,OAAOin7B,mBAAmBhs9B,OAAS,IACxC2R,GAAW,eAAiB86Z,IAAqB,iBAAmBA,IAA0B,IAAMA,IAChG,uBAAyBA,IAA6B,IAAMA,IAAoB,kBAIhG,IAAIwplB,EAAkBv4/B,GAAc,MAAO,CAAEooC,UAAWn0B,IACxD,GAAIm1B,EAAKlqC,KAAKmoC,OAAOw+7B,YAAYhv8B,UAAW,CACxC,IAAIoi+B,EAAkBV,EAAgBz/9B,cAAc,IAAMi2Y,KACrD9jG,GAAkBgurB,IACnB/5/B,KAAKmoC,OAAOyD,SAAS1B,EAAKlqC,KAAKmoC,OAAOw+7B,YAAYhv8B,UAAWoi+B,EAErE,CACA,GAAI7v9B,EAAKlqC,KAAKmoC,OAAOw+7B,YAAYt+6B,aAAc,CAC3C,IAAI2x8B,EAAqBX,EAAgBz/9B,cAAc,IAAMi2Y,KACxD9jG,GAAkBiurB,IACnBh6/B,KAAKmoC,OAAOyD,SAAS1B,EAAKlqC,KAAKmoC,OAAOw+7B,YAAYt+6B,aAAc2x8B,EAExE,CACA,GAAIL,EAAc,CACd,IAAIM,EAAkBZ,EAAgBz/9B,cAAc,IAAMi2Y,KACrD9jG,GAAkBkurB,IACnBj6/B,KAAKmoC,OAAOyD,SAAS+t9B,EAAcM,EAE3C,CACAjn4B,GAAO,GAAGpiH,MAAMjR,KAAK05/B,EAAgBlw9B,YAAaow9B,EACtD,CACA,OAAOA,CACX,EACA3E,EAAYjk/B,UAAUqn/B,eAAiB,SAAUkC,EAAYC,GACzD,IAAI10jB,EAAiB3kc,GAAc,MAAO,CAAEC,UAAW8ua,MACvD,GAAI7va,KAAKu4/B,gBAAgB2B,IAAel6/B,KAAKmoC,OAAOqw9B,mBAAmB9r/B,OAAQ,CAC3E,IAAI0t/B,EAAa3w6B,GAAO,CAAC,EAAG0w6B,EAAY,CAAEhv3B,YAAa+u3B,EAAWx5+B,gBAAiB,GAC/EysV,EAAantW,KAAKmoC,OAAOhzB,QAAQghB,GACjCkk+B,EAAa,GAAGzp/B,MAAMjR,KAAKK,KAAKmoC,OAAOmy9B,6BAAZt6/B,CAA0Co6/B,EAAYp6/B,KAAKmoC,OAAQ,SAAUglU,EAAa,mBAAmB,IAC5In6O,GAAO,GAAGpiH,MAAMjR,KAAK06/B,GAAa50jB,EACtC,KACK,CACD,IAAI/4b,OAAS,EACb,OAAQwt/B,GACJ,IAAK,OACDxt/B,EAAS,kBAAsBmja,IAAsC,IAAMA,IAAlE,YACG7va,KAAK+zZ,KAAKhuD,YAAY,eAAiB,KAAQ/lW,KAAK+zZ,KAAKhuD,YAAY,eADxE,2BAEiB8pE,IAAyB,IAAMA,IAAoB,YAAgB7va,KAAK+zZ,KAAKhuD,YAAY,QAAU,KACxH/lW,KAAK+zZ,KAAKhuD,YAAY,QAAU,YACrC,MACJ,IAAK,QACDr5V,EAAe1M,KAAKmoC,OAAOumrB,WAAa,GAAK,kBAAqB7+S,IAAuB,IACpFA,IAAoB,YAAgB7va,KAAK+zZ,KAAKhuD,YAAY,QAAU,KAAQ/lW,KAAK+zZ,KAAKhuD,YAAY,QAD1D,2BAEnB8pE,IAAyB,IAAMA,IAAoB,YAAgB7va,KAAK+zZ,KAAKhuD,YAAY,UAAY,KAC1H/lW,KAAK+zZ,KAAKhuD,YAAY,UAAY,YAG/C,IAAIszpB,EAAkBv4/B,GAAc,MAAO,CAAEooC,UAAWx8B,IACxDsmH,GAAO,GAAGpiH,MAAMjR,KAAK05/B,EAAgBlw9B,YAAas8Z,EACtD,CACA,OAAOA,CACX,EACAmvjB,EAAYjk/B,UAAUip/B,gBAAkB,SAAU3g/B,EAAMrM,GACpD,GAA8C,IAA1C5M,KAAKmoC,OAAOin7B,mBAAmBhs9B,OAC/B,OAAO,KAEX,IAAIm3/B,EAAgB,GACpB,GAA6D,IAAzDv6/B,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAc,CAC5D,IAAIo3/B,EAAuBx6/B,KAAKmoC,OAAOyh8B,aAAaxa,mBAAmBx+8B,OAAO,GAAG,GAC7E2m+B,EAAeijB,EAAqB1nlB,WACxC,GAAa,UAATlma,EAkBA,IAjBA,IAAIs8U,EAAYjwU,EAAK8d,MACjBgqZ,EAAU,SAAU72Y,GACpB,IAAI4y8B,EAAa5zpB,EAAUsxqB,EAAqBp74B,OAChD,GAAI093B,aAAsBps+B,OACtB,GAAIos+B,EAAWny+B,QAAQu/B,EAAKsw9B,EAAqBhf,WAAa,EAAG,CAC7D,IAAIx4W,EAAO85W,EAAWA,EAAWny+B,QAAQu/B,EAAKsw9B,EAAqBhf,WAC/DrxM,EAAWotM,EAAanx+B,QAAO,SAAU/F,GACzC,OAAOA,EAAEm6/B,EAAqBhf,WAAax4W,CAC/C,IAAG,GACHu3X,GAAoC,KAAlBA,EAAwBpwN,EAASqwN,EAAqBlikB,WACpE,KAAO6xW,EAASqwN,EAAqBlikB,UAC7C,OAEKpuZ,EAAKsw9B,EAAqBhf,WAAasB,IAC5Cyd,EAAgBrw9B,EAAKsw9B,EAAqBlikB,WAAWxhb,WAE7D,EACSxH,EAAK,EAAGmr/B,EAAiBljB,EAAcjo+B,EAAKmr/B,EAAer3/B,OAAQkM,IAAM,CAE9Eyxa,EADW05kB,EAAenr/B,GAE9B,MAGAir/B,EAAgBhjB,EAAa,GAAGijB,EAAqBlikB,WAAWxhb,UAExE,MAEI,GAAa,UAATlK,EAAkB,CACds8U,EAAYjwU,EAAK8d,MACjBwg9B,OAAe,EAEnB,IAHA,IAEImjB,EACKvu/B,EAAInM,KAAKmoC,OAAOyh8B,aAAaxa,mBAAmBhs9B,OAAS,EAAG+I,GAAK,EAAGA,IAEzE,IAAK4/T,GADLwrqB,EAAerupB,EAAUlpV,KAAKmoC,OAAOyh8B,aAAaxa,mBAAmB7i8B,SAASpgB,EAAE2K,WAAY,KAAKsoG,QAC3D,CAClCs74B,EAAiB16/B,KAAKmoC,OAAOyh8B,aAAaxa,mBAAmB7i8B,SAASpgB,EAAE2K,WAAY,KACpF,KACJ,CAECpG,MAAMgB,QAAQ6l+B,KACfA,EAAe,CAACA,IAEpB,IAAIojB,EAAa,GACbC,EAAqBF,EAAe5nlB,WACxCykkB,EAAalx+B,SAAQ,SAAUzE,GAC3B,IAAIq+B,EACA9zB,EAAIkw9B,IAAqBu+B,EAAoBF,EAAelf,QAAS55+B,GACrEuK,GAAK,IACL8zB,EAAO269B,EAAmBru+B,SAASpgB,EAAE2K,WAAY,KAAK4j/B,EAAepikB,YAErEr4Z,GACA069B,EAAWvu/B,KAAK6zB,EAExB,IACAs69B,EAAgBI,EAAW30/B,KAAK,KACpC,KACK,CACD,IAAIo+7B,EAAWnr7B,EACXknzB,EAAcp0f,GAAkBq4nB,EAASjkI,YAAoC,EAAtBikI,EAASjkI,WAChE85L,EAAkBj6/B,KAAKmoC,OAAOyh8B,aAAaC,kBAAkBt98B,SAAS4zyB,EAAWrpzB,WAAY,KACjGyj/B,EAAgBN,EAAgB1iB,aAAa0iB,EAAgB9vN,SAAS7xW,UAC1E,CAEJ,OAAOiikB,CACX,EACA3F,EAAYjk/B,UAAUwo/B,mBAAqB,SAAUjwqB,GACjD,IAAI/1H,EAASnzN,KAAKmoC,OAAOw+7B,YACrBmZ,EAAgB52pB,EAAU/1H,EAAOmkP,UAAYt3c,KAAK+zZ,KAAKhuD,YAAY,WACnE6pD,EAAY1mE,EAAU/1H,EAAOp8C,WAC7B84O,EAAU3mE,EAAU/1H,EAAOu5K,SAC3BmunB,EAAmB76/B,KAAKm/U,cAAcywE,EAAW,QACjDkrmB,EAAkB5xqB,EAAU/1H,EAAO4qwB,WAAoC,IAAvBlukB,EAAQ1sY,YAA6C,IAAzB0sY,EAAQzsY,aACpFpjB,KAAKm/U,cAAck9oB,IAAa,IAAI569B,KAAKouZ,EAAQnuZ,YAAa,GAAI,QAClE1B,KAAKm/U,cAAc0wE,EAAS,QAC5BkrmB,EAAkB/6/B,KAAKmoC,OAAO4+8B,cAAcn3lB,GAC5CormB,EAAgBh7/B,KAAKmoC,OAAO4+8B,cAAcl3lB,GAC1C/yU,EAAU,GACVm+6B,EAAaprmB,EAAQvtZ,YAAcstZ,EAAUttZ,YAC5CutZ,EAAQnuZ,UAAYkuZ,EAAUluZ,WAAa,KAAmB,GAAK,EAAI,EAa5E,OAZIwnV,EAAU/1H,EAAO4qwB,WACjBjh5B,EAAU+96B,EAAmB,KAAO76/B,KAAK+zZ,KAAKhuD,YAAY,UAAY,KAChEs2nB,IAAsBxskB,GAAWwskB,IAAsBzskB,IAAcyskB,IAAmB,IAC1Fv/4B,GAAW,gBAAkBg+6B,EAAiB,KAAO96/B,KAAK+zZ,KAAKhuD,YAAY,UAAY,MAI3FjpR,GADQu/4B,IAAsBxskB,GAAWwskB,IAAsBzskB,IAAcyskB,KAAoB,GAAM4+B,EAAa,EAC1GJ,EAAmB,KAAOE,EAA1BF,iBAAoEC,EAAiB,KAAOE,EAAgB,IAG5GH,EAAmB,KAAQE,EAAkB,gBAAkBC,EAAiB,IAEvF,CAAElb,aAAcA,EAAchj6B,QAASA,EAClD,EACA836B,EAAYjk/B,UAAU4++B,eAAiB,SAAUrl9B,EAAM2lX,EAASswa,GAC5D,IAAI7g0B,EAAQU,KACZA,KAAKy8+B,gBAAe,GACpB,IAAIsa,EAAsB/2/B,KAAK4q+B,UAAUz19B,QAAQykB,cAAc,IAAMi2Y,KACjEknlB,GACA5j+B,GAAO4j+B,GAEX,IAAI7umB,EAAiBh+W,EAAKhqC,KAAMwB,UAAWoV,WACvCzO,EAASotF,GAAQvrD,EAAK/0B,QAAS,IAAM06Z,IAA2B,KAAOA,KACvE5sa,EAAMjD,KAAKmoC,OAAOo7W,UAAU9jE,WAAWv1S,EAAKhqC,KAAM,CAAEmlB,OAAQ,IAAKs2E,SAAU37F,KAAKmoC,OAAOm07B,oBAC3Ft89B,KAAK4q+B,UAAUz19B,QAAQykB,cAAc,IAAMi2Y,KAAiC3mY,UAAYmz7B,IAAyBp59B,EAAK,UACtH,IAIIm1+B,EAJA8iB,EAAcl7/B,KAAK4q+B,UAAUz19B,QAAQykB,cAAc,IAAMi2Y,KAC7DqrlB,EAAYhy9B,UAAYlpC,KAAKm/U,cAAcj1S,EAAKhqC,KAAM,KACtDg7/B,EAAYlm+B,aAAa,YAAakzX,GACtCgzmB,EAAYlm+B,aAAa,gBAAiB66X,EAAQnuZ,UAAUoV,YAEvDi1T,GAAkBo0f,KACnB+6L,EAAYlm+B,aAAa,mBAAoBmryB,GAC7Ci4K,EAAap4+B,KAAKmoC,OAAOyh8B,aAAaC,kBAAkBt98B,SAAS4zyB,EAAY,KAAKi4K,YAEtF,IAAI+iB,EAAoBn7/B,KAAK82/B,oBAAoB5s9B,EAAKnT,MAAOqh9B,EAAYj4K,GAMzE,GALAng0B,KAAK4q+B,UAAUz19B,QAAQykB,cAAc,IAAMi2Y,KAA4Bn+Y,YAAYyp+B,GACnFlzuB,GAAYjoR,KAAK4q+B,UAAUz19B,QAAQykB,cAAc,IAAMi2Y,KAAkC1mY,WAAY0mY,KACjGwsjB,IAAeny7B,EAAKhqC,MAAMwB,YAAc269B,IAAer89B,KAAKmoC,OAAOm17B,kBAAkB579B,WACrF8mR,GAASxoR,KAAK4q+B,UAAUz19B,QAAQykB,cAAc,IAAMi2Y,KAAkC1mY,WAAY0mY,MAEjG7va,KAAKmoC,OAAOumrB,WACb,IAAqD,IAAjD1utB,KAAKmoC,OAAOw/W,YAAYh9Y,QAAQ,YAAoB,CACpD,IAAIun/B,EAAS7p/B,EAAOiqB,aAAa,oBAC7Bs9X,EAAY,IAAInuZ,KAAK8qB,SAASlkB,EAAOiqB,aAAa,mBAAoB,KAC1Es9X,EAAUntZ,SAASmtZ,EAAUzsY,WAAYysY,EAAUxsY,aAAc,GACjE,IAAIg4+B,EAASxrmB,EAAUluZ,UAAUoV,WACjC,GAAIi1T,GAAkBmmrB,GAClBly/B,KAAK4q+B,UAAU1wlB,SAAWl6Y,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,IAC9D,2BAA6BurlB,EAAS,WAK1C,GAFAp7/B,KAAK4q+B,UAAU1wlB,SAAWl6Y,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,IAC9D,kCAAoCqilB,EAAS,iBAAmBkJ,EAAS,MACzErvrB,GAAkB/rU,KAAK4q+B,UAAU1wlB,UAGjC,IAFA,IAAI6xmB,EAAY,GAAGn7+B,MAAMjR,KAAKK,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiB,IAAMq/Z,IACrE,kCAAoCqilB,EAAS,OACxC/l/B,EAAI,EAAGA,EAAI4/+B,EAAU3o/B,OAAQ+I,IAAK,CAC5B4/+B,EAAUx/9B,SAASpgB,EAAE2K,WAAY,KAAKwb,aAAa,aACnD8o+B,IACPp7/B,KAAK4q+B,UAAU1wlB,SAAW6xmB,EAAUx/9B,SAASpgB,EAAE2K,WAAY,KAEnE,CAGZ,MAEI9W,KAAK4q+B,UAAU1wlB,SAAWzkT,GAAQptF,EAAQ,IAAMwna,KAGxD7va,KAAKmoC,OAAOukf,iBAAgB,WACxB,IAAIrjM,EAAY,CACZz8U,KAAM,iBAAkBk0E,QAAQ,EAChC3rE,QAAS7V,EAAMsr+B,UAAUz19B,QAAS+0B,KAAMA,GAE5C5qC,EAAM6oC,OAAOm4P,QAAQvpQ,IAAiBsyT,GAAW,SAAUwtqB,GAClDA,EAAU/16B,QACXxhF,EAAMsr+B,UAAUvkrB,MAExB,GACJ,GACJ,EACAuusB,EAAYjk/B,UAAUyn/B,UAAY,SAAUrh+B,GACxC/2B,KAAKk2/B,sBACLl2/B,KAAKq7/B,YAActk+B,EACnB/2B,KAAK2ib,cAAe,EACpB3ib,KAAKy8+B,gBACT,EACAmY,EAAYjk/B,UAAUun/B,aAAe,SAAUnh+B,GAC3C,IAAIuk+B,EAAat7/B,KAAKgg+B,WAAW7q9B,QAAQykB,cAAc,IAAMi2Y,KACzDyrlB,GAAmC,KAArBA,EAAW15/B,OACzB6nF,GAAOzpF,KAAKmoC,OAAOu17B,gBAAiB,CAAEpmhB,QAASgkjB,EAAW15/B,QAE9D5B,KAAKq7/B,YAActk+B,EACnB/2B,KAAK2ib,cAAe,EACpB3ib,KAAK80/B,eAAeH,iBACpB30/B,KAAKy8+B,iBACLz8+B,KAAKmoC,OAAO617B,YAAYC,WAAWj+9B,KAAKmoC,OAAOu17B,gBAAiB,MACpE,EACAk3B,EAAYjk/B,UAAU0m/B,UAAY,SAAUtg+B,GACxC/2B,KAAKq7/B,YAActk+B,EACnB/2B,KAAKy8+B,gBAAe,GACpB,IAAIvy8B,EAAOlqC,KAAKmoC,OAAOoi8B,gBAAgBxz8B,MACvC/2B,KAAKmoC,OAAOk2hB,cAAgB,aACvBtyP,GAAkB7hS,EAAKlqC,KAAKmoC,OAAOw+7B,YAAY0E,iBAKhDrr+B,KAAKmoC,OAAO617B,YAAYC,WAAW/z7B,EAAMlqC,KAAKmoC,OAAOk2hB,gBAJrDr+jB,KAAKmoC,OAAOk2hB,cAAgB,iBAC5Br+jB,KAAK08+B,sBAKb,EACAkY,EAAYjk/B,UAAU659B,YAAc,SAAUzz8B,GAC1C/2B,KAAKq7/B,YAActk+B,EACnB/2B,KAAKy8+B,gBAAe,GACpBz8+B,KAAKmoC,OAAOk2hB,cAAgB,SACxBr+jB,KAAKmoC,OAAOoi8B,gBAAgBxz8B,MAAM/2B,KAAKmoC,OAAOw+7B,YAAY0E,gBAC1Drr+B,KAAK08+B,sBAGL18+B,KAAK22/B,iBAEb,EACA/B,EAAYjk/B,UAAU4q/B,uBAAyB,WAC3C,IAAIv7/B,KAAK4q+B,UAAUz19B,QAAQ+yQ,UAAUh1P,SAAS,iBAA9C,CAGA,IAAI6j+B,EAAsB/2/B,KAAK4q+B,UAAUz19B,QAAQykB,cAAc,IAAMi2Y,KACjEknlB,GACA5j+B,GAAO4j+B,GAEX,IAII7s9B,EACAku8B,EALA8iB,EAAcl7/B,KAAK4q+B,UAAUz19B,QAAQykB,cAAc,IAAMi2Y,KACzDjgB,EAAY,IAAInuZ,KAAK8qB,SAAS2u+B,EAAY5o+B,aAAa,aAAc,KACrEu9X,EAAU,IAAIpuZ,KAAK8qB,SAAS2u+B,EAAY5o+B,aAAa,iBAAkB,KACvE6tyB,EAAa+6L,EAAY5o+B,aAAa,oBAGrCy5S,GAAkBo0f,KAEnBi4K,GADAlu8B,EAAOlqC,KAAKmoC,OAAOyh8B,aAAaC,kBAAkBt98B,SAAS4zyB,EAAY,MACrDi4K,YAEtB,IAAIh92B,EAASp7H,KAAKmoC,OAAOu87B,UAAU4R,aAAa1mlB,EAAWC,EAAS7vZ,KAAKmoC,OAAOs+7B,gBAAiBv87B,GAC7Fsx9B,EAAcx7/B,KAAK82/B,oBAAoB173B,EAAQg92B,EAAYj4K,GAC/Dng0B,KAAK4q+B,UAAUz19B,QAAQykB,cAAc,IAAMi2Y,KAA4Bn+Y,YAAY8p+B,EAjBnF,CAkBJ,EACA5G,EAAYjk/B,UAAU6k/B,WAAa,SAAUz+9B,GACzC/2B,KAAKq7/B,YAActk+B,EACa,SAA5B/2B,KAAKmoC,OAAOw/W,aAA0B3nZ,KAAKmoC,OAAOu17B,iBAAmB199B,KAAKmoC,OAAOu17B,gBAAgBvo9B,SACjGnV,KAAKmoC,OAAOg2mB,WAAWn+oB,KAAKmoC,OAAOu17B,gBAAgBvo9B,SAEvDnV,KAAKy8+B,iBACLz8+B,KAAK4q+B,UAAUrtsB,MACnB,EACAq3tB,EAAYjk/B,UAAU+k/B,kBAAoB,SAAU3+9B,GAChD/2B,KAAKq7/B,YAActk+B,EACnB/2B,KAAK61/B,YAAYt4tB,OACjB,IAAIl1R,EAAS0uB,EAAM1uB,OACfqh9B,EAAY1p9B,KAAK61/B,YAAY1g/B,QAAQykB,cAAc,IAAMi2Y,KACzD3mF,EAAYlpV,KAAKmoC,OAAOoi8B,gBAAgBxz8B,MAC5C,GAAI1uB,EAAO6/Q,UAAUh1P,SAAS28Y,KAE1B,OADA7va,KAAKmoC,OAAOk2hB,cAA+C,WAA9Br+jB,KAAKmoC,OAAOk2hB,cAA8B,mBAAqB,iBACpFr+jB,KAAKmoC,OAAOk2hB,eAChB,IAAK,iBACDr+jB,KAAKmoC,OAAO617B,YAAYC,WAAW/0oB,EAAWlpV,KAAKmoC,OAAOk2hB,eAC1D,MACJ,IAAK,mBACDr+jB,KAAKmoC,OAAOo47B,WAAWk7B,YAAYvyqB,EAAWlpV,KAAKmoC,OAAOk2hB,oBAIjE,GAAIh2jB,EAAO6/Q,UAAUh1P,SAAS28Y,KAE/B,OADA7va,KAAKmoC,OAAOk2hB,cAA+C,WAA9Br+jB,KAAKmoC,OAAOk2hB,cAA8B,wBAA0B,sBACzFr+jB,KAAKmoC,OAAOk2hB,eAChB,IAAK,sBACDr+jB,KAAKmoC,OAAO617B,YAAYC,WAAW/0oB,EAAWlpV,KAAKmoC,OAAOk2hB,eAC1D,MACJ,IAAK,wBACDr+jB,KAAKmoC,OAAOo47B,WAAWk7B,YAAYvyqB,EAAWlpV,KAAKmoC,OAAOk2hB,oBAIjE,GAAIh2jB,EAAO6/Q,UAAUh1P,SAAS28Y,KAE/B,OADA7va,KAAKmoC,OAAOk2hB,cAA+C,WAA9Br+jB,KAAKmoC,OAAOk2hB,cAA8B,eAAiB,aAChFr+jB,KAAKmoC,OAAOk2hB,eAChB,IAAK,aACDr+jB,KAAKmoC,OAAO617B,YAAYC,WAAWj+9B,KAAKmoC,OAAOu87B,UAAUmZ,eAAe30pB,GAAW,GAAOlpV,KAAKmoC,OAAOk2hB,eACtG,MACJ,IAAK,eACDr+jB,KAAKmoC,OAAOo47B,WAAWk7B,YAAYvyqB,EAAWlpV,KAAKmoC,OAAOk2hB,oBAI7Dh2jB,EAAO6/Q,UAAUh1P,SAAS28Y,KAC/B7va,KAAKmoC,OAAOo47B,WAAWk7B,YAAYvyqB,EAAWlpV,KAAKmoC,OAAOk2hB,gBAEpDqrZ,EAAUxhsB,UAAUh1P,SAAS28Y,OAAuBxna,EAAO6/Q,UAAUh1P,SAAS28Y,MACnFxna,EAAO6/Q,UAAUh1P,SAAS28Y,OAAmC65iB,EAAUxhsB,UAAUh1P,SAAS28Y,QAC3F7va,KAAKmoC,OAAO+27B,cAAcw8B,mBAAqBrz/B,EAAO6/Q,UAAUh1P,SAAS28Y,KACzE7va,KAAKmoC,OAAO617B,YAAY29B,UAAU5k+B,EAAO/2B,KAAK+zZ,KAAKhuD,YAAY,OAEvE,EACA6upB,EAAYjk/B,UAAU+n/B,wBAA0B,SAAUrw/B,GACtD,IAAIk/9B,EAAmBvn+B,KAAKmoC,OAAOu87B,UAAUkW,yBAAyBvy+B,GAEtE,GADArI,KAAKmoC,OAAOoi8B,gBAAkBvq+B,KAAKmoC,OAAOu87B,UAAU4F,oBAChD/C,EAAiBnk+B,OAAS,EAAG,CAC7B,IAAIqz+B,EAAWz2+B,KAAKmoC,OAAOu87B,UAAUuC,eAAeM,EAAiB,GAAGj18B,aAAa,cACjFsp+B,EAA4C,IAA5Br0B,EAAiBnk+B,OAChCqz+B,EAASz2+B,KAAKmoC,OAAOw+7B,YAAYrvhB,UAAYt3c,KAAK+zZ,KAAKhuD,YAAY,WACpE,IAAMwhoB,EAAiBnk+B,OAAvB,UAAiDpD,KAAK+zZ,KAAKhuD,YAAY,iBAC3E/lW,KAAKgg+B,WAAW7q9B,QAAQykB,cAAc,IAAMi2Y,KAAmB3mY,UAAY0y9B,EACvEr0B,EAAiBnk+B,OAAS,EAC1BolR,GAAS,CAACxoR,KAAKgg+B,WAAW7q9B,QAAQykB,cAAc,IAAMi2Y,MAAuBA,KAG7E5nJ,GAAY,CAACjoR,KAAKgg+B,WAAW7q9B,QAAQykB,cAAc,IAAMi2Y,MAAuBA,IAExF,MAEI7va,KAAKmoC,OAAOo/7B,iBAAmB,GAC/Bvn+B,KAAKy8+B,gBAEb,EACAmY,EAAYjk/B,UAAUmp/B,YAAc,SAAU/i+B,GAC1C,IAAI8k+B,EAAc,GAIlB,OAHAA,GAAe9k+B,EAAM/2B,KAAKmoC,OAAOw+7B,YAAYuQ,gBAAkB,GAC/D2kB,GAA+B,KAAhBA,EAAqB,GAAK,MACzCA,GAAe9k+B,EAAM/2B,KAAKmoC,OAAOw+7B,YAAYwQ,cAAgB,EAEjE,EACAyd,EAAYjk/B,UAAUkp/B,qBAAuB,SAAU9i+B,GACnD,IAAI+k+B,EAAmB97/B,KAAKmoC,OAAO617B,YAAY+9B,8BAC/C,GAAID,EAAkB,CAClB,IAAIE,EAAcF,EAAiBG,eAAell+B,EAAM/2B,KAAKmoC,OAAOw+7B,YAAY0E,iBAChF,OAAO2wB,EAAY737B,OAAO,GAAGpiD,cAAgBi6+B,EAAYpr/B,MAAM,EACnE,CACA,MAAO,EACX,EACAgk/B,EAAYjk/B,UAAUwuU,cAAgB,SAAUj/U,EAAMm5Z,GAClD,OAAOgjkB,IAAyBr89B,KAAKmoC,OAAOo7W,UAAU9jE,WAAWv/U,EAAM,CAAE+yU,SAAUomF,EAAgB19T,SAAU37F,KAAKmoC,OAAOm07B,oBAAsB,SACnJ,EACAs4B,EAAYjk/B,UAAUur/B,kBAAoB,SAAU7z/B,GAChD,GAAIA,EAAO6/Q,UAAUh1P,SAAS28Y,KAC1B,OAAO7va,KAAKmoC,OAAOoi8B,gBAAgBxz8B,MAGvC,IAAI0/8B,EAAW,CACX1/zB,UAAW/2K,KAAKmoC,OAAOu17B,gBAAgB3mzB,UACvC21N,QAAS1sY,KAAKmoC,OAAOu17B,gBAAgBhxlB,QACrCqxlB,SAAU/99B,KAAKmoC,OAAOu17B,gBAAgBK,SACtC59J,WAAYng0B,KAAKmoC,OAAOu17B,gBAAgBv9J,YAExCg8L,EAAYn8/B,KAAKmoC,OAAOu17B,gBAE5B,OADA199B,KAAKmoC,OAAO617B,YAAY0F,mBAAmBy4B,EAAW1lB,GAC/CA,CACX,EACAme,EAAYjk/B,UAAUml/B,uBAAyB,SAAUz1/B,GACrD,IAAIf,EAAQU,KACRiZ,EAAO,CACP8d,MAAO12B,EAAE02B,OAAS/2B,KAAKq7/B,YACvBzu/B,KAAOm/T,GAAkB/rU,KAAKmoC,OAAOoi8B,gBAAgBxz8B,OAAU,kBAC1Dg1S,GAAkB/rU,KAAKmoC,OAAOoi8B,gBAAgBxz8B,MAAM/2B,KAAKmoC,OAAOw+7B,YAAY0E,iBACnD,cAApB,kBAAmCvq5B,QAAQ,EAAO52C,KAAMlqC,KAAKmoC,OAAOoi8B,gBAAgBxz8B,MAC9F5hB,QAASnV,KAAK61/B,YAAY1g/B,SAE9BnV,KAAKmoC,OAAOm4P,QAAQvpQ,IAAkB9d,GAAM,SAAUmj/B,GAC7CA,EAAet76B,QAChBxhF,EAAM6oC,OAAOu87B,UAAUv0V,cAAa,EAE5C,GACJ,EACAykX,EAAYjk/B,UAAU2m/B,qBAAuB,SAAUjv/B,EAAQm/V,GAC3D,IAAIloW,EAAQU,KACZA,KAAKmoC,OAAOukf,iBAAgB,WACxB,IAAI2ve,EAAe/8/B,EAAM0g+B,WAAW7q9B,QAAQykB,cAAc,IAAMi2Y,KAC5D4gL,EAAYnxlB,EAAM6oC,OAAOumrB,WAAa2tS,EAAe,gBAAkB,gBAAkB,YACzFhzqB,EAAY,CACZz8U,KAAM6jlB,EAAW3vgB,QAAQ,EAAO52C,KAAMu/C,GAAO,CAAC,EAAGnqF,EAAM48/B,kBAAkB7z/B,GAAS,MAAM,GACxFA,OAAQA,EAAQ8M,QAAS7V,EAAM0g+B,WAAW7q9B,SAE9C7V,EAAM6oC,OAAOm4P,QAAQvpQ,IAAiBsyT,GAAW,SAAUwtqB,GACvD,GAAIA,EAAU/16B,OACVxhF,EAAMm9+B,iBACNn9+B,EAAMs4/B,oBAAoB,cACtBf,EAAU1h/B,QAAQ+yQ,UAAUh1P,SAAS28Y,MACrCvwa,EAAM61/B,kBAEV94B,IAAoB/89B,EAAM0g+B,WAAW7q9B,SACrC7V,EAAMu1/B,uBAAwB,MAE7B,CACD,IAAIzw1B,EAAU9kK,EAAM0g+B,WAAW7q9B,QAAQhP,MAAMi+J,QAE7C,GADA9kK,EAAM0g+B,WAAW7q9B,QAAQhP,MAAMi+J,QAAU,QACrC9kK,EAAM6oC,OAAOumrB,WACbpvtB,EAAM0g+B,WAAW7q9B,QAAQ4f,gBAAgB,SACzCz1B,EAAM0g+B,WAAW7q9B,QAAQhP,MAAMi+J,QAAU,QACzC9kK,EAAM0g+B,WAAW7q9B,QAAQhP,MAAMyiJ,OAAS8kL,GAA0B,kBAAd+iR,EAAiC,GAAKz/jB,OAAOi0O,iBAEhG,CACD,IAAI8iY,EAAkBzooB,EAAM6oC,OAAO2h8B,qBAAuBxq+B,EAAM6oC,OAAO2h8B,oBAAoBwhB,qBACnFv/qB,GAAkBt2O,GAAQptF,EAAQ,IAAMwna,MAC5CyslB,EAAWh9/B,EAAM6oC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,IAAyB,UACjFvwa,EAAM0g+B,WAAWztoB,QAAUw1S,IAAoBzooB,EAAM6oC,OAAOkwT,UAAagkoB,IAAmBigC,GAAY,GAAM,GAC9Gh9/B,EAAM0g+B,WAAWxtoB,QAAUlzV,EAAM6oC,OAAO2h8B,sBAAwBxq+B,EAAM6oC,OAAO2h8B,oBAAoBwhB,mBAC7Fhs/B,EAAM0g+B,WAAWxtoB,QAAU,EAC/BlzV,EAAM0g+B,WAAW1klB,UAAY,CAAEl6X,EAAG9hB,EAAM6oC,OAAOkwT,UAAY,OAAS,OAAQx5U,EAAG,OAC/Evf,EAAM0g+B,WAAW914B,SAAW,CAAE9oE,EAAG9hB,EAAM6oC,OAAOkwT,UAAY,OAAS,QAASx5U,EAAGvf,EAAM6oC,OAAOkwT,UAAY,SAAW,OACnH/4V,EAAM0g+B,WAAW5zoB,WACjB9sV,EAAM0g+B,WAAWpmlB,gBAAgB,MAAM,GACvC,IAAI2gU,EAAU7iU,GAAUp4Y,EAAM0g+B,WAAW7q9B,QAAS7V,EAAM6oC,OAAOhzB,SAC/D,GAAIolsB,EAAQ5vsB,QAAQrL,EAAM6oC,OAAOkwT,UAAY,OAAS,UAAY,EAC9D/4V,EAAM0g+B,WAAWztoB,SAAWlqV,EAAO8nQ,YAAc,GAAK7wQ,EAAM0g+B,WAAW7q9B,QAAQg7P,YAC3E43X,IAAoBzooB,EAAM6oC,OAAOkwT,YACjC/4V,EAAM0g+B,WAAWztoB,QAAU8poB,IAAmBigC,GAAYh9/B,EAAM0g+B,WAAWztoB,SAE/EjzV,EAAM0g+B,WAAW5zoB,WACjB9sV,EAAM0g+B,WAAWpmlB,gBAAgB,MAAM,GACrBlC,GAAUp4Y,EAAM0g+B,WAAW7q9B,QAAS7V,EAAM6oC,OAAOhzB,SACnDxK,QAAQ,SAAW,IAC/BrL,EAAM0g+B,WAAW914B,SAAW,CAAE9oE,EAAG,SAAUvC,EAAG,UAC9Cvf,EAAM0g+B,WAAW1klB,UAAY,CAAEl6X,EAAG,MAAOvC,EAAG,OAC5Cvf,EAAM0g+B,WAAWztoB,SAAYjzV,EAAM0g+B,WAAW7q9B,QAAQg7P,YAAc,EACpE7wQ,EAAM0g+B,WAAW5zoB,YAGzB,GAAI9sV,EAAM6oC,OAAO2h8B,sBAAwBxq+B,EAAM6oC,OAAO2h8B,oBAAoBwhB,qBAAuB/wS,EAAQ5vsB,QAAQ,QAAU,GAAK4vsB,EAAQ5vsB,QAAQ,WAAa,GAAI,CAC7J,IAAI4x/B,EAAalgC,IAAmBigC,GACpCh9/B,EAAM0g+B,WAAWxtoB,QAAU+pqB,EAC3Bj9/B,EAAM0g+B,WAAW5zoB,WACjB9sV,EAAM0g+B,WAAWpmlB,gBAAgB,MAAM,EAC3C,CACA,GAAoC,WAAhCt6Y,EAAM0g+B,WAAW914B,SAAS9oE,GAAkD,WAAhC9hB,EAAM0g+B,WAAW914B,SAASrrE,IAAmBktT,GAAkBy7B,IAC3GA,EAAcnuU,SAAWmuU,EAAcluU,QAAS,CAChD,IAAID,EAAUmuU,EAAcnuU,QACxBC,EAAUkuU,EAAcluU,QACxBkj+B,EAAan0/B,EAAOosR,wBACpB+9D,EAAUgV,EAAchV,SAAW5uV,KAAKC,KAAKy1B,EAAUkj+B,EAAWri/B,GAClEsi/B,EAAiBn9/B,EAAM0g+B,WAAWxtoB,QAClC8oD,EAAY5D,GAAUp4Y,EAAM0g+B,WAAW7q9B,QAAS9M,GAChDqsY,EAAYp1Y,EAAM0g+B,WAAW7q9B,QAAQs/Q,wBACrC0gO,EAAYjke,SAAS6xU,iBAAiB1pU,EAASC,IAC/CgiX,EAAU3wY,QAAQ,QAAU,GAAK2wY,EAAU3wY,QAAQ,WAAa,GAAK8qF,GAAQ0/Z,EAAW,IAAMtlF,QAC1Fn7B,EAAUxmP,KAAO50H,GACjBA,GAAWo7W,EAAUxmP,IAAMwmP,EAAU9rP,QACrCtpJ,EAAM0g+B,WAAWxtoB,QAAUiqqB,EAAiB/nnB,EAAU9rP,OAAS,GAC/DtpJ,EAAM0g+B,WAAW5zoB,YACjBkvD,EAAY5D,GAAUp4Y,EAAM0g+B,WAAW7q9B,QAAS7V,EAAM6oC,OAAOhzB,UAC/CxK,QAAQ,QAAU,IAC5BrL,EAAM0g+B,WAAWxtoB,QAAUiqqB,EAAiBjqqB,EAAU,GACtDlzV,EAAM0g+B,WAAW5zoB,aAGhBsrD,GAAUp4Y,EAAM0g+B,WAAW7q9B,QAAS7V,EAAM6oC,OAAOhzB,SAASxK,QAAQ,WAAa,IACpFrL,EAAM0g+B,WAAWxtoB,QACbiqqB,EAAiBjqqB,EAAU5uV,KAAKC,KAAK6wY,EAAU9rP,QAAU,GAC7DtpJ,EAAM0g+B,WAAW5zoB,YAG7B,CACJ,CACIiwqB,GACA/8/B,EAAMo9/B,kBAEVp9/B,EAAM0g+B,WAAW7q9B,QAAQhP,MAAMi+J,QAAUA,EACzC9kK,EAAM0g+B,WAAW5zoB,WACjB9sV,EAAM0g+B,WAAW35qB,MACrB,CACJ,GACJ,GACJ,EACAuusB,EAAYjk/B,UAAU+r/B,gBAAkB,WACpC,IAAIC,EAAa,GAEbA,EAD4B,WAA5B38/B,KAAKmoC,OAAOw/W,aAAwD,gBAA5B3nZ,KAAKmoC,OAAOw/W,YACvC3nZ,KAAKmoC,OAAOkwT,UAAY,qBAAuB,oBAG/C,mBAEjB,IAAI5hO,EAAQz2H,KAAKmoC,OAAOoi8B,gBAAgBp19B,QAAQhP,MAAMw2/B,GACtD,GAAc,KAAVlm4B,EAAJ,CAGA,IAAImm4B,EAAW58/B,KAAKgg+B,WAAW7q9B,QAAQykB,cAAc,IAAMi2Y,KACvD6rG,EAAY17gB,KAAKgg+B,WAAW7q9B,QAAQykB,cAAc,IAAMi2Y,KACxD6rG,GAAaA,EAAUtoP,eACvBwpuB,EAAW58/B,KAAKgg+B,WAAW7q9B,QAAQykB,cAAc,IAAMi2Y,QAEnD+slB,EAASz2/B,MAAM02/B,gBAAkBpm4B,EACjCA,EAAQ,QAAUA,EAAMt/G,MAAM,QAAQnR,OAAS,SAGnD42/B,IACAA,EAASz2/B,MAAMy3d,gBAAkBnnW,EAXrC,CAaJ,EACAm+3B,EAAYjk/B,UAAUuk/B,eAAiB,WACnC,GAAIl1/B,KAAKmoC,OAAOumrB,WACZ1utB,KAAKgg+B,WAAW7q9B,QAAQhP,MAAM+nJ,IAAM,WAGxC,GAAIluJ,KAAKgg+B,WAAW7q9B,QAAQykB,cAAc,IAAMi2Y,KAAuB,CACnE,IAAIs5kB,EAAiBnp/B,KAAKgg+B,WAAW7q9B,QAAQykB,cAAc,IAAMi2Y,KAC7Ds5kB,GACAA,EAAe/++B,OAEvB,KACK,CACD,IAAIg+kB,EAAcpolB,KAAKgg+B,WAAW7q9B,QAAQykB,cAAc,IAAMi2Y,KAC1Du4K,GACAA,EAAYh+kB,QAEhB,IAAIs5zB,EAAW1j0B,KAAKgg+B,WAAW7q9B,QAAQykB,cAAc,IAAMi2Y,KACvD6zZ,GACAA,EAASt5zB,OAEjB,CACJ,EACAwq/B,EAAYjk/B,UAAUwk/B,gBAAkB,WACpCn1/B,KAAKmoC,OAAOu87B,UAAUv0V,eACtBnwoB,KAAKgg+B,WAAW9llB,SAAW,IAAM21B,IACjC7va,KAAK80/B,eAAeH,iBAChB30/B,KAAKgg+B,WAAW7q9B,QAAQ3E,iBAAiB,oBAAoBpN,QAC7DpD,KAAK80/B,eAAe192B,UAExBp3I,KAAK43/B,oBAAoB,cACzBv7B,IAAoBr89B,KAAKgg+B,WAAW7q9B,QACxC,EACAy/+B,EAAYjk/B,UAAU0k/B,cAAgB,WAClC,GAAIr1/B,KAAKmoC,OAAOumrB,WAIZ,OAHA1utB,KAAK4q+B,UAAUz19B,QAAQhP,MAAM+nJ,IAAM,MACnCluJ,KAAK4q+B,UAAUz19B,QAAQhP,MAAMw9H,KAAO,WACpC3jI,KAAK4q+B,UAAUz19B,QAAQhP,MAAMyiJ,OAAS8kL,GAAW18S,OAAOi0O,cAG5DjlQ,KAAK4q+B,UAAUz19B,QAAQykB,cAAc,IAAMi2Y,KAAkCzla,QAC7EpK,KAAK4q+B,UAAUhxlB,iBACnB,EACAg7mB,EAAYjk/B,UAAU2k/B,eAAiB,WACnC,IAAI/C,EAAcvy/B,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KACtD0ilB,GACAp/9B,GAAOo/9B,EAEf,EACAqC,EAAYjk/B,UAAUsohB,WAAa,SAAUligB,GACzC/2B,KAAKq7/B,YAActk+B,EACnB/2B,KAAK2ib,cAAe,EACpB3ib,KAAKy8+B,gBAAe,EACxB,EACAmY,EAAYjk/B,UAAU8r+B,eAAiB,SAAUhgmB,GAC7C,IAAIn9Y,EAAQU,KACZ,GAAKA,KAAKgg+B,WAAW7q9B,QAAQ+yQ,UAAUh1P,SAAS28Y,KAAhD,CAGA,IACIitlB,EADAC,EAAc/8/B,KAAKgg+B,WAAW7q9B,QAAQykB,cAAc,IAAMi2Y,KAE9D,GAAIktlB,EAAa,CACb,IAAIC,EAAgBh9/B,KAAKgg+B,WAAW7q9B,QAAQykB,cAAc,oBAC1D,GAAI55B,KAAK2ib,cAAgBq6kB,IACpBA,EAAchwqB,cAAc,GAAG8I,WAChC,OAEJ,IAAI3iI,EAASnzN,KAAKmoC,OAAOw+7B,YACrB+rB,EAAU1y/B,KAAKmoC,OAAO617B,YAAYi/B,sBAAsBptlB,KAC5D7va,KAAKmoC,OAAO617B,YAAY21B,wBAAwBjB,GAChDA,EAAQv/xB,EAAOh9L,IAAMn2B,KAAKmoC,OAAOu87B,UAAUmY,gBAC3C6V,EAAQv/xB,EAAOp8C,WAAa/2K,KAAKmoC,OAAOu17B,gBAAgB3mzB,UACxD270B,EAAQv/xB,EAAOu5K,SAAW1sY,KAAKmoC,OAAOu17B,gBAAgBhxlB,QACtDgmnB,EAAQv/xB,EAAO4qwB,UAAY/99B,KAAKmoC,OAAOu17B,gBAAgBK,SACnD/99B,KAAKmoC,OAAOyh8B,cACZ5p+B,KAAKmoC,OAAOyh8B,aAAagqB,kBAAkBlB,GAE/CoK,EAAYpK,CAChB,MAEIoK,EAAY98/B,KAAKmoC,OAAOoi8B,gBAAgBxz8B,MAE5C,IAAIsl+B,EAAer8/B,KAAKgg+B,WAAW7q9B,QAAQykB,cAAc,IAAMi2Y,KAC3D52Z,EAAO,CACP8d,MAAO/2B,KAAKq7/B,YACZzu/B,KAAM5M,KAAKmoC,OAAOumrB,WAAa2tS,EAAe,gBAAkB,gBAAkB,YAClFv76B,QAAQ,EAAO52C,KAAM4y9B,EAAW3n/B,QAASnV,KAAKgg+B,WAAW7q9B,QACzD9M,OAAS00/B,EAAc/8/B,KAAKmoC,OAAOu17B,gBAAgBvo9B,QAAUnV,KAAKmoC,OAAOoi8B,gBAAgBp19B,SAE7FnV,KAAKmoC,OAAOm4P,QAAQvpQ,IAAkB9d,GAAM,SAAUmj/B,GAClD,IAAKA,EAAet76B,QACZxhF,EAAM0g+B,WAAW7q9B,QAAQ+yQ,UAAUh1P,SAAS,gBAAiB,CAK7D,GAJI6p+B,GAAez9/B,EAAMqjb,eACrBrjb,EAAM6oC,OAAOk2hB,cAAgB,MAC7B/+jB,EAAM6oC,OAAOo47B,WAAWszB,SAASuI,EAAely9B,OAEhDuyW,EAAe,CACf,IAAIttP,EAAY7vJ,EAAM0g+B,WAAWvjlB,cACjCn9Y,EAAM0g+B,WAAWvjlB,cAAgB,KACjCn9Y,EAAM0g+B,WAAWzisB,OACjBj+R,EAAM0g+B,WAAWvjlB,cAAgBttP,CACrC,MAEI7vJ,EAAM0g+B,WAAWzisB,OAErBj+R,EAAMu1/B,uBAAwB,EAC9Bv1/B,EAAMqjb,cAAe,CACzB,CAER,GAnDA,CAoDJ,EACAiykB,EAAYjk/B,UAAU8k/B,gBAAkB,SAAUp1/B,GAE9C,IAAK0rU,GADat2O,GAAQp1F,EAAEgI,OAAQ,IAAMwna,MACL,CACjC,IAAI3va,EAAOF,KAAKmoC,OAAO677B,mBAAmB3j+B,EAAE86B,eACvC4wS,GAAkB7rU,KACnBF,KAAKw1/B,WAAWn1/B,GAChBL,KAAKmoC,OAAO8jT,cAAc,CAAEi8D,aAAchoZ,IAAQ,GAClDF,KAAKmoC,OAAOk17B,WAAWr99B,KAAKmoC,OAAO877B,kBAAmB5j+B,GAE9D,CACJ,EACAu0/B,EAAYjk/B,UAAU688B,cAAgB,SAAUnt9B,GAC5C,IAAIgI,EAAShI,EAAE02B,MAAM1uB,OACjBpI,EAAa,IAAM4va,IAA0B,KAAOA,IAAyB,KAAOA,IACpF,KAAOA,IAAuB,KAAOA,IAAwB,YAC7DqtlB,EAAYl9/B,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,MACnDqtlB,GAAaA,EAAU/mkB,kBAAoB,IAAM1gW,GAAQptF,EAAQpI,KAAiBw1F,GAAQptF,EAAQpI,MACnGD,KAAKy8+B,iBACLz8+B,KAAKmoC,OAAOg19B,yBAEhB,IAAIC,EAAMp9/B,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KAC9CutlB,GAAOA,IAAQ/0/B,GAAUrI,KAAKmoC,OAAOo67B,aACrCvi+B,KAAKmoC,OAAOq67B,aAAahV,gBAEzB/33B,GAAQptF,EAAQ,IAAMwna,IAAwB,KAAOA,MACrD7va,KAAKmoC,OAAOg19B,wBAEX1n6B,GAAQptF,EAAQ,IAAMwna,OAAkCxna,EAAO6/Q,WAC/D7/Q,EAAO6/Q,UAAUh1P,SAAS28Y,MACtBp6U,GAAQptF,EAAQ,IAAMwna,MAAqBp6U,GAAQptF,EAAQ,IAAMwna,MACtE7va,KAAK4q+B,UAAUrtsB,MAEvB,EACAq3tB,EAAYjk/B,UAAUg69B,aAAe,SAAU5z8B,GACtCg1S,GAAkBh1S,KACnB/2B,KAAKq7/B,YAActk+B,GAEvB/2B,KAAKy8+B,iBACLz8+B,KAAKmoC,OAAOu87B,UAAUv0V,cAC1B,EACAykX,EAAYjk/B,UAAU2qB,iBAAmB,WACrCt7B,KAAKmoC,OAAO5uB,GAAGwd,IAAiB/2B,KAAK8s9B,UAAW9s9B,MAChDA,KAAKmoC,OAAO5uB,GAAGwd,IAAkB/2B,KAAKit9B,WAAYjt9B,MAClDA,KAAKmoC,OAAO5uB,GAAGwd,IAAqB/2B,KAAKwt9B,cAAext9B,MACxDA,KAAKmoC,OAAO5uB,GAAGwd,IAAiB/2B,KAAKu7/B,uBAAwBv7/B,KACjE,EACA40/B,EAAYjk/B,UAAUyqB,oBAAsB,WACxCp7B,KAAKmoC,OAAO3uB,IAAIud,IAAiB/2B,KAAK8s9B,WACtC9s9B,KAAKmoC,OAAO3uB,IAAIud,IAAkB/2B,KAAKit9B,YACvCjt9B,KAAKmoC,OAAO3uB,IAAIud,IAAqB/2B,KAAKwt9B,eAC1Cxt9B,KAAKmoC,OAAO3uB,IAAIud,IAAiB/2B,KAAKu7/B,uBAC1C,EACA3G,EAAYjk/B,UAAUin/B,oBAAsB,SAAU71vB,GAGlD,IAFA,IAAIK,EAAsB,eAAdL,EAA6B/hQ,KAAKgg+B,WAAahg+B,KAAK4q+B,UAEvDt79B,EAAK,EAAG+t/B,EADO,GAAGzs/B,MAAMjR,KAAKyiQ,EAAMjtP,QAAQ3E,iBAAiB,qBACXlB,EAAK+t/B,EAAoBj6/B,OAAQkM,IAAM,CAC7F,IACIoI,EADS2l/B,EAAoB/t/B,GACX09U,cAAc,GAChCt1U,GACAA,EAAS0/H,SAEjB,CACJ,EACAw92B,EAAYjk/B,UAAU2s/B,mBAAqB,WACvCt9/B,KAAKu9/B,qBACLv9/B,KAAKi1/B,mBACT,EACAL,EAAYjk/B,UAAU6s/B,kBAAoB,WACtCx9/B,KAAKy9/B,oBACLz9/B,KAAK+0/B,kBACT,EACAH,EAAYjk/B,UAAU+s/B,iBAAmB,WACrC19/B,KAAK29/B,mBACL39/B,KAAKg1/B,iBACT,EACAJ,EAAYjk/B,UAAU4s/B,mBAAqB,WACnCv9/B,KAAK61/B,YAAY1g/B,UACjBnV,KAAK61/B,YAAYz+2B,UACjBjkH,GAAOnzB,KAAK61/B,YAAY1g/B,SACxBnV,KAAK61/B,YAAc,KAE3B,EACAjB,EAAYjk/B,UAAU8s/B,kBAAoB,WAClCz9/B,KAAKgg+B,WAAW7q9B,UAChBnV,KAAK43/B,oBAAoB,cACzB53/B,KAAKgg+B,WAAW5o1B,UAChBjkH,GAAOnzB,KAAKgg+B,WAAW7q9B,SACvBnV,KAAKgg+B,WAAa,KAE1B,EACA40B,EAAYjk/B,UAAUgt/B,iBAAmB,WACjC39/B,KAAK4q+B,UAAUz19B,UACfnV,KAAK43/B,oBAAoB,aACzB53/B,KAAK4q+B,UAAUxz1B,UACfjkH,GAAOnzB,KAAK4q+B,UAAUz19B,SACtBnV,KAAK4q+B,UAAY,KAEzB,EACAgqB,EAAYjk/B,UAAUymI,QAAU,WACxBp3I,KAAKgg+B,WAAW7q9B,QAAQ3E,iBAAiB,oBAAoBpN,QAC7DpD,KAAK80/B,eAAe192B,UAExBp3I,KAAKo7B,sBACLp7B,KAAKy9/B,oBACLz9/B,KAAK29/B,mBACL39/B,KAAKu9/B,qBACLv9/B,KAAKq7/B,YAAc,KACnBr7/B,KAAKmoC,OAAS,KACdnoC,KAAK+zZ,KAAO,KACZ/zZ,KAAK2ib,aAAe,KACpB3ib,KAAK80/B,eAAiB,KACtB90/B,KAAK60/B,sBAAwB,IACjC,EACOD,CACX,CA72CiC,GCN7BgJ,IAA8B,WAC9B,SAASA,EAAaz19B,GAClBnoC,KAAKmoC,OAASA,EACdnoC,KAAKw3iB,WAAa,IAAItwQ,IAAQ,CAC1B/3I,UAAW,CAAE3T,MAAO,CAAEw4D,OAAQ,YAC9Bj/L,QAAS,WACTm1E,SAAU,cACVsoQ,QAAS,GACTg4M,YAAYxqiB,KAAKmoC,OAAOumrB,WACxB7iL,gBAAgB,EAChBj8L,SAAU5vW,KAAKmoC,OAAOynU,SAAZ5vW,4BACVqI,OAAQrI,KAAK69/B,aACb7uc,aAAchvjB,KAAK89/B,eAAej+/B,KAAKG,MACvC6mI,YAAa7mI,KAAK+9/B,cAAcl+/B,KAAKG,MACrCq4V,UAAWr4V,KAAKmoC,OAAOkwT,UACvB00F,oBAAqB/sb,KAAKmoC,OAAO4kZ,sBAErC/sb,KAAKw3iB,WAAW9+M,SAAS14V,KAAKmoC,OAAOhzB,QACzC,CAmHA,OAlHAyo/B,EAAajt/B,UAAUkt/B,WAAa,WAChC,IAAIhrL,EAAU,GAOd,OANI7y0B,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAM0/6B,uBACpCnrL,EAAQzm0B,KAAK,IAAMyja,KAEnB7va,KAAKmoC,OAAOi07B,cAAc6hC,eAC1BprL,EAAQzm0B,KAAK,IAAMyja,KAEhBgja,EAAQ7s0B,KAAK,IACxB,EACA43/B,EAAajt/B,UAAUmt/B,eAAiB,SAAU7k/B,GAC9C,GAAK8yT,GAAkB9yT,EAAK5Q,OAAOiqB,aAAa,oBAAhD,CAGA,GAAIrZ,EAAK5Q,OAAO6/Q,UAAUh1P,SAAS28Y,MAA6B7va,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,EAAG,CACtH,IAAI86/B,OAAgB,EACpB,GAAIl+/B,KAAKmoC,OAAOyz7B,WAAWgJ,iBAAkB,CACzC,IAAIn48B,EAAQF,SAAStT,EAAK5Q,OAAOiqB,aAAa,oBAAqB,IACnE4r+B,EAAgBl+/B,KAAKmoC,OAAOyh8B,aAAaC,kBAAkBt98B,SAASE,EAAM3V,WAAY,IAC1F,KACK,CACD,IAAI65jB,EAAW13jB,EAAK5Q,OAAOmsB,WAAW8z8B,gBAClCnyW,EAAYl9mB,EAAK5Q,OAAO8tnB,UAC5B+nY,EACIl+/B,KAAKmoC,OAAOyz7B,WAAWuiC,kBAAkB5x+B,SAASokjB,EAAS75jB,WAAY,KAAKyV,SAAS4pmB,EAAUr/mB,WAAY,IACnH,CACA,IAAIozB,EAAO,CACPigwB,SAAU+zN,EAAc/zN,SACxBotM,aAAc2mB,EAAc3mB,cAE5BtxT,EAAmBnlrB,GAAc,OACjCqsW,EAAantW,KAAKmoC,OAAOhzB,QAAQghB,GAAK,yBAK1C,OAHA68F,GADsB,GAAGpiH,MAAMjR,KAAKK,KAAKmoC,OAAOi29B,0BAAZp+/B,CAAuCkqC,EAAMlqC,KAAKmoC,OAAQ,wBAAyBglU,GAAY,IAC3G84U,GACxBjmrB,KAAK+iT,WAAWkjY,QAChBjmrB,KAAKmoC,OAAOukf,iBAEhB,CACA,IAAIv1G,EAASn3a,KAAKmoC,OAAOu87B,UAAUuC,eAAehu9B,EAAK5Q,OAAOiqB,aAAa,cAC3E,IAAIy5S,GAAkBorG,GAAtB,CAGA,GAAKprG,GAAkB/rU,KAAKmoC,OAAOi07B,cAAciiC,iBAO5C,CACD,IAAI96mB,EAAYvjZ,KAAKmoC,OAAOo7W,UACxBpwL,EAASnzN,KAAKmoC,OAAOw+7B,YACrB23B,EAAa,IAAI78/B,KAAK,GAAK01a,EAAOhkN,EAAOp8C,YACzCwn1B,EAAW,IAAI98/B,KAAK,GAAK01a,EAAOhkN,EAAOu5K,UAC3C6xnB,EAAoC,IAAxBA,EAASp7+B,YAA8C,IAA1Bo7+B,EAASn7+B,aAAsB,IAAI3hB,KAAK88/B,EAAS/55B,iBAAiB,MAAS+55B,EACpH,IAAI3umB,EAAYyskB,IAAe,IAAI569B,KAAK,GAAK68/B,IACzCzumB,EAAUwskB,IAAe,IAAI569B,KAAK,GAAK88/B,IACvCC,EAAkBrnlB,EAAOhkN,EAAOmkP,UAAYt3c,KAAKmoC,OAAOi07B,cAAcjpwB,OAAOmkP,QAAQz2c,SAClFb,KAAKmoC,OAAOkje,UAAUtlK,YAAY,YACrCw/lB,EAAmBx5nB,GAAkBorG,EAAOhkN,EAAOx7L,WAAuC,GAA1Bw/Y,EAAOhkN,EAAOx7L,UAC9E8m+B,EAAiB,GACjBC,EAAqB,GACrBC,EAAmB,GACvBF,EAAiBl7mB,EAAU9jE,WAAW6+qB,EAAY,CAC9C1x/B,KAAM,OAAQqmU,SAAU,OAAQt3O,SAAU37F,KAAKmoC,OAAOm07B,oBAE1DoiC,EAAqBn7mB,EAAU9jE,WAAW6+qB,EAAY,CAClD1x/B,KAAM,OAAQqmU,SAAU,SAAUt3O,SAAU37F,KAAKmoC,OAAOm07B,oBAE5DqiC,EAAmBp7mB,EAAU9jE,WAAW8+qB,EAAU,CAC9C3x/B,KAAM,OAAQqmU,SAAU,SAAUt3O,SAAU37F,KAAKmoC,OAAOm07B,oBAE5DmiC,EAAiBpiC,IAAyBoiC,EAAgB,UAC1DC,EAAqBriC,IAAyBqiC,EAAoB,UAClEC,EAAmBtiC,IAAyBsiC,EAAkB,UAC9D,IAAI5n1B,EAAY/2K,KAAKmoC,OAAO4+8B,cAAcuX,GACtC5xnB,EAAU1sY,KAAKmoC,OAAO4+8B,cAAcwX,GAepCxp/B,EAAU,+BAAiCyp/B,EAAjC,iCACmBj5D,EADnB,iCAbV31iB,EAAUluZ,YAAcmuZ,EAAQnuZ,UAKf269B,IAHb94kB,EAAU9jE,WAAW6+qB,EAAY,CAC7B1x/B,KAAM,OAAQqmU,SAAU,OAAQt3O,SAAU37F,KAAKmoC,OAAOm07B,oBAEJ,UAGxC1skB,EAAUxvZ,gBAAkByvZ,EAAQzvZ,cAAkBq+/B,EAAiB,MAAQE,EAC5FD,EAAqB,MAAQC,GAIxB,iCAFKxnlB,EAAOhkN,EAAO4qwB,UAAa/99B,KAAKmoC,OAAOkje,UAAUtlK,YAAY,UAC3EhvL,EAAY,MAAQ21N,GAIqB,eAC9C1sY,KAAK+iT,WAAWhuS,EACpB,KAtDmE,CAC3DkxqB,EAAmBnlrB,GAAc,OACjCqsW,EAAantW,KAAKmoC,OAAOhzB,QAAQghB,GAAK,mBAE1C68F,GADsB,GAAGpiH,MAAMjR,KAAKK,KAAKmoC,OAAOy29B,yBAAZ5+/B,CAAsCm3a,EAAQn3a,KAAKmoC,OAAQ,kBAAmBglU,GAAY,IACtG84U,GACxBjmrB,KAAK+iT,WAAWkjY,EACpB,CAiDAjmrB,KAAKmoC,OAAOukf,iBAxDZ,CA5BA,CAqFJ,EACAkxe,EAAajt/B,UAAUot/B,cAAgB,WACnC/9/B,KAAKmoC,OAAO6ylB,eAAe,CAAC,kBAAmB,yBACnD,EACA4iY,EAAajt/B,UAAUoyS,WAAa,SAAUhuS,GAC1C/U,KAAKw3iB,WAAWvrN,cAAc,CAAEl3U,QAASA,IAAW,EACxD,EACA6o/B,EAAajt/B,UAAU6qI,MAAQ,WAC3Bx7I,KAAKw3iB,WAAWh8Z,OACpB,EACAoi3B,EAAajt/B,UAAUymI,QAAU,WAC7Bp3I,KAAKw3iB,WAAWpga,UAChBoxI,GAAS,CAACxoR,KAAKmoC,OAAOhzB,SAAU,aAChCnV,KAAKw3iB,WAAa,KAClBx3iB,KAAKmoC,OAAS,IAClB,EACOy19B,CACX,CAtIkC,GCR9B138B,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAazC2pS,IAA0C,SAAUxoJ,EAAYl/L,EAAQiE,EAAKkkB,GAC7E,IAA2HhvB,EAAvH6e,EAAIld,UAAUC,OAAQkgH,EAAIjjG,EAAI,EAAIhY,EAAkB,OAATmoB,EAAgBA,EAAO/wB,OAAOk+B,yBAAyBt1B,EAAQiE,GAAOkkB,EACrH,GAAuB,kBAAZuN,SAAoD,oBAArBA,QAAQiyT,SAAyB1sO,EAAIvlF,QAAQiyT,SAASzoJ,EAAYl/L,EAAQiE,EAAKkkB,QACpH,IAAK,IAAIrkB,EAAIo7L,EAAWnkM,OAAS,EAAG+I,GAAK,EAAGA,KAAS3K,EAAI+lM,EAAWp7L,MAAIm3G,GAAKjjG,EAAI,EAAI7e,EAAE8hH,GAAKjjG,EAAI,EAAI7e,EAAE6G,EAAQiE,EAAKg3G,GAAK9hH,EAAE6G,EAAQiE,KAASg3G,GAChJ,OAAOjjG,EAAI,GAAKijG,GAAK7jH,OAAO4c,eAAehU,EAAQiE,EAAKg3G,GAAIA,CAChE,EAWIu74B,IAAgB,kBAChBC,IAAoB,uBACpBC,IAAgB,mBAChBC,IAAiB,oBACjBC,IAAgB,aAChBC,IAAa,SACbC,IAAc,aAGdC,IAAsB,kBACtBC,IAAsB,0BACtBC,IAAwB,mBAExBC,IAAuB,2BACvBC,IAA+B,oCAC/BC,IAAW,cACXC,IAAY,eACZC,IAAkB,cAClBC,IAAqB,2BACrBC,IAAW,cACXC,IAAY,eACZC,IAAQ,WAMRC,IAAe,mBACfC,IAAY,gBACZC,IAAY,eACZC,IAAoB,iBACpBC,IAAa,qBACbC,IAAc,4BACdC,IAAW,QACXrvvB,IAAU,YACVmB,IAAS,WACTmuvB,IAAkB,qBAClBC,IAAgB,mBAEhBx80B,IAAO,OACPy80B,IAAQ,QACRC,IAAS,SACTC,IAAU,UACVC,IAAS,SACT/rzB,IAAQ,QACR6/xB,IAAQ,QACRmsB,IAAQ,QACRC,IAAY,OACZC,IAAa,QAEbC,IAAS,SAMTC,IAAY,QAOZC,IAAY,QACZC,IAAa,SACbC,IAAc,UACdC,IAAa,SACbC,IAAa,KACbC,IAAa,KACbC,IAAc,KACdC,IAAgB,KAChBC,IAAe,KACfC,IAAa,KACbC,IAAe,KAQfC,IAAQ,IACRz43B,IAAY,IAMZs7M,IAAc,CACdg7hB,KAAM,GACNoiJ,MAAO,OACPC,OAAQ,QACRC,QAAS,SACTC,OAAQ,SAERC,IAAY,CACZ,IAAOZ,IACP,IAAOC,IACP,IAAOC,IACP,IAAOC,IACP,IAAOC,IACP,IAAOC,IACP,IAAOC,KAEPO,IAAiB,CAACjD,IAAYC,IAAaY,IAAOd,IAAeG,IAAqBE,KACtF8C,IAAgB,CAACjD,KACjBkD,IAAiB,CAACnD,IAAYE,KAC9BkD,IAAgB,CAACpD,KACjBqD,IAAiB,CAACrD,IAAYC,IAAaC,IAAqBE,KAChEkD,IAAiB,CAACvC,IAAWE,KAC7BsC,IAAsB,CAACxC,KACvByC,IAAqB,CAACvC,KAatBwC,IAAkC,SAAU778B,GAQ5C,SAAS678B,EAAiB7j/B,EAAS3J,GAC/B,IAAI7V,EAAQwnD,EAAOnnD,KAAKK,KAAM8e,EAAS3J,IAAYnV,KA4CnD,OA1CAV,EAAMk1Y,cAAgB,CAClBkre,KAAM,OACNoiJ,MAAO,QACPC,OAAQ,SACRC,QAAS,UACT/4/B,MAAO,QACPg5/B,OAAQ,SACRW,MAAO,QACP1n5B,MAAO,QACPtwF,MAAO,QACPwnB,MAAO,QACPqtD,OAAQ,SACRoj6B,MAAO,QACPC,OAAQ,SACRzw9B,KAAM,OACNpa,OAAQ,SACR8q+B,YAAa,eACbxp/B,GAAI,YACJ6/B,IAAK,MACL4p9B,MAAO,MACP/t/B,KAAM,SACN3B,MAAO,UACP5S,OAAQ,WACRy/F,MAAO,UACP/V,MAAO,QACP646B,aAAc,UACdC,UAAW,KACXC,aAAc,QACdC,cAAe,UACfC,WAAY,SACZC,YAAa,UACbC,aAAc,WACdC,YAAa,UACbC,UAAW,aACXC,cAAe,iBACfC,cAAe,iBACfC,aAAc,gBACdppd,eAAgB,mBAEpBl7iB,EAAMukgC,cAAe,EACrBvkgC,EAAMwkgC,WAAa,GACnBxkgC,EAAMykgC,aAAe,GACdzkgC,CACX,CAq7BA,OA1+BA4mD,IAAUy88B,EAAkB778B,GAsD5B678B,EAAiBhy/B,UAAUqz/B,WAAa,SAAUnuR,EAAMouR,EAAOr0mB,GAC3D5vZ,KAAKkkgC,kBACLlkgC,KAAKmkgC,WAAWtuR,GAChB71uB,KAAKokgC,iBACLpkgC,KAAKqkgC,gBAAgBJ,GACrBjkgC,KAAKskgC,eAAe10mB,GACpB5vZ,KAAKukgC,gBAAgB30mB,GACrB5vZ,KAAKwkgC,WAAWv4qB,cAAc,CAAEngS,SAAS,GAC7C,EACA628B,EAAiBhy/B,UAAUmoV,UAAY,WACnC94V,KAAKqrgB,UAAY,IAAI9lK,GAAKvlW,KAAK+sV,gBAAiB/sV,KAAKw0Y,cAAex0Y,KAAKD,QACzEC,KAAKiu+B,aAAeC,IAAgBlu+B,KAAKsjZ,aAC7C,EACAq/mB,EAAiBhy/B,UAAU8z/B,iBAAmB,SAAU70pB,GAChDA,GACApnF,GAAS,CAACxoR,KAAKmV,SAAUy6V,EAASj9U,MAAM,KAEhD,EACAgw+B,EAAiBhy/B,UAAUk9J,WAAa,WACpC26G,GAAS,CAACxoR,KAAKmV,SAAU,KAAOnV,KAAK+sV,iBACrC/sV,KAAK0kgC,kBACA34rB,GAAkB/rU,KAAK4B,QAAyB,KAAf5B,KAAK4B,OAIlCmqU,GAAkB/rU,KAAK2kgC,WAAW/igC,SACnC5B,KAAKgkgC,WAAWhkgC,KAAK2kgC,WAAW/igC,MAAMkV,WAAWiL,cAAe8yL,IAAO70M,KAAK4vZ,WAC5E5vZ,KAAKmkgC,WAAWnkgC,KAAK2kgC,WAAW/igC,MAAMkV,aAEtC9W,KAAK4kgC,aAAe,GACpB5kgC,KAAKisV,cAAc,CAAErqV,MAAO5B,KAAK6kgC,sBAAuB,IAR5D7kgC,KAAK8kgC,kBAAkB9kgC,KAAK4B,OAWhC5B,KAAKykgC,iBAAiBzkgC,KAAK4vW,SAC/B,EACA+ypB,EAAiBhy/B,UAAU04iB,mBAAqB,WAC5C,IAAI/pjB,EAAQU,KACZ,GAAIA,KAAK6jgC,aAAc,CACnB,IAAIjigC,EAAQ5B,KAAK6kgC,oBACjB7kgC,KAAKsgS,QAAQ,SAAU,CAAE1+R,MAAOA,IAAS,SAAUqX,GAAQ,OAAO3Z,EAAM2sV,cAAc,CAAErqV,MAAOqX,EAAKrX,QAAS,EAAQ,GACzH,CACJ,EACA+ggC,EAAiBhy/B,UAAUo0/B,eAAiB,WACzB,GAAGn0/B,MAAMjR,KAAKK,KAAKmV,QAAQ3E,iBAAiB,IAAM0u/B,IAAa,YACrE74/B,SAAQ,SAAU8O,GAAW,OAAO8yQ,GAAY,CAAC9yQ,GAAU,CAACi9P,IAAQnB,KAAW,GAC5F,EACA0xvB,EAAiBhy/B,UAAUq0/B,aAAe,SAAUv2B,GAChDzu+B,KAAK+kgC,iBACL,IAAI9v/B,EAAO,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAC9BjV,KAAKilgC,YAAYhw/B,EAAMjV,KAAKiM,gBAC5B,IAAIkJ,EAAUnV,KAAKmV,QAAQykB,cAAc,IAAMsl+B,IAAa,uBAAyBjq/B,EAAKtK,QAAQ8j+B,GAAY,MAC1Gt59B,GACAqzQ,GAAS,CAACrzQ,GAAU,CAACi9P,IAAQnB,KAErC,EACA0xvB,EAAiBhy/B,UAAUu0/B,SAAW,SAAUzu3B,GACxCA,EACA+xI,GAAS,CAACxoR,KAAKmV,SAAUmr/B,KAGzBr4uB,GAAY,CAACjoR,KAAKmV,SAAUmr/B,IAEpC,EACAqC,EAAiBhy/B,UAAU4z/B,gBAAkB,SAAUrkgC,GACnD,IAAI6xZ,EAAW,IAAItwZ,KAAKvB,EAAKwB,WAC7BqwZ,EAASruZ,QAAQquZ,EAASzvZ,UAAY,IACtCtC,KAAKmlgC,aAAal5qB,cAAc,CAAErqV,MAAOmwZ,GAC7C,EACA4wmB,EAAiBhy/B,UAAU2z/B,eAAiB,SAAUpkgC,GAClD,IAAI2U,EAAU,CA9KN,MACA,MACC,MACE,MACD,MACF,MACE,OAyKV7U,KAAKolgC,UAAUn5qB,cAAc,CAAErqV,MAAO5B,KAAKiu+B,aAAa3r+B,QAAQpC,KAChEF,KAAKqlgC,cAAcp5qB,cAAc,CAAErqV,MAAOsggC,IAAUrt/B,EAAQ3U,EAAKyD,aACjE3D,KAAKgs+B,WAAW//oB,cAAc,CAAErqV,MAAO,GAAK5B,KAAKiu+B,aAAa9t+B,SAASD,KACvEF,KAAKslgC,aAAar5qB,cAAc,CAAErqV,MAAO5B,KAAKulgC,eAAerlgC,KAC7DF,KAAKglgC,aAAa9kgC,EAAKyD,SAC3B,EACAg//B,EAAiBhy/B,UAAUwz/B,WAAa,SAAU/8/B,GAC9C,IAAI9H,EAAQU,KACZA,KAAK2kgC,WAAW14qB,cAAc,CAAErqV,MAAOwF,IACvC,IAAIgyC,EAAMp5C,KAAKmV,QAAQykB,cAAc,IAAMmm+B,KAO3C,OANI34/B,IAAUq5/B,IACVv4uB,GAAU9uO,EAAK,CAACqm9B,KAAW,CAACC,MAG5Bx3uB,GAAU9uO,EAAK,CAACsm9B,KAAY,CAACD,MAEzBr4/B,GACJ,KAAK48K,IACDm+0B,IAAe97/B,SAAQ,SAAUtF,GAAa,OAAOynR,GAAS,CAAClpR,EAAM6V,QAAQykB,cAAc,IAAM74B,IAAas//B,IAAc,IAC5H,MACJ,KAAKK,IACD0B,IAAc/7/B,SAAQ,SAAUtF,GAAa,OAAOynR,GAAS,CAAClpR,EAAM6V,QAAQykB,cAAc,IAAM74B,IAAas//B,IAAc,IAC3H,MACJ,KAAKM,IACD0B,IAAeh8/B,SAAQ,SAAUtF,GAAa,OAAOynR,GAAS,CAAClpR,EAAM6V,QAAQykB,cAAc,IAAM74B,IAAas//B,IAAc,IAC5H,MACJ,KAAKO,IACD0B,IAAcj8/B,SAAQ,SAAUtF,GAAa,OAAOynR,GAAS,CAAClpR,EAAM6V,QAAQykB,cAAc,IAAM74B,IAAas//B,IAAc,IAC3H,MACJ,KAAKI,IACD8B,IAAel8/B,SAAQ,SAAUtF,GAAa,OAAOynR,GAAS,CAAClpR,EAAM6V,QAAQykB,cAAc,IAAM74B,IAAas//B,IAAc,IAGxI,EACAsC,EAAiBhy/B,UAAU0z/B,gBAAkB,SAAUj9/B,GACnD,IAAI9H,EAAQU,KAEZ,OADAA,KAAKk8xB,QAAQjwc,cAAc,CAAErqV,MAAOwF,IAC5BA,GACJ,KAAKytM,IACD2tzB,IAAen8/B,SAAQ,SAAUtF,GAAa,OAAOynR,GAAS,CAAClpR,EAAM6V,QAAQykB,cAAc,IAAM74B,IAAas//B,IAAc,IAC5H,MACJ,KAAK3rB,IACDguB,IAAmBr8/B,SAAQ,SAAUtF,GAAa,OAAOynR,GAAS,CAAClpR,EAAM6V,QAAQykB,cAAc,IAAM74B,IAAas//B,IAAc,IAChI,MACJ,KAAKQ,IACD4B,IAAoBp8/B,SAAQ,SAAUtF,GAAa,OAAOynR,GAAS,CAAClpR,EAAM6V,QAAQykB,cAAc,IAAM74B,IAAas//B,IAAc,IAG7I,EACAsC,EAAiBhy/B,UAAUyz/B,eAAiB,WACxC,IAAI9kgC,EAAQU,KACZwigC,IAAen8/B,SAAQ,SAAUtF,GAC7B,IAAIoU,EAAU7V,EAAM6V,QAAQykB,cAAc,IAAM74B,GAC5CoU,GACA8yQ,GAAY,CAAC9yQ,GAAUkr/B,IAE/B,GACJ,EACAsC,EAAiBhy/B,UAAUuz/B,gBAAkB,WACzC,IAAI5kgC,EAAQU,KACZmigC,IAAe97/B,SAAQ,SAAUtF,GAC7B,IAAIs0f,EAAc/1f,EAAM6V,QAAQykB,cAAc,IAAM74B,GAChDs0f,GACAptO,GAAY,CAACotO,GAAcgrgB,IAEnC,GACJ,EACAsC,EAAiBhy/B,UAAU60/B,gBAAkB,WACzC,IAAIlmgC,EAAQU,KAER6X,EAAO7X,KACXA,KAAK2kgC,WAAa,IAAI1pkB,GAAa,CAE/BnoB,WAAY9ya,KAAKylgC,gBACjBnonB,eAAgB,SAChBjlD,UAAWr4V,KAAKq4V,UAChB5rU,MAAOzsB,KAAK4kgC,aACZzxyB,OAAQ,CACJlzL,KAAM6g+B,IACNl//B,MAAOm//B,KAEXp97B,YAAa3jE,KAAKqrgB,UAAUtlK,YAAYi7pB,KACxC1qmB,eAAgB,CAAE,MAASt2Z,KAAKqrgB,UAAUtlK,YAAYi7pB,KAAS///B,KAAM,UACrEizF,OAAQ,SAAUj7E,GACdpB,EAAKo0U,cAAc,CAAE24qB,aAActlgC,EAAMomgC,YAAY/6/B,QAAQsO,EAAKrX,SAAU,GAC5EiW,EAAK1C,QAAQykB,cAAc,IAAM4m+B,KAAet39B,UAC5CrxB,EAAKwzf,UAAUtlK,YAAYrhB,IAAYzrU,EAAKrX,QAChDiW,EAAKqs/B,kBACLrs/B,EAAKss/B,WAAWlr/B,EAAKrX,OACrBiW,EAAK8t/B,kBACL9t/B,EAAKwxiB,oBACT,IAGJrpjB,KAAK2kgC,WAAWjsqB,SAAS14V,KAAKmV,QAAQykB,cAAc,IAAMml+B,MAC1D/+/B,KAAKk8xB,QAAU,IAAIjhW,GAAa,CAC5BnoB,WAAY9ya,KAAK4lgC,aACjBxvnB,WAAYp2Y,KAAK6lgC,gBACjBxtqB,UAAWr4V,KAAKq4V,UAChB5rU,MAAO,EACP0mM,OAAQ,CACJlzL,KAAM6g+B,IACNl//B,MAAOm//B,KAEXzqmB,eAAgB,CAAEr1Z,KAAM,UACxBizF,OAAQ,SAAUj7E,GACdpB,EAAKus/B,iBACLvs/B,EAAKws/B,gBAAgBpr/B,EAAKrX,OAC1BiW,EAAK8t/B,kBACL9t/B,EAAKwxiB,oBACT,IAEJrpjB,KAAKk8xB,QAAQxjc,SAAS14V,KAAKmV,QAAQykB,cAAc,IAAMom+B,MACvD,IAAI8F,EAAqB,SAAUC,GAC/B,OAAO,IAAI9qkB,GAAa,CACpBnoB,WAAYizlB,EACZ3vnB,WAAY92Y,EAAMumgC,gBAClBxtqB,UAAW/4V,EAAM+4V,UACjBllI,OAAQ,CACJlzL,KAAM6g+B,IACNl//B,MAAOm//B,KAEXzqmB,eAAgB,CAAEr1Z,KAAM,UACxBwrB,MAAO,EAEPynE,OAAQ,SAAUj7E,GACdpB,EAAKmu/B,UAAU/5qB,cAAc,CAAEngS,SAAS,IACxCj0C,EAAK8t/B,kBACL9t/B,EAAKwxiB,oBACT,GAER,EACArpjB,KAAKslgC,aAAeQ,EAAmB9lgC,KAAKimgC,mBAC5CjmgC,KAAKslgC,aAAa5sqB,SAAS14V,KAAKmV,QAAQykB,cAAc,IAAMim+B,MAC5D7//B,KAAKqlgC,cAAgBS,EAAmB9lgC,KAAKkmgC,WAAW,SACxDlmgC,KAAKqlgC,cAAc3sqB,SAAS14V,KAAKmV,QAAQykB,cAAc,IAAMkm+B,MAC7D9//B,KAAKgs+B,WAAa,IAAI/wiB,GAAa,CAC/BnoB,WAAY9ya,KAAKmmgC,eACjBhzyB,OAAQ,CACJlzL,KAAM6g+B,IACNl//B,MAAOm//B,KAEXzqmB,eAAgB,CAAEr1Z,KAAM,UACxBo3V,UAAWr4V,KAAKq4V,UAChB5rU,MAAO,EAEPynE,OAAQ,SAAUj7E,GACdpB,EAAK8t/B,kBACL9t/B,EAAKwxiB,oBACT,IAEJrpjB,KAAKgs+B,WAAWtzoB,SAAS14V,KAAKmV,QAAQykB,cAAc,IAAMyl+B,KAC9D,EACAsD,EAAiBhy/B,UAAUy1/B,gBAAkB,WAEzC,IADA,IACS92/B,EAAK,EAAG+2/B,EADC,GAAGz1/B,MAAMjR,KAAKK,KAAKmV,QAAQ3E,iBAAiB,iCAChBlB,EAAK+2/B,EAAcjjgC,OAAQkM,IAAM,CAC3E,IACIoI,EADU2u/B,EAAc/2/B,GACL09U,cAAc,GACjCt1U,EAASvC,QAAQ+yQ,UAAUh1P,SAAS8r+B,MACpCtn/B,EAAS9V,MAAQ,EACjB8V,EAAS00U,YAEJ10U,EAASvC,QAAQ+yQ,UAAUh1P,SAASkt+B,OACzC1o/B,EAAS9V,MAAQ,GACjB8V,EAAS00U,WAEjB,CACJ,EACAu2qB,EAAiBhy/B,UAAUg1/B,gBAAkB,WAEzC,IADA,IACSr2/B,EAAK,EAAGg3/B,EADM,GAAG11/B,MAAMjR,KAAKK,KAAKmV,QAAQ3E,iBAAiB,6BACXlB,EAAKg3/B,EAAmBljgC,OAAQkM,IAAM,CAC1F,IAAI6F,EAAUmx/B,EAAmBh3/B,GAC7BoI,OAAW,EACf,GAAIvC,EAAQ+yQ,UAAUh1P,SAAS,iBAC3Bxb,EAAWvC,EAAQ63U,cAAc,IACpBprV,OAET8V,EAAS9V,MAAQ8V,EAAS9V,MAC1B8V,EAAS00U,YAGTpsV,KAAKukgC,gBAAgBvkgC,KAAK4vZ,gBAG7B,GAAIz6Y,EAAQ+yQ,UAAUh1P,SAAS,mBAChCxb,EAAWvC,EAAQ63U,cAAc,IACxBvgU,MAAQ/U,EAAS+U,OAAS,EACnC/U,EAAS00U,gBAER,GAAIj3U,EAAQ+yQ,UAAUh1P,SAAS,oBAAqB,CAErD,IAAItxB,OAAQ,EAERA,GAHJ8V,EAAWvC,EAAQ63U,cAAc,IAEpB73U,QAAQ+yQ,UAAUh1P,SAAS8r+B,KAC5B,EAEHtn/B,EAASvC,QAAQ+yQ,UAAUh1P,SAASkt+B,KACjC,GAGApggC,KAAK4vZ,UAAUttZ,UAE3BoV,EAAS9V,MAAQ8V,EAAS9V,OAASA,EACnC8V,EAAS00U,UACb,CACJ,CACJ,EACAu2qB,EAAiBhy/B,UAAUk1/B,cAAgB,WACvC,OAAO5+qB,GAAQM,SAAW,OAAS,MACvC,EACAo7qB,EAAiBhy/B,UAAU41/B,kBAAoB,WAE3C,IAAI1u/B,EAAO7X,KACXA,KAAKmlgC,aAAe,IAAI/7nB,GAAW,CAC/Bn9X,eAAgBjM,KAAKiM,eACrBosV,UAAWr4V,KAAKq4V,UAChBt4V,OAAQC,KAAKD,OACb6pD,IAAK5pD,KAAKu9X,QACVtwV,IAAKjtC,KAAKw9X,QACVn4W,OAAS0mT,GAAkB/rU,KAAKsvG,YAActvG,KAAKw1qB,UAAU,eAAiBx1qB,KAAKsvG,WACnFpb,OAAQ,SAAUj7E,GACVA,EAAKrX,OACLiW,EAAKwxiB,oBAEb,IAEJrpjB,KAAKmlgC,aAAazsqB,SAAS14V,KAAKmV,QAAQykB,cAAc,IAAMsm+B,KAChE,EACAyC,EAAiBhy/B,UAAU6kqB,UAAY,SAAUg1G,GAQ7C,MANoB,OAAhBxqxB,KAAKD,QAAmC,UAAhBC,KAAKD,OACpB8a,GAAS2vwB,EAAa,SAAUlqc,GAAqBtgV,KAAKs89B,oBAG1Dzh9B,GAAS,QAAe7a,KAAKD,OAAS,oBAAsBC,KAAKs89B,kBAAoB,IAAM9xM,EAAa,SAAUzrc,GAGnI,EACA4jrB,EAAiBhy/B,UAAU61/B,gBAAkB,WAKzC,IAJA,IAAIlngC,EAAQU,KACRymgC,EAAO,GAAG71/B,MAAMjR,KAAKK,KAAKmV,QAAQ3E,iBAAiB,IAAM0u/B,IAAa,YAEtErn/B,EAAO7X,KACFsP,EAAK,EAAGo3/B,EAASD,EAAMn3/B,EAAKo3/B,EAAOtjgC,OAAQkM,IAAM,CACtD,IAAIiwgB,EAAMmnf,EAAOp3/B,GACbiqB,EAAS,IAAIuqP,GAAO,CAAEwmL,UAAU,EAAMjyG,UAAWr4V,KAAKq4V,WAAaknL,GACvEv/gB,KAAK8jgC,WAAW13/B,KAAKmtB,GACrBs/M,GAAazlN,IAAImsf,EAAK,SAAS,SAAUtmgB,GACrC,IAAIwt/B,EAAO,GAAG71/B,MAAMjR,KAAKL,EAAM6V,QAAQ3E,iBAAiB,IAAM0u/B,IAAa,WAAajuvB,MACpF97P,EAAU8D,EAAK5Q,OACd8M,EAAQ+yQ,UAAUh1P,SAAS+9O,KAIvBw1vB,EAAKrjgC,OAAS,IACnB6kR,GAAY,CAAC9yQ,GAAU87P,KACvBp5P,EAAKwxiB,uBALL7gS,GAAS,CAACrzQ,GAAU87P,KACpBp5P,EAAKwxiB,qBAMb,GACJ,CACJ,EACAs5c,EAAiBhy/B,UAAUg2/B,kBAAoB,WAE3C,IAAI9u/B,EAAO7X,KACXA,KAAKwkgC,WAAa,IAAItva,IAAY,CAC9B9mT,MAAOpuS,KAAKqrgB,UAAUtlK,YA3cjB,SA4cL1N,UAAWr4V,KAAKq4V,UAChB3zV,KAAM,YACN9C,MAAO,MACPsyF,OAAQ,WACJr8E,EAAK8t/B,kBACL9t/B,EAAKwxiB,oBACT,IAEJrpjB,KAAKwkgC,WAAW9rqB,SAAS14V,KAAKmV,QAAQykB,cAAc,IAAM2l+B,MAC1Dv//B,KAAK+jgC,aAAa33/B,KAAKpM,KAAKwkgC,YAC5BxkgC,KAAKgmgC,UAAY,IAAI9wa,IAAY,CAC7B9mT,MAAOpuS,KAAKqrgB,UAAUtlK,YAAY,iBAClC6J,SAAU,eACVlrW,KAAM,YACN2zV,UAAWr4V,KAAKq4V,UAChBz2V,MAAO,SACPsyF,OAAQ,WACJr8E,EAAK8t/B,kBACL9t/B,EAAKwxiB,oBACT,IAEJrpjB,KAAKgmgC,UAAUttqB,SAAS14V,KAAKmV,QAAQykB,cAAc,IAAMgm+B,MACzD5//B,KAAK+jgC,aAAa33/B,KAAKpM,KAAKgmgC,UAChC,EACArD,EAAiBhy/B,UAAUi2/B,qBAAuB,WAE9C,IAAI/u/B,EAAO7X,KACXA,KAAK6mgC,gBAAkB,IAAIlyiB,IAAe,CACtC/yd,MAAO,GACPyjB,OAAQ,IACRgzU,UAAWr4V,KAAKq4V,UAChBzuS,IAAK,EACL3c,IAAK,IACLinD,OAAQ,WACJr8E,EAAKwxiB,oBACT,IAEJrpjB,KAAK6mgC,gBAAgBnuqB,SAAS14V,KAAKmV,QAAQykB,cAAc,IAAMwm+B,MAC/DpggC,KAAKolgC,UAAY,IAAIzwiB,IAAe,CAChC/yd,MAAO,EACPyjB,OAAQ,IACRgzU,UAAWr4V,KAAKq4V,UAChBzuS,IAAK,EACL3c,IAAK,GACLinD,OAAQ,WACJr8E,EAAK2s/B,WAAWv4qB,cAAc,CAAEngS,SAAS,IACzCj0C,EAAKwxiB,oBACT,IAEJrpjB,KAAKolgC,UAAU1sqB,SAAS14V,KAAKmV,QAAQykB,cAAc,IAAM+l+B,MACzD3//B,KAAKw6iB,eAAiB,IAAI7lF,IAAe,CACrC/yd,MAAO,EACPyjB,OAAQ,IACRukC,IAAK,EACL3c,IAAK,IACLorT,UAAWr4V,KAAKq4V,UAChBilD,eAAgB,SAChB35U,YAAa3jE,KAAKqrgB,UAAUtlK,YAxgBtB,eAygBN7xQ,OAAQ,WACJr8E,EAAKwxiB,oBACT,IAEJrpjB,KAAKw6iB,eAAe9hN,SAAS14V,KAAKmV,QAAQykB,cAAc,IAAMol+B,KAClE,EACA2D,EAAiBhy/B,UAAU+z/B,gBAAkB,WACzC1kgC,KAAK2/gB,cACL3/gB,KAAKwlgC,kBACLxlgC,KAAKumgC,oBACLvmgC,KAAKwmgC,kBACLxmgC,KAAK2mgC,oBACL3mgC,KAAK4mgC,sBACT,EACAjE,EAAiBhy/B,UAAUs0/B,YAAc,SAAU/69B,EAAMtf,GAErD,IADA,IAAI8hE,EACKjgE,EAAQ,EAAGA,EAAQ7B,EAAO6B,IAC/BigE,EAAOxiD,EAAKoP,QACZpP,EAAK99B,KAAKsgF,EAElB,EACAi26B,EAAiBhy/B,UAAUi1/B,WAAa,WACpC,IAEI/t/B,EAAO7X,KACP8ya,EAAa,GAIjB,MAPc,CAACj+N,IAAO6/xB,IAAOmsB,KAIrBx6/B,SAAQ,SAAU6jC,GACtB4oY,EAAW1ma,KAAK,CAAE6zB,KAAMpoB,EAAKwzf,UAAUtlK,YAAY77T,GAAOtoC,MAAOsoC,GACrE,IACO4oY,CACX,EACA6vlB,EAAiBhy/B,UAAU40/B,eAAiB,SAAUrlgC,GAClD,IAAIwsF,EAAO,IAAIjrF,KAAKvB,EAAKwB,WACrBmuZ,EAAU,IAAIpuZ,KAAKvB,EAAKwB,WACxBuB,EAAM/C,EAAKyD,SACXmjgC,EAAqB,GAGzB,IAFAp66B,EAAO1sF,KAAKiu+B,aAAarC,kBAAkBl/4B,GAC3CmjU,EAAU7vZ,KAAKiu+B,aAAapC,gBAAgBh8kB,GACrCnjU,EAAOmjU,GACNnjU,EAAK/oF,WAAaV,GAClB6jgC,EAAmB16/B,KAAKsgF,EAAKhrF,WAEjCgrF,EAAKhpF,QAAQgpF,EAAKpqF,UAAY,GAElC,OAAIwkgC,EAAmBn8/B,QAAQzK,EAAKwB,aAAeolgC,EAAmB1jgC,OAAS,GACnE,EAEJ0jgC,EAAmBn8/B,QAAQzK,EAAKwB,WAAa,CACzD,EACAihgC,EAAiBhy/B,UAAU80/B,cAAgB,WACvC,IAAIv79B,EAAO,GAEPryB,EAAO7X,KAKX,OAJAA,KAAK0lgC,YAAYr//B,SAAQ,SAAU8O,GAC/B,IAAIqkwB,EAAarkwB,IAAY6uK,IAAQ6wB,IAAQ1/L,EAC7C+0B,EAAK99B,KAAK,CAAE6zB,KAAMpoB,EAAKwzf,UAAUtlK,YAAYyza,GAAY53wB,MAAOuT,GACpE,IACO+0B,CACX,EACAy49B,EAAiBhy/B,UAAUs1/B,gBAAkB,WACzC,IACIc,EAAgB,CAChB309B,MAAO,EACPqtD,OAAQ,EACRoj6B,MAAO,EACPC,OAAQ,EACRzw9B,MAAO,GAGPx6B,EAAO7X,KACP8ya,EAAa,GAIjB,MAde,CApiBX,QACC,SACD,QACC,SAtCF,QAklBMzsa,SAAQ,SAAU6jC,GACvB4oY,EAAW1ma,KAAK,CAAE6zB,KAAMpoB,EAAKwzf,UAAUtlK,YAAY77T,GAAOtoC,MAAOmlgC,EAAc,GAAK789B,IACxF,IACO4oY,CACX,EACA6vlB,EAAiBhy/B,UAAUu1/B,WAAa,SAAU7g/B,GAC9C,IAEI8gY,EAFAtxY,EAAU,CA/jBN,MACA,MACC,MACE,MACD,MACF,MACE,OA0jBNq+9B,EAAU,IAEdlz+B,KAAKilgC,YAAYpw/B,EAAS7U,KAAKiM,gBACX,OAAhBjM,KAAKD,QAAmC,UAAhBC,KAAKD,QAE7BomZ,EAAWtrY,GADW,oBACgBwK,EAAQi7T,GAAqBtgV,KAAKs89B,oBAIxEn2kB,EAAWtrY,GADW,QAAe7a,KAAKD,OAAS,oBAAsBC,KAAKs89B,kBAAoB,qBAAuBj38B,EACpF05T,IAEzC,IAAK,IAAIzvU,EAAK,EAAG03/B,EAAYny/B,EAASvF,EAAK03/B,EAAU5jgC,OAAQkM,IAAM,CAC/D,IAAIuB,EAAMm2/B,EAAU13/B,GAChBrM,EAAM4X,GAAShK,EAAKs1Y,GACxB+slB,EAAQ9m+B,KAAK,CAAE6zB,KAAiB,WAAX5a,EAAsBpiB,EAAM6s9B,IAAoB7s9B,EAAK,UAAWrB,MAAOsggC,IAAU,GAAKrx/B,IAC/G,CACA,OAAOqi+B,CACX,EACAyvB,EAAiBhy/B,UAAUw1/B,aAAe,WACtC,IACIhgnB,EADA/qE,EAAY,GAEI,OAAhBp7U,KAAKD,QAAmC,UAAhBC,KAAKD,OAE7BomZ,EAAWtrY,GADW,0BACeylU,GAAqBtgV,KAAKs89B,oBAI/Dn2kB,EAAWtrY,GADW,QAAe7a,KAAKD,OAAS,oBAAsBC,KAAKs89B,kBAAoB,2BAC7Dv9oB,IAEzC,IAAK,IAAIzvU,EAAK,EAAGgmC,EAAK71C,OAAO8E,KAAK4hZ,GAAU72Y,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CAC9D,IAAIuB,EAAMykC,EAAGhmC,GACb8rU,EAAUhvU,KAAK,CACX6zB,KAAM6v7B,IAAoBj18B,GAAShK,EAAKs1Y,GAAU,UAClDvkZ,MAAOiP,GAEf,CACA,OAAOuqU,CACX,EACAunrB,EAAiBhy/B,UAAUgvgB,YAAc,WACrC,IAAIuzd,EAAUlz+B,KAAKkmgC,WAAW,UAC1Be,EAAUjngC,KAAKkmgC,WAAW,QAC9BlmgC,KAAKmV,QAAQ+zB,UAAY,qCACJ219B,IAAgB,IAAMY,IADlB,4CAEuBV,IAC5C,WAAaA,IAAc5m9B,OAAO,GAHb,yBAIE0m9B,IAAgB,IACvCI,IAAgB,IAAMS,IAAY,oBAAsBa,IALnC,0EAMwBvggC,KAAKmV,QAAQghB,GAAK,IAAM6o+B,IAAiB,YAAcA,IACpG,WAAah//B,KAAKqrgB,UAAUtlK,YAAY,eAPnB,6BAQCy6pB,IARD,gDASe1B,IAAoB,IAAMI,IAAa,IAAMO,IAT5D,sCAUqBz//B,KAAKqrgB,UAAUtlK,YAzoB5D,MA+nBwB,qEAW4CkhqB,EAAQ,GAAGhn+B,KAAO,KAAOiz8B,EAAQ,GAAGjz8B,KAXhF,wEAY4Cgn+B,EAAQ,GAAGhn+B,KAAO,KAAOiz8B,EAAQ,GAAGjz8B,KAZhF,wEAa4Cgn+B,EAAQ,GAAGhn+B,KAAO,KAAOiz8B,EAAQ,GAAGjz8B,KAbhF,wEAc4Cgn+B,EAAQ,GAAGhn+B,KAAO,KAAOiz8B,EAAQ,GAAGjz8B,KAdhF,wEAe4Cgn+B,EAAQ,GAAGhn+B,KAAO,KAAOiz8B,EAAQ,GAAGjz8B,KAfhF,wEAgB4Cgn+B,EAAQ,GAAGhn+B,KAAO,KAAOiz8B,EAAQ,GAAGjz8B,KAhBhF,wEAiB4Cgn+B,EAAQ,GAAGhn+B,KAAO,KAAOiz8B,EAAQ,GAAGjz8B,KAjBhF,8BAkBJ6+9B,IAAoB,IAAMK,IAAc,IAAMM,IAlB1C,uCAmBsBz//B,KAAKqrgB,UAAUtlK,YAlpB7D,MA+nBwB,qBAoBJq5pB,IApBI,mBAqBFC,IAAsB,qCACzCr//B,KAAKqrgB,UAAUtlK,YAAY,gBAtBN,wBAwBJu5pB,IAxBI,mBAyBFiB,IAzBE,gDA0BJ1B,IAAgB,IAAMW,IA1BlB,mBA2BFD,IAAuB,WAAav//B,KAAKqrgB,UAAUtlK,YAAY,iBA3B7D,yDA6BY84pB,IA7BZ,4DA8BoB7+/B,KAAKmV,QAAQghB,GAAK,IAAMwp+B,IAAkB,YAAcA,IAAkB,WACnH3//B,KAAKqrgB,UAAUtlK,YAAY,MA/BN,2CAkCJ84pB,IAAgB,IAAMW,IAlClB,+DAmCFI,IAAqB,WAAa5//B,KAAKqrgB,UAAUtlK,YAAY,iBAnC3D,6CAqCA84pB,IArCA,6DAsCuBgB,IAAW,WAAa7//B,KAAKqrgB,UAAUtlK,YAAY,iBAtC1E,kCAwCA84pB,IAxCA,2DAyCuBiB,IAAY,WAAa9//B,KAAKqrgB,UAAUtlK,YAAY,aAzC3E,uDA4CJ+4pB,IAAoB,IAAMiB,IAAQ,IAAML,IA5CpC,+BA6Cc1//B,KAAKqrgB,UAAUtlK,YA3qBpD,OA8nBuB,qBA8CJ84pB,IA9CI,0DA+CuBmB,IAAe,WAAahggC,KAAKqrgB,UAAUtlK,YA7qBzF,OA8nBuB,yBAiDJ84pB,IAAgB,IAAMoB,IAjDlB,6CAkDuBC,IAAY,WAAalggC,KAAKqrgB,UAAUtlK,YAAY2uoB,KAlD3E,yBAoDJmqB,IAAgB,IAAMsB,IApDlB,yCAqDoBnggC,KAAKmV,QAAQghB,GAAK,IAAMiq+B,IAAa,YAAcA,IAAa,WAAapggC,KAAKqrgB,UAAUtlK,YAAY86pB,KArD5H,8BAwD7B,EACA8B,EAAiBhy/B,UAAUu2/B,oBAAsB,WAC7C,IAAIl1B,EAAWivB,IAAYY,IACvBv1sB,EAAW,GAAG17S,MAAMjR,KAAKK,KAAKmV,QAAQ3E,iBAAiB,IAAM0u/B,IAAa,WAAajuvB,MACvFp8P,EAAU,CAACys/B,IAAYC,IAAYC,IAAaC,IAAeC,IAAcC,IAAYC,KAC7F5hgC,KAAKilgC,YAAYpw/B,EAAS7U,KAAKiM,gBAC/B,IAAK,IAAIwgB,EAAQ,EAAGA,EAAQ6/R,EAASlpT,OAAQqpB,IACzCul9B,GAAYn99B,EAAQ0X,SAAS+/R,EAAS//R,SAASE,EAAM3V,WAAY,KAAKwb,aAAa,cAAe,MAAQ7F,IAAW6/R,EAASlpT,OAAS,EAAK,GA/pB5I,KAiqBJ,OAAO4u+B,EAAW5o2B,GACtB,EACAu53B,EAAiBhy/B,UAAUw2/B,qBAAuB,WAS9C,OAPInngC,KAAKgmgC,UAAUl68B,QACJm18B,IAAYY,IAAQ7hgC,KAAKqlgC,cAAczjgC,MAAQwnI,IA5rBrD,WA6rBcy43B,IAAQ7hgC,KAAKslgC,aAAa1jgC,MAAQwnI,IAG1Cg+3B,cAAyBpngC,KAAKolgC,UAAUxjgC,MAAQwnI,GAGnE,EACAu53B,EAAiBhy/B,UAAU02/B,gBAAkB,WACzC,MAAOC,YAAuBtngC,KAAKw6iB,eAAe54iB,MAAQwnI,GAC9D,EACAu53B,EAAiBhy/B,UAAU42/B,cAAgB,WACvC,MAAOC,SAAoBxngC,KAAK6mgC,gBAAgBjlgC,MAAQwnI,GAC5D,EACAu53B,EAAiBhy/B,UAAU82/B,qBAAuB,WAC9C,MAAOC,WAAsB1ngC,KAAKgs+B,WAAWpq+B,MAAQwnI,GACzD,EACAu53B,EAAiBhy/B,UAAUg3/B,iBAAmB,SAAUpjgC,GACpD,IAAIsQ,EAAU,CAACys/B,IAAYC,IAAYC,IAAaC,IAAeC,IAAcC,IAAYC,KAC7F5hgC,KAAKilgC,YAAYpw/B,EAAS7U,KAAKiM,gBAC/B,IAAK,IAAIqD,EAAK,EAAGgmC,EAAKt1C,KAAK8jgC,WAAYx0/B,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CACzD,IAAIuB,EAAMykC,EAAGhmC,GACTmd,EAAQF,SAAS1b,EAAIsE,QAAQmd,aAAa,cAAe,KACE,IAA3D/tB,EAAKoG,QAAQkK,EAAQ0X,SAASE,EAAM3V,WAAY,MAChDjG,EAAIo7U,cAAc,CAAE9iM,WAAW,IAG/Bt4I,EAAIo7U,cAAc,CAAE9iM,WAAW,GAEvC,CACJ,EACAw52B,EAAiBhy/B,UAAUi3/B,cAAgB,WACvC,GAAI5ngC,KAAKot+B,WAAWE,SAASlq+B,OACzBpD,KAAKolgC,UAAUn5qB,cAAc,CAAErqV,MAAO5B,KAAKot+B,WAAWE,SAAS,KAC/Dtt+B,KAAKwkgC,WAAWv4qB,cAAc,CAAEngS,SAAS,QAExC,CACD9rD,KAAKgmgC,UAAU/5qB,cAAc,CAAEngS,SAAS,IACxC9rD,KAAKslgC,aAAar5qB,cAAc,CAAErqV,MAAO5B,KAAKot+B,WAAWt0lB,cACzD,IAAK,IAAIxpY,EAAK,EAAGgmC,EAAK71C,OAAO8E,KAAK29/B,KAAY5y/B,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CAChE,IAAIhD,EAAMgpC,EAAGhmC,GACb,GAAI4y/B,IAAU,GAAK51/B,KAAStM,KAAKot+B,WAAWnq+B,IAAI,GAAI,CAChDjD,KAAKqlgC,cAAcp5qB,cAAc,CAAErqV,MAAO5B,KAAKot+B,WAAWnq+B,IAAI,KAC9D,KACJ,CACJ,CACJ,CACJ,EACA0//B,EAAiBhy/B,UAAUmgrB,SAAW,SAAU74pB,EAAQ7wB,GAEpD,OADApH,KAAKw6iB,eAAevuN,cAAc,CAAErqV,MAAO5B,KAAKot+B,WAAW5/pB,WACnDpmU,GACJ,KAAKst+B,IACD10+B,KAAKmlgC,aAAal5qB,cAAc,CAAErqV,MAAO5B,KAAKot+B,WAAWly3B,QACzD,MACJ,KAAK2l5B,IACD7ggC,KAAK6mgC,gBAAgB56qB,cAAc,CAAErqV,MAAO5B,KAAKot+B,WAAWxi9B,QAGpE,OAAQqN,GACJ,KAAKyo+B,IACD1ggC,KAAK2ngC,iBAAiB3ngC,KAAKot+B,WAAWnq+B,KACtC,MACJ,KAAK29/B,IACD5ggC,KAAKgs+B,WAAW//oB,cAAc,CAAEx/T,MAAQzsB,KAAKot+B,WAAWnk+B,MAAM,GAAK,IACnEjJ,KAAK4ngC,gBACL,MACJ,KAAKjH,IACD3ggC,KAAK4ngC,gBAGjB,EACAjF,EAAiBhy/B,UAAUk3/B,aAAe,WACtC,OAAK7ngC,KAAKmlgC,aAAavjgC,MAIhBkmgC,SADOzyB,IAA4Br1+B,KAAKmlgC,aAAavjgC,OACvBwnI,IAH1B,EAIf,EACAu53B,EAAiBhy/B,UAAUo3/B,kBAAoB,WACtC/ngC,KAAK6mgC,gBAAgB1uuB,cACtBn4R,KAAK6mgC,gBAAgBzv3B,UACrBp3I,KAAK6mgC,gBAAkB,MAEtB7mgC,KAAKolgC,UAAUjtuB,cAChBn4R,KAAKolgC,UAAUhu3B,UACfp3I,KAAKolgC,UAAY,MAEhBplgC,KAAKw6iB,eAAeriR,cACrBn4R,KAAKw6iB,eAAepja,UACpBp3I,KAAKw6iB,eAAiB,MAErBx6iB,KAAKmlgC,aAAahtuB,cACnBn4R,KAAKmlgC,aAAa/t3B,UAClBp3I,KAAKmlgC,aAAe,MAEnBnlgC,KAAK2kgC,WAAWxsuB,cACjBn4R,KAAK2kgC,WAAWvt3B,UAChBp3I,KAAK2kgC,WAAa,MAEjB3kgC,KAAKk8xB,QAAQ/jgB,cACdn4R,KAAKk8xB,QAAQ9kpB,UACbp3I,KAAKk8xB,QAAU,MAEdl8xB,KAAKslgC,aAAantuB,cACnBn4R,KAAKslgC,aAAalu3B,UAClBp3I,KAAKslgC,aAAe,MAEnBtlgC,KAAKqlgC,cAAcltuB,cACpBn4R,KAAKqlgC,cAAcju3B,UACnBp3I,KAAKqlgC,cAAgB,MAEpBrlgC,KAAKgs+B,WAAW7zsB,cACjBn4R,KAAKgs+B,WAAW501B,UAChBp3I,KAAKgs+B,WAAa,MAEjBhs+B,KAAKwkgC,WAAWrsuB,cACjBn4R,KAAKwkgC,WAAWpt3B,UAChBp3I,KAAKwkgC,WAAa,MAEjBxkgC,KAAKgmgC,UAAU7tuB,cAChBn4R,KAAKgmgC,UAAU5u3B,UACfp3I,KAAKgmgC,UAAY,MAErBhmgC,KAAK8jgC,WAAWz9/B,SAAQ,SAAU8O,GACzBA,EAAQgjR,aACThjR,EAAQiiI,SAEhB,IACAp3I,KAAK8jgC,WAAa,GAClB9jgC,KAAK+jgC,aAAa19/B,SAAQ,SAAU8O,GAC3BA,EAAQgjR,aACThjR,EAAQiiI,SAEhB,IACAp3I,KAAK+jgC,aAAe,EACxB,EACApB,EAAiBhy/B,UAAUq3/B,YAAc,WACrChogC,KAAKgkgC,WAAWhg1B,IAAM6wB,IAAO70M,KAAK4vZ,WAClC5vZ,KAAKomgC,iBACT,EACAzD,EAAiBhy/B,UAAUs3/B,oBAAsB,SAAUr4mB,GACvD,GAAI5vZ,KAAKmlgC,aAAavjgC,OAASguZ,EAAW,CACtC,IAAIs4mB,EAAYlogC,KAAKmlgC,aAAavjgC,MAC9BumgC,EAAe,IAAI1mgC,KAAKymgC,EAAU9ngC,cAAe8ngC,EAAU/ngC,WAAY+ngC,EAAU5lgC,UAAWstZ,EAAUzsY,WAAYysY,EAAUxsY,aAAcwsY,EAAUtsY,mBACxJtjB,KAAKmlgC,aAAal5qB,cAAc,CAAErqV,MAAOumgC,GAC7C,CACJ,EACAxF,EAAiBhy/B,UAAU2r9B,gBAAkB,WACzC,OAAOt89B,KAAKsjZ,aAAa5iY,aAC7B,EACAii/B,EAAiBhy/B,UAAUsr/B,eAAiB,SAAU/h4B,GAElD,YADa,IAATA,IAAmBA,EAAOl6H,KAAK6kgC,qBT55BpC,SAAyB3q4B,EAAM4rO,EAAc/lW,EAAQqogC,QACnC,IAAjBA,IAA2BA,EAAe,aAC9C,IAEIjinB,EACAkinB,EAHAj7B,EAAaY,IAAsB9z2B,GACnCmz2B,EAAUvnoB,EAAaC,YAAY0uoB,KAAS,IAG5CnxlB,EAAe8knB,EAAa1n/B,cAChC,GAAe,OAAX3gB,GAA8B,UAAXA,EAAoB,CACvC,IACI6rU,EAAY,+BAChBy8rB,EAAYxt/B,GAFK,iCAEgBylU,GAAqBgjE,IACtD6C,EAAWtrY,GAAS+wT,EAAW0U,GAAqBgjE,GACxD,MAGQ13E,EAAY,QAAU7rU,EAAS,oBAAsBujZ,EAAe,gCACxE+knB,EACKxt/B,GAHY,QAAU9a,EAAS,oBAAsBujZ,EAAe,kCAG/CvkE,IAC1BonE,EACKtrY,GAAS+wT,EAAWmT,IAK7B,OAHIqupB,EAAW5/pB,SAAW,IACtB6/pB,GAAWD,EAAW5/pB,SAAW,KAE7B4/pB,EAAWv3P,MACf,IAAK,QACDw3P,GAAWvnoB,EAAaC,YAAY4uoB,KACpC,MACJ,IAAK,SACDtH,GAAWvnoB,EAAaC,YAAY6uoB,KAAS,IAAM9uoB,EAAaC,YAAYq1b,KAAM,IAClFgyM,EAAWnq+B,IAAIoD,SAAQ,SAAUpD,EAAKwpB,GAClC4g9B,GAAWvd,IAAoBj18B,GAAS2y9B,IAAe,GAAKvq+B,GAAMkjZ,GAAU,UAC5EknlB,GAAcD,EAAWnq+B,IAAIG,OAAS,IAAOqpB,EAAS,GAAK,IAC/D,IACA,MACJ,IAAK,UACD4g9B,GAAWvnoB,EAAaC,YAAYx0V,KAAU,IAAMu0V,EAAaC,YAAYq1b,KAAM,IACnFiyM,GAAWF,IAAgBC,EAAYjnlB,EAASrgD,GAChD,MACJ,IAAK,SACDunoB,GAAWvnoB,EAAaC,YAAY8uoB,KAAS,IAAM/uoB,EAAaC,YAAYq1b,KAAM,IAClFiyM,GAAWvd,IAAoBj18B,GAAUuy9B,EAAWnk+B,MAAM,GAAI6N,WAAYux/B,GAAW,UAAY,IACjGh7B,GAAWF,IAAgBC,EAAYjnlB,EAASrgD,GAGxD,GAAIsnoB,EAAWxi9B,MACXyi9B,GAAW,KAAQD,EAAWxi9B,MAAS,IAAMk7U,EAAaC,YAAYyuoB,UAErE,GAAIpH,EAAWly3B,MAAO,CACvB,IAAI62S,EAAWq7kB,EAAWly3B,MAC1Bmy3B,GAAW,KAAOvnoB,EAAaC,YAAY2uoB,KACrC,IAAM3ilB,EAASzvZ,UACf,IAAMwt9B,IAAoBj18B,IAAUk3Y,EAAS5xZ,WAAa,GAAG2W,WAAYux/B,GAAW,UACpF,IAAMt2mB,EAAS3xZ,aACzB,CACA,OAAOit+B,CACX,CSq2Bei7B,CAAgBpu4B,EAAMl6H,KAAKqrgB,UAAWrrgB,KAAKD,OAAQC,KAAKsjZ,aACnE,EACAq/mB,EAAiBhy/B,UAAU43/B,mBAAqB,SAAU34mB,EAAW11R,EAAMuz2B,EAAaE,EAAcC,GAElG,OADAA,EAAW7hqB,GAAkB6hqB,GAAY5t+B,KAAK4vZ,UAAYg+kB,EACnDpw2B,IAASoyR,EAAW11R,EAAMuz2B,EAAazt+B,KAAKiM,eAAgB0h+B,EAAcC,EAAU5t+B,KAAKsjZ,aACpG,EACAq/mB,EAAiBhy/B,UAAUk0/B,kBAAoB,WAC3C,IAAI7yB,EAAWw2B,QACf,OAAQxogC,KAAK2kgC,WAAW/igC,OACpB,KAAK6+/B,IACDzuB,GAAYkvB,IAAY933B,IACxB,MACJ,KAAKs33B,IACD1uB,GAAYmvB,IAAa/33B,IAAYppI,KAAKkngC,sBAC1C,MACJ,KAAKvG,IACD3uB,GAAYovB,IAAch43B,IAAYppI,KAAKmngC,uBAC3C,MACJ,KAAKvG,IACD5uB,GAAYqvB,IAAaj43B,IAAYppI,KAAKmngC,uBAAyBnngC,KAAKyngC,uBACxE,MACJ,KAAKzj1B,IACD,MAAO,GAGf,OADAguzB,GAAYhy+B,KAAKqngC,kBACTrngC,KAAKk8xB,QAAQt6xB,OACjB,KAAK8y+B,IACD1C,GAAYhy+B,KAAK6ngC,eACjB,MACJ,KAAKhH,IACD7uB,GAAYhy+B,KAAKungC,gBAGzB,OAAOv1B,CACX,EACA2wB,EAAiBhy/B,UAAUm0/B,kBAAoB,SAAU5q4B,EAAM01R,GAE3D,QADkB,IAAdA,IAAwBA,EAAY5vZ,KAAK4vZ,WACxC11R,EAAL,CAIAl6H,KAAK6jgC,cAAe,EACpB7jgC,KAAKot+B,WAAaY,IAAsB9z2B,GACxC,IAAIuu4B,EAAQzogC,KAAKot+B,WAAWxi9B,MAAQi2+B,IAAS7ggC,KAAKot+B,WAAWly3B,MAAQw53B,IAAQ7/xB,IAC7E,OAAQ70M,KAAKot+B,WAAWv3P,MACpB,KAAKqrR,IACDlhgC,KAAKgkgC,WAAWvD,IAAOgI,EAAO74mB,GAC9B5vZ,KAAK8wrB,SAAS2vU,IAAOgI,GACrB,MACJ,KAAKtH,IACDnhgC,KAAKgkgC,WAAWtD,IAAQ+H,EAAO74mB,GAC/B5vZ,KAAK8wrB,SAAS4vU,IAAQ+H,GACtB,MACJ,KAAKrH,IACDphgC,KAAKgkgC,WAAWrD,IAAS8H,EAAO74mB,GAChC5vZ,KAAK8wrB,SAAS6vU,IAAS8H,GACvB,MACJ,KAAKpH,IACDrhgC,KAAKgkgC,WAAWpD,IAAQ6H,EAAO74mB,GAC/B5vZ,KAAK8wrB,SAAS8vU,IAAQ6H,GAG9BzogC,KAAK6jgC,cAAe,EACpB7jgC,KAAKqpjB,oBAvBL,MAFIrpjB,KAAK2kgC,WAAW14qB,cAAc,CAAErqV,MAAOoiL,KA0B/C,EACA2+0B,EAAiBhy/B,UAAU+3/B,aAAe,WAEtC,IADA,IACSp5/B,EAAK,EAAGq5/B,EADG,GAAG/3/B,MAAMjR,KAAKK,KAAKmV,QAAQ3E,iBAAiB,UACdlB,EAAKq5/B,EAAgBvlgC,OAAQkM,IAAM,CAEjFg7U,GADcq+qB,EAAgBr5/B,GAElC,CACJ,EAMAqz/B,EAAiBhy/B,UAAUymI,QAAU,WACjC,IAAKp3I,KAAKm4R,YAAa,CACnBn4R,KAAK+ngC,oBACLjh9B,EAAOn2C,UAAUymI,QAAQz3I,KAAKK,MAC9B,IAAIuoR,EAAgB,CAAC,KAAOvoR,KAAK+sV,iBAMjC,IALI/sV,KAAK4vW,WACLrnF,EAAgBA,EAAcnvQ,OAAOpZ,KAAK4vW,SAASj9U,MAAM,OAE7Ds1P,GAAY,CAACjoR,KAAKmV,SAAUozQ,GAC5BvoR,KAAK0ogC,eACE1ogC,KAAKmV,QAAQm1B,mBAChBtqC,KAAKmV,QAAQggB,YAAYn1B,KAAKmV,QAAQm1B,kBAE9C,CACJ,EAOAq49B,EAAiBhy/B,UAAUo8U,cAAgB,WACvC,MAAO,kBACX,EAMA41qB,EAAiBhy/B,UAAU0pV,eAAiB,WACxC,OAAOr6V,KAAK26V,aAAa,GAC7B,EAOAgoqB,EAAiBhy/B,UAAUyJ,OAAS,WAChCpa,KAAK6tK,aACL7tK,KAAKklgC,SAASllgC,KAAKq4V,WACnBr4V,KAAK6jgC,cAAe,EACpB7jgC,KAAK45V,gBACT,EASA+oqB,EAAiBhy/B,UAAU+7U,kBAAoB,SAAUiF,EAASC,GAC9D,IAAK,IAAItiV,EAAK,EAAGgmC,EAAK71C,OAAO8E,KAAKotV,GAAUriV,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CAE9D,OADWgmC,EAAGhmC,IAEV,IAAK,YACDtP,KAAKskgC,eAAe3yqB,EAAQi+D,WAC5B5vZ,KAAKukgC,gBAAgB5yqB,EAAQi+D,WAC7B5vZ,KAAKk8xB,QAAQjwc,cAAc,CAAEx/T,MAAO,IACpC,MACJ,IAAK,YACDzsB,KAAKklgC,SAASvzqB,EAAQ0G,WACtB,MACJ,IAAK,WACGzG,EAAQge,UACR3nF,GAAY,CAACjoR,KAAKmV,SAAUy8U,EAAQge,SAASj9U,MAAM,MAEnDg/T,EAAQie,UACRpnF,GAAS,CAACxoR,KAAKmV,SAAUw8U,EAAQie,SAASj9U,MAAM,MAEpD,MACJ,IAAK,eACD3yB,KAAK2kgC,WAAW14qB,cAAc,CAAEx/T,MAAOzsB,KAAK4kgC,eAC5C,MACJ,IAAK,UACD5kgC,KAAKmlgC,aAAal5qB,cAAc,CAAEsxC,QAASv9X,KAAKu9X,UAChD,MACJ,IAAK,UACDv9X,KAAKmlgC,aAAal5qB,cAAc,CAAEuxC,QAASx9X,KAAKw9X,UAChD,MACJ,IAAK,QACGx9X,KAAK6kgC,sBAAwB7kgC,KAAK4B,OAClC5B,KAAK8kgC,kBAAkB9kgC,KAAK4B,OAEhC,MACJ,IAAK,eACD5B,KAAKsjZ,aAAe3xD,EAAQ2xD,aAC5BtjZ,KAAKiu+B,aAAeC,IAAgBv8oB,EAAQ2xD,cAC5C,MACJ,IAAK,SACL,IAAK,cACL,IAAK,iBACDtjZ,KAAK64V,UACL,MACJ,IAAK,aACD74V,KAAKmlgC,aAAal5qB,cAAc,CAAE5mU,OAAQssU,EAAQriP,aAG9D,CACJ,EACAygP,IAAW,CACPjB,GAAS,CAAC,OAAQ,QAAS,SAAU,UAAW,YACjD6zqB,EAAiBhy/B,UAAW,mBAAe,GAC9Co/U,IAAW,CACPjB,GAAS,IACV6zqB,EAAiBhy/B,UAAW,sBAAkB,GACjDo/U,IAAW,CACPjB,GAAS,IAAIrtV,OACdkhgC,EAAiBhy/B,UAAW,iBAAa,GAC5Co/U,IAAW,CACPjB,MACD6zqB,EAAiBhy/B,UAAW,kBAAc,GAC7Co/U,IAAW,CACPjB,GAAS,cACV6zqB,EAAiBhy/B,UAAW,oBAAgB,GAC/Co/U,IAAW,CACPjB,MACD6zqB,EAAiBhy/B,UAAW,gBAAY,GAC3Co/U,IAAW,CACPjB,MACD6zqB,EAAiBhy/B,UAAW,aAAS,GACxCo/U,IAAW,CACPjB,GAAS,IAAIrtV,KAAK,KAAM,EAAG,KAC5BkhgC,EAAiBhy/B,UAAW,eAAW,GAC1Co/U,IAAW,CACPjB,GAAS,IAAIrtV,KAAK,KAAM,GAAI,MAC7BkhgC,EAAiBhy/B,UAAW,eAAW,GAC1Co/U,IAAW,CACPjB,GAAS,IACV6zqB,EAAiBhy/B,UAAW,oBAAgB,GAC/Co/U,IAAW,CACP94T,MACD0r+B,EAAiBhy/B,UAAW,cAAU,GACzCgy/B,EAAmB5yqB,IAAW,CAC1BT,IACDqzqB,EAEP,CA5+BsC,CA4+BpCvhgC,ICvnCEwngC,IAAc,UACdC,IAAyB,yBAIzBC,IAAmB,SAInBC,IAA6B,WAC7B,SAASA,EAAY5g+B,GACjBnoC,KAAKmoC,OAASA,EACdnoC,KAAK+zZ,KAAO/zZ,KAAKmoC,OAAOkje,UACxBrrgB,KAAKmzN,OAASnzN,KAAKmoC,OAAOw+7B,YAC1B3m+B,KAAKgpgC,gBAAkB,CAAEjy1B,UAAW,IAAIt1K,KAAQirY,QAAS,IAAIjrY,MAC7DzB,KAAKipgC,mBACT,CAo0DA,OAn0DAF,EAAYp4/B,UAAUs4/B,kBAAoB,WACtCjpgC,KAAKmV,QAAUrU,GAAc,MAAO,CAAEq1B,GAAIn2B,KAAKmoC,OAAOhzB,QAAQghB,GAAK,oBACnEn2B,KAAKmoC,OAAOhzB,QAAQuc,YAAY1xB,KAAKmV,SACrC,IAAIuklB,EAAc,CACdrsJ,kBAAmB,CAAEr5P,OAAQ,QAC7Bj/L,QAAS/U,KAAKkpgC,wBACdt5pB,SAAUigE,IACVx3E,UAAWr4V,KAAKmoC,OAAOkwT,UACvB00F,oBAAqB/sb,KAAKmoC,OAAO4kZ,oBACjCnkS,OAAQ5oJ,KAAKmoC,OAAOumrB,WAAa,OAAS,OAC1C94M,UAAW,QACX2G,SAAS,EACT2D,eAAelghB,KAAKmoC,OAAOumrB,WAC3BrmtB,OAAQ6oB,SAASzd,KACjBo8R,SAAS,EACTrxR,MAAO,QACPwoH,WAAYhnI,KAAKmpgC,aAAatpgC,KAAKG,MACnC6mI,YAAa7mI,KAAK+9/B,cAAcl+/B,KAAKG,OAErCA,KAAKmoC,OAAOumrB,YACZh1H,EAAY9pP,SAAWigE,IAAgC,IAAMA,IAC7D6pL,EAAYhra,OAAS,gGACjB1uL,KAAK+zZ,KAAKhuD,YAAY,YAAc,wDAGxC2zP,EAAYtzc,QAAU,CAAC,CACfq3X,YAAa,CACT1ogB,QAAS/U,KAAK+zZ,KAAKhuD,YAAY,gBAAiB6J,SAAUigE,IAC1Djha,UAAW5O,KAAKmoC,OAAOi07B,cAAcvmU,eAAiB71pB,KAAKmoC,OAAOo2W,UAEtEv7H,MAAOhjR,KAAKopgC,YAAYvpgC,KAAKG,OAC9B,CACCy9gB,YAAa,CACT1ogB,QAAS/U,KAAK+zZ,KAAKhuD,YAAY,cAAe6J,SAAU,aAAeigE,IACvE1mR,WAAW,EAAMv6I,UAAW5O,KAAKmoC,OAAOi07B,cAAcpuV,aAAehuoB,KAAKmoC,OAAOo2W,UAErFv7H,MAAOhjR,KAAK27/B,UAAU97/B,KAAKG,OAC5B,CACCy9gB,YAAa,CAAE7tK,SAAUigE,IAAsC96Z,QAAS/U,KAAK+zZ,KAAKhuD,YAAY,iBAC9F/iF,MAAOhjR,KAAKqpgC,YAAYxpgC,KAAKG,QAErC05lB,EAAYhra,OAAS,6BAA+B1uL,KAAK+zZ,KAAKhuD,YAAY,YAAc,UAE5F/lW,KAAK8hhB,aAAe,IAAI/xP,IAAO2pU,EAAa15lB,KAAKmV,SAC7CnV,KAAK8hhB,aAAa3sgB,QAAQykB,cAAc,yBACxC55B,KAAK8hhB,aAAa3sgB,QAAQykB,cAAc,wBAAwB5E,aAAa,QAASh1B,KAAK+zZ,KAAKhuD,YAAY,UAEhHv9E,GAAS,CAACxoR,KAAKmV,QAAQ0gR,eAAgBg6I,IAAgC,cACnE7va,KAAKmoC,OAAOumrB,aACZ71e,GAAazlN,IAAIpzB,KAAKmV,QAAQykB,cAAc,gBAAyC,QAAS55B,KAAKqpgC,YAAarpgC,MAChH64O,GAAazlN,IAAIpzB,KAAKmV,QAAQykB,cAAc,IAAMi2Y,KAAmC,QAAS7va,KAAK27/B,UAAW37/B,OAElH64O,GAAazlN,IAAIpzB,KAAK8hhB,aAAa3sgB,QAAS,UAAWnV,KAAKspgC,iBAAkBtpgC,MAC9EA,KAAKk2/B,qBACT,EACA6S,EAAYp4/B,UAAUkoV,QAAU,WAC5B74V,KAAKo3I,SAAQ,GACbp3I,KAAKipgC,mBACT,EACAF,EAAYp4/B,UAAU44/B,wBAA0B,WAC5C,GAAIvpgC,KAAK87/B,iBAAkB,CACvB,IAAIA,EAAmB97/B,KAAK87/B,iBAAiB3m/B,QAC7CnV,KAAK87/B,iBAAiB1k3B,UACtBp3I,KAAKwpgC,uBAAuB1N,EAChC,CACJ,EACAiN,EAAYp4/B,UAAU84/B,oBAAsB,SAAU3N,GAC9C97/B,KAAKmoC,OAAOuh+B,iBACZ1pgC,KAAK87/B,iBAAmBA,EAEhC,EACAiN,EAAYp4/B,UAAUst9B,WAAa,SAAU/z7B,EAAMt9B,EAAM+8/B,EAAahF,GAOlE,GANA3kgC,KAAKmoC,OAAOk2hB,cAAgBzxjB,EAC5B5M,KAAKmoC,OAAOg19B,wBACRn9/B,KAAKmoC,OAAO637B,YACZhg+B,KAAKmoC,OAAO637B,WAAWyc,gBAAe,GAE1Cz8+B,KAAKmoC,OAAOq67B,aAAa4C,iCACZ,QAATx49B,EAAgB,CAChB,IAAI6p+B,EAAW,CAAC,EAChBz2+B,KAAK4pgC,iBAAmBD,EACxB3pgC,KAAKmoC,OAAOu17B,gBAAkBxz7B,EAC9B,IAAIq/S,EAAUr/S,EACVlqC,KAAK4pgC,gBACL5pgC,KAAK0j+B,mBAAmBn6oB,EAASktpB,IAGjCz2+B,KAAKmoC,OAAOu17B,gBAAkB,CAC1B3mzB,UAAYwyK,EAAQxyK,WAAawyK,EAAQvpV,KAAKmzN,OAAOp8C,WACrD21N,QAAUnjD,EAAQmjD,SAAWnjD,EAAQvpV,KAAKmzN,OAAOu5K,SACjDqxlB,SAAWx0oB,EAAQw0oB,UAAYx0oB,EAAQvpV,KAAKmzN,OAAO4qwB,UACnD5o9B,QAASo0U,EAAQp0U,QACjBgrzB,WAAY52e,EAAQ42e,YAExBs2K,EAAWltpB,GAEfr/S,EAAOus8B,CACX,CAUA,OATK1qqB,GAAkB/rU,KAAKmoC,OAAOuh+B,iBAC/B1pgC,KAAK6pgC,mBAAmB7pgC,KAAKmV,QAAQykB,cAAc,oBAAqBsQ,IAEvElqC,KAAKmoC,OAAOumrB,YAAc3iZ,GAAkB/rU,KAAKmoC,OAAOuh+B,iBACzDzhvB,GAAY,CAACjoR,KAAK8hhB,aAAa3sgB,QAAQykB,cAAc,wBAAyBi2Y,KAE9E7va,KAAK87/B,mBACL97/B,KAAK87/B,iBAAiB7v/B,eAAiBjM,KAAKmoC,OAAOuz7B,kBAAkBzv9B,gBAEjEW,GACJ,IAAK,MACD5M,KAAK8pgC,oBAAoB5/9B,EAAMy69B,GAC/B,MACJ,IAAK,OACL,IAAK,iBACL,IAAK,aACL,IAAK,sBACY,mBAAT/3/B,IAA8B5M,KAAKmoC,OAAOumrB,YAAc3iZ,GAAkB/rU,KAAKmoC,OAAOuh+B,iBACtFlhvB,GAAS,CAACxoR,KAAK8hhB,aAAa3sgB,QAAQykB,cAAc,wBAAyBi2Y,KAE/E7va,KAAK4pgC,iBAAkB,EACvB5pgC,KAAK+pgC,qBAAqB7/9B,GAGtC,EACA6+9B,EAAYp4/B,UAAUq5/B,iBAAmB,WACrChqgC,KAAK8hhB,aAAa/sgB,QAAU/U,KAAKkpgC,wBACjClpgC,KAAK8hhB,aAAa11L,WAClBpsV,KAAKk2/B,qBACT,EACA6S,EAAYp4/B,UAAU24/B,iBAAmB,SAAUjpgC,GAC3CL,KAAKmoC,SAAWnoC,KAAKmoC,OAAO8h+B,0BAAuC,UAAX5pgC,EAAEqsB,OAC1D1sB,KAAKkqgC,YAAa,EAE1B,EACAnB,EAAYp4/B,UAAUw4/B,aAAe,SAAUlw/B,GAC3C,IAAI3Z,EAAQU,KACR0sY,EAAU1sY,KAAKkpV,UAAUlpV,KAAKmzN,OAAOu5K,SAAShrY,UAC9C2nV,EAAY,CACZz8U,KAAM,SACNs9B,KAAMlqC,KAAKkpV,UACXpoQ,QAAQ,EACR3rE,QAASnV,KAAKmV,QACd9M,OAASrI,KAAK4pgC,gBAAkB5pgC,KAAKmoC,OAAOu17B,gBAAgBvo9B,QAAUnV,KAAKmoC,OAAOoi8B,gBAAgBp19B,SAElGnV,KAAK4pgC,kBACLvgrB,EAAUp1O,SAAWj0G,KAAKmqgC,mBAE9B,IAAIzX,EAAU1y/B,KAAK+tU,YAAY8hG,KAC3B6ilB,IACAA,EAAQ9j/B,WAAa5O,KAAK4pgC,gBAAkB5pgC,KAAKmoC,OAAOi07B,cAAcpuV,YAAchuoB,KAAKmoC,OAAOi07B,cAAchwV,cAC9GsmX,EAAQtmqB,YAEZ,IAAIg+qB,EAAYpqgC,KAAK+tU,YAAY8hG,KAC7Bu6lB,IACAA,EAAUx7/B,UAAY5O,KAAKmoC,OAAOi07B,cAAcvmU,cAChDu0W,EAAUh+qB,YAEd,IAAI6lN,EAAkB,IAAI9tH,GAsB1B,OArBAnkb,KAAKmoC,OAAOm4P,QAAQvpQ,IAAiBsyT,GAAW,SAAUwtqB,GAUtD,GATA59+B,EAAK6nE,OAAS+16B,EAAU/16B,OACxBxhF,EAAM20G,SAAW30G,EAAMsqgC,gBAAkB/S,EAAU5i5B,SAAW,KAC1D30G,EAAM4pV,UAAU5pV,EAAM6zN,OAAOu5K,SAAShrY,YAAcgrY,GAAYptY,EAAMsqgC,iBACjB,IAArDtqgC,EAAM4pV,UAAU5pV,EAAM6zN,OAAOu5K,SAASvpX,YACiB,IAAvD7jB,EAAM4pV,UAAU5pV,EAAM6zN,OAAOu5K,SAAStpX,eACtC9jB,EAAM4pV,UAAYz/P,GAAO,CAAC,EAAGnqF,EAAM4pV,UAAW,MAAM,GACpD5pV,EAAM+qgC,WAAW/qgC,EAAM4pV,YAE3B5pV,EAAMgrgC,sBAAsBhrgC,EAAM20G,UAC9B30G,EAAMsqgC,iBAAmB/S,EAAU5i5B,WAAa30G,EAAM6qgC,mBAAqBp+rB,GAAkBzsU,EAAM6oC,OAAOuh+B,gBAAiB,CAC3H,IAAIa,EAAWjrgC,EAAMyuU,YAAY8hG,KAC7B8pV,EAASr6vB,EAAMyuU,YAAY8hG,KAC/B8pV,EAAO/3vB,MAAQ,IAAIH,KAAK8ogC,EAAS3ogC,MAAMF,UAAa269B,IAAqBw6B,EAAU5i5B,UACnF0lpB,EAAOvta,UACX,CACI9sV,EAAM6oC,OAAOuh+B,gBAAkBpqgC,EAAM6V,QAAQykB,cAAc,yBAA2Bt6B,EAAMw8/B,mBAC5Fx8/B,EAAMw8/B,iBAAmBx8/B,EAAMyuU,YAAY,uBAE/CkkO,EAAgB36e,QAAQr+C,EAC5B,IACOg5hB,CACX,EACA82d,EAAYp4/B,UAAUot/B,cAAgB,SAAU9k/B,GAC5C,IAAI3Z,EAAQU,KACRiZ,EAAKo5Y,eACLryZ,KAAK2ib,cAAe,GAExB,IAAIt5F,EAAY,CACZz8U,KAAM,SACNmqB,MAAO9d,EAAK8d,OAAS/2B,KAAKq7/B,YAC1Bnx9B,KAAMlqC,KAAKwqgC,cACX1p7B,QAAQ,EACR3rE,QAASnV,KAAKmV,QACd9M,OAASrI,KAAK4pgC,gBAAkB5pgC,KAAKmoC,OAAOu17B,gBAAgBvo9B,QAAUnV,KAAKmoC,OAAOoi8B,gBAAgBp19B,SAElG88hB,EAAkB,IAAI9tH,GAgB1B,OAfAnkb,KAAKmoC,OAAOm4P,QAAQvpQ,IAAkBsyT,GAAW,SAAUwtqB,GACvD59+B,EAAK6nE,OAAS+16B,EAAU/16B,OACnB+16B,EAAU/16B,SACPxhF,EAAMqjb,eACN1pa,EAAK6nE,OAASxhF,EAAMmrgC,mBAAmB5T,EAAU3s9B,MACjD5qC,EAAMqjb,aAAe1pa,EAAK6nE,QAEzBxhF,EAAMqjb,eACPrjb,EAAMg4e,YACNh4e,EAAM6oC,OAAOu87B,UAAUv0V,cAAa,GACpC7woB,EAAMkrgC,cAAgB,OAG9Bv4d,EAAgB36e,QAAQr+C,EAC5B,IACOg5hB,CACX,EACA82d,EAAYp4/B,UAAUu4/B,sBAAwB,WAC1C,IAAIp8/B,EAAYhM,GAAc,MAAO,CAAEC,UlBuFb,qBkBtFtB0oK,EAAO3oK,GAAc,OAAQ,CAC7Bq1B,GAAIn2B,KAAKmoC,OAAOhzB,QAAQghB,GAAK,WAC7Bp1B,UAAW8ua,IACXpmF,MAAO,CAAEihrB,SAAU,mBAIvB,OAFA1qgC,KAAK6pgC,mBAAmBpg2B,GACxB38J,EAAU4kB,YAAY+3I,GACf38J,CACX,EACAi8/B,EAAYp4/B,UAAUk5/B,mBAAqB,SAAUpg2B,EAAMxwJ,GACvD,IAAI3Z,EAAQU,KACZ,GAAK+rU,GAAkB/rU,KAAKmoC,OAAOuh+B,gBA4B/Bjg2B,EAAK/3I,YAAY1xB,KAAK2qgC,oCA5B0B,CAChD,GAAI1x/B,EAAM,CACFjZ,KAAK80/B,iBACL90/B,KAAK80/B,eAAe192B,UACpBp3I,KAAK80/B,eAAiB,MAEtB90/B,KAAK87/B,mBACL97/B,KAAK87/B,iBAAiB1k3B,UACtBp3I,KAAK87/B,iBAAmB,MAE5B97/B,KAAK+ngC,oBAEL,IADA,IACSz4/B,EAAK,EAAGs7/B,EADE,GAAGh6/B,MAAMjR,KAAK8pK,EAAK3jK,UACUwJ,EAAKs7/B,EAAexngC,OAAQkM,IAAM,CAE9E6jB,GADcy3+B,EAAet7/B,GAEjC,CACAtP,KAAKmoC,OAAO6ylB,eAAe,CAAC,kBAChC,CACA,IAAI7tR,EAAantW,KAAKmoC,OAAOhzB,QAAQghB,GAAK,kBAE1C68F,GADc,GAAGpiH,MAAMjR,KAAKK,KAAKmoC,OAAO0i+B,mBAAZ7qgC,CAAgCiZ,GAAQ,CAAC,EAAGjZ,KAAKmoC,OAAQ,iBAAkBglU,GAAY,IACnG1jM,GAChBzpK,KAAKmoC,OAAOukf,iBAAgB,WACpBpthB,EAAM6V,SACN7V,EAAM42/B,qBAEd,GACJ,CAIJ,EACA6S,EAAYp4/B,UAAUg6/B,6BAA+B,WACjD,IAAIG,EAAY9qgC,KAAK+qgC,iBlBmGiB,mBkBlGlCC,EAAmBhrgC,KAAK+qgC,iBlB4De,wBkB3D3CD,EAAUp5+B,YAAYs5+B,GACtBA,EAAiBt5+B,YAAY1xB,KAAK+x4B,cAAclie,MAChDm7lB,EAAiBpx+B,cAAc,IAAMi2Y,KAAmB76Y,aAAa,QAASh1B,KAAKmoC,OAAO8i+B,aAAa3zjB,SACvG0zjB,EAAiBt5+B,YAAY1xB,KAAK+x4B,cAAclie,MAChDm7lB,EAAiBpx+B,cAAc,IAAMi2Y,KAAoB76Y,aAAa,QAASh1B,KAAKmoC,OAAO8i+B,aAAatz+B,UACxG,IAAIuz+B,EAAsBlrgC,KAAK+qgC,iBlBgEO,mBkB/DtCD,EAAUp5+B,YAAYw5+B,GACtBA,EAAoBx5+B,YAAY1xB,KAAKmrgC,qBAAqBt7lB,IAA8B7va,KAAKorgC,aAAavrgC,KAAKG,QAC/GkrgC,EAAoBtx+B,cAAc,IAAMi2Y,KAA8B76Y,aAAa,QAASh1B,KAAKmoC,OAAO8i+B,aAAal01B,WACrHm01B,EAAoBx5+B,YAAY1xB,KAAKmrgC,qBAAqBt7lB,MAC1Dq7lB,EAAoBtx+B,cAAc,IAAMi2Y,KAA4B76Y,aAAa,QAASh1B,KAAKmoC,OAAO8i+B,aAAav+nB,SACnH,IAAI2+nB,EAAoBrrgC,KAAK+qgC,iBlBkCS,2BkBjCtCD,EAAUp5+B,YAAY25+B,GACtBA,EAAkB35+B,YAAY1xB,KAAKsrgC,eAAez7lB,MAClDw7lB,EAAkB35+B,YAAY1xB,KAAKsrgC,eAAez7lB,MAClD,IAAI07lB,EAAoBvrgC,KAAK+qgC,iBAAiBl7lB,KAC9Ci7lB,EAAUp5+B,YAAY65+B,GACtBA,EAAkB75+B,YAAY1xB,KAAKwrgC,eAAe37lB,MAClD07lB,EAAkB75+B,YAAY1xB,KAAKwrgC,eAAe37lB,MAClD,IAAI47lB,EAAkBzrgC,KAAK+qgC,iBlBoCQ,uBkBnCnCD,EAAUp5+B,YAAY+5+B,GACtB,IAAIC,EAAY1rgC,KAAKsrgC,eAAez7lB,KAChC87lB,EAAsB7qgC,GAAc,OAAQ,CAAEC,UAAW8ngC,MACzDtv+B,EAASz4B,GAAc,SAAU,CACjCC,UAxSc,2BAySd0oV,MAAO,CAAE78U,KAAM,SAAU,MAAS5M,KAAK+zZ,KAAKhuD,YAAY,qBAa5D,GAXA/lW,KAAK+8gB,UAAY,IAAIj5P,GAAO,CAAEmoK,QAAS2/kB,4BAAuCh8pB,SAAU,YAAc5vW,KAAKmoC,OAAOynU,WAClH+7pB,EAAoBj6+B,YAAY6H,GAChCv5B,KAAK+8gB,UAAUrkL,SAASn/T,GACxBmy+B,EAAUh6+B,YAAYi6+B,GACtBF,EAAgB/5+B,YAAYg6+B,GACxB1rgC,KAAKmoC,OAAOumrB,WACZ71e,GAAazlN,IAAImG,EAAQ,QAASv5B,KAAK6rgC,qBAAsB7rgC,MAG7DA,KAAKwpgC,uBAAuBsB,GAE5B9qgC,KAAKmoC,OAAOin7B,mBAAmBhs9B,OAAS,EAAG,CAE3C,IADA,IAAI0ogC,EAAoB9rgC,KAAK+qgC,iBlBoCK,mBkBnCzBz7/B,EAAK,EAAGgmC,EAAKt1C,KAAKmoC,OAAOyh8B,aAAaxa,mBAAoB9/8B,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CACrF,IAAI66xB,EAAW70vB,EAAGhmC,GAClBw8/B,EAAkBp6+B,YAAY1xB,KAAK+rgC,sBAAsB5hO,GAC7D,CACA2gO,EAAUp5+B,YAAYo6+B,EAC1B,CACA,IAAIzj9B,EAAcroD,KAAK+qgC,iBAAiBl7lB,IAAwB,QAChExnX,EAAY32B,YAAY1xB,KAAK+x4B,cAAclie,MAC3CxnX,EAAYzuB,cAAc,IAAMi2Y,KAAuB76Y,aAAa,QAASh1B,KAAKmoC,OAAO8i+B,aAAa5i9B,aACtGyi9B,EAAUp5+B,YAAY22B,GACtB,IAAIktnB,EAASz0qB,GAAc,SAAU,CAAE2oV,MAAO,CAAE78U,KAAM,SAAUkI,MAAO,SAAU3O,MAAO,kBAExF,OADA2kgC,EAAUp5+B,YAAY6jpB,GACfu1V,CACX,EACA/B,EAAYp4/B,UAAU64/B,uBAAyB,SAAUsB,GACrD,IAAIhP,EAAmBh7/B,GAAc,MAAO,CAAEq1B,GAAIn2B,KAAKmoC,OAAOhzB,QAAQghB,GAAK,uBAC3E20+B,EAAUp5+B,YAAYoq+B,GACtB97/B,KAAK87/B,iBAAmB97/B,KAAKgsgC,yBAC7BhsgC,KAAK87/B,iBAAiBpjqB,SAASojqB,GAC/B97/B,KAAKisgC,0BACT,EACAlD,EAAYp4/B,UAAUo6/B,iBAAmB,SAAUhqgC,GAC/C,OAAOD,GAAc,MAAO,CAAEC,UAAWA,GAC7C,EACAgogC,EAAYp4/B,UAAUg2rB,mBAAqB,SAAU5lsB,EAAWi0a,EAAWpoa,GACvE,OAAO9L,GAAc8L,GAAQ,QAAS,CAClC7L,UAAWA,EAAW0oV,MAAO,CACzB78U,KAAM,OAAQlI,KAAMswa,EAAWpza,MAAO,GAAIu0B,GAAI6+Y,EAC9Clga,MAA4F,KAAnF9U,KAAK+zZ,KAAKhuD,YAAYivE,EAAU7wW,OAAO,GAAGzjD,cAAgBs0Z,EAAUpka,MAAM,IAC/Eoka,EAAYh1a,KAAK+zZ,KAAKhuD,YAAYivE,EAAU7wW,OAAO,GAAGzjD,cAAgBs0Z,EAAUpka,MAAM,MAGtG,EACAm4/B,EAAYp4/B,UAAUw5/B,gBAAkB,WACpC,OAAOnqgC,KAAKmoC,OAAOuz7B,kBAAkBiC,UAAUnwpB,SAAWxtU,KAAKmoC,OAAOuz7B,kBAAkBiC,UAAUC,SACtG,EACAmrC,EAAYp4/B,UAAUw6/B,qBAAuB,SAAUvpgC,EAAOwwZ,GAC1D,IAAI85mB,EAAclsgC,KAAK+qgC,iBAAiBnpgC,EAAQ,cAC5Coza,EAAYh1a,KAAKmsgC,aAAavqgC,GAC9BwqgC,EAAgBpsgC,KAAK2msB,mBAAmB/ksB,EAAQ,IAAMgngC,IAAa5zlB,GAoBvE,OAnBAk3lB,EAAYx6+B,YAAY06+B,GACH,IAAI1/T,IAAe,CACpCx4mB,OAAQk+T,EACRnmZ,eAAgBjM,KAAKmoC,OAAOuz7B,kBAAkBzv9B,eAC9Cq3Y,aAActjZ,KAAKmoC,OAAOm7W,aAC1B15V,IAAK5pD,KAAKmoC,OAAOo1V,QACjBtwV,IAAK,IAAIxrC,KAAK,IAAIA,MAAMzB,KAAKmoC,OAAOq1V,SAAS/6X,SAAS,GAAI,GAAI,KAC9DmtW,SAAU5vW,KAAKmoC,OAAOynU,SACtBvX,UAAWr4V,KAAKmoC,OAAOkwT,UACvBt4V,OAAQC,KAAKmoC,OAAOpoC,OACpBu9Y,eAAgB,SAChB/tS,WAAYvvG,KAAKmoC,OAAOuz7B,kBAAkBns3B,WAC1ClqF,QAAS0mT,GAAkB/rU,KAAKmoC,OAAOmnE,YACnCtvG,KAAKw1qB,UAAU,eAAiBx1qB,KAAKmoC,OAAOmnE,YAAc,IAAMtvG,KAAKmoC,OAAOuz7B,kBAAkBns3B,WAClG5rC,YAAa3jE,KAAKqsgC,cAAczqgC,GAChC24E,KAAMv6E,KAAKmqgC,kBACX3r/B,MAAO,SAEIk6U,SAAS0zqB,GACjBF,CACX,EACAnD,EAAYp4/B,UAAU25/B,sBAAwB,SAAUr25B,GAGpD,IAFA,IAAI6m4B,EAAkB,IAAMjrkB,IAA+B,KAAOA,IAEzDvga,EAAK,EAAGg9/B,EADK,GAAG17/B,MAAMjR,KAAKK,KAAKmV,QAAQ3E,iBAAiBsq+B,IACZxr+B,EAAKg9/B,EAAkBlpgC,OAAQkM,IAAM,CACvF,IACIoI,EADU40/B,EAAkBh9/B,GACT09U,cAAc,GACrCt1U,EAASzL,eAAiBjM,KAAKmoC,OAAOuz7B,kBAAkBzv9B,eACxDyL,EAAS63F,WAAavvG,KAAKmoC,OAAOuz7B,kBAAkBns3B,WACpD73F,EAAS6iE,KAAO05B,GAAYj0G,KAAKmqgC,kBACjCzy/B,EAAS00U,UACb,CACJ,EACA28qB,EAAYp4/B,UAAUy6/B,aAAe,WACjC,IAAIb,EAAWvqgC,KAAK+tU,YAAY8hG,KAChC,GAAI06lB,EAASp1/B,QAAQ0gR,cAAc3N,UAAUh1P,SAAS,iBAAkB,CACpE,IAAIymuB,EAAS35vB,KAAK+tU,YAAY8hG,KAC1B57T,EAAW,EACXj0G,KAAK4pgC,iBACL315B,EAAWoo3B,IAAqBr89B,KAAKi0G,SACrCj0G,KAAKgpgC,gBAAgBjy1B,UAAYwz1B,EAAS3ogC,OAG1CqyG,EAAWj0G,KAAKkpV,UAAUlpV,KAAKmzN,OAAOu5K,SAAShrY,UAAY1B,KAAKkpV,UAAUlpV,KAAKmzN,OAAOp8C,WAAWr1K,UAErG,IAAImuZ,EAAW9jF,GAAkBw+rB,EAAS3ogC,OAAU,KAAO,IAAIH,KAAK8ogC,EAAS3ogC,MAAMF,UAAYuyG,GAC3Fj0G,KAAK4pgC,kBACL5pgC,KAAKgpgC,gBAAgBt8nB,QAAUmjB,GAEnC8pW,EAAO/3vB,MAAQiuZ,EACf8pW,EAAOvta,UACX,CACIpsV,KAAK87/B,kBACL97/B,KAAK87/B,iBAAiBmM,oBAAoBjogC,KAAKgpgC,gBAAgBjy1B,UAEvE,EACAgy1B,EAAYp4/B,UAAUo7/B,sBAAwB,SAAUx0B,GACpD,IAAIvikB,EAAYuikB,EAAan43B,MACzBx9G,EAAQ,KAAOoza,EACf6giB,EAAa0hC,EAAazi+B,MAC1By3/B,EAAcvsgC,KAAK+qgC,iBAAiBnpgC,4BACpC4qgC,EAAgBxsgC,KAAK2msB,mBAAmB/ksB,EAAQ,IAAMgngC,IAAa5zlB,GACvEu3lB,EAAY76+B,YAAY86+B,GACxB,IAAIC,EAAmB,4FACnBl1B,EAAaolB,WAAa,2CAA6CplB,EAAaj/iB,UAAY,gBAChGi/iB,EAAam1B,cACC,IAAI1gpB,IAAY,CAC1B3zB,UAAWr4V,KAAKmoC,OAAOkwT,UACvB00F,oBAAqB/sb,KAAKmoC,OAAO4kZ,oBACjCn9E,SAAU5vW,KAAKmoC,OAAOynU,UAAY,GAClCkjE,WAAYykkB,EAAazkkB,WACzB5+U,OAAQl0F,KAAK2sgC,4BAA4B9sgC,KAAKG,MAC9Ck2b,aAAcu2kB,EACdt5yB,OAAQ,CACJlzL,KAAMs38B,EAAaj/iB,UACnB12b,MAAO21+B,EAAaiE,SAExBlllB,eAAgB,CAAE,MAASu/iB,EAAY,KAAQ7giB,GAC/C13B,eAAgB,SAChB35U,YAAaky4B,EACbtwgB,YAAa,QACbnvD,WAAY,QACZ7lV,KAAM,QAEFmoS,SAAS8zqB,GAGE,IAAIvxkB,GAAa,CAChCrrF,SAAU5vW,KAAKmoC,OAAOynU,UAAY,GAClC17Q,OAAQl0F,KAAK4sgC,yBAAyB/sgC,KAAKG,MAC3C8ya,WAAYykkB,EAAazkkB,WACzBz6E,UAAWr4V,KAAKmoC,OAAOkwT,UACvBllI,OAAQ,CACJlzL,KAAMs38B,EAAaj/iB,UACnB12b,MAAO21+B,EAAaiE,SAExBlllB,eAAgB,CAAE,MAASu/iB,EAAY,KAAQ7giB,GAC/C13B,eAAgB,SAChB35U,YAAaky4B,EACbtwgB,YAAa,QACbnvD,WAAY,QACZ8/C,aAAcu2kB,IAEL/zqB,SAAS8zqB,GAE1B,OAAOD,CACX,EACAxD,EAAYp4/B,UAAU66/B,eAAiB,SAAU5pgC,GAC7C,IAAItC,EAAQU,KACRg1a,EAAYh1a,KAAKmsgC,aAAavqgC,GAC9BirgC,EAAc7sgC,KAAK+qgC,iBAAiBnpgC,EAAQ,cAC5CkrgC,EAAgB9sgC,KAAK2msB,mBAAmB/ksB,EAAQ,IAAMgngC,IAAa5zlB,GAsBvE,OArBA63lB,EAAYn7+B,YAAYo7+B,GACL,IAAI7xkB,GAAa,CAChC0C,gBAAgB,EAChBzpW,OAAQl0F,KAAK+sgC,iBAAiBltgC,KAAKG,MACnC4vW,SAAU5vW,KAAKmoC,OAAOynU,UAAY,GAClCkjE,WAAY9ya,KAAKmoC,OAAO6k+B,mBACxB30qB,UAAWr4V,KAAKmoC,OAAOkwT,UACvBllI,OAAQ,CAAElzL,KAAM,OAAQr+B,MAAO,SAC/Buic,qBAAsBnkc,KAAKmoC,OAAOkje,UAAUtlK,YAAY,kBACxD8tF,kBAAmB7zb,KAAKmoC,OAAOkje,UAAUtlK,YAAY,aACrDqkH,UAAW,SAAU/pd,GACjB,IAAI2uL,EAAQ,IAAIwkP,GAChBxkP,EAAoB,KAAX3uL,EAAE4/B,KAAe+uJ,EAAMnmI,MAAM,OAAQ,WAAYxoD,EAAE4/B,MAAM,GAAQ+uJ,EAC1E3uL,EAAE44b,WAAW35b,EAAM6oC,OAAO6k+B,mBAAoBh+0B,EAClD,EACAsnO,eAAgB,CAAE,MAASt2Z,KAAKqsgC,cAAczqgC,GAAQ,KAAQoza,EAAW/za,KAAM,UAC/Eq8Y,eAAgB,SAChB35U,YAAa3jE,KAAKqsgC,cAAczqgC,GAChC2jc,YAAa,UAEJ7sG,SAASo0qB,GACfD,CACX,EACA9D,EAAYp4/B,UAAUg8/B,4BAA8B,SAAU1z/B,GAC1D,GAAKA,EAAKrX,OAAU5B,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAM2u7B,aAAajtgC,KAAKmoC,OAAOin7B,mBAAmBhs9B,QAAU,GAK9G,IAFA,IAAIgs9B,EAAqBpv9B,KAAKmoC,OAAOyh8B,aAAaxa,mBAC9Cp6iB,EAAY/7Z,EAAK9D,QAAQmd,aAAa,SAAWtyB,KAAKshvB,cAAcrouB,EAAK9D,SACpEhJ,EAAI,EAAGA,EAAIij9B,EAAmBhs9B,OAAQ+I,IAC3C,GAAIij9B,EAAmB7i8B,SAASpgB,EAAE2K,WAAY,KAAKsoG,QAAU41T,GAAa7oa,EAAIij9B,EAAmBhs9B,OAAS,EAAG,CAezG,IAdA,IAAI8pgC,EAAYltgC,KAAK0yP,eAAevmP,GAChCghgC,EAAa,GACb1gsB,EAAU,SAAUz8T,GACpB,IAAIo9/B,EAAgBh+C,EAAmBjj9B,EAAI,GAEvC/F,EAASgngC,EAAct6lB,WAAW1sa,QAAO,SAAU8jC,GACnD,OAAOA,EAAKkj+B,EAAc99C,gBAAkBr28B,EAAKrX,MAAM2qB,SAASvc,EAAE8G,WAAY,IAClF,IAAG,GACCu2/B,EAAYthsB,GAAkB3lU,GACmB,KAAjDA,EAAOgp9B,EAAmBjj9B,EAAI,GAAGmj9B,cACjCg+C,EAAYnyqB,EAAOoyqB,iBAAiBphgC,EAAGkhgC,GAC3CF,EAAaA,EAAW/z/B,OAAOk0/B,EACnC,EACInyqB,EAASn7V,KACJgQ,EAAI,EAAGA,EAAIiJ,EAAKrX,MAAMwB,OAAQ4M,IACnCy8T,EAAQz8T,GAEZk9/B,EAAUp6lB,WAAaq6lB,EACvBD,EAAU9grB,UACd,CAER,EACA28qB,EAAYp4/B,UAAU+hP,eAAiB,SAAUjmO,GAC7C,IAAI8q9B,EAAev3+B,KAAKmoC,OAAOyh8B,aAAaxa,mBAAmB3i8B,EAAQ,GACnEyg/B,EAAYltgC,KAAKmV,QAAQykB,cAAc,MAAQ298B,EAAan43B,OAC5D4tO,cAAc,GAElB,OADAkgrB,EAAU748B,QACH648B,CACX,EACAnE,EAAYp4/B,UAAUi8/B,yBAA2B,SAAU3z/B,GACvD,GAAKA,EAAKrX,SAAS5B,KAAKmoC,OAAOin7B,mBAAmBhs9B,QAAU,IAAMpD,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAM2u7B,UAKtG,IAFA,IAAIj4lB,EAAY/7Z,EAAK9D,QAAQmd,aAAa,SAAWtyB,KAAKshvB,cAAcrouB,EAAK9D,SACzEi68B,EAAqBpv9B,KAAKmoC,OAAOyh8B,aAAaxa,mBACzCjj9B,EAAI,EAAGA,EAAIij9B,EAAmBhs9B,OAAQ+I,IAC3C,GAAKA,EAAIij9B,EAAmBhs9B,OAAS,GAAMgs9B,EAAmB7i8B,SAASpgB,EAAE2K,WAAY,KAAKsoG,QAAU41T,EAAW,CAC3G,IAAIw4lB,EAASxtgC,KAAK0yP,eAAevmP,GAC7BkhgC,EAAUp0/B,EAAK+5Z,SAASo8iB,EAAmB7i8B,SAASpgB,EAAE2K,WAAY,KAAK0k+B,SAC3EgyB,EAAO16lB,WAAa9ya,KAAKutgC,iBAAiBphgC,EAAGkhgC,GAC7CG,EAAOphrB,WACP,IAAIqhrB,EAAYD,EAAO16lB,WAAW1va,OAAS,EACvCoqgC,EAAO16lB,WAAW,GAAGs8iB,EAAmBjj9B,EAAI,GAAGqv+B,SAAW,KAC9DgyB,EAAO5rgC,MAASwt9B,EAAmBjj9B,EAAI,GAAGuggC,cAAiB,CAACe,GAAYA,EACxED,EAAOphrB,UACX,CAER,EACA28qB,EAAYp4/B,UAAU48/B,iBAAmB,SAAU9g/B,EAAO4g/B,GACtD,IAAI91B,EAAev3+B,KAAKmoC,OAAOyh8B,aAAaxa,mBAAmB3i8B,EAAQ,GACvE,OAAO8q9B,EAAazkkB,WAAW1sa,QAAO,SAAU8jC,GAC5C,OAAOA,EAAKqt8B,EAAajoB,gBAAkB+9C,CAC/C,GACJ,EACAtE,EAAYp4/B,UAAUo8/B,iBAAmB,SAAU9z/B,GAE/C,IADgBA,EAAK9D,QAAQmd,aAAa,SAAWtyB,KAAKshvB,cAAcrouB,EAAK9D,YAC3DnV,KAAKmoC,OAAOw+7B,YAAYuQ,cAAe,CACrD,IAAIw2B,EAAmB1tgC,KAAK+tU,YAAY8hG,KACpC89lB,EAAiB3tgC,KAAK+tU,YAAY8hG,KACtC89lB,EAAe/rgC,MAAQ8rgC,EAAiB9rgC,MACxC+rgC,EAAevhrB,UACnB,CACJ,EACA28qB,EAAYp4/B,UAAU26/B,eAAiB,SAAU1pgC,GAC7C,IAAIgsgC,EAAc5tgC,KAAK+qgC,iBAAiBnpgC,EAAQ,cAC5Coza,EAAYh1a,KAAKmsgC,aAAavqgC,GAC9BisgC,EAAgB7tgC,KAAK2msB,mBAAmB/ksB,EAAQ,IAAMgngC,IAAa5zlB,GACvE44lB,EAAYl8+B,YAAYm8+B,GACxB,IAAIt/Z,EAAW,IAAIgkG,IAAS,CACxBr+mB,OAAQl0F,KAAKi1S,SAASp1S,KAAKG,MAC3B4vW,SAAUhuW,EAAQ,IAAM5B,KAAKmoC,OAAOynU,SACpCvX,UAAWr4V,KAAKmoC,OAAOkwT,UACvB00F,oBAAqB/sb,KAAKmoC,OAAO4kZ,oBACjC3+I,MAAOpuS,KAAKqsgC,cAAczqgC,KAO9B,OALA2smB,EAAS71Q,SAASm1qB,GAClBA,EAAc74+B,aAAa,OAAQggZ,GACjB,WAAdA,IACAh1a,KAAK8tgC,aAAev/Z,GAEjBq/Z,CACX,EACA7E,EAAYp4/B,UAAUoh4B,cAAgB,SAAUnw4B,GAC5C,IAAImsgC,EAAa/tgC,KAAK+qgC,iBAAiBnpgC,EAAQ,cAC3Coza,EAAYh1a,KAAKmsgC,aAAavqgC,GAC9BupI,EAAevpI,IAAUiua,IAAyB,WAAa,QAC/Dm+lB,EAAehugC,KAAK2msB,mBAAmB/ksB,EAAQ,IAAMgngC,IAAa5zlB,EAAW7pS,GAUjF,OATA4i4B,EAAWr8+B,YAAYs8+B,GACvBr24B,GAAMkpR,YAAY,CACd1rY,QAAS64/B,EACT1wnB,eAAgB,SAChB5qX,WAAY,CACR2lU,UAAWr4V,KAAKmoC,OAAOkwT,UACvB10R,YAAa3jE,KAAKqsgC,cAAczqgC,MAGjCmsgC,CACX,EACAhF,EAAYp4/B,UAAUw7/B,aAAe,SAAUzngC,GAC3C,IAAIswa,EAAY,GAChB,OAAQtwa,GACJ,KAAKmra,IACDmF,EAAYh1a,KAAKmzN,OAAOmkP,QACxB,MACJ,KAAKznC,IACDmF,EAAYh1a,KAAKmzN,OAAOx7L,SACxB,MACJ,KAAKk4Y,IACDmF,EAAYh1a,KAAKmzN,OAAOp8C,UACxB,MACJ,KAAK84P,IACDmF,EAAYh1a,KAAKmzN,OAAOu5K,QACxB,MACJ,KAAKmjC,IACDmF,EAAYh1a,KAAKmzN,OAAO9qK,YACxB,MACJ,KAAKwnX,IACDmF,EAAYh1a,KAAKmzN,OAAO4qwB,SACxB,MACJ,KAAKlujB,IACDmF,EAAYh1a,KAAKmzN,OAAO+jxB,cACxB,MACJ,KAAKrnkB,IACDmF,EAAYh1a,KAAKmzN,OAAOgkxB,YACxB,MACJ,KAAKtnkB,IACDmF,EAAY,WACZ,MACJ,KAAKnF,IACDmF,EAAY,SAGpB,OAAOA,CACX,EACA+zlB,EAAYp4/B,UAAU07/B,cAAgB,SAAUr3lB,GAC5C,IAAIs6hB,EAAY,GAChB,OAAQt6hB,GACJ,KAAKnF,IACDy/hB,EAAYtv8B,KAAKmoC,OAAO8i+B,aAAa3zjB,QACrC,MACJ,KAAKznC,IACDy/hB,EAAYtv8B,KAAKmoC,OAAO8i+B,aAAatz+B,SACrC,MACJ,KAAKk4Y,IACDy/hB,EAAYtv8B,KAAKmoC,OAAO8i+B,aAAa5i9B,YACrC,MACJ,KAAKwnX,IACDy/hB,EAAYtv8B,KAAKmoC,OAAO8i+B,aAAal01B,UACrC,MACJ,KAAK84P,IACDy/hB,EAAYtv8B,KAAKmoC,OAAO8i+B,aAAav+nB,QACrC,MACJ,KAAKmjC,IACDy/hB,EAAYtv8B,KAAKmoC,OAAO8i+B,aAAa/zB,cACrC,MACJ,KAAKrnkB,IACDy/hB,EAAYtv8B,KAAKmoC,OAAO8i+B,aAAa9zB,YACrC,MACJ,KAAKtnkB,IACDy/hB,EAAYtv8B,KAAKmoC,OAAO8i+B,aAAa5/B,eACrC,MACJ,KAAKx7jB,IACDy/hB,EAAYtv8B,KAAKmoC,OAAO8i+B,aAAaltC,SACrC,MACJ,KAAKlujB,IACDy/hB,EAAYtv8B,KAAK+zZ,KAAKhuD,YAAY,YAG1C,OAAOupmB,CACX,EACAy5D,EAAYp4/B,UAAUskS,SAAW,SAAUh8R,GACvC,IAAIg1/B,EAAiB,IAAMp+lB,IAAiC,KAAOA,IAAsB,KAAOA,IAC5Fxna,EAASotF,GAAQx8E,EAAK8d,MAAM1uB,OAAQ4lgC,GACpC5lgC,EAAO6/Q,UAAUh1P,SAAS28Y,KAC1B7va,KAAKkugC,eAAej1/B,EAAK6yC,SAEpBzjD,EAAO6/Q,UAAUh1P,SAAS28Y,KAC/B7va,KAAKmugC,oBAAoBl1/B,EAAK6yC,SAEzBzjD,EAAO6/Q,UAAUh1P,SAAS28Y,MAC/B7va,KAAKougC,eAAen1/B,EAAK6yC,QAEjC,EACAi98B,EAAYp4/B,UAAU09/B,mBAAqB,WACvC,IAAIl5/B,EAAUrU,GAAc,OAC5Bd,KAAKsugC,mBAAqB,IAAIv+uB,IAAO,CACjCrhG,OAAQ1uL,KAAK+zZ,KAAKhuD,YAAY,cAC9Bl2D,SAAS,EACT96R,QAAS,mCACTsogB,eAAe,EACf7+f,MAAO,MACP4nI,QAAS,CAAC,CACF48H,MAAOhjR,KAAKuugC,iBAAiB1ugC,KAAKG,MAClCy9gB,YAAa,CAAE1ogB,QAAS/U,KAAK+zZ,KAAKhuD,YAAY,QAAS6J,SAAU,SAAUzmN,WAAW,IAE1F,CAAE65H,MAAOhjR,KAAKwugC,mBAAmB3ugC,KAAKG,MAAOy9gB,YAAa,CAAE7tK,SAAU,WAAY76V,QAAS/U,KAAK+zZ,KAAKhuD,YAAY,aACrH19V,OAAQrI,KAAKmV,QACbk4b,kBAAmB,CAAEr5P,OAAQ,QAC7BqkJ,UAAWr4V,KAAKmoC,OAAOkwT,UACvB00F,oBAAqB/sb,KAAKmoC,OAAO4kZ,oBACjCwvF,SAAS,EACT3sK,SAvrBc,sBAwrBd9sO,KAAM9iI,KAAKyugC,iBAAiB5ugC,KAAKG,QAErCA,KAAKmV,QAAQuc,YAAYvc,GACzBnV,KAAKsugC,mBAAmB51qB,SAASvjV,GACjCnV,KAAKwpgC,uBAAuBxpgC,KAAKsugC,mBAAmBn5/B,QAAQykB,cAAc,iBAC9E,EACAmv+B,EAAYp4/B,UAAUk7/B,qBAAuB,WACzC7rgC,KAAKsugC,mBAAmBjotB,OACpBrmT,KAAK87/B,kBAAoB97/B,KAAK0ugC,YAC9B1ugC,KAAK87/B,iBAAiBgJ,kBAAkB9kgC,KAAK0ugC,WAErD,EACA3F,EAAYp4/B,UAAUy9/B,eAAiB,SAAUhngC,GACzCA,GACKpH,KAAKsugC,oBACNtugC,KAAKqugC,qBAETrugC,KAAK87/B,iBAAiB7vqB,cAAc,CAAE2jE,UAAW5vZ,KAAK2ugC,gBAAiB/J,aAAc,IACrF5kgC,KAAK6rgC,yBAGD7rgC,KAAKsugC,oBACLtugC,KAAKsugC,mBAAmB/wuB,OAE5Bv9R,KAAK0ugC,WAAa,GACd1ugC,KAAK87/B,mBACL97/B,KAAK87/B,iBAAiBgJ,kBAAkB9kgC,KAAK0ugC,YAC7C1ugC,KAAK4ugC,kBAAkB5ugC,KAAK0ugC,aAGhClmvB,GAAS,CADKxoR,KAAKmV,QAAQykB,cAAc,IAAMiv+B,MAC3BC,KAE5B,EACAC,EAAYp4/B,UAAU49/B,iBAAmB,WACrCvugC,KAAK0ugC,WAAa1ugC,KAAK87/B,iBAAiB+I,oBACxC,IAAI1v/B,EAAUnV,KAAKmV,QAAQykB,cAAc,IAAMiv+B,KAC3C7ogC,KAAK87/B,iBAAiB+I,oBACtB58uB,GAAY,CAAC9yQ,GAAU2z/B,MAGvBtgvB,GAAS,CAACrzQ,GAAU2z/B,KACpB9ogC,KAAK8tgC,aAAa7hrB,cAAc,CAAEngS,SAAS,KAE/C9rD,KAAK4ugC,kBAAkB5ugC,KAAK0ugC,YAC5B1ugC,KAAK6ugC,mBACT,EACA9F,EAAYp4/B,UAAUk+/B,kBAAoB,WACtC7ugC,KAAKsugC,mBAAmB/wuB,MAC5B,EACAwruB,EAAYp4/B,UAAU69/B,mBAAqB,WACvCxugC,KAAK6ugC,oBACD7ugC,KAAK87/B,kBACL97/B,KAAK87/B,iBAAiBgJ,kBAAkB9kgC,KAAK8ugC,gBAE5C9ugC,KAAK8ugC,gBACN9ugC,KAAK8tgC,aAAa7hrB,cAAc,CAAEngS,SAAS,GAEnD,EACAi98B,EAAYp4/B,UAAU89/B,iBAAmB,WACrCzugC,KAAK8ugC,eAAiB9ugC,KAAK87/B,iBAAiB+I,mBAChD,EACAkE,EAAYp4/B,UAAUm5/B,oBAAsB,SAAUrzB,EAAUkuB,GAC5D,GAAK3kgC,KAAKmoC,OAAOi07B,cAAcpuV,YAA/B,CAGIhuoB,KAAKmoC,OAAOumrB,YAAci2S,IAAe3kgC,KAAKsugC,oBAC9CtugC,KAAKqugC,qBAETrugC,KAAKmV,QAAQykB,cAAc,IAAMi2Y,KAAgB96Y,gBAAgB,WACjE/0B,KAAKmV,QAAQykB,cAAc,IAAMi2Y,KAAmC3mY,UAAYlpC,KAAK+zZ,KAAKhuD,YAAY,YACtG0woB,EAAS7J,UAAW,EACpB5s+B,KAAK2ugC,gBAAkBl4B,EAASz2+B,KAAKmzN,OAAOp8C,WAC5C/2K,KAAK0ugC,WAAa,GACb3isB,GAAkB/rU,KAAKmoC,OAAOi07B,cAAcjpwB,OAAOmkP,QAAQz2c,WAC5D41+B,EAASz2+B,KAAKmzN,OAAOmkP,SAAWt3c,KAAKmoC,OAAOi07B,cAAcjpwB,OAAOmkP,QAAQz2c,SAExEkrU,GAAkB/rU,KAAKmoC,OAAOi07B,cAAcjpwB,OAAOx7L,SAAS92B,WAC7D41+B,EAASz2+B,KAAKmzN,OAAOx7L,UAAY33B,KAAKmoC,OAAOi07B,cAAcjpwB,OAAOx7L,SAAS92B,SAE1EkrU,GAAkB/rU,KAAKmoC,OAAOi07B,cAAcjpwB,OAAO9qK,YAAYxnD,WAChE41+B,EAASz2+B,KAAKmzN,OAAO9qK,aAAeroD,KAAKmoC,OAAOi07B,cAAcjpwB,OAAO9qK,YAAYxnD,SAErFb,KAAK+ugC,YAAYt4B,GACbA,EAASz2+B,KAAKmzN,OAAOk4wB,iBAAmBrr+B,KAAK87/B,mBAC7C97/B,KAAK87/B,iBAAiBgJ,kBAAkBruB,EAASz2+B,KAAKmzN,OAAOk4wB,gBAAiBoL,EAASz2+B,KAAKmzN,OAAOp8C,YACnG/2K,KAAK0ugC,WAAaj4B,EAASz2+B,KAAKmzN,OAAOk4wB,iBAE3C,IAAIytB,EAAe94/B,KAAKmV,QAAQykB,cAAc,IAAMi2Y,KAYpD,GAXIiplB,GACAtwuB,GAAS,CAACswuB,GAAejplB,KAEzB7va,KAAK87/B,mBACL97/B,KAAK87/B,iBAAiB7vqB,cAAc,CAChC2jE,UAAW6mlB,EAASz2+B,KAAKmzN,OAAOp8C,WAChC6t1B,aAAe74rB,GAAkB44rB,GAA4B54rB,GAAkB0qqB,EAASz2+B,KAAKmzN,OAAOk4wB,iBAC3D,EAArCrr+B,KAAK87/B,iBAAiB8I,aADqBD,IAGnD3kgC,KAAK0ugC,WAAa1ugC,KAAK87/B,iBAAiBl6/B,OAExC5B,KAAKmoC,OAAOumrB,YAAc3iZ,GAAkB/rU,KAAKmoC,OAAOuh+B,gBAAiB,CACzE,IAAIv0/B,EAAUnV,KAAKmV,QAAQykB,cAAc,IAAMiv+B,KAC3CpyB,EAASz2+B,KAAKmzN,OAAOk4wB,iBAAmBs5B,GACxC18uB,GAAY,CAAC9yQ,GAAU2z/B,KACvB9ogC,KAAK8tgC,aAAa7hrB,cAAc,CAAEngS,SAAS,MAG3C08N,GAAS,CAACrzQ,GAAU2z/B,KACpB9ogC,KAAK8tgC,aAAa7hrB,cAAc,CAAEngS,SAAS,KAE/C9rD,KAAK4ugC,kBAAkB5ugC,KAAK0ugC,WAChC,KACK,CACD,IAAIvW,EAAan4/B,KAAKmV,QAAQykB,cAAc,IAAMi2Y,KAClD7va,KAAKgvgC,cAAc7W,GAAY,EACnC,CACAn4/B,KAAK8hhB,aAAaz7N,MAnDlB,CAoDJ,EACA0itB,EAAYp4/B,UAAU+y9B,mBAAqB,SAAUy4B,EAAW1lB,GACxD0lB,EAAU7kjB,UACVm/hB,EAASz2+B,KAAKmzN,OAAOmkP,SAAW6kjB,EAAU7kjB,SAE9Cm/hB,EAASz2+B,KAAKmzN,OAAOp8C,WAAaol1B,EAAUpl1B,UAC5C0/zB,EAASz2+B,KAAKmzN,OAAOu5K,SAAWyvnB,EAAUzvnB,QAC1C+pmB,EAASz2+B,KAAKmzN,OAAO4qwB,UAAYo+B,EAAUp+B,SACvCo+B,EAAU8S,iBACVx4B,EAASz2+B,KAAKmzN,OAAOk4wB,gBAAkB8wB,EAAU8S,iBAEjDjvgC,KAAKmoC,OAAOin7B,mBAAmBhs9B,OAAS,GAAKpD,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,IACpGpD,KAAKmoC,OAAOyh8B,aAAagqB,kBAAkBnd,EAEnD,EACAsyB,EAAYp4/B,UAAUul/B,oBAAsB,WACxC,IAAIzs1B,EAAOzpK,KAAKmV,QAAQykB,cAAc,IAAMi2Y,KAC5C,GAAKpmQ,EAAL,CAGA,IAAIyl2B,EAAoB,SAAUjnJ,GAC9B,OAAQA,GAASxo3B,OAAO8E,KAAK0j3B,GAAO7k3B,OAAS,EAAK6k3B,OAAQ5k3B,CAC9D,EACI4k3B,EAAQ,CAAC,EACTknJ,EAAcD,EAAkBlvgC,KAAKmoC,OAAOi07B,cAAcjpwB,OAAOmkP,QAAQ6+iB,YACxEpqrB,GAAkBojsB,KACnBlnJ,EAAMjo3B,KAAKmoC,OAAOi07B,cAAcjpwB,OAAOmkP,QAAQ5yc,MAAQyqgC,GAE3D,IAAIC,EAAeF,EAAkBlvgC,KAAKmoC,OAAOi07B,cAAcjpwB,OAAOx7L,SAASw+9B,YAC1EpqrB,GAAkBqjsB,KACnBnnJ,EAAMjo3B,KAAKmoC,OAAOi07B,cAAcjpwB,OAAOx7L,SAASjzB,MAAQ0qgC,GAE5D,IAAIC,EAAgBH,EAAkBlvgC,KAAKmoC,OAAOi07B,cAAcjpwB,OAAOp8C,UAAUo/0B,YAC5EpqrB,GAAkBsjsB,KACnBpnJ,EAAMjo3B,KAAKmoC,OAAOi07B,cAAcjpwB,OAAOp8C,UAAUryK,MAAQ2qgC,GAE7D,IAAIC,EAAcJ,EAAkBlvgC,KAAKmoC,OAAOi07B,cAAcjpwB,OAAOu5K,QAAQypnB,YACxEpqrB,GAAkBujsB,KACnBrnJ,EAAMjo3B,KAAKmoC,OAAOi07B,cAAcjpwB,OAAOu5K,QAAQhoY,MAAQ4qgC,GAE3D,IAAIC,EAAkBL,EAAkBlvgC,KAAKmoC,OAAOi07B,cAAcjpwB,OAAO9qK,YAAY8t8B,YAChFpqrB,GAAkBwjsB,KACnBtnJ,EAAMjo3B,KAAKmoC,OAAOi07B,cAAcjpwB,OAAO9qK,YAAY3jD,MAAQ6qgC,GAE/DvvgC,KAAK80/B,eAAiB,IAAIV,IAC1Bp0/B,KAAK80/B,eAAeT,oBAAoB5q1B,EAAMw+sB,EAAOjo3B,KAAKmV,QAASnV,KAAKmoC,OAAOpoC,OA1B/E,CA2BJ,EACAgpgC,EAAYp4/B,UAAUo+/B,YAAc,SAAU7lrB,GAC1ClpV,KAAKkpV,UAAYA,EACjB,IAAIutpB,EAAWht5B,GAAO,CAAC,EAAGy/P,EAAW,MAAM,GACrClpV,KAAK4pgC,mBAAmB5pgC,KAAK4pgC,iBAAoB79rB,GAAkB/rU,KAAKmoC,OAAOuh+B,kBACpC,IAA7CjzB,EAASz2+B,KAAKmzN,OAAOu5K,SAASvpX,YAAmE,IAA/Csz9B,EAASz2+B,KAAKmzN,OAAOu5K,SAAStpX,cAChFpjB,KAAKqqgC,WAAW5zB,GAIpB,IAFA,IAAI+4B,EAAexvgC,KAAKyvgC,gBAAgB5/lB,KACpC6/lB,EAAWjwgC,OAAO8E,KAAKky+B,GAClBnn+B,EAAK,EAAGqggC,EAAiBH,EAAclggC,EAAKqggC,EAAevsgC,OAAQkM,IAAM,CAC9E,IAAI6/f,EAAawggB,EAAerggC,GAC5Bk5lB,EAAar5F,EAAWzqgB,MAAQ1E,KAAKshvB,cAAcnyO,GAClDpjM,GAAkBy8R,IAA8B,KAAfA,KACI,IAAlCkna,EAAS/kgC,QAAQ69lB,GACjBxomB,KAAK4vgC,kBAAkBzggB,EAAYsne,EAAS,GAAKjuY,IAGjDxomB,KAAK6vgC,yBAAyB1ggB,GAG1C,CACA,GAAIpjM,GAAkB/rU,KAAKmoC,OAAOuh+B,gBAAiB,CAC/C1pgC,KAAKkugC,eAAez3B,EAASz2+B,KAAKmzN,OAAO4qwB,WACzC,IAAI+xC,EAAc9vgC,KAAK+tU,YAAY8hG,IAAsB,IAAM+4lB,KACzD78rB,GAAkB0qqB,EAASz2+B,KAAKmzN,OAAO+jxB,iBAAmBnrqB,GAAkB0qqB,EAASz2+B,KAAKmzN,OAAOgkxB,gBACnG24B,EAAYhk9B,SAAU,EACtBgk9B,EAAY1jrB,YAEhBpsV,KAAKmugC,oBAAoB2B,EAAYhk9B,gBAC9B2q7B,EAAS7J,QACpB,CACJ,EACAm8B,EAAYp4/B,UAAU2wuB,cAAgB,SAAUnsuB,GAC5C,IAAI61B,EAAW71B,EAAQmd,aAAa,cAAgB,GACpD,GAAiB,KAAb0Y,EAAiB,CACjB,IAAI+k+B,GAAc,EACdC,EAAgB,GAChB76/B,EAAQ+yQ,UAAUh1P,SAAS,mBAC3B88+B,EAAgB,QAChBD,GAAc,GAET56/B,EAAQ+yQ,UAAUh1P,SAAS,kBAChC88+B,EAAgB,gBAChBD,GAAc,GAET56/B,EAAQ+yQ,UAAUh1P,SAAS,oBAChC88+B,EAAgB,mBAEX76/B,EAAQ+yQ,UAAUh1P,SAAS,gBAChC88+B,EAAgB,eAEX76/B,EAAQ+yQ,UAAUh1P,SAAS,gBAChC88+B,EAAgB,cAEpB,IACIpkE,EAAUn22B,GAAQtgF,EADF46/B,EAAc,IAAMC,EAAgB,mBAAqB,IAAMA,IAClC76/B,EAAQykB,cAAc,IAAMo2+B,GAC7E,GAAIpkE,EAAS,CACT,IAAIqkE,EAAUrkE,EAAQhy6B,cAAc,UAChCq2+B,IACAjl+B,EAAWil+B,EAAQvrgC,KAE3B,CACJ,CACA,OAAOsmC,CACX,EACA+99B,EAAYp4/B,UAAUu9/B,eAAiB,SAAUgC,GAC7C,IAGI7q/B,EAHAkl/B,EAAWvqgC,KAAK+tU,YAAY8hG,KAC5B8pV,EAAS35vB,KAAK+tU,YAAY8hG,KAC1Bg9lB,EAAc7sgC,KAAKmV,QAAQykB,cAAc,0BAEzCs2+B,GACA7q/B,EAAU0mT,GAAkB/rU,KAAKmoC,OAAOmnE,YAAetvG,KAAKw1qB,UAAU,eAAiBx1qB,KAAKmoC,OAAOmnE,WACnGk5K,GAASxoR,KAAKmV,QAAQ3E,iBAAiB,gBAAiBq/Z,KACxDrnJ,GAAS,CAACqkvB,GAAch9lB,KACpB7va,KAAKmV,QAAQykB,cAAc,IAAMi2Y,MACjC5nJ,GAAY,CAACjoR,KAAKmV,QAAQykB,cAAc,IAAMi2Y,MAAwCA,KAE1F06lB,EAASll/B,OAASs0uB,EAAOt0uB,OAASA,IAGlCA,EAAU0mT,GAAkB/rU,KAAKmoC,OAAOmnE,YAAetvG,KAAKw1qB,UAAU,eAAiB,IACnFx1qB,KAAKmoC,OAAOuz7B,kBAAkBns3B,WAAavvG,KAAKmoC,OAAOmnE,WAAa,IAAMtvG,KAAKmoC,OAAOuz7B,kBAAkBns3B,WAC5G04K,GAAYjoR,KAAKmV,QAAQ3E,iBAAiB,gBAAiBq/Z,KAC3D5nJ,GAAY,CAAC4kvB,GAAch9lB,KACvB7va,KAAKmV,QAAQykB,cAAc,oCAAoCkyB,SAC/D08N,GAAS,CAACxoR,KAAKmV,QAAQykB,cAAc,IAAMi2Y,MAAwCA,KAEvF06lB,EAASll/B,OAASs0uB,EAAOt0uB,OAASA,GAElCrlB,KAAK4pgC,iBACL5pgC,KAAKmwgC,eAAeD,EAAc3F,EAAU5wQ,GAEhD4wQ,EAASn+qB,WACTuta,EAAOvta,WACFrgB,GAAkB/rU,KAAK87/B,mBACxB97/B,KAAK87/B,iBAAiBmM,oBAAoBsC,EAAS3ogC,MAE3D,EACAmngC,EAAYp4/B,UAAUw//B,eAAiB,SAAUD,EAAc3F,EAAU5wQ,GACrE,IAAI/pW,EACAC,EACJ,GAAIqgnB,EAEA,GADAtgnB,EAAYyskB,IAAe,IAAI569B,KAAKzB,KAAKgpgC,gBAAgBjy1B,UAAUr1K,YAC/D1B,KAAKmoC,OAAOu17B,gBAAgBK,SAAU,CACtC,IAAIrx4B,EAAO2v4B,IAAa,IAAI569B,KAAKzB,KAAKgpgC,gBAAgBt8nB,QAAQhrY,YAAa,GAAGA,UAC9EmuZ,GAAY7vZ,KAAKgpgC,gBAAgBjy1B,UAAYrqF,EAAQ1sF,KAAKgpgC,gBAAgBt8nB,QAAU,IAAIjrY,KAAKirF,EACjG,MAEImjU,EAAUwskB,IAAe,IAAI569B,KAAKzB,KAAKgpgC,gBAAgBt8nB,QAAQhrY,gBAGlE,CACD,IAAIw0C,EAAQl2C,KAAKmoC,OAAOu17B,gBAAgB3mzB,UAGxC,IAFA64O,EAAY,IAAInuZ,KAAKzB,KAAKgpgC,gBAAgBjy1B,UAAUr1K,YAC1Ce,SAASyzC,EAAM/yB,WAAY+yB,EAAM9yB,aAAc8yB,EAAM7yB,cAC3DrjB,KAAKmoC,OAAOu17B,gBAAgBK,SAAU,CACtC,IAAI/O,EAAYhv9B,KAAKmoC,OAAOio+B,gBAAgBpwgC,KAAKmoC,OAAOko+B,UAAUn69B,OAClE05W,EAAUntZ,SAASus9B,EAAU7r8B,WAAY6r8B,EAAU5r8B,aAAc4r8B,EAAU3r8B,eAC3EwsY,EAAU,IAAIpuZ,KAAKmuZ,EAAUluZ,YACrB8iG,gBAAgB633B,IAAqBr89B,KAAKmqgC,kBACtD,MAEIt6mB,EAAU,IAAIpuZ,KAAKmuZ,EAAUluZ,YACrB8iG,gBAAgBxkG,KAAKmoC,OAAOu17B,gBAAgBhxlB,QAAQhrY,UAAY1B,KAAKmoC,OAAOu17B,gBAAgB3mzB,UAAUr1K,UAEtH,CACA1B,KAAKgpgC,gBAAkB,CAAEjy1B,UAAW,IAAIt1K,KAAKmuZ,EAAUluZ,WAAYgrY,QAAS,IAAIjrY,KAAKouZ,EAAQnuZ,YAC7F6ogC,EAAS3ogC,MAAQguZ,EACjB+pW,EAAO/3vB,MAAQiuZ,EACf06mB,EAASn+qB,WACTuta,EAAOvta,UACX,EACA28qB,EAAYp4/B,UAAU6kqB,UAAY,SAAUg1G,GAQxC,MAN2B,OAAvBxqxB,KAAKmoC,OAAOpoC,QAA0C,UAAvBC,KAAKmoC,OAAOpoC,OAClC8a,GAAS2vwB,EAAa,SAAUlqc,GAAqBtgV,KAAKmoC,OAAOm07B,oBAGjEzh9B,GAAS,QAAU7a,KAAKmoC,OAAOpoC,OAAS,oBAAsBC,KAAKmoC,OAAOm07B,kBAAoB,IAAM9xM,EAAa,SAAUzrc,GAG5I,EACAgqrB,EAAYp4/B,UAAUo5/B,qBAAuB,SAAUtzB,GACnD,GAAKz2+B,KAAKmoC,OAAOi07B,cAAchwV,aAA/B,CAQA,GALKpsoB,KAAKmoC,OAAOumrB,YACbzmc,GAAY,CAACjoR,KAAKmV,QAAQykB,cAAc,IAAMi2Y,MAA0BA,KAE5E7va,KAAKmV,QAAQykB,cAAc,IAAMi2Y,KAAmC3mY,UAAYlpC,KAAK+zZ,KAAKhuD,YAAY,aACtG/lW,KAAKmV,QAAQykB,cAAc,IAAMi2Y,KAAgB76Y,aAAa,UAAWyh9B,EAASz2+B,KAAKmzN,OAAOh9L,IAAIrf,YAC9Fi1T,GAAkB/rU,KAAKmoC,OAAOuh+B,gBAAiB,CAC/CjzB,EAAWht5B,GAAO,CAAC,EAAGgt5B,EAAU,MAAM,GACtC,IAAIq5B,EAAc9vgC,KAAK+tU,YAAY8hG,IAAsB,IAAM+4lB,KAC3Dh4nB,OAAgB,EAChB6lmB,EAASz2+B,KAAKmzN,OAAO+jxB,gBAAkBT,EAASz2+B,KAAKmzN,OAAOgkxB,cAC5DvmmB,GAAgB,EAChB5wY,KAAKmoC,OAAOu87B,UAAUuS,gBAAgBR,IAGtC7lmB,GAAgB,EAEpB6lmB,EAAS7J,SAAWh8lB,EACpBk/nB,EAAYhk9B,QAAU8kV,EACtBk/nB,EAAY1jrB,UAChB,CAiBA,GAhBApsV,KAAK+ugC,YAAYt4B,GACbA,EAASz2+B,KAAKmzN,OAAOk4wB,iBAAmBrr+B,KAAK87/B,iBAC7C97/B,KAAK87/B,iBAAiBgJ,kBAAkBruB,EAASz2+B,KAAKmzN,OAAOk4wB,gBAAiBoL,EAASz2+B,KAAKmzN,OAAOp8C,aAE7F/2K,KAAKmoC,OAAOumrB,YAAc1utB,KAAK87/B,mBACrC97/B,KAAK87/B,iBAAiB7vqB,cAAc,CAAE2jE,UAAW6mlB,EAASz2+B,KAAKmzN,OAAOp8C,aACtE/2K,KAAK87/B,iBAAiBgJ,kBAAkB,KAE5C9kgC,KAAK2ugC,gBAAkBl4B,EAASz2+B,KAAKmzN,OAAOp8C,WAC5C/2K,KAAK0ugC,WAAa,GACdj4B,EAASz2+B,KAAKmzN,OAAOk4wB,kBACjBrr+B,KAAK87/B,kBACL97/B,KAAK87/B,iBAAiBgJ,kBAAkBruB,EAASz2+B,KAAKmzN,OAAOk4wB,gBAAiBoL,EAASz2+B,KAAKmzN,OAAOp8C,YAEvG/2K,KAAK0ugC,WAAaj4B,EAASz2+B,KAAKmzN,OAAOk4wB,iBAEvCrr+B,KAAKmoC,OAAOumrB,YAAc3iZ,GAAkB/rU,KAAKmoC,OAAOuh+B,gBAAiB,CACzE,IAAIv0/B,EAAUnV,KAAKmV,QAAQykB,cAAc,IAAMiv+B,KAC3CpyB,EAASz2+B,KAAKmzN,OAAOk4wB,iBACrBpjtB,GAAY,CAAC9yQ,GAAU2z/B,KACvB9ogC,KAAK8tgC,aAAa7hrB,cAAc,CAAEngS,SAAS,MAG3C08N,GAAS,CAACrzQ,GAAU2z/B,KACpB9ogC,KAAK8tgC,aAAa7hrB,cAAc,CAAEngS,SAAS,KAE/C9rD,KAAK4ugC,kBAAkB5ugC,KAAK0ugC,WAChC,CACA,IAAI/riB,EAAa3ie,KAAKmoC,OAAOo2W,UAAYk4lB,EAASz2+B,KAAKmzN,OAAO8rL,YAC9D,GAAKj/Y,KAAKmoC,OAAOumrB,WAMZ,CACD,IAAI4hT,EAAWtwgC,KAAKmV,QAAQykB,cAAc,IAAMi2Y,KAC5CygmB,IACI3tiB,EACAn6M,GAAS,CAAC8nvB,GAAWzgmB,KAGrB5nJ,GAAY,CAACqovB,GAAWzgmB,KAGpC,KAhB6B,CACzB,IAAIsolB,EAAan4/B,KAAKmV,QAAQykB,cAAc,IAAMi2Y,KAC9CiplB,EAAe94/B,KAAKmV,QAAQykB,cAAc,IAAMi2Y,KACpD7va,KAAKgvgC,cAAc7W,EAAYx1hB,GAC/B3ie,KAAKgvgC,cAAclW,EAAcn2hB,EACrC,CAYA3ie,KAAK8hhB,aAAaz7N,MAnElB,CAoEJ,EACA0itB,EAAYp4/B,UAAUq+/B,cAAgB,SAAU75/B,EAASvT,GACjDuT,IACAA,EAAQ63U,cAAc,GAAGp+U,SAAWhN,EAE5C,EACAmngC,EAAYp4/B,UAAUq7/B,uBAAyB,WAC3C,OAAO,IAAIrJ,IAAiB,CACxBr/mB,aAActjZ,KAAKmoC,OAAOm7W,aAC1B1zC,SAAU5vW,KAAKmoC,OAAOynU,SACtBtgQ,WAAYtvG,KAAKmoC,OAAOmnE,WACxB+oP,UAAWr4V,KAAKmoC,OAAOkwT,UACvBpsV,eAAgBjM,KAAKmoC,OAAOuz7B,kBAAkBzv9B,eAC9ClM,OAAQC,KAAKmoC,OAAOpoC,QAE5B,EACAgpgC,EAAYp4/B,UAAUs7/B,yBAA2B,WAC7C,IAAIr8mB,EAAY5vZ,KAAKmV,QAAQykB,cAAc,YACvCi2X,EAAU7vZ,KAAKmV,QAAQykB,cAAc,UACzC,GAAIg2X,GAAaC,EAAS,CACtB,IAAI06mB,EAAW36mB,EAAU5iE,cAAc,GACnC2sa,EAAS9pW,EAAQ7iE,cAAc,GACnCu9qB,EAAS3g9B,IAAM5pD,KAAKmoC,OAAOo1V,QAC3BgtoB,EAASt99B,IAAMjtC,KAAKmoC,OAAOq1V,QAC3Bm8X,EAAO/vsB,IAAM5pD,KAAKmoC,OAAOo1V,QACzBo8X,EAAO1stB,IAAMjtC,KAAKmoC,OAAOq1V,QACzB+soB,EAASn+qB,WACTuta,EAAOvta,UACX,CACA,GAAIpsV,KAAK87/B,iBAAkB,CACvB,IAAIoM,EAAYlogC,KAAK87/B,iBAAiB3m/B,QAAQykB,cAAc,iBAC5D,GAAIsu+B,EAAW,CACX,IAAIqI,EAAWrI,EAAUl7qB,cAAc,GACvCujrB,EAAS3m9B,IAAM5pD,KAAKmoC,OAAOo1V,QAC3BgzoB,EAAStj+B,IAAMjtC,KAAKmoC,OAAOq1V,QAC3B+yoB,EAASnkrB,UACb,CACJ,CACJ,EACA28qB,EAAYp4/B,UAAUi+/B,kBAAoB,SAAUF,GAC5C1ugC,KAAKmoC,OAAOumrB,aAAe1utB,KAAKsugC,oBAChCtugC,KAAKqugC,qBAET,IAAInk+B,EAAOwk+B,EACN1ugC,KAAK+zZ,KAAKhuD,YAAY,WAAa,IAAM/lW,KAAK87/B,iBAAiBG,eAAeyS,GAAe1ugC,KAAK+zZ,KAAKhuD,YAAY,UACxH/lW,KAAK8tgC,aAAa7hrB,cAAc,CAAE79C,MAAOlkQ,GAC7C,EACA6+9B,EAAYp4/B,UAAU04/B,YAAc,SAAUty+B,GACtC/2B,KAAKkqgC,WACLlqgC,KAAKkqgC,YAAa,GAGtBlqgC,KAAKq7/B,YAActk+B,EACnB/2B,KAAK2ib,cAAe,EACpB3ib,KAAKmoC,OAAOoi8B,gBAAkB,CAAExz8B,WAAO1zB,EAAW8R,aAAS9R,GAC3DrD,KAAKmoC,OAAOk2hB,cAAgB,KAC5Br+jB,KAAK8hhB,aAAavkP,OACtB,EACAwruB,EAAYp4/B,UAAU2me,UAAY,WAC9Bt3e,KAAK80/B,eAAeH,iBACpB30/B,KAAKwwgC,kBACAxwgC,KAAKmoC,OAAOumrB,aAAc1utB,KAAK87/B,kBAAqB97/B,KAAK87/B,iBAAiB3juB,aAC3En4R,KAAK87/B,iBAAiBkM,aAE9B,EACAe,EAAYp4/B,UAAUw9/B,oBAAsB,SAAUvsgC,GAClD,IAAIirgC,EAAc7sgC,KAAKmV,QAAQykB,cAAc,IAAMi2Y,KAC/C4gmB,EAAoBzwgC,KAAKmoC,OAAO+07B,SAASC,uBAC7C,GAAIv79B,EAAO,CACP4mR,GAAS,CAACqkvB,GAAch9lB,KACxB,IAAI69lB,EAAmB1tgC,KAAK+tU,YAAY8hG,KACpC89lB,EAAiB3tgC,KAAK+tU,YAAY8hG,KAClCv1P,EAAWoz1B,EAAiB56lB,WAChC,IAAK46lB,EAAiB9rgC,QAAU5B,KAAKmoC,OAAOmyI,SAC5BA,EAAS71K,MAAK,SAAU+rF,GAAM,OAAOA,EAAGmosB,QAAU83O,CAAmB,MAE7En21B,EAASluK,KAAK,CAAEusxB,MAAO83O,EAAmB9z+B,KAAM8z+B,IAChD/C,EAAiB56lB,WAAax4P,EAC9Bqz1B,EAAe76lB,WAAax4P,EAC5Boz1B,EAAiBthrB,WACjBuhrB,EAAevhrB,YAGvBshrB,EAAiB9rgC,MAAQ8rgC,EAAiB9rgC,OAAS5B,KAAKmoC,OAAOmyI,UAAYm21B,EAC3E9C,EAAe/rgC,MAAQ+rgC,EAAe/rgC,OAAS5B,KAAKmoC,OAAOmyI,UAAYm21B,EACvE/C,EAAiBthrB,WACjBuhrB,EAAevhrB,UACnB,MAEInkE,GAAY,CAAC4kvB,GAAch9lB,IAEnC,EACAk5lB,EAAYp4/B,UAAU6//B,gBAAkB,WAEpC,IADA,IACSlhgC,EAAK,EAAGohgC,EADC1wgC,KAAKyvgC,gBAAgB5/lB,KACOvga,EAAKohgC,EAActtgC,OAAQkM,IAAM,CAC3E,IAAI6lY,EAAiBu7nB,EAAcphgC,GAC/Bk5lB,EAAarzN,EAAezwY,MAAQ1E,KAAKshvB,cAAcnsW,GACtDppE,GAAkBy8R,IAA8B,KAAfA,GAClCxomB,KAAK6vgC,yBAAyB16nB,EAEtC,CACJ,EACA4znB,EAAYp4/B,UAAUgr/B,UAAY,SAAU5k+B,EAAOorf,GAC/C,GAAInihB,KAAKkqgC,WACLlqgC,KAAKkqgC,YAAa,MADtB,CAIA,IAAInj+B,EAAc/mC,KAAKmV,QAAQykB,cAAc,IAAMi2Y,KACnD,IAAI9oY,IAAeA,EAAYmhP,UAAUh1P,SAAS,oBAC7C6T,EAAYimT,cAAc,GAAG8I,WADlC,CAIA,IAAIw7V,EAAiBtxrB,KAAK2wgC,yBACtB3wgC,KAAK4wgC,uBAAuBt/U,EAAejgM,SAAU8wB,KAGzDnihB,KAAKwqgC,cAAgBl5U,EAAepoW,UACpClpV,KAAKq7/B,YAActk+B,EACnB/2B,KAAK2ib,cAAe,EACpB3ib,KAAK8hhB,aAAavkP,OARlB,CALA,CAcJ,EACAwruB,EAAYp4/B,UAAUgggC,uBAAyB,WAC3C,IAAIl6B,EAAWht5B,GAAO,CAAC,EAAGzpF,KAAKi9/B,sBAAsBptlB,MAChD4mkB,EAAS7J,WACV6J,EAASz2+B,KAAKmzN,OAAO+jxB,eAAiB,KACtCT,EAASz2+B,KAAKmzN,OAAOgkxB,aAAe,aAEjCV,EAAS7J,gBACT6J,EAASjmnB,OAChBxwX,KAAK2z/B,wBAAwBld,GAC7BA,EAASz2+B,KAAKmzN,OAAOk4wB,gBAAkBrr+B,KAAK87/B,iBAAmB97/B,KAAK87/B,iBAAiB+I,qBAAuB,UAAOxhgC,EACnH,IAAI6jb,EAAUz9V,GAAO,CAAC,EAAGgt5B,EAAU,MAAM,GAOzC,OANIA,EAASz2+B,KAAKmzN,OAAO4qwB,YACrB0Y,EAASz2+B,KAAKmzN,OAAOp8C,WAAcg1J,GAAkB0qqB,EAASz2+B,KAAKmzN,OAAOp8C,YAAe,KACnFslzB,IAAe,IAAI569B,KAAKg1+B,EAASz2+B,KAAKmzN,OAAOp8C,WAAWr1K,YAC9D+0+B,EAASz2+B,KAAKmzN,OAAOu5K,SAAY3gE,GAAkB0qqB,EAASz2+B,KAAKmzN,OAAOu5K,UAAa,KAC/E2vlB,IAAaA,IAAe,IAAI569B,KAAKg1+B,EAASz2+B,KAAKmzN,OAAOu5K,SAAShrY,YAAa,IAEnF,CAAEwnV,UAAWutpB,EAAUplf,SAAUnqE,EAC5C,EACA6hlB,EAAYp4/B,UAAUiggC,uBAAyB,SAAUn6B,EAAUt0d,GAC/D,IAAI0uf,EACJ,GAAI9ksB,GAAkB/rU,KAAKmoC,OAAOuh+B,gBAAiB,CAC/C,IAAKjzB,EAASz2+B,KAAKmzN,OAAOp8C,aAAe0/zB,EAASz2+B,KAAKmzN,OAAOu5K,SAE1D,OADA1sY,KAAKmoC,OAAO637B,WAAW42B,oBAAoB,qBACpC,EAEX,GAAIngB,EAASz2+B,KAAKmzN,OAAOp8C,WAAa0/zB,EAASz2+B,KAAKmzN,OAAOu5K,SAEvD,OADA1sY,KAAKmoC,OAAO637B,WAAW42B,oBAAoB,kBACpC,CAEf,CACA,GAAI52/B,KAAK87/B,kBAAoB97/B,KAAK87/B,iBAAiBl6/B,OAAyC,KAAhC5B,KAAK87/B,iBAAiBl6/B,MAAc,CAC1D,mBAA9B5B,KAAKmoC,OAAOk2hB,gBACZwyc,EAAY7wgC,KAAK8wgC,qBAAqBr6B,EAASz2+B,KAAKmzN,OAAOp8C,WAAY0/zB,EAASz2+B,KAAKmzN,OAAOu5K,SAAUy1I,IAE1G,IAAI4uf,GAAc,EAIlB,GAHkB,sBAAdF,GAAqC7wgC,KAAKmoC,OAAO+27B,cAAcw8B,qBAC/DqV,GAAc,IAEbhlsB,GAAkB8ksB,IAAcE,KAC3B/wgC,KAAKmoC,OAAOuu9B,4BAA4C,iBAAdma,GAAiC7wgC,KAAKmoC,OAAOuu9B,4BAE7F,OADA12/B,KAAKmoC,OAAO637B,WAAWw2B,8BAA8Bqa,IAC9C,CAEf,CACA,OAAO,CACX,EACA9H,EAAYp4/B,UAAU85/B,mBAAqB,SAAUh0B,GACjD,IAAIn3+B,EAAQU,KACZA,KAAKmoC,OAAO+27B,cAAcmX,SAAU,EACpC,IAAIkB,EAAev3+B,KAAKgxgC,gBAAgBv6B,GACpCw6B,GAAyBjxgC,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,GAChFpD,KAAKmoC,OAAOin7B,mBAAmBhs9B,OAAS,KAAOpD,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAM4y7B,iBAC/EnlsB,GAAkBwrqB,GACtB7kxB,EAAU1yN,KAAKmxgC,qBACnB,GAAKplsB,GAAkBr5G,GA+CnB1yN,KAAKmoC,OAAOk2hB,cAAgB,MACxB4yc,EACAjxgC,KAAKoxgC,kBAAkB36B,EAAUz2+B,KAAKmoC,OAAOk2hB,gBAG7Co4a,EAASz2+B,KAAKmzN,OAAOh9L,IAAMn2B,KAAKmoC,OAAOu87B,UAAUmY,gBACjD78+B,KAAKmoC,OAAO0r9B,SAASpd,QArDI,CAC7B,IAAI46B,EAAqD,WAA3CrxgC,KAAKmoC,OAAOu87B,UAAUkY,iBAAgClqxB,EAAUnmM,SAASmmM,EAAS,IAC5Fs5f,EAAahstB,KAAKmoC,OAAO0u8B,WAAWzw+B,QAAO,SAAU8jC,GACrD,OAAOA,EAAK5qC,EAAM6zN,OAAOh9L,MAAQk7+B,CACrC,IAAG,GAOH,GANItlsB,GAAkBigZ,KAClBA,EAAahstB,KAAKmoC,OAAOou8B,UAAUnw+B,QAAO,SAAU8jC,GAChD,OAAOA,EAAK5qC,EAAM6zN,OAAOh9L,MAAQk7+B,CACrC,IAAG,KAEP56B,EAAWht5B,GAAO,CAAC,EAAGuioB,EAAYyqR,IACrBz2+B,KAAKmzN,OAAO8rL,YACrB,OAAO,EAEX,IAAIo/K,OAAgB,EACpB,IAAKtyP,GAAkBigZ,EAAWhstB,KAAKmzN,OAAOk4wB,iBAAkB,CAG5D,GAFAhta,EAAgBr+jB,KAAKmoC,OAAOk2hB,cAC5Bo4a,EAAS1xM,KAAO/kyB,KAAKmoC,OAAOoi8B,gBAAgBxz8B,MAAMguwB,KAChB,mBAA9B/kyB,KAAKmoC,OAAOk2hB,gBACPo4a,EAASz2+B,KAAKmzN,OAAO2ixB,eAKtBu7B,EAAU56B,EAASz2+B,KAAKmzN,OAAO2ixB,cAC/Bz3a,EAAgB,OALhBo4a,EAASz2+B,KAAKmzN,OAAOh9L,IAAMn2B,KAAKmoC,OAAOu87B,UAAUmY,gBACjDpG,EAAS1xM,KAAO/kyB,KAAKmoC,OAAOoi8B,gBAAgBxz8B,MAAMguwB,MAMlD/kyB,KAAKmoC,OAAOuu9B,4BAA8B12/B,KAAKsxgC,yBAAyBD,EAAS56B,IACjF,OAAO,EAGmB,eAA9Bz2+B,KAAKmoC,OAAOk2hB,eAAkCo4a,EAASz2+B,KAAKmzN,OAAOh9L,MAAQ61rB,EAAWhstB,KAAKmzN,OAAOh9L,IAClGsg9B,EAASz2+B,KAAKmzN,OAAO2ixB,cAAgB9pR,EAAWhstB,KAAKmzN,OAAOh9L,IAEzB,wBAA9Bn2B,KAAKmoC,OAAOk2hB,gBACjBo4a,EAASz2+B,KAAKmzN,OAAOh9L,IAAMn2B,KAAKmoC,OAAOu87B,UAAUmY,gBACjDpG,EAASz2+B,KAAKmzN,OAAOqqxB,aAAexxR,EAAWhstB,KAAKmzN,OAAOh9L,IAEnE,CACI86+B,EACAjxgC,KAAKoxgC,kBAAkB36B,EAAU,OAAQp4a,GAGzCr+jB,KAAKmoC,OAAO26tB,UAAU2zO,EAAUp4a,EAExC,CAWA,OAAOr+jB,KAAKmoC,OAAO+27B,cAAcmX,OACrC,EACA0yB,EAAYp4/B,UAAUqggC,gBAAkB,SAAUv6B,GAC9C,IAAIc,EAAe,MACdxrqB,GAAkB/rU,KAAKmoC,OAAOyh8B,gBAAkB79pB,GAAkB/rU,KAAKmoC,OAAOyh8B,aAAaxa,qBACzFpv9B,KAAKmoC,OAAOyh8B,aAAaxa,mBAAmBhs9B,OAAS,IAExDm0+B,EAAed,EADQz2+B,KAAKmoC,OAAOyh8B,aAAaxa,mBAAmBx+8B,OAAO,GAAG,GACpCwuG,QAE7C,OAAOm43B,CACX,EACAwxB,EAAYp4/B,UAAUss/B,sBAAwB,SAAUl8/B,GAGpD,IAFA,IACI01+B,EAAW,CAAC,EACPnn+B,EAAK,EAAGiigC,EAFCvxgC,KAAKyvgC,gBAAgB1ugC,GAEOuO,EAAKiigC,EAAcnugC,OAAQkM,IAAM,CAC3E,IAAI6lY,EAAiBo8nB,EAAcjigC,GAC/Bk5lB,EAAarzN,EAAezwY,MAAQ1E,KAAKshvB,cAAcnsW,GACtDppE,GAAkBy8R,IAA8B,KAAfA,IAClCiuY,EAAS,GAAKjuY,GAAcxomB,KAAKwxgC,oBAAoBr8nB,GAE7D,CACA,OAAOshmB,CACX,EACAsyB,EAAYp4/B,UAAUgj/B,wBAA0B,SAAUld,GACjD1qqB,GAAkB0qqB,EAASz2+B,KAAKmzN,OAAOmkP,YACxCm/hB,EAASz2+B,KAAKmzN,OAAOmkP,SAAWm/hB,EAASz2+B,KAAKmzN,OAAOmkP,UAAYt3c,KAAKmoC,OAAOi07B,cAAcjpwB,OAAOmkP,QAAQz2c,SACnGb,KAAK+zZ,KAAKhuD,YAAY,aAE5Bh6B,GAAkB0qqB,EAASz2+B,KAAKmzN,OAAOx7L,aACxC8+8B,EAASz2+B,KAAKmzN,OAAOx7L,UAAY8+8B,EAASz2+B,KAAKmzN,OAAOx7L,WAAa33B,KAAKmoC,OAAOi07B,cAAcjpwB,OAAOx7L,SAAS92B,SAE5GkrU,GAAkB0qqB,EAASz2+B,KAAKmzN,OAAO9qK,gBACxCou7B,EAASz2+B,KAAKmzN,OAAO9qK,aAAeou7B,EAASz2+B,KAAKmzN,OAAO9qK,cAAgBroD,KAAKmoC,OAAOi07B,cAAcjpwB,OAAO9qK,YAAYxnD,QAE9H,EACAkogC,EAAYp4/B,UAAUmggC,qBAAuB,SAAUlhnB,EAAWC,EAASsyH,GACvE,IAAIsvf,EACAC,EAAY1xgC,KAAK87/B,iBACjBturB,EAAWxtU,KAAK+tU,YAAY,sCAAsCnsU,MACtE,GAAIughB,IAAUnihB,KAAK+zZ,KAAKhuD,YAAY,MAAO,CACvC,IAAI4rqB,EAAc3xgC,KAAKmoC,OAAOoi8B,gBAAgBxz8B,MAC1C66+B,EAAiB,GACrB,IAAmC,eAA9B5xgC,KAAKmoC,OAAOk2hB,eAAgE,wBAA9Br+jB,KAAKmoC,OAAOk2hB,iBACvDtyP,GAAkB4lsB,GAAc,CACpC,IAAIv4B,EAAiBu4B,EAAY3xgC,KAAKmoC,OAAOw+7B,YAAY5vzB,WACrD861B,EAAe7xgC,KAAKmoC,OAAOu87B,UAAUkc,gBAAgB5g/B,KAAKkpV,UAAWkwpB,GACzE,GAAIy4B,EAAazugC,OAAS,EACtBwugC,EAAiB5xgC,KAAKmoC,OAAOu87B,UAAU0c,qBAAqBywB,EAAcz4B,OAEzE,CACD,IAAIt/oB,EAAU95V,KAAKmoC,OAAOu87B,UAAUiY,aAAag1B,EAAY3xgC,KAAKmoC,OAAOw+7B,YAAYxw8B,KACrFy7+B,EAAiB5xgC,KAAKmoC,OAAOu87B,UAAU0c,qBAAqB,CAACtnpB,GAAUs/oB,EAC3E,CACkC,eAA9Bp5+B,KAAKmoC,OAAOk2hB,eACRtyP,GAAkB/rU,KAAKkpV,UAAUlpV,KAAKmoC,OAAOw+7B,YAAYuW,uBAC7D00B,EAAexlgC,KAAKpM,KAAKkpV,UAEjC,CAQA,GAPI0orB,EAAexugC,OAAS,IACxBqugC,EAAe,qBAEoD,UAAnEzxgC,KAAK+tU,YAAY,wCAAwCnsU,OACzD5B,KAAK+tU,YAAY,+BAA+BnsU,MAAQguZ,IACxD6hnB,EAAe,gBAEf1lsB,GAAkB0lsB,GAAe,CACjC,IAAIp58B,EAAQq58B,EAAU9vgC,MAAM+wB,MAAM,KAAK,GAAGA,MAAM,KAAK,GAAGA,MAAM,KAC1D9hB,EAAM,CAAE,GAAM,EAAG,GAAM,EAAG,GAAM,EAAG,GAAM,EAAG,GAAM,EAAG,GAAM,EAAG,GAAM,GACpE67E,EAAO,GACPol7B,EAAW,GACXr0rB,OAAY,EAChB,OAAQi0rB,EAAU9vgC,MAAM+wB,MAAM,KAAK,GAAGA,MAAM,KAAK,IAC7C,IAAK,SACMk9X,EAAQnuZ,UAAYkuZ,EAAUluZ,WAAa,KAA6B,GAAX8rU,IAChEiksB,EAAe,eAEnB,MACJ,IAAK,SACDp58B,EAAQq58B,EAAU9vgC,MAAM+wB,MAAM,KAAK,GAAGA,MAAM,KAAK,GAAGA,MAAM,KAC1D,IAAK,IAAIlG,EAAQ,EAAGA,EAAQ4rC,EAAMj1D,QAAUoqU,EAAW,GAAI/gT,IACvDigE,EAAKngE,SAASE,EAAM3V,WAAY,KAC3BuhD,EAAMj1D,OAASqpB,EAAS5b,EAAIwnD,EAAM9rC,SAASE,EAAM3V,WAAY,MAC1D41E,EAAKjgE,EAAQ4rC,EAAMj1D,QAAW,EAAIoqU,EAE9CiQ,EAAY/wP,EAAKx+D,MAAK,SAAUjY,EAAGC,GAAK,OAAOD,EAAIC,CAAG,IACtD,IAASuW,EAAQ,EAAGA,EAAQgxT,EAAUr6U,OAAQqpB,IAC1Cql/B,EAAS1lgC,KAAKqxU,EAAUlxT,SAASE,EAAM3V,WAAY,KAAO2mU,EAAUhxT,EAAQ,MAEzEojY,EAAQnuZ,UAAYkuZ,EAAUluZ,WAAa,MAAmD,GAAjCkC,KAAKgmD,IAAIzwC,MAAMvV,KAAMkugC,IAClF/lsB,GAAkByB,MACrBiksB,EAAe,eAEnB,MACJ,IAAK,UACG5hnB,EAAQnuZ,WAAa,IAAID,MAAMmuZ,GAAW1tZ,SAAS0tZ,EAAUzvZ,WAAaqtU,KAC1EiksB,EAAe,eAEnB,MACJ,IAAK,SACG5hnB,EAAQnuZ,WAAa,IAAID,MAAMmuZ,GAAW/qT,YAAY+qT,EAAUxvZ,cAAgBotU,KAChFiksB,EAAe,eAI/B,CACJ,MAEQ5hnB,EAAQnuZ,WAAa,IAAID,MAAMmuZ,GAAW1tZ,SAAS0tZ,EAAUzvZ,WAAaqtU,KAC1EiksB,EAAe,eAEf1lsB,GAAkB0lsB,IAClBzxgC,KAAKmoC,OAAO637B,WAAW61B,YAAYt4tB,OAM3C,OAHIwuC,GAAkByB,KAClBiksB,EAAe,eAEZA,CACX,EACA1I,EAAYp4/B,UAAUohgC,mBAAqB,SAAUC,EAASj7+B,GAE1D,IADA,IAAIk7+B,EACKxl/B,EAAQ,EAAGA,EAAQul/B,EAAQ5ugC,OAAQqpB,IACxC,GAAIsK,EAAM/2B,KAAKmzN,OAAOp8C,WAAWj1K,YAAckwgC,EAAQzl/B,SAASE,EAAM3V,WAAY,KAAK9W,KAAKmzN,OAAOp8C,WAAWj1K,UAAW,CACrHmwgC,EAAWxl/B,EACX,KACJ,CAEJ,OAAOwl/B,CACX,EACAlJ,EAAYp4/B,UAAU05/B,WAAa,SAAUng+B,GACzC,GAAIA,EAAKlqC,KAAKmzN,OAAO4qwB,UAAW,CAC5B,IAAIrx4B,EAAO2v4B,IAAa,IAAI569B,MAAMyoC,EAAKlqC,KAAKmzN,OAAOu5K,WAAY,GAAGhrY,UAClEwoC,EAAKlqC,KAAKmzN,OAAOu5K,UAAaxiW,EAAKlqC,KAAKmzN,OAAOp8C,WAAarqF,EAAQxiD,EAAKlqC,KAAKmzN,OAAOu5K,SAAW,IAAIjrY,KAAKirF,EAC7G,CACJ,EACAq86B,EAAYp4/B,UAAU2ggC,yBAA2B,SAAU5+yB,EAAS6nY,EAAa03S,GAC7E,IAAI3y4B,EAAQU,UACK,IAAbiy4B,IACAA,EAAWjy4B,KAAKkpV,WAEpB,IAAIgprB,EAAYlygC,KAAKmoC,OAAO028B,mBAAmBnsxB,GAC3Cy/yB,EAAgBnygC,KAAKmoC,OAAO0u8B,WAAWzw+B,QAAO,SAAU8jC,GACxD,OAAOA,EAAK5qC,EAAM6zN,OAAO2ixB,gBAAkBpjxB,CAC/C,IACAy/yB,EAAclsgC,KAAI,SAAUikC,GAAQ,OAAOgo+B,EAAU9lgC,KAAKq9E,GAAO,CAAC,EAAGv/C,GAAQ,IAC7EqwjB,EAAc9wgB,GAAO,CAAC,EAAG8wgB,GACzBv6lB,KAAKqqgC,WAAW9va,GAChB,IAAK,IAAIjrlB,EAAK,EAAG8igC,EAAcF,EAAW5igC,EAAK8igC,EAAYhvgC,OAAQkM,IAAM,CACrE,IAAI46B,EAAOko+B,EAAY9igC,GACvBtP,KAAKqqgC,WAAWng+B,EACpB,CACAlqC,KAAKmoC,OAAOu87B,UAAUuT,WAAWi6B,GACjC,IAAIzl/B,EAAQzsB,KAAK+xgC,mBAAmBG,EAAWjgI,GAC/C,GAAIlmkB,GAAkBt/S,GAClB,OAAO,EAEX,IAEI4l/B,EACAC,EAHAC,EAAmB,IAAI9wgC,MAAM84lB,EAAYv6lB,KAAKmzN,OAAOp8C,YACrDy71B,EAAiB,IAAI/wgC,MAAM84lB,EAAYv6lB,KAAKmzN,OAAOu5K,UAGnDjgX,IAAUyl/B,EAAU9ugC,OAAS,IAC7BivgC,EAAgB,IAAI5wgC,MAAMywgC,EAAUzl/B,EAAQ,GAAGzsB,KAAKmzN,OAAOp8C,YAC3Du71B,EAAc,IAAI7wgC,MAAMywgC,EAAUzl/B,EAAQ,GAAGzsB,KAAKmzN,OAAOu5K,WAE7D,IAAI+loB,EAAc,IAAIhxgC,MAAMywgC,EAAUA,EAAU9ugC,OAAS,GAAGpD,KAAKmzN,OAAOu5K,UACxE,GAAc,IAAVjgX,EAAa,CACb,IAAKs/S,GAAkBmmsB,EAAUzl/B,EAAQ,IAAK,CAC1C,KAAM4l/B,EAAc3wgC,WAAa8wgC,EAAe9wgC,YAC3C269B,IAAeo2C,GAAa/wgC,WACzB269B,IAAek2C,GAAkB7wgC,WACrC269B,IAAeo2C,GAAa/wgC,UAAY269B,IAAek2C,GAAkB7wgC,UAEzE,OADA1B,KAAKmoC,OAAO637B,WAAWw2B,8BAA8B,oBAC9C,EAEN,KAAMn6B,IAAek2C,GAAkB7wgC,UACxC269B,IAAeg2C,GAAe3wgC,WAE9B,OADA1B,KAAKmoC,OAAO637B,WAAWw2B,8BAA8B,iBAC9C,CAEf,CACA,OAAO,CACX,CAEI,IAAIkc,EAAoB,IAAIjxgC,MAAMywgC,EAAUzl/B,EAAQ,GAAGzsB,KAAKmzN,OAAOp8C,YAC/D471B,EAAkB,IAAIlxgC,MAAMywgC,EAAUzl/B,EAAQ,GAAGzsB,KAAKmzN,OAAOu5K,UACjE,GAAIjgX,IAAUyl/B,EAAU9ugC,OAAS,EAAG,CAChC,GAAIi59B,IAAe,IAAI569B,MAAMywgC,EAAWA,EAAU9ugC,OAAS,EAAKqpB,GAAOzsB,KAAKmzN,OAAOp8C,aAAar1K,UAC5F269B,IAAek2C,GAAkB7wgC,UAEjC,OADA1B,KAAKmoC,OAAO637B,WAAWw2B,8BAA8B,oBAC9C,EAEN,KAAOmc,EAAgBjxgC,WAAa6wgC,EAAiB7wgC,WACrD269B,IAAek2C,GAAkB7wgC,UAAY269B,IAAeq2C,GAAmBhxgC,WAEhF,OADA1B,KAAKmoC,OAAO637B,WAAWw2B,8BAA8B,iBAC9C,CAEf,KACK,MAAQn6B,IAAeq2C,GAAmBhxgC,UAAY269B,IAAek2C,GAAkB7wgC,WACxF269B,IAAe,IAAI569B,MAAMywgC,EAAU,GAAGlygC,KAAKmzN,OAAOp8C,aAAar1K,UAC3D269B,IAAek2C,GAAkB7wgC,cACnC269B,IAAeg2C,GAAe3wgC,UAAY269B,IAAek2C,GAAkB7wgC,WACxE+wgC,EAAY/wgC,UAAY6wgC,EAAiB7wgC,WAE9C,OADA1B,KAAKmoC,OAAO637B,WAAWw2B,8BAA8B,iBAC9C,EAEN,KAAMmc,EAAgBjxgC,WAAa6wgC,EAAiB7wgC,WAAa2wgC,EAAc3wgC,UAChF8wgC,EAAe9wgC,YAAe269B,IAAei2C,GAAa5wgC,UAC1D269B,IAAek2C,GAAkB7wgC,WAChC269B,IAAeq2C,GAAmBhxgC,UAAY269B,IAAem2C,GAAgB9wgC,aAC5E269B,IAAek2C,GAAkB7wgC,UAAY269B,IAAeg2C,GAAe3wgC,WAE7E,OADA1B,KAAKmoC,OAAO637B,WAAWw2B,8BAA8B,oBAC9C,CACX,CAEJ,OAAO,CACX,EACAuS,EAAYp4/B,UAAUyggC,kBAAoB,SAAU36B,EAAUvh6B,EAAQmpf,GAClE,IAAI/+jB,EAAQU,KACR4ygC,EAAmB5ygC,KAAKmoC,OAAOyh8B,aAAaxa,mBAAmBx+8B,OAAO,GAAG,GACzE2m+B,EAAed,EAASm8B,EAAiBxz5B,OAC7Cm43B,EAAgBA,aAAwB7m+B,MAAS6m+B,EAAa/q+B,UAAY,CAAC+q+B,GAAc/q+B,UA4FzF,IA3FA,IAAIqmgC,EAAY7ygC,KAAKmoC,OAAOyh8B,aAAaC,kBACrCipC,EAAY,GACZ/xlB,EAAU,SAAU50a,GACpB,IAAIivH,EAAS3xC,GAAO,CAAC,EAAGgt5B,EAAU,MAAM,GACxCr72B,EAAO4rT,EAAO7zN,OAAOh9L,IAAM6wZ,EAAO7+Y,OAAOu87B,UAAUmY,gBACnD,IAAInw5B,EAAO,GACPqm7B,EAAY,WACZ,GAAe,SAAX797B,GAAqB/oE,IAAMor+B,EAAan0+B,OAAS,EACjD,GAAIspF,EAAKtpF,OAAS,EAAG,CACjBspF,EAAK,GAAGptF,EAAM6zN,OAAOh9L,IAAMsg9B,EAASn3+B,EAAM6zN,OAAOh9L,IACjD,IAAK,IAAIrV,EAAI,EAAGA,EAAI4rE,EAAKtpF,OAAQ0d,IAC7B4rE,EAAKngE,SAASzL,EAAEhK,WAAY,KAAKxX,EAAM6zN,OAAOh9L,IAAM72B,EAAM6oC,OAAOu87B,UAAUmY,cAAc1w+B,GACzF2mgC,EAAU1mgC,KAAKsgF,EAAKngE,SAASzL,EAAEhK,WAAY,MAC3CxX,EAAM6oC,OAAO26tB,UAAUp2qB,EAAK,GAAI2xe,EAExC,MAEIjjc,EAAO97H,EAAM6zN,OAAOh9L,IAAMsg9B,EAASn3+B,EAAM6zN,OAAOh9L,IAChD72B,EAAM6oC,OAAO26tB,UAAU1noB,EAAQijc,QAInC,GAAI3xe,EAAKtpF,OAAS,EACd,IAAK,IAAI4M,EAAI,EAAGA,EAAI08E,EAAKtpF,OAAQ4M,IAC7B08E,EAAKngE,SAASvc,EAAE8G,WAAY,KAAKxX,EAAM6zN,OAAOh9L,IAAM72B,EAAM6oC,OAAOu87B,UAAUmY,cAAc7s+B,GACzF8igC,EAAU1mgC,KAAKsgF,EAAKngE,SAASvc,EAAE8G,WAAY,WAI/CskH,EAAO97H,EAAM6zN,OAAOh9L,IAAM72B,EAAM6oC,OAAOu87B,UAAUmY,cAAc1w+B,GAC/D2mgC,EAAU1mgC,KAAKgvH,EAG3B,EACA,GAAI4rT,EAAO7+Y,OAAOuz7B,kBAAkBp94B,MAAM2u7B,YAAelhsB,GAAkB8msB,GAAa,CACpF,IAAIG,EAAeJ,EAAiB9/lB,WAChCmgmB,EAASjslB,EAAO7+Y,OAAOin7B,mBACvB3i8B,OAAQ,EASZ,IAPIA,EADAwm/B,EAAO7vgC,OAAS,EAEZi59B,IAAqB22C,EAAcJ,EAAiBp3B,QAASjE,EAAahr9B,SAASpgB,EAAE2K,WAAY,KAAMskH,EAAQ634B,GAI/G52C,IAAqB22C,EAAcJ,EAAiBp3B,QAASjE,EAAahr9B,SAASpgB,EAAE2K,WAAY,OAE7F,EACR,MAAO,CAAElV,WAAO,GAOpB,IALA,IAAIsxgC,EAAYF,EAAazm/B,SAASE,EAAM3V,WAAY,KAAK87/B,EAAiBtjD,cAI1E8oB,EAHSy6B,EAAUzsgC,QAAO,SAAUyK,GAAO,OAAOA,EAAI0m+B,aAAaq7B,EAAiBp3B,WACpFjE,EAAahr9B,SAASpgB,EAAE2K,WAAY,IAAM,IAC1C1Q,QAAO,SAAUyK,GAAO,OAAOA,EAAI0m+B,aAAaq7B,EAAiBtjD,gBAAkB4jD,CAAW,IAAG,GAC7E96B,WACf79e,EAAU,EAAGA,EAAUvzE,EAAO7+Y,OAAOyh8B,aAAaxa,mBAAmBhs9B,OAAQm3f,IAAW,CAC7F,IAAIn7Y,EAAQ4nU,EAAO7+Y,OAAOyh8B,aAAaxa,mBAAmB7i8B,SAASgue,EAAQzjf,WAAY,KAAKsoG,MAC5Fgc,EAAO,GAAKhc,GAAUg53B,EAAW7r9B,SAASgue,EAAQzjf,WAAY,eAAgBpG,MAAS0n+B,EAAW7r9B,SAASgue,EAAQzjf,WAAY,KAAK,GAChIsh+B,EAAW7r9B,SAASgue,EAAQzjf,WAAY,IAChD,CACAi8/B,GACJ,KACK,CACD,IAAStm/B,EAAQ,EAAGA,EAAQu6Z,EAAO7+Y,OAAOyh8B,aAAaxa,mBAAmBhs9B,OAAS,EAAGqpB,IAAS,CACvF2yF,EAAQ4nU,EAAO7+Y,OAAOyh8B,aAAaxa,mBAAmB7i8B,SAASE,EAAM3V,WAAY,KAAKsoG,MAC1F,GAAIgc,EAAO,GAAKhc,aAAkB1uG,OAAS0qH,EAAO,GAAKhc,GAAOh8G,OAAS,EACnE,IAAK,IAAI0d,EAAI,EAAGA,EAAIs6G,EAAO,GAAKhc,GAAOh8G,OAAQ0d,IAAK,CAChD,IAAIi+9B,EAAUt15B,GAAO,CAAC,EAAG2xC,EAAQ,MAAM,GACvC2j3B,EAAQ,GAAK3/3B,GAASq33B,EAAS,GAAKr33B,GAAO7yF,SAASzL,EAAEhK,WAAY,KAClEio+B,EAAQ6zB,EAAiBxz5B,OAASm43B,EAAahr9B,SAASpgB,EAAE2K,WAAY,KACtE41E,EAAKtgF,KAAK2y+B,EACd,MAGA,GAAoB,IAAhBry5B,EAAKtpF,OACLg4H,EAAO,GAAKhc,GAAUq33B,EAAS,GAAKr33B,aAAkB1uG,MAClD+l+B,EAAS,GAAKr33B,GAAO,GAAKq33B,EAAS,GAAKr33B,GAC5Cgc,EAAOw34B,EAAiBxz5B,OAASm43B,EAAahr9B,SAASpgB,EAAE2K,WAAY,UAGrE,IAAK,IAAIuoB,EAAI,EAAGA,EAAIqtD,EAAKtpF,OAAQi8B,IAC7BqtD,EAAKngE,SAAS8S,EAAEvoB,WAAY,KAAK,GAAKsoG,GAAUq33B,EAAS,GAAKr33B,aAAkB1uG,MAC5E+l+B,EAAS,GAAKr33B,GAAO,GAAKq33B,EAAS,GAAKr33B,EAI5D,CACAgc,EAAOw34B,EAAiBxz5B,OAASm43B,EAAahr9B,SAASpgB,EAAE2K,WAAY,KACrEi8/B,GACJ,CACJ,EACI/rlB,EAAShnb,KACJmM,EAAI,EAAGA,EAAIor+B,EAAan0+B,OAAQ+I,IAAK,CAC1C,IAAIi3P,EAAU29K,EAAQ50a,GACtB,GAAuB,kBAAZi3P,EACP,OAAOA,EAAQxhQ,KACvB,CACA,GAAIkxgC,EAAU1vgC,OAAS,EAAG,CACtB,IAAK,IAAIkM,EAAK,EAAG6jgC,EAAcL,EAAWxjgC,EAAK6jgC,EAAY/vgC,OAAQkM,IAAM,CACrE,IAAI2v+B,EAAUk0B,EAAY7jgC,GAC1B2v+B,EAAQj/+B,KAAKmzN,OAAO+pxB,qBAAuB,KAC3C+B,EAAQj/+B,KAAKmzN,OAAO2ixB,cAAgB,IACxC,CACA91+B,KAAKmoC,OAAO0r9B,SAASif,EACzB,CACJ,EACA/J,EAAYp4/B,UAAUwggC,mBAAqB,WACvC,OAAOnxgC,KAAKmV,QAAQykB,cAAc,IAAMi2Y,KAAgBv9Y,aAAa,UACzE,EACAy2+B,EAAYp4/B,UAAU8+/B,gBAAkB,SAAU1ugC,GAQ9C,OANIA,IAAc8ua,IACH,GAAGj/Z,MAAMjR,KAAKK,KAAKmV,QAAQ3E,iBAAiB,IAAMo4/B,MAGlD,GAAGh4/B,MAAMjR,KAAKK,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiB,IAAMzP,EAAY,KAAO6ngC,KAG/F,EACAG,EAAYp4/B,UAAU6ggC,oBAAsB,SAAUr8/B,GA0BlD,OAxBIA,EAAQ+yQ,UAAUh1P,SAAS,iBAGtB/d,EAAQ+yQ,UAAUh1P,SAAS,qBAG3B/d,EAAQ+yQ,UAAUh1P,SAAS,mBAG3B/d,EAAQ+yQ,UAAUh1P,SAAS,iBARxB/d,EAAQ63U,cAAc,GAAGprV,MAW5BuT,EAAQ+yQ,UAAUh1P,SAAS,cACxB/d,EAAQ63U,cAAc,GAAGlhS,QAGZ,aAAjB32C,EAAQvI,KACAuI,EAAQ22C,QAGR9rD,KAAKmoC,OAAO4kZ,oBAChB3+E,GAAmBxiU,SAASz2B,EAAQvT,OAASuT,EAAQvT,KAIrE,EACAmngC,EAAYp4/B,UAAUi//B,kBAAoB,SAAUz6/B,EAASvT,GACzD,GAAIuT,EAAQ+yQ,UAAUh1P,SAAS,iBACvBxb,EAAWvC,EAAQ63U,cAAc,IAC5BprV,MAAQA,EACjB8V,EAAS00U,gBAER,GAAIj3U,EAAQ+yQ,UAAUh1P,SAAS,oBAAqB,EACjDxb,EAAWvC,EAAQ63U,cAAc,IACxB73U,QAAQ+yQ,UAAUh1P,SAAS28Y,KACpC7va,KAAKgpgC,gBAAgBjy1B,UAAY,IAAIt1K,KAAK,GAAKG,GAG/C5B,KAAKgpgC,gBAAgBt8nB,QAAU,IAAIjrY,KAAK,GAAKG,GAEjD8V,EAAS9V,MAAQA,EACjB8V,EAAS00U,UACb,MACK,GAAIj3U,EAAQ+yQ,UAAUh1P,SAAS,kBAAmB,EAC/Cxb,EAAWvC,EAAQ63U,cAAc,IAC5BprV,MAAQA,EACjB8V,EAAS00U,UACb,MACK,GAAIj3U,EAAQ+yQ,UAAUh1P,SAAS,iBAAkB,EAC9Cxb,EAAWvC,EAAQ63U,cAAc,IAC5BprV,MAAQ,GACjB8V,EAAS9V,MAAUA,aAAiB8O,MAAS9O,EAAQ,CAACA,GACtD8V,EAAS00U,UACb,MACK,GAAIj3U,EAAQ+yQ,UAAUh1P,SAAS,cAAe,CAC/C,IAAIxb,KAAWvC,EAAQ63U,cAAc,IAC5BlhS,QAAUlqD,EACnB8V,EAAS00U,UACb,KAEyB,aAAjBj3U,EAAQvI,KACRuI,EAAQvT,MAAQA,GAAS,GAGzBuT,EAAQ22C,QAAUlqD,CAG9B,EACAmngC,EAAYp4/B,UAAUk//B,yBAA2B,SAAU16/B,GACvD,GAAIA,EAAQ+yQ,UAAUh1P,SAAS,iBACvBxb,EAAWvC,EAAQ63U,cAAc,IAC5BprV,MAAQ5B,KAAKmoC,OAAOm17B,iBAC7B5l9B,EAAS00U,gBAER,GAAIj3U,EAAQ+yQ,UAAUh1P,SAAS,oBAAqB,CACrD,IAAIxb,EAAWvC,EAAQ63U,cAAc,GACjCunE,EAAYv0Z,KAAKmoC,OAAOm17B,iBAC5Bt99B,KAAKgpgC,gBAAkB,CAAEjy1B,UAAWw9O,EAAW7nB,QAAS6nB,GACxD78Y,EAAS9V,MAAQ2yZ,EACjB78Y,EAAS00U,UACb,MACK,GAAIj3U,EAAQ+yQ,UAAUh1P,SAAS,kBAAmB,EAC/Cxb,EAAWvC,EAAQ63U,cAAc,IAC5BprV,MAAQ,KACjB8V,EAAS00U,UACb,MACK,GAAIj3U,EAAQ+yQ,UAAUh1P,SAAS,iBAAkB,EAC9Cxb,EAAWvC,EAAQ63U,cAAc,IAC5BprV,MAAQ,GACjB8V,EAAS00U,UACb,MACK,GAAIj3U,EAAQ+yQ,UAAUh1P,SAAS,cAAe,EAC3Cxb,EAAWvC,EAAQ63U,cAAc,IAC5BlhS,SAAU,EACnBp0C,EAAS00U,UACb,KAEyB,aAAjBj3U,EAAQvI,KACRuI,EAAQ22C,SAAU,EAGlB32C,EAAQvT,MAAQ,EAG5B,EACAmngC,EAAYp4/B,UAAUo9T,YAAc,SAAUhtU,GAC1C,IAAIoU,EAAUnV,KAAKmV,QAAQykB,cAAc,IAAM74B,GAC/C,OAAOoU,EAAUA,EAAQ63U,cAAc,GAAK,IAChD,EACA+7qB,EAAYp4/B,UAAUy4/B,YAAc,SAAUry+B,GAC1C,GAAI/2B,KAAKkqgC,WACLlqgC,KAAKkqgC,YAAa,MADtB,CAIA,OAAQlqgC,KAAKmoC,OAAOk2hB,eAChB,IAAK,iBACItyP,GAAkB/rU,KAAKmoC,OAAOoi8B,gBAAgBxz8B,MAAM/2B,KAAKmoC,OAAOw+7B,YAAY0E,iBAI7Err+B,KAAKmoC,OAAOk2hB,cAAgB,SAH5Br+jB,KAAKmoC,OAAOk2hB,cAAgB,mBAKhC,MACJ,IAAK,aACDr+jB,KAAKmoC,OAAOk2hB,cAAgB,eAC5B,MACJ,IAAK,OACDr+jB,KAAKmoC,OAAOk2hB,cAAgB,SAC5B,MACJ,IAAK,sBACItyP,GAAkB/rU,KAAKmoC,OAAOoi8B,gBAAgBxz8B,MAAM/2B,KAAKmoC,OAAOw+7B,YAAY0E,mBAC7Err+B,KAAKmoC,OAAOk2hB,cAAgB,yBAIxCr+jB,KAAKq7/B,YAActk+B,EACnB/2B,KAAK2ib,cAAe,EACpB3ib,KAAK8hhB,aAAavkP,OAClBv9R,KAAKmoC,OAAO637B,WAAW22B,iBAzBvB,CA0BJ,EACAoS,EAAYp4/B,UAAUor/B,4BAA8B,WAIhD,OAHI/7/B,KAAKmoC,OAAOumrB,aAAe1utB,KAAKsugC,oBAChCtugC,KAAKqugC,qBAEFrugC,KAAK87/B,gBAChB,EACAiN,EAAYp4/B,UAAUo3/B,kBAAoB,WAEtC,IADA,IACSz4/B,EAAK,EAAG8jgC,EADEpzgC,KAAKyvgC,gBAAgB5/lB,KACQvga,EAAK8jgC,EAAehwgC,OAAQkM,IAAM,CAC9E,IAAI6F,EAAUi+/B,EAAe9jgC,GACzBoI,OAAW,GACXvC,EAAQ+yQ,UAAUh1P,SAAS,qBAGtB/d,EAAQ+yQ,UAAUh1P,SAAS,iBAG3B/d,EAAQ+yQ,UAAUh1P,SAAS,eAG3B/d,EAAQ+yQ,UAAUh1P,SAAS,mBAG3B/d,EAAQ+yQ,UAAUh1P,SAAS,kBAG3B/d,EAAQ+yQ,UAAUh1P,SAAS,uBAdhCxb,EAAWvC,EAAQ63U,eAiBnBt1U,GAAYA,EAAS,IACrBA,EAAS,GAAG0/H,SAEpB,CACIp3I,KAAK+8gB,WACL/8gB,KAAK+8gB,UAAU3lY,SAEvB,EACA2x3B,EAAYp4/B,UAAU0igC,iBAAmB,WAErC,IADA,IACS/jgC,EAAK,EAAGgkgC,EADEtzgC,KAAKyvgC,gBAAgB5/lB,KACQvga,EAAKgkgC,EAAelwgC,OAAQkM,IAAM,CAE9Eg7U,GADcgprB,EAAehkgC,GAEjC,CACJ,EACAy5/B,EAAYp4/B,UAAUymI,QAAU,SAAUm83B,GAmBtC,GAlBIvzgC,KAAKmoC,SAAWnoC,KAAKmoC,OAAOgwP,aAC5Bn4R,KAAKmoC,OAAO6ylB,eAAe,CAAC,mBAEhCh7nB,KAAK+ngC,oBACD/ngC,KAAK87/B,mBACL97/B,KAAK87/B,iBAAiB1k3B,UACtBkzM,GAAOtqV,KAAK87/B,iBAAiB3m/B,SAC7BnV,KAAK87/B,iBAAmB,MAExB97/B,KAAK80/B,iBACL90/B,KAAK80/B,eAAe192B,UACpBp3I,KAAK80/B,eAAiB,MAEtB90/B,KAAKsugC,qBACLtugC,KAAKsugC,mBAAmBl33B,UACxBp3I,KAAKsugC,mBAAqB,MAE9BtugC,KAAKqzgC,mBACDrzgC,KAAK8hhB,aAAc,CACnB,GAAI9hhB,KAAK8hhB,aAAa3sgB,QAAS,CAC3B,IAAIs0J,EAAOzpK,KAAK8hhB,aAAa3sgB,QAAQykB,cAAc,QACnDyi8B,IAAoB5yzB,GACpB6gL,GAAO7gL,GACPovE,GAAa1lN,OAAOnzB,KAAK8hhB,aAAa3sgB,QAAS,UAAWnV,KAAKspgC,iBACnE,CACAtpgC,KAAK8hhB,aAAa1qY,UAClBp3I,KAAK8hhB,aAAe,IACxB,CACI9hhB,KAAKmV,UACLge,GAAOnzB,KAAKmV,SACZnV,KAAKmV,QAAU,MAEdo+/B,IACDvzgC,KAAK+zZ,KAAO,KACZ/zZ,KAAKmoC,OAAS,KACdnoC,KAAKmzN,OAAS,KACdnzN,KAAK+8gB,UAAY,KACjB/8gB,KAAK8tgC,aAAe,KACpB9tgC,KAAKgpgC,gBAAkB,KACvBhpgC,KAAKq7/B,YAAc,KAE3B,EACO0N,CACX,CA50DiC,GChB7ByK,IAA+B,WAC/B,SAASA,EAAcrr+B,GACnBnoC,KAAKu8/B,WAAa,EAClBv8/B,KAAKyzgC,SAAW,GAChBzzgC,KAAK0zgC,YAAc,EACnB1zgC,KAAK2zgC,eAAiB,EACtB3zgC,KAAKgq+B,iBAAmB,EACxBhq+B,KAAKy0C,WAAa,EAClBz0C,KAAKmoC,OAASA,EACdnoC,KAAKs7B,kBACT,CAkYA,OAjYAk4+B,EAAc7igC,UAAU2qB,iBAAmB,YAClCt7B,KAAKmoC,QAAUnoC,KAAKmoC,QAAUnoC,KAAKmoC,OAAOgwP,aAG/Cn4R,KAAKmoC,OAAO5uB,GAAG6hH,IAAsBp7H,KAAKkq+B,iBAAkBlq+B,KAChE,EACAwzgC,EAAc7igC,UAAUyqB,oBAAsB,YACrCp7B,KAAKmoC,QAAUnoC,KAAKmoC,QAAUnoC,KAAKmoC,OAAOgwP,aAG/Cn4R,KAAKmoC,OAAO3uB,IAAI4hH,IAAsBp7H,KAAKkq+B,iBAC/C,EACAspC,EAAc7igC,UAAUijgC,iBAAmB,WACvC5zgC,KAAK6zgC,cACL,IAAI/oE,EAAgB9q8B,KAAKsr/B,mBAAqBtr/B,KAAKmoC,OAAOhzB,QAAQ4vP,YAAc/kQ,KAAKmoC,OAAOhzB,QAAQ+vP,aAEpG,OADAllQ,KAAK2zgC,eAAiB/vgC,KAAKC,KAAKin8B,EAAgB9q8B,KAAKyzgC,UAAYzzgC,KAAK0zgC,YAC/D1zgC,KAAK2zgC,cAChB,EACAH,EAAc7igC,UAAUmjgC,mBAAqB,SAAUr5C,GACnD,IAAIn+7B,EAAOx7B,GAAc,MAAO,CAAEC,UAAW8ua,MAC7C,GAAI7va,KAAKsr/B,mBAAoB,CACzB,IAAIl4L,EAAWpzzB,KAAKmoC,OAAOyz7B,WAAW4D,UAAUx/9B,KAAKmoC,OAAOyz7B,WAAW4D,UAAUp89B,OAAS,GAAGA,OAC7Fk5B,EAAKn2B,MAAMqY,MAAS40yB,EAAWpzzB,KAAKyzgC,SAAY,IACpD,MAEIn3+B,EAAKn2B,MAAMyiJ,OAAU5oJ,KAAKmoC,OAAOyh8B,aAAaK,kBAAkB7m+B,OAASpD,KAAKyzgC,SAAY,KAE9Fh5C,EAAY/o8B,YAAY4K,EAC5B,EACAk3+B,EAAc7igC,UAAUg7+B,0BAA4B,WAChD,IAAI5hB,EAAU/p+B,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KAClDkkmB,EAAoB/zgC,KAAKmoC,OAAOyh8B,aAAaK,kBAAkBjq+B,KAAKmoC,OAAOyh8B,aAAaK,kBAAkB7m+B,OAAS,GAAG+8zB,WAE1H,GADsBng0B,KAAKmoC,OAAOyh8B,aAAac,kBAAkB1q+B,KAAKmoC,OAAOyh8B,aAAac,kBAAkBtn+B,OAAS,GAAG+8zB,aAChG4zM,EAAmB,CACvC,IAAIzX,EAAWt8/B,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KACvD7va,KAAK2zgC,eAAiBrX,EAAS1i+B,cAAc,SAAS9zB,SAAS1C,OAC/D2m+B,EAAQ5j+B,MAAMyiJ,OAAU0z2B,EAASvnuB,cAAgB/0R,KAAKmoC,OAAOyh8B,aAAaK,kBAAkB7m+B,OAAUpD,KAAK2zgC,gBACvGrX,EAASvnuB,aAAe/0R,KAAK2zgC,eAAkB,IACvD,MAEI5pC,EAAQ5j+B,MAAMyiJ,OAAS,GAE3B5oJ,KAAKgq+B,iBAAmBD,EAAQh1sB,aAAe/0R,KAAKmoC,OAAOyh8B,aAAaK,kBAAkB7m+B,MAC9F,EACAowgC,EAAc7igC,UAAUqjgC,yBAA2B,SAAU13+B,GACzD,IAAI23+B,EAAgBj0gC,KAAKmoC,OAAOyh8B,aAAac,kBAAkBtn+B,OAC/D,GAAI6wgC,IAAkBj0gC,KAAK4zgC,mBAAoB,CAC3Ct3+B,EAAKn2B,MAAMyiJ,OAAS5oJ,KAAKmoC,OAAOhzB,QAAQykB,cAAc,mBAAmBsrO,aAAe,KACxF,IAAIgvwB,EAAUl0gC,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KAClDq7kB,EAAUlr/B,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KAClDskmB,EAAYn0gC,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KACxD7va,KAAKu8/B,WAAa,EAClBv8/B,KAAKo0gC,aAAaF,EAAShpB,EAASipB,EACxC,KACK,CACD,IAAIE,EAAkBr0gC,KAAKmoC,OAAOyh8B,aAAac,kBAAkBupC,EAAgB,GAAG9zM,WAEhFm0M,EAAmBL,GADHj0gC,KAAKmoC,OAAOyh8B,aAAaK,kBAAkBjq+B,KAAKmoC,OAAOyh8B,aAAaK,kBAAkB7m+B,OAAS,GAAG+8zB,WAC9Dk0M,GACxDC,EAAoBA,EAAmBt0gC,KAAKmoC,OAAOyh8B,aAAaK,kBAAkB7m+B,OAC9EpD,KAAKmoC,OAAOyh8B,aAAaK,kBAAkB7m+B,OAASkxgC,EACxDh4+B,EAAKn2B,MAAMyiJ,OAAU0r3B,EAAmBt0gC,KAAKyzgC,SAAY,IAC7D,CACJ,EACAD,EAAc7igC,UAAUkjgC,YAAc,WAC9B7zgC,KAAKsr/B,mBACLtr/B,KAAKyzgC,SpBlDV,SAAkC3mgC,EAAWgpgB,GAChD,IAAIt3f,EACAtR,EAAKpM,GAAc,MAAO,CAAEC,UAAW+0gB,IAAgB3ye,YAM3D,OALAj2B,EAAG/G,MAAMohQ,WAAa,SACtBr6P,EAAG/G,MAAM+jF,SAAW,WACpBp9E,EAAU4kB,YAAYxkB,GACtBsR,EAAQtR,EAAGunR,wBAAwBj2Q,MACnC2U,GAAOjmB,GACAsR,CACX,CoByC4B698B,CAA8Br89B,KAAKmoC,OAAOyz7B,WAAWzm9B,QAAS06Z,MAAyB7va,KAAKyzgC,SAG5GzzgC,KAAKyzgC,SAAWp3C,IAA+Br89B,KAAKmoC,OAAOyz7B,WAAWzm9B,QAAS06Z,MAAyB7va,KAAKyzgC,QAErH,EACAD,EAAc7igC,UAAU0z+B,aAAe,WACnCrk/B,KAAKu0gC,cACDv0gC,KAAKmoC,OAAOo47B,YACZvg+B,KAAKmoC,OAAOo47B,WAAWi0C,sBAAqB,GAEhB,UAA5Bx0gC,KAAKmoC,OAAOw/W,aACZ3nZ,KAAKmoC,OAAOkxK,OAAOj+E,IAAqB,CAAC,GAE7Cp7H,KAAKmoC,OAAOuqY,aAChB,EACA8gmB,EAAc7igC,UAAUu59B,iBAAmB,WACvC,IAAI5q+B,EAAQU,KACRA,KAAKmoC,OAAO637B,aACZhg+B,KAAKmoC,OAAO637B,WAAWyc,iBACvBz8+B,KAAKmoC,OAAO637B,WAAW4K,UAAUrtsB,QAErC,IAAI2ttB,EAAUlr/B,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KACtD,GAAI7va,KAAKsr/B,mBACLtr/B,KAAKy0gC,oBAAoBvpB,OAExB,CACD,IAAIgpB,EAAUl0gC,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KAClDskmB,EAAYn0gC,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KACpD6kmB,EAAgB10gC,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KACxDyslB,EAAWt8/B,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KACvDrnJ,GAAS,CAAC0iuB,GAAU,gBACpBlr/B,KAAK2zgC,eAAiBO,EAAQt6+B,cAAc,SAAS9zB,SAAS1C,OAC9D,IAAIuxgC,EAAepo/B,SAAS2n/B,EAAQt6+B,cAAc,YAAYtH,aAAa,oBAAqB,IAC5F4rR,EAAel+S,KAAKmoC,OAAOwi9B,cAC1B2R,EAASvnuB,aAAem2tB,EAAQn2tB,aAAgB/0R,KAAK0zgC,YAAc1zgC,KAAKyzgC,SACzEvV,EAAgB,GAOpB,GANKhT,EAAQ/81B,UAAanuJ,KAAKu8/B,WAAa,EACxC2B,EAAgBl+/B,KAAK40gC,SAAS1pB,EAASypB,GAElCzpB,EAAQ/81B,UAAYnuJ,KAAKu8/B,WAAar+sB,IAC3CggtB,EAAgBl+/B,KAAK60gC,WAAW3pB,EAASypB,KAExC5osB,GAAkBmyrB,IAAkBA,EAAc96/B,OAAS,EAAG,CAC/DpD,KAAKmoC,OAAOwpY,cACZ,IAAIrjB,EAActuZ,KAAKmoC,OAAOw77B,mBAC9B3j+B,KAAKquZ,WAAaC,EAAYA,EAAYlrZ,OAAS,IAAMpD,KAAKquZ,WAC9DruZ,KAAK80gC,cAAcZ,EAAShpB,EAASipB,EAAWjW,GAChDl+/B,KAAKo0gC,aAAaF,EAAShpB,EAASipB,EAAWO,GAC3C10gC,KAAKmoC,OAAOg08B,mBAAwE,SAAnDn8+B,KAAKmoC,OAAOg08B,kBAAkB44B,UAAU7/7B,QACzEl1E,KAAKmoC,OAAOg08B,kBAAkB64B,oBAElChk/B,OAAOqF,aAAar2B,KAAKorsB,WACzBprsB,KAAKorsB,UAAYp6qB,OAAOoF,YAAW,WAAc92B,EAAM+k/B,cAAgB,GAAG,IAC9E,CACJ,CACJ,EACAmvB,EAAc7igC,UAAU8jgC,oBAAsB,SAAUvpB,GACpD,IAAI5r/B,EAAQU,KACRk+/B,EAAgB,GAChB9tvB,EAAcpwQ,KAAK0zgC,YAAc1zgC,KAAKyzgC,SAO1C,GANI7vgC,KAAK8Y,IAAIwu+B,EAAQj91B,YAAcrqJ,KAAK8Y,IAAI1c,KAAKu8/B,YAAc,EAC3D2B,EAAgBl+/B,KAAKi1gC,WAAW/pB,GAE3Btn/B,KAAK8Y,IAAIwu+B,EAAQj91B,YAAcrqJ,KAAK8Y,IAAI1c,KAAKu8/B,YAAcnsvB,IAChE8tvB,EAAgBl+/B,KAAKk1gC,YAAYhqB,KAEhCn/qB,GAAkBmyrB,IAAkBA,EAAc96/B,OAAS,EAAG,CAC/D,GAAIpD,KAAKmoC,OAAOyh8B,aAAaK,kBAAkB7m+B,SAAW86/B,EAAc96/B,QACpEpD,KAAKmoC,OAAOyh8B,aAAaK,kBAAkB,KAAOi0B,EAAc,IAChEl+/B,KAAKmoC,OAAOyh8B,aAAaK,kBAAkBjq+B,KAAKmoC,OAAOyh8B,aAAaK,kBAAkB7m+B,OAAS,KAC3F86/B,EAAcA,EAAc96/B,OAAS,GAAI,CAC7CpD,KAAKmoC,OAAOwpY,cACZ,IAAI6tjB,EAAYx/9B,KAAKmoC,OAAOyz7B,WAAW4D,UAAU5u9B,MAAM,GACvD5Q,KAAKm1gC,wBAAwBjqB,EAASgT,GACtClzqB,GAAkBkgqB,EAAQtx9B,cAAc,SAAU,CAAE2+B,UAAW,cAAgBv4D,KAAKu8/B,WAAa,QACjGv8/B,KAAKmoC,OAAOyz7B,WAAW4D,UAAYA,EAC/Bx/9B,KAAKmoC,OAAOg08B,mBAAwE,SAAnDn8+B,KAAKmoC,OAAOg08B,kBAAkB44B,UAAU7/7B,QACzEl1E,KAAKmoC,OAAOg08B,kBAAkB64B,mBAEtC,CACAhk/B,OAAOqF,aAAar2B,KAAKorsB,WACzBprsB,KAAKorsB,UAAYp6qB,OAAOoF,YAAW,WAAc92B,EAAM+k/B,cAAgB,GAAG,IAC9E,CACJ,EACAmvB,EAAc7igC,UAAUikgC,SAAW,SAAU1pB,EAASypB,GAClD,IAAIlo/B,EAAQ,EACZA,KAAYy+9B,EAAQ/81B,UAAYnuJ,KAAKyzgC,UAAY7vgC,KAAKC,KAAKqn/B,EAAQhmvB,aAAellQ,KAAKyzgC,UAAazzgC,KAAK2zgC,eACrG3zgC,KAAKmoC,OAAOwi9B,gBACZl+9B,EAASA,EAAQko/B,EAAgBA,EAAe30gC,KAAK0zgC,YAAcjn/B,GAEvEA,EAASA,EAAQ,EAAKA,EAAQ,EAC9B,IAAI2o/B,EAAoBp1gC,KAAKq1gC,oBAAoB5o/B,EAAOA,EAAQzsB,KAAK2zgC,gBAErE,GADA3zgC,KAAKmoC,OAAOyh8B,aAAac,kBAAoB0qC,EACxB,IAAjBT,EACA30gC,KAAKu8/B,WAAarR,EAAQ/81B,cAEzB,CACD,IAAIvF,EAAU5oJ,KAAKmoC,OAAOwi9B,cAAiB3q/B,KAAKgq+B,iBAAmBhq+B,KAAKyzgC,SACxE7q3B,EAAUA,EAAS,EAAKA,EAAS5oJ,KAAKyzgC,SACtCzzgC,KAAKu8/B,WAAcrR,EAAQ/81B,UAAanuJ,KAAK0zgC,YAAc9q3B,EAAU,EACjEsi2B,EAAQ/81B,UAAanuJ,KAAK0zgC,YAAc9q3B,EAAU,CAC1D,CACA,OAAOws3B,CACX,EACA5B,EAAc7igC,UAAUkkgC,WAAa,SAAU3pB,EAASypB,GAIpD,GAHmB30gC,KAAKmoC,OAAOyh8B,aAC3Bc,kBAAkB1q+B,KAAKmoC,OAAOyh8B,aAAac,kBAAkBtn+B,OAAS,GAAG+8zB,aACrDng0B,KAAKmoC,OAAOyh8B,aAAaK,kBAAkBjq+B,KAAKmoC,OAAOyh8B,aAAaK,kBAAkB7m+B,OAAS,GAAG+8zB,WAEtH,OAAO,KAEX,IAAIm1M,EAAkB,EACtBA,KAAqBpqB,EAAQ/81B,UAAYnuJ,KAAKyzgC,UAC1CzzgC,KAAKmoC,OAAOwi9B,gBAEZ2qB,GADAA,MAAsBpqB,EAAQ/81B,UAAYnuJ,KAAKu8/B,YAAcv8/B,KAAKgq+B,kBAAoB2qC,GACjDA,EAAe30gC,KAAK0zgC,YAAe4B,EAAkBX,EAAe30gC,KAAK0zgC,aAElH,IAAIhk9B,EAAY4l9B,EAAkBt1gC,KAAK2zgC,eACvCjk9B,EAAaA,EAAY1vD,KAAKmoC,OAAOyh8B,aAAaK,kBAAkB7m+B,OAChEkygC,GAAmBt1gC,KAAKmoC,OAAOyh8B,aAAaK,kBAAkB7m+B,OAASkygC,GAAmB5l9B,EAC9F,IAAI6l9B,EAAoBv1gC,KAAKq1gC,oBAAoB3l9B,EAAY1vD,KAAK2zgC,eAAgBjk9B,GAElF,OADA1vD,KAAKu8/B,WAAarR,EAAQ/81B,UACnBon3B,CACX,EACA/B,EAAc7igC,UAAUskgC,WAAa,SAAU/pB,GAC3C,IAAIz+9B,EAAQ,EAGZ,OADAA,GADAA,KAAY7oB,KAAK8Y,IAAIwu+B,EAAQj91B,YAAcjuJ,KAAKyzgC,UAAY7vgC,KAAKC,KAAKqn/B,EAAQnmvB,YAAc/kQ,KAAKyzgC,UAAazzgC,KAAK2zgC,gBAClG,EAAKln/B,EAAQ,EACvBzsB,KAAK+zgB,cAActnf,EAAOA,EAAQzsB,KAAK2zgC,eAClD,EACAH,EAAc7igC,UAAUukgC,YAAc,SAAUhqB,GAC5C,IAAI2nB,EAAY7ygC,KAAKmoC,OAAOyz7B,WAAW4D,UAAUx/9B,KAAKmoC,OAAOyz7B,WAAW4D,UAAUp89B,OAAS,GAGvFssD,KADc9rD,KAAK8Y,IAAIwu+B,EAAQj91B,YAAcjuJ,KAAKyzgC,UACvBzzgC,KAAK2zgC,eAEpC,OADAjk9B,EAAaA,EAAYmj9B,EAAUzvgC,OAAS,EAAKyvgC,EAAUzvgC,OAAS,EAAIssD,EACjE1vD,KAAK+zgB,cAAcrkd,EAAY1vD,KAAK2zgC,eAAgBjk9B,EAC/D,EACA8j9B,EAAc7igC,UAAUojgB,cAAgB,SAAUt/d,EAAYC,GAC1D10C,KAAKu8/B,WAAa9n9B,EAAaz0C,KAAKyzgC,SACpC,IAAIZ,EAAY7ygC,KAAKw1gC,iBAAiB/g+B,EAAYC,GAIlD,OAHI10C,KAAKmoC,OAAOkwT,YACZr4V,KAAKu8/B,YAAcv8/B,KAAKu8/B,YAErBsW,CACX,EACAW,EAAc7igC,UAAU6kgC,iBAAmB,SAAU/g+B,EAAYC,GAC7D,IAAIm+9B,EAAY7ygC,KAAKmoC,OAAOyz7B,WAAW4D,UAAUx/9B,KAAKmoC,OAAOyz7B,WAAW4D,UAAUp89B,OAAS,GACvF86/B,EAAgB,GAChBzx+B,EAAQ,CAAEgoB,WAAY,EAAGC,SAAU,GACvC,GAAI10C,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMw75B,OAAQ,CAC5C,GAAI+4B,EAAUtm/B,SAASkoB,EAAW39B,WAAY,KAAK5W,KAAKwB,YACpD1B,KAAKmoC,OAAOyh8B,aAAaK,kBAAkB,GAAG/p+B,KAAKwB,WACnDmxgC,EAAUtm/B,SAASmoB,EAAS59B,WAAY,KAAK5W,KAAKwB,YAC9C1B,KAAKmoC,OAAOyh8B,aAAaK,kBAAkBjq+B,KAAKmoC,OAAOyh8B,aAAaK,kBAAkB7m+B,OAAS,GAAGlD,KAAKwB,UAC3G,OAAO1B,KAAKmoC,OAAOyh8B,aAAaK,kBAEpCi0B,EACIl+/B,KAAKy1gC,oBAAoB5C,EAAUtm/B,SAASkoB,EAAW39B,WAAY,KAAM+7/B,EAAUtm/B,SAASmoB,EAAS59B,WAAY,KAAM2V,GAC3HzsB,KAAK01gC,iBAAiBxX,EAC1B,KACK,CACD,GAAI2U,EAAUtm/B,SAASkoB,EAAW39B,WAAY,KAAKqpzB,aAAeng0B,KAAKmoC,OAAOyh8B,aAAaK,kBAAkB,GAAG9pK,YAC5G0yM,EAAUtm/B,SAASmoB,EAAS59B,WAAY,KAAKqpzB,aACzCng0B,KAAKmoC,OAAOyh8B,aAAaK,kBAAkBjq+B,KAAKmoC,OAAOyh8B,aAAaK,kBAAkB7m+B,OAAS,GAAG+8zB,WACtG,OAAOng0B,KAAKmoC,OAAOyh8B,aAAaK,kBAEpCi0B,EACIl+/B,KAAK21gC,kBAAkB9C,EAAUtm/B,SAASkoB,EAAW39B,WAAY,KAAM+7/B,EAAUtm/B,SAASmoB,EAAS59B,WAAY,KAAM2V,EAC7H,CAMA,MALgC,UAA5BzsB,KAAKmoC,OAAOw/W,cACZ3nZ,KAAKy0C,WAAahoB,EAAMgoB,WACxByp9B,EAAgB2U,EAAUjigC,MAAM6b,EAAMgoB,WAAYhoB,EAAMioB,WAE5D10C,KAAKu8/B,WAAa9v+B,EAAMgoB,WAAaz0C,KAAKyzgC,SACnCvV,CACX,EACAsV,EAAc7igC,UAAU8kgC,oBAAsB,SAAU3vkB,EAAWgB,EAAUr6a,GACzE,IAAIyx+B,EAAgBl+/B,KAAKmoC,OAAOyz7B,WAAW4D,UAAU,GAAGp59B,QAAO,SAAU8jC,GACrE,OAAO47Z,EAAU5lc,KAAKwB,WAAawoC,EAAKhqC,KAAKwB,WACzCwoC,EAAKhqC,KAAKwB,WAAaolc,EAAS5mc,KAAKwB,SAC7C,IAEA,OADA1B,KAAK41gC,iBAAiB51gC,KAAKmoC,OAAOyz7B,WAAW4D,UAAU,GAAI0+B,EAAc,GAAIA,EAAcA,EAAc96/B,OAAS,GAAIqpB,GAC/Gyx+B,CACX,EACAsV,EAAc7igC,UAAUglgC,kBAAoB,SAAU7vkB,EAAWgB,EAAUr6a,GACvE,IAAIyx+B,EAAgBl+/B,KAAKmoC,OAAOyh8B,aAAaC,kBAAkBzj+B,QAAO,SAAU8jC,GAC5E,OAAO47Z,EAAUq6X,YAAcj2xB,EAAKi2xB,YAAcj2xB,EAAKi2xB,YAAcr5X,EAASq5X,UAClF,IAGA,OAFAng0B,KAAKmoC,OAAOyh8B,aAAac,kBAAoBwzB,EAC7Cl+/B,KAAK41gC,iBAAiB51gC,KAAKmoC,OAAOyh8B,aAAaC,kBAAmBq0B,EAAc,GAAIA,EAAcA,EAAc96/B,OAAS,GAAIqpB,GACtHyx+B,CACX,EACAsV,EAAc7igC,UAAUilgC,iBAAmB,SAAU1r+B,EAAM47Z,EAAWgB,EAAUspI,GAC5E,IAAI3jjB,EAAQ,EACZyd,EAAK9jC,QAAO,SAAU8jC,GACd47Z,IAAc57Z,EACdkmiB,EAAS37hB,WAAahoB,EAEjBq6a,IAAa58Z,IAClBkmiB,EAAS17hB,SAAWjoB,EAAQyd,EAAK+rkB,SAErCxplB,GAASyd,EAAK+rkB,OAClB,IACInwK,IAAcgB,IACdspI,EAAS17hB,SAAW07hB,EAAS37hB,WAAaqyZ,EAASmvK,QAE3D,EACAu9Z,EAAc7igC,UAAUmkgC,cAAgB,SAAUZ,EAAShpB,EAASipB,EAAWjW,GAC3E,IAAIyV,EAAiBO,EAAQt6+B,cAAc,SAAS9zB,SAAS1C,OACzD8tB,SAAS0vH,eAAiB1vH,SAAS0vH,cAAcsnI,UAAUh1P,SAAS28Y,OACpE7va,KAAK61gC,gBAAiB,EACtB71gC,KAAKmoC,OAAOhzB,QAAQ/K,SAExB,IAAK,IAAI+B,EAAI,EAAGA,EAAIwngC,EAAgBxngC,IAChCgnB,GAAO+g/B,EAAQt6+B,cAAc,aAC7BzG,GAAO+39B,EAAQtx9B,cAAc,aAC7BzG,GAAOgh/B,EAAUv6+B,cAAc,QAEnC55B,KAAKmoC,OAAOyh8B,aAAac,kBAAoBwzB,EAC7C,IAAI4X,EAAe91gC,KAAKmoC,OAAOyh8B,aAAamsC,eAAe7X,GAAe,GACtEjqQ,EAAcj0vB,KAAKmoC,OAAOyz7B,WAAWm6C,iBACrCC,EAAYh2gC,KAAKmoC,OAAOyz7B,WAAWq6C,aAAa/X,EAAc96/B,QAClE4vH,GAAO8i5B,EAAc5B,EAAQt6+B,cAAc,UAC3Co5F,GAAOihoB,EAAai3P,EAAQtx9B,cAAc,UAC1Co5F,GAAOgj5B,EAAW7B,EACtB,EACAX,EAAc7igC,UAAUwkgC,wBAA0B,SAAUjqB,EAASgT,GACjEl+/B,KAAKmoC,OAAOyh8B,aAAaK,kBAAoBi0B,EAC7C,IAAI5vmB,EAActuZ,KAAKmoC,OAAOw77B,mBAC9B3j+B,KAAKquZ,WAAaC,EAAYA,EAAYlrZ,OAAS,IAAMpD,KAAKquZ,WAE9D,IADA,IAAIslnB,EAAiBzoB,EAAQ16+B,iBAAiB,YAAYpN,OACjD+I,EAAI,EAAGA,EAAIwngC,EAAgBxngC,IAChCgnB,GAAO+39B,EAAQtx9B,cAAc,aAEjC,GAAgC,UAA5B55B,KAAKmoC,OAAOw/W,YAAyB,CACjC3nZ,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMw75B,OACpC95+B,KAAKmoC,OAAOyz7B,WAAW4D,UAAU,GAAK0+B,EAGtCl+/B,KAAKmoC,OAAOyz7B,WAAW4D,UAAUx/9B,KAAKmoC,OAAOyz7B,WAAW4D,UAAUp89B,OAAS,GAAK86/B,EAGpFlr4B,GADIihoB,EAAcj0vB,KAAKmoC,OAAOyz7B,WAAWm6C,iBACrB7qB,EAAQtx9B,cAAc,SAC9C,KACK,CACD,IAAIo/F,EAAM,GAAGpoH,MAAMjR,KAAKur/B,EAAQtx9B,cAAc,YAAY9zB,UAC1D,IAASqG,EAAI,EAAGA,EAAI6sH,EAAI51H,OAAQ+I,IAC5BgnB,GAAO6lG,EAAIzsG,SAASpgB,EAAE2K,WAAY,MAEtC9W,KAAKmoC,OAAOyz7B,WAAW4D,UAAUx/9B,KAAKmoC,OAAOyz7B,WAAW4D,UAAUp89B,OAAS,GAAK86/B,EAChF,IAAIjqQ,EAAcj0vB,KAAKmoC,OAAOyz7B,WAAWm6C,iBACrCru+B,EAAQwj9B,EAAQtx9B,cAAc,SAC9Bo4lB,EAAQk5X,EAAQtx9B,cAAc,SAC9Bs8+B,EAAgBhrB,EAAQtx9B,cAAc,YAC1Csk+B,EAAc73/B,SAAQ,WAClB6vgC,EAAcxk/B,YAAY5wB,GAAc,OAC5C,IACAkxnB,EAAMtgmB,YAAY1xB,KAAKmoC,OAAOu87B,UAAU4d,mBAAmB,GAAIti/B,KAAKy0C,WAAa,EAAIz0C,KAAKy0C,WAAa,IACnGz0C,KAAKmoC,OAAOuz7B,kBAAkBiC,UAAUhtkB,QACxCqhO,EAAMtgmB,YAAY1xB,KAAKmoC,OAAOu87B,UAAU4d,mBAAmB,kBAE/Dpv3B,GAAQ,CAAC8+f,GAAQtqlB,GACjBsrF,GAAOihoB,EAAai3P,EAAQtx9B,cAAc,SAC9C,CACJ,EACA45+B,EAAc7igC,UAAU0kgC,oBAAsB,SAAU5g+B,EAAYC,GAChE,OAAO10C,KAAKmoC,OAAOyh8B,aAAaK,kBAAkBr59B,MAAM6jC,EAAYC,EACxE,EACA8+9B,EAAc7igC,UAAUyjgC,aAAe,SAAUF,EAAShpB,EAASipB,EAAWO,GAC1E1prB,GAAkBkprB,EAAQt6+B,cAAc,SAAU,CAAE2+B,UAAW,cAAgBv4D,KAAKu8/B,WAAa,QACjGvxqB,GAAkBkgqB,EAAQtx9B,cAAc,SAAU,CAAE2+B,UAAW,cAAgBv4D,KAAKu8/B,WAAa,QACjGvxqB,GAAkBmprB,EAAW,CAAE578B,UAAW,cAAgBv4D,KAAKu8/B,WAAa,QACvExwrB,GAAkB2osB,IACnB1prB,GAAkB0prB,EAAe,CAAEn88B,UAAW,cAAgBv4D,KAAKu8/B,WAAa,OAExF,EACAiX,EAAc7igC,UAAUoz+B,sBAAwB,WAC5C,GAAI/j/B,KAAKquZ,WAAY,CACjB,IAAInuZ,EAAOqsB,SAASvsB,KAAKquZ,WAAW/7X,aAAa,aAAc,IAC3D6tyB,EAAa5zyB,SAASvsB,KAAKquZ,WAAW/7X,aAAa,oBAAqB,IACxEq3T,EAAM3pV,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,IAAuB,eAAkB3va,EAAO,wBAA4Big0B,EAAa,MACvIx2e,GACA3pV,KAAKmoC,OAAO297B,iBAAiB,CAACn8oB,GAAMA,GAAK,GAE7C3pV,KAAKquZ,WAAa,IACtB,CACJ,EACAmlnB,EAAc7igC,UAAU+kgC,iBAAmB,SAAUxX,GACjD,GAAgC,UAA5Bl+/B,KAAKmoC,OAAOw/W,YAAyB,CACrC,IAAIwunB,EAAYjY,EAAcj4/B,KAAI,SAAUiU,GAAK,OAAOA,EAAEha,IAAM,IAChEF,KAAKmoC,OAAOyh8B,aAAac,kBAAkBrk+B,SAAQ,SAAU6T,GAAK,OAAOA,EAAEql9B,YAAc42C,CAAW,GACxG,KACK,CACD,IAAIC,EAAYlY,EAAcj4/B,KAAI,SAAUiU,GAAK,OAAOA,EAAEha,KAAKyD,QAAU,IACrE0ygC,EAAgBr2gC,KAAKmoC,OAAOyz7B,WAAW2D,YAAYn59B,QAAO,SAAU8T,GAAK,OAAOk8/B,EAAUzrgC,QAAQuP,EAAEvW,WAAa,CAAG,IACxH3D,KAAKmoC,OAAOyh8B,aAAac,kBAAkBrk+B,SAAQ,SAAU6T,GAAK,OAAOA,EAAEql9B,YAAc82C,CAAe,GAC5G,CACJ,EACA7C,EAAc7igC,UAAU4jgC,YAAc,WAClC,IAAI+B,EAAat2gC,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KACrD0mmB,EAAW,GAAG3lgC,MAAMjR,KAAKK,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiB,IAAMq/Z,MACpE0mmB,GAAYD,GACZC,EAASlwgC,SAAQ,SAAU8O,GACnBA,EAAQs/Q,wBAAwBvmI,KAAOoo3B,EAAW7hvB,wBAAwBvmI,KAC1E/4I,EAAQ6f,aAAa,WAAY,IAEzC,IAEJ,IAAIwh/B,EAAex2gC,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,IAAN,kBACjD7va,KAAK61gC,gBAAkBW,IACvBA,EAAapsgC,QACbpK,KAAK61gC,gBAAiB,EAE9B,EACArC,EAAc7igC,UAAUymI,QAAU,WAC9Bp3I,KAAKo7B,sBACLp7B,KAAKquZ,WAAa,IACtB,EACOmlnB,CACX,CA7YmC,GCA/BpvgB,IAAwB,WACxB,SAASA,EAAOj8d,GACZnoC,KAAKmoC,OAASA,CAClB,CA+HA,OA9HAi8d,EAAOzzf,UAAUyJ,OAAS,SAAU2h9B,EAAU06C,QACpB,IAAlBA,IAA4BA,GAAgB,GAChDz2gC,KAAK02gC,iBAAiB36C,GAClB/79B,KAAKmoC,OAAOyz7B,YAAc66C,GAC1Bz2gC,KAAKmoC,OAAOo47B,WAAW9lW,oBAE/B,EACAr2H,EAAOzzf,UAAU+lgC,iBAAmB,SAAU36C,GAC1C,GAAI/79B,KAAKmoC,OAAOyz7B,WAAY,CAMxB579B,KAAKmoC,OAAO6ylB,eALI,CACZ,eAAgB,gBAAiB,kBAAmB,oBAAqB,oBACzE,wBAAyB,qBAAsB,oBAAqB,sBACpE,uBAAwB,yBAA0B,qBAAsB,sBAG5Eh7nB,KAAKmoC,OAAOyz7B,WAAWxg8B,sBACvBp7B,KAAKmoC,OAAOyz7B,WAAWxk1B,SAC3B,CACA,OAAQ2k1B,GACJ,IAAK,MACD/79B,KAAKmoC,OAAOyz7B,WAAa579B,KAAKmoC,OAAOwu+B,UACrC,MACJ,IAAK,OACD32gC,KAAKmoC,OAAOyz7B,WAAa579B,KAAKmoC,OAAOyu+B,WACrC,MACJ,IAAK,WACD52gC,KAAKmoC,OAAOyz7B,WAAa579B,KAAKmoC,OAAO0u+B,eACrC,MACJ,IAAK,QACD72gC,KAAKmoC,OAAOyz7B,WAAa579B,KAAKmoC,OAAOsr9B,YACrC,MACJ,IAAK,OACDzz/B,KAAKmoC,OAAOyz7B,WAAa579B,KAAKmoC,OAAO2u+B,WACrC,MACJ,IAAK,SACD92gC,KAAKmoC,OAAOyz7B,WAAa579B,KAAKmoC,OAAO4u+B,aACrC,MACJ,IAAK,cACD/2gC,KAAKmoC,OAAOyz7B,WAAa579B,KAAKmoC,OAAO6u+B,kBACrC,MACJ,IAAK,cACDh3gC,KAAKmoC,OAAOyz7B,WAAa579B,KAAKmoC,OAAO8u+B,oBACrCj3gC,KAAKmoC,OAAOyz7B,WAAWs7C,UAAY,sBACnC,MACJ,IAAK,mBACDl3gC,KAAKmoC,OAAOyz7B,WAAa579B,KAAKmoC,OAAO8u+B,oBACrCj3gC,KAAKmoC,OAAOyz7B,WAAWs7C,UAAY,4BACnC,MACJ,IAAK,eACDl3gC,KAAKmoC,OAAOyz7B,WAAa579B,KAAKmoC,OAAO8u+B,oBACrCj3gC,KAAKmoC,OAAOyz7B,WAAWs7C,UAAY,uBACnC,MACJ,IAAK,gBACDl3gC,KAAKmoC,OAAOyz7B,WAAa579B,KAAKmoC,OAAOgv+B,oBACrC,MACJ,IAAK,eACDn3gC,KAAKmoC,OAAOyz7B,WAAa579B,KAAKmoC,OAAOiv+B,mBAG7C,GAAIrrsB,GAAkB/rU,KAAKmoC,OAAOyz7B,YAAa,CAC3C,IAAIy7C,EAAYr3gC,KAAKmoC,OAAOg/7B,gBAAgB,GAAGvprB,OAC/C,GAAIy5tB,EAMA,OALAr3gC,KAAKmoC,OAAO8jT,cAAc,CAAE07D,YAAa0vnB,IAAa,GAClDr3gC,KAAKmoC,OAAO06mB,eACZ7ipB,KAAKmoC,OAAO06mB,aAAak4U,mBACzB/69B,KAAKmoC,OAAO06mB,aAAay4U,mBAEtBt79B,KAAK02gC,iBAAiBW,GAEjC,MAAMtq/B,MAAM,0BAChB,CACA/sB,KAAKmoC,OAAOyz7B,WAAWJ,UAAYx79B,KAAKmoC,OAAOqz7B,UAC/Cx79B,KAAKs3gC,gBAAgBv7C,GACrB/79B,KAAKmoC,OAAOyz7B,WAAWtg8B,mBACvBt7B,KAAKmoC,OAAOyz7B,WAAWwE,iBACvBpg+B,KAAKmoC,OAAO+27B,cAActuX,gBAAkB5wmB,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,IAC9FpD,KAAKmoC,OAAOktlB,mBAAqBr1nB,KAAKmoC,OAAOumrB,YAC1C1utB,KAAKmoC,OAAOumrB,YAAc1utB,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMi57B,mBAClEv3gC,KAAKmoC,OAAO2h8B,sBACZ9p+B,KAAKmoC,OAAO2h8B,oBAAoB1y1B,UAChCp3I,KAAKmoC,OAAO2h8B,oBAAsB,QAEuD,IAAxF,CAAC,SAAU,cAAe,OAAQ,gBAAgBn/9B,QAAQ3K,KAAKmoC,OAAOw/W,cAC1C,iBAA5B3nZ,KAAKmoC,OAAOw/W,aAAgF,aAA9C3nZ,KAAKmoC,OAAOuz7B,kBAAkBhmb,cAC1E11iB,KAAKmoC,OAAOuz7B,kBAAkB4oB,uBAC9Btk/B,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,IAAMpD,KAAKmoC,OAAO+27B,cAActuX,kBAC1F5wmB,KAAKmoC,OAAO2h8B,oBAAsB,IAAI0pC,IAAcxzgC,KAAKmoC,QACrDnoC,KAAKmoC,OAAOyz7B,WAAWgJ,iBACvB5k+B,KAAKmoC,OAAO+27B,cAAchx0B,IAAM,GAGhCluJ,KAAKmoC,OAAO2h8B,oBAAoBwhB,oBAAqB,EACrDtr/B,KAAKmoC,OAAO+27B,cAAcv71B,KAAO,IAGzC3jI,KAAKwh9B,eACLxh9B,KAAKmoC,OAAOqv+B,oBAAsBx3gC,KAAKmoC,OAAOm17B,iBAC9Ct99B,KAAKmoC,OAAOyz7B,WAAW5+b,aAAantH,KACpC7va,KAAKmoC,OAAOukf,kBACR1shB,KAAKmoC,OAAOsw9B,eACZz4/B,KAAKmoC,OAAOsw9B,aAAarh3B,UACzBp3I,KAAKmoC,OAAOsw9B,aAAe,OAE3Bz4/B,KAAKmoC,OAAOi07B,cAAc6hC,eAAkBj+/B,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,GAChGpD,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAM0/6B,yBACvCh+/B,KAAKmoC,OAAOsw9B,aAAe,IAAImF,IAAa59/B,KAAKmoC,QAEzD,EACAi8d,EAAOzzf,UAAU6w8B,aAAe,WACxBxh9B,KAAKmoC,OAAO06mB,eACZ7ipB,KAAKmoC,OAAO06mB,aAAaq4U,aAAal79B,KAAKmoC,OAAOuz7B,kBAAkBzv9B,gBAChEjM,KAAKmoC,OAAOuz7B,kBAAkBn9kB,SAC9B/1H,GAAS,CAACxoR,KAAKmoC,OAAOhzB,SAAU06Z,KAE3B7va,KAAKmoC,OAAOhzB,QAAQ+yQ,UAAUh1P,SAAS28Y,MAC5C5nJ,GAAY,CAACjoR,KAAKmoC,OAAOhzB,SAAU06Z,KAEvC7va,KAAKmoC,OAAO06mB,aAAa44U,kBACzBz79B,KAAKmoC,OAAO06mB,aAAaw7U,kBAAkB,UAEnD,EACAj6d,EAAOzzf,UAAU2mgC,gBAAkB,SAAUx++B,GACzC,IAAI/jB,EAAU/U,KAAKmoC,OAAOyz7B,WAAW67C,aAAa3++B,GAClD94B,KAAKmoC,OAAOhzB,QAAQ6f,aAAa,OAAQ,QACzCh1B,KAAKmoC,OAAOhzB,QAAQ6f,aAAa,aAAcjgB,EACnD,EACOqvf,CACX,CAnI4B,GCPxBl+c,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAazC2pS,IAA0C,SAAUxoJ,EAAYl/L,EAAQiE,EAAKkkB,GAC7E,IAA2HhvB,EAAvH6e,EAAIld,UAAUC,OAAQkgH,EAAIjjG,EAAI,EAAIhY,EAAkB,OAATmoB,EAAgBA,EAAO/wB,OAAOk+B,yBAAyBt1B,EAAQiE,GAAOkkB,EACrH,GAAuB,kBAAZuN,SAAoD,oBAArBA,QAAQiyT,SAAyB1sO,EAAIvlF,QAAQiyT,SAASzoJ,EAAYl/L,EAAQiE,EAAKkkB,QACpH,IAAK,IAAIrkB,EAAIo7L,EAAWnkM,OAAS,EAAG+I,GAAK,EAAGA,KAAS3K,EAAI+lM,EAAWp7L,MAAIm3G,GAAKjjG,EAAI,EAAI7e,EAAE8hH,GAAKjjG,EAAI,EAAI7e,EAAE6G,EAAQiE,EAAKg3G,GAAK9hH,EAAE6G,EAAQiE,KAASg3G,GAChJ,OAAOjjG,EAAI,GAAKijG,GAAK7jH,OAAO4c,eAAehU,EAAQiE,EAAKg3G,GAAIA,CAChE,EAKIo05B,IAA2B,SAAU5w9B,GAErC,SAAS4w9B,IACL,OAAkB,OAAX5w9B,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAUA,OAbAkmD,IAAUwx9B,EAAW5w9B,GAIrBipS,IAAW,CACPjB,IAAS,IACV4orB,EAAU/mgC,UAAW,iBAAa,GACrCo/U,IAAW,CACPjB,GAAS,UACV4orB,EAAU/mgC,UAAW,aAAS,GACjCo/U,IAAW,CACPjB,GAAS,UACV4orB,EAAU/mgC,UAAW,WAAO,GACxB+mgC,CACX,CAf+B,CAe7BvjrB,ICtCEjuS,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAazC2pS,IAA0C,SAAUxoJ,EAAYl/L,EAAQiE,EAAKkkB,GAC7E,IAA2HhvB,EAAvH6e,EAAIld,UAAUC,OAAQkgH,EAAIjjG,EAAI,EAAIhY,EAAkB,OAATmoB,EAAgBA,EAAO/wB,OAAOk+B,yBAAyBt1B,EAAQiE,GAAOkkB,EACrH,GAAuB,kBAAZuN,SAAoD,oBAArBA,QAAQiyT,SAAyB1sO,EAAIvlF,QAAQiyT,SAASzoJ,EAAYl/L,EAAQiE,EAAKkkB,QACpH,IAAK,IAAIrkB,EAAIo7L,EAAWnkM,OAAS,EAAG+I,GAAK,EAAGA,KAAS3K,EAAI+lM,EAAWp7L,MAAIm3G,GAAKjjG,EAAI,EAAI7e,EAAE8hH,GAAKjjG,EAAI,EAAI7e,EAAE6G,EAAQiE,EAAKg3G,GAAK9hH,EAAE6G,EAAQiE,KAASg3G,GAChJ,OAAOjjG,EAAI,GAAKijG,GAAK7jH,OAAO4c,eAAehU,EAAQiE,EAAKg3G,GAAIA,CAChE,EAKIq05B,IAA2B,SAAU7w9B,GAErC,SAAS6w9B,IACL,OAAkB,OAAX7w9B,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAgBA,OAnBAkmD,IAAUyx9B,EAAW7w9B,GAIrBipS,IAAW,CACPjB,IAAS,IACV6orB,EAAUhngC,UAAW,cAAU,GAClCo/U,IAAW,CACPjB,GAAS,KACV6orB,EAAUhngC,UAAW,gBAAY,GACpCo/U,IAAW,CACPjB,GAAS,IACV6orB,EAAUhngC,UAAW,iBAAa,GACrCo/U,IAAW,CACPjB,MACD6orB,EAAUhngC,UAAW,yBAAqB,GAC7Co/U,IAAW,CACPjB,MACD6orB,EAAUhngC,UAAW,yBAAqB,GACtCgngC,CACX,CArB+B,CAqB7BxjrB,IC5CEjuS,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAazC2pS,IAA0C,SAAUxoJ,EAAYl/L,EAAQiE,EAAKkkB,GAC7E,IAA2HhvB,EAAvH6e,EAAIld,UAAUC,OAAQkgH,EAAIjjG,EAAI,EAAIhY,EAAkB,OAATmoB,EAAgBA,EAAO/wB,OAAOk+B,yBAAyBt1B,EAAQiE,GAAOkkB,EACrH,GAAuB,kBAAZuN,SAAoD,oBAArBA,QAAQiyT,SAAyB1sO,EAAIvlF,QAAQiyT,SAASzoJ,EAAYl/L,EAAQiE,EAAKkkB,QACpH,IAAK,IAAIrkB,EAAIo7L,EAAWnkM,OAAS,EAAG+I,GAAK,EAAGA,KAAS3K,EAAI+lM,EAAWp7L,MAAIm3G,GAAKjjG,EAAI,EAAI7e,EAAE8hH,GAAKjjG,EAAI,EAAI7e,EAAE6G,EAAQiE,EAAKg3G,GAAK9hH,EAAE6G,EAAQiE,KAASg3G,GAChJ,OAAOjjG,EAAI,GAAKijG,GAAK7jH,OAAO4c,eAAehU,EAAQiE,EAAKg3G,GAAIA,CAChE,EAKIs05B,IAAoC,SAAU9w9B,GAE9C,SAAS8w9B,IACL,OAAkB,OAAX9w9B,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAaA,OAhBAkmD,IAAU0x9B,EAAoB9w9B,GAI9BipS,IAAW,CACPjB,GAAS,SACV8orB,EAAmBjngC,UAAW,oBAAgB,GACjDo/U,IAAW,CACPjB,MACD8orB,EAAmBjngC,UAAW,cAAU,GAC3Co/U,IAAW,CACPjB,MACD8orB,EAAmBjngC,UAAW,eAAW,GAC5Co/U,IAAW,CACPjB,MACD8orB,EAAmBjngC,UAAW,cAAU,GACpCingC,CACX,CAlBwC,CAkBtCzjrB,ICzCEjuS,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAazC2pS,IAA0C,SAAUxoJ,EAAYl/L,EAAQiE,EAAKkkB,GAC7E,IAA2HhvB,EAAvH6e,EAAIld,UAAUC,OAAQkgH,EAAIjjG,EAAI,EAAIhY,EAAkB,OAATmoB,EAAgBA,EAAO/wB,OAAOk+B,yBAAyBt1B,EAAQiE,GAAOkkB,EACrH,GAAuB,kBAAZuN,SAAoD,oBAArBA,QAAQiyT,SAAyB1sO,EAAIvlF,QAAQiyT,SAASzoJ,EAAYl/L,EAAQiE,EAAKkkB,QACpH,IAAK,IAAIrkB,EAAIo7L,EAAWnkM,OAAS,EAAG+I,GAAK,EAAGA,KAAS3K,EAAI+lM,EAAWp7L,MAAIm3G,GAAKjjG,EAAI,EAAI7e,EAAE8hH,GAAKjjG,EAAI,EAAI7e,EAAE6G,EAAQiE,EAAKg3G,GAAK9hH,EAAE6G,EAAQiE,KAASg3G,GAChJ,OAAOjjG,EAAI,GAAKijG,GAAK7jH,OAAO4c,eAAehU,EAAQiE,EAAKg3G,GAAIA,CAChE,EAKIu05B,IAA4B,SAAU/w9B,GAEtC,SAAS+w9B,IACL,OAAkB,OAAX/w9B,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAOA,OAVAkmD,IAAU2x9B,EAAY/w9B,GAItBipS,IAAW,CACPjB,MACD+orB,EAAWlngC,UAAW,cAAU,GACnCo/U,IAAW,CACPjB,MACD+orB,EAAWlngC,UAAW,gBAAY,GAC9BkngC,CACX,CAZgC,CAY9B1jrB,IC1BE2jrB,IAAsB,WACtB,SAASA,EAAK3v+B,GACVnoC,KAAKmoC,OAASA,EACdnoC,KAAK+1+B,QAAU,CAAE+N,YAAa,KAAMzqS,YAAa,KAAM12R,cAAc,EACzE,CAssBA,OArsBAm1lB,EAAKnngC,UAAUoxa,SAAW,WACtB,IAAI7rY,EAAQl2C,KAAKmoC,OAAOyz7B,WAAWhskB,YAC/Bx2W,EAAMp5C,KAAKmoC,OAAOyz7B,WAAW/rkB,UACjC,OAAO7vZ,KAAKmoC,OAAO4v8B,WAAW/1Y,cAAc9rjB,EAAOkD,EACvD,EACA0+9B,EAAKnngC,UAAUy1mB,SAAW,WACtB,OAAIpmnB,KAAKmoC,OAAOi07B,cAAcptyB,MACdhvL,KAAKmoC,OAAOi07B,cAAcptyB,MAAMztL,QAC/Bsya,UAEV,IACX,EACAikmB,EAAKnngC,UAAU8pnB,mBAAqB,WAChC,IAAIn7nB,EAAQU,KACZ,GAAKA,KAAKmoC,OAAOyz7B,WAAjB,CAGA,IAAI1l7B,EAAQl2C,KAAKmoC,OAAOyz7B,WAAWhskB,YAC/Bx2W,EAAMp5C,KAAKmoC,OAAOyz7B,WAAW/rkB,UACf7vZ,KAAKmoC,OAAO4v8B,WAAWx/5B,QAAQv4E,KAAKmoC,OAAO4v8B,WAAW/1Y,cAAc9rjB,EAAOkD,IACjF6hF,MAAK,SAAU56H,GAAK,OAAOf,EAAMy8nB,mBAAmB17nB,EAAI,IAAG+7H,OAAM,SAAU/7H,GAAK,OAAOf,EAAM08nB,mBAAmB37nB,EAAI,GAJhI,CAKJ,EACAy3gC,EAAKnngC,UAAUornB,mBAAqB,SAAU17nB,GAC1C,IAAIf,EAAQU,MACPA,KAAKmoC,QAAUnoC,KAAKmoC,QAAUnoC,KAAKmoC,OAAOgwP,aAG/Cn4R,KAAKmoC,OAAOm4P,Q3BbK,c2BauBjgS,GAAG,SAAU4Y,GACjD,IAAI62c,EAAarmY,GAAO,GAAIxwE,EAAK4R,OAAQ,MAAM,GAC/CvrB,EAAM6oC,OAAO0u8B,WAAa/mhB,EAAW1pd,QAAO,SAAU8jC,GAAQ,OAAQA,EAAK5qC,EAAM6oC,OAAOw+7B,YAAY0P,QAAU,IAC9G/2+B,EAAM6oC,OAAOou8B,UAAYzmhB,EAAW1pd,QAAO,SAAU8jC,GAAQ,OAAOA,EAAK5qC,EAAM6oC,OAAOw+7B,YAAY0P,QAAU,IAC5G/2+B,EAAMk1gC,uBACFl1gC,EAAM6oC,OAAOg08B,mBAAyE,SAApD78+B,EAAM6oC,OAAOg08B,kBAAkB44B,UAAU7/7B,QAC3E51E,EAAM6oC,OAAOg08B,kBAAkB64B,oBAEnC11gC,EAAM6oC,OAAOm4P,Q3BnBF,Y2BmB4B,MAAM,WACzChhS,EAAM6oC,OAAOuqY,cACTpza,EAAM6oC,OAAOsykB,YACbn7mB,EAAM6oC,OAAOkxK,O3BOd,Q2BPmC,CAAC,EAE3C,GACJ,GACJ,EACAy+zB,EAAKnngC,UAAUqrnB,mBAAqB,SAAU37nB,GAC1C,IAAIf,EAAQU,MACPA,KAAKmoC,QAAUnoC,KAAKmoC,QAAUnoC,KAAKmoC,OAAOgwP,aAG/Cn4R,KAAKmoC,OAAOm4P,QAAQllK,IAAsB,CAAEnkH,MAAO5W,IAAK,WAAc,OAAOf,EAAM6oC,OAAOuqY,aAAe,GAC7G,EACAolmB,EAAKnngC,UAAU6jgC,qBAAuB,SAAUuD,GAM5C,QAL8B,IAA1BA,IAAoCA,GAAwB,GAC5D/3gC,KAAKmoC,OAAOg08B,oBACZn8+B,KAAKmoC,OAAOg08B,kBAAkB44B,UAAU7/7B,OAAS,GACjD+yM,GAAY,CAACjoR,KAAKmoC,OAAOhzB,SAAU,mBAEnCnV,KAAKmoC,OAAOuz7B,mBAAqB179B,KAAKmoC,OAAOuz7B,kBAAkBskB,cAAe,CAC9E,IAAI3roB,EAAgB,CAAC,iBACrB,GAAIr0W,KAAK+1+B,QAAQpzjB,eAC2E,IAAxF,CAAC,SAAU,cAAe,OAAQ,gBAAgBh4a,QAAQ3K,KAAKmoC,OAAOw/W,aAAqB,CAC3FtzC,EAAgB,GAChB,IAAK,IAAIloW,EAAI,EAAGwjD,EAAM3vD,KAAK+1+B,QAAQ+N,YAAY1g/B,OAAQ+I,EAAIwjD,EAAKxjD,IAC5DkoW,EAAcjoW,KAAK,iBAAmBpM,KAAK+1+B,QAAQ+N,YAAYv39B,SAASpgB,EAAE2K,WAAY,KAAKqpzB,YACvFng0B,KAAK+1+B,QAAQ18R,YAAY9srB,SAASpgB,EAAE2K,WAAY,MAAQ9W,KAAK+1+B,QAAQ+N,YAAYv39B,SAASpgB,EAAE2K,WAAY,KAAKqpzB,aAC7Gng0B,KAAK+1+B,QAAQ18R,YAAY9srB,SAASpgB,EAAE2K,WAAY,KAAKqpzB,YACrD9rd,EAAcjoW,KAAK,iBAAmBpM,KAAK+1+B,QAAQ18R,YAAY9srB,SAASpgB,EAAE2K,WAAY,KAAKqpzB,WAGvG,CACI9rd,EAAcjxW,OAAS,GACvBpD,KAAKmoC,OAAO6ylB,eAAe3mR,EAEnC,CACA,GAAI0jqB,EACA/3gC,KAAKmoC,OAAOkxK,OAAOj+E,IAAkB,CAAE472B,cAAeh3+B,KAAKmoC,OAAOs+7B,sBADtE,CAIA,IAAIoQ,EAAa72+B,KAAKmoC,OAAO0u8B,YAAc,GACvCN,EAAYv2+B,KAAKmoC,OAAOou8B,WAAa,GACrCrs8B,EAAO2s8B,EAAWz99B,OAAOm99B,GAC7Bv2+B,KAAKmoC,OAAOkxK,OAAOj+E,IAAkB,CAAE472B,cAAeh3+B,KAAKmoC,OAAOu87B,UAAY1k+B,KAAKmoC,OAAOu87B,UAAUjgjB,YAAYv6Y,GAAQ,IAJxH,CAKJ,EACA4t+B,EAAKnngC,UAAUuz2B,YAAc,SAAUjr2B,GACnC,IAAI3Z,EAAQU,KACR+8nB,EAAa,CACbplN,YAAa1+Z,EAAK0+Z,YAAa72V,QAAQ,EAAO52C,KAAMjxB,EAAKixB,KACzD+uY,aAAchga,EAAK++/B,WAAW/+lB,aAAcE,eAAgBlga,EAAK++/B,WAAW7+lB,eAC5EH,eAAgB//Z,EAAK++/B,WAAWh/lB,gBAQpC,GANIh5a,KAAKmoC,OAAOg08B,mBAAqBn8+B,KAAKmoC,OAAOg08B,kBAAkB44B,WAAa/0gC,KAAKmoC,OAAOg08B,kBAAkB44B,UAAU5//B,UACpHnV,KAAKmoC,OAAOg08B,kBAAkB44B,UAAU5//B,QAAQhP,MAAMi+J,QAAU,QAEhEpkK,KAAKmoC,OAAO6+lB,cAAgBhnoB,KAAKmoC,OAAO6+lB,aAAa+tY,WAAa/0gC,KAAKmoC,OAAO6+lB,aAAa+tY,UAAU5//B,UACrGnV,KAAKmoC,OAAO6+lB,aAAa+tY,UAAU5//B,QAAQhP,MAAMi+J,QAAU,QAE3DpkK,KAAKmoC,OAAOw78B,6BACa,iBAArB1q+B,EAAK0+Z,aAAuD,iBAArB1+Z,EAAK0+Z,aAAgC,CAC5E33a,KAAK+1+B,QAAQpzjB,cAAe,EAC5B3ib,KAAK+1+B,QAAQ+N,YAAc,GAc3B,IAbA,IAAIthkB,EAAWvpa,EAAKixB,gBAAgBx5B,MAA8B,IAArBuI,EAAKixB,KAAK9mC,QAC9B,iBAArB6V,EAAK0+Z,YAAiC1+Z,EAAK++/B,WAAWh/lB,eAAiB//Z,EAAKixB,KACrD,kBAAdjxB,EAAKixB,MAA0C,kBAAdjxB,EAAKixB,MAA2C,iBAArBjxB,EAAK0+Z,YACrC,CAAC1+Z,EAAKixB,MAAvCjxB,EAAK++/B,WAAWh/lB,eACpBvsG,EAAU,SAAUviS,GACpBixT,EAAO46oB,QAAQpzjB,eAAsC,iBAArB1pa,EAAK0+Z,cAAmC5rG,GAAkB7hS,EAAK/B,SAC/F,IAAIg4xB,EAAahle,EAAOhzT,OAAOu87B,UAAUgT,uBAAuBxt8B,GAC5Di2xB,GAAc,GAAoI,IAA/Hhle,EAAOhzT,OAAOo47B,WAAWwV,QAAQ+N,YAAY19+B,QAAO,SAAU6xgC,GAAU,OAAOA,EAAO93M,aAAeA,CAAY,IAAG/8zB,QACpI+3V,EAAO46oB,QAAQpzjB,cAClBxnF,EAAO46oB,QAAQ+N,YAAY13+B,KAAK+uV,EAAOhzT,OAAOyh8B,aAAaC,kBAAkBt98B,SAAS4zyB,EAAWrpzB,WAAY,KAErH,EACIqkV,EAASn7V,KACJsP,EAAK,EAAG4ogC,EAAa11lB,EAAUlza,EAAK4ogC,EAAW90gC,OAAQkM,IAAM,CAElEm9T,EADWyrsB,EAAW5ogC,GAE1B,CACAtP,KAAK+1+B,QAAQ18R,YAAcr5sB,KAAK+1+B,QAAQ+N,WAC5C,CAEA9j/B,KAAKmoC,OAAO4v8B,WAAW3jkB,YAAYtB,WAAWwQ,QAC9Ctjb,KAAKmoC,OAAOm4P,QAAQllK,IAAuB2hgB,GAAY,SAAUo7Y,GACxDA,EAAYr37B,QACbxhF,EAAMm7nB,oBAEd,IAGAxhnB,EAAK+jH,QAAQ/B,MAAK,YACT37H,EAAM6oC,QAAU7oC,EAAM6oC,QAAU7oC,EAAM6oC,OAAOgwP,aAGlD74R,EAAM6oC,OAAOm4P,QAAQllK,IAAuB2hgB,GAAY,SAAUq7Y,GACzDA,EAAWt37B,QACZxhF,EAAMm7nB,oBAEd,GACJ,IAAGr+f,OAAM,SAAU/7H,IACVf,EAAM6oC,QAAU7oC,EAAM6oC,QAAU7oC,EAAM6oC,OAAOgwP,aAGlD74R,EAAM6oC,OAAOm4P,QAAQllK,IAAsB,CAAEnkH,MAAO5W,GACxD,GAER,EACAy3gC,EAAKnngC,UAAUkj/B,SAAW,SAAU3qqB,GAChC,IAAI5pV,EAAQU,KACZ,GAAIA,KAAKmoC,OAAOi07B,cAAcpuV,cAAgBhuoB,KAAKmoC,OAAOuz7B,kBAAkBn9kB,SAAU,CAClF,IAAKv+Y,KAAKq4gC,aAAanvrB,IAAclpV,KAAKmoC,OAAOu87B,UAAU4b,aAAap3pB,GAEpE,YADAlpV,KAAKmoC,OAAO637B,WAAW42B,oBAAoB,aAAc1tqB,GAG7D,IAAIovrB,EAAapvrB,aAAqBx4U,MAASw4U,EAAY,CAACA,GAC5D,GAAyB,IAArBovrB,EAAUl1gC,OACV,OAEJ,IAAI6V,EAAO,CACP0+Z,YAAa,cAAe72V,QAAQ,EAAO52C,KAAMou+B,EACjDr/lB,aAAcq/lB,EAAWn/lB,eAAgB,GAAIH,eAAgB,IAEjEh5a,KAAKmoC,OAAOm4P,QAAQllK,IAAoBniH,GAAM,SAAU6l3B,GACpD,IAAKA,EAAQh+yB,OAAQ,CACjB,IAAIqyI,EAAS7zN,EAAM6oC,OAAOw+7B,YACtBqxC,EAAa,CAAE/+lB,aAAc,GAAIE,eAAgB,GAAIH,eAAgB,IACrEh8S,OAAU,EACd,GAAI8hwB,EAAQ7ld,wBAAwBvoa,MAAO,CACvC,IAAK,IAAIpB,EAAK,EAAGgmC,EAAKwp1B,EAAQ7ld,aAAc3pa,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CAC9D,IAAIi6U,EAAUj0S,EAAGhmC,GACjBi6U,EAAUjqV,EAAM6oC,OAAOu87B,UAAUgR,oBAAoBnspB,GACrD,IAAID,EAAc7/P,GAAO,CAAC,EAAGnqF,EAAM6oC,OAAOu87B,UAAUmR,gBAAgBtspB,GAAS,GAAO,MAAM,GAC1FyurB,EAAW/+lB,aAAa7sa,KAAKk9U,EACjC,CACAtsN,EAAU19H,EAAM6oC,OAAO4v8B,WAAW3jkB,YAAYvnF,YAAYmrrB,EAAY7kzB,EAAOh9L,GAAI72B,EAAM8mnB,WAAY9mnB,EAAMyib,WAC7G,KACK,CACD,IAAIjoF,EAAUx6V,EAAM6oC,OAAOu87B,UAAUmR,gBAAgB/2G,EAAQ7ld,cAAc,GAC3E++lB,EAAW/+lB,aAAa7sa,KAAK0tV,GAC7B98N,EAAU19H,EAAM6oC,OAAO4v8B,WAAW3jkB,YAAY8E,OAAOp/E,EAASx6V,EAAM8mnB,WAAY9mnB,EAAMyib,WAC1F,CACA,IAAIw2lB,EAAW,CACX5gmB,YAAa,eAAgB72V,QAAQ,EAAO52C,KAAM401B,EAAQ7ld,aAAcj8S,QAASA,EAASg74B,WAAYA,GAE1G14gC,EAAM4k3B,YAAYq0J,EACtB,CACJ,GACJ,CACJ,EACAT,EAAKnngC,UAAUmyvB,UAAY,SAAU55a,EAAWh0Q,GAC5C,IAAI51E,EAAQU,KACZ,GAAIA,KAAKmoC,OAAOi07B,cAAchwV,eAAiBpsoB,KAAKmoC,OAAOuz7B,kBAAkBn9kB,SAAU,CACnF,GAAkC,wBAA9Bv+Y,KAAKmoC,OAAOk2hB,gBAA4Cr+jB,KAAKq4gC,aAAanvrB,IACvElpV,KAAKmoC,OAAOu87B,UAAU4b,aAAap3pB,GAGtC,OAFAlpV,KAAKmoC,OAAO637B,WAAW42B,oBAAoB,aAAc1tqB,QACzDlpV,KAAKmoC,OAAOo47B,WAAWwV,QAAQpzjB,cAAe,GAGlD,IAAI61lB,EAAgBtvrB,aAAqBx4U,MAASw4U,EAAY,CAACA,GAC/D,GAA4B,IAAxBsvrB,EAAap1gC,OACb,OAGJ,GADApD,KAAKmoC,OAAOk2hB,cAAgBnpf,EACxBA,EACA,OAAQA,GACJ,IAAK,OACDl1E,KAAKy4gC,YAAYvvrB,GACjB,MACJ,IAAK,iBACDlpV,KAAK04gC,mBAAmBxvrB,EAAWh0Q,GACnC,MACJ,IAAK,sBACDl1E,KAAK24gC,oBAAoBzvrB,EAAWh0Q,GACpC,MACJ,IAAK,aACDl1E,KAAK44gC,oBAAoB1vrB,EAAWh0Q,OAI3C,CACD,IAAIj8D,EAAO,CACP0+Z,YAAa,cAAe72V,QAAQ,EAAO52C,KAAMg/S,EACjD+vF,aAAc,GAAIE,eAAgBq/lB,EAAcx/lB,eAAgB,IAEpEh5a,KAAKmoC,OAAOm4P,QAAQllK,IAAoBniH,GAAM,SAAU4//B,GACpD,IAAKA,EAAS/37B,OAAQ,CAClB,IAAIk8C,OAAU,EACVm2F,EAAS7zN,EAAM6oC,OAAOw+7B,YACtBqxC,EAAa,CAAE/+lB,aAAc,GAAIE,eAAgB,GAAIH,eAAgB,IACzE,GAAI6/lB,EAAS1/lB,0BAA0Bzoa,MAAO,CAC1C,IAAK,IAAIpB,EAAK,EAAGgmC,EAAKuj+B,EAAS1/lB,eAAgB7pa,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CACjE,IAAIyv+B,EAAUzp8B,EAAGhmC,GACjByv+B,EAAUz/+B,EAAM6oC,OAAOu87B,UAAUgR,oBAAoBqJ,GACrD,IAAI+5B,EAAcrv7B,GAAO,CAAC,EAAGnqF,EAAM6oC,OAAOu87B,UAAUmR,gBAAgBkJ,GAAS,GAAO,MAAM,GAC1Fi5B,EAAW7+lB,eAAe/sa,KAAK0sgC,EACnC,CACA974B,EAAU19H,EAAM6oC,OAAO4v8B,WAAW3jkB,YAAYvnF,YAAYmrrB,EAAY7kzB,EAAOh9L,GAAI72B,EAAM8mnB,WAAY9mnB,EAAMyib,WAC7G,KACK,CACD,IAAIk9jB,EAAU3/+B,EAAM6oC,OAAOu87B,UAAUmR,gBAAgBgjC,EAAS1/lB,gBAAgB,GAC9E6+lB,EAAW7+lB,eAAe/sa,KAAK6y+B,GAC/Bji3B,EAAU19H,EAAM6oC,OAAO4v8B,WAAW3jkB,YAAYjrV,OAAOgqI,EAAOh9L,GAAI8o9B,EAAS3/+B,EAAM8mnB,WAAY9mnB,EAAMyib,WACrG,CACA,IAAIw2lB,EAAW,CACX5gmB,YAAa,eAAgB72V,QAAQ,EACrC52C,KAAM2u+B,EAAS1/lB,eAAgBn8S,QAASA,EAASg74B,WAAYA,GAEjE14gC,EAAM4k3B,YAAYq0J,EACtB,CACJ,GACJ,CACJ,CACJ,EACAT,EAAKnngC,UAAU8q/B,YAAc,SAAUvyqB,EAAWh0Q,GAC9C,IAAI51E,EAAQU,KACZ,GAAIA,KAAKmoC,OAAOi07B,cAAcvmU,gBAAkB71pB,KAAKmoC,OAAOuz7B,kBAAkBn9kB,SAAU,CACpFv+Y,KAAKmoC,OAAOk2hB,cAAgBnpf,EAC5B,IAAI6j8B,EAAe,GASnB,GAA4B,KAPxBA,EADqB,kBAAd7vrB,GAA+C,kBAAdA,EACzBlpV,KAAKmoC,OAAO0u8B,WAAWzw+B,QAAO,SAAUqw+B,GACnD,OAAOA,EAASn3+B,EAAM6oC,OAAOw+7B,YAAYxw8B,MAAQ+yT,CACrD,IAGgBA,aAAqBx4U,MAAQw4U,EAAY,CAACA,IAE7C9lV,OACb,OAEJ,GAAI8xE,EACA,OAAQA,GACJ,IAAK,SACDl1E,KAAKoi+B,cAAc22C,GACnB,MACJ,IAAK,mBACD/4gC,KAAK04gC,mBAAmBK,EAAc7j8B,GACtC,MACJ,IAAK,wBACDl1E,KAAK24gC,oBAAoBI,EAAc7j8B,GACvC,MACJ,IAAK,eACDl1E,KAAK44gC,oBAAoBG,EAAc7j8B,OAI9C,CACD,IAAIj8D,EAAO,CACP0+Z,YAAa,cAAe72V,QAAQ,EAAO52C,KAAMg/S,EACjD+vF,aAAc,GAAIE,eAAgB,GAAIH,eAAgB+/lB,GAE1D/4gC,KAAKmoC,OAAOm4P,QAAQllK,IAAoBniH,GAAM,SAAU+//B,GACpD,IAAKA,EAAWl47B,OAAQ,CACpB,IAAIk8C,OAAU,EACVm2F,EAAS7zN,EAAM6oC,OAAOw+7B,YACtBqxC,EAAa,CAAE/+lB,aAAc,GAAIE,eAAgB,GAAIH,eAAgB,IACrEggmB,EAAWhgmB,eAAe51a,OAAS,GACnC40gC,EAAWh/lB,eAAiBg/lB,EAAWh/lB,eAAe5/Z,OAAO4//B,EAAWhgmB,gBACxEh8S,EAAU19H,EAAM6oC,OAAO4v8B,WAAW3jkB,YAAYvnF,YAAYmrrB,EAAY7kzB,EAAOh9L,GAAI72B,EAAM8mnB,WAAY9mnB,EAAMyib,cAGzGi2lB,EAAWh/lB,eAAe5sa,KAAK4sgC,EAAWhgmB,eAAe,IACzDh8S,EAAU19H,EAAM6oC,OAAO4v8B,WAAW3jkB,YAAYjhZ,OAAOggM,EAAOh9L,GAAI6i/B,EAAWhgmB,eAAe,GAAI15a,EAAM8mnB,WAAY9mnB,EAAMyib,aAE1Hzib,EAAM6oC,OAAOu87B,UAAUwC,qBAAqB8xC,EAAWhgmB,gBACvD,IAAIu/lB,EAAW,CACX5gmB,YAAa,eAAgB72V,QAAQ,EACrC52C,KAAM8u+B,EAAWhgmB,eAAgBh8S,QAASA,EAASg74B,WAAYA,GAEnE14gC,EAAM4k3B,YAAYq0J,EACtB,CACJ,GACJ,CACJ,CACJ,EACAT,EAAKnngC,UAAU+ngC,mBAAqB,SAAUxvrB,EAAWh0Q,GACrD,IAAI51E,EAAQU,KACRi5gC,EAAiB,GACjBC,GAAmB,EACvB,GAAIhwrB,aAAqBx4U,MACrB,IAAK,IAAIpB,EAAK,EAAG6pgC,EAAcjwrB,EAAW55U,EAAK6pgC,EAAY/1gC,OAAQkM,IAAM,CACrE,IAAIkx+B,EAAU24B,EAAY7pgC,GAC1B2pgC,EAAe7sgC,KAAK,CAAE4p+B,WAAYwK,EAASr48B,OAAQnoC,KAAK69+B,eAAe2C,IAC3E,MAGAy4B,EAAiB,CAAEjjC,WAAY9spB,EAAW/gT,OAAQnoC,KAAK69+B,eAAe30pB,IAE1E,IACIjwU,EAAO,CACP0+Z,YAAwB,mBAAXziW,EAA8B,cAAgB,cAAe4L,QAAQ,EAClFm4V,aAAc,GAAIE,eAHFjwF,aAAqBx4U,MAASw4U,EAAY,CAACA,GAGX8vF,eAAgB,IAEpE//Z,EAAKixB,KAAO+u+B,EACZj5gC,KAAKmoC,OAAOm4P,QAAQllK,IAAoBniH,GAAM,SAAUmggC,GACpD,IAAKA,EAAet47B,OAAQ,CAuCxB,IAtCA,IAAIqyI,EAAS7zN,EAAM6oC,OAAOw+7B,YACtBqxC,EAAa,CAAE/+lB,aAAc,GAAIE,eAAgB,GAAIH,eAAgB,IACrEqgmB,EAAoBJ,aAA0BvogC,MAAQuogC,EAAiB,CAACA,GACxEl4lB,EAAU,SAAU9qa,EAAG2U,GACvB,IAAI0u/B,EAAaF,EAAejgmB,eAAe5sZ,SAAStW,EAAEa,WAAY,KAClEin+B,EAAcs7B,EAAiB9s/B,SAAStW,EAAEa,WAAY,KAAKqxB,OAC3Dox+B,EAAkBx7B,EAAY5qxB,EAAO+pxB,qBACrClxR,OAAa,EACbwtT,OAAgB,EACpB,OAAQtk8B,GACJ,IAAK,iBACD82oB,EAAa1stB,EAAM6oC,OAAOs+7B,gBAAgBrg+B,QAAO,SAAU2wB,GAAS,OAAOA,EAAMguwB,OAASu0O,EAAWv0O,IAAM,IAAG,IAC9Gy0O,EAAgBl6gC,EAAMm6gC,iBAAiBztT,EAAW74f,EAAOp8C,WAAYwi2B,MAC/Cx7B,EAAY5qxB,EAAO+pxB,sBACrCa,EAAY5qxB,EAAO+pxB,qBAAuBs8B,EAC1CF,EAAWnmzB,EAAO+pxB,qBAAuB7H,IAA4BrpR,EAAW74f,EAAOp8C,YACvFui2B,EAAWnmzB,EAAO2ixB,cAAgBiI,EAAY5qxB,EAAOh9L,IACrDmj/B,EAAWnmzB,EAAOqqxB,aAAe,KACjCw6B,EAAW7+lB,eAAe/sa,KAAK9M,EAAM6oC,OAAOu87B,UAAUmR,gBAAgBkI,GAAa,IACnFi6B,EAAW/+lB,aAAa7sa,KAAK9M,EAAM6oC,OAAOu87B,UAAUmR,gBAAgByjC,GAAY,KAGhFtB,EAAW7+lB,eAAe/sa,KAAK9M,EAAM6oC,OAAOu87B,UAAUmR,gBAAgByjC,GAAY,IAEtF,MACJ,IAAK,mBACIA,EAAWnmzB,EAAO+pxB,uBACnBa,EAAY5qxB,EAAO+pxB,qBACf59+B,EAAMm6gC,iBAAiBH,EAAWnmzB,EAAOp8C,WAAYwi2B,GACzDvB,EAAW7+lB,eAAe/sa,KAAK9M,EAAM6oC,OAAOu87B,UAAUmR,gBAAgBkI,GAAa,KAEnFu7B,EAAWnmzB,EAAOh9L,MAAQ4n9B,EAAY5qxB,EAAOh9L,MAC7C6h/B,EAAWh/lB,eAAe5sa,KAAKktgC,GAC/BJ,GAAmB,GAInC,EACSjjgC,EAAI,EAAG2U,EAAQwu/B,EAAejgmB,eAAe/1a,OAAQ6S,EAAI2U,EAAO3U,IACrE8qa,EAAQ9qa,GAEZ,IAAI+mH,EAAU19H,EAAM6oC,OAAO4v8B,WAAW3jkB,YAAYvnF,YAAYmrrB,EAAY7kzB,EAAOh9L,GAAI72B,EAAM8mnB,WAAY9mnB,EAAMyib,YAC7Gzib,EAAM6oC,OAAOu87B,UAAUwC,qBAAqBkyC,EAAejgmB,gBAC3D,IAAIo/lB,EAAW,CACX5gmB,YAAwB,mBAAXziW,EAA8B,eAAiB,eAC5D4L,QAAQ,EAAO52C,KAAMgv+B,EAAmBE,EAAepgmB,eAAiBogmB,EAAejgmB,eACvFn8S,QAASA,EAASg74B,WAAYA,GAElC14gC,EAAM4k3B,YAAYq0J,EACtB,CACJ,GACJ,EACAT,EAAKnngC,UAAUgogC,oBAAsB,SAAUzvrB,EAAWh0Q,GACtD,IAAI51E,EAAQU,KACR05gC,EAAa,GACjB,GAAIxwrB,aAAqBx4U,MACrB,IAAK,IAAIpB,EAAK,EAAGqqgC,EAAczwrB,EAAW55U,EAAKqqgC,EAAYv2gC,OAAQkM,IAAM,CACrE,IAAIky+B,EAAUm4B,EAAYrqgC,GAC1BoqgC,EAAWttgC,KAAK,CAAE4p+B,WAAYwL,EAASr58B,OAAQnoC,KAAK69+B,eAAe2D,IACvE,MAGAk4B,EAAa,CAAE1jC,WAAY9spB,EAAW/gT,OAAQnoC,KAAK69+B,eAAe30pB,IAEtE,IACIjwU,EAAO,CACP0+Z,YAAwB,wBAAXziW,EAAmC,cAAgB,cAAe4L,QAAQ,EACvFm4V,aAAc,GAAIE,eAHIjwF,aAAqBx4U,MAASw4U,EAAY,CAACA,GAGX8vF,eAAgB,IAE1E//Z,EAAKixB,KAAOwv+B,EACZ15gC,KAAKmoC,OAAOm4P,QAAQllK,IAAoBniH,GAAM,SAAU2ggC,GACpD,IAAKA,EAAW947B,OAAQ,CA4CpB,IA3CA,IAAIy95B,EAAWj/+B,EAAM6oC,OAAOw+7B,YACxBqxC,EAAa,CAAE/+lB,aAAc,GAAIE,eAAgB,GAAIH,eAAgB,IACrE6gmB,EAAeH,aAAsBhpgC,MAAQgpgC,EAAa,CAACA,GAC3D14lB,EAAU,SAAU/qa,EAAG2U,GACvB,IAAI0u/B,EAAaM,EAAWzgmB,eAAe5sZ,SAAStW,EAAEa,WAAY,KAC9Din+B,EAAc87B,EAAatt/B,SAAStW,EAAEa,WAAY,KAAKqxB,OACvD2x+B,EAAex6gC,EAAM6oC,OAAOu87B,UAAUuZ,oBAAoBF,EAAau7B,GACvE7ja,OAAY,EAChB,OAAQvgiB,GACJ,IAAK,sBAOD,GANA51E,EAAMy6gC,sBAAsBh8B,EAAau7B,GACzC7ja,GAAan2mB,EAAM6oC,OAAOu87B,UAAU+Z,iBAAiBV,EAAau7B,GAClEA,EAAW/6B,EAASf,aAAe/nY,EAAY,KAAOsoY,EAAYQ,EAASpo9B,IAC3Emj/B,EAAW/6B,EAASzI,cAAgB,KACpCkiC,EAAW/+lB,aAAa7sa,KAAK9M,EAAM6oC,OAAOu87B,UAAUmR,gBAAgByjC,GAAY,IAChFtB,EAAW7+lB,eAAe/sa,KAAK9M,EAAM6oC,OAAOu87B,UAAUmR,gBAAgBkI,GAAa,KAC9Ez++B,EAAM6oC,OAAO+27B,cAAcw8B,mBAAoB,CAEhD,GADA4d,EAAW/6B,EAASrB,qBAAuB,KACvC48B,EAAa9jC,WAAW5y+B,OAAS,EAAG,CACpC,IAAI82H,EAAO4/4B,EAAa9jC,WAAWpl+B,OAAO,GAAG,GAAG2t+B,EAASlT,iBAC1B,IAA3Bnx2B,EAAKvvH,QAAQ,WACb2ugC,EAAW/6B,EAASlT,gBAAkBnx2B,EAE9C,CACI4/4B,EAAa37B,OAAO/6+B,OAAS,IAC7Bk2gC,EAAW/6B,EAASlT,gBAAkByuC,EAAa37B,OAAOvt+B,OAAO,GAAG,GAAG2t+B,EAASlT,gBAChF2sC,EAAWh/lB,eAAiBg/lB,EAAWh/lB,eAAe5/Z,OAAO0ggC,EAAa37B,SAE1E1oY,IACAqka,EAAa9jC,WAAa8jC,EAAa9jC,WAAW5v+B,QAAO,SAAUqw+B,GAC/D,OAAOA,EAAS8H,EAASzI,gBAAkBwjC,EAAW/6B,EAASpo9B,GACnE,KAEJ6h/B,EAAWh/lB,eAAiBg/lB,EAAWh/lB,eAAe5/Z,OAAO0ggC,EAAa9jC,WAC9E,CACA,MACJ,IAAK,wBACD12+B,EAAMy6gC,sBAAsBh8B,EAAau7B,EAAW/6B,EAASxn0B,YAC7Dih2B,EAAW7+lB,eAAe/sa,KAAK9M,EAAM6oC,OAAOu87B,UAAUmR,gBAAgBkI,GAAa,IACnFi6B,EAAWh/lB,eAAiBg/lB,EAAWh/lB,eAAe5/Z,OAAO0ggC,EAAa9jC,YAAY589B,OAAO0ggC,EAAa37B,QAGtH,EACSlo+B,EAAI,EAAG2U,EAAQgv/B,EAAWzgmB,eAAe/1a,OAAQ6S,EAAI2U,EAAO3U,IACjE+qa,EAAQ/qa,GAEZ,IAAI+mH,EAAU19H,EAAM6oC,OAAO4v8B,WAAW3jkB,YAAYvnF,YAAYmrrB,EAAYz5B,EAASpo9B,GAAI72B,EAAM8mnB,WAAY9mnB,EAAMyib,YAC/Gzib,EAAM6oC,OAAOu87B,UAAUwC,qBAAqB0yC,EAAWzgmB,gBACvD,IAAIo/lB,EAAW,CACX5gmB,YAAwB,wBAAXziW,EAAmC,eAAiB,eACjE4L,QAAQ,EAAO52C,KAAM0v+B,EAAWzgmB,eAAgBn8S,QAASA,EAASg74B,WAAYA,GAElF14gC,EAAM4k3B,YAAYq0J,EACtB,CACJ,GACJ,EACAT,EAAKnngC,UAAUiogC,oBAAsB,SAAU1vrB,EAAWh0Q,GACtD,IAAI51E,EAAQU,KACRg6gC,EAAa,GACbd,GAAmB,EACvB,GAAIhwrB,aAAqBx4U,MACrB,IAAK,IAAIpB,EAAK,EAAG2qgC,EAAc/wrB,EAAW55U,EAAK2qgC,EAAY72gC,OAAQkM,IAAM,CACrE,IAAI4qgC,EAAUD,EAAY3qgC,GAC1B0qgC,EAAW5tgC,KAAKpM,KAAK69+B,eAAeq8B,GAAS,GACjD,MAGAF,EAAah6gC,KAAK69+B,eAAe30pB,GAAW,GAEhD,IACIjwU,EAAO,CACP0+Z,YAAwB,eAAXziW,EAA0B,cAAgB,cAAe4L,QAAQ,EAC9Em4V,aAAc,GAAIE,eAHIjwF,aAAqBx4U,MAASw4U,EAAY,CAACA,GAGX8vF,eAAgB,IAE1E//Z,EAAKixB,KAAO8v+B,EACZh6gC,KAAKmoC,OAAOm4P,QAAQllK,IAAoBniH,GAAM,SAAUkhgC,GACpD,IAAKA,EAAWr57B,OAAQ,CAmCpB,IAlCA,IAAIs57B,EAAW96gC,EAAM6oC,OAAOw+7B,YACxBqxC,EAAa,CAAE/+lB,aAAc,GAAIE,eAAgB,GAAIH,eAAgB,IACrE64lB,EAAemI,aAAsBtpgC,MAAQspgC,EAAa,CAACA,GAC3D5+hB,EAAU,SAAUnle,EAAG2U,GACvB,IAAI0u/B,EAAaa,EAAWhhmB,eAAe5sZ,SAAStW,EAAEa,WAAY,KAC9Din+B,EAAc8zB,EAAatl/B,SAAStW,EAAEa,WAAY,KAClDujgC,EAAmB/6gC,EAAM6oC,OAAOu87B,UAAUuZ,oBAAoBF,GAC9Du8B,EAAgBD,EAAiBl8B,OAAO/k+B,OAAOihgC,EAAiBrkC,YACpE,OAAQ9g6B,GACJ,IAAK,aAID,GAHAok8B,EAAWc,EAASjk/B,IAAM4n9B,EAAYq8B,EAASjk/B,IAC/Cmj/B,EAAWc,EAAStkC,cAAgB,KACpCwjC,EAAWc,EAAS58B,aAAe,KAC/Bl++B,EAAM6oC,OAAO+27B,cAAcw8B,oBAAsB4d,EAAWc,EAASl9B,qBAAsB,CAC3F,IAAIq9B,EAAiBj7gC,EAAM6oC,OAAO0u8B,WAAWzw+B,QAAO,SAAUqw+B,GAC1D,OAAOA,EAAS2jC,EAASjk/B,MAAQmj/B,EAAWc,EAASjk/B,GACzD,IACIok/B,EAAen3gC,OAAS,IACxBk2gC,EAAWc,EAAS/uC,gBAAkBkvC,EAAe,GAAGH,EAAS/uC,gBAEzE,MAEIiuC,EAAWc,EAASl9B,qBAAuB,KAC3C86B,EAAWh/lB,eAAiBg/lB,EAAWh/lB,eAAe5/Z,OAAOkhgC,GAEjEtC,EAAW7+lB,eAAe/sa,KAAK9M,EAAM6oC,OAAOu87B,UAAUmR,gBAAgByjC,GAAY,IAClFh6gC,EAAM6oC,OAAO+27B,cAAcw8B,oBAAqB,EAChD,MACJ,IAAK,eACDsc,EAAWh/lB,eAAiBg/lB,EAAWh/lB,eAAe5/Z,OAAOkhgC,EAAclhgC,OAAO2k+B,IAClFm7B,GAAmB,EAG/B,EACSjjgC,EAAI,EAAG2U,EAAQuv/B,EAAWhhmB,eAAe/1a,OAAQ6S,EAAI2U,EAAO3U,IACjEmle,EAAQnle,GAEZ,IAAI+mH,EAAU19H,EAAM6oC,OAAO4v8B,WAAW3jkB,YAAYvnF,YAAYmrrB,EAAYoC,EAASjk/B,GAAI72B,EAAM8mnB,WAAY9mnB,EAAMyib,YAC/Gzib,EAAM6oC,OAAOu87B,UAAUwC,qBAAqBizC,EAAWhhmB,gBACvD,IAAIo/lB,EAAW,CACX5gmB,YAAwB,eAAXziW,EAA0B,eAAiB,eACxD4L,QAAQ,EAAO52C,KAAMgv+B,EAAmBiB,EAAWnhmB,eAAiBmhmB,EAAWhhmB,eAC/En8S,QAASA,EAASg74B,WAAYA,GAElC14gC,EAAM4k3B,YAAYq0J,EACtB,CACJ,GACJ,EACAT,EAAKnngC,UAAUyx9B,cAAgB,SAAUl5oB,GAGrC,IAFA,IAAI5pV,EAAQU,KACRw6gC,EAAa,GACRlrgC,EAAK,EAAGmrgC,EAAcvxrB,EAAW55U,EAAKmrgC,EAAYr3gC,OAAQkM,IAAM,CACrE,IAAImn+B,EAAWgkC,EAAYnrgC,GACvBmn+B,EAASz2+B,KAAKmoC,OAAOw+7B,YAAY0E,gBACjCmvC,EAAWpugC,KAAK,CAAE4p+B,WAAYS,EAAUtu8B,OAAQnoC,KAAK69+B,eAAepH,KAGpE+jC,EAAWpugC,KAAKqq+B,EAExB,CACA,IAAIx99B,EAAO,CACP0+Z,YAAa,cAAe72V,QAAQ,EACpCm4V,aAAc,GAAIE,eAAgB,GAAIH,eAAgB9vF,GAE1DjwU,EAAKixB,KAAOsw+B,EACZx6gC,KAAKmoC,OAAOm4P,QAAQllK,IAAoBniH,GAAM,SAAU+//B,GACpD,IAAKA,EAAWl47B,OAAQ,CA6BpB,IA5BA,IAAI457B,EAAWp7gC,EAAM6oC,OAAOw+7B,YACxBqxC,EAAa,CAAE/+lB,aAAc,GAAIE,eAAgB,GAAIH,eAAgB,IACrEwtE,EAAU,SAAUvwe,EAAG2U,GACvB,IAAI2xsB,EAAWxwZ,GAAkBitsB,EAAWhgmB,eAAezsZ,SAAStW,EAAEa,WAAY,KAAKxX,EAAM6oC,OAAOw+7B,YAAY0E,iBAChH,IAAK9uQ,EAAU,CACX,IAAIo+S,EAAgBH,EAAWju/B,SAAStW,EAAEa,WAAY,KAAKqxB,OACvDyy+B,EAAW5C,EAAW7+lB,eAAe/ya,QAAO,SAAUyK,GACtD,OAAOA,EAAI6pgC,EAASvk/B,MAAQwk/B,EAAcD,EAASvk/B,GACvD,IACI0k/B,EAAa7B,EAAWhgmB,eAAezsZ,SAAStW,EAAEa,WAAY,KAAK4jgC,EAAS3j2B,WAChF,GAAI6j2B,EAASx3gC,OAAS,EAAG,CACrB,IAAI4otB,EAAa4uT,EAAS,GAC1B5uT,EAAW0uT,EAASx9B,qBAChB59+B,EAAMm6gC,iBAAiBoB,EAAY7uT,EAAW0uT,EAASx9B,qBAC/D,MAEIy9B,EAAcD,EAASx9B,qBACnB59+B,EAAMm6gC,iBAAiBoB,EAAYF,EAAcD,EAASx9B,sBAE1C,IAApB09B,EAASx3gC,QACT40gC,EAAW7+lB,eAAe/sa,KAAK9M,EAAM6oC,OAAOu87B,UAAUmR,gBAAgB8kC,GAAe,IAEzFp+S,EAAWy8S,EAAWhgmB,eAAezsZ,SAAStW,EAAEa,WAAY,KAAK4jgC,EAASvk/B,MAAQwk/B,EAAcD,EAASvk/B,GAC7G,CACIomsB,GACAy7S,EAAWh/lB,eAAe5sa,KAAK4sgC,EAAWhgmB,eAAezsZ,SAAStW,EAAEa,WAAY,KAExF,EACSb,EAAI,EAAG2U,EAAQou/B,EAAWhgmB,eAAe51a,OAAQ6S,EAAI2U,EAAO3U,IACjEuwe,EAAQvwe,GAEZ,IAAI+mH,EAAU19H,EAAM6oC,OAAO4v8B,WAAW3jkB,YAAYvnF,YAAYmrrB,EAAY0C,EAASvk/B,GAAI72B,EAAM8mnB,WAAY9mnB,EAAMyib,YAC3Gw2lB,EAAW,CACX5gmB,YAAa,eAAgB72V,QAAQ,EAAO52C,KAAM8u+B,EAAWhgmB,eAAgBh8S,QAASA,EAASg74B,WAAYA,GAE/G14gC,EAAM4k3B,YAAYq0J,EACtB,CACJ,GACJ,EACAT,EAAKnngC,UAAU8ngC,YAAc,SAAUvu+B,GAInC,IAHA,IAAI5qC,EAAQU,KACRkpV,EAAah/S,aAAgBx5B,MAASw5B,EAAO,CAACA,GAC9C+n2B,EAAW,GACN3i4B,EAAK,EAAGwrgC,EAAc5xrB,EAAW55U,EAAKwrgC,EAAY13gC,OAAQkM,IAAM,CACrE,IAAImn+B,EAAWqkC,EAAYxrgC,GACvBmn+B,EAASz2+B,KAAKmoC,OAAOw+7B,YAAY0E,gBACjCp5F,EAAS7l4B,KAAK,CAAE4p+B,WAAYS,EAAUtu8B,OAAQnoC,KAAK69+B,eAAepH,KAGlExkG,EAAS7l4B,KAAKqq+B,EAEtB,CACA,IAAIx99B,EAAO,CAAE0+Z,YAAa,cAAe72V,QAAQ,EAAOm4V,aAAc,GAAIE,eAAgBjwF,EAAW8vF,eAAgB,IACrH//Z,EAAKixB,KAAO+n2B,EACZjy4B,KAAKmoC,OAAOm4P,QAAQllK,IAAoBniH,GAAM,SAAU8hgC,GACpD,IAAKA,EAASj67B,OAAQ,CAGlB,IAFA,IAAIqyI,EAAS7zN,EAAM6oC,OAAOw+7B,YACtBqxC,EAAa,CAAE/+lB,aAAc,GAAIE,eAAgB,GAAIH,eAAgB,IAChE1pa,EAAK,EAAGgmC,EAAKyl+B,EAAS5hmB,eAAgB7pa,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CACjE,IAAI6na,EAAS7hY,EAAGhmC,GAChB,IAAKy8T,GAAkBorG,EAAOhkN,EAAOk4wB,kBAAoBt/pB,GAAkBorG,EAAOhkN,EAAO+pxB,sBAAuB,CAC5G,IAAI89B,EAAkB3lC,IAA4Bl+jB,EAAOhkN,EAAOp8C,YAC5DupO,EAAYhhZ,EAAMu++B,eAAe1mkB,GACrC72B,EAAUntL,EAAO+pxB,qBAAuBnxqB,GAAkBu0E,EAAUntL,EAAO+pxB,sBACvE89B,EAAkB16nB,EAAUntL,EAAO+pxB,qBAAqB9j+B,OAAO,IAAM4hgC,GACzE7jmB,EAAOhkN,EAAOh9L,IAAM72B,EAAM6oC,OAAO008B,gBACjC1lkB,EAAOhkN,EAAO+pxB,qBAAuB89B,EACrChD,EAAW/+lB,aAAa7sa,KAAK9M,EAAM6oC,OAAOu87B,UAAUmR,gBAAgB1+jB,GAAQ,IAC5E6gmB,EAAW7+lB,eAAe/sa,KAAK9M,EAAM6oC,OAAOu87B,UAAUmR,gBAAgBv1lB,GAAW,GACrF,MAEI03nB,EAAW7+lB,eAAe/sa,KAAK9M,EAAM6oC,OAAOu87B,UAAUmR,gBAAgB1+jB,GAAQ,GAEtF,CACA,IAAIn6S,EAAU19H,EAAM6oC,OAAO4v8B,WAAW3jkB,YAAYvnF,YAAYmrrB,EAAY7kzB,EAAOh9L,GAAI72B,EAAM8mnB,WAAY9mnB,EAAMyib,YACzGw2lB,EAAW,CAAE5gmB,YAAa,eAAgB72V,QAAQ,EAAO52C,KAAM6w+B,EAAS5hmB,eAAgBn8S,QAASA,EAASg74B,WAAYA,GAC1H14gC,EAAM4k3B,YAAYq0J,EACtB,CACJ,GACJ,EACAT,EAAKnngC,UAAUkt+B,eAAiB,SAAU9m9B,EAAO+m9B,QAC5B,IAAbA,IAAuBA,GAAW,GACtC,IAAIC,EAAc/9+B,KAAKmoC,OAAOu87B,UAAUmZ,eAAe9m9B,EAAO+m9B,IAAa/m9B,EAI3E,OAHIgn9B,EAAY/9+B,KAAKmoC,OAAOw+7B,YAAYuQ,gBAAkB6G,EAAY/9+B,KAAKmoC,OAAOw+7B,YAAYwQ,eAC1Fn3+B,KAAKmoC,OAAOu87B,UAAUuS,gBAAgB8G,GAEnCA,CACX,EACA+5B,EAAKnngC,UAAU8ogC,iBAAmB,SAAUrgC,EAAgB6hC,GACxD,IAAI17B,EAASlK,IAA4B+D,GASzC,OARKrtqB,GAAkBkvsB,GAMnBA,EAAoB17B,GALuB,IAAvC07B,EAAkBtwgC,QAAQ40+B,KAC1B07B,EAAsBlvsB,GAAkBkvsB,GAAyD17B,EAAnC07B,EAAoB,IAAM17B,GAMzF07B,CACX,EACAnD,EAAKnngC,UAAUopgC,sBAAwB,SAAUh8B,EAAam9B,GAC1D,IAEIrrnB,EAFA18L,EAASnzN,KAAKmoC,OAAOw+7B,YACrB0E,EAAiB0S,EAAY5qxB,EAAOk4wB,gBAExC,GAAI6vC,aAAuBz5gC,KACvBouZ,EAAU,IAAIpuZ,MAAMy5gC,OAEnB,CACDrrnB,EAAU,IAAIpuZ,MAAMy5gC,EAAY/nzB,EAAOp8C,YACvC,IAAIok2B,EAAoBD,EAAY/nzB,EAAOk4wB,gBAC3C,GAAI8vC,EAAmB,CACnB,IAAIvrnB,EAAYmulB,EAAY5qxB,EAAOp8C,WAE/Bw5zB,EAAiB/y2B,IAASoyR,EAAWurnB,EADU,0BAA9Bn7gC,KAAKmoC,OAAOk2hB,cAA6C68c,EAAY/nzB,EAAO+pxB,qBAAuB,KAC7Cl9+B,KAAKmoC,OAAOuz7B,kBAAkBzv9B,gBACrGi8/B,EAAY,IAAIzmgC,KAAK8u+B,EAAe3/9B,OAAO,GAAG,IAClDs3/B,EAAUzlgC,SAASotZ,EAAQ1sY,WAAY0sY,EAAQzsY,aAAcysY,EAAQxsY,cACrEwsY,EAAQptZ,SAASmtZ,EAAUzsY,WAAYysY,EAAUxsY,aAAcwsY,EAAUvsY,cACzE63/B,EAAY/nzB,EAAOk4wB,gBAAkBrr+B,KAAKo7gC,yBAAyBD,EAAmB,IAAI15gC,MAAMymgC,IAAY,EAChH,CACJ,CACAnqB,EAAY5qxB,EAAOk4wB,gBAAkBrr+B,KAAKo7gC,yBAAyB/vC,EAAgBhP,IAAa,IAAI569B,KAAKouZ,EAAQnuZ,YAAa,IAAI,EACtI,EACAo2gC,EAAKnngC,UAAUyqgC,yBAA2B,SAAU/vC,EAAgB68B,EAAWpqB,GAG3E,IAFA,IACIu9B,EAAc,GACT/rgC,EAAK,EAAGgsgC,EAFDjwC,EAAe148B,MAAM,KAEKrjB,EAAKgsgC,EAAYl4gC,OAAQkM,IAAM,CACrE,IAAI4qH,EAAOoh5B,EAAYhsgC,GACvB,GAAa,KAAT4qH,EAAa,CACb,IAAIqh5B,EAAUrh5B,EAAKvnG,MAAM,KAAK,GAC1Bm41B,EAAY5wvB,EAAKvnG,MAAM,KAAK,GAChB,UAAZ4o/B,GAAmC,UAAZA,IACvBzwJ,EAAYuqH,IAA4B6yB,GACxChu4B,EAAOA,EAAK7pH,QAAQ6pH,EAAM,SAAW4wvB,IAEzCuwJ,GAAenh5B,EAAO,GAC1B,CACJ,CAIA,OAHI4j3B,IAA8C,IAAlCu9B,EAAY1wgC,QAAQ,WAChC0wgC,GAAe,SAAWhmC,IAA4B6yB,IAEnDmT,CACX,EACAvD,EAAKnngC,UAAU0ngC,aAAe,SAAUnvrB,GAGpC,IAFA,IACItnV,GAAQ,EACH0N,EAAK,EAAGwn+B,EAFM5tpB,aAAqBx4U,MAASw4U,EAAY,CAACA,GAEZ55U,EAAKwn+B,EAAkB1z+B,OAAQkM,IAAM,CAEvF1N,EADck1+B,EAAkBxn+B,GAChBtP,KAAKmoC,OAAOw+7B,YAAY0P,WAAY,CACxD,CACA,OAAOz0+B,CACX,EAOAk2gC,EAAKnngC,UAAUymI,QAAU,WACrBp3I,KAAK+1+B,QAAU,KACf/1+B,KAAKmoC,OAAS,IAClB,EACO2v+B,CACX,CA3sB0B,GCFtB0D,IAAqC,WACrC,SAASA,EAAoBrz+B,GACzBnoC,KAAKmoC,OAASA,EACd0wM,GAAazlN,IAAIpzB,KAAKmoC,OAAOhzB,QAAS,YAAanV,KAAKy7gC,QAASz7gC,KACrE,CA4HA,OA3HAw7gC,EAAoB7qgC,UAAU888B,cAAgB,SAAUpt9B,GAChDL,KAAKwj+B,gBAAgBnj+B,IAGzBL,KAAKmoC,OAAOkxK,OAAOtiL,IAAqB,CAAEA,MAAO12B,GACrD,EACAm7gC,EAAoB7qgC,UAAUm88B,UAAY,SAAUzs9B,GAChD,IAAIf,EAAQU,KACZ,IAAIA,KAAKwj+B,gBAAgBnj+B,GAAzB,CAGA,IAAI4ya,EAAW,IAAMpD,IAAuB,KAAOA,IAAyB,KAAOA,IAC/Exna,EAASotF,GAAQp1F,EAAEgI,OAAQ4qa,GAC/B,IAAIlnG,GAAkB1jU,GAGtB,GAAK0jU,GAAkBt2O,GAAQp1F,EAAEgI,OAAQ,IAAMwna,MAA/C,CAIA,IAAI6rmB,EAAcjm7B,GAAQp1F,EAAEgI,OAAQ,IAAMwna,KACtC8rmB,EAAe37gC,KAAKmoC,OAAO877B,kBAC3B23C,EAAW57gC,KAAKmoC,OAAOw/W,cAAgBg0nB,EAC3C,GAAI5vsB,GAAkB2vsB,IAAgBE,GAClC7vsB,GAAkB/rU,KAAKmoC,OAAO0z+B,YAAYF,EAAax38B,OAAO,GAAGzjD,cAAgBi7/B,EAAa/qgC,MAAM,KAAM,CAC1G,GAAI5Q,KAAKmoC,OAAOuz7B,kBAAkBn9kB,UAAwC,gBAA5Bv+Y,KAAKmoC,OAAOw/W,YAItD,YAHI3nZ,KAAKmoC,OAAO637B,YACZhg+B,KAAKmoC,OAAO637B,WAAWyc,kBAI/B,GAAIz8+B,KAAKmoC,OAAOumrB,aAAerutB,EAAEgI,OAAO6/Q,UAAUh1P,SAAS28Y,MACvDp6U,GAAQp1F,EAAEgI,OAAQ,IAAMwna,MACxB,OAEJ,IAAIismB,EAAezzgC,EAAO6/Q,UAAUh1P,SAAS28Y,MACzCxna,EAAO6/Q,UAAUh1P,SAAS28Y,KAC9B,GAAIismB,GAAgBz7gC,EAAEw3B,UAAwB,IAAZx3B,EAAEg4B,OAAer4B,KAAKmoC,OAAO+y8B,0BAE3D,YADAl7+B,KAAKmoC,OAAO+y8B,0BAA0BlY,iBAAiB3i+B,GAG3DL,KAAKmoC,OAAOu17B,gBAAkB199B,KAAKmoC,OAAOg87B,eAAe979B,GACzD,IAAI4Q,EAAOwwE,GAAOzpF,KAAKmoC,OAAOu17B,gBAAiB,CAAE584B,QAAQ,EAAO/pD,MAAO12B,EAAGqE,KAAM,cAChF1E,KAAKmoC,OAAOm4P,QAAQvpQ,IAAiB9d,GAAM,SAAUswnB,GACjD,GAAKA,EAAUzojB,OAgBPxhF,EAAM6oC,OAAO637B,YACb1g+B,EAAM6oC,OAAO637B,WAAWyc,sBAb5B,GAHIq/B,GACAx8gC,EAAM6oC,OAAOg2mB,WAAW91oB,GAExB/I,EAAM6oC,OAAOo67B,YAAa,CAC1B,IAAII,EAAa,CACbxt9B,QAASo0nB,EAAUp0nB,QACnBgrzB,WAAY52L,EAAU42L,WAAYvzzB,KAAM,QAE5CtN,EAAM6oC,OAAOkxK,OAAOtiL,IAAmB4r8B,EAC3C,MAEIrj+B,EAAM6oC,OAAOkxK,OAAOtiL,IAAiBwymB,EAQjD,GACJ,KACK,CACD,IAAIrpoB,EAAOF,KAAKmoC,OAAO677B,mBAAmB379B,GACrC0jU,GAAkB7rU,IAAUF,KAAKmoC,OAAOumrB,aAAc1utB,KAAKmoC,OAAOsv9B,aAAav3/B,KAChFF,KAAKmoC,OAAO8jT,cAAc,CAAEi8D,aAAchoZ,IAAQ,GAClDF,KAAKmoC,OAAOk17B,WAAWr99B,KAAKmoC,OAAO877B,kBAAmB5j+B,GAE9D,CArDA,MAFIL,KAAKmoC,OAAO617B,YAAYC,WAAWj+9B,KAAKmoC,OAAOu17B,gBAAiB,MAPpE,CA+DJ,EACA89C,EAAoB7qgC,UAAUorgC,aAAe,SAAU17gC,GACnD,IAAIf,EAAQU,KACRiza,EAAW,IAAMpD,IAAuB,KAAOA,IAAyB,KAAOA,IAC/Exna,EAASotF,GAAQp1F,EAAEgI,OAAQ4qa,GAC/B,KAAIjza,KAAKmoC,OAAOuz7B,kBAAkBn9kB,UAAYv+Y,KAAKwj+B,gBAAgBnj+B,IAAM0rU,GAAkB1jU,IAA3F,CAGA,IAAI4Q,EAAOwwE,GAAOzpF,KAAKmoC,OAAOu17B,gBAAiB,CAAE584B,QAAQ,EAAO/pD,MAAO12B,EAAGqE,KAAM,oBAChF1E,KAAKmoC,OAAOm4P,Q5BxFS,kB4BwFsBrnR,GAAM,SAAUswnB,GACvD,IAAIrpoB,EAAO,IAAIuB,KAAK8noB,EAAUxyd,UAAUr1K,WACnCpC,EAAM6oC,OAAOsv9B,aAAa,IAAIh2/B,KAAKvB,EAAKuC,SAAS,EAAG,EAAG,EAAG,OAG1D8moB,EAAUzojB,QACXxhF,EAAM6oC,OAAO617B,YAAYC,WAAW3+9B,EAAM6oC,OAAOu17B,gBAAiB,OAE1E,GAVA,CAWJ,EACA89C,EAAoB7qgC,UAAU8qgC,QAAU,SAAUp7gC,GAC9C,IAAI4tgC,EAAiB,IAAMp+lB,IAAuB,KAAOA,IAAsB,KAAOA,IAAyB,KAC3GA,IAAyB,KAAOA,IAA2B,KAAOA,IAAwB,KAAOA,IADhF,mBAGjBmsmB,EAAcvm7B,GAAQp1F,EAAEgI,OAAQ4lgC,GACpC,GAAI+N,EAAa,CACb,IAAIC,EAAY,CAAE9mgC,QAAS6mgC,EAAajl/B,MAAO12B,GAC/CL,KAAKmoC,OAAOm4P,Q5BnGL,Q4BmG0B27uB,EACrC,CACJ,EACAT,EAAoB7qgC,UAAU6y9B,gBAAkB,SAAUnj+B,GACtD,GAAIo1F,GAAQp1F,EAAEgI,OAAQ,IAAMwna,KACxB,OAAO,EAEX,GAAIp6U,GAAQp1F,EAAEgI,OAAQ,IAAMwna,OACvBp6U,GAAQp1F,EAAEgI,OAAQ,IAAMwna,KACzB,OAAO,EAEX,IAAIxna,EAASotF,GAAQp1F,EAAEgI,OAAQ,IAAMwna,IAAwB,KAAOA,KACpE,OAAK9jG,GAAkB1jU,KAGvBA,EAASotF,GAAQp1F,EAAEgI,OAAQ,IAAMwna,QAC7B7va,KAAKmoC,OAAOyz7B,WAAWgJ,kBAAqB74pB,GAAkB1jU,IAItE,EACAmzgC,EAAoB7qgC,UAAUymI,QAAU,WACpCyhG,GAAa1lN,OAAOnzB,KAAKmoC,OAAOhzB,QAAS,YAAanV,KAAKy7gC,QAC/D,EACOD,CACX,CAjIyC,GCPrCt19B,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAazC2pS,IAA0C,SAAUxoJ,EAAYl/L,EAAQiE,EAAKkkB,GAC7E,IAA2HhvB,EAAvH6e,EAAIld,UAAUC,OAAQkgH,EAAIjjG,EAAI,EAAIhY,EAAkB,OAATmoB,EAAgBA,EAAO/wB,OAAOk+B,yBAAyBt1B,EAAQiE,GAAOkkB,EACrH,GAAuB,kBAAZuN,SAAoD,oBAArBA,QAAQiyT,SAAyB1sO,EAAIvlF,QAAQiyT,SAASzoJ,EAAYl/L,EAAQiE,EAAKkkB,QACpH,IAAK,IAAIrkB,EAAIo7L,EAAWnkM,OAAS,EAAG+I,GAAK,EAAGA,KAAS3K,EAAI+lM,EAAWp7L,MAAIm3G,GAAKjjG,EAAI,EAAI7e,EAAE8hH,GAAKjjG,EAAI,EAAI7e,EAAE6G,EAAQiE,EAAKg3G,GAAK9hH,EAAE6G,EAAQiE,KAASg3G,GAChJ,OAAOjjG,EAAI,GAAKijG,GAAK7jH,OAAO4c,eAAehU,EAAQiE,EAAKg3G,GAAIA,CAChE,EAMI445B,IAA8B,SAAUp19B,GAExC,SAASo19B,IACL,OAAkB,OAAXp19B,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAaA,OAhBAkmD,IAAUg29B,EAAcp19B,GAIxBipS,IAAW,CACPjB,MACDotrB,EAAavrgC,UAAW,YAAQ,GACnCo/U,IAAW,CACPjB,MACDotrB,EAAavrgC,UAAW,eAAW,GACtCo/U,IAAW,CACPjB,MACDotrB,EAAavrgC,UAAW,aAAS,GACpCo/U,IAAW,CACPjB,GAAS,CAAC,IACXotrB,EAAavrgC,UAAW,kBAAc,GAClCurgC,CACX,CAlBkC,CAkBhC/nrB,IC1CEjuS,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAazC2pS,IAA0C,SAAUxoJ,EAAYl/L,EAAQiE,EAAKkkB,GAC7E,IAA2HhvB,EAAvH6e,EAAIld,UAAUC,OAAQkgH,EAAIjjG,EAAI,EAAIhY,EAAkB,OAATmoB,EAAgBA,EAAO/wB,OAAOk+B,yBAAyBt1B,EAAQiE,GAAOkkB,EACrH,GAAuB,kBAAZuN,SAAoD,oBAArBA,QAAQiyT,SAAyB1sO,EAAIvlF,QAAQiyT,SAASzoJ,EAAYl/L,EAAQiE,EAAKkkB,QACpH,IAAK,IAAIrkB,EAAIo7L,EAAWnkM,OAAS,EAAG+I,GAAK,EAAGA,KAAS3K,EAAI+lM,EAAWp7L,MAAIm3G,GAAKjjG,EAAI,EAAI7e,EAAE8hH,GAAKjjG,EAAI,EAAI7e,EAAE6G,EAAQiE,EAAKg3G,GAAK9hH,EAAE6G,EAAQiE,KAASg3G,GAChJ,OAAOjjG,EAAI,GAAKijG,GAAK7jH,OAAO4c,eAAehU,EAAQiE,EAAKg3G,GAAIA,CAChE,EAUIwiuB,IAAuB,SAAUh/xB,GAEjC,SAASg/xB,IACL,OAAkB,OAAXh/xB,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CA8CA,OAjDAkmD,IAAU4/xB,EAAOh/xB,GAIjBipS,IAAW,CACPjB,GAAS,OACVg3f,EAAMn10B,UAAW,UAAM,GAC1Bo/U,IAAW,CACPjB,GAAS,YACVg3f,EAAMn10B,UAAW,eAAW,GAC/Bo/U,IAAW,CACPd,GAAQ,CAAEvqV,KAAM,WAAaw3gC,MAC9Bp2L,EAAMn10B,UAAW,eAAW,GAC/Bo/U,IAAW,CACPd,GAAQ,CAAEvqV,KAAM,aAAew3gC,MAChCp2L,EAAMn10B,UAAW,iBAAa,GACjCo/U,IAAW,CACPd,GAAQ,CAAEvqV,KAAM,WAAaw3gC,MAC9Bp2L,EAAMn10B,UAAW,eAAW,GAC/Bo/U,IAAW,CACPd,GAAQ,CAAEvqV,KAAM,iBAAmBw3gC,MACpCp2L,EAAMn10B,UAAW,qBAAiB,GACrCo/U,IAAW,CACPd,GAAQ,CAAEvqV,KAAM,eAAiBw3gC,MAClCp2L,EAAMn10B,UAAW,mBAAe,GACnCo/U,IAAW,CACPd,GAAQ,CAAEvqV,KAAM,YAAcw3gC,MAC/Bp2L,EAAMn10B,UAAW,gBAAY,GAChCo/U,IAAW,CACPd,GAAQ,CAAEvqV,KAAM,eAAiBw3gC,MAClCp2L,EAAMn10B,UAAW,mBAAe,GACnCo/U,IAAW,CACPd,GAAQ,CAAEvqV,KAAM,YAAcw3gC,MAC/Bp2L,EAAMn10B,UAAW,gBAAY,GAChCo/U,IAAW,CACPd,GAAQ,CAAEvqV,KAAM,gBAAkBw3gC,MACnCp2L,EAAMn10B,UAAW,oBAAgB,GACpCo/U,IAAW,CACPd,GAAQ,CAAEvqV,KAAM,kBAAoBw3gC,MACrCp2L,EAAMn10B,UAAW,sBAAkB,GACtCo/U,IAAW,CACPd,GAAQ,CAAEvqV,KAAM,uBAAyBw3gC,MAC1Cp2L,EAAMn10B,UAAW,2BAAuB,GAC3Co/U,IAAW,CACPjB,GAAS,eACVg3f,EAAMn10B,UAAW,kBAAc,GAClCo/U,IAAW,CACPjB,GAAS,gBACVg3f,EAAMn10B,UAAW,mBAAe,GAC5Bm10B,CACX,CAnD2B,CAmDzB3xf,IC/EEjuS,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAazC2pS,IAA0C,SAAUxoJ,EAAYl/L,EAAQiE,EAAKkkB,GAC7E,IAA2HhvB,EAAvH6e,EAAIld,UAAUC,OAAQkgH,EAAIjjG,EAAI,EAAIhY,EAAkB,OAATmoB,EAAgBA,EAAO/wB,OAAOk+B,yBAAyBt1B,EAAQiE,GAAOkkB,EACrH,GAAuB,kBAAZuN,SAAoD,oBAArBA,QAAQiyT,SAAyB1sO,EAAIvlF,QAAQiyT,SAASzoJ,EAAYl/L,EAAQiE,EAAKkkB,QACpH,IAAK,IAAIrkB,EAAIo7L,EAAWnkM,OAAS,EAAG+I,GAAK,EAAGA,KAAS3K,EAAI+lM,EAAWp7L,MAAIm3G,GAAKjjG,EAAI,EAAI7e,EAAE8hH,GAAKjjG,EAAI,EAAI7e,EAAE6G,EAAQiE,EAAKg3G,GAAK9hH,EAAE6G,EAAQiE,KAASg3G,GAChJ,OAAOjjG,EAAI,GAAKijG,GAAK7jH,OAAO4c,eAAehU,EAAQiE,EAAKg3G,GAAIA,CAChE,EAOI645B,IAA+B,SAAUr19B,GAEzC,SAASq19B,IACL,OAAkB,OAAXr19B,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAuDA,OA1DAkmD,IAAUi29B,EAAer19B,GAIzBipS,IAAW,CACPjB,MACDqtrB,EAAcxrgC,UAAW,gBAAY,GACxCo/U,IAAW,CACPjB,GAAS,KACVqtrB,EAAcxrgC,UAAW,kBAAc,GAC1Co/U,IAAW,CACPjB,MACDqtrB,EAAcxrgC,UAAW,aAAS,GACrCo/U,IAAW,CACPd,GAAQ,CAAC,EAAG62f,MACbq2L,EAAcxrgC,UAAW,cAAU,GACtCo/U,IAAW,CACPjB,IAAS,IACVqtrB,EAAcxrgC,UAAW,qBAAiB,GAC7Co/U,IAAW,CACPjB,GAAS,cACVqtrB,EAAcxrgC,UAAW,6BAAyB,GACrDo/U,IAAW,CACPjB,GAAS,IACVqtrB,EAAcxrgC,UAAW,4BAAwB,GACpDo/U,IAAW,CACPjB,MACDqtrB,EAAcxrgC,UAAW,uBAAmB,GAC/Co/U,IAAW,CACPjB,MACDqtrB,EAAcxrgC,UAAW,0BAAsB,GAClDo/U,IAAW,CACPjB,IAAS,IACVqtrB,EAAcxrgC,UAAW,2BAAuB,GACnDo/U,IAAW,CACPjB,IAAS,IACVqtrB,EAAcxrgC,UAAW,mBAAe,GAC3Co/U,IAAW,CACPjB,IAAS,IACVqtrB,EAAcxrgC,UAAW,oBAAgB,GAC5Co/U,IAAW,CACPjB,IAAS,IACVqtrB,EAAcxrgC,UAAW,qBAAiB,GAC7Co/U,IAAW,CACPjB,IAAS,IACVqtrB,EAAcxrgC,UAAW,uBAAmB,GAC/Co/U,IAAW,CACPjB,IAAS,IACVqtrB,EAAcxrgC,UAAW,uBAAmB,GAC/Co/U,IAAW,CACPjB,IAAS,IACVqtrB,EAAcxrgC,UAAW,wBAAoB,GAChDo/U,IAAW,CACPjB,MACDqtrB,EAAcxrgC,UAAW,oBAAgB,GAC5Co/U,IAAW,CACPjB,MACDqtrB,EAAcxrgC,UAAW,6BAAyB,GAC9CwrgC,CACX,CA5DmC,CA4DjChorB,ICrFEjuS,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAazC2pS,IAA0C,SAAUxoJ,EAAYl/L,EAAQiE,EAAKkkB,GAC7E,IAA2HhvB,EAAvH6e,EAAIld,UAAUC,OAAQkgH,EAAIjjG,EAAI,EAAIhY,EAAkB,OAATmoB,EAAgBA,EAAO/wB,OAAOk+B,yBAAyBt1B,EAAQiE,GAAOkkB,EACrH,GAAuB,kBAAZuN,SAAoD,oBAArBA,QAAQiyT,SAAyB1sO,EAAIvlF,QAAQiyT,SAASzoJ,EAAYl/L,EAAQiE,EAAKkkB,QACpH,IAAK,IAAIrkB,EAAIo7L,EAAWnkM,OAAS,EAAG+I,GAAK,EAAGA,KAAS3K,EAAI+lM,EAAWp7L,MAAIm3G,GAAKjjG,EAAI,EAAI7e,EAAE8hH,GAAKjjG,EAAI,EAAI7e,EAAE6G,EAAQiE,EAAKg3G,GAAK9hH,EAAE6G,EAAQiE,KAASg3G,GAChJ,OAAOjjG,EAAI,GAAKijG,GAAK7jH,OAAO4c,eAAehU,EAAQiE,EAAKg3G,GAAIA,CAChE,EAKIq7L,IAAuB,SAAU73P,GAEjC,SAAS63P,IACL,OAAkB,OAAX73P,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAsBA,OAzBAkmD,IAAUy4P,EAAO73P,GAIjBipS,IAAW,CACPjB,IAAS,IACVnwC,EAAMhuS,UAAW,cAAU,GAC9Bo/U,IAAW,CACPjB,IAAS,IACVnwC,EAAMhuS,UAAW,iBAAa,GACjCo/U,IAAW,CACPjB,IAAS,IACVnwC,EAAMhuS,UAAW,sBAAkB,GACtCo/U,IAAW,CACPjB,GAAS,KACVnwC,EAAMhuS,UAAW,iBAAa,GACjCo/U,IAAW,CACPjB,IAAS,IACVnwC,EAAMhuS,UAAW,yBAAqB,GACzCo/U,IAAW,CACPjB,MACDnwC,EAAMhuS,UAAW,6BAAyB,GAC7Co/U,IAAW,CACPjB,IAAS,IACVnwC,EAAMhuS,UAAW,0BAAsB,GACnCguS,CACX,CA3B2B,CA2BzBw1C,IClDEjuS,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAazC2pS,IAA0C,SAAUxoJ,EAAYl/L,EAAQiE,EAAKkkB,GAC7E,IAA2HhvB,EAAvH6e,EAAIld,UAAUC,OAAQkgH,EAAIjjG,EAAI,EAAIhY,EAAkB,OAATmoB,EAAgBA,EAAO/wB,OAAOk+B,yBAAyBt1B,EAAQiE,GAAOkkB,EACrH,GAAuB,kBAAZuN,SAAoD,oBAArBA,QAAQiyT,SAAyB1sO,EAAIvlF,QAAQiyT,SAASzoJ,EAAYl/L,EAAQiE,EAAKkkB,QACpH,IAAK,IAAIrkB,EAAIo7L,EAAWnkM,OAAS,EAAG+I,GAAK,EAAGA,KAAS3K,EAAI+lM,EAAWp7L,MAAIm3G,GAAKjjG,EAAI,EAAI7e,EAAE8hH,GAAKjjG,EAAI,EAAI7e,EAAE6G,EAAQiE,EAAKg3G,GAAK9hH,EAAE6G,EAAQiE,KAASg3G,GAChJ,OAAOjjG,EAAI,GAAKijG,GAAK7jH,OAAO4c,eAAehU,EAAQiE,EAAKg3G,GAAIA,CAChE,EAMIspZ,IAA2B,SAAU9ld,GAErC,SAAS8ld,IACL,OAAkB,OAAX9ld,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CA8CA,OAjDAkmD,IAAU0md,EAAW9ld,GAIrBipS,IAAW,CACPjB,MACD89K,EAAUj8f,UAAW,aAAS,GACjCo/U,IAAW,CACPjB,MACD89K,EAAUj8f,UAAW,aAAS,GACjCo/U,IAAW,CACPjB,MACD89K,EAAUj8f,UAAW,YAAQ,GAChCo/U,IAAW,CACPjB,IAAS,IACV89K,EAAUj8f,UAAW,qBAAiB,GACzCo/U,IAAW,CACPjB,GAAS,KACV89K,EAAUj8f,UAAW,kBAAc,GACtCo/U,IAAW,CACPjB,MACD89K,EAAUj8f,UAAW,aAAS,GACjCo/U,IAAW,CACPjB,GAAS,OACV89K,EAAUj8f,UAAW,eAAW,GACnCo/U,IAAW,CACPjB,GAAS,SACV89K,EAAUj8f,UAAW,iBAAa,GACrCo/U,IAAW,CACPjB,GAAS,aACV89K,EAAUj8f,UAAW,qBAAiB,GACzCo/U,IAAW,CACPjB,GAAS,YACV89K,EAAUj8f,UAAW,oBAAgB,GACxCo/U,IAAW,CACPjB,GAAS,UACV89K,EAAUj8f,UAAW,kBAAc,GACtCo/U,IAAW,CACPjB,GAAS,cACV89K,EAAUj8f,UAAW,sBAAkB,GAC1Co/U,IAAW,CACPjB,GAAS,YACV89K,EAAUj8f,UAAW,oBAAgB,GACxCo/U,IAAW,CACPjB,GAAS,aACV89K,EAAUj8f,UAAW,qBAAiB,GACzCo/U,IAAW,CACPjB,GAAS,aACV89K,EAAUj8f,UAAW,qBAAiB,GAClCi8f,CACX,CAnD+B,CAmD7Bz4K,ICjEEiorB,IAA8B,WAC9B,SAASA,EAAaj0+B,GAClBnoC,KAAKov9B,mBAAqB,GAC1Bpv9B,KAAKq8gC,UAAY,GACjBr8gC,KAAKum/B,iBAAmB,GACxBvm/B,KAAKmoC,OAASA,CAClB,CAikCA,OAhkCAi0+B,EAAazrgC,UAAU2rgC,2BAA6B,SAAU7ia,GAC1D,IAAI8ia,EAAWz7gC,GAAc,KAAM,CAAEC,UhC4DT,uBgC3DxBy7gC,EAAY17gC,GAAc,MAAO,CAAEC,UAAW8ua,MAClD,GAAI7va,KAAKmoC,OAAOuz7B,kBAAkB+gD,qBAAsB,CACpD,IAAIvy+B,EAAO,CAAEnpC,UAAW,CAACw7gC,EAASx7gC,WAAY6L,KAAM,cACpD5M,KAAKmoC,OAAOu0+B,2BAA2Bxy+B,EAAMqy+B,EACjD,MAEIA,EAAS7q/B,YAAY8q/B,GAEzB,IAAIvjgC,EAAO,CAAEkyH,YAAa,aAAch2H,QAASongC,GACjDv8gC,KAAKmoC,OAAOm4P,QAAQllK,IAAmBniH,GACvCwgmB,EAAG/nlB,YAAY6q/B,EACnB,EACAH,EAAazrgC,UAAUgsgC,iBAAmB,SAAUC,GAChD,KAAI58gC,KAAKov9B,mBAAmBhs9B,QAAU,GAAKpD,KAAKmoC,OAAO2h8B,qBAIvD,IADA,IAAI+yC,EAAU78gC,KAAK6p+B,kBAAkBzm+B,OAC5B+I,EAAI,EAAGA,EAAI0wgC,EAAS1wgC,IAAK,CAC9B,IAAIi2a,EAAUpib,KAAK6p+B,kBAAkBt98B,SAASpgB,EAAE2K,WAAY,KAAKyg+B,aAC7Dr/4B,EAAMl4F,KAAK6p+B,kBAAkBt98B,SAASpgB,EAAE2K,WAAY,KAAKqzxB,SAC7D,GAAI/nX,EAAQ06lB,YAAcjtmB,MAA8BuS,EAAQlqV,EAAI6k7B,iBAC/DhxsB,GAAkBq2G,EAAQlqV,EAAI6k7B,gBAG/Bv0vB,GAFmB,GAAG53Q,MAAMjR,KAAKi9gC,EAAM92gC,UACH8K,MAAMzE,EAAI,EAAGA,GAAKogB,SAAS61Z,EAAQnB,MAAO,IAAM,IACzDpR,IAEnC,CACJ,EACAusmB,EAAazrgC,UAAUqsgC,qBAAuB,WAC1C,IAAIC,EAAUj9gC,KAAKov9B,mBACf8tD,EAASp8gC,GAAc,MAAO,CAAEC,UAAW8ua,MAC3CstmB,EAAMn9gC,KAAKmoC,OAAOyz7B,WAAWwhD,kBAAkBvtmB,MAC9C7va,KAAKmoC,OAAO+27B,cAActuX,iBAAmB5wmB,KAAKmoC,OAAOwi9B,eAAiB3q/B,KAAKmoC,OAAOyz7B,WAAWgJ,kBAC/F5k+B,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,GAC1DolR,GAAS,CAAC20vB,GAAMttmB,KAEpB,IAAI+smB,EAAQO,EAAIvj/B,cAAc,SAC1BwoZ,EAAUpib,KAAKq9gC,kBAAiB,GAGpC,GAFAr9gC,KAAKs9gC,iBAAiBL,EAAQrsgC,MAAM,GAAI,GAAIqsgC,EAAQrsgC,MAAM,GAAI,IAC9D5Q,KAAK0q+B,kBAAoB1q+B,KAAK6p+B,kBAC1B7p+B,KAAKmoC,OAAO2h8B,oBAAqB,CACjC,IAAImqC,EAAgBj0gC,KAAKmoC,OAAO2h8B,oBAAoB8pC,mBACpD5zgC,KAAKu9gC,uBACLn7lB,EAAUpib,KAAKiq+B,kBAAkBr59B,MAAM,EAAGqjgC,GAC1Cj0gC,KAAK0q+B,kBAAoBtojB,CAC7B,CAKA,OAJApvT,GAAOhzH,KAAK+1gC,eAAe3zlB,GAAUw6lB,GACrC58gC,KAAK28gC,iBAAiBC,GACtBO,EAAIzr/B,YAAYkr/B,GAChBM,EAAOxr/B,YAAYyr/B,GACZD,CACX,EACAd,EAAazrgC,UAAU6sgC,qBAAuB,WAC1C,IAAIP,EAAUj9gC,KAAKov9B,mBAERpv9B,KAAKq9gC,kBAAiB,GACjCr9gC,KAAKs9gC,iBAAiBL,EAAQrsgC,MAAM,GAAI,GAAIqsgC,EAAQrsgC,MAAM,GAAI,IAC9D5Q,KAAK0q+B,kBAAoB1q+B,KAAK6p+B,iBAClC,EACAuyC,EAAazrgC,UAAU4sgC,qBAAuB,WAE1C,IADA,IAAIjzf,EAAY,GACPn+gB,EAAI,EAAGA,EAAInM,KAAK6p+B,kBAAkBzm+B,OAAQ+I,IAAK,CACpD,IAAIg+xB,EAAWnqyB,KAAK6p+B,kBAAkBt98B,SAASpgB,EAAE2K,WAAY,KAAKyg+B,aAC9D3s9B,EAAQu/wB,EAASlpX,MACrBqpG,EAAUl+gB,KAAKpM,KAAK6p+B,kBAAkBt98B,SAASpgB,EAAE2K,WAAY,MAC7D,IAAI4p2B,EAAav2E,EAASnqyB,KAAK6p+B,kBAAkBt98B,SAASpgB,EAAE2K,WAAY,KAAKqzxB,SAAS4yO,gBACjFhxsB,GAAkB20iB,KAAgBA,GAAc911B,EAAQ,IACzDze,GAAQye,EAEhB,CACA5qB,KAAKiq+B,kBAAoB3/c,CAC7B,EACA8xf,EAAazrgC,UAAUolgC,eAAiB,SAAU3zlB,EAAS2lN,GAOvD,IANA,IACIpkgB,EACAqvgB,EAFAyqY,EAAU,GAGVR,EAAUj9gC,KAAKov9B,mBACf31W,EAAK34mB,GAAc,MACnB8kJ,EAAK9kJ,GAAc,KAAM,CAAE2oV,MAAO,CAAEgyK,SAAUssI,EAAkB,KAAO,OAClE57nB,EAAI,EAAGA,EAAIi2a,EAAQh/a,OAAQ+I,IAAK,CACrC,IAAIuxgC,EAAM933B,EAAGziH,YAWb,IAVA6vmB,EAASqpV,IAAqB4gD,EAAS,OAAQ76lB,EAAQ71Z,SAASpgB,EAAE2K,WAAY,KAAKqzxB,SAASzlyB,SAC7Eu4gC,EAAQ75gC,OAAS,GAC5BqmF,GAAO24V,EAAQ71Z,SAASpgB,EAAE2K,WAAY,KAAKyg+B,aAAc,CAAEulC,UAAWjtmB,MACtE7va,KAAK0q+B,kBAAkBn+8B,SAASpgB,EAAE2K,WAAY,KAAK/V,UAAY,CAAC8ua,OAGhEpmV,GAAO24V,EAAQ71Z,SAASpgB,EAAE2K,WAAY,KAAKyg+B,aAAc,CAAEulC,UAAWjtmB,MACtE7va,KAAK0q+B,kBAAkBn+8B,SAASpgB,EAAE2K,WAAY,KAAK/V,UAAY,CAAC8ua,MAEpElsS,EAAQqvgB,EAAShzoB,KAAKq8gC,UAAa,KAC/Bj6lB,EAAQ71Z,SAASpgB,EAAE2K,WAAY,KAAKyg+B,aAAaulC,YAAcjtmB,MAC3D9jG,GAAkBq2G,EAAQ71Z,SAASpgB,EAAE2K,WAAY,KAAKyg+B,aAAat2jB,QAAWmB,EAAQ71Z,SAASpgB,EAAE2K,WAAY,KAAKyg+B,aAAat2jB,MAAQ,EAAI,CAC/I,IAAIzgC,OAAY,EAGZA,EAFA4hC,EAAQ71Z,SAASpgB,EAAE2K,WAAY,KAAKyg+B,aAAa0lC,EAAQ1w/B,SAASymnB,EAAOl8nB,WAAY,KAAKimgC,gBAC1FhxsB,GAAkBq2G,EAAQ71Z,SAASpgB,EAAE2K,WAAY,KAAKyg+B,aAAa0lC,EAAQ1w/B,SAASymnB,EAAOl8nB,WAAY,KAAKimgC,gBAChGltmB,IAGAA,IAEhB,IAAI8tmB,EAAU78gC,GAAc,OAC5B0nR,GAAS,CAACm1vB,GAAU,CAAC9tmB,IAA8BrvB,IACnDxgZ,KAAK49gC,UAAUD,EAASh64B,GACxB+54B,EAAIhs/B,YAAYis/B,GACZ39gC,KAAKov9B,mBAAmBhs9B,OAAS,GACjCy1O,GAAazlN,IAAIuq/B,EAAS,QAAS39gC,KAAK69gC,gBAAiB79gC,KAEjE,CACAA,KAAKmoC,OAAOyz7B,WAAWkiD,yBAAyBJ,EAAKt7lB,EAAQ71Z,SAASpgB,EAAE2K,WAAY,KAAM+4Z,KAC1F6tmB,EAAI1o/B,aAAa,mBAAoBotZ,EAAQ71Z,SAASpgB,EAAE2K,WAAY,KAAKqpzB,WAAWrpzB,YACpF4mgC,EAAI1o/B,aAAa,aAAcotZ,EAAQ71Z,SAASpgB,EAAE2K,WAAY,KAAKyg+B,aAAan1jB,EAAQ71Z,SAASpgB,EAAE2K,WAAY,KAAKqzxB,SAAS7xW,WAAa,aACrIt4b,KAAKmoC,OAAOuz7B,kBAAkBqiD,wBAC/B/9gC,KAAK49gC,UAAUF,EAAI9j/B,cAAc,IAAMi2Y,KAA0BlsS,GAGrE6kJ,GAAS,CAACk1vB,GADY,CAAC7tmB,IAA0BuS,EAAQ71Z,SAASpgB,EAAE2K,WAAY,KAAKyg+B,aAAaulC,YAElG,IAAI7jgC,EAAO,CAAEkyH,YAAa,iBAAkBh2H,QAASuogC,EAAKv9M,WAAY/9Y,EAAQ71Z,SAASpgB,EAAE2K,WAAY,KAAKqpzB,YAC1Gng0B,KAAKmoC,OAAOm4P,QAAQllK,IAAmBniH,GACvC,IAAI+kgC,EAAMvka,EAAGt2kB,YACb66+B,EAAIts/B,YAAYgs/B,GAChBD,EAAQrxgC,KAAK4xgC,EACjB,CACA,OAAOP,CACX,EACArB,EAAazrgC,UAAUitgC,UAAY,SAAUzogC,EAASvT,GAC7C5B,KAAKmoC,OAAOkwT,UAIbljV,EAAQhP,MAAMgxR,YAAcv1R,EAH5BuT,EAAQhP,MAAMsvR,WAAa7zR,CAKnC,EACAw6gC,EAAazrgC,UAAU2sgC,iBAAmB,SAAUW,EAAkBC,GAElE,IADA,IAAIn88B,EACK5nD,EAAI,EAAGA,EAAI8jgC,EAAiB76gC,OAAQ+W,IAAK,CAE9C,IADA,IAAI+vB,EAAO+z+B,EAAiBA,EAAiB76gC,QAAU+W,EAAI,IAAI24Z,WACtD54Z,EAAI,EAAGA,EAAIgwB,EAAK9mC,OAAQ8W,IAAK,CAClC,IAAIwre,EAAa,EACjB,GAAI1lf,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAM2u7B,UAAW,CAC/C,IAAIj+0B,GAAQ,IAAIwkP,IAAQ3qX,MAAMq19B,EAAgBA,EAAgB96gC,OAAS,GAAGks9B,aAAc,QAASpl7B,EAAK3d,SAASrS,EAAEpD,WAAY,KAAKmngC,EAAiBA,EAAiB76gC,QAAU+W,EAAI,IAAIqh+B,UACtLz56B,EAAa,IAAIshX,GAAY66lB,EAAgBA,EAAgB96gC,OAAS,GAAG0va,YAAY2B,aAAazlP,EACtG,MAEIjtH,EAAam88B,EAAgBA,EAAgB96gC,OAAS,GAAG0va,WAE7D,IAAK,IAAIpxZ,EAAI,EAAGA,EAAIqgD,EAAW3+D,OAAQse,IACnCgke,GAA0Bn5d,SAASw1C,EAAWx1C,SAAS7K,EAAE5K,WAAY,KAAKmqa,MAAO,IAErFykE,GAA0Bn5d,SAAS2d,EAAK3d,SAASrS,EAAEpD,WAAY,KAAKmqa,MAAO,IAC3Ex3V,GAAOv/C,EAAK3d,SAASrS,EAAEpD,WAAY,KAAM,CAAEmqa,MAAOykE,GACtD,CACAw4hB,EAAkBA,EAAgBttgC,MAAM,GAAI,EAChD,CACJ,EACAwrgC,EAAazrgC,UAAUktgC,gBAAkB,SAAUx9gC,GAC/C,IAAIf,EAAQU,KACRA,KAAKmoC,OAAOsw9B,cACZz4/B,KAAKmoC,OAAOsw9B,aAAaj92B,QAE7B,IACI+hJ,EADAl1R,EAAShI,EAAEgI,OAEX++mB,EAAY3xhB,GAAQptF,EAAQ,IAAMwna,KACjCh6I,cACDppQ,EAAQF,SAAS66lB,EAAUthnB,SAAS,GAAGwsB,aAAa,oBAAqB,IACzErZ,EAAO,CACP6nE,QAAQ,EAAO/pD,MAAO12B,EAAG8/zB,WAAY1zyB,EACrCkrZ,YAActva,EAAO6/Q,UAAUh1P,SAAS28Y,KAAkD,mBAAnB,kBAE3E7va,KAAKmoC,OAAOm4P,QAAQllK,IAAoBniH,GAAM,SAAU8jnB,GACpD,IAAKA,EAAWj8iB,OAAQ,CAChBz4E,EAAO6/Q,UAAUh1P,SAAS28Y,MAC1B3nJ,GAAU7/Q,EAAQ,CAACwna,KAA4B,CAACA,MAChDtyI,GAAO,IAGPrV,GAAU7/Q,EAAQ,CAACwna,KAA8B,CAACA,MAClDtyI,GAAO,GAGX,IADA,IACSjuR,EAAK,EAAG6ugC,EADG,GAAGvtgC,MAAMjR,KAAKL,EAAM6oC,OAAOhzB,QAAQ3E,iBAAiB,IAAMq/Z,IAAwB,KAAOA,MAC3Dvga,EAAK6ugC,EAAgB/6gC,OAAQkM,IAAM,CAEjF6jB,GADcgr/B,EAAgB7ugC,GAElC,CACIhQ,EAAM6oC,OAAO2h8B,oBACbxq+B,EAAM8+gC,qBAAqB3x/B,EAAO8wQ,EAAMl9R,EAAGgI,GAG3C/I,EAAMw1gC,cAAcro/B,EAAO8wQ,GAE/B,IAAIrzP,EAAO,CAAE207B,cAAev/9B,EAAM6oC,OAAO6mnB,mBAAoBh4oB,OAAQ,UACrE1X,EAAM6oC,OAAOkxK,OAAOj+E,IAAuBlxF,GAC3CjxB,EAAO,CACH6nE,QAAQ,EAAO/pD,MAAO12B,EAAG8/zB,WAAY1zyB,EACrCkrZ,YAAatva,EAAO6/Q,UAAUh1P,SAAS28Y,KAA+B,mBAAqB,qBAE/Fvwa,EAAM6oC,OAAOk2+B,eAAc,GAC3B/+gC,EAAM6oC,OAAOm4P,QAAQllK,IAAuBniH,EAChD,CACJ,GACJ,EACAmjgC,EAAazrgC,UAAUmkgC,cAAgB,SAAUro/B,EAAO8wQ,GASpD,IARA,IAGIi0mB,EAHA7kF,EAAgB,GAChB2xN,EAAqB,GACrBC,EAAsB,GAEtBC,EAAax+gC,KAAK6p+B,kBAAkBt98B,SAASE,EAAM3V,WAAY,KAAKyg+B,aACpEkmC,EAAU,GAAG7sgC,MAAMjR,KAAKK,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiB,IAAMq/Z,IAAN,QAC7DokV,EAAc,GAAGrjvB,MAAMjR,KAAKK,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiB,IAAMq/Z,IAAN,cACjEmmmB,EAAY,GAAGplgC,MAAMjR,KAAKK,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiB,IAAMq/Z,IAAyB,KAAOA,MAChG7/Z,EAAI,EAAGA,EAAIwugC,EAAWv9lB,MAAOjxa,IAClC28yB,EAAcvgzB,KAAKqxgC,EAAQhx/B,EAAQzc,EAAI,IACvCsugC,EAAmBlygC,KAAK6nvB,EAAYxnuB,EAAQzc,EAAI,IAChDuugC,EAAoBnygC,KAAK4pgC,EAAUvp/B,EAAQzc,EAAI,IAGnD,IADA,IAAIyugC,EAAmBz+gC,KAAK6p+B,kBACnB199B,EAAI,EAAGA,EAAIwgzB,EAAcvpzB,OAAQ+I,IAAK,CAC3C,IAAI6za,GAAW,EAGf,GAFAwxd,EAAQ7kF,EAAcpgyB,SAASpgB,EAAE2K,WAAY,KAAKhR,SAAS,GAAGoiR,UAAUh1P,SAAS28Y,KACjF4umB,EAAiBly/B,SAASE,EAAM3V,WAAY,KAAKyg+B,aAAaknC,EAAiBly/B,SAASE,EAAM3V,WAAY,KAAKqzxB,SAAS4yO,gBAAkBx/uB,EACtIA,EAAM,CACN,GAAIi0mB,GACIktI,EAAS/xN,EAAcpgyB,SAASpgB,EAAE2K,WAAY,KAAK8iB,cAAc,IAAMi2Y,OAEvE3nJ,GAAUw2vB,EAAQ,CAAC7umB,KAA4B,CAACA,MAGnD88Y,EAAcpgyB,SAASpgB,EAAE2K,WAAY,KAAKoxQ,UAAUh1P,SAAS28Y,MAC9DrnJ,GAAS,CAACmkiB,EAAcpgyB,SAASpgB,EAAE2K,WAAY,KAAMwngC,EAAmB/x/B,SAASpgB,EAAE2K,WAAY,KAAMyngC,EAAoBhy/B,SAASpgB,EAAE2K,WAAY,MAAO+4Z,IAE/J,KACK,CACD,GAAI2he,EAAO,CACP,IASQktI,EATJ/tc,EAAWg8O,EAAcpgyB,SAASpgB,EAAE2K,WAAY,KAAK65jB,SAQzD,GAPK8tc,EAAiBly/B,SAASokjB,EAAS75jB,WAAY,KAAKyg+B,aAAaknC,EAAiBly/B,SAASokjB,EAAS75jB,WAAY,KAAKqzxB,SAAS4yO,gBAC3HhxsB,GAAkB0ysB,EAAiBly/B,SAASokjB,EAAS75jB,WAAY,KAAKyg+B,aAAaknC,EAAiBly/B,SAASokjB,EAAS75jB,WAAY,KAAKqzxB,SAAS4yO,kBACpJpwN,EAAcn3xB,OAAOrpB,EAAI,EAAIogB,SAASky/B,EAAiBly/B,SAASokjB,EAAS75jB,WAAY,KAAKyg+B,aAAat2jB,MAAO,KAC9Gq9lB,EAAmB9o/B,OAAOrpB,EAAI,EAAIogB,SAASky/B,EAAiBly/B,SAASokjB,EAAS75jB,WAAY,KAAKyg+B,aAAat2jB,MAAO,KACnHs9lB,EAAoB/o/B,OAAOrpB,EAAI,EAAIogB,SAASky/B,EAAiBly/B,SAASokjB,EAAS75jB,WAAY,KAAKyg+B,aAAat2jB,MAAO,KACpHjB,GAAW,GAEXA,GACI0+lB,EAAS/xN,EAAcpgyB,SAASpgB,EAAE2K,WAAY,KAAK8iB,cAAc,IAAMi2Y,OAEvE3nJ,GAAUw2vB,EAAQ,CAAC7umB,KAA8B,CAACA,KAG9D,CACI88Y,EAAcpgyB,SAASpgB,EAAE2K,WAAY,KAAKoxQ,UAAUh1P,SAAS28Y,MAC7D5nJ,GAAY,CAAC0kiB,EAAcpgyB,SAASpgB,EAAE2K,WAAY,KAAMwngC,EAAmB/x/B,SAASpgB,EAAE2K,WAAY,KAAMyngC,EAAoBhy/B,SAASpgB,EAAE2K,WAAY,MAAO+4Z,IAElK,CACJ,CACJ,EAEAusmB,EAAazrgC,UAAUytgC,qBAAuB,SAAU3x/B,EAAOqoZ,EAAQz0a,EAAGgI,GACtErI,KAAK6p+B,kBAAkBt98B,SAASE,EAAM3V,WAAY,KAAKyg+B,aAAav3+B,KAAK6p+B,kBAAkBt98B,SAASE,EAAM3V,WAAY,KAAKqzxB,SAAS4yO,gBAAkBjomB,EACtJ90a,KAAKu9gC,uBACL,IAAItJ,EAAgBj0gC,KAAKmoC,OAAO2h8B,oBAAoB8pC,mBAChDn/9B,EAAaz0C,KAAKiq+B,kBAAkBt/9B,QAAQ3K,KAAK0q+B,kBAAkB,IAEvE,GADA1q+B,KAAK0q+B,kBAAoB1q+B,KAAKiq+B,kBAAkBr59B,MAAM6jC,EAAYA,EAAaw/9B,GAC3Ej0gC,KAAK0q+B,kBAAkBtn+B,OAAS6wgC,EAAe,CAC/C,IAAIppiB,EAAS7qe,KAAKiq+B,kBAAkB7m+B,OAAS6wgC,EAC7CppiB,EAAUA,EAAS,EAAKA,EAAS,EACjC7qe,KAAK0q+B,kBAAoB1q+B,KAAKiq+B,kBAAkBr59B,MAAMi6d,EAAQ7qe,KAAKiq+B,kBAAkB7m+B,OACzF,CACA,IAAI6inB,EAAejmnB,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KAC3D7va,KAAKmoC,OAAO2h8B,oBAAoBkqC,yBAAyB/tZ,GACzD,IAAI04Z,EAAW3+gC,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,IAAN,UAC7C47M,EAAezrnB,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,IAAN,UACjD+umB,EAAa5+gC,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KACzD7va,KAAKmoC,OAAO2h8B,oBAAoBgrC,cAAc6J,EAAUlzZ,EAAcmzZ,EAAY5+gC,KAAK0q+B,mBACvF,IAAIgqC,EAAgB10gC,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KACvD9jG,GAAkB2osB,KACnBA,EAAcvugC,MAAMyiJ,OAChB5oJ,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KAAyB96I,aAAe,KAE5F,EACAqnvB,EAAazrgC,UAAUkugC,qBAAuB,WAC1C,IAAIC,EAAkBh+gC,GAAc,MAAO,CAAEC,UAAW8ua,MAGxD,GAFAivmB,EAAgB51+B,UAAY,eAAiB2mY,IAA8B,iBAAmBA,IAAlE,yBACCA,IAAyB,6BAA+BA,IAA2B,iBAChF,gBAA5B7va,KAAKmoC,OAAOw/W,YAA+B,CAC3C,IAAIt/Y,EAASrI,KAAKmoC,OAAOyz7B,WAAWx0d,WAAWxte,cAAc,IAAMi2Y,KACnExna,EAAOssB,aAAamq/B,EAAiBz2gC,EAAOuxB,cAAc,IAAMi2Y,KACpE,MAEI7va,KAAKmoC,OAAOhzB,QAAQwf,aAAamq/B,EAAiB9+gC,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,MAE9F7va,KAAK++gC,2BACLlmyB,GAAazlN,IAAI0r/B,EAAgBll/B,cAAc,IAAMi2Y,KAAyB,QAAS7va,KAAKg/gC,UAAWh/gC,KAC3G,EACAo8gC,EAAazrgC,UAAUsugC,mBAAqB,WACxCj/gC,KAAKwrjB,aAAe1qjB,GAAc,MAAO,CAAEC,UAAW8ua,MACtD,IAAIqvmB,EAAcp+gC,GAAc,MAAO,CAAEC,UAAW8ua,IAA0B,mBAC9E,GAAgC,gBAA5B7va,KAAKmoC,OAAOw/W,YAA+B,CAC3C,IAAIt/Y,EAASrI,KAAKmoC,OAAOyz7B,WAAWx0d,WAAWxte,cAAc,IAAMi2Y,KACnExna,EAAOssB,aAAauq/B,EAAa72gC,EAAOvC,SAAS,IACjDuC,EAAOqpB,YAAY1xB,KAAKwrjB,aAC5B,MAEIxrjB,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KAA2Bn+Y,YAAYwt/B,GAC/El/gC,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KAA2Bn+Y,YAAY1xB,KAAKwrjB,cAExF,IAAI2zd,EAAer+gC,GAAc,MAAO,CAAEC,UhCyGvB,oBgCxGnBm+gC,EAAYxt/B,YAAYyt/B,GACxBn/gC,KAAKo/gC,YAAc,IAAIz8I,IAAS,CAC5B/yhB,SAAU5vW,KAAKmoC,OAAOynU,SACtBvX,UAAWr4V,KAAKmoC,OAAOkwT,UACvB00F,oBAAqB/sb,KAAKmoC,OAAO4kZ,oBACjC55N,OAAQ,CACJ2/M,WAAY,GAAGlia,MAAMjR,KAAKK,KAAKq9gC,oBAC/Bln/B,GAAI,aACJ8J,KAAM,eACNknB,MAAO,iBAEXkixB,aAAcrp0B,KAAKmoC,OAAO41+B,uBAC1BsB,YAAar/gC,KAAKs/gC,cAAcz/gC,KAAKG,MACrCyzd,QAASzzd,KAAKu/gC,oBAAoB1/gC,KAAKG,QAE3CA,KAAKo/gC,YAAY1mrB,SAASymrB,GAC1Bn/gC,KAAKo/gC,YAAYxsW,YACjB5yqB,KAAKw/gC,UAAY,IAAI9t1B,GAAMwt1B,EAAa,CACpCrjoB,WAAY,WACZhC,eAAgB,OAChB9kY,QAAS/U,KAAKo/gC,YAAYjqgC,QAC1B+kY,SAAUl6Y,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KAClDx3E,UAAWr4V,KAAKmoC,OAAOkwT,UACvBokD,cAAe,CAAE/3Y,KAAM,eAAgBuvG,SAAU,KACjDuoS,cAAe,CAAE93Y,KAAM,cAAeuvG,SAAU,KAChDqiS,gBAAiBt2Y,KAAKmoC,OAAOhzB,QAAQykB,cAAc,KAAmC,gBAA5B55B,KAAKmoC,OAAOw/W,YAClEkoB,IAA8BA,QAEtC7va,KAAKmoC,OAAO5uB,GAAG6hH,IAAsBp7H,KAAKwt9B,cAAext9B,KAC7D,EACAo8gC,EAAazrgC,UAAU4ugC,oBAAsB,WACrCv/gC,KAAKmoC,OAAOuz7B,kBAAkBqiD,wBAA0B/9gC,KAAKmoC,OAAO2oU,SAAW9wW,KAAKo/gC,YAAYtuqB,UAChG9wW,KAAKmoC,OAAO2oU,QAAU9wW,KAAKmoC,OAAO2oU,QAAQ13V,OAAOpZ,KAAKo/gC,YAAYtuqB,SAClE9wW,KAAKmoC,OAAOukf,kBAEpB,EACA0vf,EAAazrgC,UAAU0sgC,iBAAmB,SAAUoC,GAsDhD,IArDA,IAAInghC,EAAQU,KACR0/gC,EAAiB,GACjBC,EAAc,GACdx/M,EAAa,EACb1zf,EAAU,SAAUtgU,EAAGwjD,GACvB,IAAIiw9B,EAAc,SAAUC,EAAWpz/B,EAAOqz/B,GAC1C,IACIC,EACAvS,EAFArjO,EAAW7qyB,EAAM8v9B,mBAAmB7i8B,SAASE,EAAM3V,WAAY,KAG9D2ogC,GASDjS,EAAS,CACL5ggC,KAAM,iBAAkBu9xB,SAAU01O,EAAU11O,SAC5CotM,aAAcsoC,EAAUtoC,aAAcp3K,WAAYA,EAClDi4K,WAAYynC,EAAUznC,YAE1BunC,EAAYvzgC,KAAKohgC,GACjBrtM,KAdA4/M,EAAW,CACPjjC,WAAYgjC,EACZE,aAAcH,EAAUtoC,aAAaptM,EAAS7xW,WAC9C6xW,SAAU01O,EAAU11O,SACpBotM,aAAcsoC,EAAUtoC,cAY5BsoC,EAAU149B,MAAM/jD,OAAS,IAAMq8gC,IAC/BM,EAASE,cAAgB,IAG7B,IADA,IAAIr1/B,EAAQ,EACHtb,EAAK,EAAGgmC,EAAKuq+B,EAAU149B,MAAO73C,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CACzD,IAAIi2tB,EAAOjwrB,EAAGhmC,GACTmwgC,EAIDG,EAAYr6S,EAAM94sB,EAAQ,EAAGqz/B,EAAU,IAAMl1/B,GAH7Cm1/B,EAASE,cAAc7zgC,KAAKwzgC,EAAYr6S,EAAM94sB,EAAQ,EAAGqz/B,EAAU,IAAMl1/B,IAK7EA,GAAS,CACb,CAIA,OAHI60/B,GACAh27B,GAAO+j7B,EAAOj2B,aAAc,CAAEt2jB,MAAOr2Z,EAAQ,IAE1Cm1/B,CACX,EACKN,EAIDG,EAAYzkrB,EAAO+krB,kBAAkB3z/B,SAASpgB,EAAE2K,WAAY,KAAM,GAAI3K,EAAI,GAAG2K,YAH7E4ogC,EAAetzgC,KAAKwzgC,EAAYzkrB,EAAO+krB,kBAAkB3z/B,SAASpgB,EAAE2K,WAAY,KAAM,GAAI3K,EAAI,GAAG2K,YAKzG,EACIqkV,EAASn7V,KACJmM,EAAI,EAAGwjD,EAAM3vD,KAAKkghC,kBAAkB98gC,OAAQ+I,EAAIwjD,EAAKxjD,IAC1DsgU,EAAQtgU,GAEZ,OAAIszgC,GACAz/gC,KAAK6p+B,kBAAoB81C,EAClBA,GAGAD,CAEf,EACAtD,EAAazrgC,UAAUougC,yBAA2B,WAe9C,IAdA,IAAI50O,EAAWnqyB,KAAK6p+B,kBAAkB7p+B,KAAKmoC,OAAO+27B,cAAc/+J,YAC5DggN,EAAmB,GACnBp/lB,EAAU,SAAU50a,EAAGwjD,GACvB,IAAIyw9B,EAAgBp5lB,EAAOooiB,mBAAmB7i8B,SAASpgB,EAAE2K,WAAY,KACjE6i/B,EAAeymB,EAActtmB,WAAW1sa,QAAO,SAAUg8a,GACzD,OAAOA,EAAQg+lB,EAAc5kC,WAAarxM,EAASiuM,WAAW7r9B,SAASpgB,EAAE2K,WAAY,IACzF,IACIkpgC,EAAel/gC,GAAc,MAAO,CAAEC,UhCnR3B,oBgCoRfimb,EAAO7+Y,OAAOyD,SAAS+t9B,EAAa,GAAGymB,EAAc9nlB,WAAY0nlB,GACjEG,EAAiB/zgC,KAAK4zgC,GACtB,IAAIK,EAAYv/gC,GAAc,MAAO,CAAEC,UAAW,wBAClDo/gC,EAAiB/zgC,KAAKi0gC,EAC1B,EACIr5lB,EAAShnb,KACJmM,EAAI,EAAGwjD,EAAMw6uB,EAASiuM,WAAWh1+B,OAAQ+I,EAAIwjD,EAAKxjD,IACvD40a,EAAQ50a,GAEZg0gC,EAAiB7h/B,MACjB,IACIgi/B,GADsC,gBAA5BtghC,KAAKmoC,OAAOw/W,YAAiC3nZ,KAAKmoC,OAAOyz7B,WAAWx0d,WAAapngB,KAAKmoC,OAAOhzB,SAChFykB,cAAc,IAAMi2Y,KAC/CwsjB,IAAoBikD,GACpB,IAAK,IAAIhxgC,EAAK,EAAGixgC,EAAqBJ,EAAkB7wgC,EAAKixgC,EAAmBn9gC,OAAQkM,IAAM,CAC1F,IAAIo/K,EAAS6x1B,EAAmBjxgC,GAChCgxgC,EAAc5u/B,YAAYg9J,EAC9B,CACsC,IAAlC1uL,KAAK6p+B,kBAAkBzm+B,QACvBolR,GAAS,CAACxoR,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,MAAqBA,IAE/E,EAEAusmB,EAAazrgC,UAAUqugC,UAAY,SAAUjo/B,GACzC,GAAI/2B,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KAAyB3nJ,UAAUh1P,SAAS28Y,KACpF7va,KAAKw/gC,UAAUjivB,OACftV,GAAY,CAACjoR,KAAKwrjB,cAAe37I,SAEhC,CACD,IAAI2wmB,EAAY,GAAG5vgC,MAAMjR,KAAKK,KAAKo/gC,YAAYjqgC,QAAQ3E,iBAAiB,mCACxEy3Q,GAAYu4vB,EAAW,YACvBh4vB,GAAS,CAACg4vB,EAAUxghC,KAAKmoC,OAAO+27B,cAAc/+J,aAAc,YAC5Dng0B,KAAKw/gC,UAAUn5tB,OACf79B,GAAS,CAACxoR,KAAKwrjB,cAAe37I,IAClC,CACJ,EACAusmB,EAAazrgC,UAAU8vgC,sBAAwB,SAAUtgN,GACjDng0B,KAAK6p+B,mBAAqB1pK,GAAc,GAAKA,EAAang0B,KAAK6p+B,kBAAkBzm+B,QACjFpD,KAAK0ghC,cAAcvgN,EAE3B,EACAi8M,EAAazrgC,UAAU2ugC,cAAgB,SAAUvo/B,GAC7C,IAAKA,EAAM7mB,KAAKg4Q,UAAUh1P,SAAS,eAAgB,CAC/ClzB,KAAKw/gC,UAAUjivB,OACftV,GAAY,CAACjoR,KAAKwrjB,cAAe37I,KACjC,IACIswZ,EADY,GAAGvvzB,MAAMjR,KAAKK,KAAKo/gC,YAAYjqgC,QAAQ3E,iBAAiB,mCAC7C7F,QAAQosB,EAAM7mB,MACzClQ,KAAK0ghC,cAAcvgN,EAAYppyB,GAC/BA,EAAMA,MAAM1oB,gBAChB,CACJ,EACA+tgC,EAAazrgC,UAAU+vgC,cAAgB,SAAUvgN,EAAYppyB,GACzD,IAAIz3B,EAAQU,KACRiZ,EAAO,CAAE6nE,QAAQ,EAAO/pD,MAAQA,EAASA,EAAMA,MAAQ,KAAMopyB,WAAYA,EAAYxoZ,YAAa,kBACtG33a,KAAKmoC,OAAOm4P,QAAQllK,IAAoBniH,GAAM,SAAU8jnB,GAC/CA,EAAWj8iB,SACZxhF,EAAM6oC,OAAO+27B,cAAc/+J,WAAapjM,EAAWojM,WACnD7g0B,EAAM6oC,OAAO49e,aAAa3rgB,OAAO9a,EAAM6oC,OAAOw/W,aAC9C1uY,EAAO,CACH6nE,QAAQ,EAAO/pD,MAAQA,EAASA,EAAMA,MAAQ,KAAMopyB,WAAY7g0B,EAAM6oC,OAAO+27B,cAAc/+J,WAAYxoZ,YAAa,mBAExHr4a,EAAM6oC,OAAOm4P,QAAQllK,IAAuBniH,GAEpD,GACJ,EACAmjgC,EAAazrgC,UAAU688B,cAAgB,SAAUv08B,GAC7C,IAAIw8E,GAAQx8E,EAAK8d,MAAM1uB,OAAQ,IAAMwna,KAArC,CAGA,IAAIqvmB,EAAcl/gC,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KACtDqvmB,GAAeA,EAAYh3vB,UAAUh1P,SAAS28Y,OAC9C7va,KAAKw/gC,UAAUjivB,OACftV,GAAY,CAACjoR,KAAKwrjB,cAAe37I,KAJrC,CAMJ,EACAusmB,EAAazrgC,UAAUgwgC,kBAAoB,SAAUC,GACjD,IAAIthhC,EAAQU,KACZA,KAAKmoC,OAAOwpY,cAEZ,IADA,IAAI1yP,EAAW,GACN3vK,EAAK,EAAGgmC,EAAKt1C,KAAKmoC,OAAOmif,UAAWh7gB,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CAC/D,IAAI66xB,EAAW70vB,EAAGhmC,GACdyo+B,EAAa,IAAIxoY,IAAKvvmB,KAAKmoC,OAAQgiwB,EAASr3X,WAAYq3X,EAASn7mB,OACrE/P,EAAS7yK,KAAK2r+B,EAAWx/5B,QAAQw/5B,EAAW/1Y,iBAChD,CACArxjB,QAAQ5gB,IAAIkvJ,GAAUhkD,MAAK,SAAU56H,GAAK,OAAOf,EAAMy8nB,mBAAmB17nB,EAAGughC,EAAa,IACrFxk5B,OAAM,SAAU/7H,GAAK,OAAOf,EAAM6oC,OAAOo47B,WAAWvkW,mBAAmB37nB,EAAI,GACpF,EACA+7gC,EAAazrgC,UAAUornB,mBAAqB,SAAU17nB,EAAGughC,GACrD,MAAK5ghC,KAAKmoC,QAAUnoC,KAAKmoC,QAAUnoC,KAAKmoC,OAAOgwP,aAA/C,CAGAn4R,KAAKmoC,OAAOin7B,mBAAqB,GACjC,IAAK,IAAIjj9B,EAAI,EAAG40S,EAAW1gT,EAAE+C,OAAQ+I,EAAI40S,EAAU50S,IAAK,CACpD,IAAIg+xB,EAAWnqyB,KAAKmoC,OAAOmif,UAAU/9f,SAASpgB,EAAE2K,WAAY,KACxD+pgC,EAAc7ghC,KAAK8ghC,iBAAiB32O,EAAU9pyB,EAAEksB,SAASpgB,EAAE2K,WAAY,KAAK+T,QAChF7qB,KAAKmoC,OAAOin7B,mBAAmBhj9B,KAAKy0gC,EACxC,CACA7ghC,KAAK+ghC,cAAcH,EAPnB,CAQJ,EACAxE,EAAazrgC,UAAUmwgC,iBAAmB,SAAU32O,EAAUotM,GAiB1D,MAhBkB,CACdn43B,MAAO+qrB,EAAS/qrB,MAChBtqG,MAAOq1xB,EAASr1xB,MAChBpQ,KAAMylyB,EAASzlyB,KACfgogC,cAAeviO,EAASuiO,cACxB55lB,WAAYykkB,GAAgBptM,EAASr3X,WACrC0okB,QAASrxM,EAASqxM,QAClBljjB,UAAW6xW,EAAS7xW,UACpBg3hB,aAAcnlL,EAASmlL,aACvBqtC,WAAYxyN,EAASwyN,WACrBqkB,eAAgB72O,EAAS62O,eACzBC,aAAc92O,EAAS82O,aACvBn5B,cAAe39M,EAAS29M,cACxBi1B,cAAe5yO,EAAS4yO,cACxBmE,cAAe/2O,EAAS+2O,cAGhC,EACA9E,EAAazrgC,UAAUowgC,cAAgB,SAAUH,IACzC70sB,GAAkB/rU,KAAKmoC,OAAO+27B,cAAc/+J,aAAiBng0B,KAAKmoC,OAAOwwT,oBACzE34V,KAAKmoC,OAAO+27B,cAAc/+J,WAAa,GAE3Cng0B,KAAKmoC,OAAO4x6B,eAAe6mE,EAC/B,EACAxE,EAAazrgC,UAAUwwgC,sBAAwB,WAC3C,IAAIC,EAAoB,GAGxB,GAFAphhC,KAAKov9B,mBAAqB,GAC1Bpv9B,KAAKqhhC,WAAa,KACdrhhC,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,EACvD,IAAK,IAAIkM,EAAK,EAAGgmC,EAAKt1C,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAWh7gB,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CACvF,IAAI66xB,EAAW70vB,EAAGhmC,GACdirf,EAAU8he,IAAqBr89B,KAAKmoC,OAAOin7B,mBAAoB,OAAQjlL,GACvE5vS,GAAW,GACX6mhB,EAAkBh1gC,KAAKpM,KAAKmoC,OAAOin7B,mBAAmB7i8B,SAASgue,EAAQzjf,WAAY,KAE3F,MAEK9W,KAAKmoC,OAAOin7B,mBAAmBhs9B,OAAS,IAC7Cg+gC,EAAoBphhC,KAAKmoC,OAAOin7B,oBAGpC,IADA,IAAI3i8B,EAAQ,EACHipB,EAAK,EAAG4r+B,EAAsBF,EAAmB1r+B,EAAK4r+B,EAAoBl+gC,OAAQsyC,IAAM,CACzFy0vB,EAAWm3O,EAAoB5r+B,GAAnC,IACI40e,EAAYtqhB,KAAK8ghC,iBAAiB32O,GAClCA,EAASzlyB,OAAS1E,KAAKmoC,OAAOi07B,cAAcmlD,qBAC5CvhhC,KAAKqhhC,WAAa50/B,GAEtBA,IACAzsB,KAAKov9B,mBAAmBhj9B,KAAKk+gB,EACjC,CACIv+M,GAAkB/rU,KAAKqhhC,cACvBrhhC,KAAKqhhC,WAAarhhC,KAAKov9B,mBAAmBhs9B,OAAS,EAE3D,EACAg5gC,EAAazrgC,UAAU6wgC,uBAAyB,SAAUC,EAAYhC,GAClE,IAAInghC,EAAQU,KACRsqhB,EAAYtqhB,KAAKov9B,mBACjBsyD,EAAe,GACfC,EAAkB,GAClBrj8B,EAAQ,SAAUgsc,EAAW79f,EAAOm1/B,EAAcC,EAAkBC,GACpE,IAAIC,EAAU,GACV53O,EAAW7/Q,EAAU,GACzB,GAAI6/Q,EAAU,CACV,IAAIjgwB,OAAO,EACX,GAAI23+B,GAAoBvihC,EAAM6oC,OAAOuz7B,kBAAkBp94B,MAAM2u7B,UAAW,CACpE,IAAIjqY,EAAO6+Y,EAAiBD,EAAapmC,SACzCtx8B,EAAOigwB,EAASr3X,WAAW1sa,QAAO,SAAU/F,GACxC,OAAOA,EAAE8pyB,EAASmlL,gBAAkBtsV,CACxC,GACJ,MAEI94lB,EAAOigwB,EAASr3X,WAEpB,IAAK,IAAI3ma,EAAI,EAAGA,EAAI+9B,EAAK9mC,OAAQ+I,IAAK,CAClC,IAAIis+B,EAAa,GACb0pC,GAAaA,EAAU1+gC,OAAS,IAChCg1+B,EAAaA,EAAWh/9B,OAAO0ogC,IAEnC1pC,EAAWhs+B,KAAK89B,EAAK3d,SAASpgB,EAAE2K,WAAY,KAAKqzxB,EAASqxM,UAC1D,IAAI1z7B,EAAQw2B,EAAMgsc,EAAU15gB,MAAM,GAAI6b,EAAQ,EAAG09wB,EAAUjgwB,EAAK3d,SAASpgB,EAAE2K,WAAY,KAAMsh+B,GAE7F,KAAc,IAAV3r9B,GAAgC,IAAjBq7B,EAAM1kD,QAAgB9D,EAAM8v9B,mBAAmBhs9B,OAAS,GAA3E,CAGA,IAAI4+gC,EAAU,GACVziD,EAAcjg+B,EAAM6oC,OAAOyz7B,WAAW2D,YACtC0iD,OAAc,EAClB,IAAK3ihC,EAAM6oC,OAAOuz7B,kBAAkBp94B,MAAMw75B,QAAUrt9B,EAAQ,IAAMntB,EAAM8v9B,mBAAmBhs9B,OAAQ,CAC/F,IAAIyk/B,EAAW398B,EAAK3d,SAASpgB,EAAE2K,WAAY,KAAKqzxB,EAAS29M,eACrDo6B,EAAeh4+B,EAAK3d,SAASpgB,EAAE2K,WAAY,KAAKqzxB,EAAS62O,gBACzDmB,EAAaj4+B,EAAK3d,SAASpgB,EAAE2K,WAAY,KAAKqzxB,EAAS82O,cACvDp5B,GAAYA,EAASzk/B,OAAS,GAC9Bm89B,EAAcjg+B,EAAM6oC,OAAOyz7B,WAAWwE,eAAeynB,GACrDo6B,EAAcp6B,EACdm6B,EAAU1ihC,EAAM6oC,OAAOyz7B,WAAWwmD,aAAa7iD,EAAasoB,KAG5Do6B,EAAc3ihC,EAAM6oC,OAAOuz7B,kBAAkBmsB,SAC7Cm6B,EAAUP,GAEd,IAAIY,EAAY/ihC,EAAMgjhC,oBAAoBN,EAASE,EAAcC,EAAY/pC,GAC7EupC,EAAkBA,EAAgBvogC,OAAOipgC,EAC7C,CACA,IAAIE,EAAcr4+B,EAAK3d,SAASpgB,EAAE2K,WAAY,KAAKqzxB,EAAS+2O,eACxDnzB,EAAW,CACXnh/B,KAAM,iBAAkB7L,UAAW,CAAC,oBACpCyhhC,mBAAoB/1/B,EAAO2r9B,WAAYA,EACvCjuM,SAAUA,EAAUotM,aAAcrt8B,EAAK3d,SAASpgB,EAAE2K,WAAY,KAC9Dm/lB,QAAS32mB,EAAM6oC,OAAOuz7B,kBAAkBp94B,MAAMw75B,OAAS,EAAIkoC,EAAQ5+gC,OACnEm89B,YAAaA,EAAasoB,SAAUo6B,EAAaryqB,SAAU2yqB,EAC3Dp79B,MAAOW,GAEXi69B,EAAQ31gC,KAAK2h/B,EA7Bb,CA8BJ,CAOA,OANK2zB,EAAan1/B,SAASE,EAAM3V,WAAY,OACzC4qgC,EAAan1/B,SAASE,EAAM3V,WAAY,KAAO,IAE/CirgC,EAAQ3+gC,OAAS,GACjBs+gC,EAAan1/B,SAASE,EAAM3V,WAAY,KAAK1K,KAAK21gC,GAE/CA,CACX,CACA,MAAO,EACX,EAEA,OADA/hhC,KAAKkghC,kBAAoB5h8B,EAAMgsc,EAAW,GAClCm1f,EAAc,GAAKz/gC,KAAKyihC,qBAAqBf,EAAcC,EAAiBF,EACxF,EACArF,EAAazrgC,UAAU2xgC,oBAAsB,SAAU/iD,EAAavQ,EAAWC,EAASmpB,GAEpF,IADA,IAAIiqC,EAAY547B,GAAO,GAAI814B,EAAa,MAAM,GACrCjw9B,EAAK,EAAGozgC,EAAcL,EAAW/ygC,EAAKozgC,EAAYt/gC,OAAQkM,IAAM,CACrE,IAAIqzgC,EAAWD,EAAYpzgC,GACvB0/8B,IACA2zD,EAAS3zD,UAAYhv9B,KAAKmoC,OAAOio+B,gBAAgBphD,IAEjDC,IACA0zD,EAAS1zD,QAAUjv9B,KAAKmoC,OAAOio+B,gBAAgBnhD,IAE/CmpB,IACAuqC,EAASvqC,WAAaA,EAE9B,CACA,OAAOiqC,CACX,EACAjG,EAAazrgC,UAAU8xgC,qBAAuB,SAAUf,EAAcC,EAAiBiB,GAEnF,IADA,IAAIC,EAAe,GACV12gC,EAAIu1gC,EAAat+gC,OAAS,EAAG+I,GAAK,EAAGA,IAE1C,IADA,IAAIugF,EAAO,EACFp9E,EAAK,EAAGgmC,EAAKos+B,EAAan1/B,SAASpgB,EAAE2K,WAAY,KAAMxH,EAAKgmC,EAAGlyC,OAAQkM,IAE5E,IADA,IACSomC,EAAK,EAAGot+B,EADQxt+B,EAAGhmC,GACgComC,EAAKot+B,EAAqB1/gC,OAAQsyC,IAAM,CAChG,IAAIqt+B,EAAoBD,EAAqBpt+B,GAC7C,GAAIgs+B,EAAav1gC,EAAI,IAAMu1gC,EAAav1gC,EAAI,GAAG/I,OAAS,EAAG,CACvD,IAAI4/gC,EAAkBtB,EAAan1/B,UAAUpgB,EAAI,GAAG2K,WAAY,KAAKyV,SAASmgE,EAAK51E,WAAY,KAC/F,IAAKksgC,EACD,SAGJ,IADA,IAAI/sa,EAAU,EACLrgkB,EAAK,EAAGqt+B,EAAoBD,EAAiBpt+B,EAAKqt+B,EAAkB7/gC,OAAQwyC,IAAM,CACvF,IAAIst+B,EAAiBD,EAAkBrt+B,KAClC51C,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAM2u7B,WAAcjtgC,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAM2u7B,WACvFiW,EAAe3rC,aAAa2rC,EAAe/4O,SAASmlL,gBAChDyzD,EAAkBxrC,aAAawrC,EAAkB54O,SAASqxM,YAC9DvlY,GAAWita,EAAejta,QAElC,CACA8sa,EAAkB9sa,QAAUA,CAChC,CACA8sa,EAAkB5iN,WAAazzuB,EAC/BA,IACAm27B,EAAaE,EAAkBP,oBAAsBK,EAAaE,EAAkBP,qBAAuB,GAC3GK,EAAaE,EAAkBP,oBAAoBp2gC,KAAK22gC,EAC5D,CAIR,GADA/ihC,KAAK6p+B,kBAAoBg5C,EAAajygC,OAAO,GAAG,IAAM,IACjD5Q,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMw75B,OAAQ,CAE7C,IADA,IAAIrt9B,EAAQ,EACHspB,EAAK,EAAGD,EAAK91C,KAAK6p+B,kBAAmB9z7B,EAAKD,EAAG1yC,OAAQ2yC,IAC1D,KAAIot+B,EAAoBrt+B,EAAGC,GAC3B,IAAS5pC,EAAI,EAAGA,EAAIg3gC,EAAkBlta,QAAS9pmB,IAC3Cw1gC,EAAgBp1/B,SAASE,EAAM3V,WAAY,KAAKqpzB,WAAagjN,EAAkBhjN,WAC/E1zyB,GAH0B,CAOlC,OADAo2/B,EAAaz2gC,KAAKu1gC,GACXkB,CACX,CACA,IAAIO,EAAmB,GACnB5nP,EAAS/xsB,GAAO,GAAIo57B,EAAc,MAAM,GACxCQ,EAAc,GAClB,GAAIrjhC,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAM6n6B,mBAAoB,CAwExD,IAvEA,IAAIkwB,EAAgB,GAChB1zmB,EAAY,EACZqe,EAAU,SAAU8vT,GACpBn6D,EAAO4vU,iBAAiBh69B,SAASo2Y,EAAU7rZ,WAAY,KAAO,GAoD9D,IAnDA,IAAIwsgC,EAAoB,GACpBloiB,EAAU,SAAUpre,GACpB,IAAI63+B,EAAWlxU,EAAOkzT,kBAAkBt98B,SAASvc,EAAE8G,WAAY,KAAKyg+B,aAAa5gU,EAAOkzT,kBAAkBt98B,SAASvc,EAAE8G,WAAY,KAAKqzxB,SAAS29M,eAI/I,GAHKD,IACDA,EAAWlxU,EAAOxuoB,OAAOuz7B,kBAAkBmsB,WAEK,IAAhDA,EAASl9+B,QAAQmmuB,EAAW5wuB,KAAKyD,UAAkB,CACnD,IAAI4/gC,EAAU957B,GAAO,CAAC,EAAGktlB,EAAOkzT,kBAAkBt98B,SAASvc,EAAE8G,WAAY,KAAM,MAAM,GACrFysgC,EAAQrjhC,KAAO4wuB,EAAW5wuB,KAC1By2qB,EAAOkzT,kBAAkBt98B,SAASvc,EAAE8G,WAAY,KAAK+w+B,SAAWA,EAChE07B,EAAQv0D,UAAYr4S,EAAOxuoB,OAAOio+B,gBAAgBmT,EAAQhsC,aAAagsC,EAAQp5O,SAAS62O,kBACpFlwS,EAAWk+O,UACfu0D,EAAQt0D,QAAUt4S,EAAOxuoB,OAAOio+B,gBAAgBmT,EAAQhsC,aAAagsC,EAAQp5O,SAAS82O,gBAClFnwS,EAAWm+O,QACft4S,EAAO4vU,iBAAiBh69B,SAASo2Y,EAAU7rZ,WAAY,KAAK1K,KAAKm3gC,GAgCjE,IA/BA,IAAI/8hB,EAAU,SAAU1le,GAIpB,GAHKwigC,EAAkB/2/B,SAASzL,EAAEhK,WAAY,OAC1CwsgC,EAAkB/2/B,SAASzL,EAAEhK,WAAY,KAAO,IAEhDgK,IAAMyigC,EAAQnrC,WAAWh1+B,OAAS,EAAG,CAChCizgC,EAAc9p/B,SAASvc,EAAE8G,WAAY,OACtCu//B,EAAc9p/B,SAASvc,EAAE8G,WAAY,KAAO,IAEhD,IAAI0sgC,EAAcD,EAAQhkD,YAAYn59B,QAAO,SAAU8T,GAAK,OAAOA,EAAEvW,WAAamtuB,EAAW5wuB,KAAKyD,QAAU,IAG5G,OAFA0ygC,EAAc9p/B,SAASvc,EAAE8G,WAAY,KAAOu//B,EAAc9p/B,SAASvc,EAAE8G,WAAY,KAAKsC,OAAOoqgC,GAC7FF,EAAkB/2/B,SAASzL,EAAEhK,WAAY,KAAK1K,KAAKm3gC,GAC5C,UACX,CACA,IACIE,EADejoP,EAAOjvwB,SAASzL,EAAEhK,WAAY,KACb1Q,QAAO,SAAU8jC,GACjD,OAAOA,EAAKqt8B,aAAart8B,EAAKigwB,SAASqxM,WAAa+nC,EAAQnrC,WAAW7r9B,SAASzL,EAAEhK,WAAY,IAClG,IACA,GAAI2sgC,GAAoBA,EAAiBrghC,OAAS,EAAG,CACjD,IAAIsghC,EAAkBJ,EAAkB/2/B,SAASzL,EAAEhK,WAAY,KAAK1Q,QAAO,SAAU8jC,GACjF,OAAOA,EAAKqt8B,aAAart8B,EAAKigwB,SAASqxM,WAAa+nC,EAAQnrC,WAAW7r9B,SAASzL,EAAEhK,WAAY,IAClG,IACA,GAAI4sgC,GAAmBA,EAAgBtghC,OAAS,EAC5CsghC,EAAgB,GAAGzta,SAAW,MAE7B,CACD,IAAI0ta,EAAal67B,GAAO,CAAC,EAAGg67B,EAAiB,GAAI,MAAM,GACvDE,EAAW1ta,QAAU,EACrBqta,EAAkB/2/B,SAASzL,EAAEhK,WAAY,KAAK1K,KAAKu3gC,EACvD,CACJ,CACJ,EACS7igC,EAAI,EAAGA,EAAIyigC,EAAQnrC,WAAWh1+B,OAAQ0d,IAC3C0le,EAAQ1le,EAEhB,CACJ,EACS9Q,EAAI,EAAGA,EAAI2mqB,EAAOkzT,kBAAkBzm+B,OAAQ4M,IACjDore,EAAQpre,GAEZ,GAAIszgC,EAAkBlghC,OAAS,EAAG,CAC9B,IAAK,IAAIi8B,EAAI,EAAGA,EAAIm8vB,EAAOp4xB,OAAQi8B,IAC1B+j/B,EAAiB72/B,SAAS8S,EAAEvoB,WAAY,OACzCssgC,EAAiB72/B,SAAS8S,EAAEvoB,WAAY,KAAO,IAEnDssgC,EAAiB72/B,SAAS8S,EAAEvoB,WAAY,KAAOssgC,EAAiB72/B,SAAS8S,EAAEvoB,WAAY,KAAKsC,OAAOkqgC,EAAkB/2/B,SAAS8S,EAAEvoB,WAAY,MAEhJg6tB,EAAW76H,QAAUqta,EAAkBA,EAAkBlghC,OAAS,GAAGA,OACrEighC,EAAYj3gC,KAAK0kuB,EACrB,CACAnuU,GACJ,EACIg0Q,EAAS32qB,KACJi3C,EAAK,EAAG2s+B,EAAgBhB,EAAa3r+B,EAAK2s+B,EAAcxghC,OAAQ6zC,IAAM,CAE3E+pY,EADI8vT,EAAa8yS,EAAc3s+B,GAEnC,CAQA,OAPAj3C,KAAKum/B,iBAAmBvm/B,KAAKum/B,iBAAiBng/B,QAAO,SAAU8jC,GAAQ,OAAOA,EAAK9mC,OAAS,CAAG,IAC/FpD,KAAK6p+B,kBAAkBxj+B,SAAQ,SAAU6T,EAAGuS,GACpC4p/B,EAAc9p/B,SAASE,EAAM3V,WAAY,OACzCoD,EAAEql9B,YAAc82C,EAAc9p/B,SAASE,EAAM3V,WAAY,KAAKoX,MAAK,SAAUjY,EAAGC,GAAK,OAAOD,EAAEvU,UAAYwU,EAAExU,SAAW,IAE/H,IACA0hhC,EAAiB5zgC,QAAQ6zgC,GAClBD,CACX,CAEA,IADA,IAAIS,EAAc,EACThr+B,EAAK,EAAGD,EAAK4ivB,EAAO,GAAI3ivB,EAAKD,EAAGx1C,OAAQy1C,IAAM,CAEnDgr+B,GADiBjr+B,EAAGC,GACMo9jB,OAC9B,CACA,IAAK,IAAIl9jB,EAAK,EAAG+q+B,EAAgBlB,EAAa7p+B,EAAK+q+B,EAAc1ghC,OAAQ21C,IAAM,CAC3E,IAAI+3rB,KAAagzS,EAAc/q+B,IACpBk9jB,QAAU4ta,EACrBR,EAAYj3gC,KAAK0kuB,GAEjB,IADA,IAAIizS,EAAWt67B,GAAO,GAAI+xsB,EAAQ,MAAM,GAC/B16wB,EAAI,EAAG+m5B,EAAWk8G,EAAS3ghC,OAAQ0d,EAAI+m5B,EAAU/m5B,IAAK,CAC3D,GAAIA,IAAMijgC,EAAS3ghC,OAAS,EACxB,IAAK,IAAI01C,EAAK,EAAGohD,EAAK6p7B,EAASx3/B,SAASzL,EAAEhK,WAAY,KAAMgiC,EAAKohD,EAAG92F,OAAQ01C,IAAM,CAC9E,IAAIkr+B,EAAQ9p7B,EAAGphD,GACfkr+B,EAAM9jhC,KAAO4wuB,EAAW5wuB,KACxB8jhC,EAAMn8B,SAAW/2Q,EAAW+2Q,SAC5Bm8B,EAAMh1D,UAAYhv9B,KAAKmoC,OAAOio+B,gBAAgB4T,EAAMzsC,aAAaysC,EAAM75O,SAAS62O,kBAC5ElwS,EAAWk+O,UACfg1D,EAAM/0D,QAAUjv9B,KAAKmoC,OAAOio+B,gBAAgB4T,EAAMzsC,aAAaysC,EAAM75O,SAAS82O,gBAC1EnwS,EAAWm+O,OACnB,CAECm0D,EAAiB72/B,SAASzL,EAAEhK,WAAY,OACzCssgC,EAAiB72/B,SAASzL,EAAEhK,WAAY,KAAO,IAEnDssgC,EAAiB72/B,SAASzL,EAAEhK,WAAY,KAAOssgC,EAAiB72/B,SAASzL,EAAEhK,WAAY,KAAKsC,OAAO2qgC,EAASx3/B,SAASzL,EAAEhK,WAAY,KACvI,CACJ,CAEA,OADAssgC,EAAiB5zgC,QAAQ6zgC,GAClBD,CACX,EACAhH,EAAazrgC,UAAUij/B,kBAAoB,SAAUnd,EAAUt2K,GAC3D,IAAI7g0B,EAAQU,KACRgl/B,EAAY,SAAUv49B,EAAO2yF,EAAOx9G,GAChCtC,EAAM8v9B,mBAAmB7i8B,SAASE,EAAM3V,WAAY,KAAK41/B,eAAiBptgC,EAAM6oC,OAAOuz7B,kBAAkBp94B,MAAM4y7B,eAC/Gz6B,EAAS,GAAKr33B,GAAS,CAACx9G,GAGxB60+B,EAAS,GAAKr33B,GAASx9G,CAE/B,EAKA,QAJmB,IAAfu+zB,IACAA,EAAang0B,KAAKmoC,OAAO+27B,cAActuX,gBAAkB5wmB,KAAKmoC,OAAO+27B,cAAc/+J,WAC/Eng0B,KAAKmoC,OAAOu17B,gBAAgBv9J,YAEhCng0B,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,IAAM2oU,GAAkBo0f,GAE/E,IADA,IAAIi4K,EAAap4+B,KAAK6p+B,kBAAkBt98B,SAAS4zyB,EAAWrpzB,WAAY,KAAKsh+B,WACpE3r9B,EAAQ,EAAGA,EAAQzsB,KAAKov9B,mBAAmBhs9B,OAAQqpB,IACxDu49B,EAAUv49B,EAAOzsB,KAAKov9B,mBAAmB7i8B,SAASE,EAAM3V,WAAY,KAAKsoG,MAAOg53B,EAAW7r9B,SAASE,EAAM3V,WAAY,WAGzH,GAAI9W,KAAKmoC,OAAOin7B,mBAAmBhs9B,OAAS,EAC7C,IAASqpB,EAAQ,EAAGA,EAAQzsB,KAAKov9B,mBAAmBhs9B,OAAQqpB,IAAS,CACjE,IAAIyd,EAAOlqC,KAAKov9B,mBAAmB7i8B,SAASE,EAAM3V,WAAY,KAAKg8Z,WAAW,GAC1E5oY,GACA868B,EAAUv49B,EAAOzsB,KAAKov9B,mBAAmB7i8B,SAASE,EAAM3V,WAAY,KAAKsoG,MAAOl1E,EAAKlqC,KAAKov9B,mBAAmB7i8B,SAASE,EAAM3V,WAAY,KAAK0k+B,SAErJ,CAER,EACA4gC,EAAazrgC,UAAU+u+B,iBAAmB,SAAUjJ,EAAU2B,GAC1D,IAAI6rC,GAAoBl4sB,GAAkBqsqB,IACtCp4+B,KAAKqhhC,WAAajpC,EAAWh1+B,OAAS,EAAKg1+B,EAAWh1+B,OAAS,EAAIpD,KAAKqhhC,WACxEl3O,EAAWnqyB,KAAKov9B,mBAAmB7i8B,SAAS03/B,EAAgBntgC,WAAY,KAC5E,KAAIi1T,GAAkBqsqB,IAAep4+B,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAM4y7B,gBAAkB/mO,EAASuiO,eAApG,CAGA,IAAIv2+B,EAAK41S,GAAkBqsqB,GAAc3B,EAAStsM,EAAS/qrB,OAASg53B,EAAW7r9B,SAAS03/B,EAAgBntgC,WAAY,KAChHozB,EAAOlqC,KAAKkkhC,WAAW/5O,EAASr3X,WAAYq3X,EAASqxM,QAASrl9B,GAClE,OAAI+T,EAAK9mC,OAAS,EACP8mC,EAAK,GAAGigwB,EAASwyN,iBAD5B,CAHA,CAOJ,EACAyf,EAAazrgC,UAAU81+B,YAAc,SAAUhQ,GAC3C,IAAItsM,EAAWnqyB,KAAKov9B,mBAAmBx+8B,OAAO,GAAG,GACjD,IAAI5Q,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAM4y7B,iBAAkB/mO,EAASuiO,cAAnE,CAGA,IAAIxi+B,EAAOlqC,KAAKkkhC,WAAW/5O,EAASr3X,WAAYq3X,EAASqxM,QAAS/E,EAAStsM,EAAS/qrB,QACpF,OAAIl1E,EAAK9mC,OAAS,EACP8mC,EAAK,GAAGigwB,EAAS+2O,oBAD5B,CAFA,CAMJ,EACA9E,EAAazrgC,UAAUwzgC,uBAAyB,WAE5C,IAAIC,EAAgB,GAAGhrgC,OAAOD,MAAM,GAAInZ,KAAK6p+B,kBAAkB5j+B,KAAI,SAAU5F,GAAK,OAAOA,EAAEk/9B,WAAa,KAIpGA,EAAmC6kD,EAH0Bh+gC,QAAO,SAAUlG,EAAMusB,EAAOoyE,GAC3F,OAAOA,EAAM54F,KAAI,SAAUi9U,GAAW,OAAOA,EAAQxhV,SAAW,IAAGiJ,QAAQzK,EAAKwB,aAAe+qB,CACnG,IAGA,OADA8y8B,EAAYrx8B,MAAK,SAAUjY,EAAGC,GAAK,OAAOD,EAAEvU,UAAYwU,EAAExU,SAAW,IAC9D699B,CACX,EACA68C,EAAazrgC,UAAUuzgC,WAAa,SAAUpxmB,EAAY1zT,EAAOx9G,GAC7D,OAAOkxa,EAAW1sa,QAAO,SAAU8jC,GAAQ,OAAOA,EAAK,GAAKk1E,KAAWx9G,CAAO,GAClF,EACAw6gC,EAAazrgC,UAAUqggC,gBAAkB,SAAUv6B,EAAUhq9B,EAAO43/B,GAChE,GAAIrkhC,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAM4y7B,eAAgB,CAEpD,IADA,IAAI2P,EAAc,CAAC,EACVvxgC,EAAK,EAAGg1gC,EAAmBD,EAAgB/0gC,EAAKg1gC,EAAiBlhhC,OAAQkM,IAG9E,IAFA,IAAI6wzB,EAAamkN,EAAiBh1gC,GAC9B8wgC,EAAgBpghC,KAAK6p+B,kBAAkBt98B,SAAS4zyB,EAAWrpzB,WAAY,KAAKsh+B,WACvErm7B,EAAQ,EAAG827B,EAAWu3B,EAAch9gC,OAAQ2uD,EAAQ827B,EAAU927B,IAAS,CAC5E,IAAIijX,EAAYh1a,KAAKov9B,mBAAmB7i8B,SAASwlC,EAAMj7C,WAAY,KAAKsoG,MACpE2sN,GAAkB80sB,EAAY,GAAK7rmB,MACnC6rmB,EAAY,GAAK7rmB,GAAa,IAElC6rmB,EAAY,GAAK7rmB,GAAW5oa,KAAKg0gC,EAAc7z/B,SAASwlC,EAAMj7C,WAAY,KAC9E,CAEJ2/9B,EAAWht5B,GAAOgt5B,EAAUoqC,EAChC,KAES,CAAI9u9B,EAAQ,EAAjB,IAAK,IAAewy9B,EAAWvkhC,KAAKov9B,mBAAmBhs9B,OAAQ2uD,EAAQwy9B,EAAUxy9B,IACzE/xD,KAAK6p+B,kBAAkBt98B,SAASE,EAAM3V,WAAY,OAClD2/9B,EAASz2+B,KAAKov9B,mBAAmB7i8B,SAASwlC,EAAMj7C,WAAY,KAAKsoG,OAASp/G,KAAK6p+B,kBAAkBt98B,SAASE,EAAM3V,WAAY,KAAKsh+B,WAAW7r9B,SAASwlC,EAAMj7C,WAAY,KAFxH1T,CAM/D,EACAg5gC,EAAazrgC,UAAU6zgC,YAAc,SAAUl6f,EAAW5lhB,EAAM+nB,GAU5D,IATA,IAAI2i8B,EAAsB9kc,aAAqB55gB,MAAS45gB,EAAY,CAACA,GACjEm6f,EAAU,SAAUt6O,GACpB,GAAIA,EAASzlyB,OAASA,EAIlB,OAHA0q9B,EAAmB/o9B,SAAQ,SAAUq+gC,EAAQv4gC,GACzC,OAAO,IAAIk3a,GAAY,CAAEvrT,KAAMqyqB,EAASr3X,aAAcoG,OAAOwrmB,EAAQ,KAAM,KAAMj4/B,EAAQtgB,EAC7F,IACO,OAEf,EACSmD,EAAK,EAAGgmC,EAAKt1C,KAAKmoC,OAAOin7B,mBAAoB9/8B,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CAGxE,GAAgB,UADFm1gC,EADCnv+B,EAAGhmC,IAGd,KACR,CACAtP,KAAK+ghC,eAAc,EACvB,EACA3E,EAAazrgC,UAAUg0gC,eAAiB,SAAU7nC,EAAYp4+B,GAU1D,IATA,IAAI0q9B,EAAsB0tB,aAAsBps+B,MAASos+B,EAAa,CAACA,GACnE8nC,EAAU,SAAUz6O,GACpB,GAAIA,EAASzlyB,OAASA,EAIlB,OAHA0q9B,EAAmB/o9B,SAAQ,SAAUw+gC,GACjC,OAAO,IAAIxhmB,GAAY,CAAEvrT,KAAMqyqB,EAASr3X,aAAc3/Y,OAAOg3wB,EAASqxM,QAASqpC,EACnF,IACO,OAEf,EACSv1gC,EAAK,EAAGgmC,EAAKt1C,KAAKmoC,OAAOin7B,mBAAoB9/8B,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CAGxE,GAAgB,UADFs1gC,EADCtv+B,EAAGhmC,IAGd,KACR,CACAtP,KAAK+ghC,eAAc,EACvB,EACA3E,EAAazrgC,UAAU+q+B,uBAAyB,SAAUvl9B,EAAIzxB,EAAM6y+B,EAAcxg9B,EAAO0k9B,GAErF,GADA/2+B,EAAOA,GAAQ1E,KAAKmoC,OAAOin7B,mBAAmBx+8B,OAAO,GAAG,GAAGlM,KACvDqnU,GAAkBwrqB,IAEdxrqB,GADJwrqB,EAAev3+B,KAAKov9B,mBAAmBhp9B,QAAO,SAAU/F,GAAK,OAAOA,EAAEqE,OAASA,CAAM,IAAG,IAEpF,OAAO,KAGf,IAAIylyB,EAAWotM,EAAazkkB,WAAW1sa,QAAO,SAAU/F,GACpD,OAAI02B,GAAS12B,EAAEk3+B,EAAaiE,WAAarl9B,EACjC91B,EAAEk3+B,EAAajoB,gBAAkBv47B,EAAM,GAAK0k9B,GACrCp7+B,EAAEk3+B,EAAaiE,WAAarl9B,EAEhC,KAGA91B,EAAEk3+B,EAAaiE,WAAarl9B,CAE3C,IAAG,GACH,OAAQn2B,KAAK6p+B,kBAAkB5j+B,KAAI,SAAU5F,GAAK,OAAOA,EAAEk3+B,YAAc,IAAG5s+B,QAAQw/xB,EACxF,EACAiyO,EAAazrgC,UAAUm0gC,eAAiB,SAAU3u/B,EAAIzxB,EAAM64R,GACxD,IAAI4sgB,EAAWnqyB,KAAKmoC,OAAOin7B,mBAAmBhp9B,QAAO,SAAU/F,GAC3D,OAAIA,EAAEqE,OAASA,EACJrE,EAEJ,IACX,IAAG,GACCosB,EAAQ,EACR8q9B,EAAeptM,EAASr3X,WAAW1sa,QAAO,SAAU/F,GAAK,OAAOA,EAAE8pyB,EAASqxM,WAAarl9B,CAAI,IAAG,GAK/F1J,EAJCzsB,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAM2u7B,UAI7BjtgC,KAAK6p+B,kBAAkB5j+B,KAAI,SAAU5F,GAAK,OAAOA,EAAEk3+B,YAAc,IAAG5s+B,QAAQ4s+B,GAH5Ev3+B,KAAK07+B,uBAAuBvl9B,EAAIzxB,EAAMylyB,GAKlD,IAAI9hyB,EAASrI,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,IAAN,uBAAuEpjZ,EAAvE,OAC/BojZ,KACZxna,IACIA,EAAO6/Q,UAAUh1P,SAAS28Y,OAA+BtyI,GAGpDl1R,EAAO6/Q,UAAUh1P,SAAS28Y,MAAgCtyI,IAF/Dl1R,EAAO26Q,OAMnB,EACAo5vB,EAAazrgC,UAAUo0gC,eAAiB,SAAU5u/B,EAAIzxB,GAClD,KAAI1E,KAAKmoC,OAAOumrB,YAAc,CAAC,SAAU,eAAe/jtB,QAAQ3K,KAAKmoC,OAAOw/W,cAAgB,GAA5F,CAGA,IAAI4zlB,EAAY72+B,GAAQ1E,KAAKmoC,OAAOin7B,mBAAmBx+8B,OAAO,GAAG,GAAGlM,KAChE42+B,EAAat7+B,KAAKmoC,OAAOin7B,mBAAmBhs9B,OAAS,EACrD+myB,EAAWnqyB,KAAKmoC,OAAOin7B,mBAAmBhp9B,QAAO,SAAU/F,EAAGosB,GAC9D,OAAIpsB,EAAEqE,OAAS62+B,GACXD,EAAa7u9B,EACNpsB,GAEJ,IACX,IAAG,GACCg5R,EAAgBr5R,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KACxDpjZ,EAAQ,EACZ,GAAIzsB,KAAKmoC,OAAOyz7B,WAAWgJ,iBAAkB,CACzC,GAAK5k+B,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAM2u7B,UAGpC,CACD,IAAI11B,EAAeptM,EAASr3X,WAAW1sa,QAAO,SAAU/F,GACpD,OAAOA,EAAE8pyB,EAASqxM,WAAarl9B,CACnC,IAAG,GACH1J,EAAQzsB,KAAK6p+B,kBAAkB5j+B,KAAI,SAAU5F,GAAK,OAAOA,EAAEk3+B,YAAc,IAAG5s+B,QAAQ4s+B,EACxF,MAPI9q9B,EAAQzsB,KAAK07+B,uBAAuBvl9B,EAAIol9B,EAAWpxM,GAQvD,GAAInqyB,KAAKmoC,OAAO2h8B,oBAAqB,CACjC,IAAIC,EAAU/p+B,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KAClDm6jB,EAAmBpm+B,KAAKmgB,MAAMgm9B,EAAQh1sB,aAAe/0R,KAAKiq+B,kBAAkB7m+B,QAOhF,GANIpD,KAAKmoC,OAAOwi9B,gBACZtxtB,EAAclrI,UAAY,EAC1BnuJ,KAAKmoC,OAAO2h8B,oBAAoBI,oBAEpC7wsB,EAAclrI,UAAa1hI,EAAQu98B,GAAuBhq+B,KAAKmoC,OAAO2h8B,oBAAoB4pC,YAAc,GAAK1pC,EAC7Ghq+B,KAAKmoC,OAAO2h8B,oBAAoBI,mBAC5Blq+B,KAAKmoC,OAAOwi9B,eACR/k2B,EAAK5lJ,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,IAAuB,sBAAyBpjZ,EAAQ,SAC9Fm5H,EAAGiwI,cAAc3N,UAAUh1P,SAAS28Y,OAC3Cx2I,EAAclrI,UACTkrI,EAAclrI,UAAYvI,EAAGg9J,UAAah9J,EAAGg9J,UAAYvpB,EAAclrI,UAAYvI,EAAGg9J,gBAI/FvpB,EAAclrI,UAAa1hI,EAAQu98B,CAE3C,KACK,CACD,IAAIpk1B,KAAK5lJ,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,IAAuB,sBAAyBpjZ,EAAQ,SAC9Fm5H,EAAGiwI,cAAc3N,UAAUh1P,SAAS28Y,OAC3Cx2I,EAAclrI,UAAYvI,EAAGg9J,UAErC,CACJ,KACK,CAMOn2R,EALHzsB,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAM2u7B,UAIjC1xB,IAAcv7+B,KAAKmoC,OAAOin7B,mBAAmBx+8B,OAAO,GAAG,GAAGlM,KAClD1E,KAAK6p+B,kBAAkB5j+B,KAAI,SAAU5F,GAAK,OAAOA,EAAEk3+B,aAAaptM,EAASqxM,QAAU,IAAG7w+B,QAAQwrB,GAG9Fg0wB,EAASr3X,WAAW7sa,KAAI,SAAU5F,GAAK,OAAOA,EAAE8pyB,EAASqxM,QAAU,IAAG7w+B,QAAQwrB,GAPlFn2B,KAAK07+B,uBAAuBvl9B,EAAIol9B,EAAWpxM,GAUvD,IAAI66O,EAAehlhC,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,IAAuB,eAAiByrkB,EAAa,GAAK,KACjH599B,EAAS,GAAG9M,MAAMjR,KAAKqlhC,EAAal/gC,UAAUG,KAAI,SAAUiK,GAAQ,OAAOA,EAAKyyS,UAAY,IAChGtpB,EAAcprI,WAAavwI,EAAO6O,SAASE,EAAM3V,WAAY,IACjE,CAhEA,CAiEJ,EACAslgC,EAAazrgC,UAAUymI,QAAU,WAE7B,GADAp3I,KAAKmoC,OAAO3uB,IAAI4hH,IAAsBp7H,KAAKwt9B,eACvCxt9B,KAAKo/gC,YAAa,CAClB,GAAIp/gC,KAAKo/gC,YAAYtuqB,SAAW9wW,KAAKo/gC,YAAYtuqB,QAAQ1tW,OAAS,EAAG,CACjE,IAAI6hhC,EAAoBjlhC,KAAKo/gC,YAAYtuqB,QAAQ7qW,KAAI,SAAUiU,GAAK,OAAOA,EAAEwwH,QAAU,IACnFu64B,EAAkB7hhC,OAAS,GAC3BpD,KAAKmoC,OAAO6ylB,eAAeiqZ,EAEnC,CACAjlhC,KAAKo/gC,YAAYho4B,UACjBp3I,KAAKo/gC,YAAc,IACvB,CACIp/gC,KAAKw/gC,YACLx/gC,KAAKw/gC,UAAUpo4B,UACfp3I,KAAKw/gC,UAAY,KACjBrs/B,GAAOnzB,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,MAC/C18Y,GAAOnzB,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,OAEnD,IAAIq1mB,EAAgBllhC,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KACxDq1mB,GACA/x/B,GAAO+x/B,EAEf,EACO9I,CACX,CAxkCkC,GCV9Bl29B,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAazC2pS,IAA0C,SAAUxoJ,EAAYl/L,EAAQiE,EAAKkkB,GAC7E,IAA2HhvB,EAAvH6e,EAAIld,UAAUC,OAAQkgH,EAAIjjG,EAAI,EAAIhY,EAAkB,OAATmoB,EAAgBA,EAAO/wB,OAAOk+B,yBAAyBt1B,EAAQiE,GAAOkkB,EACrH,GAAuB,kBAAZuN,SAAoD,oBAArBA,QAAQiyT,SAAyB1sO,EAAIvlF,QAAQiyT,SAASzoJ,EAAYl/L,EAAQiE,EAAKkkB,QACpH,IAAK,IAAIrkB,EAAIo7L,EAAWnkM,OAAS,EAAG+I,GAAK,EAAGA,KAAS3K,EAAI+lM,EAAWp7L,MAAIm3G,GAAKjjG,EAAI,EAAI7e,EAAE8hH,GAAKjjG,EAAI,EAAI7e,EAAE6G,EAAQiE,EAAKg3G,GAAK9hH,EAAE6G,EAAQiE,KAASg3G,GAChJ,OAAOjjG,EAAI,GAAKijG,GAAK7jH,OAAO4c,eAAehU,EAAQiE,EAAKg3G,GAAIA,CAChE,EA8CI6h6B,IAA0B,SAAUr+9B,GAQpC,SAASq+9B,EAASrmgC,EAAS3J,GACvB,OAAO2xC,EAAOnnD,KAAKK,KAAM8e,EAAS3J,IAAYnV,IAClD,CA+zFA,OAx0FAkmD,IAAUi/9B,EAAUr+9B,GAgBpBq+9B,EAASx0gC,UAAUyJ,OAAS,WACxB,IAAI6wU,EAAa,GACb1iE,EAAgB,GAoBpB,GAnBA0iE,EAAW7+U,KAAKyja,KACZ7va,KAAKq4V,UACLpN,EAAW7+U,KAAKyja,KAGhBtnJ,EAAcn8Q,KAAKyja,KAEnB7va,KAAK0utB,WACLzjY,EAAW7+U,KAAKyja,KAGhBtnJ,EAAcn8Q,KAAKyja,KAEnB7va,KAAKolhC,eACLn6rB,EAAW7+U,KAAKyja,KAGhBtnJ,EAAcn8Q,KAAKyja,KAEnB7va,KAAK4vW,SAEL,IADA,IACStgW,EAAK,EAAG+1gC,EADFrlhC,KAAK4vW,SAASj9U,MAAM,KACKrjB,EAAK+1gC,EAAWjihC,OAAQkM,IAAM,CAClE,IAAIg2gC,EAAQD,EAAW/1gC,GACvB27U,EAAW7+U,KAAKk5gC,EACpB,CAEJp9vB,GAAUloR,KAAKmV,QAAS81U,EAAY1iE,GACpCvoR,KAAKi9K,eACL4vP,GAAc,CAAExka,OAAQrI,KAAKmV,UAC7BnV,KAAK25hB,aAAe,IAAI3xY,IAAOhoJ,MAC/BA,KAAK25hB,aAAa32O,WAClBhjT,KAAK25hB,aAAaxP,YAClBnqhB,KAAK+lhB,aAAe,IAAI3hB,IAAOpkgB,MAC/BA,KAAK0k+B,UAAY,IAAI6Q,IAAUv1+B,MAC/BA,KAAKulhC,eAAiB,IAAI/J,IAAoBx7gC,MAC1CA,KAAKiqgC,2BACLjqgC,KAAKk7+B,0BAA4B,IAAIza,IAAoBzg+B,OAE7DA,KAAKwi+B,aAAe,IAAI6vB,IAAWry/B,MACnCA,KAAKwlhC,uBACLxlhC,KAAKylhC,uBACLzlhC,KAAK079B,kBAAoB179B,KAAK0lhC,uBAC9B1lhC,KAAK2lhC,sBACL3lhC,KAAK+jW,YACT,EACAohrB,EAASx0gC,UAAU80gC,qBAAuB,WACjCzlhC,KAAKmV,QAAQykB,cAAc,IAAMi2Y,MAClC7va,KAAKmV,QAAQuc,YAAY1xB,KAAKc,cAAc,MAAO,CAAEC,UAAW8ua,MAExE,EAQAs1mB,EAASx0gC,UAAU+7gB,gBAAkB,SAAU5lhB,GACvC9G,KAAKywW,QACLzwW,KAAKs6V,qBAAqBxzV,GAErBA,GACLA,GAER,EAQAq+gC,EAASx0gC,UAAUqqnB,eAAiB,SAAU1S,IACtCtonB,KAAKkjZ,WAAaljZ,KAAKywW,UACvBzwW,KAAKu6V,cAAc+tR,EAE3B,EASA68Z,EAASx0gC,UAAUi7B,SAAW,SAAUhqC,EAAOuT,GACvCnV,KAAK+sb,oBACL53a,EAAQ+2C,UAAYkiT,GAAmBxiU,SAAShqC,GAGhDuT,EAAQ+zB,UAAYtnC,CAE5B,EACAujhC,EAASx0gC,UAAUg1gC,oBAAsB,SAAU/E,QAC5B,IAAfA,IAAyBA,GAAa,GACtC5ghC,KAAKsqhB,UAAUlnhB,OAAS,GACxBpD,KAAK4p+B,aAAe,IAAIwyC,IAAap8gC,MACrCA,KAAK4p+B,aAAa+2C,kBAAkBC,KAGpC5ghC,KAAK4p+B,aAAe,KACpB5p+B,KAAKov9B,mBAAqB,GAC1Bpv9B,KAAK+58B,eAAe6mE,GAE5B,EAQAuE,EAASx0gC,UAAUop8B,eAAiB,SAAU6rE,GAC1C,GAAIA,EAGA,OAFA5lhC,KAAK6lhC,eAAe7lhC,KAAK2nZ,kBACzB3nZ,KAAKg+9B,YAAYnloB,UAGrB74V,KAAK8lhC,sBACD9lhC,KAAK+lhC,gBACL/lhC,KAAK6ipB,aAAe,IAAIy3U,IAAet69B,OAE3CA,KAAKylhC,wBACDx+rB,GAAQM,UAAYN,GAAQK,WAC5BtnV,KAAKgmhC,oBAAsB,IAAIlnD,IAAc9+9B,OAEjDA,KAAK6lhC,eAAe7lhC,KAAK2nZ,aACzB3nZ,KAAKimhC,gBACAjmhC,KAAKy6mB,YACNz6mB,KAAKkmhC,kBAEb,EACAf,EAASx0gC,UAAUssK,aAAe,SAAUirO,QACnB,IAAjBA,IAA2BA,EAAeloZ,KAAKkoZ,cAEnD,IAAIhoZ,EAAOgoZ,aAAwBzmZ,KAAO,IAAIA,KAAKymZ,EAAaxmZ,WAAa,IAAID,KAAKymZ,GAClF3qB,EAAUv9X,KAAKu9X,mBAAmB97X,KAAO,IAAIA,KAAKzB,KAAKu9X,QAAQ77X,WAAa,IAAID,KAAKzB,KAAKu9X,SAC1FC,EAAUx9X,KAAKw9X,mBAAmB/7X,KAAO,IAAIA,KAAKzB,KAAKw9X,QAAQ97X,WAAa,IAAID,KAAKzB,KAAKw9X,SAC9F,KAAID,GAAWC,GAaX,MAAMzwW,MAAM,gDAZR7sB,EAAOq9X,IACPr9X,EAAOq9X,GAEPr9X,EAAOs9X,IACPt9X,EAAOs9X,GAEXx9X,KAAKisV,cAAc,CAAEi8D,aAAc,IAAIzmZ,KAAK,GAAKvB,GAAOq9X,QAAS,IAAI97X,KAAK,GAAK87X,GAAUC,QAAS,IAAI/7X,KAAK,GAAK+7X,KAAY,GACxHx9X,KAAKg+9B,aACLh+9B,KAAKg+9B,YAAYiuC,0BAM7B,EACAkZ,EAASx0gC,UAAUw1gC,aAAe,SAAUpqD,GACxC,IAAK,IAAIxm8B,EAAO,EAAGA,EAAOv1B,KAAKmn+B,gBAAgB/j+B,OAAQmyB,IAAQ,CAE3D,GADiBv1B,KAAKmn+B,gBAAgB568B,SAASgJ,EAAKze,WAAY,KAAK8mS,SAClDm+qB,EACf,OAAOxm8B,CAEf,CACA,OAAQ,CACZ,EACA4v/B,EAASx0gC,UAAUy1gC,eAAiB,SAAUC,GAI1C,IAAItqD,EACAuqD,OAJiB,IAAjBD,IAA2BA,GAAe,GAC9CrmhC,KAAK67gC,YAAc,CAAC,EACpB77gC,KAAKmn+B,gBAAkB,GAGvB,IAAI/t2B,EAAYp5H,KAAKw79B,UACjB5w8B,EAAQ,EACZ5qB,KAAKw79B,WAAa,EAClB,IAAK,IAAIls9B,EAAK,EAAGgmC,EAAKt1C,KAAKu89B,MAAOjt9B,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CACpD,IAAIwpB,EAAOwc,EAAGhmC,GACVi3gC,EAA6B,kBAATzt/B,EACJ,kBAATA,GACPij8B,EAAWjj8B,EACP94B,KAAK2nZ,cAAgBo0kB,IACrBuqD,EAAevqD,EACf/79B,KAAKw79B,UAAY5w8B,KAIrBmx8B,EAAWjj8B,EAAK8kR,OACZ9kR,EAAK6ia,aACL2qlB,EAAevqD,EACf/79B,KAAKw79B,UAAY5w8B,IAGzB,IAAI/Z,EAAM44E,GAAO,CAAEm0N,OAAQm+qB,GAAYwqD,EAAYzt/B,EAAO,CAAC,GACvD0t/B,EAAgBzqD,EAAS535B,OAAO,GAAGzjD,cAAgBq78B,EAASnr9B,MAAM,GACtEC,EAAI41gC,uBAAyB51gC,EAAI61gC,mBAAqB71gC,EAAI+sS,OAAS,GACnE/sS,EAAI81gC,uBAAyB91gC,EAAI+1gC,mBAAqB/1gC,EAAI+sS,OAAS,GACnE/sS,EAAImr9B,sBAAwBnr9B,EAAI8q9B,kBAAoB9q9B,EAAI+sS,OAAS,GACjE/sS,EAAIg2gC,iBAAmBh2gC,EAAIuqmB,aAAevqmB,EAAI+sS,OAAS,GACvD/sS,EAAIi2gC,sBAAwBj2gC,EAAIk2gC,kBAAoBl2gC,EAAI+sS,OAAS,GACjE/sS,EAAIm2gC,wBAA0Bn2gC,EAAIo2gC,oBAAsBp2gC,EAAI+sS,OAAS,GACrE/sS,EAAIq2gC,2BAA6Br2gC,EAAIktgC,uBAAyBltgC,EAAI+sS,OAAS,GAC3E/sS,EAAIs2gC,yBAA2Bt2gC,EAAI4rgC,qBAAuB5rgC,EAAI+sS,OAAS,GACvE/sS,EAAIqv+B,kBAAoBrv+B,EAAImv+B,cAAgBnv+B,EAAI+sS,OAAS,GACpDmuB,GAAkBl7T,EAAI5E,iBAA0C,IAAvB4E,EAAI5E,uBACvC4E,EAAI5E,eAEV8/T,GAAkBl7T,EAAI28T,WAA8B,IAAjB38T,EAAI28T,iBACjC38T,EAAI28T,SAEfxtU,KAAKmn+B,gBAAgB/69B,KAAKyE,GACtBk7T,GAAkB/rU,KAAK67gC,YAAY,GAAK2K,IACxCxmhC,KAAK67gC,YAAY,GAAK2K,GAAiB,CAAC31gC,GAGxC7Q,KAAK67gC,YAAY,GAAK2K,GAAep6gC,KAAKyE,GAE9C+Z,GACJ,CAIA,IAHKy7/B,GAAgBC,GACjBtmhC,KAAKisV,cAAc,CAAE07D,YAAa2+nB,IAAgB,IAE9B,IAApBtmhC,KAAKw79B,UAAkB,CACvB,IAAI52Z,EAAe5kkB,KAAKmmhC,aAAanmhC,KAAK2nZ,aAC1C3nZ,KAAKw79B,UAAuC,kBAAlBx79B,KAAKu89B,MAAM,IAAsBxwpB,GAAkB3yM,KAA6B,IAAfA,GACpE,IAAlBwrc,EAAuB,EAAIA,EADgFxrc,CAEpH,CACJ,EACA+r5B,EAASx0gC,UAAU+0gC,qBAAuB,WACtC,IAAI/nD,EAAY,CACZhtkB,OAAQ3wZ,KAAK299B,UAAUhtkB,OACvBnjF,SAAUxtU,KAAK299B,UAAUnwpB,SACzBowpB,UAAW599B,KAAK299B,UAAUC,UAC1BwpD,kBAAmBpnhC,KAAK299B,UAAUypD,kBAClCC,kBAAmBrnhC,KAAK299B,UAAU0pD,mBAGlC/o8B,EAAQ,CACRw75B,SAFa95+B,KAAKmn+B,gBAAgBnn+B,KAAKw79B,WAAW59qB,OAAOjzS,QAAQ,SAAW,IAE/C3K,KAAKs+E,MAAMw75B,OACxCmzB,UAAWjtgC,KAAKs+E,MAAM2u7B,UACtBiE,eAAgBlxgC,KAAKs+E,MAAM4y7B,eAC3B5mf,UAAWtqhB,KAAKs+E,MAAMgsc,UACtB0ze,sBAAuBh+/B,KAAKs+E,MAAM0/6B,sBAClCuZ,kBAAmBv3gC,KAAKs+E,MAAMi57B,kBAC9BpxB,mBAAoB,CAAC,MAAO,OAAQ,WAAY,SAASx7+B,QAAQ3K,KAAK2nZ,cAAgB,GAAI3nZ,KAAKs+E,MAAM6n6B,oBAErG0B,EAAW7n/B,KAAKmn+B,gBAAgBnn+B,KAAKw79B,WAAWqsB,SAAW,GAAK7n/B,KAAK6n/B,SACrEy/B,EAAkB,CAClBh46B,WAAYtvG,KAAKsvG,WACjB2/2B,QAASjv9B,KAAKiv9B,QACdtzhB,YAAY,EACZ/9I,OAAQ,KACR2gG,SAAUv+Y,KAAKu+Y,SACfywkB,UAAWhv9B,KAAKgv9B,UAChBs1B,uBAAuB,EACvBoiC,mBAAoB1mhC,KAAK0mhC,mBACzBK,kBAAmB/mhC,KAAK+mhC,kBACxBE,oBAAqBjnhC,KAAKinhC,oBAC1B7ra,aAAcp7mB,KAAKo7mB,aACnB4kY,cAAehg/B,KAAKo89B,cAAc747B,SAClCqj/B,mBAAoB5mhC,KAAK4mhC,mBACzBjrD,kBAAmB379B,KAAK279B,kBACxBoiD,uBAAwB/9gC,KAAK+9gC,uBAC7BtB,qBAAsBz8gC,KAAKy8gC,qBAC3B8K,iBAAkBvnhC,KAAKunhC,iBACvBt7gC,eAAgBjM,KAAKiM,eACrB47+B,SAAUA,EACV2/B,YAAaxnhC,KAAKwnhC,YAClBztC,YAAa/5+B,KAAK+5+B,YAClB6R,eAAgB5r/B,KAAK4r/B,eACrBh62B,YAAa,KACb47L,SAAU,EACVmwpB,UAAWA,EACXpu3B,WAAYvvG,KAAKynhC,mBACjBnp8B,MAAOA,EACP4vlB,WAAYluqB,KAAKkuqB,WACjBx4H,YAAa,aACb8nb,cAAe,EACf/xlB,YAAa,MAEbowoB,EAAc77gC,KAAKmn+B,gBAAgBnn+B,KAAKw79B,WACxCksD,EAAYj+7B,GAAO697B,EAAiBzL,OAAax4gC,GAAW,GAQhE,OAP4B,IAAxBrD,KAAKiM,gBAAwB4vgC,EAAY5vgC,gBAAkBjM,KAAKiM,iBAAmB4vgC,EAAY5vgC,iBAC/Fy7gC,EAAUz7gC,eAAiBjM,KAAKiM,gBAEhCy7gC,EAAUj8oB,cACVi8oB,EAAUj8oB,YAAci8oB,EAAUj8oB,uBAAuBhqY,KAAO,IAAIA,KAAKimhC,EAAUj8oB,YAAY/pY,WAC3F,IAAID,KAAKimhC,EAAUj8oB,cAEpBi8oB,CACX,EACAvC,EAASx0gC,UAAU60gC,qBAAuB,WACtCxlhC,KAAK2m+B,YAAc,CACfxw8B,GAAIn2B,KAAKo89B,cAAcjpwB,OAAOh9L,GAC9Bkg9B,QAASr2+B,KAAKo89B,cAAcjpwB,OAAOkjxB,QACnC/+hB,QAASt3c,KAAKo89B,cAAcjpwB,OAAOmkP,QAAQ5yc,KAC3CqyK,UAAW/2K,KAAKo89B,cAAcjpwB,OAAOp8C,UAAUryK,KAC/CgoY,QAAS1sY,KAAKo89B,cAAcjpwB,OAAOu5K,QAAQhoY,KAC3Cwy+B,cAAel3+B,KAAKo89B,cAAcjpwB,OAAO+jxB,cAAcxy+B,KACvDyy+B,YAAan3+B,KAAKo89B,cAAcjpwB,OAAOgkxB,YAAYzy+B,KACnDizB,SAAU33B,KAAKo89B,cAAcjpwB,OAAOx7L,SAASjzB,KAC7C2jD,YAAaroD,KAAKo89B,cAAcjpwB,OAAO9qK,YAAY3jD,KACnDq59B,SAAU/99B,KAAKo89B,cAAcjpwB,OAAO4qwB,SAASr59B,KAC7Cox+B,aAAc91+B,KAAKo89B,cAAcjpwB,OAAO2ixB,aAAapx+B,KACrD2m+B,eAAgBrr+B,KAAKo89B,cAAcjpwB,OAAOk4wB,eAAe3m+B,KACzDw4+B,oBAAqBl9+B,KAAKo89B,cAAcjpwB,OAAO+pxB,oBAAoBx4+B,KACnEu6Y,WAAYj/Y,KAAKo89B,cAAcjpwB,OAAO8rL,WACtCu+lB,YAAax9+B,KAAKo89B,cAAcjpwB,OAAOqqxB,aAE3Cx9+B,KAAK2nhC,kBACL3nhC,KAAK+3+B,WAAa,IAAIxoY,IAAKvvmB,KAAMA,KAAKo89B,cAActpjB,WAAY9ya,KAAKo89B,cAAcptyB,OACnFhvL,KAAKug+B,WAAa,IAAIu3C,IAAK93gC,KAC/B,EACAmlhC,EAASx0gC,UAAUg3gC,gBAAkB,WACjC3nhC,KAAKirgC,aAAe,CAChB3zjB,QAASt3c,KAAKo89B,cAAcjpwB,OAAOmkP,QAAQxic,OAAS9U,KAAKqrgB,UAAUtlK,YAAY,SAC/EhvL,UAAW/2K,KAAKo89B,cAAcjpwB,OAAOp8C,UAAUjiK,OAAS9U,KAAKqrgB,UAAUtlK,YAAY,SACnF2mC,QAAS1sY,KAAKo89B,cAAcjpwB,OAAOu5K,QAAQ53X,OAAS9U,KAAKqrgB,UAAUtlK,YAAY,OAC/Eg4nB,SAAU/99B,KAAKo89B,cAAcjpwB,OAAO4qwB,SAASjp9B,OAAS9U,KAAKqrgB,UAAUtlK,YAAY,UACjFmxoB,cAAel3+B,KAAKo89B,cAAcjpwB,OAAO+jxB,cAAcpi+B,OAAS9U,KAAKqrgB,UAAUtlK,YAAY,iBAC3FoxoB,YAAan3+B,KAAKo89B,cAAcjpwB,OAAOgkxB,YAAYri+B,OAAS9U,KAAKqrgB,UAAUtlK,YAAY,eACvFpuU,SAAU33B,KAAKo89B,cAAcjpwB,OAAOx7L,SAAS7iB,OAAS9U,KAAKqrgB,UAAUtlK,YAAY,YACjF19S,YAAaroD,KAAKo89B,cAAcjpwB,OAAO9qK,YAAYvzC,OAAS9U,KAAKqrgB,UAAUtlK,YAAY,eACvFsloB,eAAgBrr+B,KAAKo89B,cAAcjpwB,OAAOk4wB,eAAev29B,OAAS9U,KAAKqrgB,UAAUtlK,YAAY,UAErG,EACAo/qB,EAASx0gC,UAAUk1gC,eAAiB,SAAU9pD,GAC1C/79B,KAAK2xa,cACL3xa,KAAK079B,kBAAoB179B,KAAK0lhC,uBAC1B1lhC,KAAK4p+B,cACL5p+B,KAAK4p+B,aAAau3C,wBAEtBnhhC,KAAK4nhC,sBACL5nhC,KAAK+lhB,aAAa3rgB,OAAO2h9B,EAC7B,EACAopD,EAASx0gC,UAAUi3gC,oBAAsB,WACrC5nhC,KAAK6nhC,qBAAuB7nhC,KAAK+v3B,eAAe/v3B,KAAK079B,kBAAkBgrD,oBACvE1mhC,KAAK8nhC,oBAAsB9nhC,KAAK+v3B,eAAe/v3B,KAAK079B,kBAAkBqrD,mBACtE/mhC,KAAK+nhC,sBAAwB/nhC,KAAK+v3B,eAAe/v3B,KAAK079B,kBAAkBurD,qBACxEjnhC,KAAKgohC,eAAiBhohC,KAAK+v3B,eAAe/v3B,KAAK079B,kBAAkBtgX,cACjEp7mB,KAAKiohC,qBAAuBjohC,KAAK+v3B,eAAe/v3B,KAAK079B,kBAAkBkrD,oBACvE5mhC,KAAKkohC,oBAAsBlohC,KAAK+v3B,eAAe/v3B,KAAK079B,kBAAkBC,mBACtE379B,KAAKmohC,oBAAsBnohC,KAAK+v3B,eAAe/v3B,KAAK079B,kBAAkBiC,UAAUypD,mBAChFpnhC,KAAKoohC,oBAAsBpohC,KAAK+v3B,eAAe/v3B,KAAK079B,kBAAkBiC,UAAU0pD,mBAChFrnhC,KAAKqohC,sBAAwBrohC,KAAK+v3B,eAAe/v3B,KAAK079B,kBAAkBskB,eACxEhg/B,KAAKsohC,yBAA2BtohC,KAAK+v3B,eAAe/v3B,KAAK079B,kBAAkBqiD,wBAC3E/9gC,KAAKuohC,uBAAyBvohC,KAAK+v3B,eAAe/v3B,KAAK079B,kBAAkB+gD,sBACzEz8gC,KAAKwohC,wBAA0BxohC,KAAK+v3B,eAAe/v3B,KAAK079B,kBAAkBp94B,MAAM0/6B,uBAChFh+/B,KAAKyohC,uBAAyBzohC,KAAK+v3B,eAAe/v3B,KAAKo89B,cAAciiC,iBACrEr+/B,KAAK0ohC,iBAAmB1ohC,KAAK+v3B,eAAe/v3B,KAAK0pgC,gBACjD1pgC,KAAK2ohC,2BAA6B3ohC,KAAK+v3B,eAAe/v3B,KAAKw4/B,mBAAmB9p0B,QAC9E1uL,KAAK4ohC,4BAA8B5ohC,KAAK+v3B,eAAe/v3B,KAAKw4/B,mBAAmBzj/B,SAC/E/U,KAAK6ohC,2BAA6B7ohC,KAAK+v3B,eAAe/v3B,KAAKw4/B,mBAAmB9r/B,OAClF,EACAy4gC,EAASx0gC,UAAUu1gC,iBAAmB,WAClClmhC,KAAKg+9B,YAAc,IAAI+qC,IAAY/ogC,MACnCA,KAAKgg+B,WAAa,IAAI40B,IAAY50/B,KACtC,EAQAmlhC,EAASx0gC,UAAUm4gC,YAAc,SAAUl8gC,GACvC,IACIu5Y,EADAC,EAAgB,GAKhBD,EAFgB,OAAhBnmZ,KAAKD,QAAmC,UAAhBC,KAAKD,OAElB8a,GADC,oBACoBjO,EAAM0zU,GAAqBtgV,KAAKs89B,oBAIrDzh9B,GADC,QAAe7a,KAAKD,OAAS,oBAAsBC,KAAKs89B,kBAAoB,gBAAkB1v9B,EAC3EmyU,IAEnC,IAAK,IAAIzvU,EAAK,EAAGgmC,EAAK71C,OAAO8E,KAAK4hZ,GAAU72Y,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CAC9D,IAAIuB,EAAMykC,EAAGhmC,GACb82Y,EAAch6Y,KAAKyO,GAAShK,EAAKs1Y,GACrC,CACA,OAAOC,CACX,EACA++nB,EAASx0gC,UAAUo4gC,kBAAoB,WAC9Bh9sB,GAAkB/rU,KAAKuvG,YAIR,OAAhBvvG,KAAKD,QAAmC,UAAhBC,KAAKD,OAC7BC,KAAKynhC,mBAAsB5sgC,GAAS,oBAAqBylU,GAAqBtgV,KAAKs89B,oBAGnFt89B,KAAKynhC,mBAAsB5sgC,GAAS,QAAe7a,KAAKD,OAAS,oBAAsBC,KAAKs89B,kBAAoB,qBAAsBv9oB,IAPtI/+U,KAAKynhC,mBAAqBznhC,KAAKuvG,UASvC,EAOA416B,EAASx0gC,UAAU2r9B,gBAAkB,WACjC,OAAOt89B,KAAKsjZ,aAAa5iY,aAC7B,EAQAykgC,EAASx0gC,UAAUo2+B,cAAgB,SAAU7m/B,GAKzC,OAJWF,KAAKujZ,UAAU9jE,WAAWv/U,EAAM,CACvCmlB,OAAQrlB,KAAK079B,kBAAkBns3B,WAC/B3iG,KAAM,OAAQ+uF,SAAU37F,KAAKs89B,oBAErB/kkB,mBAChB,EAQA4tnB,EAASx0gC,UAAUutX,YAAc,SAAUh+X,GACvC,OAAOA,aAAgBuB,KAAO,IAAIA,KAAKvB,EAAKwB,WAAa,IAAID,KAAKvB,EACtE,EACAilhC,EAASx0gC,UAAUq4gC,gBAAkB,WACP,YAAtBhphC,KAAKsjZ,aACLtjZ,KAAKiu+B,aAAe,IAAI5B,IAGxBrs+B,KAAKiu+B,aAAe,IAAI1C,GAEhC,EAWA45C,EAASx0gC,UAAU0s9B,WAAa,SAAUvk8B,EAAM/B,EAAOm1T,EAAcz/T,GACjE,IAAIntB,EAAQU,KAIZ,GAHI+rU,GAAkBt/S,KAClBA,EAAQzsB,KAAKmmhC,aAAart/B,OAEzBozT,GAAgBz/T,IAAUzsB,KAAKw79B,WAAax79B,KAAK2nZ,cAAgB7uX,GAAQrM,EAAQ,GAAtF,CAGA,IAAIw8/B,EAAejphC,KAAK079B,kBAAoB179B,KAAK079B,kBAAkB99qB,OAAS59S,KAAK2nZ,YAC7E1uY,EAAO,CAAE0+Z,YAAa,eAAgB72V,QAAQ,EAAO/pD,MAAOA,GAChE/2B,KAAKsgS,QAAQllK,IAAoBniH,GAAM,SAAU8jnB,GAC7C,GAAKA,EAAWj8iB,OA2BZxhF,EAAMqoZ,YAAcshoB,MA3BA,CACpB,IAAI5oD,EAAU,CACVnr5B,OAAQ,OAAQ4L,QAAQ,EAAOuwB,YAAa/xG,EAAM4oZ,aAAc+goB,aAAcA,EAActhoB,YAAa7uX,EAAM0i8B,UAAW/u8B,GAE9HntB,EAAMghS,QAAQllK,IAAmBil2B,GAAS,SAAU6oD,GAChD,GAAKA,EAAepo8B,OAiBhBxhF,EAAMqoZ,YAAcshoB,MAjBI,CACxB,IAAI7tvB,EAAa,CAAC,MAAO,OAAQ,YAAYzwR,QAAQmuB,IAAS,GAAK,CAAC,MAAO,OAAQ,YAAYnuB,QAAQs+gC,GAAgB,EACvH3phC,EAAM4/9B,cAAcl4hB,UAAY5rK,GAActiQ,EAAKnuB,QAAQ,aAAe,GAAKmuB,EAAKnuB,QAAQ,SAAW,EACvGrL,EAAM4/9B,cAAchx0B,IAAMp1H,EAAKnuB,QAAQ,aAAe,GAAKs+gC,EAAat+gC,QAAQ,YAAc,EAAI,EAAIrL,EAAM4/9B,cAAchx0B,IAC1H5uJ,EAAMk89B,UAAY0tD,EAAe1tD,UACjCl89B,EAAM2sV,cAAc,CAAE07D,YAAa7uX,IAAQ,GACvCx5B,EAAMujpB,eACNvjpB,EAAMujpB,aAAak4U,mBACnBz79B,EAAMujpB,aAAau4U,gBAAgB979B,EAAM4oZ,cACzC5oZ,EAAMujpB,aAAay4U,mBAEvBh89B,EAAMumhC,eAAevmhC,EAAMqoZ,aAC3BroZ,EAAM6phC,gBACNlwgC,EAAO,CAAE0+Z,YAAa,eAAgB72V,QAAQ,EAAO/pD,MAAOA,GAC5Dz3B,EAAMghS,QAAQllK,IAAuBniH,EACzC,CAIJ,GACJ,CAIJ,GAjCA,CAkCJ,EASAksgC,EAASx0gC,UAAUss9B,WAAa,SAAU/0kB,EAAcnxX,GACpD,IAAIz3B,EAAQU,KACRiZ,EAAO,CAAE0+Z,YAAa,eAAgB72V,QAAQ,EAAO/pD,MAAOA,GAChE/2B,KAAKsgS,QAAQllK,IAAoBniH,GAAM,SAAU8jnB,GAC7C,IAAKA,EAAWj8iB,OAAQ,CACpB,IAAIu/4B,EAAU,CACVnr5B,OAAQ,OAAQ4L,QAAQ,EAAO0wU,aAAclyZ,EAAM4oZ,aAAc72S,YAAa62S,GAElF5oZ,EAAMghS,QAAQllK,IAAmBil2B,GAAS,SAAU6oD,GAC3CA,EAAepo8B,SAChBxhF,EAAM4/9B,cAAcl4hB,UAAY1nc,EAAMs89B,WAAWgJ,kBAA0C,iBAAtBtl+B,EAAMqoZ,YAC3EroZ,EAAM29K,aAAais2B,EAAe736B,aAC9B/xG,EAAMujpB,cACNvjpB,EAAMujpB,aAAau4U,gBAAgB8tD,EAAe736B,aAE5B,gBAAtB/xG,EAAMqoZ,aAAiCroZ,EAAM03gC,oBAC7C13gC,EAAM03gC,kBAAkBoS,gBAAkB,IAAI3nhC,KAAK,GAAKnC,EAAM4oZ,eAElE5oZ,EAAMumhC,eAAevmhC,EAAMqoZ,aAC3BroZ,EAAM6phC,gBACNlwgC,EAAO,CAAE0+Z,YAAa,eAAgB72V,QAAQ,EAAO/pD,MAAOA,GAC5Dz3B,EAAMghS,QAAQllK,IAAuBniH,GAE7C,GACJ,CACJ,GACJ,EAQAksgC,EAASx0gC,UAAU8m/B,aAAe,SAAUv3/B,GAExC,YADa,IAATA,IAAmBA,EAAOF,KAAKkoZ,cAC1BhoZ,EAAKwB,WAAa1B,KAAKu9X,QAAQ77X,WAAexB,EAAKwB,WAAa1B,KAAKw9X,QAAQ97X,SAC1F,EAQAyjhC,EAASx0gC,UAAU4s9B,eAAiB,SAAUr99B,GAC1C,OAAOA,EAAKuC,SAAS,EAAG,EAAG,EAAG,KAAO,IAAIhB,KAAK,GAAKzB,KAAKkoZ,cAAczlZ,SAAS,EAAG,EAAG,EAAG,EAC5F,EAQA0ihC,EAASx0gC,UAAU2s9B,eAAiB,SAAUp99B,GAE1C,YADa,IAATA,IAAmBA,EAAO,IAAIuB,MAC9BzB,KAAKs6K,SACEt6K,KAAKk99B,SAASzu5B,QAAQvuE,EAAMF,KAAKk99B,SAASC,uBAAwBn99B,KAAKs6K,UAE3Ep6K,CACX,EAMAilhC,EAASx0gC,UAAUsz9B,gBAAkB,WACjC,OAAIjk+B,KAAK479B,WAAWgJ,iBACY,kBAArB5k+B,KAAK2nZ,aAAwD,iBAArB3nZ,KAAK2nZ,YAAiC,cAAgB,SAElG,KACX,EACAw9nB,EAASx0gC,UAAUw4gC,cAAgB,WAC1BnphC,KAAK479B,WAAWzm9B,SAGrB,IAAI86U,GAAU,CAAEh8O,SAAU,IAAKvvG,KAAM,SAAU8sV,eAAgB,WAAYvvC,QAAQjiT,KAAK479B,WAAWzm9B,QACvG,EAOAgwgC,EAASx0gC,UAAUuiV,gBAAkB,WACjC,IAAIc,EAAU,GACdh0V,KAAKomhC,gBAAe,GACpB,IAAK,IAAI92gC,EAAK,EAAGgmC,EAAK71C,OAAO8E,KAAKvE,KAAK67gC,aAAcvsgC,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CACvE,IAAIwpB,EAAOwc,EAAGhmC,GACdwpB,EAAiB,gBAATA,GAAmC,iBAATA,GAAoC,qBAATA,EAA+B,gBAAkBA,EAC9Gk7T,EAAQ5nV,KAAK,CAAEqnV,OAAQ36T,EAAM7f,KAAM,CAACjZ,OACxC,CAWA,OAVIA,KAAKup0B,kBACLv1e,EAAQ5nV,KAAK,CAAEqnV,OAAQ,cAAex6U,KAAM,CAACjZ,QAE7CA,KAAKmynB,eACLn+R,EAAQ5nV,KAAK,CAAEqnV,OAAQ,SAAUx6U,KAAM,CAACjZ,QAE5Cg0V,EAAQ5nV,KAAK,CAAEqnV,OAAQ,cAAex6U,KAAM,CAACjZ,QAC7Cg0V,EAAQ5nV,KAAK,CAAEqnV,OAAQ,kBAAmBx6U,KAAM,CAACjZ,QACjDg0V,EAAQ5nV,KAAK,CAAEqnV,OAAQ,kBAAmBx6U,KAAM,CAACjZ,QACjDg0V,EAAQ5nV,KAAK,CAAEqnV,OAAQ,QAASx6U,KAAM,CAACjZ,QAChCg0V,CACX,EAOAmxrB,EAASx0gC,UAAUmoV,UAAY,WAC3B94V,KAAK0utB,WAAaznY,GAAQM,UlCnTvBv2T,OAAOkH,UAAUggN,UAAUx3N,cAAc/V,QAAQ,SAAW,EkCoT/D3K,KAAKujZ,UAAY,IAAItkE,GAAqBj/U,KAAKD,QAC/CC,KAAKk99B,SAAW,IAAI0P,KAChB5s+B,MAAQ+rU,GAAkB/rU,KAAKk/9B,iBAAoBl/9B,KAAK24V,qBACxD34V,KAAKk/9B,cAAgB,CACjBpqjB,QAAQ,EAAOkyB,WAAW,EAAMrjU,KAAM,EAAGuqB,IAAK,EAAG0id,iBAAiB,EAClE8qZ,oBAAoB,EAAOv7L,WAAY,EAAGjrvB,QAAQ,EAAOmh6B,SAAS,EAAO1X,eAAe,EAAMiX,mBAAmB,IAGzH51+B,KAAKw3gC,oBAAsBx3gC,KAAKs99B,iBAChCt99B,KAAK099B,gBAAkB,CAAE3mzB,UAAW,IAAIt1K,KAAKzB,KAAKw3gC,qBAAsB9qoB,QAAS,IAAIjrY,KAAKzB,KAAKw3gC,qBAAsBz5C,UAAU,GAC/H/99B,KAAKuq+B,gBAAkB,CAAExz8B,WAAO1zB,EAAW8R,aAAS9R,GACpDrD,KAAKqphC,mBACLrphC,KAAKqrgB,UAAY,IAAI9lK,GAAKvlW,KAAK+sV,gBAAiB/sV,KAAKw0Y,cAAex0Y,KAAKD,QACzEC,KAAK+ohC,oBACL/ohC,KAAKgphC,kBACLhphC,KAAK62+B,WAAa,GAClB72+B,KAAKym+B,gBAAkB,GACvBzm+B,KAAKu2+B,UAAY,GACjBv2+B,KAAK02+B,eAAiB,GACtB12+B,KAAKov9B,mBAAqB,GAC1Bpv9B,KAAKq+jB,cAAgB,KACrBr+jB,KAAKun+B,iBAAmB,GACxBvn+B,KAAKomhC,gBACT,EACAjB,EAASx0gC,UAAU04gC,iBAAmB,WAClCrphC,KAAKw0Y,cAAgB,CACjBvxY,IAAK,MACLkM,KAAM,OACNm6gC,SAAU,YACVrghC,MAAO,QACPyV,KAAM,OACN6qgC,OAAQ,SACRC,WAAY,cACZC,eAAgB,mBAChBC,YAAa,eACb9mhC,MAAO,QACP+mhC,SAAU,YACVC,eAAgB,6CAChBC,OAAQ,UACR3z+B,MAAO,QACPkD,IAAK,MACL44rB,KAAM,OACNx2lB,MAAO,QACP16D,OAAQ,SACRgp8B,QAAS,aACT714B,OAAQ,SACRwn3B,YAAa,eACbsuB,oBAAqB,yBACrB/mlB,cAAe,iBACfgnlB,aAAc,gBACdj6Z,KAAM,OACNk6Z,WAAY,gBACZC,UAAW,aACXlz/B,YAAa,SACbsgb,QAAS,UACT6ykB,SAAU,YACVC,YAAa,eACb/rjB,KAAM,OACNgsjB,YAAa,8DACbrnd,cAAe,8CACfsnd,sBAAuB,uDACvBC,SAAU,YACVz1gC,MAAO,QACP6iB,SAAU,WACV0wB,YAAa,cACbiyH,SAAU,WACV48zB,cAAe,iBACfC,YAAa,eACbl/8B,OAAQ,SACRkg+B,WAAY,OACZ7zgB,aAAc,SACdw0gB,aAAc,SACd0xB,WAAY,aACZC,aAAc,uCACdC,kBAAmB,sHAEnBjzxB,YAAa,kKAEbkzxB,aAAc,kEACdC,eAAgB,4HAEhBC,eAAgB,kBAChBC,QAAS,UACT3ogB,MAAO,QACP4ogB,cAAe,sDACfC,iBAAkB,qCAClBC,WAAY,4DACZlm3B,GAAI,KACJmm3B,IAAK,MACLh2sB,GAAI,KACJ8gqB,WAAY,aACZ3mkB,OAAQ,SACR58V,SAAU,WACVl8D,KAAM,OACN40gC,YAAa,eACbC,aAAc,gBACdC,iBAAkB,qBAClBC,cAAe,iBACfC,aAAc,gBACdC,mBAAoB,mBACpBC,YAAa,eACbC,UAAW,aACXC,UAAW,aACXC,MAAO,UACPC,oBAAqB,yBACrBC,sBAAuB,2BACvBC,eAAgB,kBAChBC,UAAW,mBAEnB,EACA7G,EAASx0gC,UAAUozV,WAAa,WAC5BlrH,GAAazlN,IAAIpC,OAAQ,SAAUhxB,KAAKishC,iBAAkBjshC,MAC1D64O,GAAazlN,IAAIpC,OAAQ,oBAAqBhxB,KAAKishC,iBAAkBjshC,MACrE64O,GAAazlN,IAAIlC,SAAU+1T,GAAQwB,gBAAiBzoV,KAAK6hc,gBAAiB7hc,KAC9E,EAOAmlhC,EAASx0gC,UAAUoy9B,oBAAsB,WAErC,IADA,IAAIt0Z,EAAgBzukB,KAAK2j+B,mBAChBr09B,EAAK,EAAGk29B,EAAkB/2Z,EAAen/jB,EAAKk29B,EAAgBpi+B,OAAQkM,IAAM,CACjF,IAAI++jB,EAAOm3Z,EAAgBl29B,GACF,SAArBtP,KAAK2nZ,aACL0mL,EAAKr5iB,aAAa,gBAAiB,SAEvCq5iB,EAAKt5iB,gBAAgB,WACzB,CACAkzP,GAAYwmT,EAAe5+J,KACvB7va,KAAKk7+B,2BAA6Bl7+B,KAAKk7+B,0BAA0Bzsa,cAAcrrkB,OAAS,IACxFpD,KAAKk7+B,0BAA0Bzsa,cAAgB,GAEvD,EAUA02c,EAASx0gC,UAAUm19B,iBAAmB,SAAUn0Z,EAAO8yZ,EAAWynD,GAC9D,GAAyB,SAArBlshC,KAAK2nZ,YACL,IAAK,IAAIr4Y,EAAK,EAAGsqmB,EAAUjoC,EAAOrikB,EAAKsqmB,EAAQx2mB,OAAQkM,IAAM,CAC9CsqmB,EAAQtqmB,GACd0lB,aAAa,gBAAiB,OACvC,CAEJwzP,GAASmpT,EAAO9hK,KACZ40jB,IACAA,EAAUzv8B,aAAa,WAAY,KACnCyv8B,EAAUr69B,MAAM,CAAEkjR,cAAe4+vB,IAAmB,IAE5D,EAQA/G,EAASx0gC,UAAUwtoB,WAAa,SAAUhpoB,GACtCnV,KAAK+i+B,sBACL/i+B,KAAK8l+B,iBAAiB,CAAC3w9B,GAAUA,EACrC,EAOAgwgC,EAASx0gC,UAAUwy9B,aAAe,WAC9B,OAAOnj+B,KAAKmV,QAAQykB,cAAc,IAAMi2Y,IAC5C,EAOAs1mB,EAASx0gC,UAAUu0mB,gBAAkB,WACjC,OAAOllnB,KAAK479B,WAAWzm9B,QAAQykB,cAAc,IAAMi2Y,IAA0B,SACjF,EAOAs1mB,EAASx0gC,UAAUm39B,aAAe,WAC9B,MAAO,GAAGl39B,MAAMjR,KAAKK,KAAKmV,QAAQ3E,iBAAiB,IAAMq/Z,IAA0B,kBAAoBA,IAAmB,KAC9H,EAOAs1mB,EAASx0gC,UAAUk09B,oBAAsB,WACrC,MAAO,GAAGj09B,MAAMjR,KAAKK,KAAKmV,QAAQ3E,iBAAiB,IAAMq/Z,KAC7D,EASAs1mB,EAASx0gC,UAAUq8+B,eAAiB,SAAUjr7B,EAAY7hE,GACtD,OAAO6hE,EAAW97D,IAAI4f,QAAQlb,SAASzK,EAC3C,EAQAilhC,EAASx0gC,UAAUw7gC,aAAe,SAAUvm4B,GACxC,UAAI,CAAC,QAAS,gBAAiB,eAAgB,eAAej7I,QAAQ3K,KAAK2nZ,cAAgB,GACvF/hQ,EAAGsiI,UAAUh1P,SAAS28Y,MACtBjqR,EAAGsiI,UAAUh1P,SAAS28Y,OAA4B7va,KAAK079B,kBAAkBiC,UAAUhtkB,YAGnF3wZ,KAAK479B,WAAWgJ,kBAAoB5k+B,KAAK079B,kBAAkBxtT,WAAW9qqB,OAAS,GACrB,SAA1DpD,KAAK079B,kBAAkBxtT,WAAWt9pB,OAAO,GAAG,GAAGgtS,OAIvD,EAQAunuB,EAASx0gC,UAAUqz9B,mBAAqB,SAAUp+0B,GAC9C,IAAIu2B,EAIJ,GAHK4vJ,GAAkBnmL,KACnBu2B,EAAav2B,EAAGtzH,aAAa,eAE5By5S,GAAkB5vJ,GAAa,CAChC,IAAIiw2B,EAAW7//B,SAAS4vJ,EAAY,IAEpC,OADW,IAAI16K,KAAK2qhC,EAExB,CAEJ,EAUAjH,EAASx0gC,UAAUi2hB,iBAAmB,SAAUr2hB,EAAUozH,EAAMuqB,GAC5D,IACI86I,EADA7zR,EAAU+b,SAAS6xU,iBAAiBp/N,EAAMuqB,GAK9C,OAHI/4I,IACA6zR,EAAgB7zR,EAAQsgF,QAAQllF,IAE5By4R,EAAiB,CAACA,GAAiB,IAC/C,EAOAm8uB,EAASx0gC,UAAU07gC,sBAAwB,WACvC,OAAOrshC,KAAK6nhC,oBAChB,EAOA1C,EAASx0gC,UAAU27gC,qBAAuB,WACtC,OAAOtshC,KAAK8nhC,mBAChB,EAOA3C,EAASx0gC,UAAU47gC,uBAAyB,WACxC,OAAOvshC,KAAK+nhC,qBAChB,EAOA5C,EAASx0gC,UAAU67gC,gBAAkB,WACjC,OAAOxshC,KAAKgohC,cAChB,EAOA7C,EAASx0gC,UAAU87gC,sBAAwB,WACvC,OAAOzshC,KAAKiohC,oBAChB,EAOA9C,EAASx0gC,UAAUsr9B,qBAAuB,WACtC,OAAOj89B,KAAKkohC,mBAChB,EAOA/C,EAASx0gC,UAAU+7gC,qBAAuB,WACtC,OAAO1shC,KAAKmohC,mBAChB,EAOAhD,EAASx0gC,UAAUg8gC,qBAAuB,WACtC,OAAO3shC,KAAKoohC,mBAChB,EAOAjD,EAASx0gC,UAAUwv+B,uBAAyB,WACxC,OAAOng/B,KAAKqohC,qBAChB,EAOAlD,EAASx0gC,UAAUiu/B,wBAA0B,WACzC,OAAO5+/B,KAAKyohC,sBAChB,EAOAtD,EAASx0gC,UAAUyt/B,yBAA2B,WAC1C,OAAOp+/B,KAAKwohC,uBAChB,EAOArD,EAASx0gC,UAAUk6/B,kBAAoB,WACnC,OAAO7qgC,KAAK0ohC,gBAChB,EAOAvD,EAASx0gC,UAAUuo/B,4BAA8B,WAC7C,OAAOl5/B,KAAK2ohC,0BAChB,EAOAxD,EAASx0gC,UAAU+o/B,6BAA+B,WAC9C,OAAO15/B,KAAK4ohC,2BAChB,EAOAzD,EAASx0gC,UAAU2p/B,4BAA8B,WAC7C,OAAOt6/B,KAAK6ohC,0BAChB,EAOA1D,EAASx0gC,UAAUi8gC,0BAA4B,WAC3C,OAAO5shC,KAAKsohC,wBAChB,EAOAnD,EAASx0gC,UAAUk8gC,wBAA0B,WACzC,OAAO7shC,KAAKuohC,sBAChB,EAOApD,EAASx0gC,UAAUq+oB,iBAAmB,WAOlC,MANe,CACXxnZ,OAAQxnQ,KAAKq4V,UAAY,kBAAoB,mBAC7CrhO,QAASh3H,KAAKq4V,UAAY,cAAgB,eAC1Cy0rB,UAAW9shC,KAAKq4V,UAAY,mBAAqB,kBACjD00rB,WAAY/shC,KAAKq4V,UAAY,eAAiB,cAGtD,EAOA8srB,EAASx0gC,UAAUws/B,sBAAwB,WACvC,IAAI6vB,EAAahthC,KAAKmV,QAAQykB,cAAc,IAAMi2Y,KAC7C9jG,GAAkBihtB,IACnB75/B,GAAO65/B,EAEf,EAQA7H,EAASx0gC,UAAUy//B,gBAAkB,SAAU6c,GAC3C,IAAKlhtB,GAAkBkhtB,IAAkC,KAAjBA,EAAqB,CACzD,IAAIC,EAAe7wD,IAAe,IAAI569B,KAAKzB,KAAKw3gC,sBAAwBx3gC,KAAKs99B,kBACzE5q4B,EAAau67B,EAAat6/B,MAAM,KAIpC,OAH0B,IAAtB+/D,EAAWtvF,QACX8phC,EAAazqhC,SAAS8pB,SAASmmE,EAAW,GAAI,IAAKnmE,SAASmmE,EAAW,GAAI,IAAK,GAE7Ew67B,CACX,CACA,OAAO,IACX,EACA/H,EAASx0gC,UAAUkxb,gBAAkB,SAAU5ob,GAC3CjZ,KAAKq5M,OAAOj+E,IAAsB,CAAErkG,MAAO9d,GAC/C,EACAksgC,EAASx0gC,UAAUs7gC,iBAAmB,WAC9BlgtB,GAAkB/rU,KAAK479B,cAAiB579B,KAAK0utB,YlCpxB9C19rB,OAAOkH,UAAUggN,UAAUx3N,cAAc/V,QAAQ,SAAW,IkCoxBoBumB,SAAS0vH,eACrF1vH,SAAS0vH,cAAcsnI,UAAUh1P,SAAS28Y,OAG7C7va,KAAK079B,kBAAkBiC,UAAUhtkB,QAAU3wZ,KAAK479B,YAChD579B,KAAK479B,WAAWuxD,uBAEhBnthC,KAAKgg+B,YACLhg+B,KAAKgg+B,WAAW2K,eAEK,UAArB3q+B,KAAK2nZ,aAAkD,WAArB3nZ,KAAK2nZ,aAAiD,gBAArB3nZ,KAAK2nZ,cACpE3nZ,KAAK079B,kBAAkBiC,UAAUhtkB,QAAW3wZ,KAAK479B,WAAWgJ,kBAChE5k+B,KAAK479B,WAAWwxD,gBAChBpthC,KAAKq5M,OAAOj+E,IAAuB,CAAEyj2B,cAAe7+9B,KAAKgvpB,mBAAoB08V,uBAAuB,IACpG1r/B,KAAKq+gC,eAAc,IAGnBr+gC,KAAKq5M,OAAOj+E,IAAqB,CAAC,GAE1C,EAQA+p5B,EAASx0gC,UAAUo/2B,eAAiB,SAAUxs1B,GAC1C,GAAIA,EACA,IACI,OAAIrS,SAAS1gB,iBAAiB+yB,GAAUngC,OAC7B0nW,GAAQ55U,SAAS0I,cAAc2J,GAAU2F,UAAUzW,QAGnDq4U,GAAQvnU,EAEvB,CACA,MAAOtsB,IACH,OAAO6zV,GAAQvnU,EACnB,CAGR,EAOA4h/B,EAASx0gC,UAAUgz9B,iBAAmB,WAClC,MAAO,GAAG/y9B,MAAMjR,KAAKK,KAAKmV,QAAQ3E,iBAAiB,IAAMq/Z,KAC7D,EASAs1mB,EAASx0gC,UAAUi2+B,sBAAwB,SAAU7v9B,EAAOugb,GACxD,IAAI0okB,EACJ,GAAIhghC,KAAKgg+B,YAAchg+B,KAAK079B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,EAAG,CAEtE48gC,EAAehghC,KAAKgg+B,WAAW45B,gBAAgB,CAAE7i+B,MAAOA,GAAS,SAD9C,aAEvB,CACA,IAAI4v9B,EAAiBrviB,GAAYvgb,EAAM/2B,KAAK2m+B,YAAYrvhB,UAAYt3c,KAAKo89B,cAAcjpwB,OAAOmkP,QAAQz2c,QAClGoyU,EAAW,OACXo6sB,EAAgBrthC,KAAKujZ,UAAU9jE,WAAW1oT,EAAM/2B,KAAK2m+B,YAAY5vzB,WAAY,CAC7EnqK,KAAM,WAAYqmU,SAAUA,EAAUt3O,SAAU37F,KAAKs89B,oBAErDgxD,EAActthC,KAAKujZ,UAAU9jE,WAAW1oT,EAAM/2B,KAAK2m+B,YAAYj6lB,SAAU,CACzE9/X,KAAM,WAAYqmU,SAAUA,EAAUt3O,SAAU37F,KAAKs89B,oBAErDixD,EAAqB5mC,EAAgB,IAAM3m/B,KAAKqrgB,UAAUtlK,YAAY,aAAe,IACnFsnrB,EAAgB,IAAMrthC,KAAKqrgB,UAAUtlK,YAAY,SAAW,IAAMunrB,EAIxE,OAHItN,IACAuN,EAAqBvN,EAAe,IAAMuN,GAEvCA,CACX,EASApI,EAASx0gC,UAAU0y9B,mBAAqB,SAAUp90B,EAAOD,GACrD,IACIwn4B,EAAc,CAAE7p5B,MAAM,EAAOC,OAAO,EAAOsqB,KAAK,EAAOymI,QAAQ,GAC/D84vB,EAAiBzthC,KAAKmV,QAAQykB,cAAc,IAAMi2Y,KAAwBp7I,wBAiB9E,OAhBKxuI,EAAQwn4B,EAAev/3B,IAHH,GAG8Bl9H,OAAOw4R,aACzDvjK,EAAQwn4B,EAAev/3B,IAAMl9H,OAAOw4R,cACrCgkuB,EAAYt/3B,KAAM,GAEjBjI,EAASwn4B,EAAe94vB,OAPJ,GAOmC3jQ,OAAOw4R,aAC9DvjK,EAAQwn4B,EAAe94vB,OAAS3jQ,OAAOw4R,cACxCgkuB,EAAY74vB,QAAS,GAEpB3uI,EAAQyn4B,EAAe9p5B,KAXH,GAW+B3yG,OAAOu4R,aAC1DvjK,EAAQyn4B,EAAe9p5B,KAAO3yG,OAAOu4R,cACtCikuB,EAAY7p5B,MAAO,GAElBqiB,EAASyn4B,EAAe7p5B,MAfJ,GAekC5yG,OAAOu4R,aAC7DvjK,EAAQyn4B,EAAe7p5B,MAAQ5yG,OAAOu4R,cACvCikuB,EAAY5p5B,OAAQ,GAEjB4p5B,CACX,EAQArI,EAASx0gC,UAAU+8gC,qBAAuB,SAAU7u7B,GAChD,IAAI/wF,ElCloCsBsg9B,EAAWC,EkCmoCrC,GAAsB,aAAlBru9B,KAAKkqZ,SAAyB,CAC9B,IAAIyjoB,EAAiBtxD,IAAqBx93B,EAAMjuF,OAAO,GAAG,GAAI5Q,KAAKiM,gBACnE6B,EAAa9N,KAAKujZ,UAAU/jE,aAAa68oB,IAAmBsxD,GAChE,MACK,GAAsB,qBAAlB3thC,KAAKkqZ,SAAiC,CAC3C,IAAI0joB,EAAgBvxD,IAAsBx93B,EAAMjuF,OAAO,GAAG,GAAI5Q,KAAKiM,gBAC/D4hhC,EAAexxD,IAAqBx93B,EAAMjuF,OAAO,GAAG,GAAI5Q,KAAKiM,gBAC7D6hhC,GlC1oCkB1/D,EkC0oCmBw/D,ElC1oCRv/D,EkC0oCuBw/D,ElCzoCzD,IAAIpshC,KAAK4s9B,EAASvs9B,WAAcus9B,EAASvs9B,UAAYss9B,EAAUts9B,WAAa,IkC0oC3EgM,EAAa9N,KAAKujZ,UAAU/jE,aAAa68oB,IAAmByxD,GAChE,MACK,GAAsB,kBAAlB9thC,KAAKkqZ,SAA8B,CACpC0joB,EAAgBvxD,IAAsBx93B,EAAMjuF,OAAO,GAAG,GAAI5Q,KAAKiM,gBACnE6B,EAAa9N,KAAKujZ,UAAU/jE,aAAa68oB,IAAmBuxD,GAChE,CACA,OAAO9/gC,CACX,EASAq3gC,EAASx0gC,UAAU+rgC,2BAA6B,SAAUxy+B,EAAM07G,GAC5D,GAAI5lJ,KAAK079B,kBAAkB+gD,qBAAsB,CAC7C,IAEItvqB,EAFantW,KAAKmV,QAAQghB,GAAK,IACpBn2B,KAAK079B,kBAAkByrD,yBACG,uBAEzCn05B,GADqB,GAAGpiH,MAAMjR,KAAKK,KAAK6shC,yBAAL7shC,CAA+BkqC,EAAMlqC,KAAM,uBAAwBmtW,GAAY,IAC3FvnN,EAC3B,CACJ,EAOAu/3B,EAASx0gC,UAAUgz+B,yBAA2B,WAC1C,OAAO3j/B,KAAK079B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,IAAMpD,KAAK079B,kBAAkBp94B,MAAM4y7B,iBACrFlxgC,KAAK2q/B,gBAAkB3q/B,KAAK8p+B,qBAAuB9p+B,KAAK079B,kBAAkBp94B,MAAM2u7B,SACzF,EACAkY,EAASx0gC,UAAU65b,aAAe,WAC9B3xN,GAAa1lN,OAAOnC,OAAQ,SAAUhxB,KAAKishC,kBAC3CpzyB,GAAa1lN,OAAOnC,OAAQ,oBAAqBhxB,KAAKishC,kBACtDpzyB,GAAa1lN,OAAOjC,SAAU+1T,GAAQwB,gBAAiBzoV,KAAK6hc,gBAChE,EAOAsjlB,EAASx0gC,UAAUo8U,cAAgB,WAC/B,MAAO,UACX,EAOAo4rB,EAASx0gC,UAAU0pV,eAAiB,WAChC,OAAOr6V,KAAK26V,aAAa,CAAC,cAAe,eAAgB,YAAa,cAC1E,EAOAwqrB,EAASx0gC,UAAU+7U,kBAAoB,SAAUiF,EAASC,GACtD,IAAI5xV,KAAKywW,UAAW1kC,GAAkB/rU,KAAK479B,YAA3C,CAMA,IAHA,IAAIx09B,EAAQ,CACRw/pB,WAAW,EAAOmnX,YAAY,EAAOpshC,QAAQ,EAAOoU,QAAQ,EAAOi4gC,UAAU,EAAOC,eAAe,GAE9F3+gC,EAAK,EAAGgmC,EAAK71C,OAAO8E,KAAKotV,GAAUriV,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CAC9D,IAAI3K,EAAO2wC,EAAGhmC,GACd,OAAQ3K,GACJ,IAAK,QACD3E,KAAKomhC,iBACDpmhC,KAAK6ipB,cACL7ipB,KAAK6ipB,aAAam4U,cAEtB5z9B,EAAM2O,QAAS,EACf,MACJ,IAAK,cACD3O,EAAM2O,QAAS,EACf,MACJ,IAAK,UACL,IAAK,UACL,IAAK,eACD3O,EAAMzF,QAAS,EACf,MACJ,IAAK,aACD3B,KAAK079B,kBAAoB179B,KAAK0lhC,uBAC1B1lhC,KAAK6ipB,cACL7ipB,KAAK6ipB,aAAa44U,kBAEtB,MACJ,IAAK,gBACDz79B,KAAK8lhC,sBACDn0rB,EAAQo0rB,gBACR/lhC,KAAK6ipB,aAAe,IAAIy3U,IAAet69B,MACvCA,KAAK6ipB,aAAa44U,mBAEtBz79B,KAAKq5M,OAAOj+E,IAAuB,CAAEyj2B,cAAe7+9B,KAAKgvpB,qBACrDhvpB,KAAK479B,WAAWgJ,kBAChB5k+B,KAAKq+gC,eAAc,GAEvB,MACJ,IAAK,WACG5t+B,KAAK+mF,UAAUo6N,EAAQi2pB,YAAcp38B,KAAK+mF,UAAUm6N,EAAQk2pB,YAC5Dzg/B,EAAM4mhC,UAAW,GAErB,MACJ,IAAK,cACL,IAAK,YACL,IAAK,UACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,iBACL,IAAK,gBACD5mhC,EAAM4mhC,UAAW,EACjB,MACJ,IAAK,SACL,IAAK,eACDhuhC,KAAKujZ,UAAY,IAAItkE,GAAqBj/U,KAAKD,QAC/CC,KAAKqrgB,UAAY,IAAI9lK,GAAKvlW,KAAK+sV,gBAAiB/sV,KAAKw0Y,cAAex0Y,KAAKD,QACzEC,KAAK+ohC,oBACL/ohC,KAAKgphC,kBACL5hhC,EAAMw/pB,WAAY,EAClB,MACJ,IAAK,iBACD5mqB,KAAK079B,kBAAkBzv9B,eAAiB0lV,EAAQ1lV,eAC5CjM,KAAKg+9B,aACLh+9B,KAAKg+9B,YAAYurC,0BAErBnigC,EAAM4mhC,UAAW,EACjB,MACJ,IAAK,oBACGhuhC,KAAK079B,kBAAkBiC,UAAUhtkB,QAAU3wZ,KAAK479B,YAChD579B,KAAK479B,WAAWuxD,uBAEpB,MACJ,IAAK,qBACDnthC,KAAK079B,kBAAkBgrD,mBAAqB/0rB,EAAQ+0rB,mBACpD1mhC,KAAK6nhC,qBAAuB7nhC,KAAK+v3B,eAAe/v3B,KAAK079B,kBAAkBgrD,oBACvEt/gC,EAAM4mhC,UAAW,EACjB,MACJ,IAAK,eACDhuhC,KAAK079B,kBAAkBtgX,aAAezpR,EAAQypR,aAC9Cp7mB,KAAKgohC,eAAiBhohC,KAAK+v3B,eAAe/v3B,KAAK079B,kBAAkBtgX,cACjEh0mB,EAAM4mhC,UAAW,EACjB,MACJ,IAAK,qBACDhuhC,KAAK079B,kBAAkBkrD,mBAAqBj1rB,EAAQi1rB,mBACpD5mhC,KAAKiohC,qBAAuBjohC,KAAK+v3B,eAAe/v3B,KAAK079B,kBAAkBkrD,oBACvEx/gC,EAAM4mhC,UAAW,EACjB,MACJ,IAAK,oBACDhuhC,KAAK079B,kBAAkBC,kBAAoBhqoB,EAAQgqoB,kBACnD379B,KAAKkohC,oBAAsBlohC,KAAK+v3B,eAAe/v3B,KAAK079B,kBAAkBC,mBAClE379B,KAAK6ipB,cACL7ipB,KAAK6ipB,aAAa44U,kBAEtB,MACJ,IAAK,oBACDz79B,KAAK079B,kBAAkBqrD,kBAAoBp1rB,EAAQo1rB,kBACnD/mhC,KAAK8nhC,oBAAsB9nhC,KAAK+v3B,eAAe/v3B,KAAK079B,kBAAkBqrD,mBACtE3/gC,EAAM4mhC,UAAW,EACjB,MACJ,IAAK,sBACDhuhC,KAAK079B,kBAAkBurD,oBAAsBt1rB,EAAQs1rB,oBACrDjnhC,KAAK+nhC,sBAAwB/nhC,KAAK+v3B,eAAe/v3B,KAAK079B,kBAAkBurD,qBACxE7/gC,EAAM4mhC,UAAW,EACjB,MACJ,IAAK,yBACDhuhC,KAAK079B,kBAAkBqiD,uBAAyBpsrB,EAAQosrB,uBACxD/9gC,KAAKsohC,yBAA2BtohC,KAAK+v3B,eAAe/v3B,KAAK079B,kBAAkBqiD,wBAC3E32gC,EAAM4mhC,UAAW,EACjB,MACJ,IAAK,WACDhuhC,KAAK0k+B,UAAUqS,uBAAuBnlpB,EAAQt3K,UAC9Ct6K,KAAK6ipB,aAAak6U,sBAClB,MACJ,IAAK,YACD/89B,KAAKkuhC,cACL9mhC,EAAMw/pB,WAAY,EAClB,MACJ,QACI5mqB,KAAK8kqB,uBAAuBngqB,EAAMgtV,EAASC,EAASxqV,GAGhE,CACApH,KAAKmuhC,qBAAqB/mhC,EA5H1B,CA6HJ,EACA+9gC,EAASx0gC,UAAUw9gC,qBAAuB,SAAU/mhC,GAC5CA,EAAMw/pB,UACN5mqB,KAAK64V,UAEAzxV,EAAM2mhC,WACX/thC,KAAK2lhC,qBAAoB,GAEpBv+gC,EAAM2O,OACX/V,KAAKq99B,WAAWr99B,KAAK2nZ,YAAa,MAAM,GAEnCvgZ,EAAMzF,OACX3B,KAAKi99B,WAAWj99B,KAAKkoZ,cAEhB9gZ,EAAM4mhC,UACXhuhC,KAAK099B,gBAAkB,KACvB199B,KAAK6lhC,eAAe7lhC,KAAK2nZ,cAEpBvgZ,EAAM6mhC,eAAiBjuhC,KAAKug+B,aAC7Bvg+B,KAAKm8+B,oBACLn8+B,KAAKm8+B,kBAAkB44B,UAAU7/7B,OAAS,GAC1C+yM,GAAY,CAACjoR,KAAKmV,SAAU06Z,MAEhC7va,KAAKug+B,WAAW9lW,qBAExB,EACA0qZ,EAASx0gC,UAAUy9gC,sBAAwB,WACvC,IAAIrsC,EAAa/h/B,KAAKmV,QAAQykB,cAAc,IAAMi2Y,KAC9CqzjB,EAAYlj+B,KAAKmV,QAAQykB,cAAc,IAAMi2Y,KACjD,GAAoB,SAAhB7va,KAAK4oJ,QAAsB5oJ,KAAKoq/B,mBAW5BrI,EAAW75tB,UAAUh1P,SAAS28Y,MAC9B5nJ,GAAY,CAAC85tB,GAAalykB,KAE9B7va,KAAK0k+B,UAAUod,mBAAmBC,QATlC,GAJAv5tB,GAAS,CAACu5tB,GAAalykB,KACnBkykB,EAAW75tB,UAAUh1P,SAAS28Y,MAC9B5nJ,GAAY,CAAC85tB,GAAalykB,KAE1B7va,KAAKk/9B,cAAcpqjB,OAAQ,CAC3B,IAAI4wjB,EAAc,GAAG909B,MAAMjR,KAAKK,KAAKmV,QAAQ3E,iBAAiB,IAAMq/Z,MACpE61jB,EAAY,GAAGv/9B,MAAMyiJ,OAAUs60B,EAAU/89B,MAAMyiJ,OAAUs60B,EAAU/89B,MAAMyiJ,OAAS880B,EAAY,GAAGv/9B,MAAMyiJ,MAC3G,CAQC5oJ,KAAKk/9B,cAAcpqjB,SACpBoujB,EAAU/89B,MAAMyiJ,OAAS,GAEjC,EACAu83B,EAASx0gC,UAAUm0pB,uBAAyB,SAAUngqB,EAAMgtV,EAASC,EAASxqV,GAC1E,OAAQzC,GACJ,IAAK,QACL,IAAK,SACL,IAAK,qBACG,CAAC,MAAO,OAAQ,YAAYgG,QAAQ3K,KAAK2nZ,cAAgB,GACzD3nZ,KAAKouhC,wBAETpuhC,KAAKq5M,OAAOj+E,IAAiB,CAAEpkH,OAAQ,SAAU0b,WAAY,CAAElU,MAAOmzU,EAAQnzU,MAAOoqI,OAAQ+oM,EAAQ/oM,UACrG,MACJ,IAAK,WACGgpM,EAAQge,UACR3nF,GAAY,CAACjoR,KAAKmV,SAAUy8U,EAAQge,SAASj9U,MAAM,MAEnDg/T,EAAQie,UACRpnF,GAAS,CAACxoR,KAAKmV,SAAUw8U,EAAQie,SAASj9U,MAAM,MAEpD,MACJ,IAAK,sBACL,IAAK,kBACD3yB,KAAK079B,kBAAoB179B,KAAK0lhC,uBAC9Bt+gC,EAAM2O,QAAS,EACf,MACJ,IAAK,gBACD/V,KAAKquhC,+BAA+B18rB,EAAQyqoB,cAAexqoB,EAAQwqoB,cAAeh19B,GAClF,MACJ,IAAK,2BACGpH,KAAKk7+B,4BACLl7+B,KAAKk7+B,0BAA0B9j2B,UAC/Bp3I,KAAKk7+B,0BAA4B,MAEjCvppB,EAAQs4qB,2BACRjqgC,KAAKk7+B,0BAA4B,IAAIza,IAAoBzg+B,OAE7D,MACJ,IAAK,qBACGA,KAAKg+9B,aACLh+9B,KAAKg+9B,YAAYnloB,UAErB,MACJ,IAAK,iBACI9sB,GAAkB/rU,KAAK0pgC,kBACxB1pgC,KAAK0ohC,iBAAmB1ohC,KAAK+v3B,eAAe/v3B,KAAK0pgC,iBAEjD1pgC,KAAKg+9B,aACLh+9B,KAAKg+9B,YAAYgsC,mBAErB,MACJ,IAAK,qBACGhqgC,KAAKw4/B,mBAAmB9p0B,SACxB1uL,KAAK2ohC,2BAA6B3ohC,KAAK+v3B,eAAe/v3B,KAAKw4/B,mBAAmB9p0B,SAE9E1uL,KAAKw4/B,mBAAmBzj/B,UACxB/U,KAAK4ohC,4BAA8B5ohC,KAAK+v3B,eAAe/v3B,KAAKw4/B,mBAAmBzj/B,UAE/E/U,KAAKw4/B,mBAAmB9r/B,SACxB1M,KAAK6ohC,2BAA6B7ohC,KAAK+v3B,eAAe/v3B,KAAKw4/B,mBAAmB9r/B,SAElF,MACJ,IAAK,QACD1M,KAAKsuhC,+BAA+B38rB,EAAQrzQ,MAAOszQ,EAAQtzQ,MAAOl3E,GAClE,MACJ,IAAK,YACDA,EAAM2mhC,YAAa,EACnB,MACJ,IAAK,YACD/thC,KAAK079B,kBAAkBiC,UAAUnwpB,SAAWmkB,EAAQgsoB,UAAUnwpB,UAAYxtU,KAAK079B,kBAAkBiC,UAAUnwpB,SAC3GxtU,KAAK079B,kBAAkBiC,UAAUC,UAAYjsoB,EAAQgsoB,UAAUC,WAAa599B,KAAK079B,kBAAkBiC,UAAUC,UACzG599B,KAAKg+9B,aACLh+9B,KAAKg+9B,YAAYssC,wBAErBljgC,EAAM4mhC,UAAW,EACjB,MACJ,IAAK,mBACL,IAAK,gBACL,IAAK,gBACDhuhC,KAAKq+gC,eAAc,GACnB,MACJ,IAAK,WACDj3gC,EAAM4mhC,UAAW,EACjB,MACJ,IAAK,mBACDhuhC,KAAK079B,kBAAkB6rD,iBAAmB51rB,EAAQ41rB,iBAClDvnhC,KAAKw79B,UAAYx79B,KAAK479B,WAAWJ,UACjCp09B,EAAM4mhC,UAAW,EACjB,MACJ,IAAK,cACDhuhC,KAAK079B,kBAAkB8rD,YAAc71rB,EAAQ61rB,YAC7CxnhC,KAAKw79B,UAAYx79B,KAAK479B,WAAWJ,UACjCp09B,EAAM4mhC,UAAW,EACjB,MACJ,IAAK,aACDhuhC,KAAKynhC,mBAAqB91rB,EAAQpiP,YAAcvvG,KAAK079B,kBAAkBns3B,WACnEvvG,KAAKg+9B,aACLh+9B,KAAKg+9B,YAAYssC,wBAErBljgC,EAAM4mhC,UAAW,EACjB,MACJ,IAAK,mBACGhuhC,KAAK+lhC,eAAiB/lhC,KAAK6ipB,eAC3B7ipB,KAAK8lhC,sBACL9lhC,KAAK6ipB,aAAe,IAAIy3U,IAAet69B,MACvCA,KAAK6ipB,aAAa44U,mBAEtBr09B,EAAM4mhC,UAAW,EACjB,MACJ,IAAK,uBACDhuhC,KAAK079B,kBAAkB+gD,qBAAuB9qrB,EAAQ8qrB,qBACtDz8gC,KAAKuohC,uBAAyBvohC,KAAK+v3B,eAAe/v3B,KAAK079B,kBAAkB+gD,sBACzEr1gC,EAAM4mhC,UAAW,EAG7B,EACA7I,EAASx0gC,UAAUu9gC,YAAc,WACzBluhC,KAAKq4V,UACL7vE,GAAS,CAACxoR,KAAKmV,SAAU,SAGzB8yQ,GAAY,CAACjoR,KAAKmV,SAAU,QAEpC,EACAgwgC,EAASx0gC,UAAU29gC,+BAAiC,SAAU38rB,EAASC,EAASxqV,GAC5E,IAAK,IAAIkI,EAAK,EAAGgmC,EAAK71C,OAAO8E,KAAKotV,GAAUriV,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CAEjD,0BADFgmC,EAAGhmC,GAEVtP,KAAKwohC,wBAA0BxohC,KAAK+v3B,eAAep+hB,EAAQqsqB,wBAG3D52/B,EAAM4mhC,UAAW,EACbhuhC,KAAKg+9B,aACLh+9B,KAAKg+9B,YAAYnloB,UAG7B,CACJ,EACAssrB,EAASx0gC,UAAU09gC,+BAAiC,SAAU18rB,EAASC,EAASxqV,GAC5E,IAAK,IAAIkI,EAAK,EAAGgmC,EAAK71C,OAAO8E,KAAKotV,GAAUriV,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CAE9D,OADWgmC,EAAGhmC,IAEV,IAAK,aACL,IAAK,QACL,IAAK,SACL,IAAK,wBACDtP,KAAKwlhC,uBACLp+gC,EAAM6mhC,eAAgB,EACtB,MACJ,IAAK,WACDjuhC,KAAK079B,kBAAkBskB,cAAgBrupB,EAAQpuT,SAC/CvjC,KAAKqohC,sBAAwBrohC,KAAK+v3B,eAAe/v3B,KAAK079B,kBAAkBskB,eACxE54+B,EAAM6mhC,eAAgB,EACtB,MACJ,IAAK,gBACGjuhC,KAAKy4/B,eACLz4/B,KAAKy4/B,aAAarh3B,UAClBp3I,KAAKy4/B,aAAe,MAEpB9mqB,EAAQssqB,gBACRj+/B,KAAKy4/B,aAAe,IAAImF,IAAa59/B,OAEzC,MACJ,IAAK,kBACDA,KAAKyohC,uBAAyBzohC,KAAK+v3B,eAAe/v3B,KAAKo89B,cAAciiC,iBACrE,MACJ,IAAK,qBACGr+/B,KAAK4p+B,cACL5p+B,KAAK4p+B,aAAau3C,wBAEtB/5gC,EAAM6mhC,eAAgB,EACtB,MACJ,IAAK,sBACGjuhC,KAAKgg+B,YACLhg+B,KAAKgg+B,WAAWs9B,qBAEpB,MACJ,IAAK,cACL,IAAK,eACL,IAAK,gBACGt9/B,KAAK+lhC,eAAiB/lhC,KAAK6ipB,cAC3B7ipB,KAAK6ipB,aAAai4U,gBAElB969B,KAAKg+9B,aACLh+9B,KAAKg+9B,YAAYnloB,UAErB,MACJ,IAAK,wBACL,IAAK,uBACL,IAAK,kBACL,IAAK,kBACD74V,KAAKq+gC,eAAc,GACnB,MACJ,IAAK,mBACDj3gC,EAAM4mhC,UAAW,EAG7B,CACJ,EACA7I,EAASx0gC,UAAUm1gC,oBAAsB,WACjC9lhC,KAAK6ipB,eACL7ipB,KAAK6ipB,aAAazrgB,UAClBp3I,KAAK6ipB,aAAe,KAE5B,EACAsiY,EAASx0gC,UAAUs1gC,cAAgB,WAC3BjmhC,KAAKgg+B,aACLhg+B,KAAKgg+B,WAAW5o1B,UAChBp3I,KAAKgg+B,WAAa,MAElBhg+B,KAAKg+9B,cACLh+9B,KAAKg+9B,YAAY5m1B,UACjBp3I,KAAKg+9B,YAAc,KAE3B,EAOAmnD,EAASx0gC,UAAUgha,YAAc,WAC7BA,GAAY3xa,KAAKmV,QACrB,EAOAgwgC,EAASx0gC,UAAU+ha,YAAc,WAC7BA,GAAY1ya,KAAKmV,QACrB,EAYAgwgC,EAASx0gC,UAAU49gC,aAAe,SAAU1v7B,EAAO3oD,EAAOkD,EAAK+mxB,GAG3D33iB,GADQxoR,KAAKwuhC,iBAAiB3v7B,EAAO3oD,EAAOkD,EAAK+mxB,GACjCtwZ,IACpB,EAYAs1mB,EAASx0gC,UAAU89gC,eAAiB,SAAU5v7B,EAAO3oD,EAAOkD,EAAK+mxB,SAC/C,IAAVthuB,IAAoBA,EAAQ7+F,KAAK479B,WAAW2D,aAC5C1g4B,GAAS3oD,GAASkD,GAElB6uO,GADYjoR,KAAKwuhC,iBAAiB3v7B,EAAO3oD,EAAOkD,EAAK+mxB,GAClCtwZ,KAInB5nJ,GADoB,GAAGr3Q,MAAMjR,KAAKK,KAAKmV,QAAQ3E,iBAAiB,IAAMq/Z,MAC3CA,IAEnC,EACAs1mB,EAASx0gC,UAAU69gC,iBAAmB,SAAU3v7B,EAAO3oD,EAAOkD,EAAK+mxB,GAC/D,GAAI,CAAC,SAAU,cAAe,QAAS,iBAAiBx1zB,QAAQ3K,KAAK2nZ,cAAgB,EACjF,MAAO,GAEX,IAAIqnkB,EAAYhv9B,KAAKowgC,gBAAgBl69B,GACjC+46B,EAAUjv9B,KAAKowgC,gBAAgBh39B,GAC/Bw4kB,EAAW5xnB,KAAKklnB,kBACpB,GAAIn5S,GAAkBijpB,IAAcjjpB,GAAkBkjpB,KAAar9V,EAC/D,MAAO,GAEXo9V,EAAUxq3B,gBAAgB,GAC1Byq3B,EAAQzq3B,gBAAgB,GACxB,IAAIkq7B,EAAgB1uhC,KAAK479B,WAAW2nB,eAChCv0B,EAAY0/D,IACZ1/D,EAAY0/D,GAEhB,IAAIC,EAAc3uhC,KAAK479B,WAAW4nB,aAC9Bv0B,EAAU0/D,IACV1/D,EAAU0/D,GASd,IAPA,IACI9wD,EADkB799B,KAAK079B,kBAAkBiC,UAAUnwpB,SAAW6upB,IAC/Br89B,KAAK079B,kBAAkBiC,UAAUC,UAChEnp7B,EAAa7wC,KAAKmgB,OAAOir8B,EAAUtt9B,UAAYgthC,EAAchthC,WAAam89B,GAC1Enp7B,EAAW9wC,KAAKC,MAAMor9B,EAAQvt9B,UAAYgthC,EAAchthC,WAAam89B,GACrE+wD,EAAiBn6+B,EACjBo6+B,EAAen6+B,EACfi9hB,EAAQ,GACHrikB,EAAK,EAAG+t+B,EAAUx+4B,EAAOvvF,EAAK+t+B,EAAQj6+B,OAAQkM,IAAM,CACzD,IAAIpP,EAAOm9+B,EAAQ/t+B,GAEnB+s9B,IADAn89B,EAAOF,KAAKk+X,YAAYh+X,IAExB,IAAIq/9B,EAAcv/9B,KAAK479B,WAAW2D,YAC7BxzpB,GAAkBo0f,KAAeng0B,KAAK4p+B,cAAiB5p+B,KAAK479B,WAAWgJ,mBACxErF,EAAcv/9B,KAAK4p+B,aAAaC,kBAAkBt98B,SAAS4zyB,EAAWrpzB,WAAY,KAAKyo9B,aAE3F,IAAInvZ,EAAWpwkB,KAAKgt/B,eAAeztB,EAAar/9B,GAChD,GAAIkwkB,GAAY,EAAG,CACf,GAAIpwkB,KAAK479B,WAAWgJ,iBAAkB,CAClC,IAAImrB,EAAcns/B,KAAKmgB,OAAO4qgC,EAAYjthC,UAAYgthC,EAAchthC,WAAam89B,GACjFpp7B,EAAam6+B,EAAkBx+c,EAAW2/a,EAC1Cr78B,EAAWm6+B,EAAgBz+c,EAAW2/a,CAC1C,CACA,IAAK,IAAI5j/B,EAAIsoC,EAAYtoC,EAAIuoC,EAAUvoC,IACnC,GAAInM,KAAK479B,WAAWgJ,iBAAkB,CAClC,IAAIj0Z,EAAa5kQ,GAAkBo0f,GAA4B,EAAbA,EAClDxuP,EAAMvlkB,KAAKwlnB,EAASxjD,KAAK7hjB,SAASokjB,EAAS75jB,WAAY,KAAK66jB,MAAMpljB,SAASpgB,EAAE2K,WAAY,KAC7F,MAEI,GAAKi1T,GAAkBo0f,GAMnBxuP,EAAMvlkB,KAAKwlnB,EAASxjD,KAAK7hjB,SAASpgB,EAAE2K,WAAY,KAAK66jB,MAAMpljB,SAAS6jjB,EAASt5jB,WAAY,UANzD,CAChC,IAAIvG,EAAW,IAAMs/Z,IAAuB,sBAAwBswZ,EAAa,KAC7E2uN,EAAM,GAAGl+gC,MAAMjR,KAAKiynB,EAASxjD,KAAK7hjB,SAASpgB,EAAE2K,WAAY,KAAKtG,iBAAiBD,IACnFohkB,EAAMvlkB,KAAK0ihC,EAAIvigC,SAAS6jjB,EAASt5jB,WAAY,KACjD,CAMZ,CACJ,CACA,OAAO66jB,CACX,EAQAwzc,EAASx0gC,UAAUwz9B,eAAiB,SAAU4qD,GAC1C,IAAInp4B,EAAMmp4B,aAAiBr+gC,MAASq+gC,EAAQ,CAACA,GACzCC,EAAUhovB,GAAWphJ,EAAG,IACxBqp4B,EAASjovB,GAAWphJ,EAAGh1I,OAAO,GAAG,IACjCmmK,EAAY/2K,KAAKgk+B,mBAAmBgrD,GACpCtipB,EAAU1sY,KAAKgk+B,mBAAmBirD,GACtC,IAAIljtB,GAAkBh1J,KAAcg1J,GAAkB2gE,GAAtD,CAGA,IAAIwipB,EAAqBlvhC,KAAK479B,WAAWgJ,mBAAqB74pB,GAAkBkjtB,EAAO38/B,aAAa,aAChGtyB,KAAKkuqB,WAAW9qqB,OAAS,EACzB6wG,EAAWi76B,EAAqB3igC,SAAS0igC,EAAO38/B,aAAa,WAAY,IAAM,EAQ/E4X,EAAO,CACP6sI,UAAWA,EACX21N,QAPAA,GAFC1sY,KAAK079B,kBAAkBiC,UAAUhtkB,QAAUu+nB,GAAsBD,EAAO/mwB,UAAUh1P,SAAS28Y,MAC5Fo/mB,EAAO/mwB,UAAUh1P,SAAS28Y,KAChBwsjB,IAAa,IAAI569B,KAAKirY,EAAQhrY,WAAYuyG,GAG1Cj0G,KAAK479B,WAAWuzD,wBAAwBzipB,GAKlDqxlB,SAAU/99B,KAAKmshC,aAAa6C,GAC5B75gC,QAAS45gC,GAET5uN,EAAa6uN,EAAQ18/B,aAAa,oBAItC,OAHKy5S,GAAkBo0f,KACnBj2xB,EAAKi2xB,WAAa5zyB,SAAS4zyB,EAAY,KAEpCj2xB,CArBP,CAsBJ,EAOAi7+B,EAASx0gC,UAAU+x9B,oBAAsB,WACrC,OAAI1i+B,KAAKk7+B,2BAA6Bl7+B,KAAKk7+B,0BAA0Bzsa,cAAcrrkB,OAAS,EACjFpD,KAAKk7+B,0BAA0Bzsa,cAEnCzukB,KAAK2j+B,kBAChB,EAOAwhD,EAASx0gC,UAAUy+gC,uBAAyB,WACxC,OAAOpvhC,KAAKov9B,kBAChB,EAQA+1D,EAASx0gC,UAAU0+gC,uBAAyB,SAAUC,GAClDtvhC,KAAKisV,cAAc,CAAEq+L,UAAWglgB,IAAe,EACnD,EASAnK,EAASx0gC,UAAU4+gC,kBAAoB,SAAUxzD,EAAUP,GACvD,IAAI/u8B,EAAQzsB,KAAKmmhC,aAAapqD,GAC1Bjj8B,EAAOij8B,EAAS535B,OAAO,GAAGzjD,cAAgBq78B,EAASnr9B,MAAM,GACzDirgC,EAAc77gC,KAAK67gC,YAAY,GAAK/i/B,GACpC+i/B,IACApv/B,EAAQzsB,KAAKmn+B,gBAAgBx89B,QAAQkxgC,EAAYrgD,GAAa,MAEnD,IAAX/u8B,GAAgBA,IAAUzsB,KAAKw79B,WAGnCx79B,KAAKq99B,WAAWtB,EAAU,KAAM,KAAMtv8B,EAC1C,EAOA04/B,EAASx0gC,UAAU6+gC,oBAAsB,WACrC,OAAOxvhC,KAAKw79B,SAChB,EAOA2pD,EAASx0gC,UAAU8+gC,oBAAsB,SAAUhjgC,GAC/C,GAAIzsB,KAAK4p+B,cAAgB5p+B,KAAK4p+B,aAAaC,kBAAmB,CAC1D,GAAIp98B,EAAQ,GAAKA,GAASzsB,KAAK4p+B,aAAaC,kBAAkBzm+B,OAC1D,OAEJ,IAAI8mC,EAAOlqC,KAAK4p+B,aAAaC,kBAAkBt98B,SAASE,EAAM3V,WAAY,KACtE2gU,EAAY,CAAC,EAEjB,OADAz3U,KAAK4p+B,aAAagqB,kBAAkBn8qB,EAAWhrT,GACxC,CAAE09wB,SAAUjgwB,EAAKigwB,SAAUotM,aAAcrt8B,EAAKqt8B,aAAc9/pB,UAAWA,EAClF,CAEJ,EASA0tsB,EAASx0gC,UAAU++gC,eAAiB,SAAU5yC,EAAYp4+B,GAClD1E,KAAK479B,WAAWgJ,kBAAoB5k+B,KAAK4p+B,cAAgB5p+B,KAAKov9B,mBAAmBhs9B,OAAS,GAC1FpD,KAAK4p+B,aAAak7C,eAAehoC,EAAYp4+B,GAAM,EAE3D,EASAyghC,EAASx0gC,UAAUg/gC,iBAAmB,SAAU7yC,EAAYp4+B,GACpD1E,KAAK479B,WAAWgJ,kBAAoB5k+B,KAAK4p+B,cAAgB5p+B,KAAKov9B,mBAAmBhs9B,OAAS,GAC1FpD,KAAK4p+B,aAAak7C,eAAehoC,EAAYp4+B,GAAM,EAE3D,EASAyghC,EAASx0gC,UAAUkhpB,SAAW,SAAU1yjB,EAAMyw7B,GACtC5vhC,KAAK479B,WAAWi0D,cAAgB9jtB,GAAkB5sO,IAASyw7B,EAC3D5vhC,KAAK479B,WAAWi0D,aAAaD,GAExB5vhC,KAAK479B,WAAWk0D,cACrB9vhC,KAAK479B,WAAWk0D,aAAa3w7B,EAAMyw7B,EAE3C,EAUAzK,EAASx0gC,UAAUo/gC,iBAAmB,SAAUjzC,EAAYkzC,GACpDhwhC,KAAK4p+B,cAAgB5p+B,KAAK4p+B,aAAaC,mBACvC7p+B,KAAK4p+B,aAAam7C,eAAejoC,EAAYkzC,EAErD,EAUA7K,EAASx0gC,UAAUs/gC,kBAAoB,SAAU9xjB,EAAU6b,GACvD,IAAIh6e,KAAKkwhC,sBAIL,MAAMnjgC,MAAM,iCAHZ/sB,KAAKkwhC,sBAAsBC,yBAAyBhyjB,EAAU6b,EAKtE,EASAmriB,EAASx0gC,UAAUy/gC,gBAAkB,SAAUC,GAC3C,IAAIrwhC,KAAKswhC,sBAIL,MAAMvjgC,MAAM,iCAHZ/sB,KAAKswhC,sBAAsBC,yBAAyBF,EAK5D,EAQAlL,EAASx0gC,UAAUkj/B,SAAW,SAAU3p9B,GACpClqC,KAAKug+B,WAAWszB,SAAS3p9B,EAC7B,EASAi7+B,EAASx0gC,UAAU6/gC,yBAA2B,SAAUz5/B,EAAO64X,GAC3D,OAAQ5vZ,KAAK0k+B,UAAa1k+B,KAAK0k+B,UAAUyR,mBAAmBp/8B,EAAO64X,GAAa,EACpF,EAiBAu1nB,EAASx0gC,UAAU8/gC,cAAgB,SAAUC,GACzC,IAAI1whC,KAAKoyqB,kBAIL,MAAMrlpB,MAAM,6BAHZ/sB,KAAKoyqB,kBAAkBu+W,sBAAsBD,EAKrD,EASAvL,EAASx0gC,UAAUy8T,MAAQ,SAAUwjtB,GACjC,IAAI5whC,KAAKkkqB,YAIL,MAAMn3oB,MAAM,uBAHZ/sB,KAAKkkqB,YAAY92V,MAAMwjtB,EAK/B,EAUAzL,EAASx0gC,UAAUmyvB,UAAY,SAAU54tB,EAAMm0hB,GAC3Cr+jB,KAAKug+B,WAAWz9N,UAAU54tB,EAAMm0hB,EACpC,EAUA8md,EAASx0gC,UAAU8q/B,YAAc,SAAUtl+B,EAAIkoiB,GAC3Cr+jB,KAAKug+B,WAAWk7B,YAAYtl+B,EAAIkoiB,EACpC,EAUA8md,EAASx0gC,UAAUuqH,UAAY,SAAU00R,EAAWC,EAASghoB,GACzD,IAAIxW,EAAmB,GAcvB,OAZIA,EADAwW,EACmB7whC,KAAK0k+B,UAAUiS,qBAGf32+B,KAAK62+B,WAExBjnlB,IACAA,EAAY5vZ,KAAKk+X,YAAY0xB,IAE7BC,IACAA,EAAU7vZ,KAAKk+X,YAAY2xB,IAE/BwqnB,EAAmBr6gC,KAAK0k+B,UAAUwT,oBAAoBmiC,EAAkBzqnB,EAAWC,EAEvF,EAUAs1nB,EAASx0gC,UAAUmghC,eAAiB,SAAUlhoB,EAAWC,EAASghoB,GAC9D,IAAIxW,EAAmB,GAcvB,OAZIA,EADAwW,EACmB7whC,KAAK0k+B,UAAUiS,mBAAmB32+B,KAAKu2+B,WAGvCv2+B,KAAKu2+B,UAExB3mlB,IACAA,EAAY5vZ,KAAKk+X,YAAY0xB,IAE7BC,IACAA,EAAU7vZ,KAAKk+X,YAAY2xB,IAE/BwqnB,EAAmBr6gC,KAAK0k+B,UAAUwT,oBAAoBmiC,EAAkBzqnB,EAAWC,EAEvF,EAQAs1nB,EAASx0gC,UAAUku+B,mBAAqB,SAAUkyC,GAC9C,OAAO/whC,KAAK0k+B,UAAUma,mBAAmBkyC,EAC7C,EASA5L,EAASx0gC,UAAUqu+B,sBAAwB,SAAUjo0B,EAAW21N,GAG5D,OAFA31N,EAAY/2K,KAAKk+X,YAAYnnN,GAC7B21N,EAAU1sY,KAAKk+X,YAAYwO,GACpB1sY,KAAK0k+B,UAAUsa,sBAAsBjo0B,EAAW21N,EAC3D,EAOAy4oB,EAASx0gC,UAAU8t9B,oBAAsB,WACrC,OAAOz+9B,KAAK479B,WAAa579B,KAAK479B,WAAW2D,YAAc,EAC3D,EAQA4lD,EAASx0gC,UAAU84/B,oBAAsB,SAAU3N,GAC/C97/B,KAAKg+9B,YAAYyrC,oBAAoB3N,EACzC,EAOAqpB,EAASx0gC,UAAUks+B,cAAgB,WAC/B,OAAO78+B,KAAK0k+B,UAAUmY,eAC1B,EAQAsoC,EAASx0gC,UAAUuu+B,sBAAwB,SAAUC,GACjD,OAAOn/+B,KAAK0k+B,UAAUwa,sBAAsBC,EAChD,EAOAgmC,EAASx0gC,UAAUqghC,qBAAuB,WACtC,OAAOhxhC,KAAKym+B,eAChB,EAQA0+C,EAASx0gC,UAAU0tgC,cAAgB,SAAU4S,QACjB,IAApBA,IAA8BA,GAAkB,GAChDA,GACIjxhC,KAAKm8+B,oBACLn8+B,KAAKm8+B,kBAAkB44B,UAAU7/7B,OAAS,GAC1C+yM,GAAY,CAACjoR,KAAKmV,SAAU06Z,MAEhC7va,KAAKug+B,WAAW9lW,uBAGZz6nB,KAAKk/9B,gBACLl/9B,KAAKk/9B,cAAc0W,mBAAoB,GAEvC51+B,KAAKug+B,YACLvg+B,KAAKug+B,WAAWi0C,uBAEhBx0gC,KAAKk/9B,gBACLl/9B,KAAKk/9B,cAAc0W,mBAAoB,GAGnD,EAOAuvC,EAASx0gC,UAAUughC,iBAAmB,SAAU12rB,GAO5C,OANIA,EACAx6V,KAAKg7nB,eAAe,CAACxgS,IAGrBx6V,KAAKg7nB,iBAEDxgS,GACJ,IAAK,gBACDx6V,KAAKqohC,sBAAwBrohC,KAAK+v3B,eAAe/v3B,KAAK079B,kBAAkBskB,eACxEhg/B,KAAKq+gC,eAAc,GACnB,MACJ,IAAK,qBACDr+gC,KAAKiohC,qBAAuBjohC,KAAK+v3B,eAAe/v3B,KAAK079B,kBAAkBkrD,oBACvE5mhC,KAAK479B,WAAW91U,gBAChB,MACJ,IAAK,oBACD9lpB,KAAKkohC,oBAAsBlohC,KAAK+v3B,eAAe/v3B,KAAK079B,kBAAkBC,mBAClE379B,KAAK6ipB,cACL7ipB,KAAK6ipB,aAAahqT,UAEtB,MACJ,IAAK,yBACD74V,KAAKsohC,yBAA2BtohC,KAAK+v3B,eAAe/v3B,KAAK079B,kBAAkBqiD,wBACvE/9gC,KAAK479B,WAAWgJ,iBAChB5k+B,KAAK479B,WAAWu1D,wBAGhBnxhC,KAAK479B,WAAW91U,gBAEpB,MACJ,IAAK,qBACG9lpB,KAAKgg+B,aACLhg+B,KAAKgg+B,WAAW5o1B,UAChBp3I,KAAKgg+B,WAAa,MAEtBhg+B,KAAKgg+B,WAAa,IAAI40B,IAAY50/B,MAClCA,KAAK2ohC,2BAA6B3ohC,KAAK+v3B,eAAe/v3B,KAAKw4/B,mBAAmB9p0B,QAC9E1uL,KAAK4ohC,4BAA8B5ohC,KAAK+v3B,eAAe/v3B,KAAKw4/B,mBAAmBzj/B,SAC/E/U,KAAK6ohC,2BAA6B7ohC,KAAK+v3B,eAAe/v3B,KAAKw4/B,mBAAmB9r/B,QAC9E,MACJ,IAAK,iBACG1M,KAAKg+9B,cACLh+9B,KAAKg+9B,YAAY5m1B,UACjBp3I,KAAKg+9B,YAAc,MAEvBh+9B,KAAKg+9B,YAAc,IAAI+qC,IAAY/ogC,MACnCA,KAAK0ohC,iBAAmB1ohC,KAAK+v3B,eAAe/v3B,KAAK0pgC,gBACjD,MACJ,IAAK,kBACL,IAAK,wBACG1pgC,KAAKy4/B,eACLz4/B,KAAKy4/B,aAAarh3B,UAClBp3I,KAAKy4/B,aAAe,MAExBz4/B,KAAKy4/B,aAAe,IAAImF,IAAa59/B,MACrCA,KAAKyohC,uBAAyBzohC,KAAK+v3B,eAAe/v3B,KAAKo89B,cAAciiC,iBACrEr+/B,KAAKwohC,wBAA0BxohC,KAAK+v3B,eAAe/v3B,KAAK079B,kBAAkBp94B,MAAM0/6B,uBAChF,MACJ,QACIh+/B,KAAK6lhC,eAAe7lhC,KAAK2nZ,aAGrC,EAOAw9nB,EAASx0gC,UAAUowgC,cAAgB,WAC/B/ghC,KAAKishC,mBACDjshC,KAAK6ipB,cACL7ipB,KAAK6ipB,aAAahqT,UAElB74V,KAAKg+9B,aACLh+9B,KAAKg+9B,YAAYnloB,SAEzB,EAQAssrB,EAASx0gC,UAAUoj/B,gBAAkB,SAAU5++B,GAE3C,IAAI0sM,GADJ1sM,EAAU6xR,GAAW7xR,IACFmd,aAAa,aAChC,OAAIuvL,EACO7hN,KAAK0k+B,UAAUuC,eAAeplxB,GAElC,CAAC,CACZ,EAUAsj0B,EAASx0gC,UAAUyghC,gBAAkB,SAAUr62B,EAAW21N,EAASyzb,GAC/D,IACIm+L,EACAC,EAFAj//B,EAAQU,KAGRy2+B,EAAWz2+B,KAAKuq+B,gBAAgBxz8B,MAapC,GAZIggJ,aAAqBt1K,MAA+B,kBAAfs1K,GACrCun1B,EAAavn1B,EACbwn1B,EAAW7xnB,IAGX+pmB,EAAW1/zB,EACXun1B,EAAavn1B,EAAU/2K,KAAK2m+B,YAAY5vzB,WACxCwn1B,EAAWxn1B,EAAU/2K,KAAK2m+B,YAAYj6lB,SAClC1sY,KAAK4p+B,eACLzpK,EAAang0B,KAAK0k+B,UAAUgT,uBAAuB3g0B,KAGvDg1J,GAAkBuyrB,IAAevyrB,GAAkBwyrB,GACnD,OAAO,EAEXD,EAAat+/B,KAAKk+X,YAAYogoB,GAC9BC,EAAWv+/B,KAAKk+X,YAAYqgoB,GAC5B,IAAI3nB,EAAkB52+B,KAAK0k+B,UAAU4R,aAAagoB,EAAYC,GAe9D,OAdKxyrB,GAAkBo0f,IAAeng0B,KAAK4p+B,cAAgB5p+B,KAAK4p+B,aAAaC,kBAAkBzm+B,OAAS,IACpGwz+B,EACI52+B,KAAK0k+B,UAAUsT,uBAAuBh4+B,KAAK4p+B,aAAaC,kBAAkBt98B,SAAS4zyB,EAAWrpzB,WAAY,KAAM8/9B,IAEpHH,IAEIG,EADAH,EAAS1xM,KACS6xM,EAAgBxw+B,QAAO,SAAU2wB,GAAS,OAAOA,EAAMguwB,OAAS0xM,EAAS1xM,IAAM,IAG/E6xM,EAAgBxw+B,QAAO,SAAU2wB,GAC/C,OAAOA,EAAMz3B,EAAMqn+B,YAAYxw8B,MAAQsg9B,EAASn3+B,EAAMqn+B,YAAYxw8B,GACtE,OAGAyg9B,EAAgBxz+B,OAAS,EACrC,EAcA+hhC,EAASx0gC,UAAUst9B,WAAa,SAAU/z7B,EAAMgrC,EAAQy07B,EAAahF,GAClD,QAAXzv7B,GAAqBy07B,GAQrBz/9B,EAAKlqC,KAAK2m+B,YAAY5vzB,WAAa/2K,KAAKk+X,YAAYh0V,EAAKlqC,KAAK2m+B,YAAY5vzB,YAC1E7sI,EAAKlqC,KAAK2m+B,YAAYj6lB,SAAW1sY,KAAKk+X,YAAYh0V,EAAKlqC,KAAK2m+B,YAAYj6lB,YARxExiW,EAAK6sI,UAAY/2K,KAAKk+X,YAAYh0V,EAAK6sI,WACvC7sI,EAAKwiW,QAAU1sY,KAAKk+X,YAAYh0V,EAAKwiW,SAChC3gE,GAAkB7hS,EAAK/0B,WACxB+0B,EAAK/0B,QAAU6xR,GAAW98P,EAAK/0B,WAOvCnV,KAAKq+jB,cAAgBnpf,EACN,QAAXA,IACAl1E,KAAKuq+B,gBAAgBxz8B,MAAQmT,GAEjClqC,KAAKg+9B,YAAYC,WAAW/z7B,EAAMgrC,EAAQy07B,EAAahF,EAC3D,EAOAwgB,EAASx0gC,UAAU0ghC,YAAc,WACzBrxhC,KAAKg+9B,aACLh+9B,KAAKg+9B,YAAYqrC,aAEzB,EAQA8b,EAASx0gC,UAAU2ghC,mBAAqB,SAAUpn/B,GAC9C,IAAI5qC,EAAQU,KACZ,GAAyB,SAArBA,KAAK2nZ,cAA0B57E,GAAkB7hS,GAGrD,GAAI6hS,GAAkB7hS,EAAKlqC,KAAK2m+B,YAAYxw8B,KAAM,CAC9C,GAAyB,WAArBn2B,KAAK2nZ,aAAiD,gBAArB3nZ,KAAK2nZ,aAAiC57E,GAAkB/rU,KAAK479B,YAC9F,OAEJ,IAAI6H,EAAW,CACX1szB,UAAW/2K,KAAK099B,gBAAgB3mzB,UAAY/2K,KAAKk+X,YAAYh0V,EAAKlqC,KAAK2m+B,YAAY5vzB,YACnF21N,QAAS1sY,KAAK099B,gBAAgBhxlB,QAAU1sY,KAAKk+X,YAAYh0V,EAAKlqC,KAAK2m+B,YAAYj6lB,UAC/EqxlB,SAAU/99B,KAAK099B,gBAAgBK,UAC1BhypB,GAAkB7hS,EAAKlqC,KAAK2m+B,YAAY5I,YAAa7z7B,EAAKlqC,KAAK2m+B,YAAY5I,WAEhFhnzB,EAAY/2K,KAAK479B,WAAW21D,gBAAgB,IAAI9vhC,KAAKgi+B,EAAS1szB,YAClE,GAAIA,EAAW,CACX,IAAIiY,EAAQ,IAAM6gP,IAAuB,eAAiB94P,EAAUr1K,UAAY,KAC5E1B,KAAK079B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,IAAMpD,KAAKk/9B,cAActuX,iBACtE5wmB,KAAK4p+B,cAAgB5p+B,KAAK0k+B,YAC7BjB,EAAStjK,WAAang0B,KAAK0k+B,UAAUgT,uBAAuBxt8B,GAC5D8kJ,EAAQ,IAAM6gP,IAAuB,eAAiB94P,EAAUr1K,UAAY,wBAA0B+h+B,EAAStjK,WAAa,MAEhI,IAAIgoK,EAAWno+B,KAAKmV,QAAQykB,cAAco1J,GACtCm5yB,IACAA,EAAS/99B,QACTq59B,EAAStu9B,QAAUgz9B,EACnBno+B,KAAKq5M,OAAOj+E,IAAkBqo2B,GAEtC,CACJ,KACK,CACD,IAAIwS,EAAMj2+B,KAAKgxhC,uBAAuB5qhC,QAAO,SAAUmvB,GACnD,OAAO2U,EAAK5qC,EAAMqn+B,YAAYxw8B,MAAQZ,EAAKj2B,EAAMqn+B,YAAYxw8B,GACjE,IACA,GAAI8/8B,EAAI7y+B,QAAU,EACd,OAEJ,IAAIouhC,EAAcv7C,EAAI,GACtB,GAAI/r8B,EAAKlqC,KAAK2m+B,YAAY0E,gBAAiB,CACvC,IAAIomD,EAAYx7C,EAAI7v+B,QAAO,SAAU8T,GACjC,OAAOA,EAAE5a,EAAMqn+B,YAAY5vzB,WAAWr1K,YAAcwoC,EAAK5qC,EAAMqn+B,YAAY5vzB,WAAWr1K,SAC1F,IACI+vhC,EAAUruhC,OAAS,IACnBouhC,EAAcC,EAAU,GAEhC,CACA,IAAIt8gC,EAAUnV,KAAKmV,QAAQykB,cAAc,kBAAoB43/B,EAAYzsP,KAAO,MAC5E5vxB,IACAnV,KAAK0k+B,UAAUC,iCACf3k+B,KAAK0k+B,UAAUyB,wBAAwB,CAAChx9B,IAAU,GAClDnV,KAAKuq+B,gBAAkB,CAAExz8B,MAAOy6/B,EAAar8gC,QAASA,GAC7B,WAArBnV,KAAK2nZ,aAAiD,gBAArB3nZ,KAAK2nZ,aACtCn/H,GAAS,CAACxoR,KAAKuq+B,gBAAgBp19B,SAAU06Z,KAE7C7va,KAAKq5M,OAAOj+E,IAAmBp7H,KAAKuq+B,iBAE5C,CACJ,EAOA46C,EAASx0gC,UAAU+ghC,oBAAsB,WACjC1xhC,KAAKgg+B,YACLhg+B,KAAKgg+B,WAAWyc,gBAAe,EAEvC,EASA0oC,EAASx0gC,UAAUmmiB,aAAe,WAC1B92iB,KAAKy4/B,cACLz4/B,KAAKy4/B,aAAaj92B,OAE1B,EAOA2p4B,EAASx0gC,UAAU8vgC,sBAAwB,SAAUtgN,GAC7Cng0B,KAAK4p+B,cAAgB5p+B,KAAKk/9B,cAActuX,iBACxC5wmB,KAAK4p+B,aAAa62C,sBAAsBtgN,EAEhD,EAQAglN,EAASx0gC,UAAU+q+B,uBAAyB,SAAUvl9B,EAAIzxB,GACtD,OAAI1E,KAAK4p+B,aACE5p+B,KAAK4p+B,aAAa8R,uBAAuBvl9B,EAAIzxB,GAEjD,IACX,EASAyghC,EAASx0gC,UAAU6zgC,YAAc,SAAUl6f,EAAW5lhB,EAAM+nB,GACxDzsB,KAAK4p+B,aAAa46C,YAAYl6f,EAAW5lhB,EAAM+nB,EACnD,EAQA04/B,EAASx0gC,UAAUg0gC,eAAiB,SAAU7nC,EAAYp4+B,GACtD1E,KAAK4p+B,aAAa+6C,eAAe7nC,EAAYp4+B,EACjD,EAOAyghC,EAASx0gC,UAAUymI,QAAU,WACrBp3I,KAAKy4/B,eACLz4/B,KAAKy4/B,aAAarh3B,UAClBp3I,KAAKy4/B,aAAe,MAExBz4/B,KAAKimhC,gBACLjmhC,KAAK0ya,cACL1ya,KAAKwqc,eACLxqc,KAAK8lhC,sBACD9lhC,KAAK0k+B,YACL1k+B,KAAK0k+B,UAAUtt1B,UACfp3I,KAAK0k+B,UAAY,MAEjB1k+B,KAAKulhC,iBACLvlhC,KAAKulhC,eAAenu4B,UACpBp3I,KAAKulhC,eAAiB,MAEtBvlhC,KAAKwi+B,eACLxi+B,KAAKwi+B,aAAapr1B,UAClBp3I,KAAKwi+B,aAAe,MAEpBxi+B,KAAKk7+B,4BACLl7+B,KAAKk7+B,0BAA0B9j2B,UAC/Bp3I,KAAKk7+B,0BAA4B,MAEjCl7+B,KAAK25hB,eACL35hB,KAAK25hB,aAAaviZ,UAClBp3I,KAAK25hB,aAAe,MAEpB35hB,KAAKkkqB,aACLlkqB,KAAKkkqB,YAAY9shB,UAEjBp3I,KAAK479B,aACL579B,KAAKg7nB,iBACLh7nB,KAAK479B,WAAWxg8B,sBAChBp7B,KAAK479B,WAAWxk1B,UAChBp3I,KAAK479B,WAAa,MAElB579B,KAAKgmhC,sBACLhmhC,KAAKgmhC,oBAAoB5u4B,UACzBp3I,KAAKgmhC,oBAAsB,MAE3BhmhC,KAAKug+B,aACLvg+B,KAAKug+B,WAAWnp1B,UAChBp3I,KAAKug+B,WAAa,MAElBvg+B,KAAK+3+B,aACL/3+B,KAAK+3+B,WAAW3g2B,UAChBp3I,KAAK+3+B,WAAa,MAEtBjx7B,EAAOn2C,UAAUymI,QAAQz3I,KAAKK,MAS9B,IARA,IAQSsP,EAAK,EAAGqihC,EARH,CACV,YAAa,aAAc,iBAAkB,cAAe,oBAAqB,aAAc,eAC/F,sBAAuB,sBAAuB,qBAAsB,eAAgB,oBACpF,oBAAqB,cAAe,wBAAyB,wBAAyB,WAAY,aAClG,kBAAmB,YAAa,iBAAkB,gBAAiB,kBAAmB,cAAe,gBACrG,YAAa,mBAAoB,qBAAsB,eAAgB,cAAe,oBACtF,kBAAmB,kBAAmB,gBAEJrihC,EAAKqihC,EAAUvuhC,OAAQkM,IAAM,CAE/DtP,KAAK,GADQ2xhC,EAAUrihC,IACH,IACxB,CACA+s9B,IAAoBr89B,KAAKmV,SACzB,IAAIozQ,EAAgB,CAACsnJ,IAAUA,IAASA,IAAkBA,KACtD7va,KAAK4vW,WACLrnF,EAAgBA,EAAcnvQ,OAAOpZ,KAAK4vW,SAASj9U,MAAM,OAE7Ds1P,GAAY,CAACjoR,KAAKmV,SAAUozQ,EAChC,EACAwnE,IAAW,CACPjB,GAAS,SACVq2rB,EAASx0gC,UAAW,aAAS,GAChCo/U,IAAW,CACPjB,GAAS,SACVq2rB,EAASx0gC,UAAW,cAAU,GACjCo/U,IAAW,CACPjB,IAAS,IACVq2rB,EAASx0gC,UAAW,qBAAiB,GACxCo/U,IAAW,CACPjB,IAAS,IACVq2rB,EAASx0gC,UAAW,yBAAqB,GAC5Co/U,IAAW,CACPjB,IAAS,IACVq2rB,EAASx0gC,UAAW,oBAAgB,GACvCo/U,IAAW,CACPjB,GAAS,SACVq2rB,EAASx0gC,UAAW,mBAAe,GACtCo/U,IAAW,CACPjB,GAAS,CAAC,MAAO,OAAQ,WAAY,QAAS,YAC/Cq2rB,EAASx0gC,UAAW,aAAS,GAChCo/U,IAAW,CACPjB,GAAS,IAAIrtV,OACd0jhC,EAASx0gC,UAAW,oBAAgB,GACvCo/U,IAAW,CACPjB,GAAS,IAAIrtV,KAAK,KAAM,EAAG,KAC5B0jhC,EAASx0gC,UAAW,eAAW,GAClCo/U,IAAW,CACPjB,GAAS,IAAIrtV,KAAK,KAAM,GAAI,MAC7B0jhC,EAASx0gC,UAAW,eAAW,GAClCo/U,IAAW,CACPjB,MACDq2rB,EAASx0gC,UAAW,kBAAc,GACrCo/U,IAAW,CACPjB,GAAS,cACVq2rB,EAASx0gC,UAAW,oBAAgB,GACvCo/U,IAAW,CACPjB,IAAS,IACVq2rB,EAASx0gC,UAAW,mBAAe,GACtCo/U,IAAW,CACPjB,GAAS,IACVq2rB,EAASx0gC,UAAW,sBAAkB,GACzCo/U,IAAW,CACPjB,GAAS,aACVq2rB,EAASx0gC,UAAW,gBAAY,GACnCo/U,IAAW,CACPjB,GAAS,CAAC,EAAG,EAAG,EAAG,EAAG,KACvBq2rB,EAASx0gC,UAAW,gBAAY,GACnCo/U,IAAW,CACPjB,GAAS,KACVq2rB,EAASx0gC,UAAW,mBAAe,GACtCo/U,IAAW,CACPjB,GAAS,UACVq2rB,EAASx0gC,UAAW,iBAAa,GACpCo/U,IAAW,CACPjB,GAAS,UACVq2rB,EAASx0gC,UAAW,eAAW,GAClCo/U,IAAW,CACPjB,GAAS,OACVq2rB,EAASx0gC,UAAW,kBAAc,GACrCo/U,IAAW,CACPjB,IAAS,IACVq2rB,EAASx0gC,UAAW,2BAAuB,GAC9Co/U,IAAW,CACPjB,IAAS,IACVq2rB,EAASx0gC,UAAW,0BAAsB,GAC7Co/U,IAAW,CACPjB,IAAS,IACVq2rB,EAASx0gC,UAAW,wBAAoB,GAC3Co/U,IAAW,CACPjB,IAAS,IACVq2rB,EAASx0gC,UAAW,qBAAiB,GACxCo/U,IAAW,CACPd,GAAQ,CAAC,EAAGyorB,MACbyN,EAASx0gC,UAAW,iBAAa,GACpCo/U,IAAW,CACPd,GAAQ,CAAC,EAAG0orB,MACbwN,EAASx0gC,UAAW,iBAAa,GACpCo/U,IAAW,CACPjB,IAAS,IACVq2rB,EAASx0gC,UAAW,gCAA4B,GACnDo/U,IAAW,CACPjB,IAAS,IACVq2rB,EAASx0gC,UAAW,wBAAoB,GAC3Co/U,IAAW,CACPjB,MACDq2rB,EAASx0gC,UAAW,0BAAsB,GAC7Co/U,IAAW,CACPjB,MACDq2rB,EAASx0gC,UAAW,yBAAqB,GAC5Co/U,IAAW,CACPjB,MACDq2rB,EAASx0gC,UAAW,0BAAsB,GAC7Co/U,IAAW,CACPjB,MACDq2rB,EAASx0gC,UAAW,yBAAqB,GAC5Co/U,IAAW,CACPjB,MACDq2rB,EAASx0gC,UAAW,2BAAuB,GAC9Co/U,IAAW,CACPjB,MACDq2rB,EAASx0gC,UAAW,oBAAgB,GACvCo/U,IAAW,CACPjB,IAAS,IACVq2rB,EAASx0gC,UAAW,gBAAY,GACnCo/U,IAAW,CACPjB,IAAS,IACVq2rB,EAASx0gC,UAAW,qBAAiB,GACxCo/U,IAAW,CACPjB,IAAS,IACVq2rB,EAASx0gC,UAAW,mBAAe,GACtCo/U,IAAW,CACPjB,IAAS,IACVq2rB,EAASx0gC,UAAW,+BAA2B,GAClDo/U,IAAW,CACPjB,IAAS,IACVq2rB,EAASx0gC,UAAW,8BAA0B,GACjDo/U,IAAW,CACPjB,IAAS,IACVq2rB,EAASx0gC,UAAW,+BAA2B,GAClDo/U,IAAW,CACPjB,IAAS,IACVq2rB,EAASx0gC,UAAW,sBAAkB,GACzCo/U,IAAW,CACPjB,IAAS,IACVq2rB,EAASx0gC,UAAW,qBAAiB,GACxCo/U,IAAW,CACPjB,IAAS,IACVq2rB,EAASx0gC,UAAW,sBAAkB,GACzCo/U,IAAW,CACPjB,GAAS,IACVq2rB,EAASx0gC,UAAW,wBAAoB,GAC3Co/U,IAAW,CACPjB,MACDq2rB,EAASx0gC,UAAW,sBAAkB,GACzCo/U,IAAW,CACPd,GAAQ,CAAC,EAAG2orB,MACbuN,EAASx0gC,UAAW,0BAAsB,GAC7Co/U,IAAW,CACPjB,GAAS,IACVq2rB,EAASx0gC,UAAW,uBAAmB,GAC1Co/U,IAAW,CACPjB,IAAS,IACVq2rB,EAASx0gC,UAAW,2BAAuB,GAC9Co/U,IAAW,CACPjB,IAAS,IACVq2rB,EAASx0gC,UAAW,kCAA8B,GACrDo/U,IAAW,CACPjB,MACDq2rB,EAASx0gC,UAAW,gBAAY,GACnCo/U,IAAW,CACPd,GAAQ,CAAC,EAAGktrB,MACbgJ,EAASx0gC,UAAW,qBAAiB,GACxCo/U,IAAW,CACPjB,GAAS+9oB,MACVs4C,EAASx0gC,UAAW,0BAAsB,GAC7Co/U,IAAW,CACPjB,MACDq2rB,EAASx0gC,UAAW,8BAA0B,GACjDo/U,IAAW,CACPjB,MACDq2rB,EAASx0gC,UAAW,4BAAwB,GAC/Co/U,IAAW,CACPd,GAAQ,CAAC,EAAGtwC,MACbwmuB,EAASx0gC,UAAW,aAAS,GAChCo/U,IAAW,CACPb,GAAW,GAAI09K,MAChBu4gB,EAASx0gC,UAAW,iBAAa,GACpCo/U,IAAW,CACPb,GAAW,GAAI2orB,MAChBsN,EAASx0gC,UAAW,kBAAc,GACrCo/U,IAAW,CACPjB,MACDq2rB,EAASx0gC,UAAW,gBAAY,GACnCo/U,IAAW,CACPjB,MACDq2rB,EAASx0gC,UAAW,qBAAiB,GACxCo/U,IAAW,CACP94T,MACDku/B,EAASx0gC,UAAW,eAAW,GAClCo/U,IAAW,CACP94T,MACDku/B,EAASx0gC,UAAW,iBAAa,GACpCo/U,IAAW,CACP94T,MACDku/B,EAASx0gC,UAAW,iBAAa,GACpCo/U,IAAW,CACP94T,MACDku/B,EAASx0gC,UAAW,uBAAmB,GAC1Co/U,IAAW,CACP94T,MACDku/B,EAASx0gC,UAAW,uBAAmB,GAC1Co/U,IAAW,CACP94T,MACDku/B,EAASx0gC,UAAW,aAAS,GAChCo/U,IAAW,CACP94T,MACDku/B,EAASx0gC,UAAW,cAAU,GACjCo/U,IAAW,CACP94T,MACDku/B,EAASx0gC,UAAW,mBAAe,GACtCo/U,IAAW,CACP94T,MACDku/B,EAASx0gC,UAAW,sBAAkB,GACzCo/U,IAAW,CACP94T,MACDku/B,EAASx0gC,UAAW,qBAAiB,GACxCo/U,IAAW,CACP94T,MACDku/B,EAASx0gC,UAAW,kBAAc,GACrCo/U,IAAW,CACP94T,MACDku/B,EAASx0gC,UAAW,kBAAc,GACrCo/U,IAAW,CACP94T,MACDku/B,EAASx0gC,UAAW,kBAAc,GACrCo/U,IAAW,CACP94T,MACDku/B,EAASx0gC,UAAW,qBAAiB,GACxCo/U,IAAW,CACP94T,MACDku/B,EAASx0gC,UAAW,mBAAe,GACtCo/U,IAAW,CACP94T,MACDku/B,EAASx0gC,UAAW,iBAAa,GACpCo/U,IAAW,CACP94T,MACDku/B,EAASx0gC,UAAW,kBAAc,GACrCo/U,IAAW,CACP94T,MACDku/B,EAASx0gC,UAAW,iBAAa,GACpCo/U,IAAW,CACP94T,MACDku/B,EAASx0gC,UAAW,YAAQ,GAC/Bo/U,IAAW,CACP94T,MACDku/B,EAASx0gC,UAAW,gBAAY,GACnCo/U,IAAW,CACP94T,MACDku/B,EAASx0gC,UAAW,mBAAe,GACtCo/U,IAAW,CACP94T,MACDku/B,EAASx0gC,UAAW,gBAAY,GACnCo/U,IAAW,CACP94T,MACDku/B,EAASx0gC,UAAW,kBAAc,GACrCo/U,IAAW,CACP94T,MACDku/B,EAASx0gC,UAAW,iBAAa,GACpCw0gC,EAAWp1rB,IAAW,CAClBT,IACD61rB,EAEP,CA10F8B,CA00F5B/jhC,IC14FE8kD,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAsBzCwr+B,IAAmC,SAAU9q+B,GAE7C,SAAS8q+B,EAAkBxyhC,GACvB,IAAIE,EAAQwnD,EAAOnnD,KAAKK,KAAMZ,IAAUY,KAQxC,OAPAV,EAAMixW,kBAAmB,EACzBjxW,EAAM2zW,sBAAuB,EAC7B3zW,EAAM+zW,cAAgB,CAAE,MAAS,OAAQ,UAAa,WAAY,WAAc,aAChF/zW,EAAM42W,uBAAyB,KAC/B52W,EAAMyzW,cAAgB,KACtBzzW,EAAM62W,iBAAkB,EACxB72W,EAAMwxW,QAAU,GACTxxW,CACX,CAUA,OArBA4mD,IAAU0r+B,EAAmB9q+B,GAY7B8q+B,EAAkBjhhC,UAAUyJ,OAAS,WACjC,KAAMpa,KAAKmV,UAAYnV,KAAKuwW,kBAAqBvwW,KAAK2rV,aAAgB3rV,KAAKwwW,oBAKvE,OAAO13K,GAAAA,cAAoB,MAAO94L,KAAKgyW,uBAAwB,GAAG54V,OAAOpZ,KAAKZ,MAAM0G,SAAU9F,KAAK8wW,UAJnGhqT,EAAOn2C,UAAUyJ,OAAOza,KAAKK,MAC7BA,KAAKuwW,kBAAmB,CAKhC,EACOqhrB,CACX,CAvBuC,CAuBrCzM,KAEF7vqB,GAAYs8qB,IAAmB,CAAC1hrB,GAAep3K,GAAAA,YCxC/C,IAAI+41B,IAA0B,WAM1B,SAASA,EAAS1p/B,GACdnoC,KAAK8xhC,mBAAqB,OAC1B9xhC,KAAKmoC,OAASA,CAClB,CA+jBA,OA9jBA0p/B,EAASlhhC,UAAUi09B,eAAiB,WAChC,OAAwD,IAAjD5k+B,KAAKmoC,OAAOw/W,YAAYh9Y,QAAQ,WAC3C,EACAknhC,EAASlhhC,UAAUolgC,eAAiB,WAChC,MAAO,EACX,EACA8b,EAASlhhC,UAAUm1oB,cAAgB,WAC/B,EAEJ+rY,EAASlhhC,UAAUwghC,sBAAwB,WACvCh+/B,GAAOnzB,KAAKmV,QAAQykB,cAAc,SAASq6d,iBAAiB3pd,mBAC5D,IAAI05+B,EAAQljhC,GAAc,MAC1BkjhC,EAAMty/B,YAAY1xB,KAAKmoC,OAAOyh8B,aAAaozC,wBAC3C9p5B,GAAQ,CAAC8w5B,GAAQhkhC,KAAKmV,QAAQykB,cAAc,SAASq6d,kBACrDj0f,KAAKmoC,OAAOkxK,OAAOtiL,IAAoB,CAAC,EAC5C,EACA86/B,EAASlhhC,UAAUohhC,WAAa,SAAU7xhC,GACtC,OAAOF,KAAKmoC,OAAO2g/B,YAAY,eAAe5ohC,EAAKyD,SACvD,EACAkuhC,EAASlhhC,UAAUrO,QAAU,SAAUpC,GACnC,OAAOF,KAAKmoC,OAAOo7W,UAAU9jE,WAAWv/U,EAAM,CAAEmlB,OAAQ,IAAKs2E,SAAU37F,KAAKmoC,OAAOm07B,mBACvF,EACAu1D,EAASlhhC,UAAUjP,QAAU,SAAUxB,GACnC,OAAIF,KAAKmoC,OAAOumrB,WACqC,UAA7C1utB,KAAKmoC,OAAOuz7B,kBAAkBns3B,YAAuE,UAA7CvvG,KAAKmoC,OAAOuz7B,kBAAkBns3B,WAC/EvvG,KAAKmoC,OAAOo7W,UAAU9jE,WAAWv/U,EAAM,CAAEmlB,OAAQ,IAAKs2E,SAAU37F,KAAKmoC,OAAOm07B,oBAEhFt89B,KAAKmoC,OAAOo7W,UAAU9jE,WAAWv/U,EAAM,CAAE+yU,SAAU,IAAKt3O,SAAU37F,KAAKmoC,OAAOm07B,oBAElFt89B,KAAKmoC,OAAO4+8B,cAAc7m/B,EACrC,EACA2xhC,EAASlhhC,UAAUqhhC,gBAAkB,SAAU9xhC,GAG3C,OAAOm89B,IAFIr89B,KAAKmoC,OAAOo7W,UAAU9jE,WAAWv/U,EAAM,CAAE+yU,SAAU,OAAQt3O,SAAU37F,KAAKmoC,OAAOm07B,oBAAuB,KAC/Gt89B,KAAKmoC,OAAO2g/B,YAAY,QAAQ5ohC,EAAKyD,UACH,WAC1C,EACAkuhC,EAASlhhC,UAAUshhC,iBAAmB,SAAUpV,GAC5C,IAAI+B,EAAa99gC,GAAc,MAAO,CAAEC,UAAW8ua,MAEnD,OADA78S,GAAOhzH,KAAKi2gC,aAAa4G,GAAU+B,GAC5BA,CACX,EACAiT,EAASlhhC,UAAUslgC,aAAe,SAAU4G,GAGxC,IAFA,IACIqV,EADAlc,EAAY,GAEPnpnB,EAAM,EAAGA,EAAMgwnB,EAAShwnB,IAC7BqloB,EAAiBpxhC,GAAc,MAAO,CAAEC,UAAW8ua,MAC/C7va,KAAKmoC,OAAOyh8B,eAAiB5p+B,KAAKmoC,OAAO+27B,cAActuX,iBAAmB5wmB,KAAKmoC,OAAOyh8B,aAAac,mBACnGwnD,EAAel9/B,aAAa,mBAAoBh1B,KAAKmoC,OAAOyh8B,aAAac,kBAAkBn+8B,SAASsgY,EAAI/1Y,WAAY,KAAKqpzB,WAAWrpzB,YAExIk//B,EAAU5pgC,KAAK8lhC,GAEnB,OAAOlc,CACX,EACA6b,EAASlhhC,UAAUwhhC,aAAe,SAAU71/B,GACpCt8B,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,IAAMpD,KAAKmoC,OAAO+27B,cAActuX,kBACvF5wmB,KAAKmoC,OAAOyh8B,aAAa+yC,iBAAiBrg/B,EAAK1C,cAAc,UAC7D55B,KAAKmoC,OAAOyh8B,aAAa+yC,iBAAiBrg/B,EAAK1C,cAAc,IAAMi2Y,MAE3E,EACAginB,EAASlhhC,UAAUysgC,kBAAoB,SAAUr8gC,GAC7C,IACI2mC,EAAQ5mC,GAAc,QAAS,CAAEC,UAAW8ua,qBADlC9ua,GAAa,MAEvB4mC,EAAQ7mC,GAAc,SAE1B,OADA4mC,EAAMhW,YAAYiW,GACXD,CACX,EACAmq/B,EAASlhhC,UAAUgnZ,kBAAoB,SAAUjwX,GAC7CA,EAAM1S,aAAa,OAAQ,QAC3B0S,EAAM1S,aAAa,aAAch1B,KAAKy3gC,aAAaz3gC,KAAKmoC,OAAOw/W,aACnE,EACAkqoB,EAASlhhC,UAAUyhhC,eAAiB,SAAU1q/B,EAAO8niB,GACjD,IAAIpskB,EAASoskB,EAAQpskB,OACjBoskB,EAAQ,IAAMA,EAAQ,GAAGymC,UACzB7ymB,EAASoskB,EAAQvpkB,KAAI,SAAUrE,GAAS,OAAOA,EAAMq0mB,OAAS,IAAGhkmB,QAAO,SAAU+d,EAAMzZ,GAAQ,OAAOyZ,EAAOzZ,CAAM,KAGxH,IADA,IAAI87gC,EAAcvxhC,GAAc,YACvBqL,EAAI,EAAGA,EAAI/I,EAAQ+I,IACxBkmhC,EAAY3ggC,YAAY5wB,GAAc,QAE1CoyH,GAAQ,CAACm/5B,GAAc3q/B,EAC3B,EACAmq/B,EAASlhhC,UAAU2hhC,iBAAmB,SAAUv9gC,GAC5C,OAAOA,EAAQggR,aAAehgR,EAAQmwP,aAAe,EAAIm3tB,MAA2B,CACxF,EACAw1D,EAASlhhC,UAAU4hhC,eAAiB,SAAUlqhC,GAC1CrI,KAAKwyhC,wBAAwBlo/B,kBAAkB2jH,WAAa5lJ,EAAO4lJ,UACvE,EACA4j4B,EAASlhhC,UAAU8hhC,mBAAqB,SAAUpqhC,GAsB9C,IArBA,IAAIqpnB,EAAc1xnB,KAAKmV,QAAQykB,cAAc,6BACzC0rnB,EAAW5zB,EAAYvhX,YAAcuhX,EAAYlhnB,iBAAiB,gBAAgBpN,OAClFsvhC,EAAY,SAAUzsX,EAAa/mR,GAKnC,IAJA,IAAI+xL,EACA0hd,EAAS,EACT18a,EAAU,EACV28a,EAAa1zoB,GAAU72Y,EAAO4lJ,WAAc5lJ,EAAO4lJ,WAC9C3+I,EAAK,EAAGujhC,EAAgB5sX,EAAa32pB,EAAKujhC,EAAczvhC,OAAQkM,IAAM,CAC3E,IAAI++jB,EAAOwkd,EAAcvjhC,GAEzB,IADA2mmB,GAAW1plB,SAAS8hjB,EAAK/7iB,aAAa,WAAY,KACpC1uB,KAAKiG,MAAM+ohC,EAAattY,GAAW,CAC7Cr0E,EAAc5C,EACd,KACJ,CACAskd,GAAUtkd,EAAKl+T,WACnB,CACK47D,GAAkBklQ,KACnBA,EAAYnrkB,SAAS,GAAGK,MAAM+4Y,EAAQ,QAAU,QAAW0zoB,EAAaD,EAAU,KAE1F,EAESrjhC,EAAK,EAAGwjhC,EADA,CAAC,sBAAuB,uBAAwB,sBAAuB,mBAC5CxjhC,EAAKwjhC,EAAa1vhC,OAAQkM,IAAM,CACxE,IAAIvO,EAAY+xhC,EAAaxjhC,GACzB22pB,EAAc,GAAGr1pB,MAAMjR,KAAKK,KAAKmV,QAAQ3E,iBAAiBzP,IAC9D,GAAIklqB,EAAY7iqB,OAAS,EAAG,CACxB,IAAK,IAAIkyC,EAAK,EAAGy9+B,EAAgB9sX,EAAa3wnB,EAAKy9+B,EAAc3vhC,OAAQkyC,IAAM,CAC7Dy9+B,EAAcz9+B,GACpBxvC,SAAS,GAAGK,MAAMnG,KAAKmoC,OAAOkwT,UAAY,QAAU,QAAU,EAC1E,CACAq6rB,EAAUzsX,EAAajmqB,KAAKmoC,OAAOkwT,UACvC,CACJ,CACJ,EACAw5rB,EAASlhhC,UAAU8uY,cAAgB,SAAU75P,EAAIzwI,GACzCywI,EAAGriH,UACHyvF,GAAO4yB,EAAGriH,SAAUpuB,GAEpBywI,EAAGqwd,SACH9gmB,EAAQ6f,aAAa,UAAW4wH,EAAGqwd,QAAQn/lB,YAE3C8uI,EAAG7kJ,WACHynR,GAAS,CAACrzQ,GAAUywI,EAAG7kJ,UAE/B,EACA8whC,EAASlhhC,UAAUqihC,mBAAqB,WACpC,IAAIC,EAAkB,EAItB,GAHIjzhC,KAAKmoC,OAAO06mB,eACZowY,GAAmB52D,IAAoBr89B,KAAKmoC,OAAO06mB,aAAau7U,qBAEhEp+9B,KAAKmoC,OAAO+27B,cAActuX,gBAAiB,CAC3C,IAAIsib,EAAYlzhC,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KACpDqjnB,IACAD,GAAmBC,EAAUn+vB,aAErC,CACA,OAAOk+vB,CACX,EACApB,EAASlhhC,UAAU+zf,YAAc,SAAU93f,GACnCA,IAASija,IACT38S,GAAQ,CAAClzH,KAAKmV,SAAUnV,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,MAGhE7va,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KAA2Bn+Y,YAAY1xB,KAAKmV,QAE5F,EACA08gC,EAASlhhC,UAAUy7iB,SAAW,SAAU/sQ,GACpCr/S,KAAKmV,QAAUkqS,CACnB,EACAwyuB,EAASlhhC,UAAUy2f,SAAW,WAC1B,OAAOpngB,KAAKmV,OAChB,EACA08gC,EAASlhhC,UAAU6hhC,sBAAwB,WACvC,OAAOxyhC,KAAKmV,QAAQykB,cAAc,IAAMi2Y,IAC5C,EAEAginB,EAASlhhC,UAAUyxgC,aAAe,SAAU7iD,EAAasoB,GACrD,MAAO,EACX,EACAgqC,EAASlhhC,UAAUwihC,qBAAuB,WACtC,MAAO,EACX,EACAtB,EAASlhhC,UAAUwt/B,gBAAkB,WACjC,OAAOn+/B,KAAKw/9B,SAChB,EACAqyD,EAASlhhC,UAAUw8gC,qBAAuB,WACtC,EAEJ0E,EAASlhhC,UAAUkr9B,aAAe,WAC9B,OAAO779B,KAAKu/9B,YAAY,EAC5B,EACAsyD,EAASlhhC,UAAUmr9B,WAAa,WAC5B,OAAO979B,KAAKu/9B,YAAYv/9B,KAAKu/9B,YAAYn89B,OAAS,EACtD,EACAyuhC,EAASlhhC,UAAUi/Y,UAAY,WAC3B,OAAO5vZ,KAAKu/9B,YAAY,EAC5B,EACAsyD,EAASlhhC,UAAUk/Y,QAAU,WACzB,OAAOwskB,IAAar89B,KAAKu/9B,YAAYv/9B,KAAKu/9B,YAAYn89B,OAAS,GAAI,EACvE,EACAyuhC,EAASlhhC,UAAU4y+B,aAAe,WAC9B,IAAIv0B,EAAYhv9B,KAAKmoC,OAAOio+B,gBAAgBpwgC,KAAKmoC,OAAOuz7B,kBAAkB1M,WAI1E,OAHIjjpB,GAAkBijpB,KAClBA,EAAY,IAAIvt9B,KAAK,IAAM,EAAG,EAAG,IAE9But9B,CACX,EACA6iE,EAASlhhC,UAAU6y+B,WAAa,WAC5B,IAAIv0B,EAAUjv9B,KAAKmoC,OAAOio+B,gBAAgBpwgC,KAAKmoC,OAAOuz7B,kBAAkBzM,SAIxE,OAHIljpB,GAAkBkjpB,KAClBA,EAAU,IAAIxt9B,KAAK,IAAM,EAAG,EAAG,IAE5Bwt9B,CACX,EACA4iE,EAASlhhC,UAAUyihC,cAAgB,SAAUlzhC,GACzC,OAAOA,EAAKuC,SAAS,EAAG,EAAG,EAAG,KAAO,IAAIhB,KAAKzB,KAAKmoC,OAAOqv+B,qBAAqB/0gC,SAAS,EAAG,EAAG,EAAG,EACrG,EACAovhC,EAASlhhC,UAAU0ihC,eAAiB,SAAUnzhC,GAC1C,OAAIF,KAAKmoC,OAAOuz7B,kBAAkBjwlB,aAAezrY,KAAKmoC,OAAOuz7B,kBAAkB8B,cAAgB,EACpFx99B,KAAKmoC,OAAOyz7B,WAAWC,eAAen69B,WAAa1B,KAAKmoC,OAAOm17B,iBAAiB579B,WACnF1B,KAAKmoC,OAAOyz7B,WAAWE,aAAap69B,WAAa1B,KAAKmoC,OAAOm17B,iBAAiB579B,UAE/ExB,EAAKE,gBACRJ,KAAKmoC,OAAOm17B,iBAAiBl99B,eAAiBF,EAAKC,aAAeH,KAAKmoC,OAAOm17B,iBAAiBn99B,UACvG,EACA0xhC,EAASlhhC,UAAU2ihC,UAAY,SAAUpzhC,EAAM2n/B,GAE3C,YADiB,IAAbA,IAAuBA,EAAW7n/B,KAAKmoC,OAAOuz7B,kBAAkBmsB,UAChEA,EAASl9+B,QAAQzK,EAAKyD,WAAa,CAI3C,EACAkuhC,EAASlhhC,UAAU4ihC,WAAa,SAAUrzhC,EAAM8u9B,EAAWC,EAAS44B,GAChE,OAAI97qB,GAAkBijpB,KAAcjjpB,GAAkBkjpB,KAGtDD,EAAUxq3B,gBAAgB,GAC1Byq3B,EAAQzq3B,gBAAgB,KACf633B,IAAiBn89B,GAAQm89B,IAAiBrN,IAAcqN,IAAiBn89B,IAASm89B,IAAiBpN,KACvGjv9B,KAAKszhC,UAAUpzhC,EAAM2n/B,IAC9B,EACAgqC,EAASlhhC,UAAUyv9B,eAAiB,SAAUynB,GAC1C,IAAItoB,EAAc,GAElB,GAAgC,SAA5Bv/9B,KAAKmoC,OAAOw/W,aAAsD,iBAA5B3nZ,KAAKmoC,OAAOw/W,YAGlD,IAFA,IACIzxW,EAAQmm7B,IADOA,IAAer89B,KAAKmoC,OAAO+/W,cACEloZ,KAAKmoC,OAAOuz7B,kBAAkBzv9B,gBACrEE,EAAI,EAAG40S,EpCtPH,EoCsPiC/gT,KAAKmoC,OAAOuz7B,kBAAkBlupB,SAAUrhU,EAAI40S,EAAU50S,KAC5FnM,KAAKmoC,OAAOuz7B,kBAAkBqe,aAI1B/5+B,KAAKszhC,UAAUp9+B,EAAO2x8B,KAH1BtoB,EAAYnz9B,KAAK8pC,GAOrBA,EAAQmm7B,IAAanm7B,EAAO,QAG/B,GAAgC,aAA5Bl2C,KAAKmoC,OAAOw/W,aAA0D,qBAA5B3nZ,KAAKmoC,OAAOw/W,YAC3D,CAAIzxW,EAAQmm7B,IAAsBA,IAAer89B,KAAKmoC,OAAO+/W,cAAeloZ,KAAKmoC,OAAOuz7B,kBAAkBzv9B,gBACjGE,EAAI,EAAb,IADA,IACgB075B,EpCpQH,EoCoQiC7n6B,KAAKmoC,OAAOuz7B,kBAAkBlupB,SAAUrhU,EAAI075B,EAAU175B,IAC5FnM,KAAKszhC,UAAUp9+B,EAAO2x8B,IACtBtoB,EAAYnz9B,KAAK8pC,GAErBA,EAAQmm7B,IAAanm7B,EAAO,EALyF,KAQxH,CACD,IAAIgv8B,EAAuC,WAA5Bll/B,KAAKmoC,OAAOw/W,YAA2B3nZ,KAAKmoC,OAAOqr/B,gBAC9DxzhC,KAAKmoC,OAAOuz7B,kBAAkBlupB,SAC9Bt3R,EAAQmm7B,IAAer89B,KAAKmoC,OAAO+/W,cACvC,IACQloZ,KAAKmoC,OAAOuz7B,kBAAkBqe,aAI1B/5+B,KAAKszhC,UAAUp9+B,EAAO2x8B,KAH1BtoB,EAAYnz9B,KAAK8pC,GAOrBA,EAAQmm7B,IAAanm7B,EAAO,SACvBgv8B,IAAa3lB,EAAYn89B,OACtC,CAOA,OANKyk/B,IACD7n/B,KAAKu/9B,YAAcA,GAEnBv/9B,KAAKmoC,OAAO06mB,cACZ7ipB,KAAKmoC,OAAO06mB,aAAa27U,0BAEtBe,CACX,EACAsyD,EAASlhhC,UAAU8s9B,oBAAsB,SAAU7w9B,GAE/C,GADA5M,KAAK8xhC,mBAAqBllhC,EACM,QAA5B5M,KAAKmoC,OAAOw/W,aAAqD,gBAA5B3nZ,KAAKmoC,OAAOw/W,YAA+B,CAChF,GAAI3nZ,KAAKmoC,OAAOuz7B,kBAAkBqe,YAAa,CAC3C,IAAIoZ,EAAYnz/B,KAAKmoC,OAAOuz7B,kBAAkBlupB,SAC9C,OAAO6upB,IAAar89B,KAAKmoC,OAAO+/W,aAAuB,SAATt7Y,EAAkBum/B,GAAaA,EACjF,CAEI,IAAIjz/B,OAAO,EACX,GAAa,SAAT0M,EAEA,IADA1M,EAAOm89B,IAAar89B,KAAKu/9B,YAAY3u9B,OAAO,GAAG,GAAI,IAC3C5Q,KAAKszhC,UAAUpzhC,IACnBA,EAAOm89B,IAAan89B,EAAM,OAG7B,CACDA,EAAOm89B,IAAar89B,KAAKu/9B,YAAY,IAAK,GAC1C,IAAI308B,EAAQ,EACZ,GACQ5qB,KAAKszhC,UAAUpzhC,KACf0qB,GAAS,GAET5qB,KAAKmoC,OAAOuz7B,kBAAkBlupB,WAAa5iT,IAC3C1qB,EAAOm89B,IAAan89B,GAAO,UAE1BF,KAAKmoC,OAAOuz7B,kBAAkBlupB,WAAa5iT,EACxD,CACA,OAAO1qB,CAEf,CACA,IAAIuzhC,EAAsB,SAAT7mhC,EpCjUA,KoCkUjB,OAAOyv9B,IAAar89B,KAAKmoC,OAAO+/W,aAAcuroB,EAAazzhC,KAAKmoC,OAAOuz7B,kBAAkBlupB,SAC7F,EACAqktB,EAASlhhC,UAAU8mgC,aAAe,SAAU3++B,GACxC,IAAI02rB,EAAU12rB,EAAKqrC,OAAO,GAAGzjD,cAAgBoY,EAAK5R,UAAU,GAC5D,OAAOlnB,KAAKmoC,OAAOkje,UAAUtlK,YAAYypX,GAAW,OAAS6sQ,IAAyBr89B,KAAKmoC,OAAOo7W,UAAU9jE,WAAWz/U,KAAKmoC,OAAO+/W,aAAc,CAAEj1E,SAAU,OAAQt3O,SAAU37F,KAAKmoC,OAAOm07B,oBAAsB,SACrN,EACAu1D,EAASlhhC,UAAUur9B,iBAAmB,WAClC,GAAIl89B,KAAKmoC,OAAOumrB,WAAY,CACxB,IAAIjvY,EAAcz/U,KAAKmoC,OAAOuz7B,kBAAkBps3B,WAActvG,KAAKmoC,OAAOuz7B,kBAAkBps3B,WAAa,SACzG,OAAO+s3B,IAAyBr89B,KAAKmoC,OAAOo7W,UAAU9jE,WAAWz/U,KAAKmoC,OAAO+/W,aAAc,CAAE7iY,OAAQo6T,EAAY9jP,SAAU37F,KAAKmoC,OAAOm07B,oBAAsB,SACjK,CACA,OAAOt89B,KAAK0zhC,gBAAgB1zhC,KAAKu/9B,YAAY,GAAIv/9B,KAAKu/9B,YAAYv/9B,KAAKu/9B,YAAYn89B,OAAS,GAChG,EACAyuhC,EAASlhhC,UAAU+ihC,gBAAkB,SAAU9joB,EAAWC,GACtD,IAgBI9yT,EAhBAwmT,EAAYvjZ,KAAKmoC,OAAOo7W,UACxBhzV,EAAOvwD,KAAKmoC,OAAOm07B,kBAIvB,GAHI1skB,IAAcC,IACdA,EAAU,OAET9jF,GAAkB/rU,KAAKmoC,OAAOuz7B,kBAAkBps3B,YAAa,CAE9D,OAMO+s3B,IANFxskB,EAIGtM,EAAU9jE,WAAWmwE,EAAW,CAAEvqY,OAAQrlB,KAAKmoC,OAAOuz7B,kBAAkBps3B,WAAY3T,SAAUprC,IAClG,MAAQgzV,EAAU9jE,WAAWowE,EAAS,CAAExqY,OAAQrlB,KAAKmoC,OAAOuz7B,kBAAkBps3B,WAAY3T,SAAUprC,IAJ7FgzV,EAAU9jE,WAAWmwE,EAAW,CAAEvqY,OAAQrlB,KAAKmoC,OAAOuz7B,kBAAkBps3B,WAAY3T,SAAUprC,IAKnE,WAC1C,CASA,GALIwsC,EADuB,OAAvB/8F,KAAKmoC,OAAOpoC,QAA0C,UAAvBC,KAAKmoC,OAAOpoC,OAC1B8a,GAAS,mBAAoBylU,GAAqB/vR,IAGlD11C,GAAS,QAAe7a,KAAKmoC,OAAOpoC,OAAS,oBAAsBwwD,EAAO,oBAAqBwuR,KAE/G8wE,EACD,OAAOwskB,IAAyB94kB,EAAU9jE,WAAWmwE,EAAW,CAAEvqY,OAAQ03E,EAAgBpB,SAAUprC,IAAS,UAEjH,IAAI++C,EAAavS,EAAetqE,OAAO4zE,oBAsCvC,OAAOg23B,IArCyB,MAA5B/s3B,EAAWn3D,OAAO,EAAG,GACjBy3W,EAAUxvZ,gBAAkByvZ,EAAQzvZ,cAChCwvZ,EAAUzvZ,aAAe0vZ,EAAQ1vZ,WAClBojZ,EAAU9jE,WAAWmwE,EAAW,CAAEvqY,OAAQ,KAAMs2E,SAAUprC,IAAU,MAC/EgzV,EAAU9jE,WAAWowE,EAAS,CAAExqY,OAAQ,eAAgBs2E,SAAUprC,IAGvDgzV,EAAU9jE,WAAWmwE,EAAW,CAAEvqY,OAAQ,SAAUs2E,SAAUprC,IAAU,MACnFgzV,EAAU9jE,WAAWowE,EAAS,CAAExqY,OAAQ,cAAes2E,SAAUprC,IAI1DgzV,EAAU9jE,WAAWmwE,EAAW,CAAEvqY,OAAQ,cAAes2E,SAAUprC,IAAU,MACxFgzV,EAAU9jE,WAAWowE,EAAS,CAAExqY,OAAQ,cAAes2E,SAAUprC,IAGxC,MAA5B++C,EAAWn3D,OAAO,EAAG,GACtBy3W,EAAUxvZ,gBAAkByvZ,EAAQzvZ,cAChCwvZ,EAAUzvZ,aAAe0vZ,EAAQ1vZ,WAClBojZ,EAAU9jE,WAAWmwE,EAAW,CAAEvqY,OAAQ,UAAWs2E,SAAUprC,IAAU,MACpFgzV,EAAU9jE,WAAWowE,EAAS,CAAExqY,OAAQ,WAAYs2E,SAAUprC,IAGnDgzV,EAAU9jE,WAAWmwE,EAAW,CAAEvqY,OAAQ,SAAUs2E,SAAUprC,IAAU,MACnFgzV,EAAU9jE,WAAWowE,EAAS,CAAExqY,OAAQ,eAAgBs2E,SAAUprC,IAI3DgzV,EACX9jE,WAAWmwE,EAAW,CAAEvqY,OAAQ,eAAgBs2E,SAAUprC,IAAU,MACpEgzV,EAAU9jE,WAAWowE,EAAS,CAAExqY,OAAQ,eAAgBs2E,SAAUprC,IAI3DgzV,EAAU9jE,WAAWmwE,EAAW,CAAEvqY,OAAQ03E,EAAgBpB,SAAUprC,IAAU,MACzFgzV,EAAU9jE,WAAWowE,EAAS,CAAExqY,OAAQ03E,EAAgBpB,SAAUprC,IAE5B,WAClD,EACAsh+B,EAASlhhC,UAAUgjhC,qBAAuB,SAAUzzhC,EAAMa,GAMtD,OALWD,GAAc,MAAO,CAC5BC,UAAWA,EACXmoC,UAAW,yBAA2BlpC,KAAKmoC,OAAOo7W,UAAU9jE,WAAWv/U,EAAM,CAAEmlB,OAAQ,IAAKs2E,SAAU37F,KAAKmoC,OAAOm07B,oBAAvG,8BACPD,IAAyBr89B,KAAKmoC,OAAOo7W,UAAU9jE,WAAWv/U,EAAM,CAAEmlB,OAAQ,IAAKs2E,SAAU37F,KAAKmoC,OAAOm07B,oBAAsB,UAAY,UAGnJ,EACAu1D,EAASlhhC,UAAUmtgC,yBAA2B,SAAU/tc,EAAWkoc,EAAQl3gC,GAEvE,QADkB,IAAdA,IAAwBA,EAAY8ua,KACpC7va,KAAKmoC,OAAOuz7B,kBAAkBqiD,uBAAwB,CACtD,IAAI7z+B,EAAO,CAAEigwB,SAAU8tO,EAAO9tO,SAAUotM,aAAc0gC,EAAO1gC,cAGzDpqoB,EAFantW,KAAKmoC,OAAOhzB,QAAQghB,GAAK,IAC3Bn2B,KAAKmoC,OAAOuz7B,kBAAkBwrD,2BACJ,yBAEzCl05B,GADoB,GAAGpiH,MAAMjR,KAAKK,KAAKmoC,OAAOyk/B,2BAAZ5shC,CAAwCkqC,EAAMlqC,KAAKmoC,OAAQ,yBAA0BglU,GAAY,IAC7G4iO,EAC1B,KACK,CACD,IAAI4pb,EAAe74/B,GAAc,MAAO,CAAEC,UAAWA,IACrDf,KAAKmoC,OAAOyD,SAASqs+B,EAAO1gC,aAAa0gC,EAAO9tO,SAAS7xW,WAAYqhkB,GACrE5pb,EAAUr+iB,YAAYio+B,EAC1B,CACJ,EACAk4B,EAASlhhC,UAAUijhC,2BAA6B,WACxC5zhC,KAAKmoC,OAAOyh8B,aAAaC,mBAAqB7p+B,KAAKmoC,OAAOyh8B,aAAaC,kBAAkBzm+B,QAAU,IAGvGpD,KAAKmoC,OAAOyh8B,aAAai1C,uBACzB7+gC,KAAKmoC,OAAOyh8B,aAAaq1C,qBAC7B,EACA4S,EAASlhhC,UAAUkjhC,mBAAqB,SAAU1+gC,IACzCnV,KAAKmoC,OAAO+27B,cAActuX,iBAAmB5wmB,KAAKmoC,OAAOwi9B,eAAiB3q/B,KAAK4k+B,kBAC7E5k+B,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,GAC1DolR,GAAS,CAACrzQ,GAAU06Z,IAE5B,EACAginB,EAASlhhC,UAAUmjhC,eAAiB,WAChC,MAAO,GAAGljhC,MAAMjR,KAAKK,KAAKmV,QAAQ3E,iBAAiB,IAAMq/Z,IAAyB,UAAYA,IAA6B,QAC/H,EACAginB,EAASlhhC,UAAUojhC,YAAc,SAAUh/gC,GACvC,GAAI/U,KAAK4k+B,iBAAkB,CACvB,IAAIovD,EAAch0hC,KAAK8zhC,iBAEnBG,EADcj0hC,KAAKmV,QAAQykB,cAAc,IAAMi2Y,IAA0B,UAC/Cp7I,wBAAwBj2Q,OAASw1gC,EAAY5whC,OAAS,GACpF,GAAI2R,EAAQggR,eAAiBhgR,EAAQmwP,aAAc,CAC/C,IAAIgvxB,EAAiBl0hC,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KACxD9jG,GAAkBmotB,IACnBlpsB,GAAkBkpsB,EAAgB,CAAE,OAAUxmtB,GAAW34T,EAAQmwP,eAEzE,CACA,IAAI0qG,EAAW,IAAMigE,IAAyB,KAAOA,IAAtC,gEACU,GAAGj/Z,MAAMjR,KAAKK,KAAKmV,QAAQ3E,iBAAiBo/V,IAClDvpW,SAAQ,SAAUsjV,GACjC,IAAIssR,EAAUlqS,GAAkB4d,EAAIr3T,aAAa,YAAc,IAAMq3T,EAAIr3T,aAAa,WAClF6hgC,EAAoB5ngC,SAAS0plB,EAAS,IAC1CjrR,GAAkBrB,EAAK,CAAE,MAASjc,GAAWumtB,EAAaE,IAC9D,GACJ,CACJ,EACAtC,EAASlhhC,UAAUy8gC,cAAgB,WAE/B,IADA,IACS99gC,EAAK,EAAG8khC,EADCp0hC,KAAK8zhC,iBACuBxkhC,EAAK8khC,EAAchxhC,OAAQkM,IAAM,CACjE8khC,EAAc9khC,GACpBnJ,MAAMqY,MAAQ,EACtB,CACJ,EACAqzgC,EAASlhhC,UAAU0jhC,sBAAwB,WACvC,OAAOr0hC,KAAKmV,QAAQykB,cAAc,IAAMi2Y,IAC5C,EACAginB,EAASlhhC,UAAU2jhC,6BAA+B,WAC9C,GAAIt0hC,KAAKmoC,OAAOyh8B,cAAgB5p+B,KAAKmoC,OAAOyh8B,aAAaxa,mBAAmBhs9B,OAAS,EAEjF,IADA,IACSkM,EAAK,EAAGilhC,EADD,GAAG3jhC,MAAMjR,KAAKK,KAAKmV,QAAQ3E,iBAAiB,IAAMq/Z,MACxBvga,EAAKilhC,EAAYnxhC,OAAQkM,IAAM,CACrE,IAAI2xQ,EAAOszwB,EAAYjlhC,GACvBupO,GAAaswG,YAAYloE,GACzBpoC,GAAazlN,IAAI6tP,EAAM,QAASjhR,KAAKmoC,OAAOyh8B,aAAai0C,gBAAiB79gC,KAAKmoC,OAAOyh8B,aAC1F,CAER,EACAioD,EAASlhhC,UAAUk/gC,aAAe,SAAUD,GACxC,IAAqE,IAAjE,CAAC,QAAS,iBAAiBjlhC,QAAQ3K,KAAKmoC,OAAOw/W,eAAuB57E,GAAkB6jtB,GAA5F,CAGA,IAAI4E,EAAax0hC,KAAKq0hC,wBAClBj5B,EAAS,IAAI35/B,KAAK469B,IAAe,IAAI569B,MAAMmuhC,IAAaluhC,WAAWA,UACnEw5/B,EAAcs5B,EAAW56/B,cAAc,IAAMi2Y,IAAuB,eAAkBurlB,EAAS,MACnE,UAA5Bp7/B,KAAKmoC,OAAOw/W,aAA2BuzmB,IACnCs5B,EAAWpkxB,YAAcokxB,EAAWzvxB,cAC/B/kQ,KAAKmoC,OAAOkwT,UAIbm8rB,EAAWvm4B,aAAejuJ,KAAKmoC,OAAO+8kB,kBAAkB/0W,YAAc+qvB,EAAYv4sB,WAAau4sB,EAAY/qvB,aAH3GqkxB,EAAWvm4B,WAAait2B,EAAYv4sB,YAM5C6xuB,EAAWrm4B,UAAY+s2B,EAAYt4sB,WAEP,kBAA5B5iT,KAAKmoC,OAAOw/W,aAAmCuzmB,IAC1Cl7/B,KAAKmoC,OAAOkwT,UAIbm8rB,EAAWvm4B,aAAejuJ,KAAKmoC,OAAO+8kB,kBAAkB/0W,YAAc+qvB,EAAYv4sB,WAAau4sB,EAAY/qvB,aAH3GqkxB,EAAWvm4B,WAAait2B,EAAYv4sB,WAjB5C,CAuBJ,EACAkvuB,EAASlhhC,UAAU8jhC,eAAiB,WAChC,GAAIz0hC,KAAKmoC,OAAOwwT,kBAAmB,CAC/B,IAAI8hoB,EAAcz69B,KAAKmV,QAAQykB,cAAc,mBACxCmyS,GAAkB0upB,KACnBz69B,KAAKmoC,OAAO8lH,WAAaws0B,EAAYxs0B,WACrCjuJ,KAAKmoC,OAAOgmH,UAAYss0B,EAAYts0B,UAE5C,CACJ,EACA0j4B,EAASlhhC,UAAU+jhC,qBAAuB,WACtC,GAAI10hC,KAAKmoC,OAAOwwT,kBAAmB,CAC/B,IAAIuypB,EAAUlr/B,KAAKmoC,OAAOhzB,QAAQykB,cAAc,mBAC3CmyS,GAAkBm/qB,IAAan/qB,GAAkB/rU,KAAKmoC,OAAO8lH,aAAgB89K,GAAkB/rU,KAAKmoC,OAAOgmH,aAC5G+81B,EAAQ/81B,UAAYnuJ,KAAKmoC,OAAOgmH,UAChC+81B,EAAQj91B,WAAajuJ,KAAKmoC,OAAO8lH,WAEzC,CACJ,EACA4j4B,EAASlhhC,UAAUgkhC,iBAAmB,WAClC,IAAI/koB,EAAY5vZ,KAAKu/9B,YAAY,GAIjC,OAHIv/9B,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,GAAKpD,KAAKmoC,OAAOyh8B,aAAaC,kBAAkBzm+B,OAAS,IAChHwsZ,EAAY5vZ,KAAKmoC,OAAOyh8B,aAAau6C,yBAAyB,IAE3Dv0nB,CACX,EACAiioB,EAASlhhC,UAAUikhC,eAAiB,WAChC,IAAI/koB,EAAUwskB,IAAar89B,KAAKu/9B,YAAYv/9B,KAAKu/9B,YAAYn89B,OAAS,GAAI,GAI1E,OAHIpD,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,GAAKpD,KAAKmoC,OAAOyh8B,aAAaC,kBAAkBzm+B,OAAS,IAChHysZ,EAAUwskB,IAAar89B,KAAKmoC,OAAOyh8B,aAAau6C,yBAAyBvzgC,OAAO,GAAG,GAAI,IAEpFi/Y,CACX,EACAgioB,EAASlhhC,UAAU4ghC,gBAAkB,SAAUx62B,GAC3C,OAAK/2K,KAAKmoC,OAAOuz7B,kBAAkBiC,UAAUhtkB,QAAsC,UAA5B3wZ,KAAKmoC,OAAOw/W,aAClC,iBAA5B3nZ,KAAKmoC,OAAOw/W,aAA2F,IAAzD3nZ,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OACtF,IAAI3B,KAAKs1K,EAAUt0K,SAAS,EAAG,EAAG,EAAG,IAEX,iBAA5BzC,KAAKmoC,OAAOw/W,aAAkC3nZ,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,GAC1G2zK,EAAUt0K,SAAS,EAAG,EAAG,EAAG,GACrB,IAAIhB,KAAKs1K,EAAUrzK,QAAQ,KAE/B,IACX,EACAmuhC,EAASlhhC,UAAUkkhC,eAAiB,WAChC70hC,KAAKmoC,OAAOyh8B,aAAaK,kBAAoB,GAK7C,IAJA,IAAI6qD,EAAgB90hC,KAAKmoC,OAAO2h8B,oBAAoB8pC,mBAChDf,EAAY7ygC,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMw75B,OAAS95+B,KAAKw/9B,UAAU,GACxEx/9B,KAAKmoC,OAAOyh8B,aAAac,kBACzBj+8B,EAAQ,EACHtgB,EAAI,EAAGA,EAAI0mgC,EAAUzvgC,UACtBqpB,GAASqogC,GADqB3ohC,IAIlCsgB,GAASom/B,EAAUtm/B,SAASpgB,EAAE2K,WAAY,KAAKm/lB,QAC/Cj2mB,KAAKmoC,OAAOyh8B,aAAaK,kBAAkB799B,KAAKymgC,EAAUtm/B,SAASpgB,EAAE2K,WAAY,MAEjF9W,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMw75B,QACpC95+B,KAAKw/9B,UAAU,GAAKx/9B,KAAKmoC,OAAOyh8B,aAAaK,kBAC7Cjq+B,KAAKmoC,OAAO2h8B,oBAAoB4rC,iBAAiB11gC,KAAKmoC,OAAOyh8B,aAAaK,qBAG1Ejq+B,KAAKw/9B,UAAUx/9B,KAAKw/9B,UAAUp89B,OAAS,GAAKpD,KAAKmoC,OAAOyh8B,aAAaK,kBACrEjq+B,KAAKmoC,OAAOyh8B,aAAac,kBAAoB1q+B,KAAKmoC,OAAOyh8B,aAAaK,mBAE1C,UAA5Bjq+B,KAAKmoC,OAAOw/W,cACZ3nZ,KAAKw/9B,UAAUx/9B,KAAKw/9B,UAAUp89B,OAAS,GAAKpD,KAAKw/9B,UAAUx/9B,KAAKw/9B,UAAUp89B,OAAS,GAAGwN,MAAM,EAAG6b,GAC/FzsB,KAAKmoC,OAAOyh8B,aAAaK,kBAAoBjq+B,KAAKw/9B,UAAUx/9B,KAAKw/9B,UAAUp89B,OAAS,GAE5F,EACAyuhC,EAASlhhC,UAAUymI,QAAU,WACrBp3I,KAAKmV,SAAWnV,KAAKmV,QAAQqf,YAC7BrB,GAAOnzB,KAAKmV,SAEhBnV,KAAKmV,QAAU,KACfnV,KAAKu/9B,YAAc,KACnBv/9B,KAAKw/9B,UAAY,IACrB,EACOqyD,CACX,CAzkB8B,GCP1B3r+B,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAwBzC2u+B,IAA8B,SAAUju+B,GAExC,SAASiu+B,EAAa5s/B,GAClB,IAAI7oC,EAAQwnD,EAAOnnD,KAAKK,KAAMmoC,IAAWnoC,KAKzC,OAJAV,EAAM43gC,UAAY,aAClB53gC,EAAMwl+B,sBAAuB,EAC7Bxl+B,EAAM01hC,aAAe,kBACrB11hC,EAAM21hC,YAAc,KACb31hC,CACX,CAmyBA,OA3yBA4mD,IAAU6u+B,EAAcju+B,GASxBiu+B,EAAapkhC,UAAUo8U,cAAgB,WACnC,MAAO,cACX,EACAgosB,EAAapkhC,UAAU2qB,iBAAmB,WACtCt7B,KAAKmoC,OAAO5uB,GAAGwd,IAAsB/2B,KAAKut9B,eAAgBvt9B,MAC1DA,KAAKmoC,OAAO5uB,GAAGwd,IAAiB/2B,KAAKqk/B,aAAcrk/B,KACvD,EACA+0hC,EAAapkhC,UAAUyqB,oBAAsB,WACrCp7B,KAAKmoC,SACLnoC,KAAKmoC,OAAO3uB,IAAIud,IAAsB/2B,KAAKut9B,gBAC3Cvt9B,KAAKmoC,OAAO3uB,IAAIud,IAAiB/2B,KAAKqk/B,cAE9C,EACA0wC,EAAapkhC,UAAU0z+B,aAAe,WAClCrk/B,KAAKi1hC,YAAcj1hC,KAAKmoC,OAAOuz7B,kBAAkBiC,UAAUhtkB,OACvD,IAAIoylB,IAAc/i/B,KAAKmoC,QAAU,IAAIoi9B,IAAWvq/B,KAAKmoC,QACzDnoC,KAAKi1hC,YAAYvxC,qBACjB1j/B,KAAKmoC,OAAOkxK,OAAOtiL,IAAoB,CAAC,EAC5C,EACAg+/B,EAAapkhC,UAAU++oB,gBAAkB,SAAUrvpB,GAC/CL,KAAKmoC,OAAOg19B,wBACZ,IAAI90/B,EAAShI,EAAEgI,OACfrI,KAAKmoC,OAAOkxK,OAAOtiL,IAAqB12B,GACxCL,KAAKk1hC,gBAAgB7shC,GACrBrI,KAAKuyhC,eAAelqhC,GACfrI,KAAKmoC,OAAOumrB,aACb1utB,KAAKmoC,OAAO+27B,cAAchx0B,IAAM7lJ,EAAO8lJ,WAE3CnuJ,KAAKmoC,OAAO+27B,cAAcv71B,KAAOt7H,EAAO4lJ,WACnC89K,GAAkB/rU,KAAKmoC,OAAO637B,aAC/Bhg+B,KAAKmoC,OAAO637B,WAAWyc,iBAE3Bz8+B,KAAKy0hC,gBACT,EACAM,EAAapkhC,UAAUwkhC,eAAiB,SAAU90hC,GAC1CL,KAAKmoC,OAAO+27B,cAAchq5B,QAC1B70E,EAAEgO,gBAEV,EACA0mhC,EAAapkhC,UAAUykhC,iBAAmB,SAAU/0hC,GAC5CL,KAAKmoC,SAAWnoC,KAAKmoC,OAAOgwP,cAC5Bn4R,KAAKmoC,OAAOg19B,wBACZn9/B,KAAKmoC,OAAO+27B,cAAchx0B,IAAM7tJ,EAAEgI,OAAO8lJ,UAEjD,EACA4m4B,EAAapkhC,UAAUukhC,gBAAkB,SAAU7shC,GAC/C,IAAIgthC,EAAYr1hC,KAAKs1hC,sBAChBvptB,GAAkBsptB,KACnBA,EAAUln4B,UAAY9lJ,EAAO8lJ,UAErC,EACA4m4B,EAAapkhC,UAAU488B,eAAiB,SAAUt08B,GAC9C,GAAKjZ,KAAKmoC,OAAV,CAGA,IAAI458B,EAAa/h/B,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KACrDojnB,EAAkBjzhC,KAAKgzhC,qBACvBuC,EAAYv1hC,KAAKs1hC,sBACjBvghC,EAAU/U,KAAKw1hC,uBACf9m2B,EAAS1uL,KAAKwyhC,wBACdiD,EAAiBz1hC,KAAKmoC,OAAOhzB,QAAQ4/Q,aAAek+vB,EAAkBvk2B,EAAOqmG,aACjF/0R,KAAKyngB,iBAAiB1yf,EAASwghC,EAAWE,GAC1Cz1hC,KAAK+zhC,YAAYh/gC,GACjB,IAAI2ghC,EAAiBr5D,MAErB3tyB,EAAOpkJ,kBAAkBnkC,MAAM8S,EAAK4l9B,cAAciuD,WAAa,GAE/Dp+1B,EAAOvoL,MAAM8S,EAAK4l9B,cAAckuD,YAAc,GAC9C,IAAI4I,GAAqB31hC,KAAKmoC,OAAOii9B,sBAAwBr1+B,EAAQo7P,YAAcp7P,EAAQgwP,aACtFg9uB,EAAW5xuB,YAAc4xuB,EAAWh9uB,aAAgBg9uB,EAAW75tB,UAAUh1P,SAAS,qBACnFne,EAAQo7P,YAAcp7P,EAAQgwP,YAAc,GAAK4wxB,GAEjDjn2B,EAAOpkJ,kBAAkBnkC,MAAM8S,EAAK4l9B,cAAcr3tB,QAAUkuxB,EAAiB,EAAI,MAAQ,MAEzFhn2B,EAAOvoL,MAAM8S,EAAK4l9B,cAAc7n2B,SAAW0+5B,EAAiB,EAAIA,EAAiB,EAAI,KAAO,QAI5Fhn2B,EAAOpkJ,kBAAkBnkC,MAAM8S,EAAK4l9B,cAAcr3tB,QAAU,GAE5D94E,EAAOvoL,MAAM8S,EAAK4l9B,cAAc7n2B,SAAW,IAE1C/9G,EAAKyy+B,wBACF1r/B,KAAKmoC,OAAO+27B,cAAcl4hB,WACtBhnc,KAAKmoC,OAAOw/W,YAAYh9Y,QAAQ,aAAe,IAC/CoK,EAAQo5I,UAAYnuJ,KAAKmoC,OAAO+27B,cAAchx0B,KAElDluJ,KAAK41hC,mBACL51hC,KAAKmoC,OAAO+27B,cAAcl4hB,WAAY,IAGlCuulB,IACAA,EAAUpn4B,UAAYnuJ,KAAKmoC,OAAO+27B,cAAchx0B,KAEpDn5I,EAAQo5I,UAAYnuJ,KAAKmoC,OAAO+27B,cAAchx0B,IAC9Cn5I,EAAQk5I,WAAajuJ,KAAKmoC,OAAO+27B,cAAcv71B,OAGnD3jI,KAAKmoC,OAAOuz7B,kBAAkBiC,UAAUhtkB,QACxC3wZ,KAAKmthC,uBAETnthC,KAAK00hC,sBA/CL,CAgDJ,EACAK,EAAapkhC,UAAU82f,iBAAmB,SAAUtyf,EAAS0ghC,EAAkBjt4B,GACvE5oJ,KAAKmoC,OAAOumrB,aAAe1utB,KAAK4k+B,kBAI3B74pB,GAAkB8ptB,KACnBA,EAAiB1vhC,MAAMyiJ,OAAiC,SAAvB5oJ,KAAKmoC,OAAOygH,OAAqB,OAC5D8kL,GAAW9kL,EAAS5oJ,KAAKsyhC,iBAAiBn9gC,KALpDA,EAAQhP,MAAMyiJ,OAAiC,SAAvB5oJ,KAAKmoC,OAAOygH,OAAqB,OAAS8kL,GAAW9kL,EASrF,EACAms4B,EAAapkhC,UAAUilhC,iBAAmB,WACtC,GAAI51hC,KAAKmoC,OAAOko+B,UAAUz54B,UAAW,CACjC,IAAIk/5B,EAAoB91hC,KAAKmV,QAAQykB,cAAc,IAAMi2Y,KACrDimnB,IACA91hC,KAAKw1hC,uBAAuBrn4B,UAAY2n4B,EAAkBlzuB,UAC1D5iT,KAAKmoC,OAAO+27B,cAAchx0B,IAAM4n4B,EAAkBlzuB,UAClD5iT,KAAKmoC,OAAO+27B,cAAcv71B,KAAO,EAEzC,CACJ,EACAox5B,EAAapkhC,UAAUm/gC,aAAe,SAAU3w7B,EAAMyw7B,GAClD,IAAI1vhC,EAAOF,KAAKmoC,OAAOio+B,gBAAgBjx6B,GACvC,IAAK4sO,GAAkB6jtB,GAAa,CAChC,IAAIrqoB,EAAgBvlZ,KAAKmV,QAAQykB,cAAc,IAAMi2Y,IAAyB,eAAiB,IAAIpua,KAAK469B,IAAeuzD,IAAaluhC,UAAY,MAChJ,GAAI6jZ,EACA,GAAIvlZ,KAAKmoC,OAAOkwT,UAAW,CACvB,IAAI6ypB,EAAUlr/B,KAAKmV,QAAQykB,cAAc,IAAMi2Y,KAC/C7va,KAAKw1hC,uBAAuBvn4B,aAAei91B,EAAQ/6uB,YAAco1I,EAAc5iG,WAAa4iG,EAAcp1I,YAC9G,MAEInwQ,KAAKw1hC,uBAAuBvn4B,WAAas3P,EAAc5iG,UAGnE,CACIopB,GAAkB7rU,KAGtBF,KAAKw1hC,uBAAuBrn4B,UAAYnuJ,KAAK+1hC,mBAAmB71hC,GACpE,EACA60hC,EAAapkhC,UAAUk/gC,aAAe,SAAUD,GAC5C5vhC,KAAK8vhC,aAAa,KAAMF,EAC5B,EACAmF,EAAapkhC,UAAUwihC,qBAAuB,WAC1C,IAAIph+B,EAAQ/xD,KAAKoihC,aAAapihC,KAAKu/9B,YAAav/9B,KAAKmoC,OAAOuz7B,kBAAkBmsB,UAC1EmuC,EAAe,GACnB,GAAIh2hC,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,EAAG,CAE1D,GADA4yhC,EAAeh2hC,KAAKmoC,OAAOyh8B,aAAa43C,uBAAuBzv9B,GAC3D/xD,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAM6n6B,mBACpC,KAAkC,IAA3B6vC,EAAa,GAAG5yhC,QACnBpD,KAAKmoC,OAAO8jT,cAAc,CAAEi8D,aAAcloZ,KAAKmoC,OAAOyz7B,WAAW6B,oBAAoBz99B,KAAK8xhC,sBAAuB,GACjH9xhC,KAAKmoC,OAAOyz7B,WAAWwE,iBACnBpg+B,KAAKmoC,OAAO06mB,eACZ7ipB,KAAKmoC,OAAO06mB,aAAau4U,gBAAgBp79B,KAAKmoC,OAAO+/W,cACrDloZ,KAAKmoC,OAAO06mB,aAAa44U,mBAE7B1p6B,EAAQ/xD,KAAKoihC,aAAapihC,KAAKu/9B,YAAav/9B,KAAKmoC,OAAOuz7B,kBAAkBmsB,UAC1EmuC,EAAeh2hC,KAAKmoC,OAAOyh8B,aAAa43C,uBAAuBzv9B,GAGvE,GAAI/xD,KAAKmoC,OAAO+27B,cAActuX,iBAAmB5wmB,KAAKmoC,OAAOyh8B,aAAaC,kBAAkBzm+B,OAAS,EAAG,CACpG,IAAIg9gC,EAAgBpghC,KAAKmoC,OAAOyh8B,aAAaC,kBAAkB7p+B,KAAKmoC,OAAO+27B,cAAc/+J,YACrF+hN,EAAe9B,EAAc7oC,aAAa6oC,EAAcj2O,SAAS62O,gBACjEmB,EAAa/B,EAAc7oC,aAAa6oC,EAAcj2O,SAAS82O,cAEnE+U,EAAe,CADCh2hC,KAAKoihC,aAAahC,EAAc7gD,YAAa6gD,EAAcv4B,SAAUq6B,EAAcC,GAEvG,CACJ,MAEI6T,EAAa5phC,KAAK2lD,GAGtB,OADA/xD,KAAKw/9B,UAAYw2D,EACVA,CACX,EAEAjB,EAAapkhC,UAAUyxgC,aAAe,SAAU7iD,EAAasoB,EAAUouC,EAAeC,QAC5D,IAAlBD,IAA4BA,EAAgBj2hC,KAAKmoC,OAAOko+B,UAAUn69B,YAClD,IAAhBgg/B,IAA0BA,EAAcl2hC,KAAKmoC,OAAOko+B,UAAUj39B,KAIlE,IAHA,IAAI4o+B,EAAU,GACV9r+B,EAAQl2C,KAAKmoC,OAAOio+B,gBAAgB6lB,GACpC78+B,EAAMp5C,KAAKmoC,OAAOio+B,gBAAgB8lB,GAC7B5mhC,EAAK,EAAG+mgC,EAAgB92C,EAAajw9B,EAAK+mgC,EAAcjzgC,OAAQkM,IAAM,CAC3E,IAAI0pH,EAAMq94B,EAAc/mgC,GACpB44Q,EAAY,CAAC2nJ,KACb7va,KAAKozhC,cAAcp65B,IACnBkvJ,EAAU97Q,KAAKyja,KAEnBmymB,EAAQ51gC,KAAK,CACTlM,KAAM84H,EAAKpsH,KAAM,aAAc7L,UAAWmnR,EAAW+tV,QAAS,EAC9D4xY,SAAUA,EAAU74B,UAAW,IAAIvt9B,MAAMy0C,GAAQ+46B,QAAS,IAAIxt9B,MAAM23C,IAE5E,CACA,OAAO4o+B,CACX,EACA+S,EAAapkhC,UAAUwlhC,gBAAkB,SAAUj2hC,GAC/C,OAAQF,KAAKuj/B,eAAe7h/B,WAAaxB,EAAKwB,WAAe1B,KAAKwj/B,aAAa9h/B,WAAaxB,EAAKwB,SACrG,EACAqzhC,EAAapkhC,UAAUw8gC,qBAAuB,WAC1C,IAAI7thC,EAAQU,KACZ,KAAIA,KAAKmoC,OAAOuz7B,kBAAkBxtT,WAAW9qqB,OAAS,GACe,SAAjEpD,KAAKmoC,OAAOuz7B,kBAAkBxtT,WAAWt9pB,OAAO,GAAG,GAAGgtS,QAD1D,CAIA,IAAIvsM,EAAcrxG,KAAKmoC,OAAOm17B,iBAC9B,GAAIt99B,KAAKmoC,OAAOiu/B,mBAAqBp2hC,KAAKm2hC,gBAAgB9k7B,GAEtD,GADuBrxG,KAAKq2hC,+BACPjzhC,OAAS,GAK1B,GAJgB,GAAGwN,MAAMjR,KAAKK,KAAKmV,QAAQ3E,iBAAiB,IAAMq/Z,MACpDzsa,OAAS,GACnBpD,KAAKs2hC,4BAELvqtB,GAAkB/rU,KAAKu2hC,2BAA4B,CACnD,IAAI/otB,EAAW6upB,KAAkD,IAA3Bhr3B,EAAYhuF,aAAuBguF,EAAY/tF,mBACjFkqT,GAAa6upB,MACbrr8B,OAAOoF,YAAW,WACT21S,GAAkBzsU,EAAMi3hC,6BACzBj3hC,EAAMk3hC,iCACNl3hC,EAAMg3hC,4BACNh3hC,EAAMm3hC,kCAEd,GAAGjptB,GAEPxtU,KAAKy2hC,iCACT,OAGAz2hC,KAAKw2hC,sCAITx2hC,KAAKw2hC,gCA5BT,CA8BJ,EACAzB,EAAapkhC,UAAU0lhC,6BAA+B,WAClD,IAAIK,EAAmB,GACvB,IAAK3qtB,GAAkB/rU,KAAKmoC,OAAOyh8B,eAAkB5p+B,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,IACvGpD,KAAKmoC,OAAO+27B,cAActuX,gBAAiB,CAC5C,IAAIhmlB,EAAQ,EACRymF,EAAcgr3B,IAAer89B,KAAKmoC,OAAOm17B,kBAC7C,GAAIt99B,KAAKmoC,OAAO2h8B,qBAAuB9p+B,KAAKmoC,OAAOuz7B,kBAAkB4oB,uBACjEtk/B,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMw75B,OACpC,IAAK,IAAIxq+B,EAAK,EAAGgmC,EAAKt1C,KAAKmoC,OAAOyh8B,aAAaK,kBAAmB369B,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CAEhF+s9B,KADAlyL,EAAW70vB,EAAGhmC,IACUpP,MAAMwB,YAAc2vG,EAAY3vG,WACxDg1hC,EAAiBtqhC,KAAKwe,GAE1BA,GAAS,CACb,MAGA,IAAK,IAAI8qB,EAAK,EAAGE,EAAK51C,KAAKmoC,OAAOyh8B,aAAac,kBAAmBh17B,EAAKE,EAAGxyC,OAAQsyC,IAAM,CACpF,IAAIy0vB,EAAWv0vB,EAAGF,GAElB,IADIjpB,EAAQzsB,KAAKmoC,OAAO6k9B,eAAe7iN,EAASo1L,YAAalu3B,KAChD,EAAG,CACZ,IAAInwC,EAAWlhE,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMw75B,OAC9C95+B,KAAKmoC,OAAOyh8B,aAAaC,kBAAkBzm+B,OAASqpB,EAAS7B,EAAQA,EAAQ6B,EAClFiqgC,EAAiBtqhC,KAAK80D,EAC1B,CACAt2C,GAAS5qB,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMw75B,OAAS,EAAI3vM,EAASo1L,YAAYn89B,MACnF,CAER,KACK,CACD,IAEIqpB,EAFA8y8B,EAAev/9B,KAAKmoC,OAAO+27B,cAActuX,iBAAmB5wmB,KAAKmoC,OAAOyh8B,aAAaC,kBAAkBzm+B,OAAS,EAC9GpD,KAAKmoC,OAAOyh8B,aAAaC,kBAAkB7p+B,KAAKmoC,OAAO+27B,cAAc/+J,YAAYo/J,YAAcv/9B,KAAKu/9B,aACtG9y8B,EAAQzsB,KAAKmoC,OAAO6k9B,eAAeztB,EAAalD,IAAer89B,KAAKmoC,OAAOm17B,qBAClE,GACTo5D,EAAiBtqhC,KAAKqgB,EAE9B,CACA,OAAOiqgC,CACX,EACA3B,EAAapkhC,UAAU6lhC,+BAAiC,WAC/CzqtB,GAAkB/rU,KAAKu2hC,6BACxBvlgC,OAAOqzO,cAAcrkQ,KAAKu2hC,2BAC1Bv2hC,KAAKu2hC,0BAA4B,KACjCv2hC,KAAK22hC,qCAEb,EACA5B,EAAapkhC,UAAU8lhC,gCAAkC,WACrD,IAAIn3hC,EAAQU,KACZA,KAAKu2hC,0BAA4BvlgC,OAAOkzO,aAAY,WAAc5kQ,EAAMg3hC,2BAA6B,GAAGj6D,IAC5G,EACA04D,EAAapkhC,UAAUgmhC,mCAAqC,WAGxD,IAFA,IAAIzuzB,EAAc,IAAM2nM,IAA8B,KAAOA,IAA6B,KAAOA,IAExFvga,EAAK,EAAGsnhC,EADG,GAAGhmhC,MAAMjR,KAAKK,KAAKmV,QAAQ3E,iBAAiB03N,IACd54N,EAAKsnhC,EAAgBxzhC,OAAQkM,IAAM,CAEjF6jB,GADgByjgC,EAAgBtnhC,GAEpC,CACJ,EACAylhC,EAAapkhC,UAAU2lhC,0BAA4B,WAC/C,MAAKt2hC,KAAKmoC,QAAUnoC,KAAKmoC,QAAUnoC,KAAKmoC,OAAOgwP,aAA/C,CAGAn4R,KAAK22hC,qCACL,IAAID,EAAmB12hC,KAAKq2hC,+BACxBQ,EAAW72hC,KAAKmoC,OAAO+8kB,kBAAkB92C,KAAK,GAC9Clgb,EAAMluJ,KAAK+1hC,mBAAmB/1hC,KAAKmoC,OAAOm17B,kBAC1Cw5D,EAAUpptB,GAAWx/K,GACrByib,EAAW/skB,KAAKiG,MAAMqkJ,EAAM2o4B,EAASlld,MAAM,GAAG58S,cAC9CgiwB,EAAgB/2hC,KAAKs1hC,sBACrB0B,EAAU,GAAGpmhC,MAAMjR,KAAKo3hC,EAAcvmhC,iBAAiB,OAC3D,IAAIu7T,GAAkB4kQ,KAAa9ukB,MAAM8ukB,IAAaA,IAAaqmd,EAAQ5zhC,OAA3E,CAIA,IADA,IAAI6zhC,EAAc,GAAGrmhC,MAAMjR,KAAKK,KAAKmV,QAAQ3E,iBAAiB,IAAMq/Z,MAC3D1ja,EAAI,EAAG40S,EAAW21uB,EAAiB,GAAIvqhC,EAAI40S,EAAU50S,IAC1D8qhC,EAAY1qgC,SAASpgB,EAAE2K,WAAY,KAAK4a,YAAY5wB,GAAc,MAAO,CAAEC,UAAW8ua,IAA6B37I,OAAQ,OAAS4iwB,KAExI,IAAK,IAAIxnhC,EAAK,EAAG4nhC,EAAqBR,EAAkBpnhC,EAAK4nhC,EAAmB9zhC,OAAQkM,IAAM,CAC1F,IAAIrM,EAAMi0hC,EAAmB5nhC,GAC7B2nhC,EAAY1qgC,SAAStpB,EAAI6T,WAAY,KAAK4a,YAAY5wB,GAAc,MAAO,CAAEC,UAAW8ua,IAA4B37I,OAAQ,OAAS4iwB,IACzI,CACA,IAAIK,EAAiBr2hC,GAAc,MAAO,CACtCooC,UAAWlpC,KAAKmoC,OAAO4+8B,cAAc/m/B,KAAKmoC,OAAOm17B,kBACjDv89B,UAAW8ua,IACX37I,OAAQ,OAAS4iwB,IAEjBnmd,GAAYqmd,EAAQ5zhC,SACpB6kR,GAAY8uwB,EAAcvmhC,iBAAiB,IAAMq/Z,KAAwBA,KACrEmnnB,EAAQzqgC,SAASokjB,EAAS75jB,WAAY,MACtC0xQ,GAAS,CAACwuwB,EAAQzqgC,SAASokjB,EAAS75jB,WAAY,KAAKm9e,kBAAmBpkF,KAE5E38S,GAAQ,CAACik6B,GAAiBJ,GAC1BI,EAAehxhC,MAAM+nJ,IAAMw/K,GAAWyptB,EAAev0uB,UAAau0uB,EAAepiwB,aAAe,GApBpG,CAXA,CAiCJ,EACAggwB,EAAapkhC,UAAUolhC,mBAAqB,SAAU71hC,GAClD,IAAI8u9B,EAAYhv9B,KAAKuj/B,eAErB,OADgE,IAA1Crj/B,EAAKijB,WAAa6r8B,EAAU7r8B,aAAqBjjB,EAAKkjB,aAAe4r8B,EAAU5r8B,eAC7EpjB,KAAKo3hC,oBAAsBp3hC,KAAKmoC,OAAOuz7B,kBAAkBiC,UAAUC,UACvF599B,KAAKmoC,OAAOuz7B,kBAAkBiC,UAAUnwpB,QAChD,EACAuntB,EAAapkhC,UAAUymhC,kBAAoB,WACvC,OAAO1m/B,WAAW1wC,KAAKmV,QAAQykB,cAAc,IAAMi2Y,KAAsBp7I,wBAAwB7rI,OAAOlmC,QAAQ,GACpH,EACAqy6B,EAAapkhC,UAAU0mhC,aAAe,SAAUn3hC,EAAM0M,EAAMuzzB,GACxD,IAAI3yS,EACArjhB,EAAUrJ,GAAc,OACxB05V,EAAe,GACf2S,EAAantW,KAAKmoC,OAAOhzB,QAAQghB,GAAK,IAC1C,OAAQvpB,GACJ,IAAK,aACD,GAAI5M,KAAKmoC,OAAOuz7B,kBAAkBkrD,mBAAoB,CAClDpsrB,EAAe,qBACf,IAAIvhV,EAAO,CAAE/Y,KAAMA,EAAM0M,KAAMA,GAC3Bmv9B,EAAW/79B,KAAKmoC,OAAOuz7B,kBAAkBirD,uBAC7Cn5f,EAAS,GAAG58gB,MAAMjR,KAAKK,KAAKmoC,OAAOsk/B,uBAAZzshC,CAAoCiZ,EAAMjZ,KAAKmoC,OAAQqyT,EAAc2S,EAAa4unB,EAAWvhoB,GAAc,GACtI,MAEIrwV,EAAQ++B,UAAYlpC,KAAKmoC,OAAOyz7B,WAAWgJ,iBACvC,0CAA8C5k+B,KAAKgyhC,gBAAgB9xhC,GAAQ,UAC3E,6BAAiCm89B,IAAyBr89B,KAAK+xhC,WAAW7xhC,GAAO,UAAjF,2DACgEF,KAAKsC,QAAQpC,GAAQ,SACzFsthB,EAAS,GAAG58gB,MAAMjR,KAAKwK,EAAQg/B,YAEnC,MACJ,IAAK,YACD,GAAInpC,KAAKmoC,OAAOuz7B,kBAAkBiC,UAAUypD,kBAAmB,CAC3D5srB,EAAe,oBACXvhV,EAAO,CAAE/Y,KAAMA,EAAM0M,KAAMA,GAC/B4ghB,EAAS,GAAG58gB,MAAMjR,KAAKK,KAAKmoC,OAAOuk/B,sBAAZ1shC,CAAmCiZ,EAAMjZ,KAAKmoC,OAAQqyT,EAAc2S,EAAa3S,GAAc,GAC1H,MAEIrwV,EAAQ++B,UAAY,SAAWlpC,KAAK0B,QAAQxB,GAAQ,UACpDsthB,EAAS,GAAG58gB,MAAMjR,KAAKwK,EAAQg/B,YAEnC,MACJ,IAAK,YACD,GAAInpC,KAAKmoC,OAAOuz7B,kBAAkBiC,UAAU0pD,kBAAmB,CAC3D7srB,EAAe,oBACXvhV,EAAO,CAAE/Y,KAAMA,EAAM0M,KAAMA,GAC/B4ghB,EAAS,GAAG58gB,MAAMjR,KAAKK,KAAKmoC,OAAOwk/B,sBAAZ3shC,CAAmCiZ,EAAMjZ,KAAKmoC,OAAQqyT,EAAc2S,EAAa3S,GAAc,GAC1H,MAEIgzL,EAAS,GAAG58gB,MAAMjR,KAAKwK,EAAQg/B,YAEnC,MACJ,IAAK,cACD,GAAInpC,KAAKmoC,OAAOuz7B,kBAAkBtgX,aAAc,CACxC2gX,EAAW/79B,KAAKmoC,OAAOuz7B,kBAAkBmrD,iBAC7CrsrB,EAAe,eACXvhV,EAAO,CAAE/Y,KAAMA,EAAM0M,KAAMA,EAAMuzzB,WAAYA,GACjD3yS,EAAS,GAAG58gB,MAAMjR,KAAKK,KAAKmoC,OAAOqk/B,iBAAZxshC,CAA8BiZ,EAAMjZ,KAAKmoC,OAAQqyT,EAAc2S,EAAa4unB,EAAWvhoB,GAAc,GAChI,EAGR,OAAOgzL,CACX,EACAungB,EAAapkhC,UAAUm1oB,cAAgB,WACnC3ynB,GAAOnzB,KAAKmV,QAAQykB,cAAc,aAClC55B,KAAKw33B,eACLx33B,KAAKmoC,OAAOkxK,OAAOtiL,IAAoB,CAAC,EAC5C,EACAg+/B,EAAapkhC,UAAUqshB,aAAe,SAAUpwhB,GAC5C5M,KAAKosjB,SAAStrjB,GAAc,MAAO,CAAEC,UAAW8ua,OAChD,IAAIz9D,EAAU,CAACpyW,KAAKg1hC,aAAch1hC,KAAKk3gC,WACvC9kqB,EAAQhmW,KAAKQ,GACT5M,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMw75B,QACpC1noB,EAAQhmW,KAAK,aAEZpM,KAAKmoC,OAAOuz7B,kBAAkBiC,UAAUhtkB,QACzCnoI,GAAS,CAACxoR,KAAKmV,SAAU,CpC/BN,sBoC+B8BnV,KAAKk3gC,YAEtDl3gC,KAAKmoC,OAAOuz7B,kBAAkB4oB,wBAA0Btk/B,KAAKmoC,OAAO+27B,cAActuX,iBAClFx+P,EAAQhmW,KAAKyja,KAEb7va,KAAKmoC,OAAOwi9B,eAAiB3q/B,KAAKmoC,OAAOi07B,cAAc0uB,kBACvD14oB,EAAQhmW,KAAKyja,KAEjB7va,KAAK0kgB,YAAY93f,GACjB47Q,GAAS,CAACxoR,KAAKmV,SAAUi9V,GACzBpyW,KAAKmV,QAAQuc,YAAY1xB,KAAKo9gC,kBAAkBvtmB,MAChD7va,KAAKmV,QAAQykB,cAAc,SAAS5E,aAAa,OAAQ,gBACzDh1B,KAAKw/9B,UAAYx/9B,KAAKmzhC,uBACtBnzhC,KAAKw33B,eACLx33B,KAAK0siB,gBACD1siB,KAAKmoC,OAAO+27B,cAActuX,kBAAoB5wmB,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,MACtF7va,KAAK4zhC,6BAET5zhC,KAAKmoC,OAAOkxK,OAAOtiL,IAAoB,CAAC,EAC5C,EACAg+/B,EAAapkhC,UAAU6m3B,aAAe,WAClC,IAAI/9Q,EAAK34mB,GAAc,MACnBw2hC,EAASx2hC,GAAc,MAE3B,GADAw2hC,EAAO5lgC,YAAY1xB,KAAKu3hC,qBACpBv3hC,KAAKmoC,OAAOuz7B,kBAAkBiC,UAAUhtkB,OAAQ,CAChD,IAAI6moB,EAAW12hC,GAAc,KAAM,CAAEC,UpC1YlB,kBoC2YnBy2hC,EAAS9lgC,YAAY1xB,KAAKy3hC,oBAC1Bh+a,EAAG/nlB,YAAY8lgC,EACnB,CACA/9a,EAAG/nlB,YAAY4lgC,GACfpk6B,GAAQ,CAACumf,GAAKz5mB,KAAKmV,QAAQykB,cAAc,SAC7C,EACAm7/B,EAAapkhC,UAAU+7hB,cAAgB,WAC/B1siB,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,IACvDpD,KAAKmoC,OAAOyh8B,aAAac,kBAAoBjh5B,GAAO,GAAIzpF,KAAKmoC,OAAOyh8B,aAAaC,kBAAmB,MAAM,IAE9G,IAAIpwX,EAAK34mB,GAAc,MACnB42hC,EAAS52hC,GAAc,MAC3B,GAAId,KAAKmoC,OAAOumrB,WAAY,CACxBgpU,EAAO1igC,aAAa,UAAYh1B,KAAKmoC,OAAOuz7B,kBAAkBiC,UAAUhtkB,OAAS,IAAM,KACvF,IAAIgnoB,EAAkB72hC,GAAc,MAAO,CAAEC,UAAW8ua,MACpD7va,KAAKmoC,OAAOuz7B,kBAAkBiC,UAAUhtkB,QACxCgnoB,EAAgBjmgC,YAAY1xB,KAAK43hC,mBAErCD,EAAgBjmgC,YAAY1xB,KAAK63hC,qBACjCH,EAAOhmgC,YAAYimgC,GACnB9+yB,GAAazlN,IAAIukgC,EAAiB,SAAU33hC,KAAKo1hC,iBAAkBp1hC,MACnE64O,GAAazlN,IAAIukgC,EAAiB1wsB,GAAQyB,eAAgB1oV,KAAKm1hC,eAAgBn1hC,MAC/Ey5mB,EAAG/nlB,YAAYgmgC,EACnB,KACK,CACD,IAAIl8P,EAASx7xB,KAAKw/9B,UAAU5u9B,MAAM,GAC9B5Q,KAAKmoC,OAAO2h8B,qBACZ9p+B,KAAK60hC,iBAET,IAAIv4/B,EAAOt8B,KAAK63hC,oBAEhB,GADAH,EAAOhmgC,YAAY4K,GACft8B,KAAKmoC,OAAOuz7B,kBAAkBiC,UAAUhtkB,OAAQ,CAChD,IAAImnoB,EAAUh3hC,GAAc,MAC5Bg3hC,EAAQpmgC,YAAY1xB,KAAK43hC,mBACzBn+a,EAAG/nlB,YAAYomgC,EACnB,CACAr+a,EAAG/nlB,YAAYgmgC,GACX13hC,KAAKmoC,OAAO2h8B,sBACZ9p+B,KAAKw/9B,UAAYhkM,EACjBx7xB,KAAKmoC,OAAO2h8B,oBAAoBgqC,mBAAmBx3+B,GAE3D,CACAt8B,KAAKmV,QAAQykB,cAAc,SAASlI,YAAY+nlB,EACpD,EACAs7a,EAAapkhC,UAAU8mhC,iBAAmB,WAMtC,IALA,IAIIvr8B,EAJA5vD,EAAOx7B,GAAc,MAAO,CAAEC,UpCtbN,uBoCubxBo8gC,EAAMn9gC,KAAKo9gC,oBACXxwnB,EAAQ9rZ,GAAc,MACtB0npB,EAAWxopB,KAAKw/9B,UAAUp89B,OAErB+I,EAAI,EAAGA,EAAIq8oB,EAAUr8oB,IAAK,CAC/B,IAAI4rhC,EAAQnroB,EAAMzpX,YACd+0d,EAAS,CAAEn3f,UAAW,CAAEf,KAAKw/9B,UAAUjz8B,SAASpgB,EAAE2K,WAAY,KAAK,IAAM9W,KAAKw/9B,UAAUjz8B,SAASpgB,EAAE2K,WAAY,KAAK,GAAG/V,UAAU,IAAM6L,KAAM,cACjJ,GAAI5M,KAAKmoC,OAAOuz7B,kBAAkBkwB,iBAAwE,IAAtD1zf,EAAOn3f,UAAU4J,QAAQkla,KAAgC,CACzGqoF,EAAOn3f,UAAUqL,KAAKyja,KACtB,IAAIkgkB,EAAS/v+B,KAAKmoC,OAAOul/B,qBAAqB1thC,KAAKu/9B,aACnDrne,EAAO30d,SAAW,CAACziC,GAAc,OAAQ,CACjCooC,UAAW,GAAK6m8B,EAChBtmpB,MAAO,CAAE30U,MAAO9U,KAAKmoC,OAAOkje,UAAUtlK,YAAY,QAAU,IAAMgqoB,KAE9E,CACA7j5B,EAAMlsF,KAAKg4hC,SAAS9/hB,GACpBl4f,KAAKmoC,OAAOu0+B,2BAA2BxkhB,EAAQhsa,GAC/C6r8B,EAAMrmgC,YAAYw6D,GAClBix7B,EAAIvj/B,cAAc,SAASlI,YAAYqmgC,EAC3C,CACA,IAAI/Z,EAAMpxnB,EAAMzpX,YACZ80/B,EAA4Bn3hC,GAAc,MAAO,CACjD2oV,MAAO,CACH,SAAY,IAAK,KAAQ,OACzB30U,MAAO9U,KAAKmoC,OAAOkje,UAAUtlK,YAAY,uBAAwB,gBAAiB,QAAS,aAAc,kBAE7GhlW,UAAW8ua,IAAuC,IAAMA,IAAmC,IACvFA,IAAW,IAAMA,MAErB3lY,EAAO,CAAEnpC,UAAW,CAAC8ua,KAAyBjja,KAAM,cAOxD,OANAs/E,EAAMlsF,KAAKg4hC,SAAS9t/B,IAChBxY,YAAYumgC,GAChBj4hC,KAAKmoC,OAAOu0+B,2BAA2Bxy+B,EAAMgiD,GAC7C8x7B,EAAIts/B,YAAYw6D,GAChBix7B,EAAIvj/B,cAAc,SAASlI,YAAYss/B,GACvC1h/B,EAAK5K,YAAYyr/B,GACV7g/B,CACX,EACAy4/B,EAAapkhC,UAAU4mhC,kBAAoB,WACvC,IAAIzqhC,EAAYhM,GAAc,MAAO,CAAEC,UAAW8ua,MAC9CvzY,EAAOx7B,GAAc,MAAO,CAAEC,UAAW8ua,MAC7C/ia,EAAU4kB,YAAY4K,GAKtB,IAJA,IAAI6g/B,EAAMn9gC,KAAKo9gC,oBACXxwnB,EAAQ9rZ,GAAc,KAAM,CAAEC,UAAW8ua,MACzC24O,EAAWxopB,KAAKw/9B,UAAUp89B,OAC1ByvgC,EAAY7ygC,KAAKw/9B,UAAUh3U,EAAW,GACjCr8oB,EAAI,EAAGA,EAAIq8oB,EAAUr8oB,IAAK,CAG/B,IAFA,IAAI6xgC,EAAMpxnB,EAAMzpX,YACZ4uB,EAAQ/xD,KAAKw/9B,UAAUjz8B,SAASpgB,EAAE2K,WAAY,KACzC9G,EAAI,EAAGA,EAAI+hD,EAAM3uD,OAAQ4M,IAC9BgugC,EAAIts/B,YAAY1xB,KAAKg4hC,SAASjm+B,EAAMxlC,SAASvc,EAAE8G,WAAY,OAE/DqmgC,EAAIvj/B,cAAc,SAASlI,YAAYss/B,EAC3C,CAIA,OAHAh+gC,KAAKk4hC,gBAAgB/a,EAAKtK,GAC1B7ygC,KAAKoyhC,eAAejV,EAAKtK,GACzBv2+B,EAAK5K,YAAYyr/B,GACVrwgC,CACX,EACAiohC,EAAapkhC,UAAUunhC,gBAAkB,SAAUxw/B,EAAOuw+B,GAEtD,IADA,IAAI+F,EAAMl9gC,GAAc,KAAM,CAAEC,UAAW8ua,MAClC7/Z,EAAI,EAAGA,EAAIiogC,EAAO70gC,OAAQ4M,IAAK,CACpC,IAAI41I,EAAKn8D,GAAO,CAAC,EAAGwu7B,EAAO1r/B,SAASvc,EAAE8G,WAAY,MAClD8uI,EAAG7kJ,UAAY,CAAC8ua,KAChBjqR,EAAGh5I,KAAO,cACV,IAAI8wgC,EAAM19gC,KAAKg4hC,SAASpy4B,GACxB833B,EAAI1o/B,aAAa,YAAa4wH,EAAG1lJ,KAAKwB,UAAUoV,YAC3Ci1T,GAAkBnmL,EAAGu6qB,YAGjBng0B,KAAKmoC,OAAO+27B,cAActuX,iBAC/B8sa,EAAI1o/B,aAAa,mBAAoB,GAAKh1B,KAAKmoC,OAAO+27B,cAAc/+J,YAHpEu9M,EAAI1o/B,aAAa,mBAAoB,GAAK4wH,EAAGu6qB,YAKjDng0B,KAAKm4hC,eAAeza,GACpBM,EAAIts/B,YAAYgs/B,EACpB,CACAh2+B,EAAM9N,cAAc,SAASlI,YAAYss/B,GACzC,IAAIhsZ,EAAQlxnB,GAAc,SAC1BkxnB,EAAMtgmB,YAAY1xB,KAAKmoC,OAAOu87B,UAAU4d,mBAAmB,WAC3Dpv3B,GAAQ,CAAC8+f,GAAQtqlB,EACrB,EACAqt/B,EAAapkhC,UAAUqnhC,SAAW,SAAUpy4B,GACxC,IAAI0kQ,EAAQxpZ,GAAc,MAE1B,GADAd,KAAKy/Y,cAAc75P,EAAI0kQ,GACnB1kQ,EAAG1lJ,MAAQ0lJ,EAAGh5I,KAAM,CACpB,IAAI+8U,EAAM3pV,KAAKq3hC,aAAazx4B,EAAG1lJ,KAAM0lJ,EAAGh5I,KAAMg5I,EAAGu6qB,YAC7Cx2e,GAAOA,EAAIvmV,QACX4vH,GAAO22N,EAAK2gE,EAEpB,CACKtqZ,KAAKmoC,OAAOsv9B,aAAap7B,IAAe,IAAI569B,KAAK,GAAKmkJ,EAAG1lJ,SAC1DsoR,GAAS,CAAC8hI,GAAQulB,KAEN,mBAAZjqR,EAAGh5I,MACH5M,KAAK89gC,yBAAyBxznB,EAAO1kQ,GAEzB,eAAZA,EAAGh5I,MAAyBg5I,EAAG7kJ,UAAU4J,QAAQkla,MAA2B,IAC5EvlB,EAAMt1X,aAAa,YAAa4wH,EAAG1lJ,KAAKwB,UAAUoV,YAC7Ci1T,GAAkBnmL,EAAGu6qB,aACtB71a,EAAMt1X,aAAa,mBAAoB,GAAK4wH,EAAGu6qB,YAEnDng0B,KAAK8uiB,gBAAgBxkJ,IAEzB,IAAIrxY,EAAO,CAAEkyH,YAAaya,EAAGh5I,KAAMuI,QAASm1Y,EAAOpqZ,KAAM0lJ,EAAG1lJ,KAAMig0B,WAAYv6qB,EAAGu6qB,YAEjF,OADAng0B,KAAKmoC,OAAOm4P,QAAQvpQ,IAAkB9d,GAC/BqxY,CACX,EACAyqoB,EAAapkhC,UAAUwnhC,eAAiB,SAAUhjhC,GAC9C0jO,GAAazlN,IAAIje,EAAS,YAAanV,KAAKmoC,OAAOo9+B,eAAe93D,cAAezt9B,KAAKmoC,OAAOo9+B,gBAC7FvlhC,KAAK8uiB,gBAAgB35hB,EACzB,EACA4/gC,EAAapkhC,UAAUm+hB,gBAAkB,SAAU35hB,GAC/C0jO,GAAazlN,IAAIje,EAAS,QAASnV,KAAKmoC,OAAOo9+B,eAAez4D,UAAW9s9B,KAAKmoC,OAAOo9+B,gBAChFvlhC,KAAKmoC,OAAOumrB,YACb71e,GAAazlN,IAAIje,EAAS,WAAYnV,KAAKmoC,OAAOo9+B,eAAexJ,aAAc/7gC,KAAKmoC,OAAOo9+B,eAEnG,EACAwP,EAAapkhC,UAAUinhC,gBAAkB,WACrC,IAAIt4hC,EAAQU,KACRs8B,EAAOx7B,GAAc,MAAO,CAAEC,UAAW8ua,MACzCstmB,EAAMn9gC,KAAKo9gC,oBACXxwnB,EAAQ9rZ,GAAc,MAY1B,OAFAd,KAAKo4hC,iBATS,SAAU906B,GACpBA,EAAE12G,KAAO02G,EAAElxE,MAAQ,YAAc,YACjCkxE,EAAEviH,UAAYuiH,EAAEjxE,KAAO,CAACw9X,IAAsBA,KAAuB,CAACA,KACtE,IAAImumB,EAAMpxnB,EAAMzpX,YACZ+G,EAAO,CAAEhqC,KAAMojH,EAAEpjH,KAAM0M,KAAM02G,EAAE12G,KAAM7L,UAAWuiH,EAAEviH,WAGtD,OAFAi9gC,EAAIts/B,YAAYpyB,EAAM04hC,SAAS9t/B,IAC/Biz+B,EAAIvj/B,cAAc,SAASlI,YAAYss/B,GAChC165B,CACX,IAEAhnF,EAAK5K,YAAYyr/B,GACV7g/B,CACX,EACAy4/B,EAAapkhC,UAAUknhC,kBAAoB,WACvC,IAAIv7/B,EAAOx7B,GAAc,MAAO,CAAEC,UAAW8ua,MACzCstmB,EAAMn9gC,KAAKo9gC,kBAAkBvtmB,KASjC,OARA7va,KAAK23Z,kBAAkBwlnB,GACvBn9gC,KAAK6zhC,mBAAmB1W,GACxBn9gC,KAAKq4hC,mBAAmBlb,GACxBn9gC,KAAKoyhC,eAAejV,EAAKn9gC,KAAKw/9B,UAAU5u9B,OAAO,GAAG,IAClD0rB,EAAK5K,YAAYyr/B,GACjBn9gC,KAAKm4hC,eAAehb,EAAIvj/B,cAAc,UACtCi/M,GAAazlN,IAAIkJ,EAAM,SAAUt8B,KAAK0vpB,gBAAiB1vpB,MACvD64O,GAAazlN,IAAIkJ,EAAM2qT,GAAQyB,eAAgB1oV,KAAKm1hC,eAAgBn1hC,MAC7Ds8B,CACX,EACAy4/B,EAAapkhC,UAAU0nhC,mBAAqB,SAAU3w/B,GAClD,IAAIk1+B,EAAQl1+B,EAAM9N,cAAc,SAChCo5F,GAAOhzH,KAAK+1gC,iBAAkB6G,GAC9B58gC,KAAKs4hC,yBAAyB5w/B,EAClC,EACAqt/B,EAAapkhC,UAAUolgC,eAAiB,WACpC,IAAIz2gC,EAAQU,KACRoukB,EAAO,GACPqrC,EAAK34mB,GAAc,MACnB8kJ,EAAK9kJ,GAAc,KAAM,CAAE2oV,MAAO,CAAE,gBAAiB,WAYzD,OADAzpV,KAAKo4hC,iBAVS,SAAU906B,GAEpB,IADA,IAAI065B,EAAMvka,EAAGt2kB,YACJ7zB,EAAK,EAAGgmC,EAAKh2C,EAAMkg+B,UAAUlg+B,EAAMkg+B,UAAUp89B,OAAS,GAAIkM,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CACrF,IAAI2ogC,EAAS3i+B,EAAGhmC,GACZougC,EAAMp+gC,EAAMi5hC,gBAAgBtgB,EAAQ305B,EAAGsiC,GAC3Co43B,EAAIts/B,YAAYgs/B,EACpB,CAEA,OADAtvc,EAAKhikB,KAAK4xgC,GACH165B,CACX,IAEO8qd,CACX,EACA2md,EAAapkhC,UAAU4nhC,gBAAkB,SAAUtgB,EAAQ305B,EAAGsiC,GAC1D,IAAI833B,EAAM933B,EAAGziH,YACT80+B,EAAOhia,SACPyna,EAAI1o/B,aAAa,UAAWij/B,EAAOhia,QAAQn/lB,YAE/C,IAAI26V,EAAUzxW,KAAKw4hC,kBAAkBl16B,GACjCm16B,EAAWp8D,IAAe47C,EAAO/3gC,MAChCF,KAAKmoC,OAAOsv9B,aAAaghC,IAC1BhnrB,EAAQrlW,KAAKyja,KAEjBwsjB,IAAao8D,EAAUp8D,IAAiB/42B,EAAEpjH,OAC1C,IAAI0M,EAAO,YAWX,IAV6D,IAAzDqrgC,EAAOl3gC,UAAU4J,QAAQkla,OACzBp+D,EAAQrlW,KAAKyja,KACbjja,EAAO,sBAEP5M,KAAKmoC,OAAOko+B,UAAUz54B,YAAe52H,KAAKmoC,OAAOuz7B,kBAAkBiC,UAAUhtkB,QAC7E3wZ,KAAKuzhC,WAAWkF,EAAUxgB,EAAOjpD,UAAWipD,EAAOhpD,QAASgpD,EAAOpwB,YACjE7n/B,KAAKmoC,OAAOuz7B,kBAAkBiC,UAAUhtkB,QAAU3wZ,KAAKszhC,UAAUmF,EAAUxgB,EAAOpwB,YACpFp2oB,EAAQrlW,KAAKyja,KAEjBrnJ,GAAS,CAACk1vB,GAAMjsqB,GACZzxW,KAAKmoC,OAAOuz7B,kBAAkBtgX,aAAc,CAC5C,IAAI1yF,EAAS,CAAExohB,KAAMu4hC,EAAU7rhC,KAAMA,EAAMuzzB,WAAY83M,EAAO93M,YAG1Dhzd,EAFantW,KAAKmoC,OAAOhzB,QAAQghB,GAAK,IAC3Bn2B,KAAKmoC,OAAOuz7B,kBAAkBmrD,iBACJ,eAEzC7z5B,GADsB,GAAGpiH,MAAMjR,KAAKK,KAAKmoC,OAAOqk/B,iBAAZxshC,CAA8B0ohB,EAAQ1ohB,KAAKmoC,OAAQ,eAAgBglU,GAAY,IAC3FuwqB,EAC5B,CAEA,GADAA,EAAI1o/B,aAAa,YAAayjgC,EAAS/2hC,UAAUoV,aAC5Ci1T,GAAkBkssB,EAAO93M,aAAeng0B,KAAKmoC,OAAO+27B,cAActuX,gBAAiB,CACpF,IAAIuvN,EAAang0B,KAAKmoC,OAAO+27B,cAActuX,gBAAkB5wmB,KAAKmoC,OAAO+27B,cAAc/+J,WACnF83M,EAAO93M,WACXu9M,EAAI1o/B,aAAa,mBAAoB,GAAKmryB,EAC9C,CACA,IAAIlnzB,EAAO,CAAEkyH,YAAav+H,EAAMuI,QAASuogC,EAAKx9gC,KAAMu4hC,EAAUt4N,WAAY83M,EAAO93M,YAEjF,OADAng0B,KAAKmoC,OAAOm4P,QAAQvpQ,IAAkB9d,GAC/BykgC,CACX,EACAqX,EAAapkhC,UAAU6nhC,kBAAoB,SAAUl16B,GACjD,OAAOA,EAAEjxE,KAAO,CAACw9X,KAAwB,CAACA,IAAsBA,IACpE,EACAklnB,EAAapkhC,UAAU2nhC,yBAA2B,SAAU5w/B,GACxD,IAAIsqlB,EAAQlxnB,GAAc,SAC1BkxnB,EAAMtgmB,YAAY1xB,KAAKmoC,OAAOu87B,UAAU4d,sBACpCti/B,KAAKmoC,OAAOuz7B,kBAAkBiC,UAAUhtkB,QACxCqhO,EAAMtgmB,YAAY1xB,KAAKmoC,OAAOu87B,UAAU4d,mBAAmB,kBAE/Dpv3B,GAAQ,CAAC8+f,GAAQtqlB,EACrB,EACAqt/B,EAAapkhC,UAAU6khC,qBAAuB,WAC1C,OAAIx1hC,KAAKmoC,OAAOumrB,aAAe1utB,KAAK4k+B,iBACzB5k+B,KAAKmV,QAAQykB,cAAc,IAAMi2Y,KAGjC7va,KAAKq0hC,uBAEpB,EACAU,EAAapkhC,UAAU2khC,oBAAsB,WACzC,OAAOt1hC,KAAKmV,QAAQykB,cAAc,IAAMi2Y,IAC5C,EACAklnB,EAAapkhC,UAAUw+gC,wBAA0B,SAAUj5+B,GACvD,IACI2n7B,EADkB799B,KAAKmoC,OAAOuz7B,kBAAkBiC,UAAUnwpB,SAAW6upB,IACtCr89B,KAAKmoC,OAAOuz7B,kBAAkBiC,UAAUC,UACvExk7B,EAAM,IAAI33C,KAAKy0C,EAAMx0C,WAEzB,OADA03C,EAAIorD,gBAAgBprD,EAAI91B,kBAAoBu68B,GACrCzk7B,CACX,EACA27+B,EAAapkhC,UAAUynhC,gBAAkB,SAAUn0hC,GAC/C,IAAImqkB,EAAO,GACP4gZ,EAAYhv9B,KAAKuj/B,eACjBt0B,EAAUjv9B,KAAKwj/B,aACfk1C,EAAkB14hC,KAAKmoC,OAAOuz7B,kBAAkBiC,UAAUnwpB,SAAW6upB,IACrEwB,EAAa66D,EAAkB14hC,KAAKmoC,OAAOuz7B,kBAAkBiC,UAAUC,UACvEx69B,EAASQ,KAAKmgB,MAAMs48B,IAAkBwB,GACtC86D,EAAc3pE,EAAUtt9B,UACxBk3hC,EAAY3pE,EAAQvt9B,UACxB,GAAIi3hC,IAAgBC,EAAW,CAC3B,IAAI3k7B,EAAWj0G,KAAKmoC,OAAOuz7B,kBAAkBiC,UAAUnwpB,SAAWxtU,KAAKmoC,OAAOuz7B,kBAAkBiC,UAAUC,UAC1Gx69B,EAAUQ,KAAK8Y,IAAIk8gC,EAAYD,GAAe96D,GAAgB,IAAIp89B,KAAKm3hC,GAAWp3gC,oBAC5E,IAAI/f,KAAKk3hC,GAAan3gC,qBAAuByyF,CACvD,CACKj0G,KAAKmoC,OAAOuz7B,kBAAkBiC,UAAUhtkB,SACzCvtZ,EAAS,GAIb,IAFA,IAAI8yC,EAAQl2C,KAAKmoC,OAAOio+B,gBAAgBpwgC,KAAKmoC,OAAOko+B,UAAUn69B,OAC1DkD,EAAMp5C,KAAKmoC,OAAOio+B,gBAAgBpwgC,KAAKmoC,OAAOko+B,UAAUj39B,KACnDjtC,EAAI,EAAGA,EAAI/I,EAAQ+I,IAAK,CAC7B,IAAIu16B,EAAK,IAAIjg7B,KAAKk3hC,EAAe96D,EAAa1x9B,GAC9C,GAAIkw9B,IAA0B36C,IAAO,IAAIjg7B,KAAKk3hC,GAAan3gC,sBAAwBkg6B,EAAGlg6B,oBAAqB,CACvG,IAAIirY,EAAa,IAAIhrZ,KAAKk3hC,GAAan3gC,oBAAsBkg6B,EAAGlg6B,oBAChEkg6B,EAAK,IAAIjg7B,KAAKig7B,EAAGhg7B,UAAa,IAAY+qZ,EAC9C,CACA,IAAIosoB,EAAmB1shC,GAAKushC,EAAkB76D,GAC1ChxkB,EAAM,CACN3sZ,KAAM,IAAIuB,KAAK,GAAKig7B,GACpBstC,UAAW946B,EACX+46B,QAAS716B,EACThH,MAA6B,IAArBym/B,EACRnxmB,OAASmxmB,EAAmB74hC,KAAKmoC,OAAOuz7B,kBAAkBiC,UAAUC,UAAY,EAChFvr7B,KAAOwm/B,IAAqB74hC,KAAKmoC,OAAOuz7B,kBAAkBiC,UAAUC,UAAY,EAChFhx9B,KAAM,IAEN3I,GACAA,EAAQ4oZ,GAEZuhL,EAAKhikB,KAAKygZ,EACd,CACA,OAAOuhL,CACX,EACA2md,EAAapkhC,UAAU4ghC,gBAAkB,SAAUx62B,GAC/C,IAAK/2K,KAAKmoC,OAAOuz7B,kBAAkBiC,UAAUhtkB,OACzC,OAAO,IAAIlvZ,KAAKs1K,EAAUt0K,SAAS,EAAG,EAAG,EAAG,IAM5C,IAHA,IAAIq2hC,EAAY94hC,KAAKo4hC,kBACjBxooB,EAAY,IAAInuZ,KAAK,IAAIA,KAAKq3hC,EAAU,GAAG54hC,KAAKwB,WAChDe,SAASs0K,EAAU5zJ,WAAY4zJ,EAAU3zJ,aAAc2zJ,EAAUzzJ,oBAC5DnX,EAAI,EAAGA,EAAI2shC,EAAU11hC,OAAQ+I,IAClC,GAAI2shC,EAAUvsgC,SAASpgB,EAAE2K,WAAY,KAAK5W,KAAKwB,UAAYkuZ,EAAUluZ,UAEjE,OADAq1K,EAAUt0K,SAASq2hC,EAAU3shC,EAAI,GAAGjM,KAAKijB,WAAY21gC,EAAU3shC,EAAI,GAAGjM,KAAKkjB,aAAc01gC,EAAU3shC,EAAI,GAAGjM,KAAKojB,mBACxG,IAAI7hB,KAAKs1K,GAI5B,OAAO,IACX,EACAg+2B,EAAapkhC,UAAUymI,QAAU,WAC7B,MAAKp3I,KAAKmoC,QAAUnoC,KAAKmoC,QAAUnoC,KAAKmoC,OAAOgwP,eAG/Cn4R,KAAKw2hC,iCACDx2hC,KAAKmV,SAAS,CACVnV,KAAKi1hC,cACLj1hC,KAAKi1hC,YAAY794B,UACjBp3I,KAAKi1hC,YAAc,MAEvB,IAAI8D,EAAuB/4hC,KAAKq0hC,wBAC5B0E,IACAlgzB,GAAa1lN,OAAO4lgC,EAAsB,SAAU/4hC,KAAK0vpB,iBACzD72a,GAAa1lN,OAAO4lgC,EAAsB9xsB,GAAQyB,eAAgB1oV,KAAKm1hC,iBAEvEn1hC,KAAKmoC,OAAOyh8B,cACZ5p+B,KAAKmoC,OAAOyh8B,aAAaxy1B,UAEzBp3I,KAAKmoC,OAAO69+B,qBACZhmhC,KAAKmoC,OAAO69+B,oBAAoBxlD,cAEpC156B,EAAOn2C,UAAUymI,QAAQz3I,KAAKK,KAClC,CACJ,EACO+0hC,CACX,CA7yBkC,CA6yBhClD,KCr0BE3r+B,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAiBzChiD,IAAqB,SAAU0iD,GAO/B,SAAS1iD,EAAI+jC,GACT,IAAI7oC,EAAQwnD,EAAOnnD,KAAKK,KAAMmoC,IAAWnoC,KAEzC,OADAV,EAAM43gC,UAAY,aACX53gC,CACX,CASA,OAnBA4mD,IAAU9hD,EAAK0iD,GAgBf1iD,EAAIuM,UAAUo8U,cAAgB,WAC1B,MAAO,KACX,EACO3oV,CACX,CArByB,CAqBvB2whC,KCtCE7u+B,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAiBzC4y+B,IAAsB,SAAUly+B,GAOhC,SAASky+B,EAAK7w/B,GACV,IAAI7oC,EAAQwnD,EAAOnnD,KAAKK,KAAMmoC,IAAWnoC,KAEzC,OADAV,EAAM43gC,UAAY,cACX53gC,CACX,CAeA,OAzBA4mD,IAAU8y+B,EAAMly+B,GAWhBky+B,EAAKrohC,UAAUi/Y,UAAY,WACvB,OAAO5vZ,KAAK20hC,kBAChB,EACAqE,EAAKrohC,UAAUk/Y,QAAU,WACrB,OAAO7vZ,KAAK40hC,gBAChB,EAMAoE,EAAKrohC,UAAUo8U,cAAgB,WAC3B,MAAO,MACX,EACOissB,CACX,CA3B0B,CA2BxBjE,KC5CE7u+B,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAuBzCj0C,IAAuB,SAAU20C,GAEjC,SAAS30C,EAAMg2B,GACX,IAAI7oC,EAAQwnD,EAAOnnD,KAAKK,KAAMmoC,IAAWnoC,KAMzC,OALAV,EAAM25hC,cAAgB,OACtB35hC,EAAM43gC,UAAY,eAClB53gC,EAAMwl+B,sBAAuB,EAC7Bxl+B,EAAMi0/B,WAAa,KACnBj0/B,EAAM45hC,WAAa,CAAC,EACb55hC,CACX,CAqqBA,OA9qBA4mD,IAAU/zC,EAAO20C,GAUjB30C,EAAMxB,UAAU2qB,iBAAmB,WAC/Bt7B,KAAKmoC,OAAO5uB,GAAGwd,IAAsB/2B,KAAKm5hC,iBAAkBn5hC,MAC5DA,KAAKmoC,OAAO5uB,GAAGwd,IAAiB/2B,KAAKs6tB,YAAat6tB,MAClDA,KAAKmoC,OAAO5uB,GAAGwd,IAAiB/2B,KAAKo5hC,YAAap5hC,KACtD,EACAmS,EAAMxB,UAAUyqB,oBAAsB,WAC9Bp7B,KAAKmoC,SACLnoC,KAAKmoC,OAAO3uB,IAAIud,IAAsB/2B,KAAKm5hC,kBAC3Cn5hC,KAAKmoC,OAAO3uB,IAAIud,IAAiB/2B,KAAKs6tB,aACtCt6tB,KAAKmoC,OAAO3uB,IAAIud,IAAiB/2B,KAAKo5hC,aAE9C,EAEAjnhC,EAAMxB,UAAU2ptB,YAAc,SAAUrhtB,GACpCjZ,KAAKuz/B,WAAa,IAAIhJ,IAAWvq/B,KAAKmoC,QACtCnoC,KAAKuz/B,WAAW7P,qBAChB1j/B,KAAKmoC,OAAOkxK,OAAOtiL,IAAoB,CAAC,EAC5C,EAEA5kB,EAAMxB,UAAUyohC,YAAc,SAAUrigC,GAAS,EACjD5kB,EAAMxB,UAAU++oB,gBAAkB,SAAUrvpB,GACxCL,KAAKmoC,OAAOg19B,wBACZn9/B,KAAKmoC,OAAOkxK,OAAOtiL,IAAqB12B,GACxCL,KAAKuyhC,eAAelyhC,EAAEgI,QACtBrI,KAAKk1hC,gBAAgB70hC,EAAEgI,QACvBrI,KAAKmoC,OAAO+27B,cAAchx0B,IAAM7tJ,EAAEgI,OAAO8lJ,UACzCnuJ,KAAKmoC,OAAO+27B,cAAcv71B,KAAOtjI,EAAEgI,OAAO4lJ,WAC1CjuJ,KAAKy0hC,gBACT,EACAtihC,EAAMxB,UAAUukhC,gBAAkB,SAAU7shC,GACxC,IAAIgthC,EAAYr1hC,KAAKs1hC,sBACjBD,IACAA,EAAUln4B,UAAY9lJ,EAAO8lJ,UAErC,EACAh8I,EAAMxB,UAAU2khC,oBAAsB,WAClC,OAAOt1hC,KAAKmV,QAAQykB,cAAc,IAAMi2Y,IAC5C,EACA19Z,EAAMxB,UAAUwohC,iBAAmB,SAAUlghC,GACzC,IAAI2igB,EAAe57gB,KAAKgzhC,qBACpBtk2B,EAAS1uL,KAAKwyhC,wBACdz9gC,EAAU/U,KAAKq0hC,wBACfzr4B,EAAS5oJ,KAAKmoC,OAAOhzB,QAAQ4/Q,aAAe6mP,EAAeltV,EAAOqmG,aAClEsgwB,EAAYr1hC,KAAKs1hC,sBACM,SAAvBt1hC,KAAKmoC,OAAOygH,QACZ5oJ,KAAKyngB,iBAAiB1yf,EAASsghC,EAAWzs4B,GAE9C,IAAI8s4B,EAAiBr5D,MAYrB,GAXA3tyB,EAAOpkJ,kBAAkBnkC,MAAM8S,EAAK4l9B,cAAciuD,WAAa,GAC/Dp+1B,EAAOvoL,MAAM8S,EAAK4l9B,cAAckuD,YAAc,GAC1Ch4gC,EAAQo7P,YAAcp7P,EAAQgwP,YAAc,GAC5Cr2E,EAAOpkJ,kBAAkBnkC,MAAM8S,EAAK4l9B,cAAcr3tB,QAAUkuxB,EAAiB,EAAI,MAAQ,MACzFhn2B,EAAOvoL,MAAM8S,EAAK4l9B,cAAc7n2B,SAAW0+5B,EAAiB,EAAIA,EAAiB,EAAI,KAAO,QAG5Fhn2B,EAAOpkJ,kBAAkBnkC,MAAM8S,EAAK4l9B,cAAcr3tB,QAAU,GAC5D94E,EAAOvoL,MAAM8S,EAAK4l9B,cAAc7n2B,SAAW,IAE/Ch3H,KAAK+zhC,YAAYh/gC,GACbkE,EAAKo8oB,iBAAmBp8oB,EAAKyy+B,uBAAqD,kBAA5B1r/B,KAAKmoC,OAAOw/W,YAAiC,CACnG,IAAIgxH,EAAoC,kBAA5B34gB,KAAKmoC,OAAOw/W,YAAkC3nZ,KAAKmoC,OAAO+27B,cAAchx0B,IAAMj1I,EAAKo8oB,eAAenngB,IAC1Gmn4B,IACAA,EAAUln4B,UAAYwqX,GAE1B5jgB,EAAQo5I,UAAYwqX,EAChB34gB,KAAKmoC,OAAO+27B,cAAcl4hB,WAC1Bhnc,KAAKq5hC,uBACLr5hC,KAAKmoC,OAAO+27B,cAAcl4hB,WAAY,GAGtCjyb,EAAQk5I,WAAyC,kBAA5BjuJ,KAAKmoC,OAAOw/W,YAAkC3nZ,KAAKmoC,OAAO+27B,cAAcv71B,KACzF1qH,EAAKo8oB,eAAe1xhB,IAEhC,MAEI3jI,KAAKq5hC,uBAETr5hC,KAAK00hC,sBACT,EACAvihC,EAAMxB,UAAU0ohC,qBAAuB,WACnC,IAAIxuY,EAAa7qpB,KAAKmV,QAAQykB,cAAc,IAAMi2Y,IAAyB,eACrE7va,KAAKmoC,OAAO+/W,aAAaxmZ,UAAUoV,WAAa,MAClD/B,EAAU/U,KAAKq0hC,wBACdtotB,GAAkB8+U,GAKnB91oB,EAAQk5I,WAAa,EAJrBl5I,EAAQk5I,WAAcjuJ,KAAKmoC,OAAOkwT,YACJr4V,KAAKmoC,OAAO+8kB,kBAAkB/0W,YAAc06Y,EAAWloW,WAAakoW,EAAW16Y,aAAzG06Y,EAAWloW,WAKQ,IAAvB5tS,EAAQk5I,YAAoBjuJ,KAAKmoC,OAAO+27B,cAAcl4hB,YACtDhnc,KAAKmoC,OAAO+27B,cAAcv71B,KAAO,EAEzC,EACAxxH,EAAMxB,UAAU82f,iBAAmB,SAAU1yf,EAAS8ghC,EAAkBjt4B,GACpE7zI,EAAQ5O,MAAMyiJ,OAAS,OACS,UAA5B5oJ,KAAKmoC,OAAOw/W,cACZ5yY,EAAQ5O,MAAMyiJ,OAAS8kL,GAAW9kL,IAElCit4B,IACgC,gBAA5B71hC,KAAKmoC,OAAOw/W,cACZ/+P,EAAU5oJ,KAAKmoC,OAAOuz7B,kBAAkBlupB,SAAW,EAC/CxtU,KAAKq0hC,wBAAwB/p/B,kBAAkByqP,aAC/C/0R,KAAKmV,QAAQykB,cAAc,IAAMi2Y,KAAyB96I,cAElE8gwB,EAAiB1vhC,MAAMyiJ,OAAS,OAChCit4B,EAAiB1vhC,MAAMyiJ,OAAS8kL,GAAW9kL,EAAS5oJ,KAAKsyhC,iBAAiBv9gC,IAElF,EACA5C,EAAMxB,UAAUwihC,qBAAuB,WACnC,IAAI3zD,EAAY,GACZzt6B,EAAQ/xD,KAAKoihC,aAAapihC,KAAKu/9B,YAAav/9B,KAAKmoC,OAAOuz7B,kBAAkBmsB,UAC9E,GAAI7n/B,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,GAKvD,GAJAo89B,EAAYx/9B,KAAKmoC,OAAOyh8B,aAAa43C,uBAAuBzv9B,GAC5B,gBAA5B/xD,KAAKmoC,OAAOw/W,cACZ63kB,EAAY,CAACzt6B,IAEb/xD,KAAKmoC,OAAO+27B,cAActuX,iBAAmB5wmB,KAAKmoC,OAAOyh8B,aAAaC,kBAAkBzm+B,OAAS,EAAG,CACpG,IAAIg9gC,EAAgBpghC,KAAKmoC,OAAOyh8B,aAAaC,kBAAkB7p+B,KAAKmoC,OAAO+27B,cAAc/+J,YACrFm5N,EAAWt5hC,KAAKoihC,aAAahC,EAAc7gD,YAAa6gD,EAAcv4B,UAC1E,GAAI7n/B,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMw75B,QAAU95+B,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAM6n6B,mBAAoB,CACtG,IAAI159B,EAAQ6sgC,EAASpwgC,WAAU,SAAUhP,EAAGuS,GACxC,OAAiB,IAAVA,GAAevS,EAAEha,KAAKyD,WAAa21hC,EAAS,GAAGp5hC,KAAKyD,QAC/D,IACA21hC,EAAW7sgC,GAAS,EAAI6sgC,EAAS1ohC,MAAM,EAAG6b,GAAS6sgC,CACvD,CACA95D,EAAY,CAAC85D,EACjB,OAGA95D,EAAUpz9B,KAAK2lD,GAGnB,OADA/xD,KAAKw/9B,UAAYA,EACVA,CACX,EACArt9B,EAAMxB,UAAUyxgC,aAAe,SAAU7iD,EAAasoB,GAIlD,IAHA,IAAIj99B,EAAQ5qB,KAAKmoC,OAAOuz7B,kBAAkBqe,YxCrKzB,EwCqK0D8N,EAASzk/B,OAChFi/gC,EAAY,GACZgR,EAAiBrzhC,KAAKqzhC,eAAerzhC,KAAKmoC,OAAO+/W,cAC5ClvR,EAAM,EAAGA,EAAMpuG,EAAOouG,IAAO,CAClC,IAAIkvJ,EAAY,CAAC2nJ,KACb6mnB,EAAmBn3D,EAAY3u9B,MAAM,EAAGga,GAAO3kB,KAAI,SAAU/F,GAAQ,OAAOA,EAAKyD,QAAU,IAC3F0vhC,GAAkBqD,EAAiB/rhC,QAAQ3K,KAAKmoC,OAAOqv+B,oBAAoB7zgC,YAAcq1H,GACzFkvJ,EAAU97Q,KAAKyja,KAEnBwymB,EAAUj2gC,KAAK,CAAElM,KAAMq/9B,EAAYhz8B,SAASysG,EAAIliH,WAAY,KAAMlK,KAAM,WAAY7L,UAAWmnR,EAAW+tV,QAAS,EAAG4xY,SAAUA,GACpI,CACA,OAAOw6B,CACX,EACAlwgC,EAAMxB,UAAU4ohC,iBAAmB,WAC/B,OAAIv5hC,KAAKmoC,OAAOumrB,YAAc1utB,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,EAC1E,cAEJ,MACX,EACA+O,EAAMxB,UAAUqshB,aAAe,SAAUpwhB,GACrC5M,KAAKi5hC,cAAgBj5hC,KAAKu5hC,mBAC1Bv5hC,KAAKosjB,SAAStrjB,GAAc,MAAO,CAAEC,UAAW8ua,OAChD,IAAIz9D,EAAU,CAACpyW,KAAKk3gC,WACpB9kqB,EAAQhmW,KAAKQ,GACT5M,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMw75B,SACpC1noB,EAAQhmW,KAAK,aACmB,UAA5BpM,KAAKmoC,OAAOw/W,cACZ3nZ,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAM6n6B,oBAAqB,IAG7Dnm/B,KAAKmoC,OAAOuz7B,kBAAkB4oB,wBAA0Btk/B,KAAKmoC,OAAO+27B,cAActuX,iBAClFx+P,EAAQhmW,KAAKyja,KAEb7va,KAAKmoC,OAAOwi9B,eAAiB3q/B,KAAKmoC,OAAOi07B,cAAc0uB,kBACvD14oB,EAAQhmW,KAAKyja,KAEjBrnJ,GAAS,CAACxoR,KAAKmV,SAAUi9V,GACzBpyW,KAAK0kgB,YAAY93f,GACjB5M,KAAKmV,QAAQuc,YAAY1xB,KAAKo9gC,kBAAkBvtmB,MAChD7va,KAAKmV,QAAQykB,cAAc,SAAS5E,aAAa,OAAQ,gBACzDh1B,KAAKw/9B,UAAYx/9B,KAAKmzhC,uBACtBnzhC,KAAKw33B,eACLx33B,KAAK0siB,gBACL,IAAIrkiB,EAAsC,gBAA5BrI,KAAKmoC,OAAOw/W,YAAiC3nZ,KAAKmoC,OAAOyz7B,WAAWx0d,WAAapngB,KAAKmoC,OAAOhzB,QACvGnV,KAAKmoC,OAAO+27B,cAActuX,kBAAoBvomB,EAAOuxB,cAAc,IAAMi2Y,MACzE7va,KAAK4zhC,6BAET5zhC,KAAKmoC,OAAOkxK,OAAOtiL,IAAoB,CAAC,GACpC/2B,KAAKmoC,OAAO+27B,cAAcP,gBAC1B3+9B,KAAKmoC,OAAO+27B,cAAcP,eAAgB,EAElD,EACAxs9B,EAAMxB,UAAUm1oB,cAAgB,WAC5B3ynB,GAAOnzB,KAAKmV,QAAQykB,cAAc,aAClC55B,KAAKw33B,eACLx33B,KAAKmoC,OAAOkxK,OAAOtiL,IAAoB,CAAC,EAC5C,EACA5kB,EAAMxB,UAAUwnhC,eAAiB,SAAUhjhC,GACvC0jO,GAAazlN,IAAIje,EAAS,YAAanV,KAAKmoC,OAAOo9+B,eAAe93D,cAAezt9B,KAAKmoC,OAAOo9+B,gBAC7F1syB,GAAazlN,IAAIje,EAAS,QAASnV,KAAKmoC,OAAOo9+B,eAAez4D,UAAW9s9B,KAAKmoC,OAAOo9+B,gBAChFvlhC,KAAKmoC,OAAOumrB,YACb71e,GAAazlN,IAAIje,EAAS,WAAYnV,KAAKmoC,OAAOo9+B,eAAexJ,aAAc/7gC,KAAKmoC,OAAOo9+B,eAEnG,EACApzgC,EAAMxB,UAAU6m3B,aAAe,WAC3B,IAAI/9Q,EAAK34mB,GAAc,MACvBd,KAAKy3hC,iBAAiBh+a,GACtB,IAAI69a,EAASx2hC,GAAc,MAC3Bw2hC,EAAO5lgC,YAAY1xB,KAAKu3hC,qBACxB99a,EAAG/nlB,YAAY4lgC,GACfpk6B,GAAQ,CAACumf,GAAKz5mB,KAAKmV,QAAQykB,cAAc,SAC7C,EACAznB,EAAMxB,UAAU8mhC,iBAAmB,SAAUh+a,GACrCz5mB,KAAKmoC,OAAOuz7B,kBAAkBkwB,gBAC9BnyY,EAAG/nlB,YAAY5wB,GAAc,KAAM,CAAEC,UAAW,kBAExD,EACAoR,EAAMxB,UAAU+7hB,cAAgB,WACxB1siB,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,IACvDpD,KAAKmoC,OAAOyh8B,aAAac,kBAAoBjh5B,GAAO,GAAIzpF,KAAKmoC,OAAOyh8B,aAAaC,kBAAmB,MAAM,IAE9G,IAAIpwX,EAAK34mB,GAAc,MACnBd,KAAKmoC,OAAOuz7B,kBAAkBkwB,gBAC9BnyY,EAAG/nlB,YAAY1xB,KAAKw5hC,2BAExB,IAAI9B,EAAS52hC,GAAc,MACvB06xB,EAASx7xB,KAAKw/9B,UAAU5u9B,MAAM,GAC9B5Q,KAAKmoC,OAAO2h8B,qBACZ9p+B,KAAK60hC,iBAET,IAAIv4/B,EAAOx7B,GAAc,MAAO,CAAEC,UAAW8ua,MACzC4pnB,EAAcz5hC,KAAK63hC,oBACvB,GAAgC,UAA5B73hC,KAAKmoC,OAAOw/W,YACZrrX,EAAK5K,YAAY+ngC,OAEhB,CACD,IAAIC,EAAqB54hC,GAAc,MAAO,CAAEC,UAAW8ua,MAC3D6pnB,EAAmBhogC,YAAY+ngC,GAC/Bn9/B,EAAK5K,YAAYgogC,EACrB,CACA7gzB,GAAazlN,IAAIkJ,EAAM,SAAUt8B,KAAK0vpB,gBAAiB1vpB,MACvD03hC,EAAOhmgC,YAAY4K,GACnBm9kB,EAAG/nlB,YAAYgmgC,GACX13hC,KAAKmoC,OAAO2h8B,sBACZ9p+B,KAAKw/9B,UAAYhkM,EACjBx7xB,KAAKmoC,OAAO2h8B,oBAAoBgqC,mBAAmBx3+B,IAEvDt8B,KAAKmV,QAAQykB,cAAc,SAASlI,YAAY+nlB,GAChDz5mB,KAAK25hC,4BACT,EACAxnhC,EAAMxB,UAAU6ohC,wBAA0B,WACtC,IAAIxX,EAAUhihC,KAAKu/9B,YAAYt59B,KAAI,SAAU/F,GAAQ,OAAO,IAAIuB,MAAMvB,EAAO,IACzE0lJ,EAAK9kJ,GAAc,MACnB84hC,EAAiB94hC,GAAc,MAAO,CAAEC,UAAW8ua,MACvDjqR,EAAGl0H,YAAYkogC,GACf,IAAIC,EAAmB75hC,KAAKo9gC,oBAC5Bwc,EAAelogC,YAAYmogC,GAG3B,IAFA,IAAIhrE,EAAW7u9B,KAAKmoC,OAAOuz7B,kBAAkBqe,YxC1R5B,EwC2Rb/5+B,KAAKmoC,OAAOuz7B,kBAAkBmsB,SAASzk/B,OAClC+I,EAAI,EAAG40S,EAAY/gT,KAAKu/9B,YAAYn89B,OAASyr9B,EAAW1i9B,EAAI40S,EAAU50S,IAAK,CAChF,IAAI0yF,EAAQmj7B,EAAQxs/B,OAAO,EAAGq57B,GAC1B/g9B,EAAa9N,KAAKmoC,OAAOul/B,qBAAqB7u7B,GAClDg77B,EAAiBjggC,cAAc,SAASlI,YAAY1xB,KAAK85hC,wBAAwBhshC,GACrF,CACA,OAAO83I,CACX,EACAzzI,EAAMxB,UAAUgphC,2BAA6B,WACzC,EAEJxnhC,EAAMxB,UAAU4mhC,kBAAoB,WAChC,IAAIzqhC,EAAYhM,GAAc,MAAO,CAAEC,UAAW8ua,MAC9CvzY,EAAOx7B,GAAc,MAAO,CAAEC,UAAW8ua,MAC7C/ia,EAAU4kB,YAAY4K,GACtB,IAAIoL,EAAQ1nC,KAAKo9gC,oBACjB,GAAgC,UAA5Bp9gC,KAAKmoC,OAAOw/W,YAAyB,CACrC,IAAIqqO,EAAQlxnB,GAAc,SAC1BkxnB,EAAMtgmB,YAAY5wB,GAAc,OAChCoyH,GAAQ,CAAC8+f,GAAQtqlB,EACrB,CACA1nC,KAAKoyhC,eAAe1q/B,EAAO1nC,KAAKw/9B,UAAUx/9B,KAAKw/9B,UAAUp89B,OAAS,IAElE,IADA,IAAIwpZ,EAAQ9rZ,GAAc,MACjBqL,EAAI,EAAGA,EAAInM,KAAKw/9B,UAAUp89B,OAAQ+I,IAAK,CAG5C,IAFA,IAAI4lD,EAAQ/xD,KAAKw/9B,UAAUjz8B,SAASpgB,EAAE2K,WAAY,KAC9CkngC,EAAMpxnB,EAAMzpX,YACPnzB,EAAI,EAAGA,EAAI+hD,EAAM3uD,OAAQ4M,IAAK,CACnC,IAAI41I,EAAK7zF,EAAMxlC,SAASvc,EAAE8G,WAAY,KACtCkngC,EAAIts/B,YAAY1xB,KAAK+5hC,iBAAiBn04B,GAC1C,CACAl+G,EAAM9N,cAAc,SAASlI,YAAYss/B,EAC7C,CAEA,OADA1h/B,EAAK5K,YAAYgW,GACV56B,CACX,EACAqF,EAAMxB,UAAUophC,iBAAmB,SAAUn04B,GACzC,IAAI0kQ,EAAQxpZ,GAAc,MAE1B,GADAd,KAAKy/Y,cAAc75P,EAAI0kQ,GACP,aAAZ1kQ,EAAGh5I,KAAqB,CACxB,IAAI+8U,EAAM7oV,GAAc,OAAQ,CAAEooC,UAAWmz7B,IAAyBr89B,KAAKmoC,OAAO2g/B,YAAY9ohC,KAAKi5hC,eAAerz4B,EAAG1lJ,KAAKyD,UAAW,YACrI2mZ,EAAM54X,YAAYi4T,EACtB,CAIA,GAHgB,mBAAZ/jM,EAAGh5I,MACH5M,KAAK89gC,yBAAyBxznB,EAAO1kQ,GAEzB,eAAZA,EAAGh5I,KAAuB,CAG1B,GAFA47Q,GAAS,CAAC8hI,GAAQulB,KAClBvlB,EAAMt1X,aAAa,YAAa4wH,EAAG1lJ,KAAKwB,UAAUoV,YAC9C9W,KAAKmoC,OAAOuz7B,kBAAkBkrD,mBAAoB,CAClD,IAAIhxa,EAAW,CAAE11mB,KAAM0lJ,EAAG1lJ,KAAM0M,KAAMg5I,EAAGh5I,MAGrCugW,EAFYntW,KAAKmoC,OAAOhzB,QAAQghB,GAAK,IAC1Bn2B,KAAKmoC,OAAOuz7B,kBAAkBirD,uBACL,qBACpCqT,EAAe,GAAGpphC,MAAMjR,KAAKK,KAAKmoC,OAAOsk/B,uBAAZzshC,CAAoC41mB,EAAU51mB,KAAKmoC,OAAQ,qBAAsBglU,GAAY,IAC1H6srB,GAAgBA,EAAa52hC,QAC7B4vH,GAAOgn6B,EAAc1voB,EAE7B,KACK,CACG3gE,EAAM7oV,GAAc,OAAQ,CAAEC,UAAW8ua,MAA7C,IAEI/6Z,EAAQ9U,KAAKmoC,OAAOo7W,UAAU9jE,WAAW75L,EAAG1lJ,KAAM,CAAE+yU,SADzC,OAC6Dt3O,SAAU37F,KAAKmoC,OAAOm07B,oBAClG3yoB,EAAI30T,aAAa,QAASqn8B,IAAyBvn9B,EAAO,aAC1D,IAAIo3C,GAAalsD,KAAKmoC,OAAO8l8B,aAAahF,aAAarj1B,EAAG1lJ,OAAUF,KAAKozhC,cAAcxt4B,EAAG1lJ,OAAUF,KAAKmoC,OAAOumrB,WAE5G1utB,KAAKmoC,OAAOo7W,UAAU9jE,WAAW75L,EAAG1lJ,KAAM,CAAE+yU,SAAU,IAAKt3O,SAAU37F,KAAKmoC,OAAOm07B,oBADjFt89B,KAAKmoC,OAAOo7W,UAAU9jE,WAAW75L,EAAG1lJ,KAAM,CAAEmlB,OAAQ,QAASs2E,SAAU37F,KAAKmoC,OAAOm07B,oBAEvF3yoB,EAAIzgT,UAAYmz7B,IAAyBnw6B,EAAW,UACpDo+V,EAAM54X,YAAYi4T,EACtB,CACA3pV,KAAKm4hC,eAAe7toB,EACxB,CACA,IAAIrxY,EAAO,CAAEkyH,YAAaya,EAAGh5I,KAAMuI,QAASm1Y,EAAOpqZ,KAAM0lJ,EAAG1lJ,KAAMig0B,WAAYv6qB,EAAGu6qB,YAEjF,OADAng0B,KAAKmoC,OAAOm4P,QAAQvpQ,IAAkB9d,GAC/BqxY,CACX,EACAn4Y,EAAMxB,UAAUsphC,gBAAkB,WAC9B,IAAMj6hC,KAAKw/9B,UAAUx/9B,KAAKw/9B,UAAUp89B,OAAS,KAAMpD,KAAKw/9B,UAAUx/9B,KAAKw/9B,UAAUp89B,OAAS,GAAG,GACzF,MAAO,GAEX,IAAI82hC,EAAY,GACZC,EAAe,SAAUxpd,EAAUuxI,EAAY9/R,EAASl6J,GACxD,IAAIh+O,EAAO,CACPhqC,KAAM,IAAIuB,MAAMygtB,GAAai+G,WAAY/9Y,EAAQ+9Y,WAAY0nL,SAAUzlkB,EAAQylkB,SAC/Ej7+B,KAAM,aAAc7L,UAAWmnR,GAAa,CAAC2nJ,MAE5CqqnB,EAAU3tgC,SAASokjB,EAAS75jB,WAAY,OACzCojhC,EAAU3tgC,SAASokjB,EAAS75jB,WAAY,KAAO,IAEnDojhC,EAAU3tgC,SAASokjB,EAAS75jB,WAAY,KAAK1K,KAAK89B,EACtD,EACIkw/B,EAA8C,gBAA5Bp6hC,KAAKmoC,OAAOw/W,aAC9B3nZ,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,EAC3D,IAAIg3hC,GAAoBp6hC,KAAKmoC,OAAO+27B,cAActuX,iBAAoB5wmB,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMw75B,OAetG,CAAIj74B,EAAQ7+F,KAAKu/9B,YAAYt59B,KAAI,SAAU/F,GAAQ,OAAO,IAAIuB,MAAMvB,EAAO,IACvE0qB,EAAQ5qB,KAAKmoC,OAAOuz7B,kBAAkBqe,YxCvY7B,EwCwYT/5+B,KAAKmoC,OAAOuz7B,kBAAkBmsB,SAASzk/B,OAF3C,IAGI2uD,EAAQ/xD,KAAKw/9B,UAAU5u9B,MAAM,EAAG,GAAG,GACnC6jC,EAAaz0C,KAAKu/9B,YAAYt59B,IAAI4f,QAAQlb,SAASonD,EAAM,GAAG7xD,MAChE,IAASiM,EAAI,EAAGA,EAAKnM,KAAKu/9B,YAAYn89B,OAASwnB,EAAQze,IACnD,CAAIkuhC,EAAWx77B,EAAMrpE,OAAO,EAAG5K,GA8B/B,IA9BA,IA6BmB0vgC,EA5Bfx5gC,EAAI2zB,EACJg4R,EAAU,SAAUz8T,GACpB,IAAIuqhC,EAAUF,EAAS9tgC,SAASzL,EAAEhK,WAAY,KAE9C,GADAgK,IACIs5gC,EAAiB,CACjB,IAAI5qd,EAAUr0O,EAAOqkoB,UAAWrkoB,EAAOqkoB,UAAUp89B,OAAS,GACtDolpB,EAAWh5E,EAAQpskB,OAASwnB,EAC5B4vgC,EAAchrd,EAAQ5+jB,MAAM,EAAG43oB,GACnC,GAAIrtT,EAAOhzT,OAAOuz7B,kBAAkBp94B,MAAM6n6B,oBAEX,KAD3Bq0C,EAAchrd,EAAQppkB,QAAO,SAAU8T,GAAK,OAAOA,EAAEha,KAAKyD,WAAa42hC,EAAQ52hC,QAAU,KACzEP,OAEZ,OAAOk3hC,EADPtqhC,GAAQ,EACY,WAG5B,IAAK,IAAIkxD,EAAW,EAAGA,EAAWs59B,EAAYp3hC,OAAQ89D,IAAY,CAC9D,IAAIkxS,OAAU,EACG,IAAblxS,IACAkxS,EAAU,CAACy9D,IvCRjB,mBuCUEsqnB,EAAahuhC,EAAGouhC,EAASC,EAAYjugC,SAAS20C,EAASpqD,WAAY,KAAMs7V,EAC7E,CACJ,MAEI+nrB,EAAahuhC,EAAGouhC,EAASp/rB,EAAOqkoB,UAAUrkoB,EAAOqkoB,UAAUp89B,OAAS,GAAG,IAE3Ek3hC,EAAUtqhC,CACd,EACImrV,EAASn7V,KACJgQ,EAAIykC,EAAYzkC,EAAKhQ,KAAKw/9B,UAAU,GAAGp89B,OAASqxC,GAAezkC,EAAIqqhC,EAASj3hC,OAAQ4M,IACzFy8T,EAAQz8T,GACRA,EAAIsqhC,CAhC6B,CANoC,MAd7E,IAAK,IAAIhrhC,EAAK,EAAGgmC,EAAKt1C,KAAKw/9B,UAAUx/9B,KAAKw/9B,UAAUp89B,OAAS,GAAIkM,EAAKgmC,EAAGlyC,OAAQkM,IAI7E,IAHA,IAAI4oF,EAAM5iD,EAAGhmC,GACTuvF,EAAQ3G,EAAIqn4B,YAAYt59B,KAAI,SAAU/F,GAAQ,OAAO,IAAIuB,MAAMvB,EAAO,IACtE0qB,EAAQ5qB,KAAKmoC,OAAOuz7B,kBAAkBqe,YxC3XjC,EwC2XkE7h5B,EAAI2v5B,SAASzk/B,OAC/E+I,EAAI,EAAGA,EAAK+rF,EAAIqn4B,YAAYn89B,OAASwnB,EAAQze,IAElD,IADA,IAAIkuhC,EACK3k/B,EAAK,EAAG+k/B,EADbJ,EAAWx77B,EAAMrpE,OAAO,EAAG5K,GACS8qB,EAAK+k/B,EAAWr3hC,OAAQsyC,IAAM,CAClE,IAAI6k/B,EAAUE,EAAW/k/B,GACzByk/B,EAAahuhC,EAAGouhC,EAASri8B,EAC7B,CA+CZ,OAAOgi8B,CACX,EACA/nhC,EAAMxB,UAAU+phC,gBAAkB,SAAUxw/B,IACnClqC,KAAK2+9B,iBAAmB3+9B,KAAK26hC,aAAazw/B,EAAKhqC,OAChDgqC,EAAKnpC,UAAUqL,KAAKyja,KAEnB7va,KAAKmoC,OAAOsv9B,aAAavt9B,EAAKhqC,OAC/BgqC,EAAKnpC,UAAUqL,KAAKyja,KAExB7va,KAAK46hC,wBAAwB1w/B,EACjC,EAEA/3B,EAAMxB,UAAUiqhC,wBAA0B,SAAU1w/B,GAEpD,EACA/3B,EAAMxB,UAAUgqhC,aAAe,SAAUz6hC,GACrC,OAAOA,EAAKwB,UAAY1B,KAAKk5hC,WAAWhj/B,MAAMx0C,WAAaxB,EAAKwB,UAAY1B,KAAKk5hC,WAAW9/+B,IAAI13C,SACpG,EACAyQ,EAAMxB,UAAUknhC,kBAAoB,WAChC,IAAI1a,EAAMn9gC,KAAKo9gC,kBAAkBvtmB,KACjC7va,KAAK23Z,kBAAkBwlnB,GACvBn9gC,KAAK6zhC,mBAAmB1W,GACQ,kBAA5Bn9gC,KAAKmoC,OAAOw/W,aACZ3nZ,KAAKoyhC,eAAejV,EAAKn9gC,KAAKw/9B,UAAUx/9B,KAAKw/9B,UAAUp89B,OAAS,IAEpE,IAAIgigC,EAAY,IAAI3jgC,KAAKzB,KAAKmoC,OAAO+/W,aAAaxmZ,WAClD1B,KAAKk5hC,WAAa,CACdhj/B,MAAOl2C,KAAKmoC,OAAO8l8B,aAAa3f,iBAAiB82C,GACjDhs9B,IAAKp5C,KAAKmoC,OAAO8l8B,aAAa1f,gBAAgB8N,IAAe+oC,EAAWplgC,KAAKmoC,OAAOuz7B,kBAAkBlupB,SAAW,KAErH,IAAIovsB,EAAQO,EAAIvj/B,cAAc,SAG9B,OAFAo5F,GAAOhzH,KAAK+1gC,iBAAkB6G,GAC9B58gC,KAAKm4hC,eAAevb,GACbO,CACX,EACAhrgC,EAAMxB,UAAUolgC,eAAiB,WAK7B,IAJA,IAAI8kB,EAAQ,GACRphb,EAAK34mB,GAAc,MACnB8kJ,EAAK9kJ,GAAc,KAAM,CAAE2oV,MAAO,CAAE,gBAAiB,WACrDywsB,EAAYl6hC,KAAKi6hC,kBACZptoB,EAAM,EAAGA,EAAMqtoB,EAAU92hC,OAAQypZ,IAAO,CAE7C,IADA,IAAImxnB,EAAMvka,EAAGt2kB,YACJ61F,EAAM,EAAGA,EAAMkh6B,EAAU3tgC,SAASsgY,EAAI/1Y,WAAY,KAAK1T,OAAQ41H,IAAO,CAC3E,IAAI0k5B,EAAM19gC,KAAKu4hC,gBAAgB2B,EAAU3tgC,SAASsgY,EAAI/1Y,WAAY,KAAKyV,SAASysG,EAAIliH,WAAY,KAAM8uI,GACtGo43B,EAAIts/B,YAAYgs/B,EACpB,CACAmd,EAAMzuhC,KAAK4xgC,EACf,CACA,OAAO6c,CACX,EACA1ohC,EAAMxB,UAAU4nhC,gBAAkB,SAAUru/B,EAAM07G,GAC9C,IAAI833B,EAAM933B,EAAGziH,YACT+G,EAAK+rkB,SACLyna,EAAI1o/B,aAAa,UAAWkV,EAAK+rkB,QAAQn/lB,YAE7C9W,KAAK06hC,gBAAgBxw/B,GACrB,IAAIt9B,EAAOs9B,EAAKt9B,KAahB,IAZ2D,IAAvDs9B,EAAKnpC,UAAU4J,QAAQkla,OACvB3lY,EAAKnpC,UAAUqL,KAAKyja,KACpBjja,EAAO,sBAEP5M,KAAKmoC,OAAOko+B,UAAUz54B,WAAa52H,KAAKszhC,UAAUpp/B,EAAKhqC,KAAMgqC,EAAK298B,WAClE398B,EAAKnpC,UAAUqL,KvC/bA,euCicfpM,KAAKozhC,cAAclp/B,EAAKhqC,OACxBgqC,EAAKnpC,UAAUqL,KAAKyja,KAExBrnJ,GAAS,CAACk1vB,GAAMxz+B,EAAKnpC,WACrB28gC,EAAI1o/B,aAAa,YAAakV,EAAKhqC,KAAKwB,UAAUoV,aAC7Ci1T,GAAkB7hS,EAAKi2xB,aAAeng0B,KAAKmoC,OAAO+27B,cAActuX,gBAAiB,CAClF,IAAIuvN,EAAang0B,KAAKmoC,OAAO+27B,cAActuX,gBAAkB5wmB,KAAKmoC,OAAO+27B,cAAc/+J,WACnFj2xB,EAAKi2xB,WACTu9M,EAAI1o/B,aAAa,mBAAoB,GAAKmryB,EAC9C,CAEA,GADAng0B,KAAK86hC,wBAAwB5w/B,EAAMwz+B,GAC/B19gC,KAAKmoC,OAAOuz7B,kBAAkBtgX,aAAc,CAC5C,IAAI1yF,EAAS,CAAExohB,KAAMgqC,EAAKhqC,KAAM0M,KAAMA,EAAMuzzB,WAAYj2xB,EAAKi2xB,YAGzDhzd,EAFantW,KAAKmoC,OAAOhzB,QAAQghB,GAAK,IAC3Bn2B,KAAKmoC,OAAOuz7B,kBAAkBmrD,iBACJ,eAEzC7z5B,GADmB,GAAGpiH,MAAMjR,KAAKK,KAAKmoC,OAAOqk/B,iBAAZxshC,CAA8B0ohB,EAAQ1ohB,KAAKmoC,OAAQ,eAAgBglU,GAAY,IAC3FuwqB,EACzB,CACA,IAAIzkgC,EAAO,CAAEkyH,YAAav+H,EAAMuI,QAASuogC,EAAKx9gC,KAAMgqC,EAAKhqC,KAAMig0B,WAAYj2xB,EAAKi2xB,YAEhF,OADAng0B,KAAKmoC,OAAOm4P,QAAQvpQ,IAAkB9d,GAC/BykgC,CACX,EACAvrgC,EAAMxB,UAAUmqhC,wBAA0B,SAAU5w/B,EAAMwz+B,GACtD,GAAgC,kBAA5B19gC,KAAKmoC,OAAOw/W,YAAhB,CAGA,IAAIo6lB,EAAajh/B,GAAc,MAAO,CAAEC,UAAW8ua,MACnD,GAAI7va,KAAKmoC,OAAOuz7B,kBAAkBgrD,mBAAoB,CAClD,IAAIztgC,EAAO,CAAE/Y,KAAMgqC,EAAKhqC,KAAM0M,KAAMs9B,EAAKt9B,KAAMuzzB,WAAYj2xB,EAAKi2xB,YAG5Dhzd,EAFantW,KAAKmoC,OAAOhzB,QAAQghB,GAAK,IAC3Bn2B,KAAKmoC,OAAOuz7B,kBAAkB+qD,uBACJ,qBAEzCzz5B,GADyB,GAAGpiH,MAAMjR,KAAKK,KAAKmoC,OAAOkk/B,uBAAZrshC,CAAoCiZ,EAAMjZ,KAAKmoC,OAAQ,qBAAsBglU,GAAY,IACrG40oB,EAC/B,KACK,CACD,IAAI717B,GAAalsD,KAAKmoC,OAAO8l8B,aAAahF,aAAa/+7B,EAAKhqC,OAAUF,KAAKozhC,cAAclp/B,EAAKhqC,OAAUF,KAAKmoC,OAAOumrB,WAEhH1utB,KAAKmoC,OAAOo7W,UAAU9jE,WAAWv1S,EAAKhqC,KAAM,CAAE+yU,SAAU,IAAKt3O,SAAU37F,KAAKmoC,OAAOm07B,oBADnFt89B,KAAKmoC,OAAOo7W,UAAU9jE,WAAWv1S,EAAKhqC,KAAM,CAAEmlB,OAAQ,QAASs2E,SAAU37F,KAAKmoC,OAAOm07B,oBAEzFylB,EAAW748B,UAAYmz7B,IAAyBnw6B,EAAW,SAC/D,CAEA,GADAwx9B,EAAIhs/B,YAAYqw9B,GACa,UAAzB/h/B,KAAK+sV,gBAA6B,CAClCvkE,GAAS,CAACu5tB,GAAalykB,KACvB,IACIkrnB,EAAmB/6hC,KAAKmoC,OAAOo7W,UAAU9jE,WAAWv1S,EAAKhqC,KAAM,CAAE+yU,SADtD,OAC0Et3O,SAAU37F,KAAKmoC,OAAOm07B,oBAC/GohD,EAAI1o/B,aAAa,aAAc+lgC,EACnC,CAtBA,CAuBJ,EACA5ohC,EAAMxB,UAAUqqhC,cAAgB,SAAU3p7B,GACtC,IAGI4p7B,EAAa5+D,IAHgC,UAA5Br89B,KAAKmoC,OAAOw/W,cAA4B57E,GAAkB/rU,KAAKmoC,OAAOuz7B,kBAAkBjwlB,eAAiBzrY,KAAKmoC,OAAO+27B,cAAcP,eAAiB3+9B,KAAKy98B,iBAClJz98B,KAAKmoC,OAAOuz7B,kBAAkBjwlB,YAAgBzrY,KAAKmoC,OAAO+27B,cAAcP,eAChG3+9B,KAAKy98B,kBAAoBz98B,KAAK2+9B,gBAAgC3+9B,KAAKmoC,OAAO8l8B,aAAa3f,iBAAiBj92B,GAAxDA,EACPrxG,KAAKmoC,OAAOuz7B,kBAAkBzv9B,gBAC3E,OAAO,IAAIxK,KAAKw5hC,EAAW76hC,cAAe66hC,EAAW96hC,WAAY86hC,EAAW34hC,UAChF,EACA6P,EAAMxB,UAAUuqhC,YAAc,SAAU7p7B,GACpC,GAAIrxG,KAAK2+9B,gBAIL,OAAOtC,IAHKr89B,KAAKg7hC,cAAc3p7B,GxC3iBlB,GwC4iB0BrxG,KAAKmoC,OAAOuz7B,kBAAkB8B,cAAgB,EACjFx99B,KAAKmoC,OAAOuz7B,kBAAkB8B,cxC5iBnB,GwC6iB4B,GAG3C,IAAI3tkB,EAAUwskB,IAAehr3B,EAAarxG,KAAKmoC,OAAOuz7B,kBAAkBlupB,SAAW,GAEnF,OAAO6upB,IADeA,IAAsBr89B,KAAKmoC,OAAO8l8B,aAAa1f,gBAAgB1+jB,GAAU7vZ,KAAKmoC,OAAOuz7B,kBAAkBzv9B,gBACxFow9B,EAE7C,EACAlq9B,EAAMxB,UAAU8s8B,cAAgB,WAC5B,IAAI5+2B,EAAQ7+F,KAAKmoC,OAAOs27B,sBACxB,GAAI5/3B,GAASA,EAAMz7F,OAAS,EAAG,CAC3B,IAAI+69B,EAAe9B,IAAer89B,KAAKmoC,OAAO+/W,cAAcxmZ,UACxDkshC,EAAgBvxD,IAAsBx93B,EAAMA,EAAMz7F,OAAS,GAAIpD,KAAKmoC,OAAOuz7B,kBAAkBzv9B,gBACjG,QAASky9B,GAAgB9B,IAAsBx93B,EAAM,GAAI7+F,KAAKmoC,OAAOuz7B,kBAAkBzv9B,gBAAgBvK,WACnGy89B,GAAgB9B,IAAauxD,EAAe,GAAGlshC,UACvD,CACA,OAAO,CACX,EACAyQ,EAAMxB,UAAUyv9B,eAAiB,SAAUynB,GACvC,IAAItoB,EAAc,GACdlu3B,EAAcgr3B,IAAer89B,KAAKmoC,OAAO+/W,cACzChyW,EAAQl2C,KAAKg7hC,cAAc3p7B,GAC3B8p7B,EAAWn7hC,KAAKk7hC,YAAY7p7B,GAChC,IACQrxG,KAAKmoC,OAAOuz7B,kBAAkBqe,aAI1B/5+B,KAAKszhC,UAAUp9+B,EAAO2x8B,KAH1BtoB,EAAYnz9B,KAAK8pC,IAOrBA,EAAQmm7B,IAAanm7B,EAAO,IAClB/yB,WAAa,IACnB+yB,EAAQmm7B,IAAenm7B,UAEtBA,EAAMx0C,WAAay5hC,EAASz5hC,WAOrC,OANKmm/B,IACD7n/B,KAAKu/9B,YAAcA,GAEnBv/9B,KAAKmoC,OAAO06mB,cACZ7ipB,KAAKmoC,OAAO06mB,aAAa27U,0BAEtBe,CACX,EACApt9B,EAAMxB,UAAU8s9B,oBAAsB,SAAU7w9B,GAC5C,GAAI5M,KAAK2+9B,gBAAiB,CACtB,IAAI9/3B,EAAQ7+F,KAAKmoC,OAAOs27B,sBAGxB,OAAOpC,IAFIA,IAA+B,SAATzv9B,EAAkBiyF,EAAMA,EAAMz7F,OAAS,GAClEy7F,EAAM,GAAI7+F,KAAKmoC,OAAOuz7B,kBAAkBzv9B,gBACX,SAATW,ExChmBb,MwCgmBoD5M,KAAKmoC,OAAOuz7B,kBAAkB8B,cAAgB,EAC3Gx99B,KAAKmoC,OAAOuz7B,kBAAkB8B,cxChmBnB,GwCimBnB,CAEI,OAAOnB,IAAer89B,KAAKmoC,OAAO+/W,cAAyB,SAATt7Y,EAAkB,GAAK,GAAK5M,KAAKmoC,OAAOuz7B,kBAAkBlupB,SAEpH,EACAr7T,EAAMxB,UAAUkr9B,aAAe,WAC3B,OAAO779B,KAAKg7hC,cAAch7hC,KAAKmoC,OAAO+/W,aAC1C,EACA/1Y,EAAMxB,UAAUmr9B,WAAa,WACzB,OAAO979B,KAAKk7hC,YAAYl7hC,KAAKmoC,OAAO+/W,aACxC,EACA/1Y,EAAMxB,UAAUw+gC,wBAA0B,SAAUj5+B,GAChD,OAAOmm7B,IAAa,IAAI569B,KAAKy0C,EAAMx0C,WAAY,EACnD,EACAyQ,EAAMxB,UAAUur9B,iBAAmB,WAC/B,GAAIl89B,KAAKmoC,OAAOumrB,YAAc3iZ,GAAkB/rU,KAAKmoC,OAAOuz7B,kBAAkBps3B,YAAa,CACvF,IAAIsgT,EAAY5vZ,KAAKmoC,OAAO+/W,aACxB2H,OAAU,EACVuroB,GAAoB,EACxB,GAAIp7hC,KAAK2+9B,gBAAiB,CACtB,IAAI9/3B,EAAQ7+F,KAAKmoC,OAAOs27B,uBACxB28D,EAAoBv87B,EAAM,GAAG1+F,aAAe0+F,EAAMA,EAAMz7F,OAAS,GAAGjD,YAChE0+F,EAAM,GAAGz+F,gBAAkBy+F,EAAMA,EAAMz7F,OAAS,GAAGhD,iBAEnDwvZ,EAAY/wT,EAAM,GAClBgxT,EAAUhxT,EAAMA,EAAMz7F,OAAS,GAEvC,CACA,IAAIi4hC,EAAiD,UAA5Br7hC,KAAKmoC,OAAOw/W,cAA4B3nZ,KAAK2+9B,gBACtE,GAAI3+9B,KAAKmoC,OAAOuz7B,kBAAkBlupB,SAAW,GAAK6ttB,GAAqBD,EAEnE,OADAvroB,EAAUA,GAAoBwskB,IAAeA,IAAqBzskB,GAAY5vZ,KAAKmoC,OAAOuz7B,kBAAkBlupB,SAAW,GACnHoiF,EAAUxvZ,gBAAkByvZ,EAAQzvZ,cAI7Bi89B,IAHWr89B,KAAKmoC,OAAOo7W,UAAU9jE,WAAWmwE,EAAW,CAAEvqY,OAAQ,OAAQs2E,SAAU37F,KAAKmoC,OAAOm07B,oBAAwB,MACzHt89B,KAAKmoC,OAAOo7W,UAAU9jE,WAAWowE,EAAS,CAAExqY,OAAQ,QAASs2E,SAAU37F,KAAKmoC,OAAOm07B,oBACpFt89B,KAAKmoC,OAAOo7W,UAAU9jE,WAAWowE,EAAS,CAAE58E,SAAU,IAAKt3O,SAAU37F,KAAKmoC,OAAOm07B,oBACzC,UAMzCD,IAJKr89B,KAAKmoC,OAAOo7W,UAAU9jE,WAAWmwE,EAAW,CAAEvqY,OAAQ,OAAQs2E,SAAU37F,KAAKmoC,OAAOm07B,oBAAwB,IACpH1skB,EAAUxvZ,cAAgB,MAC1BJ,KAAKmoC,OAAOo7W,UAAU9jE,WAAWowE,EAAS,CAAExqY,OAAQ,QAASs2E,SAAU37F,KAAKmoC,OAAOm07B,oBACnFt89B,KAAKmoC,OAAOo7W,UAAU9jE,WAAWowE,EAAS,CAAE58E,SAAU,IAAKt3O,SAAU37F,KAAKmoC,OAAOm07B,oBAC/C,UAE1C,IAAIj38B,EAAUrlB,KAAKmoC,OAAOuz7B,kBAAkBps3B,WAActvG,KAAKmoC,OAAOuz7B,kBAAkBps3B,WAAa,SACrG,OAAO+s3B,IAAyBr89B,KAAKmoC,OAAOo7W,UAAU9jE,WAAWmwE,EAAW,CAAEvqY,OAAQA,EAAQs2E,SAAU37F,KAAKmoC,OAAOm07B,oBAAsB,SAC9I,CACA,OAAOt89B,KAAK0zhC,gBAAgB1zhC,KAAKmoC,OAAO+/W,aAC5C,EACA/1Y,EAAMxB,UAAU8mgC,aAAe,SAAU3++B,GACrC,OAAO94B,KAAKmoC,OAAOkje,UAAUtlK,YAAYjtU,GAAQ,OAASuj8B,IAAyBr89B,KAAKmoC,OAAOo7W,UAAU9jE,WAAWz/U,KAAKmoC,OAAO+/W,aAAc,CAAE7iY,OAAQ,SAAUs2E,SAAU37F,KAAKmoC,OAAOm07B,oBAAsB,SAClN,EACAnq9B,EAAMxB,UAAUmphC,wBAA0B,SAAU75/B,GAChD,IAAIw5kB,EAAK34mB,GAAc,MACnB8kJ,EAAK9kJ,GAAc,KAAM,CACzBC,UAAW8ua,IACXpmF,MAAO,CAAE,MAAUxpT,EAAOjgC,KAAKmoC,OAAOkje,UAAUtlK,YAAY,QAAU,IAAM9lU,EAAO,IACnFiJ,UAAYjJ,GAAQ,KAExBw5kB,EAAG/nlB,YAAYk0H,GACf,IAAI3sI,EAAO,CAAEkyH,YAAa,iBAAkBh2H,QAASywI,GAErD,OADA5lJ,KAAKmoC,OAAOm4P,QAAQvpQ,IAAkB9d,GAC/BwgmB,CACX,EACAtnmB,EAAMxB,UAAU65b,aAAe,WAC3B,IAAIuulB,EAAuB/4hC,KAAKmV,QAAQykB,cAAc,IAAMi2Y,KACxDkpnB,GACAlgzB,GAAa1lN,OAAO4lgC,EAAsB,SAAU/4hC,KAAK0vpB,gBAEjE,EACAv9oB,EAAMxB,UAAUgu9B,cAAgB,WAC5B,MAAmC,UAA5B3+9B,KAAKmoC,OAAOw/W,eACb57E,GAAkB/rU,KAAKmoC,OAAOuz7B,kBAAkBjwlB,cAAgBzrY,KAAKmoC,OAAOuz7B,kBAAkB8B,cAAgB,EACxH,EACArr9B,EAAMxB,UAAUo8U,cAAgB,WAC5B,MAAO,OACX,EACA56U,EAAMxB,UAAUymI,QAAU,YACjBp3I,KAAKmoC,QAAUnoC,KAAKmoC,QAAUnoC,KAAKmoC,OAAOgwP,aAG3Cn4R,KAAKmV,UACDnV,KAAKuz/B,aACLvz/B,KAAKuz/B,WAAWn82B,UAChBp3I,KAAKuz/B,WAAa,MAEtBvz/B,KAAKwqc,eACDxqc,KAAKmoC,OAAOyh8B,cACZ5p+B,KAAKmoC,OAAOyh8B,aAAaxy1B,UAEzBp3I,KAAKmoC,OAAO69+B,qBACZhmhC,KAAKmoC,OAAO69+B,oBAAoBxlD,cAEpC156B,EAAOn2C,UAAUymI,QAAQz3I,KAAKK,MAEtC,EACOmS,CACX,CAhrB2B,CAgrBzB0/gC,KClsBEyJ,IAAmC,WACnC,SAASA,EAAkBnz/B,EAAQo37B,GAC/Bv/9B,KAAKmoC,OAASA,EACdnoC,KAAKu/9B,YAAcA,CACvB,CAoHA,OAnHA+7D,EAAkB3qhC,UAAU4qhC,YAAc,SAAU187B,GAEhD,IADA,IAAIh0E,EAAS,CAAC,EACLvb,EAAK,EAAG+t+B,EAAUx+4B,EAAOvvF,EAAK+t+B,EAAQj6+B,OAAQkM,IAAM,CACzD,IAAI9N,EAAI67+B,EAAQ/t+B,GACZhD,EAAM9K,EAAEpB,cACZyqB,EAAO0B,SAASjgB,EAAIwK,WAAY,KAAO+T,EAAO0B,SAASjgB,EAAIwK,WAAY,MAAQ,GAC/E+T,EAAO0B,SAASjgB,EAAIwK,WAAY,KAAK1K,KAAK5K,EAC9C,CACA,OAAOqpB,CACX,EACAywgC,EAAkB3qhC,UAAU6qhC,aAAe,SAAU387B,GAEjD,IADA,IAAIh0E,EAAS,CAAC,EACLvb,EAAK,EAAGmshC,EAAU587B,EAAOvvF,EAAKmshC,EAAQr4hC,OAAQkM,IAAM,CACzD,IAAI9N,EAAIi6hC,EAAQnshC,GACZhD,EAAiC,IAA1B9K,EAAEpB,cAAgB,MAAaoB,EAAErB,WAC5C0qB,EAAO0B,SAASjgB,EAAIwK,WAAY,KAAO+T,EAAO0B,SAASjgB,EAAIwK,WAAY,MAAQ,GAC/E+T,EAAO0B,SAASjgB,EAAIwK,WAAY,KAAK1K,KAAK5K,EAC9C,CACA,OAAOqpB,CACX,EACAywgC,EAAkB3qhC,UAAU+qhC,YAAc,SAAU787B,GAEhD,IADA,IAAIh0E,EAAS,CAAC,EACLvb,EAAK,EAAGqshC,EAAU987B,EAAOvvF,EAAKqshC,EAAQv4hC,OAAQkM,IAAM,CACzD,IAAI9N,EAAIm6hC,EAAQrshC,GACZsshC,GAAU,IAAIn6hC,KAAK,KAAM,EAAG,GAC5BytZ,EAAe1tZ,EAAEggB,oBAAsB,IAAI/f,KAAK,KAAM,EAAG,GAAG+f,oBAC5DlV,EAAM1I,KAAKC,QAAUrC,EAAIo6hC,EAA0B,GAAf1soB,EAAoB,KAASw+jB,IAAc,IAAIjs9B,KAAKm6hC,GAAQj4hC,SAAW,GAAK,GAChH3D,KAAKmoC,OAAOl8B,gBAAkBjM,KAAKmoC,OAAOl8B,eAAiB,IAAIxK,MAAMD,GAAGmC,WACxE2I,GAAY,GAEhBue,EAAO0B,SAASjgB,EAAIwK,WAAY,KAAO+T,EAAO0B,SAASjgB,EAAIwK,WAAY,MAAQ,GAC/E+T,EAAO0B,SAASjgB,EAAIwK,WAAY,KAAK1K,KAAK5K,EAC9C,CACA,OAAOqpB,CACX,EACAywgC,EAAkB3qhC,UAAUkrhC,cAAgB,SAAU3x/B,EAAMoylB,EAASzvO,EAAKgjB,EAAKjja,GAO3E,IANA,IAAItN,EAAQU,KACRo6U,EAAa,SAAUl6U,EAAMmlB,GAC7B,OAAO/lB,EAAM6oC,OAAOo7W,UAAU9jE,WAAWv/U,EAAM,CAAEmlB,OAAQA,EAAQs2E,SAAUr8F,EAAM6oC,OAAOm07B,mBAC5F,EACIw/D,EAAU,GACVv3hC,EAAO9E,OAAO8E,KAAK2lC,GACd/9B,EAAI,EAAGA,EAAI5H,EAAKnB,OAAQ+I,IAAK,CAClC,IAAI0yF,EAAQ30D,EAAK3lC,EAAKgoB,SAASpgB,EAAE2K,WAAY,MACzCilhC,OAAU,EACd,GAAIlvoB,EAAItpX,SAAU,CACd,IAAItqB,EAAO,CAAE/Y,KAAM2+F,EAAM,GAAIjyF,KAAMA,GAC/BugW,EAAantW,KAAKmoC,OAAOhzB,QAAQghB,GAAK,qBAC1C4lgC,EAAU,GAAGnrhC,MAAMjR,KAAKK,KAAKmoC,OAAO4n1B,eAAelje,EAAItpX,SAA/BvjC,CAAyCiZ,EAAMjZ,KAAKmoC,OAAQ,WAAYglU,GAAY,GAChH,KACK,CACD,IAAI6urB,OAAe,EACnB,OAAQnvoB,EAAIjvG,QACR,IAAK,OACDo+uB,EAAe,+BAAmC5htB,EAAWv7O,EAAM,GAAI,KAAO,UAC9E,MACJ,IAAK,QACDm97B,EAAe,gCAAoClsE,IAAoB11oB,EAAWv7O,EAAM,GAAI,QAAS,UAAY,UACjH,MACJ,IAAK,OACDm97B,EAAe,+BAAmCh8hC,KAAKmoC,OAAOul/B,qBAAqB7u7B,GAAS,UAEpG,IAAIyh7B,EAAgBx/gC,GAAc,MAAO,CAAEooC,UAAW8y/B,IACtDD,EAAU,GAAGnrhC,MAAMjR,KAAK2ghC,EAAcn3+B,WAC1C,CACA2y/B,EAAQ1vhC,KAAK,CAAElM,KAAM2+F,EAAM,GAAIjyF,KAAMA,EAAM7L,UAAW,CAAC8ua,GAAMomM,QAASp3gB,EAAMz7F,OAASk5nB,EAAS/4lB,SAAUw4/B,GAC5G,CACA,OAAOD,CACX,EACAR,EAAkB3qhC,UAAUwihC,qBAAuB,SAAU9Q,EAAW4Z,GACpE,IAAIzgQ,EAAS,GACTptN,EAAOpukB,KAAKmoC,OAAOuz7B,kBAAkBxtT,WACrCguX,EAAmB,EACc,SAAjC9td,EAAKA,EAAKhrkB,OAAS,GAAGw6S,QAAqBq+uB,EAAU74hC,OAAS,IAC9D84hC,EAAmBD,EAAU74hC,OAASi/gC,EAAUj/gC,QAMpD,IAJA,IACI+4hC,EACAC,EACAC,EAHAP,EAAU,GAILxshC,EAAK,EAAGoomB,EAAStpC,EAAM9+jB,EAAKoomB,EAAOt0mB,OAAQkM,IAAM,CACtD,IAAIu9Y,EAAM6qN,EAAOpomB,GACjB,OAAQu9Y,EAAIjvG,QACR,IAAK,OACDu+uB,EAASn8hC,KAAKu7hC,YAAYv7hC,KAAKu/9B,aAC/Bu8D,EAAU97hC,KAAK67hC,cAAcM,EAAQD,EAAkBrvoB,EAAK,qBAAsB,cAClF2uY,EAAOpvxB,KAAK0vhC,GACZ,MACJ,IAAK,QACDM,EAAUp8hC,KAAKw7hC,aAAax7hC,KAAKu/9B,aACjCu8D,EAAU97hC,KAAK67hC,cAAcO,EAASF,EAAkBrvoB,EAAK,sBAAuB,eACpF2uY,EAAOpvxB,KAAK0vhC,GACZ,MACJ,IAAK,OACDO,EAASr8hC,KAAK07hC,YAAY17hC,KAAKu/9B,aAC/Bu8D,EAAU97hC,KAAK67hC,cAAcQ,EAAQH,EAAkBrvoB,EAAK,qBAAsB,cAClF2uY,EAAOpvxB,KAAK0vhC,GACZ,MACJ,IAAK,OAEDA,GADAA,EAAUzZ,GACQp8gC,KAAI,SAAUrE,GAE5B,OADAA,EAAMq0mB,QAAUimb,EACTt6hC,CACX,IACA45xB,EAAOpvxB,KAAK0vhC,GACZ,MACJ,IAAK,OACGG,EAAU74hC,OAAS,GACnBo4xB,EAAOpvxB,KAAK6vhC,GAI5B,CACA,OAAOzgQ,CACX,EACO8/P,CACX,CAzHuC,GCLnCp1+B,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAuBzCk2+B,IAA+B,SAAUx1+B,GAEzC,SAASw1+B,EAAcn0/B,GACnB,IAAI7oC,EAAQwnD,EAAOnnD,KAAKK,KAAMmoC,IAAWnoC,KAGzC,OAFAV,EAAMi9hC,oBAAsB,KAC5Bj9hC,EAAM01hC,aAAe,kBACd11hC,CACX,CA+PA,OArQA4mD,IAAUo2+B,EAAex1+B,GAOzBw1+B,EAAc3rhC,UAAUo8U,cAAgB,WACpC,MAAO,eACX,EACAuvsB,EAAc3rhC,UAAU2khC,oBAAsB,WAC1C,OAAOt1hC,KAAKmV,QAAQykB,cAAc,IAAMi2Y,IAC5C,EACAysnB,EAAc3rhC,UAAU4hhC,eAAiB,SAAUlqhC,GAC/Cy+C,EAAOn2C,UAAU4hhC,eAAe5yhC,KAAKK,KAAMqI,GAC3CrI,KAAKyyhC,mBAAmBpqhC,EAC5B,EACAi0hC,EAAc3rhC,UAAUilhC,iBAAmB,WACvC,IAAI1/+B,EAAQl2C,KAAKmoC,OAAOio+B,gBAAgBpwgC,KAAKmoC,OAAOko+B,UAAUn69B,OAC1Dsm/B,EAAex8hC,KAAKszhC,UAAUtzhC,KAAKmoC,OAAO+/W,eAAiBloZ,KAAKmoC,OAAOko+B,UAAUz54B,YAChFm1M,GAAkB71R,GAAS,IAAIz0C,MAAMzB,KAAKmoC,OAAO+/W,cAAczlZ,SAASyzC,EAAM/yB,WAAY+yB,EAAM9yB,aAAc,EAAG,GAChH,IAAI3hB,MAAMzB,KAAKmoC,OAAO+/W,cAAczlZ,SAAS,EAAG,EAAG,EAAG,GACxDylO,EAAc,eAAiB,IAAIzmO,KAAK+6hC,GAAc96hC,UAAUoV,WAAa,KAC7Eg/gC,EAAoB91hC,KAAKmV,QAAQykB,cAAcsuM,GAC/C4tzB,IACA91hC,KAAKq0hC,wBAAwBpm4B,WAAcjuJ,KAAKmoC,OAAOkwT,YACjDr4V,KAAKmoC,OAAO+8kB,kBAAkB/0W,YAAc2lxB,EAAkBnzuB,WAAamzuB,EAAkB3lxB,aADhC2lxB,EAAkBnzuB,WAG7F,EACA25uB,EAAc3rhC,UAAUm/gC,aAAe,SAAU3w7B,EAAMyw7B,GACnD,IAAI1vhC,EACAusB,EAiBAwhI,EAhBJ,GAAI2h4B,IACAnjgC,EAAQzsB,KAAKmoC,OAAO6k9B,eAAeht/B,KAAKu/9B,YAAalD,IAAeuzD,MACvD,IACT1vhC,EAAO0vhC,GACF7jtB,GAAkB5sO,IAAO,CAC1B,IAAIzM,EAAayM,EAAKxsE,MAAM,KACF,IAAtB+/D,EAAWtvF,SACXlD,EAAO,IAAIuB,KAAKmuhC,EAAWnthC,SAAS8pB,SAASmmE,EAAW,GAAI,IAAKnmE,SAASmmE,EAAW,GAAI,IAAK,IAEtG,EAGRxyF,EAAO6rU,GAAkB6jtB,GAAc5vhC,KAAKmoC,OAAOio+B,gBAAgBjx6B,GAAQj/F,EACvE6rU,GAAkB7rU,MAKlB+tJ,EADA89K,GAAkB5sO,KAAUn/F,KAAKmoC,OAAOuz7B,kBAAkBiC,UAAUhtkB,OACvDlkY,EAAQzsB,KAAKy8hC,mBAGb1wtB,GAAkB6jtB,GAAc5vhC,KAAK08hC,oBAAoB,KAAMx8hC,GACxEF,KAAK08hC,oBAAoB,CAACjwgC,GAAQvsB,GAE1CF,KAAKw1hC,uBAAuBvn4B,WAAcjuJ,KAAKmoC,OAAOkwT,WAA0BpqM,EAAdA,EACtE,EACAqu4B,EAAc3rhC,UAAUwihC,qBAAuB,WAC3C,IAAI33P,EAAS,GACT6mP,EAAYrihC,KAAKoihC,aAAapihC,KAAKu/9B,YAAav/9B,KAAKmoC,OAAOuz7B,kBAAkBmsB,UAClFrsN,EAAOpvxB,KAAKi2gC,GACRrihC,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,GACvDpD,KAAKmoC,OAAOyh8B,aAAa43C,uBAAuBa,GAAYrihC,KAAKmoC,OAAO+27B,cAActuX,iBAE1F,IAAIqrb,EAAY,IACZj8hC,KAAKmoC,OAAOuz7B,kBAAkBiC,UAAUhtkB,SACxCsroB,EAAYj8hC,KAAK28hC,kBAAkBnhQ,EAAOA,EAAOp4xB,OAAS,IAC1Do4xB,EAAOpvxB,KAAK6vhC,IAEZj8hC,KAAKmoC,OAAOuz7B,kBAAkBxtT,WAAW9qqB,OAAS,KAElDo4xB,EADe,IAAI8/P,IAAkBt7hC,KAAKmoC,OAAQnoC,KAAKu/9B,aACrC4zD,qBAAqB9Q,EAAW4Z,IAEtD,OAAOzgQ,CACX,EACA8gQ,EAAc3rhC,UAAUgshC,kBAAoB,SAAUta,GAUlD,IATA,IAAI/ihC,EAAQU,KAOR48hC,EAAe58hC,KAAKo4hC,iBANV,SAAU906B,GAIpB,OAHAA,EAAE12G,KAAO02G,EAAElxE,MAAQ,YAAc,YACjCkxE,EAAEviH,UAAYuiH,EAAElxE,MAAQ,CAACy9X,KAAuB,CAACA,IAAqBA,KACtEvsT,EAAEuk4B,SAAWvo/B,EAAM6oC,OAAOuz7B,kBAAkBmsB,SACrCvk4B,CACX,IAEIky3B,EAAQ,GACHlm+B,EAAK,EAAGozgC,EAAcL,EAAW/ygC,EAAKozgC,EAAYt/gC,OAAQkM,IAAM,CACrE,IAAI46B,EAAOw4+B,EAAYpzgC,GACvB46B,EAAK+rkB,QAAU2mb,EAAax5hC,OAE5B,IADA,IACSkyC,EAAK,EAAGun/B,EADGpz8B,GAAO,GAAImz8B,EAAc,MAAM,GACDtn/B,EAAKun/B,EAAgBz5hC,OAAQkyC,IAAM,CACjF,IAAIuk8B,EAAOgjD,EAAgBvn/B,GACvBmj/B,EAAWp8D,IAAe,IAAI569B,KAAK,GAAKyoC,EAAKhqC,OACjD25+B,EAAK35+B,KAAOm89B,IAAao8D,EAAUp8D,IAAiBwd,EAAK35+B,OACzDs1+B,EAAMpp+B,KAAKyt+B,EACf,CACJ,CACA,OAAOrE,CACX,EACA8mD,EAAc3rhC,UAAU2lhC,0BAA4B,WAChD,MAAKt2hC,KAAKmoC,QAAUnoC,KAAKmoC,QAAUnoC,KAAKmoC,OAAOgwP,aAA/C,CAGAn4R,KAAK22hC,qCACL,IAAID,EAAmB12hC,KAAKq2hC,+BACxB1y5B,EAAO3jI,KAAK08hC,oBAAoBhG,EAAkB12hC,KAAKmoC,OAAOm17B,kBAC9D100B,EAAS5oJ,KAAKmV,QAAQykB,cAAc,IAAMi2Y,KAAyB96I,aACnE+nwB,EAAa98hC,KAAKmV,QAAQykB,cAAc,IAAMi2Y,KAMlD,GALkB7va,KAAKmV,QAAQykB,cAAc,IAAMi2Y,KACvCn+Y,YAAY5wB,GAAc,MAAO,CACzCC,UAAW8ua,IACX37I,QAASl0R,KAAKmoC,OAAOkwT,UAAY,QAAU,QAAU,IAAM3qB,GAAW/pM,GAAQ,YAAc+pM,GAAW9kL,MAEvG5oJ,KAAKmoC,OAAO2h8B,oBAGZ9+oB,GAFoBhrV,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KAE3B,CAC7Bt3W,UAFUv4D,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,IAAyB,UAExD1pa,MAAMoyD,YAGjC,IAAI4+9B,EAAiBr2hC,GAAc,MAAO,CACtCooC,UAAWlpC,KAAKmoC,OAAO4+8B,cAAc/m/B,KAAKmoC,OAAOm17B,kBACjDv89B,UAAW8ua,MAEfitnB,EAAWprgC,YAAYylgC,GACvBA,EAAehxhC,MAAMnG,KAAKmoC,OAAOkwT,UAAY,QAAU,QAAU3qB,GAAW/pM,EAAQwz5B,EAAehnxB,YAAc,EAvBjH,CAwBJ,EACAmsxB,EAAc3rhC,UAAU+rhC,oBAAsB,SAAUhG,EAAkBx2hC,GACtE,IAAI8u9B,EAAYhv9B,KAAKuj/B,eACjBw5C,EAAc,EACdzzC,EAA4D,IAA1Cpp/B,EAAKijB,WAAa6r8B,EAAU7r8B,aAAqBjjB,EAAKkjB,aAAe4r8B,EAAU5r8B,cACrG,IAAK2oT,GAAkB2qtB,IACS,IAAxBA,EAAiB,GACjB,GAAI12hC,KAAKmoC,OAAOyz7B,WAAW4D,UAAU,IAAMx/9B,KAAKmoC,OAAOyz7B,WAAW4D,UAAU,GAAG,GAAGvpX,QAC9E8mb,EAAcrG,EAAiB,GAAK12hC,KAAKmoC,OAAOyz7B,WAAW4D,UAAU,GAAG,GAAGvpX,QAAUj2mB,KAAKy8hC,uBAEzF,CACD,IAAIxtE,EAAUjv9B,KAAKwj/B,aACfpq8B,EAA8B,IAAvB616B,EAAQ9r8B,WAAoB,GAAK8r8B,EAAQ9r8B,WACpDmm+B,GAAkCotC,EAAiB,IAAuC,IAA9Bt9+B,EAAM416B,EAAU7r8B,aAAqB8r8B,EAAQ7r8B,aAAe4r8B,EAAU5r8B,cACtI,CAGR,OAAO25gC,EAAgBzzC,EAAgBtp/B,KAAKy8hC,mBAAqBz8hC,KAAKmoC,OAAOuz7B,kBAAkBiC,UAAUC,UACrG599B,KAAKmoC,OAAOuz7B,kBAAkBiC,UAAUnwpB,QAChD,EACA8utB,EAAc3rhC,UAAU8rhC,iBAAmB,WACvC,OAAOz8hC,KAAKmV,QAAQykB,cAAc,iBAAiB66P,wBAAwBj2Q,KAC/E,EACA89gC,EAAc3rhC,UAAU6m3B,aAAe,WACnC,IAAI/9Q,EAAK34mB,GAAc,MACnBd,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,IAAMpD,KAAKmoC,OAAO+27B,cAActuX,iBACvF5wmB,KAAKmoC,OAAOyh8B,aAAa0yC,2BAA2B7ia,GAExD,IAAI69a,EAASx2hC,GAAc,MAC3Bw2hC,EAAO5lgC,YAAY1xB,KAAKu3hC,qBACxB99a,EAAG/nlB,YAAY4lgC,GACfpk6B,GAAQ,CAACumf,GAAKz5mB,KAAKmV,QAAQykB,cAAc,SAC7C,EAEA0igC,EAAc3rhC,UAAUunhC,gBAAkB,SAAUxw/B,EAAOuw+B,GAAU,EACrEqkB,EAAc3rhC,UAAU0lhC,6BAA+B,WACnD,IAAIK,EAAmB,GACnBjqgC,EAAQzsB,KAAKmoC,OAAO6k9B,eAAeht/B,KAAKu/9B,YAAalD,IAAer89B,KAAKmoC,OAAOm17B,mBAIpF,OAHI7w8B,GAAS,GACTiqgC,EAAiBtqhC,KAAKqgB,GAEnBiqgC,CACX,EACA4F,EAAc3rhC,UAAU+7hB,cAAgB,WACpC,IAAI+sE,EAAK34mB,GAAc,MACvB,GAAId,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,IAAMpD,KAAKmoC,OAAO+27B,cAActuX,gBAAiB,CACxG,IAAIoza,EAAQljhC,GAAc,MAC1BkjhC,EAAMty/B,YAAY1xB,KAAKmoC,OAAOyh8B,aAAaozC,wBAC3Cvja,EAAG/nlB,YAAYsy/B,EACnB,CACA,IAAI0T,EAAS52hC,GAAc,MACvBw7B,EAAOt8B,KAAK63hC,oBAChBv7/B,EAAK5K,YAAY1xB,KAAKiyhC,iBAAiBjyhC,KAAKg9hC,gBAC5Ch9hC,KAAKmyhC,aAAa71/B,GAClBo7/B,EAAOhmgC,YAAY4K,GACnBm9kB,EAAG/nlB,YAAYgmgC,GACX13hC,KAAKmoC,OAAO2h8B,qBACZ9p+B,KAAKmoC,OAAO2h8B,oBAAoBgqC,mBAAmBx3+B,GAEvDt8B,KAAKmV,QAAQykB,cAAc,SAASlI,YAAY+nlB,EACpD,EACA6ib,EAAc3rhC,UAAUqshC,YAAc,WAClC,OAAIh9hC,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,IAAMpD,KAAKmoC,OAAO+27B,cAActuX,gBAChF5wmB,KAAKmoC,OAAOyh8B,aAAac,kBAAkBtn+B,OAE/C,CACX,EACAk5hC,EAAc3rhC,UAAUsshC,kBAAoB,SAAU9whC,EAAG8rgC,GACrD,IAAIilB,EAAWl9hC,KAAKmoC,OAAOyh8B,aAAac,kBAAkBn+8B,SAASpgB,EAAE2K,WAAY,KAC7EqmhC,EAASD,EAAS3lD,aAAa2lD,EAAS/yP,SAAS62O,iBAAmBhhhC,KAAKmoC,OAAOko+B,UAAUn69B,MAC1Fkn/B,EAASF,EAAS3lD,aAAa2lD,EAAS/yP,SAAS82O,eAAiBjhhC,KAAKmoC,OAAOko+B,UAAUj39B,IAO5F,OANA6+9B,EAAOjpD,UAAYhv9B,KAAKmoC,OAAOio+B,gBAAgB+sB,GAC/CllB,EAAOhpD,QAAUjv9B,KAAKmoC,OAAOio+B,gBAAgBgtB,GAC7CnlB,EAAOpwB,SAAWq1C,EAAS3lD,aAAa2lD,EAAS/yP,SAAS29M,gBAAkB9n/B,KAAKmoC,OAAO0/8B,SACxFowB,EAAOl3gC,UAAYm8hC,EAASn8hC,UAC5Bk3gC,EAAO93M,WAAa+8N,EAAS/8N,WAC7B83M,EAAO7/B,WAAa8kD,EAAS9kD,WACtB6/B,CACX,EACAqkB,EAAc3rhC,UAAU0nhC,mBAAqB,SAAU3w/B,GACnD,IAAIk1+B,EAAQl1+B,EAAM9N,cAAc,SAChCo5F,GAAOhzH,KAAK+1gC,iBAAkB6G,EAClC,EACA0f,EAAc3rhC,UAAUolgC,eAAiB,WAKrC,IAJA,IAAI3nc,EAAO,GACPqrC,EAAK34mB,GAAc,MACnB8kJ,EAAK9kJ,GAAc,KAAM,CAAE2oV,MAAO,CAAE,gBAAiB,WACrDozrB,EAAU78gC,KAAKg9hC,cACV7whC,EAAI,EAAGA,EAAI0wgC,EAAS1wgC,IAAK,CAE9B,IADA,IAAI6xgC,EAAMvka,EAAGt2kB,YACJ7zB,EAAK,EAAGgmC,EAAKt1C,KAAKw/9B,UAAUx/9B,KAAKw/9B,UAAUp89B,OAAS,GAAIkM,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CACnF,IAAI2ogC,EAAS3i+B,EAAGhmC,GACZtP,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,IAAMpD,KAAKmoC,OAAO+27B,cAActuX,kBACvFqna,EAASj4gC,KAAKi9hC,kBAAkB9whC,EAAG8rgC,IAEvC,IAAIyF,EAAM19gC,KAAKu4hC,gBAAgBtgB,EAAQA,EAAQry3B,GAC/Co43B,EAAIts/B,YAAYgs/B,EACpB,CACAtvc,EAAKhikB,KAAK4xgC,EACd,CACA,OAAO5vc,CACX,EACAkud,EAAc3rhC,UAAU6nhC,kBAAoB,SAAUl16B,GAClD,OAAQA,EAAElxE,QAAUpyC,KAAKmoC,OAAOuz7B,kBAAkBiC,UAAUhtkB,OAAU,CAACkf,KACnE,CAACA,IAAsBA,IAC/B,EACAysnB,EAAc3rhC,UAAU0z+B,aAAe,WACnCrk/B,KAAKu8hC,oBAAsB,IAAI5sC,IAAc3v/B,KAAKmoC,OAAQnoC,KAAKmoC,OAAOuz7B,kBAAkBiC,UAAUhtkB,OAAS,OAAS,OACpH3wZ,KAAKu8hC,oBAAoB74C,qBACzB1j/B,KAAKmoC,OAAOkxK,OAAOtiL,IAAoB,CAAC,EAC5C,EACAulgC,EAAc3rhC,UAAU4ghC,gBAAkB,SAAUrxhC,GAChD,IAAKF,KAAKmoC,OAAOuz7B,kBAAkBiC,UAAUhtkB,OACzC,OAAO,IAAIlvZ,KAAKvB,EAAKuC,SAAS,EAAG,EAAG,EAAG,IAIvC,IADA,IAAIq2hC,EAAY94hC,KAAKw/9B,UAAUx/9B,KAAKw/9B,UAAUp89B,OAAS,GAC9C+I,EAAI,EAAGA,EAAI2shC,EAAU11hC,OAAQ+I,IAClC,GAAI2shC,EAAUvsgC,SAASpgB,EAAE2K,WAAY,KAAK5W,KAAKwB,UAAYxB,EAAKwB,UAC5D,OAAOo3hC,EAAU3shC,EAAI,GAAGjM,KAIpC,OAAO,IACX,EACAo8hC,EAAc3rhC,UAAUymI,QAAU,YACzBp3I,KAAKmoC,QAAUnoC,KAAKmoC,QAAUnoC,KAAKmoC,OAAOgwP,cAG3Cn4R,KAAKu8hC,sBACLv8hC,KAAKu8hC,oBAAoBnl5B,UACzBp3I,KAAKu8hC,oBAAsB,MAE/Bz1+B,EAAOn2C,UAAUymI,QAAQz3I,KAAKK,MAClC,EACOs8hC,CACX,CAvQmC,CAuQjCvH,KCtREsI,IAA4B,WAC5B,SAASA,EAAWl1/B,GAChBnoC,KAAKs9hC,cAAgB,EACrBt9hC,KAAKmoC,OAASA,EACdnoC,KAAK+0gC,UAAY,CACb3z/B,EAAG,EAAGvC,EAAG,EAAGshzB,WAAY,EAAGlS,UAAW,EAAGsE,WAAY,EAAGgrO,aAAc,EAAG/vtB,SAAU,EAAGgwtB,YAAa,EACnGxxhC,aAAc,GAAIo4gB,gBAAiB,GAAIlvc,OAAQ,KAAM6o5B,SAAU,KAAM0/D,iBAAkB,KACvFhxgC,MAAO,EAAGixgC,mBAAoB,KAAMC,eAAgB,MAExD39hC,KAAK49hC,WAAa,CAAEzohC,QAAS,KAAMqJ,MAAO,EAAGoqI,OAAQ,GACrD5oJ,KAAK69hC,YAAc,CAAEl65B,MAAM,EAAOC,OAAO,EAAOsqB,KAAK,EAAOymI,QAAQ,GACpE30R,KAAKwthC,YAAc,CAAE7p5B,MAAM,EAAOC,OAAO,EAAOsqB,KAAK,EAAOymI,QAAQ,EACxE,CA2bA,OA1bA0owB,EAAW1shC,UAAUmthC,eAAiB,SAAUC,GAC5C,IAAIz+hC,EAAQU,KACRy2+B,EAAWht5B,GAAO,CAAC,EAAGzpF,KAAK+0gC,UAAUh++B,MAAO,MAAM,GAMtD,GALA0/8B,EAASz2+B,KAAKmoC,OAAOw+7B,YAAY5vzB,WAAa/2K,KAAK+0gC,UAAU7+9B,MAC7Dug8B,EAASz2+B,KAAKmoC,OAAOw+7B,YAAYj6lB,SAAW1sY,KAAK+0gC,UAAU379B,IACtD2yR,GAAkB/rU,KAAK+0gC,UAAUh3C,YAClC0Y,EAASz2+B,KAAKmoC,OAAOw+7B,YAAY5I,UAAY/99B,KAAK+0gC,UAAUh3C,UAE5D/99B,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,EAAG,CAC1D,IAAIghhB,EAAkBpkhB,KAAKg+hC,mBAAmBh+hC,KAAK+0gC,UAAU5//B,SAC7D,GAAIivgB,EAAiB,CACjB,IAAI65gB,EAAa75gB,EAAgBn+gB,KAAI,SAAUkP,GAAW,OAAOoX,SAASpX,EAAQmd,aAAa,oBAAqB,GAAK,IACzH,IAAuD,IAAnD2rgC,EAAWtzhC,QAAQ3K,KAAK+0gC,UAAU50M,cAAwBp0f,GAAkBgytB,IAAcA,EAAU36hC,OAAS,EAAI,CACjH,IAAI86hC,EAAe3xgC,SAASvsB,KAAK+0gC,UAAUxzgC,MAAM+wB,aAAa,oBAAqB,KACnF2rgC,EAAaA,EAAW73hC,QAAO,SAAUqmB,GAAS,OAAOA,IAAUyxgC,CAAc,KACtE9xhC,KAAKpM,KAAK+0gC,UAAU50M,YAC3B49N,GAAaA,EAAU36hC,OAAS,EAChC26hC,EAAU13hC,SAAQ,SAAU6jC,GACxB5qC,EAAM6oC,OAAOyh8B,aAAaonC,gBAAgB9m+B,EAAM5qC,EAAMy1gC,UAAU50M,WAAY89N,EAChF,IAGAj+hC,KAAKmoC,OAAOyh8B,aAAaonC,gBAAgBv6B,EAAUz2+B,KAAK+0gC,UAAU50M,WAAY89N,EAEtF,CACJ,CACJ,CACA,OAAOxnD,CACX,EACA4mD,EAAW1shC,UAAUwthC,gBAAkB,SAAUv5sB,EAAW8sE,GAIxD,IAAI2sK,OAHkB,IAAlB3sK,IAA4BA,GAAgB,GAChD1xZ,KAAKmoC,OAAOoi8B,gBAAgBxz8B,MAAQ/2B,KAAK+0gC,UAAUh++B,MACnD/2B,KAAKmoC,OAAOk2hB,cAAgB,OAE5B,IAAI+/d,EAAmB,CAACx5sB,EAAU16S,MAC9BwnX,IACA0soB,EAAmBx5sB,EAAUu9G,cAEjC,IAAK,IAAI7yb,EAAK,EAAG+uhC,EAAqBD,EAAkB9uhC,EAAK+uhC,EAAmBj7hC,OAAQkM,IAAM,CAC1F,IAAImn+B,EAAW4nD,EAAmB/uhC,GAC9BgvhC,IAAkBt+hC,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,IACzEmpB,SAASvsB,KAAK+0gC,UAAU5//B,QAAQmd,aAAa,oBAAqB,MAAQtyB,KAAK+0gC,UAAU50M,WAC7F,IAAKs2K,EAASz2+B,KAAKmoC,OAAOw+7B,YAAY5vzB,cAAgB/2K,KAAK+0gC,UAAUh++B,MAAM/2B,KAAKmoC,OAAOw+7B,YAAY5vzB,aAC9F0/zB,EAASz2+B,KAAKmoC,OAAOw+7B,YAAYj6lB,YAAc1sY,KAAK+0gC,UAAUh++B,MAAM/2B,KAAKmoC,OAAOw+7B,YAAYj6lB,UAAY4xpB,EAEzG,YADAt+hC,KAAKmoC,OAAOo47B,WAAWwV,QAAQpzjB,cAAe,GAGlD,GAAI8zjB,EAASz2+B,KAAKmoC,OAAOw+7B,YAAY0E,gBAAiB,CAClD,IAAIkzD,EAAS9nD,EAASz2+B,KAAKmoC,OAAOw+7B,YAAYmP,eAAiBW,EAASz2+B,KAAKmoC,OAAOw+7B,YAAYxw8B,IAKhG,GAJIsg9B,EAASz2+B,KAAKmoC,OAAOw+7B,YAAYxw8B,MAAQsg9B,EAASz2+B,KAAKmoC,OAAOw+7B,YAAYmP,gBAC1EW,EAASz2+B,KAAKmoC,OAAOw+7B,YAAYxw8B,IAAMn2B,KAAKmoC,OAAOu87B,UAAUmY,gBAC7Dx+a,EAAgB,kBAEhBr+jB,KAAKmoC,OAAOuu9B,4BACT12/B,KAAKmoC,OAAO617B,YAAYszC,yBAAyBitB,EAAO9nD,EAAUz2+B,KAAK+0gC,UAAUh++B,OACpF,MAER,MAEIsniB,EAAgB,MAEhBo4a,EAASz2+B,KAAKmoC,OAAOw+7B,YAAYuQ,gBAAkBT,EAASz2+B,KAAKmoC,OAAOw+7B,YAAYwQ,eACpFn3+B,KAAKmoC,OAAOu87B,UAAUuS,gBAAgBR,GAE1Cz2+B,KAAKmoC,OAAOo47B,WAAWz9N,UAAU2zO,EAAUp4a,EAC/C,CACJ,EACAg/d,EAAW1shC,UAAU6thC,sBAAwB,SAAUt+hC,GACnD,IAAIu+hC,EAAe,IAAIh9hC,MAAMvB,GAE7B,OADAu+hC,EAAa757B,WAAWhhG,KAAKiG,MAAM40hC,EAAar7gC,aAAepjB,KAAK+0gC,UAAUvnsB,UAAYxtU,KAAK+0gC,UAAUvnsB,UAClGixtB,CACX,EACApB,EAAW1shC,UAAU+thC,wBAA0B,WAC3C,IAAIC,EAAc3+hC,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KACtDu3M,EAAY,GAAGx2mB,MAAMjR,KAAKg/hC,EAAY/kgC,cAAc,MAAM9zB,UACzD9F,KAAKmoC,OAAOyz7B,WAAWgJ,oBAAoB5k+B,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,IAClGpD,KAAKmoC,OAAOumrB,YAAe1utB,KAAKmoC,OAAOktlB,kBAAqBr1nB,KAAKmoC,OAAO2h8B,sBACzE1iX,EAAYpnnB,KAAK4+hC,oBAAoBx3a,IAEzC,IAAIk7B,EAAal7B,EAAU,GAAG3yV,wBAC1B8uG,EAAc6jP,EAAUx2mB,OAAO,GAAG,GAAG6jR,wBASzC,MARoB,CAChBE,OAAQgqwB,EAAYzgvB,aAAe,EACnCv6K,KAAM3jI,KAAKmoC,OAAOkwT,UAAYkrC,EAAY5/P,KAAO2+gB,EAAW3+gB,KAC5DC,MAAO5jI,KAAKmoC,OAAOkwT,UAAYiqT,EAAW1+gB,MAAQ2/P,EAAY3/P,MAC9DsqB,IAAK,EACLo0f,WAAYtipB,KAAKmoC,OAAOkwT,UAAYkrC,EAAY3/P,MAAQ0+gB,EAAW1+gB,MACnE2/P,YAAavjY,KAAKmoC,OAAOkwT,UAAYiqT,EAAW3+gB,KAAO4/P,EAAY5/P,KAG3E,EACA055B,EAAW1shC,UAAUurC,SAAW,SAAUzvB,GACtC,IAAIoygC,EAAkB,GAAGjuhC,MAAMjR,KAAKK,KAAKmoC,OAAO+8kB,kBAAkBtrlB,cAAc,MAAM9zB,UAClF0sE,EAAU,CAAEss9B,SAAU,EAAG58tB,SAAU28tB,EAAgBz7hC,OAAS,GAChE,GAA8B,WAA1BpD,KAAK+0gC,UAAU7/7B,QAAuBl1E,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,IAC5FpD,KAAKmoC,OAAO+27B,cAActuX,kBAAoB5wmB,KAAKmoC,OAAOyz7B,WAAWgJ,iBAAkB,CACxF,IAAIm6D,EAAgB/+hC,KAAK4+hC,oBAAoBC,GAC7Crs9B,EAAQss9B,SAAWC,EAAc,GAAG5oa,UACpC3jjB,EAAQ0vP,SAAW68tB,EAAcnuhC,OAAO,GAAG,GAAGulnB,SAClD,CAOA,OANI1pmB,EAAQ+lD,EAAQss9B,WAChBrygC,EAAQ+lD,EAAQss9B,UAEhBrygC,EAAQ+lD,EAAQ0vP,WAChBz1S,EAAQ+lD,EAAQ0vP,UAEbz1S,CACX,EACA4wgC,EAAW1shC,UAAUquhC,mBAAqB,SAAU9+hC,EAAM69hC,GAEtD,IADA,IAAItxgC,EAAQ,EACHnd,EAAK,EAAGgmC,EAAKt1C,KAAK+0gC,UAAU/ogC,aAAcsD,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CACrE,IACI2vhC,EADe3p/B,EAAGhmC,GACSsqB,cAAc,IAAMi2Y,KACnD,GAAIovnB,EAAa,CACb,IAAIlo3B,EAAY/2K,KAAK+0gC,UAAU7+9B,MAC3Bw2V,EAAU1sY,KAAK+0gC,UAAU379B,IACzB2k/B,GAAaA,EAAU36hC,OAAS,IAChC2zK,EAAYgn3B,EAAUxxgC,SAASE,EAAM3V,WAAY,KAAK9W,KAAKmoC,OAAOw+7B,YAAY5vzB,WAC9E21N,EAAUqxpB,EAAUxxgC,SAASE,EAAM3V,WAAY,KAAK9W,KAAKmoC,OAAOw+7B,YAAYj6lB,UAEhFuypB,EAAY/1/B,UAAYlpC,KAAKmoC,OAAO4+8B,cAAchw0B,GAAa,MAC3D/2K,KAAKmoC,OAAO4+8B,cAAcr6mB,EAClC,CACAjgX,GACJ,CACA,GAAKzsB,KAAKmoC,OAAOuz7B,kBAAkBiC,UAAUhtkB,QAAW3wZ,KAAKmoC,OAAOumrB,YAA0C,UAA5B1utB,KAAKmoC,OAAOw/W,aAC9D,kBAA5B3nZ,KAAKmoC,OAAOw/W,YADhB,CAIA,IAAI+snB,EAAgB10gC,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KAC5D,IAAK6kmB,EAAe,CAChBA,EAAgB5zgC,GAAc,MAAO,CAAEC,UAAW8ua,MAClD,IAAIqvnB,EAAel/hC,KAAKmoC,OAAOyz7B,WAAWgJ,iBAAmB/0jB,IAA6BA,IAC1F7va,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMslgC,GAAcxtgC,YAAYgj/B,EACtE,CACAA,EAAcxr+B,UAAYlpC,KAAKmoC,OAAO4+8B,cAAc7m/B,GACpD,IAAI+wZ,EAAc,EAClB,GAAIjxZ,KAAKmoC,OAAOyz7B,WAAWgJ,iBACvB,GAAI5k+B,KAAKmoC,OAAOkwT,UAAW,CACvB,IAAI6/c,EAAa3rxB,SAASvsB,KAAK+0gC,UAAUxzgC,MAAM4E,MAAMy9H,MAAO,IAC5DqtR,EAAwC,SAA1BjxZ,KAAK+0gC,UAAU7/7B,QAAqBl1E,KAAK69hC,YAAYl65B,KAC/Du0qB,EAAal4yB,KAAK+0gC,UAAUxzgC,MAAM4uQ,YAAc+niB,EACpDw8N,EAAcvugC,MAAMy9H,MAAQ8pM,GAAWujF,EAC3C,KACK,CACD,IAAIk7I,EAAY5/gB,SAASvsB,KAAK+0gC,UAAUxzgC,MAAM4E,MAAMw9H,KAAM,IAC1DstR,EAAwC,SAA1BjxZ,KAAK+0gC,UAAU7/7B,QAAqBl1E,KAAK69hC,YAAYl65B,KAC/Dwoa,EAAYA,EAAYnsiB,KAAK+0gC,UAAUxzgC,MAAM4uQ,YACjDukwB,EAAcvugC,MAAMw9H,KAAO+pM,GAAWujF,EAC1C,MAGAA,EAAwC,SAA1BjxZ,KAAK+0gC,UAAU7/7B,QAAqBl1E,KAAK69hC,YAAY3v4B,IAAMluJ,KAAK+0gC,UAAUxzgC,MAAMqhT,UAC1F5iT,KAAK+0gC,UAAUxzgC,MAAMqhT,UAAY5iT,KAAK+0gC,UAAUxzgC,MAAMwzR,aAC1D2/uB,EAAcvugC,MAAM+nJ,IAAMw/K,GAAWujF,EA1BzC,CA4BJ,EACAosoB,EAAW1shC,UAAUiuhC,oBAAsB,SAAUl3/B,GACjD,IAAIpoC,EAAQU,KACZ,OAAO0nC,EAAMthC,QAAO,SAAU+O,GAC1B,OAAOoX,SAASpX,EAAQmd,aAAa,oBAAqB,MAAQhzB,EAAMy1gC,UAAU50M,UACtF,GACJ,EACAk9N,EAAW1shC,UAAUqthC,mBAAqB,SAAU7ohC,GAChD,IAAIivgB,EACAviU,EAAO1sM,EAAQmd,aAAa,aAEhC,GADkBnd,EAAQi+Q,cAAgBj+Q,EAAQi+Q,aAAalL,UAAUh1P,SAAS28Y,MAC/D7va,KAAKmoC,OAAOyz7B,WAAWgJ,kBAA+C,WAA1B5k+B,KAAK+0gC,UAAU7/7B,QAAuBl1E,KAAKmoC,OAAO2h8B,oBAC7G1ld,EAAkB,GAAGxzgB,MAAMjR,KAAKK,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiB,eAAiBqxM,EAAO,WAE5F,CACD,IAAI43Z,EAAKhkhB,GAAQtgF,EAAS,MACtBskmB,IACAr1F,EAAkB,GAAGxzgB,MAAMjR,KAAK85mB,EAAGjpmB,iBAAiB,eAAiBqxM,EAAO,OAEpF,CACA,OAAOuiU,CACX,EACAi5gB,EAAW1shC,UAAUwuhC,mBAAqB,SAAUhqhC,GAChD,IACInJ,EADelL,GAAc,MAAO,CAAEooC,UAAW/zB,EAAQg3B,YAC7BrmC,SAAS,GACrCs5hC,EAAkB,CAACvvnB,KACvBuvnB,EAAgBhzhC,KAAgC,SAA1BpM,KAAK+0gC,UAAU7/7B,OAAqB26V,IAAuBA,KACjD,UAA5B7va,KAAKmoC,OAAOw/W,aAAuD,kBAA5B3nZ,KAAKmoC,OAAOw/W,aACnDy3oB,EAAgBhzhC,K1CeW,iB0Cb/Bo8Q,GAAS,CAACx8Q,GAAeozhC,GACzB52wB,GAAS,CAACrzQ,GAAU06Z,KACf9jG,GAAkB52T,EAAQ0gR,gBAC3B1gR,EAAQ0gR,cAAcnkQ,YAAY1lB,GAEtCA,EAAa7F,MAAMqY,MAAQkvT,GAAW1hU,EAAamkQ,YAAc,GACjE,IAAI4uF,EAAc7tU,SAAS0I,cAAc55B,KAAKmoC,OAAOk3/B,eAKrD,OAJIr/hC,KAAKmoC,OAAOk3/B,eAA2C,SAA1Br/hC,KAAK+0gC,UAAU7/7B,QAAqB6pR,GACjEA,EAAYrtU,YAAY1lB,GAE5Bg/U,GAAkBh/U,EAAc,CAAEw7P,OAAQ,QACnCx7P,CACX,EACAqxhC,EAAW1shC,UAAU2uhC,0BAA4B,WAC7C,IAAIhzuB,EAAWtsT,KAAK+0gC,UAAU3wf,gBACE,UAA5BpkhB,KAAKmoC,OAAOw/W,aAAuD,iBAA5B3nZ,KAAKmoC,OAAOw/W,aACvB,QAA5B3nZ,KAAKmoC,OAAOw/W,aAAqD,SAA5B3nZ,KAAKmoC,OAAOw/W,aAAsD,aAA5B3nZ,KAAKmoC,OAAOw/W,cACvFr7F,EAAW,GAAG17S,MAAMjR,KAAKK,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiB,IAAMq/Z,OAExE5nJ,GAAYqkC,EAAUujH,IAC1B,EACAwtnB,EAAW1shC,UAAU4uhC,mBAAqB,WACtCv/hC,KAAK+0gC,UAAU3wf,gBAAkB,GAEjC,IADA,IACS90gB,EAAK,EAAGkwhC,EADA,GAAG5uhC,MAAMjR,KAAKK,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiB,qBACxBlB,EAAKkwhC,EAAap8hC,OAAQkM,IAAM,CAExE6jB,GADeqsgC,EAAalwhC,GAEhC,CACA,IAAK,IAAIgmC,EAAK,EAAGI,EAAK11C,KAAK+0gC,UAAU/ogC,aAAcspC,EAAKI,EAAGtyC,OAAQkyC,IAAM,CACrE,IAAItpC,EAAe0pC,EAAGJ,GACjBy2R,GAAkB//T,EAAawoB,aAChCrB,GAAOnnB,EAEf,CACAhM,KAAK+0gC,UAAU/ogC,aAAe,GAC9B,IAAI0ogC,EAAgB10gC,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KACxD6kmB,GACAvh/B,GAAOuh/B,EAEf,EACA2oB,EAAW1shC,UAAU8uhC,iBAAmB,SAAUp/hC,GAC9C,IAAIi9vB,EAAQt9vB,KAAKmoC,OAAOu87B,UAAU8d,mBAAmBni/B,GACrD,OAAO6wB,SAAS6xU,iBAAiBu6Z,EAAMjkuB,QAASikuB,EAAMhkuB,QAC1D,EACA+jgC,EAAW1shC,UAAU+uhC,WAAa,WAC9B,IAAIv3/B,EAASnoC,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KACjD8vnB,EAAgBx3/B,EAAO4sP,cAAgB5sP,EAAO+1Q,aAC9C0hvB,EAAgBz3/B,EAAOgoO,aAAehoO,EAAOioO,YAC7CkztB,EAAYq8D,GAAiBx3/B,EAAOgmH,WAAa,GAAKhmH,EAAOgmH,UAAYhmH,EAAO4sP,cAAgB5sP,EAAO+1Q,aACvGqlrB,EAAYq8D,GAAiBz3/B,EAAO8lH,YAAc,GAAK9lH,EAAO8lH,WAAa9lH,EAAOgoO,aAAehoO,EAAOioO,YAC5G,GAA8B,WAA1BpwQ,KAAK+0gC,UAAU7/7B,QAAuBl1E,KAAKwthC,YAAY5p5B,OAAUz7F,EAAO8lH,WAAa9lH,EAAOgoO,YAAehoO,EAAOioO,YAAa,CAC/H,IAAIyvxB,EAAiB,GAAGjvhC,MAAMjR,KAAKK,KAAKmoC,OAAO+8kB,kBAAkBtrlB,cAAc,MAAM9zB,UAAW1C,OAAS,EAGzGmg+B,EAFgB3/9B,KAAKC,MAAM7D,KAAK+0gC,UAAUxzgC,MAAMohT,WAAc3iT,KAAK+0gC,UAAUxzgC,MAAM4uQ,aAC/EnwQ,KAAK+0gC,UAAU9mN,aACO4xO,CAC9B,CACIv8D,IAActj+B,KAAKwthC,YAAYt/3B,KAAOluJ,KAAKwthC,YAAY74vB,UACvDxsP,EAAOgmH,WAAanuJ,KAAKwthC,YAAYt/3B,KAAOluJ,KAAK+0gC,UAAU5qtB,OAAO21uB,SAAW9/hC,KAAK+0gC,UAAU5qtB,OAAO21uB,SACrE,WAA1B9/hC,KAAK+0gC,UAAU7/7B,QACX/sC,EAAO+1Q,eAAiB/1Q,EAAO4sP,aAAe5sP,EAAOgmH,WAAahmH,EAAOgmH,UAAY,IACrFnuJ,KAAK+0gC,UAAUl2/B,GAAK7e,KAAKwthC,YAAYt/3B,IAAMluJ,KAAK+0gC,UAAU5qtB,OAAO21uB,UAAY9/hC,KAAK+0gC,UAAU5qtB,OAAO21uB,WAI3Gv8D,IAAcvj+B,KAAKwthC,YAAY7p5B,MAAQ3jI,KAAKwthC,YAAY5p5B,SACxDz7F,EAAO8lH,YAAcjuJ,KAAKwthC,YAAY7p5B,MAAQ3jI,KAAK+0gC,UAAU5qtB,OAAO21uB,SAAW9/hC,KAAK+0gC,UAAU5qtB,OAAO21uB,SACvE,WAA1B9/hC,KAAK+0gC,UAAU7/7B,QACX/sC,EAAOioO,cAAgBjoO,EAAOgoO,YAAchoO,EAAO8lH,YAAc9lH,EAAO8lH,WAAa,IACrFjuJ,KAAK+0gC,UAAU3z/B,GAAKphB,KAAKwthC,YAAY7p5B,KAAO3jI,KAAK+0gC,UAAU5qtB,OAAO21uB,UAAY9/hC,KAAK+0gC,UAAU5qtB,OAAO21uB,UAIpH,EACAzC,EAAW1shC,UAAUovhC,qBAAuB,WACxC,IAAK//hC,KAAK+0gC,UAAU5qtB,OAAOwmG,OACvB,OAAO,EAEX,IAAIz4T,EAAMl4F,KAAKmoC,OAAOk77B,mBAAmBrj+B,KAAK+0gC,UAAU9u3B,MAAOjmJ,KAAK+0gC,UAAU/u3B,OAE9E,OADAhmJ,KAAKwthC,YAAct17B,EACZA,EAAIy8L,QAAUz8L,EAAIg2D,KAAOh2D,EAAIyrC,MAAQzrC,EAAI0rC,KACpD,EACAy55B,EAAW1shC,UAAUktrB,YAAc,SAAUjxrB,GAC5B,aAATA,EACA47Q,GAAS,CAACxoR,KAAKmoC,OAAOhzB,SAAU06Z,KAGhC5nJ,GAAY,CAACjoR,KAAKmoC,OAAOhzB,SAAU06Z,IAE3C,EACAwtnB,EAAW1shC,UAAUqvhC,qBAAuB,SAAU3/hC,GAClD,IAAIf,EAAQU,KACZA,KAAKigiC,gBAAkB5/hC,EACnBL,KAAK+0gC,UAAU5qtB,OAAOwmG,QAAU5kF,GAAkB/rU,KAAK+0gC,UAAU4oB,kBACjE39hC,KAAK+0gC,UAAU4oB,eAAiB3sgC,OAAOkzO,aAAY,WAC/C,GAAI5kQ,EAAMygiC,yBAA2BzgiC,EAAMy1gC,UAAUxzgC,MAAM2mR,UAAUh1P,SAAS28Y,KAA+B,CACzG,GAAIvwa,EAAM6oC,OAAOyz7B,WAAWgJ,kBAAoBtl+B,EAAM6oC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,GACjG9D,EAAMy1gC,UAAU50M,WAAa,EAChC,OAEJ7g0B,EAAMogiC,aACyB,SAA3BpgiC,EAAMy1gC,UAAU7/7B,OAChB51E,EAAM6oC,OAAOg08B,kBAAkB+jD,uBAAuB5giC,EAAM2giC,iBAG5D3giC,EAAM6oC,OAAO6+lB,aAAam5Z,wBAAwB7giC,EAAM2giC,gBAEhE,CACJ,GAAGjgiC,KAAK+0gC,UAAU5qtB,OAAOi2uB,WAEjC,EACA/C,EAAW1shC,UAAU0vhC,sBAAwB,SAAUr0hC,GACnD,IAAIgjL,EAAQ,aAAehjL,EAAasmB,aAAa,WAAa,KAC9DtyB,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,IACvD4rL,EAAQA,EAAM51K,OAAO,wBAA0BpN,EAAasmB,aAAa,oBAAsB,OAGnGk2P,GADe,GAAG53Q,MAAMjR,KAAKK,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiBw+K,IAC/C6gP,KAEnB5nJ,GADoB,GAAGr3Q,MAAMjR,KAAKK,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiB,IAAMq/Z,MAClDA,IAC/B,EACAwtnB,EAAW1shC,UAAU2vhC,gBAAkB,SAAUvp3B,EAAW21N,EAAS+pmB,GACjE,IAAI1/8B,EAAQ0Z,KAAKuL,MAAMvL,KAAK+mF,UAAUi/2B,IAGtC,OAFA1/8B,EAAM/2B,KAAKmoC,OAAOw+7B,YAAY5vzB,WAAaA,EAC3ChgJ,EAAM/2B,KAAKmoC,OAAOw+7B,YAAYj6lB,SAAWA,EAClC31W,CACX,EACAsmgC,EAAW1shC,UAAU4vhC,6BAA+B,SAAUxpgC,EAAOm34B,GAEjE,QADiB,IAAbA,IAAuBA,GAAW,GACjCnimB,GAAkB/rU,KAAKmoC,OAAOk3/B,eAAnC,CAGA,IAaQ5oD,EAbJyR,EAAWlo/B,KAAK+0gC,UAAU9mN,UAAY,EAI1C,GAHIigH,IAAalu6B,KAAK69hC,YAAYl65B,MAAQ3jI,KAAK69hC,YAAYj65B,SACvDsk3B,EAAWlo/B,KAAK+0gC,UAAU9mN,UAAYl3xB,EAAMnM,QAE3Csj5B,GAA2D,eAA9Clu6B,KAAKmoC,OAAOuz7B,kBAAkBhmb,aAAyF,IAAzD11iB,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,QACtHqz+B,EAAWz2+B,KAAKwgiC,UAAUp7C,eAAeru9B,EAAOA,EAAM/2B,KAAKmoC,OAAOw+7B,YAAY5vzB,aACrE/2K,KAAKmoC,OAAOw+7B,YAAY5vzB,WAAWr1K,YAC5C+0+B,EAASz2+B,KAAKmoC,OAAOw+7B,YAAYj6lB,SAAShrY,YAC1C+0+B,EAAShhY,UAAU7qlB,MAAQ,GAE/Bs99B,EAAWzR,EAAShhY,UAAU7qlB,MAAQ5qB,KAAK+0gC,UAAU9mN,UAEzD,IAAKigH,GAA0D,aAA9Clu6B,KAAKmoC,OAAOuz7B,kBAAkBhmb,aAAuF,IAAzD11iB,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAEvH8k/B,GADIzR,EAAWz2+B,KAAKwgiC,UAAUp7C,eAAeru9B,EAAOA,EAAM/2B,KAAKmoC,OAAOw+7B,YAAY5vzB,aAC9D0+b,UAAU7qlB,MAAQ5qB,KAAK+0gC,UAAU9mN,UAEzD,IAAIw2L,EAAqBzk/B,KAAK0m/B,yBAAyB1m/B,KAAK+0gC,UAAU50M,WAAYppyB,EAAM/2B,KAAKmoC,OAAOw+7B,YAAYrvhB,UAChHmtiB,EAAmBzv9B,aAAa,OAAQ,QACxCwzP,GAAS,CAACi8tB,GAAqB50kB,KAC/B7kF,GAAkBy5pB,EAAoB,CAClC,MAASyD,EAAW,KAAM,OAAU,MAAO,iBAAkB,OAC7D,SAAY,WAAY,SAAY,SAAU,QAAW,QAEV,KAA/Clo/B,KAAK+0gC,UAAUxzgC,MAAM4E,MAAMy3d,iBAC3B5yI,GAAkBy5pB,EAAoB,CAAE,gBAAmBzk/B,KAAK+0gC,UAAUxzgC,MAAM4E,MAAMy3d,kBAE1F,IAAI19d,EAAOm89B,IAAetl8B,EAAM/2B,KAAKmoC,OAAOw+7B,YAAY5vzB,YAAYr1K,UAChEstL,EAAQ,IAAM6gP,IAAuB,eAAiB3va,EAAO,KAC7DF,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,IAAMpD,KAAKmoC,OAAO+27B,cAActuX,kBACvF5hb,EAAQ,IAAM6gP,IAAuB,eAAiB3va,EAAO,wBAA0BF,KAAK+0gC,UAAU50M,WAAa,MAEvH,IAAIkrL,EAASrr/B,KAAKmoC,OAAOhzB,QAAQykB,cAAco1J,GAC/C,IAAI+8I,GAAkBs/qB,GAAtB,CAGA,GAAIn9E,EAAU,CACV,IAAI6zE,EAAasJ,EAAOzx9B,cAAc,IAAMi2Y,KACxC00kB,EAAYvk/B,KAAK+0gC,UAAUxiN,WAAax7xB,EAAMnM,OAC7Cm39B,EAAaA,EAAWhttB,aAAe,GAAK,GAC7C/0R,KAAK69hC,YAAYj65B,OAAS5jI,KAAK69hC,YAAYl65B,QAC3C4g3B,EAAYh49B,SAASvsB,KAAK+0gC,UAAUxzgC,MAAM4E,MAAMyiJ,OAAQ,KAE5DoiM,GAAkBy5pB,EAAoB,CAAE,OAAUF,EAAY,MAClE,CACAvk/B,KAAKygiC,qBAAqBp1C,EAAQ5G,GAAoB,GACtDzk/B,KAAK+0gC,UAAU/ogC,aAAaI,KAAKq4+B,EAXjC,CAnCA,CA+CJ,EAEA44C,EAAW1shC,UAAU8vhC,qBAAuB,SAAUp1C,EAAQl2+B,EAASq6+B,GAEnE,QADsB,IAAlBA,IAA4BA,GAAgB,GAC5CnE,EAAOzx9B,cAAc,IAAMi2Y,KAC3Bw7kB,EAAOzx9B,cAAc,IAAMi2Y,KAA+Bn+Y,YAAYvc,OAErE,CACD,IAAIhL,EAAUrJ,GAAc,MAAO,CAAEC,UAAW8ua,MAChD1la,EAAQunB,YAAYvc,GACpBk2+B,EAAO359B,YAAYvnB,EACvB,CACJ,EACAkzhC,EAAW1shC,UAAU+1+B,yBAA2B,SAAUxl7B,EAAUhV,GAChE,IAAI6z7B,EAAqBj/+B,GAAc,MAAO,CAC1CC,UAAW8ua,IACX3mY,UAAWgjB,IAKf,OAHIlsD,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,GACvD28+B,EAAmB/q9B,aAAa,mBAAoBksC,EAASpqD,YAE1Dip+B,CACX,EACAs9C,EAAW1shC,UAAU+vhC,uBAAyB,SAAU3pgC,GACpD,IAAIz3B,EAAQU,KACZ,GAAK+rU,GAAkB/rU,KAAKmoC,OAAOk3/B,eAAnC,CAGA,IAGIjnD,EAHAqB,EAAaz5+B,KAAKmoC,OAAOyz7B,WAAW2D,YACpCwsB,EAAY,GAAGn7+B,MAAMjR,KAAKK,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiB,IAAMq/Z,MACrEg4kB,EAAW7n/B,KAAKmoC,OAAOuz7B,kBAAkBmsB,SAE7C,GAAI7n/B,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,EAAG,CAC1D,IAEIknhB,GAFmBtqhB,KAAKmoC,OAAO2h8B,qBAAuB9p+B,KAAKmoC,OAAO2h8B,oBAAoBwhB,mBACtFtr/B,KAAKmoC,OAAOyh8B,aAAac,kBAAoB1q+B,KAAKmoC,OAAOyh8B,aAAaC,mBAEtEzj+B,QAAO,SAAU8xF,GAAO,OAAOA,EAAIiouB,aAAe7g0B,EAAMy1gC,UAAU50M,UAAY,IAClFs5K,EAAanvd,EAAU,GAAGi1c,YAC1B,IAAIub,EAAkB,IAAMjrkB,IAAuB,sBAAyB7va,KAAK+0gC,UAAU50M,WAAa,KACxG4rL,EAAY,GAAGn7+B,MAAMjR,KAAKK,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiBsq+B,IAC/D+M,EAAWv9d,EAAU,GAAGu9d,SACxBzP,EAAa9td,EAAU,GAAG8td,UAC9B,CAGA,GAFAp4+B,KAAKuz/B,WAAW9Z,WAAaA,EAC7Bz5+B,KAAKuz/B,WAAWpH,aAAatE,GACzB7n/B,KAAK69hC,YAAYl65B,MAAQ3jI,KAAK69hC,YAAYj65B,MAE1C,IADA,IACSt0H,EAAK,EAAGqxhC,EADG,GAAG/vhC,MAAMjR,KAAKK,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiB,IAAMq/Z,MAC3Bvga,EAAKqxhC,EAAgBv9hC,OAAQkM,IAAM,CAEjF6jB,GADcwtgC,EAAgBrxhC,GAElC,CAGJ,IADA,IACSgmC,EAAK,EAAG828B,EADGps/B,KAAKuz/B,WAAW/Z,WAAWzi9B,EAAO0i9B,GACJnk8B,EAAK828B,EAAgBhp/B,OAAQkyC,IAAM,CACjF,IAAIi0S,EAAU6iqB,EAAgB928B,GAC1BryC,EAAMjD,KAAKmoC,OAAO6k9B,eAAevT,EAAYpd,IAAe9yoB,EAAQvpV,KAAKuz/B,WAAWpgyB,OAAOp8C,aAE3Fmx0B,EADa3+pB,EAAQr/S,KAAKtf,MACD5qB,KAAK+0gC,UAAU9mN,UAAa,EACrDw2L,EAAqBzk/B,KAAKuz/B,WAAW7M,yBAAyBn9pB,EAASvpV,KAAK+0gC,UAAU50M,YAAY,GACtGskL,EAAmBzv9B,aAAa,OAAQ,QACxCwzP,GAAS,CAACi8tB,GAAqB50kB,KAC/B7va,KAAKuz/B,WAAW9T,mBAAmBgF,EAAoBl7pB,EAAS,kBAAmB6upB,GACnFptpB,GAAkBy5pB,EAAoB,CAAE,MAASyD,EAAW,KAAM,OAAU,MAAO,iBAAkB,SACrG,IAAImD,EAASU,EAAUx/9B,SAAStpB,EAAI6T,WAAY,KAC5Cu0+B,IACArr/B,KAAKuz/B,WAAWzE,cAAczD,EAAQ5G,GAAoB,GAC1Dzk/B,KAAK+0gC,UAAU/ogC,aAAaI,KAAKq4+B,GAEzC,CAzCA,CA0CJ,EACA44C,EAAW1shC,UAAUymI,QAAU,YACtBp3I,KAAKmoC,QAAUnoC,KAAKmoC,QAAUnoC,KAAKmoC,OAAOgwP,cAG/Cn4R,KAAK+0gC,UAAY,CAAC,EAClB/0gC,KAAK49hC,WAAa,CAAC,EACnB59hC,KAAK69hC,YAAc,CAAEl65B,MAAM,EAAOC,OAAO,EAAOsqB,KAAK,EAAOymI,QAAQ,GACpE30R,KAAKwthC,YAAc,CAAE7p5B,MAAM,EAAOC,OAAO,EAAOsqB,KAAK,EAAOymI,QAAQ,GACxE,EACO0owB,CACX,CAxcgC,GCR5Bn3+B,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAwBzCw6+B,IAA2B,SAAU95+B,GAErC,SAAS85+B,EAAUz4/B,GACf,IAAI7oC,EAAQwnD,EAAOnnD,KAAKK,KAAMmoC,EAAQ,QAAUnoC,KAEhD,OADAV,EAAMyuhC,YAAa,EACZzuhC,CACX,CAskBA,OA3kBA4mD,IAAU06+B,EAAW95+B,GAMrB85+B,EAAUjwhC,UAAU+y+B,mBAAqB,WACjC1j/B,KAAKmoC,OAAOg08B,mBACZn8+B,KAAKmoC,OAAOg08B,kBAAkBl9oB,cAElCj/V,KAAKmzN,OAASnzN,KAAKmoC,OAAOw+7B,YAI1B,IAHA,IAAImU,EAA+C,SAA5B96+B,KAAKmoC,OAAOw/W,YAA0B,IAAMkoB,IAC/D,IAAMA,IAAgC,KAAOA,IAExCvga,EAAK,EAAGqxhC,EADG,GAAG/vhC,MAAMjR,KAAKK,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiBsq+B,IACrBxr+B,EAAKqxhC,EAAgBv9hC,OAAQkM,IAAM,CAEjF6jB,GADcwtgC,EAAgBrxhC,GAElC,CACAtP,KAAKgj/B,eAAiB,GACU,SAA5Bhj/B,KAAKmoC,OAAOw/W,YACZ3nZ,KAAK6giC,kBAGL7giC,KAAK8giC,mBACD9giC,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,IAAMpD,KAAKmoC,OAAO+27B,cAActuX,iBACvF5wmB,KAAK+thC,YAAa,EAClB/thC,KAAK+giC,0BAGL/giC,KAAKghiC,0BAGbhhiC,KAAKmoC,OAAOukf,kBACZ1shB,KAAKmoC,OAAOkxK,OAAOj+E,IAAqB,CAAC,EAC7C,EACAwl6B,EAAUjwhC,UAAUkwhC,eAAiB,WAEjC,IADA,IAAIngiC,EAASV,KAAKoR,YACT9B,EAAK,EAAG2xhC,EAAWvgiC,EAAQ4O,EAAK2xhC,EAAS79hC,OAAQkM,IAStD,IARA,IAAIrG,EAAQg4hC,EAAS3xhC,GACjB44N,EAAc,gCAAkCxnO,EAAOiK,QAAQ1B,GAAS,GAAK,oBAC7E8i/B,EAAY,GAAGn7+B,MAAMjR,KAAKK,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiB03N,IAC/Dk9xB,EAAY,IAAI3jgC,KAAKzB,KAAKmoC,OAAO+/W,aAAa9nZ,cAAe6I,EAAO,GACpEgyhC,EAAaj7hC,KAAKmoC,OAAO8l8B,aAAarC,kBAAkB,IAAInq+B,KAAK2jgC,EAAU1jgC,YAC3Ey5hC,EAAWn7hC,KAAKmoC,OAAO8l8B,aAAapC,gBAAgB,IAAIpq+B,KAAK2jgC,EAAU1jgC,YACvEkuZ,EAAYyskB,IAAsB4+D,EAAYj7hC,KAAKmoC,OAAOl8B,gBAC1D4jZ,EAAUwskB,IAAaA,IAAqB8+D,EAAUn7hC,KAAKmoC,OAAOl8B,gBAAiB,GAC9EwgB,EAAQ,EAAGmjY,EAAUluZ,UAAYmuZ,EAAQnuZ,UAAW+qB,IAAS,CAClE,IAAIypB,EAAQmm7B,IAAe,IAAI569B,KAAKmuZ,EAAUluZ,YAC1C03C,EAAMij7B,IAAa,IAAI569B,KAAKy0C,EAAMx0C,WAAY,GAElD,GADAkuZ,EAAYyskB,IAAa,IAAI569B,KAAKmuZ,EAAUluZ,WAAY,GACnD1B,KAAKmoC,OAAOsv9B,aAAavh9B,GAI9B,GADmBl2C,KAAKmoC,OAAOu87B,UAAU4R,aAAapg8B,EAAOkD,GAC5Ch2C,OAAS,EAAG,CACzB,IAAI+k+B,EAAW4jB,EAAUx/9B,SAASE,EAAM3V,WAAY,KAChDqx9B,GACAA,EAASz28B,YAAY5wB,GAAc,MAAO,CAAEC,UAAW8ua,MAE/D,CACJ,CAER,EACA+wnB,EAAUjwhC,UAAUqwhC,uBAAyB,WACzC,IAAI1hiC,EAAQU,KACRmo+B,EAAWno+B,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,IAAuB,SAAWA,IAAuB,KAChH7va,KAAKiuzB,UAAYk6K,EAAS1zsB,wBAAwBj2Q,MAClDxe,KAAKkhiC,WAAa7kE,IAAoB8L,EAASvu8B,cAAc,IAAMi2Y,MACnE,IAAI+umB,EAAa5+gC,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KACzD7va,KAAKgo/B,YAAc3rB,IAA+BuiD,EAAY/umB,KAK9D,IAJA,IAAIsxnB,EAAoB,GAAGvwhC,MAAMjR,KAAKK,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiB,IAAMq/Z,MAC7Enva,EAASV,KAAKoR,YACd+uzB,EAAcng0B,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,GAAKpD,KAAKmoC,OAAO+27B,cAActuX,gBACpG5wmB,KAAKmoC,OAAO+27B,cAAc/+J,gBAAa98zB,EAClCwpZ,EAAM,EAAGA,EAAMnsZ,EAAO0C,OAAQypZ,IAAO,CAC1C,IAAI1iZ,EAAUg3hC,EAAkB50gC,SAASsgY,EAAI/1Y,WAAY,KACrD8uI,EAAKinQ,EAAM,EACXu0oB,EAAetgiC,GAAc,MAAO,CAAEC,UAAW8ua,MACrD1la,EAAQunB,YAAY0vgC,GACpB,IAAInG,EAAa,IAAIx5hC,KAAKzB,KAAKmoC,OAAO+/W,aAAa9nZ,cAAeM,EAAO6rB,SAASsgY,EAAI/1Y,WAAY,KAAM,GACpGqkhC,EAAW,IAAI15hC,KAAKw5hC,EAAW76hC,cAAe66hC,EAAW96hC,WAAa,EAAG,GACzEsu+B,EAAWwsD,EAAWt3hC,SACtB09hC,EAAsB,GAI1B,IAHkD,eAA9CrhiC,KAAKmoC,OAAOuz7B,kBAAkBhmb,cAC9B11iB,KAAKgj/B,eAAiB,IAEnBi4C,EAAWv5hC,WAAay5hC,EAASz5hC,WAAW,CAC/C,IAAIyqiB,OAAY,EACZ+rQ,OAAa,EACjB,GAAkD,aAA9Cl4yB,KAAKmoC,OAAOuz7B,kBAAkBhmb,YAA4B,CAC1D,IAAI4hK,EAAY6pV,EAAkB50gC,SAASki9B,EAAS339B,WAAY,KAChE8uI,EAAK6o1B,EAAW,GAChB2yD,EAAe9pV,EAAU19qB,cAAc,IAAMi2Y,QAEzCuxnB,EAAetgiC,GAAc,MAAO,CAAEC,UAAW8ua,MACjDynS,EAAU5lrB,YAAY0vgC,IAEtBphiC,KAAKmoC,OAAOkwT,UACZ6/c,EAAarrZ,EAAM7sZ,KAAKiuzB,UAGxB9hR,EAAYt/I,EAAM7sZ,KAAKiuzB,SAE/B,MAEQjuzB,KAAKmoC,OAAOkwT,UACZ6/c,GAAeu2L,EAAWwsD,EAAW34hC,UAAa,GAAKtC,KAAKiuzB,UAG5D9hR,GAAcsic,EAAWwsD,EAAW34hC,UAAa,GAAKtC,KAAKiuzB,UAGnE,IAAIqzO,EAAQthiC,KAAKmoC,OAAOhzB,QAAQykB,cAAc,gCAAkCgsH,EAAK,QACrF5lJ,KAAKuyzB,WAAa+uO,EAAMvswB,aACxB,IAAIwswB,EAAWllE,IAAe,IAAI569B,KAAKw5hC,EAAWv5hC,YAC9C8/hC,EAASnlE,IAAa,IAAI569B,KAAK8/hC,EAAS7/hC,WAAY,GACpDyoyB,OAAW,EACXnqyB,KAAKmoC,OAAO+27B,cAActuX,kBAC1Bu5L,EAAWnqyB,KAAKmoC,OAAOyh8B,aAAaC,kBAAkB7p+B,KAAKmoC,OAAO+27B,cAAc/+J,aAEpF,IAAIshO,EAAYzhiC,KAAKmoC,OAAOu87B,UAAU4R,aAAairD,EAAUC,OAAQn+hC,EAAW8myB,GAChFs3P,EAAYzhiC,KAAKmoC,OAAOu87B,UAAU+T,eAAegpD,GA2CjD,IA1CA,IAAIh1tB,EAAU,SAAUhgT,EAAO7B,GAC3B,IAAIs+T,EAAYz/P,GAAO,CAAC,EAAGg48B,EAAUl1gC,SAASE,EAAM3V,WAAY,KAAM,MAAM,GAC5EqkV,EAAOumsB,oBAAoBx4sB,EAAWq4sB,EAAUC,GAChD,IAAIG,EAAexmsB,EAAOj/S,SAASql/B,GACnCr4sB,EAAUq/pB,MAAQo5C,EAClB,IAAIC,EAAgBzmsB,EAAO+lsB,WAAc/lsB,EAAO6spB,aAAe25C,EAAe,GApIlF,EAqIQxmsB,EAAOsvpB,oBACP6G,EAAUn2pB,EAAOo3d,WAAap3d,EAAO+lsB,WAAa/lsB,EAAOsvpB,oBACzD8G,EAAmB3t/B,KAAKiG,MAAMyn/B,GAAWn2pB,EAAO6spB,YAvIxD,IAwIQ65C,EAAsBj3gC,EAAQ2m+B,GAAqB,EAAI,EAAK3m+B,EAAQ2m+B,EACxE,GAAoD,eAAhDp2pB,EAAOhzT,OAAOuz7B,kBAAkBhmb,YAA8B,CAC9D,IAAItqN,EAAa+P,EAAO6npB,eAAe58+B,QAAO,SAAUqw+B,GACpD,OAAOA,EAAS1xM,OAAS77c,EAAU67c,IACvC,IACItvL,EAAY4rb,EAAoBj7hC,QAAO,SAAUqw+B,GACjD,OAAOA,EAAS1xM,OAAS77c,EAAU67c,IACvC,IACA,GAAI35c,EAAWhoV,OAAS,GAAKgoV,EAAW,GAAG02sB,eAAiBrsb,EAAUrymB,OAAS,GAAKqymB,EAAU,GAAGqsb,cAAe,CAC5G,IAAIC,EAA4D,eAAhD5msB,EAAOhzT,OAAOuz7B,kBAAkBhmb,YAA+B7oJ,EAAM4hlB,EAErF,OADAtzoB,EAAO6msB,oBAAoBZ,EAAcS,EAAoBN,EAAUQ,EAAW51f,EAAW+rQ,EAAYioB,GAClG,UACX,CACK,GAAI/0e,EAAWhoV,OAAS,GAAKqymB,EAAUrymB,OAAS,EACjD,MAAO,UAEf,CACA,GAAI+3V,EAAOhzT,OAAOwi9B,eAAiBxvpB,EAAOo3d,WAAaqvO,EACnDzmsB,EAAO8msB,YAAYb,EAAcl4sB,EAAW2jE,EAAKs/I,EAAW+rQ,EAAY+iP,EAAYxsD,GACpFtzoB,EAAOuzpB,iBAAiB4yC,EAAOM,GAC/BP,EAAoBj1hC,KAAK88U,OAExB,CACG64sB,EAA4D,eAAhD5msB,EAAOhzT,OAAOuz7B,kBAAkBhmb,YAA+B7oJ,EAAM4hlB,EACrFtzoB,EAAO6msB,oBAAoBZ,EAAcS,EAAoBN,EAAUQ,EAAW51f,EAAW+rQ,EAAYioB,GACrD,eAAhDhle,EAAOhzT,OAAOuz7B,kBAAkBhmb,cAChCxsN,EAAU44sB,eAAgB,EAC1B3msB,EAAO6npB,eAAe52+B,KAAK88U,GAC3Bm4sB,EAAoBj1hC,KAAK88U,GAEjC,CACJ,EACIiS,EAASn7V,KACJysB,EAAQ,EAAG7B,EAAQ62gC,EAAUr+hC,OAAQqpB,EAAQ7B,EAAO6B,IACzDggT,EAAQhgT,EAAO7B,GAEnBqwgC,EAAa5+D,IAAa,IAAI569B,KAAKw5hC,EAAWv5hC,WAAY,GACR,aAA9C1B,KAAKmoC,OAAOuz7B,kBAAkBhmb,cAC9B+4b,IACAzu+B,KAAKgj/B,eAAiB,GAE9B,CACJ,CACA,GAAIhj/B,KAAKmoC,OAAOwi9B,eAA+D,aAA9C3q/B,KAAKmoC,OAAOuz7B,kBAAkBhmb,YAA4B,CACvF,IAAIwsf,EAAe,GAAGtxhC,MAAMjR,KAAKK,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiB,IAAMq/Z,MACxEsynB,EAAO,GAAGvxhC,MAAMjR,KAAKK,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiB,IAAMq/Z,IAA0B,cAC9FqynB,EAAa77hC,SAAQ,SAAUsjV,EAAKl9T,GAChC,IAAIwp9B,EAAM,GAAGrl+B,MAAMjR,KAAKgqV,EAAIn5U,iBAAiB,IAAMq/Z,MAC/Cw9kB,EAAS80C,EAAK51gC,SAASE,EAAM3V,WAAY,KAAK8rS,UAAYtjT,EAAM4hiC,WAxLpE,EAyLAjrD,EAAI5v+B,SAAQ,SAAU4v+B,GAClB,IAAImsD,EAAU71gC,SAAS0p9B,EAAI3j9B,aAAa,cAAe,IACvD2j9B,EAAI9v+B,MAAM+nJ,IAAMm/1B,EAAU+0C,EAAU9iiC,EAAM0o/B,YAAe,KACzD/R,EAAIlh9B,gBAAgB,aACxB,GACJ,GACJ,CACJ,EACA6rgC,EAAUjwhC,UAAU+whC,oBAAsB,SAAUjrD,EAAU8qD,EAAUC,GACpE,IAAIa,EAAqBriiC,KAAK+thC,YAA4D,aAA9C/thC,KAAKmoC,OAAOuz7B,kBAAkBhmb,cACpE11iB,KAAK+thC,YAA4D,eAA9C/thC,KAAKmoC,OAAOuz7B,kBAAkBhmb,YACnDxrgB,EAAO,CAAE2lnB,QAAQ,EAAM9/jB,SAAS,EAAMsuoB,UAAU,EAAMnU,OAAO,GAC7Dq3U,EAAS7/hC,WAAa+0+B,EAASz2+B,KAAKmzN,OAAOp8C,WAAWr1K,YAClD2giC,EACAn4/B,EAAK2lnB,QAAS,EAGd3lnB,EAAKggrB,OAAQ,IAGhBs3U,EAAO9/hC,WAAa+0+B,EAASz2+B,KAAKmzN,OAAOu5K,SAAShrY,WAAe2giC,IAAsBriiC,KAAK+thC,YAC7F1xD,IAAamlE,GAAS,GAAGrhiC,aAAes2+B,EAASz2+B,KAAKmzN,OAAOu5K,SAASvsY,YACrEkiiC,GAAqBriiC,KAAK+thC,YAAeyT,EAAO9/hC,WAAa+0+B,EAASz2+B,KAAKmzN,OAAOu5K,SAAShrY,aACxF2giC,EACAn4/B,EAAK6lD,SAAU,EAGf7lD,EAAKm0rB,UAAW,GAGxBo4Q,EAASvs8B,KAAOA,CACpB,EACA02/B,EAAUjwhC,UAAUowhC,uBAAyB,WACzC,IAAIzhiC,EAAQU,KACRyrnB,EAAezrnB,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KACvDyynB,EAA2B72a,EAAat7W,YAAcs7W,EAAa1mX,YACnEojuB,EAAWno+B,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KACvD7va,KAAKiuzB,UAAYk6K,EAAS1zsB,wBAAwBj2Q,MAClDxe,KAAKkhiC,WAAa,EAClB,IAAItiB,EAAa5+gC,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KACzD7va,KAAKgo/B,YAAc3rB,IAA+BuiD,EAAY/umB,KAC9D,IAAIsxnB,EAAoB,GAAGvwhC,MAAMjR,KAAKK,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiB,IAAMq/Z,MAC7Ey6G,EAAYtqhB,KAAKmoC,OAAO+27B,cAActuX,gBACtC,CAAC5wmB,KAAKmoC,OAAOyh8B,aAAaC,kBAAkB7p+B,KAAKmoC,OAAO+27B,cAAc/+J,aACtEng0B,KAAKmoC,OAAOuz7B,kBAAkB4oB,sBAAwBtk/B,KAAKmoC,OAAOyh8B,aAAac,kBAC3E1q+B,KAAKmoC,OAAOyh8B,aAAaC,kBAC7Bnp+B,EAASV,KAAKoR,YAClB,GAAkD,eAA9CpR,KAAKmoC,OAAOuz7B,kBAAkBhmb,YAC9B,IAAK,IAAIzsiB,EAAQ,EAAGA,EAAQvI,EAAO0C,OAAQ6F,IAEvC,IADA,IAAIgyhC,EAAa,IAAIx5hC,KAAKzB,KAAKmoC,OAAO+/W,aAAa9nZ,cAAeM,EAAO6rB,SAAStjB,EAAM6N,WAAY,KAAM,GACjG3K,EAAI,EAAGwjD,EAAM26d,EAAUlnhB,OAAQ+I,EAAIwjD,EAAKxjD,IAC7CnM,KAAKgj/B,eAAiB,GACtBhj/B,KAAKuiiC,oBAAoBpB,EAAkB50gC,SAAStjB,EAAM6N,WAAY,KAAMwzgB,EAAU/9f,SAASpgB,EAAE2K,WAAY,KAAM7N,EAAOkD,EAAG8uhC,QAKrI,IAAS9uhC,EAAI,EAAGwjD,EAAM26d,EAAUlnhB,OAAQ+I,EAAIwjD,EAAKxjD,IAAK,CAClDnM,KAAKgj/B,eAAiB,GACtB,IAAS/5+B,EAAQ,EAAGA,EAAQvI,EAAO0C,OAAQ6F,IAAS,CAC5CgyhC,EAAa,IAAIx5hC,KAAKzB,KAAKmoC,OAAO+/W,aAAa9nZ,cAAeM,EAAO6rB,SAAStjB,EAAM6N,WAAY,KAAM,GAC1G9W,KAAKuiiC,oBAAoBpB,EAAkB50gC,SAASpgB,EAAE2K,WAAY,KAAMwzgB,EAAU/9f,SAASpgB,EAAE2K,WAAY,KAAM7N,EAAOkD,EAAG8uhC,EAC7H,CACJ,CAEJ,GAAIj7hC,KAAKmoC,OAAOwi9B,gBAAkB23C,GAA4B72a,EAAat7W,YAAcs7W,EAAa1mX,YAAa,CAC5F,GAAGn0P,MAAMjR,KAAKK,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiB,IAAMq/Z,MAC/Dxpa,SAAQ,SAAUsjV,GAC3BA,EAAIxjV,MAAMwyY,eAAe,QACzBhvD,EAAIxjV,MAAMwyY,eAAe,QAC7B,IACA,IAAIuppB,EAAe,GAAGtxhC,MAAMjR,KAAKK,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiB,IAAMq/Z,MACxE2ynB,EAAaxiiC,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KACrD4ynB,EAAO,GAAG7xhC,MAAMjR,KAAK6iiC,EAAWhyhC,iBAAiB,aACrD0xhC,EAAa77hC,SAAQ,SAAUsjV,EAAKl9T,GAChC,IAAIi2gC,EAAa,GAAG9xhC,MAAMjR,KAAKgqV,EAAI7jV,UAC/B+mZ,EAAM41oB,EAAKl2gC,SAASE,EAAM3V,WAAY,KAC1C4rhC,EAAWr8hC,SAAQ,SAAUs8hC,EAASxsa,GAClC,IAAIvwe,EAAKinQ,EAAIjzX,cAAc,iBAAmBu8lB,EAAY,GAAK,KAC3D8/W,EAAM,GAAGrl+B,MAAMjR,KAAKgjiC,EAAQ78hC,UAC5B0Y,EAAQonI,EAAG6uI,wBAAwBj2Q,MACnCmlH,EAAOiiB,EAAG+8J,WACd,GAAIrjT,EAAM6oC,OAAOkwT,UAAW,CACxB,IAAIuqsB,EAAUJ,EAAWryxB,YAAcxsI,EAAOiiB,EAAGuqH,YACjD8luB,EAAI5v+B,SAAQ,SAAU4v+B,GAClBA,EAAI9v+B,MAAMqY,MAAQ5a,KAAKiG,MAAM0iB,SAAS0p9B,EAAI9v+B,MAAMqY,MAAO,IAAMA,GAASA,EAAQ,KAC9Ey39B,EAAI9v+B,MAAMy9H,MAAQg/5B,EAAU,IAChC,GACJ,MAEI3sD,EAAI5v+B,SAAQ,SAAU4v+B,GAClBA,EAAI9v+B,MAAMqY,MAAQ5a,KAAKiG,MAAM0iB,SAAS0p9B,EAAI9v+B,MAAMqY,MAAO,IAAMA,GAASA,EAAQ,KAC9Ey39B,EAAI9v+B,MAAMw9H,KAAOA,EAAO,IAC5B,GAER,GACJ,GACJ,CACJ,EACAi95B,EAAUjwhC,UAAU4xhC,oBAAsB,SAAUp4hC,EAASggyB,EAAUlhyB,EAAOwjB,EAAOwugC,GACjF,IAAImG,EAAetgiC,GAAc,MAAO,CAAEC,UAAW8ua,MACrD1la,EAAQunB,YAAY0vgC,GACpB,IAAIjG,EAAW9+D,IAAaA,IAAqB,IAAI569B,KAAKw5hC,EAAWv5hC,YAAa,GAC9EmhiC,EAAa7iiC,KAAKmoC,OAAOu87B,UAAU4R,aAAa2kD,EAAYE,OAAU93hC,EAAW8myB,GACjFx5N,EAAyD,aAA9C3wkB,KAAKmoC,OAAOuz7B,kBAAkBhmb,YAA6BjphB,EAAQxjB,EAC9E28I,EAAK5lJ,KAAKmoC,OAAOhzB,QAAQykB,cAAc,iCAAmC+2iB,EAAW,GAAK,QAC9F3wkB,KAAKuyzB,WAAa3sqB,EAAGmvI,aACrB/0R,KAAKo4+B,WAAajuM,EAASiuM,WAiD3B,IAhDA,IAAIipD,EAAsB,GACtBtgnB,EAAU,SAAU9qa,GACpB,IACI0rhC,OAAe,EACfz4sB,EAAYz/P,GAAO,CAAC,EAFbo58B,EAAWt2gC,SAAStW,EAAEa,WAAY,KAEZ,MAAM,GACvC,GAAIkwa,EAAO7+Y,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,EAAG,CAC5D,IAAIqz+B,EAAWzvjB,EAAOo+jB,eAAel8pB,EAAW+xsB,GAChD0G,EAAe36mB,EAAO9qY,SAASu67B,EAASzvjB,EAAO7zN,OAAOp8C,YACtDmyK,EAAUq/pB,MAAQo5C,CACtB,MAEIA,EAAe36mB,EAAO9qY,SAASgtS,EAAU89F,EAAO7zN,OAAOp8C,YACvDmyK,EAAUq/pB,MAAQo5C,EAEtB,IAAIC,EAAgB56mB,EAAOk6mB,WAAcl6mB,EAAOghkB,aAAe/x+B,EAAI,GAnT/D,EAmTiF+wa,EAAOyjkB,oBACxFt+c,EAA6D,aAAhDnlH,EAAO7+Y,OAAOuz7B,kBAAkBhmb,YAC7CzsiB,EAAQ+9a,EAAOinY,UAAYxhyB,EAAQu6Z,EAAOinY,UAC9C,IAAKjnY,EAAO7+Y,OAAOsv9B,aAAavuqB,EAAU89F,EAAO7zN,OAAOp8C,YACpD,MAAO,CAAEn1K,WAAO,GAEpB,GAAoD,aAAhDolb,EAAO7+Y,OAAOuz7B,kBAAkBhmb,aAA8B1uH,EAAO7+Y,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,EAAG,CAC1H,IAAIgoV,EAAa47F,EAAOg8jB,eAAe58+B,QAAO,SAAUqw+B,GACpD,OAAOA,EAAS1xM,OAAS77c,EAAU67c,IACvC,IACItvL,EAAY4rb,EAAoBj7hC,QAAO,SAAUqw+B,GACjD,OAAOA,EAAS1xM,OAAS77c,EAAU67c,IACvC,IACA,GAAI35c,EAAWhoV,OAAS,GAAKqymB,EAAUrymB,OAAS,EAC5C,MAAO,UAEf,CACA,KAAI4jb,EAAO7+Y,OAAOwi9B,eAAiB3jkB,EAAOurY,WAAaqvO,GAKlD,CACD,IAAIG,EAA4D,eAAhD/6mB,EAAO7+Y,OAAOuz7B,kBAAkBhmb,YAA+BzsiB,EAAQwjB,EAEvF,GADAu6Z,EAAOg7mB,oBAAoBZ,EAAcyB,EAAWz/hC,OAAS6S,EAAGglhC,EAAY8G,EAAW51f,EAAWA,EAAW1/gB,GACzD,eAAhDu6Z,EAAO7+Y,OAAOuz7B,kBAAkBhmb,YAChC,IAAK,IAAIvpiB,EAAIsgB,EAAOtgB,EAAI02hC,EAAWz/hC,OAAQ+I,IACvC66a,EAAOg8jB,eAAe52+B,KAAKq9E,GAAO,CAAC,EAAGo58B,EAAWt2gC,SAASpgB,EAAE2K,WAAY,KAAM,CAAEyx+B,MAAOo5C,EAAex1hC,IAAK,IAGnH,MAAO,OACX,CAbI66a,EAAOi7mB,YAAYb,EAAcl4sB,EAAWjgV,EAAOkjiB,EAAWA,EAAW8uf,EAAYxugC,GACrFu6Z,EAAO0nkB,iBAAiB9o2B,EAAIg84B,GAC5BP,EAAoBj1hC,KAAK88U,EAYjC,EACI89F,EAAShnb,KACJiW,EAAI,EAAGA,EAAI4shC,EAAWz/hC,OAAQ6S,IAAK,CACxC,IAAImtP,EAAU29K,EAAQ9qa,GACtB,GAAuB,kBAAZmtP,EACP,OAAOA,EAAQxhQ,MACnB,GAAgB,UAAZwhQ,EACA,KACR,CACJ,EAEAw9xB,EAAUjwhC,UAAUsxhC,YAAc,SAAU93hC,EAAS++U,EAAW2jE,EAAKlpR,EAAMC,EAAOwh4B,EAAWz0b,GACzF,IAGInyjB,EACAiO,EAJAntB,EAAQU,KACRy2+B,EAAWz2+B,KAAKol/B,eAAel8pB,EAAWk8qB,GAC1C9o+B,EAAOt8B,KAAK8iiC,mBAAmBrsD,GAGnC,GAAiC,IAA7BA,EAAShhY,UAAU7qlB,MAAa,CAChC,IAAI8hX,EAAU2vlB,IAAaoa,EAASz2+B,KAAKmzN,OAAOu5K,UAAW,GAC3D+pmB,EAASz2+B,KAAKmzN,OAAOu5K,SAAYA,EAAU+pmB,EAASz2+B,KAAKmzN,OAAOp8C,WAAc21N,EAAU+pmB,EAASz2+B,KAAKmzN,OAAOu5K,QACjH,CACA,KAAI+pmB,EAASz2+B,KAAKmzN,OAAOp8C,WAAa0/zB,EAASz2+B,KAAKmzN,OAAOu5K,UAA3D,CAGkD,eAA9C1sY,KAAKmoC,OAAOuz7B,kBAAkBhmb,aAC9BjphB,EAAQogY,EAAM,EACV4plB,EAASz2+B,KAAKmzN,OAAOp8C,WAAWr1K,YAAc+0+B,EAASz2+B,KAAKmzN,OAAOu5K,SAAShrY,YAC5E+0+B,EAAShhY,UAAU7qlB,MAAQ,GAE/BpM,EAAQi49B,EAAShhY,UAAU7qlB,MAAQ5qB,KAAKiuzB,YAGxCxhyB,EAAQkkjB,EAAW,EACnBnyjB,EAAQxe,KAAK+thC,WAAat3C,EAAShhY,UAAU7qlB,MAAQ5qB,KAAKiuzB,UAAYjuzB,KAAKiuzB,WAE/E,IACI//pB,EADQluJ,KAAKmoC,OAAOhzB,QAAQykB,cAAc,gCAAkCnN,EAAQ,QACxEm2R,UAAY5iT,KAAKkhiC,WAAclhiC,KAAKgo/B,YAAcvR,EAAS8R,MAvXnE,EAwXRv9pB,GAAkB1uT,EAAM,CACpB,MAAS9d,EAAQ,KAAM,OAAUxe,KAAKgo/B,YAAc,KAAM,KAAQrk3B,EAAO,KAAM,MAASC,EAAQ,KAAM,IAAOsqB,EAAM,QAElHluJ,KAAK+thC,YAAc/thC,KAAKmoC,OAAOwi9B,eAA+D,aAA9C3q/B,KAAKmoC,OAAOuz7B,kBAAkBhmb,aAC/Ep5gB,EAAKtH,aAAa,aAAcyh9B,EAAS8R,MAAMzx+B,YAEnD,IAAImC,EAAO,CAAEixB,KAAMus8B,EAAUth+B,QAASmnB,EAAMwkD,QAAQ,EAAOl0E,KAAM,SACjE5M,KAAKmoC,OAAOm4P,QAAQllK,IAAsBniH,GAAM,SAAU2rU,GACjDA,EAAU9jQ,SACX32E,EAAQunB,YAAY4K,GACpBh9B,EAAMw8+B,sBAAsBx/8B,EAAMm68B,IAC9Bn3+B,EAAM6oC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,GAGJ,aAA/C9D,EAAM6oC,OAAOuz7B,kBAAkBhmb,cAG9B+gc,EAAShhY,UAAU1lhB,SAAW0m5B,EAAShhY,UAAUo6C,SAA0D,eAA/CvwpB,EAAM6oC,OAAOuz7B,kBAAkBhmb,cAC7F+gc,EAAShhY,UAAU1lhB,UANvBzwF,EAAM0j/B,eAAe52+B,KAAKq9E,GAAO,CAAC,EAAGgt5B,EAAU,MAAM,IAUjE,GApCA,CAqCJ,EAEAmqD,EAAUjwhC,UAAUqxhC,oBAAsB,SAAU73hC,EAASygB,EAAOglY,EAAW/C,EAAKlpR,EAAMC,EAAOn3G,GAC7F,GAA6D,IAAzDzsB,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,SAAgB+G,EAAQyvB,cAAc,qBAAuBg2X,EAAUluZ,UAAY,MAArI,CAGA,IAAImuZ,EAEAA,EADA7vZ,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,IAAMpD,KAAKmoC,OAAO+27B,cAActuX,gBAC7EyrX,IAAaA,IAAqB,IAAI569B,KAAKmuZ,EAAUluZ,YAAa,GAGlE269B,IAAa,IAAI569B,KAAKmuZ,EAAUluZ,WAAY,GAE1D,IAAIkv/B,EAAgB5w/B,KAAK6u/B,wBAAwBjk+B,EAAOglY,EAAWC,GAE/D3hQ,EADQluJ,KAAKmoC,OAAOhzB,QAAQykB,cAAc,iCAAmCizX,EAAM,GAAK,KAC5EjqG,WAAa5iT,KAAKuyzB,WAAavyzB,KAAKyq/B,qBACpD9m3B,EAAQ//H,KAAKiG,MAAM85H,EAAO3jI,KAAKiuzB,WAAajuzB,KAAKiuzB,UACjDrqrB,EAAShgI,KAAKiG,MAAM+5H,EAAQ5jI,KAAKiuzB,WAAajuzB,KAAKiuzB,UACnDjje,GAAkB4lqB,EAAe,CAAE,MAAS5w/B,KAAKiuzB,UAAY,KAAM,KAAQtqrB,EAAO,KAAM,MAASC,EAAQ,KAAM,IAAOsqB,EAAM,OACvH69K,GAAkBt/S,IACnBmk+B,EAAc579B,aAAa,mBAAoBvI,EAAM3V,YAEzD3M,EAAQunB,YAAYk/9B,GACpB/3wB,GAAazlN,IAAIw99B,EAAe,QAAS5w/B,KAAK+u/B,mBAAoB/u/B,KAlBlE,CAmBJ,EACA4giC,EAAUjwhC,UAAUmyhC,mBAAqB,SAAU3rnB,GAC/C,IAAI2okB,EAAgB3okB,EAAOn3a,KAAKmzN,OAAOmkP,UAAYt3c,KAAKmoC,OAAOi07B,cAAcjpwB,OAAOmkP,QAAQz2c,SACrFb,KAAKmoC,OAAOkje,UAAUtlK,YAAY,YACrCq7rB,EAAetgiC,GAAc,MAAO,CACpCC,UAAW8ua,IACXpmF,MAAO,CACH,UAAW,eAAiB0tF,EAAOn3a,KAAKmzN,OAAOh9L,IAC/C,YAAaghZ,EAAO4tX,KACpB,KAAQ,SAAU,SAAY,IAC9B,gBAAiB/kyB,KAAKmoC,OAAOu87B,UAAU2b,qBAAqBlpkB,GAC5D,aAAcn3a,KAAKmoC,OAAOy+8B,sBAAsBzvkB,MASxD,GANIn3a,KAAK4vW,UACLpnF,GAAS,CAAC44wB,GAAephiC,KAAK4vW,UAE9BunE,EAAOn3a,KAAKmzN,OAAO8rL,aACnBz2H,GAAS,CAAC44wB,GAAevxnB,KAEzB7va,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,EAAG,CAC1D,IAAI89D,EAAWlhE,KAAK03+B,uBAAuBvgkB,GAC3CiqnB,EAAapsgC,aAAa,mBAAoBksC,EAASpqD,WAC3D,CACA,IAAI8+V,EAAkB,GAClB6goB,EAAWht5B,GAAO,CAAC,EAAG0tV,EAAQ,MAAM,GACxC,GAAIn3a,KAAKmoC,OAAOuz7B,kBAAkBskB,cAAe,CAC7C,IAAI7yoB,EAAantW,KAAKmoC,OAAOhzB,QAAQghB,GAAK,IAAMn2B,KAAKmoC,OAAOuz7B,kBAAkBwkB,kBAAoB,gBAClGtqoB,EAAkB51W,KAAKmoC,OAAOg48B,wBAAZng/B,CAAqCy2+B,EAAUz2+B,KAAKmoC,OAAQ,gBAAiBglU,GAAY,EAC/G,KACK,CACD,IAAI41rB,EAAe5rnB,EAAOn3a,KAAKmzN,OAAOx7L,WAAa33B,KAAKmoC,OAAOi07B,cAAcjpwB,OAAOx7L,SAAS92B,SAAW,GACpGy6/B,EAAax6/B,GAAc,MAAO,CAClCC,UAAW8ua,IACX3mY,UAAY428B,GAAgBijD,EAAc,SAAWA,EAAc,MAEnEC,EAAeliiC,GAAc,MAAO,CACpCC,UAAW8ua,KAAwB7va,KAAKmoC,OAAOumrB,WAAa,IAAM7+S,IAAoB,IACtF3mY,UAAWlpC,KAAKmoC,OAAO4+8B,cAActQ,EAASz2+B,KAAKmzN,OAAOp8C,cAE1Dks3B,EAAaniiC,GAAc,MAAO,CAClCC,UAAW8ua,KAAwB7va,KAAKmoC,OAAOumrB,WAAa,IAAM7+S,IAAoB,IACtF3mY,UAAWlpC,KAAKmoC,OAAO4+8B,cAActQ,EAASz2+B,KAAKmzN,OAAOu5K,YAE9DlkH,GAAS,CAAC8yuB,GAAa,iBACnBnklB,EAAOn3a,KAAKmzN,OAAO4qwB,UACnBnonB,EAAkB,CAAC0lpB,GAEb7kB,EAAS5mV,QAAW4mV,EAAS1m5B,SAI9B0m5B,EAAS5mV,QACVj6S,EAAgBxpW,KAAK42hC,GAEzBptrB,EAAgBxpW,KAAKkv/B,GAChB7kB,EAAS1m5B,SACV6lR,EAAgBxpW,KAAK62hC,IARzBrtrB,EAAkB,CAACotrB,EAAc1nC,EAAY2nC,EAWrD,CACA,IAAIp8C,EAAqB/l/B,GAAc,MAAO,CAAEC,UAAW8ua,MAM3D,OALA78S,GAAO4iP,EAAiBixoB,GACxBu6C,EAAa1vgC,YAAYm19B,GACzB7m/B,KAAKmoC,OAAOu87B,UAAU+d,kBAAkB2+C,EAAcjqnB,EAAOs+L,WAC7Dz1mB,KAAKq8+B,oBAAoB+kD,EAAcjqnB,EAAOjtY,KAAMitY,EAAOn3a,KAAKmzN,OAAO8rL,aACvEj/Y,KAAKy/+B,mBAAmB2hD,EAAc3qD,EAAU,kBAAmBz2+B,KAAKo4+B,YACjEgpD,CACX,EACAR,EAAUjwhC,UAAUy0+B,eAAiB,SAAU3O,EAAU2uB,GACrD,IAAI61B,EAAa,IAAIx5hC,KAAK2jgC,EAAUhlgC,cAAeglgC,EAAUjlgC,WAAY,GACrEg7hC,EAAW9+D,IAAa,IAAI569B,KAAK2jgC,EAAUhlgC,cAAeglgC,EAAUjlgC,WAAa,EAAG,GAAI,GACxF+oV,EAAYz/P,GAAO,CAAC,EAAGgt5B,EAAU,MAAM,GACvC6nB,EAAap1qB,EAAUlpV,KAAKmzN,OAAOp8C,WACnCwn1B,EAAWr1qB,EAAUlpV,KAAKmzN,OAAOu5K,SACjC+oO,EAAY,CAAEo6C,QAAQ,EAAO9/jB,SAAS,EAAOnlE,MAAO,GACpDs4gC,EAAY,IAAIzhiC,KAAKzB,KAAKmoC,OAAO+/W,aAAa9nZ,cAAeJ,KAAKmoC,OAAOo/+B,iBAAkB,GAC3F4b,EAAU9mE,IAAe6mE,EAAWljiC,KAAKmoC,OAAOq/+B,aAIpD,GAHIxnhC,KAAK+thC,YACL/thC,KAAK0hiC,oBAAoBjrD,EAAUwkD,EAAYE,GAED,aAA9Cn7hC,KAAKmoC,OAAOuz7B,kBAAkBhmb,aAA8B11iB,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,EAAG,CACtHpD,KAAKojiC,0BAA0B9kC,EAAYC,EAAU2kC,EAAWC,EAASj6sB,EAAWusR,GACpF,IAAI4tb,EAAoBn6sB,EAAUlpV,KAAKmzN,OAAOp8C,WAC1Cus3B,EAAkB,IAAI7hiC,KAAKynV,EAAUlpV,KAAKmzN,OAAOu5K,SAAW,GAChE+oO,EAAU7qlB,MAAS04gC,EAAgBnjiC,WAAakjiC,EAAkBljiC,WAC7DH,KAAKmoC,OAAOq/+B,aAAe8b,EAAgBljiC,cAAgBijiC,EAAkBjjiC,eAAkB,CACxG,MAGI,GADAJ,KAAKojiC,0BAA0B9kC,EAAYC,EAAU08B,EAAYE,EAAUjysB,EAAWusR,GACzB,IAAzDz1mB,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,QAAgBpD,KAAKmoC,OAAO+27B,cAActuX,gBAAiB,CACzG,IAAIx3jB,EAAMij7B,IAAenzoB,EAAUlpV,KAAKmzN,OAAOu5K,UAAUhrY,UACrDw0C,EAAQmm7B,IAAenzoB,EAAUlpV,KAAKmzN,OAAOp8C,YAAYr1K,WACzD+0+B,EAASz2+B,KAAKmzN,OAAO4qwB,WAAa3k7B,IAAQq97B,EAASz2+B,KAAKmzN,OAAOu5K,SAAShrY,WAAa+zmB,EAAU1lhB,WAC/F32C,EAAMij7B,IAAa,IAAI569B,KAAK23C,IAAO,GAAG13C,WAE1C+zmB,EAAU7qlB,MAAQhnB,KAAKC,MAAMu1C,EAAMlD,GAASmm7B,KAAmB,CACnE,CASJ,OAPAnzoB,EAAUusR,UAAYA,EAClB4mX,IAAeiiC,GAAY58/B,UAAY269B,IAAer89B,KAAKmoC,OAAOo1V,SAAS77X,YAC3EwnV,EAAUlpV,KAAKmzN,OAAOp8C,WAAa/2K,KAAKmoC,OAAOo1V,SAE/C8+lB,IAAekiC,GAAU78/B,UAAY269B,IAAer89B,KAAKmoC,OAAOq1V,SAAS97X,YACzEwnV,EAAUlpV,KAAKmzN,OAAOu5K,SAAW1sY,KAAKmoC,OAAOq1V,SAE1Ct0C,CACX,EACA03sB,EAAUjwhC,UAAUyyhC,0BAA4B,SAAU9kC,EAAYC,EAAUglC,EAAWC,EAAS/sD,EAAUhhY,GACtG6oZ,EAAW58/B,UAAY6hiC,EAAU7hiC,YACjC+0+B,EAASz2+B,KAAKmzN,OAAOp8C,WAAaws3B,EAClC9tb,EAAUo6C,QAAS,GAEnB0uW,EAAS78/B,UAAY8hiC,EAAQ9hiC,YAC7B+0+B,EAASz2+B,KAAKmzN,OAAOu5K,SAAW82pB,EAChC/tb,EAAU1lhB,SAAU,EAE5B,EACA6w8B,EAAUjwhC,UAAUu++B,iBAAmB,SAAUhv/B,EAAM8l+B,GACnD,IACIy9D,EACAC,EAFAv0C,EAAmB,GAGvB,GAAInv/B,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,IAAMpD,KAAKmoC,OAAO+27B,cAActuX,gBAAiB,CACxG,IAAIqqb,EAAaj7hC,KAAKmoC,OAAO8l8B,aAAarC,kBAAkB,IAAInq+B,KAAKvB,EAAKwB,YACtEy5hC,EAAW9+D,IAAar89B,KAAKmoC,OAAO8l8B,aAAapC,gBAAgB,IAAIpq+B,KAAKvB,EAAKwB,aAAc,GACjG+hiC,EAAYpnE,IAAe,IAAI569B,KAAKw5hC,EAAWv5hC,YAAYA,UAC3DgiiC,EAAUrnE,IAAe,IAAI569B,KAAK05hC,EAASz5hC,YAAYA,SAC3D,MAEQ1B,KAAKmoC,OAAOwi9B,eACZ84C,EAAYpnE,IAAe,IAAI569B,KAAKvB,EAAKwB,YAAYA,UACrDgiiC,EAAUrnE,IAAaA,IAAe,IAAI569B,KAAKvB,EAAKwB,YAAa,GAAGA,WAGpE+hiC,EAAYC,EAAUrnE,IAAe,IAAI569B,KAAKvB,EAAKwB,YAAYA,UAGvE,IAAK,IAAI4N,EAAK,EAAG8/+B,EAAiBppB,EAAc129B,EAAK8/+B,EAAehs/B,OAAQkM,IAAM,CAC9E,IAAI2m+B,EAAMmZ,EAAe9/+B,GACrBq0hC,EAAW,IAAIliiC,KAAKw0+B,EAAIj2+B,KAAKmzN,OAAOp8C,WAAWr1K,WAC/CkiiC,EAAS,IAAIniiC,KAAKw0+B,EAAIj2+B,KAAKmzN,OAAOu5K,SAAShrY,WAC3CmiiC,EAAgB5tD,EAAIj2+B,KAAKmzN,OAAO4qwB,UAAY1B,IAAeunE,GAAQliiC,UAAY+hiC,EAC/EpnE,IAAeunE,GAAQliiC,WAAa+hiC,GAClCpnE,IAAesnE,GAAUjiiC,WAAa+hiC,GAAeI,GACtDxnE,IAAesnE,GAAUjiiC,WAAa+hiC,GAAepnE,IAAeunE,GAAQliiC,WAAagiiC,IAC1Fv0C,EAAiB/i/B,KAAK6p+B,EAE9B,CACA,OAAOkZ,CACX,EACAyxC,EAAUjwhC,UAAUS,UAAY,WAC5B,IAAI9R,EAAQU,KAEZ,OAAO0Q,MAAMyI,MAAM,KAAM,CAAE/V,OAAQpD,KAAKmoC,OAAOq/+B,cAAevhhC,KAAI,SAAUrE,EAAO6qB,GAC/E,OAAOntB,EAAM6oC,OAAOo/+B,iBAAmB96/B,CAC3C,GACJ,EACAm0gC,EAAUjwhC,UAAUmwhC,iBAAmB,WAGnC,IAFA,IAAIhmD,EAAkB,qCAAiDjrkB,IAAkC,cAAgBA,IAA0B,YAE1Ivga,EAAK,EAAGoomB,EADN,GAAG9mmB,MAAMjR,KAAKK,KAAKmV,QAAQ3E,iBAAiBsq+B,IACvBxr+B,EAAKoomB,EAAOt0mB,OAAQkM,IAAM,CAC5CoomB,EAAOpomB,GACbg7B,kBAAkBnkC,MAAMyiJ,OAAS,EACzC,CACJ,EACAg44B,EAAUjwhC,UAAUymI,QAAU,WAC1BtwF,EAAOn2C,UAAUymI,QAAQz3I,KAAKK,MAC9BA,KAAKmoC,OAAS,IAClB,EACOy4/B,CACX,CA7kB+B,CA6kB7BjxC,KCrmBEzp8B,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GA4BzC09+B,IAA6B,SAAUh9+B,GAEvC,SAASg9+B,IACL,IAAIxkiC,EAAmB,OAAXwnD,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,KAoBhE,OAnBAV,EAAMykiC,qBAAuB,EAC7BzkiC,EAAM0kiC,sBAAwB,EAC9B1kiC,EAAM2kiC,iBAAmB,EACzB3kiC,EAAM4kiC,cAAe,EACrB5kiC,EAAM6kiC,sBAAuB,EAC7B7kiC,EAAM8kiC,eAAiB,EACvB9kiC,EAAM+kiC,gBAAkB,EACxB/kiC,EAAM4/iB,QAAU,EAChB5/iB,EAAMgliC,gBAAiB,EACvBhliC,EAAMiliC,mBAAoB,EAC1BjliC,EAAMkliC,cAAe,EACrBlliC,EAAMoyZ,eAAgB,EACtBpyZ,EAAMy+hC,UAAY,GAClBz+hC,EAAMkttB,YAAc,GACpBlttB,EAAMmliC,SAAW,GACjBnliC,EAAMy3K,UAAY,EAClBz3K,EAAMoliC,gBAAiB,EACvBpliC,EAAMqliC,SAAW,KACjBrliC,EAAMsliC,eAAgB,EACftliC,CACX,CAmwCA,OA1xCA4mD,IAAU49+B,EAAah9+B,GAwBvBg9+B,EAAYnzhC,UAAUyr+B,cAAgB,SAAUjn+B,GAC5C,IAAIomV,GAAUpmV,EAAS,CACnBioV,MAAO,IAAMyyE,IACbtua,OAAO,EACP+8V,cAAc,EACd7B,cAAez8V,KAAKmoC,OAAOumrB,WAC3BxvX,iBAAiBl/V,KAAKmoC,OAAOk3/B,cAC7Bh8rB,SAAWrjW,KAAKmoC,OAAOk3/B,cAAiB,CAAE175B,MAAO,GAAIuqB,KAAM,IAAO,CAAEvqB,KAAM,EAAGuqB,IAAK,GAClF8wM,SAAUh/V,KAAKg/V,SACfL,UAAW3+V,KAAK2+V,UAAU9+V,KAAKG,MAC/BggW,KAAMhgW,KAAKggW,KAAKngW,KAAKG,MACrBqiW,SAAUriW,KAAKqiW,SAASxiW,KAAKG,MAC7BwhW,kBAAkB,EAClBjB,OAAQvgW,KAAK6kiC,WAAWhliC,KAAKG,MAC7B4/V,kBAAmB5/V,KAAK8kiC,aAAajliC,KAAKG,OAElD,EACA8jiC,EAAYnzhC,UAAUsuV,YAAc,WAChC,IAAIF,EAAc7tU,SAAS0I,cAAc55B,KAAKmoC,OAAOk3/B,eACrDr/hC,KAAKg/V,SAAWh/V,KAAKmoC,OAAOk3/B,eAAiBtgsB,EAAcA,EACvD/+V,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,IAChD,EACAi0nB,EAAYnzhC,UAAUk0hC,WAAa,SAAUxkiC,GACzC,IAAIf,EAAQU,KACZA,KAAK+kiC,6BACL/kiC,KAAK+0gC,UAAU5//B,QAAU9U,EAAE8U,QAC3BnV,KAAK+0gC,UAAU7/7B,OAAS,OACxB,IAAIo3O,EAAW,GAuBf,OAtBKtsT,KAAKmoC,OAAOi9+B,gBAAkBr5sB,GAAkB/rU,KAAKmoC,OAAOo/7B,mBAA6D,IAAxCvn+B,KAAKmoC,OAAOo/7B,iBAAiBnk+B,QAC9GpD,KAAKmoC,OAAOo/7B,iBAAiBnk+B,OAAS,IAAuE,IAAlEpD,KAAKmoC,OAAOo/7B,iBAAiB589B,QAAQ3K,KAAK+0gC,UAAU5//B,SAChGm3S,EAAW,CAACjsT,EAAE8U,UAGdm3S,EAAWtsT,KAAKmoC,OAAOo/7B,iBACvBvn+B,KAAK0xZ,eAAgB,GAEzBplG,EAASjmT,SAAQ,SAAUsjV,GACvB,IAAI39U,EAAe1M,EAAM6/hC,mBAAmBx1sB,GACxCA,EAAIr3T,aAAa,eAAiBhzB,EAAMy1gC,UAAU5//B,QAAQmd,aAAa,eACvEhzB,EAAMy1gC,UAAUxzgC,MAAQyK,EACnB1M,EAAM6oC,OAAOk3/B,eAA8C,UAA7B//hC,EAAM6oC,OAAOw/W,cAC5CroZ,EAAM6oC,OAAOuz7B,kBAAkBiC,UAAUhtkB,QAAWrxZ,EAAM6oC,OAAOyz7B,WAAWgJ,kBAC3Etl+B,EAAMy1gC,UAAU5//B,QAAQ+yQ,UAAUh1P,SAAS28Y,MAC5C7kF,GAAkB1rV,EAAMy1gC,UAAUxzgC,MAAO,CAAE23iB,OAAQ,OAAQv1a,KAAM,KAAMC,MAAO,KAAMplH,MAAO,SAE/Flf,EAAMy1gC,UAAUxzgC,MAAM4E,MAAM+nJ,IAAMw/K,GAAWpuU,EAAMy1gC,UAAU5//B,QAAQytS,YAEzEtjT,EAAMy1gC,UAAU/ogC,aAAaI,KAAKJ,GAClC1M,EAAMy1gC,UAAU3wf,gBAAgBh4gB,KAAKu9U,EACzC,IACO3pV,KAAK+0gC,UAAUxzgC,KAC1B,EACAuiiC,EAAYnzhC,UAAUm0hC,aAAe,SAAUzkiC,GAC3C,GAAIL,KAAKmoC,OAAOk3/B,cACZ,MAAO,CAAE175B,KAAMtjI,EAAEsjI,KAAMuqB,IAAK7tJ,EAAE6tJ,KAElC,IAKI824B,EALAzyO,EAAcvyzB,KAAK+0gC,UAAUxiN,WAAavyzB,KAAK+0gC,UAAUwoB,aAAgBv9hC,KAAK+0gC,UAAUvnsB,SACxF2+N,EAAYz+N,GAAW,GACK,UAA5B1tU,KAAKmoC,OAAOw/W,cACZwkJ,EAAY9riB,EAAEsjI,MAIdqh6B,EADAhliC,KAAKskiC,eACQ1giC,KAAKC,KAAK7D,KAAK+0gC,UAAUxzgC,MAAMkzR,wBAAwB7wJ,OAAS5jI,KAAK+0gC,UAAUvnsB,SAG/ExtU,KAAK+0gC,UAAUxzgC,MAAMkzR,wBAAwB7wJ,MAE9D,IASI0pZ,EARA23gB,EADWjliC,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KACvBp7I,wBAAwB7wJ,MASxD,KARI5jI,KAAKmoC,OAAOyz7B,WAAWgJ,kBAAgD,iBAA5B5k+B,KAAKmoC,OAAOw/W,cAAmC3nZ,KAAKmoC,OAAOkwT,WACtGr4V,KAAK+0gC,UAAU/u3B,MAAQg/4B,IAAehliC,KAAKukiC,mBAAuBvkiC,KAAK+0gC,UAAU/u3B,MAAQi/4B,IACzFjliC,KAAK4kiC,eAAgB,GAErB5kiC,KAAKmoC,OAAOyz7B,WAAWgJ,mBACvBz4b,EAAYz+N,GAAW1tU,KAAK+0gC,UAAUxzgC,MAAMohT,aAG3C3iT,KAAKmoC,OAAOyz7B,WAAWgJ,mBAAqB5k+B,KAAKmoC,OAAOw17B,UAAUhtkB,SACjE5kF,GAAkB/rU,KAAK+0gC,UAAUxzgC,MAAM6xR,eACrCpzR,KAAK+0gC,UAAUxzgC,MAAM6xR,aAAalL,UAAUh1P,SAAS28Y,KACzDy9G,EAAW5/M,GAAW1tU,KAAK+0gC,UAAUxzgC,MAAMqhT,gBAE1C,GAAgC,UAA5B5iT,KAAKmoC,OAAOw/W,YACjB2lI,EAAW5/M,GAAW,QAErB,GAAI1tU,KAAK+0gC,UAAUxzgC,MAAM2mR,UAAUh1P,SAAS28Y,KAC7Cy9G,EAAW5/M,GAAW1tU,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KAAsBjtH,WACpFooC,GAAkBhrV,KAAK+0gC,UAAUxzgC,MAAO,CACpCid,MAAOkvT,GAAW9pU,KAAKC,KAAK7D,KAAK+0gC,UAAUxzgC,MAAM4uQ,YAAcnwQ,KAAK+0gC,UAAU9mN,WAAajuzB,KAAK+0gC,UAAU9mN,WAC1GrqrB,MAAO5jI,KAAKmoC,OAAOkwT,WAAa3qB,GAAW,SAG9C,CACG1tU,KAAK+0gC,UAAU5//B,QAAQ+yQ,UAAUh1P,SAAS28Y,OACzC7va,KAAK+0gC,UAAUxzgC,MAAM2mR,UAAUh1P,SAAS28Y,MACzC7kF,GAAkBhrV,KAAK+0gC,UAAUxzgC,MAAO,CACpCqnJ,OAAQ8kL,GAAW1tU,KAAK+0gC,UAAUxiN,YAClC/zyB,MAAOkvT,GAAW1tU,KAAK+0gC,UAAU9mN,UAAY,GAC7ClvhB,cAAe,SAGvB,IAAI45O,EAAQpsf,SAASlsB,EAAE6tJ,IAAK,IAC5ByqX,EAAQA,EAAQ,EAAI,EAAIA,EACxB2U,EAAW5/M,GAAW9pU,KAAKC,KAAK80gB,EAAQ45S,GAAcA,GACtD,IAAIr0gB,EAAel+S,KAAKmoC,OAAOhzB,QAAQykB,cAAc,mBAAmBskR,aACpEgnvB,EAAc34gC,SAAS+ggB,EAAU,IAAMtthB,KAAK+0gC,UAAUxzgC,MAAMwzR,aAC5DmwwB,EAAchnvB,IACdovO,EAAY/ggB,SAAS+ggB,EAAU,KAAO43gB,EAAchnvB,GAAiB,KAE7E,CACA,MAAO,CAAEv6K,KAAMwoa,EAAWj+Y,IAAKo/X,EACnC,EACAw2gB,EAAYnzhC,UAAUo0hC,2BAA6B,WAC/C/kiC,KAAK+0gC,UAAU7/7B,OAAS,OACxBl1E,KAAK+0gC,UAAUh3C,SAAW,KAC1B/99B,KAAK+0gC,UAAUwoB,aAAev9hC,KAAKmoC,OAAOuz7B,kBAAkBiC,UAAUnwpB,SAAWxtU,KAAKmoC,OAAOuz7B,kBAAkBiC,UAAUC,UACzH599B,KAAK+0gC,UAAUvnsB,SAAWxtU,KAAK+0gC,UAAUwoB,aACzC,IAAIp1D,EAAWno+B,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KACvD7va,KAAK+0gC,UAAU9mN,UAAYk6K,EAASh4tB,YACpCnwQ,KAAK+0gC,UAAUxiN,WAAa41K,EAASpzsB,YACzC,EACA+uwB,EAAYnzhC,UAAUguV,UAAY,SAAUt+V,GACxC,IAAIf,EAAQU,KACRmliC,EAAYnliC,KAAK+0gC,UAAU5//B,QAAQmd,aAAa,aACpDtyB,KAAK+0gC,UAAUh++B,MAAQ/2B,KAAKmoC,OAAOu87B,UAAUuC,eAAek+D,GAC5D,IAAI1uD,EAAWht5B,GAAO,CAAC,EAAGzpF,KAAK+0gC,UAAUh++B,MAAO,MAAM,GACjDg1S,GAAkB0qqB,KACnBz2+B,KAAK+2K,UAAY0/zB,EAASz2+B,KAAKmoC,OAAOw+7B,YAAY5vzB,WAAWr1K,WAEjE,IAAIq83B,EAAW,CACXj9yB,QAAQ,EACR52C,KAAMus8B,EACNt0iB,aAAcnic,KAAKoliC,kBACnBrugC,MAAO12B,EACPo9hC,iBAAkB,KAClBtohC,QAASnV,KAAK+0gC,UAAU5//B,QACxBq4T,SAAUxtU,KAAK+0gC,UAAUvnsB,SACzBglhB,WAAY,CAAE7hc,QAAQ,EAAOyvoB,UAAW,KACxCj2uB,OAAQ,CAAEwmG,QAAQ,EAAMmvoB,SAAU,GAAIM,UAAW,MAErDpgiC,KAAKmoC,OAAOm4P,Q9C9JG,Y8C8JuBy9lB,GAAU,SAAU1+W,GACtD,GAAIA,EAAcv+b,SAAYirP,GAAkBzsU,EAAMy1gC,UAAU5//B,UAC5D42T,GAAkBzsU,EAAMy1gC,UAAU5//B,QAAQ0gR,eAAiB,CAC3D,IAAIwlP,EAAU/7gB,EAAMy1gC,UAAU5//B,QAAQ63U,cAAc,GAOpD,OANKjhB,GAAkBsvM,IACnBA,EAAQz9K,WAAWv9V,EAAE02B,OAEzBz3B,EAAMy1gC,UAAU7/7B,OAAS,GACzB51E,EAAMggiC,iCACNhgiC,EAAMigiC,oBAEV,CACAjgiC,EAAMu+rB,YAAY,YAClBv+rB,EAAM6oC,OAAO+27B,cAAchq5B,QAAS,EACpC51E,EAAMy1gC,UAAU7+9B,MAAQug8B,EAASn3+B,EAAM6oC,OAAOw+7B,YAAY5vzB,WAC1Dz3K,EAAMy1gC,UAAU379B,IAAMq97B,EAASn3+B,EAAM6oC,OAAOw+7B,YAAYj6lB,SACxDptY,EAAMy1gC,UAAU50M,WAAa5zyB,SAASjtB,EAAMy1gC,UAAU5//B,QAAQmd,aAAa,qBAAuB,IAAK,IACvGhzB,EAAMy1gC,UAAUvnsB,SAAW6xM,EAAc7xM,SACzCluU,EAAMy1gC,UAAUviL,WAAanzU,EAAcmzU,WAC3Clz1B,EAAMy1gC,UAAU5qtB,OAASk1N,EAAcl1N,OACvC7qT,EAAMy1gC,UAAU0oB,iBAAmBp+gB,EAAco+gB,iBACjD,IAAIkB,EAAcr/hC,EAAM6oC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KAa3D,GAZAvwa,EAAMs+hC,WAAa,CAAEzohC,QAASwphC,EAAanghC,MAAOmghC,EAAYvuxB,YAAaxnH,OAAQ+14B,EAAYzgvB,cAC/F5+S,EAAM8kiC,eAAkB9kiC,EAAMy1gC,UAAU9mN,UAAY3uzB,EAAMy1gC,UAAUwoB,aAAgBj+hC,EAAMy1gC,UAAUvnsB,SACpGluU,EAAM+kiC,gBAAmB/kiC,EAAMy1gC,UAAUxiN,WAAajzzB,EAAMy1gC,UAAUwoB,aAAgBj+hC,EAAMy1gC,UAAUvnsB,SACtGluU,EAAMykiC,qBAAuB,EAC7BzkiC,EAAM0kiC,sBAAwB,EAC9B1kiC,EAAM2kiC,kBAAoB,EAC1B3kiC,EAAM4kiC,cAAe,EACrB5kiC,EAAM6kiC,sBAAuB,EAC7B7kiC,EAAM4/iB,QAAU,EAChB5/iB,EAAMiliC,mBAAoB,EAC1BjliC,EAAMg+hC,eAAiB,EACvBh+hC,EAAMoliC,eAAiBpliC,EAAMy1gC,UAAUxzgC,MAAM2mR,UAAUh1P,SAAS28Y,MAC3Dvwa,EAAM6oC,OAAOyz7B,WAAWgJ,mBAAqBtl+B,EAAM6oC,OAAOw17B,UAAUhtkB,SAAwC,iBAA7BrxZ,EAAM6oC,OAAOw/W,YAAgC,EACxH57E,GAAkBzsU,EAAMy1gC,UAAUxzgC,MAAM6xR,eACzC9zR,EAAMy1gC,UAAUxzgC,MAAM6xR,aAAalL,UAAUh1P,SAAS28Y,OACtDvwa,EAAMiliC,mBAAoB,GAE9BjliC,EAAMy1gC,UAAU/u3B,MAAQ3lJ,EAAE02B,MAAMivH,MAChC,IAAIoob,EAAO9ukB,EAAM6oC,OAAOuz7B,kBAAkBxtT,WAC1C5uqB,EAAM4kiC,aAAe91d,EAAKhrkB,OAAS,GAAsC,SAAjCgrkB,EAAKA,EAAKhrkB,OAAS,GAAGw6S,QACzB,SAAjCwwR,EAAKA,EAAKhrkB,OAAS,GAAGw6S,OAC1Bt+S,EAAM6kiC,sBAAwB7kiC,EAAM6oC,OAAOuz7B,kBAAkBiC,UAAUhtkB,QAAUrxZ,EAAM4kiC,cACtD,kBAA7B5kiC,EAAM6oC,OAAOw/W,aAAoCymL,EAAKhrkB,OAAS,GAAsC,SAAjCgrkB,EAAKA,EAAKhrkB,OAAS,GAAGw6S,OAC9Ft+S,EAAMgliC,gBAAkBhliC,EAAM6kiC,sBAAyB7kiC,EAAMy1gC,UAAUwoB,eAAiBj+hC,EAAMy1gC,UAAUvnsB,SACpGluU,EAAM6kiC,qBACN7kiC,EAAM+liC,oBAAsB,IAAI11C,IAAcrw/B,EAAM6oC,OAAQ,OAG5D7oC,EAAM+liC,oBAAsB,IAAI11C,IAAcrw/B,EAAM6oC,OAAQ,OAEpE,EACiC,iBAA7B7oC,EAAM6oC,OAAOw/W,cACbroZ,EAAMkhiC,UAAY,IAAII,IAAUthiC,EAAM6oC,SAET,UAA7B7oC,EAAM6oC,OAAOw/W,cACbroZ,EAAMy3K,UAAYslzB,IAAe,IAAI569B,KAAKnC,EAAMy3K,YAAYr1K,UAC5DpC,EAAM+giC,sBAAsB/giC,EAAMy1gC,UAAUxzgC,OAC5CjC,EAAMi0/B,WAAa,IAAIhJ,IAAWjr/B,EAAM6oC,SAEX,QAA7B7oC,EAAM6oC,OAAOw/W,aAAsD,SAA7BroZ,EAAM6oC,OAAOw/W,aAAuD,aAA7BroZ,EAAM6oC,OAAOw/W,eAC1FroZ,EAAM8z/B,cAAgB,IAAIrQ,IAAczj/B,EAAM6oC,QAC9C7oC,EAAM8z/B,cAAcjP,mBACF7k/B,EAAMk6+B,WAAWl6+B,EAAMy1gC,UAAUh++B,OACvC1wB,SAAQ,SAAU0wB,GAC1B,IAAIi4J,EAAQ,6BAAgCqtyB,IAAetl8B,EAAMz3B,EAAM6oC,OAAOw+7B,YAAY5vzB,YAAYr1K,UAAY,KAC9GpC,EAAM6oC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,IACxD4rL,EAAQA,EAAM51K,OAAO,wBAA0B9Z,EAAMy1gC,UAAU50M,WAAa,OAEhF,IAAIwiO,EAAUrjiC,EAAM6oC,OAAOhzB,QAAQykB,cAAco1J,GACjD,GAAI2z2B,EAAS,CACT,IAAI2C,EAAS3C,EAAQ/ogC,cAAc,aAAet6B,EAAMy1gC,UAAUxzgC,MAAM+wB,aAAa,WAAa,MAC9FgzgC,GACA98wB,GAAS,CAAC88wB,GAASz1nB,IAE3B,CACJ,IAER,GACJ,EACAi0nB,EAAYnzhC,UAAUy0hC,gBAAkB,WACpC,GAAIpliC,KAAK0xZ,eAA2C,IAA1B1xZ,KAAK+9hC,UAAU36hC,QAAgBpD,KAAKmoC,OAAOo/7B,iBAAiBnk+B,OAAS,EAC3F,IAAK,IAAIkM,EAAK,EAAGgmC,EAAKt1C,KAAKmoC,OAAOo/7B,iBAAkBj49B,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CACtE,IACI61hC,EADU7v/B,EAAGhmC,GACOgjB,aAAa,aACjC4X,EAAOlqC,KAAKmoC,OAAOu87B,UAAUuC,eAAek+D,GAChDnliC,KAAK+9hC,UAAU3xhC,KAAKq9E,GAAO,CAAC,EAAGv/C,EAAM,MAAM,GAC/C,CAEJ,OAAOlqC,KAAK+9hC,SAChB,EACA+F,EAAYnzhC,UAAUqvV,KAAO,SAAU3/V,GAInC,GAHIL,KAAKmoC,OAAO637B,YACZhg+B,KAAKmoC,OAAO637B,WAAWyc,gBAAe,GAEpC1wqB,GAAkB1rU,EAAEgI,UAAYhI,EAAEgI,OAAO6/Q,UAAUh1P,SAAS28Y,KAAlE,CAGA,IAAI4mkB,EAAWht5B,GAAO,CAAC,EAAGzpF,KAAK+0gC,UAAUh++B,MAAO,MAAM,GAClD6tT,EAAY5kV,KAAKmoC,OAAOu87B,UAAU8d,mBAAmBni/B,GAiBzD,GAhBAL,KAAK+0gC,UAAUl2/B,EAAI7e,KAAK+0gC,UAAU9u3B,MAAQ2+L,EAAU3+L,MACpDjmJ,KAAK+0gC,UAAU3z/B,EAAIphB,KAAK+0gC,UAAU/u3B,MAAQ4+L,EAAU5+L,MACpDhmJ,KAAK+0gC,UAAU1sgC,OAAShI,EAAEgI,OAC1BrI,KAAK+jiC,qBAAsD,IAA9B/jiC,KAAK+jiC,qBAC9BngiC,KAAKC,KAAMD,KAAK8Y,IAAI1c,KAAK+0gC,UAAUxzgC,MAAMkzR,wBAAwB9wJ,KAAO3jI,KAAK+0gC,UAAU3z/B,GAAKphB,KAAKokiC,gBAC7FpkiC,KAAKokiC,eAAiBpkiC,KAAK+jiC,qBACnC/jiC,KAAK+jiC,qBAAuB/jiC,KAAKukiC,kBAAoBvkiC,KAAK+0gC,UAAU9mN,UAAYjuzB,KAAK+jiC,qBACrF/jiC,KAAKgkiC,sBAAwD,IAA/BhkiC,KAAKgkiC,sBAC/BpgiC,KAAKC,KAAMD,KAAK8Y,IAAI1c,KAAK+0gC,UAAUxzgC,MAAMkzR,wBAAwBvmI,IAAMluJ,KAAK+0gC,UAAUl2/B,GAAK7e,KAAKqkiC,iBAC5FrkiC,KAAKqkiC,gBAAkBrkiC,KAAKgkiC,sBACpChkiC,KAAKwkiC,aAAgBxkiC,KAAKmoC,OAAOuz7B,kBAAkBiC,UAAUhtkB,OACzD3wZ,KAAK+0gC,UAAUxzgC,MAAM2mR,UAAUh1P,SAAS28Y,KACxC7va,KAAK+0gC,UAAUh++B,MAAM/2B,KAAKmoC,OAAOw+7B,YAAY5I,UAC7C/99B,KAAKskiC,gBAAmC,IAAjBtkiC,KAAKk/iB,SAC5Bl/iB,KAAKuliC,qBAAqB9uD,IAEG,UAA5Bz2+B,KAAKmoC,OAAOw/W,aAA2B3nZ,KAAKwkiC,eAAiBxkiC,KAAKs9hC,cAAgB,EAAG,CACtF,IAAIp9hC,EAAOF,KAAKmoC,OAAO677B,mBAAmBhk+B,KAAK+0gC,UAAU1sgC,QACzD,GAAK0jU,GAAkB7rU,GAMnBF,KAAKs9hC,cAAgB,MANK,CAC1B,IAAIjs7B,EAAcgr3B,IAAen89B,GAC7B0vZ,EAAYyskB,IAAe,IAAI569B,KAAKg1+B,EAASz2+B,KAAKmoC,OAAOw+7B,YAAY5vzB,WAAWr1K,YACpF1B,KAAKs9hC,eAAiBjs7B,EAAY3vG,UAAYkuZ,EAAUluZ,WAAa269B,GACzE,CAIJ,MAEIr89B,KAAKs9hC,cAAgB,EAEzB,GAAIt9hC,KAAKmoC,OAAOk3/B,cAAe,CAC3B,IAAIr2vB,EAAgB47C,EAAUv8U,OAC9BrI,KAAK+0gC,UAAUxzgC,MAAM4E,MAAM+nJ,IAAMw/K,GAAW1kC,EAAc4Z,WAC1D5iT,KAAK+0gC,UAAUxzgC,MAAM4E,MAAMw9H,KAAO+pM,GAAW1kC,EAAc2Z,YACvCltN,GAAQuzM,EAAe,IAAM6mI,KAMX,SAA5B7va,KAAKmoC,OAAOw/W,aAAsD,aAA5B3nZ,KAAKmoC,OAAOw/W,aAA0D,QAA5B3nZ,KAAKmoC,OAAOw/W,cAC9F3nZ,KAAK+0gC,UAAUxzgC,MAAM4E,MAAMqY,MAAQkvT,GAAW1tU,KAAK+0gC,UAAU5//B,QAAQg7P,eALzEnwQ,KAAK+0gC,UAAUxzgC,MAAM4E,MAAMyiJ,OAAS,GACpC5oJ,KAAK+0gC,UAAUxzgC,MAAM4E,MAAMqY,MAAQ,GAO3C,CACAxe,KAAKggiC,qBAAqB3/hC,GAC1BL,KAAKwliC,yBAAyBnliC,GAC9BL,KAAKkgiC,uBAAuB7/hC,GAC5B,IAAI093B,EAAW,CACX7z1B,KAAMus8B,EAAU1/8B,MAAO12B,EAAG8U,QAASnV,KAAK+0gC,UAAU5//B,QAAS4hK,UAAW/2K,KAAK+0gC,UAAU7+9B,MACrFw2V,QAAS1sY,KAAK+0gC,UAAU379B,IAAK+oZ,aAAcnic,KAAKwstB,aAEhDxstB,KAAKmoC,OAAOm2C,MAAMgsc,UAAUlnhB,OAAS,IACrC263B,EAAS59D,WAAang0B,KAAK+0gC,UAAU50M,YAEzCng0B,KAAKmoC,OAAOm4P,Q9CxTF,O8CwTuBy9lB,EA1DjC,CA2DJ,EACA+lK,EAAYnzhC,UAAU40hC,qBAAuB,SAAU9uD,GAC/Cz2+B,KAAKmoC,OAAOkwT,UACZr4V,KAAKk/iB,SACCl/iB,KAAK+0gC,UAAUxzgC,MAAM4uQ,YAAcnwQ,KAAK+jiC,sBAAwB/jiC,KAAKokiC,eAAkBpkiC,KAAK+0gC,UAAUvnsB,SAG5GxtU,KAAKk/iB,QAAWl/iB,KAAK+jiC,qBAAuB/jiC,KAAKokiC,eAAkBpkiC,KAAK+0gC,UAAUvnsB,SAEtF,IAAIoiF,EAAY6mlB,EAASz2+B,KAAKmoC,OAAOw+7B,YAAY5vzB,WAE7Cmr0B,EAAgB7lB,IADJr89B,KAAKmoC,OAAOyz7B,WAAW2D,YAAY,GACEv/9B,KAAKmoC,OAAOyz7B,WAAW2nB,eAAgBvj/B,KAAKmoC,OAAOyz7B,WAAW4nB,cAC/GtB,EAAclzB,UAAUtt9B,UAAYkuZ,EAAUluZ,YAC9C1B,KAAKk/iB,QAAUl/iB,KAAKk/iB,SAAYgjc,EAAclzB,UAAUtt9B,UAAYkuZ,EAAUluZ,WAAa269B,IAEnG,EACAynE,EAAYnzhC,UAAU0xV,SAAW,SAAUhiW,GACvC,IAAIf,EAAQU,KAUZ,GATAA,KAAK4kiC,eAAgB,EACrB5kiC,KAAKs/hC,4BACLt/hC,KAAKu/hC,qBACLl7xB,cAAcrkQ,KAAK+0gC,UAAU2oB,oBAC7B19hC,KAAK+0gC,UAAU2oB,mBAAqB,KACpCr5xB,cAAcrkQ,KAAK+0gC,UAAU4oB,gBAC7B39hC,KAAK+0gC,UAAU4oB,eAAiB,KAChC39hC,KAAK69rB,YAAY,eACjB79rB,KAAKmoC,OAAO+27B,cAAchq5B,QAAS,GAC/Bl1E,KAAKyliC,YAAYpliC,GAArB,CAGA,IAAIgI,GAAYhI,EAAEgI,OAAO6/Q,UAAUh1P,SAAS,iBAAmBlzB,KAAKmoC,OAAOizkB,aACvE3lhB,GAAQp1F,EAAEgI,OAAQ,iBAAmBhI,EAAEgI,OACvC013B,EAAW,CACXj9yB,QAAQ,EAAO52C,KAAMlqC,KAAK89hC,eAAe99hC,KAAKwstB,aAAcrqR,aAAcnic,KAAKwstB,YAC/Ez1rB,MAAO12B,EAAG8U,QAASnV,KAAK+0gC,UAAU5//B,QAAS9M,OAAQA,GAEvDrI,KAAK+0gC,UAAU7/7B,OAAS,KACxBl1E,KAAKmoC,OAAOm4P,Q9C5VE,W8C4VuBy9lB,GAAU,SAAU1+W,GACrD,IAAIA,EAAcv+b,OAAlB,CAGA,GAAIxhF,EAAM6oC,OAAOw78B,2BAA4B,CACzCrk/B,EAAM6oC,OAAOo47B,WAAWwV,QAAQpzjB,cAAe,EAC/Crjb,EAAM6oC,OAAOo47B,WAAWwV,QAAQ+N,YAC5B,CAACxk/B,EAAM6oC,OAAOyh8B,aAAaC,kBAAkBt98B,SAASwx2B,EAAS5o3B,QAAQmd,aAAa,oBAAqB,MAC7G,IAAIozgC,EAAoBn5gC,SAASwx2B,EAAS113B,OAAOiqB,aAAa,oBAAqB,KAAOhzB,EAAMy1gC,UAAU50M,WAC1G7g0B,EAAM6oC,OAAOo47B,WAAWwV,QAAQ18R,YAC5B,CAAC/5sB,EAAM6oC,OAAOyh8B,aAAaC,kBAAkBt98B,SAASm5gC,EAAkB5uhC,WAAY,KAC5F,CACAxX,EAAM6+hC,gBAAgB9+gB,EAAe//gB,EAAMoyZ,cAT3C,CAUJ,IACA1xZ,KAAKwstB,YAAc,GACnBxstB,KAAK+9hC,UAAY,GACjB/9hC,KAAK0xZ,eAAgB,EACrB1xZ,KAAKmoC,OAAOo/7B,iBAAmB,EAzB/B,CA0BJ,EACAu8D,EAAYnzhC,UAAU60hC,yBAA2B,SAAUnliC,GACvD,IAAIf,EAAQU,KACZ,GAAIA,KAAK+0gC,UAAUviL,WAAW7hc,OAAQ,CAClC,IAAIg1oB,EAAgB3liC,KAAKmoC,OAAOm17B,iBAC5BvxpB,GAAkB/rU,KAAK+0gC,UAAU2oB,sBACjC19hC,KAAK+0gC,UAAU2oB,mBAAqB1sgC,OAAOkzO,aAAY,WACnD,GAAIyhyB,EAAe,CACf,IACIvs/B,EADU95C,EAAM6oC,OAAOm17B,iBACTj68B,aACd6yB,EAAQyv/B,EAActihC,aAAgB/jB,EAAMy1gC,UAAUviL,WAAW4tM,UAAY,KACjFlq/B,EAASA,GAAS,GAAMA,EAAQ,GAAKA,KACvBkD,IACVus/B,EAAgBrmiC,EAAM6oC,OAAOm17B,iBAC7Bh+9B,EAAMsmiC,eAAevliC,GACrBf,EAAM4giC,uBAAuB7/hC,GAErC,CACJ,GAAGL,KAAK+0gC,UAAUviL,WAAW4tM,WAErC,CACJ,EACA0D,EAAYnzhC,UAAUuvhC,uBAAyB,SAAU7/hC,IAChD0rU,GAAkB/rU,KAAK+0gC,UAAUxzgC,MAAM6xR,eACxCpzR,KAAK+0gC,UAAUxzgC,MAAM6xR,aAAalL,UAAUh1P,SAAS28Y,KACrD7va,KAAK6liC,uBAAuBxliC,GAEvBL,KAAKmoC,OAAOyz7B,WAAWgJ,kBAAgD,iBAA5B5k+B,KAAKmoC,OAAOw/W,aAC5D3nZ,KAAKqliC,oBAAoB5rD,WAAaz5+B,KAAKmoC,OAAOyz7B,WAAW2D,YAC7Dv/9B,KAAKqliC,oBAAoBp3O,UAAYjuzB,KAAK+0gC,UAAU9mN,UACpDjuzB,KAAKqliC,oBAAoBl5C,eACzBns/B,KAAK+0gC,UAAU9mN,UAAYjuzB,KAAKkkiC,aAAelkiC,KAAKqliC,oBAAoBp3O,UACpEjuzB,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KAAsBp7I,wBAAwBj2Q,MAC1Fxe,KAAK8liC,sBAAsBzliC,IAGK,UAA5BL,KAAKmoC,OAAOw/W,aAAuD,iBAA5B3nZ,KAAKmoC,OAAOw/W,YACnD3nZ,KAAK+liC,sBAAsB1liC,GAG3BL,KAAKgmiC,sBAAsB3liC,EAGvC,EACAyjiC,EAAYnzhC,UAAUqkgC,kBAAoB,WACtC,GAAKh1gC,KAAKmoC,OAAOyz7B,WAAWgJ,iBA+BvB,CACD,IAAIqhE,OAAa,EAOjB,IAAKl6tB,GALDk6tB,EADAjmiC,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,EAC1CpD,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiB,2CAA2C+kB,KAAKv1B,KAAK+0gC,UAAUto/B,OAGpGzsB,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,MAErB,CAChC,IAAIq2nB,EAAeD,EAAWrsgC,cAAc,IAAMi2Y,KAC7Cq2nB,IACDA,EAAepliC,GAAc,MAAO,CAAEC,UAAW8ua,MACjDo2nB,EAAWv0gC,YAAYw0gC,IAE3BlmiC,KAAK+0gC,UAAU/ogC,aAAa3F,SAAQ,SAAUsjV,GAC1Cu8sB,EAAax0gC,YAAYi4T,EAC7B,GACJ,CACJ,MAhDI,GAAgC,UAA5B3pV,KAAKmoC,OAAOw/W,aAA4B3nZ,KAAKmoC,OAAOw17B,UAAUhtkB,OAW7D,CACD,IAAIuuoB,EAAel/hC,KAAK+0gC,UAAUxzgC,MAAM2mR,UAAUh1P,SAAS28Y,KACvD,IAAMA,IAAuC,IAAMA,IAGvD,GAFA7va,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiB0uhC,GAChC3pgC,KAAKv1B,KAAK+0gC,UAAUto/B,OAAOiF,YAAY1xB,KAAK+0gC,UAAUxzgC,OACvD29hC,IAAiB,IAAMrvnB,IAAsC,CAC7D,IAAI05Q,EAAgBvprB,KAAKmmiC,uBACrBrssB,EAAU,GAAGlpV,MAAMjR,KAAKK,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiB,IAAMq/Z,IAAyB,iBAChG,GAAI/1E,EAAQ,GAAG/kE,aAAew0Z,EAC1B,IAAK,IAAIj6qB,EAAK,EAAGi6U,EAAUuQ,EAASxqV,EAAKi6U,EAAQnmV,OAAQkM,IAAM,CACnDi6U,EAAQj6U,GACdnJ,MAAMyiJ,QAAW2giB,EAAgB,GAAK,GAAM,IAClD,CAEJvprB,KAAK+0gC,UAAUxzgC,MAAM4E,MAAMyiJ,OAAS8kL,GAAW67W,EACnD,CACAvprB,KAAK+0gC,UAAUns3B,OAASr8H,SAASvsB,KAAK+0gC,UAAUxzgC,MAAM4E,MAAMyiJ,OAAQ,GACxE,KA5B0E,CACtE,IAAIw94B,EAAkB,GAAGx1hC,MAAMjR,KAAKK,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiB,IAAMq/Z,MAC/E7va,KAAK+0gC,UAAUto/B,MAASzsB,KAAKmoC,OAAOyz7B,WAAW2D,YAAYn89B,OAASpD,KAAK+0gC,UAAUto/B,MAC/EzsB,KAAKmoC,OAAOyz7B,WAAW2D,YAAYn89B,OAAS,EAAIpD,KAAK+0gC,UAAUto/B,MACnE,IAAI45gC,EAAgBD,EAAgBpmiC,KAAK+0gC,UAAUto/B,OAAOmN,cAAc,IAAMi2Y,KACzEw2nB,IACDA,EAAgBvliC,GAAc,MAAO,CAAEC,UAAW8ua,MAClDu2nB,EAAgBpmiC,KAAK+0gC,UAAUto/B,OAAOiF,YAAY20gC,IAEtDA,EAAc30gC,YAAY1xB,KAAK+0gC,UAAUxzgC,MAC7C,CAuCR,EAEAuiiC,EAAYnzhC,UAAUi1hC,eAAiB,SAAUvliC,GAC7C,IAAIkm2B,EACAvngB,EAAWh/V,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KACnD7wE,KAAeh/V,KAAKwthC,YAAYt/3B,MAAQluJ,KAAKwthC,YAAY74vB,QACzDl/L,GAAQz1F,KAAK+0gC,UAAUxzgC,MAAO,IAAMsua,QACP,IAAxB7wE,EAAS/wM,YACTrqJ,KAAKmgB,MAAM/jB,KAAK+0gC,UAAU3z/B,IACvBxd,KAAKmgB,MAAMi7U,EAASvqE,wBAAwB9wJ,KAAO3jI,KAAK+0gC,UAAU9mN,UAAYj9xB,OAAOu4R,aACzFg9iB,EAAiBvm2B,KAAKmoC,OAAOkwT,UAAY,OAAS,WAE5Cz0V,KAAKmgB,MAAMi7U,EAAS/wM,YAAc+wM,EAASj6F,cAAgBi6F,EAAS5uF,aACzExsQ,KAAKmgB,MAAM/jB,KAAK+0gC,UAAU3z/B,IACvBxd,KAAKmgB,MAAMi7U,EAASvqE,wBAAwB7wJ,MAAQ5jI,KAAK+0gC,UAAU9mN,UAAYj9xB,OAAOu4R,eAC1Fg9iB,EAAiBvm2B,KAAKmoC,OAAOkwT,UAAY,WAAa,QAEtDkugB,GACAvm2B,KAAKmoC,OAAO807B,WAAWj99B,KAAKmoC,OAAOyz7B,WAAW6B,oBAAoBl3H,IAG9E,EACAu9L,EAAYnzhC,UAAUk1hC,uBAAyB,SAAUxliC,GACrD,KAAI0rU,GAAkB1rU,EAAEgI,SAAYhI,EAAEgI,QAAU0jU,GAAkBt2O,GAAQp1F,EAAEgI,OAAQ,QAApF,CAGA,IAAIou+B,EAAWht5B,GAAO,CAAC,EAAGzpF,KAAK+0gC,UAAUh++B,MAAO,MAAM,GAClDuvgC,EAAgB7vD,EAASz2+B,KAAKmoC,OAAOw+7B,YAAYj6lB,SAAShrY,UAC1D+0+B,EAASz2+B,KAAKmoC,OAAOw+7B,YAAY5vzB,WAAWr1K,UAC5CkkJ,EAAKnwD,GAAQp1F,EAAEgI,OAAQ,MAC3B,GAAgC,iBAA5BrI,KAAKmoC,OAAOw/W,aAAoC/hQ,EAAGsiI,UAAUh1P,SAAS28Y,OAAyBjqR,EAAGsiI,UAAUh1P,SAAS28Y,KAAzH,CAGA,IAAIlxE,EAAY3+V,KAAKmoC,OAAO677B,mBAAmBp+0B,GAC3C2g5B,EAAU,IAAI9kiC,KAAKk9V,EAAUj9V,WACjC6kiC,EAAQ/h8B,gBAAgB8h8B,GACpBtmiC,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,IACvDpD,KAAK+0gC,UAAU50M,WAAa5zyB,SAASq5H,EAAGtzH,aAAa,oBAAqB,KAE9EtyB,KAAK+0gC,UAAU7+9B,MAAQ,IAAIz0C,KAAKk9V,EAAUj9V,WAC1C1B,KAAK+0gC,UAAU379B,IAAM,IAAI33C,KAAK8kiC,EAAQ7kiC,WACtC1B,KAAK+0gC,UAAUxzgC,MAAM4E,MAAM+nJ,IAAMw/K,GAAW9nL,EAAGwtI,aAAawvB,WAC5D5iT,KAAK+0gC,UAAUxzgC,MAAM4E,MAAMw9H,KAAO+pM,GAAW9nL,EAAG+8J,YAChD3iT,KAAK+0gC,UAAUxzgC,MAAM4E,MAAMqY,MAAQkvT,GAAW9nL,EAAGuqH,aACjD,IACIixxB,EADAlP,EAAiBts4B,EAErB,GAAI5lJ,KAAKmoC,OAAOyz7B,WAAWgJ,iBAAkB,CACzC,IAAIj0Z,EAAWl7e,GAAQmwD,EAAI,MAAM+qb,SACjCuhd,EAAiBlyhC,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiB,4BAA4B+kB,KAAKo7iB,EAC3F,EACAywd,EAAelP,EAAet4/B,cAAc,IAAMi2Y,QAE9CuxnB,EAAetgiC,GAAc,MAAO,CAAEC,UAAW8ua,MACjDqinB,EAAexggC,YAAY0vgC,IAE/BphiC,KAAKwmiC,mBAAmBpF,EAvBxB,CAPA,CA+BJ,EACA0C,EAAYnzhC,UAAUq1hC,sBAAwB,SAAU3liC,GACpD,IAAIf,EAAQU,KACZ,KAAI+rU,GAAkB/rU,KAAK+0gC,UAAU1sgC,SAChCrI,KAAK+0gC,UAAU1sgC,QAAU0jU,GAAkBt2O,GAAQz1F,KAAK+0gC,UAAU1sgC,OAAQ,SACxEotF,GAAQz1F,KAAK+0gC,UAAU1sgC,OAAQ,MAAM6/Q,UAAUh1P,SAAS28Y,OACrDp6U,GAAQz1F,KAAK+0gC,UAAU1sgC,OAAQ,MAAM6/Q,UAAUh1P,SAAS28Y,MAHlE,CAMI7va,KAAKmoC,OAAOuz7B,kBAAkBiC,UAAUhtkB,QACxC3wZ,KAAKymiC,aAAapmiC,GAEtB,IAAI2+V,EAAWh/V,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KACnD4mkB,EAAWht5B,GAAO,CAAC,EAAGzpF,KAAK+0gC,UAAUh++B,MAAO,MAAM,GAClDun+B,EAAa7nB,EAASz2+B,KAAKmoC,OAAOw+7B,YAAY5vzB,WAE9Cuv3B,EAAgBjqE,IADLoa,EAASz2+B,KAAKmoC,OAAOw+7B,YAAYj6lB,UACM2vlB,IAAsBiiC,GACxE17sB,EAAYh/S,KAAKiG,MAAM0iB,SAASvsB,KAAK+0gC,UAAUxzgC,MAAM4E,MAAM+nJ,IAAK,IAAMluJ,KAAK+0gC,UAAUxiN,YACnFvyzB,KAAK+0gC,UAAUxiN,WACrB3vgB,EAAYA,EAAY,EAAI,EAAIA,GAC5B5iT,KAAKwthC,YAAYt/3B,KAAOluJ,KAAKwthC,YAAY74vB,UACzCiuB,EAAY5iT,KAAKwthC,YAAYt/3B,IAAM8wM,EAAS7wM,UAAYnuJ,KAAKgkiC,sBACzDhkiC,KAAK+0gC,UAAUxiN,WAAavhyB,OAAOw4R,YAClCw1C,EAAS7wM,UAAY6wM,EAASjqE,aAAe/0R,KAAK+0gC,UAAUxzgC,MAAMwzR,aAAe/jQ,OAAOw4R,aACpFxpT,KAAK+0gC,UAAUxzgC,MAAMwzR,aAAe/0R,KAAKgkiC,uBAClDphvB,EAAYh/S,KAAKmgB,MAAM6+R,EAAY5iT,KAAK+0gC,UAAUxiN,YAAcvyzB,KAAK+0gC,UAAUxiN,WAC3Evzd,EAAS7wM,UAAY,IACrBnuJ,KAAK+0gC,UAAUxzgC,MAAM4E,MAAM+nJ,IAAMw/K,GAAW9qB,KAGpD,IAGI62T,EAQAhtlB,EAXAkkjB,EAAY3wkB,KAAKmoC,OAAOuz7B,kBAAkBiC,UAAUhtkB,OAAW/tG,EAAY5iT,KAAK+0gC,UAAUxiN,WAAc,EACxG8xO,EAAkBrkiC,KAAK+0gC,UAAUxiN,WAAavyzB,KAAK+0gC,UAAUwoB,aAC7Dj0C,EAAgB/89B,SAASvsB,KAAK+0gC,UAAUxzgC,MAAM4E,MAAM+nJ,IAAK,IAAM00J,EAEnE,GAAI5iT,KAAKwkiC,aACL/qb,EAAKz5mB,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,UAI7C4pM,EADoB,GAAG7omB,MAAMjR,KAAKK,KAAKmoC,OAAO+8kB,kBAAkB10mB,iBAAiB,OAC9D+b,SAASokjB,EAAS75jB,WAAY,MAGjD2+E,GAAQz1F,KAAK+0gC,UAAU1sgC,OAAQ,MAAM6/Q,UAAUh1P,SAAS28Y,MACxDp6U,GAAQz1F,KAAK+0gC,UAAU1sgC,OAAQ,MAAM6/Q,UAAUh1P,SAAS28Y,QACxDpjZ,EAAQgpE,GAAQz1F,KAAK+0gC,UAAU1sgC,OAAQ,MAAM8tnB,WAEjD,IAAI/lD,EAAWrkQ,GAAkBt/S,GAASgpE,GAAQz1F,KAAK+0gC,UAAUxzgC,MAAO,MAAM40nB,UAAY1pmB,EAE1F,GADAzsB,KAAK+0gC,UAAUto/B,MAAQ2jjB,GACnBrkQ,GAAkB0tS,GAAtB,CAGA,IAII96Q,EACA4nsB,EALA3g5B,EAAK6zd,EAAG3zmB,SAASymB,SAAS6jjB,EAASt5jB,WAAY,KAMnD,GALI9W,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,IAAMpD,KAAKmoC,OAAO+27B,cAActuX,kBACvF5wmB,KAAK+0gC,UAAU50M,WAAa5zyB,SAASq5H,EAAGtzH,aAAa,oBAAqB,KAI1EtyB,KAAKmoC,OAAOuz7B,kBAAkBiC,UAAUhtkB,SAAW3wZ,KAAKwkiC,aACxDxkiC,KAAKwmiC,mBAAmBxmiC,KAAK0miC,gBAAgBt2d,KAC7CzxO,EAAY3+V,KAAKmoC,OAAO677B,mBAAmBp+0B,IACjChhD,WAAW+5P,EAAUv7U,aAAgBkm+B,EAAgB+6C,GAC/DkC,EAAU,IAAI9kiC,KAAKk9V,EAAUj9V,WACzB1B,KAAK+0gC,UAAU5//B,QAAQ+yQ,UAAUh1P,SAAS28Y,KAC1C02nB,EAAQ3h8B,WAAW2h8B,EAAQnjhC,aAAepjB,KAAK+0gC,UAAUwoB,cAGzDgJ,EAAQ/h8B,gBAAgB8h8B,OAG3B,EACD3nsB,EAAY3+V,KAAKmoC,OAAO677B,mBAAmBp+0B,IACjCliJ,QAAQi7V,EAAUr8V,UAAYtC,KAAKs9hC,eAC7C3+rB,EAAUl8V,SAAS67/B,EAAWn7+B,WAAYm7+B,EAAWl7+B,aAAck7+B,EAAWj7+B,eAC9EkjhC,EAAU,IAAI9kiC,KAAKk9V,EAAUj9V,YACrB8iG,gBAAgB8h8B,IACnBtmiC,KAAK+0gC,UAAU5//B,QAAQ+yQ,UAAUh1P,SAAS28Y,MAC3C7va,KAAK+0gC,UAAUxzgC,MAAM2mR,UAAUh1P,SAAS28Y,OACxC02nB,EAAUlqE,IAAaA,IAAekqE,GAAU,IAEpD,IAAIhsiB,EAAUv6f,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMw75B,QAAW95+B,KAAKmoC,OAAO2h8B,sBACpE9p+B,KAAKmoC,OAAOuz7B,kBAAkBiC,UAAUhtkB,OAAUy/K,OAAW/skB,EAClErD,KAAK2miC,mBAAmBhosB,EAAW4nsB,EAAShsiB,EAChD,CACAv6f,KAAK+0gC,UAAU7+9B,MAAQ,IAAIz0C,MAAMk9V,GACjC3+V,KAAK+0gC,UAAU379B,IAAM,IAAI33C,MAAM8kiC,GAG/B,IAFA,IAAIxvgC,EAAQ/2B,KAAKsgiC,gBAAgBtgiC,KAAK+0gC,UAAU7+9B,MAAOl2C,KAAK+0gC,UAAU379B,IAAKp5C,KAAK+0gC,UAAUh++B,OAEjFznB,EAAK,EAAGs3hC,EADK,GAAGh2hC,MAAMjR,KAAKK,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiB,qBACnBlB,EAAKs3hC,EAAkBxjiC,OAAQkM,IAAM,CAEvF6jB,GADIhpB,EAAUy8hC,EAAkBt3hC,GAEpC,CACA,GAAItP,KAAK+9hC,UAAU36hC,OAAS,EAAG,CAC3B,GAAIpD,KAAK0kiC,gBAAkB1kiC,KAAKwkiC,eAAiBz4tB,GAAkB/rU,KAAK+0gC,UAAUh3C,YAAc/99B,KAAK+0gC,UAAUh3C,SAAU,CACrH,IAAI8oE,EAAmBt6gC,SAAUkpE,GAAQz1F,KAAK+0gC,UAAU1sgC,OAAQ,MAAOiqB,aAAa,aAAc,IAClGtyB,KAAK+9hC,UAAU13hC,SAAQ,SAAU6jC,GAE7B,GADA5qC,EAAMmliC,SAASr4hC,KAAKq9E,GAAO,CAAC,EAAGv/C,EAAM,MAAM,IACvCA,EAAK5qC,EAAM6oC,OAAOw+7B,YAAY5I,UAAW,CACzC7z7B,EAAK5qC,EAAM6oC,OAAOw+7B,YAAY5vzB,WAC1B,IAAIt1K,KAAKyoC,EAAK5qC,EAAM6oC,OAAOw+7B,YAAY5vzB,WAAWr1K,WAAamliC,EAAmBvniC,EAAMy3K,YAC5F,IAAIA,EAAY,IAAIt1K,KAAKyoC,EAAK5qC,EAAM6oC,OAAOw+7B,YAAY5vzB,YACnD21N,EAAU,IAAIjrY,KAAKs1K,EAAUnyE,WAAWmyE,EAAU3zJ,aAAe9jB,EAAMy1gC,UAAUwoB,eACrFrz/B,EAAK5qC,EAAM6oC,OAAOw+7B,YAAYj6lB,SAAWA,EACzCxiW,EAAK5qC,EAAM6oC,OAAOw+7B,YAAY5I,WAAY,CAC9C,CACJ,IACA/99B,KAAK+2K,UAAY8v3B,CACrB,CACA,GAAI7miC,KAAK0kiC,gBAAkB1kiC,KAAKwkiC,eAC3Bz4tB,GAAkB/rU,KAAK+0gC,UAAUh3C,WAAa/99B,KAAK+0gC,UAAUh3C,UAAY/99B,KAAKykiC,SAASrhiC,OAAS,EAAG,CACpGpD,KAAK+9hC,UAAY/9hC,KAAKykiC,SACtBzkiC,KAAKykiC,SAAW,GAChB,IAAI5sD,EAAapu5B,GAAO,CAAC,EAAGzpF,KAAK+0gC,UAAUh++B,MAAO,MAAM,GACxD/2B,KAAK+2K,UAAY8g0B,EAAW73+B,KAAKmoC,OAAOw+7B,YAAY5vzB,WAAWr1K,SACnE,CAEA,IADA,IAAIoliC,EAAgB/vgC,EAAM/2B,KAAKmoC,OAAOw+7B,YAAY5vzB,WAAWr1K,UAAY1B,KAAK+2K,UACrEgw3B,EAAU,EAAGA,EAAU/miC,KAAK+9hC,UAAU36hC,OAAQ2jiC,IAAW,CAC9D/miC,KAAKwstB,YAAYjgsB,SAASw6gC,EAAQjwhC,WAAY,KAC1C9W,KAAKgniC,mBAAmBhniC,KAAK+9hC,UAAUxxgC,SAASw6gC,EAAQjwhC,WAAY,KAAMgwhC,GAC9E,IAAIr4D,EAAWzu+B,KAAKyl/B,YAAYzl/B,KAAKwstB,YAAYjgsB,SAASw6gC,EAAQjwhC,WAAY,MAC9E,GAAI239B,GAAY,EAAG,CACf,IAAItk+B,EAAUnK,KAAK0miC,gBAAgBj4D,EAAUzu+B,KAAKwstB,YAAYjgsB,SAASw6gC,EAAQjwhC,WAAY,KAAK9W,KAAKmoC,OAAOw+7B,YAAY5I,WACxH/99B,KAAKwmiC,mBAAmBr8hC,EAASnK,KAAK+0gC,UAAU/ogC,aAAaugB,SAASw6gC,EAAQjwhC,WAAY,MAC1F9W,KAAKiniC,kBAAkBjniC,KAAKwstB,YAAYjgsB,SAASw6gC,EAAQjwhC,WAAY,KAAMiwhC,EAASt4D,EACxF,MAES1iqB,GAAkB/rU,KAAK+0gC,UAAU/ogC,aAAaugB,SAASw6gC,EAAQjwhC,WAAY,KAAK0d,aACjFrB,GAAOnzB,KAAK+0gC,UAAU/ogC,aAAaugB,SAASw6gC,EAAQjwhC,WAAY,KAG5E,CACJ,MAEI9W,KAAKiniC,kBAAkBlwgC,GAE3B/2B,KAAKg/hC,mBAAmBh/hC,KAAK+0gC,UAAU7+9B,MAAOl2C,KAAKwstB,YApFnD,CA1CA,CA+HJ,EACAs3U,EAAYnzhC,UAAU6o+B,WAAa,SAAUzi9B,GACzC,IAAI4v8B,EAAc3m+B,KAAKmoC,OAAOw+7B,YAC1Bz9oB,EAAY,GACZnyK,EAAYhgJ,EAAM4v8B,EAAY5vzB,WAC9B21N,EAAU31W,EAAM4v8B,EAAYj6lB,SAChC,GAAI2vlB,IAAe,IAAI569B,KAAKs1K,EAAUr1K,YAAc269B,IAAe,IAAI569B,KAAKirY,EAAQhrY,YAAa,CAG7F,IAFA,IAAIwliC,EAAqB7qE,IAAe,IAAI569B,KAAKs1K,EAAUr1K,YACvDyliC,EAAmB,IAAI1liC,KAAKyliC,EAAmBxliC,WAC1CyK,EAAI,EAAG+6hC,EAAqB,IAAIzliC,KAAKirY,EAAQhrY,WAAYyK,IAAK,CACnEg7hC,EAAmB,IAAI1liC,KAAK0liC,EAAiBzjiC,QAAQwjiC,EAAmB5kiC,UAAY,IACpF,IAAIm0+B,EAAWht5B,GAAO,CAAC,EAAG1yD,EAAO,MAAM,GACvC0/8B,EAAS9P,EAAY5vzB,WAAa,IAAIt1K,KAAKyliC,GAC3CzwD,EAAS9P,EAAYj6lB,SAAW,IAAIjrY,KAAK0liC,GACzCD,EAAqB,IAAIzliC,KAAKyliC,EAAmBxjiC,QAAQwjiC,EAAmB5kiC,UAAY,IACxF4mV,EAAU98U,KAAKqq+B,EACnB,CACA,IAAIhq9B,EAAQy8T,EAAU9lV,OAAS,EAC/B8lV,EAAU,GAAGy9oB,EAAY5vzB,WAAaA,EACtCmyK,EAAU38T,SAASE,EAAM3V,WAAY,KAAK6v9B,EAAYj6lB,SAAWA,CACrE,MAEIxjD,EAAU98U,KAAK2qB,GAEnB,OAAOmyT,CACX,EACA46sB,EAAYnzhC,UAAUq2hC,mBAAqB,SAAU98/B,EAAMk9/B,GACvD,IAAI3wD,EAAWht5B,GAAO,CAAC,EAAGv/C,EAAM,MAAM,IACjC6hS,GAAkB/rU,KAAK+0gC,UAAUh3C,WAAa/99B,KAAKmoC,OAAOuz7B,kBAAkBiC,UAAUhtkB,SACrF3wZ,KAAK0kiC,gBAAkBjuD,EAASz2+B,KAAKmoC,OAAOw+7B,YAAY5I,YACpD/99B,KAAK0kiC,iBAAmBjuD,EAASz2+B,KAAKmoC,OAAOw+7B,YAAY5I,aAC/D0Y,EAASz2+B,KAAKmoC,OAAOw+7B,YAAY5I,UAAY/99B,KAAK+0gC,UAAUh3C,UAEhE,IAAIspE,EAAc5wD,EAASz2+B,KAAKmoC,OAAOw+7B,YAAYj6lB,SAAShrY,UACxD+0+B,EAASz2+B,KAAKmoC,OAAOw+7B,YAAY5vzB,WAAWr1K,UAChD,GAAI+0+B,EAASz2+B,KAAKmoC,OAAOw+7B,YAAY5I,UAAW,CAC5C,IAAIupE,EAAe1jiC,KAAKC,KAAKujiC,EAAiB,OAC1CnkiC,EAAMW,KAAKC,KAAKwjiC,EAAc,OAC9Btw3B,EAAY,IAAIt1K,KAAKg1+B,EAASz2+B,KAAKmoC,OAAOw+7B,YAAY5vzB,YAC1D0/zB,EAASz2+B,KAAKmoC,OAAOw+7B,YAAY5vzB,WAAaslzB,IAAe,IAAI569B,KAAKs1K,EAAUrzK,QAAQqzK,EAAUz0K,UAAYgliC,KAC9G7wD,EAASz2+B,KAAKmoC,OAAOw+7B,YAAYj6lB,SAAW2vlB,IAAaoa,EAASz2+B,KAAKmoC,OAAOw+7B,YAAY5vzB,WAAY9zK,EAC1G,MAEIwz+B,EAASz2+B,KAAKmoC,OAAOw+7B,YAAY5vzB,WAC7B,IAAIt1K,KAAKg1+B,EAASz2+B,KAAKmoC,OAAOw+7B,YAAY5vzB,WAAWr1K,UAAY0liC,GACrE3wD,EAASz2+B,KAAKmoC,OAAOw+7B,YAAYj6lB,SAC7B,IAAIjrY,KAAKg1+B,EAASz2+B,KAAKmoC,OAAOw+7B,YAAY5vzB,WAAWr1K,UAAY2liC,GAEzE,OAAO5wD,CACX,EACAqtD,EAAYnzhC,UAAU80+B,YAAc,SAAU1u9B,GAC1C,IAAI0/8B,EAAWht5B,GAAO,CAAC,EAAG1yD,EAAO,MAAM,GACnC64X,EAAYyskB,IAAeoa,EAASz2+B,KAAKmoC,OAAOw+7B,YAAY5vzB,YAChE,GAAI/2K,KAAKmoC,OAAOuz7B,kBAAkBiC,UAAUhtkB,SAAW8llB,EAASz2+B,KAAKmoC,OAAOw+7B,YAAY5I,UAAW,CAC/F,IAAI/O,EAAYhv9B,KAAKmoC,OAAOyz7B,WAAW2nB,eACvC3zlB,EAAUprT,gBAAgBwq3B,EAAUtt9B,UAAY269B,IAAerN,GAAWtt9B,UAC9E,CACA,IAAIq1K,EAAY64O,EAAUluZ,UACtBstL,EAAQ,GAaZ,OALAA,EAAQ,KANJhvL,KAAKmoC,OAAOuz7B,kBAAkBiC,UAAUhtkB,QAAW8llB,EAASz2+B,KAAKmoC,OAAOw+7B,YAAY5I,UAC1ElujB,IAGAA,KAEU,eAAiB94P,EAAY,KACjD/2K,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,IACvD4rL,EAAQA,EAAQ,sBAAwBhvL,KAAK+0gC,UAAU50M,WAAa,MAExEng0B,KAAK2kiC,SAAW3kiC,KAAKmoC,OAAOhzB,QAAQykB,cAAco1J,GAC9C+8I,GAAkB/rU,KAAK2kiC,WACf,EAEL3kiC,KAAK2kiC,SAASxua,SACzB,EACA2ta,EAAYnzhC,UAAUs2hC,kBAAoB,SAAUlwgC,EAAOtK,EAAO2jjB,GAC9DpwkB,KAAKoz/B,cAAcjP,mBACnB,IAAIojD,EAAavniC,KAAKoz/B,cAAcvO,gBACpC,IAAK7k/B,KAAKmoC,OAAO+27B,cAActuX,gBAC3B,IAAK,IAAIzkmB,EAAI,EAAGA,EAAInM,KAAK+0gC,UAAU50M,WAAYh0zB,IACvCnM,KAAKoz/B,cAAc3Z,WAAWlt9B,SAASpgB,EAAE2K,WAAY,OACrDywhC,GAA0BvniC,KAAKoz/B,cAAc3Z,WAAWlt9B,SAASpgB,EAAE2K,WAAY,KAAK1T,QAIhG,IAAIokiC,EAAaxniC,KAAKmoC,OAAO+27B,cAActuX,gBAAkB22b,EAAavniC,KAAK+0gC,UAAU50M,WAGzF,MAFcng0B,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMw75B,QAC7C/tqB,GAAkB/rU,KAAKmoC,OAAO677B,mBAAmBhk+B,KAAK+0gC,UAAU1sgC,YACtDrI,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMw75B,OAC/C,KAAI2tD,GAAgB,EAChBh5D,EAAYzu+B,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMw75B,OAE9C95+B,KAAKmoC,OAAO6k9B,eAAeht/B,KAAKoz/B,cAAc3Z,WAAWlt9B,SAASi7gC,EAAW1whC,WAAY,KAAMul9B,IAEjGr89B,KAAKmoC,OAAO677B,mBAAmBj4pB,GAAkBt/S,GAASzsB,KAAK+0gC,UAAU1sgC,OAASrI,KAAK2kiC,YAHvF54tB,GAAkBt/S,GAASzsB,KAAK+0gC,UAAUto/B,MAAQ86gC,EAAan3d,EAAWm3d,EAI1EG,EAAc1niC,KAAKw5+B,WAAWzi9B,GAC9Bq/8B,EAAWp2+B,KAAKmoC,OAAOu87B,UAAU0W,oBAAoBrk9B,IAAU2wgC,EAAYtkiC,OAAS,GAChC,aAApDpD,KAAKmoC,OAAOi07B,cAAcwf,sBAAuC,CAAC7k9B,GAAS2wgC,EAC/E,IAASv7hC,EAAI,EAAGA,EAAIiq+B,EAAShz+B,OAAQ+I,IAAK,CACtC,GAAIA,EAAI,EAAG,CACP,IAAIw3b,EAAc,6BAAgC04hB,IAAe+Z,EAAS7p9B,SAASpgB,EAAE2K,WAAY,KAAK9W,KAAKmoC,OAAOw+7B,YAAY5vzB,YAAYr1K,UAAY,KAClJ1B,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,IACvDugc,EAAcA,EAAYvqb,OAAO,wBAA0BpZ,KAAK+0gC,UAAU50M,WAAa,OAE3F,IAAIwiO,EAAU3iiC,KAAKmoC,OAAOhzB,QAAQykB,cAAc+pa,GAC5Cg/lB,GACAl0D,GAAsB,EACtBg5D,EAAe9E,EAAQxsa,WAGvBs4W,GAAY,CAEpB,CACA,GAAIA,GAAY,EAAG,CACf,IAAIt3jB,EAASn3a,KAAKoz/B,cAAchO,eAAehP,EAAS7p9B,SAASpgB,EAAE2K,WAAY,KAAM239B,EAAU+4D,GAC3FhwD,EAASrgkB,EAAOn3a,KAAKoz/B,cAAcjgyB,OAAOp8C,WAC1C0g0B,EAAOtgkB,EAAOn3a,KAAKoz/B,cAAcjgyB,OAAOu5K,SACxC63mB,EAAYvk/B,KAAKmoC,OAAOuz7B,kBAAkBiC,UAAUhtkB,OAAS3wZ,KAAKoz/B,cAAc/7U,UAAUmgU,EAAQC,GAClGz3+B,KAAK+0gC,UAAU5//B,QAAQ4/Q,aACvBu4P,EAAWtthB,KAAKmoC,OAAOuz7B,kBAAkBiC,UAAUhtkB,OACnD3wZ,KAAKoz/B,cAAc5N,YAAYhO,EAAQ/I,EAAU+4D,GAAcxniC,KAAK+0gC,UAAU5//B,QAAQytS,UAC1F,GAAImpB,GAAkBt/S,GACR,IAANtgB,GACAnM,KAAK+0gC,UAAUxzgC,MAAM4E,MAAM+nJ,IAAMw/K,GAAW4/M,GAC5CtthB,KAAK+0gC,UAAUxzgC,MAAM4E,MAAMyiJ,OAAS8kL,GAAW62qB,IAG/Cvk/B,KAAK2niC,oBAAoBxwnB,EAAQswnB,EAAcn6gB,EAAUi3d,OAG5D,CACD,IAAI2D,EAAWlo/B,KAAK+0gC,UAAU9mN,UAC9B,GAAIl3xB,EAAM/2B,KAAKmoC,OAAOw+7B,YAAY5I,UAAW,CACzCzwc,EAAWtthB,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KAAsBjtH,UACzE2hsB,EAAYvk/B,KAAKmmiC,uBACjB,IAAI75lB,EAAWv1a,EAAM/2B,KAAKmoC,OAAOw+7B,YAAYj6lB,SAAShrY,UAClDq1B,EAAM/2B,KAAKmoC,OAAOw+7B,YAAY5vzB,WAAWr1K,UACzCkmiC,EAAmBhkiC,KAAKC,KAAKyoc,EAAW,OACxCs7lB,GAAoB,IACpB1/C,EAAY0/C,EAAmB5niC,KAAK+0gC,UAAU9mN,UAEtD,CACIjuzB,KAAK+0gC,UAAU/ogC,aAAaugB,SAASE,EAAM3V,WAAY,OAC7C,IAAN3K,GACAnM,KAAK+0gC,UAAU/ogC,aAAaugB,SAASE,EAAM3V,WAAY,KAAK3Q,MAAM+nJ,IAAMw/K,GAAW4/M,GACnFtthB,KAAK+0gC,UAAU/ogC,aAAaugB,SAASE,EAAM3V,WAAY,KAAK3Q,MAAMyiJ,OAAS8kL,GAAW62qB,GACtFvk/B,KAAK+0gC,UAAU/ogC,aAAaugB,SAASE,EAAM3V,WAAY,KAAK3Q,MAAMqY,MAAQkvT,GAAWw6qB,GACrFlo/B,KAAK+0gC,UAAU/ogC,aAAaugB,SAASE,EAAM3V,WAAY,KAAK3Q,MAAMw9H,KAAO+pM,GAAW,IAGpF1tU,KAAK2niC,oBAAoBxwnB,EAAQswnB,EAAcn6gB,EAAUi3d,GAGrE,CACJ,CACJ,CAlEqB,CAoE7B,EACAu/C,EAAYnzhC,UAAUg3hC,oBAAsB,SAAUxwnB,EAAQ1qZ,EAAOyhI,EAAKtF,GAGtE,GAFgBuuR,EAAOn3a,KAAKmoC,OAAOw+7B,YAAY5vzB,WAAWr1K,YAC5Cy1a,EAAOn3a,KAAKmoC,OAAOw+7B,YAAYj6lB,SAAShrY,UAC3B,CACvB,IAAI+i/B,EAAqBzk/B,KAAKoz/B,cAC1B1M,yBAAyBvvkB,GAAQ,EAAOA,EAAOs+L,UAAWz1mB,KAAK+0gC,UAAU50M,YAC7E33iB,GAAS,CAACi8tB,GAAqB,CAAC50kB,IAAyB,oBACzD7kF,GAAkBy5pB,EAAoB,CAClC,MAAS,OACT,OAAU771B,EAAS,KACnB,IAAOsF,EAAM,KACb,OAAU,QAEQ,GAAGt9I,MAAMjR,KAAKK,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiB,IAAMq/Z,MAC/DtjZ,SAASE,EAAM3V,WAAY,KAAK4a,YAAY+y9B,EAChE,CACJ,EACAq/C,EAAYnzhC,UAAUwp+B,iBAAmB,WACrC,IACI7k8B,EAAII,EADJp2C,EAAQU,KAERu/9B,EAAcv/9B,KAAKmoC,OAAOyz7B,WAAW2D,YAEzC,IADCjq7B,EAAKt1C,KAAKmoC,OAAOu87B,UAAU8Q,OAAOpp+B,KAAK+M,MAAMm8B,EAAIt1C,KAAKmoC,OAAOyz7B,WAAW2D,YAAYt59B,KAAI,SAAU/F,GAAQ,OAAQA,CAAM,KACrHF,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,EAAG,CAC1DpD,KAAKmoC,OAAOu87B,UAAU8Q,MAAQ,GAC9B,IAAIlrd,EAAYtqhB,KAAKmoC,OAAOyh8B,aAAaC,kBACrCzj+B,QAAO,SAAU8xF,GAAO,OAAOA,EAAIiouB,aAAe7g0B,EAAMy1gC,UAAU50M,UAAY,IAClFo/J,EAAcj1c,EAAU,GAAGi1c,aAC1B7p7B,EAAK11C,KAAKmoC,OAAOu87B,UAAU8Q,OAAOpp+B,KAAK+M,MAAMu8B,EAAI6p7B,EAAYt59B,KAAI,SAAU/F,GAAQ,OAAQA,CAAM,IACtG,CACA,OAAOq/9B,CACX,EACAukE,EAAYnzhC,UAAUg2hC,mBAAqB,SAAU/2oB,EAAWC,EAASugL,GACrEpwkB,KAAKmoC,OAAOu87B,UAAU8Q,MAAQ,GAC9B,IAAIz+8B,EAAQ/2B,KAAKsgiC,gBAAgB1woB,EAAWC,EAAS7vZ,KAAK+0gC,UAAUh++B,OAChEwo8B,EAAcv/9B,KAAKm6+B,mBACnB/+2B,EAASp7H,KAAKmoC,OAAOu87B,UAAU8U,WAAWzi9B,EAAOwo8B,GACjDvwyB,EAAQ,+BAAkC5zD,EAAO,GAAGp7H,KAAKmoC,OAAOw+7B,YAAY5vzB,WAAWr1K,UAAY,KACnG1B,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,IAAMpD,KAAKmoC,OAAO+27B,cAActuX,kBACvF5hb,EAAQA,EAAM51K,OAAO,wBAA0BpZ,KAAK+0gC,UAAU50M,WAAa,OAE/E,IAAI9xP,EAAO,GAAGz9jB,MAAMjR,KAAKK,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiBw+K,IAC9D,GAAIq/Y,EAAKjrkB,OAAS,IAAM2oU,GAAkBqkQ,GAAW,CACjD,IAAI+lD,EAAapqT,GAAkBqkQ,GAAuB/B,EAAK,GAAG8nD,UAAnB/lD,EAC/CpwkB,KAAKwmiC,mBAAmBxmiC,KAAK0miC,gBAAgBvwa,IAE7Cn2nB,KAAK+0gC,UAAUxzgC,MAAM4E,MAAMqY,MAAQkvT,GAAWtyM,EAAO,GAAGlxF,KAAKtf,MAAQ5qB,KAAK+0gC,UAAU9mN,UACxF,CACJ,EAEA61O,EAAYnzhC,UAAU81hC,aAAe,SAAUpmiC,GAC3C,IAAI+vkB,EAAW36e,GAAQz1F,KAAK+0gC,UAAU1sgC,OAAQ,MAAM8tnB,UACpD,GAAI1giB,GAAQz1F,KAAK+0gC,UAAU1sgC,OAAQ,IAAMwna,OACpCp6U,GAAQz1F,KAAK+0gC,UAAUxzgC,MAAO,IAAMsua,KAAuC,CAC5ErnJ,GAAS,CAACxoR,KAAK+0gC,UAAUxzgC,OAAQsua,KACjC7va,KAAKwmiC,mBAAmBxmiC,KAAK0miC,gBAAgBt2d,IAC7CpwkB,KAAK+0gC,UAAUh3C,UAAW,EAC1B,IAAIiqB,EAAcho/B,KAAKmmiC,uBACnBniD,EAAgB,GAAGpz+B,MAAMjR,KAAKK,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiB,IAAMq/Z,IAAyB,iBACtG,GAAIm0kB,EAAc,GAAGjvtB,aAAeiztB,EAChC,IAAK,IAAI14+B,EAAK,EAAGu4hC,EAAkB7jD,EAAe10+B,EAAKu4hC,EAAgBzkiC,OAAQkM,IAAM,CACnEu4hC,EAAgBv4hC,GACtBnJ,MAAMyiJ,QAAWo/1B,EAAc,GAAK,GAAM,IACtD,CAEJh9pB,GAAkBhrV,KAAK+0gC,UAAUxzgC,MAAO,CACpCid,MAAOkvT,GAAW1tU,KAAK+0gC,UAAU9mN,WACjCrlqB,OAAQ8kL,GAAWs6qB,GACnB951B,IAAKw/K,GAAW1tU,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KAAsBjtH,YAEtF,CACA,GAAIntN,GAAQz1F,KAAK+0gC,UAAU1sgC,OAAQ,IAAMwna,OACpCp6U,GAAQz1F,KAAK+0gC,UAAUxzgC,MAAO,IAAMsua,KAAwB,CAC7D5nJ,GAAY,CAACjoR,KAAK+0gC,UAAUxzgC,OAAQsua,KACpC7va,KAAKwmiC,mBAAmBxmiC,KAAK0miC,gBAAgBt2d,IAC7CpwkB,KAAK+0gC,UAAUh3C,UAAW,EAE1B,IAAIn10B,EAAkD,IAAxC5oJ,KAAK+0gC,UAAU5//B,QAAQ4/Q,aAAsB/0R,KAAK+0gC,UAAUns3B,OAAS5oJ,KAAK+0gC,UAAU5//B,QAAQ4/Q,aAC1Gi2D,GAAkBhrV,KAAK+0gC,UAAUxzgC,MAAO,CACpCoiI,KAAM+pM,GAAW,GACjB9kL,OAAQ8kL,GAAW9kL,GACnBpqI,MAAOkvT,GAAW1tU,KAAK+0gC,UAAU9mN,YAEzC,CACJ,EACA61O,EAAYnzhC,UAAUo1hC,sBAAwB,SAAU1liC,GACpD,KAAI0rU,GAAkB1rU,EAAEgI,SAAYhI,EAAEgI,QAAU0jU,GAAkBt2O,GAAQp1F,EAAEgI,OAAQ,QAC/EhI,EAAEgI,QAA+B,QAArBhI,EAAEgI,OAAO+/B,SAD1B,CAIA,IAAIqu8B,EAAWht5B,GAAO,CAAC,EAAGzpF,KAAK+0gC,UAAUh++B,MAAO,MAAM,GAClDg1S,GAAkB/rU,KAAKmoC,OAAOk3/B,gBAC9Br/hC,KAAKu/hC,qBAET,IAAI+G,EAAgBjqE,IAAsBoa,EAASz2+B,KAAKmoC,OAAOw+7B,YAAYj6lB,UACvE2vlB,IAAsBoa,EAASz2+B,KAAKmoC,OAAOw+7B,YAAY5vzB,YACvDnxB,EAAKnwD,GAAQz1F,KAAK+0gC,UAAU1sgC,OAAQ,MACxC,IAAK0jU,GAAkBnmL,GAAK,CACxB,IAAI6zd,EAAK7zd,EAAGiwI,cACZ71R,KAAK+0gC,UAAUto/B,MAASgtlB,EAAG9oC,SAAW8oC,EAAG3zmB,SAAS1C,OAAUwiJ,EAAGuwe,UAE/Dvwe,EADgB,GAAGh1I,MAAMjR,KAAKK,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiB,IAAMq/Z,MAC1D7va,KAAK+0gC,UAAUto/B,OAC9B,IAAI4kF,EAAcrxG,KAAKmoC,OAAO677B,mBAAmBp+0B,GACjD,IAAKmmL,GAAkB16N,GAAc,CAC7BrxG,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,IACvDpD,KAAK+0gC,UAAU50M,WAAa5zyB,SAASq5H,EAAGtzH,aAAa,oBAAqB,KAE9E,IAAIogE,EAAa,IAAIjxF,KAAK4vG,EAAY3tG,QAAQ2tG,EAAY/uG,UAAYtC,KAAKs9hC,gBACvE3+rB,EAAY,IAAIl9V,KAAKixF,EAAWhxF,WAChColiC,EAAgBzqE,IAAsBoa,EAASz2+B,KAAKmoC,OAAOw+7B,YAAY5vzB,YACvEslzB,IAAsBA,IAAe,IAAI569B,MAAMg1+B,EAASz2+B,KAAKmoC,OAAOw+7B,YAAY5vzB,cACpF4nL,EAAUn6P,gBAAgBsi8B,GAC1B,IAAIP,EAAU,IAAI9kiC,KAAKk9V,EAAUj9V,WACjC6kiC,EAAQ/h8B,gBAAgB8h8B,GACxBtmiC,KAAK+0gC,UAAU7+9B,MAAQ,IAAIz0C,KAAKk9V,EAAUj9V,WAC1C1B,KAAK+0gC,UAAU379B,IAAM,IAAI33C,KAAK8kiC,EAAQ7kiC,UAC1C,CACJ,CACA,IAAIq1B,EAAQ/2B,KAAKsgiC,gBAAgBtgiC,KAAK+0gC,UAAU7+9B,MAAOl2C,KAAK+0gC,UAAU379B,IAAKp5C,KAAK+0gC,UAAUh++B,OAC1F,GAAIg1S,GAAkB/rU,KAAKmoC,OAAOk3/B,eAE9B,IADA,IACS/vhC,EAAK,EAAGqxhC,EADG,GAAG/vhC,MAAMjR,KAAKK,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiB,IAAMq/Z,MAC3Bvga,EAAKqxhC,EAAgBv9hC,OAAQkM,IAAM,CAEjF6jB,GADcwtgC,EAAgBrxhC,GAElC,CAEJ,GAAItP,KAAK+9hC,WAAa/9hC,KAAK+9hC,UAAU36hC,OAAS,EAAG,CAC7C,IAAI2zK,EAAYslzB,IAAe,IAAI569B,KAAKs1B,EAAM/2B,KAAKmoC,OAAOw+7B,YAAY5vzB,aAClE+v3B,EAAgB/v3B,EAAUr1K,UAAY1B,KAAK+2K,UACf,iBAA5B/2K,KAAKmoC,OAAOw/W,aAAkC3nZ,KAAKmoC,OAAOm2C,MAAMgsc,UAAUlnhB,OAAS,IACnF0jiC,EAAqF,IAApE/v3B,EAAU32K,cAAgB,IAAIqB,KAAKzB,KAAK+2K,WAAW32K,eACpE0miC,GAAiB,IAAIrliC,KAAKzB,KAAK+2K,WAAW52K,WAC1C2miC,GAAiB/v3B,EAAU52K,YAE/B,IAAK,IAAIssB,EAAQ,EAAGA,EAAQzsB,KAAK+9hC,UAAU36hC,OAAQqpB,IAC/CzsB,KAAKwstB,YAAYjgsB,SAASE,EAAM3V,WAAY,KACxC9W,KAAK8niC,2BAA2B9niC,KAAK+9hC,UAAUxxgC,SAASE,EAAM3V,WAAY,KAAMgwhC,GACpD,iBAA5B9miC,KAAKmoC,OAAOw/W,YACZ3nZ,KAAKugiC,6BAA6BvgiC,KAAKwstB,YAAYjgsB,SAASE,EAAM3V,WAAY,MAG9E9W,KAAK0giC,uBAAuB1giC,KAAKwstB,YAAYjgsB,SAASE,EAAM3V,WAAY,KAGpF,KAEoC,iBAA5B9W,KAAKmoC,OAAOw/W,YACZ3nZ,KAAKugiC,6BAA6BxpgC,GAGlC/2B,KAAK0giC,uBAAuB3pgC,EA7DpC,CAgEJ,EACA+sgC,EAAYnzhC,UAAUm3hC,2BAA6B,SAAU59/B,EAAMk9/B,GAC/D,IAAI3wD,EAAWht5B,GAAO,CAAC,EAAGv/C,EAAM,MAAM,GAClCo8/B,EAAgB7vD,EAASz2+B,KAAKmoC,OAAOw+7B,YAAYj6lB,SAAShrY,UAC1D+0+B,EAASz2+B,KAAKmoC,OAAOw+7B,YAAY5vzB,WAAWr1K,UAC5CkuZ,EAAY,IAAInuZ,KAAKg1+B,EAASz2+B,KAAKmoC,OAAOw+7B,YAAY5vzB,YAC1D,GAAgC,iBAA5B/2K,KAAKmoC,OAAOw/W,aAAkC3nZ,KAAKmoC,OAAOm2C,MAAMgsc,UAAUlnhB,OAAS,EACnFqz+B,EAASz2+B,KAAKmoC,OAAOw+7B,YAAY5vzB,WAAa,IAAIt1K,KAAKmuZ,EAAU1tZ,SAAS0tZ,EAAUzvZ,WAAainiC,QAEhG,CACD,IAAIE,EAAe1jiC,KAAKC,KAAKujiC,EAAiB/qE,KAC9Coa,EAASz2+B,KAAKmoC,OAAOw+7B,YAAY5vzB,WAAa,IAAIt1K,KAAKmuZ,EAAUlsZ,QAAQksZ,EAAUttZ,UAAYgliC,GACnG,CAGA,OAFA7wD,EAASz2+B,KAAKmoC,OAAOw+7B,YAAYj6lB,SAC7B,IAAIjrY,KAAKg1+B,EAASz2+B,KAAKmoC,OAAOw+7B,YAAY5vzB,WAAWr1K,UAAY4kiC,GAC9D7vD,CACX,EACAqtD,EAAYnzhC,UAAUm1hC,sBAAwB,SAAUzliC,GACpD,IAMIkjY,EANAkzmB,EAAWht5B,GAAO,CAAC,EAAGzpF,KAAK+0gC,UAAUh++B,MAAO,MAAM,GAClDuvgC,EAAgBjqE,IAAsBoa,EAASz2+B,KAAKmoC,OAAOw+7B,YAAYj6lB,UACvE2vlB,IAAsBoa,EAASz2+B,KAAKmoC,OAAOw+7B,YAAY5vzB,YACvD4rI,EAAa3iT,KAAKmoC,OAAOkwT,UAAYz0V,KAAK8Y,IAAI1c,KAAK+0gC,UAAUxzgC,MAAMohT,YAAc3iT,KAAK+0gC,UAAUxzgC,MAAM4uQ,YACtG5jP,SAASvsB,KAAK+0gC,UAAUxzgC,MAAM4E,MAAMw9H,KAAM,IAC9Cg/K,EAAa/+S,KAAKiG,MAAM84S,EAAa/+S,KAAKwpY,MAAMptY,KAAK+0gC,UAAU9mN,YAAcjuzB,KAAK+0gC,UAAU9mN,UAExFjuzB,KAAKmoC,OAAOkwT,YACZkrC,EAAc3/X,KAAK8Y,IAAI6P,SAASvsB,KAAK+0gC,UAAUxzgC,MAAM4E,MAAMy9H,MAAO,KAClE5jI,KAAK+0gC,UAAUxzgC,MAAM4E,MAAMy9H,MAAQ8pM,GAAW61D,IAElD5gF,EAAa3iT,KAAK6lc,eAAeljJ,EAAY4gF,GAC7C,IAAI6sM,EAAWpwkB,KAAK+niC,eAAeplvB,GAC/Bq8C,EAAWh/V,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KACnDo1nB,EAAmBjmsB,EAASvqE,wBAAwB7wJ,MACpDok6B,EAAahoiC,KAAKmoC,OAAOyz7B,WAAWgJ,mBAAqB5k+B,KAAKmoC,OAAOkwT,WACrEr4V,KAAK+0gC,UAAU/u3B,MAAQhmJ,KAAK+0gC,UAAUxzgC,MAAMkzR,wBAAwB7wJ,QACnE5jI,KAAKukiC,qBAAuBvkiC,KAAK+0gC,UAAU/u3B,MAAQi/4B,GACpDgD,EAAWjoiC,KAAKmoC,OAAOk3/B,cAAiBrgsB,EAAS/wM,WAAa+wM,EAASr8C,WAAa,GACnF3iT,KAAK4kiC,gBAAiBoD,GAAgBhoiC,KAAKskiC,iBAC5CtkiC,KAAK4kiC,eAAgB,GAEzB,IAAIsD,EAAatkiC,KAAKiG,OAAO7J,KAAK+0gC,UAAU/u3B,MAAQhmJ,KAAK+0gC,UAAUxzgC,MAAMkzR,wBAAwB9wJ,KAAOsk6B,GAAWjoiC,KAAK+0gC,UAAU9mN,WAC9HjuzB,KAAKmoC,OAAOkwT,YACZ6vsB,EAAatkiC,KAAK8Y,IAAI9Y,KAAKiG,OAAO7J,KAAK+0gC,UAAU/u3B,MAAQhmJ,KAAK+0gC,UAAUxzgC,MAAMkzR,wBAAwB7wJ,OAClG5jI,KAAK+0gC,UAAU9mN,YAAc,GAEjCjuzB,KAAKikiC,iBAAmB,GACxBjkiC,KAAKmoiC,YAAY9niC,EAAGo2+B,EAAU9zrB,EAAYulvB,GAE9C,IAAIzub,EAAKz5mB,KAAKmoC,OAAO+8kB,kBAAkBtrlB,cAAc,MACjDnN,EAAQzsB,KAAKooiC,sBAAsBh4d,EAAU83d,EAAYzub,GAC7DhtlB,EAAQA,EAAQ,EAAI,EAAIA,EACxB,IAAI6x+B,EAAat+/B,KAAKkkiC,aAAe,IAAIziiC,KAAKzB,KAAKqliC,oBAAoB5rD,WAAWlt9B,SAASE,EAAM3V,WAAY,KAAKpV,WAC9G1B,KAAKmoC,OAAO677B,mBAAmBvqX,EAAG3zmB,SAASymB,SAASE,EAAM3V,WAAY,MAC1E,GAAI9W,KAAKskiC,eAAgB,CACrB,IAAI+D,EAAYroiC,KAAKsoiC,aAAa7ub,EAAIhtlB,GACtC,GAAkB,IAAd47gC,EAAiB,CACjB,IAAI/7lB,EAAW1oc,KAAKmgB,MAAMskhC,EAAYroiC,KAAKokiC,gBAC3C9lC,EAAW155B,WAAW055B,EAAWl7+B,aAAgBkpb,EAAWtsc,KAAK+0gC,UAAUvnsB,UACvExtU,KAAK4kiC,eAAiBoD,EACtB1pC,EAAW955B,iBAAkB8h8B,GAG7BhoC,EAAW155B,WAAW055B,EAAWl7+B,aAAepjB,KAAKk/iB,QAE7D,MAEIo/c,EAAat+/B,KAAK+0gC,UAAU7+9B,KAEpC,MAEI,GAAIl2C,KAAK4kiC,eAAiBoD,EAAY,CAClC,IAAIlqhC,EAAU9d,KAAKmkiC,qBA1hCb,KA0hCsDnkiC,KAAK+0gC,UAAUwoB,aAC3Ej/B,EAAW155B,WAAW055B,EAAWl7+B,aAAetF,GAChDwg/B,EAAW955B,iBAAkB8h8B,GACzBhoC,EAAW58/B,YAAc269B,IAAeiiC,GAAY58/B,WAAyC,IAA5B48/B,EAAWl7+B,cAAwC,IAAlBkjhC,GAClGhoC,EAAW155B,YAAY9mF,EAE/B,MAEIwg/B,EAAW155B,WAAW055B,EAAWl7+B,aAC5BpjB,KAAKikiC,kBAAoBjkiC,KAAKmkiC,qBAniC7B,KAmiCsEnkiC,KAAK+0gC,UAAUwoB,eAInG,GADAj/B,EAAat+/B,KAAKw+hC,sBAAsBlgC,GACpCt+/B,KAAKmkiC,qBAAsB,CAC3B,IAAIoE,EAAW9xD,EAASz2+B,KAAKmoC,OAAOw+7B,YAAY5vzB,WAChDun1B,EAAW77/B,SAAS8liC,EAASplhC,WAAYolhC,EAASnlhC,aAAcmlhC,EAASllhC,aAC7E,CACA,GAAIrjB,KAAKmoC,OAAOk3/B,cAAe,CAC3B,IAAI52D,EAAazo+B,KAAKmoC,OAAO677B,mBAAmB3j+B,EAAEgI,QAClD,IAAK0jU,GAAkB08pB,GACnB,GAAKzo+B,KAAKmoC,OAAOuz7B,kBAAkBiC,UAAUhtkB,QAAuC,kBAA5B3wZ,KAAKmoC,OAAOw/W,YAKhE22mB,EAAa71B,MALqF,CAC9F8/D,EAAW9xD,EAASz2+B,KAAKmoC,OAAOw+7B,YAAY5vzB,WAChDun1B,EAAa,IAAI78/B,KAAKgn+B,EAAWhm+B,SAAS8liC,EAASplhC,WAAYolhC,EAASnlhC,aAAcmlhC,EAASllhC,cACnG,CAKR,CACA,IAAIk7+B,EAAW,IAAI98/B,KAAK68/B,EAAW58/B,WACnC68/B,EAAS/55B,gBAAgB8h8B,GACzB,IAAIzvD,EAAa,CAAC72+B,KAAKsgiC,gBAAgBhiC,EAAYC,EAAUv+/B,KAAK+0gC,UAAUh++B,QAC5E,GAAI/2B,KAAK+9hC,UAAU36hC,OAAS,EAAG,CAE3B,IADA,IAAI0jiC,EAAgBjwD,EAAW,GAAG72+B,KAAKmoC,OAAOw+7B,YAAY5vzB,WAAWr1K,UAAY1B,KAAK+2K,UAC7E5qK,EAAI,EAAGA,EAAInM,KAAK+9hC,UAAU36hC,OAAQ+I,IACvCnM,KAAKwstB,YAAYjgsB,SAASpgB,EAAE2K,WAAY,KACpC9W,KAAKgniC,mBAAmBhniC,KAAK+9hC,UAAUxxgC,SAASpgB,EAAE2K,WAAY,KAAMgwhC,GAE5EjwD,EAAa72+B,KAAKwstB,WACtB,CACA,IAAK,IAAIuR,EAAY,EAAGA,EAAY84Q,EAAWzz+B,OAAQ26tB,IAAa,CAChE,IAAI/xtB,EAAehM,KAAK+9hC,UAAU36hC,OAAS,EAAIpD,KAAK+0gC,UAAU/ogC,aAAaugB,SAASwxsB,EAAUjntB,WAAY,KAAO9W,KAAK+0gC,UAAUxzgC,MAChI,GAAIwqU,GAAkB/rU,KAAKmoC,OAAOk3/B,eAAgB,CAC9C,IAAImJ,EAAWxoiC,KAAKqliC,oBAAoB7rD,WAAW3C,EAAWtq9B,SAASwxsB,EAAUjntB,WAAY,KAAM9W,KAAKqliC,oBAAoB5rD,YACxHvwpB,EAAYs/sB,EAAS,GAAGt+/B,KACxB6sI,EAAY/2K,KAAKqliC,oBAAoB/4C,aAAak8C,EAAS,GAAIt/sB,GAC/DwjD,EAAU1sY,KAAKqliC,oBAAoBt4C,WAAWy7C,EAAS,GAAIt/sB,GAE3D1qU,EAAQxe,KAAKqliC,oBAAoBp8C,cAAcly0B,EAAW21N,EAAS+pmB,EAASz2+B,KAAKmoC,OAAOw+7B,YAAY5I,UAAW70oB,EAAUt+T,OAEzH3nB,EAAMjD,KAAKmoC,OAAO6k9B,eAAeht/B,KAAKqliC,oBAAoB5rD,WAAYpd,IAAe,IAAI569B,KAAKs1K,EAAUr1K,aAC5GuB,EAAMA,EAAM,EAAI,EAAIA,EACpB,IAAI0gI,EAAO3jI,KAAKqliC,oBAAoBli6B,YAAY4zC,EAAW21N,EAAS+pmB,EAASz2+B,KAAKmoC,OAAOw+7B,YAAY5I,UAAW969B,GAC5GjD,KAAKmoC,OAAOkwT,UACZrsV,EAAa7F,MAAMy9H,MAAQ8pM,GAAW/pM,GAGtC33H,EAAa7F,MAAMw9H,KAAO+pM,GAAW/pM,GAEpC3jI,KAAKukiC,oBACNv4hC,EAAa7F,MAAMqY,MAAQkvT,GAAWlvT,GAE9C,CACIxe,KAAKmoC,OAAOuz7B,kBAAkBp94B,MAAMgsc,UAAUlnhB,OAAS,GACvDpD,KAAKyoiC,kCAAkCpoiC,EAAG2L,GAE9ChM,KAAK+0gC,UAAU7+9B,MAAQ,IAAIz0C,KAAK68/B,EAAW58/B,WAC3C1B,KAAK+0gC,UAAU379B,IAAM,IAAI33C,KAAK88/B,EAAS78/B,WACvC1B,KAAKg/hC,mBAAmBh/hC,KAAK+0gC,UAAU7+9B,MAAOl2C,KAAKwstB,YACvD,CACJ,EACAs3U,EAAYnzhC,UAAUk1b,eAAiB,SAAUljJ,EAAY4gF,GACzD,GAAIvjY,KAAKwthC,YAAY7p5B,MAAQ3jI,KAAKwthC,YAAY5p5B,MAAO,CACjD,IAAI8k6B,EAAU1oiC,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KAClD7va,KAAKmoC,OAAOkwT,WACZkrC,EAAcmlqB,EAAQv4xB,YAAcu4xB,EAAQz64B,WACxCjuJ,KAAKwthC,YAAY5p5B,MACjB2/P,EAAeA,EAAcmlqB,EAAQv4xB,YAAcnwQ,KAAK+0gC,UAAUxzgC,MAAM4uQ,aACnEnwQ,KAAK+0gC,UAAUxzgC,MAAM4uQ,YAAcnwQ,KAAK+jiC,uBAG7CxgqB,GAA4BvjY,KAAK+jiC,sBACf/jiC,KAAK+jiC,sBAAwB2E,EAAQt4xB,cACnDpwQ,KAAK+0gC,UAAUxzgC,MAAM4E,MAAMqY,MACvBkvT,GAAW1tU,KAAK+0gC,UAAUxzgC,MAAM4uQ,YAAcnwQ,KAAK+jiC,qBAAuB/jiC,KAAK+0gC,UAAU9mN,WAC7F1qb,EAAemlqB,EAAQz64B,WAAay64B,EAAQt4xB,aAGhD27D,GAAkB/rU,KAAKmoC,OAAOk3/B,iBAC9Br/hC,KAAK+0gC,UAAUxzgC,MAAM4E,MAAMw9H,KAAO+pM,GAAW61D,MAI7CvjY,KAAKwthC,YAAY7p5B,MACjBg/K,EAAa+lvB,EAAQz64B,WAAajuJ,KAAK+jiC,qBAAuB/jiC,KAAK+0gC,UAAU9mN,UACzEy6O,EAAQz64B,WAAay64B,EAAQv4xB,aAAeu4xB,EAAQv4xB,YACpDu4xB,EAAQz64B,WAAay64B,EAAQz64B,WAAa,EAED,IAApCjuJ,KAAK+0gC,UAAUxzgC,MAAMohT,aAC1BA,EAAa+lvB,EAAQz64B,aAIzB00J,EAAc+lvB,EAAQz64B,WAAay64B,EAAQv4xB,YACvCnwQ,KAAK+0gC,UAAUxzgC,MAAM4uQ,aAAgBnwQ,KAAK+0gC,UAAUxzgC,MAAM4uQ,YAAcnwQ,KAAK+jiC,sBAErFphvB,EAAaA,EAAa,EAAI,EAAIA,EAC9BopB,GAAkB/rU,KAAKmoC,OAAOk3/B,iBAC9Br/hC,KAAK+0gC,UAAUxzgC,MAAM4E,MAAMw9H,KAAO+pM,GAAW/qB,IAGzD,CACA,OAAOA,CACX,EACAmhvB,EAAYnzhC,UAAU23hC,aAAe,SAAU7ub,EAAIhtlB,GAC/C,IAAI6wuB,EAAQt9vB,KAAK49hC,WAAWzohC,QAAQs/Q,wBACpC,GAAI6oe,EAAM35nB,MAAQ3jI,KAAK+0gC,UAAU/u3B,OAASs3mB,EAAM15nB,OAAS5jI,KAAK+0gC,UAAU/u3B,MAAO,CAC3E,IAAI2i5B,EAAalvb,EAAG3zmB,SAASymB,SAASE,EAAM3V,WAAY,KAAK6rS,WACzD38J,EAAQhmJ,KAAK+0gC,UAAU/u3B,MAAQs3mB,EAAM35nB,KACzC,OAAI3jI,KAAKmoC,OAAOkwT,UACJswsB,EAAa3oiC,KAAK+0gC,UAAU9mN,WAAcjuzB,KAAK49hC,WAAWzohC,QAAQ84I,WAAajI,GAG/EhmJ,KAAK49hC,WAAWzohC,QAAQ84I,WAAajI,EAAS2i5B,CAE9D,CACA,OAAO,CACX,EACA7E,EAAYnzhC,UAAUo3hC,eAAiB,SAAUplvB,GAC7C,IAAIl2R,EAAQ7oB,KAAKiG,MAAM84S,EAAa/+S,KAAKwpY,MAAMptY,KAAK+0gC,UAAU9mN,YAC9D,OAAIjuzB,KAAKkkiC,aACEz3gC,EAEJzsB,KAAKk8C,SAASzvB,EACzB,EACAq3gC,EAAYnzhC,UAAUy3hC,sBAAwB,SAAUh4d,EAAU83d,EAAYzub,GAC1E,IAAIhtlB,EAAQ2jjB,EAAW83d,EACvB,GAAIloiC,KAAKkkiC,aAAc,CACnB,IAAI0E,EAAahliC,KAAKiG,MAAM4vmB,EAAGtpW,YAAcnwQ,KAAK+0gC,UAAU9mN,WAC5D,OAAQxhyB,EAAQm8gC,EAAa,EAAKA,EAAa,EAAIn8gC,CACvD,CACA,OAAQA,EAAQgtlB,EAAG3zmB,SAAS1C,OAAS,EAAKq2mB,EAAG3zmB,SAAS1C,OAAS,EAAIqpB,CACvE,EACAq3gC,EAAYnzhC,UAAUw3hC,YAAc,SAAU9niC,EAAG02B,EAAO4sG,EAAMl3G,GAC1D,IAAIm5H,EAAKnwD,GAAQp1F,EAAEgI,OAAQ,iBAC3B,GAAK0jU,GAAkBnmL,IAAQ5lJ,KAAKukiC,kBAiBhCvkiC,KAAKikiC,iBAAmB,MAjB2B,CACnD,IAAIx7D,EAAazo+B,KAAKmoC,OAAO677B,mBAAmBp+0B,GAChD,GAAI5lJ,KAAKkkiC,aAAc,CACnB,IAAIt/d,EAAehhkB,KAAKiG,MAAM85H,EAAO3jI,KAAK+0gC,UAAU9mN,WACpDw6K,EAAa,IAAIhn+B,KAAKzB,KAAKqliC,oBAAoB5rD,WAAW70a,EAAen4iB,GAAO/qB,UACpF,CACA,IAAI4qc,EAAWm8hB,EAAW/m+B,UAAYq1B,EAAM/2B,KAAKmoC,OAAOw+7B,YAAY5vzB,WAAWr1K,UAC/E,GAAI1B,KAAKmkiC,qBACLnkiC,KAAKikiC,iBAAmBrgiC,KAAK8Y,IAAI9Y,KAAKC,KAAKyoc,EAAY+vhB,UAEtD,CACD,IAAIgsE,EAAYzkiC,KAAKiG,MAAOyic,EAAW+vhB,KAAuBr89B,KAAK+0gC,UAAUwoB,aAAev9hC,KAAK+0gC,UAAU9mN,YAC3GjuzB,KAAKikiC,iBAAmBrgiC,KAAKiG,MAAMw+hC,EAAYroiC,KAAK+0gC,UAAU9mN,WAC9DjuzB,KAAKikiC,iBAAmBjkiC,KAAKikiC,iBAAmB,EAAI,EAAIjkiC,KAAKikiC,gBACjE,CACJ,CAIJ,EACAH,EAAYnzhC,UAAU83hC,kCAAoC,SAAUpoiC,EAAG2L,GACnE,IAAIgzV,EAAWh/V,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KACnDg5nB,EAAe,GAAGj4hC,MAAMjR,KAAKK,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiB,uDAClE+r/B,EAAalgC,IAAmBr9nB,EAASplU,cAAc,UAC3D2i+B,EAAcxwrB,GAAkBwwrB,GAAe,EAAIA,EACnD,IAAIthZ,EAAaj7mB,KAAKmoC,OAAOwi9B,iBACtB3rpB,EAASplU,cAAc,SAASm7P,aAAe8zwB,EAAazliC,QAAUpD,KAAK+0gC,UAAUxiN,WACxF5hP,EAAW/skB,KAAKiG,MAAMjG,KAAKiG,MAAO7J,KAAK+0gC,UAAUl2/B,GAChDmgV,EAAS7wM,UAAYou2B,GAAcvr+B,OAAO+pX,SAAW/pX,OAAOw4R,cAC7Dw1C,EAASvqE,wBAAwBvmI,KAAO+sd,GAC5CtqC,EAAYA,EAAW,EAAK,EAAKA,EAAWk4d,EAAazliC,OAAS,EAAKyliC,EAAazliC,OAAS,EAAIutkB,EACjG3wkB,KAAK+0gC,UAAUto/B,MAAQkkjB,EACvB,IAAIuhd,EAAiBlyhC,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiB,2CAA2C+kB,KAAKo7iB,GACtGywd,EAAelP,EAAet4/B,cAAc,IAAMi2Y,KACjDuxnB,IACDA,EAAetgiC,GAAc,MAAO,CAAEC,UAAW8ua,MACjDqinB,EAAexggC,YAAY0vgC,IAE/BphiC,KAAKwmiC,mBAAmBpF,EAAcp1hC,GACtC,IAAI45I,EAAKnwD,GAAQz1F,KAAK+0gC,UAAU1sgC,OAAQ,MAGxC,GAFArI,KAAK+0gC,UAAU50M,WAAcv6qB,IAAO/jJ,MAAM0qB,SAASq5H,EAAGtzH,aAAa,oBAAqB,KAClF/F,SAASq5H,EAAGtzH,aAAa,oBAAqB,IAAMtyB,KAAK+0gC,UAAU50M,WACpEp0f,GAAkB/rU,KAAKmoC,OAAOk3/B,eAAnC,CAGA,IAAInx4B,EAAM264B,EAAat8gC,SAASokjB,EAAS75jB,WAAY,KAAK29Q,wBAAwB7rI,OAAS+nb,EAC3F,GAAI3wkB,KAAKmoC,OAAOwi9B,cAAe,CAC3B,IAAIm+C,EAAgB9oiC,KAAKy/hC,iBAAiBp/hC,GACtCyoiC,IACA564B,EAAM464B,EAAc5gxB,UAAUh1P,SAAS28Y,KAAwBi5nB,EAAclmvB,UACxEkmvB,EAAc11wB,cAAgB01wB,EAAc11wB,aAAalL,UAAUh1P,SAAS28Y,KACzEi5nB,EAAc11wB,aAAawvB,UAAY10J,EAEvD,CACAliJ,EAAa7F,MAAM+nJ,IAAMw/K,GAAWx/K,EAVpC,CAWJ,EACA414B,EAAYnzhC,UAAU61hC,mBAAqB,SAAUrxhC,EAASnJ,QACrC,IAAjBA,IAA2BA,EAAe,MAC9CA,EAAe+/T,GAAkB//T,GAAgBhM,KAAK+0gC,UAAUxzgC,MAAQyK,EACxE,IAAI+yV,EAAc7tU,SAAS0I,cAAc55B,KAAKmoC,OAAOk3/B,eACjDr/hC,KAAKmoC,OAAOk3/B,eAAiBtgsB,EAC7BA,EAAYrtU,YAAY1lB,GAGxBmJ,EAAQuc,YAAY1lB,EAE5B,EACA83hC,EAAYnzhC,UAAU+1hC,gBAAkB,SAAUj6gC,EAAO+3gC,GACrD,IAAIpD,EAIJ,GAHIr1tB,GAAkBy4tB,KAClBA,EAAexkiC,KAAK+0gC,UAAUxzgC,MAAM2mR,UAAUh1P,SAAS28Y,MAEvD7va,KAAKmoC,OAAOuz7B,kBAAkBiC,UAAUhtkB,OAAQ,CAChD,IAAIuuoB,EAAesF,EAAe,IAAM30nB,IAAuC,IAAMA,IACrFuxnB,EAAephiC,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiB0uhC,GAAc3pgC,KAAK9I,EAC3E,KACK,CACD,IAAI45gC,EAAgBrmiC,KAAKmoC,OAAOhzB,QAAQ3E,iBAAiB,IAAMq/Z,KAAsBt6Y,KAAK9I,IAC1F20gC,EAAeiF,EAAczsgC,cAAc,IAAMi2Y,QAE7CuxnB,EAAetgiC,GAAc,MAAO,CAAEC,UAAW8ua,MACjDw2nB,EAAc30gC,YAAY0vgC,GAElC,CACA,OAAOA,CACX,EACA0C,EAAYnzhC,UAAUw1hC,qBAAuB,WACzC,IAAI/E,EAAetgiC,GAAc,MAAO,CAAEC,UAAW8ua,MACrD7va,KAAKmoC,OAAOhzB,QAAQykB,cAAc,IAAMi2Y,KAAsCn+Y,YAAY0vgC,GAC1F,IAAIp5C,EAAco5C,EAAarswB,aAE/B,OADA5hQ,GAAOiugC,GACAp5C,CACX,EACA87C,EAAYnzhC,UAAU80hC,YAAc,SAAUpliC,GAC1C,IAAKL,KAAK+0gC,UAAU0oB,iBAChB,OAAO,EAIX,IAFA,IACIgI,GAAc,EACTn2hC,EAAK,EAAGy5hC,EAFG/oiC,KAAK+0gC,UAAU0oB,iBAAiB9qgC,MAAM,KAERrjB,EAAKy5hC,EAAgB3liC,OAAQkM,IAAM,CACjF,IAAIiB,EAAWw4hC,EAAgBz5hC,GAC/B,GAAIjP,EAAEgI,OAAO6/Q,UAAUh1P,SAAS3iB,GAAW,CACvCk1hC,GAAc,EACd,KACJ,CACJ,CACA,OAAOA,CACX,EAMA3B,EAAYnzhC,UAAUo8U,cAAgB,WAClC,MAAO,aACX,EACO+2sB,CACX,CA5xCiC,CA4xC/BzG,KCjzCE2L,IAA2B,WAM3B,SAASA,EAAUC,EAAWC,GAC1B,IAAI5piC,EAAQU,KAEZA,KAAKmpiC,gBAAkB,GAKvBnpiC,KAAKopiC,eAAiB,GAItBppiC,KAAKqpiC,kBAAoB,WACrB/piC,EAAMgqiC,aAAa/rwB,MACvB,EACAv9R,KAAKipiC,UAAYA,EACjBjpiC,KAAKkpiC,cAAgBA,CACzB,CA2rBA,OAlrBAF,EAAUr4hC,UAAU44hC,aAAe,SAAUpnO,EAAYqnO,EAAWhvR,EAAYivR,GAC5E,IACIC,EAUJ,OAXcx4gC,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,cAAgBgsyB,MAG9EunO,EAAY5oiC,GAAc,MAAO,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,cAAgBgsyB,EAAYph0B,UAAW,qBAChGoF,MAAMqY,MAAQgrhC,EAAY,KACpCE,EAAUvjiC,MAAMyiJ,OAAS4xnB,EAAa,KAClCivR,GACAA,EAAQ/3gC,YAAYg4gC,IAG5B1piC,KAAKkpiC,cAAcS,mBAAmBD,EAAWvnO,GAC1CunO,CACX,EAUAV,EAAUr4hC,UAAUi5hC,mBAAqB,SAAUznO,EAAY0nO,EAAcC,EAAYv3nB,EAAUw3nB,GAC/F,IAIIxnG,EACAn1a,EALAs8gB,EAAYx4gC,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,cAAgBgsyB,GAChF6nO,EAAgBlpiC,GAAc,UAC9BmpiC,EAAa,GACbC,EAAc,GAGdJ,EAAW1miC,OAAS,IACQ,IAAxB0miC,EAAW,GAAGzoU,OAAeyoU,EAAW1miC,OAAS,GACjDm/7B,EAASunG,EAAW,GAAGjrhC,EACvBuugB,EAAc08gB,EAAW,GAAGxoU,SAG5BihO,EAASunG,EAAW,GAAGjrhC,EACvBuugB,EAAc08gB,EAAW,GAAGxoU,SAGpC,IAAI6oU,EAAW,EACf,GAAIH,GAAiBN,GAA6C,IAAhCA,EAAUvggC,WAAW/lC,OACnD,IAAK,IAAI+I,EAAI,EAAGA,EAAI09hC,EAAazmiC,OAAQ+I,IAErC,GAAO09hC,EAAa19hC,GAAGq+C,SAAS,SAAcq/+B,EAAa19hC,GAAGq+C,SAAS,SAAer+C,GAAK29hC,EAAW1miC,OAAS,GAAkB,IAAbmva,GAAmBw3nB,EAUlI,CACDE,EAAW79hC,KAAK09hC,EAAWv9gC,SAASpgB,EAAE2K,WAAY,MAClDozhC,EAAY99hC,KAAKy9hC,EAAat9gC,SAASpgB,EAAE2K,WAAY,MACjDyr7B,EAASunG,EAAWv9gC,SAASpgB,EAAE2K,WAAY,KAAK+H,GAAsD,IAAjDirhC,EAAWv9gC,SAASpgB,EAAE2K,WAAY,KAAKuqtB,QAC5FkhO,EAASunG,EAAWv9gC,SAASpgB,EAAE2K,WAAY,KAAK+H,GAEhDuugB,EAAc08gB,EAAWv9gC,SAASpgB,EAAE2K,WAAY,KAAKwqtB,QAA2D,IAAjDwoU,EAAWv9gC,SAASpgB,EAAE2K,WAAY,KAAKuqtB,QACtGj0M,EAAc08gB,EAAWv9gC,SAASpgB,EAAE2K,WAAY,KAAKwqtB,QAEzD,IAAK,IAAItxtB,EAAI,EAAGA,EAAIi6hC,EAAW7miC,OAAQ4M,IAAK,CACxC,IAAI20vB,EAASslS,EAAW19gC,SAASvc,EAAE8G,WAAY,KAE3CszhC,EAAUtpiC,GAAc,MAAO,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,SAAWgsyB,EAAa,IAAMgoO,EAAUppiC,UAAW,YAAa0oV,MAAO,CAAE,SAAY,QACtJ7/S,EAAcsggC,EAAY39gC,SAASvc,EAAE8G,WAAY,KACjC,MAAhB8yB,GAAuB55B,GAAKi6hC,EAAW7miC,OAAS,GAAU,GAAL4M,IACrD20vB,EAAOrjC,OAAS2oU,EAAWj6hC,EAAI,GAAGsxtB,OAClCqjC,EAAO9lvB,EAAIorhC,EAAWj6hC,EAAI,GAAG6O,GAEjCurhC,EAAQxggC,YAAcA,EAAYv5B,QAAQ,UAAW,KAGrC,MADF65hC,EAAYl6hC,GAAGK,QAAQ,OAAQ,OAEzC+5hC,EAAQjkiC,MAAMyzvB,WAAa,OAEV,IAAjB+K,EAAOtjC,OAAerxtB,GAAKi6hC,EAAW7miC,OAAS,GAAU,GAAL4M,GAChDi6hC,EAAWj6hC,EAAI,GAAGoR,GAAK6ohC,EAAWj6hC,EAAI,GAAGoR,EAAI6ohC,EAAWj6hC,EAAI,GAAGqxtB,OAAS,KAAQ6oU,EAAYl6hC,EAAI,GAAGw6C,SAAS,UAAaq/+B,EAAat9gC,SAASvc,EAAE8G,WAAY,KAAK0zC,SAAS,UAC3Km6sB,EAAOtjC,MAAQ4oU,EAAWj6hC,EAAI,GAAGoR,GAAK6ohC,EAAWj6hC,EAAI,GAAGoR,EAAI6ohC,EAAWj6hC,EAAI,GAAGqxtB,OAC9EsjC,EAAOvjvB,EAAI6ohC,EAAWj6hC,EAAI,GAAGoR,EAAI6ohC,EAAWj6hC,EAAI,GAAGqxtB,MAC/CsjC,EAAOtjC,MAAQ,EACfsjC,EAAOtjC,MAAQ,EAGf+oU,EAAQjkiC,MAAMyzvB,WAAa,QAI7B,GAAL5pvB,GAAUi6hC,EAAW7miC,OAAS,IAAM,GAAMuhwB,EAAO9lvB,EAAI0j7B,EAAU,IAAsB,GAAhB59L,EAAOtjC,QAA2B,GAAZ8oU,IAAmBL,EAAWK,EAAW,GAAGtrhC,EAAIirhC,EAAWv9gC,SAAS49gC,EAASrzhC,WAAY,KAAK+H,EAAK,IAAQirhC,EAAWv9gC,SAAS49gC,EAASrzhC,WAAY,KAAK+H,EAAIirhC,EAAWK,EAAW,GAAGtrhC,EAAK,KAAmD,KAA3CqrhC,EAAY39gC,SAASvc,EAAE8G,WAAY,OAClUyr7B,EAAS0nG,EAAW19gC,SAASvc,EAAE8G,WAAY,KAAK+H,EAChDuugB,EAAc68gB,EAAW19gC,SAASvc,EAAE8G,WAAY,KAAKwqtB,QAErDqjC,IACwB,MAApBA,EAAO0lS,WACP1lS,EAAO9lvB,EAAI0j7B,EACX59L,EAAOrjC,OAASl0M,GAEpBpthB,KAAKsqiC,kBAAkBF,EAASzlS,EAAOvjvB,EAAGujvB,EAAO9lvB,EAAG8lvB,EAAOsmC,OAAQtmC,EAAOtjC,MAAOsjC,EAAOrjC,OAAQqjC,EAAO0lS,WAE3GrqiC,KAAKuqiC,yBAAyBH,GAC9B,IAAInvhC,EAAU+uhC,EAAcrtkB,WAAW,MACvC1hd,EAAQspd,KAAO6lkB,EAAQjkiC,MAAM84S,SAAW,IAAMmrvB,EAAQjkiC,MAAMq8c,WAC5D,IAAI68P,EAAepksB,EAAQ+44B,YAAYk2I,EAAY39gC,SAASvc,EAAE8G,WAAY,KAAKzG,QAAQ,iBAAkB,KAAKmO,MAC9G,GAAImmvB,EAAQ,CACR,IAAIpnS,OAAQ,EAERA,EADoB,KAApBonS,EAAO0lS,SACC1lS,EAAOrjC,OAASthuB,KAAKkpiC,cAAcsB,gBAAkBnrV,EAGrDslD,EAAOtjC,MAAQrhuB,KAAKkpiC,cAAcsB,gBAAkBnrV,EAEhEr/sB,KAAKyqiC,kBAAkBltkB,EAAO6skB,EAAS73nB,EAAUoyV,EAAO0lS,SAAU1lS,EACtE,CACA+kS,EAAUh4gC,YAAY04gC,GACtBpqiC,KAAK0qiC,gBAAgBhB,EAAWU,GAE5BpqiC,KAAKipiC,UAAU0B,qBAAuB3qiC,KAAKipiC,UAAU2B,sBAAwB5qiC,KAAKkpiC,cAAc2B,yBAAiD,2BAAtBT,EAAQrpiC,WAC1G,oCAAtBqpiC,EAAQrpiC,WAAyE,8CAAtBqpiC,EAAQrpiC,WACtEqpiC,EAAQlixB,UAAU90P,IAAI,eAE1B+2gC,GACJ,CACAF,EAAa,GACbC,EAAc,GACV/9hC,EAAI29hC,EAAW1miC,OAAS,IACQ,IAA5B0miC,EAAW39hC,EAAI,GAAGk1tB,OAAgBt1Z,GAAkB+9tB,EAAW39hC,EAAI,KAKnEo27B,EAASunG,EAAW39hC,EAAI,GAAG0S,EAC3BuugB,EAAc08gB,EAAW39hC,EAAI,GAAGm1tB,SALhCihO,EAASunG,EAAW39hC,EAAI,GAAG0S,EAC3BuugB,EAAc08gB,EAAW39hC,EAAI,GAAGm1tB,QAO5C,MA3FI2oU,EAAW79hC,KAAK09hC,EAAWv9gC,SAASpgB,EAAE2K,WAAY,MAClDozhC,EAAY99hC,KAAKy9hC,EAAat9gC,SAASpgB,EAAE2K,WAAY,MACjDyr7B,EAASunG,EAAWv9gC,SAASpgB,EAAE2K,WAAY,KAAK+H,GAAsD,IAAjDirhC,EAAWv9gC,SAASpgB,EAAE2K,WAAY,KAAKuqtB,QAC5FkhO,EAASunG,EAAWv9gC,SAASpgB,EAAE2K,WAAY,KAAK+H,GAEhDuugB,EAAc08gB,EAAWv9gC,SAASpgB,EAAE2K,WAAY,KAAKwqtB,QAA2D,IAAjDwoU,EAAWv9gC,SAASpgB,EAAE2K,WAAY,KAAKuqtB,QACtGj0M,EAAc08gB,EAAWv9gC,SAASpgB,EAAE2K,WAAY,KAAKwqtB,OAwFzE,EAeA0nU,EAAUr4hC,UAAUm6hC,mBAAqB,SAAU3oO,EAAY0nO,EAAcC,EAAYv3nB,EAAUw4nB,GAC/F,IAAIrB,EAAY1piC,KAAKkpiC,cAAcliwB,WAAW,cAAgBm7hB,GAC1D6nO,EAAgBlpiC,GAAc,UAClC,GAAIkpiC,EACA,IAAK,IAAI79hC,EAAI,EAAGA,EAAIu9hC,EAAUvggC,WAAW/lC,OAAQ+I,IAAK,CAElD,IAAIw4vB,OAAS,EACTylS,EAAUpqiC,KAAKkpiC,cAAcliwB,WAAW,SAAWm7hB,EAAa,IAAMh2zB,GAC1E,GAAI4/T,GAAkBq+tB,GAClB,MAEAN,IACAnlS,EAASmlS,EAAWv9gC,SAASpgB,EAAE2K,WAAY,OAEvC9W,KAAKsqiC,kBAAkBF,EAASzlS,EAAOvjvB,EAAGujvB,EAAO9lvB,EAAG8lvB,EAAOsmC,OAAQtmC,EAAOtjC,MAAOsjC,EAAOrjC,OAAQqjC,EAAO0lS,UAG/GrqiC,KAAKuqiC,yBAAyBH,GAC9B,IAAInvhC,EAAU+uhC,EAAcrtkB,WAAW,MACvC1hd,EAAQspd,KAAO6lkB,EAAQjkiC,MAAM84S,SAAW,IAAMmrvB,EAAQjkiC,MAAMq8c,WAC5D,IAAI68P,OAAe,EACnB,GAAIwqV,EAAc,CACd,IAAIjggC,EAAciggC,EAAat9gC,SAASpgB,EAAE2K,WAAY,KAClD8yB,IACAy1qB,EAAepksB,EAAQ+44B,YAAYpq3B,EAAYv5B,QAAQ,iBAAkB,KAAKmO,MAEtF,MAEI6gsB,EAAepksB,EAAQ+44B,YAAYo2I,EAAQxggC,YAAYv5B,QAAQ,iBAAkB,KAAKmO,MAE1F,GAAImmvB,EAAQ,CACR,IAAIpnS,OAAQ,EAERA,EADoB,KAApBonS,EAAO0lS,SACC1lS,EAAOrjC,OAASthuB,KAAKkpiC,cAAcsB,gBAAkBnrV,EAGrDslD,EAAOtjC,MAAQrhuB,KAAKkpiC,cAAcsB,gBAAkBnrV,EAEhEr/sB,KAAKyqiC,kBAAkBltkB,EAAO6skB,EAAS73nB,EAAUoyV,EAAO0lS,SAAU1lS,EACtE,CACA3kwB,KAAK0qiC,gBAAgBhB,EAAWU,EACpC,MAGAV,EAAU7zwB,cAAc1gQ,YAAYu0gC,GAEpC1piC,KAAKipiC,UAAU+B,aACVD,GACD/qiC,KAAKipiC,UAAU+B,WAAWC,qBAAqB9oO,GAG3D,EACA6mO,EAAUr4hC,UAAU85hC,kBAAoB,SAAUltkB,EAAO6skB,EAAS73nB,EAAU24nB,EAAcvmS,GACtF,IAAIwmS,EAAc,UAAY5tkB,EAAQ,IACrB,IAAbhrD,EACI24nB,GAAgB,GAAKA,EAAe,GACpCd,EAAQjkiC,MAAMoyD,UAAY4y+B,EAEJ,IAAhBD,GAAwC,KAAhBA,GACT,KAAhBA,GACDd,EAAQjkiC,MAAMw9H,KAAQghoB,EAAOvjvB,EAAIphB,KAAKkpiC,cAAcsB,gBAAmB,KACvEJ,EAAQjkiC,MAAM+nJ,KAAQy2mB,EAAO9lvB,EAAI8lvB,EAAOtjC,OAASrhuB,KAAKkpiC,cAAcsB,gBAAmB,KACvFJ,EAAQjkiC,MAAMyiJ,OAAU+7mB,EAAOrjC,OAASthuB,KAAKkpiC,cAAcsB,gBAAmB,KAC9EJ,EAAQjkiC,MAAM84S,SAAY0ld,EAAOrjC,OAASthuB,KAAKkpiC,cAAcsB,gBAAmB,OAGhFJ,EAAQjkiC,MAAMw9H,MAASghoB,EAAOvjvB,EAAIujvB,EAAOtjC,OAASrhuB,KAAKkpiC,cAAcsB,gBAAmB,KACxFJ,EAAQjkiC,MAAM+nJ,IAAOy2mB,EAAO9lvB,EAAI7e,KAAKkpiC,cAAcsB,gBAAmB,KACtEJ,EAAQjkiC,MAAMyiJ,OAAU+7mB,EAAOtjC,MAAQrhuB,KAAKkpiC,cAAcsB,gBAAmB,KAC7EJ,EAAQjkiC,MAAM84S,SAAY0ld,EAAOtjC,MAAQrhuB,KAAKkpiC,cAAcsB,gBAAmB,KAC/EJ,EAAQjkiC,MAAMgjS,gBAAkB,SAEpCihwB,EAAQjkiC,MAAMoyD,UAAY,UAAY2y+B,EAAe,QAAUC,GAG/Df,EAAQjkiC,MAAMoyD,UAAY,UAAY2y+B,EAAe,QAAUC,EAGjD,IAAb54nB,EACgB,IAAjB24nB,EACAd,EAAQjkiC,MAAMoyD,UAAY,iBAAmB4y+B,GAEtB,KAAlBD,EACLd,EAAQjkiC,MAAMoyD,UAAY4y+B,GAG1BD,GAA8B,GAC9Bd,EAAQjkiC,MAAMoyD,UAAY,UAAY2y+B,EAAe,QAAUC,GAGjD,IAAb54nB,EAED63nB,EAAQjkiC,MAAMoyD,UADG,IAAjB2y+B,EAC0B,kBAAoBC,EAExB,MAAjBD,EACqBC,EAGA,UAAYD,EAAe,QAAUC,EAGjD,IAAb54nB,IAED63nB,EAAQjkiC,MAAMoyD,UADG,IAAjB2y+B,EAC0B,kBAAoBC,EAExB,KAAjBD,EACqBC,EAGA,UAAYD,EAAe,QAAUC,EAG3E,EACAnC,EAAUr4hC,UAAU45hC,yBAA2B,SAAUH,GACrDA,EAAQjkiC,MAAMq8c,WAAa,QAC3B4nlB,EAAQjkiC,MAAMgjS,gBAAkB,IACpC,EAMA6/vB,EAAUr4hC,UAAUy6hC,yBAA2B,SAAUjpO,GAErD,IAKI5vZ,EALA84nB,EAAer6gC,OAAOor0B,eAAe3woB,QAAQzrN,KAAKkpiC,cAAcoC,gBAAkB,IAAMnpO,EAAa,IAAMni0B,KAAKuriC,yBAEhHzB,EAAa,GACbD,EAAe,GAGnB,GAAIwB,EAAc,CAEd,IAAInhgC,EAAOuG,KAAKuL,MAAMqv/B,GAEtBvB,EAAa5//B,EAAiB,WAE9B2//B,EAAe3//B,EAAkB,YAEjCqoY,EAAWroY,EAAe,QAC9B,CACA,GAA0B,IAAtB4//B,EAAW1miC,OACXpD,KAAKmpiC,gBAAgB/8hC,KAAK,CAAE+1zB,WAAYA,EAAY2nO,WAAYA,IAChE9piC,KAAK8qiC,mBAAmB3oO,EAAY0nO,EAAcC,EAAYv3nB,OAE7D,CAED,IAAIkyhB,EAAezk8B,KAAKmpiC,gBAAgB/iiC,QAAO,SAAUyK,GACrD,OAAOA,EAAIsxzB,aAAeA,CAC9B,IACIsiI,GAC4B,IAAxBA,EAAarh8B,SAEb0miC,EAAarlG,EAAa,GAAe,WACzCzk8B,KAAK8qiC,mBAAmB3oO,EAAY,KAAM2nO,EAAYv3nB,GAGlE,CACJ,EACAy2nB,EAAUr4hC,UAAU+5hC,gBAAkB,SAAUhB,EAAWU,GACvD,IAAIoB,EAAoB9B,EAAUj1wB,wBAC9Bg3wB,EAAkBrB,EAAQ31wB,yBAEzBg3wB,EAAgBjthC,MAAQithC,EAAgB9n6B,MAAU6n6B,EAAkBhthC,MAAQgthC,EAAkB7n6B,MAAU8n6B,EAAgBjthC,MAAQgthC,EAAkBhthC,SAEnJ4rhC,EAAQjkiC,MAAMqY,MAAQ,OAEtB4rhC,EAAQjkiC,MAAMqY,MAAQ4rhC,EAAQrlyB,YAAc,KAEpD,EAMAikyB,EAAUr4hC,UAAU+6hC,gBAAkB,SAAUC,GAC5C,IAAIC,EAAiB5riC,KAAKkpiC,cAAc2C,kBAAoB,EAC5DD,EAAkBA,EAAiB,EAAKA,EAAiB,EACzD,IAAIE,EAAkB9riC,KAAKkpiC,cAAc2C,kBAAoB,EAC7DC,EAAmBA,EAAkB9riC,KAAKkpiC,cAAc93b,UAAa06b,EAAmB9riC,KAAKkpiC,cAAc93b,UAAY,EAEvH,IADA,IAAI26b,EAAa76gC,SAAS1gB,iBAAiB,YAAcxQ,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,iBAC5EhqB,EAAI,EAAGA,EAAI4/hC,EAAW3oiC,OAAQ+I,IAEnC,GADA4/hC,EAAWx/gC,SAASpgB,EAAE2K,WAAY,KAAK3Q,MAAMi+J,QAAU,QACnDpkK,KAAKkpiC,cAAc8C,iBAAmBhsiC,KAAKisiC,0BAA4BjsiC,KAAKksiC,uBAAwB,CAEpG,IAAI/pO,EAAa51yB,SAASw/gC,EAAWx/gC,SAASpgB,EAAE2K,WAAY,KAAKqf,GAAGxD,MAAM,eAAe,IACjFi5gC,EAAiB,GAAMzpO,GAAgBA,GAAe2pO,EAAkB,GAC5E9riC,KAAKsrD,cAAcyg/B,EAAWx/gC,SAASpgB,EAAE2K,WAAY,KAAM60hC,EAEnE,MACS3riC,KAAKkpiC,cAAciD,iBACxBnsiC,KAAKsrD,cAAcyg/B,EAAWx/gC,SAASpgB,EAAE2K,WAAY,KAAM60hC,EAMvE,EACA3C,EAAUr4hC,UAAU26C,cAAgB,SAAUn2C,EAASw2hC,GAC/CA,EACA3riC,KAAKosiC,qBAAqBj3hC,GAGtB8xU,GAAQh0D,KACJ99Q,EAAQ0gR,cACR1gR,EAAQ0gR,cAAc1gQ,YAAYhgB,GAE7BA,EAAQqf,YACbrf,EAAQqf,WAAWW,YAAYhgB,GAInCA,EAAQge,QAGpB,EACA61gC,EAAUr4hC,UAAUy7hC,qBAAuB,SAAUj3hC,GAEjD,IAAIm03B,EAAen03B,EAAQ29U,uBAAuB,kBAClD,GAAIw2iB,EACA,IAAK,IAAIn93B,EAAI,EAAGA,EAAIm93B,EAAalm4B,OAAQ+I,IACrC,GAAI86U,GAAQM,UAER,GAAyE,oBAArE+hjB,EAAa/82B,SAASpgB,EAAE2K,WAAY,KAAK++Q,cAAc90R,WAA+E,4BAA5Cuo4B,EAAa,GAAGzzmB,cAAc90R,UACxHoU,EAAQggB,YAAYm02B,EAAa,SAEhC,GAAyE,4BAArEA,EAAa/82B,SAASpgB,EAAE2K,WAAY,KAAK++Q,cAAc90R,UAAyC,CACrG,IAAIsriC,EAAiBn7gC,SAASg8T,eAAeo8iB,EAAa,GAAGzzmB,cAAc1/P,IACvEk2gC,GACAA,EAAex2wB,cAAc1iQ,QAErC,MAGyE,oBAArEm22B,EAAa/82B,SAASpgB,EAAE2K,WAAY,KAAK++Q,cAAc90R,WACvDoU,EAAQggB,YAAYm02B,EAAa,GAKrD,EAWA0/J,EAAUr4hC,UAAU27hC,cAAgB,SAAUnqO,EAAYoqO,EAAOxz6B,EAAYg02B,EAAU7iZ,EAAYnplB,GAC/F,IAAIqpiC,EAAUpqiC,KAAKkpiC,cAAcliwB,WAAW,SAAWm7hB,EAAa,IAAMoqO,GACtE3igC,EAAcsgjB,EAAWhjkB,UAAU6xG,EAAYg02B,GAC/C789B,EAAOghB,SAASS,eAAeiY,GACnC,GAAI7oC,EAAW,CACX,IAAIgqf,EAAcjqf,GAAc,QAChCiqf,EAAYhqf,UAAYA,EAAY,aACpCgqf,EAAYr5d,YAAYxhB,GACxBk6hC,EAAQ14gC,YAAYq5d,EACxB,MAEIq/iB,EAAQ14gC,YAAYxhB,EAE5B,EAWA84hC,EAAUr4hC,UAAU67hC,sBAAwB,SAAUnhP,EAAWohP,EAASC,EAAiBC,EAAgBj/4B,EAAcE,GACrH,GAAI5tJ,KAAKipiC,UAAU0B,oBACf,IAAK,IAAIx+hC,EAAIk/yB,EAAWl/yB,GAAKsgiC,EAAStgiC,IAAK,CACvC,IAAIygiC,OAAU,EACVC,OAAQ,EAERC,EAAW9siC,KAAKkpiC,cAAcliwB,WAAW,cAAgB76R,GAAGg9B,WAC5Dh9B,IAAMk/yB,GACNuhP,EAAUF,EACVG,EAAQC,EAAS1piC,OAAS,GAErB+I,IAAMsgiC,GACXG,EAAU,EACVC,EAAQF,IAGRC,EAAU,EACVC,EAAQC,EAAS1piC,OAAS,GAE1BiozB,IAAcohP,IACdG,EAAUF,EACVG,EAAQF,GAEZ,IAAK,IAAI38hC,EAAI48hC,EAAS58hC,GAAK68hC,EAAO78hC,IAAK,CACnC,IAAIo6hC,EAAUpqiC,KAAKkpiC,cAAcliwB,WAAW,SAAW76R,EAAI,IAAM6D,GAC7D+8hC,OAAS,EACTC,OAAS,EACTjsvB,OAAW,EACf,GAAIqpvB,GAAWA,EAAQxggC,YAAa,CAChCm3Q,EAAWqpvB,EAAQxggC,YAAYxmC,OAC/B,IAAIwmC,EAAcwggC,EAAQxggC,YAC1BwggC,EAAQxggC,YAAc,GAClB55B,IAAM48hC,GAEFG,EADA5giC,IAAMk/yB,EACG39pB,EAGA,EAEbs/4B,EAASjsvB,EACT/gT,KAAKssiC,cAAcngiC,EAAG6D,EAAG,EAAG+8hC,EAAQnjgC,EAAa,OAE5C55B,IAAM68hC,GAAS1giC,IAAMsgiC,GAC1BM,EAAS,EACTC,EAASp/4B,IAGTm/4B,EAAS,EACTC,EAASjsvB,GAET6rvB,IAAYC,GAASxhP,IAAcohP,IACnCM,EAASr/4B,EACTs/4B,EAASp/4B,GAEb5tJ,KAAKssiC,cAAcngiC,EAAG6D,EAAG+8hC,EAAQC,EAAQpjgC,EAAa,wBAClD55B,IAAM68hC,GAAS1giC,IAAMsgiC,GACrBzsiC,KAAKssiC,cAAcngiC,EAAG6D,EAAGg9hC,EAAQpjgC,EAAYxmC,OAAQwmC,EAAa,KAE1E,CACJ,CACJ,CAER,EAKAo//B,EAAUr4hC,UAAUs8hC,kBAAoB,WAEpC,IADA,IAAIlB,EAAa76gC,SAAS1gB,iBAAiB,YAAcxQ,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,iBAC5EhqB,EAAI,EAAGA,EAAI4/hC,EAAW3oiC,OAAQ+I,IAEnC,IADA,IAAIg9B,EAAa4igC,EAAWx/gC,SAASpgB,EAAE2K,WAAY,KAAKqyB,WAC/Cn5B,EAAI,EAAGA,EAAIm5B,EAAW/lC,OAAQ4M,IAAK,CACxC,IAAIo6hC,EAAUjhgC,EAAW5c,SAASvc,EAAE8G,WAAY,KAEhD,GAA0B,2BAAtBszhC,EAAQrpiC,WAAgE,oCAAtBqpiC,EAAQrpiC,WAAyE,8CAAtBqpiC,EAAQrpiC,UAA2D,CAChL,IAAI6oC,EAAcwggC,EAAQxggC,aAEtBwggC,EAAQjhgC,WAAW/lC,OAAS,GAAmC,IAA9BgniC,EAAQjhgC,WAAW/lC,QAAmD,SAAlCgniC,EAAQjhgC,WAAW,GAAGf,WAC3FgigC,EAAQxggC,YAAc,GACtBwggC,EAAQxggC,YAAcA,EAE9B,CACJ,CAER,EAEAo//B,EAAUr4hC,UAAU25hC,kBAAoB,SAAUF,EAASzm6B,EAAMuqB,EAAKymI,EAAQn2Q,EAAOoqI,EAAQ2pR,GAGzF,IAAI05X,EAFJm+P,EAAQjkiC,MAAMw9H,KAAOA,EAAO3jI,KAAKkpiC,cAAcsB,gBAAkB,KACjEJ,EAAQjkiC,MAAM+nJ,IAAMA,EAAMluJ,KAAKkpiC,cAAcsB,gBAAkB,KAG3Dv+P,EADa,KAAb15X,EACa/zZ,EAAQxe,KAAKkpiC,cAAcsB,gBAG3B5h5B,EAAS5oJ,KAAKkpiC,cAAcsB,gBAE7CJ,EAAQjkiC,MAAMyiJ,OAASqjpB,EAAa,KACpCm+P,EAAQjkiC,MAAM84S,SAAWgtf,EAAa,IAC1C,EACA+8P,EAAUr4hC,UAAUs7hC,uBAAyB,WACzC,QAAIjsiC,KAAKipiC,UAAU0B,qBACR3qiC,KAAKipiC,UAAU0B,oBAAoBuC,eAKlD,EAMAlE,EAAUr4hC,UAAUw8hC,iBAAmB,SAAU1+hB,GAE7C,IADA,IAAI2+hB,EAAgBl8gC,SAAS1gB,iBAAiB,YAAcxQ,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,iBAC/EhqB,EAAI,EAAGA,EAAIihiC,EAAchqiC,OAAQ+I,IAEtC,IADA,IAAIg9B,EAAaikgC,EAAc7ghC,SAASpgB,EAAE2K,WAAY,KAAKqyB,WAClDn5B,EAAI,EAAGA,EAAIm5B,EAAW/lC,OAAQ4M,IAAK,CACxC,IAAImwe,EAAch3c,EAAW5c,SAASvc,EAAE8G,WAAY,KAEhD23f,GAAmC,2BAA1BtuB,EAAYp/e,WAAoE,oCAA1Bo/e,EAAYp/e,WAA6E,8CAA1Bo/e,EAAYp/e,UAC1Io/e,EAAYj4N,UAAU90P,IAAI,eAG1B+sd,EAAYj4N,UAAU/0P,OAAO,cAErC,CAER,EAMA61gC,EAAUr4hC,UAAU08hC,oBAAsB,SAAU3pmB,GAChD,IAAIx5W,EAAWw5W,EAAUj2S,WAAWpkG,wBAAwBq6Y,EAAU/1S,WAClEm+iB,GAAW,EAIf,QAHK5hnB,GAAYw5W,EAAUh2S,aAAeg2S,EAAU91S,aAAe1jE,IAAa32D,KAAK+5gC,+BACjFxhW,GAAW,GAERA,CACX,EAMAk9V,EAAUr4hC,UAAU48hC,aAAe,SAAUp4hC,GACzC,IAEI0gR,EAAgB1gR,EAAQ0gR,cAY5B,OAXKA,IACDA,EAAgB1gR,EAAQqf,YAEI,oBAA5BqhQ,EAAc90R,UAELwrB,SAASpX,EAAQghB,GAAGxD,MAAM,UAAU,IAIpCpG,SAASspQ,EAAc1/P,GAAGxD,MAAM,UAAU,GAG3D,EAOAq2gC,EAAUr4hC,UAAU68hC,aAAe,SAAUr4hC,EAAS2ga,GAClD,IAEIjgJ,EAAgB1gR,EAAQ0gR,cAY5B,OAXKA,IACDA,EAAgB1gR,EAAQqf,YAEI,oBAA5BqhQ,EAAc90R,UAEFwrB,SAASpX,EAAQghB,GAAGxD,MAAM,SAAWmjZ,EAAY,KAAK,IAItDvpZ,SAASspQ,EAAc1/P,GAAGxD,MAAM,SAAWmjZ,EAAY,KAAK,GAGhF,EACAkznB,EAAUr4hC,UAAU46hC,sBAAwB,WACxC,OAAIvriC,KAAKipiC,UAAUwE,oBACRztiC,KAAKipiC,UAAUwE,oBAAoB1lI,mBAGnC,CAEf,EAKAihI,EAAUr4hC,UAAUu7hC,oBAAsB,WACtC,QAAIlsiC,KAAKipiC,UAAUyE,kBACR1tiC,KAAKipiC,UAAUyE,iBAAiB3C,YAK/C,EAMA/B,EAAUr4hC,UAAUg9hC,wBAA0B,SAAU1tgC,GACpD,IAAI3gC,EAAQU,KACZ,IAAKA,KAAK4tiC,iBACN,GAAK9guB,KAkCA,CAED,IAAI+guB,EAAsB38gC,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,+BAC1E03gC,IACAA,EAAoBjkgC,YAAc3J,EAClC4tgC,EAAoB3kgC,UAAYjJ,GAEhCjgC,KAAKipiC,UAAUyE,mBACf1tiC,KAAKipiC,UAAU+B,WAAW8C,sBAAuB,GAErD9tiC,KAAKipiC,UAAU8E,gBAAgB13oB,kBAAkB,wBAAyBp2X,EAC9E,KA7CiB,CAEb,IAAI+tgC,EAAiBltiC,GAAc,MAAO,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,UAAWp1B,UAAW,4BAClGf,KAAKkpiC,cAAc+E,gBAAgBv8gC,YAAYs8gC,GAC/ChuiC,KAAKspiC,aAAe,IAAIv5wB,IAAO,CAC3BmwP,eAAe,EAAM7C,eAAe,EAAOd,SAAS,EAAM7tV,OAAQ1uL,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,aACvG3/M,QAAS,CAAC,CACFq3X,YAAa,CAAE1ogB,QAAS/U,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,MAAO58M,WAAW,GAC/E65H,MAAOhjR,KAAKqpiC,kBAAkBxpiC,KAAKG,QAG3C+U,QAAS,+DAAiEkrB,EAAO,SAAU53B,OAAQrI,KAAKipiC,UAAU9zhC,QAClH0xH,YAAa,WAET,GADAvnI,EAAMgqiC,aAAaly5B,UACf93I,EAAM2piC,UAAU9zhC,QAChB,IACI7V,EAAM2piC,UAAU9zhC,QAAQggB,YAAY64gC,EACxC,CACA,MAAO/2hC,IACH+2hC,EAAen4wB,cAAc1gQ,YAAY64gC,EAC7C,CAEA1uiC,EAAM2piC,UAAUyE,mBAChBpuiC,EAAM2piC,UAAU+B,WAAW8C,sBAAuB,GAEtDxuiC,EAAMsuiC,kBAAmB,CAC7B,IAEA5tiC,KAAKipiC,UAAU5wsB,YACfr4V,KAAKspiC,aAAajxsB,WAAY,GAElCr4V,KAAKspiC,aAAa5wsB,SAASs1sB,GAC3BhuiC,KAAK4tiC,kBAAmB,CAC5B,CAcR,EACO5E,CACX,CAntB+B,GCH3BkF,IAAmC,WAMnC,SAASA,EAAkBjF,EAAWC,GAClClpiC,KAAKmuiC,UAAY,SAAUC,GACvB,IAAI9uiC,EAAQU,KACRquiC,EAAUD,EAAmBE,QAC7BC,EAAgBH,EAAmBI,cACnCvugC,EAAOmugC,EAAmBzxgC,KAC1BgviB,EAAUyie,EAAmBK,QAC7B9pS,EAASypS,EAAmBM,OAC5BC,EAAYP,EAAmBQ,cAC/BC,EAAU39gC,SAASpwB,cAAcd,KAAKq3D,OAAOg3+B,IA8BjD,OA7BAQ,EAAQ1oiC,MAAQ,yBACK,YAAjBooiC,GAAgD,QAAjBA,IAC/BM,EAAQ1oiC,MAAM+jF,SAAW,YAEzBy6qB,IACA3kwB,KAAK8uiC,wBAAwBD,EAASlqS,EAAQypS,EAAmB9hiB,SAAU8hiB,EAAmBW,SAAUX,EAAmBxmJ,WAC3H5n5B,KAAKuqiC,yBAAyBsE,IAEf,IAAf5ugC,EAAKxN,SACLo8gC,EAAQ3i/B,UAAYjsB,IAEpB0riB,GAA8B,KAAnBA,EAAQl5iB,QAA8B,UAAZ47gC,GAAmC,WAAZA,IAC5DQ,EAAQG,IAAMrje,EACdkje,EAAQnq4B,IAAM,sHAEdiq4B,GAAaA,EAAUvriC,OAAS,GAChCuriC,EAAUtoiC,SAAQ,SAAU8O,GACR,UAAZk5hC,EACIl5hC,EAAQy5hC,eACRz5hC,EAAQy5hC,cAAcvoiC,SAAQ,SAAU4oiC,GACpCJ,EAAQn9gC,YAAYpyB,EAAM6uiC,UAAUc,GACxC,IAIJJ,EAAQn9gC,YAAYpyB,EAAM6uiC,UAAUh5hC,GAE5C,IAEG05hC,CACX,EACA7uiC,KAAKipiC,UAAYA,EACjBjpiC,KAAKkpiC,cAAgBA,CACzB,CAiKA,OAhKAgF,EAAkBv9hC,UAAUu+hC,eAAiB,SAAUp5nB,GACnD,IAAIq5nB,EACJ,GAAInviC,KAAKipiC,UAAUmG,yBAA2BpviC,KAAKkpiC,cAAcmG,YAAa,CAC1E,IAAI5F,EAAUv4gC,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,YAAc2/Y,GAChFq5nB,EAAcj+gC,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,gBAAkB2/Y,GACpF,IAAI4znB,EAAYx4gC,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,cAAgB2/Y,GAChF4znB,GACAA,EAAU10gC,aAAa,cAAe,QAErCm6gC,IACDA,EAAcruiC,GAAc,MAAO,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,gBAAkB2/Y,EAAW/0a,UAAW,uCAEjHouiC,EAAYjmgC,UAAY,GACxBimgC,EAAYhpiC,MAAMqY,MAAQxe,KAAKkpiC,cAAcnznB,SAASxpZ,SAASupZ,EAAUh/Z,WAAY,KAAK0H,MAAQxe,KAAKkpiC,cAAcsB,gBAAkB,KACvI2E,EAAYhpiC,MAAMyiJ,OAAS5oJ,KAAKkpiC,cAAcnznB,SAASxpZ,SAASupZ,EAAUh/Z,WAAY,KAAK8xI,OAAS5oJ,KAAKkpiC,cAAcsB,gBAAkB,KACzI2E,EAAYhpiC,MAAM44R,cAAgB,OAC9B0qwB,GACAA,EAAQ/3gC,YAAYy9gC,EAE5B,CACA,OAAOA,CACX,EAKAjB,EAAkBv9hC,UAAU2+hC,wBAA0B,SAAUx5nB,EAAWs4nB,GAEvE,IADA,IAAIe,EAAcnviC,KAAKkviC,eAAep5nB,GAC7B3pa,EAAI,EAAGA,EAAIiiiC,EAAmBhriC,OAAQ+I,IAAK,CAChD,IAAIi+hC,EAAUtpiC,GAAc,MAAO,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,eAAiB2/Y,EAAY,IAAMvpZ,SAASpgB,EAAE2K,WAAY,IAAK/V,UAAW,YAAa0oV,MAAO,CAAE,SAAY,QAC7Kk7a,EAASypS,EAAmB7hhC,SAASpgB,EAAE2K,WAAY,KAAK43hC,OAC4B,cAApFN,EAAmB7hhC,SAASA,SAASpgB,EAAE2K,WAAY,IAAIA,WAAY,KAAKw3hC,SAA4F,OAAjEF,EAAmB7hhC,SAASpgB,EAAE2K,WAAY,KAAK83hC,eAAyF,KAA/DR,EAAmB7hhC,SAASpgB,EAAE2K,WAAY,KAAK6lB,KAAKlK,SAIhO23gC,EAAQ14gC,YAAY1xB,KAAKmuiC,UAAUC,EAAmB7hhC,SAASpgB,EAAE2K,WAAY,OAEjFszhC,EAAQjkiC,MAAMi+J,QAAU,SAExBpkK,KAAK8uiC,wBAAwB1E,EAASzlS,EAAQypS,EAAmB7hhC,SAASpgB,EAAE2K,WAAY,KAAKw1f,SAAU8hiB,EAAmB7hhC,SAASpgB,EAAE2K,WAAY,KAAKi4hC,SAAUX,EAAmB7hhC,SAASpgB,EAAE2K,WAAY,KAAK8w4B,WAC/M5n5B,KAAKuqiC,yBAAyBH,GAC9B+E,EAAYz9gC,YAAY04gC,GAC5B,CACJ,EACA8D,EAAkBv9hC,UAAU0mD,OAAS,SAAUg3+B,GAC3C,OAAQA,GACJ,IAAK,YAgDL,IAAK,WA4BL,QACI,MAAO,IA3EX,IAAK,SAwEL,IAAK,QACD,MAAO,MAvEX,IAAK,UACD,MAAO,MACX,IAAK,aACD,MAAO,QACX,IAAK,oBACD,MAAO,WACX,IAAK,iBACD,MAAO,aACX,IAAK,UACD,MAAO,UACX,IAAK,OACD,MAAO,OACX,IAAK,WACD,MAAO,MACX,IAAK,WACD,MAAO,WACX,IAAK,OACD,MAAO,OACX,IAAK,UACD,MAAO,UACX,IAAK,QACD,MAAO,QACX,IAAK,UACD,MAAO,IACX,IAAK,gBACD,MAAO,KACX,IAAK,gBACD,MAAO,KACX,IAAK,gBACD,MAAO,KACX,IAAK,gBACD,MAAO,KACX,IAAK,gBACD,MAAO,KACX,IAAK,gBACD,MAAO,KACX,IAAK,QACD,MAAO,QACX,IAAK,OACD,MAAO,IACX,IAAK,OACD,MAAO,KACX,IAAK,WACD,MAAO,KAGX,IAAK,OACD,MAAO,OACX,IAAK,OACD,MAAO,OACX,IAAK,YACD,MAAO,QACX,IAAK,YACD,MAAO,YACX,IAAK,UACD,MAAO,OACX,IAAK,OACD,MAAO,OACX,IAAK,QACD,MAAO,QACX,IAAK,gBACD,MAAO,KACX,IAAK,cACD,MAAO,KACX,IAAK,iBACD,MAAO,MACX,IAAK,qBACD,MAAO,OACX,IAAK,WACD,MAAO,KAMnB,EACAH,EAAkBv9hC,UAAUm+hC,wBAA0B,SAAU1E,EAASzlS,EAAQ1ld,EAAUgqS,EAAUzS,GACjG,IAAIuqU,EAAa/g5B,KAAKkpiC,cAAcsB,gBACpCJ,EAAQjkiC,MAAMw9H,KAAO3jI,KAAKkpiC,cAAcqG,oBAAoB5qS,EAAOvjvB,GAAK2/3B,EAAa,KACrFqpJ,EAAQjkiC,MAAM+nJ,IAAMluJ,KAAKkpiC,cAAcqG,oBAAoB5qS,EAAO9lvB,GAAKki4B,EAAa,KACpFqpJ,EAAQjkiC,MAAMqY,MAAQxe,KAAKkpiC,cAAcqG,oBAAoB5qS,EAAOtjC,OAAS0/K,EAAa,KAC1F,IAAI90G,EAAajsyB,KAAKkpiC,cAAcqG,oBAAoB5qS,EAAOrjC,QAAUy/K,EACzEqpJ,EAAQjkiC,MAAMyiJ,OAASqjpB,EAAa,KACpCm+P,EAAQjkiC,MAAM84S,SAAWj/S,KAAKkpiC,cAAcqG,oBAAoBtwvB,GAAY8hmB,EAAa,MACrF93T,GAA0B,cAAbA,GAAyC,WAAbA,EAGpCA,IACLmhd,EAAQjkiC,MAAMq8c,WAAaymI,GAH3Bmhd,EAAQjkiC,MAAMq8c,WAAa,UAK3Bg0H,IACA4zd,EAAQjkiC,MAAMgoI,WAAaqoc,GAE/B4zd,EAAQjkiC,MAAMswH,MAAQ,aAC1B,EACAy36B,EAAkBv9hC,UAAU45hC,yBAA2B,SAAUH,GAC7DA,EAAQjkiC,MAAMgjS,gBAAkB,IACpC,EAIA+kwB,EAAkBv9hC,UAAUo8U,cAAgB,WACxC,MAAO,mBACX,EAIAmhtB,EAAkBv9hC,UAAUymI,QAAU,WAClC,OAAO,CACX,EACO825B,CACX,CAnNuC,GCAhC,SAASsB,IAAgBtlgC,GAC5B,IACIl6B,EADA+xD,EAAa,GAEb0t+B,EA0ED,SAAuBvlgC,GAC1B,IAAIyL,EAAY,wCACZ+T,EAAU,GACV00jB,EAAW,GACXjnmB,EAAQ,CAAC,EACbw+B,EAAU+Z,UAAY,EACtB,IAAIgg/B,GAAgB,EACpBv4hC,EAAQw+B,EAAU9D,KAAK3H,GACvB,KAAO/yB,GAAO,CACV,GAAiB,MAAbA,EAAM,GAAY,CAElBu4hC,GAAgB,CACpB,MACSv4hC,EAAM,IACoB,OAA3BA,EAAM,GAAGuJ,eACLgpC,EAAQtmD,QACRg7mB,EAAShymB,KAAKs9C,GAElB00jB,EAAShymB,KAAK,CAAC,MACfs9C,EAAU,CAACvyC,EAAM,GAAG+P,UAAU,EAAG,MAG7BwiC,EAAQtmD,QACRg7mB,EAAShymB,KAAKs9C,GAElBA,EAAU,CAACvyC,EAAM,KAErBu4hC,GAAgB,IAGXhm/B,EAAQtmD,SACTsmD,EAAU,IAETgm/B,GACDhm/B,EAAQt9C,KAAKyZ,OAAO1O,EAAM,KAE9Bu4hC,GAAgB,GAEpBv4hC,EAAQw+B,EAAU9D,KAAK3H,EAC3B,CACIwf,EAAQtmD,QACRg7mB,EAAShymB,KAAKs9C,GAElB,OAAO00jB,CACX,CAtH0Buxb,CAAczlgC,GACpC,GAAIulgC,EAAgBrsiC,OAAS,EACzB,IAAK,IAAI+I,EAAI,EAAGA,EAAIsjiC,EAAgBrsiC,OAAQ+I,IAAK,CAC7C,IAAIsnI,EAAKg85B,EAAgBljhC,SAASpgB,EAAE2K,WAAY,KAC5C4gB,EAAO,GAEX,QADAA,EAAO+7G,EAAG,IACG/yH,eACT,IAAK,IACD,IAAK1Q,EAAI,EAAGA,EAAIyjI,EAAGrwI,OAAQ4M,IACvB+xD,EAAW31D,KAAK,CAAE47f,QAAStwe,EAAMxd,EAAGu5H,EAAGlnH,SAASvc,EAAE8G,WAAY,KAAMqD,EAAGs5H,EAAGzjI,EAAI,KAC9EA,GAAQ,EACK,MAAT0nB,EACAA,EAAO,IAEO,MAATA,IACLA,EAAO,KAGf,MACJ,IAAK,IACL,IAAK,IACD,IAAK1nB,EAAI,EAAGA,EAAIyjI,EAAGrwI,OAAQ4M,IACvB+xD,EAAW31D,KAAK,CAAE47f,QAAStwe,EAAMxd,EAAGu5H,EAAGlnH,SAASvc,EAAE8G,WAAY,KAAMqD,EAAGs5H,EAAGzjI,EAAI,KAC9EA,GAAQ,EAEZ,MACJ,IAAK,IACD,IAAKA,EAAI,EAAGA,EAAIyjI,EAAGrwI,OAAQ4M,IACvB+xD,EAAW31D,KAAK,CAAE47f,QAAStwe,EAAMxd,EAAGu5H,EAAGlnH,SAASvc,EAAE8G,WAAY,OAElE,MACJ,IAAK,IACD,IAAK9G,EAAI,EAAGA,EAAIyjI,EAAGrwI,OAAQ4M,IACvB+xD,EAAW31D,KAAK,CAAE47f,QAAStwe,EAAMvd,EAAGs5H,EAAGlnH,SAASvc,EAAE8G,WAAY,OAElE,MACJ,IAAK,IACDirD,EAAW31D,KAAK,CAAE47f,QAAStwe,IAC3B,MACJ,IAAK,IACD,IAAK1nB,EAAI,EAAGA,EAAIyjI,EAAGrwI,OAAQ4M,IACvB+xD,EAAW31D,KAAK,CACZ47f,QAAStwe,EAAMmpnB,GAAIptgB,EAAGlnH,SAASvc,EAAE8G,WAAY,KAAMgqoB,GAAIrtgB,EAAGzjI,EAAI,GAAI+woB,GAAIttgB,EAAGzjI,EAAI,GAAIgxoB,GAAIvtgB,EAAGzjI,EAAI,GAAIkK,EAAGu5H,EAAGzjI,EAAI,GAAImK,EAAGs5H,EAAGzjI,EAAI,KAE5HA,GAAQ,EAEZ,MACJ,IAAK,IACD,IAAKA,EAAI,EAAGA,EAAIyjI,EAAGrwI,OAAQ4M,IACvB+xD,EAAW31D,KAAK,CAAE47f,QAAStwe,EAAMqpnB,GAAIttgB,EAAGlnH,SAASvc,EAAE8G,WAAY,KAAMkqoB,GAAIvtgB,EAAGzjI,EAAI,GAAIkK,EAAGu5H,EAAGzjI,EAAI,GAAImK,EAAGs5H,EAAGzjI,EAAI,KAC5GA,GAAQ,EAEZ,MACJ,IAAK,IACD,IAAKA,EAAI,EAAGA,EAAIyjI,EAAGrwI,OAAQ4M,IACvB+xD,EAAW31D,KAAK,CAAE47f,QAAStwe,EAAMmpnB,GAAIptgB,EAAGlnH,SAASvc,EAAE8G,WAAY,KAAMgqoB,GAAIrtgB,EAAGzjI,EAAI,GAAIkK,EAAGu5H,EAAGzjI,EAAI,GAAImK,EAAGs5H,EAAGzjI,EAAI,KAC5GA,GAAQ,EAEZ,MACJ,IAAK,IACD,IAAKA,EAAI,EAAGA,EAAIyjI,EAAGrwI,OAAQ4M,IACvB+xD,EAAW31D,KAAK,CACZ47f,QAAStwe,EAAMk4gC,GAAIn85B,EAAGlnH,SAASvc,EAAE8G,WAAY,KAAM+4hC,GAAIp85B,EAAGzjI,EAAI,GAAIuha,MAAO99R,EAAGzjI,EAAI,GAAI8/hC,SAAUr85B,EAAGzjI,EAAI,GACrGk0T,MAAOzwL,EAAGzjI,EAAI,GAAIkK,EAAGu5H,EAAGzjI,EAAI,GAAImK,EAAGs5H,EAAGzjI,EAAI,KAE9CA,GAAQ,EAIxB,CAEJ,OAAO+xD,CACX,CAkFO,SAASgu+B,IAAsBhu+B,GAClC,IAAIiu+B,EACAC,EACApvZ,EACAC,EACAC,EACAC,EACA9moB,EACAC,EACA/W,EACA+I,EAGA6/0B,EAAW,GACf,IAAK9x0B,EAAI,EAAGC,EAAI,EAAGhO,EAAI,EAAG/I,EAAS2+D,EAAW3+D,OAAQ+I,EAAI/I,IAAU+I,EAAG,CACnE,IAEIurB,EADAw4gC,EADMnu+B,EAAWx1C,SAASpgB,EAAE2K,WAAY,KAG5C4gB,EAAOw4gC,EAAIloiB,QACP,OAAQkoiB,IACRpvZ,EAAKovZ,EAAIpvZ,IAET,OAAQovZ,IACRlvZ,EAAKkvZ,EAAIlvZ,IAET,OAAQkvZ,IACRrvZ,EAAKqvZ,EAAIrvZ,IAET,OAAQqvZ,IACRnvZ,EAAKmvZ,EAAInvZ,IAET,MAAOmvZ,IACPh2hC,EAAIg2hC,EAAIh2hC,GAER,MAAOg2hC,IACP/1hC,EAAI+1hC,EAAI/1hC,GAEZ,IAAI6V,EAAOg8zB,EAASA,EAAS5o1B,OAAS,GACtC,OAAQs0B,GACJ,IAAK,IACDs0zB,EAAS5/0B,KAAK,CAAE47f,QAAS,IAAK9tf,EAAGA,EAAGC,EAAGA,IACvC,MACJ,IAAK,IACD6x0B,EAAS5/0B,KAAK,CAAE47f,QAAS,IAAKgoiB,GAAIA,EAAIC,GAAIA,EAAI/1hC,EAAGA,EAAGC,EAAGA,IACvD,MACJ,IAAK,IACD6x0B,EAAS5/0B,KAAK,CAAE47f,QAAS,IAAKgoiB,GAAIA,EAAIC,GAAIA,EAAI/1hC,EAAGA,EAAGC,EAAG81hC,IACvD,MACJ,IAAK,IACDjkN,EAAS5/0B,KAAK,CAAE47f,QAAS,IAAKgoiB,GAAIA,EAAIC,GAAIA,EAAI/1hC,EAAG81hC,EAAI71hC,EAAGA,IACxD,MACJ,IAAK,IACD6x0B,EAAS5/0B,KAAK,CAAE47f,QAAS,IAAKgoiB,GAAIA,EAAIC,GAAIA,EAAIpvZ,GAAIA,EAAIC,GAAIA,EAAIC,GAAIA,EAAIC,GAAIA,EAAI9moB,EAAGA,EAAGC,EAAGA,IACvF,MACJ,IAAK,IACD,GAAI6V,EAAM,CACN,IAAI28c,OAAO,EAOPwjkB,EAAO,CAAEj2hC,EAAG,EAAI81hC,GALhBrjkB,EADiB,MAAjB38c,EAAKg4e,SAAoC,MAAjBh4e,EAAKg4e,QACtB,CAAE9tf,EAAG8V,EAAK+wnB,GAAI5moB,EAAG6V,EAAKgxnB,IAGtB,CAAE9moB,EAAG81hC,EAAI71hC,EAAG81hC,IAEO/1hC,EAAGC,EAAG,EAAI81hC,EAAKtjkB,EAAKxyd,GAClD6x0B,EAAS5/0B,KAAK,CAAE47f,QAAS,IAAKgoiB,GAAIA,EAAIC,GAAIA,EAAIpvZ,GAAIsvZ,EAAKj2hC,EAAG4moB,GAAIqvZ,EAAKh2hC,EAAG4moB,GAAIA,EAAIC,GAAIA,EAAI9moB,EAAGA,EAAGC,EAAGA,GACnG,CACA,MACJ,IAAK,IAED6x0B,EAAS5/0B,KAAK,CAAE47f,QAAS,IAAKgoiB,GAAIA,EAAIC,GAAIA,EAAIpvZ,GAAIA,EAAIC,GAAIA,EAAI5moB,EAAGA,EAAGC,EAAGA,IACvE,MACJ,IAAK,IACD,GAAI6V,EAAM,CACF28c,OAAO,EAOPwjkB,EAAO,CAAEj2hC,EAAG,EAAI81hC,GALhBrjkB,EADiB,MAAjB38c,EAAKg4e,QACE,CAAE9tf,EAAG8V,EAAK6wnB,GAAI1moB,EAAG6V,EAAK8wnB,IAGtB,CAAE5moB,EAAG81hC,EAAI71hC,EAAG81hC,IAEO/1hC,EAAGC,EAAG,EAAI81hC,EAAKtjkB,EAAKxyd,GAClD6x0B,EAAS5/0B,KAAK,CAAE47f,QAAS,IAAKgoiB,GAAIA,EAAIC,GAAIA,EAAIpvZ,GAAIsvZ,EAAKj2hC,EAAG4moB,GAAIqvZ,EAAKh2hC,EAAGD,EAAGA,EAAGC,EAAGA,GACnF,CACA,MACJ,IAAK,IACD,IAAIi2hC,EAASF,EACbE,EAAOpoiB,QAAU,IACjBgkV,EAAS5/0B,KAAKgkiC,GACd,MACJ,IAAK,IACL,IAAK,IACDpkN,EAAS5/0B,KAAK,CAAE47f,QAAS,MACzB9tf,EAAI81hC,EACJ71hC,EAAI81hC,EAGC,MAATv4gC,GAAyB,MAATA,GAERvd,EAEZ61hC,EAAK91hC,EACL+1hC,EAAK91hC,CACT,CACA,OAAO6x0B,CACX,CA2FO,SAASqkN,IAAezjN,EAASl1zB,EAAM7mB,EAAKy/hC,EAASC,EAAIC,GAC5D,OAAQ94gC,GACJ,IAAK,IAIL,IAAK,IA8BL,IAAK,IACDk1zB,EAAQ1y0B,EAAIrJ,EAAIqJ,EAChB0y0B,EAAQzy0B,EAAItJ,EAAIsJ,EAChB,MA7BJ,IAAK,IACDyy0B,EAAQ1y0B,EAAIrJ,EAAIqJ,EAChB,MACJ,IAAK,IACD0y0B,EAAQzy0B,EAAItJ,EAAIsJ,EAChB,MACJ,IAAK,IACDyy0B,EAAQ1y0B,EAAIrJ,EAAIqJ,EAChB0y0B,EAAQzy0B,EAAItJ,EAAIsJ,EAChByy0B,EAAQ/rM,GAAKhwoB,EAAIgwoB,GACjB+rM,EAAQ9rM,GAAKjwoB,EAAIiwoB,GACjB8rM,EAAQ7rM,GAAKlwoB,EAAIkwoB,GACjB6rM,EAAQ5rM,GAAKnwoB,EAAImwoB,GACjB,MACJ,IAAK,IACD4rM,EAAQ1y0B,EAAIrJ,EAAIqJ,EAChB0y0B,EAAQzy0B,EAAItJ,EAAIsJ,EAChByy0B,EAAQ7rM,GAAKlwoB,EAAIkwoB,GACjB6rM,EAAQ5rM,GAAKnwoB,EAAImwoB,GACjB,MACJ,IAAK,IACD4rM,EAAQ1y0B,EAAIrJ,EAAIqJ,EAChB0y0B,EAAQzy0B,EAAItJ,EAAIsJ,EAChByy0B,EAAQ/rM,GAAKhwoB,EAAIgwoB,GACjB+rM,EAAQ9rM,GAAKjwoB,EAAIiwoB,GACjB,MAKJ,IAAK,IACD,IAAI8uZ,EAAK/+hC,EAAI++hC,GACTC,EAAKh/hC,EAAIg/hC,GACTS,IACAz/hC,EAAI++hC,GAAKA,GAAWW,EACpB1/hC,EAAIg/hC,GAAKA,GAAWW,GAExB5jN,EAAQ1y0B,EAAIrJ,EAAIqJ,EAChB0y0B,EAAQzy0B,EAAItJ,EAAIsJ,EAChByy0B,EAAQgjN,GAAK/+hC,EAAI++hC,GACjBhjN,EAAQijN,GAAKh/hC,EAAIg/hC,GACjB,MACJ,IAAK,IACL,IAAK,IACDjjN,EAAU,CAAE5kV,QAAS,KAG7B,OAAO4kV,CACX,CAEO,SAAS6jN,IAAc1hhC,EAAK2sR,EAAag1vB,EAAWC,GAevD,OAdI5hhC,IAAQ2hhC,EAEJ3hhC,EADA4hhC,IAAcD,EACL3hhC,EAAM2sR,GAAgB71R,OAAO6qhC,GAAah1vB,EAAc71R,OAAO6qhC,KACjEC,EAAY9qhC,OAAO6qhC,IAGlB7qhC,OAAOkJ,GAAO2sR,GAAgB71R,OAAO6qhC,GAAah1vB,EAAc71R,OAAO6qhC,IAI/EC,IAAcD,IACd3hhC,EAAM4hhC,GAGP9qhC,OAAOkJ,EAAI2zF,QAAQ,GAC9B,CAEO,SAASku7B,IAAqBnB,GACjC,IAAIO,EACAC,EACApvZ,EACAC,EACAC,EACAC,EACA9moB,EACAC,EACA/W,EACA+I,EACJ,IAAK+N,EAAI,EAAGC,EAAI,EAAGhO,EAAI,EAAG/I,EAASqsiC,EAAgBrsiC,OAAQ+I,EAAI/I,IAAU+I,EAAG,CACxE,IACI+jiC,EADOT,EAAgBljhC,SAASpgB,EAAE2K,WAAY,KAE9C4gB,EAAOw4gC,EAAIloiB,QACf,GAAI,cAAc7+e,KAAKuO,GACf,MAAOw4gC,IACPA,EAAIh2hC,EAAIA,EAAIg2hC,EAAIh2hC,GAEhB,MAAOg2hC,IACPA,EAAI/1hC,EAAIA,EAAI+1hC,EAAI/1hC,OAGnB,CACG,OAAQ+1hC,IACRA,EAAIrvZ,GAAKA,EAAK3moB,EAAIg2hC,EAAIrvZ,IAEtB,OAAQqvZ,IACRA,EAAInvZ,GAAKA,EAAK7moB,EAAIg2hC,EAAInvZ,IAEtB,OAAQmvZ,IACRA,EAAIpvZ,GAAKA,EAAK3moB,EAAI+1hC,EAAIpvZ,IAEtB,OAAQovZ,IACRA,EAAIlvZ,GAAKA,EAAK7moB,EAAI+1hC,EAAIlvZ,IAEtB,MAAOkvZ,IACPA,EAAIh2hC,EAAIA,GAAKg2hC,EAAIh2hC,GAEjB,MAAOg2hC,IACPA,EAAI/1hC,EAAIA,GAAK+1hC,EAAI/1hC,GAErB,IAAIi2hC,OAAS,EACb,OAAQ14gC,GACJ,IAAK,IACL,IAAK,IACD04gC,EAAS,CAAEpoiB,QAAS,IAAK9tf,EAAGA,EAAGC,EAAGA,GAClC,MACJ,IAAK,IACL,IAAK,IACDi2hC,EAAS,CAAEpoiB,QAAS,IAAK9tf,EAAGA,EAAGC,EAAGA,GAClC,MACJ,IAAK,IACL,IAAK,IACDi2hC,EAAS,CAAEpoiB,QAAS,IAAK9tf,EAAGA,GAC5B,MACJ,IAAK,IACL,IAAK,IACDk2hC,EAAS,CAAEpoiB,QAAS,IAAK7tf,EAAGA,GAC5B,MACJ,IAAK,IACL,IAAK,IACDi2hC,EAAS,CAAEpoiB,QAAS,IAAK9tf,EAAGA,EAAGC,EAAGA,EAAG0moB,GAAIA,EAAIC,GAAIA,EAAIC,GAAIA,EAAIC,GAAIA,GACjE,MACJ,IAAK,IACL,IAAK,IACDovZ,EAAS,CAAEpoiB,QAAS,IAAK9tf,EAAGA,EAAGC,EAAGA,EAAG4moB,GAAIA,EAAIC,GAAIA,GACjD,MACJ,IAAK,IACL,IAAK,IACDovZ,EAAS,CAAEpoiB,QAAS,IAAK9tf,EAAGA,EAAGC,EAAGA,EAAG0moB,GAAIA,EAAIC,GAAIA,GACjD,MACJ,IAAK,IACL,IAAK,IACDsvZ,EAAS,CAAEpoiB,QAAS,IAAK9tf,EAAGA,EAAGC,EAAGA,GAClC,MACJ,IAAK,IACL,IAAK,KACDi2hC,EAAS,CAAEpoiB,QAAS,IAAK9tf,EAAGA,EAAGC,EAAGA,IAC3By1hC,GAAKM,EAAIN,GAChBQ,EAAOP,GAAKK,EAAIL,GAChBO,EAAO7+nB,MAAQ2+nB,EAAI3+nB,MACnB6+nB,EAAON,SAAWI,EAAIJ,SACtBM,EAAOlsuB,MAAQgsuB,EAAIhsuB,MACnB,MACJ,IAAK,IACL,IAAK,IACDksuB,EAAS,CAAEpoiB,QAAS,KACpB9tf,EAAI81hC,EACJ71hC,EAAI81hC,EACJG,EAASX,EAAgBljhC,SAASpgB,EAAE2K,WAAY,KAGpDs5hC,IACAX,EAAgBljhC,SAASpgB,EAAE2K,WAAY,KAAOs5hC,EAEtD,CACa,MAAT14gC,GAAyB,MAATA,IAChBs4gC,EAAK91hC,EACL+1hC,EAAK91hC,EAEb,CACA,OAAOs1hC,CACX,CAEO,SAASoB,IAAcpB,GAC1B,IACItjiC,EADA2kiC,EAAe,GAEnB,IAAK3kiC,EAAI,EAAGA,EAAIsjiC,EAAgBrsiC,OAAQ+I,IAEhC2kiC,GADM,IAAN3kiC,EACgBqhuB,IAAUiiU,EAAgBljhC,SAASpgB,EAAE2K,WAAY,MAGjD,IAAM02tB,IAAUiiU,EAAgBljhC,SAASpgB,EAAE2K,WAAY,MAG/E,OAAOg6hC,CACX,CAEO,SAAStjU,IAAU38tB,GACtB,IAAI4X,EAAS,GACb,OAAQ5X,EAAIm3f,SACR,IAAK,IACL,IAAK,IACDv/e,EAAS5X,EAAIm3f,QACb,MACJ,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IA+BL,IAAK,IACL,IAAK,IACDv/e,EAAS5X,EAAIm3f,QAAU,IAAMn3f,EAAIqJ,EAAI,IAAMrJ,EAAIsJ,QA9BnD,IAAK,IACL,IAAK,IACDsO,EAAS5X,EAAIm3f,QAAU,IAAMn3f,EAAIgwoB,GAAK,IAAMhwoB,EAAIiwoB,GAAK,IAAMjwoB,EAAIkwoB,GAAK,IAAMlwoB,EAAImwoB,GAAK,IAAMnwoB,EAAIqJ,EAAI,IAAMrJ,EAAIsJ,EAC3G,MACJ,IAAK,IACL,IAAK,IACDsO,EAAS5X,EAAIm3f,QAAU,IAAMn3f,EAAIgwoB,GAAK,IAAMhwoB,EAAIiwoB,GAAK,IAAMjwoB,EAAIqJ,EAAI,IAAMrJ,EAAIsJ,EAC7E,MACJ,IAAK,IACL,IAAK,IACD,IAAI42hC,EAAMlgiC,EAAIm3f,QACVgpiB,EAAMngiC,EAAI0ga,MACVlyY,EAAKxuB,EAAIi/hC,SAAW,IAAM,IAC1B7uhC,EAAKpQ,EAAIqzT,MAAQ,IAAM,IAC3Bz7S,EAASsohC,EAAM,IAAMlgiC,EAAI++hC,GAAK,IAAM/+hC,EAAIg/hC,GAAK,IAAMmB,EAAM,IAAM3xgC,EAAI,IAAMpe,EAAI,IAAMpQ,EAAIqJ,EAAI,IAAMrJ,EAAIsJ,EACrG,MACJ,IAAK,IACL,IAAK,IACDsO,EAAS5X,EAAIm3f,QAAU,IAAMn3f,EAAIqJ,EACjC,MACJ,IAAK,IACL,IAAK,IACDuO,EAAS5X,EAAIm3f,QAAU,IAAMn3f,EAAIsJ,EACjC,MACJ,IAAK,IACL,IAAK,IACDsO,EAAS5X,EAAIm3f,QAAU,IAAMn3f,EAAIkwoB,GAAK,IAAMlwoB,EAAImwoB,GAAK,IAAMnwoB,EAAIqJ,EAAI,IAAMrJ,EAAIsJ,EAMrF,OAAOsO,CACX,CCvlBA,ICIWwohC,IDJP/q/B,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAazC2pS,IAA0C,SAAUxoJ,EAAYl/L,EAAQiE,EAAKkkB,GAC7E,IAA2HhvB,EAAvH6e,EAAIld,UAAUC,OAAQkgH,EAAIjjG,EAAI,EAAIhY,EAAkB,OAATmoB,EAAgBA,EAAO/wB,OAAOk+B,yBAAyBt1B,EAAQiE,GAAOkkB,EACrH,GAAuB,kBAAZuN,SAAoD,oBAArBA,QAAQiyT,SAAyB1sO,EAAIvlF,QAAQiyT,SAASzoJ,EAAYl/L,EAAQiE,EAAKkkB,QACpH,IAAK,IAAIrkB,EAAIo7L,EAAWnkM,OAAS,EAAG+I,GAAK,EAAGA,KAAS3K,EAAI+lM,EAAWp7L,MAAIm3G,GAAKjjG,EAAI,EAAI7e,EAAE8hH,GAAKjjG,EAAI,EAAI7e,EAAE6G,EAAQiE,EAAKg3G,GAAK9hH,EAAE6G,EAAQiE,KAASg3G,GAChJ,OAAOjjG,EAAI,GAAKijG,GAAK7jH,OAAO4c,eAAehU,EAAQiE,EAAKg3G,GAAIA,CAChE,EAMI4t7B,IAAgB,gBAChBx+oB,IAAgB,CAAC,QAAS,QAAS,SAanCy+oB,IAAyB,SAAUrq/B,GAQnC,SAASqq/B,EAAQryhC,EAAS3J,GACtB,IAAI7V,EAAQwnD,EAAOnnD,KAAKK,KAAM8e,EAAS3J,IAAYnV,KAQnD,OAPAV,EAAMkwZ,cAAgB,KACtBlwZ,EAAM4jZ,WAAY,EAClB5jZ,EAAM8xiC,eAAgB,EACtB9xiC,EAAMsxe,QAAS,EACftxe,EAAM+xiC,mBAAqB,KAC3B/xiC,EAAMs1d,OAAQ,EACdt1d,EAAMgyiC,eAAiBxyhC,EAChBxf,CACX,CA0rBA,OA3sBA4mD,IAAUir/B,EAASrq/B,GA0BnBqq/B,EAAQxgiC,UAAU+7U,kBAAoB,SAAUiF,EAASC,GACrD,IAAK,IAAItiV,EAAK,EAAGgmC,EAAK71C,OAAO8E,KAAKotV,GAAUriV,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CAE9D,OADWgmC,EAAGhmC,IAEV,IAAK,iBACDqoH,GAAMspR,eAAejhZ,KAAKuxiC,gBAC1B556B,GAAMwpR,YAAYnhZ,KAAKwxiC,kBAAmBxxiC,KAAKs9Y,eAAgBt9Y,KAAK2jE,aACpE,MACJ,IAAK,UACDg0D,GAAMwnR,WAAWn/Y,KAAKk4R,QAASl4R,KAAKwxiC,kBAAmBxxiC,KAAKs9Y,eAAgBt9Y,KAAKuxiC,eAAezkiC,WAChG9M,KAAK+1Z,iBACL,MACJ,IAAK,QACDp+R,GAAMqrL,SAAS2uC,EAAQnzU,MAAOxe,KAAKuxiC,eAAezkiC,WAClD,MACJ,IAAK,QAEG,IAAI2+d,EAAezre,KAAKurV,oBACxBvrV,KAAKurV,qBAAsB,EACtBvrV,KAAKs9e,QAAQt9e,KAAK4B,SACnB5B,KAAK4B,MAAQ5B,KAAK4B,MAAMkV,YAE5B9W,KAAKurV,oBAAsBkgJ,EAC3B9zW,GAAM+oB,SAAS1gJ,KAAK4B,MAAO5B,KAAKwxiC,kBAAmBxxiC,KAAKs9Y,eAAgBt9Y,KAAK+gZ,iBACzE/gZ,KAAKoxiC,gBACLpxiC,KAAKmV,QAAQvT,MAAQ5B,KAAKwxiC,kBAAkB5viC,OAEhD5B,KAAKqxiC,mBAAqBrxiC,KAAKwxiC,kBAAkB5viC,OAE5C5B,KAAKkjZ,WAAaljZ,KAAK40d,SAAiC,IAAvB50d,KAAKijZ,eACvCjjZ,KAAKwvZ,cAAgBxvZ,KAAKkjZ,UAAYljZ,KAAK4B,MAAQ5B,KAAKwvZ,cACxDxvZ,KAAKijZ,eAAgB,IAEhBl3E,GAAkB/rU,KAAKkjZ,aAAeljZ,KAAKkjZ,WAC5CljZ,KAAKkjZ,YAAcljZ,KAAKijZ,eAAmBjjZ,KAAKkjZ,WAAan3E,GAAkB/rU,KAAKijZ,iBACxFjjZ,KAAK83d,mBAGb,MACJ,IAAK,iBAEG93d,KAAK61d,0BACL71d,KAAKm3d,0BACLn3d,KAAK81d,iBAAgB,GACrB91d,KAAKgwK,YAAc+7J,GAAkB/rU,KAAKyxiC,UAAY956B,GAAMipR,kBAAkB5gZ,KAAKuxiC,eAAezkiC,UAAW9M,KAAKyxiC,UAAY956B,GAAMipR,kBAAkB5gZ,KAAKuxiC,eAAezkiC,UAAW9M,KAAKmV,SAE9L,MACJ,IAAK,WACDwiH,GAAMqnR,YAAYh/Y,KAAKu+Y,SAAUv+Y,KAAKwxiC,mBACtC,MACJ,IAAK,OACsC,aAAnCxxiC,KAAKwxiC,kBAAkBppgC,UACvBpoC,KAAKwxiC,kBAAkBx8gC,aAAa,OAAQh1B,KAAK4M,MACjD+qH,GAAMipR,kBAAkB5gZ,KAAKuxiC,eAAezkiC,UAAW9M,KAAKmV,SAC5DnV,KAAK83d,oBAET,MACJ,IAAK,kBACsC,aAAnC93d,KAAKwxiC,kBAAkBppgC,UACvBuvF,GAAM+nR,eAAe1/Y,KAAK+gZ,gBAAiB/gZ,KAAKwxiC,kBAAmBxxiC,KAAKuxiC,gBACxEvxiC,KAAK+1Z,kBAET,MACJ,IAAK,YACDp+R,GAAMgiR,aAAa35Y,KAAKq4V,UAAW,CAACr4V,KAAKuxiC,eAAezkiC,YACxD,MACJ,IAAK,cACD6qH,GAAMonR,eAAe/+Y,KAAK2jE,YAAa3jE,KAAKwxiC,mBAC5C756B,GAAM4lR,eAAev9Y,KAAKwxiC,kBAAmBxxiC,KAAKuxiC,eAAezkiC,WACjE,MACJ,IAAK,eACyB,OAAtB9M,KAAKw7f,cAA+C,KAAtBx7f,KAAKw7f,aACnCx7f,KAAKwxiC,kBAAkBh2iB,aAAex7f,KAAKw7f,aAG3Cx7f,KAAKw/Y,iBAAiB,CAAC,iBAE3B,MACJ,IAAK,WACDx/Y,KAAKuvW,eAAe5d,EAAQie,SAAUhe,EAAQge,UAC9C,MACJ,IAAK,SACD5vW,KAAKujZ,UAAY,IAAItkE,GAAqBj/U,KAAKD,QAC/CC,KAAK+zZ,KAAKruD,UAAU1lW,KAAKD,QACzBC,KAAKisV,cAAc,CAAEtoR,YAAa3jE,KAAK+zZ,KAAKhuD,YAAY,iBAAkB,GAC1EpuO,GAAMonR,eAAe/+Y,KAAK2jE,YAAa3jE,KAAKwxiC,mBAGxD,CACJ,EAOAL,EAAQxgiC,UAAUo8U,cAAgB,WAC9B,MAAO,SACX,EACAoktB,EAAQxgiC,UAAU2se,QAAU,SAAU3vc,GAClC,OAASA,GAAO,QAAQxkB,KAAKwkB,EACjC,EACAwjgC,EAAQxgiC,UAAUmoV,UAAY,WAO1B,GANA94V,KAAKgM,aAAehM,KAAKmV,QAAQguB,WAAU,GAC3CnjC,KAAK+mC,YAAc0uD,GAAQz1F,KAAKmV,QAAS,QACpC42T,GAAkB/rU,KAAK+mC,eACxB/mC,KAAK4we,QAAS,GAGW,gBAAzB5we,KAAKmV,QAAQizB,QAA2B,CAMxC,IALA,IAAIkha,EAAazub,GAAS,gBAAiB7a,KAAKmV,SAC5CkiS,EAAer3S,KAAKgwK,UACpBhwK,KAAKc,cAAc,YACnBd,KAAKc,cAAc,SACnB2rB,EAAQ,EACAA,EAAQzsB,KAAKmV,QAAQ7J,WAAWlI,OAAQqpB,IAAS,CAEnC,QADlBy/G,EAAgBlsI,KAAKmV,QAAQ7J,WAAWmhB,GAAO0E,WACH,UAAlB+6G,GAC1BmrK,EAAariR,aAAak3G,EAAelsI,KAAKmV,QAAQ7J,WAAWmhB,GAAO80H,WACxE81J,EAAanuQ,UAAYlpC,KAAKmV,QAAQ+zB,UAChB,SAAlBgjG,GACAlsI,KAAKmV,QAAQ4f,gBAAgB,SAGV,UAAlBm3G,GACLmrK,EAAariR,aAAak3G,EAAelsI,KAAKmV,QAAQpU,UAAU4xB,MAAM,KAAKvsB,QAAO,SAAUmvB,GAAQ,OAA+B,IAAxBA,EAAK5qB,QAAQ,MAAc,IAAG3E,KAAK,KAEtJ,CACAhG,KAAKmV,QAAQuc,YAAY2lR,GACzBr3S,KAAKmV,QAAUkiS,EACf32J,GAAS,gBAAiB4oT,EAAYtpc,KAAKmV,QAC/C,CACAnV,KAAK61d,0BACL71d,KAAK81d,iBAAgB,IAChB/pJ,GAAkB/rU,KAAKsxiC,sBAAqDjuiC,IAAjCrD,KAAKsxiC,eAAsB,OAA4C,KAAvBtxiC,KAAKmV,QAAQvT,OACzG5B,KAAKisV,cAAc,CAAErqV,MAAO5B,KAAKmV,QAAQvT,QAAS,GAEzB,aAAzB5B,KAAKmV,QAAQizB,SACbpoC,KAAKmV,QAAQ6f,aAAa,OAAQh1B,KAAK4M,MAEzB,SAAd5M,KAAK4M,MACL5M,KAAKmV,QAAQ6f,aAAa,OAAQ,WAEtCh1B,KAAKujZ,UAAY,IAAItkE,GAAqBj/U,KAAKD,QAC/C,IAAIq1d,EAAa,CAAEzxZ,YAAa3jE,KAAK2jE,aAWrC,GAVA3jE,KAAK+zZ,KAAO,IAAIxuD,GAAK,UAAW6vH,EAAYp1d,KAAKD,QACJ,KAAzCC,KAAK+zZ,KAAKhuD,YAAY,gBACtB/lW,KAAKisV,cAAc,CAAEtoR,YAAa3jE,KAAK2jE,aAAe3jE,KAAK+zZ,KAAKhuD,YAAY,iBAAkB,GAE7F/lW,KAAKmV,QAAQ2f,aAAa,OAC3B90B,KAAKmV,QAAQ6f,aAAa,KAAM+3S,GAAY,YAE3C/sU,KAAKmV,QAAQ2f,aAAa,SAC3B90B,KAAKmV,QAAQ6f,aAAa,OAAQh1B,KAAKmV,QAAQmd,aAAa,OAEnC,UAAzBtyB,KAAKmV,QAAQizB,SAAuBpoC,KAAKgwK,UAAW,CACpDhwK,KAAKoxiC,eAAgB,EACrBpxiC,KAAKyxiC,SAAWzxiC,KAAKc,cAAc,YACnCd,KAAKmV,QAAQqf,WAAWG,aAAa30B,KAAKyxiC,SAAUzxiC,KAAKmV,SACzDnV,KAAKmV,QAAQ6f,aAAa,OAAQ,UAClCh1B,KAAKyxiC,SAASz8gC,aAAa,OAAQh1B,KAAKmV,QAAQmd,aAAa,SAC7DtyB,KAAKmV,QAAQ4f,gBAAgB,QAC7B/0B,KAAKyxiC,SAASz8gC,aAAa,OAAQh1B,KAAKmV,QAAQmd,aAAa,SAC7DtyB,KAAKmV,QAAQ4f,gBAAgB,QAC7B/0B,KAAKyxiC,SAASz8gC,aAAa,KAAM+3S,GAAY,aAC7C,IAAI2kuB,EAAgB,CAAC,cAAe,WAAY,QAAS,WAAY,OAAQ,gBAC7E,IAASjlhC,EAAQ,EAAGA,EAAQzsB,KAAKmV,QAAQ7J,WAAWlI,OAAQqpB,IAAS,CACjE,IAAIy/G,EAAgBlsI,KAAKmV,QAAQ7J,WAAWmhB,GAAO0E,SAC/CnxB,KAAKmV,QAAQ2f,aAAao3G,IAAkBwmR,IAAc/nZ,QAAQuhI,GAAiB,GAC/D,OAAlBA,GAA4C,SAAlBA,GAA8C,iBAAlBA,IAExDlsI,KAAKyxiC,SAASz8gC,aAAak3G,EAAelsI,KAAKmV,QAAQ7J,WAAWmhB,GAAO80H,WACrEmw5B,EAAc/miC,QAAQuhI,GAAiB,IACvClsI,KAAKmV,QAAQ4f,gBAAgBm3G,GAC7Bz/G,KAGZ,CACJ,CACJ,EACA0khC,EAAQxgiC,UAAUmld,gBAAkB,SAAU5hE,GAG1C,IAFA,IAES5kZ,EAAK,EAAGqiiC,EAFLz9oB,EAAYnoF,GAAkB/rU,KAAKs2Z,gBAAkB,GAAK72Z,OAAO8E,KAAKvE,KAAKs2Z,gBACnF,CAAC,cAAe,WAAY,QAAS,WAAY,OAAQ,gBAC3BhnZ,EAAKqiiC,EAAQvuiC,OAAQkM,IAAM,CACzD,IAAIhD,EAAMqliC,EAAQriiC,GAClB,IAAKy8T,GAAkB/rU,KAAKmV,QAAQmd,aAAahmB,IAC7C,OAAQA,GACJ,IAAK,WACD,GAAKy/T,GAAkB/rU,KAAKsxiC,sBAAuDjuiC,IAAnCrD,KAAKsxiC,eAAwB,SAAqBp9oB,EAAW,CACzG,IAAIh8H,EAA6C,aAAnCl4R,KAAKmV,QAAQmd,aAAahmB,IAA0D,KAAnCtM,KAAKmV,QAAQmd,aAAahmB,IAClD,SAAnCtM,KAAKmV,QAAQmd,aAAahmB,GAC9BtM,KAAKisV,cAAc,CAAE/zD,QAASA,IAAYg8H,EAC9C,CACA,MACJ,IAAK,WACD,GAAKnoF,GAAkB/rU,KAAKsxiC,sBAAwDjuiC,IAApCrD,KAAKsxiC,eAAyB,UAAqBp9oB,EAAW,CAC1G,IAAI3V,EAA8C,aAAnCv+Y,KAAKmV,QAAQmd,aAAahmB,IAA0D,KAAnCtM,KAAKmV,QAAQmd,aAAahmB,IAChD,SAAnCtM,KAAKmV,QAAQmd,aAAahmB,GACjCtM,KAAKisV,cAAc,CAAEsyD,SAAUA,IAAa2V,EAChD,CACA,MACJ,IAAK,eACInoF,GAAkB/rU,KAAKsxiC,sBAA2DjuiC,IAAvCrD,KAAKsxiC,eAA4B,aAAqBp9oB,IAClGl0Z,KAAKisV,cAAc,CAAEtoR,YAAa3jE,KAAKmV,QAAQwuD,cAAgBuwV,GAEnE,MACJ,IAAK,eACD,GAAKnoF,GAAkB/rU,KAAKsxiC,sBAA4DjuiC,IAAxCrD,KAAKsxiC,eAA6B,cAAqBp9oB,EAAW,CAC9G,IAAI09oB,EAAgD,QAA9B5xiC,KAAKmV,QAAQqmf,aAAyB,MAAQ,KACpEx7f,KAAKisV,cAAc,CAAEuvK,aAAco2iB,IAAoB19oB,EAC3D,CACA,MACJ,IAAK,SACKnoF,GAAkB/rU,KAAKsxiC,sBAAqDjuiC,IAAjCrD,KAAKsxiC,eAAsB,OAAqBp9oB,IAAqC,KAAvBl0Z,KAAKmV,QAAQvT,OACxH5B,KAAKisV,cAAc,CAAErqV,MAAO5B,KAAKmV,QAAQvT,QAAUsyZ,GAEvD,MACJ,IAAK,QACInoF,GAAkB/rU,KAAKsxiC,sBAAoDjuiC,IAAhCrD,KAAKsxiC,eAAqB,MAAqBp9oB,IAC3Fl0Z,KAAKisV,cAAc,CAAEr/U,KAAM5M,KAAKmV,QAAQvI,OAASsnZ,GAKrE,CACJ,EAOAi9oB,EAAQxgiC,UAAUyJ,OAAS,WACvB,IAAI68c,EAAuBj3d,KAAK4vW,SAC3B7jC,GAAkB/rU,KAAK4vW,WAA+B,KAAlB5vW,KAAK4vW,WAC1CqnH,EAAuBj3d,KAAK6xiC,uBAAuB7xiC,KAAK4vW,WAE5D5vW,KAAKwxiC,kBAAqBxxiC,KAAKoxiC,cAAiBpxiC,KAAKyxiC,SAAWzxiC,KAAKmV,QACrEnV,KAAKuxiC,eAAiB556B,GAAMkpR,YAAY,CACpC1rY,QAASnV,KAAKwxiC,kBACdl0pB,eAAgBt9Y,KAAKs9Y,eACrB5qX,WAAY,CACRwlQ,QAASl4R,KAAKk4R,QACdmgE,UAAWr4V,KAAKq4V,UAChBuX,SAAUqnH,EACV14E,SAAUv+Y,KAAKu+Y,SACf56U,YAAa3jE,KAAK2jE,YAClBo9U,gBAAiB/gZ,KAAK+gZ,mBAG9B/gZ,KAAKm3d,0BACDn3d,KAAKoxiC,eACLpxiC,KAAKwxiC,kBAAkBh9gC,WAAWG,aAAa30B,KAAKmV,QAASnV,KAAKwxiC,mBAEtExxiC,KAAK+jW,aACAh4B,GAAkB/rU,KAAK4B,SACxB+1H,GAAM+oB,SAAS1gJ,KAAK4B,MAAO5B,KAAKwxiC,kBAAmBxxiC,KAAKs9Y,eAAgBt9Y,KAAK+gZ,iBACzE/gZ,KAAKoxiC,gBACLpxiC,KAAKmV,QAAQvT,MAAQ5B,KAAKwxiC,kBAAkB5viC,QAG/CmqU,GAAkB/rU,KAAK4B,SACxB5B,KAAKghJ,aAAehhJ,KAAK4B,MACzB5B,KAAK2vf,mBAEiB,OAAtB3vf,KAAKw7f,cAA+C,KAAtBx7f,KAAKw7f,aACnCx7f,KAAKwxiC,kBAAkBh2iB,aAAex7f,KAAKw7f,aAErCzvL,GAAkB/rU,KAAKsxiC,sBAA4DjuiC,IAAxCrD,KAAKsxiC,eAA6B,cACnFtxiC,KAAKw/Y,iBAAiB,CAAC,iBAE3Bx/Y,KAAKwvZ,cAAgBxvZ,KAAK4B,MAC1B5B,KAAKqxiC,mBAAqBrxiC,KAAK4B,MAC/B5B,KAAKwxiC,kBAAkBh5hC,aAAexY,KAAKwxiC,kBAAkB5viC,MAC7D+1H,GAAMqrL,SAAShjT,KAAKwe,MAAOxe,KAAKuxiC,eAAezkiC,YAC1Ci/T,GAAkBt2O,GAAQz1F,KAAKmV,QAAS,cAAgBsgF,GAAQz1F,KAAKmV,QAAS,YAAYvG,WAC3F5O,KAAKk4R,SAAU,GAEnBl4R,KAAK45V,gBACT,EACAu3sB,EAAQxgiC,UAAUwmd,wBAA0B,WACxC,IAAKprJ,GAAkB/rU,KAAKs2Z,gBACxB,IAAK,IAAIhnZ,EAAK,EAAGgmC,EAAK71C,OAAO8E,KAAKvE,KAAKs2Z,gBAAiBhnZ,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CAC1E,IAAIhD,EAAMgpC,EAAGhmC,GACb,GAAIojZ,IAAc/nZ,QAAQ2B,IAAQ,EAC9B,GAAY,UAARA,EAAiB,CACjB,IAAIiqZ,EAAqBv2Z,KAAK6xiC,uBAAuB7xiC,KAAKs2Z,eAAe,GAAKhqZ,IACnD,KAAvBiqZ,GACA/tI,GAAS,CAACxoR,KAAKuxiC,eAAezkiC,WAAYypZ,EAAmB5jY,MAAM,KAE3E,MACK,GAAY,UAARrmB,EAAiB,CACtB,IAAIkqZ,EAAWx2Z,KAAKuxiC,eAAezkiC,UAAUwlB,aAAahmB,GAC1DkqZ,EAAYzqF,GAAkByqF,GAC1Bx2Z,KAAKs2Z,eAAe,GAAKhqZ,GADckqZ,EAAWx2Z,KAAKs2Z,eAAe,GAAKhqZ,GAE/EtM,KAAKuxiC,eAAezkiC,UAAUkoB,aAAa1oB,EAAKkqZ,EACpD,MAEIx2Z,KAAKuxiC,eAAezkiC,UAAUkoB,aAAa1oB,EAAKtM,KAAKs2Z,eAAe,GAAKhqZ,GAGrF,CAER,EACA6kiC,EAAQxgiC,UAAUkld,wBAA0B,WACxC,IAAK9pJ,GAAkB/rU,KAAKs2Z,gBACxB,IAAK,IAAIhnZ,EAAK,EAAGgmC,EAAK71C,OAAO8E,KAAKvE,KAAKs2Z,gBAAiBhnZ,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CAC1E,IAAIhD,EAAMgpC,EAAGhmC,GACTojZ,IAAc/nZ,QAAQ2B,GAAO,IAC7BtM,KAAKgwK,YAAc+7J,GAAkB/rU,KAAKyxiC,UAAYzxiC,KAAKyxiC,SAASz8gC,aAAa1oB,EAAKtM,KAAKs2Z,eAAe,GAAKhqZ,IAAQtM,KAAKmV,QAAQ6f,aAAa1oB,EAAKtM,KAAKs2Z,eAAe,GAAKhqZ,IAEvL,CAER,EACA6kiC,EAAQxgiC,UAAU4+V,eAAiB,SAAUh3L,EAAUsmO,GACnDlnR,GAAMinR,YAAY5+Y,KAAK6xiC,uBAAuBt53B,GAAW,CAACv4K,KAAKuxiC,eAAezkiC,WAAY9M,KAAK6xiC,uBAAuBhzpB,GAC1H,EACAsypB,EAAQxgiC,UAAUkhiC,uBAAyB,SAAU76vB,GACjD,IAAInsR,EAASmsR,EAIb,OAHK+0B,GAAkB/0B,IAAsC,KAAnBA,IACtCnsR,EAAUmsR,EAAe3mS,QAAQ,OAAQ,KAAMoiB,QAE5C5H,CACX,EACAsmhC,EAAQxgiC,UAAUg/e,gBAAkB,WAC3B3vf,KAAKkjZ,WACNljZ,KAAKwxiC,kBAAkBx8gC,aAAa,QAASh1B,KAAKghJ,aAE1D,EACAmw5B,EAAQxgiC,UAAUozV,WAAa,WAC3BlrH,GAAazlN,IAAIpzB,KAAKwxiC,kBAAmB,QAASxxiC,KAAKk4d,aAAcl4d,MACrE64O,GAAazlN,IAAIpzB,KAAKwxiC,kBAAmB,OAAQxxiC,KAAKm4d,gBAAiBn4d,MACvE64O,GAAazlN,IAAIpzB,KAAKwxiC,kBAAmB,QAASxxiC,KAAKi1Z,aAAcj1Z,MACrE64O,GAAazlN,IAAIpzB,KAAKwxiC,kBAAmB,SAAUxxiC,KAAKsxZ,cAAetxZ,MACnEA,KAAK4we,QACL/3P,GAAazlN,IAAIpzB,KAAK+mC,YAAa,QAAS/mC,KAAKs3e,UAAWt3e,MAEhEA,KAAK+1Z,kBACAhqF,GAAkB/rU,KAAKuxiC,eAAezkiC,UAAU8sB,cAAc,mBAA6C,SAAxB55B,KAAKs9Y,gBACtFt9Y,KAAKuxiC,eAAezkiC,UAAUo7Q,UAAUh1P,SAAS,eACpDlzB,KAAKuxiC,eAAezkiC,UAAUo7Q,UAAUh1P,SAAS,cACjD2lN,GAAazlN,IAAKpzB,KAAKuxiC,eAAezkiC,UAAU8sB,cAAc,iBAAmB,iBAAkB55B,KAAK8xiC,iBAAkB9xiC,KAElI,EACAmxiC,EAAQxgiC,UAAUmhiC,iBAAmB,WACjC9xiC,KAAKuxiC,eAAezkiC,UAAUo7Q,UAAU90P,IAAI,iBAC5C,IAAIg7Q,EAAQpuS,KAAKuxiC,eAAezkiC,UAAU8sB,cAAc,iBACnDmyS,GAAkB39B,KACnBA,EAAMlmB,UAAU90P,IAAI,eAChBg7Q,EAAMlmB,UAAUh1P,SAAS,mBACzBk7Q,EAAMlmB,UAAU/0P,OAAO,kBAGnC,EACAg+gC,EAAQxgiC,UAAUg20B,WAAa,SAAU/k1B,GACrC,IAAI6pe,EAAezre,KAAKurV,oBACxBvrV,KAAKurV,qBAAsB,EAC3BvrV,KAAK4B,MAAQA,EACb5B,KAAKurV,oBAAsBkgJ,CAC/B,EACA0lkB,EAAQxgiC,UAAU2me,UAAY,WAO1B,GANIt3e,KAAKkjZ,UACLljZ,KAAK2m1B,WAAW,IAGhB3m1B,KAAK2m1B,WAAW3m1B,KAAKghJ,eAEpB+qL,GAAkB/rU,KAAKuxiC,gBAAiB,CACzC,IAAInjwB,EAAQpuS,KAAKuxiC,eAAezkiC,UAAU8sB,cAAc,iBACnDmyS,GAAkB39B,IAAkC,WAAxBpuS,KAAKs9Y,iBAC7BvxE,GAAkB/rU,KAAKghJ,eAAuC,KAAtBhhJ,KAAKghJ,cAC9CotJ,EAAMlmB,UAAU90P,IAAI,kBACpBg7Q,EAAMlmB,UAAU/0P,OAAO,gBAEI,KAAtBnzB,KAAKghJ,eACVotJ,EAAMlmB,UAAU90P,IAAI,eACpBg7Q,EAAMlmB,UAAU/0P,OAAO,mBAGnC,CACJ,EACAg+gC,EAAQxgiC,UAAUund,aAAe,SAAUj/c,GACvC,IAAI2rU,EAAY,CACZ93U,UAAW9M,KAAKuxiC,eAAezkiC,UAC/BiqB,MAAO9d,EACPrX,MAAO5B,KAAK4B,OAEhB5B,KAAKsgS,QAAQ,QAASskD,EAC1B,EACAustB,EAAQxgiC,UAAUwnd,gBAAkB,SAAUl/c,GACb,OAAvBjZ,KAAKwvZ,eAAyC,OAAfxvZ,KAAK4B,OAAmD,KAAjC5B,KAAKwxiC,kBAAkB5viC,OAC9E5B,KAAKwvZ,gBAAkBxvZ,KAAK4B,OAC7B5B,KAAK83d,iBAAiB7+c,GAAM,GAEhC,IAAI2rU,EAAY,CACZ93U,UAAW9M,KAAKuxiC,eAAezkiC,UAC/BiqB,MAAO9d,EACPrX,MAAO5B,KAAK4B,OAEhB5B,KAAKsgS,QAAQ,OAAQskD,EACzB,EACAustB,EAAQxgiC,UAAUskZ,aAAe,SAAUh8Y,GAEvC,IACI2rU,EAAY,CACZ7tT,MAAO9d,EACPrX,MAAO5B,KAAKwxiC,kBAAkB5viC,MAC9B4tZ,cAAexvZ,KAAKqxiC,mBACpBvkiC,UAAW9M,KAAKuxiC,eAAezkiC,WAEnC9M,KAAKqxiC,mBAAqBrxiC,KAAKwxiC,kBAAkB5viC,MAE7C5B,KAAKkjZ,YATQljZ,KAUFu5d,YAAY,CAAE33d,MAAO5B,KAAKwxiC,kBAAkB5viC,QACvD5B,KAAKijZ,eAAgB,GAErBjjZ,KAAK40d,QACL50d,KAAKijZ,eAAgB,GAEzBjjZ,KAAKsgS,QAAQ,QAASskD,GACtB3rU,EAAK3K,iBACT,EACA6iiC,EAAQxgiC,UAAU2gZ,cAAgB,SAAUr4Y,GACxCjZ,KAAKisV,cAAc,CAAErqV,MAAO5B,KAAKwxiC,kBAAkB5viC,QAAS,GACxD5B,KAAKwvZ,eAAiBxvZ,KAAK4B,OAC3B5B,KAAK83d,iBAAiB7+c,GAAM,GAEhCA,EAAK3K,iBACT,EACA6iiC,EAAQxgiC,UAAUmnd,iBAAmB,SAAU/gc,EAAOg7gC,GAClD,IAAInttB,EAAY,CACZ7tT,MAAOA,EACPn1B,MAAO5B,KAAK4B,MACZ4tZ,cAAexvZ,KAAKwvZ,cACpB1iZ,UAAW9M,KAAKuxiC,eAAezkiC,UAC/B6rd,cAAeo5kB,IAA4B,EAC3C1/oB,aAAc0/oB,IAA4B,GAE9C/xiC,KAAKijZ,eAAgB,EACrBjjZ,KAAKsgS,QAAQ,SAAUskD,GACvB5kV,KAAKwvZ,cAAgBxvZ,KAAK4B,MAEG,UAAzB5B,KAAKmV,QAAQizB,SAAuBpoC,KAAKgwK,WAAmC,YAAtBi3K,GAAQ1qT,KAAK73B,OACnE1E,KAAKmV,QAAQvT,MAAQ5B,KAAKwxiC,kBAAkB5viC,MAEpD,EACAuviC,EAAQxgiC,UAAUolZ,eAAiB,WAC3B/1Z,KAAK+gZ,iBAAsD,aAAnC/gZ,KAAKwxiC,kBAAkBppgC,UAC3CpoC,KAAKk4R,QACLr/C,GAAazlN,IAAIpzB,KAAKuxiC,eAAe3xpB,YAAa,uBAAwB5/Y,KAAKgyiC,kBAAmBhyiC,MAGlG64O,GAAa1lN,OAAOnzB,KAAKuxiC,eAAe3xpB,YAAa,uBAAwB5/Y,KAAKgyiC,mBAG9F,EACAb,EAAQxgiC,UAAUqhiC,kBAAoB,SAAUj7gC,GAE5C,GADAA,EAAM1oB,kBACArO,KAAKuxiC,eAAe3xpB,YAAY13H,UAAUh1P,SApfvC,sBAofgElzB,KAAKuxiC,eAAezkiC,UAAUo7Q,UAAUh1P,SAAS,kBAAmB,CACzIykG,GAAM+oB,SAAS,GAAI1gJ,KAAKwxiC,kBAAmBxxiC,KAAKs9Y,eAAgBt9Y,KAAK+gZ,iBACjE/gZ,KAAKoxiC,gBACLpxiC,KAAKmV,QAAQvT,MAAQ5B,KAAKwxiC,kBAAkB5viC,OAEhD5B,KAAKisV,cAAc,CAAErqV,MAAO5B,KAAKwxiC,kBAAkB5viC,QAAS,GAC5D,IAAIgjV,EAAY,CACZ7tT,MAAOA,EACPn1B,MAAO5B,KAAKwxiC,kBAAkB5viC,MAC9B4tZ,cAAexvZ,KAAKqxiC,mBACpBvkiC,UAAW9M,KAAKuxiC,eAAezkiC,WAKnC,GAHA9M,KAAKsgS,QAAQ,QAASskD,GACtB5kV,KAAKqxiC,mBAAqBrxiC,KAAKwxiC,kBAAkB5viC,MACjD5B,KAAK83d,iBAAiB/gc,GAAO,GACzB0+D,GAAQz1F,KAAKmV,QAAS,QAAS,CAC/B,IAAIA,EAAUnV,KAAKmV,QACf+gZ,EAAahlY,SAAS8F,YAAY,iBACtCk/X,EAAWr/X,UAAU,SAAS,GAAO,GACrC1hB,EAAQ6lB,cAAck7X,EAC1B,CACJ,CACJ,EACAi7oB,EAAQxgiC,UAAU65b,aAAe,WAC7B3xN,GAAa1lN,OAAOnzB,KAAKwxiC,kBAAmB,QAASxxiC,KAAKk4d,cAC1Dr/O,GAAa1lN,OAAOnzB,KAAKwxiC,kBAAmB,OAAQxxiC,KAAKm4d,iBACzDt/O,GAAa1lN,OAAOnzB,KAAKwxiC,kBAAmB,QAASxxiC,KAAKi1Z,cAC1Dp8K,GAAa1lN,OAAOnzB,KAAKwxiC,kBAAmB,SAAUxxiC,KAAKsxZ,eACvDtxZ,KAAK4we,QACL/3P,GAAa1lN,OAAOnzB,KAAK+mC,YAAa,QAAS/mC,KAAKs3e,YAEnDvrK,GAAkB/rU,KAAKuxiC,eAAezkiC,UAAU8sB,cAAc,mBAA6C,SAAxB55B,KAAKs9Y,gBACtFt9Y,KAAKuxiC,eAAezkiC,UAAUo7Q,UAAUh1P,SAAS,cACpDlzB,KAAKuxiC,eAAezkiC,UAAUo7Q,UAAUh1P,SAAS,eACjD2lN,GAAa1lN,OAAQnzB,KAAKuxiC,eAAezkiC,UAAU8sB,cAAc,iBAAmB,iBAAkB55B,KAAK8xiC,iBAEnH,EAQAX,EAAQxgiC,UAAUymI,QAAU,WACxBp3I,KAAKwqc,eACwB,UAAzBxqc,KAAKmV,QAAQizB,SAAuBpoC,KAAKgwK,YACzCs6K,GAAOtqV,KAAKuxiC,eAAezkiC,UAAU6oB,qBAAqB,YAAY,IACtE31B,KAAKwxiC,kBAAoBxxiC,KAAKmV,QAC9BnV,KAAKmV,QAAQ4f,gBAAgB,SAEjC/0B,KAAKwxiC,kBAAkB5viC,MAAQ5B,KAAKwxiC,kBAAkBh5hC,aACtDxY,KAAKwxiC,kBAAkBtpxB,UAAU/0P,OAAO,WACxCnzB,KAAKw/Y,iBAAiB,CAAC,gBAAiB,gBAAiB,oBACpDzzE,GAAkB/rU,KAAKuxiC,kBACxBvxiC,KAAKuxiC,eAAezkiC,UAAU+yY,sBAAsB,WAAY7/Y,KAAKwxiC,mBACrElntB,GAAOtqV,KAAKuxiC,eAAezkiC,YAE/B9M,KAAKuxiC,eAAiB,KACtB556B,GAAMyf,UACNtwF,EAAOn2C,UAAUymI,QAAQz3I,KAAKK,KAClC,EASAmxiC,EAAQxgiC,UAAU+wY,QAAU,SAAUx3T,EAAUy3T,GAC5ChqR,GAAM+pR,QAAQx3T,EAAUy3T,EAAO3hZ,KAAKuxiC,eAAezkiC,UAAW9M,KAAKwxiC,kBAAmBxxiC,KAAKc,cAC/F,EAMAqwiC,EAAQxgiC,UAAU0pV,eAAiB,WAE/B,OAAOr6V,KAAK26V,aADI,CAAC,SAErB,EAQAw2sB,EAAQxgiC,UAAU8uY,cAAgB,SAAUn0Y,GACxC,IAAK,IAAIgE,EAAK,EAAGgmC,EAAK71C,OAAO8E,KAAK+G,GAAagE,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CACjE,IAAIhD,EAAMgpC,EAAGhmC,GACD,aAARhD,GACAtM,KAAKisV,cAAc,CAAE/zD,SAAS,IAAS,GACvCvgK,GAAMwnR,WAAWn/Y,KAAKk4R,QAASl4R,KAAKwxiC,kBAAmBxxiC,KAAKs9Y,eAAgBt9Y,KAAKuxiC,eAAezkiC,YAEnF,aAARR,GACLtM,KAAKisV,cAAc,CAAEsyD,UAAU,IAAQ,GACvC5mR,GAAMqnR,YAAYh/Y,KAAKu+Y,SAAUv+Y,KAAKwxiC,oBAEzB,UAARlliC,EACLtM,KAAKwxiC,kBAAkBtpxB,UAAU90P,IAAI9nB,EAAW,GAAKgB,IAExC,gBAARA,GACLtM,KAAKisV,cAAc,CAAEtoR,YAAar4D,EAAW,GAAKgB,KAAQ,GAC1DqrH,GAAMonR,eAAe/+Y,KAAK2jE,YAAa3jE,KAAKwxiC,qBAE/B,SAARlliC,GAAkBtM,KAAKwxiC,kBAAkBppgC,QAC9CpoC,KAAKwxiC,kBAAkBx8gC,aAAa1oB,EAAKhB,EAAW,GAAKgB,IAKjE,CACJ,EAOA6kiC,EAAQxgiC,UAAU6uY,iBAAmB,SAAUl0Y,GAC3C,IAAK,IAAIgE,EAAK,EAAGiqZ,EAAejuZ,EAAYgE,EAAKiqZ,EAAan2Z,OAAQkM,IAAM,CACxE,IAAIhD,EAAMitZ,EAAajqZ,GACX,aAARhD,GACAtM,KAAKisV,cAAc,CAAE/zD,SAAS,IAAQ,GACtCvgK,GAAMwnR,WAAWn/Y,KAAKk4R,QAASl4R,KAAKwxiC,kBAAmBxxiC,KAAKs9Y,eAAgBt9Y,KAAKuxiC,eAAezkiC,YAEnF,aAARR,GACLtM,KAAKisV,cAAc,CAAEsyD,UAAU,IAAS,GACxC5mR,GAAMqnR,YAAYh/Y,KAAKu+Y,SAAUv+Y,KAAKwxiC,oBAEzB,gBAARlliC,GACLtM,KAAKisV,cAAc,CAAEtoR,YAAa,OAAQ,GAC1Cg0D,GAAMonR,eAAe/+Y,KAAK2jE,YAAa3jE,KAAKwxiC,oBAG5CxxiC,KAAKwxiC,kBAAkBz8gC,gBAAgBzoB,EAE/C,CACJ,EAMA6kiC,EAAQxgiC,UAAU+nZ,QAAU,WACpBxnY,SAAS0vH,gBAAkB5gJ,KAAKwxiC,mBAAqBxxiC,KAAKk4R,UAC1Dl4R,KAAKwxiC,kBAAkBpniC,SACnBpK,KAAKuxiC,eAAezkiC,UAAUo7Q,UAAUh1P,SAAS,kBAC9ClzB,KAAKuxiC,eAAezkiC,UAAUo7Q,UAAUh1P,SAAS,cACjDlzB,KAAKuxiC,eAAezkiC,UAAUo7Q,UAAUh1P,SAAS,cACpDs1P,GAAS,CAACxoR,KAAKuxiC,eAAezkiC,WAAY,CAACokiC,MAGvD,EAMAC,EAAQxgiC,UAAUumZ,SAAW,WACrBhmY,SAAS0vH,gBAAkB5gJ,KAAKwxiC,mBAAqBxxiC,KAAKk4R,UAC1Dl4R,KAAKwxiC,kBAAkBtoiC,QACnBlJ,KAAKuxiC,eAAezkiC,UAAUo7Q,UAAUh1P,SAAS,kBAC9ClzB,KAAKuxiC,eAAezkiC,UAAUo7Q,UAAUh1P,SAAS,cACjDlzB,KAAKuxiC,eAAezkiC,UAAUo7Q,UAAUh1P,SAAS,cACpD+0P,GAAY,CAACjoR,KAAKuxiC,eAAezkiC,WAAY,CAACokiC,MAG1D,EACAnhtB,IAAW,CACPjB,GAAS,SACVqitB,EAAQxgiC,UAAW,YAAQ,GAC9Bo/U,IAAW,CACPjB,IAAS,IACVqitB,EAAQxgiC,UAAW,gBAAY,GAClCo/U,IAAW,CACPjB,GAAS,OACVqitB,EAAQxgiC,UAAW,aAAS,GAC/Bo/U,IAAW,CACPjB,GAAS,UACVqitB,EAAQxgiC,UAAW,sBAAkB,GACxCo/U,IAAW,CACPjB,GAAS,KACVqitB,EAAQxgiC,UAAW,gBAAY,GAClCo/U,IAAW,CACPjB,GAAS,OACVqitB,EAAQxgiC,UAAW,mBAAe,GACrCo/U,IAAW,CACPjB,GAAS,OACVqitB,EAAQxgiC,UAAW,oBAAgB,GACtCo/U,IAAW,CACPjB,GAAS,CAAC,IACXqitB,EAAQxgiC,UAAW,sBAAkB,GACxCo/U,IAAW,CACPjB,IAAS,IACVqitB,EAAQxgiC,UAAW,iBAAa,GACnCo/U,IAAW,CACPjB,IAAS,IACVqitB,EAAQxgiC,UAAW,eAAW,GACjCo/U,IAAW,CACPjB,IAAS,IACVqitB,EAAQxgiC,UAAW,uBAAmB,GACzCo/U,IAAW,CACPjB,IAAS,IACVqitB,EAAQxgiC,UAAW,yBAAqB,GAC3Co/U,IAAW,CACPjB,GAAS,OACVqitB,EAAQxgiC,UAAW,aAAS,GAC/Bo/U,IAAW,CACP94T,MACDk6gC,EAAQxgiC,UAAW,eAAW,GACjCo/U,IAAW,CACP94T,MACDk6gC,EAAQxgiC,UAAW,iBAAa,GACnCo/U,IAAW,CACP94T,MACDk6gC,EAAQxgiC,UAAW,cAAU,GAChCo/U,IAAW,CACP94T,MACDk6gC,EAAQxgiC,UAAW,YAAQ,GAC9Bo/U,IAAW,CACP94T,MACDk6gC,EAAQxgiC,UAAW,aAAS,GAC/Bo/U,IAAW,CACP94T,MACDk6gC,EAAQxgiC,UAAW,aAAS,GAC/BwgiC,EAAUphtB,IAAW,CACjBT,IACD6htB,EAEP,CA7sB6B,CA6sB3B/viC,IEnvBE8kD,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAazC2pS,IAA0C,SAAUxoJ,EAAYl/L,EAAQiE,EAAKkkB,GAC7E,IAA2HhvB,EAAvH6e,EAAIld,UAAUC,OAAQkgH,EAAIjjG,EAAI,EAAIhY,EAAkB,OAATmoB,EAAgBA,EAAO/wB,OAAOk+B,yBAAyBt1B,EAAQiE,GAAOkkB,EACrH,GAAuB,kBAAZuN,SAAoD,oBAArBA,QAAQiyT,SAAyB1sO,EAAIvlF,QAAQiyT,SAASzoJ,EAAYl/L,EAAQiE,EAAKkkB,QACpH,IAAK,IAAIrkB,EAAIo7L,EAAWnkM,OAAS,EAAG+I,GAAK,EAAGA,KAAS3K,EAAI+lM,EAAWp7L,MAAIm3G,GAAKjjG,EAAI,EAAI7e,EAAE8hH,GAAKjjG,EAAI,EAAI7e,EAAE6G,EAAQiE,EAAKg3G,GAAK9hH,EAAE6G,EAAQiE,KAASg3G,GAChJ,OAAOjjG,EAAI,GAAKijG,GAAK7jH,OAAO4c,eAAehU,EAAQiE,EAAKg3G,GAAIA,CAChE,EAKIugrB,IAAuB,SAAU/8uB,GAEjC,SAAS+8uB,IACL,OAAkB,OAAX/8uB,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CA4GA,OA/GAkmD,IAAU29uB,EAAO/8uB,GAKjB+8uB,EAAM78lB,OAAS,SAAUir2B,EAAQC,GAC7B,OAAID,IAAWC,MAGVD,IAAWC,MAGRD,IAAWC,GAAUD,EAAO/3hC,IAAMg4hC,EAAOh4hC,GAAK+3hC,EAAO93hC,IAAM+3hC,EAAO/3hC,EAC9E,EAIA0pxB,EAAMsuQ,aAAe,SAAU7rsB,GAC3B,OAAIA,EAAMpsV,IAAKosV,EAAMnsV,CAIzB,EAEA0pxB,EAAMtruB,UAAY,SAAU+tS,EAAOirE,EAAOnua,GACtC,IAAI6tyB,EAAK,CAAE/2xB,EAAG,EAAGC,EAAG,GAGpB,OAFA82xB,EAAG/2xB,EAAItW,KAAKmgB,MAA6D,KAAtDuiV,EAAMpsV,EAAI9W,EAASQ,KAAK6ta,IAAIF,EAAQ3ta,KAAKita,GAAK,OAAe,IAChFogY,EAAG92xB,EAAIvW,KAAKmgB,MAA6D,KAAtDuiV,EAAMnsV,EAAI/W,EAASQ,KAAK8ta,IAAIH,EAAQ3ta,KAAKita,GAAK,OAAe,IACzEogY,CACX,EAEApN,EAAMuuQ,WAAa,SAAUnxhC,EAAG5gB,GAE5B,OADauD,KAAK0kS,KAAK1kS,KAAKwe,IAAKnB,EAAE/G,EAAI7Z,EAAE6Z,EAAI,GAAKtW,KAAKwe,IAAKnB,EAAE9G,EAAI9Z,EAAE8Z,EAAI,GAE5E,EAEA0pxB,EAAMwuQ,UAAY,SAAUJ,EAAQC,GAChC,IAAI3goB,EAAQ3ta,KAAK0uiC,MAAMJ,EAAO/3hC,EAAI83hC,EAAO93hC,EAAG+3hC,EAAOh4hC,EAAI+3hC,EAAO/3hC,GAM9D,OALAq3Z,EAAS,IAAMA,EAAQ3ta,KAAKita,IAC5BU,GAAS,KACG,IACRA,GAAS,KAENA,CACX,EAEAsyX,EAAM0uQ,eAAiB,SAAUC,EAAKC,GAClC,OAAO7uiC,KAAK0kS,KAAK1kS,KAAKwe,IAAIqwhC,EAAIv4hC,EAAIs4hC,EAAIt4hC,EAAG,GAAKtW,KAAKwe,IAAIqwhC,EAAIt4hC,EAAIq4hC,EAAIr4hC,EAAG,GAC1E,EAEA0pxB,EAAM6uQ,0BAA4B,SAAUlzkB,GAExC,IADA,IAAIp8d,EAAS,EACJ4M,EAAI,EAAGA,EAAIwvd,EAAOp8d,OAAS,EAAG4M,IACnC5M,GAAUpD,KAAKuyiC,eAAe/ykB,EAAOjzc,SAASvc,EAAE8G,WAAY,KAAM0od,EAAOxvd,EAAI,IAEjF,OAAO5M,CACX,EAEAygyB,EAAM8uQ,YAAc,SAAU/7hC,EAAQvO,EAAQ45Z,EAAS7+Z,GACnD,IACImua,EADA0/X,EAAKhvY,EAAU,CAAE/nZ,EAAGtD,EAAOsD,EAAGC,EAAGvD,EAAOuD,GAAM,CAAED,EAAG7R,EAAO6R,EAAGC,EAAG9R,EAAO8R,GA4B3E,OA1BIvD,EAAOsD,IAAM7R,EAAO6R,EAChBtD,EAAOuD,EAAI9R,EAAO8R,GAAK8nZ,GAAWrrZ,EAAOuD,EAAI9R,EAAO8R,IAAM8nZ,EAC1DgvY,EAAG92xB,GAAK/W,EAGR6tyB,EAAG92xB,GAAK/W,EAGPwT,EAAOuD,IAAM9R,EAAO8R,EACrBvD,EAAOsD,EAAI7R,EAAO6R,GAAK+nZ,GAAWrrZ,EAAOsD,EAAI7R,EAAO6R,IAAM+nZ,EAC1DgvY,EAAG/2xB,GAAK9W,EAGR6tyB,EAAG/2xB,GAAK9W,EAIR6+Z,GACAsP,EAAQvxa,KAAKqyiC,UAAUz7hC,EAAQvO,GAC/B4oyB,EAAKjxyB,KAAKu4D,UAAU3hD,EAAQ26Z,EAAOnua,KAGnCmua,EAAQvxa,KAAKqyiC,UAAUhqiC,EAAQuO,GAC/Bq6xB,EAAKjxyB,KAAKu4D,UAAUlwD,EAAQkpa,EAAOnua,IAGpC6tyB,CACX,EAEApN,EAAM5srB,UAAY,SAAUu77B,EAAKC,GAC7B,OAAI7uiC,KAAK8Y,IAAI+1hC,EAAIv4hC,EAAIs4hC,EAAIt4hC,GAAKtW,KAAK8Y,IAAI+1hC,EAAIt4hC,EAAIq4hC,EAAIr4hC,GACxCq4hC,EAAIt4hC,EAAIu4hC,EAAIv4hC,EAAI,QAAU,OAG1Bs4hC,EAAIr4hC,EAAIs4hC,EAAIt4hC,EAAI,SAAW,KAE1C,EAKA0pxB,EAAMlzxB,UAAUslS,aAAe,WAC3B,MAAO,OACX,EACA85C,IAAW,CACPjB,GAAS,IACV+0c,EAAMlzxB,UAAW,SAAK,GACzBo/U,IAAW,CACPjB,GAAS,IACV+0c,EAAMlzxB,UAAW,SAAK,GAClBkzxB,CACX,CAjH2B,CAiHzB1vc,KDnIF,SAAW88sB,GACPA,EAAYA,EAAsB,SAAI,GAAK,WAC3CA,EAAYA,EAAyB,YAAI,GAAK,cAC9CA,EAAYA,EAAqB,QAAI,GAAK,UAC1CA,EAAYA,EAAqB,QAAI,GAAK,SAC7C,CALD,CAKGA,MAAgBA,IAAc,CAAC,IAElC,IETW2B,IAWAhrJ,IAWAirJ,IAgBAC,IASAC,IAQAC,IAYAC,IAiCAC,IAYAC,IAWAC,IAkBAC,IAYAC,IAQAC,IFxJPtia,IACA,SAAgBuia,EAAKC,EAAKC,EAAKC,EAAKphtB,EAASC,EAAS5lV,GAClD5M,KAAKwziC,IAAMA,EACXxziC,KAAKyziC,IAAMA,EACXzziC,KAAK0ziC,IAAMA,EACX1ziC,KAAK2ziC,IAAMA,EACX3ziC,KAAKuyV,QAAUA,EACfvyV,KAAKwyV,QAAUA,EAMfxyV,KAAK4M,KAAOA,CAChB,EAKG,SAASgniC,MACZ,OAAO,IAAI3ia,IAAO,EAAG,EAAG,EAAG,EAAG,EAAG,EAAGgga,IAAY4C,SACpD,CAEO,SAASC,IAAuBzra,EAAQ/hS,GAC3C,IAAI2qc,EA0DR,SAAuB5oK,EAAQnunB,EAAGC,GAC9B,OAAQkunB,EAAOz7nB,MACX,KAAKqkiC,IAAY4C,SAAU,MAC3B,KAAK5C,IAAY8C,YACb75hC,GAAKmunB,EAAO91S,QACZp4U,GAAKkunB,EAAO71S,QACZ,MACJ,KAAKy+sB,IAAY+C,QACb95hC,GAAKmunB,EAAOmra,IACZr5hC,GAAKkunB,EAAOsra,IACZ,MACJ,KAAK1C,IAAY8C,YAAc9C,IAAY+C,QACvC95hC,GAAKmunB,EAAOmra,IACZt5hC,GAAKmunB,EAAO91S,QACZp4U,GAAKkunB,EAAOsra,IACZx5hC,GAAKkunB,EAAO71S,QACZ,MACJ,QACI,IAAIh9P,EAAMr7E,EAAIkunB,EAAOqra,IAAMrra,EAAO91S,QAC9B0htB,EAAO/5hC,EAAImunB,EAAOora,IAAMpra,EAAO71S,QACnCt4U,GAAKmunB,EAAOmra,IACZt5hC,GAAKs7E,EACLr7E,GAAKkunB,EAAOsra,IACZx5hC,GAAK85hC,EAGb,MAAO,CAAE/5hC,EAAGA,EAAGC,EAAGA,EACtB,CArFa+5hC,CAAc7ra,EAAQ/hS,EAAMpsV,EAAGosV,EAAMnsV,GAC9C,MAAO,CAAED,EAAGtW,KAAKmgB,MAAa,IAAPktxB,EAAG/2xB,GAAW,IAAKC,EAAGvW,KAAKmgB,MAAa,IAAPktxB,EAAG92xB,GAAW,IAC1E,CAWO,SAASg6hC,IAAa9ra,EAAQ92N,EAAON,EAASC,GAEjDkjoB,IAAe/ra,EAgCnB,SAA+B92N,EAAON,EAASC,GAC3C,IAAIrmZ,EAAS+ohC,MACTp+8B,EAAM5xF,KAAK8ta,IAAIH,GACf0ioB,EAAOrwiC,KAAK6ta,IAAIF,GAChBh/E,EAAU0+E,GAAW,EAAMgjoB,GAAQ/ioB,EAAU17U,EAC7Cg9P,EAAU0+E,GAAW,EAAM+ioB,GAAQhjoB,EAAUz7U,EAGjD,OAFA3qE,EAAOje,KAAOqkiC,IAAYrlR,QAC1ByoR,IAAUxphC,EAAQophC,EAAMz+8B,GAAMA,EAAKy+8B,EAAM1htB,EAASC,GAC3C3nU,CACX,CAzC2ByphC,CAA8B,qBADrD/ioB,GAAS,KACkEN,GAAoB,EAAGC,GAAoB,GAC1H,CAEO,SAASqjoB,IAAYlsa,EAAQp/U,EAAQC,EAAQ+nH,EAASC,QACzC,IAAZD,IAAsBA,EAAU,QACpB,IAAZC,IAAsBA,EAAU,GACpCkjoB,IAAe/ra,EAmBnB,SAAuBp/U,EAAQC,EAAQ+nH,EAASC,GAC5C,IAAIrmZ,EAAS+ohC,MAGb,OAFA/ohC,EAAOje,KAASqka,GAAWC,EAAiC+/nB,IAAY+C,QAAU/C,IAAY8C,YAAxD9C,IAAY+C,QAClDK,IAAUxphC,EAAQo+R,EAAQ,EAAK,EAAKC,EAAQ+nH,EAAUhoH,EAASgoH,EAASC,EAAUhoH,EAASgoH,GACpFrmZ,CACX,CAxB2B2phC,CAAcvrvB,EAAQC,EAAQ+nH,EAASC,GAClE,CAiEO,SAASkjoB,IAAeK,EAASC,GACpC,IAAI9niC,EAAO6niC,EAAQ7niC,KACf+niC,EAAQD,EAAQ9niC,KACpB,GAAI+niC,IAAU1D,IAAY4C,SAA1B,CAGA,GAAIjniC,IAASqkiC,IAAY4C,SAGrB,OAFAe,IAAaH,EAASC,QACtBD,EAAQ7niC,KAAO8niC,EAAQ9niC,MAG3B,GAAI+niC,IAAU1D,IAAY8C,YAMtB,OALAU,EAAQlitB,SAAWmitB,EAAQnitB,QAC3BkitB,EAAQjitB,SAAWkitB,EAAQlitB,aACvB5lV,IAASqkiC,IAAYrlR,UACrB6oR,EAAQ7niC,MAAQqkiC,IAAY8C,cAIpC,GAAInniC,IAASqkiC,IAAY8C,YAAa,CAClC,IAAIv+8B,EAAM5oF,GAAQ,EAAI+niC,EACtB,OAAQn/8B,GACJ,KAAK,GAGD,OAFAi/8B,EAAQjB,KAAOkB,EAAQlB,SACvBiB,EAAQd,KAAOe,EAAQf,KAE3B,KAAK,GAMD,OALAc,EAAQjB,KAAOkB,EAAQlB,IACvBiB,EAAQd,KAAOe,EAAQf,IACvBc,EAAQlitB,QAAUmitB,EAAQnitB,QAC1BkitB,EAAQjitB,QAAUkitB,EAAQlitB,aAC1BiitB,EAAQ7niC,KAAQqkiC,IAAY8C,YAAc9C,IAAY+C,SAE1D,KAAK,GAAI,MACT,QAEQ,OAAQx+8B,GACJ,KAAK,GAKD,OAJAi/8B,EAAQjB,KAAOkB,EAAQlB,IACvBiB,EAAQd,KAAOe,EAAQf,IACvBc,EAAQlitB,SAAWmitB,EAAQlB,SAC3BiB,EAAQjitB,SAAWkitB,EAAQf,KAE/B,KAAK,GAKD,OAJAc,EAAQjB,KAAOkB,EAAQlB,IACvBiB,EAAQd,KAAOe,EAAQf,IACvBc,EAAQlitB,QAAUmitB,EAAQlB,IAAMiB,EAAQlitB,QAAUmitB,EAAQnitB,aAC1DkitB,EAAQjitB,QAAUkitB,EAAQf,IAAMc,EAAQjitB,QAAUkitB,EAAQlitB,SAE9D,KAAK,GAAI,MACT,QACI,OAAQh9P,GACJ,KAAK,GACL,KAAK,GACL,KAAK,GAAI,MACT,QAAS,SAOjC,IAAI3qE,EAAS+ohC,MAyBb,OAlBAS,IAAUxphC,EANG4phC,EAAQjB,IAAMkB,EAAQlB,IAAMiB,EAAQhB,IAAMiB,EAAQhB,IAClDe,EAAQjB,IAAMkB,EAAQjB,IAAMgB,EAAQhB,IAAMiB,EAAQf,IAClDc,EAAQf,IAAMgB,EAAQlB,IAAMiB,EAAQd,IAAMe,EAAQhB,IAClDe,EAAQf,IAAMgB,EAAQjB,IAAMgB,EAAQd,IAAMe,EAAQf,IAC/Cc,EAAQlitB,QAAUmitB,EAAQlB,IAAMiB,EAAQjitB,QAAUkitB,EAAQhB,IAAMgB,EAAQnitB,QACxEkitB,EAAQlitB,QAAUmitB,EAAQjB,IAAMgB,EAAQjitB,QAAUkitB,EAAQf,IAAMe,EAAQlitB,SAEpF3nU,EAAO6ohC,KAAO7ohC,EAAO4ohC,IACrB5ohC,EAAOje,KAAOqkiC,IAAYrlR,UAGtB/gwB,EAAO2ohC,KAAsB,IAAf3ohC,EAAO2ohC,KAAe3ohC,EAAO8ohC,KAAsB,IAAf9ohC,EAAO8ohC,OACzD9ohC,EAAOje,KAAOqkiC,IAAY+C,UAE1BnphC,EAAO0nU,SAAW1nU,EAAO2nU,WACzB3nU,EAAOje,MAAQqkiC,IAAY8C,cAE1BlphC,EAAOje,MAAQqkiC,IAAY8C,YAAc9C,IAAY+C,YAAc/C,IAAY4C,WAChFhphC,EAAOje,KAAOqkiC,IAAY4C,UAE9BhphC,EAAOje,KAAOqkiC,IAAY+C,QAAU/C,IAAY8C,aAEpDa,IAAaH,EAAS5phC,QACtB4phC,EAAQ7niC,KAAOie,EAAOje,KAE1B,CACA,IAAI2lV,EAAUkitB,EAAQlitB,QAClBC,EAAUiitB,EAAQjitB,QACtBiitB,EAAQlitB,QAAUA,EAAUmitB,EAAQlB,IAAMhhtB,EAAUkitB,EAAQhB,IAAMgB,EAAQnitB,QAC1EkitB,EAAQjitB,QAAUD,EAAUmitB,EAAQjB,IAAMjhtB,EAAUkitB,EAAQf,IAAMe,EAAQlitB,QACtEmitB,IAAU1D,IAAYrlR,QAI1B6oR,EAAQ7niC,KAAQqkiC,IAAY8C,YAAc9C,IAAY+C,QAHlDS,EAAQ7niC,KAAOqkiC,IAAYrlR,OAzF/B,CA6FJ,CAEA,SAASyoR,IAAUQ,EAAKrB,EAAKC,EAAKC,EAAKC,EAAKz5hC,EAAGC,GAC3C06hC,EAAIrB,IAAMA,EACVqB,EAAIpB,IAAMA,EACVoB,EAAInB,IAAMA,EACVmB,EAAIlB,IAAMA,EACVkB,EAAItitB,QAAUr4U,EACd26hC,EAAIritB,QAAUr4U,CAClB,CAEA,SAASy6hC,IAAaH,EAASC,GAC3BD,EAAQjB,IAAMkB,EAAQlB,IACtBiB,EAAQhB,IAAMiB,EAAQjB,IACtBgB,EAAQf,IAAMgB,EAAQhB,IACtBe,EAAQd,IAAMe,EAAQf,IACtBc,EAAQlitB,QAAUmitB,EAAQnitB,QAC1BkitB,EAAQjitB,QAAUkitB,EAAQlitB,QAC1BiitB,EAAQ7niC,KAAO8niC,EAAQ9niC,IAC3B,CGzOO,SAASkoiC,IAAajkiC,GACzB,MAAgC,SAA5BA,EAAIkkiC,qBAA8D,uBAA5BlkiC,EAAIkkiC,qBACX,aAA5BlkiC,EAAIkkiC,qBAAkE,YAA5BlkiC,EAAIkkiC,mBAIzD,CAOO,SAASC,IAAgBnkiC,EAAKsE,GACjC,GAAItE,GAAOsE,EACP,GAAItE,EAAIokiC,yBACsC,IAAtCpkiC,EAAIslB,GAAGxrB,QAAQ,mBACfwK,EAAQhP,MAAMqgF,KAAO,cACrBrxE,EAAQhP,MAAMipI,YAAc,EAC5Bj6H,EAAQhP,MAAM+uiC,gBAAkBrkiC,EAAIskiC,kBAGpChgiC,EAAQhP,MAAMqgF,KAAO,cACrBrxE,EAAQhP,MAAMipI,YAAc,OAG/B,CACD,IAAIuuwB,EAA+B,cAAlB9s4B,EAAI8s4B,UAA4B,cAAgB9s4B,EAAI8s4B,UACrExo4B,EAAQhP,MAAMqgF,KAAOm3zB,GAAwB,QAE7Cxo4B,EAAQhP,MAAMs3d,YAAc5sd,EAAI4sd,YAAc5sd,EAAI4sd,YAAc5sd,EAAI0yzB,YAEpEpuzB,EAAQhP,MAAMswH,MAAQ5lH,EAAI4sd,YAAc5sd,EAAI4sd,YAAc5sd,EAAI0yzB,YAC9DpuzB,EAAQhP,MAAMipI,YAAcv+H,EAAIu97B,UACA,UAA5Bv97B,EAAIkkiC,qBAA+D,kBAA5BlkiC,EAAIkkiC,qBAAuE,mBAA5BlkiC,EAAIkkiC,sBAC1F5/hC,EAAQhP,MAAMipI,YAAc,GAEhCj6H,EAAQhP,MAAM+uiC,gBAAkBrkiC,EAAIskiC,gBACpChgiC,EAAQhP,MAAMmoI,QAAUz9H,EAAIy9H,OAChC,CAER,CAMO,SAAS8m6B,IAAiB51kB,GAE7B,IADA,IAAIp8d,EAAS,EACJ+I,EAAI,EAAGA,EAAIqzd,EAAOp8d,OAAS,EAAG+I,IACnC/I,GAAUygyB,IAAMuuQ,WAAW5ykB,EAAOjzc,SAASpgB,EAAE2K,WAAY,KAAM0od,EAAOrzd,EAAI,IAE9E,OAAO/I,CACX,CAgBO,SAASiyiC,IAAuBlgiC,EAASojD,GAC5C,IAAI+8+B,EAAsB,CACtB92hC,MAAOrJ,EAAQwnwB,WAAWn+vB,MAAOoqI,OAAQzzI,EAAQwnwB,WAAW/znB,OAC5D1uI,EAAG/E,EAAQo9U,QAAUp9U,EAAQwnwB,WAAWn+vB,MAAQrJ,EAAQogiC,MAAMr7hC,EAAI,GAClEC,EAAGhF,EAAQq9U,QAAUr9U,EAAQwnwB,WAAW/znB,OAASzzI,EAAQogiC,MAAMp7hC,EAAI,GACnEo3Z,MAAOp8Z,EAAQ+7vB,YAAc/7vB,EAAQqgiC,gBAAiBhv9B,KAAMrxE,EAAQhP,MAAMqgF,KAAM+zqB,OAAQplvB,EAAQhP,MAAMs3d,YACtGg4kB,OAAQtgiC,EAAQogiC,MAAMr7hC,EAAGw7hC,OAAQvgiC,EAAQogiC,MAAMp7hC,EAAGi1H,YAAa,EAC/Dd,QAASn5H,EAAQhP,MAAMmoI,QAAS4wzB,UAAW/p7B,EAAQhP,MAAM+uiC,iBAAmB,GAC5ErlwB,QAAS16R,EAAQ06R,QAAS15Q,GAAIhhB,EAAQghB,IAM1C,OAJIoiC,IACA+8+B,EAAoBp7hC,GAAKq+C,EAAUspa,GACnCyzkB,EAAoBn7hC,GAAKo+C,EAAUupa,IAEhCwzkB,CACX,CAwBO,SAASK,IAAY9kiC,EAAK+kiC,EAAgBtpiC,GAE7C,IAlBwB1K,EAkBpB49B,EAAY,CAAC,EAGjB,GAAI3uB,EAAK,CACLvE,EAAMuE,EAAa,SACnB,IAAIgliC,EAAehliC,EAAa,YAAKA,EACjC6hB,EAAa,GAEbojhC,EAAmB,GAEvB,IAHApjhC,EAAaA,EAAWtZ,OAAO3Z,OAAO8E,KAAKsxiC,KAEhCzpiC,KAAK,WACZE,EAAK,CACL,IAAIypiC,QA5BE1yiC,KADUzB,EA6BiBg0iC,IA3BhB,kBAAVh0iC,IACPA,EAAQiZ,GAASjZ,EAAOovB,SAGzBpvB,GAyBKk0iC,EADAC,EACmBA,EAAezpiC,GAGf,GAEvBomB,EAAaA,EAAWtZ,OAAO08hC,EACnC,CAGA,IAFA,IAAIE,EAmEL,SAA+Btr6B,GAClC,OAAQA,GACJ,IAAK,QACL,IAAK,WACD,MAAO,CAAC,UAAW,WAAY,WAAY,YAAa,SAAU,WAAY,UAAW,UAC7F,IAAK,aACD,MAAO,CAAC,YACZ,IAAK,aAEL,IAAK,cACD,MAAO,CAAC,UACZ,IAAK,QACD,MAAO,CAAC,aAEhB,MAAO,EACX,CAlF2Bur6B,CAAsB3piC,GAEhCgD,EAAK,EAAGo1pB,EADjBhyoB,EAAaA,EAAWtZ,OAAO48hC,GACa1miC,EAAKo1pB,EAAathqB,OAAQkM,IAAM,CACxE,IAAIqN,EAAW+npB,EAAap1pB,GAC5B,GAAiB,mBAAbqN,EACA,GAAiB,YAAbA,KAEsB9L,EAAI8L,KAAa9L,EAAIC,eAAe,gBAElDD,EAAI,GAAK8L,aAAqBjM,MAC9B8uB,EAAU,GAAK7iB,GAAYu5hC,KAAgD,IAApCF,EAAarriC,QAAQgS,IAAoB9L,EAAI,GAAKvE,GAAQuE,EAAI,GAAKvE,GAAK,GAAKqQ,GAAY9L,EAAI,GAAK8L,GAAWi5hC,EAAgBj5hC,GAE/J9L,EAAI,GAAK8L,aAAqBjM,SAAU,GAASG,EAAI,GAAK8L,aAAqBmX,YACpF0L,EAAU,GAAK7iB,GAAY9L,EAAI,GAAK8L,GAAUwmB,WAAU,GAAMypf,UAEzD/7gB,EAAI,GAAK8L,aAAqBjM,SAAU,GAASG,EAAI,GAAK8L,aAAqBld,OACpF+/B,EAAU,GAAK7iB,GAAYg5hC,KAAiD,IAApCK,EAAarriC,QAAQgS,IAAoB9L,EAAI,GAAKvE,GAAQuE,EAAI,GAAKvE,GAAK,GAAKqQ,GAAY9L,EAAI,GAAK8L,IAG1I6iB,EAAU,GAAK7iB,GAAY9L,EAAI,GAAK8L,SAKxC9L,EAAI,GAAK8L,KACT6iB,EAAU,GAAK7iB,GAAY,CACvBggwB,WAAY,CACRn+vB,MAAO3N,EAAI,GAAK8L,GAAUggwB,WAAWn+vB,MAAOoqI,OAAQ/3I,EAAI,GAAK8L,GAAUggwB,WAAW/znB,QACnF2pM,QAAS1hV,EAAI,GAAK8L,GAAU41U,QAASC,QAAS3hV,EAAI,GAAK8L,GAAU61U,SAKxF,CACJ,CACA,OAAOhzT,CACX,CAQO,SAAS02gC,IAAWC,EAAaP,EAAgBtpiC,GACpD,IAAI8piC,EACJ,GAAID,EAAa,CACbC,EAAc,GACd,IAAK,IAAIjqiC,EAAI,EAAGA,EAAIgqiC,EAAY/yiC,OAAQ+I,IAChCgqiC,EAAY5phC,SAASpgB,EAAE2K,WAAY,eAAgBpG,MACnD0liC,EAAYhqiC,KAAK+piC,EAAY5phC,SAASpgB,EAAE2K,WAAY,MAE/Cq/hC,EAAY5phC,SAASpgB,EAAE2K,WAAY,eAAgBrX,OACxD22iC,EAAYhqiC,KAAKupiC,IAAYQ,EAAY5phC,SAASpgB,EAAE2K,WAAY,KAAM8+hC,EAAgBtpiC,IAGtF8piC,EAAYhqiC,KAAK+piC,EAAY5phC,SAASpgB,EAAE2K,WAAY,KAGhE,CACA,OAAOs/hC,CACX,EDlMA,SAAWxD,GACPA,EAAcA,EAAoB,KAAI,GAAK,OAC3CA,EAAcA,EAAwB,SAAI,GAAK,WAC/CA,EAAcA,EAAwB,SAAI,GAAK,WAC/CA,EAAcA,EAAyB,UAAI,GAAK,YAChDA,EAAcA,EAAwB,SAAI,GAAK,UAClD,CAND,CAMGA,MAAkBA,IAAgB,CAAC,IAKtC,SAAWhrJ,GACPA,EAAUA,EAAgB,KAAI,GAAK,OACnCA,EAAUA,EAAgB,KAAI,GAAK,OACnCA,EAAUA,EAAkB,OAAI,GAAK,SACrCA,EAAUA,EAAqB,UAAI,GAAK,YACxCA,EAAUA,EAAyB,cAAI,GAAK,eAC/C,CAND,CAMGA,MAAcA,IAAY,CAAC,IAK9B,SAAWirJ,GACPA,EAAgBA,EAAsB,KAAI,GAAK,OAC/CA,EAAgBA,EAA2B,UAAI,GAAK,YACpDA,EAAgBA,EAAqB,IAAI,GAAK,MAC9CA,EAAgBA,EAA2B,UAAI,GAAK,YACpDA,EAAgBA,EAAuB,MAAI,GAAK,QAChDA,EAAgBA,EAAwB,OAAI,IAAM,SAClDA,EAAgBA,EAA4B,WAAI,IAAM,aACtDA,EAAgBA,EAA+B,cAAI,IAAM,gBACzDA,EAAgBA,EAA4B,WAAI,KAAO,aACvDA,EAAgBA,EAAyB,QAAI,KAAO,SACvD,CAXD,CAWGA,MAAoBA,IAAkB,CAAC,IAK1C,SAAWC,GACPA,EAAoB,KAAI,OACxBA,EAAoB,KAAI,OACxBA,EAAqB,MAAI,OAC5B,CAJD,CAIGA,MAAkBA,IAAgB,CAAC,IAKtC,SAAWC,GACPA,EAA0BA,EAAmC,QAAI,GAAK,UACtEA,EAA0BA,EAAiC,MAAI,GAAK,OACvE,CAHD,CAGGA,MAA8BA,IAA4B,CAAC,IAK9D,SAAWC,GAEPA,EAAYA,EAAkB,KAAI,GAAK,OAEvCA,EAAYA,EAAkB,KAAI,GAAK,OAEvCA,EAAYA,EAAoB,OAAI,GAAK,QAC5C,CAPD,CAOGA,MAAgBA,IAAc,CAAC,IAKlC,SAAWC,GACPA,EAAiB,KAAI,OACrBA,EAAsB,UAAI,YAE1BA,EAAqB,SAAI,WAEzBA,EAAsB,UAAI,YAC1BA,EAAiB,KAAI,OACrBA,EAAqB,SAAI,WACzBA,EAAiB,KAAI,OAErBA,EAAqB,SAAI,WAEzBA,EAAsB,UAAI,YAE1BA,EAAsB,UAAI,YAE1BA,EAAsB,UAAI,YAC1BA,EAAoB,QAAI,UAExBA,EAAqB,SAAI,WAEzBA,EAAsB,UAAI,YAE1BA,EAAsB,UAAI,YAC1BA,EAAiB,KAAI,OAErBA,EAAqB,SAAI,UAC5B,CA5BD,CA4BGA,MAAeA,IAAa,CAAC,IAKhC,SAAWC,GACPA,EAA0B,QAAI,UAC9BA,EAA2B,SAAI,WAC/BA,EAA2B,SAAI,WAC/BA,EAA2B,SAAI,WAC/BA,EAA+B,aAAI,eACnCA,EAA8B,YAAI,aACrC,CAPD,CAOGA,MAAqBA,IAAmB,CAAC,IAK5C,SAAWC,GACPA,EAAuB,QAAI,UAC3BA,EAA2B,YAAI,cAC/BA,EAAwB,SAAI,WAC5BA,EAAwB,SAAI,WAC5BA,EAAwB,SAAI,UAC/B,CAND,CAMGA,MAAkBA,IAAgB,CAAC,IAKtC,SAAWC,GACPA,EAAoC,SAAI,WACxCA,EAAuC,YAAI,cAC3CA,EAAiC,MAAI,QACrCA,EAAiC,MAAI,QACrCA,EAAqC,UAAI,YACzCA,EAAwC,aAAI,eAC5CA,EAA4C,iBAAI,mBAChDA,EAA+C,oBAAI,sBACnDA,EAAsC,WAAI,aAC1CA,EAAgC,KAAI,OACpCA,EAA8C,mBAAI,qBAClDA,EAA2C,gBAAI,iBAClD,CAbD,CAaGA,MAA8BA,IAA4B,CAAC,IAK9D,SAAWC,GACPA,EAA2B,OAAI,SAC/BA,EAAyB,KAAI,OAC7BA,EAA2B,OAAI,SAC/BA,EAA2B,OAAI,SAC/BA,EAAyB,KAAI,OAC7BA,EAAmC,eAAI,gBAC1C,CAPD,CAOGA,MAAuBA,IAAqB,CAAC,IAKhD,SAAWC,GACPA,EAA2B,KAAI,OAC/BA,EAA2B,KAAI,MAClC,CAHD,CAGGA,MAAyBA,IAAuB,CAAC,IAKpD,SAAWC,GACPA,EAAyB,IAAI,MAC7BA,EAAyB,IAAI,MAC7BA,EAA0B,KAAI,OAC9BA,EAA0B,KAAI,MACjC,CALD,CAKGA,MAAwBA,IAAsB,CAAC,IE9JlD,IC24BW8C,ID34BPtwkB,IAA2B,WAO3B,SAASA,EAAUkjkB,EAAWC,GAC1B,IAAI5piC,EAAQU,KACZA,KAAKs2iC,aAAc,EACnBt2iC,KAAKu2iC,eAAgB,EACrBv2iC,KAAKw2iC,sBAAwB,GAC7Bx2iC,KAAKy2iC,qBAAuB,GAE5Bz2iC,KAAKw/B,UAAY,GAIjBx/B,KAAK02iC,aAAe,GAIpB12iC,KAAK22iC,iBAAmB,GAIxB32iC,KAAK42iC,kBAAoB,GAKzB52iC,KAAK62iC,oBAAsB,GAK3B72iC,KAAK82iC,iBAAmB,GAKxB92iC,KAAK+2iC,oBAAsB,GAE3B/2iC,KAAKg3iC,SAAW,GAEhBh3iC,KAAKi3iC,cAAgB,GACrBj3iC,KAAKk3iC,iBAAkB,EACvBl3iC,KAAKm3iC,eAAgB,EACrBn3iC,KAAKo3iC,6BAA8B,EACnCp3iC,KAAKq3iC,gCAAiC,EACtCr3iC,KAAKs3iC,qBAAsB,EAC3Bt3iC,KAAKu3iC,sBAAuB,EAC5Bv3iC,KAAKw3iC,mBAAoB,EACzBx3iC,KAAKy3iC,oBAAqB,EAC1Bz3iC,KAAK03iC,wBAA0B,GAC/B13iC,KAAK23iC,sBAAwB,GAC7B33iC,KAAK43iC,eAAiB,GACtB53iC,KAAK63iC,oBAAsB,GAC3B73iC,KAAK83iC,kBAAoB,GACzB93iC,KAAK+3iC,iBAAmB,GACxB/3iC,KAAKg4iC,0BAA4B,GACjCh4iC,KAAKi4iC,wBAA0B,GAC/Bj4iC,KAAKk4iC,sBAAwB,GAC7Bl4iC,KAAKm4iC,oBAAsB,GAC3Bn4iC,KAAKo4iC,mBAAoB,EACzBp4iC,KAAKw5wB,UAAY,GACjBx5wB,KAAKq4iC,oBAAsB,GAC3Br4iC,KAAKs4iC,kBAAoB,GAEzBt4iC,KAAKu4iC,oBAAsB,GAE3Bv4iC,KAAKw4iC,kBAAoB,GAKzBx4iC,KAAKy4iC,gBAAkB,GACvBz4iC,KAAK04iC,qBAAuB,GAC5B14iC,KAAK24iC,mBAAqB,GAK1B34iC,KAAK44iC,aAAe,EACpB54iC,KAAKwqV,OAAS,SAAUnqV,GAChBL,KAAKu2iC,gBACLv2iC,KAAKs2iC,aAAc,EACnBt2iC,KAAKu2iC,eAAgB,GAErBl2iC,EAAEg83B,UAAkC,QAAtBr83B,KAAK64iC,eAA2B74iC,KAAKs2iC,cACnDj2iC,EAAEygF,QAAS,EACX9gF,KAAKs2iC,aAAc,EAE3B,EAEAt2iC,KAAK84iC,cAAgB,SAAU7/hC,GAE3B,IAEI8/hC,EAAe9/hC,EAAK5Q,OAAOmte,MAC/B,GAA6B,OAAzBv8d,EAAK5Q,OAAOmte,MAAM,GAAa,CAC/B,IAAIwjkB,EAAeD,EAAa,GAChC,GAAwC,UAApCC,EAAapsiC,KAAK+lB,MAAM,KAAK,GAAgB,CAC7C,IAAIgzd,EAAS,IAAIjK,WAEjBiK,EAAOhmU,OAAS,SAAUt/K,GAEtB,IAAIu8d,EAAS1rc,SAASg8T,eAAe5tV,EAAM2piC,UAAU9zhC,QAAQghB,GAAK,2BAE9Dlb,EAAU2hd,EAAOD,WAAW,MAE5BrxC,EAAQ,IAAIwzC,MAEZ94R,EAAQ1mM,EACZgsb,EAAM3rQ,OAAS,WAEMzuJ,SAASg8T,eAAe5tV,EAAM2piC,UAAU9zhC,QAAQghB,GAAK,uBAC3DhwB,MAAMohQ,WAAa,SAC9BtsP,EAAQ+jd,UAAU1zC,EAAO,EAAG,EAAGsxC,EAAOp+c,MAAOo+c,EAAOh0U,QACpDo9C,EAAMiz2B,oBAAmB,GACzBjz2B,EAAM0w2B,aAAeprnB,EAAM5mR,IAC3BshC,EAAMkz2B,qBAAuB5tnB,EAAM6tnB,cACnCnz2B,EAAMoz2B,oBAAsB9tnB,EAAM+tnB,YACtC,EACA/tnB,EAAM5mR,IAAMrkK,EAAE86B,cAActQ,OAC5Bm7K,EAAM0w2B,aAAer2iC,EAAE86B,cAActQ,OACrCm7K,EAAMsz2B,wBAA0Bj5iC,EAAE86B,cAActQ,MACpD,EACA86d,EAAOhK,cAAcq9jB,EACzB,CACJ,CACA//hC,EAAK5Q,OAAOzG,MAAQ,GACpBqX,EAAKkiB,cAAcv5B,MAAQ,EAC/B,EACA5B,KAAKipiC,UAAYA,EACjBjpiC,KAAKkpiC,cAAgBA,CACzB,CAutEA,OAltEAnjkB,EAAUp1d,UAAU4oiC,qBAAuB,WACvC,IAAIj6iC,EAAQU,KAIZ,GAFAA,KAAKw2iC,sBAAwB,GAC7Bx2iC,KAAKy2iC,qBAAuB,GACvB3puB,KAiFA,CAED,IAAI8vJ,EAAS1rc,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,qBACjE,GAAIymc,EAAQ,CACR,IAAK58d,KAAKkpiC,cAAcsQ,cAAc5/gC,cAAc,2BAG5C6/gC,EAAY34iC,GAAc,MAAO,CAAEq1B,GAFvBn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAEgB,oBAAqBp1B,UAAW,2BAC7EoF,MAAMi+J,QAAU,QAC1BpkK,KAAKkpiC,cAAcsQ,cAAc9nhC,YAAY+nhC,GAEjD78kB,EAAOthc,iBAAiB,YAAat7B,KAAK05iC,wBAAwB75iC,KAAKG,OACvE48d,EAAOthc,iBAAiB,YAAat7B,KAAK25iC,wBAAwB95iC,KAAKG,OACvE48d,EAAOthc,iBAAiB,UAAWt7B,KAAK45iC,sBAAsB/5iC,KAAKG,OACnE48d,EAAOthc,iBAAiB,aAAct7B,KAAK45iC,sBAAsB/5iC,KAAKG,OACtE48d,EAAOthc,iBAAiB,aAAct7B,KAAK05iC,wBAAwB75iC,KAAKG,OACxE48d,EAAOthc,iBAAiB,YAAat7B,KAAK25iC,wBAAwB95iC,KAAKG,OACvE48d,EAAOthc,iBAAiB,WAAYt7B,KAAK45iC,sBAAsB/5iC,KAAKG,OACpEA,KAAK65iC,sBACT,CACA75iC,KAAKipiC,UAAU8E,gBAAgB13oB,kBAAkB,qBAAsBr2Z,KAAKkpiC,cAAc4Q,qBAC9F,KAtGiB,CACb,IACIL,KAAY34iC,GAAc,MAAO,CAAEq1B,GADvBn2B,KAAKipiC,UAAU9zhC,QAAQghB,GACgB,oBAAqBp1B,UAAW,2BAC7EoF,MAAMi+J,QAAU,QAC1BpkK,KAAKkpiC,cAAcsQ,cAAc9nhC,YAAY+nhC,GAC7C,IAAIM,EAAgB/5iC,KAAKg6iC,wBACrBC,OAAuB,EAWnBA,EAVHj6iC,KAAKkpiC,cAAc4Q,qBAShB95iC,KAAKkpiC,cAAcgR,eACIl6iC,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,gCAGrC/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,kCAZ5D/lW,KAAKkpiC,cAAcgR,eACIl6iC,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,sCAGrC/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,wCAWhE/lW,KAAKm6iC,gBACLn6iC,KAAKm6iC,gBAAgBpliC,QAAUgliC,GAG/B/5iC,KAAKm6iC,gBAAkB,IAAIpqxB,IAAO,CAE9BmwP,eAAe,EAAM7C,eAAe,EAAOd,SAAS,EAAM7tV,OAAQur3B,EAAsBrqsB,SAAU,+BAClGvnW,OAAQrI,KAAKipiC,UAAU9zhC,QAASJ,QAASgliC,EAAev7hC,MAAO,QAASqxR,SAAS,EAAMquO,eAAe,EACtGr3Y,YAAa,WACTvnI,EAAMu6iC,uBACNv6iC,EAAM66iC,gBAAgB/i6B,UACtB93I,EAAM66iC,gBAAkB,KACpB76iC,EAAM86iC,QACN96iC,EAAM86iC,OAAOhj6B,UAGjB,IAAIij6B,EAAkBnphC,SAASg8T,eAAe5tV,EAAM2piC,UAAU9zhC,QAAQghB,GAAK,qBACvEkkhC,IAEAA,EAAgB7lhC,WAAa6lhC,EAAgB7lhC,WAAWW,YAAYklhC,GAAmBA,EAAgBxkxB,cAAc1gQ,YAAYklhC,IAGhI/6iC,EAAM4piC,cAAc4Q,sBAAyBx6iC,EAAM4piC,cAAcoR,uBAA0BvuuB,GAAkBzsU,EAAM2piC,UAAUsR,iBAAiBp/gC,gBAC/I77B,EAAM2piC,UAAUuR,sBAAsBl7iC,EAAM2piC,UAAUsR,iBAAiBp/gC,cAAcz2B,KAAM,IAE/FpF,EAAM4piC,cAAc4Q,sBAAuB,EAC3Cx6iC,EAAM2piC,UAAUsR,iBAAiB/sc,UACrC,IAEJxtmB,KAAKm6iC,gBAAgB/z5B,QAAU,CAE3B,CAAEq3X,YAAa,CAAE1ogB,QAAS/U,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,SAAUn3V,UAAU,EAAMghW,SAAU,iBAAmB5sF,MAAOhjR,KAAK65iC,qBAAqBh6iC,KAAKG,OAE5J,CAAEy9gB,YAAa,CAAE1ogB,QAAS/U,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,UAAW6J,SAAU,kBAAoB5sF,MAAOhjR,KAAKy6iC,oBAAoB56iC,KAAKG,OAE7I,CAAEy9gB,YAAa,CAAE1ogB,QAAS/U,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,UAAW58M,WAAW,EAAMv6I,UAAU,EAAMghW,SAAU,kBAAoB5sF,MAAOhjR,KAAK06iC,mBAAmB76iC,KAAKG,QAEjLA,KAAKm6iC,gBAAgBzhtB,SAAS+gtB,IAE9Bz5iC,KAAKipiC,UAAU9zhC,QAAQg7P,YAjEZ,KAkEXnwQ,KAAK26iC,mBACL36iC,KAAKipiC,UAAU5wsB,YACfr4V,KAAKm6iC,gBAAgB9htB,UAAYr4V,KAAKipiC,UAAU5wsB,WAEpD,IAAIuitB,EAAe56iC,KAAKm6iC,gBAAgBpliC,QAAQi4U,cAAc,GAAGllS,MAAM,GACvE,GAAkC,SAA9B8y/B,EAAals3B,OAAO0/G,MAAkB,CACtC,IAAIyswB,EAAe3phC,SAASg8T,eAAe,YAC3CltV,KAAK86iC,sBAAsBD,EAC/B,MACK,GAAkC,SAA9BD,EAAals3B,OAAO0/G,MAAkB,CAC3C,IAAI2swB,EAAe7phC,SAASg8T,eAAe,aAC3CltV,KAAK86iC,sBAAsBC,EAC/B,KACK,CACD,IAAIC,EAAgB9phC,SAASg8T,eAAe,aAC5CltV,KAAK86iC,sBAAsBE,EAC/B,CACJ,CAuBAh7iC,KAAKi7iC,oBACT,EACAl1kB,EAAUp1d,UAAUsqiC,mBAAqB,WACrC,IAAKj7iC,KAAKkpiC,cAAc4Q,uBAAyB95iC,KAAKk3iC,iBAAmBl3iC,KAAKm3iC,eAAgB,EACrFn3iC,KAAKkpiC,cAAcgR,gBAAkBl6iC,KAAKk3iC,gBAC3Cl3iC,KAAK02iC,aAAe12iC,KAAKu4iC,oBAEpBv4iC,KAAKkpiC,cAAcgR,gBAAkBl6iC,KAAKm3iC,gBAC/Cn3iC,KAAK02iC,aAAe12iC,KAAKw4iC,mBAG7B,IAEI0C,EAFShqhC,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,qBAE1Cwmc,WAAW,MAE9Bw+kB,EAAU,IAAIr8kB,MAClBq8kB,EAAQx73B,OAAS,WACbu73B,EAAUl8kB,UAAUm8kB,EAAS,EAAG,EACpC,GACKn7iC,KAAKkpiC,cAAcgR,gBAAkBl6iC,KAAKk3iC,gBAC3CiE,EAAQz24B,IAAM1kK,KAAKq4iC,oBAEdr4iC,KAAKkpiC,cAAcgR,gBAAkBl6iC,KAAKm3iC,gBAC/CgE,EAAQz24B,IAAM1kK,KAAKs4iC,mBAGvB,IAAIvpc,EAAW79kB,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,sBAC/D44kB,IACAA,EAASjjjB,SAAU,GAEvB9rD,KAAKi5iC,oBAAmB,GACxBj5iC,KAAKo7iC,mBAAkB,EAC3B,CACJ,EACAr1kB,EAAUp1d,UAAU0qiC,uBAAyB,WACzC,IAAI5+hC,EAAS,GASb,OARKzc,KAAKkpiC,cAAc4Q,uBAAyB95iC,KAAKs3iC,sBAAuBt3iC,KAAKw3iC,oBAE1E/6hC,GADCzc,KAAKkpiC,cAAcgR,gBAAkBl6iC,KAAKs3iC,oBAClCt3iC,KAAK03iC,wBAGL13iC,KAAK23iC,uBAGfl7hC,CACX,EAEAspd,EAAUp1d,UAAU2qiC,wBAA0B,WAC1C,IAAI7+hC,EAAS,GASb,OARKzc,KAAKkpiC,cAAc4Q,uBAAyB95iC,KAAKu3iC,uBAAwBv3iC,KAAKy3iC,qBAE3Eh7hC,GADCzc,KAAKkpiC,cAAcgR,gBAAkBl6iC,KAAKu3iC,qBAClCv3iC,KAAKg4iC,0BAGLh4iC,KAAKi4iC,yBAGfx7hC,CACX,EAEAspd,EAAUp1d,UAAUmqiC,sBAAwB,SAAU/rc,GAC9C/umB,KAAKkpiC,cAAc4Q,qBACf95iC,KAAKkpiC,cAAcgR,eACfl6iC,KAAKipiC,UAAUsS,6BAA6BC,uBAAyBx7iC,KAAKipiC,UAAUsS,6BAA6BC,sBAAsBC,mBACvIz7iC,KAAK07iC,mBAAmB3sc,GAGvB/umB,KAAKipiC,UAAUsS,6BAA6BI,yBAA2B37iC,KAAKipiC,UAAUsS,6BAA6BI,wBAAwBF,mBAChJz7iC,KAAK07iC,mBAAmB3sc,GAIxB/umB,KAAKkpiC,cAAcgR,eACfl6iC,KAAKipiC,UAAU2S,qBAAqBJ,uBAAyBx7iC,KAAKipiC,UAAU2S,qBAAqBJ,sBAAsBC,mBACvHz7iC,KAAK07iC,mBAAmB3sc,GAIxB/umB,KAAKipiC,UAAU4S,uBAAuBF,yBAA2B37iC,KAAKipiC,UAAU4S,uBAAuBF,wBAAwBF,mBAC/Hz7iC,KAAK07iC,mBAAmB3sc,EAIxC,EACAhpI,EAAUp1d,UAAUmriC,sBAAwB,WACxC,OAAI97iC,KAAKkpiC,cAAc4Q,uBAIf95iC,KAAKkpiC,cAAcgR,iBACfl6iC,KAAKipiC,UAAU2S,qBAAqBJ,wBAAyBx7iC,KAAKipiC,UAAU2S,qBAAqBJ,sBAAsBC,oBAIhHz7iC,KAAKo3iC,8BAIZp3iC,KAAKipiC,UAAU4S,uBAAuBF,0BAA2B37iC,KAAKipiC,UAAU4S,uBAAuBF,wBAAwBF,oBAIxHz7iC,KAAKq3iC,+BAI5B,EACAtxkB,EAAUp1d,UAAU+qiC,mBAAqB,SAAU3sc,GAC3CA,IACAA,EAASl5U,cAAc1vR,MAAMi+J,QAAU,OAE/C,EACA2hU,EAAUp1d,UAAUoriC,mBAAqB,WAErC,IAAIhtc,EAAW79kB,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,sBACnE,GAAI44kB,GAAYA,EAASjjjB,SACrB,GAA0B,KAAtB9rD,KAAK02iC,aAAqB,CACrB12iC,KAAKkpiC,cAAcgR,gBAKpBl6iC,KAAKm3iC,eAAgB,EACrBn3iC,KAAKw4iC,kBAAoBx4iC,KAAK02iC,eAL9B12iC,KAAKk3iC,iBAAkB,EACvBl3iC,KAAKu4iC,oBAAsBv4iC,KAAK02iC,cAOpC,IAAI95kB,EAAS1rc,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,qBACjEn2B,KAAKy4iC,gBAAkB77kB,EAAOkG,YACzB9ie,KAAKkpiC,cAAcgR,eAIpBl6iC,KAAK24iC,mBAAqB34iC,KAAKy4iC,gBAH/Bz4iC,KAAK04iC,qBAAuB14iC,KAAKy4iC,eAKzC,OAGIz4iC,KAAKk3iC,kBAAoBl3iC,KAAKkpiC,cAAcgR,gBAC5Cl6iC,KAAKk3iC,iBAAkB,EACvBl3iC,KAAKu4iC,oBAAsB,GAC3Bv4iC,KAAKy4iC,gBAAkB,GACvBz4iC,KAAK04iC,qBAAuB,IAEvB14iC,KAAKm3iC,eAAiBn3iC,KAAKkpiC,cAAcgR,iBAC9Cl6iC,KAAKm3iC,eAAgB,EACrBn3iC,KAAKw4iC,kBAAoB,GACzBx4iC,KAAKy4iC,gBAAkB,GACvBz4iC,KAAK24iC,mBAAqB,IAE9B34iC,KAAK65iC,sBAEb,EAMA9zkB,EAAUp1d,UAAUqriC,aAAe,SAAUpviC,GACzC,IAAI0xvB,EACJ,GAAIt+vB,KAAKkpiC,cAAc4Q,qBAAsB,CACzC,IAAImC,EAAiBj8iC,KAAKipiC,UAAU9p6B,WAAW+86B,aAC/Cl8iC,KAAKkpiC,cAAciT,sBAAwB,KAC3Cn8iC,KAAKkpiC,cAAckT,kBAAmB,EACtC,IAAItmoB,EAAY91a,KAAKkpiC,cAAc2C,kBAAoB,EAEnDz9F,EAAYpu8B,KAAKipiC,UAAUsS,6BAA6BntG,UAAYpu8B,KAAKipiC,UAAUsS,6BAA6BntG,UAAY,EAE5H9/zB,EAAUtuI,KAAKipiC,UAAUsS,6BAA6Bjt6B,QAAUtuI,KAAKipiC,UAAUsS,6BAA6Bjt6B,QAAU,EAEtHmvV,EAAcz9d,KAAKipiC,UAAUsS,6BAA6B99kB,YAAcz9d,KAAKipiC,UAAUsS,6BAA6B99kB,YAAc,UAGlI4+kB,EAAkBr8iC,KAAKipiC,UAAUsR,iBAAiB+B,2BAA2Bt8iC,KAAK02iC,cAAc,GAEhG95kB,EAAS1rc,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,qBACjEn2B,KAAKy4iC,gBAAkB77kB,EAAOkG,YACzB9ie,KAAKkpiC,cAAcgR,eAIpBl6iC,KAAK24iC,mBAAqB34iC,KAAKy4iC,gBAH/Bz4iC,KAAK04iC,qBAAuB14iC,KAAKy4iC,gBAKrCn6S,EAAQ,CAEJnouB,GAAI,OAASn2B,KAAKkpiC,cAAcqT,eAAgB53S,OAAQ03S,EAAiBvmoB,UAAWA,EAAW5rY,KAAMlqC,KAAK02iC,aAAcl0lB,WAb3G,YAamIvjK,SAdrI,GAeX81vB,oBAAqB,uBAAwBzm6B,QAASA,EAASmvV,YAAaA,EAAa2we,UAAWA,EAAWouG,cAAeP,GAElIj8iC,KAAKkpiC,cAAciT,sBAAwB79S,EAE3C,IAAIvvJ,OAAW,GAEXA,EADAjiS,KACW57S,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,sBAGpDjF,SAASg8T,eAAe,cAEvB6hR,EAASjjjB,SACrB9rD,KAAKy8iC,yBAETz8iC,KAAK08iC,qBACL18iC,KAAKkpiC,cAAc4Q,sBAAuB,CAC9C,KACK,CAEG/qc,EAAW79kB,SAASg8T,eAAe,YAAvC,IACI6ttB,EAAe7phC,SAASg8T,eAAe,aACvC8ttB,EAAgB9phC,SAASg8T,eAAe,aACxCkvtB,GAAmB,EACvB,IAAKA,EAAkB,CAEfx/kB,EAAS1rc,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,qBACjEn2B,KAAKy4iC,gBAAkB77kB,EAAOkG,YAC1BisI,IACIA,EAASjjjB,SACJ9rD,KAAKkpiC,cAAcgR,gBAMpBl6iC,KAAKm3iC,eAAgB,EACrBn3iC,KAAKs4iC,kBAAoBt4iC,KAAKy4iC,gBAC9Bz4iC,KAAKw4iC,kBAAoBx4iC,KAAK02iC,eAP9B12iC,KAAKk3iC,iBAAkB,EACvBl3iC,KAAKq4iC,oBAAsBr4iC,KAAKy4iC,gBAChCz4iC,KAAKu4iC,oBAAsBv4iC,KAAK02iC,cAOpC12iC,KAAK28iC,mBAAmB38iC,KAAKkpiC,cAAcgR,gBAAgB,KAGtDl6iC,KAAKkpiC,cAAcgR,gBAKpBl6iC,KAAKm3iC,eAAgB,EACrBn3iC,KAAKw4iC,kBAAoB,KALzBx4iC,KAAKk3iC,iBAAkB,EACvBl3iC,KAAKu4iC,oBAAsB,IAM/Bv4iC,KAAK28iC,mBAAmB38iC,KAAKkpiC,cAAcgR,gBAAgB,KAGnEl6iC,KAAK48iC,kBAAkB7B,GACvB/6iC,KAAK68iC,oBAAoB7B,GACpBh7iC,KAAKkpiC,cAAcgR,eAIpBl6iC,KAAK24iC,mBAAqB34iC,KAAKy4iC,gBAH/Bz4iC,KAAK04iC,qBAAuB14iC,KAAKy4iC,gBAKrCz4iC,KAAKipiC,UAAUsR,iBAAiBuC,cAAc,KAAM,KAAM98iC,KAAKkpiC,cAAc/tgC,cAAe,MAC5FihhC,GAAmB,CACvB,CACJ,CACJ,EACAr2kB,EAAUp1d,UAAUgsiC,mBAAqB,SAAUI,EAAcC,GACzDD,EACA/8iC,KAAKo3iC,4BAA8B4F,EAGnCh9iC,KAAKq3iC,+BAAiC2F,CAE9C,EACAj3kB,EAAUp1d,UAAU+piC,mBAAqB,WACV,SAAvB16iC,KAAK64iC,cACL74iC,KAAKg8iC,eAEuB,SAAvBh8iC,KAAK64iC,cACV74iC,KAAKi9iC,mBAGLj9iC,KAAKk9iC,oBAETl9iC,KAAK22iC,iBAAmB,GACxB32iC,KAAK42iC,kBAAoB,EAC7B,EACA7wkB,EAAUp1d,UAAUssiC,iBAAmB,SAAUrwiC,GAC7C,GAAI5M,KAAKkpiC,cAAc4Q,qBAAsB,CACzC,IAEIx7S,EAFA6+S,EAAYn9iC,KAAKkpiC,cAAcsB,gBAG/ByR,EAAiBj8iC,KAAKipiC,UAAU9p6B,WAAW+86B,aAC/Cl8iC,KAAKkpiC,cAAciT,sBAAwB,KAC3Cn8iC,KAAKkpiC,cAAckT,kBAAmB,EACtC,IAMIgB,EACAC,EAPAvnoB,EAAY91a,KAAKkpiC,cAAc2C,kBAAoB,EACnDpC,EAAUv4gC,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,YAAc2/Y,GAC5Es4hB,EAAYpu8B,KAAKipiC,UAAUsS,6BAA6BntG,UAAYpu8B,KAAKipiC,UAAUsS,6BAA6BntG,UAAY,EAC5H9/zB,EAAUtuI,KAAKipiC,UAAUsS,6BAA6Bjt6B,QAAUtuI,KAAKipiC,UAAUsS,6BAA6Bjt6B,QAAU,EACtHmvV,EAAcz9d,KAAKipiC,UAAUsS,6BAA6B99kB,YAAcz9d,KAAKipiC,UAAUsS,6BAA6B99kB,YAAc,UAMtI2/kB,GAAgB1sgC,WAAW+4/B,EAAQtjiC,MAAMqY,OAAS,EAAM6xjB,KAAqB8se,EAC7EE,GAAe3sgC,WAAW+4/B,EAAQtjiC,MAAMyiJ,QAAU,EAAM8vX,MAAsBykiB,EAC9E,IAAIp8J,EAAa/g5B,KAAKkpiC,cAAcsB,gBAC/BxqiC,KAAKs9iC,eACNt9iC,KAAKu9iC,0BAAyB,GAElC,IAAIl6vB,EAAarjT,KAAKs9iC,cACtBh/S,EAAQ,CAEJnouB,GAAI,WAAan2B,KAAKkpiC,cAAcqT,eAAgB53S,OAAQ,CACxDhhoB,KAAMy56B,EAAcr8J,EAAY7yvB,IAAKmv5B,EAAat8J,EAAY7m4B,EAAGkjiC,EAAcr8J,EAE/E5m4B,EAAGkjiC,EAAat8J,EAAYvi4B,MAbjB,IAasCoqI,OAdrC,IAebktR,UAAWA,EAAW0noB,YAAan6vB,EAAYn5Q,KAAMlqC,KAAKkpiC,cAAcuU,gBAAgB/G,aAAc3B,oBAAqB,gBAC9Hzm6B,QAASA,EAASmvV,YAAaA,EAAa2we,UAAWA,EAAWnvpB,SAnBvD,GAmB2EujK,WAAYxid,KAAKiplB,SAAUuzd,cAAeP,GAEpIj8iC,KAAKkpiC,cAAciT,sBAAwB79S,EAE3C,IAAIvvJ,OAAW,GAEXA,EADAjiS,KACW57S,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,sBAGpDjF,SAASg8T,eAAe,eAEvB6hR,EAASjjjB,SACrB9rD,KAAKy8iC,yBAETz8iC,KAAKs9iC,cAAgB,GACrBt9iC,KAAK08iC,qBACL18iC,KAAKkpiC,cAAc4Q,sBAAuB,CAC9C,KACK,CACG/qc,EAAW79kB,SAASg8T,eAAe,YAAvC,IACI6ttB,EAAe7phC,SAASg8T,eAAe,aACvC8ttB,EAAgB9phC,SAASg8T,eAAe,aACxCkvtB,GAAmB,EACvB,IAAKA,EAAkB,CACnBp8iC,KAAK09iC,kBAAkB3uc,GACvB/umB,KAAK68iC,oBAAoB7B,GACzB,IAAIp+kB,EAAS1rc,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,qBACjEn2B,KAAK43iC,eAAiBh7kB,EAAOkG,YAC7B9ie,KAAKu9iC,2BACDxC,GAAgBA,EAAajv/B,QACxB9rD,KAAKkpiC,cAAcgR,gBAOpBl6iC,KAAKm3iC,eAAgB,EACrBn3iC,KAAK24iC,mBAAqB34iC,KAAK43iC,eAC/B53iC,KAAK23iC,sBAAwB33iC,KAAKw5wB,UAClCx5wB,KAAKw3iC,mBAAoB,IATzBx3iC,KAAKk3iC,iBAAkB,EACvBl3iC,KAAK04iC,qBAAuB14iC,KAAK43iC,eACjC53iC,KAAK03iC,wBAA0B13iC,KAAKw5wB,UACpCx5wB,KAAKs3iC,qBAAsB,GAU1Bt3iC,KAAKkpiC,cAAcgR,gBAMpBl6iC,KAAKm3iC,eAAgB,EACrBn3iC,KAAK23iC,sBAAwB,GAC7B33iC,KAAKw3iC,mBAAoB,IAPzBx3iC,KAAKk3iC,iBAAkB,EACvBl3iC,KAAK03iC,wBAA0B,GAC/B13iC,KAAKs3iC,qBAAsB,GAQ9Bt3iC,KAAKkpiC,cAAcgR,eAIpBl6iC,KAAK83iC,kBAAoB93iC,KAAK43iC,eAH9B53iC,KAAK63iC,oBAAsB73iC,KAAK43iC,eAKpC53iC,KAAKipiC,UAAUsR,iBAAiBuC,cAAc,OAAQ98iC,KAAKw5wB,UAAWx5wB,KAAKkpiC,cAAc/tgC,eACzFihhC,GAAmB,EACnBp8iC,KAAK08iC,oBACT,CACJ,CACJ,EACA32kB,EAAUp1d,UAAUusiC,kBAAoB,SAAUtwiC,GAC9C,GAAI5M,KAAKkpiC,cAAc4Q,qBAAsB,CACzC,IAEIx7S,EAFA6+S,EAAYn9iC,KAAKkpiC,cAAcsB,gBAG/ByR,EAAiBj8iC,KAAKipiC,UAAU9p6B,WAAW+86B,aAC/Cl8iC,KAAKkpiC,cAAciT,sBAAwB,KAC3Cn8iC,KAAKkpiC,cAAckT,kBAAmB,EACtC,IAMIgB,EACAC,EAPAvnoB,EAAY91a,KAAKkpiC,cAAc2C,kBAAoB,EACnDpC,EAAUv4gC,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,YAAc2/Y,GAC5Es4hB,EAAYpu8B,KAAKipiC,UAAUsS,6BAA6BntG,UAAYpu8B,KAAKipiC,UAAUsS,6BAA6BntG,UAAY,EAC5H9/zB,EAAUtuI,KAAKipiC,UAAUsS,6BAA6Bjt6B,QAAUtuI,KAAKipiC,UAAUsS,6BAA6Bjt6B,QAAU,EACtHmvV,EAAcz9d,KAAKipiC,UAAUsS,6BAA6B99kB,YAAcz9d,KAAKipiC,UAAUsS,6BAA6B99kB,YAAc,UAIlIkglB,EAAqB,IACrBjliB,EAAgB,EAChB23D,EAAe,EAEfrwkB,KAAKk5iC,sBAAwBl5iC,KAAKo5iC,qBAClC1giB,EAAkB14gB,KAAKk5iC,qBAAuBl5iC,KAAKk5iC,qBAAwByE,EAC3Ette,EAAiBrwkB,KAAKo5iC,oBAAsBp5iC,KAAKk5iC,qBAAwByE,IAGzEjliB,EAAkB14gB,KAAKk5iC,qBAAuBl5iC,KAAKo5iC,oBAAuBuE,EAC1Ette,EAAiBrwkB,KAAKo5iC,oBAAsBp5iC,KAAKo5iC,oBAAuBuE,GAE5EP,GAAgB1sgC,WAAW+4/B,EAAQtjiC,MAAMqY,OAAS,EAAM6xjB,EAAe,GAAM8se,EAC7EE,GAAe3sgC,WAAW+4/B,EAAQtjiC,MAAMyiJ,QAAU,EAAM8vX,EAAgB,GAAMykiB,EAC9E,IAAIp8J,EAAa/g5B,KAAKkpiC,cAAcsB,gBAChCnnvB,EAAarjT,KAAKs9iC,cACtBh/S,EAAQ,CAEJnouB,GAAI,WAAan2B,KAAKkpiC,cAAcqT,eAAgB53S,OAAQ,CACxDhhoB,KAAMy56B,EAAcr8J,EAAY7yvB,IAAKmv5B,EAAat8J,EAAY7m4B,EAAGkjiC,EAAcr8J,EAE/E5m4B,EAAGkjiC,EAAat8J,EAAYvi4B,MAAO6xjB,EAAcznb,OAAQ8vX,GAC1D5iG,UAAWA,EAAW0noB,YAAan6vB,EAAYn5Q,KAAMlqC,KAAKkpiC,cAAcuU,gBAAgB/G,aAAc3B,oBAAqB,iBAC9Hzm6B,QAASA,EAASmvV,YAAaA,EAAa2we,UAAWA,EAAWnvpB,SA1BvD,GA0B2EujK,WAAYxid,KAAKiplB,SAAUuzd,cAAeP,GAEpIj8iC,KAAKkpiC,cAAciT,sBAAwB79S,EAE3C,IAAIvvJ,OAAW,GAEXA,EADAjiS,KACW57S,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,sBAGpDjF,SAASg8T,eAAe,eAEvB6hR,EAASjjjB,SACrB9rD,KAAKy8iC,yBAETz8iC,KAAK08iC,qBACL18iC,KAAKkpiC,cAAc4Q,sBAAuB,CAC9C,KACK,CACG/qc,EAAW79kB,SAASg8T,eAAe,YAAvC,IACI6ttB,EAAe7phC,SAASg8T,eAAe,aACvC8ttB,EAAgB9phC,SAASg8T,eAAe,aACxCkvtB,GAAmB,EACvB,IAAKA,EAAkB,CACnBp8iC,KAAK09iC,kBAAkB3uc,GACvB/umB,KAAK48iC,kBAAkB7B,GACvB,IAAIn+kB,EAAS1rc,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,qBACjEn2B,KAAK+3iC,iBAAmBn7kB,EAAOkG,YAC3Bk4kB,GAAiBA,EAAclv/B,QAC1B9rD,KAAKkpiC,cAAcgR,gBAOpBl6iC,KAAKm3iC,eAAgB,EACrBn3iC,KAAK24iC,mBAAqB34iC,KAAK+3iC,iBAC/B/3iC,KAAKi4iC,wBAA0Bj4iC,KAAK02iC,aACpC12iC,KAAKy3iC,oBAAqB,IAT1Bz3iC,KAAKk3iC,iBAAkB,EACvBl3iC,KAAK04iC,qBAAuB14iC,KAAK+3iC,iBACjC/3iC,KAAKg4iC,0BAA4Bh4iC,KAAK02iC,aACtC12iC,KAAKu3iC,sBAAuB,GAU3Bv3iC,KAAKkpiC,cAAcgR,gBAMpBl6iC,KAAKm3iC,eAAgB,EACrBn3iC,KAAKi4iC,wBAA0B,GAC/Bj4iC,KAAKy3iC,oBAAqB,IAP1Bz3iC,KAAKk3iC,iBAAkB,EACvBl3iC,KAAKg4iC,0BAA4B,GACjCh4iC,KAAKu3iC,sBAAuB,GAQ/Bv3iC,KAAKkpiC,cAAcgR,eAIpBl6iC,KAAKm4iC,oBAAsBn4iC,KAAK+3iC,iBAHhC/3iC,KAAKk4iC,sBAAwBl4iC,KAAK+3iC,iBAKtC/3iC,KAAKipiC,UAAUsR,iBAAiBuC,cAAc,QAAS,GAAI98iC,KAAKkpiC,cAAc/tgC,eAC9EihhC,GAAmB,EACnBp8iC,KAAK08iC,oBACT,CACJ,CACJ,EACA32kB,EAAUp1d,UAAU+siC,kBAAoB,SAAU3uc,GAC9C,GAAIA,EACA,GAAIA,EAASjjjB,SACT,GAA8B,KAA1B9rD,KAAK22iC,iBAAyB,CAC9B,IAAI/5kB,EAAS1rc,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,qBACjEn2B,KAAKy4iC,gBAAkB77kB,EAAOkG,YACzB9ie,KAAKkpiC,cAAcgR,gBAKpBl6iC,KAAKw4iC,kBAAoBx4iC,KAAK22iC,iBAC9B32iC,KAAKs4iC,kBAAoBt4iC,KAAKy4iC,kBAL9Bz4iC,KAAKu4iC,oBAAsBv4iC,KAAK22iC,iBAChC32iC,KAAKq4iC,oBAAsBr4iC,KAAKy4iC,iBAMpCz4iC,KAAK28iC,mBAAmB38iC,KAAKkpiC,cAAcgR,gBAAgB,EAC/D,OAGKl6iC,KAAKkpiC,cAAcgR,eAIpBl6iC,KAAKw4iC,kBAAoB,GAHzBx4iC,KAAKu4iC,oBAAsB,GAK/Bv4iC,KAAK28iC,mBAAmB38iC,KAAKkpiC,cAAcgR,gBAAgB,EAGvE,EACAn0kB,EAAUp1d,UAAUisiC,kBAAoB,SAAU7B,GAC1CA,IACIA,EAAajv/B,SACb9rD,KAAKu9iC,2BACkB,KAAnBv9iC,KAAKw5wB,YACAx5wB,KAAKkpiC,cAAcgR,gBAKpBl6iC,KAAKw3iC,mBAAoB,EACzBx3iC,KAAK23iC,sBAAwB33iC,KAAKw5wB,YALlCx5wB,KAAKs3iC,qBAAsB,EAC3Bt3iC,KAAK03iC,wBAA0B13iC,KAAKw5wB,aASvCx5wB,KAAKkpiC,cAAcgR,gBAKpBl6iC,KAAK23iC,sBAAwB,GAC7B33iC,KAAKw3iC,mBAAoB,IALzBx3iC,KAAK03iC,wBAA0B,GAC/B13iC,KAAKs3iC,qBAAsB,GAQ3C,EACAvxkB,EAAUp1d,UAAUksiC,oBAAsB,SAAU7B,GAChD,GAAIA,EACA,GAAIA,EAAclv/B,QAAS,CACvB,IACI8x/B,EADc1shC,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,2BACvC2sc,YAC3B+6kB,EAA8G,WAAhG3shC,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,uBAAuBhwB,MAAMohQ,WAA0Bq2yB,EAAe,GACxH,KAAhBC,IACK79iC,KAAKkpiC,cAAcgR,gBAKpBl6iC,KAAKy3iC,oBAAqB,EAC1Bz3iC,KAAKi4iC,wBAA0B4F,IAL/B79iC,KAAKu3iC,sBAAuB,EAC5Bv3iC,KAAKg4iC,0BAA4B6F,GAO7C,MAES79iC,KAAKkpiC,cAAcgR,gBAKpBl6iC,KAAKi4iC,wBAA0B,GAC/Bj4iC,KAAKy3iC,oBAAqB,IAL1Bz3iC,KAAKg4iC,0BAA4B,GACjCh4iC,KAAKu3iC,sBAAuB,EAQ5C,EACAxxkB,EAAUp1d,UAAU4siC,yBAA2B,SAAUz1+B,GAErD,IAAIg2+B,EAAe5shC,SAAS1gB,iBAAiB,mBAC7C,GAAIstiC,EACA,IAAK,IAAI9tiC,EAAI,EAAGA,EAAI8tiC,EAAa16iC,OAAQ4M,IACrC,GAAI8tiC,EAAavxhC,SAASvc,EAAE8G,WAAY,MAAuE,QAA/DgniC,EAAavxhC,SAASvc,EAAE8G,WAAY,KAAK3Q,MAAMo9zB,YAAuB,CAC9Gvj0B,KAAKkpiC,cAAc4Q,qBACfhy+B,GACA9nE,KAAKs9iC,cAAgBQ,EAAavxhC,SAASvc,EAAE8G,WAAY,KAAK8yB,YAC9D5pC,KAAK02iC,aAAeoH,EAAavxhC,SAASvc,EAAE8G,WAAY,KAAK8yB,aAG7D5pC,KAAK02iC,aAAeoH,EAAavxhC,SAASvc,EAAE8G,WAAY,KAAK8yB,YAI7Dk+B,GACA9nE,KAAKs9iC,cAAgBQ,EAAavxhC,SAASvc,EAAE8G,WAAY,KAAK8yB,YAC9D5pC,KAAKw5wB,UAAYskS,EAAavxhC,SAASvc,EAAE8G,WAAY,KAAK8yB,aAG1D5pC,KAAKw5wB,UAAYskS,EAAavxhC,SAASvc,EAAE8G,WAAY,KAAK8yB,YAGlE,IACI5pC,KAAKiplB,SAAWx4iB,KAAKuL,MAAM8hgC,EAAavxhC,SAASvc,EAAE8G,WAAY,KAAK3Q,MAAMq8c,WAC9E,CACA,MAAOnid,KACHL,KAAKiplB,SAAW60d,EAAavxhC,SAASvc,EAAE8G,WAAY,KAAK3Q,MAAMq8c,UACnE,CACJ,CAGZ,EAKAujB,EAAUp1d,UAAU+riC,mBAAqB,WACjC18iC,KAAKm6iC,iBACLn6iC,KAAKm6iC,gBAAgB58wB,MAE7B,EACAwoM,EAAUp1d,UAAUotiC,4BAA8B,WAC9C,GAAIjxuB,KACA,IAAK,IAAI3gU,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAExB,IAAI6xiC,EAAc9shC,SAAS0I,cAAc,IAAM55B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,kBAAoBhqB,GAC3F6xiC,GACAA,EAAY1ihC,iBAAiB,QAASt7B,KAAKi+iC,qBAAqBp+iC,KAAKG,MAE7E,CAER,EACA+le,EAAUp1d,UAAUutiC,4BAA8B,WAE9C,IAAIthlB,EAAS1rc,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,qBAC7Dymc,IACAA,EAAOthc,iBAAiB,YAAat7B,KAAK05iC,wBAAwB75iC,KAAKG,OACvE48d,EAAOthc,iBAAiB,YAAat7B,KAAK25iC,wBAAwB95iC,KAAKG,OACvE48d,EAAOthc,iBAAiB,UAAWt7B,KAAK45iC,sBAAsB/5iC,KAAKG,OACnE48d,EAAOthc,iBAAiB,aAAct7B,KAAK45iC,sBAAsB/5iC,KAAKG,OACtE48d,EAAOthc,iBAAiB,aAAct7B,KAAK05iC,wBAAwB75iC,KAAKG,OACxE48d,EAAOthc,iBAAiB,YAAat7B,KAAK25iC,wBAAwB95iC,KAAKG,OACvE48d,EAAOthc,iBAAiB,WAAYt7B,KAAK45iC,sBAAsB/5iC,KAAKG,OAE5E,EAEA+le,EAAUp1d,UAAUstiC,qBAAuB,SAAUlnhC,GACjD,IAAIs3P,EAAct3P,EAAM1uB,OACxB,GAAIgmR,EAAa,CACb,IAAK,IAAIliR,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAExB,IAAI6xiC,EAAc9shC,SAAS0I,cAAc,IAAM55B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,kBAAoBhqB,GAC3F6xiC,IACAA,EAAY73iC,MAAMo9zB,YAAc,GAExC,CACAl1iB,EAAYloR,MAAMo9zB,YAAc,MAChCvj0B,KAAK02iC,aAAeroxB,EAAYzkP,YAChC,IACI5pC,KAAKiplB,SAAWx4iB,KAAKuL,MAAMqyO,EAAYloR,MAAMq8c,WACjD,CACA,MAAOnid,KACHL,KAAKiplB,SAAW56T,EAAYloR,MAAMq8c,UACtC,CACAxid,KAAKi5iC,oBAAmB,EAC5B,CACJ,EAEAlzkB,EAAUp1d,UAAUqpiC,sBAAwB,WAExC,IAAImE,EAAgBjthC,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,qBAEpEipF,EAAQluF,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,wBAC5DgohC,GACAA,EAAchrhC,SAEdisF,GACAA,EAAMjsF,SAGV,IAyBIirhC,EAEA94hC,EACA+4hC,EA5BAC,EAAgBx9iC,GAAc,MAAO,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,uBAAwBp1B,UAAW,2BAA4BmzR,OAAQ,oBAE9I0oM,EAAS97d,GAAc,SAAU,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,oBAAqBp1B,UAAW,0BACnGf,KAAKipiC,UAAU9zhC,QAAQg7P,YAAc,IACrCysN,EAAOp+c,MAAQ,IAGfo+c,EAAOp+c,MAAQxe,KAAKipiC,UAAU9zhC,QAAQg7P,YAAc,GAExDysN,EAAO10M,UAAU90P,IAAI,yBACrBwpc,EAAOh0U,OAAS,IAChBg0U,EAAOz2d,MAAMyiJ,OAAS,QACtBg0U,EAAOz2d,MAAMqhQ,OAAS,qBACtBo1N,EAAOz2d,MAAMy3d,gBAAkB,QAC/BhB,EAAOz2d,MAAM47R,UAAY,aACzB66L,EAAOz2d,MAAMo4iC,aAAe,MAC5B3hlB,EAAOthc,iBAAiB,YAAat7B,KAAK05iC,wBAAwB75iC,KAAKG,OACvE48d,EAAOthc,iBAAiB,YAAat7B,KAAK25iC,wBAAwB95iC,KAAKG,OACvE48d,EAAOthc,iBAAiB,UAAWt7B,KAAK45iC,sBAAsB/5iC,KAAKG,OACnE48d,EAAOthc,iBAAiB,aAAct7B,KAAKw+iC,yBAAyB3+iC,KAAKG,OACzE48d,EAAOthc,iBAAiB,aAAct7B,KAAK05iC,wBAAwB75iC,KAAKG,OACxE48d,EAAOthc,iBAAiB,YAAat7B,KAAK25iC,wBAAwB95iC,KAAKG,OACvE48d,EAAOthc,iBAAiB,WAAYt7B,KAAK45iC,sBAAsB/5iC,KAAKG,OACpEs+iC,EAAc5shC,YAAYkrc,GAOtByhlB,EADAr+iC,KAAKkpiC,cAAc4Q,uBAAyB95iC,KAAKkpiC,cAAcgR,eACzCl6iC,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,kBAGrC/lW,KAAKkpiC,cAAcgR,eAAiBl6iC,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,gBAAkB/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,kBAErJ/lW,KAAKipiC,UAAUwS,qBAEhBn2hC,EAAQ4L,SAASpwB,cAAc,UACzB8L,KAAO,WACb0Y,EAAM6Q,GAAK,WACXmohC,EAAc5shC,YAAYpM,IAC1B84hC,EAAc,IAAI7rW,IAAS,CAAEnka,MAAOiwwB,EAAqBzviC,UAAU,EAAOk9C,SAAS,KACvE4sS,SAASpzU,IAEpBtlB,KAAKkpiC,cAAcgR,eAIpBl6iC,KAAKm3iC,cAAgBn3iC,KAAK87iC,wBAH1B97iC,KAAKk3iC,gBAAkBl3iC,KAAK87iC,yBAK5B97iC,KAAKk3iC,kBAAoBl3iC,KAAKkpiC,cAAcgR,gBAGvCl6iC,KAAKm3iC,eAAiBn3iC,KAAKkpiC,cAAcgR,kBAF9CkE,EAAYty/B,SAAU,GAO1B,IAAI2y/B,EAAU39iC,GAAc,MAAO,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,kBAAmBp1B,UAAW,2BAA4BmzR,OAAQ,mBAEnIslgB,EAAYtowB,SAASpwB,cAAc,SAClCd,KAAKkpiC,cAAcgR,iBAAkBl6iC,KAAKs3iC,qBAAwBt3iC,KAAKkpiC,cAAc4Q,qBAGjF95iC,KAAKkpiC,cAAcgR,gBAAkBl6iC,KAAKw3iC,oBAAsBx3iC,KAAKkpiC,cAAc4Q,uBACxFtgR,EAAU53xB,MAAQ5B,KAAKq7iC,0BAHvB7hR,EAAU53xB,MAAQ5B,KAAKq7iC,yBAK3B7hR,EAAU5sxB,KAAO,OACjB4sxB,EAAUrjwB,GAAKn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,qBAC3CsohC,EAAQ/shC,YAAY8nwB,GAEpB,IAAIklR,EAAW,IAAIvN,IAAQ,CACvBxt+B,YAAa3jE,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,2BAClDu3C,eAAgB,SAEpBohqB,EAAShmtB,SAAS8gc,GAElB,IAAImlR,EAAU79iC,GAAc,MAAO,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,mBAAoBp1B,UAAW,+BACpG49iC,EAAQz2xB,UAAU90P,IAAI,yBACtBurhC,EAAQx4iC,MAAMyiJ,OAAS,QACvB+15B,EAAQx4iC,MAAMqhQ,OAAS,qBACvBm3yB,EAAQx4iC,MAAM47R,UAAY,aAC1B48wB,EAAQx4iC,MAAMo4iC,aAAe,MAC7BI,EAAQx4iC,MAAMy3d,gBAAkB,QAChC+glB,EAAQx4iC,MAAMswH,MAAQ,QACtBko7B,EAAQx4iC,MAAMqvR,UAAY,MAC1BmpxB,EAAQx4iC,MAAMi8R,aAAe,MAC7Bq8wB,EAAQ/shC,YAAYithC,IACpBr5hC,EAAQ4L,SAASpwB,cAAc,UACzB8L,KAAO,WACb0Y,EAAM6Q,GAAK,YACXsohC,EAAQ/shC,YAAYpM,IACpB84hC,EAAc,IAAI7rW,IAAS,CAAEnka,MAAOiwwB,EAAqBzviC,UAAU,EAAOk9C,SAAS,KACvE4sS,SAASpzU,IACjBtlB,KAAKs3iC,qBAAwBt3iC,KAAKkpiC,cAAcgR,gBAAmBl6iC,KAAKkpiC,cAAc4Q,qBAGjF95iC,KAAKw3iC,mBAAqBx3iC,KAAKkpiC,cAAcgR,iBAAmBl6iC,KAAKkpiC,cAAc4Q,uBACxFsE,EAAYty/B,SAAU,GAHtBsy/B,EAAYty/B,SAAU,EAK1B4y/B,EAASpjhC,iBAAiB,QAASt7B,KAAK4+iC,oBAAoB/+iC,KAAKG,OACjEA,KAAKi5iC,oBAAmB,GAExB,IAAI33vB,EAAMxgT,GAAc,MAAO,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,kBAC7Di53B,EAAYtu5B,GAAc,MAAO,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,oBAAqBp1B,UAAW,2BAA4BmzR,OAAQ,qBAEvI36P,EAASrI,SAASpwB,cAAc,OACpCy4B,EAAOpD,GAAKn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,sBACxCi53B,EAAU193B,YAAY6H,GAEtB,IAAI25c,EAAe,IAAIpvN,GAAO,CAAE8rF,SAAU,mBAAoB76V,QAAS/U,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,4BAC5GmtI,EAAax6I,SAASn/T,GACtB25c,EAAa/9d,QAAQhP,MAAM+jF,SAAW,WAEtC,IAAI209B,EAAe/9iC,GAAc,SAAU,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,0BAA2Bp1B,UAAW,gCAC/Gf,KAAKipiC,UAAU9zhC,QAAQg7P,YAAc,IACrC0uyB,EAAargiC,MAAQ,IAGrBqgiC,EAAargiC,MAAQxe,KAAKipiC,UAAU9zhC,QAAQg7P,YAAc,GAE9D0uyB,EAAa32xB,UAAU90P,IAAI,yBAC3ByrhC,EAAaj25B,OAAS,IACtBi25B,EAAa14iC,MAAMyiJ,OAAS,QAC5BsqV,EAAa/9d,QAAQhP,MAAMw9H,KAASk76B,EAAargiC,MAAQ,EAAK,GAAM,KACpE00d,EAAa/9d,QAAQhP,MAAM+nJ,IAAQx9G,WAAWmugC,EAAa14iC,MAAMyiJ,QAAU,EAAK,GAAM,KACtFi25B,EAAa14iC,MAAMqhQ,OAAS,qBAC5Bq3yB,EAAa14iC,MAAMy3d,gBAAkB,QACrCihlB,EAAa14iC,MAAM47R,UAAY,aAC/B88wB,EAAa14iC,MAAMo4iC,aAAe,MAClCM,EAAa14iC,MAAMwoI,OAAS,IAC5B,IAAImw6B,EAAoB,GAOxB,GANK9+iC,KAAKkpiC,cAAcgR,iBAAkBl6iC,KAAKu3iC,sBAAyBv3iC,KAAKkpiC,cAAc4Q,qBAGlF95iC,KAAKkpiC,cAAcgR,gBAAkBl6iC,KAAKy3iC,qBAAuBz3iC,KAAKkpiC,cAAc4Q,uBACzFgF,EAAoB9+iC,KAAKs7iC,2BAHzBwD,EAAoB9+iC,KAAKs7iC,0BAKH,KAAtBwD,IAA6B9+iC,KAAKkpiC,cAAc4Q,qBAAsB,CACtE95iC,KAAKo4iC,mBAAoB,EACzB,IAAI2G,EAAQF,EAAalilB,WAAW,MAChCqilB,EAAU,IAAIlglB,MAClBkglB,EAAQt64B,IAAMo64B,EACdE,EAAQr/3B,OAAS,WACbo/3B,EAAM//kB,UAAUgglB,EAAS,EAAG,EAAGH,EAAargiC,MAAOqgiC,EAAaj25B,OACpE,EACAsqV,EAAa/9d,QAAQhP,MAAMi+J,QAAU,QACzC,CACAgrvB,EAAU193B,YAAYmthC,IACtBv5hC,EAAQ4L,SAASpwB,cAAc,UACzB8L,KAAO,WACb0Y,EAAM6Q,GAAK,YACXi53B,EAAU193B,YAAYpM,IACtB84hC,EAAc,IAAI7rW,IAAS,CAAEnka,MAAOiwwB,EAAqBzviC,UAAU,EAAOk9C,SAAS,KACvE4sS,SAASpzU,IACjBtlB,KAAKu3iC,sBAAyBv3iC,KAAKkpiC,cAAcgR,gBAAmBl6iC,KAAKkpiC,cAAc4Q,qBAGlF95iC,KAAKy3iC,oBAAsBz3iC,KAAKkpiC,cAAcgR,iBAAmBl6iC,KAAKkpiC,cAAc4Q,uBACzFsE,EAAYty/B,SAAU,GAHtBsy/B,EAAYty/B,SAAU,EAK1BvyB,EAAO+B,iBAAiB,QAASt7B,KAAKi/iC,qBAAqBp/iC,KAAKG,OAEhEA,KAAKi3iC,cAAgB,CAAC,CAAElI,SAAU,aAAe,CAAEA,SAAU,mBAAqB,CAAEA,SAAU,WAAa,CAAEA,SAAU,WAEvH,IAAImQ,EAAgB,GACpB,GAAIl/iC,KAAKkpiC,cAAc4Q,uBAAyB/tuB,GAAkB/rU,KAAKipiC,UAAUsS,6BAA6B4D,oBAC1G,IAAK,IAAInviC,EAAI,EAAGA,EAAI,EAAGA,IACd+7T,GAAkB/rU,KAAKipiC,UAAUsS,6BAA6B4D,mBAAmB5yhC,SAASvc,EAAE8G,WAAY,QACzG9W,KAAKi3iC,cAAc1qhC,SAASvc,EAAE8G,WAAY,KAAKi4hC,SAAW/uiC,KAAKipiC,UAAUsS,6BAA6B4D,mBAAmB5yhC,SAASvc,EAAE8G,WAAY,MAI5J,IAAK,IAAI3K,EAAI,EAAGA,EAAInM,KAAKi3iC,cAAc7ziC,OAAQ+I,IAC3C+yiC,EAAc3yhC,SAASpgB,EAAE2K,WAAY,KAAOoa,SAASpwB,cAAc,OACnEo+iC,EAAc3yhC,SAASpgB,EAAE2K,WAAY,KAAKqf,GAAK,kBAAoBhqB,EACnE+yiC,EAAc3yhC,SAASpgB,EAAE2K,WAAY,KAAKoxQ,UAAU90P,IAAI,kBAE5DpzB,KAAKg3iC,SAAWkI,EAEhB,IAAIl52B,EAAQhmM,KACR8nD,EAAQ,GAwCZ,OArCQA,EAFJ9nD,KAAKkpiC,cAAc4Q,qBACf95iC,KAAKkpiC,cAAcgR,eACXl6iC,KAAKo/iC,qBAAqBp/iC,KAAKipiC,UAAUsS,6BAA6BC,uBAAyBx7iC,KAAKipiC,UAAUsS,6BAA6BC,sBAAsB6D,YAAaf,EAAeG,EAASrvJ,GAGtMpv5B,KAAKo/iC,qBAAqBp/iC,KAAKipiC,UAAUsS,6BAA6BI,yBAA2B37iC,KAAKipiC,UAAUsS,6BAA6BI,wBAAwB0D,YAAaf,EAAeG,EAASrvJ,GAIlNpv5B,KAAKkpiC,cAAcgR,eACXl6iC,KAAKo/iC,qBAAsBp/iC,KAAKipiC,UAAU2S,qBAAqBJ,sBAAwBx7iC,KAAKipiC,UAAU2S,qBAAqBJ,sBAAsB6D,YAAc,EAAIf,EAAeG,EAASrvJ,GAG3Lpv5B,KAAKo/iC,qBAAsBp/iC,KAAKipiC,UAAU4S,uBAAuBF,wBAA0B37iC,KAAKipiC,UAAU4S,uBAAuBF,wBAAwB0D,YAAc,EAAIf,EAAeG,EAASrvJ,GAInNpv5B,KAAKo6iC,OAAS,IAAIjggC,IAAI,CAClBzrC,SAAU,SAAUuK,GAChB+sL,EAAMs52B,kBAAkBrmiC,EAC5B,EACAsmiC,UAAW,SAAUtmiC,GACjB+sL,EAAMwkJ,OAAOvxU,EACjB,EACA6uC,MAAOA,IAEX9nD,KAAKo6iC,OAAO1htB,SAASp3C,GACjBA,GAAOA,EAAI2yM,mBACX3yM,EAAI2yM,iBAAiB9tf,MAAMsyF,SAAW,UAEZ,SAA1B3wC,EAAM,GAAG4mI,OAAO0/G,MAChBpuS,KAAK64iC,cAAgB,OAEU,SAA1B/w/B,EAAM,GAAG4mI,OAAO0/G,MACrBpuS,KAAK64iC,cAAgB,OAGrB74iC,KAAK64iC,cAAgB,QAElBv3vB,CAIX,EACAykL,EAAUp1d,UAAU2uiC,kBAAoB,SAAUj/iC,GAE9C,IAAI2ogB,EAAa,GAEbw2iB,EAActuhC,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,iBAAiB62T,cAAc,GACrG,GAAIwytB,GACIA,EAAY13/B,MAAM1kD,OAAS,EAC3B,IAAK,IAAI+I,EAAI,EAAGA,EAAIqziC,EAAY13/B,MAAM1kD,OAAQ+I,IAAK,CAC7BqziC,EAAY13/B,MAAMv7B,SAASpgB,EAAE2K,WAAY,KAAK43K,OAAOzuJ,OACnD5/B,EAAEg3b,aAAaztZ,cAC/Bo/d,EAAaw2iB,EAAY13/B,MAAMv7B,SAASpgB,EAAE2K,WAAY,KAAK43K,OAAO0/G,MAE1E,CAKR,GAFApuS,KAAK65iC,qBAAqBx5iC,GAEa,SAAnC2ogB,EAAW3ia,oBAAgC,CAC3CrmG,KAAK64iC,cAAgB,OACrB74iC,KAAKy/iC,8BACL,IAAI5E,EAAe3phC,SAASg8T,eAAe,YAC3CltV,KAAK86iC,sBAAsBD,EAC/B,MACK,GAAuC,SAAnC7xiB,EAAW3ia,oBAAgC,CAChD,IAAIu2X,EAAS1rc,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,qBACjEn2B,KAAKy2iC,qBAAuB75kB,EAAOkG,YACnC9ie,KAAKu9iC,2BACLv9iC,KAAK64iC,cAAgB,OACrB74iC,KAAKy/iC,8BACL,IAAI1E,EAAe7phC,SAASg8T,eAAe,aAC3CltV,KAAK86iC,sBAAsBC,GAC3B,IAAI2E,EAAUxuhC,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,sBAC7Dn2B,KAAKkpiC,cAAcgR,gBAAmD,KAAjCl6iC,KAAK03iC,yBAAoD,KAAlBgI,EAAQ99iC,OAAiB5B,KAAKkpiC,cAAc4Q,qBAGpH95iC,KAAKkpiC,cAAcgR,gBAAiD,KAA/Bl6iC,KAAK23iC,uBAAkD,KAAlB+H,EAAQ99iC,QAAiB5B,KAAKkpiC,cAAc4Q,sBAC3H95iC,KAAK4+iC,sBAHL5+iC,KAAK4+iC,qBAKb,MACK,GAAuC,WAAnC51iB,EAAW3ia,oBAAkC,CAC9Cu2X,EAAS1rc,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,qBACjEn2B,KAAKy2iC,qBAAuB75kB,EAAOkG,YACnC9ie,KAAK64iC,cAAgB,QACrB74iC,KAAKy/iC,8BACL,IAAIzE,EAAgB9phC,SAASg8T,eAAe,aAC5CltV,KAAK86iC,sBAAsBE,GAC3B,IAAI2E,EAAazuhC,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,uBAC9B,KAAnCn2B,KAAKg4iC,2BAAqCh4iC,KAAKkpiC,cAAcgR,gBAAmBl6iC,KAAKo4iC,mBAAsBp4iC,KAAKkpiC,cAAc4Q,uBAC9H95iC,KAAKi5iC,oBAAmB,GACxB0G,EAAWx5iC,MAAMohQ,WAAa,SAC9BvnQ,KAAK02iC,aAAe12iC,KAAKg4iC,2BAEQ,KAAjCh4iC,KAAKi4iC,0BAAkCj4iC,KAAKkpiC,cAAcgR,gBAAmBl6iC,KAAKo4iC,mBAAsBp4iC,KAAKkpiC,cAAc4Q,uBAC3H95iC,KAAKi5iC,oBAAmB,GACxB0G,EAAWx5iC,MAAMohQ,WAAa,SAC9BvnQ,KAAK02iC,aAAe12iC,KAAKi4iC,wBAEjC,CACIj4iC,KAAKipiC,UAAU9zhC,QAAQg7P,YAvDR,KAwDfnwQ,KAAK26iC,mBACT36iC,KAAK4/iC,sBACkC,WAAnC52iB,EAAW3ia,qBAAoCrmG,KAAKw2iC,uBACpDx2iC,KAAK6/iC,sBAEb,EACA95kB,EAAUp1d,UAAU8uiC,4BAA8B,WAC1Cz/iC,KAAKkpiC,cAAc4Q,sBAA+C,SAAvB95iC,KAAK64iC,cACtB,KAAtB74iC,KAAK02iC,aACL12iC,KAAKi5iC,oBAAmB,GAGxBj5iC,KAAKi5iC,oBAAmB,GAIL,KAAnBj5iC,KAAKw5wB,UACLx5wB,KAAKi5iC,oBAAmB,GAGxBj5iC,KAAKi5iC,oBAAmB,EAGpC,EACAlzkB,EAAUp1d,UAAUyuiC,qBAAuB,SAAUC,EAAaf,EAAeG,EAASrvJ,GACtF,IAAItn2B,EAAQ,GAmBZ,OAlBIu3/B,EAAcrM,IAAYrzrB,MAC1B73T,EAAM17C,KAAK,CACPsiL,OAAQ,CAAE,KAAQ1uL,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,uBAAwB,MAAS,QACxFhxV,QAASupiC,IAGbe,EAAcrM,IAAYr2gC,MAC1BmrB,EAAM17C,KAAK,CACPsiL,OAAQ,CAAE,KAAQ1uL,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,kBAAmB,MAAS,QACnFhxV,QAAS0piC,IAGbY,EAAcrM,IAAY96qB,QAC1BpwU,EAAM17C,KAAK,CACPsiL,OAAQ,CAAE,KAAQ1uL,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,oBAAqB,MAAS,UACrFhxV,QAASq64B,IAGVtn2B,CACX,EAKAi+a,EAAUp1d,UAAUmviC,2BAA6B,WAE7C,IAAIC,EAAYj/iC,GAAc,QAAS,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,eAAgBszT,MAAO,CAAE,KAAQ,UAC1Gs2tB,EAAU/qhC,aAAa,SAAU,mBACjC+qhC,EAAU55iC,MAAM+jF,SAAW,WAC3B619B,EAAU55iC,MAAMw9H,KAAO,MACvBo86B,EAAU55iC,MAAM+nJ,IAAM,MACtB6x5B,EAAU55iC,MAAMohQ,WAAa,SAC7Br2O,SAASzd,KAAKie,YAAYquhC,GAC1BA,EAAUzkhC,iBAAiB,SAAUt7B,KAAK84iC,cAC9C,EACA/ykB,EAAUp1d,UAAUsuiC,qBAAuB,WAEvC,IAAIc,EAAY7uhC,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,gBAChE4phC,GACAA,EAAU/8xB,OAElB,EACA+iN,EAAUp1d,UAAUiuiC,oBAAsB,WAMtC,IALA,IAEID,EAAUzthC,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,oBAE9D6phC,EAAU9uhC,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,sBACzDhqB,EAAI,EAAGA,EAAInM,KAAKi3iC,cAAc7ziC,OAAQ+I,IAC3CnM,KAAKg3iC,SAASzqhC,SAASpgB,EAAE2K,WAAY,KAAKoyB,UAAY82gC,EAAQp+iC,MAC9D5B,KAAKg3iC,SAASzqhC,SAASpgB,EAAE2K,WAAY,KAAK3Q,MAAMq8c,WAAaxid,KAAKi3iC,cAAc1qhC,SAASpgB,EAAE2K,WAAY,KAAKi4hC,UACtF,KAAlB/uiC,KAAKiplB,UAAmBjplB,KAAKi3iC,cAAc1qhC,SAASpgB,EAAE2K,WAAY,KAAKi4hC,WAAa/uiC,KAAKiplB,UAGpFl9Q,GAAkB/rU,KAAKiplB,WAAyE,cAA5DjplB,KAAKi3iC,cAAc1qhC,SAASpgB,EAAE2K,WAAY,KAAKi4hC,YAFxF/uiC,KAAKg3iC,SAASzqhC,SAASpgB,EAAE2K,WAAY,KAAK3Q,MAAMo9zB,YAAc,OAKlEo7O,EAAQjthC,YAAY1xB,KAAKg3iC,SAASzqhC,SAASpgB,EAAE2K,WAAY,MAE7D,IAAS3K,EAAI,EAAGA,EAAInM,KAAKi3iC,cAAc7ziC,OAAQ+I,IAAK,CAEhC+kB,SAASg8T,eAAe,kBAAoB/gV,GAClDmvB,iBAAiB,QAASt7B,KAAKigjC,mBAAmBpgjC,KAAKG,MACrE,CACAA,KAAKi5iC,oBAAmB,GACxBj5iC,KAAKo7iC,mBAAkB,GACnBp7iC,KAAKipiC,UAAU9zhC,QAAQg7P,YAvBR,KAwBfnwQ,KAAK26iC,mBACT36iC,KAAK4/iC,qBACT,EACA75kB,EAAUp1d,UAAUsviC,mBAAqB,WACrC,IAAI5xxB,EAAct3P,MAAM1uB,OAEL6oB,SAAS4hU,uBAAuB,kBAAkB,GACxDlkV,UAAW,EACxB,IAAK,IAAIzC,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAExB,IAAI6xiC,EAAc9shC,SAASg8T,eAAe,kBAAoB/gV,GAC1D6xiC,IACAA,EAAY73iC,MAAMo9zB,YAAc,GAExC,CACAl1iB,EAAYloR,MAAMo9zB,YAAc,MAChCvj0B,KAAK02iC,aAAeroxB,EAAYzkP,YAChC,IACI5pC,KAAKiplB,SAAWx4iB,KAAKuL,MAAMqyO,EAAYloR,MAAMq8c,WACjD,CACA,MAAOnid,KACHL,KAAKiplB,SAAW56T,EAAYloR,MAAMq8c,UACtC,CACJ,EAOAujB,EAAUp1d,UAAU8riC,uBAAyB,SAAU93S,EAAQz6qB,GAC3D,IAWI2z9B,EAXAqC,GAAY,EACZC,GAAY,EACZC,GAAY,EACZC,GAAY,EAEZC,EAAiB9Q,IAAgBxviC,KAAK02iC,cAEtC6J,EAAYrvhC,SAASpwB,cAAc,UAEnCma,EAAUsliC,EAAU5jlB,WAAW,MAG/B6jlB,EAAgBxgjC,KAAKkpiC,cAAciT,sBAAsBpH,oBAC7D,GAAsB,yBAAlByL,GACA,GAA8B,IAA1BF,EAAel9iC,OAAc,CAE7B,IAAK,IAAI0d,EAAI,EAAGA,EAAIw/hC,EAAel9iC,OAAQ0d,IAAK,CAE5C,IAAIiO,EAAMuxhC,EAAex/hC,GACzB,IAAkB,IAAdo/hC,EAEAA,EAAYnxhC,EAAO,EAEnBqxhC,EAAYrxhC,EAAO,EAEnBoxhC,EAAYpxhC,EAAO,EAEnBsxhC,EAAYtxhC,EAAO,OAOfmxhC,IAHAjO,EAAUljhC,EAAO,KAIjBmxhC,EAAWjO,GAEXkO,IAJAjO,EAAUnjhC,EAAO,KAKjBoxhC,EAAWjO,GAEXkO,GAAYnO,IACZmO,EAAWnO,GAEXoO,GAAYnO,IACZmO,EAAWnO,EAGvB,CACA,IAAIuO,EAAiBL,EAAWF,EAC5BQ,EAAiBL,EAAWF,EAC5BQ,EAAcF,EAAiB,IAC/BG,EAAcF,EAAiB,IAC/B/86B,EAAO,EACPg1Y,EAAQ,EACRgsP,GACA47S,EAAU/hiC,MAAQ0rE,EAASmmf,aAC3Bkwe,EAAU335B,OAAS1+D,EAASwub,cAC5BioiB,EAAcF,EAAkB97S,EAAOnmvB,MACvCoiiC,EAAcF,EAAkB/7S,EAAO/7mB,OACvCjlB,EAAOghoB,EAAOzqvB,EAAIgwE,EAASkz9B,YAC3BzkiB,EAAQgsP,EAAOxqvB,EAAI+vE,EAASmz9B,aAG5BkD,EAAU/hiC,MAAQ,IAClB+hiC,EAAU335B,OAAS,KAEvB3tI,EAAQgmd,YACR,IAAK,IAAIj/d,EAAI,EAAGA,EAAIs+iC,EAAel9iC,OAAQpB,IAAK,CAE5C,IAEIiwiC,IAFAljhC,EAAMuxhC,EAAet+iC,IAEH,EAAIk+iC,GAAYS,EAAeh96B,EAEjDuu6B,GAAWnjhC,EAAO,EAAIoxhC,GAAYS,EAAejoiB,EAE9B,MAAnB5pf,EAAa,QACb9T,EAAQimd,OAAO+wkB,EAAQC,GAGC,MAAnBnjhC,EAAa,SAClB9T,EAAQyw5B,OAAOumI,EAAQC,EAE/B,CACAj3hC,EAAQs/uB,SACRt/uB,EAAQ2jd,YACRi/kB,EAAc0C,EAAUz9kB,WAC5B,OAGA+6kB,EAAc79iC,KAAK02iC,aAKvB,GAAI/xS,EACA3kwB,KAAKy4iC,gBAAkBoF,MAEtB,CAED,IAAIgD,EAAiB,CAAC,EACtBA,EAAe,QAAU7gjC,KAAKkpiC,cAAc/pT,YAAcn/uB,KAAK02iC,aAC/D12iC,KAAK82iC,iBAAiB1qiC,KAAKy0iC,GAE3B,IAAIl8kB,EAAY,GAChBA,EAAUv4d,KAAK,CAAE+pB,GAAI,QAAUn2B,KAAKkpiC,cAAc/pT,WAAYwJ,UAAWk1T,EAAa2C,cAAeA,EAAeh+lB,WAAYxid,KAAKkpiC,cAAciT,sBAAsB35lB,aACzKxid,KAAK62iC,oBAAoBzqiC,KAAK,CAAEk/a,MAAOq5C,EAAW39B,UAAWhnc,KAAKkpiC,cAAcgR,iBAChFl6iC,KAAKkpiC,cAAc/pT,YACvB,CACJ,EAMAp5Q,EAAUp1d,UAAUmwiC,aAAe,SAAU31/B,GAOzC,OANIA,EAAQnrD,KAAK44iC,aACbzt/B,EAAQnrD,KAAK44iC,aAERzt/B,EAAQ,IACbA,EAAQ,GAELA,CACX,EAKA46a,EAAUp1d,UAAUowiC,qBAAuB,WACvC/gjC,KAAKkpiC,cAAcqT,iBACnB,IACIj+S,EADA6+S,EAAYn9iC,KAAKkpiC,cAAcsB,gBAEnC,GAAIxqiC,KAAKkpiC,cAAc8X,mBAAoB,CACvC,IAAI/E,EAAiBj8iC,KAAKipiC,UAAU9p6B,WAAW+86B,aAC/Cl8iC,KAAKkpiC,cAAciT,sBAAwB,KAC3Cn8iC,KAAKkpiC,cAAckT,kBAAmB,EACtC,IAEIgB,EACAC,EAHAvnoB,EAAY91a,KAAKkpiC,cAAc2C,kBAAoB,EACnDpC,EAAUv4gC,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,YAAc2/Y,GAI5Eu6J,EAAerwkB,KAAKipiC,UAAUsS,6BAA6B/8hC,MAAQxe,KAAKipiC,UAAUsS,6BAA6B/8hC,MAAQ,IAEvHk6f,EAAgB14gB,KAAKipiC,UAAUsS,6BAA6B3y5B,OAAS5oJ,KAAKipiC,UAAUsS,6BAA6B3y5B,OAAS,IAE1HwlzB,EAAYpu8B,KAAKipiC,UAAUsS,6BAA6BntG,UAAYpu8B,KAAKipiC,UAAUsS,6BAA6BntG,UAAY,EAE5H9/zB,EAAUtuI,KAAKipiC,UAAUsS,6BAA6Bjt6B,QAAUtuI,KAAKipiC,UAAUsS,6BAA6Bjt6B,QAAU,EAEtHmvV,EAAcz9d,KAAKipiC,UAAUsS,6BAA6B99kB,YAAcz9d,KAAKipiC,UAAUsS,6BAA6B99kB,YAAc,UACtI2/kB,GAAgB1sgC,WAAW+4/B,EAAQtjiC,MAAMqY,OAAS,EAAM6xjB,EAAe,GAAM8se,EAE7EE,GAAe3sgC,WAAW+4/B,EAAQtjiC,MAAMyiJ,QAAU,EAAM8vX,EAAgB,GAAMykiB,EAI9E,IAHA,IAAIxz1B,EAAY,GACZ621B,OAAgB,EAChBS,OAAsB,EACjBl/+B,EAAa,EAAGA,EAAa/hE,KAAK82iC,iBAAiB1ziC,OAAQ2+D,IAAc,CAE9E,IAAIm/+B,EAAsBlhjC,KAAK82iC,iBAAiB/0+B,GAIhD,IAFIssN,EAAct3P,MAAM1uB,SAELgmR,EAAYl4P,KAAO,QAAU4rC,GAAcssN,GAAeA,EAAYl4P,KAAO,cAAgB4rC,EAAY,CACxH4nJ,EAAYu31B,EAAoB,QAAUn/+B,GAC1C,KACJ,CACJ,CACA,IAAK,IAAIo/+B,EAAiB,EAAGA,EAAiBnhjC,KAAK62iC,oBAAoBzziC,OAAQ+9iC,IAAkB,CAC7F,IAAI9yxB,EAAct3P,MAAM1uB,OACpB+4iC,EAAcphjC,KAAK62iC,oBAAoBtqhC,SAAS40hC,EAAerqiC,WAAY,KAAKw0a,MAAM,GAAGn1Z,GAAGxD,MAAM,KAAK,GAC3G,GAAI07P,GAAeA,EAAYl4P,KAAO,QAAUirhC,GAAe/yxB,GAAeA,EAAYl4P,KAAO,cAAgBirhC,EAAa,CAC1HZ,EAAgBxgjC,KAAK62iC,oBAAoBtqhC,SAAS40hC,EAAerqiC,WAAY,KAAKw0a,MAAM,GAAGk1nB,cAC3FS,EAAsBjhjC,KAAK62iC,oBAAoBtqhC,SAAS40hC,EAAerqiC,WAAY,KAAKw0a,MAAM,GAAGk3B,WACjG,KACJ,CACJ,CACA,GAAsB,yBAAlBg+lB,EAA0C,CAE1C,IAAInE,EAAkBr8iC,KAAKipiC,UAAUsR,iBAAiB+B,2BAA2B3y1B,GAAW,GAE5F0mX,EAAegse,EAAgB79hC,MAAQ69hC,EAAgB79hC,MAAQ6xjB,EAE/D33D,EAAgB2jiB,EAAgBzz5B,OAASyz5B,EAAgBzz5B,OAAS8vX,CACtE,MAEI23D,EAAgC,MAAjBA,EAAuB,IAAMrwkB,KAAKipiC,UAAUsS,6BAA6B/8hC,MAExFk6f,EAAkC,MAAlBA,EAAwB,GAAK14gB,KAAKipiC,UAAUsS,6BAA6B3y5B,OAE7F01mB,EAAQ,CAEJnouB,GAAI,OAASn2B,KAAKkpiC,cAAcqT,eAAgB53S,OAAQ,CAAEzqvB,EAAGkjiC,EAAajjiC,EAAGkjiC,EAAY7+hC,MAAO6xjB,EAAcznb,OAAQ8vX,GAAiB5iG,UAAWA,EAAW5rY,KAAMy/K,EAEnKor1B,oBAAqByL,EAAely6B,QAASA,EAASk0U,WAAYy+lB,EAAqBxjlB,YAAaA,EAAa2we,UAAWA,EAAWouG,cAAeP,GAE1Jj8iC,KAAKkpiC,cAAciT,sBAAwB79S,EAC3Ct+vB,KAAKkpiC,cAAc8X,oBAAqB,CAC5C,MAEIhhjC,KAAKipiC,UAAUsR,iBAAiBuC,eAExC,EAKA/2kB,EAAUp1d,UAAUgqiC,iBAAmB,WAEnC,IAAI/9kB,EAAS1rc,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,qBACjEn2B,KAAKqhjC,gBAAgBzklB,GACrB,IAAIiilB,EAAe3thC,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,2BACvEn2B,KAAKqhjC,gBAAgBxC,GACrB,IAAIyC,EAAiBpwhC,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,oBACzEn2B,KAAKqhjC,gBAAgBC,EACzB,EACAv7kB,EAAUp1d,UAAU0wiC,gBAAkB,SAAUzklB,GAC5C,IAAI5lW,EAAU,EAIVv5F,EAAOvM,SAAS0I,cAAc,kBAClC,GAAI6D,EAAM,CACN,IAAIt3B,EAAQqsR,iBAAiB/0P,GAC7Bu5F,EAAUA,EAAUzqG,SAASpmB,EAAMm8R,YAAa,IAAM/1Q,SAASpmB,EAAMi8R,aAAc,GACvF,CACA,GAAIw6L,GAAU58d,KAAKm6iC,iBAAmBn6iC,KAAKm6iC,gBAAgBtqwB,QAAS,CAChE,IAAI0xwB,EAAY3klB,EAAOD,WAAW,MAC9B6klB,EAAgB5klB,EAAOkG,YACvB9ie,KAAKipiC,UAAU9zhC,QAAQg7P,YAXZ,KAYXysN,EAAOp+c,MAXG,IAYVo+c,EAAOz2d,MAAMqY,MAAQijiC,UAGrB7klB,EAAOp+c,MAAQxe,KAAKipiC,UAAU9zhC,QAAQg7P,YAAcn5I,EACpD4lW,EAAOz2d,MAAMqY,MAAQo+c,EAAOp+c,MAAQ,MAExC,IAAIkjiC,EAAU,IAAI5ilB,MAClB4ilB,EAAQh94B,IAAM884B,EACdE,EAAQ/h4B,OAAS,WACb4h4B,EAAUvilB,UAAU0ilB,EAAS,EAAG,EAAG9klB,EAAOp+c,MAAOo+c,EAAOh0U,OAC5D,CACJ,CACA,IAAI+45B,EAAezwhC,SAAS4hU,uBAAuB,kBACnD,GAAI8pI,GAAU+klB,GAAgBA,EAAav+iC,OAAS,EAChD,IAAK,IAAI+I,EAAI,EAAGA,EAAIw1iC,EAAav+iC,OAAQ+I,IAAK,CAC5Bw1iC,EAAap1hC,SAASpgB,EAAE2K,WAAY,KAC1C3Q,MAAMqY,MAAUo+c,EAAOp+c,MAAQ,EA3BlC,GA2BiD,IAC1D,CAER,EACAund,EAAUp1d,UAAUiviC,oBAAsB,WACtC,IAAI552B,EAAQhmM,KACRsrb,EAAQ,IAAIwzC,MAChBxzC,EAAM3rQ,OAAS,WACX,IAAIi9S,EAAS1rc,SAASg8T,eAAelnJ,EAAMij2B,UAAU9zhC,QAAQghB,GAAK,qBAC9Dymc,GACcA,EAAOD,WAAW,MACxBqC,UAAU1zC,EAAO,EAAG,EAEpC,EACAA,EAAM5mR,IAAM1kK,KAAKy2iC,oBACrB,EACA1wkB,EAAUp1d,UAAUkviC,qBAAuB,WACvC,IAAI752B,EAAQhmM,KACRsrb,EAAQ,IAAIwzC,MAChBxzC,EAAM3rQ,OAAS,WACX,IAAIi9S,EAAS1rc,SAASg8T,eAAelnJ,EAAMij2B,UAAU9zhC,QAAQghB,GAAK,2BAClE,GAAIymc,EAAQ,CACR,IAAI3hd,EAAU2hd,EAAOD,WAAW,MACfzrc,SAASg8T,eAAelnJ,EAAMij2B,UAAU9zhC,QAAQghB,GAAK,uBAC3DhwB,MAAMohQ,WAAa,SAC9BtsP,EAAQ+jd,UAAU1zC,EAAO,EAAG,EAAGsxC,EAAOp+c,MAAOo+c,EAAOh0U,QACpDo9C,EAAMiz2B,oBAAmB,GACzBjz2B,EAAMkz2B,qBAAuB5tnB,EAAM6tnB,cACnCnz2B,EAAMoz2B,oBAAsB9tnB,EAAM+tnB,YACtC,CACJ,EACA/tnB,EAAM5mR,IAAM1kK,KAAKw2iC,qBACrB,EACAzwkB,EAAUp1d,UAAU+oiC,wBAA0B,SAAUr5iC,GACrC,gBAAXA,EAAEuM,OACFvM,EAAEgO,iBACFrO,KAAK4hjC,kBAAkBvhjC,GACvBL,KAAK6hjC,gBAAiB,EACtB7hjC,KAAK8hjC,KAAO9hjC,KAAK+hjC,OACjB/hjC,KAAKgijC,KAAOhijC,KAAKiijC,OACjBjijC,KAAKw/B,UAAY,GACjBx/B,KAAKkijC,kBAAkB7hjC,GACvBL,KAAKs2iC,aAAc,EAE3B,EACAvwkB,EAAUp1d,UAAUsoiC,mBAAqB,SAAU75pB,GAE/C,IAAI+iqB,EAAYjxhC,SAAS4hU,uBAAuB,kBAAkB,GAC9DqvtB,IACAA,EAAUvziC,SAAWwwY,GAEzBp/Y,KAAKo7iC,kBAAkBh8pB,EAC3B,EACA2mF,EAAUp1d,UAAUyqiC,kBAAoB,SAAUh8pB,GAE9C,IAAIgjqB,EAAWlxhC,SAAS4hU,uBAAuB,iBAAiB,GAC5DsvtB,IACAA,EAASxziC,SAAWwwY,EAE5B,EACA2mF,EAAUp1d,UAAUgpiC,wBAA0B,SAAUt5iC,GAChDL,KAAK6hjC,gBAAyC,SAAvB7hjC,KAAK64iC,gBAC5B74iC,KAAK4hjC,kBAAkBvhjC,GACvBL,KAAKi5iC,oBAAmB,GACxBj5iC,KAAKkijC,kBAAkB7hjC,GAE/B,EACA0le,EAAUp1d,UAAUixiC,kBAAoB,SAAU7qhC,GAG9C,IAAqC,IAAjCA,EAAMnqB,KAAKjC,QAAQ,SAAiB,CAEpC,IAEI03iC,EAFUtrhC,EAAM1uB,OAEMosR,wBAC1Bz0R,KAAK+hjC,OAAShrhC,EAAMwyH,eAAe,GAAGlwH,QAAUgphC,EAAY1+6B,KAC5D3jI,KAAKiijC,OAASlrhC,EAAMwyH,eAAe,GAAGjwH,QAAU+ohC,EAAYn05B,GAChE,MAGIluJ,KAAK+hjC,OAAShrhC,EAAMw7T,QACpBvyV,KAAKiijC,OAASlrhC,EAAMy7T,OAE5B,EACAuzI,EAAUp1d,UAAUuxiC,kBAAoB,SAAUnrhC,GAC1C/2B,KAAK6hjC,iBACL7hjC,KAAKsijC,wBACLtijC,KAAK8hjC,KAAO9hjC,KAAK+hjC,OACjB/hjC,KAAKgijC,KAAOhijC,KAAKiijC,OAEzB,EACAl8kB,EAAUp1d,UAAU2xiC,sBAAwB,WAExC,IAEIrniC,EAFSiW,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,qBAE5Cwmc,WAAW,MAChC1hd,EAAQgmd,YACRhmd,EAAQimd,OAAOlhe,KAAK8hjC,KAAM9hjC,KAAKgijC,MAC/B/miC,EAAQyw5B,OAAO1r6B,KAAK+hjC,OAAQ/hjC,KAAKiijC,QACjChniC,EAAQs/uB,SACRt/uB,EAAQg9vB,UAAY,EACpBh9vB,EAAQkmd,IAAInhe,KAAK8hjC,KAAM9hjC,KAAKgijC,KAAM,EAAO,EAAa,EAAVp+iC,KAAKita,IAAQ,GACzD51Z,EAAQ2jd,YACR5+d,KAAKw/B,UAAUpzB,KAAKpM,KAAK+hjC,OAAQ/hjC,KAAKiijC,OAC1C,EACAl8kB,EAAUp1d,UAAUipiC,sBAAwB,WACpC55iC,KAAK6hjC,gBACL7hjC,KAAKuijC,cAAcvijC,KAAKw/B,WAE5Bx/B,KAAK6hjC,gBAAiB,EACJ,YAAd9qhC,MAAMnqB,OACN5M,KAAKu2iC,eAAgB,EAE7B,EACAxwkB,EAAUp1d,UAAU6tiC,yBAA2B,WACvCx+iC,KAAK6hjC,gBACL7hjC,KAAKuijC,cAAcvijC,KAAKw/B,WAE5Bx/B,KAAK6hjC,gBAAiB,EACtB7hjC,KAAKs2iC,aAAc,CACvB,EAGAvwkB,EAAUp1d,UAAU4xiC,cAAgB,SAAU/ihC,GAC1Cx/B,KAAKwijC,SAAShjhC,EAAU,GAAIA,EAAU,IACtCx/B,KAAKyijC,SAASjjhC,EAAU,GAAIA,EAAU,IACtC,IAAK,IAAIx9B,EAAI,EAAGA,EAAIw9B,EAAUp8B,OAAQpB,GAAQ,EAC1ChC,KAAKyijC,SAASjjhC,EAAUjT,SAASvqB,EAAE8U,WAAY,KAAM0oB,EAAUx9B,EAAI,GAE3E,EACA+je,EAAUp1d,UAAU8xiC,SAAW,SAAUvoiC,EAAGC,GACxCna,KAAK02iC,cAAgB,IAAMx8hC,EAAI,IAAMC,EAAI,GAC7C,EACA4rd,EAAUp1d,UAAU6xiC,SAAW,SAAUtoiC,EAAGC,GACxCna,KAAK02iC,cAAgB,IAAMx8hC,EAAI,IAAMC,EAAI,GAC7C,EAKA4rd,EAAUp1d,UAAUkpiC,qBAAuB,SAAUjtiC,GACjD,IAAI81iC,GAAgB,EAChBnsJ,EAAa,IACb3p5B,GAASm/T,GAAkBn/T,EAAKsv3B,gBAAmBnwjB,GAAkBn/T,EAAKszb,gBAoB1Elgc,KAAK02iC,aAAe,GACpB12iC,KAAKw/B,UAAY,KApBjBkjhC,GAAgB,EACW,IAAvB91iC,EAAKsv3B,eACLl83B,KAAK22iC,iBAAmB32iC,KAAK02iC,aAC7BngJ,EAAav25B,KAAKw/B,WAEU,IAAvB5yB,EAAKsv3B,gBACVl83B,KAAK42iC,kBAAoB52iC,KAAK02iC,cAElC12iC,KAAK02iC,aAAe,GACpB12iC,KAAKw/B,UAAY,GACU,IAAvB5yB,EAAKszb,eACLlgc,KAAK02iC,aAAe12iC,KAAK22iC,iBACzB32iC,KAAKw/B,UAAY+23B,GAEW,IAAvB3p5B,EAAKszb,gBACVlgc,KAAK02iC,aAAe12iC,KAAK42iC,oBAOjC,IAAI+L,GAAiB,EACjBC,GAAiB,EACjBC,GAAkB,EACtB,GAAIj2iC,GAAQA,EAAKuuB,eAAiBvuB,EAAKuuB,cAAc+sP,UAAUh1P,SAAS,iBAEpE,GADAwvhC,GAAgB,EACW,SAAvB1ijC,KAAK64iC,cAA0B,CAC/B8J,GAAiB,EACjB,IAAI5zc,EAAW79kB,SAASg8T,eAAe,YACnC0rK,EAAkB1ne,SAASg8T,eAAe,YAC1C6hR,GAAYn2G,EAAgBvlO,qBAC5BulO,EAAgBvlO,mBAAmBnL,UAAU/0P,OAAO,WACpD47kB,EAASjjjB,SAAU,EAE3B,MACK,GAA2B,SAAvB9rD,KAAK64iC,cAA0B,CACpC+J,GAAiB,EACb7zc,EAAW79kB,SAASg8T,eAAe,aACnC0rK,EAAkB1ne,SAASg8T,eAAe,aAC1C6hR,GAAYn2G,EAAgBvlO,qBAC5BulO,EAAgBvlO,mBAAmBnL,UAAU/0P,OAAO,WACpD47kB,EAASjjjB,SAAU,EACnB9rD,KAAKw5wB,UAAY,GAEzB,KACK,CACDqpS,GAAkB,EAClB7ijC,KAAKo4iC,mBAAoB,EACrBrpc,EAAW79kB,SAASg8T,eAAe,aACnC0rK,EAAkB1ne,SAASg8T,eAAe,aAC1C6hR,GAAYn2G,EAAgBvlO,qBAC5BulO,EAAgBvlO,mBAAmBnL,UAAU/0P,OAAO,WACpD47kB,EAASjjjB,SAAU,EAE3B,CAGJ,IAAI8wa,EAAS1rc,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,sBAE5Dymc,GAAU8llB,GAAmBC,IAEhB/llB,EAAOD,WAAW,MACxBoC,UAAU,EAAG,EAAGnC,EAAOp+c,MAAOo+c,EAAOh0U,QAGjD,IAAIk65B,EAAc5xhC,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,2BACtE,GAAI2shC,GAAeJ,GAAkBG,EAAkB,CAErCC,EAAYnmlB,WAAW,MAC7BoC,UAAU,EAAG,EAAG+jlB,EAAYtkiC,MAAOskiC,EAAYl65B,QAEvD,IAAI+25B,EAAazuhC,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,uBACjEwphC,IACAA,EAAWx5iC,MAAMohQ,WAAa,GAEtC,CAEA,IAAIw7yB,EAAU7xhC,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,oBAE9DuphC,EAAUxuhC,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,uBAC7D4shC,GAAWrD,GAAWgD,GAAmBE,KAC1ClD,EAAQ99iC,MAAQ,GACXkrU,OACDi2uB,EAAQ75gC,UAAY,KAG5BlpC,KAAKi5iC,oBAAmB,EAC5B,EAKAlzkB,EAAUp1d,UAAU8piC,oBAAsB,WAClCz6iC,KAAKkpiC,cAAc/tgC,gBACnBn7B,KAAKkpiC,cAAcoR,uBAAwB,GAE/Ct6iC,KAAK65iC,uBACA/suB,MACD9sU,KAAKm6iC,gBAAgB58wB,OAEzBv9R,KAAKkpiC,cAAc4Q,sBAAuB,EAC1C95iC,KAAKkpiC,cAAcoR,uBAAwB,EAC3Ct6iC,KAAK22iC,iBAAmB,GACxB32iC,KAAK42iC,kBAAoB,EAC7B,EAKA7wkB,EAAUp1d,UAAUqyiC,cAAgB,WAEhC,IAAIC,EAAc,KAEdA,EADAjjjC,KAAKkpiC,cAAcga,gBACLljjC,KAAKkpiC,cAAcia,kBAAkBnjjC,KAAKkpiC,cAAcka,WAAa,qBAGrEpyhC,OAAOor0B,eAAe3woB,QAAQzrN,KAAKkpiC,cAAcka,WAAa,qBAIhF,IADA,IAAIhu2B,EAAc,IAAI1kM,MACbV,EAAI,EAAGA,EAAIhQ,KAAKkpiC,cAAc93b,UAAWphmB,IAC9ColM,EAAY7oL,SAASvc,EAAE8G,WAAY,KAAO,GAE9C,GAAImsiC,EAEA,IADA,IAAIztQ,EAAuB/kwB,KAAKuL,MAAMingC,GAC7B92iC,EAAI,EAAGA,EAAIqpyB,EAAqBpyyB,OAAQ+I,IAAK,CAClD,IAAIwwqB,EAAW,GACX0mY,EAAuB7tQ,EAAqBjpxB,SAASpgB,EAAE2K,WAAY,KACvE,GAAIusiC,EAAsB,CACtB,IAAK,IAAI3hiC,EAAI,EAAG2hiC,EAAqBju2B,YAAYhyM,OAASse,EAAGA,IAAK,CAC9D,GAAI1hB,KAAKipiC,UAAUqa,oBAAqB,CAEpC,IAAIC,EAAoBvjjC,KAAKipiC,UAAUsS,6BACnCiI,EAAqBxjjC,KAAKipiC,UAAUua,mBACpCC,EAAiD,UAA7BF,EAAkBzjU,OAAsByjU,EAAkBzjU,OAAS0jU,EAAmB1jU,OAAS0jU,EAAmB1jU,OAAS,QAEnJujU,EAAqBju2B,YAAY7oL,SAAS7K,EAAE5K,WAAY,KAAKgpuB,OAAS2jU,CAC1E,CAEA,IAAIC,EAAoBL,EAAqBju2B,YAAY7oL,SAAS7K,EAAE5K,WAAY,KAAK2md,YAAc4llB,EAAqBju2B,YAAY7oL,SAAS7K,EAAE5K,WAAY,KAAK2md,YAAc,QAI9K,GAHA4llB,EAAqBju2B,YAAY7oL,SAAS7K,EAAE5K,WAAY,KAAK2md,YAAchtb,KAAK+mF,UAAUx3H,KAAK2jjC,WAAWD,IAE1GL,EAAqBju2B,YAAY7oL,SAAS7K,EAAE5K,WAAY,KAAK6tvB,OAASl0tB,KAAK+mF,UAAUx3H,KAAKipiC,UAAU9p6B,WAAWyk7B,UAAUP,EAAqBju2B,YAAY7oL,SAAS7K,EAAE5K,WAAY,KAAK6tvB,OAAQ0+S,EAAqBvtoB,YAC1H,yBAArFutoB,EAAqBju2B,YAAY7oL,SAAS7K,EAAE5K,WAAY,KAAKi+hC,qBAAiI,QAA/EsO,EAAqBju2B,YAAY7oL,SAAS7K,EAAE5K,WAAY,KAAK0liC,cAAyB,CAErM,IAEIqH,EAASjT,IAFQpB,IAAgB6T,EAAqBju2B,YAAY7oL,SAAS7K,EAAE5K,WAAY,KAAKozB,OAGlGm5gC,EAAqBju2B,YAAY7oL,SAAS7K,EAAE5K,WAAY,KAAKozB,KAAOuG,KAAK+mF,UAAUqs7B,EACvF,MAEI,GAAyF,kBAArFR,EAAqBju2B,YAAY7oL,SAAS7K,EAAE5K,WAAY,KAAKi+hC,qBAA4C/0iC,KAAK8jjC,iBAAiBT,EAAqBju2B,YAAY7oL,SAAS7K,EAAE5K,WAAY,KAAK0rc,YAgB5L6gmB,EAAqBju2B,YAAY7oL,SAAS7K,EAAE5K,WAAY,KAAKozB,KAAOuG,KAAK+mF,UAAU6r7B,EAAqBju2B,YAAY7oL,SAAS7K,EAAE5K,WAAY,KAAKozB,UAhByD,CACzM,IAAI65gC,EAAiBjjjC,GAAc,UAC/B6jwB,EAASl0tB,KAAKuL,MAAMqngC,EAAqBju2B,YAAY7oL,SAAS7K,EAAE5K,WAAY,KAAK6tvB,QACrFo/S,EAAevliC,MAASmmvB,GAAUA,EAAOnmvB,OAAU,IACnDuliC,EAAen75B,OAAU+7mB,GAAUA,EAAO/7mB,QAAmF,EAAxEy65B,EAAqBju2B,YAAY7oL,SAAS7K,EAAE5K,WAAY,KAAKmoS,SAElH,IAAIy9K,EAAgBqnlB,EAAepnlB,WAAW,MAC1Czid,EAAI6piC,EAAevliC,MAAQ,EAC3BrE,EAAK4piC,EAAen75B,OAAS,EAAKy65B,EAAqBju2B,YAAY7oL,SAAS7K,EAAE5K,WAAY,KAAKmoS,SAAW,EAAI,GAClHy9K,EAAc8H,UAAY,SAC1B9H,EAAc6H,KAAO8+kB,EAAqBju2B,YAAY7oL,SAAS7K,EAAE5K,WAAY,KAAKmoS,SAAW,MAAQokwB,EAAqBju2B,YAAY7oL,SAAS7K,EAAE5K,WAAY,KAAK0rc,WAClKka,EAAcgI,SAAS2+kB,EAAqBju2B,YAAY7oL,SAAS7K,EAAE5K,WAAY,KAAKozB,KAAMhwB,EAAGC,GAC7FkpiC,EAAqBju2B,YAAY7oL,SAAS7K,EAAE5K,WAAY,KAAKozB,KAAOuG,KAAK+mF,UAAUus7B,EAAejhlB,UAAU,cAC5GuglB,EAAqBju2B,YAAY7oL,SAAS7K,EAAE5K,WAAY,KAAKi+hC,oBAAsB,gBACvF,CAKR,CACAp4X,EAAW0mY,EAAqBju2B,WACpC,CACAA,EAAYiu2B,EAAqBvtoB,WAAa6mQ,CAClD,CAEJ,OAAOlsoB,KAAK+mF,UAAU49E,EAC1B,EACA2wR,EAAUp1d,UAAUmziC,iBAAmB,SAAU76d,GAG7C,MAAiB,cAAbA,GAAyC,oBAAbA,GAA+C,YAAbA,GAAuC,WAAbA,CAIhG,EAMAljH,EAAUp1d,UAAUgziC,WAAa,SAAUK,GAElCA,EAAY7siC,MAAM,mBAAsB6siC,EAAY7siC,MAAM,gEAC3D6siC,EAAchkjC,KAAKipiC,UAAUgb,iBAAiBC,WAAWF,IAE7D,IAAIG,EAAcH,EAAYrxhC,MAAM,KAapC,OAZIo5S,GAAkBo4uB,EAAY,MAE9BA,GADAH,EAAchkjC,KAAKipiC,UAAUgb,iBAAiBppiC,SAASmpiC,EAAa,SAC1CrxhC,MAAM,MAU7B,CAAE2wF,EAPD/2F,SAAS43hC,EAAY,GAAGxxhC,MAAM,KAAK,IAO5B4wF,EALPh3F,SAAS43hC,EAAY,IAKRjuiC,EAHbqW,SAAS43hC,EAAY,IAGFluiC,EADnBsW,SAAS43hC,EAAY,IAEjC,EAOAp+kB,EAAUp1d,UAAUyziC,gBAAkB,SAAUzg7B,EAAMuqB,GAClD,IAAIowmB,EAEA+lT,EAAoBrkjC,KAAKkpiC,cAAciT,sBACvCF,EAAiBj8iC,KAAKipiC,UAAU9p6B,WAAW+86B,aAC/C,GAAImI,EAAmB,CACkD,yBAAjErkjC,KAAKkpiC,cAAciT,sBAAsBpH,sBACzCz2S,EAAQ,CAEJnouB,GAAIkuhC,EAAkBluhC,GAAIwuuB,OAAQ,CAAEzqvB,EAAGypH,EAAMxpH,EAAG+zI,EAAK1vI,MAAO6liC,EAAkB1/S,OAAOnmvB,MAAOoqI,OAAQy75B,EAAkB1/S,OAAO/7mB,QAAUktR,UAAWuuoB,EAAkBvuoB,UAAW5rY,KAAMm6gC,EAAkBn6gC,KACvM6qgC,oBAAqB,uBAAwBzm6B,QAAS+16B,EAAkB/16B,QAASk0U,WAAY6hmB,EAAkB7hmB,WAAYvjK,SAAUolwB,EAAkBplwB,SAAUw+K,YAAa4mlB,EAAkB5mlB,YAAa2we,UAAWi2G,EAAkBj2G,UAAWouG,cAAeP,IAGvM,kBAAjEj8iC,KAAKkpiC,cAAciT,sBAAsBpH,oBACzCz2S,EAAQ,CAEJnouB,GAAIkuhC,EAAkBluhC,GAAIwuuB,OAAQ,CAAEzqvB,EAAGypH,EAAMxpH,EAAG+zI,EAAK1vI,MAAO6liC,EAAkB1/S,OAAOnmvB,MAAOoqI,OAAQy75B,EAAkB1/S,OAAO/7mB,QAAUktR,UAAWuuoB,EAAkBvuoB,UAAW5rY,KAAMm6gC,EAAkBn6gC,KACvM6qgC,oBAAqB,gBAAiBzm6B,QAAS+16B,EAAkB/16B,QAASk0U,WAAY6hmB,EAAkB7hmB,WAAYvjK,SAAUolwB,EAAkBplwB,SAAUw+K,YAAa4mlB,EAAkB5mlB,YAAa2we,UAAWi2G,EAAkBj2G,UAAWouG,cAAeP,GAG3L,mBAAjEj8iC,KAAKkpiC,cAAciT,sBAAsBpH,sBAC9Cz2S,EAAQ,CAEJnouB,GAAIkuhC,EAAkBluhC,GAAIwuuB,OAAQ,CAAEzqvB,EAAGypH,EAAMxpH,EAAG+zI,EAAK1vI,MAAO6liC,EAAkB1/S,OAAOnmvB,MAAOoqI,OAAQy75B,EAAkB1/S,OAAO/7mB,QAAUktR,UAAWuuoB,EAAkBvuoB,UAAW5rY,KAAMm6gC,EAAkBn6gC,KACvM6qgC,oBAAqB,iBAAkBzm6B,QAAS+16B,EAAkB/16B,QAASk0U,WAAY6hmB,EAAkB7hmB,WAAYvjK,SAAUolwB,EAAkBplwB,SAAUw+K,YAAa4mlB,EAAkB5mlB,YAAa2we,UAAWi2G,EAAkBj2G,UAAWouG,cAAeP,IAGtQj8iC,KAAKipiC,UAAU71gC,IAAIkruB,GAEnB,IAAIgmT,EAAUpzhC,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,qBAAuBkuhC,EAAkBvuoB,WAE3G91a,KAAKipiC,UAAUsb,cAAcD,EAASD,EAAkBvuoB,WACxD91a,KAAKkpiC,cAAcsb,gBAAiB,EAEpCxkjC,KAAKykjC,mBAAmBJ,EAAkBvuoB,UAAWwoV,GACrDt+vB,KAAKipiC,UAAUyb,iBAAiBL,EAAkBvuoB,UAAWuuoB,EAAkB7H,cAAe6H,EAAkBtP,oBAAqBsP,EAAkB1/S,OAAQ0/S,EAAkB/16B,QAAS+16B,EAAkB5mlB,YAAa4mlB,EAAkBj2G,WAC3Opu8B,KAAKkpiC,cAAciT,sBAAwB,KAC3Cn8iC,KAAKkpiC,cAAcqT,gBACvB,CACJ,EAQAx2kB,EAAUp1d,UAAUg0iC,wBAA0B,SAAUnvQ,EAAsB1/X,EAAW8uoB,GACrF,IAAItmT,EACAumT,GAAoB,EACxB,IAAKD,EACD,IAAK,IAAIliiC,EAAI,EAAGA,EAAI1iB,KAAK+2iC,oBAAoB3ziC,OAAQsf,IACjD,GAAI1iB,KAAK+2iC,oBAAoBxqhC,SAAS7J,EAAE5L,WAAY,OAASg/Z,EAAW,CACpE+uoB,GAAoB,EACpB,KACJ,CAGR,GAAIrvQ,IAAyBqvQ,EAAmB,CACxCrvQ,EAAqBpyyB,OAAS,IAAsD,IAAjDpD,KAAK+2iC,oBAAoBpsiC,QAAQmra,IACpE91a,KAAK+2iC,oBAAoB3qiC,KAAK0pa,GAElC,IAAK,IAAI9za,EAAI,EAAGA,EAAIwzyB,EAAqBpyyB,OAAQpB,IAAK,CAElD,IAAIqijC,EAAoB7uQ,EAAqBxzyB,GAC7C,GAAIqijC,EAAmB,CAEnB,IAAIn6gC,EAAOm6gC,EAAkBS,SACzBF,IAEI16gC,EADAm6gC,EAAkBU,YACXV,EAAkBS,SAEiB,mBAArCT,EAAkBW,gBAA4E,kBAArCX,EAAkBW,eACzEv0gC,KAAKuL,MAAMvL,KAAK+mF,UAAU6s7B,EAAkBS,WAG/C56gC,EAAKsgB,SAAS,WACPqm/B,IAAcpggC,KAAKuL,MAAMqogC,EAAkBS,WAG3CT,EAAkBS,UAIrC9kjC,KAAK02iC,aAAexsgC,EACpBlqC,KAAK02iC,aAAe,GACpB,IAEI/xS,EAAS0/S,EAAkB3V,OAC3B0O,EAAerxuB,GAAkB44b,EAAOvjvB,GAAiCujvB,EAAOzqvB,EAAK+qiC,EAAxCtgT,EAAOvjvB,EAAK6jiC,EACzD5H,EAActxuB,GAAkB44b,EAAO9lvB,GAAiC8lvB,EAAOxqvB,EAAK8qiC,EAAxCtgT,EAAO9lvB,EAAKomiC,EACxD50e,EAAes0L,EAAOtjC,MAAQsjC,EAAOtjC,MAAQ,EAAuBsjC,EAAOnmvB,MAAQ,EACnFk6f,EAAgBisP,EAAOrjC,OAASqjC,EAAOrjC,OAAS,EAAuBqjC,EAAO/7mB,OAAS,EAEvF01mB,EADqC,kBAArC+lT,EAAkBW,eACV,CACJ7uhC,GAAI,OAASn2B,KAAKkpiC,cAAcqT,eAAgB53S,OAAQ,CAAEzqvB,EAAGkjiC,EAAajjiC,EAAGkjiC,EAAY7+hC,MAAO6xjB,EAAcznb,OAAQ8vX,GAAiB5iG,UAAWA,EAAW5rY,KAAMA,EAAMs4a,WAAY6hmB,EAAkBh4iB,WAAYptN,SAAUolwB,EAAkB/3iB,SAC/OyoiB,oBAAqB,gBAAiBzm6B,QAAS+16B,EAAkB79J,QAAS/ob,YAAa4mlB,EAAkB38J,YAAa0mD,UAAWi2G,EAAkBa,UAAW1I,cAAe6H,EAAkBc,eAGzJ,mBAArCd,EAAkBW,eACf,CACJ7uhC,GAAI,OAASn2B,KAAKkpiC,cAAcqT,eAAgB53S,OAAQ,CAAEzqvB,EAAGkjiC,EAAajjiC,EAAGkjiC,EAAY7+hC,MAAO6xjB,EAAcznb,OAAQ8vX,GAAiB5iG,UAAWA,EAAW5rY,KAAMA,EAAM6qgC,oBAAqB,iBAAkBzm6B,QAAS+16B,EAAkB79J,QAAS/ob,YAAa4mlB,EAAkB38J,YAAa0mD,UAAWi2G,EAAkBa,UAAW1I,cAAe6H,EAAkBc,eAIrW,CACJhvhC,GAAI,OAASn2B,KAAKkpiC,cAAcqT,eAAgB53S,OAAQ,CAAEzqvB,EAAGkjiC,EAAajjiC,EAAGkjiC,EAAY7+hC,MAAO6xjB,EAAcznb,OAAQ8vX,GAAiB5iG,UAAWA,EAAW5rY,KAAMA,EAAM6qgC,oBAAqB,uBAAwBzm6B,QAAS+16B,EAAkB79J,QAAS/ob,YAAa4mlB,EAAkB38J,YAAa0mD,UAAWi2G,EAAkBa,UAAW1I,cAAe6H,EAAkBc,cAAgBd,EAAkBc,cAAgB,MAG7a,CACAnljC,KAAKipiC,UAAU71gC,IAAIkruB,GAEnB,IAAIgmT,EAAUpzhC,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,qBAAuBkuhC,EAAkBvuoB,WAE3G91a,KAAKipiC,UAAUsb,cAAcD,EAAShmT,EAAMxoV,WAC5C91a,KAAKykjC,mBAAmBnmT,EAAMxoV,UAAWwoV,GACzCt+vB,KAAKkpiC,cAAciT,sBAAwB,KAC3Cn8iC,KAAKkpiC,cAAcqT,iBAEfv8iC,KAAKkpiC,cAAckc,gBAAkBpljC,KAAKkpiC,cAAckc,eAAeC,mBAAqBrljC,KAAKipiC,UAAUqa,sBAE3GtjjC,KAAKkpiC,cAAckc,eAAeC,kBAAkBhxiB,YAAY,CAACr0gB,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,wBAAwB,GAE9H/lW,KAAKkpiC,cAAckc,eAAeC,kBAAkBhxiB,YAAY,CAACr0gB,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,iBAAiB,GAE/H,CACJ,CACJ,EAOAggI,EAAUp1d,UAAU8ziC,mBAAqB,SAAUtiP,EAAY/snB,GAE3Dp1M,KAAKipiC,UAAU9p6B,WAAWmm7B,UAAUlw2B,EAAY0gO,UAAY1gO,EAAY0gO,UAAY1gO,EAAYmw2B,UAAW,KAAMnw2B,EAAa,WAAY,GAAIA,EAAaA,GAC3J,IAAIj2E,EACAwE,EACAuqB,EACA1vI,EACAoqI,EACAktR,EACA1gO,EAAYuvjB,QACZhhoB,EAAOyxE,EAAYuvjB,OAAOhhoB,KAAOyxE,EAAYuvjB,OAAOhhoB,KAAOyxE,EAAYuvjB,OAAOzqvB,EAC9Eg0I,EAAMknD,EAAYuvjB,OAAOz2mB,IAAMknD,EAAYuvjB,OAAOz2mB,IAAMknD,EAAYuvjB,OAAOxqvB,EAC3EqE,EAAQ42L,EAAYuvjB,OAAOnmvB,MAC3BoqI,EAASwsD,EAAYuvjB,OAAO/7mB,OAC5BktR,EAAY1gO,EAAY0gO,YAGxBnyS,EAAOyxE,EAAYs51B,OAAO/q6B,KAAOyxE,EAAYs51B,OAAO/q6B,KAAOyxE,EAAYs51B,OAAOx0hC,EAC9Eg0I,EAAMknD,EAAYs51B,OAAOxg5B,IAAMknD,EAAYs51B,OAAOxg5B,IAAMknD,EAAYs51B,OAAOv0hC,EAC3EqE,EAAQ42L,EAAYow2B,WAAWnkV,MAC/Bz4kB,EAASwsD,EAAYow2B,WAAWlkV,OAChCxrT,EAAY1gO,EAAYmw2B,WAExBnw2B,EAAYjrM,SAAWirM,EAAYjrM,QAAQw6vB,SAC3ChhoB,EAAOyxE,EAAYjrM,QAAQw6vB,OAAOhhoB,KAClCuqB,EAAMknD,EAAYjrM,QAAQw6vB,OAAOz2mB,KAErC/uB,EAAa,CACThpG,GAAIi/K,EAAYj/K,GAAKi/K,EAAYj/K,GAAK,KAAMwuuB,OAAQ,CAAEhhoB,KAAMA,EAAMuqB,IAAKA,EAAK1vI,MAAOA,EAAOoqI,OAAQA,GAAUms5B,oBAAqB3/1B,EAAY2/1B,oBAAsB3/1B,EAAY2/1B,oBAAsB,MAAOzm6B,QAAS8mE,EAAY9mE,QAAU8mE,EAAY9mE,QAAU,EAAG8/zB,UAAWh5vB,EAAYg5vB,UAAYh5vB,EAAYg5vB,UAAY,EAAG3we,YAAaroR,EAAYqoR,YAAcroR,EAAYqoR,YAAc,KAAM3nD,UAAWA,EAAW5rY,KAAMkrK,EAAYlrK,KAAOkrK,EAAYlrK,KAAOkrK,EAAYujlB,MAAO15e,SAAU7pG,EAAY6pG,SAAW7pG,EAAY6pG,SAAW,KAAMujK,WAAYptQ,EAAYotQ,WAAaptQ,EAAYotQ,WAAa,KAAMg6lB,cAAepn2B,EAAYon2B,cAAgBpn2B,EAAYon2B,cAAgBpn2B,EAAYqw2B,MAGrqB7hjC,KAAKmgB,MAAM0sB,KAAK+mF,UAAUxmG,OAAOor0B,gBAAgBh51B,OAAS,MAEpDQ,KAAKmgB,MAAM0sB,KAAK+mF,UAAU2H,GAAY/7H,OAAS,MAC/B,OACpCpD,KAAKkpiC,cAAcga,iBAAkB,EACrCljjC,KAAKipiC,UAAUgb,iBAAiByB,yBAC1B1ljC,KAAKkpiC,cAAcyc,qBACrB3ljC,KAAKipiC,UAAUsR,iBAAiBqL,yBAIxC,IAAI3C,EAAcjyhC,OAAOor0B,eAAe3woB,QAAQzrN,KAAKkpiC,cAAcka,WAAa,qBAEhF,GAAKH,EAeA,CACDjjjC,KAAK6ljC,0BAA0B1m7B,EAAYgjsB,GAC3C,IAAI2jP,EAAcr1gC,KAAKuL,MAAMingC,GAC7BjyhC,OAAOor0B,eAAerwoB,WAAW/rN,KAAKkpiC,cAAcka,WAAa,qBACjE,IAAI2C,EAAc/ljC,KAAKipiC,UAAUgb,iBAAiB+B,kBAAkBF,EAAa3jP,GACjF,IAAKp2f,GAAkBg6uB,IAAgBD,EAAYv5hC,SAASw5hC,EAAYjviC,WAAY,KAChFgviC,EAAYv5hC,SAASw5hC,EAAYjviC,WAAY,KAAKs+L,YAAYhpM,KAAK+yH,GAC3D2m7B,EAAYv5hC,SAASw5hC,EAAYjviC,WAAY,KAAKs+L,YAAYzqM,QAAQw0H,OAE7E,CACD,IAAI8m7B,EAAmB,CAAEnwoB,UAAWqsZ,EAAY/snB,YAAa,IAC7D6w2B,EAAiB7w2B,YAAYhpM,KAAK+yH,GAC1B8m7B,EAAiB7w2B,YAAYzqM,QAAQw0H,GAC7C2m7B,EAAY15iC,KAAK65iC,EACrB,CACIC,EAAwBz1gC,KAAK+mF,UAAUsu7B,GACvC9ljC,KAAKkpiC,cAAcga,gBACnBljjC,KAAKkpiC,cAAcia,kBAAkBnjjC,KAAKkpiC,cAAcka,WAAa,qBAAuB8C,EAG5Fl1hC,OAAOor0B,eAAexwoB,QAAQ5rN,KAAKkpiC,cAAcka,WAAa,oBAAqB8C,EAE3F,KArCkB,CACdlmjC,KAAK6ljC,0BAA0B1m7B,EAAYgjsB,GAC3C,IAAIgkP,EAAkB,CAAErwoB,UAAWqsZ,EAAY/snB,YAAa,IAC5D+w2B,EAAgB/w2B,YAAYhpM,KAAK+yH,GACzBgn7B,EAAgB/w2B,YAAYzqM,QAAQw0H,GAC5C,IAAIq2qB,EAAuB,GAC3BA,EAAqBppyB,KAAK+5iC,GAC1B,IAAID,EAAwBz1gC,KAAK+mF,UAAUg+qB,GACvCx1yB,KAAKkpiC,cAAcga,gBACnBljjC,KAAKkpiC,cAAcia,kBAAkBnjjC,KAAKkpiC,cAAcka,WAAa,qBAAuB8C,EAG5Fl1hC,OAAOor0B,eAAexwoB,QAAQ5rN,KAAKkpiC,cAAcka,WAAa,oBAAqB8C,EAE3F,CAwBJ,EASAnglB,EAAUp1d,UAAUy1iC,0BAA4B,SAAUzpiC,EAAUwlzB,EAAYkkP,EAAgBC,GAC5FtmjC,KAAKkpiC,cAAcqd,8BAA6B,GAChD,IAAIC,EAAqB,KACrBC,EAAkBzmjC,KAAK0mjC,eAAevkP,EAAY,MACtD,GAAuB,MAAnBskP,GAA2BJ,EAAgB,CAC3C,IAAK,IAAIl6iC,EAAI,EAAGA,EAAIs6iC,EAAgBrjjC,OAAQ+I,IACxC,GAAIk6iC,EAAelwhC,KAAOswhC,EAAgBl6hC,SAASpgB,EAAE2K,WAAY,KAAKqf,GAAI,CACtE,GAAiB,WAAbxZ,EAEA8piC,EAAgBl6hC,SAASpgB,EAAE2K,WAAY,KAAK6tvB,OAAS,CAAEhhoB,KAAM0i7B,EAAel8iC,QAAQw6vB,OAAOhhoB,KAAMuqB,IAAKm45B,EAAel8iC,QAAQw6vB,OAAOz2mB,IAAK1vI,MAAO6niC,EAAe1hT,OAAOnmvB,MAAOoqI,OAAQy95B,EAAe1hT,OAAO/7mB,QAC3M695B,EAAgBl6hC,SAASpgB,EAAE2K,WAAY,KAAKmoS,SAAWonwB,EAAepnwB,cAErE,GAAiB,WAAbtiS,EACL8piC,EAAgBl6hC,SAASpgB,EAAE2K,WAAY,KAAK2md,YAAc4olB,EAAel8iC,QAAQrE,SAAS,GAAGK,MAAMs3d,iBAElG,GAAiB,YAAb9gd,EACL8piC,EAAgBl6hC,SAASpgB,EAAE2K,WAAY,KAAKw3H,QAAU+36B,EAAel8iC,QAAQrE,SAAS,GAAGK,MAAMmoI,aAE9F,GAAiB,cAAb3xH,EACL8piC,EAAgBl6hC,SAASpgB,EAAE2K,WAAY,KAAKs37B,UAAYi4G,EAAel8iC,QAAQrE,SAAS,GAAGK,MAAMipI,iBAEhG,GAAiB,WAAbzyH,EAAuB,CAC5B3c,KAAK2mjC,0BAA0BF,EAAgBl6hC,SAASpgB,EAAE2K,WAAY,MACtE0viC,EAAqBC,EAAgBjxhC,OAAOrpB,EAAG,GAAG,GAClD,KACJ,CAIA,GAHIwQ,GAAyB,WAAbA,GACZ3c,KAAK6ljC,0BAA0BY,EAAgBl6hC,SAASpgB,EAAE2K,WAAY,KAAMqrzB,GAE5EmkP,EAAmB,CACnBG,EAAgBl6hC,SAASpgB,EAAE2K,WAAY,KAAKw3H,QAAU+36B,EAAel8iC,QAAQrE,SAAS,GAAGK,MAAMmoI,QAC/Fm46B,EAAgBl6hC,SAASpgB,EAAE2K,WAAY,KAAK2md,YAAc4olB,EAAel8iC,QAAQrE,SAAS,GAAGK,MAAMs3d,YACnGgplB,EAAgBl6hC,SAASpgB,EAAE2K,WAAY,KAAKs37B,UAAYi4G,EAAel8iC,QAAQrE,SAAS,GAAGK,MAAMipI,YACjGpvI,KAAK6ljC,0BAA0BY,EAAgBl6hC,SAASpgB,EAAE2K,WAAY,KAAMqrzB,GAC5E,KACJ,CACJ,CAEJni0B,KAAK4mjC,kBAAkBH,EAAiBtkP,EAC5C,CACA,OAAOqkP,CACX,EAOAzglB,EAAUp1d,UAAUk1iC,0BAA4B,SAAU1m7B,EAAYgjsB,GAElE,IAAI0kP,EAAoB7mjC,KAAK8mjC,yBAAyB3n7B,GAElD4n7B,EAAmBpR,IAAYx26B,GACnC4n7B,EAAiBC,aAAe7n7B,EAAWq96B,cAC3CuK,EAAiB5kP,WAAaA,SACvB4kP,EAAiBE,UACpB9n7B,EAAWhpG,KACX4whC,EAAiBG,UAAY/n7B,EAAWhpG,UACjC4whC,EAAiB5whC,IAExB0whC,EAAkBM,WAClBnnjC,KAAKipiC,UAAUme,oBAAoB5xhC,OAAOqxhC,EAAkB389B,SAAU,EAAG689B,GAGzE/mjC,KAAKipiC,UAAUme,oBAAoBh7iC,KAAK26iC,EAEhD,EAEAhhlB,EAAUp1d,UAAUm2iC,yBAA2B,SAAUnilB,GAErD,IAAIgnO,EAAc3rsB,KAAKipiC,UAAUme,oBACjC,GAAIz7W,GAAehnO,EACf,IAAK,IAAIx4d,EAAI,EAAGA,EAAIw/rB,EAAYvosB,OAAQ+I,IACpC,GAAIw/rB,EAAYp/qB,SAASpgB,EAAE2K,WAAY,KAAKkwiC,eAAiBrilB,EAAU63kB,cAEnE,OADAx8iC,KAAKipiC,UAAUme,oBAAoB5xhC,OAAOrpB,EAAG,GACtC,CAAEg7iC,YAAY,EAAMj99B,SAAU/9E,GAIjD,MAAO,CAAEg7iC,YAAY,EAAOj99B,SAAU,KAC1C,EAMA67Y,EAAUp1d,UAAUg2iC,0BAA4B,SAAUhilB,GAEtD,IAAIgnO,EAAc3rsB,KAAKipiC,UAAUme,oBACjC,GAAIz7W,GAAehnO,EACf,IAAK,IAAIx4d,EAAI,EAAGA,EAAIw/rB,EAAYvosB,OAAQ+I,IACpC,GAAIw/rB,EAAYp/qB,SAASpgB,EAAE2K,WAAY,KAAKkwiC,eAAiBrilB,EAAU63kB,cAAe,CAClFx8iC,KAAKipiC,UAAUme,oBAAoB5xhC,OAAOrpB,EAAG,GAC7C,KACJ,CAGZ,EAOA45d,EAAUp1d,UAAU02iC,gBAAkB,SAAUllP,EAAYx9V,GACxD,GAAIA,EAAW,CACX3ke,KAAK6ljC,0BAA0BlhlB,EAAWw9V,GAE1C,IAAImlP,EAAiBtnjC,KAAK0mjC,eAAevkP,EAAY,MACjDmlP,GACAA,EAAel7iC,KAAKu4d,GAExB3ke,KAAK4mjC,kBAAkBU,EAAgBnlP,EAC3C,CACJ,EAEAp8V,EAAUp1d,UAAU+1iC,eAAiB,SAAU5woB,EAAWyxoB,GAEtD,IAAI/xQ,EAEAytQ,EAAc,KAOlB,GALIA,EADAjjjC,KAAKkpiC,cAAcga,gBACLljjC,KAAKkpiC,cAAcia,kBAAkBnjjC,KAAKkpiC,cAAcka,WAAa,qBAGrEpyhC,OAAOor0B,eAAe3woB,QAAQzrN,KAAKkpiC,cAAcka,WAAa,qBAE/D,CACb,IAAI0C,EAAcr1gC,KAAKuL,MAAMingC,GACzBx2hC,EAAQzsB,KAAKipiC,UAAUgb,iBAAiB+B,kBAAkBF,EAAahwoB,GAEvE0/X,GADCzpe,GAAkBt/S,IAAUq5hC,EAAYv5hC,SAASE,EAAM3V,WAAY,KAC7CgviC,EAAYv5hC,SAASE,EAAM3V,WAAY,KAAKs+L,YAG5Cmy2B,CAE/B,MAEI/xQ,EAAuB+xQ,EAE3B,OAAO/xQ,CACX,EACAzvU,EAAUp1d,UAAUi2iC,kBAAoB,SAAUH,EAAiBtkP,GAE/D,IAAI8gP,EAAc,KAOlB,GALIA,EADAjjjC,KAAKkpiC,cAAcga,gBACLljjC,KAAKkpiC,cAAcia,kBAAkBnjjC,KAAKkpiC,cAAcka,WAAa,qBAGrEpyhC,OAAOor0B,eAAe3woB,QAAQzrN,KAAKkpiC,cAAcka,WAAa,qBAE/D,CACb,IAAI0C,EAAcr1gC,KAAKuL,MAAMingC,GAC7BjyhC,OAAOor0B,eAAerwoB,WAAW/rN,KAAKkpiC,cAAcka,WAAa,qBACjE,IAAI32hC,EAAQzsB,KAAKipiC,UAAUgb,iBAAiB+B,kBAAkBF,EAAa3jP,GACvE2jP,EAAYv5hC,SAASE,EAAM3V,WAAY,OACvCgviC,EAAYv5hC,SAASE,EAAM3V,WAAY,KAAKs+L,YAAcqx2B,GAE9D,IAAIP,EAAwBz1gC,KAAK+mF,UAAUsu7B,GACvC9ljC,KAAKkpiC,cAAcga,gBACnBljjC,KAAKkpiC,cAAcia,kBAAkBnjjC,KAAKkpiC,cAAcka,WAAa,qBAAuB8C,EAG5Fl1hC,OAAOor0B,eAAexwoB,QAAQ5rN,KAAKkpiC,cAAcka,WAAa,oBAAqB8C,EAE3F,CACJ,EAMAnglB,EAAUp1d,UAAU62iC,oBAAsB,SAAUC,GAC5CA,GACAznjC,KAAKu5iC,sBAEb,EAKAxzkB,EAAUp1d,UAAU+2iC,kBAAoB,WACpC1njC,KAAKkpiC,cAAc4Q,sBAAuB,EAC1C95iC,KAAKwnjC,qBAAoB,EAC7B,EAKAzhlB,EAAUp1d,UAAUg3iC,eAAiB,WACjC3njC,KAAKkpiC,cAAc4Q,sBAAuB,EAC1C95iC,KAAKkpiC,cAAcgR,gBAAiB,EACpCl6iC,KAAKwnjC,qBAAoB,EAC7B,EAMAzhlB,EAAUp1d,UAAU4+hC,oBAAsB,SAAUjzhC,GAChD,OAAQA,GAAU,GAAK,GAC3B,EAQAypd,EAAUp1d,UAAUi3iC,2BAA6B,SAAUjjlB,EAAW7uD,EAAW8uoB,GAG7E,GAAIjglB,EAAW,CAEX,IAAIggS,EAAShgS,EAAU+pkB,OACnB0O,EAAcz4S,EAAOvjvB,EACrBi8hC,EAAa14S,EAAO9lvB,EACpBwxjB,EAAes0L,EAAOtjC,MACtB3oN,EAAgBisP,EAAOrjC,OAEvBp3rB,EAAOy6b,EAAUmglB,SASrB,OARIF,IACA16gC,EAAO2mgC,IAAcpggC,KAAKuL,MAAM2ob,EAAUmglB,YAEtC,CAEJ3uhC,GAAI,OAASwuc,EAAUwglB,cAAexgT,OAAQ,CAAEzqvB,EAAGkjiC,EAAajjiC,EAAGkjiC,EAAY7+hC,MAAO6xjB,EAAcznb,OAAQ8vX,GAAiB5iG,UAAWA,EAAW5rY,KAAMA,EACzJ6qgC,oBAAqB,uBAAwBzm6B,QAASq2V,EAAU6hb,QAAS/ob,YAAakH,EAAU+ib,YAAa0mD,UAAWzpe,EAAUuglB,UAAW1I,cAAe73kB,EAAUwglB,cAG9K,CACJ,EAKAp/kB,EAAUp1d,UAAUymI,QAAU,WAC1BpmH,OAAOor0B,eAAerwoB,WAAW,qBAEjC,IAAIg01B,EAAY7uhC,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,gBAChE4phC,IACAA,EAAU3khC,oBAAoB,SAAUp7B,KAAK84iC,eACzCiH,EAAUlqxB,eACVkqxB,EAAUlqxB,cAAc1gQ,YAAY4qhC,IAExC//iC,KAAKm6iC,iBACLn6iC,KAAKm6iC,gBAAgB/i6B,SAC7B,EACO2uV,CACX,CAh2E+B,GEJ3Bo3O,IAA6B,WAO7B,SAASA,EAAY8rV,EAAWC,GAC5BlpiC,KAAK6njC,gBAAkB,GACvB7njC,KAAK8njC,gBAAkB,GACvB9njC,KAAKipiC,UAAYA,EACjBjpiC,KAAKkpiC,cAAgBA,EACrBlpiC,KAAK6njC,gBAAkB,CAAC,CAAE5nhC,KAAMjgC,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,OAAQkmF,QAAS,iBAClF,CAAEhsZ,KAAMjgC,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,QAASkmF,QAAS,kBAC/D,CAAEhsZ,KAAMjgC,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,qBAAsBkmF,QAAS,uBAC5E,CAAEhsZ,KAAMjgC,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,qBAAsBkmF,QAAS,uBAC5E,CAAEhsZ,KAAMjgC,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,yBAA0BkmF,QAAS,2BAChF,CAAEhsZ,KAAMjgC,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,SAAUkmF,QAAS,mBAChE,CAAEhsZ,KAAMjgC,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,kBAAmBkmF,QAAS,oBACzE,CAAEhsZ,KAAMjgC,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,eAAgBkmF,QAAS,yBACtE,CAAE9jW,WAAW,EAAMhyD,GAAI8ygC,EAAU9zhC,QAAQghB,GAAK,mCAC9C,CAAE8J,KAAMjgC,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,WAAYkmF,QAAS,qBAClE,CAAE9jW,WAAW,EAAMhyD,GAAI8ygC,EAAU9zhC,QAAQghB,GAAK,2BAC9C,CAAE8J,KAAMjgC,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,cAAekmF,QAAS,sBAE7E,CAuZA,OAlZAkxR,EAAYxssB,UAAUo3iC,kBAAoB,WACtC/njC,KAAKgojC,mBAAqBlnjC,GAAc,KAAM,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,gBAAiBp1B,UAAW,sBAC5Gf,KAAKipiC,UAAU9zhC,QAAQuc,YAAY1xB,KAAKgojC,oBACxChojC,KAAKiojC,eAAiB,IAAIC,IAAQ,CAC9B7/iC,OAAQ,IAAMrI,KAAKkpiC,cAAc+E,gBAAgB93gC,GAAI2xB,MAAO9nD,KAAK6njC,gBACjE7g7B,WAAYhnI,KAAKmojC,wBAAwBtojC,KAAKG,MAAOwqV,OAAQxqV,KAAKoojC,iBAAiBvojC,KAAKG,MACxFyzd,QAASzzd,KAAKqojC,qBAAqBxojC,KAAKG,QAExCA,KAAKipiC,UAAU5wsB,YACfr4V,KAAKiojC,eAAe5vtB,WAAY,GAEpCr4V,KAAKiojC,eAAevvtB,SAAS14V,KAAKgojC,oBAC9B/guB,GAAQM,WAAavnV,KAAKipiC,UAAUqf,kBACpCtojC,KAAKiojC,eAAe56mB,kBAAkBr5P,OAAS,SAG/Ch0M,KAAKiojC,eAAe56mB,kBAAkBr5P,OAAS,WAEvD,EACAmpgB,EAAYxssB,UAAU03iC,qBAAuB,SAAUpviC,GAEnD,IAAI6uC,EAAQ,CAAC9nD,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,qBAAsB/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,qBACzG/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,0BACrC/lW,KAAKipiC,UAAUgb,kBACVjkjC,KAAKipiC,UAAUgb,iBAAiBsE,4BAKrCvojC,KAAKiojC,eAAe5ziB,YAAYvsd,GAAO,EAE/C,EACAq1pB,EAAYxssB,UAAUqwgB,UAAY,SAAU/ngB,GACxC,IAAI5Q,EAAS,KAKb,OAJI4Q,EAAK8d,OAAS9d,EAAK8d,MAAM1uB,SACzBA,EAAS4Q,EAAK8d,MAAM1uB,OACpBrI,KAAKm7B,cAAgB9yB,GAElBA,CACX,EACA80sB,EAAYxssB,UAAUw3iC,wBAA0B,SAAUlviC,GAClDjZ,KAAKkpiC,cAAcsf,qBACnBvviC,EAAK6nE,QAAS,GAElB,IAAIz4E,EAASrI,KAAKghhB,UAAU/ngB,GACxBwviC,EAA2E,IAApDzojC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAYhyM,OAAepD,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAGou2B,mBAAqB,KAkBpJ,GAhBIxjjC,KAAKipiC,UAAUgb,kBAAoBjkjC,KAAKipiC,UAAUgb,iBAAiByE,0BAA4B1ojC,KAAKipiC,UAAUgb,iBAAiByE,yBAAyBC,mBAAqBtgjC,GAA+B,oBAArBA,EAAOtH,WAAsD,aAAnBsH,EAAO+/B,UACxOpoC,KAAKkpiC,cAAc0f,uBAAwB,GAG/C5ojC,KAAKiojC,eAAetrW,UAAU,CAAC38sB,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,OAAQ/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,QAAS/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,SAE3J/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,qBAAsB/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,qBAAsB/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,yBAE3J/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,kBAAmB/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,eAAgB/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,WAAY/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,gBACvM/lW,KAAKkpiC,cAAcliwB,WAAW,2BAA2B9e,UAAU/0P,OAAO,eAC1EnzB,KAAKkpiC,cAAcliwB,WAAW,mCAAmC9e,UAAU/0P,OAAO,eAElFnzB,KAAKiojC,eAAe5ziB,YAAY,CAACr0gB,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,OAAQ/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,QAAS/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,SAAU/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,oBAAoB,GAChO/lW,KAAKipiC,UAAUgb,kBACfjkjC,KAAKipiC,UAAUgb,iBAAiB4E,2BAA2B7ojC,KAAKiojC,gBAEhEjojC,KAAKipiC,UAAU0B,qBAAuB3qiC,KAAKkpiC,cAAc4f,iCAAkC,CAC3F,GAAI7viC,EAAK8d,OAAS/2B,KAAKkpiC,cAAc6f,oBAAqB,CACtD,IAAIC,EAA+BhpjC,KAAKkpiC,cAAc8f,6BAA6B/viC,EAAK8d,OAExF,GAAI/2B,KAAKkpiC,cAAc0f,sBACnB5ojC,KAAKiojC,eAAeprW,UAAU,CAAC78sB,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,qBAAsB/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,qBAAsB/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,yBAA0B/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,cAAe/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,WACzS/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,eAAgB/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,oBAC9F/lW,KAAKkpiC,cAAcliwB,WAAW,2BAA2B9e,UAAU90P,IAAI,eACvEpzB,KAAKkpiC,cAAcliwB,WAAW,mCAAmC9e,UAAU90P,IAAI,eAE3EpzB,KAAKipiC,UAAU9p6B,WAAWup7B,0BAA4B1ojC,KAAKipiC,UAAU9p6B,WAAWup7B,yBAAyBhhX,gBACzG1nsB,KAAKiojC,eAAe5ziB,YAAY,CAACr0gB,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,UAAU,GAChF/lW,KAAKiojC,eAAe5ziB,YAAY,CAACr0gB,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,SAAS,KAG/E/lW,KAAKiojC,eAAe5ziB,YAAY,CAACr0gB,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,UAAU,GAChF/lW,KAAKiojC,eAAe5ziB,YAAY,CAACr0gB,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,SAAS,GAC/E/0U,OAAOu8H,eAAeO,mBAGtB9tJ,KAAKipiC,UAAU9p6B,WAAWup7B,0BAAgG,KAApE1ojC,KAAKipiC,UAAU9p6B,WAAWup7B,yBAAyBpgJ,aACzGto6B,KAAKiojC,eAAe5ziB,YAAY,CAACr0gB,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,WAAW,GAGjF/lW,KAAKiojC,eAAe5ziB,YAAY,CAACr0gB,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,WAAW,QAGpF,GAAIijtB,GAAgChpjC,KAAKipiC,UAAU0B,qBAE9C1xhC,EAAK8d,MAAM1uB,OAAO6/Q,UAAUh1P,SAAS,yBAA2Bja,EAAK8d,MAAM1uB,OAAO6/Q,UAAUh1P,SAAS,cAAgBja,EAAK8d,MAAM1uB,OAAO6/Q,UAAUh1P,SAAS,mBACxJlzB,KAAKkpiC,cAAc+f,sBACnBhwiC,EAAK6nE,QAAS,IAIZmmQ,GAAQh0D,MAA8B,SAAtBg0D,GAAQ1qT,KAAK73B,OAAoBuU,EAAK8d,MAAM1uB,OAAO6/Q,UAAUh1P,SAAS,yBAC5Fja,EAAK6nE,QAAS,GAGlB9gF,KAAKiojC,eAAeprW,UAAU,CAAC78sB,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,OAAQ/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,SAAU/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,kBAAmB/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,eAAgB/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,WAAY/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,gBAC9T/lW,KAAKkpiC,cAAcliwB,WAAW,2BAA2B9e,UAAU90P,IAAI,eACvEpzB,KAAKkpiC,cAAcliwB,WAAW,mCAAmC9e,UAAU90P,IAAI,oBAG9E,GAAwD,IAApDpzB,KAAKipiC,UAAUjmmB,cAAc5tP,YAAYhyM,QAAqF,yBAApEpD,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAG2/1B,qBAAsH,kBAApE/0iC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAG2/1B,qBAA+G,mBAApE/0iC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAG2/1B,qBAAgH,SAApE/0iC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAG2/1B,oBAIvX,GAAwD,IAApD/0iC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAYhyM,QAAoF,SAApEpD,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAG2/1B,qBAAmC0T,EAAqBS,OAIjK,GAAuD,IAAnDlpjC,KAAKipiC,UAAUjmmB,cAAcmmnB,WAAW/ljC,QAAgBpD,KAAKipiC,UAAUjmmB,cAAcmmnB,WAAW,GAAGlU,yBAA2Bj1iC,KAAKipiC,UAAUmgB,aAClJppjC,KAAKqpjC,mBAAkB,GAElBt9uB,GAAkB/rU,KAAKipiC,UAAUh0a,UAAalpT,GAAkB/rU,KAAKipiC,UAAUh0a,QAAQq0b,4BACxFtpjC,KAAKipiC,UAAUh0a,QAAQq0b,0BAA0BC,oBAAmB,OAGvE,CAED,IAAIz7gB,EAAW9tiB,KAAKkpiC,cAAcsgB,mBAC9BvF,EAAmBjkjC,KAAKipiC,UAAUgb,iBAClChriC,EAAK8d,OAAS9d,EAAK8d,MAAM1uB,SACzByliB,EAAW70hB,EAAK8d,MAAM1uB,QAGtBrI,KAAKipiC,UAAU9p6B,YAAcn/H,KAAKipiC,UAAU9p6B,WAAWsq7B,gBAAmB37gB,EAAU5lR,UAAUh1P,SAAS,oBACtG46gB,EAAU5lR,UAAUh1P,SAAS,gBAAkBlzB,KAAKipiC,UAAUgb,iBAAiBsE,2BAA2BmB,6BAItG1pjC,KAAKipiC,UAAU0gB,cAAgB3pjC,KAAKipiC,UAAU0gB,aAAaF,gBAAmB37gB,EAAU5lR,UAAUh1P,SAAS,oBAC/G46gB,EAAU5lR,UAAUh1P,SAAS,cAJ9BlzB,KAAKqpjC,mBAAkB,GAQlBrpjC,KAAKkpiC,cAAc0gB,+BAAiC5pjC,KAAKipiC,UAAUgb,iBAAiB4F,wBAAwBC,wBAA0BrB,GAE3IzojC,KAAKiojC,eAAeprW,UAAU,CAAC78sB,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,qBAAsB/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,qBAAsB/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,yBAA0B/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,gBACzP/lW,KAAKkpiC,cAAcliwB,WAAW,2BAA2B9e,UAAU90P,IAAI,eACvEpzB,KAAKkpiC,cAAcliwB,WAAW,mCAAmC9e,UAAU/0P,OAAO,eAElFnzB,KAAKiojC,eAAe5ziB,YAAY,CAACr0gB,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,OAAQ/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,QAAS/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,SAAU/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,kBAAmB/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,aAAa,IAGhRk+sB,GAAoBA,EAAiBsE,4BAA8BtE,EAAiBsE,2BAA2BmB,8BAAgCzF,EAAiBsE,2BAA2BmB,4BAA4BlG,mBAAmB0F,QAE/OlpjC,KAAKiojC,eAAeprW,UAAU,CAAC78sB,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,qBAAsB/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,qBAAsB/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,yBAA0B/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,cAAe/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,OACzS/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,QAAS/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,SAAU/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,iBACtI/lW,KAAKkpiC,cAAcliwB,WAAW,2BAA2B9e,UAAU90P,IAAI,eACvEpzB,KAAKkpiC,cAAcliwB,WAAW,mCAAmC9e,UAAU/0P,OAAO,eAElFnzB,KAAKiojC,eAAetrW,UAAU,CAAC38sB,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,kBAAmB/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,aAAa,IAGzI9sV,EAAK6nE,QAAS,CAEtB,MAjDI9gF,KAAKqpjC,mBAAkB,QAJvBrpjC,KAAKqpjC,mBAAkB,GAAO,EAsDtC,MACSrpjC,KAAKipiC,UAAU0B,qBAA6D,YAArC3qiC,KAAKipiC,UAAU8gB,mBAE3D/pjC,KAAKiojC,eAAeprW,UAAU,CAAC78sB,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,OAAQ/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,SAAU/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,kBAAmB/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,eAAgB/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,WAAY/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,gBAC9T/lW,KAAKkpiC,cAAcliwB,WAAW,2BAA2B9e,UAAU90P,IAAI,eACvEpzB,KAAKkpiC,cAAcliwB,WAAW,mCAAmC9e,UAAU90P,IAAI,gBAG/EpzB,KAAKgqjC,mBAEThqjC,KAAKiqjC,wBACT,MAEIhxiC,EAAK6nE,QAAS,EAEuB,SAArC9gF,KAAKipiC,UAAU8gB,kBACf9wiC,EAAK6nE,QAAS,EAGd9gF,KAAK+1pB,iBAAiB98oB,GAEtBjZ,KAAKipiC,UAAUgb,kBAAoBjkjC,KAAKipiC,UAAUgb,iBAAiBiG,wBACnEjxiC,EAAK6nE,QAAS,GAElB9gF,KAAKkpiC,cAAc6f,qBAAsB,CAC7C,EACA5rW,EAAYxssB,UAAUolpB,iBAAmB,SAAU98oB,GAC/C,GAAIjZ,KAAKipiC,UAAUkhB,oBAAoBp0Z,iBAAiB3ypB,OAAQ,CAI5D,IAHA,IAAIgnjC,EAAgB,GAEhBng5B,GADkBjqK,KAAKqqjC,wBAClBrqjC,KAAKiojC,eAAe/utB,kBACpBlpV,EAAI,EAAGA,EAAIhQ,KAAKipiC,UAAUkhB,oBAAoBp0Z,iBAAiB3ypB,OAAQ4M,IAC5E,IAAK,IAAI7D,EAAI,EAAGA,EAAInM,KAAK8njC,gBAAgB1kjC,OAAQ+I,IAAK,CAClD,IAAIg3T,EAAWnjU,KAAK8njC,gBAAgBv7hC,SAASpgB,EAAE2K,WAAY,KAAKmpB,KAChE,OAAQkjS,GACJ,IAAK,YACDA,EAAW,oBACX,MACJ,IAAK,YACDA,EAAW,oBACX,MACJ,IAAK,gBACDA,EAAW,wBACX,MACJ,IAAK,SACDA,EAAW,iBACX,MACJ,IAAK,cACDA,EAAW,cACX,MACJ,IAAK,UACDnjU,KAAKkpiC,cAAcliwB,WAAW,mCAAmC9e,UAAU90P,IAAI,eAC/E,MACJ,IAAK,aACDpzB,KAAKkpiC,cAAcliwB,WAAW,2BAA2B9e,UAAU90P,IAAI,eAG/E,IAAIk3hC,EAAWtqjC,KAAK8njC,gBAAgBv7hC,SAASpgB,EAAE2K,WAAY,KAAKmpB,KAIhE,GAHU,IAANjwB,GAAWs6iC,IAAazX,IAAgB7yiC,KAAKipiC,UAAUkhB,oBAAoBp0Z,iBAAiBxpoB,SAASvc,EAAE8G,WAAY,OACnHsziC,EAAch+iC,KAAKk+iC,GAEnBt6iC,EAAI,GAAKs6iC,IAAazX,IAAgB7yiC,KAAKipiC,UAAUkhB,oBAAoBp0Z,iBAAiBxpoB,SAASvc,EAAE8G,WAAY,MACjH,IAAK,IAAIgK,EAAI,EAAGA,EAAIspiC,EAAchnjC,OAAQ0d,IACtC,GAAIspiC,EAAc79hC,SAASzL,EAAEhK,WAAY,OAASwziC,EAC9C,GAAItqjC,KAAKipiC,UAAUshB,yBAA2BvqjC,KAAKipiC,UAAUshB,wBAAwBnnjC,OAAS,EAAG,CAE7F,IADA,IAAIkoK,GAAa,EACRjsI,EAAI,EAAGA,EAAIr/B,KAAKipiC,UAAUshB,wBAAwBnnjC,OAAQi8B,IAC3D+qhC,EAAc79hC,SAASzL,EAAEhK,WAAY,OAAS+7hC,IAAgB7yiC,KAAKipiC,UAAUshB,wBAAwBh+hC,SAAS8S,EAAEvoB,WAAY,QAC5Hw0J,GAAa,GAGhBA,GACD8+4B,EAAc50hC,OAAO1U,EAAG,EAEhC,MAEIspiC,EAAc50hC,OAAO1U,EAAG,EAK5C,CAEJ,IAAI0piC,EAAiBxqjC,KAAKyqjC,qBAAqBL,GAC/CpqjC,KAAKiojC,eAAeprW,UAAU2tW,GACO,IAAjCxqjC,KAAK0qjC,oBAAoBzg5B,KACzBhxJ,EAAK6nE,QAAS,EAEtB,CACJ,EACAq8nB,EAAYxssB,UAAU85iC,qBAAuB,SAAUL,GACnD,IAAIO,EAA2B,GAC/B,GAAIP,EAAchnjC,OAAS,EACvB,IAAK,IAAI+I,EAAI,EAAGA,EAAIi+iC,EAAchnjC,OAAQ+I,IAAK,CAC3C,IAAIg3T,EAAWinvB,EAAc79hC,SAASpgB,EAAE2K,WAAY,KACpD,OAAQqsT,GACJ,IAAK,YACDA,EAAW,oBACX,MACJ,IAAK,YACDA,EAAW,oBACX,MACJ,IAAK,gBACDA,EAAW,wBACX,MACJ,IAAK,SACDA,EAAW,iBACX,MACJ,IAAK,aACDA,EAAW,cAGnBwnvB,EAAyBv+iC,KAAKpM,KAAKipiC,UAAU59hB,UAAUtlK,YAAY5iC,GACvE,CAEJ,OAAOwnvB,CACX,EACAxtW,EAAYxssB,UAAU05iC,sBAAwB,WAC1C,OAAOrqjC,KAAK8njC,gBAAkB,CAAC,CAAE7nhC,KAAM,OAAS,CAAEA,KAAM,QAAU,CAAEA,KAAM,aAAe,CAAEA,KAAM,aAAe,CAAEA,KAAM,iBACpH,CAAEA,KAAM,SAAW,CAAEA,KAAM,UAAY,CAAEA,KAAM,cAAgB,CAAEA,KAAM,WAAa,CAAEA,KAAM,cACpG,EACAk9qB,EAAYxssB,UAAU+5iC,oBAAsB,SAAUzg5B,GAGlD,IAFA,IAAI2g5B,EAAmB5qjC,KAAK6njC,gBAAgBzkjC,OACxCoub,EAAevnR,EAAGnkK,SACbqG,EAAI,EAAGA,EAAIqlb,EAAapub,OAAQ+I,IAAK,CAE1C,IAAI4vJ,EAAKy1R,EAAarlb,IAClB4vJ,EAAGmsH,UAAUh1P,SAAS,gBAAkB6oI,EAAGmsH,UAAUh1P,SAAS,iBAC9D03hC,GAAsC,EAE9C,CACA,OAAOA,CACX,EACAztW,EAAYxssB,UAAUq5iC,iBAAmB,WACmB,IAApDhqjC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAYhyM,SAEzCpD,KAAKiojC,eAAeprW,UAAU,CAAC78sB,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,OAAQ/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,SAAU/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,kBAAmB/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,eAAgB/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,gBAC7Q/lW,KAAKkpiC,cAAcliwB,WAAW,2BAA2B9e,UAAU90P,IAAI,eAE/E,EACA+prB,EAAYxssB,UAAUs5iC,uBAAyB,WACvCjqjC,KAAKipiC,UAAU4hB,mBACf7qjC,KAAKiojC,eAAe5ziB,YAAY,CAACr0gB,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,aAAa,GAGnF/lW,KAAKiojC,eAAe5ziB,YAAY,CAACr0gB,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,aAAa,GAEhC,IAAnD/lW,KAAKipiC,UAAUjmmB,cAAcmmnB,WAAW/ljC,QACxCpD,KAAKiojC,eAAe5ziB,YAAY,CAACr0gB,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,aAAa,EAE3F,EACAo3W,EAAYxssB,UAAU04iC,kBAAoB,SAAUyB,EAAQC,GACpD/qjC,KAAKipiC,UAAU9p6B,YAAcn/H,KAAKipiC,UAAU9p6B,WAAWsq7B,eAGlDzpjC,KAAKipiC,UAAU0gB,cAAgB3pjC,KAAKipiC,UAAU0gB,aAAaF,cAFhEzpjC,KAAKiojC,eAAe5ziB,YAAY,CAACr0gB,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,WAAW,GAMjF/lW,KAAKiojC,eAAe5ziB,YAAY,CAACr0gB,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,WAAW,GAGrF/lW,KAAKiojC,eAAeprW,UAAU,CAAC78sB,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,qBAAsB/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,qBAAsB/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,yBAA0B/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,iBACrP+ktB,EAEwD,IAApD9qjC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAYhyM,QAAqF,SAApEpD,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAG2/1B,qBAAsG,uBAApE/0iC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAG2/1B,qBAChH,aAApE/0iC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAG2/1B,oBAIY,IAAnD/0iC,KAAKipiC,UAAUjmmB,cAAcmmnB,WAAW/ljC,QAAgBpD,KAAKipiC,UAAUjmmB,cAAcmmnB,WAAW,GAAGlU,yBACxGj1iC,KAAKiojC,eAAeprW,UAAU,CAAC78sB,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,aACpE/lW,KAAKkpiC,cAAcliwB,WAAW,2BAA2B9e,UAAU90P,IAAI,eACvEpzB,KAAKiojC,eAAetrW,UAAU,CAAC38sB,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,iBAE/Dh6B,GAAkBg/uB,IAAoF,UAApE/qjC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAG2/1B,sBAAoC/0iC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAGj/K,GAAGg3D,WAAW,UACjLntF,KAAKiojC,eAAeprW,UAAU,CAAC78sB,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,cAAe/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,WAAY/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,OAAQ/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,QAAS/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,WACpQ/lW,KAAKkpiC,cAAcliwB,WAAW,2BAA2B9e,UAAU90P,IAAI,eACvEpzB,KAAKkpiC,cAAcliwB,WAAW,mCAAmC9e,UAAU90P,IAAI,iBAG/EpzB,KAAKiojC,eAAeprW,UAAU,CAAC78sB,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,gBACpE/lW,KAAKkpiC,cAAcliwB,WAAW,2BAA2B9e,UAAU90P,IAAI,gBAfvEpzB,KAAKiojC,eAAetrW,UAAU,CAAC38sB,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,gBAkBnEgltB,EAC0D,mBAA1D/qjC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAG6x2B,WAA4F,iBAA1DjnjC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAG6x2B,WAA0F,kBAA1DjnjC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAG6x2B,WACvMjnjC,KAAKiojC,eAAeprW,UAAU,CAAC78sB,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,cAAe/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,WAAY/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,OAAQ/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,QAAS/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,WACpQ/lW,KAAKkpiC,cAAcliwB,WAAW,2BAA2B9e,UAAU90P,IAAI,eACvEpzB,KAAKkpiC,cAAcliwB,WAAW,mCAAmC9e,UAAU90P,IAAI,iBAG/EpzB,KAAKiojC,eAAeprW,UAAU,CAAC78sB,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,cAAe/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,aACxH/lW,KAAKkpiC,cAAcliwB,WAAW,2BAA2B9e,UAAU90P,IAAI,eACvEpzB,KAAKkpiC,cAAcliwB,WAAW,mCAAmC9e,UAAU90P,IAAI,iBAInFpzB,KAAKiojC,eAAeprW,UAAU,CAAC78sB,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,OAAQ/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,QAE7G/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,kBAAmB/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,cAAe/lW,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,aACrJ/lW,KAAKkpiC,cAAcliwB,WAAW,2BAA2B9e,UAAU90P,IAAI,eACvEpzB,KAAKkpiC,cAAcliwB,WAAW,mCAAmC9e,UAAU90P,IAAI,eAEvF,EACA+prB,EAAYxssB,UAAUq6iC,eAAiB,SAAUpsW,GAC7C5+sB,KAAKkpiC,cAAc8hB,eAAepsW,EACtC,EACAzB,EAAYxssB,UAAUy3iC,iBAAmB,SAAUnviC,GAC/CjZ,KAAKkpiC,cAAc8hB,eAAe/xiC,EAAKsc,KAAK0K,KAChD,EAKAk9qB,EAAYxssB,UAAUymI,QAAU,WACxBp3I,KAAKiojC,iBACLjojC,KAAKwnhB,eAAiB,GACtBxnhB,KAAKiojC,eAAe7w6B,UAE5B,EAKA+lkB,EAAYxssB,UAAU6qI,MAAQ,WAC1Bx7I,KAAKiojC,eAAezs6B,OACxB,EAQA2hkB,EAAYxssB,UAAUmyH,KAAO,SAAUorB,EAAKvqB,EAAMt7H,GAE9CrI,KAAKiojC,eAAenl7B,KAAKorB,EAAKvqB,EAAMt7H,EAExC,EACO80sB,CACX,CAjbiC,GCL7BukP,IAAsB,WACtB,SAASA,EAAKlj7B,EAAOoqI,GACjB5oJ,KAAKwe,MAAQA,EACbxe,KAAK4oJ,OAASA,CAClB,CASA,OAHA84yB,EAAK/w7B,UAAUpP,MAAQ,WACnB,OAAO,IAAImg8B,EAAK1h8B,KAAKwe,MAAOxe,KAAK4oJ,OACrC,EACO84yB,CACX,CAd0B,GCHtBx74B,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAazC2pS,IAA0C,SAAUxoJ,EAAYl/L,EAAQiE,EAAKkkB,GAC7E,IAA2HhvB,EAAvH6e,EAAIld,UAAUC,OAAQkgH,EAAIjjG,EAAI,EAAIhY,EAAkB,OAATmoB,EAAgBA,EAAO/wB,OAAOk+B,yBAAyBt1B,EAAQiE,GAAOkkB,EACrH,GAAuB,kBAAZuN,SAAoD,oBAArBA,QAAQiyT,SAAyB1sO,EAAIvlF,QAAQiyT,SAASzoJ,EAAYl/L,EAAQiE,EAAKkkB,QACpH,IAAK,IAAIrkB,EAAIo7L,EAAWnkM,OAAS,EAAG+I,GAAK,EAAGA,KAAS3K,EAAI+lM,EAAWp7L,MAAIm3G,GAAKjjG,EAAI,EAAI7e,EAAE8hH,GAAKjjG,EAAI,EAAI7e,EAAE6G,EAAQiE,EAAKg3G,GAAK9hH,EAAE6G,EAAQiE,KAASg3G,GAChJ,OAAOjjG,EAAI,GAAKijG,GAAK7jH,OAAO4c,eAAehU,EAAQiE,EAAKg3G,GAAIA,CAChE,EASI2n8B,IAA2B,SAAUnkgC,GAErC,SAASmkgC,IACL,OAAkB,OAAXnkgC,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CA+BA,OAlCAkmD,IAAU+kgC,EAAWnkgC,GAIrBipS,IAAW,CACPjB,GAAS,IACVm8tB,EAAUt6iC,UAAW,SAAK,GAC7Bo/U,IAAW,CACPjB,GAAS,IACVm8tB,EAAUt6iC,UAAW,SAAK,GAC7Bo/U,IAAW,CACPjB,GAAS,IACVm8tB,EAAUt6iC,UAAW,aAAS,GACjCo/U,IAAW,CACPjB,GAAS,IACVm8tB,EAAUt6iC,UAAW,cAAU,GAClCo/U,IAAW,CACPjB,GAAS,IACVm8tB,EAAUt6iC,UAAW,YAAQ,GAChCo/U,IAAW,CACPjB,GAAS,IACVm8tB,EAAUt6iC,UAAW,WAAO,GAC/Bo/U,IAAW,CACPjB,GAAS,IACVm8tB,EAAUt6iC,UAAW,aAAS,GACjCo/U,IAAW,CACPjB,GAAS,IACVm8tB,EAAUt6iC,UAAW,cAAU,GAClCo/U,IAAW,CACPd,GAAQ,CAAE/0U,EAAG,EAAGC,EAAG,GAAK0pxB,MACzBonR,EAAUt6iC,UAAW,gBAAY,GACpCo/U,IAAW,CACPd,GAAQ,IAAIyymB,IAAK,EAAG,GAAIA,MACzBupH,EAAUt6iC,UAAW,YAAQ,GACzBs6iC,CACX,CApC+B,CAoC7B92tB,IAOEipb,IAAyB,SAAUt2tB,GAEnC,SAASs2tB,IACL,OAAkB,OAAXt2tB,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAaA,OAhBAkmD,IAAUk3tB,EAASt2tB,GAInBipS,IAAW,CACPjB,IAAS,IACVsub,EAAQzswB,UAAW,cAAU,GAChCo/U,IAAW,CACPjB,IAAS,IACVsub,EAAQzswB,UAAW,gBAAY,GAClCo/U,IAAW,CACPjB,IAAS,IACVsub,EAAQzswB,UAAW,mBAAe,GACrCo/U,IAAW,CACPjB,IAAS,IACVsub,EAAQzswB,UAAW,mBAAe,GAC9ByswB,CACX,CAlB6B,CAkB3Bjpb,IAOE+2tB,IAAmC,SAAUpkgC,GAG7C,SAASokgC,EAAkB/ihC,EAAQuiG,EAAUlyH,EAAc9G,GACvD,OAAOo1C,EAAOnnD,KAAKK,KAAMmoC,EAAQuiG,EAAUlyH,EAAc9G,IAAY1R,IACzE,CA6MA,OAjNAkmD,IAAUglgC,EAAmBpkgC,GAK7BipS,IAAW,CACPjB,GAAS,KACVo8tB,EAAkBv6iC,UAAW,UAAM,GACtCo/U,IAAW,CACPjB,GAAS,cACVo8tB,EAAkBv6iC,UAAW,2BAAuB,GACvDo/U,IAAW,CACPjB,GAAS,OACVo8tB,EAAkBv6iC,UAAW,+BAA2B,GAC3Do/U,IAAW,CACPjB,GAAS,KACVo8tB,EAAkBv6iC,UAAW,mBAAe,GAC/Co/U,IAAW,CACPjB,GAAS,KACVo8tB,EAAkBv6iC,UAAW,cAAU,GAC1Co/U,IAAW,CACPjB,GAAS,KACVo8tB,EAAkBv6iC,UAAW,oBAAgB,GAChDo/U,IAAW,CACPjB,GAAS,KACVo8tB,EAAkBv6iC,UAAW,eAAW,GAC3Co/U,IAAW,CACPjB,GAAS,KACVo8tB,EAAkBv6iC,UAAW,aAAS,GACzCo/U,IAAW,CACPjB,IAAS,IACVo8tB,EAAkBv6iC,UAAW,qBAAiB,GACjDo/U,IAAW,CACPjB,GAAS,UACVo8tB,EAAkBv6iC,UAAW,mBAAe,GAC/Co/U,IAAW,CACPjB,GAAS,cACVo8tB,EAAkBv6iC,UAAW,iBAAa,GAC7Co/U,IAAW,CACPjB,GAAS,cACVo8tB,EAAkBv6iC,UAAW,sBAAkB,GAClDo/U,IAAW,CACPjB,GAAS,UACVo8tB,EAAkBv6iC,UAAW,wBAAoB,GACpDo/U,IAAW,CACPjB,GAAS,KACVo8tB,EAAkBv6iC,UAAW,YAAQ,GACxCo/U,IAAW,CACPjB,GAAS,IACVo8tB,EAAkBv6iC,UAAW,eAAW,GAC3Co/U,IAAW,CACPjB,GAAS,IACVo8tB,EAAkBv6iC,UAAW,iBAAa,GAC7Co/U,IAAW,CACPjB,GAAS,KACVo8tB,EAAkBv6iC,UAAW,mBAAe,GAC/Co/U,IAAW,CACPjB,GAAS,KACVo8tB,EAAkBv6iC,UAAW,uBAAmB,GACnDo/U,IAAW,CACPjB,GAAS,IACVo8tB,EAAkBv6iC,UAAW,mBAAe,GAC/Co/U,IAAW,CACPjB,IAAS,IACVo8tB,EAAkBv6iC,UAAW,oBAAgB,GAChDo/U,IAAW,CACPjB,GAAS,IACVo8tB,EAAkBv6iC,UAAW,sBAAkB,GAClDo/U,IAAW,CACPjB,GAAS,KACVo8tB,EAAkBv6iC,UAAW,oBAAgB,GAChDo/U,IAAW,CACPjB,GAAS,OACVo8tB,EAAkBv6iC,UAAW,qBAAiB,GACjDo/U,IAAW,CACPjB,GAAS,OACVo8tB,EAAkBv6iC,UAAW,mBAAe,GAC/Co/U,IAAW,CACPjB,GAAS,KACVo8tB,EAAkBv6iC,UAAW,oBAAgB,GAChDo/U,IAAW,CACPjB,GAAS,OACVo8tB,EAAkBv6iC,UAAW,mBAAe,GAC/Co/U,IAAW,CACPjB,GAAS,SACVo8tB,EAAkBv6iC,UAAW,6BAAyB,GACzDo/U,IAAW,CACPjB,GAAS,SACVo8tB,EAAkBv6iC,UAAW,8BAA0B,GAC1Do/U,IAAW,CACPjB,GAAS,OACVo8tB,EAAkBv6iC,UAAW,mBAAe,GAC/Co/U,IAAW,CACPjB,GAAS,KACVo8tB,EAAkBv6iC,UAAW,gBAAY,GAC5Co/U,IAAW,CACPd,GAAQ,CAAE/0U,EAAG,EAAGC,EAAG,GAAK8wiC,MACzBC,EAAkBv6iC,UAAW,cAAU,GAC1Co/U,IAAW,CACPjB,GAAS,IACVo8tB,EAAkBv6iC,UAAW,iBAAa,GAC7Co/U,IAAW,CACPjB,IAAU,IACXo8tB,EAAkBv6iC,UAAW,cAAU,GAC1Co/U,IAAW,CACPjB,GAAS,OACVo8tB,EAAkBv6iC,UAAW,eAAW,GAC3Co/U,IAAW,CACPjB,IAAS,IACVo8tB,EAAkBv6iC,UAAW,sBAAkB,GAClDo/U,IAAW,CACPjB,GAAS,KACVo8tB,EAAkBv6iC,UAAW,mBAAe,GAC/Co/U,IAAW,CACPjB,GAAS,KACVo8tB,EAAkBv6iC,UAAW,iBAAa,GAC7Co/U,IAAW,CACPjB,GAAS,CAAC,IACXo8tB,EAAkBv6iC,UAAW,cAAU,GAC1Co/U,IAAW,CACPjB,GAAS,KACVo8tB,EAAkBv6iC,UAAW,gBAAY,GAC5Co/U,IAAW,CACPjB,GAAS,SACVo8tB,EAAkBv6iC,UAAW,iBAAa,GAC7Co/U,IAAW,CACPjB,GAAS,KACVo8tB,EAAkBv6iC,UAAW,gBAAY,GAC5Co/U,IAAW,CACPjB,GAAS,cACVo8tB,EAAkBv6iC,UAAW,kBAAc,GAC9Co/U,IAAW,CACPjB,GAAS,SACVo8tB,EAAkBv6iC,UAAW,iBAAa,GAC7Co/U,IAAW,CACPjB,IAAS,IACVo8tB,EAAkBv6iC,UAAW,wBAAoB,GACpDo/U,IAAW,CACPjB,GAAS,UACVo8tB,EAAkBv6iC,UAAW,oBAAgB,GAChDo/U,IAAW,CACPjB,GAAS,cACVo8tB,EAAkBv6iC,UAAW,sBAAkB,GAClDo/U,IAAW,CACPjB,GAAS,KACVo8tB,EAAkBv6iC,UAAW,sBAAkB,GAClDo/U,IAAW,CACPjB,GAAS,IACVo8tB,EAAkBv6iC,UAAW,oBAAgB,GAChDo/U,IAAW,CACPjB,GAAS,KACVo8tB,EAAkBv6iC,UAAW,kCAA8B,GAC9Do/U,IAAW,CACPjB,GAAS,cACVo8tB,EAAkBv6iC,UAAW,wBAAoB,GACpDo/U,IAAW,CACPjB,GAAS,SACVo8tB,EAAkBv6iC,UAAW,iBAAa,GAC7Co/U,IAAW,CACPjB,GAAS,KACVo8tB,EAAkBv6iC,UAAW,qBAAiB,GACjDo/U,IAAW,CACPjB,GAAS,IACVo8tB,EAAkBv6iC,UAAW,iBAAa,GAC7Co/U,IAAW,CACPjB,GAAS,IACVo8tB,EAAkBv6iC,UAAW,gBAAY,GAC5Co/U,IAAW,CACPjB,GAAS,IACVo8tB,EAAkBv6iC,UAAW,iBAAa,GAC7Co/U,IAAW,CACPjB,GAAS,IACVo8tB,EAAkBv6iC,UAAW,gBAAY,GAC5Co/U,IAAW,CACPjB,IAAS,IACVo8tB,EAAkBv6iC,UAAW,cAAU,GAC1Co/U,IAAW,CACPjB,GAAS,wBACVo8tB,EAAkBv6iC,UAAW,yBAAqB,GACrDo/U,IAAW,CACPjB,GAAS,KACVo8tB,EAAkBv6iC,UAAW,0BAAsB,GACtDo/U,IAAW,CACPjB,GAAS,KACVo8tB,EAAkBv6iC,UAAW,wBAAoB,GACpDo/U,IAAW,CACPd,GAAQ,CAAE4mP,QAAQ,EAAOC,UAAU,EAAOq1e,aAAa,EAAOp1e,aAAa,GAASqnM,MACrF8tS,EAAkBv6iC,UAAW,YAAQ,GACxCo/U,IAAW,CACPd,GAAQ,CAAE/0U,EAAG,EAAGC,EAAG,GAAK8wiC,MACzBC,EAAkBv6iC,UAAW,mBAAe,GAC/Co/U,IAAW,CACPjB,GAAS,OACVo8tB,EAAkBv6iC,UAAW,kBAAc,GAC9Co/U,IAAW,CACPjB,GAAS,CAAC,UACXo8tB,EAAkBv6iC,UAAW,2BAAuB,GACvDo/U,IAAW,CACPjB,IAAS,IACVo8tB,EAAkBv6iC,UAAW,eAAW,GAC3Co/U,IAAW,CACPjB,IAAS,IACVo8tB,EAAkBv6iC,UAAW,kBAAc,GAC9Co/U,IAAW,CACPjB,GAAS,IACVo8tB,EAAkBv6iC,UAAW,oBAAgB,GAChDo/U,IAAW,CACPjB,IAAS,IACVo8tB,EAAkBv6iC,UAAW,uCAAmC,GAC5Du6iC,CACX,CAnNuC,CAmNrC/2tB,IAOEi3tB,IAAkC,SAAUtkgC,GAG5C,SAASskgC,EAAiBjjhC,EAAQuiG,EAAUlyH,EAAc9G,GACtD,OAAOo1C,EAAOnnD,KAAKK,KAAMmoC,EAAQuiG,EAAUlyH,EAAc9G,IAAY1R,IACzE,CAsHA,OA1HAkmD,IAAUklgC,EAAkBtkgC,GAK5BipS,IAAW,CACPjB,GAAS,KACVs8tB,EAAiBz6iC,UAAW,UAAM,GACrCo/U,IAAW,CACPjB,GAAS,KACVs8tB,EAAiBz6iC,UAAW,qBAAiB,GAChDo/U,IAAW,CACPjB,GAAS,KACVs8tB,EAAiBz6iC,UAAW,YAAQ,GACvCo/U,IAAW,CACPjB,GAAS,KACVs8tB,EAAiBz6iC,UAAW,aAAS,GACxCo/U,IAAW,CACPjB,GAAS,OACVs8tB,EAAiBz6iC,UAAW,+BAA2B,GAC1Do/U,IAAW,CACPjB,GAAS,cACVs8tB,EAAiBz6iC,UAAW,uBAAmB,GAClDo/U,IAAW,CACPjB,GAAS,UACVs8tB,EAAiBz6iC,UAAW,aAAS,GACxCo/U,IAAW,CACPjB,GAAS,YACVs8tB,EAAiBz6iC,UAAW,mBAAe,GAC9Co/U,IAAW,CACPjB,GAAS,KACVs8tB,EAAiBz6iC,UAAW,eAAW,GAC1Co/U,IAAW,CACPjB,GAAS,IACVs8tB,EAAiBz6iC,UAAW,eAAW,GAC1Co/U,IAAW,CACPjB,GAAS,IACVs8tB,EAAiBz6iC,UAAW,iBAAa,GAC5Co/U,IAAW,CACPjB,GAAS,IACVs8tB,EAAiBz6iC,UAAW,mBAAe,GAC9Co/U,IAAW,CACPd,GAAQ,CAAE/0U,EAAG,EAAGC,EAAG,GAAK8wiC,MACzBG,EAAiBz6iC,UAAW,cAAU,GACzCo/U,IAAW,CACPjB,GAAS,IACVs8tB,EAAiBz6iC,UAAW,iBAAa,GAC5Co/U,IAAW,CACPjB,GAAS,IACVs8tB,EAAiBz6iC,UAAW,kBAAc,GAC7Co/U,IAAW,CACPjB,IAAU,IACXs8tB,EAAiBz6iC,UAAW,cAAU,GACzCo/U,IAAW,CACPjB,GAAS,OACVs8tB,EAAiBz6iC,UAAW,eAAW,GAC1Co/U,IAAW,CACPjB,GAAS,KACVs8tB,EAAiBz6iC,UAAW,gBAAY,GAC3Co/U,IAAW,CACPjB,GAAS,cACVs8tB,EAAiBz6iC,UAAW,kBAAc,GAC7Co/U,IAAW,CACPjB,GAAS,SACVs8tB,EAAiBz6iC,UAAW,iBAAa,GAC5Co/U,IAAW,CACPjB,GAAS,SACVs8tB,EAAiBz6iC,UAAW,iBAAa,GAC5Co/U,IAAW,CACPjB,GAAS,IACVs8tB,EAAiBz6iC,UAAW,iBAAa,GAC5Co/U,IAAW,CACPjB,GAAS,IACVs8tB,EAAiBz6iC,UAAW,gBAAY,GAC3Co/U,IAAW,CACPjB,GAAS,IACVs8tB,EAAiBz6iC,UAAW,iBAAa,GAC5Co/U,IAAW,CACPjB,GAAS,IACVs8tB,EAAiBz6iC,UAAW,gBAAY,GAC3Co/U,IAAW,CACPjB,GAAS,IACVs8tB,EAAiBz6iC,UAAW,iBAAa,GAC5Co/U,IAAW,CACPjB,GAAS,YACVs8tB,EAAiBz6iC,UAAW,kBAAc,GAC7Co/U,IAAW,CACPjB,IAAS,IACVs8tB,EAAiBz6iC,UAAW,eAAW,GAC1Co/U,IAAW,CACPjB,IAAS,IACVs8tB,EAAiBz6iC,UAAW,kBAAc,GAC7Co/U,IAAW,CACPjB,IAAS,IACVs8tB,EAAiBz6iC,UAAW,iBAAa,GAC5Co/U,IAAW,CACPjB,IAAS,IACVs8tB,EAAiBz6iC,UAAW,kBAAc,GAC7Co/U,IAAW,CACPjB,IAAS,IACVs8tB,EAAiBz6iC,UAAW,kBAAc,GAC7Co/U,IAAW,CACPjB,IAAS,IACVs8tB,EAAiBz6iC,UAAW,mBAAe,GAC9Co/U,IAAW,CACPjB,IAAS,IACVs8tB,EAAiBz6iC,UAAW,qBAAiB,GAChDo/U,IAAW,CACPjB,IAAS,IACVs8tB,EAAiBz6iC,UAAW,oBAAgB,GAC/Co/U,IAAW,CACPjB,GAAS,KACVs8tB,EAAiBz6iC,UAAW,eAAW,GAC1Co/U,IAAW,CACPjB,MACDs8tB,EAAiBz6iC,UAAW,kCAA8B,GAC7Do/U,IAAW,CACPd,GAAQ,CAAE4mP,QAAQ,EAAOC,UAAU,EAAOq1e,aAAa,EAAOp1e,aAAa,GAASqnM,MACrFguS,EAAiBz6iC,UAAW,YAAQ,GACvCo/U,IAAW,CACPjB,MACDs8tB,EAAiBz6iC,UAAW,qBAAiB,GACzCy6iC,CACX,CA5HsC,CA4HpCj3tB,IAKEk3tB,IAAiC,WACjC,SAASA,IACLrrjC,KAAKsrjC,WAAa,EAClBtrjC,KAAKurjC,YAAc,EACnBvrjC,KAAKwrjC,eAAiB,GACtBxrjC,KAAKi/c,QAAU,GACfj/c,KAAKurjC,YAAc,EACnBvrjC,KAAKsrjC,WAAa,CACtB,CAuDA,OAtDA7rjC,OAAO4c,eAAegviC,EAAgB16iC,UAAW,SAAU,CAKvD+F,IAAK,WACD,OAAO1W,KAAKsrjC,UAChB,EAKA5xiC,IAAK,SAAUgE,GACX1d,KAAKsrjC,WAAa5tiC,CACtB,EACAvF,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAegviC,EAAgB16iC,UAAW,SAAU,CAKvD+F,IAAK,WACD,OAAO1W,KAAKurjC,UAChB,EAKA7xiC,IAAK,SAAUgE,GACX1d,KAAKurjC,WAAa7tiC,CACtB,EACAvF,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAegviC,EAAgB16iC,UAAW,UAAW,CAKxD+F,IAAK,WACD,OAAO1W,KAAKwrjC,cAChB,EAKA9xiC,IAAK,SAAUyvB,GACXnpC,KAAKwrjC,eAAiBrihC,CAC1B,EACAhxB,YAAY,EACZE,cAAc,IAEXgziC,CACX,CAhEqC,GH1bjCnlgC,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAazC2pS,IAA0C,SAAUxoJ,EAAYl/L,EAAQiE,EAAKkkB,GAC7E,IAA2HhvB,EAAvH6e,EAAIld,UAAUC,OAAQkgH,EAAIjjG,EAAI,EAAIhY,EAAkB,OAATmoB,EAAgBA,EAAO/wB,OAAOk+B,yBAAyBt1B,EAAQiE,GAAOkkB,EACrH,GAAuB,kBAAZuN,SAAoD,oBAArBA,QAAQiyT,SAAyB1sO,EAAIvlF,QAAQiyT,SAASzoJ,EAAYl/L,EAAQiE,EAAKkkB,QACpH,IAAK,IAAIrkB,EAAIo7L,EAAWnkM,OAAS,EAAG+I,GAAK,EAAGA,KAAS3K,EAAI+lM,EAAWp7L,MAAIm3G,GAAKjjG,EAAI,EAAI7e,EAAE8hH,GAAKjjG,EAAI,EAAI7e,EAAE6G,EAAQiE,EAAKg3G,GAAK9hH,EAAE6G,EAAQiE,KAASg3G,GAChJ,OAAOjjG,EAAI,GAAKijG,GAAK7jH,OAAO4c,eAAehU,EAAQiE,EAAKg3G,GAAIA,CAChE,EAQI0+R,IAAO,UACPypqB,IAAY,oBACZ7uG,IAAQ,gBACR8uG,IAAY,qBACZ3ihB,IAAU,kBACV4ihB,IAAU,kBAEVjhnB,IAAW,mBAEXkhnB,IAAW,qBACX1pqB,IAAM,QAON2pqB,IAA+B,SAAU/kgC,GAEzC,SAAS+kgC,IACL,OAAkB,OAAX/kgC,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAOA,OAVAkmD,IAAU2lgC,EAAe/kgC,GAIzBipS,IAAW,CACPjB,GAAS,SACV+8tB,EAAcl7iC,UAAW,SAAK,GACjCo/U,IAAW,CACPjB,GAAS,QACV+8tB,EAAcl7iC,UAAW,SAAK,GAC1Bk7iC,CACX,CAZmC,CAYjC13tB,IAKE23tB,IAAkC,SAAUhlgC,GAE5C,SAASglgC,IACL,OAAkB,OAAXhlgC,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAOA,OAVAkmD,IAAU4lgC,EAAkBhlgC,GAI5BipS,IAAW,CACPjB,GAAS,OACVg9tB,EAAiBn7iC,UAAW,aAAS,GACxCo/U,IAAW,CACPjB,GAAS,OACVg9tB,EAAiBn7iC,UAAW,aAAS,GACjCm7iC,CACX,CAZsC,CAYpC33tB,IAKE43tB,IAAiC,SAAUjlgC,GAE3C,SAASilgC,IACL,OAAkB,OAAXjlgC,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAUA,OAbAkmD,IAAU6lgC,EAAiBjlgC,GAI3BipS,IAAW,CACPjB,GAAS,WACVi9tB,EAAgBp7iC,UAAW,cAAU,GACxCo/U,IAAW,CACPjB,GAAS,MACVi9tB,EAAgBp7iC,UAAW,gBAAY,GAC1Co/U,IAAW,CACPjB,GAAS,SACVi9tB,EAAgBp7iC,UAAW,cAAU,GACjCo7iC,CACX,CAfqC,CAenC53tB,IAKE63tB,IAAwC,SAAUllgC,GAElD,SAASklgC,IACL,OAAkB,OAAXllgC,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAOA,OAVAkmD,IAAU8lgC,EAAwBllgC,GAIlCipS,IAAW,CACPd,GAAQ,CAAEj7I,OAAQ,SAAU//F,SAAU,IAAKi8O,OAAQ,QAAU67tB,MAC9DC,EAAuBr7iC,UAAW,YAAQ,GAC7Co/U,IAAW,CACPd,GAAQ,CAAEj7I,OAAQ,UAAW//F,SAAU,IAAKi8O,OAAQ,QAAU67tB,MAC/DC,EAAuBr7iC,UAAW,YAAQ,GACtCq7iC,CACX,CAZ4C,CAY1C73tB,IAYEhvC,IAAuB,SAAUr+P,GAQjC,SAASq+P,EAAMrmS,EAAS3J,GACpB,IAAI7V,EAAQwnD,EAAOnnD,KAAKK,KAAM8e,EAAS3J,IAAYnV,KAGnD,OAFAV,EAAM2sjC,gBAAkB,GACxB3sjC,EAAM64V,SAAU,EACT74V,CACX,CA0wBA,OAtxBA4mD,IAAUi/P,EAAOr+P,GAmBjBq+P,EAAMx0S,UAAUo8U,cAAgB,WAC5B,MAAO,OACX,EAMA5nC,EAAMx0S,UAAU0pV,eAAiB,WAC7B,OAAOr6V,KAAK26V,aAAa,GAC7B,EAMAx1C,EAAMx0S,UAAUymI,QAAU,WACtBp3I,KAAKu9R,KAAK,OACVv9R,KAAKmV,QAAQ+yQ,UAAU/0P,OAAOs4hC,KAC9BzguB,GAAkBhrV,KAAKmV,QAAS,CAAE,SAAY,GAAI,UAAW,KACxDu4f,GAAM1tgB,KAAKu+gB,aAAgB7Q,GAAM1tgB,KAAKu+gB,WAAW1oP,iBAClD71R,KAAKu+gB,WAAW1oP,cAAclhQ,aAAa30B,KAAKmV,QAASnV,KAAKu+gB,YAC9Dj0L,GAAOtqV,KAAKu+gB,YACZv+gB,KAAKu+gB,gBAAal7gB,GAEjBrD,KAAKksjC,kBACNplgC,EAAOn2C,UAAUymI,QAAQz3I,KAAKK,KAEtC,EAOAmlT,EAAMx0S,UAAUmoV,UAAY,WAExB94V,KAAKunV,SAAWN,GAAQM,SACL,UAAfvnV,KAAKwe,QACLxe,KAAKwe,MAASxe,KAAKunV,UAAY8jM,OAAO7sgB,MAAQ,IAAO,OAAS,SAE9Dkvf,GAAM1tgB,KAAKqI,UACXrI,KAAKqI,OAAS6oB,SAASzd,MAEvBzT,KAAKq4V,YAAcr4V,KAAKksjC,kBACxBlsjC,KAAKmV,QAAQ+yQ,UAAU90P,IAAI8uX,IAEnC,EAOA/8F,EAAMx0S,UAAUyJ,OAAS,WACrBpa,KAAKmsjC,YAAc,GACnBnsjC,KAAKikQ,WAAa,GAClBjkQ,KAAKu5/B,gBAAkB,KACvBv5/B,KAAKosjC,cAAgB,KACrBpsjC,KAAK45V,iBACL55V,KAAKqsjC,gBAAkBrsjC,KAAKmV,QAAQpU,SACxC,EAQAokT,EAAMx0S,UAAU01S,KAAO,SAAUimwB,GAC7B,IAAIC,EAMJ,GALK7+iB,GAAM4+iB,KACPtsjC,KAAKwsjC,gBAAgBF,GACrBC,EAAgB97gC,KAAKuL,MAAMvL,KAAK+mF,UAAU807B,IAC1C7i+B,GAAOzpF,KAAMA,KAAMssjC,IAEnB5+iB,GAAM1tgB,KAAKysjC,gBAAiB,CAC5BzsjC,KAAKysjC,eAAiBzsjC,KAAK0sjC,eAC3B,IAAIrkjC,EAAkC,kBAAjBrI,KAAKqI,OAAuB6oB,SAAS0I,cAAc55B,KAAKqI,QAC/C,kBAAjBrI,KAAKqI,OAAuBrI,KAAKqI,OAAS6oB,SAASzd,KAChE,GAAIi6f,GAAMrlgB,GACN,OAEmB,SAAnBA,EAAO+/B,QACPpoC,KAAKysjC,eAAetmjC,MAAM+jF,SAAW,SAGrClqF,KAAKysjC,eAAetmjC,MAAM+jF,SAAW,WACrC7hF,EAAOlC,MAAM+jF,SAAW,YAE5BlqF,KAAK2sjC,eAAe3sjC,KAAKkqF,UACzB7hF,EAAOqpB,YAAY1xB,KAAKysjC,eAC5B,CACIzsjC,KAAKksjC,kBAAoBlsjC,KAAKmV,QAAQ+yQ,UAAUh1P,SAAS,aACzDlzB,KAAK4sjC,aAAaN,IAGtBtsjC,KAAK6sjC,SAAW7sjC,KAAKc,cAAc,MAAO,CAAEC,UAAWihZ,IAAM7rX,GAAI42S,GAAY,WAC7E/sU,KAAK8sjC,iBACL9sjC,KAAK2ye,YAAY3ye,KAAK4vW,UAErB89J,GAAM1tgB,KAAKujC,WAA+B,KAAlBvjC,KAAKujC,SAAmBvjC,KAAK+sjC,mBAAqB/sjC,KAAKgtjC,oBAChFhtjC,KAAKitjC,cACLjtjC,KAAKk43B,iBACLl43B,KAAKgrc,UACLhrc,KAAKktjC,eAAeZ,GAChBtsjC,KAAKunV,UAAY8jM,OAAO7sgB,MAAQ,KAChC,IAAI0nV,GAAMlmW,KAAK6sjC,SAAU,CAAE56hB,MAAOjyhB,KAAKkyhB,aAAaryhB,KAAKG,QAExD0tgB,GAAM6+iB,KACP9i+B,GAAO8i+B,EAAe,CAAEp3iC,QAAS,CAACnV,KAAK6sjC,YAAa,GACpD7sjC,KAAKisjC,gBAAgB7/iC,KAAKmgjC,IAG1BvsjC,KAAKywW,SACLzwW,KAAKs6V,uBAEb,EASAn1C,EAAMx0S,UAAUw8iC,UAAY,SAAUh3hC,EAAIm2hC,GACtCtsjC,KAAK6sjC,SAAW7sjC,KAAKmV,QAAQykB,cAAc,IAAMzD,GACjDn2B,KAAKqmT,KAAKimwB,EACd,EACAnnwB,EAAMx0S,UAAUi8iC,aAAe,SAAUN,GACrCtsjC,KAAKysjC,eAAiBzsjC,KAAKmV,QAC3BnV,KAAK2sjC,eAAe3sjC,KAAKkqF,UAGpBwjb,GADO1tgB,KACKmV,QAAQ8+e,mBACrBj0f,KAAKitjC,cAETjtjC,KAAKgrc,UACLhrc,KAAKktjC,eAAeZ,EACxB,EACAnnwB,EAAMx0S,UAAUuhhB,aAAe,SAAU7xhB,GACrC,IAAIwsjC,EAAWp39B,GAAQp1F,EAAEmnW,cAAcn/V,OAAQ,IAAM25Y,IAAO,SAAWypqB,IAAY,KAC/EhvqB,EAAgBz8Y,KAAKmvJ,UAAUouI,KAAKvpF,OACnC05T,GAAMm/iB,KACkB,UAArBxsjC,EAAEkoW,gBACFvoW,KAAKmvJ,UAAUouI,KAAKvpF,OAAS,gBAC7Bh0M,KAAKotjC,UAAU,QAASP,IAEE,SAArBxsjC,EAAEkoW,iBACPvoW,KAAKmvJ,UAAUouI,KAAKvpF,OAAS,eAC7Bh0M,KAAKotjC,UAAU,QAASP,IAE5B7sjC,KAAKmvJ,UAAUouI,KAAKvpF,OAASyoM,EAErC,EACAt3F,EAAMx0S,UAAU67iC,gBAAkB,SAAUF,GACnC/g+B,GAAY+g+B,EAASv3iC,UAAa24f,GAAM1tgB,KAAKu5/B,kBAAoBv5/B,KAAK+U,UAAYu3iC,EAASv3iC,SAC5F/U,KAAKqtjC,uBAEJ9h+B,GAAY+g+B,EAAS/ohC,WAAcmqe,GAAM1tgB,KAAKosjC,gBAAkBpsjC,KAAKujC,WAAa+ohC,EAAS/ohC,UAC5FvjC,KAAKstjC,oBAEb,EACAnowB,EAAMx0S,UAAUgie,YAAc,SAAU/iI,GACpC,GAAIA,EAAU,CACV,IAAIj9U,GAAmC,IAA3Bi9U,EAASjlW,QAAQ,KAAc,IAAM,IACjDu9Q,GAAUloR,KAAK6sjC,SAAUj9sB,EAASj9U,MAAMA,GAAQ,IAC5C3yB,KAAKysjC,gBACLvkyB,GAAUloR,KAAKysjC,eAAgB78sB,EAASj9U,MAAMA,GAAQ,GAE9D,CACJ,EACAwyR,EAAMx0S,UAAUm8iC,eAAiB,WACV,UAAf9sjC,KAAKwe,MACLxe,KAAK6sjC,SAAS1mjC,MAAMqY,MAAQkvT,GAAW1tU,KAAKwe,OAExB,SAAfxe,KAAKwe,MACVxe,KAAKysjC,eAAevkyB,UAAU90P,IAAIs4hC,MAGlC1rjC,KAAK6sjC,SAAS1mjC,MAAMqY,MAAQkvT,GAAW1tU,KAAKwe,OAC5Cxe,KAAKysjC,eAAevkyB,UAAU/0P,OAAOu4hC,MAEzC1rjC,KAAK6sjC,SAAS1mjC,MAAMyiJ,OAAS8kL,GAAW1tU,KAAK4oJ,OACjD,EACAu8J,EAAMx0S,UAAUq8iC,kBAAoB,WAChChtjC,KAAKutjC,SAASvtjC,KAAK6sjC,SAAU7sjC,KAAKujC,SAAU,WAChD,EAMA4hR,EAAMx0S,UAAU4kgB,eAAiB,SAAU3zgB,GACvC,GAAI5B,KAAK+sb,oBAAqB,CAC1B,IAAIx3Z,EAAO64U,GAAmBC,iBAK9B5kR,GAAOl0D,EAAMA,EAJK,CACdurD,QAAQ,EACRy/Q,OAAQ,OAGZvgW,KAAKsgS,QAAQ,qBAAsB/qQ,GAC/BA,EAAKurD,SAAW4sb,GAAMn4e,EAAKgrU,QAC3B3+V,EAAQ2zB,EAAKgrU,OAAO3+V,GAEd2zB,EAAKurD,SACXl/E,EAAQwsW,GAAmBE,eAAe/4U,EAAM3zB,GAExD,CACA,OAAOA,CACX,EAQAujT,EAAMx0S,UAAU4sR,KAAO,SAAUpoR,GAC7BnV,KAAKotjC,UAAU,GAAIj4iC,EACvB,EACAgwS,EAAMx0S,UAAUy8iC,UAAY,SAAU573B,EAAiBr8K,GACnD,IAAIu4f,GAAM1tgB,KAAKysjC,iBAA6D,IAA1CzsjC,KAAKysjC,eAAet2nB,kBAGtD,GAAuB,kBAAZhhb,GAAoC,QAAZA,EAM/Bu4f,GAAMv4f,KACNA,EAAWnV,KAAKwtjC,YAAcxtjC,KAAKysjC,eAAex4jB,iBAAmBj0f,KAAKysjC,eAAenihC,mBAE7FtqC,KAAKytjC,aAAat4iC,EAASq8K,QARvB,IAAK,IAAIrlL,EAAI,EAAGA,EAAInM,KAAKysjC,eAAet2nB,kBAAmBhqb,IACvDnM,KAAKytjC,aAAaztjC,KAAKysjC,eAAe3mjC,SAASqG,GAAIqlL,EAQ/D,EACA2zH,EAAMx0S,UAAU48iC,SAAW,SAAU5juB,EAAK/nV,EAAO6njB,GAG7C,IAAI7pC,EACA8tiB,EACAC,EACA56sB,EAYJ,GAjBAnxW,EAA2B,kBAAXA,EAAsB5B,KAAKu1gB,eAAe3zgB,GAASA,EAO/DmxW,EADAppB,EAAIzhE,UAAUh1P,SAAS0p7B,KACP588B,KAAKmV,QAAQghB,GAAK,QAE7BwzT,EAAIzhE,UAAUh1P,SAAS61gB,KACZ/oiB,KAAKmV,QAAQghB,GAAK,UAGlBn2B,KAAKmV,QAAQghB,GAAK,YAIjCu3e,GADgBggjB,EAAZ,YAATjkgB,EAA+BzpjB,KAAKu5/B,gBAA4Bv5/B,KAAKosjC,eAGjE,OADAziuB,EAAIj4T,YAAYg8hC,EAAQvqhC,WAAU,IAC3BwmT,EAEX,IACI,GAAIz4T,SAAS1gB,iBAAiB5O,GAAOwB,OAAS,EAAG,CAC7C,IAAIq6B,EAAO,KACE,UAATgshB,IACAhshB,EAAOvM,SAAS0I,cAAch4B,GAC9B+nV,EAAIj4T,YAAY+L,GAChBA,EAAKt3B,MAAMi+J,QAAU,IAEzB,IAAIwp5B,EAAMlgjB,GAAMjwe,GAAQiwhC,EAAUjwhC,EAAK0F,WAAU,GAExC,YAATsmhB,EAAqBzpjB,KAAKu5/B,gBAAkBq0D,EAAM5tjC,KAAKosjC,cAAgBwB,CAC3E,MAEIhuiB,EAAapsF,GAAiB5xb,EAEtC,CACA,MAAOvB,KACHu/gB,EAAapsF,GAAiB5xb,EAGlC,CACA,IAAK8rgB,GAAMkS,GACP,GAAK5/gB,KAAKksjC,iBAGL,CAEDyB,EAAW/tiB,EAAW,CAAC,EAAG5/gB,KAAMypjB,EAAM12M,GADvB,EAEnB,MALI46sB,EAAW/tiB,EAAW,CAAC,EAAG5/gB,KAAMypjB,EAAM,MAAM,GAkBpD,OAXK/7C,GAAMigjB,MAAaA,EAASvqjC,OAAS,IAAOsqgB,GAAMigjB,EAAS,GAAGvlhC,UAAgC,IAApBulhC,EAASvqjC,OAQrD,IAA1BumV,EAAIwsG,oBACTxsG,EAAIzgT,UAAYtnC,GARhB,GAAGgP,MAAMjR,KAAKgujC,GAAUtnjC,SAAQ,SAAU6G,GACjCwggB,GAAMxggB,EAAGk7B,WACVl7B,EAAG/G,MAAMi+J,QAAU,IAEvBulL,EAAIj4T,YAAYxkB,EACpB,IAKGy8U,CACX,EACAxkC,EAAMx0S,UAAUk9iC,cAAgB,SAAU5pzB,GACjCypQ,GAAM1tgB,KAAKikQ,WAAWA,MACvBI,cAAcrkQ,KAAKikQ,WAAWA,WACvBjkQ,KAAKikQ,WAAWA,IAEtBypQ,GAAM1tgB,KAAKmsjC,YAAYlozB,MACxBI,cAAcrkQ,KAAKmsjC,YAAYlozB,GAAYA,mBACpCjkQ,KAAKmsjC,YAAYlozB,GAEhC,EACAkhD,EAAMx0S,UAAUm9iC,qBAAuB,SAAU1yW,GACzCA,GAAYp7sB,KAAKysjC,eAAevkyB,UAAUh1P,SAAS,iBACnDo3T,GAAOtqV,KAAKysjC,eAEpB,EACAtnwB,EAAMx0S,UAAUo9iC,kBAAoB,SAAU3yW,GAC1C,IAAI97sB,EAAQU,KACRA,KAAKksjC,iBACLlsjC,KAAKysjC,eAAiB,MAGtBzsjC,KAAKgujC,gBACLhjuB,GAAkBhrV,KAAKysjC,eAAgB,CAAE,KAAQ,GAAI,IAAO,KAC5DzsjC,KAAK8tjC,qBAAqB1yW,GAC1Bp7sB,KAAKysjC,eAAiB,KACtBzsjC,KAAKgujC,gBAAiB,IAGtB,CAAChsqB,IAAO,YACJA,IAAO,aACPA,IAAO,eACPA,IAAO,gBACPA,IAAO,iBACPA,IAAO,cACPA,IAAO,eAAe37Y,SAAQ,SAAU6wC,IACnCw2d,GAAMpugB,EAAMmtjC,iBAAmBntjC,EAAMmtjC,eAAevkyB,UAAUh1P,SAASgkB,IACxE53C,EAAMmtjC,eAAevkyB,UAAU/0P,OAAO+jB,EAE9C,IACAl3C,KAAK8tjC,qBAAqB1yW,GAC1Bp7sB,KAAKysjC,eAAiB,MAErB/+iB,GAAM1tgB,KAAKu5/B,kBACZv5/B,KAAKqtjC,uBAEJ3/iB,GAAM1tgB,KAAKosjC,gBACZpsjC,KAAKstjC,qBAEb,EACAnowB,EAAMx0S,UAAU08iC,qBAAuB,WACnCrtjC,KAAKu5/B,gBAAgBpz/B,MAAMi+J,QAAU,OACrClzI,SAASzd,KAAKie,YAAY1xB,KAAKu5/B,iBAC/Bv5/B,KAAKu5/B,gBAAkB,IAC3B,EACAp0sB,EAAMx0S,UAAU28iC,mBAAqB,WACjCttjC,KAAKosjC,cAAcjmjC,MAAMi+J,QAAU,OACnClzI,SAASzd,KAAKie,YAAY1xB,KAAKosjC,eAC/BpsjC,KAAKosjC,cAAgB,IACzB,EACAjnwB,EAAMx0S,UAAUu7iC,eAAiB,WAC7B,OAAQp/uB,MAAc9sU,KAAK6yU,gBAC/B,EACA1tB,EAAMx0S,UAAU88iC,aAAe,SAAUZ,EAAUr73B,GAG/C,IAFA,IACI863B,EADAhtjC,EAAQU,KAEHmM,EAAI,EAAGA,EAAInM,KAAKisjC,gBAAgB7ojC,OAAQ+I,IACzCnM,KAAKisjC,gBAAgB9/iC,GAAGgJ,QAAQ,KAAO03iC,IACvCP,EAAWtsjC,KAAKisjC,gBAAgB9/iC,GAChCnM,KAAKisjC,gBAAgBz2hC,OAAOrpB,EAAG,IAGvC,IAAI8hjC,EAAmB,CACnBnviC,QAAS9e,KACT8gF,QAAQ,EACRl0E,KAAM4kL,EACNr8K,QAAS03iC,EACTJ,eAAgBzsjC,KAAKysjC,gBAErByB,EAAclujC,KAAKmvJ,UAAUouI,KAC7B0kB,EAAU,CACVhuM,SAAUi68B,EAAYj68B,SAAUvvG,KAAMwpjC,EAAYl62B,OAAQw9I,eAAgB08tB,EAAYh+tB,QAEtFjsF,EAAa13O,SAASsgiC,EAAS12hC,GAAGxD,MAAM,UAAU,GAAI,IACtDw7hC,EAAanujC,KAAKksjC,iBAAmB,CACrCptiC,QAASwtiC,EACTG,eAAgBzsjC,KAAKysjC,gBACrB,CACA3tiC,QAASwtiC,EACTG,eAAgBzsjC,KAAKysjC,eACrBH,SAAUtsjC,MAEdA,KAAKsgS,QAAQ,cAAe2txB,GAAkB,SAAUG,GAC/CA,EAAqBtt+B,SACjB4sb,GAAMpugB,EAAM6sjC,YAAYlozB,KAAiBypQ,GAAMm/iB,EAASjzhC,cAAc,IAAM8wa,QAC7Eprc,EAAM6sjC,YAAYlozB,GAAYoqzB,YAAYlojC,MAAMqY,MAAQ,MAE5DyjS,EAAQ7oQ,IAAM,WACV95C,EAAMuujC,cAAc5pzB,GACf3kQ,EAAM4sjC,mBAAoBx+iB,GAAM4+iB,IACjChiuB,GAAOuiuB,GAEXvtjC,EAAMghS,QAAQ,QAAS6txB,GACwB,IAA3C7ujC,EAAMmtjC,eAAet2nB,mBACrB72b,EAAMyujC,mBAAkB,GAE5BG,EAAc,KACdjswB,EAAU,IACd,EACA,IAAIguC,GAAUhuC,GAASA,QAAQ4qwB,GAEvC,GACJ,EACA1nwB,EAAMx0S,UAAUo8iC,iBAAmB,WAC/B/sjC,KAAK0r3B,UACL1r3B,KAAK8r3B,WACL9r3B,KAAK+iT,aACL/iT,KAAKqze,eACT,EACAluL,EAAMx0S,UAAUq6b,QAAU,WACtB1/b,GAAWtL,KAAK6sjC,SAAU,CAAE,KAAQ,SACxC,EACA1nwB,EAAMx0S,UAAUg8iC,eAAiB,SAAUz1gC,GACnCl3C,KAAKksjC,mBAGJrqjC,MAAM6uC,WAAWwG,EAAI91B,KAAQvf,MAAM6uC,WAAWwG,EAAIr4B,IAKnD7e,KAAKysjC,eAAevkyB,UAAU90P,IAAI4uX,IAAO,IAAM9qW,EAAIr4B,EAAE/H,WAAW4J,cAAgB,IAAMw2B,EAAI91B,EAAEtK,WAAW4J,gBAJvG1gB,KAAKgujC,gBAAiB,EACtBhjuB,GAAkBhrV,KAAKysjC,eAAgB,CAAE,KAAQ/+uB,GAAWx2R,EAAI91B,GAAI,IAAOssT,GAAWx2R,EAAIr4B,MAKlG,EACAsmS,EAAMx0S,UAAUun3B,eAAiB,WAC7B,GAAKl43B,KAAKm43B,gBAAV,CAKAn43B,KAAK+zZ,KAAO,IAAIxuD,GAAK,QADJ,CAAE/pN,MAAO,SACgBx7I,KAAKD,QAC/CC,KAAK+zZ,KAAKruD,UAAU1lW,KAAKD,QACzB,IAAIsghB,EAAiBrghB,KAAK+zZ,KAAKhuD,YAAY,SACvCy5R,EAAWx/nB,KAAKc,cAAc,MAAO,CAAEC,UAAW6qjC,IAAW,YAAaniuB,MAAO,CAAEgyK,SAAU,IAAK,aAAc4kB,EAAgB,KAAQ,YAC5IrghB,KAAK6sjC,SAAS3kyB,UAAU90P,IAAI,6BAC5BpzB,KAAK6sjC,SAASn7hC,YAAY8tmB,EAR1B,CASJ,EACAr6U,EAAMx0S,UAAUs8iC,YAAc,WAC1B,GAAIjtjC,KAAK2ta,QAAU,EAAG,CAClB,IAAIx3Y,EAAK5J,SAASvsB,KAAK6sjC,SAAS12hC,GAAGxD,MAAM,UAAU,GAAI,IACvD3yB,KAAKikQ,WAAW9tO,GAAMnF,OAAOoF,WAAWp2B,KAAKytjC,aAAa5tjC,KAAKG,KAAMA,KAAK6sjC,UAAW7sjC,KAAK2ta,SAC1F3ta,KAAKmsjC,YAAYh2hC,GAAM,CAAEm4hC,QAAS,KAAMrqzB,WAAY,KAAMsqzB,YAAa,KACnEp5iC,QAAS,KAAMq5iC,UAAW,KAAMH,YAAa,MACjDrujC,KAAKmsjC,YAAYh2hC,GAAIo4hC,YAAc79gC,WAAW1wC,KAAK2ta,QAAU,IAC7D3ta,KAAKmsjC,YAAYh2hC,GAAIm4hC,SAAU,IAAI7sjC,MAAOC,UAAY1B,KAAKmsjC,YAAYh2hC,GAAIo4hC,YAC3EvujC,KAAKmsjC,YAAYh2hC,GAAIhhB,QAAUnV,KAAK6sjC,SAChC7sjC,KAAKyujC,gBAAkB,IACvB510B,GAAazlN,IAAIpzB,KAAK6sjC,SAAU,YAAa7sjC,KAAK0ujC,iBAAiB7ujC,KAAKG,KAAMm2B,IAC9E0iN,GAAazlN,IAAIpzB,KAAK6sjC,SAAU,aAAc7sjC,KAAK2ujC,qBAAqB9ujC,KAAKG,KAAMm2B,IACnFn2B,KAAKmsjC,YAAYh2hC,GAAIq4hC,UAAYxujC,KAAKikQ,WAAW9tO,IAEjDn2B,KAAK4ujC,kBACL5ujC,KAAK6ujC,eAAiB7ujC,KAAKc,cAAc,MAAO,CAAEC,UAAW2pc,MAC7D1qc,KAAK6sjC,SAASl4hC,aAAa30B,KAAK6ujC,eAAgB7ujC,KAAK6sjC,SAAS/mjC,SAAS,IAEvE9F,KAAKmsjC,YAAYh2hC,GAAI8tO,WAAaC,YAAYlkQ,KAAK8ujC,kBAAkBjvjC,KAAKG,KAAMA,KAAKmsjC,YAAYh2hC,IAAM,IACvGn2B,KAAKmsjC,YAAYh2hC,GAAIk4hC,YAAcrujC,KAAK6ujC,eAEhD,CACJ,EACA1pwB,EAAMx0S,UAAU+9iC,iBAAmB,SAAUv4hC,GACzCE,aAAar2B,KAAKmsjC,YAAYh2hC,GAAIq4hC,WAClCnqzB,cAAcrkQ,KAAKmsjC,YAAYh2hC,GAAI8tO,YACnCjkQ,KAAKmsjC,YAAYh2hC,GAAIm4hC,QAAU,EAE1B5gjB,GADU1tgB,KAAKmsjC,YAAYh2hC,GAAIhhB,QAChBykB,cAAc,IAAM8wa,QACpC1qc,KAAKmsjC,YAAYh2hC,GAAIk4hC,YAAYlojC,MAAMqY,MAAQ,KAEvD,EACA2mS,EAAMx0S,UAAUg+iC,qBAAuB,SAAUx4hC,GAC7C,IAAIs7T,EAAWzxV,KAAKmsjC,YAAYh2hC,GAC5B02hC,EAAWp7tB,EAASt8U,QACxBs8U,EAAS+8tB,UAAYx9hC,OAAOoF,WAAWp2B,KAAKytjC,aAAa5tjC,KAAKG,KAAM6sjC,GAAW7sjC,KAAKyujC,iBACpFh9tB,EAAS88tB,YAAc79gC,WAAW1wC,KAAKyujC,gBAAkB,IACzDh9tB,EAAS68tB,SAAU,IAAI7sjC,MAAOC,UAAY+vV,EAAS88tB,YAC9C7gjB,GAAMm/iB,EAASjzhC,cAAc,IAAM8wa,QACpCj5G,EAASxtF,WAAaC,YAAYlkQ,KAAK8ujC,kBAAkBjvjC,KAAKG,KAAMyxV,GAAW,IAEvF,EACAtsC,EAAMx0S,UAAUm+iC,kBAAoB,SAAU3C,GAC1C,IAAIhiJ,GAAegiJ,EAAYmC,SAAW,IAAI7sjC,MAAOC,WAAcyqjC,EAAYoC,YAAe,IAC9FpkJ,EAAwC,QAA3Bnq6B,KAAK+ujC,kBAA8B,IAAM5kJ,EAAaA,EACnEgiJ,EAAYkC,YAAYlojC,MAAMqY,MAAQ2r5B,EAAa,GACvD,EACAhlnB,EAAMx0S,UAAU+62B,QAAU,WACtB,IAAIh+W,GAAM1tgB,KAAKihR,OAA8B,IAArBjhR,KAAKihR,KAAK79Q,OAAlC,CAGA,IAAIg+Y,EAAUphZ,KAAKc,cAAc,MAAO,CAAEC,UAAW86Q,wBAAqB77Q,KAAKihR,OAC/EjhR,KAAK6sjC,SAAS3kyB,UAAU90P,IAAI,uBAC5BpzB,KAAK6sjC,SAASn7hC,YAAY0vX,EAH1B,CAIJ,EACAj8F,EAAMx0S,UAAUm72B,SAAW,WACvB,IAAIp+W,GAAM1tgB,KAAK8U,OAAf,CAGA,IAAIk6iC,EAAWhvjC,KAAKc,cAAc,MAAO,CAAEC,UAAW678B,MACtDoyG,EAAWhvjC,KAAKutjC,SAASyB,EAAUhvjC,KAAK8U,MAAO,SAC/C,IAAIm6iC,EAAejvjC,KAAKc,cAAc,MAAO,CAAEC,UAAW4qjC,MAC1DsD,EAAav9hC,YAAYs9hC,GACzBhvjC,KAAK6sjC,SAASn7hC,YAAYu9hC,EAL1B,CAMJ,EACA9pwB,EAAMx0S,UAAUoyS,WAAa,WACzB,IAAIglJ,EAAa/nc,KAAKc,cAAc,MAAO,CAAEC,UAAWgoiB,MACpDp/M,EAAM3pV,KAAKmV,QACf,GAAIu4f,GAAM1tgB,KAAK+U,UAA6B,KAAjB/U,KAAK+U,QAAgB,CAC5C,IAAIgrgB,EAA0D,KAA9C//gB,KAAKmV,QAAQ+zB,UAAU74B,QAAQ,MAAO,IACtD,IAAKs5U,EAAI7jV,SAAS1C,OAAS,GAAK28gB,MAAgBp2L,EAAIr/S,oBAAqBq/S,EAAIr/S,kBAAkB49O,UAAUh1P,SAAS8uX,MAAQ,CACtHhiZ,KAAK2ub,SAAWz9Z,SAASD,yBAEzB,IADA,IAAIi+hC,EAAYlvjC,KAAKc,cAAc,OACF,IAA1B6oV,EAAIxgT,WAAW/lC,QAClBpD,KAAK2ub,SAASj9Z,YAAY1xB,KAAKmV,QAAQg0B,WAAW,IAEtD4+Z,EAAWr2a,YAAY1xB,KAAK2ub,UAC5B,GAAG/9a,MAAMjR,KAAKooc,EAAWjic,UAAUO,SAAQ,SAAUsjV,GACjDuluB,EAAUx9hC,YAAYi4T,EAAIxmT,WAAU,GACxC,IACAnjC,KAAK+U,QAAUm6iC,EACflvjC,KAAKmvjC,uBAAuBpnnB,EAChC,CACJ,KAEkC,kBAAlB/nc,KAAK+U,SAA0B24f,GAAM1tgB,KAAK+U,QAAQqzB,UAM1D2/Z,EAAa/nc,KAAKutjC,SAASxlnB,EAAY/nc,KAAK+U,QAAS,WACrD/U,KAAKmvjC,uBAAuBpnnB,KAN5BA,EAAWr2a,YAAY1xB,KAAK+U,SAC5B/U,KAAK+U,QAAU/U,KAAK+U,QAAQouB,WAAU,GACtCnjC,KAAKmvjC,uBAAuBpnnB,GAOxC,EACA5iJ,EAAMx0S,UAAUw+iC,uBAAyB,SAAUh6iC,GAC/C,GAAInV,KAAK6sjC,SAASr8iC,iBAAiB,IAAMm7iC,KAASvojC,OAAS,EACvDpD,KAAK6sjC,SAASjzhC,cAAc,IAAM+xhC,KAASj6hC,YAAYvc,OAEtD,CACD,IAAI85iC,EAAejvjC,KAAKc,cAAc,MAAO,CAAEC,UAAW4qjC,MAC1DsD,EAAav9hC,YAAYvc,GACzBnV,KAAK6sjC,SAASn7hC,YAAYu9hC,EAC9B,CACJ,EACA9pwB,EAAMx0S,UAAU0ie,cAAgB,WAC5B,IAAI/ze,EAAQU,KACRovjC,EAAqBpvjC,KAAKc,cAAc,MAAO,CAAEC,UAvpB1C,oBAwpBX,GAAG6P,MAAMjR,KAAKK,KAAKomJ,SAAS//I,SAAQ,SAAUgpjC,GAC1C,IAAI3hjB,GAAM2hjB,EAAUn68B,OAApB,CAGA,IAAIo68B,EAAShwjC,EAAMwB,cAAc,UACjCwujC,EAAOt6hC,aAAa,OAAQ,WACxB04e,GAAM2hjB,EAAUn68B,MAAM06P,WAAiD,IAApCy/sB,EAAUn68B,MAAM06P,SAASxsW,UAC5DisjC,EAAUn68B,MAAM06P,SAAW,aAAoBtwW,EAAMswW,UAEzD0/sB,EAAOpnyB,UAAU90P,IAAI,WACrB,IAAI0wP,GAAOuryB,EAAUn68B,MAAOo68B,GACvB5hjB,GAAM2hjB,EAAUrsyB,QAAuC,oBAArBqsyB,EAAUrsyB,OAC7CnqC,GAAazlN,IAAIk8hC,EAAQ,QAASD,EAAUrsyB,OAEhDosyB,EAAmB19hC,YAAY49hC,EAX/B,CAYJ,IACIF,EAAmBj5nB,kBAAoB,GACvCn2b,KAAKmvjC,uBAAuBC,EAEpC,EACAjqwB,EAAMx0S,UAAUu8iC,eAAiB,SAAUZ,GACvC,IAAIhtjC,EAAQU,KACRuvjC,EAAkBvvjC,KAAKksjC,iBAAmB,CAC1CptiC,QAASwtiC,EACTn3iC,QAASnV,KAAK6sjC,SACd/r+B,QAAQ,GACR,CACAhiE,QAASwtiC,EACTA,SAAUtsjC,KACVmV,QAASnV,KAAK6sjC,SACd/r+B,QAAQ,GAEZ9gF,KAAKsgS,QAAQ,aAAcivxB,GAAiB,SAAUC,GAClD,GAAKA,EAAoB1u+B,QAgBpB,GAAIxhF,EAAM4sjC,iBAAkB,CAC7B,IAAIjozB,EAAa13O,SAASjtB,EAAMutjC,SAAS12hC,GAAGxD,MAAM,UAAU,GAAI,IAChErzB,EAAMuujC,cAAc5pzB,GACpBqmF,GAAOhrV,EAAMutjC,UACkC,IAA3CvtjC,EAAMmtjC,eAAet2nB,mBACrB72b,EAAMyujC,mBAEd,OAtBSzujC,EAAM4sjC,mBACP5sjC,EAAMutjC,SAAS1mjC,MAAMi+J,QAAU,QAE/B9kK,EAAMkujC,aAA0D,IAA3ClujC,EAAMmtjC,eAAet2nB,kBAC1C72b,EAAMmtjC,eAAe93hC,aAAar1B,EAAMutjC,SAAUvtjC,EAAMmtjC,eAAe3mjC,SAAS,IAE1ExG,EAAM4sjC,kBACZ5sjC,EAAMmtjC,eAAe/6hC,YAAYpyB,EAAMutjC,UAE3C5kyB,GAAY,CAAC3oR,EAAMutjC,UA9rBT,yBA+rBVh00B,GAAazlN,IAAI9zB,EAAMutjC,SAAU,QAASvtjC,EAAMwrZ,aAAcxrZ,GAC9Du5O,GAAazlN,IAAI9zB,EAAMutjC,SAAU,UAAWvtjC,EAAM84d,eAAgB94d,GAClEA,EAAMmtjC,eAAetmjC,MAAMwoI,OAAS4tQ,GAAiBj9Y,EAAMmtjC,gBAAkB,GAC7EntjC,EAAMmwjC,aAAanwjC,EAAMutjC,SAAUP,EAU3C,GACJ,EACAnnwB,EAAMx0S,UAAUm6Y,aAAe,SAAUzqZ,GACrC,IAAIf,EAAQU,KACPA,KAAKksjC,kBACN7rjC,EAAEiO,kBAEN,IAAIjG,EAAShI,EAAEgI,OACXwkjC,EAAWp39B,GAAQptF,EAAQ,IAAM25Y,KACjCunP,EAAYvpoB,KAAKksjC,iBAAmB,CACpC/2iC,QAAS03iC,EAAU/r+B,QAAQ,EAAO4u+B,cAAc,EAAOlotB,cAAennW,GACtE,CACA8U,QAAS03iC,EAAU/r+B,QAAQ,EAAO4u+B,cAAc,EAAOlotB,cAAennW,EAAGisjC,SAAUtsjC,MAEnF2vjC,EAActnjC,EAAO6/Q,UAAUh1P,SAAS04hC,KAC5C5rjC,KAAKsgS,QAAQ,QAASipW,GAAW,SAAUqmb,IAClCD,IAAgBC,EAAe9u+B,QAAW8u+B,EAAeF,eAC1DpwjC,EAAMmujC,aAAaZ,EAAU,QAErC,GACJ,EACA1nwB,EAAMx0S,UAAUynd,eAAiB,SAAU/3d,GACvC,GAAIA,EAAEgI,OAAO6/Q,UAAUh1P,SAAS04hC,OACb,KAAdvrjC,EAAEC,SAAgC,KAAdD,EAAEC,SAAiB,CACxC,IACIusjC,EAAWp39B,GADFp1F,EAAEgI,OACgB,IAAM25Y,KACrChiZ,KAAKytjC,aAAaZ,EAAU,MAChC,CACJ,EACA1nwB,EAAMx0S,UAAU8+iC,aAAe,SAAU5C,EAAUP,GAC/C,IAAIhtjC,EAAQU,KACR6vjC,EAAc7vjC,KAAKmvJ,UAAUk3J,KAC7BpE,EAAU,CACVhuM,SAAU478B,EAAY578B,SAAUvvG,KAAMmrjC,EAAY772B,OAAQw9I,eAAgBq+tB,EAAY3/tB,QAEtF4/tB,EAAY9vjC,KAAKksjC,iBAAmB,CACpCptiC,QAASwtiC,EACTn3iC,QAASnV,KAAK6sjC,UACd,CACA/tiC,QAASwtiC,EACTA,SAAUtsjC,KACVmV,QAASnV,KAAK6sjC,UAElB5qwB,EAAQkvC,MAAQ,WACZ07tB,EAAS1mjC,MAAMi+J,QAAU,EAC7B,EACA69I,EAAQ7oQ,IAAM,WACV95C,EAAMghS,QAAQ,OAAQwvxB,EAC1B,EACA,IAAI7/tB,GAAUhuC,GAASA,QAAQ4qwB,EACnC,EACA1nwB,EAAMx0S,UAAU+7iC,aAAe,WAE3B,OADA1sjC,KAAKmV,QAAQ+yQ,UAAU90P,IAAIq4hC,KACpBzrjC,KAAKmV,OAChB,EAUAgwS,EAAMx0S,UAAU+7U,kBAAoB,SAAUiF,EAASC,GAEnD,IADA,IAAI9kV,EAAY9M,KAAKmV,QACZ7F,EAAK,EAAGgmC,EAAK71C,OAAO8E,KAAKotV,GAAUriV,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CAE9D,GACS,cAFEgmC,EAAGhmC,GAINqiV,EAAQ0G,UAAYvrV,EAAUo7Q,UAAU90P,IAAI8uX,KAAOp1Y,EAAUo7Q,UAAU/0P,OAAO+uX,IAG1F,CACJ,EACAnyD,IAAW,CACPjB,GAAS,UACV3pC,EAAMx0S,UAAW,aAAS,GAC7Bo/U,IAAW,CACPjB,GAAS,SACV3pC,EAAMx0S,UAAW,cAAU,GAC9Bo/U,IAAW,CACPjB,GAAS,OACV3pC,EAAMx0S,UAAW,aAAS,GAC7Bo/U,IAAW,CACPjB,GAAS,OACV3pC,EAAMx0S,UAAW,eAAW,GAC/Bo/U,IAAW,CACPjB,IAAS,IACV3pC,EAAMx0S,UAAW,2BAAuB,GAC3Co/U,IAAW,CACPjB,GAAS,OACV3pC,EAAMx0S,UAAW,YAAQ,GAC5Bo/U,IAAW,CACPjB,GAAS,OACV3pC,EAAMx0S,UAAW,gBAAY,GAChCo/U,IAAW,CACPjB,GAAS,OACV3pC,EAAMx0S,UAAW,gBAAY,GAChCo/U,IAAW,CACPjB,IAAS,IACV3pC,EAAMx0S,UAAW,mBAAe,GACnCo/U,IAAW,CACPjB,IAAS,IACV3pC,EAAMx0S,UAAW,uBAAmB,GACvCo/U,IAAW,CACPjB,IAAS,IACV3pC,EAAMx0S,UAAW,uBAAmB,GACvCo/U,IAAW,CACPjB,GAAS,MACV3pC,EAAMx0S,UAAW,eAAW,GAC/Bo/U,IAAW,CACPjB,GAAS,QACV3pC,EAAMx0S,UAAW,yBAAqB,GACzCo/U,IAAW,CACPjB,GAAS,MACV3pC,EAAMx0S,UAAW,uBAAmB,GACvCo/U,IAAW,CACPd,GAAQ,CAAC,EAAG+8tB,MACb7mwB,EAAMx0S,UAAW,iBAAa,GACjCo/U,IAAW,CACPd,GAAQ,CAAC,EAAG48tB,MACb1mwB,EAAMx0S,UAAW,gBAAY,GAChCo/U,IAAW,CACPb,GAAW,CAAC,CAAC,GAAI48tB,MAClB3mwB,EAAMx0S,UAAW,eAAW,GAC/Bo/U,IAAW,CACPjB,GAAS,OACV3pC,EAAMx0S,UAAW,cAAU,GAC9Bo/U,IAAW,CACP94T,MACDkuR,EAAMx0S,UAAW,eAAW,GAC/Bo/U,IAAW,CACP94T,MACDkuR,EAAMx0S,UAAW,0BAAsB,GAC1Co/U,IAAW,CACP94T,MACDkuR,EAAMx0S,UAAW,iBAAa,GACjCo/U,IAAW,CACP94T,MACDkuR,EAAMx0S,UAAW,YAAQ,GAC5Bo/U,IAAW,CACP94T,MACDkuR,EAAMx0S,UAAW,kBAAc,GAClCo/U,IAAW,CACP94T,MACDkuR,EAAMx0S,UAAW,mBAAe,GACnCo/U,IAAW,CACP94T,MACDkuR,EAAMx0S,UAAW,aAAS,GAC7Bo/U,IAAW,CACP94T,MACDkuR,EAAMx0S,UAAW,aAAS,GAC7Bw0S,EAAQ4qC,IAAW,CACfT,IACDnqC,EAEP,CAxxB2B,CAwxBzB/jT,KAOF,SAAWi1iC,GAqEPA,EAAahwvB,KApDb,SAActxS,EAASnI,EAAM+ga,GACzB,IAAIoipB,EAQAC,EACJ,GARI9+hC,SAAS0I,cAAc,IAAM6xhC,KAC7BsE,EAAwB7+hC,SAAS0I,cAAc,IAAM6xhC,MAGrDsE,EAAwBjvjC,GAAc,MAAO,CAAE,UAAakhZ,IAAO,IAAMypqB,IAAY,kBACrFv6hC,SAASzd,KAAKie,YAAYq+hC,IAGL,kBAAbh7iC,EAAuB,CAC/B,IAAI66V,OAAW,EACX3uF,OAAO,EACX,GAAKysP,GAAM9ggB,GAqBPgjW,EAAW,GACX3uF,EAAO,QArBP,OAAQr0Q,GACJ,IAAK,UACDgjW,EAAW,kBACX3uF,EAAO,uBACP,MACJ,IAAK,UACD2uF,EAAW,kBACX3uF,EAAO,uBACP,MACJ,IAAK,QACD2uF,EAAW,iBACX3uF,EAAO,qBACP,MACJ,IAAK,cACD2uF,EAAW,eACX3uF,EAAO,oBAQnB+uyB,EAAmB,CACfj7iC,QAASA,EACT66V,SAAUA,EACV3uF,KAAMA,EACN0sJ,QAAU+/F,GAAM//F,GAAqB,IAAVA,EAEnC,MAEIqipB,EAAmBj7iC,EAEvB,IAAIu3iC,EAAW,IAAInnwB,IAAM6qwB,GAGzB,OAFA1D,EAAS5ztB,SAASq3tB,GAClBzD,EAASjmwB,OACFimwB,CACX,CAEH,CAtED,CAsEGjW,MAAiBA,IAAe,CAAC,IIp9BpC,ICFW4Z,IAaAC,IA+BAC,IAoDAC,IA8CAC,IAoCAC,IDhLPC,IAAgC,WAOhC,SAASA,EAAeC,EAAQ/hgC,GAC5B,IAAInvD,EAAQU,KACZA,KAAKywjC,kBAAoB,IACzBzwjC,KAAK0wjC,4BAA8B,GACnC1wjC,KAAK2wjC,gBAAkB,IACvB3wjC,KAAK4wjC,kBAAmB,EACxB5wjC,KAAK6wjC,aAAc,EACnB7wjC,KAAK8wjC,sBAAwB,GAC7B9wjC,KAAK+wjC,oBAAqB,EAC1B/wjC,KAAKgxjC,qBAAuB,IAI5BhxjC,KAAKixjC,4BAA6B,EAIlCjxjC,KAAKkxjC,oBAAqB,EAI1BlxjC,KAAKmxjC,yBAA0B,EAI/BnxjC,KAAKoxjC,gBAAiB,EAItBpxjC,KAAKqxjC,iBAAkB,EAIvBrxjC,KAAKsxjC,yBAA0B,EAE/BtxjC,KAAKuxjC,qBAAuB,SAAUt4iC,GAElC,IAAI8/hC,EAAe9/hC,EAAK5Q,OAAOmte,MAC/B,GAA6B,OAAzBv8d,EAAK5Q,OAAOmte,MAAM,GAAa,CAC/B,IAAIwjkB,EAAeD,EAAa,GAChC,GAAIC,EAAc,CACd15iC,EAAM2piC,UAAUuoB,gBAAgBxY,GAEhC,IAAIyY,EAAmBzY,EAAapsiC,KACpC,GAAIosiC,EAAat0iC,KAAKiuB,MAAM,SAASvvB,OAAS,GAAKqujC,EAAiBjngC,SAAS,SACrEm7b,EAAS,IAAIjK,YACVC,cAAcq9jB,GAErBrzjB,EAAOhmU,OAAS,SAAUt/K,GACtB,GAAIA,EAAE86B,cAActQ,OAAQ,CACxB,IAAI6miC,EAAarxjC,EAAE86B,cAActQ,OAAO8H,MAAM,KAAK,GAE/Cg/hC,EAAiB3r7B,KAAK0r7B,GAC1B,GAAIC,EAAgB,CAEhB,IAAIhroB,EAAWl2Y,KAAKuL,MAAM21gC,GACtBC,EAAkBjroB,EAASkroB,cAAcpyjC,OAAO8E,KAAKoib,EAASkroB,eAAe,IAC5EpyjC,OAAO8E,KAAKoib,EAASkroB,eAAezujC,QAAU,IAAOwujC,EAAgBE,sBAAwBF,EAAgBG,wBAA0BH,EAAgBI,oBAAsBJ,EAAgBK,kBAAoBL,EAAgBM,wBAA2BN,EAAgBzL,iBAAmByL,EAAgBzL,gBAAgB,GAAGzX,SACnUpviC,EAAM4piC,cAAcipB,iBAAkB,EACtC7yjC,EAAM4piC,cAAckpB,kBAAkBzroB,EAAU2snB,IAAqB+e,QAGrE/yjC,EAAM4piC,cAAcipB,iBAAkB,EACtC7yjC,EAAM4piC,cAAckpB,kBAAkBV,EAAYpe,IAAqB+e,MAE/E,CACJ,CACJ,OAEC,GAAIrZ,EAAat0iC,KAAKiuB,MAAM,SAASvvB,OAAS,IAAMqujC,EAAiBjngC,SAAS,SAAWvxC,EAAK5Q,OAAO27V,OAAOx5S,SAAS,SAAU,CAChI,IAAIm7b,KAAS,IAAIjK,YACVC,cAAcq9jB,GAErBrzjB,EAAOhmU,OAAS,SAAUt/K,GACtB,GAAIA,EAAE86B,cAActQ,OAAQ,CACxB,IAAI6miC,EAAarxjC,EAAE86B,cAActQ,OAAO8H,MAAM,KAAK,GAE9BqzG,KAAK0r7B,IAGtBpyjC,EAAM4piC,cAAckpB,kBAAkBV,EAAYpe,IAAqBgf,MAAM,EAErF,CACJ,CACJ,KACK,CAED,GADAhzjC,EAAM2piC,UAAUspB,iBAAiBvZ,EAAc15iC,EAAM2piC,UAAU59hB,UAAUtlK,YAAY,kBACjFj5B,KACcxtU,EAAM2piC,UAAU8E,gBAAgB13oB,kBAAkB,gBAAiB,0BACzEp7R,MAAK,SAAUr5H,GACnBtC,EAAM4piC,cAAcspB,kCAAkC5wjC,EAC1D,SAGAtC,EAAM4piC,cAAcspB,kCAAkClzjC,EAAM2piC,UAAU59hB,UAAUtlK,YAAY,iBAEpG,CACJ,CACA9sV,EAAK5Q,OAAOzG,MAAQ,EACxB,CACJ,EAKA5B,KAAKyyjC,oBAAsB,SAAU17hC,GACjCA,EAAMqrH,WAAWj8I,MAAM+yiB,OAAS,UACpC,EAKAl5iB,KAAK0yjC,qBAAuB,SAAU37hC,GAClC,IAAIivK,EAAQ,MACZA,EAAQ1mM,GACFoe,OAAS,CACXsoL,EAAM2s3B,eAAehwwB,WAAa5rR,EAAMsC,QACxC2sK,EAAM2s3B,eAAe/vwB,UAAY7rR,EAAMuC,QACvC0sK,EAAM2s3B,eAAev/xB,aAAaruB,aAEtCzlQ,EAAMszjC,UAAY77hC,EAAMsC,QACxB2sK,EAAM8pd,QAAS,EACf9pd,EAAMmr3B,yBAA0B,EAChCnr3B,EAAMkj2B,cAAc+E,gBAAgB9niC,MAAM+yiB,OAAS,WAC/ClzW,EAAM6s3B,0BACN7s3B,EAAM6s3B,wBAAwB1sjC,MAAM+yiB,OAAS,WAErD,EAKAl5iB,KAAK8yjC,uBAAyB,SAAU/7hC,GACpC,IAAIivK,EAAQ,MACZA,EAAQ1mM,GACFwwpB,QAAS,EACX9pd,EAAMmr3B,yBAA2Bnr3B,EAAM6s3B,0BACvC7s3B,EAAMkj2B,cAAc+E,gBAAgB9niC,MAAM+yiB,OAAS,UACnDlzW,EAAM6s3B,wBAAwB1sjC,MAAM+yiB,OAAS,UAC7ClzW,EAAMmr3B,yBAA0B,GAEhCnr3B,EAAM+s3B,uBAAyB/s3B,EAAM+q3B,qBACrCzxjC,EAAM0zjC,uBAAuBj8hC,GAC7BivK,EAAM+q3B,oBAAqB,EAEnC,EAKA/wjC,KAAKizjC,qBAAuB,SAAUl8hC,GAClC,IAAIivK,EAAQ,KAEZ,GADAA,EAAQ1mM,GACHA,EAAM4piC,cAAcgqB,4BAA6B,CAClD,IAAI7qjC,EAAS0uB,EAAM1uB,OAKnB,GAHI/I,EAAM4piC,cAAciqB,mBAAmB9qjC,IACvC0uB,EAAM1oB,iBAEN23L,EAAM8pd,QAAUxwpB,EAAMuzjC,wBAAyB,CAI3C,IAmBIr0iC,EACAs4G,EArBR,GAAIx3H,EAAM2piC,UAAU5wsB,WAEZ75U,EADelf,EAAMszjC,UAAY77hC,EAAMsC,QAChB2sK,EAAMtoL,OAAO,KACpCo5G,EAAWlzH,KAAKiG,MAAMvK,EAAM8zjC,oBAAsB,MAElD50iC,EAAQs4G,GAERt4G,EAAQlf,EAAMmxjC,oBACdjyiC,EAAQlf,EAAMmxjC,mBAElBzq3B,EAAM2s3B,eAAexsjC,MAAMy9H,MAAQplH,EAAQ,KAC3CwnL,EAAM6s3B,wBAAwB1sjC,MAAMqY,MAAQA,EAAQ,KACpDwnL,EAAMqt3B,eAAeltjC,MAAMqY,MAAQA,EAAQ,KAC3CwnL,EAAMst3B,uBAAuBntjC,MAAMqY,MAAQA,EAAQ,KACnDwnL,EAAMut3B,sBAAsBptjC,MAAMqY,MAAQA,EAAQ,KAElDwnL,EAAMkj2B,cAAc+E,gBAAgB9niC,MAAMy9H,MAAQoiE,EAAMwt3B,yBAA2B,KACnFxt3B,EAAMkj2B,cAAc+E,gBAAgB9niC,MAAMw9H,KAAOqiE,EAAMyt3B,0BAA4B,UAG/Ej1iC,EAAQuY,EAAMsC,QAAU2sK,EAAMtoL,OAAO,KACrCo5G,EAAWlzH,KAAKiG,MAAMvK,EAAM8zjC,oBAAsB,MAElD50iC,EAAQs4G,GAERt4G,EAAQlf,EAAMmxjC,oBACdjyiC,EAAQlf,EAAMmxjC,mBAElBzq3B,EAAM2s3B,eAAexsjC,MAAMw9H,KAAOnlH,EAAQ,KAC1CwnL,EAAM0t3B,SAASvtjC,MAAMw9H,KAAOnlH,EAAQwnL,EAAM0q3B,4BAA8B,KACxE1q3B,EAAM6s3B,wBAAwB1sjC,MAAMqY,MAAQA,EAAQ,KACpDwnL,EAAMqt3B,eAAeltjC,MAAMqY,MAAQA,EAAQ,KAC3CwnL,EAAMst3B,uBAAuBntjC,MAAMqY,MAAQA,EAAQ,KACnDwnL,EAAMut3B,sBAAsBptjC,MAAMqY,MAAQA,EAAQ,KAElDwnL,EAAMkj2B,cAAc+E,gBAAgB9niC,MAAMw9H,KAAOqiE,EAAMwt3B,yBAA2B,KAClFxt3B,EAAMkj2B,cAAc+E,gBAAgB9niC,MAAMy9H,MAAQoiE,EAAMyt3B,0BAA4B,KAGxF,IAAIE,EAAe3t3B,EAAMij2B,UAAU9zhC,QAAQ4vP,YAAc/+D,EAAMwt3B,yBAA2Bxt3B,EAAMyt3B,0BAChGzt3B,EAAMkj2B,cAAc+E,gBAAgB9niC,MAAMqY,MAAQm1iC,EAAc,KAChE3t3B,EAAMkj2B,cAAcsQ,cAAcrziC,MAAMqY,MAAQwnL,EAAMkj2B,cAAc+E,gBAAgBlpyB,YAAc,KAClG/+D,EAAMij2B,UAAU2qB,oBAAoBC,mBAAmB7t3B,EAAMkj2B,cAAc2C,kBAAoB,GAC/F7l2B,EAAMkj2B,cAAc4qB,kBACf9t3B,EAAM+t3B,eAAejujC,SAAS,GAAGoiR,UAAUh1P,SAAS,+BACrD8yK,EAAMij2B,UAAU+qB,mBAAmBC,0BAE3C,MACSju3B,EAAM+q3B,oBAAsBzxjC,EAAMyzjC,uBACvCzzjC,EAAM40jC,4BAA4Bn9hC,EAE1C,CACJ,EAKA/2B,KAAKm0jC,mBAAqB,SAAUp9hC,GAChC,IAAIivK,EAAQ,MACZA,EAAQ1mM,GACF80jC,oCACNpu3B,EAAMqu3B,mCACNru3B,EAAMsu3B,8BACV,EAKAt0jC,KAAKu0jC,mBAAqB,SAAUx9hC,GAChCz3B,EAAMk1jC,aAAa5qhC,YAActqC,EAAM2piC,UAAU59hB,UAAUtlK,YAAY,mBACvEzmW,EAAM+zjC,eAAer+hC,aAAa,aAAc,wBAChD,IAAIgxK,EAAQ,KACZA,EAAQ1mM,EACR,IAEIm1jC,EAFW3nvB,KAEextU,EAAM2piC,UAAU9zhC,QAAQykB,cAAc,uBAAyB1I,SAASg8T,eAAe5tV,EAAM2piC,UAAU9zhC,QAAQghB,GAAK,kBA2BlJ,GA1BIs+hC,IACAzu3B,EAAMqu3B,mCACNI,EAAatujC,MAAMi+J,QAAU,QAEjClzI,SAASg8T,eAAe5tV,EAAM2piC,UAAU9zhC,QAAQghB,GAAK,mBAAmBhwB,MAAMi+J,QAAU,OACpF4hC,EAAM6s3B,0BAC8C,SAAhD7s3B,EAAM6s3B,wBAAwB1sjC,MAAMi+J,QAChC4hC,EAAMor3B,gBACNpr3B,EAAMqr3B,iBAAkB,EACxBrr3B,EAAM0u3B,iCACNp1jC,EAAMq1jC,kCAGN3u3B,EAAMqr3B,iBAAkB,EACxBrr3B,EAAMou3B,oCACN90jC,EAAMg1jC,iCAIVh1jC,EAAM+zjC,eAAejpjC,QACrB47L,EAAMqr3B,iBAAkB,EACxBrr3B,EAAM0u3B,iCACNp1jC,EAAMq1jC,kCAGd3u3B,EAAMor3B,gBAAiB,EACnB9xjC,EAAM2piC,UAAUgb,kBAAoB3kjC,EAAM2piC,UAAUgb,iBAAiB2Q,oBAAqB,CAE1F,IAAI/oB,EAAoBt/gC,SAASjtB,EAAM2piC,UAAUgb,iBAAiB2Q,oBAAoB/oB,mBACtFvsiC,EAAM2piC,UAAUgb,iBAAiB2Q,oBAAoBC,kBAAkBhpB,EAC3E,CACJ,EAKA7riC,KAAK80jC,kBAAoB,WACrB,IAAI9u3B,EAAQ,KACZA,EAAQ1mM,EACR,IAAI+zjC,EAAiBniiC,SAASg8T,eAAe5tV,EAAM2piC,UAAU9zhC,QAAQghB,GAAK,mBACtE08hC,EAA0B3hiC,SAASg8T,eAAe5tV,EAAM2piC,UAAU9zhC,QAAQghB,GAAK,4BAC/E83gC,EAAkB/8gC,SAASg8T,eAAe5tV,EAAM2piC,UAAU9zhC,QAAQghB,GAAK,oBACvEqjhC,EAAgBtohC,SAASg8T,eAAe5tV,EAAM2piC,UAAU9zhC,QAAQghB,GAAK,sBA4BzE,GA3BAjF,SAASg8T,eAAe5tV,EAAM2piC,UAAU9zhC,QAAQghB,GAAK,mBAAmBhwB,MAAMi+J,QAAU,QACxFlzI,SAASg8T,eAAe5tV,EAAM2piC,UAAU9zhC,QAAQghB,GAAK,mBAAmBhwB,MAAMi+J,QAAU,OACxFlzI,SAASg8T,eAAe5tV,EAAM2piC,UAAU9zhC,QAAQghB,GAAK,0BAA0BhwB,MAAMi+J,QAAU,OAC/FlzI,SAASg8T,eAAe5tV,EAAM2piC,UAAU9zhC,QAAQghB,GAAK,2BAA2BhwB,MAAMi+J,QAAU,OAChGiv5B,EAAenryB,UAAU90P,IAAI,eAC7By/hC,EAAwB3qyB,UAAU90P,IAAI,eAClCy/hC,IACI7s3B,EAAM6q3B,aACNgC,EAAwB1sjC,MAAMi+J,QAAU,OACxC6p4B,EAAgB9niC,MAAMqY,MAAQwnL,EAAMij2B,UAAU9zhC,QAAQ4vP,YAAc,KACpEy0yB,EAAcrziC,MAAMqY,MAAQyvhC,EAAgBlpyB,YAAc,KAC1DkpyB,EAAgB9niC,MAAMw9H,KAAOkv7B,EAAwB9tzB,YAAc,KACnE/+D,EAAMkj2B,cAAc4qB,kBACpB9t3B,EAAM6q3B,aAAc,IAGpBwC,EAAejpjC,QACfyojC,EAAwB1sjC,MAAMi+J,QAAU,QAExC6p4B,EAAgB9niC,MAAMqY,MAASwnL,EAAMij2B,UAAU9zhC,QAAQ4vP,YAAc8tzB,EAAwB9tzB,YAAe,KAC5Gy0yB,EAAcrziC,MAAMqY,MAAQyvhC,EAAgBlpyB,YAAc,KAC1DkpyB,EAAgB9niC,MAAMw9H,KAAQkv7B,EAAwB9tzB,YAAe,KACrE/+D,EAAMkj2B,cAAc4qB,kBACpB9t3B,EAAMij2B,UAAU2qB,oBAAoBC,mBAAmB7t3B,EAAMkj2B,cAAc2C,kBAAoB,GAC/F7l2B,EAAM6q3B,aAAc,IAGxBvxjC,EAAM2piC,UAAUgb,kBAAoB3kjC,EAAM2piC,UAAUgb,iBAAiB2Q,oBAAqB,CAE1F,IAAI/oB,EAAoBt/gC,SAASjtB,EAAM2piC,UAAUgb,iBAAiB2Q,oBAAoB/oB,mBACtFvsiC,EAAM2piC,UAAUgb,iBAAiB2Q,oBAAoBC,kBAAkBhpB,EAC3E,CACJ,EAKA7riC,KAAK+0jC,sBAAwB,SAAUh+hC,GACnCz3B,EAAM01jC,8BACV,EAKAh1jC,KAAKi1jC,sBAAwB,SAAUl+hC,GACnC,IAAIivK,EAAQ,MACZA,EAAQ1mM,GACFoe,OAAS,CACXsoL,EAAMkv3B,oBAAoBvywB,WAAa5rR,EAAMsC,QAC7C2sK,EAAMkv3B,oBAAoBtywB,UAAY7rR,EAAMuC,QAC5C0sK,EAAMyt3B,2BAEVn0jC,EAAMyxjC,oBAAqB,EAC3BzxjC,EAAMszjC,UAAY77hC,EAAMsC,QACxB2sK,EAAMkj2B,cAAc+E,gBAAgB9niC,MAAM+yiB,OAAS,WACnDlzW,EAAMkv3B,oBAAoB/ujC,MAAM+yiB,OAAS,UAC7C,EAKAl5iB,KAAKk0jC,4BAA8B,SAAUn9hC,GACzC,IAqBQvY,EACAs4G,EAtBJkvE,EAAQ,MACZA,EAAQ1mM,EAGJA,EAAM2piC,UAAU5wsB,aACZ75U,EAAQuY,EAAMsC,QAAU2sK,EAAMtoL,OAAO,KACrCo5G,EAAWlzH,KAAKiG,MAAMvK,EAAM8zjC,oBAAsB,MAElD50iC,EAAQs4G,GAERt4G,EAAQlf,EAAM0xjC,uBACdxyiC,EAAQlf,EAAM0xjC,sBAElBhr3B,EAAMkv3B,oBAAoB/ujC,MAAMw9H,KAAOnlH,EAAQ,KAC/CwnL,EAAM+s3B,sBAAsB5sjC,MAAMqY,MAAQA,EAAQ,KAElDwnL,EAAMkj2B,cAAc+E,gBAAgB9niC,MAAMw9H,KAAOqiE,EAAMyt3B,0BAA4B,KACnFzt3B,EAAMkj2B,cAAc+E,gBAAgB9niC,MAAMy9H,MAAQoiE,EAAMwt3B,yBAA2B,QAI/Eh1iC,EADelf,EAAMszjC,UAAY77hC,EAAMsC,QAChB2sK,EAAMtoL,OAAO,KACpCo5G,EAAWlzH,KAAKiG,MAAMvK,EAAM8zjC,oBAAsB,MAElD50iC,EAAQs4G,GAERt4G,EAAQlf,EAAM0xjC,uBACdxyiC,EAAQlf,EAAM0xjC,sBAElBhr3B,EAAMkv3B,oBAAoB/ujC,MAAMy9H,MAAQplH,EAAQ,KAChDwnL,EAAM+s3B,sBAAsB5sjC,MAAMqY,MAAQA,EAAQ,KAElDwnL,EAAMkj2B,cAAc+E,gBAAgB9niC,MAAMy9H,MAAQoiE,EAAMyt3B,0BAA4B,KACpFzt3B,EAAMkj2B,cAAc+E,gBAAgB9niC,MAAMw9H,KAAOqiE,EAAMwt3B,yBAA2B,MAEtFl0jC,EAAM2piC,UAAU9p6B,WAAWg27B,4BAA4BC,4BAEvD,IAAIzB,EAAe3t3B,EAAMij2B,UAAU9zhC,QAAQ4vP,YAAc/+D,EAAMwt3B,yBAA2Bxt3B,EAAMyt3B,0BAChGzt3B,EAAMkj2B,cAAc+E,gBAAgB9niC,MAAMqY,MAAQm1iC,EAAc,KAChE3t3B,EAAMkj2B,cAAcsQ,cAAcrziC,MAAMqY,MAAQwnL,EAAMkj2B,cAAc+E,gBAAgBlpyB,YAAc,KAClG/+D,EAAMkj2B,cAAc4qB,iBACxB,EAKA9zjC,KAAKgzjC,uBAAyB,SAAUj8hC,GACpC,IAAIivK,EAAQ,MACZA,EAAQ1mM,GACEyzjC,wBACN/s3B,EAAMkj2B,cAAc+E,gBAAgB9niC,MAAM+yiB,OAAS,UACnDlzW,EAAM+s3B,sBAAsB5sjC,MAAM+yiB,OAAS,UAEnD,EACAl5iB,KAAKipiC,UAAYunB,EACjBxwjC,KAAKkpiC,cAAgBz6+B,CACzB,CAqgCA,OAhgCA8hgC,EAAe5/iC,UAAU0kjC,yBAA2B,YAC3CpuuB,GAAQM,UAAYvnV,KAAKipiC,UAAUqf,kBACpCtojC,KAAKs1jC,wBAILt1jC,KAAK+yjC,sBAAwBjyjC,GAAc,MAAO,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,gBAAiBp1B,UAAW,mCAChHf,KAAKkpiC,cAAcqsB,cAAc7jiC,YAAY1xB,KAAK+yjC,uBAC9C/yjC,KAAKipiC,UAAU5wsB,UACfr4V,KAAK+yjC,sBAAsB5sjC,MAAMw9H,KAAO,MAGxC3jI,KAAK+yjC,sBAAsB5sjC,MAAMy9H,MAAQ,MAE7C5jI,KAAK+yjC,sBAAsB5sjC,MAAMwuR,OAAS,MAC1C30R,KAAKw1jC,mCACLx1jC,KAAK+yjC,sBAAsB5sjC,MAAMi+J,QAAU,OAE3CpkK,KAAKy1jC,yBAA2B30jC,GAAc,MAAO,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,4BAA6Bp1B,UAAW,oCAC/Hf,KAAK+yjC,sBAAsBrhiC,YAAY1xB,KAAKy1jC,0BAC5Cz1jC,KAAK01jC,kBAAkB11jC,KAAK+yjC,uBAC5B/yjC,KAAK21jC,sBAAsB31jC,KAAK+yjC,uBAExC,EACAxC,EAAe5/iC,UAAU2kjC,qBAAuB,WAC7BxovB,MAoBX9sU,KAAK41jC,eAAiB51jC,KAAKipiC,UAAU9zhC,QAAQykB,cAAc,yBAC3D55B,KAAK61jC,uBAAyB71jC,KAAKipiC,UAAU9zhC,QAAQykB,cAAc,kCACnE55B,KAAK6yjC,wBAA0B7yjC,KAAKipiC,UAAU9zhC,QAAQykB,cAAc,mCACpE55B,KAAKszjC,uBAAyBtzjC,KAAKipiC,UAAU9zhC,QAAQykB,cAAc,kCACnE55B,KAAKqzjC,eAAiBrzjC,KAAKipiC,UAAU9zhC,QAAQykB,cAAc,yBAC3D55B,KAAKuzjC,sBAAwBvzjC,KAAKipiC,UAAU9zhC,QAAQykB,cAAc,iCAClE55B,KAAKw0jC,aAAex0jC,KAAKipiC,UAAU9zhC,QAAQykB,cAAc,uBACzD55B,KAAK2yjC,eAAiB3yjC,KAAKipiC,UAAU9zhC,QAAQykB,cAAc,2BAxB3D55B,KAAK41jC,eAAiB90jC,GAAc,MAAO,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,kBAAmBp1B,UAAW,uBAAwB0oV,MAAO,CAAE,KAAQ,UAAW,mBAAoB,WAAY,SAAY,KAAM,aAAc,qBAE/NzpV,KAAK61jC,uBAAyB/0jC,GAAc,MAAO,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,0BAA2Bp1B,UAAW,kCAE3Hf,KAAK6yjC,wBAA0B/xjC,GAAc,MAAO,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,2BAA4Bp1B,UAAW,mCAE7Hf,KAAKszjC,uBAAyBxyjC,GAAc,MAAO,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,0BAA2Bp1B,UAAW,kCAE3Hf,KAAKqzjC,eAAiBvyjC,GAAc,MAAO,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,kBAAmBp1B,UAAW,uBAAwB0oV,MAAO,CAAE,SAAY,OAExJzpV,KAAKuzjC,sBAAwBzyjC,GAAc,MAAO,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,yBAA0Bp1B,UAAW,iCAEzHf,KAAKw0jC,aAAe1zjC,GAAc,MAAO,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,gBAAiBp1B,UAAW,qBAAsB0oV,MAAO,CAAE,SAAY,QAElJzpV,KAAK2yjC,eAAiB7xjC,GAAc,MAAO,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,kBAAmBp1B,UAAW,0BAY/Gf,KAAKkpiC,cAAcqsB,cAAc7jiC,YAAY1xB,KAAK41jC,gBAC9C51jC,KAAKipiC,UAAU5wsB,YACfr4V,KAAK41jC,eAAezvjC,MAAM4mkB,SAAW,QACrC/skB,KAAK41jC,eAAezvjC,MAAMy9H,MAAQ,MAClC5jI,KAAK41jC,eAAezvjC,MAAM+jF,SAAW,YAEzClqF,KAAKkpiC,cAAcqsB,cAAc7jiC,YAAY1xB,KAAK61jC,wBAC9C71jC,KAAKipiC,UAAU5wsB,UACfr4V,KAAK61jC,uBAAuB3tyB,UAAU90P,IAAI,WAG1CpzB,KAAK61jC,uBAAuB3tyB,UAAU90P,IAAI,UAE1CpzB,KAAKipiC,UAAU5wsB,UACfr4V,KAAK6yjC,wBAAwB3qyB,UAAU90P,IAAI,WAG3CpzB,KAAK6yjC,wBAAwB3qyB,UAAU90P,IAAI,UAE/CpzB,KAAKkpiC,cAAcqsB,cAAc7jiC,YAAY1xB,KAAK6yjC,yBAC9C7yjC,KAAKipiC,UAAU5wsB,YACfr4V,KAAKszjC,uBAAuBntjC,MAAMy9H,MAAQ,OAE9C5jI,KAAK6yjC,wBAAwBnhiC,YAAY1xB,KAAKszjC,wBAC1CtzjC,KAAKipiC,UAAU5wsB,YACfr4V,KAAKqzjC,eAAeltjC,MAAMy9H,MAAQ,MAClC5jI,KAAKqzjC,eAAeltjC,MAAM8wG,UAAY,OAE1Cj3G,KAAK6yjC,wBAAwBnhiC,YAAY1xB,KAAKqzjC,gBAC1CrzjC,KAAKipiC,UAAU5wsB,YACfr4V,KAAKuzjC,sBAAsBptjC,MAAMy9H,MAAQ,OAEzC5jI,KAAKipiC,UAAU5wsB,UACfr4V,KAAKw0jC,aAAatsyB,UAAU90P,IAAI,WAGhCpzB,KAAKw0jC,aAAatsyB,UAAU90P,IAAI,UAEpCpzB,KAAKuzjC,sBAAsB7hiC,YAAY1xB,KAAKw0jC,cAC5Cx0jC,KAAK6yjC,wBAAwBnhiC,YAAY1xB,KAAKuzjC,uBAC9CvzjC,KAAK2yjC,eAAer3hC,iBAAiB,YAAat7B,KAAK0yjC,sBACvD1yjC,KAAKkpiC,cAAcqsB,cAAcj6hC,iBAAiB,YAAat7B,KAAKizjC,sBACpEjzjC,KAAKkpiC,cAAcqsB,cAAcj6hC,iBAAiB,UAAWt7B,KAAK8yjC,wBAC9D9yjC,KAAKipiC,UAAU5wsB,UACfr4V,KAAK2yjC,eAAezqyB,UAAU90P,IAAI,WAGlCpzB,KAAK2yjC,eAAezqyB,UAAU90P,IAAI,UAEtCpzB,KAAK6yjC,wBAAwBnhiC,YAAY1xB,KAAK2yjC,gBAC9C3yjC,KAAK81jC,qBACL,IAAIC,EAAc/1jC,KAAKwzjC,yBACnBwC,EAAeh2jC,KAAKyzjC,0BACnBzzjC,KAAKipiC,UAAU5wsB,YAChBr4V,KAAKkpiC,cAAc+E,gBAAgB9niC,MAAMw9H,KAAOoy7B,EAAc,KAC9D/1jC,KAAKkpiC,cAAc+E,gBAAgB9niC,MAAMy9H,MAAQoy7B,EAAe,MAGpEh2jC,KAAKkpiC,cAAc+E,gBAAgB9niC,MAAMqY,MAASxe,KAAKipiC,UAAU9zhC,QAAQ4vP,YAAcgxzB,EAAc/1jC,KAAK+yjC,sBAAsBhuzB,YAAe,KAC/I/kQ,KAAK6yjC,wBAAwB1sjC,MAAMi+J,QAAU,OAC7CpkK,KAAKi2jC,uBACLj2jC,KAAKk2jC,gCACLl2jC,KAAKm2jC,mBACLn2jC,KAAK41jC,eAAet6hC,iBAAiB,UAAWt7B,KAAKo2jC,qBAAqBv2jC,KAAKG,OAC/EA,KAAK6yjC,wBAAwBv3hC,iBAAiB,UAAWt7B,KAAKq2jC,sBAAsBx2jC,KAAKG,MAC7F,EAKAuwjC,EAAe5/iC,UAAU2ljC,WAAa,WAClC,GAAIxpvB,KAAY,CACZ,IAAIypvB,EAAkBv2jC,KAAKipiC,UAAU9zhC,QAAQykB,cAAc,kCACvD48hC,EAAqBx2jC,KAAKipiC,UAAU9zhC,QAAQykB,cAAc,yBAC1D68hC,EAAqBz2jC,KAAKipiC,UAAU9zhC,QAAQykB,cAAc,mCAGxC,KADlBok3B,GADA04K,EAAmB12jC,KAAKipiC,UAAU9zhC,QAAQykB,cAAc,kBACvB66P,wBAAwB7rI,UAGzDo1vB,EAAgBtt2B,WAAW1f,OAAOwhQ,iBAAiBkkyB,GAA0B,QAAK,GAEjF12jC,KAAKipiC,UAAU0tB,gBAChB34K,EAAgB,GAEpBw4K,EAAmBrwjC,MAAM+nJ,IAAM8vvB,EAAgB,KAC/Cy4K,EAAmBtwjC,MAAM+nJ,IAAM8vvB,EAAgB,KAC/Cu4K,EAAgBpwjC,MAAM+nJ,IAAM8vvB,EAAgB,KAC5Cw4K,EAAmBrwjC,MAAMyiJ,OAAS5oJ,KAAK42jC,qBAAqB54K,GAC5Dy4K,EAAmBtwjC,MAAMyiJ,OAAS5oJ,KAAK42jC,qBAAqB54K,GAC5Du4K,EAAgBpwjC,MAAMyiJ,OAAS5oJ,KAAK42jC,qBAAqB54K,GACzDh+4B,KAAKkpiC,cAAc+E,gBAAgB9niC,MAAMyiJ,OAAS5oJ,KAAK42jC,qBAAqB54K,EAChF,KACK,CACD,IACI04K,EACA14K,EAFAu4K,EAAkBv2jC,KAAKkpiC,cAAcliwB,WAAW,2BAG9B,KADlBg3mB,GADA04K,EAAmB12jC,KAAKkpiC,cAAcliwB,WAAW,sBAChBvS,wBAAwB7rI,UAGzDo1vB,EAAgBtt2B,WAAW1f,OAAOwhQ,iBAAiBkkyB,GAA0B,QAAK,GAGtF12jC,KAAK41jC,eAAezvjC,MAAM+nJ,IAAM8vvB,EAAgB,KAChDh+4B,KAAK6yjC,wBAAwB1sjC,MAAM+nJ,IAAM8vvB,EAAgB,KACzDu4K,EAAgBpwjC,MAAM+nJ,IAAM8vvB,EAAgB,IAChD,CACJ,EACAuyK,EAAe5/iC,UAAUimjC,qBAAuB,SAAU54K,GACtD,IAAIp1vB,EAAS5oJ,KAAKipiC,UAAU9zhC,QAAQs/Q,wBAAwB7rI,OAC5D,OAAmB,IAAXA,EAAgBA,EAASo1vB,EAAgB,KAAO,EAC5D,EACAuyK,EAAe5/iC,UAAUmljC,mBAAqB,WAE1C91jC,KAAK+yjC,sBAAwBjyjC,GAAc,MAAO,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,gBAAiBp1B,UAAW,uBAChHf,KAAKkpiC,cAAcqsB,cAAc7jiC,YAAY1xB,KAAK+yjC,uBAC9C/yjC,KAAKipiC,UAAU5wsB,UACfr4V,KAAK+yjC,sBAAsB5sjC,MAAMw9H,KAAO,MAGxC3jI,KAAK+yjC,sBAAsB5sjC,MAAMy9H,MAAQ,MAE7C5jI,KAAK+yjC,sBAAsB5sjC,MAAMwuR,OAAS,MAC1C30R,KAAKw1jC,mCACLx1jC,KAAK+yjC,sBAAsB5sjC,MAAMi+J,QAAU,OAE3CpkK,KAAKy1jC,yBAA2B30jC,GAAc,MAAO,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,4BAA6Bp1B,UAAW,oCAC/Hf,KAAK+yjC,sBAAsBrhiC,YAAY1xB,KAAKy1jC,0BAE5Cz1jC,KAAKk1jC,oBAAsBp0jC,GAAc,MAAO,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,uBAAwBp1B,UAAW,+BACjHf,KAAKipiC,UAAU5wsB,UACfr4V,KAAKk1jC,oBAAoBhtyB,UAAU90P,IAAI,UAGvCpzB,KAAKk1jC,oBAAoBhtyB,UAAU90P,IAAI,WAE3CpzB,KAAKk1jC,oBAAoB/ujC,MAAMi+J,QAAU,OACzCpkK,KAAKk1jC,oBAAoB55hC,iBAAiB,YAAat7B,KAAKi1jC,uBAC5Dj1jC,KAAKkpiC,cAAcqsB,cAAc7jiC,YAAY1xB,KAAKk1jC,qBAClDl1jC,KAAK62jC,+BACL72jC,KAAK01jC,kBAAkB11jC,KAAK+yjC,uBAC5B/yjC,KAAK21jC,sBAAsB31jC,KAAK+yjC,sBACpC,EACAxC,EAAe5/iC,UAAU6kjC,iCAAmC,WAExD,IAAIsB,EAA6Bh2jC,GAAc,MAAO,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,8BAA+Bp1B,UAAW,uCAE9Hg2jC,EAAoBj2jC,GAAc,MAAO,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,qBAAsBp1B,UAAW,2BAA4B0oV,MAAO,CAAE,SAAY,QAC7J3c,KACc9sU,KAAKipiC,UAAU8E,gBAAgB13oB,kBAAkB,gBAAiB,sBACxEp7R,MAAK,SAAUr5H,GACnBm1jC,EAAkB7qgC,UAAYtqD,CAClC,IAGAm1jC,EAAkB7qgC,UAAYlsD,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,YAEvE,IAAIixtB,EAAmBl2jC,GAAc,SAAU,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,qBACjF6giC,EAAiBhiiC,aAAa,aAAc,qBAC5CgiiC,EAAiBhiiC,aAAa,OAAQ,UACtCgiiC,EAAiBj2jC,UAAY,+DAE7B,IAAIk2jC,EAAuBn2jC,GAAc,OAAQ,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,wBAAyBp1B,UAAW,6BAEvH,GADAi2jC,EAAiBtliC,YAAYuliC,GACzBhwuB,GAAQM,WAAaza,KAAY,CACjC,IAAIoqvB,EAAsBp2jC,GAAc,UACxCo2jC,EAAoBliiC,aAAa,aAAc,qBAC/CkiiC,EAAoBliiC,aAAa,OAAQ,UACzCkiiC,EAAoB/wjC,MAAMo9zB,YAAc,cACxC2zP,EAAoB/wjC,MAAMg8R,WAAa,OACvC+0xB,EAAoB/wjC,MAAMk8R,cAAgB,OAC1C60xB,EAAoB/wjC,MAAMy3d,gBAAkB,UAC5Cs5lB,EAAoB57hC,iBAAiB,QAASt7B,KAAKm3jC,2BAA2Bt3jC,KAAKG,OACnF+2jC,EAAkB5wjC,MAAMw9H,KAAO,OAC/B,IAAIyz7B,EAAmBt2jC,GAAc,OAAQ,CAAEC,UAAW,+CAC1Dm2jC,EAAoBxliC,YAAY0liC,GAChCN,EAA2BpliC,YAAYwliC,EAC3C,CACAJ,EAA2BpliC,YAAYqliC,GACvCD,EAA2BpliC,YAAYsliC,GACvCh3jC,KAAK+yjC,sBAAsBrhiC,YAAYoliC,GACvC92jC,KAAKq3jC,8BACLL,EAAiB17hC,iBAAiB,QAASt7B,KAAKs3jC,0BAA0Bz3jC,KAAKG,MACnF,EACAuwjC,EAAe5/iC,UAAUkmjC,6BAA+B,WAEpD72jC,KAAKu3jC,uBAAyBz2jC,GAAc,MAAO,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,uBAAwBp1B,UAAW,+BACxHf,KAAKw3jC,+BACLx3jC,KAAKu3jC,uBAAuBpxjC,MAAM+jF,SAAW,WAC7ClqF,KAAKk1jC,oBAAoBxjiC,YAAY1xB,KAAKu3jC,uBAC9C,EAEAhH,EAAe5/iC,UAAU2mjC,0BAA4B,SAAUvgiC,GAE3D/2B,KAAKqljC,kBAAkBvi7B,KAAK/rG,EAAMuC,QAASvC,EAAMsC,QAAStC,EAAMoE,cAEpE,EAKAo1hC,EAAe5/iC,UAAU0mjC,4BAA8B,WAEnDr3jC,KAAK8wjC,sBAAwB,CACzB,CAAE7whC,KAAMjgC,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,uBAC7C,CAAE9lU,KAAMjgC,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,uBAC7C,CAAE9lU,KAAMjgC,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,gBAC7C,CAAE9lU,KAAMjgC,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,iBAEjD,IAAI0xtB,EAAwB32jC,GAAc,KAAM,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,6BAClFn2B,KAAKipiC,UAAU9zhC,QAAQuc,YAAY+liC,GACnCz3jC,KAAKqljC,kBAAoB,IAAI6C,IAAQ,CACjC7/iC,OAAQ,IAAMrI,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,mBAAoB2xB,MAAO9nD,KAAK8wjC,sBAC1EtmuB,OAAQxqV,KAAK03jC,yBAAyB73jC,KAAKG,QAE3CA,KAAKipiC,UAAU5wsB,YACfr4V,KAAKqljC,kBAAkBhttB,WAAY,GAEvCr4V,KAAKqljC,kBAAkB3stB,SAAS++tB,GAC5BxwuB,GAAQM,WAAavnV,KAAKipiC,UAAUqf,kBACpCtojC,KAAKqljC,kBAAkBh4mB,kBAAkBr5P,OAAS,SAGlDh0M,KAAKqljC,kBAAkBh4mB,kBAAkBr5P,OAAS,WAE1D,EAEAu82B,EAAe5/iC,UAAU+mjC,yBAA2B,SAAUz+iC,GAC1D,GAAIjZ,KAAKipiC,UAAUgb,kBAAoBjkjC,KAAKipiC,UAAUgb,iBAAiB2Q,oBAAqB,CAExF,IAAI/oB,EAAoBt/gC,SAASvsB,KAAKipiC,UAAUgb,iBAAiB2Q,oBAAoB/oB,mBACrF7riC,KAAKipiC,UAAUgb,iBAAiB2Q,oBAAoBC,kBAAkBhpB,EAC1E,CACA,GAAI5yhC,EAAKsc,KACL,OAAQtc,EAAKsc,KAAK0K,MACd,KAAKjgC,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,sBACtC/lW,KAAKkpiC,cAAcyuB,kBAAkBrkB,IAAqB+e,MAC1D,MACJ,KAAKryjC,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,sBACtC/lW,KAAK43jC,0BAA0B3+iC,GAC/B,MACJ,KAAKjZ,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,eACtC/lW,KAAKkpiC,cAAcyuB,kBAAkBrkB,IAAqBgf,MAC1D,MACJ,KAAKtyjC,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,eACtC/lW,KAAK63jC,8BAA8B5+iC,GAMnD,EACAs3iC,EAAe5/iC,UAAU+kjC,kBAAoB,SAAUlle,GAEnDxwlB,KAAK83jC,uBAAyBh3jC,GAAc,QAAS,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,2BAA4B+9P,OAAQ,8BAA+Bu1D,MAAO,CAAE,KAAQ,OAAQ,aAAc,qBACjMzpV,KAAK83jC,uBAAuB9iiC,aAAa,SAAU,SACnDw7jB,EAAe9+jB,YAAY1xB,KAAK83jC,wBAChC93jC,KAAK83jC,uBAAuBx8hC,iBAAiB,SAAUt7B,KAAKuxjC,qBAChE,EACAhB,EAAe5/iC,UAAUgljC,sBAAwB,SAAUnle,GAEvDxwlB,KAAK+3jC,2BAA6Bj3jC,GAAc,QAAS,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,+BAAgC+9P,OAAQ,8BAA+Bu1D,MAAO,CAAE,KAAQ,OAAQ,aAAc,qBACzMzpV,KAAK+3jC,2BAA2B/iiC,aAAa,SAAU,SACvDw7jB,EAAe9+jB,YAAY1xB,KAAK+3jC,4BAChC/3jC,KAAK+3jC,2BAA2Bz8hC,iBAAiB,SAAUt7B,KAAKuxjC,qBACpE,EACAhB,EAAe5/iC,UAAUinjC,0BAA4B,SAAU3+iC,GAC3DjZ,KAAK83jC,uBAAuB90yB,OAChC,EACAutyB,EAAe5/iC,UAAUknjC,8BAAgC,SAAU5+iC,GAC/DjZ,KAAK+3jC,2BAA2B/0yB,OACpC,EAKAutyB,EAAe5/iC,UAAUwmjC,2BAA6B,WAClD,IAAInx3B,EACJA,EAAQhmM,KACR,IAAIiuiC,EAAkB/8gC,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,oBACtEqjhC,EAAgBtohC,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,sBACpE6hiC,EAAe9miC,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,iBACnE6hiC,IACAA,EAAa7xjC,MAAMi+J,QAAU,OACzB4hC,EAAMkv3B,sBACNlv3B,EAAMkv3B,oBAAoB/ujC,MAAMi+J,QAAU,QAE1C6p4B,IACIjuiC,KAAKipiC,UAAU5wsB,UACf41sB,EAAgB9niC,MAAMw9H,KAAOqiE,EAAMyt3B,0BAA4B,KAG/DxlB,EAAgB9niC,MAAMy9H,MAAQoiE,EAAMyt3B,0BAA4B,KAGpExlB,EAAgB9niC,MAAMqY,MAASwnL,EAAMij2B,UAAU9zhC,QAAQ4vP,YAAc/+D,EAAMwt3B,yBAA2Bxt3B,EAAMyt3B,0BAA6B,KACzIja,EAAcrziC,MAAMqY,MAASwnL,EAAMkj2B,cAAc+E,gBAAgB99xB,YAAcnqE,EAAMiy3B,mCAAsC,MAE3Hjy3B,EAAMkj2B,eACNlj2B,EAAMkj2B,cAAc4qB,kBAEpB9zjC,KAAKipiC,UAAU9p6B,YAAcn/H,KAAKipiC,UAAU9p6B,WAAWop7B,4BACvDvojC,KAAKipiC,UAAU9p6B,WAAWop7B,2BAA2B2P,oBAAmB,GAExEjxuB,GAAQM,WAAaza,MACjB9sU,KAAKipiC,UAAUtiiB,cAAcwxjB,wBAAwBljc,UACrDj1nB,KAAKipiC,UAAUtiiB,cAAcwxjB,wBAAwBljc,QAAQ9/mB,QAAQhP,MAAMi+J,QAAU,QACjFpkK,KAAKipiC,UAAUtiiB,cAAcwxjB,wBAAwBC,kBACrDp4jC,KAAKipiC,UAAUtiiB,cAAcwxjB,wBAAwBC,gBAAgBjjjC,QAAQhP,MAAMi+J,QAAU,UAKjH,EAMAms5B,EAAe5/iC,UAAU0njC,2BAA6B,SAAUz6wB,GAC5D,IAII91P,EAJAxoD,EAAQU,KAKZ,GAJAA,KAAKixjC,4BAA6B,EAClCjxjC,KAAKwwlB,eAAiB1vlB,GAAc,MAAO,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,qBAAsBp1B,UAAW,qBAC9Gf,KAAKkpiC,cAAcovB,oBAAoB3jiC,aAAa30B,KAAKwwlB,eAAgBxwlB,KAAKkpiC,cAAc+E,iBAE7E,WAAXrwvB,EAAqB,CACrB,IAAI26wB,EAAiB,2DAA6Dv4jC,KAAKipiC,UAAU9zhC,QAAQghB,GACrG,4EACAn2B,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,oBAAsB,SAC3D/lW,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,gCAChC2xB,EAAQ,CAEJ,CAAEi9e,WAAY,+BAAgCG,YAAalliB,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,WAAY5vU,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,YAAa6sP,MAAOhjR,KAAKw4jC,gBAAgB34jC,KAAKG,OAC1L,CAAEujC,SAAUg1hC,GACZ,CACIxzhB,WAAY,6BAA8B5ugB,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,mBAC1E6sP,MAAO,WACH,IAAI6rK,EAAcvvb,EAAM4piC,cAAcliwB,WAAW,oBAAoB18P,kBACjEukZ,EAAY3mK,UAAUh1P,SAAS,sBAC/B5zB,EAAMm5jC,mBAAkB,GAE5Bn5jC,EAAM2piC,UAAUyE,iBAAiBgrB,kBAAkB7poB,EAAavvb,EAAMsqmB,YAC1E,GAEJ,CACI7kE,WAAY,kCAAmC5ugB,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,mBAC/E6sP,MAAO,SAAU/pQ,GACb3Z,EAAM2piC,UAAUyE,iBAAiBirB,gBACrC,GAEJ,CACI5zhB,WAAY,kCAAmC5ugB,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,mBAC/E6sP,MAAO,SAAU/pQ,GACb3Z,EAAM2piC,UAAUyE,iBAAiBkrB,YACrC,GAGZ,MAEI9wgC,EAAQ,CAEJ,CAAEi9e,WAAY,+BAAgC5ugB,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,YAAa6sP,MAAOhjR,KAAKw4jC,gBAAgB34jC,KAAKG,OAC5H,CAAEigC,KAAMjgC,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,eAGrD/lW,KAAKi1nB,QAAU,IAAI4jc,IAAK,CAAE/wgC,MAAOA,EAAOtpC,MAAO,GAAIoqI,OAAQ,GAAI0xY,aAAc,UACzEt6hB,KAAKipiC,UAAU5wsB,YACfr4V,KAAKi1nB,QAAQ58R,WAAY,GAE7Br4V,KAAKi1nB,QAAQ/8R,kBAAmB,EAChCl4V,KAAKi1nB,QAAQv8R,SAAS14V,KAAKwwlB,gBACZ,WAAX5yS,EACA59S,KAAK84jC,oBAGL94jC,KAAK+4jC,mBAEb,EACAxI,EAAe5/iC,UAAUmojC,kBAAoB,WACzC,IAAIx5jC,EAAQU,KACZA,KAAK4pmB,YAAc5pmB,KAAKkpiC,cAAcliwB,WAAW,iBACjDhnS,KAAKipiC,UAAUyE,iBAAiBsrB,UAAYh5jC,KAAKkpiC,cAAcliwB,WAAW,oBAAoB18P,kBAC9FtqC,KAAK4pmB,YAAYtukB,iBAAiB,SAAS,SAAUvE,GACjDz3B,EAAMm5jC,mBAAkB,GACLn5jC,EAAMsqmB,YAAYhomB,MACjB,KAAhBm1B,EAAMsB,MACN/4B,EAAM25jC,qBAGN35jC,EAAM2piC,UAAUyE,iBAAiBwrB,gBAEzC,IACAl5jC,KAAKipiC,UAAUyE,iBAAiB9jc,YAAc5pmB,KAAK4pmB,YACnD5pmB,KAAKm5jC,sBACLn5jC,KAAKy4jC,mBAAkB,GACvBz4jC,KAAK4pmB,YAAYx/lB,OACrB,EACAmmjC,EAAe5/iC,UAAU8njC,kBAAoB,SAAUr5qB,GAC9CtyE,KAKD9sU,KAAKipiC,UAAU8E,gBAAgB13oB,kBAAkB,oBAAqBjX,IAJtEp/Y,KAAKi1nB,QAAQ5gH,YAAYr0gB,KAAKkpiC,cAAcliwB,WAAW,oBAAoBnR,cAAeupH,GAC1Fp/Y,KAAKi1nB,QAAQ5gH,YAAYr0gB,KAAKkpiC,cAAcliwB,WAAW,oBAAoBnR,cAAeupH,GAKlG,EACAmxqB,EAAe5/iC,UAAUoojC,kBAAoB,WACzC,GAAI9xuB,GAAQM,WAAavnV,KAAKipiC,UAAUqf,kBAAmB,CACvDtojC,KAAKkpiC,cAAckwB,wBAAwBjzjC,MAAMi+J,QAAU,OAG3D,IADA,IAAIi15B,EAAanoiC,SAAS1gB,iBAAiB,mCAClCrE,EAAI,EAAGA,EAAIktjC,EAAWj2jC,OAAQ+I,IACnCktjC,EAAW9siC,SAASpgB,EAAE2K,WAAY,KAAK3Q,MAAMi+J,QAAU,MAE/D,CAEA,IAAIk15B,EAAoBx4jC,GAAc,MAAO,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,uBAAwBp1B,UAAW,4BAClHu4jC,EAAkBnzjC,MAAMqY,MAAQ,OAChC86iC,EAAkBnzjC,MAAMyiJ,OAAS5oJ,KAAKkpiC,cAAc+E,gBAAgB9niC,MAAMyiJ,OAC1E5oJ,KAAKkpiC,cAAcliwB,WAAW,wBAAwBt1Q,YAAY4niC,GAClEt5jC,KAAKkpiC,cAAc+E,gBAAgB9niC,MAAMi+J,QAAU,OACnDpkK,KAAKkxjC,oBAAqB,EAC1BlxjC,KAAKipiC,UAAU+qB,mBAAmBuF,6BACtC,EACAhJ,EAAe5/iC,UAAUsojC,mBAAqB,WAC1C,IAAIz/8B,EAAcx5G,KAAK4pmB,YAAYhomB,MACnC5B,KAAKipiC,UAAUyE,iBAAiB8rB,eAAehg9B,EACnD,EAKA+28B,EAAe5/iC,UAAU6njC,gBAAkB,WAMvC,GALAx4jC,KAAKixjC,4BAA6B,IAC9BnkvB,MAAgBma,GAAQM,WAAYvnV,KAAKipiC,UAAUqf,oBAAuBx7uB,MAC1E9sU,KAAKipiC,UAAUyE,iBAAiB+rB,mBAEpCz5jC,KAAK4pmB,YAAc,KAC0C,IAAzD5pmB,KAAKipiC,UAAU+qB,mBAAmB0F,mBAClC15jC,KAAKipiC,UAAU+qB,mBAAmB2F,aAAa/07B,OAC/C5kI,KAAKipiC,UAAU+qB,mBAAmB0F,yBAEjC,CACmB,MAAhB15jC,KAAKi1nB,UACLj1nB,KAAKi1nB,QAAQ79e,UACbp3I,KAAKi1nB,QAAU,MAEnB,IAAIqkc,EAAoBt5jC,KAAKkpiC,cAAcliwB,WAAW,wBAClDsyxB,IACAA,EAAkBzjyB,cAAc1gQ,YAAYmkiC,GACxCryuB,GAAQM,WAAavnV,KAAKipiC,UAAUqf,oBACpCtojC,KAAKkpiC,cAAckwB,wBAAwBjzjC,MAAMi+J,QAAU,KAG/DpkK,KAAKwwlB,gBAAuD,MAArCxwlB,KAAKwwlB,eAAe36T,eAC3C71R,KAAKwwlB,eAAe36T,cAAc1gQ,YAAYn1B,KAAKwwlB,gBAEvDxwlB,KAAKkpiC,cAAc+E,gBAAgB9niC,MAAMi+J,QAAU,QACnDpkK,KAAKkxjC,oBAAqB,EACrBpkvB,KAMD9sU,KAAKkpiC,cAAc0wB,iBALd55jC,KAAKipiC,UAAUh0a,QAAQkjc,wBAAwB0B,sBAChD75jC,KAAKipiC,UAAUtiiB,cAAcmzjB,aAAY,EAMrD,CACJ,EACAvJ,EAAe5/iC,UAAUwojC,oBAAsB,WAC3C,IAAIY,EAAoB/5jC,KAAK4pmB,YAAY/zU,cACrC7+J,EAAUhmG,OAAOwhQ,iBAAiBunyB,EAAkBlkyB,cAAe,MAAM88D,iBAAiB,gBAC1F7lB,MAAema,GAAQM,WAAavnV,KAAKipiC,UAAUqf,oBACnDtojC,KAAKwwlB,eAAiBxwlB,KAAKkpiC,cAAcliwB,WAAW,uBAGxD,IAAIxoR,EAAQxe,KAAKwwlB,eAAezrV,YAAc/kQ,KAAKg6jC,0BAA0B,aAAaj1zB,YACpF/kQ,KAAKg6jC,0BAA0B,oBAAoBj1zB,YAAc/kQ,KAAKg6jC,0BAA0B,oBAAoBj1zB,YACpH/kQ,KAAKg6jC,0BAA0B,oBAAoBj1zB,YAAc,EACvD,KAAZ/tI,IACAx4G,GAAuC,EAAtBkyB,WAAWsmF,IAEhC+i8B,EAAkB5zjC,MAAMqY,MAAQA,EAAQ,IAC5C,EACA+xiC,EAAe5/iC,UAAUqpjC,0BAA4B,SAAUC,GAC3D,OAAOj6jC,KAAKkpiC,cAAcliwB,WAAWizxB,GAAUpkyB,aACnD,EAMA06xB,EAAe5/iC,UAAUupjC,oBAAsB,SAAUj6hC,GACrD,GAAKjgC,KAAK4wjC,kBAKN,GAAI5wjC,KAAKm6jC,YAAa,CAClBn6jC,KAAKm6jC,YAAYrljC,MAAQmrB,EACzB,IACIm6hC,EADiBp6jC,KAAKkpiC,cAAcliwB,WAAW,sBACjB18P,kBAClC,GAAI8vhC,EACAA,EAAaj0jC,MAAMqY,MAAQ,OAC3B47iC,EAAa9vhC,kBAAkBA,kBAAkBV,YAAc3J,MAE9D,CACDjgC,KAAK4wjC,kBAAmB,EACxB,IAAIyJ,EAAmBr6jC,KAAKkpiC,cAAcliwB,WAAW,sBACjDhnS,KAAKm6jC,aACLn6jC,KAAKm6jC,YAAY/i7B,UAErBij7B,EAAiBxkyB,cAAc1gQ,YAAYkliC,GAC3Cr6jC,KAAKm6jC,YAAc,KACnBn6jC,KAAKs6jC,oBAAoBr6hC,EAC7B,CACJ,OArBAjgC,KAAKs6jC,oBAAoBr6hC,EAuBjC,EACAswhC,EAAe5/iC,UAAU2pjC,oBAAsB,SAAUr6hC,GAErD,IAAIil6B,EAAapk8B,GAAc,MAAO,CAAEC,UAAW,yBAA0Bo1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,uBAC7Gn2B,KAAKipiC,UAAU9zhC,QAAQuc,YAAYwz6B,GAEnCll8B,KAAKm6jC,YAAc,IAAIh1wB,IAAM,CAAErwS,MAAOmrB,EAAM53B,OAAQrI,KAAKipiC,UAAU9zhC,QAASqmI,MAAOx7I,KAAKu6jC,eAAe16jC,KAAKG,MAAOkqF,SAAU,CAAE9oE,EAAG,EAAGvC,EAAG,GAAKswI,UAAW,CAAEouI,KAAM,CAAEtpL,SAAU,IAAK+/F,OAAQ,cACzLh0M,KAAKm6jC,YAAYzhuB,SAASwsmB,GAC1B,IAAI/q7B,EAA0C,IAAtCna,KAAKipiC,UAAU9zhC,QAAQ+vP,aAC3BhrP,GAAKla,KAAKipiC,UAAU9zhC,QAAQ4vP,YAAcmgsB,EAAWngsB,aAAe,EACxE/kQ,KAAK4wjC,kBAAmB,EACxB5wjC,KAAKm6jC,YAAY9zwB,KAAK,CAAEn8N,SAAU,CAAE9oE,EAAGlH,EAAG2E,EAAG1E,KAC7C,IAAIigjC,EAAel1H,EAAW565B,kBAC1B8vhC,IACAA,EAAaj0jC,MAAMqY,MAAQ,OAEnC,EACA+xiC,EAAe5/iC,UAAU4pjC,eAAiB,SAAUthjC,GAChD,GAAIjZ,KAAKipiC,UAAUyE,iBAAkB,CACjC1tiC,KAAK4wjC,kBAAmB,EACxB,IAAI38gB,EAAiBj0iB,KAAKkpiC,cAAcliwB,WAAW,sBACnDhnS,KAAKipiC,UAAUyE,iBAAiBI,sBAAuB,EACnD9tiC,KAAKm6jC,aACLn6jC,KAAKm6jC,YAAY/i7B,UAErB68Z,EAAep+Q,cAAc1gQ,YAAY8+gB,GACzCj0iB,KAAKm6jC,YAAc,IACvB,CACJ,EAKA5J,EAAe5/iC,UAAU6pjC,cAAgB,WACjCx6jC,KAAK4pmB,cACL5pmB,KAAK4pmB,YAAYzjmB,MAAMqY,MAAQ,OAC/Bxe,KAAKm5jC,sBAEb,EACA5I,EAAe5/iC,UAAUsljC,qBAAuB,WAC5C,GAAKnpvB,KAyBD9sU,KAAKy6jC,gBAAkBz6jC,KAAKipiC,UAAU9zhC,QAAQykB,cAAc,+BAC5D55B,KAAK+zjC,eAAiB/zjC,KAAKipiC,UAAU9zhC,QAAQykB,cAAc,6BA1B9C,CAEb55B,KAAKy6jC,gBAAkB35jC,GAAc,SAAU,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,kBAAmBszT,MAAO,CAAE,SAAY,WAAY,aAAc,kBAAmB,SAAY,QAClLzpV,KAAKy6jC,gBAAgB15jC,UAAY,iDACjCf,KAAKy6jC,gBAAgBzliC,aAAa,OAAQ,UAE1C,IAAI0liC,EAAsB55jC,GAAc,OAAQ,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAvBn2B,uBAAyDe,UAAW,+CAC1Hf,KAAKy6jC,gBAAgB/oiC,YAAYgpiC,GAEV,IAAIxzxB,IAAQ,CAAEnyR,QAAS/U,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,mBAAoBulM,QAAS,QAAStka,WAAYhnI,KAAK26jC,oBAAoB96jC,KAAKG,QAClJ04V,SAAS14V,KAAKy6jC,iBAE/Bz6jC,KAAK+zjC,eAAiBjzjC,GAAc,SAAU,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,YAAaszT,MAAO,CAAE,SAAY,WAAY,aAAc,YAAa,SAAY,QACrKzpV,KAAK+zjC,eAAe/+hC,aAAa,OAAQ,UACzCh1B,KAAK+zjC,eAAehzjC,UAAY,2CAEhC,IAAI65jC,EAAa95jC,GAAc,OAAQ,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAvBn2B,iBAAmDe,UAAW,yCAC3Gf,KAAK+zjC,eAAeriiC,YAAYkpiC,GAEV,IAAI1zxB,IAAQ,CAAEnyR,QAAS/U,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,aAAculM,QAAS,QAAStka,WAAYhnI,KAAK26jC,oBAAoB96jC,KAAKG,QAC5I04V,SAAS14V,KAAK+zjC,gBAC9B/zjC,KAAK41jC,eAAelkiC,YAAY1xB,KAAKy6jC,iBACrCz6jC,KAAK41jC,eAAelkiC,YAAY1xB,KAAK+zjC,eACzC,CAKA/zjC,KAAKy6jC,gBAAgBn/hC,iBAAiB,QAASt7B,KAAKu0jC,oBACpDv0jC,KAAK+zjC,eAAez4hC,iBAAiB,QAASt7B,KAAK+0jC,sBACvD,EACAxE,EAAe5/iC,UAAUgqjC,oBAAsB,SAAU1hjC,GAChDjZ,KAAKipiC,UAAU3riB,gBAAgB0wC,cAChC/0hB,EAAK6nE,QAAS,EAEtB,EAKAyv+B,EAAe5/iC,UAAUkqjC,sBAAwB,WACzC76jC,KAAKy6jC,kBACLz6jC,KAAKy6jC,gBAAgB1liC,gBAAgB,YACrC/0B,KAAKy6jC,gBAAgB30jC,SAAS,GAAGoiR,UAAU/0P,OAAO,oCAClDnzB,KAAKy6jC,gBAAgB30jC,SAAS,GAAGoiR,UAAU90P,IAAI,4BAEvD,EAKAm9hC,EAAe5/iC,UAAUmqjC,qBAAuB,WACxC96jC,KAAK+zjC,iBACL/zjC,KAAK+zjC,eAAeh/hC,gBAAgB,YACpC/0B,KAAK+zjC,eAAejujC,SAAS,GAAGoiR,UAAU/0P,OAAO,8BACjDnzB,KAAK+zjC,eAAejujC,SAAS,GAAGoiR,UAAU90P,IAAI,sBAEtD,EACAm9hC,EAAe5/iC,UAAUuljC,8BAAgC,WACrDl2jC,KAAK0zjC,SAAW5yjC,GAAc,SAAU,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,eAC1En2B,KAAK0zjC,SAAS1+hC,aAAa,aAAc,gBACzCh1B,KAAK0zjC,SAAS1+hC,aAAa,OAAQ,UACnCh1B,KAAK0zjC,SAAS3yjC,UAAY,iDACtBf,KAAKipiC,UAAU5wsB,UACfr4V,KAAK0zjC,SAASvtjC,MAAMw9H,KAAO,MAG3B3jI,KAAK0zjC,SAASvtjC,MAAMw9H,KAAO3jI,KAAK2wjC,gBAAkB,KAGtD,IAAIiK,EAAa95jC,GAAc,OAAQ,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAvBn2B,cAAgDe,UAAW,oCACxGf,KAAK0zjC,SAAShiiC,YAAYkpiC,GAC1B56jC,KAAKuzjC,sBAAsB7hiC,YAAY1xB,KAAK0zjC,UAC5C1zjC,KAAK0zjC,SAASp4hC,iBAAiB,QAASt7B,KAAKm0jC,mBACjD,EACA5D,EAAe5/iC,UAAUwljC,iBAAmB,WAExCn2jC,KAAKk/gB,WAAap+gB,GAAc,MAAO,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,UAAWp1B,UAAW,+BAC/Ff,KAAK+6jC,mBACL/6jC,KAAKk/gB,WAAW/4gB,MAAM+jF,SAAW,WACjClqF,KAAKk/gB,WAAW5jf,iBAAiB,QAASt7B,KAAKm0jC,oBAC/Cn0jC,KAAKk/gB,WAAW5jf,iBAAiB,YAAat7B,KAAKyyjC,qBACnDzyjC,KAAK2yjC,eAAejhiC,YAAY1xB,KAAKk/gB,WACzC,EAKAqxiB,EAAe5/iC,UAAUoqjC,iBAAmB,WAEpC/6jC,KAAK41jC,gBAAkB51jC,KAAK41jC,eAAe1wzB,cAA8C,KAA9BllQ,KAAKk/gB,WAAW/4gB,MAAM+nJ,MACjFluJ,KAAKk/gB,WAAW/4gB,MAAM+nJ,IAAOluJ,KAAK41jC,eAAe1wzB,aAAgB,EAAI,KAE7E,EAKAqrzB,EAAe5/iC,UAAU6mjC,6BAA+B,WAEhDx3jC,KAAK+yjC,uBAAyB/yjC,KAAK+yjC,sBAAsB7tzB,cAAgBllQ,KAAKu3jC,wBAAoE,KAA1Cv3jC,KAAKu3jC,uBAAuBpxjC,MAAM+nJ,MAC1IluJ,KAAKu3jC,uBAAuBpxjC,MAAM+nJ,IAAOluJ,KAAK+yjC,sBAAsB7tzB,aAAgB,EAAI,KAEhG,EACAzlQ,OAAO4c,eAAek0iC,EAAe5/iC,UAAW,sBAAuB,CAKnE+F,IAAK,WAID,OAHK1W,KAAKg7jC,qBACNh7jC,KAAKg7jC,mBAAqBh7jC,KAAKkpiC,cAAcqsB,cAAcxwzB,aAExD/kQ,KAAKg7jC,kBAChB,EACA7ijC,YAAY,EACZE,cAAc,IAMlBk4iC,EAAe5/iC,UAAUsnjC,iCAAmC,WAExD,OAAQj4jC,KAAKkpiC,cAAc+E,gBAAgB99xB,YAAcnwQ,KAAKkpiC,cAAc+E,gBAAgBtrvB,YAAe3iT,KAAKkpiC,cAAc+E,gBAAgBlpyB,YAAc/kQ,KAAKkpiC,cAAc+E,gBAAgBtrvB,WACnM,EACAljT,OAAO4c,eAAek0iC,EAAe5/iC,UAAW,mBAAoB,CAKhE+F,IAAK,WACD,OAAI1W,KAAK41jC,eACE51jC,KAAK41jC,eAAe7wzB,YAGpB,CAEf,EACA5sP,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAek0iC,EAAe5/iC,UAAW,+BAAgC,CAK5E+F,IAAK,WACD,OAAI1W,KAAK6yjC,wBACE7yjC,KAAK6yjC,wBAAwB9tzB,YAG7B,CAEf,EACA5sP,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAek0iC,EAAe5/iC,UAAW,6BAA8B,CAK1E+F,IAAK,WACD,OAAI1W,KAAK+yjC,sBACE/yjC,KAAK+yjC,sBAAsB5izB,YAG3B,CAEf,EACAh4P,YAAY,EACZE,cAAc,IAMlBk4iC,EAAe5/iC,UAAU2jjC,6BAA+B,WACpD,IAAItu3B,GACJA,EAAQhmM,MACE6yjC,0BACN7s3B,EAAM6s3B,wBAAwB1sjC,MAAMi+J,QAAU,OAC1CpkK,KAAKipiC,UAAU5wsB,UACfryJ,EAAMkj2B,cAAc+E,gBAAgB9niC,MAAMy9H,MAASoiE,EAAMi13B,iBAAoB,KAG7Ej13B,EAAMkj2B,cAAc+E,gBAAgB9niC,MAAMw9H,KAAQqiE,EAAMi13B,iBAAoB,KAGhFj13B,EAAMkj2B,cAAc+E,gBAAgB9niC,MAAMqY,MAASwnL,EAAMij2B,UAAU9zhC,QAAQ4vP,YAAc/+D,EAAMi13B,iBAAmBj13B,EAAMyt3B,0BAA6B,KAErJzt3B,EAAMkj2B,cAAcsQ,cAAcrziC,MAAMqY,MAASwnL,EAAMkj2B,cAAc+E,gBAAgB99xB,YAAcnqE,EAAMiy3B,mCAAsC,KAC3Ij4jC,KAAKsxjC,yBACLtr3B,EAAMkj2B,cAAc4qB,kBAGhC,EAKAvD,EAAe5/iC,UAAUgkjC,8BAAgC,WACrD,IAAI3u3B,GACJA,EAAQhmM,MACE6yjC,0BACN7s3B,EAAM6s3B,wBAAwB1sjC,MAAMi+J,QAAU,QAC1CpkK,KAAKipiC,UAAU5wsB,UAEfryJ,EAAMkj2B,cAAc+E,gBAAgB9niC,MAAMy9H,MAAQoiE,EAAMwt3B,yBAA2B,KAInFxt3B,EAAMkj2B,cAAc+E,gBAAgB9niC,MAAMw9H,KAAOqiE,EAAMwt3B,yBAA2B,KAGtFxt3B,EAAMkj2B,cAAc+E,gBAAgB9niC,MAAMqY,MAASwnL,EAAMij2B,UAAU9zhC,QAAQ4vP,YAAc/kQ,KAAKwzjC,yBAA2BxzjC,KAAKyzjC,0BAA6B,KAC3Jzt3B,EAAMkj2B,cAAcsQ,cAAcrziC,MAAMqY,MAAQwnL,EAAMkj2B,cAAc+E,gBAAgBlpyB,YAAc,KAClG/+D,EAAMkj2B,cAAc4qB,kBAChB9t3B,EAAMij2B,UAAUiyB,iBAChBl13B,EAAMij2B,UAAU2qB,oBAAoBC,mBAAmB7t3B,EAAMkj2B,cAAc2C,kBAAoB,GAG3G,EAKA0kB,EAAe5/iC,UAAU6ijC,uBAAyB,WAC9C,OAAIxzjC,KAAKi7jC,iBACGj7jC,KAAKi7jC,iBAAmBj7jC,KAAKm7jC,6BAG9B,CAEf,EAKA5K,EAAe5/iC,UAAU8ijC,wBAA0B,WAC/C,OAAIzzjC,KAAKk1jC,oBACGl1jC,KAAKo7jC,2BAA6Bp7jC,KAAKk1jC,oBAAoBnwzB,YAG5D,CAEf,EAKAwrzB,EAAe5/iC,UAAU0qjC,4BAA8B,WACnD,OAAOr7jC,KAAKipiC,UAAU9zhC,QAAQ4vP,YAAc/kQ,KAAKi7jC,gBACrD,EAKA1K,EAAe5/iC,UAAU+jjC,+BAAiC,WAClD10jC,KAAKy6jC,kBACLz6jC,KAAKy6jC,gBAAgB30jC,SAAS,GAAGoiR,UAAU/0P,OAAO,4BAClDnzB,KAAKy6jC,gBAAgB30jC,SAAS,GAAGoiR,UAAU90P,IAAI,sCAC/CpzB,KAAKy6jC,gBAAgBvyyB,UAAU90P,IAAI,wCAE3C,EACAm9hC,EAAe5/iC,UAAUyjjC,kCAAoC,WACrDp0jC,KAAKy6jC,iBAAmBz6jC,KAAKy6jC,gBAAgB30jC,SAAS,KACtD9F,KAAKy6jC,gBAAgB30jC,SAAS,GAAGoiR,UAAU90P,IAAI,4BAC/CpzB,KAAKy6jC,gBAAgB30jC,SAAS,GAAGoiR,UAAU/0P,OAAO,sCAClDnzB,KAAKy6jC,gBAAgBvyyB,UAAU/0P,OAAO,wCAE9C,EACAo9hC,EAAe5/iC,UAAU2qjC,mBAAqB,WACtCt7jC,KAAKy6jC,iBAAmBz6jC,KAAKy6jC,gBAAgB30jC,SAAS,KACtD9F,KAAKy6jC,gBAAgB30jC,SAAS,GAAGoiR,UAAU/0P,OAAO,4BAClDnzB,KAAKy6jC,gBAAgB30jC,SAAS,GAAGoiR,UAAU90P,IAAI,oCAEvD,EAKAm9hC,EAAe5/iC,UAAU4qjC,mBAAqB,WACtCv7jC,KAAK6yjC,0BACL7yjC,KAAK6yjC,wBAAwB1sjC,MAAMi+J,QAAU,OACzCpkK,KAAKipiC,UAAU5wsB,UACfr4V,KAAKkpiC,cAAc+E,gBAAgB9niC,MAAMw9H,KAAO,MAGhD3jI,KAAKkpiC,cAAc+E,gBAAgB9niC,MAAMw9H,KAAQ3jI,KAAKi7jC,iBAAoB,KAG9Ej7jC,KAAKkpiC,cAAc+E,gBAAgB9niC,MAAMqY,MAASxe,KAAKipiC,UAAU9zhC,QAAQ4vP,YAAc/kQ,KAAKi7jC,iBAAmBj7jC,KAAKyzjC,0BAA6B,KAC7IzzjC,KAAKkpiC,cAAcsQ,gBACnBx5iC,KAAKkpiC,cAAcsQ,cAAcrziC,MAAMqY,MAAQxe,KAAKkpiC,cAAc+E,gBAAgBlpyB,YAAc,MAEpG/kQ,KAAKy6jC,gBAAgBzliC,aAAa,WAAY,YAC9Ch1B,KAAKo0jC,oCACLp0jC,KAAKs7jC,qBAEb,EACA/K,EAAe5/iC,UAAU6qjC,8BAAgC,WACjDx7jC,KAAK+zjC,iBACL/zjC,KAAK+zjC,eAAejujC,SAAS,GAAGoiR,UAAU/0P,OAAO,sBACjDnzB,KAAK+zjC,eAAejujC,SAAS,GAAGoiR,UAAU90P,IAAI,gCAC9CpzB,KAAK+zjC,eAAe7ryB,UAAU90P,IAAI,kCAE1C,EACAm9hC,EAAe5/iC,UAAU0jjC,iCAAmC,WACpDr0jC,KAAK+zjC,gBAAkB/zjC,KAAK+zjC,eAAejujC,SAAS,KACpD9F,KAAK+zjC,eAAejujC,SAAS,GAAGoiR,UAAU90P,IAAI,sBAC9CpzB,KAAK+zjC,eAAejujC,SAAS,GAAGoiR,UAAU/0P,OAAO,gCACjDnzB,KAAK+zjC,eAAe7ryB,UAAU/0P,OAAO,kCAE7C,EACAo9hC,EAAe5/iC,UAAUyljC,qBAAuB,SAAUr/hC,GAClDA,EAAM1uB,SAAWrI,KAAK41jC,gBACtB51jC,KAAKkpiC,cAAcuyB,sBAE3B,EACAlL,EAAe5/iC,UAAU0ljC,sBAAwB,SAAUt/hC,GACvD/2B,KAAKkpiC,cAAcuyB,sBACvB,EAKAlL,EAAe5/iC,UAAUqkjC,6BAA+B,WA+BpD,GA5BI9jiC,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,qBACpDjF,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,mBAAmBhwB,MAAMi+J,QAAU,QAE3FpkK,KAAKo0jC,oCACLp0jC,KAAKw0jC,aAAa5qhC,YAAc5pC,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,aACrE/lW,KAAKqzjC,eAAer+hC,aAAa,aAAc,uBAC/Ch1B,KAAKipiC,UAAU+qB,mBAAmB0H,wBAC9B17jC,KAAK6yjC,0BAC+C,SAThD7yjC,KASM6yjC,wBAAwB1sjC,MAAMi+J,QAChCpkK,KAAKqxjC,iBACLrxjC,KAAKw7jC,gCACLx7jC,KAAKoxjC,gBAAiB,EACtBpxjC,KAAK20jC,kCAGL30jC,KAAKq0jC,mCACLr0jC,KAAKoxjC,gBAAiB,EACtBpxjC,KAAKs0jC,iCAITt0jC,KAAKqzjC,eAAejpjC,QACpBpK,KAAKw7jC,gCACLx7jC,KAAKoxjC,gBAAiB,EACtBpxjC,KAAK20jC,kCAGb30jC,KAAKqxjC,iBAAkB,EACnBrxjC,KAAKipiC,UAAUgb,kBAAoBjkjC,KAAKipiC,UAAUgb,iBAAiB2Q,oBAAqB,CAExF,IAAI/oB,EAAoBt/gC,SAASvsB,KAAKipiC,UAAUgb,iBAAiB2Q,oBAAoB/oB,mBACrF7riC,KAAKipiC,UAAUgb,iBAAiB2Q,oBAAoBC,kBAAkBhpB,EAC1E,CACJ,EAKA0kB,EAAe5/iC,UAAUgrjC,sBAAwB,WACzC37jC,KAAK6yjC,yBAA2B7yjC,KAAK+zjC,gBAAkB/zjC,KAAK+zjC,eAAejujC,SAAS,KACpF9F,KAAK6yjC,wBAAwB1sjC,MAAMi+J,QAAU,OAC7CpkK,KAAK+zjC,eAAe/+hC,aAAa,WAAY,YAC7Ch1B,KAAK+zjC,eAAejujC,SAAS,GAAGoiR,UAAU90P,IAAI,8BAEtD,EAKAm9hC,EAAe5/iC,UAAU0jD,MAAQ,WACxB4yR,GAAQM,WACTvnV,KAAKq0jC,mCACLr0jC,KAAKo0jC,oCACLp0jC,KAAKm3jC,8BAELn3jC,KAAKy1jC,2BACLz1jC,KAAKy1jC,yBAAyBvshC,UAAY,GAElD,EAKAqnhC,EAAe5/iC,UAAUymI,QAAU,WAC/B,IAAIwk7B,EAAyB57jC,KAAK+zjC,eAC9B8H,EAA0B77jC,KAAKy6jC,gBAOnC,GANImB,GAA0BA,EAAuB5uuB,eAAiB4uuB,EAAuB5uuB,cAAc5pV,OAAS,GAChHw4jC,EAAuB5uuB,cAAc,GAAG51M,UAExCyk7B,GAA2BA,EAAwB7uuB,eAAiB6uuB,EAAwB7uuB,cAAc5pV,OAAS,GACnHy4jC,EAAwB7uuB,cAAc,GAAG51M,UAEzCp3I,KAAKqljC,kBAAmB,CACxB,IAAIoS,EAAwBz3jC,KAAKqljC,kBAAkBlwiC,QACnDsijC,GAAyBA,EAAsBzquB,eAAiByquB,EAAsBzquB,cAAc5pV,OAAS,GAAIpD,KAAKqljC,kBAAkBju6B,SAC5I,CACJ,EAIAm56B,EAAe5/iC,UAAUo8U,cAAgB,WACrC,MAAO,gBACX,EACOwjuB,CACX,CA55CoC,GEPhCuL,IAA6B,WAM7B,SAASA,EAAYC,GAMjB/7jC,KAAK4M,KAAO,OAOZ5M,KAAKuwD,MAAO,EAOZvwD,KAAK0kV,YAAc,iCACnB1kV,KAAKipiC,UAAY8yB,EACjB/7jC,KAAKmjf,WAAa44kB,EAAU54kB,WAC5Bnjf,KAAKg8jC,iBAAmBD,EAAUC,gBACtC,CA8KA,OAtKAF,EAAYnrjC,UAAUwlO,KAAO,SAAUwpM,GACnC,IAAIrgb,EAAQU,KACZA,KAAK6kV,YAAc,IAAI/nT,eAClB98B,KAAKuwD,KAMNvwD,KAAKojf,YAAYzjE,GALjBvpZ,YAAW,WACP92B,EAAM8jf,YAAYzjE,EACtB,IAKJ3/a,KAAK6kV,YAAYC,mBAAqB,WAClC,IAAI2hY,GAAS,EAETw1W,EAAa38jC,EAAM2piC,UAAUgzB,WAC7BA,GAAcA,EAAWC,qBAAmD,KAA5BD,EAAWE,eAC3D11W,GAAS,EACTnntB,EAAM6jf,WAAa,GAEnB7jf,EAAM6jf,WAAa,IACnBsjO,EAASnntB,EAAM88jC,cAAc98jC,EAAOqgb,IAEnC8mS,GACDnntB,EAAMylV,YAAYzlV,EAE1B,EACAU,KAAK6kV,YAAYprS,QAAU,WACvBn6C,EAAM2X,MAAM3X,EAChB,CACJ,EAMAw8jC,EAAYnrjC,UAAU0jD,MAAQ,WAC1Br0D,KAAK6kV,aAAe7kV,KAAK6kV,YAAYuY,QACrCp9V,KAAKulV,UAAY,KACjBvlV,KAAKylV,UAAY,KACjBzlV,KAAKi3I,QAAU,IACnB,EAEA6k7B,EAAYnrjC,UAAUyrjC,cAAgB,SAAUp23B,EAAO25O,GACnD,IAAI8mS,GAAS,EACThwkB,EAASuvD,EAAM6+I,YAAYpuM,OAC3B4l7B,GAA0D,IAA3Cr8jC,KAAKg8jC,iBAAiBrxjC,QAAQ8rI,GACjD,GAAqC,IAAjCuvD,EAAM6+I,YAAYc,YAA+B,MAAXlvM,EAAgB,CAEtD,IAAIvsG,OAAO,EAOX,IALIA,EADsB,OAAtBlqC,KAAKkx0B,aACElroB,EAAM6+I,YAAYrpJ,SAGlBwK,EAAM6+I,YAAY5uG,eAGL,kBAAT/rM,EACP,IACIA,EAAOuG,KAAKuL,MAAM9R,EACtB,CACA,MAAOjzB,IAEU,gDAATizB,GAAmE,2DAATA,IAC1Du8qB,GAAS,EAEjB,CAGZ,CAOA,OANI41W,GAAgB51W,KAChBA,GAAS,EACTzmtB,KAAKmjf,aACLn9S,EAAMij2B,UAAUqzB,sBAAsB7l7B,EAAQuvD,EAAM6+I,YAAYe,WAAY+5F,EAAQzqW,QAAQ,GAC5F8wH,EAAMmwC,KAAKwpM,IAER8mS,CACX,EACAq1W,EAAYnrjC,UAAUyye,YAAc,SAAUzjE,GAE1C3/a,KAAK6kV,YAAY/hN,KAAK9iI,KAAK4M,KAAM5M,KAAKivH,IAAKjvH,KAAKuwD,MAEhDvwD,KAAK6kV,YAAYq9J,gBAAkBlif,KAAKipiC,UAAUszB,oBAAoBr6kB,gBACtElif,KAAK6kV,YAAYxuG,iBAAiB,eAAgBr2O,KAAK0kV,aACvDi7F,EAAU3/a,KAAKw8jC,aAAa78oB,GAC5B3/a,KAAKy8jC,uBACqB,OAAtBz8jC,KAAKkx0B,eACLlx0B,KAAK6kV,YAAYqsf,aAAelx0B,KAAKkx0B,cAEzClx0B,KAAK6kV,YAAY1uG,KAAK1lM,KAAK+mF,UAAUmoT,GACzC,EACAm8oB,EAAYnrjC,UAAU6rjC,aAAe,SAAUE,GAM3C,OALA18jC,KAAKipiC,UAAUgzB,WAAWU,SAAW,GACrC38jC,KAAKipiC,UAAU2zB,wBAAwBF,GACnC18jC,KAAKipiC,UAAUgzB,WAAWU,UAAmD,KAAvC38jC,KAAKipiC,UAAUgzB,WAAWU,WAChED,EAAa18jC,KAAKipiC,UAAUgzB,WAAWU,UAEpCD,CACX,EACAZ,EAAYnrjC,UAAUo0U,YAAc,SAAU/+I,GAC1C,IAAIvvD,EAASuvD,EAAM6+I,YAAYpuM,OAC3B4l7B,EAAe5l7B,EAAO3/H,WAAW6b,MAAM,IAAI,GAC/C,GAAqC,IAAjCqzK,EAAM6+I,YAAYc,YAA+B,MAAXlvM,EAAgB,CAEtD,IAQI5rH,EAAS,CACTnmB,KAAM,YACNwlC,KATsB,OAAtBlqC,KAAKkx0B,aACElroB,EAAM6+I,YAAYrpJ,SAGlBwK,EAAM6+I,YAAY5uG,aAMzB0vG,WAAY3/I,EAAM6+I,YAAYc,WAC9BlvM,OAAQuvD,EAAM6+I,YAAYpuM,QAE9BuvD,EAAMo4I,eAAevzT,EACzB,MACK,GAAqC,IAAjCm7K,EAAM6+I,YAAYc,aAAsC,MAAjB02uB,GAAyC,MAAjBA,GAAuB,CAGvFxxiC,EAAS,CACTnmB,KAAM,YACN+xI,OAAQuvD,EAAM6+I,YAAYpuM,OAC1BmvM,WAAY5/I,EAAM6+I,YAAYe,YAElC5/I,EAAMw/I,eAAe36T,EACzB,CACJ,EACAixiC,EAAYnrjC,UAAUsG,MAAQ,SAAU+uL,GAEpC,IAAIn7K,EAAS,CACTnmB,KAAM,UACN+xI,OAAQz2I,KAAK6kV,YAAYpuM,OACzBmvM,WAAY5lV,KAAK6kV,YAAYe,YAEjC5/I,EAAMiO,aAAappL,EACvB,EAEAixiC,EAAYnrjC,UAAUytU,eAAiB,SAAU5iJ,GAI7C,OAHIx7L,KAAKulV,WACLvlV,KAAKulV,UAAU/pJ,GAEZA,CACX,EAEAsg4B,EAAYnrjC,UAAU60U,eAAiB,SAAUhqJ,GAI7C,OAHIx7L,KAAKylV,WACLzlV,KAAKylV,UAAUjqJ,GAEZA,CACX,EAEAsg4B,EAAYnrjC,UAAUsjM,aAAe,SAAUzY,GAI3C,OAHIx7L,KAAKi3I,SACLj3I,KAAKi3I,QAAQukD,GAEVA,CACX,EACAsg4B,EAAYnrjC,UAAU8rjC,qBAAuB,WACzC,IAAK,IAAItwjC,EAAI,EAAGA,EAAInM,KAAKipiC,UAAUszB,oBAAoBM,YAAYz5jC,OAAQ+I,IAEvEnM,KAAK6kV,YAAYxuG,iBAAiBr2O,KAAKipiC,UAAUszB,oBAAoBM,YAAYtwiC,SAASpgB,EAAE2K,WAAY,KAAK0/N,WAAYx2O,KAAKipiC,UAAUszB,oBAAoBM,YAAYtwiC,SAASpgB,EAAE2K,WAAY,KAAKs8zB,YAE5M,EACO0oP,CACX,CA7MiC,GCA7Bj6H,IAAsB,WACtB,SAASA,EAAK3n7B,EAAGC,EAAGqE,EAAOoqI,GAKvB5oJ,KAAKka,EAAI2L,OAAO6xc,UAKhB13d,KAAKma,EAAI0L,OAAO6xc,UAKhB13d,KAAKwe,MAAQ,EAKbxe,KAAK4oJ,OAAS,OACJvlJ,IAAN6W,QAAyB7W,IAAN8W,GACnBD,EAAIC,EAAI0L,OAAO6xc,UACfl5c,EAAQoqI,EAAS,SAGHvlJ,IAAVmb,IACAA,EAAQ,QAEGnb,IAAXulJ,IACAA,EAAS,IAGjB5oJ,KAAKka,EAAIA,EACTla,KAAKma,EAAIA,EACTna,KAAKwe,MAAQA,EACbxe,KAAK4oJ,OAASA,CAClB,CAkNA,OAjNAnpJ,OAAO4c,eAAewl7B,EAAKlx7B,UAAW,OAAQ,CAE1C+F,IAAK,WACD,OAAO1W,KAAKka,CAChB,EACA/B,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAewl7B,EAAKlx7B,UAAW,QAAS,CAE3C+F,IAAK,WACD,OAAO1W,KAAKka,EAAIla,KAAKwe,KACzB,EACArG,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAewl7B,EAAKlx7B,UAAW,MAAO,CAEzC+F,IAAK,WACD,OAAO1W,KAAKma,CAChB,EACAhC,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAewl7B,EAAKlx7B,UAAW,SAAU,CAE5C+F,IAAK,WACD,OAAO1W,KAAKma,EAAIna,KAAK4oJ,MACzB,EACAzwI,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAewl7B,EAAKlx7B,UAAW,UAAW,CAE7C+F,IAAK,WACD,MAAO,CAAEwD,EAAGla,KAAK2jI,KAAMxpH,EAAGna,KAAKkuJ,IACnC,EACA/1I,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAewl7B,EAAKlx7B,UAAW,WAAY,CAE9C+F,IAAK,WACD,MAAO,CAAEwD,EAAGla,KAAK4jI,MAAOzpH,EAAGna,KAAKkuJ,IACpC,EACA/1I,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAewl7B,EAAKlx7B,UAAW,aAAc,CAEhD+F,IAAK,WACD,MAAO,CAAEwD,EAAGla,KAAK2jI,KAAMxpH,EAAGna,KAAK20R,OACnC,EACAx8Q,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAewl7B,EAAKlx7B,UAAW,cAAe,CAEjD+F,IAAK,WACD,MAAO,CAAEwD,EAAGla,KAAK4jI,MAAOzpH,EAAGna,KAAK20R,OACpC,EACAx8Q,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAewl7B,EAAKlx7B,UAAW,aAAc,CAEhD+F,IAAK,WACD,MAAO,CAAEwD,EAAGla,KAAK2jI,KAAMxpH,EAAGna,KAAKma,EAAIna,KAAK4oJ,OAAS,EACrD,EACAzwI,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAewl7B,EAAKlx7B,UAAW,cAAe,CAEjD+F,IAAK,WACD,MAAO,CAAEwD,EAAGla,KAAK4jI,MAAOzpH,EAAGna,KAAKma,EAAIna,KAAK4oJ,OAAS,EACtD,EACAzwI,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAewl7B,EAAKlx7B,UAAW,YAAa,CAE/C+F,IAAK,WACD,MAAO,CAAEwD,EAAGla,KAAKka,EAAIla,KAAKwe,MAAQ,EAAGrE,EAAGna,KAAKkuJ,IACjD,EACA/1I,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAewl7B,EAAKlx7B,UAAW,eAAgB,CAElD+F,IAAK,WACD,MAAO,CAAEwD,EAAGla,KAAKka,EAAIla,KAAKwe,MAAQ,EAAGrE,EAAGna,KAAK20R,OACjD,EACAx8Q,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAewl7B,EAAKlx7B,UAAW,SAAU,CAE5C+F,IAAK,WACD,MAAO,CAAEwD,EAAGla,KAAKka,EAAIla,KAAKwe,MAAQ,EAAGrE,EAAGna,KAAKma,EAAIna,KAAK4oJ,OAAS,EACnE,EACAzwI,YAAY,EACZE,cAAc,IAGlBwp7B,EAAKlx7B,UAAUq2L,OAAS,SAAU8hwB,EAAOg0H,GACrC,OAAOh0H,EAAM5u7B,IAAM4ijC,EAAM5ijC,GAAK4u7B,EAAM3u7B,IAAM2ijC,EAAM3ijC,GAAK2u7B,EAAMtq7B,QAAUs+iC,EAAMt+iC,OAASsq7B,EAAMlgzB,SAAWk06B,EAAMl06B,MAC/G,EAEAi5yB,EAAKlx7B,UAAUosjC,UAAY,SAAUroyB,GACjC,IAAI9wJ,EAAQhgI,KAAKqpC,IAAIpnB,OAAOD,MAAQ5lB,KAAK4jI,OAAS5jI,KAAKka,IAAM2L,OAAO6xc,UAAYhjM,EAAK9wJ,MAAQ5jI,KAAK4jI,MAAO8wJ,EAAK9wJ,OAC1G+wJ,EAAS/wR,KAAKqpC,IAAIpnB,OAAOD,MAAQ5lB,KAAK20R,QAAU30R,KAAKma,IAAM0L,OAAO6xc,UAAYhjM,EAAKC,OAAS30R,KAAK20R,OAAQD,EAAKC,QAKlH,OAJA30R,KAAKka,EAAItW,KAAKgmD,IAAI5pD,KAAK2jI,KAAM+wJ,EAAK/wJ,MAClC3jI,KAAKma,EAAIvW,KAAKgmD,IAAI5pD,KAAKkuJ,IAAKwmI,EAAKxmI,KACjCluJ,KAAKwe,MAAQolH,EAAQ5jI,KAAKka,EAC1Bla,KAAK4oJ,OAAS+rI,EAAS30R,KAAKma,EACrBna,IACX,EAEA6h8B,EAAKlx7B,UAAUqsjC,WAAa,SAAU12tB,GAClC,GAAItmW,KAAKka,IAAM2L,OAAO6xc,UAGlB,OAFA13d,KAAKka,EAAIosV,EAAMpsV,OACfla,KAAKma,EAAImsV,EAAMnsV,GAGnB,IAAID,EAAItW,KAAKgmD,IAAI5pD,KAAK2jI,KAAM2iO,EAAMpsV,GAC9BC,EAAIvW,KAAKgmD,IAAI5pD,KAAKkuJ,IAAKo4M,EAAMnsV,GAC7BypH,EAAQhgI,KAAKqpC,IAAIjtC,KAAK4jI,MAAO0iO,EAAMpsV,GACnCy6Q,EAAS/wR,KAAKqpC,IAAIjtC,KAAK20R,OAAQ2xE,EAAMnsV,GACzCna,KAAKka,EAAIA,EACTla,KAAKma,EAAIA,EACTna,KAAKwe,MAAQolH,EAAQ5jI,KAAKka,EAC1Bla,KAAK4oJ,OAAS+rI,EAAS30R,KAAKma,CAChC,EACA0n7B,EAAKlx7B,UAAUgtE,aAAe,SAAU+2M,GACpC,GAAI10R,KAAKi9jC,WAAWvoyB,GAAO,CACvB,IAAI/wJ,EAAO//H,KAAKqpC,IAAIjtC,KAAK2jI,KAAM+wJ,EAAK/wJ,MAChCg1Y,EAAQ/0gB,KAAKqpC,IAAIjtC,KAAKkuJ,IAAKwmI,EAAKxmI,KAGpC,OAAO,IAAI2zyB,EAAKl+zB,EAAMg1Y,EAFV/0gB,KAAKgmD,IAAI5pD,KAAK4jI,MAAO8wJ,EAAK9wJ,OAEDD,EADxB//H,KAAKgmD,IAAI5pD,KAAK20R,OAAQD,EAAKC,QACYgkP,EACxD,CACA,OAAOkpb,EAAK387B,KAChB,EAEA287B,EAAKlx7B,UAAUusjC,QAAU,SAAUlm8B,GAK/B,OAJAh3H,KAAKka,GAAK88G,EACVh3H,KAAKma,GAAK68G,EACVh3H,KAAKwe,OAAmB,EAAVw4G,EACdh3H,KAAK4oJ,QAAoB,EAAV5xB,EACRh3H,IACX,EAeA6h8B,EAAKlx7B,UAAUssjC,WAAa,SAAUvoyB,GAClC,QAAI10R,KAAK4jI,MAAQ8wJ,EAAK/wJ,MAAQ3jI,KAAK2jI,KAAO+wJ,EAAK9wJ,OAAS5jI,KAAKkuJ,IAAMwmI,EAAKC,QAAU30R,KAAK20R,OAASD,EAAKxmI,IAIzG,EAEA2zyB,EAAKlx7B,UAAUwsjC,aAAe,SAAUzoyB,GACpC,OAAO10R,KAAK2jI,MAAQ+wJ,EAAK/wJ,MAAQ3jI,KAAK4jI,OAAS8wJ,EAAK9wJ,OAAS5jI,KAAKkuJ,KAAOwmI,EAAKxmI,KAAOluJ,KAAK20R,QAAUD,EAAKC,MAC7G,EAEAktqB,EAAKlx7B,UAAUysjC,cAAgB,SAAU92tB,EAAOtvO,GAE5C,YADgB,IAAZA,IAAsBA,EAAU,GAC7Bh3H,KAAK2jI,KAAO3M,GAAWsvO,EAAMpsV,GAAKla,KAAK4jI,MAAQ5M,GAAWsvO,EAAMpsV,GAChEla,KAAKkuJ,IAAMl3B,GAAWsvO,EAAMnsV,GAAKna,KAAK20R,OAAS39J,GAAWsvO,EAAMnsV,CAC3E,EACA0n7B,EAAKlx7B,UAAU0sjC,SAAW,WACtB,IAAI79lB,EAAS,GAKb,OAJAA,EAAOpzd,KAAKpM,KAAK4swB,SACjBptS,EAAOpzd,KAAKpM,KAAKs9jC,UACjB99lB,EAAOpzd,KAAKpM,KAAKu9jC,YACjB/9lB,EAAOpzd,KAAKpM,KAAKw9jC,aACVh+lB,CACX,EAEAqie,EAAK47H,SAAW,SAAUj+lB,GAEtB,IADA,IAAI9qM,EAAO,IAAImtqB,EACNvy7B,EAAK,EAAGoujC,EAAWl+lB,EAAQlwd,EAAKoujC,EAASt6jC,OAAQkM,IAAM,CAC5D,IAAI2hyB,EAAKysR,EAASpujC,GAClBolR,EAAKsoyB,WAAW/rR,EACpB,CACA,OAAOv8gB,CACX,EACAmtqB,EAAKlx7B,UAAU4sd,MAAQ,SAAUt0K,EAAQC,GACrClpT,KAAKwe,OAASyqS,EACdjpT,KAAK4oJ,QAAUsgK,CACnB,EACA24oB,EAAKlx7B,UAAU+M,OAAS,SAAU60U,EAASC,GACvCxyV,KAAKka,GAAKq4U,EACVvyV,KAAKma,GAAKq4U,CACd,EAEAqvmB,EAAK387B,MAAQ,IAAI287B,EAAKh86B,OAAO6xc,UAAW7xc,OAAO83iC,UAAW,EAAG,GACtD97H,CACX,CAzP0B,GCoDnB,SAAS+7H,IAAWC,EAAWC,GAClC,IAAIx3tB,EAAQ,CAAEpsV,EAAG,EAAGC,EAAG,GACnBund,EAAKm8lB,EACLl8lB,EAAKm8lB,EACLt8jC,GAAKmge,EAAGq/K,GAAKr/K,EAAGm/K,KAAOp/K,EAAGq/K,GAAKr/K,EAAGm/K,KAAOl/K,EAAGo/K,GAAKp/K,EAAGk/K,KAAOn/K,EAAGs/K,GAAKt/K,EAAGo/K,IACtExxgB,GAAMqyV,EAAGo/K,GAAKp/K,EAAGk/K,KAAOn/K,EAAGo/K,GAAKn/K,EAAGm/K,KAAOn/K,EAAGq/K,GAAKr/K,EAAGm/K,KAAOp/K,EAAGm/K,GAAKl/K,EAAGk/K,IACvEpmgB,GAAMinV,EAAGq/K,GAAKr/K,EAAGm/K,KAAOn/K,EAAGo/K,GAAKn/K,EAAGm/K,KAAOp/K,EAAGs/K,GAAKt/K,EAAGo/K,KAAOp/K,EAAGm/K,GAAKl/K,EAAGk/K,IAC3E,GAAU,IAANr/oB,EACA,MAAO,CAAE02R,SAAS,EAAO6lyB,YAAaz3tB,GAE1C,IAAIl2N,EAAKd,EAAK9tI,EACV0yI,EAAKuG,EAAKj5I,EACd,OAAI4uI,GAAM,GAAKA,GAAM,GAAK8D,GAAM,GAAKA,GAAM,GACvCoyN,EAAMpsV,EAAIwnd,EAAGm/K,GAAMzwgB,GAAMsxV,EAAGq/K,GAAKr/K,EAAGm/K,IACpCv6S,EAAMnsV,EAAIund,EAAGo/K,GAAM1wgB,GAAMsxV,EAAGs/K,GAAKt/K,EAAGo/K,IAC7B,CAAE5oX,SAAS,EAAM6lyB,YAAaz3tB,IAElC,CAAEpuE,SAAS,EAAO6lyB,YAAaz3tB,EAC1C,CA0IO,SAASpzU,IAAS8qiC,EAAeC,EAAQjn8B,GAC5C,OAAIgn8B,EAAc9jjC,GAAK+jjC,EAAO/jjC,EAAI88G,GAAWgn8B,EAAc9jjC,GAAK+jjC,EAAO/jjC,EAAI88G,GACnEgn8B,EAAc7jjC,GAAK8jjC,EAAO9jjC,EAAI68G,GAAWgn8B,EAAc7jjC,GAAK8jjC,EAAO9jjC,EAAI68G,CAKnF,CClNO,SAAS2id,IAAazpkB,GACzB,IAAIi3C,EACA4a,EAAa,GACjB,GAA0B,SAAtBklR,GAAQ1qT,KAAK73B,MAAyC,SAAtBuiV,GAAQ1qT,KAAK73B,KAC7C,IAAK,IAAIyH,EAAI,EAAGA,EAAI+D,EAAKi5B,WAAW/lC,OAAQ+I,IAEjB,KADvBg7C,EAAQj3C,EAAKi5B,WAAW5c,SAASpgB,EAAE2K,WAAY,MACrC2rB,UACNs/B,EAAW31D,KAAK+6C,QAKxB4a,EAAa7xD,EAAKpK,SAEtB,OAAOi8D,CACX,CAuBO,SAASm8/B,IAAYh0hC,GACxB,IAAI4iC,EAAO,YAMX,GAJK97C,OAAO87C,KAER97C,OAAO87C,GAAQ,CAAC,GAEhB5iC,EAAM,CACN,IAAIi0hC,EAAiB,iBAErBntiC,OAAOmtiC,GAAgBh4jC,MAAMohQ,WAAa,UAE1C,IACIpyP,EAAUwkkB,IADJ3ojB,OAAOmtiC,GAAgBr4jC,SAAS,IACV,GAChCqP,EAAQ6f,aAAa,IAAKkV,GAE1B,IAAIy6tB,OAAS,EAET3zuB,OAAO87C,GAAM5iC,GAEby6tB,EAAS3zuB,OAAO87C,GAAM5iC,IAItBlZ,OAAO87C,GAAM5iC,GAAQy6tB,EAASxvvB,EAAQ0rR,UACpB,IAAb8je,EAAOzqvB,GAAwB,IAAbyqvB,EAAOxqvB,GAA8B,IAAjBwqvB,EAAOnmvB,OAAiC,IAAlBmmvB,EAAO/7mB,SAEpE53H,OAAO87C,GAAM5iC,GAAQy6tB,EAWrC,SAAiB73rB,GACb,IAKIgtI,EALAsk3B,EAAO,EACPC,EAAO,EACPC,EAAO,EACPC,EAAO,EAIPC,EAAc1x/B,EAClB0x/B,EAAcA,EAAYnujC,QAAQ,WAAY,KAAKA,QAAQ,aAAc,KAAKoiB,OAAOE,MAAM,KAC3F,IAAK,IAAIxmB,EAAI,EAAGA,EAAIqyjC,EAAYp7jC,OAAQ+I,IAChCqyjC,EAAYjyiC,SAASpgB,EAAE2K,WAAY,KAAK1T,OAAS,IAEjDg7jC,EAAOC,GADPvk3B,EAAe0k3B,EAAYjyiC,SAASpgB,EAAE2K,WAAY,KAAK6b,MAAM,MAClC,GAC3B2riC,EAAOC,EAAOzk3B,EAAa,IAGnC,IAAS3tM,EAAI,EAAGA,EAAIqyjC,EAAYp7jC,OAAQ+I,KACpC2tM,EAAe0k3B,EAAYjyiC,SAASpgB,EAAE2K,WAAY,KAAK6b,MAAM,MAC3C,KACdmnL,EAAa,GAAKsk3B,EAClBtk3B,EAAa,GAAKwk3B,GAEtBF,EAAOx6jC,KAAKgmD,IAAIw0gC,EAAMtk3B,EAAa,IACnCuk3B,EAAOz6jC,KAAKqpC,IAAIoxhC,EAAMvk3B,EAAa,IACnCwk3B,EAAO16jC,KAAKgmD,IAAI00gC,EAAMxk3B,EAAa,IACnCyk3B,EAAO36jC,KAAKqpC,IAAIsxhC,EAAMzk3B,EAAa,IAEvC,MAAO,CAAE5/L,EAAGkkjC,EAAMjkjC,EAAGmkjC,EAAM9/iC,MAAO6/iC,EAAOD,EAAMx16B,OAAQ216B,EAAOD,EAClE,CAxC8Cz9xB,CAAQ32P,KAG9C,IAAIu0hC,EAAY,IAAI58H,IAAKl9L,EAAOzqvB,EAAGyqvB,EAAOxqvB,EAAGwqvB,EAAOnmvB,MAAOmmvB,EAAO/7mB,QAGlE,OADA53H,OAAOmtiC,GAAgBh4jC,MAAMohQ,WAAa,SACnCk3zB,CACX,CACA,OAAO,IAAI58H,IAAK,EAAG,EAAG,EAAG,EAC7B,CA4DA,SAAS68H,IAAYz+hC,EAAMu5uB,GACvB,IAEImlT,EACAC,EAHAz1hC,EAAa,GACbroB,EAAI,EAGJ/L,EAAUykwB,GAAav5uB,EAAKlrB,QAChC,GAAwB,WAApBkrB,EAAK25tB,YAA+C,QAApB35tB,EAAK25tB,WACrC,GAAuB,aAAnB35tB,EAAK4+hC,UAGL,IAFAF,EAAW,GACXA,GAAY5pjC,EAAQ,GACf+L,EAAI,EAAGA,EAAI/L,EAAQ3R,OAAQ0d,IAE5B,IADA89iC,EAAUE,IAASH,EAAU1+hC,KACdA,EAAKzhB,OAASmgjC,EAASv7jC,OAAS,EAC3C+lC,EAAWA,EAAW/lC,QAAU,CAAE68B,KAAM0+hC,EAAUzkjC,EAAG,EAAGsm7B,GAAI,EAAGhi7B,MAAOogjC,GACtED,EAAW,OAEV,CAKD,IAAIngjC,EAAQsgjC,IAJZH,GAAuB5pjC,EAAQ+L,EAAI,IAAM,GAIVmf,IAC1Br8B,KAAKC,KAAK2a,GAAS,GAAKyhB,EAAKzhB,OAASmgjC,EAASv7jC,OAAS,GAAOu7jC,EAASh0jC,QAAQ,OAAS,KAC1Fw+B,EAAWA,EAAW/lC,QAAU,CAAE68B,KAAM0+hC,EAAUzkjC,EAAG,EAAGsm7B,GAAI,EAAGhi7B,MAAOA,GACtEmgjC,EAAW,IAEX79iC,IAAM/L,EAAQ3R,OAAS,GAAKu7jC,EAASv7jC,OAAS,IAC9C+lC,EAAWA,EAAW/lC,QAAU,CAAE68B,KAAM0+hC,EAAUzkjC,EAAG,EAAGsm7B,GAAI,EAAGhi7B,MAAOA,GACtEmgjC,EAAW,GAEnB,MAIJx1hC,EAQZ,SAAsBlJ,EAAMu5uB,GACxB,IASI7hsB,EACAy6zB,EACA2sL,EACAC,EAZA71hC,EAAa,GACbw1hC,EAAW,GACX3ujC,EAAI,EACJ7D,EAAI,EACJmwB,EAA2B,WAApB2D,EAAK25tB,WACZ7kvB,EAAUykwB,GAAav5uB,EAAKlrB,QAE5BkqjC,EAAWlqjC,EAAQ4d,MAAM,MAM7B,IAAK3iB,EAAI,EAAGA,EAAIivjC,EAAS77jC,OAAQ4M,IAG7B,IADA2nE,EAA8B,WAAtB13C,EAAKi/hC,aAA4BD,EAAS1yiC,SAASvc,EAAE8G,WAAY,KAAK6b,MAAM,KAAOssiC,EACtF9yjC,EAAI,EAAGA,EAAIwrE,EAAMv0E,OAAQ+I,IAE1B,GADU2yjC,IAASnn/B,EAAMprD,SAASpgB,EAAE2K,WAAY,KAAMmpB,GACxCA,EAAKzhB,OAASm5D,EAAMprD,SAASpgB,EAAE2K,WAAY,KAAK1T,OAAS,GAA2B,WAAtB68B,EAAKi/hC,aACzED,EAAS77jC,OAAS,IAClBu0E,EAAMprD,SAASpgB,EAAE2K,WAAY,KAAO6gE,EAAMprD,SAASpgB,EAAE2K,WAAY,KAAO,MAE5EmpB,EAAKlrB,QAAU4iE,EAAMprD,SAASpgB,EAAE2K,WAAY,KAC5CqyB,EAAau4rB,IAASzhsB,EAAM0+hC,EAAUx1hC,OAErC,CAGD,IAAI3qB,EAAQsgjC,IADZ1sL,GADAusL,KAAqB,IAANxyjC,GAA4B,IAAjBwrE,EAAMv0E,SAAiBk5B,GAAQqiiC,EAASv7jC,OAAS,EAAK,IAAM,IAAMu0E,EAAMprD,SAASpgB,EAAE2K,WAAY,OACnG6gE,EAAMxrE,EAAI,IAAM,IACR8zB,GAC1Bg/hC,EAAS77jC,OAAS,GAAK+I,IAAMwrE,EAAMv0E,OAAS,IAC5Cu7jC,GAAsB,MAEtB/6jC,KAAKiG,MAAM2U,GAASyhB,EAAKzhB,MAAQ,GAAKmgjC,EAASv7jC,OAAS,GACxDo2wB,EAAYmlT,EACZx1hC,EAAWA,EAAW/lC,QAAU,CAC5B68B,MAAmC,IAA5B0+hC,EAASh0jC,QAAQ,MAAgBg0jC,EAAW,IAAMnlT,EAAWt/vB,EAAG,EAAGsm7B,GAAI,EAC9Ehi7B,MAAO4z3B,IAAYusL,EAAWngjC,EAASmgjC,IAAaK,EAAgBD,EAAgBD,IAASH,EAAU1+hC,IAE3G0+hC,EAAW,IAGPxyjC,IAAMwrE,EAAMv0E,OAAS,IACrB+lC,EAAWA,EAAW/lC,QAAU,CAAE68B,KAAM0+hC,EAAUzkjC,EAAG,EAAGsm7B,GAAI,EAAGhi7B,MAAOA,GACtEmgjC,EAAW,IAGnBK,EAAe5sL,EACf2sL,EAAgBvgjC,CACpB,CAGR,OAAO2qB,CACX,CA7DyBg2hC,CAAal/hC,EAAMu5uB,QAIpCrwuB,EAAWA,EAAW/lC,QAAU,CAAE68B,KAAMlrB,EAASmF,EAAG,EAAGsm7B,GAAI,EAAGhi7B,MAAOsgjC,IAAS/pjC,EAASkrB,IAE3F,OAAOkJ,CACX,CAuDA,SAASu4rB,IAASl9M,EAAKg1P,EAAWp4M,GAC9B,IACIu9f,EACAC,EAFA99iC,EAAI,EAGJ/L,EAAUykwB,GAAah1P,EAAIzvgB,QAG/B,IAFA4pjC,EAAW,GACXA,GAAY5pjC,EAAQ,GACf+L,EAAI,EAAGA,EAAI/L,EAAQ3R,OAAQ0d,IAE5B,IADA89iC,EAAUE,IAASH,EAAUn6iB,KACdA,EAAIhmgB,OAASmgjC,EAASv7jC,OAAS,EAC1Cg+jB,EAAUA,EAAUh+jB,QAAU,CAAE68B,KAAM0+hC,EAAUzkjC,EAAG,EAAGsm7B,GAAI,EAAGhi7B,MAAOogjC,GACpED,EAAW,OAEV,CAED,IAAIngjC,EAAQsgjC,IADZH,GAAuB5pjC,EAAQ+L,EAAI,IAAM,GACV0jgB,IAC1B5ghB,KAAKC,KAAK2a,GAAS,GAAKgmgB,EAAIhmgB,OAASmgjC,EAASv7jC,OAAS,GAAOu7jC,EAASh0jC,QAAQ,OAAS,KACzFg0jC,EAAWA,EAAS/tjC,MAAM,GAAI,GAC9BwwjB,EAAUA,EAAUh+jB,QAAU,CAAE68B,KAAM0+hC,EAAUzkjC,EAAG,EAAGsm7B,GAAI,EAAGhi7B,MAAOA,GACpEmgjC,EAAW5pjC,EAAQ+L,EAAI,IAAM,IAE7BA,IAAM/L,EAAQ3R,OAAS,GAAKu7jC,EAASv7jC,OAAS,IAC9Cg+jB,EAAUA,EAAUh+jB,QAAU,CAAE68B,KAAM0+hC,EAAUzkjC,EAAG,EAAGsm7B,GAAI,EAAGhi7B,MAAOA,GACpEmgjC,EAAW,GAEnB,CAEJ,OAAOv9f,CACX,CA0CO,SAAS4yV,IAAY/z3B,EAAM95B,EAAO4O,EAAS+hH,EAAU0ipB,GACxD,IACIrwuB,EACAi2hC,EAFAz6T,EAAS,IAAI+8L,IAAK,EAAG,GAGrB5i7B,EAtMR,SAAwB3J,EAAS2hH,GAC7B,IAAIh4G,EAAU,CACV0nE,KAAMrxE,EAAQhP,MAAMqgF,KAAM+zqB,OAAQplvB,EAAQhP,MAAMs3d,YAAalsD,MAAOp8Z,EAAQ+7vB,YAAc/7vB,EAAQqgiC,gBAClGC,OAAQtgiC,EAAQogiC,MAAMr7hC,EAAGw7hC,OAAQvgiC,EAAQogiC,MAAMp7hC,EAAGi1H,YAAaj6H,EAAQhP,MAAMipI,YAC7E8vzB,UAAW/p7B,EAAQhP,MAAM+uiC,gBAAiB5m6B,QAASn5H,EAAQhP,MAAMmoI,QACjEuhK,QAAS16R,EAAQ06R,QAAS15Q,GAAIhhB,EAAQghB,GACtC3X,MAAOs4G,GAAY3hH,EAAQwnwB,WAAWn+vB,MAAOoqI,OAAQzzI,EAAQwnwB,WAAW/znB,OACxE1uI,EAAG/E,EAAQo9U,QAAUp9U,EAAQwnwB,WAAWn+vB,MAAQrJ,EAAQogiC,MAAMr7hC,EAAI,GAClEC,EAAGhF,EAAQq9U,QAAUr9U,EAAQwnwB,WAAW/znB,OAASzzI,EAAQogiC,MAAMp7hC,EAAI,IAkBvE,OAhBA2E,EAAQmgS,SAAW9pS,EAAQhP,MAAM84S,SACjCngS,EAAQ0jc,WAAartc,EAAQhP,MAAMq8c,WACnC1jc,EAAQugjC,aAAelqjC,EAAQhP,MAAMk5jC,aACrCvgjC,EAAQ23jB,eAAiBthkB,EAAQhP,MAAMswkB,eACvC33jB,EAAQwgjC,OAASnqjC,EAAQmqjC,OACzBxgjC,EAAQ86uB,WAAa2lU,IAAmBpqjC,EAAQhP,MAAMyzvB,WAAYzkvB,EAAQhP,MAAM+4jC,cAChFpgjC,EAAQ/J,QAAUI,EAAQJ,QAC1B+J,EAAQogjC,aAAe/pjC,EAAQhP,MAAM+4jC,aACrCpgjC,EAAQ+/iC,UAAYW,IAAkBrqjC,EAAQhP,MAAM+4jC,cACpDpgjC,EAAQ0ld,UAAYi7lB,IAAkBtqjC,EAAQhP,MAAMq+d,WACpD1ld,EAAQ23G,MAAQthH,EAAQhP,MAAMswH,MAC9B33G,EAAQwxG,OAASn7G,EAAQhP,MAAMmqH,OAC/BxxG,EAAQsxG,KAAOj7G,EAAQhP,MAAMiqH,KAC7BtxG,EAAQog7B,UAAY,GACpBpg7B,EAAQswH,YAAc,EACtBtwH,EAAQ0nE,KAAO,GACR1nE,CACX,CA2KkB4gjC,CAAez/hC,EAAM62F,GAQnC,OAPA72F,EAAKkJ,WAAaA,EAAau1hC,IAAY5/iC,EAAS06vB,GACpDv5uB,EAAKm/hC,WAAaA,EA/CtB,SAA0Bn/hC,EAAMkJ,GAC5B,IAEIw2hC,EACAnhjC,EAHA4gjC,EAAa,CAAElljC,EAAG,EAAGsE,MAAO,GAC5BsC,EAAI,EAGR,IAAKA,EAAI,EAAGA,EAAIqoB,EAAW/lC,OAAQ0d,IAE/BtC,EADAmhjC,EAAWx2hC,EAAW5c,SAASzL,EAAEhK,WAAY,KAAK0H,MAG9CmhjC,EADmB,SAAnB1/hC,EAAKukc,UACM,EAEa,WAAnBvkc,EAAKukc,UACNm7lB,EAAW1/hC,EAAKzhB,QAAgC,aAAtByhB,EAAKo/hC,cAAqD,SAAtBp/hC,EAAKo/hC,cACxD,GAGCM,EAAW,EAGH,UAAnB1/hC,EAAKukc,WACEm7lB,EAGDx2hC,EAAW/lC,OAAS,EAAI,GAAKu8jC,EAAW,EAEvDx2hC,EAAW5c,SAASzL,EAAEhK,WAAY,KAAK0p7B,GAAqB,IAAhBvg6B,EAAKg/Q,SACjD91Q,EAAW5c,SAASzL,EAAEhK,WAAY,KAAKoD,EAAIyljC,EACtCP,GAODA,EAAWlljC,EAAItW,KAAKgmD,IAAIw1gC,EAAWlljC,EAAGyljC,GACtCP,EAAW5gjC,MAAQ5a,KAAKqpC,IAAImyhC,EAAW5gjC,MAAOA,IAP9C4gjC,EAAa,CACTlljC,EAAGyljC,EACHnhjC,MAAOA,GAQnB,OAAO4gjC,CACX,CAQmCQ,CAAiB9gjC,EAASqqB,GACzDw7tB,EAAOnmvB,MAAQ4gjC,EAAW5gjC,MACtByhB,EAAKm/hC,WAAW5gjC,OAASs4G,GAAqC,SAAzBh4G,EAAQugjC,eAC7C16T,EAAOnmvB,MAAQs4G,GAEnB6toB,EAAO/7mB,OAASz/G,EAAW/lC,OAAS68B,EAAK95B,MAAM84S,SAAW,IACnD0ld,CACX,CAEO,SAASk7T,IAAkB1/nB,EAAWzjB,GACzC,IACIvna,EAKJ,OAJIuna,IACAvna,EAAU+b,SAASg8T,eAAewvF,IAEpBvna,EAAWA,EAAQykB,cAAc,IAAMuma,GAAajva,SAASg8T,eAAeizG,EAElG,CAEO,SAAS2/nB,IAAkB307B,EAAalqG,GAC3C,IAAI9rB,EAAUrU,GAAcqqI,GAE5B,OAGG,SAA0Bh2H,EAAS7J,GAEtC,IADA,IAAI/G,EAAO9E,OAAO8E,KAAK+G,GACda,EAAI,EAAGA,EAAI5H,EAAKnB,OAAQ+I,IAC7BgJ,EAAQ6f,aAAazwB,EAAKgoB,SAASpgB,EAAE2K,WAAY,KAAMxL,EAAW/G,EAAKgoB,SAASpgB,EAAE2K,WAAY,MAEtG,CATIipjC,CAAiB5qjC,EAAS8rB,GACnB9rB,CACX,CCzUO,SAAS6iV,MAIZ,IAHA,IAEIxiQ,EAFApb,EAAQ,gEACRjkD,EAAK,GAEAhqB,EAAI,EAAGA,EAAI,EAAGA,IAAK,CACxB,GAAI,WAAY6kB,QAAU,oBAAqB42F,OAAQ,CACnD,IAAIh9F,EAAQ,IAAImmB,YAAY,GAG5BykD,GADgBxkE,OAAOy6S,UAAYz6S,OAAO42F,QAC1B65F,gBAAgB72L,GAAO,GAAK,EAChD,MAEI4qE,EAAM5xF,KAAKiG,MAAsBuwE,GAAhBx2E,KAAKk2B,UAEhB,IAAN3tB,GAAWqpF,EAAM,GACjBrpF,IAGJgqB,GAAMikD,EAAMlzD,UAAUsuE,EAAKA,EAAM,EACrC,CACA,OAAOr/D,CACX,CAEO,SAAS6piC,IAA4Br2uB,GAC3B,IAAIk4mB,IAAjB,IACI3zyB,EAAMy7L,EAAI6I,QAAU7I,EAAIgzb,WAAW/znB,OAAS+gM,EAAI4rtB,MAAMp7hC,EACtDw6Q,EAASg1D,EAAI6I,QAAU7I,EAAIgzb,WAAW/znB,QAAU,EAAI+gM,EAAI4rtB,MAAMp7hC,GAC9DwpH,EAAOgmN,EAAI4I,QAAU5I,EAAIgzb,WAAWn+vB,MAAQmrU,EAAI4rtB,MAAMr7hC,EACtD0pH,EAAQ+lN,EAAI4I,QAAU5I,EAAIgzb,WAAWn+vB,OAAS,EAAImrU,EAAI4rtB,MAAMr7hC,GAC5D0yvB,EAAU,CAAE1yvB,EAAGypH,EAAMxpH,EAAG+zI,GAExBov6B,EAAW,CAAEpjjC,EAAG0pH,EAAOzpH,EAAG+zI,GAG1Bqv6B,EAAa,CAAErjjC,EAAGypH,EAAMxpH,EAAGw6Q,GAE3B6oyB,EAAc,CAAEtjjC,EAAG0pH,EAAOzpH,EAAGw6Q,GAEjC,OADSktqB,IAAK47H,SAAS,CAAC7wT,EAAS0wT,EAAUC,EAAYC,GAE3D,CAEO,SAASyC,IAAW5pjC,EAAMk7Z,GAC7B,IAAI82N,EAASura,MACbO,IAAa9ra,EAAQ92N,EAAO,EAAG,GAC/B,IAAIq7V,EAAUknS,IAAuBzra,EAAQ,CAAEnunB,EAAG,EAAGC,EAAG,IACpDmjjC,EAAWxpB,IAAuBzra,EAAQ,CAAEnunB,EAAG7D,EAAKmI,MAAOrE,EAAG,IAC9DojjC,EAAazpB,IAAuBzra,EAAQ,CAAEnunB,EAAG,EAAGC,EAAG9D,EAAKuyI,SAC5D406B,EAAc1pB,IAAuBzra,EAAQ,CAAEnunB,EAAG7D,EAAKmI,MAAOrE,EAAG9D,EAAKuyI,SACtEs36B,EAAOt8jC,KAAKgmD,IAAIgjtB,EAAQ1yvB,EAAGojjC,EAASpjjC,EAAGqjjC,EAAWrjjC,EAAGsjjC,EAAYtjjC,GACjEimjC,EAAOv8jC,KAAKgmD,IAAIgjtB,EAAQzyvB,EAAGmjjC,EAASnjjC,EAAGojjC,EAAWpjjC,EAAGqjjC,EAAYrjjC,GACjEimjC,EAAOx8jC,KAAKqpC,IAAI2/tB,EAAQ1yvB,EAAGojjC,EAASpjjC,EAAGqjjC,EAAWrjjC,EAAGsjjC,EAAYtjjC,GACjEmmjC,EAAOz8jC,KAAKqpC,IAAI2/tB,EAAQzyvB,EAAGmjjC,EAASnjjC,EAAGojjC,EAAWpjjC,EAAGqjjC,EAAYrjjC,GACrE,OAAO,IAAIun7B,IAAK0+H,EAAOF,EAAMG,EAAOF,EACxC,CA0CO,SAASV,IAAkB79jC,GAC9B,IAAIwF,EAAQ,GACZ,OAAQxF,GACJ,IAAK,SACDwF,EAAQ,SACR,MACJ,IAAK,OACDA,EAAQ,OACR,MACJ,IAAK,QACDA,EAAQ,QAGhB,OAAOA,CACX,CAEO,SAASo4jC,IAAkB59jC,GAC9B,IAAIwF,EAAQ,GACZ,OAAQxF,GACJ,IAAK,OACDwF,EAAQ,WACR,MACJ,IAAK,SACDA,EAAQ,UACR,MACJ,IAAK,mBACDA,EAAQ,SACR,MACJ,IAAK,cACDA,EAAQ,eAGhB,OAAOA,CACX,CACO,SAAS03jC,IAASl1hC,EAAa9qB,GAClC,IAAIq/iC,EAAiB,iBAErBntiC,OAAOmtiC,GAAgBh4jC,MAAMohQ,WAAa,UAE1C,IACItnO,EAAO05iB,IADD3ojB,OAAOmtiC,GAAgBr4jC,SAAS,IACb,GAC7Bm6B,EAAK2J,YAAcA,EACnB3J,EAAKjL,aAAa,QAAS,aAAelW,EAAQmgS,SAAW,mBACvDngS,EAAQ0jc,WAAa,iBAAmB1jc,EAAQsxG,KAAO,OAAS,WACtE,IAAIyuoB,EAAO5+tB,EAAK4gQ,UAAUriR,MAG1B,OADAwS,OAAOmtiC,GAAgBh4jC,MAAMohQ,WAAa,SACnCs3f,CACX,CAQO,SAAS0gU,IAAmB39jC,EAAO06B,GACtC,GAAa,WAATA,GAA+B,gBAAV16B,EACrB,MAAO,MAEX,IAAIwF,EAAQ,GACZ,OAAQxF,GACJ,IAAK,cACDwF,EAAQ,SACR,MACJ,IAAK,gBACDA,EAAQ,WACR,MACJ,IAAK,cACDA,EAAQ,WAGhB,OAAOA,CACX,CAEO,SAASk5jC,IAAY/upB,EAAOkkoB,EAAQC,EAAQpvsB,GAC/C,GAAc,IAAVirE,EAAa,CACb,IAAI82N,EAASura,MAEb,OADAO,IAAa9ra,EAAQ92N,EAAOkkoB,EAAQC,GAC7B5B,IAAuBzra,EAAQ/hS,EAC1C,CACA,OAAOA,CACX,ELhLA,SAAW2ptB,GAEPA,EAAgBA,EAAsB,KAAI,GAAK,OAE/CA,EAAgBA,EAAwB,OAAI,GAAK,QACpD,CALD,CAKGA,MAAoBA,IAAkB,CAAC,IAQ1C,SAAWC,GAEPA,EAAcA,EAAoB,KAAI,GAAK,OAE3CA,EAAcA,EAA6B,cAAI,GAAK,gBAEpDA,EAAcA,EAA8B,eAAI,GAAK,gBACxD,CAPD,CAOGA,MAAkBA,IAAgB,CAAC,IAwBtC,SAAWC,GAEPA,EAAqBA,EAA2B,KAAI,GAAK,OAEzDA,EAAqBA,EAA6B,OAAI,GAAK,SAE3DA,EAAqBA,EAA6B,OAAI,GAAK,SAE3DA,EAAqBA,EAA2B,KAAI,GAAK,OAEzDA,EAAqBA,EAAoC,cAAI,IAAM,gBAEnEA,EAAqBA,EAAoC,cAAI,IAAM,gBAEnEA,EAAqBA,EAAuC,iBAAI,IAAM,mBAEtEA,EAAqBA,EAAgC,UAAI,KAAO,YAEhEA,EAAqBA,EAA+B,SAAI,KAAO,WAE/DA,EAAqBA,EAAqC,eAAI,KAAO,iBAErEA,EAAqBA,EAAsC,gBAAI,MAAQ,kBAEvEA,EAAqBA,EAAoC,cAAI,MAAQ,gBAErEA,EAAqBA,EAA8B,QAAI,MAAQ,UAE/DA,EAAqBA,EAAqC,eAAI,MAAQ,iBAEtEA,EAAqBA,EAAkC,YAAI,MAAQ,cAEnEA,EAAqBA,EAA+B,SAAI,OAAS,WAEjEA,EAAqBA,EAA8B,QAAI,OAAS,SACnE,CAnCD,CAmCGA,MAAyBA,IAAuB,CAAC,IAiBpD,SAAWC,GAEPA,EAAkBA,EAA0B,OAAI,GAAK,SAErDA,EAAkBA,EAAmC,gBAAI,GAAK,kBAE9DA,EAAkBA,EAAmC,gBAAI,GAAK,kBAE9DA,EAAkBA,EAAmC,gBAAI,IAAM,kBAE/DA,EAAkBA,EAA8B,WAAI,IAAM,aAE1DA,EAAkBA,EAAmC,gBAAI,IAAM,kBAE/DA,EAAkBA,EAA+B,YAAI,KAAO,cAE5DA,EAAkBA,EAAmC,gBAAI,KAAO,kBAEhEA,EAAkBA,EAA8B,WAAI,KAAO,aAE3DA,EAAkBA,EAAmC,gBAAI,MAAQ,kBAEjEA,EAAkBA,EAA+B,YAAI,MAAQ,cAE7DA,EAAkBA,EAA2B,QAAI,MAAQ,SAC5D,CAzBD,CAyBGA,MAAsBA,IAAoB,CAAC,IAqB9C,SAAWC,GAEPA,EAAoBA,EAA0B,KAAI,GAAK,OAEvDA,EAAoBA,EAA0C,qBAAI,GAAK,uBAEvEA,EAAoBA,EAA0C,qBAAI,GAAK,uBAEvEA,EAAoBA,EAAqC,gBAAI,GAAK,kBAElEA,EAAoBA,EAAqC,gBAAI,IAAM,kBAEnEA,EAAoBA,EAAqC,gBAAI,IAAM,kBAEnEA,EAAoBA,EAAqC,gBAAI,IAAM,kBAEnEA,EAAoBA,EAAgC,WAAI,KAAO,aAE/DA,EAAoBA,EAAgC,WAAI,KAAO,aAE/DA,EAAoBA,EAAiC,YAAI,KAAO,cAEhEA,EAAoBA,EAAiC,YAAI,MAAQ,cAEjEA,EAAoBA,EAA4B,OAAI,MAAQ,SAE5DA,EAAoBA,EAAgC,WAAI,MAAQ,aAEhEA,EAAoBA,EAA6B,QAAI,MAAQ,UAE7DA,EAAoBA,EAA+B,UAAI,MAAQ,YAE/DA,EAAoBA,EAAyB,IAAI,OAAS,KAC7D,CAjCD,CAiCGA,MAAwBA,IAAsB,CAAC,IAGlD,SAAWC,GACPA,EAAaA,EAAmB,KAAI,GAAK,OACzCA,EAAaA,EAAkB,IAAI,GAAK,MACxCA,EAAaA,EAAkB,IAAI,GAAK,MACxCA,EAAaA,EAAoB,MAAI,GAAK,QAC1CA,EAAaA,EAAmB,KAAI,GAAK,OACzCA,EAAaA,EAAmB,KAAI,GAAK,MAC5C,CAPD,CAOGA,MAAiBA,IAAe,CAAC,IM3LpC,IAAIiQ,IAAgC,WAChC,SAASA,IAoBLvgkC,KAAKu1iC,MAAQ,CAAEr7hC,EAAG,GAAKC,EAAG,IAC1Bna,KAAKwgkC,YAAc,CAAEtmjC,EAAG,EAAGC,EAAG,EAAGo3Z,MAAO,GAIxCvxa,KAAKygkC,QAAS,EAIdzgkC,KAAKuyV,QAAU,EAIfvyV,KAAKwyV,QAAU,EAIfxyV,KAAKu/7B,aAAe,EAIpBv/7B,KAAK41gB,eAAYvygB,EAIjBrD,KAAKipgB,cAAW5lgB,EAIhBrD,KAAK82H,cAAWzzH,EAIhBrD,KAAK4lc,eAAYvic,EAIjBrD,KAAKwe,WAAQnb,EAIbrD,KAAK4oJ,YAASvlJ,EASdrD,KAAK0gkC,oBAAsB,OAS3B1gkC,KAAK24wB,kBAAoB,OAIzB34wB,KAAK6vS,SAAU,EAIf7vS,KAAKkxwB,YAAc,EAInBlxwB,KAAKqvT,OAAS,CAAE1rL,KAAM,EAAGC,MAAO,EAAGsqB,IAAK,EAAGymI,OAAQ,GAMnD30R,KAAK2gkC,aAAe,QAOpB3gkC,KAAKu4D,UAAY03/B,IAAgB2Q,KAAO3Q,IAAgB4Q,OAIxD7gkC,KAAKmG,MAAQ,CAAEqgF,KAAM,QAASi3Y,YAAa,QAASnvV,QAAS,EAAGc,YAAa,GAI7EpvI,KAAK8gkC,YAAc,IAAIp/H,IAIvB1h8B,KAAK28wB,WAAa,IAAI+kL,IAItB1h8B,KAAKw1iC,gBAAkB,EAEvBx1iC,KAAK+gkC,kBAAmB,EAIxB/gkC,KAAK2kwB,OAAS,IAAIk9L,IAAK,EAAG,EAAG,EAAG,GAIhC7h8B,KAAKghkC,YAAa,EAKlBhhkC,KAAKihkC,eAAgB,EAErBjhkC,KAAKkhkC,wBAAyB,EAK9BlhkC,KAAKmhkC,eAAiBjR,IAAch+3B,KAEpClyL,KAAKkqF,cAAW7mF,EAChBrD,KAAKohkC,cAAW/9jC,EAEhBrD,KAAKqhkC,OAAQ,EACbrhkC,KAAKshkC,oBAAiBj+jC,CAC1B,CA8GA,OApGAk9jC,EAAe5vjC,UAAU4wjC,6BAA+B,SAAUrnjC,EAAGC,EAAGo2C,GACpEvwD,KAAKohkC,SAAW7wgC,EAChBvwD,KAAKkqF,SAAW,CAAEhwE,EAAGA,EAAGC,EAAGA,EAC/B,EAKAomjC,EAAe5vjC,UAAU6wjC,oBAAsB,SAAUnrjC,GACrD,QAAsBhT,IAAlBrD,KAAKkqF,SACL,MAAsB,aAAlBlqF,KAAKohkC,SACEphkC,KAAKkqF,SAGL,CACHhwE,EAAGla,KAAKkqF,SAAShwE,EAAI7D,EAAKmI,MAAOrE,EAAGna,KAAKkqF,SAAS/vE,EAAI9D,EAAKuyI,OAK3E,EACAnpJ,OAAO4c,eAAekkjC,EAAe5vjC,UAAW,cAAe,CAC3D+F,IAAK,WACD,OAAO1W,KAAKshkC,gBAAkBthkC,KAAK2kwB,MACvC,EAKAjrvB,IAAK,SAAUirvB,GACX3kwB,KAAKshkC,eAAiB38T,CAC1B,EACAxsvB,YAAY,EACZE,cAAc,IAMlBkojC,EAAe5vjC,UAAU44P,QAAU,SAAUkksB,GACzC,IAAIjv7B,OAAuBnb,IAAfrD,KAAKwe,MAAsBxe,KAAKwe,OAASiv7B,EAAcjv7B,OAAS,GAAKxe,KAAKqvT,OAAO1rL,KAAO3jI,KAAKqvT,OAAOzrL,MAC5GglB,OAAyBvlJ,IAAhBrD,KAAK4oJ,OAAuB5oJ,KAAK4oJ,QAAU6kzB,EAAc7kzB,QAAU,GAAK5oJ,KAAKqvT,OAAOnhK,IAAMluJ,KAAKqvT,OAAO16B,OAKnH,OAJA30R,KAAK8gkC,YAAc,IAAIp/H,IAAKlj7B,EAAOoqI,GAC/B5oJ,KAAKkhkC,yBACLlhkC,KAAK8gkC,YAAc9gkC,KAAKyhkC,oBAAoBzhkC,KAAK8gkC,YAAarzH,IAE3Dzt8B,KAAK8gkC,WAChB,EAKAP,EAAe5vjC,UAAU+wjC,QAAU,SAAUZ,GAGzC,OAFA9gkC,KAAK28wB,WAAamkT,EAClB9gkC,KAAK2hkC,eACE3hkC,KAAK28wB,UAChB,EAIA4jT,EAAe5vjC,UAAUgxjC,aAAe,WACpC3hkC,KAAK2kwB,ODrKN,SAAmBxvvB,GACtB,IACIysjC,EADAj9T,EAAS,IAAIk9L,IAGbggI,GADJD,EAAU5B,IAA4B7qjC,IACb0sjC,WACrBC,EAAYF,EAAQE,UACpBC,EAAeH,EAAQG,aACvBC,EAAcJ,EAAQI,YACtBp1T,EAAUg1T,EAAQh1T,QAClB0wT,EAAWsE,EAAQtE,SACnBC,EAAaqE,EAAQrE,WACrBC,EAAcoE,EAAQpE,YAK1B,GAJArojC,EAAQysjC,QAAU,CACdh1T,QAASA,EAASk1T,UAAWA,EAAWxE,SAAUA,EAAUuE,WAAYA,EACxEG,YAAaA,EAAazE,WAAYA,EAAYwE,aAAcA,EAAcvE,YAAaA,GAEnE,IAAxBrojC,EAAQ+7vB,aAAiD,IAA5B/7vB,EAAQqgiC,gBAAuB,CAC5D,IAAInta,EAASura,MACbO,IAAa9ra,EAAQlznB,EAAQ+7vB,YAAc/7vB,EAAQqgiC,gBAAiBrgiC,EAAQo9U,QAASp9U,EAAQq9U,SAC7Fr9U,EAAQysjC,QAAQh1T,QAAUA,EAAUknS,IAAuBzra,EAAQukI,GACnEz3vB,EAAQysjC,QAAQE,UAAYA,EAAYhuB,IAAuBzra,EAAQy5b,GACvE3sjC,EAAQysjC,QAAQtE,SAAWA,EAAWxpB,IAAuBzra,EAAQi1b,GACrEnojC,EAAQysjC,QAAQC,WAAaA,EAAa/tB,IAAuBzra,EAAQw5b,GACzE1sjC,EAAQysjC,QAAQI,YAAcA,EAAcluB,IAAuBzra,EAAQ25b,GAC3E7sjC,EAAQysjC,QAAQrE,WAAaA,EAAazpB,IAAuBzra,EAAQk1b,GACzEpojC,EAAQysjC,QAAQG,aAAeA,EAAejuB,IAAuBzra,EAAQ05b,GAC7E5sjC,EAAQysjC,QAAQpE,YAAcA,EAAc1pB,IAAuBzra,EAAQm1b,EAE/E,CASA,OARA74T,EAASk9L,IAAK47H,SAAS,CAAC7wT,EAAS0wT,EAAUC,EAAYC,IACvDrojC,EAAQysjC,QAAQj+7B,KAAOghoB,EAAOhhoB,KAC9BxuH,EAAQysjC,QAAQh+7B,MAAQ+goB,EAAO/goB,MAC/BzuH,EAAQysjC,QAAQ1z6B,IAAMy2mB,EAAOz2mB,IAC7B/4I,EAAQysjC,QAAQjtyB,OAASgwe,EAAOhwe,OAChCx/Q,EAAQysjC,QAAQ7lyB,OAAS4oe,EAAO5oe,OAChC5mR,EAAQysjC,QAAQpjjC,MAAQmmvB,EAAOnmvB,MAC/BrJ,EAAQysjC,QAAQh56B,OAAS+7mB,EAAO/7mB,OACzB+7mB,CACX,CC+HsBi/S,CAAU5jjC,KAC5B,EAMAugkC,EAAe5vjC,UAAU8wjC,oBAAsB,SAAUX,EAAarzH,GA8BlE,OA5BIzt8B,KAAKihkC,eAAkBjhkC,KAAKwe,OAAUxe,KAAKipgB,UAAajpgB,KAAK82H,WAC7Dgq8B,EAAYtijC,MAAQ,KAEpBxe,KAAKihkC,eAAkBjhkC,KAAK4oJ,QAAW5oJ,KAAK41gB,WAAc51gB,KAAK4lc,YAC/Dk7nB,EAAYl46B,OAAS,UAELvlJ,IAAhBy9jC,QAA4Cz9jC,IAAfrD,KAAKwe,YAClBnb,IAAhBrD,KAAK4oJ,WACLk46B,EAAcA,GAAe,IAAIp/H,KACrBlj7B,WAAuBnb,IAAfrD,KAAKwe,OAAuBiv7B,EAAcjv7B,OAAS,GACjExe,KAAKqvT,OAAO1rL,KAAO3jI,KAAKqvT,OAAOzrL,MAAQ5jI,KAAKwe,MAClDsijC,EAAYl46B,YAAyBvlJ,IAAhBrD,KAAK4oJ,QAAwB6kzB,EAAc7kzB,QAAU,GACpE5oJ,KAAKqvT,OAAOnhK,IAAMluJ,KAAKqvT,OAAO16B,OAAS30R,KAAK4oJ,aAGhCvlJ,IAAlBrD,KAAKipgB,WACL63jB,EAAYtijC,MAAQ5a,KAAKqpC,IAAI6zhC,EAAYtijC,MAAOxe,KAAKipgB,gBAElC5lgB,IAAnBrD,KAAK41gB,YACLkrjB,EAAYl46B,OAAShlJ,KAAKqpC,IAAI6zhC,EAAYl46B,OAAQ5oJ,KAAK41gB,iBAGrCvygB,IAAlBrD,KAAK82H,WACLgq8B,EAAYtijC,MAAQ5a,KAAKgmD,IAAIk3gC,EAAYtijC,MAAOxe,KAAK82H,gBAElCzzH,IAAnBrD,KAAK4lc,YACLk7nB,EAAYl46B,OAAShlJ,KAAKgmD,IAAIk3gC,EAAYl46B,OAAQ5oJ,KAAK4lc,YAEpDk7nB,CACX,EACOP,CACX,CArQoC,GCPhCr6gC,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAmBzC67gC,IAA6B,SAAUn7gC,GAKvC,SAASm7gC,IACL,IAAI3ikC,EAAQwnD,EAAOnnD,KAAKK,OAASA,KAwBjC,OApBAV,EAAMsqC,YAAc,GAEpBtqC,EAAM4ikC,YAAa,EAEnB5ikC,EAAM6ikC,mBAAoB,EAE1B7ikC,EAAMggkC,QAAS,EACfhgkC,EAAM+7jB,UAAY,GAIlB/7jB,EAAM6G,MAAQ,CACVswH,MAAO,QAASjwC,KAAM,cAAei3Y,YAAa,QAClDruV,YAAa,EAAGozU,WAAY,QAASvjK,SAAU,GAAI26c,WAAY,gBAC/DslU,aAAc,mBAAoB16lB,UAAW,SAAUl0W,QAAQ,EAAOF,MAAM,EAC5Eqmd,eAAgB,OAAQy+d,gBAAiB,GAAI5m6B,QAAS,EACtD+w7B,aAAc,QAElB//jC,EAAM6G,MAAMqgF,KAAO,cACnBlnF,EAAM6G,MAAMs3d,YAAc,cACnBn+d,CACX,CA2FA,OAzHA4mD,IAAU+7gC,EAAan7gC,GA+BvBrnD,OAAO4c,eAAe4ljC,EAAYtxjC,UAAW,UAAW,CAIpD+F,IAAK,WACD,OAAO1W,KAAK4pC,WAChB,EAIAlwB,IAAK,SAAU9X,GACP5B,KAAK4pC,cAAgBhoC,IACrB5B,KAAK4pC,YAAchoC,EACnB5B,KAAKygkC,QAAS,EACdzgkC,KAAKs/jC,QAAS,EAEtB,EACAnnjC,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAe4ljC,EAAYtxjC,UAAW,aAAc,CAIvD+F,IAAK,WACD,OAAO1W,KAAKq7jB,SAChB,EAIA3hjB,IAAK,SAAU9X,GACX5B,KAAKq7jB,UAAYz5jB,CACrB,EACAuW,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAe4ljC,EAAYtxjC,UAAW,aAAc,CAIvD+F,IAAK,WACD,OAAO1W,KAAKoikC,cAChB,EAIA1ojC,IAAK,SAAU9X,GACX5B,KAAKoikC,eAAiBxgkC,CAC1B,EACAuW,YAAY,EACZE,cAAc,IAGlB4pjC,EAAYtxjC,UAAU0xjC,mBAAqB,WACvCrikC,KAAKygkC,QAAS,CAClB,EAKAwB,EAAYtxjC,UAAU44P,QAAU,SAAUkksB,GACtC,IAAIp37B,EAcJ,OAZIA,EADArW,KAAKygkC,QAAUzgkC,KAAKkikC,WACbluK,IAAYh05B,KAAMA,KAAKmG,MAAOnG,KAAK+U,QAAS/U,KAAKwe,OAASiv7B,EAAcjv7B,OAGxExe,KAAK8gkC,iBAEGz9jC,IAAfrD,KAAKwe,YAAuCnb,IAAhBrD,KAAK4oJ,OACjC5oJ,KAAK8gkC,YAAc,IAAIp/H,IAAKrr7B,EAAKmI,MAAOnI,EAAKuyI,QAG7C5oJ,KAAK8gkC,YAAc,IAAIp/H,IAAK1h8B,KAAKwe,MAAOxe,KAAK4oJ,QAEjD5oJ,KAAK8gkC,YAAc9gkC,KAAKyhkC,oBAAoBzhkC,KAAK8gkC,YAAarzH,GACvDzt8B,KAAK8gkC,WAChB,EAKAmB,EAAYtxjC,UAAU+wjC,QAAU,SAAUZ,GAOtC,OANIA,EAAYtijC,QAAUxe,KAAK28wB,WAAWn+vB,OAASsijC,EAAYl46B,SAAW5oJ,KAAK28wB,WAAW/znB,QAAU5oJ,KAAKygkC,UACrGzgkC,KAAKs/jC,QAAS,GAElBt/jC,KAAK28wB,WAAamkT,EAClB9gkC,KAAK2hkC,eACL3hkC,KAAKygkC,QAAS,EACPzgkC,KAAK28wB,UAChB,EACOslT,CACX,CA3HiC,CA2H/B1B,KC9IEr6gC,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAoBzCysE,IAA2B,SAAU/rE,GAErC,SAAS+rE,IACL,IAAIvzH,EAAmB,OAAXwnD,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,KAOhE,OALAV,EAAMgjkC,mBAAgBj/jC,EAEtB/D,EAAMijkC,iBAAkB,EAExBjjkC,EAAMkjkC,gBAAkB,EACjBljkC,CACX,CAkLA,OA5LA4mD,IAAU2sE,EAAW/rE,GAcrB+rE,EAAUliH,UAAU01C,YAAc,WAC9B,YAAsBhjD,IAAlBrD,KAAK8F,UAA0B9F,KAAK8F,SAAS1C,OAAS,CAI9D,EAMAyvH,EAAUliH,UAAU44P,QAAU,SAAUkksB,GAEpCzt8B,KAAKsikC,mBAAgBj/jC,EACrB,IACI8jD,EAIAs7gC,EALAC,OAAUr/jC,EAMd,GAAIrD,KAAKqmD,cAAe,CAEpB,IAAK,IAAIl6C,EAAI,EAAGA,EAAInM,KAAK8F,SAAS1C,OAAQ+I,IAAK,CAET,aADlCg7C,EAAQnnD,KAAK8F,SAASymB,SAASpgB,EAAE2K,WAAY,MACnC4pjC,qBAAsCjzH,EAAcjv7B,QAC1Div7B,EAAcjv7B,MAAQ2oC,EAAMw9sB,OAAOnmvB,OAEP,YAA5B2oC,EAAMwxtB,mBAAoC80L,EAAc7kzB,SACxD6kzB,EAAc7kzB,OAASzhG,EAAMw9sB,OAAO/7mB,QAExC,IAAI31H,EAAsC,YAA9Bk0B,EAAMu5gC,qBAAiE,YAA5Bv5gC,EAAMwxtB,mBACzD34wB,KAAKuikC,iBAAmBtviC,GAAUk0B,aAAiB0rE,QAAuCxvH,IAA1B8jD,EAAMo7gC,kBACtEp7gC,EAAMoiN,QAAQkksB,GAElBg1H,EAAczikC,KAAK2ikC,kBAAkBx7gC,GACH,YAA9BA,EAAMu5gC,qBAAiE,YAA5Bv5gC,EAAMwxtB,uBACtBt1wB,IAAvBrD,KAAKsikC,cACLtikC,KAAKsikC,cAAgBG,EAGrBzikC,KAAKsikC,cAAcvF,UAAU0F,IAG5BzikC,KAAK28wB,YAAe38wB,KAAK28wB,WAAWn+vB,OAAUxe,KAAK28wB,WAAW/znB,QAClEzhG,EAAM45gC,kBAAkD,YAA9B55gC,EAAMu5gC,qBAAiE,YAA5Bv5gC,EAAMwxtB,yBACjDt1wB,IAAvBrD,KAAKsikC,cACLtikC,KAAKsikC,cAAgBn7gC,EAAMw9sB,OAG3B3kwB,KAAKsikC,cAAcvF,UAAU51gC,EAAMw9sB,QAG/C,CACA,QAA2BthwB,IAAvBrD,KAAKsikC,eAAoD,IAArBtikC,KAAKkxwB,YAAmB,CAC5D,IAAI0xT,EAAW,CACX1ojC,EAAGla,KAAKsikC,cAAcpojC,EAAIla,KAAKsikC,cAAc9jjC,MAAQxe,KAAKu1iC,MAAMr7hC,EAChEC,EAAGna,KAAKsikC,cAAcnojC,EAAIna,KAAKsikC,cAAc156B,OAAS5oJ,KAAKu1iC,MAAMp7hC,GAEjE0ojC,EAAWvC,IAAYtgkC,KAAKkxwB,iBAAa7twB,OAAWA,EAAWu/jC,GACnE5ikC,KAAKsikC,cAAcpojC,EAAI2ojC,EAAS3ojC,EAAIla,KAAKsikC,cAAc9jjC,MAAQxe,KAAKu1iC,MAAMr7hC,EAC1Ela,KAAKsikC,cAAcnojC,EAAI0ojC,EAAS1ojC,EAAIna,KAAKsikC,cAAc156B,OAAS5oJ,KAAKu1iC,MAAMp7hC,CAC/E,CACIna,KAAKsikC,gBACLI,EAAU,IAAIhhI,IAAK1h8B,KAAKsikC,cAAc9jjC,MAAOxe,KAAKsikC,cAAc156B,QAExE,CAIA,OAHA856B,EAAU1ikC,KAAKyhkC,oBAAoBiB,EAASj1H,GAC5Czt8B,KAAK8ikC,gBAAgBJ,GACrB1ikC,KAAK8gkC,YAAc4B,EACZA,CACX,EAKA7v8B,EAAUliH,UAAU+wjC,QAAU,SAAUZ,GACpC,IAAI35gC,EAEAs7gC,EAAczikC,KAAKsikC,cACvB,GAAIG,EAAa,CACLzikC,KAAKuyV,QACLvyV,KAAKwyV,QAIb,GAHAxyV,KAAKuyV,QAAUkwuB,EAAYvojC,EAAIuojC,EAAYjkjC,MAAQxe,KAAKu1iC,MAAMr7hC,EAC9Dla,KAAKwyV,QAAUiwuB,EAAYtojC,EAAIsojC,EAAY756B,OAAS5oJ,KAAKu1iC,MAAMp7hC,EAE3Dna,KAAKqmD,cAEL,IAAK,IAAIl6C,EAAI,EAAGA,EAAInM,KAAK8F,SAAS1C,OAAQ+I,IAAK,CAE3C,IAAIu1jC,GAAU,EACoB,aAFlCv6gC,EAAQnnD,KAAK8F,SAASymB,SAASpgB,EAAE2K,WAAY,MAEnC4pjC,sBACNv5gC,EAAMorS,QAAUvyV,KAAKuyV,QACrBprS,EAAMqu/B,gBAAkBx1iC,KAAKw1iC,gBAAkBx1iC,KAAKkxwB,YACpDwwT,GAAU,GAEkB,YAA5Bv6gC,EAAMwxtB,oBACNxxtB,EAAMqrS,QAAUxyV,KAAKwyV,QACrBrrS,EAAMqu/B,gBAAkBx1iC,KAAKw1iC,gBAAkBx1iC,KAAKkxwB,YACpDwwT,GAAU,IAEVA,GAAW1hkC,KAAKuikC,iBAAoBp7gC,aAAiB0rE,QAAuCxvH,IAA1B8jD,EAAMo7gC,kBACxEp7gC,EAAMu6gC,QAAQv6gC,EAAM25gC,YAE5B,CAER,CAIA,OAHA9gkC,KAAK28wB,WAAamkT,EAClB9gkC,KAAK2hkC,eACL3hkC,KAAKwikC,gBAAkBxikC,KAAKkxwB,YACrB4vT,CACX,EAMAju8B,EAAUliH,UAAUmyjC,gBAAkB,SAAUzsjC,GAC5C,GAAIrW,KAAKqmD,cACL,IAAK,IAAI/2C,EAAK,EAAGgmC,EAAKt1C,KAAK8F,SAAUwJ,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CACvD,IAAI63C,EAAQ7R,EAAGhmC,GACmB,YAA9B63C,EAAMu5gC,0BAAiEr9jC,IAA5B8jD,EAAM25gC,YAAYtijC,QAC7D2oC,EAAM25gC,YAAYtijC,MAAQnI,EAAKmI,MAAQ2oC,EAAMkoQ,OAAO1rL,KAAOx8E,EAAMkoQ,OAAOzrL,OAE5C,YAA5Bz8E,EAAMwxtB,wBAAgEt1wB,IAA7B8jD,EAAM25gC,YAAYl46B,SAC3DzhG,EAAM25gC,YAAYl46B,OAASvyI,EAAKuyI,OAASzhG,EAAMkoQ,OAAOnhK,IAAM/mG,EAAMkoQ,OAAO16B,QAEzExtO,aAAiB0rE,GACjB1rE,EAAM27gC,gBAAgB37gC,EAAM25gC,YAEpC,CAER,EAMAju8B,EAAUliH,UAAUoyjC,0BAA4B,SAAU57gC,EAAO40O,GAC7D,IACIr+Q,EHaL,SAAmBkvvB,EAAS/7vB,GAG/B,MAAO,CACHqJ,EAHO0yvB,EAAQ1yvB,EAAIrJ,EAAIiwjC,YAAYtijC,MAAQ3N,EAAI0kiC,MAAMr7hC,EAG5CC,EAFFyyvB,EAAQzyvB,EAAItJ,EAAIiwjC,YAAYl46B,OAAS/3I,EAAI0kiC,MAAMp7hC,EAI9D,CGnBqB6ojC,CADC,CAAE9ojC,EAAG6hR,EAAO7hR,EAAIitC,EAAM25gC,YAAYtijC,MAAQ,EAAGrE,EAAG4hR,EAAO5hR,EAAIgtC,EAAM25gC,YAAYl46B,OAAS,GACpEzhG,GAEhCzpC,EAAS4ijC,IAAYn5gC,EAAM+ptB,YAAan1e,EAAO7hR,EAAG6hR,EAAO5hR,EAAGuD,GAE5DA,EAAS4ijC,IAAYtgkC,KAAKkxwB,YAAclxwB,KAAKw1iC,gBAAiBx1iC,KAAKuyV,QAASvyV,KAAKwyV,QAAS90U,GAC1FypC,EAAMorS,QAAU70U,EAAOxD,EACvBitC,EAAMqrS,QAAU90U,EAAOvD,CAC3B,EAEA04G,EAAUliH,UAAUgyjC,kBAAoB,SAAUx7gC,GAC9C,IACI87gC,EACJA,EAAY97gC,EAAM25gC,YAAYv/jC,QACd4lD,EAAM+ptB,YAAclxwB,KAAKkxwB,YAAzC,IACIgyT,EAAgB/7gC,EAAMorS,QAAtB2wuB,EAAkC/7gC,EAAMqrS,QACxC7uN,EAAOu/7B,EAAaD,EAAUzkjC,MAAQ2oC,EAAMou/B,MAAMr7hC,EAClDg0I,EAAMg16B,EAAaD,EAAUr66B,OAASzhG,EAAMou/B,MAAMp7hC,EAClDypH,EAAQD,EAAOs/7B,EAAUzkjC,MACzBm2Q,EAASzmI,EAAM+06B,EAAUr66B,OACzBgknB,EAAU,CAAE1yvB,EAAGypH,EAAMxpH,EAAG+zI,GACxBov6B,EAAW,CAAEpjjC,EAAG0pH,EAAOzpH,EAAG+zI,GAC1Bqv6B,EAAa,CAAErjjC,EAAGypH,EAAMxpH,EAAGw6Q,GAC3B6oyB,EAAc,CAAEtjjC,EAAG0pH,EAAOzpH,EAAGw6Q,GAWjC,OAVAi4e,EAAU0zT,IAAYn5gC,EAAM+ptB,YAAa/ptB,EAAMorS,QAASprS,EAAMqrS,QAASo6a,GACvE0wT,EAAWgD,IAAYn5gC,EAAM+ptB,YAAa/ptB,EAAMorS,QAASprS,EAAMqrS,QAAS8quB,GACxEC,EAAa+C,IAAYn5gC,EAAM+ptB,YAAa/ptB,EAAMorS,QAASprS,EAAMqrS,QAAS+quB,GAC1EC,EAAc8C,IAAYn5gC,EAAM+ptB,YAAa/ptB,EAAMorS,QAASprS,EAAMqrS,QAASgruB,GAClD,IAArBx9jC,KAAKkxwB,cACLtE,EAAU0zT,KAAatgkC,KAAKkxwB,iBAAa7twB,OAAWA,EAAWupwB,GAC/D0wT,EAAWgD,KAAatgkC,KAAKkxwB,iBAAa7twB,OAAWA,EAAWi6jC,GAChEC,EAAa+C,KAAatgkC,KAAKkxwB,iBAAa7twB,OAAWA,EAAWk6jC,GAClEC,EAAc8C,KAAatgkC,KAAKkxwB,iBAAa7twB,OAAWA,EAAWm6jC,IAEhE37H,IAAK47H,SAAS,CAAC7wT,EAAS0wT,EAAUC,EAAYC,GACzD,EACO3q8B,CACX,CA9L+B,CA8L7B0t8B,KClNEr6gC,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAazC2pS,IAA0C,SAAUxoJ,EAAYl/L,EAAQiE,EAAKkkB,GAC7E,IAA2HhvB,EAAvH6e,EAAIld,UAAUC,OAAQkgH,EAAIjjG,EAAI,EAAIhY,EAAkB,OAATmoB,EAAgBA,EAAO/wB,OAAOk+B,yBAAyBt1B,EAAQiE,GAAOkkB,EACrH,GAAuB,kBAAZuN,SAAoD,oBAArBA,QAAQiyT,SAAyB1sO,EAAIvlF,QAAQiyT,SAASzoJ,EAAYl/L,EAAQiE,EAAKkkB,QACpH,IAAK,IAAIrkB,EAAIo7L,EAAWnkM,OAAS,EAAG+I,GAAK,EAAGA,KAAS3K,EAAI+lM,EAAWp7L,MAAIm3G,GAAKjjG,EAAI,EAAI7e,EAAE8hH,GAAKjjG,EAAI,EAAI7e,EAAE6G,EAAQiE,EAAKg3G,GAAK9hH,EAAE6G,EAAQiE,KAASg3G,GAChJ,OAAOjjG,EAAI,GAAKijG,GAAK7jH,OAAO4c,eAAehU,EAAQiE,EAAKg3G,GAAIA,CAChE,EAUI6/8B,IAA0B,SAAUr8gC,GAEpC,SAASq8gC,IACL,OAAkB,OAAXr8gC,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CA0DA,OA7DAkmD,IAAUi9gC,EAAUr8gC,GAWpBq8gC,EAASxyjC,UAAUwmB,KAAO,SAAUisiC,GAChC,IAAIt2jC,EAAY,IAAI+lH,IAGpB,GAFA/lH,EAAUy1jC,iBAAkB,EAC5Bz1jC,EAAUhH,SAAW,GACjB9F,KAAKmpjC,YAAcnpjC,KAAKmpjC,WAAW/ljC,OAAS,EAC5C,IAAK,IAAI+I,EAAI,EAAGA,EAAInM,KAAKmpjC,WAAW/ljC,OAAQ+I,IAAK,CAC7C,IACIhC,EADOi5jC,EAAQn6B,UAAUlkR,UAAU/kxB,KAAKmpjC,WAAW58hC,SAASpgB,EAAE2K,WAAY,KAAKqf,IAChEhsB,QACnB2C,EAAUhH,SAASsG,KAAKjC,EAC5B,MAEC,GAAInK,KAAKo1M,YACV,IAASjpM,EAAI,EAAGA,EAAInM,KAAKo1M,YAAYhyM,OAAQ+I,IACzC,IAAK4/T,GAAkB/rU,KAAKo1M,YAAY7oL,SAASpgB,EAAE2K,WAAY,MAAO,CAE9D3M,EADOi5jC,EAAQn6B,UAAUlkR,UAAU/kxB,KAAKo1M,YAAY7oL,SAASpgB,EAAE2K,WAAY,KAAKqf,IACjEhsB,QACnB2C,EAAUhH,SAASsG,KAAKjC,EAC5B,CAIR,OADAnK,KAAKmK,QAAU2C,EACRA,CACX,EACAijV,IAAW,CACPjB,GAAS,OACVq0uB,EAASxyjC,UAAW,eAAW,GAClCo/U,IAAW,CACPb,GAAW,GAAIg8tB,MAChBiY,EAASxyjC,UAAW,mBAAe,GACtCo/U,IAAW,CACPb,GAAW,GAAIk8tB,MAChB+X,EAASxyjC,UAAW,kBAAc,GACrCo/U,IAAW,CACPjB,MACDq0uB,EAASxyjC,UAAW,aAAS,GAChCo/U,IAAW,CACPjB,MACDq0uB,EAASxyjC,UAAW,cAAU,GACjCo/U,IAAW,CACPjB,GAAS,IACVq0uB,EAASxyjC,UAAW,mBAAe,GACtCo/U,IAAW,CACPjB,GAAS,IACVq0uB,EAASxyjC,UAAW,eAAW,GAClCo/U,IAAW,CACPjB,GAAS,IACVq0uB,EAASxyjC,UAAW,eAAW,GAClCo/U,IAAW,CACPd,GAAQ,CAAE/0U,EAAG,GAAKC,EAAG,IAAO0pxB,MAC7Bs/R,EAASxyjC,UAAW,aAAS,GACzBwyjC,CACX,CA/D8B,CA+D5BhvuB,IC3FEjuS,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAqBzCi9gC,IAA6B,SAAUv8gC,GAKvC,SAASu8gC,IACL,IAAI/jkC,EAAQwnD,EAAOnnD,KAAKK,OAASA,KAkBjC,OAdAV,EAAMgkkC,SAAW,GAIjBhkkC,EAAMikkC,eAAgB,EAItBjkkC,EAAMkkkC,aAAe,GAErBlkkC,EAAMmkkC,gBAAiB,EAGvBnkkC,EAAMokkC,eAAiB,IAAI7hI,IACpBvi8B,CACX,CA4FA,OApHA4mD,IAAUm9gC,EAAav8gC,GAyBvBrnD,OAAO4c,eAAegnjC,EAAY1yjC,UAAW,OAAQ,CAIjD+F,IAAK,WACD,OAAO1W,KAAKsjkC,QAChB,EAIA5pjC,IAAK,SAAU9X,GACP5B,KAAKsjkC,WAAa1hkC,IAClB5B,KAAKsjkC,SAAW1hkC,EAChB5B,KAAKygkC,QAAS,EAEtB,EACAtojC,YAAY,EACZE,cAAc,IAMlBgrjC,EAAY1yjC,UAAU44P,QAAU,SAAUkksB,GAqBtC,OAnBIzt8B,KAAKghkC,iBAA6B39jC,IAAfrD,KAAKwe,YAAuCnb,IAAhBrD,KAAK4oJ,OACpD5oJ,KAAK0jkC,eAAiB,IAAI7hI,IAAK7h8B,KAAKuyV,QAAUvyV,KAAKwe,MAAQxe,KAAKu1iC,MAAMr7hC,EAAGla,KAAKwyV,QAAUxyV,KAAK4oJ,OAAS5oJ,KAAKu1iC,MAAMp7hC,EAAGna,KAAKwe,MAAOxe,KAAK4oJ,UAEhI5oJ,KAAKygkC,SAAWzgkC,KAAKujkC,oBAAiClgkC,IAAfrD,KAAKwe,YAAuCnb,IAAhBrD,KAAK4oJ,QACxE5oJ,KAAK0jkC,gBAAiD,IAA/B1jkC,KAAK0jkC,eAAe966B,UAAiB5oJ,KAAKyjkC,iBAEtEzjkC,KAAK0jkC,eAAiBxF,IAAYl+jC,KAAKkqC,KAAOlqC,KAAKkqC,KAAO,UAE3C7mC,IAAfrD,KAAKwe,MACLxe,KAAK8gkC,YAAc,IAAIp/H,IAAK1h8B,KAAK0jkC,eAAelljC,MAAOxe,KAAK4oJ,QAAU5oJ,KAAK0jkC,eAAe966B,aAErEvlJ,IAAhBrD,KAAK4oJ,OACV5oJ,KAAK8gkC,YAAc,IAAIp/H,IAAK1h8B,KAAKwe,OAASxe,KAAK0jkC,eAAelljC,MAAOxe,KAAK0jkC,eAAe966B,QAGzF5oJ,KAAK8gkC,YAAc,IAAIp/H,IAAK1h8B,KAAKwe,MAAOxe,KAAK4oJ,QAEjD5oJ,KAAK8gkC,YAAc9gkC,KAAKyhkC,oBAAoBzhkC,KAAK8gkC,YAAarzH,GAC9Dzt8B,KAAKyjkC,gBAAiB,EACfzjkC,KAAK8gkC,WAChB,EAKAuC,EAAY1yjC,UAAU+wjC,QAAU,SAAUZ,GAWtC,OAVI9gkC,KAAKygkC,QAAUzgkC,KAAK28wB,WAAWn+vB,QAAUsijC,EAAYtijC,OAASxe,KAAK28wB,WAAW/znB,SAAWk46B,EAAYl46B,UACrG5oJ,KAAKygkC,QAAS,EACdzgkC,KAAKwjkC,aAAexjkC,KAAKwwa,WAAWxwa,KAAKkqC,KAAMlqC,KAAK0jkC,eAAgB5C,GAC/D9gkC,KAAKghkC,aACNhhkC,KAAKw/d,OAAS,OAGtBx/d,KAAK28wB,WAAa38wB,KAAK8gkC,YACvB9gkC,KAAK2hkC,eACL3hkC,KAAKygkC,QAAS,EACPzgkC,KAAK28wB,UAChB,EAOA0mT,EAAY1yjC,UAAU6/Z,WAAa,SAAU8ypB,EAAU3+T,EAAQgY,GAC3D,IAAI2zR,GAAU,EACVqzB,EAAgB,GAChB16wB,GAAU07c,EAAOzqvB,EACjBgvS,GAAUy7c,EAAOxqvB,EACjBs1hC,EAAkB,GAetB,OAdI9yR,EAAWn+vB,QAAUmmvB,EAAOnmvB,OAASm+vB,EAAW/znB,SAAW+7mB,EAAO/7mB,SAClEqgK,EAAS0zd,EAAWn+vB,MAAQqH,OAAO8+uB,EAAOnmvB,MAAQmmvB,EAAOnmvB,MAAQ,GACjE0qS,EAASyzd,EAAW/znB,OAAS/iI,OAAO8+uB,EAAO/7mB,OAAS+7mB,EAAO/7mB,OAAS,GACpE0n5B,GAAU,GAGdb,EAAkBmB,IADlBnB,EAAkBD,IAAgB8zB,IAG9BK,GADCrzB,GAAWtwiC,KAAKygkC,SAAWzgkC,KAAKujkC,ctB0ItC,SAAuBp2hC,EAAKojgC,EAAIC,EAAIvvhC,EAAG2ijC,EAAIC,EAAIC,EAAIC,GACtD,IAEIljb,EACAC,EACAC,EACAC,EACA9moB,EACAC,EACA/W,EACA+I,EACAikiC,EACJ,IAAKl2hC,EAAI,EAAGC,EAAI,EAAGhO,EAAI,EAAG/I,EAAS+pC,EAAI/pC,OAAQ+I,EAAI/I,IAAU+I,EAAG,CAC5D,IACI+jiC,EADM/igC,EAAI5gB,SAASpgB,EAAE2K,WAAY,KAEjC4gB,EAAOw4gC,EAAIloiB,QACX,MAAOkoiB,IACPh2hC,EAAIg2hC,EAAIh2hC,GAER,MAAOg2hC,IACP/1hC,EAAI+1hC,EAAI/1hC,GAER,OAAQ+1hC,IACRpvZ,EAAKovZ,EAAIpvZ,IAET,OAAQovZ,IACRlvZ,EAAKkvZ,EAAIlvZ,IAET,OAAQkvZ,IACRrvZ,EAAKqvZ,EAAIrvZ,IAET,OAAQqvZ,IACRnvZ,EAAKmvZ,EAAInvZ,IAET9/nB,QACU5d,IAAN6W,IACAA,EAAIu2hC,IAAcv2hC,EAAGq2hC,EAAIqzB,EAAIE,SAEvBzgkC,IAAN8W,IACAA,EAAIs2hC,IAAct2hC,EAAGq2hC,EAAIqzB,EAAIE,SAEtB1gkC,IAAPw9oB,IACAA,EAAK4vZ,IAAc5vZ,EAAI0vZ,EAAIqzB,EAAIE,SAExBzgkC,IAAPy9oB,IACAA,EAAK2vZ,IAAc3vZ,EAAI0vZ,EAAIqzB,EAAIE,SAExB1gkC,IAAP09oB,IACAA,EAAK0vZ,IAAc1vZ,EAAIwvZ,EAAIqzB,EAAIE,SAExBzgkC,IAAP29oB,IACAA,EAAKyvZ,IAAczvZ,EAAIwvZ,EAAIqzB,EAAIE,WAIzB1gkC,IAAN6W,IACAA,EAAI2L,QAAQ3L,EAAIq2hC,GAAI7t7B,QAAQ,UAEtBr/G,IAAN8W,IACAA,EAAI0L,QAAQ1L,EAAIq2hC,GAAI9t7B,QAAQ,UAErBr/G,IAAPw9oB,IACAA,EAAKh7nB,QAAQg7nB,EAAK0vZ,GAAI7t7B,QAAQ,UAEvBr/G,IAAPy9oB,IACAA,EAAKj7nB,QAAQi7nB,EAAK0vZ,GAAI9t7B,QAAQ,UAEvBr/G,IAAP09oB,IACAA,EAAKl7nB,QAAQk7nB,EAAKwvZ,GAAI7t7B,QAAQ,UAEvBr/G,IAAP29oB,IACAA,EAAKn7nB,QAAQm7nB,EAAKwvZ,GAAI9t7B,QAAQ,OAItC0t7B,EAASC,IAAeH,EAAKx4gC,EADZ,CAAExd,EAAGA,EAAGC,EAAGA,EAAG0moB,GAAIA,EAAIC,GAAIA,EAAIC,GAAIA,EAAIC,GAAIA,EAAI4uZ,GAAIM,EAAIN,GAAIC,GAAIK,EAAIL,IACpC5uhC,EAAGsvhC,EAAIC,MAElDrjgC,EAAI5gB,SAASpgB,EAAE2K,WAAY,KAAOs5hC,EAO1C,CAEA,OADeS,IAAc1jgC,EAEjC,CsBhO4Bo2hC,CAAc9zB,EAAiBxmvB,EAAQC,EAAQonvB,EAAS3rS,EAAOzqvB,EAAGyqvB,EAAOxqvB,EAAG,EAAG,GAG/E02hC,IAAcpB,GAElCa,GAAU,EACHqzB,CACX,EACON,CACX,CAtHiC,CAsH/B9C,KClIK,SAASyD,IAAmBnzjC,EAAK2ud,GAEpC,IAAIykmB,EADKpzjC,EAAIqzjC,aACUtzjC,MAAM,GAK7B,OAJIqzjC,GAAaA,EAAU7gkC,OAAS,IAChCyN,EAAIszjC,YAAcF,EAAU,GAC5BpzjC,EAAIuzjC,YAAcH,EAAUA,EAAU7gkC,OAAS,IAE5C6gkC,CACX,CAmCO,SAASI,IAAqBC,EAAW9kmB,EAAQrqd,GACpD,IAAIwvvB,EAAS,IAAIk9L,IACb8O,EA9BD,SAAwB2zH,EAAW9kmB,GAKtC,IAJA,IACI+kmB,EADAz3/B,EAAO,GAEP03/B,EAAM,GACNx0jC,EAAI,EACDA,EAAIwvd,EAAOp8d,QACdohkC,EAAIp4jC,KAAK,CAAE8N,EAAGsld,EAAOjzc,SAASvc,EAAE8G,WAAY,KAAKoD,EAAGC,EAAGqld,EAAOjzc,SAASvc,EAAE8G,WAAY,KAAKqD,IAC1FnK,IAEJw0jC,EAAMC,IAAeH,EAAWE,GAChC,IAAK,IAAI1jjC,EAAI,EAAGA,EAAI0jjC,EAAIphkC,OAAQ0d,IAC5ByjjC,EAAQC,EAAIj4iC,SAASzL,EAAEhK,WAAY,KACzB,IAANgK,IACAgsD,EAAO,IAAMy3/B,EAAMrqjC,EAAI,IAAMqqjC,EAAMpqjC,GAEnC2G,EAAI,IACJgsD,GAAQ,KAAYy3/B,EAAMrqjC,EAAI,IAAMqqjC,EAAMpqjC,GAGlD,OAAO2yD,CACX,CAUsB43/B,CAAeJ,EAAW9kmB,GAa5C,OAZAmlS,EAASk9L,IAAK47H,SAASj+lB,GACvBrqd,EAAQqJ,MAAQmmvB,EAAOnmvB,MACvBrJ,EAAQyzI,OAAS+7mB,EAAO/7mB,OACxBzzI,EAAQo9U,QAAUoya,EAAOzqvB,EAAI/E,EAAQqJ,MAAQ,EAC7CrJ,EAAQq9U,QAAUmya,EAAOxqvB,EAAIhF,EAAQyzI,OAAS,EAC9CzzI,EAAQ+0B,KAAOym6B,EACX2zH,EAAUn6jC,UACVm6jC,EAAUn6jC,QAAQooV,QAAUp9U,EAAQo9U,QACpC+xuB,EAAUn6jC,QAAQqoV,QAAUr9U,EAAQq9U,QACpC8xuB,EAAUn6jC,QAAQqU,MAAQmmvB,EAAOnmvB,MACjC8ljC,EAAUn6jC,QAAQy+I,OAAS+7mB,EAAO/7mB,QAE/BzzI,CACX,CAwBO,SAASwvjC,IAAuB9zjC,EAAKsE,EAAS87xB,EAAI2zR,EAAeC,GACpE1vjC,EAAQo9U,QAAU0+c,EAAG/2xB,EACrB/E,EAAQq9U,QAAUy+c,EAAG92xB,EACrB,IA4Y8BqxH,EAzY1Bn1H,EAHAk7Z,EAAQsyX,IAAMwuQ,UAAUphQ,EAAI2zR,GAC5BE,GA2Y0Bt57B,EA3YEq57B,EAAWh0jC,EAAIk0jC,sBAAwBl0jC,EAAIm0jC,uBA6YpEC,IAAgBz57B,IA5YnB4i0B,EAAY,EAEgB,uBAA5Bv97B,EAAIkkiC,qBACJ3mG,EAAYv97B,EAAIu97B,UAChB/37B,EAAO,IAAIqr7B,IAAiB,GAAZ0M,EAA4B,GAAZA,KAGhCA,EAAYv97B,EAAIu97B,WAAa,EAAI,EAAIv97B,EAAIu97B,UACzC/37B,EAAO,IAAIqr7B,IAAiB,EAAZ0M,EAA2B,EAAZA,IAEnCj57B,EAAQojD,UAAY03/B,IAAgB2Q,KACpC5rB,IAAgBnkiC,EAAKsE,GACrBA,EAAQhP,MAAMqgF,KAA0B,eAAlB31E,EAAI8s4B,UAA8B9s4B,EAAI8s4B,UAAY,QACxExo4B,EAAQ+7vB,YAAc3/V,EACtBp8Z,EAAQ+0B,KAAO46hC,EACf3vjC,EAAQsujC,gBAAiB,EACzBtujC,EAAQqJ,MAAQnI,EAAKmI,MACrBrJ,EAAQyzI,OAASvyI,EAAKuyI,OACY,SAA9B/3I,EAAIk0jC,wBACJ5vjC,EAAQqJ,MAAQnI,EAAKmI,MAAQ,GAC7BrJ,EAAQyzI,OAASvyI,EAAKuyI,OAAS,GAEvC,CASO,SAASs86B,IAAoBr0jC,EAAKs0jC,EAAaP,EAAeC,GACjE,IAAIO,EAAS,IAAI/B,IAEjB,OADAsB,IAAuB9zjC,EAAKu0jC,EAAQD,EAAaP,EAAeC,GACzDO,CACX,CAOO,SAASX,IAAeH,EAAWE,GAGtC,OAFAA,EAAI,GAAKa,IAAcf,EAAWE,GAAK,GACvCA,EAAIA,EAAIphkC,OAAS,GAAKiikC,IAAcf,EAAWE,GAAK,GAC7CA,CACX,CAQO,SAASa,IAAcf,EAAW9kmB,EAAQqlmB,GAC7C,IACI3uhC,EACAkD,EAFAktT,EAAQ,CAAEpsV,EAAG,EAAGC,EAAG,GAGnB/W,EAASo8d,EAAOp8d,OACpB8yC,EAAS2uhC,EAAgCrlmB,EAAO,GAA5BA,EAAOp8d,EAAS,GACpCg2C,EAAOyrhC,EAAgCrlmB,EAAO,GAA5BA,EAAOp8d,EAAS,GAClC,IAAIusD,EAAMk0uB,IAAM0uQ,eAAer8/B,EAAOkD,GACtCuW,EAAe,IAARA,EAAa,EAAIA,EACxB,IAAInxC,EAAQ8ljC,EAAUl2H,UACtB9nmB,EAAMpsV,EAAKtW,KAAKmgB,MAAMmyB,EAAMh8B,EAAIsE,GAAS46B,EAAIl/B,EAAIg8B,EAAMh8B,GAAKy1C,GAC5D22S,EAAMnsV,EAAKvW,KAAKmgB,MAAMmyB,EAAM/7B,EAAIqE,GAAS46B,EAAIj/B,EAAI+7B,EAAM/7B,GAAKw1C,GAG5D,OADA22S,EAAQu9b,IAAM8uQ,YAAYrssB,EAAOltT,GAAK,EAAOg2F,GAEjD,CAiHO,SAASk27B,IAAqBz0jC,EAAK2ud,EAAQj2N,GAE9C,IADA,IAAIg8zB,EACKp5jC,EAAI,EAAGA,EAAI0E,EAAI1G,QAAQrE,SAAS1C,OAAQ+I,IAAK,CAClD,IAAIq5jC,EAAgB30jC,EAAI1G,QAAQrE,SAASymB,SAASpgB,EAAE2K,WAAY,KAC5D0ujC,IAAkBz5vB,GAAkBy5vB,EAAczwjC,WAClDwwjC,EAAYh8zB,EAAQk8zB,mBAAmB50jC,GACvC20jC,EAAczwjC,QAAUwwjC,EACxBC,EAAcr8hC,WAAW,GAAGlJ,KAAOuliC,EAAczwjC,QACjDywjC,EAAcnD,qBAEtB,CACA,OAAOkD,CACX,CAmBO,SAASG,IAAqB70jC,GACjC,GAAIA,EAAI1G,SAAW0G,EAAI1G,QAAQrE,SAC3B,IAAK,IAAIqG,EAAI,EAAGA,EAAI0E,EAAI1G,QAAQrE,SAAS1C,OAAQ+I,IAAK,CAClD,IAAIw5jC,EAAgB90jC,EAAI1G,QAAQrE,SAASymB,SAASpgB,EAAE2K,WAAY,KAC5D6ujC,IAAkB55vB,GAAkB45vB,EAAc5wjC,WAClD4wjC,EAAc5wjC,QAAUlE,EAAI+0jC,MAC5BD,EAAcx8hC,WAAW,GAAGlJ,KAAO0liC,EAAc5wjC,QACjD4wjC,EAActD,qBAEtB,CAER,CAQO,SAASwD,IAAe9jgC,GAC3B,IACImu+B,EAEA/jiC,EAHA2gE,EAAO,GAIX,IAFAA,EAAO,IAAM/K,EAAW,GAAG7nD,EAAI,IAAM6nD,EAAW,GAAG5nD,EAE9ChO,EAAI,EAAGA,EAAI41D,EAAW3+D,OAAQ+I,IAE/B2gE,GAAQ,KADRoj+B,EAAMnu+B,EAAWx1C,SAASpgB,EAAE2K,WAAY,MACtBoD,EAAI,IAAMg2hC,EAAI/1hC,EAGpC,OADA2yD,GAAQ,GAEZ,CAOO,SAASqza,IAAYtve,EAAK0ga,GAC7B,IAAIu0pB,EAAU,IAAI7D,IAYlB,OAXAjtB,IAAgBnkiC,EAAKi1jC,GACrBA,EAAQ3/jC,MAAMqgF,KAAO,cACrBs/+B,EAAQ3viC,GAAK6hU,MACb8tuB,EAAQpF,oBAAsB,SAC9BoF,EAAQtF,YAAc,CAAErmjC,EAAG,GAAIo3Z,MAAOA,GACtCu0pB,EAAQntT,kBAAoB,MAC5BmtT,EAAQnF,aAAe,SACvBmF,EAAQvE,6BAA6B,GAAI,GAAI,YAE7CuE,EAAQvzuB,QACRuzuB,EAAQ3/jC,MAAM+4jC,aAAe,SACtB4G,CACX,CAuBO,SAASC,IAAWl1jC,EAAKohiC,EAAQC,EAAQ8zB,GAC5C,IAAI7wjC,EAAU,IAAIkujC,IAClBlujC,EAAQo9U,QAAU0/sB,EAAO/3hC,EACzB/E,EAAQq9U,QAAUy/sB,EAAO93hC,EACzB,IAAIo3Z,EAAQsyX,IAAMwuQ,UAAUJ,EAAQC,GAChCn2wB,EAAS,CAAE7hR,GAAI+3hC,EAAO/3hC,EAAIg4hC,EAAOh4hC,GAAK,EAAGC,GAAI83hC,EAAO93hC,EAAI+3hC,EAAO/3hC,GAAK,GACpEkunB,EAASura,MACbO,IAAa9ra,EAAQ,EAAI92N,EAAOx1I,EAAO7hR,EAAG6hR,EAAO5hR,GACjD,IAAI8rjC,EAAenyB,IAAuBzra,EAAQ4pa,GAC9Ci0B,EAAY,CAAEhsjC,EAAG+rjC,EAAa/rjC,EAAGC,EAAG8rjC,EAAa9rjC,EAAItJ,EAAIs1jC,cAE7DhyB,IADA9ra,EAASura,MACYrioB,EAAOp8Z,EAAQo9U,QAASp9U,EAAQq9U,SACrDyzuB,EAAenyB,IAAuBzra,EAAQ69b,GAC9C,IAAIE,EAAa,CAAElsjC,EAAG+3hC,EAAO/3hC,EAAGC,EAAG83hC,EAAO93hC,GAC1ChF,EAAQo9U,QAAU6zuB,EAAWlsjC,EAC7B/E,EAAQq9U,QAAU4zuB,EAAWjsjC,EAC7BhF,EAAQojD,UAAY03/B,IAAgB2Q,KACpC,IAAIkE,EAAU,IAAM7yB,EAAO/3hC,EAAI,IAAM+3hC,EAAO93hC,EAAI,KAAO8rjC,EAAa/rjC,EAAI,IAAM+rjC,EAAa9rjC,EAAI,IAC3F9D,EAAO,IAAIqr7B,IAAK,EAAG7w7B,EAAIs1jC,cAgB3B,OAfAhxjC,EAAQogiC,MAAMr7hC,EAAI,GACd8rjC,GACA7wjC,EAAQghB,GAAK,WAAa6hU,MAC1B7iV,EAAQogiC,MAAMp7hC,EAAI,IAGlBhF,EAAQghB,GAAK,WAAa6hU,MAC1B7iV,EAAQogiC,MAAMp7hC,EAAI,GAEtB66hC,IAAgBnkiC,EAAKsE,GACrBA,EAAQ+7vB,YAAc3/V,EACtBp8Z,EAAQ+0B,KAAO46hC,EACf3vjC,EAAQsujC,gBAAiB,EACzBtujC,EAAQqJ,MAAQnI,EAAKmI,MACrBrJ,EAAQyzI,OAASvyI,EAAKuyI,OACfzzI,CACX,CAOO,SAASkxjC,IAAqB/B,EAAWzn/B,GAC5C,IAAIqn/B,EAAeI,EAAUJ,aAC7B,IAAKn4vB,GAAkBm4vB,GACnB,IAAK,IAAI/3jC,EAAI,EAAGA,EAAI+3jC,EAAa9gkC,OAAS,EAAG+I,IAAK,CAC9C,IAAI+pC,EAAQguhC,EAAa33iC,SAASpgB,EAAE2K,WAAY,KAC5CsiC,EAAM8qhC,EAAa/3jC,EAAI,GACvBuoR,EAAOmtqB,IAAK47H,SAAS,CAACvnhC,EAAOkD,IAEjC,GADAs7O,EAAKwoyB,QAAQ,IACTxoyB,EAAK0oyB,cAAcvg/B,GAAY,CAC/B,IAAIyp/B,EAAgBC,IAAiB1p/B,EAAW3mC,EAAOkD,GAGnDothC,EAAmB5I,IAFR,CAAE/8a,GAAI3qmB,EAAMh8B,EAAG6moB,GAAI3nmB,EAAIl/B,EAAG4moB,GAAI5qmB,EAAM/7B,EAAG6moB,GAAI5nmB,EAAIj/B,GAC/C,CAAE0moB,GAAIhkkB,EAAU3iE,EAAG6moB,GAAIulb,EAAcpsjC,EAAG4moB,GAAIjkkB,EAAU1iE,EAAG6moB,GAAIslb,EAAcnsjC,IAE1F,GAAIqsjC,EAAiBtuyB,QAAS,CAC1B,IAAIu3B,EAAWo0e,IAAMuuQ,WAAWv19B,EAAW2p/B,EAAiBzI,aAC5D,GAAIn6jC,KAAK8Y,IAAI+yS,GAAY,GACrB,OAAO,CAEf,KACK,CACD,IAAIg3wB,EAAS5kI,IAAK47H,SAAS,CAAC5g/B,EAAWA,IAEvC,GADA4p/B,EAAOvJ,QAAQ,GACXuJ,EAAOrJ,cAAclnhC,IAAUuwhC,EAAOrJ,cAAchkhC,GACpD,OAAO,CAEf,CACA,GAAIyqvB,IAAM78lB,OAAOnqH,EAAWyp/B,GACxB,OAAO,CAEf,CACJ,CAEJ,OAAO,CACX,CAQO,SAASC,IAAiB1p/B,EAAW3mC,EAAOkD,GAC/C,IAAIsthC,EAIAA,EAHW7iS,IAAMuuQ,WAAWl8/B,EAAO2mC,GACvBgntB,IAAMuuQ,WAAWh5/B,EAAKyjC,GAElBzjC,EAGAlD,EAEpB,IAAIywhC,EAAkB9iS,IAAMwuQ,UAAUn8/B,EAAOkD,GACzCwthC,EAAkB/iS,IAAMwuQ,UAAUq0B,EAAe7p/B,GACjDymC,EAAIugrB,IAAMuuQ,WAAWs0B,EAAe7p/B,GACpCgq/B,EAAUD,EAAyD,GAArCD,EAAkBC,GACpD,MAAO,CACH1sjC,EAAIwsjC,EAAcxsjC,EAAIopG,EAAI1/G,KAAK6ta,IAAIo1pB,EAAUjjkC,KAAKita,GAAK,KACvD12Z,EAAIusjC,EAAcvsjC,EAAImpG,EAAI1/G,KAAK8ta,IAAIm1pB,EAAUjjkC,KAAKita,GAAK,KAE/D,CAUA,IAAIo0pB,IAAkB,CAClB,UAAa,oDACb,OAAU,4BACV,OAAU,qEACV,UAAa,iPAIb,cAAiB,sCACjB,eAAkB,wCAClB,YAAe,6CACf,MAAS,uBACT,QAAW,+BACX,OAAU,gDACV,KAAQ,cC7eL,SAAS6B,IAAkB/viC,EAAOgwiC,EAAS99B,EAAW+9B,GACzD,GAAI/9B,GAAa89B,EAAQE,eAAeC,cAAgB,EAAG,CACvD,IAAIjonB,EAgBL,SAA+B8nnB,EAAS99B,EAAWlygC,GACtD,IAAIk6wB,EAAK81R,EAAQttT,iBAAmB,CAAEv/vB,EAAG6c,EAAMw7T,QAASp4U,EAAG4c,EAAMy7T,SACjEy+c,EAAK,CAAE/2xB,EAAG+2xB,EAAG/2xB,EAAI6sjC,EAAQv8B,gBAAiBrwhC,EAAG82xB,EAAG92xB,EAAI4sjC,EAAQv8B,iBAC5D,IAAI28B,EAAYl+B,EAAUm+B,aAAaL,EAAQE,eAAeC,cAC1DG,EAoSD,SAAqBx10B,EAAQy10B,EAAeC,GAE/C,IADA,IAAItonB,EAAU,GACL3vc,EAAK,EAAGk4jC,EAAkBF,EAAeh4jC,EAAKk4jC,EAAgBpkkC,OAAQkM,IAAM,CACjF,IAAIuB,EAAM22jC,EAAgBl4jC,IACtBm4jC,IAAsB52jC,EAAKghP,EAAQ010B,IAA+C,UAA5B12jC,EAAIkkiC,qBAAoC0yB,IAAsB52jC,EAAKghP,EAAQ,MACjI610B,IAAa72jC,EAAK,SAAUouc,EAEpC,CACA,OAAOA,CACX,CA7SmB0onB,CAAY12R,EAAIk2R,EAAUlonB,QAASgqlB,EAAUs+B,cAC5D,OAAOF,CACX,CAtBsBO,CAAsBb,EAAS99B,EAAWlygC,GACpDzc,EA8BL,SAEP2kc,EAASlob,EAAOgwiC,EAAS99B,GACrB,IACI4+B,EACAt1uB,EACAC,EAHAgnT,EAAe,KAInB,GAAIzinB,GAASA,EAAMnqB,OAAyC,IAAjCmqB,EAAMnqB,KAAKjC,QAAQ,UAE1C,GADAk9jC,EAAW9wiC,EACPkygC,EAAU9p6B,WAAY,CACtB,IAAIsq6B,EAAUs9B,EAAQ//xB,WAAW,YAAciiwB,EAAU9p6B,WAAW2o8B,mBAAmB/wiC,IACvF,GAAI0ygC,EAAS,CACT,IAAIs+B,EAAkBt+B,EAAQh1wB,wBAC9B89D,EAAUs1uB,EAASt+6B,eAAe,GAAGlwH,QAAU0uiC,EAAgBpk8B,KAC/D6uN,EAAUq1uB,EAASt+6B,eAAe,GAAGjwH,QAAUyuiC,EAAgB756B,GACnE,CACJ,OAGC,GAAIn3H,GAASA,EAAM1uB,QAAU0uB,EAAM+1C,MAAQ/1C,EAAM1uB,OAAOwtR,eAAiB9+P,EAAM1uB,OAAOwtR,cAAc3N,UAAUh1P,SAAS,kBAAmB,CAE3I,IAAI80iC,EAAmBjxiC,EAAM+1C,KAAK,GAAG2nN,wBACrC89D,EAAUx7T,EAAMsC,QAAU2uiC,EAAiBrk8B,KAC3C6uN,EAAUz7T,EAAMuC,QAAU0uiC,EAAiB956B,GAC/C,MACK,GAAIn3H,EAAM1uB,QAAU0uB,EAAM1uB,OAAOwtR,eAAiB9+P,EAAM1uB,OAAOwtR,cAAc3N,UAAUh1P,SAAS,kBAAmB,CAEhH80iC,EAAmBjxiC,EAAM1uB,OAAO+qR,aAAaA,aAAaA,aAAaqB,wBAC3E89D,EAAUx7T,EAAMsC,QAAU2uiC,EAAiBrk8B,KAC3C6uN,EAAUz7T,EAAMuC,QAAU0uiC,EAAiB956B,GAE/C,MACK,GAAIn3H,EAAM1uB,QAAU0uB,EAAM1uB,OAAOwtR,eAAiB9+P,EAAM1uB,OAAOwtR,cAAcA,eAAiB9+P,EAAM1uB,OAAOwtR,cAAcA,cAAc3N,UAAUh1P,SAAS,kBAAmB,CAC1K80iC,OAAmB,EACnBjxiC,EAAM1uB,OAAO+qR,cAAgBr8P,EAAM1uB,OAAO+qR,aAAaA,cAAgBr8P,EAAM1uB,OAAO+qR,aAAaA,aAAaA,cAAgBr8P,EAAM1uB,OAAO+qR,aAAaA,aAAaA,aAAaA,cAElL40yB,EAAmBjxiC,EAAM1uB,OAAO+qR,aAAaA,aAAaA,aAAaA,aAAaqB,wBACpF89D,EAAUx7T,EAAMsC,QAAU2uiC,EAAiBrk8B,KAC3C6uN,EAAUz7T,EAAMuC,QAAU0uiC,EAAiB956B,KAEtCn3H,EAAM1uB,OAAOwtR,cAAczC,cAAgBr8P,EAAM1uB,OAAOwtR,cAAczC,aAAaA,eAExF40yB,EAAmBjxiC,EAAM1uB,OAAOwtR,cAAczC,aAAaA,aAAaqB,wBACxE89D,EAAUx7T,EAAMsC,QAAU2uiC,EAAiBrk8B,KAC3C6uN,EAAUz7T,EAAMuC,QAAU0uiC,EAAiB956B,IAGnD,MAEIqkM,EAAW1wV,MAAMk1B,EAAMw7T,SAA4Bx7T,EAAMmzD,SAAWnzD,EAAMmzD,SAAShwE,EAAI,EAArD6c,EAAMw7T,QACxCC,EAAW3wV,MAAMk1B,EAAMy7T,SAA4Bz7T,EAAMmzD,SAAWnzD,EAAMmzD,SAAS/vE,EAAI,EAArD4c,EAAMy7T,QAK5C,IAFA,IAAIy1uB,EAAoBh/B,EAAUs+B,aAAe,EAC7CW,EAAa,EACR/7jC,EAAI,EAAGA,EAAI8yc,EAAQ77c,OAAQ+I,IAChC,GAAkE,aAA5D8yc,EAAQ1yb,SAASpgB,EAAE2K,WAAY,KAAKi+hC,qBAAkG,SAA5D91lB,EAAQ1yb,SAASpgB,EAAE2K,WAAY,KAAKi+hC,qBAA8F,uBAA5D91lB,EAAQ1yb,SAASpgB,EAAE2K,WAAY,KAAKi+hC,qBAAgDgyB,EAAQlijB,gBAAgBsjjB,IAyC7P,CACD,IAAIl3R,EAAK,CAAE/2xB,EAAGq4U,EAAUw0uB,EAAQv8B,gBAAiBrwhC,EAAGq4U,EAAUu0uB,EAAQv8B,iBAClE35hC,EAAM42jC,IAAsBxonB,EAAQ1yb,SAASpgB,EAAE2K,WAAY,KAAMm6xB,EAAIg3R,GACrEG,EAAS/B,IAAqBpnnB,EAAQ1yb,SAASpgB,EAAE2K,WAAY,KAAMm6xB,GACvE,GAAIpgyB,IAAQu3jC,EAAQ,CAChB,IAAIC,EAAWC,IAAsBrpnB,EAAQ1yb,SAASpgB,EAAE2K,WAAY,KAAMjG,GAC1E,GAAIw3jC,EAAU,CACV,IAAI3zyB,EAAOmtqB,IAAK47H,SAAS,CAAC4K,EAAUA,IACpC3zyB,EAAKwoyB,QAAQ,IACTxoyB,EAAK0oyB,cAAcnsR,KACnBm3R,GAAS,EAEjB,CACJ,CACIv3jC,GAAOu3jC,IACP5ub,EAAev6L,EAAQ1yb,SAASpgB,EAAE2K,WAAY,KAEtD,KA1D6Q,CACzQ,IAAI6tvB,EAAS1lT,EAAQ1yb,SAASpgB,EAAE2K,WAAY,KAAK3M,QAAQw6vB,OACrD4jU,EAAgB,EAKpB,GAJgE,UAA5DtpnB,EAAQ1yb,SAASpgB,EAAE2K,WAAY,KAAKi+hC,qBAA+F,UAA5D91lB,EAAQ1yb,SAASpgB,EAAE2K,WAAY,KAAKi+hC,sBAC3GwzB,EAAgB,KAGb5jU,EAAOzqvB,EAAI+tjC,GAAqBlB,EAAQv8B,gBAAmBj4sB,IAAeoya,EAAOzqvB,EAAIyqvB,EAAOnmvB,MAAQypjC,GAAqBlB,EAAQv8B,gBAAmBj4sB,IAEpJoya,EAAOxqvB,EAAI8tjC,EAAoBM,GAAiBxB,EAAQv8B,gBAAmBh4sB,IAAemya,EAAOxqvB,EAAIwqvB,EAAO/7mB,OAASq/6B,GAAqBlB,EAAQv8B,gBAAmBh4sB,EACxK,GAAIu0uB,EAAQlijB,gBAAgB2jjB,KAAmBzB,EAAQlijB,gBAAgB4jjB,IACnEjvb,EAAev6L,EAAQ1yb,SAASpgB,EAAE2K,WAAY,UAG9C,GAAKoxjC,EAOA,CAED,IAAIQ,EAAgBn2uB,GAAYoya,EAAOzqvB,EAAI+tjC,GAAqBlB,EAAQv8B,kBAAuB7lS,EAAOzqvB,EAAIyqvB,EAAOnmvB,MAAQypjC,GAAqBlB,EAAQv8B,gBAAmBj4sB,IAEpKC,GAAYmya,EAAOxqvB,EAAI8tjC,EAAoBM,GAAiBxB,EAAQv8B,mBAAuB7lS,EAAOxqvB,EAAIwqvB,EAAO/7mB,OAASq/6B,GAAqBlB,EAAQv8B,gBAAmBh4sB,GACvK01uB,EAAaQ,GAIRR,IAAeQ,GAHpBlvb,EAAev6L,EAAQ1yb,SAASpgB,EAAE2K,WAAY,KAC9CoxjC,EAAaQ,GAMqD,UAA5DzpnB,EAAQ1yb,SAASpgB,EAAE2K,WAAY,KAAKi+hC,qBAAiG,UAA5D91lB,EAAQ1yb,SAASpgB,EAAE2K,WAAY,KAAKi+hC,sBACnHv7Z,EAAev6L,EAAQ1yb,SAASpgB,EAAE2K,WAAY,KAEtD,MAtBI0ioB,EAAev6L,EAAQ1yb,SAASpgB,EAAE2K,WAAY,KAE9CoxjC,EAAc31uB,GAAYoya,EAAOzqvB,EAAI+tjC,GAAqBlB,EAAQv8B,kBAAuB7lS,EAAOzqvB,EAAIyqvB,EAAOnmvB,MAAQypjC,GAAqBlB,EAAQv8B,gBAAmBj4sB,IAE9JC,GAAYmya,EAAOxqvB,EAAI8tjC,EAAoBM,GAAiBxB,EAAQv8B,mBAAuB7lS,EAAOxqvB,EAAIwqvB,EAAO/7mB,OAASq/6B,GAAqBlB,EAAQv8B,gBAAmBh4sB,EAqB3L,CAoBJ,OAAOgnT,CACX,CAnJqBmvb,CAAqB1pnB,EAASlob,EAAOgwiC,EAAS99B,GAC3D,OAAI+9B,EACO/nnB,EAEJ3kc,CACX,CAEJ,CAoJO,SAASgujC,IAAsB/3jC,EAAUq4jC,GAC5C,IACIzE,EAAc5zjC,EAAS4zjC,YACvBC,EAAc7zjC,EAAS6zjC,YAC3B,GAAqC,aAAjC7zjC,EAASwkiC,oBAAoC,CAC7C,IAAInoN,EAAUg8O,EACV1C,OAAY,EACZ30pB,EAAQsyX,IAAMwuQ,UAAU9hiC,EAAS4zjC,YAAa5zjC,EAAS6zjC,aAC3D,GAAIx3O,EAAQz2zB,GAAGxrB,QAAQ,WAAa,EAAG,CACnC,IAAIoxR,EAASxrR,EAASpG,QAAQrE,SAAS,GAAG6+vB,OAAO5oe,OACxB6wjB,EAAQz2zB,GAAGxrB,QAAQ,YAAc,GACtDu7jC,EAAY,CAAEhsjC,EAAG3J,EAAS4zjC,YAAYjqjC,EAAGC,EAAG5J,EAAS4zjC,YAAYhqjC,EAAI5J,EAAS41jC,cAC9EpqyB,EAASooyB,IAGT+B,EAAY,CAAEhsjC,EAAG3J,EAAS6zjC,YAAYlqjC,EAAGC,EAAG5J,EAAS6zjC,YAAYjqjC,EAAI5J,EAAS41jC,cAC9EpqyB,EAASqoyB,GAEb,IAAI/7b,EAASura,MAGb,OAFAO,IAAa9ra,EAAQ92N,EAAOx1I,EAAO7hR,EAAG6hR,EAAO5hR,GAC1B25hC,IAAuBzra,EAAQ,CAAEnunB,EAAGgsjC,EAAUhsjC,EAAGC,EAAG+rjC,EAAU/rjC,GAErF,CACJ,CACJ,CAQO,SAASstjC,IAAsB52jC,EAAKq5E,EAAU8sC,GACjD,OA2DG,SAAgClqH,EAAWo9E,EAAU8sC,GACxD,GAAIlqH,GAAaA,EAAUhH,SACvB,IAAK,IAAIqG,EAAIW,EAAUhH,SAAS1C,OAAS,EAAG+I,GAAK,EAAGA,IAAK,CACrD,IAAI08jC,EAAe/7jC,EAAUhH,SAASymB,SAASpgB,EAAE2K,WAAY,KACzDywjC,EAAevw8B,EAEnB,IAAK+0M,GAAkB88vB,EAAa/ikC,WAAa+ikC,EAAa/ikC,SAAS1C,OAAS,EAE5E,IAAK,IAAI4M,EAAI64jC,EAAa/ikC,SAAS1C,OAAS,EAAG4M,GAAK,EAAGA,IAAK,CAExD,IAAImrB,EAAgB0tiC,EAAa/ikC,SAASkK,GAC1C,GAAImrB,GAAiBA,EAAcwpuB,OAAOy4T,cAAclz+B,EAAUq9+B,GAAe,CAC7E,GAAIpsiC,aAAyB03F,IAEzB,GADIm2K,EAAgBhpS,KAAK8okC,kBAAkB3tiC,EAAe+uD,GAEtD,OAAO8+M,EAGf,GAAI7tQ,EAAcwpuB,OAAOy4T,cAAclz+B,EAAUq9+B,GAC7C,OAAOpsiC,CAEf,CACJ,MAGA,GAAI0tiC,GAAgBA,EAAalkU,OAAOy4T,cAAclz+B,EAAUq9+B,GAAe,CAEvE,IAAIv+xB,EADR,GAAI6/xB,aAAwBh28B,IAExB,GADIm2K,EAAgBhpS,KAAK8okC,kBAAkBD,EAAc3++B,GAErD,OAAO8+M,EAGf,GAAI6/xB,EAAalkU,OAAOy4T,cAAclz+B,EAAUq9+B,GAC5C,OAAOsB,CAEf,CAER,CAEJ,GAAI/7jC,GAAaA,EAAU63vB,OAAOy4T,cAAclz+B,EAAU8sC,IAAqC,SAAzBlqH,EAAU3G,MAAMqgF,KAAiB,CACnG,IAAIrxE,EAAUrI,EACVi8jC,EAAe,GACfC,EAAsB,GACtB3gc,EAASura,MACbO,IAAa9ra,EAAQlznB,EAAQqgiC,gBAAiBrgiC,EAAQo9U,QAASp9U,EAAQq9U,SACvE,IAAIt4U,EAAI/E,EAAQo9U,QAAUp9U,EAAQogiC,MAAMr7hC,EAAI/E,EAAQwnwB,WAAWn+vB,MAC3DrE,EAAIhF,EAAQq9U,QAAUr9U,EAAQogiC,MAAMp7hC,EAAIhF,EAAQwnwB,WAAW/znB,OAC3Dqg7B,EAAc,CACd/ujC,EAAGA,GAA0B,KAApB/E,EAAQogiC,MAAMr7hC,EAA8B,EAAlB/E,EAAQogiC,MAAMr7hC,EAAQ/E,EAAQogiC,MAAMr7hC,GAAK/E,EAAQwnwB,WAAWn+vB,MAAQ,EACvGrE,EAAGA,EAAI6ujC,GAGX,GAAI91iC,IAASg3D,EADb+++B,EAAcn1B,IAAuBzra,EAAQ4gc,GACTF,GAChC,OAAOj8jC,CAEf,CACA,OAAO,IACX,CApHWo8jC,CAAuBr4jC,EAAI1G,QAAS+/E,EAAU8sC,EACzD,CAQO,SAAS0w8B,IAAa72jC,EAAKvE,EAAKy1D,GACnC,GAA0B,IAAtBA,EAAW3+D,OACX2+D,EAAW31D,KAAKyE,QAEf,GAA0B,IAAtBkxD,EAAW3+D,OAEZ2+D,EAAW,GAAGz1D,GAAOuE,EAAIvE,GACzBy1D,EAAWvsC,OAAO,EAAG,EAAG3kB,GAGxBkxD,EAAW31D,KAAKyE,QAGnB,GAAIkxD,EAAW3+D,OAAS,EAAG,CAI5B,IAHA,IAAIswE,EAAM,EACNC,EAAO5R,EAAW3+D,OAAS,EAC3B+sD,EAAMvsD,KAAKiG,OAAO6pE,EAAMC,GAAQ,GAC7BxjB,IAAQujB,GAEP3R,EAAW5R,GAAK7jD,GAAOuE,EAAIvE,IAC3BonE,EAAMvjB,EACNA,EAAMvsD,KAAKiG,OAAO6pE,EAAMC,GAAQ,IAG3B5R,EAAW5R,GAAK7jD,GAAOuE,EAAIvE,KAChCqnE,EAAOxjB,EACPA,EAAMvsD,KAAKiG,OAAO6pE,EAAMC,GAAQ,IAIpC5R,EAAW4R,GAAMrnE,GAAOuE,EAAIvE,GAC5By1D,EAAW31D,KAAKyE,GAGXkxD,EAAW2R,GAAKpnE,GAAOuE,EAAIvE,GAChCy1D,EAAWvsC,OAAOk+C,EAAK,EAAG7iE,GAGpBkxD,EAAW2R,GAAKpnE,GAAOuE,EAAIvE,IAASy1D,EAAW4R,GAAMrnE,GAAOuE,EAAIvE,IACtEy1D,EAAWvsC,OAAOm+C,EAAM,EAAG9iE,EAEnC,CACJ,CAyGA,IAAIs4jC,IAAgC,WAChC,SAASA,IACLnpkC,KAAKopkC,gBAAa/lkC,EAClBrD,KAAKknkC,kBAAe7jkC,CACxB,CAqBA,OApBA5D,OAAO4c,eAAe8sjC,EAAex4jC,UAAW,eAAgB,CAK5D+F,IAAK,WACD,OAAO1W,KAAKopkC,UAChB,EAKA1vjC,IAAK,SAAUgE,GACX1d,KAAKopkC,WAAa1rjC,EAEH1d,KAAKopkC,UACxB,EACAjxjC,YAAY,EACZE,cAAc,IAEX8wjC,CACX,CA1BoC,GC3WhCjjhC,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GA6BzCijhC,IAA0B,WAQ1B,SAASA,EAASpgC,EAAWC,EAAeogC,QAClB,IAAlBA,IAA4BA,GAAgB,GAIhDtpkC,KAAKupkC,eAAiB,KAItBvpkC,KAAKwpkC,UAAW,EAIhBxpkC,KAAKkpiC,cAAgB,KAKrBlpiC,KAAKm1Y,eAAiB,KAEtBn1Y,KAAKypkC,SAAU,EACfzpkC,KAAKuwQ,kBAAmB,EAExBvwQ,KAAK0pkC,WAAa,CAAC,EAEnB1pkC,KAAKugW,YAASl9V,EAIdrD,KAAK2pkC,YAAc,CAAEv03B,YAAa,IAClCp1M,KAAK4pkC,kBAAoB,CAAEx03B,YAAa,IACxCp1M,KAAKupkC,eAAiBtgC,EACtBjpiC,KAAKkpiC,cAAgBA,CACzB,CA8SA,OAzSAmgC,EAAS14jC,UAAUk5jC,YAAc,SAAU10rB,GACvCn1Y,KAAKm1Y,eAAiBA,EACtBn1Y,KAAKwpkC,UAAW,CACpB,EAMAH,EAAS14jC,UAAUkvf,UAAY,SAAU5mf,GACrCjZ,KAAKm1Y,eAAiBl8X,EAAKrC,OAC3B5W,KAAK0nzB,cAAgB1nzB,KAAKy5wB,gBAAkBz5wB,KAAK8pkC,aAAe7wjC,EAAKixE,SACrElqF,KAAKuwQ,kBAAmB,EACxBvwQ,KAAK6pkC,YAAY5wjC,EAAKrC,OAC1B,EAMAyyjC,EAAS14jC,UAAUo5jC,UAAY,SAAU9wjC,GAIrC,OAHAjZ,KAAKy5wB,gBAAkBxgwB,EAAKixE,SAE5BlqF,KAAKgqkC,WAAahqkC,KAAKkpiC,cAAc+9B,eAAeC,cAC5ClnkC,KAAKypkC,OACjB,EAMAJ,EAAS14jC,UAAUouf,QAAU,SAAU9lf,GACnCjZ,KAAKy5wB,gBAAkBxgwB,EAAKixE,SAE5BlqF,KAAKuwQ,kBAAmB,EAExBvwQ,KAAKiqkC,YACLjqkC,KAAKugW,OAAS,IAClB,EACA8ouB,EAAS14jC,UAAUs5jC,UAAY,WAEvBjqkC,KAAKupkC,iBACLvpkC,KAAKupkC,eAAe1kjB,KAAO,GACvB7khB,KAAKugW,QACLvgW,KAAKupkC,eAAep2iC,OAAOnzB,KAAKugW,SAGxCvgW,KAAKupkC,eAAiB,KACtBvpkC,KAAKm1Y,eAAiB,KACtBn1Y,KAAKy5wB,gBAAkB,KACvBz5wB,KAAKwpkC,UAAW,EAChBxpkC,KAAKypkC,SAAU,CACnB,EAMAJ,EAAS14jC,UAAUmqd,WAAa,SAAU7hd,GACtCjZ,KAAKy5wB,gBAAkBxgwB,EAAKixE,QAChC,EAMAm/+B,EAAS14jC,UAAUu5jC,WAAa,SAAUjxjC,GACtCjZ,KAAK++f,QAAQ9lf,EACjB,EAEAowjC,EAAS14jC,UAAU6gwB,WAAa,SAAUhmoB,EAAOk7N,EAAY0B,EAAU61tB,EAAQkM,EAAe54pB,EAAO64pB,GACjG,IAAIx77B,EAAO5uI,KAAKupkC,eAAetN,WAAWzxB,gBACtC6/B,EAAOrqkC,KAAKy5wB,gBAAgBv/vB,EAAI00H,EAAO5uI,KAAK0nzB,cAAcxtyB,EAAI00H,EAC9D077B,EAAOtqkC,KAAKy5wB,gBAAgBt/vB,EAAIy0H,EAAO5uI,KAAK0nzB,cAAcvtyB,EAAIy0H,EAC9DsioB,EAAe1loB,aAAiBy27B,IAAe1wpB,EAAQ/lS,EAAM0loB,YAC7D7oI,EAASura,MACbO,IAAa9ra,GAAS6oI,EAAa,EAAG,GACtC,IAEIptvB,EAFAymjC,EAAa,EACbC,EAAc,EAEdhsjC,EAASgtH,aAAiBy27B,IAAez27B,EAAMmxoB,WAAWn+vB,MAAQgtH,EAAMrhI,QAAQw6vB,OAAOnmvB,MACvFoqI,EAAUpd,aAAiBy27B,IAAez27B,EAAMmxoB,WAAW/znB,OAASpd,EAAMrhI,QAAQw6vB,OAAO/7mB,OAEzF/3I,EAAM26H,EACLA,EAAMyp6B,yBACFzp6B,EAAMy76B,WAAcz76B,EAAMup6B,qBACvBvp6B,IAEA36H,EAAM26H,EAAM4pE,YAAY,IAKpC,IAAIou2B,EAAqBxjjC,KAAKupkC,eAAetlB,iBAAmBjkjC,KAAKupkC,eAAetlB,iBAAiBwmB,uBAAuB55jC,GAAO,CAAC,EAChI65jC,EAAsB,EACtBC,EAAqB,EACrBC,EAAsB,EACtBC,EAAqB,GACrBrnB,EAAmBv6iB,UAAYu6iB,EAAmB1s7B,UAAY0s7B,EAAmB5tiB,WAAa4tiB,EAAmB59mB,aACjH8koB,EAAsBlnB,EAAmB59mB,UAAY49mB,EAAmB59mB,UAAY,IACpF+koB,EAAqBnnB,EAAmB1s7B,SAAW0s7B,EAAmB1s7B,SAAW,IACjF8z8B,EAAsBpnB,EAAmB5tiB,UAAY4tiB,EAAmB5tiB,UAAY,EACpFi1jB,EAAqBrnB,EAAmBv6iB,SAAWu6iB,EAAmBv6iB,SAAW,GAErF,IAAI6hkB,GAAkB,EAItB,IAHIF,GAAuBC,GAAsBH,GAAuBC,KACpEG,GAAkB,GAElBA,GAAmBV,EAAW,CAE9B,IAAI/zjC,EAAOrW,KAAK+qkC,aAAa9M,EAAQoM,EAAMC,GACvCtqmB,EAAWxhd,EAAQnI,EAAK6D,EACxB01yB,EAAYhnqB,EAASvyI,EAAK8D,EAEzBy1yB,EAAYg7Q,GAAuBh7Q,EAAY86Q,GAAyB1qmB,EAAW6qmB,GAAsB7qmB,EAAW2qmB,KAOjH/6Q,EAAYg7Q,GAAuBh7Q,EAAY86Q,KAE3CJ,EADA16Q,EAAYg7Q,EACLA,EAAsBhi7B,EAGtB8h7B,EAAsB9h7B,IAGjCo3U,EAAW6qmB,GAAsB7qmB,EAAW2qmB,KAExCN,EADArqmB,EAAW6qmB,EACJA,EAAqBrsjC,EAGrBmsjC,EAAqBnsjC,GAI5C,CACA,OAAQy/iC,GACJ,IAAK,aAEDoM,GADAvmjC,EAAOgwhC,IAAuBzra,EAAS,CAAEnunB,EAAGmwjC,EAAMlwjC,EAAGmwjC,KACzCpwjC,EACZowjC,EAAOxmjC,EAAK3J,EACZqwjC,EAAc,EAGdF,EAAO,EACHQ,GACIX,EAAc3rjC,MAAQ6rjC,EAAOM,IAC7BN,EAAOM,EAAqBR,EAAc3rjC,OAGlD+rjC,GAAcJ,EAAc3rjC,MAAQ6rjC,GAAQ7rjC,EAC5C,MACJ,IAAK,aAED6rjC,GADAvmjC,EAAOgwhC,IAAuBzra,EAAS,CAAEnunB,EAAGmwjC,EAAMlwjC,EAAGmwjC,KACzCpwjC,EACZowjC,EAAOxmjC,EAAK3J,EACZmwjC,EAAO,EACHQ,GACIX,EAAc3rjC,MAAQ6rjC,EAAOM,IAC7BN,EAAOM,EAAqBR,EAAc3rjC,OAGlD+rjC,GAAcJ,EAAc3rjC,MAAQ6rjC,GAAQ7rjC,EAC5CgsjC,EAAc,EACd,MACJ,IAAK,cACDD,EAAa,EAEbF,GADAvmjC,EAAOgwhC,IAAuBzra,EAAS,CAAEnunB,EAAGmwjC,EAAMlwjC,EAAGmwjC,KACzCpwjC,EACZowjC,EAAOxmjC,EAAK3J,EACR2wjC,GACIX,EAAcvh7B,OAAS0h7B,EAAOI,IAC9BJ,EAAOI,EAAsBP,EAAcvh7B,QAGnD4h7B,GAAeL,EAAcvh7B,OAAS0h7B,GAAQ1h7B,EAC9C,MACJ,IAAK,cACD2h7B,EAAa,EAEbF,GADAvmjC,EAAOgwhC,IAAuBzra,EAAS,CAAEnunB,EAAGmwjC,EAAMlwjC,EAAGmwjC,KACzCpwjC,EACZowjC,EAAOxmjC,EAAK3J,EACR2wjC,GACIX,EAAcvh7B,OAAS0h7B,EAAOI,IAC9BJ,EAAOI,EAAsBP,EAAcvh7B,QAGnD4h7B,GAAeL,EAAcvh7B,OAAS0h7B,GAAQ1h7B,EAC9C,MACJ,IAAK,kBAEDyh7B,GADAvmjC,EAAOgwhC,IAAuBzra,EAAS,CAAEnunB,EAAGmwjC,EAAMlwjC,EAAGmwjC,KACzCpwjC,EACZowjC,EAAOxmjC,EAAK3J,EACR2wjC,IACIX,EAAc3rjC,MAAQ6rjC,EAAOM,IAC7BN,EAAOM,EAAqBR,EAAc3rjC,OAE1C2rjC,EAAcvh7B,OAAS0h7B,EAAOI,IAC9BJ,EAAOI,EAAsBP,EAAcvh7B,SAGnD2h7B,GAAcJ,EAAc3rjC,MAAQ6rjC,GAAQ7rjC,EAC5CgsjC,GAAeL,EAAcvh7B,OAAS0h7B,GAAQ1h7B,EAC9C,MACJ,IAAK,kBAEDyh7B,GADAvmjC,EAAOgwhC,IAAuBzra,EAAS,CAAEnunB,EAAGmwjC,EAAMlwjC,EAAGmwjC,KACzCpwjC,EACZowjC,EAAOxmjC,EAAK3J,EACR2wjC,IACIX,EAAc3rjC,MAAQ6rjC,EAAOM,IAC7BN,EAAOM,EAAqBR,EAAc3rjC,OAE1C2rjC,EAAcvh7B,OAAS0h7B,EAAOI,IAC9BJ,EAAOI,EAAsBP,EAAcvh7B,SAGnD2h7B,GAAcJ,EAAc3rjC,MAAQ6rjC,GAAQ7rjC,EAC5CgsjC,GAAeL,EAAcvh7B,OAAS0h7B,GAAQ1h7B,EAC9C,MACJ,IAAK,kBAEDyh7B,GADAvmjC,EAAOgwhC,IAAuBzra,EAAS,CAAEnunB,EAAGmwjC,EAAMlwjC,EAAGmwjC,KACzCpwjC,EACZowjC,EAAOxmjC,EAAK3J,EACR2wjC,IACIX,EAAc3rjC,MAAQ6rjC,EAAOM,IAC7BN,EAAOM,EAAqBR,EAAc3rjC,OAE1C2rjC,EAAcvh7B,OAAS0h7B,EAAOI,IAC9BJ,EAAOI,EAAsBP,EAAcvh7B,SAGnD4h7B,GAAeL,EAAcvh7B,OAAS0h7B,GAAQ1h7B,EAC9C2h7B,GAAcJ,EAAc3rjC,MAAQ6rjC,GAAQ7rjC,EAC5C,MACJ,IAAK,kBAED6rjC,GADAvmjC,EAAOgwhC,IAAuBzra,EAAS,CAAEnunB,EAAGmwjC,EAAMlwjC,EAAGmwjC,KACzCpwjC,EACZowjC,EAAOxmjC,EAAK3J,EACR2wjC,IACIX,EAAc3rjC,MAAQ6rjC,EAAOM,IAC7BN,EAAOM,EAAqBR,EAAc3rjC,OAE1C2rjC,EAAcvh7B,OAAS0h7B,EAAOI,IAC9BJ,EAAOI,EAAsBP,EAAcvh7B,SAGnD2h7B,GAAcJ,EAAc3rjC,MAAQ6rjC,GAAQ7rjC,EAC5CgsjC,GAAeL,EAAcvh7B,OAAS0h7B,GAAQ1h7B,EAGtD,MAAO,CAAEpqI,MAAO+rjC,EAAY3h7B,OAAQ4h7B,EACxC,EACAnB,EAAS14jC,UAAUq6jC,SAAW,SAAU/M,GACpC,OAAQA,GACJ,IAAK,aACD,MAAO,CAAE/jjC,EAAG,EAAGC,EAAG,IACtB,IAAK,aACD,MAAO,CAAED,EAAG,EAAGC,EAAG,IACtB,IAAK,cACD,MAAO,CAAED,EAAG,GAAKC,EAAG,GACxB,IAAK,cACD,MAAO,CAAED,EAAG,GAAKC,EAAG,GACxB,IAAK,kBACD,MAAO,CAAED,EAAG,EAAGC,EAAG,GACtB,IAAK,kBACD,MAAO,CAAED,EAAG,EAAGC,EAAG,GACtB,IAAK,kBACD,MAAO,CAAED,EAAG,EAAGC,EAAG,GACtB,IAAK,kBACD,MAAO,CAAED,EAAG,EAAGC,EAAG,GAE1B,MAAO,CAAED,EAAG,GAAKC,EAAG,GACxB,EACAkvjC,EAAS14jC,UAAUo6jC,aAAe,SAAU9M,EAAQ/jjC,EAAGC,GACnD,OAAQ8jjC,GACJ,IAAK,aACD,MAAO,CAAE/jjC,EAAGA,EAAGC,EAAG,GACtB,IAAK,kBACD,MAAO,CAAED,EAAGA,EAAGC,EAAGA,GACtB,IAAK,cACD,MAAO,CAAED,EAAG,EAAGC,EAAGA,GACtB,IAAK,cACD,MAAO,CAAED,EAAG,EAAGC,GAAIA,GACvB,IAAK,kBACD,MAAO,CAAED,EAAGA,EAAGC,GAAIA,GACvB,IAAK,kBACD,MAAO,CAAED,GAAIA,EAAGC,GAAIA,GACxB,IAAK,aACD,MAAO,CAAED,GAAIA,EAAGC,EAAG,GACvB,IAAK,kBACD,MAAO,CAAED,GAAIA,EAAGC,EAAGA,GAE3B,MAAO,CAAED,EAAGA,EAAGC,EAAGA,EACtB,EACOkvjC,CACX,CAxV8B,GA+V1B4B,IAA4B,SAAUnkhC,GAEtC,SAASmkhC,EAAW1B,EAAgB96gC,GAChC,OAAO3H,EAAOnnD,KAAKK,KAAMupkC,EAAgB96gC,GAAM,IAASzuD,IAE5D,CAwJA,OA5JAkmD,IAAU+khC,EAAYnkhC,GAUtBmkhC,EAAWt6jC,UAAUkvf,UAAY,SAAU5mf,GACvCjZ,KAAKwpkC,UAAW,EAChBxpkC,KAAKkrkC,iBAAiBjyjC,GACtB6tC,EAAOn2C,UAAUkvf,UAAUlggB,KAAKK,KAAMiZ,EAC1C,EACAgyjC,EAAWt6jC,UAAUu6jC,iBAAmB,SAAUjyjC,GAC1CjZ,KAAKupkC,gBAAkBvpkC,KAAKupkC,eAAetlB,mBAE3CjkjC,KAAKupkC,eAAetlB,iBAAiBknB,sBAAwBrE,IAAkB7tjC,EAAMjZ,KAAKkpiC,cAAelpiC,KAAKupkC,gBAAgB,IAGlI,IAAIjvjC,EAASwsjC,IAAkB7tjC,EAAMjZ,KAAKkpiC,cAAelpiC,KAAKupkC,gBAE1DrgB,GAAS,EAab,GAXI5uiC,GAAyC,gBAA/BA,EAAOy6hC,qBAEbz6hC,EAAOkpiC,oBAAsBlpiC,EAAOkpiC,mBAAmB0F,SAEnDA,GADAlpjC,KAAKupkC,eAAetlB,iBAAiBmnB,yBAAyB,SAAU9wjC,KAQ/E4uiC,EAAQ,CAET,IAAImiB,OAAiB,EAOrB,GALIA,EADApyjC,EAAKrC,QAA8C,OAApCqC,EAAKqyjC,2BACHryjC,EAAKrC,OAAO00jC,2BAGZ,GAEjBtrkC,KAAKupkC,eAAgB,CACrB,IAAIviG,EAAiBhn+B,KAAKupkC,eAAevmoB,cACzC,GAAIgkiB,EAAgB,CAEhB,IAAI7n2B,EAAa6n2B,EAAe5xxB,YAAY,GAExCm23B,EAAYvkG,EAAemiF,WAAW,GACtCqiB,EAAexrkC,KAAKupkC,eAAevmoB,cAAc5tP,YAAY,GAC7Dq23B,EAAgBxyjC,EAAKrC,OA2BzB,IA1BKow9B,EAAe5xxB,YAAYhyM,QAAW6V,EAAKsjB,OAAStjB,EAAKsjB,KAAK3E,SAE5D53B,KAAKupkC,eAAetlB,mBAAwG,IAApFjkjC,KAAKupkC,eAAetlB,iBAAiByE,yBAAyBC,mBAGpG1viC,EAAKsjB,MAAQtjB,EAAKsjB,KAAK3E,UAAa6ziC,GAAuD,aAAtCA,EAAc12B,qBAAwCy2B,GAAqD,aAArCA,EAAaz2B,sBAGxIhpuB,GAAkBzxT,IAAWta,KAAKupkC,eAAemC,sBAAyBD,GAAuD,aAAtCA,EAAc12B,qBAAwCy2B,IAAsD,aAArCA,EAAaz2B,qBAA2E,UAArCy2B,EAAaz2B,qBAAwE,gBAArCy2B,EAAaz2B,wBALvR/0iC,KAAKupkC,eAAe/xb,eAAex3oB,KAAKkpiC,cAAc+9B,eAAeC,cAQrE5sjC,IACKyxT,GAAkB/rU,KAAKkpiC,cAAcyiC,qBAAwB3rkC,KAAKkpiC,cAAcyiC,qBACjF3rkC,KAAKupkC,eAAe/+uB,OAAO,CAAClwU,EAAO6b,IAAKk1iC,GACxCrrkC,KAAKupkC,eAAetN,WAAW2P,uBAAwB,GAE3D5rkC,KAAKkpiC,cAAcyiC,oBAAqB,EACxC3rkC,KAAKupkC,eAAetN,WAAW4P,sBAAuB,GAEhB,IAAtC7kG,EAAe5xxB,YAAYhyM,QAAgB+7H,GAAiD,yBAAnCA,EAAW416B,qBAAqF,kBAAnC516B,EAAW416B,qBAA8E,mBAAnC516B,EAAW416B,qBAA+E,SAAnC516B,EAAW416B,sBAAmC516B,EAAW816B,0BACxRj1iC,KAAKupkC,eAAe5S,eAAiB1vuB,GAAQM,WAAavnV,KAAKupkC,eAAejhB,mBAC9EtojC,KAAKupkC,eAAe5ikB,cAAcmzjB,aAAY,GAElD95jC,KAAKupkC,eAAeuC,uBAAuB3s8B,EAAW8n7B,UAAW9n7B,EAAW22S,UAAW32S,IAGlD,IAArC6n2B,EAAemiF,WAAW/ljC,QAAgBpD,KAAKupkC,eAAemC,oBAAsBH,GAAaA,EAAUt2B,wBAAyB,CAEpI,IAAI717B,EAAQ,CAAE16G,KAAM6mkC,EAAU7mkC,KAAMyxB,GAAIo1iC,EAAUp1iC,GAAIv0B,MAAO2pkC,EAAU3pkC,MAAO4gd,WAAY+onB,EAAU/onB,WAAYvjK,SAAUssxB,EAAUtsxB,SAAUu3R,UAAW+0f,EAAU/0f,UAE/J//c,MAAO808B,EAAU908B,MAAOmnW,gBAAiB2tmB,EAAU3tmB,gBAAiB5hN,UAAWuvzB,EAAUvvzB,UAAWijI,WAAYssrB,EAAUrumB,WAAY31N,WAAYgk0B,EAAUhk0B,WAE5J35L,UAAW29/B,EAAU39/B,UAAWrzD,WAAYgxjC,EAAUhxjC,WAAYwxjC,QAASR,EAAUQ,QAASx5pB,SAAUg5pB,EAAUh5pB,SAAU2Z,QAASq/oB,EAAUr/oB,QAE/Ipta,QAASysjC,EAAUzsjC,QAASkta,UAAWu/oB,EAAUv/oB,UAAW2P,WAAY4voB,EAAU5voB,YACtF37b,KAAKupkC,eAAeyC,2BAA2B,oBAAqB5s9B,EAAOms9B,EAAUz1pB,UACzF,MACK,GAAI91a,KAAKkpiC,cAAc/tgC,eAAiBn7B,KAAKkpiC,cAAc/tgC,cAAchF,IAAMn2B,KAAKupkC,eAAepgB,YAA6B,cAAfpyhC,MAAMnqB,KACxH,IAAK,IAAIT,EAAI,EAAGA,EAAInM,KAAKupkC,eAAepgB,WAAW/ljC,OAAQ+I,IAAK,CAC5D,IAAI8/jC,EAAcjskC,KAAKupkC,eAAepgB,WAAW58hC,SAASpgB,EAAE2K,WAAY,KACxE,GAAI9W,KAAKkpiC,cAAc/tgC,eAAiBn7B,KAAKkpiC,cAAc/tgC,cAAchF,KAAO81iC,EAAY91iC,GAAI,CAExFipF,EAAQ,CACRx9G,MAAOqqkC,EAAYrqkC,MAAO4gd,WAAYypnB,EAAYzpnB,WAAYvjK,SAAUgtxB,EAAYhtxB,SAAUu3R,UAAWy1f,EAAYz1f,UAErH//c,MAAOw18B,EAAYx18B,MAAOmnW,gBAAiBqumB,EAAYrumB,gBAAiB5hN,UAAWiwzB,EAAYjwzB,UAAWijI,WAAYgtrB,EAAYhtrB,WAAY13I,WAAY0k0B,EAAY1k0B,WAEtK35L,UAAWq+/B,EAAYr+/B,UAAWrzD,WAAY0xjC,EAAY1xjC,WAAYwxjC,QAASE,EAAYF,QAASx5pB,SAAU05pB,EAAY/6T,YAAahlV,QAAS+/oB,EAAY//oB,QAE5Jpta,QAASmtjC,EAAYntjC,QAASkta,UAAWigpB,EAAYjgpB,UAAW2P,WAAYswoB,EAAYtwoB,YAEvFrhb,EAKGta,KAAKkpiC,cAAc/tgC,cAAchF,IAAMY,MAAM1uB,OAAO8tB,IAAgC,mBAA1BY,MAAM1uB,OAAOtH,YACvEf,KAAKupkC,eAAe/uB,sBAAsBp77B,EAAO6s9B,EAAYn2pB,WAC7D91a,KAAKkpiC,cAAc/tgC,cAAgB,OANvCn7B,KAAKupkC,eAAe/uB,sBAAsBp77B,EAAO6s9B,EAAYn2pB,WAC7D91a,KAAKkpiC,cAAc/tgC,cAAgB,KAQ3C,CACJ,CAER,CACJ,CACJ,CAKJ,EAMA8viC,EAAWt6jC,UAAUo5jC,UAAY,SAAU9wjC,GAGvC,OAFA6tC,EAAOn2C,UAAUo5jC,UAAUpqkC,KAAKK,KAAMiZ,IAE9BjZ,KAAKypkC,OACjB,EAMAwB,EAAWt6jC,UAAUouf,QAAU,SAAU9lf,GACrCjZ,KAAKkrkC,iBAAiBjyjC,GACtBjZ,KAAKwpkC,UAAW,EAChB1ihC,EAAOn2C,UAAUouf,QAAQp/f,KAAKK,KAAMiZ,EACxC,EAMAgyjC,EAAWt6jC,UAAUu5jC,WAAa,SAAUjxjC,GACpCjZ,KAAKwpkC,UACLxpkC,KAAK++f,QAAQ9lf,EAErB,EACOgyjC,CACX,CA9JgC,CA8J9B5B,KAGE6C,IAA0B,SAAUplhC,GAEpC,SAASolhC,EAAS3C,EAAgB96gC,GAC9B,IAAInvD,EAAQwnD,EAAOnnD,KAAKK,KAAMupkC,EAAgB96gC,IAASzuD,KAKvD,OAHAV,EAAM67B,cAAgB,KAEtB77B,EAAM+x4B,SAAW,KACV/x4B,CACX,CAySA,OAjTA4mD,IAAUgmhC,EAAUplhC,GAcpBolhC,EAASv7jC,UAAUkvf,UAAY,SAAU5mf,GACrC6tC,EAAOn2C,UAAUkvf,UAAUlggB,KAAKK,KAAMiZ,GACtCjZ,KAAK0d,OAAS,CAAExD,EAAGjB,EAAKrC,OAAOzM,QAAQooV,QAASp4U,EAAGlB,EAAKrC,OAAOzM,QAAQqoV,SACvExyV,KAAK0nzB,cAAgBzuyB,EAAKixE,SAC1B,IAAIii/B,EAAgBx2B,IAAY18hC,EAAKrC,QACrC5W,KAAKoskC,YAAc,CACfznU,OAAQ,CACJzqvB,EAAGiyjC,EAAchikC,QAAQooV,QAASp4U,EAAGgyjC,EAAchikC,QAAQqoV,QAC3Dh0U,MAAO2tjC,EAAchikC,QAAQwywB,WAAWn+vB,MAAOoqI,OAAQuj7B,EAAchikC,QAAQwywB,WAAW/znB,SAI5Fks5B,IAAaq3B,KACbnskC,KAAKoskC,YAAYlI,aAAeiI,EAAcjI,aAC9ClkkC,KAAKoskC,YAAYjG,aAAegG,EAAchG,cAElDnmkC,KAAKwpkC,UAAW,CACpB,EAOA0C,EAASv7jC,UAAUouf,QAAU,SAAU9lf,GACnC,GAAIjZ,KAAKupkC,gBAAkBtwjC,EAAKrC,OAAQ,CACpC5W,KAAKqskC,sBAAsBpzjC,GAC3B,IAAIoyjC,EAAiBpyjC,EAAKrC,OAAO00jC,2BACjCtrkC,KAAKupkC,eAAe/xb,eAAex3oB,KAAKkpiC,cAAc+9B,eAAeC,cACrElnkC,KAAKupkC,eAAe/+uB,OAAO,CAACvxU,EAAKrC,OAAOuf,IAAKk1iC,GAEzCrrkC,KAAKkpiC,cAAc+9B,eAAeC,cAAgBjujC,EAAKrC,OAAOk/Z,WAC9D91a,KAAKupkC,eAAe+C,oBAAoBtskC,KAAKuskC,0BAA0BtzjC,GAAOjZ,KAAKwskC,0BAA0BvzjC,GAAOjZ,KAAKkpiC,cAAc+9B,eAAeC,aAAcmE,EAAgB,OAEpLpyjC,EAAKrC,QAAmD,YAAxCqC,EAAKrC,OAAOq+hC,yBAAiF,aAAxCh8hC,EAAKrC,OAAOq+hC,yBACtC,gBAAxCh8hC,EAAKrC,OAAOq+hC,yBAAqF,YAAxCh8hC,EAAKrC,OAAOq+hC,yBAC7B,mBAAxCh8hC,EAAKrC,OAAOq+hC,yBAAwF,iBAAxCh8hC,EAAKrC,OAAOq+hC,yBAAsF,iBAAxCh8hC,EAAKrC,OAAOq+hC,yBAC1F,kBAAxCh8hC,EAAKrC,OAAOq+hC,yBACfj1iC,KAAKupkC,eAAemC,mBAAmBe,kBAAkBxzjC,EAAKrC,QAElE5W,KAAKupkC,eAAemD,eAAe1skC,KAAKkpiC,cAAc+9B,eAAeC,aAAcmE,GACnFrrkC,KAAKupkC,eAAetN,WAAW0Q,uBAAwB,EACvD3skC,KAAKupkC,eAAetN,WAAW2Q,sBAAuB,EAEtD,IAAIC,EAAiB,CACjBloU,OAAQ,CACJzqvB,EAAGjB,EAAKrC,OAAOzM,QAAQooV,QAASp4U,EAAGlB,EAAKrC,OAAOzM,QAAQqoV,QACvDh0U,MAAOvF,EAAKrC,OAAOzM,QAAQwywB,WAAWn+vB,MAAOoqI,OAAQ3vI,EAAKrC,OAAOzM,QAAQwywB,WAAW/znB,QACrFq3lB,aAAchnuB,EAAKrC,OAAOqpuB,cAMjC,GAJI60T,IAAa77hC,EAAKrC,UAClBi2jC,EAAe3I,aAAejrjC,EAAKrC,OAAOstjC,aAC1C2I,EAAe1G,aAAeltjC,EAAKrC,OAAOuvjC,cAE1CltjC,EAAK5Q,QAAU4Q,EAAK5Q,OAAO4siC,wBAAyB,CACpD,IAAI/kiC,EAAO+I,EAAK5Q,OACZ+2G,EAAQ,CAERx9G,MAAOsO,EAAKtO,MAAO4gd,WAAYtyc,EAAKsyc,WAAYvjK,SAAU/uS,EAAK+uS,SAAUu3R,UAAWtmkB,EAAKsmkB,UAEzF//c,MAAOvmH,EAAKumH,MAAOmnW,gBAAiB1td,EAAK0td,gBAAiB2lW,YAAarzzB,EAAKqzzB,YAE5E6qI,UAAWl+7B,EAAKk+7B,UAAWpyrB,UAAW9rQ,EAAK8rQ,UAAWijI,WAAY/uY,EAAK+uY,WAAY13I,WAAYr3P,EAAKq3P,WAEpG35L,UAAW19D,EAAK09D,UAAWrzD,WAAYrK,EAAKqK,WAAYwxjC,QAAS77jC,EAAK67jC,QAASx5pB,SAAUria,EAAKghwB,YAAahlV,QAASh8a,EAAKg8a,QAASpta,QAAS5O,EAAK4O,QAEhJkta,UAAW97a,EAAK87a,UAAW2P,WAAYzrb,EAAKyrb,YAG5C89U,EAAkB,CAAEr4vB,EAAGnI,EAAKrC,OAAOzM,QAAQooV,QAAS1zU,EAAG5F,EAAKrC,OAAOzM,QAAQqoV,QAAS6uY,MAAOpotB,EAAKrC,OAAOzM,QAAQwywB,WAAWn+vB,MAAO8itB,OAAQrotB,EAAKrC,OAAOzM,QAAQwywB,WAAW/znB,QAExK0+pB,EAAmB,CAAElmyB,EAAGphB,KAAK0d,OAAOxD,EAAG2E,EAAG7e,KAAK0d,OAAOvD,EAAGkntB,MAAOpotB,EAAKrC,OAAOzM,QAAQwywB,WAAWn+vB,MAAO8itB,OAAQrotB,EAAKrC,OAAOzM,QAAQwywB,WAAW/znB,QACjJ5oJ,KAAKupkC,eAAeuD,uBAAuB,gBAAiB1t9B,EAAOlvG,EAAK4la,UAAWwxY,EAAkB7tC,EACzG,CACIz5wB,KAAKupkC,eAAepq8B,aAEpBn/H,KAAKupkC,eAAepq8B,WAAWmm7B,UAAUtljC,KAAK81a,UAAW,KAAM78Z,EAAKrC,OAAQ,OAAQ,GAAI5W,KAAKoskC,YAAaS,GAC1G7skC,KAAKupkC,eAAepq8B,WAAW4t8B,sBAAsBC,qBAAqB/zjC,EAAKrC,OAAQ,KAAM,QAC7F5W,KAAKupkC,eAAepq8B,WAAWg27B,4BAA4B8X,kBAAkBh0jC,EAAKrC,OAAQ,MAElG,CACA,IAAIm+hC,EAAsB/0iC,KAAKupkC,gBAAkBvpkC,KAAKupkC,eAAevmoB,eAAiBhjc,KAAKupkC,eAAevmoB,cAAc5tP,aAAep1M,KAAKupkC,eAAevmoB,cAAc5tP,YAAYhyM,OAAS,EAAIpD,KAAKupkC,eAAevmoB,cAAc5tP,YAAY,GAAG2/1B,oBAAsB,KACrQA,GAA+C,UAAxBA,GAA2D,mBAAxBA,EAC1Dju/B,EAAOn2C,UAAUouf,QAAQp/f,KAAKK,KAAMiZ,GAEP,UAAxB87hC,GAA2D,mBAAxBA,EACxC/0iC,KAAKwpkC,UAAW,EAEXxpkC,KAAKupkC,gBAAkBvpkC,KAAKupkC,eAAevmoB,eAAiBhjc,KAAKupkC,eAAevmoB,cAAcmmnB,YAAcnpjC,KAAKupkC,eAAevmoB,cAAcmmnB,WAAW/ljC,OAAS,GACvK0jD,EAAOn2C,UAAUouf,QAAQp/f,KAAKK,KAAMiZ,EAE5C,EACAizjC,EAASv7jC,UAAUu8jC,oBAAsB,WACrC,OAAIltkC,KAAKy5wB,iBAAmBz5wB,KAAK0nzB,cACtB1nzB,KAAKy5wB,gBAAgBv/vB,EAAIla,KAAK0nzB,cAAcxtyB,EAG5C,CAEf,EACAgyjC,EAASv7jC,UAAUw8jC,oBAAsB,WACrC,OAAIntkC,KAAKy5wB,iBAAmBz5wB,KAAK0nzB,cACtB1nzB,KAAKy5wB,gBAAgBt/vB,EAAIna,KAAK0nzB,cAAcvtyB,EAG5C,CAEf,EACA+xjC,EAASv7jC,UAAU47jC,0BAA4B,SAAUtzjC,GACrD,IAAIiB,EAAIla,KAAKktkC,sBAAwBltkC,KAAKupkC,eAAetN,WAAWzxB,gBAEpE,OAAIxqiC,KAAK0d,OACW1d,KAAK0d,OAAOxD,EAAIA,EAEbjB,EAAKrC,OAAOzM,QAAQooV,QAIhC,CAEf,EACA25uB,EAASv7jC,UAAU67jC,0BAA4B,SAAUvzjC,GAErD,IAAIkB,EAAIna,KAAKmtkC,sBAAwBntkC,KAAKupkC,eAAetN,WAAWzxB,gBACpE,OAAIxqiC,KAAK0d,OAEW1d,KAAK0d,OAAOvD,EAAIA,EAEblB,EAAKrC,OAAOzM,QAAQqoV,QAGhC,CAEf,EAQA05uB,EAASv7jC,UAAUo5jC,UAAY,SAAU9wjC,EAAMm0jC,EAAS3mX,GAEpD,GADA3/pB,EAAOn2C,UAAUo5jC,UAAUpqkC,KAAKK,KAAMiZ,GAClCjZ,KAAKwpkC,SAAU,CACfxpkC,KAAKy5wB,gBAAkBxgwB,EAAKixE,SAC5BlqF,KAAKm7B,cAAgBliB,EAAK5Q,OAC1B,IAAIgjkC,EAAiBpyjC,EAAKrC,OAAO00jC,2BAC7BpxjC,EAAIla,KAAKktkC,sBAAwBltkC,KAAKupkC,eAAetN,WAAWzxB,gBAChErwhC,EAAIna,KAAKmtkC,sBAAwBntkC,KAAKupkC,eAAetN,WAAWzxB,gBAChE6iC,EAAYrtkC,KAAK0d,OAAOxD,EAAIA,EAC5BozjC,EAAYttkC,KAAK0d,OAAOvD,EAAIA,EAC5ByhV,EAAQ57V,KAAKuskC,0BAA0BtzjC,GACvCkjV,EAAQn8V,KAAKwskC,0BAA0BvzjC,GACvCo+a,EAAer3b,KAAKupkC,eAAevmoB,cAAc5tP,YAAY,GAC7Dm43B,OAAU,EACd,GAAKvtkC,KAAKugW,OA0DN3E,EAAQyxuB,EAAYrtkC,KAAKugW,OAAOp2V,QAAQooV,QACxC4J,EAAQmxuB,EAAYttkC,KAAKugW,OAAOp2V,QAAQqoV,YA3D1B,EAEd+6uB,EAAUvtkC,KAAKupkC,eAAevmoB,cAAc5tP,YAAYhyM,OAAS,EAAIuyiC,IAAY31iC,KAAKupkC,eAAevmoB,cAAc5tP,YAAY,IAAMug2B,IAAY31iC,KAAKupkC,eAAevmoB,cAAcmmnB,WAAW,KAClLh/iC,UACRyxV,EAAQyxuB,EAAYE,EAAQpjkC,QAAQooV,QACpC4J,EAAQmxuB,EAAYC,EAAQpjkC,QAAQqoV,QAEpC+6uB,EAAQ5oU,OAAS3kwB,KAAKupkC,eAAevmoB,cAAc5tP,YAAYhyM,OAAS,EAAIpD,KAAKupkC,eAAevmoB,cAAc5tP,YAAY,GAAGjrM,QAAQw6vB,OAAS3kwB,KAAKupkC,eAAevmoB,cAAcmmnB,WAAW,GAAGh/iC,QAAQw6vB,QAE1M4oU,EAAQpjkC,aAAU9G,EAClBkqkC,EAAQp3iC,GAAK,iBACuB,UAAhCo3iC,EAAQx4B,qBACRw4B,EAAQ9vmB,YAAc,GACtB8vmB,EAAQp4B,gBAAkB,GAC1Bo4B,EAAQ5vL,UAAY,cACpB4vL,EAAQC,eAAiB,cACzBD,EAAQrjiC,KAAO,IAEsB,aAAhCqjiC,EAAQx4B,qBACbw4B,EAAQ9vmB,YAAc,OACtB8vmB,EAAQ5vL,UAAY,cACpB4vL,EAAQn/H,UAAY,EACpBm/H,EAAQj/7B,QAAU,EAClBi/7B,EAAQ/vB,YAAc,IAEe,kBAAhC+vB,EAAQx4B,qBACbw4B,EAAQ9vmB,YAAc,MACtB8vmB,EAAQp4B,gBAAkB,MAC1Bo4B,EAAQ5vL,UAAY,cACpB4vL,EAAQn/H,UAAY,EACpBm/H,EAAQj/7B,QAAU,EAClBi/7B,EAAQrjiC,KAAO,KAGfqjiC,EAAQ9vmB,YAAc,MACtB8vmB,EAAQp4B,gBAAkB,MAC1Bo4B,EAAQ5vL,UAAY,cACpB4vL,EAAQn/H,UAAY,EACpBm/H,EAAQj/7B,QAAU,IAEW,IAA7Bi/7B,EAAQE,mBACRF,EAAQG,aAAe,IAE3B,IAAI34B,EAAsBw4B,EAAQx4B,oBAC7Bq4B,GAAmC,UAAxBr4B,GAA2D,mBAAxBA,EAI/Cw4B,EAAUvtkC,KAAKugW,OAAStnV,EAAKrC,OAH7B5W,KAAKugW,OAASgtuB,EAAUvtkC,KAAKupkC,eAAen2iC,IAAIm6iC,GAKhDvtkC,KAAKupkC,eAAevmoB,cAAc5tP,YAAYhyM,OAAS,EACvDpD,KAAKupkC,eAAevmoB,cAAc5tP,YAAc,CAACm43B,GAGjDvtkC,KAAKupkC,eAAevmoB,cAAcmmnB,WAAa,CAACokB,EAExD,CASA,GAJIvtkC,KAAKugW,QAA8C,UAApCvgW,KAAKugW,OAAOw0sB,sBAC3Bq4B,GAAU,GAGVptkC,KAAKupkC,eAAeoE,yBAAyB/xuB,EAAOO,EAAOn8V,KAAKkpiC,cAAc+9B,eAAeC,aAAclnkC,KAAKugW,OAAOp2V,QAAQw6vB,OAAQyoU,EAAS3mX,GAAS,CACrJsuV,EAAsB/0iC,KAAKugW,OAAOw0sB,oBACtC,IAAI/0iC,KAAKugW,QAAmC,UAAxBw0sB,GAA2D,mBAAxBA,EAWnD/0iC,KAAKupkC,eAAe+C,oBAAoB1wuB,EAAOO,EAAOn8V,KAAKkpiC,cAAc+9B,eAAeC,aAAcmE,EAAgBrrkC,KAAKugW,YAX7B,CAC9FvgW,KAAKqskC,sBAAsBpzjC,GAE3B,IAAI20jC,EAAmB30jC,EAAKrC,OAAO00jC,2BACnCtrkC,KAAKupkC,eAAe/xb,eAAex3oB,KAAKkpiC,cAAc+9B,eAAeC,cACrElnkC,KAAKupkC,eAAe/+uB,OAAO,CAACvxU,EAAKrC,OAAOuf,IAAKy3iC,GAE7C5tkC,KAAKupkC,eAAe+C,oBAAoB1wuB,EAAOO,EAAOn8V,KAAKkpiC,cAAc+9B,eAAeC,aAAc0G,EAAkB5tkC,KAAKugW,QAC7HvgW,KAAKupkC,eAAemD,eAAe1skC,KAAKkpiC,cAAc+9B,eAAeC,aAAc0G,EACvF,CAIA5tkC,KAAKqx4B,SAAWrx4B,KAAKugW,OACrBvgW,KAAK8pkC,aAAe9pkC,KAAKy5wB,eAC7B,MAEIz5wB,KAAKy5wB,gBAAkBz5wB,KAAK8pkC,aAE5BzyoB,GAAgBA,EAAa4vnB,WAC7BjnjC,KAAKupkC,eAAepq8B,WAAW0u8B,sBAAsBx2oB,GAAc,EAE3E,CACA,OAAO,CACX,EAMA60oB,EAASv7jC,UAAUu5jC,WAAa,SAAUjxjC,GACtC,IAAIoyjC,EAAiBpyjC,EAAKrC,OAAO00jC,2BAC7B+B,EAAYrtkC,KAAK0d,OAAOxD,EAAIla,KAAKktkC,sBACjCI,EAAYttkC,KAAK0d,OAAOvD,EAAIna,KAAKmtkC,sBACjCvxuB,EAAQyxuB,EAAYp0jC,EAAKrC,OAAOzM,QAAQooV,QACxC4J,EAAQmxuB,EAAYr0jC,EAAKrC,OAAOzM,QAAQqoV,QAC5CxyV,KAAKupkC,eAAe+C,oBAAoB1wuB,EAAOO,EAAOn8V,KAAKgqkC,WAAYqB,EAAgB,MACvFrrkC,KAAKupkC,eAAemD,eAAe1skC,KAAKgqkC,WAAYqB,GACpDvkhC,EAAOn2C,UAAUu5jC,WAAWvqkC,KAAKK,KAAMiZ,EAC3C,EAKAizjC,EAASv7jC,UAAUs5jC,UAAY,WAC3BnjhC,EAAOn2C,UAAUs5jC,UAAUtqkC,KAAKK,MAChCA,KAAKm7B,cAAgB,KACrBn7B,KAAK8pkC,aAAe,IACxB,EACAoC,EAASv7jC,UAAU07jC,sBAAwB,SAAUpzjC,GAE7CjZ,KAAKupkC,eAAevmoB,eAAiBhjc,KAAKupkC,eAAevmoB,cAAc5tP,aAAep1M,KAAKupkC,eAAevmoB,cAAc5tP,YAAYhyM,OAAS,EACzIpD,KAAKupkC,eAAevmoB,cAAc5tP,YAAY,GAAG6x2B,YAAchuiC,EAAKrC,OAAOqwiC,YAC3EjnjC,KAAKupkC,eAAetN,WAAW0Q,uBAAwB,GAI3D3skC,KAAKupkC,eAAetN,WAAW0Q,uBAAwB,EAGvD3skC,KAAKupkC,eAAevmoB,eAAiBhjc,KAAKupkC,eAAevmoB,cAAcmmnB,YAAcnpjC,KAAKupkC,eAAevmoB,cAAcmmnB,WAAW/ljC,OAAS,EACvIpD,KAAKupkC,eAAevmoB,cAAcmmnB,WAAW,GAAGzkjC,OAASuU,EAAKrC,OAAOlS,OACrE1E,KAAKupkC,eAAetN,WAAW2Q,sBAAuB,GAI1D5skC,KAAKupkC,eAAetN,WAAW2Q,sBAAuB,CAE9D,EACOV,CACX,CAnT8B,CAmT5B7C,KAGEZ,IAA2B,SAAU3hhC,GAErC,SAAS2hhC,IACL,OAAkB,OAAX3hhC,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAsEA,OAzEAkmD,IAAUuihC,EAAW3hhC,GAUrB2hhC,EAAU93jC,UAAUkvf,UAAY,SAAU5mf,GACtC6tC,EAAOn2C,UAAUouf,QAAQp/f,KAAKK,KAAMiZ,EACxC,EAMAwvjC,EAAU93jC,UAAUo5jC,UAAY,SAAU9wjC,GAEtC,IAAIumB,EACJ,IAAKx/B,KAAKwpkC,SAAU,CAChB,IAAI1zpB,EAAY91a,KAAKkpiC,cAAc+9B,eAAeC,aAClDlnkC,KAAKupkC,eAAe/xb,eAAex3oB,KAAKkpiC,cAAc+9B,eAAeC,cAErE,IAAI/sc,EAAcn6nB,KAAKupkC,eAAepq8B,WAAW4t8B,sBAAsBe,iBAAiB70jC,EAAKixE,SAAShwE,EAAGjB,EAAKixE,SAAS/vE,EAAG27Z,GAC1H,GAAwC,kBAApCqkN,EAAY46a,oBAAyC,CACrD,IAAInsI,EAAY5o6B,KAAK+tkC,aAAa5zc,EAAYjwlB,KAAMiwlB,EAAYl7U,SAAUk7U,EAAY33K,YAClFs9c,EAAa,EACb8I,EAAYzuS,EAAYwqI,OAAOnmvB,QAC/Bsh5B,EAAa3lS,EAAYwqI,OAAOnmvB,MAAQoq5B,GAC5CzuS,EAAYl7U,SAAWj/S,KAAKgukC,YAAYpqkC,KAAKiG,MAAOswnB,EAAYl7U,SAAW6gnB,IAE3E3lS,EAAYwqI,OAAO/7mB,OAASuxe,EAAYl7U,SADlB,GACsE,EAAvBk7U,EAAYl7U,SAAek7U,EAAYwqI,OAAO/7mB,OACnHuxe,EAAYi0U,UAAY,CAC5B,CACA5u6B,EAAYx/B,KAAKupkC,eAAen2iC,IAAI+mmB,GACpClhnB,EAAKrC,OAAS5W,KAAKupkC,eAAen03B,YAAYp1M,KAAKupkC,eAAen03B,YAAYhyM,OAAS,GACvF6V,EAAKg1jC,cAAgBh1jC,EAAKrC,OAAOzM,QACjCnK,KAAKwpkC,UAAW,EAEhB,IAAIiC,EAAgBxyjC,EAAKrC,QACrB60jC,GAAwD,yBAAtCA,EAAc12B,qBAAwF,kBAAtC02B,EAAc12B,qBAAiF,mBAAtC02B,EAAc12B,oBAIzJ/0iC,KAAa,OAAI,CAAEka,EAAGjB,EAAKrC,OAAOzM,QAAQooV,QAASp4U,EAAGlB,EAAKrC,OAAOzM,QAAQqoV,SAH1ExyV,KAAa,OAAI,CAAEka,EAAGjB,EAAKrC,OAAOzM,QAAQooV,QAAWt5U,EAAKrC,OAAOzM,QAAQw6vB,OAAOnmvB,MAAQ,EAAIrE,EAAGlB,EAAKrC,OAAOzM,QAAQqoV,QAAWv5U,EAAKrC,OAAOzM,QAAQw6vB,OAAO/7mB,OAAS,GAKtK5oJ,KAAK0nzB,cAAgBzuyB,EAAKixE,SAC1BlqF,KAAKupkC,eAAe/+uB,OAAO,CAAChrT,EAAUrJ,IAC1C,CACA,IAAIk1iC,EAAiBpyjC,EAAKrC,OAAO00jC,2BAGjC,OAFAxkhC,EAAOn2C,UAAUo5jC,UAAUpqkC,KAAKK,KAAMiZ,GAAM,GAAM,GAClDjZ,KAAKupkC,eAAemD,eAAezzjC,EAAKrC,OAAOk/Z,UAAWu1pB,GACnDrrkC,KAAKwpkC,QAChB,EACAf,EAAU93jC,UAAUo9jC,aAAe,SAAU9tiC,EAAMskc,EAAM/hB,GACrD,IAEIymI,EADAhukB,EADSiW,SAASpwB,cAAc,UACf67d,WAAW,MAMhC,OAJI4H,IACA0kH,EAAW1kH,QAAoB/hB,GAEnCvnc,EAAQspd,KAAO0kH,GAAYz2T,iBAAiBthQ,SAASzd,MAAM8wd,KACpDtpd,EAAQ+44B,YAAY/z3B,GAAMzhB,KACrC,EAKAiqjC,EAAU93jC,UAAUq9jC,YAAc,SAAU/uxB,GACxC,OAAQA,EAAW,IAAM,EAAKA,IAAaA,CAC/C,EACOwpxB,CACX,CA3E+B,CA2E7ByD,KAOEgC,IAAgC,SAAUpnhC,GAE1C,SAASonhC,EAAe3E,EAAgB96gC,EAAMon/B,GAC1C,IAAIv2iC,EAAQwnD,EAAOnnD,KAAKK,KAAMupkC,EAAgB96gC,IAASzuD,KAEvD,OADAV,EAAMu2iC,aAAeA,EACdv2iC,CACX,CAoDA,OAzDA4mD,IAAUgohC,EAAgBpnhC,GAW1BonhC,EAAev9jC,UAAUkvf,UAAY,SAAU5mf,GAC3CjZ,KAAKkpiC,cAAcilC,2BACnBrnhC,EAAOn2C,UAAUkvf,UAAUlggB,KAAKK,KAAMiZ,GACtCjZ,KAAKwpkC,UAAW,EAEhB,IAAIt5jC,EAAO,CAAEupwB,gBAAiBz5wB,KAAKy5wB,gBAAiBqwT,aAAc9pkC,KAAK8pkC,cACvE9pkC,KAAKupkC,eAAepq8B,WAAWy17B,oBAAoBwZ,gBAAgBl+jC,EAAMlQ,KAAKkpiC,cAAc+9B,eAAeC,aAC/G,EAMAgH,EAAev9jC,UAAUo5jC,UAAY,SAAU9wjC,GAE3C,GADA6tC,EAAOn2C,UAAUo5jC,UAAUpqkC,KAAKK,KAAMiZ,GAClCjZ,KAAKwpkC,SAAU,CAEf,IAAIt5jC,EAAO,CAAEupwB,gBAAiBz5wB,KAAKy5wB,gBAAiBqwT,aAAc9pkC,KAAKkpiC,cAAc4gC,cACrF9pkC,KAAKupkC,eAAepq8B,WAAWy17B,oBAAoBwZ,gBAAgBl+jC,EAAMlQ,KAAKkpiC,cAAc+9B,eAAeC,aAC/G,CACA,OAAOlnkC,KAAKwpkC,QAChB,EAMA0E,EAAev9jC,UAAUouf,QAAU,SAAU9lf,GAEzC,OADAjZ,KAAKupkC,eAAepq8B,WAAWy17B,oBAAoByZ,iBAC5C,CACX,EAMAH,EAAev9jC,UAAUu5jC,WAAa,SAAUjxjC,GAC5C,EAMJi1jC,EAAev9jC,UAAUs5jC,UAAY,WACjCnjhC,EAAOn2C,UAAUs5jC,UAAUtqkC,KAAKK,KACpC,EACOkukC,CACX,CA3DoC,CA2DlC7E,KAOEiF,IAA6B,SAAUxnhC,GAEvC,SAASwnhC,EAAY/E,EAAgB96gC,EAAM25S,GACvC,IAAI9oW,EAAQwnD,EAAOnnD,KAAKK,KAAMupkC,EAAgB96gC,GAAM,IAASzuD,KAE7D,OADAV,EAAM8oW,SAAWA,EACV9oW,CACX,CAyMA,OA9MA4mD,IAAUoohC,EAAaxnhC,GAWvBwnhC,EAAY39jC,UAAUkvf,UAAY,SAAU5mf,GACxCjZ,KAAKwpkC,UAAW,EAChBxpkC,KAAK2pkC,iBAActmkC,EACnByjD,EAAOn2C,UAAUkvf,UAAUlggB,KAAKK,KAAMiZ,GAGlCA,EAAKrC,QAAUqC,EAAKrC,OAAOw+L,cAEhB,CAAEl7L,EAAGla,KAAK8pkC,aAAa5vjC,EAAGC,EAAGna,KAAK8pkC,aAAa3vjC,GAE7ClB,EAAKrC,OAAOw+L,YAAY,IAEzCp1M,KAAKw9V,gBAAkBvkV,EAAKixE,SAC5BlqF,KAAKuukC,WAAavukC,KAAKupkC,eAAevmoB,cAAc5tP,YAAY,GAChE,IAAI+kb,EAAcw7a,IAAY18hC,EAAKrC,QACnC5W,KAAKoskC,YAAc,CACfznU,OAAQ,CACJzqvB,EAAGignB,EAAYhwnB,QAAQooV,QAASp4U,EAAGggnB,EAAYhwnB,QAAQqoV,QACvDh0U,MAAO27mB,EAAYhwnB,QAAQwywB,WAAWn+vB,MAAOoqI,OAAQuxe,EAAYhwnB,QAAQwywB,WAAW/znB,SAIxFks5B,IAAa36a,KACbn6nB,KAAKoskC,YAAYlI,aAAe/pc,EAAY+pc,aAC5ClkkC,KAAKoskC,YAAYjG,aAAehsc,EAAYgsc,aACZ,aAA5Bhsc,EAAYq0c,aAA0D,cAA5Br0c,EAAYq0c,aAA2D,SAA5Br0c,EAAYq0c,aAAsD,WAA5Br0c,EAAYq0c,cACvIxukC,KAAKoskC,YAAYxG,MAAQzrc,EAAYyrc,QAG7C5lkC,KAAKy5wB,gBAAkBxgwB,EAAKixE,QAChC,EAMAok/B,EAAY39jC,UAAUouf,QAAU,SAAU9lf,GACtC,GAAIjZ,KAAKupkC,eAAgB,CACrB,IAAIr5jC,EAAOlQ,KAAKupkC,eAAevmoB,cAAc5tP,YAAY,GACzD,GAAIllM,EAAM,CAEN,IAAIsziC,EAAqBxjjC,KAAKupkC,eAAetlB,iBAAiBwmB,uBAAuBv6jC,GACjFw6jC,EAAsB,EACtBC,EAAqB,EACrBC,EAAsB,EACtBC,EAAqB,EAQzB,IANIrnB,EAAmBv6iB,UAAYu6iB,EAAmB1s7B,UAAY0s7B,EAAmB5tiB,WAAa4tiB,EAAmB59mB,aACjH8koB,EAAsBlnB,EAAmB59mB,UAAY49mB,EAAmB59mB,UAAY,IACpF+koB,EAAqBnnB,EAAmB1s7B,SAAW0s7B,EAAmB1s7B,SAAW,IACjF8z8B,EAAsBpnB,EAAmB5tiB,UAAY4tiB,EAAmB5tiB,UAAY,EACpFi1jB,EAAqBrnB,EAAmBv6iB,SAAWu6iB,EAAmBv6iB,SAAW,GAEjF/4f,EAAKg0jC,aAAa9gkC,OAAS,EAAG,CAE9B,IAAIqrkC,EAAazukC,KAAKupkC,eAAetN,WAAWyS,qBAAqBx+jC,EAAKg0jC,cACtE1ljC,EAAQiwjC,EAAWjwjC,MACnBoqI,EAAS6l7B,EAAW7l7B,OACpBgi7B,GAAuBC,GAAsBH,GAAuBC,GAE/D/h7B,EAASgi7B,GAAuBhi7B,EAAS8h7B,GAAyBlsjC,EAAQqsjC,GAAsBrsjC,EAAQmsjC,IAEzG3qkC,KAAKupkC,eAAeoF,mBAAmB3ukC,KAAKuukC,WAAY,CAAErK,aAAch0jC,EAAKg0jC,aAAciC,aAAcj2jC,EAAKi2jC,eAKlHnmkC,KAAKupkC,eAAeoF,mBAAmB3ukC,KAAKuukC,WAAY,CAAErK,aAAch0jC,EAAKg0jC,aAAciC,aAAcj2jC,EAAKi2jC,cAEtH,MAEI,GAAIyE,GAAuBC,GAAsBH,GAAuBC,EACpE,GAAiC,SAA7Bz6jC,EAAK6kiC,qBAA+D,aAA7B7kiC,EAAK6kiC,qBAAmE,uBAA7B7kiC,EAAK6kiC,oBAA8C,CACrI,IAAI76hC,EAAI,EACJC,EAAI,EAaJ2J,GAXA5J,EADAhK,EAAKg0jC,aAAa,GAAGhqjC,EAAIhK,EAAKg0jC,aAAa,GAAGhqjC,EAC1ChK,EAAKg0jC,aAAa,GAAGhqjC,EAAIhK,EAAKg0jC,aAAa,GAAGhqjC,EAG9ChK,EAAKg0jC,aAAa,GAAGhqjC,EAAIhK,EAAKg0jC,aAAa,GAAGhqjC,IAGlDC,EADAjK,EAAKg0jC,aAAa,GAAG/pjC,EAAIjK,EAAKg0jC,aAAa,GAAG/pjC,EAC1CjK,EAAKg0jC,aAAa,GAAG/pjC,EAAIjK,EAAKg0jC,aAAa,GAAG/pjC,EAG9CjK,EAAKg0jC,aAAa,GAAG/pjC,EAAIjK,EAAKg0jC,aAAa,GAAG/pjC,GAEjCD,EAAIC,EACrB2J,GAAQ4mjC,GAAuBC,IAAuB7mjC,GAAQ8mjC,GAAuBC,IAErF7qkC,KAAKupkC,eAAeoF,mBAAmB3ukC,KAAKuukC,WAAY,CAAErK,aAAch0jC,EAAKg0jC,aAAciC,aAAcj2jC,EAAKi2jC,cAEtH,MAGInmkC,KAAKupkC,eAAeoF,mBAAmB3ukC,KAAKuukC,WAAY,CAAErK,aAAch0jC,EAAKg0jC,aAAciC,aAAcj2jC,EAAKi2jC,oBAKlHnmkC,KAAKupkC,eAAeoF,mBAAmB3ukC,KAAKuukC,WAAY,CAAErK,aAAch0jC,EAAKg0jC,aAAciC,aAAcj2jC,EAAKi2jC,eAGtH,IAAIkF,EAAiBpyjC,EAAKrC,OAAO00jC,2BACjCtrkC,KAAKupkC,eAAe/xb,eAAex3oB,KAAKkpiC,cAAc+9B,eAAeC,cACrElnkC,KAAKupkC,eAAe/+uB,OAAO,CAACxqV,KAAKuukC,WAAWp4iC,IAAKk1iC,GACjDrrkC,KAAKupkC,eAAemD,eAAe1skC,KAAKkpiC,cAAc+9B,eAAeC,aAAcmE,GAEnF,IAAIuD,EAAwB,CACxBjqU,OAAQ,CACJzqvB,EAAGjB,EAAKrC,OAAOzM,QAAQooV,QAASp4U,EAAGlB,EAAKrC,OAAOzM,QAAQqoV,QACvDh0U,MAAOvF,EAAKrC,OAAOzM,QAAQwywB,WAAWn+vB,MAAOoqI,OAAQ3vI,EAAKrC,OAAOzM,QAAQwywB,WAAW/znB,SAGnE,aAArB14I,EAAKs+jC,aAAmD,cAArBt+jC,EAAKs+jC,aAAoD,SAArBt+jC,EAAKs+jC,aAA+C,WAArBt+jC,EAAKs+jC,cAC3GxukC,KAAKupkC,eAAepq8B,WAAW0v8B,sBAAsB7ukC,KAAKupkC,eAAevmoB,cAAc5tP,YAAY,IACnGw53B,EAAsBhJ,MAAQ3sjC,EAAKrC,OAAOgvjC,OAE1C9wB,IAAa77hC,EAAKrC,UAClBg4jC,EAAsB1K,aAAejrjC,EAAKrC,OAAOstjC,aACjD0K,EAAsBzI,aAAeltjC,EAAKrC,OAAOuvjC,cAGrDnmkC,KAAKupkC,eAAepq8B,WAAWmm7B,UAAUtljC,KAAK81a,UAAW,KAAM91a,KAAKuukC,WAAY,SAAU,GAAIvukC,KAAKoskC,YAAawC,EACpH,CACJ,CACA9nhC,EAAOn2C,UAAUouf,QAAQp/f,KAAKK,KAAMiZ,EACxC,EAMAq1jC,EAAY39jC,UAAUo5jC,UAAY,SAAU9wjC,GAIxC,GAHA6tC,EAAOn2C,UAAUo5jC,UAAUpqkC,KAAKK,KAAMiZ,GAEtCjZ,KAAKy5wB,gBAAkBxgwB,EAAKixE,SACxBlqF,KAAKy5wB,iBAAmBz5wB,KAAK8pkC,aAAc,CAC3C,IAAIluuB,EAAQ57V,KAAKy5wB,gBAAgBv/vB,EAAIla,KAAK8pkC,aAAa5vjC,EACnDiiV,EAAQn8V,KAAKy5wB,gBAAgBt/vB,EAAIna,KAAK8pkC,aAAa3vjC,EAevD,GAZIlB,EAAKrC,QAAUqC,EAAKrC,OAAOw+L,cAEhB,CACPl7L,EAAGla,KAAKy5wB,gBAAgBv/vB,EAAGC,EAAGna,KAAKy5wB,gBAAgBt/vB,GAG5C,CACPD,EAAGla,KAAK8pkC,aAAa5vjC,EAAGC,EAAGna,KAAK8pkC,aAAa3vjC,GAGrClB,EAAKrC,OAAOw+L,YAAY,IAEpCp1M,KAAKwpkC,eAA8BnmkC,IAAlBrD,KAAKooW,UAAoC,IAAVxM,GAAyB,IAAVO,EAAa,CAC5E,IAAKn8V,KAAKugW,OAAQ,CAEd,IAAIuuuB,EAAkBn5B,IAAY31iC,KAAKupkC,eAAevmoB,cAAc5tP,YAAY,IAChF053B,EAAgB34iC,GAAK,iBACrB24iC,EAAgBrxmB,YAAc,MAC9BqxmB,EAAgB35B,gBAAkB,MAClC25B,EAAgBnxL,UAAY,cAC5BmxL,EAAgB1gI,UAAY,EAC5B0gI,EAAgBxg8B,QAAU,GACe,IAArCwg8B,EAAgBrB,mBAChBqB,EAAgBpB,aAAe,IAEnC1tkC,KAAKugW,OAASuuuB,EAAkB9ukC,KAAKupkC,eAAen2iC,IAAI07iC,GACxD9ukC,KAAKupkC,eAAevmoB,cAAc5tP,YAAc,CAAC053B,EACrD,CACA,IAAIzD,EAAiBpyjC,EAAKrC,OAAO00jC,2BACjCtrkC,KAAKypkC,SAAWzpkC,KAAKupkC,eAAewF,kBAAkB/ukC,KAAKooW,SAAUpoW,KAAKugW,OAAQvgW,KAAKy5wB,gBAAiBz5wB,KAAKgvkC,gBAAiB/1jC,EAAK5Q,OAAQ,KAAMgjkC,GACjJrrkC,KAAKupkC,eAAemD,eAAe1skC,KAAKkpiC,cAAc+9B,eAAeC,aAAcmE,EACvF,CACJ,CAEA,OADArrkC,KAAK8pkC,aAAe9pkC,KAAKy5wB,iBACjBz5wB,KAAKypkC,OACjB,EAMA6E,EAAY39jC,UAAUu5jC,WAAa,SAAUjxjC,GACzCjZ,KAAK++f,QAAQ9lf,EACjB,EAKAq1jC,EAAY39jC,UAAUs5jC,UAAY,WAC9BnjhC,EAAOn2C,UAAUs5jC,UAAUtqkC,KAAKK,MAChCA,KAAK8pkC,aAAe,KACpB9pkC,KAAKooW,SAAW,IACpB,EACOkmuB,CACX,CAhNiC,CAgN/BjF,KAOE4F,IAA4B,SAAUnohC,GAEtC,SAASmohC,EAAW1F,EAAgB96gC,EAAMwvgC,GACtC,IAAI3+jC,EAAQwnD,EAAOnnD,KAAKK,KAAMupkC,EAAgB96gC,GAAM,IAASzuD,KAI7D,OAFAV,EAAM6qkC,cAAgB,IAAItoI,IAC1Bvi8B,EAAM2+jC,OAASA,EACR3+jC,CACX,CAqYA,OA5YA4mD,IAAU+ohC,EAAYnohC,GAatBmohC,EAAWt+jC,UAAUkvf,UAAY,SAAU5mf,GACvC6tC,EAAOn2C,UAAUkvf,UAAUlggB,KAAKK,KAAMiZ,GACtCjZ,KAAKmqkC,cAAcjwjC,EAAIjB,EAAKrC,OAAOzM,QAAQooV,QAC3CvyV,KAAKmqkC,cAAchwjC,EAAIlB,EAAKrC,OAAOzM,QAAQqoV,QAC3CxyV,KAAKmqkC,cAAcvh7B,OAAS3vI,EAAKrC,OAAOzM,QAAQwywB,WAAW/znB,OAC3D5oJ,KAAKmqkC,cAAc3rjC,MAAQvF,EAAKrC,OAAOzM,QAAQwywB,WAAWn+vB,MAC1Dxe,KAAKw9V,gBAAkBvkV,EAAKixE,SAC5B,IAAIh6E,EAAOyliC,IAAY18hC,EAAKrC,QAC5B5W,KAAKoskC,YAAc,CACfznU,OAAQ,CACJzqvB,EAAGhK,EAAK/F,QAAQooV,QAASp4U,EAAGjK,EAAK/F,QAAQqoV,QACzCh0U,MAAOtO,EAAK/F,QAAQwywB,WAAWn+vB,MAAOoqI,OAAQ14I,EAAK/F,QAAQwywB,WAAW/znB,SAI1Eks5B,IAAa5kiC,KACblQ,KAAKoskC,YAAYlI,aAAeh0jC,EAAKg0jC,aACrClkkC,KAAKoskC,YAAYjG,aAAej2jC,EAAKi2jC,cAEhB,WAArBj2jC,EAAKs+jC,cACLxukC,KAAKoskC,YAAYxG,MAAQ11jC,EAAK01jC,OAGlC5lkC,KAAKuukC,WAAavukC,KAAKupkC,eAAevmoB,cAAc5tP,YAAYhyM,OAAS,EAAIpD,KAAKupkC,eAAevmoB,cAAc5tP,YAAY,GAAKp1M,KAAKupkC,eAAevmoB,cAAcmmnB,WAAW,EACjL,EAOA8lB,EAAWt+jC,UAAUouf,QAAU,SAAU9lf,EAAMi2jC,GAC9Bj2jC,EAAKrC,OAAlB,IACIu4jC,EAAYx5B,IAAY18hC,EAAKrC,QACjC,GAAI5W,KAAKupkC,gBAAkBvpkC,KAAKuukC,WAAY,CACxCvukC,KAAKupkC,eAAe/xb,eAAex3oB,KAAKkpiC,cAAc+9B,eAAeC,cACrElnkC,KAAKupkC,eAAetN,WAAWmT,oBAAqB,EACpDpvkC,KAAKupkC,eAAetN,WAAWoT,mBAAoB,EACnDrvkC,KAAKupkC,eAAe/+uB,OAAO,CAACxqV,KAAKuukC,WAAWp4iC,IAAKn2B,KAAKuukC,WAAWjD,4BAEjE,IAAIgE,EAActvkC,KAAKwxwB,WAAWxxwB,KAAKuukC,WAAYvukC,KAAKy5wB,gBAAiBz5wB,KAAKw9V,gBAAiBx9V,KAAKi+jC,OAAQj+jC,KAAKmqkC,cAAe,MAAM,GAiBtI,GAhBAnqkC,KAAKypkC,QAAUzpkC,KAAKuvkC,aAAaD,EAAY9wjC,MAAO8wjC,EAAY1m7B,OAAQ5oJ,KAAKi+jC,OAAQj+jC,KAAKy5wB,gBAAiBz5wB,KAAKw9V,gBAAiBx9V,KAAKuukC,WAAYt1jC,EAAKsjB,KAAK3E,SACxJ53B,KAAKupkC,eAAevmoB,eAAiBhjc,KAAKupkC,eAAevmoB,cAAc5tP,aACvEp1M,KAAKupkC,eAAevmoB,cAAc5tP,YAAY,IAA+E,UAAzEp1M,KAAKupkC,eAAevmoB,cAAc5tP,YAAY,GAAG2/1B,sBACjG/0iC,KAAKupkC,eAAeiG,cAAc55jB,WAAa51gB,KAAKupkC,eAAeiG,cAAcvmkB,WACjFjpgB,KAAKupkC,eAAe/+uB,OAAO,CAACxqV,KAAKuukC,WAAWp4iC,IAAKn2B,KAAKuukC,WAAWjD,4BAGrEtrkC,KAAKupkC,eAAevmoB,cAAcmmnB,WAAW/ljC,OAAS,IAAkF,YAA5EpD,KAAKupkC,eAAevmoB,cAAcmmnB,WAAW,GAAGlU,yBAAqH,aAA5Ej1iC,KAAKupkC,eAAevmoB,cAAcmmnB,WAAW,GAAGlU,yBACtH,gBAA5Ej1iC,KAAKupkC,eAAevmoB,cAAcmmnB,WAAW,GAAGlU,yBAAyH,iBAA5Ej1iC,KAAKupkC,eAAevmoB,cAAcmmnB,WAAW,GAAGlU,yBAA0H,mBAA5Ej1iC,KAAKupkC,eAAevmoB,cAAcmmnB,WAAW,GAAGlU,yBAC/J,iBAA5Ej1iC,KAAKupkC,eAAevmoB,cAAcmmnB,WAAW,GAAGlU,yBAA0H,YAA5Ej1iC,KAAKupkC,eAAevmoB,cAAcmmnB,WAAW,GAAGlU,yBAAqH,kBAA5Ej1iC,KAAKupkC,eAAevmoB,cAAcmmnB,WAAW,GAAGlU,2BAC1J,mBAA5Ej1iC,KAAKupkC,eAAevmoB,cAAcmmnB,WAAW,GAAGlU,0BAChDj1iC,KAAKupkC,eAAevmoB,cAAcmmnB,WAAW,GAAGsmB,2BAA6BzvkC,KAAKupkC,eAAevmoB,cAAcmmnB,WAAW,GAAGsmB,2BAA6BzvkC,KAAKupkC,eAAevmoB,cAAcmmnB,WAAW,GAAGsmB,2BAA6B,CAAEnh8B,QAAS,EAAGsvV,gBAAiB,4BAA6Bp/c,MAAO,GAAIoqI,OAAQ,GAAIq2J,SAAU,GAAIh/Q,KAAM,KAAMw2F,MAAO,UAE/Vz2H,KAAKupkC,eAAemC,mBAAmBe,kBAAkBzskC,KAAKupkC,eAAevmoB,cAAcmmnB,WAAW,KAE1GnpjC,KAAKupkC,eAAemD,eAAe1skC,KAAKgqkC,WAAYhqkC,KAAKuukC,WAAWjD,4BAChEtrkC,KAAKupkC,eAAepq8B,YAAclmH,EAAKrC,OAAOzM,QAAS,CAEvD,IAAIq1B,EAAY,CACZmluB,OAAQ,CACJzqvB,EAAGjB,EAAKrC,OAAOzM,QAAQooV,QAASp4U,EAAGlB,EAAKrC,OAAOzM,QAAQqoV,QACvDh0U,MAAOvF,EAAKrC,OAAOzM,QAAQwywB,WAAWn+vB,MAAOoqI,OAAQ3vI,EAAKrC,OAAOzM,QAAQwywB,WAAW/znB,SAW5F,GARIks5B,IAAa77hC,EAAKrC,UAClB4oB,EAAU0kiC,aAAejrjC,EAAKrC,OAAOstjC,aACrC1kiC,EAAU2miC,aAAeltjC,EAAKrC,OAAOuvjC,cAEL,WAAhCnmkC,KAAKuukC,WAAWC,cAChBhviC,EAAUomiC,MAAQ3sjC,EAAKrC,OAAOgvjC,MAC9B5lkC,KAAKupkC,eAAepq8B,WAAW0v8B,sBAAsB7ukC,KAAKuukC,aAElB,kBAAxCvukC,KAAKuukC,WAAWx5B,oBAAyC,CACzD,IAAI26B,EAAclwiC,EAAUmluB,OAAOnmvB,MAAQ2wjC,EAAU3wjC,MACrDghB,EAAUy/Q,SAAWj/S,KAAKuukC,WAAWpkkC,QAAQrE,SAAS,GAAGK,MAAM84S,SAAWywxB,EACvD,MAAfz2jC,EAAK5Q,SACL4Q,EAAK5Q,OAAO42S,SAAWz/Q,EAAUy/Q,SAEjChmS,EAAK5Q,OAAO8B,QAAQrE,SAAS,GAAGK,MAAM84S,SAAWz/Q,EAAUy/Q,SAC3DhmS,EAAK5Q,OAAO8B,QAAQrE,SAAS,GAAG46jC,oBAAsB,SACtDznjC,EAAK5Q,OAAO8B,QAAQrE,SAAS,GAAG6ywB,kBAAoB,SACpD1/vB,EAAK5Q,OAAO8B,QAAQrE,SAAS,GAAGy7jC,6BAA6B,EAAG,EAAG,YAEnEvhkC,KAAKupkC,eAAevmoB,cAAc5tP,YAAY,GAAGjrM,QAAQrE,SAAS,GAAGK,MAAM84S,SAAWz/Q,EAAUy/Q,SAChGj/S,KAAKupkC,eAAevmoB,cAAc5tP,YAAY,GAAGjrM,QAAQrE,SAAS,GAAG46jC,oBAAsB,SAC3F1gkC,KAAKupkC,eAAevmoB,cAAc5tP,YAAY,GAAGjrM,QAAQrE,SAAS,GAAG6ywB,kBAAoB,SACzF34wB,KAAKupkC,eAAevmoB,cAAc5tP,YAAY,GAAGjrM,QAAQrE,SAAS,GAAGy7jC,6BAA6B,EAAG,EAAG,YACxGvhkC,KAAKupkC,eAAevmoB,cAAc5tP,YAAY,GAAG6pG,SAAWz/Q,EAAUy/Q,SAE9E,CAC6C,kBAAxCj/S,KAAKuukC,WAAWx5B,qBAA4C/0iC,KAAKupkC,eAAevmoB,cAAc5tP,aAAep1M,KAAKupkC,eAAevmoB,cAAc5tP,YAAYhyM,OAAS,GAErKpD,KAAKupkC,eAAeoF,mBAAmB3ukC,KAAKupkC,eAAevmoB,cAAc5tP,YAAY,GAAI,CAAE6pG,SAAUz/Q,EAAUy/Q,WAGnHj/S,KAAKupkC,eAAepq8B,WAAWmm7B,UAAUtljC,KAAK81a,UAAW,KAAM91a,KAAKuukC,WAAY,SAAU,GAAIvukC,KAAKoskC,YAAa5siC,EACpH,CACA,GAAIvmB,EAAK5Q,QAAU4Q,EAAK5Q,OAAO4siC,wBAAyB,CACpD,IAAI/kiC,EAAO+I,EAAK5Q,OAEZ+2G,EAAQ,CAAEx9G,MAAOsO,EAAKtO,MAAO4gd,WAAYtyc,EAAKsyc,WAAYvjK,SAAU/uS,EAAK+uS,SAAUu3R,UAAWtmkB,EAAKsmkB,UAEnG//c,MAAOvmH,EAAKumH,MAAOmnW,gBAAiB1td,EAAK0td,gBAAiB5hN,UAAW9rQ,EAAK8rQ,UAAWijI,WAAY/uY,EAAK+uY,WAAY13I,WAAYr3P,EAAKq3P,WAEnI35L,UAAW19D,EAAK09D,UAAWrzD,WAAYrK,EAAKqK,WAAYwxjC,QAAS77jC,EAAK67jC,QAASx5pB,SAAUria,EAAKghwB,YAAahlV,QAASh8a,EAAKg8a,QAEzHpta,QAAS5O,EAAK4O,QAASkta,UAAW97a,EAAK87a,UAAW2P,WAAYzrb,EAAKyrb,YAEnE89U,EAAkB,CAAEr4vB,EAAGnI,EAAKrC,OAAOzM,QAAQooV,QAAS1zU,EAAG5F,EAAKrC,OAAOzM,QAAQqoV,QAAS6uY,MAAOpotB,EAAKrC,OAAOzM,QAAQwywB,WAAWn+vB,MAAO8itB,OAAQrotB,EAAKrC,OAAOzM,QAAQwywB,WAAW/znB,QAExK0+pB,EAAmB,CAAElmyB,EAAGphB,KAAKmqkC,cAAcjwjC,EAAG2E,EAAG7e,KAAKmqkC,cAAchwjC,EAAGkntB,MAAOrhuB,KAAKmqkC,cAAc3rjC,MAAO8itB,OAAQthuB,KAAKmqkC,cAAcvh7B,QACvI5oJ,KAAKupkC,eAAeoG,yBAAyB,kBAAmBvw9B,EAAOlvG,EAAK4la,UAAWwxY,EAAkB7tC,EAC7G,CACIz5wB,KAAKupkC,eAAepq8B,YAAcn/H,KAAKupkC,eAAepq8B,WAAW4t8B,uBACjE/skC,KAAKupkC,eAAepq8B,WAAW4t8B,sBAAsBC,qBAAqB/zjC,EAAKrC,OAAQ5W,KAAKuukC,WAAWp4iC,GAAI,SAEnH,CAEA,OADA2wB,EAAOn2C,UAAUouf,QAAQp/f,KAAKK,KAAMiZ,IAC5BjZ,KAAKypkC,OACjB,EAMAwF,EAAWt+jC,UAAUo5jC,UAAY,SAAU9wjC,GACvC6tC,EAAOn2C,UAAUo5jC,UAAUpqkC,KAAKK,KAAMiZ,GACtC,IAAIqB,EAASrB,EAAKrC,OAClB5W,KAAKy5wB,gBAAkBxgwB,EAAKixE,SAC5B,IAAIhwE,EAAIla,KAAKy5wB,gBAAgBv/vB,EAAIla,KAAK0nzB,cAAcxtyB,EAChDC,EAAIna,KAAKy5wB,gBAAgBt/vB,EAAIna,KAAK0nzB,cAAcvtyB,EACpDD,GAAQla,KAAKupkC,eAAetN,WAAWzxB,gBACvCrwhC,GAAQna,KAAKupkC,eAAetN,WAAWzxB,gBAEvC,IAAIolC,EAAoB32jC,EAAKrC,OAEzBP,EAAOrW,KAAK6vkC,UAAU31jC,EAAGC,GACzBqE,EAAQoxjC,EAAkBpxjC,MAAQnI,EAAK6D,EACvC0uI,EAASgn7B,EAAkBhn7B,OAASvyI,EAAK8D,EAEzCtJ,EAAMyJ,EACNA,GAAUA,EAAO86L,cAEjBvkM,EAAMyJ,EAAO86L,YAAY,IAG7B,IAAIou2B,EAAqBxjjC,KAAKupkC,eAAetlB,iBAAmBjkjC,KAAKupkC,eAAetlB,iBAAiBwmB,uBAAuB55jC,GAAO,CAAC,EAChI65jC,EAAsB,EACtBC,EAAqB,EACrBC,EAAsB,EACtBC,EAAqB,GACrBrnB,EAAmBv6iB,UAAYu6iB,EAAmB1s7B,UAAY0s7B,EAAmB5tiB,WAAa4tiB,EAAmB59mB,aACjH8koB,EAAsBlnB,EAAmB59mB,UAAY49mB,EAAmB59mB,UAAY,IACpF+koB,EAAqBnnB,EAAmB1s7B,SAAW0s7B,EAAmB1s7B,SAAW,IACjF8z8B,EAAsBpnB,EAAmB5tiB,UAAY4tiB,EAAmB5tiB,UAAY,EACpFi1jB,EAAqBrnB,EAAmBv6iB,SAAWu6iB,EAAmBv6iB,SAAW,IAEjF2hkB,GAAuBC,GAAsBH,GAAuBC,KAE/D/h7B,GAAUgi7B,GAAuBhi7B,GAAU8h7B,GAAyBlsjC,GAASqsjC,GAAsBrsjC,GAASmsjC,KAOzG/h7B,EAASgi7B,GAAuBhi7B,EAAS8h7B,KAErCvwjC,EADAyuI,EAASgi7B,EACLA,EAAsBgF,EAAkBhn7B,OAGxC8h7B,EAAsBkF,EAAkBhn7B,SAGhDpqI,EAAQqsjC,GAAsBrsjC,EAAQmsjC,KAElCzwjC,EADAsE,EAAQqsjC,EACJA,EAAqB+E,EAAkBpxjC,MAGvCmsjC,EAAqBiF,EAAkBpxjC,SAK3D,IAAIy1V,EAAU,CAAE/5V,EAAGA,EAAGC,EAAGA,GAMzB,GALIna,KAAKm1Y,eAAehrY,UACpB8pW,EAAUqstB,KAAatgkC,KAAKm1Y,eAAehrY,QAAQ+mwB,iBAAa7twB,OAAWA,EAAW4wW,IAE1FA,EAAUj0W,KAAK8vkC,WAAW77tB,GAC1Bj0W,KAAKupkC,eAAemD,eAAe1skC,KAAKgqkC,WAAYhqkC,KAAKuukC,WAAWjD,6BAC/DtrkC,KAAKugW,OAAQ,CAEd,IAAIgtuB,EAAUvtkC,KAAKupkC,eAAevmoB,cAAc5tP,YAAYhyM,OAAS,EAAIuyiC,IAAY31iC,KAAKupkC,eAAevmoB,cAAc5tP,YAAY,IAAMug2B,IAAY31iC,KAAKupkC,eAAevmoB,cAAcmmnB,WAAW,IAClMokB,EAAQp3iC,GAAK,iBACuB,UAAhCo3iC,EAAQx4B,qBACRw4B,EAAQ9vmB,YAAc,GACtB8vmB,EAAQp4B,gBAAkB,GAC1Bo4B,EAAQ5vL,UAAY,cACpB4vL,EAAQC,eAAiB,cACzBD,EAAQrjiC,KAAO,IAEsB,aAAhCqjiC,EAAQx4B,qBACbw4B,EAAQ9vmB,YAAc,OACtB8vmB,EAAQ5vL,UAAY,cACpB4vL,EAAQn/H,UAAY,EACpBm/H,EAAQj/7B,QAAU,EAClBi/7B,EAAQ/vB,YAAc,KAItB+vB,EAAQ5oU,OAAS3kwB,KAAKupkC,eAAevmoB,cAAc5tP,YAAYhyM,OAAS,EAAIpD,KAAKupkC,eAAevmoB,cAAc5tP,YAAY,GAAGjrM,QAAQw6vB,OAAS3kwB,KAAKupkC,eAAevmoB,cAAcmmnB,WAAW,GAAGh/iC,QAAQw6vB,OACtM4oU,EAAQ9vmB,YAAc,MACtB8vmB,EAAQp4B,gBAAkB,MAC1Bo4B,EAAQ5vL,UAAY,cACpB4vL,EAAQn/H,UAAY,EACpBm/H,EAAQj/7B,QAAU,IAEW,IAA7Bi/7B,EAAQE,mBACRF,EAAQG,aAAe,IAES,kBAAhCH,EAAQx4B,sBACRw4B,EAAQ5vL,UAAY,cACpB4vL,EAAQn/H,UAAY,EACpBm/H,EAAQj/7B,QAAU,EAClBi/7B,EAAQrjiC,KAAO,IAEnBlqC,KAAKugW,OAASgtuB,EAAUvtkC,KAAKupkC,eAAen2iC,IAAIm6iC,GAC5CvtkC,KAAKupkC,eAAevmoB,cAAc5tP,YAAYhyM,OAAS,EACvDpD,KAAKupkC,eAAevmoB,cAAc5tP,YAAc,CAACm43B,GAGjDvtkC,KAAKupkC,eAAevmoB,cAAcmmnB,WAAa,CAACokB,EAExD,CACA,IAAI+B,EAActvkC,KAAKwxwB,WAAWxxwB,KAAKugW,OAAQvgW,KAAK0nzB,cAAe1nzB,KAAKy5wB,gBAAiBz5wB,KAAKi+jC,OAAQj+jC,KAAKmqkC,eAI3G,OAFAnqkC,KAAKypkC,SAAYzpkC,KAAKuvkC,aAAaD,EAAY9wjC,MAAO8wjC,EAAY1m7B,OAAQ5oJ,KAAKi+jC,OAAQj+jC,KAAK0nzB,cAAe1nzB,KAAKy5wB,gBAAiBz5wB,KAAKugW,OAAQtnV,EAAKsjB,KAAK3E,SACxJ53B,KAAK8pkC,aAAe9pkC,KAAKy5wB,iBACjBz5wB,KAAKypkC,OACjB,EAMAwF,EAAWt+jC,UAAUu5jC,WAAa,SAAUjxjC,GACxCjZ,KAAK++f,QAAQ9lf,EACjB,EACAg2jC,EAAWt+jC,UAAUo/jC,kBAAoB,SAAUC,GAC/C,MAAO,KAAOpskC,KAAKmgB,MAAMisjC,EAAuB7lkC,QAAQw6vB,OAAOnmvB,OAAxD,MAA8E5a,KAAKmgB,MAAMisjC,EAAuB7lkC,QAAQw6vB,OAAO/7mB,OAC1I,EACAqm7B,EAAWt+jC,UAAUm/jC,WAAa,SAAU57+B,GACxC,OAAQl0F,KAAKi+jC,QACT,IAAK,aACD,MAAO,CAAE/jjC,EAAGg6E,EAAOh6E,EAAGC,EAAG,GAC7B,IAAK,kBACD,OAAO+5E,EACX,IAAK,cACD,MAAO,CAAEh6E,EAAG,EAAGC,EAAG+5E,EAAO/5E,GAC7B,IAAK,cACD,MAAO,CAAED,EAAG,EAAGC,GAAI+5E,EAAO/5E,GAC9B,IAAK,kBACD,MAAO,CAAED,EAAGg6E,EAAOh6E,EAAGC,GAAI+5E,EAAO/5E,GACrC,IAAK,kBACD,MAAO,CAAED,GAAIg6E,EAAOh6E,EAAGC,GAAI+5E,EAAO/5E,GACtC,IAAK,aACD,MAAO,CAAED,GAAIg6E,EAAOh6E,EAAGC,EAAG,GAC9B,IAAK,kBACD,MAAO,CAAED,GAAIg6E,EAAOh6E,EAAGC,EAAG+5E,EAAO/5E,GAEzC,OAAO+5E,CACX,EACA+6+B,EAAWt+jC,UAAUk/jC,UAAY,SAAU31jC,EAAGC,GAC1C,OAAQna,KAAKi+jC,QACT,IAAK,aACD,MAAO,CAAE/jjC,EAAGA,EAAGC,EAAG,GACtB,IAAK,kBACD,MAAO,CAAED,EAAGA,EAAGC,EAAGA,GACtB,IAAK,cACD,MAAO,CAAED,EAAG,EAAGC,EAAGA,GACtB,IAAK,cACD,MAAO,CAAED,EAAG,EAAGC,GAAIA,GACvB,IAAK,kBACD,MAAO,CAAED,EAAGA,EAAGC,GAAIA,GACvB,IAAK,kBACD,MAAO,CAAED,GAAIA,EAAGC,GAAIA,GACxB,IAAK,aACD,MAAO,CAAED,GAAIA,EAAGC,EAAG,GACvB,IAAK,kBACD,MAAO,CAAED,GAAIA,EAAGC,EAAGA,GAE3B,MAAO,CAAED,EAAGA,EAAGC,EAAGA,EACtB,EAcA80jC,EAAWt+jC,UAAU4+jC,aAAe,SAAUhF,EAAYC,EAAavM,EAAQv3tB,EAAY0B,EAAUxxV,EAAQq5jC,GAEzG,IAAIzsB,EAAqBxjjC,KAAKupkC,eAAetlB,iBAAmBjkjC,KAAKupkC,eAAetlB,iBAAiBwmB,uBAAuB7zjC,GAAU,CAAC,EACnI8zjC,EAAsB,EACtBC,EAAqB,EAGrBzwjC,EAAIla,KAAKy5wB,gBAAgBv/vB,EAAIla,KAAK0nzB,cAAcxtyB,EAChDC,EAAIna,KAAKy5wB,gBAAgBt/vB,EAAIna,KAAK0nzB,cAAcvtyB,EACpDD,GAAQla,KAAKupkC,eAAetN,WAAWzxB,gBACvCrwhC,GAAQna,KAAKupkC,eAAetN,WAAWzxB,gBAEvC,IAAIolC,EAAoBh5jC,EAEpBP,EAAOrW,KAAK6vkC,UAAU31jC,EAAGC,GACzBqE,EAAQoxjC,EAAkBjrU,OAAOnmvB,MAAQnI,EAAK6D,EAC9C0uI,EAASgn7B,EAAkBjrU,OAAO/7mB,OAASvyI,EAAK8D,EA0DpD,OAzDIqpiC,EAAmBv6iB,UAAYu6iB,EAAmB1s7B,UAAY0s7B,EAAmB5tiB,WAAa4tiB,EAAmB59mB,aACjH8koB,EAAsBlnB,EAAmB59mB,UAAY49mB,EAAmB59mB,UAAY,IACpF+koB,EAAqBnnB,EAAmB1s7B,SAAW0s7B,EAAmB1s7B,SAAW,IAC3D0s7B,EAAmB5tiB,UAAY4tiB,EAAmB5tiB,UAAY,EAC/D4tiB,EAAmBv6iB,SAAWu6iB,EAAmBv6iB,SAAW,GAEjFryf,aAAkBusjC,KAA0C,IAA9BvsjC,EAAOw+L,YAAYhyM,SACF,cAA9CwT,EAAOw+L,YAAY,GAAG2/1B,qBAAqF,WAA9Cn+hC,EAAOw+L,YAAY,GAAG2/1B,qBAAmE,UAA/Bn+hC,EAAOm+hC,qBAE3Hy1B,EAAcD,EADI,IAAhBC,GAAoC,IAAfD,EACI3mkC,KAAKqpC,IAAoB,IAAhBu9hC,EAAoB,EAAIA,EAA4B,IAAfD,EAAmB,EAAIA,GAE3F7juB,IAAe0B,EACOxkW,KAAKqpC,IAAIu9hC,EAAaD,GAGtB,EAGK,UAA/B3zjC,EAAOm+hC,qBAAmE,yBAA/Bn+hC,EAAOm+hC,qBAAiF,kBAA/Bn+hC,EAAOm+hC,qBAA0E,mBAA/Bn+hC,EAAOm+hC,qBAC5I,IAAhBy1B,GAAoC,IAAfD,GACnB0F,IACIzxjC,GAASmsjC,GAAsB/h7B,EAAS8h7B,IACxCF,EAAc5mkC,KAAKqpC,IAAIu9hC,EAAaD,IAEpC3h7B,GAAU8h7B,GAAuBlsjC,EAAQmsjC,IACzCJ,EAAa3mkC,KAAKqpC,IAAIu9hC,EAAaD,IAEnC/rjC,EAAQmsjC,GAAsB/h7B,EAAS8h7B,IACvCF,EAAcD,EAAa3mkC,KAAKqpC,IAAIu9hC,EAAaD,KAIxD0F,IACDzF,EAAcD,EAAa3mkC,KAAKqpC,IAAIu9hC,EAAaD,KAIlB,cAA/B3zjC,EAAOm+hC,qBAAsE,WAA/Bn+hC,EAAOm+hC,qBACnB,UAA/Bn+hC,EAAOm+hC,sBACyB,UAA/Bn+hC,EAAOm+hC,qBACF21B,GAAwBF,IACzBA,EAAc5mkC,KAAKqpC,IAAoB,IAAhBu9hC,EAAoB,EAAIA,IAE9CG,GAAuBJ,IACxBA,EAAa3mkC,KAAKqpC,IAAmB,IAAfs9hC,EAAmB,EAAIA,KAI5CG,GAAwBC,GACH,IAAhBH,GAAoC,IAAfD,IACvBC,EAAcD,EAAa3mkC,KAAKqpC,IAAoB,IAAhBu9hC,EAAoB,EAAIA,EAA4B,IAAfD,EAAmB,EAAIA,KAMpHvqkC,KAAKypkC,QAAUzpkC,KAAKupkC,eAAe2G,mBAAmB3F,EAAYC,EAAaxqkC,KAAKgrkC,SAAShrkC,KAAKi+jC,SAC3Fj+jC,KAAKypkC,OAChB,EACOwF,CACX,CA9YgC,CA8Y9B5F,KAOEb,IAAiC,SAAU1hhC,GAE3C,SAAS0hhC,EAAgBe,EAAgB96gC,EAAMon/B,GAC3C,IAAIv2iC,EAAQwnD,EAAOnnD,KAAKK,KAAMupkC,EAAgB96gC,IAASzuD,KAEvD,OADAV,EAAMu2iC,aAAeA,EACdv2iC,CACX,CAmNA,OAxNA4mD,IAAUsihC,EAAiB1hhC,GAW3B0hhC,EAAgB73jC,UAAUkvf,UAAY,SAAU5mf,GAC5C,IAAKpX,MAAM7B,KAAKkpiC,cAAc+9B,eAAeC,eAA2C,uBAA1BnwiC,MAAM1uB,OAAOtH,UAAoC,CAC3G+lD,EAAOn2C,UAAUkvf,UAAUlggB,KAAKK,KAAMiZ,GACtCjZ,KAAKwpkC,UAAW,EAChB,IAAIt5jC,EAAO,CAAEy0vB,OAAQ,CAAEzqvB,EAAG,IAAKC,EAAG,IAAKqE,MAAO,IAAKoqI,OAAQ,KAAOktR,UAAW,EAAG2nD,YAAa,MAAO2we,UAAW,GAC/Gl+7B,EAAKimB,GAAK6hU,MACVh4V,KAAK61iC,aAAa//nB,UAAY5la,EAAK4la,UAAY91a,KAAKkpiC,cAAc+9B,eAAeC,cAAgB,EACjGlnkC,KAAK61iC,aAAa43B,iBAAmBztkC,KAAKupkC,eAAekE,iBACzDztkC,KAAKkpiC,cAAcinC,yBAAyBnwkC,KAAK61iC,cACjD71iC,KAAKowkC,cAAe,EAEpB,IAAIC,EAAmBn/iC,SAASg8T,eAAe,iCAM/C,GALImjvB,GACAA,EAAiBl9iC,SAGrBnzB,KAAKupkC,eAAe+G,cAAgBtwkC,KAAKswkC,cAAgBtwkC,KAAKupkC,eAAen2iC,IAAIpzB,KAAK61iC,cAAgB3liC,GACnD,YAA/ClQ,KAAKswkC,cAAcr7B,yBAAwF,mBAA/Cj1iC,KAAKswkC,cAAcr7B,yBAA+F,iBAA/Cj1iC,KAAKswkC,cAAcr7B,yBACnG,aAA/Cj1iC,KAAKswkC,cAAcr7B,yBAAyF,YAA/Cj1iC,KAAKswkC,cAAcr7B,yBAAwF,gBAA/Cj1iC,KAAKswkC,cAAcr7B,yBAC7F,iBAA/Cj1iC,KAAKswkC,cAAcr7B,yBAA6F,kBAA/Cj1iC,KAAKswkC,cAAcr7B,wBAA6C,CACjIj1iC,KAAKwpkC,UAAW,EAEhBxpkC,KAAKswkC,cAAcnuQ,WAAani0B,KAAKkpiC,cAAcqnC,eAAc,GAEjE,IAAI5rU,EAAS3kwB,KAAKupkC,eAAemC,mBAAmB8E,2BAA2BxwkC,KAAKswkC,cAAcnmkC,QAAQrE,SAAS,GAAI9F,KAAKswkC,cAAcr7B,yBACtIzL,EAAYxpiC,KAAKkpiC,cAAcsQ,cAAclvgC,kBAAkBy6N,YAAc4/f,EAAOnmvB,MACpFg8vB,EAAax6wB,KAAKkpiC,cAAcsQ,cAAclvgC,kBAAkB46N,aAAey/f,EAAO/7mB,OAEtFjlB,EAAO3jI,KAAKkpiC,cAAcsQ,cAAclvgC,kBAAkBq4Q,WAC1D4vC,OAAU,EAEd,GAAIvyV,KAAKy5wB,gBAAgBt/vB,GAAKqgwB,GAAczjvB,MAAM1uB,QAAU0uB,MAAM1uB,OAAOwtR,eAAiB9+P,MAAM1uB,OAAOwtR,cAAc3N,UAAUh1P,SAAS,kBAAmB,CAEvJ,IAAI80iC,EAAmBjxiC,MAAM+1C,KAAK,GAAG2nN,wBAErC89D,EAAUx7T,MAAMsC,QAAU2uiC,EAAiBrk8B,IAC/C,MAEI4uN,EAAUvyV,KAAKy5wB,gBAAgBv/vB,EAAIypH,EAGvC,IAAI+wJ,OAAO,EAGPA,EAFA10R,KAAKy5wB,gBAAgBv/vB,GAAKsvhC,GAAaxpiC,KAAKy5wB,gBAAgBt/vB,GAAKqgwB,EAE1D,CAAEtgwB,EAAGsvhC,EAAWrvhC,EAAGqgwB,EAAYh8vB,MAAOxe,KAAKswkC,cAAcnmkC,QAAQrE,SAAS,GAAG0Y,MAAOoqI,OAAQ5oJ,KAAKswkC,cAAcnmkC,QAAQrE,SAAS,GAAG8iJ,QAErI5oJ,KAAKy5wB,gBAAgBv/vB,GAAKsvhC,EAExB,CAAEtvhC,EAAGsvhC,EAAWrvhC,EAAGna,KAAKy5wB,gBAAgBt/vB,EAAGqE,MAAOxe,KAAKswkC,cAAcnmkC,QAAQrE,SAAS,GAAG0Y,MAAOoqI,OAAQ5oJ,KAAKswkC,cAAcnmkC,QAAQrE,SAAS,GAAG8iJ,QAEjJ5oJ,KAAKy5wB,gBAAgBt/vB,GAAKqgwB,EAExB,CAAEtgwB,EAAGq4U,EAASp4U,EAAGqgwB,EAAYh8vB,MAAOxe,KAAKswkC,cAAcnmkC,QAAQrE,SAAS,GAAG0Y,MAAOoqI,OAAQ5oJ,KAAKswkC,cAAcnmkC,QAAQrE,SAAS,GAAG8iJ,QAIjI,CAAE1uI,EAAGla,KAAKy5wB,gBAAgBv/vB,EAAGC,EAAGna,KAAKy5wB,gBAAgBt/vB,EAAGqE,MAAOxe,KAAKswkC,cAAcnmkC,QAAQrE,SAAS,GAAG0Y,MAAOoqI,OAAQ5oJ,KAAKswkC,cAAcnmkC,QAAQrE,SAAS,GAAG8iJ,QAEvK5oJ,KAAKywkC,oBAAoBzwkC,KAAKswkC,cAAe57yB,GAC7C10R,KAAKswkC,cAAc3rU,OAAOzqvB,EAAIla,KAAKswkC,cAAc3rU,OAAOzqvB,EAAKla,KAAKswkC,cAAc3rU,OAAOnmvB,MAAQ,EAC/Fxe,KAAKswkC,cAAc3rU,OAAOxqvB,EAAIna,KAAKswkC,cAAc3rU,OAAOxqvB,EAAKna,KAAKswkC,cAAc3rU,OAAO/7mB,OAAS,EAChG5oJ,KAAKupkC,eAAemH,oBAAoBtkkC,KAAKpM,KAAKswkC,eAClD,IAAIA,EAAgBtwkC,KAAKswkC,cAErB/E,EAAY,CACZp1iC,GAAIm6iC,EAAcn6iC,GAAIzxB,KAAM4rkC,EAAc5rkC,KAAM9C,MAAO0ukC,EAAc1ukC,MAErEgL,KAAM0jkC,EAAcr7B,wBAAyB/3kB,WAAYozmB,EAAcrxrB,WAAYujE,WAAY8tnB,EAAc9tnB,WAE7GvjK,SAAUqxxB,EAAcrxxB,SAAUu3R,UAAW85f,EAAc95f,UAAW//c,MAAO658B,EAAc758B,MAAOmnW,gBAAiB0ymB,EAAc1ymB,gBAEjI5hN,UAAWs0zB,EAAct0zB,UAAWzU,WAAY+o0B,EAAc/o0B,WAAY35L,UAAW0igC,EAAc1igC,UAAWrzD,WAAY+1jC,EAAc/1jC,WAExIwxjC,QAASuE,EAAcvE,QAASpwoB,WAAY20oB,EAAc30oB,WAAY3P,UAAWskpB,EAActkpB,UAAWE,QAASokpB,EAAcpkpB,QAASy4U,OAAQ2rU,EAAc3rU,OAAQypM,UAAWkiI,EAAcliI,UAAW7qI,YAAa+sQ,EAAc/sQ,YACvOksQ,2BAA4Ba,EAAcb,2BAA4B35pB,UAAWw6pB,EAAcx6pB,WAEnG91a,KAAKupkC,eAAeoH,qBAAqBvkkC,KAAKm/jC,GAE9CvrkC,KAAKupkC,eAAemC,mBAAmBkF,gBAAgB5wkC,KAAKswkC,cAAcr7B,wBAAyBj1iC,KAAKswkC,cAAcnmkC,QAAQrE,SAAS,GAAI9F,KAAKswkC,cAAetwkC,KAAKswkC,cAAcx6pB,UAAW91a,KAAKupkC,gBAClMvpkC,KAAKupkC,eAAe/+uB,OAAO,CAACxqV,KAAKupkC,eAAe+G,cAAcn6iC,IAAKn2B,KAAKupkC,eAAe+B,4BACnFtrkC,KAAKupkC,eAAepq8B,YACpBn/H,KAAKupkC,eAAepq8B,WAAWmm7B,UAAUtljC,KAAKkpiC,cAAcqnC,eAAc,GAAO,KAAMvwkC,KAAKswkC,cAAe,WAAY,GAAItwkC,KAAKswkC,cAAetwkC,KAAKswkC,eAExJtwkC,KAAKiqkC,YACLjqkC,KAAKkpiC,cAAcrkhB,KAAO,KAC1B7khB,KAAKkpiC,cAAch09B,OAAS,SAC5Bl1E,KAAKswkC,cAAgB,KACrBtwkC,KAAKkpiC,cAAc3xI,aAAc,EACjCv35B,KAAKkpiC,cAAcD,UAAUqnC,cAAgB,KAC7CtwkC,KAAKowkC,cAAe,CACxB,CACJ,CACJ,EAMA5H,EAAgB73jC,UAAUo5jC,UAAY,SAAU9wjC,GAE5C,GADA6tC,EAAOn2C,UAAUo5jC,UAAUpqkC,KAAKK,KAAMiZ,GAClCjZ,KAAKwpkC,WAAsE,IAA1D3lS,IAAM78lB,OAAOhnM,KAAKy5wB,gBAAiBz5wB,KAAK8pkC,cAAyB,CAClF9pkC,KAAK6wkC,UAAW,EAChB,IAAIn8yB,EAAOmtqB,IAAK47H,SAAS,CAACz9jC,KAAK8pkC,aAAc9pkC,KAAKy5wB,kBAClDz5wB,KAAKywkC,oBAAoBzwkC,KAAKswkC,cAAe57yB,GACE,WAA3C10R,KAAKswkC,cAAcv7B,qBACnB/0iC,KAAK8wkC,yBAAyB9wkC,KAAKswkC,cAAcnmkC,QAAQrE,SAAS,GAAI9F,KAAKswkC,cAEnF,CACA,OAAO,CACX,EAMA9H,EAAgB73jC,UAAUouf,QAAU,SAAU9lf,GAC1C,GAAIjZ,KAAKswkC,eAAiBtwkC,KAAK6wkC,SAAU,CACrC7wkC,KAAKupkC,eAAe/xb,eAAex3oB,KAAKkpiC,cAAc+9B,eAAeC,cACrElnkC,KAAKupkC,eAAe/+uB,OAAO,CAACxqV,KAAKswkC,cAAcn6iC,IAAKn2B,KAAKupkC,eAAe+B,4BACxE,IAAIyF,EAAkB/wkC,KAAKupkC,eAAevmoB,cAAc5tP,YAAY,GAC/D22H,GAAkBglwB,IAAqBhlwB,GAAkBglwB,EAAgB5mkC,WAC1EnK,KAAKupkC,eAAeoF,mBAAmBoC,EAAiB,CAAEpsU,OAAQ,CAAEzqvB,EAAG62jC,EAAgB5mkC,QAAQooV,QAASp4U,EAAG42jC,EAAgB5mkC,QAAQqoV,WACnIxyV,KAAKupkC,eAAepq8B,WAAW0v8B,sBAAsB7ukC,KAAKswkC,eAAe,GACrEtwkC,KAAKupkC,iBAAmBvpkC,KAAKowkC,cAE7BpwkC,KAAKupkC,eAAepq8B,WAAWmm7B,UAAUtljC,KAAK81a,UAAW,KAAM91a,KAAKswkC,cAAe,WAAY,GAAItwkC,KAAKswkC,cAAetwkC,KAAKswkC,eAEhItwkC,KAAK6wkC,UAAW,EAChB/phC,EAAOn2C,UAAUouf,QAAQp/f,KAAKK,KAAMiZ,GACpCjZ,KAAKwpkC,UAAW,EAExB,MAEI1ihC,EAAOn2C,UAAUouf,QAAQp/f,KAAKK,KAAMiZ,GAExCjZ,KAAKswkC,cAAgB,IACzB,EAKA9H,EAAgB73jC,UAAUs5jC,UAAY,WAClCnjhC,EAAOn2C,UAAUs5jC,UAAUtqkC,KAAKK,KACpC,EAOAwokC,EAAgB73jC,UAAU8/jC,oBAAsB,SAAU5/jC,EAAK6jR,GAC3D,IAAI9lJ,EAAO5uI,KAAKupkC,eAAetN,WAAWzxB,gBAC1C35hC,EAAI8zvB,OAAOzqvB,EAAKw6Q,EAAKx6Q,EAAI00H,EAAQ8lJ,EAAKl2Q,MAAQowH,EAC9C/9H,EAAI8zvB,OAAOxqvB,EAAKu6Q,EAAKv6Q,EAAIy0H,EAAQ8lJ,EAAK9rI,OAASha,EAC/C/9H,EAAI8zvB,OAAOnmvB,MAAQk2Q,EAAKl2Q,MAAQowH,EAChC/9H,EAAI8zvB,OAAO/7mB,OAAS8rI,EAAK9rI,OAASha,EAElC,IAAI406B,EAAqBxjjC,KAAKupkC,eAAetlB,iBAAmBjkjC,KAAKupkC,eAAetlB,iBAAiBwmB,uBAAuB55jC,GAAO,CAAC,EAChI65jC,EAAsB,EACtBC,EAAqB,EACrBnnB,EAAmB1s7B,UAAY0s7B,EAAmB59mB,WAClD8koB,EAAsBlnB,EAAmB59mB,UAAY49mB,EAAmB59mB,UAAY,IACpF+koB,EAAqBnnB,EAAmB1s7B,SAAW0s7B,EAAmB1s7B,SAAW,IAC7EjmH,EAAI8zvB,OAAOnmvB,MAAQmsjC,IACnB95jC,EAAI8zvB,OAAOnmvB,MAAQmsjC,GAEnB95jC,EAAI8zvB,OAAO/7mB,OAAS8h7B,IACpB75jC,EAAI8zvB,OAAO/7mB,OAAS8h7B,GAEpB75jC,EAAI8zvB,OAAO/7mB,QAAU8h7B,GAAuB75jC,EAAI8zvB,OAAOnmvB,OAASmsjC,GAChE3qkC,KAAKupkC,eAAeoF,mBAAmB99jC,EAAK,CAAE8zvB,OAAQ9zvB,EAAI8zvB,UAI9D3kwB,KAAKupkC,eAAeoF,mBAAmB99jC,EAAK,CAAE8zvB,OAAQ9zvB,EAAI8zvB,QAElE,EAOA6jU,EAAgB73jC,UAAUmgkC,yBAA2B,SAAUjgkC,EAAKX,GAChE,IAAI8gkC,EAAY,CAAE92jC,EAAGhK,EAAKy0vB,OAAOzqvB,EAAKhK,EAAKy0vB,OAAOnmvB,MAAQ,EAAIrE,EAAGjK,EAAKy0vB,OAAOxqvB,GACzE4hR,EAAS,CAAE7hR,EAAIhK,EAAKy0vB,OAAOzqvB,EAAKhK,EAAKy0vB,OAAOnmvB,MAAQ,EAAKrE,EAAIjK,EAAKy0vB,OAAOxqvB,EAAKjK,EAAKy0vB,OAAO/7mB,OAAS,GACnGy/e,EAASura,MACbO,IAAa9ra,EAAQn4nB,EAAKghwB,YAAan1e,EAAO7hR,EAAG6hR,EAAO5hR,GACxD,IAAI8rjC,EAAenyB,IAAuBzra,EAAQ2oc,GAC9C9K,EAAY,CAAEhsjC,EAAG+rjC,EAAa/rjC,EAAGC,EAAG8rjC,EAAa9rjC,GACrDtJ,EAAI0hV,QAAU2zuB,EAAUhsjC,EACxBrJ,EAAI2hV,QAAU0zuB,EAAU/rjC,EACxBtJ,EAAI2N,MAAQtO,EAAKy0vB,OAAOnmvB,MAAQ,EAEhC,IAAIgliC,EAAqBxjjC,KAAKupkC,eAAetlB,iBAAiBwmB,uBAAuBv6jC,GACjFy6jC,EAAqB,EACrBnnB,EAAmB1s7B,WACnB6z8B,EAAqBnnB,EAAmB1s7B,SAAW0s7B,EAAmB1s7B,SAAW,IAC7E5mH,EAAKy0vB,OAAOnmvB,MAAQmsjC,IACpBz6jC,EAAKy0vB,OAAOnmvB,MAAQmsjC,EACpB95jC,EAAI2N,MAAQtO,EAAKy0vB,OAAOnmvB,MAAQ,IAGxCxe,KAAKupkC,eAAehlB,mBAAclhjC,EAAW6M,EAAK4la,UACtD,EACO0ypB,CACX,CA1NqC,CA0NnCa,KAOE4H,IAAoC,SAAUnqhC,GAE9C,SAASmqhC,EAAmB1H,EAAgB96gC,EAAMymB,GAC9C,IAAI51E,EAAQwnD,EAAOnnD,KAAKK,KAAMupkC,EAAgB96gC,IAASzuD,KAEvD,OADAV,EAAM41E,OAASA,EACR51E,CACX,CA0MA,OA/MA4mD,IAAU+qhC,EAAoBnqhC,GAW9BmqhC,EAAmBtgkC,UAAUkvf,UAAY,SAAU5mf,GAG/C,GAFA6tC,EAAOn2C,UAAUkvf,UAAUlggB,KAAKK,KAAMiZ,GACtCjZ,KAAKwpkC,UAAW,EACXxpkC,KAAKswkC,cAmBL,CACD,IAAIr/R,OAAK,EACLpgyB,EAAO7Q,KAAKswkC,cAEhBr/R,EAAK,CAAE/2xB,GADP+2xB,EAAKpgyB,EAAIqzjC,aAAarzjC,EAAIqzjC,aAAa9gkC,OAAS,IACnC8W,EAAGC,EAAG82xB,EAAG92xB,GACtB,IAAIsld,EAAYz/d,KAAKswkC,cAAcpM,aAAalkkC,KAAKswkC,cAAcpM,aAAa9gkC,OAAS,GACnFq8d,EAAUvld,IAAM+2xB,EAAG/2xB,GAAKuld,EAAUvld,IAAM+2xB,EAAG92xB,GAC7Cna,KAAKswkC,cAAcpM,aAAa93jC,KAAK6kyB,GAEzCjxyB,KAAKupkC,eAAeoF,mBAAmB99jC,EAAK,CAAEqzjC,aAAcrzjC,EAAIqzjC,cACpE,KA7ByB,CACrBlkkC,KAAK0mW,WAAa,CAAExsV,EAAGla,KAAK0nzB,cAAcxtyB,EAAGC,EAAGna,KAAK0nzB,cAAcvtyB,GACnE,IAAI+2jC,EAAmB,CACnBvsU,OAAQ,CAAEzqvB,EAAGla,KAAKy5wB,gBAAgBv/vB,EAAGC,EAAGna,KAAKy5wB,gBAAgBt/vB,EAAGqE,MAAO,EAAGoqI,OAAQ,GAElFs76B,aAAc,CAAC,CAAEhqjC,EAAGla,KAAK0mW,WAAWxsV,EAAIla,KAAKkpiC,cAAcsB,gBAAiBrwhC,EAAGna,KAAK0mW,WAAWvsV,EAAIna,KAAKkpiC,cAAcsB,iBAAmB,CAAEtwhC,EAAGla,KAAKy5wB,gBAAgBv/vB,EAAIla,KAAKkpiC,cAAcsB,gBAAiBrwhC,EAAGna,KAAKy5wB,gBAAgBt/vB,EAAIna,KAAKkpiC,cAAcsB,kBAC1PuK,oBAAqB,OAAQp3J,UAAW394B,KAAKupkC,eAAe+G,cAAc3yL,UAC1Elgb,YAAaz9d,KAAKupkC,eAAe+G,cAAc7ymB,YAAa3nD,UAAW91a,KAAKkpiC,cAAc+9B,eAAeC,aAEzGtB,MAAO5lkC,KAAKupkC,eAAe+G,cAAc1K,MAAOx3H,UAAWpu8B,KAAKupkC,eAAe+G,cAAcliI,UAAWtuN,OAAQ9/uB,KAAKupkC,eAAe+G,cAAcxwV,OAClJxoS,QAASt3c,KAAKupkC,eAAe+G,cAAch5nB,QAAS69lB,gBAAiBn1iC,KAAKupkC,eAAe+G,cAAcn7B,gBACvGl1T,aAAcjgvB,KAAKupkC,eAAe+G,cAAcrwV,aAAchjK,YAAaj9kB,KAAKupkC,eAAe+G,cAAcrzf,YAE7Guxf,YAAaxukC,KAAKupkC,eAAe+G,cAAc9B,YAAaf,iBAAkBztkC,KAAKupkC,eAAekE,iBAAkBn/7B,QAAStuI,KAAKupkC,eAAe+G,cAAchi8B,SAEnKtuI,KAAKkpiC,cAAcinC,yBAAyBe,GAE5ClxkC,KAAKswkC,cAAgBtwkC,KAAKupkC,eAAen2iC,IAAI89iC,EACjD,CAYJ,EAMAD,EAAmBtgkC,UAAUo5jC,UAAY,SAAU9wjC,GAE/C,GADA6tC,EAAOn2C,UAAUo5jC,UAAUpqkC,KAAKK,KAAMiZ,GAClCjZ,KAAKwpkC,WAAsE,IAA1D3lS,IAAM78lB,OAAOhnM,KAAKy5wB,gBAAiBz5wB,KAAK8pkC,cAAyB,CAClF9pkC,KAAK6wkC,UAAW,EAChB,IAAIhgkC,EAAO7Q,KAAKswkC,cACZtwkC,KAAKswkC,eAAiBtwkC,KAAKy5wB,kBAC3B5owB,EAAIqzjC,aAAarzjC,EAAIqzjC,aAAa9gkC,OAAS,GAAG8W,EAAIla,KAAKy5wB,gBAAgBv/vB,EAAIla,KAAKkpiC,cAAcsB,gBAC9F35hC,EAAIqzjC,aAAarzjC,EAAIqzjC,aAAa9gkC,OAAS,GAAG+W,EAAIna,KAAKy5wB,gBAAgBt/vB,EAAIna,KAAKkpiC,cAAcsB,gBAC9FxqiC,KAAKupkC,eAAeoF,mBAAmB99jC,EAAK,CAAEqzjC,aAAcrzjC,EAAIqzjC,gBAE5C,cAApBrzjC,EAAI29jC,aACJlJ,IAAqBz0jC,EAAKA,EAAIqzjC,aAAclkkC,KAAKupkC,eAAepq8B,WAAW0q7B,wBAEnF,CACA,OAAO,CACX,EAQAonB,EAAmBtgkC,UAAUouf,QAAU,SAAU9lf,EAAMk4jC,EAAiBC,GAGpE,IAAIj6f,EAIJ,GANArwhB,EAAOn2C,UAAUo5jC,UAAUpqkC,KAAKK,KAAMiZ,GAGlCA,EAAKrC,QAA8C,OAApCqC,EAAKqyjC,6BACpBn0f,EAAkBl+jB,EAAKrC,OAAO00jC,4BAE9BtrkC,KAAKswkC,cAAe,CAEpB,IAAI3rU,EAAS,IAAIk9L,IAAK7h8B,KAAKswkC,cAAcpM,aAAalkkC,KAAKswkC,cAAcpM,aAAa9gkC,OAAS,GAAG8W,EAAI,GAAIla,KAAKswkC,cAAcpM,aAAalkkC,KAAKswkC,cAAcpM,aAAa9gkC,OAAS,GAAG+W,EAAI,GAAI,GAAI,IAC9LmsV,EAAQ,CAAEpsV,EAAGla,KAAKswkC,cAAcpM,aAAa,GAAGhqjC,EAAGC,EAAGna,KAAKswkC,cAAcpM,aAAa,GAAG/pjC,GAC7F,IAAKwqvB,EAAOy4T,cAAc92tB,IAAU6quB,IAAoBnxkC,KAAK6wkC,SAAU,CACnE,GAAI7wkC,KAAKwpkC,WACLxpkC,KAAKwpkC,UAAW,EACZxpkC,KAAKswkC,eAAe,CAMpB,GALKc,GACGpxkC,KAAKswkC,cAAcpM,aAAa9gkC,OAAS,GACzCpD,KAAKswkC,cAAcpM,aAAa1uiC,OAAOx1B,KAAKswkC,cAAcpM,aAAa9gkC,OAAS,EAAG,GAGvE,YAAhBpD,KAAKk1E,OAAsB,CACtBk8/B,EAMDpxkC,KAAKswkC,cAAcpM,aAAalkkC,KAAKswkC,cAAcpM,aAAa9gkC,QAAUpD,KAAKswkC,cAAcpM,aAAa,GAJ1GlkkC,KAAKswkC,cAAcpM,aAAalkkC,KAAKswkC,cAAcpM,aAAa9gkC,OAAS,GAAKpD,KAAKswkC,cAAcpM,aAAa,GAMlHlkkC,KAAKupkC,eAAeoF,mBAAmB3ukC,KAAKswkC,cAAe,CAAEpM,aAAclkkC,KAAKswkC,cAAcpM,eAC9F,IAAIqJ,EAAU53B,IAAY31iC,KAAKswkC,eAC/B/C,EAAQx4B,oBAAsB,UAC9Bw4B,EAAQ5oU,OAAOnmvB,MAAQ+ujC,EAAQpjkC,QAAQwywB,WAAWn+vB,MAClD+ujC,EAAQ5oU,OAAO/7mB,OAAS2k7B,EAAQpjkC,QAAQwywB,WAAW/znB,OACnD2k7B,EAAQ5oU,OAAOzqvB,EAAIla,KAAKswkC,cAAcnmkC,QAAQw6vB,OAAOzqvB,EACrDqzjC,EAAQ5oU,OAAOxqvB,EAAIna,KAAKswkC,cAAcnmkC,QAAQw6vB,OAAOxqvB,EACrDna,KAAKupkC,eAAen2iC,IAAIm6iC,GACxBvtkC,KAAKupkC,eAAep2iC,OAAOnzB,KAAKswkC,eAChCtwkC,KAAKupkC,eAAe/+uB,OAAO,CAAC+ivB,EAAQp3iC,IAAKghjB,GACzC,IAAIm5f,EAAgBtwkC,KAAKupkC,eAAevmoB,cAAc5tP,YAAY,GAC9Dk73B,IACItwkC,KAAKupkC,eAAe8H,wBAA0BtlwB,GAAkBukwB,EAAc9B,cAA8C,KAA9B8B,EAAc9B,cAE5GxukC,KAAKupkC,eAAepq8B,WAAWmy8B,sBAAsBC,uBAAuBjB,EAAeA,EAAcx6pB,YAEzG91a,KAAKupkC,eAAeiI,yBAA0D,SAA9BlB,EAAc9B,aAAwD,WAA9B8B,EAAc9B,cACpE,SAA9B8B,EAAc9B,aAEd8B,EAAc1K,MAAQ5lkC,KAAKupkC,eAAepq8B,WAAW0q7B,wBAAwB4nB,cAAcnB,EAAcpM,cAEzGlkkC,KAAKupkC,eAAepq8B,WAAWg27B,4BAA4Buc,kBAAkBpB,EAAcrpB,UAAWqpB,EAAc1K,QAEjF,WAA9B0K,EAAc9B,cAEnB8B,EAAc1K,MAAQ5lkC,KAAKupkC,eAAepq8B,WAAW0q7B,wBAAwB8nB,gBAAgBrB,EAAcpM,cAE3GlkkC,KAAKupkC,eAAepq8B,WAAWg27B,4BAA4Buc,kBAAkBpB,EAAcrpB,UAAWqpB,EAAc1K,QAEpH0K,EAAc7C,mBACd6C,EAAc5C,aAAe4C,EAAc1K,MAE3C5lkC,KAAKupkC,eAAeoF,mBAAmB2B,EAAe,CAAEpM,aAAcoM,EAAcpM,aAAc0B,MAAO0K,EAAc1K,SAG3H5lkC,KAAKupkC,eAAepq8B,WAAW0q7B,wBAAwB+nB,8BAA8BtB,EAAeA,EAAcx6pB,YAG9H,MAESs7pB,GACGD,GACAnxkC,KAAKswkC,cAAcpM,aAAa1uiC,OAAOx1B,KAAKswkC,cAAcpM,aAAa9gkC,OAAS,EAAG,GAG3FpD,KAAKupkC,eAAeoF,mBAAmB3ukC,KAAKswkC,cAAe,CAEvDpM,aAAclkkC,KAAKswkC,cAAcpM,aAAca,sBAAuB/kkC,KAAKupkC,eAAe+G,cAAcvL,sBACxGC,uBAAwBhlkC,KAAKupkC,eAAe+G,cAActL,yBAE9DhlkC,KAAKupkC,eAAe/+uB,OAAO,CAACxqV,KAAKswkC,cAAcn6iC,IAAKghjB,GAChDn3kB,KAAKupkC,eAAeiI,yBAA8D,cAAnCxxkC,KAAKswkC,cAAc9B,cAClExukC,KAAKupkC,eAAehlB,cAAc,KAAMvkjC,KAAKswkC,cAAcx6pB,WAE3D91a,KAAKswkC,cAAc1K,MAAQ5lkC,KAAKupkC,eAAepq8B,WAAW0q7B,wBAAwB4b,mBAAmBzlkC,KAAKswkC,eACtGtwkC,KAAKswkC,cAAc7C,mBACnBztkC,KAAKswkC,cAAc5C,aAAe1tkC,KAAKswkC,cAAc1K,MAErD5lkC,KAAKupkC,eAAeoF,mBAAmB3ukC,KAAKswkC,cAAe,CAAEpM,aAAclkkC,KAAKswkC,cAAcpM,aAAc0B,MAAO5lkC,KAAKswkC,cAAc1K,SAG1I5lkC,KAAKupkC,eAAepq8B,WAAWg27B,4BAA4Buc,kBAAkB1xkC,KAAKswkC,cAAcrpB,UAAWjnjC,KAAKswkC,cAAc1K,OAE9H5lkC,KAAKupkC,eAAepq8B,WAAW0q7B,wBAAwB+nB,8BAA8B5xkC,KAAKswkC,cAAetwkC,KAAKswkC,cAAcx6pB,YAGpI,IAAI+7pB,EAAmB7xkC,KAAKupkC,eAAevmoB,cAAc5tP,YAAY,GAErEp1M,KAAKupkC,eAAepq8B,WAAWmm7B,UAAUtljC,KAAK81a,UAAW,KAAM+7pB,EAAkB,WAAY,GAAIA,EAAkBA,GACnH7xkC,KAAKswkC,cAAgB,IACzB,CAEJtwkC,KAAKiqkC,WACT,MACSjqkC,KAAKwpkC,WAAaxpkC,KAAK6wkC,UAC5B7wkC,KAAKupkC,eAAep2iC,OAAOnzB,KAAKswkC,cAExC,CACJ,EAMAW,EAAmBtgkC,UAAUu5jC,WAAa,SAAUjxjC,GAChDjZ,KAAK++f,QAAQ9lf,GAAM,GAAM,EAC7B,EAMAg4jC,EAAmBtgkC,UAAUmqd,WAAa,SAAU7hd,GAChD6tC,EAAOn2C,UAAUmqd,WAAWn7d,KAAKK,KAAMiZ,GACvCjZ,KAAK+pkC,UAAU9wjC,EACnB,EAKAg4jC,EAAmBtgkC,UAAUs5jC,UAAY,WACrCjqkC,KAAKwpkC,UAAW,EAChBxpkC,KAAKswkC,cAAgB,KACrBtwkC,KAAKupkC,eAAe1kjB,KAAO,EAC/B,EACOosjB,CACX,CAjNwC,CAiNtC5H,KAOElB,IAA0B,SAAUrhhC,GAEpC,SAASqhhC,EAASoB,EAAgB96gC,EAAM25S,EAAUkouB,GAC9C,IAAIhxkC,EAAQwnD,EAAOnnD,KAAKK,KAAMupkC,EAAgB96gC,GAAM,IAASzuD,KAG7D,OAFAV,EAAM8oW,SAAWA,EACjB9oW,EAAMgxkC,cAAgBA,EACfhxkC,CACX,CAsJA,OA5JA4mD,IAAUiihC,EAAUrhhC,GAYpBqhhC,EAASx3jC,UAAUkvf,UAAY,SAAU5mf,GAarC,GAZAjZ,KAAKwpkC,UAAW,EAChBxpkC,KAAK2pkC,iBAActmkC,EACnByjD,EAAOn2C,UAAUkvf,UAAUlggB,KAAKK,KAAMiZ,GAGlCA,EAAKrC,QAAUqC,EAAKrC,OAAOw+L,cACX,CAAEl7L,EAAGla,KAAK8pkC,aAAa5vjC,EAAGC,EAAGna,KAAK8pkC,aAAa3vjC,GAC7Cna,KAAKswkC,eAE3BtwkC,KAAKw9V,gBAAkBvkV,EAAKixE,SAC5BlqF,KAAKuukC,WAAavukC,KAAKswkC,cACvBtwkC,KAAKy5wB,gBAAkBxgwB,EAAKixE,SACvBlqF,KAAKswkC,eAoBL,IAAKtwkC,KAAK6wkC,SAAU,CACrB,IAAIiB,EAAY,CACZntU,OAAQ,CAAEzqvB,EAAGla,KAAKy5wB,gBAAgBv/vB,EAAGC,EAAGna,KAAKy5wB,gBAAgBt/vB,EAAGqE,MAAO,EAAGoqI,OAAQ,GAElFs76B,aAAc,CAAC,CAAEhqjC,EAAGla,KAAK0nzB,cAAcxtyB,EAAIla,KAAKkpiC,cAAcsB,gBAAiBrwhC,EAAGna,KAAK0nzB,cAAcvtyB,EAAIna,KAAKkpiC,cAAcsB,iBAAmB,CAAEtwhC,EAAGla,KAAKy5wB,gBAAgBv/vB,EAAIla,KAAKkpiC,cAAcsB,gBAAiBrwhC,EAAGna,KAAKy5wB,gBAAgBt/vB,EAAIna,KAAKkpiC,cAAcsB,kBAEhQuK,oBAAqB/0iC,KAAKswkC,cAAcv7B,oBAAqBgwB,sBAAuB/kkC,KAAKswkC,cAAcvL,sBACvGC,uBAAwBhlkC,KAAKswkC,cAActL,uBAAwBrnL,UAAW394B,KAAKswkC,cAAc3yL,UACjGlgb,YAAaz9d,KAAKswkC,cAAc7ymB,YAAa3nD,UAAW91a,KAAKkpiC,cAAc+9B,eAAeC,aAE1F547B,QAAStuI,KAAKswkC,cAAchi8B,SAAW,EAAG6m6B,gBAAiBn1iC,KAAKswkC,cAAcn7B,gBAAiB/mG,UAAWpu8B,KAAKswkC,cAAcliI,UAC7HnuN,aAAcjgvB,KAAKswkC,cAAcrwV,aAAcH,OAAQ9/uB,KAAKswkC,cAAcxwV,OAAQxoS,QAASt3c,KAAKswkC,cAAch5nB,QAC9Gy6nB,YAAa/xkC,KAAKswkC,cAAcyB,YAAaC,cAAehykC,KAAKswkC,cAAc0B,cAC/ExD,YAAaxukC,KAAKupkC,eAAe+G,cAAc9B,YAAaf,iBAAkBztkC,KAAKupkC,eAAekE,kBAEtGztkC,KAAKkpiC,cAAcinC,yBAAyB2B,GAE5C9xkC,KAAKswkC,cAAgBtwkC,KAAKupkC,eAAen2iC,IAAI0+iC,EACjD,MAtCyB,CACrB,IAAIG,EAAgBjykC,KAAKupkC,eAAepq8B,WAAW0q7B,wBAC/CqoB,EAAiB,CAEjBhO,aAAc,CAAC,CAAEhqjC,EAAGla,KAAK0nzB,cAAcxtyB,EAAIla,KAAKkpiC,cAAcsB,gBAAiBrwhC,EAAGna,KAAK0nzB,cAAcvtyB,EAAIna,KAAKkpiC,cAAcsB,iBAAmB,CAAEtwhC,EAAGla,KAAKy5wB,gBAAgBv/vB,EAAIla,KAAKkpiC,cAAcsB,gBAAiBrwhC,EAAGna,KAAKy5wB,gBAAgBt/vB,EAAIna,KAAKkpiC,cAAcsB,kBAChQ7lS,OAAQ,CAAEzqvB,EAAGla,KAAKy5wB,gBAAgBv/vB,EAAGC,EAAGna,KAAKy5wB,gBAAgBt/vB,EAAGqE,MAAO,EAAGoqI,OAAQ,GAClFm86B,sBAAuB/kkC,KAAKupkC,eAAe+G,cAAcvL,sBACzDC,uBAAwBhlkC,KAAKupkC,eAAe+G,cAActL,uBAAwBwJ,YAAa,WAE/F7wL,UAAW394B,KAAKupkC,eAAe+G,cAAc3yL,UAAWioL,MAAO5lkC,KAAKupkC,eAAe+G,cAAc1K,MAAOnomB,YAAaz9d,KAAKupkC,eAAe+G,cAAc7ymB,YAEvJnvV,QAAStuI,KAAKupkC,eAAe+G,cAAchi8B,QAAS8/zB,UAAWpu8B,KAAKupkC,eAAe+G,cAAcliI,UAAW+mG,gBAAiBn1iC,KAAKupkC,eAAe+G,cAAcn7B,gBAC/JJ,oBAAqB,WAAYj/nB,UAAW91a,KAAKkpiC,cAAc+9B,eAAeC,aAC9EpnV,OAAQ9/uB,KAAKupkC,eAAe+G,cAAcxwV,OAAQxoS,QAASt3c,KAAKupkC,eAAe+G,cAAch5nB,QAC7Fm2nB,iBAAkBztkC,KAAKupkC,eAAekE,iBAAkBtH,aAAc8L,EAAcE,cAExFnykC,KAAKkpiC,cAAcinC,yBAAyB+B,GAE5ClykC,KAAKswkC,cAAgBtwkC,KAAKupkC,eAAen2iC,IAAI8+iC,EACjD,CAoBJ,EAMA/J,EAASx3jC,UAAUouf,QAAU,SAAU9lf,GACnC,GAAIjZ,KAAK6wkC,SAAU,CAEf,GADA/phC,EAAOn2C,UAAUo5jC,UAAUpqkC,KAAKK,KAAMiZ,GAClCjZ,KAAKupkC,eAAgB,CAErB,IAAIpyf,OAAkB,EAElBA,EADAl+jB,EAAKrC,QAA8C,OAApCqC,EAAKqyjC,2BACFryjC,EAAKrC,OAAO00jC,2BAGZ,GAGtB,IAAIp7jC,EAAOlQ,KAAKswkC,cAChBtwkC,KAAKupkC,eAAeoF,mBAAmBz+jC,EAAM,CAAEg0jC,aAAch0jC,EAAKg0jC,aAAciC,aAAcj2jC,EAAKi2jC,eACnGnmkC,KAAKupkC,eAAe/xb,eAAex3oB,KAAKkpiC,cAAc+9B,eAAeC,cACrElnkC,KAAKupkC,eAAe/+uB,OAAO,CAACt6U,EAAKimB,IAAKghjB,GACtCn3kB,KAAKupkC,eAAemD,eAAe1skC,KAAKkpiC,cAAc+9B,eAAeC,aAAc/vf,EACvF,CACIn3kB,KAAKooW,UAAYpoW,KAAKooW,SAASz9V,QAAQ,0BAA4B,GAAK3K,KAAK6wkC,WAC7E7wkC,KAAKupkC,eAAepq8B,WAAW0v8B,sBAAsB7ukC,KAAKswkC,eAE1DtwkC,KAAKupkC,eAAepq8B,WAAWmm7B,UAAUtljC,KAAK81a,UAAW,KAAM91a,KAAKswkC,cAAe,WAAY,GAAItwkC,KAAKswkC,cAAetwkC,KAAKswkC,eAC5HtwkC,KAAKswkC,cAAgB,KACrBtwkC,KAAK6wkC,UAAW,EAChB/phC,EAAOn2C,UAAUouf,QAAQp/f,KAAKK,KAAMiZ,IAEpCjZ,KAAKswkC,gBACLtwkC,KAAKooW,SAAW,0BAExB,MAEQpoW,KAAKswkC,eACLtwkC,KAAKupkC,eAAep2iC,OAAOnzB,KAAKswkC,cAG5C,EAMAnI,EAASx3jC,UAAUo5jC,UAAY,SAAU9wjC,GAErC,GADA6tC,EAAOn2C,UAAUo5jC,UAAUpqkC,KAAKK,KAAMiZ,GAClCjZ,KAAKwpkC,WAAsE,IAA1D3lS,IAAM78lB,OAAOhnM,KAAKy5wB,gBAAiBz5wB,KAAK8pkC,cAAyB,CAGlF,GAFA9pkC,KAAKy5wB,gBAAkBxgwB,EAAKixE,SAC5BlqF,KAAK6wkC,UAAW,EACZ7wkC,KAAKy5wB,iBAAmBz5wB,KAAK8pkC,aAAc,CAC3C,IAAIluuB,EAAQ57V,KAAKy5wB,gBAAgBv/vB,EAAIla,KAAK8pkC,aAAa5vjC,EACnDiiV,EAAQn8V,KAAKy5wB,gBAAgBt/vB,EAAIna,KAAK8pkC,aAAa3vjC,EAEnDg9jB,OAAkB,EAElBA,EADAl+jB,EAAKrC,QAA8C,OAApCqC,EAAKqyjC,2BACFryjC,EAAKrC,OAAO00jC,2BAGZ,IAGlBtrkC,KAAKwpkC,UAAYxpkC,KAAKupkC,gBAAkBvpkC,KAAKswkC,oBAAmCjtkC,IAAlBrD,KAAKooW,UAAoC,IAAVxM,GAAyB,IAAVO,KAE5Gn8V,KAAKypkC,SAAWzpkC,KAAKupkC,eAAewF,kBAAkB/ukC,KAAKooW,SAAUpoW,KAAKswkC,cAAetwkC,KAAKy5wB,gBAAiBz5wB,KAAKgvkC,gBAAiB/1jC,EAAK5Q,OAAQ,KAAM8ukB,GACxJn3kB,KAAKupkC,eAAemD,eAAe1skC,KAAKkpiC,cAAc+9B,eAAeC,aAAc/vf,GAE3F,CACAn3kB,KAAK8pkC,aAAe9pkC,KAAKy5wB,eAC7B,CACA,OAAQz5wB,KAAKypkC,OACjB,EAMAtB,EAASx3jC,UAAUu5jC,WAAa,SAAUjxjC,GACtCjZ,KAAK++f,QAAQ9lf,EACjB,EAKAkvjC,EAASx3jC,UAAUs5jC,UAAY,WAC3BnjhC,EAAOn2C,UAAUs5jC,UAAUtqkC,KAAKK,MAChCA,KAAK8pkC,aAAe,KACpB9pkC,KAAKooW,SAAW,IACpB,EACO+/tB,CACX,CA9J8B,CA8J5BkB,KAOE+I,IAA4B,SAAUtrhC,GAEtC,SAASsrhC,EAAW7I,EAAgB96gC,GAChC,OAAO3H,EAAOnnD,KAAKK,KAAMupkC,EAAgB96gC,GAAM,IAASzuD,IAC5D,CAgFA,OAnFAkmD,IAAUkshC,EAAYtrhC,GAStBsrhC,EAAWzhkC,UAAUkvf,UAAY,SAAU5mf,GACvC,IAAIkzjC,EAAgBx2B,IAAY18hC,EAAKrC,QACrC5W,KAAK2pkC,YAAc,CACfhlU,OAAQ,CACJzqvB,EAAGiyjC,EAAchikC,QAAQooV,QAASp4U,EAAGgyjC,EAAchikC,QAAQqoV,QAC3Dh0U,MAAO2tjC,EAAchikC,QAAQwywB,WAAWn+vB,MAAOoqI,OAAQuj7B,EAAchikC,QAAQwywB,WAAW/znB,QACzFsonB,YAAai7T,EAAcj7T,aAGlCpqtB,EAAOn2C,UAAUkvf,UAAUlggB,KAAKK,KAAMiZ,EAC1C,EAMAm5jC,EAAWzhkC,UAAUouf,QAAU,SAAU9lf,GACrC,IAEI4zjC,EAFAvyjC,EAASrB,EAAKrC,OAGlB,GAAI5W,KAAK2pkC,YAAYz4T,cAAgB52vB,EAAOnQ,QAAQ+mwB,YAAa,CAE7D,IAAI/5L,EAAkBl+jB,EAAKrC,OAAOw+L,YAAY,GAAGk23B,2BACjDtrkC,KAAKupkC,eAAemD,eAAe1skC,KAAKkpiC,cAAc+9B,eAAeC,aAAc/vf,GACnF01f,EAAiB,CACbloU,OAAQ,CACJzqvB,EAAGjB,EAAKrC,OAAOzM,QAAQooV,QAASp4U,EAAGlB,EAAKrC,OAAOzM,QAAQqoV,QACvDh0U,MAAOvF,EAAKrC,OAAOzM,QAAQwywB,WAAWn+vB,MAAOoqI,OAAQ3vI,EAAKrC,OAAOzM,QAAQwywB,WAAW/znB,QACrFsonB,YAAaj4vB,EAAKrC,OAAOzM,QAAQ+mwB,YAE5C,CAEAlxwB,KAAKupkC,eAAepq8B,WAAWmm7B,UAAUtljC,KAAK81a,UAAW,KAAM78Z,EAAKrC,OAAQ,SAAU,GAAI5W,KAAK2pkC,YAAakD,GAC5G7skC,KAAKupkC,eAAepq8B,WAAW4t8B,sBAAsBC,qBAAqB/zjC,EAAKrC,OAAQ,KAAM,UAC7F5W,KAAKupkC,eAAepq8B,WAAWg27B,4BAA4B8X,kBAAkBh0jC,EAAKrC,OAAQ,MAC1FkwC,EAAOn2C,UAAUouf,QAAQp/f,KAAKK,KAAMiZ,EACxC,EAMAm5jC,EAAWzhkC,UAAUo5jC,UAAY,SAAU9wjC,GACvC6tC,EAAOn2C,UAAUo5jC,UAAUpqkC,KAAKK,KAAMiZ,GACtC,IAAIqB,EAASrB,EAAKrC,OAEdugkB,EAAkBl+jB,EAAKrC,OAAOw+L,YAAY,GAAGk23B,2BAEjD,GADAtrkC,KAAKy5wB,gBAAkBxgwB,EAAKixE,SACxB5vE,EAAOnQ,QAAS,CAChB,IAAI+4jC,EAAW,CAAEhpjC,EAAGI,EAAOnQ,QAAQooV,QAASp4U,EAAGG,EAAOnQ,QAAQqoV,SAC1D++E,EAAQsyX,IAAMwuQ,UAAU6wB,EAAUljkC,KAAKy5wB,iBAAmB,GAC9DloW,GAASA,EAAQ,KAAO,IACxBvxa,KAAKypkC,SAAYzpkC,KAAKupkC,eAAej5pB,OAAOiB,EAAQj3Z,EAAOnQ,QAAQ+mwB,YAAa/5L,EACpF,CACA,OAAQn3kB,KAAKypkC,OACjB,EACA2I,EAAWzhkC,UAAUo/jC,kBAAoB,SAAU7/jC,GAC/C,OAAOtM,KAAKmgB,MAAO7T,EAAKghwB,YAAc,KAAMp6vB,WAAa,MAC7D,EAMAs7jC,EAAWzhkC,UAAUu5jC,WAAa,SAAUjxjC,GACxCjZ,KAAK++f,QAAQ9lf,EACjB,EAKAm5jC,EAAWzhkC,UAAUs5jC,UAAY,WAC7BnjhC,EAAOn2C,UAAUs5jC,UAAUtqkC,KAAKK,KACpC,EACOoykC,CACX,CArFgC,CAqF9B/I,KC9vEEtqI,IAAgC,WAChC,SAASA,IACT,CAgeA,OA9dAA,EAAepie,WAAa,SAAUC,GAClC,OAAOA,EAAOD,WAAW,KAC7B,EACAoie,EAAepu7B,UAAU6lZ,SAAW,SAAUomE,EAAQz2d,GAClD,IAAIg81B,EAAM48F,EAAepie,WAAWC,GACjB,SAAfz2d,EAAMqgF,OACNrgF,EAAMqgF,KAAO,eAEI,SAAjBrgF,EAAMo0vB,SACNp0vB,EAAMo0vB,OAAS,eAEnB4nG,EAAI5+X,YAAcp9d,EAAMo0vB,OACxB4nG,EAAIlqF,UAAY9xwB,EAAMipI,YACI,IAAtBjpI,EAAMipI,cACN+ytB,EAAI5+X,YAAc,eAEtB4+X,EAAIq9F,YAAcr57B,EAAMmoI,QACxB,IAAI4wzB,EAAY,GACZ/47B,EAAM+47B,YACNA,EAAYl/7B,KAAKqykC,eAAelskC,EAAM+47B,YAE1C/8F,EAAIi9F,YAAYF,GAChB/8F,EAAI3kY,UAAYr3d,EAAMqgF,IAC1B,EACAu42B,EAAepu7B,UAAU2hkC,cAAgB,SAAU11mB,EAAQrrD,EAAOr3Z,EAAGC,GACjE,IAAIgo1B,EAAM48F,EAAepie,WAAWC,GACpCulY,EAAIrpT,UAAU5+hB,EAAGC,GACjBgo1B,EAAI7xb,OAAOiB,EAAQ3ta,KAAKita,GAAK,KAC7Bsxb,EAAIrpT,WAAW5+hB,GAAIC,EACvB,EACA4k7B,EAAepu7B,UAAU4hkC,aAAe,SAAU31mB,EAAQ38b,GACtD,IAAIki0B,EAAM48F,EAAepie,WAAWC,GAChC2H,EAAO,GACPtkc,EAAKqwF,SACLi0W,GAAQ,WAERtkc,EAAKmwF,OACLm0W,GAAQ,SAEZA,GAAStkc,EAAKg/Q,SAAY,MAC1BslL,GAAQtkc,EAAKuib,WACb2/Y,EAAI59X,KAAOA,CACf,EAEAw6d,EAAepu7B,UAAU0hkC,eAAiB,SAAUnzI,GAIhD,IAHA,IAAIszI,EAAS,GACTrq/B,GAAwC,IAA5B+22B,EAAUv07B,QAAQ,KAAc,IAAM,IAE7C2E,EAAK,EAAGmjkC,EADIvzI,EAAUvs6B,MAAMw1D,GACe74E,EAAKmjkC,EAAiBrvkC,OAAQkM,IAAM,CACpF,IAAInD,EAAIsmkC,EAAiBnjkC,GACzBkjkC,EAAOpmkC,KAAKyZ,OAAO1Z,GACvB,CACA,OAAOqmkC,CACX,EAGAzzI,EAAepu7B,UAAU64xB,cAAgB,SAAU5sU,EAAQ99c,GACvD,IAAwB,IAApBA,EAAQ+wR,QACR,GAAI/wR,EAAQyg7B,aACRzg7B,EAAQorB,K1B0DjB,SAA0Bq15B,EAAc32yB,EAAQpqI,GAC/C+g7B,EAAe32yB,EAAS,IACxB22yB,EAAe32yB,EAAS,GAExB22yB,EAAe/g7B,EAAQ,IACvB+g7B,EAAe/g7B,EAAQ,GAE3B,IAUI0zhC,EACA37hC,EAEApK,EAXA2gE,EAAO,GACP0yZ,EAAS,CAAC,CAAEtld,EAHR,EAGeql7B,EAAcpl7B,EAF7B,GAEqC,CAAED,EAHvC,EAG8CsE,EAAQ+g7B,EAAcpl7B,EAFpE,GAGJ,CAAED,EAJE,EAIKsE,EAAOrE,EAHZ,EAGmBol7B,GAAgB,CAAErl7B,EAJrC,EAI4CsE,EAAOrE,EAHnD,EAG0DyuI,EAAS22yB,GACvE,CAAErl7B,EALE,EAKKsE,EAAQ+g7B,EAAcpl7B,EAJ3B,EAIkCyuI,GAAU,CAAE1uI,EAL9C,EAKqDql7B,EAAcpl7B,EAJnE,EAI0EyuI,GAC9E,CAAE1uI,EANE,EAMIC,EALJ,EAKWyuI,EAAS22yB,GAAgB,CAAErl7B,EANtC,EAM4CC,EAL5C,EAKmDol7B,IAEvDqiI,EAAU,CAAC,CAAE1njC,EART,EAQgBsE,EAAOrE,EAPvB,GAO+B,CAAED,EARjC,EAQwCsE,EAAOrE,EAP/C,EAOsDyuI,GAAU,CAAE1uI,EARlE,EAQwEC,EAPxE,EAO+EyuI,GAAU,CAAE1uI,EAR3F,EAQiGC,EAPjG,IAQJ8jjC,EAAS,EAKb,IAFAnx/B,EAAO,IAAM0yZ,EAAO,GAAGtld,EAAI,IAAMsld,EAAO,GAAGrld,EAEtChO,EAAI,EAAGA,EAAIqzd,EAAOp8d,OAAQ+I,GAAQ,EAEnC2gE,GAAQ,KADRol+B,EAAS1ykB,EAAOrzd,EAAI,IACC+N,EAAI,IAAMg4hC,EAAO/3hC,EACtC5D,EAAOipd,EAAOrzd,EAAI,IAAMqzd,EAAO,GAE/B1yZ,GAAQ,IAAM80/B,EAAQ3D,GAAQ/jjC,EAAI,IAAM0njC,EAAQ3D,GAAQ9jjC,EAAI,IAAM5D,EAAK2D,EAAI,IAAM3D,EAAK4D,EACtF8jjC,IAEJ,OAAOnx/B,CACX,C0BxF+B4lgC,CAAiB5zjC,EAAQyg7B,aAAczg7B,EAAQ8pI,OAAQ9pI,EAAQN,OAC9Exe,KAAKgwyB,SAASpzU,EAAQ99c,OAErB,CACD,IAAIqj1B,EAAM48F,EAAepie,WAAWC,GACpCulY,EAAI9jY,OACJ8jY,EAAIlhY,YACenid,EAAQyg7B,aAA3B,IACIk2G,EAAS32hC,EAAQ5E,EAAI4E,EAAQN,MAAQM,EAAQ22hC,OAC7CC,EAAS52hC,EAAQ3E,EAAI2E,EAAQ8pI,OAAS9pI,EAAQ42hC,OAClD11iC,KAAKsykC,cAAc11mB,EAAQ99c,EAAQyyZ,MAAOkkoB,EAAQC,GAClD11iC,KAAKw2Z,SAASomE,EAAQ99c,GACtBqj1B,EAAIztkB,KAAK51Q,EAAQ5E,EAAG4E,EAAQ3E,EAAG2E,EAAQN,MAAOM,EAAQ8pI,QACtDu5sB,EAAIkpE,SAASvs5B,EAAQ5E,EAAG4E,EAAQ3E,EAAG2E,EAAQN,MAAOM,EAAQ8pI,QAC1Du5sB,EAAI37wB,OACJ27wB,EAAI5nG,SACJ4nG,EAAIvjY,YACJujY,EAAIjtS,SACR,CAER,EAEA6pY,EAAepu7B,UAAUq/xB,SAAW,SAAUpzU,EAAQ99c,GAClD,IAAIijD,EAAa,GAEjBA,EAAagu+B,IADbhu+B,EAAayt+B,IAAgB1whC,EAAQorB,OAErC,IAAIi4zB,EAAM48F,EAAepie,WAAWC,GACpCulY,EAAI9jY,OACJ8jY,EAAIlhY,YACJ,IAAIy0kB,EAAS52hC,EAAQ3E,EAAI2E,EAAQ8pI,OAAS9pI,EAAQ42hC,OAC9CD,EAAS32hC,EAAQ5E,EAAI4E,EAAQN,MAAQM,EAAQ22hC,OACjDz1iC,KAAKsykC,cAAc11mB,EAAQ99c,EAAQyyZ,MAAOkkoB,EAAQC,GAClD11iC,KAAKw2Z,SAASomE,EAAQ99c,GACtBqj1B,EAAIrpT,UAAUh6hB,EAAQ5E,EAAG4E,EAAQ3E,GACjCna,KAAK2ykC,WAAW/1mB,EAAQ99c,EAASijD,GACjCogyB,EAAI37wB,OACJ27wB,EAAIrpT,WAAWh6hB,EAAQ5E,GAAI4E,EAAQ3E,GACnCgo1B,EAAI5nG,SACJ4nG,EAAIjtS,SACR,EAEA6pY,EAAepu7B,UAAUgikC,WAAa,SAAU/1mB,EAAQ99c,EAASijD,GAC7D,IAAwB,IAApBjjD,EAAQ+wR,QAAkB,CAC1B,IASIkR,EATAohjB,EAAM48F,EAAepie,WAAWC,GAChCozkB,OAAK,EACLC,OAAK,EACLpvZ,OAAK,EACLC,OAAK,EACLC,OAAK,EACLC,OAAK,EACL9moB,OAAI,EACJC,OAAI,EAEJhO,OAAI,EAEJymkC,EAAO7wgC,EACX,IAAK7nD,EAAI,EAAGC,EAAI,EAAGhO,EAAI,EAAG40S,EAAW6xxB,EAAKxvkC,OAAQ+I,EAAI40S,IAAY50S,EAAG,CACjE,IACI+jiC,EADM0iC,EAAKrmjC,SAASpgB,EAAE2K,WAAY,KAElC4gB,EAAOw4gC,EAAIloiB,QAmBf,OAlBI,OAAQkoiB,IACRrvZ,EAAKqvZ,EAAIrvZ,IAET,OAAQqvZ,IACRnvZ,EAAKmvZ,EAAInvZ,IAET,OAAQmvZ,IACRpvZ,EAAKovZ,EAAIpvZ,IAET,OAAQovZ,IACRlvZ,EAAKkvZ,EAAIlvZ,IAET,MAAOkvZ,IACPh2hC,EAAIg2hC,EAAIh2hC,GAER,MAAOg2hC,IACP/1hC,EAAI+1hC,EAAI/1hC,GAEJud,GACJ,IAAK,IACDyq0B,EAAIjhY,OAAOhnd,EAAGC,GACd+1hC,EAAIh2hC,EAAIA,EACRg2hC,EAAI/1hC,EAAIA,EACR,MACJ,IAAK,IACDgo1B,EAAIupE,OAAOxx5B,EAAGC,GACd+1hC,EAAIh2hC,EAAIA,EACRg2hC,EAAI/1hC,EAAIA,EACR,MACJ,IAAK,IACDgo1B,EAAIi+F,cAAcv/S,EAAIC,EAAIC,EAAIC,EAAI9moB,EAAGC,GACrC+1hC,EAAIh2hC,EAAIA,EACRg2hC,EAAI/1hC,EAAIA,EACR+1hC,EAAIrvZ,GAAKA,EACTqvZ,EAAIpvZ,GAAKA,EACTovZ,EAAInvZ,GAAKA,EACTmvZ,EAAIlvZ,GAAKA,EACT,MACJ,IAAK,IACDmhN,EAAI49F,iBAAiBl/S,EAAIC,EAAI5moB,EAAGC,GAChC+1hC,EAAIh2hC,EAAIA,EACRg2hC,EAAI/1hC,EAAIA,EACR+1hC,EAAIrvZ,GAAKA,EACTqvZ,EAAIpvZ,GAAKA,EACT,MACJ,IAAK,IACD,IAAItkY,EAAO,CAAEtiQ,EAAG81hC,EAAI71hC,EAAG81hC,GACnBt+P,EAAKu+P,EAAIN,GACTh+P,EAAKs+P,EAAIL,GACTgjC,EAAgB3iC,EAAI3+nB,OAAS3ta,KAAKita,GAAK,KACvCi/nB,EAAWI,EAAIJ,SACf5ruB,EAAQgsuB,EAAIhsuB,MACZ7tR,EAAK,CAAEn8B,EAAGA,EAAGC,EAAGA,GAChB24jC,EAAQ,CACR54jC,EAAGtW,KAAK6ta,IAAIohqB,IAAkBr2zB,EAAKtiQ,EAAIm8B,EAAGn8B,GAAK,EAAMtW,KAAK8ta,IAAImhqB,IAAkBr2zB,EAAKriQ,EAAIk8B,EAAGl8B,GAAK,EACjGA,GAAIvW,KAAK8ta,IAAImhqB,IAAkBr2zB,EAAKtiQ,EAAIm8B,EAAGn8B,GAAK,EAAMtW,KAAK6ta,IAAIohqB,IAAkBr2zB,EAAKriQ,EAAIk8B,EAAGl8B,GAAK,GAElGklB,EAAIz7B,KAAKwe,IAAI0wjC,EAAM54jC,EAAG,GAAKtW,KAAKwe,IAAIuvxB,EAAI,GAAK/tyB,KAAKwe,IAAI0wjC,EAAM34jC,EAAG,GAAKvW,KAAKwe,IAAIwvxB,EAAI,GACjFvywB,EAAI,IACJsywB,GAAM/tyB,KAAK0kS,KAAKjpQ,GAChBuywB,GAAMhuyB,KAAK0kS,KAAKjpQ,IAEpB,IAAIve,EAAKld,KAAKwe,IAAIwvxB,EAAI,GAAKhuyB,KAAKwe,IAAI0wjC,EAAM54jC,EAAG,GACzC+G,GAAK6uhC,IAAa5ruB,GAAS,EAAI,GAAKtgU,KAAK0kS,MAAO1kS,KAAKwe,IAAIuvxB,EAAI,GAAK/tyB,KAAKwe,IAAIwvxB,EAAI,GAAOhuyB,KAAKwe,IAAIuvxB,EAAI,GAAK/tyB,KAAKwe,IAAI0wjC,EAAM34jC,EAAG,GAAM2G,IAC/Hld,KAAKwe,IAAIuvxB,EAAI,GAAK/tyB,KAAKwe,IAAI0wjC,EAAM34jC,EAAG,GAAKvW,KAAKwe,IAAIwvxB,EAAI,GAAKhuyB,KAAKwe,IAAI0wjC,EAAM54jC,EAAG,KAC9ErY,MAAMof,KACNA,EAAI,GAER,IAAI8xjC,EAAM,CAAE74jC,EAAG+G,EAAI0wxB,EAAKmhS,EAAM34jC,EAAIy3xB,EAAIz3xB,EAAG8G,GAAK2wxB,EAAKkhS,EAAM54jC,EAAIy3xB,GACzDqhS,EAAQ,CACR94jC,GAAIsiQ,EAAKtiQ,EAAIm8B,EAAGn8B,GAAK,EAAMtW,KAAK6ta,IAAIohqB,GAAiBE,EAAI74jC,EAAItW,KAAK8ta,IAAImhqB,GAAiBE,EAAI54jC,EAC3FA,GAAIqiQ,EAAKriQ,EAAIk8B,EAAGl8B,GAAK,EAAMvW,KAAK8ta,IAAImhqB,GAAiBE,EAAI74jC,EAAItW,KAAK6ta,IAAIohqB,GAAiBE,EAAI54jC,GAE3F8yvB,EAAKjtwB,KAAKiW,EAAE,CAAC,EAAG,GAAI,EAAE68jC,EAAM54jC,EAAI64jC,EAAI74jC,GAAKy3xB,GAAKmhS,EAAM34jC,EAAI44jC,EAAI54jC,GAAKy3xB,IACjExyxB,EAAI,EAAE0zjC,EAAM54jC,EAAI64jC,EAAI74jC,GAAKy3xB,GAAKmhS,EAAM34jC,EAAI44jC,EAAI54jC,GAAKy3xB,GACjDv2wB,EAAI,GAAGy3iC,EAAM54jC,EAAI64jC,EAAI74jC,GAAKy3xB,IAAMmhS,EAAM34jC,EAAI44jC,EAAI54jC,GAAKy3xB,GACnDxypB,EAAKp/I,KAAKiW,EAAEmJ,EAAGic,GACfr7B,KAAKsjH,EAAElkG,EAAGic,KAAO,IACjB+jH,EAAKx7I,KAAKita,IAEV7wa,KAAKsjH,EAAElkG,EAAGic,IAAM,IAChB+jH,EAAK,GAET,IACIqX,EAAKw2mB,GADE/oc,EAAe,GAAN,IACC9kL,EAAK,GAEJx7I,KAAK6ta,IAAIh7Q,GACT7yJ,KAAK8ta,IAAIj7Q,GAS/B,GAPAy54B,EAAI8iC,MAAQA,EACZ9iC,EAAI2iC,cAAgBA,EACpB3iC,EAAIv+P,GAAKA,EACTu+P,EAAIt+P,GAAKA,EACTs+P,EAAIjjS,GAAKA,EACTijS,EAAI9w5B,GAAKA,EACT8w5B,EAAIhsuB,MAAQA,EACD,MAAPi+hB,EAAa,CACb,IAAI9ptB,EAAKs5pB,EAAKC,EAAKD,EAAKC,EACpBqhS,EAAKthS,EAAKC,EAAK,EAAID,EAAKC,EACxBshS,EAAKvhS,EAAKC,EAAKA,EAAKD,EAAK,EAC7BwwD,EAAI9jY,OACJ8jY,EAAIrpT,UAAUk6hB,EAAM94jC,EAAG84jC,EAAM74jC,GAC7Bgo1B,EAAI7xb,OAAOuiqB,GACX1wO,EAAI5kY,MAAM01mB,EAAIC,GACd/wO,EAAIhhY,IAAI,EAAG,EAAG9oV,EAAI40nB,EAAIA,EAAK7tnB,GAAK8kL,GAChCi+hB,EAAI5kY,MAAM,EAAI01mB,EAAI,EAAIC,GACtB/wO,EAAI7xb,QAAQuiqB,GACZ1wO,EAAIrpT,WAAWk6hB,EAAM94jC,GAAI84jC,EAAM74jC,GAC/Bgo1B,EAAIjtS,SACR,CACA,MACJ,IAAK,IACL,IAAK,IACDitS,EAAIvjY,YACJ1kd,EAAI81hC,EACJ71hC,EAAI81hC,EAGZD,EAAK91hC,EACL+1hC,EAAK91hC,CACT,CACJ,CACJ,EAEA4k7B,EAAepu7B,UAAUy2yB,SAAW,SAAUxqV,EAAQ99c,GAClD,GAAIA,EAAQ/J,UAA+B,IAApB+J,EAAQ+wR,QAAkB,CAC7C,IAAIsyjB,EAAM48F,EAAepie,WAAWC,GACpCulY,EAAI9jY,OACJr+d,KAAKw2Z,SAASomE,EAAQ99c,GACtB,IAAI22hC,EAAS32hC,EAAQ5E,EAAI4E,EAAQN,MAAQM,EAAQ22hC,OAC7CC,EAAS52hC,EAAQ3E,EAAI2E,EAAQ8pI,OAAS9pI,EAAQ42hC,OAClD11iC,KAAKsykC,cAAc11mB,EAAQ99c,EAAQyyZ,MAAOkkoB,EAAQC,GAClD11iC,KAAKuykC,aAAa31mB,EAAQ99c,GAC1B,IACIqqB,EADAh9B,EAAI,EAERg9B,EAAarqB,EAAQqqB,WACrB,IAAIi2hC,EAAatgjC,EAAQsgjC,WAEzB,GADAj9N,EAAI3kY,UAAY1+c,EAAQ23G,MACpB2o8B,EAAY,CACZ,IAAIl1+B,EAAWlqF,KAAKmzkC,WAAWr0jC,EAASsgjC,EAAYj2hC,GACpD,IAAKh9B,EAAI,EAAGA,EAAIg9B,EAAW/lC,OAAQ+I,IAAK,CACpC,IAAIg7C,EAAQhe,EAAW5c,SAASpgB,EAAE2K,WAAY,KAC1Cy7U,EAAUroQ,EAAShwE,EAAIitC,EAAMjtC,EAAIkljC,EAAWlljC,EAC5Cs4U,EAAUtoQ,EAAS/vE,EAAIgtC,EAAMq54B,GAAKr07B,EAA0B,GAApB2S,EAAQmgS,SAKpD,GADAkjjB,EAAIz9X,SAASv9a,EAAMlnB,KAAMsyT,EAASC,GACH,cAA3B1zU,EAAQ23jB,gBACsB,aAA3B33jB,EAAQ23jB,gBACmB,gBAA3B33jB,EAAQ23jB,eAAkC,CAC7C,IAAI28f,EAAc7gvB,EACd8gvB,OAAc,EAEdC,EAAY/gvB,EADC4vgB,EAAI6xD,YAAY7s2B,EAAMlnB,MAAMzhB,MAEzC+0jC,OAAY,EAChB,OAAQz0jC,EAAQ23jB,gBACZ,IAAK,YACD48f,EAAc7gvB,EAAU,EACxB+gvB,EAAY/gvB,EAAU,EACtB,MACJ,IAAK,WACD6gvB,EAAenp/B,EAAS/vE,EAAIgtC,EAAMq54B,GAAKr07B,EACvConkC,EAAarp/B,EAAS/vE,EAAIgtC,EAAMq54B,GAAKr07B,EACrC,MACJ,IAAK,cACDknkC,GAAgB7gvB,EAAUtoQ,EAAS/vE,EAAIgtC,EAAMq54B,GAAKr07B,GAAK,EAAK,EAC5DonkC,GAAc/gvB,EAAUtoQ,EAAS/vE,EAAIgtC,EAAMq54B,GAAKr07B,GAAK,EAAK,EAElEg21B,EAAIlhY,YACJkhY,EAAIjhY,OAAOkymB,EAAaC,GACxBlxO,EAAIupE,OAAO4nK,EAAWC,GACtBpxO,EAAI5+X,YAAczkd,EAAQ23G,MAC1B0ruB,EAAIlqF,UAA+B,IAAnBn5vB,EAAQmgS,SACxBkjjB,EAAIq9F,YAAc1g7B,EAAQwvH,QAC1B6ztB,EAAI5nG,QACR,CACJ,CACJ,CACA4nG,EAAIjtS,SACR,CACJ,EAGA6pY,EAAepu7B,UAAUoQ,EAAI,SAAUsa,GAAK,OAAOz3B,KAAK0kS,KAAK1kS,KAAKwe,IAAIiZ,EAAE,GAAI,GAAKz3B,KAAKwe,IAAIiZ,EAAE,GAAI,GAAK,EAErG0j6B,EAAepu7B,UAAU2yG,EAAI,SAAUlkG,EAAGic,GAAK,OAAQjc,EAAE,GAAKic,EAAE,GAAKjc,EAAE,GAAKic,EAAE,KAAOr7B,KAAK+gB,EAAE3B,GAAKpf,KAAK+gB,EAAEsa,GAAK,EAE7G0j6B,EAAepu7B,UAAUsF,EAAI,SAAUmJ,EAAGic,GAAK,OAAQjc,EAAE,GAAKic,EAAE,GAAKjc,EAAE,GAAKic,EAAE,IAAM,EAAI,GAAKz3B,KAAK4vkC,KAAKxzkC,KAAKsjH,EAAElkG,EAAGic,GAAK,EACtH0j6B,EAAepu7B,UAAU8ikC,cAAgB,SAAUj7gC,EAAK0/B,EAAKwmqB,GACzD,IAAIzxtB,EAAMrpC,KAAKqpC,IAAIirD,EAAKwmqB,GACpB90sB,EAAMhmD,KAAKgmD,IAAIsuC,EAAKwmqB,GACxB,OAAQlmsB,GACJ,IAAK,MAGL,QAAS,OAAO,EAFhB,IAAK,MAAO,OAAQvrB,EAAM2c,GAAO,EACjC,IAAK,MAAO,OAAO3c,EAAM2c,EAGjC,EACAm14B,EAAepu7B,UAAU+ikC,eAAiB,SAAUl7gC,EAAK0/B,EAAKwmqB,EAAMh6lB,GAChE,OAAQlsG,GACJ,IAAK,MAGL,QAAS,OAAO,EAFhB,IAAK,MAAO,OAAQ0/B,EAAMwmqB,GAAQ,EAAIh6lB,EAAMxsE,EAC5C,IAAK,MAAO,OAAQA,EAAMwmqB,GAAQh6lB,EAAMxsE,EAGhD,EACA6m2B,EAAepu7B,UAAU26a,MAAQ,SAAU62a,EAAK72a,EAAOpxa,EAAGC,EAAGqE,EAAOoqI,EAAQ+q7B,GACxExxO,EAAIlhY,YACJ,IAAIs4b,EAAWjue,EAAM9sa,MACjBg74B,EAAYlue,EAAM1iS,OAClBgr7B,EAAep1jC,EACfq1jC,EAAejr7B,EACfkr7B,EAAc,EACdvoS,EAAe,EAEnB,GADA42D,EAAIq9F,YAAcm0I,EAAarl8B,QAC3Bql8B,GAA2C,SAA3BA,EAAa33zB,UAAsB,CACnD,IAAI+3zB,EAASJ,EAAa33zB,UAAUt7P,cAAcy3B,OAAO,EAAG,GACxD67hC,EAASL,EAAa33zB,UAAUt7P,cAAcy3B,OAAO,EAAG,GAC5D,GAA2B,UAAvBw7hC,EAAap2mB,MAAmB,CAChC,IAAItnd,EAAI,WACJ69jC,EAAcF,EACdroS,EAAeiuH,EAAYo6K,EAAer6K,CAC9C,EACIrj5B,EAAI,WACJ49jC,EAAcv6K,EAAWs6K,EAAer6K,EACxCjuH,EAAesoS,CACnB,EACID,EAAeC,GACf59jC,IACI49jC,EAAetoS,GACfr1xB,KAGC09jC,IAAiBC,EAClBt6K,EAAWC,EACXtj5B,IAGAD,KAIJC,IACI09jC,EAAeE,GACf79jC,KAGR,IAAI4qoB,EAAK7gpB,KAAK0zkC,eAAeK,EAAQD,EAAaF,EAAcr6K,GAC5Dz4Q,EAAK9gpB,KAAK0zkC,eAAeM,EAAQzoS,EAAcsoS,EAAcr6K,GAC7Dy6K,EAAS16K,EAAW14Q,EACpB2P,EAAUgpQ,EAAY14Q,EACtBozb,EAASJ,EAAejzb,GAAMizb,EAAcv6K,GAC5C46K,EAAU5oS,EAAgBzqJ,GAAMyqJ,EAAeiuH,GAC/C46K,EAAUtU,IAAkB,SAAU,CAAE,MAASthjC,EAAM1H,WAAY,OAAU8xI,EAAO9xI,aAC7Es9jC,EAAQz3mB,WAAW,MACzBqC,UAAU1zC,EAAOu1N,EAAIC,EAAImzb,EAAQzjb,EAAS,EAAG,EAAG0jb,EAAQC,GAC7DhyO,EAAInjY,UAAUo1mB,EAASl6jC,EAAGC,EAAGqE,EAAOoqI,EACxC,MACK,GAA2B,SAAvB+q7B,EAAap2mB,MAAkB,CACpC,IAAI82mB,EAAY76K,EAAYD,EACxB+6K,EAAaT,EAAeD,EAChCE,EAAcQ,EAAYD,EAAWT,EAAeC,EAAeQ,EACnE9oS,EAAe+oS,EAAYD,EAAWT,EAAeS,EAAWR,EAChE35jC,GAAKla,KAAKyzkC,cAAcM,EAAQD,EAAaF,GAC7Cz5jC,GAAKna,KAAKyzkC,cAAcO,EAAQzoS,EAAcsoS,GAC9C1xO,EAAInjY,UAAU1zC,EAAO,EAAG,EAAGiue,EAAUC,EAAWt/4B,EAAGC,EAAG25jC,EAAavoS,EACvE,MAEI42D,EAAInjY,UAAU1zC,EAAOpxa,EAAGC,EAAGqE,EAAOoqI,EAE1C,MAEI,GAAI0iS,EAAMs1Q,SACNuhK,EAAInjY,UAAU1zC,EAAOpxa,EAAGC,EAAGqE,EAAOoqI,OAEjC,CACD,IAAI2r7B,EAAcpyO,EAAIqyO,eACtBlppB,EAAM3rQ,OAAS,WACXwirB,EAAIk8D,aAAak2K,EAAYt+jC,EAAGs+jC,EAAYr+jC,EAAGq+jC,EAAYl0jC,EAAGk0jC,EAAY/ykC,EAAG+ykC,EAAYl0kC,EAAGk0kC,EAAY7w9B,GACxGy+uB,EAAInjY,UAAU1zC,EAAOpxa,EAAGC,EAAGqE,EAAOoqI,EACtC,CACJ,CAEJu5sB,EAAIvjY,WACR,EAEAmge,EAAepu7B,UAAUszxB,UAAY,SAAUk+D,EAAKtx1B,EAAK+rd,EAAQ64kB,EAAQC,GAErE,IAAIpqnB,EADJtrb,KAAKsykC,cAAc11mB,EAAQ/rd,EAAI0ga,MAAOkkoB,EAAQC,GAE1C1khC,OAAOyjjC,uBAAyBzjjC,OAAOyjjC,sBAAsB/9jC,IAAI7F,EAAI6jkC,SACrEpppB,EAAQt6Z,OAAOyjjC,sBAAsB/9jC,IAAI7F,EAAI6jkC,UAG7CpppB,EAAQ,IAAIwzC,OACNp6T,IAAM7zJ,EAAI+F,OAEpB5W,KAAKsrb,MAAM62a,EAAK72a,EAAOz6a,EAAIqJ,EAAGrJ,EAAIsJ,EAAGtJ,EAAI2N,MAAO3N,EAAI+3I,OAAQ/3I,EAChE,EAEAku7B,EAAepu7B,UAAUqud,UAAY,SAAUpC,EAAQ/rd,EAAK8jkC,EAAWC,GACnE,IAAIt1kC,EAAQU,KACZ,GAAI6Q,EAAIg/R,QAAS,CACb,IAAIkvwB,EAAQhgH,EAAepie,WAAWC,GACtCmilB,EAAM1glB,OACN,IAAIw2mB,EAAWhkkC,EAAIqJ,EAAIrJ,EAAI2N,MAAQ3N,EAAI4kiC,OACnCq/B,EAAWjkkC,EAAIsJ,EAAItJ,EAAI+3I,OAAS/3I,EAAI6kiC,OACpCzykB,EAAW,IAAInE,MACnBmE,EAASv+T,IAAM7zJ,EAAI+F,OACnB,IAAIuf,EAAK4ohC,EAAMnilB,OAAOzmc,GAAGxD,MAAM,KACnBwD,EAAGA,EAAG/yB,OAAS,GAUtBwxkC,EAID3xmB,EAAStjT,OAAS,WACdrgL,EAAM2kyB,UAAU86Q,EAAOluiC,EAAK+rd,EAAQi4mB,EAAUC,EAClD,EALA90kC,KAAKikyB,UAAU86Q,EAAOluiC,EAAK+rd,EAAQi4mB,EAAUC,GAOjD/1B,EAAM7pf,SACV,CACJ,EAEA6pY,EAAepu7B,UAAUwikC,WAAa,SAAUlziC,EAAMm/hC,EAAYj2hC,GAC9D,IAAIw7tB,EAAS,IAAI+8L,IAAK09H,EAAW5gjC,MAAO2qB,EAAW/lC,QAA0B,IAAhB68B,EAAKg/Q,WAC9D/0N,EAAW,CAAEhwE,EAAG,EAAGC,EAAG,GACtB46jC,EAAS90iC,EAAK/lB,EACd86jC,EAAS/0iC,EAAK9lB,EAGd86jC,EAFuB,GAAbh1iC,EAAKzhB,MAGf02jC,EAFwB,GAAdj1iC,EAAK2oH,OAmBnB,MAhBuB,SAAnB3oH,EAAKukc,UACLywmB,EAAS,EAEe,WAAnBh1iC,EAAKukc,UAENywmB,EADA7V,EAAW5gjC,MAAQyhB,EAAKzhB,QAAgC,aAAtByhB,EAAKo/hC,cAAqD,SAAtBp/hC,EAAKo/hC,cAClE,EAGa,GAAbp/hC,EAAKzhB,MAGM,UAAnByhB,EAAKukc,YACVywmB,EAAuB,EAAbh1iC,EAAKzhB,OAEnB0rE,EAAShwE,EAAI66jC,EAASE,GAAU7V,EAAaA,EAAWlljC,EAAI,GAC5DgwE,EAAS/vE,EAAI66jC,EAASE,EAASvwU,EAAO/7mB,OAAS,EACxC1+D,CACX,EACO602B,CACX,CAneoC,GAqe7B,SAASo2I,IAAuBv4mB,EAAQw4mB,EAAgB90wB,GAC3D,IAAK,IAAIn0T,EAAI,EAAGA,EAAIipkC,EAAehykC,OAAQ+I,IACvCm0T,EAASwurB,cAAcsmF,EAAe7ojC,SAASpgB,EAAE2K,WAAY,KAAM8ld,OAAQv5d,EAEnF,CC1eA,IAAIq57B,IAA6B,WAC7B,SAASA,IACT,CA4QA,OA1QAA,EAAY/r7B,UAAU0hkC,eAAiB,SAAUnzI,GAE7C,MADa,EAEjB,EAEAxC,EAAY/r7B,UAAU64xB,cAAgB,SAAUrpwB,EAAKrhB,EAASu2jC,EAAWC,EAAU5wpB,EAAYiwpB,EAAWhvkC,GACtG,IAAIwwB,EAOAu+P,EALAv+P,EADArX,EAAQqX,KAAOgK,EAAIhK,GACdrX,EAAQqX,GAAK,aAGbrX,EAAQqX,GAGZu+P,IAAQgwJ,IACThwJ,EAAOxjQ,SAASmxI,gBAAgB,6BAA8B,QAC9DliI,EAAIzO,YAAYgjQ,IAEpB,IAAItpP,EAAO,CACP,GAAMjV,EAAI,EAAKrX,EAAQ5E,EAAEpD,WAAY,EAAKgI,EAAQ3E,EAAErD,WAAY,MAASgI,EAAQN,MAAM1H,WACvF,OAAUgI,EAAQ8pI,OAAO9xI,WAAY,WAAcgI,EAAQ+wR,QAAU,UAAY,SACjF,UAAa,UAAY/wR,EAAQyyZ,MAAQ,KAClCzyZ,EAAQ5E,EAAI4E,EAAQN,MAAQM,EAAQ22hC,QAAU,KAAO32hC,EAAQ3E,EAAI2E,EAAQ8pI,OAAS9pI,EAAQ42hC,QAAU,IAC3G,GAAM52hC,EAAQyg7B,cAAgB,EAAG,GAAMzg7B,EAAQyg7B,cAAgB,EAAG,QAAWzg7B,EAAQwvH,QACrF,aAAc3oI,GAAwB,IAEtCmZ,EAAQswa,QACRhkZ,EAAY,MAAItsB,EAAQswa,OAGvBzpb,IAEDylC,EAHe,kBAGM,QAEzBmqiC,IAAgB7gzB,EAAMtpP,GACtBprC,KAAKw1kC,YAAY9gzB,EAAM51Q,EAASu2jC,EACpC,EAEA34I,EAAY/r7B,UAAU8kkC,sBAAwB,SAAUC,EAAU52jC,GAC9D,IAAI41Q,EAEAtpP,EADJspP,EAAOghzB,EAASlhjC,WAAW04T,eAAepuU,EAAQqX,IAElDiV,EAAO,CACH,GAAMtsB,EAAQqX,GAAI,EAAKrX,EAAQ5E,EAAEpD,WAAY,EAAKgI,EAAQ3E,EAAErD,WAAY,MAASgI,EAAQN,MAAM1H,WAC/F,OAAUgI,EAAQ8pI,OAAO9xI,WAAY,UAAa,UAAYgI,EAAQyyZ,MAAQ,KACvEzyZ,EAAQ5E,EAAI4E,EAAQN,MAAQM,EAAQ22hC,QAAU,KAAO32hC,EAAQ3E,EAAI2E,EAAQ8pI,OAAS9pI,EAAQ42hC,QAAU,IAC3GtmnB,MAAO,6BAEN16J,IACDA,EAAOxjQ,SAASmxI,gBAAgB,6BAA8B,QAC9Dqz6B,EAAShkjC,YAAYgjQ,IAEzB10R,KAAKw1kC,YAAY9gzB,EAAM51Q,GACvBy2jC,IAAgB7gzB,EAAMtpP,EAC1B,EAEAsx5B,EAAY/r7B,UAAUglkC,eAAiB,SAAUxq8B,EAAalqG,GAE1D,OADe20iC,IAAiBzq8B,EAAalqG,EAEjD,EAEAy75B,EAAY/r7B,UAAUws7B,WAAa,SAAUu4I,EAAU52jC,EAAS+2jC,EAAgBlwkC,GAC5E,IAAIwra,EAASjgZ,SAASmxI,gBAAgB,6BAA8B,UACpEriK,KAAKw1kC,YAAYrkqB,EAAQryZ,GACzB,IAAIg3jC,EAAWh3jC,EAAQswa,OAAS,GAC3BympB,IACDC,GAAY,eAEhB,IAAI1qiC,EAAO,CACP,GAAMtsB,EAAQqX,GACd,GAAMrX,EAAQmyZ,QACd,GAAMnyZ,EAAQoyZ,QACd,EAAKpyZ,EAAQ0jQ,OACb,WAAc1jQ,EAAQ+wR,QAAU,UAAY,SAC5C,MAASimyB,EACT,aAAcnwkC,EAAYA,EAAU,cAAgB,IAG7B,KAAvBylC,EAAK,gBAELA,EAHgB,kBAGM,QAE1B+lY,EAAOhra,MAAMi+J,QAAUtlJ,EAAQ+wR,QAAU,QAAU,OACnD0lyB,IAAgBpkqB,EAAQ/lY,GACxBsqiC,EAAShkjC,YAAYy/Y,EACzB,EAEAurhB,EAAY/r7B,UAAU6kkC,YAAc,SAAUr1iC,EAAKh6B,EAAOkvkC,GACtD,GAAIlvkC,EAAM4vkC,oBAAyC1ykC,IAAxB8C,EAAM4vkC,cAA6B,CACvC,SAAf5vkC,EAAMqgF,OACNrgF,EAAMqgF,KAAO,eAEI,SAAjBrgF,EAAMo0vB,SACNp0vB,EAAMo0vB,OAAS,eAEnB,IACI/zqB,EADA042B,EAAY,GAEhB,QAAwB777B,IAApB8C,EAAM+47B,UAENA,GADqB,IAAIH,KACEszI,eAAelskC,EAAM+47B,WAEpD142B,EAAOrgF,EAAMqgF,KACTrgF,EAAMo0vB,QACNp6tB,EAAInL,aAAa,SAAU7uB,EAAMo0vB,aAEXl3vB,IAAtB8C,EAAMipI,aAAmD,OAAtBjpI,EAAMipI,aACzCjvG,EAAInL,aAAa,eAAgB7uB,EAAMipI,YAAYt4H,YAEnDoo7B,GACA/+5B,EAAInL,aAAa,mBAAoBkq6B,EAAUpo7B,YAE/C0vE,GACArmD,EAAInL,aAAa,OAAQwxD,EAEjC,CACJ,EAIAk22B,EAAY/r7B,UAAUqlkC,cAAgB,SAAU/1iC,EAAMg2iC,EAAW9siC,GAC7D,IAAIw7tB,EAAS,IAAI+8L,IAAKu0I,EAAUz3jC,MAAO2qB,EAAW/lC,QAA0B,IAAhB68B,EAAKg/Q,WAC7D/nQ,EAAM,CAAEh9B,EAAG,EAAGC,EAAG,GAKjBild,EAFuB,GAAbn/b,EAAKzhB,MAGf6gd,EAFwB,GAAdp/b,EAAK2oH,OAmBnB,MAhBuB,SAAnB3oH,EAAKukc,UACLpF,EAAS,EAEe,WAAnBn/b,EAAKukc,UAENpF,EADA62mB,EAAUz3jC,MAAQyhB,EAAKzhB,QAAgC,aAAtByhB,EAAKo/hC,cAAqD,SAAtBp/hC,EAAKo/hC,cACjE,EAGa,GAAbp/hC,EAAKzhB,MAGM,UAAnByhB,EAAKukc,YACVpF,EAAuB,EAAbn/b,EAAKzhB,OAEnB04B,EAAIh9B,EApBI,EAoBIkld,GAAU62mB,EAAYA,EAAU/7jC,EAAI,GAChDg9B,EAAI/8B,EApBI,IAoBIkld,EAASslS,EAAO/7mB,OAAS,EAC9B1xG,CACX,EAEAwl5B,EAAY/r7B,UAAU24xB,SAAW,SAAUosS,EAAU52jC,GACjD,IAAIi3G,EAAO7kG,SAASmxI,gBAAgB,6BAA8B,QAClEriK,KAAKw1kC,YAAYz/8B,EAAMj3G,GACvB,IAAI22hC,EAAS32hC,EAAQ5E,EAAI4E,EAAQN,MAAQM,EAAQ22hC,OAC7CC,EAAS52hC,EAAQ3E,EAAI2E,EAAQ8pI,OAAS9pI,EAAQ42hC,OAE9CtqgC,EAAO,CACP,GAAMtsB,EAAQqX,GACd,GAAMrX,EAAQ4nV,WAAWxsV,EAAI4E,EAAQ5E,EACrC,GAAM4E,EAAQ4nV,WAAWvsV,EAAI2E,EAAQ3E,EACrC,GAAM2E,EAAQspV,SAASluV,EAAI4E,EAAQ5E,EACnC,GAAM4E,EAAQspV,SAASjuV,EAAI2E,EAAQ3E,EACnC,OAAU2E,EAAQy7uB,OAClB,eAAgBz7uB,EAAQswH,YAAYt4H,WAAY,QAAWgI,EAAQwvH,QAAQx3H,WAC3E,UAAa,UAAYgI,EAAQyyZ,MAAQ,IAAMkkoB,EAAS,IAAMC,EAAS,IACvE,WAAc52hC,EAAQ+wR,QAAU,UAAY,UAE5C/wR,EAAQswa,QACRhkZ,EAAY,MAAItsB,EAAQswa,OAE5BmmpB,IAAgBx/8B,EAAM3qF,GACtBsqiC,EAAShkjC,YAAYqkG,EACzB,EAEA2m0B,EAAY/r7B,UAAUq/xB,SAAW,SAAU7vwB,EAAKrhB,EAASu2jC,EAAW3wpB,EAAYiwpB,EAAWhvkC,GACvF,IACIuU,EAAItW,KAAKiG,MAAuB,GAAhBjG,KAAKk2B,SAAiB,GACrCqG,EAAIhK,GAAgBjc,EAAEpD,WAC3B,IAGIo/jC,EAOAppgC,EAVA/K,EAAa,GAEjBA,EAAagu+B,IADbhu+B,EAAayt+B,IAAgB1whC,EAAQorB,OAGjCyqiC,IACAuB,EAAgBvB,EAAUznvB,eAAepuU,EAAQqX,GAAK,0BAElD+/iC,EAAc1hjC,WAAWW,YAAY+gjC,GAIzCvB,IACA7ngC,EAAO6ngC,EAAUznvB,eAAepuU,EAAQqX,KAEvC22C,IAAQ43W,IACT53W,EAAO57C,SAASmxI,gBAAgB,6BAA8B,QAC9DliI,EAAIzO,YAAYo7C,IAEpB9sE,KAAK2ykC,WAAW7lgC,EAAMhuD,EAASijD,GAC/B,IAAI32B,EAAO,CACP,GAAMtsB,EAAQqX,GAAI,UAAa,UAAYrX,EAAQyyZ,MAAQ,KAAOzyZ,EAAQ5E,EAAI4E,EAAQN,MAAQM,EAAQ22hC,QAAU,KACzG32hC,EAAQ3E,EAAI2E,EAAQ8pI,OAAS9pI,EAAQ42hC,QADb,cAC6C52hC,EAAQ5E,EAAK,IAAO4E,EAAQ3E,EAAK,IAC7G,WAAc2E,EAAQ+wR,QAAU,UAAY,SAAU,QAAW/wR,EAAQwvH,QACzE,aAAc3oI,GAAwB,IAEtCmZ,EAAQswa,QACRhkZ,EAAY,MAAItsB,EAAQswa,OAE5BmmpB,IAAgBzogC,EAAM1hC,GACtBprC,KAAKw1kC,YAAY1ogC,EAAMhuD,EAASu2jC,EACpC,EAEA34I,EAAY/r7B,UAAUgikC,WAAa,SAAUxyiC,EAAKrhB,EAASijD,GACvD,IAAI8+kB,EACAC,EACAC,EACAC,EACA9moB,EACAC,EACA/W,EACA+I,EACA6/0B,EAAWjqxB,EACXvgE,EAAI,GACR,IAAK0Y,EAAI,EAAGC,EAAI,EAAGhO,EAAI,EAAG/I,EAAS4o1B,EAAS5o1B,OAAQ+I,EAAI/I,IAAU+I,EAAG,CACjE,IACIyg1B,EADMZ,EAASz/zB,SAASpgB,EAAE2K,WAAY,KAEtC4gB,EAAOk1zB,EAAQ5kV,QAmBnB,OAlBI,OAAQ4kV,IACR/rM,EAAK+rM,EAAQ/rM,IAEb,OAAQ+rM,IACR7rM,EAAK6rM,EAAQ7rM,IAEb,OAAQ6rM,IACR9rM,EAAK8rM,EAAQ9rM,IAEb,OAAQ8rM,IACR5rM,EAAK4rM,EAAQ5rM,IAEb,MAAO4rM,IACP1y0B,EAAI0y0B,EAAQ1y0B,GAEZ,MAAO0y0B,IACPzy0B,EAAIyy0B,EAAQzy0B,GAERud,GACJ,IAAK,IACDl2B,EAAIA,EAAI,IAAM0Y,EAAEpD,WAAa,IAAMqD,EAAErD,WAAa,IAClD,MACJ,IAAK,IACDtV,EAAIA,EAAI,IAAM0Y,EAAEpD,WAAa,IAAMqD,EAAErD,WAAa,IAClD,MACJ,IAAK,IACDtV,EAAIA,EAAI,IAAMq/oB,EAAG/poB,WAAa,IAAMgqoB,EAAGhqoB,WAAa,IAAMiqoB,EAAGjqoB,WAAa,IAAMkqoB,EAAGlqoB,WAAa,IAChGtV,GAAK0Y,EAAEpD,WAAa,IAAMqD,EAAErD,WAAa,IACzC,MACJ,IAAK,IACDtV,EAAIA,EAAI,IAAMq/oB,EAAG/poB,WAAa,IAAMgqoB,EAAGhqoB,WAAa,IAAMoD,EAAEpD,WAAa,IAAMqD,EAAErD,WAAa,IAC9F,MACJ,IAAK,IACDtV,EAAIA,EAAI,IAAMor1B,EAAQgjN,GAAG94hC,WAAa,IAAM810B,EAAQijN,GAAG/4hC,WAAa,IAAM810B,EAAQr7a,MAAMz6Z,WAAa,IACrGtV,GAAKor1B,EAAQkjN,SAASh5hC,WAAa,IAAM810B,EAAQ1ohB,MAAQ,IAAMhqT,EAAEpD,WAAa,IAAMqD,EAAErD,WAAa,IACnG,MACJ,IAAK,IACL,IAAK,IACDtV,GAAIA,KAGhB,CACA2+B,EAAInL,aAAa,IAAKxzB,EAC1B,EACOk77B,CACX,CA/QiC,GAkR1B,SAAS64I,IAAgBp1iC,EAAK70B,GAEjC,IADA,IAAI/G,EAAO9E,OAAO8E,KAAK+G,GACda,EAAI,EAAGA,EAAI5H,EAAKnB,OAAQ+I,IAC7Bg0B,EAAInL,aAAazwB,EAAKgoB,SAASpgB,EAAE2K,WAAY,KAAMxL,EAAW/G,EAAKgoB,SAASpgB,EAAE2K,WAAY,MAElG,CAEO,SAAS8+jC,IAAiBzq8B,EAAalqG,GAC1C,IAAI9rB,EAAU+b,SAASmxI,gBAAgB,6BAA8Bl3B,GAErE,OADAoq8B,IAAgBpgkC,EAAS8rB,GAClB9rB,CACX,CCzRO,SAASghkC,IAAmBxxU,EAAQyxU,EAAaC,EAAO5pjC,EAAOw8gC,GAClE,IAAI35c,EAAawwe,IAAkB,MAAO,CACtC,GAAM72B,EAAU9zhC,QAAQghB,GAAK1J,EAAQ,uBACrC,MAAS,SAAWk4uB,EAAOnmvB,MAAQ,aAAemmvB,EAAO/7mB,OAAS,MAAQwt7B,IAE9E,IAAKvW,IAAkBvwe,EAAWn5jB,IAAK,CACnC,IAAIymiB,EAAcqse,EAAUgzB,WAAWj1xB,WAAW,YAAcv6Q,GAC5D6pjC,EAAY15gB,EAAYnoS,wBACxB8hzB,EA4BL,SAAmBpgjC,EAAI3X,EAAOoqI,GACjC,IAAIo0yB,EAAS9r6B,SAASmxI,gBAAgB,6BAA8B,OAEpE,OADAkz6B,IAAgBv4I,EAAQ,CAAE,GAAM7m6B,EAAI,MAAS3X,EAAO,OAAUoqI,IACvDo0yB,CACX,CAhC4BD,CAAUksG,EAAU9zhC,QAAQghB,GAAK1J,EAAQ,sBAAuB6pjC,EAAU93jC,MAAO83jC,EAAU1t7B,QAC/G2t7B,EAAcvhjC,aAAa,QAAS,kBAAoBvI,GACxD8pjC,EAAcvhjC,aAAa,QAAS,wBACpCi0gC,EAAUutC,gBAAkBZ,IAAiB,IAAK,CAAE,GAAM3sC,EAAU9zhC,QAAQghB,GAAK1J,EAAQ,oBACzFw8gC,EAAUutC,gBAAgBxhjC,aAAa,QAAS,0BAChDuhjC,EAAc7kjC,YAAYu3gC,EAAUutC,iBACpClnf,EAAW59jB,YAAY6kjC,GACvBjnf,EAAWnplB,MAAMqY,MAAQ83jC,EAAU93jC,MAAQ,KAC3C8wkB,EAAWnplB,MAAMyiJ,OAAS0t7B,EAAU1t7B,OAAS,KACzCg0a,EACAA,EAAYjoiB,aAAa26jB,EAAY1yB,EAAYzzhB,WAAW,IAG5DktiC,EAAMxgzB,cAAcnkQ,YAAY49jB,GAEpC,IAAImnf,EAAcb,IAAiB,IAAK,CAAE,GAAM3sC,EAAU9zhC,QAAQghB,GAAK1J,EAAQ,qBAC/Ew8gC,EAAUutC,gBAAgB9kjC,YAAY+kjC,GACtClB,IAAgBgB,EAAe,CAAEpwkC,MAAO,wBAC5C,CACA8iiC,EAAUgzB,WAAWtyB,mBAAmBr6c,EAAY7ikB,EACxD,CClCA,IAAIiqjC,IAAmC,WAOnC,SAASA,EAAkBztC,EAAWC,GAClClpiC,KAAKipiC,UAAYA,EACjBjpiC,KAAKkpiC,cAAgBA,CACzB,CAiDA,OA5CAwtC,EAAkB/lkC,UAAUo3iC,kBAAoB,WAC5C,IAAI4uB,EAAiBzljC,SAAS4hU,uBAAuB9yV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,iBACjF,GAAIwgjC,IACA32kC,KAAKgojC,mBAAqB2uB,EAAe,GACrC32kC,KAAKgojC,mBAAmBlijC,UAAY9F,KAAKgojC,mBAAmBlijC,SAAS1C,OAAS,GAAG,CACjF,IAAI+gR,EAAcnkR,KAAKgojC,mBAAmBlijC,SAAS,GACnDq+Q,EAAYpjR,UAAYojR,EAAYpjR,UAAZojR,oBAC5B,CAER,EAQAuyzB,EAAkB/lkC,UAAUmyH,KAAO,SAAUorB,EAAKvqB,EAAMt7H,GACpDrI,KAAKipiC,UAAU8E,gBAAgB13oB,kBAAkB,kBAAmBnoQ,EAAKvqB,EAC7E,EAKA+y8B,EAAkB/lkC,UAAU6qI,MAAQ,WAChCx7I,KAAKipiC,UAAU8E,gBAAgB13oB,kBAAkB,mBACrD,EAKAqgrB,EAAkB/lkC,UAAUymI,QAAU,WAClCp3I,KAAKwnhB,eAAiB,GACtBxnhB,KAAKgojC,mBAAqB,IAC9B,EAEA0uB,EAAkB/lkC,UAAUq6iC,eAAiB,SAAUpsW,GACvB,kBAAjBA,EACP5+sB,KAAKkpiC,cAAc8hB,eAAepsW,GAGlC5+sB,KAAKkpiC,cAAc8hB,eAAepsW,EAAa,GAEvD,EACO83X,CACX,CA5DuC,GCJnCxrqB,IAAgB,CAAC,EACjByB,IAAe,KACfC,IAAe,KACfzB,IAAiB,GACjBE,IAAiB,GACjBE,IAAkB,GAClBC,IAAmB,GACnBE,IAAe,cACfC,IAAe,cACfC,IAAmB,kBACnBE,IAAiB,gBACjBG,IAAe,mBACfC,IAAgB,oBAChBC,IAAgB,oBAChByqqB,IAAe,kBACfC,IAAa,gBACbzqqB,IAAuB,uBACvBC,IAAe,iBACfC,IAAiB,kBACjBC,IAAiB,gBACjBC,IAAc,aACdC,IAAgB,eAChBC,IAAmB,kBA+ChB,SAASG,IAAc5zZ,EAAM2kY,GAChC,GAAK3kY,EAAK5Q,OAAV,CAGA,IAAIm6Q,EACAq7H,EAAe9xE,GAAkB6xE,GAAiD98Y,GAAxB88Y,EAC1D9wY,EAkaR,SAAgCzE,EAAQw1Y,GACpC,IAAIivB,EAAmBjvB,EAAY,MAAO,CAAC,GAC3CivB,EAAiB5kJ,UAAU90P,IAAIi5Y,KAC/B,IAAIU,EAAwBlvB,EAAY,MAAO,CAAC,GAIhD,OAHAkvB,EAAsB7kJ,UAAU90P,IAAIk5Y,KACpCjka,EAAOqpB,YAAYo7Y,GACnBA,EAAiBp7Y,YAAYq7Y,GACtB,CAAEzwY,KAAMwwY,EAAkBgqqB,UAAW/pqB,EAChD,CA1aoBgqqB,CAAuB99jC,EAAK5Q,OAAQw1Y,GAIpD,GAHK9xE,GAAkB9yT,EAAK22V,WACxB9iW,EAAUwvB,KAAK4rP,UAAU90P,IAAIna,EAAK22V,UAEjC7jC,GAAkB9yT,EAAKsqB,WAAcwoS,GAAkB4gG,KAKvD,CACD,IAAIO,EAASnhG,GAAkB9yT,EAAKrM,MA8H5C,SAAkBE,GACd,IAAIoga,EAAQl8Y,OAAOwhQ,iBAAiB1lR,EAAW,UAAU6lV,iBAAiB,WAC1E,OAAOu6E,EAAM78Z,QAAQ,SAAU,GACnC,CAjIgE88Z,CAASrga,EAAUwvB,MAA/BrjB,EAAKrM,KAEjD41Q,EAmUR,SAAyBhkQ,EAAO0uZ,GAC5B,IAAI7uP,EACJ,OAAQ6uP,GACJ,IAAK,WACD7uP,EAAc8sP,IACd,MACJ,IAAK,SACD9sP,EAAcgtP,IACd,MACJ,IAAK,aACDhtP,EAAcmtP,IACd,MACJ,QACIntP,EAAcktP,IAGtB,OADA/sZ,EAAQA,EAAQkyB,WAAWlyB,EAAQ,IAAM6/J,EACxB,cAAV6uP,EAAwB1uZ,EAAQA,EAAQ,CACnD,CApViB4uZ,CADIrhG,GAAkB9yT,EAAKuF,YAAsBnb,EAAb4V,EAAKuF,MAClB0uZ,GAChCG,IAASH,EAAOpga,EAAUwvB,KAAMkmP,EAAQq7H,GACnC9xE,GAAkB9yT,EAAKm1R,QAapC,SAAqBthS,EAAWshS,EAAOyvG,GACnC,IAAIyvB,EAAWzvB,EAAY,MAAO,CAAC,GACnCyvB,EAASplJ,UAAU90P,IAAIq5Y,KACvBa,EAAS1jY,YAAcwkQ,EACvBthS,EAAU4kB,YAAY47Y,EAE1B,CAlBYC,CAAYzga,EAAUgqkC,UAAW79jC,EAAKm1R,MAAOyvG,EAErD,KAb2E,CACvE,IAAIt6W,EAAYwoS,GAAkB9yT,EAAKsqB,UAA4BopY,IAAhB1zZ,EAAKsqB,SACxDz2B,EAAUwvB,KAAK4rP,UAAU90P,IAAIs5Y,KA6TrC,SAAwB5/Z,EAAWy2B,EAAUqsU,GACpC7jC,GAAkB6jC,IACnB9iW,EAAUo7Q,UAAU90P,IAAIw8U,GAE5B,IAAIoiE,EAAQlla,EAAU8sB,cAAc,oBACpCo4Y,EAAM9oY,UAAY3F,CACtB,CAlUQiqY,CAAe1ga,EAAUwvB,KAAMiH,EAAUqpY,IAC7C,CAUA9/Z,EAAUwvB,KAAK4rP,UAAU90P,IAAIu4Y,KAC7B7+Z,EAAY,IAtBZ,CAuBJ,CA+HA,SAASuga,IAASH,EAAOpga,EAAW01Q,EAAQq7H,GACxC,IAAI4vB,EAAiB3ga,EAAU8sB,cAAc,IAAM0yY,KAC/CnsY,EAAMstY,EAAe7zY,cAAc,OAIvC,OAHKmyS,GAAkB5rS,IACnBstY,EAAet4Y,YAAYgL,GAEvB+sY,GACJ,IAAK,YAlHb,SAA+Bpga,EAAW01Q,EAAQq7H,GAC9C,IAAI5lD,EAAW++uB,MACf9rqB,IAAc,GAAKjzE,GAAY,CAAE01E,QAAS,EAAG/ga,KAAM,WAAY41Q,OAAQA,GACvEy0zB,IAAsBnqkC,EAAWmrV,EAAU4lD,EAAa+tB,KACxDsrqB,IAAuB10zB,EAAQ11Q,EAAW,WAAY8+Z,IAC1D,CA8GYkC,CAAsBL,EAAgBjrJ,EAAQq7H,GAC9C,MACJ,IAAK,UA3Cb,SAA6B/wY,EAAW01Q,EAAQq7H,GAC5C,IAAI5lD,EAAW++uB,MACf9rqB,IAAc,GAAKjzE,GAAY,CAAE01E,QAAS,EAAG/ga,KAAM,SAAU41Q,OAAQA,GACrE20zB,IAAoBrqkC,EAAWmrV,EAAU6zE,IAAgBjuB,GACzDu5rB,IAAsB50zB,EAAQ11Q,EAAWg/Z,IAC7C,CAuCYoC,CAAoBT,EAAgBjrJ,EAAQq7H,GAC5C,MACJ,IAAK,aA0Bb,SAAgC4vB,EAAgBjrJ,GAC5C,IAAIy1E,EAAW++uB,MACf9rqB,IAAc,GAAKjzE,GAAY,CAAE01E,QAAS,EAAG/ga,KAAM,YAAa41Q,OAAQA,GAU5E,SAAgCirJ,EAAgBx1E,GAC5C,IAAIm2E,EAAUl9Y,SAASmxI,gBAAgB,6BAA8B,OACjEgsQ,EAAe,GACfC,EAAQ,GACRC,EAAgB,EACpBH,EAAQp5Y,aAAa,KAAMijU,GAC3Bm2E,EAAQp5Y,aAAa,QAASi3Y,KAC9BmC,EAAQp5Y,aAAa,UAAW,OAASq5Y,EAAe,IAAMA,GAC9DZ,EAAe94Y,aAAay5Y,EAASX,EAAe/4Y,YACpD,IAAK,IAAIa,EAAO,EAAGA,GAAQ,EAAGA,IAAQ,CAClC,IAAIi5Y,EAAat9Y,SAASmxI,gBAAgB,6BAA8B,UACxEmsQ,EAAWx5Y,aAAa,QAASu3Y,IAAiB,IAAMh3Y,GACxDi5Y,EAAWx5Y,aAAa,IAAKu5Y,EAAgB,IAC7CC,EAAWx5Y,aAAa,YAAa,aAAes5Y,EAAQ,IAAMA,EAAQ,KAC1EF,EAAQ18Y,YAAY88Y,EACxB,CACJ,CAzBI6oqB,CAAuB5pqB,EAAgBx1E,GA+B3C,SAAiCw1E,EAAgBjrJ,GAC7C,IAAIriP,EAAMstY,EAAe7zY,cAAc,wBACvCuG,EAAIh6B,MAAMqY,MAAQ2hB,EAAIh6B,MAAMyiJ,OAAS45H,EAAS,KAK9C,IAJA,IAAItoQ,EAAI,EACJC,EAAI,EACJu0Z,EAAM,GACNC,EAAW,GACNp5Y,EAAO,EAAGA,GAAQ,EAAGA,IAAQ,CAClC,IAAI2gB,EAAQ04X,IAAgB10Z,EAAGC,EAAGu0Z,EAAKC,GACnCE,EAAY1uY,EAAIvG,cAAc,IAAM2yY,IAAiB,IAAMh3Y,GAC/Ds5Y,EAAU75Y,aAAa,KAAMkhB,EAAMh8B,EAAI,IACvC20Z,EAAU75Y,aAAa,KAAMkhB,EAAM/7B,EAAI,IACvCw0Z,EAAWA,GAAY,IAAM,EAAIA,EACjCA,GAAsB,EAC1B,CACJ,CA7CI2oqB,CAAwB7pqB,EAAgBjrJ,EAC5C,CA9BYusJ,CAAuBtB,EAAgBjrJ,GACvC,MACJ,IAAK,gBArCb,SAAmC11Q,EAAW01Q,EAAQq7H,GAClD,IAAI5lD,EAAW++uB,MACf9rqB,IAAc,GAAKjzE,GAAY,CAAE01E,QAAS,EAAG/ga,KAAM,eAAgB41Q,OAAQA,GAC3E20zB,IAAoBrqkC,EAAWmrV,EAAUm0E,IAAsBvuB,GAC/Du5rB,IAAsB50zB,EAAQ11Q,EAAWs/Z,IAC7C,CAiCY4C,CAA0BvB,EAAgBjrJ,EAAQq7H,GAClD,MACJ,IAAK,cAlHb,SAAiC/wY,EAAW01Q,EAAQq7H,GAChD,IAAI5lD,EAAW++uB,MACf9rqB,IAAc,GAAKjzE,GAAY,CAAE01E,QAAS,EAAG/ga,KAAM,aAAc41Q,OAAQA,GACzEy0zB,IAAsBnqkC,EAAWmrV,EAAU4lD,EAAaquB,KACxDgrqB,IAAuB10zB,EAAQ11Q,EAAW,aAAco/Z,IAC5D,CA8GY+C,CAAwBxB,EAAgBjrJ,EAAQq7H,GAChD,MACJ,IAAK,cAzGb,SAAiC/wY,EAAW01Q,EAAQq7H,GAChD,IAAI5lD,EAAW++uB,MACf9rqB,IAAc,GAAKjzE,GAAY,CAAE01E,QAAS,EAAG/ga,KAAM,aAAc41Q,OAAQA,GACzEy0zB,IAAsBnqkC,EAAWmrV,EAAU4lD,EAAasuB,KACxD+qqB,IAAuB10zB,EAAQ11Q,EAAW,aAAcq/Z,IAC5D,CAqGY+C,CAAwBzB,EAAgBjrJ,EAAQq7H,GAChD,MACJ,IAAK,YAhGb,SAA+B/wY,EAAW01Q,EAAQq7H,GAC9C,IAAI5lD,EAAW++uB,MACf9rqB,IAAc,GAAKjzE,GAAY,CAAE01E,QAAS,EAAG/ga,KAAM,WAAY41Q,OAAQA,GACvE20zB,IAAoBrqkC,EAAWmrV,EAAU2+uB,IAAc/4rB,GACvDu5rB,IAAsB50zB,EAAQ11Q,EAAW8pkC,IAC7C,CA4FYznqB,CAAsB1B,EAAgBjrJ,EAAQq7H,GAC9C,MACJ,IAAK,UAvFb,SAA6B/wY,EAAW01Q,EAAQq7H,GAC5C,IAAI5lD,EAAW++uB,MACf9rqB,IAAc,GAAKjzE,GAAY,CAAE01E,QAAS,EAAG/ga,KAAM,SAAU41Q,OAAQA,GACrE20zB,IAAoBrqkC,EAAWmrV,EAAU4+uB,IAAYh5rB,GACrDu5rB,IAAsB50zB,EAAQ11Q,EAAW+pkC,IAC7C,CAmFYU,CAAoB9pqB,EAAgBjrJ,EAAQq7H,GAGxD,CA8DA,SAASuxB,IAAej+E,EAAOxrD,GAC3B,IAAI0pI,EAAS,GACTn5X,EAAQi7S,EACR/3S,EAAMusP,EACNzpQ,GAAY,EACZtR,EAAQ,EA8BZ,OAxBA,SAAS0kZ,EAAWnja,GAChBkja,EAAOjja,KAAKD,IACRA,IAAMitC,GAAiB,IAAVxuB,KACTze,GAAK+pC,GAAS/pC,EAAI,IAAM+vB,EACxB/vB,EAAIukC,YAAYvkC,EAAI,IAAKu2G,QAAQ,IAEtB,IAANv2G,GACLA,EAAI,EACJA,EAAIukC,YAAYvkC,EAAI,IAAKu2G,QAAQ,IACjCxmF,GAAY,GAEP/vB,EAAI,GAAK+vB,EAEJ,KADV/vB,EAAIukC,YAAYvkC,EAAI,IAAKu2G,QAAQ,OAE7BxmF,GAAY,GAGX/vB,GAAK,IAAM+vB,IAChB/vB,EAAIukC,YAAYvkC,EAAI,IAAKu2G,QAAQ,OAEnC93F,EACF0kZ,EAAWnja,GAEnB,CA5BAmja,CAAWp5X,GA6BJm5X,CACX,CA6FA,SAAS2nqB,MAGL,IAFA,IAAIl9iC,EAAS,GACTy1Y,EAAU,iEACLpja,EAAI,EAAGA,EAAI,EAAGA,IACnB2tB,GAAUy1Y,EAAQprW,OAAOvgE,KAAKiG,MAAsB0la,GAAhB3ra,KAAKk2B,WAE7C,OAAOA,CACX,CAQA,SAASq9iC,IAAoB3nqB,EAAUv3E,EAAUw3E,EAAY5xB,GACzD,IAAI6xB,EAAYx+Y,SAASmxI,gBAAgB,6BAA8B,OACvEqtQ,EAAU16Y,aAAa,KAAMijU,GAC7By3E,EAAU16Y,aAAa,QAASy6Y,GAChC,IAAIE,EAAmBz+Y,SAASmxI,gBAAgB,6BAA8B,QAC9EstQ,EAAiB36Y,aAAa,QAASu3Y,KACvC,IAAIqD,EAAkB1+Y,SAASmxI,gBAAgB,6BAA8B,QAC7EutQ,EAAgB56Y,aAAa,QAASw3Y,KACtCgD,EAAS76Y,aAAa+6Y,EAAWF,EAAS96Y,YAC1Cg7Y,EAAUh+Y,YAAYi+Y,GACtBD,EAAUh+Y,YAAYk+Y,EAC1B,CAQA,SAASqnqB,IAAsBxpqB,EAAgBx1E,EAAU4lD,EAAagyB,GAClE,IAAIC,EAAc5+Y,SAASmxI,gBAAgB,6BAA8B,OACzEytQ,EAAY96Y,aAAa,QAAS66Y,GAClCC,EAAY96Y,aAAa,KAAMijU,GAC/B,IAAI83E,EAAgB7+Y,SAASmxI,gBAAgB,6BAA8B,QAC3E0tQ,EAAc/6Y,aAAa,QAASu3Y,KACpCkB,EAAe94Y,aAAam7Y,EAAarC,EAAe/4Y,YACxDo7Y,EAAYp+Y,YAAYq+Y,EAC5B,CAmBA,SAASC,IAAgBC,IAkBzB,SAAsB/5X,EAAOkD,EAAK82S,EAAQj8O,EAAUrpF,EAAOqiB,EAAKgjY,GAC5D,IAAI95Y,IAAO85Y,EAAYC,WAAWD,EAAYh4E,UAAUk4E,WACpDp5P,GAAY,IAAIt1K,MAAOC,UACvBwyF,EAAS96C,EAAMlD,EACfu8S,GA4DS7wV,EA5DiE,EAAtDqua,EAAYC,WAAWD,EAAYh4E,UAAUz1E,OAAc,GA6DtE9xO,WAAW9uC,IA5DpBwua,EAAaC,IAAc59E,GAC3B69E,GAAU,IAAML,EAAYC,WAAWD,EAAYh4E,UAAUrtU,OAAS,GA0D9E,IAAiBhpB,EApDb,SAAS41kC,EAAavnqB,GAClB,IAAIl+M,EAAcnuN,KAAKqpC,IAAI,EAAGrpC,KAAKgmD,KAAI,IAAInoD,MAAOC,UAAYq1K,EAAW9iE,IACzEu8T,EAAWtgF,EAAOn+H,EAAa77K,EAAOg+C,EAAQ+f,GAAWg8T,EAAYnja,WACjEqpB,IAAO85Y,EAAYC,WAAWD,EAAYh4E,UAAUk4E,YAAcp+M,EAAc99G,EAChFi3T,IAAc+E,EAAYh4E,UAAU01E,QAAUv3Y,WAAWohjC,EAAa33kC,KAAK,KAAMowa,GAAc,GAG/FD,IAAgBC,EAExB,CAMA,SAASO,EAAW5ua,EAAOkL,GACvB,IAAMi/T,GAAkBj/T,EAAU8sB,cAAc,0BACvCmyS,GAAkBj/T,EAAU8sB,cAAc,uBAAuBA,cAAc,uBAAyB,CAC7G,IACIkzC,EADMhgE,EAAU8sB,cAAc,uBACnBA,cAAc,sBAC7BkzC,EAAK93C,aAAa,oBAAqBy7Y,IAAch+E,EAAU29E,EAAYxua,EAAOqrC,GAAO,IACzF6/B,EAAK93C,aAAa,YAAa,UAAas7Y,EAAU,IAAM79E,EAAW,EAAI,IAAMA,EAAW,EAAI,IACpG,CACJ,CA5BA+kvB,EAAavnqB,EA6BjB,CAjDIS,CAJY,EACF,IAGeC,IAFV,KAEmCV,EAAYC,WAAWD,EAAYh4E,UAAUrtU,MADrF,GACiGqlZ,GAC3GA,EAAYC,WAAWD,EAAYh4E,UAAUrtU,QAAUqlZ,EAAYC,WAAWD,EAAYh4E,UAAUrtU,MAAQ,CAChH,CAuDA,SAASssjC,IAAuB10zB,EAAQ11Q,EAAWF,EAAMija,GACrD,IAAIp9E,EAAoB,EAATjwE,EACXriP,EAAMrzB,EAAU8sB,cAAc,OAASi2Y,GACvC/iW,EAAO3sC,EAAIvG,cAAc,sBACzBw2Y,EAAaC,IAAc59E,GAC3BtpD,EAAmBspD,EAAW,EAAK,KACvCtyT,EAAInL,aAAa,UAAW,OAASy9T,EAAW,IAAMA,GACtDtyT,EAAIh6B,MAAMqY,MAAQ2hB,EAAIh6B,MAAMyiJ,OAAS6pM,EAAW,KAChDtyT,EAAIh6B,MAAMgjS,gBAAkBA,EAAkB,IAAMA,EAAkB,IAAMA,EAC5Er8N,EAAK93C,aAAa,IAoBtB,SAAiBy9T,EAAU29E,GACvB,IAAI5tJ,EAASiwE,EAAW,EACpB/0U,EAAS0yZ,EAAa,EAC1B,MAAO,IAAM5tJ,EAAS,IAAM9kQ,EACtB,KAAO8kQ,EAAS9kQ,GAAU,KAAO8kQ,EAAS9kQ,GAAU,UAAYA,EAAS,IAAM8kQ,CACzF,CAzB2BouJ,CAAQn+E,EAAU29E,IAC5B,aAATxja,IACAkgE,EAAK93C,aAAa,eAAgBo7Y,EAAa,IAC/CtjW,EAAK93C,aAAa,oBAAsBy9T,EAAW29E,GAAcxsa,KAAKita,GAAK,IAAQ,IACnF/jW,EAAK93C,aAAa,oBAAqBy7Y,IAAch+E,EAAU29E,EAAY,EAAG,IAAM,IAE5F,CAwBA,SAASC,IAAc59E,GACnB,MAAO,GAAWA,CACtB,CAQA,SAASg+E,IAAch+E,EAAU29E,EAAYxua,EAAOqrC,GAChD,OAAQwlT,EAAW29E,GAAcxsa,KAAKita,IAAO,EAAK5jY,EAAO,IAAQrrC,EAAQ,IAC7E,CAQA,SAAS+ua,IAAcjnX,EAASxT,EAAOg+C,EAAQ+f,GAC3C,IAAIpyF,GAAa6nC,GAAWuqD,GAAYvqD,EACpConX,EAAYjvZ,EAAY6nC,EAC5B,OAAOxT,EAAQg+C,GAAU,EAAI48U,EAAYjvZ,GAAa,GAAKA,EAAYA,EAAY,GAAKivZ,EAC5F,CAOA,SAASsmqB,IAAsB50zB,EAAQuuJ,EAAeC,GAClD,IAAIC,EAAUzuJ,EACV0uJ,EAAU1uJ,EACViwE,EAAoB,EAATjwE,EAGXriP,EAAM4wY,EAAcn3Y,cAAc,IAAMo3Y,GACxCG,EAAShxY,EAAIvG,cAAc,kBAC3BkzC,EAAO3sC,EAAIvG,cAAc,eACzBuvQ,EAAmBspD,EAAW,EAAK,KACvC0+E,EAAOn8Y,aAAa,IA2CxB,SAAsB9a,EAAGC,EAAGqoQ,GACxB,IAAIhhR,EAAI,CACJ,IAAK0Y,EAAGC,EACR,KAAMqoQ,EAAQ,EACd,IAAKA,EAAQA,EAAQ,EAAG,EAAG,EAAY,EAATA,EAAY,EAC1C,IAAKA,EAAQA,EAAQ,EAAG,EAAG,EAAa,GAATA,EAAY,GAC7Cx8Q,KAAK,KACP,OAAOxE,CACX,CAnD6B4va,CAAaH,EAASC,EAAS1uJ,IACxD11M,EAAK93C,aAAa,IA2BtB,SAAmB9a,EAAGC,EAAGqoQ,EAAQmsJ,EAAU0C,GACvC,IAAIn7X,EAAQ04X,IAAgB10Z,EAAGC,EAAGqoQ,EAAQ6uJ,GACtCj4X,EAAMw1X,IAAgB10Z,EAAGC,EAAGqoQ,EAAQmsJ,GACpCnta,EAAI,CACJ,IAAK00C,EAAMh8B,EAAGg8B,EAAM/7B,EACpB,IAAKqoQ,EAAQA,EAAQ,EAAG,EAAG,EAAGppO,EAAIl/B,EAAGk/B,EAAIj/B,GAC3CnU,KAAK,KACP,OAAOxE,CACX,CAnC2B8va,CAAUL,EAASC,EAAS1uJ,EAPpC,IACF,KAObriP,EAAInL,aAAa,UAAW,OAASy9T,EAAW,IAAMA,GACtDtyT,EAAIh6B,MAAMgjS,gBAAkBA,EAAkB,IAAMA,EAAkB,IAAMA,EAC5EhpQ,EAAIh6B,MAAMqY,MAAQ2hB,EAAIh6B,MAAMyiJ,OAAS6pM,EAAW,IACpD,CAQA,SAASm8E,IAAgBqC,EAASC,EAAS1uJ,EAAQ+uJ,GAC/C,IAAIC,GAAWD,EAAQ,IAAM3ta,KAAKita,GAAK,IACvC,MAAO,CACH32Z,EAAG+2Z,EAAWzuJ,EAAS5+Q,KAAK6ta,IAAID,GAChCr3Z,EAAG+2Z,EAAW1uJ,EAAS5+Q,KAAK8ta,IAAIF,GAExC,CAuCO,SAASG,IAAY7ka,GACxB8ka,IAAgB9ka,GAAW,GAC3BA,EAAY,IAChB,CAMA,SAAS8ka,IAAgB9ka,EAAW+ka,GAChC,IAAIC,EAKJ,GAJIhla,IACAgla,EAAchla,EAAUo7Q,UAAUh1P,SAASm5Y,KAAgBv/Z,EACvDA,EAAU8sB,cAAc,IAAMyyY,MAElCv/Z,GAAagla,EAAa,CAC1B,IAAIE,EAAQF,EAAYl4Y,cAAc,IAAM0yY,KAI5C,GAFgBuF,GAAUC,EAAY5pJ,UAAUh1P,SAASw5Y,OAAsBoF,EAAY5pJ,UAAUh1P,SAASy4Y,MACzGmG,EAAY5pJ,UAAUh1P,SAASw5Y,OAAsBoF,EAAY5pJ,UAAUh1P,SAASw4Y,KAC1E,CACX,IAAIuG,EAASH,EAAYl4Y,cAAc,OACvC,GAAImyS,GAAkBkmG,GAClB,OAEJ,IAAI97Y,EAAK87Y,EAAO3/Y,aAAa,MAE7B,OADA44Y,IAAc,GAAK/0Y,GAAI+7Y,WAAaL,EAC5B3G,IAAc,GAAK/0Y,GAAIvpB,MAC3B,IAAK,WAEDila,EAASx7Y,aAAa60Y,IAAc/0Y,GAAIw3Y,SAjjB5D,SAAyB7ga,EAAWmrV,EAAUz1E,GAC1C,IAAI2vJ,EAAe,CAAC,EAEpBjH,IAAc,GAAKjzE,GAAU01E,QAAU,EACvCwE,EAAa,GAAKl6E,GAgQtB,SAAyB9hU,EAAIqsP,GACzB,MAAO,CACHA,OAAQA,EACR53P,MAnQ4D,EAoQ5DulZ,WApQ+D,EAsQvE,CAtQkCiC,CAAgBn6E,EAAUz1E,GAExDwtJ,IADkB,CAAE/3E,SAAUA,EAAUnrV,UAAWA,EAAWoja,WAAYiC,EAAcE,WAHvE,GAKrB,CA0iBuEC,CAAgBN,EAAO77Y,EAAI+0Y,IAAc/0Y,GAAIqsP,QAChG,MACJ,IAAK,YAEDqvJ,EAASx7Y,aAAa60Y,IAAc/0Y,GAAIw3Y,SA/X5D,SAA0BF,GAGtB,IAFA,IACIt3Y,EADMs3Y,EAAe7zY,cAAc,wBAC1BtH,aAAa,MACjBnmB,EAAI,EAAGA,GAAK,EAAGA,IAGpBoma,EAFiB9E,EAAe36E,uBAAuB,kBAC5C,IAAN3mV,EAAU,EAAIA,IAAI,GACHA,EAAGA,EAAGija,IAAejja,EAAGA,GAAIgqB,GAUpD,SAASo8Y,EAASpB,EAAQj7X,EAAOkD,EAAKi2X,EAAQl5Y,GAC1C,IAAIvL,EAAQ,GAMZ,SAAS6sjC,EAAYj1zB,GACb0oJ,IAAc,GAAK/0Y,GAAI+7Y,cACrBtnZ,EACFumZ,EAAOn8Y,aAAa,IAAKwtP,EAAS,IAC9B53P,GAASykZ,EAAOjsa,SAChBwnB,EAAQ,GAEZsgZ,IAAc,GAAK/0Y,GAAIw3Y,QAAUv3Y,WAAWqhjC,EAAY53kC,KAAK,KAAMwva,EAAO9iZ,SAAS3B,EAAM9T,WAAY,MAAO,IAEpH,CAdA2gkC,CAAYvhiC,EAehB,CACJ,CA6VuEu8X,CAAiBT,GAGhF,CAEAH,EAAS3pJ,GAAU4pJ,EAAa,CAACnG,KAAe,CAACD,MAAiBxjJ,GAAU4pJ,EAAa,CAACpG,KAAe,CAACC,MAC1G7+Z,EAAY,IAChB,CACJ,CAOO,SAAS4la,IAAY5la,GACxB8ka,IAAgB9ka,GAAW,GAC3BA,EAAY,IAChB,CCnvBA,IAAI4qkC,IAAiC,WAOjC,SAASA,EAAgB3b,EAAW7yB,GAChClpiC,KAAKipiC,UAAY,KACjBjpiC,KAAKkpiC,cAAgB,KAIrBlpiC,KAAK23kC,iBAAmB,KACxB33kC,KAAK43kC,+BAAiC,KACtC53kC,KAAK63kC,sBAAwB,KAC7B73kC,KAAK83kC,iBAAmB,KACxB93kC,KAAK+3kC,oBAAsB,KAC3B/3kC,KAAKg4kC,gBAAkB,KACvBh4kC,KAAKi4kC,gBAAkB,KACvBj4kC,KAAKk4kC,eAAiB,KACtBl4kC,KAAKm4kC,cAAgB,KACrBn4kC,KAAKo4kC,oBAAsB,KAC3Bp4kC,KAAKq4kC,kBAAoB,KACzBr4kC,KAAKs4kC,gBAAkB,KACvBt4kC,KAAK2pkC,YAAc,KACnB3pkC,KAAKoskC,YAAc,KACnBpskC,KAAKu4kC,eAAiB,KACtBv4kC,KAAKw4kC,iBAAmB,KACxBx4kC,KAAKovtB,cAAgB,KACrBpvtB,KAAK4vkC,kBAAoB,KACzB5vkC,KAAKy4kC,aAAe,KACpBz4kC,KAAK04kC,gBAAkB,KACvB14kC,KAAK24kC,iBAAmB,KACxB34kC,KAAK44kC,iBAAmB,KACxB54kC,KAAK64kC,qBAAuB,KAC5B74kC,KAAK6okC,aAAe,KACpB7okC,KAAK84kC,iBAAmB,KACxB94kC,KAAK+4kC,aAAe,KACpB/4kC,KAAKg5kC,gBAAkB,KACvBh5kC,KAAKi5kC,iBAAmB,KACxBj5kC,KAAKk5kC,WAAa,KAClBl5kC,KAAKm5kC,+BAAiC,KACtCn5kC,KAAKo5kC,iCAAmC,KACxCp5kC,KAAKq5kC,uBAAyB,KAC9Br5kC,KAAKs5kC,6BAA+B,KACpCt5kC,KAAKu5kC,2BAA6B,KAClCv5kC,KAAKw5kC,yBAA2B,KAChCx5kC,KAAKy5kC,2BAA6B,KAClCz5kC,KAAK05kC,4BAA8B,KACnC15kC,KAAK25kC,0BAA4B,KACjC35kC,KAAK45kC,2BAA6B,KAClC55kC,KAAK65kC,2BAA6B,KAClC75kC,KAAK85kC,gCAAkC,KACvC95kC,KAAK+5kC,wBAA0B,KAC/B/5kC,KAAKg6kC,uBAAyB,KAC9Bh6kC,KAAKi6kC,8BAAgC,KACrCj6kC,KAAKk6kC,8BAAgC,KACrCl6kC,KAAKm6kC,qCAAuC,KAC5Cn6kC,KAAKo6kC,iCAAmC,KACxCp6kC,KAAK4vW,SAAW,YAChB5vW,KAAKq6kC,aAAe,aACpBr6kC,KAAKs6kC,4BAA8B,KACnCt6kC,KAAKipiC,UAAY8yB,EACjB/7jC,KAAKkpiC,cAAgBA,EACrBlpiC,KAAKu6kC,qBACT,CA0wBA,OAzwBA7C,EAAgB/mkC,UAAU4pkC,oBAAsB,WAC5Cv6kC,KAAK23kC,iBAAmB33kC,KAAKkpiC,cAAcliwB,WAAW,cAAclhS,SAAS,GAC7E9F,KAAK43kC,+BAAiC53kC,KAAKkpiC,cAAcliwB,WAAW,qBACpEhnS,KAAK63kC,sBAAwB73kC,KAAKkpiC,cAAcliwB,WAAW,qBAAqBlhS,SAAS,GAAGA,SAAS,GACrG9F,KAAK83kC,iBAAmB93kC,KAAKkpiC,cAAcliwB,WAAW,cACtDhnS,KAAK+3kC,oBAAsB/3kC,KAAKkpiC,cAAcliwB,WAAW,iBACzDhnS,KAAKg4kC,gBAAkBh4kC,KAAKkpiC,cAAcliwB,WAAW,aACrDhnS,KAAKi4kC,gBAAkBj4kC,KAAKkpiC,cAAcliwB,WAAW,aACrDhnS,KAAKk4kC,eAAiBl4kC,KAAKkpiC,cAAcliwB,WAAW,YACpDhnS,KAAKm4kC,cAAgBn4kC,KAAKkpiC,cAAcliwB,WAAW,WACnDhnS,KAAKo4kC,oBAAsBp4kC,KAAKkpiC,cAAcliwB,WAAW,iBACzDhnS,KAAKq4kC,kBAAoBr4kC,KAAKkpiC,cAAcliwB,WAAW,eACvDhnS,KAAKs4kC,gBAAkBt4kC,KAAKkpiC,cAAcliwB,WAAW,aACrDhnS,KAAK2pkC,YAAc3pkC,KAAKkpiC,cAAcliwB,WAAW,SACjDhnS,KAAKoskC,YAAcpskC,KAAKkpiC,cAAcliwB,WAAW,SACjDhnS,KAAKu4kC,eAAiBv4kC,KAAKkpiC,cAAcliwB,WAAW,YACpDhnS,KAAKw4kC,iBAAmBx4kC,KAAKkpiC,cAAcliwB,WAAW,qBACtDhnS,KAAKovtB,cAAgBpvtB,KAAKkpiC,cAAcliwB,WAAW,WACnDhnS,KAAK4vkC,kBAAoB5vkC,KAAKkpiC,cAAcliwB,WAAW,eACvDhnS,KAAKs6kC,4BAA8Bt6kC,KAAK4vkC,kBAAkB9pkC,SAAS,GACnE9F,KAAKs6kC,4BAA4BpyzB,UAAU90P,IAAI,iBAC/CpzB,KAAKy4kC,aAAez4kC,KAAKkpiC,cAAcliwB,WAAW,UAClDhnS,KAAK04kC,gBAAkB14kC,KAAKkpiC,cAAcliwB,WAAW,aACrDhnS,KAAK24kC,iBAAmB34kC,KAAKkpiC,cAAcliwB,WAAW,cACtDhnS,KAAK44kC,iBAAmB54kC,KAAKkpiC,cAAcliwB,WAAW,cACtDhnS,KAAK64kC,qBAAuB74kC,KAAKkpiC,cAAcliwB,WAAW,kBAC1DhnS,KAAK6okC,aAAe7okC,KAAKkpiC,cAAcliwB,WAAW,sBAClDhnS,KAAK84kC,iBAAmB94kC,KAAKkpiC,cAAcliwB,WAAW,yBACtDhnS,KAAK+4kC,aAAe/4kC,KAAKkpiC,cAAcliwB,WAAW,qBAClDhnS,KAAKg5kC,gBAAkBh5kC,KAAKkpiC,cAAcliwB,WAAW,4BACrDhnS,KAAKi5kC,iBAAmBj5kC,KAAKkpiC,cAAcliwB,WAAW,yBACtDhnS,KAAKk5kC,WAAal5kC,KAAKkpiC,cAAcliwB,WAAW,mBAEhDhnS,KAAKm5kC,+BAAiCn5kC,KAAKkpiC,cAAcliwB,WAAW,wBAAwBlhS,SAAS,GAAGA,SAAS,GAEjH9F,KAAKo5kC,iCAAmCp5kC,KAAKkpiC,cAAcliwB,WAAW,wBAAwBlhS,SAAS,GAAGA,SAAS,GACnH9F,KAAKq5kC,uBAAyBr5kC,KAAKkpiC,cAAcliwB,WAAW,qBAC5DhnS,KAAKs5kC,6BAA+Bt5kC,KAAKkpiC,cAAcliwB,WAAW,sBAClEhnS,KAAKu5kC,2BAA6Bv5kC,KAAKkpiC,cAAcliwB,WAAW,yBAChEhnS,KAAKw5kC,yBAA2Bx5kC,KAAKkpiC,cAAcliwB,WAAW,uBAC9DhnS,KAAKy5kC,2BAA6Bz5kC,KAAKkpiC,cAAcliwB,WAAW,yBAChEhnS,KAAK05kC,4BAA8B15kC,KAAKkpiC,cAAcliwB,WAAW,wBACjEhnS,KAAK25kC,0BAA4B35kC,KAAKkpiC,cAAcliwB,WAAW,wBAC/DhnS,KAAK45kC,2BAA6B55kC,KAAKkpiC,cAAcliwB,WAAW,yBAChEhnS,KAAK65kC,2BAA6B75kC,KAAKkpiC,cAAcliwB,WAAW,yBAChEhnS,KAAK85kC,gCAAkC95kC,KAAKkpiC,cAAcliwB,WAAW,8BACrEhnS,KAAK+5kC,wBAA0B/5kC,KAAKkpiC,cAAcliwB,WAAW,sBAC7DhnS,KAAKi6kC,8BAAgCj6kC,KAAKkpiC,cAAcliwB,WAAW,4BACnEhnS,KAAKg6kC,uBAAyBh6kC,KAAKkpiC,cAAcliwB,WAAW,qBAC5DhnS,KAAKk6kC,8BAAgCl6kC,KAAKkpiC,cAAcliwB,WAAW,2BACnEhnS,KAAKm6kC,qCAAuCn6kC,KAAKkpiC,cAAcliwB,WAAW,oBAC1EhnS,KAAKo6kC,iCAAmCp6kC,KAAKkpiC,cAAcliwB,WAAW,mBAC1E,EAKA0wyB,EAAgB/mkC,UAAU6pkC,gBAAkB,WACxCx6kC,KAAK23kC,iBAAiB/tiC,YAAc5pC,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,MAAQ/lW,KAAKkpiC,cAAc93b,UAAUt6lB,UAClH,EAMA4gkC,EAAgB/mkC,UAAU8pkC,kBAAoB,SAAUt4Q,GACpDni0B,KAAK63kC,sBAAsBj2kC,MAAQug0B,EAAWrrzB,UAClD,EAKA4gkC,EAAgB/mkC,UAAU+pkC,aAAe,WACjC16kC,KAAKipiC,UAAU0xC,mBACf36kC,KAAK43kC,+BAA+B1vzB,UAAU/0P,OAAOnzB,KAAK4vW,UAC1D5vW,KAAK63kC,sBAAsBj2kC,MAAQ,IACnC5B,KAAK23kC,iBAAiB/tiC,YAAc5pC,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,MAAQ/lW,KAAKkpiC,cAAc93b,UAAUt6lB,WACzG9W,KAAK4te,UAAU5te,KAAK83kC,oBACrB93kC,KAAK83kC,iBAAiB/2kC,WAAaf,KAAKq6kC,cAEvCr6kC,KAAK4te,UAAU5te,KAAK+3kC,uBACrB/3kC,KAAK+3kC,oBAAoBh3kC,WAAaf,KAAKq6kC,cAE/Cr6kC,KAAKg4kC,gBAAgB9vzB,UAAU/0P,OAAOnzB,KAAK4vW,UAC3C5vW,KAAKi4kC,gBAAgB/vzB,UAAU/0P,OAAOnzB,KAAK4vW,UACN,IAAjC5vW,KAAKkpiC,cAAc93b,YACdpxmB,KAAKg4kC,gBAAgB9vzB,UAAUh1P,SAASlzB,KAAK4vW,YAC9C5vW,KAAKg4kC,gBAAgBj3kC,WAAaf,KAAKq6kC,cAEtCr6kC,KAAKi4kC,gBAAgB/vzB,UAAUh1P,SAASlzB,KAAK4vW,YAC9C5vW,KAAKi4kC,gBAAgBl3kC,WAAaf,KAAKq6kC,gBAI/Cr6kC,KAAKipiC,UAAU2xC,sBACf56kC,KAAKm4kC,cAAcjwzB,UAAU/0P,OAAOnzB,KAAK4vW,UACzC5vW,KAAKk4kC,eAAehwzB,UAAU/0P,OAAOnzB,KAAK4vW,UAC1C5vW,KAAKo4kC,oBAAoBlwzB,UAAU/0P,OAAOnzB,KAAK4vW,WAE/C5vW,KAAKipiC,UAAU2B,sBACf5qiC,KAAKq4kC,kBAAkBnwzB,UAAU/0P,OAAOnzB,KAAK4vW,UAC7C5vW,KAAKosrB,WAAWpsrB,KAAKipiC,UAAUh0a,QAAQ4ld,oBAE3C76kC,KAAKs4kC,gBAAgBpwzB,UAAU/0P,OAAOnzB,KAAK4vW,UACvC5vW,KAAKipiC,UAAU6xC,6BACf96kC,KAAKu4kC,eAAerwzB,UAAU/0P,OAAOnzB,KAAK4vW,UAE1C5vW,KAAKipiC,UAAU8xC,kBACf/6kC,KAAKovtB,cAAclnc,UAAU/0P,OAAOnzB,KAAK4vW,UAEzC5vW,KAAKipiC,UAAU+xC,qBACfh7kC,KAAKw4kC,iBAAiBtwzB,UAAU/0P,OAAOnzB,KAAK4vW,UAE5C5vW,KAAKipiC,UAAUgyC,kBAAoBj7kC,KAAKipiC,UAAUiyC,yBAClDl7kC,KAAK4vkC,kBAAkB1nzB,UAAU/0P,OAAOnzB,KAAK4vW,UAE7C5vW,KAAKipiC,UAAUkyC,aACfn7kC,KAAKy4kC,aAAavwzB,UAAU/0P,OAAOnzB,KAAK4vW,UAExC5vW,KAAKipiC,UAAUmyC,gBACfp7kC,KAAK04kC,gBAAgBxwzB,UAAU/0P,OAAOnzB,KAAK4vW,UAE3C5vW,KAAKipiC,UAAUgyC,kBAAoBj7kC,KAAKipiC,UAAUoyC,6BAClDr7kC,KAAK24kC,iBAAiBzwzB,UAAU/0P,OAAOnzB,KAAK4vW,UAC5C5vW,KAAK44kC,iBAAiB1wzB,UAAU/0P,OAAOnzB,KAAK4vW,UAC5C5vW,KAAK64kC,qBAAqB3wzB,UAAU/0P,OAAOnzB,KAAK4vW,WAEhD5vW,KAAKipiC,UAAUgyC,kBAAoBj7kC,KAAKipiC,UAAUooC,uBAClDrxkC,KAAK6okC,aAAa3gzB,UAAU/0P,OAAOnzB,KAAK4vW,UAExC5vW,KAAKipiC,UAAUgyC,kBAAoBj7kC,KAAKipiC,UAAUuoC,yBAClDxxkC,KAAK84kC,iBAAiB5wzB,UAAU/0P,OAAOnzB,KAAK4vW,UAE5C5vW,KAAKipiC,UAAUgyC,kBAAoBj7kC,KAAKipiC,UAAUqyC,wBAClDt7kC,KAAK+4kC,aAAa7wzB,UAAU/0P,OAAOnzB,KAAK4vW,UAExC5vW,KAAKipiC,UAAUsyC,gBACfv7kC,KAAKg5kC,gBAAgB9wzB,UAAU/0P,OAAOnzB,KAAK4vW,UAE3C5vW,KAAKipiC,UAAUuyC,4BACfx7kC,KAAKi5kC,iBAAiB/wzB,UAAU/0P,OAAOnzB,KAAK4vW,UAE5C5vW,KAAKipiC,UAAUwyC,qBACfz7kC,KAAKk5kC,WAAWhxzB,UAAU/0P,OAAOnzB,KAAK4vW,UAEtC5vW,KAAKipiC,UAAU4hB,oBACf7qjC,KAAKi6kC,8BAA8B/xzB,UAAU/0P,OAAOnzB,KAAK4vW,SAEjE,EACA8nuB,EAAgB/mkC,UAAUy7qB,WAAa,SAAUj3qB,GACzCA,GACAA,EAAQ+yQ,UAAU90P,IAAI,cAE9B,EACAskjC,EAAgB/mkC,UAAU+qkC,aAAe,SAAUvmkC,GAC3CA,GACAA,EAAQ+yQ,UAAU/0P,OAAO,cAEjC,EACAukjC,EAAgB/mkC,UAAUgrkC,sBAAwB,SAAUC,GACxD57kC,KAAKipiC,UAAUh0a,QAAQkjc,wBAAwB0jB,aAAaD,EAAiB,IACzEA,EAAiB,GACjB57kC,KAAKipiC,UAAUh0a,QAAQm3D,WAAWpsrB,KAAKs6kC,8BAGvCt6kC,KAAKipiC,UAAUh0a,QAAQ6md,aAAa97kC,KAAKs6kC,6BACzCt6kC,KAAKkpiC,cAAcuyB,uBAE3B,EACAic,EAAgB/mkC,UAAUorkC,uBAAyB,WAC/C/7kC,KAAKipiC,UAAUh0a,QAAQkjc,wBAAwB0jB,cAAa,GAC5D77kC,KAAKipiC,UAAUh0a,QAAQ6md,aAAa97kC,KAAKs6kC,6BACzCt6kC,KAAKkpiC,cAAckc,eAAe+R,4BACtC,EAKAugB,EAAgB/mkC,UAAUqrkC,aAAe,WACjCh8kC,KAAKipiC,UAAU0tB,gBACf32jC,KAAK63kC,sBAAsBj2kC,MAAQ,IACnC5B,KAAK23kC,iBAAiB/tiC,YAAc5pC,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,MAAQ,IAC5E/lW,KAAK4te,UAAU5te,KAAK43kC,kCACrB53kC,KAAK43kC,+BAA+B72kC,WAAaf,KAAKq6kC,cAErDr6kC,KAAK4te,UAAU5te,KAAK83kC,oBACrB93kC,KAAK83kC,iBAAiB/2kC,WAAaf,KAAKq6kC,cAEvCr6kC,KAAK4te,UAAU5te,KAAK+3kC,uBACrB/3kC,KAAK+3kC,oBAAoBh3kC,WAAaf,KAAKq6kC,cAE1Cr6kC,KAAK4te,UAAU5te,KAAKg4kC,mBACrBh4kC,KAAKg4kC,gBAAgBj3kC,WAAaf,KAAKq6kC,cAEtCr6kC,KAAK4te,UAAU5te,KAAKi4kC,mBACrBj4kC,KAAKi4kC,gBAAgBl3kC,WAAaf,KAAKq6kC,cAEtCr6kC,KAAK4te,UAAU5te,KAAKm4kC,iBACrBn4kC,KAAKm4kC,cAAcp3kC,WAAaf,KAAKq6kC,cAEpCr6kC,KAAK4te,UAAU5te,KAAKk4kC,kBACrBl4kC,KAAKk4kC,eAAen3kC,WAAaf,KAAKq6kC,cAErCr6kC,KAAK4te,UAAU5te,KAAKo4kC,uBACrBp4kC,KAAKo4kC,oBAAoBr3kC,WAAaf,KAAKq6kC,cAE1Cr6kC,KAAK4te,UAAU5te,KAAKq4kC,qBACrBr4kC,KAAKq4kC,kBAAkBt3kC,WAAaf,KAAKq6kC,cAExCr6kC,KAAK4te,UAAU5te,KAAKs4kC,mBACrBt4kC,KAAKs4kC,gBAAgBv3kC,WAAaf,KAAKq6kC,cAEtCr6kC,KAAK4te,UAAU5te,KAAK2pkC,eACrB3pkC,KAAK2pkC,YAAY5okC,WAAaf,KAAKq6kC,cAElCr6kC,KAAK4te,UAAU5te,KAAKoskC,eACrBpskC,KAAKoskC,YAAYrrkC,WAAaf,KAAKq6kC,cAElCr6kC,KAAK4te,UAAU5te,KAAKu4kC,kBACrBv4kC,KAAKu4kC,eAAex3kC,WAAaf,KAAKq6kC,cAErCr6kC,KAAK4te,UAAU5te,KAAKovtB,iBACrBpvtB,KAAKovtB,cAAcrutB,WAAaf,KAAKq6kC,cAEpCr6kC,KAAK4te,UAAU5te,KAAKw4kC,oBACrBx4kC,KAAKw4kC,iBAAiBz3kC,WAAaf,KAAKq6kC,cAEvCr6kC,KAAK4te,UAAU5te,KAAK4vkC,qBACrB5vkC,KAAK4vkC,kBAAkB7ukC,WAAaf,KAAKq6kC,cAExCr6kC,KAAK4te,UAAU5te,KAAKy4kC,gBACrBz4kC,KAAKy4kC,aAAa13kC,WAAaf,KAAKq6kC,cAEnCr6kC,KAAK4te,UAAU5te,KAAK04kC,mBACrB14kC,KAAK04kC,gBAAgB33kC,WAAaf,KAAKq6kC,eAG3Cr6kC,KAAKipiC,UAAUiyC,0BACVl7kC,KAAK4te,UAAU5te,KAAK24kC,oBACrB34kC,KAAK24kC,iBAAiB53kC,WAAaf,KAAKq6kC,cAEvCr6kC,KAAK4te,UAAU5te,KAAK44kC,oBACrB54kC,KAAK44kC,iBAAiB73kC,WAAaf,KAAKq6kC,cAEvCr6kC,KAAK4te,UAAU5te,KAAK64kC,wBACrB74kC,KAAK64kC,qBAAqB93kC,WAAaf,KAAKq6kC,cAE3Cr6kC,KAAK4te,UAAU5te,KAAK6okC,gBACrB7okC,KAAK6okC,aAAa9nkC,WAAaf,KAAKq6kC,cAEnCr6kC,KAAK4te,UAAU5te,KAAK84kC,oBACrB94kC,KAAK84kC,iBAAiB/3kC,WAAaf,KAAKq6kC,cAEvCr6kC,KAAK4te,UAAU5te,KAAK+4kC,gBACrB/4kC,KAAK+4kC,aAAah4kC,WAAaf,KAAKq6kC,cAEnCr6kC,KAAK4te,UAAU5te,KAAKg5kC,mBACrBh5kC,KAAKg5kC,gBAAgBj4kC,WAAaf,KAAKq6kC,cAEtCr6kC,KAAK4te,UAAU5te,KAAKi5kC,oBACrBj5kC,KAAKi5kC,iBAAiBl4kC,WAAaf,KAAKq6kC,cAEvCr6kC,KAAK4te,UAAU5te,KAAKk5kC,cACrBl5kC,KAAKk5kC,WAAWn4kC,WAAaf,KAAKq6kC,cAEjCr6kC,KAAK4te,UAAU5te,KAAK05kC,+BACrB15kC,KAAK05kC,4BAA4B34kC,WAAaf,KAAKq6kC,cAElDr6kC,KAAK4te,UAAU5te,KAAK25kC,6BACrB35kC,KAAK25kC,0BAA0B54kC,WAAaf,KAAKq6kC,cAEhDr6kC,KAAK4te,UAAU5te,KAAK65kC,8BACrB75kC,KAAK65kC,2BAA2B94kC,WAAaf,KAAKq6kC,cAEjDr6kC,KAAK4te,UAAU5te,KAAK45kC,8BACrB55kC,KAAK45kC,2BAA2B74kC,WAAaf,KAAKq6kC,cAEjDr6kC,KAAK4te,UAAU5te,KAAK85kC,mCACrB95kC,KAAK85kC,gCAAgC/4kC,WAAaf,KAAKq6kC,cAEtDr6kC,KAAK4te,UAAU5te,KAAKq5kC,0BACrBr5kC,KAAKq5kC,uBAAuBt4kC,WAAaf,KAAKq6kC,cAE7Cr6kC,KAAK4te,UAAU5te,KAAKs5kC,gCACrBt5kC,KAAKs5kC,6BAA6Bv4kC,WAAaf,KAAKq6kC,cAEnDr6kC,KAAK4te,UAAU5te,KAAKu5kC,8BACrBv5kC,KAAKu5kC,2BAA2Bx4kC,WAAaf,KAAKq6kC,cAEjDr6kC,KAAK4te,UAAU5te,KAAKw5kC,4BACrBx5kC,KAAKw5kC,yBAAyBz4kC,WAAaf,KAAKq6kC,cAE/Cr6kC,KAAK4te,UAAU5te,KAAK+5kC,2BACrB/5kC,KAAK+5kC,wBAAwBh5kC,WAAaf,KAAKq6kC,cAE9Cr6kC,KAAK4te,UAAU5te,KAAKi6kC,iCACrBj6kC,KAAKi6kC,8BAA8Bl5kC,WAAaf,KAAKq6kC,cAGjE,EAMA3C,EAAgB/mkC,UAAUsrkC,mBAAqB,SAAU78rB,GAChB,OAAjCp/Y,KAAK+5kC,0BACD36rB,EACAp/Y,KAAK+5kC,wBAAwB7xzB,UAAU/0P,OAAOnzB,KAAK4vW,UAG9C5vW,KAAK4te,UAAU5te,KAAK+5kC,2BACrB/5kC,KAAK+5kC,wBAAwBh5kC,WAAaf,KAAKq6kC,cAI/D,EAMA3C,EAAgB/mkC,UAAUurkC,YAAc,SAAUrwC,GAC1C7riC,KAAKipiC,UAAU0xC,mBACf36kC,KAAK63kC,sBAAsBj2kC,MAAQiqiC,EAAkB/0hC,YAErD+0hC,IAAsB7riC,KAAKipiC,UAAU73b,YAChCpxmB,KAAK4te,UAAU5te,KAAKg4kC,mBACrBh4kC,KAAKg4kC,gBAAgBj3kC,WAAaf,KAAKq6kC,cAE3Cr6kC,KAAK+3kC,oBAAoB7vzB,UAAU/0P,OAAOnzB,KAAK4vW,UAC1C5vW,KAAK4te,UAAU5te,KAAKi4kC,mBACrBj4kC,KAAKi4kC,gBAAgBl3kC,WAAaf,KAAKq6kC,cAE3Cr6kC,KAAK83kC,iBAAiB5vzB,UAAU/0P,OAAOnzB,KAAK4vW,WAE5Ci8rB,EAAoB7riC,KAAKipiC,UAAU73b,WAAmC,IAAtBy6b,IAChD7riC,KAAK83kC,iBAAiB5vzB,UAAU/0P,OAAOnzB,KAAK4vW,UAC5C5vW,KAAK+3kC,oBAAoB7vzB,UAAU/0P,OAAOnzB,KAAK4vW,UAC/C5vW,KAAKg4kC,gBAAgB9vzB,UAAU/0P,OAAOnzB,KAAK4vW,UAC3C5vW,KAAKi4kC,gBAAgB/vzB,UAAU/0P,OAAOnzB,KAAK4vW,WAErB,IAAtBi8rB,IACA7riC,KAAKg4kC,gBAAgB9vzB,UAAU/0P,OAAOnzB,KAAK4vW,UAC3C5vW,KAAKi4kC,gBAAgB/vzB,UAAU/0P,OAAOnzB,KAAK4vW,UACtC5vW,KAAK4te,UAAU5te,KAAK83kC,oBACrB93kC,KAAK83kC,iBAAiB/2kC,WAAaf,KAAKq6kC,cAEvCr6kC,KAAK4te,UAAU5te,KAAK+3kC,uBACrB/3kC,KAAK+3kC,oBAAoBh3kC,WAAaf,KAAKq6kC,cAGvD,EAMA3C,EAAgB/mkC,UAAUwrkC,qBAAuB,SAAU5mjC,EAAMo7X,GAChD,SAATp7X,IACIo7X,EACA3wZ,KAAK2pkC,YAAYzhzB,UAAU/0P,OAAOnzB,KAAK4vW,UAGlC5vW,KAAK4te,UAAU5te,KAAK2pkC,eACrB3pkC,KAAK2pkC,YAAY5okC,WAAaf,KAAKq6kC,eAIlC,SAAT9kjC,IACIo7X,EACA3wZ,KAAKoskC,YAAYlkzB,UAAU/0P,OAAOnzB,KAAK4vW,UAGlC5vW,KAAK4te,UAAU5te,KAAKoskC,eACrBpskC,KAAKoskC,YAAYrrkC,WAAaf,KAAKq6kC,cAInD,EAIA3C,EAAgB/mkC,UAAUyrkC,sBAAwB,WACzCp8kC,KAAK4te,UAAU5te,KAAK2pkC,eACrB3pkC,KAAK2pkC,YAAY5okC,WAAaf,KAAKq6kC,cAElCr6kC,KAAK4te,UAAU5te,KAAKoskC,eACrBpskC,KAAKoskC,YAAYrrkC,WAAaf,KAAKq6kC,aAE3C,EAIA3C,EAAgB/mkC,UAAU0rkC,0CAA4C,SAAUj9rB,GACxEA,GACAp/Y,KAAKq5kC,uBAAuBnxzB,UAAU/0P,OAAOnzB,KAAK4vW,UAClD5vW,KAAKw5kC,yBAAyBtxzB,UAAU/0P,OAAOnzB,KAAK4vW,YAG/C5vW,KAAK4te,UAAU5te,KAAKw5kC,4BACrBx5kC,KAAKw5kC,yBAAyBz4kC,WAAaf,KAAKq6kC,cAE/Cr6kC,KAAK4te,UAAU5te,KAAKq5kC,0BACrBr5kC,KAAKq5kC,uBAAuBt4kC,WAAaf,KAAKq6kC,eAGjDr6kC,KAAK4te,UAAU5te,KAAKy5kC,8BACrBz5kC,KAAKy5kC,2BAA2B14kC,WAAaf,KAAKq6kC,cAEjDr6kC,KAAK4te,UAAU5te,KAAK05kC,+BACrB15kC,KAAK05kC,4BAA4B34kC,WAAaf,KAAKq6kC,cAElDr6kC,KAAK4te,UAAU5te,KAAK25kC,6BACrB35kC,KAAK25kC,0BAA0B54kC,WAAaf,KAAKq6kC,cAEhDr6kC,KAAK4te,UAAU5te,KAAK45kC,8BACrB55kC,KAAK45kC,2BAA2B74kC,WAAaf,KAAKq6kC,cAEjDr6kC,KAAK4te,UAAU5te,KAAK85kC,mCACrB95kC,KAAK85kC,gCAAgC/4kC,WAAaf,KAAKq6kC,cAEtDr6kC,KAAK4te,UAAU5te,KAAKs5kC,gCACrBt5kC,KAAKs5kC,6BAA6Bv4kC,WAAaf,KAAKq6kC,cAEnDr6kC,KAAK4te,UAAU5te,KAAKu5kC,8BACrBv5kC,KAAKu5kC,2BAA2Bx4kC,WAAaf,KAAKq6kC,aAE1D,EAMA3C,EAAgB/mkC,UAAU2rkC,+BAAiC,SAAUl9rB,EAAUm9rB,GACvEA,IACIn9rB,GACAp/Y,KAAKq5kC,uBAAuBnxzB,UAAU/0P,OAAOnzB,KAAK4vW,UAClD5vW,KAAKs5kC,6BAA6BpxzB,UAAU/0P,OAAOnzB,KAAK4vW,UACxD5vW,KAAKu5kC,2BAA2BrxzB,UAAU/0P,OAAOnzB,KAAK4vW,UACtD5vW,KAAKw5kC,yBAAyBtxzB,UAAU/0P,OAAOnzB,KAAK4vW,UAChD5vW,KAAKipiC,UAAUwkC,mBACfztkC,KAAKy5kC,2BAA2BvxzB,UAAU/0P,OAAOnzB,KAAK4vW,UACtD5vW,KAAK05kC,4BAA4BxxzB,UAAU/0P,OAAOnzB,KAAK4vW,UACvD5vW,KAAK25kC,0BAA0BzxzB,UAAU/0P,OAAOnzB,KAAK4vW,WAEpD5vW,KAAK4te,UAAU5te,KAAK45kC,8BACrB55kC,KAAK45kC,2BAA2B74kC,WAAaf,KAAKq6kC,cAEjDr6kC,KAAK4te,UAAU5te,KAAK85kC,mCACrB95kC,KAAK85kC,gCAAgC/4kC,WAAaf,KAAKq6kC,gBAItDr6kC,KAAK4te,UAAU5te,KAAKq5kC,0BACrBr5kC,KAAKq5kC,uBAAuBt4kC,WAAaf,KAAKq6kC,cAE7Cr6kC,KAAK4te,UAAU5te,KAAKs5kC,gCACrBt5kC,KAAKs5kC,6BAA6Bv4kC,WAAaf,KAAKq6kC,cAEnDr6kC,KAAK4te,UAAU5te,KAAKu5kC,8BACrBv5kC,KAAKu5kC,2BAA2Bx4kC,WAAaf,KAAKq6kC,cAEjDr6kC,KAAK4te,UAAU5te,KAAKw5kC,4BACrBx5kC,KAAKw5kC,yBAAyBz4kC,WAAaf,KAAKq6kC,cAE/Cr6kC,KAAK4te,UAAU5te,KAAK+5kC,2BACrB/5kC,KAAK+5kC,wBAAwBh5kC,WAAaf,KAAKq6kC,eAI/D,EAMA3C,EAAgB/mkC,UAAU6rkC,wCAA0C,SAAUp9rB,EAAUm9rB,GAChFA,GAAuBn9rB,IACvBp/Y,KAAKq5kC,uBAAuBnxzB,UAAU/0P,OAAOnzB,KAAK4vW,UAClD5vW,KAAKs5kC,6BAA6BpxzB,UAAU/0P,OAAOnzB,KAAK4vW,UACxD5vW,KAAKu5kC,2BAA2BrxzB,UAAU/0P,OAAOnzB,KAAK4vW,UACtD5vW,KAAKw5kC,yBAAyBtxzB,UAAU/0P,OAAOnzB,KAAK4vW,UACpD5vW,KAAKy5kC,2BAA2BvxzB,UAAU/0P,OAAOnzB,KAAK4vW,UACtD5vW,KAAK05kC,4BAA4BxxzB,UAAU/0P,OAAOnzB,KAAK4vW,UACvD5vW,KAAK25kC,0BAA0BzxzB,UAAU/0P,OAAOnzB,KAAK4vW,UACrD5vW,KAAK45kC,2BAA2B1xzB,UAAU/0P,OAAOnzB,KAAK4vW,UACtD5vW,KAAK85kC,gCAAgC5xzB,UAAU/0P,OAAOnzB,KAAK4vW,UAC3D5vW,KAAK+5kC,wBAAwB7xzB,UAAU/0P,OAAOnzB,KAAK4vW,UACnD5vW,KAAKi6kC,8BAA8B/xzB,UAAU/0P,OAAOnzB,KAAK4vW,UAEjE,EAMA8nuB,EAAgB/mkC,UAAU8rkC,qCAAuC,SAAUr9rB,EAAUs9rB,GAC7Et9rB,GACAp/Y,KAAKw5kC,yBAAyBtxzB,UAAU/0P,OAAOnzB,KAAK4vW,UACpD5vW,KAAK+5kC,wBAAwB7xzB,UAAU/0P,OAAOnzB,KAAK4vW,UACnD5vW,KAAKi6kC,8BAA8B/xzB,UAAU/0P,OAAOnzB,KAAK4vW,YAGpD5vW,KAAK4te,UAAU5te,KAAKw5kC,4BACrBx5kC,KAAKw5kC,yBAAyBz4kC,WAAaf,KAAKq6kC,cAE/Cr6kC,KAAK4te,UAAU5te,KAAK+5kC,2BACrB/5kC,KAAK+5kC,wBAAwBh5kC,WAAaf,KAAKq6kC,cAE9Cr6kC,KAAK4te,UAAU5te,KAAKi6kC,iCACrBj6kC,KAAKi6kC,8BAA8Bl5kC,WAAaf,KAAKq6kC,eAGxDr6kC,KAAK4te,UAAU5te,KAAKq5kC,0BACrBr5kC,KAAKq5kC,uBAAuBt4kC,WAAaf,KAAKq6kC,cAE7Cr6kC,KAAK4te,UAAU5te,KAAKs5kC,gCACrBt5kC,KAAKs5kC,6BAA6Bv4kC,WAAaf,KAAKq6kC,cAEnDr6kC,KAAK4te,UAAU5te,KAAKu5kC,8BACrBv5kC,KAAKu5kC,2BAA2Bx4kC,WAAaf,KAAKq6kC,cAEjDr6kC,KAAK4te,UAAU5te,KAAKw5kC,4BACrBx5kC,KAAKw5kC,yBAAyBz4kC,WAAaf,KAAKq6kC,cAE/Cr6kC,KAAK4te,UAAU5te,KAAKy5kC,8BACrBz5kC,KAAKy5kC,2BAA2B14kC,WAAaf,KAAKq6kC,cAEjDr6kC,KAAK4te,UAAU5te,KAAK05kC,+BACrB15kC,KAAK05kC,4BAA4B34kC,WAAaf,KAAKq6kC,cAElDr6kC,KAAK4te,UAAU5te,KAAK25kC,6BACrB35kC,KAAK25kC,0BAA0B54kC,WAAaf,KAAKq6kC,cAEhDr6kC,KAAK4te,UAAU5te,KAAK45kC,8BACrB55kC,KAAK45kC,2BAA2B74kC,WAAaf,KAAKq6kC,cAEjDr6kC,KAAK4te,UAAU5te,KAAK85kC,mCACrB95kC,KAAK85kC,gCAAgC/4kC,WAAaf,KAAKq6kC,aAE/D,EAMA3C,EAAgB/mkC,UAAUgskC,+BAAiC,SAAUv9rB,EAAUm9rB,GACvEn9rB,GACAp/Y,KAAKs5kC,6BAA6BpxzB,UAAU/0P,OAAOnzB,KAAK4vW,UACxD5vW,KAAKu5kC,2BAA2BrxzB,UAAU/0P,OAAOnzB,KAAK4vW,UACtD5vW,KAAKw5kC,yBAAyBtxzB,UAAU/0P,OAAOnzB,KAAK4vW,UACpD5vW,KAAK+5kC,wBAAwB7xzB,UAAU/0P,OAAOnzB,KAAK4vW,UACnD5vW,KAAKi6kC,8BAA8B/xzB,UAAU/0P,OAAOnzB,KAAK4vW,YAGpD5vW,KAAK4te,UAAU5te,KAAKs5kC,gCACrBt5kC,KAAKs5kC,6BAA6Bv4kC,WAAaf,KAAKq6kC,cAEnDr6kC,KAAK4te,UAAU5te,KAAKu5kC,8BACrBv5kC,KAAKu5kC,2BAA2Bx4kC,WAAaf,KAAKq6kC,cAEjDr6kC,KAAK4te,UAAU5te,KAAKw5kC,4BACrBx5kC,KAAKw5kC,yBAAyBz4kC,WAAaf,KAAKq6kC,cAE/Cr6kC,KAAK4te,UAAU5te,KAAK+5kC,2BACrB/5kC,KAAK+5kC,wBAAwBh5kC,WAAaf,KAAKq6kC,cAE9Cr6kC,KAAK4te,UAAU5te,KAAKi6kC,iCACrBj6kC,KAAKi6kC,8BAA8Bl5kC,WAAaf,KAAKq6kC,eAGxDr6kC,KAAK4te,UAAU5te,KAAKq5kC,0BACrBr5kC,KAAKq5kC,uBAAuBt4kC,WAAaf,KAAKq6kC,cAE7Cr6kC,KAAK4te,UAAU5te,KAAKy5kC,8BACrBz5kC,KAAKy5kC,2BAA2B14kC,WAAaf,KAAKq6kC,cAEjDr6kC,KAAK4te,UAAU5te,KAAK05kC,+BACrB15kC,KAAK05kC,4BAA4B34kC,WAAaf,KAAKq6kC,cAElDr6kC,KAAK4te,UAAU5te,KAAK25kC,6BACrB35kC,KAAK25kC,0BAA0B54kC,WAAaf,KAAKq6kC,cAEhDr6kC,KAAK4te,UAAU5te,KAAK45kC,8BACrB55kC,KAAK45kC,2BAA2B74kC,WAAaf,KAAKq6kC,cAEjDr6kC,KAAK4te,UAAU5te,KAAK85kC,mCACrB95kC,KAAK85kC,gCAAgC/4kC,WAAaf,KAAKq6kC,aAE/D,EAIA3C,EAAgB/mkC,UAAUiskC,cAAgB,WACjC58kC,KAAK4te,UAAU5te,KAAKq5kC,0BACrBr5kC,KAAKq5kC,uBAAuBt4kC,WAAaf,KAAKq6kC,cAE7Cr6kC,KAAK4te,UAAU5te,KAAKs5kC,gCACrBt5kC,KAAKs5kC,6BAA6Bv4kC,WAAaf,KAAKq6kC,cAEnDr6kC,KAAK4te,UAAU5te,KAAKu5kC,8BACrBv5kC,KAAKu5kC,2BAA2Bx4kC,WAAaf,KAAKq6kC,cAEjDr6kC,KAAK4te,UAAU5te,KAAKw5kC,4BACrBx5kC,KAAKw5kC,yBAAyBz4kC,WAAaf,KAAKq6kC,cAE/Cr6kC,KAAK4te,UAAU5te,KAAKy5kC,8BACrBz5kC,KAAKy5kC,2BAA2B14kC,WAAaf,KAAKq6kC,cAEjDr6kC,KAAK4te,UAAU5te,KAAK05kC,+BACrB15kC,KAAK05kC,4BAA4B34kC,WAAaf,KAAKq6kC,cAElDr6kC,KAAK4te,UAAU5te,KAAK25kC,6BACrB35kC,KAAK25kC,0BAA0B54kC,WAAaf,KAAKq6kC,cAEhDr6kC,KAAK4te,UAAU5te,KAAK45kC,8BACrB55kC,KAAK45kC,2BAA2B74kC,WAAaf,KAAKq6kC,cAEjDr6kC,KAAK4te,UAAU5te,KAAK85kC,mCACrB95kC,KAAK85kC,gCAAgC/4kC,WAAaf,KAAKq6kC,aAE/D,EAIA3C,EAAgB/mkC,UAAUkskC,mBAAqB,WACtC78kC,KAAK4te,UAAU5te,KAAKq5kC,0BACrBr5kC,KAAKq5kC,uBAAuBt4kC,WAAaf,KAAKq6kC,cAE7Cr6kC,KAAK4te,UAAU5te,KAAKs5kC,gCACrBt5kC,KAAKs5kC,6BAA6Bv4kC,WAAaf,KAAKq6kC,cAEnDr6kC,KAAK4te,UAAU5te,KAAKu5kC,8BACrBv5kC,KAAKu5kC,2BAA2Bx4kC,WAAaf,KAAKq6kC,cAEjDr6kC,KAAK4te,UAAU5te,KAAKw5kC,4BACrBx5kC,KAAKw5kC,yBAAyBz4kC,WAAaf,KAAKq6kC,cAE/Cr6kC,KAAK4te,UAAU5te,KAAKy5kC,8BACrBz5kC,KAAKy5kC,2BAA2B14kC,WAAaf,KAAKq6kC,cAEjDr6kC,KAAK4te,UAAU5te,KAAK05kC,+BACrB15kC,KAAK05kC,4BAA4B34kC,WAAaf,KAAKq6kC,cAElDr6kC,KAAK4te,UAAU5te,KAAK25kC,6BACrB35kC,KAAK25kC,0BAA0B54kC,WAAaf,KAAKq6kC,cAEhDr6kC,KAAK4te,UAAU5te,KAAK45kC,8BACrB55kC,KAAK45kC,2BAA2B74kC,WAAaf,KAAKq6kC,cAEjDr6kC,KAAK4te,UAAU5te,KAAK85kC,mCACrB95kC,KAAK85kC,gCAAgC/4kC,WAAaf,KAAKq6kC,cAEtDr6kC,KAAK4te,UAAU5te,KAAK+5kC,2BACrB/5kC,KAAK+5kC,wBAAwBh5kC,WAAaf,KAAKq6kC,aAEvD,EAKA3C,EAAgB/mkC,UAAUmskC,iBAAmB,SAAUC,GAC5B,aAAnBA,IACA/8kC,KAAKq5kC,uBAAuBnxzB,UAAU/0P,OAAOnzB,KAAK4vW,UAClD5vW,KAAKs5kC,6BAA6BpxzB,UAAU/0P,OAAOnzB,KAAK4vW,UACxD5vW,KAAKu5kC,2BAA2BrxzB,UAAU/0P,OAAOnzB,KAAK4vW,UACtD5vW,KAAKw5kC,yBAAyBtxzB,UAAU/0P,OAAOnzB,KAAK4vW,UACpD5vW,KAAKy5kC,2BAA2BvxzB,UAAU/0P,OAAOnzB,KAAK4vW,UACtD5vW,KAAK05kC,4BAA4BxxzB,UAAU/0P,OAAOnzB,KAAK4vW,UACvD5vW,KAAK25kC,0BAA0BzxzB,UAAU/0P,OAAOnzB,KAAK4vW,UACrD5vW,KAAK45kC,2BAA2B1xzB,UAAU/0P,OAAOnzB,KAAK4vW,UACtD5vW,KAAK85kC,gCAAgC5xzB,UAAU/0P,OAAOnzB,KAAK4vW,WAExC,UAAnBmtuB,GAAiD,YAAnBA,IAC9B/8kC,KAAKq5kC,uBAAuBnxzB,UAAU/0P,OAAOnzB,KAAK4vW,UAClD5vW,KAAKs5kC,6BAA6BpxzB,UAAU/0P,OAAOnzB,KAAK4vW,UACxD5vW,KAAKu5kC,2BAA2BrxzB,UAAU/0P,OAAOnzB,KAAK4vW,UACtD5vW,KAAKw5kC,yBAAyBtxzB,UAAU/0P,OAAOnzB,KAAK4vW,UAC/C5vW,KAAK4te,UAAU5te,KAAKy5kC,8BACrBz5kC,KAAKy5kC,2BAA2B14kC,WAAaf,KAAKq6kC,cAEjDr6kC,KAAK4te,UAAU5te,KAAK05kC,+BACrB15kC,KAAK05kC,4BAA4B34kC,WAAaf,KAAKq6kC,cAElDr6kC,KAAK4te,UAAU5te,KAAK25kC,6BACrB35kC,KAAK25kC,0BAA0B54kC,WAAaf,KAAKq6kC,cAEhDr6kC,KAAK4te,UAAU5te,KAAK45kC,8BACrB55kC,KAAK45kC,2BAA2B74kC,WAAaf,KAAKq6kC,cAEjDr6kC,KAAK4te,UAAU5te,KAAK85kC,mCACrB95kC,KAAK85kC,gCAAgC/4kC,WAAaf,KAAKq6kC,eAGxC,eAAnB0C,IACA/8kC,KAAKq5kC,uBAAuBnxzB,UAAU/0P,OAAOnzB,KAAK4vW,UAC7C5vW,KAAK4te,UAAU5te,KAAKs5kC,gCACrBt5kC,KAAKs5kC,6BAA6Bv4kC,WAAaf,KAAKq6kC,cAEnDr6kC,KAAK4te,UAAU5te,KAAKu5kC,8BACrBv5kC,KAAKu5kC,2BAA2Bx4kC,WAAaf,KAAKq6kC,cAEtDr6kC,KAAKw5kC,yBAAyBtxzB,UAAU/0P,OAAOnzB,KAAK4vW,UAC/C5vW,KAAK4te,UAAU5te,KAAKy5kC,8BACrBz5kC,KAAKy5kC,2BAA2B14kC,WAAaf,KAAKq6kC,cAEjDr6kC,KAAK4te,UAAU5te,KAAK05kC,+BACrB15kC,KAAK05kC,4BAA4B34kC,WAAaf,KAAKq6kC,cAElDr6kC,KAAK4te,UAAU5te,KAAK25kC,6BACrB35kC,KAAK25kC,0BAA0B54kC,WAAaf,KAAKq6kC,cAEhDr6kC,KAAK4te,UAAU5te,KAAK45kC,8BACrB55kC,KAAK45kC,2BAA2B74kC,WAAaf,KAAKq6kC,cAEjDr6kC,KAAK4te,UAAU5te,KAAK85kC,mCACrB95kC,KAAK85kC,gCAAgC/4kC,WAAaf,KAAKq6kC,eAG/Dr6kC,KAAK+5kC,wBAAwB7xzB,UAAU/0P,OAAOnzB,KAAK4vW,UACnD5vW,KAAKi6kC,8BAA8B/xzB,UAAU/0P,OAAOnzB,KAAK4vW,SAC7D,EAKA8nuB,EAAgB/mkC,UAAUqskC,uBAAyB,SAAUx6nB,GACzDxid,KAAKo5kC,iCAAiCx3kC,MAAQ4gd,CAClD,EAKAk1nB,EAAgB/mkC,UAAUsskC,qBAAuB,SAAUh+xB,GACvD,IAAIi+xB,EAAYj+xB,EAASnoS,WAAa,KACtC9W,KAAKm5kC,+BAA+Bv3kC,MAAQs7kC,CAChD,EAKAxF,EAAgB/mkC,UAAU8njC,kBAAoB,SAAUr5qB,GAChDA,GACAp/Y,KAAKm6kC,qCAAqCjyzB,UAAU/0P,OAAOnzB,KAAK4vW,UAChE5vW,KAAKo6kC,iCAAiClyzB,UAAU/0P,OAAOnzB,KAAK4vW,YAGvD5vW,KAAK4te,UAAU5te,KAAKm6kC,wCACrBn6kC,KAAKm6kC,qCAAqCp5kC,WAAaf,KAAKq6kC,cAE3Dr6kC,KAAK4te,UAAU5te,KAAKo6kC,oCACrBp6kC,KAAKo6kC,iCAAiCr5kC,WAAaf,KAAKq6kC,cAGpE,EAKA3C,EAAgB/mkC,UAAUwskC,kBAAoB,SAAUC,GACV,MAAtCp9kC,KAAKk6kC,gCAEDl6kC,KAAKk6kC,8BAA8B/zkC,MAAMi+J,QADzCg56B,EACmD,OAGA,QAG/D,EAKA1F,EAAgB/mkC,UAAUi9d,UAAY,SAAUz4d,GAC5C,OAAOA,EAAQ+yQ,UAAUh1P,SAASlzB,KAAK4vW,SAC3C,EACO8nuB,CACX,CA70BqC,GCJjC/74B,IAAwC,SAAUz8J,EAAS08J,EAAYj5K,EAAGk5K,GAC1E,OAAO,IAAKl5K,IAAMA,EAAIguB,WAAU,SAAU2mB,EAASuwB,GAC/C,SAASi0G,EAAUl6L,GAAS,IAAM24E,EAAKshH,EAAUtlL,KAAK3U,GAAS,CAAE,MAAOvB,KAAKwnF,EAAOxnF,IAAI,CAAE,CAC1F,SAAS07L,EAASn6L,GAAS,IAAM24E,EAAKshH,EAAiB,MAAEj6L,GAAS,CAAE,MAAOvB,KAAKwnF,EAAOxnF,IAAI,CAAE,CAC7F,SAASk6E,EAAK1vD,GAAUA,EAAOrU,KAAO8gD,EAAQzsC,EAAOjpB,OAAS,IAAI+gB,GAAE,SAAU20C,GAAWA,EAAQzsC,EAAOjpB,MAAQ,IAAGq5H,KAAK6gE,EAAWC,EAAW,CAC9IxhH,GAAMshH,EAAYA,EAAU1iL,MAAM+lB,EAAS08J,GAAc,KAAKrlL,OAClE,GACJ,EACIqzT,IAA4C,SAAU1qS,EAASzrB,GAC/D,IAAsGiwG,EAAGvpG,EAAGwH,EAAG4hG,EAA3Gh0F,EAAI,CAAE6+Q,MAAO,EAAGnmF,KAAM,WAAa,GAAW,EAAPtmM,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,EAAI,EAAGkoT,KAAM,GAAIhvC,IAAK,IAChG,OAAOt3K,EAAI,CAAEhtG,KAAMuzT,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,oBAAXn7S,SAA0B40F,EAAE50F,OAAO4gB,UAAY,WAAa,OAAOvvC,IAAM,GAAIujH,EACvJ,SAASumN,EAAK9nU,GAAK,OAAO,SAAUq5B,GAAK,OACzC,SAAcy/P,GACV,GAAIp3K,EAAG,MAAM,IAAI9rG,UAAU,mCAC3B,KAAO2X,OACH,GAAIm0F,EAAI,EAAGvpG,IAAMwH,EAAY,EAARm5Q,EAAG,GAAS3gR,EAAU,OAAI2gR,EAAG,GAAK3gR,EAAS,SAAOwH,EAAIxH,EAAU,SAAMwH,EAAEhiB,KAAKwa,GAAI,GAAKA,EAAE5D,SAAWoL,EAAIA,EAAEhiB,KAAKwa,EAAG2gR,EAAG,KAAKtkR,KAAM,OAAOmL,EAE3J,OADIxH,EAAI,EAAGwH,IAAGm5Q,EAAK,CAAS,EAARA,EAAG,GAAQn5Q,EAAE/f,QACzBk5R,EAAG,IACP,KAAK,EAAG,KAAK,EAAGn5Q,EAAIm5Q,EAAI,MACxB,KAAK,EAAc,OAAXvrQ,EAAE6+Q,QAAgB,CAAExsS,MAAOk5R,EAAG,GAAItkR,MAAM,GAChD,KAAK,EAAG+Y,EAAE6+Q,QAASj0R,EAAI2gR,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKvrQ,EAAEsrQ,IAAIv8P,MAAO/O,EAAEs6S,KAAKvrS,MAAO,SACxC,QACI,KAAkB3c,GAAZA,EAAI4N,EAAEs6S,MAAYzmU,OAAS,GAAKue,EAAEA,EAAEve,OAAS,MAAkB,IAAV03R,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEvrQ,EAAI,EAAG,QAAU,CAC3G,GAAc,IAAVurQ,EAAG,MAAcn5Q,GAAMm5Q,EAAG,GAAKn5Q,EAAE,IAAMm5Q,EAAG,GAAKn5Q,EAAE,IAAM,CAAE4N,EAAE6+Q,MAAQtT,EAAG,GAAI,KAAO,CACrF,GAAc,IAAVA,EAAG,IAAYvrQ,EAAE6+Q,MAAQzsR,EAAE,GAAI,CAAE4N,EAAE6+Q,MAAQzsR,EAAE,GAAIA,EAAIm5Q,EAAI,KAAO,CACpE,GAAIn5Q,GAAK4N,EAAE6+Q,MAAQzsR,EAAE,GAAI,CAAE4N,EAAE6+Q,MAAQzsR,EAAE,GAAI4N,EAAEsrQ,IAAIzuR,KAAK0uR,GAAK,KAAO,CAC9Dn5Q,EAAE,IAAI4N,EAAEsrQ,IAAIv8P,MAChB/O,EAAEs6S,KAAKvrS,MAAO,SAEtBw8P,EAAKrnR,EAAK9T,KAAKu/B,EAAS3P,EAC5B,CAAE,MAAOlvB,KAAKy6R,EAAK,CAAC,EAAGz6R,KAAI8Z,EAAI,CAAG,CAAE,QAAUupG,EAAI/hG,EAAI,CAAG,CACzD,GAAY,EAARm5Q,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAEl5R,MAAOk5R,EAAG,GAAKA,EAAG,QAAK,EAAQtkR,MAAM,EAC9E,CAtBgD+jE,CAAK,CAACv4E,EAAGq5B,GAAK,CAAG,CAuBrE,EAsBIgijC,IAA+B,WAM/B,SAASA,EAAc7sB,GACnB,IAAIlxjC,EAAQU,KAIZA,KAAK+1a,SAAW,GAIhB/1a,KAAKoxmB,UAAY,EAIjBpxmB,KAAKs9kC,oBAAqB,EAI1Bt9kC,KAAK6riC,kBAAoB,EAIzB7riC,KAAKinkC,eAAiB,IAAIkC,IAI1BnpkC,KAAKu9kC,eAAiB,KAItBv9kC,KAAKw9kC,kBAAmB,EAIxBx9kC,KAAKy9kC,kBAAoB,GAIzBz9kC,KAAK09kC,QAAU,EAIf19kC,KAAKwkjC,gBAAiB,EAItBxkjC,KAAK2rkC,oBAAqB,EAC1B3rkC,KAAK29kC,SAAW,EAChB39kC,KAAK49kC,aAAe,IACpB59kC,KAAK69kC,cAAgB,IAIrB79kC,KAAKg+4B,cAAgB,GACrBh+4B,KAAK89kC,UAAY,EACjB99kC,KAAK0gsB,aAAe,EACpB1gsB,KAAK+9kC,mBAAoB,EACzB/9kC,KAAKg+kC,oBAAqB,EAC1Bh+kC,KAAKq1pB,eAAiB,EACtBr1pB,KAAKo81B,eAAiB,GAItBp81B,KAAKi+kC,wBAAyB,EAC9Bj+kC,KAAKk+kC,aAAe,EACpBl+kC,KAAKm+kC,iBAAmB,GAIxBn+kC,KAAKk8jC,qBAAsB,EAI3Bl8jC,KAAKm8jC,aAAe,GAIpBn8jC,KAAKo+kC,gBAAkB,EACvBp+kC,KAAK+hjC,OAAS,EACd/hjC,KAAKiijC,OAAS,EAIdjijC,KAAKq+kC,UAAY,EAIjBr+kC,KAAKs+kC,SAAW,EAChBt+kC,KAAKu+kC,aAAe,EACpBv+kC,KAAKw+kC,aAAe,EACpBx+kC,KAAKy+kC,aAAe,EACpBz+kC,KAAK+xN,YAAc,EACnB/xN,KAAK0+kC,iBAAkB,EACvB1+kC,KAAK2+kC,uBAAwB,EAE7B3+kC,KAAK4+kC,eAAiB,KACtB5+kC,KAAK6+kC,8BAA+B,EAEpC7+kC,KAAK8+kC,cAAgB,KAIrB9+kC,KAAK++kC,iBAAmB,GAIxB/+kC,KAAK6qiC,yBAA0B,EAI/B7qiC,KAAKg/kC,WAAY,EACjBh/kC,KAAKi/kC,MAAQ,EACbj/kC,KAAKk/kC,MAAQ,EACbl/kC,KAAKm/kC,sBAAuB,EAC5Bn/kC,KAAKg7Y,QAAU,EACfh7Y,KAAK+6Y,QAAU,EACf/6Y,KAAKo/kC,aAAc,EACnBp/kC,KAAKq/kC,SAAU,EACfr/kC,KAAKo9kC,aAAc,EAEnBp9kC,KAAKs/kC,eAAiB,KACtBt/kC,KAAKomW,SAAW,EAChBpmW,KAAKu/kC,cAAgB,EAIrBv/kC,KAAKw/kC,iBAAkB,EACvBx/kC,KAAKy/kC,mBAAqB,GAC1Bz/kC,KAAK0/kC,eAAiB,GAItB1/kC,KAAK2/kC,gBAAiB,EACtB3/kC,KAAK4/kC,sBAAuB,EAI5B5/kC,KAAK6/kC,+BAAgC,EAIrC7/kC,KAAK6khB,KAAO,KAEZ7khB,KAAKk1E,OAAS,SAIdl1E,KAAK4kV,UAAY,KAIjB5kV,KAAKwpkC,UAAW,EAIhBxpkC,KAAKu35B,aAAc,EAInBv35B,KAAK8/kC,kBAAmB,EAIxB9/kC,KAAK+/kC,YAAa,EAIlB//kC,KAAKgglC,iBAAmB,EAIxBhglC,KAAKiglC,gBAAiB,EAItBjglC,KAAKkglC,qBAAsB,EAI3BlglC,KAAKmglC,aAAe,EAIpBnglC,KAAKoglC,cAAgB,EAIrBpglC,KAAKy0kC,sBAAwB,GAI7Bz0kC,KAAKqglC,gBAAiB,EAItBrglC,KAAKsglC,gBAAiB,EAItBtglC,KAAK4ojC,uBAAwB,EAI7B5ojC,KAAKkic,aAAc,EAInBlic,KAAKuglC,iBAAkB,EAKvBvglC,KAAKwglC,mBAAqB,KAI1BxglC,KAAK85iC,sBAAuB,EAI5B95iC,KAAKu8iC,eAAiB,EAItBv8iC,KAAKo8iC,kBAAmB,EAIxBp8iC,KAAKyglC,qBAAsB,EAI3BzglC,KAAK0glC,mBAAoB,EAKzB1glC,KAAK2glC,8BAAgC,KAIrC3glC,KAAK4glC,wBAA0B,GAK/B5glC,KAAKmjjC,kBAAoB,CAAC,EAK1BnjjC,KAAK6glC,iBAAmB,CAAC,EAIzB7glC,KAAKkjjC,iBAAkB,EAIvBljjC,KAAK2ljC,qBAAsB,EAI3B3ljC,KAAK8glC,YAAa,EAKlB9glC,KAAK+glC,oBAAsB,CAAC,EAI5B/glC,KAAK6kjC,mBAAoB,EAKzB7kjC,KAAKghlC,gBAAkB,KAIvBhhlC,KAAKihlC,mBAAoB,EAIzBjhlC,KAAKovkC,oBAAqB,EAI1BpvkC,KAAK4rkC,uBAAwB,EAI7B5rkC,KAAK2skC,uBAAwB,EAI7B3skC,KAAKkhlC,cAAe,EAIpBlhlC,KAAKmhlC,eAAgB,EAIrBnhlC,KAAKohlC,gBAAiB,EACtBphlC,KAAKqhlC,gBAAkB,EACvBrhlC,KAAKshlC,iBAAmB,EAIxBthlC,KAAKuhlC,qBAAsB,EAC3BvhlC,KAAKwhlC,aAAc,EACnBxhlC,KAAKyhlC,aAAe,GACpBzhlC,KAAK0hlC,iBAAmB,GACxB1hlC,KAAK2hlC,iBAAmB,GACxB3hlC,KAAK4hlC,uBAAwB,EAI7B5hlC,KAAK6hlC,gBAAkB,EAIvB7hlC,KAAK8hlC,YAAa,EAIlB9hlC,KAAK+hlC,SAAW,EAIhB/hlC,KAAKghjC,oBAAqB,EAI1BhhjC,KAAKm/uB,WAAa,EAIlBn/uB,KAAKgilC,cAAe,EAIpBhilC,KAAKqvkC,mBAAoB,EAIzBrvkC,KAAK6rkC,sBAAuB,EAI5B7rkC,KAAK4skC,sBAAuB,EAI5B5skC,KAAKiilC,uBAAwB,EAI7BjilC,KAAKkilC,YAAa,EAKlBlilC,KAAKmilC,sBAAwB,GAC7BnilC,KAAKoilC,mBAAoB,EAIzBpilC,KAAKqilC,cAAe,EAIpBrilC,KAAKs6iC,uBAAwB,EAK7Bt6iC,KAAK0wkC,oBAAsB,GAK3B1wkC,KAAKsilC,kBAAoB,CAAC,EAI1BtilC,KAAKk6iC,gBAAiB,EAItBl6iC,KAAK+ojC,qBAAsB,EAI3B/ojC,KAAK+rkC,SAAU,EAIf/rkC,KAAKmyjC,iBAAkB,EAIvBnyjC,KAAKuilC,gBAAiB,EAItBvilC,KAAKwilC,gBAAiB,EAItBxilC,KAAKyilC,eAAgB,EACrBzilC,KAAK0ilC,iBAAmB,GAKxB1ilC,KAAK2ilC,cAAe,EAKpB3ilC,KAAK4ilC,YAAa,EAKlB5ilC,KAAK6ilC,oBAAqB,EAK1B7ilC,KAAK8ilC,qBAAuB,EAK5B9ilC,KAAK+ilC,aAAe,EAKpB/ilC,KAAKqviC,aAAc,EACnBrviC,KAAKgjlC,yBAA2B,KAChChjlC,KAAKijlC,4BAA8B,GACnCjjlC,KAAKkjlC,oCAAsC,GAC3CljlC,KAAKmjlC,qCAAsC,EAK3CnjlC,KAAKojlC,WAAa,GAMlBpjlC,KAAKqjlC,YAAe,CAAC,iBAAkB,mBAAoB,iBAAkB,OAAQ,SAAU,QAAQ74hC,SAAStyB,UAAU8vT,WAAc9vT,UAAUggN,UAAU1tL,SAAS,QAAU,eAAgBt5B,SAK/LlxB,KAAKsjlC,YAAcprjC,UAAUggN,UAAUvtO,QAAQ,WAAa,IAAgD,IAA3CutB,UAAUggN,UAAUvtO,QAAQ,YAAqB3K,KAAKqjlC,YAIvHrjlC,KAAKujlC,oBAAsB,WACvB,IAAIngC,EAAa,GAEbA,EADAn8tB,GAAQh0D,MAA8B,SAAtBg0D,GAAQ1qT,KAAK73B,KAChBmrC,UAAU7e,OAAOor0B,eAAe3woB,QAAQ,WAGxCz6L,OAAOor0B,eAAe3woB,QAAQ,UAE/C,IAAI+33B,EAAoBxyjC,OAAOor0B,eAAe3woB,QAAQ,qBACtD,GAAmB,OAAf231B,EAAqB,CAErB,IAAIsZ,EAAa,CAAE+mB,OAAQrgC,EAAYogC,kBAAmBA,EAAmBtugC,OAAQ,SAAUirX,UAAW7gc,EAAM2piC,UAAU9zhC,QAAQghB,IAC9HsyK,EAAaz3K,OAAOor0B,eAAe3woB,QAAQ,UAC3Ci43B,EAAa1yjC,OAAOor0B,eAAe3woB,QAAQ,cAC/C,GAAIi43B,GAA6B,cAAfA,GAGd,GAD+B,cAAe,IAAItqQ,QAAQ,IAC5B,CAE1B,IAAIhG,EAAc9z0B,EAAMqklC,0BACpBC,EAAkBtklC,EAAM2piC,UAAUszB,oBAAoBr6kB,gBAAkB,UAAY,OACxF55b,MAAMo7hC,EAAa,IAAMj74B,EAAY,CACjCxuK,OAAQ,OACRsgzB,YAAaqpQ,EACbzu2B,QAASi+lB,EACT3/zB,KAAMg9B,KAAK+mF,UAAUkl8B,IAE7B,OAEK5vvB,MACLxtU,EAAMuklC,WAAWp74B,EAAYi03B,EAAYp9jC,EAEjD,CACA0xB,OAAOor0B,eAAerwoB,WAAWzsN,EAAM8jjC,WAAa,2BACpDpyhC,OAAOor0B,eAAerwoB,WAAWzsN,EAAM8jjC,WAAa,sBACpDpyhC,OAAOor0B,eAAerwoB,WAAWzsN,EAAM8jjC,WAAa,8BACpDpyhC,OAAOor0B,eAAerwoB,WAAWzsN,EAAM8jjC,WAAa,sBACpDpyhC,OAAOor0B,eAAerwoB,WAAWzsN,EAAM8jjC,WAAa,uBACpDpyhC,OAAOor0B,eAAerwoB,WAAWzsN,EAAM8jjC,WAAa,yBACpDpyhC,OAAOor0B,eAAerwoB,WAAWzsN,EAAM8jjC,WAAa,eACpDpyhC,OAAOor0B,eAAerwoB,WAAWzsN,EAAM8jjC,WAAa,iBACpDpyhC,OAAOor0B,eAAerwoB,WAAWzsN,EAAM8jjC,WAAa,qBACpDpyhC,OAAOor0B,eAAerwoB,WAAWzsN,EAAM8jjC,WAAa,aACpDpyhC,OAAOor0B,eAAerwoB,WAAW,UACjC/6L,OAAOor0B,eAAerwoB,WAAW,qBACjC/6L,OAAOor0B,eAAerwoB,WAAW,mBACjC/6L,OAAOor0B,eAAerwoB,WAAW,cACjC/6L,OAAOor0B,eAAerwoB,WAAW,SACrC,EAMA/rN,KAAK45jC,eAAiB,SAAU7iiC,GAC5B,IAAIivK,EAAQ,KACZA,EAAQ1mM,EACJA,EAAM2piC,UAAU5wsB,WAEhBryJ,EAAMio2B,gBAAgB9niC,MAAMy9H,OAASoiE,EAAMo/2B,eAAewQ,eAAiB5v3B,EAAMo/2B,eAAeoO,yBAA2B,GAAK,KAEhIxt3B,EAAMio2B,gBAAgB9niC,MAAMw9H,MAAQqiE,EAAMo/2B,eAAe2N,sBAAwB/s3B,EAAMo/2B,eAAe2N,sBAAsB5izB,YAAc,GAAK,OAI/InqE,EAAMio2B,gBAAgB9niC,MAAMw9H,MAAQqiE,EAAMo/2B,eAAewQ,eAAiB5v3B,EAAMo/2B,eAAeoO,yBAA2B,GAAK,KAE/Hxt3B,EAAMio2B,gBAAgB9niC,MAAMy9H,OAASoiE,EAAMo/2B,eAAe2N,sBAAwB/s3B,EAAMo/2B,eAAe2N,sBAAsB5izB,YAAc,GAAK,MAGpJ,IAEIwjzB,GAFsB3t3B,EAAMij2B,UAAU9zhC,QAAQ4vP,YAAc,EAAI/+D,EAAMij2B,UAAU9zhC,QAAQ4vP,YAAc/+D,EAAMij2B,UAAU9zhC,QAAQhP,MAAMqY,QAE/FwnL,EAAMo/2B,eAAewQ,eAAiB5v3B,EAAMo/2B,eAAeoO,yBAA2B,IAAMxt3B,EAAMo/2B,eAAe2N,sBAAwB/s3B,EAAMo/2B,eAAeqO,0BAA4B,GAEnO,GADAzt3B,EAAMio2B,gBAAgB9niC,MAAMqY,MAAQm1iC,EAAc,KAC9C3t3B,EAAMij2B,UAAUtiiB,cAAe,CAE/B,IAAI+vjB,EAAmB5pvB,KAAa9mI,EAAMij2B,UAAU9zhC,QAAQykB,cAAc,iBAAmBosK,EAAMghG,WAAW,qBAC1Gg3mB,EAAgB,EAChB8lM,EAA4B,EAIhC,GAHIptB,IACA14K,EAAgB04K,EAAiBjiyB,wBAAwB7rI,QAEzDo9C,EAAM+94B,6BAAgC98vB,GAAQM,WAAajoV,EAAM2piC,UAAUqf,kBAAoB,CAC/F,GAAsB,IAAlBtqK,EACA,GAAI1+4B,EAAM8ljC,eAAe6L,2BAGrBjzK,EADwBh4sB,EAAMghG,WAAW,sBACPvS,wBAAwB7rI,OAGlE,IAAKo9C,EAAMg+4B,8BAA+B,CACtC,IAAIC,EAAsBj+4B,EAAMghG,WAAW,yBAC3C88yB,EAA4BG,EAAsBA,EAAoBxvzB,wBAAwB7rI,OAAS,CAC3G,CAEAo9C,EAAMio2B,gBAAgB9niC,MAAMyiJ,OAASo9C,EAAMk+4B,iBAAiBl+4B,EAAMij2B,UAAU9zhC,QAAQs/Q,wBAAwB7rI,OAAQo1vB,EAAgB8lM,EACxI,KACK,CAED,IAAIK,EAA6Br3wB,KAAa9mI,EAAMij2B,UAAU9zhC,QAAQykB,cAAc,4BAA8BosK,EAAMghG,WAAW,uBAC/Ho9yB,EAA0B,EAC1BD,IACAC,EAA0BD,EAA2B1vzB,wBAAwB7rI,QAGjFo9C,EAAMio2B,gBAAgB9niC,MAAMyiJ,OAASo9C,EAAMk+4B,iBAAiBl+4B,EAAMij2B,UAAU9zhC,QAAQs/Q,wBAAwB7rI,OAAQo1vB,EAAgBomM,EACxI,CACJ,MAEIp+4B,EAAMio2B,gBAAgB9niC,MAAMyiJ,OAASo9C,EAAMk+4B,iBAAiBl+4B,EAAMij2B,UAAU9zhC,QAAQs/Q,wBAAwB7rI,OAAQ,GAExH,GAAIo9C,EAAMij2B,UAAU+qB,oBAAuB/suB,GAAQM,WAAajoV,EAAM2piC,UAAUqf,kBAAoB,CAChG,IAAIgR,EAAoBtz3B,EAAMghG,WAAW,wBACrCsyxB,IACAA,EAAkBnzjC,MAAMyiJ,OAASo9C,EAAMk+4B,iBAAiBl+4B,EAAMij2B,UAAU9zhC,QAAQs/Q,wBAAwB7rI,OAAQ,GAExH,CAC2C,QAAvCo9C,EAAMio2B,gBAAgB9niC,MAAMyiJ,SACc,SAAtCo9C,EAAMij2B,UAAUrg5B,OAAO9xI,YACvBkvL,EAAMij2B,UAAUrg5B,OAAS,IACzBo9C,EAAMio2B,gBAAgB9niC,MAAMyiJ,OAASo9C,EAAMij2B,UAAUrg5B,OAAS,MAG9Do9C,EAAMio2B,gBAAgB9niC,MAAMyiJ,OAASo9C,EAAMij2B,UAAU9zhC,QAAQhP,MAAMyiJ,QAGjC,QAAtCo9C,EAAMio2B,gBAAgB9niC,MAAMqY,QACa,SAArCwnL,EAAMij2B,UAAUzqhC,MAAM1H,YACtBkvL,EAAMij2B,UAAUzqhC,MAAQ,IACxBwnL,EAAMio2B,gBAAgB9niC,MAAMqY,MAAQwnL,EAAMij2B,UAAUzqhC,MAAQ,MAG5DwnL,EAAMio2B,gBAAgB9niC,MAAMqY,MAAQwnL,EAAMij2B,UAAU9zhC,QAAQhP,MAAMqY,OAG1EwnL,EAAMwz2B,cAAcrziC,MAAMqY,MAAQwnL,EAAMio2B,gBAAgBlpyB,YAAc,KAC5B,IAAtC/+D,EAAMio2B,gBAAgBlpyB,cACtB/+D,EAAMwz2B,cAAcrziC,MAAMqY,MAAQwnL,EAAMij2B,UAAU9zhC,QAAQhP,MAAMqY,OAE/DsuT,MACG9mI,EAAMij2B,UAAUtiiB,eAEhB3gU,EAAMij2B,UAAUtiiB,cAAc09kB,gBAAiBr+4B,EAAMo/2B,eAAewQ,eAAiB5v3B,EAAMo/2B,eAAeiW,8BAAgCr13B,EAAMij2B,UAAU9zhC,QAAQ4vP,aAGtKzlQ,EAAM2piC,UAAU0tB,eAAiBr3jC,EAAM2piC,UAAU2qB,qBACjD5t3B,EAAMij2B,UAAU2qB,oBAAoBC,mBAAmB7t3B,EAAM6l2B,kBAAoB,IAEjF7l2B,EAAMij2B,UAAUyE,kBAAsBzmtB,GAAQM,WAAYjoV,EAAM2piC,UAAUqf,mBAC1Eti3B,EAAMij2B,UAAUyE,iBAAiB42C,wBAEjB,IAAhB3wB,IACK3t3B,EAAMo/2B,eAAe8L,oBACtBlr3B,EAAM8t3B,mBAGV7suB,GAAQM,WAAajoV,EAAM2piC,UAAUqf,mBACrCti3B,EAAMoz3B,wBAAwBjzjC,MAAMw9H,KAAQgw7B,EAAcjjhC,WAAWs1J,EAAMoz3B,wBAAwBjzjC,MAAMqY,OAAU,KACnHwnL,EAAMu+4B,sBAAsBp+kC,MAAMw9H,KAAQgw7B,EAAc,EAAMjjhC,WAAWs1J,EAAMu+4B,sBAAsBp+kC,MAAMqY,OAAS,EAAK,KACzHwnL,EAAMu+4B,sBAAsBp+kC,MAAM+nJ,IAAO83C,EAAMij2B,UAAU9zhC,QAAQ+vP,aAAe,EAAK,KACrFl/D,EAAMw+4B,iCAGNx+4B,EAAMo/2B,eAAe2V,mBACrB/03B,EAAMo/2B,eAAeoS,+BACjBzgiC,GAAwB,WAAfA,EAAMnqB,MACfo5L,EAAMy32B,gBAAgB9C,oBAG1B302B,EAAMo/2B,eAAewQ,iBACrB5v3B,EAAMo/2B,eAAewQ,eAAezvjC,MAAMyiJ,OAASo9C,EAAMio2B,gBAAgB9niC,MAAMyiJ,OAEvF,EAKA5oJ,KAAKyklC,2BAA6B,SAAU1tjC,GACxCz3B,EAAMspjC,uBAAwB,EAC9B,IAAInja,GAAW,EACfnmpB,EAAM4ic,aAAc,EACpB,IAAI75b,EAAS0uB,EAAM1uB,OACnB,GAAqB,IAAjB0uB,EAAMwC,SAAiBj6B,EAAM4zjC,8BAAgC5zjC,EAAMollC,qBAAqB3tjC,GAAO,GAAQ,CACvGz3B,EAAMy+kC,mBAAoB,EAEL,IAAjBhnjC,EAAMH,QAAqC,2BAArBvuB,EAAOtH,WAA+D,oBAArBsH,EAAOtH,YAC9E0kpB,GAAW,EACXnmpB,EAAMm8jC,sBAAqB,IAE/Bn8jC,EAAM+1pB,eAAiB/1pB,EAAM2uiC,gBAAgB9/4B,UAAY7uJ,EAAMkriC,gBAC/DlriC,EAAMyijC,OAAShrhC,EAAMsC,QACrB/5B,EAAM2ijC,OAASlrhC,EAAMuC,QACrBh6B,EAAM++kC,UAAYtnjC,EAAMsC,QACxB/5B,EAAMg/kC,SAAWvnjC,EAAMuC,QAEvB,IAAI25P,IAAS/hQ,SAASm5H,cAClB/qJ,EAAM2piC,UAAU0B,qBAAwBrriC,EAAMollC,qBAAqB3tjC,GAAO,IAAUz3B,EAAMuriC,0BACrF53wB,GAA6B,2BAArB5qR,EAAOtH,WAA+D,wBAArBsH,EAAOtH,WAA4D,4BAArBsH,EAAOtH,WACvF,2BAArBsH,EAAOtH,WACVg2B,EAAM1oB,iBAEe,iBAArBhG,EAAOtH,WACPzB,EAAM2piC,UAAU0B,oBAAoBg6C,qBAGhD,CACIrllC,EAAMollC,qBAAqB3tjC,GAAO,KAClCz3B,EAAMy+kC,mBAAoB,GAE1Bz+kC,EAAM0/kC,YACN1/kC,EAAM2/kC,MAAQlojC,EAAMivH,MACpB1mJ,EAAM4/kC,MAAQnojC,EAAMkvH,MAEhB3mJ,EAAM2uiC,gBAAgB/6gC,SAAS6D,EAAM1uB,SAAY0uB,EAAM1uB,SAAW/I,EAAM2uiC,iBAAqBl3gC,EAAM1uB,SAAW/I,EAAMk6iC,eAAkBl6iC,EAAM0/kC,YAC5I1/kC,EAAM2uiC,gBAAgB9niC,MAAM+yiB,OAAS,cAGzC55iB,EAAMwpjC,mCAAqCxpjC,EAAM2hlC,oBAA4C,wBAArB54kC,EAAOtH,WAA6D,mBAArBsH,EAAOtH,WAAkCc,MAAMvC,EAAM2nkC,eAAeC,gBAC3L5nkC,EAAMsllC,iBAAiB7tjC,GAEvBz3B,EAAM2piC,UAAU9p6B,YAAc7/H,EAAM2piC,UAAU9p6B,WAAWg27B,4BAA4B0vB,qBAChFp/b,IACDnmpB,EAAM2piC,UAAUgb,iBAAiBkR,4BAA4B2vB,mBAAoB,EACjFxllC,EAAMyllC,qBACNt/b,GAAW,IAGf34U,MACAxtU,EAAM89d,iBAAiBrmc,EAE/B,EAKA/2B,KAAKgllC,yBAA2B,SAAUjujC,GACtC,IAAKz3B,EAAM4zjC,4BAA6B,CAChC5zjC,EAAMy+kC,oBACFz+kC,EAAM2llC,kBACN5ujC,aAAa/2B,EAAM2llC,iBACnB3llC,EAAM2llC,gBAAkB,MAEvB3llC,EAAM+1pB,eAAiB/1pB,EAAMkriC,kBAAqBlriC,EAAM2uiC,gBAAgB9/4B,WACzE7uJ,EAAM4llC,sBAAsB5llC,EAAMusiC,oBAG1C,IAAIs5C,GAA2B,EAC3BpujC,EAAM1uB,SACwB,2BAA1B0uB,EAAM1uB,OAAOtH,WAA2E,IAAjCg2B,EAAM1uB,OAAO8tB,GAAGxD,MAAM,IAAK,KAClFwyjC,EAA2Bj0jC,SAASg8T,eAAen2T,EAAM1uB,OAAO8tB,GAAGxD,MAAM,IAAK,IAAI/jB,UAExD,kBAA1BmoB,EAAM1uB,OAAOtH,WAAiCg2B,EAAM1uB,OAAOvC,SAAS,KACpEq/kC,EAA2BpujC,EAAM1uB,OAAOvC,SAAS,GAAG8I,WAGxDu2kC,GAA4B7llC,EAAM2piC,UAAU9p6B,YAC5C7/H,EAAM2piC,UAAU9p6B,WAAWq4gB,kBAE3Bl4oB,EAAMwpjC,kCAAqCq8B,IAA6B7llC,EAAM2hlC,mBAAsC,aAAjB3hlC,EAAM41E,SACzG51E,EAAM8llC,eAAerujC,GACjBz3B,EAAM2piC,UAAU9p6B,YAChB7/H,EAAM2piC,UAAU9p6B,WAAWkm9B,uBAG/B/llC,EAAM2piC,UAAUjmmB,cAAcmmnB,WAAW/ljC,OAAS,EAE7C2oU,GAAkBzsU,EAAM2piC,UAAUh0a,UAAalpT,GAAkBzsU,EAAM2piC,UAAUh0a,QAAQq0b,4BAA+BriuB,GAAQM,UACjIjoV,EAAM2piC,UAAUh0a,QAAQq0b,0BAA0BC,oBAAmB,GAKpEx9uB,GAAkBzsU,EAAM2piC,UAAUh0a,UAAalpT,GAAkBzsU,EAAM2piC,UAAUh0a,QAAQq0b,4BAA+BriuB,GAAQM,UACjIjoV,EAAM2piC,UAAUh0a,QAAQq0b,0BAA0BC,oBAAmB,GAG7EjqjC,EAAM4ic,aAAc,EAEpB,IAAIq2oB,EAAiBrnjC,SAASg8T,eAAe5tV,EAAM2piC,UAAU9zhC,QAAQghB,GAAK,iBAC1E,GAAIoijC,GAAmD,UAAjCA,EAAepykC,MAAMi+J,SACnC9kK,EAAM2piC,UAAUjmmB,eACyC,IAArD1jc,EAAM2piC,UAAUjmmB,cAAc5tP,YAAYhyM,OAAc,CAExD,IAAIkilC,EAAkBp0jC,SAASg8T,eAAe5tV,EAAM2piC,UAAU9zhC,QAAQghB,GAAK,sBAAwB72B,EAAM2piC,UAAU4C,mBAC/Gy5C,GACAA,EAAgBt4vB,cAAc,GAAGujiB,YAAW,GAGhD,IAAIg1N,EAAcr0jC,SAASg8T,eAAe5tV,EAAM2piC,UAAUjmmB,cAAc5tP,YAAY,GAAG6x2B,WACnFs+B,IACKA,EAAYr9zB,UAAUh1P,SAAS,yBAChCqyjC,EAAY7wjC,WAAWsuP,QAGnC,CAGR,GAAqB,IAAjBjsP,EAAMwC,SAAiBj6B,EAAMollC,qBAAqB3tjC,GAAO,GAAQ,CAEjE,IAAIyujC,EAAgBzujC,EAAM1uB,OACtBkqV,EAAUx7T,EAAMsC,QAChBm5T,EAAUz7T,EAAMuC,QAChByn3B,EAAazh5B,EAAMkriC,gBACnB10nB,EAAYx2a,EAAMusiC,kBACtB,GAAI25C,EAAe,CAEf,IAAIC,EAAaD,EAAcrvjC,GAAGxD,MAAM,UAAU,IAAM6yjC,EAAcrvjC,GAAGxD,MAAM,eAAe,IAAM6yjC,EAAcrvjC,GAAGxD,MAAM,sBAAsB,IAAM6yjC,EAAcrvjC,GAAGxD,MAAM,aAAa,IAAM6yjC,EAAcrvjC,GAAGxD,MAAM,cAAc,IAAM6yjC,EAAcrvjC,GAAGxD,MAAM,KAAK,GAGxQ,GADAmjZ,EAAYvpZ,SAASk5jC,GACjB5jlC,MAAMi0a,IAAcx2a,EAAM2piC,UAAUynC,oBAAqB,CACzD,IAAIgV,EAAqBpmlC,EAAM2piC,UAAUynC,oBAAoBtqkC,QAAO,SAAUu/kC,GAAmB,OAAQA,EAAgBxvjC,IAAMqvjC,EAAcrvjC,IAAQwvjC,EAAgBxvjC,IAAMqvjC,EAAcrvjC,GAAGxD,MAAM,KAAK,EAAK,IACxM+yjC,EAAmBtilC,OAAS,IAC5B0ya,EAAY4vqB,EAAmB,GAAG5vqB,UAE1C,CACJ,CACA,IAAI2znB,EAAUnqiC,EAAM0nS,WAAW,YAAc8uI,GAC7C,GAAI2znB,EAAS,CACT,IAAIs+B,EAAkBt+B,EAAQh1wB,wBAC9B89D,GAAWx7T,EAAMsC,QAAU0uiC,EAAgBpk8B,MAAQo9wB,EACnDvujB,GAAWz7T,EAAMuC,QAAUyuiC,EAAgB756B,KAAO6yvB,CACtD,CAEIykM,GAAiBA,EAAct9zB,YAAcs9zB,EAAct9zB,UAAUh1P,SAAS,oBAAsBsyjC,EAAct9zB,UAAUh1P,SAAS,yBAErI5zB,EAAM2piC,UAAU28C,cAAcrzvB,EAASC,EAASsjF,EAAY,GACxDx2a,EAAM2piC,UAAUsR,mBAAqBj7iC,EAAM2piC,UAAUyiC,oBACrDpskC,EAAM2piC,UAAUsR,iBAAiBh9mB,eAGrCj+b,EAAMumlC,iCAAmCvmlC,EAAMwmlC,qBAC/CxmlC,EAAM2piC,UAAUgb,iBAAiBsE,2BAA2Bw9B,8BAA8BhvjC,GAE1Fz3B,EAAM2piC,UAAUyiC,qBAAuBpskC,EAAM2piC,UAAUgb,kBACvD3kjC,EAAM2piC,UAAUyiC,mBAAmBroK,aAAavtf,GAGhDx2a,EAAM2uiC,gBAAgB/6gC,SAAS6D,EAAM1uB,SAAY0uB,EAAM1uB,SAAW/I,EAAM2uiC,iBAAqBl3gC,EAAM1uB,SAAW/I,EAAMk6iC,eAAkBl6iC,EAAM0/kC,YAC5I1/kC,EAAM2uiC,gBAAgB9niC,MAAM+yiB,OAAS,OACrC55iB,EAAM2uiC,gBAAgB9niC,MAAM+yiB,OAAS,eACrC55iB,EAAM2uiC,gBAAgB9niC,MAAM+yiB,OAAS,YACrC55iB,EAAM2uiC,gBAAgB9niC,MAAM+yiB,OAAS,OAE7C,CACA55iB,EAAMy+kC,mBAAoB,CAC9B,CACJ,EAKA/9kC,KAAKgmlC,eAAiB,SAAUjvjC,GAE5Bz3B,EAAMsjlC,WAAa7rjC,EAAM8yH,YAAe9yH,EAAM8yH,eAAiC,EAAhB9yH,EAAM6yH,QAAsBhmJ,KAAK8Y,IAAIqa,EAAM6yH,QAAU,GAA2B,IAApB7yH,EAAMizH,SACrI,EAKAhqJ,KAAKimlC,sBAAwB,SAAUlvjC,GACnCA,EAAM1oB,iBACN0oB,EAAMzoB,kBACNhP,EAAMwjlC,qBAAuBxjlC,EAAM2piC,UAAUi9C,cAAcnlM,UAC/D,EAKA/g5B,KAAKmmlC,uBAAyB,SAAUpvjC,GACpCA,EAAM1oB,iBACN0oB,EAAMzoB,kBACN,IAAI83kC,EAAOrvjC,EAAMsC,QACbgtjC,EAAOtvjC,EAAMuC,QACbikc,EAAQ13c,QAAQvmB,EAAMwjlC,qBAAuB/rjC,EAAMwmc,OAAO76W,QAAQ,IACjEpjH,EAAMujlC,qBACPvjlC,EAAMujlC,oBAAqB,EAC3BvjlC,EAAM2piC,UAAUi9C,cAAcI,kBAAkBF,EAAMC,EAAc,IAAR9onB,GAC5Dnnc,YAAW,WACP92B,EAAMujlC,oBAAqB,CAC/B,GAAG,IAEX,EAKA7ilC,KAAKumlC,oBAAsB,SAAUxvjC,GACjCA,EAAM1oB,iBACN0oB,EAAMzoB,iBACV,EAKAtO,KAAKwmlC,4BAA8B,SAAUzvjC,GAKzC,GAJAz3B,EAAM0+kC,oBAAqB,EACvB1+kC,EAAMmnlC,4BACN1vjC,EAAM1oB,iBAEN0oB,EAAMa,QAAS,CACf,IAAI8ujC,EAAiB,IACjBpnlC,EAAM2piC,UAAUwE,oBAAsBnuiC,EAAM2piC,UAAUi9C,cAAcnlM,WAAazh5B,EAAM2piC,UAAU09C,UAAY,KAC7GD,EAAiB,KAEjBpnlC,EAAM2piC,UAAUwE,oBAAsBnuiC,EAAM2piC,UAAUi9C,cAAcnlM,WAAazh5B,EAAM2piC,UAAU09C,WAAa,KAC9GD,EAAiB,IAEjBpnlC,EAAMsjlC,aAAetjlC,EAAMgklC,cAC3BoD,GAAkCpnlC,EAAMyjlC,cAGxCzjlC,EAAM2piC,UAAUwE,sBACZ12gC,EAAM+yH,WAAa,EACnBxqJ,EAAM2piC,UAAUi9C,cAAcI,kBAAkBvvjC,EAAM7c,EAAG6c,EAAM5c,EAA+C,IAA3C7a,EAAM2piC,UAAUi9C,cAAcnlM,WAAoB2lM,GAGrHpnlC,EAAM2piC,UAAUi9C,cAAcI,kBAAkBvvjC,EAAM7c,EAAG6c,EAAM5c,EAA+C,IAA3C7a,EAAM2piC,UAAUi9C,cAAcnlM,WAAoB2lM,IAG7HpnlC,EAAMsjlC,YAAa,CACvB,CACItjlC,EAAM2piC,UAAUwE,sBAChBnuiC,EAAM2piC,UAAUwE,oBAAoBm5C,2BAChC7vjC,EAAMa,SACNb,EAAM1oB,iBAEV/O,EAAM2piC,UAAUwE,oBAAoBo5C,wBAAwB9vjC,IAE5Dz3B,EAAM2piC,UAAU0B,sBAAwBrriC,EAAMuriC,yBAC1CvriC,EAAMy+kC,oBACDhnjC,EAAM1uB,OAAO6/Q,UAAUh1P,SAAS,cACjC5zB,EAAM2piC,UAAU0B,oBAAoBm8C,0BAA0BxnlC,EAAMusiC,kBAAoB,GAIxG,EAKA7riC,KAAK+mlC,gBAAkB,SAAUhwjC,GAC7B,IACIiwjC,MADQ9ujC,UAAU8vT,SAAS7wU,MAAM,4BACV4f,EAAMgB,QACjC,KAAKz4B,EAAM2nlC,+BAAgC3nlC,EAAM2piC,UAAUgb,mBAC6B,IAAhF3kjC,EAAM2piC,UAAUgb,iBAAiByE,yBAAyBC,oBACW,IAAlErpjC,EAAM2piC,UAAUgb,iBAAiBijC,mBAAmBC,cAG1DpwjC,EAAMa,UAAYovjC,GACnB,OAAQjwjC,EAAMz2B,SACV,KAAK,GACD,IAAIsgJ,EAAgB1vH,SAAS0vH,cACC,UAA1BA,EAAcx4G,SAAiD,aAA1Bw4G,EAAcx4G,SAA2Bw4G,EAAcwm8B,mBAC5F9nlC,EAAM+nlC,iBAAiBtwjC,GAE3B,MACJ,KAAK,GACD,GAAIz3B,EAAM2piC,UAAUh0a,QAAS,CAYzB,GAXA31nB,EAAM2piC,UAAUh0a,QAAQqyd,mBACxBholC,EAAM2piC,UAAUh0a,QAAQsyd,4BACxBjolC,EAAM2piC,UAAUh0a,QAAQuyd,mBACpBlolC,EAAM2piC,UAAUh0a,QAAQkjc,0BACpBrrvB,KACAxtU,EAAM2piC,UAAUh0a,QAAQkjc,wBAAwBsvB,2BAGhDnolC,EAAM2piC,UAAUh0a,QAAQkjc,wBAAwBuvB,oBAGpDpolC,EAAM2piC,UAAU0+C,8BAAgCz2jC,SAASg8T,eAAe,iCAAkC,CAC1G,IAAImjvB,EAAmBn/iC,SAASg8T,eAAe,iCAC3CmjvB,GACAA,EAAiBl9iC,QAEzB,CACA7zB,EAAM2piC,UAAUpkhB,KAAO,GACvBvlhB,EAAMm8jC,sBACV,CACA,MACJ,KAAK,GACD,GAAIn8jC,EAAM2piC,UAAUyiC,oBACI,YAAf30iC,EAAMnqB,MAAwC,KAAlBmqB,EAAMz2B,SAC/By2B,EAAM1uB,SAAW0uB,EAAM1uB,OAAO8tB,IAAMY,EAAM1uB,OAAOpD,WAAa3F,EAAM2piC,UAAU0nC,qBAAsB,CACpG,IAAItpM,OAAU,EACMtw2B,EAAM1uB,OAGtBg/3B,EAFCtw2B,EAAM1uB,OAAOpD,WAAa8xB,EAAM1uB,OAAO8tB,GACxBY,EAAM1uB,OAAOwtR,cACL1/P,GAAGxD,MAAM,yBAAyB,GAG1CoE,EAAM1uB,OACE8tB,GAAGxD,MAAM,KAAK,GAE1C,IAAK,IAAIxmB,EAAI,EAAGA,EAAI7M,EAAM2piC,UAAU0nC,qBAAqBvtkC,OAAQ+I,IAAK,CAClE,IAAIy7kC,EAAYtolC,EAAM2piC,UAAU0nC,qBAAqBpkjC,SAASpgB,EAAE2K,WAAY,KACxEuw3B,IAAYugN,EAAUzxjC,IAA0B,mBAAnByxjC,EAAUh7kC,MAAgD,iBAAnBg7kC,EAAUh7kC,OAC9EtN,EAAM2piC,UAAU4+C,wBAAwB,mBAAoBvolC,EAAM2piC,UAAU0nC,qBAAqBpkjC,SAASpgB,EAAE2K,WAAY,MACxHigB,EAAM1oB,iBAEd,CACJ,CAGR,MACJ,KAAK,GACD,GAAI/O,EAAM2piC,UAAUyiC,oBACI,YAAf30iC,EAAMnqB,MAAwC,KAAlBmqB,EAAMz2B,SAC/By2B,EAAM1uB,QAAU0uB,EAAM1uB,OAAO8tB,IAAM72B,EAAM2piC,UAAUkgB,WACnD,IAASh9iC,EAAI,EAAGA,EAAI7M,EAAM2piC,UAAUkgB,WAAW/ljC,OAAQ+I,IAAK,CACxD,IAAIo/jC,EAAYjskC,EAAM2piC,UAAUkgB,WAAW58hC,SAASpgB,EAAE2K,WAAY,KAClE,GAAIigB,EAAM1uB,OAAO8tB,GAAGxD,MAAM,KAAK,KAAO44iC,EAAUp1iC,IAA6C,aAAtCo1iC,EAAUt2B,wBAAyC,CACtG31iC,EAAM2piC,UAAUyiC,mBAAmBoc,iBAAiB/wjC,GACpDA,EAAM1oB,iBACN,KACJ,CACJ,CAIZ,MACJ,KAAK,EACD,GAAI0oB,EAAM1uB,SAAW0uB,EAAM1uB,OAAO8tB,IAAMY,EAAM1uB,OAAOpD,WAAa3F,EAAM2piC,UAAU0nC,uBAE3C,yBAA3B55iC,EAAM1uB,OAAOtH,WAAwCg2B,EAAM1uB,OAAO8tB,KAAO72B,EAAM2piC,UAAU9zhC,QAAQghB,GAAK,oBAAoB,CAC1H,IAGI6smB,EAHA+kd,OAAY,EACZC,OAAa,EACb12iB,EAAkBv6gB,EAAM1uB,OAEvB0uB,EAAM1uB,OAAOpD,WAAa8xB,EAAM1uB,OAAO8tB,IACxCm7gB,EAAkBv6gB,EAAM1uB,OAAOwtR,cAC/BmtW,EAAO1xF,EAAgBn7gB,GAAGxD,MAAM,yBAAyB,KAGzD2+gB,EAAkBv6gB,EAAM1uB,OACxB26nB,EAAO1xF,EAAgBn7gB,GAAGxD,MAAM,UAAU,IAE1CrzB,EAAM2piC,UAAUyiC,qBACX30iC,EAAMc,UAA0B,QAAdd,EAAMzqB,KACzB07kC,EAAa1olC,EAAM2piC,UAAU0nC,qBAAqBznjC,WAAU,SAAUk2F,GAAS,OAAOA,EAAMjpF,KAAO6smB,CAAM,IACzG+kd,EAAYC,EAAa,EAAI1olC,EAAM2piC,UAAU0nC,qBAAqBqX,EAAa,GAAK1olC,EAAM2piC,UAAU0nC,qBAAqBrxkC,EAAM2piC,UAAU0nC,qBAAqBvtkC,OAAS,KAGvK4klC,EAAa1olC,EAAM2piC,UAAU0nC,qBAAqBznjC,WAAU,SAAUk2F,GAAS,OAAOA,EAAMjpF,KAAO6smB,CAAM,IACzG+kd,EAAYC,EAAa,EAAI1olC,EAAM2piC,UAAU0nC,qBAAqBvtkC,OAAS9D,EAAM2piC,UAAU0nC,qBAAqBqX,EAAa,GAAK1olC,EAAM2piC,UAAU0nC,qBAAqB,IAE3KrxkC,EAAM2piC,UAAUg/C,eAAeF,GAC/BhxjC,EAAM1oB,kBAEL/O,EAAM2piC,UAAU0gB,cACmB,2BAA9Br4gB,EAAgBvwiB,YACbg2B,EAAMc,UAA0B,QAAdd,EAAMzqB,KACzB07kC,EAAa1olC,EAAM2piC,UAAU0nC,qBAAqBznjC,WAAU,SAAUk2F,GAAS,OAAOA,EAAMjpF,KAAOm7gB,EAAgBn7gB,EAAI,IACvH4xjC,EAAYC,EAAa,EAAI1olC,EAAM2piC,UAAU0nC,qBAAqBqX,EAAa,GAAK1olC,EAAM2piC,UAAU0nC,qBAAqBrxkC,EAAM2piC,UAAU0nC,qBAAqBvtkC,OAAS,KAGvK4klC,EAAa1olC,EAAM2piC,UAAU0nC,qBAAqBznjC,WAAU,SAAUk2F,GAAS,OAAOA,EAAMjpF,KAAOm7gB,EAAgBn7gB,EAAI,IACvH4xjC,EAAYC,EAAa,EAAI1olC,EAAM2piC,UAAU0nC,qBAAqBvtkC,OAAS9D,EAAM2piC,UAAU0nC,qBAAqBqX,EAAa,GAAK1olC,EAAM2piC,UAAU0nC,qBAAqB,IAE3KrxkC,EAAM2piC,UAAUg/C,eAAeF,GAC/BhxjC,EAAM1oB,iBAGlB,CAGR,GAAI0oB,EAAM1uB,QAAU0uB,EAAM1uB,OAAO8tB,IAAM72B,EAAM2piC,UAAUkgB,WACnD,IAASh9iC,EAAI,EAAGA,EAAI7M,EAAM2piC,UAAUkgB,WAAW/ljC,OAAQ+I,IAAK,CACxD,IAAI8/jC,EAAc3skC,EAAM2piC,UAAUkgB,WAAW58hC,SAASpgB,EAAE2K,WAAY,KACpE,GAAIigB,EAAM1uB,OAAO8tB,KAAO81iC,EAAY91iC,GAAI,CAEpC,IAAIipF,EAAQ,CACRx9G,MAAOqqkC,EAAYrqkC,MAAO4gd,WAAYypnB,EAAYzpnB,WAAYvjK,SAAUgtxB,EAAYhtxB,SAAUu3R,UAAWy1f,EAAYz1f,UAErH//c,MAAOw18B,EAAYx18B,MAAOmnW,gBAAiBqumB,EAAYrumB,gBAAiB5hN,UAAWiwzB,EAAYjwzB,UAAWijI,WAAYgtrB,EAAYhtrB,WAAY13I,WAAY0k0B,EAAY1k0B,WAEtK35L,UAAWq+/B,EAAYr+/B,UAAWrzD,WAAY0xjC,EAAY1xjC,WAAYwxjC,QAASE,EAAYF,QAASx5pB,SAAU05pB,EAAY/6T,YAAahlV,QAAS+/oB,EAAY//oB,QAE5Jpta,QAASmtjC,EAAYntjC,QAASkta,UAAWigpB,EAAYjgpB,UAAW2P,WAAYswoB,EAAYtwoB,YAE5Fr8b,EAAM2piC,UAAUuR,sBAAsBp77B,EAAO6s9B,EAAYn2pB,UAC7D,CACJ,EAKpB,EAKA91a,KAAKkolC,yBAA2B,SAAUnxjC,GACtC,IAAIoxjC,IAAQjwjC,UAAU8vT,SAAS7wU,MAAM,2BACjC6vkC,IAAemB,GAAQpxjC,EAAMgB,QACjC,IAAKz4B,EAAM2nlC,+BAAgC3nlC,EAAM2piC,UAAUgb,mBAC6B,IAAhF3kjC,EAAM2piC,UAAUgb,iBAAiByE,yBAAyBC,oBACW,IAAlErpjC,EAAM2piC,UAAUgb,iBAAiBijC,mBAAmBC,UAF/D,CAKA,GAAIpwjC,EAAMa,SAAWovjC,EAAc,CAE/B,GAAKjwjC,EAAMc,WAAaswjC,GAAWA,IAAUpxjC,EAAMc,SAC/C,OAAQd,EAAMz2B,SACV,KAAK,GACL,KAAK,GACDy2B,EAAM1oB,iBAC0B,IAA5B/O,EAAMusiC,mBACNvsiC,EAAM8olC,gBAAgB,GAE1B,MACJ,KAAK,GACL,KAAK,GACDrxjC,EAAM1oB,iBACF/O,EAAMusiC,oBAAsBvsiC,EAAM8xmB,WAClC9xmB,EAAM8olC,gBAAgB9olC,EAAM8xmB,UAAY,GAOxD,OAAQr6kB,EAAMz2B,SACV,KAAK,GACGhB,EAAM2piC,UAAUtiiB,eAAiBrngB,EAAM2piC,UAAU0tB,eACjDr3jC,EAAM2piC,UAAUtiiB,cAAc0hlB,kBAAkBtxjC,GAEpD,MACJ,KAAK,GACGz3B,EAAM2piC,UAAU0B,qBAAuBrriC,EAAM2piC,UAAU2B,sBAAwBtriC,EAAMuriC,0BACrF9zgC,EAAM1oB,iBACN/O,EAAM2piC,UAAU0B,oBAAoB29C,aAEpChplC,EAAM2piC,UAAUjmmB,cAAc5tP,YAAYhyM,QAAU9D,EAAM2piC,UAAUjmmB,cAAcmmnB,WAAW/ljC,UAC7F9D,EAAM2piC,UAAU76gC,OAChB9uB,EAAMi9oB,kBAAkB/0H,eAAiB,QAE7C,MACJ,KAAK,GACGlohB,EAAM2piC,UAAUyE,kBAAoBpuiC,EAAM2piC,UAAU8xC,mBACpDhkjC,EAAM1oB,iBACN/O,EAAM2piC,UAAUtiiB,cAAc4hlB,2BAElC,MACJ,KAAK,GACGjplC,EAAM2piC,UAAU/kY,aAAe5kqB,EAAM2piC,UAAUkyC,cAC/CpkjC,EAAM1oB,iBACN/O,EAAM2piC,UAAU77tB,MAAMA,SAE1B,MACJ,KAAK,GACG9tU,EAAM2piC,UAAUgb,kBAChB3kjC,EAAM2piC,UAAUgb,iBAAiB3llB,OAErC,MACJ,KAAK,IACGh/d,EAAM2piC,UAAUjmmB,cAAc5tP,YAAYhyM,QAAU9D,EAAM2piC,UAAUjmmB,cAAcmmnB,WAAW/ljC,UAC7F9D,EAAM2piC,UAAUu/C,MAChBlplC,EAAMi9oB,kBAAkB/0H,eAAiB,OAE7C,MACJ,KAAK,GACGlohB,EAAM2piC,UAAUgb,kBAChB3kjC,EAAM2piC,UAAUgb,iBAAiB1llB,OAErC,MACJ,KAAK,GAED,GAAKj/d,EAAM2piC,UAAU9p6B,YAAc7/H,EAAM2piC,UAAU9p6B,WAAWsq7B,eAAmBnqjC,EAAM2piC,UAAUkgB,YAAc7pjC,EAAM2piC,UAAU0gB,cAAgBrqjC,EAAM2piC,UAAU0gB,aAAaF,cAAgB,CACxL,IAAIg/B,OAAwB,EACxBC,EAAcx3jC,SAASg8T,eAAe5tV,EAAM2piC,UAAU9zhC,QAAQghB,GAAK,eACnEuyjC,IACAD,EAAsD,SAA9BC,EAAYvilC,MAAMi+J,SAEzCqk7B,IAAyBnplC,EAAM2piC,UAAU0gB,cAAiBrqjC,EAAM2piC,UAAU0gB,aAAag/B,uBACxFrplC,EAAM2piC,UAAUptjB,QAChBv8e,EAAMi9oB,kBAAkB/0H,eAAiB,QAEjD,EAKZ,CACIlohB,EAAM2piC,UAAUwE,qBAChBnuiC,EAAM2piC,UAAUwE,oBAAoBm7C,uBAAuB7xjC,EAtF/D,CAwFJ,EAKA/2B,KAAK6olC,2BAA6B,SAAU9xjC,GACxCz3B,EAAMyijC,OAAShrhC,EAAMsC,QACrB/5B,EAAM2ijC,OAASlrhC,EAAMuC,QAErB,IAAI25P,IAAS/hQ,SAASm5H,aAClBhiJ,EAAS0uB,EAAM1uB,OAKnB,GAJqB,SAAjB/I,EAAM41E,QACNn+C,EAAM1oB,iBAGN/O,EAAMy+kC,mBAAwC,cAAjBz+kC,EAAM41E,QAA2C,YAAjB51E,EAAM41E,QAAyC,SAAjB51E,EAAM41E,QAAsC,aAAjB51E,EAAM41E,QAA0C,aAAjB51E,EAAM41E,OAE3J,GAAI51E,EAAM2piC,UAAU0B,qBAAuBrriC,EAAM2piC,UAAU2B,sBAAwBtriC,EAAMuriC,0BAA4BvriC,EAAM4zjC,4BAMvH,GAAKjgyB,EAeA,CACD,IAAIywK,EAAY1ya,OAAOu8H,eAClBm2S,EAAU92b,MAAS82b,EAAUo+H,aAAwC,OAAzBp+H,EAAUj2S,aACvDnuJ,EAAM2piC,UAAU0B,oBAAoBuC,iBAAkB,EAE9D,KApBW,CACuB,0BAA1Bn2gC,EAAM1uB,OAAOtH,WACbg2B,EAAM1oB,iBACV/O,EAAMyijC,OAAShrhC,EAAMsC,QACrB/5B,EAAM2ijC,OAASlrhC,EAAMuC,QAErB,IAAI2qhC,EAAmB3kjC,EAAM2piC,UAAUgb,iBAEnCA,GAAoBA,EAAiBsE,4BAA8BtE,EAAiBsE,2BAA2BugC,kBAAoB7kC,EAAiBsE,2BAA2BwgC,0BAA0B9kC,EAAiBsE,2BAA2BygC,0BACrP/kC,EAAiBsE,2BAA2B0gC,WAAWlyjC,EAAM1uB,OAAQ/I,EAAMyijC,OAAQzijC,EAAM2ijC,QAGzF3ijC,EAAM2piC,UAAU0B,oBAAoBu+C,yBAAyBnyjC,EAAM1uB,OAAQ/I,EAAMyijC,OAAQzijC,EAAM2ijC,OAEvG,MAQK3ijC,EAAM6zjC,mBAAmB9qjC,IAC9B0uB,EAAM1oB,iBASd,GANI/O,EAAMumlC,iCAAmCvmlC,EAAM4zjC,6BAC/C5zjC,EAAM2piC,UAAUgb,iBAAiBsE,2BAA2B4gC,gCAAgCpyjC,GAE5Fz3B,EAAM0/kC,WACN1/kC,EAAM8plC,eAAeryjC,GAErBz3B,EAAMwpjC,iCAAkC,CACxC,IAAIlslB,OAAS,EAEb,GAAI7lc,EAAM1uB,SAAW0uB,EAAM1uB,OAAO8tB,GAAGxrB,QAAQ,UAAY,GAAMosB,EAAM1uB,OAAOwtR,cAAc3N,UAAUh1P,SAAS,mBAAsB6D,EAAM1uB,OAAO8tB,GAAGxrB,QAAQ,sBAAwB,GAAKosB,EAAM1uB,OAAO6/Q,UAAUh1P,SAAS,oBAAsB5zB,EAAM2piC,UAAU9p6B,YAAcpoG,EAAM1uB,OAAO6/Q,UAAUh1P,SAAS,0BAA2B,CACnU,IAAI4iZ,EAAYx2a,EAAM2piC,UAAU9p6B,WAAW2o8B,mBAAmB/wiC,GAE9D,GADIqsiC,EAAUlyiC,SAASg8T,eAAe5tV,EAAM2piC,UAAU9zhC,QAAQghB,GAAK,qBAAuB2/Y,GAC7E,CACT,IACInyS,GADAyw8B,EAAUhR,EAAQ3uyB,yBACHv6Q,EAAIk6jC,EAAQl6jC,EAAIk6jC,EAAQzw8B,KACvCg1Y,EAAQy7jB,EAAQj6jC,EAAIi6jC,EAAQj6jC,EAAIi6jC,EAAQlm7B,IAGxC0uU,EADAt9d,EAAM2piC,UAAUgb,iBAAiB8oB,sBAAsBsc,wBAAgI,UAAtG/plC,EAAM2piC,UAAUgb,iBAAiB8oB,sBAAsBsc,uBAAuBt0C,oBACtJ,IAAIlzG,IAAKl+zB,EAAMg1Y,EAAOy7jB,EAAQ51jC,MAAQ,GAAI41jC,EAAQxr7B,OAAS,IAG3D,IAAIi5yB,IAAKl+zB,EAAO,EAAGg1Y,EAAQ,EAAGy7jB,EAAQ51jC,MAAQ,EAAG41jC,EAAQxr7B,OAAS,EAEnF,CACJ,MACK,IAAKtpJ,EAAM2piC,UAAUgb,kBAAoB3kjC,EAAM2piC,UAAUyiC,mBAAoB,CAC9E,IACItI,EADAttpB,EAAYx2a,EAAM2piC,UAAUyiC,mBAAmB5D,mBAAmB/wiC,GAEtE,GADIqsiC,EAAUlyiC,SAASg8T,eAAe5tV,EAAM2piC,UAAU9zhC,QAAQghB,GAAK,qBAAuB2/Y,GAC7E,CAELnyS,GADAyw8B,EAAUhR,EAAQ3uyB,yBACHv6Q,EAAIk6jC,EAAQl6jC,EAAIk6jC,EAAQzw8B,KAD3C,IAAIyw8B,EAEA5pK,EAAQ4pK,EAAQj6jC,EAAIi6jC,EAAQj6jC,EAAIi6jC,EAAQlm7B,IAC5C0uU,EAAS,IAAIile,IAAKl+zB,EAAO,GAAI6myB,EAAQ,GAAI4pK,EAAQ51jC,MAAQ,GAAI41jC,EAAQxr7B,OAAS,GAClF,CACJ,CAEA,IAAI0g8B,EAAchqlC,EAAM2piC,UAAUgb,iBAAmB3kjC,EAAM2piC,UAAUgb,iBAAiB8oB,sBAAwB,MAC1GnwmB,IAAUA,EAAOwgmB,cAAc,CAAEljjC,EAAG5a,EAAMyijC,OAAQ5niC,EAAG7a,EAAM2ijC,UAAeqnC,GAAeA,EAAYC,sBAKrGjqlC,EAAMkqlC,kBAAkBzyjC,GACpBz3B,EAAM2hlC,oBAAsB3hlC,EAAM2piC,UAAU0+C,+BAC5CrolC,EAAM8llC,eAAerujC,GACrBz3B,EAAMuljC,mBAAoB,KAP9BvljC,EAAMmqlC,iBAAiB1yjC,GACvBz3B,EAAM0hlC,gBAAkBjqjC,GASxBz3B,EAAM2piC,UAAUqyC,wBACZgO,GAAeA,EAAYC,uBAC3BjqlC,EAAM2piC,UAAUpkhB,KAAO,QACvBvlhB,EAAMulhB,KAAO,IAAI4jjB,IAAUnpkC,EAAM2piC,UAAW3piC,GAC5CA,EAAMi45B,aAAc,EACpB+xL,EAAYC,sBAAuB,EACnCD,EAAYI,iBAAkB,GAGlCpqlC,EAAM88iC,kBAAoB98iC,EAAM2piC,UAAUuyC,6BAC1Cl8kC,EAAM2piC,UAAUpkhB,KAAO,QACvBvlhB,EAAMulhB,KAAO,IAAI4jjB,IAAUnpkC,EAAM2piC,UAAW3piC,GAC5CA,EAAMi45B,aAAc,EACpBj45B,EAAM88iC,kBAAmB,EACzB98iC,EAAMmhlC,qBAAsB,EAEpC,CACJ,EAKAzglC,KAAKoplC,eAAiB,SAAUryjC,GAC5B,IAAI4yjC,GAAc,EAMlB,GAJqB,QAAjBrqlC,EAAM41E,QAAqC,SAAjB51E,EAAM41E,QAAsC,cAAjB51E,EAAM41E,QAA2C,YAAjB51E,EAAM41E,QAAyC,aAAjB51E,EAAM41E,QAA0C,SAAjB51E,EAAM41E,SAAyD,IAApC51E,EAAM41E,OAAOvqE,QAAQ,YAAwD,IAApCrL,EAAM41E,OAAOvqE,QAAQ,YAC3Og/kC,GAAc,GAGdrqlC,EAAM2uiC,gBAAgB/6gC,SAAS6D,EAAM1uB,SAAY0uB,EAAM1uB,SAAW/I,EAAM2uiC,iBAAqBl3gC,EAAM1uB,SAAW/I,EAAMk6iC,gBAAmBmwC,EACvI,GAAIrqlC,EAAMy+kC,kBAAmB,CACzB,IAAIr07B,EAASpqJ,EAAM2/kC,MAAQlojC,EAAMivH,MAC7B4D,EAAStqJ,EAAM4/kC,MAAQnojC,EAAMkvH,MACjC3mJ,EAAM2uiC,gBAAgB9/4B,UAAY7uJ,EAAM2uiC,gBAAgB9/4B,UAAYvE,EACpEtqJ,EAAM2uiC,gBAAgBhg5B,WAAa3uJ,EAAM2uiC,gBAAgBhg5B,WAAavE,EACtEpqJ,EAAM2uiC,gBAAgB9niC,MAAM+yiB,OAAS,OACrC55iB,EAAM2uiC,gBAAgB9niC,MAAM+yiB,OAAS,mBACrC55iB,EAAM2uiC,gBAAgB9niC,MAAM+yiB,OAAS,gBACrC55iB,EAAM2uiC,gBAAgB9niC,MAAM+yiB,OAAS,WACrC55iB,EAAM2/kC,MAAQlojC,EAAMivH,MACpB1mJ,EAAM4/kC,MAAQnojC,EAAMkvH,KACxB,MAES3mJ,EAAM8ljC,eAAe+L,0BACtB7xjC,EAAM2uiC,gBAAgB9niC,MAAM+yiB,OAAS,OACrC55iB,EAAM2uiC,gBAAgB9niC,MAAM+yiB,OAAS,eACrC55iB,EAAM2uiC,gBAAgB9niC,MAAM+yiB,OAAS,YACrC55iB,EAAM2uiC,gBAAgB9niC,MAAM+yiB,OAAS,aAKxC55iB,EAAM8ljC,eAAe+L,0BACtB7xjC,EAAM2uiC,gBAAgB9niC,MAAM+yiB,OAAS,OAGjD,EAKAl5iB,KAAK4plC,4BAA8B,SAAU7yjC,GACrCz3B,EAAMy+kC,mBACFz+kC,EAAM2piC,UAAU0B,sBAAwBrriC,EAAMuriC,yBAC9CvriC,EAAM2piC,UAAU0B,oBAAoBk/C,0BAA0B9yjC,GAGlEz3B,EAAM2piC,UAAU0B,qBAAuBrriC,EAAM2piC,UAAU0B,oBAAoBuC,iBAC3En2gC,EAAM1oB,iBAEW,QAAjB/O,EAAM41E,SACN51E,EAAM8llC,eAAerujC,GACrBz3B,EAAMuljC,mBAAoB,EAElC,EAKA7kjC,KAAK8plC,4BAA8B,SAAU/yjC,GACrCz3B,EAAM2piC,UAAU0B,sBAAwBrriC,EAAMuriC,yBAC9CvriC,EAAM2piC,UAAU0B,oBAAoBt2+B,OAE5C,EAKAr0D,KAAK+plC,2BAA6B,SAAUhzjC,GAExC,IAAIk8P,IAAS/hQ,SAASm5H,aAClB/qJ,EAAMy+kC,oBACD9qzB,GACDl8P,EAAM1oB,iBAGlB,EAKArO,KAAKgqlC,uBAAyB,SAAUjzjC,GACpC,GAAmB,aAAfA,EAAMnqB,KAAqB,CAC3B,IAAItN,EAAM2piC,UAAU0B,qBAAwBrriC,EAAMuriC,yBAA4BvriC,EAAM2qlC,iCAwB3E3qlC,EAAM2qlC,sCAvBX,GAAIlzjC,EAAM1uB,OAAO6/Q,UAAUh1P,SAAS,aAAc,CAE9C,GADA5zB,EAAMu/kC,8BAA+B,GAChCv/kC,EAAM4qlC,8BAA+B,CACtC,IAAI/nR,EAAazxxB,WAAW3Z,EAAM1uB,OAAO8tB,GAAGxD,MAAM,KAAK,IACvDrzB,EAAM2piC,UAAUkhD,uBAAuBhoR,EAAa,EACxD,CACA7i0B,EAAM2piC,UAAU0B,oBAAoBy/C,YAAYrzjC,EAAM1uB,OAAQ0uB,EAAMsC,QAAStC,EAAMuC,SAAS,GAC9B,YAA1Dh6B,EAAM2piC,UAAUkhB,oBAAoBkgC,mBACpC/qlC,EAAM2piC,UAAU0B,oBAAoB2/C,6BAA6BvzjC,EAAMuC,QAASvC,EAAMsC,SAErF/5B,EAAM4qlC,8BAOF5qlC,EAAMumlC,gCAAkCvmlC,EAAM4qlC,+BAEnD5qlC,EAAM2piC,UAAUgb,iBAAiBsE,2BAA2BgiC,0BAA0BjrlC,EAAM2piC,UAAUgb,iBAAiBsE,2BAA2BygC,2BARlJ1plC,EAAM2piC,UAAU0B,oBAAoB6/C,yBAAwB,GAAM,GAClElrlC,EAAMw/kC,cAAgB1ojC,YAAW,WAC7B92B,EAAMo4kB,gBACV,GAAG,KACHp4kB,EAAM2piC,UAAU0B,oBAAoB8/C,oBAM5C,CAKJ,GAAInrlC,EAAM41E,SAA4B,cAAjB51E,EAAM41E,QAA2C,YAAjB51E,EAAM41E,SAAyB51E,EAAMulhB,KAAM,CAC5FvlhB,EAAMslV,UAAU16P,SAAW5qF,EAAMm6wB,gBACjCn6wB,EAAMorlC,kBAAkBprlC,EAAMm6wB,gBAAiBn6wB,EAAMslV,UAAW7tT,EAAOz3B,EAAMslV,UAAUhuU,QACzEtX,EAAMymgB,UAAUhve,GAA9B,IACIwF,EAAO,CAAE3E,QAASb,EAAMa,QAASC,SAAUd,EAAMc,UACrDv4B,EAAMslV,UAAUroT,KAAOA,EACvBj9B,EAAMslV,UAAU+lwB,WAAa5zjC,EAAMH,OACnCt3B,EAAMulhB,KAAK9lB,QAAQz/f,EAAMslV,WAAW,EACxC,CACA,GAAItlV,EAAM2piC,UAAUjmmB,eACf1jc,EAAM2piC,UAAU9p6B,YAAc7/H,EAAM2piC,UAAUgb,iBAAiBsE,2BAA2BmB,4BAC3F,GAAyD,IAArDpqjC,EAAM2piC,UAAUjmmB,cAAc5tP,YAAYhyM,OAAc,CAExD,IAAIihjC,EAAoB/kjC,EAAM2piC,UAAUjmmB,cAAc5tP,YAAY,GAElE,GAAI91M,EAAM2piC,UAAUgb,mBAAqBI,EAAkBpP,wBAGvD,GADA31iC,EAAM2piC,UAAUgb,iBAAiB64B,iBAAiBz4B,EAAkB4C,UAAW5C,EAAkBvuoB,UAAWuuoB,EAAmB,MAAM,IACjD,IAAhF/kjC,EAAM2piC,UAAUgb,iBAAiByE,yBAAyBC,kBAC1D,IAA8E,IAA1ErpjC,EAAMsrlC,qBAAqBtrlC,EAAM2piC,UAAUjmmB,cAAc5tP,cACrDy14B,EAAe,CAAC,GACP3wkC,EAAI5a,EAAM2piC,UAAUjmmB,cAAc5tP,YAAY,GAAGuvjB,OAAOzqvB,EACrE2wkC,EAAa1wkC,EAAI7a,EAAM2piC,UAAUjmmB,cAAc5tP,YAAY,GAAGuvjB,OAAOxqvB,EAErE7a,EAAM2piC,UAAU9p6B,WAAWup7B,yBAAyBoiC,eAAeD,EAAcvrlC,EAAM2piC,UAAUjmmB,cAAc5tP,YAAY,SAE1H,IAAsE,IAAlE91M,EAAM2piC,UAAUjmmB,cAAc5tP,YAAY,GAAGq43B,iBAA2B,CAC7E,IAAIod,KAAe,CAAC,GACP3wkC,EAAI5a,EAAM2piC,UAAUjmmB,cAAc5tP,YAAY,GAAGuvjB,OAAOzqvB,EACrE2wkC,EAAa1wkC,EAAI7a,EAAM2piC,UAAUjmmB,cAAc5tP,YAAY,GAAGuvjB,OAAOxqvB,EAErE7a,EAAM2piC,UAAU9p6B,WAAW+n9B,mBAAmB6D,UAAUF,EAAcvrlC,EAAM2piC,UAAUjmmB,cAAc5tP,YAAY,GACpH,KACK,EAEGkw4B,EAAkBp0jC,SAASg8T,eAAe5tV,EAAM2piC,UAAU9zhC,QAAQghB,GAAK,sBAAwB72B,EAAM2piC,UAAU4C,qBAE/Gy5C,EAAgBt4vB,cAAc,GAAGujiB,YAAW,GAGhD,IAAIg1N,EAAcr0jC,SAASg8T,eAAe5tV,EAAM2piC,UAAUjmmB,cAAc5tP,YAAY,GAAG6x2B,WACnFs+B,IACKA,EAAYr9zB,UAAUh1P,SAAS,yBAChCqyjC,EAAY7wjC,WAAWsuP,QAGnC,CAGZ,KACK,CAED,IAAI7jJ,EAAa7/H,EAAM2piC,UAAU9p6B,WAC7B8k7B,EAAmB3kjC,EAAM2piC,UAAUgb,iBACvC,GAAI9k7B,GAAc8k7B,EAAiBsE,4BAA8BtE,EAAiBsE,2BAA2BmB,4BAA6B,CAEtI,IAII47B,EAJA0F,EAAe1rlC,EAAM2piC,UAAUgb,iBAAiBsE,2BAA2BmB,4BAE/EpqjC,EAAM2piC,UAAUgb,iBAAiB64B,iBAAiBkO,EAAa/jC,UAAW3njC,EAAM2piC,UAAUgb,iBAAiBsE,2BAA2B0iC,4BAA6BD,EAAc,MAAM,IAEnL1F,EAAkBp0jC,SAASg8T,eAAe5tV,EAAM2piC,UAAU9zhC,QAAQghB,GAAK,sBAAwB72B,EAAMusiC,qBAErGy5C,EAAgBt4vB,cAAc,GAAGujiB,YAAW,GAGhD,IAAIjqvB,EAAWp1G,SAASg8T,eAAe89vB,EAAa/jC,WAChD3g7B,GACAA,EAAS5xG,WAAWsuP,OAE5B,CACJ,CAEJ,GAAI1jR,EAAM2piC,UAAUmgB,cAAgB9pjC,EAAM2piC,UAAUjmmB,cAAcmmnB,WAAW/ljC,OAAS,EAAG,CACrF,IAAIwhV,EAAY,CAAElgV,KAAM,uBAAwB06G,MAAO9/G,EAAM2piC,UAAUjmmB,cAAcmmnB,WAAW,GAAIro+B,QAAQ,GAC5GxhF,EAAM2piC,UAAUiiD,8BAA8BtmwB,GACzCA,EAAU9jQ,QACXxhF,EAAM2piC,UAAU0gB,aAAawhC,wBAErC,CACJ,MAEyB,IAAjBp0jC,EAAMH,SACFt3B,EAAMu/kC,+BACNxojC,aAAa/2B,EAAMw/kC,eACnBx/kC,EAAMu/kC,8BAA+B,IAErCv/kC,EAAM2piC,UAAU0B,qBAAwBrriC,EAAMuriC,yBAA4BvriC,EAAM4qlC,gCAChF5qlC,EAAM2piC,UAAU0B,oBAAoBygD,iBAAiBr0jC,GACrDz3B,EAAM2piC,UAAU0B,oBAAoB6/C,yBAAwB,GAAM,GAClElrlC,EAAM2piC,UAAU0B,oBAAoB8/C,oBACpCnrlC,EAAMo4kB,kBAItB,EAKA13kB,KAAKqrlC,2BAA6B,SAAUt0jC,KAE3B7F,SAASm5H,cAElBtzH,EAAM1oB,gBAEd,EAEArO,KAAKsrlC,kCAAoC,SAAUv0jC,GAC/Cz3B,EAAMy+kC,mBAAoB,CAC9B,EAEA/9kC,KAAKurlC,gBAAkB,SAAUx0jC,GAC7Bz3B,EAAMspjC,uBAAwB,EAC9BtpjC,EAAMwhlC,YAAa,EACnBxhlC,EAAMkljC,gBAAiB,EAEvB,IAAIP,EAAmB3kjC,EAAM2piC,UAAUgb,iBAEvC,GAAIA,GAAoBA,EAAiBsE,4BAA8BtE,EAAiBsE,2BAA2BwgC,0BAA0B9kC,EAAiBsE,2BAA2BygC,0BAA2B,CAEhN,IAAIh1vB,EAAUiwtB,EAAiBsE,2BAC/Bv0tB,EAAQw3vB,sBAAuB,EAC/Bx3vB,EAAQ80vB,kBAAmB,EAC3B90vB,EAAQy3vB,uBAAwB,EAC3Bz3vB,EAAQ01tB,6BAAoE,OAArC14hC,OAAOu8H,eAAeE,WAGxDumM,EAAQ01tB,6BAAoE,KAArC11tB,EAAQg1vB,2BACrDh1vB,EAAQ03vB,4BAA6B,GAHrC13vB,EAAQkkuB,oBAAmB,EAKnC,CACA,IAAK54jC,EAAM4zjC,4BAA6B,CACpC,GAAqB,IAAjBn8hC,EAAMwC,QAEN,GAAIj6B,EAAMqslC,0BACN,IAAIrslC,EAAM2piC,UAAU0B,qBAAwBrriC,EAAMuriC,yBAA4BvriC,EAAM4qlC,+BAoB/E,GAAI5qlC,EAAM4qlC,8BAA+B,CAE1C,IAAI0B,EAAgBtslC,EAAM2piC,UAAU9zhC,QAEhC6zR,EAAgBjyQ,EAAM1uB,OACtBujlC,GAAiB5izB,GACb4izB,EAAcz1jC,GAAGxD,MAAM,KAAK,KAAOq2Q,EAAc7yQ,GAAGxD,MAAM,KAAK,IAE/DrzB,EAAM2piC,UAAUgb,iBAAiBsE,2BAA2BgiC,0BAA0BjrlC,EAAM2piC,UAAUgb,iBAAiBsE,2BAA2BygC,yBAG9J,MA/BmH,CAE1F,IAAjBjyjC,EAAMH,QAAiBt3B,EAAM2uiC,gBAAgB/6gC,SAAS6D,EAAM1uB,SAAY/I,EAAMi9oB,kBAAkByra,mBAAmB90hC,SAAS6D,EAAM1uB,SACzF,OAArC2oB,OAAOu8H,eAAeE,YACtBnuJ,EAAM2piC,UAAU0B,oBAAoBkhD,uBAAuB90jC,GAInE,IAAI1uB,EAAS0uB,EAAM1uB,OACf/I,EAAM2uiC,gBAAgB/6gC,SAAS6D,EAAM1uB,SAAgC,2BAArBA,EAAOtH,WAA+D,yBAArBsH,EAAOtH,YACnGzB,EAAMollC,qBAAqB3tjC,GAAO,IAAUz3B,EAAM6/kC,qBAIV,OAArCnujC,OAAOu8H,eAAeE,YACtBnuJ,EAAM2piC,UAAU0B,oBAAoB6B,wBAJxCltiC,EAAM2piC,UAAU0B,oBAAoBkhD,uBAAuB90jC,GAQvE,OAekB,IAAjBA,EAAMwC,QACPj6B,EAAM2uiC,gBAAgB/6gC,SAAS6D,EAAM1uB,SAAW/I,EAAM6zjC,mBAAmBp8hC,EAAM1uB,SAC3E/I,EAAM2pjC,qBACNj4hC,OAAOu8H,eAAeO,kBAIlC,OAAIxuJ,EAAMy+kC,oBACNz+kC,EAAMy+kC,mBAAoB,EACtBz+kC,EAAM2piC,UAAU0B,sBAAwBrriC,EAAMuriC,0BAC9CvriC,EAAM2piC,UAAU0B,oBAAoBt2+B,QACpC/0D,EAAM2piC,UAAU0B,oBAAoBmhD,mBAAqB,MAE7D/0jC,EAAM1oB,iBACN0oB,EAAMzoB,mBACC,EAKf,CACJ,EAKAtO,KAAK+rlC,iBAAmB,SAAUh1jC,GAC9Bz3B,EAAMkljC,gBAAiB,EAElBlljC,EAAM2piC,UAAU9zhC,QAAQ+d,SAAS6D,EAAM1uB,SAAY/I,EAAMi9oB,kBAAkByra,mBAAmB90hC,SAAS6D,EAAM1uB,SAC1G/I,EAAM2piC,UAAU0B,sBAAwBrriC,EAAMuriC,yBAC9CvriC,EAAM2piC,UAAU0B,oBAAoBg6C,oBAGhD,EAKA3klC,KAAKgslC,4BAA8B,SAAUj1jC,GACzC,IAAIk1jC,EAAcl1jC,EAAMsyH,QACpB/pJ,EAAM2piC,UAAUwE,qBAChBnuiC,EAAM2piC,UAAUwE,oBAAoBy+C,eAAeD,EAAY,GAAG5yjC,QAAS4yjC,EAAY,GAAG3yjC,SAE9F,IAAIjxB,EAAS0uB,EAAM1uB,QAEQ,IAAvB4jlC,EAAY7olC,SAAkBiF,EAAO6/Q,UAAUh1P,SAAS,mBAAsB5zB,EAAM6zjC,mBAAmB9qjC,IACvG/I,EAAM6slC,kBAAkBp1jC,GAEC,IAAzBA,EAAMsyH,QAAQjmJ,QAAgB9D,EAAMumlC,iCAAmCvmlC,EAAM4zjC,8BACxE5zjC,EAAMwmlC,qBACPxmlC,EAAM2piC,UAAUgb,iBAAiBsE,2BAA2B6jC,+BAA+Br1jC,IAGnGz3B,EAAMi/kC,aAAe0N,EAAY,GAAG5yjC,QACpC/5B,EAAMk/kC,aAAeyN,EAAY,GAAG3yjC,QACpCh6B,EAAMy7Y,QAAUkxsB,EAAY,GAAG3yjC,QAC/Bh6B,EAAMm/kC,cAAe,IAAIh9kC,MAAOC,UAEL,IAAvBuqlC,EAAY7olC,QAAkB2zB,EAAM1uB,OAAO6/Q,UAAUh1P,SAAS,2BAA6B6D,EAAM1uB,OAAO6/Q,UAAUh1P,SAAS,yBACtH+zT,GAAQM,WAAajoV,EAAM2piC,UAAUqf,mBAAsBhpjC,EAAM8xmB,UAAY,IAAM9xmB,EAAM+/kC,UAAatojC,EAAM1uB,OAAO6/Q,UAAUh1P,SAAS,mBACvI5zB,EAAM+slC,WAAWJ,EAAal1jC,GAE7B+1S,MAAema,GAAQM,WAAYjoV,EAAM2piC,UAAUqf,mBACpDhpjC,EAAMgtlC,kBAAkBL,GAET3slC,EAAMitlC,eAAelklC,IAEpC/I,EAAMi9oB,kBAAkB/ggB,QAEnBl8I,EAAMq/kC,wBACPr/kC,EAAMs/kC,eAAiBxojC,YAAW,WACzB92B,EAAMktlC,WACPltlC,EAAMypjC,qBAAsB,EAE5BzpjC,EAAMi9oB,kBAAkBz5gB,KAAKxjI,EAAMk/kC,aAAcl/kC,EAAMi/kC,aAAcj/kC,EAAM2uiC,iBAGnF,GAAG,MAEP3uiC,EAAMq/kC,uBAAwB,EAC9Br/kC,EAAMktlC,UAAW,GAEXltlC,EAAM2piC,UAAU0B,sBAAwBrriC,EAAMuriC,0BACpDvriC,EAAM2piC,UAAU0B,oBAAoBg6C,qBACpCrllC,EAAMi9oB,kBAAkB/ggB,QAEnBl8I,EAAMq/kC,wBACPr/kC,EAAMs/kC,eAAiBxojC,YAAW,WAC9B92B,EAAMmtlC,2BAA2B11jC,EACrC,GAAG,MAEPz3B,EAAMq/kC,uBAAwB,IAItC,IAAIh4kB,EAAgBrngB,EAAM2piC,UAAUtiiB,cAAgBrngB,EAAM2piC,UAAUtiiB,cAAcwxjB,wBAA0B,QACxG9vjC,EAAO6/Q,UAAUh1P,SAAS,cAAkByze,GAAkBA,EAAc+llB,0BAAuF,IAA3D/llB,EAAc+llB,yBAAyB5mlC,SAAS1C,QACxJiF,EAAO6/Q,UAAU90P,IAAI,4BAEzB9zB,EAAMsllC,iBAAiB7tjC,GAEF,cAAjBz3B,EAAM41E,QAA2C,YAAjB51E,EAAM41E,QAAyC,aAAjB51E,EAAM41E,QAA0C,SAAjB51E,EAAM41E,SAAyD,IAApC51E,EAAM41E,OAAOvqE,QAAQ,YAAwD,IAApCrL,EAAM41E,OAAOvqE,QAAQ,WACtLosB,EAAM1oB,gBAEd,EAKArO,KAAKyslC,2BAA6B,SAAU11jC,GAIxC,GAHAz3B,EAAMi/kC,aAAexnjC,EAAMsyH,QAAQ,GAAGhwH,QACtC/5B,EAAMk/kC,aAAeznjC,EAAMsyH,QAAQ,GAAG/vH,QACtCvC,EAAM1oB,iBACF/O,EAAM2piC,UAAU0B,oBAAqB,CACrC,IAAItiiC,EAAS0uB,EAAM1uB,OACfA,EAAO6/Q,UAAUh1P,SAAS,6BAC1B7qB,EAAO6/Q,UAAU/0P,OAAO,4BAE5B7zB,EAAM2piC,UAAU0B,oBAAoBgiD,uBAAuB51jC,EAAOz3B,EAAMi/kC,aAAcj/kC,EAAMk/kC,cACxFv3vB,GAAQM,WAAajoV,EAAM2piC,UAAUqf,oBACrCjyhC,aAAa/2B,EAAMgglC,gBACnBhglC,EAAM8mW,SAAW,EAEzB,CACJ,EAKApmW,KAAK4slC,6BAA+B,SAAU71jC,GAChB,UAAtBA,EAAMmyH,cACN5pJ,EAAM4+kC,eACF5+kC,EAAM4+kC,cAAgB,IACtBnnjC,EAAM1oB,iBACN/O,EAAM6+kC,iBAAiB/xkC,KAAK2qB,GACD,IAAvBz3B,EAAM4+kC,eACN5+kC,EAAM4+kC,aAAe,GAErB5+kC,EAAM2piC,UAAUwE,qBAChBnuiC,EAAM2piC,UAAUwE,oBAAoBy+C,eAAen1jC,EAAMsC,QAAStC,EAAMuC,UAIxF,EAKAt5B,KAAK6slC,2BAA6B,SAAU91jC,GACnB,SAAjBz3B,EAAM41E,SACN51E,EAAMktlC,UAAW,GAEjBvlwB,GAAQM,WAAajoV,EAAM2piC,UAAUqf,oBACrCjyhC,aAAa/2B,EAAMgglC,gBACnBhglC,EAAMgglC,eAAiB,KACvBhglC,EAAM8mW,SAAW,GAErB9mW,EAAM6slC,kBAAkBp1jC,GACpBz3B,EAAMwmlC,qBACN/ujC,EAAM1oB,iBAEV,IAqBIuud,EArBAqvnB,EAAcl1jC,EAAMsyH,QAuBxB,GAtBI/pJ,EAAM2piC,UAAUwE,sBAChBnuiC,EAAMo/kC,iBAAkB,EACpBuN,EAAY7olC,OAAS,GAAK9D,EAAM8xmB,UAAY,GACxCnqR,GAAQM,WAAajoV,EAAM2piC,UAAUqf,oBACrChpjC,EAAMo/kC,iBAAkB,GAExBp/kC,EAAM2piC,UAAU6jD,iBAEhBxtlC,EAAM2piC,UAAUwE,oBAAoBs/C,kBAAkBd,EAAY,GAAG5yjC,QAAS4yjC,EAAY,GAAG3yjC,QAAS2yjC,EAAY,GAAG5yjC,QAAS4yjC,EAAY,GAAG3yjC,UAGrH,IAAvB2yjC,EAAY7olC,QAAgB9D,EAAM0tlC,wBACnC/lwB,GAAQM,WAAajoV,EAAM2piC,UAAUqf,oBACrChpjC,EAAMo/kC,iBAAkB,GAE5Bp/kC,EAAM2piC,UAAUwE,oBAAoBw/C,oBAG5C3tlC,EAAMyijC,OAASkqC,EAAY,GAAG5yjC,QAC9B/5B,EAAM2ijC,OAASgqC,EAAY,GAAG3yjC,QAG1BvC,EAAM1uB,SAAW0uB,EAAM1uB,OAAO8tB,GAAGxrB,QAAQ,UAAY,GAAKosB,EAAM1uB,OAAO8tB,GAAGxrB,QAAQ,sBAAwB,GAAKosB,EAAM1uB,OAAO6/Q,UAAUh1P,SAAS,oBAAsB5zB,EAAM2piC,UAAU9p6B,WAAY,CACjM,IAAI22S,EAAYx2a,EAAM2piC,UAAU9p6B,WAAW2o8B,mBAAmB/wiC,GAC1DqsiC,EAAUlyiC,SAASg8T,eAAe5tV,EAAM2piC,UAAU9zhC,QAAQghB,GAAK,qBAAuB2/Y,GAC1F,GAAIstpB,EAAS,CACT,IAAIgR,EAAUhR,EAAQ3uyB,wBAClB9wJ,EAAOyw8B,EAAQl6jC,EAAIk6jC,EAAQl6jC,EAAIk6jC,EAAQzw8B,KACvC8myB,EAAQ2pK,EAAQj6jC,EAAIi6jC,EAAQj6jC,EAAIi6jC,EAAQlm7B,IAC5C0uU,EAAS,IAAIile,IAAKl+zB,EAAO,GAAI8myB,EAAQ,GAAI2pK,EAAQ51jC,MAAQ,GAAI41jC,EAAQxr7B,OAAS,GAClF,CACJ,CACIg0U,GAAUA,EAAOwgmB,cAAc,CAAEljjC,EAAG5a,EAAMyijC,OAAQ5niC,EAAG7a,EAAM2ijC,UAA8B,QAAjB3ijC,EAAM41E,QAC9E51E,EAAMmqlC,iBAAiB1yjC,GACvBz3B,EAAM0hlC,gBAAkBjqjC,IAGxBz3B,EAAMkqlC,kBAAkBzyjC,GACpBz3B,EAAM2hlC,oBACN3hlC,EAAM8llC,eAAerujC,GACrBz3B,EAAMuljC,mBAAoB,IAGlConC,EAAc,IAClB,EAKAjslC,KAAKktlC,6BAA+B,SAAUn2jC,GAC1C,GAA0B,UAAtBA,EAAMmyH,aAA2B5pJ,EAAM8xmB,UAAY,IACnDr6kB,EAAM1oB,iBACgC,IAAlC/O,EAAM6+kC,iBAAiB/6kC,QAAc,CACrC,IAAK,IAAI+I,EAAI,EAAGA,EAAI7M,EAAM6+kC,iBAAiB/6kC,OAAQ+I,IAC/C,GAAI4qB,EAAM8sH,YAAcvkJ,EAAM6+kC,iBAAiB5xjC,SAASpgB,EAAE2K,WAAY,KAAK+sI,UAAW,CAClFvkJ,EAAM6+kC,iBAAiB5xjC,SAASpgB,EAAE2K,WAAY,KAAOigB,EACrD,KACJ,CAEAz3B,EAAM2piC,UAAUwE,qBAAuBnuiC,EAAM2piC,UAAU6jD,iBAEvDxtlC,EAAM2piC,UAAUwE,oBAAoBs/C,kBAAkBztlC,EAAM6+kC,iBAAiB,GAAG9kjC,QAAS/5B,EAAM6+kC,iBAAiB,GAAG7kjC,QAASh6B,EAAM6+kC,iBAAiB,GAAG9kjC,QAAS/5B,EAAM6+kC,iBAAiB,GAAG7kjC,QAEjM,CAER,EAKAt5B,KAAKmtlC,0BAA4B,SAAUp2jC,GAUvC,GATIz3B,EAAM2piC,UAAUwE,qBAChBnuiC,EAAM2piC,UAAUwE,oBAAoB2/C,eAEpCr2jC,EAAMJ,aAAeI,EAAM1uB,OAAO6/Q,UAAUh1P,SAAS,uBAAyB5zB,EAAM2piC,UAAU0B,qBAAuBrriC,EAAM2piC,UAAU0B,oBAAoBuC,iBACzJn2gC,EAAM1oB,iBAEV/O,EAAMq/kC,uBAAwB,EAC9Bt60B,cAAc/kQ,EAAMs/kC,gBACpBt/kC,EAAMs/kC,eAAiB,KAClB33vB,GAAQM,WAAajoV,EAAM2piC,UAAUqf,mBAAsBhpjC,EAAMo/kC,gBAAiB,CACnFp/kC,EAAMyyN,aAAc,IAAItwN,MAAOC,UAC/B,IAAIuyG,EAAW30G,EAAMyyN,YAAczyN,EAAMm/kC,aAErC76jC,EAAatkB,EAAMy7Y,QAAUhkX,EAAMwyH,eAAe,GAAGtD,MAErDon8B,EAASzpkC,EAAeqwF,EAC5B,GAAIrwG,KAAK8Y,IAAI2wkC,GAAS,IAAK,CAEvB,IAAIl/7B,EAAavqI,EAAgBqwF,EAAYo5+B,EACzCl/7B,EAAY,IACZ7uJ,EAAM2uiC,gBAAgB9/4B,WAAaA,EACnC7uJ,EAAMkllC,+BAEd,CACJ,CACAlllC,EAAM8llC,eAAerujC,GACrBz3B,EAAMgulC,sBAAsBv2jC,GACvBkwT,GAAQM,UACTjoV,EAAMm8jC,sBAEd,EAKAz7jC,KAAKutlC,4BAA8B,SAAUx2jC,GACf,UAAtBA,EAAMmyH,cACNnyH,EAAM1oB,iBACF/O,EAAM2piC,UAAUwE,qBAChBnuiC,EAAM2piC,UAAUwE,oBAAoB2/C,eAExC9tlC,EAAM6+kC,iBAAmB,GACzB7+kC,EAAM4+kC,aAAe,EAE7B,EAEAl+kC,KAAKwtlC,wBAA0B,SAAUz2jC,GACrC,IAAIivK,EAAQ,KAERyn5B,GADJzn5B,EAAQ1mM,GACwB2piC,UAAU39sB,uBAC1CtlJ,EAAMij2B,UAAUykD,yBAAwB,GACxC,IAAIC,EAAa,EACbC,EAAa,EACjB,GAAI72jC,EAAMsyH,SAAY49L,GAAQM,WAAajoV,EAAM2piC,UAAUqf,kBAAoB,CAE3E,IAAI1nJ,GAASth6B,EAAM2uiC,gBAAgB/vvB,aAAe5+S,EAAM2uiC,gBAAgB/oyB,eAAiB5lQ,EAAM2uiC,gBAAgB/oyB,aAAe5lQ,EAAM0+4B,eACpI,GAAI1+4B,EAAM+/kC,QAAS,CACf//kC,EAAM8/kC,aAAc,EACpBrojC,EAAM1oB,iBACN/O,EAAMillC,sBAAsBp+kC,MAAMi+J,QAAU,QAC5Cup7B,EAAa52jC,EAAMsyH,QAAQ,GAAGrD,MAAQ1mJ,EAAM07Y,QAC5C4ysB,EAAa72jC,EAAMsyH,QAAQ,GAAGpD,MAAQ3mJ,EAAM2uiC,gBAAgBrrvB,UAC5DtjT,EAAM2uiC,gBAAgB9/4B,UAAYy/7B,EAAahtL,EAE/C,IAAIitL,EAAiB92jC,EAAMsyH,QAAQ,GAAGpD,MAElC+3vB,EAAgB1+4B,EAAM2piC,UAAUtiiB,cAAgB,EAAI,GAChB,IAApCrngB,EAAM2uiC,gBAAgB9/4B,WAAqB0/7B,GAAoBvulC,EAAM2uiC,gBAAgB/oyB,aAAe84oB,IACpG1+4B,EAAM85jC,wBAAwBjzjC,MAAM+nJ,IAAM2/7B,EAAiB,KAEnE,KAC+C,uBAAtC92jC,EAAMsyH,QAAQ,GAAGhhJ,OAAOtH,YACvBzB,EAAMghlC,gBAAmBr5vB,GAAQM,WAAajoV,EAAM2piC,UAAUqf,oBAChEhpjC,EAAMillC,sBAAsBp+kC,MAAMi+J,QAAU,OAC5Cwp7B,EAAatulC,EAAMk/kC,aAAeznjC,EAAMsyH,QAAQ,GAAGpD,MACnD0n8B,EAAarulC,EAAMi/kC,aAAexnjC,EAAMsyH,QAAQ,GAAGrD,MACnD1mJ,EAAM2uiC,gBAAgB9/4B,UAAY7uJ,EAAM2uiC,gBAAgB9/4B,UAAay/7B,EACrEtulC,EAAM2uiC,gBAAgBhg5B,WAAa3uJ,EAAM2uiC,gBAAgBhg5B,WAAc0/7B,GAG3ErulC,EAAMkllC,+BACNlllC,EAAMk/kC,aAAeznjC,EAAMsyH,QAAQ,GAAGpD,MACtC3mJ,EAAMi/kC,aAAexnjC,EAAMsyH,QAAQ,GAAGrD,MAE9C,CACI1mJ,EAAM2llC,iBACN5ujC,aAAa/2B,EAAM2llC,iBAEvB,IAAInvqB,EAAYx2a,EAAMusiC,kBACtBvsiC,EAAM2llC,gBAAkB,KACxB3llC,EAAMi9oB,kBAAkB/ggB,QAGxB,IAFA,IAAIsy8B,EAAsBxulC,EAAM2uiC,gBAAgB9/4B,UAEvChiJ,EAAI,EAAGA,EAAI7M,EAAM8xmB,UAAWjlmB,IACjC,GAAkD,MAA9C7M,EAAMy2a,SAASxpZ,SAASpgB,EAAE2K,WAAY,KAAc,CACpD,IAAI0jwB,EAAal7wB,EAAMyulC,cAAc5hlC,GAcrC,GAZI7M,EAAMu+kC,cADNrjU,EAAa,IACS,GAEjBA,GAAc,KAAOA,EAAa,IACjB,IAEjBA,GAAc,KAAOA,EAAa,IACjB,IAGA,IAGrBszU,EAAsBxulC,EAAMu+kC,eAAmBv+kC,EAAM0ulC,WAAW7hlC,GAAKquwB,EAAa,CACnFl7wB,EAAMusiC,kBAAoB1/hC,EAAI,EAC9B7M,EAAM2piC,UAAU4C,kBAAoB1/hC,EAAI,EACxC,KACJ,CACJ,CAGA7M,EAAM2piC,UAAUwE,qBAAuE,cAAhDnuiC,EAAM2piC,UAAUwE,oBAAoBwgD,SAA2B3ulC,EAAMusiC,kBAAoB,GAC5HvsiC,EAAMy2a,SAASz2a,EAAMusiC,kBAAoB,KACpCvsiC,EAAM0/kC,WAAe/3vB,GAAQM,WAAYjoV,EAAM2piC,UAAUqf,oBAC1DhpjC,EAAM2uiC,gBAAgB9/4B,UAAY7uJ,EAAMy2a,SAASz2a,EAAMusiC,kBAAoB,GAAG394B,IAAM5uJ,EAAMkriC,kBAItGlriC,EAAM4ulC,4BAA4B5ulC,EAAMusiC,oBAEnCvsiC,EAAMy+kC,mBAAsBz+kC,EAAM6siC,kBAAqB7siC,EAAM6ulC,oBAAuB7ulC,EAAM0tlC,yBAAyB1tlC,EAAM0+kC,mBAK1H1+kC,EAAM8ulC,yBAAyB9ulC,EAAMusiC,kBAAoB,GAAG,IAJ5DvsiC,EAAM4llC,sBAAsB5llC,EAAMusiC,mBAClCvsiC,EAAM0+kC,oBAAqB,GAK3B1+kC,EAAM2piC,UAAUtiiB,gBACX75L,MACDxtU,EAAM2piC,UAAUtiiB,cAAc8zkB,kBAAkBn7kC,EAAMusiC,mBAE1DvsiC,EAAM2uiC,gBAAgBj5gC,aAAa,kBAAmB11B,EAAM2piC,UAAU9zhC,QAAQghB,GAAK,aAAe72B,EAAMusiC,kBAAoB,IACvH/+tB,MACIma,GAAQM,WAAYjoV,EAAM2piC,UAAUqf,mBACrChpjC,EAAM2piC,UAAUtiiB,cAAc0nlB,2BAItCpnwB,GAAQM,WAAajoV,EAAM2piC,UAAUqf,oBACrChpjC,EAAMgvlC,oBAAoBpljC,UAAY5pC,EAAMusiC,kBAAkB/0hC,WAC9DxX,EAAMivlC,2BAA2BrljC,UAAY5pC,EAAMusiC,kBAAkB/0hC,YAErEg/Z,IAAcx2a,EAAMusiC,qBAChB7l2B,EAAMij2B,UAAU2qB,qBAAyB3suB,GAAQM,WAAYjoV,EAAM2piC,UAAUqf,oBAC7Eti3B,EAAMij2B,UAAU2qB,oBAAoBC,mBAAmB7t3B,EAAM6l2B,kBAAoB,GACjF7l2B,EAAMij2B,UAAU2qB,oBAAoB46B,oBAAqB,GAE7DlvlC,EAAM2piC,UAAUwlD,eAAe34qB,IAE/Bx2a,EAAM2piC,UAAUwE,sBACXnuiC,EAAM0/kC,WAAe/3vB,GAAQM,WAAYjoV,EAAM2piC,UAAUqf,mBAC1DhpjC,EAAM2piC,UAAUwE,oBAAoBihD,sBAAsBpvlC,EAAMusiC,kBAAoB,IAG5F,IAAI16b,EAAc7xmB,EAAM0nS,WAAW,aAAe1nS,EAAMusiC,kBAAoB,IAI5E,GAHI16b,IACAA,EAAYhrmB,MAAMohQ,WAAa,WAE/BjoQ,EAAMy+kC,kBAMN,GALIz+kC,EAAMmnlC,6BAA+BnnlC,EAAM0/kC,WAC3C1/kC,EAAM2piC,UAAUwE,oBAAoBkhD,qBAG7BrvlC,EAAMsvlC,cAActvlC,EAAMusiC,mBAEjCvsiC,EAAMkilC,aAAc,EACpBlilC,EAAMuvlC,gCACNvvlC,EAAMkilC,aAAc,MAEnB,CAED,IAAI30mB,EAAQvte,EAAM2piC,UAAU6lD,eAAeC,6BAA+BzvlC,EAAM2piC,UAAU6lD,eAAeC,6BAA+B,IACxIzvlC,EAAM2llC,gBAAkB7ujC,YAAW,WAC/B92B,EAAMuvlC,+BACV,GAAGhinB,EACP,CAEAvte,EAAM2piC,UAAU9p6B,YAAc7/H,EAAM8ljC,eAAe2N,uBACnDzzjC,EAAM2piC,UAAU9p6B,WAAWg27B,4BAA4B65B,4BAA4B1vlC,EAAMusiC,mBAGxF5ktB,GAAQM,WAAajoV,EAAM2piC,UAAUqf,mBAAsBvxhC,EAAMsyH,SAAiD,uBAAtCtyH,EAAMsyH,QAAQ,GAAGhhJ,OAAOtH,WACrGq1B,YAAW,WACP92B,EAAMkllC,8BACV,GAAG,KAEPx+4B,EAAMij2B,UAAUykD,wBAAwBD,GAAqB,EACjE,EACAztlC,KAAKipiC,UAAYunB,EACjBxwjC,KAAKoljC,eAAiB,IAAImL,IAAevwjC,KAAKipiC,UAAWjpiC,MACzDA,KAAK0piC,UAAY,IAAIV,IAAUhpiC,KAAKipiC,UAAWjpiC,MAC/CA,KAAKivlC,kBAAoB,IAAI/gD,IAAkBluiC,KAAKipiC,UAAWjpiC,MAC/DA,KAAKy9iC,gBAAkB,IAAI13kB,IAAU/le,KAAKipiC,UAAWjpiC,MACrDA,KAAKsglC,eAAiB,SAASn3jC,KAAK+O,UAAUggN,YAAc,aAAa/uN,KAAK+O,UAAUg3jC,UAAuD,IAA3Ch3jC,UAAUggN,UAAUvtO,QAAQ,SACpI,CA45RA,OAv5RA0ykC,EAAc1skC,UAAUw+kC,oBAAsB,WAC1C,IAAIh6kC,EAAU+b,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,IAC7D,GAAIhhB,EAAS,CACTnV,KAAKovlC,gBAAkBtixB,KAAa,IAAI4qwB,IAAgB13kC,KAAKipiC,UAAWjpiC,MAAQ,KAC5EinV,GAAQM,WAAavnV,KAAKipiC,UAAUqf,mBACpCtojC,KAAKipiC,UAAU9zhC,QAAQ+yQ,UAAU90P,IAAI,oBAEzC,IACIi8jC,OAAa,EACjBrvlC,KAAKs4jC,oBAAsBxrvB,KAAa33T,EAAQykB,cAAc,+BAAiC94B,GAAc,MAAO,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,uBAAwBp1B,UAAW,+BACzLf,KAAKiuiC,gBAAkBnhuB,KAAa33T,EAAQykB,cAAc,0BAA4B94B,GAAc,MAAO,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,mBAAoBp1B,UAAW,wBAAyB0oV,MAAO,CAAE,aAAc,2BACxNxC,GAAQM,WAAavnV,KAAKipiC,UAAUqf,mBACpCtojC,KAAKsvlC,kCAGTtvlC,KAAKiuiC,gBAAgBhpiC,SAAW,EAC5BjF,KAAKipiC,UAAU5wsB,YACfr4V,KAAKiuiC,gBAAgB9niC,MAAM8wG,UAAY,OAE3C9hG,EAAQhP,MAAMggW,YAAc,cAC5BnmW,KAAKuvlC,iBAAiBp6kC,GACtBnV,KAAKu1jC,cAAgBzovB,KAAa33T,EAAQykB,cAAc,wBAA0B94B,GAAc,MAAO,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,iBAAkBp1B,UAAW,wBACtKf,KAAKu1jC,cAAc7jiC,YAAY1xB,KAAKs4jC,qBACpCnjjC,EAAQuc,YAAY1xB,KAAKu1jC,eACzBv1jC,KAAKwvlC,kBAAkBxvlC,KAAKu1jC,eACxBv1jC,KAAKipiC,UAAUtiiB,eACf3mgB,KAAKoljC,eAAeiQ,2BACpBg6B,EAAarvlC,KAAKipiC,UAAUtiiB,cAAc8olB,iBApB3B,SAuBX3ixB,OACA9sU,KAAKoljC,eAAeiQ,2BACpBg6B,EAAarvlC,KAAKipiC,UAAU9zhC,QAAQykB,cAAc,iBAC7C55B,KAAKipiC,UAAU0tB,gBAChB32jC,KAAKg+4B,cAAgB,EACrBqxM,EAAWlplC,MAAMi+J,QAAU,SAE1BpkK,KAAKipiC,UAAUymD,0BAA6BzowB,GAAQM,UAAYvnV,KAAKipiC,UAAUqf,oBAAwBrhuB,GAAQM,YAChHvnV,KAAKoljC,eAAewQ,eAAezvjC,MAAMi+J,QAAU,OACnDpkK,KAAKoljC,eAAeyQ,uBAAuB1vjC,MAAMi+J,QAAU,QACvDpkK,KAAKoljC,eAAegM,gBAAkBpxjC,KAAKoljC,eAAeiM,kBAC1DrxjC,KAAKoljC,eAAekP,iCAMhCt0jC,KAAKiuiC,gBAAgB9niC,MAAMyiJ,OAD3Bym8B,EACoCrvlC,KAAKkklC,iBAAiBlklC,KAAKipiC,UAAU9zhC,QAAQs/Q,wBAAwB7rI,OAAQ,IAG7E5oJ,KAAKkklC,iBAAiBlklC,KAAKipiC,UAAU9zhC,QAAQs/Q,wBAAwB7rI,OAAQ,GAErH,IAAI+q6B,EAAc3zjC,KAAKipiC,UAAU9zhC,QAAQ4vP,YACpCkiF,GAAQM,WAAYvnV,KAAKipiC,UAAUqf,oBACpCqL,EAAcA,GAAe3zjC,KAAKoljC,eAAewQ,eAAiB51jC,KAAKoljC,eAAeoO,yBAA2B,IAC5GxzjC,KAAKoljC,eAAe2N,sBAAwB/yjC,KAAKoljC,eAAeqO,0BAA4B,IAErGzzjC,KAAKiuiC,gBAAgB9niC,MAAMqY,MAAQm1iC,EAAc,KACjD3zjC,KAAKs4jC,oBAAoB5miC,YAAY1xB,KAAKiuiC,iBACtChntB,GAAQM,WAAavnV,KAAKipiC,UAAUqf,oBACpCtojC,KAAKo5jC,wBAAwBjzjC,MAAMw9H,KAAQgw7B,EAAcjjhC,WAAW1wC,KAAKo5jC,wBAAwBjzjC,MAAMqY,OAAU,KACjHxe,KAAKuklC,sBAAsBp+kC,MAAMw9H,KAAQgw7B,EAAc,EAAMjjhC,WAAW1wC,KAAKuklC,sBAAsBp+kC,MAAMqY,OAAS,EAAK,KACvHxe,KAAKuklC,sBAAsBp+kC,MAAM+nJ,IAAOluJ,KAAKipiC,UAAU9zhC,QAAQ+vP,aAAe,EAAK,KACnFllQ,KAAKuklC,sBAAsBp+kC,MAAMi+J,QAAU,OAC3CpkK,KAAKuklC,sBAAsB7yjC,YAAY1xB,KAAKuulC,4BAC5CvulC,KAAKuklC,sBAAsB7yjC,YAAY1xB,KAAK2vlC,uBAC5C3vlC,KAAKuklC,sBAAsB7yjC,YAAY1xB,KAAK4vlC,0BAC5C5vlC,KAAKiuiC,gBAAgBv8gC,YAAY1xB,KAAKuklC,uBACtCvklC,KAAKs4jC,oBAAoB5miC,YAAY1xB,KAAKo5jC,yBAC1Cp5jC,KAAKo5jC,wBAAwB1niC,YAAY1xB,KAAKsulC,sBAElDtulC,KAAKw5iC,cAAgB14iC,GAAc,MAAO,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,qBAAsBp1B,UAAW,sBAAuB0oV,MAAO,CAAE,SAAY,IAAK,aAAc,yBACxKzpV,KAAKipiC,UAAU5wsB,YACfr4V,KAAKw5iC,cAAcrziC,MAAM8wG,UAAY,OAEzCj3G,KAAKiuiC,gBAAgBv8gC,YAAY1xB,KAAKw5iC,eACtCx5iC,KAAKw5iC,cAAcrziC,MAAMqY,MAAQxe,KAAKiuiC,gBAAgBlpyB,YAAc,KAChEsq1B,GAAcrvlC,KAAKipiC,UAAU2qB,uBAAyB3suB,GAAQM,UAAYvnV,KAAKipiC,UAAUqf,oBACzFtojC,KAAKipiC,UAAU2qB,oBAAoBi8B,2BAEvC7vlC,KAAK8vlC,mBACD7owB,GAAQM,WAAavnV,KAAKipiC,UAAUqf,mBACpCtojC,KAAK+vlC,sBAET,IAAIC,EAAelvlC,GAAc,MAAO,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,sBAI1E,GAHAn2B,KAAKiuiC,gBAAgBv8gC,YAAYs+jC,GACjCnjrB,IAAc,CAAExka,OAAQ2nlC,EAAcpgvB,SAAU,kBAChD5vW,KAAKiwlC,oBAAoBD,GACrBljxB,KAAY,CACZ9sU,KAAKu8oB,kBAAoB,IAAIm6b,IAAkB12kC,KAAKipiC,UAAWjpiC,MAE/D,IAAIqgc,EAAiBnva,SAAS4hU,uBAAuB9yV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,YAC7Ekqa,GAAkBA,EAAe,KAAQA,EAAe,GAAGn4K,UAAUh1P,SAAS,iBAC9Emta,EAAe,GAAGn4K,UAAU/0P,OAAO,eACnCkta,EAAe,GAAGn4K,UAAU90P,IAAI,eAExC,MAEIpzB,KAAKu8oB,kBAAoB,IAAI4gE,IAAYn9sB,KAAKipiC,UAAWjpiC,MAE7DA,KAAKu8oB,kBAAkBwra,oBACvB/njC,KAAKkwlC,yBACLlwlC,KAAK+jW,cACD/jW,KAAKipiC,UAAUyE,kBAAsBzmtB,GAAQM,WAAYvnV,KAAKipiC,UAAUqf,mBACxEtojC,KAAKipiC,UAAUyE,iBAAiByiD,sBAEhCnwlC,KAAKipiC,UAAUmnD,eACXtjxB,KACA9sU,KAAKipiC,UAAU8E,gBAAgB13oB,kBAAkB,yBAA0Br2Z,KAAKipiC,UAAUmnD,cAG1FpwlC,KAAKipiC,UAAUx48B,KAAKzwF,KAAKipiC,UAAUmnD,aAAc,OAGrDpwlC,KAAKipiC,UAAUgb,kBACfjkjC,KAAKipiC,UAAUgb,iBAAiBosC,sBAExC,CACIppwB,GAAQM,UAAYvnV,KAAKipiC,UAAUqf,mBAAqBtojC,KAAKipiC,UAAUtiiB,gBACvE3mgB,KAAKipiC,UAAUqnD,gBAAkB,MAEzC,EACAjT,EAAc1skC,UAAU2+kC,gCAAkC,WACtDtvlC,KAAKuklC,sBAAwBzjlC,GAAc,MAAO,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,yBAA0Bp1B,UAAW,sCACzHf,KAAKuulC,2BAA6BztlC,GAAc,OAAQ,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,8BAA+Bp1B,UAAW,qCACpIf,KAAK2vlC,sBAAwB7ulC,GAAc,OAAQ,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,6BAA8Bp1B,UAAW,oCAC9Hf,KAAK4vlC,yBAA2B9ulC,GAAc,OAAQ,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,4BAA6Bp1B,UAAW,mCAChIf,KAAKo5jC,wBAA0Bt4jC,GAAc,MAAO,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,yBAA0Bp1B,UAAW,gCAC3Hf,KAAKsulC,oBAAsBxtlC,GAAc,OAAQ,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,uBAAwBp1B,UAAW,oCACtHf,KAAKsulC,oBAAoBpljC,UAAY,IACrClpC,KAAKuulC,2BAA2BrljC,UAAY,IAC5ClpC,KAAK2vlC,sBAAsBzmjC,UAAY,2CACvClpC,KAAKo5jC,wBAAwBjzjC,MAAM4mkB,SAAW,QAC9C/skB,KAAKo5jC,wBAAwBjzjC,MAAMqY,MAAQ,OAC3Cxe,KAAKo5jC,wBAAwBjzjC,MAAMyiJ,OAAS,OAC5C5oJ,KAAKo5jC,wBAAwBjzjC,MAAMwoI,OAAS,MAC5C3uI,KAAKuklC,sBAAsBp+kC,MAAMqY,MAAQ,QACzCxe,KAAKuklC,sBAAsBp+kC,MAAMyiJ,OAAS,QAC1C5oJ,KAAKuklC,sBAAsBp+kC,MAAMwoI,OAAS,MAC1C3uI,KAAKuklC,sBAAsBp+kC,MAAM+jF,SAAW,QAC5ClqF,KAAKo5jC,wBAAwB99hC,iBAAiB,aAAct7B,KAAKuwlC,0BAA0B1wlC,KAAKG,OAChGA,KAAKo5jC,wBAAwB99hC,iBAAiB,WAAYt7B,KAAKwwlC,yBAAyB3wlC,KAAKG,OAC7FA,KAAKo5jC,wBAAwBjzjC,MAAMi+J,QAAU,MACjD,EAOAi56B,EAAc1skC,UAAU8/kC,mBAAqB,SAAUC,EAAc5l8B,GACjE9qJ,KAAK2wlC,WAAaD,EAClB1wlC,KAAKojjC,WAAapjjC,KAAKk8iC,aACnBl8iC,KAAKiuiC,kBACLjuiC,KAAKiuiC,gBAAgB9/4B,UAAY,GAErCnuJ,KAAK4wlC,sBAAqB,GAC1B5wlC,KAAKyjlC,OAAS,IACdzjlC,KAAK6wlC,YAAa,EAClB7wlC,KAAK8wlC,mBACkC,QAAnC9wlC,KAAKipiC,UAAUqnD,iBACftwlC,KAAK+wlC,kBAETL,EAAe1wlC,KAAKgxlC,kBAAkBN,GACtC1wlC,KAAKixlC,cACDjxlC,KAAKipiC,UAAUy5C,iBACf1ilC,KAAK0ilC,iBAAmB1ilC,KAAKipiC,UAAUy5C,iBAGvC1ilC,KAAK0ilC,iBAAmB1ilC,KAAKipiC,UAAU9qkB,SAE3C,IAAIu+lB,EAAa18jC,KAAKkxlC,oBAAoBR,EAAc5l8B,GACxD9qJ,KAAKmxlC,kBAAkBz0B,EAAYg0B,EAAc5l8B,EACrD,EAIAuy7B,EAAc1skC,UAAUyglC,qBAAuB,SAAUhuC,EAAYytC,EAAY1ynB,GACzEillB,IACApjjC,KAAKojjC,WAAaA,GAElBpjjC,KAAKiuiC,kBACLjuiC,KAAKiuiC,gBAAgB9/4B,UAAY,GAErCnuJ,KAAK4wlC,sBAAqB,GAC1B5wlC,KAAKyjlC,OAAS,IACdzjlC,KAAK6wlC,WAAaA,EAClB7wlC,KAAK8wlC,mBACkC,QAAnC9wlC,KAAKipiC,UAAUqnD,iBACftwlC,KAAK+wlC,kBAET/wlC,KAAKixlC,cAC2B,OAA5BjxlC,KAAKipiC,UAAU9qkB,WACX0ynB,GAAc1ynB,GACdn+d,KAAKipiC,UAAU9qkB,SAAWA,EAC1Bn+d,KAAKqxlC,eAAiBrxlC,KAAKipiC,UAAU9qkB,WAGrCn+d,KAAKipiC,UAAU9qkB,SAAW,gBAC1Bn+d,KAAKqxlC,eAAiB,OAG1BrxlC,KAAKipiC,UAAUy5C,iBACf1ilC,KAAK0ilC,iBAAmB1ilC,KAAKipiC,UAAUy5C,iBAGvC1ilC,KAAK0ilC,iBAAmB1ilC,KAAKipiC,UAAU9qkB,QAE/C,EAIAk/mB,EAAc1skC,UAAU2glC,YAAc,SAAUC,EAAiBzm8B,GAE7D,IAAI5gH,EAAOqnjC,EACX,GAAIrnjC,EAAM,CACN,GAAoB,kBAATA,EACP,IACIA,EAAOuG,KAAKuL,MAAM9R,EACtB,CACA,MAAOjzB,IACHjX,KAAKwxlC,eAAe,IAAKtnjC,EAAMlqC,KAAKipiC,UAAUwoD,qBAAqBhhgC,MACnEvmD,EAAO,IACX,CAEJ,GAAIA,EAAM,CACN,KAAuB,kBAATA,GAGV,GAFAA,EAAOuG,KAAKuL,MAAM9R,GAEY,kBAAnB3d,SAAS2d,KAAuBroC,MAAM0qB,SAAS2d,IAAQ,CAE9DA,EAAO3d,SAAS2d,GAChB,KACJ,CAEAA,EAAKwnjC,YAAmC,wBAApBxnjC,EAAKwnjC,YACzB1xlC,KAAK4wlC,sBAAqB,IAG1B1mjC,EAAK6kD,WAAa/uF,KAAKojjC,YAAyC,kBAAnB72hC,SAAS2d,KAAuBroC,MAAM0qB,SAAS2d,OAC5FlqC,KAAKipiC,UAAU0oD,uBAAuB3xlC,KAAKipiC,UAAUwoD,qBAAqBhhgC,KAAMvmD,GAChFlqC,KAAK4xlC,eAAe1njC,EAAM,KAAM4gH,GAExC,CACJ,CACJ,EAEAuy7B,EAAc1skC,UAAU4/kC,0BAA4B,SAAUx5jC,GAG1D,GAFA/2B,KAAKo/kC,aAAc,EACnBp/kC,KAAKq/kC,SAAU,EACXr/kC,KAAK6llC,gCAEyF,MAA1F7llC,KAAKipiC,UAAUgb,iBAAiBsE,2BAA2B0iC,6BAAwChkwB,GAAQM,WAAavnV,KAAKipiC,UAAUqf,kBAAoB,CAC3J,IAAInmP,EAAani0B,KAAKipiC,UAAUgb,iBAAiBsE,2BAA2B0iC,4BAC5EjrlC,KAAKipiC,UAAUgb,iBAAiBsE,2BAA2B0iC,4BAA8B,KACzFjrlC,KAAKipiC,UAAUgb,iBAAiBsE,2BAA2BspC,yBAAyB1vR,GACpFni0B,KAAKipiC,UAAUh0a,QAAQ6kc,aAAY,EACvC,CAEJ95jC,KAAKo5jC,wBAAwB99hC,iBAAiB,YAAat7B,KAAKwtlC,wBAAwB3tlC,KAAKG,OAAO,EACxG,EAMAq9kC,EAAc1skC,UAAUmhlC,iBAAmB,SAAUzxlC,GAEjD,IAAIgijC,EAAcrijC,KAAKiuiC,gBAAgBx5wB,wBAGvC,MAAO,CAAEv6Q,EAFE7Z,EAAEg5B,QAAUgphC,EAAY1+6B,KAEjBxpH,EADR9Z,EAAEi5B,QAAU+ohC,EAAYn05B,IAEtC,EAEAmv7B,EAAc1skC,UAAU4+kC,iBAAmB,SAAUp6kC,GAEjD,IAAIktiC,EAAcltiC,EAAQs/Q,0BACpBwyD,GAAQM,UAAYvnV,KAAKipiC,UAAUqf,mBAAuBjG,GAAsC,IAAvBA,EAAYz55B,UACvFzzI,EAAQhP,MAAMyvgB,UAAY,SAE9B51gB,KAAK0uxB,cACL1uxB,KAAK+xlC,cACT,EAEA1U,EAAc1skC,UAAU6+kC,kBAAoB,SAAUr6kC,GAElD,IAAIktiC,EAAcltiC,EAAQs/Q,wBACrBwyD,GAAQM,WAAavnV,KAAKipiC,UAAUqf,mBAAsBjG,GAAsC,IAAvBA,EAAYz55B,SACtFzzI,EAAQhP,MAAMyvgB,UAAY,QAElC,EAKAynkB,EAAc1skC,UAAU+9wB,YAAc,WACM,SAApC1uxB,KAAKipiC,UAAUzqhC,MAAM1H,aAErB9W,KAAKipiC,UAAU9zhC,QAAQhP,MAAMqY,MAAQxe,KAAKipiC,UAAUzqhC,MAE5D,EAKA6+jC,EAAc1skC,UAAUohlC,aAAe,WACM,SAArC/xlC,KAAKipiC,UAAUrg5B,OAAO9xI,aAEtB9W,KAAKipiC,UAAU9zhC,QAAQhP,MAAMyiJ,OAAS5oJ,KAAKipiC,UAAUrg5B,OAE7D,EAKAy07B,EAAc1skC,UAAUqhlC,sBAAwB,WAC5C,IAAIn/B,EAA0B7yjC,KAAKgnS,WAAW,4BAC1C6rxB,GAAqE,SAA1CA,EAAwB1sjC,MAAMi+J,QACzDpkK,KAAKoljC,eAAekP,+BAEfzB,GAAqE,UAA1CA,EAAwB1sjC,MAAMi+J,QAC9DpkK,KAAKoljC,eAAeuP,gCAGpB30jC,KAAKiylC,4BAGT,IAAItrlB,EAAgB3mgB,KAAKipiC,UAAUtiiB,cAC/BA,IACI75L,MACI9sU,KAAKipiC,UAAU0tB,eAAiB32jC,KAAKipiC,UAAUiyC,0BAC/Cl7kC,KAAKipiC,UAAU8E,gBAAgB13oB,kBAAkB,wBAIjDr2Z,KAAKipiC,UAAU0tB,eACfhwjB,EAAcsuH,QAAQr3F,kBAEtB59hB,KAAKipiC,UAAUiyC,yBAA2Bv0kB,EAAcwxjB,yBACxDxxjB,EAAcwxjB,wBAAwBljc,QAAQr3F,mBAI9D,EACAy/iB,EAAc1skC,UAAUshlC,0BAA4B,WAChDjylC,KAAKiuiC,gBAAgB9niC,MAAMqY,MAAQxe,KAAKipiC,UAAU9zhC,QAAQ4vP,YAAc,KACxE/kQ,KAAKw5iC,cAAcrziC,MAAMqY,MAAQxe,KAAKiuiC,gBAAgB99xB,YAAc,KACpEnwQ,KAAK8zjC,iBACT,EAEAupB,EAAc1skC,UAAU6/kC,yBAA2B,SAAUz5jC,GACpD/2B,KAAKo/kC,aACNp/kC,KAAKkylC,cAAc7ryB,OAEvBrmT,KAAKq/kC,SAAU,EACfr/kC,KAAKo/kC,aAAc,EACnBp/kC,KAAKo5jC,wBAAwBh+hC,oBAAoB,YAAap7B,KAAKwtlC,wBAAwB3tlC,KAAKG,OAAO,GACvGA,KAAKuklC,sBAAsBp+kC,MAAMi+J,QAAU,MAC/C,EAMAi56B,EAAc1skC,UAAUwhlC,iBAAmB,SAAUjojC,GACjD,IAAIgvzB,GAAW,EAiBf,OAhBIhvzB,GAA0B,kBAAVA,IAAuBA,EAAKkojC,aAAelojC,EAAK6wM,aAAoC,KAArB7wM,EAAKkojC,aAA2C,KAArBlojC,EAAK6wM,aACtF,KAArB7wM,EAAKkojC,aAA2C,KAArBlojC,EAAK6wM,YAChCm+mB,GAAW,EAGXhvzB,EAAKkojC,YAAcphkC,OAAO2G,SAASwwB,KAAOje,EAAKkojC,YAAcphkC,OAAO2G,SAASwwB,KAAOje,EAAK6wM,YAGxF7wM,GAA0B,kBAAVA,IAAuBA,EAAKsgB,SAAS,gBAAkBtgB,EAAKsgB,SAAS,kBACrD,KAAjC/Z,KAAKuL,MAAM9R,GAAMkojC,aAAuD,KAAjC3hjC,KAAKuL,MAAM9R,GAAM6wM,YACxDm+mB,GAAW,EAGXhvzB,EAAKsgB,SAAS,eAAiBx5B,OAAO2G,SAASwwB,KAAO1X,KAAKuL,MAAM9R,GAAMkojC,YAAcphkC,OAAO2G,SAASwwB,KAAO1X,KAAKuL,MAAM9R,GAAM6wM,aAG9Hm+mB,CACX,EAEAmkP,EAAc1skC,UAAUwglC,kBAAoB,SAAUz0B,EAAYg0B,EAAc5l8B,GAC5E,IAAIk7C,EACJA,EAAQhmM,KACJA,KAAKipiC,UAAUwoD,uBACfzxlC,KAAKqylC,mBAAqB,IAAIv2B,IAAY97jC,KAAKipiC,WAC/CjpiC,KAAKqylC,mBAAmBpj+B,IAAMjvH,KAAKipiC,UAAUy6C,WAAa,IAAM1jlC,KAAKipiC,UAAUwoD,qBAAqBhhgC,KACpGzwF,KAAKqylC,mBAAmBnhR,aAAe,OACvClx0B,KAAKqylC,mBAAmB9hiC,MAAO,EAE/BmsgC,EAAmB,OAAI,OAEvBA,EAAsB,UAAI18jC,KAAKipiC,UAAU9zhC,QAAQghB,GACjDn2B,KAAKqylC,mBAAmBl82B,KAAKum1B,GAE7B18jC,KAAKqylC,mBAAmB9swB,UAAY,SAAU16T,GAE1C,IAAIqf,EAAOrf,EAAOqf,KAElB,GADe87J,EAAMms5B,iBAAiBjojC,GAElC87J,EAAM4q5B,sBAAqB,QAG3B,GAAI1mjC,EAAM,CACN,GAAoB,kBAATA,EACP,IACIA,EAAOuG,KAAKuL,MAAM9R,EACtB,CACA,MAAOjzB,IACH+uL,EAAMwr5B,eAAe,IAAKtnjC,EAAMlqC,KAAKipiC,UAAUwoD,qBAAqBhhgC,MACpEvmD,EAAO,IACX,CAEJ,GAAIA,EAAM,CACN,KAAuB,kBAATA,GAGV,GAFAA,EAAOuG,KAAKuL,MAAM9R,GAEY,kBAAnB3d,SAAS2d,KAAuBroC,MAAM0qB,SAAS2d,IAAQ,CAE9DA,EAAO3d,SAAS2d,GAChB,KACJ,EAGAA,EAAK6kD,WAAai3G,EAAMo92B,YAAyC,kBAAnB72hC,SAAS2d,KAAuBroC,MAAM0qB,SAAS2d,OAC7F87J,EAAMss5B,oBAAoBpojC,GAC1B87J,EAAMij2B,UAAU0oD,uBAAuB3xlC,KAAKipiC,UAAUwoD,qBAAqBhhgC,KAAMvmD,IAC5E6hS,GAAkB7hS,EAAkB,cAAMA,EAAkB,cAC7D87J,EAAMqp2B,aAAc,GAExBrp2B,EAAM4r5B,eAAe1njC,EAAMwmjC,EAAc5l8B,GAEjD,CACJ,MAEIk7C,EAAM4q5B,sBAAqB,GAC3B5q5B,EAAMws3B,kCAAkCxs3B,EAAMij2B,UAAU59hB,UAAUtlK,YAAY,qBAG1F,EAEA/lW,KAAKqylC,mBAAmB5swB,UAAY,SAAU56T,GAErB,MADFA,EAAO4rH,OAAO3/H,WAAW6b,MAAM,IAAI,GAElDqzK,EAAMus5B,sBAAsB,gBAG5Bvs5B,EAAMus5B,wBAEVvs5B,EAAM4q5B,sBAAqB,GAC3B5q5B,EAAMij2B,UAAUqzB,sBAAsBzxiC,EAAO4rH,OAAQ5rH,EAAO+6T,WAAY5/I,EAAMij2B,UAAUwoD,qBAAqBhhgC,KACjH,EAEAzwF,KAAKqylC,mBAAmBp78B,QAAU,SAAUpsH,GACxCm7K,EAAMus5B,wBACNvs5B,EAAM4q5B,sBAAqB,GAE3B5q5B,EAAMij2B,UAAUqzB,sBAAsBzxiC,EAAO4rH,OAAQ5rH,EAAO+6T,WAAY5/I,EAAMij2B,UAAUwoD,qBAAqBhhgC,KACjH,EAER,EAKA4s/B,EAAc1skC,UAAU2hlC,oBAAsB,SAAUpojC,GACpD,GAAIA,GAAQA,EAAKsojC,uBAAyBtojC,EAAKsojC,sBAAsBpvlC,OAAS,EAE1E,IADA,IAAIg8G,OAAQ,EACHjzG,EAAI,EAAGA,EAAI+9B,EAAKsojC,sBAAsBpvlC,OAAQ+I,KACnDizG,EAAQl1E,EAAKsojC,sBAAsBjmkC,SAASpgB,EAAE2K,WAAY,OAElDsoG,EAAMqz+B,kBACNrz+B,EAAMsz+B,UAAYtz+B,EAAMqz+B,gBAK5C,EAMApV,EAAc1skC,UAAU4hlC,sBAAwB,SAAU5q6B,GACtD,IAAIroL,EAAQU,KACZ,GAAIA,KAAKipiC,UAAU0pD,uBAAwB,CACvC,GAAoB,iBAAhBhr6B,EACA,GAAImlJ,KACc9sU,KAAKipiC,UAAU8E,gBAAgB13oB,kBAAkB,gBAAiB,yBACxEp7R,MAAK,SAAUr5H,GACnBtC,EAAMoqiC,UAAUiE,wBAAwB/riC,EAC5C,SAGA5B,KAAK0piC,UAAUiE,wBAAwB3tiC,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,sBAIhF,GAAIj5B,KACc9sU,KAAKipiC,UAAU8E,gBAAgB13oB,kBAAkB,gBAAiB,yBACxEp7R,MAAK,SAAUr5H,GACnBtC,EAAMoqiC,UAAUiE,wBAAwB/riC,EAC5C,SAGA5B,KAAK0piC,UAAUiE,wBAAwB3tiC,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,iBAGhF/lW,KAAKgnS,WAAW,YAChBhnS,KAAKgnS,WAAW,WAAW9e,UAAU90P,IAAI,kCAEjD,CACJ,EAMAiqjC,EAAc1skC,UAAUiilC,sBAAwB,SAAUjr6B,GACjD3nL,KAAKipiC,UAAU0pD,wBAA0C,KAAhBhr6B,IAC1C3nL,KAAK0piC,UAAUiE,wBAAwBhm3B,GACnC3nL,KAAKgnS,WAAW,YAChBhnS,KAAKgnS,WAAW,WAAW9e,UAAU90P,IAAI,mCAGrD,EAEAiqjC,EAAc1skC,UAAUihlC,eAAiB,SAAU1njC,EAAMwmjC,EAAc5l8B,GACnE,GAAI5gH,QAA2B7mC,IAAnB6mC,EAAKknkB,UAAyB,CAClCtkS,MAAc9sU,KAAKkilC,aACnBlilC,KAAKkilC,YAAa,EAClBlilC,KAAKk8jC,qBAAsB,EAC3Bl8jC,KAAKipiC,UAAU8E,gBAAgB13oB,kBAAkB,wBAEjDvrQ,GAAwB,IAAZA,IACZ9qJ,KAAKm8jC,aAAerx6B,GAExB9qJ,KAAKipiC,UAAU39sB,wBAAyB,EACxCtrV,KAAKoxmB,UAAYlnkB,EAAKknkB,UACtBpxmB,KAAKipiC,UAAU73b,UAAYlnkB,EAAKknkB,UAChCpxmB,KAAKyjlC,OAASv5iC,EAAKu5iC,OACnBzjlC,KAAKwjlC,kBAAoBt5iC,EAAKs5iC,kBAC9BxjlC,KAAK6/kC,+BAAgC,EACrC7/kC,KAAK6ylC,uBACL7ylC,KAAK8ylC,mBAAmB5ojC,GACxBlqC,KAAKipiC,UAAU39sB,wBAAyB,EACxCtrV,KAAKmilC,sBAAwBj4iC,EAAKi4iC,sBAClCnilC,KAAK+ylC,WAAW7ojC,GAEhB,IAAIq2rB,EAAW,CAAEnvH,UAAWlnkB,EAAKknkB,UAAWspB,UAAWxwlB,EAAKwwlB,WAE5D,GADA1pmB,OAAOor0B,eAAexwoB,QAAQ5rN,KAAKojjC,WAAa,YAAa3ygC,KAAK+mF,UAAU+omB,IACxEt5Y,GAAQM,WAAavnV,KAAKipiC,UAAUqf,kBAAmB,CACvDtojC,KAAKo5jC,wBAAwBjzjC,MAAMi+J,QAAU,GAE7C,IAAI45uB,EAAgBh+4B,KAAKipiC,UAAUtiiB,cAAgB3mgB,KAAKg+4B,cAAgB,EACxEh+4B,KAAKo5jC,wBAAwBjzjC,MAAM+nJ,IAAO8vvB,EAAiB,IAC/D,CACAh+4B,KAAKgzlC,gBAAkB9ojC,EAAK+ojC,mBAC5BjzlC,KAAKkzlC,mBAAmBlzlC,KAAKgzlC,iBAAiB,EAClD,MAEIhzlC,KAAKoxmB,UAAY,EACjBpxmB,KAAK6riC,kBAAoB,EACrB5ktB,GAAQM,WAAavnV,KAAKipiC,UAAUqf,oBACpCtojC,KAAKo5jC,wBAAwBjzjC,MAAMi+J,QAAU,QAEpC,IAATl6H,EACK4iS,MAED9sU,KAAKmzlC,oBAAoBzC,EAAc5l8B,GAG7B,IAAT5gH,IACA4iS,MAED9sU,KAAKozlC,sBAGTpzlC,KAAKipiC,UAAUtiiB,eACf3mgB,KAAKipiC,UAAUtiiB,cAAcupZ,qBAIrC,IAAI+zJ,EAAmBjkjC,KAAKipiC,UAAUgb,iBAElCA,GAAoBA,EAAiBsE,4BAA8BtE,EAAiBsE,2BAA2BwgC,0BAA0B9kC,EAAiBsE,2BAA2BygC,2BACrL/kC,EAAiBsE,2BAA2B8qC,+BAEpD,EAEAhW,EAAc1skC,UAAUuilC,mBAAqB,SAAUI,EAAoBl0sB,GACvE,GAAIk0sB,EACA,IAAK,IAAInnlC,EAAI,EAAGA,EAAImnlC,EAAmBlwlC,OAAQ+I,IAC3CnM,KAAKuzlC,kBAAkBD,EAAmB/mkC,SAASpgB,EAAE2K,WAAY,KAAMsoY,GAClEtyE,KAMG9sU,KAAKipiC,UAAUtiiB,eACf3mgB,KAAKipiC,UAAU8E,gBAAgB13oB,kBAAkB,uBAAwBi9rB,EAAoBl0sB,GAN7Fp/Y,KAAKipiC,UAAUtiiB,eACf3mgB,KAAKipiC,UAAUtiiB,cAAc6slB,oBAAoBF,EAAmB/mkC,SAASpgB,EAAE2K,WAAY,KAAMsoY,EAUrH,EAEAi+rB,EAAc1skC,UAAU4ilC,kBAAoB,SAAUD,EAAoBl0sB,GACtE,OAAQk0sB,GACJ,IAAK,QACDtzlC,KAAKipiC,UAAUkyC,YAAc/7rB,EAC7B,MACJ,IAAK,cACDp/Y,KAAKipiC,UAAU2B,oBAAsBxrpB,EACrC,MACJ,IAAK,aACDp/Y,KAAKipiC,UAAUwqD,iBAAmBr0sB,EAClCp/Y,KAAK0zlC,sBAAsBt0sB,GAC3B,MACJ,IAAK,kBACDp/Y,KAAKipiC,UAAUgyC,iBAAmB77rB,EAG9C,EAEAi+rB,EAAc1skC,UAAUoilC,WAAa,SAAU7ojC,GAC3ClqC,KAAKkxB,SAAW,KAChBlxB,KAAK2zlC,sBACD3zlC,KAAK4zlC,eACL5zlC,KAAK4zlC,cAAcr2zB,OAGvBv9R,KAAK6zlC,YAAY3pjC,GACjBlqC,KAAK6riC,kBAAoB/1nB,EACzB91a,KAAKipiC,UAAU4C,kBAAoB/1nB,EACnC91a,KAAKyj5B,kBAAoBzj5B,KAAKipiC,UAAU09C,UACxC,IAAImN,GAAa,EACb9zlC,KAAKipiC,UAAUwE,sBACfztiC,KAAKipiC,UAAUwE,oBAAoBsmD,YAAa,EAC5C/zlC,KAAKipiC,UAAU09C,WAAa3mlC,KAAKipiC,UAAU09C,UAAY,IACtB,MAA7B3mlC,KAAKipiC,UAAU09C,YACfmN,GAAa,GAEjB9zlC,KAAK0glC,mBAAoB,EACzB1glC,KAAKipiC,UAAUi9C,cAAc8N,OAAOh0lC,KAAKipiC,UAAU09C,YAEvB,eAA5B3mlC,KAAKipiC,UAAUgrD,UACfj0lC,KAAK0glC,mBAAoB,EACzB1glC,KAAKipiC,UAAUwE,oBAAoBymD,cAEF,cAA5Bl0lC,KAAKipiC,UAAUgrD,WACpBj0lC,KAAK0glC,mBAAoB,EACzB1glC,KAAKipiC,UAAUwE,oBAAoB0mD,aAEvCn0lC,KAAKohlC,gBAAiB,EACtBphlC,KAAKipiC,UAAUwE,oBAAoB/qJ,kBAAmB,EACtD1i5B,KAAK45jC,iBACL55jC,KAAKohlC,gBAAiB,EACtBphlC,KAAKipiC,UAAUwE,oBAAoB/qJ,kBAAmB,GAE1D1i5B,KAAKw9kC,kBAAmB,EAExB,IAAI4W,EAAgB,IAEpBA,EAAgB7nkC,SAAS6nkC,GACTp0lC,KAAK+1a,SAASxpZ,UAlCd,GAkCiCzV,WAAY,KAAK0H,MAClE,IAAmD,IAA/Cxe,KAAKy9kC,kBAAkB9ykC,QAnCX,KAmCyCmplC,EAAY,CACjE9zlC,KAAKq0lC,uBApCO,GAuCZ,IAFA,IAAIlyR,EAAarsZ,EACbw+qB,EAAct0lC,KAAKipiC,UAAUsrD,oBAAsBv0lC,KAAKoxmB,UAAapxmB,KAAKipiC,UAAUsrD,mBAAqBv0lC,KAAK6hlC,gBAAmB7hlC,KAAKipiC,UAAUsrD,mBAAqB,EAAIv0lC,KAAKoxmB,UACzKjlmB,EAAI,EAAGA,EAAImolC,EAAanolC,IAC7BnM,KAAKq0lC,uBAAuBlolC,GAC5Bg2zB,GAA0B,EAE9B,GAAIni0B,KAAK+1a,SAASxpZ,SAAS41yB,EAAWrrzB,WAAY,KAG9C,IAFA,IAAI09kC,EAAUx0lC,KAAKgulC,WAAW7rR,GAC1BsyR,EAAez0lC,KAAKiuiC,gBAAgB/oyB,aACjCuv1B,EAAeD,GACdx0lC,KAAK+1a,SAASxpZ,SAAS41yB,EAAWrrzB,WAAY,MAC9C9W,KAAK00lC,kBAAkBvyR,GACvBni0B,KAAKq0lC,uBAAuBlyR,GAC5BqyR,EAAUx0lC,KAAKgulC,WAAW7rR,GAC1BA,GAA0B,CAO1C,CACAni0B,KAAK4wlC,sBAAqB,GACrB9jxB,MACG9sU,KAAKipiC,UAAUtiiB,gBACf3mgB,KAAKipiC,UAAUtiiB,cAAcgulB,qBAAuB,KACpD30lC,KAAKipiC,UAAUtiiB,cAAc8zkB,kBAAkBz6kC,KAAK6riC,mBACpD7riC,KAAKipiC,UAAUtiiB,cAAcupZ,qBACzBlw5B,KAAKipiC,UAAUh0a,SAAWj1nB,KAAKipiC,UAAUh0a,QAAQkjc,yBACjDn4jC,KAAKipiC,UAAUh0a,QAAQkjc,wBAAwBy8B,0BAAyB,GAG5E50lC,KAAKiuiC,gBAAgBj5gC,aAAa,kBAAmBh1B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,aAAen2B,KAAK6riC,kBAAoB,KAG7H5ktB,GAAQM,WAAavnV,KAAKipiC,UAAUqf,oBACpCtojC,KAAKsulC,oBAAoBpljC,UAAYlpC,KAAK6riC,kBAAkB/0hC,WAC5D9W,KAAKuulC,2BAA2BrljC,UAAYlpC,KAAK6riC,kBAAkB/0hC,WAE3E,EACAumkC,EAAc1skC,UAAUwilC,oBAAsB,SAAUzC,EAAc5l8B,GAClE,IAAIxrJ,EAAQU,KACZ,GAAK8sU,KA2BA,CAED,IAAI+nxB,EAAkB3jkC,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,WAC5Dn2B,KAAKipiC,UAAU8E,gBAAgB13oB,kBAAkB,gBAAiB,2BACxEp7R,MAAK,SAAUr5H,GACnBizlC,EAAgBjrjC,YAAchoC,CAClC,IAEA,IAAIkzlC,EAAkB5jkC,SAAS0I,cAAc,IAAM55B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,mBAY/E,GAXA2+jC,EAAgBx5jC,iBAAiB,SAAS,WACR,KAA1Bw5jC,EAAgBlzlC,OAChBtC,EAAMq0lC,qBAEd,IACAmB,EAAgBx5jC,iBAAiB,SAAS,WACtCw5jC,EAAgBj/zB,cAAc3N,UAAU90P,IAAI,gBAChD,IACA0hkC,EAAgBx5jC,iBAAiB,QAAQ,WACrCw5jC,EAAgBj/zB,cAAc3N,UAAU/0P,OAAO,gBACnD,IACKnzB,KAAKk8jC,oBAWNl8jC,KAAKipiC,UAAU8rD,wBAAuB,EAAMjq8B,GAC5C+p8B,EAAgB3s0B,UAAU90P,IAAI,uBACdpzB,KAAKipiC,UAAU8E,gBAAgB13oB,kBAAkB,gBAAiB,6BACxEp7R,MAAK,SAAUr5H,GACrBizlC,EAAgBjrjC,YAAchoC,CAClC,IACAizlC,EAAgBzqlC,QACZpK,KAAK6wlC,WACL7wlC,KAAKkxB,SAAWw/jC,EAGhB1wlC,KAAKkxB,SAAW,+BAAiCw/jC,OArBjD1wlC,KAAK6wlC,WACL7wlC,KAAKkxB,SAAWw/jC,EAGhB1wlC,KAAKkxB,SAAW,+BAAiCw/jC,EAErD1wlC,KAAKk8jC,qBAAsB,EAC3Bl8jC,KAAKipiC,UAAU8rD,wBAAuB,EAAM,MAiBhD/0lC,KAAKipiC,UAAU8E,gBAAgB13oB,kBAAkB,qBACrD,MAxESr2Z,KAAKk8jC,qBAaNl8jC,KAAKipiC,UAAU8rD,wBAAuB,EAAMjq8B,GAC5C9qJ,KAAKg1lC,cAAc9s0B,UAAU90P,IAAI,uBACjCpzB,KAAKg1lC,cAAcprjC,YAAc5pC,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,oBACtE/lW,KAAKg1lC,cAAc5qlC,QACfpK,KAAK6wlC,WACL7wlC,KAAKkxB,SAAWw/jC,EAGhB1wlC,KAAKkxB,SAAW,+BAAiCw/jC,EAErD1wlC,KAAK4zlC,cAAcvtyB,SAtBfrmT,KAAK6wlC,WACL7wlC,KAAKkxB,SAAWw/jC,EAGhB1wlC,KAAKkxB,SAAW,+BAAiCw/jC,EAErD1wlC,KAAKk8jC,qBAAsB,EAC3Bl8jC,KAAKi1lC,sBACLj1lC,KAAKipiC,UAAU8rD,wBAAuB,EAAM,MAC5C/0lC,KAAK4zlC,cAAcvtyB,OA+D/B,EACAg3xB,EAAc1skC,UAAUyilC,mBAAqB,WACzCpzlC,KAAKipiC,UAAU8rD,wBAAuB,EAAO,MAC7C/0lC,KAAKojjC,WAAa,KACdpjjC,KAAKipiC,UAAU0pD,yBACV7lxB,KAKD9sU,KAAKipiC,UAAU8E,gBAAgB13oB,kBAAkB,wBAJjDr2Z,KAAKk1lC,uBACLl1lC,KAAKm1lC,aAAa9uyB,QAM9B,EACAg3xB,EAAc1skC,UAAUuglC,oBAAsB,SAAUR,EAAc5l8B,GAClE,IAAI4x6B,EAYJ,OAXI5x6B,GACA9qJ,KAAKk8jC,qBAAsB,EAC3Bl8jC,KAAKm8jC,aAAerx6B,EAEpB4x6B,EAAa,CAAExriC,SAAUw/jC,EAAc5l8B,SAAUA,EAAUi2vB,WAAY,IAAK8vM,WAAY7wlC,KAAK6wlC,WAAW/5kC,WAAYi4E,SAAU/uF,KAAKojjC,WAAYgyC,+BAAgCp1lC,KAAKipiC,UAAUmsD,kCAG9Lp1lC,KAAKk8jC,qBAAsB,EAC3Bl8jC,KAAKm8jC,aAAe,GACpBO,EAAa,CAAExriC,SAAUw/jC,EAAc3vM,WAAY,IAAK8vM,WAAY7wlC,KAAK6wlC,WAAW/5kC,WAAYi4E,SAAU/uF,KAAKojjC,WAAYiyC,gCAAiCr1lC,KAAKipiC,UAAUosD,gCAAiCD,+BAAgCp1lC,KAAKipiC,UAAUmsD,iCAExP14B,CACX,EACA2gB,EAAc1skC,UAAUqglC,kBAAoB,SAAUN,GAClD,IAAI5s4B,EAAe4s4B,EAAa/9jC,MAAM,WAAW,GACjD,QAAqBtvB,IAAjBygN,GAGA,GAFA9jN,KAAK6wlC,YAAa,EAClB7wlC,KAAKqxlC,eAAiBX,EACU,OAA5B1wlC,KAAKipiC,UAAU9qkB,SAAmB,CAElC,IAAIm3nB,GAAuD,IAAhC5E,EAAa/llC,QAAQ,MAAgB+llC,EAAa/9jC,MAAM,MAAQ+9jC,EAAa/9jC,MAAM,KAC9G3yB,KAAKipiC,UAAU9qkB,SAAWm3nB,EAAoBA,EAAoBlylC,OAAS,GAC3EpD,KAAKqxlC,eAAiBrxlC,KAAKipiC,UAAU9qkB,SACrCr6Q,EAAe4s4B,CACnB,OAGA1wlC,KAAKqxlC,eAAiB,KAE1B,OAAOvt4B,CACX,EACAu53B,EAAc1skC,UAAUsglC,YAAc,WACF,OAA5BjxlC,KAAKipiC,UAAU9qkB,WACXn+d,KAAKipiC,UAAUtiiB,eAAiB3mgB,KAAKipiC,UAAUtiiB,cAAcgulB,sBAC7D30lC,KAAKipiC,UAAU9qkB,SAAWn+d,KAAKipiC,UAAUtiiB,cAAcgulB,qBACvD30lC,KAAKqxlC,eAAiBrxlC,KAAKipiC,UAAU9qkB,WAGrCn+d,KAAKipiC,UAAU9qkB,SAAW,gBAC1Bn+d,KAAKqxlC,eAAiB,MAGlC,EACAhU,EAAc1skC,UAAUmglC,iBAAmB,WACvC9/jC,OAAOor0B,eAAexwoB,QAAQ,kBAAmB5rN,KAAKojjC,YACtDpyhC,OAAOor0B,eAAexwoB,QAAQ,aAAc5rN,KAAKipiC,UAAUy6C,YACvD1jlC,KAAKipiC,UAAUwoD,sBACfzgkC,OAAOor0B,eAAexwoB,QAAQ,SAAU5rN,KAAKipiC,UAAUwoD,qBAAqB96J,OAEpF,EACA0mJ,EAAc1skC,UAAUkilC,qBAAuB,WAC3C,IAAIpP,EAAS,GAETA,EADAx8vB,GAAQh0D,MAA8B,SAAtBg0D,GAAQ1qT,KAAK73B,KACpBqrC,UAAU/vC,KAAKyjlC,QAGfzjlC,KAAKyjlC,OAElBzyjC,OAAOor0B,eAAexwoB,QAAQ,SAAU633B,GACpCzjlC,KAAKwjlC,mBACLxyjC,OAAOor0B,eAAexwoB,QAAQ,oBAAqB5rN,KAAKwjlC,kBAAkB1skC,WAElF,EAEAumkC,EAAc1skC,UAAUmilC,mBAAqB,SAAU5ojC,GAGnD,GAFAlqC,KAAKipiC,UAAU+xC,qBAAsB,EACrCh7kC,KAAK0zlC,uBAAsB,GACvBxpjC,GAAQA,EAAKsojC,uBAAyBtojC,EAAKsojC,sBAAsBpvlC,OAAS,EAAG,CAC7E,GAAIpD,KAAKu1lC,eACDv1lC,KAAKipiC,UAAUsR,kBACfv6iC,KAAKw1lC,wBAAwBx1lC,KAAKu1lC,eAAgB,eAEtDv1lC,KAAKu1lC,eAAiB,UAErB,GAAIv1lC,KAAKipiC,UAAUsR,iBAAkB,CACtC,IAAK,IAAIpuiC,EAAI,EAAGA,EAAI+9B,EAAKsojC,sBAAsBpvlC,OAAQ+I,IACqB,IAApE+9B,EAAKsojC,sBAAsBjmkC,SAASpgB,EAAE2K,WAAY,KAAK47kC,WACvDxojC,EAAKsojC,sBAAsBh9jC,OAAOrpB,EAAG,GAG7CnM,KAAKw1lC,wBAAwBtrjC,EAAKsojC,sBAAuB,cAC7D,CACIxylC,KAAKipiC,UAAUwqD,kBAAoBzzlC,KAAKipiC,UAAUsR,kBAClDv6iC,KAAKipiC,UAAUsR,iBAAiBo2B,uBAEhC3wkC,KAAKipiC,UAAU0nC,qBAAqBvtkC,OAAS,IAC7CpD,KAAKipiC,UAAU+xC,qBAAsB,EACrCh7kC,KAAK0zlC,uBAAsB,GAEnC,CACJ,EAMArW,EAAc1skC,UAAU+ilC,sBAAwB,SAAUt0sB,GAClDA,IACAp/Y,KAAKipiC,UAAU+xC,qBAAsB,GAErCh7kC,KAAKipiC,UAAUtiiB,eAAiB3mgB,KAAKipiC,UAAUtiiB,cAAc8ulB,YAC7Dz1lC,KAAKipiC,UAAUtiiB,cAAcsuH,QAAQ5gH,YAAYr0gB,KAAKipiC,UAAUtiiB,cAAc8ulB,WAAW5/zB,cAAeupH,EAEhH,EACAi+rB,EAAc1skC,UAAU+klC,mBAAqB,SAAUvzR,GACnD,GAA8D,MAA1Dni0B,KAAK+1a,SAASxpZ,SAAS41yB,EAAWrrzB,WAAY,KAAKo3I,IAAa,CAEhE,IAAI656B,EAAkB/nkC,KAAKgnS,WAAW,YAAcm7hB,GAAY1tiB,wBAC5Du7zB,EAAehwlC,KAAKgnS,WAAW,YAAcm7hB,GAAYztyB,WAAWA,WACpEqziC,EAAgB756B,IAAM,EAClBluJ,KAAKg+4B,cAAiBh+4B,KAAKiuiC,gBAAgB/oyB,aAAe,EAAK6i0B,EAAgB756B,IAAM656B,EAAgBn/6B,OACrGon8B,EAAa7plC,MAAM+nJ,IAAQluJ,KAAKiuiC,gBAAgB/oyB,aAAe,EAAK6i0B,EAAgB756B,IAAOluJ,KAAKg+4B,cAAgB,KAG5Gh+4B,KAAKg+4B,cAAiB+pL,EAAgBpzyB,OAAS,EAAKozyB,EAAgB756B,IAAM656B,EAAgBn/6B,SAC1Fon8B,EAAa7plC,MAAM+nJ,IAAQ656B,EAAgBpzyB,OAAS,EAAKozyB,EAAgB756B,IAAOluJ,KAAKg+4B,cAAgB,MAK7GgyM,EAAa7plC,MAAM+nJ,IAAMluJ,KAAKiuiC,gBAAgB/oyB,aAAe,EAAI,KAEhE+hF,GAAQM,WAAavnV,KAAKipiC,UAAUqf,mBAAsByf,EAAgBvpjC,MAAQxe,KAAKiuiC,gBAAgBlpyB,YACxGir1B,EAAa7plC,MAAMw9H,KAAQ3jI,KAAKiuiC,gBAAgBlpyB,YAAc,EAAM/kQ,KAAKiuiC,gBAAgBhg5B,WAAc,KAElGjuJ,KAAKwqiC,gBAAkB,MAAQu9B,EAAgBvpjC,MAAQxe,KAAKiuiC,gBAAgBlpyB,YACjFir1B,EAAa7plC,MAAMw9H,KAAO3jI,KAAKiuiC,gBAAgBlpyB,YAAc,EAAI,KAGjEir1B,EAAa7plC,MAAMw9H,KAAOok8B,EAAgBvpjC,MAAQ,EAAI,IAE9D,CACJ,EAKA6+jC,EAAc1skC,UAAU4/jC,cAAgB,SAAUolB,GAC9C,OAAI31lC,KAAKinkC,iBAAmBl7vB,GAAkB/rU,KAAKinkC,eAAeC,cAC1DyuB,EACO31lC,KAAKinkC,eAAeC,aAAe,EAGnClnkC,KAAKinkC,eAAeC,aAI3ByuB,EACO31lC,KAAK6riC,kBAGL7riC,KAAK6riC,kBAAoB,CAG5C,EACAwxC,EAAc1skC,UAAUillC,mBAAqB,SAAUzzR,GAEnD,IAAI6tR,EAAe9+jC,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,YAAcgsyB,GACjF6tR,IACAnjrB,IAAc,CAAExka,OAAQ2nlC,IACxBhwlC,KAAKiwlC,oBAAoBD,GAEjC,EACA3S,EAAc1skC,UAAUiglC,qBAAuB,SAAUnpC,GACrD,IAAIuoC,EAAehwlC,KAAKgnS,WAAW,qBAC/BgpzB,IACIvoC,GACAuoC,EAAa7plC,MAAMi+J,QAAU,QAC7ButQ,IAAYq+qB,KAGZA,EAAa7plC,MAAMi+J,QAAU,OAC7BsuQ,IAAYs9qB,IAGxB,EACA3S,EAAc1skC,UAAUy9kC,yBAA2B,SAAUt4qB,EAAW2xoB,GACpE,IAAIuoC,EAAehwlC,KAAKgnS,WAAW,YAAc8uI,GAC7B,MAAhBk6qB,IACIvoC,EACA91oB,IAAYq+qB,GAGZt9qB,IAAYs9qB,GAEhBhwlC,KAAK01lC,mBAAmB5/qB,GAEhC,EAMAunqB,EAAc1skC,UAAUkllC,0BAA4B,SAAUpuC,GAC1D,IAAIquC,EAAoB91lC,KAAKgnS,WAAW,0BACf,MAArB8uzB,IACIruC,GACAznjC,KAAK+1lC,mBAAmB5vlC,MAAMi+J,QAAU,QACxCutQ,IAAYmkrB,KAGZ91lC,KAAK+1lC,mBAAmB5vlC,MAAMi+J,QAAU,OACxCsuQ,IAAYojrB,IAGxB,EACAzY,EAAc1skC,UAAUs/kC,oBAAsB,SAAU96kC,GACpD,IAAIkrb,EAAiBlrb,EAAQuf,WAAWA,WAAWA,WAC/C2ra,IACAA,EAAel6b,MAAMyiJ,OAAS,OAC9By3S,EAAel6b,MAAMqY,MAAQ,OAC7B6hb,EAAel6b,MAAMgjS,gBAAkB,iBAE/C,EAMAk0yB,EAAc1skC,UAAUy3kC,gBAAkB,SAAUjmR,GAChD,IAAI7i0B,EAAQU,KAEqB,MAA7BA,KAAK+1a,SAASosZ,KACdni0B,KAAKkulC,4BAA4B/rR,GACjCni0B,KAAKiuiC,gBAAgB9/4B,UAAYnuJ,KAAKgulC,WAAW7rR,IACG,IAAhDni0B,KAAKy9kC,kBAAkB9ykC,QAAQw3zB,IAC/Bni0B,KAAKq0lC,uBAAuBlyR,GAEhC/ryB,YAAW,WACP,IAAIy1gC,EAAoB1pO,EAAa,EACjC0pO,IAAsBvsiC,EAAMusiC,oBAC5BvsiC,EAAM2piC,UAAU4C,kBAAoBA,EACpCvsiC,EAAMusiC,kBAAoBA,EACtBvsiC,EAAM2piC,UAAUtiiB,eAChBrngB,EAAM2piC,UAAUtiiB,cAAc8zkB,kBAAkB5uC,GAG5D,GAAG,KAEX,EAKAwxC,EAAc1skC,UAAU65hC,cAAgB,WACpC,OAAIxqiC,KAAKipiC,UAAUwE,oBACRztiC,KAAKipiC,UAAUwE,oBAAoB1sJ,WAInC,CAEf,EAKAs8L,EAAc1skC,UAAUw7hC,eAAiB,WACrC,QAAInsiC,KAAKipiC,UAAUwE,qBACRztiC,KAAKipiC,UAAUwE,oBAAoB9B,aAMlD,EAKA0xC,EAAc1skC,UAAUq7hC,aAAe,WACnC,QAAIhsiC,KAAKipiC,UAAUwE,qBACRztiC,KAAKipiC,UAAUwE,oBAAoBuoD,WAMlD,EACA3Y,EAAc1skC,UAAUw9kC,iBAAmB,WACvC,QAAInulC,KAAKipiC,UAAUwE,qBACRztiC,KAAKipiC,UAAUwE,oBAAoBwoD,eAMlD,EACA5Y,EAAc1skC,UAAUq8kC,oBAAsB,WAC1C,QAAIhtlC,KAAKipiC,UAAUwE,qBACRztiC,KAAKipiC,UAAUwE,oBAAoByoD,iBAMlD,EACA7Y,EAAc1skC,UAAUwllC,eAAiB,WACrC,QAAIn2lC,KAAKipiC,UAAUwE,qBACRztiC,KAAKipiC,UAAUwE,oBAAoB2oD,aAMlD,EACA/Y,EAAc1skC,UAAU81kC,yBAA2B,WAC/C,QAAIzmlC,KAAKipiC,UAAUwE,qBACRztiC,KAAKipiC,UAAUwE,oBAAoB4oD,uBAMlD,EAKAhZ,EAAc1skC,UAAU26hC,cAAgB,WACpC,OAAOtriC,KAAKojjC,UAChB,EAKAi6B,EAAc1skC,UAAUmzd,SAAW,WAC3B9je,KAAKoxmB,UAAY,GACjBpxmB,KAAKs2lC,0BAEb,EAKAjZ,EAAc1skC,UAAU80d,WAAa,WACjC,IAAInme,EAAQU,KACZ,OAAIA,KAAKoxmB,UAAY,EACV,IAAIzgkB,SAAQ,SAAU2mB,EAASuwB,GAClCvoF,EAAMi3lC,oBAAoBt79B,MAAK,SAAUr5H,GACrC01D,EAAQ11D,EACZ,GACJ,IAEG,IACX,EACAy7kC,EAAc1skC,UAAU4llC,kBAAoB,WACxC,IACIvw5B,EADA1mM,EAAQU,KAEZgmM,EAAQhmM,KACR,IAAIg9H,EAAU,IAAIrsF,SAAQ,SAAU2mB,EAASuwB,GAEzC,IAAI60+B,EAAa123B,EAAMww5B,wBACvBl3lC,EAAMm3lC,wBAA0B,IAAI36B,IAAYx8jC,EAAM2piC,WACtD3piC,EAAMm3lC,wBAAwBxn+B,IAAM+2E,EAAMij2B,UAAUy6C,WAAa,IAAM194B,EAAMij2B,UAAUwoD,qBAAqB3tnB,SAC5Gxke,EAAMm3lC,wBAAwBvlR,aAAe,OAC7C5x0B,EAAMm3lC,wBAAwBtg3B,KAAKum1B,GAEnCp9jC,EAAMm3lC,wBAAwBlxwB,UAAY,SAAU16T,GAEhD,IAAIqf,EAAOrf,EAAOqf,KAClB,GAAIA,IACoB,kBAATA,IACPA,EAAOuG,KAAKuL,MAAM9R,IAEF,kBAATA,IAA+D,IAA1CA,EAAKv/B,QAAQ,0BACzCq7L,EAAMwr5B,eAAe,IAAKtnjC,EAAM87J,EAAMij2B,UAAUwoD,qBAAqB3tnB,UACrE55b,EAAO,MAEPA,GAAM,CACN87J,EAAMij2B,UAAU0oD,uBAAuB3r5B,EAAMij2B,UAAUwoD,qBAAqB3tnB,SAAU55b,GACtF,IAAI85b,EAAUh+R,EAAM0w5B,cAAcxsjC,EAAKvX,MAAM,WAAW,GAAI,mBAC5D2kC,EAAQ0sa,EACZ,CAER,EAEA1ke,EAAMm3lC,wBAAwBhxwB,UAAY,SAAU56T,GAChDm7K,EAAMij2B,UAAUqzB,sBAAsBzxiC,EAAO4rH,OAAQ5rH,EAAO+6T,WAAY5/I,EAAMij2B,UAAUwoD,qBAAqB3tnB,SACjH,EAEAxke,EAAMm3lC,wBAAwBx/8B,QAAU,SAAUpsH,GAC9Cm7K,EAAMus5B,wBACNvs5B,EAAMij2B,UAAUqzB,sBAAsBzxiC,EAAO4rH,OAAQ5rH,EAAO+6T,WAAY5/I,EAAMij2B,UAAUwoD,qBAAqB3tnB,SACjH,CACJ,IACA,OAAO9mW,CACX,EAMAqg9B,EAAc1skC,UAAU0jD,MAAQ,SAAUsiiC,GACtC,IAAI3w5B,EAAQhmM,KACRipiC,EAAYjj2B,EAAMij2B,UAClB/kY,EAAc+kY,EAAU/kY,YACxBwpY,EAAmBzE,EAAUyE,iBAC7BsmB,EAAqB/qB,EAAU+qB,mBAC/BJ,EAAsB3qB,EAAU2tD,cAChC3yC,EAAmBhb,EAAU9p6B,WAC7Bsu6B,EAAsBxE,EAAUwE,oBAChC9C,EAAsB1B,EAAU0B,oBAChC4P,EAAmBtR,EAAUsR,iBAC7BkD,EAAkBz32B,EAAMy32B,gBA+F5B,GA9FAz32B,EAAMk23B,qBAAsB,EAC5Bl23B,EAAMw34B,kBAAmB,EACzBx34B,EAAMw54B,iBAAkB,EACxBx54B,EAAM254B,gBAAiB,EACvB354B,EAAMy54B,mBAAqB,GAC3Bz54B,EAAMw64B,mBAAqB,KAC3Bv3C,EAAUzzP,qBAAuB,GACjCyzP,EAAUme,oBAAsB,GAChCne,EAAUynC,oBAAsB,GAChC1q4B,EAAM654B,+BAAgC,EACtC754B,EAAM264B,8BAAgC,KACtC364B,EAAMo84B,mBAAoB,EAC1Bp84B,EAAM464B,wBAA0B,GAChC564B,EAAM254B,gBAAiB,EACvB354B,EAAM454B,sBAAuB,EAC7B554B,EAAM6w5B,mBAAqB,GAC3B7w5B,EAAMk92B,iBAAkB,EACxBl92B,EAAMm92B,kBAAoB,CAAC,EAC3Bn92B,EAAM664B,iBAAmB,CAAC,EAC1B764B,EAAM+64B,oBAAsB,CAAC,EAC7B/64B,EAAMg74B,gBAAkB,KACxBh74B,EAAMm64B,aAAe,EACrBn64B,EAAMo64B,cAAgB,EACtBp64B,EAAMy74B,aAAe,GACrBz74B,EAAM074B,iBAAmB,GACzB174B,EAAM8/4B,qBAAsB,EAC5B78C,EAAU0nC,qBAAuB,GACjC3q4B,EAAMm23B,aAAe,GACrBn23B,EAAM284B,cAAe,EACrB384B,EAAMo94B,WAAa,GACnBp94B,EAAMug3B,8BAA6B,GACnCtd,EAAU/h5B,cAAc4v8B,WAAa,CAAC,EACtC9w5B,EAAMqp2B,aAAc,EAChBpG,EAAUyiC,qBACVziC,EAAUyiC,mBAAmBqrB,eAAiB,EAC1C/w5B,EAAMih4B,gBACNh+B,EAAUzxZ,eAAexxc,EAAMih4B,eAAeC,cAElDj+B,EAAU+tD,YAAc,IAE5Bhx5B,EAAMix5B,yBACNjx5B,EAAMkt5B,mBAAmBlt5B,EAAMgt5B,iBAAiB,GAChDht5B,EAAMgt5B,gBAAkB,KACnB/rwB,GAAQM,WAAY0htB,EAAUqf,mBAC3Bti3B,EAAMo/2B,eAAewQ,gBACrB5v3B,EAAMo/2B,eAAe/w/B,UAGxBy4Q,MAAcma,GAAQM,WAAa0htB,EAAUqf,oBAC9Cti3B,EAAMo/2B,eAAe/w/B,QAErBu//B,GACAA,EAAoBv//B,QAEpB2//B,GACAA,EAAmB3//B,QAEnBo5+B,IACAA,EAAoBuoD,aAAc,EAClCvoD,EAAoBkhD,sBAEpBhkD,GACAA,EAAoBg6C,qBAEpBj3C,GACAA,EAAiBwpD,kBAEjBjzC,IACAA,EAAiB5v/B,QACjB4v/B,EAAiBosC,wBAEjB91C,IACAA,EAAiB48C,mBAAqB,GACtC58C,EAAiB68C,yBAA2B,GAC5C78C,EAAiB88C,iBAAmB,GACpC98C,EAAiBp/gC,cAAgB,MAEjCsihC,IACAA,EAAgB5G,oBAAsB,GACtC4G,EAAgB3G,iBAAmB,GACnC2G,EAAgB1G,oBAAsB,IAEtC/w2B,EAAM+vO,WACN/vO,EAAM+vO,SAAW,IAEjB/vO,EAAMy34B,oBACNz34B,EAAMy34B,kBAAoB,IAE1Bz34B,EAAMi94B,8BACNj94B,EAAMi94B,4BAA8B,IAEpCj94B,EAAMk94B,sCACNl94B,EAAMk94B,oCAAsC,IAE5Cl94B,EAAMwz2B,cACN,KAAOxz2B,EAAMwz2B,cAAc3vgC,iBACvBm8J,EAAMwz2B,cAAcrkhC,YAAY6wK,EAAMwz2B,cAAcl45B,WAGxD0kD,EAAMora,UAAY,IAClBpra,EAAMsx5B,eAAetx5B,GAErBA,EAAM0j2B,UAAUN,eAAiB,IAAI14hC,MACrCs1L,EAAMqs5B,oBAAsBrs5B,EAAMqs5B,mBAAmBh+hC,QACrD2xI,EAAMux5B,2BAA6Bvx5B,EAAMux5B,0BAA0BljiC,QACnE2xI,EAAMwx5B,oBAAsBxx5B,EAAMwx5B,mBAAmBnjiC,QACrD2xI,EAAMyw5B,yBAA2Bzw5B,EAAMyw5B,wBAAwBpiiC,QAC/D2xI,EAAMyx5B,gCAAkCzx5B,EAAMyx5B,+BAA+BpjiC,QAC7E2xI,EAAM0x5B,gCAAkC1x5B,EAAM0x5B,+BAA+BrjiC,QAC7E2xI,EAAM2x5B,gCAAkC3x5B,EAAM2x5B,+BAA+BtjiC,QAC7E2xI,EAAM4x5B,gCAAkC5x5B,EAAM4x5B,+BAA+BvjiC,QACzE6vmB,GAAeA,EAAY2zb,qBAC3B3zb,EAAY2zb,oBAAoBxjiC,SAGxC2xI,EAAM8x5B,4BACF9x5B,EAAM+44B,mBACN/44B,EAAM+44B,iBAAmB,KAExB/44B,EAAMy9sB,mBAAiD,IAA5Bz9sB,EAAMy9sB,mBAA4Bz9sB,EAAMy9sB,oBAAsBwlJ,EAAU09C,YACpG19C,EAAU09C,UAAY3g5B,EAAMy9sB,mBAE5BkzM,GAAkB3w5B,EAAMora,UAAY,GACpC63b,EAAU8uD,mBAAmB/3lC,KAAKipiC,UAAU9qkB,UAEhDn+d,KAAKipiC,UAAU9qkB,SAAW,IAC9B,EAKAk/mB,EAAc1skC,UAAUymI,QAAU,WAQ9B,GAPI6vM,GAAQM,WAAavnV,KAAKipiC,UAAUqf,mBACpCtojC,KAAKipiC,UAAU9zhC,QAAQ+yQ,UAAU/0P,OAAO,oBAE5CnzB,KAAKwqc,eACLxqc,KAAKq0D,OAAM,GACXr0D,KAAKw5iC,cAAchlhC,YAAax0B,KAAKw5iC,cAAchlhC,WAAWW,YAAYn1B,KAAKw5iC,eAC/Ex5iC,KAAKiuiC,gBAAgBz5gC,YAAax0B,KAAKiuiC,gBAAgBz5gC,WAAWW,YAAYn1B,KAAKiuiC,iBAC/EjuiC,KAAKu8oB,kBAAmB,CACxB,IAAIyra,EAAqBhojC,KAAKu8oB,kBAAkByra,mBAChDA,GAAsBA,EAAmBh7tB,eAAiBg7tB,EAAmBh7tB,cAAc5pV,OAAS,GAAIpD,KAAKu8oB,kBAAkBnlgB,SACnI,CACIp3I,KAAKipiC,UAAUtiiB,eACf3mgB,KAAKoljC,eAAehu6B,UAExB,IAAI+m7B,EAAiBjtiC,SAASg8T,eAAe,kBACzCixuB,IACAA,OAAiB96jC,EAEzB,EAOAg6kC,EAAc1skC,UAAU2mlC,eAAiB,SAAUtx5B,GAC/C,IAAIo92B,EAAa,GAEbA,EADAn8tB,GAAQh0D,MAA8B,SAAtBg0D,GAAQ1qT,KAAK73B,KAChBmrC,UAAU7e,OAAOor0B,eAAe3woB,QAAQ,WAGxCzlB,EAAMy94B,OAASz94B,EAAMy94B,OAASzyjC,OAAOor0B,eAAe3woB,QAAQ,UAE7E,IAAI+33B,EAAoBxyjC,OAAOor0B,eAAe3woB,QAAQ,qBACtD,GAAmB,OAAf231B,EAAqB,CAErB,IAAIsZ,EAAa,CAAE+mB,OAAQrgC,EAAYogC,kBAAmBA,EAAmBtugC,OAAQ,SAAUirX,UAAWn6P,EAAMij2B,UAAU9zhC,QAAQghB,IAC9HsyK,EAAaz3K,OAAOor0B,eAAe3woB,QAAQ,UAC/C,GAAIz6L,OAAOor0B,eAAe3woB,QAAQ,eAAiE,cAAhDz6L,OAAOor0B,eAAe3woB,QAAQ,cAC7E,IAGI,GAD+B,cAAe,IAAI2tnB,QAAQ,IAC5B,CAE1B,IAAIhG,EAAcpz0B,KAAK2jlC,0BACnBC,EAAkB5jlC,KAAKipiC,UAAUszB,oBAAoBr6kB,gBAAkB,UAAY,OACvF55b,MAAMt3B,OAAOor0B,eAAe3woB,QAAQ,cAAgB,IAAMhjB,EAAY,CAClExuK,OAAQ,OACRsgzB,YAAaqpQ,EACbzu2B,QAASi+lB,EACT3/zB,KAAMg9B,KAAK+mF,UAAUkl8B,IAE7B,CACJ,CACA,MAAOzljC,IACHjX,KAAKg4lC,qBAAuB,IAAIl8B,IAAY97jC,KAAKipiC,WACjDjpiC,KAAKg4lC,qBAAqB7h3B,KAAKum1B,EACnC,MAEK5vvB,MACL9sU,KAAK6jlC,WAAWp74B,EAAYi03B,EAAY123B,EAEhD,CAQA,GAPIhmM,KAAKipiC,UAAUwE,sBACfztiC,KAAKipiC,UAAUwE,oBAAoB1sJ,WAAa,GAEpD/g5B,KAAK0wkC,oBAAsB,GAC3B1wkC,KAAK2hlC,iBAAmB,GACxB3wjC,OAAOor0B,eAAerwoB,WAAW,UACjC/6L,OAAOor0B,eAAerwoB,WAAW,qBAC7B/rN,KAAKojjC,WAAY,CACjBpyhC,OAAOor0B,eAAerwoB,WAAW/rN,KAAKojjC,WAAa,eACnDpyhC,OAAOor0B,eAAerwoB,WAAW/rN,KAAKojjC,WAAa,iBACnDpyhC,OAAOor0B,eAAerwoB,WAAW/rN,KAAKojjC,WAAa,sBACnDpyhC,OAAOor0B,eAAerwoB,WAAW/rN,KAAKojjC,WAAa,8BACnDpyhC,OAAOor0B,eAAerwoB,WAAW/rN,KAAKojjC,WAAa,sBACnDpyhC,OAAOor0B,eAAerwoB,WAAW/rN,KAAKojjC,WAAa,uBACnDpyhC,OAAOor0B,eAAerwoB,WAAW/rN,KAAKojjC,WAAa,2BACnDpyhC,OAAOor0B,eAAerwoB,WAAW/rN,KAAKojjC,WAAa,yBACnDpyhC,OAAOor0B,eAAerwoB,WAAW/rN,KAAKojjC,WAAa,eACnDpyhC,OAAOor0B,eAAerwoB,WAAW/rN,KAAKojjC,WAAa,qBACnDpyhC,OAAOor0B,eAAerwoB,WAAW/rN,KAAKojjC,WAAa,oBACnDpyhC,OAAOor0B,eAAerwoB,WAAW/rN,KAAKojjC,WAAa,aACnD,IAAK,IAAIj3iC,EAAI,EAAGA,EAAInM,KAAKo81B,eAAeh51B,OAAQ+I,IAC5C6kB,OAAOor0B,eAAerwoB,WAAW/rN,KAAKo81B,eAAe7v0B,SAASpgB,EAAE2K,WAAY,KAEpF,CACJ,EACAumkC,EAAc1skC,UAAUkzkC,WAAa,SAAUp74B,EAAYi03B,EAAY123B,GACnEhmM,KAAKg4lC,qBAAuB,IAAIl8B,IAAY97jC,KAAKipiC,WACjDjpiC,KAAKg4lC,qBAAqB/o+B,IAAMj+F,OAAOor0B,eAAe3woB,QAAQ,cAAgB,IAAMhjB,EACpFzoM,KAAKg4lC,qBAAqBzniC,MAAO,EACjCvwD,KAAKg4lC,qBAAqB9mR,aAAe,KACzClx0B,KAAKg4lC,qBAAqB7h3B,KAAKum1B,GAE/B18jC,KAAKg4lC,qBAAqBzywB,UAAY,SAAU16T,GAE5C,IAAIqf,EAAOrf,EAAOqf,KACdA,IACoB,kBAATA,IAC2B,IAA9BA,EAAKv/B,QAAQ,cACbq7L,EAAMwr5B,eAAe,IAAKtnjC,EAAMu+J,GAChCv+J,EAAO,MAGXA,GACA87J,EAAMij2B,UAAU0oD,uBAAuB3r5B,EAAMij2B,UAAUwoD,qBAAqB96J,OAAQzs5B,GAGhG,EAEAlqC,KAAKg4lC,qBAAqBvywB,UAAY,SAAU56T,GAC5Cm7K,EAAMij2B,UAAUqzB,sBAAsBzxiC,EAAO4rH,OAAQ5rH,EAAO+6T,WAAYn9I,EAC5E,EAEAzoM,KAAKg4lC,qBAAqB/g9B,QAAU,SAAUpsH,GAC1Cm7K,EAAMij2B,UAAUqzB,sBAAsBzxiC,EAAO4rH,OAAQ5rH,EAAO+6T,WAAYn9I,EAC5E,CACJ,EAEA404B,EAAc1skC,UAAUgzkC,wBAA0B,WAE9C,IAAIsU,EAAY,IAAIxi3B,QACpBwi3B,EAAUjl+B,OAAO,eAAgB,kCACjC,IAAK,IAAI7mH,EAAI,EAAGA,EAAInM,KAAKipiC,UAAUszB,oBAAoBM,YAAYz5jC,OAAQ+I,IAEvE8rlC,EAAUjl+B,OAAOhzH,KAAKipiC,UAAUszB,oBAAoBM,YAAYtwiC,SAASpgB,EAAE2K,WAAY,KAAK0/N,WAAYx2O,KAAKipiC,UAAUszB,oBAAoBM,YAAYtwiC,SAASpgB,EAAE2K,WAAY,KAAKs8zB,aAEvL,OAAO6kR,CACX,EACA5a,EAAc1skC,UAAUmnlC,0BAA4B,WAChD9mkC,OAAOor0B,eAAerwoB,WAAW,mBACjC/6L,OAAOor0B,eAAerwoB,WAAW,cACjC/6L,OAAOor0B,eAAerwoB,WAAW,UACjC,IAAK,IAAI5/M,EAAI,EAAGA,EAAInM,KAAKo81B,eAAeh51B,OAAQ+I,IAC5C6kB,OAAOor0B,eAAerwoB,WAAW/rN,KAAKo81B,eAAe7v0B,SAASpgB,EAAE2K,WAAY,KAEpF,EACAumkC,EAAc1skC,UAAUo0kC,mBAAqB,WAGzC,IADA,IAAImT,EAAoBhnkC,SAAS1gB,iBAAiB,6BACzCrE,EAAI,EAAGA,EAAI+rlC,EAAkB90lC,OAAQ+I,IAC1C+rlC,EAAkB3rkC,SAASpgB,EAAE2K,WAAY,KAAK3Q,MAAMohQ,WAAa,SAIrE,IADA,IAAI4w1B,EAAiBjnkC,SAAS1gB,iBAAiB,0BACtCR,EAAI,EAAGA,EAAImolC,EAAe/0lC,OAAQ4M,IACvCmolC,EAAe5rkC,SAASvc,EAAE8G,WAAY,KAAK3Q,MAAMi+J,QAAU,OAG/D,IAAIg07B,EAAmBlnkC,SAAS1gB,iBAAiB,yBACjD,IAASR,EAAI,EAAGA,EAAIoolC,EAAiBh1lC,OAAQ4M,IACzCoolC,EAAiB7rkC,SAASvc,EAAE8G,WAAY,KAAKoxQ,UAAU/0P,OAAO,wBAGlE,IAAIo+hB,EAAkBrgiB,SAAS1gB,iBAAiB,sBAChD,IAASR,EAAI,EAAGA,EAAIuhjB,EAAgBnujB,OAAQ4M,IACxCuhjB,EAAgBhliB,SAASvc,EAAE8G,WAAY,KAAK3Q,MAAMi+J,QAAU,OAIhE,IADA,IAAIi07B,EAAgBnnkC,SAAS1gB,iBAAiB,yBACrCkR,EAAI,EAAGA,EAAI22kC,EAAcj1lC,OAAQse,IACtC22kC,EAAc9rkC,SAAS7K,EAAE5K,WAAY,KAAKoxQ,UAAU/0P,OAAO,wBAG/D,IAAIoyjC,EAAcr0jC,SAAS1gB,iBAAiB,sBAC5C,IAASR,EAAI,EAAGA,EAAIu1kC,EAAYnilC,OAAQ4M,IACpCu1kC,EAAYh5jC,SAASvc,EAAE8G,WAAY,KAAK3Q,MAAMyvgB,UAAY,MAElE,EAMAynkB,EAAc1skC,UAAU8qjC,qBAAuB,SAAUlkK,GACrD,IAAIv8gB,EAAUhqX,OAAOgqX,QACjBD,EAAU/pX,OAAO+pX,QAEjBvmX,EAAax0B,KAAKyyR,gBAAgBzyR,KAAKiuiC,iBACvCqqD,EAAc,EACdC,EAAc,EACC,OAAf/jkC,IACA8jkC,EAAc9jkC,EAAWy5H,WACzBsq8B,EAAc/jkC,EAAW25H,WAE7BnuJ,KAAKiuiC,gBAAgB7jiC,QACjBpK,KAAK6riC,kBAAoB,GACzB7riC,KAAKiuiC,gBAAgBj5gC,aAAa,kBAAmBh1B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,aAAen2B,KAAK6riC,kBAAoB,IAEzH7riC,KAAKipiC,UAAU9p6B,YAAcn/H,KAAKipiC,UAAU9p6B,WAAWg27B,4BAA4B0vB,oBACnF7klC,KAAK+klC,uBAGqC,IAAzC7sjC,UAAUggN,UAAUvtO,QAAQ,SAAkButB,UAAU46L,WAAWnoN,QAAQ,aAAe,IAA8C,IAAzCutB,UAAUggN,UAAUvtO,QAAQ,UAAkC,OAAf6pB,GAC/IA,EAAWy5H,WAAaqq8B,EACxB9jkC,EAAW25H,UAAYoq8B,GAEH,OAAf/jkC,GACLA,EAAWq9nB,SAASymc,EAAaC,GAErCvnkC,OAAO6goB,SAAS72Q,EAASD,EAC7B,EAEAsisB,EAAc1skC,UAAU8hR,gBAAkB,SAAUviR,GAChD,GAAa,OAATA,GAAmC,SAAlBA,EAAKihB,SACtB,OAAO,KAEX,IAAIhrB,EAAQqsR,iBAAiBtiR,GAC7B,OAAIlQ,KAAKiuiC,gBAAgB93gC,KAAOjmB,EAAKimB,IAA2B,WAApBhwB,EAAMysR,WAA8C,SAApBzsR,EAAMysR,UAIvE5yR,KAAKyyR,gBAAgBviR,EAAKskB,YAH1BtkB,CAKf,EACAmtkC,EAAc1skC,UAAUuklC,qBAAuB,WAC3C,IAAI51lC,EAAQU,KAERolZ,EAAetkZ,GAAc,MAAO,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,mBAAoBp1B,UAAW,yBACzGf,KAAKw5iC,cAAc9nhC,YAAY0zX,GAC/BplZ,KAAKm1lC,aAAe,IAAIpl0B,IAAO,CAC3BmwP,eAAe,EAAM7C,eAAe,EAAMd,SAAS,EAEnD7tV,OAAQ,6CAA+C1uL,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,kBAAoB,SAAUl2D,SAAS,EAEnIzpJ,QAAS,CAAC,CAAEq3X,YAAa,CAAE1ogB,QAAS/U,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,MAAO58M,WAAW,GAAQ65H,MAAOhjR,KAAKw4lC,kBAAkB34lC,KAAKG,QACtIqI,OAAQrI,KAAKipiC,UAAU9zhC,QAAS0xH,YAAa,WACzCvnI,EAAM61lC,aAAa/98B,UACnB93I,EAAM0nS,WAAW,oBAAoB7zQ,SACrC7zB,EAAM61lC,aAAe,KACrB,IAAInF,EAAe1wlC,EAAM0nS,WAAW,qBAChB,MAAhBgpzB,GACAt9qB,IAAYs9qB,EAEpB,IAEAhwlC,KAAKipiC,UAAU5wsB,WAEfr4V,KAAKm1lC,aAAapglC,QAAU,wHAA0H/U,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,0BAA4B,eACvN/lW,KAAKm1lC,aAAa98vB,WAAY,GAI9Br4V,KAAKm1lC,aAAapglC,QAAU,6GAA+G/U,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,0BAA4B,eAEhN/lW,KAAKm1lC,aAAaz8vB,SAAS0sD,EAC/B,EAKAi4rB,EAAc1skC,UAAU8nlC,qBAAuB,WAC3C,IAAIzI,EAAehwlC,KAAKgnS,WAAW,qBACd,OAAjBgpzB,GACAt9qB,IAAYs9qB,EAEpB,EACA3S,EAAc1skC,UAAU6nlC,kBAAoB,WACxCx4lC,KAAKm1lC,aAAa53zB,OAClB,IAAIyyzB,EAAehwlC,KAAKgnS,WAAW,qBACd,OAAjBgpzB,GACAt9qB,IAAYs9qB,EAEpB,EACA3S,EAAc1skC,UAAUm/kC,iBAAmB,WACvC,IAAI36kC,EAAU+b,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,IAC7Dn2B,KAAK+1lC,mBAAqBj1lC,GAAc,MAAO,CAC3Cq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,kBAChCp1B,UAAW,+BAEfoU,EAAQuc,YAAY1xB,KAAK+1lC,oBACzB/1lC,KAAK+1lC,mBAAmB5vlC,MAAMi+J,QAAU,OACxC,IAAI0x7B,EAAoBh1lC,GAAc,MAAO,CACzCq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,yBAChCp1B,UAAW,iCAEff,KAAK+1lC,mBAAmBrkkC,YAAYokkC,GACpCjprB,IAAc,CAAExka,OAAQytlC,EAAmBlmvB,SAAU,kBACrD5vW,KAAKiwlC,oBAAoB6F,EAC7B,EACAzY,EAAc1skC,UAAUo/kC,oBAAsB,WAC1C,IAAIzwlC,EAAQU,KAERolZ,EAAetkZ,GAAc,MAAO,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,kBAAmBp1B,UAAW,wBACxGf,KAAK04lC,gBAAkB53lC,GAAc,OAAQ,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,YAC/En2B,KAAK04lC,gBAAgB9ujC,YAAc5pC,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,oBACxEq/C,EAAa1zX,YAAY1xB,KAAK04lC,iBAC9B,IAAIr5sB,EAAiBv+Y,GAAc,OAAQ,CAAEC,UAAW,qBAExDf,KAAK24lC,cAAgB73lC,GAAc,QAAS,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,cAAep1B,UAAW,YACxGf,KAAK24lC,cAAc/rlC,KAAO,OAC1B5M,KAAK24lC,cAAcxylC,MAAM2wH,SAAW,MACpC92H,KAAK44lC,gBAAkB93lC,GAAc,OAAQ,CAAEC,UAAW,yBAC1Ds+Y,EAAe3tX,YAAY1xB,KAAK24lC,eAChCt5sB,EAAe3tX,YAAY1xB,KAAK44lC,iBAChCxzsB,EAAa1zX,YAAY2tX,GACzBr/Y,KAAKw5iC,cAAc9nhC,YAAY0zX,GAC/BplZ,KAAKkylC,cAAgB,IAAIni0B,IAAO,CAC5BmwP,eAAe,EAAM7C,eAAe,EAAOd,SAAS,EACpD7tV,OAAQ1uL,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,YAAal2D,SAAS,EAAOzpJ,QAAS,CAC/E,CACIq3X,YAAa,CAAE1ogB,QAAS/U,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,WAC7D/iF,MAAOhjR,KAAK64lC,oBAAoBh5lC,KAAKG,OAGzC,CACIy9gB,YAAa,CAAE1ogB,QAAS/U,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,SAAUn3V,UAAU,EAAMghW,SAAU,0BAA2BzmN,WAAW,GACvI65H,MAAOhjR,KAAK84lC,mBAAmBj5lC,KAAKG,QAEzCw7I,MAAOx7I,KAAK+4lC,mBAAmBl5lC,KAAKG,QAEvCA,KAAKipiC,UAAU5wsB,YACfr4V,KAAKkylC,cAAc75vB,WAAY,GAEnCr4V,KAAKkylC,cAAcx5vB,SAAS0sD,GACvBt4E,OACqB,IAAI6nJ,IAAe,CAAEtvc,OAAQ,KAAM+wc,gBAAgB,IACzD19H,SAAS14V,KAAK24lC,eAElC34lC,KAAK24lC,cAAcr9jC,iBAAiB,SAAS,WAEzC,IAAI+nR,EAAa/jT,EAAMq5lC,cAAc/2lC,MAClB,KAAfyhT,GAAqB3yQ,WAAW2yQ,GAAc,GAAM/jT,EAAM2piC,UAAU73b,UAAY,EAAK1gkB,WAAW2yQ,GAChG/jT,EAAM05lC,oBAGN15lC,EAAM25lC,oBAEd,GACJ,EACA5b,EAAc1skC,UAAUoolC,mBAAqB,WACzC/4lC,KAAK24lC,cAAc/2lC,MAAQ,GAC3B5B,KAAKi5lC,oBACT,EACA5b,EAAc1skC,UAAUqolC,kBAAoB,WAEpB9nkC,SAAS4hU,uBAAuB,2BAA2B,GACjE/9T,gBAAgB,WAClC,EACAsojC,EAAc1skC,UAAUsolC,mBAAqB,WAErB/nkC,SAAS4hU,uBAAuB,2BAA2B,GACjE99T,aAAa,YAAY,EAC3C,EACAqojC,EAAc1skC,UAAUkolC,oBAAsB,WAC1C74lC,KAAKkylC,cAAc30zB,MACvB,EACA8/yB,EAAc1skC,UAAUmolC,mBAAqB,WACzC94lC,KAAKkylC,cAAc30zB,OAEnB,IAAI4kiB,EAAani0B,KAAK24lC,cAAc/2lC,MACpC5B,KAAKipiC,UAAUz2M,WAAWzmL,SAASo2J,GACnCni0B,KAAKwklC,8BACT,EAKAnH,EAAc1skC,UAAU6zkC,6BAA+B,WACnD,GAAKv9vB,GAAQM,WAAavnV,KAAKipiC,UAAUqf,mBAAsBtojC,KAAKo5jC,wBAAyB,CAEzF,IAAIx4J,GAAS5g6B,KAAKiuiC,gBAAgB/vvB,aAAel+S,KAAKiuiC,gBAAgB/oyB,eAAiBllQ,KAAKiuiC,gBAAgB/oyB,aAAe,IAEvHg01B,EAAmBl5lC,KAAKiuiC,gBAAgB9/4B,UAAayywB,EAErD5iB,EAAgBh+4B,KAAKipiC,UAAUtiiB,cAAgB3mgB,KAAKg+4B,cAAgB,EACxEh+4B,KAAKo5jC,wBAAwBjzjC,MAAM+nJ,IAAO8vvB,EAAgBk7M,EAAmB,IACjF,CACJ,EACA7b,EAAc1skC,UAAUsklC,oBAAsB,WAC1C,IAAI31lC,EAAQU,KAERolZ,EAAetkZ,GAAc,MAAO,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,kBAAmBp1B,UAAW,sBAAuB0oV,MAAO,CAAE,SAAY,QACpJzpV,KAAKg1lC,cAAgBl0lC,GAAc,OAAQ,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,UAAWszT,MAAO,CAAE,SAAY,QAC7GzpV,KAAKg1lC,cAAcprjC,YAAc5pC,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,kBACtEq/C,EAAa1zX,YAAY1xB,KAAKg1lC,eAC9B,IAAI31sB,EAAiBv+Y,GAAc,OAAQ,CAAEC,UAAW,sCAExDf,KAAKm5lC,cAAgBr4lC,GAAc,QAAS,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,kBAAmBp1B,UAAW,YAC5Gf,KAAKm5lC,cAAcvslC,KAAO,WAC1B5M,KAAKm5lC,cAAcz0lC,KAAO,WAC1B26Y,EAAe3tX,YAAY1xB,KAAKm5lC,eAChC/zsB,EAAa1zX,YAAY2tX,GACzBr/Y,KAAKw5iC,cAAc9nhC,YAAY0zX,GAC/BplZ,KAAK4zlC,cAAgB,IAAI7j0B,IAAO,CAC5BmwP,eAAe,EAAM7C,eAAe,EAAOd,SAAS,EACpD7tV,OAAQ1uL,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,sBAAuBl2D,SAAS,EAC7Er0J,MAAOx7I,KAAKo5lC,eAAev5lC,KAAKG,MAAOqI,OAAQrI,KAAKipiC,UAAU9zhC,QAAS0xH,YAAa,WAChFvnI,EAAMs0lC,cAAcx88B,UACpB93I,EAAM0nS,WAAW,mBAAmB7zQ,SACpC7zB,EAAMs0lC,cAAgB,KACtB,IAAI5D,EAAe1wlC,EAAM0nS,WAAW,qBAChB,MAAhBgpzB,GACAt9qB,IAAYs9qB,EAEpB,KAEC/owB,GAAQM,UAAYvnV,KAAKipiC,UAAUqf,kBACpCtojC,KAAK4zlC,cAAcxt8B,QAAU,CACzB,CACIq3X,YAAa,CAAE1ogB,QAAS/U,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,MAAO58M,WAAW,GAC/E65H,MAAOhjR,KAAKq5lC,cAAcx5lC,KAAKG,OAEnC,CAAEy9gB,YAAa,CAAE1ogB,QAAS/U,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,WAAa/iF,MAAOhjR,KAAKs5lC,oBAAoBz5lC,KAAKG,QAIrHA,KAAK4zlC,cAAcxt8B,QAAU,CACzB,CAAEq3X,YAAa,CAAE1ogB,QAAS/U,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,WAAa/iF,MAAOhjR,KAAKs5lC,oBAAoBz5lC,KAAKG,OACjH,CACIy9gB,YAAa,CAAE1ogB,QAAS/U,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,MAAO58M,WAAW,GAC/E65H,MAAOhjR,KAAKq5lC,cAAcx5lC,KAAKG,QAIvCA,KAAKipiC,UAAU5wsB,YACfr4V,KAAK4zlC,cAAcv7vB,WAAY,GAEnCr4V,KAAK4zlC,cAAcl7vB,SAAS0sD,GAC5BplZ,KAAKm5lC,cAAc79jC,iBAAiB,SAAS,WACP,KAA9Bh8B,EAAM65lC,cAAcv3lC,OACpBtC,EAAMq0lC,qBAEd,IACA3zlC,KAAKm5lC,cAAc79jC,iBAAiB,SAAS,WACzCh8B,EAAM65lC,cAActj0B,cAAc3N,UAAU90P,IAAI,gBACpD,IACApzB,KAAKm5lC,cAAc79jC,iBAAiB,QAAQ,WACxCh8B,EAAM65lC,cAActj0B,cAAc3N,UAAU/0P,OAAO,gBACvD,GACJ,EAEAkqjC,EAAc1skC,UAAUyolC,eAAiB,SAAUnglC,GAC3CA,EAAK0/c,gBACL34d,KAAKq0D,OAAM,GACXr0D,KAAK2zlC,sBACL3zlC,KAAKm5lC,cAAcv3lC,MAAQ,IAE/B,IAAIoulC,EAAehwlC,KAAKgnS,WAAW,qBACd,OAAjBgpzB,GACAt9qB,IAAYs9qB,EAEpB,EACA3S,EAAc1skC,UAAU2olC,oBAAsB,WAC1Ct5lC,KAAKq0D,OAAM,GACXr0D,KAAK2zlC,sBACL3zlC,KAAK4zlC,cAAcr2zB,OACnB,IAAIyyzB,EAAehwlC,KAAKgnS,WAAW,qBACd,OAAjBgpzB,GACAt9qB,IAAYs9qB,EAEpB,EACA3S,EAAc1skC,UAAUgjlC,oBAAsB,WACrC7mxB,MACG9sU,KAAKg1lC,gBACLh1lC,KAAKg1lC,cAAc9s0B,UAAU/0P,OAAO,uBACpCnzB,KAAKg1lC,cAAcprjC,YAAc5pC,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,kBACtE/lW,KAAKm5lC,cAAcv3lC,MAAQ,GAGvC,EAKAy7kC,EAAc1skC,UAAU0olC,cAAgB,WACpC,IAAKvsxB,KAAY,CACb,IAAIhiL,EAAW9qJ,KAAKm5lC,cAAcv3lC,OAC7BmqU,GAAkBjhL,IAAaA,EAAS1nJ,OAAS,GAClDpD,KAAKipiC,UAAUx48B,KAAKzwF,KAAKkxB,SAAU45H,EAE3C,CACA9qJ,KAAKy7jC,sBACT,EACA4hB,EAAc1skC,UAAUu/kC,uBAAyB,YACzCjpwB,GAAQM,UAAavnV,KAAKipiC,UAAUqf,oBAEhCtojC,KAAKipiC,UAAUiyC,yBAA2Bl7kC,KAAKipiC,UAAUtiiB,eAAiB3mgB,KAAKipiC,UAAUtiiB,cAAcwxjB,yBACvGn4jC,KAAKipiC,UAAUtiiB,cAAcwxjB,wBAAwBohC,2BAErDv5lC,KAAKy9iC,iBACLz9iC,KAAKy9iC,gBAAgBqC,6BAGjC,EACAu9B,EAAc1skC,UAAUozV,WAAa,WACjC,IAAIzkW,EAAQU,KACZA,KAAKiuiC,gBAAgB3ygC,iBAAiB,SAAUt7B,KAAKwtlC,yBAAyB,GAC1EvmwB,GAAQM,WAAavnV,KAAKipiC,UAAUqf,mBACpCtojC,KAAKiuiC,gBAAgB3ygC,iBAAiB,YAAat7B,KAAKwtlC,yBAAyB,GAErFxtlC,KAAKiuiC,gBAAgB3ygC,iBAAiB,YAAat7B,KAAKyklC,4BACxDzklC,KAAKiuiC,gBAAgB3ygC,iBAAiB,UAAWt7B,KAAKgllC,0BACtDhllC,KAAKiuiC,gBAAgB3ygC,iBAAiB,QAASt7B,KAAKgmlC,gBAAgB,GACpEhmlC,KAAKiuiC,gBAAgB3ygC,iBAAiB,QAASt7B,KAAKwmlC,6BAChDxmlC,KAAKsjlC,cACLtyjC,OAAOsK,iBAAiB,gBAAgB,SAAUj7B,GAAK,OAAOA,EAAEgO,gBAAkB,IAClF2iB,OAAOsK,iBAAiB,iBAAiB,SAAUj7B,GAAK,OAAOA,EAAEgO,gBAAkB,IACnF2iB,OAAOsK,iBAAiB,cAAc,SAAUj7B,GAAK,OAAOA,EAAEgO,gBAAkB,IAChFrO,KAAKiuiC,gBAAgB3ygC,iBAAiB,eAAgBt7B,KAAKimlC,uBAAuB,GAClFjmlC,KAAKiuiC,gBAAgB3ygC,iBAAiB,gBAAiBt7B,KAAKmmlC,wBAAwB,GACpFnmlC,KAAKiuiC,gBAAgB3ygC,iBAAiB,aAAct7B,KAAKumlC,qBAAqB,IAElFvmlC,KAAKiuiC,gBAAgB3ygC,iBAAiB,YAAat7B,KAAK6olC,4BACxD7olC,KAAKiuiC,gBAAgB3ygC,iBAAiB,aAAct7B,KAAK4plC,6BACzD5plC,KAAKiuiC,gBAAgB3ygC,iBAAiB,aAAct7B,KAAK8plC,6BACzD9plC,KAAKiuiC,gBAAgB3ygC,iBAAiB,YAAat7B,KAAK+plC,4BACxD/plC,KAAKiuiC,gBAAgB3ygC,iBAAiB,QAASt7B,KAAKgqlC,wBACpDhqlC,KAAKiuiC,gBAAgB3ygC,iBAAiB,WAAYt7B,KAAKgqlC,wBACvDhqlC,KAAKiuiC,gBAAgB3ygC,iBAAiB,YAAat7B,KAAKqrlC,4BACxDrrlC,KAAKipiC,UAAU9zhC,QAAQmmB,iBAAiB,UAAWt7B,KAAKkolC,0BACxDl3jC,OAAOsK,iBAAiB,UAAWt7B,KAAK+mlC,iBACxC/1jC,OAAOsK,iBAAiB,UAAWt7B,KAAKurlC,iBACxCv6jC,OAAOsK,iBAAiB,WAAYt7B,KAAK+rlC,kBACzC/rlC,KAAK227B,OAAS,WAAc,OAAOr37B,EAAMg4lC,eAAeh4lC,EAAQ,EAChE0xB,OAAOsK,iBAAiB,SAAUt7B,KAAK227B,QACvC3l6B,OAAOsK,iBAAiB,eAAgBt7B,KAAKujlC,qBAC7CvyjC,OAAOsK,iBAAiB,SAAUt7B,KAAK45jC,iBAEM,IAAzC1hiC,UAAUggN,UAAUvtO,QAAQ,UAA2D,IAAzCutB,UAAUggN,UAAUvtO,QAAQ,UAA8D,IAA5CutB,UAAUggN,UAAUvtO,QAAQ,YACxH3K,KAAKiuiC,gBAAgB3ygC,iBAAiB,cAAet7B,KAAK4slC,8BAC1D5slC,KAAKiuiC,gBAAgB3ygC,iBAAiB,cAAet7B,KAAKktlC,8BAC1DltlC,KAAKiuiC,gBAAgB3ygC,iBAAiB,YAAat7B,KAAKutlC,6BACxDvtlC,KAAKiuiC,gBAAgB3ygC,iBAAiB,eAAgBt7B,KAAKutlC,+BAG3DvtlC,KAAKiuiC,gBAAgB3ygC,iBAAiB,aAAct7B,KAAKgslC,6BACrDhslC,KAAKsglC,gBAAkBtglC,KAAKqjlC,aAE5BrjlC,KAAKiuiC,gBAAgB3ygC,iBAAiB,aAAa,SAAUj7B,GAAqB,IAAZA,EAAEk9d,OACpEl9d,EAAEgO,gBACJ,GAAG,CAAEutB,SAAS,IAEpB57B,KAAKiuiC,gBAAgB3ygC,iBAAiB,YAAat7B,KAAK6slC,4BACxD7slC,KAAKiuiC,gBAAgB3ygC,iBAAiB,WAAYt7B,KAAKmtlC,2BACvDntlC,KAAKiuiC,gBAAgB3ygC,iBAAiB,aAAct7B,KAAKmtlC,2BACzDntlC,KAAKiuiC,gBAAgB3ygC,iBAAiB,cAAet7B,KAAKmtlC,2BAElE,EACA9P,EAAc1skC,UAAU65b,aAAe,WACnCxqc,KAAKiuiC,gBAAgB7ygC,oBAAoB,SAAUp7B,KAAKwtlC,yBAAyB,GAC7EvmwB,GAAQM,WAAavnV,KAAKipiC,UAAUqf,mBACpCtojC,KAAKiuiC,gBAAgB7ygC,oBAAoB,YAAap7B,KAAKwtlC,yBAAyB,GAExFxtlC,KAAKiuiC,gBAAgB7ygC,oBAAoB,YAAap7B,KAAKyklC,4BAC3DzklC,KAAKiuiC,gBAAgB7ygC,oBAAoB,UAAWp7B,KAAKgllC,0BACzDhllC,KAAKiuiC,gBAAgB7ygC,oBAAoB,QAASp7B,KAAKgmlC,gBAAgB,GACvEhmlC,KAAKiuiC,gBAAgB7ygC,oBAAoB,QAASp7B,KAAKwmlC,6BACnDxmlC,KAAKsjlC,cACLtyjC,OAAOoK,oBAAoB,gBAAgB,SAAU/6B,GAAK,OAAOA,EAAEgO,gBAAkB,IACrF2iB,OAAOoK,oBAAoB,iBAAiB,SAAU/6B,GAAK,OAAOA,EAAEgO,gBAAkB,IACtF2iB,OAAOoK,oBAAoB,cAAc,SAAU/6B,GAAK,OAAOA,EAAEgO,gBAAkB,IACnFrO,KAAKiuiC,gBAAgB7ygC,oBAAoB,eAAgBp7B,KAAKimlC,uBAAuB,GACrFjmlC,KAAKiuiC,gBAAgB7ygC,oBAAoB,gBAAiBp7B,KAAKmmlC,wBAAwB,GACvFnmlC,KAAKiuiC,gBAAgB7ygC,oBAAoB,aAAcp7B,KAAKumlC,qBAAqB,IAErFvmlC,KAAKiuiC,gBAAgB7ygC,oBAAoB,YAAap7B,KAAK6olC,4BAC3D7olC,KAAKiuiC,gBAAgB7ygC,oBAAoB,aAAcp7B,KAAK4plC,6BAC5D5plC,KAAKiuiC,gBAAgB7ygC,oBAAoB,aAAcp7B,KAAK8plC,6BAC5D9plC,KAAKiuiC,gBAAgB7ygC,oBAAoB,YAAap7B,KAAK+plC,4BAC3D/plC,KAAKiuiC,gBAAgB7ygC,oBAAoB,QAASp7B,KAAKgqlC,wBACvDhqlC,KAAKiuiC,gBAAgB7ygC,oBAAoB,YAAap7B,KAAKqrlC,4BAC3DrrlC,KAAKiuiC,gBAAgB7ygC,oBAAoB,cAAep7B,KAAKsrlC,mCAC7DtrlC,KAAKipiC,UAAU9zhC,QAAQimB,oBAAoB,UAAWp7B,KAAKkolC,0BAC3Dl3jC,OAAOsK,iBAAiB,UAAWt7B,KAAK+mlC,iBACxC/1jC,OAAOoK,oBAAoB,UAAWp7B,KAAKurlC,iBAC3Cv6jC,OAAOoK,oBAAoB,SAAUp7B,KAAK227B,QAC1C3l6B,OAAOoK,oBAAoB,SAAUp7B,KAAK45jC,iBAEG,IAAzC1hiC,UAAUggN,UAAUvtO,QAAQ,UAA2D,IAAzCutB,UAAUggN,UAAUvtO,QAAQ,UAA8D,IAA5CutB,UAAUggN,UAAUvtO,QAAQ,YACxH3K,KAAKiuiC,gBAAgB7ygC,oBAAoB,cAAep7B,KAAK4slC,8BAC7D5slC,KAAKiuiC,gBAAgB7ygC,oBAAoB,cAAep7B,KAAKktlC,8BAC7DltlC,KAAKiuiC,gBAAgB7ygC,oBAAoB,YAAap7B,KAAKutlC,6BAC3DvtlC,KAAKiuiC,gBAAgB7ygC,oBAAoB,eAAgBp7B,KAAKutlC,+BAG9DvtlC,KAAKiuiC,gBAAgB7ygC,oBAAoB,aAAcp7B,KAAKgslC,6BACxDhslC,KAAKsglC,gBAAkBtglC,KAAKqjlC,aAE5BrjlC,KAAKiuiC,gBAAgB7ygC,oBAAoB,aAAa,SAAU/6B,GAAqB,IAAZA,EAAEk9d,OACvEl9d,EAAEgO,gBACJ,IAAG,GAETrO,KAAKiuiC,gBAAgB7ygC,oBAAoB,YAAap7B,KAAK6slC,4BAC3D7slC,KAAKiuiC,gBAAgB7ygC,oBAAoB,WAAYp7B,KAAKmtlC,2BAC1DntlC,KAAKiuiC,gBAAgB7ygC,oBAAoB,aAAcp7B,KAAKmtlC,2BAC5DntlC,KAAKiuiC,gBAAgB7ygC,oBAAoB,cAAep7B,KAAKmtlC,2BAErE,EAKA9P,EAAc1skC,UAAUmjjC,gBAAkB,WAClC9zjC,KAAKipiC,UAAUwE,sBACXztiC,KAAKipiC,UAAUwE,oBAAoBsmD,WACnC/zlC,KAAKipiC,UAAUwE,oBAAoB+rD,YAEF,eAA5Bx5lC,KAAKipiC,UAAUgrD,UAA4E,eAA/Cj0lC,KAAKipiC,UAAUwE,oBAAoBwgD,QACpFjulC,KAAKipiC,UAAUwE,oBAAoBymD,aAEiB,cAA/Cl0lC,KAAKipiC,UAAUwE,oBAAoBwgD,SACxCjulC,KAAKipiC,UAAUwE,oBAAoB0mD,aAG3C,IAAK,IAAIholC,EAAI,EAAGA,EAAInM,KAAKoxmB,UAAWjlmB,IAChCnM,KAAKy5lC,kBAAkBttlC,EAE/B,EAOAkxkC,EAAc1skC,UAAUw/jC,yBAA2B,SAAUhx8B,GACrDn/H,KAAKipiC,UAAUwkC,mBACXztkC,KAAKipiC,UAAUywD,mBAAmB/7M,YAClCx+wB,EAAWw69B,eAAiB35lC,KAAKipiC,UAAUywD,mBAAmB/7M,WAE9D394B,KAAKipiC,UAAUywD,mBAAmBzulB,YAClC9rY,EAAW8rY,UAAYjrgB,KAAKipiC,UAAUywD,mBAAmBzulB,WAEzDjrgB,KAAKipiC,UAAUywD,mBAAmBz6yB,WAClC9/K,EAAW8/K,SAAWj/S,KAAKipiC,UAAUywD,mBAAmBz6yB,UAExDj/S,KAAKipiC,UAAUywD,mBAAmBl3oB,aAClCrjV,EAAWqjV,WAAaxid,KAAKipiC,UAAUywD,mBAAmBl3oB,YAE1Dxid,KAAKipiC,UAAUywD,mBAAmBpr9B,UAClCnP,EAAWy69B,aAAe55lC,KAAKipiC,UAAUywD,mBAAmBpr9B,SAE5DtuI,KAAKipiC,UAAUywD,mBAAmBhsB,eAClCvu8B,EAAWuu8B,aAAe1tkC,KAAKipiC,UAAUywD,mBAAmBhsB,cAGxE,EAOA2P,EAAc1skC,UAAUysd,iBAAmB,SAAUrmc,GACjD,IACIq3mB,EADAyrd,GAAiB,EAEjBC,EAAa,GACbt0a,EAAgB,GAWpB,GAVIzupB,GAASA,EAAM1uB,SACfrI,KAAKu9kC,eAAiBxmjC,EACtB/2B,KAAKu8oB,kBAAkBphnB,cAAgBpE,EAAM1uB,QAE7CrI,KAAKipiC,UAAUgb,mBACf41C,EAAiB75lC,KAAKipiC,UAAUgb,iBAAiB41C,kBAEhDA,GACDr0a,EAAcp5qB,KAAK,iBAEkB,SAArCpM,KAAKipiC,UAAU8gB,kBACf37a,GAAW,OAEV,GAAIpuoB,KAAKipiC,UAAU0B,qBAAuB3qiC,KAAK8ojC,iCAAkC,CAClF,GAAI/xhC,EAAO,CACP,IAAIiyhC,EAA+BhpjC,KAAKgpjC,6BAA6BjyhC,GAEjE/2B,KAAKipiC,UAAUgb,kBAAoBjkjC,KAAKipiC,UAAUgb,iBAAiByE,0BAA4B1ojC,KAAKipiC,UAAUgb,iBAAiByE,yBAAyBC,mBACxJ3ojC,KAAK4ojC,uBAAwB,EAEzB5ojC,KAAKipiC,UAAU9p6B,WAAWup7B,2BAA6B1ojC,KAAKipiC,UAAU9p6B,WAAWup7B,yBAAyBhhX,iBAC1GliB,EAAcp5qB,KAAK,OACnBo5qB,EAAcp5qB,KAAK,SAGnBpM,KAAKipiC,UAAU9p6B,WAAWup7B,0BAAgG,KAApE1ojC,KAAKipiC,UAAU9p6B,WAAWup7B,yBAAyBpgJ,cACzG9iP,EAAcp5qB,KAAK,SAEvB0tlC,EAAW1tlC,KAAK,oBAChB0tlC,EAAW1tlC,KAAK,oBAChB0tlC,EAAW1tlC,KAAK,wBAChB0tlC,EAAW1tlC,KAAK,cAChB0tlC,EAAW1tlC,KAAK,cAChB0tlC,EAAW1tlC,KAAK,WAChB0tlC,EAAW1tlC,KAAK,kBAEX48iC,GAAgChpjC,KAAKipiC,UAAU0B,sBAE9C5zgC,EAAM1uB,OAAO6/Q,UAAUh1P,SAAS,yBAA2B6D,EAAM1uB,OAAO6/Q,UAAUh1P,SAAS,cAAgB6D,EAAM1uB,OAAO6/Q,UAAUh1P,SAAS,mBACzIlzB,KAAKipjC,sBACL76a,GAAW,IAITnnT,GAAQh0D,MAA8B,SAAtBg0D,GAAQ1qT,KAAK73B,OAAoBqyB,EAAM1uB,OAAO6/Q,UAAUh1P,SAAS,yBACvFk7mB,GAAW,GAEf0rd,EAAW1tlC,KAAK,OAChB0tlC,EAAW1tlC,KAAK,SAChB0tlC,EAAW1tlC,KAAK,iBAChB0tlC,EAAW1tlC,KAAK,cAChB0tlC,EAAW1tlC,KAAK,WAChB0tlC,EAAW1tlC,KAAK,eAGyC,IAApDpM,KAAKipiC,UAAUjmmB,cAAc5tP,YAAYhyM,QAAqF,yBAApEpD,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAG2/1B,qBAAsH,kBAApE/0iC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAG2/1B,qBAA+G,mBAApE/0iC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAG2/1B,oBAIvO,IAApD/0iC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAYhyM,QAAoF,SAApEpD,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAG2/1B,oBAC1G/0iC,KAAK+5lC,eAAeD,EAAYt0a,GAAe,GAI3CxlrB,KAAKipiC,UAAU9p6B,YAAcn/H,KAAKipiC,UAAU9p6B,WAAWsq7B,gBAAkB1yhC,EAAM1uB,OAAO6/Q,UAAUh1P,SAAS,oBACzG6D,EAAM1uB,OAAO6/Q,UAAUh1P,SAAS,gBAAkBlzB,KAAKipiC,UAAUgb,iBAAiBsE,2BAA2BmB,6BAC7GowC,EAAW1tlC,KAAK,cAChBpM,KAAK+5lC,eAAeD,EAAYt0a,GAAe,IAG1CxlrB,KAAK4pjC,+BAAiC5pjC,KAAKipiC,UAAUgb,iBAAiB4F,wBAAwBC,uBACnGgwC,EAAW1tlC,KAAK,oBAChB0tlC,EAAW1tlC,KAAK,oBAChB0tlC,EAAW1tlC,KAAK,wBAChB0tlC,EAAW1tlC,KAAK,cAChBo5qB,EAAcp5qB,KAAK,OACnBo5qB,EAAcp5qB,KAAK,QACnBo5qB,EAAcp5qB,KAAK,SACnBo5qB,EAAcp5qB,KAAK,iBACnBo5qB,EAAcp5qB,KAAK,YAGdpM,KAAKipiC,UAAUgb,kBAAoBjkjC,KAAKipiC,UAAUgb,iBAAiBsE,2BAA2BmB,6BACnGowC,EAAW1tlC,KAAK,oBAChB0tlC,EAAW1tlC,KAAK,oBAChB0tlC,EAAW1tlC,KAAK,wBAChB0tlC,EAAW1tlC,KAAK,cAChB0tlC,EAAW1tlC,KAAK,OAChB0tlC,EAAW1tlC,KAAK,QAChB0tlC,EAAW1tlC,KAAK,SAChB0tlC,EAAW1tlC,KAAK,eAGhBgioB,GAAW,EArCfpuoB,KAAK+5lC,eAAeD,EAAYt0a,GAAe,GAAO,EAwC9D,MACSxlrB,KAAKipiC,UAAU0B,qBAA6D,YAArC3qiC,KAAKipiC,UAAU8gB,mBAC3D+vC,EAAW1tlC,KAAK,OAChB0tlC,EAAW1tlC,KAAK,SAChB0tlC,EAAW1tlC,KAAK,iBAChB0tlC,EAAW1tlC,KAAK,cAChB0tlC,EAAW1tlC,KAAK,WAChB0tlC,EAAW1tlC,KAAK,eAEyC,IAApDpM,KAAKipiC,UAAUjmmB,cAAc5tP,YAAYhyM,SAC9C02lC,EAAW1tlC,KAAK,OAChB0tlC,EAAW1tlC,KAAK,SAChB0tlC,EAAW1tlC,KAAK,iBAChB0tlC,EAAW1tlC,KAAK,cAChB0tlC,EAAW1tlC,KAAK,eAEfpM,KAAKipiC,UAAU4hB,oBAChBrlY,EAAcp5qB,KAAK,UAE3B,MAEIgioB,GAAW,EAEf,IAAIxpT,EAAY,CAAEk1wB,WAAYA,EAAYt0a,cAAeA,EAAep3C,SAAUA,GAClFpuoB,KAAKipiC,UAAU8E,gBAAgB13oB,kBAAkB,mBAAoBzxE,EACzE,EAOAy4vB,EAAc1skC,UAAUq6iC,eAAiB,SAAUpsW,GAE/C,IAAIv2sB,EAASrI,KAAKu8oB,kBAAkBphnB,cACpC,OAAQyjrB,GACJ,KAAK5+sB,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,QACtC/lW,KAAKg6lC,mBACL,MACJ,KAAKh6lC,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,qBACtC/lW,KAAKi6lC,mBAAmB,aACxB,MACJ,KAAKj6lC,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,qBACtC/lW,KAAKi6lC,mBAAmB,aACxB,MACJ,KAAKj6lC,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,yBACtC/lW,KAAKi6lC,mBAAmB,iBACxB,MACJ,KAAKj6lC,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,cACtC/lW,KAAKk6lC,yBACL,MACJ,KAAKl6lC,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,OACtC/lW,KAAKm6lC,gBAAgB9xlC,GACrB,MACJ,KAAKrI,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,SACtC/lW,KAAKo6lC,kBAAkB/xlC,GACvB,MACJ,KAAKrI,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,kBACtC/lW,KAAKq6lC,qBACL,MACJ,KAAKr6lC,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,eACtC/lW,KAAKs6lC,qBACL,MACJ,KAAKt6lC,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,WACtC/lW,KAAKu6lC,sBAKjB,EACAld,EAAc1skC,UAAU4plC,oBAAsB,WAC1C,GAAIv6lC,KAAKipiC,UAAU9p6B,aACfn/H,KAAKipiC,UAAU9p6B,WAAWq79B,oBAC8B,IAApDx6lC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAYhyM,QACzCpD,KAAKipiC,UAAUgb,iBAAiBsE,2BAA2BmB,6BAA6B,CAExF,IAAIrF,OAAoB,EAEpBA,EADArkjC,KAAKipiC,UAAUgb,iBAAiBsE,2BAA2BmB,4BACvC1pjC,KAAKipiC,UAAUgb,iBAAiBsE,2BAA2BmB,4BAG3D1pjC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAGjE,IAAIkw4B,EAAkBp0jC,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,sBAAwBn2B,KAAKipiC,UAAU4C,mBAC7Gy5C,GACAA,EAAgBt4vB,cAAc,GAAGujiB,YAAW,GAGhD,IAAIg1N,EAAcr0jC,SAASg8T,eAAem3tB,EAAkB4C,WACxDs+B,IACKA,EAAYr9zB,UAAUh1P,SAAS,yBAChCqyjC,EAAY7wjC,WAAWsuP,QAGnC,CAER,EACAq6zB,EAAc1skC,UAAU2plC,mBAAqB,WACrCt6lC,KAAK4pjC,+BACL5pjC,KAAKipiC,UAAU9p6B,WAAW0q7B,wBAAwB4wC,wBAE1D,EACApd,EAAc1skC,UAAU0plC,mBAAqB,WACrCr6lC,KAAKipiC,UAAUyiC,oBAAyE,IAAnD1rkC,KAAKipiC,UAAUjmmB,cAAcmmnB,WAAW/ljC,OAC7EpD,KAAKipiC,UAAUyiC,mBAAmBgvB,gBAAgB16lC,KAAKipiC,UAAUjmmB,cAAcmmnB,WAAW,GAAGhzhC,IAExFn2B,KAAKipiC,UAAU9p6B,YACpBn/H,KAAKipiC,UAAU9p6B,WAAWw79B,kBAElC,EAEAtd,EAAc1skC,UAAUyplC,kBAAoB,SAAU/xlC,GAE9CrI,KAAK4ojC,uBAA0B5ojC,KAAKipiC,UAAUgb,kBAAoBjkjC,KAAKipiC,UAAUgb,iBAAiByE,yBAAyBC,mBAAuBtgjC,GAA+B,oBAArBA,EAAOtH,WAAsD,aAAnBsH,EAAO+/B,SAC7MpoC,KAAKipiC,UAAU9p6B,WAAWup7B,yBAAyBkyC,kBAAkBvylC,GACrErI,KAAKu8oB,kBAAkB/ggB,UAGvBx7I,KAAKipiC,UAAUptjB,QACf77e,KAAKu8oB,kBAAkB/0H,eAAiB,QAEhD,EAEA61jB,EAAc1skC,UAAUwplC,gBAAkB,SAAU9xlC,GAEhD,GAAIrI,KAAK4ojC,uBAA0B5ojC,KAAKipiC,UAAUgb,kBAAoBjkjC,KAAKipiC,UAAUgb,iBAAiByE,yBAAyBC,mBAAuBtgjC,GAA+B,oBAArBA,EAAOtH,WAAsD,aAAnBsH,EAAO+/B,QAC7MpoC,KAAKipiC,UAAU9p6B,WAAWup7B,yBAAyBmyC,gBAAgBxylC,GACnErI,KAAKu8oB,kBAAkB/ggB,aAEtB,GAAwD,IAApDx7I,KAAKipiC,UAAUjmmB,cAAc5tP,YAAYhyM,OAAc,CAC5CpD,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAG0gO,UAC5D91a,KAAKipiC,UAAUu/C,MACfxolC,KAAKu8oB,kBAAkB/0H,eAAiB,KAC5C,MAC4D,IAAnDxnhB,KAAKipiC,UAAUjmmB,cAAcmmnB,WAAW/ljC,SAC7CpD,KAAKipiC,UAAUu/C,MACfxolC,KAAKu8oB,kBAAkB/0H,eAAiB,MAEhD,EACA61jB,EAAc1skC,UAAUqplC,iBAAmB,WACvC,IAAIvzY,GAAS,EAETzmtB,KAAK4ojC,uBAA0B5ojC,KAAKipiC,UAAUgb,kBAAoBjkjC,KAAKipiC,UAAUgb,iBAAiByE,yBAAyBC,mBAC3H3ojC,KAAKipiC,UAAU9p6B,WAAWup7B,yBAAyBoyC,mBACnD96lC,KAAKu8oB,kBAAkB/ggB,QACvBirkB,GAAS,GAEJzmtB,KAAKipiC,UAAU0B,sBACpB3qiC,KAAKipiC,UAAU0B,oBAAoB29C,WACnCtolC,KAAKu8oB,kBAAkB/ggB,UAEvBx7I,KAAKipiC,UAAUjmmB,cAAc5tP,YAAYhyM,SAAWqjtB,GAI/CzmtB,KAAKipiC,UAAUjmmB,cAAcmmnB,WAAW/ljC,OAAS,KAHtDpD,KAAKipiC,UAAU76gC,OACfpuB,KAAKu8oB,kBAAkB/0H,eAAiB,OAMhD,EACA61jB,EAAc1skC,UAAUuplC,uBAAyB,WAEW,IAApDl6lC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAYhyM,QAAqF,SAApEpD,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAG2/1B,qBAAsG,uBAApE/0iC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAG2/1B,qBAChH,aAApE/0iC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAG2/1B,oBAIY,IAAnD/0iC,KAAKipiC,UAAUjmmB,cAAcmmnB,WAAW/ljC,QAAgBpD,KAAKipiC,UAAUjmmB,cAAcmmnB,WAAW,GAAGlU,yBACxGj1iC,KAAKipiC,UAAU0gB,aAAawhC,yBAJ5BnrlC,KAAKipiC,UAAU9p6B,WAAWgs9B,wBAMlC,EACA9N,EAAc1skC,UAAUsplC,mBAAqB,SAAUrtlC,GAC/C5M,KAAKipiC,UAAU9p6B,YAAcn/H,KAAKipiC,UAAU9p6B,WAAWop7B,6BACvDvojC,KAAKipiC,UAAU9p6B,WAAWop7B,2BAA2BwyC,uBAAwB,EAC7E/6lC,KAAKipiC,UAAU9p6B,WAAWop7B,2BAA2BgiC,0BAA0B39kC,GAC/E5M,KAAKipiC,UAAU9p6B,WAAWop7B,2BAA2BmjC,4BAA6B,EAClF1rlC,KAAKipiC,UAAU9p6B,WAAWop7B,2BAA2BygC,yBAA2B,GAChFhplC,KAAKipiC,UAAU9p6B,WAAWop7B,2BAA2BwyC,uBAAwB,EAErF,EACA1d,EAAc1skC,UAAUoplC,eAAiB,SAAUD,EAAYt0a,EAAew1a,EAAkBjwC,GACxF/qjC,KAAKipiC,UAAU9p6B,aAAen/H,KAAKipiC,UAAU9p6B,WAAWsq7B,eACxDjkY,EAAcp5qB,KAAK,SAEvB0tlC,EAAW1tlC,KAAK,oBAChB0tlC,EAAW1tlC,KAAK,oBAChB0tlC,EAAW1tlC,KAAK,wBAChB0tlC,EAAW1tlC,KAAK,cACZ4ulC,EAE0E,SAApEh7lC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAG2/1B,qBAAsG,uBAApE/0iC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAG2/1B,qBACxD,aAApE/0iC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAG2/1B,qBAC5C+kD,EAAW1tlC,KAAK,cAGf2+iC,GACL+uC,EAAW1tlC,KAAK,cAChB0tlC,EAAW1tlC,KAAK,aAGhB0tlC,EAAW1tlC,KAAK,OAChB0tlC,EAAW1tlC,KAAK,QAChB0tlC,EAAW1tlC,KAAK,iBAChB0tlC,EAAW1tlC,KAAK,WAExB,EACAixkC,EAAc1skC,UAAUsqlC,eAAiB,SAAUh7jC,GAM/C,OADkB,IAAItpB,OAAO,sLACVwS,KAAK8W,EAC5B,EAOAo9iC,EAAc1skC,UAAUq4iC,6BAA+B,SAAUjyhC,GAC7D,IAAI4tuB,EACAu2V,GAAW,EAEXC,EAAkBn7lC,KAAK6riC,kBADb,EAC4C,EAAK,EAAI7riC,KAAK6riC,kBAD1D,EAEVuvD,EAAkBp7lC,KAAK6riC,kBAFb,EAE4C7riC,KAAKoxmB,UAAapxmB,KAAKoxmB,UAAYpxmB,KAAK6riC,kBAFpF,EAGd,GAAI7riC,KAAKipiC,UAAU0B,oBAAqB,CACpC,IAAK,IAAIx+hC,EAAIgvlC,EAAehvlC,EAAIivlC,EAAejvlC,IAC3C,GAAIA,GAAK,IACLw4vB,EAAS3kwB,KAAKipiC,UAAU0B,oBAAoB0wD,0BAA0BlvlC,IAC1D,CACR,IAAImvlC,EAAe32V,EACnB,GAAI3kwB,KAAKu7lC,mBAAmBD,EAAa339B,KAAMx3H,GAAK4qB,EAAMsC,SAAWr5B,KAAKu7lC,mBAAmBD,EAAa139B,MAAOz3H,GAC7G4qB,EAAMsC,SAAWr5B,KAAKw7lC,iBAAiBF,EAAapt8B,IAAK/hJ,GAAK4qB,EAAMuC,SACpEt5B,KAAKw7lC,iBAAiBF,EAAa3m0B,OAAQxoR,GAAK4qB,EAAMuC,QAAS,CAC/D4hkC,GAAW,EACX,KACJ,CACJ,EAGHj0wB,GAAQh0D,MAA8B,SAAtBg0D,GAAQ1qT,KAAK73B,OAAoBigwB,IAClDu2V,GAAW,EAEnB,CACA,OAAOA,CACX,EACA7d,EAAc1skC,UAAU8qlC,yBAA2B,SAAU75lC,GAGzD,OAAQA,EAFM5B,KAAKgnS,WAAW,aAAehnS,KAAK6riC,kBAAoB,IAC7Cp3wB,wBACE9wJ,IAC/B,EACA058B,EAAc1skC,UAAU+qlC,uBAAyB,SAAU95lC,GAGvD,OAAQA,EAFM5B,KAAKgnS,WAAW,aAAehnS,KAAK6riC,kBAAoB,IAC7Cp3wB,wBACEvmI,GAC/B,EACAmv7B,EAAc1skC,UAAU4qlC,mBAAqB,SAAU35lC,EAAOug0B,GAC1D,IACItY,EADU7pzB,KAAKgnS,WAAW,aAAem7hB,GAAcni0B,KAAK6riC,kBAAoB,IAC3Dp3wB,wBACzB,OAAQ7yR,EAAQ5B,KAAKwqiC,gBAAmB3gP,EAAWlmrB,IACvD,EACA058B,EAAc1skC,UAAU6qlC,iBAAmB,SAAU55lC,EAAOug0B,GACxD,IACItY,EADU7pzB,KAAKgnS,WAAW,aAAem7hB,GAAcni0B,KAAK6riC,kBAAoB,IAC3Dp3wB,wBACzB,OAAQ7yR,EAAQ5B,KAAKwqiC,gBAAmB3gP,EAAW37pB,GACvD,EAKAmv7B,EAAc1skC,UAAUs4iC,kBAAoB,WACxC,IAAIxigC,GAAS,EACT2x2B,EAAc,GAEduyI,EAAsB3qiC,KAAKipiC,UAAU0B,oBAUzC,OATIA,GAAuBA,EAAoBgxD,qBAA0E,IAAnDhxD,EAAoBgxD,oBAAoBv4lC,OAC1Gg15B,EAAcuyI,EAAoBgxD,oBAAoB,GAAG/xjC,YAEpD5Y,OAAOu8H,gBAAkBv8H,OAAOu8H,eAAeE,aACpD2qwB,EAAcpn4B,OAAOu8H,eAAez2I,YAEpB,KAAhBsh5B,GAAsBp45B,KAAKi7lC,eAAe7iM,KAC1C3x2B,GAAS,GAENA,CACX,EACA42hC,EAAc1skC,UAAU02kC,iBAAmB,SAAUtwjC,GACjD,IAAI0xjC,EACAC,EAAcx3jC,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,eAItE,GAHIuyjC,IACAD,EAAsD,SAA9BC,EAAYvilC,MAAMi+J,SAE1CpkK,KAAKipiC,UAAUyiC,qBAAuB1rkC,KAAKipiC,UAAU0gB,aAAag/B,sBAAwB3olC,KAAKipiC,UAAUmgB,cAAmE,IAAnDppjC,KAAKipiC,UAAUjmmB,cAAcmmnB,WAAW/ljC,SAAiBqllC,EAClLzolC,KAAKipiC,UAAUyiC,mBAAmBgvB,gBAAgB16lC,KAAKipiC,UAAUjmmB,cAAcmmnB,WAAW,GAAGhzhC,SAE5F,GAAIn2B,KAAKipiC,UAAU9p6B,aAAen/H,KAAKipiC,UAAUmgB,cAAgBryhC,EAAMqrH,WAAWyzI,cAAc3N,YAAcnxP,EAAMqrH,WAAWyzI,cAAc3N,UAAUh1P,SAAS,oBAC7JlzB,KAAK6llC,gCAAmC7llC,KAAKkzjC,6BAAgCu1B,GAC7EzolC,KAAKipiC,UAAUgb,iBAAiB02C,mBAEhC36lC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAYhyM,OAAS,GAAG,CAErD,IAAI+7H,EAAan/H,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GACtD8nR,GAAa,EACbtwd,EAAOuyH,EAAW416B,oBACtB,GAAa,SAATnoiC,GAA0D,mBAAvCuyH,EAAW816B,yBAAuF,iBAAvC916B,EAAW816B,yBAAuD,yBAATroiC,GAA4C,kBAATA,GAAqC,mBAATA,EAA2B,CACjO,IAAIgvlC,EAAc1qkC,SAASg8T,eAAe/tN,EAAWhpG,IACjDylkC,GAAeA,EAAYhtlC,WAC3Bsud,GAAa,EAErB,CACKA,IACG/9V,EAAWqk7B,oBAAsBrk7B,EAAWqk7B,mBAAmB0F,OAC3DlpjC,KAAKipiC,UAAUgb,iBAAiBmnB,yBAAyB,SAAUjs8B,KACnEn/H,KAAKipiC,UAAU91gC,OAAOgsG,GACtBn/H,KAAKipiC,UAAUyjC,eAAe1skC,KAAKipiC,UAAU9p6B,WAAW2o8B,mBAAmB/wiC,MAI/E/2B,KAAKipiC,UAAU91gC,OAAOgsG,GACtBn/H,KAAKipiC,UAAUyjC,eAAe1skC,KAAKipiC,UAAU9p6B,WAAW2o8B,mBAAmB/wiC,KAGvF,CAER,EAKAsmjC,EAAc1skC,UAAUoglC,gBAAkB,WACtC/wlC,KAAKg/kC,WAAY,EACjBh/kC,KAAK0piC,UAAUyD,kBAAiB,GAChCntiC,KAAKmukC,2BACDnukC,KAAKipiC,UAAUh0a,SAAWj1nB,KAAKipiC,UAAUh0a,QAAQkjc,yBACjDn4jC,KAAKipiC,UAAUh0a,QAAQkjc,wBAAwBuvB,kBAEvD,EAKArK,EAAc1skC,UAAUsmlC,uBAAyB,WAC7Cj3lC,KAAKg/kC,WAAY,EACbh/kC,KAAKiuiC,kBACLjuiC,KAAKiuiC,gBAAgB9niC,MAAM+yiB,OAAS,OAChCl5iB,KAAKipiC,UAAU0B,sBACf3qiC,KAAK0piC,UAAUyD,kBAAiB,GAChCntiC,KAAKipiC,UAAU0B,oBAAoBkxD,2BAEjC50wB,GAAQM,WAAYvnV,KAAKipiC,UAAUqf,mBAAuBx7uB,MAC5D9sU,KAAK40lC,0BAAyB,GAG1C,EAKAvX,EAAc1skC,UAAUmrlC,sBAAwB,WACxC97lC,KAAKipiC,UAAUh0a,UAAYj1nB,KAAKipiC,UAAUh0a,QAAQ8me,0BAClD/7lC,KAAKi3lC,yBACLj3lC,KAAKipiC,UAAUh0a,QAAQ+me,wBAAuB,GAEtD,EACA3e,EAAc1skC,UAAUiklC,yBAA2B,SAAUx1sB,GACrDp/Y,KAAKipiC,UAAUtiiB,eACX3mgB,KAAKipiC,UAAUtiiB,cAAcwxjB,yBAC7Bn4jC,KAAKipiC,UAAUtiiB,cAAcwxjB,wBAAwBy8B,yBAAyBx1sB,EAG1F,EACAi+rB,EAAc1skC,UAAU+mkB,eAAiB,WACI,OAArC1mjB,OAAOu8H,eAAeE,YACtBztJ,KAAKipiC,UAAU0B,oBAAoB6B,wBAEvCxsiC,KAAK6+kC,8BAA+B,CACxC,EAEAxB,EAAc1skC,UAAU47kC,eAAiB,SAAUlklC,GAC/C,IAAIkklC,GAAiB,EA0BrB,OAzBwD,IAApDvslC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAYhyM,QAAqF,yBAApEpD,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAG2/1B,qBAAsH,kBAApE/0iC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAG2/1B,qBAA+G,mBAApE/0iC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAG2/1B,qBAIlO,IAApD/0iC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAYhyM,QAAoF,SAApEpD,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAG2/1B,qBAIlD,IAAnD/0iC,KAAKipiC,UAAUjmmB,cAAcmmnB,WAAW/ljC,QAAgBpD,KAAKipiC,UAAUjmmB,cAAcmmnB,WAAW,GAAGlU,yBAA2Bj1iC,KAAKipiC,UAAUmgB,cAK9IppjC,KAAKipiC,UAAU9p6B,YAAcn/H,KAAKipiC,UAAU9p6B,WAAWsq7B,gBAAkBphjC,EAAO6/Q,UAAUh1P,SAAS,oBAEnG7qB,EAAO6/Q,UAAUh1P,SAAS,gBAAkBlzB,KAAKipiC,UAAUgb,iBAAiBsE,2BAA2BmB,6BAIlG1pjC,KAAKipiC,UAAU0gB,cAAgB3pjC,KAAKipiC,UAAU0gB,aAAaF,gBAAkBphjC,EAAO6/Q,UAAUh1P,SAAS,oBAC5G7qB,EAAO6/Q,UAAUh1P,SAAS,iBAf9Bq5jC,GAAiB,GAJjBA,GAAiB,EAuBrBvslC,KAAKwpjC,mBAAqBnhjC,EACnBkklC,CACX,EACAlP,EAAc1skC,UAAU07kC,WAAa,SAAUJ,EAAal1jC,GACxD,IAAIz3B,EAAQU,KAEZ,GAAIA,KAAKqjlC,YAAa,CAClB,IAAIxykC,EAAMi2jC,IAAkB/viC,EAAO/2B,KAAMA,KAAKipiC,WAE1CgzD,GAAoBlwxB,GAAkB/rU,KAAKipiC,UAAU9p6B,cAAgB4sM,GAAkB/rU,KAAKipiC,UAAU9p6B,WAAWup7B,4BAA8B1ojC,KAAKipiC,UAAU9p6B,WAAWup7B,yBAAyBwzC,sBAAwBrrlC,IAAO7Q,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,IAAKvkM,EAAIslB,KAAOn2B,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAGj/K,KAAcjF,SAAS0vH,cAAcsnI,UAAUh1P,SAAS,oBAAsBlzB,KAAK4qlC,qBAAqB5qlC,KAAKipiC,UAAUjmmB,cAAc5tP,aAC1cp1M,KAAKs/kC,eAYFt/kC,KAAKipiC,UAAU6jD,kBACf9slC,KAAKomW,WACDpmW,KAAKomW,SAAW,IAChBpmW,KAAKomW,SAAW,GAEpB/vU,aAAar2B,KAAKs/kC,gBAClBt/kC,KAAKs/kC,eAAiB,KACtBt/kC,KAAKm8lC,YAAYlQ,KAlBrBjslC,KAAKs/kC,eAAiBlpjC,YAAW,WACzB6lkC,IACA38lC,EAAM2piC,UAAUzxZ,eAAel4oB,EAAM2piC,UAAUjmmB,cAAc5tP,YAAY,GAAG0gO,WAC5Ex2a,EAAMm8jC,sBAAqB,IAE/Bn8jC,EAAM88lC,YAAYnQ,EAEtB,GAAG,KACHjslC,KAAKomW,WAab,MAESpmW,KAAKs/kC,eAQFt/kC,KAAKipiC,UAAU6jD,kBACf9slC,KAAKomW,WACDpmW,KAAKomW,SAAW,IAChBpmW,KAAKomW,SAAW,GAEpB/vU,aAAar2B,KAAKs/kC,gBAClBt/kC,KAAKs/kC,eAAiB,KACtBt/kC,KAAKm8lC,YAAYlQ,KAdrBjslC,KAAKs/kC,eAAiBlpjC,YAAW,WAC7B92B,EAAM88lC,YAAYnQ,EAEtB,GAAG,KACHjslC,KAAKomW,WAcjB,EACAi3uB,EAAc1skC,UAAU27kC,kBAAoB,SAAUL,GAClD,IAAI3slC,EAAQU,KAMZ,GALAo2B,YAAW,WACP92B,EAAMiglC,cAAgB,CAC1B,GAAG,KACHv/kC,KAAKu/kC,gBAEDv/kC,KAAKqjlC,YAELrjlC,KAAKq8lC,mBAAmBpQ,QAGZ71jC,YAAW,WACnB92B,EAAM+8lC,mBAAmBpQ,EAC7B,GAAG,KAEHjslC,KAAKu/kC,cAAgB,IACrBv/kC,KAAKu/kC,cAAgB,EAE7B,EACAlC,EAAc1skC,UAAU0rlC,mBAAqB,SAAUhz8B,GACtCA,EAAQ,GAAGhhJ,OACxB,GAA2B,IAAvBrI,KAAKu/kC,eACmD,IAApDv/kC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAYhyM,OAAc,CACvD,GAAIpD,KAAKipiC,UAAUgb,iBAAkB,CACjC,IAAII,EAAoBrkjC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAE7Dp1M,KAAKqjlC,aAAenyjC,SAAS0vH,cAAcsnI,UAAUh1P,SAAS,oBAAuBlzB,KAAK4qlC,qBAAqB5qlC,KAAKipiC,UAAUjmmB,cAAc5tP,cAC5Ip1M,KAAKy7jC,sBAAqB,GAE9Bz7jC,KAAKipiC,UAAUgb,iBAAiB64B,iBAAiBz4B,EAAkB4C,UAAW5C,EAAkBvuoB,UAAWuuoB,EAAmB,MAAM,EACxI,CACA,GAAIrkjC,KAAK4qlC,qBAAqB5qlC,KAAKipiC,UAAUjmmB,cAAc5tP,eAAkBp1M,KAAKipiC,UAAUgb,iBAAiByE,yBAAyBC,kBAAoB,EAClJkiC,EAAe,CAAC,GACP3wkC,EAAIla,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAGuvjB,OAAOzqvB,EACpE2wkC,EAAa1wkC,EAAIna,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAGuvjB,OAAOxqvB,EACpE,IAAImilC,OAAmB,EAEnBA,EADkD,kBAAlDt8lC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAGj/K,GACzBn2B,KAAKipiC,UAAUlkR,UAAU/kxB,KAAK4kV,UAAUhuU,OAAOuf,IAG/Cn2B,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAGhEp1M,KAAKipiC,UAAU9p6B,WAAWup7B,yBAAyBoiC,eAAeD,EAAcyR,EACpF,MACK,GAAIt8lC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,IAAMp1M,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAGq43B,mBAAsBztkC,KAAKipiC,UAAUgb,iBAAiByE,yBAAyBC,kBAAoB,CACnM,IAAIkiC,KAAe,CAAC,GACP3wkC,EAAIla,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAGuvjB,OAAOzqvB,EACpE2wkC,EAAa1wkC,EAAIna,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAGuvjB,OAAOxqvB,EACpEna,KAAKipiC,UAAU9p6B,WAAW+n9B,mBAAmB6D,UAAUF,EAAc7qlC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAClH,CACJ,CAER,EACAio4B,EAAc1skC,UAAUyrlC,YAAc,SAAU/y8B,GAC5C,IAAIhhJ,EAASghJ,EAAQ,GAAGhhJ,OACpBk0lC,GAAe,EAMnB,GALAv8lC,KAAKs/kC,eAAiB,KAClBj3kC,IAAWA,EAAO6/Q,UAAUh1P,SAAS,2BAClC7qB,EAAO6/Q,UAAUh1P,SAAS,wBAA0B7qB,EAAO6/Q,UAAUh1P,SAAS,sCACjFqpkC,GAAe,IAEdv8lC,KAAK2+kC,wBAA0B3+kC,KAAKoljC,eAAe6L,6BAA+BsrC,GAC/Ev8lC,KAAKipiC,UAAUtiiB,cAAe,CAC9B,GAAK3mgB,KAAKu+kC,cAAgBl17B,EAAQ,GAAGhwH,QAAU,IAAQr5B,KAAKu+kC,cAAgBl17B,EAAQ,GAAGhwH,QAAU,IAC5Fr5B,KAAKw+kC,cAAgBn17B,EAAQ,GAAG/vH,QAAU,IAAQt5B,KAAKw+kC,cAAgBn17B,EAAQ,GAAG/vH,QAAU,GAAK,CAClG,GAAKt5B,KAAKo9kC,YAeFtwwB,OAEA9sU,KAAKiuiC,gBAAgB9/4B,WAAanuJ,KAAKipiC,UAAU9zhC,QAAQykB,cAAc,wBAAwBsrO,aAAellQ,KAAKwqiC,sBAZvH,GAJI19tB,OAEA9sU,KAAKiuiC,gBAAgB9/4B,WAAanuJ,KAAKipiC,UAAU9zhC,QAAQykB,cAAc,wBAAwBsrO,aAAellQ,KAAKwqiC,iBAEnHxqiC,KAAKipiC,UAAUh0a,QAAQune,aAAc,CACrC,IAAItplB,EAAWlzgB,KAAKgnS,WAAW,sBAC3BksO,EAAS5oe,oBACT4oe,EAAShrP,UAAU/0P,OAAO,gBAC1B+/e,EAAShrP,UAAU90P,IAAI,iBACvB8/e,EAAS/9e,YAAY+9e,EAAS5oe,mBAEtC,CAQAtqC,KAAKo9kC,aAAgBn2vB,GAAQM,WAAavnV,KAAKipiC,UAAUqf,mBACzDtojC,KAAKo5jC,wBAAwBjzjC,MAAMi+J,QAAU,GAC7CpkK,KAAKwklC,gCAGCv9vB,GAAQM,WAAavnV,KAAKipiC,UAAUqf,mBAA+D,MAAzCtojC,KAAKy8lC,mCACrEz8lC,KAAKo5jC,wBAAwBjzjC,MAAMi+J,QAAU,QAEJ,MAAzCpkK,KAAKy8lC,mCACA3vxB,KAOD9sU,KAAKovlC,gBAAgBjS,kBAAkBn9kC,KAAKo9kC,aANxCp9kC,KAAKipiC,UAAU0tB,eACf32jC,KAAKipiC,UAAUtiiB,cAAcmzjB,aAAY,GAOjD95jC,KAAKo9kC,aAAep9kC,KAAKo9kC,YAEjC,CACAp9kC,KAAKomW,SAAW,CACpB,CAER,EACAi3uB,EAAc1skC,UAAUwrlC,YAAc,SAAU9y8B,GAC5C,IAAIhhJ,EAASghJ,EAAQ,GAAGhhJ,OACpBk0lC,GAAe,EACfl0lC,IAAWA,EAAO6/Q,UAAUh1P,SAAS,2BAClC7qB,EAAO6/Q,UAAUh1P,SAAS,wBAA0B7qB,EAAO6/Q,UAAUh1P,SAAS,sCACjFqpkC,GAAe,GAEG,IAAlBv8lC,KAAKomW,UAAmBm2vB,IACxBv8lC,KAAKomW,SAAW,EAKXpmW,KAAKu+kC,cAAgBhyjC,UAAU88H,EAAQ,GAAGhwH,QAAU,IAAIviB,aAAiB9W,KAAKu+kC,cAAgBl17B,EAAQ,GAAGhwH,QAAU,IACnHr5B,KAAKw+kC,cAAgBn17B,EAAQ,GAAG/vH,QAAU,IAAQt5B,KAAKw+kC,cAAgBn17B,EAAQ,GAAG/vH,QAAU,KACzFt5B,KAAKipiC,UAAUi9C,eAAqE,IAApDlmlC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAYhyM,QACzEpD,KAAKipiC,UAAUi9C,cAAcwW,2BAEjC18lC,KAAKiuiC,gBAAgB9niC,MAAMyiJ,OAAS5oJ,KAAKkklC,iBAAiBlklC,KAAKipiC,UAAU9zhC,QAAQs/Q,wBAAwB7rI,OAAQ5oJ,KAAKg+4B,eACtHh+4B,KAAKo9kC,aAAc,EACnB/mjC,aAAar2B,KAAKs/kC,gBAClBt/kC,KAAKs/kC,eAAiB,MAGlC,EACAjC,EAAc1skC,UAAUw7kC,kBAAoB,SAAUp1jC,GAC9C/2B,KAAKipiC,UAAU0B,sBAEV3qiC,KAAKg/kC,YAAah/kC,KAAKipiC,UAAU2B,qBAAwB5qiC,KAAK6qiC,yBAAoE,MAAzC7qiC,KAAKy8lC,kCACzFz8lC,KAAKsglC,gBAAmBr5vB,GAAQM,WAAavnV,KAAKipiC,UAAUqf,oBAC9DvxhC,EAAM1oB,iBACN0oB,EAAMzoB,mBAItB,EACA+ukC,EAAc1skC,UAAU28kC,sBAAwB,SAAUv2jC,GACtD,GAAI/2B,KAAKipiC,UAAU9p6B,WAAY,CAC3B,IAAI4hxB,EAAa/g5B,KAAKwqiC,gBAClB10nB,EAAY91a,KAAKipiC,UAAU9p6B,WAAW2o8B,mBAAmB/wiC,GACzD0ygC,EAAUzpiC,KAAKgnS,WAAW,YAAc8uI,GAC5C,GAAI91a,KAAKipiC,UAAUqyC,uBAAwB,CACvC,IAAIgO,EAActplC,KAAKipiC,UAAUgb,iBAAiB8oB,sBAClD,GAAIuc,GAAeA,EAAYC,sBACvB9/C,EAAS,CACT,IAAIs+B,EAAkBt+B,EAAQh1wB,wBAE9B,GAAmB,aAAf19P,EAAMnqB,MAA4H,UAArG5M,KAAKipiC,UAAUgb,iBAAiB8oB,sBAAsBsc,uBAAuBt0C,oBAAiC,CAC3I,IAAI4nD,EAAkB38lC,KAAKipiC,UAAUgb,iBAAiB8oB,sBAAsBsc,uBAC5EsT,EAAgB7mrB,UAAYA,EAC5B6mrB,EAAgBh4V,OAAOzqvB,GAAK6c,EAAMwyH,eAAe,GAAGlwH,QAAU0uiC,EAAgBpk8B,MAAQo9wB,EACtF47M,EAAgBh4V,OAAOxqvB,GAAK4c,EAAMwyH,eAAe,GAAGjwH,QAAUyuiC,EAAgB756B,KAAO6yvB,EACrFuoM,EAAYsT,kBAAkB9mrB,EAAW6mrB,EAAiBA,EAAgBru9B,SAC1EtuI,KAAKipiC,UAAU71gC,IAAIupkC,GACnB,IAAI//nB,EAAS1rc,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,qBAAuB2/Y,GACxF91a,KAAKipiC,UAAUsb,cAAc3nlB,EAAQ9mD,EACzC,MAGIwzqB,EAAYuT,aAAa9lkC,EAAMwyH,eAAe,GAAGlwH,QAAU0uiC,EAAgBpk8B,MAAQo9wB,GAAahq3B,EAAMwyH,eAAe,GAAGjwH,QAAUyuiC,EAAgB756B,KAAO6yvB,EAAY,KAAM,KAAMjre,EAAW,KAAM,KAAM,KAAM,MAElNwzqB,EAAYC,sBAAuB,CACvC,CAEJvplC,KAAKipiC,UAAU9p6B,WAAW299B,uBAC9B,CACA,GAAI98lC,KAAKipiC,UAAUuyC,4BAA8Bx7kC,KAAKo8iC,kBAAoB3S,EAAS,CAC3Es+B,EAAkBt+B,EAAQh1wB,wBAC9Bz0R,KAAKm8iC,sBAAsBrmoB,UAAYA,EAEvC91a,KAAKy9iC,gBAAgB2G,iBAAiBrthC,EAAMwyH,eAAe,GAAGlwH,QAAU0uiC,EAAgBpk8B,MAAQo9wB,GAAahq3B,EAAMwyH,eAAe,GAAGjwH,QAAUyuiC,EAAgB756B,KAAO6yvB,GACtK/g5B,KAAKo8iC,kBAAmB,CAC5B,CAC6B,IAAzBrlhC,EAAMsyH,QAAQjmJ,QAAgBpD,KAAK6llC,iCAAmC7llC,KAAKkzjC,6BAC3ElzjC,KAAKipiC,UAAUgb,iBAAiBsE,2BAA2B6jC,+BAA+Br1jC,EAElG,CACJ,EAEAsmjC,EAAc1skC,UAAUkjlC,YAAc,SAAUkJ,GAU5C,GATKjwxB,MACG9sU,KAAKipiC,UAAUtiiB,eACf3mgB,KAAKipiC,UAAUtiiB,cAAc6zkB,kBAGhCvzvB,GAAQM,WAAavnV,KAAKipiC,UAAUqf,mBAAsBtojC,KAAK4vlC,2BAChE5vlC,KAAK4vlC,yBAAyB1mjC,UAAYlpC,KAAKoxmB,UAAUt6lB,WACzD9W,KAAK44lC,gBAAgB1vjC,UAAY,MAAQlpC,KAAKoxmB,UAAUt6lB,WAAa,KAErE9W,KAAKoxmB,UAAY,EAAG,CACpB,IAAI9jF,EAAW,EACXwwjB,EAAY,EAChB99kC,KAAKkglC,qBAAsB,EACvBlglC,KAAKoxmB,UAAY,KAEjB0se,EAAY,IACZ99kC,KAAK89kC,UAAYA,GAGjBA,EAAY99kC,KAAKoxmB,UAKrB,IAHA,IAAI4rf,GAAa,EACbC,GAAc,EACdC,GAAoB,EACf/wlC,EAAI,EAAGA,EAAI2xkC,EAAW3xkC,IAAK,CAChC,GAAgE,kBAArD4wlC,EAAWrie,UAAUnumB,SAASpgB,EAAE2K,WAAY,KAAmB,CACtE,IAAIi/Z,EAAWgnrB,EAAWrie,UAAUnumB,SAASpgB,EAAE2K,WAAY,KAAK6b,MAAM,KACtE,GAAoC,OAAhCoqkC,EAAWrie,UAAUvunB,EAAI,IAAqB,IAANA,EAAS,CACjD,IAAIgxlC,EAAqBJ,EAAWrie,UAAUvunB,EAAI,GAAGwmB,MAAM,KAC3D26f,EAAWtthB,KAAK09kC,QAAUhtiC,WAAWysjC,EAAmB,IAAM7vkB,CAClE,MAEIA,EAAWtthB,KAAK09kC,QAEpB,IAAIrnkC,EAAO,CAAEmI,MAAOkyB,WAAWqlY,EAAS,IAAKntR,OAAQl4G,WAAWqlY,EAAS,IAAK7nR,IAAKo/X,GACnFtthB,KAAK+1a,SAAS3pa,KAAKiK,EACvB,KACK,CACD,GAAoC,OAAhC0mlC,EAAWrie,UAAUvunB,EAAI,IAAqB,IAANA,EAAS,CAE7CgxlC,EAAqBJ,EAAWrie,UAAUvunB,EAAI,GAClDmhhB,EAAWtthB,KAAK09kC,QAAUhtiC,WAAWysjC,EAAmB77X,QAAUh0M,CACtE,MAEIA,EAAWtthB,KAAK09kC,QAEhBrnkC,EAAO,CAAEmI,MAAOu+kC,EAAWrie,UAAUnumB,SAASpgB,EAAE2K,WAAY,KAAKuqtB,MAAOz4kB,OAAQm08B,EAAWrie,UAAUnumB,SAASpgB,EAAE2K,WAAY,KAAKwqtB,OAAQpzkB,IAAKo/X,GAClJtthB,KAAK+1a,SAAS3pa,KAAKiK,EACvB,CACIrW,KAAK+1a,SAASxpZ,SAASpgB,EAAE2K,WAAY,KAAK8xI,OAAS5oJ,KAAK+1a,SAASxpZ,SAASpgB,EAAE2K,WAAY,KAAK0H,QAC7Fw+kC,GAAa,GAEbh9lC,KAAK+1a,SAASxpZ,SAASpgB,EAAE2K,WAAY,KAAK0H,MAAQxe,KAAK+1a,SAASxpZ,SAASpgB,EAAE2K,WAAY,KAAK8xI,SAC5Fq08B,GAAc,GAEd9wlC,EAAI,GAAKnM,KAAK+1a,SAASxpZ,SAASpgB,EAAE2K,WAAY,KAAK0H,QAAUxe,KAAK+1a,SAAS5pa,EAAI,GAAGqS,QAClF0+kC,GAAoB,GAExB,IAAI1zD,EAAYxpiC,KAAK+1a,SAASxpZ,SAASpgB,EAAE2K,WAAY,KAAK0H,MACtDgrhC,EAAYxpiC,KAAKmglC,eACjBnglC,KAAKmglC,aAAe32C,GAExB,IAAIhvR,EAAax6wB,KAAK+1a,SAASxpZ,SAASpgB,EAAE2K,WAAY,KAAK8xI,OACvD4xnB,EAAax6wB,KAAKoglC,gBAClBpglC,KAAKoglC,cAAgB5lU,EAE7B,EACKwiV,GAAcC,GAAgBC,KAC/Bl9lC,KAAKkglC,qBAAsB,GAE/B,IAAI/0hC,OAAQ,EAGJA,EAFJnrD,KAAKipiC,UAAUsrD,mBAAqB,GAChCv0lC,KAAKipiC,UAAUsrD,mBAAqB,IAC5BzW,EAGA99kC,KAAKipiC,UAAUsrD,oBAAsBv0lC,KAAKoxmB,UAAYpxmB,KAAKipiC,UAAUsrD,mBAAqBv0lC,KAAKoxmB,UAInGpxmB,KAAKoxmB,UAAY,GAAKpxmB,KAAKoxmB,UAAY,GAEnD,IAASjlmB,EAAI,EAAGA,EAAIg/C,EAAOh/C,IACvBnM,KAAKo9lC,oBAAoBjxlC,EAAGnM,KAAKq9lC,aAAalxlC,GAAInM,KAAK+tlC,cAAc5hlC,GAAInM,KAAKgulC,WAAW7hlC,IAK7F,GAFAnM,KAAKw5iC,cAAcrziC,MAAMyiJ,OAAS5oJ,KAAKgulC,WAAWhulC,KAAK+1a,SAAS3ya,OAAS,GAAKpD,KAAK+tlC,cAAc/tlC,KAAK+1a,SAAS3ya,OAAS,GAAK,KAC7HpD,KAAKw5iC,cAAcrziC,MAAM+jF,SAAW,WACb,MAAnBlqF,KAAK89kC,UAEW,OADF99kC,KAAKgnS,WAAW,YAAchnS,KAAK89kC,YACzB99kC,KAAK89kC,UAAY99kC,KAAKoxmB,WAC1CzgkB,QAAQ5gB,IAAI,CAAC/vB,KAAKs9lC,wBAG9B,CACJ,EACAjgB,EAAc1skC,UAAUu9kC,4BAA8B,SAAU/rR,GAC5D,IAAIo7R,EAAa,EAEbv9lC,KAAK69kC,eAAiB,IACtB0f,EAAa,EAIbA,EAAa,EAGjB,IAAIC,EAAYr7R,EAAao7R,EACzBC,EAAYx9lC,KAAKoxmB,YACjBosf,EAAYx9lC,KAAKoxmB,WAErB,IAAK,IAAIjlmB,EAAIg2zB,EAAa,EAAGh2zB,GAAKqxlC,EAAWrxlC,KAC9B,IAAPA,GACAnM,KAAK00lC,kBAAkBvolC,GAG/B,IAAIy/hC,EAAiBzpO,EAAa,EAC9BypO,EAAiB,IACjBA,EAAiB,GAErB,IAASz/hC,EAAIg2zB,EAAa,EAAGh2zB,GAAKy/hC,EAAgBz/hC,KACnC,IAAPA,GACAnM,KAAK00lC,kBAAkBvolC,GAG/B,IAAK,IAAI6D,EAAI,EAAGA,EAAIhQ,KAAKoxmB,UAAWphmB,IAChC,KAAO47hC,GAAkB57hC,GAAOA,GAAKwtlC,GAAa,CAC9C,IAmBQC,EAnBJh0D,EAAUzpiC,KAAKgnS,WAAW,YAAch3R,GACxC0tlC,EAAa19lC,KAAKgnS,WAAW,eAAiBh3R,GAC9C05hC,EAAY1piC,KAAKgnS,WAAW,cAAgBh3R,GAC5C2tlC,EAAqB39lC,KAAKipiC,UAAUsrD,mBAAqBv0lC,KAAK6hlC,gBAAmB7hlC,KAAKipiC,UAAUsrD,oBAAsBv0lC,KAAKoxmB,UAAcpxmB,KAAKipiC,UAAUsrD,mBAAqB,EAAKv0lC,KAAKoxmB,WAAa,EACxM,GAAIssf,GAAc1tlC,EAAI2tlC,EAClBD,EAAWlpkC,WAAWW,YAAYuokC,GAC9Bh0D,IACI1piC,KAAKipiC,UAAU0B,qBAAuD,IAAhCjB,EAAUvggC,WAAW/lC,SAAiBpD,KAAK6qiC,yBACjF7qiC,KAAKipiC,UAAU0B,oBAAoBizD,0BAA0B5tlC,GAAG,GAEpE05hC,EAAUl1gC,WAAWW,YAAYu0gC,KAGf,KADlB+zD,EAAez9lC,KAAKy9kC,kBAAkB9ykC,QAAQqF,KAE9ChQ,KAAKy9kC,kBAAkBjojC,OAAOiokC,EAAc,GAGpD,GAAIh0D,GAAWz5hC,EAAI2tlC,EACfl0D,EAAQj1gC,WAAWW,YAAYs0gC,IAET,KADlBg0D,EAAez9lC,KAAKy9kC,kBAAkB9ykC,QAAQqF,KAE9ChQ,KAAKy9kC,kBAAkBjojC,OAAOiokC,EAAc,EAGxD,CAEA3wxB,MACA9sU,KAAKipiC,UAAU8E,gBAAgB13oB,kBAAkB,0BAA2Br2Z,KAAK6riC,kBACzF,EACAwxC,EAAc1skC,UAAU+jlC,kBAAoB,SAAUvolC,GAClD,IAAIs9hC,EAAUzpiC,KAAKgnS,WAAW,YAAc76R,GAE9B,MADDnM,KAAKgnS,WAAW,eAAiB76R,IACb,MAAXs9hC,GAAmBt9hC,EAAInM,KAAK+1a,SAAS3ya,QAEvDpD,KAAKo9lC,oBAAoBjxlC,EAAGnM,KAAKq9lC,aAAalxlC,GAAInM,KAAK+tlC,cAAc5hlC,GAAInM,KAAKgulC,WAAW7hlC,GAEjG,EACAkxkC,EAAc1skC,UAAU2slC,qBAAuB,WAC3C,OAAO3h6B,IAAU37L,UAAM,OAAQ,GAAQ,WACnC,IAAIgmM,EACA1mM,EAAQU,KACZ,OAAO4pU,IAAY5pU,MAAM,SAAUs1C,GAK/B,OAJA0wJ,EAAQhmM,KACRo2B,YAAW,WACP92B,EAAMu+lC,6BAA6B735B,EACvC,GAAG,KACI,CAAC,EACZ,GACJ,GACJ,EAEAq34B,EAAc1skC,UAAUktlC,6BAA+B,SAAU735B,GAC7D,IAAI023B,EAAa,CAAE+mB,OAAQz94B,EAAMy94B,OAAQqa,+BAA+B,EAAM5ohC,OAAQ,cAAeirX,UAAWn6P,EAAMij2B,UAAU9zhC,QAAQghB,GAAI44D,SAAUi3G,EAAMo92B,WAAYt45B,SAAUk7C,EAAMm23B,cACpLn23B,EAAMqr5B,iBAEN30B,EAAWtZ,WAAap92B,EAAMqr5B,gBAElCrxlC,KAAKu3lC,0BAA4B,IAAIz7B,IAAY97jC,KAAKipiC,WACtDjpiC,KAAKu3lC,0BAA0Bto+B,IAAM+2E,EAAMij2B,UAAUy6C,WAAa,IAAM194B,EAAMij2B,UAAUwoD,qBAAqBhhgC,KAC7GzwF,KAAKu3lC,0BAA0BrmR,aAAe,OAC9Clx0B,KAAKu3lC,0BAA0BhniC,MAAO,EACtCvwD,KAAKu3lC,0BAA0Bph3B,KAAKum1B,GAEpC18jC,KAAKu3lC,0BAA0BhywB,UAAY,SAAU16T,GAEjD,IAAIqf,EAAOrf,EAAOqf,KAClB,GAAIA,GACoB,kBAATA,EACP,IACIA,EAAOuG,KAAKuL,MAAM9R,EACtB,CACA,MAAOjzB,IACH+uL,EAAMwr5B,eAAe,IAAKtnjC,EAAM,cACpC,CAGR,GAAIA,EAAM,CACN,KAAuB,kBAATA,GACVA,EAAOuG,KAAKuL,MAAM9R,GAEtB,GAAI87J,EAAMo92B,aAAel5gC,EAAK6kD,SAAU,CACpCi3G,EAAMij2B,UAAU0oD,uBAAuB,cAAeznjC,GAEtD,IAAI6yjC,EAAa7yjC,EACjB,GAAI87J,EAAM+vO,SAAS/vO,EAAM834B,UAAY,GAAI,CAErC,IADA,IAAIxwjB,EAAWtnV,EAAM+vO,SAAS/vO,EAAM834B,UAAY,GAAG5v7B,IAC1CojS,EAAMtrP,EAAM834B,UAAWxspB,EAAMtrP,EAAMora,UAAW9/K,IACnD,GAAoE,kBAAxDyrqB,EAAWrie,UAAUnumB,SAAS+ka,EAAIx6a,WAAY,KAAoB,CAC1E,IAAIi/Z,EAAWgnrB,EAAWrie,UAAUnumB,SAAS+ka,EAAIx6a,WAAY,KAAK6b,MAAM,KACxE,GAAgC,OAA5BqzK,EAAM+vO,SAASub,EAAM,IAAuB,IAARA,EAAW,CAC/C,IAAI6rqB,EAAqBn35B,EAAM+vO,SAASub,EAAM,GAAG1oS,OACjD0kY,EAAWtnV,EAAM034B,QAAUhtiC,WAAWysjC,GAAsB7vkB,CAChE,CACA,IAAIj3gB,EAAO,CAAEmI,MAAOkyB,WAAWqlY,EAAS,IAAKntR,OAAQl4G,WAAWqlY,EAAS,IAAK7nR,IAAKo/X,GACnFtnV,EAAM+vO,SAAS3pa,KAAKiK,EACxB,KACK,CACD,GAAgC,OAA5B2vL,EAAM+vO,SAASub,EAAM,IAAuB,IAARA,EAAW,CAC3C6rqB,EAAqBn35B,EAAM+vO,SAASub,EAAM,GAAG1oS,OACjD0kY,EAAWtnV,EAAM034B,QAAUhtiC,WAAWysjC,GAAsB7vkB,CAChE,CACIj3gB,EAAO,CAAEmI,MAAOkyB,WAAWqsjC,EAAWrie,UAAUnumB,SAAS+ka,EAAIx6a,WAAY,KAAKuqtB,OAAQz4kB,OAAQl4G,WAAWqsjC,EAAWrie,UAAUnumB,SAAS+ka,EAAIx6a,WAAY,KAAKwqtB,QAASpzkB,IAAKo/X,GAC9KtnV,EAAM+vO,SAAS3pa,KAAKiK,EACxB,CAGJ2vL,EAAMwz2B,cAAcrziC,MAAMyiJ,OAASo9C,EAAMgo5B,WAAWho5B,EAAM+vO,SAAS3ya,OAAS,GAAK4iM,EAAM+n5B,cAAc/n5B,EAAM+vO,SAAS3ya,OAAS,GAAK,KAElI,IAAIm9tB,EAAWvvsB,OAAOor0B,eAAe3woB,QAAQzlB,EAAMo92B,WAAa,aAChE,GAAIp92B,EAAMora,UAAY,IAAK,CACvB,GAAIpxmB,KAAKipiC,UAAUsrD,mBAAqB,IAEpC,IADA,IAAIppiC,EAAQnrD,KAAKipiC,UAAUsrD,oBAAsBvu5B,EAAMora,UAAYpxmB,KAAKipiC,UAAUsrD,mBAAqBvu5B,EAAMora,UACpGjlmB,EAAI,IAAKA,EAAIg/C,EAAOh/C,IACzB65L,EAAMo35B,oBAAoBjxlC,EAAG65L,EAAMq35B,aAAalxlC,GAAI65L,EAAM+n5B,cAAc5hlC,GAAI65L,EAAMgo5B,WAAW7hlC,IAC7F65L,EAAMqu5B,uBAAuBlolC,GAGrC65L,EAAMij2B,UAAU80D,iBAAiBx9X,GACjC,IAAIy9X,EAAuBh45B,EAAMij2B,UAAU+0D,qBACvCA,GAAwBA,EAAqBC,gBAAkBD,EAAqBC,eAAe76lC,OAAS,GAAK46lC,EAAqBE,SAAS96lC,OAAS,GACxJ46lC,EAAqBG,mBAAmBH,EAAqBC,eAAgBD,EAAqBE,SAAUF,EAAqBI,YAAap45B,EAAM6l2B,kBAAoB,EAEhL,CACJ,CACJ,CACJ,CACJ,EAEA7riC,KAAKu3lC,0BAA0B9xwB,UAAY,SAAU56T,GACjDm7K,EAAMij2B,UAAUqzB,sBAAsBzxiC,EAAO4rH,OAAQ5rH,EAAO+6T,WAChE,EAEA5lV,KAAKu3lC,0BAA0Btg9B,QAAU,SAAUpsH,GAC/Cm7K,EAAMus5B,wBACNvs5B,EAAMij2B,UAAUqzB,sBAAsBzxiC,EAAO4rH,OAAQ5rH,EAAO+6T,WAChE,CACJ,EAEAy3vB,EAAc1skC,UAAU0tlC,eAAiB,SAAUn0jC,EAAM4rY,GACrD,IACI9vO,EADA1mM,EAAQU,KAGZ,GADAgmM,EAAQhmM,KACJkqC,GAAQlqC,KAAK+1a,SAASxpZ,SAASupZ,EAAUh/Z,WAAY,KAAM,CAC3D,IAAI0yhC,EAAYxpiC,KAAKq9lC,aAAavnrB,GAC9B0kW,EAAax6wB,KAAK+tlC,cAAcj4qB,GAEhCworB,EAAWt+lC,KAAKgnS,WAAW,eAAiB8uI,GAC5CyorB,EAAYv+lC,KAAKgnS,WAAW,YAAc8uI,GAC1C0orB,EAAQt0jC,EAAKs0jC,MAAQt0jC,EAAKs0jC,MAAQ,EAClCC,EAAQv0jC,EAAKu0jC,MAAQv0jC,EAAKu0jC,MAAQ,EAClCF,IACAA,EAAUp4lC,MAAMqY,MAAQgrhC,EAAY,KACpC+0D,EAAUp4lC,MAAMyiJ,OAAS4xnB,EAAa,KACtC+jV,EAAUp4lC,MAAM8gjB,WAAa,OAC7Bs3iB,EAAUp4lC,MAAM+nJ,IAAMluJ,KAAKgulC,WAAWl4qB,GAAa,KAC/C91a,KAAKipiC,UAAU5wsB,UACfkmwB,EAAUp4lC,MAAMy9H,MAAQ5jI,KAAK0+lC,mBAAmB5orB,GAAa,KAG7DyorB,EAAUp4lC,MAAMw9H,KAAO3jI,KAAK0+lC,mBAAmB5orB,GAAa,MAGhEworB,IACAA,EAASn4lC,MAAM8gjB,WAAa,QAEhC,IAAI0hM,EAAYz+sB,EAAY,MACxB622B,EAAa/g5B,KAAK2+lC,4BACtB,GAAI3+lC,KAAKs9kC,mBAAoB,CACrBpziC,EAAK622B,aACLA,EAAa722B,EAAK622B,YAEtB,IAAI69M,EAAgB5+lC,KAAKojjC,WAAa,IAAMttoB,EAAY,IAAMire,EAAa,IAAM722B,EAAKs0jC,MAAQ,IAAMt0jC,EAAKu0jC,MAEzGz+lC,KAAK0hlC,iBAAiBt1kC,KAAKwylC,GAE3B,IAAIv2d,EAASn+lB,EAA2B,qBAEpC1rB,EAAQ0rB,EAAY,MACxB,GAAIy+sB,EAAW,CACX,IAAIk2W,EAAU30jC,EAAKs0jC,MAAQt0jC,EAAKs0jC,MAAQ,EACpCM,EAAU50jC,EAAKu0jC,MAAQv0jC,EAAKu0jC,MAAQ,EACpC/izB,EAAgBqwB,GAAkB7hS,EAAKwxQ,aAAmC,IAAnBxxQ,EAAKwxQ,YAC5Dy/vB,EAAUjqhC,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,YAAc2/Y,EAAY,IAAM91a,KAAKwqiC,gBAAkB,IAAMq0D,EAAU,IAAMC,GAC1I3jD,KACDA,EAAU,IAAIr8kB,OACN3oc,GAAKn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,YAAc2/Y,EAAY,IAAM91a,KAAKwqiC,gBAAkB,IAAMq0D,EAAU,IAAMC,EAClHP,GACAA,EAAUvr+B,OAAOmo7B,IAGzBA,EAAQz24B,IAAMiklB,EACdwyT,EAAQnmhC,aAAa,MAAO,IAC5BmmhC,EAAQx73B,OAAS,WAGb,GAFAqmB,EAAMoo5B,yBAAyBt4qB,GAAW,GAC1C9vO,EAAMq74B,gBAAkBr74B,EAAMq74B,gBAAkB,EAC/B,IAAZwd,GAA+B,IAAZC,GACF,IAAdhprB,GAAmBx2a,EAAMk+kC,iBAAkB,CAC3Cx34B,EAAM+45B,wBACN/45B,EAAMw54B,iBAAkB,EAExB,IAAIj/W,EAAWvvsB,OAAOor0B,eAAe3woB,QAAQzlB,EAAMo92B,WAAa,aAC5Dp92B,EAAMora,WAAa,KACnBpra,EAAMij2B,UAAU80D,iBAAiBx9X,GAErCv6hB,EAAMw34B,kBAAmB,EACrBx34B,EAAMij2B,UAAU+B,YAAchl2B,EAAMij2B,UAAU+1D,eAC9Ch55B,EAAMij2B,UAAUyE,iBAAiBuxD,qBAEzC,CAEJ,GAAIj55B,EAAMq74B,kBAAoBr74B,EAAMs74B,iBAAkB,CAC9Ct74B,EAAM6/4B,gCACN7/4B,EAAMij2B,UAAUgb,iBAAiBsE,2BAA2B22C,oBAAoBpprB,GAEhFworB,IACAA,EAASn4lC,MAAMi+J,QAAU,OACzBk67B,EAAS557B,IAAM,KAGnB,IADA,IAAIy67B,EAAajukC,SAAS1gB,iBAAiB,YAAcw1L,EAAMij2B,UAAU9zhC,QAAQghB,GAAK,gBAC7EhqB,EAAI,EAAGA,EAAIgzlC,EAAW/7lC,OAAQ+I,IACnCoylC,EAAUppkC,YAAYgqkC,EAAW5ykC,SAASpgB,EAAE2K,WAAY,MAE5DkvL,EAAMu74B,qBAAsB,EAC5Bv74B,EAAMq74B,gBAAkB,EACpBr74B,EAAMij2B,UAAUwE,qBAChBzn2B,EAAMij2B,UAAUwE,oBAAoB2xD,yBAExCp55B,EAAMo84B,mBAAoB,CAC9B,CACAjnC,EAAQnmhC,aAAa,MAAO,SAAW8gZ,EAAY,GACvD,EACA,IAAIuprB,EAAuB7glC,EAAQxe,KAAKwqiC,gBAAmBzpJ,EAAcrlmB,EACrE4jzB,EAAiBj3d,EAAOk3d,SAAWl3d,EAAOk3d,SAAWl3d,EAAOm3d,OAC5DC,EAAqBH,EAAe,GAAKt/lC,KAAKwqiC,gBAAmBzpJ,EAAcrlmB,EAC/EgkzB,EAAsBJ,EAAe,GAAKt/lC,KAAKwqiC,gBAAmBzpJ,EAAcrlmB,EACpFy/vB,EAAQ38hC,MAAQ6glC,EAChBlkD,EAAQh1iC,MAAMqY,MAAQ6glC,EAAoB,KAC1ClkD,EAAQh1iC,MAAM+nJ,IAAMux8B,EAAkB,KACtCtkD,EAAQh1iC,MAAMw9H,KAAO+79B,EAAmB,KACxCvkD,EAAQh1iC,MAAM+jF,SAAW,UAC7B,CACe,IAAVs0gC,GAA2B,IAAVC,GAClBz+lC,KAAK2/lC,aAAaz1jC,EAAM4rY,EAAWyorB,EAE3C,KACK,CAwDD,IAvDA,IAAIqB,EAAc1ukC,SAAS1gB,iBAAiB,YAAcw1L,EAAMij2B,UAAU9zhC,QAAQghB,GAAK,YAAc2/Y,EAAY,OAC7GrpG,EAAU,SAAUptS,GACpB,IAAIwgkC,EAAYD,EAAYrzkC,SAAS8S,EAAEvoB,WAAY,KAAKqf,GAAGxD,MAAM,KAC7DmtkC,EAAe955B,EAAM245B,4BAErBoB,EAAWtvjC,KAAKuL,MAAMgqJ,EAAMg65B,4BAA4BlqrB,EAAWplY,WAAWmvjC,EAAUA,EAAUz8lC,OAAS,IAAKstC,WAAWmvjC,EAAUA,EAAUz8lC,OAAS,IAAK08lC,IAIjK,GAHIC,GAAYA,EAASh/M,aACrB++M,EAAeC,EAASh/M,YAExBrw2B,WAAWmvjC,EAAUA,EAAUz8lC,OAAS,MAAQ0ya,EAAW,CAC3D,IAAImqrB,EAASL,EAAYrzkC,SAAS8S,EAAEvoB,WAAY,KAE5CmplC,EAAOx9jC,UAAYlP,KAAK2G,eACxB+lkC,EAAOtg7B,OAAS,WAGZ,GAFAqmB,EAAMoo5B,yBAAyBt4qB,GAAW,GAC1C9vO,EAAMq74B,gBAAkBr74B,EAAMq74B,gBAAkB,EAC/B,IAAZ6e,GAA+B,IAAZC,GACF,IAAdrqrB,GAAmBx2a,EAAMk+kC,iBAAkB,CAC3Cl+kC,EAAMy/lC,wBACNz/lC,EAAMkglC,iBAAkB,EAExB,IAAIj/W,EAAWvvsB,OAAOor0B,eAAe3woB,QAAQzlB,EAAMo92B,WAAa,aAC5Dp92B,EAAMora,WAAa,KACnBpra,EAAMij2B,UAAU80D,iBAAiBx9X,GAErCv6hB,EAAMw34B,kBAAmB,EACrBx34B,EAAMij2B,UAAU+B,YAAchl2B,EAAMij2B,UAAU+1D,eAC9Ch55B,EAAMij2B,UAAUyE,iBAAiBuxD,qBAEzC,CAEJ,GAAIj55B,EAAMq74B,kBAAoBr74B,EAAMs74B,iBAAkB,CAClDgd,EAASn4lC,MAAMi+J,QAAU,OACzBk67B,EAAS557B,IAAM,IACXshC,EAAM6/4B,gCACN7/4B,EAAMij2B,UAAUgb,iBAAiBsE,2BAA2B22C,oBAAoBpprB,GAGpF,IADA,IAAIqprB,EAAajukC,SAAS1gB,iBAAiB,YAAcw1L,EAAMij2B,UAAU9zhC,QAAQghB,GAAK,gBAC7EhqB,EAAI,EAAGA,EAAIgzlC,EAAW/7lC,OAAQ+I,IACnCoylC,EAAUppkC,YAAYgqkC,EAAW5ykC,SAASpgB,EAAE2K,WAAY,MAE5DkvL,EAAMu74B,qBAAsB,EAC5Bv74B,EAAMq74B,gBAAkB,EACpBr74B,EAAMij2B,UAAUwE,qBAChBzn2B,EAAMij2B,UAAUwE,oBAAoB2xD,yBAExCp55B,EAAMo84B,mBAAoB,CAC9B,CACA6d,EAAOjrkC,aAAa,MAAO,SAAW8gZ,EAAY,GACtD,EACIiqrB,IACAE,EAAOv77B,IAAMq77B,EAASz0qB,OAElC,CACJ,EACSjsZ,EAAI,EAAGA,EAAIugkC,EAAYx8lC,OAAQi8B,IACpCotS,EAAQptS,GAEZ,IAAI6gkC,EAAUh2jC,EAAKs0jC,MAAQt0jC,EAAKs0jC,MAAQ,EACpC2B,EAAUj2jC,EAAKu0jC,MAAQv0jC,EAAKu0jC,MAAQ,EACvB,IAAZyB,GAA+B,IAAZC,GACpBngmC,KAAK2/lC,aAAaz1jC,EAAM4rY,EAAWyorB,EAE3C,CACJ,CACJ,EACAlhB,EAAc1skC,UAAUyvlC,iBAAmB,SAAU52D,EAAWhvR,EAAY1kW,EAAW2znB,EAAS1oJ,EAAYrlmB,GACxG,IAAIgizB,EAAa19lC,KAAKgnS,WAAW,mBAAqB8uI,GAatD,OAZK4nrB,KACDA,EAAa58lC,GAAc,SAAU,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,mBAAqB2/Y,EAAW/0a,UAAW,0BACvGoF,MAAMqY,MAAQgrhC,EAAY,KACrCk0D,EAAWv3lC,MAAMyiJ,OAAS4xnB,EAAa,KACvCkjV,EAAWv3lC,MAAMi+J,QAAU,OAC3Bs57B,EAAWv3lC,MAAMy3d,gBAAkB,OAC/B59d,KAAKkglC,qBAAuBlglC,KAAKmglC,aAAe,IAChDud,EAAWv3lC,MAAMsvR,WAAa,OAC9Bio0B,EAAWv3lC,MAAMgxR,YAAc,QAEnCsywB,EAAQ/3gC,YAAYgskC,IAEjBA,CACX,EACArgB,EAAc1skC,UAAU0vlC,oBAAsB,SAAU72D,EAAWzoJ,EAAYrlmB,EAAaynf,GACxF,IAAI3kxB,EAASgrhC,EAAYxpiC,KAAKwqiC,gBAAmBzpJ,EAAarlmB,EAM9D,OAJKnvR,SAAS42wB,EAAWrsxB,cAAkByV,SAAS/N,EAAM1H,cACtDqsxB,EAAa3kxB,GAEjB2kxB,EAAeA,EAAanjyB,KAAKwqiC,gBAAmBzpJ,CAExD,EAEAs8L,EAAc1skC,UAAU2vlC,WAAa,SAAUp2jC,EAAM4rY,EAAWyqrB,GAC5D,IAAIjhmC,EAAQU,KACRgmM,EAAQhmM,KACZ,GAAIkqC,GAAQlqC,KAAK+1a,SAASxpZ,SAASupZ,EAAUh/Z,WAAY,KAAM,CAC3D,IAAI0yhC,EAAYxpiC,KAAKq9lC,aAAavnrB,GAC9B0kW,EAAax6wB,KAAK+tlC,cAAcj4qB,GAEhC0qrB,EAAWxgmC,KAAKgnS,WAAW,eAAiB8uI,GAC5C2qrB,EAAYzgmC,KAAKgnS,WAAW,YAAc8uI,GAY9C,GAXI2qrB,IACAA,EAAUt6lC,MAAMqY,MAAQgrhC,EAAY,KACpCi3D,EAAUt6lC,MAAMyiJ,OAAS4xnB,EAAa,KACtCimV,EAAUt6lC,MAAM+nJ,IAAMluJ,KAAKgulC,WAAWl4qB,GAAa,KAC/C91a,KAAKipiC,UAAU5wsB,UACfoowB,EAAUt6lC,MAAMy9H,MAAQ5jI,KAAK0+lC,mBAAmB5orB,GAAa,KAG7D2qrB,EAAUt6lC,MAAMw9H,KAAO3jI,KAAK0+lC,mBAAmB5orB,GAAa,MAGhE0qrB,EAAU,CACVA,EAASr6lC,MAAM8gjB,WAAa,OAC5Bu5iB,EAASr6lC,MAAMi+J,QAAU,QACzBo87B,EAASr6lC,MAAMqY,MAAQgrhC,EAAY,KACnCg3D,EAASr6lC,MAAMyiJ,OAAS4xnB,EAAa,KACjCgvR,EAAY94/B,WAAW+vjC,EAAUt6lC,MAAMqY,SACvCiilC,EAAUt6lC,MAAMu6lC,UAAY,QAGhC,IAAI/3W,EAAY3ovB,KAAK4hlC,sBAAwB2e,EAAcr2jC,EAAY,MACnEy+sB,IACA63W,EAAS7g7B,OAAS,WAGd,IAFA,IAAIig7B,EAAc1ukC,SAAS1gB,iBAAiB,YAAcw1L,EAAMij2B,UAAU9zhC,QAAQghB,GAAK,YAAc2/Y,EAAY,OAC7G4nrB,EAAa135B,EAAMghG,WAAW,YAAc8uI,GACvC3pa,EAAI,EAAGA,EAAIyzlC,EAAYx8lC,OAAQ+I,IAAK,CACzC,IAAI0zlC,EAAYD,EAAYrzkC,SAASpgB,EAAE2K,WAAY,KAAKqf,GAAGxD,MAAM,KAC7D+d,WAAWmvjC,EAAUA,EAAUz8lC,OAAS,KAAO4iM,EAAMwk2B,iBACrDkzD,EAAWvokC,YAAYyqkC,EAAYrzkC,SAASpgB,EAAE2K,WAAY,KAClE,CACA,IAAIqolC,EAAajukC,SAAS1gB,iBAAiB,YAAcw1L,EAAMij2B,UAAU9zhC,QAAQghB,GAAK,gBACtF,IAAShqB,EAAI,EAAGA,EAAIgzlC,EAAW/7lC,OAAQ+I,IACnCs0lC,EAAUtrkC,YAAYgqkC,EAAW5ykC,SAASpgB,EAAE2K,WAAY,MAM5D,GAJIxX,EAAM2piC,UAAUwE,qBAChBnuiC,EAAM2piC,UAAUwE,oBAAoB2xD,yBAExC9/lC,EAAM8ulC,yBAAyBt4qB,GAAW,GACxB,IAAdA,GAAmBx2a,EAAMk+kC,iBAAkB,CAC3Cl+kC,EAAMy/lC,wBACNz/lC,EAAMkglC,iBAAkB,EAExB,IAAIj/W,EAAWvvsB,OAAOor0B,eAAe3woB,QAAQnsN,EAAM8jjC,WAAa,aAC5D9jjC,EAAM8xmB,WAAa,KACnB9xmB,EAAM2piC,UAAU80D,iBAAiBx9X,GAErCjhuB,EAAMk+kC,kBAAmB,EACrBl+kC,EAAM2piC,UAAU+B,YAAc1riC,EAAM2piC,UAAU+1D,eAC9C1/lC,EAAM2piC,UAAUyE,iBAAiBuxD,qBAEzC,CACI3/lC,EAAM2piC,UAAUwE,qBAChBnuiC,EAAM2piC,UAAUwE,oBAAoBkzD,iBAAiBH,GAEzDA,EAASxrkC,aAAa,MAAO,SAAW8gZ,EAAY,GACxD,EACA0qrB,EAAS977B,IAAMiklB,GAEnB3ovB,KAAK2/lC,aAAaz1jC,EAAM4rY,EAAW2qrB,EACvC,CACJ,CACJ,EAEApjB,EAAc1skC,UAAUgvlC,aAAe,SAAUz1jC,EAAM4rY,EAAW2znB,GAE9D,IAAIm3D,EAAWn3D,GAAWA,EAAQ9zgC,qBAAqB,KACnDkrkC,GAAuB,EAC3B,GAAID,GAAgC,IAApBA,EAASx9lC,OACrB,IAAK,IAAIqpB,EAAQm0kC,EAASx9lC,OAAS,EAAGqpB,GAAS,EAAGA,IAC9Cm0kC,EAASr0kC,SAASE,EAAM3V,WAAY,KAAK0d,WAAWW,YAAYyrkC,EAASr0kC,SAASE,EAAM3V,WAAY,MAmC5G,IAhCI9W,KAAKipiC,UAAUyE,kBAAoB1tiC,KAAKipiC,UAAU0B,qBAAuB3qiC,KAAKipiC,UAAUgb,mBACxFjkjC,KAAK8gmC,kBAAkB52jC,EAAM4rY,IAE7B91a,KAAKipiC,UAAUsR,kBAAsBv6iC,KAAKipiC,UAAUwE,qBAAsBztiC,KAAKipiC,UAAUwE,oBAAoBszD,uBAC7G/gmC,KAAKipiC,UAAUsR,iBAAiBymD,iBAAiBlrrB,GAAW,GAE5D91a,KAAKipiC,UAAUg4D,yBAA2BjhmC,KAAKipiC,UAAUmG,yBAA2BpviC,KAAKqviC,cACrFrviC,KAAKijlC,4BAA4BntqB,EAAUh/Z,YAC3C9W,KAAKsviC,wBAAwBx5nB,EAAW91a,KAAKijlC,4BAA4BntqB,EAAUh/Z,cAEb,IAAjE9W,KAAKkjlC,oCAAoCv4kC,QAAQmra,IACtD91a,KAAKkhmC,kCAAkCprrB,IAG3C91a,KAAKipiC,UAAUyiC,qBAAuB1rkC,KAAKw9kC,kBAC3Cx9kC,KAAKipiC,UAAUyiC,mBAAmBy1B,mBAAmBrrrB,IAErD91a,KAAKipiC,UAAUsR,kBAAqBv6iC,KAAKw9kC,kBAAqBx9kC,KAAKipiC,UAAUyiC,oBAC7E1rkC,KAAKipiC,UAAUsR,iBAAiBymD,iBAAiBlrrB,GAAW,GAE5D91a,KAAKipiC,UAAUyiC,oBAAsB1rkC,KAAKw9kC,oBAAqBx9kC,KAAKipiC,UAAUwE,qBAAsBztiC,KAAKipiC,UAAUwE,oBAAoBszD,yBACvI/gmC,KAAKipiC,UAAUsR,iBAAiBymD,iBAAiBlrrB,GAAW,GACxD91a,KAAKipiC,UAAUwE,sBACfztiC,KAAKipiC,UAAUwE,oBAAoBszD,uBAAwB,IAG/D/gmC,KAAKipiC,UAAUm4D,iBAAmBphmC,KAAKipiC,UAAU+0D,sBACjDh+lC,KAAKipiC,UAAU+0D,qBAAqBqD,uBAAuBn3jC,EAAM4rY,GAEjE91a,KAAKipiC,UAAU0B,sBAAwB3qiC,KAAK6qiC,yBAC5C7qiC,KAAKipiC,UAAU0B,oBAAoB22D,4BAA4BxrrB,GAE/D91a,KAAK2glC,8BAA+B,CAEpC,IADA,IAAI97B,GAAoB,EACf14iC,EAAI,EAAGA,EAAInM,KAAK4glC,wBAAwBx9kC,OAAQ+I,IACjDnM,KAAK4glC,wBAAwBr0jC,SAASpgB,EAAE2K,WAAY,OAASg/Z,IAC7D+uoB,GAAoB,GAI5B,IAAI4B,KAAkBzmjC,KAAK2glC,8BAA8B7qqB,MACjC+uoB,IACpB36gC,EAAKi8gC,gBAAkBM,EAAgBN,gBACvCj8gC,EAAK6nhC,uBAAyBtL,EAAgBsL,uBAC9C7nhC,EAAK4nhC,qBAAuBrL,EAAgBqL,qBAC5C5nhC,EAAK8nhC,mBAAqBvL,EAAgBuL,mBAC1C9nhC,EAAK+nhC,iBAAmBxL,EAAgBwL,iBACxC/nhC,EAAKq3jC,sBAAwB96C,EAAgB86C,sBAC7Cr3jC,EAAKs3jC,oBAAsB/6C,EAAgB+6C,oBAC3Ct3jC,EAAKgohC,uBAAyBzL,EAAgByL,uBAC9ClyjC,KAAK4glC,wBAAwBx0kC,KAAK0pa,GAE1C,CACI91a,KAAK2/kC,kBAEDl5B,EAAkBzmjC,KAAKyhmC,4BAA4B3rrB,MAEnD5rY,EAAKi8gC,gBAAkBM,EAAgBN,gBACvCj8gC,EAAK6nhC,uBAAyBtL,EAAgBsL,uBAC9C7nhC,EAAK4nhC,qBAAuBrL,EAAgBqL,qBAC5C5nhC,EAAK8nhC,mBAAqBvL,EAAgBuL,mBAC1C9nhC,EAAK+nhC,iBAAmBxL,EAAgBwL,iBACxC/nhC,EAAKq3jC,sBAAwB96C,EAAgB86C,sBAC7Cr3jC,EAAKgohC,uBAAyBzL,EAAgByL,uBAC9C2uC,GAAuB,IAG/B,GAAI7gmC,KAAKipiC,UAAUgb,mBAAqBjkjC,KAAK6llC,gCAAkC7llC,KAAK8ojC,kCAAmC,CACnH,GAAI9ojC,KAAK0hmC,0BAA2B,CAEhC,IAAIC,EAAYz3jC,EAAuB,iBACnC22jC,EAEA7gmC,KAAKipiC,UAAUgb,iBAAiB8oB,sBAAsB60B,uBAAuBD,EAAW7rrB,EAAW,MAAM,GAIzG91a,KAAKipiC,UAAUgb,iBAAiB8oB,sBAAsB60B,uBAAuBD,EAAW7rrB,EAEhG,CACI+qrB,EAEA7gmC,KAAKipiC,UAAUgb,iBAAiBhqG,kBAAkBnkiB,EAAW5rY,EAAKi8gC,gBAAiBj8gC,EAAK6nhC,uBAAwB7nhC,EAAK4nhC,qBAAsB,MAAM,GAIjJ9xjC,KAAKipiC,UAAUgb,iBAAiBhqG,kBAAkBnkiB,EAAW5rY,EAAKi8gC,gBAAiBj8gC,EAAK6nhC,uBAAwB7nhC,EAAK4nhC,sBAEzH9xjC,KAAKipiC,UAAUgb,iBAAiBkR,4BAA4B0sC,6BAA6B33jC,EAAKq3jC,sBAAuBzrrB,EACzH,CASA,GARI91a,KAAKipiC,UAAUyiC,qBAAuB1rkC,KAAKipiC,UAAUgb,kBACrDjkjC,KAAKipiC,UAAUyiC,mBAAmBroK,aAAavtf,GAE/C91a,KAAKipiC,UAAUyE,kBACX1tiC,KAAKipiC,UAAUyE,iBAAiB3C,cAChC/qiC,KAAKipiC,UAAUyE,iBAAiBo0D,0BAA0BhsrB,GAG9D91a,KAAK8ojC,iCAAkC,CACvC,IAAIsrB,EAAUp0kC,KAAKgnS,WAAW,qBAAuB8uI,GAErD,GAAIs+pB,EAEA+B,IADa/B,EAAQ3/yB,wBAFP,sFAG0B2/yB,EAASt+pB,EAAW91a,KAAKipiC,WACjEjpiC,KAAKipiC,UAAUyjC,eAAe52pB,EAAW91a,KAAKipiC,UAAUqiC,2BAEhE,CACItrkC,KAAKipiC,UAAUgb,kBACfjkjC,KAAKipiC,UAAUgb,iBAAiBkR,4BAA4B4sC,yBAAyBjsrB,GAErF91a,KAAKinlC,8BAAgC/8iC,EAAK8nhC,oBAGtChyjC,KAAKipiC,UAAUgb,iBAAiByE,yBAAyBs5C,0BAA0B93jC,EAAK8nhC,mBAAoBl8oB,GAMhH91a,KAAKiimC,yBAA2B/3jC,GAAQA,EAAKgohC,wBAE7ClyjC,KAAKipiC,UAAUgb,iBAAiB2Q,oBAAoBstC,2BAA2Bh4jC,EAAKgohC,uBAAwBp8oB,EAAW+qrB,GAEvH32jC,GAAQA,EAAKs3jC,qBAAuBxhmC,KAAKy9iC,iBACzCz9iC,KAAKy9iC,gBAAgBkH,wBAAwBz6gC,EAAKs3jC,oBAAqB1rrB,GAAW,GAGlF91a,KAAKipiC,UAAUgb,kBAAoBjkjC,KAAKipiC,UAAUgb,iBAAiBk+C,sBAAwBnimC,KAAKipiC,UAAUgb,iBAAiBm+C,sBAAwBtsrB,GACnJ91a,KAAKipiC,UAAUgb,iBAAiBo+C,iCAEpCrimC,KAAKi+kC,wBAAyB,CAClC,EAMAZ,EAAc1skC,UAAUsp8B,kBAAoB,SAAUnkiB,EAAWwsrB,GAE7D,IAAIp4jC,EAAO,CAAC,EACZ,GAAIlqC,KAAK2glC,8BAA+B,CAEpC,IADA,IAAI97B,GAAoB,EACf14iC,EAAI,EAAGA,EAAInM,KAAK4glC,wBAAwBx9kC,OAAQ+I,IACjDnM,KAAK4glC,wBAAwBr0jC,SAASpgB,EAAE2K,WAAY,OAASg/Z,IAC7D+uoB,GAAoB,GAI5B,IAAI4B,EAAkBzmjC,KAAK2glC,8BAA8B7qqB,GACrD2woB,IAAoB5B,IACpB36gC,EAAKi8gC,gBAAkBM,EAAgBN,gBACvCj8gC,EAAK6nhC,uBAAyBtL,EAAgBsL,uBAC9C7nhC,EAAK4nhC,qBAAuBrL,EAAgBqL,qBAC5C5nhC,EAAK8nhC,mBAAqBvL,EAAgBuL,mBAC1C9nhC,EAAK+nhC,iBAAmBxL,EAAgBwL,iBACxC/nhC,EAAKq3jC,sBAAwB96C,EAAgB86C,sBAC7Cr3jC,EAAKs3jC,oBAAsB/6C,EAAgB+6C,oBAC3Ct3jC,EAAKgohC,uBAAyBzL,EAAgByL,uBAC9ClyjC,KAAK4glC,wBAAwBx0kC,KAAK0pa,GAE1C,CAUA,GATI91a,KAAK6/kC,gCACL31iC,EAAKi8gC,gBAAkB,GACvBj8gC,EAAK6nhC,uBAAyB,GAC9B7nhC,EAAK4nhC,qBAAuB,GAC5B5nhC,EAAK8nhC,mBAAqB,GAC1B9nhC,EAAK+nhC,iBAAmB,GACxB/nhC,EAAKq3jC,sBAAwB,GAC7Br3jC,EAAKgohC,uBAAyB,IAE9BlyjC,KAAK6llC,gCAAkC7llC,KAAK8ojC,iCAAkC,CAC9E,GAAI9ojC,KAAK0hmC,0BAA2B,CAEhC,IAAIC,EAAYz3jC,EAAuB,iBAEvClqC,KAAKipiC,UAAUgb,iBAAiB8oB,sBAAsB60B,uBAAuBD,EAAW7rrB,EAC5F,CAEA91a,KAAKipiC,UAAUgb,iBAAiBhqG,kBAAkBnkiB,EAAW5rY,EAAKi8gC,gBAAiBj8gC,EAAK6nhC,uBAAwB7nhC,EAAK4nhC,sBACrH9xjC,KAAKipiC,UAAUgb,iBAAiBkR,4BAA4B0sC,6BAA6B33jC,EAAKq3jC,sBAAuBzrrB,EACzH,CAMA,GALI91a,KAAKipiC,UAAUyE,kBACX1tiC,KAAKipiC,UAAUyE,iBAAiB3C,cAChC/qiC,KAAKipiC,UAAUyE,iBAAiBo0D,0BAA0BhsrB,GAG9D91a,KAAK2/kC,eAAgB,CAErB,IADI96B,GAAoB,EACf14iC,EAAI,EAAGA,EAAInM,KAAKy/kC,mBAAmBr8kC,OAAQ+I,IAC5CnM,KAAKy/kC,mBAAmBlzjC,SAASpgB,EAAE2K,WAAY,OAASg/Z,IACxD+uoB,GAAoB,GAGvBA,GACG7kjC,KAAK62lC,qBACL72lC,KAAKuimC,oBAAoBvimC,KAAK62lC,mBAAoB/grB,GAAW,GAC7D91a,KAAKy/kC,mBAAmBz/kC,KAAKy/kC,mBAAmBr8kC,QAAU0ya,EAGtE,CACA,GAAI91a,KAAK8ojC,iCAAkC,CACvC,IAAIsrB,EAAUp0kC,KAAKgnS,WAAW,qBAAuB8uI,GAErD,GAAIs+pB,EAEA+B,IADa/B,EAAQ3/yB,wBAFP,sFAG0B2/yB,EAASt+pB,EAAW91a,KAAKipiC,WACjEjpiC,KAAKipiC,UAAUyjC,eAAe52pB,EAEtC,CACI91a,KAAKipiC,UAAUgb,kBACfjkjC,KAAKipiC,UAAUgb,iBAAiBkR,4BAA4B4sC,yBAAyBjsrB,GAErF91a,KAAKinlC,8BAAgC/8iC,EAAK8nhC,oBAC1ChyjC,KAAKipiC,UAAUgb,iBAAiByE,yBAAyBs5C,0BAA0B93jC,EAAK8nhC,mBAAoBl8oB,OAAWzya,GAEvH6mC,GAAQA,EAAKs3jC,qBACbxhmC,KAAKy9iC,gBAAgBkH,wBAAwBz6gC,EAAKs3jC,oBAAqB1rrB,GAAW,GAElF91a,KAAKiimC,yBAA2B/3jC,GAAQA,EAAKgohC,wBAC7ClyjC,KAAKipiC,UAAUgb,iBAAiB2Q,oBAAoBstC,2BAA2Bh4jC,EAAKgohC,uBAAwBp8oB,GAAW,GAEvH91a,KAAKipiC,UAAUgb,kBAAoBjkjC,KAAKipiC,UAAUgb,iBAAiBk+C,sBACnEnimC,KAAKipiC,UAAUgb,iBAAiBo+C,gCAExC,EAEAhlB,EAAc1skC,UAAUmwlC,kBAAoB,SAAU52jC,EAAM4rY,GAExD,IAAI0srB,EAAQt4jC,EAAkB,YAE1By6tB,EAASz6tB,EAAiB,WAE1BqoY,EAAWroY,EAAe,SAC1B6//B,EAAS7//B,EAAKu4jC,uBAAyBzimC,KAAKi7lC,eAAe/wjC,EAAKu4jC,uBAAuB,GAAGl2kC,SAASupZ,EAAUh/Z,WAAY,KAAK4rlC,UAAY1imC,KAAKi7lC,eAAe/wjC,EAAKy4jC,UACnKj5D,EAAY1piC,KAAKgnS,WAAW,cAAgB8uI,GAC3C4znB,IAEDA,EAAY1piC,KAAK0piC,UAAUH,aAAazznB,EAAW91a,KAAKq9lC,aAAavnrB,GAAY91a,KAAK+tlC,cAAcj4qB,GAAY91a,KAAKgnS,WAAW,YAAc8uI,KAE9I4znB,GAAa84D,GAAS79V,IACtB+kS,EAAUvjiC,MAAMi+J,QAAU,QACU,IAAhCsl4B,EAAUvggC,WAAW/lC,OACrBpD,KAAK0piC,UAAUE,mBAAmB9znB,EAAW0srB,EAAO79V,EAAQpyV,EAAUw3nB,GAGtE/piC,KAAK0piC,UAAUoB,mBAAmBh1nB,EAAW0srB,EAAO79V,EAAQpyV,GAAU,GAGlF,EACA8qqB,EAAc1skC,UAAU2+hC,wBAA0B,SAAUx5nB,EAAWs4nB,GACnEpuiC,KAAKivlC,kBAAkB3/C,wBAAwBx5nB,EAAWs4nB,EAC9D,EACAivC,EAAc1skC,UAAUiylC,mCAAqC,SAAU9srB,GACnE,IAAI+srB,EAAW,GACf,IAAK7imC,KAAKmjlC,oCACN,MAAO,CAACrtqB,GAIZ,IAFA,IAAIgtrB,EAAUhtrB,EAAY,EAAI,EAAIA,EAAY,EAAI,EAC9CimT,EAAUjmT,EAAY,EAAI91a,KAAKoxmB,UAAY,EAAIt7L,EAAY,EAAI91a,KAAKoxmB,UAAY,EAC3EjlmB,EAAI22lC,EAAS32lC,GAAK4vtB,EAAS5vtB,SACqC9I,IAAjErD,KAAKijlC,4BAA4B12jC,SAASpgB,EAAE2K,WAAY,KACxD+rlC,EAASz2lC,KAAKmgB,SAASpgB,EAAE2K,WAAY,KAGrCiltB,EAAUA,EAAU,EAAI/7tB,KAAKoxmB,UAAY,EAAI2qH,EAAU,EAAI/7tB,KAAKoxmB,UAAY,EAIpF,OADApxmB,KAAKkjlC,oCAAsC2f,EACpCA,CACX,EACAxlB,EAAc1skC,UAAUuwlC,kCAAoC,SAAUprrB,GAClE,IAAI4mpB,EACA123B,EAAQhmM,KACZ08jC,EAAa,CAAExn/B,OAAQ,sBAAuBirX,UAAWngc,KAAKipiC,UAAU9zhC,QAAQghB,GAAIstjC,OAAQzjlC,KAAKyjlC,OAAQ10/B,SAAU/uF,KAAKojjC,WAAYy/C,SAAUpyjC,KAAK+mF,UAAUx3H,KAAK4imC,mCAAmC9srB,KACjM91a,KAAKqxlC,iBACL30B,EAAWxriC,SAAWlxB,KAAKqxlC,gBAE/B,IAAIpi+B,EAAMjvH,KAAKipiC,UAAUy6C,WAAf1jlC,uBACVA,KAAKgjlC,yBAA2B,IAAIlnB,IAAY97jC,KAAKipiC,WACrDjpiC,KAAKgjlC,yBAAyB/z9B,IAAMA,EACpCjvH,KAAKgjlC,yBAAyBzyhC,MAAO,EACrCvwD,KAAKgjlC,yBAAyB9xQ,aAAe,OAC7Clx0B,KAAKgjlC,yBAAyB7s2B,KAAKum1B,GACnC18jC,KAAKgjlC,yBAAyBz9vB,UAAY,SAAU16T,GAGhD,IAFA,IACI01sB,EADAr2rB,EAAOuG,KAAKuL,MAAMnxB,EAAOqf,MAEpB/9B,EAAI,EAAGA,EAAI+9B,EAAK9mC,OAAQ+I,IAC7Bo0tB,EAAWr2rB,EAAK3d,SAASpgB,EAAE2K,WAAY,KACvCkvL,EAAMi94B,4BAA4B1iX,EAAS,IAAMA,EAAS,GAE9Dv6hB,EAAMk94B,oCAAsC,GACxCl94B,EAAMi94B,4BAA4B12jC,SAASupZ,EAAUh/Z,WAAY,MACjEkvL,EAAMsp2B,wBAAwBx5nB,EAAW9vO,EAAMi94B,4BAA4B12jC,SAASupZ,EAAUh/Z,WAAY,MAE1GkvL,EAAMi94B,4BAA4BntqB,EAAY,GAAK,EAAIvpZ,UAAUupZ,EAAY,GAAGh/Z,WAAY,IAAM,IAClGkvL,EAAMsp2B,wBAAwBx5nB,EAAY,GAAK,EAAIA,EAAY,EAAI,EAAG9vO,EAAMi94B,4BAA4BntqB,EAAY,GAAK,EAAIvpZ,UAAUupZ,EAAY,GAAGh/Z,WAAY,IAAM,GAEhL,CACJ,EACAumkC,EAAc1skC,UAAUyslC,oBAAsB,SAAUj7R,EAAYqnO,EAAWhvR,EAAYltP,GAEvF,IAAIm8gB,EAAU3oiC,GAAc,MAAO,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,YAAcgsyB,EAAYph0B,UAAW,gBAAiB0oV,MAAO,CAAE,SAAY,QAChJggtB,EAAQtjiC,MAAMqY,MAAQgrhC,EAAY,KAClCC,EAAQtjiC,MAAMyiJ,OAAS4xnB,EAAa,KAChCx6wB,KAAKipiC,UAAU5wsB,UACfoxsB,EAAQtjiC,MAAMy9H,MAAQ5jI,KAAK0+lC,mBAAmBv8R,GAAc,KAG5DsnO,EAAQtjiC,MAAMw9H,KAAO3jI,KAAK0+lC,mBAAmBv8R,GAAc,KAE/DsnO,EAAQtjiC,MAAM+nJ,IAAMo/X,EAAW,KAC/BtthB,KAAKw5iC,cAAc9nhC,YAAY+3gC,GAC/BzpiC,KAAKw5iC,cAAcrziC,MAAMqY,MAASxe,KAAKkglC,qBAAwBlglC,KAAKmglC,aAAenglC,KAAKwqiC,gBAAmBxqiC,KAAKiuiC,gBAAgBlpyB,YAAgB/kQ,KAAKmglC,aAAenglC,KAAKwqiC,gBAAmB,KAAOxqiC,KAAKiuiC,gBAAgBlpyB,YAAc,KACtO/kQ,KAAK41lC,mBAAmBzzR,GACxBni0B,KAAK+imC,qBAAqBt5D,EAAStnO,GACnCni0B,KAAKgjmC,iBAAiBv5D,EAASD,EAAWhvR,EAAY2nD,EAAY,UAC7Dl7e,GAAQM,UAAavnV,KAAKipiC,UAAUqf,mBAAuBtojC,KAAKq/kC,SACjEr/kC,KAAKwklC,8BAEb,EACAnH,EAAc1skC,UAAUoulC,sBAAwB,YACxC/+lC,KAAKipiC,UAAU2qB,qBAAyB3suB,GAAQM,WAAYvnV,KAAKipiC,UAAUqf,mBAC3EtojC,KAAKipiC,UAAU2qB,oBAAoBqvC,6BAEnCjjmC,KAAKipiC,UAAU+qB,oBACfh0jC,KAAKipiC,UAAU+qB,mBAAmBkvC,4BAElCljmC,KAAKipiC,UAAUgb,mBACXjkjC,KAAKipiC,UAAUtiiB,eACf3mgB,KAAKipiC,UAAUgb,iBAAiBkR,4BAA4BguC,gCAE5DnjmC,KAAKipiC,UAAUm6D,oBACfpjmC,KAAKipiC,UAAU9p6B,WAAWq79B,oBAE9Bx6lC,KAAKipiC,UAAUgb,iBAAiBkR,4BAA4BkuC,2BAEpE,EACAhmB,EAAc1skC,UAAUoylC,qBAAuB,SAAUt5D,EAAS3znB,GAC9D,IAAI8mJ,EAAc58jB,KAAKgnS,WAAW,aAAe8uI,EAAY,IACzD8mJ,EACA58jB,KAAKw5iC,cAAc7khC,aAAa80gC,EAAS7se,GAGzC58jB,KAAKw5iC,cAAc9nhC,YAAY+3gC,EAEvC,EAoBA4zC,EAAc1skC,UAAUqylC,iBAAmB,SAAUv5D,EAASD,EAAWhvR,EAAY2nD,EAAYk9O,GAC7F,GAAI5V,EAAS,CAET,IAAIi0D,EAAa19lC,KAAKgnS,WAAW,eAAiBm7hB,GAiClD,OAhCIu7R,GACAA,EAAWl/kC,MAAQgrhC,EACnBk0D,EAAW908B,OAAS4xnB,EACpBkjV,EAAWv3lC,MAAMi+J,QAAU,QACvBpkK,KAAKkglC,qBAAuBlglC,KAAKmglC,aAAe,IAChDud,EAAWv3lC,MAAMsvR,WAAa,OAC9Bio0B,EAAWv3lC,MAAMgxR,YAAc,WAKnCum0B,EAAa58lC,GAAc,MAAO,CAAEq1B,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,eAAiBgsyB,EAAYph0B,UAAW,sBACjGyd,MAAQgrhC,EACnBk0D,EAAW908B,OAAS4xnB,EACpBkjV,EAAWv3lC,MAAMi+J,QAAUi74B,EACvBr/iC,KAAKkglC,qBAAuBlglC,KAAKmglC,aAAe,IAChDud,EAAWv3lC,MAAMsvR,WAAa,OAC9Bio0B,EAAWv3lC,MAAMgxR,YAAc,QAEnCsywB,EAAQ/3gC,YAAYgskC,IAExBA,EAAW1okC,aAAa,MAAO,IAC3Bh1B,KAAKipiC,UAAUgb,kBAAoBjkjC,KAAKipiC,UAAU9p6B,YAElDn/H,KAAKipiC,UAAUgb,iBAAiBq/C,sBAAsB75D,EAASD,EAAWhvR,EAAY2nD,EAAYk9O,IAElGr/iC,KAAKipiC,UAAUyE,kBAAoB1tiC,KAAKipiC,UAAU0B,qBAAuB3qiC,KAAKipiC,UAAUgb,mBACxFjkjC,KAAK0piC,UAAUH,aAAapnO,EAAYqnO,EAAWhvR,EAAYivR,GAE/DzpiC,KAAKipiC,UAAUyiC,qBAAuB1rkC,KAAKipiC,UAAUgb,kBACrDjkjC,KAAKipiC,UAAUyiC,mBAAmB43B,sBAAsB75D,EAASD,EAAWhvR,EAAY2nD,EAAYk9O,GAEjGq+C,CACX,CACJ,EAQArgB,EAAc1skC,UAAUg5hC,mBAAqB,SAAU+zD,EAAYv7R,GAC/D,GAAIni0B,KAAKkglC,qBAAuBwd,EAAY,CACxC,IAAI1zD,EAAgB94gC,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,eAAiBgsyB,GACrFohS,EAAYrykC,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,cAAgBgsyB,GAChFu7R,GAAc1zD,GAAiBA,EAAcrnvB,WAAa,GAC1D+6yB,EAAWv3lC,MAAMsvR,WAAau0wB,EAAcrnvB,WAAa,KACzD+6yB,EAAWv3lC,MAAMgxR,YAAc6ywB,EAAcrnvB,WAAa,MAErD4gzB,GAAaA,EAAU5gzB,WAAa,GACzC+6yB,EAAWv3lC,MAAMsvR,WAAa8t0B,EAAU5gzB,WAAa,KACrD+6yB,EAAWv3lC,MAAMgxR,YAAcos0B,EAAU5gzB,WAAa,OAGtD+6yB,EAAWv3lC,MAAMsvR,WAAa,OAC9Bio0B,EAAWv3lC,MAAMgxR,YAAc,OAEvC,CACJ,EAMAkmzB,EAAc1skC,UAAU+tlC,mBAAqB,SAAU5orB,GACnD,IAAI0trB,EACAhllC,EAAQxe,KAAKiuiC,gBAAgBx5wB,wBAAwBj2Q,MAKzD,GAJc,IAAVA,IACAA,EAAQkyB,WAAW1wC,KAAKipiC,UAAUzqhC,MAAM1H,aAGxC9W,KAAKkglC,qBAAuBlglC,KAAKmglC,aAAe,EAAG,CAE/CqjB,EADAxjmC,KAAKiuiC,gBAAgBlpyB,YAAc,GACnB/kQ,KAAKiuiC,gBAAgBlpyB,YAAe/kQ,KAAKmglC,aAAenglC,KAAKwqiC,iBAAoB,GAGjFhshC,EAASxe,KAAKmglC,aAAenglC,KAAKwqiC,iBAAoB,EAE1E,IAAIi5D,GAAYzjmC,KAAKmglC,aAAenglC,KAAKwqiC,gBAAkBxqiC,KAAKq9lC,aAAavnrB,IAAc,EACvF0trB,EAAe,EACfA,GAAgBC,EAGhBD,EAAeC,EAEnBzjmC,KAAKw5iC,cAAcrziC,MAAMqY,MAAUxe,KAAKmglC,aAAenglC,KAAKwqiC,gBAAmBxqiC,KAAKiuiC,gBAAgBlpyB,YAAgB/kQ,KAAKmglC,aAAenglC,KAAKwqiC,gBAAmB,KAAOxqiC,KAAKiuiC,gBAAgBlpyB,YAAc,IAC9M,MAGQy+1B,EADAxjmC,KAAKiuiC,gBAAgBlpyB,YAAc,GACnB/kQ,KAAKiuiC,gBAAgBlpyB,YAAc/kQ,KAAKq9lC,aAAavnrB,IAAc,GAGnEt3Z,EAAQxe,KAAKq9lC,aAAavnrB,IAAc,EAQhE,GAJI91a,KAAK+1a,SAASxpZ,SAASupZ,EAAUh/Z,WAAY,KAAK0H,MAAQxe,KAAK+1a,SAASxpZ,SAASupZ,EAAUh/Z,WAAY,KAAK8xI,SAC9F,EAGd468B,EAAe,GAAMxjmC,KAAKipiC,UAAUwE,sBAAwBztiC,KAAKipiC,UAAUwE,oBAAoBsmD,YAAc/zlC,KAAKwqiC,gBAAkB,GAAqD,eAA/CxqiC,KAAKipiC,UAAUwE,oBAAoBwgD,SAAoC,CACjN,IAAI9hjB,EAAYq3jB,GAGZA,EAFAA,EAAe,GAAMv8wB,GAAQM,WAAavnV,KAAKipiC,UAAUqf,kBAE1Cn8gB,EAGAnsiB,KAAK29kC,UAEJ,GAAM39kC,KAAKkglC,qBACvB/ziB,EAAY,IACZq3jB,EAAer3jB,EAG3B,CACA,OAAOq3jB,CACX,EAMAnmB,EAAc1skC,UAAU8olC,kBAAoB,SAAU3jrB,GAClD,IAAI0trB,EACJ,GAAIxjmC,KAAK+1a,SAASxpZ,SAASupZ,EAAUh/Z,WAAY,KAAM,CACnD,GAAI9W,KAAKkglC,qBAAuBlglC,KAAKmglC,aAAe,EAAG,CAG/CqjB,EAFAxjmC,KAAKiuiC,gBAAgBlpyB,YAAc,GAEnB/kQ,KAAKiuiC,gBAAgBlpyB,YAAe/kQ,KAAKmglC,aAAenglC,KAAKwqiC,iBAAoB,GAIjFxqiC,KAAKiuiC,gBAAgBx5wB,wBAAwBj2Q,MAASxe,KAAKmglC,aAAenglC,KAAKwqiC,iBAAoB,EAEvH,IAAIi5D,GAAYzjmC,KAAKmglC,aAAenglC,KAAKwqiC,gBAAkBxqiC,KAAKq9lC,aAAavnrB,IAAc,EACvF0trB,EAAe,EACfA,GAAgBC,EAGhBD,EAAeC,CAEvB,MAIQD,EAFAxjmC,KAAKiuiC,gBAAgBlpyB,YAAc,GAEnB/kQ,KAAKiuiC,gBAAgBlpyB,YAAc/kQ,KAAK+1a,SAASxpZ,SAASupZ,EAAUh/Z,WAAY,KAAK0H,MAAQxe,KAAKwqiC,iBAAmB,GAIrHxqiC,KAAKiuiC,gBAAgBx5wB,wBAAwBj2Q,MAAQxe,KAAK+1a,SAASxpZ,SAASupZ,EAAUh/Z,WAAY,KAAK0H,MAAQxe,KAAKwqiC,iBAAmB,EAQ/J,GAJIxqiC,KAAK+1a,SAASxpZ,SAASupZ,EAAUh/Z,WAAY,KAAK0H,MAAQxe,KAAK+1a,SAASxpZ,SAASupZ,EAAUh/Z,WAAY,KAAK8xI,SAC9F,EAGd468B,EAAe,GAAMxjmC,KAAKipiC,UAAUwE,sBAAwBztiC,KAAKipiC,UAAUwE,oBAAoBsmD,YAAc/zlC,KAAKwqiC,gBAAkB,GAAqD,eAA/CxqiC,KAAKipiC,UAAUwE,oBAAoBwgD,SAAoC,CACjN,IAAI9hjB,EAAYq3jB,EAChBA,EAAexjmC,KAAK29kC,SAEfxxiB,EAAY,GAAMnsiB,KAAKkglC,sBACxBsjB,EAAer3jB,EAEvB,CAEA,IAAIs9f,EAAUv4gC,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,YAAc2/Y,GAC5E2znB,IACKzpiC,KAAKipiC,UAAU5wsB,UAIhBoxsB,EAAQtjiC,MAAMy9H,MAAQ4/9B,EAAe,KAHrC/5D,EAAQtjiC,MAAMw9H,KAAO6/9B,EAAe,KAMhD,CACJ,EACAnmB,EAAc1skC,UAAUuzkC,iBAAmB,SAAUuQ,EAAcz2M,GAC/D,OAASy2M,EAAez2M,GAAiBy2M,EAAgB,IAAM,GACnE,EAMApX,EAAc1skC,UAAU+ylC,6BAA+B,SAAUC,GAG7D,IAFA,IAAIvkoB,EAASukoB,EAAYzplC,EAAIla,KAAKiuiC,gBAAgBhg5B,WAC9CoxU,EAASskoB,EAAYxplC,EAAIna,KAAKiuiC,gBAAgB9/4B,UACzChiJ,EAAI,EAAGA,EAAInM,KAAKoxmB,UAAWjlmB,IAAK,CACrC,IAAIqolC,EAAUx0lC,KAAK+1a,SAASxpZ,SAASpgB,EAAE2K,WAAY,KAAK8xI,OAAS5oJ,KAAKiuiC,gBAAgB9/4B,UACtF,GAAIkxU,EAAUr/d,KAAK+1a,SAASxpZ,SAASpgB,EAAE2K,WAAY,KAAKo3I,IAAMsm8B,EAAU,CACpE,IAAIoP,EAAwB5jmC,KAAKgnS,WAAW,sBAAsBvS,wBAC9DkpzB,GAAaimB,EAAsBpllC,MAAQxe,KAAK+1a,SAASxpZ,SAASpgB,EAAE2K,WAAY,KAAK0H,OAAS,EAAKollC,EAAsB1plC,EACzH2plC,EAAyB,EAO7B,IALIA,EADAxkoB,EAASr/d,KAAK+1a,SAASxpZ,SAASpgB,EAAE2K,WAAY,KAAKo3I,IACzBmxU,EAASr/d,KAAK+1a,SAASxpZ,SAASpgB,EAAE2K,WAAY,KAAKo3I,IAGnDluJ,KAAK+1a,SAASxpZ,SAASpgB,EAAE2K,WAAY,KAAKo3I,IAAMmxU,GAEjD,GACwB,MAA7Cr/d,KAAK+1a,SAASxpZ,SAASpgB,EAAE2K,WAAY,KAAc,CAClC9W,KAAK+tlC,cAAc5hlC,GACpC,GAAIwxkC,GAAY,IACPv+mB,EAASu+mB,GAAcv+mB,EAAUu+mB,EAAY39kC,KAAK+1a,SAASxpZ,SAASpgB,EAAE2K,WAAY,KAAK0H,OACxF,OAAQ,EAGhB,GAAIqllC,GAA2B7jmC,KAAKgulC,WAAW7hlC,GAAKqolC,EAChD,OAAOrolC,EAAI,CAEnB,CAER,CACJ,CACA,OAAQ,CACZ,EAOAkxkC,EAAc1skC,UAAUmzlC,8BAAgC,SAAUH,EAAaxhS,GAC3E,IAAoB,IAAhBA,EAAmB,CACnB,IAAIyhS,EAAwB5jmC,KAAKgnS,WAAW,sBAAsBvS,wBAC9DkpzB,GAAaimB,EAAsBpllC,MAAQxe,KAAK+1a,SAASosZ,EAAa,GAAG3jzB,OAAS,EAAKollC,EAAsB1plC,EAEjH,MADgB,CAAEA,EAAIyplC,EAAYzplC,EAAIla,KAAKiuiC,gBAAgBhg5B,WAAc0v7B,EAAUxjkC,EAAIwplC,EAAYxplC,EAAIna,KAAKiuiC,gBAAgB9/4B,UAAanuJ,KAAK+1a,SAASosZ,EAAa,GAAGj0qB,IAE3K,CACA,OAAO,IACX,EAOAmv7B,EAAc1skC,UAAUozlC,8BAAgC,SAAUC,EAAW7hS,GACzE,IAAoB,IAAhBA,EAAmB,CACnB,IAAIyhS,EAAwB5jmC,KAAKgnS,WAAW,sBAAsBvS,wBAC9DkpzB,GAAaimB,EAAsBpllC,MAAQxe,KAAK+1a,SAASosZ,EAAa,GAAG3jzB,OAAS,EAAKollC,EAAsB1plC,EAEjH,MADkB,CAAEA,EAAG8plC,EAAU9plC,EAAIyjkC,EAAUxjkC,EAAG6plC,EAAU7plC,EAAIna,KAAK+1a,SAASosZ,EAAa,GAAGj0qB,IAElG,CACA,OAAO,IACX,EAOAmv7B,EAAc1skC,UAAUszlC,iCAAmC,SAAUD,EAAW7hS,GAC5E,OAAoB,IAAhBA,EACqB,CAAEjozB,EAAG8plC,EAAU9plC,EAAIla,KAAKiuiC,gBAAgBhg5B,WAAY9zI,EAAG6plC,EAAU7plC,EAAIna,KAAKiuiC,gBAAgB9/4B,WAG5G,IACX,EACAkv7B,EAAc1skC,UAAUk+kC,8BAAgC,WAChD7ulC,KAAKillC,iBACL5ujC,aAAar2B,KAAKillC,iBAEtBjllC,KAAKillC,gBAAkB,KAClBjllC,KAAKq1pB,eAAiBr1pB,KAAKwqiC,kBAAqBxqiC,KAAKiuiC,gBAAgB9/4B,YACtEnuJ,KAAKq1pB,eAAiBr1pB,KAAKiuiC,gBAAgB9/4B,UAC3CnuJ,KAAKkllC,sBAAsBlllC,KAAK6riC,mBAExC,EACAwxC,EAAc1skC,UAAUuzlC,qBAAuB,WACvClkmC,KAAKipiC,UAAUwE,qBACfztiC,KAAKipiC,UAAUwE,oBAAoBy2D,sBAE3C,EAMA7mB,EAAc1skC,UAAUu0kC,sBAAwB,SAAUr5C,GAClD7riC,KAAKg/kC,WAC0D,IAA3Dh/kC,KAAKy9kC,kBAAkB9ykC,QAAQkhiC,EAAoB,KACnD7riC,KAAKo+kC,gBAAkB,GAI3Bp+kC,KAAKo+kC,gBAAkB,EAE3B,IAAI+lB,EAAmBt4D,EAAoB,EAC3C,GAAIA,IAAsB7riC,KAAK0gsB,cAAgBmrW,GAAqB7riC,KAAKoxmB,UAAW,CAChF,IAAIq1G,GAAS,EACTzmtB,KAAKwhlC,cAAgBxhlC,KAAK4ulC,cAAcuV,KACxC19Y,GAAS,IAE6C,IAAtDzmtB,KAAKy9kC,kBAAkB9ykC,QAAQw5lC,IAA6BnkmC,KAAKgsiC,gBAAmBvlV,IACpFzmtB,KAAKkkmC,uBACLlkmC,KAAKq0lC,uBAAuB8P,GAEpC,CACA,IAAMnkmC,KAAKgsiC,iBAAkBhsiC,KAAKgtlC,sBAAwB,CACtD,IAAIv6gC,EAAW0xhC,EAAmB,EAE9BvnoB,GADA6pP,GAAS,EACAzmtB,KAAKgnS,WAAW,eAAiBv0N,IAC1CzyE,KAAKwhlC,cAAgBxhlC,KAAK4ulC,cAAcn8gC,KACxCg0oB,GAAS,GAEE,OAAX7pP,GAAoB6pP,IAC8B,IAA9CzmtB,KAAKy9kC,kBAAkB9ykC,QAAQ8nE,IAAqBzyE,KAAKgsiC,iBACzDhsiC,KAAKkkmC,uBACLlkmC,KAAKq0lC,uBAAuB5hhC,IAGhCzyE,KAAKmhlC,eACLnhlC,KAAKokmC,4BAA4B3xhC,GAErC,IAAIl8D,EAAO4tlC,EAAmB,EAC1B3pV,EAAa,EACjB,GAAIjkwB,EAAOvW,KAAKoxmB,UAGZ,GAFAopK,EAAax6wB,KAAK+tlC,cAAcx3kC,IACPvW,KAAKmhlC,cAAgBnhlC,KAAKmhlC,eAA0D,IAA1CnhlC,KAAKy9kC,kBAAkB9ykC,QAAQ4L,MACvEvW,KAAKgsiC,gBAAkBxxR,EAC9C,GAAIx6wB,KAAKw9kC,kBAAoBx9kC,KAAKipiC,UAAUsrD,mBAAqBv0lC,KAAK6hlC,iBAAoB7hlC,KAAK+tlC,cAAc/tlC,KAAKipiC,UAAUsrD,mBAAqB,GAAKv0lC,KAAKgulC,WAAWhulC,KAAKipiC,UAAUsrD,mBAAqB,GAAMv0lC,KAAKiuiC,gBAAgB/oyB,aAEjO,IADA,IAAIov1B,EAAct0lC,KAAKipiC,UAAUsrD,oBAAsBv0lC,KAAKoxmB,UAAYpxmB,KAAKipiC,UAAUsrD,mBAAqBv0lC,KAAKoxmB,UACxGjlmB,EAAI,EAAGA,EAAImolC,EAAanolC,IAC7BnM,KAAKq0lC,uBAAuBlolC,QAMhC,IAFAnM,KAAKq0lC,uBAAuB99kC,GAC5BvW,KAAKkkmC,uBACElkmC,KAAKiuiC,gBAAgB/oyB,aAAes1gB,IACvCjkwB,GAAc,GACHvW,KAAKoxmB,WACZpxmB,KAAK00lC,kBAAkBn+kC,GACvBvW,KAAKq0lC,uBAAuB99kC,GAC5BikwB,GAAcx6wB,KAAK+tlC,cAAcx3kC,GACjCvW,KAAKkkmC,sBAS7B,CACJ,EACA7mB,EAAc1skC,UAAUyzlC,4BAA8B,SAAUturB,GAC5D,IAAIv/Z,EAAOu/Z,EAAY,EACnBqsZ,EAAa5rzB,EAAO,EACpBA,EAAO,KACuC,IAA1CvW,KAAKy9kC,kBAAkB9ykC,QAAQ4L,IAAiBvW,KAAKgsiC,iBACrDhsiC,KAAKq0lC,uBAAuB99kC,GAC5BvW,KAAKkkmC,wBAEL/hS,EAAa,KACuC,IAAhDni0B,KAAKy9kC,kBAAkB9ykC,QAAQw3zB,IAAuBni0B,KAAKgsiC,iBAC3DhsiC,KAAKq0lC,uBAAuBlyR,GAC5Bni0B,KAAKkkmC,yBAIrB,EACA7mB,EAAc1skC,UAAU0zlC,iBAAmB,SAAUrgoB,GAGjDA,GADUxqW,KAAO8q+B,WACHrgoB,gBAAgBD,GAC9B,IAAIx1C,EAAgB1tb,GAAc,KAClC,GAAI0tb,EAAcxrK,MACdwrK,EAAcrmY,KAAO67a,EACrBx1C,EAAcnmb,OAAS,UACnB,aAAcmmb,IACdA,EAAcs1C,SAAW9je,KAAK0ilC,mBAEjCxxjC,SAASzd,MAAQyd,SAASuE,iBAAiB/D,YAAY88Z,GACxDA,EAAcxrK,QACdwrK,EAAch6Z,WAAWW,YAAYq5Z,OAEpC,CACD,GAAIx9Z,OAAOk9H,MAAQl9H,QACfgzc,EAAQrxc,MAAM,KAAK,KAAO3B,OAAO2G,SAASwwB,KAAKx1B,MAAM,KAAK,GAAI,CAC9D,IAAI4xkC,GAAyC,IAA1BvgoB,EAAQr5d,QAAQ,KAAc,IAAM,IACvDq5d,EAAUA,EAAQ3zd,QAAQ,MAAOk0lC,EAAe,KACpD,CAEAvzkC,OAAO8xG,KAAKkhW,EAAS,UAEzB,CACJ,EACAq5mB,EAAc1skC,UAAU6zlC,qBAAuB,SAAUxgoB,EAASygoB,EAAsBC,EAAqB9znB,GACzG,IAAIlyJ,EAAkC,SAAzB+lxB,GAA2D,SAAxBC,EAE5CjnnB,EAAY/+J,EAAS,QAAkC,QAAxBgmxB,EAAgC,OAAiC,QAAxBA,EAAgC,OAAmC,SAAzBD,GAA2D,SAAxBC,EAAkC,QAAU,KACrM,IAAK34xB,GAAkB0xK,GAAY,CAG/BzZ,GADUxqW,KAAO8q+B,WACHrgoB,gBAAgBD,GAC9B,IAAIx1C,EAAgB1tb,GAAc,KAClC,GAAI0tb,EAAcxrK,MACdwrK,EAAcrmY,KAAO67a,EACrBx1C,EAAcnmb,OAAS,UACnB,aAAcmmb,IACkC,OAA5Cxub,KAAKipiC,UAAU07D,yBACfn2qB,EAAcs1C,SAAW9je,KAAKipiC,UAAU07D,yBAAyBhykC,MAAM,KAAK,GAAK8qd,EAGjFjvD,EAAcs1C,SAAW9je,KAAKipiC,UAAU9qkB,SAASxrc,MAAM,KAAK,GAAK8qd,IAGxEvsd,SAASzd,MAAQyd,SAASuE,iBAAiB/D,YAAY88Z,GACxDA,EAAcxrK,QACdwrK,EAAch6Z,WAAWW,YAAYq5Z,GACjCoiD,EACA5we,KAAKipiC,UAAU27D,sBAAsB5goB,EAASx1C,EAAcs1C,UAG5D9je,KAAKipiC,UAAU47D,kBAAkB7goB,EAASx1C,EAAcs1C,eAG3D,GAAIplJ,EAAQ,CACb,GAAI1tT,OAAOk9H,MAAQl9H,QACfgzc,EAAQrxc,MAAM,KAAK,KAAO3B,OAAO2G,SAASwwB,KAAKx1B,MAAM,KAAK,GAAI,CAC9D,IAAI4xkC,GAAyC,IAA1BvgoB,EAAQr5d,QAAQ,KAAc,IAAM,IACvDq5d,EAAUA,EAAQ3zd,QAAQ,MAAOk0lC,EAAe,KACpD,CAEAvzkC,OAAO8xG,KAAKkhW,EAAS,WAEjB4M,EACA5we,KAAKipiC,UAAU27D,sBAAsB5goB,EAAShke,KAAKipiC,UAAU9qkB,SAASxrc,MAAM,KAAK,GAAK8qd,GAGtFz9e,KAAKipiC,UAAU47D,kBAAkB7goB,EAAShke,KAAKipiC,UAAU9qkB,SAASxrc,MAAM,KAAK,GAAK8qd,EAE1F,CACJ,CACJ,EAMA4/lB,EAAc1skC,UAAUm0lC,iBAAmB,SAAU56jC,EAAMw6jC,GACvD1kmC,KAAK+kmC,kCAAiC,EAAOL,EAAqBx6jC,EACtE,EAOAmziC,EAAc1skC,UAAUq0lC,iBAAmB,SAAU96jC,EAAMw6jC,GACvD1kmC,KAAKilmC,oCAAoC/6jC,EAAMw6jC,EACnD,EAQArnB,EAAc1skC,UAAUo0lC,iCAAmC,SAAUzxiC,EAAUoxiC,EAAqBx6jC,GAChG,IACI87J,EADA1mM,EAAQU,KAEZgmM,EAAQhmM,KACR,IAAIg9H,EAAU,IAAIrsF,SAAQ,SAAU2mB,EAASuwB,GAEzC,IAAI60+B,EAAa123B,EAAMk/5B,2BACK,SAAxBR,GAA0D,QAAxBA,GAAyD,SAAxBA,GAA0D,QAAxBA,IACrGhoC,EAAWgoC,oBAAsBA,EACjC1+5B,EAAMij2B,UAAUk8D,sBAAsBzoC,IAE1CA,EAAWxn/B,OAAS,mBAEpBwn/B,EAAmB,OAAI123B,EAAMy94B,OAE7B/mB,EAAqB,SAAI123B,EAAMij2B,UAAU9qkB,SACrCj0b,GAAiB,KAATA,IAAgBopB,IAExBopgC,EAAqB,SAAIxyhC,GAG7BwyhC,EAAsB,UAAIp9jC,EAAM2piC,UAAU9zhC,QAAQghB,GAE9C6vK,EAAMqr5B,iBAEN30B,EAAWxriC,SAAW80K,EAAMqr5B,gBAEhC,IAAI+T,EAAqB9lmC,EAAM+lmC,sBAAsB3oC,EAAyB,cAC9EA,EAA+B,mBAAIjshC,KAAK+mF,UAAU4t+B,GAClD1oC,EAAwC,4BAAIp9jC,EAAMgmmC,mBAAmB5oC,EAAyB,eAAMp9jC,EAAMimmC,kBAAkB7oC,EAAuB,aAAM0oC,EAAmBhimC,OAAS,EACrL,IAAI6rH,EAAM+2E,EAAMij2B,UAAUy6C,WAAa,IAAM194B,EAAMij2B,UAAUwoD,qBAAqBqT,iBAClF9+5B,EAAM4x5B,+BAAiC,IAAI97B,IAAYx8jC,EAAM2piC,WAC7Djj2B,EAAM4x5B,+BAA+B3o+B,IAAMA,EAC3C+2E,EAAM4x5B,+BAA+BrniC,MAAO,EAC5Cy1I,EAAM4x5B,+BAA+B1mR,aAAe,OACpDlroB,EAAM4x5B,+BAA+Bzh3B,KAAKum1B,GAE1C123B,EAAM4x5B,+BAA+BrywB,UAAY,SAAU16T,GAEvD,IAAIqf,EAAOrf,EAAOqf,KAElB,IADe87J,EAAMms5B,iBAAiBjojC,IAE9BA,GACIA,EAEA,GADA87J,EAAMij2B,UAAU0oD,uBAAuB3r5B,EAAMij2B,UAAUwoD,qBAAqBqT,iBAAkB56jC,GAC1FopB,EAAU,CAEV,IAAIkyiC,EAAiB11jC,mBAAmB2iB,OAAOuzE,KAAK97F,EAAKvX,MAAM,KAAK,MACpE2kC,EAAQkuiC,GACRx/5B,EAAMij2B,UAAU27D,sBAAsBY,EAAgBx/5B,EAAMij2B,UAAU9qkB,SAC1E,MACK,GAAIj0b,EAAKvX,MAAM,WAAW,GAAI,CAC/B,IAAIqxc,EAAUh+R,EAAM0w5B,cAAcxsjC,EAAKvX,MAAM,WAAW,GAAI,oBACxDs0T,GAAQh0D,MAA8B,SAAtBg0D,GAAQ1qT,KAAK73B,KAC7BssB,OAAOkH,UAAUutkC,iBAAiBzhoB,EAASh+R,EAAMij2B,UAAU9qkB,SAASxrc,MAAM,KAAK,GAAK,SAE5C,SAAnC+piC,EAAWgoC,qBAAqE,QAAnChoC,EAAWgoC,qBAAoE,SAAnChoC,EAAWgoC,qBAAqE,QAAnChoC,EAAWgoC,qBACtJ1+5B,EAAMw+5B,qBAAqBxgoB,EAAS,KAAM0goB,GAAqB,EAEvE,CAIhB,EAEA1+5B,EAAM4x5B,+BAA+BnywB,UAAY,SAAU56T,GACvDm7K,EAAMij2B,UAAUy8D,qBAAqBhpC,EAAW7K,cAAehniC,EAAO+6T,WAC1E,EAEA5/I,EAAM4x5B,+BAA+B3g9B,QAAU,SAAUpsH,GACrDm7K,EAAMij2B,UAAUy8D,qBAAqBhpC,EAAW7K,cAAehniC,EAAO+6T,WAC1E,CACJ,IACA,OAAItyR,GACO0pE,CAKf,EAQAqg9B,EAAc1skC,UAAUg1lC,kBAAoB,SAAUxnoB,EAAUynoB,GAE5D,OADgBznoB,EAASvtd,MAAMutd,EAAShnb,YAAYyujC,GAAW,EAEnE,EAMAvoB,EAAc1skC,UAAUs0lC,oCAAsC,SAAUrulC,EAAQ8tlC,GAC5E,IAAI1+5B,EAEJA,EAAQhmM,KAER,IAAI08jC,EAAa,CAAC,EACdmpC,EAAa7lmC,KAAK2lmC,kBAAkB/ulC,EAJ5B,KAKU,kBAAXA,GAAuC,SAAfivlC,GAAwC,QAAfA,GAAuC,SAAfA,GAAwC,QAAfA,GAMzGnpC,EAAWgoC,oBAAsBA,EAE7BhoC,EAAWxyhC,KADa,SAAxBw6jC,EACkBj0jC,KAAK+mF,UAAU5gH,GAGfA,IAVtB8ljC,EAAWxyhC,KAAOtzB,EAClB8ljC,EAAqB,SAAI123B,EAAMij2B,UAAU9qkB,SACzCu+lB,EAAWgoC,oBAAsBA,GAWrC1+5B,EAAMij2B,UAAU68D,sBAAsBlvlC,GAEtC8ljC,EAAmB,OAAI123B,EAAMy94B,OAE7B/mB,EAAsB,UAAI18jC,KAAKipiC,UAAU9zhC,QAAQghB,GAE7C6vK,EAAMqr5B,iBAEN30B,EAAWxriC,SAAW80K,EAAMqr5B,iBAEhC30B,EAAaj9jC,OAAOgkD,OAAOi5gC,EAAY18jC,KAAKw2lC,0BAEjCthhC,OAAS,mBACpB,IAAI+5C,EAAM+2E,EAAMij2B,UAAUy6C,WAAa,IAAM194B,EAAMij2B,UAAUwoD,qBAAqBuT,iBAClFh/5B,EAAM2x5B,+BAAiC,IAAI77B,IAAY97jC,KAAKipiC,WAC5Djj2B,EAAM2x5B,+BAA+B1o+B,IAAMA,EAC3C+2E,EAAM2x5B,+BAA+BpniC,MAAO,EAC5Cy1I,EAAM2x5B,+BAA+BzmR,aAAe,OACpDlroB,EAAM2x5B,+BAA+Bxh3B,KAAKum1B,GAE1C123B,EAAM2x5B,+BAA+BpywB,UAAY,SAAU16T,GAEvD,IAAIqf,EAAOrf,EAAOqf,KAElB,IADe87J,EAAMms5B,iBAAiBjojC,GAElC,GAAIA,GAAiB,SAATA,EAAiB,CACzB,GAAoB,kBAATA,EACP,IAEwB,kBADpBA,EAAOuG,KAAKuL,MAAM9R,MAEd87J,EAAMwr5B,eAAe,IAAKtnjC,EAAM87J,EAAMij2B,UAAUwoD,qBAAqBuT,kBACrEh/5B,EAAMij2B,UAAU88D,qBAAqBnvlC,EAAQiU,EAAO+6T,YACpD17S,EAAO,KAEf,CACA,MAAOjzB,IAEH,GADA+uL,EAAMij2B,UAAU88D,qBAAqBnvlC,EAAQovL,EAAMij2B,UAAU59hB,UAAUtlK,YAAY,mBAC/Ej5B,KACc9sU,KAAKipiC,UAAU8E,gBAAgB13oB,kBAAkB,gBAAiB,0BACxEp7R,MAAK,SAAUr5H,GACnBokM,EAAMws3B,kCAAkC5wjC,EAC5C,SAGAokM,EAAMws3B,kCAAkCxs3B,EAAMij2B,UAAU59hB,UAAUtlK,YAAY,mBAElF//J,EAAMwr5B,eAAe,IAAKtnjC,EAAM87J,EAAMij2B,UAAUwoD,qBAAqBuT,kBACrE96jC,EAAO,IACX,CAEJ87J,EAAMij2B,UAAU0oD,uBAAuB3r5B,EAAMij2B,UAAUwoD,qBAAqBuT,iBAAkB96jC,GAC9F87J,EAAMij2B,UAAU+8D,sBAAsBpvlC,GACtCoa,OAAOor0B,eAAerwoB,WAAW/rN,KAAKojjC,WAAa,eACnDpjjC,KAAKipiC,UAAUsR,iBAAiB0rD,2BAChCj1kC,OAAOor0B,eAAerwoB,WAAW/rN,KAAKojjC,WAAa,iBACnDp92B,EAAM8s5B,mBAAmB5ojC,GACzB,IAAK,IAAI/9B,EAAI,EAAGA,EAAI65L,EAAMy34B,kBAAkBr6kC,OAAQ+I,IAChDnM,KAAKipiC,UAAUsR,iBAAiBymD,iBAAiBh75B,EAAMy34B,kBAAkBlxjC,SAASpgB,EAAE2K,WAAY,MAAM,EAE9G,KACK,CAED,GADAkvL,EAAMij2B,UAAU88D,qBAAqBnvlC,EAAQiU,EAAO+6T,YAChD9Y,KACc9sU,KAAKipiC,UAAU8E,gBAAgB13oB,kBAAkB,gBAAiB,0BACxEp7R,MAAK,SAAUr5H,GACnBokM,EAAMws3B,kCAAkC5wjC,EAC5C,SAGAokM,EAAMws3B,kCAAkCxs3B,EAAMij2B,UAAU59hB,UAAUtlK,YAAY,kBAEtF,CAER,EAEA//J,EAAM2x5B,+BAA+BlywB,UAAY,SAAU56T,GACvDm7K,EAAMij2B,UAAU88D,qBAAqBnvlC,EAAQiU,EAAO+6T,WACxD,EAEA5/I,EAAM2x5B,+BAA+B1g9B,QAAU,SAAUpsH,GACrDm7K,EAAMij2B,UAAU88D,qBAAqBnvlC,EAAQiU,EAAO+6T,WACxD,CACJ,EAMAy3vB,EAAc1skC,UAAUu0lC,yBAA2B,WAE/C,IAAIxoC,EAAa,CAAC,EAClB,GAAI18jC,KAAKipiC,UAAUyiC,mBAAoB,CACnC,IAAIw6B,EAAalmmC,KAAKipiC,UAAUyiC,mBAAmBy6B,uBAEnDzpC,EAAyB,aAAIwpC,CACjC,MACK,GAAIlmmC,KAAKipiC,UAAUsR,iBAAkB,CAClC2rD,EAAalmmC,KAAKipiC,UAAUsR,iBAAiB6rD,yBAEjD1pC,EAAuB,WAAIwpC,CAC/B,CACA,OAAOxpC,CACX,EAEA2gB,EAAc1skC,UAAU6llC,sBAAwB,WAE5C,IAAI95B,EAAa,CAAE+mB,OAAQzjlC,KAAKyjlC,QAShC,GARIzjlC,KAAKqxlC,iBACL30B,EAAWtZ,WAAapjjC,KAAKqxlC,gBAEjC30B,EAAW3t+B,SAAW/uF,KAAKojjC,WAC3BpjjC,KAAK0/kC,eAAiB,GAClB1/kC,KAAKipiC,UAAUgb,kBACfjkjC,KAAKqmmC,0BAELrmmC,KAAK6llC,+BAAgC,CACrC7llC,KAAKwilC,gBAAiB,EAEtB,IAAI8jB,EAAiCtmmC,KAAKipiC,UAAUgb,iBAAiBsE,2BAA2Bg+C,4BAEhG7pC,EAAkC,sBAAI4pC,CAC1C,CACA,GAAItmmC,KAAKwmmC,0BAA2B,CAChCxmmC,KAAKwilC,gBAAiB,EAEtB,IAAIj7B,EAAmBvnjC,KAAKipiC,UAAUgb,iBAAiBqtB,sBAAsBm1B,uBAE7E/pC,EAA6B,iBAAInV,CACrC,CACA,GAAIvnjC,KAAK4pjC,8BAA+B,CACpC5pjC,KAAKwilC,gBAAiB,EAEtB,IAAIkkB,EAAuB1mmC,KAAKipiC,UAAUgb,iBAAiB4F,wBAAwB88C,8BAEnFjqC,EAAoC,wBAAIgqC,CAC5C,CACA,GAAI1mmC,KAAK0hmC,0BAA2B,CAEhC,IAAIkF,EAA4B5mmC,KAAKipiC,UAAUgb,iBAAiB8oB,sBAAsB85B,uBAEtFnqC,EAA6B,iBAAIkqC,CACrC,CACA,GAAI5mmC,KAAK8mmC,4BAA6B,CAElC,IAAIC,EAA6B/mmC,KAAKipiC,UAAUgb,iBAAiBkR,4BAA4B6xC,wBAE7FtqC,EAAkC,sBAAIqqC,CAC1C,CACA,GAAI/mmC,KAAK2/kC,eAAgB,CACrB,IAAIsnB,EAAax2jC,KAAK+mF,UAAUx3H,KAAK0/kC,gBAErChjB,EAA2B,eAAIuqC,CACnC,CACA,GAAIjnmC,KAAKipiC,UAAUyiC,mBAAoB,CACnC,IAAIw6B,EAAalmmC,KAAKipiC,UAAUyiC,mBAAmBy6B,uBAEnDzpC,EAAyB,aAAIwpC,CACjC,MACK,GAAIlmmC,KAAKipiC,UAAUsR,iBAAkB,CAClC2rD,EAAalmmC,KAAKipiC,UAAUsR,iBAAiB6rD,yBAEjD1pC,EAAuB,WAAIwpC,CAC/B,CACA,IAAIgB,EAAgBlnmC,KAAKy9iC,gBAAgBuF,gBAOzC,GALA0Z,EAA0B,cAAIwqC,EAC1BlnmC,KAAKipiC,UAAUqa,sBAEfoZ,EAA8B,kBAAI18jC,KAAKipiC,UAAUqa,qBAEjDtjjC,KAAKinlC,6BAA8B,CAEnC,IAAIkgB,EAA+BnnmC,KAAKipiC,UAAUgb,iBAAiByE,yBAAyB0+C,0BAE5F1qC,EAA+B,mBAAIyqC,CACvC,CACA,GAAInnmC,KAAKiimC,wBAAyB,CAC9B,IAAIoF,EAAmBrnmC,KAAKipiC,UAAUgb,iBAAiB2Q,oBAAoB0yC,mBAE3E5qC,EAA6B,iBAAI2qC,CACrC,CAKA,GAHA3qC,EAAmB,OAAI,WAEvBA,EAAsB,UAAI18jC,KAAKipiC,UAAU9zhC,QAAQghB,GAC7Cn2B,KAAKipiC,UAAUgb,iBAAkB,CACjC,IAAIsjD,EAAsBvnmC,KAAKwnmC,yBAC/B9qC,EAA+B,mBAAI18jC,KAAKslmC,mBAAmB5oC,EAAkC,wBAAM18jC,KAAKslmC,mBAAmB5oC,EAA6B,mBAAM18jC,KAAKslmC,mBAAmB5oC,EAAoC,0BAAM18jC,KAAKslmC,mBAAmB5oC,EAA6B,mBAAM18jC,KAAKslmC,mBAAmB5oC,EAAkC,wBAAM18jC,KAAKslmC,mBAAmB5oC,EAA0B,gBAAM18jC,KAAKslmC,mBAAmB5oC,EAA+B,qBAAM18jC,KAAKslmC,mBAAmB5oC,EAA6B,mBAAM6qC,EAAoBnkmC,OAAS,EACxiBs5jC,EAAgC,oBAAIjshC,KAAK+mF,UAAU+v+B,EACvD,CACA,GAAIvnmC,KAAKipiC,UAAUyiC,oBAAsB1rkC,KAAKipiC,UAAUsR,iBAAkB,CACtE,IAAI6qD,EAAqBplmC,KAAKqlmC,sBAAsB3oC,EAAyB,cAC7EA,EAAwC,4BAAI18jC,KAAKslmC,mBAAmB5oC,EAAyB,eAAM18jC,KAAKulmC,kBAAkB7oC,EAAuB,aAAM0oC,EAAmBhimC,OAAS,EACnLs5jC,EAA+B,mBAAIjshC,KAAK+mF,UAAU4t+B,EACtD,CAIA,OAHIplmC,KAAKipiC,UAAUzzP,uBACfknR,EAAiC,qBAAIjshC,KAAK+mF,UAAUx3H,KAAKipiC,UAAUzzP,uBAEhEknR,CACX,EAKA2gB,EAAc1skC,UAAU20lC,mBAAqB,SAAUmC,GAEnD,OAAQ17xB,GAAkB07xB,IAAkBh3jC,KAAKuL,MAAMyrjC,GAAgBC,KAAK,GAAGtkmC,OAAS,CAC5F,EAKAi6kC,EAAc1skC,UAAU40lC,kBAAoB,SAAUW,GAElD,OAAQn6xB,GAAkBm6xB,IAAgE,IAAlDzmmC,OAAO6W,QAAQm6B,KAAKuL,MAAMkqjC,IAAa9imC,MACnF,EAKAi6kC,EAAc1skC,UAAU62lC,uBAAyB,WAE7C,IAAIG,EAAkB3nmC,KAAKipiC,UAAUzzP,qBAAqBvvyB,KAAI,SAAUgQ,GAAK,OAAOA,EAAEkszB,UAAY,IAC9FylS,EAAwB5nmC,KAAKipiC,UAAUgb,iBAAiB4jD,iBAAiBzhmC,QAAO,SAAUxE,EAAO6qB,EAAO5U,GAAQ,MAAqC,eAA9BjW,EAAMu9H,WAAWuL,eAAyErnI,GAA5CzB,EAAMu9H,WAAW816B,uBAAsC,IAAGhviC,KAAI,SAAUgQ,GAAK,OAAOA,EAAE6/Z,SAAW,IAE1Q,OADmB6xrB,EAAgBvulC,OAAOwulC,GACtBxhmC,QAAO,SAAUxE,EAAO6qB,EAAO5U,GAAQ,OAAOA,EAAKlN,QAAQ/I,KAAW6qB,QAAmBppB,IAAVzB,CAAqB,GAC5H,EAKAy7kC,EAAc1skC,UAAU00lC,sBAAwB,SAAUyC,GAEtD,IAUIC,EAVAC,EAAuBhomC,KAAKipiC,UAAUynC,oBAAoBzqkC,KAAI,SAAUsvB,GACxE,OAAKw2S,GAAkBx2S,EAAK7C,YAIjB6C,EAAK4syB,WAAa,EAHlB5syB,EAAK7C,WAAWyvyB,UAK/B,IACIylS,EAAyB77xB,GAAkB/rU,KAAKipiC,UAAUgb,kBAAsQ,GAAlPjkjC,KAAKipiC,UAAUgb,iBAAiB4jD,iBAAiBzhmC,QAAO,SAAUxE,EAAO6qB,EAAO5U,GAAQ,MAAoC,cAA7BjW,EAAMu9H,WAAWuL,eAAwErnI,GAA5CzB,EAAMu9H,WAAW816B,uBAAsC,IAAGhviC,KAAI,SAAUgQ,GAAK,OAAOA,EAAE6/Z,SAAW,IAC3TmyrB,EAAeD,EAAqB5ulC,OAAOwulC,GAQ/C,OANK77xB,GAAkB+7xB,KACnBC,EAAmBt3jC,KAAKuL,MAAM8rjC,GAAkB7hmC,KAAI,SAAUsvB,GAC1D,OAAOA,EAAK2ykC,UAAU/lS,UAC1B,KAEgB8lS,EAAa7ulC,OAAO2ulC,GACnB3hmC,QAAO,SAAUxE,EAAO6qB,EAAO5U,GAAQ,OAAOA,EAAKlN,QAAQ/I,KAAW6qB,QAAmBppB,IAAVzB,CAAqB,GAC7H,EAOAy7kC,EAAc1skC,UAAUw3lC,yBAA2B,SAAUC,GACzD,IAEIN,EAFAO,GAAwB,EAI5B,GADAP,EAAmB9nmC,KAAKsomC,0BAA0B,iBAI9C,IADA,IAAIriR,EAAiBx1yB,KAAKuL,MAAM8rjC,GACvB37lC,EAAI,EAAGA,EAAI850B,EAAe7i1B,OAAQ+I,IACvC,GAAqF,gBAAjF850B,EAAe15zB,SAASpgB,EAAE2K,WAAY,KAAKoxlC,UAAUjzD,yBACrD,IAAK,IAAIjliC,EAAI,EAAGA,EAAIi20B,EAAe15zB,SAASpgB,EAAE2K,WAAY,KAAKoxlC,UAAUK,gBAAgBnlmC,OAAQ4M,IAC7F,GAAIo4lC,IAAiBniR,EAAe15zB,SAASpgB,EAAE2K,WAAY,KAAKoxlC,UAAUK,gBAAgBh8kC,SAASvc,EAAE8G,WAAY,KAAKqf,GAAGxD,MAAM,KAAK,GAAI,CACpI01kC,GAAwB,EACxB,KACJ,OAGH,GAAIpiR,EAAe15zB,SAASpgB,EAAE2K,WAAY,KAAKwxW,IAAI31V,MAAM,KAAK,KAAOy1kC,EAAc,CACpFC,GAAwB,EACxB,KACJ,CAGR,OAAOA,CACX,EAKAhrB,EAAc1skC,UAAUs2kC,2BAA6B,WAEjD,QAAIjnlC,KAAKipiC,UAAU9p6B,eACXn/H,KAAKipiC,UAAU9p6B,aAAcn/H,KAAKipiC,UAAU9p6B,WAAWup7B,yBAUnE,EAEA20B,EAAc1skC,UAAU2llC,yBAA2B,WAC/C,IAAItw5B,GACJA,EAAQhmM,MACFipiC,UAAUu/D,kBAAkBxi6B,EAAM084B,kBAExC,IAAIhmB,EAAa18jC,KAAKw2lC,wBAClBxw5B,EAAMm84B,uBAAgE,IAAvCn84B,EAAMm84B,sBAAsB/+kC,SACvD4iM,EAAMij2B,UAAUw/D,iBAChB/rC,EAA2C,gCAAI,EAG/CA,EAA2C,gCAAI,GAGvD18jC,KAAKy2lC,wBAA0B,IAAI36B,IAAY97jC,KAAKipiC,WACpDjpiC,KAAKy2lC,wBAAwBxn+B,IAAM+2E,EAAMij2B,UAAUy6C,WAAa,IAAM194B,EAAMij2B,UAAUwoD,qBAAqB3tnB,SAC3G9je,KAAKy2lC,wBAAwBvlR,aAAe,OACxClx0B,KAAKkhlC,cAAgBlhlC,KAAKipiC,UAAUy/D,4BACpC1omC,KAAKipiC,UAAU0/D,oBAAoB3i6B,EAAMij2B,UAAUwoD,qBAAqB3tnB,UACxE9je,KAAKkhlC,cAAe,GAGpBlhlC,KAAKy2lC,wBAAwBtg3B,KAAKum1B,GAGtC18jC,KAAKy2lC,wBAAwBlxwB,UAAY,SAAU16T,GAE/C,IAAIqf,EAAOrf,EAAOqf,KAElB,IADe87J,EAAMms5B,iBAAiBjojC,GAElC,GAAIA,EAAM,CAQN,GAPoB,kBAATA,IAA+D,IAA1CA,EAAKv/B,QAAQ,0BACzCq7L,EAAMwr5B,eAAe,IAAKtnjC,EAAM87J,EAAMij2B,UAAUwoD,qBAAqB3tnB,UACrE55b,EAAO,MAES,kBAATA,IACPA,EAAOuG,KAAKuL,MAAM9R,IAElBA,EAAM,CACF87J,EAAMij2B,UAAUy5C,kBAAqB184B,EAAMij2B,UAAUy5C,mBAAqB184B,EAAM084B,mBAChF184B,EAAM084B,iBAAmB184B,EAAMij2B,UAAUy5C,kBAE7C184B,EAAMij2B,UAAU0oD,uBAAuB3r5B,EAAMij2B,UAAUwoD,qBAAqB3tnB,SAAU55b,GACtF,IAAI85b,EAAUh+R,EAAM0w5B,cAAcxsjC,EAAKvX,MAAM,WAAW,GAAI,mBACxDs0T,GAAQh0D,MAA8B,SAAtBg0D,GAAQ1qT,KAAK73B,KAC7BssB,OAAOkH,UAAUutkC,iBAAiBzhoB,EAASh+R,EAAM084B,kBAGjD184B,EAAMq+5B,iBAAiBrgoB,GAE3Bh+R,EAAMij2B,UAAU2/D,gBAAgB5i6B,EAAM084B,iBAAkBx4iC,EAC5D,CACA87J,EAAM6i6B,qCACV,MAEI7i6B,EAAMij2B,UAAU2/D,gBAAgB5i6B,EAAM084B,iBAAkB,iDAGpE,EAEA1ilC,KAAKy2lC,wBAAwBhxwB,UAAY,SAAU56T,GAC/Cm7K,EAAMij2B,UAAUqzB,sBAAsBzxiC,EAAO4rH,OAAQ5rH,EAAO+6T,WAAY5/I,EAAMij2B,UAAUwoD,qBAAqB3tnB,SACjH,EAEA9je,KAAKy2lC,wBAAwBx/8B,QAAU,SAAUpsH,GAC7Cm7K,EAAMus5B,wBACNvs5B,EAAMij2B,UAAUqzB,sBAAsBzxiC,EAAO4rH,OAAQ5rH,EAAO+6T,WAAY5/I,EAAMij2B,UAAUwoD,qBAAqB3tnB,SACjH,CACJ,EAMAu5mB,EAAc1skC,UAAUm4lC,aAAe,SAAUt/D,GAC7C,GAAIA,GAAkC,kBAAdA,EAAwB,CAC5C,IACIu/D,EAAY,EAEZA,EADA/omC,KAAKwqiC,gBAAkB,GAAKhB,GAAa,KAC7B,EAGAA,EANG,IASnB,IAAIw/D,EAAYz8kC,SAASw8kC,EAAUrm/B,WACnC,OAAIsm/B,GAAa,EACN,EAGHhpmC,KAAKipiC,UAAUggE,sBAAsBC,oBAC9BF,EAGA,CAGnB,CAEI,OAAO,CAEf,EACA3rB,EAAc1skC,UAAU0jlC,uBAAyB,SAAUv+qB,GACvD,IAAI9vO,EAEA42R,GADJ52R,EAAQhmM,MACWgnS,WAAW,eAAiB8uI,GAC3CytrB,EAAYv95B,EAAMghG,WAAW,cAAgB8uI,GACjD,GAAI91a,KAAK+1a,UAAY/1a,KAAK+1a,SAASxpZ,SAASupZ,EAAUh/Z,WAAY,KAAM,CACpE,IAAIqylC,EAAcnpmC,KAAK+1a,SAASxpZ,SAASupZ,EAAUh/Z,WAAY,KAAK0H,MAIhE4qlC,GAHappmC,KAAK+1a,SAASxpZ,SAASupZ,EAAUh/Z,WAAY,KAAK8xI,OAClD5oJ,KAAKgnS,WAAW,eAAiB8uI,GAE5B,MAElBuzrB,EAAiBrj6B,EAAMij2B,UAAU9zhC,QAAQ+vP,aAAe,EAAIl/D,EAAMij2B,UAAU9zhC,QAAQ+vP,aAAel/D,EAAMij2B,UAAU9zhC,QAAQhP,MAAMyiJ,OAErIwg9B,EAAkB78kC,SAAS68kC,GAE3BC,EAAiB98kC,SAAS88kC,GAAkB98kC,SAAS88kC,GAAkB,IACvE,IAAIC,OAAU,EACVC,OAAU,EAEVhJ,OAAc,EACdjmlC,EAAS,IAAI7a,OACZO,KAAKmhlC,eAAiBjwjC,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,6BAA+B2/Y,IAC1G91a,KAAK4hlC,uBAAwB,EAE7B2e,EADwBrvkC,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,6BAA+B2/Y,GAAWhwa,SAAS,GAC3F4+J,KAGpC1kK,KAAK4hlC,uBAAwB,EAEjC,IAAImnB,EAAY/omC,KAAK8omC,aAAaK,GAClC,GAAIvsoB,EAAQ,CACH/6d,MAAM6uC,WAAWksb,EAAOz2d,MAAMqY,UAAW+klC,GACtCv95B,EAAMw54B,iBACNx54B,EAAMoo5B,yBAAyBt4qB,GAAW,GAIlD,IAAI5rY,EAAO87J,EAAM4o5B,cAAc94qB,GAC/BwzrB,EAAUC,EAAUR,EACpB,IAAIS,EAAexj6B,EAAMij2B,UAAUggE,sBAC/BO,EAAaN,qBAAuBM,EAAatvlC,EAAI,GAAKsvlC,EAAarvlC,EAAI,IACtEivlC,EAAkBD,GAAenpmC,KAAKwqiC,gBAAkB,KACzD8+D,EAAUE,EAAatvlC,EACvBqvlC,EAAUC,EAAarvlC,GAG/B6rL,EAAMs74B,iBAAmBgoB,EAAUC,EACnC,IAAIxoN,EAAa/g5B,KAAK2+lC,4BAClB8K,OAAoB,EACxB,GAAkB,IAAdV,EACA7+jC,EAAO87J,EAAM4o5B,cAAc94qB,GAC3B2zrB,EAAoBzj6B,EAAM0j6B,gBAAgB5zrB,EAAW,EAAG,OAEvD,CAED,IAAIiqrB,EAAWtvjC,KAAKuL,MAAMgqJ,EAAMg65B,4BAA4BlqrB,EAAW,EAAG,EAAGire,IACzEg/M,IACA71jC,EAAO61jC,EAEf,CACA,GAAI71jC,GAAQA,EAAK6kD,WAAai3G,EAAMo92B,aAAel5gC,EAAY,OAAKlqC,KAAKmhlC,eAAgB,CAErF,GADAvknB,EAAOz2d,MAAMy3d,gBAAkB,OAC1B53R,EAAMij2B,UAAUi9C,eAAiBlg5B,EAAMij2B,UAAUi9C,cAAcv6C,gBAAmB3riC,KAAK+1a,SAASxpZ,SAASupZ,EAAUh/Z,WAAY,KAChI,OAEJ,IAAI6ylC,EAAe3pmC,KAAK2+lC,4BAUxB,GARIyK,EADAO,EAAe,GAAKR,GAAe,KACjB,IAGA,KAEjBnj6B,EAAMij2B,UAAUggE,sBAAsBC,sBACvCE,EAAkB,MAEjBA,GAAmBD,IAAiBnj6B,EAAMij2B,UAAUggE,sBAAsBC,oBACvElpmC,KAAK4hlC,sBACL574B,EAAMs65B,WAAWp2jC,EAAM4rY,EAAWyqrB,GAGlCv65B,EAAMs65B,WAAWp2jC,EAAM4rY,QAM3B,GAFA9vO,EAAMu74B,qBAAsB,EAC5Bv74B,EAAMq74B,gBAAkB,EACpBrhlC,KAAK4hlC,sBACL574B,EAAMs65B,WAAWp2jC,EAAM4rY,EAAWyqrB,OAEjC,CACDv65B,EAAMq45B,eAAen0jC,EAAM4rY,GAC3B,IAAK,IAAIh1Z,EAAI,EAAGA,EAAIwolC,EAASxolC,IACzB,IAAK,IAAIue,EAAI,EAAGA,EAAIkqkC,EAASlqkC,IACf,IAANve,GAAiB,IAANue,IAGf6K,EAAOuG,KAAKuL,MAAMh8C,KAAKggmC,4BAA4BlqrB,EAAWh1Z,EAAGue,EAAGsqkC,MAEhE3j6B,EAAMq45B,eAAen0jC,EAAM4rY,EAI3C,CAEJ5rY,EAAO,IACX,MACK,GAAa,OAATA,IAAkBu/jC,EAAmB,CAc1C,GAbKzpmC,KAAK4hlC,wBACF5hlC,KAAKgtlC,sBACLhn5B,EAAMoo5B,yBAAyBt4qB,GAAW,GAG1C9vO,EAAMoo5B,yBAAyBt4qB,GAAW,GAE1C9vO,EAAMmw5B,kBACFnw5B,EAAMw54B,iBACNx54B,EAAMoo5B,yBAAyBt4qB,GAAW,IAIlD9vO,EAAMij2B,UAAUi9C,eAAiBlg5B,EAAMij2B,UAAUi9C,cAAcv6C,cAC/D,OAEC3l2B,EAAMij2B,UAAUggE,sBAAsBC,sBAAuBlpmC,KAAK4hlC,wBACnE0nB,EAAU,EACVC,EAAU,GAEdvj6B,EAAMq74B,gBAAkB,EACxBr74B,EAAMu74B,qBAAsB,EAC5B,IAAK,IAAIrnkC,EAAI,EAAGA,EAAIovlC,EAASpvlC,IACzB,IAAK,IAAIC,EAAI,EAAGA,EAAIovlC,EAASpvlC,IAAK,CAC9B,IAAIuijC,EAAa,KACbktC,EAAe5pmC,KAAK2+lC,4BAEpByK,EADAQ,EAAe,GAAKT,GAAe,KACjB,IAGA,KAEjBnj6B,EAAMij2B,UAAUggE,sBAAsBC,sBACvCE,EAAkB,MAElBppmC,KAAK4hlC,uBACL574B,EAAMs65B,WAAWhmlC,EAAQw7Z,EAAWyqrB,IACa,GAA7CvgmC,KAAK2hlC,iBAAiBh3kC,QAAQmra,KAC9B4mpB,EAAa,CAAEmtC,eAAgB/zrB,EAAWg0rB,aAAch0rB,EAAY,EAAGstoB,WAAYp92B,EAAMsl2B,gBAAiBm4C,OAAQz94B,EAAMy94B,OAAQvugC,OAAQ,iBAAkBirX,UAAWn6P,EAAMij2B,UAAU9zhC,QAAQghB,GAAI44D,SAAUi3G,EAAMo92B,YAC7MpjjC,KAAKqxlC,iBACL30B,EAAWtZ,WAAapjjC,KAAKqxlC,gBAEjCrxlC,KAAK+pmC,mBAAqB,IAAIjuC,IAAY97jC,KAAKipiC,WAC/CjpiC,KAAK+pmC,mBAAmB96+B,IAAMjvH,KAAKipiC,UAAUy6C,WAAa,IAAM1jlC,KAAKipiC,UAAUwoD,qBAAqBuY,YACpGhqmC,KAAK+pmC,mBAAmB74R,aAAe,OACvClx0B,KAAK+pmC,mBAAmB5z3B,KAAKum1B,GAC7B18jC,KAAK2hlC,iBAAiBv1kC,KAAK0pa,GAC3B9vO,EAAM+j6B,mBAAmBxkxB,UAAY,SAAU16T,GAE3C,KAAKm7K,EAAMij2B,UAAUi9C,eAAiBlg5B,EAAMij2B,UAAUi9C,cAAcv6C,gBAAmB3l2B,EAAM+vO,SAASxpZ,SAASupZ,EAAUh/Z,WAAY,MAArI,CAIA,IAAIozB,EAAOrf,EAAOqf,KAClB,GAAIA,GACoB,kBAATA,EACP,IACIA,EAAOuG,KAAKuL,MAAM9R,EACtB,CACA,MAAOjzB,IACH+uL,EAAMwr5B,eAAe,IAAKtnjC,EAAM87J,EAAMij2B,UAAUwoD,qBAAqBuY,aACrE9/jC,EAAO,IACX,CAGR,GAAIA,EAAM,CACN,KAAuB,kBAATA,GACVA,EAAOuG,KAAKuL,MAAM9R,GAEtB,GAAIA,EAAKu4jC,wBAA0Bv4jC,EAAK6kD,WAAai3G,EAAMo92B,WAAY,CACnEp92B,EAAMij2B,UAAU0oD,uBAAuB3r5B,EAAMij2B,UAAUwoD,qBAAqBuY,YAAa9/jC,GACzF,IAAIi4xB,OAAkC9+zB,IAApB6mC,EAAKi4xB,WAA4Bj4xB,EAAKi4xB,WAAarsZ,EACrE9vO,EAAMik6B,aAAa//jC,EAAMi4xB,GACzBn8nB,EAAMs65B,WAAWp2jC,EAAM4rY,EAC3B,CACJ,CAxBA,CAyBJ,EAEA91a,KAAK+pmC,mBAAmBtkxB,UAAY,SAAU56T,GAE1Cm7K,EAAMij2B,UAAUqzB,sBAAsBzxiC,EAAO4rH,OAAQ5rH,EAAO+6T,WAAY5/I,EAAMij2B,UAAUwoD,qBAAqBuY,YACjH,EAEAhqmC,KAAK+pmC,mBAAmB9y9B,QAAU,SAAUpsH,GACxCm7K,EAAMus5B,wBAENvs5B,EAAMij2B,UAAUqzB,sBAAsBzxiC,EAAO4rH,OAAQ5rH,EAAO+6T,WAAY5/I,EAAMij2B,UAAUwoD,qBAAqBuY,YACjH,KAKJttC,EAAa,CACTwtC,YAAchwlC,EAAGpD,WAAYqzlC,YAAchwlC,EAAGrD,WAAYs9kC,cAAgBgV,EAAiBtylC,WAAYuylC,eAAiBA,EAAgBvylC,WACxIqrzB,WAAarsZ,EAAWh/Z,WAAY2skC,OAAQz94B,EAAMy94B,OAAQ2mB,UAAYrB,EAAWjylC,WAAYuzlC,WAAaf,EAASxylC,WAAYwzlC,WAAaf,EAASzylC,WAErJiq4B,WAAa6oN,EAAc9ylC,WAAYo+D,OAAQ,iBAAkB6Z,SAAU/uF,KAAKojjC,WAAYjjnB,UAAWn6P,EAAMij2B,UAAU9zhC,QAAQghB,GAAIo0kC,wBAAyBvk6B,EAAMuk6B,wBAAwBz0rB,IAE1L91a,KAAKqxlC,iBAEL30B,EAAWtZ,WAAapjjC,KAAKqxlC,gBAEjCrr5B,EAAMwx5B,mBAAqB,IAAI17B,IAAY97jC,KAAKipiC,WAEhDjj2B,EAAMwx5B,mBAAmBvo+B,IAAM+2E,EAAMij2B,UAAUy6C,WAAa,IAAM194B,EAAMij2B,UAAUwoD,qBAAqB+Y,YACvGxk6B,EAAMwx5B,mBAAmBtmR,aAAe,OACxClroB,EAAMwx5B,mBAAmBrh3B,KAAKum1B,GAC9B123B,EAAMy74B,aAAar1kC,KAAK45L,EAAMo92B,WAAa,IAAMttoB,EAAY,IAAM57Z,EAAI,IAAMC,EAAI,IAAMyvlC,GAEvF5j6B,EAAMwx5B,mBAAmBjywB,UAAY,SAAU16T,GAE3C,KAAKm7K,EAAMij2B,UAAUi9C,eAAiBlg5B,EAAMij2B,UAAUi9C,cAAcv6C,gBAAmB3l2B,EAAM+vO,SAASxpZ,SAASupZ,EAAUh/Z,WAAY,MAArI,CAIA,IAAIozB,EAAOrf,EAAOqf,KAElB,GADe87J,EAAMms5B,iBAAiBjojC,GAElC87J,EAAM4q5B,sBAAqB,OAE1B,CACD,GAAI1mjC,GACoB,kBAATA,EACP,IACIA,EAAOuG,KAAKuL,MAAM9R,EACtB,CACA,MAAOjzB,IACH+uL,EAAMwr5B,eAAe,IAAKtnjC,EAAM87J,EAAMij2B,UAAUwoD,qBAAqB+Y,aACrEtgkC,EAAO,IACX,CAGR,GAAIA,EAAM,CACN,KAAuB,kBAATA,GACVA,EAAOuG,KAAKuL,MAAM9R,GAEtB,GAAIA,EAAKohZ,OAASphZ,EAAK6kD,WAAai3G,EAAMo92B,WAAY,CAClD,IAAIqnD,EAAoBvgkC,EAAKs//B,WAAat//B,EAAKs//B,UAAY,EAAKt//B,EAAKs//B,UAAY2/D,EACjFnj6B,EAAMij2B,UAAU0oD,uBAAuB3r5B,EAAMij2B,UAAUwoD,qBAAqB+Y,YAAatgkC,GACzF,IAAIi4xB,OAAkC9+zB,IAApB6mC,EAAKi4xB,WAA4Bj4xB,EAAKi4xB,WAAarsZ,EAChEszrB,GAAmBqB,IAAsBzk6B,EAAMij2B,UAAUggE,sBAAsBC,oBAChFlj6B,EAAMik6B,aAAa//jC,EAAMi4xB,GAGzBn8nB,EAAMik6B,aAAa//jC,EAAMi4xB,EAAYj4xB,EAAKs0jC,MAAOt0jC,EAAKu0jC,OAErD2K,GAAmBqB,IAAsBzk6B,EAAMij2B,UAAUggE,sBAAsBC,oBAChFlj6B,EAAMs65B,WAAWp2jC,EAAMi4xB,GAGvBn8nB,EAAMq45B,eAAen0jC,EAAMi4xB,EAEnC,CACJ,CACJ,CAzCA,CA0CJ,EAEAni0B,KAAKw3lC,mBAAmB/xwB,UAAY,SAAU56T,GAE1Cm7K,EAAMij2B,UAAUqzB,sBAAsBzxiC,EAAO4rH,OAAQ5rH,EAAO+6T,WAAY5/I,EAAMij2B,UAAUwoD,qBAAqB+Y,YACjH,EAEAxqmC,KAAKw3lC,mBAAmBvg9B,QAAU,SAAUpsH,GACxCm7K,EAAMus5B,wBAENvs5B,EAAMij2B,UAAUqzB,sBAAsBzxiC,EAAO4rH,OAAQ5rH,EAAO+6T,WAAY5/I,EAAMij2B,UAAUwoD,qBAAqB+Y,YACjH,EAER,CAER,EACmD,IAA/CxqmC,KAAKy9kC,kBAAkB9ykC,QAAQmra,IAC/B9vO,EAAMy34B,kBAAkBrxkC,KAAK0pa,EAErC,CACJ,CACJ,EAIAunqB,EAAc1skC,UAAU+5lC,yBAA2B,SAAU50rB,EAAW+7pB,GACpE,IAAInV,EACA123B,EAAQhmM,KACZ08jC,EAAa,CAAEmtC,eAAgB/zrB,EAAWg0rB,aAAch0rB,EAAY,EAAGstoB,WAAYp92B,EAAMsl2B,gBAAiBm4C,OAAQz94B,EAAMy94B,OAAQvugC,OAAQ,iBAAkBirX,UAAWn6P,EAAMij2B,UAAU9zhC,QAAQghB,GAAI44D,SAAUi3G,EAAMo92B,YAC7MpjjC,KAAKqxlC,iBACL30B,EAAWtZ,WAAapjjC,KAAKqxlC,gBAEjCrxlC,KAAK+pmC,mBAAqB,IAAIjuC,IAAY97jC,KAAKipiC,WAC/CjpiC,KAAK+pmC,mBAAmB96+B,IAAMjvH,KAAKipiC,UAAUy6C,WAAa,IAAM1jlC,KAAKipiC,UAAUwoD,qBAAqBuY,YACpGhqmC,KAAK+pmC,mBAAmB74R,aAAe,OACvClx0B,KAAK+pmC,mBAAmB5z3B,KAAKum1B,GAC7B18jC,KAAK2hlC,iBAAiBv1kC,KAAK0pa,GAC3B9vO,EAAM+j6B,mBAAmBxkxB,UAAY,SAAU16T,GAE3C,KAAKm7K,EAAMij2B,UAAUi9C,eAAiBlg5B,EAAMij2B,UAAUi9C,cAAcv6C,gBAAmB3l2B,EAAM+vO,SAASxpZ,SAASupZ,EAAUh/Z,WAAY,MAArI,CAIA,IAAIozB,EAAOrf,EAAOqf,KAElB,IADe87J,EAAMms5B,iBAAiBjojC,GACvB,CACX,GAAIA,GACoB,kBAATA,EACP,IACIA,EAAOuG,KAAKuL,MAAM9R,EACtB,CACA,MAAOjzB,IACH+uL,EAAMwr5B,eAAe,IAAKtnjC,EAAM87J,EAAMij2B,UAAUwoD,qBAAqBuY,aACrE9/jC,EAAO,IACX,CAGR,GAAIA,EAAM,CACN,KAAuB,kBAATA,GACVA,EAAOuG,KAAKuL,MAAM9R,GAEtB,GAAIA,EAAKu4jC,wBAA0Bv4jC,EAAK6kD,WAAai3G,EAAMo92B,WAAY,CACnEp92B,EAAMij2B,UAAU0oD,uBAAuB3r5B,EAAMij2B,UAAUwoD,qBAAqBuY,YAAa9/jC,GACzF,IAAIi4xB,OAAkC9+zB,IAApB6mC,EAAKi4xB,WAA4Bj4xB,EAAKi4xB,WAAarsZ,EAErE,GADA9vO,EAAMik6B,aAAa//jC,EAAMi4xB,GACpBp2f,GAAkB8lwB,GASnB7r4B,EAAMs65B,WAAWp2jC,EAAM4rY,OATe,CACtC,IAAI60rB,EAAe94B,EAAiBltU,OAAO,GACvCimW,EAAe1gkC,EAAKu4jC,uBAAuB,GAAGl2kC,SAASupZ,EAAUh/Z,WAAY,KAAK4rlC,SAAS/vkC,MAAM,IACjGk4kC,EAAkB3gkC,EAAK2gkC,gBACvBC,EAAoB9k6B,EAAM+k6B,kBAAkBJ,EAAcC,EAAcC,GAC5Eh5B,EAAiBi5B,kBAAoBA,EACrC9qmC,KAAKipiC,UAAUgb,iBAAiB+mD,iBAAiBl1rB,EAAW+7pB,EAAkB,0BAClF,CAIJ,CACJ,CACJ,CArCA,CAsCJ,EAEA7xkC,KAAK+pmC,mBAAmBtkxB,UAAY,SAAU56T,GAE1Cm7K,EAAMij2B,UAAUqzB,sBAAsBzxiC,EAAO4rH,OAAQ5rH,EAAO+6T,WAAY5/I,EAAMij2B,UAAUwoD,qBAAqBuY,YACjH,EAEAhqmC,KAAK+pmC,mBAAmB9y9B,QAAU,SAAUpsH,GACxCm7K,EAAMus5B,wBAENvs5B,EAAMij2B,UAAUqzB,sBAAsBzxiC,EAAO4rH,OAAQ5rH,EAAO+6T,WAAY5/I,EAAMij2B,UAAUwoD,qBAAqBuY,YACjH,CACJ,EAIA3sB,EAAc1skC,UAAUo6lC,kBAAoB,SAAUJ,EAAcC,EAAcC,GAE9E,IADA,IAAIC,EAAoB,GACf96lC,EAAI,EAAGA,EAAI66lC,EAAgBznmC,OAAQ4M,IAAK,CAC7C,IAAIorC,EAAS,GACTyvjC,EAAgBt+kC,SAASvc,EAAE8G,WAAY,KAAK+H,GAAK8rlC,EAAa9rlC,EAAIu8B,GAAUyvjC,EAAgBt+kC,SAASvc,EAAE8G,WAAY,KAAKsK,GAAKuplC,EAAavplC,EAAIg6B,GAAUyvjC,EAAgBt+kC,SAASvc,EAAE8G,WAAY,KAAK+H,GAAK8rlC,EAAa9rlC,EAAI8rlC,EAAarpY,OAASlmrB,GAAUyvjC,EAAgBt+kC,SAASvc,EAAE8G,WAAY,KAAKsK,GAAKuplC,EAAavplC,EAAIuplC,EAAatpY,MAAQjmrB,IACjV0vjC,GAAqBF,EAAar+kC,SAASvc,EAAE8G,WAAY,KAEjE,CACA,OAAOg0lC,EAAkBz6lC,QAAS,WAAa,GACnD,EAKAgtkC,EAAc1skC,UAAU45lC,wBAA0B,SAAUz0rB,GACxD,IAAIy0rB,GAA0B,EAI9B,OAHIvqmC,KAAKmilC,uBAAgE,IAAtCnilC,KAAKmilC,sBAAsB/+kC,SAAoE,GAAlDpD,KAAKmilC,sBAAsBx3kC,QAAQmra,KAC/Gy0rB,GAA0B,GAEvBA,CACX,EACAltB,EAAc1skC,UAAU+4lC,gBAAkB,SAAU5zrB,EAAW0orB,EAAOC,GAClE,IAAI19M,EAAa/g5B,KAAK2+lC,4BAClBC,EAAgB5+lC,KAAKojjC,WAAa,IAAMttoB,EAAY,IAAM0orB,EAAQ,IAAMC,EAAQ,IAAM19M,EAC1F,SAAI/g5B,KAAKyhlC,cAAgBzhlC,KAAKyhlC,aAAa92kC,QAAQi0lC,IAAkB,EAIzE,EAQAvhB,EAAc1skC,UAAU6glC,eAAiB,SAAU/68B,EAAQyD,EAAchlE,GACrEl1E,KAAKuylC,wBACLvylC,KAAKipiC,UAAUqzB,sBAAsB7l7B,EAAQyD,EAAchlE,EAC/D,EAMAmogC,EAAc1skC,UAAUi+kC,cAAgB,SAAU94qB,EAAWi1nB,GACzD,IAAIhqJ,EAAa/g5B,KAAK2+lC,4BAClB3+lC,KAAKipiC,UAAUgiE,sBAAwBjrmC,KAAKipiC,UAAUggE,sBAAsBC,sBAC5EnoN,EAAa,GAGjB,IAAImqN,EAAalrmC,KAAKmrmC,wBAAwBr1rB,EAAWire,GAAc/g5B,KAAKmrmC,wBAAwBr1rB,EAAWire,GAAc/g5B,KAAKormC,iBAAiBt1rB,GACnJ,IAAKo1rB,GAAcngE,EAAc,CAE7B,IAAIsgE,EAAiBrrmC,KAAKggmC,4BAA4BlqrB,EAAW,EAAG,EAAGire,GACnEsqN,IACAH,EAAaG,EAErB,CAEA,IAAInhkC,EAAO,KASX,OARIghkC,IAEAhhkC,EAAOghkC,EACFlrmC,KAAKsrmC,qBACNphkC,EAAOuG,KAAKuL,MAAMkvjC,IAEtBlrmC,KAAKsrmC,oBAAqB,GAEvBphkC,CACX,EAUAmziC,EAAc1skC,UAAUs5lC,aAAe,SAAU//jC,EAAM4rY,EAAW0orB,EAAOC,GACrE,IAAIx7C,EACJ,GAAK/4gC,EAAY,MAaZ,CAED,IAAIqhkC,EAAUvrmC,KAAK02lC,cAAcxsjC,EAAY,MAAEvX,MAAM,WAAW,GAAI,aAGhEqxc,GADMxqW,KAAO8q+B,WACCrgoB,gBAAgBsnoB,GAE7B1pmC,MAAM28lC,IAAU38lC,MAAM48lC,IAAsB,IAAVD,GAAyB,IAAVC,GAClDx7C,EAAc,CAEV33nB,MAAO04C,EAASw6S,qBAAsBt0uB,EAA2B,qBAAGshkC,WAAYthkC,EAAiB,WAAGuhkC,gBAAiBvhkC,EAAsB,gBAAG+zjC,eAAgB/zjC,EAAqB,eAAGg0jC,SAAUh0jC,EAAe,SAAGwhkC,mBAAoBxhkC,EAAyB,mBAE/PN,YAAaM,EAAkB,YAAG1rB,MAAO0rB,EAAY,MAAG4//B,WAAY5//B,EAAiB,WAAGy4jC,SAAUz4jC,EAAe,SAAGqoY,SAAUroY,EAAe,SAAGwxQ,YAAaxxQ,EAAkB,YAAG6kD,SAAU7kD,EAAe,SAAG622B,WAAY722B,EAAiB,WAAGs0jC,MAAOA,EAAOC,MAAOA,GAEnQz+lC,KAAK+1a,SAASxpZ,SAASupZ,EAAUh/Z,WAAY,OAE7C9W,KAAK+1a,SAASD,GAAWvD,SAAW7hY,WAAWxG,EAAe,WAGlElqC,KAAK0piC,UAAUN,eAAetznB,GAAa5rY,EAAsB,iBAGjE+4gC,EAAc,CAEV33nB,MAAO04C,EAASw6S,qBAAsBt0uB,EAA2B,qBAAGs0jC,MAAOA,EAAOC,MAAOA,EAAOjglC,MAAO0rB,EAAY,MAAG622B,WAAY722B,EAAiB,WAG/J,KAxCoB,CAChB,IAAIyhkC,EAAYzhkC,EAAKu4jC,uBAAuB,GAAGl2kC,SAASupZ,EAAUh/Z,WAAY,KAC9EmsiC,EAAc,CAEVr5gC,YAAaM,EAAkB,YAAG4//B,WAAY5//B,EAAiB,WAAGy4jC,SAAUgJ,EAAUjJ,SAAUnwrB,SAAUroY,EAAe,SAAG6kD,SAAU7kD,EAAe,UAErJlqC,KAAK+1a,SAASxpZ,SAASupZ,EAAUh/Z,WAAY,OAE7C9W,KAAK+1a,SAASD,GAAWvD,SAAW7hY,WAAWxG,EAAe,WAGlElqC,KAAK0piC,UAAUN,eAAetznB,GAAa5rY,EAAsB,eACrE,CAgCIlqC,KAAK+1a,SAASxpZ,SAASupZ,EAAUh/Z,WAAY,MACjC9W,KAAK+1a,SAASxpZ,SAASupZ,EAAUh/Z,WAAY,KAAK0H,MAElExe,KAAK4rmC,qBAAqB91rB,EAAWmtoB,EAAau7C,EAAOC,EAC7D,EAMAphB,EAAc1skC,UAAU8rjC,qBAAuB,SAAUv84B,GACrD,IAAK,IAAI/zK,EAAI,EAAGA,EAAInM,KAAKipiC,UAAUszB,oBAAoBM,YAAYz5jC,OAAQ+I,IAEvE+zK,EAAQm2D,iBAAiBr2O,KAAKipiC,UAAUszB,oBAAoBM,YAAYtwiC,SAASpgB,EAAE2K,WAAY,KAAK0/N,WAAYx2O,KAAKipiC,UAAUszB,oBAAoBM,YAAYtwiC,SAASpgB,EAAE2K,WAAY,KAAKs8zB,YAEnM,EAMAiqQ,EAAc1skC,UAAUy6lC,iBAAmB,SAAUt1rB,GAEjD,IAAK,IAAIxpa,KAAOtM,KAAK++kC,iBAEjB,GAAI/+kC,KAAK++kC,iBAAiBjukC,eAAexE,IAEjCtM,KAAK++kC,iBAAiBzykC,GAAKmgB,QAAUqpZ,EAGrC,OAFA91a,KAAKsrmC,oBAAqB,EAEnBtrmC,KAAK++kC,iBAAiBzykC,GAAKyykC,iBAI9C,OAAO,IACX,EAOA1B,EAAc1skC,UAAUw6lC,wBAA0B,SAAUr1rB,EAAWire,GACnE,OAAO/v3B,OAAOor0B,eAAe3woB,QAAQzrN,KAAKojjC,WAAa,IAAMttoB,EAAY,IAAMire,EACnF,EASAs8L,EAAc1skC,UAAUqvlC,4BAA8B,SAAUlqrB,EAAW0orB,EAAOC,EAAO19M,GACrF,OAAO/v3B,OAAOor0B,eAAe3woB,QAAQzrN,KAAKojjC,WAAa,IAAMttoB,EAAY,IAAM0orB,EAAQ,IAAMC,EAAQ,IAAM19M,EAC/G,EAKAs8L,EAAc1skC,UAAUgulC,0BAA4B,WAChD,IAAI59M,EAAa/g5B,KAAKwqiC,gBACtB,OAAIxqiC,KAAKipiC,UAAU4iE,wBACV9qN,GAAe,EAChBA,EAAa,EAEPA,EAAc,GAAKA,GAAc,EACvCA,EAAa,EAEPA,EAAc,GAAKA,GAAc,EACvCA,EAAa,EAEPA,EAAc,GAAKA,GAAc,IACvCA,EAAa,GAEVA,IAGHA,GAAc,IACdA,EAAa,GAEVA,EAEf,EAEAs8L,EAAc1skC,UAAUi7lC,qBAAuB,SAAU91rB,EAAWmtoB,EAAau7C,EAAOC,GAEpF,IAAIqN,EAAclomC,KAAKmgB,MAAM0sB,KAAK+mF,UAAUxmG,OAAOor0B,gBAAgBh51B,OAAS,MAE5E,GAAI0omC,GADiB,IACc,CAC/B,IAAK9rmC,KAAKkjjC,gBAAiB,CAIvB,IAFA,IAAI6oD,EAAiB,GACjBC,EAAiB,GACZ7/lC,EAAI,EAAGA,EAAI6kB,OAAOor0B,eAAeh51B,OAAQ+I,IAC1C6kB,OAAOor0B,eAAe9v1B,IAAIH,IAAM6kB,OAAOor0B,eAAe9v1B,IAAIH,GAAGwmB,MAAM,KAAK,KACrB,gBAA/C3B,OAAOor0B,eAAe9v1B,IAAIH,GAAGwmB,MAAM,KAAK,IAExC3yB,KAAKmjjC,kBAAkBnyhC,OAAOor0B,eAAe9v1B,IAAIH,IAAM6kB,OAAOor0B,eAAe3woB,QAAQz6L,OAAOor0B,eAAe9v1B,IAAIH,IAC/G4/lC,EAAe3/lC,KAAK4kB,OAAOor0B,eAAe9v1B,IAAIH,MAEM,eAA/C6kB,OAAOor0B,eAAe9v1B,IAAIH,GAAGwmB,MAAM,KAAK,IAKO,iBAA/C3B,OAAOor0B,eAAe9v1B,IAAIH,GAAGwmB,MAAM,KAAK,MAH7C3yB,KAAK6glC,iBAAiB7vjC,OAAOor0B,eAAe9v1B,IAAIH,IAAM6kB,OAAOor0B,eAAe3woB,QAAQz6L,OAAOor0B,eAAe9v1B,IAAIH,IAC9G6/lC,EAAe5/lC,KAAK4kB,OAAOor0B,eAAe9v1B,IAAIH,MAQ1D,GAAI4/lC,EACA,IAAS5/lC,EAAI,EAAGA,EAAI4/lC,EAAe3omC,OAAQ+I,IACvC6kB,OAAOor0B,eAAerwoB,WAAWgg5B,EAAex/kC,SAASpgB,EAAE2K,WAAY,MAG/E,GAAIk1lC,EACA,IAAS7/lC,EAAI,EAAGA,EAAI6/lC,EAAe5omC,OAAQ+I,IACvC6kB,OAAOor0B,eAAerwoB,WAAWig5B,EAAez/kC,SAASpgB,EAAE2K,WAAY,KAGnF,CAGA,GAFA9W,KAAKkjjC,iBAAkB,GACvB4oD,EAAclomC,KAAKmgB,MAAM0sB,KAAK+mF,UAAUxmG,OAAOor0B,gBAAgBh51B,OAAS,QACrD,IAAM,CACrB,IAAI6omC,EAAgBj7kC,OAAOor0B,eAAeh51B,OACtC6omC,EAAgB,MAChBA,EAAgB,KAEpB,IAAS9/lC,EAAI,EAAGA,EAAI8/lC,EAAe9/lC,IAC3B6kB,OAAOor0B,eAAe9v1B,IAAIH,IAAM6kB,OAAOor0B,eAAe9v1B,IAAIH,GAAGwmB,MAAM,KAAK,IACrB,gBAA/C3B,OAAOor0B,eAAe9v1B,IAAIH,GAAGwmB,MAAM,KAAK,IACxC3B,OAAOor0B,eAAerwoB,WAAW/6L,OAAOor0B,eAAe9v1B,IAAIH,GAI3E,CACJ,CACA,IAAI404B,EAAa/g5B,KAAK2+lC,4BAClB98lC,MAAM28lC,IAAU38lC,MAAM48lC,IAEtBztkC,OAAOor0B,eAAexwoB,QAAQ5rN,KAAKojjC,WAAa,IAAMttoB,EAAY,IAAMire,EAAYtw2B,KAAK+mF,UAAUyr7B,IACnGjjjC,KAAKo81B,eAAehw1B,KAAKpM,KAAKojjC,WAAa,IAAMttoB,EAAY,IAAMire,KAGnE/g5B,KAAKo81B,eAAehw1B,KAAKpM,KAAKojjC,WAAa,IAAMttoB,EAAY,IAAM0orB,EAAQ,IAAMC,EAAQ,IAAM19M,GAE/F/v3B,OAAOor0B,eAAexwoB,QAAQ5rN,KAAKojjC,WAAa,IAAMttoB,EAAY,IAAM0orB,EAAQ,IAAMC,EAAQ,IAAM19M,EAAYtw2B,KAAK+mF,UAAUyr7B,IAEvI,EACAo6B,EAAc1skC,UAAU+llC,cAAgB,SAAU5y4B,EAAc4gI,GAK5D,IAJA,IACIwnxB,EAAiBlm+B,KAAK89E,GAEtBqo5B,EAAa,GACRzulC,EAAS,EAAGA,EAASwulC,EAAe9omC,OAAQsa,GAJrC,IAI0D,CAItE,IAHA,IAAI9M,EAAQs7lC,EAAet7lC,MAAM8M,EAAQA,EAL7B,KAOR0ulC,EAAc,IAAI17lC,MAAME,EAAMxN,QACzB+I,EAAI,EAAGA,EAAIyE,EAAMxN,OAAQ+I,IAE9BigmC,EAAYjgmC,GAAKyE,EAAMioB,WAAW1sB,GAGtC,IAAI65vB,EAAY,IAAI52tB,WAAWg9jC,GAC/BD,EAAW//lC,KAAK45vB,EACpB,CAGA,OADW,IAAIniS,KAAKsooB,EAAY,CAAEv/lC,KAAM83U,GAE5C,EACA24vB,EAAc1skC,UAAU07lC,gBAAkB,WAEtC,MAAO,uCAAuCh8lC,QAAQ,SAAS,SAAUgQ,GAErE,IAAIyZ,EAAyB,GAAhBl2B,KAAKk2B,SAAgB,EAClC,OAAOA,EAAOhjB,SAAS,GAC3B,GACJ,EACAumkC,EAAc1skC,UAAUuriC,WAAa,WAEjC,MAAO,kBAAoBl8iC,KAAKqsmC,iBACpC,EAOAhvB,EAAc1skC,UAAU+zkC,qBAAuB,SAAU3tjC,EAAOu1kC,GAC5D,IAAIC,GAAc,EAkBlB,OAjBID,GACAtsmC,KAAKwsmC,mBAAmBz1kC,EAAMnqB,MAAM,GAGnC5M,KAAKiuiC,gBAAgBlpyB,YAAc/kQ,KAAKiuiC,gBAAgBtrvB,WAAc5rR,EAAMsC,SAAWtC,EAAMsC,QAAWr5B,KAAKiuiC,gBAAgB99xB,YAAcnwQ,KAAKiuiC,gBAAgBtrvB,aACjK4pzB,GAAc,EACVD,GACAtsmC,KAAKwsmC,mBAAmBz1kC,EAAMnqB,MAAM,IAIvC5M,KAAKiuiC,gBAAgB/oyB,aAAellQ,KAAKiuiC,gBAAgBrrvB,UAAa7rR,EAAMuC,SAAWvC,EAAMuC,QAAWt5B,KAAKiuiC,gBAAgBl5wB,aAAe/0R,KAAKiuiC,gBAAgBrrvB,YAClK2pzB,GAAc,EACVD,GACAtsmC,KAAKwsmC,mBAAmBz1kC,EAAMnqB,MAAM,IAGrC2/lC,CACX,EACAlvB,EAAc1skC,UAAU67lC,mBAAqB,SAAUj1kC,EAAWk1kC,GAC5C,cAAdl1kC,IACAv3B,KAAKm/kC,qBAAuBstB,EAEpC,EAKApvB,EAAc1skC,UAAUw9jC,yBAA2B,WAC/CnukC,KAAK6qiC,yBAA0B,EAC/B7qiC,KAAKiuiC,gBAAgB/lxB,UAAU/0P,OAAO,2BAClCnzB,KAAKipiC,UAAU0B,qBACf3qiC,KAAKipiC,UAAU0B,oBAAoBg6C,qBAEvC3klC,KAAKiuiC,gBAAgB/lxB,UAAU90P,IAAI,4BACnCpzB,KAAKiuiC,gBAAgB3ygC,iBAAiB,eAAe,WACjD,OAAO,CACX,GACJ,EAMA+hjC,EAAc1skC,UAAUq2R,WAAa,SAAUizxB,GAC3C,OAAO/oiC,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK8jiC,EAC/D,EAMAojB,EAAc1skC,UAAU0slC,aAAe,SAAUvnrB,GAC7C,OAAI91a,KAAK+1a,SAASxpZ,SAASupZ,EAAUh/Z,WAAY,KACtC9W,KAAK+1a,SAASxpZ,SAASupZ,EAAUh/Z,WAAY,KAAK0H,MAAQxe,KAAKwqiC,gBAG/D,CAEf,EAMA6yC,EAAc1skC,UAAUo9kC,cAAgB,SAAUj4qB,GAC9C,OAAI91a,KAAK+1a,SAASxpZ,SAASupZ,EAAUh/Z,WAAY,KACtC9W,KAAK+1a,SAASxpZ,SAASupZ,EAAUh/Z,WAAY,KAAK8xI,OAAS5oJ,KAAKwqiC,gBAGhE,CAEf,EAMA6yC,EAAc1skC,UAAUq9kC,WAAa,SAAUl4qB,GAC3C,OAAI91a,KAAK+1a,SAASxpZ,SAASupZ,EAAUh/Z,WAAY,KACtC9W,KAAK+1a,SAASxpZ,SAASupZ,EAAUh/Z,WAAY,KAAKo3I,IAAMluJ,KAAKwqiC,gBAG7D,CAEf,EACA6yC,EAAc1skC,UAAUozkC,0BAA4B,WAChD,OAAI/jlC,KAAKipiC,UAAUtiiB,cAAcwxjB,yBACtBn4jC,KAAKipiC,UAAUtiiB,cAAcwxjB,wBAAwBu0C,eAKpE,EACArvB,EAAc1skC,UAAUqzkC,4BAA8B,WAClD,IAAIC,EAAsBjklC,KAAKipiC,UAAUtiiB,cAAc2ijB,0BACvD,OAAI26B,GACOA,EAAoByoB,eAKnC,EAKArvB,EAAc1skC,UAAUu5kC,4BAA8B,WAClD,QAAIlqlC,KAAK6llC,gCACE7llC,KAAKipiC,UAAUgb,iBAAiBsE,2BAA2BmjC,0BAK1E,EACArO,EAAc1skC,UAAUg7kC,wBAA0B,WAE9C,OAAI3rlC,KAAKipiC,UAAUgb,mBAAoBjkjC,KAAKipiC,UAAUgb,iBAAiByE,2BAC9D1ojC,KAAKipiC,UAAUgb,iBAAiByE,yBAAyBwzC,kBAUtE,EACA7e,EAAc1skC,UAAUs5kC,+BAAiC,WACrD,QAAIjqlC,KAAK6llC,kCACD7llC,KAAKipiC,UAAUgb,iBAAiBsE,2BAA2BmB,2BAUvE,EAKA2zB,EAAc1skC,UAAU8rlC,+BAAiC,WACrD,OAAIz8lC,KAAK6llC,+BACE7llC,KAAKipiC,UAAUgb,iBAAiBsE,2BAA2B0iC,4BAG3D,IAEf,EAKA5N,EAAc1skC,UAAUg8lC,wBAA0B,WAC9C,QAAI3smC,KAAKipiC,UAAUtiiB,eACR3mgB,KAAKipiC,UAAUtiiB,cAAcwxjB,wBAAwBy0C,4BAKpE,EAKAvvB,EAAc1skC,UAAUuijC,0BAA4B,WAChD,QAAIlzjC,KAAKipiC,UAAUgb,kBACRjkjC,KAAKipiC,UAAUgb,iBAAiB4oD,kBAK/C,EAKAxvB,EAAc1skC,UAAUk1kC,6BAA+B,WACnD,OAAI7llC,KAAKipiC,UAAUgb,iBACRjkjC,KAAKipiC,UAAUgb,iBAAiBsE,2BAGhC,IAEf,EAKA80B,EAAc1skC,UAAU61lC,wBAA0B,WAC9C,QAAIxmmC,KAAKipiC,UAAU9p6B,eACXn/H,KAAKipiC,UAAU9p6B,aAAcn/H,KAAKipiC,UAAU9p6B,WAAWmy8B,sBAUnE,EAKA+L,EAAc1skC,UAAUm8lC,qBAAuB,WAC3C,QAAI9smC,KAAKipiC,UAAUyiC,kBAMvB,EAKA2R,EAAc1skC,UAAUi5iC,4BAA8B,WAClD,QAAI5pjC,KAAKipiC,UAAU9p6B,eACXn/H,KAAKipiC,UAAU9p6B,aAAcn/H,KAAKipiC,UAAU9p6B,WAAW0q7B,wBAUnE,EAKAwzB,EAAc1skC,UAAU+wlC,wBAA0B,WAC9C,QAAI1hmC,KAAKipiC,UAAU9p6B,eACXn/H,KAAKipiC,UAAU9p6B,aAAcn/H,KAAKipiC,UAAU9p6B,WAAW4t8B,sBAUnE,EAKAsQ,EAAc1skC,UAAUsxlC,sBAAwB,WAC5C,QAAIjimC,KAAKipiC,UAAU9p6B,eACXn/H,KAAKipiC,UAAU9p6B,aAAcn/H,KAAKipiC,UAAU9p6B,WAAWy17B,oBAUnE,EAKAyoB,EAAc1skC,UAAUm2lC,0BAA4B,WAChD,QAAI9mmC,KAAKipiC,UAAU9p6B,eACXn/H,KAAKipiC,UAAU9p6B,aAAcn/H,KAAKipiC,UAAU9p6B,WAAWg27B,4BAUnE,EAKAkoB,EAAc1skC,UAAUm4iC,+BAAiC,WAErD,SAAI9ojC,KAAKwmmC,2BAA6BxmmC,KAAK4pjC,+BAAiC5pjC,KAAK0hmC,2BAA6B1hmC,KAAK8mmC,6BAA+B9mmC,KAAK8smC,uBAM3J,EAMAzvB,EAAc1skC,UAAU0tV,iBAAmB,SAAUh+V,GACjD,IAAIwnkC,EACAt1uB,EACAC,EACAr3T,EAAgB96B,EAAEgI,OAAOwtR,cAC7B,IAAiC,IAA7Bx1R,EAAEuM,KAAKjC,QAAQ,UAEf,GADAk9jC,EAAWxnkC,EACPL,KAAKipiC,UAAU9p6B,WAAY,CAC3B,IAAIsq6B,EAAUzpiC,KAAKgnS,WAAW,YAAchnS,KAAKipiC,UAAU9p6B,WAAW2o8B,mBAAmBznkC,IACzF,GAAIopiC,EAAS,CACT,IAAIs+B,EAAkBt+B,EAAQh1wB,wBAC9B89D,EAAUs1uB,EAASt+6B,eAAe,GAAGlwH,QAAU0uiC,EAAgBpk8B,KAC/D6uN,EAAUq1uB,EAASt+6B,eAAe,GAAGjwH,QAAUyuiC,EAAgB756B,GACnE,CACJ,OAGA,GAAI7tJ,EAAEgI,OAAO6/Q,UAAUh1P,SAAS,kBAC5Bq/T,EAAUlyV,EAAEkyV,QAAUlyV,EAAEgI,OAAOs6S,WAC/B6vC,EAAUnyV,EAAEmyV,QAAUnyV,EAAEgI,OAAOu6S,eAE9B,GAAIviT,EAAEgI,OAAO6/Q,UAAUh1P,SAAS,cAAgBiI,EAAe,CAChE,IAAI6siC,EAAmB7siC,EAAcs5P,wBACrC89D,EAAUlyV,EAAEg5B,QAAU2uiC,EAAiBrk8B,KACvC6uN,EAAUnyV,EAAEi5B,QAAU0uiC,EAAiB956B,GAE3C,MACK,GAAI7tJ,EAAEgI,QAAWhI,GAAKA,EAAEysE,MAAS3xC,IAAkBA,EAAc+sP,UAAUh1P,SAAS,mBAAqBiI,EAAc06P,cAAc3N,UAAUh1P,SAAS,mBAAoB,CAEzK80iC,OAAmB,EACvB,GAA4B,kBAAxB3nkC,EAAEysE,KAAK,GAAG/rE,UACVinkC,EAAmB3nkC,EAAEysE,KAAK,GAAG2nN,6BAG7B,IAAK,IAAItoR,EAAI,EAAGA,EAAI9L,EAAEysE,KAAK1pE,OAAQ+I,IAC/B,GAAqD,kBAAjD9L,EAAEysE,KAAKvgD,SAASpgB,EAAE2K,WAAY,KAAK/V,UAA+B,CAClEinkC,EAAmB3nkC,EAAEysE,KAAKvgD,SAASpgB,EAAE2K,WAAY,KAAK29Q,wBACtD,KACJ,CAGR89D,EAAUlyV,EAAEg5B,QAAU2uiC,EAAiBrk8B,KACvC6uN,EAAUnyV,EAAEi5B,QAAU0uiC,EAAiB956B,GAE3C,MACK,GAAI7tJ,EAAEgI,QAAU8yB,GAAiBA,EAAc+sP,UAAUh1P,SAAS,mBAAsB7yB,EAAEgI,OAAO6/Q,UAAUh1P,SAAS,qBAAuB,CAExI80iC,OAAmB,EAEnBA,EADC3nkC,EAAEgI,OAAO6/Q,UAAUh1P,SAAS,qBACV7yB,EAAEgI,OAAO+qR,aAAaA,aAAaA,aAAaA,aAAaqB,wBAG7Dp0R,EAAEgI,OAAO+qR,aAAaA,aAAaA,aAAaqB,wBAEvE89D,EAAUlyV,EAAEg5B,QAAU2uiC,EAAiBrk8B,KACvC6uN,EAAUnyV,EAAEi5B,QAAU0uiC,EAAiB956B,GAC3C,MAEIqkM,EAAUlyV,EAAEkyV,QACZC,EAAUnyV,EAAEmyV,QAGpB,MAAO,CAAEt4U,EAAGq4U,EAASp4U,EAAGq4U,EAC5B,EACA6qvB,EAAc1skC,UAAU+5kC,kBAAoB,SAAUxggC,EAAUjxE,EAAMq3Q,EAAK15Q,GAEvE,IAAI/F,EAsBA1G,EAeJ,OAtCA8O,EAAKixE,SAAWA,EAGXtzE,EAkBD/F,EAAMi2jC,IAAkBx2yB,EAAKtwR,KAAMA,KAAKipiC,WAjBpB,SAAhBjpiC,KAAKk1E,QAAqC,uBAAhBl1E,KAAKk1E,QAAmD,eAAhBl1E,KAAKk1E,QACvD,eAAhBl1E,KAAKk1E,QAA2C,sBAAhBl1E,KAAKk1E,QAAkD,sBAAhBl1E,KAAKk1E,QAC5D,uBAAhBl1E,KAAKk1E,SAAsE,IAAnCl1E,KAAKk1E,OAAOvqE,QAAQ,YAAuD,IAAnC3K,KAAKk1E,OAAOvqE,QAAQ,WACpGkG,EAAM7Q,KAAKipiC,UAAUjmmB,eACD,SAAhBhjc,KAAKk1E,QAAqBrkE,GAAO7Q,KAAKipiC,UAAUjmmB,cAAc5tP,YAAYhyM,OAAS,GAG9D,SAAhBpD,KAAKk1E,QAAqBrkE,GAAO7Q,KAAKipiC,UAAUjmmB,cAAcmmnB,WAAW/ljC,OAAS,KAFvFyN,EAAMi2jC,IAAkBx2yB,EAAKtwR,KAAMA,KAAKipiC,aAO5Cp4hC,EAAMi2jC,IAAkBx2yB,EAAKtwR,KAAMA,KAAKipiC,WAQ5Cp4hC,IACA1G,EAAU0G,EAAI1G,SAEbyM,GAKDqC,EAAK5Q,OAASwI,EACdoI,EAAKothC,cAAgBl8hC,IALrB8O,EAAKrC,OAAS/F,EACdoI,EAAKg1jC,cAAgB9jkC,GAMzB8O,EAAK8zlC,aAAe/smC,KAAK4kV,UAAUmoxB,aAG5B9zlC,CACX,EAOAokkC,EAAc1skC,UAAUq8lC,mBAAqB,SAAUn8lC,EAAKq5E,GACxDA,EAAW,CAAEhwE,EAAGgwE,EAAShwE,EAAIla,KAAKwqiC,gBAAiBrwhC,EAAG+vE,EAAS/vE,EAAIna,KAAKwqiC,iBACxE,IAAIr1hC,EAAUnV,KAAKipiC,UAAUjmmB,cAAc74b,QAC3C,GAAIgL,GAAWtE,EAAK,CAChB,IAAIo8lC,EAAe93lC,EAAQwvvB,OACvBuoW,EAAe,IAAIrrK,IAAKorK,EAAa/ylC,EAAG+ylC,EAAa9ylC,EAAG8ylC,EAAazulC,MAAOyulC,EAAark9B,QAC7F,GAAgC,SAA5B/3I,EAAIkkiC,qBAA8D,uBAA5BlkiC,EAAIkkiC,qBACd,aAA5BlkiC,EAAIkkiC,qBAAkE,YAA5BlkiC,EAAIkkiC,oBAAmC,CACjF,IAAIo4D,EAAOntmC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GACpD,GAAI+35B,EACA,IAAK,IAAIhhmC,EAAI,EAAGA,EAAIghmC,EAAKjpC,aAAa9gkC,OAAQ+I,IAC1C,GAAI+mB,IAASg3D,EAAUijhC,EAAKjpC,aAAa33iC,SAASpgB,EAAE2K,WAAY,KAAM,KAA6B,IAAtBq2lC,EAAKhnC,aAC9E,MAAO,yBAA2Bh6jC,CAIlD,CACA,GAAgC,aAA5B0E,EAAIkkiC,oBAAoC,CACxC,IAAIq4D,EAAc,EACdlnC,OAAY,EAChB,GAAIr1jC,GAAOA,EAAI1G,QACX,IAASgC,EAAI,EAAGA,EAAI0E,EAAI1G,QAAQrE,SAAS1C,OAAQ+I,IAAK,CAClD,IAAIkhmC,EAAexpU,IAAMwuQ,UAAUxhiC,EAAIszjC,YAAatzjC,EAAIuzjC,aAGxD,GADcvzjC,EAAI1G,QAAQrE,SAASqG,GACvBgqB,GAAGxrB,QAAQ,WAAa,EAAG,CACnC,IAAI2imC,EAAcz8lC,EAAI1G,QAAQrE,SAAS,GAAG6+vB,OAAO5oe,OAC7B,IAAhBqx0B,GACAlnC,EAAY,CAAEhsjC,EAAGrJ,EAAIszjC,YAAYjqjC,EAAGC,EAAGtJ,EAAIszjC,YAAYhqjC,EAAItJ,EAAIs1jC,cAC/DmnC,EAAcz8lC,EAAIszjC,cAGlB+B,EAAY,CAAEhsjC,EAAGrJ,EAAIuzjC,YAAYlqjC,EAAGC,EAAGtJ,EAAIuzjC,YAAYjqjC,EAAItJ,EAAIs1jC,cAC/DmnC,EAAcz8lC,EAAIuzjC,aAEtB,IAAImpC,EAAW35D,MAGf,GAFAO,IAAao5D,EAAUF,EAAcC,EAAYpzlC,EAAGozlC,EAAYnzlC,GAE5D+Y,IAASg3D,EADM4p9B,IAAuBy5D,EAAU,CAAErzlC,EAAGgsjC,EAAUhsjC,EAAGC,EAAG+rjC,EAAU/rjC,IAC9C,IACjC,MAAO,SAAWizlC,EAEtBA,GACJ,CACJ,CAER,CACA,IAAII,EAAMxtmC,KAAKipiC,UAAUs+B,aACrBvnkC,KAAKwqiC,iBAAmB,MACxBgjE,GAAYxtmC,KAAKwqiC,iBAErB,IAAInia,EAASura,MACbO,IAAa9ra,EAAQx3nB,EAAIqgwB,YAAc/7vB,EAAQqgiC,gBAAiBrgiC,EAAQo9U,QAASp9U,EAAQq9U,SAEzF,IAAIt4U,EAAI/E,EAAQo9U,QAAUp9U,EAAQogiC,MAAMr7hC,EAAI/E,EAAQwnwB,WAAWn+vB,MAC3DrE,EAAIhF,EAAQq9U,QAAUr9U,EAAQogiC,MAAMp7hC,EAAIhF,EAAQwnwB,WAAW/znB,OAC3Dqg7B,EAAc,CACd/ujC,EAAGA,GAA0B,KAApB/E,EAAQogiC,MAAMr7hC,EAA8B,EAAlB/E,EAAQogiC,MAAMr7hC,EAAQ/E,EAAQogiC,MAAMr7hC,GAAK/E,EAAQwnwB,WAAWn+vB,MAAQ,EACvGrE,EAAGA,EAAI,GAAKna,KAAKwqiC,iBAGrB,GADAy+B,EAAcn1B,IAAuBzra,EAAQ4gc,GACb,UAA5Bp4jC,EAAIkkiC,qBAAmC7hhC,IAASg3D,EAAU+++B,EAAaukC,GACvE,MAAO,SAGX,IADAN,EAAeltmC,KAAKytmC,QAAQD,EAAKN,IAChB9vC,cAAclz+B,EAAU,GAAI,CACzC,IAAIhV,EAASl1E,KAAK0tmC,mBAAmB1tmC,KAAKipiC,UAAW9zhC,EAAS+0E,EAAUm+iB,EAAQnunB,EAAGC,GACnF,GAAI+6D,EACA,OAAOA,CAEf,CACA,OAAIl1E,KAAKipiC,UAAUjmmB,cAAc5tP,YAAYzqM,QAAQkG,IAAQ,GAGpD7Q,KAAKipiC,UAAUjmmB,cAAcmmnB,WAAWx+iC,QAAQkG,IAAQ,GAAK7Q,KAAKipiC,UAAUmgB,aAF1E,OAKJ,QACX,CACA,OAAOppjC,KAAKipiC,UAAUpkhB,MAAQ,QAClC,EACAw4jB,EAAc1skC,UAAU88lC,QAAU,SAAUz2+B,EAAS3pF,GAKjD,OAJAA,EAAMnzB,GAAK88G,EACX3pF,EAAMlzB,GAAK68G,EACX3pF,EAAM7uB,OAAmB,EAAVw4G,EACf3pF,EAAMu7G,QAAoB,EAAV5xB,EACT3pF,CACX,EACAgwiC,EAAc1skC,UAAU+8lC,mBAAqB,SAAUtqC,EAASjujC,EAAS+0E,EAAUm+iB,EAAQnunB,EAAGC,GAC1F,IAAI+6D,EAIJ,OAHKA,IACDA,EAASl1E,KAAK2tmC,sBAAsBvqC,EAASjujC,EAAS+0E,EAAUm+iB,EAAQnunB,EAAGC,IAE3E+6D,GAGG,IACX,EACAmogC,EAAc1skC,UAAUg9lC,sBAAwB,SAAUvqC,EAASjujC,EAAS+0E,EAAUm+iB,EAAQnunB,EAAGC,GAC7F,IACIqzlC,EAAMxtmC,KAAKipiC,UAAUs+B,aAAe,EAGpCvnkC,KAAKwqiC,iBAAmB,IAAQvjtB,GAAQM,WACxCimxB,GAAaxtmC,KAAKwqiC,gBAFF,MAIhBr1hC,EAAQwnwB,WAAWn+vB,MAAQ,IAAMrJ,EAAQwnwB,WAAW/znB,OAAS,IAAMq+L,GAAQM,YAC3EimxB,EAAMA,EAAM,EAAIxtmC,KAAKwqiC,gBAAkB,GAEvB44B,EAAQpgoB,cAA5B,IACIoqoB,GAAU,EACVpgiB,GAAW,EACX4gkB,GAAc,EACdC,GAAQ,EACRC,EAAkB9tmC,KAAKipiC,UAAUqiC,2BAA2BwiC,gBAsBhE,IArBIA,EAAkB,GAAKA,EAAkB,KACzCA,EAAkB,IAGlB9tmC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,IAA2E,UAApEp1M,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAG2/1B,qBACrB,aAApE/0iC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAG2/1B,qBAA0G,UAApE/0iC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAG2/1B,qBAAuG,yBAApE/0iC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAG2/1B,qBACzI,kBAApE/0iC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAG2/1B,qBAA+G,mBAApE/0iC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAG2/1B,sBACtIq4B,GAAU,GAGVptkC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,IAA0E,gBAApEp1M,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAG2/1B,sBAC3F/ngB,GAAW,GAGXhtiB,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,IAA0E,QAApEp1M,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAG2/1B,sBAC3F84D,GAAQ,IAGR7tmC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,IAA2E,YAApEp1M,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAG2/1B,qBAAyG,WAApE/0iC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAG2/1B,qBAAwG,cAApE/0iC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAG2/1B,sBAC7P64D,GAAc,IAEb5gkB,EAAU,CAEX,GAAK6gkB,GAASzgC,GAAYptkC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,KAA2E,yBAApEp1M,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAG2/1B,qBAAsH,kBAApE/0iC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAG2/1B,qBAA+G,mBAApE/0iC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAG2/1B,sBAAgD5/hC,EAAQwnwB,WAAWn+vB,OAvCtW,IAuCwXrJ,EAAQwnwB,WAAW/znB,QAvC3Y,IAuC+Zgl9B,IAAoC,IAApBE,GAA6C,IAApBA,GAA0B,CACte,GAAI56kC,IAASg3D,EAAU4p9B,IAAuBzra,EAAQ,CAAEnunB,EAAGA,EAAI/E,EAAQwnwB,WAAWn+vB,MAAOrE,EAAGA,EAAIhF,EAAQwnwB,WAAW/znB,SAAW4k9B,GAC1H,MAAO,kBAEX,GAAIt6kC,IAASg3D,EAAU4p9B,IAAuBzra,EAAQ,CAAEnunB,EAAGA,EAAGC,EAAGA,EAAIhF,EAAQwnwB,WAAW/znB,SAAW4k9B,GAC/F,MAAO,kBAEX,GAAIt6kC,IAASg3D,EAAU4p9B,IAAuBzra,EAAQ,CAAEnunB,EAAGA,EAAI/E,EAAQwnwB,WAAWn+vB,MAAOrE,EAAGA,IAAMqzlC,GAC9F,MAAO,kBAEX,GAAIt6kC,IAASg3D,EAAU4p9B,IAAuBzra,EAAQ,CAAEnunB,EAAGA,EAAGC,EAAGA,IAAMqzlC,GACnE,MAAO,iBAEf,CAEA,GAAIK,IAAUD,GAAgBA,IAAoC,IAApBE,GAA6C,IAApBA,KAA4B34lC,EAAQwnwB,WAAWn+vB,OAtD9G,IAsDgIrJ,EAAQwnwB,WAAW/znB,QAtDnJ,KAsD2L,IAApBkl9B,GAA0B,CACrM,GAAI56kC,IAEJg3D,EAAU4p9B,IAAuBzra,EAAQ,CAAEnunB,EAAGA,EAAI/E,EAAQwnwB,WAAWn+vB,MAAOrE,EAAGA,EAAIhF,EAAQwnwB,WAAW/znB,OAAS,IAAM4k9B,KAASpgC,EAC1H,MAAO,aAGX,GAAIl6iC,IAASg3D,EAAU4p9B,IAAuBzra,EAAQ,CAAEnunB,EAAGA,EAAGC,EAAGA,EAAIhF,EAAQwnwB,WAAW/znB,OAAS,IAAM4k9B,KAASpgC,EAC5G,MAAO,aAEX,GAAIl6iC,IAEJg3D,EAAU4p9B,IAAuBzra,EAAQ,CAAEnunB,EAAGA,EAAI/E,EAAQwnwB,WAAWn+vB,MAAQ,EAAGrE,EAAGA,EAAIhF,EAAQwnwB,WAAW/znB,SAAW4k9B,KAASpgC,EAC1H,MAAO,cAGX,GAAIl6iC,IAASg3D,EAAU4p9B,IAAuBzra,EAAQ,CAAEnunB,EAAGA,EAAI/E,EAAQwnwB,WAAWn+vB,MAAQ,EAAGrE,EAAGA,IAAMqzlC,KAASpgC,EAC3G,MAAO,aAEf,CACJ,CACA,OAAO,IACX,EAMAiQ,EAAc1skC,UAAUo9lC,wBAA0B,SAAUC,GACxD,IAAIC,GAAkB,EAClBjumC,KAAKipiC,UAAUyiC,qBACfsiC,EAAUA,EAAQr7kC,MAAM,KAAK,IAGjC,IAAI44iC,EAAYvrkC,KAAKipiC,UAAUlkR,UAAUipV,GAMzC,OALIziC,IAC0C,mBAAtCA,EAAUt2B,yBAAsF,iBAAtCs2B,EAAUt2B,yBAAsE,mBAAxBs2B,EAAUtkB,YAC5HgnD,GAAkB,IAGnBA,CACX,EAMA5wB,EAAc1skC,UAAU84kC,iBAAmB,SAAUn5zB,GACjD,IAAIm9zB,EAAsBztlC,KAAKipiC,UAAU39sB,uBACzCtrV,KAAKipiC,UAAUykD,yBAAwB,GACvC1tlC,KAAKy5wB,gBAAkBz5wB,KAAKq+V,iBAAiB/tE,GAC7CtwR,KAAKipiC,UAAUilE,kBAAkBlumC,KAAKy5wB,gBAAgBv/vB,EAAGla,KAAKy5wB,gBAAgBt/vB,GAC1Ena,KAAKipiC,UAAU9p6B,WACfn/H,KAAKinkC,eAAeC,aAAelnkC,KAAKipiC,UAAU9p6B,WAAW2o8B,mBAAmBx3yB,GAE3EtwR,KAAKipiC,UAAUyiC,qBACpB1rkC,KAAKinkC,eAAeC,aAAelnkC,KAAKipiC,UAAUyiC,mBAAmB5D,mBAAmBx3yB,IAE5F,IAIIjoR,EAJAwI,EAAMi2jC,IAAkBx2yB,EAAKtwR,KAAMA,KAAKipiC,YACvCjpiC,KAAK6khB,gBAAgB2jjB,KAAqBxokC,KAAK6khB,gBAAgBsjjB,OAChEt3jC,EAAM7Q,KAAKipiC,UAAUqnC,eAGzB,IAAI29B,EAAkBjumC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAYhyM,OAAS,GAAIpD,KAAK+tmC,wBAAwB/tmC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAGj/K,IACrJ,IAA+D,IAA1D0twB,IAAM78lB,OAAOhnM,KAAKy5wB,gBAAiBz5wB,KAAK8pkC,eAA2B9pkC,KAAKwpkC,SAAW,CACpF,IAAyB,IAArBxpkC,KAAKu35B,YAAuB,CAC5Bv35B,KAAK4kV,UAAY,CAAC,EAEd/zU,IACA7Q,KAAK6khB,KAAO7khB,KAAKmumC,QAAQnumC,KAAKk1E,QAC1BrkE,EAAI1G,SACmB0G,EAAI1G,QAAQrE,SAAS,KAExCuC,EAASwI,IAIrB,IAAIw9Q,EAAciC,EAAIjoR,OACtBrI,KAAKk1E,OAASl1E,KAAKgtmC,mBAAmBn8lC,EAAK7Q,KAAKy5wB,iBAE5C5owB,GAAOA,EAAI2yiC,oBAAsB3yiC,EAAI2yiC,mBAAmB0F,SACpC,WAAhBlpjC,KAAKk1E,SACAl1E,KAAKipiC,UAAUgb,iBAAiBmnB,yBAAyB,SAAUv6jC,KACpE7Q,KAAKk1E,OAAS,KAGF,SAAhBl1E,KAAKk1E,SACAl1E,KAAKipiC,UAAUgb,iBAAiBmnB,yBAAyB,OAAQv6jC,KAClE7Q,KAAKk1E,OAAS,YAIF,oBAAhBl1E,KAAKk1E,QAAgD,oBAAhBl1E,KAAKk1E,QAAgD,oBAAhBl1E,KAAKk1E,QAAgD,oBAAhBl1E,KAAKk1E,QAEpG,gBAAhBl1E,KAAKk1E,QAA4C,eAAhBl1E,KAAKk1E,QAA2C,eAAhBl1E,KAAKk1E,QAA2C,gBAAhBl1E,KAAKk1E,QAA4Bl1E,KAAKk1E,OAAO1qB,SAAS,0BAA4BxqD,KAAKk1E,OAAO1qB,SAAS,aACnMxqD,KAAKipiC,UAAUgb,iBAAiBmnB,yBAAyB,SAAUv6jC,KACpE7Q,KAAKk1E,OAAS,YAKrBl1E,KAAKipiC,UAAUmgB,eAAmBr9uB,GAAkB1jU,IAAa0jU,GAAkB1jU,EAAO4siC,4BAA8Bg5D,IACrG,oBAAhBjumC,KAAKk1E,QAAgD,oBAAhBl1E,KAAKk1E,QAAgD,oBAAhBl1E,KAAKk1E,QAAgD,oBAAhBl1E,KAAKk1E,QAEpG,gBAAhBl1E,KAAKk1E,QAA4C,SAAhBl1E,KAAKk1E,QAAqC,eAAhBl1E,KAAKk1E,QAA2C,eAAhBl1E,KAAKk1E,QAA2C,gBAAhBl1E,KAAKk1E,QAA4Bl1E,KAAKk1E,OAAO1qB,SAAS,0BAA4BxqD,KAAKk1E,OAAO1qB,SAAS,aAClOxqD,KAAKk1E,OAAS,IAGtBl1E,KAAK6khB,KAAO7khB,KAAKmumC,QAAQnumC,KAAKk1E,QAC9Bl1E,KAAKql6B,UAAUh3oB,EAAaiC,GACxBtwR,KAAKipiC,UAAU+0D,sBACfh+lC,KAAKipiC,UAAU+0D,qBAAqBoQ,uCAAuC//0B,EAAaiC,EAAKtwR,KAErG,KACK,CAgBD,IAfKA,KAAK6khB,MAAQ7khB,KAAKk1E,QAA0B,WAAhBl1E,KAAKk1E,SAClCl1E,KAAK6khB,KAAO7khB,KAAKmumC,QAAQnumC,KAAKk1E,QAC1Bo7M,EAAIjoR,QACJrI,KAAKql6B,UAAU/0oB,EAAIjoR,OAAQioR,IAI9BtwR,KAAKipiC,UAAUmgB,eAAmBr9uB,GAAkB1jU,IAAa0jU,GAAkB1jU,EAAO4siC,4BAA8Bg5D,IACrG,oBAAhBjumC,KAAKk1E,QAAgD,oBAAhBl1E,KAAKk1E,QAAgD,oBAAhBl1E,KAAKk1E,QAAgD,oBAAhBl1E,KAAKk1E,QAEpG,gBAAhBl1E,KAAKk1E,QAA4C,SAAhBl1E,KAAKk1E,QAAqC,eAAhBl1E,KAAKk1E,QAA2C,eAAhBl1E,KAAKk1E,QAA2C,gBAAhBl1E,KAAKk1E,QAA4Bl1E,KAAKk1E,OAAO1qB,SAAS,0BAA4BxqD,KAAKk1E,OAAO1qB,SAAS,aAClOxqD,KAAKk1E,OAAS,GACdl1E,KAAK6khB,KAAO,MAGhB7khB,KAAK4kV,WAAa5kV,KAAK4kV,UAAUhuU,OAAQ,CACrCy3Q,EAAciC,EAAIjoR,OACtBrI,KAAK80nB,oBAAoB90nB,KAAK4kV,UAAUhuU,OAAQy3Q,EAAaiC,EACjE,MAEItwR,KAAKql6B,UAAU/0oB,EAAIjoR,OAAQioR,GAG/B,GADAtwR,KAAKqumC,yBAAyB/90B,GAC1BtwR,KAAK6khB,KAAM,CAEX,GADoBh0gB,GACuC,aADvCA,EACekkiC,oBAC/B,GAAI/0iC,KAAKipiC,UAAUqlE,iBAAiBC,mBAAqC,QAAhBvumC,KAAKk1E,QACzDl1E,KAAK4kV,UAAUhuU,QAAwD,aAA9C5W,KAAK4kV,UAAUhuU,OAAOm+hC,qBAC5C1mxB,EAAct3P,MAAM1uB,QACZlC,MAAM+yiB,OAAS,UAC3Bl5iB,KAAK6khB,KAAO,KAGpB,GAAiB,MAAb7khB,KAAK6khB,KAAc,CACnB,IAAItof,EAAO,CAAE3E,QAAS04P,EAAI14P,QAASC,SAAUy4P,EAAIz4P,UACjD73B,KAAK4kV,UAAUroT,KAAOA,EACtBv8B,KAAK6khB,KAAKkljB,UAAU/pkC,KAAK4kV,UAC7B,CACJ,CACJ,CACA,GAAI5kV,KAAKipiC,UAAUqnC,eAAiBtwkC,KAAKipiC,UAAUqnC,cAAcr7B,yBAA2C,SAAhBj1iC,KAAKk1E,UACvFl1E,KAAK6khB,gBAAgBoqjB,OACvBjvkC,KAAK6khB,KAAO7khB,KAAKmumC,QAAQnumC,KAAKk1E,QAC1Bl1E,KAAK6khB,gBAAgB2jjB,KAAiB,CACtC,IAAI/pvB,EAAQz+U,KAAKipiC,UAAUqnC,cAEvB3rU,EAAS3kwB,KAAKipiC,UAAUyiC,mBAAmB8E,2BAA2B/xvB,EAAOA,EAAMw2tB,yBACnFzL,EAAYxpiC,KAAKw5iC,cAAclvgC,kBAAkBy6N,YAAc4/f,EAAOnmvB,MACtEg8vB,EAAax6wB,KAAKw5iC,cAAclvgC,kBAAkB46N,aAAey/f,EAAO/7mB,OAC5E,GAAI5oJ,KAAKipiC,UAAUyiC,oBAAsBjtvB,EAAMw2tB,yBACxCj1iC,KAAKy5wB,gBAAgBv/vB,EAAIsvhC,GAAaxpiC,KAAKy5wB,gBAAgBt/vB,EAAIqgwB,EAGlE,GADI61T,EAAmBn/iC,SAASg8T,eAAe,kCAK1C,GAAImjvB,EAAkB,CACvB,IAAIm+B,EAAqBn+B,EAAiBx6yB,cAAc1/P,GAAGxD,MAAM,UAAU,IAAM09iC,EAAiBx6yB,cAAc1/P,GAAGxD,MAAM,eAAe,IAAM09iC,EAAiBx6yB,cAAc1/P,GAAGxD,MAAM,sBAAsB,IAAM09iC,EAAiBx6yB,cAAc1/P,GAAGxD,MAAM,aAAa,GACvQ,GAAIpG,SAASiilC,KAAwBxumC,KAAKinkC,eAAeC,aACrDmJ,EAAiBl9iC,OAAO,qCAEvB,CAED,IAAImzU,EAAQtmW,KAAKq+V,iBAAiBtnU,OACI,aAAlC0nT,EAAMw2tB,wBACNo7B,EAAiB/liC,kBAAkBA,kBAAkB2pd,iBAAiB9tf,MAAMohQ,WAAa,UAElD,mBAAlCk3E,EAAMw2tB,yBAAkF,iBAAlCx2tB,EAAMw2tB,yBACjEo7B,EAAiB/liC,kBAAkBA,kBAAkBnkC,MAAMohQ,WAAa,UACxE8o0B,EAAiB/liC,kBAAkB2pd,iBAAiB9tf,MAAMohQ,WAAa,WAGvE8o0B,EAAiB/liC,kBAAkBA,kBAAkBnkC,MAAMohQ,WAAa,UAE5E8o0B,EAAiBr7iC,aAAa,QAAS,UAAY2vuB,EAAO/7mB,OAAS,aAAe+7mB,EAAOnmvB,MAAQ,WAAa8nV,EAAMpsV,EAAI,WAAaosV,EAAMnsV,EAApG,qCAE3C,CACJ,OAvBIna,KAAKipiC,UAAUyiC,mBAAmB7rT,WAAWphc,EAAMw2tB,wBAAyBx2tB,EAAOnuD,QAyBtF,GAAItwR,KAAKy5wB,gBAAgBv/vB,EAAIsvhC,GAAaxpiC,KAAKy5wB,gBAAgBt/vB,EAAIqgwB,EAAY,CAEhF,IAAI61T,EACJ,GADIA,EAAmBn/iC,SAASg8T,eAAe,kCAK1C,GAAImjvB,EAAkB,CAEnB/puB,EAAQtmW,KAAKq+V,iBAAiBtnU,OAClCs5iC,EAAiBr7iC,aAAa,QAAS,UAAY2vuB,EAAO/7mB,OAAS,aAAe+7mB,EAAOnmvB,MAAQ,WAAa8nV,EAAMpsV,EAAI,WAAaosV,EAAMnsV,EAApG,sCAED,aAAlCskU,EAAMw2tB,wBACNo7B,EAAiB/liC,kBAAkBA,kBAAkB2pd,iBAAiB9tf,MAAMohQ,WAAa,SAElD,mBAAlCk3E,EAAMw2tB,yBAAkF,iBAAlCx2tB,EAAMw2tB,yBACjEo7B,EAAiB/liC,kBAAkBA,kBAAkBnkC,MAAMohQ,WAAa,SACxE8o0B,EAAiB/liC,kBAAkB2pd,iBAAiB9tf,MAAMohQ,WAAa,UAGvE8o0B,EAAiB/liC,kBAAkBA,kBAAkBnkC,MAAMohQ,WAAa,QAEhF,OAjBIvnQ,KAAKipiC,UAAUyiC,mBAAmB7rT,WAAWphc,EAAMw2tB,wBAAyBx2tB,EAAOnuD,EAkB3F,CACJ,CAGRtwR,KAAK8pkC,aAAe9pkC,KAAKy5wB,eAC7B,CACAz5wB,KAAKipiC,UAAUykD,wBAAwBD,GAAqB,EAChE,EAEApQ,EAAc1skC,UAAUmknB,oBAAsB,SAAUl+mB,EAAQvO,EAAQ0uB,GAEhEngB,QAA+BvT,IAArBuT,EAAOk/Z,WAA2Bl/Z,EAAOk/Z,YAAc91a,KAAKinkC,eAAeC,cAAgB7+jC,EAErGrI,KAAKg/kC,UAAY32kC,EAAOlC,MAAM+yiB,OAAS,OAAS7wiB,EAAOlC,MAAM+yiB,OAAS,UAGtEl5iB,KAAKql6B,UAAUh95B,EAAQ0uB,EAE/B,EAMAsmjC,EAAc1skC,UAAU64kC,kBAAoB,SAAUl5zB,GAClDtwR,KAAKy5wB,gBAAkBz5wB,KAAKq+V,iBAAiB/tE,GACzCtwR,KAAKipiC,UAAU9p6B,aACfn/H,KAAKinkC,eAAeC,aAAelnkC,KAAKipiC,UAAU9p6B,WAAW2o8B,mBAAmBx3yB,IAEhFzuR,MAAM7B,KAAKinkC,eAAeC,eAAiBlnkC,KAAKipiC,UAAUyiC,qBAC1D1rkC,KAAKinkC,eAAeC,aAAelnkC,KAAKipiC,UAAUyiC,mBAAmB5D,mBAAmBx3yB,IAE5F,IAAIu4yB,EAAe/B,IAAkBx2yB,EAAKtwR,KAAMA,KAAKipiC,WACjDwlE,GAAiB,EAErB,IAA8D,IAA1D5qU,IAAM78lB,OAAOhnM,KAAKy5wB,gBAAiBz5wB,KAAK8pkC,eAA2B9pkC,KAAKwpkC,SAAU,CAClF,IAAyB,IAArBxpkC,KAAKu35B,aAAyBk3M,EAAgB,CAC9CzumC,KAAK4kV,UAAY,CAAC,EAEdikvB,IACgBA,EAAa1+jC,QAAQrE,SAAS,IAEjC+ikC,EAEb4lC,GAAiB,EAEzB,MAEIzumC,KAAKqumC,yBAAyB/90B,GAE1BtwR,KAAK6khB,MAAwB,SAAhB7khB,KAAKk1E,QAA6C,UAAxBl1E,KAAKipiC,UAAUpkhB,MAAoB7khB,KAAK6khB,KAAK1vI,gBAAmE,UAAjDn1Y,KAAK6khB,KAAK1vI,eAAe4/pB,sBAC/H/0iC,KAAK6khB,KAAKqljB,WAAWlqkC,KAAK4kV,WAC1B5kV,KAAK6khB,KAAO,KACR7khB,KAAKipiC,UAAU9p6B,YACfn/H,KAAKipiC,UAAUgb,iBAAiBhqG,kBAAkBj68B,KAAK0gsB,aAAc,KAAM,KAAM,OAI7F1gsB,KAAK8pkC,aAAe9pkC,KAAKy5wB,eAC7B,CACJ,EACA4jU,EAAc1skC,UAAU09lC,yBAA2B,SAAU/90B,GACzDtwR,KAAK4kV,UAAU16P,SAAWlqF,KAAKy5wB,gBACX,SAAhBz5wB,KAAKk1E,QACLl1E,KAAK4kV,UAAUhuU,kBAAkBusjC,KACjCnjkC,KAAK0qlC,kBAAkB1qlC,KAAKy5wB,gBAAiBz5wB,KAAK4kV,UAAWt0D,GAEjEtwR,KAAK0qlC,kBAAkB1qlC,KAAKy5wB,gBAAiBz5wB,KAAK4kV,UAAWt0D,EAAKtwR,KAAK4kV,UAAUhuU,QACjF5W,KAAKwpkC,UAAW,EAChBxpkC,KAAK0umC,iBAAmB,IAC5B,EAEArxB,EAAc1skC,UAAU005B,UAAY,SAAUh3oB,EAAat3P,GAEvD,IACI43kC,EADAC,EAAsB5umC,KAAKipiC,UAAUgb,iBAAmBjkjC,KAAKipiC,UAAUgb,iBAAiByE,yBAA2B,KAEvH,GAAI1ojC,KAAK6khB,gBAAgBoqjB,IACI,oBAArBjvkC,KAAK6khB,KAAKo5iB,QACV0wC,EAAa3umC,KAAK6umC,uBAClBxg1B,EAAYloR,MAAM+yiB,OAASntO,GAAkB4iyB,GAAc,YAAcA,GAE/C,oBAArB3umC,KAAK6khB,KAAKo5iB,QACf0wC,EAAa3umC,KAAK6umC,uBAClBxg1B,EAAYloR,MAAM+yiB,OAASntO,GAAkB4iyB,GAAc,YAAcA,GAE/C,oBAArB3umC,KAAK6khB,KAAKo5iB,QACf0wC,EAAa3umC,KAAK6umC,uBAClBxg1B,EAAYloR,MAAM+yiB,OAASntO,GAAkB4iyB,GAAc,YAAcA,GAE/C,oBAArB3umC,KAAK6khB,KAAKo5iB,QACf0wC,EAAa3umC,KAAK6umC,uBAClBxg1B,EAAYloR,MAAM+yiB,OAASntO,GAAkB4iyB,GAAc,YAAcA,GAE/C,gBAArB3umC,KAAK6khB,KAAKo5iB,QACf0wC,EAAa3umC,KAAK6umC,uBAClBxg1B,EAAYloR,MAAM+yiB,OAASntO,GAAkB4iyB,GAAc,WAAaA,GAE9C,eAArB3umC,KAAK6khB,KAAKo5iB,QACf0wC,EAAa3umC,KAAK6umC,uBAClBxg1B,EAAYloR,MAAM+yiB,OAASntO,GAAkB4iyB,GAAc,WAAaA,GAE9C,eAArB3umC,KAAK6khB,KAAKo5iB,QACf0wC,EAAa3umC,KAAK6umC,uBAClBxg1B,EAAYloR,MAAM+yiB,OAASntO,GAAkB4iyB,GAAc,WAAaA,GAE9C,gBAArB3umC,KAAK6khB,KAAKo5iB,SACf0wC,EAAa3umC,KAAK6umC,uBAClBxg1B,EAAYloR,MAAM+yiB,OAASntO,GAAkB4iyB,GAAc,WAAaA,QAG3E,GAAI3umC,KAAK8umC,oBAAsB9umC,KAAKqilC,aACrCh0zB,EAAYloR,MAAM+yiB,OAAS,iBAE1B,GAAIl5iB,KAAKipiC,UAAUuyC,4BAA8Bx7kC,KAAKyglC,qBAAuBzglC,KAAK6khB,gBAAgB4jjB,IACnGp6yB,EAAYloR,MAAM+yiB,OAAS,iBAE1B,GAAIl5iB,KAAK6khB,gBAAgBqnjB,IAC1B79yB,EAAYloR,MAAM+yiB,OAAS,YAG1B,GAAIl5iB,KAAK6khB,gBAAgB2jjB,KAAmBxokC,KAAK6khB,gBAAgBsjjB,KAAYnokC,KAAK6khB,gBAAgBosjB,KAAuB29B,GAAuBA,EAAoBG,iBAAoB/umC,KAAK6khB,gBAAgBqpjB,IAC9M7/yB,EAAYloR,MAAM+yiB,OAAS,iBAE1B,GAAIl5iB,KAAK6khB,gBAAgBypjB,IACtBtukC,KAAK6khB,KAAKz8K,UAAYpoW,KAAK6khB,KAAKz8K,SAASz9V,QAAQ,YACjDgkmC,EAAa3umC,KAAK6umC,uBAClBxg1B,EAAYloR,MAAM+yiB,OAASntO,GAAkB4iyB,GAAc,YAAcA,GAEpE3umC,KAAK6khB,KAAKz8K,UAAYpoW,KAAK6khB,KAAKz8K,SAASz9V,QAAQ,YACtDgkmC,EAAa3umC,KAAK6umC,uBAClBxg1B,EAAYloR,MAAM+yiB,OAASntO,GAAkB4iyB,GAAc,YAAcA,GAEpE3umC,KAAK6khB,KAAKz8K,UAAYpoW,KAAK6khB,KAAKz8K,SAASz9V,QAAQ,2BACtD0jR,EAAYloR,MAAM+yiB,OAAS,kBAI/B,GAAI7qR,EAAYnG,UAAUh1P,SAAS,aAC/Bm7P,EAAYloR,MAAM+yiB,OAAS,YAE1B,GAAI7qR,EAAYnG,UAAUh1P,SAAS,kBACpCm7P,EAAYloR,MAAM+yiB,OAAS,eAE1B,GAAIl5iB,KAAKg/kC,UAAW,CACrB,GAAIh/kC,KAAK+9kC,mBAAoC,cAAfhnjC,EAAMnqB,KAChCyhR,EAAYloR,MAAM+yiB,OAAS,gBAI3B,IADIroiB,EAAMi2jC,IAAkB/viC,EAAO/2B,KAAMA,KAAKipiC,aACpB,cAAflygC,EAAMnqB,KAAsB,CACnCyhR,EAAYloR,MAAM+yiB,OAAS,UAE3B,IAAIo8G,EAAgBzkpB,EAEhB4owB,EAAkBz5wB,KAAKq+V,iBAAiBtnU,GAIxCi4kC,EAAkB,CAAErr+B,MAFpBmu9B,EAAmB9xlC,KAAK8xlC,iBAAiB/6jC,IAEE7c,EAAGg0I,IAAK4j8B,EAAiB33kC,GAEpE80lC,EAAiB,CAAEtr+B,KAAM81oB,EAAgBv/vB,EAAGg0I,IAAKurnB,EAAgBt/vB,GAEjEqpiC,EAAqB,CAAEl16B,QAASgnhB,EAAchnhB,QAASqvwB,UAAWroP,EAAcqoP,UAAWlgb,YAAa63L,EAAc73L,YAAayxoB,SAAU55c,EAAc84S,UAAWtuN,OAAQxqF,EAAcwqF,OAAQxoS,QAASg+M,EAAch+M,QAAS2oS,aAAc3qF,EAAc2qF,cAEpQjgvB,KAAKgilC,cAAe,EACpB,IAAI36U,EAAcrnwB,KAAK+tmC,wBAAwBz4c,EAAcn/nB,IAC7D,GAAIm/nB,EAAc2/Y,wBAAyB,CACvCj1iC,KAAKiilC,uBAAwB,EAC7B,IAAI5yH,EAAU,CAEVzt9B,MAAO0zpB,EAAc1zpB,MAAO4gd,WAAY8yM,EAAc9yM,WAAYvjK,SAAUq2W,EAAcr2W,SAAUu3R,UAAW8+E,EAAc9+E,UAE7H//c,MAAO6+hB,EAAc7+hB,MAAOmnW,gBAAiB03L,EAAc13L,gBAAiB2lW,YAAajuK,EAAciuK,YAEvG6qI,UAAW94S,EAAc84S,UAAWpyrB,UAAWs5Y,EAAct5Y,UAAWijI,WAAYq2Q,EAAcr2Q,WAAY13I,WAAY+tZ,EAAc/tZ,WAExI35L,UAAW0nlB,EAAc1nlB,UAAWrzD,WAAY+6oB,EAAc/6oB,WAAYwxjC,QAASz2a,EAAcy2a,QAASx5pB,SAAU+iP,EAAc47G,YAAahlV,QAASopO,EAAcppO,QAASpta,QAASw2oB,EAAcx2oB,QAEtMkta,UAAWspO,EAActpO,UAAW2P,WAAY25N,EAAc35N,YAElE37b,KAAKipiC,UAAUkmE,4BAA4B,qBAAsB9/I,EAAS/5T,EAAcx/O,UAAWg8qB,EAAiB53kC,EAAG43kC,EAAiB33kC,EAAGs/vB,EAAgBv/vB,EAAGu/vB,EAAgBt/vB,EAClL,MAESktvB,GAEDrnwB,KAAKipiC,UAAUmmE,wBAAwB95c,EAAc2xZ,UAAW3xZ,EAAcx/O,UAAWw/O,EAAcy/Y,oBAAqBz/Y,EAAcqvG,OAAQ6+S,EAAoByrD,EAAgBD,EAElM,MAGI,GADA3g1B,EAAYloR,MAAM+yiB,OAAS,OACvBl5iB,KAAKgilC,aAAc,CACnB,IAAIlsqB,OAAY,EAEZA,EADA91a,KAAKipiC,UAAUyiC,mBACH1rkC,KAAKipiC,UAAUyiC,mBAAmB5D,mBAAmB/wiC,GAGrD/2B,KAAKipiC,UAAU9p6B,WAAW2o8B,mBAAmB/wiC,GAEzD/2B,KAAKiilC,sBACLjilC,KAAKipiC,UAAUomE,6BAA6B,sBAAuB,KAAMv5rB,GAGzE91a,KAAKipiC,UAAUqmE,yBAAyBx5rB,GAE5C91a,KAAKgilC,cAAe,EACpBhilC,KAAKiilC,uBAAwB,CACjC,CAGZ,KACK,CACD,IAAIpxkC,EACJ,IADIA,EAAMi2jC,IAAkB/viC,EAAO/2B,KAAMA,KAAKipiC,aACiB,IAApDjpiC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAYhyM,QAA+B,cAAf2zB,EAAMnqB,KAAsB,CACxF0opB,EAAgBzkpB,EAApB,IAEIghkC,EAAmB7xkC,KAAKipiC,UAAUlkR,UAAUzvH,EAAcn/nB,IAEjB,yBAAzC07iC,EAAiB98B,qBAA2F,QAAzC88B,EAAiB98B,qBAAiC88B,EAAiBruB,yBAAqEngjC,IAA/CwukC,EAAiBruB,mBAAmB0F,SAChM2oB,EAAiBruB,mBAAmB0F,OAASz4gC,KAAKuL,MAAM61hC,EAAiBruB,mBAAmB0F,SAE5F2oB,EAAiBruB,oBAAsBquB,EAAiBruB,mBAAmB0F,OAC3E76xB,EAAYloR,MAAM+yiB,OAAS,UAG3B7qR,EAAYloR,MAAM+yiB,OAAS,UAG3BugO,EAAkBz5wB,KAAKq+V,iBAAiBtnU,GAIxCi4kC,EAAkB,CAAErr+B,MAFpBmu9B,EAAmB9xlC,KAAK8xlC,iBAAiB/6jC,IAEE7c,EAAGg0I,IAAK4j8B,EAAiB33kC,GAEpE80lC,EAAiB,CAAEtr+B,KAAM81oB,EAAgBv/vB,EAAGg0I,IAAKurnB,EAAgBt/vB,GAEjEqpiC,EAAqB,CAAEl16B,QAASgnhB,EAAchnhB,QAASqvwB,UAAWroP,EAAcqoP,UAAWlgb,YAAa63L,EAAc73L,YAAayxoB,SAAU55c,EAAc84S,UAAWtuN,OAAQxqF,EAAcwqF,OAAQxoS,QAASg+M,EAAch+M,QAAS2oS,aAAc3qF,EAAc2qF,cAEpQjgvB,KAAKgilC,cAAe,EAChB36U,EAAcrnwB,KAAK+tmC,wBAAwBz4c,EAAcn/nB,IAC7D,GAAIm/nB,EAAc2/Y,wBAAyB,CACvCj1iC,KAAKiilC,uBAAwB,EAC7B,IAAIstB,EAAU,CAEV3tmC,MAAO0zpB,EAAc1zpB,MAAO4gd,WAAY8yM,EAAc9yM,WAAYvjK,SAAUq2W,EAAcr2W,SAAUu3R,UAAW8+E,EAAc9+E,UAE7H//c,MAAO6+hB,EAAc7+hB,MAAOmnW,gBAAiB03L,EAAc13L,gBAAiB2lW,YAAajuK,EAAciuK,YAEvG6qI,UAAW94S,EAAc84S,UAAWpyrB,UAAWs5Y,EAAct5Y,UAAWijI,WAAYq2Q,EAAcr2Q,WAAY13I,WAAY+tZ,EAAc/tZ,WAExI35L,UAAW0nlB,EAAc1nlB,UAAWrzD,WAAY+6oB,EAAc/6oB,WAAYwxjC,QAASz2a,EAAcy2a,QAASx5pB,SAAU+iP,EAAc47G,YAAahlV,QAASopO,EAAcppO,QAASpta,QAASw2oB,EAAcx2oB,QAEtMkta,UAAWspO,EAActpO,UAAW2P,WAAY25N,EAAc35N,YAElE37b,KAAKwvmC,WAAal6c,EAClBt1pB,KAAKipiC,UAAUkmE,4BAA4B,qBAAsBI,EAASj6c,EAAcx/O,UAAWg8qB,EAAiB53kC,EAAG43kC,EAAiB33kC,EAAGs/vB,EAAgBv/vB,EAAGu/vB,EAAgBt/vB,EAClL,MAESktvB,GAEDrnwB,KAAKipiC,UAAUmmE,wBAAwB95c,EAAc2xZ,UAAW3xZ,EAAcx/O,UAAWw/O,EAAcy/Y,oBAAqBz/Y,EAAcqvG,OAAQ6+S,EAAoByrD,EAAgBD,EAElM,MACK,IAAKhvmC,KAAKipiC,UAAUyiC,oBAAsB30iC,EAAM1uB,OAAO6/Q,UAAUh1P,SAAS,0BAA2B,CAClG4iZ,EAAY91a,KAAKipiC,UAAU9p6B,WAAW2o8B,mBAAmB/wiC,GACzD0ivB,EAAkBz5wB,KAAKq+V,iBAAiBtnU,GAExCi4kC,EAAkB,CAAErr+B,MADpBmu9B,EAAmB9xlC,KAAK8xlC,iBAAiB/6jC,IACE7c,EAAGg0I,IAAK4j8B,EAAiB33kC,GACpE80lC,EAAiB,CAAEtr+B,KAAM81oB,EAAgBv/vB,EAAGg0I,IAAKurnB,EAAgBt/vB,GAGrE,IAPA,IAEI23kC,EAGA2d,EAAWzvmC,KAAKsomC,0BAA0B,eAC1Cp+jC,EAAOuG,KAAKuL,MAAMyzjC,GACbtjmC,EAAI,EAAGA,EAAI+9B,EAAK9mC,OAAQ+I,IAC7B,GAAI+9B,EAAK3d,SAASpgB,EAAE2K,WAAY,KAAK47kC,YAAc37jC,EAAM1uB,OAAO3D,KAC5D,IAAI06G,EAAQ,CAAE16G,KAAMwlC,EAAK3d,SAASpgB,EAAE2K,WAAY,KAAK47kC,WAG7D1ylC,KAAKgilC,cAAe,EACpBhilC,KAAKiilC,uBAAwB,EAC7BjilC,KAAKipiC,UAAUkmE,4BAA4B,qBAAsB/v/B,EAAO02T,EAAWg8qB,EAAiB53kC,EAAG43kC,EAAiB33kC,EAAGs/vB,EAAgBv/vB,EAAGu/vB,EAAgBt/vB,EAClK,KACK,CACD,GAAIna,KAAKgilC,aAAc,CACflsqB,OAAY,EAOhB,GALIA,EADA91a,KAAKipiC,UAAUyiC,mBACH1rkC,KAAKipiC,UAAUyiC,mBAAmB5D,mBAAmB/wiC,GAGrD/2B,KAAKipiC,UAAU9p6B,WAAW2o8B,mBAAmB/wiC,GAEzD/2B,KAAKiilC,sBACL,GAAIjilC,KAAKwvmC,WAAY,CACjB,IAAIE,EAAU,CAEVhrmC,KAAM1E,KAAKwvmC,WAAW9qmC,KAAMyxB,GAAIn2B,KAAKwvmC,WAAWr5kC,GAAIv0B,MAAO5B,KAAKwvmC,WAAW5tmC,MAAO4gd,WAAYxid,KAAKwvmC,WAAWhtpB,WAAYvjK,SAAUj/S,KAAKwvmC,WAAWvwzB,SAAUu3R,UAAWx2kB,KAAKwvmC,WAAWh5hB,UAEzL//c,MAAOz2H,KAAKwvmC,WAAW/4+B,MAAOmnW,gBAAiB59d,KAAKwvmC,WAAW5xoB,gBAAiB2lW,YAAavj0B,KAAKwvmC,WAAWjsS,YAE7G6qI,UAAWpu8B,KAAKwvmC,WAAWphK,UAAWpyrB,UAAWh8Q,KAAKwvmC,WAAWxz1B,UAAWijI,WAAYj/Y,KAAKwvmC,WAAWvwtB,WAAY13I,WAAYvnQ,KAAKwvmC,WAAWjo2B,WAEhJ35L,UAAW5tE,KAAKwvmC,WAAW5hiC,UAAWrzD,WAAYva,KAAKwvmC,WAAWj1lC,WAAYwxjC,QAAS/rkC,KAAKwvmC,WAAWzjC,QAASx5pB,SAAUvya,KAAKwvmC,WAAWt+V,YAAahlV,QAASlsb,KAAKwvmC,WAAWtjrB,QAASpta,QAAS9e,KAAKwvmC,WAAW1wlC,QAElNkta,UAAWhsb,KAAKwvmC,WAAWxjrB,UAAW2P,WAAY37b,KAAKwvmC,WAAW7zqB,YAEtE37b,KAAKipiC,UAAUomE,6BAA6B,sBAAuBK,EAAS55rB,EAChF,MAEI91a,KAAKipiC,UAAUomE,6BAA6B,sBAAuB,KAAMv5rB,QAI7E91a,KAAKipiC,UAAUqmE,yBAAyBx5rB,GAE5C91a,KAAKgilC,cAAe,EACpBhilC,KAAKiilC,uBAAwB,EAC7B5zzB,EAAYloR,MAAM+yiB,OAAS,SAC/B,CACIroiB,GAA2D,IAApD7Q,KAAKipiC,UAAUjmmB,cAAc5tP,YAAYhyM,QAA+B,cAAf2zB,EAAMnqB,KACtEyhR,EAAYloR,MAAM+yiB,OAAS,UAG3B7qR,EAAYloR,MAAM+yiB,OAAS,SAEnC,CACJ,CAER,EACAmkiB,EAAc1skC,UAAUk+lC,qBAAuB,WAC3C,IAAIF,EAwEJ,OAtEI3umC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,IAAM22H,GAAkB/rU,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAGk23B,2BAA2BqkC,mBAChE,aAApE3vmC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAG2/1B,oBAE5C45D,EAAc5iyB,GAAkB/rU,KAAKipiC,UAAUqlE,iBAAiBhjC,4BAA6G,KAA/EtrkC,KAAKipiC,UAAUqlE,iBAAiBhjC,2BAA2BqkC,kBAEhF,UAApE3vmC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAG2/1B,oBAEjD45D,EAAc5iyB,GAAkB/rU,KAAKipiC,UAAUumC,cAAclE,4BAA0G,KAA5EtrkC,KAAKipiC,UAAUumC,cAAclE,2BAA2BqkC,kBAE1E,yBAApE3vmC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAG2/1B,qBAAsH,kBAApE/0iC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAG2/1B,qBAA+G,mBAApE/0iC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAG2/1B,oBAEtO45D,EAAc5iyB,GAAkB/rU,KAAKipiC,UAAUsS,6BAA6B+vB,4BAAyH,KAA3FtrkC,KAAKipiC,UAAUsS,6BAA6B+vB,2BAA2BqkC,kBAExG,QAApE3vmC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAG2/1B,oBAEjD45D,EAAc5iyB,GAAkB/rU,KAAKipiC,UAAU2mE,sBAAsBtkC,4BAAkH,KAApFtrkC,KAAKipiC,UAAU2mE,sBAAsBtkC,2BAA2BqkC,kBAE7J3vmC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAGo53B,YAsB7CxukC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAGo53B,cACW,yBAAxDxukC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAGkiQ,QAE5Cq3pB,EAAc5iyB,GAAkB/rU,KAAKipiC,UAAU4mE,iBAAiBvkC,4BAA6G,KAA/EtrkC,KAAKipiC,UAAU4mE,iBAAiBvkC,2BAA2BqkC,kBAE5F,0BAAxD3vmC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAGkiQ,QAEjDq3pB,EAAc5iyB,GAAkB/rU,KAAKipiC,UAAU6mE,kBAAkBxkC,4BAA8G,KAAhFtrkC,KAAKipiC,UAAU6mE,kBAAkBxkC,2BAA2BqkC,kBAE9F,qBAAxD3vmC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAGkiQ,QAEjDq3pB,EAAc5iyB,GAAkB/rU,KAAKipiC,UAAU8mE,aAAazkC,4BAAyG,KAA3EtrkC,KAAKipiC,UAAU8mE,aAAazkC,2BAA2BqkC,kBAEpF,uBAAxD3vmC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAGkiQ,QAEjDq3pB,EAAc5iyB,GAAkB/rU,KAAKipiC,UAAU+mE,eAAe1kC,4BAA2G,KAA7EtrkC,KAAKipiC,UAAU+mE,eAAe1kC,2BAA2BqkC,kBAExF,uBAAxD3vmC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAGkiQ,UAEjDq3pB,EAAc5iyB,GAAkB/rU,KAAKipiC,UAAUgnE,eAAe3kC,4BAA2G,KAA7EtrkC,KAAKipiC,UAAUgnE,eAAe3kC,2BAA2BqkC,oBAxCjF,SAApE3vmC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAG2/1B,oBAE5C45D,EAAc5iyB,GAAkB/rU,KAAKipiC,UAAUinE,aAAa5kC,4BAAyG,KAA3EtrkC,KAAKipiC,UAAUinE,aAAa5kC,2BAA2BqkC,kBAExE,uBAApE3vmC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAG2/1B,oBAEjD45D,EAAc5iyB,GAAkB/rU,KAAKipiC,UAAUknE,cAAc7kC,4BAA0G,KAA5EtrkC,KAAKipiC,UAAUknE,cAAc7kC,2BAA2BqkC,kBAE1E,cAApE3vmC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAG2/1B,oBAEjD45D,EAAc5iyB,GAAkB/rU,KAAKipiC,UAAUmnE,kBAAkB9kC,4BAA8G,KAAhFtrkC,KAAKipiC,UAAUmnE,kBAAkB9kC,2BAA2BqkC,kBAElF,YAApE3vmC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAG2/1B,oBAEjD45D,EAAc5iyB,GAAkB/rU,KAAKipiC,UAAUonE,eAAe/kC,4BAA2G,KAA7EtrkC,KAAKipiC,UAAUonE,eAAe/kC,2BAA2BqkC,kBAE5E,YAApE3vmC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAG2/1B,sBAEjD45D,EAAc5iyB,GAAkB/rU,KAAKipiC,UAAUqnE,gBAAgBhlC,4BAA4G,KAA9EtrkC,KAAKipiC,UAAUqnE,gBAAgBhlC,2BAA2BqkC,mBA2B3J3vmC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,KACzCu55B,EAAa3umC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAGk23B,2BAA2BqkC,mBAGvFhB,IACDA,EAAa3umC,KAAKipiC,UAAUqiC,2BAA2BqkC,mBAEpDhB,CACX,EAMAtxB,EAAc1skC,UAAUw9lC,QAAU,SAAUj5hC,GACxC,OAAQA,GACJ,IAAK,SACD,OAAO,IAAI+1/B,IAAWjrkC,KAAKipiC,UAAWjpiC,MAC1C,IAAK,OACD,OAAO,IAAIkskC,IAASlskC,KAAKipiC,UAAWjpiC,MACxC,IAAK,kBACL,IAAK,kBACL,IAAK,kBACL,IAAK,kBACL,IAAK,cACL,IAAK,cACL,IAAK,aACL,IAAK,aACD,OAAO,IAAIivkC,IAAWjvkC,KAAKipiC,UAAWjpiC,KAAMk1E,GAChD,IAAK,qBACL,IAAK,qBACL,IAAK,SACL,IAAK,wBACD,OAAO,IAAIo5/B,IAAYtukC,KAAKipiC,UAAWjpiC,KAAMk1E,GACjD,IAAK,WACD,OAAO,IAAIsz/B,IAAgBxokC,KAAKipiC,UAAWjpiC,KAAMA,KAAKipiC,UAAUqnC,eACpE,IAAK,UACD,OAAO,IAAIW,IAAmBjxkC,KAAKipiC,UAAWjpiC,KAAM,WACxD,IAAK,WACD,OAAO,IAAImokC,IAASnokC,KAAKipiC,UAAWjpiC,KAAM,eAAWqD,GACzD,IAAK,OACD,OAAO,IAAI8kkC,IAASnokC,KAAKipiC,UAAWjpiC,KAAM,0BAA2BA,KAAKipiC,UAAUqnC,eACxF,IAAK,YACD,OAAO,IAAIW,IAAmBjxkC,KAAKipiC,UAAWjpiC,KAAM,aACxD,IAAK,SACD,OAAO,IAAIoykC,IAAWpykC,KAAKipiC,UAAWjpiC,MAC1C,IAAK,QACD,OAAO,IAAIyokC,IAAUzokC,KAAKipiC,UAAWjpiC,MACzC,IAAK,MACD,OAAO,IAAIkukC,IAAelukC,KAAKipiC,UAAWjpiC,KAAMA,KAAKipiC,UAAUqnC,eAEvE,OAAIp7/B,EAAOvqE,QAAQ,0BAA4B,GAAKuqE,EAAOvqE,QAAQ,WAAa,EACrE,IAAI2jkC,IAAYtukC,KAAKipiC,UAAWjpiC,KAAMk1E,GAE1C,IACX,EAMAmogC,EAAc1skC,UAAUy0kC,eAAiB,SAAU90zB,GAC/C,IAAIm9zB,EAAsBztlC,KAAKipiC,UAAU39sB,uBACzCtrV,KAAKipiC,UAAUykD,yBAAwB,GAEvC,IAAI6iB,EAAkBvwmC,KAAKk1E,OAAOx0D,cAAc8pC,SAAS,WAAaxqD,KAAKk1E,OAAOx0D,cAAc8pC,SAAS,yBACrGy2hC,EAAqC,SAAhBjhlC,KAAKk1E,QAAqBq7hC,IAAqBvwmC,KAAK6khB,gBAAgB2jjB,KAAmBxokC,KAAK6khB,gBAAgBsjjB,KAAYnokC,KAAK6khB,gBAAgBosjB,MAAwBjxkC,KAAK6khB,KAAKgsjB,UAAY7wkC,KAAK6khB,KAAKyrjB,cAC9N,GAAItwkC,KAAK6khB,KAAM,CACX,IAAK7khB,KAAKwpkC,UAA0B,IAAdl5yB,EAAIj4P,OACF,SAAhBr4B,KAAKk1E,OAAmB,CACxBl1E,KAAKk1E,OAAS,SACd,IAAIrkE,EAAMi2jC,IAAkBx2yB,EAAKtwR,KAAMA,KAAKipiC,UAEhD,CAQJ,GALMjpiC,KAAK6khB,gBAAgBosjB,KAAyBjxkC,KAAK6khB,gBAAgBsjjB,KAAenokC,KAAK6khB,gBAAgB2jjB,MACzGxokC,KAAKwpkC,UAAW,EAChBxpkC,KAAKu35B,aAAc,GAEvBv35B,KAAKy5wB,gBAAkBz5wB,KAAKq+V,iBAAiB/tE,GACzCtwR,KAAK6khB,KAAM,CACX7khB,KAAK4kV,UAAU16P,SAAWlqF,KAAKy5wB,gBAC/Bz5wB,KAAK0qlC,kBAAkB1qlC,KAAKy5wB,gBAAiBz5wB,KAAK4kV,UAAWt0D,EAAKtwR,KAAK4kV,UAAUhuU,QACnE5W,KAAK+lgB,UAAUz1O,GAA7B,IACI/zP,EAAO,CAAE3E,QAAS04P,EAAI14P,QAASC,SAAUy4P,EAAIz4P,UAWjD,GAVA73B,KAAK4kV,UAAUroT,KAAOA,EACtBv8B,KAAK4kV,UAAU+lwB,WAAar6zB,EAAI15P,OAChC52B,KAAK6khB,KAAK9lB,QAAQ/+f,KAAK4kV,WACvB5kV,KAAK4rkC,uBAAwB,EAC7B5rkC,KAAK6rkC,sBAAuB,GAEvB7rkC,KAAK6khB,gBAAgB2jjB,KAAmBxokC,KAAK6khB,gBAAgBsjjB,KAAYnokC,KAAK6khB,gBAAgBosjB,OAAwBjxkC,KAAK6khB,KAAKgsjB,WACjI7wkC,KAAKwpkC,UAAW,EAChBxpkC,KAAKu35B,aAAc,GAEnB0pL,EAAmB,CACfpwkC,EAAMi2jC,IAAkBx2yB,EAAKtwR,KAAMA,KAAKipiC,YAEvCjpiC,KAAKwmmC,2BAA6BxmmC,KAAK4pjC,gCACxC5pjC,KAAKipiC,UAAU9p6B,WAAWqx+B,gBAAgB3/lC,EAAKy/Q,EAEvD,CACAtwR,KAAKihlC,mBAAoB,CAC7B,CACJ,CACA,IAAI54kC,EAASioR,EAAIjoR,OAEDioR,EAAI35P,YAAc32B,KAAKmzjC,mBAAmB9qjC,MAAa4+U,GAAQM,UAAYvnV,KAAKipiC,UAAUqf,oBACtGh4xB,EAAIjiR,iBAERrO,KAAK4kV,UAAY,CAAC,EAClB5kV,KAAKipiC,UAAUykD,wBAAwBD,GAAqB,EAChE,EAMApQ,EAAc1skC,UAAUwijC,mBAAqB,SAAU9qjC,GACnD,IAAIoomC,GAAY,EACZhqZ,GAAS,EAYb,OAVIzmtB,KAAKipiC,UAAUgb,kBAAoBjkjC,KAAKipiC,UAAUgb,iBAAiByE,0BAA4B1ojC,KAAKipiC,UAAUgb,iBAAiByE,yBAAyBC,oBACxJliW,GAAS,IAGTp+sB,EAAOwtR,eAAoD,mBAAnCxtR,EAAOwtR,cAAc90R,WAAmCsH,EAAO6/Q,UAAUh1P,SAAS,mBAAsB7qB,EAAO6/Q,UAAUh1P,SAAS,uBAA0B7qB,EAAO6/Q,UAAUh1P,SAAS,sBAAyB7qB,EAAO6/Q,UAAUh1P,SAAS,2BAC7P7qB,EAAO6/Q,UAAUh1P,SAAS,wBAA2B7qB,EAAO6/Q,UAAUh1P,SAAS,oCACvD,oBAAtB7qB,EAAQtH,WAAwD,aAApBsH,EAAQ+/B,SACtDq+qB,GAAmC,mBAAtBp+sB,EAAQtH,aAAmCsH,EAAOwtR,cAAc3N,UAAU9kR,OAAS,IAAMiF,EAAOwtR,cAAc3N,UAAUh1P,SAAS,yBAClJu9kC,GAAY,GAETA,CACX,EACApzB,EAAc1skC,UAAUo1f,UAAY,SAAUz1O,GAC1C,OAAOp4P,UAAU8vT,SAAS7wU,MAAM,OAASm5Q,EAAIv4P,QAAUu4P,EAAI14P,OAC/D,EAMAyljC,EAAc1skC,UAAUi0kC,iBAAmB,SAAUt0zB,GACjD,IAAIhxR,EAAQU,KACRA,KAAK6khB,gBAAgBqnjB,OAAclskC,KAAK6khB,gBAAgB4jjB,MAAczokC,KAAK6khB,KAAe,WAC1F7khB,KAAKollC,eAAe90zB,GACF,IAAdA,EAAIj4P,QACJr4B,KAAKwojC,oBAAqB,EAC1BpyhC,YAAW,WACP92B,EAAMkpjC,oBAAqB,CAC/B,GAAG,OAGX,IAAIilC,EAAsBztlC,KAAKipiC,UAAU39sB,uBACzCtrV,KAAKipiC,UAAUykD,yBAAwB,GACvC,IAAIrk8B,EACJA,EAAUinI,EAAIjnI,QACdrpJ,KAAKu35B,aAAc,EACnBv35B,KAAK6kjC,mBAAoB,EACzB7kjC,KAAKy5wB,gBAAkBz5wB,KAAK8pkC,aAAe9pkC,KAAKq+V,iBAAiB/tE,GACjEtwR,KAAK4kV,UAAY,CAAC,EAClB,IAAIwovB,GAAU,EACc,UAAxBptkC,KAAKipiC,UAAUpkhB,OACf7khB,KAAKipiC,UAAUpkhB,KAAO,GACtBuojB,GAAU,GAGVnmvB,GAAQM,UAAYvnV,KAAKipiC,UAAU9p6B,aACnCn/H,KAAKinkC,eAAeC,aAAelnkC,KAAKipiC,UAAU9p6B,WAAW2o8B,mBAAmBx3yB,IAEpF,IAAIz/Q,EAAMi2jC,IAAkBx2yB,EAAKtwR,KAAMA,KAAKipiC,WAI5C,IAHKhitB,GAAQM,UAAavnV,KAAKipiC,UAAUqf,oBAAuBz3iC,GAASA,aAAeu6iC,KACpF96xB,EAAIjiR,iBAEJrO,KAAKipiC,UAAU9p6B,YAAcn/H,KAAKipiC,UAAUqyC,uBAAwB,CACpE,IAAIgO,EAActplC,KAAKipiC,UAAUgb,iBAAiB8oB,sBAClD,GAAIuc,GAAeA,EAAYI,gBAAiB,CAC5C,IAAIgnB,EAAW7/lC,EAIf,IAHK6/lC,GAAY1wmC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,KACtDs75B,EAAW1wmC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,IAEpDs75B,EAAU,CACV1wmC,KAAK+9kC,mBAAoB,EACzB2yB,EAASpi+B,QAAUtuI,KAAKipiC,UAAUumC,cAAclh8B,QAChDtuI,KAAK8glC,YAAa,EAClB,IAAIxy8B,OAAU,EAUd,GARIA,EADiC,UAAjCoi+B,EAAS37D,oBACC/0iC,KAAKipiC,UAAU0nE,oBAAoBri+B,QAGnCtuI,KAAKipiC,UAAUumC,cAAclh8B,QAG3CtuI,KAAKipiC,UAAU0lC,mBAAmB+hC,EAAU,CAAEpi+B,QAASA,IACvDtuI,KAAKipiC,UAAU9p6B,WAAW4t8B,sBAAsB6jC,gBAAiB,EAC5B,UAAjCF,EAAS37D,sBAAoC/0iC,KAAKqglC,eAAgB,CAClErglC,KAAK+/kC,YAAa,EAClB,IAAI8wB,EAAYH,EAASv6kC,GACrBmzjC,EAAYD,wBAA0BC,EAAYD,uBAAuB7sC,gBACzEq0D,EAAYvnB,EAAYD,uBAAuB7sC,eAGnD,IADA,IAAI/1V,GAAS,EACJt6sB,EAAI,EAAGA,EAAInM,KAAKy0kC,sBAAsBrxkC,OAAQ+I,IACnD,GAAInM,KAAKy0kC,sBAAsBlojC,SAASpgB,EAAE2K,WAAY,KAAKg6lC,kBAAoBD,EAAW,CACtFpqZ,GAAS,EACT,KACJ,CAEAA,IACAoqZ,EAAYH,EAASv6kC,IAEzB06kC,EAAYvnB,EAAYwnB,gBAAkBxnB,EAAYwnB,gBAAkBxnB,EAAYD,uBAAuB7sC,cAC3Gx8iC,KAAKy0kC,sBAAsBrokC,KAAK,CAAE0kmC,gBAAiBD,EAAWE,uBAAwBL,EAASxmkC,OAC3F4iS,MACA9sU,KAAKipiC,UAAU8E,gBAAgB13oB,kBAAkB,8BAA+Bw6sB,EAAWH,EAASxmkC,KAE5G,CACIlqC,KAAKipiC,UAAU0nE,oBAAoBK,mBAAqBhxmC,KAAKipiC,UAAU0nE,oBAAoBM,cAC3FjxmC,KAAK+/kC,YAAa,GAEtB//kC,KAAKqglC,gBAAiB,EACtBiJ,EAAYsT,kBAAkB8T,EAAS56rB,UAAW46rB,EAAUA,EAASpi+B,SACrEg78B,EAAY4nB,kBACZ5nB,EAAYI,iBAAkB,CAClC,CACJ,CACJ,CACA,GAAI1plC,KAAKyglC,oBAAqB,CAC1BzglC,KAAKu8iC,iBACLv8iC,KAAKm8iC,sBAAwB,KAC7B,IAAIg1D,EAAatgmC,EAIjB,GAHIk7T,GAAkBolyB,IAAenxmC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,KAC1E+75B,EAAanxmC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,IAEtD+75B,EAAY,CACZnxmC,KAAKwkjC,gBAAiB,EACtBxkjC,KAAKy9iC,gBAAgBgH,mBAAmB0sD,EAAWr7rB,UAAWq7rB,GAE9D,IAAIxsW,EAAS,CAAEhhoB,KAAMwt+B,EAAWxsW,OAAOzqvB,EAAGg0I,IAAKij9B,EAAWxsW,OAAOxqvB,EAAGqE,MAAO2ylC,EAAWxsW,OAAOnmvB,MAAOoqI,OAAQuo9B,EAAWxsW,OAAO/7mB,QAE9H5oJ,KAAKipiC,UAAUyb,iBAAiBysD,EAAWr7rB,UAAWq7rB,EAAW30D,cAAe20D,EAAWp8D,oBAAqBpwS,EAAQwsW,EAAW7i+B,QAAS6i+B,EAAW1zoB,YAAa0zoB,EAAW/iK,UAAWpu8B,KAAKy9iC,gBAAgBhF,gBACnN,CACAz4iC,KAAKyglC,qBAAsB,CAC/B,CACA,GAAIzglC,KAAKipiC,UAAUgb,iBAAkB,CACjC,IAAI2qD,EAAsB5umC,KAAKipiC,UAAUgb,iBAAiByE,yBAG1D,IAA+C,IAA3CkmD,EAAoB1S,mBAA6B,CACjD,IAAIt/nB,OAAS,EAEb,GAAItsM,EAAIjoR,SAAWioR,EAAIjoR,OAAO8tB,GAAGxrB,QAAQ,UAAY,GAAK2lR,EAAIjoR,OAAO8tB,GAAGxrB,QAAQ,sBAAwB,GAAK2lR,EAAIjoR,OAAO6/Q,UAAUh1P,SAAS,oBAAsBlzB,KAAKipiC,UAAU9p6B,WAAY,CACxL,IAAI22S,EAAY91a,KAAKipiC,UAAU9p6B,WAAW2o8B,mBAAmBx3yB,GACzD8yyB,EAAUlyiC,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,qBAAuB2/Y,GACzF,GAAIstpB,EAAS,CACT,IAAIgR,EAAUhR,EAAQ3uyB,wBAClB9wJ,EAAOyw8B,EAAQl6jC,EAAIk6jC,EAAQl6jC,EAAIk6jC,EAAQzw8B,KACvCyt+B,EAAQh9B,EAAQj6jC,EAAIi6jC,EAAQj6jC,EAAIi6jC,EAAQlm7B,IAC5C0uU,EAAS,IAAIile,IAAKl+zB,EAZN,EAYgCyt+B,EAZhC,EAY2Dh9B,EAAQ51jC,MAZ3C,GAYuE41jC,EAAQxr7B,OAZ/E,GAaxC,CACJ,CAKA,GAJIS,IACArpJ,KAAK+hjC,OAAS145B,EAAQ,GAAGhwH,QACzBr5B,KAAKiijC,OAAS545B,EAAQ,GAAG/vH,SAEzBsjc,GAAUA,EAAOwgmB,cAAc,CAAEljjC,EAAGla,KAAK+hjC,OAAQ5niC,EAAGna,KAAKiijC,UAAa2sD,EAAoBG,gBAAiB,CACvGj5rB,EAAY91a,KAAKipiC,UAAU9p6B,WAAW2o8B,mBAAmBx3yB,GAC7D,IAAKtwR,KAAKipiC,UAAUqlE,iBAAiB+C,cAAe,CAChD,IAAItwN,EAAa/g5B,KAAKwqiC,gBAClBhshC,EAAQxe,KAAKy5wB,gBAAgBv/vB,EAAK00lC,EAAoB0C,YAAcvwN,EACpEyoJ,EAAYxpiC,KAAKq9lC,aAAavnrB,GAC9Bt3Z,GAASgrhC,IACTxpiC,KAAKy5wB,gBAAgBv/vB,EAAIsvhC,EAAaolE,EAAoB0C,YAAcvwN,EACxE/g5B,KAAKy5wB,gBAAgBv/vB,GAAK,EAAIla,KAAKy5wB,gBAAgBv/vB,EA3B3C,EA2BmEla,KAAKy5wB,gBAAgBv/vB,EAChG00lC,EAAoB0C,YAAe1C,EAAoB0C,YAAcvwN,GAAeyoJ,EAAYA,EA5BhE,GA4BiGolE,EAAoB0C,YAE7J,CAEA,GADA1C,EAAoB9jB,eAAe9qlC,KAAKy5wB,gBAAiB,KAAM3jW,GAC3D91a,KAAKipiC,UAAUh0a,SAAWj1nB,KAAKipiC,UAAUh0a,QAAQkjc,wBAAyB,CAE1E,IAAIo5C,EAAcvxmC,KAAKipiC,UAAUh0a,QAAQkjc,wBACpCrrvB,MACDykyB,EAAYC,eAAe11B,aAAay1B,EAAYE,iBAE5D,CACAnh1B,EAAIjiR,iBACJugmC,EAAoBG,iBAAkB,CAC1C,CACJ,CACJ,CAEIl+lC,GACgBA,EAAI1G,QAAQrE,SAAS,KAKpC9F,KAAK6khB,MAAS7khB,KAAK6khB,OAAS7khB,KAAK6khB,KAAKyrjB,iBAClClD,GAgCDptkC,KAAKk1E,OAAS,SACdl1E,KAAK6khB,KAAO7khB,KAAKmumC,QAAQnumC,KAAKk1E,UAhC9Bl1E,KAAKk1E,OAASl1E,KAAKgtmC,mBAAmBn8lC,EAAK7Q,KAAKy5wB,iBAE5C5owB,GAAOA,EAAI2yiC,oBAAsB3yiC,EAAI2yiC,mBAAmB0F,SACpC,WAAhBlpjC,KAAKk1E,SACAl1E,KAAKipiC,UAAUgb,iBAAiBmnB,yBAAyB,SAAUv6jC,KACpE7Q,KAAKk1E,OAAS,KAGF,SAAhBl1E,KAAKk1E,SACAl1E,KAAKipiC,UAAUgb,iBAAiBmnB,yBAAyB,OAAQv6jC,KAClE7Q,KAAKk1E,OAAS,WAGF,WAAhBl1E,KAAKk1E,SACLl1E,KAAKk1E,OAAS,WAGE,oBAAhBl1E,KAAKk1E,QAAgD,oBAAhBl1E,KAAKk1E,QAAgD,oBAAhBl1E,KAAKk1E,QAAgD,oBAAhBl1E,KAAKk1E,QAAgD,gBAAhBl1E,KAAKk1E,QACzI,gBAAhBl1E,KAAKk1E,QAA4C,eAAhBl1E,KAAKk1E,QAA2C,eAAhBl1E,KAAKk1E,QAA2Bl1E,KAAKk1E,OAAO1qB,SAAS,0BAA4BxqD,KAAKk1E,OAAO1qB,SAAS,aAClKxqD,KAAKipiC,UAAUgb,iBAAiBmnB,yBAAyB,SAAUv6jC,KACpE7Q,KAAKk1E,OAAS,YAI1Bl1E,KAAK6khB,KAAO7khB,KAAKmumC,QAAQnumC,KAAKk1E,QACzBl1E,KAAK6khB,OACN7khB,KAAKk1E,OAASl1E,KAAKipiC,UAAUpkhB,MAAQ,SACrC7khB,KAAK6khB,KAAO7khB,KAAKmumC,QAAQnumC,KAAKk1E,WAQ1Cl1E,KAAK0qlC,kBAAkB1qlC,KAAKy5wB,gBAAiBz5wB,KAAK4kV,UAAWt0D,GAC7DtwR,KAAK4kV,UAAU16P,SAAWlqF,KAAKy5wB,gBAC3Bz5wB,KAAK6khB,OACL7khB,KAAK4rkC,uBAAwB,EAC7B5rkC,KAAK6rkC,sBAAuB,EAC5B7rkC,KAAK2skC,uBAAwB,EAC7B3skC,KAAK4skC,sBAAuB,EAC5B5skC,KAAK6khB,KAAKhlB,UAAU7/f,KAAK4kV,WACzB5kV,KAAKihlC,mBAAoB,EACzBjhlC,KAAKwkjC,gBAAiB,GAEtBxkjC,KAAKipiC,UAAU9p6B,YACfn/H,KAAKipiC,UAAU9p6B,WAAW299B,wBAE1B98lC,KAAKipiC,UAAUjmmB,eAAoE,IAAnDhjc,KAAKipiC,UAAUjmmB,cAAcmmnB,WAAW/ljC,SACnE2oU,GAAkB/rU,KAAKipiC,UAAUh0a,UAAalpT,GAAkB/rU,KAAKipiC,UAAUh0a,QAAQq0b,4BACxFtpjC,KAAKipiC,UAAUh0a,QAAQq0b,0BAA0BC,oBAAmB,IAG5E,IAAImoD,EAA+E,IAApD1xmC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAYhyM,OAAepD,KAAKipiC,UAAUlkR,UAAU/kxB,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAGj/K,GAAGxD,MAAM,KAAK,GAAK,YAAc,KAK7L,GAJK++kC,IACDA,EAA+E,IAApD1xmC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAYhyM,OAAepD,KAAKipiC,UAAUlkR,UAAU/kxB,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAGj/K,IAAM,MAG9Jn2B,KAAK4kV,WAAa5kV,KAAK4kV,UAAUhuU,SAAW5W,KAAK4kV,UAAUhuU,OAAOq+hC,yBAA2By8D,KAA8B1xmC,KAAKipiC,UAAUmgB,aAAc,CACxJ,IAAI9zZ,OAAgB,EAUpB,IARIA,EADAo8c,EACgB1xmC,KAAKipiC,UAAUlkR,UAAU/kxB,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAGj/K,GAAGxD,MAAM,KAAK,IAGnF3yB,KAAK4kV,UAAUhuU,UAG/B0+oB,EAAgBt1pB,KAAKipiC,UAAU0nC,qBAAqB3wkC,KAAKipiC,UAAU0nC,qBAAqBznjC,WAAU,SAAUhc,GAAM,OAAOA,EAAGipB,KAAOu7kC,EAAyBv7kC,EAAI,MAEhKm/nB,EAAe,CAEf,IAAIl2iB,EAAQ,CAER16G,KAAM4wpB,EAAc5wpB,KAAMyxB,GAAIm/nB,EAAcn/nB,GAAIqsb,WAAY8yM,EAAc9yM,WAAYvjK,SAAUq2W,EAAcr2W,SAAUu3R,UAAW8+E,EAAc9+E,UAEjJ//c,MAAO6+hB,EAAc7+hB,MAAO70H,MAAO0zpB,EAAc1zpB,MAAOgL,KAAM0opB,EAAc2/Y,wBAA0B3/Y,EAAc2/Y,wBAA0B3/Y,EAAc1opB,KAAMgxd,gBAAiB03L,EAAc13L,gBAAiB5hN,UAAWs5Y,EAAct5Y,WAE3O8xR,EAAW58gB,SAASg8T,eAAeooU,EAAcn/nB,KACrD23gB,EAAWA,IAAuB58gB,SAASg8T,eAAeooU,EAAcn/nB,GAAK,yBAA2BjF,SAASg8T,eAAeooU,EAAcn/nB,GAAK,yBAAyBrwB,SAAS,GAAGA,SAAS,GAAK,SAElM9F,KAAKm7B,cAAgB2ygB,EACrB9tiB,KAAKipiC,UAAU4+C,wBAAwB,mBAAoBzo+B,GAAO,EAAsB,IAAfkxK,EAAI/2P,QAErF,CACJ,CACAv5B,KAAK0umC,iBAAmB,CAAE93lC,OAAQ5W,KAAK4kV,UAAUhuU,OAAQq3jC,cAAejukC,KAAK4kV,UAAUqpvB,eACvFjukC,KAAK0umC,iBAAiBxkhC,SAAWlqF,KAAKy5wB,gBACtCz5wB,KAAK0umC,iBAAiBnykC,KAAOv8B,KAAK4kV,UAAUroT,KAC5Cv8B,KAAKipiC,UAAUykD,wBAAwBD,GAAqB,EAChE,EAKApQ,EAAc1skC,UAAUghmC,0BAA4B,WAChD,IAAIrymC,EAAQU,KACZ,GAAIA,KAAKipiC,UAAUgb,kBACKjkjC,KAAK4xmC,mBAErB,OAAO,IAAIjhkC,SAAQ,SAAU2mB,EAASuwB,GAClCvoF,EAAMuymC,mCAAkC,EAAMv+D,IAAqB+e,MAAMp37B,MAAK,SAAUr5H,GACpF01D,EAAQ11D,EACZ,GACJ,GAGZ,EAMAy7kC,EAAc1skC,UAAU23lC,0BAA4B,SAAU17lC,GAC1D,OAAI5M,KAAKkjjC,gBACEljjC,KAAK6glC,iBAAiB7glC,KAAKojjC,WAAax2iC,GAGxCokB,OAAOor0B,eAAe3woB,QAAQzrN,KAAKojjC,WAAax2iC,EAE/D,EAwCAywkC,EAAc1skC,UAAU25hC,kBAAoB,SAAUF,EAASzm6B,EAAMuqB,EAAK4j9B,EAAYtzlC,EAAOoqI,EAAQmj7B,GACjG,IAAI5uB,EAAYn9iC,KAAKwqiC,gBACjBuhC,IACA5uB,EAAY,EACZ/S,EAAQjkiC,MAAM+jF,SAAW,YAE7Bkg9B,EAAQjkiC,MAAMw9H,KAAOA,EAAOw56B,EAAY,KACxC/S,EAAQjkiC,MAAM+nJ,IAAMA,EAAMiv5B,EAAY,KACtC/S,EAAQjkiC,MAAMyiJ,OAASA,EAASu05B,EAAY,KAC5C/S,EAAQjkiC,MAAMqY,MAAQA,EAAQ2+hC,EAAY,KAC1C/S,EAAQjkiC,MAAMkpT,OAAS,MACnByizB,EAAa,IACb1nE,EAAQjkiC,MAAM84S,SAAW6yzB,EAAa30D,EAAY,KAE1D,EAMAkgC,EAAc1skC,UAAU4+hC,oBAAsB,SAAUjzhC,GACpD,OAAQA,GAAU,GAAK,GAC3B,EAKA+gkC,EAAc1skC,UAAU6klC,wBAA0B,SAAUvvQ,EAAgBr50B,GAExE,IAAImlmC,EAAiBnumC,KAAKmgB,MAAM0sB,KAAK+mF,UAAUyutB,GAAgB7i1B,OAAS,MACpE0omC,EAAclomC,KAAKmgB,MAAM0sB,KAAK+mF,UAAUxmG,OAAOor0B,gBAAgBh51B,OAAS,MACxE2umC,EAAiB,OACjB/xmC,KAAKkjjC,iBAAkB,EACnBljjC,KAAKipiC,UAAUsR,mBACTv6iC,KAAK2ljC,sBACP3ljC,KAAKipiC,UAAUsR,iBAAiBqL,wBAChC5ljC,KAAK2ljC,qBAAsB,KAInC3ljC,KAAKkjjC,gBACLljjC,KAAK6glC,iBAAiB7glC,KAAKojjC,WAAax2iC,GAAQ6jC,KAAK+mF,UAAUyutB,GAEzD8rR,EAAiBjG,EAAe,MACtC9rmC,KAAKkjjC,iBAAkB,EACnBljjC,KAAKipiC,UAAUsR,kBACfv6iC,KAAKipiC,UAAUsR,iBAAiBqL,wBAEpC5ljC,KAAK2ljC,qBAAsB,EACvB3ljC,KAAKipiC,UAAUgb,kBACfjkjC,KAAKipiC,UAAUgb,iBAAiByB,yBAEpC1ljC,KAAK6glC,iBAAiB7glC,KAAKojjC,WAAax2iC,GAAQ6jC,KAAK+mF,UAAUyutB,IAG/Dj1zB,OAAOor0B,eAAexwoB,QAAQ5rN,KAAKojjC,WAAax2iC,EAAM6jC,KAAK+mF,UAAUyutB,GAE7E,EAKAo3P,EAAc1skC,UAAUqhmC,yBAA2B,SAAUtN,GACzD,IAAIplmC,EAAQU,KACZ,GAAIA,KAAKipiC,UAAUsR,iBACf,OAAO,IAAI5pgC,SAAQ,SAAU2mB,EAASuwB,GAClCvoF,EAAMylmC,kCAAiC,EAAML,GAAqBzp+B,MAAK,SAAUr5H,GAC7E01D,EAAQ11D,EACZ,GACJ,GAER,EAcAy7kC,EAAc1skC,UAAUyhjC,kBAAoB,SAAU6/C,EAAYxN,EAAsByN,GAChFlymC,KAAKipiC,UAAUgb,kBACfjkjC,KAAKmymC,kCAAkCF,EAAYxN,EAAsByN,EAEjF,EAMA70B,EAAc1skC,UAAUgnjC,kBAAoB,SAAU8sC,GAC9CzkmC,KAAKipiC,UAAUgb,mBACKjkjC,KAAK4xmC,oBAErB5xmC,KAAK6xmC,mCAAkC,EAAOpN,GAG1D,EAQApnB,EAAc1skC,UAAUkhmC,kCAAoC,SAAUv+iC,EAAUmxiC,EAAsB2N,GAClG,IACIps6B,EADA1mM,EAAQU,KAEZgmM,EAAQhmM,KACR,IAAIg9H,EAAU,IAAIrsF,SAAQ,SAAU2mB,EAASuwB,GAEzC,IAAI60+B,GACJA,EAAap9jC,EAAMk3lC,yBACRiO,qBAAuBA,EAElC/nC,EAAmB,OAAI,oBACvB123B,EAAMij2B,UAAUopE,gBAAgB31C,GAC5B123B,EAAMqr5B,iBAEN30B,EAAWxriC,SAAW80K,EAAMqr5B,gBAEhC,IAAIpi+B,EAAM+2E,EAAMij2B,UAAUy6C,WAAa,IAAM194B,EAAMij2B,UAAUwoD,qBAAqB95B,kBAClF3x3B,EAAM0x5B,+BAAiC,IAAI57B,IAAYx8jC,EAAM2piC,WAC7Djj2B,EAAM0x5B,+BAA+Bzo+B,IAAMA,EAC3C+2E,EAAM0x5B,+BAA+BnniC,MAAO,EAC5Cy1I,EAAM0x5B,+BAA+BxmR,aAAe,OACpDlroB,EAAM0x5B,+BAA+Bvh3B,KAAKum1B,GAE1C123B,EAAM0x5B,+BAA+BnywB,UAAY,SAAU16T,GAEvD,IAAIqf,EAAOrf,EAAOqf,KAElB,IADe87J,EAAMms5B,iBAAiBjojC,GAElC,GAAIA,EAAM,CAIN,GAHoB,kBAATA,IACPA,EAAOuG,KAAKuL,MAAM9R,IAElBA,EAAM,CACN,IAAIkkmB,EAAWpoc,EAAMij2B,UAAU0oD,uBAAuB3r5B,EAAMij2B,UAAUwoD,qBAAqB95B,kBAAmBzthC,GAC9G,GAAIopB,GAAa8+iC,IAAmBtlyB,KAChC,GAAI5iS,EAAKvX,MAAM,WAAW,GAAI,CAC1B,IAAI2/kC,EAAepokC,EAEfs7jC,EAAiBx/9B,KAAK97F,EAAKvX,MAAM,KAAK,IACtC2gC,IAEIg/iC,EADoC,SAApC51C,EAAW+nC,qBACIh0jC,KAAKuL,MAAMwpjC,GAGXA,GAG0B,OAA7Cx/5B,EAAMij2B,UAAU07D,yBAChB3+5B,EAAMij2B,UAAU47D,kBAAkByN,EAActs6B,EAAMij2B,UAAU07D,0BAGhE3+5B,EAAMij2B,UAAU47D,kBAAkByN,EAActs6B,EAAMij2B,UAAU9qkB,UAEpEn4R,EAAM6i6B,sCAEFvxiC,EADA86iC,EACQlokC,EAGAs7jC,EAEhB,MAGIx/5B,EAAMij2B,UAAUspE,iBAAiB71C,EAAW7K,cAAe7r3B,EAAMij2B,UAAU59hB,UAAUtlK,YAAY,uBAIrG,GAA6B,SAAzB0+vB,EACA,GAAIv6jC,EAAKvX,MAAM,WAAW,GAAI,CAC1B,GAAKy7mB,EAiBD,OAAOlkmB,EAhBP,IAAI85b,EAAUh+R,EAAM0w5B,cAAcxsjC,EAAKvX,MAAM,WAAW,GAAI,oBACxDs0T,GAAQh0D,MAA8B,SAAtBg0D,GAAQ1qT,KAAK73B,KACoB,OAA7CshM,EAAMij2B,UAAU07D,yBAEhB3zkC,OAAOkH,UAAUutkC,iBAAiBzhoB,EAASh+R,EAAMij2B,UAAU07D,yBAAyBhykC,MAAM,KAAK,GAAK,SAGpG3B,OAAOkH,UAAUutkC,iBAAiBzhoB,EAASh+R,EAAMij2B,UAAU9qkB,SAASxrc,MAAM,KAAK,GAAK,SAIxFqzK,EAAMw+5B,qBAAqBxgoB,EAASygoB,GAExCz+5B,EAAM6i6B,qCAKd,KACK,CACD,GAAI/7xB,KACgB9sU,KAAKipiC,UAAU8E,gBAAgB13oB,kBAAkB,gBAAiB,0BACxEp7R,MAAK,SAAUr5H,GACrBokM,EAAMws3B,kCAAkC5wjC,EAC5C,SAGAokM,EAAMws3B,kCAAkCxs3B,EAAMij2B,UAAU59hB,UAAUtlK,YAAY,kBAGlF//J,EAAMij2B,UAAUspE,iBAAiB71C,EAAW7K,cAAe7r3B,EAAMij2B,UAAU59hB,UAAUtlK,YAAY,iBACrG,MAGA,GAAI77T,EAAKvX,MAAM,WAAW,GAAI,CAC1B,GAAKy7mB,EAWD,OAAOlkmB,EAVH85b,EAAUh+R,EAAM0w5B,cAAcxsjC,EAAKvX,MAAM,WAAW,GAAI,8BACxDs0T,GAAQh0D,MAA8B,SAAtBg0D,GAAQ1qT,KAAK73B,KAC7BssB,OAAOkH,UAAUutkC,iBAAiBzhoB,EAASh+R,EAAMij2B,UAAU9qkB,SAASxrc,MAAM,KAAK,GAAK,SAGpFqzK,EAAMw+5B,qBAAqBxgoB,EAASygoB,GAExCz+5B,EAAM6i6B,qCAKd,KACK,CACD,GAAI/7xB,KACgB9sU,KAAKipiC,UAAU8E,gBAAgB13oB,kBAAkB,gBAAiB,0BACxEp7R,MAAK,SAAUr5H,GACrBokM,EAAMws3B,kCAAkC5wjC,EAC5C,SAGAokM,EAAMws3B,kCAAkCxs3B,EAAMij2B,UAAU59hB,UAAUtlK,YAAY,kBAGlF//J,EAAMij2B,UAAUspE,iBAAiB71C,EAAY123B,EAAMij2B,UAAU59hB,UAAUtlK,YAAY,iBACvF,CAGZ,CACA,GAAoB,kBAAT77T,EACP,IACwB,kBAATA,IACP87J,EAAMwr5B,eAAe,IAAKtnjC,EAAM87J,EAAMij2B,UAAUwoD,qBAAqB95B,mBACrEzthC,EAAO,KAEf,CACA,MAAOjzB,IAEH+uL,EAAMij2B,UAAUspE,iBAAiB71C,EAAW7K,cAAe7r3B,EAAMij2B,UAAU59hB,UAAUtlK,YAAY,kBACjG//J,EAAMwr5B,eAAe,IAAKtnjC,EAAM87J,EAAMij2B,UAAUwoD,qBAAqB95B,mBACrEzthC,EAAO,IACX,CAER,KACK,CACD,IAAIi0b,OAAW,EAEXA,EAD6C,OAA7Cn4R,EAAMij2B,UAAU07D,yBACL3+5B,EAAMij2B,UAAU07D,yBAGhB3+5B,EAAMij2B,UAAU9qkB,SAE/Bn4R,EAAMij2B,UAAU47D,kBAAkB,kDAAmD1moB,EACzF,CAER,EAEAn4R,EAAM0x5B,+BAA+BjywB,UAAY,SAAU56T,GACvDm7K,EAAMij2B,UAAUspE,iBAAiB71C,EAAW7K,cAAehniC,EAAO+6T,WACtE,EAEA5/I,EAAM0x5B,+BAA+Bzg9B,QAAU,SAAUpsH,GACrDm7K,EAAMij2B,UAAUspE,iBAAiB71C,EAAW7K,cAAehniC,EAAO+6T,WACtE,CACJ,IACA,OAAItyR,IAAY8+iC,GACLp1+B,CAKf,EAIAqg9B,EAAc1skC,UAAU6hmC,8BAAgC,SAAU13hC,EAASiigC,GACvE,GAAIjigC,EAAQ,GAAKiigC,IAAmBjigC,EAAQ,GAAKiigC,GAAgB35kC,OAAS,EAAG,CACzE,IAAI8mC,EAAO4wC,EAAQ,GAAKiigC,GACxB,GAAI7yiC,EACA,IAAK,IAAIl6B,EAAI,EAAGA,EAAIk6B,EAAK9mC,OAAQ4M,IAE7B,GADAk6B,EAAK3d,SAASvc,EAAE8G,WAAY,KAAK27lC,aAAezymC,KAAK0ymC,kCAAkCxokC,EAAK3d,SAASvc,EAAE8G,WAAY,KAAK27lC,cACpHvokC,EAAK3d,SAASvc,EAAE8G,WAAY,KAAK67lC,SACjC,IAAK,IAAIxmmC,EAAI,EAAGA,EAAI+9B,EAAK3d,SAASvc,EAAE8G,WAAY,KAAK67lC,SAASvvmC,OAAQ+I,IAClE+9B,EAAK3d,SAASvc,EAAE8G,WAAY,KAAK67lC,SAASpmlC,SAASpgB,EAAE2K,WAAY,KAAK27lC,aAAezymC,KAAK0ymC,kCAAkCxokC,EAAK3d,SAASvc,EAAE8G,WAAY,KAAK67lC,SAASpmlC,SAASpgB,EAAE2K,WAAY,KAAK27lC,aAKtN,CACJ,EAIAp1B,EAAc1skC,UAAU+hmC,kCAAoC,SAAUxymC,GAClE,IAAI8iB,EAGJ,GADAhjB,KAAKujZ,UAAY,IAAItkE,GAAqBj/U,KAAKipiC,UAAUlpiC,QAC5C,OAATG,QAA0BmD,IAATnD,GAA+B,KAATA,EACvC8iB,EAAW,IAAIvhB,KAAKA,KAAKu6C,MAAM97C,eAE9B,CACD,IAAIilE,EAAM,IAAI1jE,KACVmxmC,EAAUnxmC,KAAKyhB,IAAIiiD,EAAI5mD,iBAAkB4mD,EAAI5lD,cAAe4lD,EAAIrlD,aAAcqlD,EAAI3kD,cAAe2kD,EAAInkD,gBAAiBmkD,EAAIjkD,iBAC9H8B,EAAW,IAAIvhB,KAAKmxmC,EACxB,CAEA,OADoB5ymC,KAAKujZ,UAAU9jE,WAAWz8T,EAAU,CAAEqC,OAAQrlB,KAAKipiC,UAAUrmhC,eAAgBhW,KAAM,YAE3G,EAEAywkC,EAAc1skC,UAAUwhmC,kCAAoC,SAAUF,EAAYxN,EAAsByN,GACpG,IAAIx1C,EACA123B,EAQJ,GAPAA,EAAQhmM,MACHkymC,GAAUls6B,EAAMms3B,gBACjBnyjC,KAAKuilC,gBAAiB,EAGtBvilC,KAAKuilC,gBAAiB,EAEA,kBAAf0vB,EAAyB,CAChC,GAAIA,GAAcA,EAAWpgD,cAEzB,IADA,IAAIl1Y,EAAWl9qB,OAAO8E,KAAK0tmC,EAAWpgD,eAC7B1ljC,EAAI,EAAGA,EAAIwwqB,EAASv5qB,OAAQ+I,IAAK,CACtC,IAAI2uE,EAAUm3hC,EAAWpgD,cAAcl1Y,EAASpwpB,SAASpgB,EAAE2K,WAAY,MACvE9W,KAAKwymC,8BAA8B13hC,EAAS,sBAC5C96E,KAAKwymC,8BAA8B13hC,EAAS,0BAC5C96E,KAAKwymC,8BAA8B13hC,EAAS,mBAC5C96E,KAAKwymC,8BAA8B13hC,EAAS,uBAC5C96E,KAAKwymC,8BAA8B13hC,EAAS,0BAC5C96E,KAAKwymC,8BAA8B13hC,EAAS,oBAC5C96E,KAAKwymC,8BAA8B13hC,EAAS,yBAC5C96E,KAAKwymC,8BAA8B13hC,EAAS,uBAChD,CAEJkrH,EAAM6s6B,oBAAoBZ,EAAWpgD,eACrC7r3B,EAAM454B,sBAAuB,EAC7B554B,EAAMug3B,8BAA6B,GAC9BvmjC,KAAKuglC,iBACNv64B,EAAMij2B,UAAU6pE,kBAAkBb,EAAWpgD,cAErD,KACK,CACD7r3B,EAAMij2B,UAAUuoB,gBAAgBygD,GACH,SAAzBxN,EAGI/nC,EADA123B,EAAMms3B,gBACO,CAAEh0lB,SAAU8zoB,EAAY/8hC,OAAQ,oBAAqBirX,UAAWn6P,EAAMij2B,UAAU9zhC,QAAQghB,GAAIstjC,OAAQz94B,EAAMy94B,OAAQ10/B,SAAUi3G,EAAMo92B,YAGlI,CAAE2vD,aAAcd,EAAY/8hC,OAAQ,oBAAqBirX,UAAWn6P,EAAMij2B,UAAU9zhC,QAAQghB,GAAIstjC,OAAQz94B,EAAMy94B,OAAQ10/B,SAAUi3G,EAAMo92B,WAAYqhD,qBAAsBA,IAIpLyN,IACDD,EAAanx+B,KAAKmx+B,IAItBv1C,EAAa,CAAEq2C,aAFfd,EAAaA,EAAWt/kC,MAAM,KAAK,GAAKs/kC,EAAWt/kC,MAAM,KAAK,GAAKs/kC,EAAWt/kC,MAAM,KAAK,GAEhDuiD,OAAQ,oBAAqBirX,UAAWn6P,EAAMij2B,UAAU9zhC,QAAQghB,GAAIstjC,OAAQz94B,EAAMy94B,OAAQ10/B,SAAUi3G,EAAMo92B,WAAYqhD,qBAAsBA,KAEzL/nC,EAAaj9jC,OAAOgkD,OAAOi5gC,EAAY18jC,KAAKw2lC,0BACzB,OAAI,oBACnBxw5B,EAAMqr5B,iBAEF30B,EAAWtZ,mBACJsZ,EAAuB,WAElCA,EAAWxriC,SAAW80K,EAAMqr5B,gBAEhC,IAAIpi+B,EAAM+2E,EAAMij2B,UAAUy6C,WAAa,IAAM194B,EAAMij2B,UAAUwoD,qBAAqBr/B,kBAClFps3B,EAAMyx5B,+BAAiC,IAAI37B,IAAY913B,EAAMij2B,WAC7Djj2B,EAAMyx5B,+BAA+Bxo+B,IAAMA,EAC3C+2E,EAAMyx5B,+BAA+BlniC,MAAO,EAC5Cy1I,EAAMyx5B,+BAA+BvmR,aAAe,OACpDlroB,EAAMyx5B,+BAA+Bth3B,KAAKum1B,GAE1C123B,EAAMyx5B,+BAA+BlywB,UAAY,SAAU16T,GAEvD,IAAIqf,EAAOrf,EAAOqf,KAElB,IADe87J,EAAMms5B,iBAAiBjojC,IAE9BA,EAAM,CACN,GAAoB,kBAATA,EACP,IAEwB,kBADpBA,EAAOuG,KAAKuL,MAAM9R,MAEd87J,EAAMwr5B,eAAe,IAAKtnjC,EAAM87J,EAAMij2B,UAAUwoD,qBAAqBr/B,mBACrElohC,EAAO,KAEf,CACA,MAAOjzB,IAEH,GADA+uL,EAAMij2B,UAAUspB,iBAAiB0/C,EAAYjs6B,EAAMij2B,UAAU59hB,UAAUtlK,YAAY,mBAC/Ej5B,KACc9sU,KAAKipiC,UAAU8E,gBAAgB13oB,kBAAkB,gBAAiB,0BACxEp7R,MAAK,SAAUr5H,GACnBokM,EAAMws3B,kCAAkC5wjC,EAC5C,SAGAokM,EAAMws3B,kCAAkCxs3B,EAAMij2B,UAAU59hB,UAAUtlK,YAAY,mBAElF//J,EAAMwr5B,eAAe,IAAKtnjC,EAAM87J,EAAMij2B,UAAUwoD,qBAAqBr/B,mBACrElohC,EAAO,IACX,CAEJ,GAAIA,IACA87J,EAAMij2B,UAAU0oD,uBAAuB3r5B,EAAMij2B,UAAUwoD,qBAAqBr/B,kBAAmBlohC,GAC3FA,EAAK2nhC,eAAe,CACpB,IAAK,IAAI1ljC,EAAI,EAAGA,EAAI1M,OAAO8E,KAAK2lC,EAAK2nhC,eAAezujC,OAAQ+I,IAAK,CAC7D,IAAI2uE,EAAU5wC,EAAK2nhC,cAActliC,SAASpgB,EAAE2K,WAAY,KACxDkvL,EAAMws6B,8BAA8B13hC,EAAS,sBAC7CkrH,EAAMws6B,8BAA8B13hC,EAAS,0BAC7CkrH,EAAMws6B,8BAA8B13hC,EAAS,mBAC7CkrH,EAAMws6B,8BAA8B13hC,EAAS,uBAC7CkrH,EAAMws6B,8BAA8B13hC,EAAS,0BAC7CkrH,EAAMws6B,8BAA8B13hC,EAAS,oBAC7CkrH,EAAMws6B,8BAA8B13hC,EAAS,yBAC7CkrH,EAAMws6B,8BAA8B13hC,EAAS,uBACjD,CACAkrH,EAAM6s6B,oBAAoB3okC,EAAK2nhC,eAC/B7r3B,EAAM454B,sBAAuB,EAC7B554B,EAAMug3B,8BAA6B,GACnCvg3B,EAAMij2B,UAAU6pE,kBAAkB5okC,EAAK2nhC,cAC3C,CAER,CAER,EAEA7r3B,EAAMyx5B,+BAA+BhywB,UAAY,SAAU56T,GACvDm7K,EAAMij2B,UAAUspB,iBAAiB0/C,EAAYpnlC,EAAO+6T,WACxD,EAEA5/I,EAAMyx5B,+BAA+Bxg9B,QAAU,SAAUpsH,GACrDm7K,EAAMij2B,UAAUspB,iBAAiB0/C,EAAYpnlC,EAAO+6T,WACxD,CACJ,CACJ,EAMAy3vB,EAAc1skC,UAAU6hjC,kCAAoC,SAAUwgD,GAC9DhzmC,KAAKipiC,UAAU0pD,wBACf3ylC,KAAK0piC,UAAUiE,wBAAwBqlE,EAE/C,EAEA31B,EAAc1skC,UAAUkimC,oBAAsB,SAAU1z+B,GACpD,GAAIA,EAAY,CACZn/H,KAAK2/kC,gBAAiB,EACtB,IAAI/0jC,EAAQ,EACR5qB,KAAK4/kC,qBACL5/kC,KAAK62lC,mBAAqB72lC,KAAKizmC,oBAAoBjzmC,KAAK62lC,mBAAoB139B,GAGxEn/H,KAAKoxmB,UAAY,IACjBpxmB,KAAK62lC,mBAAqB139B,GAG7Bn/H,KAAK4/kC,uBACNh1jC,EAAQ,GAEZ,IAAK,IAAIze,EAAI,EAAGA,EAAInM,KAAKoxmB,UAAWjlmB,IAChC,GAAIgzH,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAM,CAExC,IAAIo8lC,EAAwB,GAExBC,EAAmBnilC,OAAOor0B,eAAe3woB,QAAQzrN,KAAKojjC,WAAa,2BAEnEgwD,EAAcpilC,OAAOor0B,eAAe3woB,QAAQzrN,KAAKojjC,WAAa,sBAE9DiwD,EAAqBrilC,OAAOor0B,eAAe3woB,QAAQzrN,KAAKojjC,WAAa,8BAErEkwD,EAActilC,OAAOor0B,eAAe3woB,QAAQzrN,KAAKojjC,WAAa,sBAE9DmwD,EAAevilC,OAAOor0B,eAAe3woB,QAAQzrN,KAAKojjC,WAAa,uBAE/DowD,EAAiBxilC,OAAOor0B,eAAe3woB,QAAQzrN,KAAKojjC,WAAa,yBAEjEqwD,EAAkBzilC,OAAOor0B,eAAe3woB,QAAQzrN,KAAKojjC,WAAa,qBAElEswD,EAAY1ilC,OAAOor0B,eAAe3woB,QAAQzrN,KAAKojjC,WAAa,oBAWhE,GAVIpjjC,KAAKkjjC,kBACLiwD,EAAmBnzmC,KAAKmjjC,kBAAkBnjjC,KAAKojjC,WAAa,2BAC5DgwD,EAAcpzmC,KAAKmjjC,kBAAkBnjjC,KAAKojjC,WAAa,sBACvDiwD,EAAqBrzmC,KAAKmjjC,kBAAkBnjjC,KAAKojjC,WAAa,8BAC9DkwD,EAActzmC,KAAKmjjC,kBAAkBnjjC,KAAKojjC,WAAa,sBACvDmwD,EAAevzmC,KAAKmjjC,kBAAkBnjjC,KAAKojjC,WAAa,uBACxDowD,EAAiBxzmC,KAAKmjjC,kBAAkBnjjC,KAAKojjC,WAAa,yBAC1DswD,EAAY1zmC,KAAKmjjC,kBAAkBnjjC,KAAKojjC,WAAa,qBAElCpjjC,KAAKgnS,WAAW,qBAAuB76R,GAG1D,GADAnM,KAAKuimC,oBAAoBpj+B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAM3K,GAC7DnM,KAAK4/kC,qBAAsB,CAE3B,IADA,IAAI+zB,GAAU,EACL3jmC,EAAI,EAAGA,EAAIhQ,KAAKy/kC,mBAAmBr8kC,OAAQ4M,IAC5ChQ,KAAKy/kC,mBAAmBlzjC,SAASvc,EAAE8G,WAAY,OAAS3K,IACxDwnmC,GAAU,GAGdA,IACA3zmC,KAAKy/kC,mBAAmBlzjC,SAAS3B,EAAM9T,WAAY,KAAO3K,EAC1Dye,GAAgB,EAExB,MAEI5qB,KAAKy/kC,mBAAmBlzjC,SAAS3B,EAAM9T,WAAY,KAAO3K,EAC1Dye,GAAgB,EAGxB,GAAIu0G,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKg7iC,sBAA+F,IAAvE3y7B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKg7iC,qBAAqB1ujC,OAAc,CACzI,GAAI+vmC,EAAkB,CAClB,IAAIrtD,EAAcr1gC,KAAKuL,MAAMm3jC,GAE7Bh0+B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKg7iC,qBAAuB9xjC,KAAK4zmC,2BAA2B9tD,EAAa3m7B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKg7iC,qBAAsB3ljC,EAC5K,CAGA,GAFAgzH,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKg7iC,qBAAuB9xjC,KAAK6zmC,mCAAmC10+B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKg7iC,qBAAsB3ljC,GACnK+mmC,EAAsBphD,qBAAuB3y7B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKg7iC,qBACT,IAAvE3y7B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKg7iC,qBAAqB1ujC,OAAc,CAE1EpD,KAAKipiC,UAAUgb,iBAAiBkR,4BAA4B2+C,yBAAyB30+B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKg7iC,qBAAsB3ljC,GAClJ,IAAS6D,EAAI,EAAGA,EAAImvH,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKg7iC,qBAAqB1ujC,OAAQ4M,IAEpFhQ,KAAKipiC,UAAUgb,iBAAiBkR,4BAA4B4+C,kBAAkB/zmC,KAAKipiC,UAAUgb,iBAAiBsE,2BAA2ByrD,sCAAsC70+B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKg7iC,qBAAqBvliC,SAASvc,EAAE8G,WAAY,KAAM3K,GAEhR,CACJ,CACA,GAAIgzH,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKqviC,iBAAqF,IAAlEhn7B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKqviC,gBAAgB/ijC,OAAc,CAC/H,GAAIgwmC,EAAa,CACTttD,EAAcr1gC,KAAKuL,MAAMo3jC,GAC7Bj0+B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKqviC,gBAAkBnmjC,KAAK4zmC,2BAA2B9tD,EAAa3m7B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKqviC,gBAAiBh6iC,EAClK,CAGA,GAFAgzH,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKqviC,gBAAkBnmjC,KAAK6zmC,mCAAmC10+B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKqviC,gBAAiBh6iC,GACzJ+mmC,EAAsB/sD,gBAAkBhn7B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKqviC,gBACT,IAAlEhn7B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKqviC,gBAAgB/ijC,OAAc,CAErEpD,KAAKipiC,UAAUgb,iBAAiBkR,4BAA4B2+C,yBAAyB30+B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKqviC,gBAAiBh6iC,GAC7I,IAAS6D,EAAI,EAAGA,EAAImvH,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKqviC,gBAAgB/ijC,OAAQ4M,IAE/EhQ,KAAKipiC,UAAUgb,iBAAiBkR,4BAA4B4+C,kBAAkB/zmC,KAAKipiC,UAAUgb,iBAAiBqtB,sBAAsB2iC,iCAAiC90+B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKqviC,gBAAgB55hC,SAASvc,EAAE8G,WAAY,KAAM3K,GAEjQ,CACJ,CACA,GAAIgzH,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKi7iC,wBAAmG,IAAzE5y7B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKi7iC,uBAAuB3ujC,OAAc,CAC7I,GAAIiwmC,EAAoB,CAChBvtD,EAAcr1gC,KAAKuL,MAAMq3jC,GAE7Bl0+B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKi7iC,uBAAyB/xjC,KAAK4zmC,2BAA2B9tD,EAAa3m7B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKi7iC,uBAAwB5ljC,EAChL,CAIA,GAFAgzH,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKi7iC,uBAAyB/xjC,KAAK6zmC,mCAAmC10+B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKi7iC,uBAAwB5ljC,GACvK+mmC,EAAsBnhD,uBAAyB5y7B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKi7iC,uBACT,IAAzE5y7B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKi7iC,uBAAuB3ujC,OAAc,CAE5EpD,KAAKipiC,UAAUgb,iBAAiBkR,4BAA4B2+C,yBAAyB30+B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKi7iC,uBAAwB5ljC,GACpJ,IAAS6D,EAAI,EAAGA,EAAImvH,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKi7iC,uBAAuB3ujC,OAAQ4M,IAEtFhQ,KAAKipiC,UAAUgb,iBAAiBkR,4BAA4B4+C,kBAAkB/zmC,KAAKipiC,UAAUgb,iBAAiB4F,wBAAwBqqD,mCAAmC/0+B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKi7iC,uBAAuBxliC,SAASvc,EAAE8G,WAAY,KAAM3K,GAE5Q,CACJ,CACA,GAAIgzH,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKm7iC,kBAAuF,IAAnE9y7B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKm7iC,iBAAiB7ujC,OAAc,CACjI,GAAIkwmC,EAAa,CACTxtD,EAAcr1gC,KAAKuL,MAAMs3jC,GAE7Bn0+B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKm7iC,iBAAmBjyjC,KAAK4zmC,2BAA2B9tD,EAAa3m7B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKm7iC,iBAAkB9ljC,EACpK,CAGA,GAFAgzH,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKm7iC,iBAAmBjyjC,KAAK6zmC,mCAAmC10+B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKm7iC,iBAAkB9ljC,GAC3J+mmC,EAAsBjhD,iBAAmB9y7B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKm7iC,iBACT,IAAnE9y7B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKm7iC,iBAAiB7ujC,OAAc,CAEtEpD,KAAKipiC,UAAUgb,iBAAiBkR,4BAA4B2+C,yBAAyB30+B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKm7iC,iBAAkB9ljC,GAC9I,IAAS6D,EAAI,EAAGA,EAAImvH,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKm7iC,iBAAiB7ujC,OAAQ4M,IAEhFhQ,KAAKipiC,UAAUgb,iBAAiBkR,4BAA4B4+C,kBAAkB/zmC,KAAKipiC,UAAUgb,iBAAiB8oB,sBAAsBonC,iCAAiCh1+B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKm7iC,iBAAiB1liC,SAASvc,EAAE8G,WAAY,KAAM3K,GAElQ,CACJ,CACA,GAAIgzH,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKyqlC,uBAAiG,IAAxEpi+B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKyqlC,sBAAsBn+lC,OAAc,CAC3I,GAAImwmC,EAAc,CACVztD,EAAcr1gC,KAAKuL,MAAMu3jC,GAE7Bp0+B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKyqlC,sBAAwBvhmC,KAAK4zmC,2BAA2B9tD,EAAa3m7B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKyqlC,sBAAuBp1lC,EAC9K,CAIA,GAFAgzH,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKyqlC,sBAAwBvhmC,KAAK6zmC,mCAAmC10+B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKyqlC,sBAAuBp1lC,GACrK+mmC,EAAsB3R,sBAAwBpi+B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKyqlC,sBACT,IAAxEpi+B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKyqlC,sBAAsBn+lC,OAAc,CAE3EpD,KAAKipiC,UAAUgb,iBAAiBkR,4BAA4B2+C,yBAAyB30+B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKyqlC,sBAAuBp1lC,GACnJ,IAAS6D,EAAI,EAAGA,EAAImvH,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKyqlC,sBAAsBn+lC,OAAQ4M,IAErFhQ,KAAKipiC,UAAUgb,iBAAiBkR,4BAA4B4+C,kBAAkB/zmC,KAAKipiC,UAAUgb,iBAAiBkR,4BAA4Bi/C,uCAAuCj1+B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKyqlC,sBAAsBh1kC,SAASvc,EAAE8G,WAAY,KAAM3K,GAEnR,CACJ,CACA,GAAIgzH,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKk7iC,oBAA2F,IAArE7y7B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKk7iC,mBAAmB5ujC,OAAc,CACrI,GAAIowmC,EAAgB,CACZ1tD,EAAcr1gC,KAAKuL,MAAMw3jC,GAE7Br0+B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKk7iC,mBAAqBhyjC,KAAK4zmC,2BAA2B9tD,EAAa3m7B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKk7iC,mBAAoB7ljC,EACxK,CAGA,GAFAgzH,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKk7iC,mBAAqBhyjC,KAAK6zmC,mCAAmC10+B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKk7iC,mBAAoB7ljC,GAC/J+mmC,EAAsBlhD,mBAAqB7y7B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKk7iC,mBACT,IAArE7y7B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKk7iC,mBAAmB5ujC,OAAc,CAExEpD,KAAKipiC,UAAUgb,iBAAiBkR,4BAA4B2+C,yBAAyB30+B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKk7iC,mBAAoB7ljC,GAChJ,IAAS6D,EAAI,EAAGA,EAAImvH,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKk7iC,mBAAmB5ujC,OAAQ4M,IAElFhQ,KAAKipiC,UAAUgb,iBAAiBkR,4BAA4B4+C,kBAAkB/zmC,KAAKipiC,UAAUgb,iBAAiByE,yBAAyB2rD,oCAAoCl1+B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKk7iC,mBAAmBzliC,SAASvc,EAAE8G,WAAY,KAAM3K,GAE1Q,CACJ,CACA,GAAIgzH,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAK0qlC,qBAA6F,IAAtEri+B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAK0qlC,oBAAoBp+lC,OAAc,CACvI,GAAIqwmC,EAAiB,CACb3tD,EAAcr1gC,KAAKuL,MAAMy3jC,GAE7Bt0+B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAK0qlC,oBAAsBxhmC,KAAKs0mC,0BAA0BxuD,EAAa3m7B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAK0qlC,oBAAqBr1lC,EACzK,CAEA,GADA+mmC,EAAsB1R,oBAAsBri+B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAK0qlC,oBACT,IAAtEri+B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAK0qlC,oBAAoBp+lC,OAC3D,IAAS4M,EAAI,EAAGA,EAAImvH,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAK0qlC,oBAAoBp+lC,OAAQ4M,IAEnFhQ,KAAKipiC,UAAUgb,iBAAiBkR,4BAA4B4+C,kBAAkB/zmC,KAAKy9iC,gBAAgBmK,2BAA2Bzo7B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAK0qlC,oBAAoBj1kC,SAASvc,EAAE8G,WAAY,KAAM3K,IAAI,EAGtO,CACA,GAAIgzH,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKo7iC,wBAAmG,IAAzE/y7B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKo7iC,uBAAuB9ujC,OAAc,CAC7I,GAAIswmC,EAAW,CACP5tD,EAAcr1gC,KAAKuL,MAAM03jC,GAE7Bv0+B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKo7iC,uBAAyBlyjC,KAAK4zmC,2BAA2B9tD,EAAa3m7B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKo7iC,uBAAwB/ljC,EAChL,CAIA,GAFAgzH,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKo7iC,uBAAyBlyjC,KAAK6zmC,mCAAmC10+B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKo7iC,uBAAwB/ljC,GACvK+mmC,EAAsBhhD,uBAAyB/y7B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKo7iC,uBACT,IAAzE/y7B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKo7iC,uBAAuB9ujC,OAAc,CAE5EpD,KAAKipiC,UAAUgb,iBAAiBkR,4BAA4B2+C,yBAAyB30+B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKo7iC,uBAAwB/ljC,GACpJ,IAAS6D,EAAI,EAAGA,EAAImvH,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKo7iC,uBAAuB9ujC,OAAQ4M,IAEtFhQ,KAAKipiC,UAAUgb,iBAAiBkR,4BAA4B4+C,kBAAkB/zmC,KAAKipiC,UAAUgb,iBAAiB2Q,oBAAoB2/C,qBAAqBp1+B,EAAW5yG,SAASpgB,EAAE2K,WAAY,KAAKo7iC,uBAAuB3liC,SAASvc,EAAE8G,WAAY,KAAM3K,GAE1P,CACJ,CACAnM,KAAKw0mC,+CAA+CtB,EAAuB/mmC,EAC/E,CAEJ,GAAInM,KAAKoxmB,UAAY,GAEbpxmB,KAAKipiC,UAAUgb,iBAAiBkR,8BAAgCn1jC,KAAKipiC,UAAUgb,iBAAiBkR,4BAA4B0rC,qBAAsB,CAElJ,IAAIrrT,EAAuBx1yB,KAAKy0mC,8BAC5Bj/T,IAEAx1yB,KAAK2glC,8BAAgC3glC,KAAKipiC,UAAUgb,iBAAiBkR,4BAA4Bu/C,uCAAuC10mC,KAAK62lC,mBAAoBrhT,GAEzK,CAER,CACJ,EAOA6nS,EAAc1skC,UAAU6jmC,+CAAiD,SAAUG,EAAqBxyS,GACpG,GAAIni0B,KAAK2glC,8BAA+B,CAEpC,IAEIi0B,EAF+B50mC,KAAK2glC,8BAEWx+Q,GACnD,GAAIyyS,EAAiB,CACjB,GAAID,EAAoB7iD,sBAA4E,IAApD6iD,EAAoB7iD,qBAAqB1ujC,OACrF,IAAK,IAAI+I,EAAI,EAAGA,EAAIwomC,EAAoB7iD,qBAAqB1ujC,OAAQ+I,IACjEyomC,EAAgB9iD,qBAAqB1ljC,KAAKuomC,EAAoB7iD,qBAAqBvliC,SAASpgB,EAAE2K,WAAY,MAGlH,GAAI69lC,EAAoBxuD,iBAAkE,IAA/CwuD,EAAoBxuD,gBAAgB/ijC,OAC3E,IAAS+I,EAAI,EAAGA,EAAIwomC,EAAoBxuD,gBAAgB/ijC,OAAQ+I,IAC5DyomC,EAAgBzuD,gBAAgB/5iC,KAAKuomC,EAAoBxuD,gBAAgB55hC,SAASpgB,EAAE2K,WAAY,MAGxG,GAAI69lC,EAAoB5iD,wBAAgF,IAAtD4iD,EAAoB5iD,uBAAuB3ujC,OACzF,IAAS+I,EAAI,EAAGA,EAAIwomC,EAAoB5iD,uBAAuB3ujC,OAAQ+I,IACnEyomC,EAAgB7iD,uBAAuB3ljC,KAAKuomC,EAAoB5iD,uBAAuBxliC,SAASpgB,EAAE2K,WAAY,MAGtH,GAAI69lC,EAAoB1iD,kBAAoE,IAAhD0iD,EAAoB1iD,iBAAiB7ujC,OAC7E,IAAS+I,EAAI,EAAGA,EAAIwomC,EAAoB1iD,iBAAiB7ujC,OAAQ+I,IAC7DyomC,EAAgB3iD,iBAAiB7ljC,KAAKuomC,EAAoB1iD,iBAAiB1liC,SAASpgB,EAAE2K,WAAY,MAG1G,GAAI69lC,EAAoBpT,uBAA8E,IAArDoT,EAAoBpT,sBAAsBn+lC,OACvF,IAAS+I,EAAI,EAAGA,EAAIwomC,EAAoBpT,sBAAsBn+lC,OAAQ+I,IAClEyomC,EAAgBrT,sBAAsBn1lC,KAAKuomC,EAAoBpT,sBAAsBh1kC,SAASpgB,EAAE2K,WAAY,MAGpH,GAAI69lC,EAAoB3iD,oBAAwE,IAAlD2iD,EAAoB3iD,mBAAmB5ujC,OACjF,IAAS+I,EAAI,EAAGA,EAAIwomC,EAAoB3iD,mBAAmB5ujC,OAAQ+I,IAC/DyomC,EAAgB5iD,mBAAmB5ljC,KAAKuomC,EAAoB3iD,mBAAmBzliC,SAASpgB,EAAE2K,WAAY,MAG9G,GAAI69lC,EAAoBnT,qBAA0E,IAAnDmT,EAAoBnT,oBAAoBp+lC,OACnF,IAAS+I,EAAI,EAAGA,EAAIwomC,EAAoBnT,oBAAoBp+lC,OAAQ+I,IAChEyomC,EAAgBpT,oBAAoBp1lC,KAAKuomC,EAAoBnT,oBAAoBj1kC,SAASpgB,EAAE2K,WAAY,MAGhH,GAAI69lC,EAAoBziD,wBAAgF,IAAtDyiD,EAAoBziD,uBAAuB9ujC,OACzF,IAAS+I,EAAI,EAAGA,EAAIwomC,EAAoBziD,uBAAuB9ujC,OAAQ+I,IACnEyomC,EAAgB1iD,uBAAuB9ljC,KAAKuomC,EAAoBziD,uBAAuB3liC,SAASpgB,EAAE2K,WAAY,MAGtH9W,KAAK2glC,8BAA8Bp0jC,SAAS41yB,EAAWrrzB,WAAY,KAAO89lC,CAC9E,CACJ,CACJ,EASAv3B,EAAc1skC,UAAU8wlC,4BAA8B,SAAU3rrB,EAAW8+rB,GAEvE,IAAI1B,EACJ,GAAI0B,EACA1B,EAAwB0B,OAEvB,GAAI50mC,KAAK2glC,8BAA+B,CAEzC,IAAIk0B,EAAqB70mC,KAAK2glC,8BAA8B7qqB,GACxD++rB,IACA3B,EAAwBv9D,IAAYk/D,GAE5C,CACA,GAAI3B,EAAuB,CAEvB,IA0FYrhC,EA1FRshC,EAAmBnilC,OAAOor0B,eAAe3woB,QAAQzrN,KAAKojjC,WAAa,2BAEnEgwD,EAAcpilC,OAAOor0B,eAAe3woB,QAAQzrN,KAAKojjC,WAAa,sBAE9DiwD,EAAqBrilC,OAAOor0B,eAAe3woB,QAAQzrN,KAAKojjC,WAAa,8BAErEkwD,EAActilC,OAAOor0B,eAAe3woB,QAAQzrN,KAAKojjC,WAAa,sBAE9DmwD,EAAevilC,OAAOor0B,eAAe3woB,QAAQzrN,KAAKojjC,WAAa,uBAE/DowD,EAAiBxilC,OAAOor0B,eAAe3woB,QAAQzrN,KAAKojjC,WAAa,yBAEjEswD,EAAY1ilC,OAAOor0B,eAAe3woB,QAAQzrN,KAAKojjC,WAAa,oBAE5DqwD,EAAkBzilC,OAAOor0B,eAAe3woB,QAAQzrN,KAAKojjC,WAAa,qBAWtE,GAVIpjjC,KAAKkjjC,kBACLiwD,EAAmBnzmC,KAAKmjjC,kBAAkBnjjC,KAAKojjC,WAAa,2BAC5DgwD,EAAcpzmC,KAAKmjjC,kBAAkBnjjC,KAAKojjC,WAAa,sBACvDiwD,EAAqBrzmC,KAAKmjjC,kBAAkBnjjC,KAAKojjC,WAAa,8BAC9DkwD,EAActzmC,KAAKmjjC,kBAAkBnjjC,KAAKojjC,WAAa,sBACvDmwD,EAAevzmC,KAAKmjjC,kBAAkBnjjC,KAAKojjC,WAAa,uBACxDowD,EAAiBxzmC,KAAKmjjC,kBAAkBnjjC,KAAKojjC,WAAa,yBAC1DswD,EAAY1zmC,KAAKmjjC,kBAAkBnjjC,KAAKojjC,WAAa,oBACrDqwD,EAAkBzzmC,KAAKmjjC,kBAAkBnjjC,KAAKojjC,WAAa,sBAE3D8vD,EAAsBphD,sBAA8E,IAAtDohD,EAAsBphD,qBAAqB1ujC,OACzF,GAAI+vmC,GACIthC,EAAmBphiC,KAAKuL,MAAMm3jC,MAG9BD,EAAsBphD,qBAAuB9xjC,KAAK80mC,wBAAwBjjC,EAAkBqhC,EAAsBphD,qBAAsBh8oB,IAIpJ,GAAIo9rB,EAAsB/sD,iBAAoE,IAAjD+sD,EAAsB/sD,gBAAgB/ijC,OAC/E,GAAIgwmC,GACIvhC,EAAmBphiC,KAAKuL,MAAMo3jC,MAG9BF,EAAsB/sD,gBAAkBnmjC,KAAK80mC,wBAAwBjjC,EAAkBqhC,EAAsB/sD,gBAAiBrwoB,IAI1I,GAAIo9rB,EAAsBnhD,wBAAkF,IAAxDmhD,EAAsBnhD,uBAAuB3ujC,OAC7F,GAAIiwmC,GACIxhC,EAAmBphiC,KAAKuL,MAAMq3jC,MAG9BH,EAAsBnhD,uBAAyB/xjC,KAAK80mC,wBAAwBjjC,EAAkBqhC,EAAsBnhD,uBAAwBj8oB,IAIxJ,GAAIo9rB,EAAsBjhD,kBAAsE,IAAlDihD,EAAsBjhD,iBAAiB7ujC,OACjF,GAAIkwmC,GACIzhC,EAAmBphiC,KAAKuL,MAAMs3jC,MAG9BJ,EAAsBjhD,iBAAmBjyjC,KAAK80mC,wBAAwBjjC,EAAkBqhC,EAAsBjhD,iBAAkBn8oB,IAI5I,GAAIo9rB,EAAsB3R,uBAAgF,IAAvD2R,EAAsB3R,sBAAsBn+lC,OAC3F,GAAImwmC,GACI1hC,EAAmBphiC,KAAKuL,MAAMu3jC,MAG9BL,EAAsB3R,sBAAwBvhmC,KAAK80mC,wBAAwBjjC,EAAkBqhC,EAAsB3R,sBAAuBzrrB,IAItJ,GAAIo9rB,EAAsBlhD,oBAA0E,IAApDkhD,EAAsBlhD,mBAAmB5ujC,OACrF,GAAIowmC,GACI3hC,EAAmBphiC,KAAKuL,MAAMw3jC,MAG9BN,EAAsBlhD,mBAAqBhyjC,KAAK80mC,wBAAwBjjC,EAAkBqhC,EAAsBlhD,mBAAoBl8oB,IAIhJ,GAAIo9rB,EAAsBhhD,wBAAkF,IAAxDghD,EAAsBhhD,uBAAuB9ujC,OAC7F,GAAIswmC,GACI7hC,EAAmBphiC,KAAKuL,MAAM03jC,MAG9BR,EAAsBhhD,uBAAyBlyjC,KAAK80mC,wBAAwBjjC,EAAkBqhC,EAAsBhhD,uBAAwBp8oB,IAIxJ,GAAIo9rB,EAAsB1R,qBAA4E,IAArD0R,EAAsB1R,oBAAoBp+lC,OACvF,GAAIqwmC,GACI5hC,EAAmBphiC,KAAKuL,MAAM03jC,MAG9BR,EAAsB1R,oBAAsBxhmC,KAAK80mC,wBAAwBjjC,EAAkBqhC,EAAsB1R,oBAAqB1rrB,IAIlJ,OAAOo9rB,CACX,CACJ,EAEA71B,EAAc1skC,UAAUmkmC,wBAA0B,SAAUt/T,EAAsB48Q,EAAmBjwP,GAGjG,IADA,IAAIyyS,EAAkB,KACb3+lC,EAAI,EAAGA,EAAIu/xB,EAAqBpyyB,OAAQ6S,IACzCu/xB,EAAqBjpxB,SAAStW,EAAEa,WAAY,KAAKg/Z,YAAcqsZ,IAC/DyyS,EAAkBp/T,EAAqBjpxB,SAAStW,EAAEa,WAAY,KAAKs+L,aAG3E,GAAIw/5B,EACA,IAAK,IAAIzomC,EAAI,EAAGA,EAAIyomC,EAAgBxxmC,OAAQ+I,IACxC,IAAK,IAAI6D,EAAI,EAAGA,EAAIoijC,EAAkBhvjC,OAAQ4M,IACtC4kmC,EAAgBrolC,SAASpgB,EAAE2K,WAAY,KAAKmwiC,YAAcmL,EAAkB7liC,SAASvc,EAAE8G,WAAY,KAAKi+lC,YACxG3iD,EAAkB58hC,OAAOxlB,EAAG,GAC5BA,GAAQ,GAMxB,OADA4kmC,EAAkB,KACXxiD,CACX,EAEAirB,EAAc1skC,UAAU4xlC,oBAAsB,SAAUpj+B,EAAY22S,EAAWk/rB,GAI3E,GAHIA,IACA71+B,EAAaA,EAAW5yG,SAASupZ,EAAUh/Z,WAAY,MAEvDqoH,EAAY,CACZ,GAAIA,EAAW2y7B,sBAAmE,IAA3C3y7B,EAAW2y7B,qBAAqB1ujC,OAAc,CAEjF,IAAI6/iC,EAAcjyhC,OAAOor0B,eAAe3woB,QAAQzrN,KAAKojjC,WAAa,2BAIlE,GAHIpjjC,KAAKkjjC,kBACLD,EAAcjjjC,KAAKmjjC,kBAAkBnjjC,KAAKojjC,WAAa,4BAEvDH,GACI6C,EAAcr1gC,KAAKuL,MAAMingC,MAGzB9j7B,EAAW2y7B,qBAAuB9xjC,KAAK4zmC,2BAA2B9tD,EAAa3m7B,EAAW2y7B,qBAAsBh8oB,IAGxH32S,EAAW2y7B,qBAAuB9xjC,KAAK6zmC,mCAAmC10+B,EAAW2y7B,qBAAsBh8oB,GAC5D,IAA3C32S,EAAW2y7B,qBAAqB1ujC,QAEhCpD,KAAKipiC,UAAUgb,iBAAiBhqG,kBAAkBnkiB,EAAW,KAAM,KAAM32S,EAAW2y7B,qBAAsB,MAAM,EAExH,CACA,GAAI3y7B,EAAWgn7B,iBAAyD,IAAtChn7B,EAAWgn7B,gBAAgB/ijC,OAAc,CAEnE6/iC,EAAcjyhC,OAAOor0B,eAAe3woB,QAAQzrN,KAAKojjC,WAAa,sBAIlE,GAHIpjjC,KAAKkjjC,kBACLD,EAAcjjjC,KAAKmjjC,kBAAkBnjjC,KAAKojjC,WAAa,uBAEvDH,EAAa,CACb,IAAI6C,EAAcr1gC,KAAKuL,MAAMingC,GAC7B9j7B,EAAWgn7B,gBAAkBnmjC,KAAK4zmC,2BAA2B9tD,EAAa3m7B,EAAWgn7B,gBAAiBrwoB,EAC1G,CACA32S,EAAWgn7B,gBAAkBnmjC,KAAK6zmC,mCAAmC10+B,EAAWgn7B,gBAAiBrwoB,GACvD,IAAtC32S,EAAWgn7B,gBAAgB/ijC,QAE3BpD,KAAKipiC,UAAUgb,iBAAiBhqG,kBAAkBnkiB,EAAW32S,EAAWgn7B,gBAAiB,KAAM,KAAM,MAAM,EAEnH,CACA,GAAIhn7B,EAAW4y7B,wBAAuE,IAA7C5y7B,EAAW4y7B,uBAAuB3ujC,OAAc,CAEjF6/iC,EAAcjyhC,OAAOor0B,eAAe3woB,QAAQzrN,KAAKojjC,WAAa,8BAIlE,GAHIpjjC,KAAKkjjC,kBACLD,EAAcjjjC,KAAKmjjC,kBAAkBnjjC,KAAKojjC,WAAa,+BAEvDH,EAAa,CACT6C,EAAcr1gC,KAAKuL,MAAMingC,GAE7B9j7B,EAAW4y7B,uBAAyB/xjC,KAAK4zmC,2BAA2B9tD,EAAa3m7B,EAAW4y7B,uBAAwBj8oB,EACxH,CACA32S,EAAW4y7B,uBAAyB/xjC,KAAK6zmC,mCAAmC10+B,EAAW4y7B,uBAAwBj8oB,GAC9D,IAA7C32S,EAAW4y7B,uBAAuB3ujC,QAElCpD,KAAKipiC,UAAUgb,iBAAiBhqG,kBAAkBnkiB,EAAW,KAAM32S,EAAW4y7B,uBAAwB,KAAM,MAAM,EAE1H,CACA,GAAI5y7B,EAAW8y7B,kBAA2D,IAAvC9y7B,EAAW8y7B,iBAAiB7ujC,OAAc,CAErE6/iC,EAAcjyhC,OAAOor0B,eAAe3woB,QAAQzrN,KAAKojjC,WAAa,sBAIlE,GAHIpjjC,KAAKkjjC,kBACLD,EAAcjjjC,KAAKmjjC,kBAAkBnjjC,KAAKojjC,WAAa,uBAEvDH,EAAa,CACT6C,EAAcr1gC,KAAKuL,MAAMingC,GAC7B9j7B,EAAW8y7B,iBAAmBjyjC,KAAK4zmC,2BAA2B9tD,EAAa3m7B,EAAW8y7B,iBAAkBn8oB,EAC5G,CACA32S,EAAW8y7B,iBAAmBjyjC,KAAK6zmC,mCAAmC10+B,EAAW8y7B,iBAAkBn8oB,GACxD,IAAvC32S,EAAW8y7B,iBAAiB7ujC,QAE5BpD,KAAKipiC,UAAUgb,iBAAiB8oB,sBAAsB60B,uBAAuBzi+B,EAAW8y7B,iBAAkBn8oB,EAAW,MAAM,EAEnI,CACA,GAAI32S,EAAWoi+B,uBAAqE,IAA5Cpi+B,EAAWoi+B,sBAAsBn+lC,OAAc,CAE/E6/iC,EAAcjyhC,OAAOor0B,eAAe3woB,QAAQzrN,KAAKojjC,WAAa,uBAIlE,GAHIpjjC,KAAKkjjC,kBACLD,EAAcjjjC,KAAKmjjC,kBAAkBnjjC,KAAKojjC,WAAa,wBAEvDH,EAAa,CACT6C,EAAcr1gC,KAAKuL,MAAMingC,GAE7B9j7B,EAAWoi+B,sBAAwBvhmC,KAAK4zmC,2BAA2B9tD,EAAa3m7B,EAAWoi+B,sBAAuBzrrB,EACtH,CACA32S,EAAWoi+B,sBAAwBvhmC,KAAK6zmC,mCAAmC10+B,EAAWoi+B,sBAAuBzrrB,GAC7D,IAA5C32S,EAAWoi+B,sBAAsBn+lC,QAEjCpD,KAAKipiC,UAAUgb,iBAAiBkR,4BAA4B0sC,6BAA6B1i+B,EAAWoi+B,sBAAuBzrrB,EAEnI,CACA,GAAI32S,EAAW6y7B,oBAA+D,IAAzC7y7B,EAAW6y7B,mBAAmB5ujC,OAAc,CAEzE6/iC,EAAcjyhC,OAAOor0B,eAAe3woB,QAAQzrN,KAAKojjC,WAAa,yBAIlE,GAHIpjjC,KAAKkjjC,kBACLD,EAAcjjjC,KAAKmjjC,kBAAkBnjjC,KAAKojjC,WAAa,0BAEvDH,EAAa,CACT6C,EAAcr1gC,KAAKuL,MAAMingC,GAC7B9j7B,EAAW6y7B,mBAAqBhyjC,KAAK4zmC,2BAA2B9tD,EAAa3m7B,EAAW6y7B,mBAAoBl8oB,EAChH,CACA32S,EAAW6y7B,mBAAqBhyjC,KAAK6zmC,mCAAmC10+B,EAAW6y7B,mBAAoBl8oB,GAC1D,IAAzC32S,EAAW6y7B,mBAAmB5ujC,QAE9BpD,KAAKipiC,UAAUgb,iBAAiByE,yBAAyBs5C,0BAA0B7i+B,EAAW6y7B,mBAAoBl8oB,GAAW,EAErI,CACA,GAAI32S,EAAWqi+B,qBAAiE,IAA1Cri+B,EAAWqi+B,oBAAoBp+lC,OAAc,CAE3E6/iC,EAAcjyhC,OAAOor0B,eAAe3woB,QAAQzrN,KAAKojjC,WAAa,sBAC9D0C,EAAcr1gC,KAAKuL,MAAMingC,MAEzB9j7B,EAAWqi+B,oBAAsBxhmC,KAAKs0mC,0BAA0BxuD,EAAa3m7B,EAAWqi+B,oBAAqB1rrB,IAEjH91a,KAAKy9iC,gBAAgBkH,wBAAwBxl7B,EAAWqi+B,oBAAqB1rrB,GAAW,EAC5F,CACA,GAAI32S,EAAW+y7B,wBAAuE,IAA7C/y7B,EAAW+y7B,uBAAuB9ujC,OAAc,CAEjF6/iC,EAAcjyhC,OAAOor0B,eAAe3woB,QAAQzrN,KAAKojjC,WAAa,oBAIlE,GAHIpjjC,KAAKkjjC,kBACLD,EAAcjjjC,KAAKmjjC,kBAAkBnjjC,KAAKojjC,WAAa,qBAEvDH,EAAa,CACT6C,EAAcr1gC,KAAKuL,MAAMingC,GAE7B9j7B,EAAW+y7B,uBAAyBlyjC,KAAK4zmC,2BAA2B9tD,EAAa3m7B,EAAW+y7B,uBAAwBp8oB,EACxH,CACA32S,EAAW+y7B,uBAAyBlyjC,KAAK6zmC,mCAAmC10+B,EAAW+y7B,uBAAwBp8oB,GAC9D,IAA7C32S,EAAW+y7B,uBAAuB9ujC,QAElCpD,KAAKipiC,UAAUgb,iBAAiB2Q,oBAAoBstC,2BAA2B/i+B,EAAW+y7B,uBAAwBp8oB,GAAW,EAErI,CACJ,CACJ,EAEAunqB,EAAc1skC,UAAU2jmC,0BAA4B,SAAU9+T,EAAsBr2qB,EAAYgjsB,GAG5F,IADA,IAAIyyS,EAAkB,KACb3+lC,EAAI,EAAGA,EAAIu/xB,EAAqBpyyB,OAAQ6S,IACzCu/xB,EAAqBjpxB,SAAStW,EAAEa,WAAY,KAAKg/Z,YAAcqsZ,IAC/DyyS,EAAkBp/T,EAAqBjpxB,SAAStW,EAAEa,WAAY,KAAKs+L,aAG3E,GAAIw/5B,EACA,IAAK,IAAIzomC,EAAI,EAAGA,EAAIyomC,EAAgBxxmC,OAAQ+I,IACxC,IAAK,IAAI6D,EAAI,EAAGA,EAAImvH,EAAW/7H,OAAQ4M,IAC/B4kmC,EAAgBrolC,SAASpgB,EAAE2K,WAAY,KAAK0liC,gBAAkBr96B,EAAW5yG,SAASvc,EAAE8G,WAAY,KAAKquiC,gBACrGhm7B,EAAW3pG,OAAOxlB,EAAG,GACrBA,GAAQ,GAMxB,OADA4kmC,EAAkB,KACXz1+B,CACX,EAEAk+8B,EAAc1skC,UAAUijmC,2BAA6B,SAAUp+T,EAAsBr2qB,EAAYgjsB,GAG7F,IADA,IAAIyyS,EAAkB,KACb3+lC,EAAI,EAAGA,EAAIu/xB,EAAqBpyyB,OAAQ6S,IACzCu/xB,EAAqBjpxB,SAAStW,EAAEa,WAAY,KAAKg/Z,YAAcqsZ,IAC/DyyS,EAAkBp/T,EAAqBjpxB,SAAStW,EAAEa,WAAY,KAAKs+L,aAG3E,GAAIw/5B,EACA,IAAK,IAAIzomC,EAAI,EAAGA,EAAIyomC,EAAgBxxmC,OAAQ+I,IACxC,IAAK,IAAI6D,EAAI,EAAGA,EAAImvH,EAAW/7H,OAAQ4M,IAC/B4kmC,EAAgBrolC,SAASpgB,EAAE2K,WAAY,KAAKmwiC,YAAc9n7B,EAAW5yG,SAASvc,EAAE8G,WAAY,KAAKi+lC,YACjG51+B,EAAW3pG,OAAOxlB,EAAG,GACrBA,GAAQ,GAMxB,OADA4kmC,EAAkB,KACXz1+B,CACX,EAEAk+8B,EAAc1skC,UAAUkjmC,mCAAqC,SAAU10+B,EAAYgjsB,GAC/E,GAAIni0B,KAAKwglC,mBAAoB,CAEzB,IAAIy0B,EAAwBj1mC,KAAKwglC,mBAAmBr+Q,GAEpD,GADA8yS,EAAwBj1mC,KAAKk1mC,4BAA4BD,GAErD,IAAK,IAAI9omC,EAAI,EAAGA,EAAI8omC,EAAsB7xmC,OAAQ+I,IAC9C,IAAK,IAAI6D,EAAI,EAAGA,EAAImvH,EAAW/7H,OAAQ4M,IAC/BilmC,EAAsB1olC,SAASpgB,EAAE2K,WAAY,KAAKi+lC,YAAc51+B,EAAW5yG,SAASvc,EAAE8G,WAAY,KAAKi+lC,YACvG51+B,EAAW3pG,OAAOxlB,EAAG,GACrBA,GAAQ,GAKxBilmC,EAAwB,IAC5B,CACA,OAAO91+B,CACX,EAEAk+8B,EAAc1skC,UAAUukmC,4BAA8B,SAAUzuD,GAE5D,IAAImuD,EAAkB,GACtB,GAAInuD,EAAiB,CACjB,GAAIA,EAAgBqL,sBAAwE,IAAhDrL,EAAgBqL,qBAAqB1ujC,OAC7E,IAAK,IAAI+I,EAAI,EAAGA,EAAIs6iC,EAAgBqL,qBAAqB1ujC,OAAQ+I,IAC7DyomC,EAAgBxomC,KAAKq6iC,EAAgBqL,qBAAqBvliC,SAASpgB,EAAE2K,WAAY,MAGzF,GAAI2viC,EAAgBN,iBAA8D,IAA3CM,EAAgBN,gBAAgB/ijC,OACnE,IAAS+I,EAAI,EAAGA,EAAIs6iC,EAAgBN,gBAAgB/ijC,OAAQ+I,IACxDyomC,EAAgBxomC,KAAKq6iC,EAAgBN,gBAAgB55hC,SAASpgB,EAAE2K,WAAY,MAGpF,GAAI2viC,EAAgBsL,wBAA4E,IAAlDtL,EAAgBsL,uBAAuB3ujC,OACjF,IAAS+I,EAAI,EAAGA,EAAIs6iC,EAAgBsL,uBAAuB3ujC,OAAQ+I,IAC/DyomC,EAAgBxomC,KAAKq6iC,EAAgBsL,uBAAuBxliC,SAASpgB,EAAE2K,WAAY,MAG3F,GAAI2viC,EAAgBwL,kBAAgE,IAA5CxL,EAAgBwL,iBAAiB7ujC,OACrE,IAAS+I,EAAI,EAAGA,EAAIs6iC,EAAgBwL,iBAAiB7ujC,OAAQ+I,IACzDyomC,EAAgBxomC,KAAKq6iC,EAAgBwL,iBAAiB1liC,SAASpgB,EAAE2K,WAAY,MAGrF,GAAI2viC,EAAgB86C,uBAA0E,IAAjD96C,EAAgB86C,sBAAsBn+lC,OAC/E,IAAS+I,EAAI,EAAGA,EAAIs6iC,EAAgB86C,sBAAsBn+lC,OAAQ+I,IAC9DyomC,EAAgBxomC,KAAKq6iC,EAAgB86C,sBAAsBh1kC,SAASpgB,EAAE2K,WAAY,MAG1F,GAAI2viC,EAAgBuL,oBAAoE,IAA9CvL,EAAgBuL,mBAAmB5ujC,OACzE,IAAS+I,EAAI,EAAGA,EAAIs6iC,EAAgBuL,mBAAmB5ujC,OAAQ+I,IAC3DyomC,EAAgBxomC,KAAKq6iC,EAAgBuL,mBAAmBzliC,SAASpgB,EAAE2K,WAAY,MAGvF,GAAI2viC,EAAgByL,wBAA4E,IAAlDzL,EAAgByL,uBAAuB9ujC,OACjF,IAAS+I,EAAI,EAAGA,EAAIs6iC,EAAgByL,uBAAuB9ujC,OAAQ+I,IAC/DyomC,EAAgBxomC,KAAKq6iC,EAAgByL,uBAAuB3liC,SAASpgB,EAAE2K,WAAY,KAG/F,CACA,OAAO89lC,CACX,EACAv3B,EAAc1skC,UAAU01lC,wBAA0B,WAE9C,IAAI8M,EAAmBnilC,OAAOor0B,eAAe3woB,QAAQzrN,KAAKojjC,WAAa,2BAEnEgwD,EAAcpilC,OAAOor0B,eAAe3woB,QAAQzrN,KAAKojjC,WAAa,sBAE9DiwD,EAAqBrilC,OAAOor0B,eAAe3woB,QAAQzrN,KAAKojjC,WAAa,8BAErEkwD,EAActilC,OAAOor0B,eAAe3woB,QAAQzrN,KAAKojjC,WAAa,sBAE9DmwD,EAAevilC,OAAOor0B,eAAe3woB,QAAQzrN,KAAKojjC,WAAa,uBAE/DowD,EAAiBxilC,OAAOor0B,eAAe3woB,QAAQzrN,KAAKojjC,WAAa,yBAEjEswD,EAAY1ilC,OAAOor0B,eAAe3woB,QAAQzrN,KAAKojjC,WAAa,oBAE5DqwD,EAAkBzilC,OAAOor0B,eAAe3woB,QAAQzrN,KAAKojjC,WAAa,qBAatE,GAZIpjjC,KAAKkjjC,kBACLiwD,EAAmBnzmC,KAAKmjjC,kBAAkBnjjC,KAAKojjC,WAAa,2BAC5DgwD,EAAcpzmC,KAAKmjjC,kBAAkBnjjC,KAAKojjC,WAAa,sBACvDiwD,EAAqBrzmC,KAAKmjjC,kBAAkBnjjC,KAAKojjC,WAAa,8BAC9DkwD,EAActzmC,KAAKmjjC,kBAAkBnjjC,KAAKojjC,WAAa,sBACvDmwD,EAAevzmC,KAAKmjjC,kBAAkBnjjC,KAAKojjC,WAAa,uBACxDowD,EAAiBxzmC,KAAKmjjC,kBAAkBnjjC,KAAKojjC,WAAa,yBAC1DswD,EAAY1zmC,KAAKmjjC,kBAAkBnjjC,KAAKojjC,WAAa,oBACrDqwD,EAAkBzzmC,KAAKmjjC,kBAAkBnjjC,KAAKojjC,WAAa,sBAG/DpjjC,KAAK+glC,oBAAsB,CAAEoyB,iBAAkBA,EAAkBC,YAAaA,EAAaC,mBAAoBA,EAAoBC,YAAaA,EAAaC,aAAcA,EAAcC,eAAgBA,EAAgBE,UAAWA,EAAWD,gBAAiBA,GAC5PzzmC,KAAK2glC,8BACL,IAAK,IAAIx0kC,EAAI,EAAGA,EAAInM,KAAKoxmB,UAAWjlmB,IAChC,GAAInM,KAAK2glC,8BAA8Bp0jC,SAASpgB,EAAE2K,WAAY,KAAM,CAEhE,IAAI89lC,EAAkBj/D,IAAY31iC,KAAK2glC,8BAA8Bx0kC,IACrEyomC,EAAkB50mC,KAAKyhmC,4BAA4Bt1lC,EAAGyomC,GACtD50mC,KAAKm1mC,oBAAoBP,EAAiBzomC,EAC9C,CAGZ,EAEAkxkC,EAAc1skC,UAAUwkmC,oBAAsB,SAAUh2+B,EAAY22S,GAChE,GAA+C,IAA3C32S,EAAW2y7B,qBAAqB1ujC,OAChC,IAAK,IAAI6d,EAAI,EAAGA,EAAIk+G,EAAW2y7B,qBAAqB1ujC,OAAQ6d,IAExDjhB,KAAKipiC,UAAUgb,iBAAiBsE,2BAA2B6sD,kCAAkCj2+B,EAAW2y7B,qBAAqBvliC,SAAStL,EAAEnK,WAAY,KAAMg/Z,GAGlK,GAA0C,IAAtC32S,EAAWgn7B,gBAAgB/ijC,OAC3B,IAAS6d,EAAI,EAAGA,EAAIk+G,EAAWgn7B,gBAAgB/ijC,OAAQ6d,IAEnDjhB,KAAKipiC,UAAUgb,iBAAiBqtB,sBAAsB+jC,6BAA6Bl2+B,EAAWgn7B,gBAAgB55hC,SAAStL,EAAEnK,WAAY,KAAMg/Z,GAGnJ,GAAiD,IAA7C32S,EAAW4y7B,uBAAuB3ujC,OAClC,IAAS6d,EAAI,EAAGA,EAAIk+G,EAAW4y7B,uBAAuB3ujC,OAAQ6d,IAE1DjhB,KAAKipiC,UAAUgb,iBAAiB4F,wBAAwByrD,+BAA+Bn2+B,EAAW4y7B,uBAAuBxliC,SAAStL,EAAEnK,WAAY,KAAMg/Z,GAG9J,GAA2C,IAAvC32S,EAAW8y7B,iBAAiB7ujC,OAC5B,IAAS6d,EAAI,EAAGA,EAAIk+G,EAAW8y7B,iBAAiB7ujC,OAAQ6d,IAEpDjhB,KAAKipiC,UAAUgb,iBAAiB8oB,sBAAsBwoC,6BAA6Bp2+B,EAAW8y7B,iBAAiB1liC,SAAStL,EAAEnK,WAAY,KAAMg/Z,GAGpJ,GAAgD,IAA5C32S,EAAWoi+B,sBAAsBn+lC,OACjC,IAAS6d,EAAI,EAAGA,EAAIk+G,EAAWoi+B,sBAAsBn+lC,OAAQ6d,IAEzDjhB,KAAKipiC,UAAUgb,iBAAiBkR,4BAA4BqgD,mCAAmCr2+B,EAAWoi+B,sBAAsBh1kC,SAAStL,EAAEnK,WAAY,KAAMg/Z,GAGrK,GAA6C,IAAzC32S,EAAW6y7B,mBAAmB5ujC,OAC9B,IAAS6d,EAAI,EAAGA,EAAIk+G,EAAW6y7B,mBAAmB5ujC,OAAQ6d,IAEtDjhB,KAAKipiC,UAAUgb,iBAAiByE,yBAAyB+sD,gCAAgCt2+B,EAAW6y7B,mBAAmBzliC,SAAStL,EAAEnK,WAAY,KAAMg/Z,GAG5J,GAAiD,IAA7C32S,EAAW+y7B,uBAAuB9ujC,OAClC,IAAS6d,EAAI,EAAGA,EAAIk+G,EAAW+y7B,uBAAuB9ujC,OAAQ6d,IAC1DjhB,KAAKipiC,UAAUgb,iBAAiB2Q,oBAAoB8gD,0BAA0Bv2+B,EAAW+y7B,uBAAuB3liC,SAAStL,EAAEnK,WAAY,KAAMg/Z,EAGzJ,EACAunqB,EAAc1skC,UAAUk4lC,oCAAsC,WAC1D73kC,OAAOor0B,eAAerwoB,WAAW/rN,KAAKojjC,WAAa,2BACnDpyhC,OAAOor0B,eAAerwoB,WAAW/rN,KAAKojjC,WAAa,sBACnDpyhC,OAAOor0B,eAAerwoB,WAAW/rN,KAAKojjC,WAAa,8BACnDpyhC,OAAOor0B,eAAerwoB,WAAW/rN,KAAKojjC,WAAa,sBACnDpyhC,OAAOor0B,eAAerwoB,WAAW/rN,KAAKojjC,WAAa,uBACnDpyhC,OAAOor0B,eAAerwoB,WAAW/rN,KAAKojjC,WAAa,yBACnDpyhC,OAAOor0B,eAAerwoB,WAAW/rN,KAAKojjC,WAAa,oBAC/CpjjC,KAAK+glC,sBACD/glC,KAAKkjjC,iBACLljjC,KAAKmjjC,kBAAkBnjjC,KAAKojjC,WAAa,2BAA6BpjjC,KAAK+glC,oBAAoBoyB,iBAC/FnzmC,KAAKmjjC,kBAAkBnjjC,KAAKojjC,WAAa,sBAAwBpjjC,KAAK+glC,oBAAoBqyB,YAC1FpzmC,KAAKmjjC,kBAAkBnjjC,KAAKojjC,WAAa,8BAAgCpjjC,KAAK+glC,oBAAoBsyB,mBAClGrzmC,KAAKmjjC,kBAAkBnjjC,KAAKojjC,WAAa,sBAAwBpjjC,KAAK+glC,oBAAoBuyB,YAC1FtzmC,KAAKmjjC,kBAAkBnjjC,KAAKojjC,WAAa,uBAAyBpjjC,KAAK+glC,oBAAoBwyB,aAC3FvzmC,KAAKmjjC,kBAAkBnjjC,KAAKojjC,WAAa,yBAA2BpjjC,KAAK+glC,oBAAoByyB,eAC7FxzmC,KAAKmjjC,kBAAkBnjjC,KAAKojjC,WAAa,oBAAsBpjjC,KAAK+glC,oBAAoB2yB,YAGpF1zmC,KAAK+glC,oBAAoBoyB,kBACzBnilC,OAAOor0B,eAAexwoB,QAAQ5rN,KAAKojjC,WAAa,0BAA2BpjjC,KAAK+glC,oBAAoBoyB,kBAEpGnzmC,KAAK+glC,oBAAoBqyB,aACzBpilC,OAAOor0B,eAAexwoB,QAAQ5rN,KAAKojjC,WAAa,qBAAsBpjjC,KAAK+glC,oBAAoBqyB,aAE/FpzmC,KAAK+glC,oBAAoBsyB,oBACzBrilC,OAAOor0B,eAAexwoB,QAAQ5rN,KAAKojjC,WAAa,6BAA8BpjjC,KAAK+glC,oBAAoBsyB,oBAEvGrzmC,KAAK+glC,oBAAoBuyB,aACzBtilC,OAAOor0B,eAAexwoB,QAAQ5rN,KAAKojjC,WAAa,qBAAsBpjjC,KAAK+glC,oBAAoBuyB,aAE/FtzmC,KAAK+glC,oBAAoBwyB,cACzBvilC,OAAOor0B,eAAexwoB,QAAQ5rN,KAAKojjC,WAAa,sBAAuBpjjC,KAAK+glC,oBAAoBwyB,cAEhGvzmC,KAAK+glC,oBAAoByyB,gBACzBxilC,OAAOor0B,eAAexwoB,QAAQ5rN,KAAKojjC,WAAa,wBAAyBpjjC,KAAK+glC,oBAAoByyB,gBAElGxzmC,KAAK+glC,oBAAoB2yB,WACzB1ilC,OAAOor0B,eAAexwoB,QAAQ5rN,KAAKojjC,WAAa,mBAAoBpjjC,KAAK+glC,oBAAoB2yB,YAI7G,EAKAr2B,EAAc1skC,UAAUglmC,yBAA2B,WAE/C,IACIrP,EACA/+C,EACAm/C,EACAE,EACAG,EACAI,EACAyO,EACAC,EARArgU,EAAuB,CAAC,EAyC5B,GAhCAx1yB,KAAKqmmC,0BACDrmmC,KAAK6llC,iCACL7llC,KAAKwilC,gBAAiB,EAEtB8jB,EAAiCtmmC,KAAKipiC,UAAUgb,iBAAiBsE,2BAA2Bg+C,6BAE5FvmmC,KAAKwmmC,4BACLxmmC,KAAKwilC,gBAAiB,EAEtBj7B,EAAmBvnjC,KAAKipiC,UAAUgb,iBAAiBqtB,sBAAsBm1B,wBAEzEzmmC,KAAK4pjC,gCACL5pjC,KAAKwilC,gBAAiB,EAEtBkkB,EAAuB1mmC,KAAKipiC,UAAUgb,iBAAiB4F,wBAAwB88C,+BAE/E3mmC,KAAK0hmC,4BAELkF,EAA4B5mmC,KAAKipiC,UAAUgb,iBAAiB8oB,sBAAsB85B,wBAElF7mmC,KAAK8mmC,8BAELC,EAA6B/mmC,KAAKipiC,UAAUgb,iBAAiBkR,4BAA4B6xC,yBAEzFhnmC,KAAKinlC,+BAELkgB,EAA+BnnmC,KAAKipiC,UAAUgb,iBAAiByE,yBAAyB0+C,2BAExFpnmC,KAAKiimC,0BAEL4T,EAAwB71mC,KAAKipiC,UAAUgb,iBAAiB2Q,oBAAoB0yC,oBAE5EtnmC,KAAKipiC,UAAUqa,oBAEfsyD,EAAqB51mC,KAAKy9iC,gBAAgBuF,oBAEzC,CAGD,IADA,IAAI5t2B,EAAc,IAAI1kM,MACbV,EAAI,EAAGA,EAAIhQ,KAAKoxmB,UAAWphmB,IAChColM,EAAY7oL,SAASvc,EAAE8G,WAAY,KAAO,GAE9C8+lC,EAAqBnlkC,KAAK+mF,UAAU49E,EACxC,CACA,IAAK,IAAIn0L,EAAI,EAAGA,EAAIjhB,KAAKoxmB,UAAWnwlB,IAAK,CAErC,IAAIk+G,EAAa,CACb2y7B,qBAAsBrhhC,KAAKuL,MAAMsqjC,GAAgC/5kC,SAAStL,EAAEnK,WAAY,KAAMqviC,gBAAiB11gC,KAAKuL,MAAMurgC,GAAkBh7hC,SAAStL,EAAEnK,WAAY,KACnKi7iC,uBAAwBthhC,KAAKuL,MAAM0qjC,GAAsBn6kC,SAAStL,EAAEnK,WAAY,KAAMm7iC,iBAAkBxhhC,KAAKuL,MAAM4qjC,GAA2Br6kC,SAAStL,EAAEnK,WAAY,KAErKyqlC,sBAAuB9wjC,KAAKuL,MAAM+qjC,GAA4Bx6kC,SAAStL,EAAEnK,WAAY,KAAMk7iC,mBAAoBvhhC,KAAKuL,MAAMmrjC,GAA8B56kC,SAAStL,EAAEnK,WAAY,KAAM0qlC,oBAAqB/wjC,KAAKuL,MAAM45jC,GAAoBrplC,SAAStL,EAAEnK,WAAY,KAAMo7iC,uBAAwBzhhC,KAAKuL,MAAM65jC,GAAuBtplC,SAAStL,EAAEnK,WAAY,MAE3V0+xB,EAAqBjpxB,SAAStL,EAAEnK,WAAY,KAAOqoH,CACvD,CACA,OAAO1uF,KAAK+mF,UAAUg+qB,EAC1B,EAEA6nS,EAAc1skC,UAAUsimC,oBAAsB,SAAU6C,EAA2BC,GAC/E,IAAK,IAAI5pmC,EAAI,EAAGA,EAAInM,KAAKoxmB,UAAWjlmB,IAChC,GAAI4pmC,EAAsBxplC,SAASpgB,EAAE2K,WAAY,KAC7C,GAAIg/lC,EAA0BvplC,SAASpgB,EAAE2K,WAAY,KAC7Ci/lC,EAAsBxplC,SAASpgB,EAAE2K,WAAY,KAAKg7iC,sBAA0G,IAAlFikD,EAAsBxplC,SAASpgB,EAAE2K,WAAY,KAAKg7iC,qBAAqB1ujC,SAC7I0ymC,EAA0BvplC,SAASpgB,EAAE2K,WAAY,KAAKg7iC,sBAEtDikD,EAAsBxplC,SAASpgB,EAAE2K,WAAY,KAAKg7iC,qBAAuB9xjC,KAAKg2mC,kBAAkBF,EAA0BvplC,SAASpgB,EAAE2K,WAAY,KAAKg7iC,qBAAsBikD,EAAsBxplC,SAASpgB,EAAE2K,WAAY,KAAKg7iC,qBAAsB3ljC,GAC9J,IAAlF4pmC,EAAsBxplC,SAASpgB,EAAE2K,WAAY,KAAKg7iC,qBAAqB1ujC,SAEvE0ymC,EAA0BvplC,SAASpgB,EAAE2K,WAAY,KAAKg7iC,qBAAuBgkD,EAA0BvplC,SAASpgB,EAAE2K,WAAY,KAAKg7iC,qBAAqB14iC,OAAO28lC,EAAsBxplC,SAASpgB,EAAE2K,WAAY,KAAKg7iC,wBAIrNgkD,EAA0BvplC,SAASpgB,EAAE2K,WAAY,KAAKg7iC,qBAAuBikD,EAAsBxplC,SAASpgB,EAAE2K,WAAY,KAAKg7iC,sBAGnIikD,EAAsBxplC,SAASpgB,EAAE2K,WAAY,KAAKqviC,iBAAgG,IAA7E4vD,EAAsBxplC,SAASpgB,EAAE2K,WAAY,KAAKqviC,gBAAgB/ijC,SACnI0ymC,EAA0BvplC,SAASpgB,EAAE2K,WAAY,KAAKqviC,iBAEtD4vD,EAAsBxplC,SAASpgB,EAAE2K,WAAY,KAAKqviC,gBAAkBnmjC,KAAKg2mC,kBAAkBF,EAA0BvplC,SAASpgB,EAAE2K,WAAY,KAAKqviC,gBAAiB4vD,EAAsBxplC,SAASpgB,EAAE2K,WAAY,KAAKqviC,gBAAiBh6iC,GACpJ,IAA7E4pmC,EAAsBxplC,SAASpgB,EAAE2K,WAAY,KAAKqviC,gBAAgB/ijC,SAElE0ymC,EAA0BvplC,SAASpgB,EAAE2K,WAAY,KAAKqviC,gBAAkB2vD,EAA0BvplC,SAASpgB,EAAE2K,WAAY,KAAKqviC,gBAAgB/siC,OAAO28lC,EAAsBxplC,SAASpgB,EAAE2K,WAAY,KAAKqviC,mBAI3M2vD,EAA0BvplC,SAASpgB,EAAE2K,WAAY,KAAKqviC,gBAAkB4vD,EAAsBxplC,SAASpgB,EAAE2K,WAAY,KAAKqviC,iBAG9H4vD,EAAsBxplC,SAASpgB,EAAE2K,WAAY,KAAKi7iC,wBAA8G,IAApFgkD,EAAsBxplC,SAASpgB,EAAE2K,WAAY,KAAKi7iC,uBAAuB3ujC,SACjJ0ymC,EAA0BvplC,SAASpgB,EAAE2K,WAAY,KAAKi7iC,wBAEtDgkD,EAAsBxplC,SAASpgB,EAAE2K,WAAY,KAAKi7iC,uBAAyB/xjC,KAAKg2mC,kBAAkBF,EAA0BvplC,SAASpgB,EAAE2K,WAAY,KAAKi7iC,uBAAwBgkD,EAAsBxplC,SAASpgB,EAAE2K,WAAY,KAAKi7iC,uBAAwB5ljC,GAClK,IAApF4pmC,EAAsBxplC,SAASpgB,EAAE2K,WAAY,KAAKi7iC,uBAAuB3ujC,SAEzE0ymC,EAA0BvplC,SAASpgB,EAAE2K,WAAY,KAAKi7iC,uBAAyB+jD,EAA0BvplC,SAASpgB,EAAE2K,WAAY,KAAKi7iC,uBAAuB34iC,OAAO28lC,EAAsBxplC,SAASpgB,EAAE2K,WAAY,KAAKi7iC,0BAIzN+jD,EAA0BvplC,SAASpgB,EAAE2K,WAAY,KAAKi7iC,uBAAyBgkD,EAAsBxplC,SAASpgB,EAAE2K,WAAY,KAAKi7iC,wBAGrIgkD,EAAsBxplC,SAASpgB,EAAE2K,WAAY,KAAKm7iC,kBAAkG,IAA9E8jD,EAAsBxplC,SAASpgB,EAAE2K,WAAY,KAAKm7iC,iBAAiB7ujC,SACrI0ymC,EAA0BvplC,SAASpgB,EAAE2K,WAAY,KAAKm7iC,kBAEtD8jD,EAAsBxplC,SAASpgB,EAAE2K,WAAY,KAAKm7iC,iBAAmBjyjC,KAAKg2mC,kBAAkBF,EAA0BvplC,SAASpgB,EAAE2K,WAAY,KAAKm7iC,iBAAkB8jD,EAAsBxplC,SAASpgB,EAAE2K,WAAY,KAAKm7iC,iBAAkB9ljC,GACtJ,IAA9E4pmC,EAAsBxplC,SAASpgB,EAAE2K,WAAY,KAAKm7iC,iBAAiB7ujC,SAEnE0ymC,EAA0BvplC,SAASpgB,EAAE2K,WAAY,KAAKm7iC,iBAAmB6jD,EAA0BvplC,SAASpgB,EAAE2K,WAAY,KAAKm7iC,iBAAiB74iC,OAAO28lC,EAAsBxplC,SAASpgB,EAAE2K,WAAY,KAAKm7iC,oBAI7M6jD,EAA0BvplC,SAASpgB,EAAE2K,WAAY,KAAKm7iC,iBAAmB8jD,EAAsBxplC,SAASpgB,EAAE2K,WAAY,KAAKm7iC,kBAG/H8jD,EAAsBxplC,SAASpgB,EAAE2K,WAAY,KAAKyqlC,uBAA4G,IAAnFwU,EAAsBxplC,SAASpgB,EAAE2K,WAAY,KAAKyqlC,sBAAsBn+lC,SAC/I0ymC,EAA0BvplC,SAASpgB,EAAE2K,WAAY,KAAKyqlC,uBAEtDwU,EAAsBxplC,SAASpgB,EAAE2K,WAAY,KAAKyqlC,sBAAwBvhmC,KAAKg2mC,kBAAkBF,EAA0BvplC,SAASpgB,EAAE2K,WAAY,KAAKyqlC,sBAAuBwU,EAAsBxplC,SAASpgB,EAAE2K,WAAY,KAAKyqlC,sBAAuBp1lC,GAChK,IAAnF4pmC,EAAsBxplC,SAASpgB,EAAE2K,WAAY,KAAKyqlC,sBAAsBn+lC,SAExE0ymC,EAA0BvplC,SAASpgB,EAAE2K,WAAY,KAAKyqlC,sBAAwBuU,EAA0BvplC,SAASpgB,EAAE2K,WAAY,KAAKyqlC,sBAAsBnolC,OAAO28lC,EAAsBxplC,SAASpgB,EAAE2K,WAAY,KAAKyqlC,yBAIvNuU,EAA0BvplC,SAASpgB,EAAE2K,WAAY,KAAKyqlC,sBAAwBwU,EAAsBxplC,SAASpgB,EAAE2K,WAAY,KAAKyqlC,uBAGpIwU,EAAsBxplC,SAASpgB,EAAE2K,WAAY,KAAKk7iC,oBAAsG,IAAhF+jD,EAAsBxplC,SAASpgB,EAAE2K,WAAY,KAAKk7iC,mBAAmB5ujC,SACzI0ymC,EAA0BvplC,SAASpgB,EAAE2K,WAAY,KAAKk7iC,oBAEtD+jD,EAAsBxplC,SAASpgB,EAAE2K,WAAY,KAAKk7iC,mBAAqBhyjC,KAAKg2mC,kBAAkBF,EAA0BvplC,SAASpgB,EAAE2K,WAAY,KAAKk7iC,mBAAoB+jD,EAAsBxplC,SAASpgB,EAAE2K,WAAY,KAAKk7iC,mBAAoB7ljC,GAC1J,IAAhF4pmC,EAAsBxplC,SAASpgB,EAAE2K,WAAY,KAAKk7iC,mBAAmB5ujC,SAErE0ymC,EAA0BvplC,SAASpgB,EAAE2K,WAAY,KAAKk7iC,mBAAqB8jD,EAA0BvplC,SAASpgB,EAAE2K,WAAY,KAAKk7iC,mBAAmB54iC,OAAO28lC,EAAsBxplC,SAASpgB,EAAE2K,WAAY,KAAKk7iC,sBAIjN8jD,EAA0BvplC,SAASpgB,EAAE2K,WAAY,KAAKk7iC,mBAAqB+jD,EAAsBxplC,SAASpgB,EAAE2K,WAAY,KAAKk7iC,oBAGjI+jD,EAAsBxplC,SAASpgB,EAAE2K,WAAY,KAAKo7iC,wBAA8G,IAApF6jD,EAAsBxplC,SAASpgB,EAAE2K,WAAY,KAAKo7iC,uBAAuB9ujC,SACjJ0ymC,EAA0BvplC,SAASpgB,EAAE2K,WAAY,KAAKo7iC,wBAEtD6jD,EAAsBxplC,SAASpgB,EAAE2K,WAAY,KAAKo7iC,uBAAyBlyjC,KAAKg2mC,kBAAkBF,EAA0BvplC,SAASpgB,EAAE2K,WAAY,KAAKo7iC,uBAAwB6jD,EAAsBxplC,SAASpgB,EAAE2K,WAAY,KAAKo7iC,uBAAwB/ljC,GAClK,IAApF4pmC,EAAsBxplC,SAASpgB,EAAE2K,WAAY,KAAKo7iC,uBAAuB9ujC,SAEzE0ymC,EAA0BvplC,SAASpgB,EAAE2K,WAAY,KAAKo7iC,uBAAyB4jD,EAA0BvplC,SAASpgB,EAAE2K,WAAY,KAAKo7iC,uBAAuB94iC,OAAO28lC,EAAsBxplC,SAASpgB,EAAE2K,WAAY,KAAKo7iC,0BAIzN4jD,EAA0BvplC,SAASpgB,EAAE2K,WAAY,KAAKo7iC,uBAAyB6jD,EAAsBxplC,SAASpgB,EAAE2K,WAAY,KAAKo7iC,4BAIxI,CAED,IAAI/y7B,EAAa,CAEb2y7B,qBAAsBikD,EAAsBxplC,SAASpgB,EAAE2K,WAAY,KAAKg7iC,qBAAsB3L,gBAAiB4vD,EAAsBxplC,SAASpgB,EAAE2K,WAAY,KAAKqviC,gBAEjK4L,uBAAwBgkD,EAAsBxplC,SAASpgB,EAAE2K,WAAY,KAAKi7iC,uBAAwBE,iBAAkB8jD,EAAsBxplC,SAASpgB,EAAE2K,WAAY,KAAKm7iC,iBAEtKsvC,sBAAuBwU,EAAsBxplC,SAASpgB,EAAE2K,WAAY,KAAKyqlC,sBAAuBvvC,mBAAoB+jD,EAAsBxplC,SAASpgB,EAAE2K,WAAY,KAAKk7iC,mBACtKE,uBAAwB6jD,EAAsBxplC,SAASpgB,EAAE2K,WAAY,KAAKo7iC,wBAE9E4jD,EAA0BvplC,SAASpgB,EAAE2K,WAAY,KAAOqoH,CAC5D,CAGR,OAAO22+B,CACX,EAKAz4B,EAAc1skC,UAAUihmC,iBAAmB,WAEvC,IAAIwB,EAAcpilC,OAAOor0B,eAAe3woB,QAAQzrN,KAAKojjC,WAAa,sBAE9D6yD,EAAgBjllC,OAAOor0B,eAAe3woB,QAAQzrN,KAAKojjC,WAAa,8BAEhEkwD,EAActilC,OAAOor0B,eAAe3woB,QAAQzrN,KAAKojjC,WAAa,sBAE9DmwD,EAAevilC,OAAOor0B,eAAe3woB,QAAQzrN,KAAKojjC,WAAa,uBAE/D+vD,EAAmBnilC,OAAOor0B,eAAe3woB,QAAQzrN,KAAKojjC,WAAa,2BAEnEowD,EAAiBxilC,OAAOor0B,eAAe3woB,QAAQzrN,KAAKojjC,WAAa,yBACjEE,GAAsB,EAEtB4yD,EAAqBlllC,OAAOor0B,eAAe3woB,QAAQzrN,KAAKojjC,WAAa,oBACrEpjjC,KAAKipiC,UAAUqa,sBAEOtyhC,OAAOor0B,eAAe3woB,QAAQzrN,KAAKojjC,WAAa,uBAElEE,GAAsB,IAI9B,SAAI8vD,GAAe6C,GAAiB3C,GAAeC,GAAgBJ,GAAoBK,GAAkBxzmC,KAAK2/kC,gBAAkB3/kC,KAAKkjjC,iBAAmBI,GAAuB4yD,EAMnL,EACA74B,EAAc1skC,UAAUi6kC,qBAAuB,SAAUx14B,GACrD,IAAI+g6B,GAAQ,EAIZ,OAHI/g6B,GAAeA,EAAYhyM,OAAS,IACpC+ymC,EAAQ/g6B,EAAY3wM,MAAK,SAAUwc,GAAK,MAAiC,aAA1BA,EAAE8zhC,qBAAoD,aAAd9zhC,EAAEq2b,OAAwB,KAE9G6+pB,CACX,EAEA94B,EAAc1skC,UAAUqlmC,kBAAoB,SAAUI,EAAoBC,EAAevgsB,GACrF,IAAK,IAAI3pa,EAAI,EAAGA,EAAIiqmC,EAAmBhzmC,OAAQ+I,IAC3C,IAAK,IAAI6D,EAAI,EAAGA,EAAIqmmC,EAAcjzmC,OAAQ4M,IACtC,GAAIommC,EAAmB7plC,SAASpgB,EAAE2K,WAAY,KAAKi+lC,YAAcsB,EAAc9plC,SAASvc,EAAE8G,WAAY,KAAKi+lC,UAAW,CAElH,IADA,IAAIpljC,EAAM3vD,KAAKipiC,UAAUzzP,qBAAqBpyyB,OACrC8W,EAAI,EAAGA,EAAIy1C,EAAKz1C,IACrB,GAAIla,KAAKipiC,UAAUzzP,qBAAqBjpxB,SAASrS,EAAEpD,WAAY,KAAKkwiC,eAAiBqvD,EAAc9plC,SAASvc,EAAE8G,WAAY,KAAKi+lC,UAAW,CAEtI/0mC,KAAKipiC,UAAUzzP,qBAAqBjpxB,SAASrS,EAAEpD,WAAY,KAAKwvH,SAAWtmI,KAAKipiC,UAAUgb,iBAAiBqyD,sBAAsBD,EAAc9plC,SAASvc,EAAE8G,WAAY,KAAK67lC,SAAU0D,EAAc9plC,SAASvc,EAAE8G,WAAY,KAAMu/lC,EAAc9plC,SAASvc,EAAE8G,WAAY,KAAKy/lC,QAC1Qv2mC,KAAKipiC,UAAUzzP,qBAAqBjpxB,SAASrS,EAAEpD,WAAY,KAAK0/lC,OAAS,CAAEpvmC,MAAOivmC,EAAc9plC,SAASvc,EAAE8G,WAAY,KAAKijC,MAAO08jC,WAAYJ,EAAc9plC,SAASvc,EAAE8G,WAAY,KAAK4/lC,WAAYz2X,aAAco2X,EAAc9plC,SAASvc,EAAE8G,WAAY,KAAK27lC,aAAc3yX,OAAQu2X,EAAc9plC,SAASvc,EAAE8G,WAAY,KAAKy/lC,QAC7Tv2mC,KAAKipiC,UAAUzzP,qBAAqBjpxB,SAASrS,EAAEpD,WAAY,KAAKg2vB,KAAOupW,EAAc9plC,SAASvc,EAAE8G,WAAY,KAAK6/lC,KACjH,IAAIr4W,EAAQt+vB,KAAKipiC,UAAUzzP,qBAAqBjpxB,SAASrS,EAAEpD,WAAY,KACN,UAA7Ds/lC,EAAmB7plC,SAASpgB,EAAE2K,WAAY,KAAK8/lC,WAAyB52mC,KAAKipiC,UAAUgb,iBAAiBqtB,uBACxGtxkC,KAAK2glC,8BAA8Bp0jC,SAASupZ,EAAUh/Z,WAAY,KAAKqviC,gBAAgB55hC,SAASpgB,EAAE2K,WAAY,KAAOu/lC,EAAc9plC,SAASvc,EAAE8G,WAAY,KAC1J9W,KAAK62mC,kCAAkCR,EAAc9plC,SAASvc,EAAE8G,WAAY,KAAMwnvB,EAAO,uBAEvB,eAA7D83W,EAAmB7plC,SAASpgB,EAAE2K,WAAY,KAAK8/lC,WAA8B52mC,KAAKipiC,UAAUgb,iBAAiBsE,4BAClHvojC,KAAK2glC,8BAA8Bp0jC,SAASupZ,EAAUh/Z,WAAY,KAAKg7iC,qBAAqBvliC,SAASpgB,EAAE2K,WAAY,KAAOu/lC,EAAc9plC,SAASvc,EAAE8G,WAAY,KAC/J9W,KAAK62mC,kCAAkCR,EAAc9plC,SAASvc,EAAE8G,WAAY,KAAMwnvB,EAAO,4BAEvB,kBAA7D83W,EAAmB7plC,SAASpgB,EAAE2K,WAAY,KAAK8/lC,WAAiC52mC,KAAKipiC,UAAUgb,iBAAiB4F,yBACrH7pjC,KAAK2glC,8BAA8Bp0jC,SAASupZ,EAAUh/Z,WAAY,KAAKi7iC,uBAAuBxliC,SAASpgB,EAAE2K,WAAY,KAAOu/lC,EAAc9plC,SAASvc,EAAE8G,WAAY,KACjK9W,KAAK62mC,kCAAkCR,EAAc9plC,SAASvc,EAAE8G,WAAY,KAAMwnvB,EAAO,+BAEvB,UAA7D83W,EAAmB7plC,SAASpgB,EAAE2K,WAAY,KAAK8/lC,WAAyB52mC,KAAKipiC,UAAUgb,iBAAiB8oB,uBAC7G/skC,KAAK2glC,8BAA8Bp0jC,SAASupZ,EAAUh/Z,WAAY,KAAKm7iC,iBAAiB1liC,SAASpgB,EAAE2K,WAAY,KAAOu/lC,EAAc9plC,SAASvc,EAAE8G,WAAY,KAC3J9W,KAAK62mC,kCAAkCR,EAAc9plC,SAASvc,EAAE8G,WAAY,KAAMwnvB,EAAO,uBAEvB,aAA7D83W,EAAmB7plC,SAASpgB,EAAE2K,WAAY,KAAK8/lC,WAA4B52mC,KAAKipiC,UAAUgb,iBAAiByE,0BAChH1ojC,KAAK2glC,8BAA8Bp0jC,SAASupZ,EAAUh/Z,WAAY,KAAKk7iC,mBAAmBzliC,SAASpgB,EAAE2K,WAAY,KAAOu/lC,EAAc9plC,SAASvc,EAAE8G,WAAY,KAC7J9W,KAAK62mC,kCAAkCR,EAAc9plC,SAASvc,EAAE8G,WAAY,KAAMwnvB,EAAO,0BAEvB,QAA7D83W,EAAmB7plC,SAASpgB,EAAE2K,WAAY,KAAK8/lC,WAAuB52mC,KAAKipiC,UAAUgb,iBAAiB2Q,qBAC3G50jC,KAAK2glC,8BAA8Bp0jC,SAASupZ,EAAUh/Z,WAAY,KAAKo7iC,uBAAuB3liC,SAASpgB,EAAE2K,WAAY,KAAOu/lC,EAAc9plC,SAASvc,EAAE8G,WAAY,KACjK9W,KAAK62mC,kCAAkCR,EAAc9plC,SAASvc,EAAE8G,WAAY,KAAMwnvB,EAAO,qBAEvB,WAA7D83W,EAAmB7plC,SAASpgB,EAAE2K,WAAY,KAAK8/lC,YACpD52mC,KAAK2glC,8BAA8Bp0jC,SAASupZ,EAAUh/Z,WAAY,KAAKyqlC,sBAAsBh1kC,SAASpgB,EAAE2K,WAAY,KAAOu/lC,EAAc9plC,SAASvc,EAAE8G,WAAY,KAChK9W,KAAK62mC,kCAAkCR,EAAc9plC,SAASvc,EAAE8G,WAAY,KAAMwnvB,EAAO,wBAE7F,KACJ,CAEJt+vB,KAAKipiC,UAAUgb,iBAAiBkR,4BAA4B2hD,0BAA0BT,EAAc9plC,SAASvc,EAAE8G,WAAY,KAAOg/Z,EAAY,EAAI,KAAM,MAAM,GAC9JugsB,EAAc7glC,OAAOxlB,EAAG,GACxBA,GAAQ,CACZ,CAGR,GAAIhQ,KAAKwglC,mBAAoB,CAEzB,IAAIy0B,EAAwBj1mC,KAAKwglC,mBAAmB1qqB,GAEpD,GADAm/rB,EAAwBj1mC,KAAKk1mC,4BAA4BD,GAErD,IAAS9omC,EAAI,EAAGA,EAAI8omC,EAAsB7xmC,OAAQ+I,IAC9C,IAAS6D,EAAI,EAAGA,EAAIqmmC,EAAcjzmC,OAAQ4M,IAClCilmC,EAAsB1olC,SAASpgB,EAAE2K,WAAY,KAAKi+lC,YAAcsB,EAAc9plC,SAASvc,EAAE8G,WAAY,KAAKi+lC,YAC1GsB,EAAc7glC,OAAOxlB,EAAG,GACxBA,GAAQ,EAK5B,CACA,OAAOqmmC,CACX,EAEAh5B,EAAc1skC,UAAUkmmC,kCAAoC,SAAUR,EAAe/3W,EAAO1xvB,GACxF,IAAIuyH,EAAanuG,OAAOor0B,eAAe3woB,QAAQzrN,KAAKojjC,WAAax2iC,GAC7Dk5iC,EAAcr1gC,KAAKuL,MAAMmjF,GAC7B,GAAI2m7B,EAAa,CACb,IAAK,IAAI5viC,EAAI,EAAGA,EAAI4viC,EAAY1ijC,OAAQ8S,IACpC,GAAI4viC,EAAYv5hC,SAASrW,EAAEY,WAAY,KAAKs+L,YACxC,IAAK,IAAI1zL,EAAI,EAAGA,EAAIokiC,EAAYv5hC,SAASrW,EAAEY,WAAY,KAAKs+L,YAAYhyM,OAAQse,IAC5E,GAAIokiC,EAAYv5hC,SAASrW,EAAEY,WAAY,KAAKs+L,YAAY7oL,SAAS7K,EAAE5K,WAAY,KAAKmwiC,YAAcovD,EAActB,UAAW,CACvHjvD,EAAYv5hC,SAASrW,EAAEY,WAAY,KAAKs+L,YAAY7oL,SAAS7K,EAAE5K,WAAY,KAAKwvH,SAAWg4nB,EAAMh4nB,SACjGw/6B,EAAYv5hC,SAASrW,EAAEY,WAAY,KAAKs+L,YAAY7oL,SAAS7K,EAAE5K,WAAY,KAAK0/lC,OAASl4W,EAAMk4W,OAC/F1wD,EAAYv5hC,SAASrW,EAAEY,WAAY,KAAKs+L,YAAY7oL,SAAS7K,EAAE5K,WAAY,KAAKg2vB,KAAOxO,EAAMwO,KAC7F,KACJ,CAIZ97uB,OAAOor0B,eAAexwoB,QAAQ5rN,KAAKojjC,WAAax2iC,EAAM6jC,KAAK+mF,UAAUsu7B,GACzE,CACJ,EAMAu3B,EAAc1skC,UAAU+9jC,qBAAuB,SAAUlvmB,GAOrD,IANA,IAEIypC,EACAnyY,EACA8+Y,EACAhwE,EACKz5b,EAAI,EAAGA,EAAIqzd,EAAOp8d,OAAQ+I,IAC1B88f,GAOGA,EAAWzpC,EAAOjzc,SAASpgB,EAAE2K,WAAY,KAAKoD,EAC9C+uf,EAAWzpC,EAAOjzc,SAASpgB,EAAE2K,WAAY,KAAKoD,EAEzC48G,EAAW0oW,EAAOjzc,SAASpgB,EAAE2K,WAAY,KAAKoD,IACnD48G,EAAW0oW,EAAOjzc,SAASpgB,EAAE2K,WAAY,KAAKoD,GAE9C07f,EAAYp2C,EAAOjzc,SAASpgB,EAAE2K,WAAY,KAAKqD,EAC/Cy7f,EAAYp2C,EAAOjzc,SAASpgB,EAAE2K,WAAY,KAAKqD,EAE1Cyrb,EAAY45B,EAAOjzc,SAASpgB,EAAE2K,WAAY,KAAKqD,IACpDyrb,EAAY45B,EAAOjzc,SAASpgB,EAAE2K,WAAY,KAAKqD,KAhBnD8uf,EAAWzpC,EAAOjzc,SAASpgB,EAAE2K,WAAY,KAAKoD,EAC9C48G,EAAW0oW,EAAOjzc,SAASpgB,EAAE2K,WAAY,KAAKoD,EAC9C07f,EAAYp2C,EAAOjzc,SAASpgB,EAAE2K,WAAY,KAAKqD,EAC/Cyrb,EAAY45B,EAAOjzc,SAASpgB,EAAE2K,WAAY,KAAKqD,GAmBvD,MAAO,CAAEqE,MAFDs4G,EAAWmyY,EAEIrgX,OADdg9S,EAAYgwE,EAEzB,EACAynkB,EAAc1skC,UAAUommC,kBAAoB,WACxC,GAAI/2mC,KAAKipiC,UAAUgb,iBAAkB,CACjCjkjC,KAAKipiC,UAAU7z1B,YAAc,GAC7Bp1M,KAAKipiC,UAAU+tD,YAAc,GAC7Bh3lC,KAAKipiC,UAAUzzP,qBAAuB,GACtCx1yB,KAAKipiC,UAAUme,oBAAsB,GAErC,IAAI5xQ,EAAuBx1yB,KAAKy0mC,8BAChCz0mC,KAAKwglC,mBAAqBhrS,EAC1Bx1yB,KAAK2glC,8BAAgCnrS,EACrCx1yB,KAAK4glC,wBAA0B,GAC/B5vjC,OAAOor0B,eAAerwoB,WAAW/rN,KAAKojjC,WAAa,sBACnDpyhC,OAAOor0B,eAAerwoB,WAAW/rN,KAAKojjC,WAAa,8BACnDpyhC,OAAOor0B,eAAerwoB,WAAW/rN,KAAKojjC,WAAa,sBACnDpyhC,OAAOor0B,eAAerwoB,WAAW/rN,KAAKojjC,WAAa,uBACnDpyhC,OAAOor0B,eAAerwoB,WAAW/rN,KAAKojjC,WAAa,2BACnDpyhC,OAAOor0B,eAAerwoB,WAAW/rN,KAAKojjC,WAAa,yBACnDpyhC,OAAOor0B,eAAerwoB,WAAW/rN,KAAKojjC,WAAa,qBACnDpyhC,OAAOor0B,eAAerwoB,WAAW/rN,KAAKojjC,WAAa,oBACnD,IAAK,IAAIj3iC,EAAI,EAAGA,EAAInM,KAAKoxmB,UAAWjlmB,IAAK,CACrCnM,KAAKipiC,UAAUgb,iBAAiBhqG,kBAAkB9t8B,EAAG,KAAM,KAAM,MACjEnM,KAAKipiC,UAAUsb,mBAAclhjC,EAAW8I,GACxCnM,KAAKipiC,UAAUzxZ,eAAerroB,GAC9B,IAAI6qmC,EAAmB9llC,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,uBAAyBhqB,EAAI,IACpG6qmC,GACAA,EAAiB7jlC,SAGrB,IAAI8jlC,EAA4B/llC,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,8BAChF8glC,GACoD,IAAhDA,EAA0B9grB,oBAC1B8grB,EAA0B9wmC,MAAMi+J,QAAU,OACtClzI,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,wBAEpDn2B,KAAKoljC,eAAeC,kBAAkBhxiB,YAAY,CAACr0gB,KAAKipiC,UAAU59hB,UAAUtlK,YAAY,wBAAwB,GAChH70U,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,sBAAsBhwB,MAAMi+J,QAAU,SAI1G,CACApkK,KAAK4/kC,sBAAuB,EAC5B5/kC,KAAK2/kC,gBAAiB,EACtB3/kC,KAAK62lC,mBAAqB,GAC1B72lC,KAAKy/kC,mBAAqB,GAC1Bz/kC,KAAKipiC,UAAUgb,iBAAiByE,yBAAyBwuD,oBAAsB,GAC/El3mC,KAAKipiC,UAAUgb,iBAAiB8oB,sBAAsBoqC,gBAAkB,GACxEn3mC,KAAKipiC,UAAU9p6B,WAAWy17B,oBAAoBwiD,mBAAqB,GACnEp3mC,KAAK6/kC,+BAAgC,CACzC,CACJ,EASAxC,EAAc1skC,UAAU8jmC,4BAA8B,SAAUtyS,EAAY7uwB,GAExE,IAAI+jjC,EAA2B,GAC/B,GAAK/jjC,EASA,CAEG6rE,EAAa,CAEb2y7B,qBAAsB,GAAI3L,gBAAiB,GAAI4L,uBAAwB,GAAIE,iBAAkB,GAAIsvC,sBAAuB,GAAIvvC,mBAAoB,GAAIwvC,oBAAqB,GAAItvC,uBAAwB,KAHzMmlD,EAA2B,CAAC,GAKH9qlC,SAAS41yB,EAAWrrzB,WAAY,KAAOqoH,CACpE,MAfI,IAAK,IAAIhzH,EAAI,EAAGA,EAAInM,KAAKoxmB,UAAWjlmB,IAAK,CACrC,IAAIgzH,EAAa,CAEb2y7B,qBAAsB,GAAI3L,gBAAiB,GAAI4L,uBAAwB,GAAIE,iBAAkB,GAAIsvC,sBAAuB,GAAIvvC,mBAAoB,GAAIwvC,oBAAqB,GAAItvC,uBAAwB,IAEzMmlD,EAAyBjrmC,KAAK+yH,EAClC,CAUJ,OAAOk4+B,CACX,EAMAh6B,EAAc1skC,UAAUquH,cAAgB,SAAUs4+B,GAE9C,IAEIC,EAFA1lD,EAAgB,CAAC,EAGrB,GAAIylD,EAAkB,CAClB,IAAIE,GAAqB,EACrBC,EAAkB,EAClBH,EAAiBviE,qBAAuBuiE,EAAiBx3X,QACzD03X,GAAqB,EACrBD,EAAsBv3mC,KAAKy0mC,4BAA4B6C,EAAiBn1S,YAAY,IAGhFm1S,EAAiBl0mC,QACjBq0mC,EAAkBH,EAAiBl0mC,OACnCm0mC,EAAsBv3mC,KAAKy0mC,gCAG3B+C,GAAqB,EACrBD,EAAsBv3mC,KAAKy0mC,4BAA4B6C,EAAiBn1S,YAAY,IAG5F,IAAK,IAAIlszB,EAAI,EAAGA,EAAIwhmC,EAAiBxhmC,IAAK,CAEtC,IAAIkpH,OAAa,EAEbA,EADAq4+B,EACaF,EAGAA,EAAiB/qlC,SAAStW,EAAEa,WAAY,KAGzD,IAAI4gmC,EAAgB,CAAC,EAarB,GAZAA,EAAcC,oBAAsBx4+B,EAAW416B,oBAC/C2iE,EAAcE,kBAAoBz4+B,EAAW04+B,kBAC7CH,EAAcnB,OAASp3+B,EAAW2gnB,OAClC43X,EAAcI,2BAA6B34+B,EAAWms8B,2BACtDosC,EAAcK,mBAAqB54+B,EAAWqk7B,mBAC9Ck0D,EAAcM,WAAa74+B,EAAWgjsB,WACtCu1S,EAAcjF,aAAetz+B,EAAW8gnB,aACxCy3X,EAAcr+P,QAAUl6uB,EAAWm4U,QACnCogqB,EAAcf,KAAOx3+B,EAAW2toB,KAChC4qW,EAAc3C,UAAY51+B,EAAW6n7B,aACrC0wD,EAAcO,cAAgB94+B,EAAW+4+B,cACzCR,EAAc/E,SAAWxz+B,EAAWmH,SAChCnH,EAAWmH,UAAYnH,EAAWmH,SAASljI,OAAS,EAAG,CAGvD,IADA,IAAIkjI,EAAW,GACNn6H,EAAI,EAAGA,EAAIgzH,EAAWmH,SAASljI,OAAQ+I,IAC5Cm6H,EAASl6H,KAAKpM,KAAKm4mC,eAAeh5+B,EAAYA,EAAWmH,SAAS/5G,SAASpgB,EAAE2K,WAAY,OAE7F4gmC,EAAc/E,SAAWrs+B,CAC7B,CAOA,GANInH,EAAWq3+B,SACXkB,EAAc39jC,MAAQolF,EAAWq3+B,OAAOpvmC,MACxCswmC,EAAchB,WAAav3+B,EAAWq3+B,OAAOC,YAEjDiB,EAAcU,WAAaj5+B,EAAW66W,WACtC09nB,EAAclxN,QAAUrnxB,EAAWmP,QACI,eAAnCnP,EAAW416B,oBAAsC,CAWjD,GAVA2iE,EAAcd,UAAY,aAC1Bc,EAAcW,MAAQl5+B,EAAW1I,MACjCih/B,EAAcY,cAAgBn5+B,EAAWuyR,cACzCgmtB,EAAca,yBAA2Bp5+B,EAAWq5+B,yBACpDd,EAAce,kBAAoBt5+B,EAAW2r+B,kBAC7C4M,EAAcgB,qBAAuBv5+B,EAAWw5+B,qBAChDjB,EAAckB,mBAAqBz5+B,EAAW05+B,mBAC1C15+B,EAAWu1J,OACXgj1B,EAAc71K,KAAO7h8B,KAAK84mC,cAAc35+B,EAAWu1J,MAAM,IAEzDv1J,EAAWwloB,QAAUxloB,EAAWwloB,OAAOvhwB,QAAU,EAAG,CAEpD,IAAIuhwB,EAAS,IAAIj0vB,MACjB,IAASvE,EAAI,EAAGA,EAAIgzH,EAAWwloB,OAAOvhwB,OAAQ+I,IAC1Cw4vB,EAAOv4vB,KAAKpM,KAAK84mC,cAAc35+B,EAAWwloB,OAAOp4uB,SAASpgB,EAAE2K,WAAY,OAE5E4gmC,EAAchpE,OAAS/pS,CAC3B,CACA4yW,EAAoBp4+B,EAAWgjsB,YAAY2vP,qBAAqB1ljC,KAAKsrmC,EACzE,MACK,GAAuC,WAAnCv4+B,EAAW416B,oBAChB2iE,EAAcd,UAAY,SAC1Bc,EAAc121B,KAAO,UACrB021B,EAAchpE,OAAS1uiC,KAAK84mC,cAAc35+B,EAAWwloB,QACrD+yW,EAAchwN,YAAcvoxB,EAAWs+V,YACvCi6oB,EAAcW,MAAQl5+B,EAAW1I,MACjC8g/B,EAAoBp4+B,EAAWgjsB,YAAYo/R,sBAAsBn1lC,KAAKsrmC,QAErE,GAAuC,aAAnCv4+B,EAAW416B,oBAChB2iE,EAAcd,UAAY,WAC1Bc,EAAcjyD,KAAOtm7B,EAAW6n7B,aAChC0wD,EAAcqB,WAAa55+B,EAAWq+6B,YACtCk6D,EAAc/6kC,KAAOwiG,EAAWq+6B,YAChCk6D,EAAcf,KAAOx3+B,EAAWq+6B,YAChCk6D,EAAcsB,UAAY75+B,EAAWqlW,UACrCkzoB,EAAcxyD,UAAY/l7B,EAAW+v+B,SACrCwI,EAAchwN,YAAcvoxB,EAAWs+V,YACvCi6oB,EAAcjwN,UAAYtoxB,EAAWw+wB,UACrC+5N,EAAclrmB,UAAYrtY,EAAW8rY,UACrCysmB,EAAcprmB,SAAWntY,EAAW8/K,SACpCy4zB,EAAcrrmB,WAAaltY,EAAWqjV,WACtCk1pB,EAAcuB,OAAS95+B,EAAW+xoB,YAClCwmW,EAAchpE,OAAS1uiC,KAAK84mC,cAAc35+B,EAAWwloB,QAErD+yW,EAAc70vB,KAAO,CAAE,KAAQ1jP,EAAWqjV,WAAY,KAAQrjV,EAAW8/K,SAAU,KAAQ9/K,EAAWolW,KAAKsxG,OAAQ,OAAU12c,EAAWolW,KAAKuxG,SAAU,UAAa32c,EAAWolW,KAAK4mlB,YAAa,UAAahs7B,EAAWolW,KAAKwxG,aAC9NwhiB,EAAoBp4+B,EAAWgjsB,YAAY6vP,mBAAmB5ljC,KAAKsrmC,QAElE,GAAuC,UAAnCv4+B,EAAW416B,oBAAiC,CAUjD,GATA2iE,EAAcd,UAAY,QAC1Bc,EAAc121B,KAAO7hJ,EAAW8hJ,KAChCy21B,EAAcxjtB,WAAY,EAC1BwjtB,EAAc71K,KAAO7h8B,KAAK84mC,cAAc35+B,EAAWwloB,QAAQ,GAAO,GAClE+yW,EAAcwB,YAAc/5+B,EAAW+xoB,YACvCwmW,EAAcjwN,UAAYtoxB,EAAWw+wB,UACrC+5N,EAAchwN,YAAcvoxB,EAAWs+V,YACvCi6oB,EAAcyB,oBAAsBh6+B,EAAWi6+B,oBAC/C1B,EAAc2B,aAAel6+B,EAAWm6+B,aACD,UAAnCn6+B,EAAWi6+B,oBAAiC,CAE5C,IAAIG,EAAc,GAEd5wX,EAAY,CAAE,UAAaxpnB,EAAWq6+B,qBAC1CD,EAAYntmC,KAAKu8uB,GACjB+uX,EAAc+B,YAAcF,CAChC,CACA,GAAIp6+B,EAAW8g9B,eAAgB,CAC3By3B,EAAcgC,WAAY,EAC1BhC,EAAchwN,YAAcvoxB,EAAWw6+B,eAEnCJ,EAAc,GAEd5wX,EAAY,CAAE,KAAQ,SAAU,KAAQxpnB,EAAWq+6B,YAAa,gBAAmB,uCAAwC,aAAgB,wBAAyB,SAAY,GAAI,UAAY,GACpM+7D,EAAYntmC,KAAKu8uB,GACjB+uX,EAAc+B,YAAcF,CAChC,CACAhC,EAAoBp4+B,EAAWgjsB,YAAY8vP,iBAAiB7ljC,KAAKsrmC,EACrE,MACK,GAAuC,QAAnCv4+B,EAAW416B,qBAAoE,cAAnC516B,EAAW416B,oBAC5D2iE,EAAchwN,YAAcvoxB,EAAWs+V,YACvCi6oB,EAAcjwN,UAAYtoxB,EAAWw+wB,UACrC+5N,EAAcxyD,UAAY/l7B,EAAWiv0B,UACrCspK,EAAchpE,OAAS1uiC,KAAK84mC,cAAc35+B,EAAWwloB,QACrD+yW,EAAc5yD,SAAW3l7B,EAAWj1F,KACpCwtkC,EAAc5hsB,UAAY32S,EAAWgjsB,WACE,QAAnChjsB,EAAW416B,sBACX2iE,EAAcd,UAAY,MAC1Bc,EAAckC,YAAa,EAC3BrC,EAAoBp4+B,EAAWgjsB,YAAY+vP,uBAAuB9ljC,KAAKsrmC,IAEpC,cAAnCv4+B,EAAW416B,sBACX2iE,EAAcd,UAAY,YAC1Bc,EAAcvyD,cAAgBhm7B,EAAW6n7B,aACzC0wD,EAAc3yD,aAAc,EAC5BwyD,EAAoBp4+B,EAAWgjsB,YAAYq/R,oBAAoBp1lC,KAAKsrmC,SAKxE,GAAuC,SAAnCv4+B,EAAW416B,qBAAqE,uBAAnC516B,EAAW416B,qBAAmF,aAAnC516B,EAAW416B,qBAAyE,YAAnC516B,EAAW416B,qBAAwE,aAAnC516B,EAAW416B,qBAAyE,WAAnC516B,EAAW416B,qBAAuE,SAAnC516B,EAAW416B,qBAAqE,cAAnC516B,EAAW416B,qBAA0E,WAAnC516B,EAAW416B,qBAAuE,YAAnC516B,EAAW416B,oBAAmC,CAyBre,GAxBA2iE,EAAcd,UAAY,QAC1Bc,EAAchwN,YAAcvoxB,EAAWs+V,YACvCi6oB,EAAcjwN,UAAYtoxB,EAAWw+wB,UACrC+5N,EAAcxyD,UAAY/l7B,EAAWiv0B,UACrCspK,EAAcmC,YAAc16+B,EAAW89c,YACvCy6hB,EAAcoC,gBAAkB36+B,EAAWg26B,gBAC3CuiE,EAAcwB,YAAc/5+B,EAAW+xoB,YACvCwmW,EAAcqC,aAAe56+B,EAAW66+B,aACxCtC,EAAcuC,eAAiB96+B,EAAW+6+B,eAC1CxC,EAAcyC,oBAAsBh7+B,EAAWi7+B,oBAC/C1C,EAAc2C,cAAgBl7+B,EAAW6y8B,cACzC0lC,EAAc4C,YAAcn7+B,EAAW4y8B,YACvC2lC,EAAc6C,SAAWp7+B,EAAWq7+B,SACpC9C,EAAc+C,iBAAmBt7+B,EAAWsu8B,iBAC5CiqC,EAAcgD,aAAev7+B,EAAWuu8B,aACxCgqC,EAAciD,eAAiBx7+B,EAAWw69B,eAC1C+d,EAAckD,iBAAmBz7+B,EAAW07+B,iBAC5CnD,EAAclrmB,UAAYrtY,EAAW8rY,UACrCysmB,EAAcprmB,SAAWntY,EAAW8/K,SACpCy4zB,EAAcoD,YAAc96mC,KAAK84mC,cAAc35+B,EAAW47+B,aAC1DrD,EAAcsD,cAAgB77+B,EAAW87+B,cACzCvD,EAAchpE,OAAS1uiC,KAAK84mC,cAAc35+B,EAAWwloB,QACrD+yW,EAAcwD,aAAe/7+B,EAAWgz8B,aACxCulC,EAAcyD,qBAAuBh8+B,EAAWi8+B,oBAC5Cj8+B,EAAW+k8B,cAAgB/k8B,EAAW+k8B,aAAa9gkC,QAAU,EAAG,CAEhE,IAAIo8d,EAAS,IAAI9ud,MACjB,IAASvE,EAAI,EAAGA,EAAIgzH,EAAW+k8B,aAAa9gkC,OAAQ+I,IAChDqzd,EAAOpzd,KAAKpM,KAAKq7mC,oBAAoBl8+B,EAAW+k8B,aAAa33iC,SAASpgB,EAAE2K,WAAY,OAExF4gmC,EAAc4D,aAAe97oB,CACjC,CAGA,GAFAk4oB,EAAc+C,iBAAmBt7+B,EAAWsu8B,iBAEjB,yBAAvBtu8B,EAAWm4U,SAA6D,0BAAvBn4U,EAAWm4U,SAA8D,qBAAvBn4U,EAAWm4U,SAAyD,uBAAvBn4U,EAAWm4U,SAA2D,uBAAvBn4U,EAAWm4U,QAAkC,CAC5OogqB,EAAcd,UAAY,gBAE1B,IAAI2E,EAAYp8+B,EAAWo8+B,UACvBA,IAEA7D,EAAc8D,UAAY,CACtB,MAASD,EAAU36M,MAAO,EAAK,CAAC,CAAE,KAAQ26M,EAAUrhmC,EAAE,GAAG0E,KAAM,iBAAoB28lC,EAAUrhmC,EAAE,GAAGuhmC,iBAAkB,eAAkBF,EAAUrhmC,EAAE,GAAGwhmC,eAAgB,YAAeH,EAAUrhmC,EAAE,GAAGyhmC,YAAa,kBAAqBJ,EAAUrhmC,EAAE,GAAG0hmC,oBAEpP,SAAY,CAAC,CAAE,KAAQL,EAAU9rzB,SAAS,GAAG7wS,KAAM,iBAAoB28lC,EAAU9rzB,SAAS,GAAGgszB,iBAAkB,eAAkBF,EAAU9rzB,SAAS,GAAGiszB,eAAgB,YAAeH,EAAU9rzB,SAAS,GAAGkszB,YAAa,kBAAqBJ,EAAU9rzB,SAAS,GAAGmszB,oBAEpQ,KAAQ,CAAC,CAAE,KAAQL,EAAU759B,KAAK,GAAG9iI,KAAM,iBAAoB28lC,EAAU759B,KAAK,GAAG+59B,iBAAkB,eAAkBF,EAAU759B,KAAK,GAAGg69B,eAAgB,YAAeH,EAAU759B,KAAK,GAAGi69B,YAAa,kBAAqBJ,EAAU759B,KAAK,GAAGk69B,oBAE5O,MAAS,KAAM,OAAU,KAAM,qBAAwBL,EAAUM,qBAAsB,MAASN,EAAUjviC,QAGlHoriC,EAAcj4f,OAAStgf,EAAWkI,OAClCqw+B,EAAcv4mC,QAAUggI,EAAWn+H,QACnC02mC,EAAcoE,gBAAkB38+B,EAAW48+B,gBAC3CrE,EAAcsE,oBAAsB78+B,EAAWi8+B,oBAC/C1D,EAAcwD,aAAe/7+B,EAAWgz8B,aACxCulC,EAAcuE,iBAAmB98+B,EAAW+8+B,iBAC5C3E,EAAoBp4+B,EAAWgjsB,YAAY4vP,uBAAuB3ljC,KAAKsrmC,EAC3E,MAEIH,EAAoBp4+B,EAAWgjsB,YAAYgkP,gBAAgB/5iC,KAAKsrmC,EAExE,CAER,CACA7lD,EAAcA,cAAgB0lD,EAC9Bv3mC,KAAKipiC,UAAUquE,iBAAiBzlD,EACpC,CACJ,EAMAwrB,EAAc1skC,UAAUmomC,cAAgB,SAAUn0W,EAAQw3W,EAAQ/uC,GAC9D,GAAIzoU,EAAQ,CACR,GAAIw3W,EAKA,MAAO,CAAEx4+B,KAJEghoB,EAAOhhoB,KAAOghoB,EAAOhhoB,KAAOghoB,EAAOn9mB,KAAOm9mB,EAAOn9mB,KAAO,EAI9C5jB,MAHT+goB,EAAO/goB,MAAQ+goB,EAAO/goB,MAAQ+goB,EAAOj9mB,MAAQi9mB,EAAOj9mB,MAAQ,EAGrCitI,OAFtBgwe,EAAOhwe,OAASgwe,EAAOhwe,OAASgwe,EAAOsmC,OAAStmC,EAAOsmC,OAAS,EAE1B/8oB,IADvCy2mB,EAAOz2mB,IAAMy2mB,EAAOz2mB,IAAMy2mB,EAAOiU,IAAMjU,EAAOiU,IAAM,GAIhE,IAAI1+vB,EAAIyqvB,EAAOzqvB,EAAIyqvB,EAAOzqvB,EAAIyqvB,EAAOhhoB,KAAOghoB,EAAOhhoB,KAAOghoB,EAAOn9mB,KAAOm9mB,EAAOn9mB,KAAO,EAClFrtI,EAAIwqvB,EAAOxqvB,EAAIwqvB,EAAOxqvB,EAAIwqvB,EAAOz2mB,IAAMy2mB,EAAOz2mB,IAAMy2mB,EAAOiU,IAAMjU,EAAOiU,IAAM,EAC9Ep6vB,EAAQmmvB,EAAOnmvB,MAAQmmvB,EAAOnmvB,MAAQmmvB,EAAOtjC,MAAQsjC,EAAOtjC,MAAQ,EACpEz4kB,EAAS+7mB,EAAO/7mB,OAAS+7mB,EAAO/7mB,OAAS+7mB,EAAOrjC,OAASqjC,EAAOrjC,OAAS,EAC7E,OAAI8rW,EACO,CAAEhsjC,EAAGphB,KAAKo8mC,oBAAoBlimC,GAAI2E,EAAG7e,KAAKo8mC,oBAAoBjimC,GAAIqtI,KAAMxnJ,KAAKo8mC,oBAAoBlimC,GAAI0+vB,IAAK54wB,KAAKo8mC,oBAAoBjimC,GAAImntB,OAAQthuB,KAAKo8mC,oBAAoBxz9B,GAASy4kB,MAAOrhuB,KAAKo8mC,oBAAoB59lC,IAGjN,CAAE4C,EAAGlH,EAAG2E,EAAG1E,EAAGqtI,KAAMttI,EAAG0+vB,IAAKz+vB,EAAGmntB,OAAQ14kB,EAAQy4kB,MAAO7itB,EAGzE,CACJ,EAEA6+jC,EAAc1skC,UAAUyrmC,oBAAsB,SAAU9/lC,GACpD,MAAiB,IAATA,CACZ,EAEA+gkC,EAAc1skC,UAAU0qmC,oBAAsB,SAAU77oB,GACpD,GAAIA,EAAQ,CACR,IAAItld,EAAIsld,EAAOtld,EAAIsld,EAAOtld,EAAIsld,EAAOp+c,EAAIo+c,EAAOp+c,EAAI,EAChDjH,EAAIqld,EAAOrld,EAAIqld,EAAOrld,EAAIqld,EAAO3gd,EAAI2gd,EAAO3gd,EAAI,EACpD,MAAO,CAAEuC,EAAGlH,EAAG2E,EAAG1E,EAAGqtI,KAAMttI,EAAG0+vB,IAAKz+vB,EACvC,CACJ,EAEAkjkC,EAAc1skC,UAAUwnmC,eAAiB,SAAUh5+B,EAAYmH,GAC3D,GAAInH,GAAcmH,EAAU,CAExB,IAAIox+B,EAAgB,CAAC,EAerB,OAdAA,EAAcC,oBAAsBx4+B,EAAW416B,oBAC/C2iE,EAAcnB,OAASjw+B,EAASw5mB,OAChC43X,EAAcI,2BAA6B34+B,EAAWms8B,2BACtDosC,EAAcK,mBAAqB54+B,EAAWqk7B,mBAC9Ck0D,EAAcM,WAAa74+B,EAAWgjsB,WACtCu1S,EAAcjF,aAAens+B,EAAS25mB,aACtCy3X,EAAcr+P,QAAUl6uB,EAAWm4U,QACnCogqB,EAAcf,KAAOrw+B,EAASwmoB,KAC9B4qW,EAAc3C,UAAYzu+B,EAAS2g7B,UACnCywD,EAAc/E,SAAWrs+B,EAASA,SAClCox+B,EAAc39jC,MAAQusF,EAASkw+B,OAAOpvmC,MACtCswmC,EAAchB,WAAapw+B,EAASkw+B,OAAOC,WAC3CiB,EAAcU,WAAaj5+B,EAAW66W,WACtC09nB,EAAc2E,OAAS/1+B,EAAS4i7B,OACzBwuD,CACX,CACJ,EAKAr6B,EAAc1skC,UAAU4sb,YAAc,WAClC,GAAIzwH,KAAY,CAEZ,IAAIwvyB,EAAuBt8mC,KAAKipiC,UAAU9zhC,QAAQykB,cAAc,IAAM55B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,cAE9FmmlC,GAAwBA,EAAqBhykC,mBAAqBgykC,EAAqBhykC,kBAAkBA,mBACzGgykC,EAAqBhykC,kBAAkBA,kBAAkBphC,MAEjE,CACJ,EAKAm0kC,EAAc1skC,UAAU41iC,6BAA+B,SAAU3rC,GAC7D56gC,KAAKipiC,UAAU39sB,wBAAyB,EACxCtrV,KAAKipiC,UAAUw/D,iBAAmB7tF,EAClC56gC,KAAKipiC,UAAU39sB,wBAAyB,CAC5C,EAIA+xvB,EAAc1skC,UAAU4rmC,0BAA4B,WAChD,IAAIp+0B,EAAmBntQ,OAAOmtQ,iBAC9B,OAAK8oD,GAAQM,SAIiB,EAHnBppD,CAKf,EAIAk/yB,EAAc1skC,UAAU6rmC,aAAe,SAAU5t+B,GAC7C,IAAImywB,EAAa/g5B,KAAKwqiC,gBAClBm8C,EAAY/38B,GAAc,EAE1BuvJ,EAAmBn+R,KAAKu8mC,4BAO5B,OANKt1xB,GAAQM,UAAaN,GAAQM,UAAYw5jB,GAAc,GAChD4lM,EAAYxozB,EAGZwozB,CAGhB,EAIAtJ,EAAc1skC,UAAU8rmC,8BAAgC,SAAUxD,EAAQ92S,EAAYx9D,EAAQ+3W,GAE1F,IAAIxrW,EAActtwB,KAAK8Y,IAAIu8lC,GACvB0D,EAAc38mC,KAAK+1a,SAASxpZ,SAAS41yB,EAAWrrzB,WAAY,KAUhE,OARI4lmC,IAAqBC,EAAYpqsB,UACjC2+V,EAAclxwB,KAAK48mC,iBAAiBF,EAAkBv6S,GACtDni0B,KAAKyilC,eAAgB,IAGrBvxU,EAAc,EACdlxwB,KAAKyilC,eAAgB,GAEL,IAAhBvxU,EACO,CAAE9vvB,EAAGu7lC,EAAYn+lC,MAAQmmvB,EAAO9lvB,EAAI8lvB,EAAOrjC,OAAQzitB,EAAG8lvB,EAAOvjvB,EAAGkgtB,OAAQqjC,EAAOtjC,MAAOA,MAAOsjC,EAAOrjC,QAEtF,IAAhB4vC,EACE,CAAE9vvB,EAAGu7lC,EAAYn+lC,MAAQmmvB,EAAOvjvB,EAAIujvB,EAAOtjC,MAAOxitB,EAAG89lC,EAAY/z9B,OAAS+7mB,EAAO9lvB,EAAI8lvB,EAAOrjC,OAAQA,OAAQqjC,EAAOrjC,OAAQD,MAAOsjC,EAAOtjC,OAE3H,IAAhB6vC,EACE,CAAE9vvB,EAAGujvB,EAAO9lvB,EAAGA,EAAG89lC,EAAY/z9B,OAAS+7mB,EAAOvjvB,EAAIujvB,EAAOtjC,MAAOC,OAAQqjC,EAAOtjC,MAAOA,MAAOsjC,EAAOrjC,QAGpGqjC,CAEf,EACA04U,EAAc1skC,UAAUismC,iBAAmB,SAAUF,EAAkBv6S,GACnE,IAAIw6S,EAAc38mC,KAAK+1a,SAASxpZ,SAAS41yB,EAAWrrzB,WAAY,KAGhE,GAAyB,KAFzB4lmC,EAAmB94mC,KAAK8Y,IAAIggmC,IAGxB,OAAqBC,EAAYpqsB,SAEhC,GAAyB,IAArBmqsB,GAA+C,KAArBA,EAAyB,CACxD,GAA4B,GAAxBC,EAAYpqsB,SACZ,OAAqB,EAEpB,GAA6B,IAAzBoqsB,EAAYpqsB,SACjB,OAAqB,EAEpB,GAA6B,IAAzBoqsB,EAAYpqsB,SACjB,OAAqB,CAE7B,MACK,GAAyB,IAArBmqsB,GAA+C,MAArBA,EAA0B,CACzD,GAA4B,GAAxBC,EAAYpqsB,SACZ,OAAqB,EAEpB,GAA6B,IAAzBoqsB,EAAYpqsB,SACjB,OAAqB,EAEpB,GAA6B,IAAzBoqsB,EAAYpqsB,SACjB,OAAqB,CAE7B,MACK,GAAyB,IAArBmqsB,GAA+C,MAArBA,EAA0B,CACzD,GAA4B,GAAxBC,EAAYpqsB,SACZ,OAAqB,EAEpB,GAA6B,IAAzBoqsB,EAAYpqsB,SACjB,OAAqB,EAEpB,GAA6B,IAAzBoqsB,EAAYpqsB,SACjB,OAAqB,CAE7B,CACJ,EAIA8qqB,EAAc1skC,UAAUksmC,sBAAwB,SAAU5D,EAAQ92S,EAAY+hQ,EAAcw4C,GAExF,IAKIp2wB,EALA4qa,EAActtwB,KAAK8Y,IAAIu8lC,GACvB6D,EAAU,GACVH,EAAc38mC,KAAK+1a,SAASxpZ,SAAS41yB,EAAWrrzB,WAAY,KAM5Do6vB,EADAwrW,IAAqBC,EAAYpqsB,SACnBvya,KAAK48mC,iBAAiBF,EAAkBv6S,GAGxC,EAElB,IAAK,IAAInyzB,EAAI,EAAGA,EAAIk0jC,EAAa9gkC,OAAQ4M,IACrC,GAAoB,IAAhBkhwB,EAGA5qa,EAAQ,CAAEpsV,EAFNgqjC,EAAa33iC,SAASvc,EAAE8G,WAAY,KAAK+H,EAAI89lC,EAAYn+lC,MAAQ0ljC,EAAa33iC,SAASvc,EAAE8G,WAAY,KAAK+H,EAAI89lC,EAAYn+lC,MAAQ0ljC,EAAa33iC,SAASvc,EAAE8G,WAAY,KAAKqD,EAE/JA,EADZ+pjC,EAAa33iC,SAASvc,EAAE8G,WAAY,KAAKsK,EAAI8ijC,EAAa33iC,SAASvc,EAAE8G,WAAY,KAAKsK,EAAI8ijC,EAAa33iC,SAASvc,EAAE8G,WAAY,KAAKoD,GAEvI4imC,EAAQ1wmC,KAAKk6V,QAEZ,GAAoB,IAAhB4qa,EAAmB,CAGxB,IAAI6rW,EAAU,CAAE7imC,EAFZgqjC,EAAa33iC,SAASvc,EAAE8G,WAAY,KAAKsK,EAAIu7lC,EAAYn+lC,MAAQ0ljC,EAAa33iC,SAASvc,EAAE8G,WAAY,KAAKsK,EAAIu7lC,EAAYn+lC,MAAQ0ljC,EAAa33iC,SAASvc,EAAE8G,WAAY,KAAKoD,EAEzJC,EADlB+pjC,EAAa33iC,SAASvc,EAAE8G,WAAY,KAAK+H,EAAI89lC,EAAY/z9B,OAASs76B,EAAa33iC,SAASvc,EAAE8G,WAAY,KAAK+H,EAAI89lC,EAAY/z9B,OAASs76B,EAAa33iC,SAASvc,EAAE8G,WAAY,KAAKqD,GAEjL2imC,EAAQ1wmC,KAAK2wmC,EACjB,MACK,GAAmB,GAAf7rW,EAGL5qa,EAAQ,CAAEpsV,EAFNgqjC,EAAa33iC,SAASvc,EAAE8G,WAAY,KAAK+H,EAAIqljC,EAAa33iC,SAASvc,EAAE8G,WAAY,KAAK+H,EAAIqljC,EAAa33iC,SAASvc,EAAE8G,WAAY,KAAKqD,EAEvHA,EADZ+pjC,EAAa33iC,SAASvc,EAAE8G,WAAY,KAAKsK,EAAIu7lC,EAAY/z9B,OAASs76B,EAAa33iC,SAASvc,EAAE8G,WAAY,KAAKsK,EAAIu7lC,EAAY/z9B,OAASs76B,EAAa33iC,SAASvc,EAAE8G,WAAY,KAAKoD,GAEjL4imC,EAAQ1wmC,KAAKk6V,OAEZ,CAGD,IAAI02wB,EAAU,CAAE9imC,EAFZgqjC,EAAa33iC,SAASvc,EAAE8G,WAAY,KAAKsK,EAAI8ijC,EAAa33iC,SAASvc,EAAE8G,WAAY,KAAKsK,EAAI8ijC,EAAa33iC,SAASvc,EAAE8G,WAAY,KAAKoD,EAEjHC,EADlB+pjC,EAAa33iC,SAASvc,EAAE8G,WAAY,KAAK+H,EAAIqljC,EAAa33iC,SAASvc,EAAE8G,WAAY,KAAK+H,EAAIqljC,EAAa33iC,SAASvc,EAAE8G,WAAY,KAAKqD,GAEvI2imC,EAAQ1wmC,KAAK4wmC,EACjB,CAEJ,OAAOF,CACX,EAIAz/B,EAAc1skC,UAAUssmC,oBAAsB,SAAU/ykC,GAGpD,MADgB,yFACC/gB,KAAK+gB,EAC1B,EAIAmziC,EAAc1skC,UAAUusmC,qBAAuB,SAAUhzkC,GAGrD,MADuB,gCACC/gB,KAAK+gB,EACjC,EACOmziC,CACX,CAj2VmC,GChD/B8/B,IAA4B,WAQ5B,SAASA,EAAW3sD,EAAQ/hgC,GAExBzuD,KAAKo9mC,iBAAmB,CAAC,EAEzBp9mC,KAAKq9mC,mBAAqB,CAAC,EAC3Br9mC,KAAKs9mC,kBAAmB,EACxBt9mC,KAAKu9mC,uBAAyB,GAC9Bv9mC,KAAKw9mC,sBAAwB,EAC7Bx9mC,KAAKy9mC,gBAAiB,EAKtBz9mC,KAAKm3lC,mBAAqB,GAC1Bn3lC,KAAK09mC,qBAAsB,EAK3B19mC,KAAKo3lC,yBAA2B,GAChCp3lC,KAAKkgc,cAAgB,GAKrBlgc,KAAKq3lC,iBAAmB,GACxBr3lC,KAAKipiC,UAAYunB,EACjBxwjC,KAAKkpiC,cAAgBz6+B,CACzB,CA+yFA,OA1yFA0ujC,EAAWxsmC,UAAUqwlC,iBAAmB,SAAUlrrB,EAAW6nsB,GAazD,GAZA39mC,KAAK49mC,YAAc,EACnB59mC,KAAK69mC,aAAe,GAE8B,IAA9C79mC,KAAKq3lC,iBAAiB1slC,QAAQmra,IAAsB6nsB,EAOpD39mC,KAAKkqC,KAAOlqC,KAAKkpiC,cAAco/D,0BAA0B,gBANzDtomC,KAAKkqC,KAAOlqC,KAAKkpiC,cAAco/D,0BAA0B,iBACpDtomC,KAAKkqC,MAAsB,OAAdlqC,KAAKkqC,OACnBlqC,KAAKkqC,KAAOlqC,KAAKkpiC,cAAco/D,0BAA0B,iBAM7DtomC,KAAKkqC,KAAM,CAEXlqC,KAAKim1B,eAAiBx1yB,KAAKuL,MAAMh8C,KAAKkqC,MACtC,IAAIw//B,EAAYx4gC,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,cAAgB2/Y,GAChFk0nB,EAAgB94gC,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,eAAiB2/Y,GACrFlrZ,OAAQ,EACZ,GAA4B,OAAxB5qB,KAAKim1B,gBAA6C,OAAlB+jN,GAAwC,OAAdN,EAAoB,CAE9E,IADA,IAAI3vtB,GAAO,EACF5tU,EAAI,EAAGA,EAAInM,KAAKim1B,eAAe7i1B,OAAQ+I,IAAK,CACjD,IAAIo/jC,EAAYvrkC,KAAKim1B,eAAe950B,IAC/B4tU,GAAQhO,GAAkBw/vB,EAAUknB,kBAAoBlnB,EAAUhmB,YAAczvoB,IACjFlrZ,EAAQ2B,SAASg/iC,EAAUmnB,UAAU9hlC,MAAM26jC,EAAUmnB,UAAUv7iC,YAAY,KAAO,IAClF4iS,GAAO,EAEf,EACkD,IAA9C/5U,KAAKq3lC,iBAAiB1slC,QAAQmra,IAC9B91a,KAAKq3lC,iBAAiBjrlC,KAAK0pa,GAyN/B,IAvNA,IAsNmBwkD,EAAc42S,EAtN7Bzkc,EAAU,SAAU6kH,GAEpB,IAAIipK,EAAcp/P,EAAO8qf,eAAe30Z,GACxC,GAA8B,KAA1BipK,EAAYm4f,UAAkB,CAC1Bn4f,EAAYujhB,iBACZvjhB,EAAYkrd,KAAO,gBAGvB,IAAIlhlB,EAAOg2H,EAAkB,KAC7B,GAAIp/P,EAAO8tsB,UAAU0gB,cACjB,GAAIj5gC,WAAW6pjB,EAAuB,YAAMzkL,EAAW,CACnD,IAAI0sC,OAAa,EACbg0H,OAAY,EACZv3R,OAAW,EACF,OAATslL,GAAiBA,EAAK+8P,SACtB9+Q,EAAa+hB,EAAKkhlB,KACdlhlB,EAAK58G,SACL6uN,EAAY,UAEZjyG,EAAKtqH,OACLu8N,EAAY,QAEZjyG,EAAK+4S,YACL9mM,EAAY,iBAEZjyG,EAAK7sG,YACL8+M,EAAY,aAEhBv3R,EAAWk8C,EAAOo0sB,oBAAoBhrkB,EAAKm9d,OAE/C,IAAIhpL,EAA0C,IAA1Bn+K,EAAYzpV,UAAkB,QAAqC,IAA1BypV,EAAYzpV,UAAkB,SAAW,OAClG8sN,EAAkB28H,EAAuB,UACzCoqK,EAASpqK,EAAwB,WACjC5jB,EAAY,QAAU/4G,EAAgB1+c,EAAI,IAAM0+c,EAAgBz/c,EAAI,IAAMy/c,EAAgBj9c,EAA9E,OACkB,IAA9B45kB,EAAYwjhB,gBACZpniB,EAAY,iBAIE,eAFlBA,EAAYx7O,EAAO6ixB,UAAUrniB,MAGzBA,EAAY,aAGhB,IAAI1rE,EAAYsvF,EAAuB,UAKnC0jhB,EAAa,CAAEt6+B,KAJRw3N,EAAOo0sB,oBAAoB5qS,EAAOvjvB,GAId8sI,IAHnBitM,EAAOo0sB,oBAAoB5qS,EAAO9lvB,GAGHL,MAF/B28U,EAAOo0sB,oBAAoB5qS,EAAOtjC,OAEWz4kB,OAD5CuyM,EAAOo0sB,oBAAoB5qS,EAAOrjC,SAE3C48Y,GAAiB,EACjBC,EAAmB,EACS,IAA5B5jhB,EAAsB,UACgB,KAAlCA,EAA2B,gBAA+C,MAAlCA,EAA2B,gBAAgD,MAAlCA,EAA2B,gBAC5G0jhB,EAAa9ixB,EAAOyotB,UAAUq6D,EAAYnosB,EAAW,EAAGoosB,KAI5DA,GAAiB,EACjBD,EAAa9ixB,EAAOyotB,UAAUq6D,EAAYnosB,EAAW,EAAGoosB,GACxDC,EAAmBhjxB,EAAOijxB,SAAStosB,IAEvC,IAAIuosB,EAAY,QAAUpzmB,EAAU/rf,EAAI,IAAM+rf,EAAU9sf,EAAI,IAAM8sf,EAAUtqf,EAA5D,MAChB09lC,EAAYljxB,EAAO6ixB,UAAUK,GAC7B,IAAI96S,EAAchpO,EAAyB,YACvC+jhB,EAAY,QAAU/6S,EAAYrkzB,EAAI,IAAMqkzB,EAAYplzB,EAAI,IAAMolzB,EAAY5izB,EAAlE,MAChB29lC,EAAYnjxB,EAAO6ixB,UAAUM,GAC7B,IAAI3ixB,EAAc4+P,EAAyB,YAC3Cp/P,EAAO+kG,cAAgB,GACvBo6B,EAAe,GAEXA,EADqB,gBAArBigI,EAAYkrd,MAA+C,aAArBlrd,EAAYkrd,KACnClrd,EAAkB,KAAIA,EAAkB,KAAIA,EAAmB,MAG/DA,EAAkB,KAErC,IAAIgkhB,EAAkB,CAClB55W,OAAQ,CAAEvjvB,EAAG68lC,EAAWt6+B,KAAM9kH,EAAGo/lC,EAAW/v9B,IAAKmzkB,MAAO48Y,EAAWz/lC,MAAO8itB,OAAQ28Y,EAAWr19B,QAAUu5qB,WAAYzxxB,WAAW6pjB,EAAuB,WAAK,EAAG71lB,KAAM61lB,EAA6B,gBAAGruK,QAASquK,EAAqB,QACjO34lB,MAAO04d,EAAckkpB,aAAcjkhB,EAA0B,aAAGvuK,UAAWuuK,EAAsB,SAAG5+J,WAAY4+J,EAAsB,SAAG/3I,WAAYA,EAAYg0H,UAAWA,EAAW54G,gBAAiB+4G,EAAWlgd,MAAO4n/B,EAAW96S,YAAa+6S,EAAWlwK,UAAWzymB,EAAa18C,SAAUA,EAAUw/zB,YAAalkhB,EAAYmkhB,UAAWxtW,YAAaitW,EAC1VjhpB,WAAYq9H,EAAwB,WAAGhglB,WAAYgglB,EAAwB,WAAGv+U,UAAW08f,EAAe55vB,QAASq8U,EAAOwjxB,cAAcpkhB,GAAcr6J,cAAe/kG,EAAO+kG,cAAetyX,UAAW2shB,EAAYqkhB,UAAWr32B,WAAoC,IAAxBgzV,EAAYskhB,QAAgB,SAAW,UAAWt6oB,KAAM,CAAEuxG,UAAW/pQ,GAAkBw4J,IAAQA,EAAK58G,OAAgBkuN,QAAS9pQ,GAAkBw4J,IAAQA,EAAKtqH,KAAckxsB,aAAcp/uB,GAAkBw4J,IAAQA,EAAK+4S,UAAmBvnM,aAAchqQ,GAAkBw4J,IAAQA,EAAK7sG,WAAqBonvB,cAAevkhB,EAAYwjhB,eAE7iBxjhB,EAAYpkkB,KAAMglU,EAAO8tsB,UAAU0nC,qBAAqBr/oB,IAASvlH,GAAkBwuR,EAA6B,mBACjHgkhB,EAAgBpolC,GAAKglU,EAAO8tsB,UAAU0nC,qBAAqBr/oB,GAAKn7Z,IAE3C,aAArBokkB,EAAYkrd,MAA4C,YAArBlrd,EAAYkrd,OAC/C84D,EAAgB38mC,MAAQ24lB,EAA2B,eAGvD,IAAIwkhB,EAAY5jxB,EAAO6jxB,iBAAiBzkhB,GACxC,IAAyB,kBAArBA,EAAYkrd,MAAiD,mBAArBlrd,EAAYkrd,QAC/C15uB,GAAkBovB,EAAO6jxB,iBAAiBzkhB,IAAe,CAC1D,GAAIA,EAAY0khB,WAAY,CACxB,IAAI7wK,EAAYmwK,EAAgBnwK,UAChCA,EAAYA,EAAY,EAAIA,EAAY,EACxCmwK,EAAgBnwK,UAAYA,CAChC,CACA,IAAI8wK,EAAgB/jxB,EAAO8tsB,UAAUyiC,mBAAmByzC,aAAaJ,EAAWR,GAAiB,EAAOA,EAAgBpolC,IACpH+olC,GAAiBA,EAAcrp1B,gBAC/B0kU,EAAYpkkB,GAAK+olC,EAAcrp1B,cAAc1/P,GAAGxD,MAAM,KAAK,IAE3DuslC,GAAoD,WAAnCA,EAAc/4mC,MAAMohQ,aACrC232B,EAAc/1kC,WAAW,GAAGv6B,UAAW,EAE/C,CAEc,mBAAdmwmC,GAAgD,iBAAdA,IAClC5jxB,EAAOikxB,iBAAiB7khB,EAAa3vkB,GAChCmhT,GAAkBwuR,EAAYo+L,SAC/Bx9b,EAAOkkxB,qBAAqB9khB,EAAa7pjB,WAAW6pjB,EAAuB,WAAK,EAAG,KAAM2jhB,GACzF/ixB,EAAOuixB,qBAAsB,EAC7B9ylC,MAG4B,OAAhC2vkB,EAAYk4f,iBAA6N,IAAjMt3vB,EAAO8qf,eAAe7/0B,QAAO,SAAUmvB,GAAQ,OAAOA,EAAKm9jC,UAAUloiC,SAAS+viB,EAAYm4f,UAAUrilC,QAAQ,OAAQ,IAAM,IAAGjK,QAAO,SAAUxE,GAAS,MAAqB,OAAdA,EAAM6jjC,IAAe,IAAGrijC,SAC9N+3V,EAAOkkxB,qBAAqB9khB,EAAa7pjB,WAAW6pjB,EAAuB,WAAK,EAAG,KAAM2jhB,GACzF/ixB,EAAO+tsB,cAAcuU,gBAAgBgH,mBAAmB3uoB,EAAWykL,GACnEp/P,EAAOuixB,qBAAsB,EAC7B9ylC,KAEJuwU,EAAO+tsB,cAAc+0C,wBAAyB,CAClD,OAIA,GAAIvtiC,WAAW6pjB,EAAuB,YAAMzkL,EAAW,CAEnD,IAAI12T,EAAQ+7O,EAAOmkxB,iBAAiB/khB,EAAazkL,EAAWwb,EAAK,KAAM1ma,GACnE20lC,EAAanggC,EAAMoggC,aACnBC,EAAYrggC,EAAMx0F,MAClBszlC,GAAiB,EAOrB,GANoC,OAAhC3jhB,EAAYk4f,iBAA6N,IAAjMt3vB,EAAO8qf,eAAe7/0B,QAAO,SAAUmvB,GAAQ,OAAOA,EAAKm9jC,UAAUloiC,SAAS+viB,EAAYm4f,UAAUrilC,QAAQ,OAAQ,IAAM,IAAGjK,QAAO,SAAUxE,GAAS,MAAqB,OAAdA,EAAM6jjC,IAAe,IAAGrijC,SAC9N+3V,EAAOkkxB,qBAAqB9khB,EAAa7pjB,WAAW6pjB,EAAuB,WAAK,EAAG,KAAM2jhB,GACzF/ixB,EAAO+tsB,cAAcuU,gBAAgBgH,mBAAmB3uoB,EAAWykL,GACnEp/P,EAAOuixB,qBAAsB,EAC7B9ylC,KAEA20lC,EAAY,CAEZ,IAAIjwhB,EAAan0P,EAAOukxB,oBAAoBnlhB,EAAazkL,GAIrD6psB,GAFAh7W,EAASpqK,EAAwB,WAExBA,EAAkB,MAuB/B,GArBA22K,EAAc,EACkB,IAA5B32K,EAAsB,UACtB2jhB,GAAiB,EACjBhtW,EAAc/1a,EAAOijxB,SAAStosB,GAC1Bw5K,EACAA,EAAWnplB,MAAMoyD,UAAY,UAAY24sB,EAAc,OAGvDquW,EAAWp5mC,MAAMoyD,UAAY,UAAY24sB,EAAc,QAIvD5hL,EACAA,EAAWnplB,MAAMoyD,UAAY,UAAY24sB,EAAc,OAGvDquW,EAAWp5mC,MAAMoyD,UAAY,UAAY24sB,EAAc,OAG/D/1a,EAAOykxB,cAAcL,EAAY56W,EAAQg7W,EAAQ7psB,EAAW,EAAGoosB,GAC/DqB,EAAWM,aAAetlhB,EAAYslhB,aAClCN,EAAWM,aAAc,CACzB,IAAI9+N,EAAa5ljB,EAAO+tsB,cAAcsB,gBAElCs1E,EAAWvzlC,SAASgzlC,EAAWp5mC,MAAMqY,OAAS+gmC,EAAW3xiC,UAAcl9B,WAAW6ukC,EAAWp5mC,MAAM84S,UAAY,EAAO,GAAM8hmB,EAEhIw+N,EAAWp5mC,MAAM45mC,cAAqBD,EAAS,KAC/CP,EAAWp5mC,MAAMq8c,WAAa,YAC9B+8pB,EAAWp5mC,MAAMm8R,YAAew90B,EAAS,EAAK,IAClD,CAEAvlhB,EAAsB,SAAIp/P,EAAO8tsB,UAAU9zhC,QAAQghB,GAAK,SAAW2/Y,EAAY,IAAMwb,EACrF,IAAK,IAAIthb,EAAI,EAAGA,EAAImrV,EAAO8tsB,UAAU0nC,qBAAqBvtkC,OAAQ4M,IACrC,SAApBuvmC,EAAW3ymC,MAAuC,aAApB2ymC,EAAW3ymC,MAA2C,aAApB2ymC,EAAW3ymC,MAA6C,mBAArB2tlB,EAAYkrd,MAC5Glrd,EAAsB,WAAMp/P,EAAO8tsB,UAAU0nC,qBAAqB3gkC,GAAGmmB,KACrEglU,EAAO8tsB,UAAU0nC,qBAAqB3gkC,GAAGpO,MAAQ24lB,EAAkB,MAI3ExuR,GAAkBwuR,EAAYo+L,SAC9Bp+L,EAAYo+L,MAAQp+L,EAAkB,MAEtCA,EAAYylhB,SACZ7kxB,EAAO8kxB,WAAW1lhB,EAAYylhB,QAAST,GAE3CpkxB,EAAO+kxB,sBAAsBX,EAAYzpsB,EAAWwb,EAAKipK,EAAa2jhB,GACtE/ixB,EAAOglxB,gBAAgB5lhB,EAAaglhB,GACpCpkxB,EAAOilxB,cAAc7lhB,EAAaglhB,EAAYzpsB,GAC9C36E,EAAOklxB,qBAAqB9lhB,EAAaglhB,GACzCpkxB,EAAOmlxB,kBAAkBf,GACzBpkxB,EAAOolxB,2BAA2BhmhB,GAC9BjL,GACAA,EAAW59jB,YAAY6tlC,GACvB71E,EAAUh4gC,YAAY49jB,KAGtBiwhB,EAAWp5mC,MAAM+jF,SAAW,WAC5Bw/8B,EAAUh4gC,YAAY6tlC,IAE1BA,EAAWjklC,iBAAiB,QAAS6/T,EAAOqlxB,gBAAgB3gnC,KAAKs7V,IACjEokxB,EAAWjklC,iBAAiB,OAAQ6/T,EAAOslxB,eAAe5gnC,KAAKs7V,IAC/DokxB,EAAWjklC,iBAAiB,QAAS6/T,EAAOulxB,iBAAiB7gnC,KAAKs7V,IAClEokxB,EAAWjklC,iBAAiB,SAAU6/T,EAAOwlxB,iBAAiB9gnC,KAAKs7V,IACnEokxB,EAAWjklC,iBAAiB,UAAW6/T,EAAOylxB,sBAAsB/gnC,KAAKs7V,IACzEokxB,EAAWjklC,iBAAiB,QAAS6/T,EAAO0lxB,sBAAsBhhnC,KAAKs7V,IACvEvwU,EAAQ60lC,CACZ,CACJ,CAER,CACJ,EACItkxB,EAASn7V,KACJsxb,EAAM,EAAGA,EAAMtxb,KAAKim1B,eAAe7i1B,OAAQkub,IAChD7kH,EAAQ6kH,GAEPtxb,KAAKipiC,UAAU0gB,eAChB34hC,OAAOor0B,eAAerwoB,WAAW/rN,KAAKkpiC,cAAcka,WAAa,eACjEpjjC,KAAKkpiC,cAAcssD,wBAAwBx1lC,KAAKim1B,eAAgB,eAExE,CACJ,CACA,GAAIjm1B,KAAKkpiC,cAAcy5C,cAAgB3ilC,KAAKkpiC,cAAck6C,WAAY,CAClE,IAAIo8B,EAAetulC,SAASg8T,eAAeltV,KAAKkpiC,cAAck6C,WAAWjtjC,IACzE,GAAIqplC,EAAc,CACd,GAA4C,mBAAvCx/mC,KAAKkpiC,cAAck6C,WAAWx2kC,MAAoE,iBAAvC5M,KAAKkpiC,cAAck6C,WAAWx2kC,OAA4B5M,KAAKipiC,UAAUyiC,mBAMrI8zC,EAAap1mC,YAN4I,CACzJ,IAAI+P,EAAIna,KAAKkpiC,cAAck6C,WAAWz+U,OAAOxqvB,EACzCyuI,EAAS5oJ,KAAKkpiC,cAAcnznB,SAASD,GAAWltR,OACpD5oJ,KAAKipiC,UAAU5m6B,SAASy++B,aAAa9gnC,KAAKkpiC,cAAck6C,WAAWttqB,UAAWltR,EAASzuI,EAC3F,CAIAna,KAAKkpiC,cAAcy5C,cAAe,EAClC3ilC,KAAKkpiC,cAAck6C,WAAa,EACpC,CACJ,CACJ,EACA+5B,EAAWxsmC,UAAUsvmC,WAAa,SAAUtzkB,EAAgB3jQ,GAE1C,IAAI9B,IAAQ,CACtBnyR,QAAS43hB,IAGLj0M,SAAS1vD,EACrB,EACAm00B,EAAWxsmC,UAAU8hB,KAAO,SAAUkb,GAClC,OAAOA,EAAIt9B,QAAQ,cAAe,GACtC,EACA8smC,EAAWxsmC,UAAUqtmC,UAAY,SAAUj6jB,GACvC,IAAIg9jB,EAAUh9jB,EAAK78hB,UAAU68hB,EAAKp5iB,QAAQ,MAAMgoB,MAAM,KAClD2wF,EAAI/2F,SAASvsB,KAAKyyB,KAAKsulC,EAAQ,GAAG75lC,UAAU,IAAK,IACjDq8F,EAAIh3F,SAASvsB,KAAKyyB,KAAKsulC,EAAQ,IAAK,IACpC7qmC,EAAIqW,SAASvsB,KAAKyyB,KAAKsulC,EAAQ,IAAK,IACpC9qmC,EAAIy6B,WAAWA,WAAW1wC,KAAKyyB,KAAKsulC,EAAQ,GAAG75lC,UAAU,EAAG65lC,EAAQ,GAAG39mC,OAAS,KAAKs/G,QAAQ,IAC7Fs+/B,EAAW,CACX19/B,EAAExsG,SAAS,IACXysG,EAAEzsG,SAAS,IACXZ,EAAEY,SAAS,IACXlT,KAAKmgB,MAAU,IAAJ9N,GAASa,SAAS,IAAIoQ,UAAU,EAAG,IAQlD,OALA85lC,EAAS36mC,SAAQ,SAAUwsC,EAAM1mC,GACT,IAAhB0mC,EAAKzvC,SACL49mC,EAAS70mC,GAAK,IAAM0mC,EAE5B,IACQ,IAAMmukC,EAASh7mC,KAAK,GAChC,EACAm3mC,EAAWxsmC,UAAUgumC,cAAgB,SAAUpkhB,GAG3C,IAFA,IAAIlyI,EAAWkyI,EAAsB,SACjCz7kB,EAAU,GACL3S,EAAI,EAAGA,EAAIk8c,EAASjld,OAAQ+I,IAC7Bk8c,EAASl8c,KAAOoulB,EAA2B,eAC3Cv6lB,KAAKkgc,cAAc9zb,KAAKD,GAC5B2S,EAAQ1S,KAAK,CAAEugjB,SAAUtkG,EAASl8c,GAAIinb,UAAWi1B,EAASl8c,KAK9D,MAH2C,YAAvCnM,KAAKg/mC,iBAAiBzkhB,KACtBv6lB,KAAKkgc,cAAgBq6J,EAA0B,cAE5Cz7kB,CACX,EAEAq+lC,EAAWxsmC,UAAU+umC,oBAAsB,SAAUx1kC,EAAM4rY,GAEvD,IAAIw5K,EAEJ,GAAqB,YAAjBpljB,EAAW,MAAoC,aAAjBA,EAAW,KAAkB,EAC3DoljB,EAAap+jB,SAASpwB,cAAc,QACzBqF,MAAM8gjB,WAAa,QAC1B/8gB,EAAK21kC,eACLvwhB,EAAWnplB,MAAM8gjB,WAAa,eAGlC,IAAI09M,EAASz6tB,EAAiB,WAE1Bq6b,EAAOr6b,EAAW,KAEtBoljB,EAAWnplB,MAAM+jF,SAAW,WAE5B,IAAIg0hC,GAAiB,EACI,IAArBh0kC,EAAe,WACfg0kC,GAAiB,GAErBl+mC,KAAK4/mC,cAActwhB,EAAYq1K,EAAQpgS,EAAMzuD,EAAW,EAAGoosB,EAC/D,CACA,OAAO5uhB,CACX,EAIA6thB,EAAWxsmC,UAAUytmC,SAAW,SAAUtosB,GAEtC,IAAIvE,EAAQ,EAERorsB,EAAc38mC,KAAKkpiC,cAAcnznB,SAASD,GAC9C,GAAI6msB,GAAeA,EAAYpqsB,SAC3B,OAAQoqsB,EAAYpqsB,UAChB,KAAK,EACDhB,EAAQ,EACR,MACJ,KAAK,EACDA,EAAQ,GACR,MACJ,KAAK,EACDA,EAAQ,IACR,MACJ,KAAK,EACDA,EAAQ,IAIpB,OAAOA,CACX,EACA4rsB,EAAWxsmC,UAAUo3kC,UAAY,WAC7B/nlC,KAAKihnC,wBAAuB,EAChC,EACA9D,EAAWxsmC,UAAUwtiC,cAAgB,WACjCn+iC,KAAKihnC,wBAAuB,EAChC,EACA9D,EAAWxsmC,UAAUswmC,uBAAyB,SAAUC,GACpD,IAQI1B,EARA2B,EAAkBD,EAElBE,EAAkBphnC,KAAKo3lC,yBACvB92C,EAAiBtgjC,KAAKipiC,UAAU0nC,qBAMpC,GAL+B,IAA3BywC,EAAgBh+mC,SAChBg+mC,EAAkBphnC,KAAKqhnC,gBAIvBrhnC,KAAKm7B,eACL,GAAIn7B,KAAKipiC,UAAUyiC,oBACf,IAAK,IAAIv/jC,EAAI,EAAGA,EAAIm0iC,EAAel9iC,OAAQ+I,IAEvC,GADAqzmC,EAAel/D,EAAen0iC,GAC1BnM,KAAKm7B,cAAchF,KAAOqplC,EAAarplC,GAAI,CAC3Cn2B,KAAKm7B,cAAgBjK,SAASg8T,eAAesyxB,EAAarplC,IAC1Dn2B,KAAKshnC,kBAAkBn1mC,EAAGm0iC,EAAel9iC,OAAQ+9mC,GACjD,KACJ,OAIJ,IAASh1mC,EAAI,EAAGA,EAAIi1mC,EAAgBh+mC,OAAQ+I,IAExC,GADAqzmC,EAAex/mC,KAAKipiC,UAAUyiC,mBAAqB01C,EAAgBj1mC,GAAG+7lC,UAAYkZ,EAAgBj1mC,GAC9FnM,KAAKm7B,cAAchF,KAAOqplC,EAAavnxB,SAAU,CACjDj4V,KAAKm7B,cAAgBjK,SAASg8T,eAAesyxB,EAAavnxB,UAC1Dj4V,KAAKshnC,kBAAkBn1mC,EAAGi1mC,EAAgBh+mC,OAAQ+9mC,GAClD,KACJ,OAKJD,IACIlhnC,KAAKipiC,UAAUyiC,oBACf8zC,EAAe4B,EAAgB,IACdjrlC,KACbn2B,KAAKm7B,cAAgBjK,SAASg8T,eAAesyxB,EAAarplC,IAC1Dn2B,KAAKshnC,kBAAkB,EAAGF,EAAgBh+mC,OAAQ+9mC,GAAiB,KAIvE3B,EAAe4B,EAAgB,IACdnpxB,WACbj4V,KAAKm7B,cAAgBjK,SAASg8T,eAAesyxB,EAAavnxB,UAC1Dj4V,KAAKshnC,kBAAkB,EAAGF,EAAgBh+mC,OAAQ+9mC,GAAiB,IAKvF,EACAhE,EAAWxsmC,UAAU2wmC,kBAAoB,SAAUC,EAAuBhlE,EAAgBilE,EAAYC,GAClG,IAAItgE,EAAiBogE,EAChBE,IACGD,EACArgE,IAGAA,KAGe,IAAnB5E,EACAv8iC,KAAK0hnC,qBAAqB,GAGtBvgE,EAAiB5E,GAAkB4E,GAAkB,EACrDnhjC,KAAK0hnC,qBAAqBvgE,GAGtBqgE,EACIrgE,GAAkB5E,GAClBv8iC,KAAK0hnC,qBAAqB,GAI1BvgE,GAAkB,GAClBnhjC,KAAK0hnC,qBAAqBnlE,EAAiB,EAK/D,EACA4gE,EAAWxsmC,UAAU+wmC,qBAAuB,SAAUC,GAClD,IAKInC,EALAoC,EAAeD,EAEfP,EAAkBphnC,KAAKo3lC,yBACvB92C,EAAiBtgjC,KAAKipiC,UAAU0nC,qBAGpC,GAAIixC,EAAethE,EAAel9iC,OAAQ,CACtC,IAAK,IAAI+I,EAAI,EAAGA,EAAIm0iC,EAAel9iC,OAAQ+I,IAAK,CAExC,IAgBI01mC,EAjBR,GAAI7hnC,KAAKipiC,UAAUyiC,oBAGf,GAFqBprB,EAAeshE,GAAczrlC,MAC9C0rlC,EAAqBvhE,EAAen0iC,IACEgqB,GAAI,CAC1C,IAAI2/Y,EAAY+rsB,EAAmB/rsB,WAAa,EAAI+rsB,EAAmB/rsB,UAAY+rsB,EAAmB1/S,WACvFni0B,KAAKipiC,UAAUgb,iBAAiB69D,mBAAmBhssB,KAE9D91a,KAAKipiC,UAAUz2M,WAAWzmL,SAASj2P,EAAY,GAC/C91a,KAAKghmC,iBAAiBlrrB,GAAW,IAErC91a,KAAKm7B,cAAgBjK,SAASg8T,eAAe20xB,EAAmB1rlC,IAChEqplC,EAAeqC,EACf,KACJ,OAKA,IAFqB7hnC,KAAKipiC,UAAUyiC,mBAAqB01C,EAAgBQ,GAAc1Z,UAAUjwwB,SAAWmpxB,EAAgBQ,GAAc3pxB,aACtI4pxB,EAAqB7hnC,KAAKipiC,UAAUyiC,mBAAqB01C,EAAgBj1mC,GAAG+7lC,UAAYkZ,EAAgBj1mC,IAClE8rV,SAAU,CAChD,IAAI8ttB,EAAc87D,EAAmBt8D,WAAa,EAAIs8D,EAAmBt8D,UAAYs8D,EAAmB1/S,WACvFni0B,KAAKipiC,UAAUgb,iBAAiB69D,mBAAmB/7D,KAEhE/ljC,KAAKipiC,UAAUz2M,WAAWzmL,SAASg6Y,EAAc,GACjD/ljC,KAAKghmC,iBAAiBj7C,GAAa,IAEvC/ljC,KAAKm7B,cAAgBjK,SAASg8T,eAAe20xB,EAAmB5pxB,UAChEunxB,EAAeqC,EACf,KACJ,CAER,CACA,GAA2B,OAAvB7hnC,KAAKm7B,cAAwB,CAC7B,IAAI4mlC,EAAcvC,EAAaj6D,WAAa,EAAIi6D,EAAaj6D,UAAYi6D,EAAar9S,WACtFni0B,KAAKipiC,UAAUz2M,WAAWzmL,SAASg2c,GACnC/hnC,KAAKm7B,cAAgBjK,SAASg8T,eAAesyxB,EAAavnxB,SAC9D,CACIj4V,KAAKm7B,gBACgC,8CAAjCn7B,KAAKm7B,cAAcp6B,WAA+Df,KAAKipiC,UAAUyiC,mBAI3D,oCAAjC1rkC,KAAKm7B,cAAcp6B,WAAoF,8CAAjCf,KAAKm7B,cAAcp6B,YAC1Ff,KAAKipiC,UAAUyiC,mBACfx6iC,SAASg8T,eAAeltV,KAAKm7B,cAAchF,IAAI0/P,cAAczrR,QAG7D8mB,SAASg8T,eAAeltV,KAAKm7B,cAAchF,IAAI/rB,UARnD8mB,SAASg8T,eAAeltV,KAAKm7B,cAAchF,IAAI/rB,QAC/CpK,KAAKipiC,UAAUz+sB,OAAO,CAACxqV,KAAKm7B,cAAchF,IAAK,OAW3D,CACJ,EAIAgnlC,EAAWxsmC,UAAU68lB,SAAW,SAAUr3kB,GACjCA,GAMDn2B,KAAKu9b,cACkBrsa,SAASg8T,eAAe/2T,GAC9B+xP,UAAU90P,IAAI,yBAP3BpzB,KAAKm7B,eACLjK,SAASg8T,eAAeltV,KAAKm7B,cAAchF,IAAI/rB,OAQ3D,EAIA+ymC,EAAWxsmC,UAAU4sb,YAAc,WAC/B,GAAIv9b,KAAKo3lC,yBAA0B,CAE/B,IAAIgqB,EAAkBphnC,KAAKo3lC,yBACI,IAA3BgqB,EAAgBh+mC,SAChBg+mC,EAAkBphnC,KAAKqhnC,gBAE3B,IAAK,IAAIl1mC,EAAI,EAAGA,EAAInM,KAAKo3lC,yBAAyBh0lC,OAAQ+I,IAAK,CAC3D,IAAI61mC,EAAmBhinC,KAAKipiC,UAAUyiC,mBAAqB1rkC,KAAKo3lC,yBAAyBjrlC,GAAG+7lC,UAAUjwwB,SAAWj4V,KAAKo3lC,yBAAyBjrlC,GAAG8rV,SAC9IghvB,EAAmB/njC,SAASg8T,eAAe80xB,GAC3C/oC,GACAA,EAAiB/wzB,UAAU/0P,OAAO,uBAE1C,CACInzB,KAAKipiC,UAAUsR,iBAAiBp/gC,eAChCn7B,KAAKipiC,UAAUsR,iBAAiBp/gC,cAAc+sP,UAAU/0P,OAAO,uBAEvE,CACJ,EAEAgqlC,EAAWxsmC,UAAU0wmC,aAAe,WAQhC,OAPIrhnC,KAAKipiC,UAAUyiC,mBACf1rkC,KAAKo3lC,yBACDp3lC,KAAKipiC,UAAUyiC,mBAAmBu2C,yBAAyBjinC,KAAKo3lC,0BAGpEp3lC,KAAKo3lC,yBAA2Bp3lC,KAAKkinC,wBAElClinC,KAAKo3lC,wBAChB,EACA+lB,EAAWxsmC,UAAUuxmC,sBAAwB,WAEzC,IAEI3nhB,EAFArwjB,EAAOlqC,KAAKkpiC,cAAco/D,0BAA0B,eAGxD,GAAIp+jC,EAGA,IADA,IAAI+7yB,EAAiBx1yB,KAAKuL,MAAM9R,GACvB/9B,EAAI,EAAGA,EAAI850B,EAAe7i1B,OAAQ+I,IAEd,oBADzBoulB,EAAc0rP,EAAe950B,IACbs5iC,MAAkD,iBAArBlrd,EAAYkrd,OAErDlrd,EAAsB,SAAIv6lB,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,SAAWokkB,EAAYgrd,UAAY,IAAMp5iC,EAC/FnM,KAAKo3lC,yBAAyBhrlC,KAAK650B,EAAe950B,KAI9D,OAAOnM,KAAKo3lC,wBAChB,EAIA+lB,EAAWxsmC,UAAUggkC,qBAAuB,WAExC,IAAIzmiC,EAAOlqC,KAAKkpiC,cAAco/D,0BAA0B,eACxD,GAAIp+jC,EAGA,IADA,IAAI+7yB,EAAiBx1yB,KAAKuL,MAAM9R,GACvB/9B,EAAI,EAAGA,EAAI850B,EAAe7i1B,OAAQ+I,IAAK,CAE5C,IAAIoulB,EAAc0rP,EAAe950B,GAE7BS,EAAO2tlB,EAAkB,KAC7B,GAAIv6lB,KAAKipiC,UAAUyiC,mBACU,QAArBnxe,EAAYkrd,MAAuC,mBAArBlrd,EAAYkrd,MAAkD,kBAArBlrd,EAAYkrd,MACnFzljC,KAAKminC,uBAAuB5nhB,GAAa,QAI7C,GAAyB,QAArBA,EAAYkrd,KAAgB,CAE5B,IAAIirB,EAAsB,CAAEhskC,KAAM1E,KAAKoinC,iBAAiB7nhB,GAAcpkkB,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,SAAWua,WAAW6pjB,EAAuB,WAAK,IAAMpulB,EAAG+wd,YAAY,EAAOtwd,KAAM2tlB,EAAYujhB,eAAiB,eAAiBlxmC,EAAMhL,MAAO5B,KAAKqinC,oBAAoB9nhB,GAActR,SAAU,GAAI1ukB,WAAYgglB,EAAY0khB,YAClUj/mC,KAAKipiC,UAAU0nC,qBAAqBvkkC,KAAKskkC,EAC7C,CAER,CAER,EACAysC,EAAWxsmC,UAAUwxmC,uBAAyB,SAAU5nhB,EAAa+nhB,GACjE,IAAI9/pB,EACAg0H,EACAv3R,EACJ,GAA8B,KAA1Bs7S,EAAYm4f,UAAkB,CAC1Bn4f,EAAYujhB,iBACZvjhB,EAAYkrd,KAAO,gBAGvB,IAAIlhlB,EAAOg2H,EAAkB,KAChB,OAATh2H,GAAiBA,EAAK+8P,SACtB9+Q,EAAa+hB,EAAKkhlB,KACdlhlB,EAAK58G,SACL6uN,EAAY,UAEZjyG,EAAKtqH,OACLu8N,EAAY,QAEZjyG,EAAK+4S,YACL9mM,EAAY,iBAEZjyG,EAAK7sG,YACL8+M,EAAY,aAEhBv3R,EAAWj/S,KAAKuviC,oBAAoBhrkB,EAAKm9d,OAE7C,IAAIhpL,EAA0C,IAA1Bn+K,EAAYzpV,UAAkB,QAAqC,IAA1BypV,EAAYzpV,UAAkB,SAAW,OAClG8sN,EAAkB28H,EAAuB,UACzCoqK,EAASpqK,EAAwB,WACjC5jB,EAAY,QAAU/4G,EAAgB1+c,EAAI,IAAM0+c,EAAgBz/c,EAAI,IAAMy/c,EAAgBj9c,EAA9E,MAChBg2jB,EAAY32kB,KAAKg+mC,UAAUrniB,IAEO,IAA9B4jB,EAAYwjhB,cACZpniB,EAAY,gBAEO,cAAdA,IACLA,EAAY,aAGhB,IAAI1rE,EAAYsvF,EAAuB,UAKnC0jhB,EAAa,CAAEt6+B,KAJR3jI,KAAKuviC,oBAAoB5qS,EAAOvjvB,GAIZ8sI,IAHnBluJ,KAAKuviC,oBAAoB5qS,EAAO9lvB,GAGDL,MAF/Bxe,KAAKuviC,oBAAoB5qS,EAAOtjC,OAEaz4kB,OAD5C5oJ,KAAKuviC,oBAAoB5qS,EAAOrjC,SAEzC+8Y,EAAY,QAAUpzmB,EAAU/rf,EAAI,IAAM+rf,EAAU9sf,EAAI,IAAM8sf,EAAUtqf,EAA5D,MAChB09lC,EAAYr+mC,KAAKg+mC,UAAUK,GAC3B,IAAI96S,EAAchpO,EAAyB,YACvC+jhB,EAAY,QAAU/6S,EAAYrkzB,EAAI,IAAMqkzB,EAAYplzB,EAAI,IAAMolzB,EAAY5izB,EAAlE,MAChB29lC,EAAYt+mC,KAAKg+mC,UAAUM,GAC3B,IAAI3ixB,EAAc4+P,EAAyB,YAC3Cv6lB,KAAKkgc,cAAgB,GACrB,IAAIq+qB,EAAkB,CAClB55W,OAAQ,CAAEvjvB,EAAG68lC,EAAWt6+B,KAAM9kH,EAAGo/lC,EAAW/v9B,IAAKmzkB,MAAO48Y,EAAWz/lC,MAAO8itB,OAAQ28Y,EAAWr19B,QAAUu5qB,WAAYzxxB,WAAW6pjB,EAAuB,WAAK,EAAG71lB,KAAM61lB,EAA6B,gBAAGruK,QAASquK,EAAqB,QACjO34lB,MAAO24lB,EAAkB,KAAGvuK,UAAWuuK,EAAsB,SAAG5+J,WAAY4+J,EAAsB,SAAG/3I,WAAYA,EAAYg0H,UAAWA,EAAW54G,gBAAiB+4G,EAAWlgd,MAAO4n/B,EAAW96S,YAAa+6S,EAAWlwK,UAAWzymB,EAAa18C,SAAUA,EAAUw/zB,YAAalkhB,EAAYmkhB,UAC9RxhpB,WAAYq9H,EAAwB,WAAGhglB,WAAYgglB,EAAwB,WAAGikhB,aAAcjkhB,EAA0B,aAAGv+U,UAAW08f,EAAe55vB,QAAS9e,KAAK2+mC,cAAcpkhB,GAAcr6J,cAAelgc,KAAKkgc,cAAetyX,UAAW2shB,EAAYqkhB,UAAWr32B,WAAoC,IAAxBgzV,EAAYskhB,QAAgB,SAAW,UAAWt6oB,KAAM,CAAEuxG,UAAW/pQ,GAAkBw4J,IAAQA,EAAK58G,OAAgBkuN,QAAS9pQ,GAAkBw4J,IAAQA,EAAKtqH,KAAckxsB,aAAcp/uB,GAAkBw4J,IAAQA,EAAK+4S,UAAmBvnM,aAAchqQ,GAAkBw4J,IAAQA,EAAK7sG,YAEhhB,aAArB6iO,EAAYkrd,MAA4C,YAArBlrd,EAAYkrd,OAC/C84D,EAAgB38mC,MAAQ24lB,EAA2B,eAGvD,IAAIwkhB,EAAY/+mC,KAAKg/mC,iBAAiBzkhB,GAQtC,MAPkB,mBAAdwkhB,GAAgD,iBAAdA,IAClC/+mC,KAAKo/mC,iBAAiB7khB,GAClBv6lB,KAAKs9mC,mBACLiB,EAAgB38mC,MAAQ24lB,EAAYo+L,QAGzB34xB,KAAKipiC,UAAUyiC,mBAAmByzC,aAAaJ,EAAWR,EAAiB+D,EAElG,CACA,OAAO,IACX,EAKAnF,EAAWxsmC,UAAU4vmC,2BAA6B,SAAUh1C,GACxD,IAAI3+jC,EAAO2+jC,EAAgB,KACvBmF,EAAsB,CACtBhskC,KAAM1E,KAAKoinC,iBAAiB72C,GAAYp1iC,GAAIo1iC,EAAUtzuB,SAAUilI,WAAYqumB,EAAUg3C,WAAYhomC,WAAYgxjC,EAAU0zC,WAAYtjrB,WAAqB,aAAT/ub,GAA8B2+jC,EAAUi3C,SACxLx2rB,UAAoB,gBAATp/a,GAAiC2+jC,EAAUi3C,SAAU51mC,KAAMA,EAAMhL,MAAgB,YAATgL,GAA+B,aAATA,EAAsB2+jC,EAAUk3C,cAAgBl3C,EAAU5yS,MAAO1vM,SAAUsif,EAAUl/jB,WAAak/jB,EAAUl/jB,WAAa,IAEtOrsgB,KAAKipiC,UAAU0nC,qBAAqB3wkC,KAAKipiC,UAAU0nC,qBAAqBznjC,WAAU,SAAUhc,GAAM,OAAOA,EAAGipB,KAAOu6iC,EAAoBv6iC,EAAI,KAAMu6iC,CACrJ,EAEAysC,EAAWxsmC,UAAU+xmC,sBAAwB,SAAUv5D,GAEnD,GADAnpjC,KAAKm3lC,mBAAmB/qlC,KAAK+8iC,EAAWhzhC,IACpCgzhC,EAAY,CAEZ,IAAIh0qB,EAAiBjkX,SAASg8T,eAAei8tB,EAAWhzhC,IACpDg/W,IACIg0qB,EAAWjslB,YACX/nF,EAAevmY,UAAW,EAC1BumY,EAAehvY,MAAMy3d,gBAAkB,GACvCzoF,EAAehvY,MAAM+yiB,OAAS,YAGe,KAAzC/jK,EAAehvY,MAAMy3d,kBACrBzoF,EAAehvY,MAAMy3d,gBAAkB,yBAE3CzoF,EAAevmY,UAAW,EAC1BumY,EAAehvY,MAAM+yiB,OAAS,KAGtCl5iB,KAAK2inC,oBAAoBxtuB,EAC7B,CACJ,EAMAgouB,EAAWxsmC,UAAUyxmC,iBAAmB,SAAU7nhB,GAE9C,IAAIilhB,EAEJ,OAAQjlhB,EAAkB,MACtB,IAAK,UACL,IAAK,WACL,IAAK,iBACL,IAAK,eACDilhB,EAAejlhB,EAAYm4f,UAC3B,MACJ,IAAK,cACL,IAAK,WACD8sB,EAAejlhB,EAAYqohB,UAC3B,MACJ,IAAK,WACL,IAAK,UACDpD,EAAejlhB,EAAY59jB,KAGnC,OAAO6ilC,CACX,EAEArC,EAAWxsmC,UAAU0xmC,oBAAsB,SAAU9nhB,GAEjD,IAAIilhB,EAEJ,OAAQjlhB,EAAkB,MACtB,IAAK,UACL,IAAK,WACDilhB,EAAejlhB,EAAY59jB,KAC3B,MACJ,IAAK,iBACD6ilC,EAAejlhB,EAAYo+L,MAC3B,MACJ,IAAK,cACL,IAAK,WACD6mV,EAAejlhB,EAAYiohB,SAC3B,MACJ,IAAK,WACDhD,EAAejlhB,EAAYkohB,cAC3B,MACJ,IAAK,UACDjD,EAAejlhB,EAAYsohB,aAGnC,OAAOrD,CACX,EAEArC,EAAWxsmC,UAAUmymC,mBAAqB,SAAUt9D,EAAY7gT,EAAQ7uV,GAEpE,IAAI6msB,EAAc38mC,KAAKkpiC,cAAcnznB,SAASD,GAE1CzoY,EAAQ,EACZ,OAAQsvkC,EAAYpqsB,UAChB,KAAK,EACDllY,EAAQs3tB,EACR,MACJ,KAAK,EACDt3tB,EAAQ,CAAEnzB,EAAGyqvB,EAAOzqvB,EAAIsriC,EAAWnkV,MAASsjC,EAAOnmvB,MAAQ,IAAMrE,EAAGwimC,EAAYn+lC,MAAQgniC,EAAWpkiC,EAAKujvB,EAAO/7mB,OAAS,GACxH,MACJ,KAAK,EACDv7G,EAAQ,CAAEnzB,EAAGyimC,EAAYn+lC,MAAQmmvB,EAAOzqvB,EAAIyqvB,EAAOnmvB,MAAOrE,EAAGwimC,EAAY/z9B,OAAS+7mB,EAAOxqvB,EAAIwqvB,EAAO/7mB,QACpG,MACJ,KAAK,EACDv7G,EAAQ,CAAEnzB,EAAGyqvB,EAAOxqvB,EAAKwqvB,EAAOnmvB,MAAQ,EAAKmmvB,EAAO/7mB,OAAQzuI,EAAGwqvB,EAAOzqvB,EAAKyqvB,EAAOnmvB,MAAQ,GAGlG,OAAO6uB,CACX,EAKA8vkC,EAAWxsmC,UAAUy1lC,uBAAyB,WAE1C,IAAIl8jC,EAAOlqC,KAAKkpiC,cAAco/D,0BAA0B,eACxD,GAAIp+jC,EAAM,CAMN,IAJA,IAAI+7yB,EAAiBx1yB,KAAKuL,MAAM9R,GAE5Bkn8B,EAAQ,CAAC,EACT2xI,EAAa,GACRhimC,EAAI,EAAGA,EAAIkl0B,EAAe7i1B,OAAQ2d,IAAK,CAE5C,IAAIw5kB,EAAc0rP,EAAell0B,GAC7BxG,EAAagglB,EAAY0khB,WAC7B,GAAyB,YAArB1khB,EAAYkrd,MAA2C,aAArBlrd,EAAYkrd,MAAuBlrd,EAAYmkhB,WAC7EnkmC,GAAoC,KAArBgglB,EAAY59jB,MAAoC,OAArB49jB,EAAY59jB,YAK9C38B,KAAKkpiC,cAAco5C,kBAAkB/nf,EAAYm4f,YAJzD1ylC,KAAKkpiC,cAAcg4C,cAAe,EAClClhlC,KAAKkpiC,cAAco5C,kBAAkB/nf,EAAYm4f,WAAan4f,EAAY59jB,MAK9EomlC,EAAa,CAAEn+qB,WAAY21J,EAAY59jB,KAAMugc,WAAYq9H,EAAYgohB,YACrEnxI,EAAM72Y,EAAYm4f,WAAaqwB,OAE9B,GAAyB,gBAArBxohB,EAAYkrd,MAA0Blrd,EAAYiohB,SACnDjomC,IAAuC,IAAzBgglB,EAAYiohB,UAC1BxinC,KAAKkpiC,cAAcg4C,cAAe,EAClClhlC,KAAKkpiC,cAAco5C,kBAAkB/nf,EAAYqohB,WAAarohB,EAAYo+L,cAGlE34xB,KAAKkpiC,cAAco5C,kBAAkB/nf,EAAYqohB,WAE7DG,EAAa,CAAEn+qB,WAAY21J,EAAYo+L,MAAOz7T,WAAYq9H,EAAYgohB,YACtEnxI,EAAM72Y,EAAYqohB,WAAaG,OAE9B,GAAyB,aAArBxohB,EAAYkrd,KACblriC,IAAuC,IAAzBgglB,EAAYiohB,UAC1BxinC,KAAKkpiC,cAAcg4C,cAAe,EAClClhlC,KAAKkpiC,cAAco5C,kBAAkB/nf,EAAYqohB,WAAarohB,EAAYiohB,iBAGlExinC,KAAKkpiC,cAAco5C,kBAAkB/nf,EAAYqohB,WAEzDrohB,EAAYyohB,eAAiBzohB,EAAYiohB,UACzCO,EAAa,CAAEn+qB,WAAY21J,EAAYyohB,cAAe9lpB,WAAYq9H,EAAYgohB,YAC9EnxI,EAAM72Y,EAAYqohB,WAAaG,QAEO1/mC,IAAjC+t+B,EAAM72Y,EAAYqohB,YAA6D,OAAjCxxI,EAAM72Y,EAAYqohB,aACrEG,EAAa,CAAEn+qB,WAAY21J,EAAYiohB,SAAUtlpB,WAAYq9H,EAAYgohB,YACzEnxI,EAAM72Y,EAAYqohB,WAAaG,QAGlC,GAAyB,aAArBxohB,EAAYkrd,KACblriC,GAA4C,KAA9BgglB,EAAYkohB,eAC1BzinC,KAAKkpiC,cAAcg4C,cAAe,EAClClhlC,KAAKkpiC,cAAco5C,kBAAkB/nf,EAAY59jB,MAAQ49jB,EAAYkohB,sBAG7DzinC,KAAKkpiC,cAAco5C,kBAAkB/nf,EAAY59jB,MAE7DomlC,EAAa,CAAEn+qB,WAAY21J,EAAYkohB,cAAevlpB,WAAYq9H,EAAYgohB,YAC9EnxI,EAAM72Y,EAAY59jB,MAAQomlC,OAEzB,GAAyB,YAArBxohB,EAAYkrd,KAAoB,CAIrC,IAFA,IAAIn+K,EAAa/sS,EAAsB,SACnC0ohB,EAAiB,GACZC,EAAM,EAAGA,EAAM3ohB,EAAYsohB,aAAaz/mC,OAAQ8/mC,IAAO,CAE5D,IAAI/tuB,EAAiBolN,EAAYsohB,aAAaK,GAC9CD,EAAe72mC,KAAKk73B,EAAWnyf,GACnC,CACA4tuB,EAAa,CAAEn+qB,WAAYn0Z,KAAK+mF,UAAUyr/B,GAAiB/lpB,WAAYq9H,EAAYgohB,YACnFnxI,EAAM72Y,EAAY59jB,MAAQomlC,CAC9B,MACK,GAAyB,mBAArBxohB,EAAYkrd,MAAkD,iBAArBlrd,EAAYkrd,KAAyB,CAEnF,IAAI5B,OAAS,EAIb,GAH0B,OAAtBtpd,EAAYo+L,OAAwC,KAAtBp+L,EAAYo+L,OAC1C34xB,KAAKo/mC,iBAAiB7khB,GAEtBA,EAAYo+L,OAA+B,KAAtBp+L,EAAYo+L,MAAc,CAC/CkrR,EAAStpd,EAAYo+L,MACrB,IAAIn2U,EAAa+3I,EAAY/3I,WAAa+3I,EAAY/3I,WAAa+3I,EAAYluF,WAC/E,GAAI7pD,EACA4uhB,EAAM72Y,EAAYm4f,UAAY,YAAclwoB,EAC5C4uhB,EAAM72Y,EAAYm4f,UAAY,YAAcn4f,EAAYt7S,SAAWs7S,EAAYt7S,SAAWs7S,EAAYjuF,cAErG,GAAIiuF,EAAYo+L,MAAMhmwB,MAAM,WAAW,GACxCy+8B,EAAM72Y,EAAYm4f,UAAY,cAAe,MAE5C,CAGD7uC,EAASjT,IADYpB,IAAgBj1c,EAAYo+L,OAErD,CACJ,CASA,GARIp+wB,GAAoC,OAAtBgglB,EAAYo+L,OAAwC,KAAtBp+L,EAAYo+L,OACxD34xB,KAAKkpiC,cAAcg4C,cAAe,EAClClhlC,KAAKkpiC,cAAco5C,kBAAkB/nf,EAAYm4f,WAAajijC,KAAK+mF,UAAUqs7B,WAGrE7jjC,KAAKkpiC,cAAco5C,kBAAkB/nf,EAAYm4f,WAE7DthH,EAAM72Y,EAAYm4f,WAAajijC,KAAK+mF,UAAUqs7B,GAC1Ctpd,EAAYm0c,OAAQ,CAEpB,IAAI/pS,EAAS3kwB,KAAK8inC,mBAAmBvohB,EAAYird,WAAYjrd,EAAYm0c,OAAQn0c,EAAYgrd,WAC7Fhrd,EAAYm0c,OAAOx0hC,EAAIyqvB,EAAOzqvB,EAC9BqglB,EAAYm0c,OAAOv0hC,EAAIwqvB,EAAOxqvB,EAC9Bi39B,EAAM72Y,EAAYm4f,UAAY,UAAYjijC,KAAK+mF,UAAU+ie,EAAYm0c,OACzE,KACK,CAED,IAAIy0E,EAAa5ohB,EAAYird,WAEzB7gT,EAAS,CAAEzqvB,EAAGla,KAAKuviC,oBAAoB4zE,EAAW/hmC,GAAIjH,EAAGna,KAAKuviC,oBAAoB4zE,EAAWtkmC,GAAIL,MAAOxe,KAAKuviC,oBAAoB4zE,EAAW9hZ,OAAQz4kB,OAAQ5oJ,KAAKuviC,oBAAoB4zE,EAAW7hZ,SACpM8vQ,EAAM72Y,EAAYm4f,UAAY,UAAYjijC,KAAK+mF,UAAUmtoB,EAC7D,CACAysO,EAAM72Y,EAAYm4f,UAAY,cAAgBn4f,EAAYgohB,UAC9D,CACJ,CACA,OAAQ9xkC,KAAK+mF,UAAU452B,EAC3B,CACJ,EACA+rI,EAAWxsmC,UAAU6vmC,gBAAkB,SAAUzplC,GAE7C,IAAIoE,EAAgBpE,EAAM1uB,OAE1B,GAAI8yB,GAA8C,oCAA5BA,EAAcp6B,WAA+E,yDAA5Bo6B,EAAcp6B,UAAuE,CAExK,IAAI2nlB,EAAkBvtjB,EAAch1B,MAAMy3d,gBAEtCgnG,EAAe8jB,EAAgBvxiB,YAAY,KAE3CiskC,EAAe16hB,EAAgB93kB,MAAM,EAAGg0jB,EAAe,GAAK,EAAI,IACpEzpiB,EAAch1B,MAAMy3d,gBAAkBwlpB,EACX,aAAvBjolC,EAAcvuB,OACduuB,EAAch1B,MAAMk9mC,iBAAmB,IAE3ClolC,EAAch1B,MAAMu6lC,UAAY,YAAkD,gBAApCvlkC,EAAch1B,MAAMo9zB,YAAgC,UAAYpoyB,EAAch1B,MAAMo9zB,YACtI,MACSpoyB,IAE2B,oCAA5BA,EAAcp6B,WAA+E,8CAA5Bo6B,EAAcp6B,WAAyF,yDAA5Bo6B,EAAcp6B,WAAoG,oEAA5Bo6B,EAAcp6B,WAChPf,KAAKwtmB,SAASrykB,EAAchF,IAGxC,EACAgnlC,EAAWxsmC,UAAU8vmC,eAAiB,SAAU1plC,GAE5C,IAAIoE,EAAgBpE,EAAM1uB,OAC1B,GAAI8yB,EAAc0klC,cAAgB7/mC,KAAKy9mC,eAAgB,CAEnD,IAAIl5oB,EAAOh4c,SAAS4O,EAAch1B,MAAMqY,OAAU+N,SAAS4O,EAAch1B,MAAMyiJ,QAAU,EACzFztH,EAAch1B,MAAMqY,MAAa+ld,EAAO,KACxCvke,KAAKy9mC,gBAAiB,CAC1B,CAC2B,aAAvBtilC,EAAcvuB,KACd5M,KAAKipiC,UAAUuR,sBAAsBr/gC,EAAcz2B,KAAMy2B,EAAc2wB,SAGvE9rD,KAAKipiC,UAAUuR,sBAAsBr/gC,EAAcz2B,KAAMy2B,EAAcv5B,OAG3E,IAAI8mlB,EAAkBvtjB,EAAch1B,MAAMy3d,gBAEtCgnG,EAAe8jB,EAAgBvxiB,YAAY,KAE3CiskC,EAAe16hB,EAAgB93kB,MAAM,EAAGg0jB,EAAe,GAAK,GAAM,IACtEzpiB,EAAch1B,MAAMy3d,gBAAkBwlpB,EACtCjolC,EAAch1B,MAAMu6lC,UAAY,OACJ,aAAvBvlkC,EAAcvuB,MAAyBuuB,EAAc2wB,QAItD3wB,EAAch1B,MAAMk9mC,iBAAmB,GAHvClolC,EAAch1B,MAAMk9mC,iBAAmB,MAK/C,EACAlG,EAAWxsmC,UAAU+vmC,iBAAmB,SAAU3plC,GAE9C,IAAIoE,EAAgBpE,EAAM1uB,OACM,wBAA5B8yB,EAAcp6B,WACdo6B,EAAgBA,EAAc06P,cAC9B71R,KAAK2inC,oBAAoBxnlC,IAEQ,oCAA5BA,EAAcp6B,WAA+E,yDAA5Bo6B,EAAcp6B,UACpFf,KAAKm7B,cAAgBA,EAEY,oBAA5BA,EAAcp6B,WAA0D,WAAvBo6B,EAAcvuB,MACpE5M,KAAKipiC,UAAUq6E,0BAA0BnolC,EAAcv5B,MAAOu5B,EAAcz2B,KAAMy2B,EAAchF,IAEpG,IAAK,IAAIpV,EAAI,EAAGA,EAAI/gB,KAAKipiC,UAAU0nC,qBAAqBvtkC,OAAQ2d,IACxDoa,EAAchF,KAAOn2B,KAAKipiC,UAAU0nC,qBAAqB5vjC,GAAGoV,MACxDn2B,KAAKipiC,UAAUyiC,oBAAsB1rkC,KAAKipiC,UAAUgb,mBACpDjkjC,KAAKipiC,UAAU4+C,wBAAwB,mBAAoB7nlC,KAAKipiC,UAAU0nC,qBAAqB5vjC,IAGnE,oCAA5Boa,EAAcp6B,WAA+E,8CAA5Bo6B,EAAcp6B,WAAyF,yDAA5Bo6B,EAAcp6B,WAAoG,oEAA5Bo6B,EAAcp6B,WAChPf,KAAKwtmB,SAASrykB,EAAchF,IAI5C,EAaAgnlC,EAAWxsmC,UAAUmsiC,cAAgB,SAAU0D,EAAe5+iC,EAAOyG,EAAQuglB,GACzE,IAAI01K,EAGAqG,EACA4+W,EACAC,EACAt5kC,EAJA87J,EAAQhmM,KAMRkqC,EADAlqC,KAAKipiC,UAAU0gB,aACR3pjC,KAAKkpiC,cAAco/D,0BAA0B,iBAG7CtomC,KAAKkpiC,cAAco/D,0BAA0B,eAExD,IAAIriR,EAAiBx1yB,KAAKuL,MAAM9R,GAChC,GAAIlqC,KAAKipiC,UAAUyiC,mBACf,IAAI+3C,EAAazjnC,KAAKm7B,eAAiBn7B,KAAKm7B,cAAci4P,aAAepzR,KAAKm7B,cAAci4P,aAAa1uR,KAAO1E,KAAKm7B,cAAgBn7B,KAAKm7B,cAAcz2B,KAAO2D,EAAO3D,KAAO2D,EAAO3D,KAAO2D,EAAO+qR,aAAa1uR,UAG3M++mC,EAAazjnC,KAAKm7B,cAAgBn7B,KAAKm7B,cAAcz2B,KAAO2D,EAAO3D,KAAO2D,EAAO3D,KAAO2D,EAAO+qR,aAAa1uR,KAsJpH,IApJA,IAAIq8a,EAAU,WACV,IAAI/L,EAAYgS,EAAOiinB,UAAU0gB,aAAe1jO,EAAe950B,GAAG+7lC,UAAUxjmC,KAAOuh1B,EAAe950B,GAAGumlC,UACrG,GAAI1rqB,EAAOiinB,UAAU0gB,aAAe30oB,IAAcyusB,EAAazusB,IAAcyusB,IAAgB13yB,GAAkBk6gB,EAAe950B,GAAGsmlC,iBAAmB,CAGhJ,IAAIixB,EAFJr7mC,EAAS2+a,EAAOiinB,UAAU0gB,aAAez4hC,SAASg8T,eAAe+4f,EAAe950B,GAAGm8W,IAAI31V,MAAM,KAAK,IAAMzB,SAASg8T,eAAe+4f,EAAe950B,GAAG8rV,UAG9IkoG,EAAYujrB,EAAetw1B,aAAaA,aAAaj9P,GAAGxD,MAAM,KAAK,GACnEgxlC,EAAmB38rB,EAAOiinB,UAAUlkR,UAAU5kV,GAC9C93b,GAAUA,EAAO+qR,cAAgBuw1B,IACjCJ,EAAel7mC,EAAOosR,wBACtB+u1B,EAAsBn7mC,EAAO+qR,aAAaA,aAAaA,aAAaqB,wBACpEuyJ,EAAOkinB,cAAcoR,uBAAwB,EACzCjyiC,EAAOusB,cAA6D,IAA9CvsB,EAAOusB,YAAYuB,GAAGxrB,QAAQ,aACpDq8a,EAAOiinB,UAAU26E,gCAAiC,IAG1D,IAUIC,EACAC,EAXAC,EAAiBninC,GAAgBolb,EAAOkinB,cAAcuU,gBAAgB/G,aACtEtuQ,EAAcx/M,GAAsB5hK,EAAOkinB,cAAcuU,gBAAgBx0d,SACzEk0d,EAAYn2nB,EAAOkinB,cAAcsB,gBACjCn6d,EAAerpJ,EAAOkinB,cAAcoR,sBAAwBipE,EAAa/kmC,MAAQ2+hC,EAAYzsgC,WAAWgzkC,EAAev9mC,MAAMqY,OAAS2+hC,EACtIzkiB,EAAgB1xF,EAAOkinB,cAAcoR,sBAAwBipE,EAAa369B,OAASu05B,EAAYzsgC,WAAWgzkC,EAAev9mC,MAAMyiJ,QAAUu05B,EACzIC,EAAcp2nB,EAAOkinB,cAAcoR,uBAA0BipE,EAAa5/+B,KAAO6/+B,EAAoB7/+B,MAASw56B,EAAYzsgC,WAAWgzkC,EAAev9mC,MAAMw9H,MAAQw56B,EAClKE,EAAar2nB,EAAOkinB,cAAcoR,uBAA0BipE,EAAar19B,IAAMs19B,EAAoBt19B,KAAQiv5B,EAAYzsgC,WAAWgzkC,EAAev9mC,MAAM+nJ,KAAOiv5B,EAC9J6mE,EAAgBh9rB,EAAOkinB,cAAcoR,uBAAwBjyiC,EAAOgrR,mBAAqB3iP,WAAWroC,EAAOgrR,mBAAmBl9P,GAAGxD,MAAM,KAAK,IAAoD+d,WAAWgzkC,EAAevtlC,GAAGxD,MAAM,KAAK,IACxOiyiB,EAAe59I,EAAOkinB,cAAcoR,uBAAwBjyiC,EAAOgrR,mBAAqB3iP,WAAWroC,EAAOgrR,mBAAmBl9P,GAAGxD,MAAM,KAAK,IAAoD+d,WAAWgzkC,EAAevtlC,GAAGxD,MAAM,KAAK,IACvOsxlC,EAAej9rB,EAAOkinB,cAAcuU,gBAAgBhF,gBAGpDyrE,EAAoBR,EAAetw1B,aAAaA,aAAajtR,MAAMoyD,UAAYmrjC,EAAetw1B,aAAaA,aAAajtR,MAAMoyD,UAAYmrjC,EAAev9mC,MAAMoyD,UAE/J4rjC,GADJD,EAAoBA,EAAkBh9lC,UAAUg9lC,EAAkBv5mC,QAAQ,KAAO,EAAGu5mC,EAAkBv5mC,QAAQ,OACtE4hB,SAAS23lC,GAAqB,EACtE,GAAsB,SAAlB1jE,EAA0B,CAc1B,GAbKp4Q,IACDA,EAAc,aAGlBzjC,EAAS39U,EAAOo9rB,cAAcx/iB,EAAcu/iB,EAAeH,EAAe7mE,EAAWC,EAAaC,EAAYhte,EAAc33D,GAClF,YAAtC1xF,EAAOiinB,UAAUo7E,mBACjB1/W,EAAS39U,EAAOs9rB,wBAAwB3/W,IAOV,mBALlCrG,EAAQ,CAEJnouB,GAAIutlC,EAAevtlC,GAAIwuuB,OAAQ,CAAEzqvB,EAAGyqvB,EAAOzqvB,EAAGC,EAAGwqvB,EAAOxqvB,EAAGqE,MAAOmmvB,EAAOnmvB,MAAOoqI,OAAQ+7mB,EAAO/7mB,QAAUktR,UAAWkusB,EAAe95kC,KAAM65kC,EAAgB9jY,aAAc,GACvK80T,oBAAqB,gBAAiBzm6B,QAAS,EAAG4ioB,YAAaizW,EAAel9D,UAAW,gBAAiB3g7B,SAAU,GAAIkw+B,OAAQ,CAAEpvmC,MAAO,GAAIqvmC,WAAY,GAAIx2X,aAAc,GAAIH,OAAQ,IAAMt9R,WAAY4lV,EAAanpf,SAA4B,KAAlBkl0B,GAA0C,MAAlBA,EAAyBx/W,EAAOnmvB,MAAQ,KAASmmvB,EAAO/7mB,OAAS,OAEnTms5B,oBAAyC,CAC/C,IAAInsI,EAAY5hf,EAAO+mpB,aAAazvU,EAAMp0tB,KAAMo0tB,EAAMr/c,SAAUq/c,EAAM97S,YAClEs9c,EAAa,EACb8I,EAAYjkK,EAAOnmvB,QACnBsh5B,EAAan7J,EAAOnmvB,MAAQoq5B,GAChCtqK,EAAMr/c,SAAW+nI,EAAOgnpB,YAAYpqkC,KAAKiG,MAAOy0vB,EAAMr/c,SAAW6gnB,GACrE,CACAmkN,EAAe3lX,EAAMp0tB,KACrB25kC,EAAwBvlX,EAAM97S,WAC9BshqB,EAAsBxlX,EAAMr/c,QAChC,MACK,GAAsB,UAAlBuhwB,EAA2B,CAEhC77S,EAAS39U,EAAOo9rB,cAAcx/iB,EAAcu/iB,EAAeH,EAAe7mE,EAAWC,EAAaC,EAAYhte,EAAc33D,GAC5H,IAAIyiiB,EAAU,IAAIr8kB,MAClBq8kB,EAAQz24B,IAAMq/8B,EACd5oE,EAAQx73B,OAAS,WACbqmB,EAAMy9tB,YAAY9+J,EAAQw2S,EAAS4oE,EAAgBC,EAAeG,EAAeT,EAAgBC,EAAkBM,EAAcJ,EAAuBC,EAAqBz7mC,EACjL,CACJ,MAEI,IAA4C,IAAvC07mC,EAAep5mC,QAAQ,UAExBg6vB,EAAS39U,EAAOo9rB,cAAcx/iB,EAAcu/iB,EAAeH,EAAe7mE,EAAWC,EAAaC,EAAYhte,EAAc33D,GAClF,YAAtC1xF,EAAOiinB,UAAUo7E,mBACjB1/W,EAAS39U,EAAOs9rB,wBAAwB3/W,IAE5CrG,EAAQ,CAEJnouB,GAAIutlC,EAAevtlC,GAAIwuuB,OAAQ,CAAEzqvB,EAAGyqvB,EAAOzqvB,EAAGC,EAAGwqvB,EAAOxqvB,EAAGqE,MAAOmmvB,EAAOnmvB,MAAOoqI,OAAQ+7mB,EAAO/7mB,QAAUktR,UAAWkusB,EAAe95kC,KAAM65kC,EAAgB9jY,aAAc,GACvK80T,oBAAqB,iBAAkBzm6B,QAAS,EAAG4ioB,YAAaizW,EAAel9D,UAAW,iBAAkB3g7B,SAAU,GAAIkw+B,OAAQ,CAAEpvmC,MAAO,GAAIqvmC,WAAY,GAAIx2X,aAAc,GAAIH,OAAQ,KAE7LmkY,EAAe3lX,EAAMp0tB,SAEpB,CAED,GAA0C,YAAtC88Y,EAAOiinB,UAAUo7E,iBAAgC,CAEjD,IAAIhoE,EAAkBr1nB,EAAOs1nB,2BAA2BynE,GAAgB,EAAOL,IAE/E/+W,EAAS39U,EAAOo9rB,cAAcx/iB,EAAcu/iB,EAAeH,EAAe7mE,EAAWC,EAAaC,EAAYhB,EAAgB79hC,MAAO69hC,EAAgBzz5B,QAAQ,IACtJ1uI,EAAIyqvB,EAAOzqvB,EAAImiiC,EAAgB146B,KACtCghoB,EAAOxqvB,EAAIwqvB,EAAOxqvB,EAAIkiiC,EAAgBnu5B,GAC1C,MAEIy2mB,EAAS39U,EAAOo9rB,cAAcx/iB,EAAcu/iB,EAAeH,EAAe7mE,EAAWC,EAAaC,EAAYhte,EAAc33D,GAEhI4lP,EAAQ,CAEJnouB,GAAIutlC,EAAevtlC,GAAIwuuB,OAAQ,CAAEzqvB,EAAGyqvB,EAAOzqvB,EAAGC,EAAGwqvB,EAAOxqvB,EAAGqE,MAAOmmvB,EAAOnmvB,MAAOoqI,OAAQ+7mB,EAAO/7mB,QAAUktR,UAAWkusB,EAAe95kC,KAAM65kC,EAAgB9jY,aAAc,GACvK80T,oBAAqB,OAAQzm6B,QAAS,EAAG4ioB,YAAaizW,EAAel9D,UAAW,iBAAkB3g7B,SAAU,GAAIkw+B,OAAQ,CAAEpvmC,MAAO,GAAIqvmC,WAAY,GAAIx2X,aAAc,GAAIH,OAAQ,IAEvL,CAEJ,GAAI94T,EAAOkinB,cAAcoR,uBAAyBqpE,GAAsC,UAAlBnjE,EAA2B,CAC7FliT,EAAMnouB,GAAKwtlC,EAAiBxtlC,GAAK,WACjC,IAAItlB,EAAMm2a,EAAOiinB,UAAU71gC,IAAIkruB,GAC/BqlX,EAAiBx5mC,QAAQrE,SAASsG,KAAKyE,EAAI1G,QAC/C,KAC2B,UAAlBq2iC,GACLx5nB,EAAOiinB,UAAU71gC,IAAIkruB,GAEzB,GAAIA,GAAuC,SAA9BA,EAAMy2S,qBAAqD,KAAnBgvE,EAAuB,CACxE/8rB,EAAOkinB,cAAciT,sBAAwB79S,EAE7C,IAAIp0qB,EAAW,CAAEwub,cAAeA,EAAe23D,aAAcA,EAAc+se,YAAaA,EAAaC,WAAYA,GACjHr2nB,EAAOkinB,cAAcuU,gBAAgBhB,uBAAuB93S,EAAQz6qB,GACpE+5hC,EAAej9rB,EAAOkinB,cAAcuU,gBAAgBhF,gBACpDzxnB,EAAOkinB,cAAciT,sBAAwB,IACjD,CACA,GAAsB,UAAlBqE,EAA2B,CAE3B,IAAI8D,EAAUpzhC,SAASg8T,eAAe85F,EAAOiinB,UAAU9zhC,QAAQghB,GAAK,qBAAuB6tlC,GAU3F,GARAh9rB,EAAOiinB,UAAUsb,cAAcD,EAAS0/D,GACxCh9rB,EAAOkinB,cAAcuU,gBAAgB+J,qBAAoB,GACxB,yDAA7Bk8D,EAAe3inC,UACf2inC,EAAe3inC,UAAY,iEAG3B2inC,EAAe3inC,UAAY,4CAE3Bimb,EAAOkinB,cAAcoR,uBAAyBqpE,EAAkB,CAChE,IAAIr3mC,EAAMjE,EAAO+qR,aAAaA,aAAaj9P,GAAGxD,MAAM,KAAK,GAAK,WAC9D2ruB,EAAMqG,OAAS,CAAEzqvB,EAAGyqvB,EAAOzqvB,EAAIijiC,EAAWhjiC,EAAGwqvB,EAAOxqvB,EAAIgjiC,EAAW3+hC,MAAOmmvB,EAAOnmvB,MAAQ2+hC,EAAWv05B,OAAQ+7mB,EAAO/7mB,OAASu05B,GAC5Hn2nB,EAAOu9rB,6BAA6BjmX,EAAOhyvB,EAC/C,MAEI06a,EAAO27rB,oBAAoBe,EAAgBplX,EAAMp0tB,KAAMo0tB,EAAMqG,OAAQk/W,EAAuBC,GAEhGJ,EAAev9mC,MAAM44R,cAAgB,OACjCioJ,EAAOiinB,UAAU9p6B,YACjB6nT,EAAOiinB,UAAU9p6B,WAAWmm7B,UAAUhnT,EAAMxoV,UAAW,KAAMwoV,EAAO,yBAA0B,GAAIA,EAAOA,GAG3E,SAA9BA,EAAMy2S,qBAAgE,kBAA9Bz2S,EAAMy2S,qBAC9C/tnB,EAAOiinB,UAAUyb,iBAAiBpmT,EAAMxoV,UAAWwoV,EAAMnouB,GAAImouB,EAAMy2S,oBAAqBz2S,EAAMqG,OAAQrG,EAAMhwnB,QAAS,KAAM,KAAM21+B,GAErIj9rB,EAAOiinB,UAAUuR,sBAAsBkpE,EAAeh/mC,KAAMq/mC,EAChE,CACJ,CACJ,EACI/8rB,EAAShnb,KACJmM,EAAI,EAAGA,EAAI850B,EAAe7i1B,OAAQ+I,IACvC40a,IAEkB,UAAlBy/nB,IACAxgjC,KAAKkpiC,cAAcuU,gBAAgBf,qBACnC18iC,KAAKkpiC,cAAcoR,uBAAwB,EAC3Ct6iC,KAAKipiC,UAAU26E,gCAAiC,EAExD,EAGAzG,EAAWxsmC,UAAU8y5B,YAAc,SAAU9+J,EAAQr5U,EAAOxxO,EAAcq3Z,EAAa+/J,EAAasuW,EAAcgF,EAAgBC,EAAYxjE,EAAqByjE,EAAmBr8mC,GAOlL,IAAIi2vB,EACJ,GAPIj2vB,GAAUA,EAAO+qR,cAAgBox1B,IACjCxknC,KAAKkpiC,cAAcoR,uBAAwB,EACvCjyiC,EAAOusB,cAA6D,IAA9CvsB,EAAOusB,YAAYuB,GAAGxrB,QAAQ,aACpD3K,KAAKipiC,UAAU26E,gCAAiC,IAIhB,YAApC5jnC,KAAKipiC,UAAUo7E,iBAAgC,CAE3C,IAAIrt/B,EAAUpzH,KAAKgmD,IAAI+6sB,EAAO/7mB,OAAS5oJ,KAAKu9mC,uBAAwB54W,EAAOnmvB,MAAQxe,KAAKu9mC,wBACpF33qB,EAAY++T,EAAO/7mB,OAAS5xB,EAC5BF,EAAW6toB,EAAOnmvB,MAAQw4G,EAC1BmsqB,EAAa73W,EAAM9sa,MACnB4kxB,EAAc93W,EAAM1iS,OACpB+79B,EAAchgX,EAAOnmvB,MACrBommC,EAAejgX,EAAO/7mB,OACtBg4wB,EAAQh95B,KAAKgmD,IAAIktE,EAAWqsqB,EAAYv9V,EAAYw9V,GAY5D,GAXIz+B,EAAOnmvB,MAAQ2kxB,EAAay9H,EAC5Bj8J,EAAO/7mB,OAASw6oB,EAAcw9H,EAC9Bj8J,EAAOzqvB,EAAIyqvB,EAAOzqvB,GAAKyqmC,EAAchgX,EAAOnmvB,OAAS,EACrDmmvB,EAAOxqvB,EAAIwqvB,EAAOxqvB,GAAKyqmC,EAAejgX,EAAO/7mB,QAAU,EAO3D679B,GALAnmX,EAAQ,CAEJnouB,GAAIqplC,EAAarplC,GAAIwuuB,OAAQ,CAAEzqvB,EAAGyqvB,EAAOzqvB,EAAGC,EAAGwqvB,EAAOxqvB,EAAGqE,MAAOmmvB,EAAOnmvB,MAAOoqI,OAAQ+7mB,EAAO/7mB,QAAUktR,UAAWq7L,EAAajnkB,KAAM4vK,EAAcmmiB,aAAc,GACjK80T,oBAAqB,iBAAkBzm6B,QAAS,EAAG4ioB,YAAaA,EAAa+1S,UAAW,iBAAkB3g7B,SAAU,GAAIkw+B,OAAQ,CAAEpvmC,MAAO,GAAIqvmC,WAAY,GAAIx2X,aAAc,GAAIH,OAAQ,MAExK51sB,KACflqC,KAAKkpiC,cAAcoR,uBAAyBkqE,EAAgB,CAC5DlmX,EAAMnouB,GAAKqulC,EAAerulC,GAAK,WAC/B,IAAItlB,EAAM7Q,KAAKipiC,UAAU71gC,IAAIkruB,GAC7BkmX,EAAer6mC,QAAQrE,SAASsG,KAAKyE,EAAI1G,QAC7C,MAEInK,KAAKipiC,UAAU71gC,IAAIkruB,GAEvB,IAAIgmT,EAAUpzhC,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,qBAAuBg7kB,GAUzF,GARAnxmB,KAAKipiC,UAAUsb,cAAcD,EAASnzc,GACtCnxmB,KAAKkpiC,cAAcuU,gBAAgB+J,qBAAoB,GACxB,yDAA3Bg4D,EAAaz+mC,UACby+mC,EAAaz+mC,UAAY,iEAGzBy+mC,EAAaz+mC,UAAY,4CAEzBf,KAAKkpiC,cAAcoR,uBAAyBkqE,EAAgB,CAC5D,IAAIrnE,EAAYn9iC,KAAKkpiC,cAAcsB,gBAC/Bl+hC,EAAMjE,EAAO+qR,aAAaA,aAAaj9P,GAAGxD,MAAM,KAAK,GAAK,WAC9D2ruB,EAAMqG,OAAS,CAAEzqvB,EAAGyqvB,EAAOzqvB,EAAIijiC,EAAWhjiC,EAAGwqvB,EAAOxqvB,EAAIgjiC,EAAW3+hC,MAAOmmvB,EAAOnmvB,MAAQ2+hC,EAAWv05B,OAAQ+7mB,EAAO/7mB,OAASu05B,GAC5Hn9iC,KAAKuknC,6BAA6BjmX,EAAOhyvB,EAC7C,MAEItM,KAAK2inC,oBAAoBnD,EAAclhX,EAAMp0tB,KAAMo0tB,EAAMqG,OAAQs8S,EAAqByjE,GAE1FlF,EAAar5mC,MAAM44R,cAAgB,OAC/B/+R,KAAKipiC,UAAU9p6B,YACfn/H,KAAKipiC,UAAU9p6B,WAAWmm7B,UAAUhnT,EAAMxoV,UAAW,KAAMwoV,EAAO,yBAA0B,GAAIA,EAAOA,GAGzE,mBAA9BA,EAAMy2S,qBACN/0iC,KAAKipiC,UAAUyb,iBAAiBpmT,EAAMxoV,UAAWwoV,EAAMnouB,GAAImouB,EAAMy2S,oBAAqBz2S,EAAMqG,OAAQrG,EAAMhwnB,QAAS,KAAM,KAAMm2+B,GAEnIzknC,KAAKipiC,UAAUuR,sBAAsBglE,EAAa96mC,KAAMo1M,EAC5D,CACA95M,KAAKkpiC,cAAcuU,gBAAgBf,qBACnC18iC,KAAKkpiC,cAAcoR,uBAAwB,EAC3Ct6iC,KAAKipiC,UAAU26E,gCAAiC,CACpD,EACAzG,EAAWxsmC,UAAU4zmC,6BAA+B,SAAUjmX,EAAOhyvB,GACjE,IAAI49B,EAAOlqC,KAAKkpiC,cAAco/D,0BAA0B,iBACpDriR,EAAiBx1yB,KAAKuL,MAAM9R,GAChC,IAAK6hS,GAAkBk6gB,GAqDnB,IApDA,IAAIjla,EAAU,SAAU70a,GACpB,GAAI850B,EAAe950B,GAAGm8W,MAAQh8W,EAAK,CAC/B,IAAIyqlC,EAAiBpgb,EAAOsyX,UAAUynC,oBAAoBxnjC,WAAU,SAAUhc,GAAM,OAAOA,EAAGipB,KAAO8vzB,EAAe950B,GAAG+7lC,UAAU/xkC,GAAGxD,MAAM,KAAK,EAAI,IA6BnJ,GA5BkC,kBAA9B2ruB,EAAMy2S,qBACN9uN,EAAe950B,GAAG+7lC,UAAU1nD,cAAgB,OAC5C7pY,EAAOuyX,cAAcwnC,oBAAoBvkkC,GAAG+7lC,UAAU1nD,cAAgB,OACtE7pY,EAAOsyX,UAAUlkR,UAAUz4wB,GAAKk0iC,cAAgB,OAChDv6N,EAAe950B,GAAG+7lC,UAAU1lpB,WAAkC,eAArB87S,EAAM97S,WAA8B,kBAAoB87S,EAAM97S,WACvGm0N,EAAOuyX,cAAcwnC,oBAAoBvkkC,GAAG+7lC,UAAU1lpB,WAAa87S,EAAM97S,WACzEm0N,EAAOsyX,UAAUlkR,UAAUz4wB,GAAKk2c,WAAa87S,EAAM97S,WACnDyjY,EAAe950B,GAAG+7lC,UAAUjpzB,SAAWq/c,EAAMr/c,SAC7C03X,EAAOuyX,cAAcwnC,oBAAoBvkkC,GAAG+7lC,UAAUjpzB,SAAWq/c,EAAMr/c,SACvE03X,EAAOsyX,UAAUlkR,UAAUz4wB,GAAK2yS,SAAWq/c,EAAMr/c,SACjD83yB,GAAkB,IAAIpgb,EAAOsyX,UAAUynC,oBAAoBqmB,GAAgBv2C,cAAgB,SAExD,mBAA9BliT,EAAMy2S,qBACX9uN,EAAe950B,GAAG+7lC,UAAU1nD,cAAgB,QAC5C7pY,EAAOuyX,cAAcwnC,oBAAoBvkkC,GAAG+7lC,UAAU1nD,cAAgB,QACtE7pY,EAAOsyX,UAAUlkR,UAAUz4wB,GAAKk0iC,cAAgB,QAChDu2C,GAAkB,IAAIpgb,EAAOsyX,UAAUynC,oBAAoBqmB,GAAgBv2C,cAAgB,WAG3Fv6N,EAAe950B,GAAG+7lC,UAAU1nD,cAAgB,OAC5C7pY,EAAOuyX,cAAcwnC,oBAAoBvkkC,GAAG+7lC,UAAU1nD,cAAgB,OACtE7pY,EAAOsyX,UAAUlkR,UAAUz4wB,GAAKk0iC,cAAgB,OAChDu2C,GAAkB,IAAIpgb,EAAOsyX,UAAUynC,oBAAoBqmB,GAAgBv2C,cAAgB,SAE/Fv6N,EAAe950B,GAAG+7lC,UAAU2c,eAAiBvmX,EAAMqG,OACnDhuF,EAAOuyX,cAAcwnC,oBAAoBvkkC,GAAG+7lC,UAAU2c,eAAiBvmX,EAAMqG,OAC7EhuF,EAAOsyX,UAAUlkR,UAAUz4wB,GAAKu4mC,eAAiBvmX,EAAMqG,OACvDoyV,GAAkB,IAAIpgb,EAAOsyX,UAAUynC,oBAAoBqmB,GAAgB8tB,eAAiBvmX,EAAMqG,QAChE,SAA9BrG,EAAMy2S,oBAAgC,CACtC,IACI8O,EAASjT,IADQpB,IAAgBlxS,EAAMp0tB,OAE3C+7yB,EAAe950B,GAAG+7lC,UAAUtmmC,MAAQ6uC,KAAK+mF,UAAUqs7B,GACnDltY,EAAOsyX,UAAUlkR,UAAUz4wB,GAAK1K,MAAQ08vB,EAAMp0tB,KAC9CysoB,EAAOsyX,UAAUlkR,UAAUz4wB,EAAIqmB,MAAM,KAAK,IAAI/wB,MAAQ08vB,EAAMp0tB,KAC5DysoB,EAAOuyX,cAAcwnC,oBAAoBvkkC,GAAG+7lC,UAAUtmmC,MAAQ6uC,KAAK+mF,UAAUqs7B,GAC7EkzC,GAAkB,IAAIpgb,EAAOsyX,UAAUynC,oBAAoBqmB,GAAgBn1lC,MAAQ6uC,KAAK+mF,UAAUqs7B,GACtG,MAEI59N,EAAe950B,GAAG+7lC,UAAUtmmC,MAAQ08vB,EAAMp0tB,KAC1CysoB,EAAOuyX,cAAcwnC,oBAAoBvkkC,GAAG+7lC,UAAUtmmC,MAAQ08vB,EAAMp0tB,KACpEysoB,EAAOsyX,UAAUlkR,UAAUz4wB,EAAIqmB,MAAM,KAAK,IAAI/wB,MAAQ08vB,EAAMp0tB,KAC5DysoB,EAAOsyX,UAAUlkR,UAAUz4wB,GAAK1K,MAAQ08vB,EAAMp0tB,KAC9C6sjC,GAAkB,IAAIpgb,EAAOsyX,UAAUynC,oBAAoBqmB,GAAgBn1lC,MAAQ08vB,EAAMp0tB,MAE7FysoB,EAAOsyX,UAAU0gB,aAAam7D,2BAA2B7+R,EAAe950B,GAAG+7lC,WAC3Evxb,EAAOsyX,UAAU0gB,aAAao7D,iCAAiC,4BAA6B9+R,EAAe950B,GAAG+7lC,WAAW,GAAM,GAAO,GAAO,GAAO,GAAO,GAAO,GAAO,GAAO,GAAO,GAAO,GAAO,GAAO,GAAO,GAAO,EAAO,GAAIjiR,EAAe950B,GAAG+7lC,UAAUtmmC,MACrQ,CACJ,EACI+0qB,EAAS32qB,KACJmM,EAAI,EAAGA,EAAI850B,EAAe7i1B,OAAQ+I,IACvC60a,EAAQ70a,GAGhBnM,KAAKkpiC,cAAcssD,wBAAwBvvQ,EAAgB,gBAC/D,EAIAk3R,EAAWxsmC,UAAU2zmC,wBAA0B,SAAU3/W,GACrD,MAAO,CAAEzqvB,EAAGyqvB,EAAOzqvB,EAAI,EAAGC,EAAGwqvB,EAAOxqvB,EAAI,EAAGqE,MAAOmmvB,EAAOnmvB,MAAQ,EAAGoqI,OAAQ+7mB,EAAO/7mB,OAAS,EAChG,EAKAu09B,EAAWxsmC,UAAUyzmC,cAAgB,SAAUx/iB,EAAcssM,EAAa//J,EAAagsc,EAAWC,EAAaC,EAAYhte,EAAc33D,EAAessmB,GAEpJ,IACI5jE,EAAcphjC,KAAKipiC,UAAU26E,+BAAiC,cAAgB,WAC9EqB,EAAW/zlC,SAASg8T,eAAek0tB,EAAc,IAAMjwc,EAAc,IAAMvsC,GAE3EhhjB,EAAcw5hC,EAAcD,GADjB8nE,EAAWv0kC,WAAWu0kC,EAAS9+mC,MAAMw9H,MAAQw56B,EAAY,GACfA,EACzD,OAAoB,KAAhBjsS,GAAsC,MAAhBA,GACtBlxwB,KAAKkxwB,YAAc,EACS,KAAxB+zW,EAAS9+mC,MAAMw9H,KACXqh/B,EACgB,CAAE9qmC,EAAGkjiC,EAAex5hC,EAAau5hC,EAAaA,EAAWhjiC,EAAGkjiC,EAAcz5hC,EAAau5hC,EAAaA,EAAW3+hC,MAAO6xjB,EAAcznb,OAAQ8vX,GAG5I,CAAEx+f,EAAGkjiC,EAAex5hC,EAAau5hC,EAAaA,EAAWhjiC,EAAGkjiC,EAAcz5hC,EAAau5hC,EAAaA,EAAW3+hC,MAAOk6f,EAAe9vX,OAAQynb,IAIjKzsjB,EAAa,GACTohmC,EACgB,CAAE9qmC,EAAGkjiC,EAAc/se,EAAcl2jB,EAAGkjiC,EAAahte,EAAc7xjB,MAAOk6f,EAAe9vX,OAAQynb,GAG7F,CAAEn2jB,EAAGkjiC,EAAc/se,EAAezsjB,EAAa,EAAGzJ,EAAGkjiC,EAAahte,EAAezsjB,EAAYpF,MAAOk6f,EAAe9vX,OAAQynb,MAKnJrwkB,KAAKkxwB,YAAc,EACH,CAAEh3vB,EAAGkjiC,EAAajjiC,EAAGkjiC,EAAY7+hC,MAAO6xjB,EAAcznb,OAAQ8vX,GAEtF,EAEAykmB,EAAWxsmC,UAAUkwmC,sBAAwB,SAAU9plC,GACnD,GAAI/2B,KAAKim1B,eACL,IAAK,IAAI950B,EAAI,EAAGA,EAAInM,KAAKim1B,eAAe7i1B,OAAQ+I,IAAK,CAEjD,IAAIqzmC,EAAex/mC,KAAKim1B,eAAe950B,GACvC,GAAI4qB,EAAM1uB,OAAO3D,OAAS86mC,EAAa9sB,WAAa37jC,EAAM1uB,OAAO8tB,KAAOqplC,EAAavnxB,SAAU,CAE3F,IAAI98T,EAAgBjK,SAASg8T,eAAeltV,KAAKim1B,eAAe950B,GAAG8rV,UAC/D98T,EACAA,EAAcv5B,MAAQm1B,EAAM1uB,OAAOzG,OAGnC49mC,EAAa7ilC,KAAO5F,EAAM1uB,OAAOzG,MACjC5B,KAAKkpiC,cAAcssD,wBAAwBx1lC,KAAKim1B,eAAgB,eAExE,CACJ,CAER,EACAk3R,EAAWxsmC,UAAUiwmC,sBAAwB,SAAU7plC,GAEnD,IACIixjC,EACAk9B,EAFA/plC,EAAgBpE,EAAM1uB,OAG1B,GAAI8yB,EAAc0klC,eAAiB7/mC,KAAKy9mC,eAAgB,CAEpD,IAAIl5oB,EAAOh4c,SAAS4O,EAAch1B,MAAMqY,OAAU+N,SAAS4O,EAAch1B,MAAMyiJ,QAAU,EACzFztH,EAAch1B,MAAMqY,MAAa+ld,EAAO,KACxCvke,KAAKy9mC,gBAAiB,CAC1B,CACA,GAAoB,IAAhB1mlC,EAAMsB,OAAe8C,IAA8C,2BAA5BA,EAAcp6B,WAAsE,yDAA5Bo6B,EAAcp6B,WAAoG,8CAA5Bo6B,EAAcp6B,WAA4D,CAE/P,IAAIo1B,EAAKgF,EAAchF,GAAGxD,MAAM,UAAU,GAAGA,MAAM,KAAK,GAIpDwylC,EAFYj0lC,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,cAAgB5J,SAAS4J,IAE/D28T,uBAAuB,0BACjDsyxB,GAAe,EACnBp9B,EAAaholC,KAAKipiC,UAAU0nC,qBAAqBznjC,WAAU,SAAUk2F,GAAS,OAAOA,EAAMjpF,KAAOgF,EAAchF,EAAI,IAC9GY,EAAMc,UAA0B,QAAdd,EAAMzqB,MAC1B44mC,EAAal9B,EAAa,EAAIholC,KAAKipiC,UAAU0nC,qBAAqBvtkC,OAASpD,KAAKipiC,UAAU0nC,qBAAqBqX,EAAa,GAAKholC,KAAKipiC,UAAU0nC,qBAAqB,IAEzK3wkC,KAAKipiC,UAAUg/C,eAAei9B,GAC9BE,GAAe,EACfrulC,EAAM1oB,iBAEN,IADA,IAAIotf,EAAWtge,EAAcl2B,SAAW,GAChCmgnC,GAAc,CAClB,IAAK,IAAI/llC,EAAI,EAAGA,EAAI8llC,EAAc/hnC,OAAQi8B,IAEtC,GADA+llC,GAAe,EACXD,EAAc9llC,GAAGp6B,WAAcw2f,EAAW,CAC1C0pnB,EAAc9llC,GAAGj1B,QACjBg7mC,GAAe,EACfrulC,EAAM1oB,iBACN,KACJ,CAEArO,KAAKo9mC,iBAAiBjnlC,KAAQsle,IAC9B2pnB,GAAe,GAEnB3pnB,GAAsB,CAC1B,CACJ,CACA,GAAK1ke,EAAMc,UAA0B,QAAdd,EAAMzqB,IAAgB,CACzC,IAAI+4mC,EAAerlnC,KAAKipiC,UAAU0nC,qBAAqBznjC,WAAU,SAAUk2F,GAAS,OAAOA,EAAMjpF,KAAOgF,EAAchF,EAAI,IACtH4xjC,EAAYs9B,EAAe,EAAIrlnC,KAAKipiC,UAAU0nC,qBAAqB00C,EAAe,GAAKrlnC,KAAKipiC,UAAU0nC,qBAAqB3wkC,KAAKipiC,UAAU0nC,qBAAqBvtkC,OAAS,GAC5KpD,KAAKipiC,UAAUg/C,eAAeF,GAC9BhxjC,EAAM1oB,gBACV,CACA,GAAI0oB,EAAMoE,cAAc+sP,UAAUh1P,SAAS,oCACvC6D,EAAMoE,cAAc+sP,UAAUh1P,SAAS,6CACvC,GAAkB,UAAd6D,EAAMzqB,IAGN,IADA,IAAIgliB,EAAkBv6gB,EAAM1uB,OACnB0Y,EAAI,EAAGA,EAAI/gB,KAAKipiC,UAAU0nC,qBAAqBvtkC,OAAQ2d,IACxDuwhB,EAAgBn7gB,KAAOn2B,KAAKipiC,UAAU0nC,qBAAqB5vjC,GAAGoV,KAC9Dn2B,KAAKwtmB,SAASl8D,EAAgBn7gB,IAC9Bn2B,KAAKipiC,UAAU4+C,wBAAwB,mBAAoB7nlC,KAAKipiC,UAAU0nC,qBAAqB5vjC,UAKvGgW,EAAM1oB,gBAGlB,EACA8umC,EAAWxsmC,UAAUgwmC,iBAAmB,SAAU5plC,GAE9C,IAAIoE,EAAgBpE,EAAM1uB,OAC1BrI,KAAK2inC,oBAAoBxnlC,EAC7B,EACAgilC,EAAWxsmC,UAAU20mC,yBAA2B,SAAUC,EAAqBC,EAAsB/kE,EAAgBC,EAAgBqK,EAAay0D,EAAcjlhB,GAC5J,IAAI6gU,EAASqlJ,EAAiB8kE,EAC1BlqN,EAASqlJ,EAAiB8kE,EAC1BroE,EAAYn9iC,KAAKkpiC,cAAcsB,gBAC/Bn6d,EAAe,EACf33D,EAAgB,EAChB+smB,GAAuB,EACvBC,GAAoB,EACpBC,EAAiB,EACjBC,EAAgB,EACpB,GAAI76D,EACA16e,EAAerwkB,KAAKipiC,UAAUsS,6BAA6B/8hC,MAAQxe,KAAKipiC,UAAUsS,6BAA6B/8hC,MAAQ,IACvHk6f,EAAgB14gB,KAAKipiC,UAAUsS,6BAA6B3y5B,OAAS5oJ,KAAKipiC,UAAUsS,6BAA6B3y5B,OAAS,QAEzH,CACD,IAAIi99B,EAAarG,EAA4C,SAA7BA,EAAar5mC,MAAMqY,MAAmBghmC,EAAaz62B,YAAcr0N,WAAW8ukC,EAAar5mC,MAAMqY,OAASxe,KAAKuviC,oBAAoBh1c,EAAYird,WAAWnkV,OACpLykZ,EAActG,EAA6C,SAA9BA,EAAar5mC,MAAMyiJ,OAAoB429B,EAAat62B,aAAex0N,WAAW8ukC,EAAar5mC,MAAMyiJ,QAAU5oJ,KAAKuviC,oBAAoBh1c,EAAYird,WAAWlkV,QACxLykZ,EAAkBF,EAAaC,EAC/BE,EAAmBF,EAAcD,EACjCI,EAAmBV,EAAsBC,EACzCU,EAAoBV,EAAuBD,EAC3CY,EAAgB3G,EAAeA,EAAaps1B,aAAaA,aAAajtR,MAAMoyD,UAAYinjC,EAAaps1B,aAAaA,aAAajtR,MAAMoyD,UAAYinjC,EAAar5mC,MAAMoyD,UAAYgiiB,EAAY6rhB,cAChM,GAAKL,EAAkBE,GAAsBD,EAAmBC,GAAuBrinC,KAAK8Y,IAAIqpmC,EAAkBC,IAAsB,EAAI,CACxI,IAAIK,EAAkB,EACjBL,EAAmBC,GAAuBrinC,KAAK8Y,IAAIqpmC,EAAkBC,IAAsB,GAC5FN,GAAoB,EACpBW,EAAkBL,EAAmBE,IAGrCT,GAAuB,EACvBY,EAAkBN,EAAkBE,GAElB,kBAAlBE,GAAuD,mBAAlBA,GAErC91iB,EAAey1iB,EAAc3oE,EAE7BzkiB,EAAgBmtmB,EAAa1oE,IAGzBsoE,IAEAE,EAAiBE,EAAa1oE,EAE9B9se,EAAgBw1iB,EAAaQ,EAAmBlpE,EAEhDzkiB,EAAgBotmB,EAAc3oE,GAE9BuoE,IAEAE,EAAgBE,EAAc3oE,EAE9B9se,EAAew1iB,EAAa1oE,EAE5BzkiB,EAAiBotmB,EAAcO,EAAmBlpE,GAG9D,KAE0B,kBAAlBgpE,GAAuD,mBAAlBA,GAErC91iB,EAAey1iB,EAAc3oE,EAE7BzkiB,EAAgBmtmB,EAAa1oE,IAI7B9se,EAAew1iB,EAAa1oE,EAE5BzkiB,EAAgBotmB,EAAc3oE,EAG1C,CACA,IAAImpE,GAAmBf,EAAsB9kE,GAAkB,EAC3D8lE,GAAkBf,EAAuB9kE,GAAkB,EAC/D,GAAI+kE,EACAa,EAAmBA,EAAkBf,EAAuBI,EAE5DW,IADsBX,EAAiBvqN,EAAW/qV,EAAe+qV,GAAW,EAE5EmrN,EAAkBA,EAAiBf,EAAwB9smB,OAE1D,GAAIgtmB,EAAmB,CACxBY,EAAmBA,EAAkBf,EAAuBl1iB,EAC5Dk2iB,EAAkBA,EAAiBf,EAAwBI,EAE3DW,IADqBX,EAAgBvqN,EAAW3iZ,EAAgB2iZ,GAAW,CAE/E,MAEIirN,EAAmBA,EAAkBf,EAAuBl1iB,EAC5Dk2iB,EAAkBA,EAAiBf,EAAwB9smB,EAI/D,MAAO,CAAE4tmB,gBAAiBA,EAAiBC,eAAgBA,EAAgBl2iB,aAF3EA,GAA8B+qV,EAEyE1iZ,cADvGA,GAAgC2iZ,EAEpC,EAcA8hN,EAAWxsmC,UAAU2riC,2BAA6B,SAAUpygC,EAAM6ghC,EAAay0D,EAAcjlhB,GAYzF,IAVA,IAQIgrhB,EACAC,EAPA3hE,EAASjT,IAFQpB,IAAgBtlgC,IAGjCg2gC,GAAY,EACZC,GAAY,EACZC,GAAY,EACZC,GAAY,EACZmmE,EAAkBt1lC,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,qBAGjEpV,EAAI,EAAGA,EAAI8iiC,EAAOzgjC,OAAQ2d,IAAK,CAEpC,IAAIgO,EAAM80hC,EAAO9iiC,GACjB,IAAkB,IAAdm/hC,EAEAA,EAAWxvgC,WAAW3hB,EAAO,EAAEjY,YAE/BspiC,EAAW1vgC,WAAW3hB,EAAO,EAAEjY,YAE/BqpiC,EAAWzvgC,WAAW3hB,EAAO,EAAEjY,YAE/BupiC,EAAW3vgC,WAAW3hB,EAAO,EAAEjY,gBAE9B,CAED,IAAIm7hC,EAASvhgC,WAAW3hB,EAAO,EAAEjY,YAE7Bo7hC,EAASxhgC,WAAW3hB,EAAO,EAAEjY,YAC7BopiC,GAAYjO,IACZiO,EAAWjO,GAEXkO,GAAYjO,IACZiO,EAAWjO,GAEXkO,GAAYnO,IACZmO,EAAWnO,GAEXoO,GAAYnO,IACZmO,EAAWnO,EAEnB,CACJ,CACAqzE,EAAsBiB,EAAkBA,EAAgBzh3B,YAAc,IACtEyg3B,EAAuBgB,EAAkBA,EAAgBth3B,aAAe,IACxE,IAAIu7yB,EAAiBL,EAAWF,EAC5BQ,EAAiBL,EAAWF,EAC5BsmE,EAAazmnC,KAAKslnC,yBAAyBC,EAAqBC,EAAsB/kE,EAAgBC,EAAgBqK,EAAay0D,EAAcjlhB,GACrJ,GAAIwwd,EAAa,CACb,IAAI5N,EAAYn9iC,KAAKkpiC,cAAcsB,gBAC/B10nB,EAAY91a,KAAKkpiC,cAAc2C,kBAAoB,EACnDpC,EAAUv4gC,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,YAAc2/Y,GAIhF,MAAO,CAAE57Z,GAHWw2B,WAAW+4/B,EAAQtjiC,MAAMqY,OAAS,EAAMiomC,EAAWp2iB,aAAe,GAAM8se,EAGnEhjiC,GADNu2B,WAAW+4/B,EAAQtjiC,MAAMyiJ,QAAU,EAAM699B,EAAW/tmB,cAAgB,GAAMykiB,EACrD3+hC,MAAOiomC,EAAWp2iB,aAAcznb,OAAQ699B,EAAW/tmB,cAC/F,CAEI,MAAO,CAAE/0Y,KAAM8i/B,EAAWH,gBAAiBp49B,IAAKu49B,EAAWF,eAAgB/nmC,MAAOiomC,EAAWp2iB,aAAcznb,OAAQ699B,EAAW/tmB,cAEtI,EA8BAykmB,EAAWxsmC,UAAUgymC,oBAAsB,SAAUt6mC,EAAQq+mC,EAAerqE,EAAiB4E,EAAqByjE,GAC9G1knC,KAAKkpiC,cAAcqd,8BAA6B,GAEhD,IAAIogE,EAAe,GACfC,EAAe,IAEfC,EAAoB,EACpB38kC,EAAOlqC,KAAKkpiC,cAAco/D,0BAA0B,eACxD,GAAIp+jC,IAASlqC,KAAKipiC,UAAUyiC,mBAAoB,CAE5C,IAAIo7C,EAAiBr2kC,KAAKuL,MAAM9R,IAChCy8kC,EAAeG,EAAe1gnC,QAAO,SAAUmvB,GAAQ,OAAOA,EAAK0iU,WAAa5vV,EAAO8tB,EAAI,KAC1E/yB,OAAS,IACtBwjnC,EAAeD,EAAa,GAAGj0B,UAE/Bm0B,EADkBC,EAAe1gnC,QAAO,SAAUmvB,GAAQ,OAAOA,EAAKm9jC,YAAck0B,CAAc,IAC9DxjnC,QAExC,IAAK,IAAI2d,EAAI,EAAGA,EAAI+lmC,EAAe1jnC,OAAQ2d,IAAK,CAE5C,IAAIw5kB,EAAcushB,EAAe/lmC,GACjC,GAAIw5kB,EAAYtiQ,WAAa5vV,EAAO8tB,IAAMywlC,IAAiBrshB,EAAYm4f,UAAW,CAC9E,GAAIrqlC,GAA0B,SAAhBA,EAAOuE,MAAmC,aAAhBvE,EAAOuE,MAAuC,aAAhBvE,EAAOuE,KAAqB,CAC9F,IAAIm6mC,EAAY1+mC,EACZ0+mC,EAAU7+1B,UAAUh1P,SAAS,oCAAsC6zlC,EAAU7+1B,UAAUh1P,SAAS,8CAC5FwzlC,IACAnshB,EAAYo+L,MAAQ+tV,GAEpBrqE,IACA9hd,EAAYm0c,OAAS2N,GAErB4E,IACA1md,EAAYluF,WAAa40iB,EACzB1md,EAAYjuF,SAAWo4mB,KAI3BnqhB,EAAY59jB,KAAOt0B,EAAOzG,MAC1B24lB,EAAYo+L,MAAQtwxB,EAAOzG,MAEnC,MACK,GAAoB,UAAhByG,EAAOuE,MACZ,GAAIvE,EAAOyjD,QAAS,CAChB,IAAK,IAAIzsB,EAAI,EAAGA,EAAIynlC,EAAe1jnC,OAAQi8B,IAAK,CAE5C,IAAI2nlC,EAAcF,EAAeznlC,GAC7BynlC,EAAeznlC,GAAGujlC,YAAcv6mC,EAAO3D,OACvCoinC,EAAeznlC,GAAGmjlC,UAAW,EAErC,CACA,GAAIn6mC,EAAOzG,OAAS24lB,EAAYo+L,MAAO,CACnCp+L,EAAYiohB,UAAW,EACvB,KACJ,CAEIjohB,EAAYiohB,UAAW,CAE/B,OAEC,GAAoB,aAAhBn6mC,EAAOuE,KAAqB,CACjC,IAAIq6mC,EAAiB5+mC,EAAO8tB,GACxB+wlC,EAAyBJ,EAAe1gnC,QAAO,SAAU+gnC,GAAyB,OAAQA,EAAsBvE,YAAcv6mC,EAAO3D,MAAuC,YAA9ByinC,EAAsB1hE,IAAoB,IAC5L,IAASpmhC,EAAI,EAAGA,EAAI6nlC,EAAuB9jnC,OAAQi8B,IAAK,EAEhD2nlC,EAAcE,EAAuB7nlC,IAC7BmjlC,UAAW,EACvBwE,EAAYl7jC,SAAU,EAEtB,IAAI3wB,EAAgBjK,SAASg8T,eAAe85xB,EAAY/uxB,UACpD98T,GACI8rlC,IAAmB9rlC,EAAchF,KACjCgF,EAAcqnlC,UAAW,EACzBrnlC,EAAc2wB,SAAU,EACxB3wB,EAAch1B,MAAMk9mC,iBAAmB,OAGnD,CACIh7mC,EAAOyjD,QACPyuiB,EAAYiohB,UAAW,EAGvBjohB,EAAYiohB,UAAW,CAE/B,MACK,GAAoB,eAAhBn6mC,EAAOuE,MAAyC,IAAhBvE,EAAOgO,KAM5C,IAJA,IAAIyjM,EAAezxM,EAAOyW,QAAQzW,EAAO63b,eAAejga,KAEpDmnlC,EAAY/+mC,EAAOvC,SAEdgb,EAAI,EAAGA,EAAIsmmC,EAAUhknC,OAAQ0d,IAC9BsmmC,EAAUtmmC,GAAGmf,OAAS65K,IACtBygZ,EAAYkohB,cAAgB3o6B,QAInC,GAAoB,oBAAhBzxM,EAAOuE,MAA8BvE,EAAOgO,KAAO,EAAG,CAEvDyjM,EAAezxM,EAAOg/mC,gBAC1B9shB,EAAYsohB,aAAe,GAC3B,IAAK,IAAInhmC,EAAI,EAAGA,EAAIo4L,EAAa12M,OAAQse,IAGrC,IADI0lmC,EAAY/+mC,EAAOvC,SACdgb,EAAI,EAAGA,EAAIsmmC,EAAUhknC,OAAQ0d,IAC9BsmmC,EAAUtmmC,KAAOg5L,EAAap4L,IAC9B64kB,EAAYsohB,aAAaz2mC,KAAK0U,GAI1Cy5kB,EAAYkohB,cAAgBp6mC,EAAOzG,MACnC,IAAI6qB,EAAQ8tkB,EAAY+shB,SAAW/shB,EAAY+shB,SAAS38mC,QAAQtC,EAAOzG,OAAS,EAChF24lB,EAAYr6J,cAAgBzza,GAAS,EAAIA,EAAQ,EACjD8tkB,EAAYsohB,aAAe,CAACtohB,EAAYr6J,cAC5C,CAMA,GALI73b,EAAOuG,WACP2rlB,EAAYgohB,YAAa,GAE7BvinC,KAAKugnC,2BAA2BhmhB,GAEP,KADzBsshB,EAEI,KACR,MACSx+mC,GAAyC,MAA/BA,EAAOiqB,aAAa,SAAmC,SAAhBjqB,EAAOuE,MAAmB2tlB,EAAYtiQ,WAAa5vV,EAAOopB,KAAK0E,KACrHokkB,EAAYkohB,cAAgBp6mC,EAAOzG,OAEvC5B,KAAKugnC,2BAA2BhmhB,EACpC,CACAvpkB,OAAOor0B,eAAerwoB,WAAW/rN,KAAKkpiC,cAAcka,WAAa,eACjEpjjC,KAAKkpiC,cAAcssD,wBAAwBsxB,EAAgB,cAC/D,CACA,GAAI9mnC,KAAKipiC,UAAUyiC,oBAAsBrjkC,GAAUA,EAAO8tB,GAAI,CAC1D,IAAIkha,EAAer3b,KAAKipiC,UAAUlkR,UAAU18wB,EAAO8tB,GAAGxD,MAAM,KAAK,IACjE,GAAI0ka,GAAgBA,EAAaltb,SAAWktb,EAAaltb,QAAQrE,SAAS,GAAI,CAC1Euxb,EAAaz1b,MAAQyG,EAAOzG,MAC5B,IAAI0kW,EAAQ05tB,IAA4B3ooB,EAAaltb,QAAQrE,SAAS,IAAI8mwB,QAC1E5swB,KAAKipiC,UAAUyiC,mBAAmB67C,wCAAwCjhxB,EAAO+wF,EAAaltb,QAAQrE,SAAS,GAAIuxb,EAAa49mB,wBAAyB59mB,EAC7J,CACJ,CACJ,EAIA8lrB,EAAWxsmC,UAAUs1lC,yBAA2B,WAC5C,IAAI/7jC,EAAOlqC,KAAKkpiC,cAAco/D,0BAA0B,iBACpDriR,EAAiBx1yB,KAAKuL,MAAM9R,GAChC,GAAI+7yB,EACA,IAAK,IAAI950B,EAAI,EAAGA,EAAI850B,EAAe7i1B,OAAQ+I,IAAK,CAC5C,GAA4D,gBAAxD850B,EAAe950B,GAAG+7lC,UAAUjzD,wBAA2C,CACvE,IAAIuyE,EACJA,EAAavhS,EAAe950B,GAAG+7lC,UAAUK,gBAEzC,IADA,IAAIkf,EAAmBxhS,EAAe950B,GAAG+7lC,UAAU/xkC,GAAGxD,MAAM,KAAK,GACxD3iB,EAAI,EAAGA,EAAIw3mC,EAAWpknC,OAAQ4M,IAAK,CACxC,IAAI03mC,EAAcF,EAAWx3mC,GACzB03mC,EAAYvxlC,GAAGxD,MAAM,KAAK,KAAO80lC,GACjCznnC,KAAKipiC,UAAUyiC,mBAAmBgvB,gBAAgBgtB,EAAYvxlC,GAAGxD,MAAM,KAAK,GAEpF,CACJ,CACIszzB,EAAe950B,GAAGm8W,KAClBtoX,KAAKipiC,UAAUyiC,mBAAmBgvB,gBAAgBz0Q,EAAe950B,GAAGm8W,IAAI31V,MAAM,KAAK,GAE3F,CAER,EAEAwqlC,EAAWxsmC,UAAUuvmC,sBAAwB,SAAUyH,EAAU7xsB,EAAWrpZ,EAAO8tkB,EAAa2jhB,GAE5F,IAAIqB,EAAarulC,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,SAAW2/Y,EAAY,IAAMrpZ,GAClG,GAAI8ylC,EAAY,CACZ,IAAI71E,EAAYx4gC,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,cAAgB2/Y,GAC9D,SAAlB6xsB,EAAS/6mC,MAAmB2ymC,EAAW1p1B,gBAAkB6zwB,GACzD61E,EAAW1p1B,cAAc1iQ,SAEE,yDAAzBoslC,EAAWx+mC,WACbw+mC,EAAWpslC,QAEnB,CAEA,IAKIy0lC,EACAC,EACAC,EACAC,EARA9C,EAAW/zlC,SAASg8T,eAAe,YAAc4oF,EAAY,IAAMrpZ,GACnEk3G,EAAOjzF,WAAWi3kC,EAASxhnC,MAAMw9H,MACjCuqB,EAAM3hI,SAASo7lC,EAASxhnC,MAAM+nJ,KAC9B1vI,EAAQkyB,WAAWi3kC,EAASxhnC,MAAMqY,OAClCoqI,EAASl4G,WAAWi3kC,EAASxhnC,MAAMyiJ,QAKnCu05B,EAAYn9iC,KAAKkpiC,cAAcsB,gBAC/By6E,IAAa/G,IACb0J,EAAgBl3kC,WAAWu0kC,EAAS9+mC,MAAMqY,OAC1CqpmC,EAAgBn3kC,WAAWu0kC,EAAS9+mC,MAAMyiJ,QACV,iBAA5Bq89B,EAAS9+mC,MAAMoyD,YACf0sjC,EAAS9+mC,MAAMoyD,UAAY,eAC3BuvjC,EAAkBl/9B,EAAS,EAC3Bm/9B,EAAkBH,EAAgBzqE,EAClC8nE,EAAS9+mC,MAAMw9H,KAASA,GAAQmk/B,EAAmBF,EAAgBzqE,GAAgB4qE,EAAkB,EAAM,MAE/E,kBAA5B9C,EAAS9+mC,MAAMoyD,YACf0sjC,EAAS9+mC,MAAMoyD,UAAY,eAC3B0sjC,EAAS9+mC,MAAMw9H,KAAOA,EAAO,KAC7Bsh/B,EAAS9+mC,MAAM+nJ,IAAOA,EAAO,MAED,kBAA5B+29B,EAAS9+mC,MAAMoyD,YACf0sjC,EAAS9+mC,MAAMoyD,UAAY,eAC3BuvjC,EAAkBl/9B,EAAS,EAC3Bm/9B,EAAkBH,EAAgBzqE,EAClC8nE,EAAS9+mC,MAAMw9H,KAASA,GAAQmk/B,EAAkBC,GAAqBA,EAAkB,EAAM,KAC/F9C,EAAS9+mC,MAAM+nJ,IAAQA,GAAO1vI,EAASqpmC,EAAgB1qE,GAAgB0qE,EAAgB1qE,EAAa,EAAO,OAG/G5id,EAAYythB,kBAAoBhonC,KAAKs9mC,kBACrCqK,EAAS5mnC,UAAY,4CACrB4mnC,EAASxhnC,MAAM44R,cAAgB,QAE1Bw7T,EAAYythB,iBACbzthB,EAAYo+L,OACZgvV,EAAS5mnC,UAAY,4CACrB4mnC,EAASxhnC,MAAM44R,cAAgB,QAG/B4o1B,EAAS5mnC,UAAY,kCAGC,WAArBw5lB,EAAYkrd,OACjBkiE,EAAS5mnC,UAAY,0BAEzB4mnC,EAASxxlC,GAAKn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,SAAW2/Y,EAAY,IAAMrpZ,EACvEk7lC,EAAShinC,UAAY3F,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,SAAW2/Y,EAC5D6xsB,EAASxhnC,MAAMwoI,OAAS,GAC5B,EAaAwu+B,EAAWxsmC,UAAU2umC,iBAAmB,SAAU/khB,EAAazkL,EAAWrpZ,EAAOw7lC,EAAgBr9lC,GAE7F,IAAI40lC,EAEJ,OAAQjlhB,EAAkB,MACtB,IAAK,UACDilhB,EAAex/mC,KAAKkonC,mBAAmB3thB,EAAazkL,EAAW,QAC/D,MACJ,IAAK,WACD0psB,EAAex/mC,KAAKkonC,mBAAmB3thB,EAAazkL,EAAW,YAC/D,MACJ,IAAK,cACD0psB,EAAex/mC,KAAKmonC,oBAAoB5thB,EAAazkL,EAAW,SAChE,MACJ,IAAK,WACD0psB,EAAex/mC,KAAKmonC,oBAAoB5thB,EAAazkL,EAAW,WAAYmysB,GAC5E,MACJ,IAAK,WACDzI,EAAex/mC,KAAKoonC,oBAAoB7thB,EAAazkL,EAAWrpZ,EAAOw7lC,GACvE,MACJ,IAAK,UACDzI,EAAex/mC,KAAKqonC,mBAAmB9thB,EAAazkL,GACpD,MACJ,IAAK,eACL,IAAK,iBACD0psB,EAAex/mC,KAAKsonC,qBAAqB/thB,EAAazkL,EAAWrpZ,EAAOw7lC,EAAgBr9lC,GACxF,IAAIszlC,GAAiB,EACW,IAA5B3jhB,EAAsB,WACtB2jhB,GAAiB,GAEjB3jhB,EAAYo+L,OAA+B,KAAtBp+L,EAAYo+L,QACjC34xB,KAAKq/mC,qBAAqB9khB,EAAa9tkB,EAAOw7lC,EAAgB/J,GAC9Dl+mC,KAAK09mC,qBAAsB,EAC3B9ylC,KAEJ,MACJ,IAAK,SACD40lC,EAAex/mC,KAAKuonC,kBAAkBhuhB,EAAazkL,GACnD,MACJ,IAAK,MACG91a,KAAKipiC,UAAUyiC,oBACXnxe,EAAYo+L,OAA+B,KAAtBp+L,EAAYo+L,QAAiB34xB,KAAK09mC,qBACvD19mC,KAAKq/mC,qBAAqB9khB,EAAa9tkB,EAAOw7lC,GAGtD,MACJ,IAAK,gBACL,IAAK,iBACG1thB,EAAYo+L,OAA+B,KAAtBp+L,EAAYo+L,QAAiB34xB,KAAK09mC,qBACvD19mC,KAAKq/mC,qBAAqB9khB,EAAa9tkB,EAAOw7lC,GAI1D,MAAO,CAAEzI,aAAcA,EAAc50lC,MAAOA,EAChD,EACAuylC,EAAWxsmC,UAAUqumC,iBAAmB,SAAUzkhB,GAE9C,IAAIilhB,EAEJ,OAAQjlhB,EAAkB,MACtB,IAAK,UACDilhB,EAAe,UACf,MACJ,IAAK,WACDA,EAAe,WACf,MACJ,IAAK,cACDA,EAAe,cACf,MACJ,IAAK,WACDA,EAAe,WACf,MACJ,IAAK,WACDA,EAAe,WACf,MACJ,IAAK,UACDA,EAAe,UACf,MACJ,IAAK,iBACDA,EAAe,iBACXjlhB,EAAYujhB,iBACZ0B,EAAe,gBAEnB,MACJ,IAAK,eACDA,EAAe,eAGvB,OAAOA,CACX,EAEArC,EAAWxsmC,UAAU43mC,kBAAoB,SAAUr+kC,EAAM4rY,GAErD,IAAIypsB,EAAarulC,SAASpwB,cAAc,SAgBxC,OAfIopC,EAAKyuvB,QAAU34xB,KAAKwonC,SAASt+kC,EAAKyuvB,QAAU34xB,KAAKyonC,MAAMv+kC,EAAKyuvB,SAC5D4mV,EAAW3ymC,KAAO,QAClB2ymC,EAAW768B,IAAMx6H,EAAKyuvB,OAGtB4mV,EAAW3ymC,KAAO,SAEtB2ymC,EAAWx+mC,UAAY,kBACL,KAAdmpC,EAAKvN,KACL4ilC,EAAW39mC,MAAQsoC,EAAKvN,KAGxB4ilC,EAAW39mC,MAAQ,GAEvB29mC,EAAW76mC,KAAOwlC,EAAKwojC,UAChB6sB,CACX,EAQApC,EAAWxsmC,UAAU63mC,SAAW,SAAUxlpB,GACtC,MAAO,0CAA0C75c,KAAK65c,EAC1D,EAQAm6oB,EAAWxsmC,UAAU83mC,MAAQ,SAAUzlpB,GACnC,IAEI,OADA,IAAIxpW,IAAIwpW,IACD,CACX,CACA,MAAO1tb,IACH,OAAO,CACX,CACJ,EAEA6nkC,EAAWxsmC,UAAUu3mC,mBAAqB,SAAUh+kC,EAAM4rY,EAAWlpa,GAEjE,IAAI2ymC,EACJ,GAAqB,IAAjBr1kC,EAAK20kC,QAyBT,OAtBI30kC,EAAKw0kC,WACLa,EAAarulC,SAASpwB,cAAc,aACzBqF,MAAM4pS,OAAS,QAG1Bwv0B,EAAarulC,SAASpwB,cAAc,UACzB8L,KAAOA,EAElBs9B,EAAK00kC,UAAY,IACjBW,EAAW3xiC,UAAY1jC,EAAK00kC,WAEhC5+mC,KAAK0onC,oBAAoBx+kC,EAAMq1kC,GACb,KAAdr1kC,EAAKvN,KACL4ilC,EAAW39mC,MAAQsoC,EAAKvN,KAGxB4ilC,EAAW39mC,MAAQ,GAElB5B,KAAKipiC,UAAU0/E,qBAChBpJ,EAAW/jnB,aAAe,OAE9B+jnB,EAAW76mC,KAAOwlC,EAAKwojC,UAChB6sB,CACX,EAEApC,EAAWxsmC,UAAUwvmC,gBAAkB,SAAUj2kC,EAAMq1kC,GAEnD,IADA,IAAItguB,GAAa,EACRj9Y,EAAI,EAAGA,EAAIhC,KAAKm3lC,mBAAmB/zlC,OAAQpB,IAChD,GAAIu9mC,EAAWpplC,KAAOn2B,KAAKm3lC,mBAAmBn1lC,GAAI,CAC9Ci9Y,GAAa,EACb,KACJ,CAKJ,GAHKj/Y,KAAKipiC,UAAUyiC,oBAAuB1rkC,KAAKipiC,UAAUgb,mBAAqB/5gC,EAAK4zkC,iBAAkB5zkC,EAAK89kC,mBACvG/ouB,GAAa,GAEb/0W,EAAKq4kC,aAAgBvinC,KAAKipiC,UAAUwqD,kBAAqBx0sB,EACzDsguB,EAAW3wmC,UAAW,EACtB2wmC,EAAWp5mC,MAAM+yiB,OAAS,UAC1BqmkB,EAAWp5mC,MAAMy3d,gBAAkB,kBAElC,CAED,IAAI2lW,EAAcr5xB,EAAK0+kC,UACvBrJ,EAAWp5mC,MAAMy3d,gBAAkB,QAAU2lW,EAAYrkzB,EAAI,IAAMqkzB,EAAYplzB,EAAI,IAAMolzB,EAAY5izB,EAAlE,QAEnC,IAAIsqf,EAAY/ge,EAAKsie,UACrB+ymB,EAAWp5mC,MAAMswH,MAAQ,QAAUw0Y,EAAU/rf,EAAI,IAAM+rf,EAAU9sf,EAAI,IAAM8sf,EAAUtqf,EAA5D,KAC7B,CACJ,EAMAw8lC,EAAWxsmC,UAAUk4mC,mBAAqB,SAAU5puB,GAEhD,IAAIkqqB,EAAaj4hC,SAAS4hU,uBAAuB,0BACjD9yV,KAAK8onC,uBAAuB3/D,EAAYlqqB,GAExC,IAAImiuB,EAAkBlwlC,SAAS4hU,uBAAuB,mCACtD9yV,KAAK8onC,uBAAuB1H,EAAiBniuB,EACjD,EAEAk+tB,EAAWxsmC,UAAUm4mC,uBAAyB,SAAU3/D,EAAYlqqB,GAChE,IAAK,IAAI9yY,EAAI,EAAGA,EAAIg9iC,EAAW/ljC,OAAQ+I,IACnC,GAAIg9iC,EAAWh9iC,GAAI,CAEf,IAAIozmC,EAAap2D,EAAWh9iC,GACvB8yY,EAMDsguB,EAAW3wmC,UAAW,GALtB2wmC,EAAW3wmC,UAAW,EACtB2wmC,EAAWp5mC,MAAM+yiB,OAAS,UAMlC,CAER,EAEAikkB,EAAWxsmC,UAAUyvmC,cAAgB,SAAUl2kC,EAAMq1kC,EAAYzpsB,GAC7DypsB,EAAWt6mC,SAAWilC,EAAK6+kC,SAC3B/onC,KAAK49mC,YAAch6mC,KAAKqpC,IAAIjtC,KAAK49mC,YAAa2B,EAAWt6mC,WAC/B,IAAtBjF,KAAK69mC,cACL79mC,KAAK69mC,YAAc0B,EAAWt6mC,UAElCjF,KAAK69mC,YAAcj6mC,KAAKgmD,IAAI5pD,KAAK69mC,YAAa0B,EAAWt6mC,UACzDjF,KAAKo9mC,iBAAiBtnsB,EAAUh/Z,YAAc9W,KAAK49mC,YACnD59mC,KAAKq9mC,mBAAmBvnsB,EAAUh/Z,YAAc9W,KAAK69mC,WACzD,EAEAV,EAAWxsmC,UAAU0vmC,qBAAuB,SAAUn2kC,EAAMq1kC,GACxD,GAAIr1kC,EAAK+0kC,WACLM,EAAWh6lC,UAAW,EACtBg6lC,EAAWp5mC,MAAMqhQ,OAAS,oBAEzB,CAED,IAAI+7jB,EAAcr5xB,EAAK8+kC,YACvBzJ,EAAWp5mC,MAAMqhQ,OAASt9N,EAAK++kC,YAC/B1J,EAAWp5mC,MAAMo9zB,YAAc,QAAUA,EAAYrkzB,EAAI,IAAMqkzB,EAAYplzB,EAAI,IAAMolzB,EAAY5izB,EAAlE,KACnC,CACA,GAAwB,aAApB4+lC,EAAW3ymC,MAA2C,UAApB2ymC,EAAW3ymC,KAAkB,CAC/D,IAAIqwkB,EAAc/yiB,EAAK2vkC,YACvB75mC,KAAKkpnC,sBAAsBjsiB,EAAasiiB,EAC5C,CACJ,EAEApC,EAAWxsmC,UAAU2vmC,kBAAoB,SAAUf,IAEvB,WAApBA,EAAW3ymC,MAA2D,6BAArC2ymC,EAAWp5mC,MAAMy3d,iBAAuF,uBAArC2hpB,EAAWp5mC,MAAMy3d,kBAAkF,6BAArC2hpB,EAAWp5mC,MAAMy3d,kBACnL2hpB,EAAWp5mC,MAAMy3d,gBAAkB,yBAER,6BAA3B2hpB,EAAWp5mC,MAAMswH,QACjB8o/B,EAAWp5mC,MAAMswH,MAAQ,QAEjC,EAEA0m/B,EAAWxsmC,UAAU+3mC,oBAAsB,SAAUx+kC,EAAMq1kC,GAGvD,OADgBr1kC,EAAK4mO,WAEjB,KAAK,EACDyu2B,EAAWp5mC,MAAMq+d,UAAY,OAC7B,MACJ,KAAK,EACD+6oB,EAAWp5mC,MAAMq+d,UAAY,SAC7B,MACJ,KAAK,EACD+6oB,EAAWp5mC,MAAMq+d,UAAY,QAC7B,MACJ,KAAK,EACD+6oB,EAAWp5mC,MAAMq+d,UAAY,UAGzC,EAEA24oB,EAAWxsmC,UAAUu4mC,sBAAwB,SAAUjsiB,EAAasiiB,GAEhE,OAAQtiiB,GACJ,KAAK,EACDsiiB,EAAWp5mC,MAAM82kB,YAAc,QAC/B,MACJ,KAAK,EACDsiiB,EAAWp5mC,MAAM82kB,YAAc,SAC/B,MACJ,KAAK,EAML,KAAK,EACDsiiB,EAAWp5mC,MAAM82kB,YAAc,SAC/B,MALJ,KAAK,EASL,KAAK,EACDsiiB,EAAWp5mC,MAAM82kB,YAAc,QAC/B,MALJ,KAAK,EACDsiiB,EAAWp5mC,MAAM82kB,YAAc,SAM3C,EAEAkgiB,EAAWxsmC,UAAUw3mC,oBAAsB,SAAUj+kC,EAAM4rY,EAAWlpa,EAAMq7mC,GAExE,IAAI1I,EAAarulC,SAASpwB,cAAc,SAUxC,OATAy+mC,EAAW3ymC,KAAOA,EACds9B,EAAKs4kC,SACLjD,EAAWzzjC,SAAU,EAEP,aAATl/C,GAAwBq7mC,IAC7B1I,EAAWp5mC,MAAMk9mC,iBAAmB,QAExC9D,EAAW76mC,KAAOwlC,EAAK04kC,UACvBrD,EAAW39mC,MAAQsoC,EAAKyuvB,MACjB4mV,CACX,EAEApC,EAAWxsmC,UAAUy3mC,oBAAsB,SAAUl+kC,EAAM4rY,EAAWrpZ,EAAOw7lC,GAEzE,IAAI1I,EAAarulC,SAASpwB,cAAc,UAEpCwm4B,EAAap91B,EAAe,SAChC,GAAIA,EAAKs4kC,WAAayF,EAAgB,CAElC,IAAI9pE,EAAgBjthC,SAASg8T,eAAe,mBAAqB4oF,EAAY,IAAMrpZ,GAC/E0xhC,GACAA,EAAchrhC,SAGlB,IAAIyokC,EAAc1qkC,SAASpwB,cAAc,SACzC86lC,EAAYzlkC,GAAK,mBAAqB2/Y,EAAY,IAAMrpZ,EACxDmvkC,EAAY5mkC,aAAa,OAAQh1B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,SAAW2/Y,EAAY,IAAMrpZ,GAE1F,IAAIk4uB,EAASz6tB,EAAiB,WAE1Bq6b,EAAOr6b,EAAW,KAUtB,GATA0xjC,EAAYz1lC,MAAM+jF,SAAW,WAC7B0xgC,EAAYz1lC,MAAMqhQ,OAAS,MAE3BxnQ,KAAK4/mC,cAAchkB,EAAaj3V,EAAQpgS,EAAMzuD,EAAW5rY,EAAe,UACxE0xjC,EAAYz1lC,MAAMy3d,gBAAkB,wBACpCg+nB,EAAY76lC,UAAY,0BACI,IAAxBmpC,EAAKg2Z,gBACL07pB,EAAYh6lC,MAAQsoC,EAAKu4kC,eAEzBwF,EACAA,EAAev2lC,YAAYkqkC,QAGX1qkC,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,cAAgB2/Y,GAC1EpkZ,YAAYkqkC,GAE1BA,EAAYtgkC,iBAAiB,QAASt7B,KAAKwgnC,gBAAgB3gnC,KAAKG,OAChE47lC,EAAYtgkC,iBAAiB,OAAQt7B,KAAKygnC,eAAe5gnC,KAAKG,OAC9D47lC,EAAYtgkC,iBAAiB,QAASt7B,KAAK0gnC,iBAAiB7gnC,KAAKG,OACjE47lC,EAAYtgkC,iBAAiB,SAAUt7B,KAAK2gnC,iBAAiB9gnC,KAAKG,OAClE47lC,EAAYtgkC,iBAAiB,UAAWt7B,KAAK4gnC,sBAAsB/gnC,KAAKG,OACxEu/mC,EAAarulC,SAASpwB,cAAc,WACxC,CACA,IAAK,IAAIkP,EAAI,EAAGA,EAAIs33B,EAAWlk4B,OAAQ4M,IAAK,CAExC,IAAI4tS,EAAS1sR,SAASpwB,cAAc,UACpC88S,EAAO78S,UAAY,mBACfmpC,EAAKu4kC,gBAAkBn7O,EAAWt33B,IAAMk6B,EAAKg2Z,gBAAkBlwb,EAC/D4tS,EAAOlvS,UAAW,EAGlBkvS,EAAOlvS,UAAW,EAEtBkvS,EAAO10Q,UAAYo+1B,EAAWt33B,GAC9BuvmC,EAAW7tlC,YAAYksR,EAC3B,CAEA,OADA2h0B,EAAW76mC,KAAOwlC,EAAKvN,KAChB4ilC,CACX,EAEApC,EAAWxsmC,UAAU03mC,mBAAqB,SAAUn+kC,EAAM4rY,GAEtD,IAAIypsB,EAAarulC,SAASpwB,cAAc,UAEpCwm4B,EAAap91B,EAAe,SAC5BA,EAAK8hV,YACLuzvB,EAAWr98B,UAAW,GAGtBq98B,EAAWr98B,UAAW,EACtBq98B,EAAWlpmC,KAAOix3B,EAAWlk4B,QAEjC,IAAK,IAAI4M,EAAI,EAAGA,EAAIs33B,EAAWlk4B,OAAQ4M,IAAK,CAExC,IAAI4tS,EAAS1sR,SAASpwB,cAAc,UACpC88S,EAAO78S,UAAY,sBACnB,IAAK,IAAI+f,EAAI,EAAGA,EAAIopB,EAAK24kC,aAAaz/mC,OAAQ0d,IACtCopB,EAAK24kC,aAAa/hmC,KAAO9Q,IACzB4tS,EAAOlvS,UAAW,GAG1BkvS,EAAO10Q,UAAYo+1B,EAAWt33B,GAC9BuvmC,EAAW7tlC,YAAYksR,EAC3B,CAEA,OADA2h0B,EAAW76mC,KAAOwlC,EAAKvN,KAChB4ilC,CACX,EAEApC,EAAWxsmC,UAAU23mC,qBAAuB,SAAUp+kC,EAAM4rY,EAAWrpZ,EAAOw7lC,EAAgBr9lC,GAE1F,IAAI20lC,EAAarulC,SAASpwB,cAAc,SACxCy+mC,EAAW3ymC,KAAO,OAClB2ymC,EAAW76mC,KAAOwlC,EAAKwojC,UACvB,IAAIv1C,EAAYn9iC,KAAKkpiC,cAAcsB,gBAE/B2T,EAAgBjthC,SAASg8T,eAAe,YAAc4oF,EAAY,IAAMrpZ,GACxE0xhC,IAAkB8pE,GAClB9pE,EAAchrhC,SAElBnzB,KAAKkpiC,cAAcgR,eAAiBhwgC,EAAK4zkC,eACzC,IAAIqL,EAAgBnpnC,KAAKkpiC,cAAcgR,eAAiB,UAAY,OAEhEkvE,EAA+BppnC,KAAKipiC,UAAU4S,uBAAuB4zB,2BAAyG,KAA3EzvkC,KAAKipiC,UAAU4S,uBAAuB4zB,2BAA2BjxjC,MAAgBxe,KAAKkpiC,cAAcgR,eAAiB,GAAK,GAAMl6iC,KAAKipiC,UAAU4S,uBAAuB4zB,2BAA2BjxjC,MAAS,GAE7SykS,EAAO/xR,SAASpwB,cAAc,QAC9B4oiC,EAAYx4gC,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,cAAgB2/Y,GAEhF6uV,EAASz6tB,EAAiB,WAG1By5F,GADOz5F,EAAW,KACXlqC,KAAKuviC,oBAAoB5qS,EAAOvjvB,IACvC8sI,EAAMluJ,KAAKuviC,oBAAoB5qS,EAAO9lvB,GACtCwqmC,EAAiBrpnC,KAAKuviC,oBAAoB5qS,EAAOtjC,OACjDioZ,EAAkBtpnC,KAAKuviC,oBAAoB5qS,EAAOrjC,QAElD14kB,EAAS5oJ,KAAKipiC,UAAU4S,uBAAuB4zB,2BAA8BzvkC,KAAKipiC,UAAU4S,uBAAuB4zB,2BAA2B7m7B,OAAS0g+B,EAAkBnsE,EAAY,EAAImsE,EAAkBnsE,EAAY,EAAIn9iC,KAAKipiC,UAAU4S,uBAAuB4zB,2BAA2B7m7B,OAAU0g+B,EAAkBnsE,EAAY,EAEpU3+hC,EAAQ4qmC,EAA+BC,EAAiBlsE,EAAY,EAAIksE,EAAiBlsE,EAAY,EAAIisE,EAEzG/ymC,EAAOrW,KAAKipiC,UAAU4S,uBAAuB4zB,2BAA8BzvkC,KAAKipiC,UAAU4S,uBAAuB4zB,2BAA2BxwxB,SAAWr2J,EAAS,EAAI,GAAK5oJ,KAAKipiC,UAAU4S,uBAAuB4zB,2BAA2BxwxB,SAAY,GACtPA,EAAW5oS,EAAOmI,EAAQA,EAAQ,EAAKnI,EAAOuyI,EAASA,EAAS,EAAIvyI,EACxE4sS,EAAK98S,MAAM+jF,SAAW,WACtB+4N,EAAK9sR,GAAK,YAAc2/Y,EAAY,IAAMrpZ,EAC1C,IAAI8lZ,EAAWvya,KAAKo+mC,SAAStosB,GAEzByzsB,EAAc,CAAE5l/B,KAAMA,EAAMuqB,IAAKA,EAAK1vI,MAAOA,EAAOoqI,OAAQA,GAE5D4g+B,EAAcxpnC,KAAK4jjC,UAAU2lE,EAAazzsB,GAgC9C,OA/BA7yH,EAAK98S,MAAMoyD,UAAY,UAAYg6W,EAAW,OAC9CtvH,EAAK98S,MAAMw9H,KAAO6l/B,EAAY7l/B,KAAOw56B,EAAY,KACjDl6vB,EAAK98S,MAAM+nJ,IAAMs79B,EAAYt79B,IAAMiv5B,EAAY,KAC3Cl2tB,GAAQM,WAAavnV,KAAKipiC,UAAUqf,mBACpCrlwB,EAAK98S,MAAMyiJ,OAAS,MACpBq6J,EAAK98S,MAAMqY,MAAQ,OACnBykS,EAAK98S,MAAM84S,SAAW,QAGtBgE,EAAK98S,MAAMyiJ,OAASA,EAAS,KAC7Bq6J,EAAK98S,MAAMqY,MAAQA,EAAQ,KAC3BykS,EAAK98S,MAAM84S,SAAWA,EAAW,KAC7B6tB,OACA7pB,EAAK98S,MAAM84S,SAAYA,EAAW,EAAK,OAGxCr2J,EAAS5oJ,KAAKw9mC,sBAAyB8L,EAAkBnsE,GAAiB3+hC,EAAQxe,KAAKw9mC,sBAAyB6L,EAAiBlsE,IACpIl6vB,EAAK98S,MAAM6wH,QAAU,OAEzBisL,EAAK98S,MAAMq+d,UAAY,SACvBvhL,EAAK98S,MAAM47R,UAAY,cAEvBkhB,EAAK/5Q,UAAYlpC,KAAKipiC,UAAU4S,uBAAuB4zB,4BAA8BzvkC,KAAKipiC,UAAU4S,uBAAuB4zB,2BAA2BxviC,KAAOjgC,KAAKipiC,UAAU4S,uBAAuB4zB,2BAA2BxviC,KAAwBkplC,EACtPlm0B,EAAK98S,MAAMswH,MAAQz2H,KAAKipiC,UAAU4S,uBAAuB4zB,4BAA8BzvkC,KAAKipiC,UAAU4S,uBAAuB4zB,2BAA2Bh58B,MAAQz2H,KAAKipiC,UAAU4S,uBAAuB4zB,2BAA2Bh58B,MAAmB,QAEpPwsL,EAAK98S,MAAMy3d,gBAAkB59d,KAAKipiC,UAAU4S,uBAAuB4zB,4BAA8BzvkC,KAAKipiC,UAAU4S,uBAAuB4zB,2BAA2B7xmB,gBAAkB59d,KAAKipiC,UAAU4S,uBAAuB4zB,2BAA2B7xmB,gBAA8B,SACnR36K,EAAK98S,MAAMmoI,QAAUtuI,KAAKipiC,UAAU4S,uBAAuB4zB,4BAA8BzvkC,KAAKipiC,UAAU4S,uBAAuB4zB,2BAA2Bnh8B,QAAUtuI,KAAKipiC,UAAU4S,uBAAuB4zB,2BAA2Bnh8B,QAAe,EAC/Oy9L,GAAkB29tB,IACnBA,EAAUh4gC,YAAYuxR,GAE1BjjT,KAAKo/mC,iBAAiBl1kC,EAAMtf,GACrB20lC,CACX,EAEApC,EAAWxsmC,UAAUyumC,iBAAmB,SAAUqK,EAAU7+lC,GACxD5qB,KAAKs9mC,kBAAmB,EAExB,IAAIpzkC,EAAOlqC,KAAKkpiC,cAAco/D,0BAA0B,eACxD,GAAIp+jC,EAGA,IADA,IAAI+7yB,EAAiBx1yB,KAAKuL,MAAM9R,GACvBnpB,EAAI,EAAGA,EAAIkl0B,EAAe7i1B,OAAQ2d,IAAK,CAE5C,IAAIw5kB,EAAc0rP,EAAell0B,GASjC,GAPoC,OAAhCw5kB,EAAYk4f,kBAA4B7nkC,GAA+B,QAArB2vkB,EAAYkrd,MAAuC,mBAArBlrd,EAAYkrd,MAAkD,mBAArBlrd,EAAYkrd,MAAkD,kBAArBlrd,EAAYkrd,OAA8BzljC,KAAKipiC,UAAU0gB,aAAiBpvd,EAAYm4f,UAAU//jC,MAAM,KAAK,KAAS82lC,EAASh3B,iBAAqBl4f,EAAYm4f,UAAU//jC,MAAM,KAAK,KAAS82lC,EAAS/2B,UAAgBn4f,EAAYm4f,UAAU//jC,MAAM,KAAK,KAAQ82lC,EAAS/2B,WAAgB3mxB,GAAkB09yB,EAASh3B,mBAAqBl4f,EAAYo+L,OAA+B,KAAtBp+L,EAAYo+L,SAC1gB8wV,EAAS9wV,MAAQp+L,EAAYo+L,MAC7B8wV,EAASp9mB,WAAakuF,EAAYluF,WAClCo9mB,EAASn9mB,SAAWiuF,EAAYjuF,SAChCtsgB,KAAKs9mC,kBAAmB,EACxBmM,EAAS/6E,OAASn0c,EAAYird,YAEE,OAAhCjrd,EAAYk4f,iBAA4B7nkC,IAA+B,QAArB2vkB,EAAYkrd,MAAuC,mBAArBlrd,EAAYkrd,MAAkD,mBAArBlrd,EAAYkrd,MAAkD,kBAArBlrd,EAAYkrd,OAA6BzljC,KAAKipiC,UAAU0gB,aAAepvd,EAAYm4f,YAAc+2B,EAASh3B,gBAAkB,IAAM7nkC,GAAS2vkB,EAAYm4f,YAAc+2B,EAAS/2B,UAAY,IAAM9nkC,GAAU2vkB,EAAYm4f,YAAc+2B,EAAS/2B,UAAY,IAAM9nkC,GAAS2vkB,EAAYm4f,YAAc+2B,EAASh3B,gBAAkB,IAAM7nkC,KAAWmhT,GAAkB09yB,EAASh3B,kBAAqBl4f,EAAYo+L,OAA+B,KAAtBp+L,EAAYo+L,MAAc,CAC/kB8wV,EAAS9wV,MAAQp+L,EAAYo+L,MAC7B8wV,EAASp9mB,WAAakuF,EAAYluF,WAClCo9mB,EAASn9mB,SAAWiuF,EAAYjuF,SAChCtsgB,KAAKs9mC,kBAAmB,EACnBmM,EAAS/6E,SACV+6E,EAAS/6E,OAASn0c,EAAYird,YAElC,KACJ,CACJ,CAEJ,OAAOxljC,KAAKs9mC,gBAChB,EAEAH,EAAWxsmC,UAAUiziC,UAAY,SAAUv2gC,EAAOyoY,EAAWvD,EAAU2rsB,GAEnE,IAAIvB,EAAc38mC,KAAKkpiC,cAAcnznB,SAASD,GAS9C,OANIvD,EAAW,EACFvya,KAAK0pnC,kBAAkBn3sB,EAAUllY,EAAOsvkC,EAAauB,GAGrDl+mC,KAAK0pnC,kBAAkB/M,EAAYpqsB,SAAUllY,EAAOsvkC,EAAauB,EAGlF,EAEAf,EAAWxsmC,UAAU+4mC,kBAAoB,SAAUn3sB,EAAUllY,EAAOsvkC,EAAauB,GAE7E,IAAIv5W,EACJ,GAAKu5W,EAmCA,CACD,OAAQ3rsB,GACJ,KAAK,EAEDoyV,EAASt3tB,EACT,MACJ,KAAK,EAEDs3tB,EAAS,CAAEhhoB,KAAMg5+B,EAAYn+lC,MAAQ6uB,EAAM6gH,IAAM7gH,EAAMu7G,QAAUv7G,EAAM7uB,MAAQ,EAAI6uB,EAAMu7G,OAAS,GAAIsF,IAAK7gH,EAAMs2F,MAAQt2F,EAAM7uB,MAAQ,EAAI6uB,EAAMu7G,OAAS,GAAIpqI,MAAO6uB,EAAM7uB,MAAOoqI,OAAQv7G,EAAMu7G,QAChM,MACJ,KAAK,EAED+7mB,EAAS,CAAEhhoB,KAAMg5+B,EAAYn+lC,MAAQ6uB,EAAMs2F,KAAOt2F,EAAM7uB,MAAO0vI,IAAKyu9B,EAAY/z9B,OAASv7G,EAAM6gH,IAAM7gH,EAAMu7G,OAAQpqI,MAAO6uB,EAAM7uB,MAAOoqI,OAAQv7G,EAAMu7G,QACrJ,MACJ,KAAK,EAED+7mB,EAAS,CAAEhhoB,KAAMt2F,EAAM6gH,KAAO7gH,EAAM7uB,MAAQ,EAAI6uB,EAAMu7G,OAAS,GAAIsF,IAAMyu9B,EAAY/z9B,OAASv7G,EAAMs2F,KAAOt2F,EAAM7uB,OAAS6uB,EAAM7uB,MAAQ,EAAI6uB,EAAMu7G,OAAS,GAAKpqI,MAAO6uB,EAAM7uB,MAAOoqI,OAAQv7G,EAAMu7G,QAGrM+7mB,IACDA,EAASt3tB,EAEjB,KAzDqB,CACjB,OAAQklY,GACJ,KAAK,GAgBL,KAAK,EAEDoyV,EAAS,CAAEhhoB,KAAMg5+B,EAAYn+lC,MAAQ6uB,EAAM6gH,IAAM7gH,EAAMu7G,OAAQsF,IAAK7gH,EAAMs2F,KAAMnlH,MAAO6uB,EAAMu7G,OAAQA,OAAQv7G,EAAM7uB,OACnH,MAfJ,KAAK,IAgBL,KAAK,EAEDmmvB,EAAS,CAAEhhoB,KAAMg5+B,EAAYn+lC,MAAQ6uB,EAAMs2F,KAAOt2F,EAAM7uB,MAAO0vI,IAAKyu9B,EAAY/z9B,OAASv7G,EAAM6gH,IAAM7gH,EAAMu7G,OAAQpqI,MAAO6uB,EAAM7uB,MAAOoqI,OAAQv7G,EAAMu7G,QACrJ,MAfJ,KAAK,IAgBL,KAAK,EAED+7mB,EAAS,CAAEhhoB,KAAMt2F,EAAM6gH,IAAKA,IAAKyu9B,EAAY/z9B,OAASv7G,EAAMs2F,KAAOt2F,EAAM7uB,MAAOA,MAAO6uB,EAAMu7G,OAAQA,OAAQv7G,EAAM7uB,OACnH,MAfJ,KAAK,EAEDmmvB,EAASt3tB,EAeZs3tB,IACDA,EAASt3tB,EAEjB,CAwBA,OAAOs3tB,CACX,EAEAw4W,EAAWxsmC,UAAUivmC,cAAgB,SAAUL,EAAY56W,EAAQpgS,EAAMzuD,EAAWvD,EAAU2rsB,GAC1F,GAAIv5W,EAAQ,CACR,IAIImtW,EAAa,EAEb0X,EAAc,CAAE7l/B,KANT3jI,KAAKuviC,oBAAoB5qS,EAAOvjvB,GAMX8sI,IALpBluJ,KAAKuviC,oBAAoB5qS,EAAO9lvB,GAKAL,MAJhCxe,KAAKuviC,oBAAoB5qS,EAAOtjC,OAIcz4kB,OAH7C5oJ,KAAKuviC,oBAAoB5qS,EAAOrjC,SAKzCioZ,EAAcvpnC,KAAK4jjC,UAAU4lE,EAAa1zsB,EAAWvD,EAAU2rsB,GACtD,OAAT35oB,GAAiBA,EAAK+8P,SACtBi+Y,EAAWp5mC,MAAMq8c,WAAa+hB,EAAKkhlB,KAC/BlhlB,EAAK58G,SACL43vB,EAAWp5mC,MAAMqwkB,UAAY,UAE7BjyG,EAAKtqH,OACLslwB,EAAWp5mC,MAAMgoI,WAAa,QAElC2j+B,EAAa9xmC,KAAKuviC,oBAAoBhrkB,EAAKm9d,OAE/C1h8B,KAAKkpiC,cAAcoB,kBAAkBi1E,EAAYgK,EAAY5l/B,KAAM4l/B,EAAYr79B,IAAK4j9B,EAAYyX,EAAY/qmC,MAAO+qmC,EAAY3g+B,QAAQ,EAC3I,CACJ,EAEAu09B,EAAWxsmC,UAAU0umC,qBAAuB,SAAUn1kC,EAAMzd,EAAOw7lC,EAAgB/J,GAC/E,IAAK+J,EAAgB,CAEjB,IAAItjX,OAAS,EAOTy4S,OAAc,EACdC,OAAa,EACbhte,OAAe,EACf33D,OAAgB,GARhBisP,EADAz6tB,EAAKwkgC,QAAwB,QAAdxkgC,EAAKu7gC,KACXv7gC,EAAKwkgC,OAGLxkgC,EAAKs7gC,YAMPtriC,GAAKyqvB,EAAOxqvB,GAAKwqvB,EAAOnmvB,OAASmmvB,EAAO/7mB,QAC/Cw05B,EAAcz4S,EAAOzqvB,EACrBmjiC,EAAa14S,EAAOxqvB,EACpBk2jB,EAAes0L,EAAOnmvB,MACtBk6f,EAAgBisP,EAAO/7mB,SAGvBw05B,EAAcp9iC,KAAKuviC,oBAAoB5qS,EAAOvjvB,GAC9Ci8hC,EAAar9iC,KAAKuviC,oBAAoB5qS,EAAO9lvB,GAC7CwxjB,EAAerwkB,KAAKuviC,oBAAoB5qS,EAAOtjC,OAC/C3oN,EAAgB14gB,KAAKuviC,oBAAoB5qS,EAAOrjC,SAGpD,IAAInwH,EAAczgkB,WAAWxG,EAAgB,WAEzCmD,EAAQ,CAAEs2F,KAAMy56B,EAAalv5B,IAAKmv5B,EAAY7+hC,MAAO6xjB,EAAcznb,OAAQ8vX,GAE3EixmB,EAAY3pnC,KAAK4pnC,sBAAsBv8kC,EAAO8jkB,EAAa+sgB,GAC3D5/W,OAAQ,EACR97S,EAAat4a,EAAKmie,WAAanie,EAAKmie,WAAanie,EAAKs4a,WAE1D,GAAKxid,KAAKkpiC,cAAcg0E,qBAAqBhzkC,EAAKyuvB,OAC9Cr6B,EAAQ,CAEJnouB,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,SAAWg7kB,EAAc,IAAM1klB,EAAOk4uB,OAAQglX,EAAW7zsB,UAAWq7L,EAAajnkB,KAAMA,EAAKyuvB,MAAO14C,aAAc,GACjJ80T,oBAAqB,iBAAkBzm6B,QAAS,EAAG4ioB,YAAagtW,EAAiBl+mC,KAAKo+mC,SAASjtgB,GAAe,EAAG81c,UAAW,iBAAkB3g7B,SAAU,GAAIkw+B,OAAQ,CAAEpvmC,MAAO,GAAIqvmC,WAAY,GAAIx2X,aAAc,GAAIH,OAAQ,UAG9N,GAAI9/uB,KAAKkpiC,cAAc+zE,oBAAoB/ykC,EAAKyuvB,OAAQ,CACzD,IAAIkxV,EACAC,EAAa,CAAEnm/B,KAAMgm/B,EAAUzvmC,EAAGg0I,IAAKy79B,EAAUxvmC,EAAGqE,MAAOmrmC,EAAUnrmC,MAAOoqI,OAAQ+g+B,EAAU/g+B,QAClGih+B,EAAU7pnC,KAAK4pnC,sBAAsBE,EAAY34gB,GAAa,GAC9DmtJ,EAAQ,CAEJnouB,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,SAAWg7kB,EAAc,IAAM1klB,EAAOk4uB,OAAQklX,EAAS/zsB,UAAWq7L,EAAajnkB,KAAMA,EAAKyuvB,MAAO14C,aAAc,GAC/I80T,oBAAqB,OAAQzm6B,QAAS,EAAG4ioB,YAAa,EAAG+1S,UAAW,iBAAkB3g7B,SAAU,GAAIkw+B,OAAQ,CAAEpvmC,MAAO,GAAIqvmC,WAAY,GAAIx2X,aAAc,GAAIH,OAAQ,IAE3K,MAEIwe,EAAQ,CAEJnouB,GAAIn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,SAAWg7kB,EAAc,IAAM1klB,EAAOk4uB,OAAQglX,EAAW7zsB,UAAWq7L,EAAajnkB,KAAMA,EAAKyuvB,MAAO14C,aAAc,GACjJ80T,oBAAqB,gBAAiBzm6B,QAAS,EAAG4ioB,YAAagtW,EAAiBl+mC,KAAKo+mC,SAASjtgB,GAAe,EAAG81c,UAAW,iBAAkB3g7B,SAAU,GAAIkw+B,OAAQ,CAAEpvmC,MAAO,GAAIqvmC,WAAY,GAAIx2X,aAAc,GAAIH,OAAQ,IAAMt9R,WAAYt4a,EAAKmie,WAAYptN,SAAU/0Q,EAAKoie,WAE1Q9pD,WAA4B,eAAfA,EAA8B,kBAAoBA,EACrE87S,EAAMr/c,SAAW/0Q,EAAKoie,SAAWpie,EAAKoie,SAAWpie,EAAK+0Q,SAE1D,GAAmB,mBAAd/0Q,EAAKu7gC,MAA2C,iBAAdv7gC,EAAKu7gC,MAA6B15uB,GAAkB7hS,EAAK/T,IAoB3F,CACD,IAAI9tB,EAAS6oB,SAASg8T,eAAeoxa,EAAMnouB,IACvC9tB,GAAUA,EAAO6/Q,UAAUh1P,SAAS,8CACpClzB,KAAKipiC,UAAU9p6B,WAAW4q/B,qBAAqBzrX,EAAMnouB,IAEzDn2B,KAAKipiC,UAAU71gC,IAAIkruB,GACfj2vB,IACArI,KAAK2inC,oBAAoBt6mC,EAAQi2vB,EAAMp0tB,KAAMo0tB,EAAMqG,QACnD3kwB,KAAKipiC,UAAUyb,iBAAiBpmT,EAAMxoV,UAAWwoV,EAAMnouB,GAAImouB,EAAMy2S,oBAAqBz2S,EAAMqG,OAAQrG,EAAMhwnB,QAASgwnB,EAAM7gS,YAAa6gS,EAAM8vM,UAAW9vM,EAAMp0tB,MAErK,KA9BqG,CACjG,IAAIi2Z,EAAYj2Z,EAAK/T,GACjB6zlC,EAAwB94lC,SAASg8T,eAAeizG,EAAY,yBAC5DqkrB,EAAiBxknC,KAAKipiC,UAAUlkR,UAAU5kV,GAC9Cm+T,EAAMnouB,GAAKqulC,EAAerulC,GAAK,WAC/B,IAAItlB,EAAM7Q,KAAKipiC,UAAU71gC,IAAIkruB,GAE7B,GADAkmX,EAAer6mC,QAAQrE,SAASsG,KAAKyE,EAAI1G,UACpC4hU,GAAkBi+yB,IAA0BhqnC,KAAKs9mC,kBAC9CiC,EAAayK,EAAsBlknC,SAAS,GAAGA,SAAS,IACjDK,MAAM44R,cAAgB,OACjCwg1B,EAAWx+mC,UAAY,4CACvBw+mC,EAAW1p1B,cAAc1vR,MAAM44R,cAAgB,YAE9C,IAAKgtC,GAAkBi+yB,IAA0B9/kC,EAAKyuvB,MAAO,CAC9D,IAAI4mV,KAAayK,EAAsBlknC,SAAS,GAAGA,SAAS,IACjDK,MAAM44R,cAAgB,OACjCwg1B,EAAWx+mC,UAAY,4CACvBw+mC,EAAW1p1B,cAAc1vR,MAAM44R,cAAgB,MACnD,CACJ,CAaA,GADA70P,EAAKwkgC,OAASpwS,EAAMqG,OAChB3kwB,KAAKipiC,UAAUyiC,mBAAoB,CACnC,IAAIvuB,EAAYn9iC,KAAKkpiC,cAAcsB,gBACnClsS,EAAMqG,OAAS,CAAEzqvB,EAAGkjiC,EAAcD,EAAWhjiC,EAAGkjiC,EAAaF,EAAW3+hC,MAAO6xjB,EAAe8se,EAAWv05B,OAAQ8vX,EAAgBykiB,GACjIn9iC,KAAKuknC,6BAA6BjmX,EAAOA,EAAMnouB,GACnD,CAEA,IAAImuhC,EAAUpzhC,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,qBAAuBg7kB,GAEzFnxmB,KAAKipiC,UAAUsb,cAAcD,EAASnzc,EAC1C,CACJ,EAKAgsgB,EAAWxsmC,UAAUi5mC,sBAAwB,SAAUv8kC,EAAOyoY,EAAWoosB,GAErE,IAAIvB,EAAc38mC,KAAKkpiC,cAAcnznB,SAASD,GAC9C,OAAI6msB,EACKuB,EAmB4B,IAAzBvB,EAAYpqsB,SAEL,CAAEr4Z,EAAGyimC,EAAYn+lC,MAAQ6uB,EAAM6gH,IAAM7gH,EAAMu7G,QAAUv7G,EAAM7uB,MAAQ,EAAI6uB,EAAMu7G,OAAS,GAAIzuI,EAAGkzB,EAAMs2F,MAAQt2F,EAAM7uB,MAAQ,EAAI6uB,EAAMu7G,OAAS,GAAIpqI,MAAO6uB,EAAM7uB,MAAOoqI,OAAQv7G,EAAMu7G,QAE3J,IAAzB+z9B,EAAYpqsB,SAEV,CAAEr4Z,EAAGyimC,EAAYn+lC,MAAQ6uB,EAAMs2F,KAAOt2F,EAAM7uB,MAAOrE,EAAGwimC,EAAY/z9B,OAASv7G,EAAM6gH,IAAM7gH,EAAMu7G,OAAQpqI,MAAO6uB,EAAM7uB,MAAOoqI,OAAQv7G,EAAMu7G,QAEhH,IAAzB+z9B,EAAYpqsB,SAEV,CAAEr4Z,EAAGmzB,EAAM6gH,KAAO7gH,EAAM7uB,MAAQ,EAAI6uB,EAAMu7G,OAAS,GAAIzuI,EAAIwimC,EAAY/z9B,OAASv7G,EAAMs2F,KAAOt2F,EAAM7uB,OAAS6uB,EAAM7uB,MAAQ,EAAI6uB,EAAMu7G,OAAS,GAAKpqI,MAAO6uB,EAAM7uB,MAAOoqI,OAAQv7G,EAAMu7G,QAIpL,CAAE1uI,EAAGmzB,EAAMs2F,KAAMxpH,EAAGkzB,EAAM6gH,IAAK1vI,MAAO6uB,EAAM7uB,MAAOoqI,OAAQv7G,EAAMu7G,QAhC/C,IAAzB+z9B,EAAYpqsB,SAEL,CAAEr4Z,EAAGyimC,EAAYn+lC,MAAQ6uB,EAAM6gH,IAAM7gH,EAAMu7G,OAAQzuI,EAAGkzB,EAAMs2F,KAAMnlH,MAAO6uB,EAAMu7G,OAAQA,OAAQv7G,EAAM7uB,OAE9E,IAAzBm+lC,EAAYpqsB,SAEV,CAAEr4Z,EAAGyimC,EAAYn+lC,MAAQ6uB,EAAMs2F,KAAOt2F,EAAM7uB,MAAOrE,EAAGwimC,EAAY/z9B,OAASv7G,EAAM6gH,IAAM7gH,EAAMu7G,OAAQpqI,MAAO6uB,EAAM7uB,MAAOoqI,OAAQv7G,EAAMu7G,QAEhH,IAAzB+z9B,EAAYpqsB,SAEV,CAAEr4Z,EAAGmzB,EAAM6gH,IAAK/zI,EAAIwimC,EAAY/z9B,OAASv7G,EAAMs2F,KAAOt2F,EAAM7uB,MAAQA,MAAO6uB,EAAMu7G,OAAQA,OAAQv7G,EAAM7uB,OAIvG,CAAEtE,EAAGmzB,EAAMs2F,KAAMxpH,EAAGkzB,EAAM6gH,IAAK1vI,MAAO6uB,EAAM7uB,MAAOoqI,OAAQv7G,EAAMu7G,QAuBzE,CAAE1uI,EAAGmzB,EAAMs2F,KAAMxpH,EAAGkzB,EAAM6gH,IAAK1vI,MAAO6uB,EAAM7uB,MAAOoqI,OAAQv7G,EAAMu7G,OAEhF,EACAu09B,EAAWxsmC,UAAU6//B,gBAAkB,WAEnC,IADA,IAAIy5G,EAAgBjqnC,KAAKipiC,UAAU0nC,qBAC1BxkkC,EAAI,EAAGA,EAAI89mC,EAAc7mnC,OAAQ+I,IAAK,CAC3C,IAAIoulB,EAAc0vhB,EAAc99mC,GAEhC,GADAnM,KAAKm7B,cAAgBjK,SAASg8T,eAAeqtQ,EAAYpkkB,IAChC,YAArBokkB,EAAY3tlB,KACZ5M,KAAKm7B,cAAcv5B,MAAQ24lB,EAAY34lB,WAEtC,GAAyB,gBAArB24lB,EAAY3tlB,KACjB5M,KAAKm7B,cAAc2wB,QAAUyuiB,EAAY34lB,MACrC24lB,EAAY34lB,OACZ5B,KAAK2inC,oBAAoB3inC,KAAKm7B,oBAGjC,GAAyB,aAArBo/jB,EAAY3tlB,KACjB5M,KAAKm7B,cAAcv5B,MAAQ24lB,EAAY34lB,WAEtC,GAAyB,aAArB24lB,EAAY3tlB,KACjB5M,KAAKm7B,cAAc2wB,QAAUyuiB,EAAY34lB,WAExC,GAAyB,mBAArB24lB,EAAY3tlB,KAA2B,CAE5C,IAAIuyH,EAAan/H,KAAKipiC,UAAUlkR,UAAUxqL,EAAYpkkB,IAClDgpG,IACIn/H,KAAKm7B,eAAkD,8CAAjCn7B,KAAKm7B,cAAcp6B,YACzCf,KAAKm7B,cAAcp6B,UAAY,kCAC/Bf,KAAKm7B,cAAch1B,MAAM44R,cAAgB,GACzC/+R,KAAK2inC,oBAAoB3inC,KAAKm7B,cAAe,KAEjDn7B,KAAKipiC,UAAU91gC,OAAOgsG,GACtBn/H,KAAKipiC,UAAUsb,gBAEvB,CACyB,gBAArBhqd,EAAY3tlB,MAA+C,mBAArB2tlB,EAAY3tlB,MAClD5M,KAAK2inC,oBAAoB3inC,KAAKm7B,cAEtC,CACJ,EAKAgilC,EAAWxsmC,UAAUi1iC,sBAAwB,WAEvBhijC,KAAKmgB,MAAM0sB,KAAK+mF,UAAUxmG,OAAOor0B,gBAAgBh51B,OAAS,MAE5E,GAAIpD,KAAKkpiC,cAAcga,gBAAiB,CAIpC,IAHA,IAAI+oD,EAAgBj7kC,OAAOor0B,eAAeh51B,OAEtC4omC,EAAiB,GACZ7/lC,EAAI,EAAGA,EAAI8/lC,EAAe9/lC,IAC3B6kB,OAAOor0B,eAAe9v1B,IAAIH,IAAM6kB,OAAOor0B,eAAe9v1B,IAAIH,GAAGwmB,MAAM,KAAK,KACrB,eAA/C3B,OAAOor0B,eAAe9v1B,IAAIH,GAAGwmB,MAAM,KAAK,IAKY,iBAA/C3B,OAAOor0B,eAAe9v1B,IAAIH,GAAGwmB,MAAM,KAAK,MAH7C3yB,KAAKkpiC,cAAc23C,iBAAiB7vjC,OAAOor0B,eAAe9v1B,IAAIH,IAAM6kB,OAAOor0B,eAAe3woB,QAAQz6L,OAAOor0B,eAAe9v1B,IAAIH,IAC5H6/lC,EAAe5/lC,KAAK4kB,OAAOor0B,eAAe9v1B,IAAIH,KAQ1D,GAAI6/lC,EACA,IAAS7/lC,EAAI,EAAGA,EAAI6/lC,EAAe5omC,OAAQ+I,IACvC6kB,OAAOor0B,eAAerwoB,WAAWig5B,EAAe7/lC,GAG5D,CACJ,EAEAgxmC,EAAWxsmC,UAAUu5mC,gBAAkB,SAAU3+C,GAE7C,IAAIrhiC,EAAOlqC,KAAKkpiC,cAAco/D,0BAA0B,eACxD,GAAIp+jC,EAAM,CAEN,IAAI+7yB,OAAiB,EAEjBA,EADAslP,EACiB,CAACA,GAGD96hC,KAAKuL,MAAM9R,GAGhC,IADA,IAAIiglC,GAAe,EACVppmC,EAAI,EAAGA,EAAIkl0B,EAAe7i1B,OAAQ2d,IAAK,CAE5C,IAAIw5kB,EAAc0rP,EAAell0B,GAOjC,GANIwqjC,IACAhxe,EAAYtiQ,SAAWszuB,EAAUp1iC,GACjCokkB,EAAYkrd,KAAO8lB,EAAU3+jC,MAGjC5M,KAAKm7B,cAAgBjK,SAASg8T,eAAeqtQ,EAAYtiQ,UAChC,YAArBsiQ,EAAYkrd,KACZzljC,KAAKm7B,cAAcv5B,MAAQ,QAE1B,GAAyB,gBAArB24lB,EAAYkrd,KACb0kE,IACAnqnC,KAAKm7B,cAAc2wB,SAAU,EAC7B9rD,KAAK2inC,oBAAoB3inC,KAAKm7B,eAC9BgvlC,GAAe,QAGlB,GAAyB,aAArB5vhB,EAAYkrd,KACjBzljC,KAAKm7B,cAAcv5B,MAAQ24lB,EAAY+shB,SAAS,QAE/C,GAAyB,aAArB/shB,EAAYkrd,KACjBzljC,KAAKm7B,cAAc2wB,SAAU,OAE5B,GAAyB,mBAArByuiB,EAAYkrd,MAAkD,iBAArBlrd,EAAYkrd,KAAyB,CAEnF,IAAItm7B,EAAan/H,KAAKipiC,UAAUlkR,UAAUxqL,EAAYtiQ,UAC1B,gBAAxB94N,EAAWuL,WACXvL,EAAan/H,KAAKipiC,UAAUlkR,UAAUxqL,EAAYtiQ,SAAW,aAE7D94N,IACIn/H,KAAKm7B,eAAkD,8CAAjCn7B,KAAKm7B,cAAcp6B,YACzCf,KAAKm7B,cAAcp6B,UAAY,kCAC/Bf,KAAKm7B,cAAch1B,MAAM44R,cAAgB,GACzC/+R,KAAKm7B,cAAc06P,cAAc1vR,MAAM44R,cAAgB,GACvD/+R,KAAK2inC,oBAAoB3inC,KAAKm7B,cAAe,IACzCowiC,IACAA,EAAU3pkC,MAAQ,GAClB2pkC,EAAU/qB,cAAgB,CAAC+qB,EAAU/qB,eACrC+qB,EAAU/qB,cAAc,GAAK,KAGrCxgjC,KAAKipiC,UAAU9p6B,WAAW4q/B,qBAAqB5q/B,EAAWhpG,IAElE,CACyB,mBAArBokkB,EAAYkrd,MAAkD,QAArBlrd,EAAYkrd,MAAuC,gBAArBlrd,EAAYkrd,MACnFzljC,KAAK2inC,oBAAoB3inC,KAAKm7B,cAEtC,CACJ,CACJ,EAMAgilC,EAAWxsmC,UAAU4+hC,oBAAsB,SAAUjzhC,GACjD,OAAQA,GAAU,GAAK,GAC3B,EAIA6gmC,EAAWxsmC,UAAUymI,QAAU,WAC3Bp3I,KAAKm7B,cAAgB,KACrBn7B,KAAKm3lC,mBAAqB,GACtBn3lC,KAAKkpiC,eAAiBlpiC,KAAKkpiC,cAAcuU,iBACzCz9iC,KAAKkpiC,cAAcuU,gBAAgBrm6B,SAC3C,EAIA+l+B,EAAWxsmC,UAAUo8U,cAAgB,WACjC,MAAO,YACX,EAQAowxB,EAAWxsmC,UAAUo9jC,aAAe,SAAU9tiC,EAAMskc,EAAM/hB,GACtD,IAEIymI,EADAhukB,EADSiW,SAASpwB,cAAc,UACf67d,WAAW,MAMhC,OAJI4H,IACA0kH,EAAW1kH,QAAoB/hB,GAEnCvnc,EAAQspd,KAAO0kH,GAAYz2T,iBAAiBthQ,SAASzd,MAAM8wd,KACpDtpd,EAAQ+44B,YAAY/z3B,GAAMzhB,KACrC,EAMA2+lC,EAAWxsmC,UAAUq9jC,YAAc,SAAU/uxB,GACzC,OAAOA,CAEX,EACOk+zB,CACX,CAp1FgC,GCR5Bj3jC,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAmBzCgkkC,IAA8B,SAAUtjkC,GAKxC,SAASsjkC,IACL,IAAI9qnC,EAAQwnD,EAAOnnD,KAAKK,OAASA,KAsBjC,OAlBAV,EAAMihmC,YAAc,GAKpBjhmC,EAAMo1kC,QAAU,GAIhBp1kC,EAAM+qnC,WAAa,OAInB/qnC,EAAMgrnC,WAAa,OAInBhrnC,EAAMirnC,QAAU,UACTjrnC,CACX,CA8CA,OA1EA4mD,IAAUkkkC,EAActjkC,GA6BxBrnD,OAAO4c,eAAe+tmC,EAAaz5mC,UAAW,SAAU,CAIpD+F,IAAK,WACD,OAAO1W,KAAKugmC,WAChB,EAIA7mlC,IAAK,SAAU9X,GACX5B,KAAKugmC,YAAc3+lC,EACnB5B,KAAKygkC,QAAS,CAClB,EACAtojC,YAAY,EACZE,cAAc,IAMlB+xmC,EAAaz5mC,UAAU44P,QAAU,SAAUkksB,GAavC,OAZIzt8B,KAAKygkC,SAA4B,YAAjBzgkC,KAAKuqnC,cAAwClnnC,IAAfrD,KAAKwe,YAAuCnb,IAAhBrD,KAAK4oJ,UAC/E5oJ,KAAKwqnC,YlB0UV,SAAsB5zmC,EAAQ4zmC,GACjC,IAAIrsD,EAAiB,iBAErBntiC,OAAOmtiC,GAAgBh4jC,MAAMohQ,WAAa,UAE1C,IAAIsqQ,EAAe7gf,OAAOmtiC,GAAgBr4jC,SAAS,GACnD+rgB,EAAa78e,aAAa,MAAOpe,GACjC,IAAI+tvB,EAAS9yP,EAAap9O,wBACtBj2Q,EAAQmmvB,EAAOnmvB,MACfoqI,EAAS+7mB,EAAO/7mB,OAIpB,OAHA4h+B,EAAc,IAAI9oL,IAAKlj7B,EAAOoqI,GAE9B53H,OAAOmtiC,GAAgBh4jC,MAAMohQ,WAAa,SACnCij3B,CACX,CkBxV+BC,CAAazqnC,KAAK4W,OAAQ5W,KAAKwqnC,aAClDxqnC,KAAKygkC,QAAS,QAECp9jC,IAAfrD,KAAKwe,YAAuCnb,IAAhBrD,KAAK4oJ,QACjC5oJ,KAAK8gkC,YAAc,IAAIp/H,IAAK1h8B,KAAKwe,MAAOxe,KAAK4oJ,QAC7C5oJ,KAAKwqnC,YAAcxqnC,KAAK8gkC,aAGxB9gkC,KAAK8gkC,YAAc9gkC,KAAKwqnC,YAE5BxqnC,KAAK8gkC,YAAc9gkC,KAAKyhkC,oBAAoBzhkC,KAAK8gkC,YAAarzH,GACvDzt8B,KAAK8gkC,WAChB,EAKAspD,EAAaz5mC,UAAU+wjC,QAAU,SAAUZ,GAGvC,OAFA9gkC,KAAK28wB,WAAa,IAAI+kL,IAAK1h8B,KAAK8gkC,YAAYtijC,MAAOxe,KAAK8gkC,YAAYl46B,QACpE5oJ,KAAK2hkC,eACE3hkC,KAAK28wB,UAChB,EACOytW,CACX,CA5EkC,CA4EhC7pD,KCpFEmqD,IAAiC,WACjC,SAASA,EAAgBhmnC,EAAMimnC,GAE3B3qnC,KAAKsgU,SAAW,KAGhBtgU,KAAK2qnC,WAAY,EACjB3qnC,KAAKq1kC,UAAY3wkC,EACjB1E,KAAKmV,QAAU0qjC,IAAkB7/jC,KAAKq1kC,WACtCr1kC,KAAK2qnC,UAAYA,EACjB3qnC,KAAKsgU,SAAW,IAAIy+nB,GAExB,CA+JA,OAzJA2rL,EAAgB/5mC,UAAUm++B,cAAgB,SAAU35+B,EAASynd,EAAQgupB,EAAWryjC,EAAWo8gC,EAAWk2C,EAAcj2C,EAAav+L,GAEzHlh4B,aAAmB09G,IAEnB7yH,KAAKq33B,gBAAgBli3B,EAASynd,EAAQgupB,EAAWryjC,EAAWo8gC,EAAWk2C,EAAcj2C,EAAav+L,GAE7Flh4B,aAAmBi1mC,IACxBpqnC,KAAK8qnC,mBAAmB31mC,EAASynd,EAAQrka,EAAWo8gC,EAAWC,GAE1Dz/jC,aAAmBkujC,IACxBrjkC,KAAK+qnC,kBAAkB51mC,EAASynd,EAAQrka,EAAWo8gC,EAAWC,GAEzDz/jC,aAAmB8sjC,IACxBjikC,KAAKgrnC,kBAAkB71mC,EAASynd,EAAQrka,EAAWo8gC,EAAWC,GAG9D50kC,KAAKirnC,WAAW91mC,EAASynd,EAAQrka,EAAWo8gC,EAEpD,EAEA+1C,EAAgB/5mC,UAAUm6mC,mBAAqB,SAAU31mC,EAASynd,EAAQrka,EAAWo8gC,EAAWC,GAC5F,IAIIzxS,EACAC,EACA8nV,EACAC,EAPArsmC,EAAU9e,KAAKornC,kBAAkBj2mC,EAASojD,GAQ9C,GAPAz5C,EAAQyg7B,aAAe,EACvBv/7B,KAAKsgU,SAASkpe,cAAc5sU,EAAQ99c,GAMZ,YAApB3J,EAAQo1mC,QACRpnV,EAAahuxB,EAAQwnwB,WAAWn+vB,MAChC4kxB,EAAcjuxB,EAAQwnwB,WAAW/znB,WAEhC,CACD,IAAIw6I,EAAejuR,EAAQq1mC,YAAYhsmC,MACnC6kR,EAAgBluR,EAAQq1mC,YAAY5h+B,OACpCk3wB,EAAahh5B,EAAQN,MAAQ4kR,EAC7B28nB,EAAcjh5B,EAAQ8pI,OAASy6I,EAC/Bu9nB,OAAQ,EACZ,OAAQzr5B,EAAQo1mC,SACZ,IAAK,OAEDpnV,EAAa//f,GADbw9nB,EAAQh95B,KAAKgmD,IAAIk22B,EAAYC,IAE7B38H,EAAc//f,EAAgBu9nB,EAC9B9h5B,EAAQ5E,GAAKtW,KAAK8Y,IAAIoC,EAAQN,MAAQ2kxB,GAAc,EACpDrkxB,EAAQ3E,GAAKvW,KAAK8Y,IAAIoC,EAAQ8pI,OAASw6oB,GAAe,EACtD,MACJ,IAAK,QACD08H,EAAahh5B,EAAQN,MAAQ4kR,EAC7B28nB,EAAcjh5B,EAAQ8pI,OAASy6I,EAE/B8/f,EAAa//f,GADbw9nB,EAAQh95B,KAAKqpC,IAAI6y3B,EAAYC,IAE7B38H,EAAc//f,EAAgBu9nB,EAC9BsqN,EAAcpsmC,EAAQN,MAAQ2kxB,EAAa//f,EAC3C+n1B,EAAersmC,EAAQ8pI,OAASw6oB,EAAc//f,EAC9C,MACJ,IAAK,OACD8/f,EAAa//f,EACbgggB,EAAc//f,EAG1B,CACAvkR,EAAQN,MAAQ2kxB,EAChBrkxB,EAAQ8pI,OAASw6oB,EAIjBtkxB,EAAQosmC,YAAcA,EACtBpsmC,EAAQqsmC,aAAeA,EACvBrsmC,EAAQlI,OAASzB,EAAQyB,OACzBkI,EAAQk9P,UAAY7mQ,EAAQm1mC,WAC5BxrmC,EAAQy+c,MAAQpod,EAAQk1mC,WACxBvrmC,EAAQ41jC,QAAUv/jC,EAAQu/jC,QAC1B10kC,KAAKsgU,SAAS0+J,UAAUpC,EAAQ99c,EAAS61jC,EAAWC,EACxD,EAEA81C,EAAgB/5mC,UAAUo6mC,kBAAoB,SAAU51mC,EAASynd,EAAQrka,EAAWo8gC,EAAWC,GAC3F,IAAI91jC,EAAU9e,KAAKornC,kBAAkBj2mC,EAASojD,GAC9Cz5C,EAAQorB,KAAO/0B,EAAQqujC,aACvB1kjC,EAAQorB,KAAO/0B,EAAQqujC,aACPrujC,EAAQghB,GACnBn2B,KAAK2qnC,YACN7rmC,EAAQ5E,EAAI4E,EAAQ5E,EACpB4E,EAAQ3E,EAAI2E,EAAQ3E,GAExBna,KAAKsgU,SAAS0ve,SAASpzU,EAAQ99c,EACnC,EAEA4rmC,EAAgB/5mC,UAAUq6mC,kBAAoB,SAAU71mC,EAASynd,EAAQrka,EAAWo8gC,EAAWC,GAC3F,IAAI91jC,EAAU9e,KAAKornC,kBAAkBj2mC,EAASojD,GAC9Cz5C,EAAQyg7B,aAAe,EACvBzg7B,EAAQ86uB,WAAa2lU,IAAmBpqjC,EAAQhP,MAAMyzvB,WAAYzkvB,EAAQhP,MAAM+4jC,cAChFpgjC,EAAQ/J,QAAUI,EAAQJ,QAC1B+J,EAAQ+/iC,UAAYW,IAAkBrqjC,EAAQhP,MAAM+4jC,cACpDpgjC,EAAQ0ld,UAAYi7lB,IAAkBtqjC,EAAQhP,MAAMq+d,WACpD1ld,EAAQ23G,MAAQthH,EAAQhP,MAAMswH,MAC9B33G,EAAQwxG,OAASn7G,EAAQhP,MAAMmqH,OAC/BxxG,EAAQsxG,KAAOj7G,EAAQhP,MAAMiqH,KAC7BtxG,EAAQmgS,SAAW9pS,EAAQhP,MAAM84S,SACjCngS,EAAQ0jc,WAAartc,EAAQhP,MAAMq8c,WACnC1jc,EAAQugjC,aAAelqjC,EAAQhP,MAAMk5jC,aACrCvgjC,EAAQ23jB,eAAiBthkB,EAAQhP,MAAMswkB,eACvC33jB,EAAQwgjC,OAASnqjC,EAAQmqjC,OACzBxgjC,EAAQsgjC,WAAajqjC,EAAQiqjC,WAC7BtgjC,EAAQqqB,WAAah0B,EAAQg0B,WAC7BrqB,EAAQog7B,UAAY,GACpBpg7B,EAAQswH,YAAc,EACtBtwH,EAAQ0nE,KAAOrxE,EAAQhP,MAAMqgF,KACbrxE,EAAQJ,QAAUI,EAAQJ,QAAUI,EAAQghB,GAC5Dn2B,KAAKsgU,SAASkpe,cAAc5sU,EAAQ99c,GACpC9e,KAAKsgU,SAAS8mf,SAASxqV,EAAQ99c,EACnC,EAEA4rmC,EAAgB/5mC,UAAU0m3B,gBAAkB,SAAU/4yB,EAAOs+Y,EAAQgupB,EAAWryjC,EAAWo8gC,EAAWk2C,EAAcj2C,EAAav+L,GAC7H990B,EAAY,CAAEspa,GAAI,EAAGC,GAAI,EAAGvE,MAAO,GAMnC,GAJIv9d,KAAKq1kC,UAGTr1kC,KAAKirnC,WAAW3siC,EAAOs+Y,EAAQrka,EAAWo8gC,GACtCr2/B,EAAMj4B,cAGN,IAFA,IAES/2C,EAAK,EAAGgmC,EAAKgpC,EAAMx4E,SAAUwJ,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CACxD,IAAI63C,EAAQ7R,EAAGhmC,GACftP,KAAK8u/B,cAAc3n8B,EAAkBy1a,EAAQgupB,EAAWryjC,EAAWo8gC,GAAW,EAAMC,EAAav+L,EACrG,CAER,EAEAq0O,EAAgB/5mC,UAAUs6mC,WAAa,SAAU91mC,EAASynd,EAAQrka,EAAWo8gC,GACzE,IAAI71jC,EAAU9e,KAAKornC,kBAAkBj2mC,EAASojD,GAC9Cz5C,EAAQyg7B,aAAepq7B,EAAQoq7B,cAAgB,EAC/Bpq7B,EAAQghB,GACxBn2B,KAAKsgU,SAASkpe,cAAc5sU,EAAQ99c,EACxC,EAEA4rmC,EAAgB/5mC,UAAUy6mC,kBAAoB,SAAUj2mC,EAASojD,GAC7D,IAAIz5C,EAAU,CACVN,MAAOrJ,EAAQwnwB,WAAWn+vB,MAAOoqI,OAAQzzI,EAAQwnwB,WAAW/znB,OAC5D1uI,EAAG/E,EAAQo9U,QAAUp9U,EAAQwnwB,WAAWn+vB,MAAQrJ,EAAQogiC,MAAMr7hC,EAAI,GAClEC,EAAGhF,EAAQq9U,QAAUr9U,EAAQwnwB,WAAW/znB,OAASzzI,EAAQogiC,MAAMp7hC,EAAI,GACnEqsE,KAAMrxE,EAAQhP,MAAMqgF,KAAM+zqB,OAAQplvB,EAAQhP,MAAMs3d,YAAalsD,MAAOp8Z,EAAQ+7vB,YAAc/7vB,EAAQqgiC,gBAClGC,OAAQtgiC,EAAQogiC,MAAMr7hC,EAAGw7hC,OAAQvgiC,EAAQogiC,MAAMp7hC,EAAGi1H,YAAaj6H,EAAQhP,MAAMipI,YAC7E8vzB,UAAW/p7B,EAAQhP,MAAM+uiC,iBAAmB,GAAI5m6B,QAASn5H,EAAQhP,MAAMmoI,QACvEuhK,QAAS16R,EAAQ06R,QAAS15Q,GAAIhhB,EAAQghB,GAAIwo6B,SAAUxp7B,EAAQhP,MAAMw47B,UAMtE,OAJIpm4B,IACAz5C,EAAQ5E,GAAKq+C,EAAUspa,GACvB/id,EAAQ3E,GAAKo+C,EAAUupa,IAEpBhjd,CACX,EACO4rmC,CACX,CA5KqC,GCXjCxkkC,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAuBzCilkC,IAAwB,SAAUvkkC,GAElC,SAASukkC,IACL,IAAI/rnC,EAAmB,OAAXwnD,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,KAMhE,OADAV,EAAMijkC,qBAAkBl/jC,EACjB/D,CACX,CAuMA,OAhNA4mD,IAAUmlkC,EAAQvkkC,GAclBukkC,EAAO16mC,UAAU44P,QAAU,SAAUkksB,GACjC,IAAIi1H,OAAUr/jC,EACVi/jC,OAAgBj/jC,EACpB,GAAIrD,KAAKqmD,cAAe,CAEpB,IAAK,IAAI/2C,EAAK,EAAGgmC,EAAKt1C,KAAK8F,SAAUwJ,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CACvD,IAAI63C,EAAQ7R,EAAGhmC,GACf,GAAI63C,aAAiB86gC,IAAa,CAC9B,IAAI96gC,EAAM+6gC,WAKN,MAJAz0H,EAAcjv7B,MAAQiv7B,EAAcjv7B,OAASxe,KAAK82H,UAAY92H,KAAKipgB,SACnE9hd,EAAMoiN,QAAQkksB,EAKtB,MACWtm5B,aAAiB86gC,KACxB96gC,EAAMoiN,QAAQkksB,GAElB,IAAIw1H,EAAY97gC,EAAM25gC,YAAYv/jC,QACR,IAAtB4lD,EAAM+ptB,cACN+xT,EAAYhD,IAAWgD,EAAW97gC,EAAM+ptB,cAE5C,IAAIttoB,EAAQq/7B,EAAUzkjC,MAAQ2oC,EAAMkoQ,OAAOzrL,MACvC+wJ,EAASsuyB,EAAUr66B,OAASzhG,EAAMkoQ,OAAO16B,OACzC8tyB,EAAc,IAAI5gI,IAAK164B,EAAMkoQ,OAAO1rL,KAAMx8E,EAAMkoQ,OAAOnhK,IAAKtqB,EAAO+wJ,GACvE,GAAIxtO,EAAMk6gC,MAEN,QAAiBh+jC,IADF8jD,EAAMq6gC,oBAAoByB,GAErC,SAGD97gC,aAAiB86gC,OAAkB96gC,aAAiB86gC,KAAe96gC,EAAMg7gC,0BACtD9+jC,IAAlBi/jC,EACAA,EAAgBG,EAGhBH,EAAcvF,UAAU0F,GAGpC,CACA,GAAIH,EAAe,CACf,IAAI/xT,EACAC,EACJD,EAAa3swB,KAAKqpC,IAAIq1hC,EAAc3+7B,KAAM,GAC1C6soB,EAAY5swB,KAAKqpC,IAAIq1hC,EAAcp06B,IAAK,GACxCw06B,EAAU,IAAIhhI,IAAK4gI,EAAc9jjC,MAAQ+xvB,EAAY+xT,EAAc156B,OAAS4nnB,EAChF,CACJ,CAIA,OAHAkyT,EAAU57gC,EAAOn2C,UAAU8wjC,oBAAoB9hkC,KAAKK,KAAM0ikC,EAASj1H,GACnE3m5B,EAAOn2C,UAAUmyjC,gBAAgBnjkC,KAAKK,KAAM0ikC,GAC5C1ikC,KAAK8gkC,YAAc4B,EACZA,CACX,EAIA2oD,EAAO16mC,UAAU+wjC,QAAU,SAAUZ,GAEjC,GADA9gkC,KAAKsrnC,YAAc,IAAIzpL,IACnB7h8B,KAAKqmD,cAAe,CACpB,IAAIlsC,EACAD,EACJC,EAAIna,KAAKwyV,QAAUsuuB,EAAYl46B,OAAS5oJ,KAAKu1iC,MAAMp7hC,EACnDD,EAAIla,KAAKuyV,QAAUuuuB,EAAYtijC,MAAQxe,KAAKu1iC,MAAMr7hC,EAClD,IAAK,IAAI5K,EAAK,EAAGgmC,EAAKt1C,KAAK8F,SAAUwJ,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CACvD,IAAI63C,EAAQ7R,EAAGhmC,GACf,GAAmD,KAA9C63C,EAAMoR,UAAY03/B,IAAgB4Q,QAAe,CAClD15gC,EAAMqu/B,gBAAkBx1iC,KAAKw1iC,gBAAkBx1iC,KAAKkxwB,YACpD,IAAI+xT,EAAY97gC,EAAM25gC,YAAYv/jC,QAC9BqrwB,OAAU,EACV7we,EAAS,CAAE7hR,EAAG,EAAGC,EAAG,GACpBoxmC,EAASrxmC,EACTsxmC,EAASrxmC,EACb,GAA2B,UAAvBgtC,EAAMw5gC,aAA0B,CAChC,IAAIz2+B,EAAW/iC,EAAMq6gC,oBAAoBV,QACxBz9jC,IAAb6mF,IACAqhiC,GAAUrhiC,EAAShwE,EACnBsxmC,GAAUthiC,EAAS/vE,EAE3B,CAQA,GADA4hR,EAAS,CAAE7hR,GALP0yvB,EADuB,WAAvBzltB,EAAMw5gC,aACI3gkC,KAAKyrnC,wBAAwBtkkC,EAAO87gC,EAAWnC,EAAayqD,EAAQC,GAGpExrnC,KAAK0rnC,wBAAwBvkkC,EAAOokkC,EAAQC,IAEpCtxmC,EAAI+ojC,EAAUzkjC,MAAQ,EAAGrE,EAAGyyvB,EAAQzyvB,EAAI8ojC,EAAUr66B,OAAS,GAC7EzhG,EAAMq5gC,YAAa,CACnB,IAAIA,EAAc,CACdtmjC,EAAGla,KAAKuyV,SAAWprS,EAAMq5gC,YAAYtmjC,GAAK,GAC1CC,EAAGna,KAAKwyV,SAAWrrS,EAAMq5gC,YAAYrmjC,GAAK,IAE1CmzlC,EAAc,CAAEpzlC,EAAGla,KAAKuyV,QAASp4U,EAAGna,KAAKwyV,SACzC++E,EAAkC,EAA1BpqX,EAAMq5gC,YAAYjvpB,MAC1B82N,EAASura,MACbO,IAAa9ra,EAAQ92N,EAAO+7rB,EAAYpzlC,EAAGozlC,EAAYnzlC,GACvD4hR,EAAS+3wB,IAAuBzra,EAAQm4b,EAC5C,CACA15gC,EAAOn2C,UAAUoyjC,0BAA0BpjkC,KAAKK,KAAMmnD,EAAO40O,EACjE,CACmC,YAA9B50O,EAAMu5gC,qBAAiE,YAA5Bv5gC,EAAMwxtB,kBAClDxxtB,EAAMu6gC,QAAQZ,GAGV35gC,aAAiB86gC,KAAe96gC,EAAM+6gC,YACtC/6gC,EAAMu6gC,QAAQv6gC,EAAM25gC,aACpB9gkC,KAAKsrnC,YAAYvuD,UAAU51gC,EAAMmkkC,cAE1BnkkC,aAAiB86gC,MACxB96gC,EAAMu6gC,QAAQv6gC,EAAM25gC,aACpB9gkC,KAAKsrnC,YAAYvuD,UAAU51gC,EAAMmkkC,aAG7C,CACJ,CAIA,OAHAtrnC,KAAK28wB,WAAamkT,EAClB9gkC,KAAK2hkC,eACL3hkC,KAAKsrnC,YAAYvuD,UAAU/8jC,KAAK2kwB,QACzBm8T,CACX,EASAuqD,EAAO16mC,UAAU86mC,wBAA0B,SAAUtkkC,EAAO87gC,EAAW0oD,EAAYzxmC,EAAGC,GAClF,OAAQgtC,EAAMu5gC,qBACV,IAAK,OACL,IAAK,OACDxmjC,GAAKitC,EAAMkoQ,OAAO1rL,KAClB,MACJ,IAAK,QACDzpH,GAAKyxmC,EAAWntmC,MAAQykjC,EAAUzkjC,MAAQ2oC,EAAMkoQ,OAAOzrL,MACvD,MACJ,IAAK,UACL,IAAK,SACD1pH,GAAKyxmC,EAAWntmC,MAAQ,EAAIykjC,EAAUzkjC,MAAQ,EAGtD,OAAQ2oC,EAAMwxtB,mBACV,IAAK,OACL,IAAK,MACDx+vB,GAAKgtC,EAAMkoQ,OAAOnhK,IAClB,MACJ,IAAK,SACD/zI,GAAKwxmC,EAAW/i+B,OAASq66B,EAAUr66B,OAASzhG,EAAMkoQ,OAAO16B,OACzD,MACJ,IAAK,UACL,IAAK,SACDx6Q,GAAKwxmC,EAAW/i+B,OAAS,EAAIq66B,EAAUr66B,OAAS,EAGxD,MAAO,CAAE1uI,EAAGA,EAAGC,EAAGA,EACtB,EAOAkxmC,EAAO16mC,UAAU+6mC,wBAA0B,SAAUvkkC,EAAOjtC,EAAGC,GAG3D,OAFAD,GAAKitC,EAAMkoQ,OAAO1rL,KAAOx8E,EAAMkoQ,OAAOzrL,MACtCzpH,GAAKgtC,EAAMkoQ,OAAOnhK,IAAM/mG,EAAMkoQ,OAAO16B,OAC7BxtO,EAAMu5gC,qBACV,IAAK,OACL,IAAK,OAED,MACJ,IAAK,UACL,IAAK,SACDxmjC,GAAKitC,EAAM25gC,YAAYtijC,MAAQ2oC,EAAMou/B,MAAMr7hC,EAC3C,MACJ,IAAK,QACDA,GAAKitC,EAAM25gC,YAAYtijC,MAG/B,OAAQ2oC,EAAMwxtB,mBACV,IAAK,OACL,IAAK,MAED,MACJ,IAAK,UACL,IAAK,SACDx+vB,GAAKgtC,EAAM25gC,YAAYl46B,OAASzhG,EAAMou/B,MAAMp7hC,EAC5C,MACJ,IAAK,SACDA,GAAKgtC,EAAM25gC,YAAYl46B,OAG/B,MAAO,CAAE1uI,EAAGA,EAAGC,EAAGA,EACtB,EACOkxmC,CACX,CAlN4B,CAkN1Bx4/B,KCzOE3sE,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAkBzCwlkC,IAAoC,SAAU9kkC,GAU9C,SAAS8kkC,EAAmBviT,GACxB,IAAI/p0B,EAAQwnD,EAAOnnD,KAAKK,OAASA,KAEjC,OADAV,EAAMsghB,WAAatghB,EAAMk0b,iBAAiB61Y,GACnC/p0B,CACX,CA0BA,OAvCA4mD,IAAU0lkC,EAAoB9kkC,GAc9B8kkC,EAAmBj7mC,UAAU6ib,iBAAmB,SAAUjwZ,GACtD,GAAIA,EAAU,CAGV,IACI,GAAIrS,SAAS1gB,iBAAiB+yB,GAAUngC,OACpC,OAAO22qB,GAAqB7opB,SAAS0I,cAAc2J,GAAU2F,UAAUzW,OAE/E,CACA,MAAOpyB,KACH,OAAO05qB,GAAqBx2oB,EAChC,CACJ,CAEJ,EAQAqolC,EAAmBj7mC,UAAUk7mC,gBAAkB,WAC3C,OAAO7rnC,KAAK4/gB,UAChB,EACOgsmB,CACX,CAzCwC,CAyCtCrrD,KCvCEurD,IAAyB,WACzB,SAASA,EAAQt7D,GACbxwjC,KAAK+rnC,iBAAkB,EACvB/rnC,KAAKipiC,UAAYunB,EACjBxwjC,KAAKsgU,SAAW,IAAIoqzB,IAAgB,6BAA6B,GACjE1qnC,KAAKgsnC,YAAc,IAAItvL,GAC3B,CAs/GA,OAh/GAovL,EAAQn7mC,UAAUs7mC,aAAe,SAAUz7D,GACvC,IAAIp72B,EAAco72B,EAAOp72B,YACzB,GAAIA,EACA,IAAK,IAAIjpM,EAAI,EAAGA,EAAIipM,EAAYhyM,OAAQ+I,IAAK,CACzC,IAAIgzH,EAAai2E,EAAY7oL,SAASpgB,EAAE2K,WAAY,KACpD9W,KAAKksnC,WAAW/s/B,EACpB,CAER,EACA2s/B,EAAQn7mC,UAAUw7mC,qBAAuB,SAAUC,GAC/C,IAAIp1B,EAAc,IAAI3rC,IAItB,OAHArrjC,KAAKipiC,UAAUt65B,SACfqo9B,EAAYo1B,OAASpsnC,KAAKipiC,UAAUt65B,OACpC3uI,KAAKipiC,UAAU+tD,YAAY5qlC,KAAK4qlC,GACzBA,CACX,EAMA80B,EAAQn7mC,UAAUy2jC,aAAe,SAAUglD,GACvC,IAAIp1B,EACJ,QAA0C3zlC,IAAtCrD,KAAKipiC,UAAU+tD,YAAY5zlC,OAAsB,CAEjD,IADA,IAAIipnC,GAAW,EACNlgnC,EAAI,EAAGA,EAAInM,KAAKipiC,UAAU+tD,YAAY5zlC,OAAQ+I,IACnD,GAAInM,KAAKipiC,UAAU+tD,YAAYzqkC,SAASpgB,EAAE2K,WAAY,KAAKs1mC,SAAWA,EAAQ,CAC1EC,GAAW,EACXr1B,EAAch3lC,KAAKipiC,UAAU+tD,YAAYzqkC,SAASpgB,EAAE2K,WAAY,KAChE,KACJ,CAEAu1mC,KACAr1B,EAAch3lC,KAAKmsnC,qBAAqBC,IAC5BA,OAASA,EAE7B,MAEIp1B,EAAch3lC,KAAKmsnC,qBAAqBC,GAE5C,OAAOp1B,CACX,EAOA80B,EAAQn7mC,UAAUuob,UAAY,SAAUzsa,EAAO5b,GAC3C,QAAsBxN,IAAlBwN,EAAIila,UAAyB,CAC7B,IAAIqxpB,EAAYnnkC,KAAKonkC,aAAav2jC,EAAIila,WACtC,IAAoB,IAAhBjla,EAAI89H,OACJw47B,EAAUx47B,SACV99H,EAAI89H,OAASw47B,EAAUx47B,OACvBw47B,EAAUlonB,QAAQ7yc,KAAKyE,OAEtB,CACaA,EAAI89H,OAAlB,IACI29+B,EAAcnlD,EAAUlonB,QAAQ77c,OACpCyN,EAAI89H,OAAS29+B,IACbnlD,EAAUlonB,QAAQ7yc,KAAKyE,EAC3B,CACJ,CACJ,EAMAi7mC,EAAQn7mC,UAAUu7mC,WAAa,SAAUr7mC,GAqBrC,OAnBA7Q,KAAKk5b,UAAUl5b,KAAKipiC,UAAUt65B,OAAQ99H,GtByQvC,WACH,IAAIstjC,EAAiB,iBAErB,GAAKntiC,OAAOmtiC,GA2BRntiC,OAAOmtiC,GAAgBouD,YAAc,MA3BZ,CACzB,IAMI16mB,EANAy9E,EAAawwe,IAAkB,MAAO,CACtC3piC,GAAI,iBACJhwB,MAAO,oEAEP85B,EAAO6/hC,IAAkB,OAAQ,CAAE,MAAS,+CAChDxwe,EAAW59jB,YAAYuO,GAEvB4xe,EAAeiujB,IAAkB,MAAO,CAAC,GACzCxwe,EAAW59jB,YAAYmgf,GACvB,IAAI1xe,EAAMjP,SAASmxI,gBAAgB,6BAA8B,OACjEliI,EAAInL,aAAa,QAAS,gCAC1Bs6jB,EAAW59jB,YAAYyO,GACvB,IAAIhrB,EAAU+b,SAASmxI,gBAAgB,6BAA8B,QACrEliI,EAAIzO,YAAYvc,GACL+b,SAASS,eAAe,IAAnC,IACIgs6B,EAAQzs6B,SAASmxI,gBAAgB,6BAA8B,QACnEs7xB,EAAMpy5B,eAAe,uCAAwC,YAAa,YAC1EpL,EAAIzO,YAAYis6B,GAEhB3s6B,OAAOmtiC,GAAkB7ue,EAEzBt+jB,OAAOmtiC,GAAgBouD,WAAa,EACpCr7lC,SAASzd,KAAKie,YAAY49jB,EAC9B,CAKJ,CsBxSQk9hB,GACK13E,IAAajkiC,IAId7Q,KAAKysnC,SAAS57mC,GACdA,EAAI1G,QAAQo/P,QAAQ,IAAIm4rB,SAAKr+7B,OAAWA,IACxCwN,EAAI1G,QAAQu3jC,QAAQ7wjC,EAAI1G,QAAQ22jC,cALhC9gkC,KAAK0snC,SAAS77mC,GAOdA,EAAI1G,QAIRnK,KAAKipiC,UAAUlkR,UAAUl0wB,EAAIslB,IAAMtlB,EAC/BA,EAAIokiC,yBACJj1iC,KAAK2ukC,mBAAmB99jC,EAAK,CAAE8zvB,OAAQ,CAAEnmvB,MAAO3N,EAAI8zvB,OAAOnmvB,MAAOoqI,OAAQ/3I,EAAI8zvB,OAAO/7mB,UAGlF/3I,CACX,EACAi7mC,EAAQn7mC,UAAU+7mC,SAAW,SAAU77mC,GACnC,IACIkE,EADA6nd,EAAS58d,KAAK2snC,cAAc97mC,GAE3B+rd,EAAO92d,WACR82d,EAAO92d,SAAW,IAEjBiP,IACDA,EAAU/U,KAAKm3B,KAAKtmB,EAAK+rd,IAG7BA,EAAOs0S,YAAcrgwB,EAAIqgwB,YAEzBt0S,EAAOrzN,QAAQ,IAAIm4rB,IAAK7w7B,EAAI1G,QAAQqU,MAAO3N,EAAI1G,QAAQy+I,SACvDg0U,EAAO8kmB,QAAQ9kmB,EAAOkkmB,aAClB9gkC,KAAK+rnC,kBACL/rnC,KAAKipiC,UAAU9p6B,WAAW4t8B,sBAAsBC,qBAAqBn8jC,EAAK,KAAM,gBAChF7Q,KAAK+rnC,iBAAkB,EAE/B,EAUAD,EAAQn7mC,UAAUwmB,KAAO,SAAUtmB,EAAK+rd,GACpC,IAAI7nd,EACJA,EAAU,IAAIwrjC,IAGd,IAEI/c,EAAqBxjjC,KAAKipiC,UAAUgb,iBAAmBjkjC,KAAKipiC,UAAUgb,iBAAiBwmB,uBAAuB55jC,GAAO,CAAC,EACtH65jC,EAAsB,EACtBC,EAAqB,EACrBC,EAAsB,EACtBC,EAAqB,GACrBrnB,EAAmBv6iB,UAAYu6iB,EAAmB1s7B,UAAY0s7B,EAAmB5tiB,WAAa4tiB,EAAmB59mB,aACjH8koB,EAAsBlnB,EAAmB59mB,UAAY49mB,EAAmB59mB,UAAY,IACpF+koB,EAAqBnnB,EAAmB1s7B,SAAW0s7B,EAAmB1s7B,SAAW,IACjF8z8B,EAAsBpnB,EAAmB5tiB,UAAY4tiB,EAAmB5tiB,UAAY,EACpFi1jB,EAAqBrnB,EAAmBv6iB,SAAWu6iB,EAAmBv6iB,SAAW,GAErF,IAAI6hkB,GAAkB,EAgDtB,OA/CIF,GAAuBC,GAAsBH,GAAuBC,KACpEG,GAAkB,IAGlB/1jC,EADAlE,EAAIokiC,wBACMj1iC,KAAK4snC,eAAe/7mC,EAAKkE,EAAS6nd,GAIlC58d,KAAK6snC,qBAAqBh8mC,EAxBpCi8mC,UAwBsD/3mC,EAAS6nd,GAtBrD,EADVmwpB,UAuB8FjiD,EAAiBJ,EAAqBC,EAAoBE,EAAoBD,IAExKz0iC,GAAKtlB,EAAIslB,GAAK,WACtBphB,EAAQ4rjC,aAAe,SACS,UAA5B9vjC,EAAIkkiC,2BACqB1xiC,IAArBwN,EAAI8zvB,OAAOnmvB,QACXzJ,EAAQyJ,MAAQ3N,EAAI8zvB,OAAOnmvB,MACvBssjC,IACK/1jC,EAAQyJ,MAAQqsjC,GAAwB91jC,EAAQyJ,MAAQmsjC,KACrD51jC,EAAQyJ,MAAQqsjC,IAChB91jC,EAAQyJ,MAAQqsjC,GAEhB91jC,EAAQyJ,MAAQmsjC,IAChB51jC,EAAQyJ,MAAQmsjC,KAKhC51jC,EAAQ2rjC,oBAAsB,eACJr9jC,IAAtBwN,EAAI8zvB,OAAO/7mB,SACX7zI,EAAQ6zI,OAAS/3I,EAAI8zvB,OAAO/7mB,OACxBki7B,IACK/1jC,EAAQ6zI,OAASgi7B,GAAyB71jC,EAAQyJ,MAAQksjC,KACvD31jC,EAAQ6zI,OAASgi7B,IACjB71jC,EAAQ6zI,OAASgi7B,GAEjB71jC,EAAQ6zI,OAAS8h7B,IACjB31jC,EAAQ6zI,OAAS8h7B,KAKjC11B,IAAgBnkiC,EAAKkE,GACjB/U,KAAKipiC,UAAUgzB,WAAW3hB,uBAAqD,kBAA5BzpiC,EAAIkkiC,sBACvDhgiC,EAAQ5O,MAAMipI,YAAc,IAGpCr6H,EAAQksjC,eAAgB,EACxBlsjC,EAAQ4jwB,kBAAoB,UACrB5jwB,CACX,EACA+2mC,EAAQn7mC,UAAUi8mC,eAAiB,SAAU/7mC,EAAKkE,EAAS6nd,GACvD,OAAQ/rd,EAAIokiC,yBACR,IAAK,UACL,IAAK,gBACL,IAAK,WACL,IAAK,cACL,IAAK,eACL,IAAK,UACL,IAAK,iBACL,IAAK,gBAGDlgiC,EADkB,IAAI62mC,KAEdz1lC,GAAKtlB,EAAIslB,GAAK,WACtBymc,EAAO92d,SAASsG,KAAK2I,GAG7B,OAAOA,CACX,EAEA+2mC,EAAQn7mC,UAAUk8mC,qBAAuB,SAAUh8mC,EAAKi8mC,EAAa/3mC,EAAS6nd,EAAQwwmB,EAAS2/C,EAAcjiD,EAAiBJ,EAAqBC,EAAoBE,EAAoBD,GACvL,OAAQ/5jC,EAAIkkiC,qBACR,IAAK,UAMD,IALA+3E,EAAc,IAAIzpD,KACNn5hC,KAAO,sKAEnBn1B,EAAU+3mC,EACVlwpB,EAAO92d,SAASsG,KAAK2I,GACjBlE,EAAI48jC,kBACAt3e,EAAYn2lB,KAAKmgf,YAAYtve,IACvBkE,QAAUlE,EAAI68jC,aACxBv3e,EAAUhwlB,MAAMswH,MAAQ5lH,EAAIo6f,UAC5BkrF,EAAUhwlB,MAAMs3d,YAAc5sd,EAAIgqmC,iBAClC1khB,EAAUhwlB,MAAMqgF,KAAO31E,EAAI8olC,eAC3BxjgB,EAAUhwlB,MAAM84S,SAAWpuS,EAAIouS,SAC/Bk3S,EAAUhwlB,MAAMq8c,WAAa3xc,EAAI2xc,WACjC2zI,EAAUhwlB,MAAMmoI,QAAUz9H,EAAI+olC,aAC9Bh9nB,EAAO92d,SAASsG,KAAK+plB,GAEzB,MACJ,IAAK,QACD22hB,EAAc,IAAIzpD,KACNn5hC,KAAOr5B,EAAIq5B,KACvBn1B,EAAU+3mC,EACVlwpB,EAAO92d,SAASsG,KAAK2I,GACrB,MACJ,IAAK,uBACL,IAAK,OACD+3mC,EAAc,IAAIzpD,KACNn5hC,KAAOr5B,EAAIq5B,KACvB4ilC,EAAY3mnC,MAAMs3d,YAAc5sd,EAAI4sd,YACpCqvpB,EAAY3mnC,MAAMipI,YAAcv+H,EAAIu97B,UACpC0+K,EAAY3mnC,MAAMmoI,QAAUz9H,EAAIy9H,QAChCv5H,EAAU+3mC,EACVlwpB,EAAO92d,SAASsG,KAAK2I,GACrB,MACJ,IAAK,WACD+3mC,EAAc,IAAIzpD,KACNn5hC,KAAO27hC,IAAeh1jC,EAAIqzjC,cACtCnvjC,EAAU+3mC,EACVlwpB,EAAO92d,SAASsG,KAAK2I,GACrB,MACJ,IAAK,QAOD,GANAq4jC,GAAU,EACVptkC,KAAK+rnC,iBAAkB,EACnBl7mC,GAAOA,EAAIgnmC,oBAAgD,wBAA1BhnmC,EAAIgnmC,mBAAyE,wBAA1BhnmC,EAAIgnmC,qBACxFhnmC,EAAI8zvB,OAAOnmvB,MAAQ3N,EAAI8zvB,OAAOnmvB,MAAQ,GACtC3N,EAAI8zvB,OAAO/7mB,OAAS/3I,EAAI8zvB,OAAO/7mB,OAAS,IAExC/3I,EAAIovkC,eAAgB,CACpBrjnB,EAAO8jmB,oBAAsB,QAE7B3rjC,EADAg4mC,EAAe,IAAIxsD,KAEXhhI,aAAe,GACvBxq7B,EAAQ5O,MAAMqgF,KAAO31E,EAAI28jC,eACzBz4jC,EAAQ5O,MAAMs3d,YAAc5sd,EAAIm8mC,iBAChCpwpB,EAAO92d,SAASsG,KAAK2I,GACrB,IAAIk4mC,EAAYjtnC,KAAKmgf,YAAYtve,IACjCo8mC,EAAY,IAAIhrD,KACN97jC,MAAMq8c,WAAa,YAC7ByqqB,EAAU9mnC,MAAM84S,SAAW,GAC3Bgu0B,EAAU9mnC,MAAMmqH,QAAS,EACzB28/B,EAAU9mnC,MAAMiqH,MAAO,EACvB68/B,EAAU9mnC,MAAMswH,MAAQ5lH,EAAI8s4B,UAC5BsvO,EAAUzsD,iBAAcn9jC,EACxB4pnC,EAAUl4mC,QAAUlE,EAAI2siC,YACxByvE,EAAUtsD,aAAe,QACzBssD,EAAU59zB,OAAO1rL,KAAO,GACxBsp/B,EAAU59zB,OAAO16B,QAAU,EAC3Bs41B,EAAU1rD,6BAA6B,EAAG,IAAM,MAChD0rD,EAAUtsD,aAAe,QACzB/jmB,EAAO92d,SAASsG,KAAK6gnC,IAEjBC,EAAe,IAAI7pD,KACVltiC,GAAK6hU,MAAa,SAC/Bk1xB,EAAahjlC,KAAOr5B,EAAIq5B,KACxBgjlC,EAAa1umC,MAAQ3N,EAAI8zvB,OAAOnmvB,MAC5BssjC,GAAoBj6jC,EAAI8zvB,OAAOnmvB,MAAQmsjC,IACvCuiD,EAAa1umC,MAAQmsjC,EACrB95jC,EAAI8zvB,OAAOnmvB,MAAQmsjC,GAEvBuiD,EAAatk+B,OAAS/3I,EAAI8zvB,OAAO/7mB,OAAS,EACtCki7B,GAAoBj6jC,EAAI8zvB,OAAO/7mB,OAAS8h7B,IACxCwiD,EAAatk+B,OAAS8h7B,EAAsB,EAC5C75jC,EAAI8zvB,OAAO/7mB,OAAS8h7B,EAAsB,GAE9CwiD,EAAa1sD,iBAAcn9jC,EAC3B6pnC,EAAa79zB,OAAO1rL,KAAO,GAC3Bup/B,EAAa79zB,OAAO16B,QAAU,EAC9Bu41B,EAAavsD,aAAe,QAC5BusD,EAAa3rD,6BAA6B,EAAG,GAAK,MAElD,IAAI4rD,EAAWD,EACfA,EAAa/mnC,MAAMqgF,KAAO31E,EAAI8s4B,UAC9BuvO,EAAa/mnC,MAAMs3d,YAAc5sd,EAAI4sd,YACrCyvpB,EAAa/mnC,MAAMmoI,QAAUz9H,EAAIy9H,QACjCv5H,EAAQyJ,MAAQ3N,EAAI8zvB,OAAOnmvB,MAAQ,GACnCzJ,EAAQ6zI,OAAS/3I,EAAI8zvB,OAAO/7mB,OAAS,GACrC7zI,EAAQ5O,MAAMmoI,QAAUz9H,EAAIy9H,QAC5BsuV,EAAO92d,SAASsG,KAAK+gnC,EACzB,KACK,CASD,IAAID,EARJtwpB,EAAO8jmB,oBAAsB,QAE7B3rjC,EADAg4mC,EAAe,IAAIxsD,KAEXhhI,aAAe,GACvBxq7B,EAAQ5O,MAAMqgF,KAAO31E,EAAI28jC,eACzBz4jC,EAAQ5O,MAAMs3d,YAAc5sd,EAAIm8mC,iBAChCpwpB,EAAO92d,SAASsG,KAAK2I,IAEjBm4mC,EAAe,IAAI7pD,KACVltiC,GAAK6hU,MAAa,SAC/Bk1xB,EAAahjlC,KAAOr5B,EAAIq5B,KACxBgjlC,EAAa1umC,MAAQ3N,EAAI8zvB,OAAOnmvB,MAC5BssjC,GAAoBj6jC,EAAI8zvB,OAAOnmvB,MAAQmsjC,IACvCuiD,EAAa1umC,MAAQmsjC,EACrB95jC,EAAI8zvB,OAAOnmvB,MAAQmsjC,GAEvBuiD,EAAatk+B,OAAS/3I,EAAI8zvB,OAAO/7mB,OAC7Bki7B,GAAoBj6jC,EAAI8zvB,OAAO/7mB,OAAS8h7B,IACxCwiD,EAAatk+B,OAAS8h7B,EACtB75jC,EAAI8zvB,OAAO/7mB,OAAS8h7B,GAExBwiD,EAAajknB,SAAWiknB,EAAa1umC,MAAQ,EAC7C0umC,EAAat3mB,UAAYs3mB,EAAatk+B,OAAS,EAE3Cuk+B,EAAWD,EACfA,EAAa/mnC,MAAMqgF,KAAO31E,EAAI8s4B,UAC9BuvO,EAAa/mnC,MAAMs3d,YAAc5sd,EAAI4sd,YACrCyvpB,EAAa/mnC,MAAMmoI,QAAUz9H,EAAIy9H,QACjCv5H,EAAQyJ,MAAQ3N,EAAI8zvB,OAAOnmvB,MAAQ,GACnCzJ,EAAQ6zI,OAAS/3I,EAAI8zvB,OAAO/7mB,OAAS,GACrC7zI,EAAQk0f,SAAWiknB,EAAa1umC,MAAQ,EACxCzJ,EAAQ6ggB,UAAYs3mB,EAAatk+B,OAAS,EAC1C7zI,EAAQ5O,MAAMmoI,QAAUz9H,EAAIy9H,QAC5BsuV,EAAO92d,SAASsG,KAAK+gnC,GACrBvwpB,EAAOg5C,UAAY7ggB,EAAQ6ggB,UAAY,GACvCh5C,EAAOqsC,SAAWl0f,EAAQk0f,SAAW,EACzC,CACA,MACJ,IAAK,QACL,IAAK,iBAED,IAAImknB,EAAgB,IAAIhD,IACxBgD,EAAcx2mC,OAAS/F,EAAIq5B,MAC3Bn1B,EAAUq4mC,GACFjnnC,MAAMipI,YAAc,EAC5BwtV,EAAO92d,SAASsG,KAAK2I,GACrB,MACJ,IAAK,YAKG,IAAIohlB,EADR,GAFAphlB,EADAg4mC,EAAe,IAAIxsD,IAEnB3jmB,EAAO92d,SAASsG,KAAK2I,GACjBlE,EAAI48jC,kBACAt3e,EAAYn2lB,KAAKmgf,YAAYtve,IACvBkE,QAAUlE,EAAI68jC,aACxBv3e,EAAUhwlB,MAAMswH,MAAQ5lH,EAAIo6f,UAC5BkrF,EAAUhwlB,MAAMs3d,YAAc5sd,EAAIgqmC,iBAClC1khB,EAAUhwlB,MAAMqgF,KAAO31E,EAAI8olC,eAC3BxjgB,EAAUhwlB,MAAM84S,SAAWpuS,EAAIouS,SAC/Bk3S,EAAUhwlB,MAAMq8c,WAAa3xc,EAAI2xc,WACjC2zI,EAAUhwlB,MAAMmoI,QAAUz9H,EAAI+olC,aAC9Bh9nB,EAAO92d,SAASsG,KAAK+plB,GAEzB,MACJ,IAAK,aACD22hB,EAAc,IAAIzpD,KACNn5hC,KAAO,sKAEnBn1B,EAAU+3mC,EACV93E,IAAgBnkiC,EAAKi8mC,GACrBlwpB,EAAO92d,SAASsG,KAAK2I,IACrBg4mC,EAAe,IAAIxsD,KACNpqiC,GAAK,aAAe6hU,MACjC+0xB,EAAank+B,OAAS,GACtBmk+B,EAAavumC,MAAQ,GACrBuumC,EAAax0jC,UAAY03/B,IAAgB2Q,KACzCmsD,EAAarsD,oBAAsB,UACnC1gkC,KAAKqtnC,gBAAgBN,EAAcl8mC,GACnCk8mC,EAAa77W,YAAcrgwB,EAAIqgwB,YAC/B8jS,IAAgBnkiC,EAAKk8mC,GACrBnwpB,EAAO92d,SAASsG,KAAK2gnC,GAErB,IAAIjnD,EAAU9lkC,KAAKmgf,YAAYtve,IAC/Bi1jC,EAAU,IAAI7D,KACNltjC,QAAU+wjC,EAAQ/wjC,QAAUqgiC,IAAiB,CACjD,CAAEl7hC,EAAGrJ,EAAI8zvB,OAAOzqvB,EAAGC,EAAGtJ,EAAI8zvB,OAAOxqvB,GACjC,CAAED,EAAGrJ,EAAI8zvB,OAAOzqvB,EAAIrJ,EAAI8zvB,OAAOnmvB,MAAOrE,EAAGtJ,EAAI8zvB,OAAOxqvB,EAAItJ,EAAI8zvB,OAAO/7mB,UACpE9xI,WACHgvjC,EAAQtF,YAAc,CAAErmjC,GAAI,GAAIo3Z,MAAO1ga,EAAIqgwB,aAC3Ct0S,EAAO92d,SAASsG,KAAK05jC,GACrB,MACJ,IAAK,UACDgnD,EAAc,IAAIzpD,KACNn5hC,KAAO,sKAEnBn1B,EAAU+3mC,EACV93E,IAAgBnkiC,EAAKi8mC,GACrBlwpB,EAAO92d,SAASsG,KAAK2I,IACrBg4mC,EAAe,IAAIxsD,KACNpqiC,GAAK,UAAY6hU,MAC9B+0xB,EAAank+B,OAAS,GACtBmk+B,EAAavumC,MAAQ3N,EAAI8zvB,OAAOnmvB,MAAQ,EACxCuumC,EAAax0jC,UAAY03/B,IAAgB2Q,KACzC5gkC,KAAKqtnC,gBAAgBN,EAAcl8mC,GACnCk8mC,EAAa77W,YAAcrgwB,EAAIqgwB,YAC/B8jS,IAAgBnkiC,EAAKk8mC,GACrBnwpB,EAAO92d,SAASsG,KAAK2gnC,GAErB,IAAIO,EAAgBttnC,KAAKmgf,YAAYtve,GACjCA,EAAI48jC,mBACJ6/C,EAAcnnnC,MAAMswH,MAAQ5lH,EAAIo6f,UAChCqinB,EAAcnnnC,MAAMs3d,YAAc5sd,EAAIgqmC,iBACtCyS,EAAcnnnC,MAAMqgF,KAAO31E,EAAI8olC,eAC/B2zB,EAAcnnnC,MAAM84S,SAAWpuS,EAAIouS,SACnCqu0B,EAAcnnnC,MAAMq8c,WAAa3xc,EAAI2xc,WACrC8qqB,EAAcnnnC,MAAMmoI,QAAUz9H,EAAI+olC,cAGvBxkD,IAAiB,CAC5B,CAAEl7hC,EAAGrJ,EAAI8zvB,OAAOzqvB,EAAGC,EAAGtJ,EAAI8zvB,OAAOxqvB,GACjC,CAAED,EAAGrJ,EAAI8zvB,OAAOzqvB,EAAIrJ,EAAI8zvB,OAAOnmvB,MAAOrE,EAAGtJ,EAAI8zvB,OAAOxqvB,EAAItJ,EAAI8zvB,OAAO/7mB,WAElE5oJ,KAAKipiC,UAAUskF,mCAAqC18mC,EAAI+0jC,OAAuB,KAAd/0jC,EAAI+0jC,MACtE0nD,EAAcv4mC,QAAUlE,EAAI+0jC,MAI5B0nD,EAAcv4mC,QAAU/U,KAAKipiC,UAAU9p6B,WAAW0q7B,wBAAwB2jE,cAAe38mC,EAAI8zvB,OAAOnmvB,MAAQ,EAAKxe,KAAKipiC,UAAU9p6B,WAAW0q7B,wBAAwB4jE,mBAAoB58mC,GAE3Ly8mC,EAAc9sD,YAAc,CAAErmjC,GAAI,GAAID,EAAGrJ,EAAI8zvB,OAAOnmvB,MAAQ,EAAG+yZ,MAAO1ga,EAAIqgwB,aAC1Et0S,EAAO92d,SAASsG,KAAKkhnC,GACrB,MACJ,IAAK,cAED,IAAII,EAAe,IAAItD,IACvBsD,EAAa92mC,OAAS/F,EAAIq5B,KAC1BwjlC,EAAalvmC,MAAQ3N,EAAI8zvB,OAAOnmvB,MAChCkvmC,EAAa9k+B,OAAS/3I,EAAI8zvB,OAAO/7mB,OACjC8k+B,EAAavnnC,MAAMs3d,YAAc5sd,EAAI4sd,YACrCiwpB,EAAavnnC,MAAMipI,YAAc,EACjCr6H,EAAU24mC,EACV9wpB,EAAO92d,SAASsG,KAAK2I,GACrB,MACJ,IAAK,gBAED,IAAI44mC,EAAe,IAAIptD,IACvBotD,EAAaxnnC,MAAMipI,YAAc,GACjCr6H,EAAU44mC,GACFxnnC,MAAMipI,YAAc,EAC5BwtV,EAAOz2d,MAAMipI,YAAc,EAC3BwtV,EAAO92d,SAASsG,KAAK2I,GAErB,IAAI64mC,EAAgB5tnC,KAAKmgf,YAAYtve,GACrC+8mC,EAAcznnC,MAAMq8c,WAAa3xc,EAAI2xc,WACrCorqB,EAAcznnC,MAAM84S,SAAWpuS,EAAIouS,SACnC2u0B,EAAcznnC,MAAMq+d,UAAY,OAChCoppB,EAAcptD,iBAAcn9jC,EAC5BuqnC,EAAc74mC,QAAUlE,EAAIq5B,KAC5B0jlC,EAAcznnC,MAAMipI,YAAc,EAClCwtV,EAAO92d,SAASsG,KAAKwhnC,GACrB,MACJ,IAAK,WAGD74mC,EADkB,IAAIwrjC,IAEtB3jmB,EAAO92d,SAASsG,KAAK2I,GAErB,IAAI84mC,EAAc7tnC,KAAKmgf,YAAYtve,IACnCg9mC,EAAc,IAAI5rD,KACN97jC,MAAMq8c,WAAa3xc,EAAI2xc,WACnCqrqB,EAAY1nnC,MAAM84S,SAAWpuS,EAAIouS,SACjC4u0B,EAAY1nnC,MAAMq+d,UAAY,OACM,WAAhC3zd,EAAI2zd,UAAU9jd,cACdmtmC,EAAY1nnC,MAAMq+d,UAAY,SAEO,UAAhC3zd,EAAI2zd,UAAU9jd,cACnBmtmC,EAAY1nnC,MAAMq+d,UAAY,QAEO,YAAhC3zd,EAAI2zd,UAAU9jd,gBACnBmtmC,EAAY1nnC,MAAMq+d,UAAY,WAElCqppB,EAAY1nnC,MAAMswH,MAAQ5lH,EAAIo6f,UAC9B4inB,EAAY1nnC,MAAMiqH,KAAOv/G,EAAI0zd,KAAKsxG,OAClCg4iB,EAAY1nnC,MAAMmqH,OAASz/G,EAAI0zd,KAAKuxG,UACP,IAAzBjlkB,EAAI0zd,KAAKwxG,YACT83iB,EAAY1nnC,MAAMswkB,eAAiB,aAEL,IAAzB5lkB,EAAI0zd,KAAK4mlB,cACd0iE,EAAY1nnC,MAAMswkB,eAAiB,eAEvCo3iB,EAAYrtD,iBAAcn9jC,EAC1BwqnC,EAAY94mC,QAAUlE,EAAI2siC,YAC1BqwE,EAAY1nnC,MAAMmoI,QAAUz9H,EAAIy9H,QAChCu/+B,EAAYx+zB,OAAO1rL,KAAO,EAC1Bkq/B,EAAYx+zB,OAAOnhK,IAAWr9I,EAAIouS,SAAW,GAApB,EACrBj/S,KAAKipiC,UAAUqlE,iBAAiB+C,cAChCwc,EAAY1nnC,MAAM+4jC,aAAe,OAGjC2uD,EAAY1nnC,MAAM+4jC,aAAe,mBAErC2uD,EAAYltD,aAAe,QAC3BktD,EAAYtsD,6BAA6B,EAAG,EAAG,MAC/CssD,EAAYltD,aAAe,QAC3B/jmB,EAAO92d,SAASsG,KAAKyhnC,GAqC7B,OAlCA94mC,EAAQohB,GAAKtlB,EAAIslB,GAAK,WACtBphB,EAAQ4rjC,aAAe,SAClByM,SACwB/pkC,IAArBwN,EAAI8zvB,OAAOnmvB,QACXzJ,EAAQyJ,MAAQ3N,EAAI8zvB,OAAOnmvB,MACvBssjC,IACK/1jC,EAAQyJ,MAAQqsjC,GAAwB91jC,EAAQyJ,MAAQmsjC,KACrD51jC,EAAQyJ,MAAQqsjC,IAChB91jC,EAAQyJ,MAAQqsjC,GAEhB91jC,EAAQyJ,MAAQmsjC,IAChB51jC,EAAQyJ,MAAQmsjC,KAKhC51jC,EAAQ2rjC,oBAAsB,eACJr9jC,IAAtBwN,EAAI8zvB,OAAO/7mB,SACX7zI,EAAQ6zI,OAAS/3I,EAAI8zvB,OAAO/7mB,OACxBki7B,IACK/1jC,EAAQ6zI,OAASgi7B,GAAyB71jC,EAAQyJ,MAAQksjC,KACvD31jC,EAAQ6zI,OAASgi7B,IACjB71jC,EAAQ6zI,OAASgi7B,GAEjB71jC,EAAQ6zI,OAAS8h7B,IACjB31jC,EAAQ6zI,OAAS8h7B,KAKjC11B,IAAgBnkiC,EAAKkE,IAEzBA,EAAQksjC,eAAgB,EACxBlsjC,EAAQ4jwB,kBAAoB,UACrB5jwB,CACX,EACA+2mC,EAAQn7mC,UAAUwve,YAAc,SAAUtve,GACtC,IAAIi1jC,EAAU,IAAI7D,IAMlB,OALAjtB,IAAgBnkiC,EAAKi1jC,GACrBA,EAAQpF,oBAAsB,SACF,kBAA5B7vjC,EAAIkkiC,oBAA0C+wB,EAAQntT,kBAAoB,SAAWmtT,EAAQntT,kBAAoB,MACjHmtT,EAAQnF,aAAe,SACvBmF,EAAQvE,6BAA6B,GAAI,GAAI,YACtCuE,CACX,EAOAgmD,EAAQn7mC,UAAU08mC,gBAAkB,SAAUx8mC,EAAKX,GAC/C,GAAiC,cAA7BA,EAAK6kiC,oBACLlkiC,EAAI0hV,QAAUriV,EAAKy0vB,OAAOzqvB,EAAIhK,EAAKy0vB,OAAOnmvB,MAAQ,EAClD3N,EAAI2hV,QAAUtiV,EAAKy0vB,OAAOxqvB,EAAIjK,EAAKy0vB,OAAO/7mB,OAAS,OAElD,GAAiC,WAA7B14I,EAAK6kiC,oBAAkC,CAE5C,IAAIi8B,EAAY,CAAE92jC,EAAGhK,EAAKy0vB,OAAOzqvB,EAAKhK,EAAKy0vB,OAAOnmvB,MAAQ,EAAMtO,EAAKy0vB,OAAOnmvB,MAAQ,EAAIrE,EAAGjK,EAAKy0vB,OAAOxqvB,EAAKjK,EAAKy0vB,OAAO/7mB,OAAS,GAC7HmzI,EAAS,CAAE7hR,EAAIhK,EAAKy0vB,OAAOzqvB,EAAKhK,EAAKy0vB,OAAOnmvB,MAAQ,EAAKrE,EAAIjK,EAAKy0vB,OAAOxqvB,EAAKjK,EAAKy0vB,OAAO/7mB,OAAS,GACnGy/e,EAASura,MACbO,IAAa9ra,EAAQn4nB,EAAKghwB,YAAan1e,EAAO7hR,EAAG6hR,EAAO5hR,GACxD,IAAI8rjC,EAAenyB,IAAuBzra,EAAQ2oc,GAC9C9K,EAAY,CAAEhsjC,EAAG+rjC,EAAa/rjC,EAAGC,EAAG8rjC,EAAa9rjC,GACrDtJ,EAAI0hV,QAAU2zuB,EAAUhsjC,EACxBrJ,EAAI2hV,QAAU0zuB,EAAU/rjC,EACxBtJ,EAAI2N,MAAQtO,EAAKy0vB,OAAOnmvB,MAAQ,CACpC,CACJ,EAMAstmC,EAAQn7mC,UAAUg8mC,cAAgB,SAAU97mC,GACnCA,EAAIslB,KACLtlB,EAAIslB,GAAK6hU,OAGb,IAAI4kI,EAAS,IAAIyupB,IAQjB,OAPAzupB,EAAOzmc,GAAKtlB,EAAIslB,GAChBymc,EAAOrqI,QAAU1hV,EAAI8zvB,OAAOzqvB,EAAwB,GAAnBrJ,EAAI8zvB,OAAOnmvB,MAC5Co+c,EAAOpqI,QAAU3hV,EAAI8zvB,OAAOxqvB,EAAyB,GAApBtJ,EAAI8zvB,OAAO/7mB,OAC5Cg0U,EAAOz2d,MAAMqgF,KAAO,cACpBo2Y,EAAOz2d,MAAMs3d,YAAc,cAC3Bb,EAAOs0S,YAAcrgwB,EAAIqgwB,YACzBrgwB,EAAI1G,QAAUyyd,EACPA,CACX,EAOAkvpB,EAAQn7mC,UAAU87mC,SAAW,SAAU57mC,GAC9BA,EAAIslB,KACLtlB,EAAIslB,GAAK6hU,OAGb,IAAIlrV,EAAY,IAAIu+mC,IAChBz+R,EAAU,IAAIy2O,IAClBz2O,EAAQz2zB,GAAKtlB,EAAIslB,GAAK,QACtB,IAAI23lC,EAAe,IAAIzqD,IACnB0qD,EAAkB,IAAI1qD,IAC1B,GAAIxyjC,EAAIqzjC,aAAa9gkC,OAAQ,CACzByN,EAAIszjC,YAActzjC,EAAIqzjC,aAAa,GACnCrzjC,EAAIuzjC,YAAcvzjC,EAAIqzjC,aAAarzjC,EAAIqzjC,aAAa9gkC,OAAS,GAC7D,IAAK,IAAI+I,EAAI,EAAGA,EAAI0E,EAAIqzjC,aAAa9gkC,OAAQ+I,IAC/B,IAANA,GAAWA,IAAM0E,EAAIqzjC,aAAa9gkC,OAAS,GAC3CyN,EAAIm70B,SAAS5/0B,KAAKyE,EAAIqzjC,aAAa33iC,SAASpgB,EAAE2K,WAAY,KAGtE,CACA810B,Ef3kBD,SAA2B03O,EAAW0pD,GACzC,IAAIxupB,EAKJ,OAJAA,EAASwkmB,IAAmBM,GAC5B0pD,EAAehtD,YAAa,EAE5BhsB,IAAgBsvB,EADhB0pD,EAAiB3pD,IAAqBC,EAAW9kmB,EAAQwupB,IAElDA,CACX,CeokBkBC,CAAkBp9mC,EAAK+70B,GACjC,IAAIptX,EAAS,GACbA,EAASwkmB,IAAmBnzjC,GAE5B,IAAIq9mC,EAAU,GACV9inC,EAAS,GAQb,GAPgC,aAA5ByF,EAAIkkiC,sBACJm5E,Ef7SL,SAAqBr9mC,EAAK2ud,GAC7B,IAAI0upB,EAAU,GACVC,EAASpoD,IAAWl1jC,EAAK2ud,EAAO,GAAIA,EAAO,IAI/C,OAHA0upB,EAAQ9hnC,KAAK+hnC,GACbA,EAASpoD,IAAWl1jC,EAAK2ud,EAAO,GAAIA,EAAO,IAAI,GAC/C0upB,EAAQ9hnC,KAAK+hnC,GACND,CACX,CesSsBE,CAAYv9mC,EAAK2ud,GAC3Bp0d,Ef9eL,SAA2ByF,EAAK2ud,EAAQj2N,EAASwyzB,GACpD,IAAI3wjC,EAAS,GACTmma,EAAQsyX,IAAMwuQ,UAAU7ykB,EAAO,GAAIA,EAAO,IAC1CsmmB,EAAU3llB,IAAYtve,EAAK0ga,GAgB/B,OAfKwqpB,EAAUwxD,mCAAqC18mC,EAAI+0jC,OAAuB,KAAd/0jC,EAAI+0jC,MACjEE,EAAQ/wjC,QAAUlE,EAAI+0jC,MAGtBE,EAAQ/wjC,QAAUw0P,EAAQik3B,cAAcp4E,IAAiB,CAAC51kB,EAAO,GAAIA,EAAO,KAAOj2N,EAAQkk3B,mBAAoB58mC,GAEnHi1jC,EAAQtF,YAAc,CAAErmjC,GAAI,GAAIo3Z,MAAOA,IACV,IAAzB1ga,EAAI48jC,mBACJ3H,EAAQ3/jC,MAAMs3d,YAAc5sd,EAAIgqmC,iBAChC/0C,EAAQ3/jC,MAAMqgF,KAAO31E,EAAI8olC,eACzB7zB,EAAQ3/jC,MAAM84S,SAAWpuS,EAAIouS,SAC7B6mxB,EAAQ3/jC,MAAMswH,MAAQ5lH,EAAIo6f,UAC1B66jB,EAAQ3/jC,MAAMq8c,WAAa3xc,EAAI2xc,YAEnCp3c,EAAOgB,KAAK05jC,GACL16jC,CACX,Ce0dqBijnC,CAAkBx9mC,EAAK2ud,EAAQx/d,KAAKipiC,UAAU9p6B,WAAW0q7B,wBAAyB7pjC,KAAKipiC,YAEnE,SAA5Bp4hC,EAAIkkiC,qBAA8D,uBAA5BlkiC,EAAIkkiC,qBAAqE,cAApBlkiC,EAAI29jC,cAChGpjkC,EftaL,SAA4ByF,EAAK2ud,EAAQj2N,EAASwyzB,GACrD,IAAI3wjC,EAAS,GACTmma,EAAQsyX,IAAMwuQ,UAAU7ykB,EAAO,GAAIA,EAAO,IAC1CsmmB,EAAU3llB,IAAYtve,EAAK0ga,GAgB/B,OAfKwqpB,EAAUwxD,mCAAqC18mC,EAAI+0jC,OAAuB,KAAd/0jC,EAAI+0jC,MACjEE,EAAQ/wjC,QAAUlE,EAAI+0jC,MAGtBE,EAAQ/wjC,QAAUw0P,EAAQk8zB,mBAAmB50jC,IAEpB,IAAzBA,EAAI48jC,mBACJ3H,EAAQ3/jC,MAAMs3d,YAAc5sd,EAAIgqmC,iBAChC/0C,EAAQ3/jC,MAAMqgF,KAAO31E,EAAI8olC,eACzB7zB,EAAQ3/jC,MAAM84S,SAAWpuS,EAAIouS,SAC7B6mxB,EAAQ3/jC,MAAMswH,MAAQ5lH,EAAIo6f,UAC1B66jB,EAAQ3/jC,MAAMq8c,WAAa3xc,EAAI2xc,YAEnCsjnB,EAAQtF,YAAc,CAAErmjC,GAAI,GAAIo3Z,MAAOA,GACvCnma,EAAOgB,KAAK05jC,GACL16jC,CACX,CekZqBkjnC,CAAmBz9mC,EAAK2ud,EAAQx/d,KAAKipiC,UAAU9p6B,WAAW0q7B,wBAAyB7pjC,KAAKipiC,aAExE,IAAzBp4hC,EAAI48jC,kBAA2D,aAA5B58jC,EAAIkkiC,qBAA6D,cAApBlkiC,EAAI29jC,YAA8B,CAClH,IAAIj9pB,EAAQsyX,IAAMwuQ,UAAU7ykB,EAAO,GAAIA,EAAO,IAC1CsmmB,EAAU9lkC,KAAKmgf,YAAYtve,GAC/Bi1jC,EAAQ3viC,GAAK6hU,OACRh4V,KAAKipiC,UAAUskF,mCAAqC18mC,EAAI+0jC,OAAuB,KAAd/0jC,EAAI+0jC,MACtEE,EAAQ/wjC,QAAUlE,EAAI+0jC,MAGtBE,EAAQ/wjC,QAAUlE,EAAI68jC,aAE1B5H,EAAQ3/jC,MAAMs3d,YAAc5sd,EAAIgqmC,iBAChC/0C,EAAQ3/jC,MAAMqgF,KAAO31E,EAAI8olC,eACzB7zB,EAAQ3/jC,MAAM84S,SAAWpuS,EAAIouS,SAC7B6mxB,EAAQ3/jC,MAAMswH,MAAQ5lH,EAAIo6f,UAC1B66jB,EAAQ3/jC,MAAMq8c,WAAa3xc,EAAI2xc,WAC/BsjnB,EAAQ3/jC,MAAMmoI,QAAUz9H,EAAI+olC,aAC5B9zB,EAAQtF,YAAc,CAAErmjC,GAAI,GAAIo3Z,MAAOA,GACvCnma,EAAOgB,KAAK05jC,EAChB,CACAtmmB,EAASilmB,IAAe5zjC,EAAK2ud,GAC7B,IAAImlS,EAASk9L,IAAK47H,SAASj+lB,GAC3B1yd,EAAU0R,MAAQmmvB,EAAOnmvB,MACzB1R,EAAU87I,OAAS+7mB,EAAO/7mB,OAC1B97I,EAAUylV,QAAUoya,EAAOzqvB,EAAIpN,EAAUyoiC,MAAMr7hC,EAAIyqvB,EAAOnmvB,MAC1D1R,EAAU0lV,QAAUmya,EAAOxqvB,EAAIrN,EAAUyoiC,MAAMp7hC,EAAIwqvB,EAAO/7mB,OAC1D,IAAI2l+B,EAAc19mC,EAAIqzjC,aAiBtB,GAdgC,SAA5BrzjC,EAAIkkiC,qBAA8D,uBAA5BlkiC,EAAIkkiC,qBAA4E,aAA5BlkiC,EAAIkkiC,sBAC9F+4E,EAAe5oD,IAAoBr0jC,EAAK2ud,EAAO,GAAI+upB,EAAY,IAAI,GACnER,EAAkB7oD,IAAoBr0jC,EAAK2ud,EAAOA,EAAOp8d,OAAS,GAAImrnC,EAAYA,EAAYnrnC,OAAS,IAAI,IAE/G0qnC,EAAa33lC,GAAKtlB,EAAIslB,GAAK,UAC3B43lC,EAAgB53lC,GAAKtlB,EAAIslB,GAAK,UAE9By2zB,EAAQzm1B,MAAY,KAAI,cACxB2G,EAAU3G,MAAMs3d,YAAc,cAC9B3wd,EAAU3G,MAAMqgF,KAAO,cACvB15E,EAAU3G,MAAMipI,YAAc,EAC9BtiI,EAAUhH,SAAW,GACrBkviC,IAAgBnkiC,EAAK+70B,GACrB9/0B,EAAUhH,SAASsG,KAAKwg1B,GACpBshS,EAAQ9qnC,OAAS,EACjB,IAAS+I,EAAI,EAAGA,EAAI+hnC,EAAQ9qnC,OAAQ+I,IAChCW,EAAUhH,SAASsG,KAAK8hnC,EAAQ3hmC,SAASpgB,EAAE2K,WAAY,MAG/D,GAAI1L,EAAOhI,OAAS,EAChB,IAAS+I,EAAI,EAAGA,EAAIf,EAAOhI,OAAQ+I,IAC/BW,EAAUhH,SAASsG,KAAKhB,EAAOmhB,SAASpgB,EAAE2K,WAAY,MAkB9D,OAfAhK,EAAUhH,SAASsG,KAAK0hnC,GACxBhhnC,EAAUhH,SAASsG,KAAK2hnC,GACQ,uBAA5Bl9mC,EAAIkkiC,sBACJjoiC,EAAUhH,SAAS,GAAG0Y,MAAQ,GAAK3N,EAAIu97B,UACvCth8B,EAAUhH,SAAS,GAAG8iJ,OAAS,GAAK/3I,EAAIu97B,UACxCth8B,EAAUhH,SAAS,GAAG0Y,MAAQ,GAAK3N,EAAIu97B,UACvCth8B,EAAUhH,SAAS,GAAG8iJ,OAAS,GAAK/3I,EAAIu97B,WAE5Cth8B,EAAUqpB,GAAKtlB,EAAIslB,GACnBrpB,EAAUylV,QAAUq6f,EAAQr6f,QAC5BzlV,EAAU0lV,QAAUo6f,EAAQp6f,QAC5B1lV,EAAU0R,MAAQou0B,EAAQpu0B,MAC1B1R,EAAU87I,OAASgksB,EAAQhksB,OAC3B42U,EAASwkmB,IAAmBnzjC,GAC5BA,EAAI1G,QAAU2C,EACPA,CACX,EAMAg/mC,EAAQn7mC,UAAUyiB,IAAM,SAAUviB,GAC9B,IAAI48kC,EAAsBztlC,KAAKipiC,UAAU39sB,uBAazC,OAZAtrV,KAAKipiC,UAAUykD,yBAAwB,GACnC78kC,EAAIokiC,yBAA2Bj1iC,KAAKipiC,UAAUyiC,oBAC9C76jC,EAAM,IAAIu6iC,IAAiBprjC,KAAKipiC,UAAW,aAAcp4hC,GAAK,GAC9DA,EAAM7Q,KAAKksnC,WAAWr7mC,GACtB7Q,KAAKipiC,UAAUkgB,WAAW/8iC,KAAKyE,KAG/BA,EAAM,IAAIq6iC,IAAkBlrjC,KAAKipiC,UAAW,cAAep4hC,GAAK,GAChEA,EAAM7Q,KAAKksnC,WAAWr7mC,GACtB7Q,KAAKipiC,UAAU7z1B,YAAYhpM,KAAKyE,IAEpC7Q,KAAKipiC,UAAUykD,wBAAwBD,GAAqB,GACrD58kC,CACX,EAMAi7mC,EAAQn7mC,UAAUwiB,OAAS,SAAUtiB,GACjC,IAAI48kC,EAAsBztlC,KAAKipiC,UAAU39sB,uBACzCtrV,KAAKipiC,UAAUykD,yBAAwB,GAEvC,IADA,IAAIjhkC,EAAQ5b,EAAIila,UACP3pa,EAAI,EAAGA,EAAInM,KAAKipiC,UAAU7z1B,YAAYhyM,OAAQ+I,IAAK,CACxD,IAAIgzH,EAAan/H,KAAKipiC,UAAU7z1B,YAAY7oL,SAASpgB,EAAE2K,WAAY,KACnE,GAAKqoH,EAAWhpG,KAAOgpG,EAAWhpG,KAAOtlB,EAAIslB,IAAMgpG,EAAWhpG,GAAGxD,MAAM,KAAK,KAAO9hB,EAAIslB,KAASgpG,EAAWh1H,SAAWg1H,EAAWh1H,QAAQgsB,KAAOtlB,EAAIslB,GAAK,CACrJn2B,KAAKipiC,UAAU7z1B,YAAY5/K,OAAOrpB,EAAG,GAErC,IADA,IAAI8yc,EAAUj/c,KAAKwunC,eAAe39mC,EAAIila,WAC7B9la,EAAI,EAAGA,EAAIivc,EAAQ77c,OAAQ4M,IAC5Bivc,EAAQ1yb,SAASvc,EAAE8G,WAAY,KAAKqf,KAAOtlB,EAAIslB,KAC/C8ob,EAAQzpb,OAAOxlB,EAAG,GACc,SAA5Ba,EAAIkkiC,qBAA8D,mBAA5BlkiC,EAAIkkiC,qBAAwE,kBAA5BlkiC,EAAIkkiC,oBAC1F/0iC,KAAKyunC,+BAA0BprnC,EAAWopB,EAAO5b,EAAIslB,IAGrDn2B,KAAKipiC,UAAUsb,mBAAclhjC,EAAWopB,GAKxD,CACJ,CACA,IAAStgB,EAAI,EAAGA,EAAInM,KAAKipiC,UAAUkgB,WAAW/ljC,OAAQ+I,IAAK,CAEvD,IADIgJ,EAAUnV,KAAKipiC,UAAUkgB,WAAW58hC,SAASpgB,EAAE2K,WAAY,MACnDqf,KAAOtlB,EAAIslB,IAAMhhB,EAAQhL,QAAQgsB,KAAOtlB,EAAIslB,GAAI,CACxDn2B,KAAKipiC,UAAUkgB,WAAW3zhC,OAAOrpB,EAAG,GAChCnM,KAAKipiC,UAAUyiC,oBAAsB76jC,EAAIokiC,yBACzCj1iC,KAAKipiC,UAAUynC,oBAAoBl7iC,OAAOrpB,EAAG,GAGjD,IADI8yc,EAAUj/c,KAAKwunC,eAAe39mC,EAAIila,WAC7B9la,EAAI,EAAGA,EAAIivc,EAAQ77c,OAAQ4M,IAAK,CACrC,GAAIivc,EAAQ1yb,SAASvc,EAAE8G,WAAY,KAAKqf,KAAOtlB,EAAIslB,GAAI,CACnD8ob,EAAQzpb,OAAOxlB,EAAG,GAClB,KACJ,CACIivc,EAAQ1yb,SAASvc,EAAE8G,WAAY,MAAQmoc,EAAQ1yb,SAASvc,EAAE8G,WAAY,KAAKqf,KAAkE,IAA5D8ob,EAAQ1yb,SAASvc,EAAE8G,WAAY,KAAKqf,GAAGxrB,QAAQkG,EAAIslB,KACpI8ob,EAAQzpb,OAAOxlB,EAAG,EAE1B,CACJ,CACJ,CACA,GAAoC,YAAhCa,EAAIokiC,yBAAyE,aAAhCpkiC,EAAIokiC,yBAA0E,gBAAhCpkiC,EAAIokiC,yBAC5D,kBAAhCpkiC,EAAIokiC,yBAA+E,iBAAhCpkiC,EAAIokiC,yBAA8E,YAAhCpkiC,EAAIokiC,yBAAyE,mBAAhCpkiC,EAAIokiC,yBAAgF,iBAAhCpkiC,EAAIokiC,wBAC7M,IAAS9oiC,EAAI,EAAGA,EAAInM,KAAKipiC,UAAU0nC,qBAAqBvtkC,OAAQ+I,IAAK,CAEjE,IAAIgJ,KAAUnV,KAAKipiC,UAAU0nC,qBAAqBxkkC,IACtCgqB,KAAOtlB,EAAIslB,IACnBn2B,KAAKipiC,UAAU0nC,qBAAqBn7iC,OAAOrpB,EAAG,EAEtD,CAEJ,GAAoC,YAAhC0E,EAAIokiC,yBAAyE,aAAhCpkiC,EAAIokiC,yBAA0E,gBAAhCpkiC,EAAIokiC,yBAC5D,kBAAhCpkiC,EAAIokiC,yBAA+E,iBAAhCpkiC,EAAIokiC,yBAA8E,YAAhCpkiC,EAAIokiC,yBAAyE,mBAAhCpkiC,EAAIokiC,yBAAgF,iBAAhCpkiC,EAAIokiC,wBAA4C,CAEzP,IAAIsqE,EAAarulC,SAASg8T,eAAe,cAAgBr8U,EAAIslB,GAAK,yBAClE,GAAIoplC,EAAY,CACZA,EAAWpslC,SACXnzB,KAAKipiC,UAAUsb,mBAAclhjC,EAAWopB,GACxC,IAAI2yF,EAAQ,CAER16G,KAAMmM,EAAInM,KAAMyxB,GAAItlB,EAAIslB,GAAIv0B,MAAOiP,EAAIjP,MAAO4gd,WAAY3xc,EAAI2xc,WAAYvjK,SAAUpuS,EAAIouS,SAAUu3R,UAAW3lkB,EAAI2lkB,UAEjH//c,MAAO5lH,EAAI4lH,MAAOmnW,gBAAiB/sd,EAAI+sd,gBAAiB5hN,UAAWnrQ,EAAImrQ,UAAWijI,WAAYpuY,EAAIouY,WAAY13I,WAAY12P,EAAI02P,WAE9H35L,UAAW/8D,EAAI+8D,UAAWrzD,WAAY1J,EAAI0J,WAAYwxjC,QAASl7jC,EAAIk7jC,QAASx5pB,SAAU1ha,EAAIqgwB,YAAahlV,QAASr7a,EAAIq7a,QAEpHpta,QAASjO,EAAIiO,QAASkta,UAAWn7a,EAAIm7a,UAAW2P,WAAY9qb,EAAI8qb,YAEpE37b,KAAKipiC,UAAUylF,yBAAyB,kBAAmBtvgC,EAAOvuG,EAAIila,WACtE91a,KAAKipiC,UAAUyiC,mBAAmBijD,sCAAsC99mC,EAAIslB,GAChF,CACJ,CACAn2B,KAAKipiC,UAAUykD,wBAAwBD,GAAqB,EAChE,EAMAq+B,EAAQn7mC,UAAU69mC,eAAiB,SAAU14sB,GAEzC,OADgB91a,KAAKonkC,aAAatxpB,GACjBmpC,OACrB,EAQA6sqB,EAAQn7mC,UAAU89mC,0BAA4B,SAAUG,EAAc94sB,EAAW+4sB,GAI7E,GAHKD,IACDA,EAAe19lC,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,qBAAuB2/Y,IAE1F84sB,EAAc,CACd,IAAIhg/B,EAAO5uI,KAAKipiC,UAAUgzB,WAAWzxB,gBACjChshC,EAAQowmC,EAAapwmC,MAAQowH,EAC7Bga,EAASgm+B,EAAahm+B,OAASha,EAC/BuztB,EAAMysR,EAAajypB,WAAW,MAClCwlY,EAAIpqF,QAAU,QACdoqF,EAAIrqF,SAAW,QACXlpoB,EAAO,IACPuztB,EAAIlqF,UAAYkqF,EAAIlqF,UAAYrpoB,GAEpC,IACIkg/B,EAAYlg/B,EADS5uI,KAAKipiC,UAAUgzB,WAAWsgD,6BAE9Ct1xB,GAAQM,UAAaN,GAAQM,UAAY34M,GAAQ,GAClDuztB,EAAIk8D,aAAaywN,EAAW,EAAG,EAAGA,EAAW,EAAG,GAGhD3sR,EAAIk8D,aAAazvxB,EAAM,EAAG,EAAGA,EAAM,EAAG,GAE1CuztB,EAAIpjY,UAAU,EAAG,EAAGvgd,EAAOoqI,GAE3B,IADA,IAAIq2T,EAAUj/c,KAAKwunC,eAAe14sB,GACzB3pa,EAAI,EAAGA,EAAI8yc,EAAQ77c,OAAQ+I,IAAK,CAErC,IAAI2i/B,OAAgB,EAChB8/H,EAAaz4lC,KAAOn2B,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,2BAA6B2/Y,EACzEmpC,EAAQ1yb,SAASpgB,EAAE2K,WAAY,KAAKi1jC,UAG/BhgwB,GADL+irB,EAAgB9u/B,KAAKipiC,UAAUlkR,UAAU9lU,EAAQ1yb,SAASpgB,EAAE2K,WAAY,KAAKqf,IAAIhsB,UAE7EgrkC,IAAuBy5C,EAAc,CAAC9/H,GAAgB9u/B,KAAKsgU,WAOnE60wB,IAAuBy5C,EAAc,CADrC9/H,EAAgB9u/B,KAAKipiC,UAAUlkR,UAAU9lU,EAAQ9yc,GAAGgqB,IAAIhsB,SACFnK,KAAKsgU,SAEnE,CACJ,CACJ,EAMAwrzB,EAAQn7mC,UAAUo+mC,iBAAmB,SAAUtimC,GAC3C,IAAIuimC,EAAahvnC,KAAKivnC,mBAAmBjvnC,KAAKipiC,UAAU9zhC,QAAQghB,GAAK1J,EAAQ,uBAAwBA,GACrG,GAAIuimC,EAAY,CACZ,IAAIE,EAAcF,EAAW9hyB,eAAe8hyB,EAAW74lC,GAAK,gBACxD+4lC,GACAA,EAAY16lC,WAAWW,YAAY+5lC,EAE3C,CACJ,EAOApD,EAAQn7mC,UAAUw+mC,mBAAqB,SAAU95C,EAAW5ojC,GACxD,IAAI2imC,EAAe,KACfJ,EAAahvnC,KAAKivnC,mBAAmB55C,EAAW5ojC,GAIpD,OAHIuimC,IACAI,EAAeJ,EAAW9hyB,eAAemovB,EAAY5ojC,EAAQ,qBAE1D2imC,CACX,EAOAtD,EAAQn7mC,UAAUs+mC,mBAAqB,SAAU55C,EAAW5ojC,GACxD,IAAI4imC,EAAkB,KAClBC,EAAiBzvD,IAAkBwV,EAAY5ojC,EAAQ,wBAO3D,OAJI6imC,IAEAD,EADcC,EAAex8xB,uBAAuB,kBAAoBrmU,GAC1C,IAE3B4imC,CACX,EAMAvD,EAAQn7mC,UAAU4+mC,mBAAqB,SAAU9imC,GAC7C,IAAIuimC,EAAahvnC,KAAKivnC,mBAAmBjvnC,KAAKipiC,UAAU9zhC,QAAQghB,GAAI1J,GACpE,GAAIuimC,EAAY,CACZ,IAAIQ,EAAgBR,EAAW9hyB,eAAeltV,KAAKipiC,UAAUutC,gBAAgBrgjC,GAAK,oBAC9Eq5lC,GACAA,EAAch7lC,WAAWW,YAAYq6lC,GAEzCxvnC,KAAK+unC,iBAAiBtimC,GAGtB,IAFA,IAAI0c,EAAanpC,KAAKmvnC,mBAAmBnvnC,KAAKipiC,UAAU9zhC,QAAQghB,GAAI1J,GAAO0c,WACvEge,OAAQ,EACHh7C,EAAIg9B,EAAW/lC,OAAQ+I,EAAI,EAAGA,KACnCg7C,EAAQhe,EAAWh9B,EAAI,IACjBqoB,WAAWW,YAAYgyB,EAErC,CACJ,EAUA2kkC,EAAQn7mC,UAAU+7jC,eAAiB,SAAUlivB,EAAQ2sP,EAAiB52O,EAAQgxT,GAC1E,IAAKhxT,GAAUgxT,EAAU,CACrB,IAAIl7oB,EAAO,IAAIqr7B,IACX+tL,EAAgBzvnC,KAAKipiC,UAAUjmmB,cAEnC,GADAhjc,KAAKuvnC,mBAAmB/kyB,GACpBilyB,EAActlnC,QAAS,CACvBslnC,EAActlnC,QAAQo/P,QAAQlzP,GAC9B,IAAIu4H,EAAO5uI,KAAKipiC,UAAUgzB,WAAWzxB,gBACrCilF,EAActlnC,QAAQu3jC,QAAQ+tD,EAActlnC,QAAQ22jC,aACpD2uD,EAAcjxmC,MAAQixmC,EAActlnC,QAAQwywB,WAAWn+vB,MACvDixmC,EAAc7m+B,OAAS6m+B,EAActlnC,QAAQwywB,WAAW/znB,OACxD6m+B,EAAcl9xB,QAAUk9xB,EAActlnC,QAAQooV,QAC9Ck9xB,EAAcj9xB,QAAUi9xB,EAActlnC,QAAQqoV,QACL,IAArCi9xB,EAAcr66B,YAAYhyM,SAC1BqsnC,EAAcv+W,YAAcu+W,EAAcr66B,YAAY,GAAG87jB,YACzDu+W,EAActlnC,QAAQ+mwB,YAAcu+W,EAAcr66B,YAAY,GAAG87jB,aAGxDu+W,EAActlnC,QAAQw6vB,OAAnC,IAEI+qX,OAAkB,EACtB,GAAID,EAActmE,WAAW/ljC,OACzB,IAAK,IAAI+I,EAAI,EAAGA,EAAIsjnC,EAActmE,WAAW/ljC,OAAQ+I,IAAK,CACtD,IAAI+D,EAAOu/mC,EAActmE,WAAW58hC,SAASpgB,EAAE2K,WAAY,KAK3D,IAJA44mC,EAAkB1vnC,KAAKmvnC,mBAAmBnvnC,KAAKipiC,UAAU9zhC,QAAQghB,GAAIq0T,KAC9Ct6U,EAAK4la,YAActrF,GAAUxqV,KAAKipiC,UAAUmgB,cAC/DppjC,KAAK2vnC,mBAAmBz/mC,EAAK/F,QAAQrE,SAAS,GAAI4pnC,EAAiBD,EAAcG,kBAAmBhh/B,OAAMvrI,OAAWA,OAAWA,GAAW,GAAO,EAAM,KAAM,KAAM8zkB,GAEpKn3kB,KAAKipiC,UAAUyiC,oBAAsBx7jC,EAAK+kiC,0BAErCj1iC,KAAKipiC,UAAUgzB,WAAWoT,oBAAsBrvkC,KAAKipiC,UAAUgzB,WAAW4P,uBAAyB7rkC,KAAKipiC,UAAUgzB,WAAW2Q,qBAAsB,CACpJ5skC,KAAKipiC,UAAUgzB,WAAWoT,mBAAoB,EAC9C,IAAIjw9B,EAAQ,CAER16G,KAAMwL,EAAKxL,KAAMyxB,GAAIjmB,EAAKimB,GAAIv0B,MAAOsO,EAAKtO,MAAO4gd,WAAYtyc,EAAKsyc,WAAYvjK,SAAU/uS,EAAK+uS,SAAUu3R,UAAWtmkB,EAAKsmkB,UAAW//c,MAAOvmH,EAAKumH,MAAOmnW,gBAAiB1td,EAAK0td,gBAAiB5hN,UAAW9rQ,EAAK8rQ,UAAWijI,WAAY/uY,EAAK+uY,WAAY13I,WAAYr3P,EAAKq3P,WAErQ35L,UAAW19D,EAAK09D,UAAWrzD,WAAYrK,EAAKqK,WAAYwxjC,QAAS77jC,EAAK67jC,QAASx5pB,SAAUria,EAAKghwB,YAAahlV,QAASh8a,EAAKg8a,QAEzHpta,QAAS5O,EAAK4O,QAASkta,UAAW97a,EAAK87a,UAAW2P,WAAYzrb,EAAKyrb,YAEvE37b,KAAKipiC,UAAU4mF,yBAAyB,kBAAmBzwgC,EAAOlvG,EAAK4la,UAAW91a,KAAKipiC,UAAUyiC,mBAAmBokD,wBACxH,CAER,CAEJ,GAAIL,EAAcr66B,YAAYhyM,OAC1B,IAAK,IAAI4M,EAAI,EAAGA,EAAIy/mC,EAAcr66B,YAAYhyM,OAAQ4M,IAAK,CACnDE,EAAOu/mC,EAAcr66B,YAAY7oL,SAASvc,EAAE8G,WAAY,KAG5D,IAFA44mC,EAAkB1vnC,KAAKmvnC,mBAAmBnvnC,KAAKipiC,UAAU9zhC,QAAQghB,GAAIq0T,KAE9Ct6U,EAAK4la,YAActrF,EAAQ,CAC9C,GAAiC,aAA7Bt6U,EAAK6kiC,qBAAmE,SAA7B7kiC,EAAK6kiC,qBACnB,uBAA7B7kiC,EAAK6kiC,qBAA6E,YAA7B7kiC,EAAK6kiC,oBAC1D/0iC,KAAK+vnC,qBAAqB7/mC,EAAMw/mC,EAAiBD,EAAcG,kBAAmB,CAAErypB,MAAO3uV,EAAMizV,GAAI,EAAGC,GAAI,QAAKz+d,OAAWA,GAAW,EAAM8zkB,QAG7I,GAAiC,gBAA7BjnkB,EAAK6kiC,oBACL/0iC,KAAK2vnC,mBAAmBz/mC,EAAK/F,QAAQrE,SAAS,GAAI4pnC,EAAiBD,EAAcG,kBAAmBhh/B,OAAMvrI,OAAWA,OAAWA,GAAW,GAAO,EAAM,KAAM,KAAM8zkB,QAGpK,GAA4B,UAAxBn3kB,KAAKipiC,UAAUpkhB,KAAkB,CAEjC,IAAIkmiB,EAA2C,SAA7B76iC,EAAK6kiC,qBAAmE,mBAAjC7kiC,EAAK+kiC,yBAAiF,iBAAjC/kiC,EAAK+kiC,wBACnHj1iC,KAAK2vnC,mBAAmBz/mC,EAAK/F,QAAQrE,SAAS,GAAI4pnC,EAAiBD,EAAcG,kBAAmBhh/B,OAAMvrI,OAAWA,OAAWA,EAAwC,UAA7B6M,EAAK6kiC,qBAAiC,EAAOgW,EAA2C,aAA7B76iC,EAAK6kiC,qBAAmE,yBAA7B7kiC,EAAK6kiC,qBAA+E,mBAA7B7kiC,EAAK6kiC,qBAAyE,UAA7B7kiC,EAAK6kiC,qBAAgE,kBAA7B7kiC,EAAK6kiC,oBAA0C59d,EACpb,CAMR,GAHKn3kB,KAAKipiC,UAAUgzB,WAAWwkB,qBAAqD,yBAA7BvwkC,EAAK6kiC,qBAA+E,kBAA7B7kiC,EAAK6kiC,qBAAwE,mBAA7B7kiC,EAAK6kiC,qBAC/J/0iC,KAAKipiC,UAAUgb,iBAAiB+rE,gBAAgB9/mC,EAAKssiC,cAAetsiC,EAAK4la,UAAW5la,GAEpFlQ,KAAKipiC,UAAUyiC,oBAAsBx7jC,EAAK+kiC,0BAErCj1iC,KAAKipiC,UAAUgzB,WAAWoT,oBAAsBrvkC,KAAKipiC,UAAUgzB,WAAW4P,uBAAyB7rkC,KAAKipiC,UAAUgzB,WAAW2Q,qBAAsB,CACpJ5skC,KAAKipiC,UAAUgzB,WAAWoT,mBAAoB,EAC1Cjw9B,EAAQ,CAERx9G,MAAOsO,EAAKtO,MAAO4gd,WAAYtyc,EAAKsyc,WAAYvjK,SAAU/uS,EAAK+uS,SAAUu3R,UAAWtmkB,EAAKsmkB,UAEzF//c,MAAOvmH,EAAKumH,MAAOmnW,gBAAiB1td,EAAK0td,gBAAiB5hN,UAAW9rQ,EAAK8rQ,UAAWijI,WAAY/uY,EAAK+uY,WAAY13I,WAAYr3P,EAAKq3P,WAEnI35L,UAAW19D,EAAK09D,UAAWrzD,WAAYrK,EAAKqK,WAAYwxjC,QAAS77jC,EAAK67jC,QAASx5pB,SAAUria,EAAKghwB,YAAahlV,QAASh8a,EAAKg8a,QAEzHpta,QAAS5O,EAAK4O,QAASkta,UAAW97a,EAAK87a,UAAW2P,WAAYzrb,EAAKyrb,YAEvE37b,KAAKipiC,UAAU4mF,yBAAyB,kBAAmBzwgC,EAAOlvG,EAAK4la,UAAW91a,KAAKipiC,UAAUyiC,mBAAmBokD,wBACxH,CAEmB,KAAnB5/mC,EAAK+2iC,WAAuC,kBAAnB/2iC,EAAK+2iC,WAC1B1mtB,GAAWrwV,IAASqwV,IAAYrwV,EAAK+kiC,0BAEhCj1iC,KAAKipiC,UAAUgzB,WAAWomB,cAAiBrilC,KAAKipiC,UAAUgzB,WAAWmT,oBAAuBpvkC,KAAKipiC,UAAUgzB,WAAW2P,uBAA0B5rkC,KAAKipiC,UAAUgzB,WAAW0Q,uBAA0B3skC,KAAKipiC,UAAUgzB,WAAW6lB,YAAe9hlC,KAAKipiC,UAAUgzB,WAAW6kB,aACxQ9glC,KAAKipiC,UAAUgzB,WAAWmT,oBAAqB,EAC/CpvkC,KAAKipiC,UAAUgb,iBAAiB64B,iBAAiB5skC,EAAK+2iC,UAAW/2iC,EAAK4la,UAAW5la,IAIjG,CACJ,CAER,CACJ,CACJ,EAYA47mC,EAAQn7mC,UAAU2/Z,OAAS,SAAUz/Z,EAAK0ga,EAAOgkoB,EAAOp+d,GAEpD,GAAItmkB,EAEA,GADA0kiC,EAAQA,GAAS,CAAEr7hC,EAAGrJ,EAAI1G,QAAQooV,QAASp4U,EAAGtJ,EAAI1G,QAAQqoV,SACtD3hV,aAAesyjC,IAAU,CACzBtyjC,EAAIqgwB,aAAe3/V,EACnB1ga,EAAI1G,QAAQ+mwB,aAAe3/V,EAC3B,IAAI0tC,EAAU,GACdA,EAAUA,EAAQ7lc,OAAOvI,EAAIukM,aAC7Bp1M,KAAKiwnC,cAAcp/mC,EAAKouc,EAAS1tC,EAAOgkoB,EAAO,KAAMp+d,EACzD,MAEIn3kB,KAAKiwnC,cAAcp/mC,EAAK,CAACA,GAAM0ga,EAAOgkoB,EAIlD,EAWAu2E,EAAQn7mC,UAAUs/mC,cAAgB,SAAU9nlC,EAAQ82a,EAAS1tC,EAAOgkoB,EAAO26E,EAAe/4iB,GACtFo+d,EAAQA,GAAS,CAAC,EAClB,IAAIlta,EAASura,MACbO,IAAa9ra,EAAQ92N,EAAOgkoB,EAAMr7hC,EAAGq7hC,EAAMp7hC,GAC3C,IAAK,IAAI7K,EAAK,EAAG6gnC,EAAYlxqB,EAAS3vc,EAAK6gnC,EAAU/snC,OAAQkM,IAAM,CAC/D,IAAIuB,EAAMs/mC,EAAU7gnC,GACpB,GAAIuB,aAAeq6iC,IAAmB,CAClC,IAAsB,IAAlBglE,GAA2B/nlC,IAAWt3B,EAAK,CAC3CA,EAAIqgwB,aAAe3/V,EACnB1ga,EAAIqgwB,aAAergwB,EAAIqgwB,YAAc,KAAO,IAC5C,IAAIy/R,EAAYmD,IAAuBzra,EAAQ,CAAEnunB,EAAGrJ,EAAI1G,QAAQooV,QAASp4U,EAAGtJ,EAAI1G,QAAQqoV,UACxF3hV,EAAI1G,QAAQooV,QAAUo+sB,EAAUz2hC,EAChCrJ,EAAI1G,QAAQqoV,QAAUm+sB,EAAUx2hC,EAChCna,KAAK2ukC,mBAAmB99jC,EAAK,CAAEqgwB,YAAargwB,EAAIqgwB,aACpD,CACAlxwB,KAAK0skC,eAAe77jC,EAAIila,UAAWqhK,EACvC,CACJ,CACJ,EACA20iB,EAAQn7mC,UAAUy/mC,aAAe,SAAUj7mC,EAAS6zR,EAAe4zL,GAC/D,OAAIznd,GAAWA,EAAQghB,IACf6yQ,GAAmC,aAAlBA,EACVhpS,KAAKipiC,UAAUutC,gBAGvB55mB,CACX,EAcAkvpB,EAAQn7mC,UAAU0/mC,aAAe,SAAU9/mC,EAAUqsd,EAAQu6G,EAAiB5+gB,EAAW+3jC,EAAYC,EAAkBC,EAAYxjlB,GAC/H,IACIluhB,EAAUu2hC,IADA9kiC,EACgCgoD,GAE9C,GADAA,EAAYA,GAAa,CAAEgla,MAAO,EAAGsE,GAAI,EAAGC,GAAI,GAC3CkrE,EAwDA,CACDluhB,EAAQ5E,GAAKq+C,EAAUgla,MACvBz+c,EAAQ3E,GAAKo+C,EAAUgla,MACvBz+c,EAAQN,OAAS+5C,EAAUgla,MAC3Bz+c,EAAQ8pI,QAAUrwF,EAAUgla,MAExBw7T,EAAY/4xB,KAAKipiC,UAAUjmmB,cAAc5tP,YAAYhyM,OAAS,EAAIpD,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAG2/1B,oBAC5G/0iC,KAAKipiC,UAAUjmmB,cAAcmmnB,WAAW,GAAGlU,wBACjD,GAAI99d,GAAiD,kBAArBA,GAAsD,KAApBA,EAAwB,CAElFosP,EAA0D,MAD1DktT,EAAqBhglC,KAAKuL,MAAMm7hB,IACCu5iB,qBAA8B,QAAUD,EAAmBC,qBAChG5xmC,EAAQy7uB,OAASgpE,EACjBzkzB,EAAQswH,YAA2D,IAA7C+nc,EAAgBw5iB,yBAAiC,EAAIF,EAAmBE,0BAE1FC,EAA+D,IAApDH,EAAmBI,sBAAsBztnC,OAAe,CAAC,EAAG,GAAKqtnC,EAAmBI,uBACtFztnC,OAAS,IAClBwtnC,EAAW,CAACA,EAAS,GAAIA,EAAS,KAEtC9xmC,EAAQog7B,UAAY0xL,EAAS95mC,UACjC,MAEI9W,KAAK8wnC,kBAAkB/3V,EAAWj6wB,EAE1C,KA/Ee,CACXA,EAAQ5E,GAAKq+C,EAAUgla,MACvBz+c,EAAQ3E,GAAKo+C,EAAUgla,MACvBz+c,EAAQN,OAAS+5C,EAAUgla,MAC3Bz+c,EAAQ8pI,QAAUrwF,EAAUgla,MAC5Bz+c,EAAQ0nE,KAAO,cAEf,IAAIuysB,EAAY/4xB,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAG2/1B,oBAC5D,GAAI59d,GAAiD,kBAArBA,GAAsD,KAApBA,EAAwB,CAEtF,IAAIs5iB,EAKAG,EAJArtT,EAA0D,MAD1DktT,EAAqBhglC,KAAKuL,MAAMm7hB,IACCu5iB,qBAA8B,QAAUD,EAAmBC,qBAChG5xmC,EAAQy7uB,OAASgpE,EACjBzkzB,EAAQswH,YAA2D,IAA7C+nc,EAAgBw5iB,yBAAiC,EAAIF,EAAmBE,0BAE1FC,EAA+D,IAApDH,EAAmBI,sBAAsBztnC,OAAe,CAAC,EAAG,GAAKqtnC,EAAmBI,uBACtFztnC,OAAS,IAClBwtnC,EAAW,CAACA,EAAS,GAAIA,EAAS,KAEtC9xmC,EAAQog7B,UAAY0xL,EAAS95mC,UACjC,MAEI,IAAK9W,KAAKipiC,UAAUmgB,aAChB,GAAmB,yBAAdrwR,GAAsD,kBAAdA,GAA+C,mBAAdA,GAAiD,QAAdA,EAAqB,CAElH/4xB,KAAKipiC,UAAUlkR,UAAUx0wB,EAAS4lB,GAAGxD,MAAM,KAAK,IAAhE,IACIs7kC,EAAkBjumC,KAAKipiC,UAAUgzB,WAAW8xC,wBAAwBx9lC,EAAS4lB,IASjFn2B,KAAK+wnC,cAAch4V,EAAWj6wB,EAASmvlC,EAC3C,MAEIjumC,KAAK8wnC,kBAAkB/3V,EAAWj6wB,GAI9CA,EAAQswa,MAAQ,sBACZohsB,IACA1xmC,EAAQswa,OAAS,mBAErBtwa,EAAQqX,GAAK,aACbrX,EAAQqX,GAAK,aACRm6lC,IACDxxmC,EAAQswa,OAAS,eAEjBmhsB,IACAzxmC,EAAQswa,OAAS,mBAErBtwa,EAAQyg7B,aAAe,CAC3B,CAyBA,IAAIo1I,EAAY30kC,KAAKownC,aAAa7/mC,EAAU,YAE5CvQ,KAAKgsnC,YAAYxiV,cAAc5sU,EAAQ99c,EAAS9e,KAAKipiC,UAAU9zhC,QAAQghB,QAAI9yB,GAAW,EAAMsxkC,EAChG,EAQAm3C,EAAQn7mC,UAAUognC,cAAgB,SAAUnknC,EAAMkS,EAASmvlC,GACvD,GAAKA,GAA6B,yBAATrhmC,GAA4C,kBAATA,GAAqC,mBAATA,IAA8B5M,KAAKipiC,UAAUsS,6BAA6B+vB,2BAa7J,GAAa,QAAT1+jC,GAAkB5M,KAAKipiC,UAAU2mE,sBAAsBtkC,2BAA4B,CACpF/nQ,EAAcx3f,GAAkB/rU,KAAKipiC,UAAU2mE,sBAAsBtkC,2BAA2BolD,uBAAkH,KAAzF1wnC,KAAKipiC,UAAU2mE,sBAAsBtkC,2BAA2BolD,qBAA8B,UAAY1wnC,KAAKipiC,UAAU2mE,sBAAsBtkC,2BAA2BolD,qBACvS5xmC,EAAQy7uB,OAASgpE,EAEb6qI,EAAYrioB,GAAkB/rU,KAAKipiC,UAAU2mE,sBAAsBtkC,2BAA2BqlD,0BAA4B,EAAI3wnC,KAAKipiC,UAAU2mE,sBAAsBtkC,2BAA2BqlD,yBAClM7xmC,EAAQswH,YAAcg/zB,GAElBwiL,EAAW7kzB,GAAkB/rU,KAAKipiC,UAAU2mE,sBAAsBtkC,2BAA2BulD,wBAA2H,IAAjG7wnC,KAAKipiC,UAAU2mE,sBAAsBtkC,2BAA2BulD,sBAAsBztnC,OAAe,CAAC,GAAKpD,KAAKipiC,UAAU2mE,sBAAsBtkC,2BAA2BulD,uBACzRztnC,OAAS,IAClBwtnC,EAAW,CAACA,EAAS,GAAIA,EAAS,KAEtC9xmC,EAAQog7B,UAAY0xL,EAAS95mC,UACjC,KACK,CACD,IAAI25mC,EAAqBzwnC,KAAKipiC,UAAUqiC,2BACpC/nQ,EAA0D,KAA5CktT,EAAmBC,qBAA8B,QAAUD,EAAmBC,qBAChG5xmC,EAAQy7uB,OAASgpE,EACjBzkzB,EAAQswH,YAA8D,IAAhDqh/B,EAAmBE,yBAAiC,EAAIF,EAAmBE,0BAE7FC,EAA+D,IAApDH,EAAmBI,sBAAsBztnC,OAAe,CAAC,EAAG,GAAKqtnC,EAAmBI,uBACtFztnC,OAAS,IAClBwtnC,EAAW,CAACA,EAAS,GAAIA,EAAS,KAEtC9xmC,EAAQog7B,UAAY0xL,EAAS95mC,UACjC,KArC8L,CAC1L,IAAIyszB,EAAcx3f,GAAkB/rU,KAAKipiC,UAAUsS,6BAA6B+vB,2BAA2BolD,uBAAyH,KAAhG1wnC,KAAKipiC,UAAUsS,6BAA6B+vB,2BAA2BolD,qBAA8B,UAAY1wnC,KAAKipiC,UAAUsS,6BAA6B+vB,2BAA2BolD,qBAC5T5xmC,EAAQy7uB,OAASgpE,EAEjB,IAGIqtT,EAHAxiL,EAAYrioB,GAAkB/rU,KAAKipiC,UAAUsS,6BAA6B+vB,2BAA2BqlD,0BAA4B,EAAI3wnC,KAAKipiC,UAAUsS,6BAA6B+vB,2BAA2BqlD,yBAChN7xmC,EAAQswH,YAAcg/zB,GAElBwiL,EAAW7kzB,GAAkB/rU,KAAKipiC,UAAUsS,6BAA6B+vB,2BAA2BulD,wBAAkI,IAAxG7wnC,KAAKipiC,UAAUsS,6BAA6B+vB,2BAA2BulD,sBAAsBztnC,OAAe,CAAC,GAAKpD,KAAKipiC,UAAUsS,6BAA6B+vB,2BAA2BulD,uBAC9SztnC,OAAS,IAClBwtnC,EAAW,CAACA,EAAS,GAAIA,EAAS,KAEtC9xmC,EAAQog7B,UAAY0xL,EAAS95mC,UACjC,CA0BJ,EAOAg1mC,EAAQn7mC,UAAUmgnC,kBAAoB,SAAUlknC,EAAMkS,GAClD,IAAI2xmC,EAAqBzwnC,KAAKipiC,UAAUqiC,2BACpC/nQ,EAAcx3f,GAAkB0kzB,EAAmBC,uBAAqE,KAA5CD,EAAmBC,qBAA8B,QAAUD,EAAmBC,qBAC9J5xmC,EAAQy7uB,OAASgpE,EAEjBzkzB,EAAQswH,YAAc28L,GAAkB0kzB,EAAmBE,2BAA6E,IAAhDF,EAAmBE,yBAAiC,EAAIF,EAAmBE,yBAEnK,IAAIC,EAAW7kzB,GAAkB0kzB,EAAmBI,wBAA8E,IAApDJ,EAAmBI,sBAAsBztnC,OAAe,CAAC,EAAG,GAAKqtnC,EAAmBI,sBAKlK,GAJID,EAASxtnC,OAAS,IAClBwtnC,EAAW,CAACA,EAAS,GAAIA,EAAS,KAEtC9xmC,EAAQog7B,UAAY0xL,EAAS95mC,WAChB,cAATlK,GAAwB5M,KAAKipiC,UAAUmnE,kBAAkB9kC,2BAA4B,CACrF,IAAI0lD,EAAgBjlzB,GAAkB/rU,KAAKipiC,UAAUmnE,kBAAkB9kC,2BAA2BolD,uBAA8G,KAArF1wnC,KAAKipiC,UAAUmnE,kBAAkB9kC,2BAA2BolD,qBAA8B,QAAU1wnC,KAAKipiC,UAAUmnE,kBAAkB9kC,2BAA2BolD,qBAC3R5xmC,EAAQy7uB,OAASy2X,EAEjB,IAAI5iL,EAAYrioB,GAAkB/rU,KAAKipiC,UAAUmnE,kBAAkB9kC,2BAA2BqlD,0BAA4B,EAAI3wnC,KAAKipiC,UAAUmnE,kBAAkB9kC,2BAA2BqlD,yBAC1L7xmC,EAAQswH,YAAcg/zB,EAEtB,IAAI6iL,EAAallzB,GAAkB/rU,KAAKipiC,UAAUmnE,kBAAkB9kC,2BAA2BulD,wBAAuH,IAA7F7wnC,KAAKipiC,UAAUmnE,kBAAkB9kC,2BAA2BulD,sBAAsBztnC,OAAe,CAAC,GAAKpD,KAAKipiC,UAAUmnE,kBAAkB9kC,2BAA2BulD,sBACxRI,EAAW7tnC,OAAS,IACpB6tnC,EAAa,CAACA,EAAW,GAAIA,EAAW,KAE5CnymC,EAAQog7B,UAAY+xL,EAAWn6mC,UACnC,MACK,GAAc,YAATlK,GAA+B,aAATA,GAAgC,gBAATA,GAAmC,mBAATA,GAAsC,iBAATA,GAAoC,iBAATA,GAAoC,YAATA,GAA+B,kBAATA,IAA6B5M,KAAKipiC,UAAUmnE,kBAAkB9kC,4BAanP,GAAa,YAAT1+jC,GAAsB5M,KAAKipiC,UAAUonE,eAAe/kC,2BAA4B,CACrF,IAAI4lD,EAAgBnlzB,GAAkB/rU,KAAKipiC,UAAUonE,eAAe/kC,2BAA2BolD,uBAA2G,KAAlF1wnC,KAAKipiC,UAAUonE,eAAe/kC,2BAA2BolD,qBAA8B,QAAU1wnC,KAAKipiC,UAAUonE,eAAe/kC,2BAA2BolD,qBAClR5xmC,EAAQy7uB,OAAS22X,EAEb9iL,EAAYrioB,GAAkB/rU,KAAKipiC,UAAUonE,eAAe/kC,2BAA2BqlD,0BAA4B,EAAI3wnC,KAAKipiC,UAAUonE,eAAe/kC,2BAA2BqlD,yBACpL7xmC,EAAQswH,YAAcg/zB,EAEtB,IAAI+iL,EAAaplzB,GAAkB/rU,KAAKipiC,UAAUonE,eAAe/kC,2BAA2BulD,wBAAoH,IAA1F7wnC,KAAKipiC,UAAUonE,eAAe/kC,2BAA2BulD,sBAAsBztnC,OAAe,CAAC,GAAKpD,KAAKipiC,UAAUonE,eAAe/kC,2BAA2BulD,sBAC/QM,EAAW/tnC,OAAS,IACpB+tnC,EAAa,CAACA,EAAW,GAAIA,EAAW,KAE5CrymC,EAAQog7B,UAAYiyL,EAAWr6mC,UACnC,MACK,GAAa,WAATlK,GAAqB5M,KAAKipiC,UAAU+mE,eAAe1kC,2BAA4B,CACpF,IAAI8lD,EAAgBrlzB,GAAkB/rU,KAAKipiC,UAAU+mE,eAAe1kC,2BAA2BolD,uBAA2G,KAAlF1wnC,KAAKipiC,UAAU+mE,eAAe1kC,2BAA2BolD,qBAA8B,QAAU1wnC,KAAKipiC,UAAU+mE,eAAe1kC,2BAA2BolD,qBAClR5xmC,EAAQy7uB,OAAS62X,EAEbhjL,EAAYrioB,GAAkB/rU,KAAKipiC,UAAU+mE,eAAe1kC,2BAA2BqlD,0BAA4B,EAAI3wnC,KAAKipiC,UAAU+mE,eAAe1kC,2BAA2BqlD,yBACpL7xmC,EAAQswH,YAAcg/zB,EAEtB,IAAIijL,EAAatlzB,GAAkB/rU,KAAKipiC,UAAU+mE,eAAe1kC,2BAA2BulD,wBAAoH,IAA1F7wnC,KAAKipiC,UAAU+mE,eAAe1kC,2BAA2BulD,sBAAsBztnC,OAAe,CAAC,GAAKpD,KAAKipiC,UAAU+mE,eAAe1kC,2BAA2BulD,sBAC/QQ,EAAWjunC,OAAS,IACpBiunC,EAAa,CAACA,EAAW,GAAIA,EAAW,KAE5CvymC,EAAQog7B,UAAYmyL,EAAWv6mC,UACnC,MACK,GAAa,aAATlK,GAAuB5M,KAAKipiC,UAAUqlE,iBAAiBhjC,2BAA4B,CACxF,IAAIgmD,EAAgBvlzB,GAAkB/rU,KAAKipiC,UAAUqlE,iBAAiBhjC,2BAA2BolD,uBAA6G,KAApF1wnC,KAAKipiC,UAAUqlE,iBAAiBhjC,2BAA2BolD,qBAA8B,QAAU1wnC,KAAKipiC,UAAUqlE,iBAAiBhjC,2BAA2BolD,qBACxR5xmC,EAAQy7uB,OAAS+2X,EAEbljL,EAAYrioB,GAAkB/rU,KAAKipiC,UAAUqlE,iBAAiBhjC,2BAA2BqlD,0BAA4B,EAAI3wnC,KAAKipiC,UAAUqlE,iBAAiBhjC,2BAA2BqlD,yBACxL7xmC,EAAQswH,YAAcg/zB,EAEtB,IAAImjL,EAAaxlzB,GAAkB/rU,KAAKipiC,UAAUqlE,iBAAiBhjC,2BAA2BulD,wBAAsH,IAA5F7wnC,KAAKipiC,UAAUqlE,iBAAiBhjC,2BAA2BulD,sBAAsBztnC,OAAe,CAAC,GAAKpD,KAAKipiC,UAAUqlE,iBAAiBhjC,2BAA2BulD,sBACrRU,EAAWnunC,OAAS,IACpBmunC,EAAa,CAACA,EAAW,GAAIA,EAAW,KAE5CzymC,EAAQog7B,UAAYqyL,EAAWz6mC,UACnC,MACK,GAAa,gBAATlK,GAA0B5M,KAAKipiC,UAAUuoF,oBAAoBlmD,2BAA4B,CAC9F,IAAImmD,EAAgB1lzB,GAAkB/rU,KAAKipiC,UAAUuoF,oBAAoBlmD,2BAA2BolD,uBAAgH,KAAvF1wnC,KAAKipiC,UAAUuoF,oBAAoBlmD,2BAA2BolD,qBAA8B,QAAU1wnC,KAAKipiC,UAAUuoF,oBAAoBlmD,2BAA2BolD,qBACjS5xmC,EAAQy7uB,OAASk3X,EAEbrjL,EAAYrioB,GAAkB/rU,KAAKipiC,UAAUuoF,oBAAoBlmD,2BAA2BqlD,0BAA4B,EAAI3wnC,KAAKipiC,UAAUuoF,oBAAoBlmD,2BAA2BqlD,yBAC9L7xmC,EAAQswH,YAAcg/zB,EAEtB,IAAIsjL,EAAa3lzB,GAAkB/rU,KAAKipiC,UAAUuoF,oBAAoBlmD,2BAA2BulD,wBAAyH,IAA/F7wnC,KAAKipiC,UAAUuoF,oBAAoBlmD,2BAA2BulD,sBAAsBztnC,OAAe,CAAC,EAAG,GAAKpD,KAAKipiC,UAAUuoF,oBAAoBlmD,2BAA2BulD,sBACjSa,EAAWtunC,OAAS,IACpBsunC,EAAa,CAACA,EAAW,GAAIA,EAAW,KAE5C5ymC,EAAQog7B,UAAYwyL,EAAW56mC,UACnC,MACK,GAAa,UAATlK,GAAoB5M,KAAKipiC,UAAUumC,cAAclE,2BAA4B,CAClF,IAAIqmD,EAAgB5lzB,GAAkB/rU,KAAKipiC,UAAUumC,cAAclE,2BAA2BolD,uBAA0G,KAAjF1wnC,KAAKipiC,UAAUumC,cAAclE,2BAA2BolD,qBAA8B,UAAY1wnC,KAAKipiC,UAAUumC,cAAclE,2BAA2BolD,qBACjR5xmC,EAAQy7uB,OAASo3X,EAEbvjL,EAAYrioB,GAAkB/rU,KAAKipiC,UAAUumC,cAAclE,2BAA2BqlD,0BAA4B,EAAI3wnC,KAAKipiC,UAAUumC,cAAclE,2BAA2BqlD,yBAClL7xmC,EAAQswH,YAAcg/zB,EAEtB,IAAIwjL,EAAa7lzB,GAAkB/rU,KAAKipiC,UAAUumC,cAAclE,2BAA2BulD,wBAAmH,IAAzF7wnC,KAAKipiC,UAAUumC,cAAclE,2BAA2BulD,sBAAsBztnC,OAAe,CAAC,GAAKpD,KAAKipiC,UAAUumC,cAAclE,2BAA2BulD,sBAC5Qe,EAAWxunC,OAAS,IACpBwunC,EAAa,CAACA,EAAW,GAAIA,EAAW,KAE5C9ymC,EAAQog7B,UAAY0yL,EAAW96mC,UACnC,MA7EoR,CAChR,IAAI+6mC,EAAgB9lzB,GAAkB/rU,KAAKipiC,UAAUmnE,kBAAkB9kC,2BAA2BolD,uBAA8G,KAArF1wnC,KAAKipiC,UAAUmnE,kBAAkB9kC,2BAA2BolD,qBAA8B,QAAU1wnC,KAAKipiC,UAAUmnE,kBAAkB9kC,2BAA2BolD,qBAC3R5xmC,EAAQy7uB,OAASs3X,EAEjB,IAAIzjL,EAAYrioB,GAAkB/rU,KAAKipiC,UAAUmnE,kBAAkB9kC,2BAA2BqlD,0BAA4B,EAAI3wnC,KAAKipiC,UAAUmnE,kBAAkB9kC,2BAA2BqlD,yBAC1L7xmC,EAAQswH,YAAcg/zB,EAEtB,IAAI0jL,EAAa/lzB,GAAkB/rU,KAAKipiC,UAAUmnE,kBAAkB9kC,2BAA2BulD,wBAAuH,IAA7F7wnC,KAAKipiC,UAAUmnE,kBAAkB9kC,2BAA2BulD,sBAAsBztnC,OAAe,CAAC,GAAKpD,KAAKipiC,UAAUmnE,kBAAkB9kC,2BAA2BulD,sBACxRiB,EAAW1unC,OAAS,IACpB0unC,EAAa,CAACA,EAAW,GAAIA,EAAW,KAE5ChzmC,EAAQog7B,UAAY4yL,EAAWh7mC,UACnC,CAkEJ,EAmBAg1mC,EAAQn7mC,UAAUohnC,qBAAuB,SAAU57lC,EAAI5lB,EAAUs2c,EAAIC,EAAI8V,EAAQ/sL,EAASgmyB,EAAgBl0jC,EAAGqwmC,EAAWC,EAAStsnC,EAAWilB,EAAO7pB,EAAWo2kB,GAC1J,IAAIhtkB,EAAUoG,EAEVsyjC,EAAW,CAAE3ojC,EAAG2sc,EAAI1sc,EAAG2sc,GAE3B,GADAnlc,EAAIA,GAAK,CAAE47c,MAAO,EAAGsE,GAAI,EAAGC,GAAI,GACJ,IAAxB33d,EAAQ+mwB,aAAiD,IAA5B/mwB,EAAQqriC,gBAAuB,CAC5D,IAAInta,EAASura,MACbO,IAAa9ra,EAAQl+nB,EAAQ+mwB,YAAc/mwB,EAAQqriC,gBAAiBrriC,EAAQooV,QAASpoV,EAAQqoV,SAC7FqwuB,EAAW/uB,IAAuBzra,EAAQw6b,EAC9C,CACA,IACI9pS,EADAj6wB,EAAUu2hC,IAAuBlriC,GAGjC4uxB,EADA/4xB,KAAKipiC,UAAUjmmB,cAAc5tP,YAAYhyM,OAAS,GAAKpD,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAGo53B,YACvFxukC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAGo53B,YAEnDxukC,KAAKipiC,UAAUjmmB,cAAcmmnB,WAAW/ljC,OAAS,EAC1CpD,KAAKipiC,UAAUjmmB,cAAcmmnB,WAAW,GAAGlU,wBAG3Cj1iC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAG2/1B,oBAE5D/0iC,KAAKkynC,iBAAiBn5V,EAAWj6wB,EAASq4jB,EAAiBx1jB,GAC3D3hB,KAAKmynC,aAAap5V,EAAWj6wB,EAASq4jB,EAAiBx1jB,GACvD7C,EAAQswH,YAAc,OACR/rI,IAAVunB,IAEA9L,EAAQqX,GAAK,cAAgBvL,GAEjC9L,EAAQmyZ,SAAW4xpB,EAAS3ojC,EAAIyH,EAAEkgd,IAAMlgd,EAAE47c,MAC1Cz+c,EAAQoyZ,SAAW2xpB,EAAS1ojC,EAAIwH,EAAEmgd,IAAMngd,EAAE47c,MAC1Cz+c,EAAQyyZ,MAAQ,EAChBzyZ,EAAQqX,GAAKA,EACbrX,EAAQ+wR,QAAUA,EAClB/wR,EAAQswa,MAAQrub,EAChB+d,EAAQwvH,QAAU,EACd0j/B,IACAlzmC,EAAQswa,OAAS,gBAEjB6isB,IACAnzmC,EAAQ+wR,SAAU,GAEtB/wR,EAAQ5E,EAAK2ojC,EAAS3ojC,EAAIyH,EAAE47c,MAAUz+c,EAAQN,MAAQ,EACtDM,EAAQ3E,EAAK0ojC,EAAS1ojC,EAAIwH,EAAE47c,MAAUz+c,EAAQ8pI,OAAS,EACvD,IAAI+r7B,EAAY30kC,KAAKownC,aAAa7/mC,EAAU,YACM,WAA9CvQ,KAAKoynC,SAASr5V,EAAW5hN,GACzBn3kB,KAAKgsnC,YAAYxiV,cAAc5sU,EAAQ99c,EAASqX,OAAI9yB,GAAW,EAAMsxkC,GAElB,WAA9C30kC,KAAKoynC,SAASr5V,EAAW5hN,IAC9Bn3kB,KAAKgsnC,YAAY7uL,WAAWvge,EAAQ99c,EAAS,EAErD,EAUAgtmC,EAAQn7mC,UAAUwhnC,aAAe,SAAUvlnC,EAAMkS,EAASq4jB,EAAiBx1jB,GACvE,GAAIw1jB,GAAgD,kBAArBA,GAAqD,KAApBA,EAAwB,CAEpF,IAAIs5iB,EAAqBhglC,KAAKuL,MAAMm7hB,GAEpCr4jB,EAAQ0jQ,QAAUupD,GAAkB0kzB,EAAmB4B,cAAmD,IAAnC5B,EAAmB4B,YAAoB,EAAI5B,EAAmB4B,aAAe,EAEpJvzmC,EAAQN,OAASutT,GAAkB0kzB,EAAmB4B,cAAmD,IAAnC5B,EAAmB4B,YAAoB,EAAI5B,EAAmB4B,aAAe1wmC,EAAE47c,MAErJz+c,EAAQ8pI,QAAUmjL,GAAkB0kzB,EAAmB4B,cAAmD,IAAnC5B,EAAmB4B,YAAoB,EAAI5B,EAAmB4B,aAAe1wmC,EAAE47c,KAC1J,KACK,CAEGkzpB,EAAqBzwnC,KAAKipiC,UAAUqiC,2BAExCxsjC,EAAQ0jQ,QAAUupD,GAAkB0kzB,EAAmB4B,cAAmD,IAAnC5B,EAAmB4B,YAAoB,EAAI5B,EAAmB4B,aAAe,EAEpJvzmC,EAAQN,OAASutT,GAAkB0kzB,EAAmB4B,cAAmD,IAAnC5B,EAAmB4B,YAAoB,EAAI5B,EAAmB4B,aAAe1wmC,EAAE47c,MAErJz+c,EAAQ8pI,QAAUmjL,GAAkB0kzB,EAAmB4B,cAAmD,IAAnC5B,EAAmB4B,YAAoB,EAAI5B,EAAmB4B,aAAe1wmC,EAAE47c,MACzI,SAAT3wd,GAAmB5M,KAAKipiC,UAAUinE,aAAa5kC,4BAE/CxsjC,EAAQ0jQ,QAAUupD,GAAkB/rU,KAAKipiC,UAAUinE,aAAa5kC,2BAA2B+mD,cAAuF,IAAvErynC,KAAKipiC,UAAUinE,aAAa5kC,2BAA2B+mD,YAAoB,EAAIrynC,KAAKipiC,UAAUinE,aAAa5kC,2BAA2B+mD,aAAe,EAEhQvzmC,EAAQN,OAASutT,GAAkB/rU,KAAKipiC,UAAUinE,aAAa5kC,2BAA2B+mD,cAAuF,IAAvErynC,KAAKipiC,UAAUinE,aAAa5kC,2BAA2B+mD,YAAoB,EAAIrynC,KAAKipiC,UAAUinE,aAAa5kC,2BAA2B+mD,aAAe1wmC,EAAE47c,MAEjQz+c,EAAQ8pI,QAAUmjL,GAAkB/rU,KAAKipiC,UAAUinE,aAAa5kC,2BAA2B+mD,cAAuF,IAAvErynC,KAAKipiC,UAAUinE,aAAa5kC,2BAA2B+mD,YAAoB,EAAIrynC,KAAKipiC,UAAUinE,aAAa5kC,2BAA2B+mD,aAAe1wmC,EAAE47c,OAEpP,uBAAT3wd,GAAiC5M,KAAKipiC,UAAUknE,cAAc7kC,4BAEnExsjC,EAAQ0jQ,QAAUupD,GAAkB/rU,KAAKipiC,UAAUknE,cAAc7kC,2BAA2B+mD,cAAwF,IAAxErynC,KAAKipiC,UAAUknE,cAAc7kC,2BAA2B+mD,YAAoB,EAAIrynC,KAAKipiC,UAAUknE,cAAc7kC,2BAA2B+mD,aAAe,EAEnQvzmC,EAAQN,OAASutT,GAAkB/rU,KAAKipiC,UAAUknE,cAAc7kC,2BAA2B+mD,cAAwF,IAAxErynC,KAAKipiC,UAAUknE,cAAc7kC,2BAA2B+mD,YAAoB,EAAIrynC,KAAKipiC,UAAUknE,cAAc7kC,2BAA2B+mD,aAAe1wmC,EAAE47c,MAEpQz+c,EAAQ8pI,QAAUmjL,GAAkB/rU,KAAKipiC,UAAUknE,cAAc7kC,2BAA2B+mD,cAAwF,IAAxErynC,KAAKipiC,UAAUknE,cAAc7kC,2BAA2B+mD,YAAoB,EAAIrynC,KAAKipiC,UAAUknE,cAAc7kC,2BAA2B+mD,aAAe1wmC,EAAE47c,OAEvP,cAAT3wd,GAAwB5M,KAAKipiC,UAAUmnE,kBAAkB9kC,4BAE9DxsjC,EAAQ0jQ,QAAUupD,GAAkB/rU,KAAKipiC,UAAUmnE,kBAAkB9kC,2BAA2B+mD,cAA4F,IAA5ErynC,KAAKipiC,UAAUmnE,kBAAkB9kC,2BAA2B+mD,YAAoB,EAAIrynC,KAAKipiC,UAAUmnE,kBAAkB9kC,2BAA2B+mD,aAAe,EAE/QvzmC,EAAQN,OAASutT,GAAkB/rU,KAAKipiC,UAAUmnE,kBAAkB9kC,2BAA2B+mD,cAA4F,IAA5ErynC,KAAKipiC,UAAUmnE,kBAAkB9kC,2BAA2B+mD,YAAoB,EAAIrynC,KAAKipiC,UAAUmnE,kBAAkB9kC,2BAA2B+mD,aAAe1wmC,EAAE47c,MAEhRz+c,EAAQ8pI,QAAUmjL,GAAkB/rU,KAAKipiC,UAAUmnE,kBAAkB9kC,2BAA2B+mD,cAA4F,IAA5ErynC,KAAKipiC,UAAUmnE,kBAAkB9kC,2BAA2B+mD,YAAoB,EAAIrynC,KAAKipiC,UAAUmnE,kBAAkB9kC,2BAA2B+mD,aAAe1wmC,EAAE47c,OAEnQ,YAAT3wd,GAAsB5M,KAAKipiC,UAAUonE,eAAe/kC,4BAEzDxsjC,EAAQ0jQ,QAAUupD,GAAkB/rU,KAAKipiC,UAAUonE,eAAe/kC,2BAA2B+mD,cAAyF,IAAzErynC,KAAKipiC,UAAUonE,eAAe/kC,2BAA2B+mD,YAAoB,EAAIrynC,KAAKipiC,UAAUonE,eAAe/kC,2BAA2B+mD,aAAe,EAEtQvzmC,EAAQN,OAASutT,GAAkB/rU,KAAKipiC,UAAUonE,eAAe/kC,2BAA2B+mD,cAAyF,IAAzErynC,KAAKipiC,UAAUonE,eAAe/kC,2BAA2B+mD,YAAoB,EAAIrynC,KAAKipiC,UAAUonE,eAAe/kC,2BAA2B+mD,aAAe1wmC,EAAE47c,MAEvQz+c,EAAQ8pI,QAAUmjL,GAAkB/rU,KAAKipiC,UAAUonE,eAAe/kC,2BAA2B+mD,cAAyF,IAAzErynC,KAAKipiC,UAAUonE,eAAe/kC,2BAA2B+mD,YAAoB,EAAIrynC,KAAKipiC,UAAUonE,eAAe/kC,2BAA2B+mD,aAAe1wmC,EAAE47c,OAE1P,aAAT3wd,GAAuB5M,KAAKipiC,UAAU4mE,iBAAiBvkC,4BAE5DxsjC,EAAQ0jQ,QAAUupD,GAAkB/rU,KAAKipiC,UAAU4mE,iBAAiBvkC,2BAA2B+mD,cAA2F,IAA3ErynC,KAAKipiC,UAAU4mE,iBAAiBvkC,2BAA2B+mD,YAAoB,EAAIrynC,KAAKipiC,UAAU4mE,iBAAiBvkC,2BAA2B+mD,aAAe,EAE5QvzmC,EAAQN,OAASutT,GAAkB/rU,KAAKipiC,UAAU4mE,iBAAiBvkC,2BAA2B+mD,cAA2F,IAA3ErynC,KAAKipiC,UAAU4mE,iBAAiBvkC,2BAA2B+mD,YAAoB,EAAIrynC,KAAKipiC,UAAU4mE,iBAAiBvkC,2BAA2B+mD,aAAe1wmC,EAAE47c,MAE7Qz+c,EAAQ8pI,QAAUmjL,GAAkB/rU,KAAKipiC,UAAU4mE,iBAAiBvkC,2BAA2B+mD,cAA2F,IAA3ErynC,KAAKipiC,UAAU4mE,iBAAiBvkC,2BAA2B+mD,YAAoB,EAAIrynC,KAAKipiC,UAAU4mE,iBAAiBvkC,2BAA2B+mD,aAAe1wmC,EAAE47c,OAEhQ,YAAT3wd,GAAsB5M,KAAKipiC,UAAUqnE,gBAAgBhlC,4BAE1DxsjC,EAAQ0jQ,QAAUupD,GAAkB/rU,KAAKipiC,UAAUqnE,gBAAgBhlC,2BAA2B+mD,cAA0F,IAA1ErynC,KAAKipiC,UAAUqnE,gBAAgBhlC,2BAA2B+mD,YAAoB,EAAIrynC,KAAKipiC,UAAUqnE,gBAAgBhlC,2BAA2B+mD,aAAe,EAEzQvzmC,EAAQN,OAASutT,GAAkB/rU,KAAKipiC,UAAUqnE,gBAAgBhlC,2BAA2B+mD,cAA0F,IAA1ErynC,KAAKipiC,UAAUqnE,gBAAgBhlC,2BAA2B+mD,YAAoB,EAAIrynC,KAAKipiC,UAAUqnE,gBAAgBhlC,2BAA2B+mD,aAAe1wmC,EAAE47c,MAE1Qz+c,EAAQ8pI,QAAUmjL,GAAkB/rU,KAAKipiC,UAAUqnE,gBAAgBhlC,2BAA2B+mD,cAA0F,IAA1ErynC,KAAKipiC,UAAUqnE,gBAAgBhlC,2BAA2B+mD,YAAoB,EAAIrynC,KAAKipiC,UAAUqnE,gBAAgBhlC,2BAA2B+mD,aAAe1wmC,EAAE47c,OAE7P,WAAT3wd,GAAqB5M,KAAKipiC,UAAU+mE,eAAe1kC,4BAExDxsjC,EAAQ0jQ,QAAUupD,GAAkB/rU,KAAKipiC,UAAU+mE,eAAe1kC,2BAA2B+mD,cAAyF,IAAzErynC,KAAKipiC,UAAU+mE,eAAe1kC,2BAA2B+mD,YAAoB,EAAIrynC,KAAKipiC,UAAU+mE,eAAe1kC,2BAA2B+mD,aAAe,EAEtQvzmC,EAAQN,OAASutT,GAAkB/rU,KAAKipiC,UAAU+mE,eAAe1kC,2BAA2B+mD,cAAyF,IAAzErynC,KAAKipiC,UAAU+mE,eAAe1kC,2BAA2B+mD,YAAoB,EAAIrynC,KAAKipiC,UAAU+mE,eAAe1kC,2BAA2B+mD,aAAe1wmC,EAAE47c,MAEvQz+c,EAAQ8pI,QAAUmjL,GAAkB/rU,KAAKipiC,UAAU+mE,eAAe1kC,2BAA2B+mD,cAAyF,IAAzErynC,KAAKipiC,UAAU+mE,eAAe1kC,2BAA2B+mD,YAAoB,EAAIrynC,KAAKipiC,UAAU+mE,eAAe1kC,2BAA2B+mD,aAAe1wmC,EAAE47c,OAE1P,UAAT3wd,GAAoB5M,KAAKipiC,UAAUumC,cAAclE,4BAEtDxsjC,EAAQ0jQ,QAAUupD,GAAkB/rU,KAAKipiC,UAAUumC,cAAclE,2BAA2B+mD,cAAwF,IAAxErynC,KAAKipiC,UAAUumC,cAAclE,2BAA2B+mD,YAAoB,EAAIrynC,KAAKipiC,UAAUumC,cAAclE,2BAA2B+mD,aAAe,EAEnQvzmC,EAAQN,OAASutT,GAAkB/rU,KAAKipiC,UAAUumC,cAAclE,2BAA2B+mD,cAAwF,IAAxErynC,KAAKipiC,UAAUumC,cAAclE,2BAA2B+mD,YAAoB,EAAIrynC,KAAKipiC,UAAUumC,cAAclE,2BAA2B+mD,aAAe1wmC,EAAE47c,MAEpQz+c,EAAQ8pI,QAAUmjL,GAAkB/rU,KAAKipiC,UAAUumC,cAAclE,2BAA2B+mD,cAAwF,IAAxErynC,KAAKipiC,UAAUumC,cAAclE,2BAA2B+mD,YAAoB,EAAIrynC,KAAKipiC,UAAUumC,cAAclE,2BAA2B+mD,aAAe1wmC,EAAE47c,OAEvP,aAAT3wd,GAAuB5M,KAAKipiC,UAAUqlE,iBAAiBhjC,4BAE5DxsjC,EAAQ0jQ,QAAUupD,GAAkB/rU,KAAKipiC,UAAUqlE,iBAAiBhjC,2BAA2B+mD,cAA2F,IAA3ErynC,KAAKipiC,UAAUqlE,iBAAiBhjC,2BAA2B+mD,YAAoB,EAAIrynC,KAAKipiC,UAAUqlE,iBAAiBhjC,2BAA2B+mD,aAAe,EAE5QvzmC,EAAQN,OAASutT,GAAkB/rU,KAAKipiC,UAAUqlE,iBAAiBhjC,2BAA2B+mD,cAA2F,IAA3ErynC,KAAKipiC,UAAUqlE,iBAAiBhjC,2BAA2B+mD,YAAoB,EAAIrynC,KAAKipiC,UAAUqlE,iBAAiBhjC,2BAA2B+mD,aAAe1wmC,EAAE47c,MAE7Qz+c,EAAQ8pI,QAAUmjL,GAAkB/rU,KAAKipiC,UAAUqlE,iBAAiBhjC,2BAA2B+mD,cAA2F,IAA3ErynC,KAAKipiC,UAAUqlE,iBAAiBhjC,2BAA2B+mD,YAAoB,EAAIrynC,KAAKipiC,UAAUqlE,iBAAiBhjC,2BAA2B+mD,aAAe1wmC,EAAE47c,OAE/P,yBAAT3wd,GAA4C,kBAATA,GAAqC,mBAATA,IAA8B5M,KAAKipiC,UAAUsS,6BAA6B+vB,2BAQjI,cAAT1+jC,GAAwB5M,KAAKipiC,UAAU6mE,kBAAkBxkC,4BAE9DxsjC,EAAQ0jQ,QAAUupD,GAAkB/rU,KAAKipiC,UAAU6mE,kBAAkBxkC,2BAA2B+mD,cAA4F,IAA5ErynC,KAAKipiC,UAAU6mE,kBAAkBxkC,2BAA2B+mD,YAAoB,EAAIrynC,KAAKipiC,UAAU6mE,kBAAkBxkC,2BAA2B+mD,aAAe,EAE/QvzmC,EAAQN,OAASutT,GAAkB/rU,KAAKipiC,UAAU6mE,kBAAkBxkC,2BAA2B+mD,cAA4F,IAA5ErynC,KAAKipiC,UAAU6mE,kBAAkBxkC,2BAA2B+mD,YAAoB,EAAIrynC,KAAKipiC,UAAU6mE,kBAAkBxkC,2BAA2B+mD,aAAe1wmC,EAAE47c,MAEhRz+c,EAAQ8pI,QAAUmjL,GAAkB/rU,KAAKipiC,UAAU6mE,kBAAkBxkC,2BAA2B+mD,cAA4F,IAA5ErynC,KAAKipiC,UAAU6mE,kBAAkBxkC,2BAA2B+mD,YAAoB,EAAIrynC,KAAKipiC,UAAU6mE,kBAAkBxkC,2BAA2B+mD,aAAe1wmC,EAAE47c,OAEnQ,SAAT3wd,GAAmB5M,KAAKipiC,UAAU8mE,aAAazkC,4BAEpDxsjC,EAAQ0jQ,QAAUupD,GAAkB/rU,KAAKipiC,UAAU8mE,aAAazkC,2BAA2B+mD,cAAuF,IAAvErynC,KAAKipiC,UAAU8mE,aAAazkC,2BAA2B+mD,YAAoB,EAAIrynC,KAAKipiC,UAAU8mE,aAAazkC,2BAA2B+mD,aAAe,EAEhQvzmC,EAAQN,OAASutT,GAAkB/rU,KAAKipiC,UAAU8mE,aAAazkC,2BAA2B+mD,cAAuF,IAAvErynC,KAAKipiC,UAAU8mE,aAAazkC,2BAA2B+mD,YAAoB,EAAIrynC,KAAKipiC,UAAU8mE,aAAazkC,2BAA2B+mD,aAAe1wmC,EAAE47c,MAEjQz+c,EAAQ8pI,QAAUmjL,GAAkB/rU,KAAKipiC,UAAU8mE,aAAazkC,2BAA2B+mD,cAAuF,IAAvErynC,KAAKipiC,UAAU8mE,aAAazkC,2BAA2B+mD,YAAoB,EAAIrynC,KAAKipiC,UAAU8mE,aAAazkC,2BAA2B+mD,aAAe1wmC,EAAE47c,OAEpP,WAAT3wd,GAAqB5M,KAAKipiC,UAAUgnE,eAAe3kC,4BAExDxsjC,EAAQ0jQ,QAAUupD,GAAkB/rU,KAAKipiC,UAAUgnE,eAAe3kC,2BAA2B+mD,cAAyF,IAAzErynC,KAAKipiC,UAAUgnE,eAAe3kC,2BAA2B+mD,YAAoB,EAAIrynC,KAAKipiC,UAAUgnE,eAAe3kC,2BAA2B+mD,aAAe,EAEtQvzmC,EAAQN,OAASutT,GAAkB/rU,KAAKipiC,UAAUgnE,eAAe3kC,2BAA2B+mD,cAAyF,IAAzErynC,KAAKipiC,UAAUgnE,eAAe3kC,2BAA2B+mD,YAAoB,EAAIrynC,KAAKipiC,UAAUgnE,eAAe3kC,2BAA2B+mD,aAAe1wmC,EAAE47c,MAEvQz+c,EAAQ8pI,QAAUmjL,GAAkB/rU,KAAKipiC,UAAUgnE,eAAe3kC,2BAA2B+mD,cAAyF,IAAzErynC,KAAKipiC,UAAUgnE,eAAe3kC,2BAA2B+mD,YAAoB,EAAIrynC,KAAKipiC,UAAUgnE,eAAe3kC,2BAA2B+mD,aAAe1wmC,EAAE47c,OAE1P,QAAT3wd,GAAkB5M,KAAKipiC,UAAU2mE,sBAAsBtkC,6BAE5DxsjC,EAAQ0jQ,QAAUupD,GAAkB/rU,KAAKipiC,UAAU2mE,sBAAsBtkC,2BAA2B+mD,cAAgG,IAAhFrynC,KAAKipiC,UAAU2mE,sBAAsBtkC,2BAA2B+mD,YAAoB,EAAIrynC,KAAKipiC,UAAU2mE,sBAAsBtkC,2BAA2B+mD,aAAe,EAE3RvzmC,EAAQN,OAASutT,GAAkB/rU,KAAKipiC,UAAU2mE,sBAAsBtkC,2BAA2B+mD,cAAgG,IAAhFrynC,KAAKipiC,UAAU2mE,sBAAsBtkC,2BAA2B+mD,YAAoB,EAAIrynC,KAAKipiC,UAAU2mE,sBAAsBtkC,2BAA2B+mD,aAAe1wmC,EAAE47c,MAE5Rz+c,EAAQ8pI,QAAUmjL,GAAkB/rU,KAAKipiC,UAAU2mE,sBAAsBtkC,2BAA2B+mD,cAAgG,IAAhFrynC,KAAKipiC,UAAU2mE,sBAAsBtkC,2BAA2B+mD,YAAoB,EAAIrynC,KAAKipiC,UAAU2mE,sBAAsBtkC,2BAA2B+mD,aAAe1wmC,EAAE47c,QApC7Rz+c,EAAQ0jQ,QAAUupD,GAAkB/rU,KAAKipiC,UAAUsS,6BAA6B+vB,2BAA2B+mD,cAAuG,IAAvFrynC,KAAKipiC,UAAUsS,6BAA6B+vB,2BAA2B+mD,YAAoB,EAAIrynC,KAAKipiC,UAAUsS,6BAA6B+vB,2BAA2B+mD,aAAe,EAEhTvzmC,EAAQN,OAASutT,GAAkB/rU,KAAKipiC,UAAUsS,6BAA6B+vB,2BAA2B+mD,cAAuG,IAAvFrynC,KAAKipiC,UAAUsS,6BAA6B+vB,2BAA2B+mD,YAAoB,EAAIrynC,KAAKipiC,UAAUsS,6BAA6B+vB,2BAA2B+mD,aAAe1wmC,EAAE47c,MAEjTz+c,EAAQ8pI,QAAUmjL,GAAkB/rU,KAAKipiC,UAAUsS,6BAA6B+vB,2BAA2B+mD,cAAuG,IAAvFrynC,KAAKipiC,UAAUsS,6BAA6B+vB,2BAA2B+mD,YAAoB,EAAIrynC,KAAKipiC,UAAUsS,6BAA6B+vB,2BAA2B+mD,aAAe1wmC,EAAE47c,MAkC1T,CACJ,EAQAuupB,EAAQn7mC,UAAUyhnC,SAAW,SAAUxlnC,EAAMuqkB,GAEzC,IAAI4hN,EASQ03V,EAPJt5iB,GAAgD,kBAArBA,GAAqD,KAApBA,EAG5D4hN,EAAYhtd,IADR0kzB,EAAqBhglC,KAAKuL,MAAMm7hB,IACam7iB,eAAqD,WAApC7B,EAAmB6B,aAA4B,SAAW7B,EAAmB6B,cAK/Iv5V,EAAYhtd,IADR0kzB,EAAqBzwnC,KAAKipiC,UAAUqiC,4BACSgnD,eAAqD,WAApC7B,EAAmB6B,aAA4B,SAAW7B,EAAmB6B,aAClI,SAAT1lnC,GAAmB5M,KAAKipiC,UAAUinE,aAAa5kC,2BAC/CvyS,EAAYhtd,GAAkB/rU,KAAKipiC,UAAUinE,aAAa5kC,2BAA2BgnD,eAAyF,WAAxEtynC,KAAKipiC,UAAUinE,aAAa5kC,2BAA2BgnD,aAA4B,SAAWtynC,KAAKipiC,UAAUinE,aAAa5kC,2BAA2BgnD,aAE7O,uBAAT1lnC,GAAiC5M,KAAKipiC,UAAUknE,cAAc7kC,2BACnEvyS,EAAYhtd,GAAkB/rU,KAAKipiC,UAAUknE,cAAc7kC,2BAA2BgnD,eAA0F,WAAzEtynC,KAAKipiC,UAAUknE,cAAc7kC,2BAA2BgnD,aAA4B,SAAWtynC,KAAKipiC,UAAUknE,cAAc7kC,2BAA2BgnD,aAEhP,cAAT1lnC,GAAwB5M,KAAKipiC,UAAUmnE,kBAAkB9kC,2BAC9DvyS,EAAYhtd,GAAkB/rU,KAAKipiC,UAAUmnE,kBAAkB9kC,2BAA2BgnD,eAA8F,WAA7EtynC,KAAKipiC,UAAUmnE,kBAAkB9kC,2BAA2BgnD,aAA4B,SAAWtynC,KAAKipiC,UAAUmnE,kBAAkB9kC,2BAA2BgnD,aAE5P,YAAT1lnC,GAAsB5M,KAAKipiC,UAAUonE,eAAe/kC,2BACzDvyS,EAAYhtd,GAAkB/rU,KAAKipiC,UAAUonE,eAAe/kC,2BAA2BgnD,eAA2F,WAA1EtynC,KAAKipiC,UAAUonE,eAAe/kC,2BAA2BgnD,aAA4B,SAAWtynC,KAAKipiC,UAAUonE,eAAe/kC,2BAA2BgnD,aAEnP,YAAT1lnC,GAAsB5M,KAAKipiC,UAAUqnE,gBAAgBhlC,2BAC1DvyS,EAAYhtd,GAAkB/rU,KAAKipiC,UAAUqnE,gBAAgBhlC,2BAA2BgnD,eAA4F,WAA3EtynC,KAAKipiC,UAAUqnE,gBAAgBhlC,2BAA2BgnD,aAA4B,SAAWtynC,KAAKipiC,UAAUqnE,gBAAgBhlC,2BAA2BgnD,aAEtP,aAAT1lnC,GAAuB5M,KAAKipiC,UAAU4mE,iBAAiBvkC,2BAC5DvyS,EAAYhtd,GAAkB/rU,KAAKipiC,UAAU4mE,iBAAiBvkC,2BAA2BgnD,eAA6F,WAA5EtynC,KAAKipiC,UAAU4mE,iBAAiBvkC,2BAA2BgnD,aAA4B,SAAWtynC,KAAKipiC,UAAU4mE,iBAAiBvkC,2BAA2BgnD,aAEzP,WAAT1lnC,GAAqB5M,KAAKipiC,UAAU+mE,eAAe1kC,2BACxDvyS,EAAYhtd,GAAkB/rU,KAAKipiC,UAAU+mE,eAAe1kC,2BAA2BgnD,eAA2F,WAA1EtynC,KAAKipiC,UAAU+mE,eAAe1kC,2BAA2BgnD,aAA4B,SAAWtynC,KAAKipiC,UAAU+mE,eAAe1kC,2BAA2BgnD,aAEnP,UAAT1lnC,GAAoB5M,KAAKipiC,UAAUumC,cAAclE,2BACtDvyS,EAAYhtd,GAAkB/rU,KAAKipiC,UAAUumC,cAAclE,2BAA2BgnD,eAA0F,WAAzEtynC,KAAKipiC,UAAUumC,cAAclE,2BAA2BgnD,aAA4B,SAAWtynC,KAAKipiC,UAAUumC,cAAclE,2BAA2BgnD,aAEhP,aAAT1lnC,GAAuB5M,KAAKipiC,UAAUqlE,iBAAiBhjC,2BAC5DvyS,EAAYhtd,GAAkB/rU,KAAKipiC,UAAUqlE,iBAAiBhjC,2BAA2BgnD,eAA6F,WAA5EtynC,KAAKipiC,UAAUqlE,iBAAiBhjC,2BAA2BgnD,aAA4B,SAAWtynC,KAAKipiC,UAAUqlE,iBAAiBhjC,2BAA2BgnD,cAExP,yBAAT1lnC,GAA4C,kBAATA,GAAqC,mBAATA,IAA8B5M,KAAKipiC,UAAUsS,8BAAgCv7iC,KAAKipiC,UAAUsS,6BAA6B+vB,2BAC9LvyS,EAAYhtd,GAAkB/rU,KAAKipiC,UAAUsS,6BAA6B+vB,2BAA2BgnD,eAAyG,WAAxFtynC,KAAKipiC,UAAUsS,6BAA6B+vB,2BAA2BgnD,aAA4B,SAAWtynC,KAAKipiC,UAAUsS,6BAA6B+vB,2BAA2BgnD,aAE7R,cAAT1lnC,GAAwB5M,KAAKipiC,UAAU6mE,kBAAkBxkC,2BAC9DvyS,EAAYhtd,GAAkB/rU,KAAKipiC,UAAU6mE,kBAAkBxkC,2BAA2BgnD,eAA8F,WAA7EtynC,KAAKipiC,UAAU6mE,kBAAkBxkC,2BAA2BgnD,aAA4B,SAAWtynC,KAAKipiC,UAAU6mE,kBAAkBxkC,2BAA2BgnD,aAE5P,SAAT1lnC,GAAmB5M,KAAKipiC,UAAU8mE,aAAazkC,2BACpDvyS,EAAYhtd,GAAkB/rU,KAAKipiC,UAAU8mE,aAAazkC,2BAA2BgnD,eAAyF,WAAxEtynC,KAAKipiC,UAAU8mE,aAAazkC,2BAA2BgnD,aAA4B,SAAWtynC,KAAKipiC,UAAU8mE,aAAazkC,2BAA2BgnD,aAE7O,WAAT1lnC,GAAqB5M,KAAKipiC,UAAUgnE,eAAe3kC,2BACxDvyS,EAAYhtd,GAAkB/rU,KAAKipiC,UAAUgnE,eAAe3kC,2BAA2BgnD,eAA2F,WAA1EtynC,KAAKipiC,UAAUgnE,eAAe3kC,2BAA2BgnD,aAA4B,SAAWtynC,KAAKipiC,UAAUgnE,eAAe3kC,2BAA2BgnD,aAEnP,QAAT1lnC,GAAkB5M,KAAKipiC,UAAU2mE,sBAAsBtkC,6BAC5DvyS,EAAYhtd,GAAkB/rU,KAAKipiC,UAAU2mE,sBAAsBtkC,2BAA2BgnD,eAAkG,WAAjFtynC,KAAKipiC,UAAU2mE,sBAAsBtkC,2BAA2BgnD,aAA4B,SAAWtynC,KAAKipiC,UAAU2mE,sBAAsBtkC,2BAA2BgnD,eAG9R,OAAOv5V,CAEf,EAUA+yV,EAAQn7mC,UAAUuhnC,iBAAmB,SAAUtlnC,EAAMkS,EAASq4jB,EAAiBx1jB,GAC3E,GAAIw1jB,GAAgD,kBAArBA,GAAqD,KAApBA,EAAwB,CAEpF,IAAIs5iB,EAAqBhglC,KAAKuL,MAAMm7hB,GACpCr4jB,EAAQy7uB,OAASxub,GAAkB0kzB,EAAmB8B,qBAAiE,UAA1C9B,EAAmB8B,mBAAiC,QAAU9B,EAAmB8B,mBAC9JzzmC,EAAQ0nE,KAAOulP,GAAkB0kzB,EAAmB+B,mBAA6D,YAAxC/B,EAAmB+B,iBAAiC,UAAY/B,EAAmB+B,gBAChK,KACK,CAEG/B,EAAqBzwnC,KAAKipiC,UAAUqiC,2BACxCxsjC,EAAQy7uB,OAASxub,GAAkB0kzB,EAAmB8B,qBAAiE,UAA1C9B,EAAmB8B,mBAAiC,QAAU9B,EAAmB8B,mBAC9JzzmC,EAAQ0nE,KAAOulP,GAAkB0kzB,EAAmB+B,mBAA6D,YAAxC/B,EAAmB+B,iBAAiC,UAAY/B,EAAmB+B,iBAC/I,SAAT5lnC,GAAmB5M,KAAKipiC,UAAUinE,aAAa5kC,4BAC/CxsjC,EAAQy7uB,OAASxub,GAAkB/rU,KAAKipiC,UAAUinE,aAAa5kC,2BAA2BinD,qBAAqG,UAA9EvynC,KAAKipiC,UAAUinE,aAAa5kC,2BAA2BinD,mBAAiC,QAAUvynC,KAAKipiC,UAAUinE,aAAa5kC,2BAA2BinD,mBAC1QzzmC,EAAQ0nE,KAAOulP,GAAkB/rU,KAAKipiC,UAAUinE,aAAa5kC,2BAA2BknD,mBAAiG,YAA5ExynC,KAAKipiC,UAAUinE,aAAa5kC,2BAA2BknD,iBAAiC,UAAYxynC,KAAKipiC,UAAUinE,aAAa5kC,2BAA2BknD,kBAE1P,uBAAT5lnC,GAAiC5M,KAAKipiC,UAAUknE,cAAc7kC,4BACnExsjC,EAAQy7uB,OAASxub,GAAkB/rU,KAAKipiC,UAAUknE,cAAc7kC,2BAA2BinD,qBAAsG,UAA/EvynC,KAAKipiC,UAAUknE,cAAc7kC,2BAA2BinD,mBAAiC,QAAUvynC,KAAKipiC,UAAUknE,cAAc7kC,2BAA2BinD,mBAC7QzzmC,EAAQ0nE,KAAOulP,GAAkB/rU,KAAKipiC,UAAUknE,cAAc7kC,2BAA2BknD,mBAAkG,YAA7ExynC,KAAKipiC,UAAUknE,cAAc7kC,2BAA2BknD,iBAAiC,UAAYxynC,KAAKipiC,UAAUknE,cAAc7kC,2BAA2BknD,kBAE7P,cAAT5lnC,GAAwB5M,KAAKipiC,UAAUmnE,kBAAkB9kC,4BAC9DxsjC,EAAQy7uB,OAASxub,GAAkB/rU,KAAKipiC,UAAUmnE,kBAAkB9kC,2BAA2BinD,qBAA0G,UAAnFvynC,KAAKipiC,UAAUmnE,kBAAkB9kC,2BAA2BinD,mBAAiC,QAAUvynC,KAAKipiC,UAAUmnE,kBAAkB9kC,2BAA2BinD,mBACzRzzmC,EAAQ0nE,KAAOulP,GAAkB/rU,KAAKipiC,UAAUmnE,kBAAkB9kC,2BAA2BknD,mBAAsG,YAAjFxynC,KAAKipiC,UAAUmnE,kBAAkB9kC,2BAA2BknD,iBAAiC,UAAYxynC,KAAKipiC,UAAUmnE,kBAAkB9kC,2BAA2BknD,kBAEzQ,YAAT5lnC,GAAsB5M,KAAKipiC,UAAUonE,eAAe/kC,4BACzDxsjC,EAAQy7uB,OAASxub,GAAkB/rU,KAAKipiC,UAAUonE,eAAe/kC,2BAA2BinD,qBAAuG,UAAhFvynC,KAAKipiC,UAAUonE,eAAe/kC,2BAA2BinD,mBAAiC,QAAUvynC,KAAKipiC,UAAUonE,eAAe/kC,2BAA2BinD,mBAChRzzmC,EAAQ0nE,KAAOulP,GAAkB/rU,KAAKipiC,UAAUonE,eAAe/kC,2BAA2BknD,mBAAmG,YAA9ExynC,KAAKipiC,UAAUonE,eAAe/kC,2BAA2BknD,iBAAiC,UAAYxynC,KAAKipiC,UAAUonE,eAAe/kC,2BAA2BknD,kBAEhQ,aAAT5lnC,GAAuB5M,KAAKipiC,UAAU4mE,iBAAiBvkC,4BAC5DxsjC,EAAQy7uB,OAASxub,GAAkB/rU,KAAKipiC,UAAU4mE,iBAAiBvkC,2BAA2BinD,qBAAyG,UAAlFvynC,KAAKipiC,UAAU4mE,iBAAiBvkC,2BAA2BinD,mBAAiC,QAAUvynC,KAAKipiC,UAAU4mE,iBAAiBvkC,2BAA2BinD,mBACtRzzmC,EAAQ0nE,KAAOulP,GAAkB/rU,KAAKipiC,UAAU4mE,iBAAiBvkC,2BAA2BknD,mBAAqG,YAAhFxynC,KAAKipiC,UAAU4mE,iBAAiBvkC,2BAA2BknD,iBAAiC,UAAYxynC,KAAKipiC,UAAU4mE,iBAAiBvkC,2BAA2BknD,kBAEtQ,YAAT5lnC,GAAsB5M,KAAKipiC,UAAUqnE,gBAAgBhlC,4BAC1DxsjC,EAAQy7uB,OAASxub,GAAkB/rU,KAAKipiC,UAAUqnE,gBAAgBhlC,2BAA2BinD,qBAAwG,UAAjFvynC,KAAKipiC,UAAUqnE,gBAAgBhlC,2BAA2BinD,mBAAiC,QAAUvynC,KAAKipiC,UAAUqnE,gBAAgBhlC,2BAA2BinD,mBACnRzzmC,EAAQ0nE,KAAOulP,GAAkB/rU,KAAKipiC,UAAUqnE,gBAAgBhlC,2BAA2BknD,mBAAoG,YAA/ExynC,KAAKipiC,UAAUqnE,gBAAgBhlC,2BAA2BknD,iBAAiC,UAAYxynC,KAAKipiC,UAAUqnE,gBAAgBhlC,2BAA2BknD,kBAEnQ,WAAT5lnC,GAAqB5M,KAAKipiC,UAAU+mE,eAAe1kC,4BACxDxsjC,EAAQy7uB,OAASxub,GAAkB/rU,KAAKipiC,UAAU+mE,eAAe1kC,2BAA2BinD,qBAAuG,UAAhFvynC,KAAKipiC,UAAU+mE,eAAe1kC,2BAA2BinD,mBAAiC,QAAUvynC,KAAKipiC,UAAU+mE,eAAe1kC,2BAA2BinD,mBAChRzzmC,EAAQ0nE,KAAOulP,GAAkB/rU,KAAKipiC,UAAU+mE,eAAe1kC,2BAA2BknD,mBAAmG,YAA9ExynC,KAAKipiC,UAAU+mE,eAAe1kC,2BAA2BknD,iBAAiC,UAAYxynC,KAAKipiC,UAAU+mE,eAAe1kC,2BAA2BknD,kBAEhQ,UAAT5lnC,GAAoB5M,KAAKipiC,UAAUumC,cAAclE,4BACtDxsjC,EAAQy7uB,OAASxub,GAAkB/rU,KAAKipiC,UAAUumC,cAAclE,2BAA2BinD,qBAAsG,UAA/EvynC,KAAKipiC,UAAUumC,cAAclE,2BAA2BinD,mBAAiC,QAAUvynC,KAAKipiC,UAAUumC,cAAclE,2BAA2BinD,mBAC7QzzmC,EAAQ0nE,KAAOulP,GAAkB/rU,KAAKipiC,UAAUumC,cAAclE,2BAA2BknD,mBAAkG,YAA7ExynC,KAAKipiC,UAAUumC,cAAclE,2BAA2BknD,iBAAiC,UAAYxynC,KAAKipiC,UAAUumC,cAAclE,2BAA2BknD,kBAE7P,aAAT5lnC,GAAuB5M,KAAKipiC,UAAUqlE,iBAAiBhjC,4BAC5DxsjC,EAAQy7uB,OAASxub,GAAkB/rU,KAAKipiC,UAAUqlE,iBAAiBhjC,2BAA2BinD,qBAAyG,UAAlFvynC,KAAKipiC,UAAUqlE,iBAAiBhjC,2BAA2BinD,mBAAiC,QAAUvynC,KAAKipiC,UAAUqlE,iBAAiBhjC,2BAA2BinD,mBACtRzzmC,EAAQ0nE,KAAOulP,GAAkB/rU,KAAKipiC,UAAUqlE,iBAAiBhjC,2BAA2BknD,mBAAqG,YAAhFxynC,KAAKipiC,UAAUqlE,iBAAiBhjC,2BAA2BknD,iBAAiC,UAAYxynC,KAAKipiC,UAAUqlE,iBAAiBhjC,2BAA2BknD,kBAErQ,yBAAT5lnC,GAA4C,kBAATA,GAAqC,mBAATA,IAA8B5M,KAAKipiC,UAAUsS,6BAA6B+vB,2BAIjI,cAAT1+jC,GAAwB5M,KAAKipiC,UAAU6mE,kBAAkBxkC,4BAC9DxsjC,EAAQy7uB,OAASxub,GAAkB/rU,KAAKipiC,UAAU6mE,kBAAkBxkC,2BAA2BinD,qBAA0G,UAAnFvynC,KAAKipiC,UAAU6mE,kBAAkBxkC,2BAA2BinD,mBAAiC,QAAUvynC,KAAKipiC,UAAU6mE,kBAAkBxkC,2BAA2BinD,mBACzRzzmC,EAAQ0nE,KAAOulP,GAAkB/rU,KAAKipiC,UAAU6mE,kBAAkBxkC,2BAA2BknD,mBAAsG,YAAjFxynC,KAAKipiC,UAAU6mE,kBAAkBxkC,2BAA2BknD,iBAAiC,UAAYxynC,KAAKipiC,UAAU6mE,kBAAkBxkC,2BAA2BknD,kBAEzQ,SAAT5lnC,GAAmB5M,KAAKipiC,UAAU8mE,aAAazkC,4BACpDxsjC,EAAQy7uB,OAASxub,GAAkB/rU,KAAKipiC,UAAU8mE,aAAazkC,2BAA2BinD,qBAAqG,UAA9EvynC,KAAKipiC,UAAU8mE,aAAazkC,2BAA2BinD,mBAAiC,QAAUvynC,KAAKipiC,UAAU8mE,aAAazkC,2BAA2BinD,mBAC1QzzmC,EAAQ0nE,KAAOulP,GAAkB/rU,KAAKipiC,UAAU8mE,aAAazkC,2BAA2BknD,mBAAiG,YAA5ExynC,KAAKipiC,UAAU8mE,aAAazkC,2BAA2BknD,iBAAiC,UAAYxynC,KAAKipiC,UAAU8mE,aAAazkC,2BAA2BknD,kBAE1P,WAAT5lnC,GAAqB5M,KAAKipiC,UAAUgnE,eAAe3kC,4BACxDxsjC,EAAQy7uB,OAASxub,GAAkB/rU,KAAKipiC,UAAUgnE,eAAe3kC,2BAA2BinD,qBAAuG,UAAhFvynC,KAAKipiC,UAAUgnE,eAAe3kC,2BAA2BinD,mBAAiC,QAAUvynC,KAAKipiC,UAAUgnE,eAAe3kC,2BAA2BinD,mBAChRzzmC,EAAQ0nE,KAAOulP,GAAkB/rU,KAAKipiC,UAAUgnE,eAAe3kC,2BAA2BknD,mBAAmG,YAA9ExynC,KAAKipiC,UAAUgnE,eAAe3kC,2BAA2BknD,iBAAiC,UAAYxynC,KAAKipiC,UAAUgnE,eAAe3kC,2BAA2BknD,kBAEhQ,QAAT5lnC,GAAkB5M,KAAKipiC,UAAU2mE,sBAAsBtkC,6BAC5DxsjC,EAAQy7uB,OAASxub,GAAkB/rU,KAAKipiC,UAAU2mE,sBAAsBtkC,2BAA2BinD,qBAA8G,UAAvFvynC,KAAKipiC,UAAU2mE,sBAAsBtkC,2BAA2BinD,mBAAiC,QAAUvynC,KAAKipiC,UAAU2mE,sBAAsBtkC,2BAA2BinD,mBACrSzzmC,EAAQ0nE,KAAOulP,GAAkB/rU,KAAKipiC,UAAU2mE,sBAAsBtkC,2BAA2BknD,mBAA0G,YAArFxynC,KAAKipiC,UAAU2mE,sBAAsBtkC,2BAA2BknD,iBAAiC,UAAYxynC,KAAKipiC,UAAU2mE,sBAAsBtkC,2BAA2BknD,mBAjBnS1zmC,EAAQy7uB,OAASxub,GAAkB/rU,KAAKipiC,UAAUsS,6BAA6B+vB,2BAA2BinD,qBAAqH,UAA9FvynC,KAAKipiC,UAAUsS,6BAA6B+vB,2BAA2BinD,mBAAiC,QAAUvynC,KAAKipiC,UAAUsS,6BAA6B+vB,2BAA2BinD,mBAC1TzzmC,EAAQ0nE,KAAOulP,GAAkB/rU,KAAKipiC,UAAUsS,6BAA6B+vB,2BAA2BknD,mBAAiH,YAA5FxynC,KAAKipiC,UAAUsS,6BAA6B+vB,2BAA2BknD,iBAAiC,UAAYxynC,KAAKipiC,UAAUsS,6BAA6B+vB,2BAA2BknD,iBAkBhU,CACJ,EAUA1G,EAAQn7mC,UAAU8hnC,kBAAoB,SAAUtonC,EAASyyd,EAAQrka,EAAWm6jC,EAAqBT,GAC/E,IAAI5uD,IAAlB,IACIR,EACA306B,EAAM/jJ,EAAQqoV,QAAUroV,EAAQwywB,WAAW/znB,OAASz+I,EAAQoriC,MAAMp7hC,EAElEs7hC,EADOtriC,EAAQooV,QAAUpoV,EAAQwywB,WAAWn+vB,MAAQrU,EAAQoriC,MAAMr7hC,EAClD/P,EAAQoriC,MAAMr7hC,EAAI/P,EAAQwywB,WAAWn+vB,MACrDk3hC,EAASxn5B,EAIb,GADA206B,EAAW,CAAE3ojC,EAFbu7hC,GAAUA,EAASl9+B,EAAUspa,IAAMtpa,EAAUgla,MAErBpjd,GADxBu7hC,GAAUA,EAASn9+B,EAAUupa,IAAMvpa,EAAUgla,OACT,IACR,IAAxBpzd,EAAQ+mwB,aAAiD,IAA5B/mwB,EAAQqriC,gBAAuB,CAC5D,IAAInta,EAASura,MACbO,IAAa9ra,EAAQl+nB,EAAQ+mwB,YAAc/mwB,EAAQqriC,iBAAkBj9+B,EAAUspa,GAAK13d,EAAQooV,SAAWh6R,EAAUgla,OAAQhla,EAAUupa,GAAK33d,EAAQqoV,SAAWj6R,EAAUgla,OACrKslmB,EAAW/uB,IAAuBzra,EAAQw6b,EAC9C,CACA,IAAI/jjC,EAAUu2hC,IAAuBlriC,GACrC2U,EAAQy7uB,OAAS,QACjBz7uB,EAAQswH,YAAc,EACtBtwH,EAAQwvH,QAAU,EAClBxvH,EAAQ0nE,KAAO,UACf1nE,EAAQmyZ,QAAU4xpB,EAAS3ojC,EAC3B4E,EAAQoyZ,QAAU2xpB,EAAS1ojC,EAC3B2E,EAAQ0jQ,OAAS,EACjB1jQ,EAAQyyZ,MAAQ,EAChBzyZ,EAAQ+wR,SAAU,EAClB/wR,EAAQswa,MAAQ,0BAChBtwa,EAAQqX,GAAK,cACbn2B,KAAKgsnC,YAAY7uL,WAAWvge,EAAQ99c,EAASsxiC,IAAkB6oD,OAAQ,CAAE,aAAc,wCACvF,IAAI0Z,EAAe/1pB,EAAOhjc,cAAc,IAAM9a,EAAQqX,IAClDw8lC,GACAA,EAAa39lC,aAAa,OAAQ,YAE1C,EAiBA82lC,EAAQn7mC,UAAUg/mC,mBAAqB,SAAUx6mC,EAASynd,EAAQg2pB,EAAaC,EAAaZ,EAAS3B,EAAYwC,EAAiB1lD,EAASpgiB,EAAU+llB,EAAQC,EAAY77iB,GACrK,IAAIxzc,EAAOxuH,EAAQo9U,QAAUp9U,EAAQwnwB,WAAWn+vB,MAAQrJ,EAAQogiC,MAAMr7hC,EAClEg0I,EAAM/4I,EAAQq9U,QAAUr9U,EAAQwnwB,WAAW/znB,OAASzzI,EAAQogiC,MAAMp7hC,EAClEyuI,EAASzzI,EAAQwnwB,WAAW/znB,OAC5BpqI,EAAQrJ,EAAQwnwB,WAAWn+vB,MAC3B+5C,EAAY,CAAEgla,MAAOs1pB,EAAahxpB,GAAI,EAAGC,GAAI,GAC7CsrmB,IACAptkC,KAAKiznC,gBAAgB99mC,EAASynd,EAAQrka,GACtCv4D,KAAKyynC,kBAAkBt9mC,EAASynd,EAAQrka,IAExCy6jC,IACA5lD,GAAU,GAEdptkC,KAAKqwnC,aAAal7mC,EAASynd,EAAQu6G,EAAiB5+gB,EAAW+3jC,EAAYwC,GAAiB,EAAM9llB,GAClG,IAAIkmlB,EAAY/9mC,EAAQwnwB,WAAWn+vB,MAAQq0mC,EACvCM,EAAah+mC,EAAQwnwB,WAAW/znB,OAASiq+B,EAEzC95V,EAAY/4xB,KAAKipiC,UAAUjmmB,cAAc5tP,YAAYhyM,OAAS,EAAIpD,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAG2/1B,oBAAsB/0iC,KAAKipiC,UAAUjmmB,cAAcmmnB,WAAW,GAAGlU,wBAC/Km+E,GAAkB,EACtB,IAAKpznC,KAAKipiC,UAAUyiC,mBAAoB,CAEpC,IAAIvs8B,EAAan/H,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAEtDi+6B,EAAqBrznC,KAAKipiC,UAAUgb,iBAAiBqvE,oCAAoCn0/B,IAChFn/H,KAAKipiC,UAAUgb,iBAAiBsvE,oBAAoBp0/B,IAClDA,EAAWqk7B,mBAAmB0F,SAAWlpjC,KAAKwznC,uBAAuBH,KAChFD,GAAkB,EAE1B,CACA,IAAItlB,EAAkB9tmC,KAAKyznC,mBAAmB16V,EAAW5hN,IACrD22hB,EAAkB,GAAKA,EAAkB,KACzCA,EAAkB,GAEtB,IAAIF,GAAc,GACd5tmC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,IAA2E,YAApEp1M,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAG2/1B,qBAAyG,WAApE/0iC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAG2/1B,qBAAwG,cAApE/0iC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAG2/1B,qBAA2G,QAApE/0iC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAY,GAAG2/1B,sBAChV64D,GAAc,GAEb5tmC,KAAKipiC,UAAUgzB,WAAW8xC,wBAAwB54lC,EAAQghB,KAAQ28lC,GAAoB9llB,GAAa+llB,GAAWK,KAC3GhmD,GAAYwgC,GAAgBslB,GAAa,IAAMC,GAAc,KAA4B,IAApBrlB,GAA6C,IAApBA,MAE9F9tmC,KAAK+xnC,qBAAqB,kBAAmB58mC,EAASwuH,EAAMuqB,EAAK0uU,GAAQ,EAAMg2pB,EAAcxiE,IAAkBsjE,gBAAiBn7jC,OAAWl1D,EAAW4unC,EAAS,CAAE,aAAc,uEAAoE5unC,EAAW,yCAA0C8zkB,GACxSn3kB,KAAK+xnC,qBAAqB,kBAAmB58mC,EAASwuH,EAAOnlH,EAAO0vI,EAAK0uU,GAAQ,EAAMg2pB,EAAcxiE,IAAkBujE,gBAAiBp7jC,OAAWl1D,EAAW4unC,EAAS,CAAE,aAAc,wEAAqE5unC,EAAW,yCAA0C8zkB,GACjTn3kB,KAAK+xnC,qBAAqB,kBAAmB58mC,EAASwuH,EAAMuqB,EAAMtF,EAAQg0U,GAAQ,EAAMg2pB,EAAcxiE,IAAkBwjE,gBAAiBr7jC,OAAWl1D,EAAW4unC,EAAS,CAAE,aAAc,0EAAuE5unC,EAAW,yCAA0C8zkB,GACpTn3kB,KAAK+xnC,qBAAqB,kBAAmB58mC,EAASwuH,EAAOnlH,EAAO0vI,EAAMtF,EAAQg0U,GAAQ,EAAMg2pB,EAAcxiE,IAAkByjE,gBAAiBt7jC,OAAWl1D,EAAW4unC,EAAS,CAAE,aAAc,2EAAwE5unC,EAAW,yCAA0C8zkB,KAG3Ti2f,GAAYwgC,MAAiBA,GAAoC,IAApBE,GAA6C,IAApBA,IAA4BolB,GAAa,IAAMC,GAAc,IAA2B,IAApBrlB,MAC5I9tmC,KAAK+xnC,qBAAqB,cAAe58mC,EAASwuH,EAAOnlH,EAAQ,EAAG0vI,EAAK0uU,GAAQ,EAAMg2pB,EAAcxiE,IAAkB0jE,YAAav7jC,OAAWl1D,EAAW4unC,EAAS,CAAE,aAAc,kEAA+D5unC,EAAW,qCAAsC8zkB,GACnSn3kB,KAAK+xnC,qBAAqB,cAAe58mC,EAASwuH,EAAOnlH,EAAQ,EAAG0vI,EAAMtF,EAAQg0U,GAAQ,EAAMg2pB,EAAcxiE,IAAkB2jE,YAAax7jC,OAAWl1D,EAAW4unC,EAAS,CAAE,aAAc,qEAAkE5unC,EAAW,qCAAsC8zkB,GAC/Sn3kB,KAAK+xnC,qBAAqB,aAAc58mC,EAASwuH,EAAMuqB,EAAMtF,EAAS,EAAGg0U,GAAQ,EAAMg2pB,EAAcxiE,IAAkB4jE,WAAYz7jC,OAAWl1D,EAAW4unC,EAAS,CAAE,aAAc,mEAAgE5unC,EAAW,oCAAqC8zkB,GAClSn3kB,KAAK+xnC,qBAAqB,aAAc58mC,EAASwuH,EAAOnlH,EAAO0vI,EAAMtF,EAAS,EAAGg0U,GAAQ,EAAMg2pB,EAAcxiE,IAAkB6jE,WAAY17jC,OAAWl1D,EAAW4unC,EAAS,CAAE,aAAc,oEAAiE5unC,EAAW,oCAAqC8zkB,KAGhS,YAAd4hN,GAAyC,aAAdA,GAA0C,gBAAdA,GAA6C,mBAAdA,GAAgD,iBAAdA,GAA8C,iBAAdA,GAC3I,YAAdA,GAAyC,kBAAdA,IAC3B/4xB,KAAK+xnC,qBAAqB,cAAe58mC,EAASwuH,EAAOnlH,EAAQ,EAAG0vI,EAAK0uU,GAAQ,EAAMg2pB,EAAcxiE,IAAkB0jE,YAAav7jC,OAAWl1D,EAAW4unC,EAAS,CAAE,aAAc,kEAA+D5unC,EAAW,qCAAsC8zkB,GACnSn3kB,KAAK+xnC,qBAAqB,cAAe58mC,EAASwuH,EAAOnlH,EAAQ,EAAG0vI,EAAMtF,EAAQg0U,GAAQ,EAAMg2pB,EAAcxiE,IAAkB2jE,YAAax7jC,OAAWl1D,EAAW4unC,EAAS,CAAE,aAAc,qEAAkE5unC,EAAW,qCAAsC8zkB,GAC/Sn3kB,KAAK+xnC,qBAAqB,aAAc58mC,EAASwuH,EAAMuqB,EAAMtF,EAAS,EAAGg0U,GAAQ,EAAMg2pB,EAAcxiE,IAAkB4jE,WAAYz7jC,OAAWl1D,EAAW4unC,EAAS,CAAE,aAAc,mEAAgE5unC,EAAW,oCAAqC8zkB,GAClSn3kB,KAAK+xnC,qBAAqB,aAAc58mC,EAASwuH,EAAOnlH,EAAO0vI,EAAMtF,EAAS,EAAGg0U,GAAQ,EAAMg2pB,EAAcxiE,IAAkB6jE,WAAY17jC,OAAWl1D,EAAW4unC,EAAS,CAAE,aAAc,oEAAiE5unC,EAAW,oCAAqC8zkB,GAEnT,EAEA20iB,EAAQn7mC,UAAU6inC,uBAAyB,SAAUH,GACjD,GAAIA,GAAsBA,EAAmBjwnC,OAAS,EAClD,IAAK,IAAI+I,EAAI,EAAGA,EAAIknnC,EAAmBjwnC,OAAQ+I,IAC3C,GAA8B,SAA1BknnC,EAAmB,IAAoE,WAAnDA,EAAmB9mmC,SAASpgB,EAAE2K,WAAY,KAC9E,OAAO,EAInB,OAAO,CACX,EAQAg1mC,EAAQn7mC,UAAU8inC,mBAAqB,SAAU7mnC,EAAMuqkB,GAEnD,IAAI22hB,EAUQ2iB,EARJt5iB,GAAgD,kBAArBA,GAAqD,KAApBA,EAI5D22hB,EAAkB/hyB,IAFd0kzB,EAAqBhglC,KAAKuL,MAAMm7hB,IAEmB22hB,kBAA2D,IAAvC2iB,EAAmB3iB,gBAAwB,EAAI2iB,EAAmB3iB,iBAM7IA,EAAkB/hyB,IAFd0kzB,EAAqBzwnC,KAAKipiC,UAAUqiC,4BAEewiC,kBAA2D,IAAvC2iB,EAAmB3iB,gBAAwB,EAAI2iB,EAAmB3iB,gBAChI,SAATlhmC,GAAmB5M,KAAKipiC,UAAUinE,aAAa5kC,2BAE/CwiC,EAAkB/hyB,GAAkB/rU,KAAKipiC,UAAUinE,aAAa5kC,2BAA2BwiC,kBAA+F,IAA3E9tmC,KAAKipiC,UAAUinE,aAAa5kC,2BAA2BwiC,gBAAwB,EAAI9tmC,KAAKipiC,UAAUinE,aAAa5kC,2BAA2BwiC,gBAE3O,uBAATlhmC,GAAiC5M,KAAKipiC,UAAUknE,cAAc7kC,2BAEnEwiC,EAAkB/hyB,GAAkB/rU,KAAKipiC,UAAUknE,cAAc7kC,2BAA2BwiC,kBAAgG,IAA5E9tmC,KAAKipiC,UAAUknE,cAAc7kC,2BAA2BwiC,gBAAwB,EAAI9tmC,KAAKipiC,UAAUknE,cAAc7kC,2BAA2BwiC,gBAE9O,cAATlhmC,GAAwB5M,KAAKipiC,UAAUmnE,kBAAkB9kC,2BAE9DwiC,EAAkB/hyB,GAAkB/rU,KAAKipiC,UAAUmnE,kBAAkB9kC,2BAA2BwiC,kBAAoG,IAAhF9tmC,KAAKipiC,UAAUmnE,kBAAkB9kC,2BAA2BwiC,gBAAwB,EAAI9tmC,KAAKipiC,UAAUmnE,kBAAkB9kC,2BAA2BwiC,gBAE1P,YAATlhmC,GAAsB5M,KAAKipiC,UAAUonE,eAAe/kC,2BAEzDwiC,EAAkB/hyB,GAAkB/rU,KAAKipiC,UAAUonE,eAAe/kC,2BAA2BwiC,kBAAiG,IAA7E9tmC,KAAKipiC,UAAUonE,eAAe/kC,2BAA2BwiC,gBAAwB,EAAI9tmC,KAAKipiC,UAAUonE,eAAe/kC,2BAA2BwiC,gBAEjP,YAATlhmC,GAAsB5M,KAAKipiC,UAAUqnE,gBAAgBhlC,2BAE1DwiC,EAAkB/hyB,GAAkB/rU,KAAKipiC,UAAUqnE,gBAAgBhlC,2BAA2BwiC,kBAAkG,IAA9E9tmC,KAAKipiC,UAAUqnE,gBAAgBhlC,2BAA2BwiC,gBAAwB,EAAI9tmC,KAAKipiC,UAAUqnE,gBAAgBhlC,2BAA2BwiC,gBAEpP,aAATlhmC,EAELkhmC,EAAkB/hyB,GAAkB/rU,KAAKipiC,UAAU4mE,iBAAiBvkC,2BAA2BwiC,kBAAmG,IAA/E9tmC,KAAKipiC,UAAU4mE,iBAAiBvkC,2BAA2BwiC,gBAAwB,EAAI9tmC,KAAKipiC,UAAU4mE,iBAAiBvkC,2BAA2BwiC,gBAEvP,WAATlhmC,GAAqB5M,KAAKipiC,UAAU+mE,eAAe1kC,2BAExDwiC,EAAkB/hyB,GAAkB/rU,KAAKipiC,UAAU+mE,eAAe1kC,2BAA2BwiC,kBAAiG,IAA7E9tmC,KAAKipiC,UAAU+mE,eAAe1kC,2BAA2BwiC,gBAAwB,EAAI9tmC,KAAKipiC,UAAU+mE,eAAe1kC,2BAA2BwiC,gBAEjP,UAATlhmC,GAAoB5M,KAAKipiC,UAAUumC,cAAclE,2BAEtDwiC,EAAkB/hyB,GAAkB/rU,KAAKipiC,UAAUumC,cAAclE,2BAA2BwiC,kBAAgG,IAA5E9tmC,KAAKipiC,UAAUumC,cAAclE,2BAA2BwiC,gBAAwB,EAAI9tmC,KAAKipiC,UAAUumC,cAAclE,2BAA2BwiC,gBAE9O,aAATlhmC,GAAuB5M,KAAKipiC,UAAUqlE,iBAAiBhjC,2BAE5DwiC,EAAkB/hyB,GAAkB/rU,KAAKipiC,UAAUqlE,iBAAiBhjC,2BAA2BwiC,kBAAmG,IAA/E9tmC,KAAKipiC,UAAUqlE,iBAAiBhjC,2BAA2BwiC,gBAAwB,EAAI9tmC,KAAKipiC,UAAUqlE,iBAAiBhjC,2BAA2BwiC,gBAEtP,yBAATlhmC,GAA4C,kBAATA,GAAqC,mBAATA,IAA8B5M,KAAKipiC,UAAUsS,6BAA6B+vB,2BAIjI,QAAT1+jC,GAAkB5M,KAAKipiC,UAAU2mE,sBAAsBtkC,6BAE5DwiC,EAAkB/hyB,GAAkB/rU,KAAKipiC,UAAU2mE,sBAAsBtkC,2BAA2BwiC,kBAAwG,IAApF9tmC,KAAKipiC,UAAU2mE,sBAAsBtkC,2BAA2BwiC,gBAAwB,EAAI9tmC,KAAKipiC,UAAU2mE,sBAAsBtkC,2BAA2BwiC,iBAJpRA,EAAkB/hyB,GAAkB/rU,KAAKipiC,UAAUsS,6BAA6B+vB,2BAA2BwiC,kBAA+G,IAA3F9tmC,KAAKipiC,UAAUsS,6BAA6B+vB,2BAA2BwiC,gBAAwB,EAAI9tmC,KAAKipiC,UAAUsS,6BAA6B+vB,2BAA2BwiC,iBAOjT,OAAOA,CAEf,EAUAge,EAAQn7mC,UAAUsinC,gBAAkB,SAAU99mC,EAASynd,EAAQrka,EAAWm6jC,EAAqBT,GAC3F,IAAI9nnC,EAAUgL,EAEV06R,GAAU,EACVoi1B,IACApi1B,GAAU,GAEd,IAAI/wR,EAAUu2hC,IAAuBlriC,EAASouD,GAC9Cz5C,EAAQ0nE,KAAO,OACf1nE,EAAQy7uB,OAAS,QACjBz7uB,EAAQswH,YAAc,EACtBtwH,EAAQog7B,UATQ,MAUhBpg7B,EAAQ+wR,QAAUA,EAClB,IAAI0tL,EAAQhla,EAAUgla,MACtBz+c,EAAQ5E,GAAKqjd,EACbz+c,EAAQ3E,GAAKojd,EACbz+c,EAAQN,OAAS++c,EACjBz+c,EAAQ8pI,QAAU20U,EAClBz+c,EAAQqX,GAAK,YACbrX,EAAQswa,MAAQ,uBAChB,IAAI1oF,EAAa,CAAExsV,EAAG/P,EAAQwywB,WAAWn+vB,MAAQrU,EAAQoriC,MAAMr7hC,EAAIqjd,EAAOpjd,GAAI,IAC1EiuV,EAAW,CAAEluV,EAAG/P,EAAQwywB,WAAWn+vB,MAAQrU,EAAQoriC,MAAMr7hC,EAAIqjd,EAAOpjd,EAAG,GAC3E2E,EAAQ4nV,WAAaA,EACrB5nV,EAAQspV,SAAWA,EACnBpoW,KAAKgsnC,YAAY1iV,SAAS1sU,EAAQ99c,EACtC,EAaAgtmC,EAAQn7mC,UAAUo/mC,qBAAuB,SAAUx/mC,EAAUqsd,EAAQg2pB,EAAar6jC,EAAW27jC,EAAiBC,EAAiBC,EAAkBj9iB,GAC7I5+gB,EAAYA,GAAa,CAAEspa,GAAI,EAAGC,GAAI,EAAGvE,MAAO,GAChD,IAGIpxd,EAHAg4jC,EAAc5zjC,EAAS4zjC,YACvBC,EAAc7zjC,EAAS6zjC,YACvBj6jC,EAAUoG,EAASpG,QAEvB,IAAKgC,EAAI,EAAGA,EAAIoE,EAAS2zjC,aAAa9gkC,OAAQ+I,IAAK,CAC/C,IAAIyg1B,EAAUr80B,EAAS2zjC,aAAa33iC,SAASpgB,EAAE2K,WAAY,KAC3D9W,KAAK+xnC,qBAAsB,kBAAoB5lnC,EAAI,GAAKhC,EAASyi1B,EAAQ1y0B,EAAG0y0B,EAAQzy0B,EAAGyid,GAAQ,EAAMg2pB,EAAcxiE,IAAkBikE,gBAAiB97jC,EAAW27jC,EAAiB,KAAM,KAAM/nnC,EAAG,KAAMgrkB,EAC3M,CACA,IAAIi2hB,EAAc,EAClB,GAAqC,aAAjC78lC,EAASwkiC,oBACT,IAAK5oiC,EAAI,EAAGA,EAAIoE,EAASpG,QAAQrE,SAAS1C,OAAQ+I,IAAK,CAC/Cyg1B,EAAUr80B,EAASpG,QAAQrE,SAASymB,SAASpgB,EAAE2K,WAAY,KAA/D,IACIovjC,OAAY,EACZ30pB,EAAQsyX,IAAMwuQ,UAAU9hiC,EAAS4zjC,YAAa5zjC,EAAS6zjC,aAC3D,GAAIx3O,EAAQz2zB,GAAGxrB,QAAQ,WAAa,EAAG,CACnC,IAAIoxR,EAASxrR,EAASpG,QAAQrE,SAAS,GAAG6+vB,OAAO5oe,OAC7B,IAAhBqx0B,GACAlnC,EAAY,CAAEhsjC,EAAG3J,EAAS4zjC,YAAYjqjC,EAAGC,EAAG5J,EAAS4zjC,YAAYhqjC,EAAI5J,EAAS41jC,cAC9EpqyB,EAASooyB,IAGT+B,EAAY,CAAEhsjC,EAAG3J,EAAS6zjC,YAAYlqjC,EAAGC,EAAG5J,EAAS6zjC,YAAYjqjC,EAAI5J,EAAS41jC,cAC9EpqyB,EAASqoyB,GAEb,IAAI/7b,EAASura,MACbO,IAAa9ra,EAAQ92N,EAAOx1I,EAAO7hR,EAAG6hR,EAAO5hR,GAC7C,IAAI8rjC,EAAenyB,IAAuBzra,EAAQ,CAAEnunB,EAAGgsjC,EAAUhsjC,EAAGC,EAAG+rjC,EAAU/rjC,IACjFna,KAAK+xnC,qBAAsB,gBAAkB5lnC,EAAI,GAAKhC,EAAS87jC,EAAa/rjC,EAAG+rjC,EAAa9rjC,EAAGyid,GAAQ,EAAMg2pB,EAAcxiE,IAAkBikE,gBAAiB97jC,EAAW27jC,EAAiB,KAAM,KAAM/nnC,EAAG,KAAMgrkB,GAC/Mi2hB,GACJ,CACJ,CAER,EAKA0e,EAAQn7mC,UAAU2jnC,oBAAsB,WAChBt0nC,KAAKipiC,UAAUjmmB,cACrB7ra,KAAKn3B,KACvB,EAUA8rnC,EAAQn7mC,UAAU65U,OAAS,SAAU68uB,EAAUlwf,EAAiBo9iB,EAAmBC,GAE/E,IADA,IAAI/E,EAAgBzvnC,KAAKipiC,UAAUjmmB,cAC1B72b,EAAI,EAAGA,EAAIk7jC,EAASjkkC,OAAQ+I,IAAK,CAEtC,IAAI0E,EAAM7Q,KAAKipiC,UAAUlkR,UAAUsiT,EAASl7jC,IAC5C,GAAI0E,EAAIokiC,yBAA2Bj1iC,KAAKipiC,UAAUmgB,aAC9CqmE,EAActmE,WAAW/8iC,KAAKyE,GAC9B7Q,KAAKs0nC,sBACL7E,EAActlnC,QAAQrE,SAASsG,KAAKyE,EAAI1G,SACxCnK,KAAK0skC,eAAe77jC,EAAIila,UAAWqhK,EAAiBtmkB,GAAK,QAExD,GAAIA,IAAQA,EAAIokiC,2BACXpkiC,aAAesyjC,MAAatyjC,EAAI1G,QAAQ0lS,SAAW7vS,KAAKipiC,UAAUgb,iBAAkB,CAEtF,IAAIT,OAAqB,EACrB3yiC,EAAI2yiC,oBACJA,EAAqB3yiC,EAAI2yiC,oBACN0F,OAASz4gC,KAAKuL,MAAMwngC,EAAmB0F,QAEpDr4iC,EAAIokiC,0BACVuO,EAAqBxjjC,KAAKipiC,UAAUgb,iBAAiBwmB,uBAAuB55jC,GAAK,GACjFA,EAAI2yiC,mBAAqBA,GAE7B,IAAI0F,GAAUr4iC,EAAIokiC,yBAA0BuO,EAAmB0F,OAC3D1F,GAAsBA,EAAmB0F,QAAUlpjC,KAAKipiC,UAAUgb,iBAAiBmnB,yBAAyB,SAAUv6jC,KACtHq4iC,GAAS,GAERA,IACDumE,EAAcr66B,YAAYhpM,KAAKyE,GAC/B7Q,KAAKs0nC,sBACL7E,EAActlnC,QAAQ+mwB,YAAcu+W,EAAcv+W,YAAc,EAChEu+W,EAActlnC,QAAQrE,SAASsG,KAAKyE,EAAI1G,SACnCqqnC,GACDx0nC,KAAK0skC,eAAe77jC,EAAIila,UAAWqhK,EAAiBtmkB,GAAK,GAGrE,CAER,CACJ,EAYAi7mC,EAAQn7mC,UAAU27jC,oBAAsB,SAAUzqmB,EAAIC,EAAIhsD,EAAWqhK,EAAiB52O,GAClF,IAAI1vV,EAAM7Q,KAAKipiC,UAAUjmmB,cAEzB,OADAhjc,KAAKggW,KAAKnvV,EAAKgxd,EAAIC,EAAIq1G,EAAiB52O,IACjC,CACX,EAWAurxB,EAAQn7mC,UAAUqvV,KAAO,SAAUnvV,EAAKgxd,EAAIC,EAAIq1G,EAAiB52O,GAC7D,GAAI1vV,aAAesyjC,KACf,GAAItyjC,EAAIukM,YAAYhyM,OAChB,IAAK,IAAIkM,EAAK,EAAGgmC,EAAKzkC,EAAIukM,YAAa9lM,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CACzD,IAAIY,EAAOolC,EAAGhmC,GACdtP,KAAKggW,KAAK9vV,EAAM2xd,EAAIC,EAAIq1G,EAAiB52O,GACzCvgW,KAAK0skC,eAAex8jC,EAAK4la,UAAWqhK,EAAiB52O,EACzD,MAEC,GAAI1vV,EAAIs4iC,WAAW/ljC,OACpB,IAAK,IAAIsyC,EAAK,EAAGE,EAAK/kC,EAAIs4iC,WAAYzzgC,EAAKE,EAAGxyC,OAAQsyC,IAAM,CACpDxlC,EAAO0lC,EAAGF,GACd11C,KAAKggW,KAAK9vV,EAAM2xd,EAAIC,EAAIq1G,EAAiB52O,GACzCvgW,KAAK0skC,eAAex8jC,EAAK4la,UAAWqhK,EAAiB52O,EACzD,OAIJvgW,KAAKy0nC,eAAe5jnC,EAAKgxd,EAAIC,EAErC,EAQAgqpB,EAAQn7mC,UAAU8jnC,eAAiB,SAAU5jnC,EAAKgxd,EAAIC,GAI7Bjxd,EAAI1G,QAAQooV,QAAY1hV,EAAI1G,QAAQqoV,QAHzD,IAKIkiyB,EAAU10nC,KAAK20nC,iBAAiB9jnC,EAAKgxd,EAAIC,GAG7C,GAFAjxd,EAAI1G,QAAQooV,SAAWmiyB,EAAQ7ypB,GAC/Bhxd,EAAI1G,QAAQqoV,SAAWkiyB,EAAQ5ypB,GAC3BgzkB,IAAajkiC,IAAoC,YAA5BA,EAAIkkiC,oBAAmC,CAC5D,GAAIlkiC,EAAI1G,QAAQrE,SAAS1C,OAErB,IADA,IAAIkuB,EAAQzgB,EAAI1G,QAAQrE,SACfqG,EAAI,EAAGA,EAAImlB,EAAMluB,OAAQ+I,IAC9BmlB,EAAM/E,SAASpgB,EAAE2K,WAAY,KAAKy7U,SAAWsvI,EAC7Cvwc,EAAM/E,SAASpgB,EAAE2K,WAAY,KAAK07U,SAAWsvI,EAGrD9he,KAAK40nC,iBAAiB/jnC,EAAKgxd,EAAIC,GAAI,EACvC,CACA9he,KAAK2ukC,mBAAmB99jC,EAAK,CAAE8zvB,OAAQ,CAAEzqvB,EAAGrJ,EAAI1G,QAAQooV,QAASp4U,EAAGtJ,EAAI1G,QAAQqoV,WAChF3hV,EAAI1G,QAAQo4jC,iBAAkB,EAE9B,IAAI3lmB,EAAS1rc,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,qBAAuBtlB,EAAIila,WAE5F91a,KAAKipiC,UAAUsb,cAAc3nlB,EAAQ/rd,EAAIila,UAC7C,EAUAg2sB,EAAQn7mC,UAAUiknC,iBAAmB,SAAU/jnC,EAAKgxd,EAAIC,EAAI0ypB,EAAeK,GAGvE,IADA,IAAIvwD,EAAYtkkC,KAAKipiC,UAAUlkR,UAAUl0wB,EAAIslB,IACpChqB,EAAI,EAAGA,EAAIm4jC,EAAUJ,aAAa9gkC,OAAQ+I,IAC9Cm4jC,EAAUJ,aAAa33iC,SAASpgB,EAAE2K,WAAY,KAAMoD,GAAK2nd,EACzDyimB,EAAUJ,aAAa33iC,SAASpgB,EAAE2K,WAAY,KAAMqD,GAAK2nd,EAK9D,OAHK0ypB,GACDx0nC,KAAK80nC,eAAexwD,IAEjB,CACX,EAMAwnD,EAAQn7mC,UAAUmknC,eAAiB,SAAUxwD,GACzCtkkC,KAAK2ukC,mBAAmBrK,EAAW,CAAEJ,aAAcI,EAAUJ,eAC7DlkkC,KAAK0skC,eAAepI,EAAUxupB,UAClC,EAOAg2sB,EAAQn7mC,UAAUg+jC,mBAAqB,SAAUo+B,EAAc78lC,GAC3D,IAGI/D,EAHiB4gmC,EAAa5imC,QAAQmhnC,YAChBve,EAAa5imC,QAAQw6vB,OAS/C,GAAIz0vB,EAAKy0vB,cACqBthwB,IAAtB6M,EAAKy0vB,OAAOnmvB,QACZuulC,EAAapoW,OAAOnmvB,MAAQuulC,EAAa5imC,QAAQqU,MAAQtO,EAAKy0vB,OAAOnmvB,YAE9Cnb,IAAvB6M,EAAKy0vB,OAAO/7mB,SACZmk9B,EAAapoW,OAAO/7mB,OAASmk9B,EAAa5imC,QAAQy+I,OAAS14I,EAAKy0vB,OAAO/7mB,aAErDvlJ,IAAlB6M,EAAKy0vB,OAAOzqvB,IACZ6ylC,EAAapoW,OAAOzqvB,EAAIhK,EAAKy0vB,OAAOzqvB,EAAiC,GAA5B6ylC,EAAapoW,OAAOnmvB,MAC7DuulC,EAAa5imC,QAAQooV,QAAUriV,EAAKy0vB,OAAOzqvB,GAEzB,QAEA7W,IAAlB6M,EAAKy0vB,OAAOxqvB,IACZ4ylC,EAAapoW,OAAOxqvB,EAAIjK,EAAKy0vB,OAAOxqvB,EAAkC,GAA7B4ylC,EAAapoW,OAAO/7mB,OAC7Dmk9B,EAAa5imC,QAAQqoV,QAAUtiV,EAAKy0vB,OAAOxqvB,GAEzB,QAEI9W,IAAtB6M,EAAKi2jC,eACL4mC,EAAa5mC,aAAej2jC,EAAKi2jC,aACjCnmkC,KAAK+0nC,gBAAgBhoB,EAAcA,EAAa7oC,eAEhD6oC,EAAa5imC,QAAQrE,SAAS1C,QAE9B,IADA,IAAI0C,EAAWinmC,EAAa5imC,QAAQrE,SAC3Bwrb,EAAM,EAAGA,EAAMxrb,EAAS1C,OAAQkub,IACrC,GAAIxrb,EAASymB,SAAS+ka,EAAIx6a,WAAY,KAAKqf,GAAI,CAC3C,IAAI66D,EAAQlrF,EAASymB,SAAS+ka,EAAIx6a,WAAY,KAAKqf,GAAGxD,MAAM,KAC5D,GAAIq+D,EAAM5tF,SAAW4tF,EAAMrmF,QAAQ,cAAgB,GAAKqmF,EAAMrmF,QAAQ,WAAa,GAC/E3K,KAAKqtnC,gBAAgBvnnC,EAASymB,SAAS+ka,EAAIx6a,WAAY,KAAMi2lC,QAE5D,GAAI/7gC,EAAM5tF,QAAW4tF,EAAMrmF,QAAQ,WAAa,EACjD7E,EAASymB,SAAS+ka,EAAIx6a,WAAY,KAAKy7U,QAAUw6wB,EAAa7oC,aAAa,GAAGhqjC,EAC9EpU,EAASymB,SAAS+ka,EAAIx6a,WAAY,KAAK07U,QAAUu6wB,EAAa7oC,aAAa,GAAG/pjC,OAE7E,GAAI62E,EAAM5tF,QAAU4tF,EAAMrmF,QAAQ,WAAa,EAChD7E,EAASymB,SAAS+ka,EAAIx6a,WAAY,KAAKy7U,QAAUw6wB,EAAa7oC,aAAa6oC,EAAa7oC,aAAa9gkC,OAAS,GAAG8W,EACjHpU,EAASymB,SAAS+ka,EAAIx6a,WAAY,KAAK07U,QAAUu6wB,EAAa7oC,aAAa6oC,EAAa7oC,aAAa9gkC,OAAS,GAAG+W,OAEhH,GAAI62E,EAAM5tF,QAAW4tF,EAAMrmF,QAAQ,UAAY,EAAI,CAEpD,IAAIi25B,EAAQ,EAMZ,QAJmCv95B,IAA/B0pmC,EAAa5imC,QAAQqU,YAAuDnb,IAAhC0pmC,EAAa5imC,QAAQy+I,SACjEg4wB,EAAQ,GACM,KAEdmsM,EAAa9sB,eAAgB,CAC7Bn6kC,EAASymB,SAAS+ka,EAAIx6a,WAAY,KAAK0H,MAAQuulC,EAAapoW,OAAOnmvB,MAAQoi5B,EAC3E965B,EAASymB,SAAS+ka,EAAIx6a,WAAY,KAAK8xI,OAAUmk9B,EAAapoW,OAAO/7mB,OAAS,EAAKg4wB,EAEnF,IAAIzr5B,EAAUrP,EAAS,GAEnB09iC,EAAqBxjjC,KAAKipiC,UAAUumC,cAAgBxvkC,KAAKipiC,UAAUumC,cAAgBxvkC,KAAKipiC,UAAUua,mBAElGA,IAAuBA,EAAmB59mB,WAAa49mB,EAAmB1s7B,WAAci2+B,EAAapoW,OAAO/7mB,OAAS,GAEjHzzI,EAAQhP,MAAM84S,SADL,GAAT2hnB,EAC0BmsM,EAAapoW,OAAOnmvB,MAAQoi5B,EAG5BmsM,EAAa5imC,QAAQw6vB,OAAOnmvB,MAAQ,GAK9DrJ,EAAQhP,MAAM84S,SADL,GAAT2hnB,EACyB5g6B,KAAKg1nC,oBAAoBjoB,EAAc53lC,EAAU43lC,EAAapoW,OAAOnmvB,MAAQ,IAG7Exe,KAAKg1nC,oBAAoBjoB,EAAc53lC,EAAU43lC,EAAa5imC,QAAQw6vB,OAAOnmvB,MAAQ,IAGxG,IAAVoi5B,IACAzr5B,EAAQk6S,OAAO16B,QAAW7uR,EAASymB,SAAS+ka,EAAIx6a,WAAY,KAAK8xI,OAAS,EAElF,MAEI9iJ,EAASymB,SAAS+ka,EAAIx6a,WAAY,KAAK0H,MAAQuulC,EAAapoW,OAAOnmvB,MAAQoi5B,EAC3E965B,EAASymB,SAAS+ka,EAAIx6a,WAAY,KAAK8xI,OAASmk9B,EAAapoW,OAAO/7mB,OAASg4wB,EAEjF965B,EAASymB,SAAS+ka,EAAIx6a,WAAY,KAAKy7U,QAAUw6wB,EAAa5imC,QAAQooV,QACtEzsV,EAASymB,SAAS+ka,EAAIx6a,WAAY,KAAK07U,QAAUu6wB,EAAa5imC,QAAQooV,QACtEzsV,EAASymB,SAAS+ka,EAAIx6a,WAAY,KAAK2pjC,QAAS,CACpD,CACJ,CAgBZ,QAZmCp9jC,IAA/B6M,EAAK60jC,wBACLgoC,EAAahoC,sBAAwB70jC,EAAK60jC,sBAC1C/kkC,KAAK+0nC,gBAAgBhoB,EAAcA,EAAa7oC,oBAE5B7gkC,IAApB6M,EAAK+uY,YAAiE,aAArC8ttB,EAAah4D,sBAC9Cg4D,EAAa9ttB,WAAa/uY,EAAK+uY,iBAEC57Y,IAAhC6M,EAAK80jC,yBACL+nC,EAAa/nC,uBAAyB90jC,EAAK80jC,uBAE3ChlkC,KAAK+0nC,gBAAgBhoB,EAAcA,EAAa7oC,oBAE7B7gkC,IAAnB6M,EAAKyt4B,UAAyB,CAG9B,GAFAovN,EAAapvN,UAAYzt4B,EAAKyt4B,UAC9BovN,EAAa5imC,QAAQrE,SAAS,GAAGK,MAAMqgF,KAAOt2E,EAAKyt4B,WAC9CovN,EAAat/B,kBAAoBs/B,EAAav+B,cAAgBu+B,EAAa5imC,SAAW4imC,EAAa5imC,QAAQrE,SAG5G,IADA,IAAIA,EAAWinmC,EAAa5imC,QAAQrE,SAC3Bk+kB,EAAM,EAAGA,EAAMl+kB,EAAS1C,OAAQ4glB,IACjCl+kB,EAASymB,SAASy3jB,EAAIltkB,WAAY,KAAKukjB,YACnC0xiB,EAAat/B,mBACbs/B,EAAapT,eAAiBzplC,EAAKyt4B,UACnC734B,EAASymB,SAASy3jB,EAAIltkB,WAAY,KAAK3Q,MAAMqgF,KAAOt2E,EAAKyt4B,WAEzDovN,EAAav+B,cACb1okC,EAASymB,SAASy3jB,EAAIltkB,WAAY,KAAK3Q,MAAMqgF,KAAOt2E,EAAKyt4B,aAKhE,CACb,CACA,GAAIovN,EAAat/B,uBAA4CpqkC,IAAxB6M,EAAKyplC,gBAClCoT,EAAat/B,kBAAoBs/B,EAAa5imC,SAAW4imC,EAAa5imC,QAAQrE,SAG9E,IADA,IAAIA,EAAWinmC,EAAa5imC,QAAQrE,SAC3BwnzB,EAAM,EAAGA,EAAMxnzB,EAAS1C,OAAQkqzB,IACjCxnzB,EAASymB,SAAS+gyB,EAAIx2yB,WAAY,KAAKukjB,YACvC0xiB,EAAapT,eAAiBzplC,EAAKyplC,eACnC7zlC,EAASymB,SAAS+gyB,EAAIx2yB,WAAY,KAAK3Q,MAAMqgF,KAAOt2E,EAAKyplC,gBAKzE,QAAqBt2lC,IAAjB6M,EAAKo+H,QAAuB,CAe5B,GAdyC,UAArCy+9B,EAAah4D,qBAAwE,aAArCg4D,EAAah4D,qBAC7Dg4D,EAAa5imC,QAAQrE,SAAS,GAAGK,MAAMmoI,QAAUp+H,EAAKo+H,QAClDy+9B,EAAa5imC,QAAQrE,SAAS,KAC9BinmC,EAAa5imC,QAAQrE,SAAS,GAAGK,MAAMmoI,QAAUp+H,EAAKo+H,WAIjB,gBAArCy+9B,EAAah4D,sBAEb/0iC,KAAKipiC,UAAUlkR,UAAUgoV,EAAa9lD,WAAW98iC,QAAQrE,SAAS,GAAGK,MAAMmoI,QAAUp+H,EAAKo+H,SAE9Fy+9B,EAAaz+9B,QAAUp+H,EAAKo+H,SAEhCy+9B,EAAa5imC,QAAQrE,SAAS,GAAGK,MAAMmoI,QAAUp+H,EAAKo+H,QAClDy+9B,EAAat/B,kBAAoBs/B,EAAa5imC,SAAW4imC,EAAa5imC,QAAQrE,SAE9E,CAAIA,EAAWinmC,EAAa5imC,QAAQrE,SACpC,IADA,IACS0nzB,EAAM,EAAGA,EAAM1nzB,EAAS1C,OAAQoqzB,IACjC1nzB,EAASymB,SAASihyB,EAAI12yB,WAAY,KAAKukjB,YACvCv1jB,EAASymB,SAASihyB,EAAI12yB,WAAY,KAAK3Q,MAAMmoI,QAAUp+H,EAAK0plC,aAHxB,EAQ9B,CACtB,CACA,GAAImT,EAAat/B,uBAA0CpqkC,IAAtB6M,EAAK0plC,cAClCmT,EAAat/B,kBAAoBs/B,EAAa5imC,SAAW4imC,EAAa5imC,QAAQrE,SAE9E,CAAIA,EAAWinmC,EAAa5imC,QAAQrE,SACpC,IADA,IACS4nzB,EAAM,EAAGA,EAAM5nzB,EAAS1C,OAAQsqzB,IACjC5nzB,EAASymB,SAASmhyB,EAAI52yB,WAAY,KAAKukjB,YACvCv1jB,EAASymB,SAASmhyB,EAAI52yB,WAAY,KAAK3Q,MAAMmoI,QAAUp+H,EAAK0plC,aAHxB,CAuBpD,QAfyBv2lC,IAArB6M,EAAKghwB,cACL67V,EAAa77V,YAAchhwB,EAAKghwB,YAChC67V,EAAa5imC,QAAQ+mwB,YAAchhwB,EAAKghwB,aAEtB,QAEG7twB,IAArB6M,EAAKutd,cACLsvoB,EAAatvoB,YAAcvtd,EAAKutd,YAChCsvoB,EAAa5imC,QAAQrE,SAAS,GAAGK,MAAMs3d,YAAcvtd,EAAKutd,YAEjB,WAArCsvoB,EAAah4D,qBAAoCg4D,EAAa5imC,QAAQrE,SAAS,KAC/EinmC,EAAa5imC,QAAQrE,SAAS,GAAGK,MAAMs3d,YAAcvtd,EAAKutd,cAE5C,QAECp6d,IAAnB6M,EAAK+6f,UAAyB,CAE9B,GADA8hmB,EAAa9hmB,UAAY/6f,EAAK+6f,UACW,aAArC8hmB,EAAah4D,qBAAsCg4D,EAAa5imC,SAAW4imC,EAAa5imC,QAAQrE,UAAYinmC,EAAa5imC,QAAQrE,SAAS1C,QAEtI0C,EAAWinmC,EAAa5imC,QAAQrE,UAC3B,GAAGK,MAAMswH,MAAQvmH,EAAK+6f,UACA,YAA3B8hmB,EAAavooB,UACb1+d,EAAS,GAAG46jC,oBAAsB,SAGlC56jC,EAAS,GAAG46jC,oBAAsB,OAG1C,GAAIqsC,EAAat/B,kBAAoBs/B,EAAa5imC,SAAW4imC,EAAa5imC,QAAQrE,SAE9E,CAAIA,EAAWinmC,EAAa5imC,QAAQrE,SACpC,IADA,IACSqozB,EAAM,EAAGA,EAAMrozB,EAAS1C,OAAQ+qzB,IACjCrozB,EAASymB,SAAS4hyB,EAAIr3yB,WAAY,KAAKukjB,YACvCv1jB,EAASymB,SAAS4hyB,EAAIr3yB,WAAY,KAAK3Q,MAAMswH,MAAQvmH,EAAK+6f,UAHtB,EAQ9B,CACtB,CACA,QAAwB5ngB,IAApB6M,EAAKsyc,WAA0B,CAE/B,GADAuqpB,EAAavqpB,WAAatyc,EAAKsyc,WACU,aAArCuqpB,EAAah4D,qBAAsCg4D,EAAa5imC,SAAW4imC,EAAa5imC,QAAQrE,UAAYinmC,EAAa5imC,QAAQrE,SAAS1C,QAEtI0C,EAAWinmC,EAAa5imC,QAAQrE,UAC3B,GAAGK,MAAMq8c,WAAatyc,EAAKsyc,WAExC,GAAIuqpB,EAAat/B,kBAAoBs/B,EAAa5imC,SAAW4imC,EAAa5imC,QAAQrE,SAE9E,CAAIA,EAAWinmC,EAAa5imC,QAAQrE,SACpC,IADA,IACSmvnC,EAAM,EAAGA,EAAMnvnC,EAAS1C,OAAQ6xnC,IACjCnvnC,EAASymB,SAAS0omC,EAAIn+mC,WAAY,KAAKukjB,YACvCv1jB,EAASymB,SAAS0omC,EAAIn+mC,WAAY,KAAK3Q,MAAMq8c,WAAatyc,EAAKsyc,WAH3B,EAQ9B,CACtB,CACA,QAAsBn/c,IAAlB6M,EAAK+uS,SAAwB,CAE7B,GADA8tzB,EAAa9tzB,SAAW/uS,EAAK+uS,UACa,aAArC8tzB,EAAah4D,qBAA2E,kBAArCg4D,EAAah4D,sBAA4Cg4D,EAAa5imC,SAAW4imC,EAAa5imC,QAAQrE,UAAYinmC,EAAa5imC,QAAQrE,SAAS1C,QAEhM0C,EAAWinmC,EAAa5imC,QAAQrE,UAC3B,GAAGK,MAAM84S,SAAW/uS,EAAK+uS,SACO,kBAArC8tzB,EAAah4D,sBACbg4D,EAAa5imC,QAAQrE,SAAS,GAAG6+vB,OAAOnmvB,MAAQuulC,EAAapoW,OAAOnmvB,MACpEuulC,EAAa5imC,QAAQrE,SAAS,GAAGg7jC,YAAYtijC,MAAQuulC,EAAapoW,OAAOnmvB,MACzEuulC,EAAa5imC,QAAQrE,SAAS,GAAG62wB,WAAWn+vB,MAAQuulC,EAAapoW,OAAOnmvB,MACxE1Y,EAAS,GAAG46jC,oBAAsB,SAClC56jC,EAAS,GAAG6ywB,kBAAoB,SAChC7ywB,EAAS,GAAGy7jC,6BAA6B,EAAG,EAAG,aAGvD,GAAIwrC,EAAat/B,kBAAoBs/B,EAAa5imC,SAAW4imC,EAAa5imC,QAAQrE,SAE9E,CAAIA,EAAWinmC,EAAa5imC,QAAQrE,SACpC,IADA,IACSovnC,EAAM,EAAGA,EAAMpvnC,EAAS1C,OAAQ8xnC,IACjCpvnC,EAASymB,SAAS2omC,EAAIp+mC,WAAY,KAAKukjB,YACvCv1jB,EAASymB,SAAS2omC,EAAIp+mC,WAAY,KAAK3Q,MAAM84S,SAAW/uS,EAAK+uS,SAHzB,EAQ9B,CACtB,CACA,QAAkB57S,IAAd6M,EAAKq0d,KAAoB,CACzB,GAAyC,aAArCwooB,EAAah4D,qBAAsCg4D,EAAa5imC,SAAW4imC,EAAa5imC,QAAQrE,UAAYinmC,EAAa5imC,QAAQrE,SAAS1C,OAAQ,CAE9I0C,EAAWinmC,EAAa5imC,QAAQrE,cACXzC,IAArB6M,EAAKq0d,KAAKsxG,SACV/vkB,EAAS,GAAGK,MAAMiqH,KAAOlgH,EAAKq0d,KAAKsxG,OACnCk3hB,EAAaxooB,KAAKsxG,OAAS3lkB,EAAKq0d,KAAKsxG,aAEdxykB,IAAvB6M,EAAKq0d,KAAKuxG,WACVhwkB,EAAS,GAAGK,MAAMmqH,OAASpgH,EAAKq0d,KAAKuxG,SACrCi3hB,EAAaxooB,KAAKuxG,SAAW5lkB,EAAKq0d,KAAKuxG,eAEbzykB,IAA1B6M,EAAKq0d,KAAKwxG,cACN7lkB,EAAKq0d,KAAKwxG,cACVg3hB,EAAaxooB,KAAK4mlB,aAAc,IAEN,IAA1Bj7iC,EAAKq0d,KAAKwxG,YACVjwkB,EAAS,GAAGK,MAAMswkB,eAAiB,YAG9BvmkB,EAAKq0d,KAAK4mlB,cACXrljC,EAAS,GAAGK,MAAMswkB,eAAiB,QAG3Cs2hB,EAAaxooB,KAAKwxG,YAAc7lkB,EAAKq0d,KAAKwxG,kBAEhB1ykB,IAA1B6M,EAAKq0d,KAAK4mlB,cACNj7iC,EAAKq0d,KAAK4mlB,cACV4hD,EAAaxooB,KAAKwxG,aAAc,IAEN,IAA1B7lkB,EAAKq0d,KAAK4mlB,YACVrljC,EAAS,GAAGK,MAAMswkB,eAAiB,cAG9BvmkB,EAAKq0d,KAAKwxG,cACXjwkB,EAAS,GAAGK,MAAMswkB,eAAiB,QAG3Cs2hB,EAAaxooB,KAAK4mlB,YAAcj7iC,EAAKq0d,KAAK4mlB,YAElD,EAEkB,CACtB,CACA,QAAuB9njC,IAAnB6M,EAAKs0d,UAAyB,CAE9B,GADAuooB,EAAavooB,UAAYt0d,EAAKs0d,UACW,aAArCuooB,EAAah4D,qBAAsCg4D,EAAa5imC,SAAW4imC,EAAa5imC,QAAQrE,UAAYinmC,EAAa5imC,QAAQrE,SAAS1C,QAEtI0C,EAAWinmC,EAAa5imC,QAAQrE,UAC3B,GAAGK,MAAMq+d,UAAYt0d,EAAKs0d,UACG,IAAlC1+d,EAAS,GAAGqjC,WAAW/lC,OACQ,YAA3B2pmC,EAAavooB,WACb1+d,EAAS,GAAG46jC,oBAAsB,OAClC56jC,EAAS,GAAGy7jC,6BAA6B,EAAG,EAAG,OAEf,UAA3BwrC,EAAavooB,WAClB1+d,EAAS,GAAG46jC,oBAAsB,QAClC56jC,EAAS,GAAGy7jC,6BAA6B,IAAM,EAAG,OAElB,SAA3BwrC,EAAavooB,WAClB1+d,EAAS,GAAG46jC,oBAAsB,OAClC56jC,EAAS,GAAGy7jC,6BAA6B,EAAG,EAAG,OAEf,WAA3BwrC,EAAavooB,YAClB1+d,EAAS,GAAG46jC,oBAAsB,SAClC56jC,EAAS,GAAGy7jC,6BAA6B,IAAM,EAAG,OAGjDz7jC,EAAS,GAAGqjC,WAAW/lC,OAAS,GAAgC,YAA3B2pmC,EAAavooB,UACvD1+d,EAAS,GAAG46jC,oBAAsB,SAGlC56jC,EAAS,GAAG46jC,oBAAsB,QAIxB,CACtB,CAgDA,QA/CuBr9jC,IAAnB6M,EAAKk+7B,YACL2+J,EAAa3+J,UAAYl+7B,EAAKk+7B,UAC9B2+J,EAAa5imC,QAAQrE,SAAS,GAAGK,MAAMipI,YAAcl/H,EAAKk+7B,UACjB,uBAArC2+J,EAAah4D,sBACbg4D,EAAa5imC,QAAQrE,SAAS,GAAG0Y,MAAQ,GAAKtO,EAAKk+7B,UACnD2+J,EAAa5imC,QAAQrE,SAAS,GAAG8iJ,OAAS,GAAK14I,EAAKk+7B,UACpD2+J,EAAa5imC,QAAQrE,SAAS,GAAG0Y,MAAQ,GAAKtO,EAAKk+7B,UACnD2+J,EAAa5imC,QAAQrE,SAAS,GAAG8iJ,OAAS,GAAK14I,EAAKk+7B,WAEf,WAArC2+J,EAAah4D,qBAAoCg4D,EAAa5imC,QAAQrE,SAAS,KAC/EinmC,EAAa5imC,QAAQrE,SAAS,GAAGK,MAAMipI,YAAcl/H,EAAKk+7B,YAG5C,QAEO/q8B,IAAzB6M,EAAKiliC,kBACL43D,EAAa53D,gBAAkBjliC,EAAKiliC,gBACpC43D,EAAa5imC,QAAQrE,SAAS,GAAGK,MAAM+uiC,gBAAkBhliC,EAAKiliC,sBAEzC9xiC,IAArB6M,EAAK+skB,cACL8vhB,EAAa9vhB,YAAc/skB,EAAK+skB,kBAEhB55kB,IAAhB6M,EAAK4vuB,SACLitX,EAAajtX,OAAS5vuB,EAAK4vuB,aAELz8uB,IAAtB6M,EAAK+vuB,eACL8sX,EAAa9sX,aAAe/vuB,EAAK+vuB,mBAEhB58uB,IAAjB6M,EAAKonc,UACLy1pB,EAAaz1pB,QAAUpnc,EAAKonc,cAENj0c,IAAtB6M,EAAKg0jC,eACL6oC,EAAa7oC,aAAeh0jC,EAAKg0jC,aAEjClkkC,KAAKipiC,UAAUlkR,UAAUgoV,EAAa52kC,IAAI+tiC,aAAeh0jC,EAAKg0jC,aAC9DlkkC,KAAK+0nC,gBAAgBhoB,EAAc78lC,EAAKg0jC,oBAElB7gkC,IAAtB6M,EAAKi2jC,cAAmE,YAArC4mC,EAAah4D,sBAChDg4D,EAAa5mC,aAAej2jC,EAAKi2jC,aACjCnmkC,KAAK+0nC,gBAAgBhoB,EAAcA,EAAa7oC,oBAEjC7gkC,IAAf6M,EAAK01jC,QACLmnC,EAAannC,MAAQ11jC,EAAK01jC,YAEPvikC,IAAnB6M,EAAK+2iC,YACL8lD,EAAa9lD,UAAY/2iC,EAAK+2iC,WAEO,aAArC8lD,EAAah4D,oBAAoC,CACjD,IAAK5oiC,EAAI,EAAGA,EAAI4gmC,EAAa5imC,QAAQrE,SAAS1C,OAAQ+I,IAAK,CAEvD,IAAIyg1B,EAAUmgR,EAAa5imC,QAAQrE,SAASqG,GAExCqzd,EAASwkmB,IAAmB+oC,GAC5BngR,EAAQz2zB,GAAGxrB,QAAQ,YAAc,GACjC3K,KAAKm1nC,gBAAgBpoB,EAAcvtoB,EAAQotX,GAAS,GAEpDA,EAAQz2zB,GAAGxrB,QAAQ,YAAc,GACjC3K,KAAKm1nC,gBAAgBpoB,EAAcvtoB,EAAQotX,GAAS,EAE5D,CACA5s1B,KAAK+0nC,gBAAgBhoB,EAAcA,EAAa7oC,aACpD,CACA,GAAyC,YAArC6oC,EAAah4D,qBAAqC7kiC,EAAKg0jC,aAAc,CACrE6oC,EAAa7ikC,KAAO27hC,IAAeknC,EAAa7oC,cAEhD,IAAIp3/B,EAAOigiC,EAAa5imC,QAAQrE,SAAS,GACzCgnE,EAAK5iC,KAAO6ikC,EAAa7ikC,KACzB4iC,EAAK22/B,gBAAiB,CAC1B,CACA,GAAI3uB,IAAai4D,GACb,IAAK,IAAIqoB,EAAM,EAAGA,EAAMroB,EAAa5imC,QAAQrE,SAAS1C,OAAQgynC,IAAO,CAE9CroB,EAAa5imC,QAAQrE,SAASsvnC,GAC/B/5jB,WACd25e,IAAgB+3D,EAAcA,EAAa5imC,QAAQrE,SAASymB,SAAS6omC,EAAIt+mC,WAAY,OAEnD,IAAlCi2lC,EAAat/B,kBACTs/B,EAAa5imC,QAAQrE,SAASymB,SAAS6omC,EAAIt+mC,WAAY,eAAgBmrjC,MACvE8qC,EAAa5imC,QAAQrE,SAASymB,SAAS6omC,EAAIt+mC,WAAY,KAAK3Q,MAAMqgF,KAAOumhC,EAAapT,gBAErFoT,EAAa5imC,QAAQrE,SAASymB,SAAS6omC,EAAIt+mC,WAAY,eAAgBusjC,KAA4C,cAA7B0pC,EAAav+B,cACpGu+B,EAAa5imC,QAAQrE,SAASymB,SAAS6omC,EAAIt+mC,WAAY,KAAK3Q,MAAMqgF,KAAO,iBAIxEumhC,EAAa5imC,QAAQrE,SAASymB,SAAS6omC,EAAIt+mC,WAAY,eAAgBusjC,KAA4C,cAA7B0pC,EAAav+B,aAAgCu+B,EAAa5imC,QAAQrE,SAASymB,SAAS6omC,EAAIt+mC,WAAY,eAAgBmrjC,OAC3M8qC,EAAa5imC,QAAQrE,SAASymB,SAAS6omC,EAAIt+mC,WAAY,KAAK3Q,MAAMqgF,KAAO,cAGrF,CAEJ,GAAIumhC,IAAsD,aAArCA,EAAah4D,sBAAwE,IAAlCg4D,EAAat/B,mBAC7Es/B,EAAa5imC,SAAW4imC,EAAa5imC,QAAQrE,UAAYinmC,EAAa5imC,QAAQrE,SAAS1C,OAEvF,CAAI0C,EAAWinmC,EAAa5imC,QAAQrE,SACpC,IADA,IACSuvnC,EAAO,EAAGA,EAAOvvnC,EAAS1C,OAAQiynC,IACnCvvnC,EAASymB,SAAS8omC,EAAKv+mC,WAAY,KAAKukjB,YACC,aAArC0xiB,EAAah4D,qBACT7kiC,EAAKstiC,aACL13iC,EAASymB,SAAS8omC,EAAKv+mC,WAAY,KAAK/B,QAAU7E,EAAKstiC,YACvDuvD,EAAavvD,YAActtiC,EAAKstiC,aAGhC13iC,EAASymB,SAAS8omC,EAAKv+mC,WAAY,KAAK/B,QAAUg4lC,EAAavvD,YAEnE13iC,EAASymB,SAAS8omC,EAAKv+mC,WAAY,KAAK0H,MAAQuulC,EAAapoW,OAAOnmvB,SAE7B,IAAlCuulC,EAAat/B,kBAA6Bs/B,EAAav+B,cAUrB,IAAlCu+B,EAAat/B,oBATdv9jC,EAAKw9jC,cACL5nkC,EAASymB,SAAS8omC,EAAKv+mC,WAAY,KAAK/B,QAAU7E,EAAKw9jC,aACvDq/B,EAAar/B,aAAex9jC,EAAKw9jC,cAGjC5nkC,EAASymB,SAAS8omC,EAAKv+mC,WAAY,KAAK/B,QAAUg4lC,EAAar/B,aAEnEq/B,EAAannC,MAAQ9/jC,EAASymB,SAAS8omC,EAAKv+mC,WAAY,KAAK/B,SAYjEjP,EAASymB,SAAS8omC,EAAKv+mC,WAAY,KAAK2pjC,QAAS,EAjCb,EAuChDssC,GAAqD,kBAArCA,EAAah4D,qBAA2Cg4D,EAAa5imC,SACjF4imC,EAAa5imC,QAAQrE,UAAYinmC,EAAa5imC,QAAQrE,SAAS1C,OAAS,IACxE2pmC,EAAa5imC,QAAQrE,SAAS,GAAG26jC,QAAS,GAG9CssC,GAAqD,aAArCA,EAAah4D,qBAAsC/0iC,KAAKipiC,UAAUgb,iBAAiBkR,4BAA4BmgE,sBAC/HvoB,EAAa5imC,QAAQqU,WAAQnb,EAC7B0pmC,EAAa5imC,QAAQy+I,YAASvlJ,EAC9B0pmC,EAAa5imC,QAAQo/P,QAAQ,IAAIm4rB,IAAKqrK,EAAa5imC,QAAQw6vB,OAAOnmvB,MAAOuulC,EAAa5imC,QAAQw6vB,OAAO/7mB,SACrG5oJ,KAAKipiC,UAAUgb,iBAAiBkR,4BAA4BmgE,sBAAuB,GAGnFvoB,EAAa5imC,QAAQo/P,QAAQ,IAAIm4rB,IAAKqrK,EAAa5imC,QAAQw6vB,OAAOnmvB,MAAOuulC,EAAa5imC,QAAQw6vB,OAAO/7mB,SAEzGmk9B,EAAa5imC,QAAQu3jC,QAAQqrC,EAAa5imC,QAAQ22jC,aAC9CisC,GAAgBA,EAAa93D,2BACzB83D,EAAa5imC,SAAW4imC,EAAa5imC,QAAQrE,UAAYinmC,EAAa5imC,QAAQrE,SAAS1C,UAEnF0C,EAAWinmC,EAAa5imC,QAAQrE,SAAS,IACpC62wB,WAAWn+vB,MAAQuulC,EAAa5imC,QAAQ22jC,YAAYtijC,MAC7D1Y,EAAS62wB,WAAW/znB,OAASmk9B,EAAa5imC,QAAQ22jC,YAAYl46B,SAGtE,GAAImk9B,GAAqD,aAArCA,EAAah4D,qBAA+D,aAAzBg4D,EAAaz1pB,QAAwB,CACxG,GAAIy1pB,EAAa5imC,SAAW4imC,EAAa5imC,QAAQrE,UAAYinmC,EAAa5imC,QAAQrE,SAAS1C,OAAQ,EAE3F0C,EAAWinmC,EAAa5imC,QAAQrE,UACvB,GAAGqjC,WAAW/lC,OAAS,GAAgC,YAA3B2pmC,EAAavooB,UAClD1+d,EAAS,GAAG46jC,oBAAsB,SAEK,IAAlC56jC,EAAS,GAAGqjC,WAAW/lC,SACG,YAA3B2pmC,EAAavooB,WACb1+d,EAAS,GAAG46jC,oBAAsB,OAClC56jC,EAAS,GAAGy7jC,6BAA6B,EAAG,EAAG,OAEf,UAA3BwrC,EAAavooB,WAClB1+d,EAAS,GAAG46jC,oBAAsB,QAClC56jC,EAAS,GAAGy7jC,6BAA6B,IAAM,EAAG,OAElB,SAA3BwrC,EAAavooB,WAClB1+d,EAAS,GAAG46jC,oBAAsB,OAClC56jC,EAAS,GAAGy7jC,6BAA6B,EAAG,EAAG,OAEf,WAA3BwrC,EAAavooB,YAClB1+d,EAAS,GAAG46jC,oBAAsB,SAClC56jC,EAAS,GAAGy7jC,6BAA6B,IAAM,EAAG,QAG1D,IAAK,IAAIg0D,EAAO,EAAGA,EAAOzvnC,EAAS1C,OAAQmynC,IAAQ,CAC/C,GAAIzvnC,EAASymB,SAASgpmC,EAAKz+mC,WAAY,KAAKukjB,WAAav1jB,EAASymB,SAASgpmC,EAAKz+mC,WAAY,KAAKukjB,UAAUj4jB,OAAS,EAAG,CACnH0C,EAASymB,SAASgpmC,EAAKz+mC,WAAY,KAAK2pjC,QAAS,EACjD,IAAI+0D,EAAkB1vnC,EAASymB,SAASgpmC,EAAKz+mC,WAAY,KAAKukjB,UAAUj4jB,OAAS0C,EAASymB,SAASgpmC,EAAKz+mC,WAAY,KAAKukjB,UAAU,GAAGmlY,GAClI/2Q,EAAasjb,EAAapoW,OAAO/7mB,OAAS4s+B,EAI9C,GAHI/rc,EAAa,GAAKA,EAAa3jrB,EAASymB,SAASgpmC,EAAKz+mC,WAAY,KAAKukjB,UAAU,GAAGmlY,KACpFg1L,GAAoC1vnC,EAASymB,SAASgpmC,EAAKz+mC,WAAY,KAAKukjB,UAAU,GAAGmlY,IAEzFg1L,EAAkBzoB,EAAapoW,OAAO/7mB,OAAQ,CAE9C,IADA,IAAI6s+B,EAAa,GACRhpmC,EAAQ,EAAGA,EAAQ3mB,EAASymB,SAASgpmC,EAAKz+mC,WAAY,KAAKukjB,UAAUj4jB,OAAQqpB,IAAS,CAEzE3mB,EAASyvnC,GAAMl6jB,UAAU,GAAGmlY,GAG9Ci1L,GAA0B3vnC,EAASymB,SAASgpmC,EAAKz+mC,WAAY,KAAKukjB,UAAU9uiB,SAASE,EAAM3V,WAAY,KAAKmpB,IAChH,CACAn6B,EAASymB,SAASgpmC,EAAKz+mC,WAAY,KAAK/B,QAAU0gnC,CACtD,CACJ,CAEA3vnC,EAASymB,SAASgpmC,EAAKz+mC,WAAY,KAAK0H,MAAQuulC,EAAapoW,OAAOnmvB,KACxE,CACJ,CACAuulC,EAAa5imC,QAAQo/P,QAAQ,IAAIm4rB,IAAKqrK,EAAa5imC,QAAQw6vB,OAAOnmvB,MAAOuulC,EAAa5imC,QAAQw6vB,OAAO/7mB,SACrGmk9B,EAAa5imC,QAAQu3jC,QAAQqrC,EAAa5imC,QAAQ22jC,YACtD,EACA9gkC,KAAKipiC,UAAUsb,mBAAclhjC,EAAW0pmC,EAAaj3rB,WACjDi3rB,GAAqD,aAArCA,EAAah4D,uBACzBg4D,EAAa5imC,SAAW4imC,EAAa5imC,QAAQrE,UAAYinmC,EAAa5imC,QAAQrE,SAAS1C,SAGjD,KADlC0C,EAAWinmC,EAAa5imC,QAAQrE,UACvB,GAAGqjC,WAAW/lC,QAA2C,YAA3B2pmC,EAAavooB,WACpD1+d,EAAS,GAAG46jC,oBAAsB,OAClC56jC,EAAS,GAAGy7jC,6BAA6B,GAAK,EAAG,OAE5Cz7jC,EAAS,GAAGqjC,WAAW/lC,OAAS,GAAgC,YAA3B2pmC,EAAavooB,YACvD1+d,EAAS,GAAG46jC,oBAAsB,SAClC56jC,EAAS,GAAGy7jC,6BAA6B,EAAG,EAAG,QAI/D,EACAuqD,EAAQn7mC,UAAUqknC,oBAAsB,SAAUjoB,EAAc53lC,EAASo4xB,GACrE,IACItyxB,EADSiW,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,qBAAuB42kC,EAAaj3rB,WAChF6mD,WAAW,MAC5B+4pB,EAAY,EACZC,EAAU,EACVn/iB,EAAY,GAUhB,IATIrhkB,EAAQhP,MAAMmqH,QAAUn7G,EAAQhP,MAAMiqH,KACtComd,EAAY,eAEPrhkB,EAAQhP,MAAMiqH,KACnBomd,EAAY,QAEPrhkB,EAAQhP,MAAMmqH,SACnBkmd,EAAY,WAET+2N,EAAcmoV,GACjBz6mC,EAAQspd,KAAOiyG,EAAYm/iB,EAAU,MAAQxgnC,EAAQhP,MAAMq8c,WAC3DkzqB,EAAYz6mC,EAAQ+44B,YAAY+4M,EAAavvD,aAAah/hC,MAC1Dm3mC,GAAW,GAGf,OADAA,GAAW,EAEf,EAEA7J,EAAQn7mC,UAAUwknC,gBAAkB,SAAUpoB,EAAcvtoB,EAAQotX,EAASuhS,GACzE,IAAIyH,EAEAA,EADAzH,EACQpoD,IAAWgnC,EAAcvtoB,EAAO,GAAIA,EAAO,GAAI2upB,GAG/CpoD,IAAWgnC,EAAcvtoB,EAAO,GAAIA,EAAO,GAAI2upB,GAE3DvhS,EAAQ1izB,KAAO0rlC,EAAM1rlC,KACrB0izB,EAAQr6f,QAAUqjyB,EAAMrjyB,QACxBq6f,EAAQp6f,QAAUojyB,EAAMpjyB,QACxBo6f,EAAQ17E,YAAc0kX,EAAM1kX,YAC5B07E,EAAQpu0B,MAAQo3mC,EAAMp3mC,MACtBou0B,EAAQhksB,OAASgt+B,EAAMht+B,OACvBgksB,EAAQ2oN,MAAQqgF,EAAMrgF,MACtB3oN,EAAQ62O,gBAAiB,EACzB72O,EAAQ6zO,QAAS,CACrB,EAQAqrD,EAAQn7mC,UAAUu/jC,mBAAqB,SAAU+C,EAAIC,EAAI39B,GACrD,IAAI1kiC,EAAM7Q,KAAKipiC,UAAUjmmB,cACzB,OAAOhjc,KAAKu9d,MAAM1sd,EAAKoikC,EAAIC,EAAI39B,EACnC,EASAu2E,EAAQn7mC,UAAU4sd,MAAQ,SAAU1sd,EAAKoikC,EAAIC,EAAI39B,GAC7C,IAAIo4B,GAA2B,EAC/B,GAAI98jC,aAAesyjC,KACf,GAAItyjC,EAAIukM,aAAevkM,EAAIukM,YAAYhyM,OACnC,IAAK,IAAIkM,EAAK,EAAGgmC,EAAKzkC,EAAIukM,YAAa9lM,EAAKgmC,EAAGlyC,OAAQkM,IAAM,CACzD,IAAIY,EAAOolC,EAAGhmC,GACdq+jC,EAA2B3tkC,KAAK61nC,gBAAgB3lnC,EAAM+ikC,EAAIC,EAAI39B,EAAO1kiC,EACzE,MAEC,GAAIA,EAAIs4iC,YAAct4iC,EAAIs4iC,WAAW/ljC,OACtC,IAAK,IAAIsyC,EAAK,EAAGE,EAAK/kC,EAAIs4iC,WAAYzzgC,EAAKE,EAAGxyC,OAAQsyC,IAAM,CACpDxlC,EAAO0lC,EAAGF,GACdi4hC,EAA2B3tkC,KAAK61nC,gBAAgB3lnC,EAAM+ikC,EAAIC,EAAI39B,EAAO1kiC,EACzE,OAIJ88jC,EAA2B3tkC,KAAK61nC,gBAAgBhlnC,EAAKoikC,EAAIC,EAAI39B,OAAOlyiC,GAExE,OAAOsqkC,CACX,EAWAm+C,EAAQn7mC,UAAUmlnC,YAAc,SAAU5vX,EAAIztmB,EAAI884B,EAAO1kiC,EAAKsE,EAAS4gnC,GAGnE,GADAt99B,EAAKA,EAAK,EAAI,EAAIA,EACP,KAFXytmB,EAAKA,EAAK,EAAI,EAAIA,IAEK,IAAPztmB,EAAU,CACtB,IAAIj6I,OAAQ,EACRoqI,OAAS,EACb,IAAKks5B,IAAajkiC,GAAM,CAIpB2N,GAHItO,EAAOW,GAGE1G,QAAQwywB,WAAWn+vB,MAAQ0nvB,EACxCt9mB,EAAS14I,EAAK/F,QAAQwywB,WAAW/znB,OAAS6P,EAK1CytmB,EAAK1nvB,EAAQtO,EAAK/F,QAAQwywB,WAAWn+vB,MACrCi6I,EAAK7P,EAAS14I,EAAK/F,QAAQwywB,WAAW/znB,MAC1C,CACA,IAAIy/e,EAASura,MACRmiF,IACDA,EAAYllnC,GAEhB,IAAImlnC,EAAaD,EAAU5rnC,QAI3B,GAHAgqiC,IAAa9ra,GAAS2tf,EAAW9kX,YAAaqkS,EAAMr7hC,EAAGq7hC,EAAMp7hC,GAC7Do6hC,IAAYlsa,EAAQ69H,EAAIztmB,EAAI884B,EAAMr7hC,EAAGq7hC,EAAMp7hC,GAC3Cg6hC,IAAa9ra,EAAQ2tf,EAAW9kX,YAAaqkS,EAAMr7hC,EAAGq7hC,EAAMp7hC,IACvD26hC,IAAajkiC,GAAM,CACpB,IAAIX,EACA+lnC,EAAcniF,IAAuBzra,EAAQ,CAAEnunB,GAD/ChK,EAAOW,GACgD1G,QAAQooV,QAASp4U,EAAGjK,EAAK/F,QAAQqoV,UACxFh0U,EAAQ,IACRtO,EAAK/F,QAAQqU,MAAQA,EACrBtO,EAAK/F,QAAQooV,QAAU0jyB,EAAY/7mC,GAEnC0uI,EAAS,IACT14I,EAAK/F,QAAQy+I,OAASA,EACtB14I,EAAK/F,QAAQqoV,QAAUyjyB,EAAY97mC,GAEvCna,KAAK2ukC,mBAAmB99jC,EAAK,CACzB8zvB,OAAQ,CAAEnmvB,MAAOtO,EAAK/F,QAAQqU,MAAOoqI,OAAQ14I,EAAK/F,QAAQy+I,OAAQ1uI,EAAGhK,EAAK/F,QAAQooV,QAASp4U,EAAGjK,EAAK/F,QAAQqoV,UAEnH,CACJ,CACJ,EAUAs5xB,EAAQn7mC,UAAUklnC,gBAAkB,SAAUhlnC,EAAKq1vB,EAAIztmB,EAAI884B,EAAOwgF,GAE9D,IAAI7lnC,EAAOlQ,KAAKipiC,UAAUlkR,UAAUl0wB,EAAIslB,IAGpChhB,EAAUjF,EAAK/F,QACd4rnC,IACDA,EAAYllnC,GAEhB,IAAImlnC,EAAaD,EAAU5rnC,QACvB+P,EAAI87mC,EAAWzjyB,QAAUyjyB,EAAWr5W,WAAWn+vB,MAAQw3mC,EAAWzgF,MAAMr7hC,EACxEC,EAAI67mC,EAAWxjyB,QAAUwjyB,EAAWr5W,WAAW/znB,OAASot+B,EAAWzgF,MAAMp7hC,EACzE+ojC,EAAWljkC,KAAKk2nC,cAAch8mC,EAAGC,EAAG67mC,EAAWr5W,WAAWn+vB,MAAOw3mC,EAAWr5W,WAAW/znB,OAAQot+B,EAAW9kX,YAAa8kX,EAAWzjyB,QAASyjyB,EAAWxjyB,QAAS+itB,QAClIlyiC,IAA7B8R,EAAQwnwB,WAAWn+vB,YAAqDnb,IAA9B8R,EAAQwnwB,WAAW/znB,QAC7D5oJ,KAAK81nC,YAAY5vX,EAAIztmB,EAAIyq6B,EAAUhzjC,EAAMiF,EAAS4gnC,GAGtD,IAAInD,EAAc5ynC,KAAK2tkC,8BAAyBtqkC,OAAWA,EAAWwN,EAAIila,UAAWjla,EAAI1G,QAAQw6vB,QACjG,IAAKiuX,IACD5ynC,KAAK81nC,YAAY,EAAI5vX,EAAI,EAAIztmB,EAAIyq6B,EAAUhzjC,EAAMiF,EAAS4gnC,GAG1B,aAA5BllnC,EAAIkkiC,sBAA8D,cAAvBlkiC,EAAIslB,GAAGvlB,MAAM,EAAG,IAA6C,aAAvBC,EAAIslB,GAAGvlB,MAAM,EAAG,KAAoB,CACrH,IAAI8jnC,EAAU10nC,KAAK20nC,iBAAiB9jnC,GACpC7Q,KAAK2ukC,mBAAmB99jC,EAAK,CACzB8zvB,OAAQ,CAAEnmvB,MAAO3N,EAAI1G,QAAQqU,MAAOoqI,OAAQ/3I,EAAI1G,QAAQy+I,OAAQ1uI,EAAGrJ,EAAI1G,QAAQooV,QAAUmiyB,EAAQ7ypB,GAAI1nd,EAAGtJ,EAAI1G,QAAQqoV,QAAUkiyB,EAAQ5ypB,KAE9I,CAEJ,OAAO8wpB,CACX,EAEA9G,EAAQn7mC,UAAUgknC,iBAAmB,SAAU9jnC,EAAKgxd,EAAIC,GAGpD,GAFAD,EAAKA,GAAU,EACfC,EAAKA,GAAU,EACiB,aAA5Bjxd,EAAIkkiC,sBAA8D,cAAvBlkiC,EAAIslB,GAAGvlB,MAAM,EAAG,IAA6C,aAAvBC,EAAIslB,GAAGvlB,MAAM,EAAG,IAAoB,CAErH,IAAIgsd,EAAS1rc,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,qBAAuBtlB,EAAIila,WAC5F,GAAI8mD,EAAQ,CACR,IAAI+nS,EAAS9zvB,EAAI1G,QAAQw6vB,OACrBnmvB,EAAQo+c,EAAO73N,YAAc/kQ,KAAKipiC,UAAUgzB,WAAWzxB,gBACvD5h5B,EAASg0U,EAAO13N,aAAellQ,KAAKipiC,UAAUgzB,WAAWzxB,gBACzD5m6B,EAAQ+goB,EAAO/goB,MACfD,EAAOghoB,EAAOhhoB,KACdg1Y,EAAQgsP,EAAOz2mB,IACfymI,EAASgwe,EAAOhwe,OAEpB,KAAM/wJ,EAAQi+V,GAAMrjd,EAAQ,GAAKmlH,EAAOk+V,GAAM,GAAKltM,EAASmtM,GAAMl5U,EAAS,GAAK+vX,EAAQ72C,GAAM,GAAI,CAC9F,IAAIq0pB,EAAQ,EACRC,EAAQ,EACNxy/B,GAASplH,EAAQ,IACnB23mC,EAAQ33mC,EAAQolH,EAAQ,GAEtBD,GAAQ,IACVwy/B,EAAQA,EAAQxy/B,EAAO,GAErBgxJ,GAAU/rI,EAAS,IACrBwt+B,EAAQxt+B,EAAS+rI,EAAS,GAExBgkP,GAAS,IACXy9mB,EAAQA,EAAQz9mB,EAAQ,GAEd,IAAVw9mB,IACAt0pB,EAAKs0pB,GAEK,IAAVC,IACAt0pB,EAAKs0pB,EAEb,CACJ,CACJ,CACA,MAAO,CAAEv0pB,GAAIA,EAAIC,GAAIA,EACzB,EAYAgqpB,EAAQn7mC,UAAUg9jC,yBAA2B,SAAU9rmB,EAAIC,EAAIhsD,EAAWugtB,EAAYjpD,EAAS3mX,GAC3F,IAAI6va,EAAkBD,OAA2DhznC,EAA9CrD,KAAKipiC,UAAUjmmB,cAAc74b,QAAQw6vB,OACpEA,EAAS0xX,EAETz5pB,EAAS1rc,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,qBAAuB2/Y,GACpFygtB,EAAmB,EACvB,GAAI35pB,EAAQ,CACR,IAAIp+c,EAAQo+c,EAAO73N,YAAc/kQ,KAAKipiC,UAAUgzB,WAAWzxB,gBACvD5h5B,EAASg0U,EAAO13N,aAAellQ,KAAKipiC,UAAUgzB,WAAWzxB,gBACzD5m6B,GAASyy/B,EAAa1xX,EAAO/goB,MAAQ0y/B,EAAe1y/B,QAAUi+V,GAAM,GACpEl+V,GAAQ0y/B,EAAa1xX,EAAOhhoB,KAAO2y/B,EAAe3y/B,OAASk+V,GAAM,GACjE2oc,GAAS6rN,EAAa1xX,EAAOz2mB,IAAMoo+B,EAAepo+B,MAAQ4zU,GAAM,GAChEntM,GAAU0h2B,EAAa1xX,EAAOhwe,OAAS2h2B,EAAe3h2B,SAAWmtM,GAAM,GAC3E,GAAIsrmB,IACAmpD,EAAmB,GACfv2nC,KAAKipiC,UAAUgzB,WAAWr3uB,WAAa5kV,KAAKipiC,UAAUgzB,WAAWr3uB,UAAUhuU,QACvE5W,KAAKw2nC,cAAcx2nC,KAAKipiC,UAAUgzB,WAAWr3uB,UAAUhuU,SACvD,OAAO,EAInB,GAAKgtH,GAASplH,EAAQ,GAAKmlH,GAAQ,GAAKgxJ,GAAU/rI,EAAS,GAAK4hxB,GAAS+rN,GAAqB9va,EAC1F,OAAO,CAEf,CACA,OAAO,CACX,EAEAqla,EAAQn7mC,UAAU6lnC,cAAgB,SAAU5/mC,GAExC,SAAIA,QAA+BvT,IAArBuT,EAAOk/Z,YAA2B91a,KAAKipiC,UAAUgzB,WAAWgL,gBAAkBrwjC,EAAOk/Z,YAAc91a,KAAKipiC,UAAUgzB,WAAWgL,eAAeC,aAI9J,EAMA4kD,EAAQn7mC,UAAU8lnC,eAAiB,SAAU5tD,GACzC,IAAI6tD,EAAc,IAAI70L,IAClB80L,EAAe32D,IAA4B6I,GAC3C+tD,EAAkBD,EAAa90D,WAC/Bg1D,EAAiBF,EAAa70D,UAC9Bg1D,EAAoBH,EAAa50D,aACjCg1D,EAAmBJ,EAAa30D,YAChCg1D,EAAeL,EAAa/pX,QAC5BqqX,EAAgBN,EAAar5D,SAC7B45D,EAAkBP,EAAap5D,WAC/B45D,EAAmBR,EAAan5D,YAKpC,GAJAqL,EAAajH,QAAU,CACnBh1T,QAASoqX,EAAcl1D,UAAW+0D,EAAgBv5D,SAAU25D,EAAep1D,WAAY+0D,EACvF50D,YAAa+0D,EAAkBx5D,WAAY25D,EAAiBn1D,aAAc+0D,EAAmBt5D,YAAa25D,GAE7E,IAA7BtuD,EAAa33T,aAAsD,IAAjC23T,EAAarzB,gBAAuB,CACtE,IAAInta,EAASura,MACbO,IAAa9ra,EAAQwgc,EAAa33T,YAAc23T,EAAarzB,gBAAiBqzB,EAAat2uB,QAASs2uB,EAAar2uB,SACjHq2uB,EAAajH,QAAQh1T,QAAUoqX,EAAeljF,IAAuBzra,EAAQ2uf,GAC7EnuD,EAAajH,QAAQE,UAAY+0D,EAAiB/iF,IAAuBzra,EAAQwuf,GACjFhuD,EAAajH,QAAQtE,SAAW25D,EAAgBnjF,IAAuBzra,EAAQ4uf,GAC/EpuD,EAAajH,QAAQC,WAAa+0D,EAAkB9iF,IAAuBzra,EAAQuuf,GACnF/tD,EAAajH,QAAQI,YAAc+0D,EAAmBjjF,IAAuBzra,EAAQ0uf,GACrFluD,EAAajH,QAAQrE,WAAa25D,EAAkBpjF,IAAuBzra,EAAQ6uf,GACnFruD,EAAajH,QAAQG,aAAe+0D,EAAoBhjF,IAAuBzra,EAAQyuf,GACvFjuD,EAAajH,QAAQpE,YAAc25D,EAAmBrjF,IAAuBzra,EAAQ8uf,EAEzF,CASA,OARAT,EAAc70L,IAAK47H,SAAS,CAACu5D,EAAcC,EAAeC,EAAiBC,IAC3EtuD,EAAajH,QAAQj+7B,KAAO+y/B,EAAY/y/B,KACxCkl8B,EAAajH,QAAQh+7B,MAAQ8y/B,EAAY9y/B,MACzCil8B,EAAajH,QAAQ1z6B,IAAMwo+B,EAAYxo+B,IACvC266B,EAAajH,QAAQjtyB,OAAS+h2B,EAAY/h2B,OAC1Ck0yB,EAAajH,QAAQ7lyB,OAAS261B,EAAY361B,OAC1C8syB,EAAajH,QAAQpjjC,MAAQk4mC,EAAYl4mC,MACzCqqjC,EAAajH,QAAQh56B,OAAS8t+B,EAAY9t+B,OACnC8t+B,CACX,EAaA5K,EAAQn7mC,UAAUulnC,cAAgB,SAAUh8mC,EAAGC,EAAGwF,EAAGlG,EAAG83Z,EAAOh/E,EAASC,EAAS4kyB,GAC7E,IAAIC,EAAa,CAAEn9mC,EAAG,EAAGC,EAAG,GACxBm9mC,EAAkB1jF,MAEtB,OADAO,IAAamjF,EAAiB/ltB,EAAOh/E,EAASC,GACtC4kyB,EAAYl9mC,GAChB,KAAK,EACD,OAAQk9mC,EAAYj9mC,GAChB,KAAK,EACDk9mC,EAAavjF,IAAuBwjF,EAAkB,CAAEp9mC,EAAGA,EAAIyF,EAAGxF,EAAGA,EAAIV,IACzE,MACJ,KAAK,EACD49mC,EAAavjF,IAAuBwjF,EAAkB,CAAEp9mC,EAAGA,EAAIyF,EAAGxF,EAAGA,IACrE,MACJ,IAAK,GACDk9mC,EAAavjF,IAAuBwjF,EAAkB,CAAEp9mC,EAAGA,EAAIyF,EAAGxF,EAAGA,EAAIV,EAAI,IAGrF,MACJ,KAAK,EACD,OAAQ29mC,EAAYj9mC,GAChB,IAAK,GACDk9mC,EAAavjF,IAAuBwjF,EAAkB,CAAEp9mC,EAAGA,EAAGC,EAAGA,EAAIV,EAAI,IACzE,MACJ,KAAK,EACD49mC,EAAavjF,IAAuBwjF,EAAkB,CAAEp9mC,EAAGA,EAAGC,EAAGA,EAAIV,IACrE,MACJ,KAAK,EACD49mC,EAAavjF,IAAuBwjF,EAAkB,CAAEp9mC,EAAGA,EAAGC,EAAGA,IAGzE,MACJ,IAAK,GACD,OAAQi9mC,EAAYj9mC,GAChB,KAAK,EACDk9mC,EAAavjF,IAAuBwjF,EAAkB,CAAEp9mC,EAAGA,EAAIyF,EAAI,EAAGxF,EAAGA,IACzE,MACJ,IAAK,GACDk9mC,EAAavjF,IAAuBwjF,EAAkB,CAAEp9mC,EAAGA,EAAIyF,EAAI,EAAGxF,EAAGA,EAAIV,EAAI,IACjF,MACJ,KAAK,EACD49mC,EAAavjF,IAAuBwjF,EAAkB,CAAEp9mC,EAAGA,EAAIyF,EAAI,EAAGxF,EAAGA,EAAIV,KAK7F,MAAO,CAAES,EAAGm9mC,EAAWn9mC,EAAGC,EAAGk9mC,EAAWl9mC,EAC5C,EAaA2xmC,EAAQn7mC,UAAUo+jC,kBAAoB,SAAU3muB,EAAUv3V,EAAKy1V,EAAOsmf,EAASvk1B,EAAQkvnC,EAAcpgjB,GACjG,IACImtf,EAEAzimB,EAEAC,EAYJ,GANIwimB,EAFAzzjC,aAAesyjC,IACCtyjC,EACUukM,YAAY,GAG1BvkM,EAEhBy1V,EAAQ,CAAEpsV,EAAGosV,EAAMpsV,EAAIla,KAAKipiC,UAAUgzB,WAAWzxB,gBAAiBrwhC,EAAGmsV,EAAMnsV,EAAIna,KAAKipiC,UAAUgzB,WAAWzxB,iBACrGxqiC,KAAK2tkC,8BAAyBtqkC,OAAWA,EAAWihkC,EAAUxupB,UAAWwupB,EAAUn6jC,QAAQw6vB,QAAS,CACpG,GAAsC,aAAlC2/T,EAAUvvB,oBAAoC,CAC9C,IAAIo5E,EjC74Fb,SAAkBt9mC,EAAKq5E,GAC1B,IAAI+7+B,EACJ,GAAgC,aAA5Bp1jC,EAAIkkiC,oBAGJ,IAFA,IAAIq4D,EAAc,EACdlnC,OAAY,EACP/5jC,EAAI,EAAGA,EAAI0E,EAAI1G,QAAQrE,SAAS1C,OAAQ+I,IAAK,CAClD,IAAIola,EAAQsyX,IAAMwuQ,UAAUxhiC,EAAIszjC,YAAatzjC,EAAIuzjC,aAGjD,GADcvzjC,EAAI1G,QAAQrE,SAASqG,GACvBgqB,GAAGxrB,QAAQ,WAAa,EAAG,CACnC,IAAIoxR,EAASlrR,EAAI1G,QAAQrE,SAAS,GAAG6+vB,OAAO5oe,OACxB,IAAhBqx0B,GACAlnC,EAAY,CAAEhsjC,EAAGrJ,EAAIszjC,YAAYjqjC,EAAGC,EAAGtJ,EAAIszjC,YAAYhqjC,EAAItJ,EAAIs1jC,cAC/DpqyB,EAASlrR,EAAIszjC,cAGb+B,EAAY,CAAEhsjC,EAAGrJ,EAAIuzjC,YAAYlqjC,EAAGC,EAAGtJ,EAAIuzjC,YAAYjqjC,EAAItJ,EAAIs1jC,cAC/DpqyB,EAASlrR,EAAIuzjC,aAEjB,IAAI/7b,EAASura,MAGb,GAFAO,IAAa9ra,EAAQ92N,EAAOx1I,EAAO7hR,EAAG6hR,EAAO5hR,GAC7C8rjC,EAAenyB,IAAuBzra,EAAQ,CAAEnunB,EAAGgsjC,EAAUhsjC,EAAGC,EAAG+rjC,EAAU/rjC,IACzE+vE,IAAa,SAAWkjhC,EACxB,MAAO,CAAE+gB,OAAQ,SAAW/gB,EAAa9mwB,MAAO2/tB,GAEpDmnC,GACJ,CACJ,CAEJ,MAAO,CAAE+gB,OAAQ,GAAI7nxB,MAAO2/tB,EAChC,CiC+2F6BuxD,CAASlzD,EAAWl8tB,GACjC,GAAiB,YAAbA,EACIpoW,KAAKipiC,UAAUgzB,WAAWp3iB,gBAAgBsjjB,KAC1C7D,EAAUJ,aAAa,GAAGhqjC,EAAIosV,EAAMpsV,EACpCoqjC,EAAUJ,aAAa,GAAG/pjC,EAAImsV,EAAMnsV,IAGpC0nd,EAAKv7H,EAAMpsV,EAAIi0mC,EAAO7nxB,MAAMpsV,EAC5B4nd,EAAKx7H,EAAMnsV,EAAIg0mC,EAAO7nxB,MAAMnsV,EAC5BmqjC,EAAUJ,aAAa,GAAGhqjC,GAAK2nd,EAC/ByimB,EAAUJ,aAAa,GAAG/pjC,GAAK2nd,QAGlC,GAAiB,YAAb15H,EAAwB,CAC7B,IAAIy/jB,EAAWy8J,EAAUJ,aAAa9gkC,OAAS,EAC3CpD,KAAKipiC,UAAUgzB,WAAWp3iB,gBAAgBsjjB,KAC1C7D,EAAUJ,aAAa33iC,SAASs74B,EAAS/w5B,WAAY,KAAKoD,EAAIosV,EAAMpsV,EACpEoqjC,EAAUJ,aAAa33iC,SAASs74B,EAAS/w5B,WAAY,KAAKqD,EAAImsV,EAAMnsV,IAGpE0nd,EAAKv7H,EAAMpsV,EAAIi0mC,EAAO7nxB,MAAMpsV,EAC5B4nd,EAAKx7H,EAAMnsV,EAAIg0mC,EAAO7nxB,MAAMnsV,EAC5BmqjC,EAAUJ,aAAa33iC,SAASs74B,EAAS/w5B,WAAY,KAAKoD,GAAK2nd,EAC/DyimB,EAAUJ,aAAa33iC,SAASs74B,EAAS/w5B,WAAY,KAAKqD,GAAK2nd,EAEvE,KACK,CAED,IAAIvwD,EAAQsyX,IAAMwuQ,UAAUiyB,EAAUH,YAAaG,EAAUF,aAEzDroyB,EAASlrR,EAAI1G,QAAQrE,SAAS,GAAG6+vB,OAAO5oe,OAG5Co4wB,IADI9ra,EAASura,OACSrioB,EAAOx1I,EAAO7hR,EAAG6hR,EAAO5hR,GAE9C,IAAI8rjC,EAAenyB,IAAuBzra,EAAQ,CAAEnunB,EAAGosV,EAAMpsV,EAAGC,EAAGmsV,EAAMnsV,IACzE,GAA+B,0BAA3BiuV,EAASz1U,MAAM,KAAK,GAAgC,CAGpDwhhC,IADI9ra,EAASura,OACSrioB,EAAOx1I,EAAO7hR,EAAG6hR,EAAO5hR,GAE9C,IAYQkunB,EAZJovf,EAAgB3jF,IAAuBzra,EAAQi8b,EAAUJ,aAAa,IAEtEwzD,EAAgB5jF,IAAuBzra,EAAQi8b,EAAUJ,aAAaI,EAAUJ,aAAa9gkC,OAAS,IAE1G,GADA0+d,EAAKmkmB,EAAa9rjC,EAAIs9mC,EAAct9mC,EACL,IAA3BmqjC,EAAU6B,cAAgD,MAA1B7B,EAAU6B,aAC1C7B,EAAU6B,aAAenmkC,KAAKipiC,UAAU4mE,iBAAiB19B,kBAGzD7N,EAAU6B,cAAgBrkmB,EAC1B21pB,EAAct9mC,GAAK2nd,EACnB41pB,EAAcv9mC,GAAK2nd,EAGnBqykB,IADI9ra,EAASura,MACQrioB,EAAOx1I,EAAO7hR,EAAG6hR,EAAO5hR,GAC7CmqjC,EAAUJ,aAAa,GAAKpwB,IAAuBzra,EAAQovf,GAC3DnzD,EAAUJ,aAAaI,EAAUJ,aAAa9gkC,OAAS,GAAK0wiC,IAAuBzra,EAAQqvf,EAEnG,CACJ,CACJ,MACK,GAA+B,0BAA3BtvxB,EAASz1U,MAAM,KAAK,GAAgC,CACzD,IAAIxmB,EAAI0Z,OAAOuiV,EAASz1U,MAAM,KAAK,IACnCkvc,EAAKv7H,EAAMpsV,EAAIoqjC,EAAUJ,aAAa33iC,SAASpgB,EAAE2K,WAAY,KAAKoD,EAClE4nd,EAAKx7H,EAAMnsV,EAAImqjC,EAAUJ,aAAa33iC,SAASpgB,EAAE2K,WAAY,KAAKqD,EAClEmqjC,EAAUJ,aAAa33iC,SAASpgB,EAAE2K,WAAY,KAAKoD,GAAK2nd,EACxDyimB,EAAUJ,aAAa33iC,SAASpgB,EAAE2K,WAAY,KAAKqD,GAAK2nd,EACpDwimB,EAAUJ,aAAa9gkC,OAAS,GAAyB,cAApByN,EAAI29jC,cACE,IAAvC99hC,WAAW03T,EAASz1U,MAAM,KAAK,KAC/B2xiC,EAAUJ,aAAaI,EAAUJ,aAAa9gkC,OAAS,GAAG8W,GAAK2nd,EAC/DyimB,EAAUJ,aAAaI,EAAUJ,aAAa9gkC,OAAS,GAAG+W,GAAK2nd,GAE1Dpxb,WAAW03T,EAASz1U,MAAM,KAAK,MAAQ2xiC,EAAUJ,aAAa9gkC,OAAS,IAC5EkhkC,EAAUJ,aAAa,GAAGhqjC,GAAK2nd,EAC/ByimB,EAAUJ,aAAa,GAAG/pjC,GAAK2nd,GAG3C,CACA9he,KAAK2ukC,mBAAmBrK,EAAW,CAAEJ,aAAcI,EAAUJ,eAC7DlkkC,KAAK0skC,eAAepI,EAAUxupB,UAAWqhK,EAC7C,CAEA,OADAn3kB,KAAKipiC,UAAUsb,iBACR,CACX,EASAunE,EAAQn7mC,UAAUgnnC,cAAgB,SAAU9mnC,EAAKgxd,EAAIC,EAAI31d,GAErD,IAAIm4jC,EAAYtkkC,KAAKipiC,UAAUlkR,UAAUl0wB,EAAIslB,IAI7C,OAHAmuiC,EAAUJ,aAAa33iC,SAASpgB,EAAE2K,WAAY,KAAKoD,GAAK2nd,EACxDyimB,EAAUJ,aAAa33iC,SAASpgB,EAAE2K,WAAY,KAAKqD,GAAK2nd,EACxD9he,KAAKipiC,UAAUsb,iBACR,CACX,EAOAunE,EAAQn7mC,UAAUoknC,gBAAkB,SAAUzwD,EAAW9kmB,GAIrD8kmB,EAAUJ,aAAe1kmB,EACzB6kmB,IAAqBC,EAAW9kmB,EAAQ8kmB,EAAUn6jC,QAAQrE,SAAS,IACpDw+jC,EAAUH,YAAzB,IACIyzD,EAAatzD,EAAUJ,aAEvB/ujC,EAAUmvjC,EAAUn6jC,QAAQrE,SAAS,GACzCqP,EAAQsujC,gBAAiB,EACzB,IAAK,IAAIt3jC,EAAI,EAAGA,EAAIm4jC,EAAUn6jC,QAAQrE,SAAS1C,OAAQ+I,IACnDgJ,EAAUmvjC,EAAUn6jC,QAAQrE,SAASymB,SAASpgB,EAAE2K,WAAY,KACtB,YAAlCwtjC,EAAUvvB,sBACN5/hC,EAAQghB,GAAGxrB,QAAQ,WAAa,GAChCg6jC,IAAuBL,EAAWnvjC,EAASqqd,EAAO,GAAIo4pB,EAAW,IAAI,GAE3DtzD,EAAUF,YACpBjvjC,EAAQghB,GAAGxrB,QAAQ,WAAa,GAChCg6jC,IAAuBL,EAAWnvjC,EAASqqd,EAAOA,EAAOp8d,OAAS,GAAIw0nC,EAAWA,EAAWx0nC,OAAS,IAAI,GAIzH,EAKA0onC,EAAQn7mC,UAAUyd,KAAO,WAKrB,IAAIq6jC,IAJEzolC,KAAKipiC,UAAUyiC,qBAAuB1rkC,KAAKipiC,UAAU0gB,aAAag/B,sBAAyB3olC,KAAKipiC,UAAUgb,oBAAsBjkjC,KAAKipiC,UAAUmgB,eAAgBppjC,KAAKipiC,UAAUgyC,kBAAyE,IAAnDj7kC,KAAKipiC,UAAUjmmB,cAAcmmnB,WAAW/ljC,QAAoE,IAApDpD,KAAKipiC,UAAUjmmB,cAAc5tP,YAAYhyM,SACvSpD,KAAKipiC,UAAU/h5B,cAAc2w+B,WAAa,EAC1C73nC,KAAKipiC,UAAU/h5B,cAAc4v8B,WAAa92lC,KAAK83nC,eAGnD,IAAIpvC,EAAcx3jC,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,eAOtE,OANIuyjC,IACAD,EAAsD,SAA9BC,EAAYvilC,MAAMi+J,UAE1CpkK,KAAKipiC,UAAU0gB,cAAgB3pjC,KAAKipiC,UAAU0gB,aAAag/B,sBAAwBF,KACnFzolC,KAAKipiC,UAAU/h5B,cAAc4v8B,WAAa,CAAC,GAExC92lC,KAAKipiC,UAAU/h5B,cAAc4v8B,UACxC,EAKAg1B,EAAQn7mC,UAAUmnnC,YAAc,WAC5B,IAAI90rB,EAAgB,GAChBnyb,EAAM,GAEV,GADA7Q,KAAKipiC,UAAU/h5B,cAAcwi7B,WAAa,CAAC,EACvC1pkC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAYhyM,OAAS,EAAG,CACrD4/b,EAAgBhjc,KAAKipiC,UAAUjmmB,cAAc5tP,YAC7C,IAAK,IAAIplM,EAAI,EAAGA,EAAIgzb,EAAc5/b,OAAQ4M,IAAK,CAC3C,IAAImF,EAAUwgiC,IAAa3ymB,EAAcz2a,SAASvc,EAAE8G,WAAY,MAChEjG,EAAIzE,KAAK+I,EACb,CACJ,CACA,GAAInV,KAAKipiC,UAAUjmmB,cAAcmmnB,WAAW/ljC,OAAS,EAAG,CACpD4/b,EAAgBhjc,KAAKipiC,UAAUjmmB,cAAcmmnB,WAC7C,IAASn5iC,EAAI,EAAGA,EAAIgzb,EAAc5/b,OAAQ4M,IAAK,CACvCmF,EAAUwgiC,IAAa3ymB,EAAcz2a,SAASvc,EAAE8G,WAAY,MAChEjG,EAAIzE,KAAK+I,EACb,CACJ,CACA,GAAgD,IAA5CnV,KAAKipiC,UAAU/h5B,cAAc2w+B,WAC7B,IAAK,IAAIvonC,EAAK,EAAGyonC,EAAkB/0rB,EAAe1zb,EAAKyonC,EAAgB30nC,OAAQkM,IAAM,CACjF,IAAIimB,EAAOwimC,EAAgBzonC,GAEvBtP,KAAKipiC,UAAUlkR,UAAUxvvB,EAAKY,MACzBZ,EAAK0/gC,yBAONj1iC,KAAKipiC,UAAUzxZ,eAAejinB,EAAKugZ,WACnC91a,KAAKipiC,UAAUyiC,mBAAmBgvB,gBAAgBnlkC,EAAKY,KAPnDZ,EAAK0xhC,UACLjnjC,KAAKipiC,UAAUgb,iBAAiB8lE,qBAAqBx0lC,EAAK0xhC,WAE1DjnjC,KAAKipiC,UAAUgb,iBAAiB02C,mBAOhD,CAIJ,OADA36lC,KAAKg4nC,aAAannnC,EAAK,UAChBA,CACX,EACAi7mC,EAAQn7mC,UAAUsnnC,aAAe,SAAUpnnC,GACvC,IAAIoqV,EACAi9xB,EAAU,GACdl4nC,KAAKipiC,UAAU/h5B,cAAc2w+B,WAAa,EAC1C,IAAK,IAAI1rnC,EAAI,EAAGA,EAAI0E,EAAIzN,OAAQ+I,IAC5B8uV,EAAS06sB,IAAY9kiC,EAAI0b,SAASpgB,EAAE2K,WAAY,MAChDohnC,EAAQ9rnC,KAAK6uV,GAEjB,OAAOi9xB,CACX,EAOApM,EAAQn7mC,UAAUkre,MAAQ,SAAUhre,EAAK4b,GACrC,IAGI462B,EAHA8wP,EAAan4nC,KAAKipiC,UAAUgzB,WAAWzxB,gBACvCijD,EAAsBztlC,KAAKipiC,UAAU39sB,uBAGzC,GAFAtrV,KAAKipiC,UAAUykD,yBAAwB,GAEnC78kC,GAAO7Q,KAAKipiC,UAAU/h5B,cAAc4v8B,WAAY,CAChD,IAAIshC,EAAcvnnC,EAAM7Q,KAAKi4nC,aAAapnnC,GACtC7Q,KAAKipiC,UAAU/h5B,cAAc4v8B,WACjC,GAAIshC,EAAa,CACb,IAAIC,EAAc,CAAC,EAC6B,IAA5Cr4nC,KAAKipiC,UAAU/h5B,cAAc2w+B,YAC7B73nC,KAAKipiC,UAAUzxZ,eAAe/qnB,GAElC,IAAK,IAAInd,EAAK,EAAGgpnC,EAAgBF,EAAa9onC,EAAKgpnC,EAAcl1nC,OAAQkM,IAAM,CAE3E+33B,GADIj52B,EAAOkqmC,EAAchpnC,IACV6mB,GACf/H,EAAK+H,IAAM6hU,MACX,IAAIg9E,EAAYh1a,KAAKu4nC,mBAAmBnqmC,GACpCoqmC,EAAY,EACZx4nC,KAAKipiC,UAAU0gB,eACf3pjC,KAAKipiC,UAAU0gB,aAAa8uE,oBAC5BD,EAAYx4nC,KAAKipiC,UAAU0gB,aAAaotC,eACxC3okC,EAAK1pB,KAAOswa,EAAYwjtB,GAG5BH,EAAYjqmC,EAAK+H,IAAM/H,CAC3B,CACA,IAAK,IAAIpe,EAAI,EAAGA,EAAIoonC,EAAYh1nC,OAAQ4M,IAAK,CACzC,IAAIoe,EAAOgqmC,EAAY7rmC,SAASvc,EAAE8G,WAAY,KAC1C2yhC,EAAUzpiC,KAAKipiC,UAAUgzB,WAAWj1xB,WAAW,YAAc54Q,EAAK0nZ,WAElE16S,EAASrkG,MAOb,IANIqkG,GAAWA,EAAO/hG,SAAY+hG,EAAO9hG,UACrC8hG,EAAS,CAAE/hG,QAASr5B,KAAKipiC,UAAUgzB,WAAWoiB,UAAW/kjC,QAASt5B,KAAKipiC,UAAUgzB,WAAWqiB,WAE5FxxwB,OACA1xM,EAASp7H,KAAKipiC,UAAUgzB,WAAWshB,gBAEnCzoC,IAAa1mhC,GACbpuB,KAAK04nC,sBAAsBtqmC,EAAMq7gC,EAASru6B,QAG1C,GAAIqu6B,EAAS,CACT,IAAIs+B,EAAkBt+B,EAAQh1wB,wBAC9BrmQ,EAAKu2uB,OAAOzqvB,GAAKkhH,EAAO/hG,QAAU0uiC,EAAgBpk8B,MAAQw0/B,EAC1D/pmC,EAAKu2uB,OAAOxqvB,GAAKihH,EAAO9hG,QAAUyuiC,EAAgB756B,KAAOiq+B,CAC7D,CAEJ,IAAIt/jB,EAAU88e,IAAYvnhC,GACyC,QAA/DpuB,KAAKipiC,UAAUgzB,WAAW1/a,kBAAkB/0H,gBAC5CqxC,EAAQ1iiB,IAAM6hU,MACVh4V,KAAKipiC,UAAUgb,kBAAoD,yBAAhCprf,EAAQk8e,sBAC3Cl8e,EAAQouf,UAAYpuf,EAAQ1iiB,GAE5Bn2B,KAAKipiC,UAAUgb,iBAAiBkR,4BAA4BwjE,2BAA2B9/jB,EAASu/jB,EAAY,IAAI,IAEhF,kBAAhCv/jB,EAAQk8e,qBAA2E,yBAAhCl8e,EAAQk8e,qBAAkF,mBAAhCl8e,EAAQk8e,qBACrH/0iC,KAAKipiC,UAAUgzB,WAAWxe,gBAAgBgH,mBAAmB5rf,EAAQ/iJ,UAAW+iJ,GAE/EA,EAAQo8e,yBACTj1iC,KAAKipiC,UAAU9p6B,WAAWmm7B,UAAUtljC,KAAKipiC,UAAUgzB,WAAWsU,eAAc,GAAQ,KAAM13gB,EAAS,WAAY,GAAIA,EAASA,KAI5H74jB,KAAKipiC,UAAUgb,kBAEfjkjC,KAAKipiC,UAAUgb,iBAAiBkR,4BAA4BwjE,2BAA2B9/jB,EAASu/jB,EAAY,IAAI,GAEhF,kBAAhCv/jB,EAAQk8e,qBAA2E,yBAAhCl8e,EAAQk8e,qBAAkF,mBAAhCl8e,EAAQk8e,qBACrH/0iC,KAAKipiC,UAAUgzB,WAAWxe,gBAAgBgH,mBAAmB5rf,EAAQ/iJ,UAAW+iJ,IAGxF,IAAI+/jB,EAAa54nC,KAAKozB,IAAIyliB,GAO1B,GANI74jB,KAAKipiC,UAAU0gB,cAAgBivE,EAAW3jF,yBAC1Cj1iC,KAAKipiC,UAAU9p6B,WAAWmm7B,UAAUtljC,KAAKipiC,UAAUgzB,WAAWsU,eAAc,GAAO,KAAMqoD,EAAY,WAAY,GAAIA,EAAYA,IAEhG,aAAhC//jB,EAAQk8e,qBAAsCl8e,EAAQ40gB,mBAAqBmrD,GAC5E54nC,KAAK2ukC,mBAAmBiqD,EAAY,CAAC,GAErCA,EAAW3jF,yBAA2B2jF,EAAW9itB,YAAcrpZ,EAAO,CACtEzsB,KAAKipiC,UAAUynC,oBAAoBtkkC,KAAKwsnC,GAExC,IAAIrtD,EAAY,CACZp1iC,GAAIyimC,EAAWzimC,GAAIzxB,KAAMk0nC,EAAWl0nC,KAAM9C,MAAOg3nC,EAAWh3nC,MAAOgL,KAAMgsnC,EAAW3jF,wBACpF/3kB,WAAY07pB,EAAW35uB,WAAYujE,WAAYo2qB,EAAWp2qB,WAE1DvjK,SAAU250B,EAAW350B,SAAUu3R,UAAWoijB,EAAWpijB,UAAW//c,MAAOmigC,EAAWnigC,MAAOmnW,gBAAiBg7pB,EAAWh7pB,gBAErH5hN,UAAW482B,EAAW582B,UAAWzU,WAAYqx3B,EAAWrx3B,WAAY35L,UAAWgrjC,EAAWhrjC,UAAWrzD,WAAYq+mC,EAAWr+mC,WAE5HwxjC,QAAS6sD,EAAW7sD,QAASpwoB,WAAYi9rB,EAAWj9rB,WAAY3P,UAAW4ssB,EAAW5ssB,UAAWE,QAAS0ssB,EAAW1ssB,QAASy4U,OAAQi0X,EAAWj0X,OAAQypM,UAAWwqL,EAAWxqL,UAAW7qI,YAAaq1T,EAAWr1T,YAAaksQ,2BAA4BmpD,EAAWnpD,4BAEtQmpD,EAAW95mC,SAAW85mC,EAAW95mC,QAAQ1b,OAAS,IAClDmokC,EAAUzsjC,QAAU85mC,EAAW95mC,SAEnC9e,KAAKipiC,UAAU0nC,qBAAqBvkkC,KAAKm/jC,GAEzCvrkC,KAAKipiC,UAAU0gB,aAAainB,gBAAgBgoD,EAAW3jF,wBAAyB2jF,EAAWzunC,QAAQrE,SAAS,GAAI8ynC,EAAYA,EAAW9itB,UAAW91a,KAAKipiC,UAAW5hK,EACtK,CACArn4B,KAAKipiC,UAAUz+sB,OAAO,CAACquO,EAAQ1iiB,IAAKn2B,KAAKipiC,UAAUqiC,4BAC9CstD,EAAW3jF,yBACZj1iC,KAAKipiC,UAAUgb,iBAAiB40E,0BAA0BhgkB,EAGlE,CACJ,CACA74jB,KAAKipiC,UAAUsb,mBAAclhjC,EAAWopB,GACxCzsB,KAAKipiC,UAAU/h5B,cAAc2w+B,YACjC,CACA73nC,KAAKipiC,UAAUykD,wBAAwBD,GAAqB,EAChE,EACAq+B,EAAQn7mC,UAAU4nnC,mBAAqB,SAAU1nnC,GAE7C,IAAIuuG,EAAQ,KACZ,GAAIvuG,EACA,OAAQA,EAAIokiC,yBACR,IAAK,UACD717B,EAAQ,UACR,MACJ,IAAK,gBACDA,EAAQ,WACR,MACJ,IAAK,WACDA,EAAQ,YACR,MACJ,IAAK,cACDA,EAAQ,eACR,MACJ,IAAK,eACDA,EAAQ,WACR,MACJ,IAAK,UACDA,EAAQ,WACR,MACJ,IAAK,iBACDA,EAAQ,YACR,MACJ,IAAK,eACDA,EAAQ,UAIpB,OAAOA,CACX,EACA0sgC,EAAQn7mC,UAAU+nnC,sBAAwB,SAAUtqmC,EAAMq7gC,EAASru6B,GAM/D,IALA,IACIylhB,EACAC,EACAC,EACAC,EAJAm3e,EAAan4nC,KAAKipiC,UAAUgzB,WAAWzxB,gBAKlCr+hC,EAAI,EAAGA,EAAIiiB,EAAK81iC,aAAa9gkC,OAAQ+I,IAC1C,GAAIs9hC,EACA,GAAU,IAANt9hC,EAAS,CACT,IAAI47jC,EAAkBt+B,EAAQh1wB,wBAC9BosX,EAAKzynB,EAAK81iC,aAAa33iC,SAASpgB,EAAE2K,WAAY,KAAKoD,EACnD4moB,EAAK1ynB,EAAK81iC,aAAa33iC,SAASpgB,EAAE2K,WAAY,KAAKqD,EACnDiU,EAAK81iC,aAAa33iC,SAASpgB,EAAE2K,WAAY,KAAKoD,GAAKkhH,EAAO/hG,QAAU0uiC,EAAgBpk8B,MAAQw0/B,EAC5F/pmC,EAAK81iC,aAAa33iC,SAASpgB,EAAE2K,WAAY,KAAKqD,GAAKihH,EAAO9hG,QAAUyuiC,EAAgB756B,KAAOiq+B,EAC3Fp3e,EAAK3ynB,EAAK81iC,aAAa33iC,SAASpgB,EAAE2K,WAAY,KAAKoD,EACnD8moB,EAAK5ynB,EAAK81iC,aAAa33iC,SAASpgB,EAAE2K,WAAY,KAAKqD,CACvD,MAEIiU,EAAK81iC,aAAa33iC,SAASpgB,EAAE2K,WAAY,KAAKoD,GAAK6moB,EAAKF,EACxDzynB,EAAK81iC,aAAa33iC,SAASpgB,EAAE2K,WAAY,KAAKqD,GAAK6moB,EAAKF,CAIxE,EAMAgre,EAAQn7mC,UAAU63kC,IAAM,SAAU/7jC,GAC9B,IAWIg8jC,EAXAgF,EAAsBztlC,KAAKipiC,UAAU39sB,uBACzCtrV,KAAKipiC,UAAUykD,yBAAwB,GACnC1tlC,KAAKipiC,UAAUgb,mBACfjkjC,KAAKipiC,UAAUgb,iBAAiB60E,4BAA8B,KAE5D94nC,KAAKipiC,UAAUyiC,qBAAuB1rkC,KAAKipiC,UAAU0gB,aAAag/B,sBAAyB3olC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAYhyM,OAAS,KAAOpD,KAAKipiC,UAAUmgB,cAAgBppjC,KAAKipiC,UAAUjmmB,cAAc5tP,YAAYhyM,OAAS,KAA0D,IAAnDpD,KAAKipiC,UAAUjmmB,cAAcmmnB,WAAW/ljC,QAAoE,IAApDpD,KAAKipiC,UAAUjmmB,cAAc5tP,YAAYhyM,UAC/UpD,KAAKipiC,UAAU/h5B,cAAc2w+B,WAAa,EAC1C73nC,KAAKipiC,UAAU/h5B,cAAc4v8B,WAAa92lC,KAAK83nC,cAC/C93nC,KAAKipiC,UAAUsb,mBAAclhjC,EAAWopB,GACxCzsB,KAAKipiC,UAAUykD,wBAAwBD,GAAqB,IAGhE,IAAI/E,EAAcx3jC,SAASg8T,eAAeltV,KAAKipiC,UAAU9zhC,QAAQghB,GAAK,eAClEuyjC,IACAD,EAAsD,SAA9BC,EAAYvilC,MAAMi+J,UAE1CpkK,KAAKipiC,UAAU0gB,cAAgB3pjC,KAAKipiC,UAAU0gB,aAAag/B,sBAAwBF,KACnFzolC,KAAKipiC,UAAU/h5B,cAAc4v8B,WAAa,CAAC,EAEnD,EAOAg1B,EAAQn7mC,UAAUqnnC,aAAe,SAAUt/iB,EAAWqgjB,GAClD,IAAI5imC,EAAK4imC,GAAkB,SAK3B,OAJArgjB,EAAYA,EAAUxqjB,MAAK,SAAUjY,EAAGC,GAEpC,OAAOD,EAAEkgB,GAAMjgB,EAAEigB,EACrB,IACOuijB,CACX,EACOoziB,CACX,CA7/G6B,GCpBzB5lkC,IAAyC,WACzC,IAAIC,EAAgB,SAAU3kD,EAAG0U,GAI7B,OAHAiwC,EAAgB1mD,OAAO6Y,gBAClB,CAAE9Y,UAAW,cAAgBkR,OAAS,SAAUlP,EAAG0U,GAAK1U,EAAEhC,UAAY0W,CAAG,GAC1E,SAAU1U,EAAG0U,GAAK,IAAK,IAAIwM,KAAKxM,EAAOA,EAAEpF,eAAe4R,KAAIlhB,EAAEkhB,GAAKxM,EAAEwM,GAAI,EACtEyjC,EAAc3kD,EAAG0U,EAC5B,EACA,OAAO,SAAU1U,EAAG0U,GAEhB,SAASkwC,IAAOpmD,KAAKmW,YAAc3U,CAAG,CADtC2kD,EAAc3kD,EAAG0U,GAEjB1U,EAAEmP,UAAkB,OAANuF,EAAazW,OAAOyY,OAAOhC,IAAMkwC,EAAGz1C,UAAYuF,EAAEvF,UAAW,IAAIy1C,EACnF,CACJ,CAZ6C,GAazC2pS,IAA0C,SAAUxoJ,EAAYl/L,EAAQiE,EAAKkkB,GAC7E,IAA2HhvB,EAAvH6e,EAAIld,UAAUC,OAAQkgH,EAAIjjG,EAAI,EAAIhY,EAAkB,OAATmoB,EAAgBA,EAAO/wB,OAAOk+B,yBAAyBt1B,EAAQiE,GAAOkkB,EACrH,GAAuB,kBAAZuN,SAAoD,oBAArBA,QAAQiyT,SAAyB1sO,EAAIvlF,QAAQiyT,SAASzoJ,EAAYl/L,EAAQiE,EAAKkkB,QACpH,IAAK,IAAIrkB,EAAIo7L,EAAWnkM,OAAS,EAAG+I,GAAK,EAAGA,KAAS3K,EAAI+lM,EAAWp7L,MAAIm3G,GAAKjjG,EAAI,EAAI7e,EAAE8hH,GAAKjjG,EAAI,EAAI7e,EAAE6G,EAAQiE,EAAKg3G,GAAK9hH,EAAE6G,EAAQiE,KAASg3G,GAChJ,OAAOjjG,EAAI,GAAKijG,GAAK7jH,OAAO4c,eAAehU,EAAQiE,EAAKg3G,GAAIA,CAChE,EACIq4E,IAAwC,SAAUz8J,EAAS08J,EAAYj5K,EAAGk5K,GAC1E,OAAO,IAAKl5K,IAAMA,EAAIguB,WAAU,SAAU2mB,EAASuwB,GAC/C,SAASi0G,EAAUl6L,GAAS,IAAM24E,EAAKshH,EAAUtlL,KAAK3U,GAAS,CAAE,MAAOvB,KAAKwnF,EAAOxnF,IAAI,CAAE,CAC1F,SAAS07L,EAASn6L,GAAS,IAAM24E,EAAKshH,EAAiB,MAAEj6L,GAAS,CAAE,MAAOvB,KAAKwnF,EAAOxnF,IAAI,CAAE,CAC7F,SAASk6E,EAAK1vD,GAAUA,EAAOrU,KAAO8gD,EAAQzsC,EAAOjpB,OAAS,IAAI+gB,GAAE,SAAU20C,GAAWA,EAAQzsC,EAAOjpB,MAAQ,IAAGq5H,KAAK6gE,EAAWC,EAAW,CAC9IxhH,GAAMshH,EAAYA,EAAU1iL,MAAM+lB,EAAS08J,GAAc,KAAKrlL,OAClE,GACJ,EACIqzT,IAA4C,SAAU1qS,EAASzrB,GAC/D,IAAsGiwG,EAAGvpG,EAAGwH,EAAG4hG,EAA3Gh0F,EAAI,CAAE6+Q,MAAO,EAAGnmF,KAAM,WAAa,GAAW,EAAPtmM,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,EAAI,EAAGkoT,KAAM,GAAIhvC,IAAK,IAChG,OAAOt3K,EAAI,CAAEhtG,KAAMuzT,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,oBAAXn7S,SAA0B40F,EAAE50F,OAAO4gB,UAAY,WAAa,OAAOvvC,IAAM,GAAIujH,EACvJ,SAASumN,EAAK9nU,GAAK,OAAO,SAAUq5B,GAAK,OACzC,SAAcy/P,GACV,GAAIp3K,EAAG,MAAM,IAAI9rG,UAAU,mCAC3B,KAAO2X,OACH,GAAIm0F,EAAI,EAAGvpG,IAAMwH,EAAY,EAARm5Q,EAAG,GAAS3gR,EAAU,OAAI2gR,EAAG,GAAK3gR,EAAS,SAAOwH,EAAIxH,EAAU,SAAMwH,EAAEhiB,KAAKwa,GAAI,GAAKA,EAAE5D,SAAWoL,EAAIA,EAAEhiB,KAAKwa,EAAG2gR,EAAG,KAAKtkR,KAAM,OAAOmL,EAE3J,OADIxH,EAAI,EAAGwH,IAAGm5Q,EAAK,CAAS,EAARA,EAAG,GAAQn5Q,EAAE/f,QACzBk5R,EAAG,IACP,KAAK,EAAG,KAAK,EAAGn5Q,EAAIm5Q,EAAI,MACxB,KAAK,EAAc,OAAXvrQ,EAAE6+Q,QAAgB,CAAExsS,MAAOk5R,EAAG,GAAItkR,MAAM,GAChD,KAAK,EAAG+Y,EAAE6+Q,QAASj0R,EAAI2gR,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKvrQ,EAAEsrQ,IAAIv8P,MAAO/O,EAAEs6S,KAAKvrS,MAAO,SACxC,QACI,KAAkB3c,GAAZA,EAAI4N,EAAEs6S,MAAYzmU,OAAS,GAAKue,EAAEA,EAAEve,OAAS,MAAkB,IAAV03R,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEvrQ,EAAI,EAAG,QAAU,CAC3G,GAAc,IAAVurQ,EAAG,MAAcn5Q,GAAMm5Q,EAAG,GAAKn5Q,EAAE,IAAMm5Q,EAAG,GAAKn5Q,EAAE,IAAM,CAAE4N,EAAE6+Q,MAAQtT,EAAG,GAAI,KAAO,CACrF,GAAc,IAAVA,EAAG,IAAYvrQ,EAAE6+Q,MAAQzsR,EAAE,GAAI,CAAE4N,EAAE6+Q,MAAQzsR,EAAE,GAAIA,EAAIm5Q,EAAI,KAAO,CACpE,GAAIn5Q,GAAK4N,EAAE6+Q,MAAQzsR,EAAE,GAAI,CAAE4N,EAAE6+Q,MAAQzsR,EAAE,GAAI4N,EAAEsrQ,IAAIzuR,KAAK0uR,GAAK,KAAO,CAC9Dn5Q,EAAE,IAAI4N,EAAEsrQ,IAAIv8P,MAChB/O,EAAEs6S,KAAKvrS,MAAO,SAEtBw8P,EAAKrnR,EAAK9T,KAAKu/B,EAAS3P,EAC5B,CAAE,MAAOlvB,KAAKy6R,EAAK,CAAC,EAAGz6R,KAAI8Z,EAAI,CAAG,CAAE,QAAUupG,EAAI/hG,EAAI,CAAG,CACzD,GAAY,EAARm5Q,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAEl5R,MAAOk5R,EAAG,GAAKA,EAAG,QAAK,EAAQtkR,MAAM,EAC9E,CAtBgD+jE,CAAK,CAACv4E,EAAGq5B,GAAK,CAAG,CAuBrE,EAg3GI29lC,KA/xGiC,SAAUlykC,GAE3C,SAAS0id,IACL,OAAkB,OAAX1id,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAHAkmD,IAAUsjd,EAAiB1id,GAI3BipS,IAAW,CACPjB,IAAS,IACV06K,EAAgB74f,UAAW,mBAAe,GAC7Co/U,IAAW,CACPjB,MACD06K,EAAgB74f,UAAW,oBAAgB,GAC9Co/U,IAAW,CACPjB,MACD06K,EAAgB74f,UAAW,8BAA0B,GACxDo/U,IAAW,CACPjB,MACD06K,EAAgB74f,UAAW,gCAA4B,EAE9D,CAlBqC,CAkBnCwjV,IAwBuC,SAAUrtS,GAE/C,SAASmykC,IACL,OAAkB,OAAXnykC,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAHAkmD,IAAU+ykC,EAAqBnykC,GAI/BipS,IAAW,CACPjB,MACDmqyB,EAAoBtonC,UAAW,mBAAe,GACjDo/U,IAAW,CACPjB,IAAS,IACVmqyB,EAAoBtonC,UAAW,uBAAmB,EAEzD,CAZyC,CAYvCwjV,IAqB+B,SAAUrtS,GAEvC,SAASoykC,IACL,OAAkB,OAAXpykC,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAHAkmD,IAAUgzkC,EAAapykC,GAIvBipS,IAAW,CACPjB,GAAS,KACVoqyB,EAAYvonC,UAAW,uBAAmB,GAC7Co/U,IAAW,CACPjB,GAAS,KACVoqyB,EAAYvonC,UAAW,8BAA0B,EAExD,CAZiC,CAY/BwjV,IAwC6C,SAAUrtS,GAErD,SAASqykC,IACL,OAAkB,OAAXrykC,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAHAkmD,IAAUizkC,EAA2BrykC,GAIrCipS,IAAW,CACPjB,IAAS,IACVqqyB,EAA0BxonC,UAAW,mBAAe,GACvDo/U,IAAW,CACPjB,MACDqqyB,EAA0BxonC,UAAW,6BAAyB,EAErE,CAZ+C,CAY7CwjV,IA4B+C,SAAUrtS,GAEvD,SAASsykC,IACL,OAAkB,OAAXtykC,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAHAkmD,IAAUkzkC,EAA6BtykC,GAIvCipS,IAAW,CACPjB,IAAS,IACVsqyB,EAA4BzonC,UAAW,mBAAe,GACzDo/U,IAAW,CACPjB,MACDsqyB,EAA4BzonC,UAAW,+BAA2B,EAEzE,CAZiD,CAY/CwjV,IAqC0C,SAAUrtS,GAElD,SAASuykC,IACL,OAAkB,OAAXvykC,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAHAkmD,IAAUmzkC,EAAwBvykC,GAIlCipS,IAAW,CACPjB,GAAS,CAAE50U,EAAG,EAAGC,EAAG,EAAGqE,MAAO,EAAGoqI,OAAQ,KAC1Cyw+B,EAAuB1onC,UAAW,cAAU,GAC/Co/U,IAAW,CACPjB,GAAS,KACVuqyB,EAAuB1onC,UAAW,YAAQ,GAC7Co/U,IAAW,CACPjB,IAAS,IACVuqyB,EAAuB1onC,UAAW,kBAAc,GACnDo/U,IAAW,CACPjB,GAAS,YACVuqyB,EAAuB1onC,UAAW,kBAAc,GACnDo/U,IAAW,CACPjB,IAAS,IACVuqyB,EAAuB1onC,UAAW,kBAAc,GACnDo/U,IAAW,CACPjB,IAAS,IACVuqyB,EAAuB1onC,UAAW,eAAW,GAChDo/U,IAAW,CACPjB,GAAS,KACVuqyB,EAAuB1onC,UAAW,eAAW,GAChDo/U,IAAW,CACPjB,GAAS,IACVuqyB,EAAuB1onC,UAAW,iBAAa,GAClDo/U,IAAW,CACPjB,GAAS,IACVuqyB,EAAuB1onC,UAAW,kBAAc,GACnDo/U,IAAW,CACPjB,MACDuqyB,EAAuB1onC,UAAW,+BAA2B,GAChEo/U,IAAW,CACPjB,MACDuqyB,EAAuB1onC,UAAW,kCAA8B,EAEvE,CAvC4C,CAuC1CwjV,IAqCwC,SAAUrtS,GAEhD,SAASwykC,IACL,OAAkB,OAAXxykC,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAHAkmD,IAAUozkC,EAAsBxykC,GAIhCipS,IAAW,CACPjB,GAAS,CAAE50U,EAAG,EAAGC,EAAG,EAAGqE,MAAO,EAAGoqI,OAAQ,KAC1C0w+B,EAAqB3onC,UAAW,cAAU,GAC7Co/U,IAAW,CACPjB,GAAS,KACVwqyB,EAAqB3onC,UAAW,YAAQ,GAC3Co/U,IAAW,CACPjB,IAAS,IACVwqyB,EAAqB3onC,UAAW,kBAAc,GACjDo/U,IAAW,CACPjB,GAAS,YACVwqyB,EAAqB3onC,UAAW,kBAAc,GACjDo/U,IAAW,CACPjB,IAAS,IACVwqyB,EAAqB3onC,UAAW,kBAAc,GACjDo/U,IAAW,CACPjB,IAAS,IACVwqyB,EAAqB3onC,UAAW,eAAW,GAC9Co/U,IAAW,CACPjB,GAAS,KACVwqyB,EAAqB3onC,UAAW,eAAW,GAC9Co/U,IAAW,CACPjB,GAAS,IACVwqyB,EAAqB3onC,UAAW,iBAAa,GAChDo/U,IAAW,CACPjB,GAAS,IACVwqyB,EAAqB3onC,UAAW,kBAAc,GACjDo/U,IAAW,CACPjB,IAAS,IACVwqyB,EAAqB3onC,UAAW,sBAAkB,GACrDo/U,IAAW,CACPjB,MACDwqyB,EAAqB3onC,UAAW,6BAAyB,GAC5Do/U,IAAW,CACPjB,MACDwqyB,EAAqB3onC,UAAW,gCAA4B,EAEnE,CA1C0C,CA0CxCwjV,IA0B8C,SAAUrtS,GAEtD,SAASyykC,IACL,OAAkB,OAAXzykC,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAHAkmD,IAAUqzkC,EAA4BzykC,GAItCipS,IAAW,CACPjB,GAAS,IACVyqyB,EAA2B5onC,UAAW,eAAW,GACpDo/U,IAAW,CACPjB,GAAS,WACVyqyB,EAA2B5onC,UAAW,uBAAmB,GAC5Do/U,IAAW,CACPjB,GAAS,KACVyqyB,EAA2B5onC,UAAW,aAAS,GAClDo/U,IAAW,CACPjB,GAAS,KACVyqyB,EAA2B5onC,UAAW,cAAU,GACnDo/U,IAAW,CACPjB,GAAS,KACVyqyB,EAA2B5onC,UAAW,gBAAY,GACrDo/U,IAAW,CACPjB,GAAS,OACVyqyB,EAA2B5onC,UAAW,YAAQ,GACjDo/U,IAAW,CACPjB,GAAS,UACVyqyB,EAA2B5onC,UAAW,aAAS,EAEtD,CA3BgD,CA2B9CwjV,IAoB2C,SAAUrtS,GAEnD,SAAS0ykC,IACL,OAAkB,OAAX1ykC,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAHAkmD,IAAUszkC,EAAyB1ykC,GAInCipS,IAAW,CACPjB,GAASkktB,IAAYrzrB,KAAOqzrB,IAAYr2gC,KAAOq2gC,IAAY96qB,SAC5DshwB,EAAwB7onC,UAAW,mBAAe,GACrDo/U,IAAW,CACPjB,IAAS,IACV0qyB,EAAwB7onC,UAAW,yBAAqB,EAE/D,CAZ6C,CAY3CwjV,IA6BwC,SAAUrtS,GAEhD,SAAS2ykC,IACL,OAAkB,OAAX3ykC,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAHAkmD,IAAUuzkC,EAAsB3ykC,GAIhCipS,IAAW,CACPjB,GAAS,SACV2qyB,EAAqB9onC,UAAW,YAAQ,GAC3Co/U,IAAW,CACPjB,GAAS,WACV2qyB,EAAqB9onC,UAAW,cAAU,GAC7Co/U,IAAW,CACPjB,GAAS,mBACV2qyB,EAAqB9onC,UAAW,mBAAe,GAClDo/U,IAAW,CACPjB,GAAS,mBACV2qyB,EAAqB9onC,UAAW,aAAS,GAC5Co/U,IAAW,CACPjB,GAAS,aACV2qyB,EAAqB9onC,UAAW,gBAAY,GAC/Co/U,IAAW,CACPjB,GAAS,0BACV2qyB,EAAqB9onC,UAAW,uBAAmB,GACtDo/U,IAAW,CACPjB,GAAS,6BACV2qyB,EAAqB9onC,UAAW,sBAAkB,GACrDo/U,IAAW,CACPjB,GAAS,sBACV2qyB,EAAqB9onC,UAAW,yBAAqB,GACxDo/U,IAAW,CACPjB,GAAS,sBACV2qyB,EAAqB9onC,UAAW,yBAAqB,GACxDo/U,IAAW,CACPjB,GAAS,qBACV2qyB,EAAqB9onC,UAAW,wBAAoB,GACvDo/U,IAAW,CACPjB,GAAS,qBACV2qyB,EAAqB9onC,UAAW,wBAAoB,GACvDo/U,IAAW,CACPjB,GAAS,mBACV2qyB,EAAqB9onC,UAAW,mBAAe,EAEtD,CA1C0C,CA0CxCwjV,IAmCyC,SAAUrtS,GAEjD,SAAS4ykC,IACL,OAAkB,OAAX5ykC,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAHAkmD,IAAUwzkC,EAAuB5ykC,GAIjCipS,IAAW,CACPjB,GAAS,IACV4qyB,EAAsB/onC,UAAW,kBAAc,GAClDo/U,IAAW,CACPjB,GAAS,IACV4qyB,EAAsB/onC,UAAW,eAAW,GAC/Co/U,IAAW,CACPjB,GAAS,YACV4qyB,EAAsB/onC,UAAW,aAAS,GAC7Co/U,IAAW,CACPjB,GAAS,UACV4qyB,EAAsB/onC,UAAW,cAAU,GAC9Co/U,IAAW,CACPjB,GAAS,KACV4qyB,EAAsB/onC,UAAW,kCAA8B,GAClEo/U,IAAW,CACPjB,GAAS,OACV4qyB,EAAsB/onC,UAAW,kBAAc,GAClDo/U,IAAW,CACPjB,IAAS,IACV4qyB,EAAsB/onC,UAAW,cAAU,GAC9Co/U,IAAW,CACPjB,IAAS,IACV4qyB,EAAsB/onC,UAAW,iCAA6B,GACjEo/U,IAAW,CACPjB,IAAS,IACV4qyB,EAAsB/onC,UAAW,+BAA2B,GAC/Do/U,IAAW,CACPjB,GAAS,CAAC,UACX4qyB,EAAsB/onC,UAAW,2BAAuB,GAC3Do/U,IAAW,CACPjB,IAAS,IACV4qyB,EAAsB/onC,UAAW,eAAW,EAEnD,CAvC2C,CAuCzCwjV,IAmCqC,SAAUrtS,GAE7C,SAAS6ykC,IACL,OAAkB,OAAX7ykC,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAHAkmD,IAAUyzkC,EAAmB7ykC,GAI7BipS,IAAW,CACPjB,GAAS,IACV6qyB,EAAkBhpnC,UAAW,kBAAc,GAC9Co/U,IAAW,CACPjB,GAAS,IACV6qyB,EAAkBhpnC,UAAW,eAAW,GAC3Co/U,IAAW,CACPjB,GAAS,YACV6qyB,EAAkBhpnC,UAAW,aAAS,GACzCo/U,IAAW,CACPjB,GAAS,UACV6qyB,EAAkBhpnC,UAAW,cAAU,GAC1Co/U,IAAW,CACPjB,GAAS,KACV6qyB,EAAkBhpnC,UAAW,kCAA8B,GAC9Do/U,IAAW,CACPjB,GAAS,OACV6qyB,EAAkBhpnC,UAAW,kBAAc,GAC9Co/U,IAAW,CACPjB,IAAS,IACV6qyB,EAAkBhpnC,UAAW,cAAU,GAC1Co/U,IAAW,CACPjB,IAAS,IACV6qyB,EAAkBhpnC,UAAW,iCAA6B,GAC7Do/U,IAAW,CACPjB,IAAS,IACV6qyB,EAAkBhpnC,UAAW,+BAA2B,GAC3Do/U,IAAW,CACPjB,GAAS,CAAC,UACX6qyB,EAAkBhpnC,UAAW,2BAAuB,GACvDo/U,IAAW,CACPjB,IAAS,IACV6qyB,EAAkBhpnC,UAAW,eAAW,EAE/C,CAvCuC,CAuCrCwjV,IAmCqC,SAAUrtS,GAE7C,SAAS8ykC,IACL,OAAkB,OAAX9ykC,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAHAkmD,IAAU0zkC,EAAmB9ykC,GAI7BipS,IAAW,CACPjB,GAAS,IACV8qyB,EAAkBjpnC,UAAW,kBAAc,GAC9Co/U,IAAW,CACPjB,GAAS,IACV8qyB,EAAkBjpnC,UAAW,eAAW,GAC3Co/U,IAAW,CACPjB,GAAS,YACV8qyB,EAAkBjpnC,UAAW,aAAS,GACzCo/U,IAAW,CACPjB,GAAS,UACV8qyB,EAAkBjpnC,UAAW,cAAU,GAC1Co/U,IAAW,CACPjB,GAAS,KACV8qyB,EAAkBjpnC,UAAW,kCAA8B,GAC9Do/U,IAAW,CACPjB,GAAS,OACV8qyB,EAAkBjpnC,UAAW,kBAAc,GAC9Co/U,IAAW,CACPjB,IAAS,IACV8qyB,EAAkBjpnC,UAAW,cAAU,GAC1Co/U,IAAW,CACPjB,IAAS,IACV8qyB,EAAkBjpnC,UAAW,iCAA6B,GAC7Do/U,IAAW,CACPjB,IAAS,IACV8qyB,EAAkBjpnC,UAAW,+BAA2B,GAC3Do/U,IAAW,CACPjB,GAAS,CAAC,UACX8qyB,EAAkBjpnC,UAAW,2BAAuB,GACvDo/U,IAAW,CACPjB,IAAS,IACV8qyB,EAAkBjpnC,UAAW,eAAW,EAE/C,CAvCuC,CAuCrCwjV,IAmCgC,SAAUrtS,GAExC,SAAS+ykC,IACL,OAAkB,OAAX/ykC,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAHAkmD,IAAU2zkC,EAAc/ykC,GAIxBipS,IAAW,CACPjB,GAAS,CAAE50U,EAAG,EAAGC,EAAG,KACrB0/mC,EAAalpnC,UAAW,cAAU,GACrCo/U,IAAW,CACPjB,GAAS,IACV+qyB,EAAalpnC,UAAW,kBAAc,GACzCo/U,IAAW,CACPjB,GAAS,IACV+qyB,EAAalpnC,UAAW,eAAW,GACtCo/U,IAAW,CACPjB,GAAS,cACV+qyB,EAAalpnC,UAAW,iBAAa,GACxCo/U,IAAW,CACPjB,GAAS,YACV+qyB,EAAalpnC,UAAW,mBAAe,GAC1Co/U,IAAW,CACPjB,GAAS,UACV+qyB,EAAalpnC,UAAW,cAAU,GACrCo/U,IAAW,CACPjB,GAAS,MACV+qyB,EAAalpnC,UAAW,iBAAa,GACxCo/U,IAAW,CACPjB,GAAS,SACV+qyB,EAAalpnC,UAAW,0BAAsB,GACjDo/U,IAAW,CACPjB,GAAS,SACV+qyB,EAAalpnC,UAAW,wBAAoB,GAC/Co/U,IAAW,CACPjB,GAAS,IACV+qyB,EAAalpnC,UAAW,uBAAmB,GAC9Co/U,IAAW,CACPjB,GAAS,KACV+qyB,EAAalpnC,UAAW,kCAA8B,GACzDo/U,IAAW,CACPjB,GAAS,IACV+qyB,EAAalpnC,UAAW,iBAAa,GACxCo/U,IAAW,CACPjB,GAAS,IACV+qyB,EAAalpnC,UAAW,gBAAY,GACvCo/U,IAAW,CACPjB,GAAS,IACV+qyB,EAAalpnC,UAAW,iBAAa,GACxCo/U,IAAW,CACPjB,GAAS,IACV+qyB,EAAalpnC,UAAW,gBAAY,GACvCo/U,IAAW,CACPjB,IAAS,IACV+qyB,EAAalpnC,UAAW,cAAU,GACrCo/U,IAAW,CACPjB,GAAS,OACV+qyB,EAAalpnC,UAAW,kBAAc,GACzCo/U,IAAW,CACPjB,GAAS,CAAC,UACX+qyB,EAAalpnC,UAAW,2BAAuB,GAClDo/U,IAAW,CACPjB,IAAS,IACV+qyB,EAAalpnC,UAAW,eAAW,EAE1C,CA/DkC,CA+DhCwjV,IA2CiC,SAAUrtS,GAEzC,SAASgzkC,IACL,OAAkB,OAAXhzkC,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAHAkmD,IAAU4zkC,EAAehzkC,GAIzBipS,IAAW,CACPjB,GAAS,CAAE50U,EAAG,EAAGC,EAAG,KACrB2/mC,EAAcnpnC,UAAW,cAAU,GACtCo/U,IAAW,CACPjB,GAAS,IACVgryB,EAAcnpnC,UAAW,kBAAc,GAC1Co/U,IAAW,CACPjB,GAAS,IACVgryB,EAAcnpnC,UAAW,eAAW,GACvCo/U,IAAW,CACPjB,GAAS,cACVgryB,EAAcnpnC,UAAW,iBAAa,GACzCo/U,IAAW,CACPjB,GAAS,YACVgryB,EAAcnpnC,UAAW,mBAAe,GAC3Co/U,IAAW,CACPjB,GAAS,UACVgryB,EAAcnpnC,UAAW,cAAU,GACtCo/U,IAAW,CACPjB,GAAS,MACVgryB,EAAcnpnC,UAAW,iBAAa,GACzCo/U,IAAW,CACPjB,GAAS,SACVgryB,EAAcnpnC,UAAW,0BAAsB,GAClDo/U,IAAW,CACPjB,GAAS,SACVgryB,EAAcnpnC,UAAW,wBAAoB,GAChDo/U,IAAW,CACPjB,GAAS,IACVgryB,EAAcnpnC,UAAW,uBAAmB,GAC/Co/U,IAAW,CACPjB,GAAS,KACVgryB,EAAcnpnC,UAAW,kCAA8B,GAC1Do/U,IAAW,CACPjB,GAAS,IACVgryB,EAAcnpnC,UAAW,iBAAa,GACzCo/U,IAAW,CACPjB,GAAS,IACVgryB,EAAcnpnC,UAAW,gBAAY,GACxCo/U,IAAW,CACPjB,GAAS,IACVgryB,EAAcnpnC,UAAW,iBAAa,GACzCo/U,IAAW,CACPjB,GAAS,IACVgryB,EAAcnpnC,UAAW,gBAAY,GACxCo/U,IAAW,CACPjB,IAAS,IACVgryB,EAAcnpnC,UAAW,cAAU,GACtCo/U,IAAW,CACPjB,GAAS,OACVgryB,EAAcnpnC,UAAW,kBAAc,GAC1Co/U,IAAW,CACPjB,GAAS,CAAC,UACXgryB,EAAcnpnC,UAAW,2BAAuB,GACnDo/U,IAAW,CACPjB,IAAS,IACVgryB,EAAcnpnC,UAAW,eAAW,EAE3C,CA/DmC,CA+DjCwjV,IAwCqC,SAAUrtS,GAE7C,SAASizkC,IACL,OAAkB,OAAXjzkC,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAHAkmD,IAAU6zkC,EAAmBjzkC,GAI7BipS,IAAW,CACPjB,GAAS,CAAE50U,EAAG,EAAGC,EAAG,KACrB4/mC,EAAkBppnC,UAAW,cAAU,GAC1Co/U,IAAW,CACPjB,GAAS,IACViryB,EAAkBppnC,UAAW,kBAAc,GAC9Co/U,IAAW,CACPjB,GAAS,MACViryB,EAAkBppnC,UAAW,aAAS,GACzCo/U,IAAW,CACPjB,GAAS,KACViryB,EAAkBppnC,UAAW,cAAU,GAC1Co/U,IAAW,CACPjB,GAAS,IACViryB,EAAkBppnC,UAAW,eAAW,GAC3Co/U,IAAW,CACPjB,GAAS,cACViryB,EAAkBppnC,UAAW,iBAAa,GAC7Co/U,IAAW,CACPjB,GAAS,YACViryB,EAAkBppnC,UAAW,mBAAe,GAC/Co/U,IAAW,CACPjB,GAAS,UACViryB,EAAkBppnC,UAAW,cAAU,GAC1Co/U,IAAW,CACPjB,GAAS,MACViryB,EAAkBppnC,UAAW,iBAAa,GAC7Co/U,IAAW,CACPjB,GAAS,KACViryB,EAAkBppnC,UAAW,kCAA8B,GAC9Do/U,IAAW,CACPjB,GAAS,IACViryB,EAAkBppnC,UAAW,iBAAa,GAC7Co/U,IAAW,CACPjB,GAAS,IACViryB,EAAkBppnC,UAAW,gBAAY,GAC5Co/U,IAAW,CACPjB,GAAS,IACViryB,EAAkBppnC,UAAW,iBAAa,GAC7Co/U,IAAW,CACPjB,GAAS,IACViryB,EAAkBppnC,UAAW,gBAAY,GAC5Co/U,IAAW,CACPjB,IAAS,IACViryB,EAAkBppnC,UAAW,cAAU,GAC1Co/U,IAAW,CACPjB,GAAS,OACViryB,EAAkBppnC,UAAW,kBAAc,GAC9Co/U,IAAW,CACPjB,GAAS,CAAC,UACXiryB,EAAkBppnC,UAAW,2BAAuB,GACvDo/U,IAAW,CACPjB,IAAS,IACViryB,EAAkBppnC,UAAW,eAAW,EAE/C,CA5DuC,CA4DrCwjV,IAwCkC,SAAUrtS,GAE1C,SAASkzkC,IACL,OAAkB,OAAXlzkC,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAHAkmD,IAAU8zkC,EAAgBlzkC,GAI1BipS,IAAW,CACPjB,GAAS,CAAE50U,EAAG,EAAGC,EAAG,KACrB6/mC,EAAerpnC,UAAW,cAAU,GACvCo/U,IAAW,CACPjB,GAAS,IACVkryB,EAAerpnC,UAAW,kBAAc,GAC3Co/U,IAAW,CACPjB,GAAS,MACVkryB,EAAerpnC,UAAW,aAAS,GACtCo/U,IAAW,CACPjB,GAAS,MACVkryB,EAAerpnC,UAAW,cAAU,GACvCo/U,IAAW,CACPjB,GAAS,IACVkryB,EAAerpnC,UAAW,eAAW,GACxCo/U,IAAW,CACPjB,GAAS,cACVkryB,EAAerpnC,UAAW,iBAAa,GAC1Co/U,IAAW,CACPjB,GAAS,YACVkryB,EAAerpnC,UAAW,mBAAe,GAC5Co/U,IAAW,CACPjB,GAAS,UACVkryB,EAAerpnC,UAAW,cAAU,GACvCo/U,IAAW,CACPjB,GAAS,MACVkryB,EAAerpnC,UAAW,iBAAa,GAC1Co/U,IAAW,CACPjB,GAAS,KACVkryB,EAAerpnC,UAAW,kCAA8B,GAC3Do/U,IAAW,CACPjB,GAAS,IACVkryB,EAAerpnC,UAAW,iBAAa,GAC1Co/U,IAAW,CACPjB,GAAS,IACVkryB,EAAerpnC,UAAW,gBAAY,GACzCo/U,IAAW,CACPjB,GAAS,IACVkryB,EAAerpnC,UAAW,iBAAa,GAC1Co/U,IAAW,CACPjB,GAAS,IACVkryB,EAAerpnC,UAAW,gBAAY,GACzCo/U,IAAW,CACPjB,IAAS,IACVkryB,EAAerpnC,UAAW,cAAU,GACvCo/U,IAAW,CACPjB,GAAS,OACVkryB,EAAerpnC,UAAW,kBAAc,GAC3Co/U,IAAW,CACPjB,GAAS,CAAC,UACXkryB,EAAerpnC,UAAW,2BAAuB,GACpDo/U,IAAW,CACPjB,IAAS,IACVkryB,EAAerpnC,UAAW,eAAW,EAE5C,CA5DoC,CA4DlCwjV,IAyBsC,SAAUrtS,GAE9C,SAASmzkC,IACL,OAAkB,OAAXnzkC,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAHAkmD,IAAU+zkC,EAAoBnzkC,GAI9BipS,IAAW,CACPjB,GAAS,IACVmryB,EAAmBtpnC,UAAW,eAAW,GAC5Co/U,IAAW,CACPjB,GAAS,cACVmryB,EAAmBtpnC,UAAW,iBAAa,GAC9Co/U,IAAW,CACPjB,GAAS,SACVmryB,EAAmBtpnC,UAAW,iBAAa,GAC9Co/U,IAAW,CACPjB,GAAS,KACVmryB,EAAmBtpnC,UAAW,gBAAY,GAC7Co/U,IAAW,CACPjB,GAAS,cACVmryB,EAAmBtpnC,UAAW,kBAAc,GAC/Co/U,IAAW,CACPjB,GAAS,UACVmryB,EAAmBtpnC,UAAW,oBAAgB,GACjDo/U,IAAW,CACPjB,GAAS,KACVmryB,EAAmBtpnC,UAAW,aAAS,EAE9C,CA3BwC,CA2BtCwjV,IAwCmC,SAAUrtS,GAE3C,SAASozkC,IACL,OAAkB,OAAXpzkC,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAHAkmD,IAAUg0kC,EAAiBpzkC,GAI3BipS,IAAW,CACPjB,GAAS,CAAE50U,EAAG,EAAGC,EAAG,KACrB+/mC,EAAgBvpnC,UAAW,cAAU,GACxCo/U,IAAW,CACPjB,GAAS,IACVoryB,EAAgBvpnC,UAAW,kBAAc,GAC5Co/U,IAAW,CACPjB,GAAS,IACVoryB,EAAgBvpnC,UAAW,eAAW,GACzCo/U,IAAW,CACPjB,GAAS,cACVoryB,EAAgBvpnC,UAAW,iBAAa,GAC3Co/U,IAAW,CACPjB,GAAS,YACVoryB,EAAgBvpnC,UAAW,mBAAe,GAC7Co/U,IAAW,CACPjB,GAAS,UACVoryB,EAAgBvpnC,UAAW,cAAU,GACxCo/U,IAAW,CACPjB,GAAS,MACVoryB,EAAgBvpnC,UAAW,iBAAa,GAC3Co/U,IAAW,CACPjB,GAAS,KACVoryB,EAAgBvpnC,UAAW,kCAA8B,GAC5Do/U,IAAW,CACPjB,GAAS,IACVoryB,EAAgBvpnC,UAAW,iBAAa,GAC3Co/U,IAAW,CACPjB,GAAS,IACVoryB,EAAgBvpnC,UAAW,gBAAY,GAC1Co/U,IAAW,CACPjB,GAAS,IACVoryB,EAAgBvpnC,UAAW,iBAAa,GAC3Co/U,IAAW,CACPjB,GAAS,IACVoryB,EAAgBvpnC,UAAW,gBAAY,GAC1Co/U,IAAW,CACPjB,IAAS,IACVoryB,EAAgBvpnC,UAAW,cAAU,GACxCo/U,IAAW,CACPjB,GAAS,OACVoryB,EAAgBvpnC,UAAW,kBAAc,GAC5Co/U,IAAW,CACPjB,GAAS,CAAC,UACXoryB,EAAgBvpnC,UAAW,2BAAuB,GACrDo/U,IAAW,CACPjB,IAAS,IACVoryB,EAAgBvpnC,UAAW,eAAW,EAE7C,CAtDqC,CAsDnCwjV,IAkEiC,SAAUrtS,GAEzC,SAASqzkC,IACL,OAAkB,OAAXrzkC,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAHAkmD,IAAUi0kC,EAAerzkC,GAIzBipS,IAAW,CACPjB,GAAS,CAAE50U,EAAG,EAAGC,EAAG,KACrBggnC,EAAcxpnC,UAAW,cAAU,GACtCo/U,IAAW,CACPjB,GAAS,IACVqryB,EAAcxpnC,UAAW,kBAAc,GAC1Co/U,IAAW,CACPjB,GAAS,MACVqryB,EAAcxpnC,UAAW,aAAS,GACrCo/U,IAAW,CACPjB,GAAS,KACVqryB,EAAcxpnC,UAAW,cAAU,GACtCo/U,IAAW,CACPjB,GAAS,IACVqryB,EAAcxpnC,UAAW,eAAW,GACvCo/U,IAAW,CACPjB,GAAS,UACVqryB,EAAcxpnC,UAAW,cAAU,GACtCo/U,IAAW,CACPjB,GAAS,KACVqryB,EAAcxpnC,UAAW,kCAA8B,GAC1Do/U,IAAW,CACPjB,GAAS,IACVqryB,EAAcxpnC,UAAW,iBAAa,GACzCo/U,IAAW,CACPjB,GAAS,IACVqryB,EAAcxpnC,UAAW,gBAAY,GACxCo/U,IAAW,CACPjB,GAAS,IACVqryB,EAAcxpnC,UAAW,iBAAa,GACzCo/U,IAAW,CACPjB,GAAS,IACVqryB,EAAcxpnC,UAAW,gBAAY,GACxCo/U,IAAW,CACPjB,IAAS,IACVqryB,EAAcxpnC,UAAW,cAAU,GACtCo/U,IAAW,CACPjB,GAAS,OACVqryB,EAAcxpnC,UAAW,kBAAc,GAC1Co/U,IAAW,CACPjB,GAAS,KACVqryB,EAAcxpnC,UAAW,qBAAiB,GAC7Co/U,IAAW,CACPjB,GAAS,KACVqryB,EAAcxpnC,UAAW,kBAAc,GAC1Co/U,IAAW,CACPjB,GAAS,KACVqryB,EAAcxpnC,UAAW,8BAA0B,GACtDo/U,IAAW,CACPjB,GAAS,CAAC,UACXqryB,EAAcxpnC,UAAW,2BAAuB,GACnDo/U,IAAW,CACPjB,IAAS,IACVqryB,EAAcxpnC,UAAW,eAAW,EAE3C,CA5DmC,CA4DjCwjV,IAgCuC,SAAUrtS,GAE/C,SAASszkC,IACL,OAAkB,OAAXtzkC,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAHAkmD,IAAUk0kC,EAAqBtzkC,GAI/BipS,IAAW,CACPjB,GAAS,CAAE50U,EAAG,EAAGC,EAAG,KACrBignC,EAAoBzpnC,UAAW,cAAU,GAC5Co/U,IAAW,CACPjB,GAAS,IACVsryB,EAAoBzpnC,UAAW,kBAAc,GAChDo/U,IAAW,CACPjB,GAAS,IACVsryB,EAAoBzpnC,UAAW,eAAW,GAC7Co/U,IAAW,CACPjB,GAAS,UACVsryB,EAAoBzpnC,UAAW,cAAU,GAC5Co/U,IAAW,CACPjB,GAAS,IACVsryB,EAAoBzpnC,UAAW,aAAS,GAC3Co/U,IAAW,CACPjB,GAAS,IACVsryB,EAAoBzpnC,UAAW,cAAU,GAC5Co/U,IAAW,CACPjB,GAAS,IACVsryB,EAAoBzpnC,UAAW,YAAQ,GAC1Co/U,IAAW,CACPjB,GAAS,IACVsryB,EAAoBzpnC,UAAW,WAAO,GACzCo/U,IAAW,CACPjB,IAAS,IACVsryB,EAAoBzpnC,UAAW,mBAAe,GACjDo/U,IAAW,CACPjB,GAAS,IACVsryB,EAAoBzpnC,UAAW,iBAAa,GAC/Co/U,IAAW,CACPjB,GAAS,IACVsryB,EAAoBzpnC,UAAW,gBAAY,GAC9Co/U,IAAW,CACPjB,GAAS,IACVsryB,EAAoBzpnC,UAAW,iBAAa,GAC/Co/U,IAAW,CACPjB,GAAS,IACVsryB,EAAoBzpnC,UAAW,gBAAY,GAC9Co/U,IAAW,CACPjB,IAAS,IACVsryB,EAAoBzpnC,UAAW,cAAU,GAC5Co/U,IAAW,CACPjB,GAAS,KACVsryB,EAAoBzpnC,UAAW,oBAAgB,GAClDo/U,IAAW,CACPjB,IAAS,IACVsryB,EAAoBzpnC,UAAW,yBAAqB,GACvDo/U,IAAW,CACPjB,GAAS,CAAC,UACXsryB,EAAoBzpnC,UAAW,2BAAuB,GACzDo/U,IAAW,CACPjB,IAAS,IACVsryB,EAAoBzpnC,UAAW,eAAW,EAEjD,CA5DyC,CA4DvCwjV,IA8CoC,SAAUrtS,GAE5C,SAASuzkC,IACL,OAAkB,OAAXvzkC,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAHAkmD,IAAUm0kC,EAAkBvzkC,GAI5BipS,IAAW,CACPjB,GAAS,CAAE50U,EAAG,EAAGC,EAAG,KACrBkgnC,EAAiB1pnC,UAAW,cAAU,GACzCo/U,IAAW,CACPjB,GAAS,IACVuryB,EAAiB1pnC,UAAW,kBAAc,GAC7Co/U,IAAW,CACPjB,GAAS,IACVuryB,EAAiB1pnC,UAAW,eAAW,GAC1Co/U,IAAW,CACPjB,GAAS,YACVuryB,EAAiB1pnC,UAAW,iBAAa,GAC5Co/U,IAAW,CACPjB,GAAS,YACVuryB,EAAiB1pnC,UAAW,mBAAe,GAC9Co/U,IAAW,CACPjB,GAAS,UACVuryB,EAAiB1pnC,UAAW,cAAU,GACzCo/U,IAAW,CACPjB,GAAS,MACVuryB,EAAiB1pnC,UAAW,iBAAa,GAC5Co/U,IAAW,CACPjB,GAAS,SACVuryB,EAAiB1pnC,UAAW,0BAAsB,GACrDo/U,IAAW,CACPjB,GAAS,SACVuryB,EAAiB1pnC,UAAW,wBAAoB,GACnDo/U,IAAW,CACPjB,GAAS,IACVuryB,EAAiB1pnC,UAAW,uBAAmB,GAClDo/U,IAAW,CACPjB,GAAS,KACVuryB,EAAiB1pnC,UAAW,kCAA8B,GAC7Do/U,IAAW,CACPjB,GAAS,IACVuryB,EAAiB1pnC,UAAW,iBAAa,GAC5Co/U,IAAW,CACPjB,GAAS,IACVuryB,EAAiB1pnC,UAAW,gBAAY,GAC3Co/U,IAAW,CACPjB,GAAS,IACVuryB,EAAiB1pnC,UAAW,iBAAa,GAC5Co/U,IAAW,CACPjB,GAAS,IACVuryB,EAAiB1pnC,UAAW,gBAAY,GAC3Co/U,IAAW,CACPjB,IAAS,IACVuryB,EAAiB1pnC,UAAW,cAAU,GACzCo/U,IAAW,CACPjB,GAAS,OACVuryB,EAAiB1pnC,UAAW,kBAAc,GAC7Co/U,IAAW,CACPjB,GAAS,KACVuryB,EAAiB1pnC,UAAW,oBAAgB,GAC/Co/U,IAAW,CACPjB,GAASmktB,IAAWzrtB,OACrB6yyB,EAAiB1pnC,UAAW,wBAAoB,GACnDo/U,IAAW,CACPjB,GAAS,CAAC,UACXuryB,EAAiB1pnC,UAAW,2BAAuB,GACtDo/U,IAAW,CACPjB,IAAS,IACVuryB,EAAiB1pnC,UAAW,eAAW,EAE9C,CArEsC,CAqEpCwjV,IA0CqC,SAAUrtS,GAE7C,SAASwzkC,IACL,OAAkB,OAAXxzkC,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAHAkmD,IAAUo0kC,EAAmBxzkC,GAI7BipS,IAAW,CACPjB,GAAS,CAAE50U,EAAG,EAAGC,EAAG,KACrBmgnC,EAAkB3pnC,UAAW,cAAU,GAC1Co/U,IAAW,CACPjB,GAAS,IACVwryB,EAAkB3pnC,UAAW,kBAAc,GAC9Co/U,IAAW,CACPjB,GAAS,IACVwryB,EAAkB3pnC,UAAW,eAAW,GAC3Co/U,IAAW,CACPjB,GAAS,cACVwryB,EAAkB3pnC,UAAW,iBAAa,GAC7Co/U,IAAW,CACPjB,GAAS,YACVwryB,EAAkB3pnC,UAAW,mBAAe,GAC/Co/U,IAAW,CACPjB,GAAS,UACVwryB,EAAkB3pnC,UAAW,cAAU,GAC1Co/U,IAAW,CACPjB,GAAS,MACVwryB,EAAkB3pnC,UAAW,iBAAa,GAC7Co/U,IAAW,CACPjB,GAAS,SACVwryB,EAAkB3pnC,UAAW,0BAAsB,GACtDo/U,IAAW,CACPjB,GAAS,SACVwryB,EAAkB3pnC,UAAW,wBAAoB,GACpDo/U,IAAW,CACPjB,GAAS,IACVwryB,EAAkB3pnC,UAAW,uBAAmB,GACnDo/U,IAAW,CACPjB,GAAS,IACVwryB,EAAkB3pnC,UAAW,iBAAa,GAC7Co/U,IAAW,CACPjB,GAAS,IACVwryB,EAAkB3pnC,UAAW,gBAAY,GAC5Co/U,IAAW,CACPjB,GAAS,IACVwryB,EAAkB3pnC,UAAW,iBAAa,GAC7Co/U,IAAW,CACPjB,GAAS,IACVwryB,EAAkB3pnC,UAAW,gBAAY,GAC5Co/U,IAAW,CACPjB,IAAS,IACVwryB,EAAkB3pnC,UAAW,cAAU,GAC1Co/U,IAAW,CACPjB,GAAS,KACVwryB,EAAkB3pnC,UAAW,kCAA8B,GAC9Do/U,IAAW,CACPjB,GAAS,CAAC,UACXwryB,EAAkB3pnC,UAAW,2BAAuB,GACvDo/U,IAAW,CACPjB,IAAS,IACVwryB,EAAkB3pnC,UAAW,eAAW,EAE/C,CA5DuC,CA4DrCwjV,IAwCgC,SAAUrtS,GAExC,SAASyzkC,IACL,OAAkB,OAAXzzkC,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAHAkmD,IAAUq0kC,EAAczzkC,GAIxBipS,IAAW,CACPjB,GAAS,CAAE50U,EAAG,EAAGC,EAAG,KACrBognC,EAAa5pnC,UAAW,cAAU,GACrCo/U,IAAW,CACPjB,GAAS,IACVyryB,EAAa5pnC,UAAW,kBAAc,GACzCo/U,IAAW,CACPjB,GAAS,IACVyryB,EAAa5pnC,UAAW,eAAW,GACtCo/U,IAAW,CACPjB,GAAS,cACVyryB,EAAa5pnC,UAAW,iBAAa,GACxCo/U,IAAW,CACPjB,GAAS,YACVyryB,EAAa5pnC,UAAW,mBAAe,GAC1Co/U,IAAW,CACPjB,GAAS,UACVyryB,EAAa5pnC,UAAW,cAAU,GACrCo/U,IAAW,CACPjB,GAAS,MACVyryB,EAAa5pnC,UAAW,iBAAa,GACxCo/U,IAAW,CACPjB,GAAS,IACVyryB,EAAa5pnC,UAAW,iBAAa,GACxCo/U,IAAW,CACPjB,GAAS,IACVyryB,EAAa5pnC,UAAW,gBAAY,GACvCo/U,IAAW,CACPjB,GAAS,IACVyryB,EAAa5pnC,UAAW,iBAAa,GACxCo/U,IAAW,CACPjB,GAAS,IACVyryB,EAAa5pnC,UAAW,gBAAY,GACvCo/U,IAAW,CACPjB,IAAS,IACVyryB,EAAa5pnC,UAAW,cAAU,GACrCo/U,IAAW,CACPjB,GAAS,KACVyryB,EAAa5pnC,UAAW,kCAA8B,GACzDo/U,IAAW,CACPjB,GAAS,CAAC,UACXyryB,EAAa5pnC,UAAW,2BAAuB,GAClDo/U,IAAW,CACPjB,IAAS,IACVyryB,EAAa5pnC,UAAW,eAAW,EAE1C,CAnDkC,CAmDhCwjV,IAwCkC,SAAUrtS,GAE1C,SAAS0zkC,IACL,OAAkB,OAAX1zkC,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAHAkmD,IAAUs0kC,EAAgB1zkC,GAI1BipS,IAAW,CACPjB,GAAS,CAAE50U,EAAG,EAAGC,EAAG,KACrBqgnC,EAAe7pnC,UAAW,cAAU,GACvCo/U,IAAW,CACPjB,GAAS,IACV0ryB,EAAe7pnC,UAAW,kBAAc,GAC3Co/U,IAAW,CACPjB,GAAS,MACV0ryB,EAAe7pnC,UAAW,aAAS,GACtCo/U,IAAW,CACPjB,GAAS,KACV0ryB,EAAe7pnC,UAAW,cAAU,GACvCo/U,IAAW,CACPjB,GAAS,IACV0ryB,EAAe7pnC,UAAW,eAAW,GACxCo/U,IAAW,CACPjB,GAAS,cACV0ryB,EAAe7pnC,UAAW,iBAAa,GAC1Co/U,IAAW,CACPjB,GAAS,YACV0ryB,EAAe7pnC,UAAW,mBAAe,GAC5Co/U,IAAW,CACPjB,GAAS,UACV0ryB,EAAe7pnC,UAAW,cAAU,GACvCo/U,IAAW,CACPjB,GAAS,MACV0ryB,EAAe7pnC,UAAW,iBAAa,GAC1Co/U,IAAW,CACPjB,GAAS,KACV0ryB,EAAe7pnC,UAAW,kCAA8B,GAC3Do/U,IAAW,CACPjB,GAAS,IACV0ryB,EAAe7pnC,UAAW,iBAAa,GAC1Co/U,IAAW,CACPjB,GAAS,IACV0ryB,EAAe7pnC,UAAW,gBAAY,GACzCo/U,IAAW,CACPjB,GAAS,IACV0ryB,EAAe7pnC,UAAW,iBAAa,GAC1Co/U,IAAW,CACPjB,GAAS,IACV0ryB,EAAe7pnC,UAAW,gBAAY,GACzCo/U,IAAW,CACPjB,IAAS,IACV0ryB,EAAe7pnC,UAAW,cAAU,GACvCo/U,IAAW,CACPjB,GAAS,OACV0ryB,EAAe7pnC,UAAW,kBAAc,GAC3Co/U,IAAW,CACPjB,GAAS,CAAC,UACX0ryB,EAAe7pnC,UAAW,2BAAuB,GACpDo/U,IAAW,CACPjB,IAAS,IACV0ryB,EAAe7pnC,UAAW,eAAW,EAE5C,CA5DoC,CA4DlCwjV,IAwCkC,SAAUrtS,GAE1C,SAAS2zkC,IACL,OAAkB,OAAX3zkC,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAHAkmD,IAAUu0kC,EAAgB3zkC,GAI1BipS,IAAW,CACPjB,GAAS,CAAE50U,EAAG,EAAGC,EAAG,KACrBsgnC,EAAe9pnC,UAAW,cAAU,GACvCo/U,IAAW,CACPjB,GAAS,IACV2ryB,EAAe9pnC,UAAW,kBAAc,GAC3Co/U,IAAW,CACPjB,GAAS,IACV2ryB,EAAe9pnC,UAAW,eAAW,GACxCo/U,IAAW,CACPjB,GAAS,cACV2ryB,EAAe9pnC,UAAW,iBAAa,GAC1Co/U,IAAW,CACPjB,GAAS,YACV2ryB,EAAe9pnC,UAAW,mBAAe,GAC5Co/U,IAAW,CACPjB,GAAS,UACV2ryB,EAAe9pnC,UAAW,cAAU,GACvCo/U,IAAW,CACPjB,GAAS,MACV2ryB,EAAe9pnC,UAAW,iBAAa,GAC1Co/U,IAAW,CACPjB,GAAS,IACV2ryB,EAAe9pnC,UAAW,iBAAa,GAC1Co/U,IAAW,CACPjB,GAAS,IACV2ryB,EAAe9pnC,UAAW,gBAAY,GACzCo/U,IAAW,CACPjB,GAAS,IACV2ryB,EAAe9pnC,UAAW,iBAAa,GAC1Co/U,IAAW,CACPjB,GAAS,IACV2ryB,EAAe9pnC,UAAW,gBAAY,GACzCo/U,IAAW,CACPjB,IAAS,IACV2ryB,EAAe9pnC,UAAW,cAAU,GACvCo/U,IAAW,CACPjB,GAAS,KACV2ryB,EAAe9pnC,UAAW,kCAA8B,GAC3Do/U,IAAW,CACPjB,GAAS,CAAC,UACX2ryB,EAAe9pnC,UAAW,2BAAuB,GACpDo/U,IAAW,CACPjB,IAAS,IACV2ryB,EAAe9pnC,UAAW,eAAW,EAE5C,CAnDoC,CAmDlCwjV,IAmCyC,SAAUrtS,GAEjD,SAAS4zkC,IACL,OAAkB,OAAX5zkC,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAHAkmD,IAAUw0kC,EAAuB5zkC,GAIjCipS,IAAW,CACPjB,GAAS,CAAE50U,EAAG,EAAGC,EAAG,KACrBugnC,EAAsB/pnC,UAAW,cAAU,GAC9Co/U,IAAW,CACPjB,GAAS,IACV4ryB,EAAsB/pnC,UAAW,kBAAc,GAClDo/U,IAAW,CACPjB,GAAS,IACV4ryB,EAAsB/pnC,UAAW,aAAS,GAC7Co/U,IAAW,CACPjB,GAAS,IACV4ryB,EAAsB/pnC,UAAW,cAAU,GAC9Co/U,IAAW,CACPjB,GAAS,IACV4ryB,EAAsB/pnC,UAAW,YAAQ,GAC5Co/U,IAAW,CACPjB,GAAS,IACV4ryB,EAAsB/pnC,UAAW,eAAW,GAC/Co/U,IAAW,CACPjB,GAAS,YACV4ryB,EAAsB/pnC,UAAW,mBAAe,GACnDo/U,IAAW,CACPjB,GAAS,IACV4ryB,EAAsB/pnC,UAAW,iBAAa,GACjDo/U,IAAW,CACPjB,GAAS,KACV4ryB,EAAsB/pnC,UAAW,kCAA8B,GAClEo/U,IAAW,CACPjB,IAAS,IACV4ryB,EAAsB/pnC,UAAW,cAAU,GAC9Co/U,IAAW,CACPjB,GAAS,UACV4ryB,EAAsB/pnC,UAAW,cAAU,GAC9Co/U,IAAW,CACPjB,GAAS,CAAC,UACX4ryB,EAAsB/pnC,UAAW,2BAAuB,GAC3Do/U,IAAW,CACPjB,GAAS,OACV4ryB,EAAsB/pnC,UAAW,kBAAc,GAClDo/U,IAAW,CACPjB,IAAS,IACV4ryB,EAAsB/pnC,UAAW,eAAW,EAEnD,CAhD2C,CAgDzCwjV,IAiCuC,SAAUrtS,GAE/C,SAAS6zkC,IACL,OAAkB,OAAX7zkC,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAHAkmD,IAAUy0kC,EAAqB7zkC,GAI/BipS,IAAW,CACPjB,GAAS,CAAE50U,EAAG,EAAGC,EAAG,KACrBwgnC,EAAoBhqnC,UAAW,cAAU,GAC5Co/U,IAAW,CACPjB,GAAS,IACV6ryB,EAAoBhqnC,UAAW,kBAAc,GAChDo/U,IAAW,CACPjB,GAAS,UACV6ryB,EAAoBhqnC,UAAW,cAAU,GAC5Co/U,IAAW,CACPjB,GAAS,IACV6ryB,EAAoBhqnC,UAAW,eAAW,GAC7Co/U,IAAW,CACPjB,GAAS,KACV6ryB,EAAoBhqnC,UAAW,kCAA8B,GAChEo/U,IAAW,CACPjB,GAAS,OACV6ryB,EAAoBhqnC,UAAW,kBAAc,GAChDo/U,IAAW,CACPjB,IAAS,IACV6ryB,EAAoBhqnC,UAAW,cAAU,GAC5Co/U,IAAW,CACPjB,GAAS,CAAC,UACX6ryB,EAAoBhqnC,UAAW,2BAAuB,GACzDo/U,IAAW,CACPjB,IAAS,IACV6ryB,EAAoBhqnC,UAAW,eAAW,EAEjD,CAjCyC,CAiCvCwjV,IAqBuC,SAAUrtS,GAE/C,SAAS8zkC,IACL,OAAkB,OAAX9zkC,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAHAkmD,IAAU00kC,EAAqB9zkC,GAI/BipS,IAAW,CACPjB,GAAS,IACV8ryB,EAAoBjqnC,UAAW,kBAAc,GAChDo/U,IAAW,CACPjB,GAAS,OACV8ryB,EAAoBjqnC,UAAW,sBAAkB,GACpDo/U,IAAW,CACPjB,GAAS,OACV8ryB,EAAoBjqnC,UAAW,mBAAe,GACjDo/U,IAAW,CACPjB,GAAS,KACV8ryB,EAAoBjqnC,UAAW,aAAS,EAE/C,CAlByC,CAkBvCwjV,IAmDoC,SAAUrtS,GAE5C,SAAS+zkC,IACL,OAAkB,OAAX/zkC,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAHAkmD,IAAU20kC,EAAkB/zkC,GAI5BipS,IAAW,CACPjB,GAAS,CAAE50U,EAAG,EAAGC,EAAG,KACrB0gnC,EAAiBlqnC,UAAW,cAAU,GACzCo/U,IAAW,CACPjB,GAAS,IACV+ryB,EAAiBlqnC,UAAW,kBAAc,GAC7Co/U,IAAW,CACPjB,GAAS,IACV+ryB,EAAiBlqnC,UAAW,eAAW,GAC1Co/U,IAAW,CACPjB,GAAS,cACV+ryB,EAAiBlqnC,UAAW,mBAAe,GAC9Co/U,IAAW,CACPjB,GAAS,IACV+ryB,EAAiBlqnC,UAAW,mBAAe,GAC9Co/U,IAAW,CACPjB,GAAS,UACV+ryB,EAAiBlqnC,UAAW,mBAAe,GAC9Co/U,IAAW,CACPjB,GAAS,UACV+ryB,EAAiBlqnC,UAAW,cAAU,GACzCo/U,IAAW,CACPjB,GAAS,cACV+ryB,EAAiBlqnC,UAAW,iBAAa,GAC5Co/U,IAAW,CACPjB,GAAS,KACV+ryB,EAAiBlqnC,UAAW,gBAAY,GAC3Co/U,IAAW,CACPjB,GAAS,MACV+ryB,EAAiBlqnC,UAAW,aAAS,GACxCo/U,IAAW,CACPjB,GAAS,OACV+ryB,EAAiBlqnC,UAAW,cAAU,GACzCo/U,IAAW,CACPjB,GAAS,SACV+ryB,EAAiBlqnC,UAAW,iBAAa,GAC5Co/U,IAAW,CACPjB,GAAS,cACV+ryB,EAAiBlqnC,UAAW,kBAAc,GAC7Co/U,IAAW,CACPjB,GAAS,aACV+ryB,EAAiBlqnC,UAAW,mBAAe,GAC9Co/U,IAAW,CACPjB,GAAS,SACV+ryB,EAAiBlqnC,UAAW,iBAAa,GAC5Co/U,IAAW,CACPjB,GAAS,SACV+ryB,EAAiBlqnC,UAAW,qBAAiB,GAChDo/U,IAAW,CACPjB,IAAS,IACV+ryB,EAAiBlqnC,UAAW,yBAAqB,GACpDo/U,IAAW,CACPjB,GAAS,KACV+ryB,EAAiBlqnC,UAAW,kCAA8B,GAC7Do/U,IAAW,CACPjB,GAAS,IACV+ryB,EAAiBlqnC,UAAW,iBAAa,GAC5Co/U,IAAW,CACPjB,GAAS,IACV+ryB,EAAiBlqnC,UAAW,gBAAY,GAC3Co/U,IAAW,CACPjB,GAAS,IACV+ryB,EAAiBlqnC,UAAW,iBAAa,GAC5Co/U,IAAW,CACPjB,GAAS,IACV+ryB,EAAiBlqnC,UAAW,gBAAY,GAC3Co/U,IAAW,CACPjB,IAAS,IACV+ryB,EAAiBlqnC,UAAW,cAAU,GACzCo/U,IAAW,CACPjB,GAAS,OACV+ryB,EAAiBlqnC,UAAW,kBAAc,GAC7Co/U,IAAW,CACPjB,GAAS,CAAC,UACX+ryB,EAAiBlqnC,UAAW,2BAAuB,GACtDo/U,IAAW,CACPjB,IAAS,IACV+ryB,EAAiBlqnC,UAAW,eAAW,GAC1Co/U,IAAW,CACPjB,IAAS,IACV+ryB,EAAiBlqnC,UAAW,kBAAc,GAC7Co/U,IAAW,CACPjB,IAAS,IACV+ryB,EAAiBlqnC,UAAW,qBAAiB,EAEpD,CA1FsC,CA0FpCwjV,IA0B8C,SAAUrtS,GAEtD,SAASgxjC,IACL,OAAkB,OAAXhxjC,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAHAkmD,IAAU4xjC,EAA4BhxjC,GAItCipS,IAAW,CACPjB,GAAS,KACVgpxB,EAA2BnnmC,UAAW,4BAAwB,GACjEo/U,IAAW,CACPjB,GAAS,UACVgpxB,EAA2BnnmC,UAAW,0BAAsB,GAC/Do/U,IAAW,CACPjB,GAAS,YACVgpxB,EAA2BnnmC,UAAW,wBAAoB,GAC7Do/U,IAAW,CACPjB,GAAS,IACVgpxB,EAA2BnnmC,UAAW,mBAAe,GACxDo/U,IAAW,CACPjB,GAAS,IACVgpxB,EAA2BnnmC,UAAW,gCAA4B,GACrEo/U,IAAW,CACPjB,GAAS,WACVgpxB,EAA2BnnmC,UAAW,oBAAgB,GACzDo/U,IAAW,CACPjB,GAAS,KACVgpxB,EAA2BnnmC,UAAW,6BAAyB,GAClEo/U,IAAW,CACPjB,GAASiktB,IAA0B+nF,QAAU/nF,IAA0BgoF,QACxEjjB,EAA2BnnmC,UAAW,uBAAmB,GAC5Do/U,IAAW,CACPjB,GAAS,OACVgpxB,EAA2BnnmC,UAAW,yBAAqB,EAElE,CAjCgD,CAiC9CwjV,IAmB2C,SAAUrtS,GAEnD,SAASk0kC,IACL,OAAkB,OAAXl0kC,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAHAkmD,IAAU80kC,EAAyBl0kC,GAInCipS,IAAW,CACPjB,GAAS,YACVksyB,EAAwBrqnC,UAAW,4BAAwB,GAC9Do/U,IAAW,CACPjB,GAAS,YACVksyB,EAAwBrqnC,UAAW,mBAAe,EAEzD,CAZ6C,CAY3CwjV,IA+CgD,SAAUrtS,GAExD,SAASm0kC,IACL,OAAkB,OAAXn0kC,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAHAkmD,IAAU+0kC,EAA8Bn0kC,GAIxCipS,IAAW,CACPjB,GAAS,IACVmsyB,EAA6BtqnC,UAAW,eAAW,GACtDo/U,IAAW,CACPjB,GAAS,YACVmsyB,EAA6BtqnC,UAAW,mBAAe,GAC1Do/U,IAAW,CACPjB,GAAS,IACVmsyB,EAA6BtqnC,UAAW,iBAAa,GACxDo/U,IAAW,CACPjB,GAAS,MACVmsyB,EAA6BtqnC,UAAW,aAAS,GACpDo/U,IAAW,CACPjB,GAAS,MACVmsyB,EAA6BtqnC,UAAW,cAAU,GACrDo/U,IAAW,CACPjB,GAAS,IACVmsyB,EAA6BtqnC,UAAW,0BAAsB,GACjEo/U,IAAW,CACPjB,GAAS,IACVmsyB,EAA6BtqnC,UAAW,wBAAoB,GAC/Do/U,IAAW,CACPjB,GAAS,KACVmsyB,EAA6BtqnC,UAAW,qBAAiB,GAC5Do/U,IAAW,CACPjB,MACDmsyB,EAA6BtqnC,UAAW,0BAAsB,GACjEo/U,IAAW,CACPjB,GAAS,KACVmsyB,EAA6BtqnC,UAAW,kCAA8B,GACzEo/U,IAAW,CACPjB,MACDmsyB,EAA6BtqnC,UAAW,+BAA2B,GACtEo/U,IAAW,CACPjB,MACDmsyB,EAA6BtqnC,UAAW,6BAAyB,EAExE,CA1CkD,CA0ChDwjV,IA0BsC,SAAUrtS,GAE9C,SAASixjC,IACL,OAAkB,OAAXjxjC,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAHAkmD,IAAU6xjC,EAAoBjxjC,GAI9BipS,IAAW,CACPjB,GAAS,UACVipxB,EAAmBpnmC,UAAW,cAAU,GAC3Co/U,IAAW,CACPjB,GAAS,IACVipxB,EAAmBpnmC,UAAW,iBAAa,GAC9Co/U,IAAW,CACPjB,GAAS,IACVipxB,EAAmBpnmC,UAAW,gBAAY,GAC7Co/U,IAAW,CACPjB,GAAS,IACVipxB,EAAmBpnmC,UAAW,iBAAa,GAC9Co/U,IAAW,CACPjB,GAAS,IACVipxB,EAAmBpnmC,UAAW,gBAAY,GAC7Co/U,IAAW,CACPjB,IAAS,IACVipxB,EAAmBpnmC,UAAW,cAAU,GAC3Co/U,IAAW,CACPjB,IAAS,IACVipxB,EAAmBpnmC,UAAW,iBAAa,GAC9Co/U,IAAW,CACPjB,IAAS,IACVipxB,EAAmBpnmC,UAAW,oBAAgB,GACjDo/U,IAAW,CACPjB,GAAS,OACVipxB,EAAmBpnmC,UAAW,kBAAc,GAC/Co/U,IAAW,CACPjB,GAAS,CAAC,UACXipxB,EAAmBpnmC,UAAW,2BAAuB,EAE5D,CApCwC,CAoCtCwjV,IAKkD,SAAUrtS,GAE1D,SAASo0kC,IACL,OAAkB,OAAXp0kC,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAHAkmD,IAAUg1kC,EAAgCp0kC,GAI1CipS,IAAW,CACPjB,MACDosyB,EAA+BvqnC,UAAW,gBAAY,GACzDo/U,IAAW,CACPjB,MACDosyB,EAA+BvqnC,UAAW,gBAAY,GACzDo/U,IAAW,CACPjB,MACDosyB,EAA+BvqnC,UAAW,gBAAY,EAE7D,CAfoD,CAelDwjV,IAKoC,SAAUrtS,GAE5C,SAASq0kC,IACL,OAAkB,OAAXr0kC,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAHAkmD,IAAUi1kC,EAAkBr0kC,GAI5BipS,IAAW,CACPjB,MACDqsyB,EAAiBxqnC,UAAW,cAAU,GACzCo/U,IAAW,CACPjB,MACDqsyB,EAAiBxqnC,UAAW,YAAQ,EAE3C,CAZsC,CAYpCwjV,IAKmC,SAAUrtS,GAE3C,SAASs0kC,IACL,OAAkB,OAAXt0kC,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAHAkmD,IAAUk1kC,EAAiBt0kC,GAI3BipS,IAAW,CACPjB,MACDssyB,EAAgBzqnC,UAAW,YAAQ,GACtCo/U,IAAW,CACPjB,MACDssyB,EAAgBzqnC,UAAW,SAAK,GACnCo/U,IAAW,CACPjB,MACDssyB,EAAgBzqnC,UAAW,SAAK,GACnCo/U,IAAW,CACPjB,MACDssyB,EAAgBzqnC,UAAW,aAAS,GACvCo/U,IAAW,CACPjB,MACDssyB,EAAgBzqnC,UAAW,cAAU,GACxCo/U,IAAW,CACPjB,MACDssyB,EAAgBzqnC,UAAW,YAAQ,GACtCo/U,IAAW,CACPjB,MACDssyB,EAAgBzqnC,UAAW,WAAO,GACrCo/U,IAAW,CACPjB,MACDssyB,EAAgBzqnC,UAAW,aAAS,GACvCo/U,IAAW,CACPjB,MACDssyB,EAAgBzqnC,UAAW,cAAU,GACxCo/U,IAAW,CACPjB,MACDssyB,EAAgBzqnC,UAAW,eAAW,EAE7C,CApCqC,CAoCnCwjV,IAoByC,SAAUrtS,GAEjD,SAASu0kC,IACL,OAAkB,OAAXv0kC,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAHAkmD,IAAUm1kC,EAAuBv0kC,GAIjCipS,IAAW,CACPjB,IAAS,IACVusyB,EAAsB1qnC,UAAW,2BAAuB,GAC3Do/U,IAAW,CACPjB,GAAS,IACVusyB,EAAsB1qnC,UAAW,SAAK,GACzCo/U,IAAW,CACPjB,GAAS,IACVusyB,EAAsB1qnC,UAAW,SAAK,EAE7C,CAf2C,CAezCwjV,IAkBkC,SAAUrtS,GAE1C,SAASw0kC,IACL,OAAkB,OAAXx0kC,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAHAkmD,IAAUo1kC,EAAgBx0kC,GAI1BipS,IAAW,CACPjB,GAAS,MACVwsyB,EAAe3qnC,UAAW,oCAAgC,EAEjE,CAToC,CASlCwjV,IAK6B,SAAUrtS,GAErC,SAASohjC,IACL,OAAkB,OAAXphjC,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAHAkmD,IAAUgijC,EAAWphjC,GAIrBipS,IAAW,CACPjB,GAAS,KACVo5wB,EAAUv3lC,UAAW,YAAQ,GAChCo/U,IAAW,CACPjB,IAAS,IACVo5wB,EAAUv3lC,UAAW,iBAAa,GACrCo/U,IAAW,CACPjB,IAAS,IACVo5wB,EAAUv3lC,UAAW,kBAAc,GACtCo/U,IAAW,CACPjB,GAAS,KACVo5wB,EAAUv3lC,UAAW,UAAM,GAC9Bo/U,IAAW,CACPjB,GAAS,KACVo5wB,EAAUv3lC,UAAW,aAAS,GACjCo/U,IAAW,CACPjB,GAAS,KACVo5wB,EAAUv3lC,UAAW,YAAQ,GAChCo/U,IAAW,CACPjB,IAAS,IACVo5wB,EAAUv3lC,UAAW,kBAAc,GACtCo/U,IAAW,CACPjB,GAAS,CAAC,MACXo5wB,EAAUv3lC,UAAW,qBAAiB,GACzCo/U,IAAW,CACPjB,GAAS,KACVo5wB,EAAUv3lC,UAAW,gBAAY,GACpCo/U,IAAW,CACPjB,GAAS,CAAE50U,EAAG,EAAGC,EAAG,EAAGqE,MAAO,EAAGoqI,OAAQ,KAC1Cs/8B,EAAUv3lC,UAAW,cAAU,GAClCo/U,IAAW,CACPjB,GAAS,cACVo5wB,EAAUv3lC,UAAW,kBAAc,GACtCo/U,IAAW,CACPjB,GAAS,KACVo5wB,EAAUv3lC,UAAW,gBAAY,GACpCo/U,IAAW,CACPjB,GAAS,SACVo5wB,EAAUv3lC,UAAW,iBAAa,GACrCo/U,IAAW,CACPjB,GAAS,UACVo5wB,EAAUv3lC,UAAW,aAAS,GACjCo/U,IAAW,CACPjB,GAAS,UACVo5wB,EAAUv3lC,UAAW,uBAAmB,GAC3Co/U,IAAW,CACPjB,GAAS,SACVo5wB,EAAUv3lC,UAAW,iBAAa,GACrCo/U,IAAW,CACPjB,GAAS,YACVo5wB,EAAUv3lC,UAAW,kBAAc,GACtCo/U,IAAW,CACPjB,GAAS,IACVo5wB,EAAUv3lC,UAAW,iBAAa,GACrCo/U,IAAW,CACPjB,IAAS,IACVo5wB,EAAUv3lC,UAAW,kBAAc,GACtCo/U,IAAW,CACPjB,IAAS,IACVo5wB,EAAUv3lC,UAAW,eAAW,GACnCo/U,IAAW,CACPjB,GAAS,KACVo5wB,EAAUv3lC,UAAW,eAAW,GACnCo/U,IAAW,CACPjB,GAAS,KACVo5wB,EAAUv3lC,UAAW,eAAW,GACnCo/U,IAAW,CACPjB,MACDo5wB,EAAUv3lC,UAAW,kCAA8B,GACtDo/U,IAAW,CACPjB,GAAS,IACVo5wB,EAAUv3lC,UAAW,iBAAa,GACrCo/U,IAAW,CACPjB,GAAS,YACVo5wB,EAAUv3lC,UAAW,mBAAe,GACvCo/U,IAAW,CACPjB,IAAS,IACVo5wB,EAAUv3lC,UAAW,mBAAe,GACvCo/U,IAAW,CACPjB,IAAS,IACVo5wB,EAAUv3lC,UAAW,oBAAgB,GACxCo/U,IAAW,CACPjB,IAAU,IACXo5wB,EAAUv3lC,UAAW,iBAAa,EAEzC,CA1F+B,CA0F7BwjV,IA8BuC,SAAUrtS,GAE/C,SAASgid,IACL,OAAkB,OAAXhid,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAHAkmD,IAAU4id,EAAqBhid,GAI/BipS,IAAW,CACPjB,GAAS,eACVg6K,EAAoBn4f,UAAW,yBAAqB,GACvDo/U,IAAW,CACPjB,GAAS,KACVg6K,EAAoBn4f,UAAW,wBAAoB,EAE1D,CAZyC,CAYvCwjV,IAkCqC,SAAUrtS,GAE7C,SAASy0kC,IACL,OAAkB,OAAXz0kC,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAHAkmD,IAAUq1kC,EAAmBz0kC,GAI7BipS,IAAW,CACPjB,GAAS,CAAE50U,EAAG,EAAGC,EAAG,EAAGqE,MAAO,EAAGoqI,OAAQ,KAC1C2y+B,EAAkB5qnC,UAAW,cAAU,GAC1Co/U,IAAW,CACPjB,GAAS,KACVysyB,EAAkB5qnC,UAAW,YAAQ,GACxCo/U,IAAW,CACPjB,GAAS,KACVysyB,EAAkB5qnC,UAAW,aAAS,GACzCo/U,IAAW,CACPjB,GAAS,cACVysyB,EAAkB5qnC,UAAW,kBAAc,GAC9Co/U,IAAW,CACPjB,GAAS,KACVysyB,EAAkB5qnC,UAAW,gBAAY,GAC5Co/U,IAAW,CACPjB,GAAS,IACVysyB,EAAkB5qnC,UAAW,kBAAc,GAC9Co/U,IAAW,CACPjB,GAAS,SACVysyB,EAAkB5qnC,UAAW,iBAAa,GAC7Co/U,IAAW,CACPjB,GAAS,UACVysyB,EAAkB5qnC,UAAW,aAAS,GACzCo/U,IAAW,CACPjB,GAAS,UACVysyB,EAAkB5qnC,UAAW,uBAAmB,GACnDo/U,IAAW,CACPjB,GAAS,SACVysyB,EAAkB5qnC,UAAW,iBAAa,GAC7Co/U,IAAW,CACPjB,IAAS,IACVysyB,EAAkB5qnC,UAAW,kBAAc,GAC9Co/U,IAAW,CACPjB,GAAS,YACVysyB,EAAkB5qnC,UAAW,kBAAc,GAC9Co/U,IAAW,CACPjB,GAAS,IACVysyB,EAAkB5qnC,UAAW,iBAAa,GAC7Co/U,IAAW,CACPjB,IAAS,IACVysyB,EAAkB5qnC,UAAW,kBAAc,GAC9Co/U,IAAW,CACPjB,IAAS,IACVysyB,EAAkB5qnC,UAAW,eAAW,GAC3Co/U,IAAW,CACPjB,GAAS,KACVysyB,EAAkB5qnC,UAAW,eAAW,GAC3Co/U,IAAW,CACPjB,GAAS,IACVysyB,EAAkB5qnC,UAAW,iBAAa,GAC7Co/U,IAAW,CACPjB,GAAS,YACVysyB,EAAkB5qnC,UAAW,mBAAe,GAC/Co/U,IAAW,CACPjB,IAAS,IACVysyB,EAAkB5qnC,UAAW,mBAAe,EAEnD,CA/DuC,CA+DrCwjV,IAiCyC,SAAUrtS,GAEjD,SAAS00kC,IACL,OAAkB,OAAX10kC,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAHAkmD,IAAUs1kC,EAAuB10kC,GAIjCipS,IAAW,CACPjB,GAAS,CAAE50U,EAAG,EAAGC,EAAG,EAAGqE,MAAO,EAAGoqI,OAAQ,KAC1C4y+B,EAAsB7qnC,UAAW,cAAU,GAC9Co/U,IAAW,CACPjB,GAAS,KACV0syB,EAAsB7qnC,UAAW,YAAQ,GAC5Co/U,IAAW,CACPjB,GAAS,KACV0syB,EAAsB7qnC,UAAW,aAAS,GAC7Co/U,IAAW,CACPjB,GAAS,IACV0syB,EAAsB7qnC,UAAW,kBAAc,GAClDo/U,IAAW,CACPjB,GAAS,cACV0syB,EAAsB7qnC,UAAW,kBAAc,GAClDo/U,IAAW,CACPjB,GAAS,KACV0syB,EAAsB7qnC,UAAW,gBAAY,GAChDo/U,IAAW,CACPjB,GAAS,SACV0syB,EAAsB7qnC,UAAW,iBAAa,GACjDo/U,IAAW,CACPjB,GAAS,UACV0syB,EAAsB7qnC,UAAW,aAAS,GAC7Co/U,IAAW,CACPjB,GAAS,UACV0syB,EAAsB7qnC,UAAW,uBAAmB,GACvDo/U,IAAW,CACPjB,GAAS,SACV0syB,EAAsB7qnC,UAAW,iBAAa,GACjDo/U,IAAW,CACPjB,IAAS,IACV0syB,EAAsB7qnC,UAAW,kBAAc,GAClDo/U,IAAW,CACPjB,GAAS,YACV0syB,EAAsB7qnC,UAAW,kBAAc,GAClDo/U,IAAW,CACPjB,GAAS,IACV0syB,EAAsB7qnC,UAAW,iBAAa,GACjDo/U,IAAW,CACPjB,IAAS,IACV0syB,EAAsB7qnC,UAAW,kBAAc,GAClDo/U,IAAW,CACPjB,IAAS,IACV0syB,EAAsB7qnC,UAAW,eAAW,GAC/Co/U,IAAW,CACPjB,GAAS,KACV0syB,EAAsB7qnC,UAAW,eAAW,GAC/Co/U,IAAW,CACPjB,GAAS,IACV0syB,EAAsB7qnC,UAAW,iBAAa,GACjDo/U,IAAW,CACPjB,GAAS,YACV0syB,EAAsB7qnC,UAAW,mBAAe,EAEvD,CA5D2C,CA4DzCwjV,IA2ByC,SAAUrtS,GAEjD,SAAS20kC,IACL,OAAkB,OAAX30kC,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAHAkmD,IAAUu1kC,EAAuB30kC,GAIjCipS,IAAW,CACPjB,GAAS,CAAE50U,EAAG,EAAGC,EAAG,EAAGqE,MAAO,EAAGoqI,OAAQ,KAC1C6y+B,EAAsB9qnC,UAAW,cAAU,GAC9Co/U,IAAW,CACPjB,GAAS,KACV2syB,EAAsB9qnC,UAAW,YAAQ,GAC5Co/U,IAAW,CACPjB,IAAS,IACV2syB,EAAsB9qnC,UAAW,iBAAa,GACjDo/U,IAAW,CACPjB,GAAS,UACV2syB,EAAsB9qnC,UAAW,uBAAmB,GACvDo/U,IAAW,CACPjB,IAAS,IACV2syB,EAAsB9qnC,UAAW,kBAAc,GAClDo/U,IAAW,CACPjB,GAAS,YACV2syB,EAAsB9qnC,UAAW,kBAAc,GAClDo/U,IAAW,CACPjB,IAAS,IACV2syB,EAAsB9qnC,UAAW,eAAW,GAC/Co/U,IAAW,CACPjB,GAAS,IACV2syB,EAAsB9qnC,UAAW,kBAAc,GAClDo/U,IAAW,CACPjB,GAAS,KACV2syB,EAAsB9qnC,UAAW,eAAW,GAC/Co/U,IAAW,CACPjB,IAAS,IACV2syB,EAAsB9qnC,UAAW,kBAAc,GAClDo/U,IAAW,CACPjB,GAAS,IACV2syB,EAAsB9qnC,UAAW,iBAAa,GACjDo/U,IAAW,CACPjB,GAAS,YACV2syB,EAAsB9qnC,UAAW,mBAAe,EAEvD,CA1C2C,CA0CzCwjV,IA2B4C,SAAUrtS,GAEpD,SAAS40kC,IACL,OAAkB,OAAX50kC,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAHAkmD,IAAUw1kC,EAA0B50kC,GAIpCipS,IAAW,CACPjB,GAAS,CAAE50U,EAAG,EAAGC,EAAG,EAAGqE,MAAO,EAAGoqI,OAAQ,KAC1C8y+B,EAAyB/qnC,UAAW,cAAU,GACjDo/U,IAAW,CACPjB,GAAS,KACV4syB,EAAyB/qnC,UAAW,YAAQ,GAC/Co/U,IAAW,CACPjB,IAAS,IACV4syB,EAAyB/qnC,UAAW,kBAAc,GACrDo/U,IAAW,CACPjB,GAAS,UACV4syB,EAAyB/qnC,UAAW,uBAAmB,GAC1Do/U,IAAW,CACPjB,IAAS,IACV4syB,EAAyB/qnC,UAAW,kBAAc,GACrDo/U,IAAW,CACPjB,IAAS,IACV4syB,EAAyB/qnC,UAAW,kBAAc,GACrDo/U,IAAW,CACPjB,GAAS,IACV4syB,EAAyB/qnC,UAAW,kBAAc,GACrDo/U,IAAW,CACPjB,GAAS,YACV4syB,EAAyB/qnC,UAAW,kBAAc,GACrDo/U,IAAW,CACPjB,IAAS,IACV4syB,EAAyB/qnC,UAAW,eAAW,GAClDo/U,IAAW,CACPjB,GAAS,KACV4syB,EAAyB/qnC,UAAW,eAAW,GAClDo/U,IAAW,CACPjB,GAAS,IACV4syB,EAAyB/qnC,UAAW,iBAAa,GACpDo/U,IAAW,CACPjB,GAAS,YACV4syB,EAAyB/qnC,UAAW,mBAAe,EAE1D,CA1C8C,CA0C5CwjV,IA2ByC,SAAUrtS,GAEjD,SAAS60kC,IACL,OAAkB,OAAX70kC,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAHAkmD,IAAUy1kC,EAAuB70kC,GAIjCipS,IAAW,CACPjB,GAAS,CAAE50U,EAAG,EAAGC,EAAG,EAAGqE,MAAO,EAAGoqI,OAAQ,KAC1C+y+B,EAAsBhrnC,UAAW,cAAU,GAC9Co/U,IAAW,CACPjB,GAAS,KACV6syB,EAAsBhrnC,UAAW,YAAQ,GAC5Co/U,IAAW,CACPjB,GAAS,KACV6syB,EAAsBhrnC,UAAW,aAAS,GAC7Co/U,IAAW,CACPjB,GAAS,cACV6syB,EAAsBhrnC,UAAW,kBAAc,GAClDo/U,IAAW,CACPjB,GAAS,KACV6syB,EAAsBhrnC,UAAW,gBAAY,GAChDo/U,IAAW,CACPjB,GAAS,IACV6syB,EAAsBhrnC,UAAW,kBAAc,GAClDo/U,IAAW,CACPjB,GAAS,SACV6syB,EAAsBhrnC,UAAW,iBAAa,GACjDo/U,IAAW,CACPjB,GAAS,UACV6syB,EAAsBhrnC,UAAW,aAAS,GAC7Co/U,IAAW,CACPjB,GAAS,UACV6syB,EAAsBhrnC,UAAW,uBAAmB,GACvDo/U,IAAW,CACPjB,GAAS,SACV6syB,EAAsBhrnC,UAAW,iBAAa,GACjDo/U,IAAW,CACPjB,IAAS,IACV6syB,EAAsBhrnC,UAAW,kBAAc,GAClDo/U,IAAW,CACPjB,GAAS,YACV6syB,EAAsBhrnC,UAAW,kBAAc,GAClDo/U,IAAW,CACPjB,IAAS,IACV6syB,EAAsBhrnC,UAAW,kBAAc,GAClDo/U,IAAW,CACPjB,IAAS,IACV6syB,EAAsBhrnC,UAAW,eAAW,GAC/Co/U,IAAW,CACPjB,GAAS,KACV6syB,EAAsBhrnC,UAAW,eAAW,GAC/Co/U,IAAW,CACPjB,GAAS,KACV6syB,EAAsBhrnC,UAAW,eAAW,GAC/Co/U,IAAW,CACPjB,GAAS,IACV6syB,EAAsBhrnC,UAAW,iBAAa,GACjDo/U,IAAW,CACPjB,GAAS,YACV6syB,EAAsBhrnC,UAAW,mBAAe,EAEvD,CA5D2C,CA4DzCwjV,IAgCwC,SAAUrtS,GAEhD,SAAS80kC,IACL,OAAkB,OAAX90kC,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAHAkmD,IAAU01kC,EAAsB90kC,GAIhCipS,IAAW,CACPjB,GAAS,CAAE50U,EAAG,EAAGC,EAAG,EAAGqE,MAAO,EAAGoqI,OAAQ,KAC1Cgz+B,EAAqBjrnC,UAAW,cAAU,GAC7Co/U,IAAW,CACPjB,GAAS,KACV8syB,EAAqBjrnC,UAAW,YAAQ,GAC3Co/U,IAAW,CACPjB,GAAS,KACV8syB,EAAqBjrnC,UAAW,aAAS,GAC5Co/U,IAAW,CACPjB,GAAS,cACV8syB,EAAqBjrnC,UAAW,kBAAc,GACjDo/U,IAAW,CACPjB,GAAS,KACV8syB,EAAqBjrnC,UAAW,gBAAY,GAC/Co/U,IAAW,CACPjB,GAAS,IACV8syB,EAAqBjrnC,UAAW,kBAAc,GACjDo/U,IAAW,CACPjB,GAAS,SACV8syB,EAAqBjrnC,UAAW,iBAAa,GAChDo/U,IAAW,CACPjB,GAAS,UACV8syB,EAAqBjrnC,UAAW,aAAS,GAC5Co/U,IAAW,CACPjB,GAAS,UACV8syB,EAAqBjrnC,UAAW,uBAAmB,GACtDo/U,IAAW,CACPjB,GAAS,SACV8syB,EAAqBjrnC,UAAW,iBAAa,GAChDo/U,IAAW,CACPjB,IAAS,IACV8syB,EAAqBjrnC,UAAW,kBAAc,GACjDo/U,IAAW,CACPjB,GAAS,YACV8syB,EAAqBjrnC,UAAW,kBAAc,GACjDo/U,IAAW,CACPjB,IAAS,IACV8syB,EAAqBjrnC,UAAW,kBAAc,GACjDo/U,IAAW,CACPjB,IAAS,IACV8syB,EAAqBjrnC,UAAW,eAAW,GAC9Co/U,IAAW,CACPjB,GAAS,KACV8syB,EAAqBjrnC,UAAW,eAAW,GAC9Co/U,IAAW,CACPjB,GAAS,KACV8syB,EAAqBjrnC,UAAW,eAAW,GAC9Co/U,IAAW,CACPjB,GAAS,IACV8syB,EAAqBjrnC,UAAW,iBAAa,GAChDo/U,IAAW,CACPjB,GAAS,YACV8syB,EAAqBjrnC,UAAW,mBAAe,EAEtD,CA5D0C,CA4DxCwjV,IAEwB,SAAUrtS,GAEhC,SAAS+xe,IACL,OAAkB,OAAX/xe,GAAmBA,EAAO3tC,MAAMnZ,KAAMmD,YAAcnD,IAC/D,CAHAkmD,IAAU2ye,EAAM/xe,GAIhBipS,IAAW,CACPjB,GAAS,KACV+pM,EAAKlohB,UAAW,gBAAY,GAC/Bo/U,IAAW,CACPjB,GAAS,KACV+pM,EAAKlohB,UAAW,iBAAa,EAEpC,CAZ0B,CAYxBwjV,IAY6B,SAAUrtS,GAErC,SAASkykC,EAAUl6mC,EAAS3J,GACxB,IAAI7V,EAAQwnD,EAAOnnD,KAAKK,KAAM8e,EAAS3J,IAAYnV,KAgRnD,OAxQAV,EAAM8njC,oBAAsB,GAO5B9njC,EAAM6+d,SAAW,KAIjB7+d,EAAMqvI,QAAU,EAIhBrvI,EAAMylxB,UAAY,CAAC,EAEnBzlxB,EAAM4nJ,cAAgB,CAAC,EAIvB5nJ,EAAM03lC,YAAc,GACpB13lC,EAAMu8nC,wBAAyB,EAI/Bv8nC,EAAMiokC,aAAe,GAIrBjokC,EAAMi+mC,uBAAyB,GAE/Bj+mC,EAAMk1Y,cAAgB,CAClB,UAAa,aACb,OAAU,SACV,gBAAiB,gBACjB,SAAY,WACZ,iBAAkB,gEAClB,iBAAkB,iBAClB,yBAA0B,8CAC1B,WAAY,WACZ,YAAa,YACb,UAAa,YACb,mBAAoB,kBACpB,mBAAoB,wCACpB,YAAa,iBACb,GAAM,KACN,KAAQ,YACR,cAAe,sBACf,gBAAiB,qBACjB,kBAAmB,iBACnB,KAAQ,OACR,UAAW,UACX,WAAY,WACZ,kBAAmB,kBACnB,UAAa,YACb,MAAS,aACT,qBAAsB,oBACtB,KAAQ,OACR,iBAAkB,sBAClB,QAAW,WACX,cAAe,YACf,mBAAoB,mBACpB,aAAc,aACd,MAAS,QACT,SAAY,aAEZ,aAAc,yEACd,gBAAiB,gBACjB,KAAQ,OACR,KAAQ,OACR,WAAc,0BACd,aAAgB,2BAChB,UAAa,iBACb,UAAa,iBACb,cAAiB,qBACjB,OAAU,oBACV,QAAW,UACX,aAAc,eACd,eAAgB,iBAChB,oBAAqB,YACrB,oBAAqB,YACrB,wBAAyB,gBAEzB,eAAgB,mIAEhB,eAAgB,wKAChB,YAAa,OACb,aAAc,aACd,gBAAiB,gBACjB,YAAa,YACb,YAAa,YACb,eAAgB,UAChB,gBAAiB,WACjB,iBAAkB,YAClB,WAAY,MACZ,aAAc,QACd,cAAe,SACf,uBAAwB,kBACxB,yBAA0B,2BAC1B,iBAAkB,iBAClB,kBAAmB,kBACnB,cAAe,cACf,YAAa,YACb,aAAc,aACd,aAAc,aACd,aAAc,aACd,KAAQ,OACR,aAAc,OACd,eAAgB,SAChB,cAAe,QACf,eAAgB,SAChB,gBAAiB,UACjB,KAAQ,OACR,IAAO,MACP,MAAS,QACT,iBAAkB,SAClB,WAAc,aACd,YAAa,YACb,aAAc,aACd,cAAe,sBACf,mBAAoB,0BACpB,WAAY,WACZ,YAAa,YACb,gBAAiB,gBACjB,aAAc,aACd,cAAe,cACf,eAAgB,eAChB,SAAY,WACZ,WAAc,cACd,kBAAmB,kBACnB,SAAY,WACZ,UAAa,YACb,UAAa,YACb,SAAY,WACZ,gBAAiB,gBACjB,cAAe,cACf,UAAa,YACb,qBAAsB,qBACtB,sBAAuB,sBACvB,iBAAkB,iBAClB,mBAAoB,mBACpB,mBAAoB,mBACpB,MAAS,QACT,OAAU,SACV,MAAS,QACT,OAAU,SACV,QAAW,UACX,KAAQ,OACR,QAAW,UACX,gBAAiB,gBACjB,aAAc,aACd,KAAQ,OACR,KAAQ,OACR,gBAAiB,gBACjB,cAAe,cACf,qBAAsB,oCACtB,qBAAsB,iCACtB,cAAe,iCACf,cAAe,oCACf,IAAO,MACP,MAAS,QACT,KAAQ,OACR,OAAU,SACV,eAAkB,gBAClB,WAAc,YACd,YAAe,cACf,UAAa,YACb,aAAc,aACd,cAAe,cACf,OAAU,SACV,QAAW,UACX,aAAc,aACd,aAAc,aACd,kBAAmB,aACnB,+BAAkC,gBAClC,qCAAwC,gBACxC,6BAAgC,cAChC,mCAAsC,cACtC,WAAY,WACZ,OAAU,SACV,cAAe,cACf,YAAa,YACb,YAAa,YACb,gBAAiB,uEACjB,oBAAqB,8EACrB,iBAAkB,0DAClB,gBAAiB,qFACjB,GAAM,MACN,QAAW,UACX,oBAAqB,oBACrB,YAAa,YACb,eAAgB,eAChB,0BAA2B,kBAC3B,sBAAuB,OACvB,iBAAkB,OAClB,mBAAoB,SACpB,yBAA0B,SAC1B,iBAAkB,iBAClB,eAAgB,eAChB,QAAW,UACX,SAAY,WACZ,YAAa,WACb,eAAgB,eAChB,SAAY,YACZ,WAAY,WACZ,UAAa,YACb,mBAAoB,oBACpB,qBAAsB,qBACtB,KAAQ,OACR,QAAW,UACX,MAAS,QACT,wBAAyB,wBACzB,YAAa,YACb,SAAY,WACZ,QAAW,UACX,gBAAiB,gBACjB,WAAc,SACd,KAAQ,OACR,OAAU,SACV,eAAgB,eAChB,UAAa,YACb,aAAc,aACd,YAAa,YACb,eAAgB,aAChB,qBAAsB,qBACtB,qBAAsB,qBACtB,QAAW,UACX,WAAc,aACd,QAAW,UACX,cAAe,SACf,GAAM,KACN,KAAQ,OACR,UAAa,YACb,QAAW,UACX,SAAY,WACZ,SAAY,WACZ,aAAgB,eAChB,SAAY,WACZ,eAAgB,eAChB,QAAW,UACX,eAAgB,eAChB,MAAS,QACT,MAAS,QACT,qBAAsB,qBACtB,yBAA0B,yBAC1B,cAAe,cACf,KAAQ,OACR,sBAAuB,sBACvB,mBAAoB,mBACpB,GAAM,KACN,EAAK,IACL,MAAS,QACT,GAAM,KACN,EAAK,IACL,GAAM,KACN,GAAM,KACN,GAAM,KACN,GAAM,KACN,GAAM,KACN,QAAW,WAEfl1Y,EAAM28jC,WAAa,IAAIohB,IAAc/9kC,GACrCA,EAAMw8nC,QAAU,IAAIhQ,IAAQxsnC,GACrBA,CACX,CAgqGA,OAn7GA4mD,IAAU8ykC,EAAWlykC,GAoRrBrnD,OAAO4c,eAAe28mC,EAAUronC,UAAW,iBAAkB,CAOzD+F,IAAK,WACD,OAA6C,IAAtC1W,KAAKytiC,oBAAoB1sJ,UACpC,EACA5o4B,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAe28mC,EAAUronC,UAAW,WAAY,CAQnD+F,IAAK,WACD,OAAO1W,KAAKg0jC,kBAChB,EACA77iC,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAe28mC,EAAUronC,UAAW,QAAS,CAQhD+F,IAAK,WACD,OAAO1W,KAAKkkqB,WAChB,EACA/rpB,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAe28mC,EAAUronC,UAAW,gBAAiB,CAQxD+F,IAAK,WACD,OAAO1W,KAAKytiC,mBAChB,EACAt1hC,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAe28mC,EAAUronC,UAAW,aAAc,CAQrD+F,IAAK,WACD,OAAO1W,KAAK+7nC,gBAChB,EACA5jnC,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAe28mC,EAAUronC,UAAW,aAAc,CAQrD+F,IAAK,WACD,OAAO1W,KAAK0tiC,gBAChB,EACAv1hC,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAe28mC,EAAUronC,UAAW,UAAW,CAQlD+F,IAAK,WACD,OAAO1W,KAAK2mgB,aAChB,EACAxuf,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAe28mC,EAAUronC,UAAW,gBAAiB,CAQxD+F,IAAK,WACD,OAAO1W,KAAK4zjC,mBAChB,EACAz7iC,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAe28mC,EAAUronC,UAAW,aAAc,CAQrD+F,IAAK,WACD,OAAO1W,KAAKikjC,gBAChB,EACA9riC,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAe28mC,EAAUronC,UAAW,eAAgB,CAQvD+F,IAAK,WACD,OAAO1W,KAAK0rkC,kBAChB,EACAvzjC,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAe28mC,EAAUronC,UAAW,gBAAiB,CAQxD+F,IAAK,WACD,OAAO1W,KAAK2qiC,mBAChB,EACAxyhC,YAAY,EACZE,cAAc,IAElB5Y,OAAO4c,eAAe28mC,EAAUronC,UAAW,oBAAqB,CAQ5D+F,IAAK,WACD,OAAO1W,KAAKihmC,uBAChB,EACA9olC,YAAY,EACZE,cAAc,IAElB2gnC,EAAUronC,UAAUmoV,UAAY,WAC5B94V,KAAKqrgB,UAAY,IAAI9lK,GAAKvlW,KAAK+sV,gBAAiB/sV,KAAKw0Y,cAAex0Y,KAAKD,QACpEgsU,GAAkB/rU,KAAKmV,UAA+B,IAAnBnV,KAAKmV,QAAQghB,KAEjDn2B,KAAKmV,QAAQghB,GAAKn2B,KAAKg8nC,sBAEvB/0yB,GAAQM,WAERvnV,KAAKunkC,aAAe,GAE5B,EACAyxD,EAAUronC,UAAUqrnC,mBAAqB,WACrC,MAAO,aAAev6nC,KAAK0jE,MAAMruD,SAAS,IAAMlT,KAAKk2B,SAAShjB,SAAS,IAAIoQ,UAAU,EACzF,EACA8xmC,EAAUronC,UAAUyJ,OAAS,WACzBpa,KAAKi8jC,WAAWkzB,sBACXnvlC,KAAKyzlC,mBACNzzlC,KAAKu6iC,iBAAmB,IAAI4iE,IAAWn9mC,KAAMA,KAAKi8jC,YAClDj8jC,KAAKu6iC,iBAAiBsuE,mBAAmB7onC,KAAKyzlC,mBAE9CzzlC,KAAK4qiC,qBAAuB5qiC,KAAK2qiC,oBACjC3qiC,KAAK2qiC,oBAAoBkxD,0BAGzB77lC,KAAKi8jC,WAAWkS,2BAEpBnukC,KAAK87nC,QAAQ7P,aAAajsnC,MAC1BA,KAAK45V,gBACT,EACAo/xB,EAAUronC,UAAUo8U,cAAgB,WAChC,MAAO,WACX,EAIAisyB,EAAUronC,UAAUu2pB,mBAAqB,WACrC,OAAOlnqB,KAAKw0Y,aAChB,EAQAwkvB,EAAUronC,UAAUsrnC,YAAc,SAAUt1sB,GACxC3mb,KAAKi8jC,WAAWU,SAAWh2oB,CAC/B,EACAqysB,EAAUronC,UAAU+7U,kBAAoB,SAAUiF,EAASC,GAEvD,IAAI5xV,KAAKm4R,YAIT,IADA,IACS7oR,EAAK,EAAGo1pB,EADAjlqB,OAAO8E,KAAKotV,GACeriV,EAAKo1pB,EAAathqB,OAAQkM,IAAM,CACxE,IAAI3K,EAAO+/pB,EAAap1pB,GACxB,OAAQ3K,GACJ,IAAK,SACD,GAAI3E,KAAKi8jC,WAAW00B,WAAY,CAE5B,IAAIzmjC,EAAO,KAIX,GAHIlqC,KAAKu6iC,mBACLrwgC,EAAOlqC,KAAKi8jC,WAAWqsC,0BAA0B,gBAEjDp+jC,EAAM,CACNlqC,KAAKi8jC,WAAWs5B,eAAiB9kjC,KAAKuL,MAAM9R,GAE5C,IAAIy9jC,EAAkB3nmC,KAAKw1yB,qBACvB/8M,EAAWz4lB,KAAKi8jC,WAAWo1B,eAC/BvqiC,EAAOn2C,UAAUkoV,QAAQl5V,KAAKK,MAC9BA,KAAKywF,KAAKzwF,KAAKi8jC,WAAW00B,WAAY,MACtC3wlC,KAAKg/H,cAAc2o+B,GACnB3nmC,KAAKi8jC,WAAW00B,WAAa,KAC7B3wlC,KAAK0ilC,iBAAmBjqf,EACxBz4lB,KAAKm+d,SAAWs6H,CACpB,CACJ,CACA,MACJ,IAAK,mBACIxxQ,GAAQM,UAAYvnV,KAAKsojC,mBAC1BtojC,KAAKi1nB,QAAQingB,uBACbl8nC,KAAKi1nB,QAAQkjc,wBAAwBgkE,iCACrCn8nC,KAAKi1nB,QAAQq0b,0BAA0B8yE,qCAGvCp8nC,KAAKi1nB,QAAQongB,gCACbr8nC,KAAKi1nB,QAAQkjc,wBAAwBmkE,wCAEzC,MACJ,IAAK,gBACDt8nC,KAAKq5M,OAAO,GAAI,CAAEriM,OAAQ,UAAW25Y,OAAQ3wZ,KAAK22jC,iBACjC,EACjB,MACJ,IAAK,qBACD32jC,KAAKq5M,OAAO,GAAI,CAAEriM,OAAQ,aAAc25Y,OAAQ3wZ,KAAK6qjC,qBAEjD7qjC,KAAK2mgB,eAAiB3mgB,KAAK2mgB,cAAcwxjB,yBACzCn4jC,KAAK2mgB,cAAcwxjB,wBAAwBokE,uBAAuBv8nC,KAAK6qjC,oBAEtE7qjC,KAAK6qjC,oBACF7qjC,KAAKi8jC,WAAW7W,gBAChBpljC,KAAKi8jC,WAAW7W,eAAe+R,6BAGvC,MACJ,IAAK,eACIrqvB,KAID9sU,KAAK+tiC,gBAAgB13oB,kBAAkB,yBAA0B1kE,EAAQy+vB,cAHzEpwlC,KAAKywF,KAAKkhQ,EAAQy+vB,aAAc,MAKpC,MACJ,IAAK,kBACDpwlC,KAAKswlC,gBAAkB3+vB,EAAQ2+vB,gBACC,QAA5B3+vB,EAAQ2+vB,iBACRtwlC,KAAKi8jC,WAAW80B,kBACZ/wlC,KAAKi1nB,SACLj1nB,KAAKi1nB,QAAQ+me,wBAAuB,IAGP,kBAA5BrqwB,EAAQ2+vB,kBACbtwlC,KAAKi8jC,WAAWg7B,yBACZj3lC,KAAKi1nB,SACLj1nB,KAAKi1nB,QAAQ+me,wBAAuB,IAG5C,MACJ,IAAK,SACDh8lC,KAAK4oJ,OAAS+oM,EAAQ/oM,OACtB5oJ,KAAKi8jC,WAAW81B,eAChB/xlC,KAAKi8jC,WAAWrC,iBACZ55jC,KAAKi1nB,SAAWj1nB,KAAKi1nB,QAAQkjc,0BACzBn4jC,KAAKi1nB,QAAQkjc,wBAAwBu0C,gBACrC1smC,KAAKi1nB,QAAQkjc,wBAAwB0jB,cAAa,GAGlD77kC,KAAKi1nB,QAAQkjc,wBAAwB0jB,cAAa,IAG1D,MACJ,IAAK,QACD77kC,KAAKwe,MAAQmzU,EAAQnzU,MACrBxe,KAAKi8jC,WAAWvtS,cAChB1uxB,KAAKi8jC,WAAWrC,iBAChB,MACJ,IAAK,cACD55jC,KAAKw8nC,oBAAoBx8nC,KAAKy8nC,YAAY,IAC1C,MACJ,IAAK,sBACG9qyB,EAAQg/wB,oBAAoB+rB,cAC5B18nC,KAAKw8nC,oBAAoBx8nC,KAAK2wmC,oBAAoB+rB,aAAa,IAEnE,MACJ,IAAK,mBACD,GAAI18nC,KAAKyzlC,kBAAoBzzlC,KAAKu6iC,iBAC9B,IAAK,IAAIx5hC,EAAI,EAAGA,EAAI/gB,KAAKoxmB,UAAWrwlB,IAChC/gB,KAAKu6iC,iBAAiBymD,iBAAiBjglC,GAAG,QAI9C/gB,KAAKu6iC,iBAAmB,IAAI4iE,IAAWn9mC,KAAMA,KAAKi8jC,YAClDj8jC,KAAKu6iC,iBAAiBsuE,mBAAmB7onC,KAAKyzlC,kBAElD,MACJ,IAAK,eACGzzlC,KAAKopjC,aACLppjC,KAAK0rkC,mBAAmBixD,QAAQ,YAGhC38nC,KAAK0rkC,mBAAmBixD,QAAQ,QAEpC,MACJ,IAAK,oBACL,IAAK,oBACL,IAAK,wBACG38nC,KAAKikjC,kBAAoBjkjC,KAAKikjC,iBAAiBsE,4BAC/CvojC,KAAKikjC,iBAAiBsE,2BAA2Bq0E,yBAAyBj4nC,GAE9E,MACJ,IAAK,yBACL,IAAK,uBACD,GAAI3E,KAAK0rkC,mBAAoB,CACzB,IAAIxxB,EAA2B,yBAATv1iC,EACtB3E,KAAK0rkC,mBAAmBmxD,wBAAwBlryB,EAAQhtV,GAAOu1iC,EACnE,CACA,MACJ,IAAK,oBACGl6iC,KAAK0rkC,oBACL1rkC,KAAK0rkC,mBAAmBoxD,wBAAwBnryB,EAAQhtV,IAE5D,MACJ,IAAK,wBACG3E,KAAK0rkC,oBACL1rkC,KAAK0rkC,mBAAmBqxD,4BAA4BpryB,EAAQhtV,IAEhE,MACJ,IAAK,wBACG3E,KAAK0rkC,oBACL1rkC,KAAK0rkC,mBAAmBsxD,4BAA4BrryB,EAAQhtV,IAEhE,MACJ,IAAK,2BACG3E,KAAK0rkC,oBACL1rkC,KAAK0rkC,mBAAmBuxD,+BAA+BtryB,EAAQhtV,IAEnE,MACJ,IAAK,wBACG3E,KAAK0rkC,oBACL1rkC,KAAK0rkC,mBAAmBwxD,4BAA4BvryB,EAAQhtV,IAEhE,MACJ,IAAK,uBACG3E,KAAK0rkC,oBACL1rkC,KAAK0rkC,mBAAmByxD,2BAA2BxryB,EAAQhtV,IAE/D,MACJ,IAAK,+BACIsiV,GAAQM,WAAYvnV,KAAKsojC,oBACtBtojC,KAAK2mgB,eAAiB3mgB,KAAK0rkC,qBAAuB95uB,EAAQ+1vB,8BAAgCh2vB,EAAQg2vB,8BAC9F3nlC,KAAK2mgB,cAAcwxjB,yBAA2Bn4jC,KAAKo9nC,6BACnDp9nC,KAAKo9nC,4BAA6B,EAClCp9nC,KAAK2mgB,cAAcwxjB,wBAAwBwjB,yBAE/C37kC,KAAK2mgB,cAAc2ijB,0BAA0B+zE,4BAGxCtxzB,GAAkB/rU,KAAK2mgB,gBAAmB56L,GAAkB/rU,KAAK0rkC,sBAAuB1rkC,KAAK2mgB,cAAc2ijB,2BAA8BtpjC,KAAK2nlC,8BAAiC3nlC,KAAKo9nC,6BACrLp9nC,KAAK2nlC,8BAA+B,EACpC3nlC,KAAK0rkC,mBAAmBixD,QAAQ,QAChC38nC,KAAK2mgB,cAAc2ijB,0BAA0B+zE,6BAIzD,MACJ,IAAK,6BACIp2yB,GAAQM,WAAYvnV,KAAKsojC,mBACtBtojC,KAAK2mgB,eAAiB3mgB,KAAKikjC,mBAAqBrytB,EAAQwryB,4BAA8BzryB,EAAQyryB,6BAC1Fp9nC,KAAK2mgB,cAAc2ijB,2BAA6BtpjC,KAAK2nlC,+BACrD3nlC,KAAK2nlC,8BAA+B,EACpC3nlC,KAAK2mgB,cAAc2ijB,0BAA0Bg0E,2BAEjDt9nC,KAAK2mgB,cAAcwxjB,wBAAwB6jB,gBAK/D,CACJ,EAEAg9C,EAAUronC,UAAU6rnC,oBAAsB,SAAUC,GAChDz8nC,KAAKm/H,WAAW4t8B,sBAAsB6jC,gBAAiB,EACvD5wmC,KAAKikjC,iBAAiB8oB,sBAAsBwc,sBAAuB,EACnEvplC,KAAKi8jC,WAAW8jB,YAAa,EAC7B//kC,KAAKi8jC,WAAWokB,gBAAiB,EAEjCrglC,KAAKm/H,WAAW4t8B,sBAAsBwwD,4BAA4Bd,EAAY1rB,uBAAwB0rB,EAAY3rB,gBACtH,EACAkoB,EAAUronC,UAAU0pV,eAAiB,WACjC,MAAO,WACX,EACA2+xB,EAAUronC,UAAUuiV,gBAAkB,WAClC,IAAIc,EAAU,GAgEd,OA/DIh0V,KAAK46kC,qBACL5mvB,EAAQ5nV,KAAK,CACTqnV,OAAQ,gBAAiBx6U,KAAM,CAACjZ,KAAMA,KAAKi8jC,cAG/Cj8jC,KAAK26kC,kBACL3mvB,EAAQ5nV,KAAK,CACTqnV,OAAQ,aAAcx6U,KAAM,CAACjZ,KAAMA,KAAKi8jC,eAG5Cj8jC,KAAK22jC,eAAiB32jC,KAAK0vlC,yBAA2B1vlC,KAAKk7kC,yBAA2Bl7kC,KAAKw9nC,4BAC3FxpyB,EAAQ5nV,KAAK,CACTqnV,OAAQ,UAAWx6U,KAAM,CAACjZ,KAAMA,KAAKi8jC,cAGzCj8jC,KAAKohmC,iBACLptwB,EAAQ5nV,KAAK,CACTqnV,OAAQ,iBAAkBx6U,KAAM,CAACjZ,KAAMA,KAAKi8jC,cAGhDj8jC,KAAKk7jC,iBACLlnuB,EAAQ5nV,KAAK,CACTqnV,OAAQ,gBAAiBx6U,KAAM,CAACjZ,KAAMA,KAAKi8jC,cAG/Cj8jC,KAAKy9nC,gBACLzpyB,EAAQ5nV,KAAK,CACTqnV,OAAQ,eAAgBx6U,KAAM,CAACjZ,KAAMA,KAAKi8jC,cAG9Cj8jC,KAAK4qiC,qBACL52sB,EAAQ5nV,KAAK,CACTqnV,OAAQ,gBAAiBx6U,KAAM,CAACjZ,KAAMA,KAAKi8jC,cAG/Cj8jC,KAAK+6kC,kBACL/mvB,EAAQ5nV,KAAK,CACTqnV,OAAQ,aAAcx6U,KAAM,CAACjZ,KAAMA,KAAKi8jC,cAG5Cj8jC,KAAKm7kC,aACLnnvB,EAAQ5nV,KAAK,CACTqnV,OAAQ,QAASx6U,KAAM,CAACjZ,KAAMA,KAAKi8jC,cAGvCj8jC,KAAKi7kC,kBACLjnvB,EAAQ5nV,KAAK,CACTqnV,OAAQ,aAAcx6U,KAAM,CAACjZ,KAAMA,KAAKi8jC,cAG5Cj8jC,KAAKyzlC,kBACLz/vB,EAAQ5nV,KAAK,CACTqnV,OAAQ,aAAcx6U,KAAM,CAACjZ,KAAMA,KAAKi8jC,cAG5Cj8jC,KAAK09nC,qBAAuB5wzB,MAC5BknB,EAAQ5nV,KAAK,CACTqnV,OAAQ,eAAgBx6U,KAAM,CAACjZ,KAAMA,KAAKi8jC,cAGlDjouB,EAAQ5nV,KAAK,CACTqnV,OAAQ,oBAAqBx6U,KAAM,CAACjZ,KAAMA,KAAKi8jC,cAE5CjouB,CACX,EAQAglyB,EAAUronC,UAAU8/E,KAAO,SAAUv/D,EAAU45H,GACpB,IAAnB9qJ,KAAKoxmB,UACLpxmB,KAAKi8jC,WAAW5ngC,OAAM,GAGtBr0D,KAAKi8jC,WAAW5ngC,OAAM,GAE1Br0D,KAAKoxmB,UAAY,EACjBpxmB,KAAK6riC,kBAAoB,EACpB/+tB,KAMD9sU,KAAKi8jC,WAAWmzB,gBAAgBpT,eAL5Bh8kC,KAAK2mgB,eACL3mgB,KAAK2mgB,cAAcq1kB,eAM3Bh8kC,KAAKi8jC,WAAWw0B,mBAAmBv/jC,EAAU45H,EACjD,EAKAku+B,EAAUronC,UAAU+pkC,aAAe,SAAUt3B,EAAYytC,EAAY1ynB,GAC1C,IAAnBn+d,KAAKoxmB,UACLpxmB,KAAKi8jC,WAAW5ngC,OAAM,GAGtBr0D,KAAKi8jC,WAAW5ngC,OAAM,GAE1Br0D,KAAKoxmB,UAAY,EACjBpxmB,KAAK6riC,kBAAoB,EACzB7riC,KAAKi8jC,WAAWmzB,gBAAgBpT,eAChCh8kC,KAAKm+d,SAAWA,EAChBn+d,KAAKi8jC,WAAWm1B,qBAAqBhuC,EAAYytC,EAAY1ynB,EACjE,EAKA66pB,EAAUronC,UAAU2glC,YAAc,SAAUC,EAAiBzm8B,GACzD9qJ,KAAKi8jC,WAAWq1B,YAAYC,EAAiBzm8B,EACjD,EAKAku+B,EAAUronC,UAAUw/nB,aAAe,SAAUhwM,GACzC,IAAIhrb,EAAU+b,SAASg8T,eAAeizG,GACvB,MAAXhrb,GACAA,EAAQ/K,OAEhB,EAMA4unC,EAAUronC,UAAUmzd,SAAW,WACvB9je,KAAKo7kC,gBACLp7kC,KAAKi8jC,WAAWn4lB,UAExB,EAMAk1pB,EAAUronC,UAAU80d,WAAa,WAC7B,IAAInme,EAAQU,KACZ,OAAIA,KAAKo7kC,eACE,IAAIzqiC,SAAQ,SAAU2mB,EAASuwB,GAClCvwB,EAAQh4D,EAAM28jC,WAAWx2lB,aAC7B,IAGO,IAEf,EAMAuzpB,EAAUronC,UAAUqhlC,sBAAwB,WACxChylC,KAAKi8jC,WAAW+1B,uBACpB,EAOAgnC,EAAUronC,UAAUiilC,sBAAwB,SAAUjr6B,GAClD3nL,KAAKi8jC,WAAW22B,sBAAsBjr6B,EAC1C,EAOAqx8B,EAAUronC,UAAUs3kC,eAAiB,SAAU7o+B,GAC3C,IAAI9/G,EAAQU,KACZ,GAAuB,kBAAXo/G,EAER,IADA,IAAIu+gC,EAAmB39nC,KAAK49nC,qBACnBzxnC,EAAI,EAAGA,EAAIwxnC,EAAiBv6nC,OAAQ+I,IACrCwxnC,EAAiBxxnC,GAAGzH,OAAS06G,IAC7BA,EAAQu+gC,EAAiBxxnC,IAIrC,GAAIizG,EAAO,CAGP,GAFAp/G,KAAKi8jC,WAAW0mB,cAAe,EAC/B3ilC,KAAKi8jC,WAAWmnB,WAAahk+B,EACzBp/G,KAAK0rkC,mBACL1rkC,KAAK+7nC,iBAAiBhwd,SAAS3sjB,EAAM02T,UAAY,OAEhD,CACD,IAAIA,EAAYplY,WAAW0uE,EAAMjpF,GAAGxD,MAAM,KAAK,IAC/C3yB,KAAK+7nC,iBAAiBhwd,SAASj2P,EAAY,EAC/C,CACA1/Y,YAAW,WACP,IAAIoplC,EAAetulC,SAASg8T,eAAe9tO,EAAMjpF,IAC7C72B,EAAMoskC,oBAAqC,aAAfts9B,EAAMxyG,OAClC4ymC,EAAetulC,SAASg8T,eAAe9tO,EAAMjpF,GAAK,WAElDqplC,KACIlgnC,EAAMoskC,oBAAsC,mBAAfts9B,EAAMxyG,MAA4C,iBAAfwyG,EAAMxyG,MAItE4ymC,EAAap1mC,QACb9K,EAAM28jC,WAAW0mB,cAAe,EAChCrjlC,EAAM28jC,WAAWmnB,WAAa,IAL9Bo8B,EAAa3p1B,cAAczrR,QAQvC,GAAG,IACP,CACJ,EAQA4unC,EAAUronC,UAAUiwmC,sBAAwB,SAAUh8qB,GAElD,IAAIv8b,EAAS6oB,SAASg8T,eAAe03G,EAAWzua,IAC5C0nmC,GAA8B,EAClC,GAAIx1nC,EAAQ,CAER,IADAA,EAASA,GAAkB6oB,SAASg8T,eAAe03G,EAAWzua,GAAK,yBAAyBrwB,SAAS,GAAGA,SAAS,KAC/E,YAApB8+b,EAAWh4b,MAA0C,aAApBg4b,EAAWh4b,MAA2C,kBAApBg4b,EAAWh4b,KACxFvE,EAAOzG,MAAQgjc,EAAWhjc,WAEzB,GAAwB,aAApBgjc,EAAWh4b,MAA2C,gBAApBg4b,EAAWh4b,MAA8C,aAApBg4b,EAAWh4b,KAIvF,GAHwB,aAApBg4b,EAAWh4b,OACXvE,EAAOlC,MAAM23nC,WAAa,QAE1B99nC,KAAK0rkC,mBACL,GAAwB,gBAApB9moB,EAAWh4b,KAAwB,CACnC,IAAImxnC,EAAoB,CAAEpisB,WAAYiJ,EAAWjJ,YACjD37b,KAAK0rkC,mBAAmBsyD,gBAAgBp5rB,EAAYm5rB,EACxD,KACK,CACD,IAAIE,EAAiB,CAAEjysB,UAAW4Y,EAAW5Y,WAC7Chsb,KAAK0rkC,mBAAmBsyD,gBAAgBp5rB,EAAYq5rB,EACxD,KAGwB,gBAApBr5rB,EAAWh4b,KACXvE,EAAOqG,SAAWk2b,EAAWjJ,WAG7Btzb,EAAOyjD,QAAU84Y,EAAW5Y,eAInC,GAAwB,aAApB4Y,EAAWh4b,MAA2C,YAApBg4b,EAAWh4b,MAA0C,iBAApBg4b,EAAWh4b,KACnF,GAAI5M,KAAK0rkC,mBAAoB,CACzBmyD,GAA8B,EAC9B,IAAIK,EAAqB,CAAEp/mC,QAAS8lb,EAAWhjc,OAC/C5B,KAAK0rkC,mBAAmBsyD,gBAAgBp5rB,EAAYs5rB,EACxD,MAEI71nC,EAAOzG,MAAQgjc,EAAWhjc,MAGlC,GAAwB,mBAApBgjc,EAAWh4b,MAAiD,iBAApBg4b,EAAWh4b,KAAyB,EACxEg4b,EAAW47mB,eAAiB57mB,EAAWu5rB,eACC,kBAA7Bv5rB,EAAW47mB,cAClB57mB,EAAW47mB,cAAgB57mB,EAAW47mB,cAGtC57mB,EAAW47mB,cAAgB57mB,EAAWu5rB,aAG9Cv5rB,EAAWqkJ,SAAWrkJ,EAAWqkJ,SAAWrkJ,EAAWqkJ,SAAWrkJ,EAAW4d,WAC7E,IAAI1oQ,EAAe8qP,EAAWhjc,MAC1B4inC,EAAiBxknC,KAAKo+nC,iBAAiBx5rB,EAAWzua,IAClDkomC,EAAcr+nC,KAAK0rkC,mBAAqB84C,EAAe5inC,QAAUgjc,EAAWhjc,MAAQ4inC,EAAe7rV,QAAU/zV,EAAWhjc,MACxHyG,EAAO6/Q,UAAUh1P,SAAS,+CAAiDmrmC,IACvEr+nC,KAAK0rkC,mBACL1rkC,KAAKm/H,WAAW4q/B,qBAAqBnlrB,EAAWzua,GAAGxD,MAAM,KAAK,GAAK,YAEnE3yB,KAAKm/H,WAAW4q/B,qBAAqBnlrB,EAAWzua,KAEnDyua,EAAW47mB,eAAkB57mB,EAAWhjc,QACzCgjc,EAAWhjc,MAAQk4M,EACf95M,KAAKi8jC,WAAWghD,oBAAoBr4qB,EAAWhjc,OAC/Cgjc,EAAW47mB,cAAgB,OAEtBxgjC,KAAKi8jC,WAAWihD,qBAAqBt4qB,EAAWhjc,OACrDgjc,EAAW47mB,cAAgB,QAG3B57mB,EAAW47mB,cAAgB,QAG9B69E,GACDr+nC,KAAKu6iC,iBAAiBuC,cAAcl4mB,EAAW47mB,cAAe57mB,EAAWhjc,MAAOyG,EAAQu8b,EAAWqkJ,SAC3G,MAES40iB,GACD79nC,KAAKu6iC,iBAAiBooE,oBAAoBt6mC,EAGtD,KACK,CACD,IAAI6hC,EAAOlqC,KAAKi8jC,WAAWqsC,0BAA0B,eACrD,GAAIp+jC,EAgDA,IA/CA,IAAI48kC,EAAiBr2kC,KAAKuL,MAAM9R,GAC5BuiS,EAAU,WACV,IACIuoG,EADAulL,EAAcushB,EAAe/lmC,GAG7Bi0Z,EADoB,aAApB4vB,EAAWh4b,MAA2C,gBAApBg4b,EAAWh4b,MAA8C,aAApBg4b,EAAWh4b,KACtE2tlB,EAAYqohB,UAEC,aAApBh+qB,EAAWh4b,MAA2C,YAApBg4b,EAAWh4b,MAA0C,iBAApBg4b,EAAWh4b,KACvE2tlB,EAAY59jB,KAGZ49jB,EAAYm4f,UAG5B,IAAI9mqB,EAAYk7rB,EAAe1gnC,QAAO,SAAUmvB,GAAQ,OAAOA,EAAKm9jC,YAAcn4f,EAAYm4f,UAAU//jC,MAAM,KAAK,EAAI,IAOvH,GANKo5S,GAAkB6/G,IAAe7/G,GAAkB6/G,EAAU,KACpC,mBAAtBA,EAAU,GAAG65nB,MAAmD,iBAAtB75nB,EAAU,GAAG65nB,OACvDzwoB,EAAYulL,EAAYm4f,UAAU//jC,MAAM,KAAK,GAC7C4nkB,EAAYird,WAAashE,EAAe1gnC,QAAO,SAAUmvB,GAAQ,OAAOA,EAAKm9jC,YAAc19qB,CAAW,IAAG,GAAGwwoB,YAGhHxwoB,IAAc4vB,EAAWlgc,KAAM,CAC/B,GAAwB,YAApBkgc,EAAWh4b,MAA0C,aAApBg4b,EAAWh4b,MAA2C,kBAApBg4b,EAAWh4b,KAC1Eg4b,EAAWhjc,QACX24lB,EAAY59jB,KAAOioa,EAAWhjc,MAC9B24lB,EAAYo+L,MAAQ/zV,EAAWhjc,YAGlC,GAAwB,aAApBgjc,EAAWh4b,MAA2C,gBAApBg4b,EAAWh4b,MAA8C,aAApBg4b,EAAWh4b,KACvFg4b,EAAWjJ,YAAciJ,EAAW5Y,UAAYuuK,EAAYiohB,UAAW,EAAOjohB,EAAYiohB,UAAW,OAEpG,GAAwB,aAApB59qB,EAAWh4b,MAA2C,YAApBg4b,EAAWh4b,MAA0C,iBAApBg4b,EAAWh4b,KAAyB,CAC5G2tlB,EAAYkohB,cAAgB79qB,EAAWhjc,MACvC,IAAI6qB,EAAQ8tkB,EAAY+shB,SAAW/shB,EAAY+shB,SAAS38mC,QAAQi6b,EAAWhjc,OAAS,EACpF24lB,EAAYr6J,cAAgBzza,GAAS,EAAIA,EAAQ,EAC7B,YAApBm4a,EAAWh4b,OAAqB2tlB,EAAY+jiB,eAAiB,CAAC/jiB,EAAYr6J,eAC9E,KAC6B,mBAApB0E,EAAWh4b,MAAiD,iBAApBg4b,EAAWh4b,MACpDg4b,EAAWhjc,QACX24lB,EAAYo+L,MAAQ/zV,EAAWhjc,MAC/B24lB,EAAcp/P,EAAOojyB,qBAAqBhkiB,EAAa31J,IAG/DzpG,EAAOo/sB,iBAAiBgmE,2BAA2BhmhB,EACvD,CACJ,EACIp/P,EAASn7V,KACJ+gB,EAAI,EAAGA,EAAI+lmC,EAAe1jnC,OAAQ2d,IACvC0rT,IAGRz7S,OAAOor0B,eAAerwoB,WAAW/rN,KAAKi8jC,WAAW7Y,WAAa,eAC9DpjjC,KAAKi8jC,WAAWu5B,wBAAwBsxB,EAAgB,cAC5D,CACJ,EAEAkS,EAAUronC,UAAUytnC,iBAAmB,SAAUjomC,GAC7C,GAAIn2B,KAAK0rkC,mBACL,OAAO1rkC,KAAK+kxB,UAAU5uvB,EAAGxD,MAAM,KAAK,IAExC,IAAIuX,EAAOlZ,OAAOor0B,eAAe3woB,QAAQzrN,KAAKi8jC,WAAW7Y,WAAa,eAClEn9N,EAAiBx1yB,KAAKuL,MAAM9R,GAChC,OAAO+7yB,EAAeA,EAAe/8zB,WAAU,SAAUhc,GAAM,OAAOA,EAAG+qV,WAAa9hU,CAAI,IAC9F,EAKA6imC,EAAUronC,UAAU4+hC,oBAAsB,SAAUjzhC,GAChD,OAAQA,GAAU,GAAK,GAC3B,EAOA08mC,EAAUronC,UAAU4tnC,qBAAuB,SAAUhkiB,EAAa31J,GACzDA,EAAW47mB,gBACZ57mB,EAAW47mB,cAAgBxgjC,KAAKi8jC,WAAWihD,qBAAqBt4qB,EAAWhjc,OAAS,QAAW5B,KAAKi8jC,WAAWghD,oBAAoBr4qB,EAAWhjc,OAAS,OAAS,QAEpK,IAKI+iwB,EALAt3tB,EAAQktjB,EAAYird,WACpB7h7B,EAAO3jI,KAAKuviC,oBAAoBligC,EAAMjsB,GACtC8sI,EAAMluJ,KAAKuviC,oBAAoBligC,EAAMxuB,GACrCL,EAAQxe,KAAKuviC,oBAAoBligC,EAAMg0rB,OACvCz4kB,EAAS5oJ,KAAKuviC,oBAAoBligC,EAAMi0rB,QAE5C,GAAiC,SAA7B18R,EAAW47mB,cAA0B,CAChCjmd,EAAYluF,aACbkuF,EAAYluF,WAAa,aAG7Bs4P,EAAS3kwB,KAAKu6iC,iBAAiB6pE,cAAc7phB,EAAYzkL,UAAWykL,EAAY6rhB,cAAe7rhB,EAAYzkL,UAAW91a,KAAKi8jC,WAAWzxB,gBAAiB7m6B,EAAMuqB,EAAK1vI,EAAOoqI,GAC3I,YAA1B5oJ,KAAKqknC,mBACL1/W,EAAS3kwB,KAAKu6iC,iBAAiB+pE,wBAAwB3/W,IAE3DpqK,EAAYm0c,OAAS/pS,EACrB,IAAI1ld,EAAW0ld,EAAO/7mB,OAAS,KAC3BggxB,EAAY5o6B,KAAKu6iC,iBAAiBwzB,aAAaxze,EAAY34lB,MAAOq9S,EAAUs7S,EAAYluF,YACxFyzZ,EAAa,EACb8I,EAAYjkK,EAAOnmvB,QACnBsh5B,EAAan7J,EAAOnmvB,MAAQoq5B,GAChCruU,EAAYjuF,SAAWtsgB,KAAKu6iC,iBAAiByzB,YAAYpqkC,KAAKiG,MAAOo1S,EAAW6gnB,GACpF,MACK,GAAiC,UAA7Bl7d,EAAW47mB,cAA2B,CAE3C77S,EAAS3kwB,KAAKu6iC,iBAAiB6pE,cAAc7phB,EAAYzkL,UAAWykL,EAAY6rhB,cAAe7rhB,EAAYzkL,UAAW91a,KAAKi8jC,WAAWzxB,gBAAiB7m6B,EAAMuqB,EAAK1vI,EAAOoqI,GACzK,IAAIuy5B,EAAU,IAAIr8kB,MAClBq8kB,EAAQz24B,IAAM61b,EAAYo+L,MAC1B,IAAI52V,EAAU/hc,KACdm7iC,EAAQx73B,OAAS,WACboiR,EAAQ0he,YAAY9+J,EAAQw2S,EAAS5gd,EACzC,CACJ,KACK,CACD,IAA+C,IAA1CA,EAAYo+L,MAAMhuxB,QAAQ,UAE3Bg6vB,EAAS3kwB,KAAKu6iC,iBAAiB6pE,cAAc7phB,EAAYzkL,UAAWykL,EAAY6rhB,cAAe7rhB,EAAYzkL,UAAW91a,KAAKi8jC,WAAWzxB,gBAAiB7m6B,EAAMuqB,EAAK1vI,EAAOoqI,GAC3I,YAA1B5oJ,KAAKqknC,mBACL1/W,EAAS3kwB,KAAKu6iC,iBAAiB+pE,wBAAwB3/W,SAI3D,GAA8B,YAA1B3kwB,KAAKqknC,iBAAgC,CAErC,IAAIoC,EAAazmnC,KAAKu6iC,iBAAiB+B,2BAA2B/hd,EAAYo+L,OAAO,EAAO,KAAMp+L,IAElGoqK,EAAS3kwB,KAAKu6iC,iBAAiB6pE,cAAc7phB,EAAYzkL,UAAWykL,EAAY6rhB,cAAe7rhB,EAAYzkL,UAAW91a,KAAKi8jC,WAAWzxB,gBAAiB7m6B,EAAMuqB,EAAKu49B,EAAWjomC,MAAOiomC,EAAW799B,QAAQ,IAChM1uI,EAAIyqvB,EAAOzqvB,EAAIusmC,EAAW9i/B,KACjCghoB,EAAOxqvB,EAAIwqvB,EAAOxqvB,EAAIssmC,EAAWv49B,GACrC,MAEIy2mB,EAAS3kwB,KAAKu6iC,iBAAiB6pE,cAAc7phB,EAAYzkL,UAAWykL,EAAY6rhB,cAAe7rhB,EAAYzkL,UAAW91a,KAAKi8jC,WAAWzxB,gBAAiB7m6B,EAAMuqB,EAAK1vI,EAAOoqI,GAGjL2xc,EAAYm0c,OAAS/pS,CACzB,CACA,OAAOpqK,CACX,EACAy+hB,EAAUronC,UAAU8y5B,YAAc,SAAU9+J,EAAQr5U,EAAOivK,GACvD,GAA8B,YAA1Bv6lB,KAAKqknC,iBAAgC,CACrC,IAAIrt/B,EAAUpzH,KAAKgmD,IAAI+6sB,EAAO/7mB,OAAS5oJ,KAAKu9mC,uBAAwB54W,EAAOnmvB,MAAQxe,KAAKu9mC,wBACpF33qB,EAAY++T,EAAO/7mB,OAAS5xB,EAC5BF,EAAW6toB,EAAOnmvB,MAAQw4G,EAC1BmsqB,EAAa73W,EAAM9sa,MACnB4kxB,EAAc93W,EAAM1iS,OACpB+79B,EAAchgX,EAAOnmvB,MACrBommC,EAAejgX,EAAO/7mB,OACtBg4wB,EAAQh95B,KAAKgmD,IAAIktE,EAAWqsqB,EAAYv9V,EAAYw9V,GACxDz+B,EAAOnmvB,MAAQ2kxB,EAAay9H,EAC5Bj8J,EAAO/7mB,OAASw6oB,EAAcw9H,EAC9Bj8J,EAAOzqvB,EAAIyqvB,EAAOzqvB,GAAKyqmC,EAAchgX,EAAOnmvB,OAAS,EACrDmmvB,EAAOxqvB,EAAIwqvB,EAAOxqvB,GAAKyqmC,EAAejgX,EAAO/7mB,QAAU,EACvD,IAAI1+G,EAAOlqC,KAAKi8jC,WAAWqsC,0BAA0B,eACrD,GAAIp+jC,EAAM,CAEN,IADA,IAAI48kC,EAAiBr2kC,KAAKuL,MAAM9R,GACvB/9B,EAAI,EAAGA,EAAI26mC,EAAe1jnC,OAAQ+I,IACnC26mC,EAAe36mC,GAAGumlC,WAAan4f,EAAYm4f,YAC3Co0B,EAAe36mC,GAAGuiiC,OAAS/pS,EAC3B3kwB,KAAKu6iC,iBAAiBgmE,2BAA2BuG,EAAe36mC,KAGxE6kB,OAAOor0B,eAAerwoB,WAAW/rN,KAAKi8jC,WAAW7Y,WAAa,eAC9DpjjC,KAAKi8jC,WAAWu5B,wBAAwBsxB,EAAgB,cAC5D,CACJ,CACJ,EAMAkS,EAAUronC,UAAU2td,KAAO,WACnBt+d,KAAKikjC,kBACLjkjC,KAAKikjC,iBAAiB3llB,MAE9B,EAMA06pB,EAAUronC,UAAU4td,KAAO,WACnBv+d,KAAKikjC,kBACLjkjC,KAAKikjC,iBAAiB1llB,MAE9B,EAMAy6pB,EAAUronC,UAAUgm7B,OAAS,WACzB327B,KAAKi8jC,WAAW5ngC,OAAM,GACtBr0D,KAAKoxmB,UAAY,EACZtkS,KAOD9sU,KAAKi8jC,WAAWmzB,gBAAgBpT,eAN5Bh8kC,KAAK2mgB,gBACL3mgB,KAAKi8jC,WAAW7qd,UAAY,EAC5BpxmB,KAAK2mgB,cAAcq1kB,gBAM3Bh8kC,KAAKytiC,oBAAoBumD,OAAO,IACpC,EAMAglC,EAAUronC,UAAUymI,QAAU,WAC1BtwF,EAAOn2C,UAAUymI,QAAQz3I,KAAKK,MACzB+rU,GAAkB/rU,KAAKmV,WACnBnV,KAAK2rV,YACN3rV,KAAKmV,QAAQ+yQ,UAAU/0P,OAAO,eAElCnzB,KAAKmV,QAAQ+zB,UAAY,IAEzBlpC,KAAKi8jC,WAAW7W,iBAChBpljC,KAAKi8jC,WAAW7W,eAAekM,yBAA0B,GAE7DtxjC,KAAKi8jC,WAAW7k7B,UACZp3I,KAAKi8jC,WAAW7W,iBAChBpljC,KAAKi8jC,WAAW7W,eAAekM,yBAA0B,EAEjE,EAQA0nE,EAAUronC,UAAU2mmC,iBAAmB,SAAUrF,EAAYxN,GACzD,GAAIzkmC,KAAKikjC,iBACL,GAA4B,kBAAhBguD,EAA0B,CAClC,IAAIusB,EAAevsB,EAAWtnmC,QAAQ,UAAY,GAAO85lC,EAAqB95lC,QAAQ,SAAW,EACjG,GAAI85lC,EACA,GAAIwN,EAAWtnmC,QAAQ,YAAc,EACjC3K,KAAKi8jC,WAAW7J,kBAAkB6/C,EAAYxN,GAAsB,QAGpE,GAA4B,QAAxBA,EACA,GAAIwN,EAAWznjC,SAAS,iBACpBxqD,KAAKy+nC,wBAAwBxsB,OAE5B,CACD,IAAIysB,EAAgBzsB,EAAWt/kC,MAAM,KAAK,GAAKs/kC,EAAWt/kC,MAAM,KAAK,GAAKs/kC,EAAWt/kC,MAAM,KAAK,GAChGs/kC,EAAanikC,mBAAmB2iB,OAAOuzE,KAAK04/B,KAC5C1+nC,KAAKy+nC,wBAAwBxsB,EACjC,MAGAjymC,KAAKi8jC,WAAW7J,kBAAkB6/C,EAAYxN,EAAsB+5B,QAK5E,GAAiC,SAA7BvsB,EAAWt/kC,MAAM,KAAK,GACtB,GAAIs/kC,EAAWznjC,SAAS,iBACpBxqD,KAAKy+nC,wBAAwBxsB,OAE5B,CACGysB,EAAgBzsB,EAAWt/kC,MAAM,KAAK,GAAKs/kC,EAAWt/kC,MAAM,KAAK,GAAKs/kC,EAAWt/kC,MAAM,KAAK,GAChGs/kC,EAAanikC,mBAAmB2iB,OAAOuzE,KAAK04/B,KAC5C1+nC,KAAKy+nC,wBAAwBxsB,EACjC,MAGAjymC,KAAKi8jC,WAAW7J,kBAAkB6/C,EAAY3+D,IAAqBgf,KAAMksE,EAGrF,KACK,CACD,IAAIG,EAAoB1sB,EAAWpgD,cACP,kBAAhBogD,IAA6BlmyB,GAAkB4yzB,KAAuB5yzB,GAAkBtsU,OAAO8E,KAAKo6nC,MAAwB5yzB,GAAkBtsU,OAAO8E,KAAKo6nC,GAAmB,KAAOl/nC,OAAO8E,KAAKo6nC,EAAkBl/nC,OAAO8E,KAAKo6nC,GAAmB,KAAKv7nC,OAAS,EACvQpD,KAAKi8jC,WAAW7J,kBAAkB6/C,IAGlCA,EAAaxhkC,KAAK+mF,UAAUy6+B,GAC5BjymC,KAAKi8jC,WAAW9J,iBAAkB,EAClCnyjC,KAAKi8jC,WAAW7J,kBAAkBtx7B,KAAKmx+B,GAAa3+D,IAAqB+e,MAEjF,CAER,EAEA2mE,EAAUronC,UAAU8tnC,wBAA0B,SAAUxsB,GACpD,IAAItrrB,EAAWl2Y,KAAKuL,MAAMi2jC,GACtBrgD,EAAkBjroB,EAASkroB,cAAcpyjC,OAAO8E,KAAKoib,EAASkroB,eAAe,IAC5EpyjC,OAAO8E,KAAKoib,EAASkroB,eAAezujC,QAAU,IAAOwujC,EAAgBE,sBAAwBF,EAAgBG,wBAA0BH,EAAgBI,oBAAsBJ,EAAgBK,kBAAoBL,EAAgBM,wBAA2BN,EAAgBzL,iBAAmByL,EAAgBzL,gBAAgB,GAAGzX,SACnU1uiC,KAAKi8jC,WAAW9J,iBAAkB,EAClCnyjC,KAAKi8jC,WAAW7J,kBAAkBzroB,EAAU2snB,IAAqB+e,QAGjEryjC,KAAKi8jC,WAAW9J,iBAAkB,EAClCnyjC,KAAKi8jC,WAAW7J,kBAAkBtx7B,KAAKmx+B,GAAa3+D,IAAqB+e,MAEjF,EAOA2mE,EAAUronC,UAAUiunC,iBAAmB,SAAUn6B,GACzCzkmC,KAAKikjC,mBACDwgD,GAAiD,SAAzBA,EACxBzkmC,KAAKi8jC,WAAWtE,kBAAkBrkB,IAAqBgf,MAGvDtyjC,KAAKi8jC,WAAWtE,kBAAkBrkB,IAAqB+e,MAGnE,EAMA2mE,EAAUronC,UAAUghmC,0BAA4B,WAC5C,IAAIrymC,EAAQU,KACZ,OAAIA,KAAKikjC,iBACE,IAAItzgC,SAAQ,SAAU2mB,EAASuwB,GAClCvoF,EAAM28jC,WAAW01C,4BAA4B12+B,MAAK,SAAUr5H,GACxD,IAAI+kb,EAAWl2Y,KAAKuL,MAAMp6C,GACtBi9nC,EAAapulC,KAAK+mF,UAAUmvT,GAChCrvX,EAAQunkC,EACZ,GACJ,IAGO,IAEf,EAOA7F,EAAUronC,UAAUmunC,gCAAkC,SAAUr6B,GAC5D,IAAInlmC,EAAQU,KACZ,OAAIA,KAAKikjC,iBACE,IAAItzgC,SAAQ,SAAU2mB,EAASuwB,GAClCvoF,EAAM28jC,WAAW41C,mCAAkC,EAAOpN,GAAsB,GAAMxp+B,MAAK,SAAUr5H,GACjG01D,EAAQ11D,EACZ,GACJ,IAGO,IAEf,EAQAo3nC,EAAUronC,UAAUquH,cAAgB,SAAUG,GACtCn/H,KAAKi8jC,YACLj8jC,KAAKi8jC,WAAWj97B,cAAcG,EAEtC,EAUA65/B,EAAUronC,UAAUq0lC,iBAAmB,SAAU96jC,EAAMw6jC,GAC/C1kmC,KAAKu6iC,mBACDxuuB,GAAkB24xB,KAClBA,EAAsBnxD,IAAoB8e,MAE9CryjC,KAAKi8jC,WAAW+oC,iBAAiB96jC,EAAMw6jC,GAE/C,EAQAs0B,EAAUronC,UAAUm0lC,iBAAmB,SAAU56jC,EAAMw6jC,GAC/C1kmC,KAAKu6iC,kBACLv6iC,KAAKi8jC,WAAW6oC,iBAAiB56jC,EAAMw6jC,EAE/C,EAOAs0B,EAAUronC,UAAUqhmC,yBAA2B,SAAUtN,GACrD,IAAIplmC,EAAQU,KACZ,OAAIA,KAAKu6iC,iBACE,IAAI5pgC,SAAQ,SAAU2mB,EAASuwB,GAClCvoF,EAAM28jC,WAAW+1C,yBAAyBtN,GAAqBzp+B,MAAK,SAAUr5H,GAC1E01D,EAAQ11D,EACZ,GACJ,IAGO,IAEf,EAMAo3nC,EAAUronC,UAAU6//B,gBAAkB,WAClCxwgC,KAAKu6iC,iBAAiB/pC,iBAC1B,EASAwoH,EAAUronC,UAAUu5mC,gBAAkB,SAAU3+C,GAC5CvrkC,KAAKu6iC,iBAAiB2vE,gBAAgB3+C,EAC1C,EAMAytD,EAAUronC,UAAUommC,kBAAoB,WAChC/2mC,KAAKikjC,kBACLjkjC,KAAKi8jC,WAAW86C,mBAExB,EAMAiiB,EAAUronC,UAAUitnC,mBAAqB,WACrC,OAAO59nC,KAAK2wkC,oBAChB,EAQAqoD,EAAUronC,UAAU+vmC,iBAAmB,SAAUv3D,GAC7CnpjC,KAAK4gnC,sBAAsBz3D,GAC3BnpjC,KAAKu6iC,iBAAiBmoE,sBAAsBv5D,EAChD,EAMA6vE,EAAUronC,UAAUisjC,wBAA0B,SAAUmiE,GACpD,IAAIn6yB,EAAY,CAAElgV,KAAM,sBAAuBq6nC,SAAUA,GACzD/+nC,KAAKsgS,QAAQ,sBAAuBskD,EACxC,EAQAo0yB,EAAUronC,UAAU2ymC,0BAA4B,SAAU1hnC,EAAOoza,EAAW7+Y,GACxE,IAAIyuT,EAAY,CAAElgV,KAAM,qBAAsBs6nC,iBAAkBp9nC,EAAOq9nC,gBAAiBjqtB,EAAW7+Y,GAAIA,GACvGn2B,KAAKsgS,QAAQ,mBAAoBskD,EACrC,EAQAo0yB,EAAUronC,UAAUk3kC,wBAA0B,SAAUnjlC,EAAM06G,EAAOt+B,EAAQo+iC,GACzE,OAAOvj8B,IAAU37L,UAAM,OAAQ,GAAQ,WACnC,IAAI4kV,EAAWv8U,EAAQ82nC,EAA2Blo1B,EAClD,OAAO2yB,IAAY5pU,MAAM,SAAUs1C,GAC/B,OAAQA,EAAG84P,OACP,KAAK,EAED,OADAw2C,EAAY,CAAElgV,KAAMA,EAAM06G,MAAOA,EAAOt+B,OAAQA,GAC3CgsP,KACE,CAAC,EAAa9sU,KAAK24Z,aAAa,iBAAkB/zE,IADjC,CAAC,EAAa,GAE1C,KAAK,EAGD,OAFAA,EAAatvS,EAAG2yK,QAAW28H,GACjBxlO,MAAMxyG,KAAOwyG,EAAMxyG,KACtB,CAAC,EAAa,GACzB,KAAK,EACD5M,KAAK24Z,aAAa,iBAAkB/zE,GACpCtvS,EAAG84P,MAAQ,EACf,KAAK,EAsBD,MArBmB,mBAAfhvL,EAAMxyG,MAA4C,iBAAfwyG,EAAMxyG,OACtB,iBAAfwyG,EAAMxyG,KACN5M,KAAKi8jC,WAAW/hB,gBAAiB,EAEjCl6iC,KAAKi8jC,WAAW/hB,gBAAiB,EAEL,YADhC7xiC,EAAS6oB,SAASg8T,eAAe9tO,EAAMjpF,KAC5BhwB,MAAMohQ,aACbl/P,EAAOuG,UAAW,GAEtBvG,EAASA,IAAmB6oB,SAASg8T,eAAe9tO,EAAMjpF,GAAK,yBAA2BjF,SAASg8T,eAAe9tO,EAAMjpF,GAAK,yBAAyBrwB,SAAS,GAAGA,SAAS,GAAK,OAChLq5nC,EAA4Bn/nC,KAAK2wkC,qBAAqBvqkC,QAAO,SAAUmvB,GAAQ,OAAOA,EAAKY,KAAOipF,EAAMjpF,EAAI,QAExG8gR,EAAWko1B,EAA0B,GAAGjiqB,aACpBt4I,EAAU9jQ,SAAUz4E,GAAWA,EAAOuG,WAAYvG,EAAO6/Q,UAAUh1P,SAAS,qCAAuCgsmC,IAAenzzB,GAAkBmzzB,GAG/Jjo1B,IACL5uS,EAAOuG,UAAW,GAHlB5O,KAAKi8jC,WAAWxe,gBAAgB+J,qBAAoB,KAOzD,CAAC,GAEpB,GACJ,GACJ,EAQAwxE,EAAUronC,UAAUyunC,sBAAwB,SAAU16nC,EAAM06G,EAAO02T,GAC/D,IAAIlxF,EAAY,CAAElgV,KAAMA,EAAM06G,MAAOA,EAAO02T,UAAWA,GACvD91a,KAAKi8jC,WAAWoT,mBAAoB,EACpCrvkC,KAAKsgS,QAAQ,eAAgBskD,EACjC,EAQAo0yB,EAAUronC,UAAU+9mC,yBAA2B,SAAUhqnC,EAAM06G,EAAO02T,GAClE,IAAIlxF,EAAY,CAAElgV,KAAMA,EAAM06G,MAAOA,EAAO02T,UAAWA,GACvD91a,KAAKsgS,QAAQ,kBAAmBskD,EACpC,EAQAo0yB,EAAUronC,UAAUu6kC,8BAAgC,SAAUtmwB,GAE1D,OADA5kV,KAAKsgS,QAAQ,uBAAwBskD,GAC9BA,CACX,EAyBAo0yB,EAAUronC,UAAU0unC,mCAAqC,SAAU36nC,EAAM06G,EAAO02T,EAAWg0iB,EAAgBw1K,EAAqBC,EAAmBC,EAAoBC,EAAgBC,EAA0BC,EAAsBC,EAAsBC,EAAoBC,EAAmBC,EAAqBC,EAAoBC,EAAmBC,EAAgBC,EAAkBlmnC,EAAUN,EAAUymnC,GAClZ,IAAIx7yB,EAAY,CACZlgV,KAAMA,EAAM06G,MAAOA,EAAO02T,UAAWA,EAAWg0iB,eAAgBA,EAAgBw1K,oBAAqBA,EAAqBC,kBAAmBA,EAC7IC,mBAAoBA,EAAoBC,eAAgBA,EAAgBC,yBAA0BA,EAA0BC,qBAAsBA,EAClJC,qBAAsBA,EAAsBC,mBAAoBA,EAAoBC,kBAAmBA,EAAmBC,oBAAqBA,EAC/IC,mBAAoBA,EAAoBC,kBAAmBA,EAAmBC,eAAgBA,EAC9FC,iBAAkBA,EAAkBlmnC,SAAUA,EAAUN,SAAUA,EAAU0mnC,eAAgBt0zB,GAAkBq0zB,IAAiBA,GAEnIpgoC,KAAKsgS,QAAQ,4BAA6BskD,EAC9C,EAQAo0yB,EAAUronC,UAAU0+lC,6BAA+B,SAAU3qmC,EAAM06G,EAAO02T,GACtE,IAAIlxF,EAAY,CAAElgV,KAAMA,EAAM06G,MAAOA,EAAO02T,UAAWA,GACvD91a,KAAKsgS,QAAQ,sBAAuBskD,EACxC,EAYAo0yB,EAAUronC,UAAUw+lC,4BAA8B,SAAUzqmC,EAAM06G,EAAO02T,EAAW9vR,EAAOC,EAAO7kI,EAAGvC,GACjG,IAAI+lU,EAAY,CAAElgV,KAAMA,EAAM06G,MAAOA,EAAO02T,UAAWA,EAAW9vR,MAAOA,EAAOC,MAAOA,EAAO7kI,EAAGA,EAAGvC,EAAGA,GACvG7e,KAAKsgS,QAAQ,qBAAsBskD,EACvC,EAUAo0yB,EAAUronC,UAAUm8jC,uBAAyB,SAAUpokC,EAAM06G,EAAO02T,EAAWwxY,EAAkB7tC,GAC7F,IAAI70b,EAAY,CAAElgV,KAAMA,EAAM06G,MAAOA,EAAO02T,UAAWA,EAAWwxY,iBAAkBA,EAAkB7tC,gBAAiBA,GACvHz5wB,KAAKsgS,QAAQ,gBAAiBskD,EAClC,EAUAo0yB,EAAUronC,UAAUg/jC,yBAA2B,SAAUjrkC,EAAM06G,EAAO02T,EAAWwxY,EAAkB7tC,GAC/F,IAAI70b,EAAY,CAAElgV,KAAMA,EAAM06G,MAAOA,EAAO02T,UAAWA,EAAWwxY,iBAAkBA,EAAkB7tC,gBAAiBA,GACvHz5wB,KAAKsgS,QAAQ,kBAAmBskD,EACpC,EASAo0yB,EAAUronC,UAAUk/mC,yBAA2B,SAAUnrnC,EAAM06G,EAAO02T,EAAWg6sB,GAC7E,IAAIlryB,EAAY,CAAElgV,KAAMA,EAAM06G,MAAOA,EAAO02T,UAAWA,EAAWg6sB,wBAAyBA,GAC3F9vnC,KAAKsgS,QAAQ,kBAAmBskD,EACpC,EAQAo0yB,EAAUronC,UAAUq7jC,2BAA6B,SAAUtnkC,EAAM06G,EAAO02T,GACpE,IAAIlxF,EAAY,CAAElgV,KAAMA,EAAM06G,MAAOA,EAAO02T,UAAWA,GACvD91a,KAAKsgS,QAAQ,oBAAqBskD,EACtC,EAMAo0yB,EAAUronC,UAAUotlC,iBAAmB,SAAUx9X,GAC7C,IAAI37Y,EAAY,CAAElgV,KAAM,eAAgB47nC,aAActgoC,KAAKm+d,SAAUoiQ,SAAUA,GAC/EvguB,KAAKsgS,QAAQ,eAAgBskD,GACzB9X,OACA9sU,KAAK+tiC,gBAAgB13oB,kBAAkB,eAAgB,MACvDr2Z,KAAKi8jC,WAAWmzB,gBAAgB1U,eAExC,EAKAs+C,EAAUronC,UAAUonlC,mBAAqB,SAAU55nB,GAC/C,IAAIv5I,EAAY,CAAElgV,KAAM,iBAAkB47nC,aAAcniqB,GACxDn+d,KAAKsgS,QAAQ,iBAAkBskD,EACnC,EAMAo0yB,EAAUronC,UAAUoklC,uBAAyB,SAAUwrC,EAAoBz1+B,GAEvE,IAAI85L,EAAY,CAAElgV,KAAM,qBAAsB47nC,aAActgoC,KAAKm+d,SAAUoiqB,mBAAoBA,EAAoBz1+B,SAAUA,GAC7H9qJ,KAAKsgS,QAAQ,qBAAsBskD,EACvC,EAQAo0yB,EAAUronC,UAAU2rjC,sBAAwB,SAAUkkE,EAAiBtm/B,EAAchlE,EAAQiua,GAEzF,IAAIv+J,EAAY,CAAElgV,KAAM,oBAAqB47nC,aAActgoC,KAAKm+d,SAAUqiqB,gBAAiBA,EAAiBtm/B,aAAcA,EAAchlE,OAAQA,GAC5Iiua,IACAv+J,EAAUu+J,YAAa,GAE3Bnjf,KAAKsgS,QAAQ,oBAAqBskD,EACtC,EAMAo0yB,EAAUronC,UAAUghlC,uBAAyB,SAAUz8gC,EAAQhrC,GAC3D,IAAI06S,EAAY,CAAElgV,KAAM,qBAAsB47nC,aAActgoC,KAAKm+d,SAAUjpZ,OAAQA,EAAQhrC,KAAMA,EAAM42C,QAAQ,GAE/G,OADA9gF,KAAKsgS,QAAQ,qBAAsBskD,KAC/BA,EAAU9jQ,MAMlB,EAKAk4iC,EAAUronC,UAAUg4lC,oBAAsB,SAAUzzhC,GAChD,GAAK43P,KAKA,EAEG8X,EAAY,CAAC,GACP07yB,aAAetgoC,KAAKm+d,SAC9Bv5I,EAAUukuB,WAAanpjC,KAAK2wkC,qBAC5B/rvB,EAAU09vB,kBAAoBtilC,KAAKi8jC,WAAWqmB,kBAC9CtilC,KAAKsgS,QAAQ,qBAAsBskD,EACvC,KAZiB,CAEb,IAAIA,EAAY,CAAE2mvB,UAAWvrkC,KAAK2wkC,qBAAsB2vD,aAActgoC,KAAKm+d,SAAUmknB,kBAAmBtilC,KAAKi8jC,WAAWqmB,mBACxHtilC,KAAKsgS,QAAQ,qBAAsBskD,EACvC,CASJ,EAOAo0yB,EAAUronC,UAAUi1kC,cAAgB,SAAU1rkC,EAAGC,EAAGgozB,GAChD,IAAIv9e,EAAY,CAAElgV,KAAM,YAAa47nC,aAActgoC,KAAKm+d,SAAUjkd,EAAGA,EAAGC,EAAGA,EAAGgozB,WAAYA,GAC1Fni0B,KAAKsgS,QAAQ,YAAaskD,EAC9B,EAKAo0yB,EAAUronC,UAAU89kC,eAAiB,SAAUgyC,GAE3C,IAAI77yB,EAAY,CAAElgV,KAAM,aAAc47nC,aAActgoC,KAAKm+d,SAAU0tkB,kBAAmB7riC,KAAK6riC,kBAAmB40F,mBAAoBA,GAClIzgoC,KAAKsgS,QAAQ,aAAcskD,GACvB9X,MAEA9sU,KAAKi8jC,WAAWmzB,gBAAgBlT,YAAYl8kC,KAAK6riC,kBAEzD,EAIAmtF,EAAUronC,UAAU+vnC,eAAiB,WAEjC,IAAI97yB,EAAY,CAAElgV,KAAM,aAAciilC,UAAiD,IAAtC3mlC,KAAKytiC,oBAAoB1sJ,WAAkB0C,kBAAiE,IAA9Czj5B,KAAKytiC,oBAAoB1lI,oBACxI/n6B,KAAKsgS,QAAQ,aAAcskD,EAC/B,EAMAo0yB,EAAUronC,UAAUgwnC,mBAAqB,SAAUv9Y,EAAWw9Y,GAC1D,OAAOjl8B,IAAU37L,UAAM,OAAQ,GAAQ,WACnC,IAAI4kV,EACJ,OAAOhb,IAAY5pU,MAAM,SAAUs1C,GAC/B,OAAQA,EAAG84P,OACP,KAAK,EAED,OADAw2C,EAAY,CAAElgV,KAAM,iBAAkB0+uB,UAAWA,EAAWw9Y,iBAAkBA,EAAkB9/iC,QAAQ,GACnGgsP,KACE,CAAC,EAAa9sU,KAAK24Z,aAAa,iBAAkB/zE,IADjC,CAAC,EAAa,GAE1C,KAAK,EAED,OADAA,EAAatvS,EAAG2yK,QAAW28H,EACpB,CAAC,EAAa,GACzB,KAAK,EACD5kV,KAAK24Z,aAAa,iBAAkB/zE,GACpCtvS,EAAG84P,MAAQ,EACf,KAAK,EAID,OAHIw2C,EAAUg8yB,iBAAiBz4kC,MAAQy8R,EAAUw+Z,YAC7Cw9Y,EAAiBz4kC,KAAOy8R,EAAUw+Z,WAElCx+Z,EAAU9jQ,OACH,CAAC,GAAc,GAGf,CAAC,GAAc,GAItC,GACJ,GACJ,EAKAk4iC,EAAUronC,UAAUkwnC,mBAAqB,SAAUD,GAE/C,IAAIh8yB,EAAY,CAAElgV,KAAM,qBAAsBk8nC,iBAAkBA,GAChE5goC,KAAKsgS,QAAQ,qBAAsBskD,EACvC,EAMAo0yB,EAAUronC,UAAU6piC,sBAAwB,SAAUxloB,EAAWpza,GAE7D,IAAIgjV,EAAY,CAAElgV,KAAM,oBAAqBswa,UAAWA,EAAWpza,MAAOA,GAE1E5B,KAAKsgS,QAAQ,oBAAqBskD,EACtC,EAeAo0yB,EAAUronC,UAAUmwnC,kBAAoB,SAAU3+T,EAAY11yB,EAAO7f,EAAM+3vB,EAAQr3qB,EAAUw9gC,EAAmBi2B,EAAcC,EAAY/lB,EAAegmB,EAAqBnwB,GAC1K,IAAIlsxB,EAAY,CAAElgV,KAAM,gBAAiBoxa,UAAWqsZ,EAAY6kP,aAAcv6hC,EAAOswjC,eAAgBnwkC,EAAMs0nC,gBAAiBv8X,EAAQ6+S,mBAAoBl29B,GACpJw9gC,IACIh+xB,MACA8X,EAAU4+tB,mBAAmBsnD,kBAAoBA,EACjDlmxB,EAAU4+tB,mBAAmBm1D,qBAAuBooB,EACpDn8yB,EAAU4+tB,mBAAmBq1D,mBAAqBmoB,IAGlDp8yB,EAAUkmxB,kBAAoBA,EAC9BlmxB,EAAU+zxB,qBAAuBooB,EACjCn8yB,EAAUi0xB,mBAAqBmoB,IAGnC/lB,IACAr2xB,EAAUq2xB,cAAgBA,GAE1BgmB,IACAr8yB,EAAUu8yB,uBAAyBF,GAE1B,UAATr0nC,IACAg4U,EAAUksxB,gBAAkBA,GAEhC9wmC,KAAKi8jC,WAAWmT,oBAAqB,EACrCpvkC,KAAKsgS,QAAQ,gBAAiBskD,GAC1B9X,MAEA9sU,KAAKi8jC,WAAWmzB,gBAAgBxS,eAExC,EAaAo8C,EAAUronC,UAAUywnC,qBAAuB,SAAUj/T,EAAY11yB,EAAO7f,EAAM+3vB,EAAQmmW,EAAmBi2B,EAAcC,EAAYC,GAE/H,IAAIr8yB,EAAY,CAAElgV,KAAM,mBAAoBoxa,UAAWqsZ,EAAY6kP,aAAcv6hC,EAAOswjC,eAAgBnwkC,EAAMy0nC,iBAAkB18X,GAC5HmmW,IACAlmxB,EAAUkmxB,kBAAoBA,EAC9BlmxB,EAAU+zxB,qBAAuBooB,EACjCn8yB,EAAUi0xB,mBAAqBmoB,GAE/BC,IACAr8yB,EAAUu8yB,uBAAyBF,GAEvCjhoC,KAAKsgS,QAAQ,mBAAoBskD,EACrC,EAMAo0yB,EAAUronC,UAAU2wnC,gCAAkC,SAAU1/nC,GAE5D,IAAIgjV,EAAY,CAAElgV,KAAM,oBAAqB9C,MAAOA,GAEpD5B,KAAKsgS,QAAQ,oBAAqBskD,EACtC,EAQAo0yB,EAAUronC,UAAU4wnC,eAAiB,SAAUprmC,EAAI8J,EAAMk/F,GAErD,IAAIylN,EAAY,CAAElgV,KAAM,aAAcyxB,GAAIA,EAAI8J,KAAMA,EAAMk/F,WAAYA,GAEtEn/H,KAAKsgS,QAAQ,aAAcskD,EAC/B,EAQAo0yB,EAAUronC,UAAU6wnC,gBAAkB,SAAUrrmC,EAAI8J,EAAMk/F,GAEtD,IAAIylN,EAAY,CAAElgV,KAAM,cAAeyxB,GAAIA,EAAI8J,KAAMA,EAAMk/F,WAAYA,GAEvEn/H,KAAKsgS,QAAQ,cAAeskD,EAChC,EAQAo0yB,EAAUronC,UAAU8wnC,kBAAoB,SAAUtrmC,EAAI8J,EAAMk/F,GAExD,IAAIylN,EAAY,CAAElgV,KAAM,gBAAiByxB,GAAIA,EAAI8J,KAAMA,EAAMk/F,WAAYA,GAEzEn/H,KAAKsgS,QAAQ,gBAAiBskD,EAClC,EAQAo0yB,EAAUronC,UAAU+wnC,kBAAoB,SAAUvrmC,EAAI8J,EAAMk/F,GAExD,IAAIylN,EAAY,CAAElgV,KAAM,gBAAiByxB,GAAIA,EAAI8J,KAAMA,EAAMk/F,WAAYA,GAEzEn/H,KAAKsgS,QAAQ,gBAAiBskD,EAClC,EASAo0yB,EAAUronC,UAAUgxnC,yBAA2B,SAAUxrmC,EAAI8J,EAAMk/F,EAAYyigC,GAE3E,IAAIh9yB,EAAY,CAAElgV,KAAM,uBAAwByxB,GAAIA,EAAI8J,KAAMA,EAAMk/F,WAAYA,EAAYsX,OAAQmr/B,GAEpG5hoC,KAAKsgS,QAAQ,uBAAwBskD,EACzC,EAiBAo0yB,EAAUronC,UAAUkxnC,+BAAiC,SAAU1/T,EAAY11yB,EAAO7f,EAAM6ynC,EAAgBqC,EAAkBC,EAAeC,EAAmBl3B,EAAmBi2B,EAAcC,EAAYC,GAErM,IAAIr8yB,EAAY,CAAElgV,KAAM,6BAA8Boxa,UAAWqsZ,EAAY6kP,aAAcv6hC,EAAOswjC,eAAgBnwkC,EAAM6ynC,eAAgBA,EAAgBqC,iBAAkBA,EAAkBC,cAAeA,EAAeC,kBAAmBA,GACzOl3B,IACAlmxB,EAAUkmxB,kBAAoBA,EAC9BlmxB,EAAU+zxB,qBAAuBooB,EACjCn8yB,EAAUi0xB,mBAAqBmoB,GAE/BC,IACAr8yB,EAAUu8yB,uBAAyBF,GAEvCjhoC,KAAKsgS,QAAQ,6BAA8BskD,EAC/C,EAaAo0yB,EAAUronC,UAAU+ziC,iBAAmB,SAAUviP,EAAY11yB,EAAO7f,EAAM+3vB,EAAQr2nB,EAASmvV,EAAa2we,EAAWlk6B,GAC/G,IAAI06S,EAAY,CAAEkxF,UAAWqsZ,EAAYhsyB,GAAI1J,EAAO7f,KAAMA,EAAM+3vB,OAAQA,EAAQr2nB,QAASA,GACrF8/zB,IACAxpnB,EAAUwpnB,UAAYA,GAEtB3we,IACA74I,EAAU64I,YAAcA,GAExBvzb,IACA06S,EAAU16S,KAAOA,GAErBlqC,KAAKsgS,QAAQ,eAAgBskD,EACjC,EASAo0yB,EAAUronC,UAAUsxnC,oBAAsB,SAAU9/T,EAAY11yB,EAAO7f,EAAM+3vB,GACzE,IAAI//a,EAAY,CAAEkxF,UAAWqsZ,EAAYhsyB,GAAI1J,EAAO7f,KAAMA,EAAM+3vB,OAAQA,GACxE3kwB,KAAKsgS,QAAQ,kBAAmBskD,EACpC,EAaAo0yB,EAAUronC,UAAUuxnC,kBAAoB,SAAU//T,EAAYhsyB,EAAIvpB,EAAM0hI,EAASmvV,EAAa2we,EAAW9mJ,EAAkB7tC,GACvH,IAAI70b,EAAY,CAAEkxF,UAAWqsZ,EAAYhsyB,GAAIA,EAAIvpB,KAAMA,EAAM0hI,QAASA,EAASmvV,YAAaA,EAAa2we,UAAWA,EAAW9mJ,iBAAkBA,EAAkB7tC,gBAAiBA,GACpLz5wB,KAAKsgS,QAAQ,gBAAiBskD,EAClC,EAaAo0yB,EAAUronC,UAAUwxnC,8BAAgC,SAAUhgU,EAAY11yB,EAAO7f,EAAMw1nC,EAAsBN,EAAkBO,EAAoBzwyB,EAASD,GACxJ,IAAI/M,EAAY,CAAEkxF,UAAWqsZ,EAAYhsyB,GAAI1J,EAAO7f,KAAMA,EAAMw1nC,qBAAsBA,EAAsBN,iBAAkBA,EAAkBO,mBAAoBA,EAAoBponC,SAAU23U,EAASj4U,SAAUg4U,GACrN3xV,KAAKsgS,QAAQ,4BAA6BskD,EAC9C,EAaAo0yB,EAAUronC,UAAU2xnC,oBAAsB,SAAUngU,EAAY11yB,EAAO7f,EAAM0hI,EAASmvV,EAAa2we,EAAW30L,EAAiB6tC,GAC3H,IAAI1ie,EAAY,CAAEkxF,UAAWqsZ,EAAYhsyB,GAAI1J,EAAO7f,KAAMA,EAAM0hI,QAASA,EAASmvV,YAAaA,EAAa2we,UAAWA,EAAW30L,gBAAiBA,EAAiB6tC,iBAAkBA,GACtLtnzB,KAAKsgS,QAAQ,kBAAmBskD,EACpC,EAQAo0yB,EAAUronC,UAAU4xnC,oBAAsB,SAAUpsmC,EAAIgsyB,EAAYx9V,GAChE,IAAI//I,EAAY,CAAEzuT,GAAIA,EAAI2/Y,UAAWqsZ,EAAYx9V,UAAWA,GAC5D3ke,KAAKsgS,QAAQ,kBAAmBskD,EACpC,EAYAo0yB,EAAUronC,UAAU6xnC,qBAAuB,SAAUrsmC,EAAIgsyB,EAAYhjsB,EAAYq2qB,EAAsByrV,EAAqBtlsB,EAAYk8qB,GAEpI,IAAIjzxB,EAAY,CAAElgV,KAAM,mBAAoBsijC,aAAc7whC,EAAI2/Y,UAAWqsZ,EAAYhjsB,WAAYA,GAcjG,GAbIq2qB,IAEA5wd,EAAY,CAAElgV,KAAM,mBAAoBsijC,aAAc7whC,EAAI2/Y,UAAWqsZ,EAAYhjsB,WAAYA,EAAYq2qB,qBAAsBA,IAE/HyrV,IACAr8yB,EAAUu8yB,uBAAyBF,GAEnCtlsB,IACA/2G,EAAUkryB,wBAA0Bn0rB,GAEpCk8qB,IACAjzxB,EAAUizxB,kBAAoBA,GAE9B/qyB,KAAY,CACZ,GAAwB,aAApB3tM,EAAWvyH,KAAqB,CAEhC,IAAI4pkB,EAAY,CAAEX,QAAQ,EAAOC,UAAU,EAAOq1e,aAAa,EAAOp1e,aAAa,GACtD,IAAzB52c,EAAWq3c,UACXA,EAAUX,QAAS,EAEW,IAAzB12c,EAAWq3c,UAChBA,EAAUV,UAAW,EAES,IAAzB32c,EAAWq3c,UAChBA,EAAU20e,aAAc,EAEM,IAAzBhs7B,EAAWq3c,YAChBA,EAAUT,aAAc,GAE5B52c,EAAWq3c,UAAYA,CAC3B,CAEAx2kB,KAAKi8jC,WAAWmzB,gBAAgBtS,iBAAiB398B,EAAWvyH,KAChE,CACA5M,KAAKsgS,QAAQ,mBAAoBskD,EACrC,EAQAo0yB,EAAUronC,UAAUm7jC,uBAAyB,SAAU31iC,EAAIgsyB,EAAYhjsB,GAC/D2tM,MACA9sU,KAAKi8jC,WAAWmzB,gBAAgBvS,qBAGpC,IAAIj4vB,EAAY,CAAElgV,KAAM,qBAAsBsijC,aAAc7whC,EAAI2/Y,UAAWqsZ,EAAYhjsB,WAAYA,GACnGn/H,KAAKsgS,QAAQ,qBAAsBskD,EACvC,EAQAo0yB,EAAUronC,UAAU8xnC,0BAA4B,SAAUtsmC,EAAIgsyB,EAAYhjsB,GAEtE,IAAIylN,EAAY,CAAElgV,KAAM,qBAAsBsijC,aAAc7whC,EAAI2/Y,UAAWqsZ,EAAYhjsB,WAAYA,GACnGn/H,KAAKsgS,QAAQ,wBAAyBskD,EAC1C,EAKAo0yB,EAAUronC,UAAUw5kC,uBAAyB,SAAUhoR,GACnDni0B,KAAK67nC,wBAAyB,EAC9B,IAAIj3yB,EAAY,CAAEkxF,UAAWqsZ,GAC7Bni0B,KAAKsgS,QAAQ,qBAAsBskD,EACvC,EAQAo0yB,EAAUronC,UAAU+xnC,qBAAuB,SAAUvgU,EAAYliyB,EAAMoN,GACnE,GAAIrtC,KAAK67nC,uBAAwB,CAC7B,IAAIj3yB,EAAY,CAAEkxF,UAAWqsZ,EAAYv4xB,YAAa3J,EAAM6pgC,WAAYz8/B,GACxErtC,KAAKsgS,QAAQ,mBAAoBskD,GACjC5kV,KAAK67nC,wBAAyB,CAClC,CACJ,EAMA7C,EAAUronC,UAAU4ziC,cAAgB,SAAU3nlB,EAAQnwc,GAC9Cs/S,GAAkBt/S,IAAUzsB,KAAKi8jC,WAAWgL,eAAeC,eAAiBlnkC,KAAKi8jC,WAAW8P,UAC5Ft/iC,EAAQzsB,KAAKi8jC,WAAWgL,eAAeC,cAEvClnkC,KAAKm/H,WACLn/H,KAAKm/H,WAAW860B,kBAAkBxt7B,EAAO,KAAM,KAAM,KAAMmwc,GAEtD58d,KAAK0rkC,oBACV1rkC,KAAK0rkC,mBAAmBroK,aAAa524B,EAAOmwc,EAEpD,EAeAo8pB,EAAUronC,UAAUgynC,qBAAuB,SAAUxgU,EAAY11yB,EAAO7f,EAAM+3vB,EAAQr3qB,EAAUw9gC,EAAmBi2B,EAAcC,EAAY/lB,EAAegmB,GACxJ,IAAIr8yB,EAAY,CAAElgV,KAAM,mBAAoBoxa,UAAWqsZ,EAAY6kP,aAAcv6hC,EAAOswjC,eAAgBnwkC,EAAMs0nC,gBAAiBv8X,EAAQ6+S,mBAAoBl29B,GACvJw9gC,IACAlmxB,EAAUkmxB,kBAAoBA,EAC9BlmxB,EAAU+zxB,qBAAuBooB,EACjCn8yB,EAAUi0xB,mBAAqBmoB,GAE/B/lB,IACAr2xB,EAAUq2xB,cAAgBA,GAE1BgmB,IACAr8yB,EAAUu8yB,uBAAyBF,GAEvCjhoC,KAAKsgS,QAAQ,mBAAoBskD,EACrC,EAWAo0yB,EAAUronC,UAAUiynC,qBAAuB,SAAUzgU,EAAYhsyB,EAAIvpB,EAAM42iC,EAAoBl8P,EAAkB7tC,GAC7G,IAAI70b,EAAY,CAAElgV,KAAM,mBAAoBoxa,UAAWqsZ,EAAY6kP,aAAc7whC,EAAI4mjC,eAAgBnwkC,EAAM42iC,mBAAoBA,EAAoBl8P,iBAAkBA,EAAkB7tC,gBAAiBA,GACxMz5wB,KAAKsgS,QAAQ,mBAAoBskD,EACrC,EAWAo0yB,EAAUronC,UAAUkynC,mBAAqB,SAAU1gU,EAAYhsyB,EAAIvpB,EAAM42iC,EAAoBl8P,EAAkB7tC,GAC3G,IAAI70b,EAAY,CAAElgV,KAAM,iBAAkBoxa,UAAWqsZ,EAAY6kP,aAAc7whC,EAAI4mjC,eAAgBnwkC,EAAM42iC,mBAAoBA,EAAoBl8P,iBAAkBA,EAAkB7tC,gBAAiBA,GACtMz5wB,KAAKsgS,QAAQ,iBAAkBskD,EACnC,EAYAo0yB,EAAUronC,UAAUy+lC,wBAA0B,SAAUj5kC,EAAIgsyB,EAAY46Q,EAAgBp4U,EAAQxloB,EAAYs6oB,EAAiBukT,GACzH,IAAIp5uB,EAAY,CAAElgV,KAAM,sBAAuBsijC,aAAc7whC,EAAI2/Y,UAAWqsZ,EAAY46Q,eAAgBA,EAAgBskD,iBAAkB18X,EAAQxloB,WAAYA,EAAY6mB,MAAOyznB,EAAgB91oB,KAAMsiB,MAAOwznB,EAAgBvrnB,IAAK9sI,EAAG48iC,EAAcr67B,KAAM9kH,EAAGm/iC,EAAc9v6B,KACvQ4+K,OAC2B,0BAAvB3tM,EAAWm4U,QACX1yH,EAAUm4vB,eAAiB,YAEC,qBAAvB598B,EAAWm4U,QAChB1yH,EAAUm4vB,eAAiB,OAEC,uBAAvB598B,EAAWm4U,QAChB1yH,EAAUm4vB,eAAiB,SAEC,UAAvB598B,EAAWm4U,QAChB1yH,EAAUm4vB,eAAiB,QAEC,WAAvB598B,EAAWm4U,UAChB1yH,EAAUm4vB,eAAiB,WAGnC/8kC,KAAKsgS,QAAQ,sBAAuBskD,EACxC,EAMAo0yB,EAAUronC,UAAU2+lC,yBAA2B,SAAUntS,GACrD,IAAIv9e,EAAY,CAAElgV,KAAM,uBAAwBoxa,UAAWqsZ,GAC3Dni0B,KAAKsgS,QAAQ,uBAAwBskD,EACzC,EAMAo0yB,EAAUronC,UAAUu9lC,kBAAoB,SAAUlo9B,EAAOC,GACrD,IAAI2+L,EAAY,CAAE5+L,MAAOA,EAAOC,MAAOA,GACvCjmJ,KAAKsgS,QAAQ,gBAAiBskD,EAClC,EAKAo0yB,EAAUronC,UAAU63lC,kBAAoB,SAAUrqoB,GAC9C,IAAIv5I,EAAY,CAAEu5I,SAAUA,GAC5Bn+d,KAAKsgS,QAAQ,gBAAiBskD,EAClC,EAMAo0yB,EAAUronC,UAAUi4lC,gBAAkB,SAAUzqoB,EAAU2kqB,GACtD,IAAIl+yB,EAAY,CAAEu5I,SAAUA,EAAUkmoB,iBAAkBy+B,GACxD9ioC,KAAKsgS,QAAQ,cAAeskD,EAChC,EAKAo0yB,EAAUronC,UAAUoynC,eAAiB,WACjC,OAAOpn8B,IAAU37L,UAAM,OAAQ,GAAQ,WACnC,IAAI4kV,EACJ,OAAOhb,IAAY5pU,MAAM,SAAUs1C,GAC/B,OAAQA,EAAG84P,OACP,KAAK,EAED,OADAw2C,EAAY,CAAEu5I,SAAUn+d,KAAK0ilC,iBAAkB5hgC,QAAQ,GAClDgsP,GACE,CAAC,EAAa9sU,KAAK24Z,aAAa,aAAc/zE,IAD/B,CAAC,EAAa,GAExC,KAAK,EAED,OADAA,EAAatvS,EAAG2yK,QAAW28H,EACpB,CAAC,EAAa,GACzB,KAAK,EACD5kV,KAAK24Z,aAAa,aAAc/zE,GAChCtvS,EAAG84P,MAAQ,EACf,KAAK,EAID,OAHKw2C,EAAU9jQ,QACX9gF,KAAKkkqB,YAAY92V,QAEd,CAAC,GAEpB,GACJ,GACJ,EAQA4rzB,EAAUronC,UAAUgoZ,aAAe,SAAUpiY,EAAWtd,GACpD,OAAO0iL,IAAU37L,UAAM,OAAQ,GAAQ,WACnC,IAAI4kV,EACJ,OAAOhb,IAAY5pU,MAAM,SAAUs1C,GAC/B,OAAQA,EAAG84P,OACP,KAAK,EAAG,MAAO,CAAC,EAAapuS,KAAKsgS,QAAQ/pQ,EAAWtd,IACrD,KAAK,EAKD,OAJA2rU,EAAYtvS,EAAG2yK,OACX6kH,IAAiC,kBAAd8X,IACnBA,EAAYn0S,KAAKuL,MAAM4oS,IAEpB,CAAC,EAAcA,GAElC,GACJ,GACJ,EAKAo0yB,EAAUronC,UAAUqynC,aAAe,SAAU7kqB,GACzC,IAAIv5I,EAAY,CAAEu5I,SAAUA,GAC5Bn+d,KAAKsgS,QAAQ,WAAYskD,EAC7B,EAKAo0yB,EAAUronC,UAAUsynC,mBAAqB,SAAU9gU,GAC/C,IAAIv9e,EAAY,CAAElgV,KAAM,iBAAkBy9zB,WAAYA,GACtDni0B,KAAKsgS,QAAQ,iBAAkBskD,EACnC,EAQAo0yB,EAAUronC,UAAUuynC,kBAAoB,SAAU/gU,EAAYj4uB,EAAUjqD,EAAMk+b,GAE1E,IAAIv5I,EAAY,CAAElgV,KAAM,gBAAiBy9zB,WAAYA,EAAYj4uB,SAAUA,EAAUjqD,KAAMA,EAAMk+b,SAAUA,GAC3Gn+d,KAAKsgS,QAAQ,gBAAiBskD,EAClC,EAMAo0yB,EAAUronC,UAAU6gjC,gBAAkB,SAAUygD,GAC5C,IAAIrtxB,EAAY,CAAElgV,KAAM,yBAA0ButmC,WAAYA,EAAYgY,cAAe,MACzFjqnC,KAAKsgS,QAAQ,cAAeskD,EAChC,EAMAo0yB,EAAUronC,UAAU0hmC,gBAAkB,SAAU8wB,GAC5C,IAAIv+yB,EAAY,CAAElgV,KAAM,yBAA0By+nC,WAAYA,EAAYlZ,cAAe,MACzFjqnC,KAAKsgS,QAAQ,cAAeskD,EAChC,EAMAo0yB,EAAUronC,UAAUmimC,kBAAoB,SAAUb,GAC9C,IAAIrtxB,EAAY,CAAElgV,KAAM,2BAA4ButmC,WAAYA,EAAYgY,cAAe,MAC3FjqnC,KAAKsgS,QAAQ,gBAAiBskD,EAClC,EAOAo0yB,EAAUronC,UAAUk0lC,kBAAoB,SAAUs+B,EAAYhlqB,GAC1D,IAAIv5I,EAAY,CAAElgV,KAAM,2BAA4By+nC,WAAYA,EAAYhlqB,SAAUA,EAAU8rpB,cAAe,MAC/GjqnC,KAAKsgS,QAAQ,gBAAiBskD,EAClC,EAOAo0yB,EAAUronC,UAAU4hjC,iBAAmB,SAAUrohC,EAAM8okC,GAEnD,IAAIpuxB,EAAY,CAAElgV,KAAM,0BAA2ButmC,WAAY/nkC,EAAM8okC,aAAcA,EAAciX,cAAe,MAChHjqnC,KAAKsgS,QAAQ,eAAgBskD,EACjC,EAOAo0yB,EAAUronC,UAAU4hmC,iBAAmB,SAAUrokC,EAAM8okC,GAEnD,IAAIpuxB,EAAY,CAAElgV,KAAM,0BAA2By+nC,WAAYj5lC,EAAM8okC,aAAcA,EAAciX,cAAe,MAChHjqnC,KAAKsgS,QAAQ,eAAgBskD,EACjC,EAMAo0yB,EAAUronC,UAAUm1lC,sBAAwB,SAAU57jC,GAClD,IAAI06S,EAAY,CAAElgV,KAAM,wBAAyButmC,WAAY,KAAMgY,cAAe//kC,GAClFlqC,KAAKsgS,QAAQ,cAAeskD,EAChC,EAMAo0yB,EAAUronC,UAAUw0lC,sBAAwB,SAAUj7jC,GAClD,IAAI06S,EAAY,CAAElgV,KAAM,wBAAyBy+nC,WAAY,KAAMlZ,cAAe//kC,GAClFlqC,KAAKsgS,QAAQ,cAAeskD,EAChC,EAMAo0yB,EAAUronC,UAAUq1lC,sBAAwB,SAAU97jC,GAClD,IAAI06S,EAAY,CAAElgV,KAAM,0BAA2ButmC,WAAY/nkC,EAAM+/kC,cAAe//kC,GACpFlqC,KAAKsgS,QAAQ,gBAAiBskD,EAClC,EAOAo0yB,EAAUronC,UAAUi0lC,sBAAwB,SAAU16jC,EAAMi0b,GACxD,IAAIv5I,EAAY,CAAElgV,KAAM,0BAA2By+nC,WAAYj5lC,EAAMi0b,SAAUA,EAAU8rpB,cAAe//kC,GACxGlqC,KAAKsgS,QAAQ,gBAAiBskD,EAClC,EAOAo0yB,EAAUronC,UAAUo1lC,qBAAuB,SAAU77jC,EAAM8okC,GAEvD,IAAIpuxB,EAAY,CAAElgV,KAAM,yBAA0ButmC,WAAY/nkC,EAAM8okC,aAAcA,EAAciX,cAAe//kC,GAC/GlqC,KAAKsgS,QAAQ,eAAgBskD,EACjC,EAOAo0yB,EAAUronC,UAAU+0lC,qBAAuB,SAAUx7jC,EAAM8okC,GAEvD,IAAIpuxB,EAAY,CAAElgV,KAAM,yBAA0By+nC,WAAYj5lC,EAAM8okC,aAAcA,EAAciX,cAAe//kC,GAC/GlqC,KAAKsgS,QAAQ,eAAgBskD,EACjC,EAMAo0yB,EAAUronC,UAAUyynC,4BAA8B,SAAUC,GACxD,IAAIz+yB,EAAY,CAAE69wB,uBAAwB4gC,GAC1CrjoC,KAAKsgS,QAAQ,uBAAwBskD,EACzC,EAOAo0yB,EAAUronC,UAAU2ynC,oBAAsB,SAAUrwqB,EAAYswqB,GAE5D,IAAI3+yB,EAAY,CAAElgV,KAAM,kBAAmBuud,WAAYA,EAAY/9C,UAAWqutB,GAC9EvjoC,KAAKsgS,QAAQ,kBAAmBskD,EACpC,EAOAo0yB,EAAUronC,UAAU6ynC,uBAAyB,SAAUvwqB,EAAYswqB,GAE/D,IAAI3+yB,EAAY,CAAElgV,KAAM,qBAAsBuud,WAAYA,EAAY/9C,UAAWqutB,GACjFvjoC,KAAKsgS,QAAQ,qBAAsBskD,EACvC,EASAo0yB,EAAUronC,UAAU8ynC,wBAA0B,SAAUxwqB,EAAYswqB,EAAa5+X,EAAQw9D,GAErF,IAAIv9e,EAAY,CAAElgV,KAAM,sBAAuBuud,WAAYA,EAAY/9C,UAAWqutB,EAAa5+X,OAAQA,EAAQw9D,WAAYA,GAC3Hni0B,KAAKsgS,QAAQ,sBAAuBskD,EACxC,EAQAo0yB,EAAUronC,UAAUwlkC,mBAAqB,SAAUxxU,EAAQyxU,EAAaC,EAAO5pjC,GAC3E0pjC,IAAmBxxU,EAAQyxU,EAAaC,EAAO5pjC,EAAOzsB,KAC1D,EAMAg5nC,EAAUronC,UAAU+7jC,eAAiB,SAAUjgjC,EAAO0qjB,GAClDn3kB,KAAK87nC,QAAQpvD,eAAejgjC,EAAO0qjB,EACvC,EASA6hjB,EAAUronC,UAAU65U,OAAS,SAAU68uB,EAAUlwf,EAAiBo9iB,EAAmBC,GACjF,IAAI/mC,EAAsBztlC,KAAKsrV,uBAE/B,GADAtrV,KAAK0tlC,yBAAwB,GACzB1tlC,KAAKikjC,iBAAkB,CACvB,IAAIjtiC,EAAShX,KAAKikjC,iBAAiBsE,2BAC/Bu0B,EAAmB9lkC,GAAUA,EAAOi0kC,4BAEpC9r9B,EAAan/H,KAAKgjc,cAAc5tP,YAAY,GAChD,GAAI0n4B,EAAkB,CAElB,IAAItR,EAAexrkC,KAAKikjC,iBAAiBsE,2BAA2BmB,4BACpE1pjC,KAAKikjC,iBAAiBsE,2BAA2Bm7E,gCAAgC5mD,GAAkB,GACnG98kC,KAAK8rkC,uBAAuBN,EAAavkB,UAAWukB,EAAarpQ,WAAYqpQ,EACjF,CACK+oD,GACGv0nC,KAAKi8jC,WAAWgL,gBAAkBjnkC,KAAKi8jC,WAAWgL,eAAeC,cAAgB,IAC5ElnkC,KAAKi8jC,WAAW6kB,YAAc3h9B,GAAiD,yBAAnCA,EAAW416B,qBAAqF,kBAAnC516B,EAAW416B,qBAA8E,mBAAnC516B,EAAW416B,qBAC3K/0iC,KAAK8rkC,uBAAuB3s8B,EAAW8n7B,UAAW9n7B,EAAW22S,UAAW32S,EAIxF,CACA,GAAIn/H,KAAK0rkC,mBAAoB,CACzB,IAAIH,EAAYvrkC,KAAKgjc,cAAcmmnB,WAAW,GAC9C,GAAIoiB,GACIvrkC,KAAK0rkC,oBAAsBH,GAAaA,EAAUt2B,wBAAyB,CAC3E,IAAI717B,EAAQ,CACR16G,KAAM6mkC,EAAU7mkC,KAAMyxB,GAAIo1iC,EAAUp1iC,GAAIv0B,MAAO2pkC,EAAU3pkC,MAAO4gd,WAAY+onB,EAAU/onB,WAAYvjK,SAAUssxB,EAAUtsxB,SAAUu3R,UAAW+0f,EAAU/0f,UACrJ//c,MAAO808B,EAAU908B,MAAOmnW,gBAAiB2tmB,EAAU3tmB,gBAAiB2lW,YAAagoQ,EAAUhoQ,YAC3F6qI,UAAWm9H,EAAUn9H,UAAWpyrB,UAAWuvzB,EAAUvvzB,UAAWijI,WAAYssrB,EAAUtsrB,WAAY13I,WAAYgk0B,EAAUhk0B,WACxH35L,UAAW29/B,EAAU39/B,UAAWrzD,WAAYgxjC,EAAUhxjC,WAAYwxjC,QAASR,EAAUQ,QAASx5pB,SAAUg5pB,EAAUr6T,YAAahlV,QAASq/oB,EAAUr/oB,QAASpta,QAASysjC,EAAUzsjC,QAC9Kkta,UAAWu/oB,EAAUv/oB,UAAW2P,WAAY4voB,EAAU5voB,YAE1D37b,KAAKgskC,2BAA2B,oBAAqB5s9B,EAAOms9B,EAAUz1pB,UAC1E,CAER,CACA,IAAI9vO,EAAQhmM,KACZA,KAAKi8jC,WAAWwhB,kBAAkBp3kC,SAAQ,SAAUkvB,GAChDywK,EAAMwxc,eAAejinB,EACzB,IACAv1B,KAAK87nC,QAAQtxyB,OAAO68uB,EAAUlwf,EAAiBo9iB,EAAmBC,GAClEx0nC,KAAK0tlC,wBAAwBD,GAAqB,EACtD,EAKAurC,EAAUronC,UAAUy2jC,aAAe,SAAUglD,GACzC,OAAOpsnC,KAAK87nC,QAAQ10D,aAAaglD,EACrC,EAUA4M,EAAUronC,UAAU27jC,oBAAsB,SAAU1wuB,EAAOO,EAAO25E,EAAWqhK,EAAiB52O,GAC1F,OAAOvgW,KAAK87nC,QAAQxvD,oBAAoB1wuB,EAAOO,EAAO25E,EAAWqhK,EAAiB52O,EACtF,EAOAy4xB,EAAUronC,UAAUu/jC,mBAAqB,SAAU+C,EAAIC,EAAI39B,GACvD,OAAOv1iC,KAAK87nC,QAAQ5rD,mBAAmB+C,EAAIC,EAAI39B,EACnD,EAYAyjF,EAAUronC,UAAUo+jC,kBAAoB,SAAU3muB,EAAUv3V,EAAKy1V,EAAOsmf,EAASvk1B,EAAQkvnC,EAAcpgjB,GACnG,OAAOn3kB,KAAK87nC,QAAQ/sD,kBAAkB3muB,EAAUv3V,EAAKy1V,EAAOsmf,EAASvk1B,EAAQ,KAAM8ukB,EACvF,EAKA6hjB,EAAUronC,UAAU6moB,eAAiB,SAAU40e,GAC3C,IAAI3+B,EAAsBztlC,KAAKsrV,uBAC/BtrV,KAAK0tlC,yBAAwB,GAC7B,IAAIi2C,EAAgB3joC,KAAKgjc,cACd2gsB,EAAcvu7B,YAAYhyM,OAAS,EAAIpD,KAAKgjc,cAAc5tP,YAAY,GAAKp1M,KAAKgjc,cAAcmmnB,WAAW,GAsBpH,GArBIw6E,EAAcvu7B,YAAYhyM,OAAS,GACnCugoC,EAAcpxyB,QAAU,EACxBoxyB,EAAcnxyB,QAAU,EACxBmxyB,EAAcnlnC,MAAQ,EACtBmlnC,EAAc/6+B,OAAS,EACvB+6+B,EAAczyX,YAAc,EAC5ByyX,EAAcvu7B,YAAc,GAC5Buu7B,EAAcx5nC,QAAU,MAEnBw5nC,EAAcx6E,WAAW/ljC,OAAS,IACvCugoC,EAAcpxyB,QAAU,EACxBoxyB,EAAcnxyB,QAAU,EACxBmxyB,EAAcnlnC,MAAQ,EACtBmlnC,EAAc/6+B,OAAS,EACvB+6+B,EAAczyX,YAAc,EAC5ByyX,EAAcx6E,WAAa,GAC3Bw6E,EAAcx5nC,QAAU,MAE5BnK,KAAK87nC,QAAQvM,mBAAmBnD,GAChCpsnC,KAAKi8jC,WAAWmT,oBAAqB,EACrCpvkC,KAAKi8jC,WAAWoT,mBAAoB,EAChCrvkC,KAAKikjC,iBAAkB,CACvB,IAAIjtiC,EAAShX,KAAKikjC,iBAAiBsE,2BACnC,GAAIvxiC,EAAQ,CACR,IAAI8lkC,EAAmB9lkC,EAAOi0kC,4BAC9BjrlC,KAAKikjC,iBAAiBsE,2BAA2Bq7E,iCACjD5joC,KAAKikjC,iBAAiBsE,2BAA2Bm7E,gCAAgC5mD,EACrF,CACJ,CACA98kC,KAAK0tlC,wBAAwBD,GAAqB,EACtD,EAOAurC,EAAUronC,UAAU+ylC,6BAA+B,SAAUC,GAEzD,OADiB3jmC,KAAKi8jC,WAAWynC,6BAA6BC,EAElE,EAQAq1B,EAAUronC,UAAUmzlC,8BAAgC,SAAUH,EAAaxhS,GAEvE,OADgBni0B,KAAKi8jC,WAAW6nC,8BAA8BH,EAAaxhS,EAE/E,EAQA62T,EAAUronC,UAAUozlC,8BAAgC,SAAUC,EAAW7hS,GAErE,OADkBni0B,KAAKi8jC,WAAW8nC,8BAA8BC,EAAW7hS,EAE/E,EAQA62T,EAAUronC,UAAUszlC,iCAAmC,SAAUD,EAAW7hS,GAExE,OADqBni0B,KAAKi8jC,WAAWgoC,iCAAiCD,EAAW7hS,EAErF,EAMA62T,EAAUronC,UAAUkznC,WAAa,SAAUjj2B,GACvC5gS,KAAKytiC,oBAAoBo2F,WAAWjj2B,EACxC,EAKAo41B,EAAUronC,UAAUyiB,IAAM,SAAUviB,GAChC,OAAO7Q,KAAK87nC,QAAQ1omC,IAAIviB,EAC5B,EAKAmonC,EAAUronC,UAAUwiB,OAAS,SAAUtiB,GACnC,OAAO7Q,KAAK87nC,QAAQ3omC,OAAOtiB,EAC/B,EAIAmonC,EAAUronC,UAAUyd,KAAO,WAKvB,OAJIpuB,KAAKm/H,WACLn/H,KAAKm/H,WAAWsq7B,eAAgB,EAC3BzpjC,KAAK2pjC,cAAgB3pjC,KAAKopjC,eAC/BppjC,KAAK2pjC,aAAaF,eAAgB,GAC/BzpjC,KAAK87nC,QAAQ1tmC,MACxB,EAMA4qmC,EAAUronC,UAAU2/Z,OAAS,SAAUiB,EAAO4lK,GAC1C,OAAOn3kB,KAAK87nC,QAAQxrtB,OAAOtwa,KAAKgjc,cAAezxB,EAAO,KAAM4lK,EAChE,EAKA6hjB,EAAUronC,UAAUkre,MAAQ,SAAUhre,GAClC,IAAI4b,EAIJ,OAHIzsB,KAAKi8jC,WAAWgL,eAAeC,eAC/Bz6iC,EAAQzsB,KAAKi8jC,WAAWgL,eAAeC,cAEpClnkC,KAAK87nC,QAAQjgpB,MAAMhre,EAAK4b,GAAS,EAC5C,EAIAusmC,EAAUronC,UAAUkoV,QAAU,WAC1B,IAAK,IAAI1sV,EAAI,EAAGA,EAAInM,KAAKo1M,YAAYhyM,OAAQ+I,IAAK,CAC9C,QAAgC9I,IAA5BrD,KAAKg3lC,YAAY5zlC,OAAsB,CAEvC,IADA,IACSkub,EAAM,EAAGA,EAAMtxb,KAAKg3lC,YAAY5zlC,OAAQkub,IAAO,CAEpD,IADA,IAAI2tB,EAAUj/c,KAAKg3lC,YAAY1lqB,GAAK2tB,QAC3Bjvc,EAAI,EAAGA,EAAIivc,EAAQ77c,OAAQ4M,IAChCivc,EAAQzpb,OAAOxlB,EAAG,UAEfhQ,KAAKg3lC,YAAY1lqB,EAC5B,CACItxb,KAAKo1M,YAAYjpM,WACVnM,KAAKo1M,YAAYjpM,GAExBnM,KAAKgjc,cAAc5tP,aAAep1M,KAAKgjc,cAAc5tP,YAAYjpM,WAC1DnM,KAAKgjc,cAAc5tP,YAAYjpM,GAE1CnM,KAAKg3lC,YAAc,GACnBh3lC,KAAKukjC,eACT,CACIvkjC,KAAKo1M,aAA2C,IAA5Bp1M,KAAKo1M,YAAYhyM,SACrCpD,KAAKo1M,YAAYhyM,OAAS,EAC1BpD,KAAKgjc,cAAc5tP,YAAYhyM,OAAS,EAEhD,CACJ,EAIA41nC,EAAUronC,UAAU63kC,IAAM,WACtB,IAAI/7jC,EAQJ,OAPIzsB,KAAKi8jC,WAAWgL,eAAeC,eAC/Bz6iC,EAAQzsB,KAAKi8jC,WAAWgL,eAAeC,cAEvClnkC,KAAKm/H,WACLn/H,KAAKm/H,WAAWsq7B,eAAgB,EAC3BzpjC,KAAK2pjC,cAAgB3pjC,KAAKopjC,eAC/BppjC,KAAK2pjC,aAAaF,eAAgB,GAC/BzpjC,KAAK87nC,QAAQtzC,IAAI/7jC,GAAS,EACrC,EAMAusmC,EAAUronC,UAAUg+jC,mBAAqB,SAAUo+B,EAAc78lC,GAC7DlQ,KAAK87nC,QAAQntD,mBAAmBo+B,EAAc78lC,EAClD,EASA8onC,EAAUronC,UAAU+8kC,wBAA0B,SAAU/8rB,EAAQmzuB,QACnC,IAArBA,IAA+BA,GAAmB,GAClDh3zB,OACA9sU,KAAKsrV,uBAAyBqlE,EAC1BmzuB,IACA9joC,KAAK0rV,YAAc,CAAC,GAGhC,EAWAstyB,EAAUronC,UAAUg9jC,yBAA2B,SAAU9rmB,EAAIC,EAAIhsD,EAAWugtB,EAAYjpD,EAAS3mX,GAC7F,OAAOzmtB,KAAK87nC,QAAQnuD,yBAAyB9rmB,EAAIC,EAAIhsD,EAAWugtB,EAAYjpD,EAAS3mX,EACzF,EACA12X,IAAW,CACPjB,MACDkqyB,EAAUronC,UAAW,kBAAc,GACtCo/U,IAAW,CACPjB,GAAS,IACVkqyB,EAAUronC,UAAW,iBAAa,GACrCo/U,IAAW,CACPjB,IAAS,IACVkqyB,EAAUronC,UAAW,wBAAoB,GAC5Co/U,IAAW,CACPjB,GAAS,IACVkqyB,EAAUronC,UAAW,yBAAqB,GAC7Co/U,IAAW,CACPjB,MACDkqyB,EAAUronC,UAAW,oBAAgB,GACxCo/U,IAAW,CACPjB,GAAS,OACVkqyB,EAAUronC,UAAW,gCAA4B,GACpDo/U,IAAW,CACPjB,MACDkqyB,EAAUronC,UAAW,wBAAoB,GAC5Co/U,IAAW,CACPjB,GAAS,SACVkqyB,EAAUronC,UAAW,cAAU,GAClCo/U,IAAW,CACPjB,GAAS,SACVkqyB,EAAUronC,UAAW,aAAS,GACjCo/U,IAAW,CACPjB,IAAS,IACVkqyB,EAAUronC,UAAW,qBAAiB,GACzCo/U,IAAW,CACPjB,GAAS,IACVkqyB,EAAUronC,UAAW,kBAAc,GACtCo/U,IAAW,CACPjB,GAAS,CAAC,OACXkqyB,EAAUronC,UAAW,wBAAoB,GAC5Co/U,IAAW,CACPjB,GAAS,IACVkqyB,EAAUronC,UAAW,0BAAsB,GAC9Co/U,IAAW,CACPjB,IAAS,IACVkqyB,EAAUronC,UAAW,8BAA0B,GAClDo/U,IAAW,CACPjB,IAAS,IACVkqyB,EAAUronC,UAAW,+BAA2B,GACnDo/U,IAAW,CACPjB,IAAS,IACVkqyB,EAAUronC,UAAW,0BAAsB,GAC9Co/U,IAAW,CACPjB,IAAS,IACVkqyB,EAAUronC,UAAW,0BAAsB,GAC9Co/U,IAAW,CACPjB,IAAS,IACVkqyB,EAAUronC,UAAW,+BAA2B,GACnDo/U,IAAW,CACPjB,IAAS,IACVkqyB,EAAUronC,UAAW,8BAA0B,GAClDo/U,IAAW,CACPjB,IAAS,IACVkqyB,EAAUronC,UAAW,uBAAmB,GAC3Co/U,IAAW,CACPjB,IAAS,IACVkqyB,EAAUronC,UAAW,+BAA2B,GACnDo/U,IAAW,CACPjB,IAAS,IACVkqyB,EAAUronC,UAAW,kCAA8B,GACtDo/U,IAAW,CACPjB,IAAS,IACVkqyB,EAAUronC,UAAW,oCAAgC,GACxDo/U,IAAW,CACPjB,IAAS,IACVkqyB,EAAUronC,UAAW,iCAA6B,GACrDo/U,IAAW,CACPjB,IAAS,IACVkqyB,EAAUronC,UAAW,sBAAkB,GAC1Co/U,IAAW,CACPjB,IAAS,IACVkqyB,EAAUronC,UAAW,mBAAe,GACvCo/U,IAAW,CACPjB,IAAS,IACVkqyB,EAAUronC,UAAW,2BAAuB,GAC/Co/U,IAAW,CACPjB,IAAS,IACVkqyB,EAAUronC,UAAW,uBAAmB,GAC3Co/U,IAAW,CACPjB,IAAS,IACVkqyB,EAAUronC,UAAW,2BAAuB,GAC/Co/U,IAAW,CACPjB,IAAS,IACVkqyB,EAAUronC,UAAW,2BAAuB,GAC/Co/U,IAAW,CACPjB,IAAS,IACVkqyB,EAAUronC,UAAW,sBAAkB,GAC1Co/U,IAAW,CACPjB,IAAS,IACVkqyB,EAAUronC,UAAW,4BAAwB,GAChDo/U,IAAW,CACPjB,IAAS,IACVkqyB,EAAUronC,UAAW,uBAAmB,GAC3Co/U,IAAW,CACPjB,IAAS,IACVkqyB,EAAUronC,UAAW,kCAA8B,GACtDo/U,IAAW,CACPjB,IAAS,IACVkqyB,EAAUronC,UAAW,2BAAuB,GAC/Co/U,IAAW,CACPjB,IAAS,IACVkqyB,EAAUronC,UAAW,2BAAuB,GAC/Co/U,IAAW,CACPjB,GAAS,eACVkqyB,EAAUronC,UAAW,0BAAsB,GAC9Co/U,IAAW,CACPjB,GAAS,eACVkqyB,EAAUronC,UAAW,yBAAqB,GAC7Co/U,IAAW,CACPjB,GAAS,KACVkqyB,EAAUronC,UAAW,+BAA2B,GACnDo/U,IAAW,CACPjB,GAAS,CAAEpqV,KAAM,GAAIyxB,GAAI,GAAIvpB,KAAM,GAAIswd,YAAY,EAAOvhC,YAAY,EAAO3P,WAAW,EAAOpqb,MAAO,GAAI4+iC,cAAe,CAAC,IAAKv3d,SAAU,GAAIzmI,WAAY,YAAavjK,SAAU,GAAIu3R,UAAW,OAAQ//c,MAAO,QAASmnW,gBAAiB,QAAS5hN,UAAW,OAAQzU,WAAY,UAAW35L,UAAW,EAAGrzD,YAAY,EAAOwxjC,SAAS,EAAO7/oB,QAAS,GAAIpW,WAAY,EAAGh3Z,QAAS,GAAI2wjC,2BAA4B,CAAEnh8B,QAAS,EAAGsvV,gBAAiB,SAAUp/c,MAAO,GAAIoqI,OAAQ,GAAIq2J,SAAU,GAAIh/Q,KAAM,KAAMw2F,MAAO,YACnfuigC,EAAUronC,UAAW,4BAAwB,GAChDo/U,IAAW,CACPjB,IAAS,IACVkqyB,EAAUronC,UAAW,wBAAoB,GAC5Co/U,IAAW,CACPjB,IAAS,IACVkqyB,EAAUronC,UAAW,0BAAsB,GAC9Co/U,IAAW,CACPjB,IAAS,IACVkqyB,EAAUronC,UAAW,2BAAuB,GAC/Co/U,IAAW,CACPjB,IAAS,IACVkqyB,EAAUronC,UAAW,wBAAoB,GAC5Co/U,IAAW,CACPjB,IAAS,IACVkqyB,EAAUronC,UAAW,yCAAqC,GAC7Do/U,IAAW,CACPjB,IAAS,IACVkqyB,EAAUronC,UAAW,uBAAmB,GAC3Co/U,IAAW,CACPjB,IAAS,IACVkqyB,EAAUronC,UAAW,2BAAuB,GAC/Co/U,IAAW,CACPjB,IAAS,IACVkqyB,EAAUronC,UAAW,wBAAoB,GAC5Co/U,IAAW,CACPjB,IAAS,IACVkqyB,EAAUronC,UAAW,wBAAoB,GAC5Co/U,IAAW,CACPjB,IAAS,IACVkqyB,EAAUronC,UAAW,wBAAoB,GAC5Co/U,IAAW,CACPjB,IAAS,IACVkqyB,EAAUronC,UAAW,0BAAsB,GAC9Co/U,IAAW,CACPjB,IAAS,IACVkqyB,EAAUronC,UAAW,oBAAgB,GACxCo/U,IAAW,CACPjB,IAAS,IACVkqyB,EAAUronC,UAAW,kCAA8B,GACtDo/U,IAAW,CACPjB,IAAS,IACVkqyB,EAAUronC,UAAW,2BAAuB,GAC/Co/U,IAAW,CACPjB,IAAS,IACVkqyB,EAAUronC,UAAW,yBAAqB,GAC7Co/U,IAAW,CACPjB,IAAS,IACVkqyB,EAAUronC,UAAW,yBAAqB,GAC7Co/U,IAAW,CACPjB,IAAS,IACVkqyB,EAAUronC,UAAW,sBAAkB,GAC1Co/U,IAAW,CACPjB,IAAS,IACVkqyB,EAAUronC,UAAW,kCAA8B,GACtDo/U,IAAW,CACPjB,IAAS,IACVkqyB,EAAUronC,UAAW,6BAAyB,GACjDo/U,IAAW,CACPjB,IAAS,IACVkqyB,EAAUronC,UAAW,+BAA2B,GACnDo/U,IAAW,CACPjB,IAAS,IACVkqyB,EAAUronC,UAAW,8BAA0B,GAClDo/U,IAAW,CACPjB,IAAS,IACVkqyB,EAAUronC,UAAW,mCAA+B,GACvDo/U,IAAW,CACPjB,IAAS,IACVkqyB,EAAUronC,UAAW,+BAA2B,GACnDo/U,IAAW,CACPjB,IAAS,IACVkqyB,EAAUronC,UAAW,iCAA6B,GACrDo/U,IAAW,CACPjB,IAAS,IACVkqyB,EAAUronC,UAAW,2BAAuB,GAC/Co/U,IAAW,CACPjB,IAAS,IACVkqyB,EAAUronC,UAAW,sCAAkC,GAC1Do/U,IAAW,CACPjB,GAAS,kBACVkqyB,EAAUronC,UAAW,uBAAmB,GAC3Co/U,IAAW,CACPjB,GAAS,YACVkqyB,EAAUronC,UAAW,gBAAY,GACpCo/U,IAAW,CACPjB,GAAS,YACVkqyB,EAAUronC,UAAW,wBAAoB,GAC5Co/U,IAAW,CACPjB,GAAS,YACVkqyB,EAAUronC,UAAW,iBAAa,GACrCo/U,IAAW,CACPjB,GAAS,IACVkqyB,EAAUronC,UAAW,iBAAa,GACrCo/U,IAAW,CACPjB,IAAS,IACVkqyB,EAAUronC,UAAW,8BAA0B,GAClDo/U,IAAW,CACPjB,IAAS,IACVkqyB,EAAUronC,UAAW,qBAAiB,GACzCo/U,IAAW,CACPjB,IAAS,IACVkqyB,EAAUronC,UAAW,2BAAuB,GAC/Co/U,IAAW,CACPjB,IAAS,IACVkqyB,EAAUronC,UAAW,uCAAmC,GAC3Do/U,IAAW,CACPjB,IAAS,IACVkqyB,EAAUronC,UAAW,sCAAkC,GAC1Do/U,IAAW,CACPjB,IAAS,IACVkqyB,EAAUronC,UAAW,+BAA2B,GACnDo/U,IAAW,CACPjB,GAAS,uBACVkqyB,EAAUronC,UAAW,sBAAkB,GAC1Co/U,IAAW,CACPjB,GAAS,CAAEk/M,aAAa,EAAMzkC,aAAc,CAAC,aAAc,eAAgB,qBAAsB,oBAAqB,UAAW,gBAAiB,cAAe,aAAc,qBAAsB,uBAAwB,2BAA4B,sBAAuB,wBAAyB,kBAAmB,kBAAmB,eAAgB,cAAe,kBAAmBw6nB,uBAAwB,CAAC,gBAAiB,gBAAiB,oBAAqB,gBAAiB,kBAAmB,uBAAwB,sBAAuB,2BAA4B,oBAAqB,YAAa,gBAAiB,sBAAuB,oBAAqB,yBAA0B,2BAA4B,yBAA0B,2BAA4B,0BAA2B,0BAA2B,oBAAqBC,yBAA0B,CAAC,cAAe,eAAgB,eAAgB,kBAAmB,eAAgB,cAAe,oBAAqB,iBACx+BhL,EAAUronC,UAAW,uBAAmB,GAC3Co/U,IAAW,CACPjB,GAAS,CAAE+tuB,YAAa,GAAI36kB,iBAAiB,KAC9C82oB,EAAUronC,UAAW,2BAAuB,GAC/Co/U,IAAW,CACPjB,GAAS,CAAEgixB,gBAAiB,GAAIC,uBAAwB,MACzDioB,EAAUronC,UAAW,mBAAe,GACvCo/U,IAAW,CACPjB,GAAS,CAAEr+P,KAAM,OAAQ+5gC,YAAa,iBAAkB7zK,OAAQ,SAAU7yd,SAAU,WAAYmgqB,gBAAiB,wBAAyB72zB,MAAO,cAAe82zB,eAAgB,2BAA4B9xE,kBAAmB,oBAAqBuF,kBAAmB,oBAAqBqtC,iBAAkB,mBAAoBF,iBAAkB,mBAAoBkF,YAAa,oBACtXgvB,EAAUronC,UAAW,4BAAwB,GAChDo/U,IAAW,CACPjB,GAAS,CAAEpqV,KAAM,GAAIw4d,YAAY,EAAO31N,WAAY,UAAWhtP,YAAY,EAAOwxjC,SAAS,EAAM7/oB,QAAS,GAAIkihB,UAAW,EAAGqhI,2BAA4B,CAAEnh8B,QAAS,EAAGsvV,gBAAiB,SAAUp/c,MAAO,GAAIoqI,OAAQ,GAAIq2J,SAAU,GAAIh/Q,KAAM,KAAMw2F,MAAO,SAAWkl7B,wBAAyB,CAAE0D,YAAarM,IAAYrzrB,KAAOqzrB,IAAYr2gC,KAAOq2gC,IAAY96qB,OAAQujrB,mBAAmB,MAC1Xu9E,EAAUronC,UAAW,8BAA0B,GAClDo/U,IAAW,CACPjB,GAAS,CAAEpqV,KAAM,GAAIw4d,YAAY,EAAO31N,WAAY,UAAWhtP,YAAY,EAAOwxjC,SAAS,EAAM7/oB,QAAS,GAAIkihB,UAAW,EAAG+1L,yBAA0B,CAAE71/B,QAAS,EAAGsvV,gBAAiB,SAAUp/c,MAAO,GAAIoqI,OAAQ,GAAIq2J,SAAU,GAAIh/Q,KAAM,KAAMw2F,MAAO,SAAW+k7B,sBAAuB,CAAE6D,YAAarM,IAAYrzrB,KAAOqzrB,IAAYr2gC,KAAOq2gC,IAAY96qB,OAAQujrB,mBAAmB,MACtXu9E,EAAUronC,UAAW,4BAAwB,GAChDo/U,IAAW,CACPjB,GAAS,CAAExgN,QAAS,EAAG7X,MAAO,UAAWqpnB,OAAQ,QAASwrV,2BAA4B,CAAEolD,qBAAsB,GAAI6B,mBAAoB,QAASC,iBAAkB,UAAWH,YAAa,EAAG1B,yBAA0B,EAAG2B,aAAc,SAAUzB,sBAAuB,GAAI/iB,gBAAiB/6D,IAA0B+nF,QAAU/nF,IAA0BgoF,OAAS7xE,QAAQ,EAAOk7E,2BAA2B,EAAOC,yBAAyB,EAAOC,oBAAqB,CAAC,QAASv4D,SAAS,KAC9ditD,EAAUronC,UAAW,yBAAqB,GAC7Co/U,IAAW,CACPjB,GAAS,CAAExgN,QAAS,EAAG7X,MAAO,UAAWqpnB,OAAQ,QAASwrV,2BAA4B,CAAEolD,qBAAsB,GAAI6B,mBAAoB,QAASC,iBAAkB,UAAWH,YAAa,EAAG1B,yBAA0B,EAAG2B,aAAc,SAAUzB,sBAAuB,GAAI/iB,gBAAiB/6D,IAA0B+nF,QAAU/nF,IAA0BgoF,OAAS7xE,QAAQ,EAAOk7E,2BAA2B,EAAOC,yBAAyB,EAAOC,oBAAqB,CAAC,QAASv4D,SAAS,KAC9ditD,EAAUronC,UAAW,6BAAyB,GACjDo/U,IAAW,CACPjB,GAAS,CAAExgN,QAAS,EAAG7X,MAAO,UAAWqpnB,OAAQ,QAASwrV,2BAA4B,CAAEolD,qBAAsB,GAAI6B,mBAAoB,QAASC,iBAAkB,UAAWH,YAAa,EAAG1B,yBAA0B,EAAG2B,aAAc,SAAUzB,sBAAuB,GAAI/iB,gBAAiB/6D,IAA0B+nF,QAAU/nF,IAA0BgoF,OAAS7xE,QAAQ,EAAOk7E,2BAA2B,EAAOC,yBAAyB,EAAOC,oBAAqB,CAAC,QAASv4D,SAAS,KAC9ditD,EAAUronC,UAAW,yBAAqB,GAC7Co/U,IAAW,CACPjB,GAAS,CAAExgN,QAAS,EAAGqvwB,UAAW,YAAalgb,YAAa,UAAWqiR,OAAQ,QAASsuN,UAAW,EAAG+mG,gBAAiB,EAAGovF,mBAAoB,OAAQC,iBAAkB,OAAQl5D,2BAA4B,CAAEolD,qBAAsB,GAAI6B,mBAAoB,QAASC,iBAAkB,UAAWH,YAAa,EAAG1B,yBAA0B,EAAG2B,aAAc,SAAUzB,sBAAuB,GAAI/iB,gBAAiB/6D,IAA0B+nF,QAAU/nF,IAA0BgoF,MAAOprB,kBAAmB,MAAQ/5lB,UAAW,EAAG3M,SAAU,EAAGnyY,SAAU,EAAG8uU,UAAW,EAAGsjnB,QAAQ,EAAOo7E,oBAAqB,CAAC,QAASv4D,SAAS,KACjmBitD,EAAUronC,UAAW,oBAAgB,GACxCo/U,IAAW,CACPjB,GAAS,CAAExgN,QAAS,EAAGqvwB,UAAW,YAAalgb,YAAa,UAAWqiR,OAAQ,QAASsuN,UAAW,EAAG+mG,gBAAiB,EAAGovF,mBAAoB,SAAUC,iBAAkB,SAAUl5D,2BAA4B,CAAEolD,qBAAsB,GAAI6B,mBAAoB,QAASC,iBAAkB,UAAWH,YAAa,EAAG1B,yBAA0B,EAAG2B,aAAc,SAAUzB,sBAAuB,GAAI/iB,gBAAiB/6D,IAA0B+nF,QAAU/nF,IAA0BgoF,MAAOprB,kBAAmB,MAAQ/5lB,UAAW,EAAG3M,SAAU,EAAGnyY,SAAU,EAAG8uU,UAAW,EAAGsjnB,QAAQ,EAAOo7E,oBAAqB,CAAC,QAASv4D,SAAS,KACrmBitD,EAAUronC,UAAW,qBAAiB,GACzCo/U,IAAW,CACPjB,GAAS,CAAExgN,QAAS,EAAGqvwB,UAAW,YAAalgb,YAAa,UAAWqiR,OAAQ,QAASsuN,UAAW,EAAGk9H,2BAA4B,CAAEolD,qBAAsB,GAAI6B,mBAAoB,QAASC,iBAAkB,UAAWH,YAAa,EAAG1B,yBAA0B,EAAG2B,aAAc,SAAUzB,sBAAuB,GAAI/iB,gBAAiB/6D,IAA0B+nF,QAAU/nF,IAA0BgoF,MAAOprB,kBAAmB,MAAQ/5lB,UAAW,EAAG3M,SAAU,EAAGnyY,SAAU,EAAG8uU,UAAW,EAAGsjnB,QAAQ,EAAOo7E,oBAAqB,CAAC,QAASv4D,SAAS,KACvhBitD,EAAUronC,UAAW,yBAAqB,GAC7Co/U,IAAW,CACPjB,GAAS,CAAExgN,QAAS,EAAGqvwB,UAAW,YAAap6E,YAAa,UAAWt4T,UAAW,OAAQhsN,SAAU,GAAIwl1B,YAAa,KAAMC,cAAe,IAAKh3D,aAAc,WAC9JsrD,EAAUronC,UAAW,0BAAsB,GAC9Co/U,IAAW,CACPjB,GAAS,CAAExgN,QAAS,EAAGqvwB,UAAW,YAAalgb,YAAa,UAAWqiR,OAAQ,QAASsuN,UAAW,EAAGk9H,2BAA4B,CAAEolD,qBAAsB,GAAI6B,mBAAoB,QAASC,iBAAkB,UAAWH,YAAa,EAAG1B,yBAA0B,EAAG2B,aAAc,SAAUzB,sBAAuB,GAAI/iB,gBAAiB/6D,IAA0B+nF,QAAU/nF,IAA0BgoF,MAAOprB,kBAAmB,MAAQ/5lB,UAAW,EAAG3M,SAAU,EAAGnyY,SAAU,EAAG8uU,UAAW,EAAGsjnB,QAAQ,EAAOo7E,oBAAqB,CAAC,QAASv4D,SAAS,KACvhBitD,EAAUronC,UAAW,sBAAkB,GAC1Co/U,IAAW,CACPjB,GAAS,CAAExgN,QAAS,EAAGqvwB,UAAW,YAAalgb,YAAa,UAAWqiR,OAAQ,QAASsuN,UAAW,EAAGk9H,2BAA4B,CAAEolD,qBAAsB,GAAI6B,mBAAoB,QAASC,iBAAkB,UAAWH,YAAa,EAAG1B,yBAA0B,EAAG2B,aAAc,SAAUzB,sBAAuB,GAAI/iB,gBAAiB/6D,IAA0B+nF,QAAU/nF,IAA0BgoF,MAAOprB,kBAAmB,MAAQ/5lB,UAAW,EAAG3M,SAAU,EAAGnyY,SAAU,EAAG8uU,UAAW,EAAGsjnB,QAAQ,EAAOo7E,oBAAqB,CAAC,QAASv4D,SAAS,KACvhBitD,EAAUronC,UAAW,uBAAmB,GAC3Co/U,IAAW,CACPjB,GAAS,CAAExgN,QAAS,EAAGwxmB,OAAQ,QAASwrV,2BAA4B,CAAEolD,qBAAsB,GAAI6B,mBAAoB,QAASC,iBAAkB,UAAWH,YAAa,EAAG1B,yBAA0B,EAAG2B,aAAc,SAAUzB,sBAAuB,GAAI/iB,gBAAiB/6D,IAA0B+nF,QAAU/nF,IAA0BgoF,MAAOprB,kBAAmB,MAAQ/5lB,UAAW,EAAG3M,SAAU,EAAGnyY,SAAU,EAAG8uU,UAAW,EAAGsjnB,QAAQ,EAAOy7E,cAAe,CAACzxF,IAAiB0xF,QAAS1xF,IAAiB2xF,SAAU3xF,IAAiB4xF,SAAU5xF,IAAiB6xF,aAAc7xF,IAAiB8xF,SAAU9xF,IAAiB+xF,aAAcC,WAAY,CAAC/xF,IAAcgyF,QAAShyF,IAAciyF,YAAajyF,IAAckyF,SAAUlyF,IAAc51N,SAAU41N,IAAcmyF,UAAWC,uBAAwB,CAACnyF,IAA0B4xF,SAAU5xF,IAA0B6xF,YAAa7xF,IAA0BoyF,MAAOpyF,IAA0BqyF,MAAOryF,IAA0B7+0B,UAAW6+0B,IAA0B2xF,aAAc3xF,IAA0BsyF,iBAAkBtyF,IAA0BuyF,oBAAqBvyF,IAA0BwyF,WAAYxyF,IAA0ByyF,KAAMzyF,IAA0B0yF,mBAAoB1yF,IAA0B2yF,iBAAkBzB,oBAAqB,CAAC,QAASv4D,SAAS,KACxwCitD,EAAUronC,UAAW,qBAAiB,GACzCo/U,IAAW,CACPjB,GAAS,CAAExgN,QAAS,EAAGwxmB,OAAQ,QAASthuB,MAAO,EAAGoqI,OAAQ,EAAGjlB,KAAM,EAAGuqB,IAAK,EAAG0nX,UAAW,EAAG3M,SAAU,EAAGnyY,SAAU,EAAG8uU,UAAW,EAAGsjnB,QAAQ,EAAO8nD,mBAAmB,EAAMszB,oBAAqB,CAAC,QAASv4D,SAAS,KACrNitD,EAAUronC,UAAW,2BAAuB,GAC/Co/U,IAAW,CACPjB,GAAS,CAAExgN,QAAS,EAAGqvwB,UAAW,YAAalgb,YAAa,UAAWqiR,OAAQ,QAASsuN,UAAW,EAAG+mG,gBAAiB,EAAGovF,mBAAoB,SAAUC,iBAAkB,SAAUl5D,2BAA4B,CAAEolD,qBAAsB,GAAI6B,mBAAoB,QAASC,iBAAkB,UAAWH,YAAa,EAAG1B,yBAA0B,EAAG2B,aAAc,SAAUzB,sBAAuB,GAAI/iB,gBAAiB/6D,IAA0B+nF,QAAU/nF,IAA0BgoF,MAAOprB,kBAAmB,MAAQ/5lB,UAAW,EAAG3M,SAAU,EAAGnyY,SAAU,EAAG8uU,UAAW,EAAGsjnB,QAAQ,EAAOipB,aAAc,GAAI6zD,iBAAkB/yF,IAAWzrtB,KAAM88yB,oBAAqB,CAAC,QAASv4D,SAAS,KAC1pBitD,EAAUronC,UAAW,wBAAoB,GAC5Co/U,IAAW,CACPjB,GAAS,CAAExgN,QAAS,EAAGqvwB,UAAW,YAAalgb,YAAa,UAAWqiR,OAAQ,QAASsuN,UAAW,EAAG+mG,gBAAiB,EAAGovF,mBAAoB,OAAQC,iBAAkB,OAAQ5unB,UAAW,EAAG3M,SAAU,EAAGnyY,SAAU,EAAG8uU,UAAW,EAAGsjnB,QAAQ,EAAOoiB,2BAA4B,CAAEolD,qBAAsB,GAAI6B,mBAAoB,QAASC,iBAAkB,UAAWH,YAAa,EAAG1B,yBAA0B,EAAG2B,aAAc,SAAUzB,sBAAuB,GAAI/iB,gBAAiB/6D,IAA0B+nF,QAAU/nF,IAA0BgoF,MAAOprB,kBAAmB,MAAQ20B,oBAAqB,CAAC,QAASv4D,SAAS,KACjmBitD,EAAUronC,UAAW,yBAAqB,GAC7Co/U,IAAW,CACPjB,GAAS,CAAExgN,QAAS,EAAGqvwB,UAAW,YAAalgb,YAAa,UAAWqiR,OAAQ,QAASsuN,UAAW,EAAGx4b,UAAW,EAAG3M,SAAU,EAAGnyY,SAAU,EAAG8uU,UAAW,EAAGsjnB,QAAQ,EAAOoiB,2BAA4B,CAAEolD,qBAAsB,GAAI6B,mBAAoB,QAASC,iBAAkB,UAAWH,YAAa,EAAG1B,yBAA0B,EAAG2B,aAAc,SAAUzB,sBAAuB,GAAI/iB,gBAAiB/6D,IAA0B+nF,QAAU/nF,IAA0BgoF,MAAOprB,kBAAmB,MAAQ20B,oBAAqB,CAAC,QAASv4D,SAAS,KACvhBitD,EAAUronC,UAAW,oBAAgB,GACxCo/U,IAAW,CACPjB,GAAS,CAAExgN,QAAS,EAAGqvwB,UAAW,YAAalgb,YAAa,UAAWqiR,OAAQ,QAASsuN,UAAW,EAAGk9H,2BAA4B,CAAEolD,qBAAsB,GAAI6B,mBAAoB,QAASC,iBAAkB,UAAWH,YAAa,EAAG1B,yBAA0B,EAAG2B,aAAc,SAAUzB,sBAAuB,GAAI/iB,gBAAiB/6D,IAA0B+nF,QAAU/nF,IAA0BgoF,MAAOprB,kBAAmB,MAAQ/5lB,UAAW,EAAG3M,SAAU,EAAGnyY,SAAU,EAAG8uU,UAAW,EAAGsjnB,QAAQ,EAAOo7E,oBAAqB,CAAC,QAASv4D,SAAS,KACvhBitD,EAAUronC,UAAW,sBAAkB,GAC1Co/U,IAAW,CACPjB,GAAS,CAAExgN,QAAS,EAAGqvwB,UAAW,YAAalgb,YAAa,UAAWqiR,OAAQ,QAASsuN,UAAW,EAAGx4b,UAAW,EAAG3M,SAAU,EAAGnyY,SAAU,EAAG8uU,UAAW,EAAGsjnB,QAAQ,EAAOoiB,2BAA4B,CAAEolD,qBAAsB,GAAI6B,mBAAoB,QAASC,iBAAkB,UAAWH,YAAa,EAAG1B,yBAA0B,EAAG2B,aAAc,SAAUzB,sBAAuB,GAAI/iB,gBAAiB/6D,IAA0B+nF,QAAU/nF,IAA0BgoF,MAAOprB,kBAAmB,MAAQ20B,oBAAqB,CAAC,QAASv4D,SAAS,KACvhBitD,EAAUronC,UAAW,sBAAkB,GAC1Co/U,IAAW,CACPjB,GAAS,CAAEgxZ,OAAQ,QAASxxmB,QAAS,EAAGg97B,2BAA4B,CAAEolD,qBAAsB,GAAI6B,mBAAoB,QAASC,iBAAkB,UAAWH,YAAa,EAAG1B,yBAA0B,EAAG2B,aAAc,SAAUzB,sBAAuB,GAAI/iB,gBAAiB/6D,IAA0B+nF,QAAU/nF,IAA0BgoF,MAAOprB,kBAAmB,MAAQzmD,QAAQ,EAAOo7E,oBAAqB,CAAC,QAASv4D,SAAS,KACnaitD,EAAUronC,UAAW,2BAAuB,GAC/Co/U,IAAW,CACPjB,GAAS,CAAExgN,QAAS,EAAGqvwB,UAAW,YAAap6E,YAAa,YAAazjF,OAAQ,QAASnkZ,YAAa,EAAGn9U,MAAO,IAAKygS,SAAU,GAAIr2J,OAAQ,KAAMqiX,UAAW,OAAQzoD,WAAY,YAAayjrB,YAAa,YAAavtX,cAAe,OAAQliM,UAAWoxU,IAAU11tB,KAAMg08B,eAAe,EAAO56D,2BAA4B,CAAEolD,qBAAsB,GAAI6B,mBAAoB,QAASC,iBAAkB,UAAWH,YAAa,EAAG1B,yBAA0B,EAAG2B,aAAc,SAAUzB,sBAAuB,GAAI/iB,gBAAiB/6D,IAA0B+nF,QAAU/nF,IAA0BgoF,MAAOprB,kBAAmB,MAAQ/5lB,UAAW,EAAG3M,SAAU,EAAGnyY,SAAU,EAAG8uU,UAAW,EAAGsjnB,QAAQ,EAAOo7E,oBAAqB,CAAC,QAASv4D,SAAS,EAAM9srB,YAAY,EAAOoytB,eAAe,KACzvB2nB,EAAUronC,UAAW,wBAAoB,GAC5Co/U,IAAW,CACPjB,GAAS,CAAEq3yB,eAAgB,KAAMC,YAAa,KAAMC,WAAY,EAAG/5jC,MAAO,MAC3E0sjC,EAAUronC,UAAW,2BAAuB,GAC/Co/U,IAAW,CACPjB,GAAS,CAAE4hyB,qBAAsB,GAAI6B,mBAAoB,QAASC,iBAAkB,UAAWH,YAAa,EAAG1B,yBAA0B,EAAG2B,aAAc,SAAUzB,sBAAuB,GAAI/iB,gBAAiB/6D,IAA0B+nF,QAAU/nF,IAA0BgoF,MAAOprB,kBAAmB,QACzSqpB,EAAUronC,UAAW,kCAA8B,GACtDo/U,IAAW,CACPjB,GAAS,CAAEw3yB,qBAAsB,UAAWC,YAAa,aAC1DvN,EAAUronC,UAAW,+BAA2B,GACnDo/U,IAAW,CACPjB,GAAS,CAAEuwtB,YAAarM,IAAYrzrB,KAAOqzrB,IAAYr2gC,KAAOq2gC,IAAY96qB,OAAQujrB,mBAAmB,KACtGu9E,EAAUronC,UAAW,+BAA2B,GACnDo/U,IAAW,CACPjB,GAAS,CAAEuwtB,YAAarM,IAAYrzrB,KAAOqzrB,IAAYr2gC,KAAOq2gC,IAAY96qB,OAAQujrB,mBAAmB,KACtGu9E,EAAUronC,UAAW,6BAAyB,GACjDo/U,IAAW,CACPjB,GAAS,CAAE03yB,cAAe,CAAC,YAAa,WAAYC,mBAAoB,EAAGC,iBAAkB,EAAGp4/B,QAAS,EAAGmvV,YAAa,UAAWj/c,MAAO,IAAKoqI,OAAQ,IAAKwlzB,UAAW,EAAGk9H,2BAA4B,CAAEolD,qBAAsB,GAAI6B,mBAAoB,QAASC,iBAAkB,UAAWH,YAAa,EAAG1B,yBAA0B,EAAG2B,aAAc,SAAUzB,sBAAuB,GAAI/iB,gBAAiB/6D,IAA0B+nF,QAAU/nF,IAA0BgoF,MAAOprB,kBAAmB,MAAQ20B,oBAAqB,CAAC,QAAS3oF,wBAAyB,CAAE0D,YAAarM,IAAYrzrB,KAAOqzrB,IAAYr2gC,KAAOq2gC,IAAY96qB,OAAQujrB,mBAAmB,GAASD,sBAAuB,CAAE6D,YAAarM,IAAYrzrB,KAAOqzrB,IAAYr2gC,KAAOq2gC,IAAY96qB,OAAQujrB,mBAAmB,MAC/vBu9E,EAAUronC,UAAW,oCAAgC,GACxDo/U,IAAW,CACPjB,GAAS,CAAEgxZ,OAAQ,QAASxxmB,QAAS,EAAGmvV,YAAa,UAAW2we,UAAW,EAAGk9H,2BAA4B,CAAEolD,qBAAsB,GAAI6B,mBAAoB,QAASC,iBAAkB,UAAWH,YAAa,EAAG1B,yBAA0B,EAAG2B,aAAc,SAAUzB,sBAAuB,GAAI/iB,gBAAiB/6D,IAA0B+nF,QAAU/nF,IAA0BgoF,MAAOprB,kBAAmB,MAAQzmD,QAAQ,EAAOo7E,oBAAqB,CAAC,QAASv4D,SAAS,KACzcitD,EAAUronC,UAAW,6BAAyB,GACjDo/U,IAAW,CACPjB,GAAS,CAAEgxZ,OAAQ,QAASlqO,UAAW,EAAG3M,SAAU,EAAGnyY,SAAU,EAAG8uU,UAAW,EAAGsjnB,QAAQ,EAAOy9E,WAAW,EAAOC,cAAc,EAAOtC,oBAAqB,CAAC,WAC/JtL,EAAUronC,UAAW,0BAAsB,GAC9Co/U,IAAW,CACPjB,GAAS,CAAEo6wB,qBAAqB,EAAMhvlC,EAAG,EAAGC,EAAG,KAChD6+mC,EAAUronC,UAAW,6BAAyB,GACjDo/U,IAAW,CACPjB,GAAS,CAAEigwB,6BAA8B,OAC1CiqC,EAAUronC,UAAW,sBAAkB,GAC1Co/U,IAAW,CACPjB,GAAS,CAAEpqV,KAAM,GAAI9C,MAAO,GAAI4gd,WAAY,YAAavjK,SAAU,GAAIu3R,UAAW,OAAQ//c,MAAO,QAAS8ssB,YAAa,QAAS3lW,gBAAiB,QAAS5hN,UAAW,OAAQkhN,YAAY,EAAO31N,WAAY,UAAW35L,UAAW,EAAGrzD,YAAY,EAAOwxjC,SAAS,EAAM7/oB,QAAS,GAAIkihB,UAAW,EAAGqwK,aAAa,KAChTua,EAAUronC,UAAW,yBAAqB,GAC7Co/U,IAAW,CACPjB,GAAS,CAAEpqV,KAAM,GAAI9C,MAAO,GAAI4gd,WAAY,YAAavjK,SAAU,GAAIu3R,UAAW,OAAQ//c,MAAO,QAAS8ssB,YAAa,QAAS3lW,gBAAiB,QAAS5hN,UAAW,OAAQkhN,YAAY,EAAO31N,WAAY,UAAW35L,UAAW,EAAGrzD,YAAY,EAAOwxjC,SAAS,EAAM7/oB,QAAS,GAAIkihB,UAAW,KAChS4qL,EAAUronC,UAAW,6BAAyB,GACjDo/U,IAAW,CACPjB,GAAS,CAAEpqV,KAAM,GAAIsnb,WAAW,EAAO4xC,gBAAiB,QAASV,YAAY,EAAO31N,WAAY,UAAWwk0B,SAAS,EAAM7/oB,QAAS,GAAI3xa,YAAY,EAAO6z7B,UAAW,EAAG7qI,YAAa,WACtLy1T,EAAUronC,UAAW,6BAAyB,GACjDo/U,IAAW,CACPjB,GAAS,CAAEpqV,KAAM,GAAIi3b,YAAY,EAAOiiC,gBAAiB,QAASV,YAAY,EAAO31N,WAAY,UAAWwk0B,SAAS,EAAM7/oB,QAAS,GAAI3xa,YAAY,EAAO6z7B,UAAW,EAAG7qI,YAAa,WACvLy1T,EAAUronC,UAAW,gCAA4B,GACpDo/U,IAAW,CACPjB,GAAS,CAAEpqV,KAAM,GAAI89c,WAAY,YAAavjK,SAAU,GAAIu3R,UAAW,OAAQ//c,MAAO,QAASmnW,gBAAiB,QAAS5hN,UAAW,OAAQkhN,YAAY,EAAO31N,WAAY,UAAWhtP,YAAY,EAAOwxjC,SAAS,EAAM7/oB,QAAS,GAAIpta,QAAS,GAAIsv7B,UAAW,EAAG7qI,YAAa,WAC9Qy1T,EAAUronC,UAAW,6BAAyB,GACjDo/U,IAAW,CACPjB,GAAS,CAAEpqV,KAAM,GAAI89c,WAAY,YAAavjK,SAAU,GAAIu3R,UAAW,OAAQ//c,MAAO,QAASmnW,gBAAiB,QAAS5hN,UAAW,OAAQkhN,YAAY,EAAO31N,WAAY,UAAWhtP,YAAY,EAAOwxjC,SAAS,EAAO7/oB,QAAS,GAAIpta,QAAS,GAAIsv7B,UAAW,EAAG7qI,YAAa,WAC/Qy1T,EAAUronC,UAAW,4BAAwB,GAChDo/U,IAAW,CACPjB,GAAS,CAAEu7vB,kBAAmB,aAAct0b,iBAAkB,CAAC88Y,IAAgBx1gC,QAASw1gC,IAAgBj5Y,KAAMi5Y,IAAgBj1rB,IAAKi1rB,IAAgB30rB,OAAQ20rB,IAAgB/srB,UAAW+srB,IAAgBg0F,MAAOh0F,IAAgBxjrB,WAAYwjrB,IAAgBi0F,WAAYj0F,IAAgBh+qB,cAAeg+qB,IAAgBn7qB,cACrTshwB,EAAUronC,UAAW,2BAAuB,GAC/Co/U,IAAW,CACPd,GAAQ,CAAC,EAAGk0uB,MACb61D,EAAUronC,UAAW,qBAAiB,GACzCo/U,IAAW,CACP94T,MACD+hmC,EAAUronC,UAAW,eAAW,GACnCo/U,IAAW,CACP94T,MACD+hmC,EAAUronC,UAAW,oBAAgB,GACxCo/U,IAAW,CACP94T,MACD+hmC,EAAUronC,UAAW,sBAAkB,GAC1Co/U,IAAW,CACP94T,MACD+hmC,EAAUronC,UAAW,0BAAsB,GAC9Co/U,IAAW,CACP94T,MACD+hmC,EAAUronC,UAAW,yBAAqB,GAC7Co/U,IAAW,CACP94T,MACD+hmC,EAAUronC,UAAW,0BAAsB,GAC9Co/U,IAAW,CACP94T,MACD+hmC,EAAUronC,UAAW,0BAAsB,GAC9Co/U,IAAW,CACP94T,MACD+hmC,EAAUronC,UAAW,iBAAa,GACrCo/U,IAAW,CACP94T,MACD+hmC,EAAUronC,UAAW,kBAAc,GACtCo/U,IAAW,CACP94T,MACD+hmC,EAAUronC,UAAW,sBAAkB,GAC1Co/U,IAAW,CACP94T,MACD+hmC,EAAUronC,UAAW,0BAAsB,GAC9Co/U,IAAW,CACP94T,MACD+hmC,EAAUronC,UAAW,kBAAc,GACtCo/U,IAAW,CACP94T,MACD+hmC,EAAUronC,UAAW,qBAAiB,GACzCo/U,IAAW,CACP94T,MACD+hmC,EAAUronC,UAAW,wBAAoB,GAC5Co/U,IAAW,CACP94T,MACD+hmC,EAAUronC,UAAW,kCAA8B,GACtDo/U,IAAW,CACP94T,MACD+hmC,EAAUronC,UAAW,wBAAoB,GAC5Co/U,IAAW,CACP94T,MACD+hmC,EAAUronC,UAAW,oBAAgB,GACxCo/U,IAAW,CACP94T,MACD+hmC,EAAUronC,UAAW,uBAAmB,GAC3Co/U,IAAW,CACP94T,MACD+hmC,EAAUronC,UAAW,qBAAiB,GACzCo/U,IAAW,CACP94T,MACD+hmC,EAAUronC,UAAW,iCAA6B,GACrDo/U,IAAW,CACP94T,MACD+hmC,EAAUronC,UAAW,uBAAmB,GAC3Co/U,IAAW,CACP94T,MACD+hmC,EAAUronC,UAAW,uBAAmB,GAC3Co/U,IAAW,CACP94T,MACD+hmC,EAAUronC,UAAW,wBAAoB,GAC5Co/U,IAAW,CACP94T,MACD+hmC,EAAUronC,UAAW,0BAAsB,GAC9Co/U,IAAW,CACP94T,MACD+hmC,EAAUronC,UAAW,6BAAyB,GACjDo/U,IAAW,CACP94T,MACD+hmC,EAAUronC,UAAW,sBAAkB,GAC1Co/U,IAAW,CACP94T,MACD+hmC,EAAUronC,UAAW,wBAAoB,GAC5Co/U,IAAW,CACP94T,MACD+hmC,EAAUronC,UAAW,2BAAuB,GAC/Co/U,IAAW,CACP94T,MACD+hmC,EAAUronC,UAAW,4BAAwB,GAChDo/U,IAAW,CACP94T,MACD+hmC,EAAUronC,UAAW,qBAAiB,GACzCo/U,IAAW,CACP94T,MACD+hmC,EAAUronC,UAAW,mBAAe,GACvCo/U,IAAW,CACP94T,MACD+hmC,EAAUronC,UAAW,mBAAe,GACvCo/U,IAAW,CACP94T,MACD+hmC,EAAUronC,UAAW,qBAAiB,GACzCo/U,IAAW,CACP94T,MACD+hmC,EAAUronC,UAAW,qBAAiB,GACzCo/U,IAAW,CACP94T,MACD+hmC,EAAUronC,UAAW,oBAAgB,GACxCo/U,IAAW,CACP94T,MACD+hmC,EAAUronC,UAAW,oBAAgB,GACxCo/U,IAAW,CACP94T,MACD+hmC,EAAUronC,UAAW,4BAAwB,GAChDo/U,IAAW,CACP94T,MACD+hmC,EAAUronC,UAAW,sBAAkB,GAC1Co/U,IAAW,CACP94T,MACD+hmC,EAAUronC,UAAW,qBAAiB,GACzCo/U,IAAW,CACP94T,MACD+hmC,EAAUronC,UAAW,0BAAsB,GAC9Co/U,IAAW,CACP94T,MACD+hmC,EAAUronC,UAAW,wBAAoB,GAC5Co/U,IAAW,CACP94T,MACD+hmC,EAAUronC,UAAW,qBAAiB,GACzCo/U,IAAW,CACP94T,MACD+hmC,EAAUronC,UAAW,wBAAoB,GAC5Co/U,IAAW,CACP94T,MACD+hmC,EAAUronC,UAAW,sBAAkB,GAC1Co/U,IAAW,CACP94T,MACD+hmC,EAAUronC,UAAW,mBAAe,GACvCo/U,IAAW,CACP94T,MACD+hmC,EAAUronC,UAAW,kBAAc,GACtCo/U,IAAW,CACP94T,MACD+hmC,EAAUronC,UAAW,gBAAY,GACpCo/U,IAAW,CACP94T,MACD+hmC,EAAUronC,UAAW,uBAAmB,GAC3Co/U,IAAW,CACP94T,MACD+hmC,EAAUronC,UAAW,0BAAsB,GAC9Co/U,IAAW,CACP94T,MACD+hmC,EAAUronC,UAAW,2BAAuB,GAC/Co/U,IAAW,CACP94T,MACD+hmC,EAAUronC,UAAW,2BAAuB,GAC/Co/U,IAAW,CACP94T,MACD+hmC,EAAUronC,UAAW,kBAAc,GACtCo/U,IAAW,CACP94T,MACD+hmC,EAAUronC,UAAW,mBAAe,GACvCo/U,IAAW,CACP94T,MACD+hmC,EAAUronC,UAAW,qBAAiB,GACzCo/U,IAAW,CACP94T,MACD+hmC,EAAUronC,UAAW,qBAAiB,GACzCo/U,IAAW,CACP94T,MACD+hmC,EAAUronC,UAAW,4BAAwB,GAChDo/U,IAAW,CACP94T,MACD+hmC,EAAUronC,UAAW,yBAAqB,GAC7Co/U,IAAW,CACP94T,MACD+hmC,EAAUronC,UAAW,y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BACA,uBACA,sBACA,iBACA,gBACA,kBACA,qBACA,oDACA,qDACA,qBACA,oBACA,mBACA,qBACA,mBACA,cACA,cACA,6CAGWC,IAA6B,CACxC,qBACA,aACA,uBACA,kBACA,sBACA,YACA,WACA,gBACA,0BACA,uBACA,sBACA,iBACA,gBACA,kBACA,qBACA,oDACA,qDACA,qBACA,oBACA,mBACA,qBACA,mBACA,cACA,cACA,6CAGWC,IAA4B,CACvC,qBACA,aACA,uBACA,kBACA,sBACA,YACA,WACA,gBACA,0BACA,uBACA,gBACA,iBACA,gBACA,kBACA,qBACA,oDACA,qDACA,qBACA,oBACA,mBACA,qBACA,mBACA,cACA,cACA,6CAGWC,IAAuB,CAClC,qBACA,aACA,uBACA,kBACA,sBACA,YACA,WACA,gBACA,0BACA,uBACA,iBACA,4BACA,sBACA,iBACA,gBACA,kBACA,qBACA,oDACA,qDACA,sBACA,qBACA,mBACA,qBACA,mBACA,cACA,cACA,6CAGWC,IAA4B,CACvC,qBACA,YACA,WACA,kBACA,uBACA,qBACA,gBACA,0BACA,6CAGWC,IAAgE,CAC3E,CAAClkF,IAAUmkF,eAAgB,IACtBT,MACAh3wC,QAAQ8T,GAAMqjwC,IAA0B/ytC,SAAStwC,EAAEklG,SACnDlxF,MAAK,SAAUjY,EAAGC,GACjB,OACEqnwC,IAA0B5ywC,QAAQsL,EAAEmpG,OACpCm+pC,IAA0B5ywC,QAAQuL,EAAEkpG,MAExC,KAEJ,CAACs6kC,IAAUua,qBAAsB,IAC5BmpE,MACAh3wC,QAAQ8T,GAAMujwC,IAA0BjztC,SAAStwC,EAAEklG,SACnDlxF,MAAK,SAAUjY,EAAGC,GACjB,OACEunwC,IAA0B9ywC,QAAQsL,EAAEmpG,OACpCq+pC,IAA0B9ywC,QAAQuL,EAAEkpG,MAExC,KAEJ,CAACs6kC,IAAUwa,4BAA6B,IACnCkpE,MACAh3wC,QAAQ8T,GAAMujwC,IAA0BjztC,SAAStwC,EAAEklG,SACnDlxF,MAAK,SAAUjY,EAAGC,GACjB,OACEunwC,IAA0B9ywC,QAAQsL,EAAEmp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zyC,yBAC1B3lvC,OAAQluD,EAAMkuD,WAGd,ECxIJ4lvC,IAAoB,CACxB9nG,YAAa,CAAC,cACd+nG,IAAK,CAAC,cACNC,cAAe,CAAC,cAChBC,cAAe,CAAC,WAAY,aAAc,mBAC1CC,iBAAkB,CAChB32xC,SAAU,CAAC,YAAa,aAAc,YACtC42xC,QAAS,CAAC,YAAa,aAAc,YACrCl/mC,QAAS,CACP,YACA,aACA,WACA,UACA,yBAGJm/mC,cAAe,CACb,aACA,uBACA,0BACA,wBACA,sBAEFD,QAAS,CAAC,cACVE,aAAc,CAAC,cACfC,qBAAsB,CACpBC,UAAW,CACT,gBACA,uBACA,QACA,cACA,gBACA,0BACA,wBACA,qBACA,wBAEF1p1B,MAAO,CACL,WACA,UACA,gBACA,cACA,0BACA,wBACA,qBACA,wBAEF51R,QAAS,CACP,cACA,WACA,UACA,gBACA,iBAKAu/mC,IACiB,CACnB,WACA,0BACA,wBACA,sBALEA,IAOc,CAChB,WACA,0BACA,wBACA,sBAXEA,IAayB,CAC3B,WACA,0BACA,wBACA,sBAjBEA,IAmBW,CACb,WACA,0BACA,wBACA,sBAvBEA,IAyBU,CACZ,WACA,0BACA,wBACA,sBA7BEA,IA+BU,CACZ,WACA,0BACA,wBACA,sBAnCEA,IAqCU,CACZ,WACA,0BACA,wBACA,sBAzCEA,IA2C0B,CAC5B,WACA,0BACA,wBACA,sBA/CEA,IAiD0B,CAC5B,WACA,0BACA,wBACA,sBArDEA,IAuDwB,CAC1B,WACA,0BACA,wBACA,sBA3DEA,IA6DmB,CACrB,gBACA,WACA,0BACA,wBACA,qBACA,eAIEC,IAAqB,CACzB,cACA,uBACA,QACA,cACA,wBACA,yBACA,4BACA,OACA,YACA,iBACA,cACA,qBACA,wBACA,0BACA,iCACA,2CACA,6CACA,qCAGIC,IAAuB,CAC3B,uBACA,QACA,cACA,wBACA,qBACA,gBACA,OACA,YACA,cACA,4BACA,eACA,gBACA,aACA,YACA,kBAGIC,IAAsB,CAC1B,mBACA,cACA,QACA,cACA,wBACA,yBACA,4BACA,SAGWC,IAAuBp/H,GA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ACA,UACA,gBACA,uBACA,sBACA,gBACA,mBACA,gBACA,gBACA,kBACA,gBACA,eAGIC,EAA2B,CAC/B,+BACA,4BACA,gBACA,kCACA,mCACA,2BACA,gCACA,iCACA,wBACA,sBACA,aACA,sBACA,gBACA,sBACA,oBACA,qBACA,2BACA,yBACA,cACA,gBACA,0CACA,eACA,qBACA,UACA,gBACA,uBACA,sBACA,gBACA,mBACA,gBACA,gBACA,kBACA,sBACA,gBACA,uBACA,cACA,gBACA,cACA,eACA,0BACA,wBACA,uBACA,qBACA,eAGIC,EAAuB,CAC3B,+BACA,4BACA,gBACA,kCACA,mCACA,2BACA,gCACA,iCACA,wBACA,sBACA,aACA,sBACA,gBACA,sBACA,oBACA,qBACA,2BACA,yBACA,cACA,gBACA,0CACA,eACA,qBACA,UACA,gBACA,uBACA,sBACA,gBACA,mBACA,gBACA,gBACA,kBACA,0BACA,wBACA,uBACA,qBACA,cACA,UACA,gBACA,eAuBF,OACE54oC,EAAAA,GAAAA,KAAK,OAAA1tK,UAAU,0BAAyB+E,SACrCm7rC,IAAiBls9B,cAChBtmE,EAAAA,GAAAA,KAACk4kC,IACC,CAAA7wB,SAAU12tC,EAAMm/Y,SAChBuo2B,mBAAmB,EACnB/xgC,YAAaks9B,IAAiBls9B,YAC9Bg4/B,WAAmBtjkC,GAAQkyB,QAAA,6BACzB,aAAMslgC,IAAiB0B,kBACrBl5hC,EACA,oBACA,aAGJg4kC,uBAzBFwlE,EACKE,EACED,EACFE,EACEJ,EACFK,EAEA,GAmBHxgE,0BAA0B,EAC1BE,+BApC+B,CACrC,sBACA,cACA,gBAkCMd,6BA/B6B,CAAC,UAAW,iBAgCzCe,wBAAwB,EACxBC,mBAAoB7nvC,EAAMg6yC,uBAC1B9mF,eAAgBlztC,EAAMkuD,OACtBs0rC,qBAAqB,EACrBqB,uBAAuB,EACvBlxB,cAAe3ytC,EAAM2ytC,iBAGrB,ECpGG2yF,IAAmCtlzC,YAC9C,MAAM,WACJgkjC,EAAU,cACVikJ,EAAa,qBACb6/F,EAAoB,oBACpB5yC,EAAmB,sBACnBF,EA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,IAAMslgB,GAAcrpf,IACzDzsB,KAAKgt2C,SAASx30C,OAAO/I,EAAO,GAC5BzsB,KAAK672C,iBAAiB/l2B,GACtB91gB,KAAKi82C,cACLj82C,KAAK6s2C,aAAar30C,OAAO/I,EAAO,GAChCzsB,KAAKisV,cAAc,CAAE,aAAgBjsV,KAAK6s2C,eAAgB,GACtD7s2C,KAAKgt2C,SAAS5p2C,OAAS,GACvBpD,KAAKgt2C,SAASht2C,KAAKgt2C,SAAS5p2C,OAAS,GAAG8kR,UAAU/0P,OAAOq40C,KAEjE,EACAz7gC,IAAW,CACPjB,GAAS,SACV09gC,EAAS771C,UAAW,cAAU,GACjCo/U,IAAW,CACPjB,IAAS,IACV09gC,EAAS771C,UAAW,0BAAsB,GAC7Co/U,IAAW,CACPjB,GAAS,SACV09gC,EAAS771C,UAAW,aAAS,GAChCo/U,IAAW,CACPjB,IAAS,IACV09gC,EAAS771C,UAAW,yBAAqB,GAC5Co/U,IAAW,CACPb,GAAW,GAAIq9gC,MAChBC,EAAS771C,UAAW,oBAAgB,GACvCo/U,IAAW,CACPjB,GAAS,eACV09gC,EAAS771C,UAAW,mBAAe,GACtCo/U,IAAW,CACPjB,GAAS,KACV09gC,EAAS771C,UAAW,gBAAY,GACnCo/U,IAAW,CACPjB,IAAS,IACV09gC,EAAS771C,UAAW,eAAW,GAClCo/U,IAAW,CACPjB,IAAS,IACV09gC,EAAS771C,UAAW,2BAAuB,GAC9Co/U,IAAW,CACPjB,GAAS,OACV09gC,EAAS771C,UAAW,qBAAiB,GACxCo/U,IAAW,CACP94T,MACDu10C,EAAS771C,UAAW,0BAAsB,GAC7Co/U,IAAW,CACP94T,MACDu10C,EAAS771C,UAAW,eAAW,GAClCo/U,IAAW,CACP94T,MACDu10C,EAAS771C,UAAW,mBAAe,GACtCo/U,IAAW,CACP94T,MACDu10C,EAAS771C,UAAW,gBAAY,GACnCo/U,IAAW,CACP94T,MACDu10C,EAAS771C,UAAW,kBAAc,GACrCo/U,IAAW,CACP94T,MACDu10C,EAAS771C,UAAW,sBAAkB,GACzCo/U,IAAW,CACP94T,MACDu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","sources":["../../../node_modules/@blueprintjs/datetime/node_modules/react-day-picker/src/Caption.js","../../../node_modules/@blueprintjs/datetime/node_modules/react-day-picker/src/DateUtils.js","../../../node_modules/@blueprintjs/datetime/node_modules/react-day-picker/src/Day.js","../../../node_modules/@blueprintjs/datetime/node_modules/react-day-picker/src/DayPicker.js","../../../node_modules/@blueprintjs/datetime/node_modules/react-day-picker/src/Helpers.js","../../../node_modules/@blueprintjs/datetime/node_modules/react-day-picker/src/LocaleUtils.js","../../../node_modules/@blueprintjs/datetime/node_modules/react-day-picker/src/ModifiersUtils.js","../../../node_modules/@blueprintjs/datetime/node_modules/react-day-picker/src/Month.js","../../../node_modules/@blueprintjs/datetime/node_modules/react-day-picker/src/Navbar.js","../../../node_modules/@blueprintjs/datetime/node_modules/react-day-picker/src/Weekday.js","../../../node_modules/@blueprintjs/datetime/node_modules/react-day-picker/src/Weekdays.js","../../../node_modules/@blueprintjs/datetime/node_modules/react-day-picker/src/classNames.js","../../../node_modules/@blueprintjs/datetime/node_modules/react-day-picker/src/index.js","../../../node_modules/@blueprintjs/datetime/node_modules/react-day-picker/src/keys.js","../../../node_modules/@blueprintjs/popover2/node_modules/react-fast-compare/index.js","../../../node_modules/@hypnosphi/create-react-context/lib/implementation.js","../../../node_modules/@hypnosphi/create-react-context/lib/index.js","../../../node_modules/call-bind/callBound.js","../../../node_modules/call-bind/index.js","../../../node_modules/date-fns/_lib/addLeadingZeros/index.js","../../../node_modules/date-fns/_lib/assign/index.js","../../../node_modules/date-fns/_lib/cloneObject/index.js","../../../node_modules/date-fns/_lib/defaultLocale/index.js","../../../node_modules/date-fns/_lib/defaultOptions/index.js","../../../node_modules/date-fns/_lib/format/formatters/index.js","../../../node_modules/date-fns/_lib/format/lightFormatters/index.js","../../../node_modules/date-fns/_lib/format/longFormatters/index.js","../../../node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds/index.js","../../../node_modules/date-fns/_lib/getUTCDayOfYear/index.js","../../../node_modules/date-fns/_lib/getUTCISOWeek/index.js","../../../node_modules/date-fns/_lib/getUTCISOWeekYear/index.js","../../../node_modules/date-fns/_lib/getUTCWeek/index.js","../../../node_modules/date-fns/_lib/getUTCWeekYear/index.js","../../../node_modules/date-fns/_lib/protectedTokens/index.js","../../../node_modules/date-fns/_lib/requiredArgs/index.js","../../../node_modules/date-fns/_lib/startOfUTCISOWeek/index.js","../../../node_modules/date-fns/_lib/startOfUTCISOWeekYear/index.js","../../../node_modules/date-fns/_lib/startOfUTCWeek/index.js","../../../node_modules/date-fns/_lib/startOfUTCWeekYear/index.js","../../../node_modules/date-fns/_lib/toInteger/index.js","../../../node_modules/date-fns/addMilliseconds/index.js","../../../node_modules/date-fns/format/index.js","../../../node_modules/date-fns/isDate/index.js","../../../node_modules/date-fns/isValid/index.js","../../../node_modules/date-fns/locale/_lib/buildFormatLongFn/index.js","../../../node_modules/date-fns/locale/_lib/buildLocalizeFn/index.js","../../../node_modules/date-fns/locale/_lib/buildMatchFn/index.js","../../../node_modules/date-fns/locale/_lib/buildMatchPatternFn/index.js","../../../node_modules/date-fns/locale/en-US/_lib/formatDistance/index.js","../../../node_modules/date-fns/locale/en-US/_lib/formatLong/index.js","../../../node_modules/date-fns/locale/en-US/_lib/formatRelative/index.js","../../../node_modules/date-fns/locale/en-US/_lib/localize/index.js","../../../node_modules/date-fns/locale/en-US/_lib/match/index.js","../../../node_modules/date-fns/locale/en-US/index.js","../../../node_modules/date-fns/subMilliseconds/index.js","../../../node_modules/date-fns/toDate/index.js","../../../node_modules/deep-equal/index.js","../../../node_modules/deepmerge/dist/cjs.js","../../../node_modules/define-data-property/index.js","../../../node_modules/define-properties/index.js","../../../node_modules/dom4/build/dom4.max.js","../../../node_modules/domelementtype/lib/index.js","../../../node_modules/dompurify/src/utils.js","../../../node_modules/dompurify/src/tags.js","../../../node_modules/dompurify/src/attrs.js","../../../node_modules/dompurify/src/regexp.js","../../../node_modules/dompurify/src/purify.js","../../../node_modules/es-define-property/index.js","../../../node_modules/es-errors/eval.js","../../../node_modules/es-errors/index.js","../../../node_modules/es-errors/range.js","../../../node_modules/es-errors/ref.js","../../../node_modules/es-errors/syntax.js","../../../node_modules/es-errors/type.js","../../../node_modules/es-errors/uri.js","../../../node_modules/escape-string-regexp/index.js","../../../node_modules/function-bind/implementation.js","../../../node_modules/function-bind/index.js","../../../node_modules/functions-have-names/index.js","../../../node_modules/get-intrinsic/index.js","../../../node_modules/gopd/index.js","../../../node_modules/gud/index.js","../../../node_modules/has-property-descriptors/index.js","../../../node_modules/has-proto/index.js","../../../node_modules/has-symbols/index.js","../../../node_modules/has-symbols/shams.js","../../../node_modules/has-tostringtag/shams.js","../../../node_modules/hasown/index.js","https://raw.githubusercontent.com/fb55/htmlparser2/c123610e003a1eaebc61febed01cabb6e41eb658/src/Parser.ts","https://raw.githubusercontent.com/fb55/htmlparser2/c123610e003a1eaebc61febed01cabb6e41eb658/src/Tokenizer.ts","https://raw.githubusercontent.com/fb55/htmlparser2/c123610e003a1eaebc61febed01cabb6e41eb658/src/index.ts","../../../node_modules/htmlparser2/node_modules/dom-serializer/lib/foreignNames.js","../../../node_modules/htmlparser2/node_modules/dom-serializer/lib/index.js","../../../node_modules/htmlparser2/node_modules/domhandler/lib/index.js","../../../node_modules/htmlparser2/node_modules/domhandler/lib/node.js","https://raw.githubusercontent.com/fb55/domutils/96c989e159c98218958f375ea04210f2d1b43c0c/src/feeds.ts","https://raw.githubusercontent.com/fb55/domutils/96c989e159c98218958f375ea04210f2d1b43c0c/src/helpers.ts","https://raw.githubusercontent.com/fb55/domutils/96c989e159c98218958f375ea04210f2d1b43c0c/src/index.ts","https://raw.githubusercontent.com/fb55/domutils/96c989e159c98218958f375ea04210f2d1b43c0c/src/legacy.ts","https://raw.githubusercontent.com/fb55/domutils/96c989e159c98218958f375ea04210f2d1b43c0c/src/manipulation.ts","https://raw.githubusercontent.com/fb55/domutils/96c989e159c98218958f375ea04210f2d1b43c0c/src/querying.ts","https://raw.githubusercontent.com/fb55/domutils/96c989e159c98218958f375ea04210f2d1b43c0c/src/stringify.ts","https://raw.githubusercontent.com/fb55/domutils/96c989e159c98218958f375ea04210f2d1b43c0c/src/traversal.ts","https://raw.githubusercontent.com/fb55/entities/61afd4701eaa736978b13c7351cd3de9a96b04bc/src/decode.ts","https://raw.githubusercontent.com/fb55/entities/61afd4701eaa736978b13c7351cd3de9a96b04bc/src/decode_codepoint.ts","https://raw.githubusercontent.com/fb55/entities/61afd4701eaa736978b13c7351cd3de9a96b04bc/src/encode.ts","https://raw.githubusercontent.com/fb55/entities/61afd4701eaa736978b13c7351cd3de9a96b04bc/src/escape.ts","https://raw.githubusercontent.com/fb55/entities/61afd4701eaa736978b13c7351cd3de9a96b04bc/src/generated/decode-data-html.ts","https://raw.githubusercontent.com/fb55/entities/61afd4701eaa736978b13c7351cd3de9a96b04bc/src/generated/decode-data-xml.ts","https://raw.githubusercontent.com/fb55/entities/61afd4701eaa736978b13c7351cd3de9a96b04bc/src/generated/encode-html.ts","https://raw.githubusercontent.com/fb55/entities/61afd4701eaa736978b13c7351cd3de9a96b04bc/src/index.ts","../../../node_modules/is-arguments/index.js","../../../node_modules/is-date-object/index.js","../../../node_modules/is-plain-object/dist/is-plain-object.js","../../../node_modules/is-regex/index.js","../../../node_modules/lodash/_DataView.js","../../../node_modules/lodash/_Hash.js","../../../node_modules/lodash/_ListCache.js","../../../node_modules/lodash/_Map.js","../../../node_modules/lodash/_MapCache.js","../../../node_modules/lodash/_Promise.js","../../../node_modules/lodash/_Set.js","../../../node_modules/lodash/_Symbol.js","../../../node_modules/lodash/_WeakMap.js","../../../node_modules/lodash/_assocIndexOf.js","../../../node_modules/lodash/_baseGetTag.js","../../../node_modules/lodash/_baseIsArguments.js","../../../node_modules/lodash/_baseIsNative.js","../../../node_modules/lodash/_baseIsTypedArray.js","../../../node_modules/lodash/_baseKeys.js","../../../node_modules/lodash/_baseUnary.js","../../../node_modules/lodash/_coreJsData.js","../../../node_modules/lodash/_freeGlobal.js","../../../node_modules/lodash/_getMapData.js","../../../node_modules/lodash/_getNative.js","../../../node_modules/lodash/_getRawTag.js","../../../node_modules/lodash/_getTag.js","../../../node_modules/lodash/_getValue.js","../../../node_modules/lodash/_hashClear.js","../../../node_modules/lodash/_hashDelete.js","../../../node_modules/lodash/_hashGet.js","../../../node_modules/lodash/_hashHas.js","../../../node_modules/lodash/_hashSet.js","../../../node_modules/lodash/_isKeyable.js","../../../node_modules/lodash/_isMasked.js","../../../node_modules/lodash/_isPrototype.js","../../../node_modules/lodash/_listCacheClear.js","../../../node_modules/lodash/_listCacheDelete.js","../../../node_modules/lodash/_listCacheGet.js","../../../node_modules/lodash/_listCacheHas.js","../../../node_modules/lodash/_listCacheSet.js","../../../node_modules/lodash/_mapCacheClear.js","../../../node_modules/lodash/_mapCacheDelete.js","../../../node_modules/lodash/_mapCacheGet.js","../../../node_modules/lodash/_mapCacheHas.js","../../../node_modules/lodash/_mapCacheSet.js","../../../node_modules/lodash/_nativeCreate.js","../../../node_modules/lodash/_nativeKeys.js","../../../node_modules/lodash/_nodeUtil.js","../../../node_modules/lodash/_objectToString.js","../../../node_modules/lodash/_overArg.js","../../../node_modules/lodash/_root.js","../../../node_modules/lodash/_toSource.js","../../../node_modules/lodash/eq.js","../../../node_modules/lodash/isArguments.js","../../../node_modules/lodash/isArray.js","../../../node_modules/lodash/isArrayLike.js","../../../node_modules/lodash/isBuffer.js","../../../node_modules/lodash/isEmpty.js","../../../node_modules/lodash/isFunction.js","../../../node_modules/lodash/isLength.js","../../../node_modules/lodash/isObject.js","../../../node_modules/lodash/isObjectLike.js","../../../node_modules/lodash/isTypedArray.js","../../../node_modules/lodash/lodash.js","../../../node_modules/lodash/memoize.js","../../../node_modules/lodash/stubFalse.js","../../../node_modules/moment-timezone/index.js","../../../node_modules/moment-timezone/moment-timezone.js","../../../node_modules/moment/moment.js","../../../node_modules/object-hash/dist/object_hash.js","../../../node_modules/object-is/implementation.js","../../../node_modules/object-is/index.js","../../../node_modules/object-is/polyfill.js","../../../node_modules/object-is/shim.js","../../../node_modules/object-keys/implementation.js","../../../node_modules/object-keys/index.js","../../../node_modules/object-keys/isArguments.js","../../../node_modules/parse-srcset/src/parse-srcset.js","../../../node_modules/picocolors/picocolors.browser.js","../../../node_modules/postcss/lib/at-rule.js","../../../node_modules/postcss/lib/comment.js","../../../node_modules/postcss/lib/container.js","../../../node_modules/postcss/lib/css-syntax-error.js","../../../node_modules/postcss/lib/declaration.js","../../../node_modules/postcss/lib/document.js","../../../node_modules/postcss/lib/fromJSON.js","../../../node_modules/postcss/lib/input.js","../../../node_modules/postcss/lib/lazy-result.js","../../../node_modules/postcss/lib/list.js","../../../node_modules/postcss/lib/map-generator.js","../../../node_modules/postcss/lib/no-work-result.js","../../../node_modules/postcss/lib/node.js","../../../node_modules/postcss/lib/parse.js","../../../node_modules/postcss/lib/parser.js","../../../node_modules/postcss/lib/postcss.js","../../../node_modules/postcss/lib/previous-map.js","../../../node_modules/postcss/lib/processor.js","../../../node_modules/postcss/lib/result.js","../../../node_modules/postcss/lib/root.js","../../../node_modules/postcss/lib/rule.js","../../../node_modules/postcss/lib/stringifier.js","../../../node_modules/postcss/lib/stringify.js","../../../node_modules/postcss/lib/symbols.js","../../../node_modules/postcss/lib/tokenize.js","../../../node_modules/postcss/lib/warn-once.js","../../../node_modules/postcss/lib/warning.js","../../../node_modules/prop-types/factoryWithThrowingShims.js","../../../node_modules/prop-types/index.js","../../../node_modules/prop-types/lib/ReactPropTypesSecret.js","../../../node_modules/react-dom/cjs/react-dom-server-legacy.browser.production.min.js","../../../node_modules/react-dom/cjs/react-dom-server.browser.production.min.js","../../../node_modules/react-dom/cjs/react-dom.production.min.js","../../../node_modules/react-dom/client.js","../../../node_modules/react-dom/index.js","../../../node_modules/react-dom/server.browser.js","../../../node_modules/react-gtm-module/dist/Snippets.js","../../../node_modules/react-gtm-module/dist/TagManager.js","../../../node_modules/react-gtm-module/dist/index.js","../../../node_modules/react-gtm-module/dist/utils/warn.js","../../../node_modules/react/cjs/react-jsx-runtime.production.min.js","../../../node_modules/react/cjs/react.production.min.js","../../../node_modules/react/index.js","../../../node_modules/react/jsx-runtime.js","../../../node_modules/regexp.prototype.flags/implementation.js","../../../node_modules/regexp.prototype.flags/index.js","../../../node_modules/regexp.prototype.flags/polyfill.js","../../../node_modules/regexp.prototype.flags/shim.js","../../../node_modules/sanitize-html/index.js","../../../node_modules/scheduler/cjs/scheduler.production.min.js","../../../node_modules/scheduler/index.js","../../../node_modules/set-function-length/index.js","../../../node_modules/set-function-name/index.js","../../../node_modules/warning/warning.js","../../../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../../../node_modules/@babel/runtime/helpers/typeof.js","../../../node_modules/classnames/index.js","../../../node_modules/date-fns-tz/_lib/newDateUTC/index.js","../../../node_modules/date-fns-tz/_lib/tzIntlTimeZoneName/index.js","../../../node_modules/date-fns-tz/_lib/tzParseTimezone/index.js","../../../node_modules/date-fns-tz/_lib/tzPattern/index.js","../../../node_modules/date-fns-tz/_lib/tzTokenizeDate/index.js","../../../node_modules/date-fns-tz/format/formatters/index.js","../../../node_modules/date-fns-tz/format/index.js","../../../node_modules/date-fns-tz/formatInTimeZone/index.js","../../../node_modules/date-fns-tz/getTimezoneOffset/index.js","../../../node_modules/date-fns-tz/index.js","../../../node_modules/date-fns-tz/toDate/index.js","../../../node_modules/date-fns-tz/utcToZonedTime/index.js","../../../node_modules/date-fns-tz/zonedTimeToUtc/index.js","../../../node_modules/nanoid/non-secure/index.cjs","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/node module decorator","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../../../node_modules/@azure/msal-common/src/utils/Constants.ts","../../../node_modules/@azure/msal-browser/src/utils/BrowserConstants.ts","../../../node_modules/@azure/msal-common/src/error/AuthError.ts","../../../node_modules/@azure/msal-common/src/logger/Logger.ts","../../../node_modules/@azure/msal-browser/src/error/BrowserConfigurationAuthError.ts","../../../node_modules/@azure/msal-browser/src/app/IPublicClientApplication.ts","../../../node_modules/@azure/msal-common/src/error/ClientAuthError.ts","../../../node_modules/@azure/msal-common/src/utils/StringUtils.ts","../../../node_modules/@azure/msal-browser/src/event/EventType.ts","../../../node_modules/@azure/msal-browser/src/event/EventMessage.ts","../../../node_modules/@azure/msal-common/src/authority/AuthorityType.ts","../../../node_modules/@azure/msal-common/src/authority/ProtocolMode.ts","../../../node_modules/@azure/msal-common/src/account/ClientInfo.ts","../../../node_modules/@azure/msal-common/src/cache/entities/AccountEntity.ts","../../../node_modules/@azure/msal-common/src/error/InteractionRequiredAuthError.ts","../../../node_modules/@azure/msal-react/src/MsalContext.ts","../../../node_modules/@azure/msal-react/src/utils/utilities.ts","../../../node_modules/@azure/msal-react/src/packageMetadata.ts","../../../node_modules/@azure/msal-react/src/MsalProvider.tsx","../../../node_modules/@azure/msal-react/src/hooks/useMsal.ts","../../../node_modules/@azure/msal-react/src/hooks/useIsAuthenticated.ts","../../../node_modules/@azure/msal-react/src/components/UnauthenticatedTemplate.tsx","../../../node_modules/@azure/msal-react/src/hooks/useAccount.ts","../../../node_modules/@azure/msal-react/src/error/ReactAuthError.ts","../../../node_modules/@azure/msal-react/src/components/MsalAuthenticationTemplate.tsx","../../../node_modules/@azure/msal-react/src/hooks/useMsalAuthentication.ts","../../../node_modules/tslib/tslib.es6.js","../../../node_modules/mobx/src/errors.ts","../../../node_modules/mobx/src/utils/global.ts","../../../node_modules/mobx/src/utils/utils.ts","../../../node_modules/mobx/src/api/decorators.ts","../../../node_modules/mobx/src/types/overrideannotation.ts","../../../node_modules/mobx/src/core/atom.ts","../../../node_modules/mobx/src/api/become-observed.ts","../../../node_modules/mobx/src/utils/comparer.ts","../../../node_modules/mobx/src/types/modifiers.ts","../../../node_modules/mobx/src/types/actionannotation.ts","../../../node_modules/mobx/src/types/flowannotation.ts","../../../node_modules/mobx/src/types/computedannotation.ts","../../../node_modules/mobx/src/types/observableannotation.ts","../../../node_modules/mobx/src/types/autoannotation.ts","../../../node_modules/mobx/src/api/observable.ts","../../../node_modules/mobx/src/types/dynamicobject.ts","../../../node_modules/mobx/src/api/computed.ts","../../../node_modules/mobx/src/core/action.ts","../../../node_modules/mobx/src/types/observablevalue.ts","../../../node_modules/mobx/src/core/computedvalue.ts","../../../node_modules/mobx/src/core/observable.ts","../../../node_modules/mobx/src/core/derivation.ts","../../../node_modules/mobx/src/core/globalstate.ts","../../../node_modules/mobx/src/core/reaction.ts","../../../node_modules/mobx/src/api/action.ts","../../../node_modules/mobx/src/api/autorun.ts","../../../node_modules/mobx/src/api/configure.ts","../../../node_modules/mobx/src/api/extendobservable.ts","../../../node_modules/mobx/src/api/extras.ts","../../../node_modules/mobx/src/api/flow.ts","../../../node_modules/mobx/src/api/isobservable.ts","../../../node_modules/mobx/src/api/transaction.ts","../../../node_modules/mobx/src/types/intercept-utils.ts","../../../node_modules/mobx/src/types/listen-utils.ts","../../../node_modules/mobx/src/api/makeObservable.ts","../../../node_modules/mobx/src/types/observablearray.ts","../../../node_modules/mobx/src/core/spy.ts","../../../node_modules/mobx/src/types/observablemap.ts","../../../node_modules/mobx/src/types/observableset.ts","../../../node_modules/mobx/src/types/observableobject.ts","../../../node_modules/mobx/src/types/legacyobservablearray.ts","../../../node_modules/mobx/src/types/type-utils.ts","../../../node_modules/mobx/src/utils/eq.ts","../../../node_modules/mobx/src/utils/iterable.ts","../../../node_modules/mobx/src/mobx.ts","../../../node_modules/@azure/msal-common/src/telemetry/performance/PerformanceEvent.ts","../../../node_modules/@azure/msal-browser/src/cache/CryptoKeyStore.ts","../../../node_modules/@azure/msal-common/src/error/ServerError.ts","../../../node_modules/@azure/msal-common/src/error/JoseHeaderError.ts","../../../node_modules/@azure/msal-common/src/crypto/JoseHeader.ts","../../../node_modules/@azure/msal-browser/src/utils/MathUtils.ts","../../../node_modules/@azure/msal-browser/src/crypto/GuidGenerator.ts","../../../node_modules/@azure/msal-browser/src/utils/BrowserStringUtils.ts","../../../node_modules/@azure/msal-browser/src/encode/Base64Encode.ts","../../../node_modules/@azure/msal-browser/src/encode/Base64Decode.ts","../../../node_modules/@azure/msal-browser/src/error/BrowserAuthError.ts","../../../node_modules/@azure/msal-browser/src/crypto/PkceGenerator.ts","../../../node_modules/@azure/msal-browser/src/crypto/ModernBrowserCrypto.ts","../../../node_modules/@azure/msal-browser/src/crypto/MsrBrowserCrypto.ts","../../../node_modules/@azure/msal-browser/src/crypto/MsBrowserCrypto.ts","../../../node_modules/@azure/msal-browser/src/crypto/BrowserCrypto.ts","../../../node_modules/@azure/msal-browser/src/cache/DatabaseStorage.ts","../../../node_modules/@azure/msal-browser/src/cache/MemoryStorage.ts","../../../node_modules/@azure/msal-browser/src/cache/AsyncMemoryStorage.ts","../../../node_modules/@azure/msal-common/src/account/CcsCredential.ts","../../../node_modules/@azure/msal-browser/src/crypto/CryptoOps.ts","../../../node_modules/@azure/msal-common/src/telemetry/performance/PerformanceClient.ts","../../../node_modules/@azure/msal-common/src/telemetry/performance/StubPerformanceClient.ts","../../../node_modules/@azure/msal-common/src/crypto/ICrypto.ts","../../../node_modules/@azure/msal-common/src/cache/entities/CredentialEntity.ts","../../../node_modules/@azure/msal-common/src/cache/entities/IdTokenEntity.ts","../../../node_modules/@azure/msal-common/src/error/ClientConfigurationError.ts","../../../node_modules/@azure/msal-common/src/request/ScopeSet.ts","../../../node_modules/@azure/msal-common/src/account/AuthToken.ts","../../../node_modules/@azure/msal-common/src/packageMetadata.ts","../../../node_modules/@azure/msal-common/src/cache/CacheManager.ts","../../../node_modules/@azure/msal-common/src/utils/TimeUtils.ts","../../../node_modules/@azure/msal-common/src/cache/entities/AccessTokenEntity.ts","../../../node_modules/@azure/msal-common/src/cache/entities/RefreshTokenEntity.ts","../../../node_modules/@azure/msal-common/src/cache/entities/AppMetadataEntity.ts","../../../node_modules/@azure/msal-common/src/cache/entities/ServerTelemetryEntity.ts","../../../node_modules/@azure/msal-common/src/cache/entities/AuthorityMetadataEntity.ts","../../../node_modules/@azure/msal-common/src/cache/entities/ThrottlingEntity.ts","../../../node_modules/@azure/msal-common/src/utils/ProtocolUtils.ts","../../../node_modules/@azure/msal-common/src/cache/entities/CacheRecord.ts","../../../node_modules/@azure/msal-common/src/authority/AuthorityOptions.ts","../../../node_modules/@azure/msal-browser/src/cache/BrowserStorage.ts","../../../node_modules/@azure/msal-common/src/url/UrlString.ts","../../../node_modules/@azure/msal-browser/src/utils/BrowserProtocolUtils.ts","../../../node_modules/@azure/msal-browser/src/cache/BrowserCacheManager.ts","../../../node_modules/@azure/msal-common/src/config/ClientConfiguration.ts","../../../node_modules/@azure/msal-common/src/network/INetworkModule.ts","../../../node_modules/@azure/msal-browser/src/network/FetchClient.ts","../../../node_modules/@azure/msal-browser/src/network/XhrClient.ts","../../../node_modules/@azure/msal-browser/src/utils/BrowserUtils.ts","../../../node_modules/@azure/msal-browser/src/navigation/NavigationClient.ts","../../../node_modules/@azure/msal-browser/src/config/Configuration.ts","../../../node_modules/@azure/msal-browser/src/packageMetadata.ts","../../../node_modules/@azure/msal-common/src/crypto/PopTokenGenerator.ts","../../../node_modules/@azure/msal-browser/src/event/EventHandler.ts","../../../node_modules/@azure/msal-common/src/network/ThrottlingUtils.ts","../../../node_modules/@azure/msal-common/src/network/NetworkManager.ts","../../../node_modules/@azure/msal-common/src/request/RequestValidator.ts","../../../node_modules/@azure/msal-common/src/request/RequestParameterBuilder.ts","../../../node_modules/@azure/msal-common/src/client/BaseClient.ts","../../../node_modules/@azure/msal-common/src/cache/persistence/TokenCacheContext.ts","../../../node_modules/@azure/msal-common/src/response/ResponseHandler.ts","../../../node_modules/@azure/msal-common/src/client/AuthorizationCodeClient.ts","../../../node_modules/@azure/msal-common/src/authority/OpenIdConfigResponse.ts","../../../node_modules/@azure/msal-common/src/authority/AuthorityMetadata.ts","../../../node_modules/@azure/msal-common/src/authority/RegionDiscovery.ts","../../../node_modules/@azure/msal-browser/src/error/NativeAuthError.ts","../../../node_modules/@azure/msal-common/src/authority/Authority.ts","../../../node_modules/@azure/msal-common/src/authority/CloudInstanceDiscoveryResponse.ts","../../../node_modules/@azure/msal-common/src/authority/CloudInstanceDiscoveryErrorResponse.ts","../../../node_modules/@azure/msal-common/src/authority/AuthorityFactory.ts","../../../node_modules/@azure/msal-common/src/telemetry/server/ServerTelemetryManager.ts","../../../node_modules/@azure/msal-browser/src/interaction_client/BaseInteractionClient.ts","../../../node_modules/@azure/msal-browser/src/interaction_client/StandardInteractionClient.ts","../../../node_modules/@azure/msal-common/src/client/RefreshTokenClient.ts","../../../node_modules/@azure/msal-common/src/client/SilentFlowClient.ts","../../../node_modules/@azure/msal-browser/src/interaction_client/SilentCacheClient.ts","../../../node_modules/@azure/msal-browser/src/interaction_client/NativeInteractionClient.ts","../../../node_modules/@azure/msal-browser/src/broker/nativeBroker/NativeMessageHandler.ts","../../../node_modules/@azure/msal-browser/src/interaction_handler/InteractionHandler.ts","../../../node_modules/@azure/msal-browser/src/interaction_client/PopupClient.ts","../../../node_modules/@azure/msal-browser/src/interaction_handler/RedirectHandler.ts","../../../node_modules/@azure/msal-browser/src/interaction_client/RedirectClient.ts","../../../node_modules/@azure/msal-browser/src/interaction_handler/SilentHandler.ts","../../../node_modules/@azure/msal-browser/src/interaction_client/SilentIframeClient.ts","../../../node_modules/@azure/msal-browser/src/interaction_client/SilentRefreshClient.ts","../../../node_modules/@azure/msal-browser/src/cache/TokenCache.ts","../../../node_modules/@azure/msal-browser/src/interaction_client/HybridSpaAuthorizationCodeClient.ts","../../../node_modules/@azure/msal-browser/src/interaction_client/SilentAuthCodeClient.ts","../../../node_modules/@azure/msal-browser/src/telemetry/BrowserPerformanceMeasurement.ts","../../../node_modules/@azure/msal-browser/src/telemetry/BrowserPerformanceClient.ts","../../../node_modules/@azure/msal-browser/src/app/ClientApplication.ts","../../../node_modules/@azure/msal-browser/src/app/PublicClientApplication.ts","../../../node_modules/@ucl/library/lib/utils/clone.js","../../../node_modules/@ucl/library/lib/utils/miscellaneous.js","../../../node_modules/@ucl/library/lib/utils/field.js","../../../node_modules/@blueprintjs/core/src/common/configureDom4.ts","../../../node_modules/@blueprintjs/core/node_modules/tslib/tslib.es6.mjs","../../../node_modules/@blueprintjs/core/src/common/alignment.ts","../../../node_modules/@blueprintjs/core/src/common/elevation.ts","../../../node_modules/@blueprintjs/core/src/common/intent.ts","../../../node_modules/@blueprintjs/core/src/common/position.ts","../../../node_modules/@blueprintjs/core/src/common/classes.ts","../../../node_modules/@blueprintjs/core/src/common/props.ts","../../../node_modules/@blueprintjs/core/src/common/errors.ts","../../../node_modules/@blueprintjs/core/src/common/utils/jsUtils.ts","../../../node_modules/@blueprintjs/core/src/common/abstractPureComponent2.ts","../../../node_modules/@blueprintjs/core/src/common/refs.ts","../../../node_modules/@blueprintjs/core/src/common/keys.ts","../../../node_modules/@blueprintjs/core/src/common/utils/reactUtils.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/add.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/add-clip.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/add-column-left.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/add-column-right.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/add-location.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/add-row-bottom.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/add-row-top.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/add-to-artifact.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/add-to-folder.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/aimpoints-target.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/airplane.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/align-center.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/align-justify.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/align-left.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/align-right.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/alignment-bottom.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/alignment-horizontal-center.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/alignment-left.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/alignment-right.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/alignment-top.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/alignment-vertical-center.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/ammunition.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/anchor.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/annotation.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/antenna.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/app-header.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/application.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/applications.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/archive.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/area-of-interest.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/array.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/array-boolean.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/array-date.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/array-floating-point.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/array-numeric.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/array-string.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/array-timestamp.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/arrow-bottom-left.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/arrow-bottom-right.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/arrow-down.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/arrow-left.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/arrow-right.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/arrow-top-left.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/arrow-top-right.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/arrow-up.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/arrows-horizontal.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/arrows-vertical.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/asterisk.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/at.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/automatic-updates.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/axle.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/backlink.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/badge.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/ban-circle.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/bank-account.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/barcode.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/blank.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/blocked-person.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/bold.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/book.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/bookmark.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/box.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/briefcase.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/bring-data.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/bug.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/buggy.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/build.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/calculator.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/calendar.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/camera.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/caret-down.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/caret-left.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/caret-right.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/caret-up.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/cargo-ship.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/cell-tower.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/changes.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/chart.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/chat.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/chevron-backward.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/chevron-down.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/chevron-forward.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/chevron-left.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/chevron-right.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/chevron-up.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/circle.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/circle-arrow-down.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/circle-arrow-left.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/circle-arrow-right.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/circle-arrow-up.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/citation.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/clean.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/clip.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/clipboard.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/cloud.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/cloud-download.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/cloud-upload.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/code.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/code-block.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/cog.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/collapse-all.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/color-fill.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/column-layout.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/comment.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/comparison.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/compass.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/compressed.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/confirm.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/console.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/contrast.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/control.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/credit-card.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/cross.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/cross-circle.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/crown.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/cube.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/cube-add.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/cube-remove.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/curved-range-chart.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/cut.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/cycle.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/dashboard.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/data-connection.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/data-lineage.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/database.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/delete.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/delta.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/derive-column.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/desktop.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/detection.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/diagnosis.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/diagram-tree.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/direction-left.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/direction-right.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/disable.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/divide.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/document.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/document-open.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/document-share.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/dollar.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/dot.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/double-caret-horizontal.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/double-caret-vertical.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/double-chevron-down.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/double-chevron-left.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/double-chevron-right.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/double-chevron-up.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/doughnut-chart.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/download.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/drag-handle-horizontal.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/drag-handle-vertical.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/draw.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/drawer-left.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/drawer-left-filled.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/drawer-right.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/drawer-right-filled.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/drive-time.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/duplicate.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/edit.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/eject.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/emoji.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/endorsed.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/envelope.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/equals.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/eraser.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/error.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/euro.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/exchange.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/exclude-row.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/expand-all.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/export.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/eye-off.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/eye-on.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/eye-open.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/fast-backward.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/fast-forward.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/feed.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/feed-subscribed.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/film.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/filter.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/filter-keep.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/filter-list.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/filter-open.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/filter-remove.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/flag.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/flame.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/flash.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/floating-point.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/floppy-disk.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/flow-branch.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/flow-end.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/flow-linear.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/flow-review.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/flow-review-branch.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/flows.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/folder-close.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/folder-new.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/folder-open.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/folder-shared.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/folder-shared-open.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/follower.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/following.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/font.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/fork.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/form.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/fuel.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/full-circle.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/full-stacked-chart.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/fullscreen.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/function.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/gantt-chart.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/geofence.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/geolocation.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/geosearch.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/git-branch.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/git-commit.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/git-merge.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/git-new-branch.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/git-pull.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/git-push.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/git-repo.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/glass.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/globe.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/globe-network.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/graph.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/graph-remove.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/greater-than.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/greater-than-or-equal-to.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/grid.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/grid-view.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/group-objects.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/grouped-bar-chart.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/hand.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/hand-down.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/hand-left.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/hand-right.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/hand-up.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/hat.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/header.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/header-one.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/header-three.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/header-two.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/headset.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/heart.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/heart-broken.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/heat-grid.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/heatmap.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/helicopter.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/help.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/helper-management.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/high-priority.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/high-voltage-pole.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/highlight.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/history.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/home.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/horizontal-bar-chart.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/horizontal-bar-chart-asc.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/horizontal-bar-chart-desc.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/horizontal-distribution.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/horizontal-inbetween.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/hurricane.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/id-number.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/image-rotate-left.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/image-rotate-right.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/import.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/inbox.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/inbox-filtered.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/inbox-geo.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/inbox-search.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/inbox-update.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/info-sign.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/inheritance.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/inherited-group.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/inner-join.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/insert.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/intelligence.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/intersection.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/ip-address.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/issue.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/issue-closed.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/issue-new.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/italic.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/join-table.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/key.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/key-backspace.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/key-command.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/key-control.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/key-delete.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/key-enter.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/key-escape.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/key-option.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/key-shift.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/key-tab.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/known-vehicle.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/lab-test.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/label.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/layer.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/layer-outline.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/layers.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/layout.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/layout-auto.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/layout-balloon.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/layout-circle.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/layout-grid.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/layout-group-by.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/layout-hierarchy.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/layout-linear.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/layout-skew-grid.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/layout-sorted-clusters.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/learning.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/left-join.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/lengthen-text.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/less-than.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/less-than-or-equal-to.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/lifesaver.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/lightbulb.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/lightning.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/link.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/list.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/list-columns.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/list-detail-view.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/locate.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/lock.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/locomotive.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/log-in.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/log-out.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/low-voltage-pole.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/manual.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/manually-entered-data.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/many-to-many.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/many-to-one.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/map.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/map-create.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/map-marker.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/maximize.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/media.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/menu.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/menu-closed.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/menu-open.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/merge-columns.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/merge-links.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/minimize.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/minus.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/mobile-phone.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/mobile-video.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/modal.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/modal-filled.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/model.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/moon.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/more.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/mountain.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/move.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/mugshot.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/multi-select.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/music.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/nest.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/new-drawing.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/new-grid-item.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/new-layer.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/new-layers.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/new-link.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/new-object.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/new-person.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/new-prescription.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/new-text-box.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/ninja.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/not-equal-to.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/notifications.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/notifications-snooze.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/notifications-updated.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/numbered-list.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/numerical.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/office.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/offline.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/oil-field.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/one-column.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/one-to-many.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/one-to-one.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/open-application.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/outdated.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/page-layout.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/panel-stats.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/panel-table.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/paperclip.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/paragraph.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/path.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/path-search.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/pause.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/people.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/percentage.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/person.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/phone.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/pie-chart.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/pin.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/pivot.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/pivot-table.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/play.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/playbook.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/plus.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/polygon-filter.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/power.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/predictive-analysis.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/prescription.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/presentation.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/print.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/projects.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/properties.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/property.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/publish-function.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/pulse.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/rain.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/random.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/record.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/rect-height.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/rect-width.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/rectangle.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/redo.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/refresh.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/regex.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/regression-chart.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/remove.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/remove-column.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/remove-column-left.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/remove-column-right.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/remove-row-bottom.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/remove-row-top.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/repeat.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/reset.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/resolve.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/rig.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/right-join.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/ring.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/rocket.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/rocket-slant.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/rotate-document.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/rotate-page.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/route.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/satellite.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/saved.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/scatter-plot.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/search.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/search-around.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/search-template.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/search-text.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/segmented-control.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/select.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/selection.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/send-message.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/send-to.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/send-to-graph.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/send-to-map.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/sensor.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/series-add.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/series-configuration.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/series-derived.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/series-filtered.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/series-search.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/settings.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/shapes.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/share.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/shared-filter.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/shield.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/ship.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/shop.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/shopping-cart.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/shorten-text.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/signal-search.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/sim-card.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/slash.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/small-cross.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/small-info-sign.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/small-minus.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/small-plus.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/small-square.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/small-tick.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/snowflake.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/social-media.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/sort.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/sort-alphabetical.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/sort-alphabetical-desc.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/sort-asc.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/sort-desc.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/sort-numerical.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/sort-numerical-desc.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/spell-check.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/split-columns.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/square.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/stacked-chart.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/stadium-geometry.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/star.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/star-empty.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/step-backward.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/step-chart.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/step-forward.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/stop.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/stopwatch.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/strikethrough.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/style.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/subscript.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/superscript.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/swap-horizontal.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/swap-vertical.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/switch.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/symbol-circle.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/symbol-cross.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/symbol-diamond.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/symbol-rectangle.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/symbol-square.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/symbol-triangle-down.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/symbol-triangle-up.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/syringe.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/tag.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/take-action.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/tank.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/target.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/taxi.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/temperature.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/text-highlight.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/th.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/th-derived.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/th-disconnect.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/th-filtered.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/th-list.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/third-party.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/thumbs-down.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/thumbs-up.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/tick.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/tick-circle.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/time.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/timeline-area-chart.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/timeline-bar-chart.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/timeline-events.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/timeline-line-chart.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/tint.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/torch.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/tractor.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/train.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/translate.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/trash.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/tree.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/trending-down.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/trending-up.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/truck.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/two-columns.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/unarchive.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/underline.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/undo.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/ungroup-objects.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/unknown-vehicle.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/unlock.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/unpin.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/unresolve.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/updated.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/upload.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/user.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/variable.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/vertical-bar-chart-asc.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/vertical-bar-chart-desc.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/vertical-distribution.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/vertical-inbetween.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/video.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/virus.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/volume-down.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/volume-off.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/volume-up.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/walk.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/warning-sign.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/waterfall-chart.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/waves.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/widget.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/widget-button.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/widget-footer.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/widget-header.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/wind.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/wrench.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/zoom-in.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/zoom-out.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/paths/zoom-to-fit.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/add.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/add-clip.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/add-column-left.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/add-column-right.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/add-location.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/add-row-bottom.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/add-row-top.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/add-to-artifact.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/add-to-folder.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/aimpoints-target.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/airplane.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/align-center.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/align-justify.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/align-left.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/align-right.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/alignment-bottom.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/alignment-horizontal-center.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/alignment-left.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/alignment-right.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/alignment-top.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/alignment-vertical-center.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/ammunition.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/anchor.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/annotation.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/antenna.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/app-header.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/application.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/applications.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/archive.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/area-of-interest.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/array.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/array-boolean.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/array-date.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/array-floating-point.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/array-numeric.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/array-string.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/array-timestamp.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/arrow-bottom-left.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/arrow-bottom-right.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/arrow-down.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/arrow-left.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/arrow-right.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/arrow-top-left.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/arrow-top-right.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/arrow-up.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/arrows-horizontal.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/arrows-vertical.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/asterisk.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/at.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/automatic-updates.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/axle.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/backlink.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/badge.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/ban-circle.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/bank-account.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/barcode.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/blank.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/blocked-person.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/bold.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/book.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/bookmark.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/box.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/briefcase.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/bring-data.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/bug.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/buggy.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/build.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/calculator.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/calendar.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/camera.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/caret-down.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/caret-left.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/caret-right.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/caret-up.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/cargo-ship.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/cell-tower.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/changes.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/chart.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/chat.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/chevron-backward.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/chevron-down.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/chevron-forward.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/chevron-left.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/chevron-right.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/chevron-up.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/circle.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/circle-arrow-down.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/circle-arrow-left.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/circle-arrow-right.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/circle-arrow-up.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/citation.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/clean.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/clip.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/clipboard.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/cloud.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/cloud-download.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/cloud-upload.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/code.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/code-block.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/cog.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/collapse-all.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/color-fill.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/column-layout.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/comment.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/comparison.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/compass.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/compressed.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/confirm.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/console.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/contrast.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/control.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/credit-card.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/cross.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/cross-circle.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/crown.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/cube.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/cube-add.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/cube-remove.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/curved-range-chart.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/cut.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/cycle.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/dashboard.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/data-connection.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/data-lineage.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/database.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/delete.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/delta.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/derive-column.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/desktop.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/detection.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/diagnosis.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/diagram-tree.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/direction-left.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/direction-right.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/disable.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/divide.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/document.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/document-open.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/document-share.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/dollar.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/dot.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/double-caret-horizontal.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/double-caret-vertical.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/double-chevron-down.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/double-chevron-left.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/double-chevron-right.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/double-chevron-up.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/doughnut-chart.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/download.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/drag-handle-horizontal.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/drag-handle-vertical.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/draw.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/drawer-left.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/drawer-left-filled.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/drawer-right.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/drawer-right-filled.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/drive-time.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/duplicate.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/edit.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/eject.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/emoji.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/endorsed.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/envelope.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/equals.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/eraser.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/error.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/euro.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/exchange.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/exclude-row.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/expand-all.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/export.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/eye-off.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/eye-on.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/eye-open.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/fast-backward.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/fast-forward.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/feed.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/feed-subscribed.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/film.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/filter.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/filter-keep.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/filter-list.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/filter-open.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/filter-remove.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/flag.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/flame.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/flash.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/floating-point.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/floppy-disk.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/flow-branch.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/flow-end.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/flow-linear.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/flow-review.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/flow-review-branch.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/flows.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/folder-close.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/folder-new.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/folder-open.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/folder-shared.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/folder-shared-open.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/follower.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/following.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/font.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/fork.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/form.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/fuel.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/full-circle.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/full-stacked-chart.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/fullscreen.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/function.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/gantt-chart.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/geofence.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/geolocation.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/geosearch.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/git-branch.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/git-commit.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/git-merge.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/git-new-branch.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/git-pull.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/git-push.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/git-repo.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/glass.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/globe.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/globe-network.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/graph.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/graph-remove.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/greater-than.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/greater-than-or-equal-to.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/grid.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/grid-view.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/group-objects.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/grouped-bar-chart.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/hand.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/hand-down.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/hand-left.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/hand-right.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/hand-up.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/hat.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/header.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/header-one.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/header-three.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/header-two.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/headset.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/heart.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/heart-broken.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/heat-grid.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/heatmap.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/helicopter.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/help.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/helper-management.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/high-priority.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/high-voltage-pole.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/highlight.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/history.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/home.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/horizontal-bar-chart.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/horizontal-bar-chart-asc.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/horizontal-bar-chart-desc.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/horizontal-distribution.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/horizontal-inbetween.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/hurricane.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/id-number.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/image-rotate-left.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/image-rotate-right.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/import.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/inbox.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/inbox-filtered.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/inbox-geo.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/inbox-search.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/inbox-update.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/info-sign.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/inheritance.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/inherited-group.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/inner-join.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/insert.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/intelligence.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/intersection.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/ip-address.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/issue.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/issue-closed.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/issue-new.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/italic.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/join-table.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/key.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/key-backspace.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/key-command.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/key-control.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/key-delete.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/key-enter.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/key-escape.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/key-option.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/key-shift.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/key-tab.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/known-vehicle.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/lab-test.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/label.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/layer.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/layer-outline.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/layers.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/layout.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/layout-auto.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/layout-balloon.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/layout-circle.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/layout-grid.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/layout-group-by.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/layout-hierarchy.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/layout-linear.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/layout-skew-grid.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/layout-sorted-clusters.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/learning.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/left-join.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/lengthen-text.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/less-than.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/less-than-or-equal-to.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/lifesaver.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/lightbulb.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/lightning.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/link.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/list.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/list-columns.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/list-detail-view.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/locate.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/lock.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/locomotive.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/log-in.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/log-out.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/low-voltage-pole.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/manual.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/manually-entered-data.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/many-to-many.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/many-to-one.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/map.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/map-create.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/map-marker.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/maximize.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/media.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/menu.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/menu-closed.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/menu-open.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/merge-columns.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/merge-links.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/minimize.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/minus.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/mobile-phone.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/mobile-video.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/modal.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/modal-filled.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/model.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/moon.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/more.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/mountain.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/move.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/mugshot.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/multi-select.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/music.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/nest.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/new-drawing.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/new-grid-item.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/new-layer.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/new-layers.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/new-link.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/new-object.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/new-person.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/new-prescription.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/new-text-box.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/ninja.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/not-equal-to.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/notifications.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/notifications-snooze.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/notifications-updated.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/numbered-list.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/numerical.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/office.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/offline.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/oil-field.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/one-column.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/one-to-many.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/one-to-one.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/open-application.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/outdated.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/page-layout.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/panel-stats.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/panel-table.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/paperclip.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/paragraph.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/path.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/path-search.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/pause.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/people.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/percentage.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/person.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/phone.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/pie-chart.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/pin.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/pivot.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/pivot-table.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/play.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/playbook.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/plus.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/polygon-filter.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/power.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/predictive-analysis.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/prescription.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/presentation.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/print.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/projects.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/properties.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/property.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/publish-function.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/pulse.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/rain.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/random.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/record.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/rect-height.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/rect-width.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/rectangle.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/redo.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/refresh.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/regex.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/regression-chart.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/remove.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/remove-column.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/remove-column-left.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/remove-column-right.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/remove-row-bottom.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/remove-row-top.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/repeat.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/reset.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/resolve.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/rig.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/right-join.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/ring.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/rocket.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/rocket-slant.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/rotate-document.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/rotate-page.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/route.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/satellite.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/saved.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/scatter-plot.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/search.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/search-around.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/search-template.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/search-text.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/segmented-control.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/select.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/selection.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/send-message.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/send-to.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/send-to-graph.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/send-to-map.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/sensor.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/series-add.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/series-configuration.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/series-derived.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/series-filtered.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/series-search.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/settings.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/shapes.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/share.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/shared-filter.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/shield.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/ship.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/shop.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/shopping-cart.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/shorten-text.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/signal-search.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/sim-card.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/slash.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/small-cross.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/small-info-sign.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/small-minus.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/small-plus.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/small-square.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/small-tick.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/snowflake.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/social-media.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/sort.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/sort-alphabetical.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/sort-alphabetical-desc.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/sort-asc.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/sort-desc.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/sort-numerical.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/sort-numerical-desc.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/spell-check.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/split-columns.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/square.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/stacked-chart.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/stadium-geometry.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/star.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/star-empty.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/step-backward.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/step-chart.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/step-forward.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/stop.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/stopwatch.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/strikethrough.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/style.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/subscript.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/superscript.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/swap-horizontal.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/swap-vertical.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/switch.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/symbol-circle.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/symbol-cross.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/symbol-diamond.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/symbol-rectangle.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/symbol-square.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/symbol-triangle-down.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/symbol-triangle-up.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/syringe.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/tag.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/take-action.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/tank.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/target.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/taxi.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/temperature.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/text-highlight.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/th.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/th-derived.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/th-disconnect.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/th-filtered.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/th-list.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/third-party.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/thumbs-down.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/thumbs-up.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/tick.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/tick-circle.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/time.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/timeline-area-chart.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/timeline-bar-chart.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/timeline-events.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/timeline-line-chart.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/tint.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/torch.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/tractor.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/train.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/translate.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/trash.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/tree.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/trending-down.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/trending-up.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/truck.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/two-columns.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/unarchive.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/underline.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/undo.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/ungroup-objects.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/unknown-vehicle.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/unlock.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/unpin.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/unresolve.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/updated.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/upload.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/user.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/variable.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/vertical-bar-chart-asc.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/vertical-bar-chart-desc.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/vertical-distribution.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/vertical-inbetween.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/video.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/virus.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/volume-down.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/volume-off.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/volume-up.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/walk.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/warning-sign.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/waterfall-chart.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/waves.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/widget.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/widget-button.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/widget-footer.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/widget-header.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/wind.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/wrench.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/zoom-in.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/zoom-out.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/20px/paths/zoom-to-fit.ts","../../../node_modules/tslib/tslib.es6.mjs","../../../node_modules/lower-case/src/index.ts","../../../node_modules/no-case/src/index.ts","../../../node_modules/@blueprintjs/core/src/components/icon/icon.tsx","../../../node_modules/pascal-case/src/index.ts","../../../node_modules/@blueprintjs/core/src/components/spinner/spinner.tsx","../../../node_modules/@blueprintjs/icons/src/iconSvgPaths.ts","../../../node_modules/@blueprintjs/core/src/components/button/abstractButton.tsx","../../../node_modules/@blueprintjs/core/src/components/button/buttons.tsx","../../../node_modules/@blueprintjs/core/src/components/html/html.tsx","../../../node_modules/@babel/runtime/helpers/esm/extends.js","../../../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../../../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../../../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../../../node_modules/dom-helpers/esm/removeClass.js","../../../node_modules/react-transition-group/esm/config.js","../../../node_modules/react-transition-group/esm/TransitionGroupContext.js","../../../node_modules/react-transition-group/esm/utils/reflow.js","../../../node_modules/react-transition-group/esm/Transition.js","../../../node_modules/react-transition-group/esm/CSSTransition.js","../../../node_modules/dom-helpers/esm/addClass.js","../../../node_modules/dom-helpers/esm/hasClass.js","../../../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../../../node_modules/react-transition-group/esm/utils/ChildMapping.js","../../../node_modules/react-transition-group/esm/TransitionGroup.js","../../../node_modules/@blueprintjs/core/src/common/utils/functionUtils.ts","../../../node_modules/@blueprintjs/core/src/common/utils/domUtils.ts","../../../node_modules/@blueprintjs/core/src/components/portal/portal.tsx","../../../node_modules/@blueprintjs/core/src/components/overlay/overlay.tsx","../../../node_modules/@blueprintjs/core/src/components/dialog/dialog.tsx","../../../node_modules/@blueprintjs/core/src/components/alert/alert.tsx","../../../node_modules/@blueprintjs/core/src/common/boundary.ts","../../../node_modules/@blueprintjs/core/src/components/menu/menu.tsx","../../../node_modules/@babel/runtime/helpers/esm/typeof.js","../../../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../../../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../../../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../../../node_modules/react-popper/lib/esm/Manager.js","../../../node_modules/react-popper/lib/esm/utils.js","../../../node_modules/react-popper/lib/esm/Reference.js","../../../node_modules/popper.js/src/utils/isBrowser.js","../../../node_modules/popper.js/src/utils/debounce.js","../../../node_modules/popper.js/src/utils/isFunction.js","../../../node_modules/popper.js/src/utils/getStyleComputedProperty.js","../../../node_modules/popper.js/src/utils/getParentNode.js","../../../node_modules/popper.js/src/utils/getScrollParent.js","../../../node_modules/popper.js/src/utils/getReferenceNode.js","../../../node_modules/popper.js/src/utils/isIE.js","../../../node_modules/popper.js/src/utils/getOffsetParent.js","../../../node_modules/popper.js/src/utils/getRoot.js","../../../node_modules/popper.js/src/utils/findCommonOffsetParent.js","../../../node_modules/popper.js/src/utils/isOffsetContainer.js","../../../node_modules/popper.js/src/utils/getScroll.js","../../../node_modules/popper.js/src/utils/getBordersSize.js","../../../node_modules/popper.js/src/utils/getWindowSizes.js","../../../node_modules/popper.js/src/utils/getClientRect.js","../../../node_modules/popper.js/src/utils/getBoundingClientRect.js","../../../node_modules/popper.js/src/utils/getOffsetRectRelativeToArbitraryNode.js","../../../node_modules/popper.js/src/utils/includeScroll.js","../../../node_modules/popper.js/src/utils/isFixed.js","../../../node_modules/popper.js/src/utils/getFixedPositionOffsetParent.js","../../../node_modules/popper.js/src/utils/getBoundaries.js","../../../node_modules/popper.js/src/utils/getViewportOffsetRectRelativeToArtbitraryNode.js","../../../node_modules/popper.js/src/utils/computeAutoPlacement.js","../../../node_modules/popper.js/src/utils/getReferenceOffsets.js","../../../node_modules/popper.js/src/utils/getOuterSizes.js","../../../node_modules/popper.js/src/utils/getOppositePlacement.js","../../../node_modules/popper.js/src/utils/getPopperOffsets.js","../../../node_modules/popper.js/src/utils/find.js","../../../node_modules/popper.js/src/utils/runModifiers.js","../../../node_modules/popper.js/src/utils/findIndex.js","../../../node_modules/popper.js/src/methods/update.js","../../../node_modules/popper.js/src/utils/isModifierEnabled.js","../../../node_modules/popper.js/src/utils/getSupportedPropertyName.js","../../../node_modules/popper.js/src/methods/destroy.js","../../../node_modules/popper.js/src/utils/getWindow.js","../../../node_modules/popper.js/src/utils/setupEventListeners.js","../../../node_modules/popper.js/src/methods/enableEventListeners.js","../../../node_modules/popper.js/src/methods/disableEventListeners.js","../../../node_modules/popper.js/src/utils/removeEventListeners.js","../../../node_modules/popper.js/src/utils/isNumeric.js","../../../node_modules/popper.js/src/utils/setStyles.js","../../../node_modules/popper.js/src/modifiers/computeStyle.js","../../../node_modules/popper.js/src/utils/isModifierRequired.js","../../../node_modules/popper.js/src/methods/placements.js","../../../node_modules/popper.js/src/utils/clockwise.js","../../../node_modules/popper.js/src/modifiers/flip.js","../../../node_modules/popper.js/src/modifiers/offset.js","../../../node_modules/popper.js/src/modifiers/index.js","../../../node_modules/popper.js/src/modifiers/shift.js","../../../node_modules/popper.js/src/modifiers/preventOverflow.js","../../../node_modules/popper.js/src/modifiers/keepTogether.js","../../../node_modules/popper.js/src/modifiers/arrow.js","../../../node_modules/popper.js/src/utils/getOppositeVariation.js","../../../node_modules/popper.js/src/modifiers/inner.js","../../../node_modules/popper.js/src/modifiers/hide.js","../../../node_modules/popper.js/src/utils/getRoundedOffsets.js","../../../node_modules/popper.js/src/modifiers/applyStyle.js","../../../node_modules/popper.js/src/utils/setAttributes.js","../../../node_modules/popper.js/src/methods/defaults.js","../../../node_modules/popper.js/src/index.js","../../../node_modules/react-popper/lib/esm/Popper.js","../../../node_modules/@juggle/resize-observer/lib/utils/resizeObservers.js","../../../node_modules/@juggle/resize-observer/lib/ResizeObserverBoxOptions.js","../../../node_modules/@juggle/resize-observer/lib/algorithms/deliverResizeLoopError.js","../../../node_modules/@juggle/resize-observer/lib/utils/freeze.js","../../../node_modules/@juggle/resize-observer/lib/utils/queueMicroTask.js","../../../node_modules/@juggle/resize-observer/lib/ResizeObserverSize.js","../../../node_modules/@juggle/resize-observer/lib/DOMRectReadOnly.js","../../../node_modules/@juggle/resize-observer/lib/utils/element.js","../../../node_modules/@juggle/resize-observer/lib/utils/global.js","../../../node_modules/@juggle/resize-observer/lib/algorithms/calculateBoxSize.js","../../../node_modules/@juggle/resize-observer/lib/ResizeObserverEntry.js","../../../node_modules/@juggle/resize-observer/lib/algorithms/calculateDepthForNode.js","../../../node_modules/@juggle/resize-observer/lib/algorithms/broadcastActiveObservations.js","../../../node_modules/@juggle/resize-observer/lib/algorithms/gatherActiveObservationsAtDepth.js","../../../node_modules/@juggle/resize-observer/lib/utils/process.js","../../../node_modules/@juggle/resize-observer/lib/algorithms/hasActiveObservations.js","../../../node_modules/@juggle/resize-observer/lib/algorithms/hasSkippedObservations.js","../../../node_modules/@juggle/resize-observer/lib/utils/scheduler.js","../../../node_modules/@juggle/resize-observer/lib/utils/queueResizeObserver.js","../../../node_modules/@juggle/resize-observer/lib/ResizeObservation.js","../../../node_modules/@juggle/resize-observer/lib/ResizeObserverDetail.js","../../../node_modules/@juggle/resize-observer/lib/ResizeObserverController.js","../../../node_modules/@juggle/resize-observer/lib/ResizeObserver.js","../../../node_modules/@blueprintjs/core/src/components/resize-sensor/resizeSensor.tsx","../../../node_modules/@blueprintjs/core/src/components/tooltip/tooltip.tsx","../../../node_modules/@blueprintjs/core/src/components/popover/popperUtils.ts","../../../node_modules/@blueprintjs/core/src/components/popover/popoverArrow.tsx","../../../node_modules/@blueprintjs/core/src/components/popover/popoverMigrationUtils.ts","../../../node_modules/@blueprintjs/core/src/components/popover/popover.tsx","../../../node_modules/@blueprintjs/core/src/components/text/text.tsx","../../../node_modules/@blueprintjs/core/src/components/menu/menuItem.tsx","../../../node_modules/@blueprintjs/core/src/common/utils/compareUtils.ts","../../../node_modules/@blueprintjs/core/src/components/overflow-list/overflowList.tsx","../../../node_modules/@blueprintjs/core/src/components/breadcrumbs/breadcrumb.tsx","../../../node_modules/@blueprintjs/core/src/components/collapse/collapse.tsx","../../../node_modules/@blueprintjs/core/src/components/breadcrumbs/breadcrumbs.tsx","../../../node_modules/@blueprintjs/core/src/components/callout/callout.tsx","../../../node_modules/@blueprintjs/core/src/components/card/card.tsx","../../../node_modules/@blueprintjs/core/src/components/drawer/drawer.tsx","../../../node_modules/@blueprintjs/core/src/components/divider/divider.tsx","../../../node_modules/@blueprintjs/core/src/components/forms/numericInput.tsx","../../../node_modules/@blueprintjs/core/src/components/forms/controls.tsx","../../../node_modules/@blueprintjs/core/src/components/forms/fileInput.tsx","../../../node_modules/@blueprintjs/core/src/components/forms/formGroup.tsx","../../../node_modules/@blueprintjs/core/src/components/forms/asyncControllableInput.tsx","../../../node_modules/@blueprintjs/core/src/components/forms/inputGroup.tsx","../../../node_modules/@blueprintjs/core/src/components/button/buttonGroup.tsx","../../../node_modules/@blueprintjs/core/src/components/forms/controlGroup.tsx","../../../node_modules/@blueprintjs/core/src/components/forms/numericInputUtils.ts","../../../node_modules/@blueprintjs/core/src/components/forms/radioGroup.tsx","../../../node_modules/@blueprintjs/core/src/components/non-ideal-state/nonIdealState.tsx","../../../node_modules/@blueprintjs/core/src/components/forms/textArea.tsx","../../../node_modules/@blueprintjs/core/src/components/html-select/htmlSelect.tsx","../../../node_modules/@blueprintjs/core/src/components/navbar/navbarDivider.tsx","../../../node_modules/@blueprintjs/core/src/components/navbar/navbarGroup.tsx","../../../node_modules/@blueprintjs/core/src/components/navbar/navbarHeading.tsx","../../../node_modules/@blueprintjs/core/src/components/navbar/navbar.tsx","../../../node_modules/@blueprintjs/core/src/components/popover/popoverSharedProps.ts","../../../node_modules/@blueprintjs/core/src/components/tabs/tab.tsx","../../../node_modules/@blueprintjs/core/src/components/tag/tag.tsx","../../../node_modules/@blueprintjs/core/src/components/tabs/tabTitle.tsx","../../../node_modules/@blueprintjs/core/src/components/tabs/tabs.tsx","../../../node_modules/@blueprintjs/core/src/components/tag-input/resizableInput.tsx","../../../node_modules/@blueprintjs/core/src/components/tag-input/tagInput.tsx","../../../node_modules/@blueprintjs/core/src/components/toast/toast.tsx","../../../node_modules/@blueprintjs/core/src/components/toast/toaster.tsx","../../../node_modules/@blueprintjs/popover2/node_modules/tslib/tslib.es6.mjs","../../../node_modules/@blueprintjs/popover2/src/classes.ts","../../../node_modules/@blueprintjs/popover2/node_modules/react-popper/lib/esm/Manager.js","../../../node_modules/@blueprintjs/popover2/node_modules/react-popper/lib/esm/utils.js","../../../node_modules/@blueprintjs/popover2/node_modules/react-popper/lib/esm/Reference.js","../../../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../../../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../../../node_modules/@popperjs/core/lib/utils/math.js","../../../node_modules/@popperjs/core/lib/utils/userAgent.js","../../../node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","../../../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../../../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../../../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../../../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../../../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../../../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../../../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../../../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../../../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../../../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../../../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../../../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../../../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../../../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../../../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../../../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../../../node_modules/@popperjs/core/lib/enums.js","../../../node_modules/@popperjs/core/lib/utils/orderModifiers.js","../../../node_modules/@popperjs/core/lib/utils/debounce.js","../../../node_modules/@popperjs/core/lib/createPopper.js","../../../node_modules/@popperjs/core/lib/utils/mergeByName.js","../../../node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../../../node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../../../node_modules/@popperjs/core/lib/utils/getVariation.js","../../../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../../../node_modules/@popperjs/core/lib/utils/computeOffsets.js","../../../node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../../../node_modules/@popperjs/core/lib/modifiers/applyStyles.js","../../../node_modules/@popperjs/core/lib/modifiers/offset.js","../../../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../../../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../../../node_modules/@popperjs/core/lib/dom-utils/contains.js","../../../node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../../../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../../../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../../../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../../../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../../../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../../../node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../../../node_modules/@popperjs/core/lib/utils/detectOverflow.js","../../../node_modules/@popperjs/core/lib/modifiers/flip.js","../../../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../../../node_modules/@popperjs/core/lib/utils/within.js","../../../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../../../node_modules/@popperjs/core/lib/utils/getAltAxis.js","../../../node_modules/@popperjs/core/lib/modifiers/arrow.js","../../../node_modules/@popperjs/core/lib/modifiers/hide.js","../../../node_modules/@popperjs/core/lib/popper.js","../../../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../../../node_modules/@blueprintjs/popover2/node_modules/react-popper/lib/esm/usePopper.js","../../../node_modules/@blueprintjs/popover2/node_modules/react-popper/lib/esm/Popper.js","../../../node_modules/@blueprintjs/popover2/src/customModifiers.ts","../../../node_modules/@blueprintjs/popover2/src/errors.ts","../../../node_modules/@blueprintjs/popover2/src/utils.ts","../../../node_modules/@blueprintjs/popover2/src/popover2Arrow.tsx","../../../node_modules/@blueprintjs/popover2/src/popover2PlacementUtils.ts","../../../node_modules/@blueprintjs/popover2/src/resizeSensor2.tsx","../../../node_modules/@blueprintjs/popover2/src/tooltip2Context.tsx","../../../node_modules/@blueprintjs/popover2/src/tooltip2.tsx","../../../node_modules/@blueprintjs/popover2/src/popover2.tsx","../../../node_modules/@blueprintjs/popover2/src/menuItem2.tsx","../../../node_modules/@blueprintjs/select/node_modules/tslib/tslib.es6.mjs","../../../node_modules/@blueprintjs/popover2/src/popupKind.ts","../../../node_modules/@blueprintjs/select/src/common/classes.ts","../../../node_modules/@blueprintjs/core/src/common/abstractComponent2.ts","../../../node_modules/@blueprintjs/select/src/common/listItemsProps.ts","../../../node_modules/@blueprintjs/select/src/common/listItemsUtils.ts","../../../node_modules/@blueprintjs/select/src/components/query-list/queryList.tsx","../../../node_modules/@blueprintjs/select/src/common/itemListRenderer.ts","../../../node_modules/@blueprintjs/select/src/components/select/select2.tsx","../../../node_modules/mobx-react-lite/src/utils/assertEnvironment.ts","../../../node_modules/mobx-react-lite/src/utils/observerBatching.ts","../../../node_modules/mobx-react-lite/src/utils/printDebugValue.ts","../../../node_modules/mobx-react-lite/src/utils/UniversalFinalizationRegistry.ts","../../../node_modules/mobx-react-lite/src/utils/observerFinalizationRegistry.ts","../../../node_modules/mobx-react-lite/src/staticRendering.ts","../../../node_modules/mobx-react-lite/src/useObserver.ts","../../../node_modules/mobx-react-lite/src/observer.ts","../../../node_modules/mobx-react-lite/src/ObserverComponent.ts","../../../node_modules/mobx-react-lite/src/index.ts","../../../node_modules/mobx-react/src/utils/utils.ts","../../../node_modules/mobx-react/src/observerClass.ts","../../../node_modules/mobx-react/src/observer.tsx","../../../node_modules/mobx-react/src/index.ts","../../../node_modules/@ucl/library/lib/components/Tooltip/RelativityTooltip.js","../../../node_modules/@ucl/library/lib/components/Fields/CoreFields/FieldLabel/FieldLabel.js","../../../node_modules/@ucl/library/lib/components/Fields/SpecialInputFields/SmartAddressField/useSmartAddress.js","../../../node_modules/@syncfusion/ej2-base/src/util.js","../../../node_modules/@syncfusion/ej2-base/src/intl/parser-base.js","../../../node_modules/@syncfusion/ej2-base/src/hijri-parser.js","../../../node_modules/@syncfusion/ej2-base/src/intl/date-formatter.js","../../../node_modules/@syncfusion/ej2-base/src/intl/number-formatter.js","../../../node_modules/@syncfusion/ej2-base/src/intl/date-parser.js","../../../node_modules/@syncfusion/ej2-base/src/intl/number-parser.js","../../../node_modules/@syncfusion/ej2-base/src/observer.js","../../../node_modules/@syncfusion/ej2-base/src/internationalization.js","../../../node_modules/@syncfusion/ej2-base/src/intl/intl-base.js","../../../node_modules/@syncfusion/ej2-base/src/ajax.js","../../../node_modules/@syncfusion/ej2-base/src/browser.js","../../../node_modules/@syncfusion/ej2-base/src/event-handler.js","../../../node_modules/@syncfusion/ej2-base/src/dom.js","../../../node_modules/@syncfusion/ej2-base/src/base.js","../../../node_modules/@syncfusion/ej2-base/src/notify-property-change.js","../../../node_modules/@syncfusion/ej2-base/src/animation.js","../../../node_modules/@syncfusion/ej2-base/src/module-loader.js","../../../node_modules/@syncfusion/ej2-base/src/validate-lic.js","../../../node_modules/@syncfusion/ej2-base/src/child-property.js","../../../node_modules/@syncfusion/ej2-base/src/component.js","../../../node_modules/@syncfusion/ej2-base/src/draggable.js","../../../node_modules/@syncfusion/ej2-base/src/droppable.js","../../../node_modules/@syncfusion/ej2-base/src/keyboard.js","../../../node_modules/@syncfusion/ej2-base/src/l10n.js","../../../node_modules/@syncfusion/ej2-base/src/touch.js","../../../node_modules/@syncfusion/ej2-base/src/template.js","../../../node_modules/@syncfusion/ej2-base/src/template-engine.js","../../../node_modules/@syncfusion/ej2-notifications/src/skeleton/skeleton.js","../../../node_modules/@syncfusion/ej2-base/src/sanitize-helper.js","../../../node_modules/@syncfusion/ej2-react-base/src/component-base.js","../../../node_modules/@syncfusion/ej2-react-base/src/util.js","../../../node_modules/@syncfusion/ej2-react-base/src/complex-base.js","../../../node_modules/@syncfusion/ej2-react-base/src/services.js","../../../node_modules/@syncfusion/ej2-react-base/src/template.js","../../../node_modules/@syncfusion/ej2-react-notifications/src/skeleton/skeleton.component.js","../../../node_modules/@ucl/library/lib/components/Fields/CoreFields/FieldError/FormFieldErrorContainer.js","../../../node_modules/@blueprintjs/icons/node_modules/tslib/tslib.es6.mjs","../../../node_modules/snake-case/src/index.ts","../../../node_modules/dot-case/src/index.ts","../../../node_modules/@blueprintjs/icons/src/generated-icons/16px/blueprint-icons-16.ts","../../../node_modules/@blueprintjs/icons/src/iconNames.ts","../../../node_modules/@ucl/library/lib/components/Fields/BaseInputFields/TextField/TextField.js","../../../node_modules/@ucl/library/lib/components/Fields/BaseInputFields/TextField/useTextField.js","../../../node_modules/@ucl/library/lib/components/Fields/BaseInputFields/TextField/utils.js","../../../node_modules/@ucl/library/lib/components/Fields/DropdownFields/EnumSingleSelectField/EnumSingleSelectField.js","../../../node_modules/@ucl/library/lib/lib/usStates.js","../../../node_modules/@ucl/library/lib/components/Fields/SpecialInputFields/SimpleAddressField/defaults.js","../../../node_modules/@ucl/library/lib/components/Fields/BaseInputFields/SingleCheckboxField/SingleCheckboxField.js","../../../node_modules/@ucl/library/lib/components/Fields/BaseInputFields/SingleCheckboxField/useSingleCheckboxField.js","../../../node_modules/@ucl/library/lib/components/Fields/SpecialInputFields/SmartAddressField/SmartAddressField.js","../../../node_modules/@ucl/library/lib/components/Fields/SpecialInputFields/SimpleAddressField/SimpleAddressField.js","../../../node_modules/@ucl/library/lib/components/Fields/CoreFields/CustomField/CustomField.js","../../../node_modules/@ucl/library/lib/components/Fields/CoreFields/ComplexField/ComplexField.js","../../../node_modules/@blueprintjs/datetime2/node_modules/tslib/tslib.es6.mjs","../../../node_modules/@blueprintjs/datetime/src/common/months.ts","../../../node_modules/@blueprintjs/datetime/src/common/dateUtils.ts","../../../node_modules/@blueprintjs/datetime/src/datePickerCore.tsx","../../../node_modules/@blueprintjs/datetime/src/datePickerUtils.ts","../../../node_modules/@blueprintjs/datetime/src/dateFormat.tsx","../../../node_modules/@blueprintjs/datetime/node_modules/tslib/tslib.es6.mjs","../../../node_modules/@blueprintjs/datetime/src/common/classes.ts","../../../node_modules/@blueprintjs/datetime/src/common/errors.ts","../../../node_modules/@blueprintjs/datetime/src/common/utils.ts","../../../node_modules/@blueprintjs/datetime/src/datePickerCaption.tsx","../../../node_modules/@blueprintjs/datetime/src/common/timeUnit.ts","../../../node_modules/@blueprintjs/datetime/src/datePickerNavbar.tsx","../../../node_modules/@blueprintjs/datetime/src/shortcuts.tsx","../../../node_modules/@blueprintjs/datetime/src/timePicker.tsx","../../../node_modules/@blueprintjs/datetime/src/datePicker.tsx","../../../node_modules/@blueprintjs/datetime2/src/common/classes.ts","../../../node_modules/date-fns/esm/_lib/requiredArgs/index.js","../../../node_modules/date-fns/esm/toDate/index.js","../../../node_modules/date-fns/esm/startOfDay/index.js","../../../node_modules/date-fns/esm/isSameDay/index.js","../../../node_modules/@blueprintjs/datetime2/src/common/dateUtils.ts","../../../node_modules/@blueprintjs/datetime2/src/common/dateRange.ts","../../../node_modules/date-fns/esm/isWithinInterval/index.js","../../../node_modules/@blueprintjs/datetime2/src/common/errors.ts","../../../node_modules/@blueprintjs/datetime2/src/common/timezoneOffsetUtils.ts","../../../node_modules/@blueprintjs/datetime2/src/common/timezoneItems.ts","../../../node_modules/@blueprintjs/datetime2/src/common/getTimezone.ts","../../../node_modules/@blueprintjs/datetime2/src/common/timezoneNameUtils.ts","../../../node_modules/@blueprintjs/datetime2/src/common/timezoneUtils.ts","../../../node_modules/@blueprintjs/datetime2/src/common/timezoneDisplayFormat.ts","../../../node_modules/@blueprintjs/datetime2/src/components/timezone-select/timezoneSelect.tsx","../../../node_modules/@blueprintjs/datetime2/src/components/date-input2/dateInput2.tsx","../../../node_modules/date-fns/esm/isValid/index.js","../../../node_modules/date-fns/esm/isDate/index.js","../../../node_modules/date-fns/esm/_lib/toInteger/index.js","../../../node_modules/date-fns/esm/subMilliseconds/index.js","../../../node_modules/date-fns/esm/addMilliseconds/index.js","../../../node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","../../../node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","../../../node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","../../../node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","../../../node_modules/date-fns/esm/_lib/defaultOptions/index.js","../../../node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","../../../node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","../../../node_modules/date-fns/esm/_lib/getUTCWeek/index.js","../../../node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","../../../node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","../../../node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","../../../node_modules/date-fns/esm/_lib/format/formatters/index.js","../../../node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","../../../node_modules/date-fns/esm/_lib/format/longFormatters/index.js","../../../node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","../../../node_modules/date-fns/esm/_lib/protectedTokens/index.js","../../../node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","../../../node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","../../../node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","../../../node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","../../../node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","../../../node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","../../../node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","../../../node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","../../../node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","../../../node_modules/date-fns/esm/locale/en-US/index.js","../../../node_modules/date-fns/esm/_lib/defaultLocale/index.js","../../../node_modules/date-fns/esm/format/index.js","../../../node_modules/@ucl/library/lib/components/Fields/BaseInputFields/DateField/DateField.js","../../../node_modules/@syncfusion/ej2-popups/src/common/position.js","../../../node_modules/@syncfusion/ej2-popups/src/common/collision.js","../../../node_modules/@syncfusion/ej2-popups/src/popup/popup.js","../../../node_modules/@syncfusion/ej2-inputs/src/input/input.js","../../../node_modules/@syncfusion/ej2-calendars/src/calendar/calendar.js","../../../node_modules/@syncfusion/ej2-calendars/src/datepicker/datepicker.js","../../../node_modules/@syncfusion/ej2-react-calendars/src/datepicker/datepicker.component.js","../../../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../../../node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../../../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../../../node_modules/date-fns/esm/_lib/assign/index.js","../../../node_modules/@babel/runtime/helpers/esm/inherits.js","../../../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../../../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../../../node_modules/@babel/runtime/helpers/esm/createSuper.js","../../../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../../../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../../../node_modules/@babel/runtime/helpers/esm/createClass.js","../../../node_modules/date-fns/esm/parse/_lib/Setter.js","../../../node_modules/date-fns/esm/parse/_lib/Parser.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/EraParser.js","../../../node_modules/date-fns/esm/parse/_lib/constants.js","../../../node_modules/date-fns/esm/constants/index.js","../../../node_modules/date-fns/esm/parse/_lib/utils.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/YearParser.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/LocalWeekYearParser.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/ISOWeekYearParser.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/ExtendedYearParser.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/QuarterParser.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/StandAloneQuarterParser.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/MonthParser.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/StandAloneMonthParser.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/LocalWeekParser.js","../../../node_modules/date-fns/esm/_lib/setUTCWeek/index.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/ISOWeekParser.js","../../../node_modules/date-fns/esm/_lib/setUTCISOWeek/index.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/DateParser.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/DayOfYearParser.js","../../../node_modules/date-fns/esm/_lib/setUTCDay/index.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/DayParser.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/LocalDayParser.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/StandAloneLocalDayParser.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/ISODayParser.js","../../../node_modules/date-fns/esm/_lib/setUTCISODay/index.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/AMPMParser.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/AMPMMidnightParser.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/DayPeriodParser.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/Hour1to12Parser.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/Hour0to23Parser.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/Hour0To11Parser.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/Hour1To24Parser.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/MinuteParser.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/SecondParser.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/FractionOfSecondParser.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/ISOTimezoneWithZParser.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/ISOTimezoneParser.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/TimestampSecondsParser.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/TimestampMillisecondsParser.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/index.js","../../../node_modules/date-fns/esm/parse/index.js","../../../node_modules/@ucl/library/lib/components/Fields/BaseInputFields/DateFieldV2/DateFieldV2.js","../../../node_modules/@syncfusion/ej2-react-calendars/src/calendar/calendar.component.js","../../../node_modules/@ucl/library/lib/components/Fields/BaseInputFields/CalendarField/CalendarField.js","../../../node_modules/@blueprintjs/datetime/src/common/monthAndYear.ts","../../../node_modules/@blueprintjs/datetime/src/dateRangeSelectionStrategy.ts","../../../node_modules/@blueprintjs/datetime/src/dateRangePicker.tsx","../../../node_modules/@blueprintjs/datetime2/src/components/date-range-input2/dateRangeInput2.tsx","../../../node_modules/@ucl/library/lib/components/Fields/BaseInputFields/DateRangeField/DateRangeField.js","../../../node_modules/@ucl/library/lib/components/Fields/BaseInputFields/DateRangeField/useDateRangeField.js","../../../node_modules/@syncfusion/ej2-popups/src/spinner/spinner.js","../../../node_modules/@syncfusion/ej2-dropdowns/src/common/incremental-search.js","../../../node_modules/@syncfusion/ej2-data/src/query.js","../../../node_modules/@syncfusion/ej2-lists/src/common/list-base.js","../../../node_modules/@syncfusion/ej2-data/src/adaptors.js","../../../node_modules/@syncfusion/ej2-data/src/manager.js","../../../node_modules/@syncfusion/ej2-data/src/util.js","../../../node_modules/@syncfusion/ej2-dropdowns/src/drop-down-base/drop-down-base.js","../../../node_modules/@syncfusion/ej2-dropdowns/src/drop-down-list/drop-down-list.js","../../../node_modules/@syncfusion/ej2-react-dropdowns/src/drop-down-list/dropdownlist.component.js","../../../node_modules/@ucl/library/lib/components/Fields/DropdownFields/EnumSingleSelectFieldV2/useEnumSingleSelectFieldV2.js","../../../node_modules/@syncfusion/ej2-buttons/src/common/common.js","../../../node_modules/@syncfusion/ej2-buttons/src/button/button.js","../../../node_modules/@syncfusion/ej2-splitbuttons/src/progress-button/progress-button.js","../../../node_modules/@syncfusion/ej2-react-splitbuttons/src/progress-button/progressbutton.component.js","../../../node_modules/@ucl/library/lib/components/Buttons/useLoadingButton.js","../../../node_modules/@ucl/library/lib/components/Buttons/PrimaryButton.js","../../../node_modules/@ucl/library/lib/components/Buttons/CancelButton.js","../../../node_modules/@ucl/library/lib/components/Buttons/SecondaryButton.js","../../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs","../../../node_modules/@fortawesome/fontawesome-svg-core/index.mjs","../../../node_modules/@fortawesome/react-fontawesome/index.es.js","../../../node_modules/@ucl/library/lib/components/Fields/DropdownFields/EnumSingleSelectFieldV2/EnumSingleSelectFieldV2.js","../../../node_modules/@ucl/library/lib/components/Fields/BaseInputFields/TextAreaField/TextAreaField.js","../../../node_modules/@ucl/library/lib/components/Fields/BaseInputFields/TextAreaField/useTextAreaField.js","../../../node_modules/@syncfusion/ej2-dropdowns/src/combo-box/combo-box.js","../../../node_modules/@syncfusion/ej2-dropdowns/src/common/highlight-search.js","../../../node_modules/@syncfusion/ej2-dropdowns/src/auto-complete/auto-complete.js","../../../node_modules/@syncfusion/ej2-react-dropdowns/src/auto-complete/autocomplete.component.js","../../../node_modules/@ucl/library/lib/components/Fields/DropdownFields/AsyncAutoCompleteField/AsyncAutoCompleteODataV4Adaptor.js","../../../node_modules/@ucl/library/lib/utils/momentTimeZone.js","../../../node_modules/@ucl/library/lib/components/Grids/GridOData/GridODataV4Adaptor.js","../../../node_modules/@ucl/library/lib/components/Toast/Toast.js","../../../node_modules/@ucl/library/lib/components/Fields/DropdownFields/AsyncMultiSelectField/AsyncMultiSelectODataV4Adaptor.js","../../../node_modules/@ucl/library/lib/stores/useOData.js","../../../node_modules/@ucl/library/lib/components/Fields/DropdownFields/AsyncAutoCompleteField/useAsyncAutoCompleteField.js","../../../node_modules/@ucl/library/lib/components/Fields/DropdownFields/AsyncAutoCompleteField/AsyncAutoCompleteField.js","../../../node_modules/@ucl/library/lib/components/Fields/CoreFields/ReadOnlyField/ReadOnlyField.js","../../../node_modules/@syncfusion/ej2-inputs/src/numerictextbox/numerictextbox.js","../../../node_modules/@syncfusion/ej2-react-inputs/src/numerictextbox/numerictextbox.component.js","../../../node_modules/@ucl/library/lib/components/Fields/BaseInputFields/NumericField/NumericField.js","../../../node_modules/@syncfusion/ej2-inputs/src/common/signature-base.js","../../../node_modules/@syncfusion/ej2-inputs/src/signature/signature.js","../../../node_modules/@syncfusion/ej2-react-inputs/src/signature/signature.component.js","../../../node_modules/@ucl/library/lib/components/Buttons/ClearButton.js","../../../node_modules/@ucl/library/lib/components/Buttons/UndoButton.js","../../../node_modules/@ucl/library/lib/components/Fields/SpecialInputFields/SignatureField/SignatureField.js","../../../node_modules/@ucl/library/lib/components/Fields/SpecialInputFields/SignatureField/useSignatureField.js","../../../node_modules/@ucl/library/lib/components/Fields/SpecialInputFields/SignatureField/utils.js","../../../node_modules/@ucl/library/lib/components/Fields/BaseInputFields/EnumRadioField/useEnumRadioField.js","../../../node_modules/@ucl/library/lib/components/Fields/BaseInputFields/EnumRadioField/EnumRadioField.js","../../../node_modules/@syncfusion/ej2-inputs/src/maskedtextbox/base/mask-base.js","../../../node_modules/@syncfusion/ej2-inputs/src/maskedtextbox/maskedtextbox/maskedtextbox.js","../../../node_modules/@syncfusion/ej2-react-inputs/src/maskedtextbox/maskedtextbox.component.js","../../../node_modules/@ucl/library/lib/components/Fields/BaseInputFields/MaskedField/useMaskedField.js","../../../node_modules/@ucl/library/lib/components/Fields/BaseInputFields/MaskedField/MaskedField.js","../../../node_modules/@ucl/library/lib/components/Fields/SpecialInputFields/CurrencyField/CurrencyField.js","../../../node_modules/@ucl/library/lib/components/Fields/SpecialInputFields/SocialSecurityField/utils.js","../../../node_modules/@ucl/library/lib/components/Fields/SpecialInputFields/SocialSecurityField/SocialSecurityNumberField.js","../../../node_modules/@ucl/library/lib/components/Fields/SpecialInputFields/PhoneField/PhoneNumberField.js","../../../node_modules/@syncfusion/ej2-inputs/src/uploader/uploader.js","../../../node_modules/@syncfusion/ej2-react-inputs/src/uploader/uploader.component.js","../../../node_modules/@ucl/library/lib/components/Fields/BaseInputFields/FileField/types.js","../../../node_modules/@ucl/library/lib/components/Fields/BaseInputFields/FileField/useFileField.js","../../../node_modules/@ucl/library/lib/components/Fields/BaseInputFields/FileField/FileField.js","../../../node_modules/@ucl/library/lib/components/Fields/SpecialInputFields/EmailField/EmailField.js","../../../node_modules/@ucl/library/lib/components/Fields/BaseInputFields/SwitchField/useSwitchField.js","../../../node_modules/@ucl/library/lib/components/Fields/BaseInputFields/SwitchField/SwitchField.js","../../../node_modules/@ucl/library/lib/components/Fields/BaseInputFields/EnumCheckboxField/useEnumCheckboxField.js","../../../node_modules/@ucl/library/lib/components/Fields/BaseInputFields/EnumCheckboxField/EnumCheckboxField.js","../../../node_modules/@blueprintjs/select/src/components/multi-select/multiSelect2.tsx","../../../node_modules/@ucl/library/lib/components/Fields/DropdownFields/EnumMultiSelectField/useEnumMultiSelectField.js","../../../node_modules/@ucl/library/lib/components/Fields/DropdownFields/EnumMultiSelectField/EnumMultiSelectField.js","../../../node_modules/@syncfusion/ej2-dropdowns/src/multi-select/float-label.js","../../../node_modules/@syncfusion/ej2-dropdowns/src/multi-select/multi-select.js","../../../node_modules/@syncfusion/ej2-react-dropdowns/src/multi-select/multiselect.component.js","../../../node_modules/@ucl/library/lib/components/Fields/DropdownFields/EnumMultiSelectFieldV2/useEnumMultiSelectFieldV2.js","../../../node_modules/@ucl/library/lib/components/Fields/DropdownFields/EnumMultiSelectFieldV2/EnumMultiSelectFieldV2.js","../../../node_modules/@ucl/library/lib/components/Fields/BaseInputFields/RichTextEditorField/useRichTextEditorField.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/base/enum.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/base/constant.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/base/classes.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/renderer/render.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/common/constant.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/actions/keyboard.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/renderer/view-source.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/base/interface.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/services/service-locator.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/services/renderer-factory.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/actions/execute-command-callback.js","../../../node_modules/@syncfusion/ej2-filemanager/src/file-manager/models/ajax-settings.js","../../../node_modules/@syncfusion/ej2-filemanager/src/file-manager/models/contextMenu-settings.js","../../../node_modules/@syncfusion/ej2-filemanager/src/file-manager/models/details-view-settings.js","../../../node_modules/@syncfusion/ej2-filemanager/src/file-manager/models/navigation-pane-settings.js","../../../node_modules/@syncfusion/ej2-filemanager/src/file-manager/models/search-settings.js","../../../node_modules/@syncfusion/ej2-filemanager/src/file-manager/models/toolbar-settings.js","../../../node_modules/@syncfusion/ej2-filemanager/src/file-manager/models/upload-settings.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/models/items.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/models/toolbar-settings.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/models/iframe-settings.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/models/inline-mode.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/models/default-locale.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/actions/html-attributes.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/actions/full-screen.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/actions/enter-key.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/base/util.js","../../../node_modules/@syncfusion/ej2-popups/src/common/resize.js","../../../node_modules/@syncfusion/ej2-popups/src/dialog/dialog.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/renderer/dialog-renderer.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/base/rich-text-editor.js","../../../node_modules/@syncfusion/ej2-react-richtexteditor/src/rich-text-editor/richtexteditor.component.js","../../../node_modules/@syncfusion/ej2-navigations/src/common/h-scroll.js","../../../node_modules/@syncfusion/ej2-navigations/src/common/v-scroll.js","../../../node_modules/@syncfusion/ej2-navigations/src/toolbar/toolbar.js","../../../node_modules/@syncfusion/ej2-splitbuttons/src/common/common.js","../../../node_modules/@syncfusion/ej2-splitbuttons/src/drop-down-button/drop-down-button.js","../../../node_modules/@syncfusion/ej2-popups/src/tooltip/tooltip.js","../../../node_modules/@syncfusion/ej2-splitbuttons/src/split-button/split-button.js","../../../node_modules/@syncfusion/ej2-inputs/src/slider/slider.js","../../../node_modules/@syncfusion/ej2-inputs/src/color-picker/color-picker.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/renderer/toolbar-renderer.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/actions/base-toolbar.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/actions/dropdown-buttons.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/actions/toolbar-action.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/actions/toolbar.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/formatter/formatter.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/editor-manager/base/constant.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/selection/selection.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/common/config.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/common/util.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/editor-manager/plugin/dom-node.js","../../../node_modules/@ucl/library/lib/components/Fields/BaseInputFields/RichTextEditorField/RichTextEditorField.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/editor-manager/plugin/lists.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/editor-manager/plugin/insert-methods.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/editor-manager/plugin/nodecutter.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/editor-manager/plugin/formats.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/editor-manager/plugin/inserthtml.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/editor-manager/plugin/link.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/editor-manager/plugin/alignments.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/editor-manager/plugin/indents.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/editor-manager/base/classes.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/editor-manager/plugin/image.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/editor-manager/plugin/audio.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/editor-manager/plugin/video.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/editor-manager/plugin/table.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/editor-manager/plugin/isformatted.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/editor-manager/plugin/selection-commands.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/editor-manager/plugin/selection-exec.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/editor-manager/plugin/inserthtml-exec.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/editor-manager/plugin/clearformat.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/editor-manager/plugin/clearformat-exec.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/editor-manager/plugin/undo.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/editor-manager/plugin/ms-word-clean-up.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/editor-manager/plugin/insert-text.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/editor-manager/plugin/format-painter-actions.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/editor-manager/base/editor-manager.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/formatter/html-formatter.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/editor-manager/plugin/toolbar-status.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/actions/html-toolbar-status.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/renderer/content-renderer.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/renderer/iframe-content-renderer.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/actions/color-picker.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/actions/xhtml-validation.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/actions/html-editor.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/actions/base-quick-toolbar.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/renderer/popup-renderer.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/actions/quick-toolbar.js","../../../node_modules/@syncfusion/ej2-buttons/src/radio-button/radio-button.js","../../../node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/actions/paste-clean-up.js","../../../node_modules/@ucl/library/lib/components/Fields/DropdownFields/AsyncMultiSelectField/useAsyncMultiselectField.js","../../../node_modules/@ucl/library/lib/components/Fields/DropdownFields/AsyncMultiSelectField/AsyncMultiselectField.js","../../../node_modules/@ucl/library/lib/components/Cards/PrimaryCardHeader.js","../../../node_modules/@ucl/library/lib/components/Cards/PrimaryCard.js","../../../node_modules/@ucl/library/lib/components/Cards/SecondaryCardHeader.js","../../../node_modules/@ucl/library/lib/components/Cards/SecondaryCard.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/services/value-formatter.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/base/enum.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/base/constant.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/common/checkbox-filter-base.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/base/util.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/actions/data.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/models/row.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/models/cell.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/renderer/cell-merge-renderer.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/base/string-literals.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/renderer/row-renderer.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/services/row-model-generator.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/services/summary-model-generator.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/services/group-model-generator.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/renderer/content-renderer.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/renderer/header-renderer.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/renderer/cell-renderer.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/services/aria-service.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/renderer/header-cell-renderer.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/renderer/stacked-cell-renderer.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/renderer/indent-cell-renderer.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/renderer/caption-cell-renderer.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/renderer/expand-cell-renderer.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/renderer/header-indent-renderer.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/renderer/detail-header-indent-renderer.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/renderer/detail-expand-cell-renderer.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/renderer/row-drag-drop-renderer.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/renderer/row-drag-header-indent-render.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/renderer/render.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/services/cell-render-factory.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/renderer/responsive-dialog-renderer.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/services/service-locator.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/services/renderer-factory.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/services/width-controller.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/services/focus-strategy.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/models/page-settings.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/models/column-chooser-settings.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/actions/selection.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/actions/search.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/actions/show-hide.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/actions/scroll.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/models/aggregate.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/actions/clipboard.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/base/grid.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/actions/print.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/models/column.js","../../../node_modules/@ucl/library/lib/components/Grids/GridColumns/GridColumn.js","../../../node_modules/@ucl/library/lib/components/Grids/PrimaryGrid/modules/GridFilters/useGridFiltersModule.js","../../../node_modules/@ucl/library/lib/components/Grids/PrimaryGrid/modules/GridFilters/GridFilters.js","../../../node_modules/@ucl/library/lib/components/Grids/PrimaryGrid/modules/GridViews/apiClients/gridViewApiClient.js","../../../node_modules/@ucl/library/lib/components/Grids/PrimaryGrid/modules/GridViews/types/GridView.js","../../../node_modules/@ucl/library/lib/components/Grids/PrimaryGrid/modules/GridViews/useGridViewModule.js","../../../node_modules/@ucl/library/lib/components/Grids/PrimaryGrid/modules/GridViews/useGridView.js","../../../node_modules/@syncfusion/ej2-lists/src/list-view/list-view.js","../../../node_modules/@syncfusion/ej2-react-lists/src/list-view/listview.component.js","../../../node_modules/@syncfusion/ej2-lists/src/list-view/virtualization.js","../../../node_modules/@ucl/library/lib/components/Grids/PrimaryGrid/modules/GridViews/GridViewConfiguration.js","../../../node_modules/@ucl/library/lib/components/Grids/GridViewsSingleSelect/GridViewsSingleSelect.js","../../../node_modules/@ucl/library/lib/components/Grids/PrimaryGrid/modules/GridViews/GridViewPicker.js","../../../node_modules/@ucl/library/lib/components/Grids/PrimaryGrid/modules/GridMetrics/apiClients/gridMetricsApiClient.js","../../../node_modules/@ucl/library/lib/components/Grids/PrimaryGrid/modules/GridMetrics/GridMetrics.js","../../../node_modules/@ucl/library/lib/components/Grids/PrimaryGrid/PrimaryGridTable.js","../../../node_modules/@ucl/library/lib/components/Grids/PrimaryGrid/PrimaryGrid.js","../../../node_modules/@syncfusion/ej2-react-grids/src/grid/grid.component.js","../../../node_modules/@syncfusion/ej2-grids/src/pager/numeric-container.js","../../../node_modules/@syncfusion/ej2-calendars/src/timepicker/timepicker.js","../../../node_modules/@syncfusion/ej2-grids/src/pager/pager-message.js","../../../node_modules/@syncfusion/ej2-grids/src/pager/pager.js","../../../node_modules/@syncfusion/ej2-grids/src/pager/pager-dropdown.js","../../../node_modules/@syncfusion/ej2-grids/src/pager/external-message.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/actions/page.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/actions/sort.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/renderer/filter-cell-renderer.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/renderer/filter-menu-operator.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/renderer/string-filter-ui.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/renderer/number-filter-ui.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/renderer/boolean-filter-ui.js","../../../node_modules/@syncfusion/ej2-calendars/src/datetimepicker/datetimepicker.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/renderer/date-filter-ui.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/renderer/filter-menu-renderer.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/actions/checkbox-filter.js","../../../node_modules/@syncfusion/ej2-buttons/src/check-box/check-box.js","../../../node_modules/@syncfusion/ej2-navigations/src/common/menu-scroll.js","../../../node_modules/@syncfusion/ej2-navigations/src/common/menu-base.js","../../../node_modules/@syncfusion/ej2-navigations/src/context-menu/context-menu.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/common/excel-filter-base.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/actions/excel-filter.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/actions/filter.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/actions/group.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/actions/toolbar.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/actions/reorder.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/actions/resize.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/services/freeze-row-model-generator.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/actions/infinite-scroll.js","../../../node_modules/@syncfusion/ej2-excel-export/src/worksheets.js","../../../node_modules/@syncfusion/ej2-excel-export/src/worksheet.js","../../../node_modules/@syncfusion/ej2-excel-export/src/cell-style.js","../../../node_modules/@syncfusion/ej2-excel-export/src/column.js","../../../node_modules/@syncfusion/ej2-excel-export/src/row.js","../../../node_modules/@syncfusion/ej2-excel-export/src/image.js","../../../node_modules/@syncfusion/ej2-excel-export/src/cell.js","../../../node_modules/@syncfusion/ej2-compression/src/utils.js","../../../node_modules/@syncfusion/ej2-compression/src/decompressor-huffman-tree.js","../../../node_modules/@syncfusion/ej2-compression/src/checksum-calculator.js","../../../node_modules/@syncfusion/ej2-compression/src/compression-reader.js","../../../node_modules/@syncfusion/ej2-file-utils/src/encoding.js","../../../node_modules/@syncfusion/ej2-compression/src/compression-writer.js","../../../node_modules/@syncfusion/ej2-file-utils/src/save.js","../../../node_modules/@syncfusion/ej2-compression/src/zip-archive.js","../../../node_modules/@syncfusion/ej2-excel-export/src/value-formatter.js","../../../node_modules/@syncfusion/ej2-excel-export/src/csv-helper.js","../../../node_modules/@syncfusion/ej2-excel-export/src/blob-helper.js","../../../node_modules/@syncfusion/ej2-excel-export/src/auto-filters.js","../../../node_modules/@syncfusion/ej2-excel-export/src/workbook.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/actions/export-helper.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/actions/excel-export.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/input-output/pdf-writer.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/collections/utils.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/collections/dictionary.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/input-output/enum.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/input-output/pdf-main-object-collection.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/primitives/pdf-string.js","../../../node_modules/@syncfusion/ej2-file-utils/src/stream-writer.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/document/pdf-document-base.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/primitives/pdf-name.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/input-output/pdf-operators.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/input-output/pdf-dictionary-properties.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/primitives/pdf-dictionary.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/primitives/pdf-number.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/primitives/pdf-array.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/primitives/pdf-stream.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/input-output/cross-table.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/primitives/pdf-reference.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/document/pdf-catalog.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/pages/enum.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/input-output/pdf-cross-table.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/drawing/pdf-drawing.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/pages/pdf-page-size.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/graphics/pdf-margins.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/graphics/enum.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/graphics/fonts/enum.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/pages/pdf-page-settings.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/input-output/pdf-stream-writer.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/graphics/fonts/string-layouter.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/graphics/pdf-color.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/graphics/brushes/pdf-brush.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/graphics/brushes/pdf-solid-brush.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/graphics/pdf-pen.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/graphics/fonts/pdf-string-format.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/graphics/fonts/string-tokenizer.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/graphics/fonts/pdf-font.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/graphics/figures/enum.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/graphics/pdf-transformation-matrix.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/graphics/constants.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/collections/object-object-pair/dictionary.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/graphics/pdf-transparency.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/document/automatic-fields/automatic-field-info-collection.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/graphics/figures/base/graphics-element.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/document/automatic-fields/automatic-field.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/document/automatic-fields/automatic-field-info.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/graphics/images/byte-array.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/graphics/fonts/ttf-table-info.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/graphics/fonts/ttf-name-table.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/graphics/fonts/ttf-name-record.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/graphics/fonts/ttf-head-table.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/graphics/fonts/ttf-metrics.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/graphics/fonts/ttf-horizontal-header-table.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/graphics/fonts/ttf-OS2-Table.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/graphics/fonts/ttf-post-table.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/graphics/fonts/ttf-long-hor-metric.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/graphics/fonts/ttf-cmap-sub-table.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/graphics/fonts/ttf-cmap-table.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/graphics/fonts/ttf-glyph-info.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/graphics/fonts/ttf-loca-table.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/graphics/fonts/ttf-apple-cmap-sub-table.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/graphics/fonts/ttf-microsoft-cmap-sub-table.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/graphics/fonts/ttf-trimmed-cmap-sub-table.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/graphics/fonts/ttf-glyph-header.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/input-output/big-endian-writer.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/graphics/fonts/ttf-reader.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/graphics/fonts/pdf-font-metrics.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/graphics/fonts/unicode-true-type-font.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/graphics/fonts/rtl/rtl-text-shape.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/graphics/fonts/rtl/rtl-bidirectional.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/graphics/fonts/rtl-renderer.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/primitives/pdf-boolean.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/graphics/images/image-decoder.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/graphics/brushes/pdf-gradient-brush.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/graphics/figures/pdf-template.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/structured-elements/tables/light-tables/enum.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/graphics/unit-convertor.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/graphics/images/pdf-image.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/graphics/images/pdf-bitmap.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/graphics/pdf-resources.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/graphics/brushes/pdf-tiling-brush.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/graphics/pdf-graphics.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/pages/pdf-page-layer.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/general/pdf-collection.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/pages/pdf-page-layer-collection.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/pages/pdf-page-base.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/annotations/annotation-collection.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/pages/pdf-page.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/pages/page-added-event-arguments.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/pages/pdf-section-page-collection.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/document/pdf-document-template.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/pages/pdf-section-templates.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/pages/pdf-section.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/pages/pdf-section-collection.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/pages/pdf-document-page-collection.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/general/pdf-cache-collection.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/graphics/fonts/pdf-standard-font-metrics-factory.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/graphics/fonts/pdf-standard-font.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/document/pdf-document.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/structured-elements/grid/styles/pdf-borders.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/structured-elements/grid/styles/style.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/graphics/figures/base/element-layouter.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/graphics/figures/layout-element.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/graphics/figures/base/text-layouter.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/graphics/figures/text-element.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/annotations/annotation.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/annotations/link-annotation.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/annotations/action-link-annotation.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/actions/action.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/actions/uri-action.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/annotations/uri-annotation.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/annotations/pdf-text-web-link.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/structured-elements/grid/layout/grid-layouter.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/structured-elements/grid/pdf-grid-cell.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/structured-elements/grid/pdf-grid-column.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/structured-elements/grid/pdf-grid-row.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/structured-elements/grid/pdf-grid.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/pages/pdf-page-template-element.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/document/automatic-fields/pdf-numbers-convertor.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/document/automatic-fields/pdf-template-value-pair.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/document/automatic-fields/multiple-value-field.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/document/automatic-fields/pdf-page-number-field.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/document/automatic-fields/composite-field.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/document/automatic-fields/single-value-field.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/document/automatic-fields/page-count-field.js","../../../node_modules/@syncfusion/ej2-pdf-export/src/implementation/graphics/fonts/pdf-true-type-font.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/actions/pdf-export.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/actions/context-menu.js","../../../node_modules/@syncfusion/ej2-react-popups/src/tooltip/tooltip.component.js","../../../node_modules/@ucl/library/lib/components/Grids/PrimaryGrid/SecondaryGrid.js","../../../node_modules/@ucl/library/lib/utils/markup.js","../../../node_modules/@ucl/library/lib/components/Grids/PrimaryGrid/types.js","../../../node_modules/@ucl/library/lib/components/Grids/PrimaryGrid/useGrid.js","../../../node_modules/@ucl/library/lib/components/Navigation/AppSidebar/NavigationTreeview/stores/NavigationTreeViewStore.js","../../../node_modules/@ucl/library/lib/components/Navigation/AppSidebar/types.js","../../../node_modules/axios/lib/helpers/bind.js","../../../node_modules/axios/lib/utils.js","../../../node_modules/axios/lib/core/AxiosError.js","../../../node_modules/axios/lib/helpers/toFormData.js","../../../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../../../node_modules/axios/lib/helpers/buildURL.js","../../../node_modules/axios/lib/core/InterceptorManager.js","../../../node_modules/axios/lib/defaults/transitional.js","../../../node_modules/axios/lib/platform/browser/index.js","../../../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../../../node_modules/axios/lib/platform/browser/classes/FormData.js","../../../node_modules/axios/lib/platform/browser/classes/Blob.js","../../../node_modules/axios/lib/platform/common/utils.js","../../../node_modules/axios/lib/platform/index.js","../../../node_modules/axios/lib/helpers/formDataToJSON.js","../../../node_modules/axios/lib/defaults/index.js","../../../node_modules/axios/lib/helpers/toURLEncodedForm.js","../../../node_modules/axios/lib/helpers/parseHeaders.js","../../../node_modules/axios/lib/core/AxiosHeaders.js","../../../node_modules/axios/lib/core/transformData.js","../../../node_modules/axios/lib/cancel/isCancel.js","../../../node_modules/axios/lib/cancel/CanceledError.js","../../../node_modules/axios/lib/core/settle.js","../../../node_modules/axios/lib/helpers/speedometer.js","../../../node_modules/axios/lib/helpers/throttle.js","../../../node_modules/axios/lib/helpers/progressEventReducer.js","../../../node_modules/axios/lib/helpers/isURLSameOrigin.js","../../../node_modules/axios/lib/helpers/cookies.js","../../../node_modules/axios/lib/core/buildFullPath.js","../../../node_modules/axios/lib/helpers/isAbsoluteURL.js","../../../node_modules/axios/lib/helpers/combineURLs.js","../../../node_modules/axios/lib/core/mergeConfig.js","../../../node_modules/axios/lib/helpers/resolveConfig.js","../../../node_modules/axios/lib/adapters/xhr.js","../../../node_modules/axios/lib/helpers/parseProtocol.js","../../../node_modules/axios/lib/helpers/composeSignals.js","../../../node_modules/axios/lib/helpers/trackStream.js","../../../node_modules/axios/lib/adapters/fetch.js","../../../node_modules/axios/lib/adapters/adapters.js","../../../node_modules/axios/lib/helpers/null.js","../../../node_modules/axios/lib/core/dispatchRequest.js","../../../node_modules/axios/lib/env/data.js","../../../node_modules/axios/lib/helpers/validator.js","../../../node_modules/axios/lib/core/Axios.js","../../../node_modules/axios/lib/cancel/CancelToken.js","../../../node_modules/axios/lib/helpers/HttpStatusCode.js","../../../node_modules/axios/lib/axios.js","../../../node_modules/axios/lib/helpers/spread.js","../../../node_modules/axios/lib/helpers/isAxiosError.js","../../../node_modules/@ucl/library/lib/lib/apiClient.js","../../../node_modules/@ucl/library/lib/components/FieldSchema/useFieldSchema.js","../../../node_modules/@ucl/library/lib/components/FieldSchema/useFieldSchemaV2.js","../../../node_modules/@ucl/library/lib/components/FieldSchema/FieldConfig.js","../../../node_modules/@ucl/library/lib/utils/date.js","../../../node_modules/@ucl/library/lib/components/Sections/SectionHeader.js","../../../node_modules/@ucl/library/lib/components/FieldSchema/Field.js","../../../node_modules/@ucl/library/lib/components/FieldSchema/FieldForm.js","../../../node_modules/@ucl/library/lib/components/FieldSchema/FieldV2.js","../../../node_modules/@ucl/library/lib/components/FieldSchema/FieldFormV2.js","../../../node_modules/@ucl/library/lib/components/Dialogs/Footer/Footer.js","../../../node_modules/@syncfusion/ej2-react-popups/src/dialog/dialog.component.js","../../../node_modules/@ucl/library/lib/components/Dialogs/Dialog/stores/DialogStore.js","../../../node_modules/@ucl/library/lib/components/Dialogs/Dialog/Dialog.js","../../../node_modules/@ucl/library/lib/components/Dialogs/Dialog/Dialogs.js","../../../node_modules/@remix-run/router/history.ts","../../../node_modules/@remix-run/router/utils.ts","../../../node_modules/@remix-run/router/router.ts","../../../node_modules/react-router/lib/context.ts","../../../node_modules/react-router/lib/hooks.tsx","../../../node_modules/react-router/lib/components.tsx","../../../node_modules/react-router/index.ts","../../../node_modules/@ucl/library/lib/components/FlyOut/useFlyout.js","../../../node_modules/@ucl/library/lib/components/FlyOut/OpenDirectFlyoutContainer.js","../../../node_modules/@ucl/library/lib/components/FlyOut/OpenInPlaceFlyoutContainer.js","../../../node_modules/@ucl/library/lib/components/FlyOut/flyoutRoutes.js","../../../node_modules/@ucl/library/lib/components/FlyOut/useOpenInPlaceFlyout.js","../../../node_modules/@ucl/library/lib/components/FlyOut/WithFlyoutNavigation.js","../../../node_modules/@ucl/library/lib/components/Routing/WithParams.js","../../../node_modules/@ucl/library/lib/components/FeatureToggles/useFeatureToggle.js","../../../node_modules/@ucl/library/lib/components/Permissions/usePermissions.js","../../../node_modules/@ucl/library/lib/components/Communications/EmailCommunication/EmailCommunication.js","../../../node_modules/react-router-dom/dom.ts","../../../node_modules/react-router-dom/index.tsx","../../../node_modules/@microsoft/signalr/src/DefaultReconnectPolicy.ts","../../../node_modules/@microsoft/signalr/src/Errors.ts","../../../node_modules/@microsoft/signalr/src/HttpClient.ts","../../../node_modules/@microsoft/signalr/src/ILogger.ts","../../../node_modules/@microsoft/signalr/src/Loggers.ts","../../../node_modules/@microsoft/signalr/src/Utils.ts","../../../node_modules/@microsoft/signalr/src/FetchHttpClient.ts","../../../node_modules/@microsoft/signalr/src/XhrHttpClient.ts","../../../node_modules/@microsoft/signalr/src/DefaultHttpClient.ts","../../../node_modules/@microsoft/signalr/src/HeaderNames.ts","../../../node_modules/@microsoft/signalr/src/ITransport.ts","../../../node_modules/@microsoft/signalr/src/AbortController.ts","../../../node_modules/@microsoft/signalr/src/LongPollingTransport.ts","../../../node_modules/@microsoft/signalr/src/ServerSentEventsTransport.ts","../../../node_modules/@microsoft/signalr/src/WebSocketTransport.ts","../../../node_modules/@microsoft/signalr/src/HttpConnection.ts","../../../node_modules/@microsoft/signalr/src/TextMessageFormat.ts","../../../node_modules/@microsoft/signalr/src/HandshakeProtocol.ts","../../../node_modules/@microsoft/signalr/src/IHubProtocol.ts","../../../node_modules/@microsoft/signalr/src/Subject.ts","../../../node_modules/@microsoft/signalr/src/HubConnection.ts","../../../node_modules/@microsoft/signalr/src/JsonHubProtocol.ts","../../../node_modules/@microsoft/signalr/src/HubConnectionBuilder.ts","../../../node_modules/@syncfusion/ej2-grids/src/grid/actions/detail-row.js","../../../node_modules/@syncfusion/ej2-react-grids/src/grid/columns-directive.js","../../../node_modules/@syncfusion/ej2-grids/src/grid/actions/row-reorder.js","../../../node_modules/style-inject/dist/style-inject.es.js","../../../node_modules/@syncfusion/ej2-inputs/src/form-validator/form-validator.js","../../../node_modules/@syncfusion/ej2-notifications/src/message/message.js","../../../node_modules/@syncfusion/ej2-react-notifications/src/message/message.component.js","../../../node_modules/uuid/dist/esm-browser/native.js","../../../node_modules/uuid/dist/esm-browser/rng.js","../../../node_modules/uuid/dist/esm-browser/stringify.js","../../../node_modules/uuid/dist/esm-browser/v4.js","../../../node_modules/@syncfusion/ej2-dropdowns/src/multi-select/checkbox-selection.js","../../../node_modules/@syncfusion/ej2-navigations/src/accordion/accordion.js","../../../node_modules/@syncfusion/ej2-react-navigations/src/accordion/accordion.component.js","../../../node_modules/@syncfusion/ej2-navigations/src/tab/tab.js","../../../node_modules/@syncfusion/ej2-react-navigations/src/tab/tab.component.js","../../../node_modules/@syncfusion/ej2-react-navigations/src/tab/items-directive.js","../../../node_modules/@syncfusion/ej2-navigations/src/treeview/treeview.js","../../../node_modules/@syncfusion/ej2-react-navigations/src/treeview/treeview.component.js","../../../node_modules/@fortawesome/free-regular-svg-icons/index.mjs","../../../node_modules/@syncfusion/ej2-image-editor/src/image-editor/image-editor.js","../../../node_modules/@syncfusion/ej2-react-image-editor/src/image-editor/imageeditor.component.js","../../../node_modules/@microsoft/applicationinsights-shims/src/Constants.ts","../../../node_modules/@microsoft/applicationinsights-shims/src/Helpers.ts","../../../node_modules/@microsoft/applicationinsights-shims/src/TsLibShims.ts","../../../node_modules/@microsoft/dynamicproto-js/lib/out/lib/src/DynamicProto.js","../../../node_modules/@microsoft/applicationinsights-core-js/dist-esm/__DynamicConstants.js","../../../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/InternalConstants.js","../../../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/HelperFuncs.js","../../../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/EnvUtils.js","../../../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/DbgExtensionUtils.js","../../../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/DiagnosticLogger.js","../../../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/CookieMgr.js","../../../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/PerfManager.js","../../../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/RandomHelper.js","../../../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/DataCacheHelper.js","../../../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/EventHelpers.js","../../../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/CoreUtils.js","../../../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/W3cTraceParent.js","../../../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/TelemetryHelpers.js","../../../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/ProcessTelemetryContext.js","../../../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/UnloadHandlerContainer.js","../../../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/BaseTelemetryPlugin.js","../../../node_modules/@microsoft/applicationinsights-react-js/dist-esm/ReactPlugin.js","../../../node_modules/@microsoft/applicationinsights-react-js/dist-esm/withAITracking.js","../../../node_modules/@syncfusion/ej2-svg-base/src/svg-render/svg-renderer.js","../../../node_modules/@syncfusion/ej2-svg-base/src/svg-render/canvas-renderer.js","../../../node_modules/@syncfusion/ej2-svg-base/src/tooltip/helper.js","../../../node_modules/@syncfusion/ej2-svg-base/src/tooltip/tooltip.js","../../../node_modules/@syncfusion/ej2-svg-base/src/tooltip/interface.js","../../../node_modules/@syncfusion/ej2-progressbar/src/progressbar/utils/helper.js","../../../node_modules/@syncfusion/ej2-progressbar/src/progressbar/utils/theme.js","../../../node_modules/@syncfusion/ej2-progressbar/src/progressbar/model/progress-base.js","../../../node_modules/@syncfusion/ej2-progressbar/src/progressbar/model/constant.js","../../../node_modules/@syncfusion/ej2-progressbar/src/progressbar/model/progress-tooltip.js","../../../node_modules/@syncfusion/ej2-progressbar/src/progressbar/utils/progress-animation.js","../../../node_modules/@syncfusion/ej2-progressbar/src/progressbar/types/segment-progress.js","../../../node_modules/@syncfusion/ej2-progressbar/src/progressbar/types/linear-progress.js","../../../node_modules/@syncfusion/ej2-progressbar/src/progressbar/types/circular-progress.js","../../../node_modules/@syncfusion/ej2-progressbar/src/progressbar/progressbar.js","../../../node_modules/@syncfusion/ej2-react-progressbar/src/progressbar/progressbar.component.js","../../../node_modules/@syncfusion/ej2-calendars/src/daterangepicker/daterangepicker.js","../../../node_modules/@syncfusion/ej2-react-calendars/src/daterangepicker/daterangepicker.component.js","../../../node_modules/@syncfusion/ej2-react-splitbuttons/src/split-button/splitbutton.component.js","../../../node_modules/@syncfusion/ej2-react-buttons/src/radio-button/radiobutton.component.js","../../../node_modules/@syncfusion/ej2-react-buttons/src/check-box/checkbox.component.js","../../../node_modules/@syncfusion/ej2-schedule/src/schedule/base/constant.js","../../../node_modules/@syncfusion/ej2-schedule/src/schedule/base/util.js","../../../node_modules/@syncfusion/ej2-schedule/src/schedule/base/css-constant.js","../../../node_modules/@syncfusion/ej2-schedule/src/schedule/renderer/header-renderer.js","../../../node_modules/@syncfusion/ej2-schedule/src/schedule/actions/scroll.js","../../../node_modules/@syncfusion/ej2-schedule/src/schedule/actions/touch.js","../../../node_modules/@syncfusion/ej2-schedule/src/schedule/actions/keyboard.js","../../../node_modules/@syncfusion/ej2-schedule/src/schedule/actions/data.js","../../../node_modules/@syncfusion/ej2-schedule/src/common/calendar-util.js","../../../node_modules/@syncfusion/ej2-schedule/src/schedule/timezone/timezone.js","../../../node_modules/@syncfusion/ej2-schedule/src/recurrence-editor/date-generator.js","../../../node_modules/@syncfusion/ej2-schedule/src/schedule/event-renderer/event-base.js","../../../node_modules/@syncfusion/ej2-schedule/src/schedule/event-renderer/vertical-view.js","../../../node_modules/@syncfusion/ej2-schedule/src/schedule/event-renderer/month.js","../../../node_modules/@syncfusion/ej2-schedule/src/schedule/event-renderer/timeline-view.js","../../../node_modules/@syncfusion/ej2-schedule/src/schedule/event-renderer/inline-edit.js","../../../node_modules/@syncfusion/ej2-schedule/src/schedule/popups/form-validator.js","../../../node_modules/@syncfusion/ej2-schedule/src/schedule/popups/quick-popups.js","../../../node_modules/@syncfusion/ej2-schedule/src/schedule/popups/event-tooltip.js","../../../node_modules/@syncfusion/ej2-schedule/src/recurrence-editor/recurrence-editor.js","../../../node_modules/@syncfusion/ej2-schedule/src/schedule/popups/event-window.js","../../../node_modules/@syncfusion/ej2-schedule/src/schedule/actions/virtual-scroll.js","../../../node_modules/@syncfusion/ej2-schedule/src/schedule/renderer/renderer.js","../../../node_modules/@syncfusion/ej2-schedule/src/schedule/models/work-hours.js","../../../node_modules/@syncfusion/ej2-schedule/src/schedule/models/time-scale.js","../../../node_modules/@syncfusion/ej2-schedule/src/schedule/models/quick-info-templates.js","../../../node_modules/@syncfusion/ej2-schedule/src/schedule/models/header-rows.js","../../../node_modules/@syncfusion/ej2-schedule/src/schedule/actions/crud.js","../../../node_modules/@syncfusion/ej2-schedule/src/schedule/actions/work-cells.js","../../../node_modules/@syncfusion/ej2-schedule/src/schedule/models/field-options.js","../../../node_modules/@syncfusion/ej2-schedule/src/schedule/models/fields.js","../../../node_modules/@syncfusion/ej2-schedule/src/schedule/models/event-settings.js","../../../node_modules/@syncfusion/ej2-schedule/src/schedule/models/group.js","../../../node_modules/@syncfusion/ej2-schedule/src/schedule/models/resources.js","../../../node_modules/@syncfusion/ej2-schedule/src/schedule/base/resource.js","../../../node_modules/@syncfusion/ej2-schedule/src/schedule/base/schedule.js","../../../node_modules/@syncfusion/ej2-react-schedule/src/schedule/schedule.component.js","../../../node_modules/@syncfusion/ej2-schedule/src/schedule/renderer/view-base.js","../../../node_modules/@syncfusion/ej2-schedule/src/schedule/renderer/vertical-view.js","../../../node_modules/@syncfusion/ej2-schedule/src/schedule/renderer/day.js","../../../node_modules/@syncfusion/ej2-schedule/src/schedule/renderer/week.js","../../../node_modules/@syncfusion/ej2-schedule/src/schedule/renderer/month.js","../../../node_modules/@syncfusion/ej2-schedule/src/schedule/renderer/timeline-header-row.js","../../../node_modules/@syncfusion/ej2-schedule/src/schedule/renderer/timeline-view.js","../../../node_modules/@syncfusion/ej2-schedule/src/schedule/actions/action-base.js","../../../node_modules/@syncfusion/ej2-schedule/src/schedule/event-renderer/year.js","../../../node_modules/@syncfusion/ej2-schedule/src/schedule/actions/drag.js","../../../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/base/text-layer.js","../../../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/accessibility-tags/accessibility-tags.js","../../../node_modules/@syncfusion/ej2-drawings/src/drawing/utility/path-util.js","../../../node_modules/@syncfusion/ej2-inputs/src/textbox/textbox.js","../../../node_modules/@syncfusion/ej2-drawings/src/drawing/primitives/matrix.js","../../../node_modules/@syncfusion/ej2-drawings/src/drawing/primitives/point.js","../../../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/base/types.js","../../../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/drawing/drawing-util.js","../../../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/base/signature.js","../../../node_modules/@syncfusion/ej2-notifications/src/toast/toast.js","../../../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/base/context-menu.js","../../../node_modules/@syncfusion/ej2-drawings/src/drawing/primitives/size.js","../../../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/drawing/pdf-annotation.js","../../../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/base/navigation-pane.js","../../../node_modules/@syncfusion/ej2-drawings/src/drawing/enum/enum.js","../../../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/base/ajax-handler.js","../../../node_modules/@syncfusion/ej2-drawings/src/drawing/primitives/rect.js","../../../node_modules/@syncfusion/ej2-drawings/src/drawing/utility/diagram-util.js","../../../node_modules/@syncfusion/ej2-drawings/src/drawing/utility/dom-util.js","../../../node_modules/@syncfusion/ej2-drawings/src/drawing/utility/base-util.js","../../../node_modules/@syncfusion/ej2-drawings/src/drawing/core/elements/drawing-element.js","../../../node_modules/@syncfusion/ej2-drawings/src/drawing/core/elements/text-element.js","../../../node_modules/@syncfusion/ej2-drawings/src/drawing/core/containers/container.js","../../../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/drawing/selector.js","../../../node_modules/@syncfusion/ej2-drawings/src/drawing/core/elements/path-element.js","../../../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/drawing/connector-util.js","../../../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/drawing/action.js","../../../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/drawing/tools.js","../../../node_modules/@syncfusion/ej2-drawings/src/drawing/rendering/canvas-renderer.js","../../../node_modules/@syncfusion/ej2-drawings/src/drawing/rendering/svg-renderer.js","../../../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/drawing/dom-util.js","../../../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/base/blazor-context-menu.js","../../../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/base/spinner.js","../../../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/base/blazor-ui-adaptor.js","../../../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/base/pdfviewer-base.js","../../../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/form-fields/form-fields.js","../../../node_modules/@syncfusion/ej2-drawings/src/drawing/core/elements/image-element.js","../../../node_modules/@syncfusion/ej2-drawings/src/drawing/rendering/renderer.js","../../../node_modules/@syncfusion/ej2-drawings/src/drawing/core/containers/canvas.js","../../../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/drawing/html-element.js","../../../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/drawing/drawing.js","../../../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/pdfviewer.js","../../../node_modules/@syncfusion/ej2-react-pdfviewer/src/pdfviewer/pdfviewer.component.js","../../../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/navigation/page-navigation.js","../../../node_modules/@syncfusion/ej2-navigations/src/menu/menu.js","../../../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/toolbar/annotation-toolbar.js","../../../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/toolbar/formdesigner-toolbar.js","../../../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/toolbar/toolbar.js","../../../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/magnification/magnification.js","../../../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/annotation/text-markup-annotation.js","../../../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/annotation/shape-annotation.js","../../../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/annotation/measure-annotation.js","../../../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/annotation/stamp-annotation.js","../../../node_modules/@syncfusion/ej2-inplace-editor/src/inplace-editor/base/events.js","../../../node_modules/@syncfusion/ej2-inplace-editor/src/inplace-editor/base/classes.js","../../../node_modules/@syncfusion/ej2-inplace-editor/src/inplace-editor/base/models.js","../../../node_modules/@syncfusion/ej2-inplace-editor/src/inplace-editor/base/util.js","../../../node_modules/@syncfusion/ej2-inplace-editor/src/inplace-editor/base/inplace-editor.js","../../../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/annotation/sticky-notes-annotation.js","../../../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/annotation/ink-annotation.js","../../../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/annotation/free-text-annotation.js","../../../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/annotation/input-element.js","../../../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/annotation/annotation.js","../../../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/thumbnail-view/thumbnail-view.js","../../core/src/utils/clone.ts","../../core/src/utils/date.ts","../../core/src/stores/ErrorStore.tsx","../../core/src/lib/msal/msal.ts","../../core/src/lib/apiClients/baseApiClient.ts","../../core/src/lib/apiClients/user/userApiClient.ts","../../core/src/stores/UserStore.ts","../../core/src/utils/miscellaneous.ts","../../core/src/utils/getStatementOptions.ts","../../core/src/utils/getStatementOptionsV2.ts","../../core/src/utils/momentTimeZone.ts","../../core/src/types/Billing.ts","../../core/src/types/Checklist.ts","../../core/src/types/ChecklistDocumentType.ts","../../core/src/types/Comment.ts","../../core/src/types/Document.ts","../../core/src/types/FileDocument.ts","../../core/src/types/Institution.ts","../../core/src/types/Notary.ts","../../core/src/types/Scheduling.ts","../../core/src/types/Template.ts","../../core/src/types/User.ts","../../core/src/types/Application/ApplicationSummary.ts","../../core/src/components/Toast/Toast.tsx","../../core/src/lib/apiClients/application/applicationApiClient.ts","../../core/src/stores/ApplicationViewerStore.ts","../../core/src/lib/hub/applicationConnectivityHub.ts","../../core/src/lib/apiClients/fiaRequest/fiaRequestApiClient.ts","../../core/src/lib/featureToggles/featureToggleApiClient.ts","../../core/src/lib/featureToggles/FeatureToggleStore.ts","../../core/src/stores/ApplicationStore.ts","../../core/src/stores/OwnedEntityStores/OwnedEntityViewerStore.ts","../../core/src/lib/apiClients/address/addressApiClient.ts","../../core/src/lib/apiClients/appSettings/appSettingsApiClient.ts","../../core/src/lib/apiClients/billing/billingApiClient.ts","../../core/src/lib/apiClients/chatBot/chatBotApiClient.ts","../../core/src/lib/apiClients/checklist/checklistApiClient.ts","../../core/src/lib/apiClients/comments/commentsApiClient.ts","../../core/src/lib/apiClients/corporate/corporateApiClient.ts","../../core/src/lib/apiClients/document/documentApiClient.ts","../../core/src/lib/apiClients/facility/facilityApiClient.ts","../../core/src/components/HelpCenter/types.ts","../../core/src/lib/apiClients/helpCenterTopic/helpCenterTopicApiClient.ts","../../core/src/lib/apiClients/institution/institutionApiClient.ts","../../core/src/lib/apiClients/invoice/invoiceApiClient.ts","../../core/src/lib/apiClients/matchup/matchupApiClient.ts","../../core/src/lib/apiClients/notary/notaryApiClient.ts","../../core/src/lib/apiClients/report/reportApiClient.ts","../../core/src/lib/apiClients/anonymousBaseApiClient.ts","../../core/src/lib/apiClients/scheduling/schedulingApiClient.ts","../../core/src/lib/apiClients/template/templateApiClient.ts","../../core/src/lib/exceptions/types.ts","../../core/src/lib/fieldSchemaV2/useFieldSchemaV2Factory.tsx","../../core/src/lib/hooks/useUserFacilitySchedulingEnabled.tsx","../../core/src/stores/FIARequestViewerStore.ts","../../core/src/lib/hub/fiaRequestConnectivityHub.ts","../../core/src/stores/OwnedEntityStores/AssetOwnedEntityStore.ts","../../core/src/stores/OwnedEntityStores/BillOwnedEntityStore.ts","../../core/src/stores/OwnedEntityStores/IncomeOwnedEntityStore.ts","../../core/src/stores/OwnedEntityStores/MedicalCoverageOwnedEntityStore.ts","../../core/src/stores/AppConfigurationStore.ts","../../core/src/stores/CommentStore.tsx","../../core/src/stores/ChecklistItemStore.tsx","../../core/src/stores/InstitutionStore.ts","../../core/src/components/Grid/Grid/GridODataV4Adaptor.ts","../../core/src/stores/ODataStore.ts","../../core/src/stores/PermissionStore.ts","../../core/src/stores/SchemaStore.ts","../../core/src/components/Grid/Grid/types/GridColumn.ts","../../core/src/stores/SimpleGridStore.ts","../../core/src/types/Application/Asset.ts","../../core/src/types/Application/Bill.ts","../../core/src/types/Application/Income.ts","../../core/src/types/Application/index.ts","../../core/src/types/Application/SecondaryInformation.ts","../../core/src/types/Application/Signature.ts","../../core/src/types/Application/SpouseContact.ts","../../core/src/constants/usStateOptions.tsx","../../core/src/config/configuration.ts","../../core/src/components/ActtionExecuting/useActionExecuting.ts","../../core/src/components/Buttons/FormSubmitButton.tsx","../../core/src/components/Buttons/DeleteButton.tsx","../../core/src/components/Card/RelativityCardHeader.tsx","../../core/src/components/Card/RelativityCard.tsx","../../core/src/components/Loading/Spinners/SavingSpinner.tsx","../../core/src/components/Fields/SectionHeader/SectionHeader.tsx","../../core/src/components/Tooltip/Tooltip.tsx","../../core/src/components/Fields/SelectableLabel/SelectableLabel.tsx","../../core/src/components/Tooltip/useOverflowTooltip.tsx","../../core/src/components/Fields/SelectField/SelectField.tsx","../../core/src/components/Fields/TextField/utils.ts","../../core/src/components/Fields/TextField/TextField.tsx","../../core/src/components/Fields/AddressField/utils.ts","../../core/src/components/Fields/AddressField/AddressField.tsx","../../core/src/components/Fields/CheckboxField/CheckboxBooleanField.tsx","../../core/src/components/Fields/CheckboxField/CheckboxField.tsx","../../core/src/components/Fields/CustomField/CustomField.tsx","../../core/src/components/Fields/MaskedField/MaskedField.tsx","../../core/src/components/Fields/EmailField/EmailField.tsx","../../core/src/components/Fields/NameField/NameField.tsx","../../core/src/components/Fields/NumberField/NumberField.tsx","../../core/src/components/Fields/PhoneField/PhoneField.tsx","../../core/src/components/Fields/RadioField/RadioField.tsx","../../core/src/components/Fields/SelectField/MultiSelectField.tsx","../../core/src/components/Fields/TextAreaField/TextAreaField.tsx","../../core/src/components/Buttons/ClearButton.tsx","../../core/src/components/Buttons/UndoButton.tsx","../../core/src/components/Dialogs/stores/DialogsViewerStore.ts","../../core/src/components/Document/DocumentConsolidatedStatementIndicator.tsx","../../core/src/components/Document/useDocument.tsx","../../core/src/components/Fields/SignatureField/signaturePadStore.ts","../../core/src/components/Fields/SignatureField/SignatureField.tsx","../../core/src/components/Fields/SocialSecurityNumberField/utils.ts","../../core/src/components/Fields/SocialSecurityNumberField/SocialSecurityNumberField.tsx","../../core/src/components/Fields/FilenameField/FilenameField.tsx","../../core/src/components/Fields/FilenameField/useFilenameFormat.ts","../../core/src/components/Fields/SwitchField/SwitchField.tsx","../../core/src/components/Fields/NumericField/NumericField.tsx","../../core/src/components/Fields/CurrencyField/CurrencyField.tsx","../../core/src/components/Fields/DateField/DateField.tsx","../../core/src/components/Fields/FileField/FileField.tsx","../../core/src/components/Fields/RadioField/YesNoField.tsx","../../core/src/components/Fields/SelectField/AsyncMultiSelectODataV4Adaptor.ts","../../core/src/components/Fields/SelectField/AsyncMultiselectField.tsx","../../core/src/components/Fields/NameField/FullNameField.tsx","../../core/src/components/Fields/DateRangeField/DateRangeField.tsx","../../core/src/components/Fields/AsyncAutocompleteField/AsyncAutocompleteODataV4Adaptor.ts","../../core/src/components/Fields/AsyncAutocompleteField/AsyncAutocompleteField.tsx","../../core/src/components/Fields/TagsField/TagsField.tsx","../../core/src/components/Fields/ReadOnlyField/ReadOnlyField.tsx","../../core/src/components/Fields/AutocompleteField/AutocompleteField.tsx","../../core/src/components/Fields/SelectField/AsyncMultiSelectCheckboxField.tsx","../../core/src/components/Fields/PercentageField/PercentageField.tsx","../../core/src/components/Fields/index.tsx","../../core/src/components/Dialogs/DialogFooter.tsx","../../core/src/components/Dialogs/SaveChangeDialog.tsx","../../core/src/components/Forms/BaseForm/BaseForm.tsx","../../core/src/components/Forms/index.tsx","../../core/src/components/Forms/types.ts","../../core/src/components/Forms/ApplicationForm/ApplicationContact.tsx","../../core/src/components/Application/Cards/ApplicationContactCard.tsx","../../core/src/components/Avatar/UserIcon.tsx","../../core/src/components/Loading/Loading.tsx","../../core/src/components/Document/useDocumentPagesViewerItem.tsx","../../core/src/components/ListBox/ListBox.tsx","../../core/src/components/Document/types.ts","../../core/src/components/Document/DocumentPagesViewerItem.tsx","../../core/src/components/Document/useDocumentPagesViewer.tsx","../../core/src/components/Document/DocumentPreview.tsx","../../core/src/components/Document/DocumentPagePreview.tsx","../../core/src/components/Document/DocumentPageEditor.tsx","../../core/src/components/Document/useDocumentEditor.tsx","../../core/src/components/Document/DocumentEditor.tsx","../../core/src/components/Document/DocumentPagesViewer.tsx","../../core/src/components/Document/PdfDocumentUploader.tsx","../../core/src/lib/hub/documentConnectivityHub.ts","../../core/src/components/Checklist/Verify/useDocumentProcessPageCount.ts","../../core/src/components/Document/DocumentDataExtractionStatusIndicator.tsx","../../core/src/components/Document/useDocumentDataExtractionStatusIndicator.tsx","../../core/src/components/Document/PdfDocuments.tsx","../../core/src/components/Application/Cards/ApplicationPage/ApplicationPageHeaderCard.tsx","../../core/src/components/Forms/ApplicationForm/DateInformation.tsx","../../core/src/components/Application/Cards/ApplicationPage/DateInformationPageCard.tsx","../../core/src/components/Forms/ApplicationForm/FacilityReadFieldBuilder.tsx","../../core/src/components/Forms/ApplicationForm/PrimaryInformation.tsx","../../core/src/components/Forms/ApplicationPage/FileInformationFormSchema.tsx","../../core/src/components/Application/Cards/ApplicationPage/FileInformationPageCard.tsx","../../core/src/components/Buttons/SaveButton.tsx","../../core/src/components/Forms/ApplicationForm/Assets/index.ts","../../core/src/components/Forms/ApplicationForm/Assets/RealProperty.tsx","../../core/src/components/Forms/ApplicationForm/Assets/Vehicle.tsx","../../core/src/components/Forms/ApplicationForm/Assets/LiquidAsset.tsx","../../core/src/components/Forms/ApplicationForm/Assets/Other.tsx","../../core/src/components/Forms/ApplicationForm/Assets/LifeInsurance.tsx","../../core/src/components/Forms/ApplicationForm/Assets/BurialPreneed.tsx","../../core/src/components/Forms/ApplicationForm/Assets/FiveYearLookback.tsx","../../core/src/components/Buttons/AddButton.tsx","../../core/src/components/Card/RelativitySubCardHeader.tsx","../../core/src/components/Card/RelativitySubCard.tsx","../../core/src/components/FIARequests/OwnedEntityFIARequestsSubCard.tsx","../../core/src/components/Checklist/Verify/OwnedEntityAccountBalances/useOwnedEntityAccountBalanceGrid.tsx","../../core/src/components/Checklist/Verify/OwnedEntityAccountBalances/OwnedEntityAccountBalances.tsx","../../core/src/components/Application/Cards/ApplicationPage/PrimaryTabs/Owned Entities/AssetPageCard.tsx","../../core/src/components/Application/Cards/ApplicationPage/PrimaryTabs/Owned Entities/AssetsPageCard.tsx","../../core/src/components/Forms/BaseField/BaseField.tsx","../../core/src/components/Forms/ApplicationForm/Assets/OverrideAssetEligibilityForm.tsx","../../core/src/components/Application/Cards/ApplicationPage/PrimaryTabs/AssetInformationPageCard.tsx","../../core/src/components/Forms/ApplicationForm/BillInformation.tsx","../../core/src/components/Forms/ApplicationForm/Bill.tsx","../../core/src/components/Application/Cards/ApplicationPage/PrimaryTabs/Owned Entities/BillCard.tsx","../../core/src/components/Application/Cards/ApplicationPage/PrimaryTabs/BillInformationPageCard.tsx","../../core/src/components/Forms/ApplicationForm/IncomeInformation.tsx","../../core/src/components/Forms/ApplicationForm/Income.tsx","../../core/src/components/Application/Cards/ApplicationPage/PrimaryTabs/Owned Entities/IncomePageCard.tsx","../../core/src/components/Application/Cards/ApplicationPage/PrimaryTabs/Owned Entities/IncomesPageCard.tsx","../../core/src/components/Application/Cards/ApplicationPage/PrimaryTabs/IncomeInformationPageCard.tsx","../../core/src/components/Application/Cards/Asset/AssetFormCard.tsx","../../core/src/components/Application/Cards/QITAssetCard.tsx","../../core/src/components/Forms/ApplicationForm/Assets/QualifiedIncomeTrust.tsx","../../core/src/components/Forms/AppointmentForm/types/YesNoOptionTypes.ts","../../core/src/components/Forms/ApplicationForm/LegalInformation.tsx","../../core/src/components/Application/Cards/ApplicationPage/PrimaryTabs/LegalInformationPageCard.tsx","../../core/src/components/Forms/ApplicationForm/MedicalCoverage.tsx","../../core/src/components/Application/Cards/ApplicationPage/PrimaryTabs/Owned Entities/MedicalCoveragePageCard.tsx","../../core/src/components/Application/Cards/ApplicationPage/PrimaryTabs/MedicalCoveragesPageCard.tsx","../../core/src/components/Forms/ApplicationForm/MedicalInformation.tsx","../../core/src/components/Application/Cards/ApplicationPage/PrimaryTabs/MedicalInformationPageCard.tsx","../../core/src/components/Application/Cards/ApplicationPage/PrimaryTabs/Owned Entities/ApplicationPageContactCard.tsx","../../core/src/components/Forms/ApplicationForm/Signature.tsx","../../core/src/components/Forms/ApplicationForm/Signatures.tsx","../../core/src/components/Signatures/useSignature.ts","../../core/src/components/Signatures/SignaturesValidationPanel.tsx","../../core/src/components/Application/Cards/ApplicationPage/PrimaryTabs/SignaturesPageCard.tsx","../../core/src/components/Forms/ApplicationForm/SpouseInformation.tsx","../../core/src/components/Application/Cards/ApplicationPage/PrimaryTabs/SpouseInformationPageCard.tsx","../../core/src/components/Forms/ApplicationPage/StateInformationFormSchema.tsx","../../core/src/components/Application/Cards/ApplicationPage/StateInformationPageCard.tsx","../../core/src/components/Application/Cards/Asset/AssetsFormCard.tsx","../../core/src/components/Application/Cards/Asset/AssetInformationCard.tsx","../../core/src/components/Application/ChangeAuditGrid/CorporateFacilities/ApplicationChangeAuditGridStore.ts","../../core/src/components/Application/ChangeAuditGrid/CorporateFacilities/applicationChangeAuditGridColumnsConfiguration.ts","../../core/src/AppInsights.ts","../../core/src/components/Application/ChangeAuditGrid/CorporateFacilities/ApplicationChangeAuditGrid.tsx","../../core/src/components/Application/Cards/AuditLogCard.tsx","../../core/src/components/Application/Cards/BillCard.tsx","../../core/src/components/Application/Cards/BillInformationCard.tsx","../../core/src/components/Grid/Grid/stores/GridStore.ts","../../core/src/components/Grid/Grid/Grid.tsx","../../core/src/components/Grid/Grid/types/GridActionsColumn.tsx","../../core/src/components/TemplatePicker/stores/ChecklistDocumentPickerStore.ts","../../core/src/components/TemplatePicker/ChecklistDocumentPicker.tsx","../../core/src/components/Application/UseOwnedEntityComponent.tsx","../../core/src/components/Checklist/ChecklistGrid.tsx","../../core/src/components/Checklist/ChecklistDocumentGridStore.tsx","../../core/src/components/Checklist/configurations/girdColumnConfigurations.ts","../../core/src/components/Checklist/ChecklistDocumentGrid.tsx","../../core/src/components/ViewSelector/components/ViewSelectionMenu.tsx","../../core/src/components/ViewSelector/components/ViewSelectionDropdown.tsx","../../core/src/components/Application/Cards/ChecklistCard.tsx","../../core/src/components/Buttons/EditButton.tsx","../../core/src/components/Dialogs/CommentsDialog/CommentCard.tsx","../../core/src/components/Forms/CommentForm/CommentFilteringForm.tsx","../../core/src/components/Application/Cards/CommentsCard/CommentsFilters.tsx","../../core/src/components/Application/Cards/CommentsCard/CommentsCard.tsx","../../core/src/components/Application/Cards/DateInformationCard.tsx","../../core/src/components/Application/Cards/Income/IncomeFormCard.tsx","../../core/src/components/Application/Cards/Income/IncomesFormCard.tsx","../../core/src/components/Application/Cards/Income/IncomeInformationCard.tsx","../../core/src/components/FIARequests/stores/FIARequestStore.ts","../../core/src/components/Forms/FIARequestForm/FIARequestForm.tsx","../../core/src/components/FIARequests/FIARequestDetails.tsx","../../core/src/components/FIARequests/UseFIARequestFlyout.tsx","../../core/src/components/FIARequests/FIARequestCreate.tsx","../../core/src/components/FIARequests/configurations/types.ts","../../core/src/components/OrderedDocumentsGrid/configurations/gridColumnsConfiguration.ts","../../core/src/components/OrderedDocumentsGrid/stores/OrderedDocumentsGridStore.ts","../../core/src/components/OrderedDocumentsGrid/OrderedDocumentsGrid.tsx","../../core/src/components/FIARequests/FIARequestDocuments.tsx","../../core/src/components/FIARequests/FIARequestInfo.tsx","../../core/src/components/FIARequests/FiaRequestDVTChecklistDocuments.tsx","../../core/src/components/FIARequests/UploadDVTDocumentsCard.tsx","../../core/src/components/FIARequests/FIARequestUpdate.tsx","../../core/src/components/FIARequests/FIARequestFlyout.tsx","../../core/src/components/Grid/Grid/types/GridStyleColumn.tsx","../../core/src/components/FIARequests/configurations/gridColumnsConfiguration.ts","../../core/src/components/Grid/Grid/types/GridStyleFIARequestDueInColumn.tsx","../../core/src/components/FIARequests/FIARequestsGrid.tsx","../../core/src/components/FIARequests/ApplicationFIARequestsView.tsx","../../core/src/components/Forms/ApplicationForm/Incomes/index.ts","../../core/src/components/Forms/ApplicationForm/Incomes/SocialSecurity.tsx","../../core/src/components/Forms/ApplicationForm/Incomes/SSI.tsx","../../core/src/components/Forms/ApplicationForm/Incomes/VABenefits.tsx","../../core/src/components/Forms/ApplicationForm/Incomes/AdditionalIncome.tsx","../../core/src/components/Application/Cards/ApplicationPage/PrimaryTabs/IncomeInformationPageCardV2.tsx","../../core/src/components/Application/Cards/Income/IncomeInformationCardV2.tsx","../../core/src/components/Application/Cards/LegalInformationCard.tsx","../../core/src/components/Application/Cards/MedicalInformationCard.tsx","../../core/src/components/Application/Cards/PrimaryInformationCard.tsx","../../core/src/components/Forms/ApplicationForm/SecondaryInformation.tsx","../../core/src/components/Application/Cards/SecondaryInformationCard.tsx","../../core/src/components/Application/Cards/SignaturesCard.tsx","../../core/src/components/Application/Cards/SpouseInformationCard.tsx","../../core/src/components/Application/Cards/MedicalCoverage/MedicalCoverageFormCard.tsx","../../core/src/components/Application/Cards/MedicalCoverage/MedicalCoveragesFormCard.tsx","../../core/src/components/Application/Cards/index.tsx","../../core/src/components/Application/Cards/ResidentPanel/ResidentApplicationHistoryInformationCard.tsx","../../core/src/components/Forms/ApplicationPage/ResidentPrimaryInformationForm.tsx","../../core/src/components/Application/Cards/ResidentPanel/ResidentPrimaryInformationCard.tsx","../../core/src/components/Forms/ApplicationPage/ResidentSecondaryInformationForm.tsx","../../core/src/components/Application/Cards/ResidentPanel/ResidentSecondaryInformationCard.tsx","../../core/src/components/Application/EligibilitySummaryUtilities.tsx","../../core/src/components/Application/EligibilitySummaryProgressLabel.tsx","../../core/src/components/Application/Icons/AMDAssetEligibilityDisclaimerIcon.tsx","../../core/src/components/Application/EligibilitySummary.tsx","../../core/src/components/Application/Cards/SummaryDialog/EligibilitySummaryCard.tsx","../../core/src/components/Application/Cards/SummaryDialog/ExternalUserSummaryChecklistGrid.tsx","../../core/src/components/Forms/ApplicationSummary/FileInformationFormSchema.tsx","../../core/src/components/Application/Cards/SummaryDialog/FileInfoCard.tsx","../../core/src/components/Application/FinancialSummary.tsx","../../core/src/components/Application/Cards/SummaryDialog/FinancialSummary.tsx","../../core/src/components/Application/Cards/SummaryDialog/KeyDatesCard.tsx","../../core/src/components/Application/Cards/SummaryDialog/OutstandingDocumentsCard.tsx","../../core/src/components/Application/Cards/SummaryDialog/OutstandingFIARequestsCard.tsx","../../core/src/components/Application/Cards/SummaryDialog/TopPinnedCommentsCard.tsx","../../core/src/components/Application/Cards/SummaryDialog/UploadDocumentsCard.tsx","../../core/src/components/Application/Grid/ApplicationCannedViewPicker.tsx","../../core/src/components/Grid/Filters/stores/GridFiltersModuleStore.ts","../../core/src/components/Grid/Filters/Filters.tsx","../../core/src/components/Grid/Views/configuration/ViewConfiguration.tsx","../../core/src/components/Grid/Views/GridViewPicker.tsx","../../core/src/components/Grid/Grid/types/GridClickableIconColumn.tsx","../../core/src/components/Grid/Grid/types/GridColoredColumn.tsx","../../core/src/components/Grid/Grid/types/GridClickableDataColumn.tsx","../../core/src/components/Grid/Grid/types/GridLinkColumn.tsx","../../core/src/components/Grid/Grid/types/GridTooltipColumn.tsx","../../core/src/components/Application/Grid/configurations/gridColumnsConfiguration.ts","../../core/src/components/Grid/Metrics/apiClients/gridMetricsApiClient.ts","../../core/src/components/Grid/Metrics/GridMetrics.tsx","../../core/src/components/Application/Grid/ApplicationGridCannedViews/ActiveApplicationGrid.tsx","../../core/src/components/Application/Grid/ApplicationGridCannedViews/ClosedApplicationGrid.tsx","../../core/src/components/Application/Grid/ApplicationGridCannedViews/LastThirtyDaysApplicationGrid.tsx","../../core/src/components/Application/Grid/ApplicationGridCannedViews/AllApplicationGrid.tsx","../../core/src/components/Application/Grid/ApplicationGrid.tsx","../../core/src/components/Application/OwnedEntityComponent.tsx","../../core/src/components/Fields/PhoneField/utils.ts","../../core/src/components/Application/Page/ResidentPanel/index.tsx","../../core/src/components/Forms/ChecklistForm/ChecklistSplitItemCreationFormSchema.tsx","../../core/src/components/Forms/AddOwnedEntityComponent/AddOwnedEntityFormSchema.tsx","../../core/src/components/Application/AddOwnedEntityComponent.tsx","../../core/src/components/Application/ApplicationFormProgress.tsx","../../core/src/components/Avatar/Avatar.tsx","../../core/src/components/Billing/BillingGrid/BillingCannedViewPicker.tsx","../../core/src/components/Billing/store/BillingRuleGridStore.tsx","../../core/src/components/Billing/configurations/gridColumnsConfiguration.ts","../../core/src/components/Billing/configurations/GridBillingRuleTooltipColumn.tsx","../../core/src/components/Billing/BillingGrid/BillingGridCannedViews/InvoicedBillingGrid.tsx","../../core/src/components/Billing/BillingGrid/BillingGridCannedViews/NotInvoicedBillingGrid.tsx","../../core/src/components/Billing/BillingGrid/BillingGrid.tsx","../../core/src/components/Billing/BillingRuleGrid.tsx","../../core/src/components/Billing/store/DiscountGridStore.tsx","../../core/src/components/Billing/DiscountGrid.tsx","../../core/src/components/ChatBot/types.ts","../../core/src/components/ChatBot/ChatBotComponent.tsx","../../core/src/components/ChatBot/useChatbot.tsx","../../core/src/components/ChatBot/PageSidebarChatBot.tsx","../../core/src/components/Forms/ChecklistForm/ChecklistSplitForm.tsx","../../core/src/components/Checklist/ChecklistSplit.tsx","../../core/src/components/Checklist/useChecklistSplit.tsx","../../core/src/components/Forms/AppointmentForm/types/MeetingTypes.ts","../../core/src/components/Forms/AppointmentForm/util.ts","../../core/src/components/Forms/DailyDebriefForm/DailyDebriefAppointmentForm/DailyDebriefAppointmentFormSchema.ts","../../core/src/components/Forms/AppointmentForm/types/AppointmentContactMethodOptions.ts","../../core/src/components/Forms/AppointmentForm/AppointmentContactForm/AppointmentContactFormSchema.ts","../../core/src/components/Forms/AppointmentForm/types/AppointmentConfirmationStatus.ts","../../core/src/components/Forms/AppointmentForm/AppointmentContactForm/AppointmentContactForm.tsx","../../core/src/components/Document/SimplePdfDocuments.tsx","../../core/src/components/Forms/AppointmentForm/types/InsuranceTypeOptions.ts","../../core/src/components/Forms/AppointmentForm/AppointmentFormSchema.ts","../../core/src/components/Dialogs/ConvertDuplicateApplicationDialog.tsx","../../core/src/components/ErrorWrapper/ErrorWrapper.tsx","../../core/src/components/Forms/AppointmentForm/types/MaritalStatus.ts","../../core/src/components/Forms/AppointmentForm/types/AppointmentContactRelationshipTypes.ts","../../core/src/components/Forms/AppointmentForm/types/AppointmentStatuses.ts","../../core/src/components/Forms/AppointmentForm/AppointmentForm.tsx","../../core/src/components/Dialogs/AppointmentDialog.tsx","../../core/src/components/Forms/DailyDebriefForm/util.ts","../../core/src/components/Forms/DailyDebriefForm/DailyDebriefAppointmentForm/useDailyDebriefAppointmentForm.tsx","../../core/src/components/Forms/DailyDebriefForm/DailyDebriefAppointmentForm/DailyDebriefAppointmentForm.tsx","../../core/src/components/Forms/DailyDebriefForm/DailyDebriefEmailForm/DailyDebriefEmailForm.tsx","../../core/src/components/Forms/DailyDebriefForm/DailyDebriefEmailForm/useDailyDebriefEmailForm.tsx","../../core/src/components/Dialogs/DailyDebriefDialog/DailyDebriefEmailDialog/DailyDebriefEmailDialog.tsx","../../core/src/components/Forms/DailyDebriefForm/DailyDebriefDateCard/useDailyDebriefDateCard.tsx","../../core/src/components/Forms/DailyDebriefForm/DailyDebriefDateCard/DailyDebriefDateCard.tsx","../../core/src/components/Forms/DailyDebriefForm/useDailyDebriefForm.tsx","../../core/src/components/Forms/DailyDebriefForm/DailyDebriefForm.tsx","../../core/src/components/Dialogs/DailyDebriefDialog/DailyDebriefDialog.tsx","../../core/src/components/Scheduler/utils/scheduleUtils.ts","../../core/src/components/Checklist/Verify/useDocumentStatementsReceived.tsx","../../core/src/components/Checklist/Verify/AccountBalance/useKeyDateCard.tsx","../../core/src/components/Checklist/Verify/AccountBalance/KeyDateCard.tsx","../../core/src/components/Checklist/Verify/AccountBalance/useAccountBalanceCard.tsx","../../core/src/components/Checklist/Verify/AccountBalance/AccountBalanceCard.tsx","../../core/src/components/Checklist/Verify/MonthProgressComponent/MonthProgressComponent.tsx","../../core/src/components/Checklist/Verify/StatementDateRange/useStatementDateRangeCard.tsx","../../core/src/components/Checklist/Verify/StatementDateRange/StatementDateRangeCard.tsx","../../core/src/components/Checklist/Verify/DocumentStatementsReceived.tsx","../../core/src/components/FIARequests/VerifyFIARequestSubCard.tsx","../../core/src/components/FIARequests/useFIARequestActions.ts","../../core/src/components/Checklist/Verify/useFIARequestVerify.tsx","../../core/src/components/Checklist/Verify/FIARequestVerifyComponent.tsx","../../core/src/components/Checklist/Verify/IdentificationFormComponent.tsx","../../core/src/components/Checklist/Verify/VerifyEntityHiddenFields.tsx","../../core/src/components/Checklist/Verify/VerifyEntityRequiredFields.tsx","../../core/src/components/Checklist/Verify/useVerifyComponent.tsx","../../core/src/components/DocumentAccountViewer/useDocumentAccountViewer.ts","../../core/src/components/DocumentAccountViewer/DocumentAccountViewer.tsx","../../core/src/components/Buttons/NewAccountButton.tsx","../../core/src/components/Footer/Footer.tsx","../../core/src/components/Checklist/Verify/VerifyStandardStatementComponent.tsx","../../core/src/components/Checklist/Verify/ConsolidatedAccountListCard.tsx","../../core/src/components/Checklist/Verify/VerifyConsolidatedStatementComponent.tsx","../../core/src/components/Checklist/Verify/VerifyDialogComponent.tsx","../../core/src/components/Checklist/Verify/QIT/QITVerifyComponent.tsx","../../core/src/components/Checklist/Verify/VerifyForm.tsx","../../core/src/components/CorporateGrid/configurations/gridColumnsConfiguration.ts","../../core/src/components/CorporateGrid/CorporateDocuments.tsx","../../core/src/components/CorporateGrid/CorporateGrid.tsx","../../core/src/components/Forms/ApplicationPage/ApplicationChildForm.tsx","../../core/src/components/Dialogs/ApplicationChildCreationDialog.tsx","../../core/src/components/Dialogs/useApplicationChildCreationDialog.tsx","../../core/src/components/Forms/ApplicationPage/ApplicationPageFacilityUpdate.tsx","../../core/src/components/Dialogs/ApplicationPageUpdateFacilityDialog.tsx","../../core/src/components/Dialogs/ApplicationSummaryDialog.tsx","../../core/src/components/Forms/ApplicationForm/ApplyToState.tsx","../../core/src/components/Dialogs/ApplyToStateDialog.tsx","../../core/src/components/Forms/BillingForm/BillingEventForm.tsx","../../core/src/components/Dialogs/BillingCreateDialog.tsx","../../core/src/components/Forms/BillingForm/BillingRuleForm.tsx","../../core/src/components/Dialogs/BillingRuleCreateDialog.tsx","../../core/src/components/Dialogs/BillingRuleUpdateDialog.tsx","../../core/src/components/Forms/BillingForm/UpdateBillingEventForm.tsx","../../core/src/components/Dialogs/BillingUpdateDialog.tsx","../../core/src/components/Dialogs/CancelAllFIARequestsDialog.tsx","../../core/src/components/Forms/ChecklistForm/ChecklistForm.tsx","../../core/src/components/Dialogs/ChecklistItemCreationDialog.tsx","../../core/src/components/Forms/ChecklistForm/ChecklistShortDescriptionForm.tsx","../../core/src/components/Dialogs/ChecklistItemUpdateDialog.tsx","../../core/src/components/Dialogs/AddOwnedEntityChecklistItemDialog.tsx","../../core/src/components/Dialogs/ChecklistSplitDialog.tsx","../../core/src/components/Forms/CommentForm/CommentForm.tsx","../../core/src/components/Dialogs/CommentCreationDialog.tsx","../../core/src/components/Forms/CommentForm/ShortCommentForm.tsx","../../core/src/components/Dialogs/CommentsDialog/CommentsDialog.tsx","../../core/src/components/Dialogs/CommentUpdateDialog.tsx","../../core/src/components/Dialogs/ConfirmDialog.tsx","../../core/src/lib/apiClients/pointClickCare/pointClickCareApiClient.ts","../../core/src/components/PointClickCare/CorporatePointClickCareStatusComponent.tsx","../../core/src/components/Forms/CorporateForm/CorporateForm.tsx","../../core/src/components/Dialogs/CorporateCreationDialog.tsx","../../core/src/components/Dialogs/CorporateUpdateDialog.tsx","../../core/src/components/TemplatePicker/CoverLetterPicker.tsx","../../core/src/components/Dialogs/CoverLetterPickerDialog.tsx","../../core/src/components/Forms/BillingForm/DiscountForm.tsx","../../core/src/components/Dialogs/DiscountCreationDialog.tsx","../../core/src/components/Dialogs/DiscountUpdateDeleteDialog.tsx","../../core/src/components/Dialogs/DocumentEditorDialog.tsx","../../core/src/components/Dialogs/DocumentRenameDialog.tsx","../../core/src/components/Dialogs/DocumentViewerDialog.tsx","../../core/src/components/Forms/MonitorForm/EndMonitorForm.tsx","../../core/src/components/Dialogs/EndMonitorDialog.tsx","../../core/src/components/Forms/FacilityBlockConfigurationForm/BlockScheduleForm/types/RecurringFrequencyTypeOptions.ts","../../core/src/components/Forms/FacilityBlockConfigurationForm/BlockScheduleForm/BlockScheduleFormSchema.ts","../../core/src/components/Forms/FacilityBlockConfigurationForm/BlockScheduleForm/BlockScheduleForm.tsx","../../core/src/components/Forms/FacilityBlockConfigurationForm/FacilityBlockConfigurationForm.tsx","../../core/src/components/Dialogs/FacilityBlockScheduleDialog.tsx","../../core/src/components/Forms/FacilityForm/FacilityForm.tsx","../../core/src/components/Dialogs/FacilityCreationDialog.tsx","../../core/src/components/Dialogs/FacilityUpdateDialog.tsx","../../core/src/components/Dialogs/FIARequestCancelDialog.tsx","../../core/src/components/Dialogs/FIARequestResendDialog.tsx","../../core/src/components/Forms/ApplicationForm/FinancialEligibilityConversation.tsx","../../core/src/components/Dialogs/FinancialEligibilityConversationDialog.tsx","../../core/src/components/Dialogs/GridDialogs/CorporateApplications/CorporateApplicationsGridStore.ts","../../core/src/components/Dialogs/GridDialogs/CorporateApplications/corporateApplicationsGridColumnConfiguration.ts","../../core/src/components/Dialogs/GridDialogs/CorporateApplications/utils.ts","../../core/src/components/Dialogs/GridDialogs/CorporateApplications/CorporateApplicationsGrid.tsx","../../core/src/components/Dialogs/GridDialogs/CorporateApplications/CorporateApplicationsGridDialog.tsx","../../core/src/components/Dialogs/GridDialogs/CorporateFacilities/CorporateFacilitiesGridStore.ts","../../core/src/components/Dialogs/GridDialogs/CorporateFacilities/corporateFacilitiesGridColumnsConfiguration.ts","../../core/src/components/Dialogs/GridDialogs/CorporateFacilities/CorporateFacilitiesGrid.tsx","../../core/src/components/Dialogs/GridDialogs/CorporateFacilities/CorporateFacilitiesGridDialog.tsx","../../core/src/components/Dialogs/GridDialogs/CorporateUsers/corporateUsersGridColumnsConfiguration.ts","../../core/src/components/Dialogs/GridDialogs/CorporateUsers/CorporateUsersGridStore.ts","../../core/src/components/Dialogs/GridDialogs/CorporateUsers/CorporateUsersGrid.tsx","../../core/src/components/Dialogs/GridDialogs/CorporateUsers/CorporateUsersGridDialog.tsx","../../core/src/components/Dialogs/GridDialogs/FacilityApplications/FacilityApplicationsGridStore.ts","../../core/src/components/Dialogs/GridDialogs/FacilityApplications/facilityApplicationsGridColumnConfiguration.ts","../../core/src/components/Dialogs/GridDialogs/FacilityApplications/FacilityApplicationsGrid.tsx","../../core/src/components/Dialogs/GridDialogs/FacilityApplications/FacilityApplicationsGridDialog.tsx","../../core/src/components/Dialogs/GridDialogs/FacilityUsers/FacilityUsersGridStore.ts","../../core/src/components/Dialogs/GridDialogs/FacilityUsers/facilityUsersGridColumnsConfiguration.ts","../../core/src/components/Dialogs/GridDialogs/FacilityUsers/FacilityUsersGrid.tsx","../../core/src/components/Dialogs/GridDialogs/FacilityUsers/FacilityUsersGridDialog.tsx","../../core/src/components/Dialogs/GridDialogs/UserApplications/UserApplicationsGridStore.ts","../../core/src/components/Dialogs/GridDialogs/UserApplications/userApplicationsGridColumnConfiguration.ts","../../core/src/components/Dialogs/GridDialogs/UserApplications/UserApplicationsGrid.tsx","../../core/src/components/Dialogs/GridDialogs/UserApplications/UserApplicationsGridDialog.tsx","../../core/src/components/Forms/HelpCenterTopicForm/helpCenterTopicContentBuilder.tsx","../../core/src/components/Forms/HelpCenterTopicForm/HelpCenterTopicForm.tsx","../../core/src/components/HelpCenter/useHelpCenterTopic.tsx","../../core/src/components/HelpCenter/HelpCenterTopicCreate.tsx","../../core/src/components/HelpCenter/HelpCenterTopicUpdate.tsx","../../core/src/components/HelpCenter/HelpCenterTopicDetails.tsx","../../core/src/components/Dialogs/HelpCenterTopicDialog.tsx","../../core/src/components/Dialogs/ImageViewerDialog.tsx","../../core/src/components/Forms/InstitutionForm/InstitutionForm.tsx","../../core/src/components/Dialogs/InstitutionCreationDialog.tsx","../../core/src/components/Forms/InstitutionForm/InstitutionContactForm.tsx","../../core/src/components/Forms/InstitutionForm/InstitutionContactsCard.tsx","../../core/src/components/Dialogs/InstitutionUpdateDialog.tsx","../../core/src/components/Grid/Grid/types/GridMenuColumn.tsx","../../core/src/components/Invoice/configurations/gridColumnsConfiguration.tsx","../../core/src/components/Invoice/InvoiceDocumentHistoryGrid.tsx","../../core/src/components/Dialogs/InvoiceDocumentHistoryDialog.tsx","../../core/src/components/Dialogs/InvoiceGenerationAttestation.tsx","../../core/src/components/Forms/MonitorForm/MonitorForm.tsx","../../core/src/components/Dialogs/MonitorCreationDialog.tsx","../../core/src/components/Dialogs/MonitorUpdateDialog.tsx","../../core/src/components/Forms/NotaryForm/NotaryForm.tsx","../../core/src/components/Dialogs/NotaryCreationDialog.tsx","../../core/src/components/Dialogs/NotaryUpdateDialog.tsx","../../core/src/components/TemplatePicker/stores/TemplatePickerStore.ts","../../core/src/components/TemplatePicker/TemplatePicker.tsx","../../core/src/components/OrderedDocumentsGrid/OrderedDocumentsPicker.tsx","../../core/src/components/Dialogs/OrderedDocumentsPickerDialog.tsx","../../core/src/components/Forms/TemplateForm/TemplateForm.tsx","../../core/src/components/Dialogs/TemplateCreationDialog.tsx","../../core/src/components/Dialogs/TemplateUpdateDialog.tsx","../../core/src/components/Forms/UserForm/FacilityPOCFieldsBuilder.tsx","../../core/src/components/Dialogs/User/utils.ts","../../core/src/components/Forms/UserForm/UserForm.tsx","../../core/src/components/Dialogs/UserDetails.tsx","../../core/src/components/Dialogs/UserCreationDialog.tsx","../../core/src/components/Dialogs/UserUpdateDialog.tsx","../../core/src/components/Forms/UserSignatureForm/UserSignatureForm.tsx","../../core/src/components/Dialogs/UpdateSignatureDialog.tsx","../../core/src/components/Forms/ApplicationForm/WithdrawApplication.tsx","../../core/src/components/Dialogs/WithdrawApplicationDialog.tsx","../../core/src/components/Dialogs/SetInvoiceNumberDialog.tsx","../../core/src/components/Forms/ReportForm/ReportForm.tsx","../../core/src/components/Reports/useReport.tsx","../../core/src/components/Reports/ReportCreate.tsx","../../core/src/components/Reports/ReportUpdate.tsx","../../core/src/components/Reports/ReportDetails.tsx","../../core/src/components/Dialogs/ReportDialog.tsx","../../core/src/components/Forms/MatchupForm/LeadEditForm.tsx","../../core/src/components/Matchup/MatchupDocumentsCard.tsx","../../core/src/components/Dialogs/LeadEditDialog.tsx","../../core/src/components/Dialogs/MatchupDocumentUploadDialog.tsx","../../core/src/components/Dialogs/VerifyDialog.tsx","../../core/src/components/DocumentFiling/types.ts","../../core/src/components/DocumentFiling/useFiaDocumentFiling.ts","../../core/src/components/DocumentFiling/useDocumentFilingQueue.tsx","../../core/src/lib/apiClients/documentFilingAI/documentFilingAIClient.ts","../../core/src/components/DocumentFiling/DocumentFilingComponentReviewItem.tsx","../../core/src/components/Forms/DateRangeFieldV2/DateRangeFieldV2.tsx","../../core/src/components/DocumentFiling/DocumentFilingNewAccountComponent.tsx","../../core/src/components/DocumentFiling/FIAFilingFormCard.tsx","../../core/src/components/DocumentFiling/useFiaFilingFormCard.tsx","../../core/src/components/DocumentFiling/useDocumentFiling.tsx","../../core/src/components/DocumentFiling/useStateNoticeDocumentFiling.ts","../../core/src/components/DocumentFiling/StateNoticeFilingFormCard.tsx","../../core/src/components/DocumentFiling/configurations/documentFilingQueueGridColumnsConfiguration.ts","../../core/src/lib/hub/filingAIConnectivityHub.ts","../../core/src/components/DocumentFiling/DocumentFilingQueueComponent.tsx","../../core/src/components/DocumentFiling/useDocumentFilingQueueComponent.tsx","../../core/src/components/DocumentFiling/useDocumentViewer.ts","../../core/src/components/DocumentFiling/DocumentViewer.tsx","../../core/src/components/DocumentFiling/DocumentFilingComponent.tsx","../../core/src/components/DocumentFiling/DocumentFilingDialog.tsx","../../core/src/components/Checklist/Verify/UnableToVerifyForm/UnableToVerifyForm.tsx","../../core/src/components/Checklist/Verify/UnableToVerifyForm/useUnableToVerifyForm.tsx","../../core/src/components/Dialogs/UnableToVerifyDialog/UnableToVerifyDialog.tsx","../../core/src/components/Dialogs/SkipFilingAIDocumentQueueDialog.tsx","../../core/src/components/Dialogs/ConfirmAnalyzeDialog.tsx","../../core/src/components/Dialogs/index.tsx","../../core/src/components/Document/PdfDocumentStore.ts","../../core/src/components/FacilityGrid/configurations/gridColumnsConfiguration.ts","../../core/src/components/FacilityGrid/FacilityGrid.tsx","../../core/src/components/ErrorWrapper/AnonymousErrorWrapper.tsx","../../core/src/components/FIARequests/FIARequestTab.tsx","../../core/src/components/Forms/AppointmentForm/types/AppointmentChangeReasons.ts","../../core/src/components/Forms/AppointmentForm/types/CareTypeOptions.ts","../../core/src/components/Forms/AppointmentForm/types/MonthOptions.ts","../../core/src/components/Forms/FacilityBlockConfigurationForm/BlockScheduleForm/types/OrdinalDayOptions.ts","../../core/src/components/Forms/FacilityBlockConfigurationForm/BlockScheduleForm/types/WorkDayOptions.ts","../../core/src/components/Forms/UserForm/PermissionFieldBuilder.tsx","../../core/src/components/Grid/Grid/configurations/gridColumnsConfiguration.tsx","../../core/src/components/Grid/types/dtos/GridMetrics.ts","../../core/src/components/Grid/Grid/types/GridDropdownColumn.tsx","../../core/src/components/Grid/Grid/types/GridView.ts","../../core/src/components/Grid/Views/apiClients/gridViewApiClient.ts","../../core/src/components/Grid/Views/stores/GridViewStore.ts","../../core/src/components/Header/stores/ApplicationSearchToolbarStore.ts","../../core/src/components/Header/ApplicationSearchToolbar.tsx","../../core/src/components/Header/Header.tsx","../../core/src/components/InstitutionGrid/configurations/gridColumnsConfiguration.ts","../../core/src/components/InstitutionGrid/InstitutionGrid.tsx","../../core/src/components/Invoice/InvoiceGrid.tsx","../../core/src/components/Matchup/MatchupGrid/configurations/gridColumnsConfiguration.ts","../../core/src/components/Grid/Grid/types/GridMaskedSSNColumn.tsx","../../core/src/components/Matchup/MatchupGrid/MatchupGridCannedViewPicker.tsx","../../core/src/components/Matchup/MatchupGridV2/CannedViews/ActiveMatchupGridV2.tsx","../../core/src/components/Matchup/MatchupGrid/MatchupGrid.tsx","../../core/src/components/Matchup/MatchupGridV2/CannedViews/AllMatchupGridV2.tsx","../../core/src/components/Matchup/MatchupGridV2/CannedViews/ClosedMatchupGridV2.tsx","../../core/src/components/Matchup/MatchupGridV2/MatchupGridV2CannedViewPicker.tsx","../../core/src/components/Matchup/MatchupImportFlyout.tsx","../../core/src/components/Matchup/MatchupGridV2/MatchupGridV2.tsx","../../core/src/components/Matchup/MatchupFlyout.tsx","../../core/src/components/Matchup/useMatchupFlyout.tsx","../../core/src/components/NotaryGrid/configurations/gridColumnsConfiguration.ts","../../core/src/components/NotaryGrid/NotaryGrid.tsx","../../core/src/components/PageSidebar/PageSidebarItem.tsx","../../core/src/components/DocumentFiling/PageSidebarDocumentFiling.tsx","../../core/src/components/PageSidebar/PageSidebar.tsx","../../core/src/components/Reports/ReportViewer.tsx","../../core/src/components/Scheduler/useScheduleResource.ts","../../core/src/components/Scheduler/ScheduleResourceCheckboxList.tsx","../../core/src/components/Scheduler/AppointmentsCalendarSchedulerResources.tsx","../../core/src/components/Scheduler/AppointmentsCalendarSchedulerTeams.tsx","../../core/src/components/Scheduler/SchedulerODataV4Adaptor.ts","../../core/src/components/Scheduler/types/SchedulerViews.ts","../../core/src/components/Scheduler/useSchedule.ts","../../core/src/components/Scheduler/SchedulerComponent.tsx","../../core/src/components/Scheduler/useFieldRepTeamsCalendars.tsx","../../core/src/components/Scheduler/useTeamScheduleResource.tsx","../../core/src/components/Scheduler/useAppointmentsCalendar.tsx","../../core/src/components/Scheduler/AppointmentsCalendar.tsx","../../core/src/components/Grid/Grid/types/SimpleGridColumn.tsx","../../core/src/components/Scheduler/AppointmentGrids/AppointmentContactGridViews.tsx","../../core/src/components/Scheduler/AppointmentGrids/gridColumnsConfiguration.tsx","../../core/src/utils/grid.ts","../../core/src/components/Scheduler/AppointmentGrids/CompletedAppointmentsGrid.tsx","../../core/src/components/Scheduler/AppointmentGrids/ScheduledAppointmentsGrid.tsx","../../core/src/components/Scheduler/AppointmentGrids.tsx","../../core/src/components/Scheduler/FacilitySchedulerResources.tsx","../../core/src/components/Scheduler/useFacilityScheduleView.tsx","../../core/src/components/Scheduler/FacilityScheduleSchedulerTeams.tsx","../../core/src/components/Scheduler/FacilityScheduleView.tsx","../../core/src/components/TemplateDesigner/stores/ExpressionsStore.ts","../../core/src/components/TemplateDesigner/config/templateFieldsConfig.ts","../../core/src/components/TemplateDesigner/stores/TemplateDesignerStore.ts","../../core/src/components/TemplateDesigner/stores/ExpressionToolbarStore.ts","../../core/src/components/TemplateDesigner/ExpressionsToolbar.tsx","../../core/src/components/TemplateDesigner/HeaderToolbar.tsx","../../core/src/components/TemplateDesigner/stores/PreviewStore.ts","../../core/src/components/TemplateDesigner/PreviewToolbar.tsx","../../core/src/components/TemplateDesigner/TemplateDesigner.tsx","../../core/src/components/TemplateGrid/configurations/gridColumnsConfiguration.ts","../../core/src/components/TemplateGrid/configurations/types.ts","../../core/src/components/TemplateGrid/TemplateGrid.tsx","../../core/src/components/UserGrid/UserCannedViewPicker.tsx","../../core/src/components/UserGrid/UserGridCannedViews/InternalUserGrid.tsx","../../core/src/components/UserGrid/UserGridCannedViews/ExternalUserGrid.tsx","../../core/src/components/UserGrid/UserGrid.tsx","../../core/src/components/UseTitle/useTitle.ts","../../core/src/components/Anonymous/AppointmentConfirmation.tsx","config/variables.ts","pages/AdminTabs.tsx","pages/Admin.tsx","pages/Application/ApplicationActions.tsx","pages/Application/EligibilityBanner.tsx","pages/Application/ApplicationForm.tsx","pages/Application/ApplicationFormTab.tsx","../../../node_modules/@syncfusion/ej2-layouts/src/splitter/splitter.js","../../../node_modules/@syncfusion/ej2-react-layouts/src/splitter/splitter.component.js","pages/Application/ApplicationPage.tsx","pages/Application/NewApplicationForm.tsx","pages/FIAPage.tsx","pages/helpcenter/HelpCenterPage.tsx","pages/Home.tsx","pages/MatchupPage.tsx","../../../node_modules/react-error-boundary/dist/react-error-boundary.esm.js","../../../node_modules/@microsoft/applicationinsights-common/dist-esm/__DynamicConstants.js","../../../node_modules/@microsoft/applicationinsights-common/dist-esm/HelperFuncs.js","../../../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK.Enums/EnumHelperFuncs.js","../../../node_modules/@microsoft/applicationinsights-common/dist-esm/Enums.js","../../../node_modules/@microsoft/applicationinsights-common/dist-esm/StorageHelperFuncs.js","../../../node_modules/@microsoft/applicationinsights-common/dist-esm/applicationinsights-common.js","../../../node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Common/DataSanitizer.js","../../../node_modules/@microsoft/applicationinsights-common/dist-esm/Constants.js","../../../node_modules/@microsoft/applicationinsights-common/dist-esm/TelemetryItemCreator.js","../../../node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Event.js","../../../node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Trace.js","../../../node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Common/DataPoint.js","../../../node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Metric.js","../../../node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/PageView.js","../../../node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/PageViewPerformance.js","../../../node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Exception.js","../../../node_modules/@microsoft/applicationinsights-common/dist-esm/DomHelperFuncs.js","../../../node_modules/@microsoft/applicationinsights-common/dist-esm/RequestResponseHeaders.js","../../../node_modules/@microsoft/applicationinsights-common/dist-esm/UrlHelperFuncs.js","../../../node_modules/@microsoft/applicationinsights-common/dist-esm/Util.js","../../../node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/RemoteDependencyData.js","../../../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/InstrumentHooks.js","../../../node_modules/@microsoft/applicationinsights-analytics-js/dist-esm/__DynamicConstants.js","../../../node_modules/@microsoft/applicationinsights-analytics-js/dist-esm/JavaScriptSDK/Telemetry/PageViewManager.js","../../../node_modules/@microsoft/applicationinsights-analytics-js/dist-esm/JavaScriptSDK/Telemetry/PageViewPerformanceManager.js","../../../node_modules/@microsoft/applicationinsights-analytics-js/dist-esm/JavaScriptSDK/Telemetry/PageVisitTimeManager.js","../../../node_modules/@microsoft/applicationinsights-analytics-js/dist-esm/JavaScriptSDK/Timing.js","../../../node_modules/@microsoft/applicationinsights-analytics-js/dist-esm/JavaScriptSDK/AnalyticsPlugin.js","../../../node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/ContextTagKeys.js","../../../node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/PartAExtensions.js","../../../node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Common/Envelope.js","../../../node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Common/Data.js","../../../node_modules/@microsoft/applicationinsights-channel-js/dist-esm/InternalConstants.js","../../../node_modules/@microsoft/applicationinsights-channel-js/dist-esm/__DynamicConstants.js","../../../node_modules/@microsoft/applicationinsights-channel-js/dist-esm/EnvelopeCreator.js","../../../node_modules/@microsoft/applicationinsights-channel-js/dist-esm/Offline.js","../../../node_modules/@microsoft/applicationinsights-channel-js/dist-esm/SendBuffer.js","../../../node_modules/@microsoft/applicationinsights-channel-js/dist-esm/Sender.js","../../../node_modules/@microsoft/applicationinsights-channel-js/dist-esm/Serializer.js","../../../node_modules/@microsoft/applicationinsights-channel-js/dist-esm/TelemetryProcessors/SamplingScoreGenerators/HashCodeScoreGenerator.js","../../../node_modules/@microsoft/applicationinsights-channel-js/dist-esm/TelemetryProcessors/SamplingScoreGenerators/SamplingScoreGenerator.js","../../../node_modules/@microsoft/applicationinsights-channel-js/dist-esm/TelemetryProcessors/Sample.js","../../../node_modules/@microsoft/applicationinsights-common/dist-esm/ConnectionStringParser.js","../../../node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/SeverityLevel.js","../../../node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/IConfig.js","../../../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/ChannelController.js","../../../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/TelemetryInitializerPlugin.js","../../../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/BaseCore.js","../../../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/NotificationManager.js","../../../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/AppInsightsCore.js","../../../node_modules/@microsoft/applicationinsights-dependencies-js/dist-esm/InternalConstants.js","../../../node_modules/@microsoft/applicationinsights-dependencies-js/dist-esm/__DynamicConstants.js","../../../node_modules/@microsoft/applicationinsights-dependencies-js/dist-esm/ajaxRecord.js","../../../node_modules/@microsoft/applicationinsights-dependencies-js/dist-esm/ajax.js","../../../node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/Application.js","../../../node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/Device.js","../../../node_modules/@microsoft/applicationinsights-properties-js/dist-esm/__DynamicConstants.js","../../../node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/Internal.js","../../../node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/Location.js","../../../node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/Session.js","../../../node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/TelemetryTrace.js","../../../node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/User.js","../../../node_modules/@microsoft/applicationinsights-properties-js/dist-esm/TelemetryContext.js","../../../node_modules/@microsoft/applicationinsights-properties-js/dist-esm/PropertiesPlugin.js","../../../node_modules/@microsoft/applicationinsights-web/dist-esm/InternalConstants.js","../../../node_modules/@microsoft/applicationinsights-web/dist-esm/Initialization.js","../../../node_modules/@microsoft/applicationinsights-web/dist-esm/__DynamicConstants.js","AppInsights.ts","pages/PagesLayout.tsx","../../core/src/utils/useInterval.ts","pages/PagesLayoutChildren.tsx","pages/ReportsPage.tsx","pages/SchedulerPage.tsx","pages/Templates/TemplateDetails.tsx","pages/Templates/Templates.tsx","pages/AnonymousPagesLayout.tsx","pages/anonymous/AppointmentConfirmationPage.tsx","routes/routeConfig.tsx","config/googleTagManager.ts","pages/useAuthPageInit.ts","pages/index.tsx","App.tsx","reportWebVitals.ts","index.tsx"],"sourcesContent":["import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport LocaleUtils from './LocaleUtils';\n\nimport { ENTER } from './keys';\n\nexport default class Caption extends Component {\n static propTypes = {\n date: PropTypes.instanceOf(Date),\n months: PropTypes.arrayOf(PropTypes.string),\n locale: PropTypes.string,\n localeUtils: PropTypes.object,\n onClick: PropTypes.func,\n classNames: PropTypes.shape({\n caption: PropTypes.string.isRequired,\n }).isRequired,\n };\n\n static defaultProps = {\n localeUtils: LocaleUtils,\n };\n\n constructor(props) {\n super(props);\n this.handleKeyUp = this.handleKeyUp.bind(this);\n }\n\n shouldComponentUpdate(nextProps) {\n return (\n nextProps.locale !== this.props.locale ||\n nextProps.classNames !== this.props.classNames ||\n nextProps.date.getMonth() !== this.props.date.getMonth() ||\n nextProps.date.getFullYear() !== this.props.date.getFullYear()\n );\n }\n\n handleKeyUp(e) {\n if (e.keyCode === ENTER) {\n this.props.onClick(e);\n }\n }\n\n render() {\n const {\n classNames,\n date,\n months,\n locale,\n localeUtils,\n onClick,\n } = this.props;\n return (\n
\n
\n {months\n ? `${months[date.getMonth()]} ${date.getFullYear()}`\n : localeUtils.formatMonthTitle(date, locale)}\n
\n
\n );\n }\n}\n","/**\n * Clone a date object.\n *\n * @export\n * @param {Date} d The date to clone\n * @return {Date} The cloned date\n */\nexport function clone(d) {\n return new Date(d.getTime());\n}\n\n/**\n * Return `true` if the passed value is a valid JavaScript Date object.\n *\n * @export\n * @param {any} value\n * @returns {Boolean}\n */\nexport function isDate(value) {\n return value instanceof Date && !isNaN(value.valueOf());\n}\n\n/**\n * Return `d` as a new date with `n` months added.\n *\n * @export\n * @param {Date} d\n * @param {number} n\n */\nexport function addMonths(d, n) {\n const newDate = clone(d);\n newDate.setMonth(d.getMonth() + n);\n return newDate;\n}\n\n/**\n * Return `true` if two dates are the same day, ignoring the time.\n *\n * @export\n * @param {Date} d1\n * @param {Date} d2\n * @return {Boolean}\n */\nexport function isSameDay(d1, d2) {\n if (!d1 || !d2) {\n return false;\n }\n return (\n d1.getDate() === d2.getDate() &&\n d1.getMonth() === d2.getMonth() &&\n d1.getFullYear() === d2.getFullYear()\n );\n}\n\n/**\n * Return `true` if two dates fall in the same month.\n *\n * @export\n * @param {Date} d1\n * @param {Date} d2\n * @return {Boolean}\n */\nexport function isSameMonth(d1, d2) {\n if (!d1 || !d2) {\n return false;\n }\n return (\n d1.getMonth() === d2.getMonth() && d1.getFullYear() === d2.getFullYear()\n );\n}\n\n/**\n * Returns `true` if the first day is before the second day.\n *\n * @export\n * @param {Date} d1\n * @param {Date} d2\n * @returns {Boolean}\n */\nexport function isDayBefore(d1, d2) {\n const day1 = clone(d1).setHours(0, 0, 0, 0);\n const day2 = clone(d2).setHours(0, 0, 0, 0);\n return day1 < day2;\n}\n\n/**\n * Returns `true` if the first day is after the second day.\n *\n * @export\n * @param {Date} d1\n * @param {Date} d2\n * @returns {Boolean}\n */\nexport function isDayAfter(d1, d2) {\n const day1 = clone(d1).setHours(0, 0, 0, 0);\n const day2 = clone(d2).setHours(0, 0, 0, 0);\n return day1 > day2;\n}\n\n/**\n * Return `true` if a day is in the past, e.g. yesterday or any day\n * before yesterday.\n *\n * @export\n * @param {Date} d\n * @return {Boolean}\n */\nexport function isPastDay(d) {\n const today = new Date();\n today.setHours(0, 0, 0, 0);\n return isDayBefore(d, today);\n}\n\n/**\n * Return `true` if a day is in the future, e.g. tomorrow or any day\n * after tomorrow.\n *\n * @export\n * @param {Date} d\n * @return {Boolean}\n */\nexport function isFutureDay(d) {\n const tomorrow = new Date(new Date().getTime() + 24 * 60 * 60 * 1000);\n tomorrow.setHours(0, 0, 0, 0);\n return d >= tomorrow;\n}\n\n/**\n * Return `true` if day `d` is between days `d1` and `d2`,\n * without including them.\n *\n * @export\n * @param {Date} d\n * @param {Date} d1\n * @param {Date} d2\n * @return {Boolean}\n */\nexport function isDayBetween(d, d1, d2) {\n const date = clone(d);\n date.setHours(0, 0, 0, 0);\n return (\n (isDayAfter(date, d1) && isDayBefore(date, d2)) ||\n (isDayAfter(date, d2) && isDayBefore(date, d1))\n );\n}\n\n/**\n * Add a day to a range and return a new range. A range is an object with\n * `from` and `to` days.\n *\n * @export\n * @param {Date} day\n * @param {Object} range\n * @return {Object} Returns a new range object\n */\nexport function addDayToRange(day, range = { from: null, to: null }) {\n let { from, to } = range;\n if (!from) {\n from = day;\n } else if (from && to && isSameDay(from, to) && isSameDay(day, from)) {\n from = null;\n to = null;\n } else if (to && isDayBefore(day, from)) {\n from = day;\n } else if (to && isSameDay(day, to)) {\n from = day;\n to = day;\n } else {\n to = day;\n if (isDayBefore(to, from)) {\n to = from;\n from = day;\n }\n }\n\n return { from, to };\n}\n\n/**\n * Return `true` if a day is included in a range of days.\n *\n * @export\n * @param {Date} day\n * @param {Object} range\n * @return {Boolean}\n */\nexport function isDayInRange(day, range) {\n const { from, to } = range;\n return (\n (from && isSameDay(day, from)) ||\n (to && isSameDay(day, to)) ||\n (from && to && isDayBetween(day, from, to))\n );\n}\n\n/**\n * Return the year's week number (as per ISO, i.e. with the week starting from monday)\n * for the given day.\n *\n * @export\n * @param {Date} day\n * @returns {Number}\n */\nexport function getWeekNumber(day) {\n const date = clone(day);\n date.setHours(0, 0, 0);\n date.setDate(date.getDate() + 4 - (date.getDay() || 7));\n return Math.ceil(\n ((date - new Date(date.getFullYear(), 0, 1)) / 8.64e7 + 1) / 7\n );\n}\n\nexport default {\n addDayToRange,\n addMonths,\n clone,\n getWeekNumber,\n isDate,\n isDayAfter,\n isDayBefore,\n isDayBetween,\n isDayInRange,\n isFutureDay,\n isPastDay,\n isSameDay,\n isSameMonth,\n};\n","/* eslint-disable jsx-a11y/no-static-element-interactions, react/forbid-prop-types */\n\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { isSameDay } from './DateUtils';\nimport { hasOwnProp } from './Helpers';\n\nimport defaultClassNames from './classNames';\n\nfunction handleEvent(handler, day, modifiers) {\n if (!handler) {\n return undefined;\n }\n return e => {\n e.persist();\n handler(day, modifiers, e);\n };\n}\n\nexport default class Day extends Component {\n static propTypes = {\n classNames: PropTypes.shape({\n day: PropTypes.string.isRequired,\n }).isRequired,\n\n day: PropTypes.instanceOf(Date).isRequired,\n children: PropTypes.node.isRequired,\n\n ariaDisabled: PropTypes.bool,\n ariaLabel: PropTypes.string,\n ariaSelected: PropTypes.bool,\n empty: PropTypes.bool,\n modifiers: PropTypes.object,\n modifiersStyles: PropTypes.object,\n onClick: PropTypes.func,\n onKeyDown: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseDown: PropTypes.func,\n onMouseUp: PropTypes.func,\n onTouchEnd: PropTypes.func,\n onTouchStart: PropTypes.func,\n onFocus: PropTypes.func,\n tabIndex: PropTypes.number,\n };\n\n static defaultProps = {\n tabIndex: -1,\n };\n\n static defaultProps = {\n modifiers: {},\n modifiersStyles: {},\n empty: false,\n };\n\n shouldComponentUpdate(nextProps) {\n const propNames = Object.keys(this.props);\n const nextPropNames = Object.keys(nextProps);\n if (propNames.length !== nextPropNames.length) {\n return true;\n }\n return propNames.some(name => {\n if (\n name === 'modifiers' ||\n name === 'modifiersStyles' ||\n name === 'classNames'\n ) {\n const prop = this.props[name];\n const nextProp = nextProps[name];\n const modifiers = Object.keys(prop);\n const nextModifiers = Object.keys(nextProp);\n if (modifiers.length !== nextModifiers.length) {\n return true;\n }\n return modifiers.some(\n mod => !hasOwnProp(nextProp, mod) || prop[mod] !== nextProp[mod]\n );\n }\n if (name === 'day') {\n return !isSameDay(this.props[name], nextProps[name]);\n }\n return (\n !hasOwnProp(nextProps, name) || this.props[name] !== nextProps[name]\n );\n });\n }\n\n render() {\n const {\n classNames,\n modifiersStyles,\n day,\n tabIndex,\n empty,\n modifiers,\n onMouseEnter,\n onMouseLeave,\n onMouseUp,\n onMouseDown,\n onClick,\n onKeyDown,\n onTouchStart,\n onTouchEnd,\n onFocus,\n ariaLabel,\n ariaDisabled,\n ariaSelected,\n children,\n } = this.props;\n\n let className = classNames.day;\n if (classNames !== defaultClassNames) {\n // When using CSS modules prefix the modifier as required by the BEM syntax\n className += ` ${Object.keys(modifiers).join(' ')}`;\n } else {\n className += Object.keys(modifiers)\n .map(modifier => ` ${className}--${modifier}`)\n .join('');\n }\n\n let style;\n if (modifiersStyles) {\n Object.keys(modifiers)\n .filter(modifier => !!modifiersStyles[modifier])\n .forEach(modifier => {\n style = { ...style, ...modifiersStyles[modifier] };\n });\n }\n\n if (empty) {\n return
;\n }\n return (\n \n {children}\n
\n );\n }\n}\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Caption from './Caption';\nimport Navbar from './Navbar';\nimport Month from './Month';\nimport Weekday from './Weekday';\n\nimport * as Helpers from './Helpers';\nimport * as DateUtils from './DateUtils';\nimport * as LocaleUtils from './LocaleUtils';\nimport * as ModifiersUtils from './ModifiersUtils';\nimport classNames from './classNames';\n\nimport { ENTER, SPACE, LEFT, UP, DOWN, RIGHT } from './keys';\n\nexport class DayPicker extends Component {\n dayPicker = null;\n\n static propTypes = {\n // Rendering months\n initialMonth: PropTypes.instanceOf(Date),\n month: PropTypes.instanceOf(Date),\n numberOfMonths: PropTypes.number,\n fromMonth: PropTypes.instanceOf(Date),\n toMonth: PropTypes.instanceOf(Date),\n canChangeMonth: PropTypes.bool,\n reverseMonths: PropTypes.bool,\n pagedNavigation: PropTypes.bool,\n todayButton: PropTypes.string,\n showWeekNumbers: PropTypes.bool,\n showWeekDays: PropTypes.bool,\n\n // Modifiers\n selectedDays: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.func,\n PropTypes.array,\n ]),\n disabledDays: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.func,\n PropTypes.array,\n ]),\n\n modifiers: PropTypes.object,\n modifiersStyles: PropTypes.object,\n\n // Localization\n dir: PropTypes.string,\n firstDayOfWeek: PropTypes.oneOf([0, 1, 2, 3, 4, 5, 6]),\n labels: PropTypes.shape({\n nextMonth: PropTypes.string.isRequired,\n previousMonth: PropTypes.string.isRequired,\n }),\n locale: PropTypes.string,\n localeUtils: PropTypes.shape({\n formatMonthTitle: PropTypes.func,\n formatWeekdayShort: PropTypes.func,\n formatWeekdayLong: PropTypes.func,\n getFirstDayOfWeek: PropTypes.func,\n }),\n months: PropTypes.arrayOf(PropTypes.string),\n weekdaysLong: PropTypes.arrayOf(PropTypes.string),\n weekdaysShort: PropTypes.arrayOf(PropTypes.string),\n\n // Customization\n showOutsideDays: PropTypes.bool,\n enableOutsideDaysClick: PropTypes.bool,\n fixedWeeks: PropTypes.bool,\n\n // CSS and HTML\n classNames: PropTypes.shape({\n body: PropTypes.string,\n container: PropTypes.string,\n day: PropTypes.string.isRequired,\n disabled: PropTypes.string.isRequired,\n footer: PropTypes.string,\n interactionDisabled: PropTypes.string,\n months: PropTypes.string,\n month: PropTypes.string,\n navBar: PropTypes.string,\n outside: PropTypes.string.isRequired,\n selected: PropTypes.string.isRequired,\n today: PropTypes.string.isRequired,\n todayButton: PropTypes.string,\n week: PropTypes.string,\n wrapper: PropTypes.string,\n }),\n className: PropTypes.string,\n containerProps: PropTypes.object,\n tabIndex: PropTypes.number,\n\n // Custom elements\n renderDay: PropTypes.func,\n renderWeek: PropTypes.func,\n weekdayElement: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n PropTypes.instanceOf(Component),\n ]),\n navbarElement: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n PropTypes.instanceOf(Component),\n ]),\n captionElement: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n PropTypes.instanceOf(Component),\n ]),\n\n // Events\n onBlur: PropTypes.func,\n onFocus: PropTypes.func,\n onKeyDown: PropTypes.func,\n onDayClick: PropTypes.func,\n onDayKeyDown: PropTypes.func,\n onDayMouseEnter: PropTypes.func,\n onDayMouseLeave: PropTypes.func,\n onDayMouseDown: PropTypes.func,\n onDayMouseUp: PropTypes.func,\n onDayTouchStart: PropTypes.func,\n onDayTouchEnd: PropTypes.func,\n onDayFocus: PropTypes.func,\n onMonthChange: PropTypes.func,\n onCaptionClick: PropTypes.func,\n onWeekClick: PropTypes.func,\n onTodayButtonClick: PropTypes.func,\n };\n\n static defaultProps = {\n classNames,\n tabIndex: 0,\n numberOfMonths: 1,\n labels: {\n previousMonth: 'Previous Month',\n nextMonth: 'Next Month',\n },\n locale: 'en',\n localeUtils: LocaleUtils,\n showOutsideDays: false,\n enableOutsideDaysClick: true,\n fixedWeeks: false,\n canChangeMonth: true,\n reverseMonths: false,\n pagedNavigation: false,\n showWeekNumbers: false,\n showWeekDays: true,\n renderDay: day => day.getDate(),\n renderWeek: weekNumber => weekNumber,\n weekdayElement: ,\n navbarElement: ,\n captionElement: ,\n };\n\n constructor(props) {\n super(props);\n\n const currentMonth = this.getCurrentMonthFromProps(props);\n this.state = { currentMonth };\n }\n\n componentDidUpdate(prevProps) {\n // Changing the `month` props means changing the current displayed month\n if (\n prevProps.month !== this.props.month &&\n !DateUtils.isSameMonth(prevProps.month, this.props.month)\n ) {\n const currentMonth = this.getCurrentMonthFromProps(this.props);\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({ currentMonth });\n }\n }\n\n static VERSION = '7.4.8';\n\n /**\n * Return the month to be shown in the calendar based on the component props.\n *\n * @param {Object} props\n * @returns Date\n * @memberof DayPicker\n * @private\n */\n getCurrentMonthFromProps(props) {\n const initialMonth = Helpers.startOfMonth(\n props.month || props.initialMonth || new Date()\n );\n let currentMonth = initialMonth;\n\n if (props.pagedNavigation && props.numberOfMonths > 1 && props.fromMonth) {\n const fromMonth = Helpers.startOfMonth(props.fromMonth);\n const diffInMonths = Helpers.getMonthsDiff(fromMonth, currentMonth);\n currentMonth = DateUtils.addMonths(\n fromMonth,\n Math.floor(diffInMonths / props.numberOfMonths) * props.numberOfMonths\n );\n } else if (\n props.toMonth &&\n props.numberOfMonths > 1 &&\n Helpers.getMonthsDiff(currentMonth, props.toMonth) <= 0\n ) {\n currentMonth = DateUtils.addMonths(\n Helpers.startOfMonth(props.toMonth),\n 1 - this.props.numberOfMonths\n );\n }\n return currentMonth;\n }\n\n getNextNavigableMonth() {\n return DateUtils.addMonths(\n this.state.currentMonth,\n this.props.numberOfMonths\n );\n }\n\n getPreviousNavigableMonth() {\n return DateUtils.addMonths(this.state.currentMonth, -1);\n }\n\n allowPreviousMonth() {\n const previousMonth = DateUtils.addMonths(this.state.currentMonth, -1);\n return this.allowMonth(previousMonth);\n }\n\n allowNextMonth() {\n const nextMonth = DateUtils.addMonths(\n this.state.currentMonth,\n this.props.numberOfMonths\n );\n return this.allowMonth(nextMonth);\n }\n\n allowMonth(d) {\n const { fromMonth, toMonth, canChangeMonth } = this.props;\n if (\n !canChangeMonth ||\n (fromMonth && Helpers.getMonthsDiff(fromMonth, d) < 0) ||\n (toMonth && Helpers.getMonthsDiff(toMonth, d) > 0)\n ) {\n return false;\n }\n return true;\n }\n\n allowYearChange() {\n return this.props.canChangeMonth;\n }\n\n showMonth(d, callback) {\n if (!this.allowMonth(d)) {\n return;\n }\n this.setState({ currentMonth: Helpers.startOfMonth(d) }, () => {\n if (callback) {\n callback();\n }\n if (this.props.onMonthChange) {\n this.props.onMonthChange(this.state.currentMonth);\n }\n });\n }\n\n showNextMonth = callback => {\n if (!this.allowNextMonth()) {\n return;\n }\n const deltaMonths = this.props.pagedNavigation\n ? this.props.numberOfMonths\n : 1;\n const nextMonth = DateUtils.addMonths(this.state.currentMonth, deltaMonths);\n this.showMonth(nextMonth, callback);\n };\n\n showPreviousMonth = callback => {\n if (!this.allowPreviousMonth()) {\n return;\n }\n const deltaMonths = this.props.pagedNavigation\n ? this.props.numberOfMonths\n : 1;\n const previousMonth = DateUtils.addMonths(\n this.state.currentMonth,\n -deltaMonths\n );\n this.showMonth(previousMonth, callback);\n };\n\n showNextYear() {\n if (!this.allowYearChange()) {\n return;\n }\n const nextMonth = DateUtils.addMonths(this.state.currentMonth, 12);\n this.showMonth(nextMonth);\n }\n\n showPreviousYear() {\n if (!this.allowYearChange()) {\n return;\n }\n const nextMonth = DateUtils.addMonths(this.state.currentMonth, -12);\n this.showMonth(nextMonth);\n }\n\n focus() {\n this.wrapper.focus();\n }\n\n focusFirstDayOfMonth() {\n Helpers.getDayNodes(this.dayPicker, this.props.classNames)[0].focus();\n }\n\n focusLastDayOfMonth() {\n const dayNodes = Helpers.getDayNodes(this.dayPicker, this.props.classNames);\n dayNodes[dayNodes.length - 1].focus();\n }\n\n focusPreviousDay(dayNode) {\n const dayNodes = Helpers.getDayNodes(this.dayPicker, this.props.classNames);\n const dayNodeIndex = Helpers.nodeListToArray(dayNodes).indexOf(dayNode);\n if (dayNodeIndex === -1) return;\n if (dayNodeIndex === 0) {\n this.showPreviousMonth(() => this.focusLastDayOfMonth());\n } else {\n dayNodes[dayNodeIndex - 1].focus();\n }\n }\n\n focusNextDay(dayNode) {\n const dayNodes = Helpers.getDayNodes(this.dayPicker, this.props.classNames);\n const dayNodeIndex = Helpers.nodeListToArray(dayNodes).indexOf(dayNode);\n if (dayNodeIndex === -1) return;\n if (dayNodeIndex === dayNodes.length - 1) {\n this.showNextMonth(() => this.focusFirstDayOfMonth());\n } else {\n dayNodes[dayNodeIndex + 1].focus();\n }\n }\n\n focusNextWeek(dayNode) {\n const dayNodes = Helpers.getDayNodes(this.dayPicker, this.props.classNames);\n const dayNodeIndex = Helpers.nodeListToArray(dayNodes).indexOf(dayNode);\n const isInLastWeekOfMonth = dayNodeIndex > dayNodes.length - 8;\n\n if (isInLastWeekOfMonth) {\n this.showNextMonth(() => {\n const daysAfterIndex = dayNodes.length - dayNodeIndex;\n const nextMonthDayNodeIndex = 7 - daysAfterIndex;\n Helpers.getDayNodes(this.dayPicker, this.props.classNames)[\n nextMonthDayNodeIndex\n ].focus();\n });\n } else {\n dayNodes[dayNodeIndex + 7].focus();\n }\n }\n\n focusPreviousWeek(dayNode) {\n const dayNodes = Helpers.getDayNodes(this.dayPicker, this.props.classNames);\n const dayNodeIndex = Helpers.nodeListToArray(dayNodes).indexOf(dayNode);\n const isInFirstWeekOfMonth = dayNodeIndex <= 6;\n\n if (isInFirstWeekOfMonth) {\n this.showPreviousMonth(() => {\n const previousMonthDayNodes = Helpers.getDayNodes(\n this.dayPicker,\n this.props.classNames\n );\n const startOfLastWeekOfMonth = previousMonthDayNodes.length - 7;\n const previousMonthDayNodeIndex = startOfLastWeekOfMonth + dayNodeIndex;\n previousMonthDayNodes[previousMonthDayNodeIndex].focus();\n });\n } else {\n dayNodes[dayNodeIndex - 7].focus();\n }\n }\n\n // Event handlers\n\n handleKeyDown = e => {\n e.persist();\n\n switch (e.keyCode) {\n case LEFT:\n if (this.props.dir === 'rtl') {\n this.showNextMonth();\n } else {\n this.showPreviousMonth();\n }\n Helpers.cancelEvent(e);\n break;\n case RIGHT:\n if (this.props.dir === 'rtl') {\n this.showPreviousMonth();\n } else {\n this.showNextMonth();\n }\n Helpers.cancelEvent(e);\n break;\n case UP:\n this.showPreviousYear();\n Helpers.cancelEvent(e);\n break;\n case DOWN:\n this.showNextYear();\n Helpers.cancelEvent(e);\n break;\n default:\n break;\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n };\n\n handleDayKeyDown = (day, modifiers, e) => {\n e.persist();\n\n switch (e.keyCode) {\n case LEFT:\n Helpers.cancelEvent(e);\n if (this.props.dir === 'rtl') {\n this.focusNextDay(e.target);\n } else {\n this.focusPreviousDay(e.target);\n }\n break;\n case RIGHT:\n Helpers.cancelEvent(e);\n if (this.props.dir === 'rtl') {\n this.focusPreviousDay(e.target);\n } else {\n this.focusNextDay(e.target);\n }\n break;\n case UP:\n Helpers.cancelEvent(e);\n this.focusPreviousWeek(e.target);\n break;\n case DOWN:\n Helpers.cancelEvent(e);\n this.focusNextWeek(e.target);\n break;\n case ENTER:\n case SPACE:\n Helpers.cancelEvent(e);\n if (this.props.onDayClick) {\n this.handleDayClick(day, modifiers, e);\n }\n break;\n default:\n break;\n }\n if (this.props.onDayKeyDown) {\n this.props.onDayKeyDown(day, modifiers, e);\n }\n };\n\n handleDayClick = (day, modifiers, e) => {\n e.persist();\n\n if (\n modifiers[this.props.classNames.outside] &&\n this.props.enableOutsideDaysClick\n ) {\n this.handleOutsideDayClick(day);\n }\n if (this.props.onDayClick) {\n this.props.onDayClick(day, modifiers, e);\n }\n };\n\n handleOutsideDayClick(day) {\n const { currentMonth } = this.state;\n const { numberOfMonths } = this.props;\n const diffInMonths = Helpers.getMonthsDiff(currentMonth, day);\n if (diffInMonths > 0 && diffInMonths >= numberOfMonths) {\n this.showNextMonth();\n } else if (diffInMonths < 0) {\n this.showPreviousMonth();\n }\n }\n\n handleTodayButtonClick = e => {\n const today = new Date();\n const month = new Date(today.getFullYear(), today.getMonth());\n this.showMonth(month);\n e.target.blur();\n if (this.props.onTodayButtonClick) {\n e.persist();\n this.props.onTodayButtonClick(\n new Date(today.getFullYear(), today.getMonth(), today.getDate()),\n ModifiersUtils.getModifiersForDay(today, this.props.modifiers),\n e\n );\n }\n };\n\n renderNavbar() {\n const {\n labels,\n locale,\n localeUtils,\n canChangeMonth,\n navbarElement,\n ...attributes\n } = this.props;\n\n if (!canChangeMonth) return null;\n\n const props = {\n month: this.state.currentMonth,\n classNames: this.props.classNames,\n className: this.props.classNames.navBar,\n nextMonth: this.getNextNavigableMonth(),\n previousMonth: this.getPreviousNavigableMonth(),\n showPreviousButton: this.allowPreviousMonth(),\n showNextButton: this.allowNextMonth(),\n onNextClick: this.showNextMonth,\n onPreviousClick: this.showPreviousMonth,\n dir: attributes.dir,\n labels,\n locale,\n localeUtils,\n };\n return React.isValidElement(navbarElement)\n ? React.cloneElement(navbarElement, props)\n : React.createElement(navbarElement, props);\n }\n\n renderMonths() {\n const months = [];\n const firstDayOfWeek = Helpers.getFirstDayOfWeekFromProps(this.props);\n for (let i = 0; i < this.props.numberOfMonths; i += 1) {\n const month = DateUtils.addMonths(this.state.currentMonth, i);\n months.push(\n \n );\n }\n\n if (this.props.reverseMonths) {\n months.reverse();\n }\n return months;\n }\n\n renderFooter() {\n if (this.props.todayButton) {\n return (\n
\n {this.renderTodayButton()}\n
\n );\n }\n return null;\n }\n\n renderTodayButton() {\n return (\n \n {this.props.todayButton}\n \n );\n }\n\n render() {\n let className = this.props.classNames.container;\n\n if (!this.props.onDayClick) {\n className = `${className} ${this.props.classNames.interactionDisabled}`;\n }\n if (this.props.className) {\n className = `${className} ${this.props.className}`;\n }\n return (\n (this.dayPicker = el)}\n lang={this.props.locale}\n >\n (this.wrapper = el)}\n tabIndex={\n this.props.canChangeMonth &&\n typeof this.props.tabIndex !== 'undefined'\n ? this.props.tabIndex\n : -1\n }\n onKeyDown={this.handleKeyDown}\n onFocus={this.props.onFocus}\n onBlur={this.props.onBlur}\n >\n {this.renderNavbar()}\n
\n {this.renderMonths()}\n
\n {this.renderFooter()}\n \n \n );\n }\n}\n\nDayPicker.DateUtils = DateUtils;\nDayPicker.LocaleUtils = LocaleUtils;\nDayPicker.ModifiersUtils = ModifiersUtils;\n\nexport { DateUtils, LocaleUtils, ModifiersUtils };\n\nexport default DayPicker;\n","import { clone } from './DateUtils';\nimport { getFirstDayOfWeek } from './LocaleUtils';\nimport defaultClassNames from './classNames';\n\nexport function cancelEvent(e) {\n e.preventDefault();\n e.stopPropagation();\n}\n\nexport function getFirstDayOfMonth(d) {\n return new Date(d.getFullYear(), d.getMonth(), 1, 12);\n}\n\nexport function getDaysInMonth(d) {\n const resultDate = getFirstDayOfMonth(d);\n\n resultDate.setMonth(resultDate.getMonth() + 1);\n resultDate.setDate(resultDate.getDate() - 1);\n\n return resultDate.getDate();\n}\n\nexport function getModifiersFromProps(props) {\n const modifiers = { ...props.modifiers };\n if (props.selectedDays) {\n modifiers[props.classNames.selected] = props.selectedDays;\n }\n if (props.disabledDays) {\n modifiers[props.classNames.disabled] = props.disabledDays;\n }\n return modifiers;\n}\n\nexport function getFirstDayOfWeekFromProps(props) {\n const { firstDayOfWeek, locale = 'en', localeUtils = {} } = props;\n if (!isNaN(firstDayOfWeek)) {\n return firstDayOfWeek;\n }\n if (localeUtils.getFirstDayOfWeek) {\n return localeUtils.getFirstDayOfWeek(locale);\n }\n return 0;\n}\n\nexport function isRangeOfDates(value) {\n return !!(value && value.from && value.to);\n}\n\nexport function getMonthsDiff(d1, d2) {\n return (\n d2.getMonth() - d1.getMonth() + 12 * (d2.getFullYear() - d1.getFullYear())\n );\n}\n\nexport function getWeekArray(\n d,\n firstDayOfWeek = getFirstDayOfWeek(),\n fixedWeeks\n) {\n const daysInMonth = getDaysInMonth(d);\n const dayArray = [];\n\n let week = [];\n const weekArray = [];\n\n for (let i = 1; i <= daysInMonth; i += 1) {\n dayArray.push(new Date(d.getFullYear(), d.getMonth(), i, 12));\n }\n\n dayArray.forEach(day => {\n if (week.length > 0 && day.getDay() === firstDayOfWeek) {\n weekArray.push(week);\n week = [];\n }\n week.push(day);\n if (dayArray.indexOf(day) === dayArray.length - 1) {\n weekArray.push(week);\n }\n });\n\n // unshift days to start the first week\n const firstWeek = weekArray[0];\n for (let i = 7 - firstWeek.length; i > 0; i -= 1) {\n const outsideDate = clone(firstWeek[0]);\n outsideDate.setDate(firstWeek[0].getDate() - 1);\n firstWeek.unshift(outsideDate);\n }\n\n // push days until the end of the last week\n const lastWeek = weekArray[weekArray.length - 1];\n for (let i = lastWeek.length; i < 7; i += 1) {\n const outsideDate = clone(lastWeek[lastWeek.length - 1]);\n outsideDate.setDate(lastWeek[lastWeek.length - 1].getDate() + 1);\n lastWeek.push(outsideDate);\n }\n\n // add extra weeks to reach 6 weeks\n if (fixedWeeks && weekArray.length < 6) {\n let lastExtraWeek;\n\n for (let i = weekArray.length; i < 6; i += 1) {\n lastExtraWeek = weekArray[weekArray.length - 1];\n const lastDay = lastExtraWeek[lastExtraWeek.length - 1];\n const extraWeek = [];\n\n for (let j = 0; j < 7; j += 1) {\n const outsideDate = clone(lastDay);\n outsideDate.setDate(lastDay.getDate() + j + 1);\n extraWeek.push(outsideDate);\n }\n\n weekArray.push(extraWeek);\n }\n }\n\n return weekArray;\n}\n\nexport function startOfMonth(d) {\n const newDate = clone(d);\n newDate.setDate(1);\n newDate.setHours(12, 0, 0, 0); // always set noon to avoid time zone issues\n return newDate;\n}\n\nexport function getDayNodes(node, classNames) {\n let outsideClassName;\n if (classNames === defaultClassNames) {\n // When using CSS modules prefix the modifier as required by the BEM syntax\n outsideClassName = `${classNames.day}--${classNames.outside}`;\n } else {\n outsideClassName = `${classNames.outside}`;\n }\n const dayQuery = classNames.day.replace(/ /g, '.');\n const outsideDayQuery = outsideClassName.replace(/ /g, '.');\n const selector = `.${dayQuery}:not(.${outsideDayQuery})`;\n return node.querySelectorAll(selector);\n}\n\nexport function nodeListToArray(nodeList) {\n return Array.prototype.slice.call(nodeList, 0);\n}\n\nexport function hasOwnProp(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n","const WEEKDAYS_LONG = [\n 'Sunday',\n 'Monday',\n 'Tuesday',\n 'Wednesday',\n 'Thursday',\n 'Friday',\n 'Saturday',\n];\n\nconst WEEKDAYS_SHORT = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];\n\nconst MONTHS = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n];\n\nexport function formatDay(day) {\n return day.toDateString();\n}\n\nexport function formatMonthTitle(d) {\n return `${MONTHS[d.getMonth()]} ${d.getFullYear()}`;\n}\n\nexport function formatWeekdayShort(i) {\n return WEEKDAYS_SHORT[i];\n}\n\nexport function formatWeekdayLong(i) {\n return WEEKDAYS_LONG[i];\n}\n\nexport function getFirstDayOfWeek() {\n return 0;\n}\n\nexport function getMonths() {\n return MONTHS;\n}\n\nexport default {\n formatDay,\n formatMonthTitle,\n formatWeekdayShort,\n formatWeekdayLong,\n getFirstDayOfWeek,\n getMonths,\n};\n","import { isDayAfter, isDayBefore, isDayInRange, isSameDay } from './DateUtils';\nimport { isRangeOfDates } from './Helpers';\n\n/**\n * Return `true` if a date matches the specified modifier.\n *\n * @export\n * @param {Date} day\n * @param {Any} modifier\n * @return {Boolean}\n */\nexport function dayMatchesModifier(day, modifier) {\n if (!modifier) {\n return false;\n }\n const arr = Array.isArray(modifier) ? modifier : [modifier];\n return arr.some(mod => {\n if (!mod) {\n return false;\n }\n if (mod instanceof Date) {\n return isSameDay(day, mod);\n }\n if (isRangeOfDates(mod)) {\n return isDayInRange(day, mod);\n }\n if (mod.after && mod.before && isDayAfter(mod.before, mod.after)) {\n return isDayAfter(day, mod.after) && isDayBefore(day, mod.before);\n }\n if (\n mod.after &&\n mod.before &&\n (isDayAfter(mod.after, mod.before) || isSameDay(mod.after, mod.before))\n ) {\n return isDayAfter(day, mod.after) || isDayBefore(day, mod.before);\n }\n if (mod.after) {\n return isDayAfter(day, mod.after);\n }\n if (mod.before) {\n return isDayBefore(day, mod.before);\n }\n if (mod.daysOfWeek) {\n return mod.daysOfWeek.some(dayOfWeek => day.getDay() === dayOfWeek);\n }\n if (typeof mod === 'function') {\n return mod(day);\n }\n return false;\n });\n}\n\n/**\n * Return the modifiers matching the given day for the given\n * object of modifiers.\n *\n * @export\n * @param {Date} day\n * @param {Object} [modifiersObj={}]\n * @return {Array}\n */\nexport function getModifiersForDay(day, modifiersObj = {}) {\n return Object.keys(modifiersObj).reduce((modifiers, modifierName) => {\n const value = modifiersObj[modifierName];\n if (dayMatchesModifier(day, value)) {\n modifiers.push(modifierName);\n }\n return modifiers;\n }, []);\n}\n\nexport default { dayMatchesModifier, getModifiersForDay };\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Weekdays from './Weekdays';\nimport Day from './Day';\nimport { ENTER } from './keys';\n\nimport * as ModifiersUtils from './ModifiersUtils';\nimport * as Helpers from './Helpers';\nimport * as DateUtils from './DateUtils';\n\nexport default class Month extends Component {\n static propTypes = {\n classNames: PropTypes.shape({\n body: PropTypes.string.isRequired,\n month: PropTypes.string.isRequired,\n outside: PropTypes.string.isRequired,\n today: PropTypes.string.isRequired,\n week: PropTypes.string.isRequired,\n weekNumber: PropTypes.string.isRequired,\n disabled: PropTypes.string.isRequired,\n selected: PropTypes.string.isRequired,\n }).isRequired,\n tabIndex: PropTypes.number,\n\n month: PropTypes.instanceOf(Date).isRequired,\n months: PropTypes.arrayOf(PropTypes.string),\n\n modifiersStyles: PropTypes.object,\n\n showWeekDays: PropTypes.bool,\n showOutsideDays: PropTypes.bool,\n\n renderDay: PropTypes.func.isRequired,\n renderWeek: PropTypes.func.isRequired,\n\n captionElement: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n PropTypes.instanceOf(React.Component),\n ]).isRequired,\n weekdayElement: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n PropTypes.instanceOf(React.Component),\n ]),\n\n fixedWeeks: PropTypes.bool,\n showWeekNumbers: PropTypes.bool,\n\n locale: PropTypes.string.isRequired,\n localeUtils: PropTypes.object.isRequired,\n weekdaysLong: PropTypes.arrayOf(PropTypes.string),\n weekdaysShort: PropTypes.arrayOf(PropTypes.string),\n firstDayOfWeek: PropTypes.number.isRequired,\n\n onCaptionClick: PropTypes.func,\n onDayClick: PropTypes.func,\n onDayFocus: PropTypes.func,\n onDayKeyDown: PropTypes.func,\n onDayMouseEnter: PropTypes.func,\n onDayMouseLeave: PropTypes.func,\n onDayMouseDown: PropTypes.func,\n onDayMouseUp: PropTypes.func,\n onDayTouchEnd: PropTypes.func,\n onDayTouchStart: PropTypes.func,\n onWeekClick: PropTypes.func,\n };\n\n renderDay = day => {\n const monthNumber = this.props.month.getMonth();\n const propModifiers = Helpers.getModifiersFromProps(this.props);\n const dayModifiers = ModifiersUtils.getModifiersForDay(day, propModifiers);\n if (\n DateUtils.isSameDay(day, new Date()) &&\n !Object.prototype.hasOwnProperty.call(\n propModifiers,\n this.props.classNames.today\n )\n ) {\n dayModifiers.push(this.props.classNames.today);\n }\n if (day.getMonth() !== monthNumber) {\n dayModifiers.push(this.props.classNames.outside);\n }\n\n const isOutside = day.getMonth() !== monthNumber;\n let tabIndex = -1;\n // Focus on the first day of the month\n if (this.props.onDayClick && !isOutside && day.getDate() === 1) {\n tabIndex = this.props.tabIndex; // eslint-disable-line prefer-destructuring\n }\n const key = `${day.getFullYear()}${day.getMonth()}${day.getDate()}`;\n const modifiers = {};\n dayModifiers.forEach(modifier => {\n modifiers[modifier] = true;\n });\n\n return (\n -1\n }\n ariaSelected={dayModifiers.indexOf(this.props.classNames.selected) > -1}\n onClick={this.props.onDayClick}\n onFocus={this.props.onDayFocus}\n onKeyDown={this.props.onDayKeyDown}\n onMouseEnter={this.props.onDayMouseEnter}\n onMouseLeave={this.props.onDayMouseLeave}\n onMouseDown={this.props.onDayMouseDown}\n onMouseUp={this.props.onDayMouseUp}\n onTouchEnd={this.props.onDayTouchEnd}\n onTouchStart={this.props.onDayTouchStart}\n >\n {this.props.renderDay(day, modifiers)}\n \n );\n };\n\n render() {\n const {\n classNames,\n\n month,\n months,\n\n fixedWeeks,\n captionElement,\n weekdayElement,\n\n locale,\n localeUtils,\n weekdaysLong,\n weekdaysShort,\n firstDayOfWeek,\n\n onCaptionClick,\n\n showWeekNumbers,\n showWeekDays,\n onWeekClick,\n } = this.props;\n\n const captionProps = {\n date: month,\n classNames,\n months,\n localeUtils,\n locale,\n onClick: onCaptionClick ? e => onCaptionClick(month, e) : undefined,\n };\n const caption = React.isValidElement(captionElement)\n ? React.cloneElement(captionElement, captionProps)\n : React.createElement(captionElement, captionProps);\n\n const weeks = Helpers.getWeekArray(month, firstDayOfWeek, fixedWeeks);\n return (\n
\n {caption}\n {showWeekDays && (\n \n )}\n
\n {weeks.map(week => {\n let weekNumber;\n if (showWeekNumbers) {\n weekNumber = DateUtils.getWeekNumber(week[6]);\n }\n return (\n \n {showWeekNumbers && (\n onWeekClick(weekNumber, week, e)\n : undefined\n }\n onKeyUp={\n onWeekClick\n ? e =>\n e.keyCode === ENTER &&\n onWeekClick(weekNumber, week, e)\n : undefined\n }\n >\n {this.props.renderWeek(weekNumber, week, month)}\n
\n )}\n {week.map(this.renderDay)}\n
\n );\n })}\n \n \n );\n }\n}\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport defaultClassNames from './classNames';\nimport { SPACE, ENTER } from './keys';\n\nexport default class Navbar extends Component {\n static propTypes = {\n classNames: PropTypes.shape({\n navBar: PropTypes.string.isRequired,\n navButtonPrev: PropTypes.string.isRequired,\n navButtonNext: PropTypes.string.isRequired,\n navButtonInteractionDisabled: PropTypes.string.isRequired,\n }),\n className: PropTypes.string,\n showPreviousButton: PropTypes.bool,\n showNextButton: PropTypes.bool,\n onPreviousClick: PropTypes.func,\n onNextClick: PropTypes.func,\n dir: PropTypes.string,\n labels: PropTypes.shape({\n previousMonth: PropTypes.string.isRequired,\n nextMonth: PropTypes.string.isRequired,\n }),\n };\n\n static defaultProps = {\n classNames: defaultClassNames,\n dir: 'ltr',\n labels: {\n previousMonth: 'Previous Month',\n nextMonth: 'Next Month',\n },\n showPreviousButton: true,\n showNextButton: true,\n };\n\n shouldComponentUpdate(nextProps) {\n return (\n nextProps.labels !== this.props.labels ||\n nextProps.dir !== this.props.dir ||\n this.props.showPreviousButton !== nextProps.showPreviousButton ||\n this.props.showNextButton !== nextProps.showNextButton\n );\n }\n\n handleNextClick = () => {\n if (this.props.onNextClick) {\n this.props.onNextClick();\n }\n };\n\n handlePreviousClick = () => {\n if (this.props.onPreviousClick) {\n this.props.onPreviousClick();\n }\n };\n\n handleNextKeyDown = e => {\n if (e.keyCode !== ENTER && e.keyCode !== SPACE) {\n return;\n }\n e.preventDefault();\n this.handleNextClick();\n };\n\n handlePreviousKeyDown = e => {\n if (e.keyCode !== ENTER && e.keyCode !== SPACE) {\n return;\n }\n e.preventDefault();\n this.handlePreviousClick();\n };\n\n render() {\n const {\n classNames,\n className,\n showPreviousButton,\n showNextButton,\n labels,\n dir,\n } = this.props;\n\n let previousClickHandler;\n let nextClickHandler;\n let previousKeyDownHandler;\n let nextKeyDownHandler;\n let shouldShowPrevious;\n let shouldShowNext;\n\n if (dir === 'rtl') {\n previousClickHandler = this.handleNextClick;\n nextClickHandler = this.handlePreviousClick;\n previousKeyDownHandler = this.handleNextKeyDown;\n nextKeyDownHandler = this.handlePreviousKeyDown;\n shouldShowNext = showPreviousButton;\n shouldShowPrevious = showNextButton;\n } else {\n previousClickHandler = this.handlePreviousClick;\n nextClickHandler = this.handleNextClick;\n previousKeyDownHandler = this.handlePreviousKeyDown;\n nextKeyDownHandler = this.handleNextKeyDown;\n shouldShowNext = showNextButton;\n shouldShowPrevious = showPreviousButton;\n }\n\n const previousClassName = shouldShowPrevious\n ? classNames.navButtonPrev\n : `${classNames.navButtonPrev} ${classNames.navButtonInteractionDisabled}`;\n\n const nextClassName = shouldShowNext\n ? classNames.navButtonNext\n : `${classNames.navButtonNext} ${classNames.navButtonInteractionDisabled}`;\n\n const previousButton = (\n \n );\n\n const nextButton = (\n \n );\n\n return (\n
\n {dir === 'rtl'\n ? [nextButton, previousButton]\n : [previousButton, nextButton]}\n
\n );\n }\n}\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nexport default class Weekday extends Component {\n static propTypes = {\n weekday: PropTypes.number,\n className: PropTypes.string,\n locale: PropTypes.string,\n localeUtils: PropTypes.object,\n\n weekdaysLong: PropTypes.arrayOf(PropTypes.string),\n weekdaysShort: PropTypes.arrayOf(PropTypes.string),\n };\n\n shouldComponentUpdate(nextProps) {\n return this.props !== nextProps;\n }\n\n render() {\n const {\n weekday,\n className,\n weekdaysLong,\n weekdaysShort,\n localeUtils,\n locale,\n } = this.props;\n let title;\n if (weekdaysLong) {\n title = weekdaysLong[weekday];\n } else {\n title = localeUtils.formatWeekdayLong(weekday, locale);\n }\n let content;\n if (weekdaysShort) {\n content = weekdaysShort[weekday];\n } else {\n content = localeUtils.formatWeekdayShort(weekday, locale);\n }\n\n return (\n
\n {content}\n
\n );\n }\n}\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nexport default class Weekdays extends Component {\n static propTypes = {\n classNames: PropTypes.shape({\n weekday: PropTypes.string.isRequired,\n weekdays: PropTypes.string.isRequired,\n weekdaysRow: PropTypes.string.isRequired,\n }).isRequired,\n\n firstDayOfWeek: PropTypes.number.isRequired,\n weekdaysLong: PropTypes.arrayOf(PropTypes.string),\n weekdaysShort: PropTypes.arrayOf(PropTypes.string),\n showWeekNumbers: PropTypes.bool,\n locale: PropTypes.string.isRequired,\n localeUtils: PropTypes.object.isRequired,\n weekdayElement: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n PropTypes.instanceOf(React.Component),\n ]),\n };\n\n shouldComponentUpdate(nextProps) {\n return this.props !== nextProps;\n }\n\n render() {\n const {\n classNames,\n firstDayOfWeek,\n showWeekNumbers,\n weekdaysLong,\n weekdaysShort,\n locale,\n localeUtils,\n weekdayElement,\n } = this.props;\n const days = [];\n for (let i = 0; i < 7; i += 1) {\n const weekday = (i + firstDayOfWeek) % 7;\n const elementProps = {\n key: i,\n className: classNames.weekday,\n weekday,\n weekdaysLong,\n weekdaysShort,\n localeUtils,\n locale,\n };\n const element = React.isValidElement(weekdayElement)\n ? React.cloneElement(weekdayElement, elementProps)\n : React.createElement(weekdayElement, elementProps);\n days.push(element);\n }\n\n return (\n
\n
\n {showWeekNumbers &&
}\n {days}\n
\n
\n );\n }\n}\n","// Proxy object to map classnames when css modules are not used\n\nexport default {\n container: 'DayPicker',\n wrapper: 'DayPicker-wrapper',\n interactionDisabled: 'DayPicker--interactionDisabled',\n months: 'DayPicker-Months',\n month: 'DayPicker-Month',\n\n navBar: 'DayPicker-NavBar',\n navButtonPrev: 'DayPicker-NavButton DayPicker-NavButton--prev',\n navButtonNext: 'DayPicker-NavButton DayPicker-NavButton--next',\n navButtonInteractionDisabled: 'DayPicker-NavButton--interactionDisabled',\n\n caption: 'DayPicker-Caption',\n weekdays: 'DayPicker-Weekdays',\n weekdaysRow: 'DayPicker-WeekdaysRow',\n weekday: 'DayPicker-Weekday',\n body: 'DayPicker-Body',\n week: 'DayPicker-Week',\n weekNumber: 'DayPicker-WeekNumber',\n day: 'DayPicker-Day',\n footer: 'DayPicker-Footer',\n todayButton: 'DayPicker-TodayButton',\n\n // default modifiers\n today: 'today',\n selected: 'selected',\n disabled: 'disabled',\n outside: 'outside',\n};\n","export { default } from './DayPicker';\nexport { default as DateUtils } from './DateUtils';\nexport { default as LocaleUtils } from './LocaleUtils';\nexport { default as ModifiersUtils } from './ModifiersUtils';\n","export const LEFT = 37;\nexport const UP = 38;\nexport const RIGHT = 39;\nexport const DOWN = 40;\nexport const ENTER = 13;\nexport const SPACE = 32;\nexport const ESC = 27;\nexport const TAB = 9;\n","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.3\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n // START: Modifications:\n // Apply guards for `Object.create(null)` handling. See:\n // - https://github.com/FormidableLabs/react-fast-compare/issues/64\n // - https://github.com/epoberezkin/fast-deep-equal/issues/49\n if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();\n // END: Modifications\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","'use strict';\n\nexports.__esModule = true;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _gud = require('gud');\n\nvar _gud2 = _interopRequireDefault(_gud);\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\n\n// Inlined Object.is polyfill.\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = '__create-react-context-' + (0, _gud2.default)() + '__';\n\n var Provider = function (_Component) {\n _inherits(Provider, _Component);\n\n function Provider() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, Provider);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.emitter = createEventEmitter(_this.props.value), _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n Provider.prototype.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n Provider.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits = void 0;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0; // No change\n } else {\n changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n if (process.env.NODE_ENV !== 'production') {\n (0, _warning2.default)((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: %s', changedBits);\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n Provider.prototype.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(_react.Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = _propTypes2.default.object.isRequired, _Provider$childContex);\n\n var Consumer = function (_Component2) {\n _inherits(Consumer, _Component2);\n\n function Consumer() {\n var _temp2, _this2, _ret2;\n\n _classCallCheck(this, Consumer);\n\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _ret2 = (_temp2 = (_this2 = _possibleConstructorReturn(this, _Component2.call.apply(_Component2, [this].concat(args))), _this2), _this2.state = {\n value: _this2.getValue()\n }, _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({ value: _this2.getValue() });\n }\n }, _temp2), _possibleConstructorReturn(_this2, _ret2);\n }\n\n Consumer.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n };\n\n Consumer.prototype.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n var observedBits = this.props.observedBits;\n\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n };\n\n Consumer.prototype.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n Consumer.prototype.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n Consumer.prototype.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(_react.Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = _propTypes2.default.object, _Consumer$contextType);\n\n\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\nexports.default = createReactContext;\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _implementation = require('./implementation');\n\nvar _implementation2 = _interopRequireDefault(_implementation);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _react2.default.createContext || _implementation2.default;\nmodule.exports = exports['default'];","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n","'use strict';\n\nvar bind = require('function-bind');\nvar GetIntrinsic = require('get-intrinsic');\nvar setFunctionLength = require('set-function-length');\n\nvar $TypeError = require('es-errors/type');\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $defineProperty = require('es-define-property');\nvar $max = GetIntrinsic('%Math.max%');\n\nmodule.exports = function callBind(originalFunction) {\n\tif (typeof originalFunction !== 'function') {\n\t\tthrow new $TypeError('a function is required');\n\t}\n\tvar func = $reflectApply(bind, $call, arguments);\n\treturn setFunctionLength(\n\t\tfunc,\n\t\t1 + $max(0, originalFunction.length - (arguments.length - 1)),\n\t\ttrue\n\t);\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = addLeadingZeros;\nfunction addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n while (output.length < targetLength) {\n output = '0' + output;\n }\n return sign + output;\n}\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = assign;\nfunction assign(target, object) {\n if (target == null) {\n throw new TypeError('assign requires that input parameter not be null or undefined');\n }\n for (var property in object) {\n if (Object.prototype.hasOwnProperty.call(object, property)) {\n ;\n target[property] = object[property];\n }\n }\n return target;\n}\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = cloneObject;\nvar _index = _interopRequireDefault(require(\"../assign/index.js\"));\nfunction cloneObject(object) {\n return (0, _index.default)({}, object);\n}\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _index = _interopRequireDefault(require(\"../../locale/en-US/index.js\"));\nvar _default = _index.default;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getDefaultOptions = getDefaultOptions;\nexports.setDefaultOptions = setDefaultOptions;\nvar defaultOptions = {};\nfunction getDefaultOptions() {\n return defaultOptions;\n}\nfunction setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _index = _interopRequireDefault(require(\"../../../_lib/getUTCDayOfYear/index.js\"));\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/getUTCISOWeek/index.js\"));\nvar _index3 = _interopRequireDefault(require(\"../../../_lib/getUTCISOWeekYear/index.js\"));\nvar _index4 = _interopRequireDefault(require(\"../../../_lib/getUTCWeek/index.js\"));\nvar _index5 = _interopRequireDefault(require(\"../../../_lib/getUTCWeekYear/index.js\"));\nvar _index6 = _interopRequireDefault(require(\"../../addLeadingZeros/index.js\"));\nvar _index7 = _interopRequireDefault(require(\"../lightFormatters/index.js\"));\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n};\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nvar formatters = {\n // Era\n G: function G(date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function y(date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n return _index7.default.y(date, token);\n },\n // Local week-numbering year\n Y: function Y(date, token, localize, options) {\n var signedWeekYear = (0, _index5.default)(date, options);\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return (0, _index6.default)(twoDigitYear, 2);\n }\n\n // Ordinal number\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n }\n\n // Padding\n return (0, _index6.default)(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function R(date, token) {\n var isoWeekYear = (0, _index3.default)(date);\n\n // Padding\n return (0, _index6.default)(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function u(date, token) {\n var year = date.getUTCFullYear();\n return (0, _index6.default)(year, token.length);\n },\n // Quarter\n Q: function Q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'QQ':\n return (0, _index6.default)(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'qq':\n return (0, _index6.default)(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function M(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n case 'M':\n case 'MM':\n return _index7.default.M(date, token);\n // 1st, 2nd, ..., 12th\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function L(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n case 'LL':\n return (0, _index6.default)(month + 1, 2);\n // 1st, 2nd, ..., 12th\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function w(date, token, localize, options) {\n var week = (0, _index4.default)(date, options);\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n return (0, _index6.default)(week, token.length);\n },\n // ISO week of year\n I: function I(date, token, localize) {\n var isoWeek = (0, _index2.default)(date);\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n return (0, _index6.default)(isoWeek, token.length);\n },\n // Day of the month\n d: function d(date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n return _index7.default.d(date, token);\n },\n // Day of year\n D: function D(date, token, localize) {\n var dayOfYear = (0, _index.default)(date);\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n return (0, _index6.default)(dayOfYear, token.length);\n },\n // Day of week\n E: function E(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function e(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'ee':\n return (0, _index6.default)(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function c(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'cc':\n return (0, _index6.default)(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function i(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n case 'ii':\n return (0, _index6.default)(isoDayOfWeek, token.length);\n // 2nd\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function a(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function b(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n switch (token) {\n case 'b':\n case 'bb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function B(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function h(date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return _index7.default.h(date, token);\n },\n // Hour [0-23]\n H: function H(date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n return _index7.default.H(date, token);\n },\n // Hour [0-11]\n K: function K(date, token, localize) {\n var hours = date.getUTCHours() % 12;\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return (0, _index6.default)(hours, token.length);\n },\n // Hour [1-24]\n k: function k(date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return (0, _index6.default)(hours, token.length);\n },\n // Minute\n m: function m(date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n return _index7.default.m(date, token);\n },\n // Second\n s: function s(date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n return _index7.default.s(date, token);\n },\n // Fraction of second\n S: function S(date, token) {\n return _index7.default.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function X(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n if (timezoneOffset === 0) {\n return 'Z';\n }\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function x(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function O(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function z(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function t(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return (0, _index6.default)(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function T(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return (0, _index6.default)(timestamp, token.length);\n }\n};\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + (0, _index6.default)(minutes, 2);\n}\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + (0, _index6.default)(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, dirtyDelimiter);\n}\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = (0, _index6.default)(Math.floor(absOffset / 60), 2);\n var minutes = (0, _index6.default)(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\nvar _default = formatters;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _index = _interopRequireDefault(require(\"../../addLeadingZeros/index.js\"));\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nvar formatters = {\n // Year\n y: function y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return (0, _index.default)(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function M(date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : (0, _index.default)(month + 1, 2);\n },\n // Day of the month\n d: function d(date, token) {\n return (0, _index.default)(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function a(date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return dayPeriodEnumValue.toUpperCase();\n case 'aaa':\n return dayPeriodEnumValue;\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function h(date, token) {\n return (0, _index.default)(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function H(date, token) {\n return (0, _index.default)(date.getUTCHours(), token.length);\n },\n // Minute\n m: function m(date, token) {\n return (0, _index.default)(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function s(date, token) {\n return (0, _index.default)(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function S(date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return (0, _index.default)(fractionalSeconds, token.length);\n }\n};\nvar _default = formatters;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar dateLongFormatter = function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n};\nvar timeLongFormatter = function timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n};\nvar dateTimeLongFormatter = function dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/) || [];\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n var dateTimeFormat;\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n};\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nvar _default = longFormatters;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = getTimezoneOffsetInMilliseconds;\n/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nfunction getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = getUTCDayOfYear;\nvar _index = _interopRequireDefault(require(\"../../toDate/index.js\"));\nvar _index2 = _interopRequireDefault(require(\"../requiredArgs/index.js\"));\nvar MILLISECONDS_IN_DAY = 86400000;\nfunction getUTCDayOfYear(dirtyDate) {\n (0, _index2.default)(1, arguments);\n var date = (0, _index.default)(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = getUTCISOWeek;\nvar _index = _interopRequireDefault(require(\"../../toDate/index.js\"));\nvar _index2 = _interopRequireDefault(require(\"../startOfUTCISOWeek/index.js\"));\nvar _index3 = _interopRequireDefault(require(\"../startOfUTCISOWeekYear/index.js\"));\nvar _index4 = _interopRequireDefault(require(\"../requiredArgs/index.js\"));\nvar MILLISECONDS_IN_WEEK = 604800000;\nfunction getUTCISOWeek(dirtyDate) {\n (0, _index4.default)(1, arguments);\n var date = (0, _index.default)(dirtyDate);\n var diff = (0, _index2.default)(date).getTime() - (0, _index3.default)(date).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = getUTCISOWeekYear;\nvar _index = _interopRequireDefault(require(\"../../toDate/index.js\"));\nvar _index2 = _interopRequireDefault(require(\"../requiredArgs/index.js\"));\nvar _index3 = _interopRequireDefault(require(\"../startOfUTCISOWeek/index.js\"));\nfunction getUTCISOWeekYear(dirtyDate) {\n (0, _index2.default)(1, arguments);\n var date = (0, _index.default)(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = (0, _index3.default)(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = (0, _index3.default)(fourthOfJanuaryOfThisYear);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = getUTCWeek;\nvar _index = _interopRequireDefault(require(\"../../toDate/index.js\"));\nvar _index2 = _interopRequireDefault(require(\"../startOfUTCWeek/index.js\"));\nvar _index3 = _interopRequireDefault(require(\"../startOfUTCWeekYear/index.js\"));\nvar _index4 = _interopRequireDefault(require(\"../requiredArgs/index.js\"));\nvar MILLISECONDS_IN_WEEK = 604800000;\nfunction getUTCWeek(dirtyDate, options) {\n (0, _index4.default)(1, arguments);\n var date = (0, _index.default)(dirtyDate);\n var diff = (0, _index2.default)(date, options).getTime() - (0, _index3.default)(date, options).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = getUTCWeekYear;\nvar _index = _interopRequireDefault(require(\"../../toDate/index.js\"));\nvar _index2 = _interopRequireDefault(require(\"../requiredArgs/index.js\"));\nvar _index3 = _interopRequireDefault(require(\"../startOfUTCWeek/index.js\"));\nvar _index4 = _interopRequireDefault(require(\"../toInteger/index.js\"));\nvar _index5 = require(\"../defaultOptions/index.js\");\nfunction getUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n (0, _index2.default)(1, arguments);\n var date = (0, _index.default)(dirtyDate);\n var year = date.getUTCFullYear();\n var defaultOptions = (0, _index5.getDefaultOptions)();\n var firstWeekContainsDate = (0, _index4.default)((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = (0, _index3.default)(firstWeekOfNextYear, options);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = (0, _index3.default)(firstWeekOfThisYear, options);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isProtectedDayOfYearToken = isProtectedDayOfYearToken;\nexports.isProtectedWeekYearToken = isProtectedWeekYearToken;\nexports.throwProtectedError = throwProtectedError;\nvar protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nfunction isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nfunction isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nfunction throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = requiredArgs;\nfunction requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = startOfUTCISOWeek;\nvar _index = _interopRequireDefault(require(\"../../toDate/index.js\"));\nvar _index2 = _interopRequireDefault(require(\"../requiredArgs/index.js\"));\nfunction startOfUTCISOWeek(dirtyDate) {\n (0, _index2.default)(1, arguments);\n var weekStartsOn = 1;\n var date = (0, _index.default)(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = startOfUTCISOWeekYear;\nvar _index = _interopRequireDefault(require(\"../getUTCISOWeekYear/index.js\"));\nvar _index2 = _interopRequireDefault(require(\"../startOfUTCISOWeek/index.js\"));\nvar _index3 = _interopRequireDefault(require(\"../requiredArgs/index.js\"));\nfunction startOfUTCISOWeekYear(dirtyDate) {\n (0, _index3.default)(1, arguments);\n var year = (0, _index.default)(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = (0, _index2.default)(fourthOfJanuary);\n return date;\n}\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = startOfUTCWeek;\nvar _index = _interopRequireDefault(require(\"../../toDate/index.js\"));\nvar _index2 = _interopRequireDefault(require(\"../requiredArgs/index.js\"));\nvar _index3 = _interopRequireDefault(require(\"../toInteger/index.js\"));\nvar _index4 = require(\"../defaultOptions/index.js\");\nfunction startOfUTCWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n (0, _index2.default)(1, arguments);\n var defaultOptions = (0, _index4.getDefaultOptions)();\n var weekStartsOn = (0, _index3.default)((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n var date = (0, _index.default)(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = startOfUTCWeekYear;\nvar _index = _interopRequireDefault(require(\"../getUTCWeekYear/index.js\"));\nvar _index2 = _interopRequireDefault(require(\"../requiredArgs/index.js\"));\nvar _index3 = _interopRequireDefault(require(\"../startOfUTCWeek/index.js\"));\nvar _index4 = _interopRequireDefault(require(\"../toInteger/index.js\"));\nvar _index5 = require(\"../defaultOptions/index.js\");\nfunction startOfUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n (0, _index2.default)(1, arguments);\n var defaultOptions = (0, _index5.getDefaultOptions)();\n var firstWeekContainsDate = (0, _index4.default)((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n var year = (0, _index.default)(dirtyDate, options);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = (0, _index3.default)(firstWeek, options);\n return date;\n}\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toInteger;\nfunction toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n var number = Number(dirtyNumber);\n if (isNaN(number)) {\n return number;\n }\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = addMilliseconds;\nvar _index = _interopRequireDefault(require(\"../_lib/toInteger/index.js\"));\nvar _index2 = _interopRequireDefault(require(\"../toDate/index.js\"));\nvar _index3 = _interopRequireDefault(require(\"../_lib/requiredArgs/index.js\"));\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\nfunction addMilliseconds(dirtyDate, dirtyAmount) {\n (0, _index3.default)(2, arguments);\n var timestamp = (0, _index2.default)(dirtyDate).getTime();\n var amount = (0, _index.default)(dirtyAmount);\n return new Date(timestamp + amount);\n}\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = format;\nvar _index = _interopRequireDefault(require(\"../isValid/index.js\"));\nvar _index2 = _interopRequireDefault(require(\"../subMilliseconds/index.js\"));\nvar _index3 = _interopRequireDefault(require(\"../toDate/index.js\"));\nvar _index4 = _interopRequireDefault(require(\"../_lib/format/formatters/index.js\"));\nvar _index5 = _interopRequireDefault(require(\"../_lib/format/longFormatters/index.js\"));\nvar _index6 = _interopRequireDefault(require(\"../_lib/getTimezoneOffsetInMilliseconds/index.js\"));\nvar _index7 = require(\"../_lib/protectedTokens/index.js\");\nvar _index8 = _interopRequireDefault(require(\"../_lib/toInteger/index.js\"));\nvar _index9 = _interopRequireDefault(require(\"../_lib/requiredArgs/index.js\"));\nvar _index10 = require(\"../_lib/defaultOptions/index.js\");\nvar _index11 = _interopRequireDefault(require(\"../_lib/defaultLocale/index.js\"));\n// This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nfunction format(dirtyDate, dirtyFormatStr, options) {\n var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;\n (0, _index9.default)(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var defaultOptions = (0, _index10.getDefaultOptions)();\n var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : _index11.default;\n var firstWeekContainsDate = (0, _index8.default)((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var weekStartsOn = (0, _index8.default)((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n var originalDate = (0, _index3.default)(dirtyDate);\n if (!(0, _index.default)(originalDate)) {\n throw new RangeError('Invalid time value');\n }\n\n // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n var timezoneOffset = (0, _index6.default)(originalDate);\n var utcDate = (0, _index2.default)(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = _index5.default[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n var firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n var formatter = _index4.default[firstCharacter];\n if (formatter) {\n if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && (0, _index7.isProtectedWeekYearToken)(substring)) {\n (0, _index7.throwProtectedError)(substring, dirtyFormatStr, String(dirtyDate));\n }\n if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && (0, _index7.isProtectedDayOfYearToken)(substring)) {\n (0, _index7.throwProtectedError)(substring, dirtyFormatStr, String(dirtyDate));\n }\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n return substring;\n }).join('');\n return result;\n}\nfunction cleanEscapedString(input) {\n var matched = input.match(escapedStringRegExp);\n if (!matched) {\n return input;\n }\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isDate;\nvar _typeof2 = _interopRequireDefault(require(\"@babel/runtime/helpers/typeof\"));\nvar _index = _interopRequireDefault(require(\"../_lib/requiredArgs/index.js\"));\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nfunction isDate(value) {\n (0, _index.default)(1, arguments);\n return value instanceof Date || (0, _typeof2.default)(value) === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isValid;\nvar _index = _interopRequireDefault(require(\"../isDate/index.js\"));\nvar _index2 = _interopRequireDefault(require(\"../toDate/index.js\"));\nvar _index3 = _interopRequireDefault(require(\"../_lib/requiredArgs/index.js\"));\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nfunction isValid(dirtyDate) {\n (0, _index3.default)(1, arguments);\n if (!(0, _index.default)(dirtyDate) && typeof dirtyDate !== 'number') {\n return false;\n }\n var date = (0, _index2.default)(dirtyDate);\n return !isNaN(Number(date));\n}\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = buildFormatLongFn;\nfunction buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO: Remove String()\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = buildLocalizeFn;\nfunction buildLocalizeFn(args) {\n return function (dirtyIndex, options) {\n var context = options !== null && options !== void 0 && options.context ? String(options.context) : 'standalone';\n var valuesArray;\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options !== null && options !== void 0 && options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n var _width = options !== null && options !== void 0 && options.width ? String(options.width) : args.defaultWidth;\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex;\n // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = buildMatchFn;\nfunction buildMatchFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n if (!matchResult) {\n return null;\n }\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n }) : findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n var value;\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n return undefined;\n}\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = buildMatchPatternFn;\nfunction buildMatchPatternFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\nvar formatDistance = function formatDistance(token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', count.toString());\n }\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n return result;\n};\nvar _default = formatDistance;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\nvar formatRelative = function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\nvar _default = formatRelative;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\nvar ordinalNumber = function ordinalNumber(dirtyNumber, _options) {\n var number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n var rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n case 2:\n return number + 'nd';\n case 3:\n return number + 'rd';\n }\n }\n return number + 'th';\n};\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index2.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: (0, _index.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n code: 'en-US',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = subMilliseconds;\nvar _index = _interopRequireDefault(require(\"../addMilliseconds/index.js\"));\nvar _index2 = _interopRequireDefault(require(\"../_lib/requiredArgs/index.js\"));\nvar _index3 = _interopRequireDefault(require(\"../_lib/toInteger/index.js\"));\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\nfunction subMilliseconds(dirtyDate, dirtyAmount) {\n (0, _index2.default)(2, arguments);\n var amount = (0, _index3.default)(dirtyAmount);\n return (0, _index.default)(dirtyDate, -amount);\n}\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toDate;\nvar _typeof2 = _interopRequireDefault(require(\"@babel/runtime/helpers/typeof\"));\nvar _index = _interopRequireDefault(require(\"../_lib/requiredArgs/index.js\"));\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nfunction toDate(argument) {\n (0, _index.default)(1, arguments);\n var argStr = Object.prototype.toString.call(argument);\n\n // Clone the date\n if (argument instanceof Date || (0, _typeof2.default)(argument) === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments\");\n // eslint-disable-next-line no-console\n console.warn(new Error().stack);\n }\n return new Date(NaN);\n }\n}\nmodule.exports = exports.default;","var objectKeys = require('object-keys');\nvar isArguments = require('is-arguments');\nvar is = require('object-is');\nvar isRegex = require('is-regex');\nvar flags = require('regexp.prototype.flags');\nvar isDate = require('is-date-object');\n\nvar getTime = Date.prototype.getTime;\n\nfunction deepEqual(actual, expected, options) {\n var opts = options || {};\n\n // 7.1. All identical values are equivalent, as determined by ===.\n if (opts.strict ? is(actual, expected) : actual === expected) {\n return true;\n }\n\n // 7.3. Other pairs that do not both pass typeof value == 'object', equivalence is determined by ==.\n if (!actual || !expected || (typeof actual !== 'object' && typeof expected !== 'object')) {\n return opts.strict ? is(actual, expected) : actual == expected;\n }\n\n /*\n * 7.4. For all other Object pairs, including Array objects, equivalence is\n * determined by having the same number of owned properties (as verified\n * with Object.prototype.hasOwnProperty.call), the same set of keys\n * (although not necessarily the same order), equivalent values for every\n * corresponding key, and an identical 'prototype' property. Note: this\n * accounts for both named and indexed properties on Arrays.\n */\n // eslint-disable-next-line no-use-before-define\n return objEquiv(actual, expected, opts);\n}\n\nfunction isUndefinedOrNull(value) {\n return value === null || value === undefined;\n}\n\nfunction isBuffer(x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') {\n return false;\n }\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') {\n return false;\n }\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n /* eslint max-statements: [2, 50] */\n var i, key;\n if (typeof a !== typeof b) { return false; }\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b)) { return false; }\n\n // an identical 'prototype' property.\n if (a.prototype !== b.prototype) { return false; }\n\n if (isArguments(a) !== isArguments(b)) { return false; }\n\n var aIsRegex = isRegex(a);\n var bIsRegex = isRegex(b);\n if (aIsRegex !== bIsRegex) { return false; }\n if (aIsRegex || bIsRegex) {\n return a.source === b.source && flags(a) === flags(b);\n }\n\n if (isDate(a) && isDate(b)) {\n return getTime.call(a) === getTime.call(b);\n }\n\n var aIsBuffer = isBuffer(a);\n var bIsBuffer = isBuffer(b);\n if (aIsBuffer !== bIsBuffer) { return false; }\n if (aIsBuffer || bIsBuffer) { // && would work too, because both are true or both false here\n if (a.length !== b.length) { return false; }\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) { return false; }\n }\n return true;\n }\n\n if (typeof a !== typeof b) { return false; }\n\n try {\n var ka = objectKeys(a);\n var kb = objectKeys(b);\n } catch (e) { // happens when one is a string literal and the other isn't\n return false;\n }\n // having the same number of owned properties (keys incorporates hasOwnProperty)\n if (ka.length !== kb.length) { return false; }\n\n // the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n // ~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i]) { return false; }\n }\n // equivalent values for every corresponding key, and ~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!deepEqual(a[key], b[key], opts)) { return false; }\n }\n\n return true;\n}\n\nmodule.exports = deepEqual;\n","'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn Object.propertyIsEnumerable.call(target, symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n","'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\n\nvar gopd = require('gopd');\n\n/** @type {import('.')} */\nmodule.exports = function defineDataProperty(\n\tobj,\n\tproperty,\n\tvalue\n) {\n\tif (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) {\n\t\tthrow new $TypeError('`obj` must be an object or a function`');\n\t}\n\tif (typeof property !== 'string' && typeof property !== 'symbol') {\n\t\tthrow new $TypeError('`property` must be a string or a symbol`');\n\t}\n\tif (arguments.length > 3 && typeof arguments[3] !== 'boolean' && arguments[3] !== null) {\n\t\tthrow new $TypeError('`nonEnumerable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 4 && typeof arguments[4] !== 'boolean' && arguments[4] !== null) {\n\t\tthrow new $TypeError('`nonWritable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 5 && typeof arguments[5] !== 'boolean' && arguments[5] !== null) {\n\t\tthrow new $TypeError('`nonConfigurable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 6 && typeof arguments[6] !== 'boolean') {\n\t\tthrow new $TypeError('`loose`, if provided, must be a boolean');\n\t}\n\n\tvar nonEnumerable = arguments.length > 3 ? arguments[3] : null;\n\tvar nonWritable = arguments.length > 4 ? arguments[4] : null;\n\tvar nonConfigurable = arguments.length > 5 ? arguments[5] : null;\n\tvar loose = arguments.length > 6 ? arguments[6] : false;\n\n\t/* @type {false | TypedPropertyDescriptor} */\n\tvar desc = !!gopd && gopd(obj, property);\n\n\tif ($defineProperty) {\n\t\t$defineProperty(obj, property, {\n\t\t\tconfigurable: nonConfigurable === null && desc ? desc.configurable : !nonConfigurable,\n\t\t\tenumerable: nonEnumerable === null && desc ? desc.enumerable : !nonEnumerable,\n\t\t\tvalue: value,\n\t\t\twritable: nonWritable === null && desc ? desc.writable : !nonWritable\n\t\t});\n\t} else if (loose || (!nonEnumerable && !nonWritable && !nonConfigurable)) {\n\t\t// must fall back to [[Set]], and was not explicitly asked to make non-enumerable, non-writable, or non-configurable\n\t\tobj[property] = value; // eslint-disable-line no-param-reassign\n\t} else {\n\t\tthrow new $SyntaxError('This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.');\n\t}\n};\n","'use strict';\n\nvar keys = require('object-keys');\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';\n\nvar toStr = Object.prototype.toString;\nvar concat = Array.prototype.concat;\nvar defineDataProperty = require('define-data-property');\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar supportsDescriptors = require('has-property-descriptors')();\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object) {\n\t\tif (predicate === true) {\n\t\t\tif (object[name] === value) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t} else if (!isFunction(predicate) || !predicate()) {\n\t\t\treturn;\n\t\t}\n\t}\n\n\tif (supportsDescriptors) {\n\t\tdefineDataProperty(object, name, value, true);\n\t} else {\n\t\tdefineDataProperty(object, name, value);\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = concat.call(props, Object.getOwnPropertySymbols(map));\n\t}\n\tfor (var i = 0; i < props.length; i += 1) {\n\t\tdefineProperty(object, props[i], map[props[i]], predicates[props[i]]);\n\t}\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n","/*!\nCopyright (C) 2013-2015 by Andrea Giammarchi - @WebReflection\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n*/\n(function(window){'use strict';\n /* jshint loopfunc: true, noempty: false*/\n // http://www.w3.org/TR/dom/#element\n\n function createDocumentFragment() {\n return document.createDocumentFragment();\n }\n\n function createElement(nodeName) {\n return document.createElement(nodeName);\n }\n\n function enoughArguments(length, name) {\n if (!length) throw new Error(\n 'Failed to construct ' +\n name +\n ': 1 argument required, but only 0 present.'\n );\n }\n\n function mutationMacro(nodes) {\n if (nodes.length === 1) {\n return textNodeIfPrimitive(nodes[0]);\n }\n for (var\n fragment = createDocumentFragment(),\n list = slice.call(nodes),\n i = 0; i < nodes.length; i++\n ) {\n fragment.appendChild(textNodeIfPrimitive(list[i]));\n }\n return fragment;\n }\n\n function textNodeIfPrimitive(node) {\n return typeof node === 'object' ? node : document.createTextNode(node);\n }\n\n for(var\n head,\n property,\n TemporaryPrototype,\n TemporaryTokenList,\n wrapVerifyToken,\n document = window.document,\n hOP = Object.prototype.hasOwnProperty,\n defineProperty = Object.defineProperty || function (object, property, descriptor) {\n if (hOP.call(descriptor, 'value')) {\n object[property] = descriptor.value;\n } else {\n if (hOP.call(descriptor, 'get'))\n object.__defineGetter__(property, descriptor.get);\n if (hOP.call(descriptor, 'set'))\n object.__defineSetter__(property, descriptor.set);\n }\n return object;\n },\n indexOf = [].indexOf || function indexOf(value){\n var length = this.length;\n while(length--) {\n if (this[length] === value) {\n break;\n }\n }\n return length;\n },\n // http://www.w3.org/TR/domcore/#domtokenlist\n verifyToken = function (token) {\n if (!token) {\n throw 'SyntaxError';\n } else if (spaces.test(token)) {\n throw 'InvalidCharacterError';\n }\n return token;\n },\n DOMTokenList = function (node) {\n var\n noClassName = typeof node.className === 'undefined',\n className = noClassName ?\n (node.getAttribute('class') || '') : node.className,\n isSVG = noClassName || typeof className === 'object',\n value = (isSVG ?\n (noClassName ? className : className.baseVal) :\n className\n ).replace(trim, '')\n ;\n if (value.length) {\n properties.push.apply(\n this,\n value.split(spaces)\n );\n }\n this._isSVG = isSVG;\n this._ = node;\n },\n classListDescriptor = {\n get: function get() {\n return new DOMTokenList(this);\n },\n set: function(){}\n },\n trim = /^\\s+|\\s+$/g,\n spaces = /\\s+/,\n SPACE = '\\x20',\n CLASS_LIST = 'classList',\n toggle = function toggle(token, force) {\n if (this.contains(token)) {\n if (!force) {\n // force is not true (either false or omitted)\n this.remove(token);\n }\n } else if(force === undefined || force) {\n force = true;\n this.add(token);\n }\n return !!force;\n },\n DocumentFragmentPrototype = window.DocumentFragment && DocumentFragment.prototype,\n Node = window.Node,\n NodePrototype = (Node || Element).prototype,\n CharacterData = window.CharacterData || Node,\n CharacterDataPrototype = CharacterData && CharacterData.prototype,\n DocumentType = window.DocumentType,\n DocumentTypePrototype = DocumentType && DocumentType.prototype,\n ElementPrototype = (window.Element || Node || window.HTMLElement).prototype,\n HTMLSelectElement = window.HTMLSelectElement || createElement('select').constructor,\n selectRemove = HTMLSelectElement.prototype.remove,\n SVGElement = window.SVGElement,\n properties = [\n 'matches', (\n ElementPrototype.matchesSelector ||\n ElementPrototype.webkitMatchesSelector ||\n ElementPrototype.khtmlMatchesSelector ||\n ElementPrototype.mozMatchesSelector ||\n ElementPrototype.msMatchesSelector ||\n ElementPrototype.oMatchesSelector ||\n function matches(selector) {\n var parentNode = this.parentNode;\n return !!parentNode && -1 < indexOf.call(\n parentNode.querySelectorAll(selector),\n this\n );\n }\n ),\n 'closest', function closest(selector) {\n var parentNode = this, matches;\n while (\n // document has no .matches\n (matches = parentNode && parentNode.matches) &&\n !parentNode.matches(selector)\n ) {\n parentNode = parentNode.parentNode;\n }\n return matches ? parentNode : null;\n },\n 'prepend', function prepend() {\n var firstChild = this.firstChild,\n node = mutationMacro(arguments);\n if (firstChild) {\n this.insertBefore(node, firstChild);\n } else {\n this.appendChild(node);\n }\n },\n 'append', function append() {\n this.appendChild(mutationMacro(arguments));\n },\n 'before', function before() {\n var parentNode = this.parentNode;\n if (parentNode) {\n parentNode.insertBefore(\n mutationMacro(arguments), this\n );\n }\n },\n 'after', function after() {\n var parentNode = this.parentNode,\n nextSibling = this.nextSibling,\n node = mutationMacro(arguments);\n if (parentNode) {\n if (nextSibling) {\n parentNode.insertBefore(node, nextSibling);\n } else {\n parentNode.appendChild(node);\n }\n }\n },\n // https://dom.spec.whatwg.org/#dom-element-toggleattribute\n 'toggleAttribute', function toggleAttribute(name, force) {\n var had = this.hasAttribute(name);\n if (1 < arguments.length) {\n if (had && !force)\n this.removeAttribute(name);\n else if (force && !had)\n this.setAttribute(name, \"\");\n }\n else if (had)\n this.removeAttribute(name);\n else\n this.setAttribute(name, \"\");\n return this.hasAttribute(name);\n },\n // WARNING - DEPRECATED - use .replaceWith() instead\n 'replace', function replace() {\n this.replaceWith.apply(this, arguments);\n },\n 'replaceWith', function replaceWith() {\n var parentNode = this.parentNode;\n if (parentNode) {\n parentNode.replaceChild(\n mutationMacro(arguments),\n this\n );\n }\n },\n 'remove', function remove() {\n var parentNode = this.parentNode;\n if (parentNode) {\n parentNode.removeChild(this);\n }\n }\n ],\n slice = properties.slice,\n i = properties.length; i; i -= 2\n ) {\n property = properties[i - 2];\n if (!(property in ElementPrototype)) {\n ElementPrototype[property] = properties[i - 1];\n }\n // avoid unnecessary re-patch when the script is included\n // gazillion times without any reason whatsoever\n // https://github.com/WebReflection/dom4/pull/48\n if (property === 'remove' && !selectRemove._dom4) {\n // see https://github.com/WebReflection/dom4/issues/19\n (HTMLSelectElement.prototype[property] = function () {\n return 0 < arguments.length ?\n selectRemove.apply(this, arguments) :\n ElementPrototype.remove.call(this);\n })._dom4 = true;\n }\n // see https://github.com/WebReflection/dom4/issues/18\n if (/^(?:before|after|replace|replaceWith|remove)$/.test(property)) {\n if (CharacterData && !(property in CharacterDataPrototype)) {\n CharacterDataPrototype[property] = properties[i - 1];\n }\n if (DocumentType && !(property in DocumentTypePrototype)) {\n DocumentTypePrototype[property] = properties[i - 1];\n }\n }\n // see https://github.com/WebReflection/dom4/pull/26\n if (/^(?:append|prepend)$/.test(property)) {\n if (DocumentFragmentPrototype) {\n if (!(property in DocumentFragmentPrototype)) {\n DocumentFragmentPrototype[property] = properties[i - 1];\n }\n } else {\n try {\n createDocumentFragment().constructor.prototype[property] = properties[i - 1];\n } catch(o_O) {}\n }\n }\n }\n\n // most likely an IE9 only issue\n // see https://github.com/WebReflection/dom4/issues/6\n if (!createElement('a').matches('a')) {\n ElementPrototype[property] = function(matches){\n return function (selector) {\n return matches.call(\n this.parentNode ?\n this :\n createDocumentFragment().appendChild(this),\n selector\n );\n };\n }(ElementPrototype[property]);\n }\n\n // used to fix both old webkit and SVG\n DOMTokenList.prototype = {\n length: 0,\n add: function add() {\n for(var j = 0, token; j < arguments.length; j++) {\n token = arguments[j];\n if(!this.contains(token)) {\n properties.push.call(this, property);\n }\n }\n if (this._isSVG) {\n this._.setAttribute('class', '' + this);\n } else {\n this._.className = '' + this;\n }\n },\n contains: (function(indexOf){\n return function contains(token) {\n i = indexOf.call(this, property = verifyToken(token));\n return -1 < i;\n };\n }([].indexOf || function (token) {\n i = this.length;\n while(i-- && this[i] !== token){}\n return i;\n })),\n item: function item(i) {\n return this[i] || null;\n },\n remove: function remove() {\n for(var j = 0, token; j < arguments.length; j++) {\n token = arguments[j];\n if(this.contains(token)) {\n properties.splice.call(this, i, 1);\n }\n }\n if (this._isSVG) {\n this._.setAttribute('class', '' + this);\n } else {\n this._.className = '' + this;\n }\n },\n toggle: toggle,\n toString: function toString() {\n return properties.join.call(this, SPACE);\n }\n };\n\n if (SVGElement && !(CLASS_LIST in SVGElement.prototype)) {\n defineProperty(SVGElement.prototype, CLASS_LIST, classListDescriptor);\n }\n\n // http://www.w3.org/TR/dom/#domtokenlist\n // iOS 5.1 has completely screwed this property\n // classList in ElementPrototype is false\n // but it's actually there as getter\n if (!(CLASS_LIST in document.documentElement)) {\n defineProperty(ElementPrototype, CLASS_LIST, classListDescriptor);\n } else {\n // iOS 5.1 and Nokia ASHA do not support multiple add or remove\n // trying to detect and fix that in here\n TemporaryTokenList = createElement('div')[CLASS_LIST];\n TemporaryTokenList.add('a', 'b', 'a');\n if ('a\\x20b' != TemporaryTokenList) {\n // no other way to reach original methods in iOS 5.1\n TemporaryPrototype = TemporaryTokenList.constructor.prototype;\n if (!('add' in TemporaryPrototype)) {\n // ASHA double fails in here\n TemporaryPrototype = window.TemporaryTokenList.prototype;\n }\n wrapVerifyToken = function (original) {\n return function () {\n var i = 0;\n while (i < arguments.length) {\n original.call(this, arguments[i++]);\n }\n };\n };\n TemporaryPrototype.add = wrapVerifyToken(TemporaryPrototype.add);\n TemporaryPrototype.remove = wrapVerifyToken(TemporaryPrototype.remove);\n // toggle is broken too ^_^ ... let's fix it\n TemporaryPrototype.toggle = toggle;\n }\n }\n\n if (!('contains' in NodePrototype)) {\n defineProperty(NodePrototype, 'contains', {\n value: function (el) {\n while (el && el !== this) el = el.parentNode;\n return this === el;\n }\n });\n }\n\n if (!('head' in document)) {\n defineProperty(document, 'head', {\n get: function () {\n return head || (\n head = document.getElementsByTagName('head')[0]\n );\n }\n });\n }\n\n // requestAnimationFrame partial polyfill\n (function () {\n for (var\n raf,\n rAF = window.requestAnimationFrame,\n cAF = window.cancelAnimationFrame,\n prefixes = ['o', 'ms', 'moz', 'webkit'],\n i = prefixes.length;\n !cAF && i--;\n ) {\n rAF = rAF || window[prefixes[i] + 'RequestAnimationFrame'];\n cAF = window[prefixes[i] + 'CancelAnimationFrame'] ||\n window[prefixes[i] + 'CancelRequestAnimationFrame'];\n }\n if (!cAF) {\n // some FF apparently implemented rAF but no cAF \n if (rAF) {\n raf = rAF;\n rAF = function (callback) {\n var goOn = true;\n raf(function () {\n if (goOn) callback.apply(this, arguments);\n });\n return function () {\n goOn = false;\n };\n };\n cAF = function (id) {\n id();\n };\n } else {\n rAF = function (callback) {\n return setTimeout(callback, 15, 15);\n };\n cAF = function (id) {\n clearTimeout(id);\n };\n }\n }\n window.requestAnimationFrame = rAF;\n window.cancelAnimationFrame = cAF;\n }());\n\n // http://www.w3.org/TR/dom/#customevent\n try{new window.CustomEvent('?');}catch(o_O){\n window.CustomEvent = function(\n eventName,\n defaultInitDict\n ){\n\n // the infamous substitute\n function CustomEvent(type, eventInitDict) {\n /*jshint eqnull:true */\n var event = document.createEvent(eventName);\n if (typeof type != 'string') {\n throw new Error('An event name must be provided');\n }\n if (eventName == 'Event') {\n event.initCustomEvent = initCustomEvent;\n }\n if (eventInitDict == null) {\n eventInitDict = defaultInitDict;\n }\n event.initCustomEvent(\n type,\n eventInitDict.bubbles,\n eventInitDict.cancelable,\n eventInitDict.detail\n );\n return event;\n }\n\n // attached at runtime\n function initCustomEvent(\n type, bubbles, cancelable, detail\n ) {\n /*jshint validthis:true*/\n this.initEvent(type, bubbles, cancelable);\n this.detail = detail;\n }\n\n // that's it\n return CustomEvent;\n }(\n // is this IE9 or IE10 ?\n // where CustomEvent is there\n // but not usable as construtor ?\n window.CustomEvent ?\n // use the CustomEvent interface in such case\n 'CustomEvent' : 'Event',\n // otherwise the common compatible one\n {\n bubbles: false,\n cancelable: false,\n detail: null\n }\n );\n }\n\n // window.Event as constructor\n try { new Event('_'); } catch (o_O) {\n /* jshint -W022 */\n o_O = (function ($Event) {\n function Event(type, init) {\n enoughArguments(arguments.length, 'Event');\n var out = document.createEvent('Event');\n if (!init) init = {};\n out.initEvent(\n type,\n !!init.bubbles,\n !!init.cancelable\n );\n return out;\n }\n Event.prototype = $Event.prototype;\n return Event;\n }(window.Event || function Event() {}));\n defineProperty(window, 'Event', {value: o_O});\n // Android 4 gotcha\n if (Event !== o_O) Event = o_O;\n }\n\n // window.KeyboardEvent as constructor\n try { new KeyboardEvent('_', {}); } catch (o_O) {\n /* jshint -W022 */\n o_O = (function ($KeyboardEvent) {\n // code inspired by https://gist.github.com/termi/4654819\n var\n initType = 0,\n defaults = {\n char: '',\n key: '',\n location: 0,\n ctrlKey: false,\n shiftKey: false,\n altKey: false,\n metaKey: false,\n altGraphKey: false,\n repeat: false,\n locale: navigator.language,\n detail: 0,\n bubbles: false,\n cancelable: false,\n keyCode: 0,\n charCode: 0,\n which: 0\n },\n eventType\n ;\n try {\n var e = document.createEvent('KeyboardEvent');\n e.initKeyboardEvent(\n 'keyup', false, false, window, '+', 3,\n true, false, true, false, false\n );\n initType = (\n (e.keyIdentifier || e.key) == '+' &&\n (e.keyLocation || e.location) == 3\n ) && (\n e.ctrlKey ? e.altKey ? 1 : 3 : e.shiftKey ? 2 : 4\n ) || 9;\n } catch(o_O) {}\n eventType = 0 < initType ? 'KeyboardEvent' : 'Event';\n\n function getModifier(init) {\n for (var\n out = [],\n keys = [\n 'ctrlKey',\n 'Control',\n 'shiftKey',\n 'Shift',\n 'altKey',\n 'Alt',\n 'metaKey',\n 'Meta',\n 'altGraphKey',\n 'AltGraph'\n ],\n i = 0; i < keys.length; i += 2\n ) {\n if (init[keys[i]])\n out.push(keys[i + 1]);\n }\n return out.join(' ');\n }\n\n function withDefaults(target, source) {\n for (var key in source) {\n if (\n source.hasOwnProperty(key) &&\n !source.hasOwnProperty.call(target, key)\n ) target[key] = source[key];\n }\n return target;\n }\n\n function withInitValues(key, out, init) {\n try {\n out[key] = init[key];\n } catch(o_O) {}\n }\n\n function KeyboardEvent(type, init) {\n enoughArguments(arguments.length, 'KeyboardEvent');\n init = withDefaults(init || {}, defaults);\n var\n out = document.createEvent(eventType),\n ctrlKey = init.ctrlKey,\n shiftKey = init.shiftKey,\n altKey = init.altKey,\n metaKey = init.metaKey,\n altGraphKey = init.altGraphKey,\n modifiers = initType > 3 ? getModifier(init) : null,\n key = String(init.key),\n chr = String(init.char),\n location = init.location,\n keyCode = init.keyCode || (\n (init.keyCode = key) &&\n key.charCodeAt(0)\n ) || 0,\n charCode = init.charCode || (\n (init.charCode = chr) &&\n chr.charCodeAt(0)\n ) || 0,\n bubbles = init.bubbles,\n cancelable = init.cancelable,\n repeat = init.repeat,\n locale = init.locale,\n view = init.view || window,\n args\n ;\n if (!init.which) init.which = init.keyCode;\n if ('initKeyEvent' in out) {\n out.initKeyEvent(\n type, bubbles, cancelable, view,\n ctrlKey, altKey, shiftKey, metaKey, keyCode, charCode\n );\n } else if (0 < initType && 'initKeyboardEvent' in out) {\n args = [type, bubbles, cancelable, view];\n switch (initType) {\n case 1:\n args.push(key, location, ctrlKey, shiftKey, altKey, metaKey, altGraphKey);\n break;\n case 2:\n args.push(ctrlKey, altKey, shiftKey, metaKey, keyCode, charCode);\n break;\n case 3:\n args.push(key, location, ctrlKey, altKey, shiftKey, metaKey, altGraphKey);\n break;\n case 4:\n args.push(key, location, modifiers, repeat, locale);\n break;\n default:\n args.push(char, key, location, modifiers, repeat, locale);\n }\n out.initKeyboardEvent.apply(out, args);\n } else {\n out.initEvent(type, bubbles, cancelable);\n }\n for (key in out) {\n if (defaults.hasOwnProperty(key) && out[key] !== init[key]) {\n withInitValues(key, out, init);\n }\n }\n return out;\n }\n KeyboardEvent.prototype = $KeyboardEvent.prototype;\n return KeyboardEvent;\n }(window.KeyboardEvent || function KeyboardEvent() {}));\n defineProperty(window, 'KeyboardEvent', {value: o_O});\n // Android 4 gotcha\n if (KeyboardEvent !== o_O) KeyboardEvent = o_O;\n }\n\n // window.MouseEvent as constructor\n try { new MouseEvent('_', {}); } catch (o_O) {\n /* jshint -W022 */\n o_O = (function ($MouseEvent) {\n function MouseEvent(type, init) {\n enoughArguments(arguments.length, 'MouseEvent');\n var out = document.createEvent('MouseEvent');\n if (!init) init = {};\n out.initMouseEvent(\n type,\n !!init.bubbles,\n !!init.cancelable,\n init.view || window,\n init.detail || 1,\n init.screenX || 0,\n init.screenY || 0,\n init.clientX || 0,\n init.clientY || 0,\n !!init.ctrlKey,\n !!init.altKey,\n !!init.shiftKey,\n !!init.metaKey,\n init.button || 0,\n init.relatedTarget || null\n );\n return out;\n }\n MouseEvent.prototype = $MouseEvent.prototype;\n return MouseEvent;\n }(window.MouseEvent || function MouseEvent() {}));\n defineProperty(window, 'MouseEvent', {value: o_O});\n // Android 4 gotcha\n if (MouseEvent !== o_O) MouseEvent = o_O;\n }\n\n if (!document.querySelectorAll('*').forEach) {\n (function () {\n function patch(what) {\n var querySelectorAll = what.querySelectorAll;\n what.querySelectorAll = function qSA(css) {\n var result = querySelectorAll.call(this, css);\n result.forEach = Array.prototype.forEach;\n return result;\n };\n }\n patch(document);\n patch(Element.prototype);\n }());\n }\n\n try {\n // https://drafts.csswg.org/selectors-4/#the-scope-pseudo\n document.querySelector(':scope *');\n } catch(o_O) {\n (function () {\n var dataScope = 'data-scope-' + (Math.random() * 1e9 >>> 0);\n var proto = Element.prototype;\n var querySelector = proto.querySelector;\n var querySelectorAll = proto.querySelectorAll;\n proto.querySelector = function qS(css) {\n return find(this, querySelector, css);\n };\n proto.querySelectorAll = function qSA(css) {\n return find(this, querySelectorAll, css);\n };\n function find(node, method, css) {\n if (node.type != document.ELEMENT_NODE) return method.call(node, css);\n node.setAttribute(dataScope, null);\n var result = method.call(\n node,\n String(css).replace(\n /(^|,\\s*)(:scope([ >]|$))/g,\n function ($0, $1, $2, $3) {\n return $1 + '[' + dataScope + ']' + ($3 || ' ');\n }\n )\n );\n node.removeAttribute(dataScope);\n return result;\n }\n }());\n }\n}(window));\n(function (global){'use strict';\n\n // a WeakMap fallback for DOM nodes only used as key\n var DOMMap = global.WeakMap || (function () {\n\n var\n counter = 0,\n dispatched = false,\n drop = false,\n value\n ;\n\n function dispatch(key, ce, shouldDrop) {\n drop = shouldDrop;\n dispatched = false;\n value = undefined;\n key.dispatchEvent(ce);\n }\n\n function Handler(value) {\n this.value = value;\n }\n\n Handler.prototype.handleEvent = function handleEvent(e) {\n dispatched = true;\n if (drop) {\n e.currentTarget.removeEventListener(e.type, this, false);\n } else {\n value = this.value;\n }\n };\n\n function DOMMap() {\n counter++; // make id clashing highly improbable\n this.__ce__ = new Event(('@DOMMap:' + counter) + Math.random());\n }\n\n DOMMap.prototype = {\n 'constructor': DOMMap,\n 'delete': function del(key) {\n return dispatch(key, this.__ce__, true), dispatched;\n },\n 'get': function get(key) {\n dispatch(key, this.__ce__, false);\n var v = value;\n value = undefined;\n return v;\n },\n 'has': function has(key) {\n return dispatch(key, this.__ce__, false), dispatched;\n },\n 'set': function set(key, value) {\n dispatch(key, this.__ce__, true);\n key.addEventListener(this.__ce__.type, new Handler(value), false);\n return this;\n },\n };\n\n return DOMMap;\n\n }());\n\n function Dict() {}\n Dict.prototype = (Object.create || Object)(null);\n\n // https://dom.spec.whatwg.org/#interface-eventtarget\n\n function createEventListener(type, callback, options) {\n function eventListener(e) {\n if (eventListener.once) {\n e.currentTarget.removeEventListener(\n e.type,\n callback,\n eventListener\n );\n eventListener.removed = true;\n }\n if (eventListener.passive) {\n e.preventDefault = createEventListener.preventDefault;\n }\n if (typeof eventListener.callback === 'function') {\n /* jshint validthis: true */\n eventListener.callback.call(this, e);\n } else if (eventListener.callback) {\n eventListener.callback.handleEvent(e);\n }\n if (eventListener.passive) {\n delete e.preventDefault;\n }\n }\n eventListener.type = type;\n eventListener.callback = callback;\n eventListener.capture = !!options.capture;\n eventListener.passive = !!options.passive;\n eventListener.once = !!options.once;\n // currently pointless but specs say to use it, so ...\n eventListener.removed = false;\n return eventListener;\n }\n\n createEventListener.preventDefault = function preventDefault() {};\n\n var\n Event = global.CustomEvent,\n dE = global.dispatchEvent,\n aEL = global.addEventListener,\n rEL = global.removeEventListener,\n counter = 0,\n increment = function () { counter++; },\n indexOf = [].indexOf || function indexOf(value){\n var length = this.length;\n while(length--) {\n if (this[length] === value) {\n break;\n }\n }\n return length;\n },\n getListenerKey = function (options) {\n return ''.concat(\n options.capture ? '1' : '0',\n options.passive ? '1' : '0',\n options.once ? '1' : '0'\n );\n },\n augment\n ;\n\n try {\n aEL('_', increment, {once: true});\n dE(new Event('_'));\n dE(new Event('_'));\n rEL('_', increment, {once: true});\n } catch(o_O) {}\n\n if (counter !== 1) {\n (function () {\n var dm = new DOMMap();\n function createAEL(aEL) {\n return function addEventListener(type, handler, options) {\n if (options && typeof options !== 'boolean') {\n var\n info = dm.get(this),\n key = getListenerKey(options),\n i, tmp, wrap\n ;\n if (!info) dm.set(this, (info = new Dict()));\n if (!(type in info)) info[type] = {\n handler: [],\n wrap: []\n };\n tmp = info[type];\n i = indexOf.call(tmp.handler, handler);\n if (i < 0) {\n i = tmp.handler.push(handler) - 1;\n tmp.wrap[i] = (wrap = new Dict());\n } else {\n wrap = tmp.wrap[i];\n }\n if (!(key in wrap)) {\n wrap[key] = createEventListener(type, handler, options);\n aEL.call(this, type, wrap[key], wrap[key].capture);\n }\n } else {\n aEL.call(this, type, handler, options);\n }\n };\n }\n function createREL(rEL) {\n return function removeEventListener(type, handler, options) {\n if (options && typeof options !== 'boolean') {\n var\n info = dm.get(this),\n key, i, tmp, wrap\n ;\n if (info && (type in info)) {\n tmp = info[type];\n i = indexOf.call(tmp.handler, handler);\n if (-1 < i) {\n key = getListenerKey(options);\n wrap = tmp.wrap[i];\n if (key in wrap) {\n rEL.call(this, type, wrap[key], wrap[key].capture);\n delete wrap[key];\n // return if there are other wraps\n for (key in wrap) return;\n // otherwise remove all the things\n tmp.handler.splice(i, 1);\n tmp.wrap.splice(i, 1);\n // if there are no other handlers\n if (tmp.handler.length === 0)\n // drop the info[type] entirely\n delete info[type];\n }\n }\n }\n } else {\n rEL.call(this, type, handler, options);\n }\n };\n }\n\n augment = function (Constructor) {\n if (!Constructor) return;\n var proto = Constructor.prototype;\n proto.addEventListener = createAEL(proto.addEventListener);\n proto.removeEventListener = createREL(proto.removeEventListener);\n };\n\n if (global.EventTarget) {\n augment(EventTarget);\n } else {\n augment(global.Text);\n augment(global.Element || global.HTMLElement);\n augment(global.HTMLDocument);\n augment(global.Window || {prototype:global});\n augment(global.XMLHttpRequest);\n }\n\n }());\n }\n\n}(self));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Doctype = exports.CDATA = exports.Tag = exports.Style = exports.Script = exports.Comment = exports.Directive = exports.Text = exports.Root = exports.isTag = exports.ElementType = void 0;\n/** Types of elements found in htmlparser2's DOM */\nvar ElementType;\n(function (ElementType) {\n /** Type for the root element of a document */\n ElementType[\"Root\"] = \"root\";\n /** Type for Text */\n ElementType[\"Text\"] = \"text\";\n /** Type for */\n ElementType[\"Directive\"] = \"directive\";\n /** Type for */\n ElementType[\"Comment\"] = \"comment\";\n /** Type for ' + '');\n printWindow.document.close();\n printWindow.focus();\n // eslint-disable-next-line\n var interval = setInterval(function () {\n if (printWindow.ready) {\n printWindow.print();\n printWindow.close();\n clearInterval(interval);\n }\n }, 500);\n return printWindow;\n}\n/**\n * Function to normalize the units applied to the element.\n *\n * @param {number|string} value ?\n * @returns {string} result\n * @private\n */\nexport function formatUnit(value) {\n var result = value + '';\n if (result.match(/auto|cm|mm|in|px|pt|pc|%|em|ex|ch|rem|vw|vh|vmin|vmax/)) {\n return result;\n }\n return result + 'px';\n}\n/**\n * Function to check whether the platform is blazor or not.\n *\n * @returns {void} result\n * @private\n */\nexport function enableBlazorMode() {\n isBlazorPlatform = true;\n}\n/**\n * Function to check whether the platform is blazor or not.\n *\n * @returns {boolean} result\n * @private\n */\nexport function isBlazor() {\n return isBlazorPlatform;\n}\n/**\n * Function to convert xPath to DOM element in blazor platform\n *\n * @returns {HTMLElement} result\n * @param {HTMLElement | object} element ?\n * @private\n */\nexport function getElement(element) {\n var xPath = 'xPath';\n if (!(element instanceof Node) && isBlazor() && !isNullOrUndefined(element[\"\" + xPath])) {\n return document.evaluate(element[\"\" + xPath], document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;\n }\n return element;\n}\n/**\n * Function to fetch the Instances of a HTML element for the given component.\n *\n * @param {string | HTMLElement} element ?\n * @param {any} component ?\n * @returns {Object} ?\n * @private\n */\n// eslint-disable-next-line\nexport function getInstance(element, component) {\n // eslint-disable-next-line\n var elem = (typeof (element) === 'string') ? document.querySelector(element) : element;\n if (elem[\"\" + instances]) {\n for (var _i = 0, _a = elem[\"\" + instances]; _i < _a.length; _i++) {\n var inst = _a[_i];\n if (inst instanceof component) {\n return inst;\n }\n }\n }\n return null;\n}\n/**\n * Function to add instances for the given element.\n *\n * @param {string | HTMLElement} element ?\n * @param {Object} instance ?\n * @returns {void} ?\n * @private\n */\nexport function addInstance(element, instance) {\n // eslint-disable-next-line\n var elem = (typeof (element) === 'string') ? document.querySelector(element) : element;\n if (elem[\"\" + instances]) {\n elem[\"\" + instances].push(instance);\n }\n else {\n elem[\"\" + instances] = [instance];\n }\n}\n/**\n * Function to generate the unique id.\n *\n * @returns {any} ?\n * @private\n */\n// eslint-disable-next-line\nexport function uniqueID() {\n if ((typeof window) === 'undefined') {\n return;\n }\n // eslint-disable-next-line\n var num = new Uint16Array(5);\n var intCrypto = window.msCrypto || window.crypto;\n return intCrypto.getRandomValues(num);\n}\n/**\n *\n * @param {Int16Array} num ?\n * @returns {string} ?\n */\nfunction combineArray(num) {\n var ret = '';\n for (var i = 0; i < 5; i++) {\n ret += (i ? ',' : '') + num[parseInt(i.toString(), 10)];\n }\n return ret;\n}\n","/**\n * Parser\n */\nvar defaultNumberingSystem = {\n 'latn': {\n '_digits': '0123456789',\n '_type': 'numeric'\n }\n};\nimport { isUndefined, getValue, isBlazor } from '../util';\nvar defaultNumberSymbols = {\n 'decimal': '.',\n 'group': ',',\n 'percentSign': '%',\n 'plusSign': '+',\n 'minusSign': '-',\n 'infinity': '∞',\n 'nan': 'NaN',\n 'exponential': 'E'\n};\nvar latnNumberSystem = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];\n/**\n * Interface for parser base\n *\n * @private\n */\nvar ParserBase = /** @class */ (function () {\n function ParserBase() {\n }\n /**\n * Returns the cldr object for the culture specifies\n *\n * @param {Object} obj - Specifies the object from which culture object to be acquired.\n * @param {string} cName - Specifies the culture name.\n * @returns {Object} ?\n */\n ParserBase.getMainObject = function (obj, cName) {\n var value = isBlazor() ? cName : 'main.' + cName;\n return getValue(value, obj);\n };\n /**\n * Returns the numbering system object from given cldr data.\n *\n * @param {Object} obj - Specifies the object from which number system is acquired.\n * @returns {Object} ?\n */\n ParserBase.getNumberingSystem = function (obj) {\n return getValue('supplemental.numberingSystems', obj) || this.numberingSystems;\n };\n /**\n * Returns the reverse of given object keys or keys specified.\n *\n * @param {Object} prop - Specifies the object to be reversed.\n * @param {number[]} keys - Optional parameter specifies the custom keyList for reversal.\n * @returns {Object} ?\n */\n ParserBase.reverseObject = function (prop, keys) {\n var propKeys = keys || Object.keys(prop);\n var res = {};\n for (var _i = 0, propKeys_1 = propKeys; _i < propKeys_1.length; _i++) {\n var key = propKeys_1[_i];\n // eslint-disable-next-line\n if (!res.hasOwnProperty(prop[key])) {\n // eslint-disable-next-line\n res[prop[key]] = key;\n }\n }\n return res;\n };\n /**\n * Returns the symbol regex by skipping the escape sequence.\n *\n * @param {string[]} props - Specifies the array values to be skipped.\n * @returns {RegExp} ?\n */\n ParserBase.getSymbolRegex = function (props) {\n var regexStr = props.map(function (str) {\n return str.replace(/([.*+?^=!:${}()|[\\]/\\\\])/g, '\\\\$1');\n }).join('|');\n var regExp = RegExp;\n return new regExp(regexStr, 'g');\n };\n /**\n *\n * @param {Object} prop ?\n * @returns {Object} ?\n */\n ParserBase.getSymbolMatch = function (prop) {\n var matchKeys = Object.keys(defaultNumberSymbols);\n var ret = {};\n for (var _i = 0, matchKeys_1 = matchKeys; _i < matchKeys_1.length; _i++) {\n var key = matchKeys_1[_i];\n // eslint-disable-next-line\n ret[prop[key]] = defaultNumberSymbols[key];\n }\n return ret;\n };\n /**\n * Returns regex string for provided value\n *\n * @param {string} val ?\n * @returns {string} ?\n */\n ParserBase.constructRegex = function (val) {\n var len = val.length;\n var ret = '';\n for (var i = 0; i < len; i++) {\n if (i !== len - 1) {\n ret += val[parseInt(i.toString(), 10)] + '|';\n }\n else {\n ret += val[parseInt(i.toString(), 10)];\n }\n }\n return ret;\n };\n /**\n * Returns the replaced value of matching regex and obj mapper.\n *\n * @param {string} value - Specifies the values to be replaced.\n * @param {RegExp} regex - Specifies the regex to search.\n * @param {Object} obj - Specifies the object matcher to be replace value parts.\n * @returns {string} ?\n */\n ParserBase.convertValueParts = function (value, regex, obj) {\n return value.replace(regex, function (str) {\n // eslint-disable-next-line\n return obj[str];\n });\n };\n /**\n * Returns default numbering system object for formatting from cldr data\n *\n * @param {Object} obj ?\n * @returns {NumericObject} ?\n */\n ParserBase.getDefaultNumberingSystem = function (obj) {\n var ret = {};\n ret.obj = getValue('numbers', obj);\n ret.nSystem = getValue('defaultNumberingSystem', ret.obj);\n return ret;\n };\n /**\n * Returns the replaced value of matching regex and obj mapper.\n *\n * @param {Object} curObj ?\n * @param {Object} numberSystem ?\n * @param {boolean} needSymbols ?\n * @param {boolean} blazorMode ?\n * @returns {Object} ?\n */\n ParserBase.getCurrentNumericOptions = function (curObj, numberSystem, needSymbols, blazorMode) {\n var ret = {};\n var cur = this.getDefaultNumberingSystem(curObj);\n if (!isUndefined(cur.nSystem) || blazorMode) {\n var digits = blazorMode ? getValue('obj.mapperDigits', cur) : getValue(cur.nSystem + '._digits', numberSystem);\n if (!isUndefined(digits)) {\n ret.numericPair = this.reverseObject(digits, latnNumberSystem);\n var regExp = RegExp;\n ret.numberParseRegex = new regExp(this.constructRegex(digits), 'g');\n ret.numericRegex = '[' + digits[0] + '-' + digits[9] + ']';\n if (needSymbols) {\n ret.numericRegex = digits[0] + '-' + digits[9];\n ret.symbolNumberSystem = getValue(blazorMode ? 'numberSymbols' : 'symbols-numberSystem-' + cur.nSystem, cur.obj);\n ret.symbolMatch = this.getSymbolMatch(ret.symbolNumberSystem);\n ret.numberSystem = cur.nSystem;\n }\n }\n }\n return ret;\n };\n /**\n * Returns number mapper object for the provided cldr data\n *\n * @param {Object} curObj ?\n * @param {Object} numberSystem ?\n * @param {boolean} isNumber ?\n * @returns {NumberMapper} ?\n */\n // eslint-disable-next-line\n ParserBase.getNumberMapper = function (curObj, numberSystem, isNumber) {\n var ret = { mapper: {} };\n var cur = this.getDefaultNumberingSystem(curObj);\n if (!isUndefined(cur.nSystem)) {\n ret.numberSystem = cur.nSystem;\n ret.numberSymbols = getValue('symbols-numberSystem-' + cur.nSystem, cur.obj);\n ret.timeSeparator = getValue('timeSeparator', ret.numberSymbols);\n var digits = getValue(cur.nSystem + '._digits', numberSystem);\n if (!isUndefined(digits)) {\n for (var _i = 0, latnNumberSystem_1 = latnNumberSystem; _i < latnNumberSystem_1.length; _i++) {\n var i = latnNumberSystem_1[_i];\n // eslint-disable-next-line\n ret.mapper[i] = digits[i];\n }\n }\n }\n return ret;\n };\n ParserBase.nPair = 'numericPair';\n ParserBase.nRegex = 'numericRegex';\n ParserBase.numberingSystems = defaultNumberingSystem;\n return ParserBase;\n}());\nexport { ParserBase };\n/**\n * @private\n */\nvar blazorCurrencyData = {\n 'DJF': 'Fdj',\n 'ERN': 'Nfk',\n 'ETB': 'Br',\n 'NAD': '$',\n 'ZAR': 'R',\n 'XAF': 'FCFA',\n 'GHS': 'GH₵',\n 'XDR': 'XDR',\n 'AED': 'د.إ.‏',\n 'BHD': 'د.ب.‏',\n 'DZD': 'د.ج.‏',\n 'EGP': 'ج.م.‏',\n 'ILS': '₪',\n 'IQD': 'د.ع.‏',\n 'JOD': 'د.ا.‏',\n 'KMF': 'CF',\n 'KWD': 'د.ك.‏',\n 'LBP': 'ل.ل.‏',\n 'LYD': 'د.ل.‏',\n 'MAD': 'د.م.‏',\n 'MRU': 'أ.م.',\n 'OMR': 'ر.ع.‏',\n 'QAR': 'ر.ق.‏',\n 'SAR': 'ر.س.‏',\n 'SDG': 'ج.س.',\n 'SOS': 'S',\n 'SSP': '£',\n 'SYP': 'ل.س.‏',\n 'TND': 'د.ت.‏',\n 'YER': 'ر.ي.‏',\n 'CLP': '$',\n 'INR': '₹',\n 'TZS': 'TSh',\n 'EUR': '€',\n 'AZN': '₼',\n 'RUB': '₽',\n 'BYN': 'Br',\n 'ZMW': 'K',\n 'BGN': 'лв.',\n 'NGN': '₦',\n 'XOF': 'CFA',\n 'BDT': '৳',\n 'CNY': '¥',\n 'BAM': 'КМ',\n 'UGX': 'USh',\n 'USD': '$',\n 'CZK': 'Kč',\n 'GBP': '£',\n 'DKK': 'kr.',\n 'KES': 'Ksh',\n 'CHF': 'CHF',\n 'MVR': 'ރ.',\n 'BTN': 'Nu.',\n 'XCD': 'EC$',\n 'AUD': '$',\n 'BBD': '$',\n 'BIF': 'FBu',\n 'BMD': '$',\n 'BSD': '$',\n 'BWP': 'P',\n 'BZD': '$',\n 'CAD': '$',\n 'NZD': '$',\n 'FJD': '$',\n 'FKP': '£',\n 'GIP': '£',\n 'GMD': 'D',\n 'GYD': '$',\n 'HKD': '$',\n 'IDR': 'Rp',\n 'JMD': '$',\n 'KYD': '$',\n 'LRD': '$',\n 'MGA': 'Ar',\n 'MOP': 'MOP$',\n 'MUR': 'Rs',\n 'MWK': 'MK',\n 'MYR': 'RM',\n 'PGK': 'K',\n 'PHP': '₱',\n 'PKR': 'Rs',\n 'RWF': 'RF',\n 'SBD': '$',\n 'SCR': 'SR',\n 'SEK': 'kr',\n 'SGD': '$',\n 'SHP': '£',\n 'SLL': 'Le',\n 'ANG': 'NAf.',\n 'SZL': 'E',\n 'TOP': 'T$',\n 'TTD': '$',\n 'VUV': 'VT',\n 'WST': 'WS$',\n 'ARS': '$',\n 'BOB': 'Bs',\n 'BRL': 'R$',\n 'COP': '$',\n 'CRC': '₡',\n 'CUP': '$',\n 'DOP': '$',\n 'GTQ': 'Q',\n 'HNL': 'L',\n 'MXN': '$',\n 'NIO': 'C$',\n 'PAB': 'B/.',\n 'PEN': 'S/',\n 'PYG': '₲',\n 'UYU': '$',\n 'VES': 'Bs.S',\n 'IRR': 'ريال',\n 'GNF': 'FG',\n 'CDF': 'FC',\n 'HTG': 'G',\n 'XPF': 'FCFP',\n 'HRK': 'kn',\n 'HUF': 'Ft',\n 'AMD': '֏',\n 'ISK': 'kr',\n 'JPY': '¥',\n 'GEL': '₾',\n 'CVE': '​',\n 'KZT': '₸',\n 'KHR': '៛',\n 'KPW': '₩',\n 'KRW': '₩',\n 'KGS': 'сом',\n 'AOA': 'Kz',\n 'LAK': '₭',\n 'MZN': 'MTn',\n 'MKD': 'ден',\n 'MNT': '₮',\n 'BND': '$',\n 'MMK': 'K',\n 'NOK': 'kr',\n 'NPR': 'रु',\n 'AWG': 'Afl.',\n 'SRD': '$',\n 'PLN': 'zł',\n 'AFN': '؋',\n 'STN': 'Db',\n 'MDL': 'L',\n 'RON': 'lei',\n 'UAH': '₴',\n 'LKR': 'රු.',\n 'ALL': 'Lekë',\n 'RSD': 'дин.',\n 'TJS': 'смн',\n 'THB': '฿',\n 'TMT': 'm.',\n 'TRY': '₺',\n 'UZS': 'сўм',\n 'VND': '₫',\n 'TWD': 'NT$'\n};\n/**\n *\n * @param {string} currencyCode ?\n * @returns {string} ?\n */\nexport function getBlazorCurrencySymbol(currencyCode) {\n return getValue(currencyCode || '', blazorCurrencyData);\n}\n","/***\n * Hijri parser\n */\n// eslint-disable-next-line\nexport var HijriParser;\n(function (HijriParser) {\n var dateCorrection = [28607, 28636, 28665, 28695, 28724, 28754, 28783, 28813, 28843, 28872, 28901, 28931, 28960, 28990,\n 29019, 29049, 29078, 29108, 29137, 29167, 29196, 29226, 29255, 29285, 29315, 29345, 29375, 29404, 29434, 29463, 29492, 29522,\n 29551, 29580, 29610, 29640, 29669, 29699, 29729, 29759, 29788, 29818, 29847, 29876, 29906, 29935, 29964, 29994, 30023, 30053,\n 30082, 30112, 30141, 30171, 30200, 30230, 30259, 30289, 30318, 30348, 30378, 30408, 30437, 30467, 30496, 30526, 30555, 30585,\n 30614, 30644, 30673, 30703, 30732, 30762, 30791, 30821, 30850, 30880, 30909, 30939, 30968, 30998, 31027, 31057, 31086, 31116,\n 31145, 31175, 31204, 31234, 31263, 31293, 31322, 31352, 31381, 31411, 31441, 31471, 31500, 31530, 31559, 31589, 31618, 31648,\n 31676, 31706, 31736, 31766, 31795, 31825, 31854, 31884, 31913, 31943, 31972, 32002, 32031, 32061, 32090, 32120, 32150, 32180,\n 32209, 32239, 32268, 32298, 32327, 32357, 32386, 32416, 32445, 32475, 32504, 32534, 32563, 32593, 32622, 32652, 32681, 32711,\n 32740, 32770, 32799, 32829, 32858, 32888, 32917, 32947, 32976, 33006, 33035, 33065, 33094, 33124, 33153, 33183, 33213, 33243,\n 33272, 33302, 33331, 33361, 33390, 33420, 33450, 33479, 33509, 33539, 33568, 33598, 33627, 33657, 33686, 33716, 33745, 33775,\n 33804, 33834, 33863, 33893, 33922, 33952, 33981, 34011, 34040, 34069, 34099, 34128, 34158, 34187, 34217, 34247, 34277, 34306,\n 34336, 34365, 34395, 34424, 34454, 34483, 34512, 34542, 34571, 34601, 34631, 34660, 34690, 34719, 34749, 34778, 34808, 34837,\n 34867, 34896, 34926, 34955, 34985, 35015, 35044, 35074, 35103, 35133, 35162, 35192, 35222, 35251, 35280, 35310, 35340, 35370,\n 35399, 35429, 35458, 35488, 35517, 35547, 35576, 35605, 35635, 35665, 35694, 35723, 35753, 35782, 35811, 35841, 35871, 35901,\n 35930, 35960, 35989, 36019, 36048, 36078, 36107, 36136, 36166, 36195, 36225, 36254, 36284, 36314, 36343, 36373, 36403, 36433,\n 36462, 36492, 36521, 36551, 36580, 36610, 36639, 36669, 36698, 36728, 36757, 36786, 36816, 36845, 36875, 36904, 36934, 36963,\n 36993, 37022, 37052, 37081, 37111, 37141, 37170, 37200, 37229, 37259, 37288, 37318, 37347, 37377, 37406, 37436, 37465, 37495,\n 37524, 37554, 37584, 37613, 37643, 37672, 37701, 37731, 37760, 37790, 37819, 37849, 37878, 37908, 37938, 37967, 37997, 38027,\n 38056, 38085, 38115, 38144, 38174, 38203, 38233, 38262, 38292, 38322, 38351, 38381, 38410, 38440, 38469, 38499, 38528, 38558,\n 38587, 38617, 38646, 38676, 38705, 38735, 38764, 38794, 38823, 38853, 38882, 38912, 38941, 38971, 39001, 39030, 39059, 39089,\n 39118, 39148, 39178, 39208, 39237, 39267, 39297, 39326, 39355, 39385, 39414, 39444, 39473, 39503, 39532, 39562, 39592, 39621,\n 39650, 39680, 39709, 39739, 39768, 39798, 39827, 39857, 39886, 39916, 39946, 39975, 40005, 40035, 40064, 40094, 40123, 40153,\n 40182, 40212, 40241, 40271, 40300, 40330, 40359, 40389, 40418, 40448, 40477, 40507, 40536, 40566, 40595, 40625, 40655, 40685,\n 40714, 40744, 40773, 40803, 40832, 40862, 40892, 40921, 40951, 40980, 41009, 41039, 41068, 41098, 41127, 41157, 41186, 41216,\n 41245, 41275, 41304, 41334, 41364, 41393, 41422, 41452, 41481, 41511, 41540, 41570, 41599, 41629, 41658, 41688, 41718, 41748,\n 41777, 41807, 41836, 41865, 41894, 41924, 41953, 41983, 42012, 42042, 42072, 42102, 42131, 42161, 42190, 42220, 42249, 42279,\n 42308, 42337, 42367, 42397, 42426, 42456, 42485, 42515, 42545, 42574, 42604, 42633, 42662, 42692, 42721, 42751, 42780, 42810,\n 42839, 42869, 42899, 42929, 42958, 42988, 43017, 43046, 43076, 43105, 43135, 43164, 43194, 43223, 43253, 43283, 43312, 43342,\n 43371, 43401, 43430, 43460, 43489, 43519, 43548, 43578, 43607, 43637, 43666, 43696, 43726, 43755, 43785, 43814, 43844, 43873,\n 43903, 43932, 43962, 43991, 44021, 44050, 44080, 44109, 44139, 44169, 44198, 44228, 44258, 44287, 44317, 44346, 44375, 44405,\n 44434, 44464, 44493, 44523, 44553, 44582, 44612, 44641, 44671, 44700, 44730, 44759, 44788, 44818, 44847, 44877, 44906, 44936,\n 44966, 44996, 45025, 45055, 45084, 45114, 45143, 45172, 45202, 45231, 45261, 45290, 45320, 45350, 45380, 45409, 45439, 45468,\n 45498, 45527, 45556, 45586, 45615, 45644, 45674, 45704, 45733, 45763, 45793, 45823, 45852, 45882, 45911, 45940, 45970, 45999,\n 46028, 46058, 46088, 46117, 46147, 46177, 46206, 46236, 46265, 46295, 46324, 46354, 46383, 46413, 46442, 46472, 46501, 46531,\n 46560, 46590, 46620, 46649, 46679, 46708, 46738, 46767, 46797, 46826, 46856, 46885, 46915, 46944, 46974, 47003, 47033, 47063,\n 47092, 47122, 47151, 47181, 47210, 47240, 47269, 47298, 47328, 47357, 47387, 47417, 47446, 47476, 47506, 47535, 47565, 47594,\n 47624, 47653, 47682, 47712, 47741, 47771, 47800, 47830, 47860, 47890, 47919, 47949, 47978, 48008, 48037, 48066, 48096, 48125,\n 48155, 48184, 48214, 48244, 48273, 48303, 48333, 48362, 48392, 48421, 48450, 48480, 48509, 48538, 48568, 48598, 48627, 48657,\n 48687, 48717, 48746, 48776, 48805, 48834, 48864, 48893, 48922, 48952, 48982, 49011, 49041, 49071, 49100, 49130, 49160, 49189,\n 49218, 49248, 49277, 49306, 49336, 49365, 49395, 49425, 49455, 49484, 49514, 49543, 49573, 49602, 49632, 49661, 49690, 49720,\n 49749, 49779, 49809, 49838, 49868, 49898, 49927, 49957, 49986, 50016, 50045, 50075, 50104, 50133, 50163, 50192, 50222, 50252,\n 50281, 50311, 50340, 50370, 50400, 50429, 50459, 50488, 50518, 50547, 50576, 50606, 50635, 50665, 50694, 50724, 50754, 50784,\n 50813, 50843, 50872, 50902, 50931, 50960, 50990, 51019, 51049, 51078, 51108, 51138, 51167, 51197, 51227, 51256, 51286, 51315,\n 51345, 51374, 51403, 51433, 51462, 51492, 51522, 51552, 51582, 51611, 51641, 51670, 51699, 51729, 51758, 51787, 51816, 51846,\n 51876, 51906, 51936, 51965, 51995, 52025, 52054, 52083, 52113, 52142, 52171, 52200, 52230, 52260, 52290, 52319, 52349, 52379,\n 52408, 52438, 52467, 52497, 52526, 52555, 52585, 52614, 52644, 52673, 52703, 52733, 52762, 52792, 52822, 52851, 52881, 52910,\n 52939, 52969, 52998, 53028, 53057, 53087, 53116, 53146, 53176, 53205, 53235, 53264, 53294, 53324, 53353, 53383, 53412, 53441,\n 53471, 53500, 53530, 53559, 53589, 53619, 53648, 53678, 53708, 53737, 53767, 53796, 53825, 53855, 53884, 53913, 53943, 53973,\n 54003, 54032, 54062, 54092, 54121, 54151, 54180, 54209, 54239, 54268, 54297, 54327, 54357, 54387, 54416, 54446, 54476, 54505,\n 54535, 54564, 54593, 54623, 54652, 54681, 54711, 54741, 54770, 54800, 54830, 54859, 54889, 54919, 54948, 54977, 55007, 55036,\n 55066, 55095, 55125, 55154, 55184, 55213, 55243, 55273, 55302, 55332, 55361, 55391, 55420, 55450, 55479, 55508, 55538, 55567,\n 55597, 55627, 55657, 55686, 55716, 55745, 55775, 55804, 55834, 55863, 55892, 55922, 55951, 55981, 56011, 56040, 56070, 56100,\n 56129, 56159, 56188, 56218, 56247, 56276, 56306, 56335, 56365, 56394, 56424, 56454, 56483, 56513, 56543, 56572, 56601, 56631,\n 56660, 56690, 56719, 56749, 56778, 56808, 56837, 56867, 56897, 56926, 56956, 56985, 57015, 57044, 57074, 57103, 57133, 57162,\n 57192, 57221, 57251, 57280, 57310, 57340, 57369, 57399, 57429, 57458, 57487, 57517, 57546, 57576, 57605, 57634, 57664, 57694,\n 57723, 57753, 57783, 57813, 57842, 57871, 57901, 57930, 57959, 57989, 58018, 58048, 58077, 58107, 58137, 58167, 58196, 58226,\n 58255, 58285, 58314, 58343, 58373, 58402, 58432, 58461, 58491, 58521, 58551, 58580, 58610, 58639, 58669, 58698, 58727, 58757,\n 58786, 58816, 58845, 58875, 58905, 58934, 58964, 58994, 59023, 59053, 59082, 59111, 59141, 59170, 59200, 59229, 59259, 59288,\n 59318, 59348, 59377, 59407, 59436, 59466, 59495, 59525, 59554, 59584, 59613, 59643, 59672, 59702, 59731, 59761, 59791, 59820,\n 59850, 59879, 59909, 59939, 59968, 59997, 60027, 60056, 60086, 60115, 60145, 60174, 60204, 60234, 60264, 60293, 60323, 60352,\n 60381, 60411, 60440, 60469, 60499, 60528, 60558, 60588, 60618, 60648, 60677, 60707, 60736, 60765, 60795, 60824, 60853, 60883,\n 60912, 60942, 60972, 61002, 61031, 61061, 61090, 61120, 61149, 61179, 61208, 61237, 61267, 61296, 61326, 61356, 61385, 61415,\n 61445, 61474, 61504, 61533, 61563, 61592, 61621, 61651, 61680, 61710, 61739, 61769, 61799, 61828, 61858, 61888, 61917, 61947,\n 61976, 62006, 62035, 62064, 62094, 62123, 62153, 62182, 62212, 62242, 62271, 62301, 62331, 62360, 62390, 62419, 62448, 62478,\n 62507, 62537, 62566, 62596, 62625, 62655, 62685, 62715, 62744, 62774, 62803, 62832, 62862, 62891, 62921, 62950, 62980, 63009,\n 63039, 63069, 63099, 63128, 63157, 63187, 63216, 63246, 63275, 63305, 63334, 63363, 63393, 63423, 63453, 63482, 63512, 63541,\n 63571, 63600, 63630, 63659, 63689, 63718, 63747, 63777, 63807, 63836, 63866, 63895, 63925, 63955, 63984, 64014, 64043, 64073,\n 64102, 64131, 64161, 64190, 64220, 64249, 64279, 64309, 64339, 64368, 64398, 64427, 64457, 64486, 64515, 64545, 64574, 64603,\n 64633, 64663, 64692, 64722, 64752, 64782, 64811, 64841, 64870, 64899, 64929, 64958, 64987, 65017, 65047, 65076, 65106, 65136,\n 65166, 65195, 65225, 65254, 65283, 65313, 65342, 65371, 65401, 65431, 65460, 65490, 65520, 65549, 65579, 65608, 65638, 65667,\n 65697, 65726, 65755, 65785, 65815, 65844, 65874, 65903, 65933, 65963, 65992, 66022, 66051, 66081, 66110, 66140, 66169, 66199,\n 66228, 66258, 66287, 66317, 66346, 66376, 66405, 66435, 66465, 66494, 66524, 66553, 66583, 66612, 66641, 66671, 66700, 66730,\n 66760, 66789, 66819, 66849, 66878, 66908, 66937, 66967, 66996, 67025, 67055, 67084, 67114, 67143, 67173, 67203, 67233, 67262,\n 67292, 67321, 67351, 67380, 67409, 67439, 67468, 67497, 67527, 67557, 67587, 67617, 67646, 67676, 67705, 67735, 67764, 67793,\n 67823, 67852, 67882, 67911, 67941, 67971, 68000, 68030, 68060, 68089, 68119, 68148, 68177, 68207, 68236, 68266, 68295, 68325,\n 68354, 68384, 68414, 68443, 68473, 68502, 68532, 68561, 68591, 68620, 68650, 68679, 68708, 68738, 68768, 68797, 68827, 68857,\n 68886, 68916, 68946, 68975, 69004, 69034, 69063, 69092, 69122, 69152, 69181, 69211, 69240, 69270, 69300, 69330, 69359, 69388,\n 69418, 69447, 69476, 69506, 69535, 69565, 69595, 69624, 69654, 69684, 69713, 69743, 69772, 69802, 69831, 69861, 69890, 69919,\n 69949, 69978, 70008, 70038, 70067, 70097, 70126, 70156, 70186, 70215, 70245, 70274, 70303, 70333, 70362, 70392, 70421, 70451,\n 70481, 70510, 70540, 70570, 70599, 70629, 70658, 70687, 70717, 70746, 70776, 70805, 70835, 70864, 70894, 70924, 70954, 70983,\n 71013, 71042, 71071, 71101, 71130, 71159, 71189, 71218, 71248, 71278, 71308, 71337, 71367, 71397, 71426, 71455, 71485, 71514,\n 71543, 71573, 71602, 71632, 71662, 71691, 71721, 71751, 71781, 71810, 71839, 71869, 71898, 71927, 71957, 71986, 72016, 72046,\n 72075, 72105, 72135, 72164, 72194, 72223, 72253, 72282, 72311, 72341, 72370, 72400, 72429, 72459, 72489, 72518, 72548, 72577,\n 72607, 72637, 72666, 72695, 72725, 72754, 72784, 72813, 72843, 72872, 72902, 72931, 72961, 72991, 73020, 73050, 73080, 73109,\n 73139, 73168, 73197, 73227, 73256, 73286, 73315, 73345, 73375, 73404, 73434, 73464, 73493, 73523, 73552, 73581, 73611, 73640,\n 73669, 73699, 73729, 73758, 73788, 73818, 73848, 73877, 73907, 73936, 73965, 73995, 74024, 74053, 74083, 74113, 74142, 74172,\n 74202, 74231, 74261, 74291, 74320, 74349, 74379, 74408, 74437, 74467, 74497, 74526, 74556, 74586, 74615, 74645, 74675, 74704,\n 74733, 74763, 74792, 74822, 74851, 74881, 74910, 74940, 74969, 74999, 75029, 75058, 75088, 75117, 75147, 75176, 75206, 75235,\n 75264, 75294, 75323, 75353, 75383, 75412, 75442, 75472, 75501, 75531, 75560, 75590, 75619, 75648, 75678, 75707, 75737, 75766,\n 75796, 75826, 75856, 75885, 75915, 75944, 75974, 76003, 76032, 76062, 76091, 76121, 76150, 76180, 76210, 76239, 76269, 76299,\n 76328, 76358, 76387, 76416, 76446, 76475, 76505, 76534, 76564, 76593, 76623, 76653, 76682, 76712, 76741, 76771, 76801, 76830,\n 76859, 76889, 76918, 76948, 76977, 77007, 77036, 77066, 77096, 77125, 77155, 77185, 77214, 77243, 77273, 77302, 77332, 77361,\n 77390, 77420, 77450, 77479, 77509, 77539, 77569, 77598, 77627, 77657, 77686, 77715, 77745, 77774, 77804, 77833, 77863, 77893,\n 77923, 77952, 77982, 78011, 78041, 78070, 78099, 78129, 78158, 78188, 78217, 78247, 78277, 78307, 78336, 78366, 78395, 78425,\n 78454, 78483, 78513, 78542, 78572, 78601, 78631, 78661, 78690, 78720, 78750, 78779, 78808, 78838, 78867, 78897, 78926, 78956,\n 78985, 79015, 79044, 79074, 79104, 79133, 79163, 79192, 79222, 79251, 79281, 79310, 79340, 79369, 79399, 79428, 79458, 79487,\n 79517, 79546, 79576, 79606, 79635, 79665, 79695, 79724, 79753, 79783, 79812, 79841, 79871, 79900, 79930, 79960, 79990\n ];\n /**\n *\n * @param {Date} gDate ?\n * @returns {Object} ?\n */\n function getHijriDate(gDate) {\n var day = gDate.getDate();\n var month = gDate.getMonth();\n var year = gDate.getFullYear();\n var tMonth = month + 1;\n var tYear = year;\n if (tMonth < 3) {\n tYear -= 1;\n tMonth += 12;\n }\n var yPrefix = Math.floor(tYear / 100.);\n var julilanOffset = yPrefix - Math.floor(yPrefix / 4.) - 2;\n var julianNumber = Math.floor(365.25 * (tYear + 4716)) + Math.floor(30.6001 * (tMonth + 1)) + day - julilanOffset - 1524;\n yPrefix = Math.floor((julianNumber - 1867216.25) / 36524.25);\n julilanOffset = yPrefix - Math.floor(yPrefix / 4.) + 1;\n var b = julianNumber + julilanOffset + 1524;\n var c = Math.floor((b - 122.1) / 365.25);\n var d = Math.floor(365.25 * c);\n var tempMonth = Math.floor((b - d) / 30.6001);\n day = (b - d) - Math.floor(30.6001 * tempMonth);\n month = Math.floor((b - d) / 20.6001);\n if (month > 13) {\n c += 1;\n month -= 12;\n }\n month -= 1;\n year = c - 4716;\n var modifiedJulianDate = julianNumber - 2400000;\n // date calculation for year after 2077\n var iyear = 10631. / 30.;\n var z = julianNumber - 1948084;\n var cyc = Math.floor(z / 10631.);\n z = z - 10631 * cyc;\n var j = Math.floor((z - 0.1335) / iyear);\n var iy = 30 * cyc + j;\n z = z - Math.floor(j * iyear + 0.1335);\n var im = Math.floor((z + 28.5001) / 29.5);\n /* istanbul ignore next */\n if (im === 13) {\n im = 12;\n }\n var tempDay = z - Math.floor(29.5001 * im - 29);\n var i = 0;\n for (; i < dateCorrection.length; i++) {\n if (dateCorrection[parseInt(i.toString(), 10)] > modifiedJulianDate) {\n break;\n }\n }\n var iln = i + 16260;\n var ii = Math.floor((iln - 1) / 12);\n var hYear = ii + 1;\n var hmonth = iln - 12 * ii;\n var hDate = modifiedJulianDate - dateCorrection[i - 1] + 1;\n if ((hDate + '').length > 2) {\n hDate = tempDay;\n hmonth = im;\n hYear = iy;\n }\n return { year: hYear, month: hmonth, date: hDate };\n }\n HijriParser.getHijriDate = getHijriDate;\n /**\n *\n * @param {number} year ?\n * @param {number} month ?\n * @param {number} day ?\n * @returns {Date} ?\n */\n function toGregorian(year, month, day) {\n var iy = year;\n var im = month;\n var id = day;\n var ii = iy - 1;\n var iln = (ii * 12) + 1 + (im - 1);\n var i = iln - 16260;\n var mcjdn = id + dateCorrection[i - 1] - 1;\n var julianDate = mcjdn + 2400000;\n var z = Math.floor(julianDate + 0.5);\n var a = Math.floor((z - 1867216.25) / 36524.25);\n a = z + 1 + a - Math.floor(a / 4);\n var b = a + 1524;\n var c = Math.floor((b - 122.1) / 365.25);\n var d = Math.floor(365.25 * c);\n var e = Math.floor((b - d) / 30.6001);\n var gDay = b - d - Math.floor(e * 30.6001);\n var gMonth = e - (e > 13.5 ? 13 : 1);\n var gYear = c - (gMonth > 2.5 ? 4716 : 4715);\n /* istanbul ignore next */\n if (gYear <= 0) {\n gMonth--;\n } // No year zero\n return new Date(gYear + '/' + (gMonth) + '/' + gDay);\n }\n HijriParser.toGregorian = toGregorian;\n})(HijriParser || (HijriParser = {}));\n","import { ParserBase as parser } from './parser-base';\nimport { IntlBase as base } from './intl-base';\nimport { isUndefined, throwError, getValue, isBlazor } from '../util';\nimport { HijriParser } from '../hijri-parser';\nimport { isNullOrUndefined, extend } from '../util';\nvar abbreviateRegexGlobal = /\\/MMMMM|MMMM|MMM|a|LLLL|LLL|EEEEE|EEEE|E|K|cccc|ccc|WW|W|G+|z+/gi;\nvar standalone = 'stand-alone';\nvar weekdayKey = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'];\nexport var basicPatterns = ['short', 'medium', 'long', 'full'];\nvar timeSetter = {\n m: 'getMinutes',\n h: 'getHours',\n H: 'getHours',\n s: 'getSeconds',\n d: 'getDate',\n f: 'getMilliseconds'\n};\nexport var datePartMatcher = {\n 'M': 'month',\n 'd': 'day',\n 'E': 'weekday',\n 'c': 'weekday',\n 'y': 'year',\n 'm': 'minute',\n 'h': 'hour',\n 'H': 'hour',\n 's': 'second',\n 'L': 'month',\n 'a': 'designator',\n 'z': 'timeZone',\n 'Z': 'timeZone',\n 'G': 'era',\n 'f': 'milliseconds'\n};\nvar timeSeparator = 'timeSeparator';\n/* tslint:disable no-any */\n/**\n * Date Format is a framework provides support for date formatting.\n *\n * @private\n */\nvar DateFormat = /** @class */ (function () {\n function DateFormat() {\n }\n /**\n * Returns the formatter function for given skeleton.\n *\n * @param {string} culture - Specifies the culture name to be which formatting.\n * @param {DateFormatOptions} option - Specific the format in which date will format.\n * @param {Object} cldr - Specifies the global cldr data collection.\n * @returns {Function} ?\n */\n DateFormat.dateFormat = function (culture, option, cldr) {\n var _this = this;\n var dependable = base.getDependables(cldr, culture, option.calendar);\n var numObject = getValue('parserObject.numbers', dependable);\n var dateObject = dependable.dateObject;\n var formatOptions = { isIslamic: base.islamicRegex.test(option.calendar) };\n if (isBlazor() && option.isServerRendered) {\n option = base.compareBlazorDateFormats(option, culture);\n }\n var resPattern = option.format ||\n base.getResultantPattern(option.skeleton, dependable.dateObject, option.type, false, isBlazor() ? culture : '');\n formatOptions.dateSeperator = isBlazor() ? getValue('dateSeperator', dateObject) : base.getDateSeparator(dependable.dateObject);\n if (isUndefined(resPattern)) {\n throwError('Format options or type given must be invalid');\n }\n else {\n resPattern = base.ConvertDateToWeekFormat(resPattern);\n if (isBlazor()) {\n resPattern = resPattern.replace(/tt/, 'a');\n }\n formatOptions.pattern = resPattern;\n formatOptions.numMapper = isBlazor() ?\n extend({}, numObject) : parser.getNumberMapper(dependable.parserObject, parser.getNumberingSystem(cldr));\n var patternMatch = resPattern.match(abbreviateRegexGlobal) || [];\n for (var _i = 0, patternMatch_1 = patternMatch; _i < patternMatch_1.length; _i++) {\n var str = patternMatch_1[_i];\n var len = str.length;\n var char = str[0];\n if (char === 'K') {\n char = 'h';\n }\n switch (char) {\n case 'E':\n case 'c':\n if (isBlazor()) {\n // eslint-disable-next-line\n formatOptions.weekday = getValue('days.' + base.monthIndex[len], dateObject);\n }\n else {\n // eslint-disable-next-line\n formatOptions.weekday = dependable.dateObject[base.days][standalone][base.monthIndex[len]];\n }\n break;\n case 'M':\n case 'L':\n if (isBlazor()) {\n // eslint-disable-next-line\n formatOptions.month = getValue('months.' + base.monthIndex[len], dateObject);\n }\n else {\n // eslint-disable-next-line\n formatOptions.month = dependable.dateObject[base.month][standalone][base.monthIndex[len]];\n }\n break;\n case 'a':\n formatOptions.designator = isBlazor() ?\n getValue('dayPeriods', dateObject) : getValue('dayPeriods.format.wide', dateObject);\n break;\n case 'G':\n // eslint-disable-next-line\n var eText = (len <= 3) ? 'eraAbbr' : (len === 4) ? 'eraNames' : 'eraNarrow';\n formatOptions.era = isBlazor() ? getValue('eras', dateObject) : getValue('eras.' + eText, dependable.dateObject);\n break;\n case 'z':\n formatOptions.timeZone = getValue('dates.timeZoneNames', dependable.parserObject);\n break;\n }\n }\n }\n return function (value) {\n if (isNaN(value.getDate())) {\n return null;\n }\n return _this.intDateFormatter(value, formatOptions);\n };\n };\n /**\n * Returns formatted date string based on options passed.\n *\n * @param {Date} value ?\n * @param {FormatOptions} options ?\n * @returns {string} ?\n */\n DateFormat.intDateFormatter = function (value, options) {\n var pattern = options.pattern;\n var ret = '';\n var matches = pattern.match(base.dateParseRegex);\n var dObject = this.getCurrentDateValue(value, options.isIslamic);\n for (var _i = 0, matches_1 = matches; _i < matches_1.length; _i++) {\n var match = matches_1[_i];\n var length_1 = match.length;\n var char = match[0];\n if (char === 'K') {\n char = 'h';\n }\n var curval = void 0;\n var curvalstr = '';\n var isNumber = void 0;\n var processNumber = void 0;\n var curstr = '';\n switch (char) {\n case 'M':\n case 'L':\n curval = dObject.month;\n if (length_1 > 2) {\n // eslint-disable-next-line\n ret += options.month[curval];\n }\n else {\n isNumber = true;\n }\n break;\n case 'E':\n case 'c':\n // eslint-disable-next-line\n ret += options.weekday[weekdayKey[value.getDay()]];\n break;\n case 'H':\n case 'h':\n case 'm':\n case 's':\n case 'd':\n case 'f':\n isNumber = true;\n if (char === 'd') {\n curval = dObject.date;\n }\n else if (char === 'f') {\n isNumber = false;\n processNumber = true;\n // eslint-disable-next-line\n curvalstr = value[timeSetter[char]]().toString();\n curvalstr = curvalstr.substring(0, length_1);\n var curlength = curvalstr.length;\n if (length_1 !== curlength) {\n if (length_1 > 3) {\n continue;\n }\n for (var i = 0; i < length_1 - curlength; i++) {\n curvalstr = '0' + curvalstr.toString();\n }\n }\n curstr += curvalstr;\n }\n else {\n // eslint-disable-next-line\n curval = value[timeSetter[char]]();\n }\n if (char === 'h') {\n curval = curval % 12 || 12;\n }\n break;\n case 'y':\n processNumber = true;\n curstr += dObject.year;\n if (length_1 === 2) {\n curstr = curstr.substr(curstr.length - 2);\n }\n break;\n case 'a':\n // eslint-disable-next-line\n var desig = value.getHours() < 12 ? 'am' : 'pm';\n // eslint-disable-next-line\n ret += options.designator[desig];\n break;\n case 'G':\n // eslint-disable-next-line\n var dec = value.getFullYear() < 0 ? 0 : 1;\n // eslint-disable-next-line\n var retu = options.era[dec];\n if (isNullOrUndefined(retu)) {\n // eslint-disable-next-line\n retu = options.era[dec ? 0 : 1];\n }\n ret += retu || '';\n break;\n case '\\'':\n ret += (match === '\\'\\'') ? '\\'' : match.replace(/'/g, '');\n break;\n case 'z':\n // eslint-disable-next-line\n var timezone = value.getTimezoneOffset();\n // eslint-disable-next-line\n var pattern_1 = (length_1 < 4) ? '+H;-H' : options.timeZone.hourFormat;\n pattern_1 = pattern_1.replace(/:/g, options.numMapper.timeSeparator);\n if (timezone === 0) {\n ret += options.timeZone.gmtZeroFormat;\n }\n else {\n processNumber = true;\n curstr = this.getTimeZoneValue(timezone, pattern_1);\n }\n curstr = options.timeZone.gmtFormat.replace(/\\{0\\}/, curstr);\n break;\n case ':':\n // eslint-disable-next-line\n ret += options.numMapper.numberSymbols[timeSeparator];\n break;\n case '/':\n ret += options.dateSeperator;\n break;\n case 'W':\n isNumber = true;\n curval = base.getWeekOfYear(value);\n break;\n default:\n ret += match;\n }\n if (isNumber) {\n processNumber = true;\n curstr = this.checkTwodigitNumber(curval, length_1);\n }\n if (processNumber) {\n ret += parser.convertValueParts(curstr, base.latnParseRegex, options.numMapper.mapper);\n }\n }\n return ret;\n };\n DateFormat.getCurrentDateValue = function (value, isIslamic) {\n if (isIslamic) {\n return HijriParser.getHijriDate(value);\n }\n return { year: value.getFullYear(), month: value.getMonth() + 1, date: value.getDate() };\n };\n /**\n * Returns two digit numbers for given value and length\n *\n * @param {number} val ?\n * @param {number} len ?\n * @returns {string} ?\n */\n DateFormat.checkTwodigitNumber = function (val, len) {\n var ret = val + '';\n if (len === 2 && ret.length !== 2) {\n return '0' + ret;\n }\n return ret;\n };\n /**\n * Returns the value of the Time Zone.\n *\n * @param {number} tVal ?\n * @param {string} pattern ?\n * @returns {string} ?\n * @private\n */\n DateFormat.getTimeZoneValue = function (tVal, pattern) {\n var _this = this;\n var splt = pattern.split(';');\n var curPattern = splt[tVal > 0 ? 1 : 0];\n var no = Math.abs(tVal);\n return curPattern = curPattern.replace(/HH?|mm/g, function (str) {\n var len = str.length;\n var ishour = str.indexOf('H') !== -1;\n return _this.checkTwodigitNumber(Math.floor(ishour ? (no / 60) : (no % 60)), len);\n });\n };\n return DateFormat;\n}());\nexport { DateFormat };\n","import { isUndefined, throwError, isNullOrUndefined, extend, isBlazor, getValue } from '../util';\nimport { defaultCurrencyCode } from '../internationalization';\nimport { IntlBase as base } from './intl-base';\nimport { ParserBase as parser } from './parser-base';\nvar errorText = {\n 'ms': 'minimumSignificantDigits',\n 'ls': 'maximumSignificantDigits',\n 'mf': 'minimumFractionDigits',\n 'lf': 'maximumFractionDigits'\n};\nvar integerError = 'minimumIntegerDigits';\nvar percentSign = 'percentSign';\nvar minusSign = 'minusSign';\nvar spaceRegex = /\\s/;\nvar mapper = ['infinity', 'nan', 'group', 'decimal', 'exponential'];\nvar infinity = 'infinity';\nvar nan = 'nan';\n/**\n * Module for number formatting.\n *\n * @private\n */\nvar NumberFormat = /** @class */ (function () {\n function NumberFormat() {\n }\n /**\n * Returns the formatter function for given skeleton.\n *\n * @param {string} culture - Specifies the culture name to be which formatting.\n * @param {NumberFormatOptions} option - Specific the format in which number will format.\n * @param {Object} cldr - Specifies the global cldr data collection.\n * @returns {Function} ?\n */\n NumberFormat.numberFormatter = function (culture, option, cldr) {\n var _this = this;\n var fOptions = extend({}, option);\n var cOptions = {};\n var dOptions = {};\n var symbolPattern;\n var dependable = base.getDependables(cldr, culture, '', true);\n var numObject = dependable.numericObject;\n dOptions.numberMapper = isBlazor() ? extend({}, numObject) :\n parser.getNumberMapper(dependable.parserObject, parser.getNumberingSystem(cldr), true);\n dOptions.currencySymbol = isBlazor() ? getValue('currencySymbol', numObject) : base.getCurrencySymbol(dependable.numericObject, fOptions.currency || defaultCurrencyCode, option.altSymbol);\n /* eslint-disable @typescript-eslint/no-explicit-any */\n dOptions.percentSymbol = isBlazor() ? getValue('numberSymbols.percentSign', numObject) :\n dOptions.numberMapper.numberSymbols[\"\" + percentSign];\n dOptions.minusSymbol = isBlazor() ? getValue('numberSymbols.minusSign', numObject) :\n dOptions.numberMapper.numberSymbols[\"\" + minusSign];\n var symbols = dOptions.numberMapper.numberSymbols;\n if ((option.format) && !(base.formatRegex.test(option.format))) {\n cOptions = base.customFormat(option.format, dOptions, dependable.numericObject);\n }\n else {\n extend(fOptions, base.getProperNumericSkeleton(option.format || 'N'));\n fOptions.isCurrency = fOptions.type === 'currency';\n fOptions.isPercent = fOptions.type === 'percent';\n if (!isBlazor()) {\n symbolPattern = base.getSymbolPattern(fOptions.type, dOptions.numberMapper.numberSystem, dependable.numericObject, fOptions.isAccount);\n }\n fOptions.groupOne = this.checkValueRange(fOptions.maximumSignificantDigits, fOptions.minimumSignificantDigits, true);\n this.checkValueRange(fOptions.maximumFractionDigits, fOptions.minimumFractionDigits, false, true);\n if (!isUndefined(fOptions.fractionDigits)) {\n fOptions.minimumFractionDigits = fOptions.maximumFractionDigits = fOptions.fractionDigits;\n }\n if (isUndefined(fOptions.useGrouping)) {\n fOptions.useGrouping = true;\n }\n if (fOptions.isCurrency && !isBlazor()) {\n symbolPattern = symbolPattern.replace(/\\u00A4/g, base.defaultCurrency);\n }\n if (!isBlazor()) {\n var split = symbolPattern.split(';');\n cOptions.nData = base.getFormatData(split[1] || '-' + split[0], true, dOptions.currencySymbol);\n cOptions.pData = base.getFormatData(split[0], false, dOptions.currencySymbol);\n if (fOptions.useGrouping) {\n fOptions.groupSeparator = symbols[mapper[2]];\n fOptions.groupData = this.getGroupingDetails(split[0]);\n }\n }\n else {\n cOptions.nData = extend({}, {}, getValue(fOptions.type + 'nData', numObject));\n cOptions.pData = extend({}, {}, getValue(fOptions.type + 'pData', numObject));\n if (fOptions.type === 'currency' && option.currency) {\n base.replaceBlazorCurrency([cOptions.pData, cOptions.nData], dOptions.currencySymbol, option.currency);\n }\n }\n var minFrac = isUndefined(fOptions.minimumFractionDigits);\n if (minFrac) {\n fOptions.minimumFractionDigits = cOptions.nData.minimumFraction;\n }\n if (isUndefined(fOptions.maximumFractionDigits)) {\n var mval = cOptions.nData.maximumFraction;\n fOptions.maximumFractionDigits = isUndefined(mval) && fOptions.isPercent ? 0 : mval;\n }\n var mfrac = fOptions.minimumFractionDigits;\n var lfrac = fOptions.maximumFractionDigits;\n if (!isUndefined(mfrac) && !isUndefined(lfrac)) {\n if (mfrac > lfrac) {\n fOptions.maximumFractionDigits = mfrac;\n }\n }\n }\n extend(cOptions.nData, fOptions);\n extend(cOptions.pData, fOptions);\n return function (value) {\n if (isNaN(value)) {\n return symbols[mapper[1]];\n }\n else if (!isFinite(value)) {\n return symbols[mapper[0]];\n }\n return _this.intNumberFormatter(value, cOptions, dOptions);\n };\n };\n /**\n * Returns grouping details for the pattern provided\n *\n * @param {string} pattern ?\n * @returns {GroupDetails} ?\n */\n NumberFormat.getGroupingDetails = function (pattern) {\n var ret = {};\n var match = pattern.match(base.negativeDataRegex);\n if (match && match[4]) {\n var pattern_1 = match[4];\n var p = pattern_1.lastIndexOf(',');\n if (p !== -1) {\n var temp = pattern_1.split('.')[0];\n ret.primary = (temp.length - p) - 1;\n var s = pattern_1.lastIndexOf(',', p - 1);\n if (s !== -1) {\n ret.secondary = p - 1 - s;\n }\n }\n }\n return ret;\n };\n /**\n * Returns if the provided integer range is valid.\n *\n * @param {number} val1 ?\n * @param {number} val2 ?\n * @param {boolean} checkbothExist ?\n * @param {boolean} isFraction ?\n * @returns {boolean} ?\n */\n NumberFormat.checkValueRange = function (val1, val2, checkbothExist, isFraction) {\n var decide = isFraction ? 'f' : 's';\n var dint = 0;\n var str1 = errorText['l' + decide];\n // eslint-disable-next-line\n var str2 = errorText['m' + decide];\n if (!isUndefined(val1)) {\n this.checkRange(val1, str1, isFraction);\n dint++;\n }\n if (!isUndefined(val2)) {\n this.checkRange(val2, str2, isFraction);\n dint++;\n }\n if (dint === 2) {\n if (val1 < val2) {\n throwError(str2 + 'specified must be less than the' + str1);\n }\n else {\n return true;\n }\n }\n else if (checkbothExist && dint === 1) {\n throwError('Both' + str2 + 'and' + str2 + 'must be present');\n }\n return false;\n };\n /**\n * Check if the provided fraction range is valid\n *\n * @param {number} val ?\n * @param {string} text ?\n * @param {boolean} isFraction ?\n * @returns {void} ?\n */\n NumberFormat.checkRange = function (val, text, isFraction) {\n var range = isFraction ? [0, 20] : [1, 21];\n if (val < range[0] || val > range[1]) {\n throwError(text + 'value must be within the range' + range[0] + 'to' + range[1]);\n }\n };\n /**\n * Returns formatted numeric string for provided formatting options\n *\n * @param {number} value ?\n * @param {base.GenericFormatOptions} fOptions ?\n * @param {CommonOptions} dOptions ?\n * @returns {string} ?\n */\n NumberFormat.intNumberFormatter = function (value, fOptions, dOptions) {\n var curData;\n if (isUndefined(fOptions.nData.type)) {\n return undefined;\n }\n else {\n if (value < 0) {\n value = value * -1;\n curData = fOptions.nData;\n }\n else if (value === 0) {\n curData = fOptions.zeroData || fOptions.pData;\n }\n else {\n curData = fOptions.pData;\n }\n var fValue = '';\n if (curData.isPercent) {\n value = value * 100;\n }\n if (curData.groupOne) {\n fValue = this.processSignificantDigits(value, curData.minimumSignificantDigits, curData.maximumSignificantDigits);\n }\n else {\n fValue = this.processFraction(value, curData.minimumFractionDigits, curData.maximumFractionDigits);\n if (curData.minimumIntegerDigits) {\n fValue = this.processMinimumIntegers(fValue, curData.minimumIntegerDigits);\n }\n if (dOptions.isCustomFormat && curData.minimumFractionDigits < curData.maximumFractionDigits\n && /\\d+\\.\\d+/.test(fValue)) {\n var temp = fValue.split('.');\n var decimalPart = temp[1];\n var len = decimalPart.length;\n for (var i = len - 1; i >= 0; i--) {\n if (decimalPart[\"\" + i] === '0' && i >= curData.minimumFractionDigits) {\n decimalPart = decimalPart.slice(0, i);\n }\n else {\n break;\n }\n }\n fValue = temp[0] + '.' + decimalPart;\n }\n }\n if (curData.type === 'scientific') {\n fValue = value.toExponential(curData.maximumFractionDigits);\n fValue = fValue.replace('e', dOptions.numberMapper.numberSymbols[mapper[4]]);\n }\n fValue = fValue.replace('.', dOptions.numberMapper.numberSymbols[mapper[3]]);\n fValue = curData.format === \"#,###,,;(#,###,,)\" ? this.customPivotFormat(parseInt(fValue)) : fValue;\n if (curData.useGrouping) {\n /* eslint-disable @typescript-eslint/no-explicit-any */\n fValue = this.groupNumbers(fValue, curData.groupData.primary, curData.groupSeparator || ',', dOptions.numberMapper.numberSymbols[mapper[3]] || '.', curData.groupData.secondary);\n }\n fValue = parser.convertValueParts(fValue, base.latnParseRegex, dOptions.numberMapper.mapper);\n if (curData.nlead === 'N/A') {\n return curData.nlead;\n }\n else {\n return curData.nlead + fValue + curData.nend;\n }\n }\n };\n /**\n * Returns significant digits processed numeric string\n *\n * @param {number} value ?\n * @param {number} min ?\n * @param {number} max ?\n * @returns {string} ?\n */\n NumberFormat.processSignificantDigits = function (value, min, max) {\n var temp = value + '';\n var tn;\n var length = temp.length;\n if (length < min) {\n return value.toPrecision(min);\n }\n else {\n temp = value.toPrecision(max);\n tn = +temp;\n return tn + '';\n }\n };\n /**\n * Returns grouped numeric string\n *\n * @param {string} val ?\n * @param {number} level1 ?\n * @param {string} sep ?\n * @param {string} decimalSymbol ?\n * @param {number} level2 ?\n * @returns {string} ?\n */\n NumberFormat.groupNumbers = function (val, level1, sep, decimalSymbol, level2) {\n var flag = !isNullOrUndefined(level2) && level2 !== 0;\n var split = val.split(decimalSymbol);\n var prefix = split[0];\n var length = prefix.length;\n var str = '';\n while (length > level1) {\n str = prefix.slice(length - level1, length) + (str.length ?\n (sep + str) : '');\n length -= level1;\n if (flag) {\n level1 = level2;\n flag = false;\n }\n }\n split[0] = prefix.slice(0, length) + (str.length ? sep : '') + str;\n return split.join(decimalSymbol);\n };\n /**\n * Returns fraction processed numeric string\n *\n * @param {number} value ?\n * @param {number} min ?\n * @param {number} max ?\n * @returns {string} ?\n */\n NumberFormat.processFraction = function (value, min, max) {\n var temp = (value + '').split('.')[1];\n var length = temp ? temp.length : 0;\n if (min && length < min) {\n var ret = '';\n if (length === 0) {\n ret = value.toFixed(min);\n }\n else {\n ret += value;\n for (var j = 0; j < min - length; j++) {\n ret += '0';\n }\n return ret;\n }\n return value.toFixed(min);\n }\n else if (!isNullOrUndefined(max) && (length > max || max === 0)) {\n return value.toFixed(max);\n }\n return value + '';\n };\n /**\n * Returns integer processed numeric string\n *\n * @param {string} value ?\n * @param {number} min ?\n * @returns {string} ?\n */\n NumberFormat.processMinimumIntegers = function (value, min) {\n var temp = value.split('.');\n var lead = temp[0];\n var len = lead.length;\n if (len < min) {\n for (var i = 0; i < min - len; i++) {\n lead = '0' + lead;\n }\n temp[0] = lead;\n }\n return temp.join('.');\n };\n /**\n * Returns custom format for pivot table\n *\n * @param {number} value ?\n */\n NumberFormat.customPivotFormat = function (value) {\n if (value >= 500000) {\n value /= 1000000;\n var _a = value.toString().split(\".\"), integer = _a[0], decimal = _a[1];\n return decimal && +decimal.substring(0, 1) >= 5\n ? Math.ceil(value).toString()\n : Math.floor(value).toString();\n }\n return \"\";\n };\n return NumberFormat;\n}());\nexport { NumberFormat };\n","import { IntlBase as base } from './intl-base';\nimport { ParserBase as parser } from './parser-base';\nimport { isUndefined, throwError, getValue, isNullOrUndefined, isBlazor } from '../util';\nimport { datePartMatcher } from './date-formatter';\nimport { HijriParser } from '../hijri-parser';\nvar standalone = 'stand-alone';\nvar latnRegex = /^[0-9]*$/;\nvar timeSetter = {\n minute: 'setMinutes',\n hour: 'setHours',\n second: 'setSeconds',\n day: 'setDate',\n month: 'setMonth',\n milliseconds: 'setMilliseconds'\n};\nvar month = 'months';\n/* tslint:disable no-any */\n/**\n * Date Parser.\n *\n * @private\n */\nvar DateParser = /** @class */ (function () {\n function DateParser() {\n }\n /**\n * Returns the parser function for given skeleton.\n *\n * @param {string} culture - Specifies the culture name to be which formatting.\n * @param {DateFormatOptions} option - Specific the format in which string date will be parsed.\n * @param {Object} cldr - Specifies the global cldr data collection.\n * @returns {Function} ?\n */\n DateParser.dateParser = function (culture, option, cldr) {\n var _this = this;\n var dependable = base.getDependables(cldr, culture, option.calendar);\n var numOptions = parser.getCurrentNumericOptions(dependable.parserObject, parser.getNumberingSystem(cldr), false, isBlazor());\n var parseOptions = {};\n if (isBlazor() && option.isServerRendered) {\n option = base.compareBlazorDateFormats(option, culture);\n }\n var resPattern = option.format ||\n base.getResultantPattern(option.skeleton, dependable.dateObject, option.type, false, isBlazor() ? culture : '');\n var regexString = '';\n var hourOnly;\n if (isUndefined(resPattern)) {\n throwError('Format options or type given must be invalid');\n }\n else {\n resPattern = base.ConvertDateToWeekFormat(resPattern);\n parseOptions = { isIslamic: base.islamicRegex.test(option.calendar), pattern: resPattern, evalposition: {}, culture: culture };\n var patternMatch = resPattern.match(base.dateParseRegex) || [];\n var length_1 = patternMatch.length;\n var gmtCorrection = 0;\n var zCorrectTemp = 0;\n var isgmtTraversed = false;\n var nRegx = numOptions.numericRegex;\n // eslint-disable-next-line\n var numMapper = isBlazor() ? dependable.parserObject.numbers :\n parser.getNumberMapper(dependable.parserObject, parser.getNumberingSystem(cldr));\n for (var i = 0; i < length_1; i++) {\n var str = patternMatch[parseInt(i.toString(), 10)];\n var len = str.length;\n var char = (str[0] === 'K') ? 'h' : str[0];\n var isNumber = void 0;\n var canUpdate = void 0;\n // eslint-disable-next-line\n var charKey = datePartMatcher[char];\n var optional = (len === 2) ? '' : '?';\n if (isgmtTraversed) {\n gmtCorrection = zCorrectTemp;\n isgmtTraversed = false;\n }\n switch (char) {\n case 'E':\n case 'c':\n // eslint-disable-next-line\n var weekData = void 0;\n if (isBlazor()) {\n // eslint-disable-next-line\n weekData = getValue('days.' + base.monthIndex[len], dependable.dateObject);\n }\n else {\n // eslint-disable-next-line\n weekData = dependable.dateObject[base.days][standalone][base.monthIndex[len]];\n }\n // eslint-disable-next-line\n var weekObject = parser.reverseObject(weekData);\n // tslint:enable\n regexString += '(' + Object.keys(weekObject).join('|') + ')';\n break;\n case 'M':\n case 'L':\n case 'd':\n case 'm':\n case 's':\n case 'h':\n case 'H':\n case 'f':\n canUpdate = true;\n if ((char === 'M' || char === 'L') && len > 2) {\n var monthData = void 0;\n if (isBlazor()) {\n // eslint-disable-next-line\n monthData = getValue('months.' + base.monthIndex[len], dependable.dateObject);\n }\n else {\n // eslint-disable-next-line\n monthData = dependable.dateObject[month][standalone][base.monthIndex[len]];\n }\n // eslint-disable-next-line\n parseOptions[charKey] = parser.reverseObject(monthData);\n // eslint-disable-next-line\n regexString += '(' + Object.keys(parseOptions[charKey]).join('|') + ')';\n }\n else if (char === 'f') {\n if (len > 3) {\n continue;\n }\n isNumber = true;\n regexString += '(' + nRegx + nRegx + '?' + nRegx + '?' + ')';\n }\n else {\n isNumber = true;\n regexString += '(' + nRegx + nRegx + optional + ')';\n }\n if (char === 'h') {\n parseOptions.hour12 = true;\n }\n break;\n case 'W':\n // eslint-disable-next-line\n var opt = len === 1 ? '?' : '';\n regexString += '(' + nRegx + opt + nRegx + ')';\n break;\n case 'y':\n canUpdate = isNumber = true;\n if (len === 2) {\n regexString += '(' + nRegx + nRegx + ')';\n }\n else {\n regexString += '(' + nRegx + '{' + len + ',})';\n }\n break;\n case 'a':\n canUpdate = true;\n // eslint-disable-next-line\n var periodValur = isBlazor() ?\n getValue('dayPeriods', dependable.dateObject) :\n getValue('dayPeriods.format.wide', dependable.dateObject);\n // eslint-disable-next-line\n parseOptions[charKey] = parser.reverseObject(periodValur);\n // eslint-disable-next-line\n regexString += '(' + Object.keys(parseOptions[charKey]).join('|') + ')';\n break;\n case 'G':\n canUpdate = true;\n // eslint-disable-next-line\n var eText = (len <= 3) ? 'eraAbbr' : (len === 4) ? 'eraNames' : 'eraNarrow';\n // eslint-disable-next-line\n parseOptions[charKey] = parser.reverseObject(isBlazor() ?\n getValue('eras', dependable.dateObject) : getValue('eras.' + eText, dependable.dateObject));\n // eslint-disable-next-line\n regexString += '(' + Object.keys(parseOptions[charKey]).join('|') + '?)';\n break;\n case 'z':\n // eslint-disable-next-line\n var tval = new Date().getTimezoneOffset();\n canUpdate = (tval !== 0);\n // eslint-disable-next-line\n parseOptions[charKey] = getValue('dates.timeZoneNames', dependable.parserObject);\n // eslint-disable-next-line\n var tzone = parseOptions[charKey];\n hourOnly = (len < 4);\n // eslint-disable-next-line\n var hpattern = hourOnly ? '+H;-H' : tzone.hourFormat;\n hpattern = hpattern.replace(/:/g, numMapper.timeSeparator);\n regexString += '(' + this.parseTimeZoneRegx(hpattern, tzone, nRegx) + ')?';\n isgmtTraversed = true;\n zCorrectTemp = hourOnly ? 6 : 12;\n break;\n case '\\'':\n // eslint-disable-next-line\n var iString = str.replace(/'/g, '');\n regexString += '(' + iString + ')?';\n break;\n default:\n regexString += '([\\\\D])';\n break;\n }\n if (canUpdate) {\n parseOptions.evalposition[\"\" + charKey] = { isNumber: isNumber, pos: i + 1 + gmtCorrection, hourOnly: hourOnly };\n }\n if (i === length_1 - 1 && !isNullOrUndefined(regexString)) {\n var regExp = RegExp;\n parseOptions.parserRegex = new regExp('^' + regexString + '$', 'i');\n }\n }\n }\n return function (value) {\n var parsedDateParts = _this.internalDateParse(value, parseOptions, numOptions);\n if (isNullOrUndefined(parsedDateParts) || !Object.keys(parsedDateParts).length) {\n return null;\n }\n if (parseOptions.isIslamic) {\n var dobj = {};\n var tYear = parsedDateParts.year;\n var tDate = parsedDateParts.day;\n var tMonth = parsedDateParts.month;\n var ystrig = tYear ? (tYear + '') : '';\n var is2DigitYear = (ystrig.length === 2);\n if (!tYear || !tMonth || !tDate || is2DigitYear) {\n dobj = HijriParser.getHijriDate(new Date());\n }\n if (is2DigitYear) {\n tYear = parseInt((dobj.year + '').slice(0, 2) + ystrig, 10);\n }\n // tslint:disable-next-line\n var dateObject = HijriParser.toGregorian(tYear || dobj.year, tMonth || dobj.month, tDate || dobj.date);\n parsedDateParts.year = dateObject.getFullYear();\n parsedDateParts.month = dateObject.getMonth() + 1;\n parsedDateParts.day = dateObject.getDate();\n }\n return _this.getDateObject(parsedDateParts);\n };\n };\n /* tslint:disable */\n /**\n * Returns date object for provided date options\n *\n * @param {DateParts} options ?\n * @param {Date} value ?\n * @returns {Date} ?\n */\n DateParser.getDateObject = function (options, value) {\n var res = value || new Date();\n res.setMilliseconds(0);\n var tKeys = ['hour', 'minute', 'second', 'milliseconds', 'month', 'day'];\n var y = options.year;\n var desig = options.designator;\n var tzone = options.timeZone;\n if (!isUndefined(y)) {\n var len = (y + '').length;\n if (len <= 2) {\n var century = Math.floor(res.getFullYear() / 100) * 100;\n y += century;\n }\n res.setFullYear(y);\n }\n for (var _i = 0, tKeys_1 = tKeys; _i < tKeys_1.length; _i++) {\n var key = tKeys_1[_i];\n // eslint-disable-next-line\n var tValue = options[key];\n if (isUndefined(tValue) && key === 'day') {\n res.setDate(1);\n }\n if (!isUndefined(tValue)) {\n if (key === 'month') {\n tValue -= 1;\n if (tValue < 0 || tValue > 11) {\n return new Date('invalid');\n }\n var pDate = res.getDate();\n res.setDate(1);\n // eslint-disable-next-line\n res[timeSetter[key]](tValue);\n var lDate = new Date(res.getFullYear(), tValue + 1, 0).getDate();\n res.setDate(pDate < lDate ? pDate : lDate);\n }\n else {\n if (key === 'day') {\n var lastDay = new Date(res.getFullYear(), res.getMonth() + 1, 0).getDate();\n if ((tValue < 1 || tValue > lastDay)) {\n return null;\n }\n }\n // eslint-disable-next-line\n res[timeSetter[key]](tValue);\n }\n }\n }\n if (!isUndefined(desig)) {\n var hour = res.getHours();\n if (desig === 'pm') {\n res.setHours(hour + (hour === 12 ? 0 : 12));\n }\n else if (hour === 12) {\n res.setHours(0);\n }\n }\n if (!isUndefined(tzone)) {\n var tzValue = tzone - res.getTimezoneOffset();\n if (tzValue !== 0) {\n res.setMinutes(res.getMinutes() + tzValue);\n }\n }\n return res;\n };\n /**\n * Returns date parsing options for provided value along with parse and numeric options\n *\n * @param {string} value ?\n * @param {ParseOptions} parseOptions ?\n * @param {NumericOptions} num ?\n * @returns {DateParts} ?\n */\n DateParser.internalDateParse = function (value, parseOptions, num) {\n var matches = value.match(parseOptions.parserRegex);\n var retOptions = { 'hour': 0, 'minute': 0, 'second': 0 };\n if (isNullOrUndefined(matches)) {\n return null;\n }\n else {\n var props = Object.keys(parseOptions.evalposition);\n for (var _i = 0, props_1 = props; _i < props_1.length; _i++) {\n var prop = props_1[_i];\n var curObject = parseOptions.evalposition[\"\" + prop];\n var matchString = matches[curObject.pos];\n if (curObject.isNumber) {\n // eslint-disable-next-line\n retOptions[prop] = this.internalNumberParser(matchString, num);\n }\n else {\n if (prop === 'timeZone' && !isUndefined(matchString)) {\n var pos = curObject.pos;\n var val = void 0;\n var tmatch = matches[pos + 1];\n var flag = !isUndefined(tmatch);\n if (curObject.hourOnly) {\n val = this.getZoneValue(flag, tmatch, matches[pos + 4], num) * 60;\n }\n else {\n val = this.getZoneValue(flag, tmatch, matches[pos + 7], num) * 60;\n val += this.getZoneValue(flag, matches[pos + 4], matches[pos + 10], num);\n }\n if (!isNullOrUndefined(val)) {\n retOptions[\"\" + prop] = val;\n }\n }\n else {\n // eslint-disable-next-line\n matchString = ((prop === 'month') && (!parseOptions.isIslamic) && (parseOptions.culture === 'en' || parseOptions.culture === 'en-GB' || parseOptions.culture === 'en-US'))\n ? matchString[0].toUpperCase() + matchString.substring(1).toLowerCase() : matchString;\n // eslint-disable-next-line\n retOptions[prop] = parseOptions[prop][matchString];\n }\n }\n }\n if (parseOptions.hour12) {\n retOptions.hour12 = true;\n }\n }\n return retOptions;\n };\n /**\n * Returns parsed number for provided Numeric string and Numeric Options\n *\n * @param {string} value ?\n * @param {NumericOptions} option ?\n * @returns {number} ?\n */\n DateParser.internalNumberParser = function (value, option) {\n value = parser.convertValueParts(value, option.numberParseRegex, option.numericPair);\n if (latnRegex.test(value)) {\n return +value;\n }\n return null;\n };\n /**\n * Returns parsed time zone RegExp for provided hour format and time zone\n *\n * @param {string} hourFormat ?\n * @param {base.TimeZoneOptions} tZone ?\n * @param {string} nRegex ?\n * @returns {string} ?\n */\n DateParser.parseTimeZoneRegx = function (hourFormat, tZone, nRegex) {\n var pattern = tZone.gmtFormat;\n var ret;\n var cRegex = '(' + nRegex + ')' + '(' + nRegex + ')';\n var splitStr;\n ret = hourFormat.replace('+', '\\\\+');\n if (hourFormat.indexOf('HH') !== -1) {\n ret = ret.replace(/HH|mm/g, '(' + cRegex + ')');\n }\n else {\n ret = ret.replace(/H|m/g, '(' + cRegex + '?)');\n }\n // eslint-disable-next-line\n splitStr = (ret.split(';').map(function (str) {\n return pattern.replace('{0}', str);\n }));\n ret = splitStr.join('|') + '|' + tZone.gmtZeroFormat;\n return ret;\n };\n /**\n * Returns zone based value.\n *\n * @param {boolean} flag ?\n * @param {string} val1 ?\n * @param {string} val2 ?\n * @param {NumericOptions} num ?\n * @returns {number} ?\n */\n DateParser.getZoneValue = function (flag, val1, val2, num) {\n var ival = flag ? val1 : val2;\n if (!ival) {\n return 0;\n }\n var value = this.internalNumberParser(ival, num);\n if (flag) {\n return -value;\n }\n return value;\n };\n return DateParser;\n}());\nexport { DateParser };\n","import { extend, isNullOrUndefined, isBlazor, getValue } from '../util';\nimport { ParserBase as parser } from './parser-base';\nimport { IntlBase as base } from './intl-base';\nvar regExp = RegExp;\nvar parseRegex = new regExp('^([^0-9]*)' + '(([0-9,]*[0-9]+)(\\.[0-9]+)?)' + '([Ee][+-]?[0-9]+)?([^0-9]*)$');\nvar groupRegex = /,/g;\nvar keys = ['minusSign', 'infinity'];\n/**\n * Module for Number Parser.\n *\n * @private\n */\nvar NumberParser = /** @class */ (function () {\n function NumberParser() {\n }\n /**\n * Returns the parser function for given skeleton.\n *\n * @param {string} culture - Specifies the culture name to be which formatting.\n * @param {NumberFormatOptions} option - Specific the format in which number will parsed.\n * @param {Object} cldr - Specifies the global cldr data collection.\n * @returns {Function} ?\n */\n NumberParser.numberParser = function (culture, option, cldr) {\n var _this = this;\n var dependable = base.getDependables(cldr, culture, '', true);\n var parseOptions = { custom: true };\n var numOptions;\n if ((base.formatRegex.test(option.format)) || !(option.format)) {\n extend(parseOptions, base.getProperNumericSkeleton(option.format || 'N'));\n parseOptions.custom = false;\n if (!parseOptions.fractionDigits) {\n if (option.maximumFractionDigits) {\n parseOptions.maximumFractionDigits = option.maximumFractionDigits;\n }\n }\n }\n else {\n extend(parseOptions, base.customFormat(option.format, null, null));\n }\n var numbers = getValue('numbers', dependable.parserObject);\n // eslint-disable-next-line\n numOptions = parser.getCurrentNumericOptions(dependable.parserObject, parser.getNumberingSystem(cldr), true, isBlazor());\n parseOptions.symbolRegex = parser.getSymbolRegex(Object.keys(numOptions.symbolMatch));\n // eslint-disable-next-line\n parseOptions.infinity = numOptions.symbolNumberSystem[keys[1]];\n var symbolpattern;\n if (!isBlazor()) {\n symbolpattern = base.getSymbolPattern(parseOptions.type, numOptions.numberSystem, dependable.numericObject, parseOptions.isAccount);\n if (symbolpattern) {\n symbolpattern = symbolpattern.replace(/\\u00A4/g, base.defaultCurrency);\n var split = symbolpattern.split(';');\n parseOptions.nData = base.getFormatData(split[1] || '-' + split[0], true, '');\n parseOptions.pData = base.getFormatData(split[0], true, '');\n }\n }\n else {\n parseOptions.nData = extend({}, {}, getValue(parseOptions.type + 'nData', numbers));\n parseOptions.pData = extend({}, {}, getValue(parseOptions.type + 'pData', numbers));\n if (parseOptions.type === 'currency' && option.currency) {\n base.replaceBlazorCurrency([parseOptions.pData, parseOptions.nData], getValue('currencySymbol', numbers), option.currency);\n }\n }\n return function (value) {\n return _this.getParsedNumber(value, parseOptions, numOptions);\n };\n };\n /**\n * Returns parsed number for the provided formatting options\n *\n * @param {string} value ?\n * @param {NumericParts} options ?\n * @param {NumericOptions} numOptions ?\n * @returns {number} ?\n */\n NumberParser.getParsedNumber = function (value, options, numOptions) {\n var isNegative;\n var isPercent;\n var tempValue;\n var lead;\n var end;\n var ret;\n if (value.indexOf(options.infinity) !== -1) {\n return Infinity;\n }\n else {\n value = parser.convertValueParts(value, options.symbolRegex, numOptions.symbolMatch);\n value = parser.convertValueParts(value, numOptions.numberParseRegex, numOptions.numericPair);\n value = value.indexOf('-') !== -1 ? value.replace('-.', '-0.') : value;\n if (value.indexOf('.') === 0) {\n value = '0' + value;\n }\n var matches = value.match(parseRegex);\n if (isNullOrUndefined(matches)) {\n return NaN;\n }\n lead = matches[1];\n tempValue = matches[2];\n var exponent = matches[5];\n end = matches[6];\n isNegative = options.custom ? ((lead === options.nData.nlead) && (end === options.nData.nend)) :\n ((lead.indexOf(options.nData.nlead) !== -1) && (end.indexOf(options.nData.nend) !== -1));\n isPercent = isNegative ?\n options.nData.isPercent :\n options.pData.isPercent;\n tempValue = tempValue.replace(groupRegex, '');\n if (exponent) {\n tempValue += exponent;\n }\n ret = +tempValue;\n if (options.type === 'percent' || isPercent) {\n ret = ret / 100;\n }\n if (options.custom || options.fractionDigits) {\n ret = parseFloat(ret.toFixed(options.custom ?\n (isNegative ? options.nData.maximumFractionDigits : options.pData.maximumFractionDigits) : options.fractionDigits));\n }\n if (options.maximumFractionDigits) {\n ret = this.convertMaxFracDigits(tempValue, options, ret, isNegative);\n }\n if (isNegative) {\n ret *= -1;\n }\n return ret;\n }\n };\n NumberParser.convertMaxFracDigits = function (value, options, ret, isNegative) {\n var decimalSplitValue = value.split('.');\n if (decimalSplitValue[1] && decimalSplitValue[1].length > options.maximumFractionDigits) {\n ret = +(ret.toFixed(options.custom ?\n (isNegative ? options.nData.maximumFractionDigits : options.pData.maximumFractionDigits) : options.maximumFractionDigits));\n }\n return ret;\n };\n return NumberParser;\n}());\nexport { NumberParser };\n","import { isNullOrUndefined, getValue, extend, isBlazor } from './util';\nvar Observer = /** @class */ (function () {\n function Observer(context) {\n this.ranArray = [];\n this.boundedEvents = {};\n if (isNullOrUndefined(context)) {\n return;\n }\n this.context = context;\n }\n /**\n * To attach handler for given property in current context.\n *\n * @param {string} property - specifies the name of the event.\n * @param {Function} handler - Specifies the handler function to be called while event notified.\n * @param {Object} context - Specifies the context binded to the handler.\n * @param {string} id - specifies the random generated id.\n * @returns {void}\n */\n Observer.prototype.on = function (property, handler, context, id) {\n if (isNullOrUndefined(handler)) {\n return;\n }\n var cntxt = context || this.context;\n if (this.notExist(property)) {\n this.boundedEvents[\"\" + property] = [{ handler: handler, context: cntxt }];\n return;\n }\n if (!isNullOrUndefined(id)) {\n if (this.ranArray.indexOf(id) === -1) {\n this.ranArray.push(id);\n this.boundedEvents[\"\" + property].push({ handler: handler, context: cntxt, id: id });\n }\n }\n else if (!this.isHandlerPresent(this.boundedEvents[\"\" + property], handler)) {\n this.boundedEvents[\"\" + property].push({ handler: handler, context: cntxt });\n }\n };\n /**\n * To remove handlers from a event attached using on() function.\n *\n * @param {string} property - specifies the name of the event.\n * @param {Function} handler - Optional argument specifies the handler function to be called while event notified.\n * @param {string} id - specifies the random generated id.\n * @returns {void} ?\n */\n Observer.prototype.off = function (property, handler, id) {\n if (this.notExist(property)) {\n return;\n }\n var curObject = getValue(property, this.boundedEvents);\n if (handler) {\n for (var i = 0; i < curObject.length; i++) {\n if (id) {\n if (curObject[parseInt(i.toString(), 10)].id === id) {\n curObject.splice(i, 1);\n var indexLocation = this.ranArray.indexOf(id);\n if (indexLocation !== -1) {\n this.ranArray.splice(indexLocation, 1);\n }\n break;\n }\n }\n else if (handler === curObject[parseInt(i.toString(), 10)].handler) {\n curObject.splice(i, 1);\n break;\n }\n }\n }\n else {\n delete this.boundedEvents[\"\" + property];\n }\n };\n /**\n * To notify the handlers in the specified event.\n *\n * @param {string} property - Specifies the event to be notify.\n * @param {Object} argument - Additional parameters to pass while calling the handler.\n * @param {Function} successHandler - this function will invoke after event successfully triggered\n * @param {Function} errorHandler - this function will invoke after event if it was failure to call.\n * @returns {void} ?\n */\n Observer.prototype.notify = function (property, argument, successHandler, errorHandler) {\n if (this.notExist(property)) {\n if (successHandler) {\n successHandler.call(this, argument);\n }\n return;\n }\n if (argument) {\n argument.name = property;\n }\n var blazor = 'Blazor';\n var curObject = getValue(property, this.boundedEvents).slice(0);\n if (window[\"\" + blazor]) {\n return this.blazorCallback(curObject, argument, successHandler, errorHandler, 0);\n }\n else {\n for (var _i = 0, curObject_1 = curObject; _i < curObject_1.length; _i++) {\n var cur = curObject_1[_i];\n cur.handler.call(cur.context, argument);\n }\n if (successHandler) {\n successHandler.call(this, argument);\n }\n }\n };\n Observer.prototype.blazorCallback = function (objs, argument, successHandler, errorHandler, index) {\n var _this = this;\n var isTrigger = index === objs.length - 1;\n if (index < objs.length) {\n var obj_1 = objs[parseInt(index.toString(), 10)];\n var promise = obj_1.handler.call(obj_1.context, argument);\n if (promise && typeof promise.then === 'function') {\n if (!successHandler) {\n return promise;\n }\n promise.then(function (data) {\n data = typeof data === 'string' && _this.isJson(data) ? JSON.parse(data, _this.dateReviver) : data;\n extend(argument, argument, data, true);\n if (successHandler && isTrigger) {\n successHandler.call(obj_1.context, argument);\n }\n else {\n return _this.blazorCallback(objs, argument, successHandler, errorHandler, index + 1);\n }\n }).catch(function (data) {\n if (errorHandler) {\n errorHandler.call(obj_1.context, typeof data === 'string' &&\n _this.isJson(data) ? JSON.parse(data, _this.dateReviver) : data);\n }\n });\n }\n else if (successHandler && isTrigger) {\n successHandler.call(obj_1.context, argument);\n }\n else {\n return this.blazorCallback(objs, argument, successHandler, errorHandler, index + 1);\n }\n }\n };\n // eslint-disable-next-line\n Observer.prototype.dateReviver = function (key, value) {\n var dPattern = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}/;\n if (isBlazor && typeof value === 'string' && value.match(dPattern) !== null) {\n return (new Date(value));\n }\n return (value);\n };\n Observer.prototype.isJson = function (value) {\n try {\n JSON.parse(value);\n }\n catch (e) {\n return false;\n }\n return true;\n };\n /**\n * To destroy handlers in the event\n *\n * @returns {void} ?\n */\n Observer.prototype.destroy = function () {\n this.boundedEvents = this.context = undefined;\n };\n /**\n * Returns if the property exists.\n *\n * @param {string} prop ?\n * @returns {boolean} ?\n */\n Observer.prototype.notExist = function (prop) {\n // eslint-disable-next-line\n return this.boundedEvents.hasOwnProperty(prop) === false || this.boundedEvents[prop].length <= 0;\n };\n /**\n * Returns if the handler is present.\n *\n * @param {BoundOptions[]} boundedEvents ?\n * @param {Function} handler ?\n * @returns {boolean} ?\n */\n Observer.prototype.isHandlerPresent = function (boundedEvents, handler) {\n for (var _i = 0, boundedEvents_1 = boundedEvents; _i < boundedEvents_1.length; _i++) {\n var cur = boundedEvents_1[_i];\n if (cur.handler === handler) {\n return true;\n }\n }\n return false;\n };\n return Observer;\n}());\nexport { Observer };\n","import { DateFormat } from './intl/date-formatter';\nimport { NumberFormat } from './intl/number-formatter';\nimport { DateParser } from './intl/date-parser';\nimport { NumberParser } from './intl/number-parser';\nimport { IntlBase } from './intl/intl-base';\nimport { extend, getValue, isBlazor } from './util';\nimport { Observer } from './observer';\n/**\n * Specifies the observer used for external change detection.\n */\nexport var onIntlChange = new Observer();\n/**\n * Specifies the default rtl status for EJ2 components.\n */\nexport var rightToLeft = false;\n/**\n * Specifies the CLDR data loaded for internationalization functionalities.\n *\n * @private\n */\nexport var cldrData = {};\n/**\n * Specifies the default culture value to be considered.\n *\n * @private\n */\nexport var defaultCulture = 'en-US';\n/**\n * Specifies default currency code to be considered\n *\n * @private\n */\nexport var defaultCurrencyCode = 'USD';\nvar mapper = ['numericObject', 'dateObject'];\n/**\n * Internationalization class provides support to parse and format the number and date object to the desired format.\n * ```typescript\n * // To set the culture globally\n * setCulture('en-GB');\n *\n * // To set currency code globally\n * setCurrencyCode('EUR');\n *\n * //Load cldr data\n * loadCldr(gregorainData);\n * loadCldr(timeZoneData);\n * loadCldr(numbersData);\n * loadCldr(numberSystemData);\n *\n * // To use formatter in component side\n * let Intl:Internationalization = new Internationalization();\n *\n * // Date formatting\n * let dateFormatter: Function = Intl.getDateFormat({skeleton:'long',type:'dateTime'});\n * dateFormatter(new Date('11/2/2016'));\n * dateFormatter(new Date('25/2/2030'));\n * Intl.formatDate(new Date(),{skeleton:'E'});\n *\n * //Number formatting\n * let numberFormatter: Function = Intl.getNumberFormat({skeleton:'C5'})\n * numberFormatter(24563334);\n * Intl.formatNumber(123123,{skeleton:'p2'});\n *\n * // Date parser\n * let dateParser: Function = Intl.getDateParser({skeleton:'short',type:'time'});\n * dateParser('10:30 PM');\n * Intl.parseDate('10',{skeleton:'H'});\n * ```\n */\nvar Internationalization = /** @class */ (function () {\n function Internationalization(cultureName) {\n if (cultureName) {\n this.culture = cultureName;\n }\n }\n /**\n * Returns the format function for given options.\n *\n * @param {DateFormatOptions} options - Specifies the format options in which the format function will return.\n * @returns {Function} ?\n */\n Internationalization.prototype.getDateFormat = function (options) {\n return DateFormat.dateFormat(this.getCulture(), options || { type: 'date', skeleton: 'short' }, cldrData);\n };\n /**\n * Returns the format function for given options.\n *\n * @param {NumberFormatOptions} options - Specifies the format options in which the format function will return.\n * @returns {Function} ?\n */\n Internationalization.prototype.getNumberFormat = function (options) {\n if (options && !options.currency) {\n options.currency = defaultCurrencyCode;\n }\n if (isBlazor() && options && !options.format) {\n options.minimumFractionDigits = 0;\n }\n return NumberFormat.numberFormatter(this.getCulture(), options || {}, cldrData);\n };\n /**\n * Returns the parser function for given options.\n *\n * @param {DateFormatOptions} options - Specifies the format options in which the parser function will return.\n * @returns {Function} ?\n */\n Internationalization.prototype.getDateParser = function (options) {\n return DateParser.dateParser(this.getCulture(), options || { skeleton: 'short', type: 'date' }, cldrData);\n };\n /**\n * Returns the parser function for given options.\n *\n * @param {NumberFormatOptions} options - Specifies the format options in which the parser function will return.\n * @returns {Function} ?\n */\n Internationalization.prototype.getNumberParser = function (options) {\n if (isBlazor() && options && !options.format) {\n options.minimumFractionDigits = 0;\n }\n return NumberParser.numberParser(this.getCulture(), options || { format: 'N' }, cldrData);\n };\n /**\n * Returns the formatted string based on format options.\n *\n * @param {number} value - Specifies the number to format.\n * @param {NumberFormatOptions} option - Specifies the format options in which the number will be formatted.\n * @returns {string} ?\n */\n Internationalization.prototype.formatNumber = function (value, option) {\n return this.getNumberFormat(option)(value);\n };\n /**\n * Returns the formatted date string based on format options.\n *\n * @param {Date} value - Specifies the number to format.\n * @param {DateFormatOptions} option - Specifies the format options in which the number will be formatted.\n * @returns {string} ?\n */\n Internationalization.prototype.formatDate = function (value, option) {\n return this.getDateFormat(option)(value);\n };\n /**\n * Returns the date object for given date string and options.\n *\n * @param {string} value - Specifies the string to parse.\n * @param {DateFormatOptions} option - Specifies the parse options in which the date string will be parsed.\n * @returns {Date} ?\n */\n Internationalization.prototype.parseDate = function (value, option) {\n return this.getDateParser(option)(value);\n };\n /**\n * Returns the number object from the given string value and options.\n *\n * @param {string} value - Specifies the string to parse.\n * @param {NumberFormatOptions} option - Specifies the parse options in which the string number will be parsed.\n * @returns {number} ?\n */\n Internationalization.prototype.parseNumber = function (value, option) {\n return this.getNumberParser(option)(value);\n };\n /**\n * Returns Native Date Time Pattern\n *\n * @param {DateFormatOptions} option - Specifies the parse options for resultant date time pattern.\n * @param {boolean} isExcelFormat - Specifies format value to be converted to excel pattern.\n * @returns {string} ?\n * @private\n */\n Internationalization.prototype.getDatePattern = function (option, isExcelFormat) {\n return IntlBase.getActualDateTimeFormat(this.getCulture(), option, cldrData, isExcelFormat);\n };\n /**\n * Returns Native Number Pattern\n *\n * @param {NumberFormatOptions} option - Specifies the parse options for resultant number pattern.\n * @param {boolean} isExcel ?\n * @returns {string} ?\n * @private\n */\n Internationalization.prototype.getNumberPattern = function (option, isExcel) {\n return IntlBase.getActualNumberFormat(this.getCulture(), option, cldrData, isExcel);\n };\n /**\n * Returns the First Day of the Week\n *\n * @returns {number} ?\n */\n Internationalization.prototype.getFirstDayOfWeek = function () {\n return IntlBase.getWeekData(this.getCulture(), cldrData);\n };\n /**\n * Returns the culture\n *\n * @returns {string} ?\n */\n Internationalization.prototype.getCulture = function () {\n return this.culture || defaultCulture;\n };\n return Internationalization;\n}());\nexport { Internationalization };\n/**\n * Set the default culture to all EJ2 components\n *\n * @param {string} cultureName - Specifies the culture name to be set as default culture.\n * @returns {void} ?\n */\nexport function setCulture(cultureName) {\n defaultCulture = cultureName;\n onIntlChange.notify('notifyExternalChange', { 'locale': defaultCulture });\n}\n/**\n * Set the default currency code to all EJ2 components\n *\n * @param {string} currencyCode Specifies the culture name to be set as default culture.\n * @returns {void} ?\n */\nexport function setCurrencyCode(currencyCode) {\n defaultCurrencyCode = currencyCode;\n onIntlChange.notify('notifyExternalChange', { 'currencyCode': defaultCurrencyCode });\n}\n/**\n * Load the CLDR data into context\n *\n * @param {Object[]} data Specifies the CLDR data's to be used for formatting and parser.\n * @returns {void} ?\n */\nexport function loadCldr() {\n var data = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n data[_i] = arguments[_i];\n }\n for (var _a = 0, data_1 = data; _a < data_1.length; _a++) {\n var obj = data_1[_a];\n extend(cldrData, obj, {}, true);\n }\n}\n/**\n * To enable or disable RTL functionality for all components globally.\n *\n * @param {boolean} status - Optional argument Specifies the status value to enable or disable rtl option.\n * @returns {void} ?\n */\nexport function enableRtl(status) {\n if (status === void 0) { status = true; }\n rightToLeft = status;\n onIntlChange.notify('notifyExternalChange', { enableRtl: rightToLeft });\n}\n/**\n * To get the numeric CLDR object for given culture\n *\n * @param {string} locale - Specifies the locale for which numericObject to be returned.\n * @param {string} type ?\n * @returns {Object} ?\n * @ignore\n * @private\n */\nexport function getNumericObject(locale, type) {\n // eslint-disable-next-line\n var numObject = IntlBase.getDependables(cldrData, locale, '', true)[mapper[0]];\n // eslint-disable-next-line\n var dateObject = IntlBase.getDependables(cldrData, locale, '')[mapper[1]];\n var numSystem = getValue('defaultNumberingSystem', numObject);\n var symbPattern = isBlazor() ? getValue('numberSymbols', numObject) : getValue('symbols-numberSystem-' + numSystem, numObject);\n var pattern = IntlBase.getSymbolPattern(type || 'decimal', numSystem, numObject, false);\n return extend(symbPattern, IntlBase.getFormatData(pattern, true, '', true), { 'dateSeparator': IntlBase.getDateSeparator(dateObject) });\n}\n/**\n * To get the numeric CLDR number base object for given culture\n *\n * @param {string} locale - Specifies the locale for which numericObject to be returned.\n * @param {string} currency - Specifies the currency for which numericObject to be returned.\n * @returns {string} ?\n * @ignore\n * @private\n */\nexport function getNumberDependable(locale, currency) {\n // eslint-disable-next-line\n var numObject = IntlBase.getDependables(cldrData, locale, '', true);\n // eslint-disable-next-line\n return IntlBase.getCurrencySymbol(numObject.numericObject, currency);\n}\n/**\n * To get the default date CLDR object.\n *\n * @param {string} mode ?\n * @returns {Object} ?\n * @ignore\n * @private\n */\nexport function getDefaultDateObject(mode) {\n // eslint-disable-next-line\n return IntlBase.getDependables(cldrData, '', mode, false)[mapper[1]];\n}\n","import { defaultCurrencyCode } from '../internationalization';\nimport { getValue, isNullOrUndefined, extend, isBlazor } from '../util';\nimport { ParserBase as parser, getBlazorCurrencySymbol } from './parser-base';\nimport { DateFormat } from './date-formatter';\nimport { NumberFormat } from './number-formatter';\nimport { isUndefined } from '../util';\nvar regExp = RegExp;\nexport var blazorCultureFormats = {\n 'en-US': {\n 'd': 'M/d/y',\n 'D': 'EEEE, MMMM d, y',\n 'f': 'EEEE, MMMM d, y h:mm a',\n 'F': 'EEEE, MMMM d, y h:mm:s a',\n 'g': 'M/d/y h:mm a',\n 'G': 'M/d/yyyy h:mm:ss tt',\n 'm': 'MMMM d',\n 'M': 'MMMM d',\n 'r': 'ddd, dd MMM yyyy HH\\':\\'mm\\':\\'ss \\'GMT\\'',\n 'R': 'ddd, dd MMM yyyy HH\\':\\'mm\\':\\'ss \\'GMT\\'',\n 's': 'yyyy\\'-\\'MM\\'-\\'dd\\'T\\'HH\\':\\'mm\\':\\'ss',\n 't': 'h:mm tt',\n 'T': 'h:m:s tt',\n 'u': 'yyyy\\'-\\'MM\\'-\\'dd HH\\':\\'mm\\':\\'ss\\'Z\\'',\n 'U': 'dddd, MMMM d, yyyy h:mm:ss tt',\n 'y': 'MMMM yyyy',\n 'Y': 'MMMM yyyy'\n }\n};\n/**\n * Date base common constants and function for date parser and formatter.\n */\n// eslint-disable-next-line\nexport var IntlBase;\n(function (IntlBase) {\n /* eslint-disable */\n // tslint:disable-next-line:max-line-length.\n IntlBase.negativeDataRegex = /^(('[^']+'|''|[^*#@0,.E])*)(\\*.)?((([#,]*[0,]*0+)(\\.0*[0-9]*#*)?)|([#,]*@+#*))(E\\+?0+)?(('[^']+'|''|[^*#@0,.E])*)$/;\n IntlBase.customRegex = /^(('[^']+'|''|[^*#@0,.])*)(\\*.)?((([0#,]*[0,]*[0#]*[0#\\ ]*)(\\.[0#]*)?)|([#,]*@+#*))(E\\+?0+)?(('[^']+'|''|[^*#@0,.E])*)$/;\n IntlBase.latnParseRegex = /0|1|2|3|4|5|6|7|8|9/g;\n var fractionRegex = /[0-9]/g;\n IntlBase.defaultCurrency = '$';\n var mapper = ['infinity', 'nan', 'group', 'decimal'];\n var patternRegex = /G|M|L|H|c|'| a|yy|y|EEEE|E/g;\n var patternMatch = {\n 'G': '',\n 'M': 'm',\n 'L': 'm',\n 'H': 'h',\n 'c': 'd',\n '\\'': '\"',\n ' a': ' AM/PM',\n 'yy': 'yy',\n 'y': 'yyyy',\n 'EEEE': 'dddd',\n 'E': 'ddd'\n };\n IntlBase.dateConverterMapper = /dddd|ddd/ig;\n var defaultFirstDay = 'sun';\n IntlBase.islamicRegex = /^islamic/;\n var firstDayMapper = {\n 'sun': 0,\n 'mon': 1,\n 'tue': 2,\n 'wed': 3,\n 'thu': 4,\n 'fri': 5,\n 'sat': 6\n };\n IntlBase.formatRegex = new regExp(\"(^[ncpae]{1})([0-1]?[0-9]|20)?$\", \"i\");\n IntlBase.currencyFormatRegex = new regExp(\"(^[ca]{1})([0-1]?[0-9]|20)?$\", \"i\");\n IntlBase.curWithoutNumberRegex = /(c|a)$/ig;\n var typeMapper = {\n '$': 'isCurrency',\n '%': 'isPercent',\n '-': 'isNegative',\n 0: 'nlead',\n 1: 'nend'\n };\n IntlBase.dateParseRegex = /([a-z])\\1*|'([^']|'')+'|''|./gi;\n IntlBase.basicPatterns = ['short', 'medium', 'long', 'full'];\n /* tslint:disable:quotemark */\n IntlBase.defaultObject = {\n 'dates': {\n 'calendars': {\n 'gregorian': {\n 'months': {\n 'stand-alone': {\n 'abbreviated': {\n '1': 'Jan',\n '2': 'Feb',\n '3': 'Mar',\n '4': 'Apr',\n '5': 'May',\n '6': 'Jun',\n '7': 'Jul',\n '8': 'Aug',\n '9': 'Sep',\n '10': 'Oct',\n '11': 'Nov',\n '12': 'Dec'\n },\n 'narrow': {\n '1': 'J',\n '2': 'F',\n '3': 'M',\n '4': 'A',\n '5': 'M',\n '6': 'J',\n '7': 'J',\n '8': 'A',\n '9': 'S',\n '10': 'O',\n '11': 'N',\n '12': 'D'\n },\n 'wide': {\n '1': 'January',\n '2': 'February',\n '3': 'March',\n '4': 'April',\n '5': 'May',\n '6': 'June',\n '7': 'July',\n '8': 'August',\n '9': 'September',\n '10': 'October',\n '11': 'November',\n '12': 'December'\n }\n }\n },\n 'days': {\n 'stand-alone': {\n 'abbreviated': {\n 'sun': 'Sun',\n 'mon': 'Mon',\n 'tue': 'Tue',\n 'wed': 'Wed',\n 'thu': 'Thu',\n 'fri': 'Fri',\n 'sat': 'Sat'\n },\n 'narrow': {\n 'sun': 'S',\n 'mon': 'M',\n 'tue': 'T',\n 'wed': 'W',\n 'thu': 'T',\n 'fri': 'F',\n 'sat': 'S'\n },\n 'short': {\n 'sun': 'Su',\n 'mon': 'Mo',\n 'tue': 'Tu',\n 'wed': 'We',\n 'thu': 'Th',\n 'fri': 'Fr',\n 'sat': 'Sa'\n },\n 'wide': {\n 'sun': 'Sunday',\n 'mon': 'Monday',\n 'tue': 'Tuesday',\n 'wed': 'Wednesday',\n 'thu': 'Thursday',\n 'fri': 'Friday',\n 'sat': 'Saturday'\n }\n }\n },\n 'dayPeriods': {\n 'format': {\n 'wide': {\n 'am': 'AM',\n 'pm': 'PM'\n }\n }\n },\n 'eras': {\n 'eraNames': {\n '0': 'Before Christ',\n '0-alt-variant': 'Before Common Era',\n '1': 'Anno Domini',\n '1-alt-variant': 'Common Era'\n },\n 'eraAbbr': {\n '0': 'BC',\n '0-alt-variant': 'BCE',\n '1': 'AD',\n '1-alt-variant': 'CE'\n },\n 'eraNarrow': {\n '0': 'B',\n '0-alt-variant': 'BCE',\n '1': 'A',\n '1-alt-variant': 'CE'\n }\n },\n 'dateFormats': {\n 'full': 'EEEE, MMMM d, y',\n 'long': 'MMMM d, y',\n 'medium': 'MMM d, y',\n 'short': 'M/d/yy'\n },\n 'timeFormats': {\n 'full': 'h:mm:ss a zzzz',\n 'long': 'h:mm:ss a z',\n 'medium': 'h:mm:ss a',\n 'short': 'h:mm a'\n },\n 'dateTimeFormats': {\n 'full': '{1} \\'at\\' {0}',\n 'long': '{1} \\'at\\' {0}',\n 'medium': '{1}, {0}',\n 'short': '{1}, {0}',\n 'availableFormats': {\n 'd': 'd',\n 'E': 'ccc',\n 'Ed': 'd E',\n 'Ehm': 'E h:mm a',\n 'EHm': 'E HH:mm',\n 'Ehms': 'E h:mm:ss a',\n 'EHms': 'E HH:mm:ss',\n 'Gy': 'y G',\n 'GyMMM': 'MMM y G',\n 'GyMMMd': 'MMM d, y G',\n 'GyMMMEd': 'E, MMM d, y G',\n 'h': 'h a',\n 'H': 'HH',\n 'hm': 'h:mm a',\n 'Hm': 'HH:mm',\n 'hms': 'h:mm:ss a',\n 'Hms': 'HH:mm:ss',\n 'hmsv': 'h:mm:ss a v',\n 'Hmsv': 'HH:mm:ss v',\n 'hmv': 'h:mm a v',\n 'Hmv': 'HH:mm v',\n 'M': 'L',\n 'Md': 'M/d',\n 'MEd': 'E, M/d',\n 'MMM': 'LLL',\n 'MMMd': 'MMM d',\n 'MMMEd': 'E, MMM d',\n 'MMMMd': 'MMMM d',\n 'ms': 'mm:ss',\n 'y': 'y',\n 'yM': 'M/y',\n 'yMd': 'M/d/y',\n 'yMEd': 'E, M/d/y',\n 'yMMM': 'MMM y',\n 'yMMMd': 'MMM d, y',\n 'yMMMEd': 'E, MMM d, y',\n 'yMMMM': 'MMMM y'\n }\n }\n },\n 'islamic': {\n 'months': {\n 'stand-alone': {\n 'abbreviated': {\n '1': 'Muh.',\n '2': 'Saf.',\n '3': 'Rab. I',\n '4': 'Rab. II',\n '5': 'Jum. I',\n '6': 'Jum. II',\n '7': 'Raj.',\n '8': 'Sha.',\n '9': 'Ram.',\n '10': 'Shaw.',\n '11': 'Dhuʻl-Q.',\n '12': 'Dhuʻl-H.'\n },\n 'narrow': {\n '1': '1',\n '2': '2',\n '3': '3',\n '4': '4',\n '5': '5',\n '6': '6',\n '7': '7',\n '8': '8',\n '9': '9',\n '10': '10',\n '11': '11',\n '12': '12'\n },\n 'wide': {\n '1': 'Muharram',\n '2': 'Safar',\n '3': 'Rabiʻ I',\n '4': 'Rabiʻ II',\n '5': 'Jumada I',\n '6': 'Jumada II',\n '7': 'Rajab',\n '8': 'Shaʻban',\n '9': 'Ramadan',\n '10': 'Shawwal',\n '11': 'Dhuʻl-Qiʻdah',\n '12': 'Dhuʻl-Hijjah'\n }\n }\n },\n 'days': {\n 'stand-alone': {\n 'abbreviated': {\n 'sun': 'Sun',\n 'mon': 'Mon',\n 'tue': 'Tue',\n 'wed': 'Wed',\n 'thu': 'Thu',\n 'fri': 'Fri',\n 'sat': 'Sat'\n },\n 'narrow': {\n 'sun': 'S',\n 'mon': 'M',\n 'tue': 'T',\n 'wed': 'W',\n 'thu': 'T',\n 'fri': 'F',\n 'sat': 'S'\n },\n 'short': {\n 'sun': 'Su',\n 'mon': 'Mo',\n 'tue': 'Tu',\n 'wed': 'We',\n 'thu': 'Th',\n 'fri': 'Fr',\n 'sat': 'Sa'\n },\n 'wide': {\n 'sun': 'Sunday',\n 'mon': 'Monday',\n 'tue': 'Tuesday',\n 'wed': 'Wednesday',\n 'thu': 'Thursday',\n 'fri': 'Friday',\n 'sat': 'Saturday'\n }\n }\n },\n 'dayPeriods': {\n 'format': {\n 'wide': {\n 'am': 'AM',\n 'pm': 'PM'\n }\n }\n },\n 'eras': {\n 'eraNames': {\n '0': 'AH'\n },\n 'eraAbbr': {\n '0': 'AH'\n },\n 'eraNarrow': {\n '0': 'AH'\n }\n },\n 'dateFormats': {\n 'full': 'EEEE, MMMM d, y G',\n 'long': 'MMMM d, y G',\n 'medium': 'MMM d, y G',\n 'short': 'M/d/y GGGGG'\n },\n 'timeFormats': {\n 'full': 'h:mm:ss a zzzz',\n 'long': 'h:mm:ss a z',\n 'medium': 'h:mm:ss a',\n 'short': 'h:mm a'\n },\n 'dateTimeFormats': {\n 'full': '{1} \\'at\\' {0}',\n 'long': '{1} \\'at\\' {0}',\n 'medium': '{1}, {0}',\n 'short': '{1}, {0}',\n 'availableFormats': {\n 'd': 'd',\n 'E': 'ccc',\n 'Ed': 'd E',\n 'Ehm': 'E h:mm a',\n 'EHm': 'E HH:mm',\n 'Ehms': 'E h:mm:ss a',\n 'EHms': 'E HH:mm:ss',\n 'Gy': 'y G',\n 'GyMMM': 'MMM y G',\n 'GyMMMd': 'MMM d, y G',\n 'GyMMMEd': 'E, MMM d, y G',\n 'h': 'h a',\n 'H': 'HH',\n 'hm': 'h:mm a',\n 'Hm': 'HH:mm',\n 'hms': 'h:mm:ss a',\n 'Hms': 'HH:mm:ss',\n 'M': 'L',\n 'Md': 'M/d',\n 'MEd': 'E, M/d',\n 'MMM': 'LLL',\n 'MMMd': 'MMM d',\n 'MMMEd': 'E, MMM d',\n 'MMMMd': 'MMMM d',\n 'ms': 'mm:ss',\n 'y': 'y G',\n 'yyyy': 'y G',\n 'yyyyM': 'M/y GGGGG',\n 'yyyyMd': 'M/d/y GGGGG',\n 'yyyyMEd': 'E, M/d/y GGGGG',\n 'yyyyMMM': 'MMM y G',\n 'yyyyMMMd': 'MMM d, y G',\n 'yyyyMMMEd': 'E, MMM d, y G',\n 'yyyyMMMM': 'MMMM y G',\n 'yyyyQQQ': 'QQQ y G',\n 'yyyyQQQQ': 'QQQQ y G'\n }\n }\n }\n },\n 'timeZoneNames': {\n 'hourFormat': '+HH:mm;-HH:mm',\n 'gmtFormat': 'GMT{0}',\n 'gmtZeroFormat': 'GMT'\n }\n },\n 'numbers': {\n 'currencies': {\n 'USD': {\n 'displayName': 'US Dollar',\n 'symbol': '$',\n 'symbol-alt-narrow': '$'\n },\n 'EUR': {\n 'displayName': 'Euro',\n 'symbol': '€',\n 'symbol-alt-narrow': '€'\n },\n 'GBP': {\n 'displayName': 'British Pound',\n 'symbol-alt-narrow': '£'\n }\n },\n 'defaultNumberingSystem': 'latn',\n 'minimumGroupingDigits': '1',\n 'symbols-numberSystem-latn': {\n 'decimal': '.',\n 'group': ',',\n 'list': ';',\n 'percentSign': '%',\n 'plusSign': '+',\n 'minusSign': '-',\n 'exponential': 'E',\n 'superscriptingExponent': '×',\n 'perMille': '‰',\n 'infinity': '∞',\n 'nan': 'NaN',\n 'timeSeparator': ':'\n },\n 'decimalFormats-numberSystem-latn': {\n 'standard': '#,##0.###'\n },\n 'percentFormats-numberSystem-latn': {\n 'standard': '#,##0%'\n },\n 'currencyFormats-numberSystem-latn': {\n 'standard': '¤#,##0.00',\n 'accounting': '¤#,##0.00;(¤#,##0.00)'\n },\n 'scientificFormats-numberSystem-latn': {\n 'standard': '#E0'\n }\n }\n };\n IntlBase.blazorDefaultObject = {\n 'numbers': {\n 'mapper': {\n '0': '0',\n '1': '1',\n '2': '2',\n '3': '3',\n '4': '4',\n '5': '5',\n '6': '6',\n '7': '7',\n '8': '8',\n '9': '9'\n },\n 'mapperDigits': '0123456789',\n 'numberSymbols': {\n 'decimal': '.',\n 'group': ',',\n 'plusSign': '+',\n 'minusSign': '-',\n 'percentSign': '%',\n 'nan': 'NaN',\n 'timeSeparator': ':',\n 'infinity': '∞'\n },\n 'timeSeparator': ':',\n 'currencySymbol': '$',\n 'currencypData': {\n 'nlead': '$',\n 'nend': '',\n 'groupSeparator': ',',\n 'groupData': {\n 'primary': 3\n },\n 'maximumFraction': 2,\n 'minimumFraction': 2\n },\n 'percentpData': {\n 'nlead': '',\n 'nend': '%',\n 'groupSeparator': ',',\n 'groupData': {\n 'primary': 3\n },\n 'maximumFraction': 2,\n 'minimumFraction': 2\n },\n 'percentnData': {\n 'nlead': '-',\n 'nend': '%',\n 'groupSeparator': ',',\n 'groupData': {\n 'primary': 3\n },\n 'maximumFraction': 2,\n 'minimumFraction': 2\n },\n 'currencynData': {\n 'nlead': '($',\n 'nend': ')',\n 'groupSeparator': ',',\n 'groupData': {\n 'primary': 3\n },\n 'maximumFraction': 2,\n 'minimumFraction': 2\n },\n 'decimalnData': {\n 'nlead': '-',\n 'nend': '',\n 'groupData': {\n 'primary': 3\n },\n 'maximumFraction': 2,\n 'minimumFraction': 2\n },\n 'decimalpData': {\n 'nlead': '',\n 'nend': '',\n 'groupData': {\n 'primary': 3\n },\n 'maximumFraction': 2,\n 'minimumFraction': 2\n }\n },\n 'dates': {\n 'dayPeriods': {\n 'am': 'AM',\n 'pm': 'PM'\n },\n 'dateSeperator': '/',\n 'days': {\n 'abbreviated': {\n 'sun': 'Sun',\n 'mon': 'Mon',\n 'tue': 'Tue',\n 'wed': 'Wed',\n 'thu': 'Thu',\n 'fri': 'Fri',\n 'sat': 'Sat'\n },\n 'short': {\n 'sun': 'Su',\n 'mon': 'Mo',\n 'tue': 'Tu',\n 'wed': 'We',\n 'thu': 'Th',\n 'fri': 'Fr',\n 'sat': 'Sa'\n },\n 'wide': {\n 'sun': 'Sunday',\n 'mon': 'Monday',\n 'tue': 'Tuesday',\n 'wed': 'Wednesday',\n 'thu': 'Thursday',\n 'fri': 'Friday',\n 'sat': 'Saturday'\n }\n },\n 'months': {\n 'abbreviated': {\n '1': 'Jan',\n '2': 'Feb',\n '3': 'Mar',\n '4': 'Apr',\n '5': 'May',\n '6': 'Jun',\n '7': 'Jul',\n '8': 'Aug',\n '9': 'Sep',\n '10': 'Oct',\n '11': 'Nov',\n '12': 'Dec'\n },\n 'wide': {\n '1': 'January',\n '2': 'February',\n '3': 'March',\n '4': 'April',\n '5': 'May',\n '6': 'June',\n '7': 'July',\n '8': 'August',\n '9': 'September',\n '10': 'October',\n '11': 'November',\n '12': 'December'\n }\n },\n 'eras': {\n '1': 'AD'\n }\n }\n };\n /* tslint:enable:quotemark */\n IntlBase.monthIndex = {\n 3: 'abbreviated',\n 4: 'wide',\n 5: 'narrow',\n 1: 'abbreviated'\n };\n /**\n *\n */\n IntlBase.month = 'months';\n IntlBase.days = 'days';\n /**\n * Default numerber Object\n */\n IntlBase.patternMatcher = {\n C: 'currency',\n P: 'percent',\n N: 'decimal',\n A: 'currency',\n E: 'scientific'\n };\n /**\n * Returns the resultant pattern based on the skeleton, dateObject and the type provided\n *\n * @private\n * @param {string} skeleton ?\n * @param {Object} dateObject ?\n * @param {string} type ?\n * @param {boolean} isIslamic ?\n * @param {string} blazorCulture ?\n * @returns {string} ?\n */\n function getResultantPattern(skeleton, dateObject, type, isIslamic, blazorCulture) {\n var resPattern;\n var iType = type || 'date';\n if (blazorCulture) {\n resPattern = compareBlazorDateFormats({ skeleton: skeleton }, blazorCulture).format ||\n compareBlazorDateFormats({ skeleton: 'd' }, 'en-US').format;\n }\n else {\n if (IntlBase.basicPatterns.indexOf(skeleton) !== -1) {\n resPattern = getValue(iType + 'Formats.' + skeleton, dateObject);\n if (iType === 'dateTime') {\n var dPattern = getValue('dateFormats.' + skeleton, dateObject);\n var tPattern = getValue('timeFormats.' + skeleton, dateObject);\n resPattern = resPattern.replace('{1}', dPattern).replace('{0}', tPattern);\n }\n }\n else {\n resPattern = getValue('dateTimeFormats.availableFormats.' + skeleton, dateObject);\n }\n if (isUndefined(resPattern) && skeleton === 'yMd') {\n resPattern = 'M/d/y';\n }\n }\n return resPattern;\n }\n IntlBase.getResultantPattern = getResultantPattern;\n /**\n * Returns the dependable object for provided cldr data and culture\n *\n * @private\n * @param {Object} cldr ?\n * @param {string} culture ?\n * @param {string} mode ?\n * @param {boolean} isNumber ?\n * @returns {any} ?\n */\n function getDependables(cldr, culture, mode, isNumber) {\n var ret = {};\n var calendartype = mode || 'gregorian';\n ret.parserObject = parser.getMainObject(cldr, culture) || (isBlazor() ? IntlBase.blazorDefaultObject : IntlBase.defaultObject);\n if (isNumber) {\n ret.numericObject = getValue('numbers', ret.parserObject);\n }\n else {\n var dateString = isBlazor() ? 'dates' : ('dates.calendars.' + calendartype);\n ret.dateObject = getValue(dateString, ret.parserObject);\n }\n return ret;\n }\n IntlBase.getDependables = getDependables;\n /**\n * Returns the symbol pattern for provided parameters\n *\n * @private\n * @param {string} type ?\n * @param {string} numSystem ?\n * @param {Object} obj ?\n * @param {boolean} isAccount ?\n * @returns {string} ?\n */\n function getSymbolPattern(type, numSystem, obj, isAccount) {\n return getValue(type + 'Formats-numberSystem-' +\n numSystem + (isAccount ? '.accounting' : '.standard'), obj) || (isAccount ? getValue(type + 'Formats-numberSystem-' +\n numSystem + '.standard', obj) : '');\n }\n IntlBase.getSymbolPattern = getSymbolPattern;\n /**\n *\n * @param {string} format ?\n * @returns {string} ?\n */\n function ConvertDateToWeekFormat(format) {\n var convertMapper = format.match(IntlBase.dateConverterMapper);\n if (convertMapper && isBlazor()) {\n var tempString = convertMapper[0].length === 3 ? 'EEE' : 'EEEE';\n return format.replace(IntlBase.dateConverterMapper, tempString);\n }\n return format;\n }\n IntlBase.ConvertDateToWeekFormat = ConvertDateToWeekFormat;\n /**\n *\n * @param {DateFormatOptions} formatOptions ?\n * @param {string} culture ?\n * @returns {DateFormatOptions} ?\n */\n function compareBlazorDateFormats(formatOptions, culture) {\n var format = formatOptions.format || formatOptions.skeleton;\n var curFormatMapper = getValue((culture || 'en-US') + '.' + format, blazorCultureFormats);\n if (!curFormatMapper) {\n curFormatMapper = getValue('en-US.' + format, blazorCultureFormats);\n }\n if (curFormatMapper) {\n curFormatMapper = ConvertDateToWeekFormat(curFormatMapper);\n formatOptions.format = curFormatMapper.replace(/tt/, 'a');\n }\n return formatOptions;\n }\n IntlBase.compareBlazorDateFormats = compareBlazorDateFormats;\n /**\n * Returns proper numeric skeleton\n *\n * @private\n * @param {string} skeleton ?\n * @returns {any} ?\n */\n function getProperNumericSkeleton(skeleton) {\n var matches = skeleton.match(IntlBase.formatRegex);\n var ret = {};\n var pattern = matches[1].toUpperCase();\n ret.isAccount = (pattern === 'A');\n // eslint-disable-next-line\n ret.type = IntlBase.patternMatcher[pattern];\n if (skeleton.length > 1) {\n ret.fractionDigits = parseInt(matches[2], 10);\n }\n return ret;\n }\n IntlBase.getProperNumericSkeleton = getProperNumericSkeleton;\n /**\n * Returns format data for number formatting like minimum fraction, maximum fraction, etc..,\n *\n * @private\n * @param {string} pattern ?\n * @param {boolean} needFraction ?\n * @param {string} cSymbol ?\n * @param {boolean} fractionOnly ?\n * @returns {any} ?\n */\n function getFormatData(pattern, needFraction, cSymbol, fractionOnly) {\n var nData = fractionOnly ? {} : { nlead: '', nend: '' };\n var match = pattern.match(IntlBase.customRegex);\n if (match) {\n if (!fractionOnly) {\n nData.nlead = changeCurrencySymbol(match[1], cSymbol);\n nData.nend = changeCurrencySymbol(match[10], cSymbol);\n nData.groupPattern = match[4];\n }\n var fraction = match[7];\n if (fraction && needFraction) {\n var fmatch = fraction.match(fractionRegex);\n if (!isNullOrUndefined(fmatch)) {\n nData.minimumFraction = fmatch.length;\n }\n else {\n nData.minimumFraction = 0;\n }\n nData.maximumFraction = fraction.length - 1;\n }\n }\n return nData;\n }\n IntlBase.getFormatData = getFormatData;\n /**\n * Changes currency symbol\n *\n * @private\n * @param {string} val ?\n * @param {string} sym ?\n * @returns {string} ?\n */\n function changeCurrencySymbol(val, sym) {\n if (val) {\n return val.replace(IntlBase.defaultCurrency, sym);\n }\n return '';\n }\n IntlBase.changeCurrencySymbol = changeCurrencySymbol;\n /**\n * Returns currency symbol based on currency code ?\n *\n * @private\n * @param {Object} numericObject ?\n * @param {string} currencyCode ?\n * @param {string} altSymbol ?\n * @returns {string} ?\n */\n function getCurrencySymbol(numericObject, currencyCode, altSymbol) {\n var symbol = altSymbol ? ('.' + altSymbol) : '.symbol';\n var getCurrency = getValue('currencies.' + currencyCode + symbol, numericObject) ||\n getValue('currencies.' + currencyCode + '.symbol-alt-narrow', numericObject) || '$';\n return getCurrency;\n }\n IntlBase.getCurrencySymbol = getCurrencySymbol;\n /**\n * Returns formatting options for custom number format\n *\n * @private\n * @param {string} format ?\n * @param {CommonOptions} dOptions ?\n * @param {any} obj ?\n * @returns {any} ?\n */\n function customFormat(format, dOptions, obj) {\n var options = {};\n var formatSplit = format.split(';');\n var data = ['pData', 'nData', 'zeroData'];\n for (var i = 0; i < formatSplit.length; i++) {\n // eslint-disable-next-line\n options[data[i]] = customNumberFormat(formatSplit[i], dOptions, obj);\n }\n if (isNullOrUndefined(options.nData)) {\n options.nData = extend({}, options.pData);\n options.nData.nlead = isNullOrUndefined(dOptions) ? '-' + options.nData.nlead : dOptions.minusSymbol + options.nData.nlead;\n }\n return options;\n }\n IntlBase.customFormat = customFormat;\n /**\n * Returns custom formatting options\n *\n * @private\n * @param {string} format ?\n * @param {CommonOptions} dOptions ?\n * @param {Object} numObject ?\n * @returns {any} ?\n */\n function customNumberFormat(format, dOptions, numObject) {\n var cOptions = { type: 'decimal', minimumFractionDigits: 0, maximumFractionDigits: 0 };\n var pattern = format.match(IntlBase.customRegex);\n if (isNullOrUndefined(pattern) || (pattern[5] === '' && format !== 'N/A')) {\n cOptions.type = undefined;\n return cOptions;\n }\n cOptions.nlead = pattern[1];\n cOptions.nend = pattern[10];\n var integerPart = pattern[6];\n var spaceCapture = integerPart.match(/\\ $/g) ? true : false;\n var spaceGrouping = integerPart.replace(/\\ $/g, '').indexOf(' ') !== -1;\n cOptions.useGrouping = integerPart.indexOf(',') !== -1 || spaceGrouping;\n integerPart = integerPart.replace(/,/g, '');\n var fractionPart = pattern[7];\n if (integerPart.indexOf('0') !== -1) {\n cOptions.minimumIntegerDigits = integerPart.length - integerPart.indexOf('0');\n }\n if (!isNullOrUndefined(fractionPart)) {\n cOptions.minimumFractionDigits = fractionPart.lastIndexOf('0');\n cOptions.maximumFractionDigits = fractionPart.lastIndexOf('#');\n if (cOptions.minimumFractionDigits === -1) {\n cOptions.minimumFractionDigits = 0;\n }\n if (cOptions.maximumFractionDigits === -1 || cOptions.maximumFractionDigits < cOptions.minimumFractionDigits) {\n cOptions.maximumFractionDigits = cOptions.minimumFractionDigits;\n }\n }\n if (!isNullOrUndefined(dOptions)) {\n dOptions.isCustomFormat = true;\n extend(cOptions, isCurrencyPercent([cOptions.nlead, cOptions.nend], '$', dOptions.currencySymbol));\n if (!cOptions.isCurrency) {\n extend(cOptions, isCurrencyPercent([cOptions.nlead, cOptions.nend], '%', dOptions.percentSymbol));\n }\n }\n else {\n extend(cOptions, isCurrencyPercent([cOptions.nlead, cOptions.nend], '%', '%'));\n }\n if (!isNullOrUndefined(numObject)) {\n var symbolPattern = getSymbolPattern(cOptions.type, dOptions.numberMapper.numberSystem, numObject, false);\n if (cOptions.useGrouping) {\n // eslint-disable-next-line\n cOptions.groupSeparator = spaceGrouping ? ' ' : dOptions.numberMapper.numberSymbols[mapper[2]];\n cOptions.groupData = NumberFormat.getGroupingDetails(symbolPattern.split(';')[0]);\n }\n cOptions.nlead = cOptions.nlead.replace(/'/g, '');\n cOptions.nend = spaceCapture ? ' ' + cOptions.nend.replace(/'/g, '') : cOptions.nend.replace(/'/g, '');\n }\n return cOptions;\n }\n IntlBase.customNumberFormat = customNumberFormat;\n /**\n * Returns formatting options for currency or percent type\n *\n * @private\n * @param {string[]} parts ?\n * @param {string} actual ?\n * @param {string} symbol ?\n * @returns {any} ?\n */\n function isCurrencyPercent(parts, actual, symbol) {\n var options = { nlead: parts[0], nend: parts[1] };\n for (var i = 0; i < 2; i++) {\n var part = parts[parseInt(i.toString(), 10)];\n var loc = part.indexOf(actual);\n if ((loc !== -1) && ((loc < part.indexOf('\\'')) || (loc > part.lastIndexOf('\\'')))) {\n // eslint-disable-next-line\n options[typeMapper[i]] = part.substr(0, loc) + symbol + part.substr(loc + 1);\n // eslint-disable-next-line\n options[typeMapper[actual]] = true;\n options.type = options.isCurrency ? 'currency' : 'percent';\n break;\n }\n }\n return options;\n }\n IntlBase.isCurrencyPercent = isCurrencyPercent;\n /**\n * Returns culture based date separator\n *\n * @private\n * @param {Object} dateObj ?\n * @returns {string} ?\n */\n function getDateSeparator(dateObj) {\n var value = (getValue('dateFormats.short', dateObj) || '').match(/[d‏M‏]([^d‏M])[d‏M‏]/i);\n return value ? value[1] : '/';\n }\n IntlBase.getDateSeparator = getDateSeparator;\n /**\n * Returns Native Date Time pattern\n *\n * @private\n * @param {string} culture ?\n * @param {DateFormatOptions} options ?\n * @param {Object} cldr ?\n * @param {boolean} isExcelFormat ?\n * @returns {string} ?\n */\n function getActualDateTimeFormat(culture, options, cldr, isExcelFormat) {\n var dependable = getDependables(cldr, culture, options.calendar);\n if (isBlazor()) {\n options = compareBlazorDateFormats(options, culture);\n }\n var actualPattern = options.format || getResultantPattern(options.skeleton, dependable.dateObject, options.type);\n if (isExcelFormat) {\n actualPattern = actualPattern.replace(patternRegex, function (pattern) {\n // eslint-disable-next-line\n return patternMatch[pattern];\n });\n if (actualPattern.indexOf('z') !== -1) {\n var tLength = actualPattern.match(/z/g).length;\n var timeZonePattern = void 0;\n var options_1 = { 'timeZone': {} };\n options_1.numMapper = parser.getNumberMapper(dependable.parserObject, parser.getNumberingSystem(cldr));\n options_1.timeZone = getValue('dates.timeZoneNames', dependable.parserObject);\n var value = new Date();\n var timezone = value.getTimezoneOffset();\n var pattern = (tLength < 4) ? '+H;-H' : options_1.timeZone.hourFormat;\n pattern = pattern.replace(/:/g, options_1.numMapper.timeSeparator);\n if (timezone === 0) {\n timeZonePattern = options_1.timeZone.gmtZeroFormat;\n }\n else {\n timeZonePattern = DateFormat.getTimeZoneValue(timezone, pattern);\n timeZonePattern = options_1.timeZone.gmtFormat.replace(/\\{0\\}/, timeZonePattern);\n }\n actualPattern = actualPattern.replace(/[z]+/, '\"' + timeZonePattern + '\"');\n }\n actualPattern = actualPattern.replace(/ $/, '');\n }\n return actualPattern;\n }\n IntlBase.getActualDateTimeFormat = getActualDateTimeFormat;\n /**\n *\n * @param {string} actual ?\n * @param {any} option ?\n * @returns {any} ?\n */\n // eslint-disable-next-line\n function processSymbol(actual, option) {\n if (actual.indexOf(',') !== -1) {\n // eslint-disable-next-line\n var split = actual.split(',');\n actual = (split[0] + getValue('numberMapper.numberSymbols.group', option) +\n split[1].replace('.', getValue('numberMapper.numberSymbols.decimal', option)));\n }\n else {\n actual = actual.replace('.', getValue('numberMapper.numberSymbols.decimal', option));\n }\n return actual;\n }\n /**\n * Returns Native Number pattern\n *\n * @private\n * @param {string} culture ?\n * @param {NumberFormatOptions} options ?\n * @param {Object} cldr ?\n * @param {boolean} isExcel ?\n * @returns {string} ?\n */\n function getActualNumberFormat(culture, options, cldr, isExcel) {\n var dependable = getDependables(cldr, culture, '', true);\n var parseOptions = { custom: true };\n var numrericObject = dependable.numericObject;\n var minFrac;\n var curObj = {};\n var curMatch = (options.format || '').match(IntlBase.currencyFormatRegex);\n var type = IntlBase.formatRegex.test(options.format) ? getProperNumericSkeleton(options.format || 'N') : {};\n var dOptions = {};\n if (curMatch) {\n dOptions.numberMapper = isBlazor() ?\n extend({}, dependable.numericObject) :\n parser.getNumberMapper(dependable.parserObject, parser.getNumberingSystem(cldr), true);\n var curCode = isBlazor() ? getValue('currencySymbol', dependable.numericObject) :\n getCurrencySymbol(dependable.numericObject, options.currency || defaultCurrencyCode, options.altSymbol);\n var symbolPattern = getSymbolPattern('currency', dOptions.numberMapper.numberSystem, dependable.numericObject, (/a/i).test(options.format));\n symbolPattern = symbolPattern.replace(/\\u00A4/g, curCode);\n var split = symbolPattern.split(';');\n curObj.hasNegativePattern = isBlazor() ? true : (split.length > 1);\n curObj.nData = isBlazor() ? getValue(type.type + 'nData', numrericObject) :\n getFormatData(split[1] || '-' + split[0], true, curCode);\n curObj.pData = isBlazor() ? getValue(type.type + 'pData', numrericObject) :\n getFormatData(split[0], false, curCode);\n if (!curMatch[2] && !options.minimumFractionDigits && !options.maximumFractionDigits) {\n minFrac = getFormatData(symbolPattern.split(';')[0], true, '', true).minimumFraction;\n }\n }\n var actualPattern;\n if ((IntlBase.formatRegex.test(options.format)) || !(options.format)) {\n extend(parseOptions, getProperNumericSkeleton(options.format || 'N'));\n parseOptions.custom = false;\n actualPattern = '###0';\n if (parseOptions.fractionDigits || options.minimumFractionDigits || options.maximumFractionDigits || minFrac) {\n var defaultMinimum = 0;\n if (parseOptions.fractionDigits) {\n options.minimumFractionDigits = options.maximumFractionDigits = parseOptions.fractionDigits;\n }\n actualPattern = fractionDigitsPattern(actualPattern, minFrac || parseOptions.fractionDigits ||\n options.minimumFractionDigits || defaultMinimum, options.maximumFractionDigits || defaultMinimum);\n }\n if (options.minimumIntegerDigits) {\n actualPattern = minimumIntegerPattern(actualPattern, options.minimumIntegerDigits);\n }\n if (options.useGrouping) {\n actualPattern = groupingPattern(actualPattern);\n }\n if (parseOptions.type === 'currency' || (parseOptions.type && isBlazor())) {\n if (isBlazor() && parseOptions.type !== 'currency') {\n curObj.pData = getValue(parseOptions.type + 'pData', numrericObject);\n curObj.nData = getValue(parseOptions.type + 'nData', numrericObject);\n }\n var cPattern = actualPattern;\n actualPattern = curObj.pData.nlead + cPattern + curObj.pData.nend;\n if (curObj.hasNegativePattern || isBlazor()) {\n actualPattern += ';' + curObj.nData.nlead + cPattern + curObj.nData.nend;\n }\n }\n if (parseOptions.type === 'percent' && !isBlazor()) {\n actualPattern += ' %';\n }\n }\n else {\n actualPattern = options.format.replace(/'/g, '\"');\n }\n if (Object.keys(dOptions).length > 0) {\n actualPattern = !isExcel ? processSymbol(actualPattern, dOptions) : actualPattern;\n }\n return actualPattern;\n }\n IntlBase.getActualNumberFormat = getActualNumberFormat;\n /**\n *\n * @param {string} pattern ?\n * @param {number} minDigits ?\n * @param {number} maxDigits ?\n * @returns {string} ?\n */\n function fractionDigitsPattern(pattern, minDigits, maxDigits) {\n pattern += '.';\n for (var a = 0; a < minDigits; a++) {\n pattern += '0';\n }\n if (minDigits < maxDigits) {\n var diff = maxDigits - minDigits;\n for (var b = 0; b < diff; b++) {\n pattern += '#';\n }\n }\n return pattern;\n }\n IntlBase.fractionDigitsPattern = fractionDigitsPattern;\n /**\n *\n * @param {string} pattern ?\n * @param {number} digits ?\n * @returns {string} ?\n */\n function minimumIntegerPattern(pattern, digits) {\n var temp = pattern.split('.');\n var integer = '';\n for (var x = 0; x < digits; x++) {\n integer += '0';\n }\n return temp[1] ? (integer + '.' + temp[1]) : integer;\n }\n IntlBase.minimumIntegerPattern = minimumIntegerPattern;\n /**\n *\n * @param {string} pattern ?\n * @returns {string} ?\n */\n function groupingPattern(pattern) {\n var temp = pattern.split('.');\n var integer = temp[0];\n var no = 3 - integer.length % 3;\n var hash = (no && no === 1) ? '#' : (no === 2 ? '##' : '');\n integer = hash + integer;\n pattern = '';\n for (var x = integer.length - 1; x > 0; x = x - 3) {\n pattern = ',' + integer[x - 2] + integer[x - 1] + integer[parseInt(x.toString(), 10)] + pattern;\n }\n pattern = pattern.slice(1);\n return temp[1] ? (pattern + '.' + temp[1]) : pattern;\n }\n IntlBase.groupingPattern = groupingPattern;\n /**\n *\n * @param {string} culture ?\n * @param {Object} cldr ?\n * @returns {number} ?\n */\n function getWeekData(culture, cldr) {\n var firstDay = defaultFirstDay;\n var mapper = getValue('supplemental.weekData.firstDay', cldr);\n var iCulture = culture;\n if ((/en-/).test(iCulture)) {\n iCulture = iCulture.slice(3);\n }\n iCulture = iCulture.slice(0, 2).toUpperCase() + iCulture.substr(2);\n if (mapper) {\n firstDay = mapper[\"\" + iCulture] || mapper[iCulture.slice(0, 2)] || defaultFirstDay;\n }\n return firstDayMapper[\"\" + firstDay];\n }\n IntlBase.getWeekData = getWeekData;\n /**\n * @private\n * @param {any} pData ?\n * @param {string} aCurrency ?\n * @param {string} rCurrency ?\n * @returns {void} ?\n */\n function replaceBlazorCurrency(pData, aCurrency, rCurrency) {\n var iCurrency = getBlazorCurrencySymbol(rCurrency);\n if (aCurrency !== iCurrency) {\n for (var _i = 0, pData_1 = pData; _i < pData_1.length; _i++) {\n var data = pData_1[_i];\n data.nend = data.nend.replace(aCurrency, iCurrency);\n data.nlead = data.nlead.replace(aCurrency, iCurrency);\n }\n }\n }\n IntlBase.replaceBlazorCurrency = replaceBlazorCurrency;\n /**\n * @private\n * @param {Date} date ?\n * @returns {number} ?\n */\n function getWeekOfYear(date) {\n var newYear = new Date(date.getFullYear(), 0, 1);\n var day = newYear.getDay();\n var weeknum;\n day = (day >= 0 ? day : day + 7);\n var daynum = Math.floor((date.getTime() - newYear.getTime() -\n (date.getTimezoneOffset() - newYear.getTimezoneOffset()) * 60000) / 86400000) + 1;\n if (day < 4) {\n weeknum = Math.floor((daynum + day - 1) / 7) + 1;\n if (weeknum > 52) {\n var nYear = new Date(date.getFullYear() + 1, 0, 1);\n var nday = nYear.getDay();\n nday = nday >= 0 ? nday : nday + 7;\n weeknum = nday < 4 ? 1 : 53;\n }\n }\n else {\n weeknum = Math.floor((daynum + day - 1) / 7);\n }\n return weeknum;\n }\n IntlBase.getWeekOfYear = getWeekOfYear;\n})(IntlBase || (IntlBase = {}));\n","import { isNullOrUndefined, merge } from './util';\nvar headerRegex = /^(.*?):[ \\t]*([^\\r\\n]*)$/gm;\nvar defaultType = 'GET';\n/**\n * Ajax class provides ability to make asynchronous HTTP request to the server\n * ```typescript\n * var ajax = new Ajax(\"index.html\", \"GET\", true);\n * ajax.send().then(\n * function (value) {\n * console.log(value);\n * },\n * function (reason) {\n * console.log(reason);\n * });\n * ```\n */\nvar Ajax = /** @class */ (function () {\n /**\n * Constructor for Ajax class\n *\n * @param {string|Object} options ?\n * @param {string} type ?\n * @param {boolean} async ?\n * @returns defaultType any\n */\n function Ajax(options, type, async, contentType) {\n /**\n * A boolean value indicating whether the request should be sent asynchronous or not.\n *\n * @default true\n */\n this.mode = true;\n /**\n * A boolean value indicating whether to ignore the promise reject.\n *\n * @private\n * @default true\n */\n this.emitError = true;\n this.options = {};\n if (typeof options === 'string') {\n this.url = options;\n this.type = type ? type.toUpperCase() : defaultType;\n this.mode = !isNullOrUndefined(async) ? async : true;\n }\n else if (typeof options === 'object') {\n this.options = options;\n merge(this, this.options);\n }\n this.type = this.type ? this.type.toUpperCase() : defaultType;\n this.contentType = (this.contentType !== undefined) ? this.contentType : contentType;\n }\n /**\n *\n * Send the request to server.\n *\n * @param {any} data - To send the user data\n * @return {Promise} ?\n */\n Ajax.prototype.send = function (data) {\n var _this = this;\n this.data = isNullOrUndefined(data) ? this.data : data;\n var eventArgs = {\n cancel: false,\n httpRequest: null\n };\n var promise = new Promise(function (resolve, reject) {\n _this.httpRequest = new XMLHttpRequest();\n _this.httpRequest.onreadystatechange = function () { _this.stateChange(resolve, reject); };\n if (!isNullOrUndefined(_this.onLoad)) {\n _this.httpRequest.onload = _this.onLoad;\n }\n if (!isNullOrUndefined(_this.onProgress)) {\n _this.httpRequest.onprogress = _this.onProgress;\n }\n /* istanbul ignore next */\n if (!isNullOrUndefined(_this.onAbort)) {\n _this.httpRequest.onabort = _this.onAbort;\n }\n /* istanbul ignore next */\n if (!isNullOrUndefined(_this.onError)) {\n _this.httpRequest.onerror = _this.onError;\n }\n //** Upload Events **/\n /* istanbul ignore next */\n if (!isNullOrUndefined(_this.onUploadProgress)) {\n _this.httpRequest.upload.onprogress = _this.onUploadProgress;\n }\n // eslint-disable-next-line\n _this.httpRequest.open(_this.type, _this.url, _this.mode);\n // Set default headers\n if (!isNullOrUndefined(_this.data) && _this.contentType !== null) {\n _this.httpRequest.setRequestHeader('Content-Type', _this.contentType || 'application/json; charset=utf-8');\n }\n if (_this.beforeSend) {\n eventArgs.httpRequest = _this.httpRequest;\n _this.beforeSend(eventArgs);\n }\n if (!eventArgs.cancel) {\n _this.httpRequest.send(!isNullOrUndefined(_this.data) ? _this.data : null);\n }\n });\n return promise;\n };\n Ajax.prototype.successHandler = function (data) {\n if (this.onSuccess) {\n this.onSuccess(data, this);\n }\n return data;\n };\n Ajax.prototype.failureHandler = function (reason) {\n if (this.onFailure) {\n this.onFailure(this.httpRequest);\n }\n return reason;\n };\n Ajax.prototype.stateChange = function (resolve, reject) {\n var data = this.httpRequest.responseText;\n if (this.dataType && this.dataType.toLowerCase() === 'json') {\n if (data === '') {\n data = undefined;\n }\n else {\n try {\n data = JSON.parse(data);\n }\n catch (error) {\n // no exception handle\n }\n }\n }\n if (this.httpRequest.readyState === 4) {\n //success range should be 200 to 299\n if ((this.httpRequest.status >= 200 && this.httpRequest.status <= 299) || this.httpRequest.status === 304) {\n resolve(this.successHandler(data));\n }\n else {\n if (this.emitError) {\n reject(new Error(this.failureHandler(this.httpRequest.statusText)));\n }\n else {\n resolve();\n }\n }\n }\n };\n /**\n * To get the response header from XMLHttpRequest\n *\n * @param {string} key Key to search in the response header\n * @returns {string} ?\n */\n Ajax.prototype.getResponseHeader = function (key) {\n var responseHeaders;\n var header;\n // eslint-disable-next-line\n responseHeaders = {};\n var headers = headerRegex.exec(this.httpRequest.getAllResponseHeaders());\n while (headers) {\n responseHeaders[headers[1].toLowerCase()] = headers[2];\n headers = headerRegex.exec(this.httpRequest.getAllResponseHeaders());\n }\n // eslint-disable-next-line\n header = responseHeaders[key.toLowerCase()];\n return isNullOrUndefined(header) ? null : header;\n };\n return Ajax;\n}());\nexport { Ajax };\n","import { isUndefined } from './util';\nvar REGX_MOBILE = /android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini|mobile/i;\nvar REGX_IE = /msie|trident/i;\nvar REGX_IE11 = /Trident\\/7\\./;\nvar REGX_IOS = /(ipad|iphone|ipod touch)/i;\nvar REGX_IOS7 = /(ipad|iphone|ipod touch);.*os 7_\\d|(ipad|iphone|ipod touch);.*os 8_\\d/i;\nvar REGX_ANDROID = /android/i;\nvar REGX_WINDOWS = /trident|windows phone|edge/i;\nvar REGX_VERSION = /(version)[ /]([\\w.]+)/i;\nvar REGX_BROWSER = {\n OPERA: /(opera|opr)(?:.*version|)[ /]([\\w.]+)/i,\n EDGE: /(edge)(?:.*version|)[ /]([\\w.]+)/i,\n CHROME: /(chrome|crios)[ /]([\\w.]+)/i,\n PANTHOMEJS: /(phantomjs)[ /]([\\w.]+)/i,\n SAFARI: /(safari)[ /]([\\w.]+)/i,\n WEBKIT: /(webkit)[ /]([\\w.]+)/i,\n MSIE: /(msie|trident) ([\\w.]+)/i,\n MOZILLA: /(mozilla)(?:.*? rv:([\\w.]+)|)/i\n};\n/* istanbul ignore else */\nif (typeof window !== 'undefined') {\n window.browserDetails = window.browserDetails || {};\n}\n/**\n * Get configuration details for Browser\n *\n * @private\n */\nvar Browser = /** @class */ (function () {\n function Browser() {\n }\n Browser.extractBrowserDetail = function () {\n var browserInfo = { culture: {} };\n var keys = Object.keys(REGX_BROWSER);\n var clientInfo = [];\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n clientInfo = Browser.userAgent.match(REGX_BROWSER[\"\" + key]);\n if (clientInfo) {\n browserInfo.name = (clientInfo[1].toLowerCase() === 'opr' ? 'opera' : clientInfo[1].toLowerCase());\n browserInfo.name = (clientInfo[1].toLowerCase() === 'crios' ? 'chrome' : browserInfo.name);\n browserInfo.version = clientInfo[2];\n browserInfo.culture.name = browserInfo.culture.language = navigator.language;\n // eslint-disable-next-line\n if (!!Browser.userAgent.match(REGX_IE11)) {\n browserInfo.name = 'msie';\n break;\n }\n var version = Browser.userAgent.match(REGX_VERSION);\n if (browserInfo.name === 'safari' && version) {\n browserInfo.version = version[2];\n }\n break;\n }\n }\n return browserInfo;\n };\n /**\n * To get events from the browser\n *\n * @param {string} event - type of event triggered.\n * @returns {boolean}\n */\n Browser.getEvent = function (event) {\n // eslint-disable-next-line\n var events = {\n start: {\n isPointer: 'pointerdown', isTouch: 'touchstart', isDevice: 'mousedown'\n },\n move: {\n isPointer: 'pointermove', isTouch: 'touchmove', isDevice: 'mousemove'\n },\n end: {\n isPointer: 'pointerup', isTouch: 'touchend', isDevice: 'mouseup'\n },\n cancel: {\n isPointer: 'pointercancel', isTouch: 'touchcancel', isDevice: 'mouseleave'\n }\n };\n return (Browser.isPointer ? events[\"\" + event].isPointer :\n (Browser.isTouch ? events[\"\" + event].isTouch + (!Browser.isDevice ? ' ' + events[\"\" + event].isDevice : '')\n : events[\"\" + event].isDevice));\n };\n /**\n * To get the Touch start event from browser\n *\n * @returns {string}\n */\n Browser.getTouchStartEvent = function () {\n return Browser.getEvent('start');\n };\n /**\n * To get the Touch end event from browser\n *\n * @returns {string}\n */\n Browser.getTouchEndEvent = function () {\n return Browser.getEvent('end');\n };\n /**\n * To get the Touch move event from browser\n *\n * @returns {string}\n */\n Browser.getTouchMoveEvent = function () {\n return Browser.getEvent('move');\n };\n /**\n * To cancel the touch event from browser\n *\n * @returns {string}\n */\n Browser.getTouchCancelEvent = function () {\n return Browser.getEvent('cancel');\n };\n /**\n * Check whether the browser on the iPad device is Safari or not\n *\n * @returns {boolean}\n */\n Browser.isSafari = function () {\n return (Browser.isDevice && Browser.isIos && Browser.isTouch && typeof window !== 'undefined'\n && window.navigator.userAgent.toLowerCase().indexOf('iphone') === -1\n && window.navigator.userAgent.toLowerCase().indexOf('safari') > -1);\n };\n /**\n * To get the value based on provided key and regX\n *\n * @param {string} key ?\n * @param {RegExp} regX ?\n * @returns {Object} ?\n */\n Browser.getValue = function (key, regX) {\n var browserDetails = typeof window !== 'undefined' ? window.browserDetails : {};\n if (typeof navigator !== 'undefined' && navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1 && Browser.isTouch === true && !REGX_BROWSER.CHROME.test(navigator.userAgent)) {\n browserDetails['isIos'] = true;\n browserDetails['isDevice'] = true;\n browserDetails['isTouch'] = true;\n browserDetails['isPointer'] = true;\n }\n if ('undefined' === typeof browserDetails[\"\" + key]) {\n return browserDetails[\"\" + key] = regX.test(Browser.userAgent);\n }\n return browserDetails[\"\" + key];\n };\n Object.defineProperty(Browser, \"userAgent\", {\n get: function () {\n return Browser.uA;\n },\n //Properties\n /**\n * Property specifies the userAgent of the browser. Default userAgent value is based on the browser.\n * Also we can set our own userAgent.\n *\n * @param {string} uA ?\n */\n set: function (uA) {\n Browser.uA = uA;\n window.browserDetails = {};\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"info\", {\n //Read Only Properties\n /**\n * Property is to get the browser information like Name, Version and Language\n *\n * @returns {BrowserInfo} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.info)) {\n return window.browserDetails.info = Browser.extractBrowserDetail();\n }\n return window.browserDetails.info;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isIE\", {\n /**\n * Property is to get whether the userAgent is based IE.\n *\n * @returns {boolean} ?\n */\n get: function () {\n return Browser.getValue('isIE', REGX_IE);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isTouch\", {\n /**\n * Property is to get whether the browser has touch support.\n *\n * @returns {boolean} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.isTouch)) {\n return (window.browserDetails.isTouch =\n ('ontouchstart' in window.navigator) ||\n (window &&\n window.navigator &&\n (window.navigator.maxTouchPoints > 0)) || ('ontouchstart' in window));\n }\n return window.browserDetails.isTouch;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isPointer\", {\n /**\n * Property is to get whether the browser has Pointer support.\n *\n * @returns {boolean} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.isPointer)) {\n return window.browserDetails.isPointer = ('pointerEnabled' in window.navigator);\n }\n return window.browserDetails.isPointer;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isMSPointer\", {\n /**\n * Property is to get whether the browser has MSPointer support.\n *\n * @returns {boolean} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.isMSPointer)) {\n return window.browserDetails.isMSPointer = ('msPointerEnabled' in window.navigator);\n }\n return window.browserDetails.isMSPointer;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isDevice\", {\n /**\n * Property is to get whether the userAgent is device based.\n *\n * @returns {boolean} ?\n */\n get: function () {\n return Browser.getValue('isDevice', REGX_MOBILE);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isIos\", {\n /**\n * Property is to get whether the userAgent is IOS.\n *\n * @returns {boolean} ?\n */\n get: function () {\n return Browser.getValue('isIos', REGX_IOS);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isIos7\", {\n /**\n * Property is to get whether the userAgent is Ios7.\n *\n * @returns {boolean} ?\n */\n get: function () {\n return Browser.getValue('isIos7', REGX_IOS7);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isAndroid\", {\n /**\n * Property is to get whether the userAgent is Android.\n *\n * @returns {boolean} ?\n */\n get: function () {\n return Browser.getValue('isAndroid', REGX_ANDROID);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isWebView\", {\n /**\n * Property is to identify whether application ran in web view.\n *\n * @returns {boolean} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.isWebView)) {\n window.browserDetails.isWebView = !(isUndefined(window.cordova) && isUndefined(window.PhoneGap)\n && isUndefined(window.phonegap) && window.forge !== 'object');\n return window.browserDetails.isWebView;\n }\n return window.browserDetails.isWebView;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isWindows\", {\n /**\n * Property is to get whether the userAgent is Windows.\n *\n * @returns {boolean} ?\n */\n get: function () {\n return Browser.getValue('isWindows', REGX_WINDOWS);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"touchStartEvent\", {\n /**\n * Property is to get the touch start event. It returns event name based on browser.\n *\n * @returns {string} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.touchStartEvent)) {\n return window.browserDetails.touchStartEvent = Browser.getTouchStartEvent();\n }\n return window.browserDetails.touchStartEvent;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"touchMoveEvent\", {\n /**\n * Property is to get the touch move event. It returns event name based on browser.\n *\n * @returns {string} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.touchMoveEvent)) {\n return window.browserDetails.touchMoveEvent = Browser.getTouchMoveEvent();\n }\n return window.browserDetails.touchMoveEvent;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"touchEndEvent\", {\n /**\n * Property is to get the touch end event. It returns event name based on browser.\n *\n * @returns {string} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.touchEndEvent)) {\n return window.browserDetails.touchEndEvent = Browser.getTouchEndEvent();\n }\n return window.browserDetails.touchEndEvent;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"touchCancelEvent\", {\n /**\n * Property is to cancel the touch end event.\n *\n * @returns {string} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.touchCancelEvent)) {\n return window.browserDetails.touchCancelEvent = Browser.getTouchCancelEvent();\n }\n return window.browserDetails.touchCancelEvent;\n },\n enumerable: true,\n configurable: true\n });\n /* istanbul ignore next */\n Browser.uA = typeof navigator !== 'undefined' ? navigator.userAgent : '';\n return Browser;\n}());\nexport { Browser };\n","import { debounce, extend } from './util';\nimport { Browser } from './browser';\n/**\n * EventHandler class provides option to add, remove, clear and trigger events to a HTML DOM element\n * ```html\n *
\n * \n * ```\n */\nvar EventHandler = /** @class */ (function () {\n function EventHandler() {\n }\n // to get the event data based on element\n EventHandler.addOrGetEventData = function (element) {\n if ('__eventList' in element) {\n return element.__eventList.events;\n }\n else {\n element.__eventList = {};\n return element.__eventList.events = [];\n }\n };\n /**\n * Add an event to the specified DOM element.\n *\n * @param {any} element - Target HTML DOM element\n * @param {string} eventName - A string that specifies the name of the event\n * @param {Function} listener - Specifies the function to run when the event occurs\n * @param {Object} bindTo - A object that binds 'this' variable in the event handler\n * @param {number} intDebounce - Specifies at what interval given event listener should be triggered.\n * @returns {Function} ?\n */\n EventHandler.add = function (element, eventName, listener, bindTo, intDebounce) {\n var eventData = EventHandler.addOrGetEventData(element);\n var debounceListener;\n if (intDebounce) {\n debounceListener = debounce(listener, intDebounce);\n }\n else {\n debounceListener = listener;\n }\n if (bindTo) {\n debounceListener = debounceListener.bind(bindTo);\n }\n var event = eventName.split(' ');\n for (var i = 0; i < event.length; i++) {\n eventData.push({\n name: event[parseInt(i.toString(), 10)],\n listener: listener,\n debounce: debounceListener\n });\n if (Browser.isIE) {\n element.addEventListener(event[parseInt(i.toString(), 10)], debounceListener);\n }\n else {\n element.addEventListener(event[parseInt(i.toString(), 10)], debounceListener, { passive: false });\n }\n }\n return debounceListener;\n };\n /**\n * Remove an event listener that has been attached before.\n *\n * @param {any} element - Specifies the target html element to remove the event\n * @param {string} eventName - A string that specifies the name of the event to remove\n * @param {Function} listener - Specifies the function to remove\n * @returns {void} ?\n */\n EventHandler.remove = function (element, eventName, listener) {\n var eventData = EventHandler.addOrGetEventData(element);\n var event = eventName.split(' ');\n var _loop_1 = function (j) {\n var index = -1;\n var debounceListener;\n if (eventData && eventData.length !== 0) {\n eventData.some(function (x, i) {\n return x.name === event[parseInt(j.toString(), 10)] && x.listener === listener ?\n (index = i, debounceListener = x.debounce, true) : false;\n });\n }\n if (index !== -1) {\n eventData.splice(index, 1);\n }\n if (debounceListener) {\n element.removeEventListener(event[parseInt(j.toString(), 10)], debounceListener);\n }\n };\n for (var j = 0; j < event.length; j++) {\n _loop_1(j);\n }\n };\n /**\n * Clear all the event listeners that has been previously attached to the element.\n *\n * @param {any} element - Specifies the target html element to clear the events\n * @returns {void} ?\n */\n EventHandler.clearEvents = function (element) {\n var eventData;\n var copyData;\n // eslint-disable-next-line\n eventData = EventHandler.addOrGetEventData(element);\n // eslint-disable-next-line\n copyData = extend([], copyData, eventData);\n for (var i = 0; i < copyData.length; i++) {\n element.removeEventListener(copyData[parseInt(i.toString(), 10)].name, copyData[parseInt(i.toString(), 10)].debounce);\n eventData.shift();\n }\n };\n /**\n * Trigger particular event of the element.\n *\n * @param {any} element - Specifies the target html element to trigger the events\n * @param {string} eventName - Specifies the event to trigger for the specified element.\n * Can be a custom event, or any of the standard events.\n * @param {any} eventProp - Additional parameters to pass on to the event properties\n * @returns {void} ?\n */\n EventHandler.trigger = function (element, eventName, eventProp) {\n var eventData = EventHandler.addOrGetEventData(element);\n for (var _i = 0, eventData_1 = eventData; _i < eventData_1.length; _i++) {\n var event_1 = eventData_1[_i];\n if (event_1.name === eventName) {\n event_1.debounce.call(this, eventProp);\n }\n }\n };\n return EventHandler;\n}());\nexport { EventHandler };\n","/**\n * Functions related to dom operations.\n */\nimport { EventHandler } from './event-handler';\nimport { isNullOrUndefined, getValue, setValue, isObject, extend } from './util';\nvar SVG_REG = /^svg|^path|^g/;\n/**\n * Function to create Html element.\n *\n * @param {string} tagName - Name of the tag, id and class names.\n * @param {ElementProperties} properties - Object to set properties in the element.\n * @param {ElementProperties} properties.id - To set the id to the created element.\n * @param {ElementProperties} properties.className - To add classes to the element.\n * @param {ElementProperties} properties.innerHTML - To set the innerHTML to element.\n * @param {ElementProperties} properties.styles - To set the some custom styles to element.\n * @param {ElementProperties} properties.attrs - To set the attributes to element.\n * @returns {any} ?\n * @private\n */\nexport function createElement(tagName, properties) {\n var element = (SVG_REG.test(tagName) ? document.createElementNS('http://www.w3.org/2000/svg', tagName) : document.createElement(tagName));\n if (typeof (properties) === 'undefined') {\n return element;\n }\n element.innerHTML = (properties.innerHTML ? properties.innerHTML : '');\n if (properties.className !== undefined) {\n element.className = properties.className;\n }\n if (properties.id !== undefined) {\n element.id = properties.id;\n }\n if (properties.styles !== undefined) {\n element.setAttribute('style', properties.styles);\n }\n if (properties.attrs !== undefined) {\n attributes(element, properties.attrs);\n }\n return element;\n}\n/**\n * The function used to add the classes to array of elements\n *\n * @param {Element[]|NodeList} elements - An array of elements that need to add a list of classes\n * @param {string|string[]} classes - String or array of string that need to add an individual element as a class\n * @returns {any} .\n * @private\n */\nexport function addClass(elements, classes) {\n var classList = getClassList(classes);\n var regExp = RegExp;\n for (var _i = 0, _a = elements; _i < _a.length; _i++) {\n var ele = _a[_i];\n for (var _b = 0, classList_1 = classList; _b < classList_1.length; _b++) {\n var className = classList_1[_b];\n if (isObject(ele)) {\n var curClass = getValue('attributes.className', ele);\n if (isNullOrUndefined(curClass)) {\n setValue('attributes.className', className, ele);\n }\n else if (!new regExp('\\\\b' + className + '\\\\b', 'i').test(curClass)) {\n setValue('attributes.className', curClass + ' ' + className, ele);\n }\n }\n else {\n if (!ele.classList.contains(className)) {\n ele.classList.add(className);\n }\n }\n }\n }\n return elements;\n}\n/**\n * The function used to add the classes to array of elements\n *\n * @param {Element[]|NodeList} elements - An array of elements that need to remove a list of classes\n * @param {string|string[]} classes - String or array of string that need to add an individual element as a class\n * @returns {any} .\n * @private\n */\nexport function removeClass(elements, classes) {\n var classList = getClassList(classes);\n for (var _i = 0, _a = elements; _i < _a.length; _i++) {\n var ele = _a[_i];\n var flag = isObject(ele);\n var canRemove = flag ? getValue('attributes.className', ele) : ele.className !== '';\n if (canRemove) {\n for (var _b = 0, classList_2 = classList; _b < classList_2.length; _b++) {\n var className = classList_2[_b];\n if (flag) {\n var classes_1 = getValue('attributes.className', ele);\n var classArr = classes_1.split(' ');\n var index = classArr.indexOf(className);\n if (index !== -1) {\n classArr.splice(index, 1);\n }\n setValue('attributes.className', classArr.join(' '), ele);\n }\n else {\n ele.classList.remove(className);\n }\n }\n }\n }\n return elements;\n}\n/**\n * The function used to get classlist.\n *\n * @param {string | string[]} classes - An element the need to check visibility\n * @returns {string[]} ?\n * @private\n */\nfunction getClassList(classes) {\n var classList = [];\n if (typeof classes === 'string') {\n classList.push(classes);\n }\n else {\n classList = classes;\n }\n return classList;\n}\n/**\n * The function used to check element is visible or not.\n *\n * @param {Element|Node} element - An element the need to check visibility\n * @returns {boolean} ?\n * @private\n */\nexport function isVisible(element) {\n var ele = element;\n return (ele.style.visibility === '' && ele.offsetWidth > 0);\n}\n/**\n * The function used to insert an array of elements into a first of the element.\n *\n * @param {Element[]|NodeList} fromElements - An array of elements that need to prepend.\n * @param {Element} toElement - An element that is going to prepend.\n * @param {boolean} isEval - ?\n * @returns {Element[] | NodeList} ?\n * @private\n */\nexport function prepend(fromElements, toElement, isEval) {\n var docFrag = document.createDocumentFragment();\n for (var _i = 0, _a = fromElements; _i < _a.length; _i++) {\n var ele = _a[_i];\n docFrag.appendChild(ele);\n }\n toElement.insertBefore(docFrag, toElement.firstElementChild);\n if (isEval) {\n executeScript(toElement);\n }\n return fromElements;\n}\n/**\n * The function used to insert an array of elements into last of the element.\n *\n * @param {Element[]|NodeList} fromElements - An array of elements that need to append.\n * @param {Element} toElement - An element that is going to prepend.\n * @param {boolean} isEval - ?\n * @returns {Element[] | NodeList} ?\n * @private\n */\nexport function append(fromElements, toElement, isEval) {\n var docFrag = document.createDocumentFragment();\n if (fromElements instanceof NodeList) {\n while (fromElements.length > 0) {\n docFrag.appendChild(fromElements[0]);\n }\n }\n else {\n for (var _i = 0, _a = fromElements; _i < _a.length; _i++) {\n var ele = _a[_i];\n docFrag.appendChild(ele);\n }\n }\n toElement.appendChild(docFrag);\n if (isEval) {\n executeScript(toElement);\n }\n return fromElements;\n}\n/**\n * The function is used to evaluate script from Ajax request\n *\n * @param {Element} ele - An element is going to evaluate the script\n * @returns {void} ?\n */\nfunction executeScript(ele) {\n var eleArray = ele.querySelectorAll('script');\n eleArray.forEach(function (element) {\n var script = document.createElement('script');\n script.text = element.innerHTML;\n document.head.appendChild(script);\n detach(script);\n });\n}\n/**\n * The function used to remove the element from parentnode\n *\n * @param {Element|Node|HTMLElement} element - An element that is going to detach from the Dom\n * @returns {any} ?\n * @private\n */\n// eslint-disable-next-line\nexport function detach(element) {\n var parentNode = element.parentNode;\n if (parentNode) {\n return parentNode.removeChild(element);\n }\n}\n/**\n * The function used to remove the element from Dom also clear the bounded events\n *\n * @param {Element|Node|HTMLElement} element - An element remove from the Dom\n * @returns {void} ?\n * @private\n */\nexport function remove(element) {\n var parentNode = element.parentNode;\n EventHandler.clearEvents(element);\n parentNode.removeChild(element);\n}\n/**\n * The function helps to set multiple attributes to an element\n *\n * @param {Element|Node} element - An element that need to set attributes.\n * @param {string} attributes - JSON Object that is going to as attributes.\n * @returns {Element} ?\n * @private\n */\n// eslint-disable-next-line\nexport function attributes(element, attributes) {\n var keys = Object.keys(attributes);\n var ele = element;\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n if (isObject(ele)) {\n var iKey = key;\n if (key === 'tabindex') {\n iKey = 'tabIndex';\n }\n ele.attributes[\"\" + iKey] = attributes[\"\" + key];\n }\n else {\n ele.setAttribute(key, attributes[\"\" + key]);\n }\n }\n return ele;\n}\n/**\n * The function selects the element from giving context.\n *\n * @param {string} selector - Selector string need fetch element\n * @param {Document|Element} context - It is an optional type, That specifies a Dom context.\n * @param {boolean} needsVDOM ?\n * @returns {any} ?\n * @private\n */\n// eslint-disable-next-line\nexport function select(selector, context, needsVDOM) {\n if (context === void 0) { context = document; }\n selector = querySelectId(selector);\n return context.querySelector(selector);\n}\n/**\n * The function selects an array of element from the given context.\n *\n * @param {string} selector - Selector string need fetch element\n * @param {Document|Element} context - It is an optional type, That specifies a Dom context.\n * @param {boolean} needsVDOM ?\n * @returns {HTMLElement[]} ?\n * @private\n */\n// eslint-disable-next-line\nexport function selectAll(selector, context, needsVDOM) {\n if (context === void 0) { context = document; }\n selector = querySelectId(selector);\n var nodeList = context.querySelectorAll(selector);\n return nodeList;\n}\n/**\n * The function selects an id of element from the given context.\n *\n * @param {string} selector - Selector string need fetch element\n * @returns {string} ?\n * @private\n */\nfunction querySelectId(selector) {\n var charRegex = /(!|\"|\\$|%|&|'|\\(|\\)|\\*|\\/|:|;|<|=|\\?|@|\\]|\\^|`|{|}|\\||\\+|~)/g;\n if (selector.match(/#[0-9]/g) || selector.match(charRegex)) {\n var idList = selector.split(',');\n for (var i = 0; i < idList.length; i++) {\n var list = idList[parseInt(i.toString(), 10)].split(' ');\n for (var j = 0; j < list.length; j++) {\n if (list[parseInt(j.toString(), 10)].indexOf('#') > -1) {\n if (!list[parseInt(j.toString(), 10)].match(/\\[.*\\]/)) {\n var splitId = list[parseInt(j.toString(), 10)].split('#');\n if (splitId[1].match(/^\\d/) || splitId[1].match(charRegex)) {\n var setId = list[parseInt(j.toString(), 10)].split('.');\n setId[0] = setId[0].replace(/#/, '[id=\\'') + '\\']';\n list[parseInt(j.toString(), 10)] = setId.join('.');\n }\n }\n }\n }\n idList[parseInt(i.toString(), 10)] = list.join(' ');\n }\n return idList.join(',');\n }\n return selector;\n}\n/**\n * Returns single closest parent element based on class selector.\n *\n * @param {Element} element - An element that need to find the closest element.\n * @param {string} selector - A classSelector of closest element.\n * @returns {Element} ?\n * @private\n */\nexport function closest(element, selector) {\n var el = element;\n if (typeof el.closest === 'function') {\n return el.closest(selector);\n }\n while (el && el.nodeType === 1) {\n if (matches(el, selector)) {\n return el;\n }\n el = el.parentNode;\n }\n return null;\n}\n/**\n * Returns all sibling elements of the given element.\n *\n * @param {Element|Node} element - An element that need to get siblings.\n * @returns {Element[]} ?\n * @private\n */\nexport function siblings(element) {\n var siblings = [];\n var childNodes = Array.prototype.slice.call(element.parentNode.childNodes);\n for (var _i = 0, childNodes_1 = childNodes; _i < childNodes_1.length; _i++) {\n var curNode = childNodes_1[_i];\n if (curNode.nodeType === Node.ELEMENT_NODE && element !== curNode) {\n siblings.push(curNode);\n }\n }\n return siblings;\n}\n/**\n * set the value if not exist. Otherwise set the existing value\n *\n * @param {HTMLElement} element - An element to which we need to set value.\n * @param {string} property - Property need to get or set.\n * @param {string} value - value need to set.\n * @returns {string} ?\n * @private\n */\nexport function getAttributeOrDefault(element, property, value) {\n var attrVal;\n var isObj = isObject(element);\n if (isObj) {\n attrVal = getValue('attributes.' + property, element);\n }\n else {\n attrVal = element.getAttribute(property);\n }\n if (isNullOrUndefined(attrVal) && value) {\n if (!isObj) {\n element.setAttribute(property, value.toString());\n }\n else {\n element.attributes[\"\" + property] = value;\n }\n attrVal = value;\n }\n return attrVal;\n}\n/**\n * Set the style attributes to Html element.\n *\n * @param {HTMLElement} element - Element which we want to set attributes\n * @param {any} attrs - Set the given attributes to element\n * @returns {void} ?\n * @private\n */\nexport function setStyleAttribute(element, attrs) {\n if (attrs !== undefined) {\n Object.keys(attrs).forEach(function (key) {\n // eslint-disable-next-line\n element.style[key] = attrs[key];\n });\n }\n}\n/**\n * Method for add and remove classes to a dom element.\n *\n * @param {Element} element - Element for add and remove classes\n * @param {string[]} addClasses - List of classes need to be add to the element\n * @param {string[]} removeClasses - List of classes need to be remove from the element\n * @returns {void} ?\n * @private\n */\nexport function classList(element, addClasses, removeClasses) {\n addClass([element], addClasses);\n removeClass([element], removeClasses);\n}\n/**\n * Method to check whether the element matches the given selector.\n *\n * @param {Element} element - Element to compare with the selector.\n * @param {string} selector - String selector which element will satisfy.\n * @returns {void} ?\n * @private\n */\nexport function matches(element, selector) {\n // eslint-disable-next-line\n var matches = element.matches || element.msMatchesSelector || element.webkitMatchesSelector;\n if (matches) {\n return matches.call(element, selector);\n }\n else {\n return [].indexOf.call(document.querySelectorAll(selector), element) !== -1;\n }\n}\n/**\n * Method to get the html text from DOM.\n *\n * @param {HTMLElement} ele - Element to compare with the selector.\n * @param {string} innerHTML - String selector which element will satisfy.\n * @returns {void} ?\n * @private\n */\nexport function includeInnerHTML(ele, innerHTML) {\n ele.innerHTML = innerHTML;\n}\n/**\n * Method to get the containsclass.\n *\n * @param {HTMLElement} ele - Element to compare with the selector.\n * @param {string} className - String selector which element will satisfy.\n * @returns {any} ?\n * @private\n */\n// eslint-disable-next-line\nexport function containsClass(ele, className) {\n if (isObject(ele)) {\n // eslint-disable-next-line\n return new RegExp('\\\\b' + className + '\\\\b', 'i').test(ele.attributes.className);\n }\n else {\n return ele.classList.contains(className);\n }\n}\n/**\n * Method to check whether the element matches the given selector.\n *\n * @param {Object} element - Element to compare with the selector.\n * @param {boolean} deep ?\n * @returns {any} ?\n * @private\n */\n// eslint-disable-next-line\nexport function cloneNode(element, deep) {\n if (isObject(element)) {\n if (deep) {\n return extend({}, {}, element, true);\n }\n }\n else {\n return element.cloneNode(deep);\n }\n}\n","import { isUndefined, isNullOrUndefined, merge, setImmediate, setValue, isBlazor, getValue, extend } from './util';\nimport { addClass, removeClass } from './dom';\nimport { Observer } from './observer';\nvar isColEName = new RegExp(']');\n/* tslint:enable:no-any */\n/**\n * Base library module is common module for Framework modules like touch,keyboard and etc.,\n *\n * @private\n */\nvar Base = /** @class */ (function () {\n /**\n * Base constructor accept options and element\n *\n * @param {Object} options ?\n * @param {string} element ?\n */\n function Base(options, element) {\n this.isRendered = false;\n this.isComplexArraySetter = false;\n this.isServerRendered = false;\n this.allowServerDataBinding = true;\n this.isProtectedOnChange = true;\n this.properties = {};\n this.changedProperties = {};\n this.oldProperties = {};\n this.bulkChanges = {};\n this.refreshing = false;\n this.ignoreCollectionWatch = false;\n // eslint-disable-next-line\n this.finalUpdate = function () { };\n this.childChangedProperties = {};\n this.modelObserver = new Observer(this);\n if (!isUndefined(element)) {\n if ('string' === typeof (element)) {\n this.element = document.querySelector(element);\n }\n else {\n this.element = element;\n }\n if (!isNullOrUndefined(this.element)) {\n this.isProtectedOnChange = false;\n this.addInstance();\n }\n }\n if (!isUndefined(options)) {\n this.setProperties(options, true);\n }\n this.isDestroyed = false;\n }\n /** Property base section */\n /**\n * Function used to set bunch of property at a time.\n *\n * @private\n * @param {Object} prop - JSON object which holds components properties.\n * @param {boolean} muteOnChange ? - Specifies to true when we set properties.\n * @returns {void} ?\n */\n Base.prototype.setProperties = function (prop, muteOnChange) {\n var prevDetection = this.isProtectedOnChange;\n this.isProtectedOnChange = !!muteOnChange;\n merge(this, prop);\n if (muteOnChange !== true) {\n merge(this.changedProperties, prop);\n this.dataBind();\n }\n else if (isBlazor() && this.isRendered) {\n this.serverDataBind(prop);\n }\n this.finalUpdate();\n this.changedProperties = {};\n this.oldProperties = {};\n this.isProtectedOnChange = prevDetection;\n };\n /**\n * Calls for child element data bind\n *\n * @param {Object} obj ?\n * @param {Object} parent ?\n * @returns {void} ?\n */\n // tslint:disable-next-line:no-any\n Base.callChildDataBind = function (obj, parent) {\n var keys = Object.keys(obj);\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n if (parent[\"\" + key] instanceof Array) {\n for (var _a = 0, _b = parent[\"\" + key]; _a < _b.length; _a++) {\n var obj_1 = _b[_a];\n if (obj_1.dataBind !== undefined) {\n obj_1.dataBind();\n }\n }\n }\n else {\n parent[\"\" + key].dataBind();\n }\n }\n };\n Base.prototype.clearChanges = function () {\n this.finalUpdate();\n this.changedProperties = {};\n this.oldProperties = {};\n this.childChangedProperties = {};\n };\n /**\n * Bind property changes immediately to components\n *\n * @returns {void} ?\n */\n Base.prototype.dataBind = function () {\n Base.callChildDataBind(this.childChangedProperties, this);\n if (Object.getOwnPropertyNames(this.changedProperties).length) {\n var prevDetection = this.isProtectedOnChange;\n var newChanges = this.changedProperties;\n var oldChanges = this.oldProperties;\n this.clearChanges();\n this.isProtectedOnChange = true;\n this.onPropertyChanged(newChanges, oldChanges);\n this.isProtectedOnChange = prevDetection;\n }\n };\n /* tslint:disable:no-any */\n Base.prototype.serverDataBind = function (newChanges) {\n if (!isBlazor()) {\n return;\n }\n newChanges = newChanges ? newChanges : {};\n extend(this.bulkChanges, {}, newChanges, true);\n var sfBlazor = 'sfBlazor';\n if (this.allowServerDataBinding && window[\"\" + sfBlazor].updateModel) {\n window[\"\" + sfBlazor].updateModel(this);\n this.bulkChanges = {};\n }\n };\n /* tslint:enable:no-any */\n Base.prototype.saveChanges = function (key, newValue, oldValue) {\n if (isBlazor()) {\n // tslint:disable-next-line:no-any\n var newChanges = {};\n newChanges[\"\" + key] = newValue;\n this.serverDataBind(newChanges);\n }\n if (this.isProtectedOnChange) {\n return;\n }\n this.oldProperties[\"\" + key] = oldValue;\n this.changedProperties[\"\" + key] = newValue;\n this.finalUpdate();\n this.finalUpdate = setImmediate(this.dataBind.bind(this));\n };\n /** Event Base Section */\n /**\n * Adds the handler to the given event listener.\n *\n * @param {string} eventName - A String that specifies the name of the event\n * @param {Function} handler - Specifies the call to run when the event occurs.\n * @returns {void} ?\n */\n Base.prototype.addEventListener = function (eventName, handler) {\n this.modelObserver.on(eventName, handler);\n };\n /**\n * Removes the handler from the given event listener.\n *\n * @param {string} eventName - A String that specifies the name of the event to remove\n * @param {Function} handler - Specifies the function to remove\n * @returns {void} ?\n */\n Base.prototype.removeEventListener = function (eventName, handler) {\n this.modelObserver.off(eventName, handler);\n };\n /**\n * Triggers the handlers in the specified event.\n *\n * @private\n * @param {string} eventName - Specifies the event to trigger for the specified component properties.\n * Can be a custom event, or any of the standard events.\n * @param {Event} eventProp - Additional parameters to pass on to the event properties\n * @param {Function} successHandler - this function will invoke after event successfully triggered\n * @param {Function} errorHandler - this function will invoke after event if it failured to call.\n * @returns {void} ?\n */\n Base.prototype.trigger = function (eventName, eventProp, successHandler, errorHandler) {\n var _this = this;\n if (this.isDestroyed !== true) {\n var prevDetection = this.isProtectedOnChange;\n this.isProtectedOnChange = false;\n var data = this.modelObserver.notify(eventName, eventProp, successHandler, errorHandler);\n if (isColEName.test(eventName)) {\n var handler = getValue(eventName, this);\n if (handler) {\n var blazor = 'Blazor';\n if (window[\"\" + blazor]) {\n var promise = handler.call(this, eventProp);\n if (promise && typeof promise.then === 'function') {\n if (!successHandler) {\n data = promise;\n }\n else {\n promise.then(function (data) {\n if (successHandler) {\n data = typeof data === 'string' && _this.modelObserver.isJson(data) ?\n JSON.parse(data) : data;\n successHandler.call(_this, data);\n }\n }).catch(function (data) {\n if (errorHandler) {\n data = typeof data === 'string' && _this.modelObserver.isJson(data) ? JSON.parse(data) : data;\n errorHandler.call(_this, data);\n }\n });\n }\n }\n else if (successHandler) {\n successHandler.call(this, eventProp);\n }\n }\n else {\n handler.call(this, eventProp);\n if (successHandler) {\n successHandler.call(this, eventProp);\n }\n }\n }\n else if (successHandler) {\n successHandler.call(this, eventProp);\n }\n }\n this.isProtectedOnChange = prevDetection;\n return data;\n }\n };\n /**\n * To maintain instance in base class\n *\n * @returns {void} ?\n */\n Base.prototype.addInstance = function () {\n // Add module class to the root element\n var moduleClass = 'e-' + this.getModuleName().toLowerCase();\n addClass([this.element], ['e-lib', moduleClass]);\n if (!isNullOrUndefined(this.element.ej2_instances)) {\n this.element.ej2_instances.push(this);\n }\n else {\n setValue('ej2_instances', [this], this.element);\n }\n };\n /**\n * To remove the instance from the element\n *\n * @returns {void} ?\n */\n Base.prototype.destroy = function () {\n var _this = this;\n // eslint-disable-next-line\n this.element.ej2_instances =\n this.element.ej2_instances.filter(function (i) { return i !== _this; });\n removeClass([this.element], ['e-' + this.getModuleName()]);\n if (this.element.ej2_instances.length === 0) {\n // Remove module class from the root element\n removeClass([this.element], ['e-lib']);\n }\n this.clearChanges();\n this.modelObserver.destroy();\n this.isDestroyed = true;\n };\n return Base;\n}());\nexport { Base };\n/**\n * Global function to get the component instance from the rendered element.\n *\n * @param {HTMLElement} elem Specifies the HTMLElement or element id string.\n * @param {string} comp Specifies the component module name or Component.\n * @returns {any} ?\n */\n// tslint:disable-next-line:no-any\nexport function getComponent(elem, comp) {\n var instance;\n var i;\n var ele = typeof elem === 'string' ? document.getElementById(elem) : elem;\n for (i = 0; i < ele.ej2_instances.length; i++) {\n instance = ele.ej2_instances[parseInt(i.toString(), 10)];\n if (typeof comp === 'string') {\n var compName = instance.getModuleName();\n if (comp === compName) {\n return instance;\n }\n }\n else {\n // tslint:disable-next-line:no-any\n if (instance instanceof comp) {\n return instance;\n }\n }\n }\n return undefined;\n}\n/**\n * Function to remove the child instances.\n *\n * @param {HTMLElement} element ?\n * @return {void}\n * @private\n */\n// tslint:disable-next-line:no-any\nexport function removeChildInstance(element) {\n // tslint:disable-next-line:no-any\n var childEle = [].slice.call(element.getElementsByClassName('e-control'));\n for (var i = 0; i < childEle.length; i++) {\n var compName = childEle[parseInt(i.toString(), 10)].classList[1].split('e-')[1];\n // tslint:disable-next-line:no-any\n var compInstance = getComponent(childEle[parseInt(i.toString(), 10)], compName);\n if (!isUndefined(compInstance)) {\n compInstance.destroy();\n }\n }\n}\n","import { createInstance, isUndefined, merge, extend, getValue } from './util';\n/**\n * Returns the Class Object\n *\n * @param {ClassObject} instance - instance of ClassObject\n * @param {string} curKey - key of the current instance\n * @param {Object} defaultValue - default Value\n * @param {Object[]} type ?\n * @returns {ClassObject} ?\n */\n// eslint-disable-next-line\nfunction getObject(instance, curKey, defaultValue, type) {\n // eslint-disable-next-line\n if (!instance.properties.hasOwnProperty(curKey) || !(instance.properties[curKey] instanceof type)) {\n instance.properties[\"\" + curKey] = createInstance(type, [instance, curKey, defaultValue]);\n }\n return instance.properties[\"\" + curKey];\n}\n/**\n * Returns object array\n *\n * @param {ClassObject} instance ?\n * @param {string} curKey ?\n * @param {Object[]} defaultValue ?\n * @param {Object} type ?\n * @param {boolean} isSetter ?\n * @param {boolean} isFactory ?\n * @returns {Object[]} ?\n */\n// eslint-disable-next-line\nfunction getObjectArray(instance, curKey, defaultValue, type, isSetter, isFactory) {\n var result = [];\n var len = defaultValue ? defaultValue.length : 0;\n for (var i = 0; i < len; i++) {\n var curType = type;\n if (isFactory) {\n curType = type(defaultValue[parseInt(i.toString(), 10)], instance);\n }\n if (isSetter) {\n var inst = createInstance(curType, [instance, curKey, {}, true]);\n inst.setProperties(defaultValue[parseInt(i.toString(), 10)], true);\n result.push(inst);\n }\n else {\n result.push(createInstance(curType, [instance, curKey, defaultValue[parseInt(i.toString(), 10)], false]));\n }\n }\n return result;\n}\n/**\n * Returns the properties of the object\n *\n * @param {Object} defaultValue ?\n * @param {string} curKey ?\n * @returns {void} ?\n */\nfunction propertyGetter(defaultValue, curKey) {\n return function () {\n // eslint-disable-next-line\n if (!this.properties.hasOwnProperty(curKey)) {\n this.properties[\"\" + curKey] = defaultValue;\n }\n return this.properties[\"\" + curKey];\n };\n}\n/**\n * Set the properties for the object\n *\n * @param {Object} defaultValue ?\n * @param {string} curKey ?\n * @returns {void} ?\n */\nfunction propertySetter(defaultValue, curKey) {\n return function (newValue) {\n if (this.properties[\"\" + curKey] !== newValue) {\n // eslint-disable-next-line\n var oldVal = this.properties.hasOwnProperty(curKey) ? this.properties[curKey] : defaultValue;\n this.saveChanges(curKey, newValue, oldVal);\n this.properties[\"\" + curKey] = newValue;\n }\n };\n}\n/**\n * Returns complex objects\n *\n * @param {Object} defaultValue ?\n * @param {string} curKey ?\n * @param {Object[]} type ?\n * @returns {void} ?\n */\n// eslint-disable-next-line\nfunction complexGetter(defaultValue, curKey, type) {\n return function () {\n return getObject(this, curKey, defaultValue, type);\n };\n}\n/**\n * Sets complex objects\n *\n * @param {Object} defaultValue ?\n * @param {string} curKey ?\n * @param {Object[]} type ?\n * @returns {void} ?\n */\nfunction complexSetter(defaultValue, curKey, type) {\n return function (newValue) {\n getObject(this, curKey, defaultValue, type).setProperties(newValue);\n };\n}\n/**\n *\n * @param {Object} defaultValue ?\n * @param {string} curKey ?\n * @param {FunctionConstructor} type ?\n * @returns {void} ?\n */\n// eslint-disable-next-line\nfunction complexFactoryGetter(defaultValue, curKey, type) {\n return function () {\n var curType = type({});\n // eslint-disable-next-line\n if (this.properties.hasOwnProperty(curKey)) {\n return this.properties[\"\" + curKey];\n }\n else {\n return getObject(this, curKey, defaultValue, curType);\n }\n };\n}\n/**\n *\n * @param {Object} defaultValue ?\n * @param {string} curKey ?\n * @param {Object[]} type ?\n * @returns {void} ?\n */\nfunction complexFactorySetter(defaultValue, curKey, type) {\n return function (newValue) {\n var curType = type(newValue, this);\n getObject(this, curKey, defaultValue, curType).setProperties(newValue);\n };\n}\n/**\n *\n * @param {Object[]} defaultValue ?\n * @param {string} curKey ?\n * @param {Object[]} type ?\n * @returns {void} ?\n */\nfunction complexArrayGetter(defaultValue, curKey, type) {\n return function () {\n var _this = this;\n // eslint-disable-next-line\n if (!this.properties.hasOwnProperty(curKey)) {\n var defCollection = getObjectArray(this, curKey, defaultValue, type, false);\n this.properties[\"\" + curKey] = defCollection;\n }\n var ignore = ((this.controlParent !== undefined && this.controlParent.ignoreCollectionWatch)\n || this.ignoreCollectionWatch);\n // eslint-disable-next-line\n if (!this.properties[curKey].hasOwnProperty('push') && !ignore) {\n ['push', 'pop'].forEach(function (extendFunc) {\n var descriptor = {\n value: complexArrayDefinedCallback(extendFunc, curKey, type, _this.properties[\"\" + curKey]).bind(_this),\n configurable: true\n };\n Object.defineProperty(_this.properties[\"\" + curKey], extendFunc, descriptor);\n });\n }\n // eslint-disable-next-line\n if (!this.properties[curKey].hasOwnProperty('isComplexArray')) {\n Object.defineProperty(this.properties[\"\" + curKey], 'isComplexArray', { value: true });\n }\n return this.properties[\"\" + curKey];\n };\n}\n/**\n *\n * @param {Object[]} defaultValue ?\n * @param {string} curKey ?\n * @param {Object[]} type ?\n * @returns {void} ?\n */\nfunction complexArraySetter(defaultValue, curKey, type) {\n return function (newValue) {\n this.isComplexArraySetter = true;\n var oldValueCollection = getObjectArray(this, curKey, defaultValue, type, false);\n var newValCollection = getObjectArray(this, curKey, newValue, type, true);\n this.isComplexArraySetter = false;\n this.saveChanges(curKey, newValCollection, oldValueCollection);\n this.properties[\"\" + curKey] = newValCollection;\n };\n}\n/**\n *\n * @param {Object[]} defaultValue ?\n * @param {string} curKey ?\n * @param {Object[]} type ?\n * @returns {void} ?\n */\nfunction complexArrayFactorySetter(defaultValue, curKey, type) {\n return function (newValue) {\n // eslint-disable-next-line\n var oldValueCollection = this.properties.hasOwnProperty(curKey) ? this.properties[curKey] : defaultValue;\n var newValCollection = getObjectArray(this, curKey, newValue, type, true, true);\n this.saveChanges(curKey, newValCollection, oldValueCollection);\n this.properties[\"\" + curKey] = newValCollection;\n };\n}\n/**\n *\n * @param {Object[]} defaultValue ?\n * @param {string} curKey ?\n * @param {FunctionConstructor} type ?\n * @returns {void} ?\n */\nfunction complexArrayFactoryGetter(defaultValue, curKey, type) {\n return function () {\n var curType = type({});\n // eslint-disable-next-line\n if (!this.properties.hasOwnProperty(curKey)) {\n var defCollection = getObjectArray(this, curKey, defaultValue, curType, false);\n this.properties[\"\" + curKey] = defCollection;\n }\n return this.properties[\"\" + curKey];\n };\n}\n/**\n *\n * @param {string} dFunc ?\n * @param {string} curKey ?\n * @param {Object} type ?\n * @param {Object} prop ?\n * @returns {Object} ?\n */\nfunction complexArrayDefinedCallback(dFunc, curKey, type, prop) {\n /* tslint:disable no-function-expression */\n return function () {\n var newValue = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n newValue[_i] = arguments[_i];\n }\n var keyString = this.propName ? this.getParentKey() + '.' + curKey + '-' : curKey + '-';\n switch (dFunc) {\n case 'push':\n for (var i = 0; i < newValue.length; i++) {\n Array.prototype[\"\" + dFunc].apply(prop, [newValue[parseInt(i.toString(), 10)]]);\n var model_1 = getArrayModel(keyString + (prop.length - 1), newValue[parseInt(i.toString(), 10)], !this.controlParent, dFunc);\n this.serverDataBind(model_1, newValue[parseInt(i.toString(), 10)], false, dFunc);\n }\n break;\n case 'pop':\n Array.prototype[\"\" + dFunc].apply(prop);\n // eslint-disable-next-line\n var model = getArrayModel(keyString + prop.length, null, !this.controlParent, dFunc);\n this.serverDataBind(model, { ejsAction: 'pop' }, false, dFunc);\n break;\n }\n return prop;\n };\n}\n/**\n *\n * @param {string} keyString ?\n * @param {Object} value ?\n * @param {boolean} isControlParent ?\n * @param {string} arrayFunction ?\n * @returns {Object} ?\n */\nfunction getArrayModel(keyString, value, isControlParent, arrayFunction) {\n var modelObject = keyString;\n if (isControlParent) {\n modelObject = {};\n modelObject[\"\" + keyString] = value;\n if (value && typeof value === 'object') {\n var action = 'ejsAction';\n modelObject[\"\" + keyString][\"\" + action] = arrayFunction;\n }\n }\n return modelObject;\n}\n// eslint-disable-next-line\n/**\n * Method used to create property. General syntax below.\n *\n * @param {Object} defaultValue - Specifies the default value of property.\n * @returns {PropertyDecorator} ?\n * ```\n * @Property('TypeScript')\n * propertyName: Type;\n * ```\n * @private\n */\nexport function Property(defaultValue) {\n return function (target, key) {\n var propertyDescriptor = {\n set: propertySetter(defaultValue, key),\n get: propertyGetter(defaultValue, key),\n enumerable: true,\n configurable: true\n };\n //new property creation\n Object.defineProperty(target, key, propertyDescriptor);\n addPropertyCollection(target, key, 'prop', defaultValue);\n };\n}\n/**\n * Method used to create complex property. General syntax below.\n *\n * @param {any} defaultValue - Specifies the default value of property.\n * @param {Function} type - Specifies the class type of complex object.\n * @returns {PropertyDecorator} ?\n * ```\n * @Complex({},Type)\n * propertyName: Type;\n * ```\n * @private\n */\nexport function Complex(defaultValue, type) {\n return function (target, key) {\n var propertyDescriptor = {\n set: complexSetter(defaultValue, key, type),\n get: complexGetter(defaultValue, key, type),\n enumerable: true,\n configurable: true\n };\n //new property creation\n Object.defineProperty(target, key, propertyDescriptor);\n addPropertyCollection(target, key, 'complexProp', defaultValue, type);\n };\n}\n/**\n * Method used to create complex Factory property. General syntax below.\n *\n * @param {Function} type - Specifies the class factory type of complex object.\n * @returns {PropertyDecorator} ?\n * ```\n * @ComplexFactory(defaultType, factoryFunction)\n * propertyName: Type1 | Type2;\n * ```\n * @private\n */\nexport function ComplexFactory(type) {\n return function (target, key) {\n var propertyDescriptor = {\n set: complexFactorySetter({}, key, type),\n get: complexFactoryGetter({}, key, type),\n enumerable: true,\n configurable: true\n };\n //new property creation\n Object.defineProperty(target, key, propertyDescriptor);\n addPropertyCollection(target, key, 'complexProp', {}, type);\n };\n}\n/**\n * Method used to create complex array property. General syntax below.\n *\n * @param {any} defaultValue - Specifies the default value of property.\n * @param {Function} type - Specifies the class type of complex object.\n * @returns {PropertyDecorator} ?\n * ```\n * @Collection([], Type);\n * propertyName: Type;\n * ```\n * @private\n */\nexport function Collection(defaultValue, type) {\n return function (target, key) {\n var propertyDescriptor = {\n set: complexArraySetter(defaultValue, key, type),\n get: complexArrayGetter(defaultValue, key, type),\n enumerable: true,\n configurable: true\n };\n //new property creation\n Object.defineProperty(target, key, propertyDescriptor);\n addPropertyCollection(target, key, 'colProp', defaultValue, type);\n };\n}\n/**\n * Method used to create complex factory array property. General syntax below.\n *\n * @param {Function} type - Specifies the class type of complex object.\n * @returns {PropertyCollectionInfo} ?\n * ```\n * @Collection([], Type);\n * propertyName: Type;\n * ```\n * @private\n */\nexport function CollectionFactory(type) {\n return function (target, key) {\n var propertyDescriptor = {\n set: complexArrayFactorySetter([], key, type),\n get: complexArrayFactoryGetter([], key, type),\n enumerable: true,\n configurable: true\n };\n //new property creation\n Object.defineProperty(target, key, propertyDescriptor);\n addPropertyCollection(target, key, 'colProp', {}, type);\n };\n}\n/**\n * Method used to create event property. General syntax below.\n *\n * @returns {PropertyDecorator} ?\n * ```\n * @Event(()=>{return true;})\n * ```\n * @private\n */\nexport function Event() {\n return function (target, key) {\n var eventDescriptor = {\n set: function (newValue) {\n var oldValue = this.properties[\"\" + key];\n if (oldValue !== newValue) {\n var finalContext = getParentContext(this, key);\n if (isUndefined(oldValue) === false) {\n finalContext.context.removeEventListener(finalContext.prefix, oldValue);\n }\n finalContext.context.addEventListener(finalContext.prefix, newValue);\n this.properties[\"\" + key] = newValue;\n }\n },\n get: propertyGetter(undefined, key),\n enumerable: true,\n configurable: true\n };\n Object.defineProperty(target, key, eventDescriptor);\n addPropertyCollection(target, key, 'event');\n };\n}\n/**\n * NotifyPropertyChanges is triggers the call back when the property has been changed.\n *\n * @param {Function} classConstructor ?\n * @returns {void} ?\n * ```\n * @NotifyPropertyChanges\n * class DemoClass implements INotifyPropertyChanged {\n *\n * @Property()\n * property1: string;\n *\n * dataBind: () => void;\n *\n * constructor() { }\n *\n * onPropertyChanged(newProp: any, oldProp: any) {\n * // Called when property changed\n * }\n * }\n * ```\n * @private\n */\n// eslint-disable-next-line\nexport function NotifyPropertyChanges(classConstructor) {\n /** Need to code */\n}\n/**\n * Method used to create the builderObject for the target component.\n *\n * @param {BuildInfo} target ?\n * @param {string} key ?\n * @param {string} propertyType ?\n * @param {Object} defaultValue ?\n * @param {Function} type ?\n * @returns {void} ?\n * @private\n */\nfunction addPropertyCollection(target, key, propertyType, defaultValue, type) {\n if (isUndefined(target.propList)) {\n target.propList = {\n props: [],\n complexProps: [],\n colProps: [],\n events: [],\n propNames: [],\n complexPropNames: [],\n colPropNames: [],\n eventNames: []\n };\n }\n // eslint-disable-next-line\n target.propList[propertyType + 's'].push({\n propertyName: key,\n defaultValue: defaultValue,\n type: type\n });\n // eslint-disable-next-line\n target.propList[propertyType + 'Names'].push(key);\n}\n/**\n * Returns an object containing the builder properties\n *\n * @param {Function} component ?\n * @returns {Object} ?\n * @private\n */\nfunction getBuilderProperties(component) {\n if (isUndefined(component.prototype.builderObject)) {\n component.prototype.builderObject = {\n properties: {}, propCollections: [], add: function () {\n this.isPropertyArray = true;\n this.propCollections.push(extend({}, this.properties, {}));\n }\n };\n var rex = /complex/;\n for (var _i = 0, _a = Object.keys(component.prototype.propList); _i < _a.length; _i++) {\n var key = _a[_i];\n var _loop_1 = function (prop) {\n if (rex.test(key)) {\n component.prototype.builderObject[prop.propertyName] = function (value) {\n var childType = {};\n merge(childType, getBuilderProperties(prop.type));\n value(childType);\n var tempValue;\n if (!childType.isPropertyArray) {\n tempValue = extend({}, childType.properties, {});\n }\n else {\n tempValue = childType.propCollections;\n }\n this.properties[prop.propertyName] = tempValue;\n childType.properties = {};\n childType.propCollections = [];\n childType.isPropertyArray = false;\n return this;\n };\n }\n else {\n component.prototype.builderObject[prop.propertyName] = function (value) {\n this.properties[prop.propertyName] = value;\n return this;\n };\n }\n };\n for (var _b = 0, _c = component.prototype.propList[\"\" + key]; _b < _c.length; _b++) {\n var prop = _c[_b];\n _loop_1(prop);\n }\n }\n }\n return component.prototype.builderObject;\n}\n/**\n * Method used to create builder for the components\n *\n * @param {any} component -specifies the target component for which builder to be created.\n * @returns {Object} ?\n * @private\n */\nexport function CreateBuilder(component) {\n var builderFunction = function (element) {\n this.element = element;\n return this;\n };\n var instanceFunction = function (element) {\n // eslint-disable-next-line\n if (!builderFunction.prototype.hasOwnProperty('create')) {\n builderFunction.prototype = getBuilderProperties(component);\n builderFunction.prototype.create = function () {\n var temp = extend({}, {}, this.properties);\n this.properties = {};\n return new component(temp, this.element);\n };\n }\n return new builderFunction(element);\n };\n return instanceFunction;\n}\n/**\n * Returns parent options for the object\n *\n * @param {Object} context ?\n * @param {string} prefix ?\n * @returns {ParentOption} ?\n * @private\n */\nfunction getParentContext(context, prefix) {\n // eslint-disable-next-line\n if (context.hasOwnProperty('parentObj') === false) {\n return { context: context, prefix: prefix };\n }\n else {\n var curText = getValue('propName', context);\n if (curText) {\n prefix = curText + '-' + prefix;\n }\n return getParentContext(getValue('parentObj', context), prefix);\n }\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { createElement, selectAll, closest } from './dom';\nimport { Base } from './base';\nimport { Browser } from './browser';\nimport { EventHandler } from './event-handler';\nimport { Property, NotifyPropertyChanges, Event } from './notify-property-change';\n/**\n * The Animation framework provide options to animate the html DOM elements\n * ```typescript\n * let animeObject = new Animation({\n * name: 'SlideLeftIn',\n * duration: 1000\n * });\n * animeObject.animate('#anime1');\n * animeObject.animate('#anime2', { duration: 500 });\n * ```\n */\nvar Animation = /** @class */ (function (_super) {\n __extends(Animation, _super);\n function Animation(options) {\n var _this = _super.call(this, options, undefined) || this;\n /**\n * @private\n */\n _this.easing = {\n ease: 'cubic-bezier(0.250, 0.100, 0.250, 1.000)',\n linear: 'cubic-bezier(0.250, 0.250, 0.750, 0.750)',\n easeIn: 'cubic-bezier(0.420, 0.000, 1.000, 1.000)',\n easeOut: 'cubic-bezier(0.000, 0.000, 0.580, 1.000)',\n easeInOut: 'cubic-bezier(0.420, 0.000, 0.580, 1.000)',\n elasticInOut: 'cubic-bezier(0.5,-0.58,0.38,1.81)',\n elasticIn: 'cubic-bezier(0.17,0.67,0.59,1.81)',\n elasticOut: 'cubic-bezier(0.7,-0.75,0.99,1.01)'\n };\n return _this;\n }\n Animation_1 = Animation;\n /**\n * Applies animation to the current element.\n *\n * @param {string | HTMLElement} element - Element which needs to be animated.\n * @param {AnimationModel} options - Overriding default animation settings.\n * @returns {void} ?\n */\n Animation.prototype.animate = function (element, options) {\n options = !options ? {} : options;\n var model = this.getModel(options);\n if (typeof element === 'string') {\n var elements = Array.prototype.slice.call(selectAll(element, document));\n for (var _i = 0, elements_1 = elements; _i < elements_1.length; _i++) {\n var element_1 = elements_1[_i];\n model.element = element_1;\n Animation_1.delayAnimation(model);\n }\n }\n else {\n model.element = element;\n Animation_1.delayAnimation(model);\n }\n };\n /**\n * Stop the animation effect on animated element.\n *\n * @param {HTMLElement} element - Element which needs to be stop the animation.\n * @param {AnimationOptions} model - Handling the animation model at stop function.\n * @return {void}\n */\n Animation.stop = function (element, model) {\n element.style.animation = '';\n element.removeAttribute('e-animate');\n var animationId = element.getAttribute('e-animation-id');\n if (animationId) {\n var frameId = parseInt(animationId, 10);\n cancelAnimationFrame(frameId);\n element.removeAttribute('e-animation-id');\n }\n if (model && model.end) {\n model.end.call(this, model);\n }\n };\n /**\n * Set delay to animation element\n *\n * @param {AnimationModel} model ?\n * @returns {void}\n */\n Animation.delayAnimation = function (model) {\n if (animationMode === 'Disable') {\n if (model.begin) {\n model.begin.call(this, model);\n }\n if (model.end) {\n model.end.call(this, model);\n }\n }\n else {\n if (model.delay) {\n setTimeout(function () { Animation_1.applyAnimation(model); }, model.delay);\n }\n else {\n Animation_1.applyAnimation(model);\n }\n }\n };\n /**\n * Triggers animation\n *\n * @param {AnimationModel} model ?\n * @returns {void}\n */\n Animation.applyAnimation = function (model) {\n var _this = this;\n model.timeStamp = 0;\n var step = 0;\n var timerId = 0;\n var prevTimeStamp = 0;\n var duration = model.duration;\n model.element.setAttribute('e-animate', 'true');\n var startAnimation = function (timeStamp) {\n try {\n if (timeStamp) {\n // let step: number = model.timeStamp = timeStamp - startTime;\n /** phantomjs workaround for timestamp fix */\n prevTimeStamp = prevTimeStamp === 0 ? timeStamp : prevTimeStamp;\n model.timeStamp = (timeStamp + model.timeStamp) - prevTimeStamp;\n prevTimeStamp = timeStamp;\n /** phantomjs workaround end */\n // trigger animation begin event\n if (!step && model.begin) {\n model.begin.call(_this, model);\n }\n step = step + 1;\n var avg = model.timeStamp / step;\n if (model.timeStamp < duration && model.timeStamp + avg < duration && model.element.getAttribute('e-animate')) {\n // apply animation effect to the current element\n model.element.style.animation = model.name + ' ' + model.duration + 'ms ' + model.timingFunction;\n if (model.progress) {\n model.progress.call(_this, model);\n }\n // repeat requestAnimationFrame\n requestAnimationFrame(startAnimation);\n }\n else {\n // clear requestAnimationFrame\n cancelAnimationFrame(timerId);\n model.element.removeAttribute('e-animation-id');\n model.element.removeAttribute('e-animate');\n model.element.style.animation = '';\n if (model.end) {\n model.end.call(_this, model);\n }\n }\n }\n else {\n //startTime = performance.now();\n // set initial requestAnimationFrame\n timerId = requestAnimationFrame(startAnimation);\n model.element.setAttribute('e-animation-id', timerId.toString());\n }\n }\n catch (e) {\n cancelAnimationFrame(timerId);\n model.element.removeAttribute('e-animation-id');\n if (model.fail) {\n model.fail.call(_this, e);\n }\n }\n };\n startAnimation();\n };\n /**\n * Returns Animation Model\n *\n * @param {AnimationModel} options ?\n * @returns {AnimationModel} ?\n */\n Animation.prototype.getModel = function (options) {\n return {\n name: options.name || this.name,\n delay: options.delay || this.delay,\n duration: (options.duration !== undefined ? options.duration : this.duration),\n begin: options.begin || this.begin,\n end: options.end || this.end,\n fail: options.fail || this.fail,\n progress: options.progress || this.progress,\n timingFunction: this.easing[options.timingFunction] ? this.easing[options.timingFunction] :\n (options.timingFunction || this.easing[this.timingFunction])\n };\n };\n /**\n * @private\n * @param {AnimationModel} newProp ?\n * @param {AnimationModel} oldProp ?\n * @returns {void} ?\n */\n // eslint-disable-next-line\n Animation.prototype.onPropertyChanged = function (newProp, oldProp) {\n // no code needed\n };\n /**\n * Returns module name as animation\n *\n * @private\n * @returns {void} ?\n */\n Animation.prototype.getModuleName = function () {\n return 'animation';\n };\n /**\n *\n * @private\n * @returns {void} ?\n */\n Animation.prototype.destroy = function () {\n //Override base destroy;\n };\n var Animation_1;\n __decorate([\n Property('FadeIn')\n ], Animation.prototype, \"name\", void 0);\n __decorate([\n Property(400)\n ], Animation.prototype, \"duration\", void 0);\n __decorate([\n Property('ease')\n ], Animation.prototype, \"timingFunction\", void 0);\n __decorate([\n Property(0)\n ], Animation.prototype, \"delay\", void 0);\n __decorate([\n Event()\n ], Animation.prototype, \"progress\", void 0);\n __decorate([\n Event()\n ], Animation.prototype, \"begin\", void 0);\n __decorate([\n Event()\n ], Animation.prototype, \"end\", void 0);\n __decorate([\n Event()\n ], Animation.prototype, \"fail\", void 0);\n Animation = Animation_1 = __decorate([\n NotifyPropertyChanges\n ], Animation);\n return Animation;\n}(Base));\nexport { Animation };\n/**\n * Ripple provides material theme's wave effect when an element is clicked\n * ```html\n *
\n * \n * ```\n *\n * @private\n * @param {HTMLElement} element - Target element\n * @param {RippleOptions} rippleOptions - Ripple options .\n * @param {Function} done .\n * @returns {void} .\n */\nexport function rippleEffect(element, rippleOptions, done) {\n var rippleModel = getRippleModel(rippleOptions);\n if (rippleModel.rippleFlag === false || (rippleModel.rippleFlag === undefined && !isRippleEnabled)) {\n return (function () {\n // do nothing.\n });\n }\n element.setAttribute('data-ripple', 'true');\n EventHandler.add(element, 'mousedown', rippleHandler, { parent: element, rippleOptions: rippleModel });\n EventHandler.add(element, 'mouseup', rippleUpHandler, { parent: element, rippleOptions: rippleModel, done: done });\n EventHandler.add(element, 'mouseleave', rippleLeaveHandler, { parent: element, rippleOptions: rippleModel });\n if (Browser.isPointer) {\n EventHandler.add(element, 'transitionend', rippleLeaveHandler, { parent: element, rippleOptions: rippleModel });\n }\n return (function () {\n element.removeAttribute('data-ripple');\n EventHandler.remove(element, 'mousedown', rippleHandler);\n EventHandler.remove(element, 'mouseup', rippleUpHandler);\n EventHandler.remove(element, 'mouseleave', rippleLeaveHandler);\n EventHandler.remove(element, 'transitionend', rippleLeaveHandler);\n });\n}\n/**\n * Handler for ripple model\n *\n * @param {RippleOptions} rippleOptions ?\n * @returns {RippleOptions} ?\n */\nfunction getRippleModel(rippleOptions) {\n var rippleModel = {\n selector: rippleOptions && rippleOptions.selector ? rippleOptions.selector : null,\n ignore: rippleOptions && rippleOptions.ignore ? rippleOptions.ignore : null,\n rippleFlag: rippleOptions && rippleOptions.rippleFlag,\n isCenterRipple: rippleOptions && rippleOptions.isCenterRipple,\n duration: rippleOptions && rippleOptions.duration ? rippleOptions.duration : 350\n };\n return rippleModel;\n}\n/**\n * Handler for ripple event\n *\n * @param {MouseEvent} e ?\n * @returns {void} ?\n * @private\n */\nfunction rippleHandler(e) {\n var target = (e.target);\n var selector = this.rippleOptions.selector;\n var element = selector ? closest(target, selector) : target;\n if (!element || (this.rippleOptions && closest(target, this.rippleOptions.ignore))) {\n return;\n }\n var offset = element.getBoundingClientRect();\n var offsetX = e.pageX - document.body.scrollLeft;\n var offsetY = e.pageY - ((!document.body.scrollTop && document.documentElement) ?\n document.documentElement.scrollTop : document.body.scrollTop);\n var pageX = Math.max(Math.abs(offsetX - offset.left), Math.abs(offsetX - offset.right));\n var pageY = Math.max(Math.abs(offsetY - offset.top), Math.abs(offsetY - offset.bottom));\n var radius = Math.sqrt(pageX * pageX + pageY * pageY);\n var diameter = radius * 2 + 'px';\n var x = offsetX - offset.left - radius;\n var y = offsetY - offset.top - radius;\n if (this.rippleOptions && this.rippleOptions.isCenterRipple) {\n x = 0;\n y = 0;\n diameter = '100%';\n }\n element.classList.add('e-ripple');\n var duration = this.rippleOptions.duration.toString();\n var styles = 'width: ' + diameter + ';height: ' + diameter + ';left: ' + x + 'px;top: ' + y + 'px;' +\n 'transition-duration: ' + duration + 'ms;';\n var rippleElement = createElement('div', { className: 'e-ripple-element', styles: styles });\n element.appendChild(rippleElement);\n window.getComputedStyle(rippleElement).getPropertyValue('opacity');\n rippleElement.style.transform = 'scale(1)';\n if (element !== this.parent) {\n EventHandler.add(element, 'mouseleave', rippleLeaveHandler, { parent: this.parent, rippleOptions: this.rippleOptions });\n }\n}\n/**\n * Handler for ripple element mouse up event\n *\n * @param {MouseEvent} e ?\n * @returns {void} ?\n * @private\n */\nfunction rippleUpHandler(e) {\n removeRipple(e, this);\n}\n/**\n * Handler for ripple element mouse move event\n *\n * @param {MouseEvent} e ?\n * @returns {void} ?\n * @private\n */\nfunction rippleLeaveHandler(e) {\n removeRipple(e, this);\n}\n/**\n * Handler for removing ripple element\n *\n * @param {MouseEvent} e ?\n * @param {RippleArgs} eventArgs ?\n * @returns {void} ?\n * @private\n */\nfunction removeRipple(e, eventArgs) {\n var duration = eventArgs.rippleOptions.duration;\n var target = (e.target);\n var selector = eventArgs.rippleOptions.selector;\n var element = selector ? closest(target, selector) : target;\n if (!element || (element && element.className.indexOf('e-ripple') === -1)) {\n return;\n }\n var rippleElements = selectAll('.e-ripple-element', element);\n var rippleElement = rippleElements[rippleElements.length - 1];\n if (rippleElement) {\n rippleElement.style.opacity = '0.5';\n }\n if (eventArgs.parent !== element) {\n EventHandler.remove(element, 'mouseleave', rippleLeaveHandler);\n }\n /* tslint:disable:align */\n setTimeout(function () {\n if (rippleElement && rippleElement.parentNode) {\n rippleElement.parentNode.removeChild(rippleElement);\n }\n if (!element.getElementsByClassName('e-ripple-element').length) {\n element.classList.remove('e-ripple');\n }\n if (eventArgs.done) {\n eventArgs.done(e);\n }\n }, duration);\n}\nexport var isRippleEnabled = false;\n/**\n * Animation Module provides support to enable ripple effect functionality to Essential JS 2 components.\n *\n * @param {boolean} isRipple Specifies the boolean value to enable or disable ripple effect.\n * @returns {boolean} ?\n */\nexport function enableRipple(isRipple) {\n isRippleEnabled = isRipple;\n return isRippleEnabled;\n}\n/**\n * Defines the Modes of Global animation.\n *\n * @private\n */\nexport var animationMode = '';\n/**\n * Method for set the Global animation modes for Syncfusion Blazor components.\n *\n * @param {string} value - Specifies the animation mode.\n * @returns {void}\n */\nexport function setGlobalAnimation(value) {\n animationMode = value;\n}\n","/**\n * Module loading operations\n */\nimport { createInstance, setValue, getValue, deleteObject } from './util';\nvar MODULE_SUFFIX = 'Module';\nvar ModuleLoader = /** @class */ (function () {\n function ModuleLoader(parent) {\n this.loadedModules = [];\n this.parent = parent;\n }\n /**\n * Inject required modules in component library\n *\n * @returns {void} ?\n * @param {ModuleDeclaration[]} requiredModules - Array of modules to be required\n * @param {Function[]} moduleList - Array of modules to be injected from sample side\n */\n ModuleLoader.prototype.inject = function (requiredModules, moduleList) {\n var reqLength = requiredModules.length;\n if (reqLength === 0) {\n this.clean();\n return;\n }\n if (this.loadedModules.length) {\n this.clearUnusedModule(requiredModules);\n }\n for (var i = 0; i < reqLength; i++) {\n var modl = requiredModules[parseInt(i.toString(), 10)];\n for (var _i = 0, moduleList_1 = moduleList; _i < moduleList_1.length; _i++) {\n var module = moduleList_1[_i];\n var modName = modl.member;\n if (module && module.prototype.getModuleName() === modl.member && !this.isModuleLoaded(modName)) {\n var moduleObject = createInstance(module, modl.args);\n var memberName = this.getMemberName(modName);\n if (modl.isProperty) {\n setValue(memberName, module, this.parent);\n }\n else {\n setValue(memberName, moduleObject, this.parent);\n }\n var loadedModule = modl;\n loadedModule.member = memberName;\n this.loadedModules.push(loadedModule);\n }\n }\n }\n };\n /**\n * To remove the created object while destroying the control\n *\n * @returns {void}\n */\n ModuleLoader.prototype.clean = function () {\n for (var _i = 0, _a = this.loadedModules; _i < _a.length; _i++) {\n var modules = _a[_i];\n if (!modules.isProperty) {\n getValue(modules.member, this.parent).destroy();\n }\n }\n this.loadedModules = [];\n };\n /**\n * Removes all unused modules\n *\n * @param {ModuleDeclaration[]} moduleList ?\n * @returns {void} ?\n */\n ModuleLoader.prototype.clearUnusedModule = function (moduleList) {\n var _this = this;\n var usedModules = moduleList.map(function (arg) { return _this.getMemberName(arg.member); });\n var removableModule = this.loadedModules.filter(function (module) {\n return usedModules.indexOf(module.member) === -1;\n });\n for (var _i = 0, removableModule_1 = removableModule; _i < removableModule_1.length; _i++) {\n var mod = removableModule_1[_i];\n if (!mod.isProperty) {\n getValue(mod.member, this.parent).destroy();\n }\n this.loadedModules.splice(this.loadedModules.indexOf(mod), 1);\n deleteObject(this.parent, mod.member);\n }\n };\n /**\n * To get the name of the member.\n *\n * @param {string} name ?\n * @returns {string} ?\n */\n ModuleLoader.prototype.getMemberName = function (name) {\n return name[0].toLowerCase() + name.substring(1) + MODULE_SUFFIX;\n };\n /**\n * Returns boolean based on whether the module specified is loaded or not\n *\n * @param {string} modName ?\n * @returns {boolean} ?\n */\n ModuleLoader.prototype.isModuleLoaded = function (modName) {\n for (var _i = 0, _a = this.loadedModules; _i < _a.length; _i++) {\n var mod = _a[_i];\n if (mod.member === this.getMemberName(modName)) {\n return true;\n }\n }\n return false;\n };\n return ModuleLoader;\n}());\nexport { ModuleLoader };\n","import { createElement } from './dom';\nimport { getValue, containerObject, setValue, isNullOrUndefined } from './util';\nexport var componentList = ['grid', 'pivotview', 'treegrid', 'spreadsheet', 'rangeNavigator', 'DocumentEditor', 'listbox', 'inplaceeditor', 'PdfViewer', 'richtexteditor', 'DashboardLayout', 'chart', 'stockChart', 'circulargauge', 'diagram', 'heatmap', 'lineargauge', 'maps', 'slider', 'smithchart', 'barcode', 'sparkline', 'treemap', 'bulletChart', 'kanban', 'daterangepicker', 'schedule', 'gantt', 'signature', 'query-builder', 'drop-down-tree', 'carousel', 'filemanager', 'uploader', 'accordion', 'tab', 'treeview'];\nvar bypassKey = [115, 121, 110, 99, 102, 117, 115, 105,\n 111, 110, 46, 105, 115, 76, 105, 99, 86, 97, 108,\n 105, 100, 97, 116, 101, 100];\nvar accountURL;\n/**\n * License validation module\n *\n * @private\n */\nvar LicenseValidator = /** @class */ (function () {\n function LicenseValidator(key) {\n this.isValidated = false;\n this.isLicensed = true;\n this.version = '21';\n this.platform = /JavaScript|ASPNET|ASPNETCORE|ASPNETMVC|FileFormats/i;\n this.errors = {\n noLicense: 'This application was built using a trial version of Syncfusion Essential Studio.' +\n ' To remove the license validation message permanently, a valid license key must be included.',\n trailExpired: 'This application was built using a trial version of Syncfusion Essential Studio.' +\n ' To remove the license validation message permanently, a valid license key must be included.',\n versionMismatched: 'The included Syncfusion license key is invalid.',\n platformMismatched: 'The included Syncfusion license key is invalid.',\n invalidKey: 'The included Syncfusion license key is invalid.'\n };\n /**\n * To manage licensing operation.\n */\n this.manager = (function () {\n var licKey = null;\n /**\n * Sets the license key.\n *\n * @param {string} key - Specifies the license key.\n * @returns {void}\n */\n function set(key) { licKey = key; }\n /**\n * Gets the license key.\n *\n * @returns {string} -Gets the license key.\n */\n function get() { return licKey; }\n return {\n setKey: set,\n getKey: get\n };\n })();\n /**\n * To manage npx licensing operation.\n */\n this.npxManager = (function () {\n var npxLicKey = 'npxKeyReplace';\n /**\n * Gets the license key.\n *\n * @returns {string} - Gets the license key.\n */\n function get() { return npxLicKey; }\n return {\n getKey: get\n };\n })();\n this.manager.setKey(key);\n }\n /**\n * To validate the provided license key.\n */\n LicenseValidator.prototype.validate = function () {\n var contentKey = [115, 121, 110, 99, 102, 117, 115, 105, 111, 110, 46,\n 108, 105, 99, 101, 110, 115, 101, 67, 111, 110, 116, 101, 110, 116];\n var URLKey = [115, 121, 110, 99, 102, 117, 115, 105, 111, 110, 46,\n 99, 108, 97, 105, 109, 65, 99, 99, 111, 117, 110, 116, 85, 82, 76];\n if (!this.isValidated && (containerObject && !getValue(convertToChar(bypassKey), containerObject) && !getValue('Blazor', containerObject))) {\n var validateMsg = void 0;\n var validateURL = void 0;\n if ((this.manager && this.manager.getKey()) || (this.npxManager && this.npxManager.getKey() !== 'npxKeyReplace')) {\n var result = this.getInfoFromKey();\n if (result && result.length) {\n for (var _i = 0, result_1 = result; _i < result_1.length; _i++) {\n var res = result_1[_i];\n if (!this.platform.test(res.platform) || res.invalidPlatform) {\n validateMsg = this.errors.platformMismatched;\n }\n else if (res.version.indexOf(this.version) === -1) {\n validateMsg = this.errors.versionMismatched;\n validateMsg = validateMsg.replace('##LicenseVersion', res.version);\n validateMsg = validateMsg.replace('##Requireversion', this.version + '.x');\n }\n else if (res.expiryDate) {\n var expDate = new Date(res.expiryDate);\n var currDate = new Date();\n if (expDate !== currDate && expDate < currDate) {\n validateMsg = this.errors.trailExpired;\n }\n else {\n break;\n }\n }\n }\n }\n else {\n validateMsg = this.errors.invalidKey;\n }\n }\n else {\n var licenseContent = getValue(convertToChar(contentKey), containerObject);\n validateURL = getValue(convertToChar(URLKey), containerObject);\n if (licenseContent && licenseContent !== '') {\n validateMsg = licenseContent;\n }\n else {\n validateMsg = this.errors.noLicense;\n }\n }\n if (validateMsg && typeof document !== 'undefined' && !isNullOrUndefined(document)) {\n accountURL = (validateURL && validateURL !== '') ? validateURL : \"https://www.syncfusion.com/account/claim-license-key?pl=SmF2YVNjcmlwdA==&vs=MjE=\";\n var errorDiv = createElement('div', {\n innerHTML: \"\" + validateMsg + ' ' + 'Claim your free account'\n });\n errorDiv.setAttribute('style', \"position: fixed;\\n top: 10px;\\n left: 10px;\\n right: 10px;\\n font-size: 14px;\\n background: #EEF2FF;\\n color: #222222;\\n z-index: 999999999;\\n text-align: left;\\n border: 1px solid #EEEEEE;\\n padding: 10px 11px 10px 50px;\\n border-radius: 8px;\\n font-family: Helvetica Neue, Helvetica, Arial;\");\n document.body.appendChild(errorDiv);\n this.isLicensed = false;\n }\n this.isValidated = true;\n setValue(convertToChar(bypassKey), this.isValidated, containerObject);\n }\n return this.isLicensed;\n };\n LicenseValidator.prototype.getDecryptedData = function (key) {\n try {\n return atob(key);\n }\n catch (error) {\n return '';\n }\n };\n /**\n * Get license information from key.\n *\n * @returns {IValidator} - Get license information from key.\n */\n LicenseValidator.prototype.getInfoFromKey = function () {\n try {\n var licKey = '';\n var pkey = [5439488, 7929856, 5111808, 6488064, 4587520, 7667712, 5439488,\n 6881280, 5177344, 7208960, 4194304, 4456448, 6619136, 7733248, 5242880, 7077888,\n 6356992, 7602176, 4587520, 7274496, 7471104, 7143424];\n var decryptedStr = [];\n var resultArray = [];\n var invalidPlatform = false;\n var isNpxKey = false;\n if (this.manager.getKey()) {\n licKey = this.manager.getKey();\n }\n else {\n isNpxKey = true;\n licKey = this.npxManager.getKey().split('npxKeyReplace')[1];\n }\n var licKeySplit = licKey.split(';');\n for (var _i = 0, licKeySplit_1 = licKeySplit; _i < licKeySplit_1.length; _i++) {\n var lKey = licKeySplit_1[_i];\n var decodeStr = this.getDecryptedData(lKey);\n if (!decodeStr) {\n continue;\n }\n var k = 0;\n var buffr = '';\n if (!isNpxKey) {\n for (var i = 0; i < decodeStr.length; i++, k++) {\n if (k === pkey.length) {\n k = 0;\n }\n var c = decodeStr.charCodeAt(i);\n buffr += String.fromCharCode(c ^ (pkey[parseInt(k.toString(), 10)] >> 16));\n }\n }\n else {\n var charKey = decodeStr[decodeStr.length - 1];\n var decryptedKey = [];\n for (var i = 0; i < decodeStr.length; i++) {\n decryptedKey[parseInt(i.toString(), 10)] = decodeStr[parseInt(i.toString(), 10)].charCodeAt(0) - charKey.charCodeAt(0);\n }\n for (var i = 0; i < decryptedKey.length; i++) {\n buffr += String.fromCharCode(decryptedKey[parseInt(i.toString(), 10)]);\n }\n }\n if (this.platform.test(buffr)) {\n decryptedStr = buffr.split(';');\n invalidPlatform = false;\n // checked the length to verify the key in proper strucutre\n if (decryptedStr.length > 3) {\n resultArray.push({ platform: decryptedStr[0],\n version: decryptedStr[1],\n expiryDate: decryptedStr[2] });\n }\n }\n else if (buffr && buffr.split(';').length > 3) {\n invalidPlatform = true;\n }\n }\n if (invalidPlatform && !resultArray.length) {\n return [{ invalidPlatform: invalidPlatform }];\n }\n else {\n return resultArray.length ? resultArray : null;\n }\n }\n catch (error) {\n return null;\n }\n };\n return LicenseValidator;\n}());\nvar licenseValidator = new LicenseValidator();\n/**\n * Converts the given number to characters.\n *\n * @param {number} cArr - Specifies the license key as number.\n * @returns {string}\n */\nfunction convertToChar(cArr) {\n var ret = '';\n for (var _i = 0, cArr_1 = cArr; _i < cArr_1.length; _i++) {\n var arr = cArr_1[_i];\n ret += String.fromCharCode(arr);\n }\n return ret;\n}\n/**\n * To set license key.\n *\n * @param {string} key - license key\n * @returns {void}\n */\nexport function registerLicense(key) {\n licenseValidator = new LicenseValidator(key);\n}\nexport var validateLicense = function (key) {\n if (key) {\n registerLicense(key);\n }\n return licenseValidator.validate();\n};\nexport var getVersion = function () {\n return licenseValidator.version;\n};\n// Method for create overlay over the sample\nexport var createLicenseOverlay = function () {\n var bannerTemplate = \"\\n
\\n
\\n
\\n \\n
\\n
Claim your FREE account and get a key in less than a minute
\\n
    \\n
  • Access to a 30-day free trial of any of our products.
  • \\n
  • Access to 24x5 support by developers via the support tickets, forum, feature & feedback page and chat.
  • \\n
  • 200+ ebooks on the latest technologies, industry trends, and research topics.\\n
  • \\n
  • Largest collection of over 7,000 flat and wireframe icons for free with Syncfusion Metro Studio.
  • \\n
  • Free and unlimited access to Syncfusion technical blogs and whitepapers.
  • \\n
\\n
Syncfusion is trusted by 29,000+ businesses worldwide
\\n \\n Claim your FREE account\\n
have a Syncfusion account? Sign In
\\n
\\n
\";\n if (typeof document !== 'undefined' && !isNullOrUndefined(document)) {\n var errorBackground = createElement('div', {\n innerHTML: bannerTemplate\n });\n document.body.appendChild(errorBackground);\n }\n};\n","import { getValue, setValue, merge, isBlazor } from './util';\nimport { Base } from './base';\n/**\n * To detect the changes for inner properties.\n *\n * @private\n */\nvar ChildProperty = /** @class */ (function () {\n function ChildProperty(parent, propName, defaultValue, isArray) {\n this.isComplexArraySetter = false;\n this.properties = {};\n this.changedProperties = {};\n this.childChangedProperties = {};\n this.oldProperties = {};\n // eslint-disable-next-line\n this.finalUpdate = function () { };\n this.callChildDataBind = getValue('callChildDataBind', Base);\n this.parentObj = parent;\n this.controlParent = this.parentObj.controlParent || this.parentObj;\n this.propName = propName;\n this.isParentArray = isArray;\n this.setProperties(defaultValue, true);\n }\n /**\n * Updates the property changes\n *\n * @param {boolean} val ?\n * @param {string} propName ?\n * @returns {void} ?\n */\n ChildProperty.prototype.updateChange = function (val, propName) {\n if (val === true) {\n this.parentObj.childChangedProperties[\"\" + propName] = val;\n }\n else {\n delete this.parentObj.childChangedProperties[\"\" + propName];\n }\n if (this.parentObj.updateChange) {\n this.parentObj.updateChange(val, this.parentObj.propName);\n }\n };\n /**\n * Updates time out duration\n *\n * @returns {void} ?\n */\n ChildProperty.prototype.updateTimeOut = function () {\n if (this.parentObj.updateTimeOut) {\n this.parentObj.finalUpdate();\n this.parentObj.updateTimeOut();\n }\n else {\n var changeTime_1 = setTimeout(this.parentObj.dataBind.bind(this.parentObj));\n var clearUpdate = function () {\n clearTimeout(changeTime_1);\n };\n this.finalUpdate = clearUpdate;\n }\n };\n /**\n * Clears changed properties\n *\n * @returns {void} ?\n */\n ChildProperty.prototype.clearChanges = function () {\n this.finalUpdate();\n this.updateChange(false, this.propName);\n this.oldProperties = {};\n this.changedProperties = {};\n };\n /**\n * Set property changes\n *\n * @param {Object} prop ?\n * @param {boolean} muteOnChange ?\n * @returns {void} ?\n */\n ChildProperty.prototype.setProperties = function (prop, muteOnChange) {\n if (muteOnChange === true) {\n merge(this, prop);\n this.updateChange(false, this.propName);\n this.clearChanges();\n }\n else {\n merge(this, prop);\n }\n };\n /**\n * Binds data\n *\n * @returns {void} ?\n */\n ChildProperty.prototype.dataBind = function () {\n this.callChildDataBind(this.childChangedProperties, this);\n if (this.isParentArray) {\n var curIndex = this.parentObj[this.propName].indexOf(this);\n if (Object.keys(this.changedProperties).length) {\n setValue(this.propName + '.' + curIndex, this.changedProperties, this.parentObj.changedProperties);\n setValue(this.propName + '.' + curIndex, this.oldProperties, this.parentObj.oldProperties);\n }\n }\n else {\n this.parentObj.changedProperties[this.propName] = this.changedProperties;\n this.parentObj.oldProperties[this.propName] = this.oldProperties;\n }\n this.clearChanges();\n };\n /**\n * Saves changes to newer values\n *\n * @param {string} key ?\n * @param {Object} newValue ?\n * @param {Object} oldValue ?\n * @param {boolean} restrictServerDataBind ?\n * @returns {void} ?\n */\n ChildProperty.prototype.saveChanges = function (key, newValue, oldValue, restrictServerDataBind) {\n if (this.controlParent.isProtectedOnChange) {\n return;\n }\n if (!restrictServerDataBind) {\n this.serverDataBind(key, newValue, true);\n }\n this.oldProperties[\"\" + key] = oldValue;\n this.changedProperties[\"\" + key] = newValue;\n this.updateChange(true, this.propName);\n this.finalUpdate();\n this.updateTimeOut();\n };\n ChildProperty.prototype.serverDataBind = function (key, value, isSaveChanges, action) {\n if (isBlazor() && !this.parentObj.isComplexArraySetter) {\n var parent_1;\n var newChanges = {};\n var parentKey = isSaveChanges ? this.getParentKey(true) + '.' + key : key;\n /* istanbul ignore else */\n if (parentKey.indexOf('.') !== -1) {\n var complexKeys = parentKey.split('.');\n parent_1 = newChanges;\n for (var i = 0; i < complexKeys.length; i++) {\n var isFinal = i === complexKeys.length - 1;\n parent_1[complexKeys[parseInt(i.toString(), 10)]] = isFinal ? value : {};\n parent_1 = isFinal ? parent_1 : parent_1[complexKeys[parseInt(i.toString(), 10)]];\n }\n }\n else {\n newChanges[\"\" + parentKey] = {};\n parent_1 = newChanges[\"\" + parentKey];\n newChanges[\"\" + parentKey][\"\" + key] = value;\n }\n /* istanbul ignore next */\n if (this.isParentArray) {\n var actionProperty = 'ejsAction';\n parent_1[\"\" + actionProperty] = action ? action : 'none';\n }\n this.controlParent.serverDataBind(newChanges);\n }\n };\n ChildProperty.prototype.getParentKey = function (isSaveChanges) {\n // eslint-disable-next-line\n var index = '';\n var propName = this.propName;\n /* istanbul ignore next */\n if (this.isParentArray) {\n index = this.parentObj[this.propName].indexOf(this);\n var valueLength = this.parentObj[this.propName].length;\n valueLength = isSaveChanges ? valueLength : (valueLength > 0 ? valueLength - 1 : 0);\n index = index !== -1 ? '-' + index : '-' + valueLength;\n propName = propName + index;\n }\n if (this.controlParent !== this.parentObj) {\n propName = this.parentObj.getParentKey() + '.' + this.propName + index;\n }\n return propName;\n };\n return ChildProperty;\n}());\nexport { ChildProperty };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { isUndefined, getValue, isNullOrUndefined, setValue, uniqueID, isBlazor } from './util';\nimport { ModuleLoader } from './module-loader';\nimport { Base } from './base';\nimport { Observer } from './observer';\nimport { ChildProperty } from './child-property';\nimport { Property, NotifyPropertyChanges } from './notify-property-change';\nimport { onIntlChange, rightToLeft, defaultCulture } from './internationalization';\nimport { createElement, addClass, removeClass, select } from './dom';\nimport { validateLicense, createLicenseOverlay, componentList } from './validate-lic';\nvar componentCount = 0;\nvar lastPageID;\nvar lastHistoryLen = 0;\n// Decalre the static variable to count the instance\nvar instancecount = 0;\n// Decalre the static variable to find if control limit exceed or not\nvar isvalid = true;\n// We have added styles to inline type so here declare the static variable to detect if banner is added or not\nvar isBannerAdded = false;\nexport var versionBasedStatePersistence = false;\n/**\n * To enable or disable version based statePersistence functionality for all components globally.\n *\n * @param {boolean} status - Optional argument Specifies the status value to enable or disable versionBasedStatePersistence option.\n * @returns {void}\n */\nexport function enableVersionBasedPersistence(status) {\n versionBasedStatePersistence = status;\n}\n/**\n * Base class for all Essential JavaScript components\n */\nvar Component = /** @class */ (function (_super) {\n __extends(Component, _super);\n /**\n * Initialize the constructor for component base\n *\n * @param {Object} options ?\n * @param {string} selector ?\n */\n function Component(options, selector) {\n var _this = _super.call(this, options, selector) || this;\n _this.randomId = uniqueID();\n /**\n * string template option for Blazor template rendering\n *\n * @private\n */\n _this.isStringTemplate = false;\n _this.needsID = false;\n _this.isReactHybrid = false;\n if (isNullOrUndefined(_this.enableRtl)) {\n _this.setProperties({ 'enableRtl': rightToLeft }, true);\n }\n if (isNullOrUndefined(_this.locale)) {\n _this.setProperties({ 'locale': defaultCulture }, true);\n }\n _this.moduleLoader = new ModuleLoader(_this);\n _this.localObserver = new Observer(_this);\n // tslint:disable-next-line:no-function-constructor-with-string-args\n onIntlChange.on('notifyExternalChange', _this.detectFunction, _this, _this.randomId);\n // Based on the considered control list we have count the instance\n if (typeof window !== \"undefined\" && typeof document !== \"undefined\" && !validateLicense()) {\n if (componentList.indexOf(_this.getModuleName()) !== -1) {\n instancecount = instancecount + 1;\n if (instancecount > 5) {\n isvalid = false;\n }\n }\n }\n if (!isUndefined(selector)) {\n _this.appendTo();\n }\n return _this;\n }\n Component.prototype.requiredModules = function () {\n return [];\n };\n /**\n * Destroys the sub modules while destroying the widget\n *\n * @returns {void} ?\n */\n Component.prototype.destroy = function () {\n if (this.isDestroyed) {\n return;\n }\n if (this.enablePersistence) {\n this.setPersistData();\n }\n this.localObserver.destroy();\n if (this.refreshing) {\n return;\n }\n removeClass([this.element], ['e-control']);\n this.trigger('destroyed', { cancel: false });\n _super.prototype.destroy.call(this);\n this.moduleLoader.clean();\n onIntlChange.off('notifyExternalChange', this.detectFunction, this.randomId);\n };\n /**\n * Applies all the pending property changes and render the component again.\n *\n * @returns {void} ?\n */\n Component.prototype.refresh = function () {\n this.refreshing = true;\n this.moduleLoader.clean();\n this.destroy();\n this.clearChanges();\n this.localObserver = new Observer(this);\n this.preRender();\n this.injectModules();\n this.render();\n this.refreshing = false;\n };\n Component.prototype.accessMount = function () {\n if (this.mount && !this.isReactHybrid) {\n this.mount();\n }\n };\n /**\n * Returns the route element of the component\n *\n * @returns {HTMLElement} ?\n */\n Component.prototype.getRootElement = function () {\n if (this.isReactHybrid) {\n // eslint-disable-next-line\n return this.actualElement;\n }\n else {\n return this.element;\n }\n };\n /**\n * Returns the persistence data for component\n *\n * @returns {any} ?\n */\n // eslint-disable-next-line\n Component.prototype.getLocalData = function () {\n var eleId = this.getModuleName() + this.element.id;\n if (versionBasedStatePersistence) {\n return window.localStorage.getItem(eleId + this.ej2StatePersistenceVersion);\n }\n else {\n return window.localStorage.getItem(eleId);\n }\n };\n /**\n * Appends the control within the given HTML element\n *\n * @param {string | HTMLElement} selector - Target element where control needs to be appended\n * @returns {void} ?\n */\n Component.prototype.appendTo = function (selector) {\n if (!isNullOrUndefined(selector) && typeof (selector) === 'string') {\n this.element = select(selector, document);\n }\n else if (!isNullOrUndefined(selector)) {\n this.element = selector;\n }\n if (!isNullOrUndefined(this.element)) {\n var moduleClass = 'e-' + this.getModuleName().toLowerCase();\n addClass([this.element], ['e-control', moduleClass]);\n this.isProtectedOnChange = false;\n if (this.needsID && !this.element.id) {\n this.element.id = this.getUniqueID(this.getModuleName());\n }\n if (this.enablePersistence) {\n this.mergePersistData();\n window.addEventListener('unload', this.setPersistData.bind(this));\n }\n var inst = getValue('ej2_instances', this.element);\n if (!inst || inst.indexOf(this) === -1) {\n _super.prototype.addInstance.call(this);\n }\n this.preRender();\n this.injectModules();\n // Checked weather cases are valid or not. If control leads to more than five counts \n if (!isvalid && !isBannerAdded) {\n createLicenseOverlay();\n isBannerAdded = true;\n }\n this.render();\n if (!this.mount) {\n this.trigger('created');\n }\n else {\n this.accessMount();\n }\n }\n };\n /**\n * It is used to process the post rendering functionalities to a component.\n *\n * @param {Node} wrapperElement ?\n * @returns {void} ?\n */\n Component.prototype.renderComplete = function (wrapperElement) {\n if (isBlazor()) {\n var sfBlazor = 'sfBlazor';\n // eslint-disable-next-line\n window[sfBlazor].renderComplete(this.element, wrapperElement);\n }\n this.isRendered = true;\n };\n /**\n * When invoked, applies the pending property changes immediately to the component.\n *\n * @returns {void} ?\n */\n Component.prototype.dataBind = function () {\n this.injectModules();\n _super.prototype.dataBind.call(this);\n };\n /**\n * Attach one or more event handler to the current component context.\n * It is used for internal handling event internally within the component only.\n *\n * @param {BoundOptions[]| string} event - It is optional type either to Set the collection of event list or the eventName.\n * @param {Function} handler - optional parameter Specifies the handler to run when the event occurs\n * @param {Object} context - optional parameter Specifies the context to be bind in the handler.\n * @returns {void} ?\n * @private\n */\n Component.prototype.on = function (event, handler, context) {\n if (typeof event === 'string') {\n this.localObserver.on(event, handler, context);\n }\n else {\n for (var _i = 0, event_1 = event; _i < event_1.length; _i++) {\n var arg = event_1[_i];\n this.localObserver.on(arg.event, arg.handler, arg.context);\n }\n }\n };\n /**\n * To remove one or more event handler that has been attached with the on() method.\n *\n * @param {BoundOptions[]| string} event - It is optional type either to Set the collection of event list or the eventName.\n * @param {Function} handler - optional parameter Specifies the function to run when the event occurs\n * @returns {void} ?\n * @private\n */\n Component.prototype.off = function (event, handler) {\n if (typeof event === 'string') {\n this.localObserver.off(event, handler);\n }\n else {\n for (var _i = 0, event_2 = event; _i < event_2.length; _i++) {\n var arg = event_2[_i];\n this.localObserver.off(arg.event, arg.handler);\n }\n }\n };\n /**\n * To notify the handlers in the specified event.\n *\n * @param {string} property - Specifies the event to be notify.\n * @param {Object} argument - Additional parameters to pass while calling the handler.\n * @returns {void} ?\n * @private\n */\n Component.prototype.notify = function (property, argument) {\n if (this.isDestroyed !== true) {\n this.localObserver.notify(property, argument);\n }\n };\n /**\n * Get injected modules\n *\n * @returns {Function} ?\n * @private\n */\n Component.prototype.getInjectedModules = function () {\n return this.injectedModules;\n };\n /**\n * Dynamically injects the required modules to the component.\n *\n * @param {Function} moduleList ?\n * @returns {void} ?\n */\n Component.Inject = function () {\n var moduleList = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n moduleList[_i] = arguments[_i];\n }\n if (!this.prototype.injectedModules) {\n this.prototype.injectedModules = [];\n }\n for (var i = 0; i < moduleList.length; i++) {\n if (this.prototype.injectedModules.indexOf(moduleList[parseInt(i.toString(), 10)]) === -1) {\n this.prototype.injectedModules.push(moduleList[parseInt(i.toString(), 10)]);\n }\n }\n };\n /**\n * This is a instance method to create an element.\n *\n * @param {string} tagName ?\n * @param {ElementProperties} prop ?\n * @param {boolean} isVDOM ?\n * @returns {any} ?\n * @private\n */\n // eslint-disable-next-line\n Component.prototype.createElement = function (tagName, prop, isVDOM) {\n return createElement(tagName, prop);\n };\n /**\n *\n * @param {Function} handler - handler to be triggered after state Updated.\n * @param {any} argument - Arguments to be passed to caller.\n * @returns {void} .\n * @private\n */\n // eslint-disable-next-line\n Component.prototype.triggerStateChange = function (handler, argument) {\n if (this.isReactHybrid) {\n // eslint-disable-next-line\n this.setState();\n this.currentContext = { calls: handler, args: argument };\n }\n };\n // tslint: enable: no-any\n Component.prototype.injectModules = function () {\n if (this.injectedModules && this.injectedModules.length) {\n this.moduleLoader.inject(this.requiredModules(), this.injectedModules);\n }\n };\n Component.prototype.detectFunction = function (args) {\n var prop = Object.keys(args);\n if (prop.length) {\n this[prop[0]] = args[prop[0]];\n }\n };\n Component.prototype.mergePersistData = function () {\n var data;\n if (versionBasedStatePersistence) {\n data = window.localStorage.getItem(this.getModuleName() + this.element.id + this.ej2StatePersistenceVersion);\n }\n else {\n data = window.localStorage.getItem(this.getModuleName() + this.element.id);\n }\n if (!(isNullOrUndefined(data) || (data === ''))) {\n this.setProperties(JSON.parse(data), true);\n }\n };\n Component.prototype.setPersistData = function () {\n if (!this.isDestroyed) {\n if (versionBasedStatePersistence) {\n window.localStorage.setItem(this.getModuleName() +\n this.element.id + this.ej2StatePersistenceVersion, this.getPersistData());\n }\n else {\n window.localStorage.setItem(this.getModuleName() + this.element.id, this.getPersistData());\n }\n }\n };\n // eslint-disable-next-line\n Component.prototype.renderReactTemplates = function (callback) {\n if (!isNullOrUndefined(callback)) {\n callback();\n }\n };\n // eslint-disable-next-line\n Component.prototype.clearTemplate = function (templateName, index) {\n //No Code\n };\n Component.prototype.getUniqueID = function (definedName) {\n if (this.isHistoryChanged()) {\n componentCount = 0;\n }\n lastPageID = this.pageID(location.href);\n lastHistoryLen = history.length;\n return definedName + '_' + lastPageID + '_' + componentCount++;\n };\n Component.prototype.pageID = function (url) {\n var hash = 0;\n if (url.length === 0) {\n return hash;\n }\n for (var i = 0; i < url.length; i++) {\n var char = url.charCodeAt(i);\n hash = ((hash << 5) - hash) + char;\n hash = hash & hash; // Convert to 32bit integer\n }\n return Math.abs(hash);\n };\n Component.prototype.isHistoryChanged = function () {\n return lastPageID !== this.pageID(location.href) || lastHistoryLen !== history.length;\n };\n Component.prototype.addOnPersist = function (options) {\n var _this = this;\n var persistObj = {};\n for (var _i = 0, options_1 = options; _i < options_1.length; _i++) {\n var key = options_1[_i];\n var objValue = void 0;\n // eslint-disable-next-line\n objValue = getValue(key, this);\n if (!isUndefined(objValue)) {\n setValue(key, this.getActualProperties(objValue), persistObj);\n }\n }\n return JSON.stringify(persistObj, function (key, value) {\n return _this.getActualProperties(value);\n });\n };\n Component.prototype.getActualProperties = function (obj) {\n if (obj instanceof ChildProperty) {\n return getValue('properties', obj);\n }\n else {\n return obj;\n }\n };\n Component.prototype.ignoreOnPersist = function (options) {\n return JSON.stringify(this.iterateJsonProperties(this.properties, options));\n };\n Component.prototype.iterateJsonProperties = function (obj, ignoreList) {\n var newObj = {};\n var _loop_1 = function (key) {\n if (ignoreList.indexOf(key) === -1) {\n // eslint-disable-next-line\n var value = obj[key];\n if (typeof value === 'object' && !(value instanceof Array)) {\n var newList = ignoreList.filter(function (str) {\n var regExp = RegExp;\n return new regExp(key + '.').test(str);\n }).map(function (str) {\n return str.replace(key + '.', '');\n });\n newObj[\"\" + key] = this_1.iterateJsonProperties(this_1.getActualProperties(value), newList);\n }\n else {\n newObj[\"\" + key] = value;\n }\n }\n };\n var this_1 = this;\n for (var _i = 0, _a = Object.keys(obj); _i < _a.length; _i++) {\n var key = _a[_i];\n _loop_1(key);\n }\n return newObj;\n };\n __decorate([\n Property(false)\n ], Component.prototype, \"enablePersistence\", void 0);\n __decorate([\n Property()\n ], Component.prototype, \"enableRtl\", void 0);\n __decorate([\n Property()\n ], Component.prototype, \"locale\", void 0);\n Component = __decorate([\n NotifyPropertyChanges\n ], Component);\n return Component;\n}(Base));\nexport { Component };\n//Function handling for page navigation detection\n/* istanbul ignore next */\n(function () {\n if (typeof window !== 'undefined') {\n window.addEventListener('popstate', \n /* istanbul ignore next */\n function () {\n componentCount = 0;\n });\n }\n})();\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Base } from './base';\nimport { Browser } from './browser';\nimport { isVisible } from './dom';\nimport { Property, Complex, NotifyPropertyChanges, Event } from './notify-property-change';\nimport { EventHandler } from './event-handler';\nimport { ChildProperty } from './child-property';\nimport { select, closest, setStyleAttribute, addClass, createElement } from './dom';\nimport { extend, isUndefined, isNullOrUndefined, compareElementParent, isBlazor } from './util';\nvar defaultPosition = { left: 0, top: 0, bottom: 0, right: 0 };\nvar positionProp = ['offsetLeft', 'offsetTop'];\nvar axisMapper = ['x', 'y'];\nvar axisValueMapper = ['left', 'top'];\nvar isDraggedObject = { isDragged: false };\n/**\n * Specifies the position coordinates\n */\nvar Position = /** @class */ (function (_super) {\n __extends(Position, _super);\n function Position() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(0)\n ], Position.prototype, \"left\", void 0);\n __decorate([\n Property(0)\n ], Position.prototype, \"top\", void 0);\n return Position;\n}(ChildProperty));\nexport { Position };\n/**\n * Draggable Module provides support to enable draggable functionality in Dom Elements.\n * ```html\n *
Draggable
\n * \n * ```\n */\nvar Draggable = /** @class */ (function (_super) {\n __extends(Draggable, _super);\n function Draggable(element, options) {\n var _this = _super.call(this, options, element) || this;\n _this.dragLimit = Draggable_1.getDefaultPosition();\n _this.borderWidth = Draggable_1.getDefaultPosition();\n _this.padding = Draggable_1.getDefaultPosition();\n _this.diffX = 0;\n _this.prevLeft = 0;\n _this.prevTop = 0;\n _this.dragProcessStarted = false;\n _this.eleTop = 0;\n /* eslint-disable @typescript-eslint/no-explicit-any */\n _this.tapHoldTimer = 0;\n _this.externalInitialize = false;\n _this.diffY = 0;\n _this.parentScrollX = 0;\n _this.parentScrollY = 0;\n _this.droppables = {};\n _this.bind();\n return _this;\n }\n Draggable_1 = Draggable;\n Draggable.prototype.bind = function () {\n this.toggleEvents();\n if (Browser.isIE) {\n addClass([this.element], 'e-block-touch');\n }\n this.droppables[this.scope] = {};\n };\n Draggable.getDefaultPosition = function () {\n return extend({}, defaultPosition);\n };\n Draggable.prototype.toggleEvents = function (isUnWire) {\n var ele;\n if (!isUndefined(this.handle)) {\n ele = select(this.handle, this.element);\n }\n var handler = (this.enableTapHold && Browser.isDevice && Browser.isTouch) ? this.mobileInitialize : this.initialize;\n if (isUnWire) {\n EventHandler.remove(ele || this.element, Browser.isSafari() ? 'touchstart' : Browser.touchStartEvent, handler);\n }\n else {\n EventHandler.add(ele || this.element, Browser.isSafari() ? 'touchstart' : Browser.touchStartEvent, handler, this);\n }\n };\n /* istanbul ignore next */\n Draggable.prototype.mobileInitialize = function (evt) {\n var _this = this;\n var target = evt.currentTarget;\n this.tapHoldTimer = setTimeout(function () {\n _this.externalInitialize = true;\n _this.removeTapholdTimer();\n _this.initialize(evt, target);\n }, this.tapHoldThreshold);\n EventHandler.add(document, Browser.isSafari() ? 'touchmove' : Browser.touchMoveEvent, this.removeTapholdTimer, this);\n EventHandler.add(document, Browser.isSafari() ? 'touchend' : Browser.touchEndEvent, this.removeTapholdTimer, this);\n };\n /* istanbul ignore next */\n Draggable.prototype.removeTapholdTimer = function () {\n clearTimeout(this.tapHoldTimer);\n EventHandler.remove(document, Browser.isSafari() ? 'touchmove' : Browser.touchMoveEvent, this.removeTapholdTimer);\n EventHandler.remove(document, Browser.isSafari() ? 'touchend' : Browser.touchEndEvent, this.removeTapholdTimer);\n };\n /* istanbul ignore next */\n Draggable.prototype.getScrollableParent = function (element, axis) {\n var scroll = { 'vertical': 'scrollHeight', 'horizontal': 'scrollWidth' };\n var client = { 'vertical': 'clientHeight', 'horizontal': 'clientWidth' };\n if (isNullOrUndefined(element)) {\n return null;\n }\n if (element[scroll[\"\" + axis]] > element[client[\"\" + axis]]) {\n if (axis === 'vertical' ? element.scrollTop > 0 : element.scrollLeft > 0) {\n if (axis === 'vertical') {\n this.parentScrollY = this.parentScrollY +\n (this.parentScrollY === 0 ? element.scrollTop : element.scrollTop - this.parentScrollY);\n this.tempScrollHeight = element.scrollHeight;\n }\n else {\n this.parentScrollX = this.parentScrollX +\n (this.parentScrollX === 0 ? element.scrollLeft : element.scrollLeft - this.parentScrollX);\n this.tempScrollWidth = element.scrollWidth;\n }\n if (!isNullOrUndefined(element)) {\n return this.getScrollableParent(element.parentNode, axis);\n }\n else {\n return element;\n }\n }\n else {\n return this.getScrollableParent(element.parentNode, axis);\n }\n }\n else {\n return this.getScrollableParent(element.parentNode, axis);\n }\n };\n Draggable.prototype.getScrollableValues = function () {\n this.parentScrollX = 0;\n this.parentScrollY = 0;\n var isModalDialog = this.element.classList.contains('e-dialog') && this.element.classList.contains('e-dlg-modal');\n var verticalScrollParent = this.getScrollableParent(this.element.parentNode, 'vertical');\n var horizontalScrollParent = this.getScrollableParent(this.element.parentNode, 'horizontal');\n };\n Draggable.prototype.initialize = function (evt, curTarget) {\n this.currentStateTarget = evt.target;\n if (this.isDragStarted()) {\n return;\n }\n else {\n this.isDragStarted(true);\n this.externalInitialize = false;\n }\n this.target = (evt.currentTarget || curTarget);\n this.dragProcessStarted = false;\n if (this.abort) {\n /* tslint:disable no-any */\n var abortSelectors = this.abort;\n if (typeof abortSelectors === 'string') {\n abortSelectors = [abortSelectors];\n }\n for (var i = 0; i < abortSelectors.length; i++) {\n if (!isNullOrUndefined(closest(evt.target, abortSelectors[parseInt(i.toString(), 10)]))) {\n /* istanbul ignore next */\n if (this.isDragStarted()) {\n this.isDragStarted(true);\n }\n return;\n }\n }\n }\n if (this.preventDefault && !isUndefined(evt.changedTouches) && evt.type !== 'touchstart') {\n evt.preventDefault();\n }\n this.element.setAttribute('aria-grabbed', 'true');\n var intCoord = this.getCoordinates(evt);\n this.initialPosition = { x: intCoord.pageX, y: intCoord.pageY };\n if (!this.clone) {\n var pos = this.element.getBoundingClientRect();\n this.getScrollableValues();\n if (evt.clientX === evt.pageX) {\n this.parentScrollX = 0;\n }\n if (evt.clientY === evt.pageY) {\n this.parentScrollY = 0;\n }\n this.relativeXPosition = intCoord.pageX - (pos.left + this.parentScrollX);\n this.relativeYPosition = intCoord.pageY - (pos.top + this.parentScrollY);\n }\n if (this.externalInitialize) {\n this.intDragStart(evt);\n }\n else {\n EventHandler.add(document, Browser.isSafari() ? 'touchmove' : Browser.touchMoveEvent, this.intDragStart, this);\n EventHandler.add(document, Browser.isSafari() ? 'touchend' : Browser.touchEndEvent, this.intDestroy, this);\n }\n this.toggleEvents(true);\n if (evt.type !== 'touchstart' && this.isPreventSelect) {\n document.body.classList.add('e-prevent-select');\n }\n this.externalInitialize = false;\n EventHandler.trigger(document.documentElement, Browser.isSafari() ? 'touchstart' : Browser.touchStartEvent, evt);\n };\n Draggable.prototype.intDragStart = function (evt) {\n this.removeTapholdTimer();\n var isChangeTouch = !isUndefined(evt.changedTouches);\n if (isChangeTouch && (evt.changedTouches.length !== 1)) {\n return;\n }\n var intCordinate = this.getCoordinates(evt);\n var pos;\n var styleProp = getComputedStyle(this.element);\n this.margin = {\n left: parseInt(styleProp.marginLeft, 10),\n top: parseInt(styleProp.marginTop, 10),\n right: parseInt(styleProp.marginRight, 10),\n bottom: parseInt(styleProp.marginBottom, 10)\n };\n var element = this.element;\n if (this.clone && this.dragTarget) {\n var intClosest = closest(evt.target, this.dragTarget);\n if (!isNullOrUndefined(intClosest)) {\n element = intClosest;\n }\n }\n /* istanbul ignore next */\n if (this.isReplaceDragEle) {\n element = this.currentStateCheck(evt.target, element);\n }\n this.offset = this.calculateParentPosition(element);\n this.position = this.getMousePosition(evt, this.isDragScroll);\n var x = this.initialPosition.x - intCordinate.pageX;\n var y = this.initialPosition.y - intCordinate.pageY;\n var distance = Math.sqrt((x * x) + (y * y));\n if ((distance >= this.distance || this.externalInitialize)) {\n var ele = this.getHelperElement(evt);\n if (!ele || isNullOrUndefined(ele)) {\n return;\n }\n if (isChangeTouch) {\n evt.preventDefault();\n }\n var dragTargetElement = this.helperElement = ele;\n this.parentClientRect = this.calculateParentPosition(dragTargetElement.offsetParent);\n if (this.dragStart) {\n var curTarget = this.getProperTargetElement(evt);\n var args = {\n event: evt,\n element: element,\n target: curTarget,\n bindEvents: isBlazor() ? this.bindDragEvents.bind(this) : null,\n dragElement: dragTargetElement\n };\n this.trigger('dragStart', args);\n }\n if (this.dragArea) {\n this.setDragArea();\n }\n else {\n this.dragLimit = { left: 0, right: 0, bottom: 0, top: 0 };\n this.borderWidth = { top: 0, left: 0 };\n }\n pos = { left: this.position.left - this.parentClientRect.left, top: this.position.top - this.parentClientRect.top };\n if (this.clone && !this.enableTailMode) {\n this.diffX = this.position.left - this.offset.left;\n this.diffY = this.position.top - this.offset.top;\n }\n this.getScrollableValues();\n // when drag element has margin-top\n var styles = getComputedStyle(element);\n var marginTop = parseFloat(styles.marginTop);\n /* istanbul ignore next */\n if (this.clone && marginTop !== 0) {\n pos.top += marginTop;\n }\n this.eleTop = !isNaN(parseFloat(styles.top)) ? parseFloat(styles.top) - this.offset.top : 0;\n /* istanbul ignore next */\n // if (this.eleTop > 0) {\n // pos.top += this.eleTop;\n // }\n if (this.enableScrollHandler && !this.clone) {\n pos.top -= this.parentScrollY;\n pos.left -= this.parentScrollX;\n }\n var posValue = this.getProcessedPositionValue({\n top: (pos.top - this.diffY) + 'px',\n left: (pos.left - this.diffX) + 'px'\n });\n if (this.dragArea && typeof this.dragArea !== 'string' && this.dragArea.classList.contains('e-kanban-content') && this.dragArea.style.position === 'relative') {\n pos.top += this.dragArea.scrollTop;\n }\n this.dragElePosition = { top: pos.top, left: pos.left };\n setStyleAttribute(dragTargetElement, this.getDragPosition({ position: 'absolute', left: posValue.left, top: posValue.top }));\n EventHandler.remove(document, Browser.isSafari() ? 'touchmove' : Browser.touchMoveEvent, this.intDragStart);\n EventHandler.remove(document, Browser.isSafari() ? 'touchend' : Browser.touchEndEvent, this.intDestroy);\n if (!isBlazor()) {\n this.bindDragEvents(dragTargetElement);\n }\n }\n };\n Draggable.prototype.bindDragEvents = function (dragTargetElement) {\n if (isVisible(dragTargetElement)) {\n EventHandler.add(document, Browser.isSafari() ? 'touchmove' : Browser.touchMoveEvent, this.intDrag, this);\n EventHandler.add(document, Browser.isSafari() ? 'touchend' : Browser.touchEndEvent, this.intDragStop, this);\n this.setGlobalDroppables(false, this.element, dragTargetElement);\n }\n else {\n this.toggleEvents();\n document.body.classList.remove('e-prevent-select');\n }\n };\n Draggable.prototype.elementInViewport = function (el) {\n this.top = el.offsetTop;\n this.left = el.offsetLeft;\n this.width = el.offsetWidth;\n this.height = el.offsetHeight;\n while (el.offsetParent) {\n el = el.offsetParent;\n this.top += el.offsetTop;\n this.left += el.offsetLeft;\n }\n return (this.top >= window.pageYOffset &&\n this.left >= window.pageXOffset &&\n (this.top + this.height) <= (window.pageYOffset + window.innerHeight) &&\n (this.left + this.width) <= (window.pageXOffset + window.innerWidth));\n };\n Draggable.prototype.getProcessedPositionValue = function (value) {\n if (this.queryPositionInfo) {\n return this.queryPositionInfo(value);\n }\n return value;\n };\n Draggable.prototype.calculateParentPosition = function (ele) {\n if (isNullOrUndefined(ele)) {\n return { left: 0, top: 0 };\n }\n var rect = ele.getBoundingClientRect();\n var style = getComputedStyle(ele);\n return {\n left: (rect.left + window.pageXOffset) - parseInt(style.marginLeft, 10),\n top: (rect.top + window.pageYOffset) - parseInt(style.marginTop, 10)\n };\n };\n // tslint:disable-next-line:max-func-body-length\n Draggable.prototype.intDrag = function (evt) {\n if (!isUndefined(evt.changedTouches) && (evt.changedTouches.length !== 1)) {\n return;\n }\n if (this.clone && evt.changedTouches && Browser.isDevice && Browser.isTouch) {\n evt.preventDefault();\n }\n var left;\n var top;\n this.position = this.getMousePosition(evt, this.isDragScroll);\n var docHeight = this.getDocumentWidthHeight('Height');\n if (docHeight < this.position.top) {\n this.position.top = docHeight;\n }\n var docWidth = this.getDocumentWidthHeight('Width');\n if (docWidth < this.position.left) {\n this.position.left = docWidth;\n }\n if (this.drag) {\n var curTarget = this.getProperTargetElement(evt);\n this.trigger('drag', { event: evt, element: this.element, target: curTarget });\n }\n var eleObj = this.checkTargetElement(evt);\n if (eleObj.target && eleObj.instance) {\n /* tslint:disable no-any */\n var flag = true;\n if (this.hoverObject) {\n if (this.hoverObject.instance !== eleObj.instance) {\n this.triggerOutFunction(evt, eleObj);\n }\n else {\n flag = false;\n }\n }\n if (flag) {\n eleObj.instance.dragData[this.scope] = this.droppables[this.scope];\n eleObj.instance.intOver(evt, eleObj.target);\n this.hoverObject = eleObj;\n }\n }\n else if (this.hoverObject) {\n this.triggerOutFunction(evt, eleObj);\n }\n var helperElement = this.droppables[this.scope].helper;\n this.parentClientRect = this.calculateParentPosition(this.helperElement.offsetParent);\n var tLeft = this.parentClientRect.left;\n var tTop = this.parentClientRect.top;\n var intCoord = this.getCoordinates(evt);\n var pagex = intCoord.pageX;\n var pagey = intCoord.pageY;\n var dLeft = this.position.left - this.diffX;\n var dTop = this.position.top - this.diffY;\n var styles = getComputedStyle(helperElement);\n if (this.dragArea) {\n if (this.pageX !== pagex || this.skipDistanceCheck) {\n var helperWidth = helperElement.offsetWidth + (parseFloat(styles.marginLeft)\n + parseFloat(styles.marginRight));\n if (this.dragLimit.left > dLeft && dLeft > 0) {\n left = this.dragLimit.left;\n }\n else if (this.dragLimit.right + window.pageXOffset < dLeft + helperWidth && dLeft > 0) {\n left = dLeft - (dLeft - this.dragLimit.right) + window.pageXOffset - helperWidth;\n }\n else {\n left = dLeft < 0 ? this.dragLimit.left : dLeft;\n }\n }\n if (this.pageY !== pagey || this.skipDistanceCheck) {\n var helperHeight = helperElement.offsetHeight + (parseFloat(styles.marginTop)\n + parseFloat(styles.marginBottom));\n if (this.dragLimit.top > dTop && dTop > 0) {\n top = this.dragLimit.top;\n }\n else if (this.dragLimit.bottom + window.pageYOffset < dTop + helperHeight && dTop > 0) {\n top = dTop - (dTop - this.dragLimit.bottom) + window.pageYOffset - helperHeight;\n }\n else {\n top = dTop < 0 ? this.dragLimit.top : dTop;\n }\n }\n }\n else {\n left = dLeft;\n top = dTop;\n }\n var iTop = tTop + this.borderWidth.top;\n var iLeft = tLeft + this.borderWidth.left;\n if (this.dragProcessStarted) {\n if (isNullOrUndefined(top)) {\n top = this.prevTop;\n }\n if (isNullOrUndefined(left)) {\n left = this.prevLeft;\n }\n }\n var draEleTop;\n var draEleLeft;\n if (this.helperElement.classList.contains('e-treeview')) {\n if (this.dragArea) {\n this.dragLimit.top = this.clone ? this.dragLimit.top : 0;\n draEleTop = (top - iTop) < 0 ? this.dragLimit.top : (top - this.borderWidth.top);\n draEleLeft = (left - iLeft) < 0 ? this.dragLimit.left : (left - this.borderWidth.left);\n }\n else {\n draEleTop = top - this.borderWidth.top;\n draEleLeft = left - this.borderWidth.left;\n }\n }\n else {\n if (this.dragArea) {\n var isDialogEle = this.helperElement.classList.contains('e-dialog');\n this.dragLimit.top = this.clone ? this.dragLimit.top : 0;\n draEleTop = (top - iTop) < 0 ? this.dragLimit.top : (top - iTop);\n draEleLeft = (left - iLeft) < 0 ? isDialogEle ? (left - (iLeft - this.borderWidth.left)) :\n this.dragElePosition.left : (left - iLeft);\n }\n else {\n draEleTop = top - iTop;\n draEleLeft = left - iLeft;\n }\n }\n var marginTop = parseFloat(getComputedStyle(this.element).marginTop);\n // when drag-element has margin-top\n /* istanbul ignore next */\n if (marginTop > 0) {\n if (this.clone) {\n draEleTop += marginTop;\n if (dTop < 0) {\n if ((marginTop + dTop) >= 0) {\n draEleTop = marginTop + dTop;\n }\n else {\n draEleTop -= marginTop;\n }\n }\n draEleTop = (this.dragLimit.bottom < draEleTop) ? this.dragLimit.bottom : draEleTop;\n }\n if ((top - iTop) < 0) {\n if (dTop + marginTop + (helperElement.offsetHeight - iTop) >= 0) {\n var tempDraEleTop = this.dragLimit.top + dTop - iTop;\n if ((tempDraEleTop + marginTop + iTop) < 0) {\n draEleTop -= marginTop + iTop;\n }\n else {\n draEleTop = tempDraEleTop;\n }\n }\n else {\n draEleTop -= marginTop + iTop;\n }\n }\n }\n if (this.dragArea && this.helperElement.classList.contains('e-treeview')) {\n var helperHeight = helperElement.offsetHeight + (parseFloat(styles.marginTop)\n + parseFloat(styles.marginBottom));\n draEleTop = (draEleTop + helperHeight) > this.dragLimit.bottom ? (this.dragLimit.bottom - helperHeight) : draEleTop;\n }\n /* istanbul ignore next */\n // if(this.eleTop > 0) {\n // draEleTop += this.eleTop;\n // }\n if (this.enableScrollHandler && !this.clone) {\n draEleTop -= this.parentScrollY;\n draEleLeft -= this.parentScrollX;\n }\n if (this.dragArea && typeof this.dragArea !== 'string' && this.dragArea.classList.contains('e-kanban-content') && this.dragArea.style.position === 'relative') {\n draEleTop += this.dragArea.scrollTop;\n }\n var dragValue = this.getProcessedPositionValue({ top: draEleTop + 'px', left: draEleLeft + 'px' });\n setStyleAttribute(helperElement, this.getDragPosition(dragValue));\n if (!this.elementInViewport(helperElement) && this.enableAutoScroll && !this.helperElement.classList.contains('e-treeview')) {\n this.helperElement.scrollIntoView();\n }\n var elements = document.querySelectorAll(':hover');\n if (this.enableAutoScroll && this.helperElement.classList.contains('e-treeview')) {\n if (elements.length === 0) {\n elements = this.getPathElements(evt);\n }\n /* tslint:disable no-any */\n var scrollParent = this.getScrollParent(elements, false);\n if (this.elementInViewport(this.helperElement)) {\n this.getScrollPosition(scrollParent, draEleTop);\n }\n else if (!this.elementInViewport(this.helperElement)) {\n elements = [].slice.call(document.querySelectorAll(':hover'));\n if (elements.length === 0) {\n elements = this.getPathElements(evt);\n }\n scrollParent = this.getScrollParent(elements, true);\n this.getScrollPosition(scrollParent, draEleTop);\n }\n }\n this.dragProcessStarted = true;\n this.prevLeft = left;\n this.prevTop = top;\n this.position.left = left;\n this.position.top = top;\n this.pageX = pagex;\n this.pageY = pagey;\n };\n /* tslint:disable no-any */\n Draggable.prototype.getScrollParent = function (node, reverse) {\n /* tslint:disable no-any */\n var nodeEl = reverse ? node.reverse() : node;\n var hasScroll;\n for (var i = nodeEl.length - 1; i >= 0; i--) {\n hasScroll = window.getComputedStyle(nodeEl[parseInt(i.toString(), 10)])['overflow-y'];\n if ((hasScroll === 'auto' || hasScroll === 'scroll')\n && nodeEl[parseInt(i.toString(), 10)].scrollHeight > nodeEl[parseInt(i.toString(), 10)].clientHeight) {\n return nodeEl[parseInt(i.toString(), 10)];\n }\n }\n hasScroll = window.getComputedStyle(document.scrollingElement)['overflow-y'];\n if (hasScroll === 'visible') {\n document.scrollingElement.style.overflow = 'auto';\n return document.scrollingElement;\n }\n };\n Draggable.prototype.getScrollPosition = function (nodeEle, draEleTop) {\n if (nodeEle && nodeEle === document.scrollingElement) {\n if ((nodeEle.clientHeight + document.scrollingElement.scrollTop - this.helperElement.clientHeight) < draEleTop\n && nodeEle.getBoundingClientRect().height + this.parentClientRect.top > draEleTop) {\n nodeEle.scrollTop += this.helperElement.clientHeight;\n }\n else if (nodeEle.scrollTop > draEleTop - this.helperElement.clientHeight) {\n nodeEle.scrollTop -= this.helperElement.clientHeight;\n }\n }\n else if (nodeEle && nodeEle !== document.scrollingElement) {\n if ((nodeEle.clientHeight + nodeEle.getBoundingClientRect().top - this.helperElement.clientHeight + document.scrollingElement.scrollTop) < draEleTop) {\n nodeEle.scrollTop += this.helperElement.clientHeight;\n }\n else if (nodeEle.getBoundingClientRect().top > (draEleTop - this.helperElement.clientHeight - document.scrollingElement.scrollTop)) {\n nodeEle.scrollTop -= this.helperElement.clientHeight;\n }\n }\n };\n Draggable.prototype.getPathElements = function (evt) {\n var elementTop = evt.clientX > 0 ? evt.clientX : 0;\n var elementLeft = evt.clientY > 0 ? evt.clientY : 0;\n return document.elementsFromPoint(elementTop, elementLeft);\n };\n Draggable.prototype.triggerOutFunction = function (evt, eleObj) {\n this.hoverObject.instance.intOut(evt, eleObj.target);\n this.hoverObject.instance.dragData[this.scope] = null;\n this.hoverObject = null;\n };\n Draggable.prototype.getDragPosition = function (dragValue) {\n var temp = extend({}, dragValue);\n if (this.axis) {\n if (this.axis === 'x') {\n delete temp.top;\n }\n else if (this.axis === 'y') {\n delete temp.left;\n }\n }\n return temp;\n };\n Draggable.prototype.getDocumentWidthHeight = function (str) {\n var docBody = document.body;\n var docEle = document.documentElement;\n var returnValue = Math.max(docBody['scroll' + str], docEle['scroll' + str], docBody['offset' + str], docEle['offset' + str], docEle['client' + str]);\n return returnValue;\n };\n Draggable.prototype.intDragStop = function (evt) {\n this.dragProcessStarted = false;\n if (!isUndefined(evt.changedTouches) && (evt.changedTouches.length !== 1)) {\n return;\n }\n var type = ['touchend', 'pointerup', 'mouseup'];\n if (type.indexOf(evt.type) !== -1) {\n if (this.dragStop) {\n var curTarget = this.getProperTargetElement(evt);\n this.trigger('dragStop', { event: evt, element: this.element, target: curTarget, helper: this.helperElement });\n }\n this.intDestroy(evt);\n }\n else {\n this.element.setAttribute('aria-grabbed', 'false');\n }\n var eleObj = this.checkTargetElement(evt);\n if (eleObj.target && eleObj.instance) {\n eleObj.instance.dragStopCalled = true;\n eleObj.instance.dragData[this.scope] = this.droppables[this.scope];\n eleObj.instance.intDrop(evt, eleObj.target);\n }\n this.setGlobalDroppables(true);\n document.body.classList.remove('e-prevent-select');\n };\n /**\n * @private\n */\n Draggable.prototype.intDestroy = function (evt) {\n this.dragProcessStarted = false;\n this.toggleEvents();\n document.body.classList.remove('e-prevent-select');\n this.element.setAttribute('aria-grabbed', 'false');\n EventHandler.remove(document, Browser.isSafari() ? 'touchmove' : Browser.touchMoveEvent, this.intDragStart);\n EventHandler.remove(document, Browser.isSafari() ? 'touchend' : Browser.touchEndEvent, this.intDragStop);\n EventHandler.remove(document, Browser.isSafari() ? 'touchend' : Browser.touchEndEvent, this.intDestroy);\n EventHandler.remove(document, Browser.isSafari() ? 'touchmove' : Browser.touchMoveEvent, this.intDrag);\n if (this.isDragStarted()) {\n this.isDragStarted(true);\n }\n };\n // triggers when property changed\n Draggable.prototype.onPropertyChanged = function (newProp, oldProp) {\n //No Code to handle\n };\n Draggable.prototype.getModuleName = function () {\n return 'draggable';\n };\n Draggable.prototype.isDragStarted = function (change) {\n if (change) {\n isDraggedObject.isDragged = !isDraggedObject.isDragged;\n }\n return isDraggedObject.isDragged;\n };\n Draggable.prototype.setDragArea = function () {\n var eleWidthBound;\n var eleHeightBound;\n var top = 0;\n var left = 0;\n var ele;\n var type = typeof this.dragArea;\n if (type === 'string') {\n ele = select(this.dragArea);\n }\n else {\n ele = this.dragArea;\n }\n if (ele) {\n var elementArea = ele.getBoundingClientRect();\n eleWidthBound = ele.scrollWidth ? ele.scrollWidth : elementArea.right - elementArea.left;\n eleHeightBound = ele.scrollHeight ? (this.dragArea && !isNullOrUndefined(this.helperElement) && this.helperElement.classList.contains('e-treeview')) ? ele.clientHeight : ele.scrollHeight : elementArea.bottom - elementArea.top;\n var keys = ['Top', 'Left', 'Bottom', 'Right'];\n var styles = getComputedStyle(ele);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[parseInt(i.toString(), 10)];\n var tborder = styles['border' + key + 'Width'];\n var tpadding = styles['padding' + key];\n var lowerKey = key.toLowerCase();\n this.borderWidth[\"\" + lowerKey] = isNaN(parseFloat(tborder)) ? 0 : parseFloat(tborder);\n this.padding[\"\" + lowerKey] = isNaN(parseFloat(tpadding)) ? 0 : parseFloat(tpadding);\n }\n if (this.dragArea && !isNullOrUndefined(this.helperElement) && this.helperElement.classList.contains('e-treeview')) {\n top = elementArea.top + document.scrollingElement.scrollTop;\n }\n else {\n top = elementArea.top;\n }\n left = elementArea.left;\n this.dragLimit.left = left + this.borderWidth.left + this.padding.left;\n this.dragLimit.top = ele.offsetTop + this.borderWidth.top + this.padding.top;\n this.dragLimit.right = left + eleWidthBound - (this.borderWidth.right + this.padding.right);\n this.dragLimit.bottom = top + eleHeightBound - (this.borderWidth.bottom + this.padding.bottom);\n }\n };\n Draggable.prototype.getProperTargetElement = function (evt) {\n var intCoord = this.getCoordinates(evt);\n var ele;\n var prevStyle = this.helperElement.style.pointerEvents || '';\n var isPointer = evt.type.indexOf('pointer') !== -1 && Browser.info.name === 'safari' && parseInt(Browser.info.version) > 12;\n if (compareElementParent(evt.target, this.helperElement) || evt.type.indexOf('touch') !== -1 || isPointer) {\n this.helperElement.style.pointerEvents = 'none';\n ele = document.elementFromPoint(intCoord.clientX, intCoord.clientY);\n this.helperElement.style.pointerEvents = prevStyle;\n }\n else {\n ele = evt.target;\n }\n return ele;\n };\n /* istanbul ignore next */\n Draggable.prototype.currentStateCheck = function (ele, oldEle) {\n var elem;\n if (!isNullOrUndefined(this.currentStateTarget) && this.currentStateTarget !== ele) {\n elem = this.currentStateTarget;\n }\n else {\n elem = !isNullOrUndefined(oldEle) ? oldEle : ele;\n }\n return elem;\n };\n Draggable.prototype.getMousePosition = function (evt, isdragscroll) {\n /* tslint:disable no-any */\n var dragEle = evt.srcElement !== undefined ? evt.srcElement : evt.target;\n var intCoord = this.getCoordinates(evt);\n var pageX;\n var pageY;\n var isOffsetParent = isNullOrUndefined(dragEle.offsetParent);\n /* istanbul ignore next */\n if (isdragscroll) {\n pageX = this.clone ? intCoord.pageX :\n (intCoord.pageX + (isOffsetParent ? 0 : dragEle.offsetParent.scrollLeft)) - this.relativeXPosition;\n pageY = this.clone ? intCoord.pageY :\n (intCoord.pageY + (isOffsetParent ? 0 : dragEle.offsetParent.scrollTop)) - this.relativeYPosition;\n }\n else {\n pageX = this.clone ? intCoord.pageX : (intCoord.pageX + window.pageXOffset) - this.relativeXPosition;\n pageY = this.clone ? intCoord.pageY : (intCoord.pageY + window.pageYOffset) - this.relativeYPosition;\n }\n if (document.scrollingElement && (!isdragscroll && !this.clone)) {\n var isVerticalScroll = document.scrollingElement.scrollHeight > 0 && document.scrollingElement.scrollHeight > document.scrollingElement.clientHeight && document.scrollingElement.scrollTop > 0;\n var isHorrizontalScroll = document.scrollingElement.scrollWidth > 0 && document.scrollingElement.scrollWidth > document.scrollingElement.clientWidth && document.scrollingElement.scrollLeft > 0;\n pageX = isHorrizontalScroll ? pageX - document.scrollingElement.scrollLeft : pageX;\n pageY = isVerticalScroll ? pageY - document.scrollingElement.scrollTop : pageY;\n }\n return {\n left: pageX - (this.margin.left + this.cursorAt.left),\n top: pageY - (this.margin.top + this.cursorAt.top)\n };\n };\n Draggable.prototype.getCoordinates = function (evt) {\n if (evt.type.indexOf('touch') > -1) {\n return evt.changedTouches[0];\n }\n return evt;\n };\n Draggable.prototype.getHelperElement = function (evt) {\n var element;\n if (this.clone) {\n if (this.helper) {\n element = this.helper({ sender: evt, element: this.target });\n }\n else {\n element = createElement('div', { className: 'e-drag-helper e-block-touch', innerHTML: 'Draggable' });\n document.body.appendChild(element);\n }\n }\n else {\n element = this.element;\n }\n return element;\n };\n Draggable.prototype.setGlobalDroppables = function (reset, drag, helper) {\n this.droppables[this.scope] = reset ? null : {\n draggable: drag,\n helper: helper,\n draggedElement: this.element\n };\n };\n Draggable.prototype.checkTargetElement = function (evt) {\n var target = this.getProperTargetElement(evt);\n var dropIns = this.getDropInstance(target);\n if (!dropIns && target && !isNullOrUndefined(target.parentNode)) {\n var parent_1 = closest(target.parentNode, '.e-droppable') || target.parentElement;\n if (parent_1) {\n dropIns = this.getDropInstance(parent_1);\n }\n }\n return { target: target, instance: dropIns };\n };\n Draggable.prototype.getDropInstance = function (ele) {\n var name = 'getModuleName';\n var drop;\n var eleInst = ele && ele.ej2_instances;\n if (eleInst) {\n for (var _i = 0, eleInst_1 = eleInst; _i < eleInst_1.length; _i++) {\n var inst = eleInst_1[_i];\n if (inst[\"\" + name]() === 'droppable') {\n drop = inst;\n break;\n }\n }\n }\n return drop;\n };\n Draggable.prototype.destroy = function () {\n this.toggleEvents(true);\n _super.prototype.destroy.call(this);\n };\n var Draggable_1;\n __decorate([\n Complex({}, Position)\n ], Draggable.prototype, \"cursorAt\", void 0);\n __decorate([\n Property(true)\n ], Draggable.prototype, \"clone\", void 0);\n __decorate([\n Property()\n ], Draggable.prototype, \"dragArea\", void 0);\n __decorate([\n Property()\n ], Draggable.prototype, \"isDragScroll\", void 0);\n __decorate([\n Property()\n ], Draggable.prototype, \"isReplaceDragEle\", void 0);\n __decorate([\n Property(true)\n ], Draggable.prototype, \"isPreventSelect\", void 0);\n __decorate([\n Event()\n ], Draggable.prototype, \"drag\", void 0);\n __decorate([\n Event()\n ], Draggable.prototype, \"dragStart\", void 0);\n __decorate([\n Event()\n ], Draggable.prototype, \"dragStop\", void 0);\n __decorate([\n Property(1)\n ], Draggable.prototype, \"distance\", void 0);\n __decorate([\n Property()\n ], Draggable.prototype, \"handle\", void 0);\n __decorate([\n Property()\n ], Draggable.prototype, \"abort\", void 0);\n __decorate([\n Property()\n ], Draggable.prototype, \"helper\", void 0);\n __decorate([\n Property('default')\n ], Draggable.prototype, \"scope\", void 0);\n __decorate([\n Property('')\n ], Draggable.prototype, \"dragTarget\", void 0);\n __decorate([\n Property()\n ], Draggable.prototype, \"axis\", void 0);\n __decorate([\n Property()\n ], Draggable.prototype, \"queryPositionInfo\", void 0);\n __decorate([\n Property(false)\n ], Draggable.prototype, \"enableTailMode\", void 0);\n __decorate([\n Property(false)\n ], Draggable.prototype, \"skipDistanceCheck\", void 0);\n __decorate([\n Property(true)\n ], Draggable.prototype, \"preventDefault\", void 0);\n __decorate([\n Property(false)\n ], Draggable.prototype, \"enableAutoScroll\", void 0);\n __decorate([\n Property(false)\n ], Draggable.prototype, \"enableTapHold\", void 0);\n __decorate([\n Property(750)\n ], Draggable.prototype, \"tapHoldThreshold\", void 0);\n __decorate([\n Property(false)\n ], Draggable.prototype, \"enableScrollHandler\", void 0);\n Draggable = Draggable_1 = __decorate([\n NotifyPropertyChanges\n ], Draggable);\n return Draggable;\n}(Base));\nexport { Draggable };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Base } from './base';\nimport { Browser } from './browser';\nimport { isVisible, matches } from './dom';\nimport { Property, NotifyPropertyChanges, Event } from './notify-property-change';\nimport { EventHandler } from './event-handler';\nimport { compareElementParent } from './util';\n/**\n * Droppable Module provides support to enable droppable functionality in Dom Elements.\n * ```html\n *
Droppable
\n * \n * ```\n */\nvar Droppable = /** @class */ (function (_super) {\n __extends(Droppable, _super);\n function Droppable(element, options) {\n var _this = _super.call(this, options, element) || this;\n _this.mouseOver = false;\n _this.dragData = {};\n _this.dragStopCalled = false;\n _this.bind();\n return _this;\n }\n Droppable.prototype.bind = function () {\n this.wireEvents();\n };\n Droppable.prototype.wireEvents = function () {\n EventHandler.add(this.element, Browser.isSafari() ? 'touchend' : Browser.touchEndEvent, this.intDrop, this);\n };\n // triggers when property changed\n // eslint-disable-next-line\n Droppable.prototype.onPropertyChanged = function (newProp, oldProp) {\n //No Code to handle\n };\n Droppable.prototype.getModuleName = function () {\n return 'droppable';\n };\n Droppable.prototype.intOver = function (event, element) {\n if (!this.mouseOver) {\n var drag = this.dragData[this.scope];\n this.trigger('over', { event: event, target: element, dragData: drag });\n this.mouseOver = true;\n }\n };\n Droppable.prototype.intOut = function (event, element) {\n if (this.mouseOver) {\n this.trigger('out', { evt: event, target: element });\n this.mouseOver = false;\n }\n };\n Droppable.prototype.intDrop = function (evt, element) {\n if (!this.dragStopCalled) {\n return;\n }\n else {\n this.dragStopCalled = false;\n }\n var accept = true;\n var drag = this.dragData[this.scope];\n var isDrag = drag ? (drag.helper && isVisible(drag.helper)) : false;\n var area;\n if (isDrag) {\n area = this.isDropArea(evt, drag.helper, element);\n if (this.accept) {\n accept = matches(drag.helper, this.accept);\n }\n }\n if (isDrag && this.drop && area.canDrop && accept) {\n this.trigger('drop', { event: evt, target: area.target, droppedElement: drag.helper, dragData: drag });\n }\n this.mouseOver = false;\n };\n Droppable.prototype.isDropArea = function (evt, helper, element) {\n var area = { canDrop: true, target: element || evt.target };\n var isTouch = evt.type === 'touchend';\n if (isTouch || area.target === helper) {\n helper.style.display = 'none';\n var coord = isTouch ? (evt.changedTouches[0]) : evt;\n var ele = document.elementFromPoint(coord.clientX, coord.clientY);\n area.canDrop = false;\n area.canDrop = compareElementParent(ele, this.element);\n if (area.canDrop) {\n area.target = ele;\n }\n helper.style.display = '';\n }\n return area;\n };\n Droppable.prototype.destroy = function () {\n EventHandler.remove(this.element, Browser.isSafari() ? 'touchend' : Browser.touchEndEvent, this.intDrop);\n _super.prototype.destroy.call(this);\n };\n __decorate([\n Property()\n ], Droppable.prototype, \"accept\", void 0);\n __decorate([\n Property('default')\n ], Droppable.prototype, \"scope\", void 0);\n __decorate([\n Event()\n ], Droppable.prototype, \"drop\", void 0);\n __decorate([\n Event()\n ], Droppable.prototype, \"over\", void 0);\n __decorate([\n Event()\n ], Droppable.prototype, \"out\", void 0);\n Droppable = __decorate([\n NotifyPropertyChanges\n ], Droppable);\n return Droppable;\n}(Base));\nexport { Droppable };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, NotifyPropertyChanges, Event } from './notify-property-change';\nimport { Base } from './base';\nvar keyCode = {\n 'backspace': 8,\n 'tab': 9,\n 'enter': 13,\n 'shift': 16,\n 'control': 17,\n 'alt': 18,\n 'pause': 19,\n 'capslock': 20,\n 'space': 32,\n 'escape': 27,\n 'pageup': 33,\n 'pagedown': 34,\n 'end': 35,\n 'home': 36,\n 'leftarrow': 37,\n 'uparrow': 38,\n 'rightarrow': 39,\n 'downarrow': 40,\n 'insert': 45,\n 'delete': 46,\n 'f1': 112,\n 'f2': 113,\n 'f3': 114,\n 'f4': 115,\n 'f5': 116,\n 'f6': 117,\n 'f7': 118,\n 'f8': 119,\n 'f9': 120,\n 'f10': 121,\n 'f11': 122,\n 'f12': 123,\n 'semicolon': 186,\n 'plus': 187,\n 'comma': 188,\n 'minus': 189,\n 'dot': 190,\n 'forwardslash': 191,\n 'graveaccent': 192,\n 'openbracket': 219,\n 'backslash': 220,\n 'closebracket': 221,\n 'singlequote': 222\n};\n/**\n * KeyboardEvents class enables you to bind key action desired key combinations for ex., Ctrl+A, Delete, Alt+Space etc.\n * ```html\n *
;\n * \n * ```\n */\nvar KeyboardEvents = /** @class */ (function (_super) {\n __extends(KeyboardEvents, _super);\n /**\n * Initializes the KeyboardEvents\n *\n * @param {HTMLElement} element ?\n * @param {KeyboardEventsModel} options ?\n */\n function KeyboardEvents(element, options) {\n var _this = _super.call(this, options, element) || this;\n /**\n * To handle a key press event returns null\n *\n * @param {KeyboardEventArgs} e ?\n * @returns {void} ?\n */\n _this.keyPressHandler = function (e) {\n var isAltKey = e.altKey;\n var isCtrlKey = e.ctrlKey;\n var isShiftKey = e.shiftKey;\n var curkeyCode = e.which;\n var keys = Object.keys(_this.keyConfigs);\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n var configCollection = _this.keyConfigs[\"\" + key].split(',');\n for (var _a = 0, configCollection_1 = configCollection; _a < configCollection_1.length; _a++) {\n var rconfig = configCollection_1[_a];\n var rKeyObj = KeyboardEvents_1.getKeyConfigData(rconfig.trim());\n if (isAltKey === rKeyObj.altKey && isCtrlKey === rKeyObj.ctrlKey &&\n isShiftKey === rKeyObj.shiftKey && curkeyCode === rKeyObj.keyCode) {\n e.action = key;\n if (_this.keyAction) {\n _this.keyAction(e);\n }\n }\n }\n }\n };\n _this.bind();\n return _this;\n }\n KeyboardEvents_1 = KeyboardEvents;\n /**\n * Unwire bound events and destroy the instance.\n *\n * @returns {void} ?\n */\n KeyboardEvents.prototype.destroy = function () {\n this.unwireEvents();\n _super.prototype.destroy.call(this);\n };\n /**\n * Function can be used to specify certain action if a property is changed\n *\n * @param {KeyboardEventsModel} newProp ?\n * @param {KeyboardEventsModel} oldProp ?\n * @returns {void} ?\n * @private\n */\n // eslint-disable-next-line\n KeyboardEvents.prototype.onPropertyChanged = function (newProp, oldProp) {\n // No code are needed\n };\n KeyboardEvents.prototype.bind = function () {\n this.wireEvents();\n };\n /**\n * To get the module name, returns 'keyboard'.\n *\n * @returns {string} ?\n * @private\n */\n KeyboardEvents.prototype.getModuleName = function () {\n return 'keyboard';\n };\n /**\n * Wiring event handlers to events\n *\n * @returns {void} ?\n * @private\n */\n KeyboardEvents.prototype.wireEvents = function () {\n this.element.addEventListener(this.eventName, this.keyPressHandler);\n };\n /**\n * Unwiring event handlers to events\n *\n * @returns {void} ?\n * @private\n */\n KeyboardEvents.prototype.unwireEvents = function () {\n this.element.removeEventListener(this.eventName, this.keyPressHandler);\n };\n /**\n * To get the key configuration data\n *\n * @param {string} config - configuration data\n * @returns {KeyData} ?\n */\n KeyboardEvents.getKeyConfigData = function (config) {\n if (config in this.configCache) {\n return this.configCache[\"\" + config];\n }\n var keys = config.toLowerCase().split('+');\n var keyData = {\n altKey: (keys.indexOf('alt') !== -1 ? true : false),\n ctrlKey: (keys.indexOf('ctrl') !== -1 ? true : false),\n shiftKey: (keys.indexOf('shift') !== -1 ? true : false),\n keyCode: null\n };\n if (keys[keys.length - 1].length > 1 && !!Number(keys[keys.length - 1])) {\n keyData.keyCode = Number(keys[keys.length - 1]);\n }\n else {\n keyData.keyCode = KeyboardEvents_1.getKeyCode(keys[keys.length - 1]);\n }\n KeyboardEvents_1.configCache[\"\" + config] = keyData;\n return keyData;\n };\n // Return the keycode value as string\n KeyboardEvents.getKeyCode = function (keyVal) {\n return keyCode[\"\" + keyVal] || keyVal.toUpperCase().charCodeAt(0);\n };\n var KeyboardEvents_1;\n KeyboardEvents.configCache = {};\n __decorate([\n Property({})\n ], KeyboardEvents.prototype, \"keyConfigs\", void 0);\n __decorate([\n Property('keyup')\n ], KeyboardEvents.prototype, \"eventName\", void 0);\n __decorate([\n Event()\n ], KeyboardEvents.prototype, \"keyAction\", void 0);\n KeyboardEvents = KeyboardEvents_1 = __decorate([\n NotifyPropertyChanges\n ], KeyboardEvents);\n return KeyboardEvents;\n}(Base));\nexport { KeyboardEvents };\n","import { extend, isNullOrUndefined } from './util';\nimport { defaultCulture } from './internationalization';\n/**\n * L10n modules provides localized text for different culture.\n * ```typescript\n * import {setCulture} from '@syncfusion/ts-base-library';\n * //load global locale object common for all components.\n * L10n.load({\n * 'fr-BE': {\n * 'button': {\n * 'check': 'vérifié'\n * }\n * }\n * });\n * //set globale default locale culture.\n * setCulture('fr-BE');\n * let instance: L10n = new L10n('button', {\n * check: 'checked'\n * });\n * //Get locale text for current property.\n * instance.getConstant('check');\n * //Change locale culture in a component.\n * instance.setLocale('en-US');\n * ```\n */\nvar L10n = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param {string} controlName ?\n * @param {Object} localeStrings ?\n * @param {string} locale ?\n */\n function L10n(controlName, localeStrings, locale) {\n this.controlName = controlName;\n this.localeStrings = localeStrings;\n this.setLocale(locale || defaultCulture);\n }\n /**\n * Sets the locale text\n *\n * @param {string} locale ?\n * @returns {void} ?\n */\n L10n.prototype.setLocale = function (locale) {\n var intLocale = this.intGetControlConstant(L10n.locale, locale);\n this.currentLocale = intLocale || this.localeStrings;\n };\n /**\n * Sets the global locale for all components.\n *\n * @param {Object} localeObject - specifies the localeObject to be set as global locale.\n * @returns {void} ?\n */\n L10n.load = function (localeObject) {\n this.locale = extend(this.locale, localeObject, {}, true);\n };\n /**\n * Returns current locale text for the property based on the culture name and control name.\n *\n * @param {string} prop - specifies the property for which localize text to be returned.\n * @returns {string} ?\n */\n L10n.prototype.getConstant = function (prop) {\n // Removed conditional operator because this method does not return correct value when passing 0 as value in localization\n if (!isNullOrUndefined(this.currentLocale[\"\" + prop])) {\n return this.currentLocale[\"\" + prop];\n }\n else {\n return this.localeStrings[\"\" + prop] || '';\n }\n };\n /**\n * Returns the control constant object for current object and the locale specified.\n *\n * @param {Object} curObject ?\n * @param {string} locale ?\n * @returns {Object} ?\n */\n L10n.prototype.intGetControlConstant = function (curObject, locale) {\n if ((curObject)[\"\" + locale]) {\n return (curObject)[\"\" + locale][this.controlName];\n }\n return null;\n };\n L10n.locale = {};\n return L10n;\n}());\nexport { L10n };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { extend } from './util';\nimport { Property, Complex, NotifyPropertyChanges, Event } from './notify-property-change';\nimport { Browser } from './browser';\nimport { Base } from './base';\nimport { ChildProperty } from './child-property';\nimport { EventHandler } from './event-handler';\n/**\n * SwipeSettings is a framework module that provides support to handle swipe event like swipe up, swipe right, etc..,\n */\nvar SwipeSettings = /** @class */ (function (_super) {\n __extends(SwipeSettings, _super);\n function SwipeSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(50)\n ], SwipeSettings.prototype, \"swipeThresholdDistance\", void 0);\n return SwipeSettings;\n}(ChildProperty));\nexport { SwipeSettings };\nvar swipeRegex = /(Up|Down)/;\n/**\n * Touch class provides support to handle the touch event like tap, double tap, tap hold, etc..,\n * ```typescript\n * let node: HTMLElement;\n * let touchObj: Touch = new Touch({\n * element: node,\n * tap: function (e) {\n * // tap handler function code\n * }\n * tapHold: function (e) {\n * // tap hold handler function code\n * }\n * scroll: function (e) {\n * // scroll handler function code\n * }\n * swipe: function (e) {\n * // swipe handler function code\n * }\n * });\n * ```\n */\nvar Touch = /** @class */ (function (_super) {\n __extends(Touch, _super);\n /* End-Properties */\n function Touch(element, options) {\n var _this = _super.call(this, options, element) || this;\n _this.touchAction = true;\n _this.tapCount = 0;\n /**\n *\n * @param {MouseEventArgs | TouchEventArgs} evt ?\n * @returns {void} ?\n */\n _this.startEvent = function (evt) {\n if (_this.touchAction === true) {\n var point = _this.updateChangeTouches(evt);\n if (evt.changedTouches !== undefined) {\n _this.touchAction = false;\n }\n _this.isTouchMoved = false;\n _this.movedDirection = '';\n _this.startPoint = _this.lastMovedPoint = { clientX: point.clientX, clientY: point.clientY };\n _this.startEventData = point;\n _this.hScrollLocked = _this.vScrollLocked = false;\n _this.tStampStart = Date.now();\n _this.timeOutTapHold = setTimeout(function () { _this.tapHoldEvent(evt); }, _this.tapHoldThreshold);\n EventHandler.add(_this.element, Browser.touchMoveEvent, _this.moveEvent, _this);\n EventHandler.add(_this.element, Browser.touchEndEvent, _this.endEvent, _this);\n EventHandler.add(_this.element, Browser.touchCancelEvent, _this.cancelEvent, _this);\n }\n };\n /**\n *\n * @param {MouseEventArgs | TouchEventArgs} evt ?\n * @returns {void} ?\n */\n _this.moveEvent = function (evt) {\n var point = _this.updateChangeTouches(evt);\n _this.movedPoint = point;\n _this.isTouchMoved = !(point.clientX === _this.startPoint.clientX && point.clientY === _this.startPoint.clientY);\n var eScrollArgs = {};\n if (_this.isTouchMoved) {\n clearTimeout(_this.timeOutTapHold);\n _this.calcScrollPoints(evt);\n var scrollArg = {\n startEvents: _this.startEventData,\n originalEvent: evt, startX: _this.startPoint.clientX,\n startY: _this.startPoint.clientY, distanceX: _this.distanceX,\n distanceY: _this.distanceY, scrollDirection: _this.scrollDirection,\n velocity: _this.getVelocity(point)\n };\n eScrollArgs = extend(eScrollArgs, {}, scrollArg);\n _this.trigger('scroll', eScrollArgs);\n _this.lastMovedPoint = { clientX: point.clientX, clientY: point.clientY };\n }\n };\n /**\n *\n * @param {MouseEventArgs | TouchEventArgs} evt ?\n * @returns {void} ?\n */\n _this.cancelEvent = function (evt) {\n clearTimeout(_this.timeOutTapHold);\n clearTimeout(_this.timeOutTap);\n _this.tapCount = 0;\n _this.swipeFn(evt);\n EventHandler.remove(_this.element, Browser.touchCancelEvent, _this.cancelEvent);\n };\n /**\n *\n * @param {MouseEventArgs | TouchEventArgs} evt ?\n * @returns {void} ?\n */\n _this.endEvent = function (evt) {\n _this.swipeFn(evt);\n if (!_this.isTouchMoved) {\n if (typeof _this.tap === 'function') {\n _this.trigger('tap', { originalEvent: evt, tapCount: ++_this.tapCount });\n _this.timeOutTap = setTimeout(function () {\n _this.tapCount = 0;\n }, _this.tapThreshold);\n }\n }\n _this.modeclear();\n };\n /**\n *\n * @param {MouseEventArgs | TouchEventArgs} evt ?\n * @returns {void} ?\n */\n _this.swipeFn = function (evt) {\n clearTimeout(_this.timeOutTapHold);\n clearTimeout(_this.timeOutTap);\n var point = _this.updateChangeTouches(evt);\n var diffX = point.clientX - _this.startPoint.clientX;\n var diffY = point.clientY - _this.startPoint.clientY;\n diffX = Math.floor(diffX < 0 ? -1 * diffX : diffX);\n diffY = Math.floor(diffY < 0 ? -1 * diffY : diffX);\n _this.isTouchMoved = diffX > 1 || diffY > 1;\n var isFirefox = (/Firefox/).test(Browser.userAgent);\n if (isFirefox && point.clientX === 0 && point.clientY === 0 && evt.type === 'mouseup') {\n _this.isTouchMoved = false;\n }\n _this.endPoint = point;\n _this.calcPoints(evt);\n var swipeArgs = {\n originalEvent: evt,\n startEvents: _this.startEventData,\n startX: _this.startPoint.clientX,\n startY: _this.startPoint.clientY,\n distanceX: _this.distanceX, distanceY: _this.distanceY, swipeDirection: _this.movedDirection,\n velocity: _this.getVelocity(point)\n };\n if (_this.isTouchMoved) {\n var eSwipeArgs = void 0;\n var tDistance = _this.swipeSettings.swipeThresholdDistance;\n // eslint-disable-next-line\n eSwipeArgs = extend(eSwipeArgs, _this.defaultArgs, swipeArgs);\n var canTrigger = false;\n var ele = _this.element;\n var scrollBool = _this.isScrollable(ele);\n var moved = swipeRegex.test(_this.movedDirection);\n if ((tDistance < _this.distanceX && !moved) || (tDistance < _this.distanceY && moved)) {\n if (!scrollBool) {\n canTrigger = true;\n }\n else {\n canTrigger = _this.checkSwipe(ele, moved);\n }\n }\n if (canTrigger) {\n _this.trigger('swipe', eSwipeArgs);\n }\n }\n _this.modeclear();\n };\n _this.modeclear = function () {\n _this.modeClear = setTimeout(function () {\n _this.touchAction = true;\n }, (typeof _this.tap !== 'function' ? 0 : 20));\n _this.lastTapTime = new Date().getTime();\n EventHandler.remove(_this.element, Browser.touchMoveEvent, _this.moveEvent);\n EventHandler.remove(_this.element, Browser.touchEndEvent, _this.endEvent);\n EventHandler.remove(_this.element, Browser.touchCancelEvent, _this.cancelEvent);\n };\n _this.bind();\n return _this;\n }\n // triggers when property changed\n /**\n *\n * @private\n * @param {TouchModel} newProp ?\n * @param {TouchModel} oldProp ?\n * @returns {void} ?\n */\n // eslint-disable-next-line\n Touch.prototype.onPropertyChanged = function (newProp, oldProp) {\n //No Code to handle\n };\n Touch.prototype.bind = function () {\n this.wireEvents();\n if (Browser.isIE) {\n this.element.classList.add('e-block-touch');\n }\n };\n /**\n * To destroy the touch instance.\n *\n * @returns {void}\n */\n Touch.prototype.destroy = function () {\n this.unwireEvents();\n _super.prototype.destroy.call(this);\n };\n // Need to changes the event binding once we updated the event handler.\n Touch.prototype.wireEvents = function () {\n EventHandler.add(this.element, Browser.touchStartEvent, this.startEvent, this);\n };\n Touch.prototype.unwireEvents = function () {\n EventHandler.remove(this.element, Browser.touchStartEvent, this.startEvent);\n };\n /**\n * Returns module name as touch\n *\n * @returns {string} ?\n * @private\n */\n Touch.prototype.getModuleName = function () {\n return 'touch';\n };\n /**\n * Returns if the HTML element is Scrollable.\n *\n * @param {HTMLElement} element - HTML Element to check if Scrollable.\n * @returns {boolean} ?\n */\n Touch.prototype.isScrollable = function (element) {\n var eleStyle = getComputedStyle(element);\n var style = eleStyle.overflow + eleStyle.overflowX + eleStyle.overflowY;\n if ((/(auto|scroll)/).test(style)) {\n return true;\n }\n return false;\n };\n /**\n *\n * @param {MouseEventArgs | TouchEventArgs} evt ?\n * @returns {void} ?\n */\n Touch.prototype.tapHoldEvent = function (evt) {\n this.tapCount = 0;\n this.touchAction = true;\n var eTapArgs;\n EventHandler.remove(this.element, Browser.touchMoveEvent, this.moveEvent);\n EventHandler.remove(this.element, Browser.touchEndEvent, this.endEvent);\n // eslint-disable-next-line\n eTapArgs = { originalEvent: evt };\n this.trigger('tapHold', eTapArgs);\n EventHandler.remove(this.element, Browser.touchCancelEvent, this.cancelEvent);\n };\n Touch.prototype.calcPoints = function (evt) {\n var point = this.updateChangeTouches(evt);\n this.defaultArgs = { originalEvent: evt };\n this.distanceX = Math.abs((Math.abs(point.clientX) - Math.abs(this.startPoint.clientX)));\n this.distanceY = Math.abs((Math.abs(point.clientY) - Math.abs(this.startPoint.clientY)));\n if (this.distanceX > this.distanceY) {\n this.movedDirection = (point.clientX > this.startPoint.clientX) ? 'Right' : 'Left';\n }\n else {\n this.movedDirection = (point.clientY < this.startPoint.clientY) ? 'Up' : 'Down';\n }\n };\n Touch.prototype.calcScrollPoints = function (evt) {\n var point = this.updateChangeTouches(evt);\n this.defaultArgs = { originalEvent: evt };\n this.distanceX = Math.abs((Math.abs(point.clientX) - Math.abs(this.lastMovedPoint.clientX)));\n this.distanceY = Math.abs((Math.abs(point.clientY) - Math.abs(this.lastMovedPoint.clientY)));\n if ((this.distanceX > this.distanceY || this.hScrollLocked === true) && this.vScrollLocked === false) {\n this.scrollDirection = (point.clientX > this.lastMovedPoint.clientX) ? 'Right' : 'Left';\n this.hScrollLocked = true;\n }\n else {\n this.scrollDirection = (point.clientY < this.lastMovedPoint.clientY) ? 'Up' : 'Down';\n this.vScrollLocked = true;\n }\n };\n Touch.prototype.getVelocity = function (pnt) {\n var newX = pnt.clientX;\n var newY = pnt.clientY;\n var newT = Date.now();\n var xDist = newX - this.startPoint.clientX;\n var yDist = newY - this.startPoint.clientX;\n var interval = newT - this.tStampStart;\n return Math.sqrt(xDist * xDist + yDist * yDist) / interval;\n };\n // eslint-disable-next-line\n Touch.prototype.checkSwipe = function (ele, flag) {\n var keys = ['scroll', 'offset'];\n var temp = flag ? ['Height', 'Top'] : ['Width', 'Left'];\n if ((ele[keys[0] + temp[0]] <= ele[keys[1] + temp[0]])) {\n return true;\n }\n return (ele[keys[0] + temp[1]] === 0) ||\n (ele[keys[1] + temp[0]] + ele[keys[0] + temp[1]] >= ele[keys[0] + temp[0]]);\n };\n Touch.prototype.updateChangeTouches = function (evt) {\n var point = evt.changedTouches && evt.changedTouches.length !== 0 ? evt.changedTouches[0] : evt;\n return point;\n };\n __decorate([\n Event()\n ], Touch.prototype, \"tap\", void 0);\n __decorate([\n Event()\n ], Touch.prototype, \"tapHold\", void 0);\n __decorate([\n Event()\n ], Touch.prototype, \"swipe\", void 0);\n __decorate([\n Event()\n ], Touch.prototype, \"scroll\", void 0);\n __decorate([\n Property(350)\n ], Touch.prototype, \"tapThreshold\", void 0);\n __decorate([\n Property(750)\n ], Touch.prototype, \"tapHoldThreshold\", void 0);\n __decorate([\n Complex({}, SwipeSettings)\n ], Touch.prototype, \"swipeSettings\", void 0);\n Touch = __decorate([\n NotifyPropertyChanges\n ], Touch);\n return Touch;\n}(Base));\nexport { Touch };\n","/**\n * Template Engine\n */\nvar LINES = new RegExp('\\\\n|\\\\r|\\\\s\\\\s+', 'g');\nvar QUOTES = new RegExp(/'|\"/g);\nvar IF_STMT = new RegExp('if ?\\\\(');\nvar ELSEIF_STMT = new RegExp('else if ?\\\\(');\nvar ELSE_STMT = new RegExp('else');\nvar FOR_STMT = new RegExp('for ?\\\\(');\nvar IF_OR_FOR = new RegExp('(/if|/for)');\nvar CALL_FUNCTION = new RegExp('\\\\((.*)\\\\)', '');\nvar NOT_NUMBER = new RegExp('^[0-9]+$', 'g');\nvar WORD = new RegExp('[\\\\w\"\\'.\\\\s+]+', 'g');\nvar DBL_QUOTED_STR = new RegExp('\"(.*?)\"', 'g');\nvar WORDIF = new RegExp('[\\\\w\"\\'@#$.\\\\s-+]+', 'g');\nvar exp = new RegExp('\\\\${([^}]*)}', 'g');\n// let cachedTemplate: Object = {};\nvar ARR_OBJ = /^\\..*/gm;\nvar SINGLE_SLASH = /\\\\/gi;\nvar DOUBLE_SLASH = /\\\\\\\\/gi;\nvar WORDFUNC = new RegExp('[\\\\w\"\\'@#$.\\\\s+]+', 'g');\nvar WINDOWFUNC = /\\window\\./gm;\n/**\n * The function to set regular expression for template expression string.\n *\n * @param {RegExp} value - Value expression.\n * @returns {RegExp} ?\n * @private\n */\nexport function expression(value) {\n if (value) {\n exp = value;\n }\n return exp;\n}\n// /**\n// * To render the template string from the given data.\n// * @param {string} template - String Template.\n// * @param {Object[]|JSON} data - DataSource for the template.\n// * @param {Object} helper? - custom helper object.\n// */\n// export function template(template: string, data: JSON, helper?: Object): string {\n// let hash: string = hashCode(template);\n// let tmpl: Function;\n// if (!cachedTemplate[hash]) {\n// tmpl = cachedTemplate[hash] = compile(template, helper);\n// } else {\n// tmpl = cachedTemplate[hash];\n// }\n// return tmpl(data);\n// }\n/**\n * Compile the template string into template function.\n *\n * @param {string} template - The template string which is going to convert.\n * @param {Object} helper - Helper functions as an object.\n * @param {boolean} ignorePrefix ?\n * @returns {string} ?\n * @private\n */\nexport function compile(template, helper, ignorePrefix) {\n var argName = 'data';\n var evalExpResult = evalExp(template, argName, helper, ignorePrefix);\n // eslint-disable-next-line\n var condtion = \"var valueRegEx = (/value=\\\\'([A-Za-z0-9 _]*)((.)([\\\\w)(!-;?-\\u25A0\\\\s]+)['])/g);\\n var hrefRegex = (/(?:href)([\\\\s='\\\"./]+)([\\\\w-./?=&\\\\\\\\#\\\"]+)((.)([\\\\w)(!-;/?-\\u25A0\\\\s]+)['])/g);\\n if(str.match(valueRegEx)){\\n var check = str.match(valueRegEx);\\n var str1 = str;\\n for (var i=0; i < check.length; i++) {\\n var check1 = str.match(valueRegEx)[i].split('value=')[1];\\n var change = check1.match(/^'/) !== null ? check1.replace(/^'/, '\\\"') : check1;\\n change =change.match(/.$/)[0] === '\\\\'' ? change.replace(/.$/,'\\\"') : change;\\n str1 = str1.replace(check1, change);\\n }\\n str = str.replace(str, str1);\\n }\\n else if (str.match(/(?:href='')/) === null) {\\n if(str.match(hrefRegex)) {\\n var check = str.match(hrefRegex);\\n var str1 = str;\\n for (var i=0; i < check.length; i++) {\\n var check1 = str.match(hrefRegex)[i].split('href=')[1];\\n if (check1) {\\n var change = check1.match(/^'/) !== null ? check1.replace(/^'/, '\\\"') : check1;\\n change =change.match(/.$/)[0] === '\\\\'' ? change.replace(/.$/,'\\\"') : change;\\n str1 = str1.replace(check1, change);\\n }\\n }\\n str = str.replace(str, str1);\\n }\\n }\\n \";\n var fnCode = 'var str=\\\"' + evalExpResult + '\\\";' + condtion + ' return str;';\n var fn = new Function(argName, fnCode);\n return fn.bind(helper);\n}\n/** function used to evaluate the function expression\n *\n * @param {string} str ?\n * @param {string} nameSpace ?\n * @param {Object} helper ?\n * @param {boolean} ignorePrefix ?\n * @returns {string} ?\n */\nfunction evalExp(str, nameSpace, helper, ignorePrefix) {\n var varCOunt = 0;\n /**\n * Variable containing Local Keys\n */\n var localKeys = [];\n var isClass = str.match(/class=\"([^\"]+|)\\s{2}/g);\n var singleSpace = '';\n if (isClass) {\n isClass.forEach(function (value) {\n singleSpace = value.replace(/\\s\\s+/g, ' ');\n str = str.replace(value, singleSpace);\n });\n }\n return str.replace(LINES, '').replace(DBL_QUOTED_STR, '\\'$1\\'').replace(exp, \n // eslint-disable-next-line\n function (match, cnt, offset, matchStr) {\n var SPECIAL_CHAR = /@|#|\\$/gm;\n var matches = cnt.match(CALL_FUNCTION);\n // matches to detect any function calls\n if (matches) {\n var rlStr = matches[1];\n if (ELSEIF_STMT.test(cnt)) {\n //handling else-if condition\n cnt = '\";} ' + cnt.replace(matches[1], rlStr.replace(WORD, function (str) {\n str = str.trim();\n return addNameSpace(str, !(QUOTES.test(str)) && (localKeys.indexOf(str) === -1), nameSpace, localKeys, ignorePrefix);\n })) + '{ \\n str = str + \"';\n }\n else if (IF_STMT.test(cnt)) {\n //handling if condition\n cnt = '\"; ' + cnt.replace(matches[1], rlStr.replace(WORDIF, function (strs) {\n return HandleSpecialCharArrObj(strs, nameSpace, localKeys, ignorePrefix);\n })) + '{ \\n str = str + \"';\n }\n else if (FOR_STMT.test(cnt)) {\n //handling for condition\n var rlStr_1 = matches[1].split(' of ');\n // replace for each into actual JavaScript\n // eslint-disable-next-line\n cnt = '\"; ' + cnt.replace(matches[1], function (mtc) {\n localKeys.push(rlStr_1[0]);\n localKeys.push(rlStr_1[0] + 'Index');\n varCOunt = varCOunt + 1;\n // tslint:disable-next-line\n return 'var i' + varCOunt + '=0; i' + varCOunt + ' < ' + addNameSpace(rlStr_1[1], true, nameSpace, localKeys, ignorePrefix) + '.length; i' + varCOunt + '++';\n }) + '{ \\n ' + rlStr_1[0] + '= ' + addNameSpace(rlStr_1[1], true, nameSpace, localKeys, ignorePrefix)\n + '[i' + varCOunt + ']; \\n var ' + rlStr_1[0] + 'Index=i' + varCOunt + '; \\n str = str + \"';\n }\n else {\n //helper function handling\n var fnStr = cnt.split('(');\n // eslint-disable-next-line\n var fNameSpace = (helper && helper.hasOwnProperty(fnStr[0]) ? 'this.' : 'global');\n fNameSpace = (/\\./.test(fnStr[0]) ? '' : fNameSpace);\n var ftArray = matches[1].split(',');\n if (matches[1].length !== 0 && !(/data/).test(ftArray[0]) && !(/window./).test(ftArray[0])) {\n matches[1] = (fNameSpace === 'global' ? nameSpace + '.' + matches[1] : matches[1]);\n }\n var splRegexp = /@|\\$|#/gm;\n var arrObj = /\\]\\./gm;\n if (WINDOWFUNC.test(cnt) && arrObj.test(cnt) || splRegexp.test(cnt)) {\n var splArrRegexp = /@|\\$|#|\\]\\./gm;\n if (splArrRegexp.test(cnt)) {\n // tslint:disable-next-line\n cnt = '\"+ ' + (fNameSpace === 'global' ? '' : fNameSpace) + cnt.replace(matches[1], rlStr.replace(WORDFUNC, function (strs) {\n return HandleSpecialCharArrObj(strs, nameSpace, localKeys, ignorePrefix);\n })) + '+ \"';\n }\n }\n else {\n cnt = '\" + ' + (fNameSpace === 'global' ? '' : fNameSpace) +\n cnt.replace(rlStr, addNameSpace(matches[1].replace(/,( |)data.|,/gi, ',' + nameSpace + '.').replace(/,( |)data.window/gi, ',window'), (fNameSpace === 'global' ? false : true), nameSpace, localKeys, ignorePrefix)) +\n '+\"';\n }\n }\n }\n else if (ELSE_STMT.test(cnt)) {\n // handling else condition\n cnt = '\"; ' + cnt.replace(ELSE_STMT, '} else { \\n str = str + \"');\n // eslint-disable-next-line\n }\n else if (!!cnt.match(IF_OR_FOR)) {\n // close condition\n cnt = cnt.replace(IF_OR_FOR, '\"; \\n } \\n str = str + \"');\n }\n else if (SPECIAL_CHAR.test(cnt)) {\n // template string with double slash with special character\n if (cnt.match(SINGLE_SLASH)) {\n cnt = SlashReplace(cnt);\n }\n cnt = '\"+' + NameSpaceForspecialChar(cnt, (localKeys.indexOf(cnt) === -1), nameSpace, localKeys) + '\"]+\"';\n }\n else {\n // template string with double slash\n if (cnt.match(SINGLE_SLASH)) {\n cnt = SlashReplace(cnt);\n cnt = '\"+' + NameSpaceForspecialChar(cnt, (localKeys.indexOf(cnt) === -1), nameSpace, localKeys) + '\"]+\"';\n }\n else {\n // evaluate normal expression\n cnt = cnt !== '' ? '\"+' + addNameSpace(cnt.replace(/,/gi, '+' + nameSpace + '.'), (localKeys.indexOf(cnt) === -1), nameSpace, localKeys, ignorePrefix) + '+\"' : ' ';\n }\n }\n return cnt;\n });\n}\n/**\n *\n * @param {string} str ?\n * @param {boolean} addNS ?\n * @param {string} nameSpace ?\n * @param {string[]} ignoreList ?\n * @param {boolean} ignorePrefix ?\n * @returns {string} ?\n */\nfunction addNameSpace(str, addNS, nameSpace, ignoreList, ignorePrefix) {\n return ((addNS && !(NOT_NUMBER.test(str)) && ignoreList.indexOf(str.split('.')[0]) === -1 && !ignorePrefix && str !== \"true\" && str !== \"false\") ? nameSpace + '.' + str : str);\n}\n/**\n *\n * @param {string} str ?\n * @param {boolean} addNS ?\n * @param {string} nameSpace ?\n * @param {string[]} ignoreList ?\n * @returns {string} ?\n */\nfunction NameSpaceArrObj(str, addNS, nameSpace, ignoreList) {\n var arrObjReg = /^\\..*/gm;\n return ((addNS && !(NOT_NUMBER.test(str)) &&\n ignoreList.indexOf(str.split('.')[0]) === -1 && !(arrObjReg.test(str))) ? nameSpace + '.' + str : str);\n}\n// // Create hashCode for template string to storeCached function\n// function hashCode(str: string): string {\n// return str.split('').reduce((a: number, b: string) => { a = ((a << 5) - a) + b.charCodeAt(0); return a & a; }, 0).toString();\n// }\n/**\n *\n * @param {string} str ?\n * @param {boolean} addNS ?\n * @param {string} nameSpace ?\n * @param {string[]} ignoreList ?\n * @returns {string} ?\n */\nfunction NameSpaceForspecialChar(str, addNS, nameSpace, ignoreList) {\n return ((addNS && !(NOT_NUMBER.test(str)) && ignoreList.indexOf(str.split('.')[0]) === -1) ? nameSpace + '[\"' + str : str);\n}\n// eslint-disable-next-line\nfunction SlashReplace(tempStr) {\n var double = '\\\\\\\\';\n if (tempStr.match(DOUBLE_SLASH)) {\n // eslint-disable-next-line\n tempStr = tempStr;\n }\n else {\n tempStr = tempStr.replace(SINGLE_SLASH, double);\n }\n return tempStr;\n}\n/**\n *\n * @param {string} str ?\n * @param {string} nameSpaceNew ?\n * @param {string[]} keys ?\n * @param {boolean} ignorePrefix ?\n * @returns {string} ?\n */\nfunction HandleSpecialCharArrObj(str, nameSpaceNew, keys, ignorePrefix) {\n str = str.trim();\n var windowFunc = /\\window\\./gm;\n if (!windowFunc.test(str)) {\n var quotes = /'|\"/gm;\n var splRegexp = /@|\\$|#/gm;\n if (splRegexp.test(str)) {\n str = NameSpaceForspecialChar(str, (keys.indexOf(str) === -1), nameSpaceNew, keys) + '\"]';\n }\n if (ARR_OBJ.test(str)) {\n return NameSpaceArrObj(str, !(quotes.test(str)) && (keys.indexOf(str) === -1), nameSpaceNew, keys);\n }\n else {\n return addNameSpace(str, !(quotes.test(str)) && (keys.indexOf(str) === -1), nameSpaceNew, keys, ignorePrefix);\n }\n }\n else {\n return str;\n }\n}\n","/**\n * Template Engine Bridge\n */\nimport { compile as render } from './template';\nimport { createElement } from './dom';\nimport { isNullOrUndefined, isBlazor } from './util';\nvar HAS_ROW = /^[\\n\\r.]+= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component, getUniqueID, formatUnit, NotifyPropertyChanges, Property, attributes, removeClass, addClass } from '@syncfusion/ej2-base';\nvar cssClassName = {\n TEXTSHAPE: 'e-skeleton-text',\n CIRCLESHAPE: 'e-skeleton-circle',\n SQUARESHAPE: 'e-skeleton-square',\n RECTANGLESHAPE: 'e-skeleton-rectangle',\n WAVEEFFECT: 'e-shimmer-wave',\n PULSEEFFECT: 'e-shimmer-pulse',\n FADEEFFECT: 'e-shimmer-fade',\n VISIBLENONE: 'e-visible-none'\n};\n/**\n * Defines the shape of Skeleton.\n */\nexport var SkeletonType;\n(function (SkeletonType) {\n /**\n * Defines the skeleton shape as text.\n */\n SkeletonType[\"Text\"] = \"Text\";\n /**\n * Defines the skeleton shape as circle.\n */\n SkeletonType[\"Circle\"] = \"Circle\";\n /**\n * Defines the skeleton shape as square.\n */\n SkeletonType[\"Square\"] = \"Square\";\n /**\n * Defines the skeleton shape as rectangle.\n */\n SkeletonType[\"Rectangle\"] = \"Rectangle\";\n})(SkeletonType || (SkeletonType = {}));\n/**\n * Defines the animation effect of Skeleton.\n */\nexport var ShimmerEffect;\n(function (ShimmerEffect) {\n /**\n * Defines the animation as shimmer wave effect.\n */\n ShimmerEffect[\"Wave\"] = \"Wave\";\n /**\n * Defines the animation as fade effect.\n */\n ShimmerEffect[\"Fade\"] = \"Fade\";\n /**\n * Defines the animation as pulse effect.\n */\n ShimmerEffect[\"Pulse\"] = \"Pulse\";\n /**\n * Defines the animation as no effect.\n */\n ShimmerEffect[\"None\"] = \"None\";\n})(ShimmerEffect || (ShimmerEffect = {}));\n/**\n * The Shimmer is a placeholder that animates a shimmer effect to let users know that the page’s content is loading at the moment.\n * In other terms, it simulates the layout of page content while loading the actual content.\n * ```html\n *
\n * ```\n * ```typescript\n * \n * ```\n */\nvar Skeleton = /** @class */ (function (_super) {\n __extends(Skeleton, _super);\n /**\n * Constructor for creating Skeleton component.\n *\n * @param {SkeletonModel} options - Defines the model of Skeleton class.\n * @param {HTMLElement} element - Defines the target HTML element.\n */\n function Skeleton(options, element) {\n return _super.call(this, options, element) || this;\n }\n /**\n * Get component module name.\n *\n * @returns {string} - Module name\n * @private\n */\n Skeleton.prototype.getModuleName = function () {\n return 'skeleton';\n };\n Skeleton.prototype.getPersistData = function () {\n return this.addOnPersist([]);\n };\n Skeleton.prototype.preRender = function () {\n if (!this.element.id) {\n this.element.id = getUniqueID('e-' + this.getModuleName());\n }\n this.updateCssClass();\n attributes(this.element, { role: 'alert', 'aria-busy': 'true', 'aria-live': 'polite', 'aria-label': this.label });\n };\n /**\n * Method for initialize the component rendering.\n *\n * @returns {void}\n * @private\n */\n Skeleton.prototype.render = function () {\n this.initialize();\n };\n Skeleton.prototype.onPropertyChanged = function (newProp, oldProp) {\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'width':\n case 'height':\n this.updateDimension();\n break;\n case 'shape':\n this.updateShape();\n break;\n case 'shimmerEffect':\n this.updateEffect();\n break;\n case 'visible':\n this.updateVisibility();\n break;\n case 'label':\n this.element.setAttribute('aria-label', this.label);\n break;\n case 'cssClass':\n if (oldProp.cssClass) {\n removeClass([this.element], oldProp.cssClass.split(' '));\n }\n this.updateCssClass();\n break;\n }\n }\n };\n /**\n * Method to destroys the Skeleton component.\n *\n * @returns {void}\n */\n Skeleton.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n var attrs = ['role', 'aria-live', 'aria-busy', 'aria-label'];\n var cssClass = [];\n if (this.cssClass) {\n cssClass = cssClass.concat(this.cssClass.split(' '));\n }\n for (var i = 0; i < attrs.length; i++) {\n this.element.removeAttribute(attrs[parseInt(i.toString(), 10)]);\n }\n cssClass = cssClass.concat(this.element.classList.value.match(/(e-skeleton-[^\\s]+)/g));\n cssClass = cssClass.concat(this.element.classList.value.match(/(e-shimmer-[^\\s]+)/g));\n removeClass([this.element], cssClass);\n };\n Skeleton.prototype.initialize = function () {\n this.updateShape();\n this.updateEffect();\n this.updateVisibility();\n };\n Skeleton.prototype.updateShape = function () {\n var shapeCss = cssClassName[this.shape.toUpperCase() + 'SHAPE'];\n var removeCss = this.element.classList.value.match(/(e-skeleton-[^\\s]+)/g);\n this.updateDimension();\n if (removeCss) {\n removeClass([this.element], removeCss);\n }\n addClass([this.element], [shapeCss]);\n };\n Skeleton.prototype.updateDimension = function () {\n var width = (!this.width && (['Text', 'Rectangle'].indexOf(this.shape) > -1)) ? '100%' : formatUnit(this.width);\n var height = ['Circle', 'Square'].indexOf(this.shape) > -1 ? width : formatUnit(this.height);\n this.element.style.width = width;\n this.element.style.height = height;\n };\n Skeleton.prototype.updateEffect = function () {\n var removeCss = this.element.classList.value.match(/(e-shimmer-[^\\s]+)/g);\n if (removeCss) {\n removeClass([this.element], removeCss);\n }\n addClass([this.element], [cssClassName[this.shimmerEffect.toUpperCase() + 'EFFECT']]);\n };\n Skeleton.prototype.updateVisibility = function () {\n this.element.classList[this.visible ? 'remove' : 'add'](cssClassName.VISIBLENONE);\n };\n Skeleton.prototype.updateCssClass = function () {\n if (this.cssClass) {\n addClass([this.element], this.cssClass.split(' '));\n }\n };\n __decorate([\n Property('')\n ], Skeleton.prototype, \"width\", void 0);\n __decorate([\n Property('')\n ], Skeleton.prototype, \"height\", void 0);\n __decorate([\n Property(true)\n ], Skeleton.prototype, \"visible\", void 0);\n __decorate([\n Property('Text')\n ], Skeleton.prototype, \"shape\", void 0);\n __decorate([\n Property('Wave')\n ], Skeleton.prototype, \"shimmerEffect\", void 0);\n __decorate([\n Property('Loading...')\n ], Skeleton.prototype, \"label\", void 0);\n __decorate([\n Property('')\n ], Skeleton.prototype, \"cssClass\", void 0);\n Skeleton = __decorate([\n NotifyPropertyChanges\n ], Skeleton);\n return Skeleton;\n}(Component));\nexport { Skeleton };\n","/**\n * SanitizeHtmlHelper for sanitize the value.\n */\nimport { detach } from './dom';\nvar removeTags = [\n 'script',\n 'style',\n 'iframe[src]',\n 'link[href*=\"javascript:\"]',\n 'object[type=\"text/x-scriptlet\"]',\n 'object[data^=\"data:text/html;base64\"]',\n 'img[src^=\"data:text/html;base64\"]',\n '[src^=\"javascript:\"]',\n '[dynsrc^=\"javascript:\"]',\n '[lowsrc^=\"javascript:\"]',\n '[type^=\"application/x-shockwave-flash\"]'\n];\nvar removeAttrs = [\n { attribute: 'href', selector: '[href*=\"javascript:\"]' },\n { attribute: 'background', selector: '[background^=\"javascript:\"]' },\n { attribute: 'style', selector: '[style*=\"javascript:\"]' },\n { attribute: 'style', selector: '[style*=\"expression(\"]' },\n { attribute: 'href', selector: 'a[href^=\"data:text/html;base64\"]' }\n];\nvar jsEvents = ['onchange',\n 'onclick',\n 'onmouseover',\n 'onmouseout',\n 'onkeydown',\n 'onload',\n 'onerror',\n 'onblur',\n 'onfocus',\n 'onbeforeload',\n 'onbeforeunload',\n 'onkeyup',\n 'onsubmit',\n 'onafterprint',\n 'onbeforeonload',\n 'onbeforeprint',\n 'oncanplay',\n 'oncanplaythrough',\n 'oncontextmenu',\n 'ondblclick',\n 'ondrag',\n 'ondragend',\n 'ondragenter',\n 'ondragleave',\n 'ondragover',\n 'ondragstart',\n 'ondrop',\n 'ondurationchange',\n 'onemptied',\n 'onended',\n 'onformchange',\n 'onforminput',\n 'onhaschange',\n 'oninput',\n 'oninvalid',\n 'onkeypress',\n 'onloadeddata',\n 'onloadedmetadata',\n 'onloadstart',\n 'onmessage',\n 'onmousedown',\n 'onmousemove',\n 'onmouseup',\n 'onmousewheel',\n 'onoffline',\n 'onoine',\n 'ononline',\n 'onpagehide',\n 'onpageshow',\n 'onpause',\n 'onplay',\n 'onplaying',\n 'onpopstate',\n 'onprogress',\n 'onratechange',\n 'onreadystatechange',\n 'onredo',\n 'onresize',\n 'onscroll',\n 'onseeked',\n 'onseeking',\n 'onselect',\n 'onstalled',\n 'onstorage',\n 'onsuspend',\n 'ontimeupdate',\n 'onundo',\n 'onunload',\n 'onvolumechange',\n 'onwaiting',\n 'onmouseenter',\n 'onmouseleave',\n 'onstart',\n 'onpropertychange',\n 'oncopy',\n 'ontoggle',\n 'onpointerout',\n 'onpointermove',\n 'onpointerleave',\n 'onpointerenter',\n 'onpointerrawupdate',\n 'onpointerover',\n 'onbeforecopy',\n 'onbeforecut',\n 'onbeforeinput'\n];\nvar SanitizeHtmlHelper = /** @class */ (function () {\n function SanitizeHtmlHelper() {\n }\n SanitizeHtmlHelper.beforeSanitize = function () {\n return {\n selectors: {\n tags: removeTags,\n attributes: removeAttrs\n }\n };\n };\n SanitizeHtmlHelper.sanitize = function (value) {\n var item = this.beforeSanitize();\n var output = this.serializeValue(item, value);\n return output;\n };\n SanitizeHtmlHelper.serializeValue = function (item, value) {\n this.removeAttrs = item.selectors.attributes;\n this.removeTags = item.selectors.tags;\n this.wrapElement = document.createElement('div');\n this.wrapElement.innerHTML = value;\n this.removeXssTags();\n this.removeJsEvents();\n this.removeXssAttrs();\n var tempEleValue = this.wrapElement.innerHTML;\n this.removeElement();\n return tempEleValue.replace('&', '&');\n };\n SanitizeHtmlHelper.removeElement = function () {\n // Removes an element's attibute to avoid html tag validation\n var nodes = this.wrapElement.children;\n for (var j = 0; j < nodes.length; j++) {\n var attribute = nodes[parseInt(j.toString(), 10)].attributes;\n for (var i = 0; i < attribute.length; i++) {\n this.wrapElement.children[parseInt(j.toString(), 10)].removeAttribute(attribute[parseInt(i.toString(), 10)].localName);\n }\n }\n };\n SanitizeHtmlHelper.removeXssTags = function () {\n var elements = this.wrapElement.querySelectorAll(this.removeTags.join(','));\n if (elements.length > 0) {\n elements.forEach(function (element) {\n detach(element);\n });\n }\n else {\n return;\n }\n };\n SanitizeHtmlHelper.removeJsEvents = function () {\n var elements = this.wrapElement.querySelectorAll('[' + jsEvents.join('],[') + ']');\n if (elements.length > 0) {\n elements.forEach(function (element) {\n jsEvents.forEach(function (attr) {\n if (element.hasAttribute(attr)) {\n element.removeAttribute(attr);\n }\n });\n });\n }\n else {\n return;\n }\n };\n SanitizeHtmlHelper.removeXssAttrs = function () {\n var _this = this;\n // eslint-disable-next-line\n this.removeAttrs.forEach(function (item, index) {\n var elements = _this.wrapElement.querySelectorAll(item.selector);\n if (elements.length > 0) {\n elements.forEach(function (element) {\n element.removeAttribute(item.attribute);\n });\n }\n });\n };\n return SanitizeHtmlHelper;\n}());\nexport { SanitizeHtmlHelper };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * React Component Base\n */\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { extend, isNullOrUndefined, setValue, getValue, isObject } from '@syncfusion/ej2-base';\nvar defaulthtmlkeys = ['alt', 'className', 'disabled', 'form', 'id',\n 'readOnly', 'style', 'tabIndex', 'title', 'type', 'name',\n 'onClick', 'onFocus', 'onBlur'];\nvar delayUpdate = ['accordion', 'tab', 'splitter'];\nvar reactUid = 0;\nvar isColEName = new RegExp('\\]');\n// tslint:disable\n/* eslint-disable @typescript-eslint/no-explicit-any */\nvar ComponentBase = /** @class */ (function (_super) {\n __extends(ComponentBase, _super);\n function ComponentBase() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.mountingState = false;\n _this.attrKeys = [];\n _this.cachedTimeOut = 0;\n _this.isAppendCalled = false;\n _this.initRenderCalled = false;\n _this.isReactForeceUpdate = false;\n _this.isReact = true;\n _this.isshouldComponentUpdateCalled = false;\n _this.isCreated = false;\n return _this;\n }\n // Lifecycle methods are changed by React team and so we can deprecate this method and use\n // Reference link:https://reactjs.org/docs/react-component.html#unsafe_componentWillMount\n // tslint:disable-next-line:no-any\n ComponentBase.prototype.componentDidMount = function () {\n this.refreshChild(true);\n this.canDelayUpdate = delayUpdate.indexOf(this.getModuleName()) !== -1;\n // Used timeout to resolve template binding\n // Reference link: https://github.com/facebook/react/issues/10309#issuecomment-318433235\n // tslint:disable-next-line:no-any\n this.renderReactComponent();\n if (this.portals && this.portals.length) {\n this.mountingState = true;\n this.renderReactTemplates();\n this.mountingState = false;\n }\n };\n ComponentBase.prototype.componentDidUpdate = function (prev) {\n if (!this.isshouldComponentUpdateCalled && this.initRenderCalled && !this.isReactForeceUpdate) {\n if (prev !== this.props) {\n this.isshouldComponentUpdateCalled = true;\n this.refreshProperties(this.props, this.props);\n }\n }\n };\n ComponentBase.prototype.renderReactComponent = function () {\n var ele = this.reactElement;\n if (ele && !this.isAppendCalled) {\n this.isAppendCalled = true;\n this.appendTo(ele);\n }\n };\n // Lifecycle methods are changed by React team and so we can deprecate this method and use\n // Reference link:https://reactjs.org/docs/react-component.html#unsafe_componentwillreceiveprops\n // tslint:disable-next-line:no-any\n /**\n * @private\n */\n ComponentBase.prototype.shouldComponentUpdate = function (nextProps) {\n this.isshouldComponentUpdateCalled = true;\n if (!this.initRenderCalled) {\n this.updateProperties(nextProps, true);\n return true;\n }\n if (!this.isAppendCalled) {\n clearTimeout(this.cachedTimeOut);\n this.isAppendCalled = true;\n this.appendTo(this.reactElement);\n }\n this.updateProperties(nextProps);\n return true;\n };\n /**\n * @private\n */\n ComponentBase.prototype.updateProperties = function (nextProps, silent) {\n var _this = this;\n var dProps = extend({}, nextProps);\n var keys = Object.keys(nextProps);\n // The statelessTemplates props value is taken from sample level property or default component property.\n var statelessTemplates = !isNullOrUndefined(this.props['statelessTemplates']) ? this.props['statelessTemplates'] :\n (!isNullOrUndefined(this['statelessTemplateProps']) ? this['statelessTemplateProps'] : []);\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var propkey = keys_1[_i];\n var isClassName = propkey === 'className';\n if (propkey === 'children') {\n continue;\n }\n if (!isClassName && !isNullOrUndefined(this.htmlattributes[\"\" + propkey]) &&\n this.htmlattributes[\"\" + propkey] !== dProps[\"\" + propkey]) {\n this.htmlattributes[\"\" + propkey] = dProps[\"\" + propkey];\n }\n if (this.compareValues(this.props[\"\" + propkey], nextProps[\"\" + propkey])) {\n delete dProps[\"\" + propkey];\n }\n else if (this.attrKeys.indexOf(propkey) !== -1) {\n if (isClassName) {\n this.clsName = true;\n var propsClsName = this.props[\"\" + propkey].split(' ');\n for (var i = 0; i < propsClsName.length; i++) {\n this.element.classList.remove(propsClsName[parseInt(i.toString(), 10)]);\n }\n var dpropsClsName = dProps[\"\" + propkey].split(' ');\n for (var j = 0; j < dpropsClsName.length; j++) {\n this.element.classList.add(dpropsClsName[parseInt(j.toString(), 10)]);\n }\n }\n else if (propkey !== 'disabled' && !this.properties.hasOwnProperty(propkey)) {\n delete dProps[\"\" + propkey];\n }\n }\n else if (propkey === 'value' && nextProps[\"\" + propkey] === this[\"\" + propkey]) {\n delete dProps[\"\" + propkey];\n }\n else if (statelessTemplates.indexOf(propkey) > -1 && ((propkey === 'content' && typeof dProps[\"\" + propkey] === 'function') || (nextProps[\"\" + propkey].toString() === this[\"\" + propkey].toString()))) {\n delete dProps[\"\" + propkey];\n }\n }\n if (dProps['children']) {\n delete dProps['children'];\n }\n // tslint:disable-next-line:no-any\n if (this.initRenderCalled && (this.canDelayUpdate || this.props.delayUpdate)) {\n setTimeout(function () {\n _this.refreshProperties(dProps, nextProps, silent);\n });\n }\n else {\n this.refreshProperties(dProps, nextProps, silent);\n }\n };\n ComponentBase.prototype.refreshProperties = function (dProps, nextProps, silent) {\n var statelessTemplates = !isNullOrUndefined(this.props['statelessTemplates']) ? this.props['statelessTemplates'] : [];\n if (Object.keys(dProps).length) {\n if (!silent) {\n // tslint:disable-next-line:no-any\n this.processComplexTemplate(dProps, this);\n }\n this.setProperties(dProps, silent);\n }\n if (statelessTemplates.indexOf('directiveTemplates') === -1) {\n this.refreshChild(silent, nextProps);\n }\n };\n ComponentBase.prototype.processComplexTemplate = function (curObject, context) {\n var compTemplate = context.complexTemplate;\n if (compTemplate) {\n for (var prop in compTemplate) {\n var PropVal = compTemplate[\"\" + prop];\n if (curObject[\"\" + prop]) {\n setValue(PropVal, getValue(prop, curObject), curObject);\n }\n }\n }\n };\n ComponentBase.prototype.getDefaultAttributes = function () {\n var _this = this;\n this.isReact = true;\n var propKeys = Object.keys(this.props);\n var stringValue = ['autocomplete', 'dropdownlist', 'combobox'];\n // if ((stringValue.indexOf(this.getModuleName()) !== -1) && (!isNullOrUndefined(this.props[\"value\"]))) {\n // this.value = (<{ [key: string]: Object }>this.props)[\"value\"];\n // }\n if (!this.htmlattributes) {\n this.htmlattributes = {};\n }\n this.attrKeys = defaulthtmlkeys.concat(this.controlAttributes || []);\n for (var _i = 0, propKeys_1 = propKeys; _i < propKeys_1.length; _i++) {\n var prop = propKeys_1[_i];\n if (prop.indexOf('data-') !== -1 || prop.indexOf('aria-') !== -1 || this.attrKeys.indexOf(prop) !== -1) {\n if (this.htmlattributes[\"\" + prop] !== this.props[\"\" + prop]) {\n this.htmlattributes[\"\" + prop] = this.props[\"\" + prop];\n }\n }\n }\n if (!this.htmlattributes.ref) {\n /* tslint:disable:no-any */\n this.htmlattributes.ref = function (ele) {\n _this.reactElement = ele;\n };\n var keycompoentns = ['autocomplete', 'combobox', 'dropdownlist', 'dropdowntree', 'multiselect',\n 'listbox', 'colorpicker', 'numerictextbox', 'textbox',\n 'uploader', 'maskedtextbox', 'slider', 'datepicker', 'datetimepicker', 'daterangepicker', 'timepicker', 'checkbox', 'switch', 'radio'];\n if (keycompoentns.indexOf(this.getModuleName()) !== -1) {\n this.htmlattributes.key = '' + ComponentBase.reactUid;\n ComponentBase.reactUid++;\n }\n }\n if (this.clsName) {\n var clsList = this.element.classList;\n var className = this.htmlattributes['className'];\n for (var i = 0; i < clsList.length; i++) {\n if ((className.indexOf(clsList[parseInt(i.toString(), 10)]) === -1)) {\n this.htmlattributes['className'] = this.htmlattributes['className'] + ' ' + clsList[parseInt(i.toString(), 10)];\n }\n }\n this.clsName = false;\n }\n return this.htmlattributes;\n };\n /* tslint:disable:no-any */\n ComponentBase.prototype.trigger = function (eventName, eventProp, successHandler) {\n var _this = this;\n if (this.isDestroyed !== true && this.modelObserver) {\n if (isColEName.test(eventName)) {\n var handler = getValue(eventName, this);\n if (handler) {\n handler.call(this, eventProp);\n if (successHandler) {\n successHandler.call(this, eventProp);\n }\n }\n else if (successHandler) {\n successHandler.call(this, eventProp);\n }\n }\n if ((eventName === 'change' || eventName === 'input')) {\n if (this.props.onChange && eventProp.event) {\n this.props.onChange.call(undefined, {\n syntheticEvent: eventProp.event,\n nativeEvent: { text: eventProp.value },\n value: eventProp.value,\n target: this\n });\n }\n }\n var prevDetection = this.isProtectedOnChange;\n this.isProtectedOnChange = false;\n if (eventName === 'created') {\n setTimeout(function () {\n _this.isCreated = true;\n if (!_this.isDestroyed) {\n _this.modelObserver.notify(eventName, eventProp, successHandler);\n }\n }, 10);\n }\n else {\n this.modelObserver.notify(eventName, eventProp, successHandler);\n }\n this.isProtectedOnChange = prevDetection;\n }\n };\n ComponentBase.prototype.compareValues = function (value1, value2) {\n var typeVal = typeof value1;\n var typeVal2 = typeof value2;\n if (typeVal === typeVal2) {\n if (value1 === value2) {\n return true;\n }\n if ((!isNullOrUndefined(value1) && value1.constructor) !== (!isNullOrUndefined(value2) && value2.constructor)) {\n return false;\n }\n if (value1 instanceof Date ||\n value1 instanceof RegExp ||\n value1 instanceof String ||\n value1 instanceof Number) {\n return value1.toString() === value2.toString();\n }\n if (isObject(value1) || Array.isArray(value1)) {\n var tempVal = value1;\n var tempVal2 = value2;\n if (isObject(tempVal)) {\n tempVal = [value1];\n tempVal2 = [value2];\n }\n return this.compareObjects(tempVal, tempVal2).status;\n }\n if (value1.constructor &&\n value1.constructor.name === value2.constructor.name &&\n (value1.constructor.name === 'Query' ||\n value1.constructor.name === 'DataManager')) {\n if (JSON.stringify(value1) === JSON.stringify(value2)) {\n return true;\n }\n }\n }\n return false;\n };\n ComponentBase.prototype.compareObjects = function (oldProps, newProps, propName) {\n var status = true;\n var lenSimilarity = (oldProps.length === newProps.length);\n var diffArray = [];\n var templateProps = !isNullOrUndefined(this['templateProps']) ? this['templateProps'] : [];\n if (lenSimilarity) {\n for (var i = 0, len = newProps.length; i < len; i++) {\n var curObj = {};\n var oldProp = oldProps[parseInt(i.toString(), 10)];\n var newProp = newProps[parseInt(i.toString(), 10)];\n var keys = Object.keys(newProp);\n if (keys.length !== 0) {\n for (var _i = 0, keys_2 = keys; _i < keys_2.length; _i++) {\n var key = keys_2[_i];\n var oldValue = oldProp[\"\" + key];\n var newValue = newProp[\"\" + key];\n if (key === 'items') {\n for (var _j = 0; _j < newValue.length; _j++) {\n if (this.getModuleName() === 'richtexteditor' && typeof (newValue[parseInt(_j.toString(), 10)]) === 'object') {\n return { status: true };\n }\n }\n }\n if (this.getModuleName() === 'grid' && key === 'field') {\n curObj[\"\" + key] = newValue;\n }\n if (!oldProp.hasOwnProperty(key) || !((templateProps.length > 0 && templateProps.indexOf(\"\" + key) === -1 && typeof (newValue) === 'function') ? this.compareValues(oldValue.toString(), newValue.toString()) : this.compareValues(oldValue, newValue))) {\n if (!propName) {\n return { status: false };\n }\n status = false;\n curObj[\"\" + key] = newValue;\n }\n }\n }\n else if (newProps[parseInt(i.toString(), 10)] === oldProps[parseInt(i.toString(), 10)]) {\n status = true;\n }\n else {\n if (!propName) {\n return { status: false };\n }\n status = false;\n }\n if (this.getModuleName() === 'grid' && propName === 'columns' && isNullOrUndefined(curObj['field'])) {\n curObj['field'] = undefined;\n }\n if (Object.keys(curObj).length) {\n diffArray.push({ index: i, value: curObj, key: propName });\n }\n }\n }\n else {\n status = false;\n }\n return { status: status, changedProperties: diffArray };\n };\n ComponentBase.prototype.refreshChild = function (silent, props) {\n if (this.checkInjectedModules) {\n var prevModule = this.getInjectedModules() || [];\n var curModule = this.getInjectedServices() || [];\n for (var _i = 0, curModule_1 = curModule; _i < curModule_1.length; _i++) {\n var mod = curModule_1[_i];\n if (prevModule.indexOf(mod) === -1) {\n prevModule.push(mod);\n }\n }\n this.injectedModules = prevModule;\n }\n if (this.directivekeys) {\n var changedProps = [];\n var directiveValue = this.validateChildren({}, this.directivekeys, (props || this.props));\n if (directiveValue && Object.keys(directiveValue).length) {\n if (!silent && this.skipRefresh) {\n for (var _a = 0, _b = this.skipRefresh; _a < _b.length; _a++) {\n var fields = _b[_a];\n delete directiveValue[\"\" + fields];\n }\n }\n if (this.prevProperties) {\n var dKeys = Object.keys(this.prevProperties);\n for (var i = 0; i < dKeys.length; i++) {\n var key = dKeys[parseInt(i.toString(), 10)];\n if (!directiveValue.hasOwnProperty(key)) {\n continue;\n }\n var compareOutput = this.compareObjects(this.prevProperties[\"\" + key], directiveValue[\"\" + key], key);\n if (compareOutput.status) {\n delete directiveValue[\"\" + key];\n }\n else {\n if (compareOutput.changedProperties.length) {\n changedProps = changedProps.concat(compareOutput.changedProperties);\n }\n var obj = {};\n obj[\"\" + key] = directiveValue[\"\" + key];\n this.prevProperties = extend(this.prevProperties, obj);\n }\n }\n }\n else {\n this.prevProperties = extend({}, directiveValue, {}, true);\n }\n if (changedProps.length) {\n if (this.getModuleName() === 'grid' && key === 'columns') {\n for (var _c1 = 0, allColumns = this.columns; _c1 < allColumns.length; _c1++) {\n var compareField1 = getValue('field', allColumns[parseInt(_c1.toString(), 10)]);\n var compareField2 = getValue(_c1 + '.value.field', changedProps);\n if (compareField1 === compareField2) {\n var propInstance = getValue(changedProps[parseInt(_c1.toString(), 10)].key + '.' + changedProps[parseInt(_c1.toString(), 10)].index, this);\n if (propInstance && propInstance.setProperties) {\n propInstance.setProperties(changedProps[parseInt(_c1.toString(), 10)].value);\n }\n else {\n extend(propInstance, changedProps[parseInt(_c1.toString(), 10)].value);\n }\n }\n else {\n this.setProperties(directiveValue, silent);\n }\n }\n }\n else {\n for (var _c = 0, changedProps_1 = changedProps; _c < changedProps_1.length; _c++) {\n var changes = changedProps_1[_c];\n var propInstance_1 = getValue(changes.key + '.' + changes.index, this);\n if (propInstance_1 && propInstance_1.setProperties) {\n propInstance_1.setProperties(changes.value);\n }\n else {\n extend(propInstance_1, changes.value);\n }\n }\n }\n }\n else {\n this.setProperties(directiveValue, silent);\n }\n }\n }\n };\n ComponentBase.prototype.componentWillUnmount = function () {\n clearTimeout(this.cachedTimeOut);\n var modulesName = ['dropdowntree', 'checkbox'];\n // tslint:disable-next-line:no-any\n if (this.initRenderCalled && this.isAppendCalled && this.element && ((!modulesName.indexOf(this.getModuleName())) ? document.body.contains(this.element) : true) && !this.isDestroyed && this.isCreated) {\n this.destroy();\n }\n };\n // tslint:disable:no-any\n ComponentBase.prototype.appendReactElement = function (element, container) {\n var portal = ReactDOM.createPortal(element, container);\n if (!this.portals) {\n this.portals = [portal];\n }\n else {\n this.portals.push(portal);\n }\n };\n // tslint:disable:no-any\n ComponentBase.prototype.renderReactTemplates = function (callback) {\n this.isReactForeceUpdate = true;\n if (callback) {\n this.forceUpdate(callback);\n }\n else {\n this.forceUpdate();\n }\n this.isReactForeceUpdate = false;\n };\n // tslint:disable:no-any\n ComponentBase.prototype.clearTemplate = function (templateNames, index, callback) {\n var _this = this;\n var tempPortal = [];\n if (templateNames && templateNames.length) {\n Array.prototype.forEach.call(templateNames, function (propName) {\n var indexCount = 0;\n var propIndexCount = 0;\n _this.portals.forEach(function (portal) {\n if (portal.propName === propName) {\n tempPortal.push(propIndexCount);\n propIndexCount++;\n }\n });\n if (!isNullOrUndefined(index) && _this.portals[index] && _this.portals[index].propName === propName) {\n _this.portals.splice(index, 1);\n indexCount++;\n }\n else {\n for (var i = 0; i < _this.portals.length; i++) {\n if (_this.portals[parseInt(i.toString(), 10)].propName === propName) {\n _this.portals.splice(i, 1);\n i--;\n }\n }\n }\n });\n }\n else {\n this.portals = [];\n }\n this.renderReactTemplates(callback);\n };\n /* tslint:disable:no-any */\n ComponentBase.prototype.validateChildren = function (childCache, mapper, props) {\n var flag = false;\n var childs = React.Children.toArray(props.children);\n for (var _i = 0, childs_1 = childs; _i < childs_1.length; _i++) {\n var child = childs_1[_i];\n var ifield = this.getChildType(child);\n var key = mapper[\"\" + ifield];\n if (ifield && mapper) {\n // tslint:disable\n var childProps = this.getChildProps(React.Children.toArray(child.props.children), key);\n if (childProps.length) {\n flag = true;\n // tslint:disable\n childCache[child.type.propertyName || ifield] = childProps;\n }\n }\n }\n if (flag) {\n return childCache;\n }\n return null;\n };\n // tslint:disable:no-any\n ComponentBase.prototype.getChildType = function (child) {\n if (child.type && child.type.isDirective) {\n return child.type.moduleName || '';\n }\n return '';\n };\n ComponentBase.prototype.getChildProps = function (subChild, matcher) {\n var ret = [];\n for (var _i = 0, subChild_1 = subChild; _i < subChild_1.length; _i++) {\n var child = subChild_1[_i];\n var accessProp = false;\n var key = void 0;\n if (typeof matcher === 'string') {\n accessProp = true;\n key = matcher;\n }\n else {\n key = Object.keys(matcher)[0];\n }\n var prop = child.props;\n // tslint:disable-next-line:no-any\n var field = this.getChildType(child);\n if (field === key) {\n if (accessProp || !prop.children) {\n // tslint:disable\n var cacheVal = extend({}, prop, {}, true);\n // tslint:disable\n this.processComplexTemplate(cacheVal, child.type);\n ret.push(cacheVal);\n }\n else {\n var cachedValue = this.validateChildren(extend({}, prop), matcher[\"\" + key], prop) || prop;\n if (cachedValue['children']) {\n delete cachedValue['children'];\n }\n // tslint:disable\n this.processComplexTemplate(cachedValue, child.type);\n ret.push(cachedValue);\n }\n }\n }\n return ret;\n };\n // tslint:disable:no-any\n ComponentBase.prototype.getInjectedServices = function () {\n var childs = React.Children.toArray(this.props.children);\n for (var _i = 0, childs_2 = childs; _i < childs_2.length; _i++) {\n var child = childs_2[_i];\n /* tslint:disable:no-any */\n if (child.type.isService) {\n return child.props.services;\n }\n }\n return [];\n };\n /**\n * @private\n */\n ComponentBase.reactUid = 1;\n return ComponentBase;\n}(React.Component));\nexport { ComponentBase };\n/* tslint:enable:no-any */\n","// eslint-disable-next-line\nexport function applyMixins(derivedClass, baseClass) {\n // tslint:disable:typedef\n baseClass.forEach(function (baseClass) {\n Object.getOwnPropertyNames(baseClass.prototype).forEach(function (name) {\n if (name !== 'isMounted' && name !== 'replaceState') {\n derivedClass.prototype[\"\" + name] = baseClass.prototype[\"\" + name];\n }\n });\n });\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\n/**\n * Directory base\n */\nvar ComplexBase = /** @class */ (function (_super) {\n __extends(ComplexBase, _super);\n function ComplexBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ComplexBase.prototype.render = function () {\n return null;\n };\n ComplexBase.isDirective = true;\n return ComplexBase;\n}(React.PureComponent));\nexport { ComplexBase };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * Dependency injection\n */\nimport * as React from 'react';\nvar Inject = /** @class */ (function (_super) {\n __extends(Inject, _super);\n function Inject() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n // eslint-disable-next-line\n Inject.prototype.render = function () {\n return null;\n };\n Inject.isService = true;\n return Inject;\n}(React.PureComponent));\nexport { Inject };\n","/**\n * Template compiler for react\n */\nimport { setTemplateEngine, getTemplateEngine, extend } from '@syncfusion/ej2-base';\nimport * as ReactDOM from 'react-dom';\nimport * as React from 'react';\n/* eslint-disable @typescript-eslint/no-explicit-any */\nvar stringCompiler = getTemplateEngine();\n// eslint-disable-next-line\nexport function compile(templateElement, helper) {\n if (typeof templateElement === 'string') {\n return stringCompiler(templateElement, helper);\n }\n else {\n return function (data, component, prop, element) {\n var actTemplate = templateElement;\n var actData = data;\n if (typeof actTemplate === 'object') {\n actTemplate = templateElement.template;\n actData = extend({}, data, templateElement.data || {});\n }\n var cEle;\n if (element) {\n cEle = element;\n }\n else {\n cEle = document.createElement('div');\n }\n var rele = React.createElement(actTemplate, actData);\n var portal = ReactDOM.createPortal(rele, cEle);\n portal.propName = prop;\n if (!component.portals) {\n component.portals = [portal];\n }\n else {\n component.portals.push(portal);\n }\n if (!element) {\n return [cEle];\n }\n };\n }\n}\nsetTemplateEngine({ compile: compile });\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { Skeleton } from '@syncfusion/ej2-notifications';\nimport { ComponentBase, applyMixins } from '@syncfusion/ej2-react-base';\n/**\n * Represents the React Skeleton component\n * ```html\n * \n * ```\n */\nvar SkeletonComponent = /** @class */ (function (_super) {\n __extends(SkeletonComponent, _super);\n function SkeletonComponent(props) {\n var _this = _super.call(this, props) || this;\n _this.initRenderCalled = false;\n _this.checkInjectedModules = false;\n _this.statelessTemplateProps = null;\n _this.templateProps = null;\n _this.immediateRender = true;\n _this.portals = [];\n return _this;\n }\n SkeletonComponent.prototype.render = function () {\n if (((this.element && !this.initRenderCalled) || this.refreshing) && !this.isReactForeceUpdate) {\n _super.prototype.render.call(this);\n this.initRenderCalled = true;\n }\n else {\n return React.createElement('div', this.getDefaultAttributes(), [].concat(this.props.children, this.portals));\n }\n };\n return SkeletonComponent;\n}(Skeleton));\nexport { SkeletonComponent };\napplyMixins(SkeletonComponent, [ComponentBase, React.Component]);\n","import { jsx as _jsx } from \"react/jsx-runtime\";\n/**Primary Container for field error display*/\nexport var FormFieldErrorContainer = function (_a) {\n var errorMessages = _a.errorMessages;\n return (_jsx(\"div\", { children: errorMessages.map(function (errorMessage, idx) { return (_jsx(\"p\", { className: \"error-message\", children: errorMessage }, idx)); }) }));\n};\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n};\n","import { dotCase, Options } from \"dot-case\";\n\nexport { Options };\n\nexport function snakeCase(input: string, options: Options = {}) {\n return dotCase(input, {\n delimiter: \"_\",\n ...options,\n });\n}\n","import { noCase, Options } from \"no-case\";\n\nexport { Options };\n\nexport function dotCase(input: string, options: Options = {}) {\n return noCase(input, {\n delimiter: \".\",\n ...options,\n });\n}\n","export type BlueprintIcons_16Id =\n | \"add-clip\"\n | \"add-column-left\"\n | \"add-column-right\"\n | \"add-location\"\n | \"add-row-bottom\"\n | \"add-row-top\"\n | \"add-to-artifact\"\n | \"add-to-folder\"\n | \"add\"\n | \"aimpoints-target\"\n | \"airplane\"\n | \"align-center\"\n | \"align-justify\"\n | \"align-left\"\n | \"align-right\"\n | \"alignment-bottom\"\n | \"alignment-horizontal-center\"\n | \"alignment-left\"\n | \"alignment-right\"\n | \"alignment-top\"\n | \"alignment-vertical-center\"\n | \"ammunition\"\n | \"anchor\"\n | \"annotation\"\n | \"antenna\"\n | \"app-header\"\n | \"application\"\n | \"applications\"\n | \"archive\"\n | \"area-of-interest\"\n | \"array-boolean\"\n | \"array-date\"\n | \"array-floating-point\"\n | \"array-numeric\"\n | \"array-string\"\n | \"array-timestamp\"\n | \"array\"\n | \"arrow-bottom-left\"\n | \"arrow-bottom-right\"\n | \"arrow-down\"\n | \"arrow-left\"\n | \"arrow-right\"\n | \"arrow-top-left\"\n | \"arrow-top-right\"\n | \"arrow-up\"\n | \"arrows-horizontal\"\n | \"arrows-vertical\"\n | \"asterisk\"\n | \"at\"\n | \"automatic-updates\"\n | \"axle\"\n | \"backlink\"\n | \"badge\"\n | \"ban-circle\"\n | \"bank-account\"\n | \"barcode\"\n | \"blank\"\n | \"blocked-person\"\n | \"bold\"\n | \"book\"\n | \"bookmark\"\n | \"box\"\n | \"briefcase\"\n | \"bring-data\"\n | \"bug\"\n | \"buggy\"\n | \"build\"\n | \"calculator\"\n | \"calendar\"\n | \"camera\"\n | \"caret-down\"\n | \"caret-left\"\n | \"caret-right\"\n | \"caret-up\"\n | \"cargo-ship\"\n | \"cell-tower\"\n | \"changes\"\n | \"chart\"\n | \"chat\"\n | \"chevron-backward\"\n | \"chevron-down\"\n | \"chevron-forward\"\n | \"chevron-left\"\n | \"chevron-right\"\n | \"chevron-up\"\n | \"circle-arrow-down\"\n | \"circle-arrow-left\"\n | \"circle-arrow-right\"\n | \"circle-arrow-up\"\n | \"circle\"\n | \"citation\"\n | \"clean\"\n | \"clip\"\n | \"clipboard\"\n | \"cloud-download\"\n | \"cloud-upload\"\n | \"cloud\"\n | \"code-block\"\n | \"code\"\n | \"cog\"\n | \"collapse-all\"\n | \"color-fill\"\n | \"column-layout\"\n | \"comment\"\n | \"comparison\"\n | \"compass\"\n | \"compressed\"\n | \"confirm\"\n | \"console\"\n | \"contrast\"\n | \"control\"\n | \"credit-card\"\n | \"cross-circle\"\n | \"cross\"\n | \"crown\"\n | \"cube-add\"\n | \"cube-remove\"\n | \"cube\"\n | \"curved-range-chart\"\n | \"cut\"\n | \"cycle\"\n | \"dashboard\"\n | \"data-connection\"\n | \"data-lineage\"\n | \"database\"\n | \"delete\"\n | \"delta\"\n | \"derive-column\"\n | \"desktop\"\n | \"detection\"\n | \"diagnosis\"\n | \"diagram-tree\"\n | \"direction-left\"\n | \"direction-right\"\n | \"disable\"\n | \"divide\"\n | \"document-open\"\n | \"document-share\"\n | \"document\"\n | \"dollar\"\n | \"dot\"\n | \"double-caret-horizontal\"\n | \"double-caret-vertical\"\n | \"double-chevron-down\"\n | \"double-chevron-left\"\n | \"double-chevron-right\"\n | \"double-chevron-up\"\n | \"doughnut-chart\"\n | \"download\"\n | \"drag-handle-horizontal\"\n | \"drag-handle-vertical\"\n | \"draw\"\n | \"drawer-left-filled\"\n | \"drawer-left\"\n | \"drawer-right-filled\"\n | \"drawer-right\"\n | \"drive-time\"\n | \"duplicate\"\n | \"edit\"\n | \"eject\"\n | \"emoji\"\n | \"endorsed\"\n | \"envelope\"\n | \"equals\"\n | \"eraser\"\n | \"error\"\n | \"euro\"\n | \"exchange\"\n | \"exclude-row\"\n | \"expand-all\"\n | \"export\"\n | \"eye-off\"\n | \"eye-on\"\n | \"eye-open\"\n | \"fast-backward\"\n | \"fast-forward\"\n | \"feed-subscribed\"\n | \"feed\"\n | \"film\"\n | \"filter-keep\"\n | \"filter-list\"\n | \"filter-open\"\n | \"filter-remove\"\n | \"filter\"\n | \"flag\"\n | \"flame\"\n | \"flash\"\n | \"floating-point\"\n | \"floppy-disk\"\n | \"flow-branch\"\n | \"flow-end\"\n | \"flow-linear\"\n | \"flow-review-branch\"\n | \"flow-review\"\n | \"flows\"\n | \"folder-close\"\n | \"folder-new\"\n | \"folder-open\"\n | \"folder-shared-open\"\n | \"folder-shared\"\n | \"follower\"\n | \"following\"\n | \"font\"\n | \"fork\"\n | \"form\"\n | \"fuel\"\n | \"full-circle\"\n | \"full-stacked-chart\"\n | \"fullscreen\"\n | \"function\"\n | \"gantt-chart\"\n | \"geofence\"\n | \"geolocation\"\n | \"geosearch\"\n | \"git-branch\"\n | \"git-commit\"\n | \"git-merge\"\n | \"git-new-branch\"\n | \"git-pull\"\n | \"git-push\"\n | \"git-repo\"\n | \"glass\"\n | \"globe-network\"\n | \"globe\"\n | \"graph-remove\"\n | \"graph\"\n | \"greater-than-or-equal-to\"\n | \"greater-than\"\n | \"grid-view\"\n | \"grid\"\n | \"group-objects\"\n | \"grouped-bar-chart\"\n | \"hand-down\"\n | \"hand-left\"\n | \"hand-right\"\n | \"hand-up\"\n | \"hand\"\n | \"hat\"\n | \"header-one\"\n | \"header-three\"\n | \"header-two\"\n | \"header\"\n | \"headset\"\n | \"heart-broken\"\n | \"heart\"\n | \"heat-grid\"\n | \"heatmap\"\n | \"helicopter\"\n | \"help\"\n | \"helper-management\"\n | \"high-priority\"\n | \"high-voltage-pole\"\n | \"highlight\"\n | \"history\"\n | \"home\"\n | \"horizontal-bar-chart-asc\"\n | \"horizontal-bar-chart-desc\"\n | \"horizontal-bar-chart\"\n | \"horizontal-distribution\"\n | \"horizontal-inbetween\"\n | \"hurricane\"\n | \"id-number\"\n | \"image-rotate-left\"\n | \"image-rotate-right\"\n | \"import\"\n | \"inbox-filtered\"\n | \"inbox-geo\"\n | \"inbox-search\"\n | \"inbox-update\"\n | \"inbox\"\n | \"info-sign\"\n | \"inheritance\"\n | \"inherited-group\"\n | \"inner-join\"\n | \"insert\"\n | \"intelligence\"\n | \"intersection\"\n | \"ip-address\"\n | \"issue-closed\"\n | \"issue-new\"\n | \"issue\"\n | \"italic\"\n | \"join-table\"\n | \"key-backspace\"\n | \"key-command\"\n | \"key-control\"\n | \"key-delete\"\n | \"key-enter\"\n | \"key-escape\"\n | \"key-option\"\n | \"key-shift\"\n | \"key-tab\"\n | \"key\"\n | \"known-vehicle\"\n | \"lab-test\"\n | \"label\"\n | \"layer-outline\"\n | \"layer\"\n | \"layers\"\n | \"layout-auto\"\n | \"layout-balloon\"\n | \"layout-circle\"\n | \"layout-grid\"\n | \"layout-group-by\"\n | \"layout-hierarchy\"\n | \"layout-linear\"\n | \"layout-skew-grid\"\n | \"layout-sorted-clusters\"\n | \"layout\"\n | \"learning\"\n | \"left-join\"\n | \"lengthen-text\"\n | \"less-than-or-equal-to\"\n | \"less-than\"\n | \"lifesaver\"\n | \"lightbulb\"\n | \"lightning\"\n | \"link\"\n | \"list-columns\"\n | \"list-detail-view\"\n | \"list\"\n | \"locate\"\n | \"lock\"\n | \"locomotive\"\n | \"log-in\"\n | \"log-out\"\n | \"low-voltage-pole\"\n | \"manual\"\n | \"manually-entered-data\"\n | \"many-to-many\"\n | \"many-to-one\"\n | \"map-create\"\n | \"map-marker\"\n | \"map\"\n | \"maximize\"\n | \"media\"\n | \"menu-closed\"\n | \"menu-open\"\n | \"menu\"\n | \"merge-columns\"\n | \"merge-links\"\n | \"minimize\"\n | \"minus\"\n | \"mobile-phone\"\n | \"mobile-video\"\n | \"modal-filled\"\n | \"modal\"\n | \"model\"\n | \"moon\"\n | \"more\"\n | \"mountain\"\n | \"move\"\n | \"mugshot\"\n | \"multi-select\"\n | \"music\"\n | \"nest\"\n | \"new-drawing\"\n | \"new-grid-item\"\n | \"new-layer\"\n | \"new-layers\"\n | \"new-link\"\n | \"new-object\"\n | \"new-person\"\n | \"new-prescription\"\n | \"new-text-box\"\n | \"ninja\"\n | \"not-equal-to\"\n | \"notifications-snooze\"\n | \"notifications-updated\"\n | \"notifications\"\n | \"numbered-list\"\n | \"numerical\"\n | \"office\"\n | \"offline\"\n | \"oil-field\"\n | \"one-column\"\n | \"one-to-many\"\n | \"one-to-one\"\n | \"open-application\"\n | \"outdated\"\n | \"page-layout\"\n | \"panel-stats\"\n | \"panel-table\"\n | \"paperclip\"\n | \"paragraph\"\n | \"path-search\"\n | \"path\"\n | \"pause\"\n | \"people\"\n | \"percentage\"\n | \"person\"\n | \"phone\"\n | \"pie-chart\"\n | \"pin\"\n | \"pivot-table\"\n | \"pivot\"\n | \"play\"\n | \"playbook\"\n | \"plus\"\n | \"polygon-filter\"\n | \"power\"\n | \"predictive-analysis\"\n | \"prescription\"\n | \"presentation\"\n | \"print\"\n | \"projects\"\n | \"properties\"\n | \"property\"\n | \"publish-function\"\n | \"pulse\"\n | \"rain\"\n | \"random\"\n | \"record\"\n | \"rect-height\"\n | \"rect-width\"\n | \"rectangle\"\n | \"redo\"\n | \"refresh\"\n | \"regex\"\n | \"regression-chart\"\n | \"remove-column-left\"\n | \"remove-column-right\"\n | \"remove-column\"\n | \"remove-row-bottom\"\n | \"remove-row-top\"\n | \"remove\"\n | \"repeat\"\n | \"reset\"\n | \"resolve\"\n | \"rig\"\n | \"right-join\"\n | \"ring\"\n | \"rocket-slant\"\n | \"rocket\"\n | \"rotate-document\"\n | \"rotate-page\"\n | \"route\"\n | \"satellite\"\n | \"saved\"\n | \"scatter-plot\"\n | \"search-around\"\n | \"search-template\"\n | \"search-text\"\n | \"search\"\n | \"segmented-control\"\n | \"select\"\n | \"selection\"\n | \"send-message\"\n | \"send-to-graph\"\n | \"send-to-map\"\n | \"send-to\"\n | \"sensor\"\n | \"series-add\"\n | \"series-configuration\"\n | \"series-derived\"\n | \"series-filtered\"\n | \"series-search\"\n | \"settings\"\n | \"shapes\"\n | \"share\"\n | \"shared-filter\"\n | \"shield\"\n | \"ship\"\n | \"shop\"\n | \"shopping-cart\"\n | \"shorten-text\"\n | \"signal-search\"\n | \"sim-card\"\n | \"slash\"\n | \"small-cross\"\n | \"small-info-sign\"\n | \"small-minus\"\n | \"small-plus\"\n | \"small-square\"\n | \"small-tick\"\n | \"snowflake\"\n | \"social-media\"\n | \"sort-alphabetical-desc\"\n | \"sort-alphabetical\"\n | \"sort-asc\"\n | \"sort-desc\"\n | \"sort-numerical-desc\"\n | \"sort-numerical\"\n | \"sort\"\n | \"spell-check\"\n | \"split-columns\"\n | \"square\"\n | \"stacked-chart\"\n | \"stadium-geometry\"\n | \"star-empty\"\n | \"star\"\n | \"step-backward\"\n | \"step-chart\"\n | \"step-forward\"\n | \"stop\"\n | \"stopwatch\"\n | \"strikethrough\"\n | \"style\"\n | \"subscript\"\n | \"superscript\"\n | \"swap-horizontal\"\n | \"swap-vertical\"\n | \"switch\"\n | \"symbol-circle\"\n | \"symbol-cross\"\n | \"symbol-diamond\"\n | \"symbol-rectangle\"\n | \"symbol-square\"\n | \"symbol-triangle-down\"\n | \"symbol-triangle-up\"\n | \"syringe\"\n | \"tag\"\n | \"take-action\"\n | \"tank\"\n | \"target\"\n | \"taxi\"\n | \"temperature\"\n | \"text-highlight\"\n | \"th-derived\"\n | \"th-disconnect\"\n | \"th-filtered\"\n | \"th-list\"\n | \"th\"\n | \"third-party\"\n | \"thumbs-down\"\n | \"thumbs-up\"\n | \"tick-circle\"\n | \"tick\"\n | \"time\"\n | \"timeline-area-chart\"\n | \"timeline-bar-chart\"\n | \"timeline-events\"\n | \"timeline-line-chart\"\n | \"tint\"\n | \"torch\"\n | \"tractor\"\n | \"train\"\n | \"translate\"\n | \"trash\"\n | \"tree\"\n | \"trending-down\"\n | \"trending-up\"\n | \"truck\"\n | \"two-columns\"\n | \"unarchive\"\n | \"underline\"\n | \"undo\"\n | \"ungroup-objects\"\n | \"unknown-vehicle\"\n | \"unlock\"\n | \"unpin\"\n | \"unresolve\"\n | \"updated\"\n | \"upload\"\n | \"user\"\n | \"variable\"\n | \"vertical-bar-chart-asc\"\n | \"vertical-bar-chart-desc\"\n | \"vertical-distribution\"\n | \"vertical-inbetween\"\n | \"video\"\n | \"virus\"\n | \"volume-down\"\n | \"volume-off\"\n | \"volume-up\"\n | \"walk\"\n | \"warning-sign\"\n | \"waterfall-chart\"\n | \"waves\"\n | \"widget-button\"\n | \"widget-footer\"\n | \"widget-header\"\n | \"widget\"\n | \"wind\"\n | \"wrench\"\n | \"zoom-in\"\n | \"zoom-out\"\n | \"zoom-to-fit\";\n\nexport type BlueprintIcons_16Key =\n | \"AddClip\"\n | \"AddColumnLeft\"\n | \"AddColumnRight\"\n | \"AddLocation\"\n | \"AddRowBottom\"\n | \"AddRowTop\"\n | \"AddToArtifact\"\n | \"AddToFolder\"\n | \"Add\"\n | \"AimpointsTarget\"\n | \"Airplane\"\n | \"AlignCenter\"\n | \"AlignJustify\"\n | \"AlignLeft\"\n | \"AlignRight\"\n | \"AlignmentBottom\"\n | \"AlignmentHorizontalCenter\"\n | \"AlignmentLeft\"\n | \"AlignmentRight\"\n | \"AlignmentTop\"\n | \"AlignmentVerticalCenter\"\n | \"Ammunition\"\n | \"Anchor\"\n | \"Annotation\"\n | \"Antenna\"\n | \"AppHeader\"\n | \"Application\"\n | \"Applications\"\n | \"Archive\"\n | \"AreaOfInterest\"\n | \"ArrayBoolean\"\n | \"ArrayDate\"\n | \"ArrayFloatingPoint\"\n | \"ArrayNumeric\"\n | \"ArrayString\"\n | \"ArrayTimestamp\"\n | \"Array\"\n | \"ArrowBottomLeft\"\n | \"ArrowBottomRight\"\n | \"ArrowDown\"\n | \"ArrowLeft\"\n | \"ArrowRight\"\n | \"ArrowTopLeft\"\n | \"ArrowTopRight\"\n | \"ArrowUp\"\n | \"ArrowsHorizontal\"\n | \"ArrowsVertical\"\n | \"Asterisk\"\n | \"At\"\n | \"AutomaticUpdates\"\n | \"Axle\"\n | \"Backlink\"\n | \"Badge\"\n | \"BanCircle\"\n | \"BankAccount\"\n | \"Barcode\"\n | \"Blank\"\n | \"BlockedPerson\"\n | \"Bold\"\n | \"Book\"\n | \"Bookmark\"\n | \"Box\"\n | \"Briefcase\"\n | \"BringData\"\n | \"Bug\"\n | \"Buggy\"\n | \"Build\"\n | \"Calculator\"\n | \"Calendar\"\n | \"Camera\"\n | \"CaretDown\"\n | \"CaretLeft\"\n | \"CaretRight\"\n | \"CaretUp\"\n | \"CargoShip\"\n | \"CellTower\"\n | \"Changes\"\n | \"Chart\"\n | \"Chat\"\n | \"ChevronBackward\"\n | \"ChevronDown\"\n | \"ChevronForward\"\n | \"ChevronLeft\"\n | \"ChevronRight\"\n | \"ChevronUp\"\n | \"CircleArrowDown\"\n | \"CircleArrowLeft\"\n | \"CircleArrowRight\"\n | \"CircleArrowUp\"\n | \"Circle\"\n | \"Citation\"\n | \"Clean\"\n | \"Clip\"\n | \"Clipboard\"\n | \"CloudDownload\"\n | \"CloudUpload\"\n | \"Cloud\"\n | \"CodeBlock\"\n | \"Code\"\n | \"Cog\"\n | \"CollapseAll\"\n | \"ColorFill\"\n | \"ColumnLayout\"\n | \"Comment\"\n | \"Comparison\"\n | \"Compass\"\n | \"Compressed\"\n | \"Confirm\"\n | \"Console\"\n | \"Contrast\"\n | \"Control\"\n | \"CreditCard\"\n | \"CrossCircle\"\n | \"Cross\"\n | \"Crown\"\n | \"CubeAdd\"\n | \"CubeRemove\"\n | \"Cube\"\n | \"CurvedRangeChart\"\n | \"Cut\"\n | \"Cycle\"\n | \"Dashboard\"\n | \"DataConnection\"\n | \"DataLineage\"\n | \"Database\"\n | \"Delete\"\n | \"Delta\"\n | \"DeriveColumn\"\n | \"Desktop\"\n | \"Detection\"\n | \"Diagnosis\"\n | \"DiagramTree\"\n | \"DirectionLeft\"\n | \"DirectionRight\"\n | \"Disable\"\n | \"Divide\"\n | \"DocumentOpen\"\n | \"DocumentShare\"\n | \"Document\"\n | \"Dollar\"\n | \"Dot\"\n | \"DoubleCaretHorizontal\"\n | \"DoubleCaretVertical\"\n | \"DoubleChevronDown\"\n | \"DoubleChevronLeft\"\n | \"DoubleChevronRight\"\n | \"DoubleChevronUp\"\n | \"DoughnutChart\"\n | \"Download\"\n | \"DragHandleHorizontal\"\n | \"DragHandleVertical\"\n | \"Draw\"\n | \"DrawerLeftFilled\"\n | \"DrawerLeft\"\n | \"DrawerRightFilled\"\n | \"DrawerRight\"\n | \"DriveTime\"\n | \"Duplicate\"\n | \"Edit\"\n | \"Eject\"\n | \"Emoji\"\n | \"Endorsed\"\n | \"Envelope\"\n | \"Equals\"\n | \"Eraser\"\n | \"Error\"\n | \"Euro\"\n | \"Exchange\"\n | \"ExcludeRow\"\n | \"ExpandAll\"\n | \"Export\"\n | \"EyeOff\"\n | \"EyeOn\"\n | \"EyeOpen\"\n | \"FastBackward\"\n | \"FastForward\"\n | \"FeedSubscribed\"\n | \"Feed\"\n | \"Film\"\n | \"FilterKeep\"\n | \"FilterList\"\n | \"FilterOpen\"\n | \"FilterRemove\"\n | \"Filter\"\n | \"Flag\"\n | \"Flame\"\n | \"Flash\"\n | \"FloatingPoint\"\n | \"FloppyDisk\"\n | \"FlowBranch\"\n | \"FlowEnd\"\n | \"FlowLinear\"\n | \"FlowReviewBranch\"\n | \"FlowReview\"\n | \"Flows\"\n | \"FolderClose\"\n | \"FolderNew\"\n | \"FolderOpen\"\n | \"FolderSharedOpen\"\n | \"FolderShared\"\n | \"Follower\"\n | \"Following\"\n | \"Font\"\n | \"Fork\"\n | \"Form\"\n | \"Fuel\"\n | \"FullCircle\"\n | \"FullStackedChart\"\n | \"Fullscreen\"\n | \"Function\"\n | \"GanttChart\"\n | \"Geofence\"\n | \"Geolocation\"\n | \"Geosearch\"\n | \"GitBranch\"\n | \"GitCommit\"\n | \"GitMerge\"\n | \"GitNewBranch\"\n | \"GitPull\"\n | \"GitPush\"\n | \"GitRepo\"\n | \"Glass\"\n | \"GlobeNetwork\"\n | \"Globe\"\n | \"GraphRemove\"\n | \"Graph\"\n | \"GreaterThanOrEqualTo\"\n | \"GreaterThan\"\n | \"GridView\"\n | \"Grid\"\n | \"GroupObjects\"\n | \"GroupedBarChart\"\n | \"HandDown\"\n | \"HandLeft\"\n | \"HandRight\"\n | \"HandUp\"\n | \"Hand\"\n | \"Hat\"\n | \"HeaderOne\"\n | \"HeaderThree\"\n | \"HeaderTwo\"\n | \"Header\"\n | \"Headset\"\n | \"HeartBroken\"\n | \"Heart\"\n | \"HeatGrid\"\n | \"Heatmap\"\n | \"Helicopter\"\n | \"Help\"\n | \"HelperManagement\"\n | \"HighPriority\"\n | \"HighVoltagePole\"\n | \"Highlight\"\n | \"History\"\n | \"Home\"\n | \"HorizontalBarChartAsc\"\n | \"HorizontalBarChartDesc\"\n | \"HorizontalBarChart\"\n | \"HorizontalDistribution\"\n | \"HorizontalInbetween\"\n | \"Hurricane\"\n | \"IdNumber\"\n | \"ImageRotateLeft\"\n | \"ImageRotateRight\"\n | \"Import\"\n | \"InboxFiltered\"\n | \"InboxGeo\"\n | \"InboxSearch\"\n | \"InboxUpdate\"\n | \"Inbox\"\n | \"InfoSign\"\n | \"Inheritance\"\n | \"InheritedGroup\"\n | \"InnerJoin\"\n | \"Insert\"\n | \"Intelligence\"\n | \"Intersection\"\n | \"IpAddress\"\n | \"IssueClosed\"\n | \"IssueNew\"\n | \"Issue\"\n | \"Italic\"\n | \"JoinTable\"\n | \"KeyBackspace\"\n | \"KeyCommand\"\n | \"KeyControl\"\n | \"KeyDelete\"\n | \"KeyEnter\"\n | \"KeyEscape\"\n | \"KeyOption\"\n | \"KeyShift\"\n | \"KeyTab\"\n | \"Key\"\n | \"KnownVehicle\"\n | \"LabTest\"\n | \"Label\"\n | \"LayerOutline\"\n | \"Layer\"\n | \"Layers\"\n | \"LayoutAuto\"\n | \"LayoutBalloon\"\n | \"LayoutCircle\"\n | \"LayoutGrid\"\n | \"LayoutGroupBy\"\n | \"LayoutHierarchy\"\n | \"LayoutLinear\"\n | \"LayoutSkewGrid\"\n | \"LayoutSortedClusters\"\n | \"Layout\"\n | \"Learning\"\n | \"LeftJoin\"\n | \"LengthenText\"\n | \"LessThanOrEqualTo\"\n | \"LessThan\"\n | \"Lifesaver\"\n | \"Lightbulb\"\n | \"Lightning\"\n | \"Link\"\n | \"ListColumns\"\n | \"ListDetailView\"\n | \"List\"\n | \"Locate\"\n | \"Lock\"\n | \"Locomotive\"\n | \"LogIn\"\n | \"LogOut\"\n | \"LowVoltagePole\"\n | \"Manual\"\n | \"ManuallyEnteredData\"\n | \"ManyToMany\"\n | \"ManyToOne\"\n | \"MapCreate\"\n | \"MapMarker\"\n | \"Map\"\n | \"Maximize\"\n | \"Media\"\n | \"MenuClosed\"\n | \"MenuOpen\"\n | \"Menu\"\n | \"MergeColumns\"\n | \"MergeLinks\"\n | \"Minimize\"\n | \"Minus\"\n | \"MobilePhone\"\n | \"MobileVideo\"\n | \"ModalFilled\"\n | \"Modal\"\n | \"Model\"\n | \"Moon\"\n | \"More\"\n | \"Mountain\"\n | \"Move\"\n | \"Mugshot\"\n | \"MultiSelect\"\n | \"Music\"\n | \"Nest\"\n | \"NewDrawing\"\n | \"NewGridItem\"\n | \"NewLayer\"\n | \"NewLayers\"\n | \"NewLink\"\n | \"NewObject\"\n | \"NewPerson\"\n | \"NewPrescription\"\n | \"NewTextBox\"\n | \"Ninja\"\n | \"NotEqualTo\"\n | \"NotificationsSnooze\"\n | \"NotificationsUpdated\"\n | \"Notifications\"\n | \"NumberedList\"\n | \"Numerical\"\n | \"Office\"\n | \"Offline\"\n | \"OilField\"\n | \"OneColumn\"\n | \"OneToMany\"\n | \"OneToOne\"\n | \"OpenApplication\"\n | \"Outdated\"\n | \"PageLayout\"\n | \"PanelStats\"\n | \"PanelTable\"\n | \"Paperclip\"\n | \"Paragraph\"\n | \"PathSearch\"\n | \"Path\"\n | \"Pause\"\n | \"People\"\n | \"Percentage\"\n | \"Person\"\n | \"Phone\"\n | \"PieChart\"\n | \"Pin\"\n | \"PivotTable\"\n | \"Pivot\"\n | \"Play\"\n | \"Playbook\"\n | \"Plus\"\n | \"PolygonFilter\"\n | \"Power\"\n | \"PredictiveAnalysis\"\n | \"Prescription\"\n | \"Presentation\"\n | \"Print\"\n | \"Projects\"\n | \"Properties\"\n | \"Property\"\n | \"PublishFunction\"\n | \"Pulse\"\n | \"Rain\"\n | \"Random\"\n | \"Record\"\n | \"RectHeight\"\n | \"RectWidth\"\n | \"Rectangle\"\n | \"Redo\"\n | \"Refresh\"\n | \"Regex\"\n | \"RegressionChart\"\n | \"RemoveColumnLeft\"\n | \"RemoveColumnRight\"\n | \"RemoveColumn\"\n | \"RemoveRowBottom\"\n | \"RemoveRowTop\"\n | \"Remove\"\n | \"Repeat\"\n | \"Reset\"\n | \"Resolve\"\n | \"Rig\"\n | \"RightJoin\"\n | \"Ring\"\n | \"RocketSlant\"\n | \"Rocket\"\n | \"RotateDocument\"\n | \"RotatePage\"\n | \"Route\"\n | \"Satellite\"\n | \"Saved\"\n | \"ScatterPlot\"\n | \"SearchAround\"\n | \"SearchTemplate\"\n | \"SearchText\"\n | \"Search\"\n | \"SegmentedControl\"\n | \"Select\"\n | \"Selection\"\n | \"SendMessage\"\n | \"SendToGraph\"\n | \"SendToMap\"\n | \"SendTo\"\n | \"Sensor\"\n | \"SeriesAdd\"\n | \"SeriesConfiguration\"\n | \"SeriesDerived\"\n | \"SeriesFiltered\"\n | \"SeriesSearch\"\n | \"Settings\"\n | \"Shapes\"\n | \"Share\"\n | \"SharedFilter\"\n | \"Shield\"\n | \"Ship\"\n | \"Shop\"\n | \"ShoppingCart\"\n | \"ShortenText\"\n | \"SignalSearch\"\n | \"SimCard\"\n | \"Slash\"\n | \"SmallCross\"\n | \"SmallInfoSign\"\n | \"SmallMinus\"\n | \"SmallPlus\"\n | \"SmallSquare\"\n | \"SmallTick\"\n | \"Snowflake\"\n | \"SocialMedia\"\n | \"SortAlphabeticalDesc\"\n | \"SortAlphabetical\"\n | \"SortAsc\"\n | \"SortDesc\"\n | \"SortNumericalDesc\"\n | \"SortNumerical\"\n | \"Sort\"\n | \"SpellCheck\"\n | \"SplitColumns\"\n | \"Square\"\n | \"StackedChart\"\n | \"StadiumGeometry\"\n | \"StarEmpty\"\n | \"Star\"\n | \"StepBackward\"\n | \"StepChart\"\n | \"StepForward\"\n | \"Stop\"\n | \"Stopwatch\"\n | \"Strikethrough\"\n | \"Style\"\n | \"Subscript\"\n | \"Superscript\"\n | \"SwapHorizontal\"\n | \"SwapVertical\"\n | \"Switch\"\n | \"SymbolCircle\"\n | \"SymbolCross\"\n | \"SymbolDiamond\"\n | \"SymbolRectangle\"\n | \"SymbolSquare\"\n | \"SymbolTriangleDown\"\n | \"SymbolTriangleUp\"\n | \"Syringe\"\n | \"Tag\"\n | \"TakeAction\"\n | \"Tank\"\n | \"Target\"\n | \"Taxi\"\n | \"Temperature\"\n | \"TextHighlight\"\n | \"ThDerived\"\n | \"ThDisconnect\"\n | \"ThFiltered\"\n | \"ThList\"\n | \"Th\"\n | \"ThirdParty\"\n | \"ThumbsDown\"\n | \"ThumbsUp\"\n | \"TickCircle\"\n | \"Tick\"\n | \"Time\"\n | \"TimelineAreaChart\"\n | \"TimelineBarChart\"\n | \"TimelineEvents\"\n | \"TimelineLineChart\"\n | \"Tint\"\n | \"Torch\"\n | \"Tractor\"\n | \"Train\"\n | \"Translate\"\n | \"Trash\"\n | \"Tree\"\n | \"TrendingDown\"\n | \"TrendingUp\"\n | \"Truck\"\n | \"TwoColumns\"\n | \"Unarchive\"\n | \"Underline\"\n | \"Undo\"\n | \"UngroupObjects\"\n | \"UnknownVehicle\"\n | \"Unlock\"\n | \"Unpin\"\n | \"Unresolve\"\n | \"Updated\"\n | \"Upload\"\n | \"User\"\n | \"Variable\"\n | \"VerticalBarChartAsc\"\n | \"VerticalBarChartDesc\"\n | \"VerticalDistribution\"\n | \"VerticalInbetween\"\n | \"Video\"\n | \"Virus\"\n | \"VolumeDown\"\n | \"VolumeOff\"\n | \"VolumeUp\"\n | \"Walk\"\n | \"WarningSign\"\n | \"WaterfallChart\"\n | \"Waves\"\n | \"WidgetButton\"\n | \"WidgetFooter\"\n | \"WidgetHeader\"\n | \"Widget\"\n | \"Wind\"\n | \"Wrench\"\n | \"ZoomIn\"\n | \"ZoomOut\"\n | \"ZoomToFit\";\n\nexport enum BlueprintIcons_16 {\n AddClip = \"add-clip\",\n AddColumnLeft = \"add-column-left\",\n AddColumnRight = \"add-column-right\",\n AddLocation = \"add-location\",\n AddRowBottom = \"add-row-bottom\",\n AddRowTop = \"add-row-top\",\n AddToArtifact = \"add-to-artifact\",\n AddToFolder = \"add-to-folder\",\n Add = \"add\",\n AimpointsTarget = \"aimpoints-target\",\n Airplane = \"airplane\",\n AlignCenter = \"align-center\",\n AlignJustify = \"align-justify\",\n AlignLeft = \"align-left\",\n AlignRight = \"align-right\",\n AlignmentBottom = \"alignment-bottom\",\n AlignmentHorizontalCenter = \"alignment-horizontal-center\",\n AlignmentLeft = \"alignment-left\",\n AlignmentRight = \"alignment-right\",\n AlignmentTop = \"alignment-top\",\n AlignmentVerticalCenter = \"alignment-vertical-center\",\n Ammunition = \"ammunition\",\n Anchor = \"anchor\",\n Annotation = \"annotation\",\n Antenna = \"antenna\",\n AppHeader = \"app-header\",\n Application = \"application\",\n Applications = \"applications\",\n Archive = \"archive\",\n AreaOfInterest = \"area-of-interest\",\n ArrayBoolean = \"array-boolean\",\n ArrayDate = \"array-date\",\n ArrayFloatingPoint = \"array-floating-point\",\n ArrayNumeric = \"array-numeric\",\n ArrayString = \"array-string\",\n ArrayTimestamp = \"array-timestamp\",\n Array = \"array\",\n ArrowBottomLeft = \"arrow-bottom-left\",\n ArrowBottomRight = \"arrow-bottom-right\",\n ArrowDown = \"arrow-down\",\n ArrowLeft = \"arrow-left\",\n ArrowRight = \"arrow-right\",\n ArrowTopLeft = \"arrow-top-left\",\n ArrowTopRight = \"arrow-top-right\",\n ArrowUp = \"arrow-up\",\n ArrowsHorizontal = \"arrows-horizontal\",\n ArrowsVertical = \"arrows-vertical\",\n Asterisk = \"asterisk\",\n At = \"at\",\n AutomaticUpdates = \"automatic-updates\",\n Axle = \"axle\",\n Backlink = \"backlink\",\n Badge = \"badge\",\n BanCircle = \"ban-circle\",\n BankAccount = \"bank-account\",\n Barcode = \"barcode\",\n Blank = \"blank\",\n BlockedPerson = \"blocked-person\",\n Bold = \"bold\",\n Book = \"book\",\n Bookmark = \"bookmark\",\n Box = \"box\",\n Briefcase = \"briefcase\",\n BringData = \"bring-data\",\n Bug = \"bug\",\n Buggy = \"buggy\",\n Build = \"build\",\n Calculator = \"calculator\",\n Calendar = \"calendar\",\n Camera = \"camera\",\n CaretDown = \"caret-down\",\n CaretLeft = \"caret-left\",\n CaretRight = \"caret-right\",\n CaretUp = \"caret-up\",\n CargoShip = \"cargo-ship\",\n CellTower = \"cell-tower\",\n Changes = \"changes\",\n Chart = \"chart\",\n Chat = \"chat\",\n ChevronBackward = \"chevron-backward\",\n ChevronDown = \"chevron-down\",\n ChevronForward = \"chevron-forward\",\n ChevronLeft = \"chevron-left\",\n ChevronRight = \"chevron-right\",\n ChevronUp = \"chevron-up\",\n CircleArrowDown = \"circle-arrow-down\",\n CircleArrowLeft = \"circle-arrow-left\",\n CircleArrowRight = \"circle-arrow-right\",\n CircleArrowUp = \"circle-arrow-up\",\n Circle = \"circle\",\n Citation = \"citation\",\n Clean = \"clean\",\n Clip = \"clip\",\n Clipboard = \"clipboard\",\n CloudDownload = \"cloud-download\",\n CloudUpload = \"cloud-upload\",\n Cloud = \"cloud\",\n CodeBlock = \"code-block\",\n Code = \"code\",\n Cog = \"cog\",\n CollapseAll = \"collapse-all\",\n ColorFill = \"color-fill\",\n ColumnLayout = \"column-layout\",\n Comment = \"comment\",\n Comparison = \"comparison\",\n Compass = \"compass\",\n Compressed = \"compressed\",\n Confirm = \"confirm\",\n Console = \"console\",\n Contrast = \"contrast\",\n Control = \"control\",\n CreditCard = \"credit-card\",\n CrossCircle = \"cross-circle\",\n Cross = \"cross\",\n Crown = \"crown\",\n CubeAdd = \"cube-add\",\n CubeRemove = \"cube-remove\",\n Cube = \"cube\",\n CurvedRangeChart = \"curved-range-chart\",\n Cut = \"cut\",\n Cycle = \"cycle\",\n Dashboard = \"dashboard\",\n DataConnection = \"data-connection\",\n DataLineage = \"data-lineage\",\n Database = \"database\",\n Delete = \"delete\",\n Delta = \"delta\",\n DeriveColumn = \"derive-column\",\n Desktop = \"desktop\",\n Detection = \"detection\",\n Diagnosis = \"diagnosis\",\n DiagramTree = \"diagram-tree\",\n DirectionLeft = \"direction-left\",\n DirectionRight = \"direction-right\",\n Disable = \"disable\",\n Divide = \"divide\",\n DocumentOpen = \"document-open\",\n DocumentShare = \"document-share\",\n Document = \"document\",\n Dollar = \"dollar\",\n Dot = \"dot\",\n DoubleCaretHorizontal = \"double-caret-horizontal\",\n DoubleCaretVertical = \"double-caret-vertical\",\n DoubleChevronDown = \"double-chevron-down\",\n DoubleChevronLeft = \"double-chevron-left\",\n DoubleChevronRight = \"double-chevron-right\",\n DoubleChevronUp = \"double-chevron-up\",\n DoughnutChart = \"doughnut-chart\",\n Download = \"download\",\n DragHandleHorizontal = \"drag-handle-horizontal\",\n DragHandleVertical = \"drag-handle-vertical\",\n Draw = \"draw\",\n DrawerLeftFilled = \"drawer-left-filled\",\n DrawerLeft = \"drawer-left\",\n DrawerRightFilled = \"drawer-right-filled\",\n DrawerRight = \"drawer-right\",\n DriveTime = \"drive-time\",\n Duplicate = \"duplicate\",\n Edit = \"edit\",\n Eject = \"eject\",\n Emoji = \"emoji\",\n Endorsed = \"endorsed\",\n Envelope = \"envelope\",\n Equals = \"equals\",\n Eraser = \"eraser\",\n Error = \"error\",\n Euro = \"euro\",\n Exchange = \"exchange\",\n ExcludeRow = \"exclude-row\",\n ExpandAll = \"expand-all\",\n Export = \"export\",\n EyeOff = \"eye-off\",\n EyeOn = \"eye-on\",\n EyeOpen = \"eye-open\",\n FastBackward = \"fast-backward\",\n FastForward = \"fast-forward\",\n FeedSubscribed = \"feed-subscribed\",\n Feed = \"feed\",\n Film = \"film\",\n FilterKeep = \"filter-keep\",\n FilterList = \"filter-list\",\n FilterOpen = \"filter-open\",\n FilterRemove = \"filter-remove\",\n Filter = \"filter\",\n Flag = \"flag\",\n Flame = \"flame\",\n Flash = \"flash\",\n FloatingPoint = \"floating-point\",\n FloppyDisk = \"floppy-disk\",\n FlowBranch = \"flow-branch\",\n FlowEnd = \"flow-end\",\n FlowLinear = \"flow-linear\",\n FlowReviewBranch = \"flow-review-branch\",\n FlowReview = \"flow-review\",\n Flows = \"flows\",\n FolderClose = \"folder-close\",\n FolderNew = \"folder-new\",\n FolderOpen = \"folder-open\",\n FolderSharedOpen = \"folder-shared-open\",\n FolderShared = \"folder-shared\",\n Follower = \"follower\",\n Following = \"following\",\n Font = \"font\",\n Fork = \"fork\",\n Form = \"form\",\n Fuel = \"fuel\",\n FullCircle = \"full-circle\",\n FullStackedChart = \"full-stacked-chart\",\n Fullscreen = \"fullscreen\",\n Function = \"function\",\n GanttChart = \"gantt-chart\",\n Geofence = \"geofence\",\n Geolocation = \"geolocation\",\n Geosearch = \"geosearch\",\n GitBranch = \"git-branch\",\n GitCommit = \"git-commit\",\n GitMerge = \"git-merge\",\n GitNewBranch = \"git-new-branch\",\n GitPull = \"git-pull\",\n GitPush = \"git-push\",\n GitRepo = \"git-repo\",\n Glass = \"glass\",\n GlobeNetwork = \"globe-network\",\n Globe = \"globe\",\n GraphRemove = \"graph-remove\",\n Graph = \"graph\",\n GreaterThanOrEqualTo = \"greater-than-or-equal-to\",\n GreaterThan = \"greater-than\",\n GridView = \"grid-view\",\n Grid = \"grid\",\n GroupObjects = \"group-objects\",\n GroupedBarChart = \"grouped-bar-chart\",\n HandDown = \"hand-down\",\n HandLeft = \"hand-left\",\n HandRight = \"hand-right\",\n HandUp = \"hand-up\",\n Hand = \"hand\",\n Hat = \"hat\",\n HeaderOne = \"header-one\",\n HeaderThree = \"header-three\",\n HeaderTwo = \"header-two\",\n Header = \"header\",\n Headset = \"headset\",\n HeartBroken = \"heart-broken\",\n Heart = \"heart\",\n HeatGrid = \"heat-grid\",\n Heatmap = \"heatmap\",\n Helicopter = \"helicopter\",\n Help = \"help\",\n HelperManagement = \"helper-management\",\n HighPriority = \"high-priority\",\n HighVoltagePole = \"high-voltage-pole\",\n Highlight = \"highlight\",\n History = \"history\",\n Home = \"home\",\n HorizontalBarChartAsc = \"horizontal-bar-chart-asc\",\n HorizontalBarChartDesc = \"horizontal-bar-chart-desc\",\n HorizontalBarChart = \"horizontal-bar-chart\",\n HorizontalDistribution = \"horizontal-distribution\",\n HorizontalInbetween = \"horizontal-inbetween\",\n Hurricane = \"hurricane\",\n IdNumber = \"id-number\",\n ImageRotateLeft = \"image-rotate-left\",\n ImageRotateRight = \"image-rotate-right\",\n Import = \"import\",\n InboxFiltered = \"inbox-filtered\",\n InboxGeo = \"inbox-geo\",\n InboxSearch = \"inbox-search\",\n InboxUpdate = \"inbox-update\",\n Inbox = \"inbox\",\n InfoSign = \"info-sign\",\n Inheritance = \"inheritance\",\n InheritedGroup = \"inherited-group\",\n InnerJoin = \"inner-join\",\n Insert = \"insert\",\n Intelligence = \"intelligence\",\n Intersection = \"intersection\",\n IpAddress = \"ip-address\",\n IssueClosed = \"issue-closed\",\n IssueNew = \"issue-new\",\n Issue = \"issue\",\n Italic = \"italic\",\n JoinTable = \"join-table\",\n KeyBackspace = \"key-backspace\",\n KeyCommand = \"key-command\",\n KeyControl = \"key-control\",\n KeyDelete = \"key-delete\",\n KeyEnter = \"key-enter\",\n KeyEscape = \"key-escape\",\n KeyOption = \"key-option\",\n KeyShift = \"key-shift\",\n KeyTab = \"key-tab\",\n Key = \"key\",\n KnownVehicle = \"known-vehicle\",\n LabTest = \"lab-test\",\n Label = \"label\",\n LayerOutline = \"layer-outline\",\n Layer = \"layer\",\n Layers = \"layers\",\n LayoutAuto = \"layout-auto\",\n LayoutBalloon = \"layout-balloon\",\n LayoutCircle = \"layout-circle\",\n LayoutGrid = \"layout-grid\",\n LayoutGroupBy = \"layout-group-by\",\n LayoutHierarchy = \"layout-hierarchy\",\n LayoutLinear = \"layout-linear\",\n LayoutSkewGrid = \"layout-skew-grid\",\n LayoutSortedClusters = \"layout-sorted-clusters\",\n Layout = \"layout\",\n Learning = \"learning\",\n LeftJoin = \"left-join\",\n LengthenText = \"lengthen-text\",\n LessThanOrEqualTo = \"less-than-or-equal-to\",\n LessThan = \"less-than\",\n Lifesaver = \"lifesaver\",\n Lightbulb = \"lightbulb\",\n Lightning = \"lightning\",\n Link = \"link\",\n ListColumns = \"list-columns\",\n ListDetailView = \"list-detail-view\",\n List = \"list\",\n Locate = \"locate\",\n Lock = \"lock\",\n Locomotive = \"locomotive\",\n LogIn = \"log-in\",\n LogOut = \"log-out\",\n LowVoltagePole = \"low-voltage-pole\",\n Manual = \"manual\",\n ManuallyEnteredData = \"manually-entered-data\",\n ManyToMany = \"many-to-many\",\n ManyToOne = \"many-to-one\",\n MapCreate = \"map-create\",\n MapMarker = \"map-marker\",\n Map = \"map\",\n Maximize = \"maximize\",\n Media = \"media\",\n MenuClosed = \"menu-closed\",\n MenuOpen = \"menu-open\",\n Menu = \"menu\",\n MergeColumns = \"merge-columns\",\n MergeLinks = \"merge-links\",\n Minimize = \"minimize\",\n Minus = \"minus\",\n MobilePhone = \"mobile-phone\",\n MobileVideo = \"mobile-video\",\n ModalFilled = \"modal-filled\",\n Modal = \"modal\",\n Model = \"model\",\n Moon = \"moon\",\n More = \"more\",\n Mountain = \"mountain\",\n Move = \"move\",\n Mugshot = \"mugshot\",\n MultiSelect = \"multi-select\",\n Music = \"music\",\n Nest = \"nest\",\n NewDrawing = \"new-drawing\",\n NewGridItem = \"new-grid-item\",\n NewLayer = \"new-layer\",\n NewLayers = \"new-layers\",\n NewLink = \"new-link\",\n NewObject = \"new-object\",\n NewPerson = \"new-person\",\n NewPrescription = \"new-prescription\",\n NewTextBox = \"new-text-box\",\n Ninja = \"ninja\",\n NotEqualTo = \"not-equal-to\",\n NotificationsSnooze = \"notifications-snooze\",\n NotificationsUpdated = \"notifications-updated\",\n Notifications = \"notifications\",\n NumberedList = \"numbered-list\",\n Numerical = \"numerical\",\n Office = \"office\",\n Offline = \"offline\",\n OilField = \"oil-field\",\n OneColumn = \"one-column\",\n OneToMany = \"one-to-many\",\n OneToOne = \"one-to-one\",\n OpenApplication = \"open-application\",\n Outdated = \"outdated\",\n PageLayout = \"page-layout\",\n PanelStats = \"panel-stats\",\n PanelTable = \"panel-table\",\n Paperclip = \"paperclip\",\n Paragraph = \"paragraph\",\n PathSearch = \"path-search\",\n Path = \"path\",\n Pause = \"pause\",\n People = \"people\",\n Percentage = \"percentage\",\n Person = \"person\",\n Phone = \"phone\",\n PieChart = \"pie-chart\",\n Pin = \"pin\",\n PivotTable = \"pivot-table\",\n Pivot = \"pivot\",\n Play = \"play\",\n Playbook = \"playbook\",\n Plus = \"plus\",\n PolygonFilter = \"polygon-filter\",\n Power = \"power\",\n PredictiveAnalysis = \"predictive-analysis\",\n Prescription = \"prescription\",\n Presentation = \"presentation\",\n Print = \"print\",\n Projects = \"projects\",\n Properties = \"properties\",\n Property = \"property\",\n PublishFunction = \"publish-function\",\n Pulse = \"pulse\",\n Rain = \"rain\",\n Random = \"random\",\n Record = \"record\",\n RectHeight = \"rect-height\",\n RectWidth = \"rect-width\",\n Rectangle = \"rectangle\",\n Redo = \"redo\",\n Refresh = \"refresh\",\n Regex = \"regex\",\n RegressionChart = \"regression-chart\",\n RemoveColumnLeft = \"remove-column-left\",\n RemoveColumnRight = \"remove-column-right\",\n RemoveColumn = \"remove-column\",\n RemoveRowBottom = \"remove-row-bottom\",\n RemoveRowTop = \"remove-row-top\",\n Remove = \"remove\",\n Repeat = \"repeat\",\n Reset = \"reset\",\n Resolve = \"resolve\",\n Rig = \"rig\",\n RightJoin = \"right-join\",\n Ring = \"ring\",\n RocketSlant = \"rocket-slant\",\n Rocket = \"rocket\",\n RotateDocument = \"rotate-document\",\n RotatePage = \"rotate-page\",\n Route = \"route\",\n Satellite = \"satellite\",\n Saved = \"saved\",\n ScatterPlot = \"scatter-plot\",\n SearchAround = \"search-around\",\n SearchTemplate = \"search-template\",\n SearchText = \"search-text\",\n Search = \"search\",\n SegmentedControl = \"segmented-control\",\n Select = \"select\",\n Selection = \"selection\",\n SendMessage = \"send-message\",\n SendToGraph = \"send-to-graph\",\n SendToMap = \"send-to-map\",\n SendTo = \"send-to\",\n Sensor = \"sensor\",\n SeriesAdd = \"series-add\",\n SeriesConfiguration = \"series-configuration\",\n SeriesDerived = \"series-derived\",\n SeriesFiltered = \"series-filtered\",\n SeriesSearch = \"series-search\",\n Settings = \"settings\",\n Shapes = \"shapes\",\n Share = \"share\",\n SharedFilter = \"shared-filter\",\n Shield = \"shield\",\n Ship = \"ship\",\n Shop = \"shop\",\n ShoppingCart = \"shopping-cart\",\n ShortenText = \"shorten-text\",\n SignalSearch = \"signal-search\",\n SimCard = \"sim-card\",\n Slash = \"slash\",\n SmallCross = \"small-cross\",\n SmallInfoSign = \"small-info-sign\",\n SmallMinus = \"small-minus\",\n SmallPlus = \"small-plus\",\n SmallSquare = \"small-square\",\n SmallTick = \"small-tick\",\n Snowflake = \"snowflake\",\n SocialMedia = \"social-media\",\n SortAlphabeticalDesc = \"sort-alphabetical-desc\",\n SortAlphabetical = \"sort-alphabetical\",\n SortAsc = \"sort-asc\",\n SortDesc = \"sort-desc\",\n SortNumericalDesc = \"sort-numerical-desc\",\n SortNumerical = \"sort-numerical\",\n Sort = \"sort\",\n SpellCheck = \"spell-check\",\n SplitColumns = \"split-columns\",\n Square = \"square\",\n StackedChart = \"stacked-chart\",\n StadiumGeometry = \"stadium-geometry\",\n StarEmpty = \"star-empty\",\n Star = \"star\",\n StepBackward = \"step-backward\",\n StepChart = \"step-chart\",\n StepForward = \"step-forward\",\n Stop = \"stop\",\n Stopwatch = \"stopwatch\",\n Strikethrough = \"strikethrough\",\n Style = \"style\",\n Subscript = \"subscript\",\n Superscript = \"superscript\",\n SwapHorizontal = \"swap-horizontal\",\n SwapVertical = \"swap-vertical\",\n Switch = \"switch\",\n SymbolCircle = \"symbol-circle\",\n SymbolCross = \"symbol-cross\",\n SymbolDiamond = \"symbol-diamond\",\n SymbolRectangle = \"symbol-rectangle\",\n SymbolSquare = \"symbol-square\",\n SymbolTriangleDown = \"symbol-triangle-down\",\n SymbolTriangleUp = \"symbol-triangle-up\",\n Syringe = \"syringe\",\n Tag = \"tag\",\n TakeAction = \"take-action\",\n Tank = \"tank\",\n Target = \"target\",\n Taxi = \"taxi\",\n Temperature = \"temperature\",\n TextHighlight = \"text-highlight\",\n ThDerived = \"th-derived\",\n ThDisconnect = \"th-disconnect\",\n ThFiltered = \"th-filtered\",\n ThList = \"th-list\",\n Th = \"th\",\n ThirdParty = \"third-party\",\n ThumbsDown = \"thumbs-down\",\n ThumbsUp = \"thumbs-up\",\n TickCircle = \"tick-circle\",\n Tick = \"tick\",\n Time = \"time\",\n TimelineAreaChart = \"timeline-area-chart\",\n TimelineBarChart = \"timeline-bar-chart\",\n TimelineEvents = \"timeline-events\",\n TimelineLineChart = \"timeline-line-chart\",\n Tint = \"tint\",\n Torch = \"torch\",\n Tractor = \"tractor\",\n Train = \"train\",\n Translate = \"translate\",\n Trash = \"trash\",\n Tree = \"tree\",\n TrendingDown = \"trending-down\",\n TrendingUp = \"trending-up\",\n Truck = \"truck\",\n TwoColumns = \"two-columns\",\n Unarchive = \"unarchive\",\n Underline = \"underline\",\n Undo = \"undo\",\n UngroupObjects = \"ungroup-objects\",\n UnknownVehicle = \"unknown-vehicle\",\n Unlock = \"unlock\",\n Unpin = \"unpin\",\n Unresolve = \"unresolve\",\n Updated = \"updated\",\n Upload = \"upload\",\n User = \"user\",\n Variable = \"variable\",\n VerticalBarChartAsc = \"vertical-bar-chart-asc\",\n VerticalBarChartDesc = \"vertical-bar-chart-desc\",\n VerticalDistribution = \"vertical-distribution\",\n VerticalInbetween = \"vertical-inbetween\",\n Video = \"video\",\n Virus = \"virus\",\n VolumeDown = \"volume-down\",\n VolumeOff = \"volume-off\",\n VolumeUp = \"volume-up\",\n Walk = \"walk\",\n WarningSign = \"warning-sign\",\n WaterfallChart = \"waterfall-chart\",\n Waves = \"waves\",\n WidgetButton = \"widget-button\",\n WidgetFooter = \"widget-footer\",\n WidgetHeader = \"widget-header\",\n Widget = \"widget\",\n Wind = \"wind\",\n Wrench = \"wrench\",\n ZoomIn = \"zoom-in\",\n ZoomOut = \"zoom-out\",\n ZoomToFit = \"zoom-to-fit\",\n}\n\nexport const BLUEPRINT_ICONS_16_CODEPOINTS: { [key in BlueprintIcons_16]: string } = {\n [BlueprintIcons_16.AddClip]: \"61697\",\n [BlueprintIcons_16.AddColumnLeft]: \"61698\",\n [BlueprintIcons_16.AddColumnRight]: \"61699\",\n [BlueprintIcons_16.AddLocation]: \"61700\",\n [BlueprintIcons_16.AddRowBottom]: \"61701\",\n [BlueprintIcons_16.AddRowTop]: \"61702\",\n [BlueprintIcons_16.AddToArtifact]: \"61703\",\n [BlueprintIcons_16.AddToFolder]: \"61704\",\n [BlueprintIcons_16.Add]: \"61705\",\n [BlueprintIcons_16.AimpointsTarget]: \"62261\",\n [BlueprintIcons_16.Airplane]: \"61706\",\n [BlueprintIcons_16.AlignCenter]: \"61707\",\n [BlueprintIcons_16.AlignJustify]: \"61708\",\n [BlueprintIcons_16.AlignLeft]: \"61709\",\n [BlueprintIcons_16.AlignRight]: \"61710\",\n [BlueprintIcons_16.AlignmentBottom]: \"61711\",\n [BlueprintIcons_16.AlignmentHorizontalCenter]: \"61712\",\n [BlueprintIcons_16.AlignmentLeft]: \"61713\",\n [BlueprintIcons_16.AlignmentRight]: \"61714\",\n [BlueprintIcons_16.AlignmentTop]: \"61715\",\n [BlueprintIcons_16.AlignmentVerticalCenter]: \"61716\",\n [BlueprintIcons_16.Ammunition]: \"62274\",\n [BlueprintIcons_16.Anchor]: \"62256\",\n [BlueprintIcons_16.Annotation]: \"61717\",\n [BlueprintIcons_16.Antenna]: \"61718\",\n [BlueprintIcons_16.AppHeader]: \"61719\",\n [BlueprintIcons_16.Application]: \"61720\",\n [BlueprintIcons_16.Applications]: \"61721\",\n [BlueprintIcons_16.Archive]: \"61722\",\n [BlueprintIcons_16.AreaOfInterest]: \"61723\",\n [BlueprintIcons_16.ArrayBoolean]: \"61724\",\n [BlueprintIcons_16.ArrayDate]: \"61725\",\n [BlueprintIcons_16.ArrayFloatingPoint]: \"62253\",\n [BlueprintIcons_16.ArrayNumeric]: \"61726\",\n [BlueprintIcons_16.ArrayString]: \"61727\",\n [BlueprintIcons_16.ArrayTimestamp]: \"61728\",\n [BlueprintIcons_16.Array]: \"61729\",\n [BlueprintIcons_16.ArrowBottomLeft]: \"61730\",\n [BlueprintIcons_16.ArrowBottomRight]: \"61731\",\n [BlueprintIcons_16.ArrowDown]: \"61732\",\n [BlueprintIcons_16.ArrowLeft]: \"61733\",\n [BlueprintIcons_16.ArrowRight]: \"61734\",\n [BlueprintIcons_16.ArrowTopLeft]: \"61735\",\n [BlueprintIcons_16.ArrowTopRight]: \"61736\",\n [BlueprintIcons_16.ArrowUp]: \"61737\",\n [BlueprintIcons_16.ArrowsHorizontal]: \"61738\",\n [BlueprintIcons_16.ArrowsVertical]: \"61739\",\n [BlueprintIcons_16.Asterisk]: \"61740\",\n [BlueprintIcons_16.At]: \"62257\",\n [BlueprintIcons_16.AutomaticUpdates]: \"61741\",\n [BlueprintIcons_16.Axle]: \"62264\",\n [BlueprintIcons_16.Backlink]: \"61742\",\n [BlueprintIcons_16.Badge]: \"61743\",\n [BlueprintIcons_16.BanCircle]: \"61744\",\n [BlueprintIcons_16.BankAccount]: \"61745\",\n [BlueprintIcons_16.Barcode]: \"61746\",\n [BlueprintIcons_16.Blank]: \"61747\",\n [BlueprintIcons_16.BlockedPerson]: \"61748\",\n [BlueprintIcons_16.Bold]: \"61749\",\n [BlueprintIcons_16.Book]: \"61750\",\n [BlueprintIcons_16.Bookmark]: \"61751\",\n [BlueprintIcons_16.Box]: \"61752\",\n [BlueprintIcons_16.Briefcase]: \"61753\",\n [BlueprintIcons_16.BringData]: \"61754\",\n [BlueprintIcons_16.Bug]: \"62254\",\n [BlueprintIcons_16.Buggy]: \"61755\",\n [BlueprintIcons_16.Build]: \"61756\",\n [BlueprintIcons_16.Calculator]: \"61757\",\n [BlueprintIcons_16.Calendar]: \"61758\",\n [BlueprintIcons_16.Camera]: \"61759\",\n [BlueprintIcons_16.CaretDown]: \"61760\",\n [BlueprintIcons_16.CaretLeft]: \"61761\",\n [BlueprintIcons_16.CaretRight]: \"61762\",\n [BlueprintIcons_16.CaretUp]: \"61763\",\n [BlueprintIcons_16.CargoShip]: \"61764\",\n [BlueprintIcons_16.CellTower]: \"61765\",\n [BlueprintIcons_16.Changes]: \"61766\",\n [BlueprintIcons_16.Chart]: \"61767\",\n [BlueprintIcons_16.Chat]: \"61768\",\n [BlueprintIcons_16.ChevronBackward]: \"61769\",\n [BlueprintIcons_16.ChevronDown]: \"61770\",\n [BlueprintIcons_16.ChevronForward]: \"61771\",\n [BlueprintIcons_16.ChevronLeft]: \"61772\",\n [BlueprintIcons_16.ChevronRight]: \"61773\",\n [BlueprintIcons_16.ChevronUp]: \"61774\",\n [BlueprintIcons_16.CircleArrowDown]: \"61775\",\n [BlueprintIcons_16.CircleArrowLeft]: \"61776\",\n [BlueprintIcons_16.CircleArrowRight]: \"61777\",\n [BlueprintIcons_16.CircleArrowUp]: \"61778\",\n [BlueprintIcons_16.Circle]: \"61779\",\n [BlueprintIcons_16.Citation]: \"61780\",\n [BlueprintIcons_16.Clean]: \"61781\",\n [BlueprintIcons_16.Clip]: \"61782\",\n [BlueprintIcons_16.Clipboard]: \"61783\",\n [BlueprintIcons_16.CloudDownload]: \"61784\",\n [BlueprintIcons_16.CloudUpload]: \"61785\",\n [BlueprintIcons_16.Cloud]: \"61786\",\n [BlueprintIcons_16.CodeBlock]: \"61787\",\n [BlueprintIcons_16.Code]: \"61788\",\n [BlueprintIcons_16.Cog]: \"61789\",\n [BlueprintIcons_16.CollapseAll]: \"61790\",\n [BlueprintIcons_16.ColorFill]: \"62248\",\n [BlueprintIcons_16.ColumnLayout]: \"61791\",\n [BlueprintIcons_16.Comment]: \"61792\",\n [BlueprintIcons_16.Comparison]: \"61793\",\n [BlueprintIcons_16.Compass]: \"61794\",\n [BlueprintIcons_16.Compressed]: \"61795\",\n [BlueprintIcons_16.Confirm]: \"61796\",\n [BlueprintIcons_16.Console]: \"61797\",\n [BlueprintIcons_16.Contrast]: \"61798\",\n [BlueprintIcons_16.Control]: \"61799\",\n [BlueprintIcons_16.CreditCard]: \"61800\",\n [BlueprintIcons_16.CrossCircle]: \"62262\",\n [BlueprintIcons_16.Cross]: \"61801\",\n [BlueprintIcons_16.Crown]: \"61802\",\n [BlueprintIcons_16.CubeAdd]: \"61803\",\n [BlueprintIcons_16.CubeRemove]: \"61804\",\n [BlueprintIcons_16.Cube]: \"61805\",\n [BlueprintIcons_16.CurvedRangeChart]: \"61806\",\n [BlueprintIcons_16.Cut]: \"61807\",\n [BlueprintIcons_16.Cycle]: \"61808\",\n [BlueprintIcons_16.Dashboard]: \"61809\",\n [BlueprintIcons_16.DataConnection]: \"61810\",\n [BlueprintIcons_16.DataLineage]: \"61811\",\n [BlueprintIcons_16.Database]: \"61812\",\n [BlueprintIcons_16.Delete]: \"61813\",\n [BlueprintIcons_16.Delta]: \"61814\",\n [BlueprintIcons_16.DeriveColumn]: \"61815\",\n [BlueprintIcons_16.Desktop]: \"61816\",\n [BlueprintIcons_16.Detection]: \"62273\",\n [BlueprintIcons_16.Diagnosis]: \"61817\",\n [BlueprintIcons_16.DiagramTree]: \"61818\",\n [BlueprintIcons_16.DirectionLeft]: \"61819\",\n [BlueprintIcons_16.DirectionRight]: \"61820\",\n [BlueprintIcons_16.Disable]: \"61821\",\n [BlueprintIcons_16.Divide]: \"62247\",\n [BlueprintIcons_16.DocumentOpen]: \"61822\",\n [BlueprintIcons_16.DocumentShare]: \"61823\",\n [BlueprintIcons_16.Document]: \"61824\",\n [BlueprintIcons_16.Dollar]: \"61825\",\n [BlueprintIcons_16.Dot]: \"61826\",\n [BlueprintIcons_16.DoubleCaretHorizontal]: \"61827\",\n [BlueprintIcons_16.DoubleCaretVertical]: \"61828\",\n [BlueprintIcons_16.DoubleChevronDown]: \"61829\",\n [BlueprintIcons_16.DoubleChevronLeft]: \"61830\",\n [BlueprintIcons_16.DoubleChevronRight]: \"61831\",\n [BlueprintIcons_16.DoubleChevronUp]: \"61832\",\n [BlueprintIcons_16.DoughnutChart]: \"61833\",\n [BlueprintIcons_16.Download]: \"61834\",\n [BlueprintIcons_16.DragHandleHorizontal]: \"61835\",\n [BlueprintIcons_16.DragHandleVertical]: \"61836\",\n [BlueprintIcons_16.Draw]: \"61837\",\n [BlueprintIcons_16.DrawerLeftFilled]: \"61838\",\n [BlueprintIcons_16.DrawerLeft]: \"61839\",\n [BlueprintIcons_16.DrawerRightFilled]: \"61840\",\n [BlueprintIcons_16.DrawerRight]: \"61841\",\n [BlueprintIcons_16.DriveTime]: \"61842\",\n [BlueprintIcons_16.Duplicate]: \"61843\",\n [BlueprintIcons_16.Edit]: \"61844\",\n [BlueprintIcons_16.Eject]: \"61845\",\n [BlueprintIcons_16.Emoji]: \"61846\",\n [BlueprintIcons_16.Endorsed]: \"61847\",\n [BlueprintIcons_16.Envelope]: \"61848\",\n [BlueprintIcons_16.Equals]: \"61849\",\n [BlueprintIcons_16.Eraser]: \"61850\",\n [BlueprintIcons_16.Error]: \"61851\",\n [BlueprintIcons_16.Euro]: \"61852\",\n [BlueprintIcons_16.Exchange]: \"61853\",\n [BlueprintIcons_16.ExcludeRow]: \"61854\",\n [BlueprintIcons_16.ExpandAll]: \"61855\",\n [BlueprintIcons_16.Export]: \"61856\",\n [BlueprintIcons_16.EyeOff]: \"61857\",\n [BlueprintIcons_16.EyeOn]: \"61858\",\n [BlueprintIcons_16.EyeOpen]: \"61859\",\n [BlueprintIcons_16.FastBackward]: \"61860\",\n [BlueprintIcons_16.FastForward]: \"61861\",\n [BlueprintIcons_16.FeedSubscribed]: \"61862\",\n [BlueprintIcons_16.Feed]: \"61863\",\n [BlueprintIcons_16.Film]: \"61864\",\n [BlueprintIcons_16.FilterKeep]: \"61865\",\n [BlueprintIcons_16.FilterList]: \"61866\",\n [BlueprintIcons_16.FilterOpen]: \"61867\",\n [BlueprintIcons_16.FilterRemove]: \"61868\",\n [BlueprintIcons_16.Filter]: \"61869\",\n [BlueprintIcons_16.Flag]: \"61870\",\n [BlueprintIcons_16.Flame]: \"61871\",\n [BlueprintIcons_16.Flash]: \"61872\",\n [BlueprintIcons_16.FloatingPoint]: \"62252\",\n [BlueprintIcons_16.FloppyDisk]: \"61873\",\n [BlueprintIcons_16.FlowBranch]: \"61874\",\n [BlueprintIcons_16.FlowEnd]: \"61875\",\n [BlueprintIcons_16.FlowLinear]: \"61876\",\n [BlueprintIcons_16.FlowReviewBranch]: \"61877\",\n [BlueprintIcons_16.FlowReview]: \"61878\",\n [BlueprintIcons_16.Flows]: \"61879\",\n [BlueprintIcons_16.FolderClose]: \"61880\",\n [BlueprintIcons_16.FolderNew]: \"61881\",\n [BlueprintIcons_16.FolderOpen]: \"61882\",\n [BlueprintIcons_16.FolderSharedOpen]: \"61883\",\n [BlueprintIcons_16.FolderShared]: \"61884\",\n [BlueprintIcons_16.Follower]: \"61885\",\n [BlueprintIcons_16.Following]: \"61886\",\n [BlueprintIcons_16.Font]: \"61887\",\n [BlueprintIcons_16.Fork]: \"61888\",\n [BlueprintIcons_16.Form]: \"61889\",\n [BlueprintIcons_16.Fuel]: \"62243\",\n [BlueprintIcons_16.FullCircle]: \"61890\",\n [BlueprintIcons_16.FullStackedChart]: \"61891\",\n [BlueprintIcons_16.Fullscreen]: \"61892\",\n [BlueprintIcons_16.Function]: \"61893\",\n [BlueprintIcons_16.GanttChart]: \"61894\",\n [BlueprintIcons_16.Geofence]: \"61895\",\n [BlueprintIcons_16.Geolocation]: \"61896\",\n [BlueprintIcons_16.Geosearch]: \"61897\",\n [BlueprintIcons_16.GitBranch]: \"61898\",\n [BlueprintIcons_16.GitCommit]: \"61899\",\n [BlueprintIcons_16.GitMerge]: \"61900\",\n [BlueprintIcons_16.GitNewBranch]: \"61901\",\n [BlueprintIcons_16.GitPull]: \"61902\",\n [BlueprintIcons_16.GitPush]: \"61903\",\n [BlueprintIcons_16.GitRepo]: \"61904\",\n [BlueprintIcons_16.Glass]: \"61905\",\n [BlueprintIcons_16.GlobeNetwork]: \"61906\",\n [BlueprintIcons_16.Globe]: \"61907\",\n [BlueprintIcons_16.GraphRemove]: \"61908\",\n [BlueprintIcons_16.Graph]: \"61909\",\n [BlueprintIcons_16.GreaterThanOrEqualTo]: \"61910\",\n [BlueprintIcons_16.GreaterThan]: \"61911\",\n [BlueprintIcons_16.GridView]: \"61912\",\n [BlueprintIcons_16.Grid]: \"61913\",\n [BlueprintIcons_16.GroupObjects]: \"61914\",\n [BlueprintIcons_16.GroupedBarChart]: \"61915\",\n [BlueprintIcons_16.HandDown]: \"61916\",\n [BlueprintIcons_16.HandLeft]: \"61917\",\n [BlueprintIcons_16.HandRight]: \"61918\",\n [BlueprintIcons_16.HandUp]: \"61919\",\n [BlueprintIcons_16.Hand]: \"61920\",\n [BlueprintIcons_16.Hat]: \"61921\",\n [BlueprintIcons_16.HeaderOne]: \"61922\",\n [BlueprintIcons_16.HeaderThree]: \"61923\",\n [BlueprintIcons_16.HeaderTwo]: \"61924\",\n [BlueprintIcons_16.Header]: \"61925\",\n [BlueprintIcons_16.Headset]: \"61926\",\n [BlueprintIcons_16.HeartBroken]: \"61927\",\n [BlueprintIcons_16.Heart]: \"61928\",\n [BlueprintIcons_16.HeatGrid]: \"61929\",\n [BlueprintIcons_16.Heatmap]: \"61930\",\n [BlueprintIcons_16.Helicopter]: \"61931\",\n [BlueprintIcons_16.Help]: \"61932\",\n [BlueprintIcons_16.HelperManagement]: \"61933\",\n [BlueprintIcons_16.HighPriority]: \"61934\",\n [BlueprintIcons_16.HighVoltagePole]: \"62259\",\n [BlueprintIcons_16.Highlight]: \"61935\",\n [BlueprintIcons_16.History]: \"61936\",\n [BlueprintIcons_16.Home]: \"61937\",\n [BlueprintIcons_16.HorizontalBarChartAsc]: \"61938\",\n [BlueprintIcons_16.HorizontalBarChartDesc]: \"61939\",\n [BlueprintIcons_16.HorizontalBarChart]: \"61940\",\n [BlueprintIcons_16.HorizontalDistribution]: \"61941\",\n [BlueprintIcons_16.HorizontalInbetween]: \"62249\",\n [BlueprintIcons_16.Hurricane]: \"61942\",\n [BlueprintIcons_16.IdNumber]: \"61943\",\n [BlueprintIcons_16.ImageRotateLeft]: \"61944\",\n [BlueprintIcons_16.ImageRotateRight]: \"61945\",\n [BlueprintIcons_16.Import]: \"61946\",\n [BlueprintIcons_16.InboxFiltered]: \"61947\",\n [BlueprintIcons_16.InboxGeo]: \"61948\",\n [BlueprintIcons_16.InboxSearch]: \"61949\",\n [BlueprintIcons_16.InboxUpdate]: \"61950\",\n [BlueprintIcons_16.Inbox]: \"61951\",\n [BlueprintIcons_16.InfoSign]: \"61952\",\n [BlueprintIcons_16.Inheritance]: \"61953\",\n [BlueprintIcons_16.InheritedGroup]: \"61954\",\n [BlueprintIcons_16.InnerJoin]: \"61955\",\n [BlueprintIcons_16.Insert]: \"61956\",\n [BlueprintIcons_16.Intelligence]: \"62263\",\n [BlueprintIcons_16.Intersection]: \"61957\",\n [BlueprintIcons_16.IpAddress]: \"61958\",\n [BlueprintIcons_16.IssueClosed]: \"61959\",\n [BlueprintIcons_16.IssueNew]: \"61960\",\n [BlueprintIcons_16.Issue]: \"61961\",\n [BlueprintIcons_16.Italic]: \"61962\",\n [BlueprintIcons_16.JoinTable]: \"61963\",\n [BlueprintIcons_16.KeyBackspace]: \"61964\",\n [BlueprintIcons_16.KeyCommand]: \"61965\",\n [BlueprintIcons_16.KeyControl]: \"61966\",\n [BlueprintIcons_16.KeyDelete]: \"61967\",\n [BlueprintIcons_16.KeyEnter]: \"61968\",\n [BlueprintIcons_16.KeyEscape]: \"61969\",\n [BlueprintIcons_16.KeyOption]: \"61970\",\n [BlueprintIcons_16.KeyShift]: \"61971\",\n [BlueprintIcons_16.KeyTab]: \"61972\",\n [BlueprintIcons_16.Key]: \"61973\",\n [BlueprintIcons_16.KnownVehicle]: \"61974\",\n [BlueprintIcons_16.LabTest]: \"61975\",\n [BlueprintIcons_16.Label]: \"61976\",\n [BlueprintIcons_16.LayerOutline]: \"61977\",\n [BlueprintIcons_16.Layer]: \"61978\",\n [BlueprintIcons_16.Layers]: \"61979\",\n [BlueprintIcons_16.LayoutAuto]: \"61980\",\n [BlueprintIcons_16.LayoutBalloon]: \"61981\",\n [BlueprintIcons_16.LayoutCircle]: \"61982\",\n [BlueprintIcons_16.LayoutGrid]: \"61983\",\n [BlueprintIcons_16.LayoutGroupBy]: \"61984\",\n [BlueprintIcons_16.LayoutHierarchy]: \"61985\",\n [BlueprintIcons_16.LayoutLinear]: \"61986\",\n [BlueprintIcons_16.LayoutSkewGrid]: \"61987\",\n [BlueprintIcons_16.LayoutSortedClusters]: \"61988\",\n [BlueprintIcons_16.Layout]: \"61989\",\n [BlueprintIcons_16.Learning]: \"61990\",\n [BlueprintIcons_16.LeftJoin]: \"61991\",\n [BlueprintIcons_16.LengthenText]: \"62270\",\n [BlueprintIcons_16.LessThanOrEqualTo]: \"61992\",\n [BlueprintIcons_16.LessThan]: \"61993\",\n [BlueprintIcons_16.Lifesaver]: \"61994\",\n [BlueprintIcons_16.Lightbulb]: \"61995\",\n [BlueprintIcons_16.Lightning]: \"61996\",\n [BlueprintIcons_16.Link]: \"61997\",\n [BlueprintIcons_16.ListColumns]: \"61998\",\n [BlueprintIcons_16.ListDetailView]: \"61999\",\n [BlueprintIcons_16.List]: \"62000\",\n [BlueprintIcons_16.Locate]: \"62001\",\n [BlueprintIcons_16.Lock]: \"62002\",\n [BlueprintIcons_16.Locomotive]: \"62267\",\n [BlueprintIcons_16.LogIn]: \"62003\",\n [BlueprintIcons_16.LogOut]: \"62004\",\n [BlueprintIcons_16.LowVoltagePole]: \"62258\",\n [BlueprintIcons_16.Manual]: \"62005\",\n [BlueprintIcons_16.ManuallyEnteredData]: \"62006\",\n [BlueprintIcons_16.ManyToMany]: \"62007\",\n [BlueprintIcons_16.ManyToOne]: \"62008\",\n [BlueprintIcons_16.MapCreate]: \"62009\",\n [BlueprintIcons_16.MapMarker]: \"62010\",\n [BlueprintIcons_16.Map]: \"62011\",\n [BlueprintIcons_16.Maximize]: \"62012\",\n [BlueprintIcons_16.Media]: \"62013\",\n [BlueprintIcons_16.MenuClosed]: \"62014\",\n [BlueprintIcons_16.MenuOpen]: \"62015\",\n [BlueprintIcons_16.Menu]: \"62016\",\n [BlueprintIcons_16.MergeColumns]: \"62017\",\n [BlueprintIcons_16.MergeLinks]: \"62018\",\n [BlueprintIcons_16.Minimize]: \"62019\",\n [BlueprintIcons_16.Minus]: \"62020\",\n [BlueprintIcons_16.MobilePhone]: \"62021\",\n [BlueprintIcons_16.MobileVideo]: \"62022\",\n [BlueprintIcons_16.ModalFilled]: \"62023\",\n [BlueprintIcons_16.Modal]: \"62024\",\n [BlueprintIcons_16.Model]: \"62269\",\n [BlueprintIcons_16.Moon]: \"62025\",\n [BlueprintIcons_16.More]: \"62026\",\n [BlueprintIcons_16.Mountain]: \"62027\",\n [BlueprintIcons_16.Move]: \"62028\",\n [BlueprintIcons_16.Mugshot]: \"62029\",\n [BlueprintIcons_16.MultiSelect]: \"62030\",\n [BlueprintIcons_16.Music]: \"62031\",\n [BlueprintIcons_16.Nest]: \"62032\",\n [BlueprintIcons_16.NewDrawing]: \"62033\",\n [BlueprintIcons_16.NewGridItem]: \"62034\",\n [BlueprintIcons_16.NewLayer]: \"62035\",\n [BlueprintIcons_16.NewLayers]: \"62036\",\n [BlueprintIcons_16.NewLink]: \"62037\",\n [BlueprintIcons_16.NewObject]: \"62038\",\n [BlueprintIcons_16.NewPerson]: \"62039\",\n [BlueprintIcons_16.NewPrescription]: \"62040\",\n [BlueprintIcons_16.NewTextBox]: \"62041\",\n [BlueprintIcons_16.Ninja]: \"62042\",\n [BlueprintIcons_16.NotEqualTo]: \"62043\",\n [BlueprintIcons_16.NotificationsSnooze]: \"62044\",\n [BlueprintIcons_16.NotificationsUpdated]: \"62045\",\n [BlueprintIcons_16.Notifications]: \"62046\",\n [BlueprintIcons_16.NumberedList]: \"62047\",\n [BlueprintIcons_16.Numerical]: \"62048\",\n [BlueprintIcons_16.Office]: \"62049\",\n [BlueprintIcons_16.Offline]: \"62050\",\n [BlueprintIcons_16.OilField]: \"62051\",\n [BlueprintIcons_16.OneColumn]: \"62052\",\n [BlueprintIcons_16.OneToMany]: \"62053\",\n [BlueprintIcons_16.OneToOne]: \"62054\",\n [BlueprintIcons_16.OpenApplication]: \"62251\",\n [BlueprintIcons_16.Outdated]: \"62055\",\n [BlueprintIcons_16.PageLayout]: \"62056\",\n [BlueprintIcons_16.PanelStats]: \"62057\",\n [BlueprintIcons_16.PanelTable]: \"62058\",\n [BlueprintIcons_16.Paperclip]: \"62059\",\n [BlueprintIcons_16.Paragraph]: \"62060\",\n [BlueprintIcons_16.PathSearch]: \"62061\",\n [BlueprintIcons_16.Path]: \"62062\",\n [BlueprintIcons_16.Pause]: \"62063\",\n [BlueprintIcons_16.People]: \"62064\",\n [BlueprintIcons_16.Percentage]: \"62065\",\n [BlueprintIcons_16.Person]: \"62066\",\n [BlueprintIcons_16.Phone]: \"62067\",\n [BlueprintIcons_16.PieChart]: \"62068\",\n [BlueprintIcons_16.Pin]: \"62069\",\n [BlueprintIcons_16.PivotTable]: \"62070\",\n [BlueprintIcons_16.Pivot]: \"62071\",\n [BlueprintIcons_16.Play]: \"62072\",\n [BlueprintIcons_16.Playbook]: \"62244\",\n [BlueprintIcons_16.Plus]: \"62073\",\n [BlueprintIcons_16.PolygonFilter]: \"62074\",\n [BlueprintIcons_16.Power]: \"62075\",\n [BlueprintIcons_16.PredictiveAnalysis]: \"62076\",\n [BlueprintIcons_16.Prescription]: \"62077\",\n [BlueprintIcons_16.Presentation]: \"62078\",\n [BlueprintIcons_16.Print]: \"62079\",\n [BlueprintIcons_16.Projects]: \"62080\",\n [BlueprintIcons_16.Properties]: \"62081\",\n [BlueprintIcons_16.Property]: \"62082\",\n [BlueprintIcons_16.PublishFunction]: \"62083\",\n [BlueprintIcons_16.Pulse]: \"62084\",\n [BlueprintIcons_16.Rain]: \"62085\",\n [BlueprintIcons_16.Random]: \"62086\",\n [BlueprintIcons_16.Record]: \"62087\",\n [BlueprintIcons_16.RectHeight]: \"62245\",\n [BlueprintIcons_16.RectWidth]: \"62246\",\n [BlueprintIcons_16.Rectangle]: \"62241\",\n [BlueprintIcons_16.Redo]: \"62088\",\n [BlueprintIcons_16.Refresh]: \"62089\",\n [BlueprintIcons_16.Regex]: \"62255\",\n [BlueprintIcons_16.RegressionChart]: \"62090\",\n [BlueprintIcons_16.RemoveColumnLeft]: \"62091\",\n [BlueprintIcons_16.RemoveColumnRight]: \"62092\",\n [BlueprintIcons_16.RemoveColumn]: \"62093\",\n [BlueprintIcons_16.RemoveRowBottom]: \"62094\",\n [BlueprintIcons_16.RemoveRowTop]: \"62095\",\n [BlueprintIcons_16.Remove]: \"62096\",\n [BlueprintIcons_16.Repeat]: \"62097\",\n [BlueprintIcons_16.Reset]: \"62098\",\n [BlueprintIcons_16.Resolve]: \"62099\",\n [BlueprintIcons_16.Rig]: \"62100\",\n [BlueprintIcons_16.RightJoin]: \"62101\",\n [BlueprintIcons_16.Ring]: \"62102\",\n [BlueprintIcons_16.RocketSlant]: \"62103\",\n [BlueprintIcons_16.Rocket]: \"62104\",\n [BlueprintIcons_16.RotateDocument]: \"62105\",\n [BlueprintIcons_16.RotatePage]: \"62106\",\n [BlueprintIcons_16.Route]: \"62107\",\n [BlueprintIcons_16.Satellite]: \"62108\",\n [BlueprintIcons_16.Saved]: \"62109\",\n [BlueprintIcons_16.ScatterPlot]: \"62110\",\n [BlueprintIcons_16.SearchAround]: \"62111\",\n [BlueprintIcons_16.SearchTemplate]: \"62112\",\n [BlueprintIcons_16.SearchText]: \"62113\",\n [BlueprintIcons_16.Search]: \"62114\",\n [BlueprintIcons_16.SegmentedControl]: \"62115\",\n [BlueprintIcons_16.Select]: \"62116\",\n [BlueprintIcons_16.Selection]: \"62117\",\n [BlueprintIcons_16.SendMessage]: \"62118\",\n [BlueprintIcons_16.SendToGraph]: \"62119\",\n [BlueprintIcons_16.SendToMap]: \"62120\",\n [BlueprintIcons_16.SendTo]: \"62121\",\n [BlueprintIcons_16.Sensor]: \"62268\",\n [BlueprintIcons_16.SeriesAdd]: \"62122\",\n [BlueprintIcons_16.SeriesConfiguration]: \"62123\",\n [BlueprintIcons_16.SeriesDerived]: \"62124\",\n [BlueprintIcons_16.SeriesFiltered]: \"62125\",\n [BlueprintIcons_16.SeriesSearch]: \"62126\",\n [BlueprintIcons_16.Settings]: \"62127\",\n [BlueprintIcons_16.Shapes]: \"62128\",\n [BlueprintIcons_16.Share]: \"62129\",\n [BlueprintIcons_16.SharedFilter]: \"62130\",\n [BlueprintIcons_16.Shield]: \"62131\",\n [BlueprintIcons_16.Ship]: \"62132\",\n [BlueprintIcons_16.Shop]: \"62133\",\n [BlueprintIcons_16.ShoppingCart]: \"62134\",\n [BlueprintIcons_16.ShortenText]: \"62271\",\n [BlueprintIcons_16.SignalSearch]: \"62135\",\n [BlueprintIcons_16.SimCard]: \"62136\",\n [BlueprintIcons_16.Slash]: \"62137\",\n [BlueprintIcons_16.SmallCross]: \"62138\",\n [BlueprintIcons_16.SmallInfoSign]: \"62260\",\n [BlueprintIcons_16.SmallMinus]: \"62139\",\n [BlueprintIcons_16.SmallPlus]: \"62140\",\n [BlueprintIcons_16.SmallSquare]: \"62141\",\n [BlueprintIcons_16.SmallTick]: \"62142\",\n [BlueprintIcons_16.Snowflake]: \"62143\",\n [BlueprintIcons_16.SocialMedia]: \"62144\",\n [BlueprintIcons_16.SortAlphabeticalDesc]: \"62145\",\n [BlueprintIcons_16.SortAlphabetical]: \"62146\",\n [BlueprintIcons_16.SortAsc]: \"62147\",\n [BlueprintIcons_16.SortDesc]: \"62148\",\n [BlueprintIcons_16.SortNumericalDesc]: \"62149\",\n [BlueprintIcons_16.SortNumerical]: \"62150\",\n [BlueprintIcons_16.Sort]: \"62151\",\n [BlueprintIcons_16.SpellCheck]: \"62272\",\n [BlueprintIcons_16.SplitColumns]: \"62152\",\n [BlueprintIcons_16.Square]: \"62153\",\n [BlueprintIcons_16.StackedChart]: \"62154\",\n [BlueprintIcons_16.StadiumGeometry]: \"62155\",\n [BlueprintIcons_16.StarEmpty]: \"62156\",\n [BlueprintIcons_16.Star]: \"62157\",\n [BlueprintIcons_16.StepBackward]: \"62158\",\n [BlueprintIcons_16.StepChart]: \"62159\",\n [BlueprintIcons_16.StepForward]: \"62160\",\n [BlueprintIcons_16.Stop]: \"62161\",\n [BlueprintIcons_16.Stopwatch]: \"62162\",\n [BlueprintIcons_16.Strikethrough]: \"62163\",\n [BlueprintIcons_16.Style]: \"62164\",\n [BlueprintIcons_16.Subscript]: \"62265\",\n [BlueprintIcons_16.Superscript]: \"62266\",\n [BlueprintIcons_16.SwapHorizontal]: \"62165\",\n [BlueprintIcons_16.SwapVertical]: \"62166\",\n [BlueprintIcons_16.Switch]: \"62167\",\n [BlueprintIcons_16.SymbolCircle]: \"62168\",\n [BlueprintIcons_16.SymbolCross]: \"62169\",\n [BlueprintIcons_16.SymbolDiamond]: \"62170\",\n [BlueprintIcons_16.SymbolRectangle]: \"62242\",\n [BlueprintIcons_16.SymbolSquare]: \"62171\",\n [BlueprintIcons_16.SymbolTriangleDown]: \"62172\",\n [BlueprintIcons_16.SymbolTriangleUp]: \"62173\",\n [BlueprintIcons_16.Syringe]: \"62174\",\n [BlueprintIcons_16.Tag]: \"62175\",\n [BlueprintIcons_16.TakeAction]: \"62176\",\n [BlueprintIcons_16.Tank]: \"62177\",\n [BlueprintIcons_16.Target]: \"62178\",\n [BlueprintIcons_16.Taxi]: \"62179\",\n [BlueprintIcons_16.Temperature]: \"62180\",\n [BlueprintIcons_16.TextHighlight]: \"62181\",\n [BlueprintIcons_16.ThDerived]: \"62182\",\n [BlueprintIcons_16.ThDisconnect]: \"62183\",\n [BlueprintIcons_16.ThFiltered]: \"62184\",\n [BlueprintIcons_16.ThList]: \"62185\",\n [BlueprintIcons_16.Th]: \"62186\",\n [BlueprintIcons_16.ThirdParty]: \"62187\",\n [BlueprintIcons_16.ThumbsDown]: \"62188\",\n [BlueprintIcons_16.ThumbsUp]: \"62189\",\n [BlueprintIcons_16.TickCircle]: \"62190\",\n [BlueprintIcons_16.Tick]: \"62191\",\n [BlueprintIcons_16.Time]: \"62192\",\n [BlueprintIcons_16.TimelineAreaChart]: \"62193\",\n [BlueprintIcons_16.TimelineBarChart]: \"62194\",\n [BlueprintIcons_16.TimelineEvents]: \"62195\",\n [BlueprintIcons_16.TimelineLineChart]: \"62196\",\n [BlueprintIcons_16.Tint]: \"62197\",\n [BlueprintIcons_16.Torch]: \"62198\",\n [BlueprintIcons_16.Tractor]: \"62199\",\n [BlueprintIcons_16.Train]: \"62200\",\n [BlueprintIcons_16.Translate]: \"62201\",\n [BlueprintIcons_16.Trash]: \"62202\",\n [BlueprintIcons_16.Tree]: \"62203\",\n [BlueprintIcons_16.TrendingDown]: \"62204\",\n [BlueprintIcons_16.TrendingUp]: \"62205\",\n [BlueprintIcons_16.Truck]: \"62206\",\n [BlueprintIcons_16.TwoColumns]: \"62207\",\n [BlueprintIcons_16.Unarchive]: \"62208\",\n [BlueprintIcons_16.Underline]: \"62209\",\n [BlueprintIcons_16.Undo]: \"62210\",\n [BlueprintIcons_16.UngroupObjects]: \"62211\",\n [BlueprintIcons_16.UnknownVehicle]: \"62212\",\n [BlueprintIcons_16.Unlock]: \"62213\",\n [BlueprintIcons_16.Unpin]: \"62214\",\n [BlueprintIcons_16.Unresolve]: \"62215\",\n [BlueprintIcons_16.Updated]: \"62216\",\n [BlueprintIcons_16.Upload]: \"62217\",\n [BlueprintIcons_16.User]: \"62218\",\n [BlueprintIcons_16.Variable]: \"62219\",\n [BlueprintIcons_16.VerticalBarChartAsc]: \"62220\",\n [BlueprintIcons_16.VerticalBarChartDesc]: \"62221\",\n [BlueprintIcons_16.VerticalDistribution]: \"62222\",\n [BlueprintIcons_16.VerticalInbetween]: \"62250\",\n [BlueprintIcons_16.Video]: \"62223\",\n [BlueprintIcons_16.Virus]: \"62224\",\n [BlueprintIcons_16.VolumeDown]: \"62225\",\n [BlueprintIcons_16.VolumeOff]: \"62226\",\n [BlueprintIcons_16.VolumeUp]: \"62227\",\n [BlueprintIcons_16.Walk]: \"62228\",\n [BlueprintIcons_16.WarningSign]: \"62229\",\n [BlueprintIcons_16.WaterfallChart]: \"62230\",\n [BlueprintIcons_16.Waves]: \"62231\",\n [BlueprintIcons_16.WidgetButton]: \"62232\",\n [BlueprintIcons_16.WidgetFooter]: \"62233\",\n [BlueprintIcons_16.WidgetHeader]: \"62234\",\n [BlueprintIcons_16.Widget]: \"62235\",\n [BlueprintIcons_16.Wind]: \"62236\",\n [BlueprintIcons_16.Wrench]: \"62237\",\n [BlueprintIcons_16.ZoomIn]: \"62238\",\n [BlueprintIcons_16.ZoomOut]: \"62239\",\n [BlueprintIcons_16.ZoomToFit]: \"62240\",\n};\n","/*\n * Copyright 2021 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/* eslint-disable camelcase */\n\nimport { pascalCase, snakeCase } from \"change-case\";\n\n// The two icon sets are identical aside from SVG paths, so we only need to import info for the 16px set\nimport { BlueprintIcons_16, BlueprintIcons_16Id as IconName } from \"./generated-icons/16px/blueprint-icons-16\";\nimport type { PascalCase, ScreamingSnakeCase } from \"./type-utils\";\n\nexport type { IconName };\n\nconst IconNamesNew = {} as Record, IconName>;\nconst IconNamesLegacy = {} as Record, IconName>;\n\nfor (const name of Object.values(BlueprintIcons_16) as IconName[]) {\n IconNamesNew[pascalCase(name) as PascalCase] = name;\n IconNamesLegacy[snakeCase(name).toUpperCase() as ScreamingSnakeCase] = name;\n}\n\nexport const IconNames = {\n ...IconNamesNew,\n ...IconNamesLegacy,\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { FormGroup, InputGroup, } from \"@blueprintjs/core\";\nimport { RelativityTooltip } from \"../../../Tooltip/RelativityTooltip\";\nimport { FormFieldErrorContainer } from \"../../CoreFields/FieldError/FormFieldErrorContainer\";\nimport { FieldLabel } from \"../../CoreFields/FieldLabel/FieldLabel\";\nimport { useTextField } from \"./useTextField\";\nvar TextField = function (props) {\n var _a = useTextField(props), localValue = _a.localValue, isTooltipVisible = _a.isTooltipVisible, textInputRef = _a.textInputRef, isSensitiveAndDisabled = _a.isSensitiveAndDisabled, determineInputType = _a.determineInputType, setMaskOnBlur = _a.setMaskOnBlur, shouldShowMaskedIcon = _a.shouldShowMaskedIcon, handleOnChange = _a.handleOnChange;\n return (_jsx(\"div\", { className: \"ucl-base-input-text-field-container\", children: _jsx(RelativityTooltip, { shouldShowTooltip: isTooltipVisible && !isSensitiveAndDisabled(), content: !!localValue ? localValue : \"\", children: _jsxs(FormGroup, { className: props.isRequired && !localValue\n ? \"has-required-background\"\n : \"base-field\", children: [props.label && (_jsx(FieldLabel, __assign({ labelName: props.label, tooltipDescription: props.description, fieldProps: __assign(__assign({}, props), { value: localValue }) }, props.labelProps))), _jsx(InputGroup, { inputRef: textInputRef, type: determineInputType(), value: localValue, inputMode: props.inputMode, disabled: props.disabled, placeholder: props.placeholder, maxLength: props.maxLength === 0 ? undefined : props.maxLength, leftIcon: props.leftIcon, readOnly: props.readOnly, onChange: function (e) {\n if (e.target.value != localValue) {\n handleOnChange(e.target.value);\n }\n }, rightElement: shouldShowMaskedIcon(), onBlur: function () { return setMaskOnBlur(); } }), props.errorMessages && (_jsx(FormFieldErrorContainer, { errorMessages: props.errorMessages }))] }) }) }));\n};\nexport default TextField;\n","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { Icon } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport React, { useEffect, useRef, useState } from \"react\";\nimport { useIsToolTipVisibleSetter } from \"../../../../utils/field\";\nimport { containsOnlyNumbers } from \"./utils\";\n/**Hooks for Text Field*/\nexport var useTextField = function (props) {\n var _a = React.useState(props.value), localValue = _a[0], setLocalValue = _a[1];\n var _b = useState(false), isMasked = _b[0], setIsMasked = _b[1];\n var textInputRef = useRef(null);\n var isTooltipVisible = useIsToolTipVisibleSetter(textInputRef, props.value);\n var _c = useState(false), initialized = _c[0], setInitialized = _c[1];\n // Initialize\n useEffect(function () {\n if (!!textInputRef.current && !initialized) {\n setInitialized(true);\n setAndSanitize(props.value);\n }\n if (!!props.isSensitive) {\n setIsMasked(true);\n }\n }, []);\n useEffect(function () {\n if (props.value !== localValue) {\n handleOnChange(props.value);\n }\n }, [props.value]);\n var setAndSanitize = function (newValue) {\n if (props.sanitize && !!newValue) {\n newValue = props.sanitize(newValue);\n }\n setLocalValue(newValue);\n return newValue;\n };\n var setMaskOnBlur = function () {\n if (!!props.isSensitive) {\n setIsMasked(true);\n }\n };\n var determineInputType = function () {\n return isMasked ? \"password\" : props.type;\n };\n /**Do not show tooltip if sensitive and Disabled*/\n var isSensitiveAndDisabled = function () {\n return props.disabled && props.isSensitive;\n };\n /**Show Only if is Sensitive info, has value, and not disabled*/\n var shouldShowMaskedIcon = function () {\n if (!!props.isSensitive && !!localValue && !props.disabled) {\n var icon = isMasked ? IconNames.EyeOpen : IconNames.EyeOff;\n return (_jsx(Icon, { className: \"show-password-icon\", icon: icon, onClick: function () { return setIsMasked(!isMasked); } }));\n }\n };\n var handleOnChange = function (onchangeValue) {\n if (props.inputMode === \"numeric\") {\n if (containsOnlyNumbers(onchangeValue)) {\n setAndSanitize(onchangeValue.replace(/\\D/g, \"\"));\n props.onSubmit && props.onSubmit(onchangeValue.replace(/\\D/g, \"\"));\n }\n }\n else {\n var sanitized = setAndSanitize(onchangeValue);\n props.onSubmit && props.onSubmit(sanitized);\n }\n };\n return {\n localValue: localValue,\n isTooltipVisible: isTooltipVisible,\n textInputRef: textInputRef,\n isSensitiveAndDisabled: isSensitiveAndDisabled,\n determineInputType: determineInputType,\n setMaskOnBlur: setMaskOnBlur,\n shouldShowMaskedIcon: shouldShowMaskedIcon,\n handleOnChange: handleOnChange,\n };\n};\n","/**Handle Numeric only input for SSN field*/\nexport var containsOnlyNumbers = function (str) {\n return /^[-0-9]*$/.test(str);\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { FormGroup, Icon, InputGroup } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport { MenuItem2 } from \"@blueprintjs/popover2\";\nimport { Select2 } from \"@blueprintjs/select\";\nimport React, { useEffect, useRef } from \"react\";\nimport { useIsToolTipVisibleSetter } from \"../../../../utils/field\";\nimport { RelativityTooltip } from \"../../../Tooltip/RelativityTooltip\";\nimport { FormFieldErrorContainer } from \"../../CoreFields/FieldError/FormFieldErrorContainer\";\nimport { FieldLabel } from \"../../CoreFields/FieldLabel/FieldLabel\";\n/**Single Select is used primarily with enum values from the API, but can be passed collection of arrays*/\nexport var EnumSingleSelectField = function (props) {\n var _a = React.useState(props.value), localValue = _a[0], setLocalValue = _a[1];\n var selectInputRef = useRef(null);\n var isTooltipVisible = useIsToolTipVisibleSetter(selectInputRef, props.value);\n var getSelectValue = function (selectValue, options) {\n return (options || []).find(function (option) { return String(option.value) === String(selectValue); });\n };\n var selectedOption = getSelectValue(localValue, props.optionValues);\n var orderedOptionValues = function () {\n if (!!props.reorderOptions) {\n props.reorderOptions.forEach(function (element) {\n var foundOptionIndex = (props.optionValues || []).findIndex(function (x) { return x.value === element.value; });\n props.optionValues.splice(element.newIndex, 0, props.optionValues.splice(foundOptionIndex, 1)[0]);\n });\n }\n return props.optionValues;\n };\n var selectedOptionToUse = selectedOption\n ? selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.label\n : \"\";\n var checkIfSelectedValueIsValid = function (onChangeEvent) {\n var isValidOption = getSelectValue(onChangeEvent.target.value, props.optionValues);\n if (!isValidOption) {\n onChangeEvent.target.value = \"\";\n }\n };\n useEffect(function () {\n setLocalValue(props.value);\n }, [props.value]);\n return (_jsxs(FormGroup, { className: \"\".concat(props.isRequired && !localValue\n ? \"has-required-background\"\n : \"select-field\"), children: [props.label && (_jsx(FieldLabel, __assign({ labelName: props.label, tooltipDescription: props.description, fieldProps: __assign(__assign({}, props), { value: localValue }) }, props.labelProps))), _jsx(Select2, { items: orderedOptionValues(), noResults: props.noResultsLabel ? props.noResultsLabel : \"No Results\", resetOnSelect: true, filterable: (props.optionValues || []).length >= 10, popoverProps: {\n position: \"bottom-left\",\n minimal: true,\n hasBackdrop: true,\n canEscapeKeyClose: true,\n }, itemListPredicate: function (query, items) {\n query = query.toLowerCase();\n return (items || []).filter(function (optionValue) {\n return optionValue.label.toLowerCase().includes(query);\n });\n }, itemRenderer: function (item, itemProps) {\n return (_jsx(MenuItem2, { className: \"select__menu-item\", text: item.label, active: String(localValue) === String(item.value), onClick: itemProps.handleClick }, itemProps.index));\n }, onItemSelect: function (item) {\n setLocalValue(item.value);\n props.onSubmit && props.onSubmit(item.value);\n }, disabled: props.disabled, children: _jsx(RelativityTooltip, { shouldShowTooltip: isTooltipVisible, content: selectedOptionToUse, children: _jsx(InputGroup, { inputRef: selectInputRef, className: \"select-input\", rightElement: _jsx(Icon, { className: \"select-right-icon\", icon: IconNames.CaretDown }), readOnly: true, disabled: props.disabled, placeholder: props.placeholder, onChange: function (e) {\n checkIfSelectedValueIsValid(e);\n }, value: selectedOptionToUse }) }) }), props.errorMessages && (_jsx(FormFieldErrorContainer, { errorMessages: props.errorMessages }))] }, localValue));\n};\n","export var UsStates;\n(function (UsStates) {\n UsStates[UsStates[\"AL\"] = 1] = \"AL\";\n UsStates[UsStates[\"AK\"] = 2] = \"AK\";\n UsStates[UsStates[\"AZ\"] = 3] = \"AZ\";\n UsStates[UsStates[\"AR\"] = 4] = \"AR\";\n UsStates[UsStates[\"CA\"] = 5] = \"CA\";\n UsStates[UsStates[\"CO\"] = 6] = \"CO\";\n UsStates[UsStates[\"CT\"] = 7] = \"CT\";\n UsStates[UsStates[\"DE\"] = 8] = \"DE\";\n UsStates[UsStates[\"DC\"] = 9] = \"DC\";\n UsStates[UsStates[\"FL\"] = 10] = \"FL\";\n UsStates[UsStates[\"GA\"] = 11] = \"GA\";\n UsStates[UsStates[\"HI\"] = 12] = \"HI\";\n UsStates[UsStates[\"ID\"] = 13] = \"ID\";\n UsStates[UsStates[\"IL\"] = 14] = \"IL\";\n UsStates[UsStates[\"IN\"] = 15] = \"IN\";\n UsStates[UsStates[\"IA\"] = 16] = \"IA\";\n UsStates[UsStates[\"KS\"] = 17] = \"KS\";\n UsStates[UsStates[\"KY\"] = 18] = \"KY\";\n UsStates[UsStates[\"LA\"] = 19] = \"LA\";\n UsStates[UsStates[\"ME\"] = 20] = \"ME\";\n UsStates[UsStates[\"MD\"] = 21] = \"MD\";\n UsStates[UsStates[\"MA\"] = 22] = \"MA\";\n UsStates[UsStates[\"MI\"] = 23] = \"MI\";\n UsStates[UsStates[\"MN\"] = 24] = \"MN\";\n UsStates[UsStates[\"MS\"] = 25] = \"MS\";\n UsStates[UsStates[\"MO\"] = 26] = \"MO\";\n UsStates[UsStates[\"MT\"] = 27] = \"MT\";\n UsStates[UsStates[\"NE\"] = 28] = \"NE\";\n UsStates[UsStates[\"NV\"] = 29] = \"NV\";\n UsStates[UsStates[\"NH\"] = 30] = \"NH\";\n UsStates[UsStates[\"NJ\"] = 31] = \"NJ\";\n UsStates[UsStates[\"NM\"] = 32] = \"NM\";\n UsStates[UsStates[\"NY\"] = 33] = \"NY\";\n UsStates[UsStates[\"NC\"] = 34] = \"NC\";\n UsStates[UsStates[\"ND\"] = 35] = \"ND\";\n UsStates[UsStates[\"OH\"] = 36] = \"OH\";\n UsStates[UsStates[\"OK\"] = 37] = \"OK\";\n UsStates[UsStates[\"OR\"] = 38] = \"OR\";\n UsStates[UsStates[\"PA\"] = 39] = \"PA\";\n UsStates[UsStates[\"RI\"] = 40] = \"RI\";\n UsStates[UsStates[\"SC\"] = 41] = \"SC\";\n UsStates[UsStates[\"SD\"] = 42] = \"SD\";\n UsStates[UsStates[\"TN\"] = 43] = \"TN\";\n UsStates[UsStates[\"TX\"] = 44] = \"TX\";\n UsStates[UsStates[\"UT\"] = 45] = \"UT\";\n UsStates[UsStates[\"VT\"] = 46] = \"VT\";\n UsStates[UsStates[\"VA\"] = 47] = \"VA\";\n UsStates[UsStates[\"WA\"] = 48] = \"WA\";\n UsStates[UsStates[\"WV\"] = 49] = \"WV\";\n UsStates[UsStates[\"WI\"] = 50] = \"WI\";\n UsStates[UsStates[\"WY\"] = 51] = \"WY\";\n})(UsStates || (UsStates = {}));\nexport default UsStates;\n","import UsStates from \"../../../../lib/usStates\";\nexport var defaultDescription = \"Please input at least 3 characters for address look up\";\nexport var usStateOptions = Object.entries(UsStates)\n .filter(function (_a) {\n var _ = _a[0], value = _a[1];\n return typeof value === \"number\";\n})\n .map(function (_a) {\n var label = _a[0], value = _a[1];\n return ({\n label: label,\n value: value,\n });\n});\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { FormGroup, Checkbox, Switch } from \"@blueprintjs/core\";\nimport { FieldLabel } from \"../../CoreFields/FieldLabel/FieldLabel\";\nimport { FormFieldErrorContainer } from \"../../CoreFields/FieldError/FormFieldErrorContainer\";\nimport { useSingleCheckboxField } from \"./useSingleCheckboxField\";\nimport classNames from \"classnames\";\nvar SingleCheckboxField = function (props) {\n var _a, _b;\n var _c = useSingleCheckboxField(props), localValues = _c.localValues, setLocalValues = _c.setLocalValues;\n var checkboxFieldProps = {\n label: props.text,\n disabled: props.disabled,\n checked: localValues,\n onChange: function () {\n var newLocalValues;\n if (localValues) {\n newLocalValues = false;\n }\n else {\n newLocalValues = true;\n }\n setLocalValues(newLocalValues);\n props.onSubmit && props.onSubmit(newLocalValues);\n },\n };\n return (_jsx(\"div\", { className: \"ucl-base-input-checkbox-field-container\", children: _jsxs(FormGroup, { className: classNames(\"base-field checkbox-field single-checkbox-field\", {\n \"has-required-background\": props.isRequired && localValues !== true,\n }, {\n \"label-on-top\": (_a = props.labelProps) === null || _a === void 0 ? void 0 : _a.labelOnTop,\n }, { \"label-regular\": !((_b = props.labelProps) === null || _b === void 0 ? void 0 : _b.labelOnTop) }), children: [props.label && (_jsx(FieldLabel, __assign({ labelName: props.label, tooltipDescription: props.description, fieldProps: __assign(__assign({}, props), { value: localValues }) }, props.labelProps))), props.displayAsSwitch ? (_jsx(Switch, __assign({}, checkboxFieldProps))) : (_jsx(Checkbox, __assign({}, checkboxFieldProps))), props.errorMessages && (_jsx(FormFieldErrorContainer, { errorMessages: props.errorMessages }))] }) }));\n};\nexport default SingleCheckboxField;\n","import React, { useEffect } from \"react\";\nexport var useSingleCheckboxField = function (props) {\n var _a = React.useState(props.value), localValues = _a[0], setLocalValues = _a[1];\n useEffect(function () {\n setLocalValues(props.value);\n }, [props.value]);\n return { localValues: localValues, setLocalValues: setLocalValues };\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { FormGroup, InputGroup } from \"@blueprintjs/core\";\nimport label from \"@blueprintjs/icons/lib/esm/generated-icons/16px/paths/label\";\nimport { MenuItem2 } from \"@blueprintjs/popover2\";\nimport { Select2 } from \"@blueprintjs/select\";\nimport { FieldLabel } from \"../../CoreFields/FieldLabel/FieldLabel\";\nimport { useSmartAddress } from \"./useSmartAddress\";\nimport { SkeletonComponent } from \"@syncfusion/ej2-react-notifications\";\nimport TextField from \"../../BaseInputFields/TextField/TextField\";\nimport { EnumSingleSelectField } from \"../../DropdownFields/EnumSingleSelectField/EnumSingleSelectField\";\nimport { usStateOptions } from \"../SimpleAddressField/defaults\";\nimport SingleCheckboxField from \"../../BaseInputFields/SingleCheckboxField/SingleCheckboxField\";\nexport var SmartAddressField = function (props) {\n var _a = useSmartAddress(props.getAddressesByQuery, props.getAddressByQuery, !!props.shouldGetAddressDetail, props.value, props.onSubmit, props.shouldShowAutoSuggest), debouncedChangeHandler = _a.debouncedChangeHandler, isLoading = _a.isLoading, addressSuggestions = _a.addressSuggestions, localAddress = _a.localAddress, onAddressChangeHandler = _a.onAddressChangeHandler, onSelectAddressSuggestionHandler = _a.onSelectAddressSuggestionHandler, shouldDisableAutoSuggest = _a.shouldDisableAutoSuggest;\n return (_jsxs(FormGroup, { children: [label && (_jsxs(\"div\", { className: \"address-field-header\", children: [_jsx(FieldLabel, __assign({ labelName: props.label, tooltipDescription: props.description ||\n \"Please input at least 3 characters for address look up\", fieldProps: __assign(__assign({}, props), { value: localAddress }) }, props.labelProps)), props.shouldShowAutoSuggest && (_jsx(SingleCheckboxField, { displayAsSwitch: true, text: \"Auto-Suggest\", value: localAddress === null || localAddress === void 0 ? void 0 : localAddress.hasAutoSuggest, onSubmit: function (value) {\n onAddressChangeHandler(__assign(__assign({}, localAddress), { hasAutoSuggest: value }));\n } }))] })), _jsx(\"div\", { className: \"address-field_input address-street\", children: _jsx(Select2, { items: isLoading\n ? [{ isLoading: true }]\n : addressSuggestions, filterable: false, itemDisabled: function (item) { return !!item.isLoading; }, popoverProps: {\n portalClassName: \"address-field_input_portal\",\n position: \"bottom-left\",\n minimal: true,\n }, itemRenderer: function (item, itemProps) {\n if (item.isLoading) {\n return _jsx(SkeletonComponent, { height: \"15px\" });\n }\n else {\n return (_jsx(MenuItem2, { id: \"address_street_popover\", className: \"select__menu-item\", text: item.fullAddress, onClick: itemProps.handleClick, icon: \"map-marker\" }, itemProps.index));\n }\n }, onItemSelect: onSelectAddressSuggestionHandler, disabled: shouldDisableAutoSuggest, noResults: \"Type Address to Search\", children: _jsx(InputGroup, { autoComplete: \"street-address\", className: \"address_street_field \".concat(props.isRequired && !(localAddress === null || localAddress === void 0 ? void 0 : localAddress.street)\n ? \"has-required-background\"\n : \"\"), value: localAddress === null || localAddress === void 0 ? void 0 : localAddress.street, disabled: props.disabled, placeholder: \"Street\", onChange: function (e) {\n if (e.target.value != (localAddress === null || localAddress === void 0 ? void 0 : localAddress.street)) {\n var street = e.target.value;\n onAddressChangeHandler(__assign(__assign({}, localAddress), { street: street }));\n debouncedChangeHandler(street, localAddress === null || localAddress === void 0 ? void 0 : localAddress.hasAutoSuggest);\n }\n } }) }) }), _jsx(\"div\", { className: \"address-field_input additional-street\", children: _jsx(TextField, { type: \"Text\", label: \"\", placeholder: \"Additional Street\", value: localAddress === null || localAddress === void 0 ? void 0 : localAddress.street2, inputMode: \"text\", disabled: props.disabled || props.isSmartOnly, onSubmit: function (value) {\n if (value != (localAddress === null || localAddress === void 0 ? void 0 : localAddress.street2)) {\n onAddressChangeHandler(__assign(__assign({}, localAddress), { street2: value }));\n }\n } }) }), _jsxs(\"div\", { className: \"flex-field\", children: [_jsx(\"div\", { className: \"address-field_input\", children: _jsx(TextField, { type: \"Text\", label: \"\", placeholder: \"City\", value: localAddress === null || localAddress === void 0 ? void 0 : localAddress.city, inputMode: \"text\", disabled: props.disabled || props.isSmartOnly, width: \"20%\", onSubmit: function (value) {\n if (value != (localAddress === null || localAddress === void 0 ? void 0 : localAddress.city))\n onAddressChangeHandler(__assign(__assign({}, localAddress), { city: value }));\n }, isRequired: props.isRequired }) }), _jsx(\"div\", { className: \"address-field_input\", children: _jsx(EnumSingleSelectField, { type: \"EnumSingleSelect\", label: \"\", placeholder: \"State\", value: localAddress === null || localAddress === void 0 ? void 0 : localAddress.state, disabled: props.disabled || props.isSmartOnly, isRequired: props.isRequired, optionValues: usStateOptions, onSubmit: function (value) {\n if (value != (localAddress === null || localAddress === void 0 ? void 0 : localAddress.state)) {\n onAddressChangeHandler(__assign(__assign({}, localAddress), { state: value }));\n }\n } }) }), _jsx(\"div\", { className: \"address-field_input\", children: _jsx(TextField, { type: \"Text\", label: \"\", value: localAddress === null || localAddress === void 0 ? void 0 : localAddress.zip, placeholder: \"Zip Code\", inputMode: \"text\", disabled: props.disabled || props.isSmartOnly, onSubmit: function (value) {\n if (value != (localAddress === null || localAddress === void 0 ? void 0 : localAddress.zip)) {\n onAddressChangeHandler(__assign(__assign({}, localAddress), { zip: value }));\n }\n }, isRequired: props.isRequired }) }), props.shouldGetAddressDetail && (_jsx(\"div\", { className: \"address-field_input\", children: _jsx(TextField, { type: \"Text\", label: \"\", value: localAddress === null || localAddress === void 0 ? void 0 : localAddress.county, placeholder: \"County\", inputMode: \"text\", disabled: props.disabled || props.isSmartOnly, onSubmit: function (value) {\n if (value != (localAddress === null || localAddress === void 0 ? void 0 : localAddress.county)) {\n onAddressChangeHandler(__assign(__assign({}, localAddress), { county: value }));\n }\n } }) }))] }), props.errorMessages && (_jsx(_Fragment, { children: props.errorMessages.map(function (errorMessage, idx) { return (_jsx(\"p\", { className: \"error-message\", children: errorMessage }, idx)); }) }))] }));\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { FormGroup, InputGroup } from \"@blueprintjs/core\";\nimport label from \"@blueprintjs/icons/lib/esm/generated-icons/16px/paths/label\";\nimport { FieldLabel } from \"../../CoreFields/FieldLabel/FieldLabel\";\nimport TextField from \"../../BaseInputFields/TextField/TextField\";\nimport { EnumSingleSelectField } from \"../../DropdownFields/EnumSingleSelectField/EnumSingleSelectField\";\nimport { usStateOptions } from \"./defaults\";\nimport { useState } from \"react\";\nexport var SimpleAddressField = function (props) {\n var _a = useState(props.value), localAddress = _a[0], setLocalAddress = _a[1];\n var onAddressChangeHandler = function (address) {\n setLocalAddress(address);\n props.onSubmit && props.onSubmit(address);\n };\n return (_jsxs(FormGroup, { children: [label && (_jsx(FieldLabel, __assign({ labelName: props.label, tooltipDescription: props.description, fieldProps: __assign(__assign({}, props), { value: localAddress }) }, props.labelProps))), _jsx(\"div\", { className: \"address-field_input address-street\", children: _jsx(InputGroup, { autoComplete: \"street-address\", className: \"address_street_field \".concat(props.isRequired && !(localAddress === null || localAddress === void 0 ? void 0 : localAddress.street)\n ? \"has-required-background\"\n : \"\"), value: localAddress === null || localAddress === void 0 ? void 0 : localAddress.street, disabled: props.disabled, placeholder: \"Street\", onChange: function (e) {\n if (e.target.value != (localAddress === null || localAddress === void 0 ? void 0 : localAddress.street)) {\n var street = e.target.value;\n onAddressChangeHandler(__assign(__assign({}, localAddress), { street: street }));\n }\n } }) }), _jsx(\"div\", { className: \"address-field_input additional-street\", children: _jsx(TextField, { type: \"Text\", label: \"\", placeholder: \"Additional Street\", value: localAddress === null || localAddress === void 0 ? void 0 : localAddress.street2, inputMode: \"text\", disabled: props.disabled, onSubmit: function (value) {\n if (value != (localAddress === null || localAddress === void 0 ? void 0 : localAddress.street2)) {\n onAddressChangeHandler(__assign(__assign({}, localAddress), { street2: value }));\n }\n } }) }), _jsxs(\"div\", { className: \"flex-field\", children: [_jsx(\"div\", { className: \"address-field_input\", children: _jsx(TextField, { type: \"Text\", label: \"\", placeholder: \"City\", value: localAddress === null || localAddress === void 0 ? void 0 : localAddress.city, inputMode: \"text\", disabled: props.disabled, width: \"20%\", onSubmit: function (value) {\n if (value != (localAddress === null || localAddress === void 0 ? void 0 : localAddress.city))\n onAddressChangeHandler(__assign(__assign({}, localAddress), { city: value }));\n }, isRequired: props.isRequired }) }), _jsx(\"div\", { className: \"address-field_input\", children: _jsx(EnumSingleSelectField, { type: \"EnumSingleSelect\", label: \"\", placeholder: \"State\", value: localAddress === null || localAddress === void 0 ? void 0 : localAddress.state, disabled: props.disabled, isRequired: props.isRequired, optionValues: usStateOptions, onSubmit: function (value) {\n if (value != (localAddress === null || localAddress === void 0 ? void 0 : localAddress.state)) {\n onAddressChangeHandler(__assign(__assign({}, localAddress), { state: value }));\n }\n } }) }), _jsx(\"div\", { className: \"address-field_input\", children: _jsx(TextField, { type: \"Text\", label: \"\", value: localAddress === null || localAddress === void 0 ? void 0 : localAddress.zip, placeholder: \"Zip Code\", inputMode: \"text\", disabled: props.disabled, onSubmit: function (value) {\n if (value != (localAddress === null || localAddress === void 0 ? void 0 : localAddress.zip)) {\n onAddressChangeHandler(__assign(__assign({}, localAddress), { zip: value }));\n }\n }, isRequired: props.isRequired }) }), props.shouldGetAddressDetail && (_jsx(\"div\", { className: \"address-field_input\", children: _jsx(TextField, { type: \"Text\", label: \"\", value: localAddress === null || localAddress === void 0 ? void 0 : localAddress.county, placeholder: \"County\", inputMode: \"text\", disabled: props.disabled, onSubmit: function (value) {\n if (value != (localAddress === null || localAddress === void 0 ? void 0 : localAddress.county)) {\n onAddressChangeHandler(__assign(__assign({}, localAddress), { county: value }));\n }\n } }) }))] }), props.errorMessages && (_jsx(_Fragment, { children: props.errorMessages.map(function (errorMessage, idx) { return (_jsx(\"p\", { className: \"error-message\", children: errorMessage }, idx)); }) }))] }));\n};\n","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { FormGroup } from \"@blueprintjs/core\";\nimport { FormFieldErrorContainer } from \"../FieldError/FormFieldErrorContainer\";\nvar CustomFieldComponent = function (props) {\n return (_jsxs(FormGroup, { className: \"base-field\", children: [props.renderer(props.form, props), props.errorMessages && (_jsx(FormFieldErrorContainer, { errorMessages: props.errorMessages }))] }));\n};\nexport var CustomField = CustomFieldComponent;\nexport default CustomField;\n","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { FormGroup } from \"@blueprintjs/core\";\nimport { FormFieldErrorContainer } from \"../FieldError/FormFieldErrorContainer\";\nimport { isFunction } from \"lodash\";\nvar ComplexFieldComponent = function (props) {\n if (!props.renderer || !isFunction(props.renderer)) {\n throw new Error(\"Component with Field Key \".concat(props.fieldKey, \" is defined as Complex, but a valid renderer function is not provided.\"));\n }\n return (_jsxs(FormGroup, { className: \"base-field\", children: [props.renderer(props), props.errorMessages && (_jsx(FormFieldErrorContainer, { errorMessages: props.errorMessages }))] }));\n};\nexport var ComplexField = ComplexFieldComponent;\nexport default ComplexField;\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n};\n","/*\n * Copyright 2017 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Enumeration of calendar months.\n *\n * Note that the enum values are numbers (with January as `0`) so they can be\n * easily compared to `date.getMonth()`.\n */\nexport enum Months {\n JANUARY = 0,\n FEBRUARY = 1,\n MARCH = 2,\n APRIL = 3,\n MAY = 4,\n JUNE = 5,\n JULY = 6,\n AUGUST = 7,\n SEPTEMBER = 8,\n OCTOBER = 9,\n NOVEMBER = 10,\n DECEMBER = 11,\n}\n","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DateRange } from \"./dateRange\";\nimport { Months } from \"./months\";\n\nexport function isDateValid(date: Date | false | null): date is Date {\n return date instanceof Date && !isNaN(date.valueOf());\n}\n\nexport function areEqual(date1: Date, date2: Date) {\n if (date1 == null && date2 == null) {\n return true;\n } else if (date1 == null || date2 == null) {\n return false;\n } else {\n return date1.getTime() === date2.getTime();\n }\n}\n\nexport function areRangesEqual(dateRange1: DateRange, dateRange2: DateRange) {\n if (dateRange1 == null && dateRange2 == null) {\n return true;\n } else if (dateRange1 == null || dateRange2 == null) {\n return false;\n } else {\n const [start1, end1] = dateRange1;\n const [start2, end2] = dateRange2;\n const areStartsEqual = (start1 == null && start2 == null) || areSameDay(start1, start2);\n const areEndsEqual = (end1 == null && end2 == null) || areSameDay(end1, end2);\n return areStartsEqual && areEndsEqual;\n }\n}\n\nexport function areSameDay(date1: Date, date2: Date) {\n return areSameMonth(date1, date2) && date1.getDate() === date2.getDate();\n}\n\nexport function areSameMonth(date1: Date, date2: Date) {\n return (\n date1 != null &&\n date2 != null &&\n date1.getMonth() === date2.getMonth() &&\n date1.getFullYear() === date2.getFullYear()\n );\n}\n\nexport function areSameTime(date1: Date, date2: Date) {\n return (\n date1 != null &&\n date2 != null &&\n date1.getHours() === date2.getHours() &&\n date1.getMinutes() === date2.getMinutes() &&\n date1.getSeconds() === date2.getSeconds() &&\n date1.getMilliseconds() === date2.getMilliseconds()\n );\n}\n\nexport function clone(d: Date) {\n return new Date(d.getTime());\n}\n\nexport function isDayInRange(date: Date, dateRange: DateRange, exclusive = false) {\n if (date == null) {\n return false;\n }\n\n const day = clone(date);\n const start = clone(dateRange[0]);\n const end = clone(dateRange[1]);\n\n day.setHours(0, 0, 0, 0);\n start.setHours(0, 0, 0, 0);\n end.setHours(0, 0, 0, 0);\n\n return start <= day && day <= end && (!exclusive || (!areSameDay(start, day) && !areSameDay(day, end)));\n}\n\nexport function isDayRangeInRange(innerRange: DateRange, outerRange: DateRange) {\n return (\n (innerRange[0] == null || isDayInRange(innerRange[0], outerRange)) &&\n (innerRange[1] == null || isDayInRange(innerRange[1], outerRange))\n );\n}\n\nexport function isMonthInRange(date: Date, dateRange: DateRange) {\n if (date == null) {\n return false;\n }\n\n const day = clone(date);\n const start = clone(dateRange[0]);\n const end = clone(dateRange[1]);\n\n day.setDate(1);\n start.setDate(1);\n end.setDate(1);\n day.setHours(0, 0, 0, 0);\n start.setHours(0, 0, 0, 0);\n end.setHours(0, 0, 0, 0);\n\n return start <= day && day <= end;\n}\n\nexport const isTimeEqualOrGreaterThan = (time: Date, timeToCompare: Date) => time.getTime() >= timeToCompare.getTime();\nexport const isTimeEqualOrSmallerThan = (time: Date, timeToCompare: Date) => time.getTime() <= timeToCompare.getTime();\n\nexport function isTimeInRange(date: Date, minDate: Date, maxDate: Date): boolean {\n const time = getDateOnlyWithTime(date);\n const minTime = getDateOnlyWithTime(minDate);\n const maxTime = getDateOnlyWithTime(maxDate);\n\n const isTimeGreaterThanMinTime = isTimeEqualOrGreaterThan(time, minTime);\n const isTimeSmallerThanMaxTime = isTimeEqualOrSmallerThan(time, maxTime);\n\n if (isTimeEqualOrSmallerThan(maxTime, minTime)) {\n return isTimeGreaterThanMinTime || isTimeSmallerThanMaxTime;\n }\n\n return isTimeGreaterThanMinTime && isTimeSmallerThanMaxTime;\n}\n\nexport function getTimeInRange(time: Date, minTime: Date, maxTime: Date) {\n if (areSameTime(minTime, maxTime)) {\n return maxTime;\n } else if (isTimeInRange(time, minTime, maxTime)) {\n return time;\n } else if (isTimeSameOrAfter(time, maxTime)) {\n return maxTime;\n }\n\n return minTime;\n}\n\n/**\n * Returns true if the time part of `date` is later than or equal to the time\n * part of `dateToCompare`. The day, month, and year parts will not be compared.\n */\nexport function isTimeSameOrAfter(date: Date, dateToCompare: Date): boolean {\n const time = getDateOnlyWithTime(date);\n const timeToCompare = getDateOnlyWithTime(dateToCompare);\n\n return isTimeEqualOrGreaterThan(time, timeToCompare);\n}\n\n/**\n * @returns a Date at the exact time-wise midpoint between startDate and endDate\n */\nexport function getDateBetween(dateRange: DateRange) {\n const start = dateRange[0].getTime();\n const end = dateRange[1].getTime();\n const middle = start + (end - start) * 0.5;\n return new Date(middle);\n}\n\nexport function getDateTime(date: Date | null, time?: Date | null) {\n if (date == null) {\n return null;\n } else if (time == null) {\n // cannot use default argument because `null` is a common value in this package.\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0, 0);\n } else {\n return new Date(\n date.getFullYear(),\n date.getMonth(),\n date.getDate(),\n time.getHours(),\n time.getMinutes(),\n time.getSeconds(),\n time.getMilliseconds(),\n );\n }\n}\n\nexport function getDateOnlyWithTime(date: Date): Date {\n return new Date(0, 0, 0, date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());\n}\n\nexport function getDatePreviousMonth(date: Date): Date {\n if (date.getMonth() === Months.JANUARY) {\n return new Date(date.getFullYear() - 1, Months.DECEMBER);\n } else {\n return new Date(date.getFullYear(), date.getMonth() - 1);\n }\n}\n\nexport function getDateNextMonth(date: Date): Date {\n if (date.getMonth() === Months.DECEMBER) {\n return new Date(date.getFullYear() + 1, Months.JANUARY);\n } else {\n return new Date(date.getFullYear(), date.getMonth() + 1);\n }\n}\n\nexport function convert24HourMeridiem(hour: number, toPm: boolean): number {\n if (hour < 0 || hour > 23) {\n throw new Error(`hour must be between [0,23] inclusive: got ${hour}`);\n }\n return toPm ? (hour % 12) + 12 : hour % 12;\n}\n\nexport function getIsPmFrom24Hour(hour: number): boolean {\n if (hour < 0 || hour > 23) {\n throw new Error(`hour must be between [0,23] inclusive: got ${hour}`);\n }\n return hour >= 12;\n}\n\nexport function get12HourFrom24Hour(hour: number): number {\n if (hour < 0 || hour > 23) {\n throw new Error(`hour must be between [0,23] inclusive: got ${hour}`);\n }\n const newHour = hour % 12;\n return newHour === 0 ? 12 : newHour;\n}\n\nexport function get24HourFrom12Hour(hour: number, isPm: boolean): number {\n if (hour < 1 || hour > 12) {\n throw new Error(`hour must be between [1,12] inclusive: got ${hour}`);\n }\n const newHour = hour === 12 ? 0 : hour;\n return isPm ? newHour + 12 : newHour;\n}\n\nexport function isToday(date: Date): boolean {\n return areSameDay(date, new Date());\n}\n","/*\n * Copyright 2016 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DayPickerProps, LocaleUtils } from \"react-day-picker\";\n\nimport { Months } from \"./common/months\";\nimport { TimePickerProps, TimePrecision } from \"./timePicker\";\n\n// DatePicker supports a simpler set of modifiers (for now).\n// also we need an interface for the dictionary without `today` and `outside` injected by r-d-p.\n/**\n * Collection of functions that determine which modifier classes get applied to which days.\n * See the [**react-day-picker** documentation](https://react-day-picker-v7.netlify.app/api/ModifiersUtils)\n * to learn more.\n *\n * @deprecated use DatePickerModifiers\n */\nexport interface IDatePickerModifiers {\n [name: string]: (date: Date) => boolean;\n}\n// eslint-disable-next-line deprecation/deprecation\nexport type DatePickerModifiers = IDatePickerModifiers;\n\nexport interface DatePickerBaseProps {\n /**\n * Props to pass to ReactDayPicker. See API documentation\n * [here](https://react-day-picker-v7.netlify.app/api/DayPicker).\n *\n * The following props are managed by the component and cannot be configured:\n * `canChangeMonth`, `captionElement`, `fromMonth` (use `minDate`), `month` (use\n * `initialMonth`), `toMonth` (use `maxDate`).\n *\n * In case of supplying your owner `renderDay` function, make sure to apply the appropriate\n * CSS wrapper class to obtain default Blueprint styling.\n * eg.\n * `
{CONTENT_HERE}
`\n *\n */\n dayPickerProps?: DayPickerProps;\n\n /**\n * An additional element to show below the date picker.\n */\n footerElement?: JSX.Element;\n\n /**\n * Whether the current day should be highlighted in the calendar.\n *\n * @default false\n */\n highlightCurrentDay?: boolean;\n\n /**\n * The initial month the calendar displays.\n */\n initialMonth?: Date;\n\n /**\n * The locale name, which is passed to the functions in `localeUtils`\n * (and `formatDate` and `parseDate` if supported).\n */\n locale?: string;\n\n /**\n * Collection of functions that provide internationalization support.\n */\n localeUtils?: typeof LocaleUtils;\n\n /**\n * The latest date the user can select.\n *\n * @default 6 months from now.\n */\n maxDate?: Date;\n\n /**\n * The earliest date the user can select.\n *\n * @default Jan. 1st, 20 years in the past.\n */\n minDate?: Date;\n\n /**\n * Collection of functions that determine which modifier classes get applied to which days.\n * Each function should accept a `Date` and return a boolean.\n * See the [**react-day-picker** documentation](https://react-day-picker-v7.netlify.app/api/ModifiersUtils)\n * to learn more.\n */\n modifiers?: DatePickerModifiers;\n\n /**\n * If `true`, the month menu will appear to the left of the year menu.\n * Otherwise, the month menu will apear to the right of the year menu.\n *\n * @default false\n */\n reverseMonthAndYearMenus?: boolean;\n\n /**\n * The precision of time selection that accompanies the calendar. Passing a\n * `TimePrecision` value (or providing `timePickerProps`) shows a\n * `TimePicker` below the calendar. Time is preserved across date changes.\n *\n * This is shorthand for `timePickerProps.precision` and is a quick way to\n * enable time selection.\n */\n timePrecision?: TimePrecision;\n\n /**\n * Further configure the `TimePicker` that appears beneath the calendar.\n * `onChange` and `value` are ignored in favor of the corresponding\n * top-level props on this component.\n *\n * Passing any non-empty object to this prop will cause the `TimePicker` to appear.\n */\n timePickerProps?: TimePickerProps;\n}\n\nexport const DISABLED_MODIFIER = \"disabled\";\nexport const HOVERED_RANGE_MODIFIER = \"hovered-range\";\nexport const OUTSIDE_MODIFIER = \"outside\";\nexport const SELECTED_MODIFIER = \"selected\";\nexport const SELECTED_RANGE_MODIFIER = \"selected-range\";\n// modifiers the user can't set because they are used by Blueprint or react-day-picker\nexport const DISALLOWED_MODIFIERS = [\n DISABLED_MODIFIER,\n HOVERED_RANGE_MODIFIER,\n OUTSIDE_MODIFIER,\n SELECTED_MODIFIER,\n SELECTED_RANGE_MODIFIER,\n];\n\nexport function getDefaultMaxDate() {\n const date = new Date();\n date.setMonth(date.getMonth() + 6);\n return date;\n}\n\nexport function getDefaultMinDate() {\n const date = new Date();\n date.setFullYear(date.getFullYear() - 20);\n date.setMonth(Months.JANUARY, 1);\n return date;\n}\n\nexport function combineModifiers(baseModifiers: DatePickerModifiers, userModifiers: DatePickerModifiers) {\n let modifiers = baseModifiers;\n if (userModifiers != null) {\n modifiers = {};\n for (const key of Object.keys(userModifiers)) {\n if (DISALLOWED_MODIFIERS.indexOf(key) === -1) {\n modifiers[key] = userModifiers[key];\n }\n }\n for (const key of Object.keys(baseModifiers)) {\n modifiers[key] = baseModifiers[key];\n }\n }\n return modifiers;\n}\n","/*\n * Copyright 2022 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getFormattedDateString } from \"./dateFormat\";\nimport { getDefaultMaxDate, getDefaultMinDate } from \"./datePickerCore\";\n\n/**\n * DatePicker-related utility functions which may be useful outside this package to\n * build date/time components. Initially created for use in @blueprintjs/datetime2.\n */\nexport const DatePickerUtils = {\n getDefaultMaxDate,\n getDefaultMinDate,\n getFormattedDateString,\n};\n","/*\n * Copyright 2018 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { isDateValid, isDayInRange } from \"./common/dateUtils\";\nimport { DatePickerBaseProps } from \"./datePickerCore\";\n\n// eslint-disable-next-line deprecation/deprecation\nexport type DateFormatProps = IDateFormatProps;\n/** @deprecated use DateFormatProps */\nexport interface IDateFormatProps {\n /**\n * The error message to display when the date selected is invalid.\n *\n * @default \"Invalid date\"\n */\n invalidDateMessage?: string;\n\n /**\n * The locale name, which is passed to `formatDate`, `parseDate`, and the functions in `localeUtils`.\n */\n locale?: string;\n\n /**\n * The error message to display when the date selected is out of range.\n *\n * @default \"Out of range\"\n */\n outOfRangeMessage?: string;\n\n /**\n * Placeholder text to display in empty input fields.\n * Recommended practice is to indicate the expected date format.\n */\n placeholder?: string;\n\n /**\n * Function to render a JavaScript `Date` to a string.\n * Optional `locale` argument comes directly from the prop on this component:\n * if the prop is defined, then the argument will be too.\n */\n formatDate(date: Date, locale?: string): string;\n\n /**\n * Function to deserialize user input text to a JavaScript `Date` object.\n * Return `false` if the string is an invalid date.\n * Return `null` to represent the absence of a date.\n * Optional `locale` argument comes directly from the prop on this component.\n */\n parseDate(str: string, locale?: string): Date | false | null;\n}\n\nexport function getFormattedDateString(\n date: Date | false | null | undefined,\n props: DateFormatProps & DatePickerBaseProps,\n ignoreRange = false,\n) {\n if (date == null) {\n return \"\";\n } else if (!isDateValid(date)) {\n return props.invalidDateMessage;\n } else if (ignoreRange || isDayInRange(date, [props.minDate, props.maxDate])) {\n return props.formatDate(date, props.locale);\n } else {\n return props.outOfRangeMessage;\n }\n}\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n};\n","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Classes } from \"@blueprintjs/core\";\n\nconst NS = Classes.getClassNamespace();\n\nexport const DATEINPUT = `${NS}-dateinput`;\nexport const DATEINPUT_POPOVER = `${DATEINPUT}-popover`;\n\nexport const DATEPICKER = `${NS}-datepicker`;\nexport const DATEPICKER_CAPTION = `${DATEPICKER}-caption`;\nexport const DATEPICKER_CAPTION_CARET = `${DATEPICKER_CAPTION}-caret`;\nexport const DATEPICKER_CAPTION_MEASURE = `${DATEPICKER_CAPTION}-measure`;\nexport const DATEPICKER_CAPTION_SELECT = `${DATEPICKER_CAPTION}-select`;\nexport const DATEPICKER_CONTENT = `${DATEPICKER}-content`;\nexport const DATEPICKER_DAY = \"DayPicker-Day\";\nexport const DATEPICKER_DAY_DISABLED = `${DATEPICKER_DAY}--disabled`;\nexport const DATEPICKER_DAY_OUTSIDE = `${DATEPICKER_DAY}--outside`;\nexport const DATEPICKER_DAY_SELECTED = `${DATEPICKER_DAY}--selected`;\nexport const DATEPICKER_DAY_IS_TODAY = `${DATEPICKER_DAY}--isToday`;\nexport const DATEPICKER_DAY_WRAPPER = `${DATEPICKER}-day-wrapper`;\nexport const DATEPICKER_FOOTER = `${DATEPICKER}-footer`;\nexport const DATEPICKER_MONTH_SELECT = `${DATEPICKER}-month-select`;\nexport const DATEPICKER_YEAR_SELECT = `${DATEPICKER}-year-select`;\nexport const DATEPICKER_NAVBAR = `${DATEPICKER}-navbar`;\nexport const DATEPICKER_NAVBUTTON = `DayPicker-NavButton`;\nexport const DATEPICKER_TIMEPICKER_WRAPPER = `${DATEPICKER}-timepicker-wrapper`;\n\nexport const DATERANGEPICKER = `${NS}-daterangepicker`;\nexport const DATERANGEPICKER_CALENDARS = `${DATERANGEPICKER}-calendars`;\nexport const DATERANGEPICKER_CONTIGUOUS = `${DATERANGEPICKER}-contiguous`;\nexport const DATERANGEPICKER_SINGLE_MONTH = `${DATERANGEPICKER}-single-month`;\nexport const DATERANGEPICKER_DAY_SELECTED_RANGE = `${DATEPICKER_DAY}--selected-range`;\nexport const DATERANGEPICKER_DAY_HOVERED_RANGE = `${DATEPICKER_DAY}--hovered-range`;\nexport const DATERANGEPICKER_SHORTCUTS = `${DATERANGEPICKER}-shortcuts`;\nexport const DATERANGEPICKER_TIMEPICKERS = `${DATERANGEPICKER}-timepickers`;\n\nexport const DATETIMEPICKER = `${NS}-datetimepicker`;\n\nexport const TIMEPICKER = `${NS}-timepicker`;\nexport const TIMEPICKER_ARROW_BUTTON = `${TIMEPICKER}-arrow-button`;\nexport const TIMEPICKER_ARROW_ROW = `${TIMEPICKER}-arrow-row`;\nexport const TIMEPICKER_DIVIDER_TEXT = `${TIMEPICKER}-divider-text`;\nexport const TIMEPICKER_HOUR = `${TIMEPICKER}-hour`;\nexport const TIMEPICKER_INPUT = `${TIMEPICKER}-input`;\nexport const TIMEPICKER_INPUT_ROW = `${TIMEPICKER}-input-row`;\nexport const TIMEPICKER_MILLISECOND = `${TIMEPICKER}-millisecond`;\nexport const TIMEPICKER_MINUTE = `${TIMEPICKER}-minute`;\nexport const TIMEPICKER_SECOND = `${TIMEPICKER}-second`;\nexport const TIMEPICKER_AMPM_SELECT = `${TIMEPICKER}-ampm-select`;\n","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst ns = \"[Blueprint]\";\n\nexport const DATEPICKER_DEFAULT_VALUE_INVALID =\n ns + ` defaultValue must be within minDate and maxDate bounds.`;\nexport const DATEPICKER_INITIAL_MONTH_INVALID =\n ns + ` initialMonth must be within minDate and maxDate bounds.`;\nexport const DATEPICKER_MAX_DATE_INVALID = ns + ` maxDate must be later than minDate.`;\nexport const DATEPICKER_VALUE_INVALID = ns + ` value prop must be within minDate and maxDate bounds.`;\n\nexport const DATERANGEPICKER_DEFAULT_VALUE_INVALID = DATEPICKER_DEFAULT_VALUE_INVALID.replace(\n \"DatePicker\",\n \"DateRangePicker\",\n);\nexport const DATERANGEPICKER_INITIAL_MONTH_INVALID = DATEPICKER_INITIAL_MONTH_INVALID.replace(\n \"DatePicker\",\n \"DateRangePicker\",\n);\nexport const DATERANGEPICKER_MAX_DATE_INVALID = DATEPICKER_MAX_DATE_INVALID.replace(\"DatePicker\", \"DateRangePicker\");\nexport const DATERANGEPICKER_VALUE_INVALID = DATEPICKER_VALUE_INVALID.replace(\"DatePicker\", \"DateRangePicker\");\nexport const DATERANGEPICKER_PREFERRED_BOUNDARY_TO_MODIFY_INVALID =\n \" preferredBoundaryToModify must be a valid Boundary if defined.\";\n\nexport const DATERANGEINPUT_NULL_VALUE =\n ns +\n ` value cannot be null. Pass undefined to clear the value and operate in` +\n \" uncontrolled mode, or pass [null, null] to clear the value and continue operating in controlled mode.\";\n","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Measure width in pixels of a string displayed with styles provided by `className`.\n * Should only be used if measuring can't be done with existing DOM elements.\n */\nexport function measureTextWidth(text: string, className = \"\", containerElement = document.body) {\n if (containerElement == null) {\n return 0;\n }\n const span = document.createElement(\"span\");\n span.classList.add(className);\n span.textContent = text;\n\n containerElement.appendChild(span);\n const spanWidth = span.offsetWidth;\n span.remove();\n\n return spanWidth;\n}\n\nexport function padWithZeroes(str: string, minLength: number) {\n if (str.length < minLength) {\n return `${stringRepeat(\"0\", minLength - str.length)}${str}`;\n } else {\n return str;\n }\n}\n\nfunction stringRepeat(str: string, numTimes: number) {\n return new Array(numTimes + 1).join(str);\n}\n","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport * as React from \"react\";\nimport { CaptionElementProps } from \"react-day-picker\";\n\nimport { AbstractPureComponent2, Divider, HTMLSelect, IconSize, OptionProps } from \"@blueprintjs/core\";\n\nimport * as Classes from \"./common/classes\";\nimport { clone } from \"./common/dateUtils\";\nimport { measureTextWidth } from \"./common/utils\";\n\nexport interface IDatePickerCaptionProps extends CaptionElementProps {\n maxDate: Date;\n minDate: Date;\n onMonthChange?: (month: number) => void;\n onYearChange?: (year: number) => void;\n /** Callback invoked when the month or year `';\n var hiddenInput = (spanEle.children[0]);\n result = hiddenInput.placeholder;\n }\n return result;\n }\n /**\n * Sets the value to the input element.\n * ```\n * E.g : Input.setValue('content', element, \"Auto\", true );\n * ```\n *\n * @param {string} value - Specify the value of the input element.\n * @param {HTMLInputElement | HTMLTextAreaElement} element - The element on which the specified value is updated.\n * @param {string} floatLabelType - Specify the float label type of the input element.\n * @param {boolean} clearButton - Boolean value to specify whether the clear icon is enabled / disabled on the input.\n */\n function setValue(value, element, floatLabelType, clearButton) {\n element.value = value;\n calculateWidth(element, element.parentElement);\n if ((!isNullOrUndefined(floatLabelType)) && floatLabelType === 'Auto') {\n validateLabel(element, floatLabelType);\n }\n if (!isNullOrUndefined(clearButton) && clearButton) {\n var parentElement = getParentNode(element);\n if (!isNullOrUndefined(parentElement)) {\n var button = parentElement.getElementsByClassName(CLASSNAMES.CLEARICON)[0];\n if (!isNullOrUndefined(button)) {\n if (element.value && !isNullOrUndefined(parentElement) && parentElement.classList.contains('e-input-focus')) {\n removeClass([button], CLASSNAMES.CLEARICONHIDE);\n }\n else {\n addClass([button], CLASSNAMES.CLEARICONHIDE);\n }\n }\n }\n }\n checkInputValue(floatLabelType, element);\n }\n Input.setValue = setValue;\n /**\n * Sets the single or multiple cssClass to wrapper of input element.\n * ```\n * E.g : Input.setCssClass('e-custom-class', [element]);\n * ```\n *\n * @param {string} cssClass - Css class names which are needed to add.\n * @param {Element[] | NodeList} elements - The elements which are needed to add / remove classes.\n * @param {string} oldClass\n * - Css class names which are needed to remove. If old classes are need to remove, can give this optional parameter.\n */\n function setCssClass(cssClass, elements, oldClass) {\n if (!isNullOrUndefined(oldClass) && oldClass !== '') {\n removeClass(elements, oldClass.split(' '));\n }\n if (!isNullOrUndefined(cssClass) && cssClass !== '') {\n addClass(elements, cssClass.split(' '));\n }\n }\n Input.setCssClass = setCssClass;\n /**\n * Set the width to the placeholder when it overflows on the button such as spinbutton, clearbutton, icon etc\n * ```\n * E.g : Input.calculateWidth(element, container);\n * ```\n *\n * @param {any} element - Input element which is need to add.\n * @param {HTMLElement} container - The parent element which is need to get the label span to calculate width\n */\n function calculateWidth(element, container, moduleName) {\n var elementWidth = moduleName === 'multiselect' ? element : element.clientWidth - parseInt(getComputedStyle(element, null).getPropertyValue('padding-left'), 10);\n if (!isNullOrUndefined(container.getElementsByClassName('e-float-text-content')[0])) {\n if (container.getElementsByClassName('e-float-text-content')[0].classList.contains('e-float-text-overflow')) {\n container.getElementsByClassName('e-float-text-content')[0].classList.remove('e-float-text-overflow');\n }\n if (elementWidth < container.getElementsByClassName('e-float-text-content')[0].clientWidth || elementWidth === container.getElementsByClassName('e-float-text-content')[0].clientWidth) {\n container.getElementsByClassName('e-float-text-content')[0].classList.add('e-float-text-overflow');\n }\n }\n }\n Input.calculateWidth = calculateWidth;\n /**\n * Set the width to the wrapper of input element.\n * ```\n * E.g : Input.setWidth('200px', container);\n * ```\n *\n * @param {number | string} width - Width value which is need to add.\n * @param {HTMLElement} container - The element on which the width is need to add.\n */\n function setWidth(width, container) {\n if (typeof width === 'number') {\n container.style.width = formatUnit(width);\n }\n else if (typeof width === 'string') {\n container.style.width = (width.match(/px|%|em/)) ? (width) : (formatUnit(width));\n }\n calculateWidth(container.firstChild, container);\n }\n Input.setWidth = setWidth;\n /**\n * Set the placeholder attribute to the input element.\n * ```\n * E.g : Input.setPlaceholder('Search here', element);\n * ```\n *\n * @param {string} placeholder - Placeholder value which is need to add.\n * @param {HTMLInputElement | HTMLTextAreaElement} element - The element on which the placeholder is need to add.\n */\n function setPlaceholder(placeholder, element) {\n placeholder = encodePlaceHolder(placeholder);\n var parentElement = getParentNode(element);\n if (parentElement.classList.contains(CLASSNAMES.FLOATINPUT)) {\n if (!isNullOrUndefined(placeholder) && placeholder !== '') {\n parentElement.getElementsByClassName('e-float-text-content')[0] ? parentElement.getElementsByClassName(CLASSNAMES.FLOATTEXT)[0].children[0].textContent = placeholder : parentElement.getElementsByClassName(CLASSNAMES.FLOATTEXT)[0].textContent = placeholder;\n parentElement.classList.remove(CLASSNAMES.NOFLOATLABEL);\n element.removeAttribute('placeholder');\n }\n else {\n parentElement.classList.add(CLASSNAMES.NOFLOATLABEL);\n parentElement.getElementsByClassName('e-float-text-content')[0] ? parentElement.getElementsByClassName(CLASSNAMES.FLOATTEXT)[0].children[0].textContent = '' : parentElement.getElementsByClassName(CLASSNAMES.FLOATTEXT)[0].textContent = '';\n }\n }\n else {\n if (!isNullOrUndefined(placeholder) && placeholder !== '') {\n attributes(element, { 'placeholder': placeholder });\n }\n else {\n element.removeAttribute('placeholder');\n }\n }\n }\n Input.setPlaceholder = setPlaceholder;\n /**\n * Set the read only attribute to the input element\n * ```\n * E.g : Input.setReadonly(true, element);\n * ```\n *\n * @param {boolean} isReadonly\n * - Boolean value to specify whether to set read only. Setting \"True\" value enables read only.\n * @param {HTMLInputElement | HTMLTextAreaElement} element\n * - The element which is need to enable read only.\n */\n function setReadonly(isReadonly, element, floatLabelType) {\n if (isReadonly) {\n attributes(element, { readonly: '' });\n }\n else {\n element.removeAttribute('readonly');\n }\n if (!isNullOrUndefined(floatLabelType)) {\n validateLabel(element, floatLabelType);\n }\n }\n Input.setReadonly = setReadonly;\n /**\n * Displays the element direction from right to left when its enabled.\n * ```\n * E.g : Input.setEnableRtl(true, [inputObj.container]);\n * ```\n *\n * @param {boolean} isRtl\n * - Boolean value to specify whether to set RTL. Setting \"True\" value enables the RTL mode.\n * @param {Element[] | NodeList} elements\n * - The elements that are needed to enable/disable RTL.\n */\n function setEnableRtl(isRtl, elements) {\n if (isRtl) {\n addClass(elements, CLASSNAMES.RTL);\n }\n else {\n removeClass(elements, CLASSNAMES.RTL);\n }\n }\n Input.setEnableRtl = setEnableRtl;\n /**\n * Enables or disables the given input element.\n * ```\n * E.g : Input.setEnabled(false, element);\n * ```\n *\n * @param {boolean} isEnable\n * - Boolean value to specify whether to enable or disable.\n * @param {HTMLInputElement | HTMLTextAreaElement} element\n * - Element to be enabled or disabled.\n */\n function setEnabled(isEnable, element, floatLabelType, inputContainer) {\n var disabledAttrs = { 'disabled': 'disabled', 'aria-disabled': 'true' };\n var considerWrapper = isNullOrUndefined(inputContainer) ? false : true;\n if (isEnable) {\n element.classList.remove(CLASSNAMES.DISABLE);\n removeAttributes(disabledAttrs, element);\n if (considerWrapper) {\n removeClass([inputContainer], CLASSNAMES.DISABLE);\n }\n }\n else {\n element.classList.add(CLASSNAMES.DISABLE);\n addAttributes(disabledAttrs, element);\n if (considerWrapper) {\n addClass([inputContainer], CLASSNAMES.DISABLE);\n }\n }\n if (!isNullOrUndefined(floatLabelType)) {\n validateLabel(element, floatLabelType);\n }\n }\n Input.setEnabled = setEnabled;\n function setClearButton(isClear, element, inputObject, initial, internalCreateElement) {\n var makeElement = !isNullOrUndefined(internalCreateElement) ? internalCreateElement : createElement;\n if (isClear) {\n inputObject.clearButton = createClearButton(element, inputObject, initial, makeElement);\n }\n else {\n remove(inputObject.clearButton);\n inputObject.clearButton = null;\n }\n }\n Input.setClearButton = setClearButton;\n /**\n * Removing the multiple attributes from the given element such as \"disabled\",\"id\" , etc.\n * ```\n * E.g : Input.removeAttributes({ 'disabled': 'disabled', 'aria-disabled': 'true' }, element);\n * ```\n *\n * @param {string} attrs\n * - Array of attributes which are need to removed from the element.\n * @param {HTMLInputElement | HTMLElement} element\n * - Element on which the attributes are needed to be removed.\n */\n function removeAttributes(attrs, element) {\n for (var _i = 0, _a = Object.keys(attrs); _i < _a.length; _i++) {\n var key = _a[_i];\n var parentElement = getParentNode(element);\n if (key === 'disabled') {\n element.classList.remove(CLASSNAMES.DISABLE);\n }\n if (key === 'disabled' && parentElement.classList.contains(CLASSNAMES.INPUTGROUP)) {\n parentElement.classList.remove(CLASSNAMES.DISABLE);\n }\n if (key === 'placeholder' && parentElement.classList.contains(CLASSNAMES.FLOATINPUT)) {\n parentElement.getElementsByClassName(CLASSNAMES.FLOATTEXT)[0].textContent = '';\n }\n else {\n element.removeAttribute(key);\n }\n }\n }\n Input.removeAttributes = removeAttributes;\n /**\n * Adding the multiple attributes to the given element such as \"disabled\",\"id\" , etc.\n * ```\n * E.g : Input.addAttributes({ 'id': 'inputpopup' }, element);\n * ```\n *\n * @param {string} attrs\n * - Array of attributes which is added to element.\n * @param {HTMLInputElement | HTMLElement} element\n * - Element on which the attributes are needed to be added.\n */\n function addAttributes(attrs, element) {\n for (var _i = 0, _a = Object.keys(attrs); _i < _a.length; _i++) {\n var key = _a[_i];\n var parentElement = getParentNode(element);\n if (key === 'disabled') {\n element.classList.add(CLASSNAMES.DISABLE);\n }\n if (key === 'disabled' && parentElement.classList.contains(CLASSNAMES.INPUTGROUP)) {\n parentElement.classList.add(CLASSNAMES.DISABLE);\n }\n if (key === 'placeholder' && parentElement.classList.contains(CLASSNAMES.FLOATINPUT)) {\n parentElement.getElementsByClassName(CLASSNAMES.FLOATTEXT)[0].textContent = attrs[\"\" + key];\n }\n else {\n element.setAttribute(key, attrs[\"\" + key]);\n }\n }\n }\n Input.addAttributes = addAttributes;\n function removeFloating(input) {\n var container = input.container;\n if (!isNullOrUndefined(container) && container.classList.contains(CLASSNAMES.FLOATINPUT)) {\n var inputEle = container.querySelector('textarea') ? container.querySelector('textarea') :\n container.querySelector('input');\n var placeholder = container.querySelector('.' + CLASSNAMES.FLOATTEXT).textContent;\n var clearButton = container.querySelector('.e-clear-icon') !== null;\n detach(container.querySelector('.' + CLASSNAMES.FLOATLINE));\n detach(container.querySelector('.' + CLASSNAMES.FLOATTEXT));\n classList(container, [CLASSNAMES.INPUTGROUP], [CLASSNAMES.FLOATINPUT]);\n unwireFloatingEvents(inputEle);\n attributes(inputEle, { 'placeholder': placeholder });\n inputEle.classList.add(CLASSNAMES.INPUT);\n if (!clearButton && inputEle.tagName === 'INPUT') {\n inputEle.removeAttribute('required');\n }\n }\n }\n Input.removeFloating = removeFloating;\n function addFloating(input, type, placeholder, internalCreateElement) {\n var makeElement = !isNullOrUndefined(internalCreateElement) ? internalCreateElement : createElement;\n var container = closest(input, '.' + CLASSNAMES.INPUTGROUP);\n floatType = type;\n if (type !== 'Never') {\n var customTag = container.tagName;\n customTag = customTag !== 'DIV' && customTag !== 'SPAN' ? customTag : null;\n var args = { element: input, floatLabelType: type,\n customTag: customTag, properties: { placeholder: placeholder } };\n var iconEle = container.querySelector('.e-clear-icon');\n var inputObj = { container: container };\n input.classList.remove(CLASSNAMES.INPUT);\n createFloatingInput(args, inputObj, makeElement);\n createSpanElement(inputObj.container, makeElement);\n calculateWidth(args.element, inputObj.container);\n var isPrependIcon = container.classList.contains('e-float-icon-left');\n if (isNullOrUndefined(iconEle)) {\n if (isPrependIcon) {\n var inputWrap = container.querySelector('.e-input-in-wrap');\n iconEle = inputWrap.querySelector('.e-input-group-icon');\n }\n else {\n iconEle = container.querySelector('.e-input-group-icon');\n }\n }\n if (isNullOrUndefined(iconEle)) {\n if (isPrependIcon) {\n iconEle = container.querySelector('.e-input-group-icon');\n }\n if (isNullOrUndefined(iconEle)) {\n container.classList.remove(CLASSNAMES.INPUTGROUP);\n }\n }\n else {\n var floatLine = container.querySelector('.' + CLASSNAMES.FLOATLINE);\n var floatText = container.querySelector('.' + CLASSNAMES.FLOATTEXT);\n var wrapper = isPrependIcon ? container.querySelector('.e-input-in-wrap') : container;\n wrapper.insertBefore(input, iconEle);\n wrapper.insertBefore(floatLine, iconEle);\n wrapper.insertBefore(floatText, iconEle);\n }\n }\n checkFloatLabelType(type, input.parentElement);\n }\n Input.addFloating = addFloating;\n /**\n * Create the span inside the label and add the label text into the span textcontent\n * ```\n * E.g : Input.createSpanElement(inputObject, makeElement);\n * ```\n *\n * @param {InputObject} inputObject\n * - Element which is need to get the label\n * @param {createElementParams} makeElement\n * - Element which is need to create the span\n */\n function createSpanElement(inputObject, makeElement) {\n if (inputObject.classList.contains('e-outline') && inputObject.getElementsByClassName('e-float-text')[0]) {\n var labelSpanElement = makeElement('span', { className: CLASSNAMES.FLOATTEXTCONTENT });\n labelSpanElement.innerHTML = inputObject.getElementsByClassName('e-float-text')[0].innerHTML;\n inputObject.getElementsByClassName('e-float-text')[0].innerHTML = '';\n inputObject.getElementsByClassName('e-float-text')[0].appendChild(labelSpanElement);\n }\n }\n Input.createSpanElement = createSpanElement;\n /**\n * Enable or Disable the ripple effect on the icons inside the Input. Ripple effect is only applicable for material theme.\n * ```\n * E.g : Input.setRipple(true, [inputObjects]);\n * ```\n *\n * @param {boolean} isRipple\n * - Boolean value to specify whether to enable the ripple effect.\n * @param {InputObject[]} inputObj\n * - Specify the collection of input objects.\n */\n function setRipple(isRipple, inputObj) {\n for (var i = 0; i < inputObj.length; i++) {\n _internalRipple(isRipple, inputObj[parseInt(i.toString())].container);\n }\n }\n Input.setRipple = setRipple;\n function _internalRipple(isRipple, container, button) {\n var argsButton = [];\n argsButton.push(button);\n var buttons = isNullOrUndefined(button) ?\n container.querySelectorAll('.e-input-group-icon') : argsButton;\n if (isRipple && buttons.length > 0) {\n for (var index = 0; index < buttons.length; index++) {\n buttons[parseInt(index.toString())].addEventListener('mousedown', _onMouseDownRipple, false);\n buttons[parseInt(index.toString())].addEventListener('mouseup', _onMouseUpRipple, false);\n }\n }\n else if (buttons.length > 0) {\n for (var index = 0; index < buttons.length; index++) {\n buttons[parseInt(index.toString())].removeEventListener('mousedown', _onMouseDownRipple, this);\n buttons[parseInt(index.toString())].removeEventListener('mouseup', _onMouseUpRipple, this);\n }\n }\n }\n function _onMouseRipple(container, button) {\n if (!container.classList.contains('e-disabled') && !container.querySelector('input').readOnly) {\n button.classList.add('e-input-btn-ripple');\n }\n }\n function _onMouseDownRipple() {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var ele = this;\n var parentEle = this.parentElement;\n while (!parentEle.classList.contains('e-input-group')) {\n parentEle = parentEle.parentElement;\n }\n _onMouseRipple(parentEle, ele);\n }\n function _onMouseUpRipple() {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var ele = this;\n setTimeout(function () {\n ele.classList.remove('e-input-btn-ripple');\n }, 500);\n }\n function createIconEle(iconClass, makeElement) {\n var button = makeElement('span', { className: iconClass });\n button.classList.add('e-input-group-icon');\n return button;\n }\n /**\n * Creates a new span element with the given icons added and append it in container element.\n * ```\n * E.g : Input.addIcon('append', 'e-icon-spin', inputObj.container, inputElement);\n * ```\n *\n * @param {string} position - Specify the icon placement on the input.Possible values are append and prepend.\n * @param {string | string[]} icons - Icon classes which are need to add to the span element which is going to created.\n * Span element acts as icon or button element for input.\n * @param {HTMLElement} container - The container on which created span element is going to append.\n * @param {HTMLElement} input - The inputElement on which created span element is going to prepend.\n */\n /* eslint-disable @typescript-eslint/indent */\n function addIcon(position, icons, container, input, internalCreate) {\n /* eslint-enable @typescript-eslint/indent */\n var result = typeof (icons) === 'string' ? icons.split(',')\n : icons;\n if (position.toLowerCase() === 'append') {\n for (var _i = 0, result_1 = result; _i < result_1.length; _i++) {\n var icon = result_1[_i];\n appendSpan(icon, container, internalCreate);\n }\n }\n else {\n for (var _a = 0, result_2 = result; _a < result_2.length; _a++) {\n var icon = result_2[_a];\n prependSpan(icon, container, input, internalCreate);\n }\n }\n if (container.getElementsByClassName('e-input-group-icon')[0] && container.getElementsByClassName('e-float-text-overflow')[0]) {\n container.getElementsByClassName('e-float-text-overflow')[0].classList.add('e-icon');\n }\n }\n Input.addIcon = addIcon;\n /**\n * Creates a new span element with the given icons added and prepend it in input element.\n * ```\n * E.g : Input.prependSpan('e-icon-spin', inputObj.container, inputElement);\n * ```\n *\n * @param {string} iconClass - Icon classes which are need to add to the span element which is going to created.\n * Span element acts as icon or button element for input.\n * @param {HTMLElement} container - The container on which created span element is going to append.\n * @param {HTMLElement} inputElement - The inputElement on which created span element is going to prepend.\n */\n /* eslint-disable @typescript-eslint/indent */\n function prependSpan(iconClass, container, inputElement, internalCreateElement) {\n /* eslint-enable @typescript-eslint/indent */\n var makeElement = !isNullOrUndefined(internalCreateElement) ? internalCreateElement : createElement;\n var button = createIconEle(iconClass, makeElement);\n container.classList.add('e-float-icon-left');\n var innerWrapper = container.querySelector('.e-input-in-wrap');\n if (isNullOrUndefined(innerWrapper)) {\n innerWrapper = makeElement('span', { className: 'e-input-in-wrap' });\n inputElement.parentNode.insertBefore(innerWrapper, inputElement);\n var result = container.querySelectorAll(inputElement.tagName + ' ~ *');\n innerWrapper.appendChild(inputElement);\n for (var i = 0; i < result.length; i++) {\n innerWrapper.appendChild(result[parseInt(i.toString())]);\n }\n }\n innerWrapper.parentNode.insertBefore(button, innerWrapper);\n if (!container.classList.contains(CLASSNAMES.INPUTGROUP)) {\n container.classList.add(CLASSNAMES.INPUTGROUP);\n }\n _internalRipple(true, container, button);\n return button;\n }\n Input.prependSpan = prependSpan;\n /**\n * Creates a new span element with the given icons added and append it in container element.\n * ```\n * E.g : Input.appendSpan('e-icon-spin', inputObj.container);\n * ```\n *\n * @param {string} iconClass - Icon classes which are need to add to the span element which is going to created.\n * Span element acts as icon or button element for input.\n * @param {HTMLElement} container - The container on which created span element is going to append.\n */\n function appendSpan(iconClass, container, internalCreateElement) {\n var makeElement = !isNullOrUndefined(internalCreateElement) ? internalCreateElement : createElement;\n var button = createIconEle(iconClass, makeElement);\n if (!container.classList.contains(CLASSNAMES.INPUTGROUP)) {\n container.classList.add(CLASSNAMES.INPUTGROUP);\n }\n var wrap = (container.classList.contains('e-float-icon-left')) ? container.querySelector('.e-input-in-wrap') :\n container;\n wrap.appendChild(button);\n _internalRipple(true, container, button);\n return button;\n }\n Input.appendSpan = appendSpan;\n function validateInputType(containerElement, input) {\n if (input.type === 'hidden') {\n containerElement.classList.add('e-hidden');\n }\n else if (containerElement.classList.contains('e-hidden')) {\n containerElement.classList.remove('e-hidden');\n }\n }\n Input.validateInputType = validateInputType;\n})(Input || (Input = {}));\n/* eslint-enable valid-jsdoc, jsdoc/require-jsdoc, jsdoc/require-returns, jsdoc/require-param */\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/* eslint-disable @typescript-eslint/no-unused-expressions */\nimport { Component, EventHandler, Internationalization } from '@syncfusion/ej2-base';\nimport { KeyboardEvents, L10n } from '@syncfusion/ej2-base';\nimport { NotifyPropertyChanges } from '@syncfusion/ej2-base';\nimport { cldrData, getDefaultDateObject, rippleEffect } from '@syncfusion/ej2-base';\nimport { removeClass, detach, closest, addClass, attributes } from '@syncfusion/ej2-base';\nimport { getValue, getUniqueID, extend, Browser } from '@syncfusion/ej2-base';\nimport { Property, Event, isNullOrUndefined, throwError } from '@syncfusion/ej2-base';\n//class constant defination.\nvar OTHERMONTH = 'e-other-month';\nvar OTHERDECADE = 'e-other-year';\nvar ROOT = 'e-calendar';\nvar DEVICE = 'e-device';\nvar HEADER = 'e-header';\nvar RTL = 'e-rtl';\nvar CONTENT = 'e-content';\nvar YEAR = 'e-year';\nvar MONTH = 'e-month';\nvar DECADE = 'e-decade';\nvar ICON = 'e-icons';\nvar PREVICON = 'e-prev';\nvar NEXTICON = 'e-next';\nvar PREVSPAN = 'e-date-icon-prev';\nvar NEXTSPAN = 'e-date-icon-next ';\nvar ICONCONTAINER = 'e-icon-container';\nvar DISABLED = 'e-disabled';\nvar OVERLAY = 'e-overlay';\nvar WEEKEND = 'e-weekend';\nvar WEEKNUMBER = 'e-week-number';\nvar SELECTED = 'e-selected';\nvar FOCUSEDDATE = 'e-focused-date';\nvar OTHERMONTHROW = 'e-month-hide';\nvar TODAY = 'e-today';\nvar TITLE = 'e-title';\nvar LINK = 'e-day';\nvar CELL = 'e-cell';\nvar WEEKHEADER = 'e-week-header';\nvar ZOOMIN = 'e-zoomin';\nvar FOOTER = 'e-footer-container';\nvar BTN = 'e-btn';\nvar FLAT = 'e-flat';\nvar CSS = 'e-css';\nvar PRIMARY = 'e-primary';\nvar DAYHEADERLONG = 'e-calendar-day-header-lg';\nvar dayMilliSeconds = 86400000;\nvar minutesMilliSeconds = 60000;\n/**\n *\n * @private\n */\nvar CalendarBase = /** @class */ (function (_super) {\n __extends(CalendarBase, _super);\n /**\n * Initialized new instance of Calendar Class.\n * Constructor for creating the widget\n *\n * @param {CalendarBaseModel} options - Specifies the CalendarBase model.\n * @param {string | HTMLElement} element - Specifies the element to render as component.\n * @private\n */\n function CalendarBase(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.effect = '';\n _this.isPopupClicked = false;\n _this.isDateSelected = true;\n _this.isTodayClicked = false;\n _this.preventChange = false;\n _this.isAngular = false;\n _this.previousDates = false;\n return _this;\n }\n /**\n * To Initialize the control rendering.\n *\n * @returns {void}\n * @private\n */\n CalendarBase.prototype.render = function () {\n this.rangeValidation(this.min, this.max);\n this.calendarEleCopy = this.element.cloneNode(true);\n if (this.calendarMode === 'Islamic') {\n if (+(this.min.setSeconds(0)) === +new Date(1900, 0, 1, 0, 0, 0)) {\n this.min = new Date(1944, 2, 18);\n }\n if (+this.max === +new Date(2099, 11, 31)) {\n this.max = new Date(2069, 10, 16);\n }\n }\n this.globalize = new Internationalization(this.locale);\n if (isNullOrUndefined(this.firstDayOfWeek) || this.firstDayOfWeek > 6 || this.firstDayOfWeek < 0) {\n this.setProperties({ firstDayOfWeek: this.globalize.getFirstDayOfWeek() }, true);\n }\n this.todayDisabled = false;\n this.todayDate = new Date(new Date().setHours(0, 0, 0, 0));\n if (this.getModuleName() === 'calendar') {\n this.element.classList.add(ROOT);\n if (this.enableRtl) {\n this.element.classList.add(RTL);\n }\n if (Browser.isDevice) {\n this.element.classList.add(DEVICE);\n }\n attributes(this.element, {\n 'data-role': 'calendar'\n });\n this.tabIndex = this.element.hasAttribute('tabindex') ? this.element.getAttribute('tabindex') : '0';\n this.element.setAttribute('tabindex', this.tabIndex);\n }\n else {\n this.calendarElement = this.createElement('div');\n this.calendarElement.classList.add(ROOT);\n if (this.enableRtl) {\n this.calendarElement.classList.add(RTL);\n }\n if (Browser.isDevice) {\n this.calendarElement.classList.add(DEVICE);\n }\n attributes(this.calendarElement, {\n 'data-role': 'calendar'\n });\n }\n if (!isNullOrUndefined(closest(this.element, 'fieldset')) && closest(this.element, 'fieldset').disabled) {\n this.enabled = false;\n }\n this.createHeader();\n this.createContent();\n this.wireEvents();\n };\n CalendarBase.prototype.rangeValidation = function (min, max) {\n if (isNullOrUndefined(min)) {\n this.setProperties({ min: new Date(1900, 0, 1) }, true);\n }\n if (isNullOrUndefined(max)) {\n this.setProperties({ max: new Date(2099, 11, 31) }, true);\n }\n };\n CalendarBase.prototype.getDefaultKeyConfig = function () {\n this.defaultKeyConfigs = {\n controlUp: 'ctrl+38',\n controlDown: 'ctrl+40',\n moveDown: 'downarrow',\n moveUp: 'uparrow',\n moveLeft: 'leftarrow',\n moveRight: 'rightarrow',\n select: 'enter',\n home: 'home',\n end: 'end',\n pageUp: 'pageup',\n pageDown: 'pagedown',\n shiftPageUp: 'shift+pageup',\n shiftPageDown: 'shift+pagedown',\n controlHome: 'ctrl+home',\n controlEnd: 'ctrl+end',\n altUpArrow: 'alt+uparrow',\n spacebar: 'space',\n altRightArrow: 'alt+rightarrow',\n altLeftArrow: 'alt+leftarrow'\n };\n return this.defaultKeyConfigs;\n };\n CalendarBase.prototype.validateDate = function (value) {\n this.setProperties({ min: this.checkDateValue(new Date(this.checkValue(this.min))) }, true);\n this.setProperties({ max: this.checkDateValue(new Date(this.checkValue(this.max))) }, true);\n this.currentDate = this.currentDate ? this.currentDate : new Date(new Date().setHours(0, 0, 0, 0));\n if (!isNullOrUndefined(value) && this.min <= this.max && value >= this.min && value <= this.max) {\n this.currentDate = new Date(this.checkValue(value));\n }\n };\n CalendarBase.prototype.setOverlayIndex = function (popupWrapper, popupElement, modal, isDevice) {\n if (isDevice && !isNullOrUndefined(popupElement) && !isNullOrUndefined(modal) && !isNullOrUndefined(popupWrapper)) {\n var index = parseInt(popupElement.style.zIndex, 10) ? parseInt(popupElement.style.zIndex, 10) : 1000;\n modal.style.zIndex = (index - 1).toString();\n popupWrapper.style.zIndex = index.toString();\n }\n };\n CalendarBase.prototype.minMaxUpdate = function (value) {\n if (!(+this.min <= +this.max)) {\n this.setProperties({ min: this.min }, true);\n addClass([this.element], OVERLAY);\n }\n else {\n removeClass([this.element], OVERLAY);\n }\n this.min = isNullOrUndefined(this.min) || !(+this.min) ? this.min = new Date(1900, 0, 1) : this.min;\n this.max = isNullOrUndefined(this.max) || !(+this.max) ? this.max = new Date(2099, 11, 31) : this.max;\n if (+this.min <= +this.max && value && +value <= +this.max && +value >= +this.min) {\n this.currentDate = new Date(this.checkValue(value));\n }\n else {\n if (+this.min <= +this.max && !value && +this.currentDate > +this.max) {\n this.currentDate = new Date(this.checkValue(this.max));\n }\n else {\n if (+this.currentDate < +this.min) {\n this.currentDate = new Date(this.checkValue(this.min));\n }\n }\n }\n };\n CalendarBase.prototype.createHeader = function () {\n var ariaPrevAttrs = {\n 'aria-disabled': 'false',\n 'aria-label': 'previous month'\n };\n var ariaNextAttrs = {\n 'aria-disabled': 'false',\n 'aria-label': 'next month'\n };\n var ariaTitleAttrs = {\n 'aria-atomic': 'true', 'aria-live': 'assertive', 'aria-label': 'title'\n };\n this.headerElement = this.createElement('div', { className: HEADER });\n var iconContainer = this.createElement('div', { className: ICONCONTAINER });\n this.previousIcon = this.createElement('button', { className: '' + PREVICON, attrs: { type: 'button' } });\n rippleEffect(this.previousIcon, {\n duration: 400,\n selector: '.e-prev',\n isCenterRipple: true\n });\n attributes(this.previousIcon, ariaPrevAttrs);\n this.nextIcon = this.createElement('button', { className: '' + NEXTICON, attrs: { type: 'button' } });\n rippleEffect(this.nextIcon, {\n selector: '.e-next',\n duration: 400,\n isCenterRipple: true\n });\n if (this.getModuleName() === 'daterangepicker') {\n attributes(this.previousIcon, { tabIndex: '-1' });\n attributes(this.nextIcon, { tabIndex: '-1' });\n }\n attributes(this.nextIcon, ariaNextAttrs);\n this.headerTitleElement = this.createElement('div', { className: '' + LINK + ' ' + TITLE });\n attributes(this.headerTitleElement, ariaTitleAttrs);\n this.headerElement.appendChild(this.headerTitleElement);\n this.previousIcon.appendChild(this.createElement('span', { className: '' + PREVSPAN + ' ' + ICON }));\n this.nextIcon.appendChild(this.createElement('span', { className: '' + NEXTSPAN + ' ' + ICON }));\n iconContainer.appendChild(this.previousIcon);\n iconContainer.appendChild(this.nextIcon);\n this.headerElement.appendChild(iconContainer);\n if (this.getModuleName() === 'calendar') {\n this.element.appendChild(this.headerElement);\n }\n else {\n this.calendarElement.appendChild(this.headerElement);\n }\n this.adjustLongHeaderSize();\n };\n CalendarBase.prototype.createContent = function () {\n this.contentElement = this.createElement('div', { className: CONTENT });\n this.table = this.createElement('table', { attrs: { tabIndex: '0', 'role': 'grid', 'aria-activedescendant': '', 'aria-labelledby': this.element.id } });\n if (this.getModuleName() === 'calendar') {\n this.element.appendChild(this.contentElement);\n }\n else {\n this.calendarElement.appendChild(this.contentElement);\n }\n this.contentElement.appendChild(this.table);\n this.createContentHeader();\n this.createContentBody();\n if (this.showTodayButton) {\n this.createContentFooter();\n }\n };\n CalendarBase.prototype.getCultureValues = function () {\n var culShortNames = [];\n var cldrObj;\n var dayFormat = 'days.stand-alone.' + this.dayHeaderFormat.toLowerCase();\n if (this.locale === 'en' || this.locale === 'en-US') {\n cldrObj = (getValue(dayFormat, getDefaultDateObject()));\n }\n else {\n cldrObj = (this.getCultureObjects(cldrData, '' + this.locale));\n }\n if (!isNullOrUndefined(cldrObj)) {\n for (var _i = 0, _a = Object.keys(cldrObj); _i < _a.length; _i++) {\n var obj = _a[_i];\n culShortNames.push(getValue(obj, cldrObj));\n }\n }\n return culShortNames;\n };\n CalendarBase.prototype.toCapitalize = function (text) {\n return !isNullOrUndefined(text) && text.length ? text[0].toUpperCase() + text.slice(1) : text;\n };\n CalendarBase.prototype.createContentHeader = function () {\n if (this.getModuleName() === 'calendar') {\n if (!isNullOrUndefined(this.element.querySelectorAll('.e-content .e-week-header')[0])) {\n detach(this.element.querySelectorAll('.e-content .e-week-header')[0]);\n }\n }\n else {\n if (!isNullOrUndefined(this.calendarElement.querySelectorAll('.e-content .e-week-header')[0])) {\n detach(this.calendarElement.querySelectorAll('.e-content .e-week-header')[0]);\n }\n }\n var daysCount = 6;\n var html = '';\n if (this.firstDayOfWeek > 6 || this.firstDayOfWeek < 0) {\n this.setProperties({ firstDayOfWeek: 0 }, true);\n }\n this.tableHeadElement = this.createElement('thead', { className: WEEKHEADER });\n if (this.weekNumber) {\n html += '';\n if (this.getModuleName() === 'calendar') {\n addClass([this.element], '' + WEEKNUMBER);\n }\n else {\n addClass([this.calendarElement], '' + WEEKNUMBER);\n }\n }\n // eslint-disable-next-line max-len\n var shortNames = this.getCultureValues().length > 0 && this.getCultureValues() ? this.shiftArray(((this.getCultureValues().length > 0 && this.getCultureValues())), this.firstDayOfWeek) : null;\n if (!isNullOrUndefined(shortNames)) {\n for (var days = 0; days <= daysCount; days++) {\n html += '' + this.toCapitalize(shortNames[days]) + '';\n }\n }\n html = '' + html + '';\n this.tableHeadElement.innerHTML = html;\n this.table.appendChild(this.tableHeadElement);\n };\n CalendarBase.prototype.createContentBody = function () {\n if (this.getModuleName() === 'calendar') {\n if (!isNullOrUndefined(this.element.querySelectorAll('.e-content tbody')[0])) {\n detach(this.element.querySelectorAll('.e-content tbody')[0]);\n }\n }\n else {\n if (!isNullOrUndefined(this.calendarElement.querySelectorAll('.e-content tbody')[0])) {\n detach(this.calendarElement.querySelectorAll('.e-content tbody')[0]);\n }\n }\n switch (this.start) {\n case 'Year':\n this.renderYears();\n break;\n case 'Decade':\n this.renderDecades();\n break;\n default:\n this.renderMonths();\n }\n };\n CalendarBase.prototype.updateFooter = function () {\n this.todayElement.textContent = this.l10.getConstant('today');\n this.todayElement.setAttribute('aria-label', this.l10.getConstant('today'));\n };\n CalendarBase.prototype.createContentFooter = function () {\n if (this.showTodayButton) {\n var minimum = new Date(+this.min);\n var maximum = new Date(+this.max);\n var l10nLocale = { today: 'Today' };\n this.globalize = new Internationalization(this.locale);\n this.l10 = new L10n(this.getModuleName(), l10nLocale, this.locale);\n this.todayElement = this.createElement('button', { attrs: { role: 'button' } });\n rippleEffect(this.todayElement);\n this.updateFooter();\n addClass([this.todayElement], [BTN, TODAY, FLAT, PRIMARY, CSS]);\n if ((!(+new Date(minimum.setHours(0, 0, 0, 0)) <= +this.todayDate &&\n +this.todayDate <= +new Date(maximum.setHours(0, 0, 0, 0)))) || (this.todayDisabled)) {\n addClass([this.todayElement], DISABLED);\n }\n this.footer = this.createElement('div', { className: FOOTER });\n this.footer.appendChild(this.todayElement);\n if (this.getModuleName() === 'calendar') {\n this.element.appendChild(this.footer);\n }\n if (this.getModuleName() === 'datepicker') {\n this.calendarElement.appendChild(this.footer);\n }\n if (this.getModuleName() === 'datetimepicker') {\n this.calendarElement.appendChild(this.footer);\n }\n if (!this.todayElement.classList.contains(DISABLED)) {\n EventHandler.add(this.todayElement, 'click', this.todayButtonClick, this);\n }\n }\n };\n CalendarBase.prototype.wireEvents = function (id, ref, keyConfig, moduleName) {\n EventHandler.add(this.headerTitleElement, 'click', this.navigateTitle, this);\n this.defaultKeyConfigs = extend(this.defaultKeyConfigs, this.keyConfigs);\n if (this.getModuleName() === 'calendar') {\n this.keyboardModule = new KeyboardEvents(this.element, {\n eventName: 'keydown',\n keyAction: this.keyActionHandle.bind(this),\n keyConfigs: this.defaultKeyConfigs\n });\n }\n else {\n this.keyboardModule = new KeyboardEvents(this.calendarElement, {\n eventName: 'keydown',\n keyAction: this.keyActionHandle.bind(this),\n keyConfigs: this.defaultKeyConfigs\n });\n }\n };\n CalendarBase.prototype.dateWireEvents = function (id, ref, keyConfig, moduleName) {\n this.defaultKeyConfigs = this.getDefaultKeyConfig();\n this.defaultKeyConfigs = extend(this.defaultKeyConfigs, keyConfig);\n this.serverModuleName = moduleName;\n };\n CalendarBase.prototype.todayButtonClick = function (e, value, isCustomDate) {\n if (this.showTodayButton) {\n if (this.currentView() === this.depth) {\n this.effect = '';\n }\n else {\n this.effect = 'e-zoomin';\n }\n if (this.getViewNumber(this.start) >= this.getViewNumber(this.depth)) {\n this.navigateTo(this.depth, new Date(this.checkValue(value)), isCustomDate);\n }\n else {\n this.navigateTo('Month', new Date(this.checkValue(value)), isCustomDate);\n }\n }\n };\n CalendarBase.prototype.resetCalendar = function () {\n this.calendarElement && detach(this.calendarElement);\n this.tableBodyElement && detach(this.tableBodyElement);\n this.table && detach(this.table);\n this.tableHeadElement && detach(this.tableHeadElement);\n this.nextIcon && detach(this.nextIcon);\n this.previousIcon && detach(this.previousIcon);\n this.footer && detach(this.footer);\n this.todayElement = null;\n this.renderDayCellArgs = null;\n this.calendarElement = this.tableBodyElement = this.footer = this.tableHeadElement =\n this.nextIcon = this.previousIcon = this.table = null;\n };\n CalendarBase.prototype.keyActionHandle = function (e, value, multiSelection) {\n var focusedDate = this.tableBodyElement.querySelector('tr td.e-focused-date');\n var selectedDate;\n if (multiSelection) {\n if (!isNullOrUndefined(focusedDate) && +value === parseInt(focusedDate.getAttribute('id').split('_')[0], 10)) {\n selectedDate = focusedDate;\n }\n else {\n selectedDate = this.tableBodyElement.querySelector('tr td.e-selected');\n }\n }\n else {\n selectedDate = this.tableBodyElement.querySelector('tr td.e-selected');\n }\n var view = this.getViewNumber(this.currentView());\n var depthValue = this.getViewNumber(this.depth);\n var levelRestrict = (view === depthValue && this.getViewNumber(this.start) >= depthValue);\n this.effect = '';\n switch (e.action) {\n case 'moveLeft':\n this.keyboardNavigate(-1, view, e, this.max, this.min);\n e.preventDefault();\n break;\n case 'moveRight':\n this.keyboardNavigate(1, view, e, this.max, this.min);\n e.preventDefault();\n break;\n case 'moveUp':\n if (view === 0) {\n this.keyboardNavigate(-7, view, e, this.max, this.min); // move the current date to the previous seven days.\n }\n else {\n this.keyboardNavigate(-4, view, e, this.max, this.min); // move the current year to the previous four days.\n }\n e.preventDefault();\n break;\n case 'moveDown':\n if (view === 0) {\n this.keyboardNavigate(7, view, e, this.max, this.min);\n }\n else {\n this.keyboardNavigate(4, view, e, this.max, this.min);\n }\n e.preventDefault();\n break;\n case 'select':\n if (e.target === this.todayElement) {\n this.todayButtonClick(e, value);\n }\n else {\n var element = !isNullOrUndefined(focusedDate) ? focusedDate : selectedDate;\n if (!isNullOrUndefined(element) && !element.classList.contains(DISABLED)) {\n if (levelRestrict) {\n // eslint-disable-next-line radix\n var d = new Date(parseInt('' + (element).id, 0));\n this.selectDate(e, d, (element));\n }\n else {\n this.contentClick(null, --view, (element), value);\n }\n }\n }\n break;\n case 'controlUp':\n this.title();\n e.preventDefault();\n break;\n case 'controlDown':\n if (!isNullOrUndefined(focusedDate) && !levelRestrict || !isNullOrUndefined(selectedDate) && !levelRestrict) {\n this.contentClick(null, --view, (focusedDate || selectedDate), value);\n }\n e.preventDefault();\n break;\n case 'home':\n this.currentDate = this.firstDay(this.currentDate);\n detach(this.tableBodyElement);\n if (view === 0) {\n this.renderMonths(e);\n }\n else if (view === 1) {\n this.renderYears(e);\n }\n else {\n this.renderDecades(e);\n }\n e.preventDefault();\n break;\n case 'end':\n this.currentDate = this.lastDay(this.currentDate, view);\n detach(this.tableBodyElement);\n if (view === 0) {\n this.renderMonths(e);\n }\n else if (view === 1) {\n this.renderYears(e);\n }\n else {\n this.renderDecades(e);\n }\n e.preventDefault();\n break;\n case 'pageUp':\n this.addMonths(this.currentDate, -1);\n this.navigateTo('Month', this.currentDate);\n e.preventDefault();\n break;\n case 'pageDown':\n this.addMonths(this.currentDate, 1);\n this.navigateTo('Month', this.currentDate);\n e.preventDefault();\n break;\n case 'shiftPageUp':\n this.addYears(this.currentDate, -1);\n this.navigateTo('Month', this.currentDate);\n e.preventDefault();\n break;\n case 'shiftPageDown':\n this.addYears(this.currentDate, 1);\n this.navigateTo('Month', this.currentDate);\n e.preventDefault();\n break;\n case 'controlHome':\n this.navigateTo('Month', new Date(this.currentDate.getFullYear(), 0, 1));\n e.preventDefault();\n break;\n case 'controlEnd':\n this.navigateTo('Month', new Date(this.currentDate.getFullYear(), 11, 31));\n e.preventDefault();\n break;\n }\n if (this.getModuleName() === 'calendar') {\n this.table.focus();\n }\n };\n CalendarBase.prototype.keyboardNavigate = function (number, currentView, e, max, min) {\n var date = new Date(this.checkValue(this.currentDate));\n switch (currentView) {\n case 2:\n this.addYears(this.currentDate, number);\n if (this.isMonthYearRange(this.currentDate)) {\n detach(this.tableBodyElement);\n this.renderDecades(e);\n }\n else {\n this.currentDate = date;\n }\n break;\n case 1:\n this.addMonths(this.currentDate, number);\n if (this.calendarMode === 'Gregorian') {\n if (this.isMonthYearRange(this.currentDate)) {\n detach(this.tableBodyElement);\n this.renderYears(e);\n }\n else {\n this.currentDate = date;\n }\n }\n else {\n if (this.isMonthYearRange(this.currentDate)) {\n detach(this.tableBodyElement);\n this.renderYears(e);\n }\n else {\n this.currentDate = date;\n }\n }\n break;\n case 0:\n this.addDay(this.currentDate, number, e, max, min);\n if (this.isMinMaxRange(this.currentDate)) {\n detach(this.tableBodyElement);\n this.renderMonths(e);\n }\n else {\n this.currentDate = date;\n }\n break;\n }\n };\n /**\n * Initialize the event handler\n *\n * @param {Date} value - Specifies value of date.\n * @returns {void}\n * @private\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n CalendarBase.prototype.preRender = function (value) {\n var _this = this;\n this.navigatePreviousHandler = this.navigatePrevious.bind(this);\n this.navigateNextHandler = this.navigateNext.bind(this);\n this.defaultKeyConfigs = this.getDefaultKeyConfig();\n this.navigateHandler = function (e) {\n _this.triggerNavigate(e);\n };\n };\n CalendarBase.prototype.minMaxDate = function (localDate) {\n var currentDate = new Date(new Date(+localDate).setHours(0, 0, 0, 0));\n var minDate = new Date(new Date(+this.min).setHours(0, 0, 0, 0));\n var maxDate = new Date(new Date(+this.max).setHours(0, 0, 0, 0));\n if (+currentDate === +minDate || +currentDate === +maxDate) {\n if (+localDate < +this.min) {\n localDate = new Date(+this.min);\n }\n if (+localDate > +this.max) {\n localDate = new Date(+this.max);\n }\n }\n return localDate;\n };\n CalendarBase.prototype.renderMonths = function (e, value, isCustomDate) {\n var numCells = this.weekNumber ? 8 : 7;\n var tdEles;\n if (this.calendarMode === 'Gregorian') {\n tdEles = this.renderDays(this.currentDate, value, null, null, isCustomDate, e);\n }\n else {\n tdEles = this.islamicModule.islamicRenderDays(this.currentDate, value);\n }\n this.createContentHeader();\n if (this.calendarMode === 'Gregorian') {\n this.renderTemplate(tdEles, numCells, MONTH, e, value);\n }\n else {\n this.islamicModule.islamicRenderTemplate(tdEles, numCells, MONTH, e, value);\n }\n };\n CalendarBase.prototype.renderDays = function (currentDate, value, multiSelection, values, isTodayDate, e) {\n var tdEles = [];\n var cellsCount = 42;\n var todayDate = isTodayDate ? new Date(+currentDate) : this.getDate(new Date(), this.timezone);\n var localDate = new Date(this.checkValue(currentDate));\n var minMaxDate;\n var currentMonth = localDate.getMonth();\n this.titleUpdate(currentDate, 'days');\n var d = localDate;\n localDate = new Date(d.getFullYear(), d.getMonth(), 0, d.getHours(), d.getMinutes(), d.getSeconds(), d.getMilliseconds());\n while (localDate.getDay() !== this.firstDayOfWeek) {\n this.setStartDate(localDate, -1 * dayMilliSeconds);\n }\n for (var day = 0; day < cellsCount; ++day) {\n var weekEle = this.createElement('td', { className: CELL });\n var weekAnchor = this.createElement('span');\n if (day % 7 === 0 && this.weekNumber) {\n // 6 days are added to get Last day of the week and 3 days are added to get middle day of the week.\n var numberOfDays = this.weekRule === 'FirstDay' ? 6 : (this.weekRule === 'FirstFourDayWeek' ? 3 : 0);\n var finalDate = new Date(localDate.getFullYear(), localDate.getMonth(), (localDate.getDate() + numberOfDays));\n weekAnchor.textContent = '' + this.getWeek(finalDate);\n weekEle.appendChild(weekAnchor);\n addClass([weekEle], '' + WEEKNUMBER);\n tdEles.push(weekEle);\n }\n minMaxDate = new Date(+localDate);\n localDate = this.minMaxDate(localDate);\n var dateFormatOptions = { type: 'dateTime', skeleton: 'full' };\n var date = this.globalize.parseDate(this.globalize.formatDate(localDate, dateFormatOptions), dateFormatOptions);\n var tdEle = this.dayCell(localDate);\n var title = this.globalize.formatDate(localDate, { type: 'date', skeleton: 'full' });\n var dayLink = this.createElement('span');\n dayLink.textContent = this.globalize.formatDate(localDate, { format: 'd', type: 'date', skeleton: 'yMd' });\n var disabled = (this.min > localDate) || (this.max < localDate);\n if (disabled) {\n addClass([tdEle], DISABLED);\n addClass([tdEle], OVERLAY);\n }\n else {\n dayLink.setAttribute('title', '' + title);\n }\n if (currentMonth !== localDate.getMonth()) {\n addClass([tdEle], OTHERMONTH);\n }\n if (localDate.getDay() === 0 || localDate.getDay() === 6) {\n addClass([tdEle], WEEKEND);\n }\n tdEle.appendChild(dayLink);\n this.renderDayCellArgs = {\n date: localDate,\n isDisabled: false,\n element: tdEle,\n isOutOfRange: disabled\n };\n var argument = this.renderDayCellArgs;\n this.renderDayCellEvent(argument);\n if (argument.isDisabled) {\n var selectDate = new Date(this.checkValue(value));\n var argsDate = new Date(this.checkValue(argument.date));\n if (multiSelection) {\n if (!isNullOrUndefined(values) && values.length > 0) {\n for (var index = 0; index < values.length; index++) {\n var localDateString = +new Date(this.globalize.formatDate(argument.date, { type: 'date', skeleton: 'yMd' }));\n var tempDateString = +new Date(this.globalize.formatDate(values[index], { type: 'date', skeleton: 'yMd' }));\n if (localDateString === tempDateString) {\n values.splice(index, 1);\n index = -1;\n }\n }\n }\n }\n else if (selectDate && +selectDate === +argsDate) {\n this.setProperties({ value: null }, true);\n }\n }\n if (this.renderDayCellArgs.isDisabled && !tdEle.classList.contains(SELECTED)) {\n addClass([tdEle], DISABLED);\n addClass([tdEle], OVERLAY);\n if (+this.renderDayCellArgs.date === +this.todayDate) {\n this.todayDisabled = true;\n }\n }\n var otherMnthBool = tdEle.classList.contains(OTHERMONTH);\n var disabledCls = tdEle.classList.contains(DISABLED);\n if (!disabledCls) {\n EventHandler.add(tdEle, 'click', this.clickHandler, this);\n }\n // to set the value as null while setting the disabled date onProperty change.\n // if (args.isDisabled && +this.value === +args.date) {\n // this.setProperties({ value: null }, true);\n // }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var currentTarget = void 0;\n if (!isNullOrUndefined(e) && e.type === 'click') {\n currentTarget = e.currentTarget;\n }\n if (multiSelection && !isNullOrUndefined(values) && !disabledCls) {\n for (var tempValue = 0; tempValue < values.length; tempValue++) {\n var type = (this.calendarMode === 'Gregorian') ? 'gregorian' : 'islamic';\n var formatOptions = { format: null, type: 'date', skeleton: 'short', calendar: type };\n var localDateString = this.globalize.formatDate(localDate, formatOptions);\n var tempDateString = this.globalize.formatDate(values[tempValue], formatOptions);\n if ((localDateString === tempDateString && this.getDateVal(localDate, values[tempValue]))\n || (this.getDateVal(localDate, value))) {\n addClass([tdEle], SELECTED);\n }\n if (!isNullOrUndefined(currentTarget) && currentTarget.innerText === tdEle.innerText &&\n this.previousDates && tdEle.classList.contains(SELECTED) && currentTarget.classList.contains(SELECTED)) {\n removeClass([tdEle], SELECTED);\n this.previousDates = false;\n var copyValues = this.copyValues(values);\n for (var i = 0; i < copyValues.length; i++) {\n var type_1 = (this.calendarMode === 'Gregorian') ? 'gregorian' : 'islamic';\n var formatOptions_1 = { format: null, type: 'date', skeleton: 'short', calendar: type_1 };\n var localDateString_1 = this.globalize.formatDate(date, formatOptions_1);\n var tempDateString_1 = this.globalize.formatDate(copyValues[i], formatOptions_1);\n if (localDateString_1 === tempDateString_1) {\n var index = copyValues.indexOf(copyValues[i]);\n copyValues.splice(index, 1);\n values.splice(index, 1);\n }\n }\n this.setProperties({ values: copyValues }, true);\n }\n else {\n this.updateFocus(otherMnthBool, disabledCls, localDate, tdEle, currentDate);\n }\n }\n if (values.length <= 0) {\n this.updateFocus(otherMnthBool, disabledCls, localDate, tdEle, currentDate);\n }\n }\n else if (!disabledCls && this.getDateVal(localDate, value)) {\n addClass([tdEle], SELECTED);\n }\n this.updateFocus(otherMnthBool, disabledCls, localDate, tdEle, currentDate);\n if (!isNullOrUndefined(date) && date.getFullYear() === todayDate.getFullYear() && date.getMonth() === todayDate.getMonth()\n && date.getDate() === todayDate.getDate()) {\n addClass([tdEle], TODAY);\n }\n tdEles.push(this.renderDayCellArgs.element);\n localDate = new Date(+minMaxDate);\n this.addDay(localDate, 1, null, this.max, this.min);\n }\n return tdEles;\n };\n CalendarBase.prototype.updateFocus = function (otherMonth, disabled, localDate, tableElement, currentDate) {\n if (currentDate.getDate() === localDate.getDate() && !otherMonth && !disabled) {\n addClass([tableElement], FOCUSEDDATE);\n }\n else {\n // eslint-disable-next-line radix\n if (currentDate >= this.max && parseInt(tableElement.id, 0) === +this.max && !otherMonth && !disabled) {\n addClass([tableElement], FOCUSEDDATE);\n }\n // eslint-disable-next-line radix\n if (currentDate <= this.min && parseInt(tableElement.id, 0) === +this.min && !otherMonth && !disabled) {\n addClass([tableElement], FOCUSEDDATE);\n }\n }\n };\n CalendarBase.prototype.renderYears = function (e, value) {\n this.removeTableHeadElement();\n var numCells = 4;\n var tdEles = [];\n var valueUtil = isNullOrUndefined(value);\n var curDate = new Date(this.checkValue(this.currentDate));\n var mon = curDate.getMonth();\n var yr = curDate.getFullYear();\n var localDate = curDate;\n var curYrs = localDate.getFullYear();\n var minYr = new Date(this.checkValue(this.min)).getFullYear();\n var minMonth = new Date(this.checkValue(this.min)).getMonth();\n var maxYr = new Date(this.checkValue(this.max)).getFullYear();\n var maxMonth = new Date(this.checkValue(this.max)).getMonth();\n localDate.setMonth(0);\n this.titleUpdate(this.currentDate, 'months');\n localDate.setDate(1);\n for (var month = 0; month < 12; ++month) {\n var tdEle = this.dayCell(localDate);\n var dayLink = this.createElement('span');\n var localMonth = (value && (value).getMonth() === localDate.getMonth());\n var select = (value && (value).getFullYear() === yr && localMonth);\n dayLink.textContent = this.toCapitalize(this.globalize.formatDate(localDate, {\n format: null, type: 'dateTime', skeleton: 'MMM'\n }));\n if ((this.min && (curYrs < minYr || (month < minMonth && curYrs === minYr))) || (this.max && (curYrs > maxYr || (month > maxMonth && curYrs >= maxYr)))) {\n addClass([tdEle], DISABLED);\n }\n else if (!valueUtil && select) {\n addClass([tdEle], SELECTED);\n }\n else {\n if (localDate.getMonth() === mon && this.currentDate.getMonth() === mon) {\n addClass([tdEle], FOCUSEDDATE);\n }\n }\n localDate.setDate(1);\n localDate.setMonth(localDate.getMonth() + 1);\n if (!tdEle.classList.contains(DISABLED)) {\n EventHandler.add(tdEle, 'click', this.clickHandler, this);\n }\n tdEle.appendChild(dayLink);\n tdEles.push(tdEle);\n }\n this.renderTemplate(tdEles, numCells, YEAR, e, value);\n };\n CalendarBase.prototype.renderDecades = function (e, value) {\n this.removeTableHeadElement();\n var numCells = 4;\n var yearCell = 12;\n var tdEles = [];\n var localDate = new Date(this.checkValue(this.currentDate));\n localDate.setMonth(0);\n localDate.setDate(1);\n var localYr = localDate.getFullYear();\n var startYr = new Date(localDate.setFullYear((localYr - localYr % 10)));\n var endYr = new Date(localDate.setFullYear((localYr - localYr % 10 + (10 - 1))));\n var startFullYr = startYr.getFullYear();\n var endFullYr = endYr.getFullYear();\n var startHdrYr = this.globalize.formatDate(startYr, {\n format: null, type: 'dateTime', skeleton: 'y'\n });\n var endHdrYr = this.globalize.formatDate(endYr, { format: null, type: 'dateTime', skeleton: 'y' });\n this.headerTitleElement.textContent = startHdrYr + ' - ' + (endHdrYr);\n var start = new Date(localYr - (localYr % 10) - 1, 0, 1);\n var startYear = start.getFullYear();\n for (var rowIterator = 0; rowIterator < yearCell; ++rowIterator) {\n var year = startYear + rowIterator;\n localDate.setFullYear(year);\n var tdEle = this.dayCell(localDate);\n var dayLink = this.createElement('span');\n dayLink.textContent = this.globalize.formatDate(localDate, {\n format: null, type: 'dateTime', skeleton: 'y'\n });\n if ((year < startFullYr) || (year > endFullYr)) {\n addClass([tdEle], OTHERDECADE);\n if (!isNullOrUndefined(value) && localDate.getFullYear() === (value).getFullYear()) {\n addClass([tdEle], SELECTED);\n }\n if (year < new Date(this.checkValue(this.min)).getFullYear() ||\n year > new Date(this.checkValue(this.max)).getFullYear()) {\n addClass([tdEle], DISABLED);\n }\n }\n else if (year < new Date(this.checkValue(this.min)).getFullYear() ||\n year > new Date(this.checkValue(this.max)).getFullYear()) {\n addClass([tdEle], DISABLED);\n }\n else if (!isNullOrUndefined(value) && localDate.getFullYear() === (value).getFullYear()) {\n addClass([tdEle], SELECTED);\n }\n else {\n if (localDate.getFullYear() === this.currentDate.getFullYear() && !tdEle.classList.contains(DISABLED)) {\n addClass([tdEle], FOCUSEDDATE);\n }\n }\n if (!tdEle.classList.contains(DISABLED)) {\n EventHandler.add(tdEle, 'click', this.clickHandler, this);\n }\n tdEle.appendChild(dayLink);\n tdEles.push(tdEle);\n }\n this.renderTemplate(tdEles, numCells, 'e-decade', e, value);\n };\n CalendarBase.prototype.dayCell = function (localDate) {\n var type = (this.calendarMode === 'Gregorian') ? 'gregorian' : 'islamic';\n var dateFormatOptions = { skeleton: 'full', type: 'dateTime', calendar: type };\n var date = this.globalize.parseDate(this.globalize.formatDate(localDate, dateFormatOptions), dateFormatOptions);\n var value;\n if (!isNullOrUndefined(date)) {\n value = date.valueOf();\n }\n var attrs = {\n className: CELL, attrs: { 'id': '' + getUniqueID('' + value), 'aria-selected': 'false' }\n };\n return this.createElement('td', attrs);\n };\n CalendarBase.prototype.firstDay = function (date) {\n var collection = this.currentView() !== 'Decade' ? this.tableBodyElement.querySelectorAll('td' + ':not(.' + OTHERMONTH + '') :\n this.tableBodyElement.querySelectorAll('td' + ':not(.' + OTHERDECADE + '');\n if (collection.length) {\n for (var i = 0; i < collection.length; i++) {\n if (!collection[i].classList.contains(DISABLED)) {\n // eslint-disable-next-line radix\n date = new Date(parseInt(collection[i].id, 0));\n break;\n }\n }\n }\n return date;\n };\n CalendarBase.prototype.lastDay = function (date, view) {\n var lastDate = new Date(date.getFullYear(), date.getMonth() + 1, 0);\n if (view !== 2) {\n var timeOffset = Math.abs(lastDate.getTimezoneOffset() - this.firstDay(date).getTimezoneOffset());\n if (timeOffset) {\n lastDate.setHours(this.firstDay(date).getHours() + (timeOffset / 60));\n }\n return this.findLastDay(lastDate);\n }\n else {\n return this.findLastDay(this.firstDay(lastDate));\n }\n };\n CalendarBase.prototype.checkDateValue = function (value) {\n return (!isNullOrUndefined(value) && value instanceof Date && !isNaN(+value)) ? value : null;\n };\n CalendarBase.prototype.findLastDay = function (date) {\n var collection = this.currentView() === 'Decade' ? this.tableBodyElement.querySelectorAll('td' + ':not(.' + OTHERDECADE + '') :\n this.tableBodyElement.querySelectorAll('td' + ':not(.' + OTHERMONTH + '');\n if (collection.length) {\n for (var i = collection.length - 1; i >= 0; i--) {\n if (!collection[i].classList.contains(DISABLED)) {\n // eslint-disable-next-line radix\n date = new Date(parseInt(collection[i].id, 0));\n break;\n }\n }\n }\n return date;\n };\n CalendarBase.prototype.removeTableHeadElement = function () {\n if (this.getModuleName() === 'calendar') {\n if (!isNullOrUndefined(this.element.querySelectorAll('.e-content table thead')[0])) {\n detach(this.tableHeadElement);\n }\n }\n else {\n if (!isNullOrUndefined(this.calendarElement.querySelectorAll('.e-content table thead')[0])) {\n detach(this.tableHeadElement);\n }\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n CalendarBase.prototype.renderTemplate = function (elements, count, classNm, e, value) {\n var view = this.getViewNumber(this.currentView());\n var trEle;\n this.tableBodyElement = this.createElement('tbody');\n this.table.appendChild(this.tableBodyElement);\n removeClass([this.contentElement, this.headerElement], [MONTH, DECADE, YEAR]);\n addClass([this.contentElement, this.headerElement], [classNm]);\n var weekNumCell = 41;\n var numberCell = 35;\n var otherMonthCell = 6;\n var row = count;\n var rowIterator = 0;\n for (var dayCell = 0; dayCell < elements.length / count; ++dayCell) {\n trEle = this.createElement('tr');\n for (rowIterator = 0 + rowIterator; rowIterator < row; rowIterator++) {\n if (!elements[rowIterator].classList.contains('e-week-number') && !isNullOrUndefined(elements[rowIterator].children[0])) {\n addClass([elements[rowIterator].children[0]], [LINK]);\n rippleEffect(elements[rowIterator].children[0], {\n duration: 600,\n isCenterRipple: true\n });\n }\n trEle.appendChild(elements[rowIterator]);\n if (this.weekNumber && rowIterator === otherMonthCell + 1 && elements[otherMonthCell + 1].classList.contains(OTHERMONTH)) {\n addClass([trEle], OTHERMONTHROW);\n }\n if (!this.weekNumber && rowIterator === otherMonthCell && elements[otherMonthCell].\n classList.contains(OTHERMONTH)) {\n addClass([trEle], OTHERMONTHROW);\n }\n if (this.weekNumber) {\n if (rowIterator === weekNumCell && elements[weekNumCell].classList.contains(OTHERMONTH)) {\n addClass([trEle], OTHERMONTHROW);\n }\n }\n else {\n if (rowIterator === numberCell && elements[numberCell].classList.contains(OTHERMONTH)) {\n addClass([trEle], OTHERMONTHROW);\n }\n }\n }\n row = row + count;\n rowIterator = rowIterator + 0;\n this.tableBodyElement.appendChild(trEle);\n }\n this.table.querySelector('tbody').className = this.effect;\n if (this.calendarMode === 'Gregorian') {\n this.iconHandler();\n }\n else {\n this.islamicModule.islamicIconHandler();\n }\n if (view !== this.getViewNumber(this.currentView()) || (view === 0 && view !== this.getViewNumber(this.currentView()))) {\n this.navigateHandler(e);\n }\n this.setAriaActiveDescendant();\n };\n CalendarBase.prototype.clickHandler = function (e, value) {\n this.clickEventEmitter(e);\n var eve = e.currentTarget;\n var view = this.getViewNumber(this.currentView());\n if (eve.classList.contains(OTHERMONTH)) {\n this.contentClick(e, 0, null, value);\n }\n else if (view === this.getViewNumber(this.depth) && this.getViewNumber(this.start) >= this.getViewNumber(this.depth)) {\n this.contentClick(e, 1, null, value);\n }\n else if (2 === view) {\n this.contentClick(e, 1, null, value);\n }\n else if (!eve.classList.contains(OTHERMONTH) && view === 0) {\n this.selectDate(e, this.getIdValue(e, null), null);\n }\n else {\n this.contentClick(e, 0, eve, value);\n }\n if (this.getModuleName() === 'calendar') {\n this.table.focus();\n }\n };\n // Content click event handler required for extended components\n CalendarBase.prototype.clickEventEmitter = function (e) {\n e.preventDefault();\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n CalendarBase.prototype.contentClick = function (e, view, element, value) {\n var currentView = this.getViewNumber(this.currentView());\n var d = this.getIdValue(e, element);\n switch (view) {\n case 0:\n if (currentView === this.getViewNumber(this.depth) && this.getViewNumber(this.start) >= this.getViewNumber(this.depth)) {\n detach(this.tableBodyElement);\n this.currentDate = d;\n this.effect = ZOOMIN;\n this.renderMonths(e);\n }\n else {\n if (this.calendarMode === 'Gregorian') {\n this.currentDate.setMonth(d.getMonth());\n if (d.getMonth() > 0 && this.currentDate.getMonth() !== d.getMonth()) {\n this.currentDate.setDate(0);\n }\n this.currentDate.setFullYear(d.getFullYear());\n }\n else {\n this.currentDate = d;\n }\n this.effect = ZOOMIN;\n detach(this.tableBodyElement);\n this.renderMonths(e);\n }\n break;\n case 1:\n if (currentView === this.getViewNumber(this.depth) && this.getViewNumber(this.start) >= this.getViewNumber(this.depth)) {\n this.selectDate(e, d, null);\n }\n else {\n if (this.calendarMode === 'Gregorian') {\n this.currentDate.setFullYear(d.getFullYear());\n }\n else {\n this.islamicPreviousHeader = this.headerElement.textContent;\n var islamicDate = this.islamicModule.getIslamicDate(d);\n this.currentDate = this.islamicModule.toGregorian(islamicDate.year, islamicDate.month, 1);\n }\n this.effect = ZOOMIN;\n detach(this.tableBodyElement);\n this.renderYears(e);\n }\n }\n };\n CalendarBase.prototype.switchView = function (view, e, multiSelection, isCustomDate) {\n switch (view) {\n case 0:\n detach(this.tableBodyElement);\n this.renderMonths(e, null, isCustomDate);\n break;\n case 1:\n detach(this.tableBodyElement);\n this.renderYears(e);\n break;\n case 2:\n detach(this.tableBodyElement);\n this.renderDecades(e);\n }\n };\n /**\n * To get component name\n *\n * @returns {string} Returns the component name.\n * @private\n */\n CalendarBase.prototype.getModuleName = function () {\n return 'calendar';\n };\n /**\n *\n * @returns {void}\n\n */\n CalendarBase.prototype.requiredModules = function () {\n var modules = [];\n if (this) {\n modules.push({ args: [this], member: 'islamic' });\n }\n return modules;\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Gets the properties to be maintained upon browser refresh.\n *\n * @returns {string}\n */\n CalendarBase.prototype.getPersistData = function () {\n var keyEntity = ['value'];\n return this.addOnPersist(keyEntity);\n };\n /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Called internally if any of the property value changed.\n *\n * @param {CalendarBaseModel} newProp - Returns the dynamic property value of the component.\n * @param {CalendarBaseModel} oldProp - Returns the previous property value of the component.\n * @param {boolean} multiSelection - - Specifies whether multiple date selection is enabled or not.\n * @param {Date[]} values - Specifies the dates.\n * @returns {void}\n * @private\n */\n CalendarBase.prototype.onPropertyChanged = function (newProp, oldProp, multiSelection, values) {\n this.effect = '';\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'enableRtl':\n if (newProp.enableRtl) {\n if (this.getModuleName() === 'calendar') {\n this.element.classList.add('e-rtl');\n }\n else {\n this.calendarElement.classList.add('e-rtl');\n }\n }\n else {\n if (this.getModuleName() === 'calendar') {\n this.element.classList.remove('e-rtl');\n }\n else {\n this.calendarElement.classList.remove('e-rtl');\n }\n }\n break;\n case 'dayHeaderFormat':\n this.getCultureValues();\n if (this.getModuleName() !== 'datepicker') {\n this.createContentHeader();\n }\n else if (this.calendarElement) {\n this.createContentHeader();\n }\n this.adjustLongHeaderSize();\n break;\n case 'min':\n case 'max':\n this.rangeValidation(this.min, this.max);\n if (prop === 'min') {\n this.setProperties({ min: this.checkDateValue(new Date(this.checkValue(newProp.min))) }, true);\n }\n else {\n this.setProperties({ max: this.checkDateValue(new Date(this.checkValue(newProp.max))) }, true);\n }\n this.setProperties({ start: this.currentView() }, true);\n if (this.tableBodyElement) {\n detach(this.tableBodyElement);\n }\n this.minMaxUpdate();\n if (multiSelection) {\n this.validateValues(multiSelection, values);\n }\n if (this.getModuleName() !== 'datepicker') {\n this.createContentBody();\n }\n else if (this.calendarElement) {\n this.createContentBody();\n }\n if ((this.todayDate < this.min || this.max < this.todayDate) && (this.footer) && (this.todayElement)) {\n detach(this.todayElement);\n detach(this.footer);\n this.todayElement = this.footer = null;\n this.createContentFooter();\n }\n else {\n if ((this.footer) && (this.todayElement) && this.todayElement.classList.contains('e-disabled')) {\n removeClass([this.todayElement], DISABLED);\n detach(this.todayElement);\n detach(this.footer);\n this.todayElement = this.footer = null;\n this.createContentFooter();\n }\n }\n break;\n case 'start':\n case 'depth':\n case 'weekNumber':\n case 'firstDayOfWeek':\n case 'weekRule':\n this.checkView();\n if (this.getModuleName() !== 'datepicker') {\n this.createContentHeader();\n this.createContentBody();\n }\n else if (this.calendarElement) {\n this.createContentHeader();\n this.createContentBody();\n }\n break;\n case 'locale':\n this.globalize = new Internationalization(this.locale);\n if (this.getModuleName() !== 'datepicker') {\n this.createContentHeader();\n this.createContentBody();\n }\n else if (this.calendarElement) {\n this.createContentHeader();\n this.createContentBody();\n }\n this.l10.setLocale(this.locale);\n this.updateFooter();\n break;\n case 'showTodayButton':\n if (newProp.showTodayButton) {\n this.createContentFooter();\n }\n else {\n if (!isNullOrUndefined(this.todayElement) && !isNullOrUndefined(this.footer)) {\n detach(this.todayElement);\n detach(this.footer);\n this.todayElement = this.footer = undefined;\n }\n }\n this.setProperties({ showTodayButton: newProp.showTodayButton }, true);\n break;\n }\n }\n };\n /**\n * values property updated with considered disabled dates of the calendar.\n *\n * @param {boolean} multiSelection - Specifies whether multiple date selection is enabled.\n * @param {Date[]} values - Specifies the dates to validate.\n * @returns {void}\n */\n CalendarBase.prototype.validateValues = function (multiSelection, values) {\n if (multiSelection && !isNullOrUndefined(values) && values.length > 0) {\n var copyValues = this.copyValues(values);\n for (var skipIndex = 0; skipIndex < copyValues.length; skipIndex++) {\n var tempValue = copyValues[skipIndex];\n var type = (this.calendarMode === 'Gregorian') ? 'gregorian' : 'islamic';\n var tempValueString = void 0;\n if (this.calendarMode === 'Gregorian') {\n tempValueString = this.globalize.formatDate(tempValue, { type: 'date', skeleton: 'yMd' });\n }\n else {\n tempValueString = this.globalize.formatDate(tempValue, { type: 'dateTime', skeleton: 'full', calendar: 'islamic' });\n }\n var minFormatOption = { type: 'date', skeleton: 'yMd', calendar: type };\n var minStringValue = this.globalize.formatDate(this.min, minFormatOption);\n var minString = minStringValue;\n var maxFormatOption = { type: 'date', skeleton: 'yMd', calendar: type };\n var maxStringValue = this.globalize.formatDate(this.max, maxFormatOption);\n var maxString = maxStringValue;\n if (+new Date(tempValueString) < +new Date(minString) ||\n +new Date(tempValueString) > +new Date(maxString)) {\n copyValues.splice(skipIndex, 1);\n skipIndex = -1;\n }\n }\n this.setProperties({ values: copyValues }, true);\n }\n };\n CalendarBase.prototype.setValueUpdate = function () {\n if (!isNullOrUndefined(this.tableBodyElement)) {\n detach(this.tableBodyElement);\n this.setProperties({ start: this.currentView() }, true);\n this.createContentBody();\n }\n };\n CalendarBase.prototype.copyValues = function (values) {\n var copyValues = [];\n if (!isNullOrUndefined(values) && values.length > 0) {\n for (var index = 0; index < values.length; index++) {\n copyValues.push(new Date(+values[index]));\n }\n }\n return copyValues;\n };\n CalendarBase.prototype.titleUpdate = function (date, view) {\n var globalize = new Internationalization(this.locale);\n var dayFormatOptions;\n var monthFormatOptions;\n var type = (this.calendarMode === 'Gregorian') ? 'gregorian' : 'islamic';\n if (this.calendarMode === 'Gregorian') {\n dayFormatOptions = globalize.formatDate(date, { type: 'dateTime', skeleton: 'yMMMM', calendar: type });\n monthFormatOptions = globalize.formatDate(date, {\n format: null, type: 'dateTime', skeleton: 'y', calendar: type\n });\n }\n else {\n dayFormatOptions = globalize.formatDate(date, { type: 'dateTime', format: 'MMMM y', calendar: type });\n monthFormatOptions = globalize.formatDate(date, { type: 'dateTime', format: 'y', calendar: type });\n }\n switch (view) {\n case 'days':\n this.headerTitleElement.textContent = this.toCapitalize(dayFormatOptions);\n break;\n case 'months':\n this.headerTitleElement.textContent = monthFormatOptions;\n }\n };\n CalendarBase.prototype.setActiveDescendant = function () {\n var id;\n var focusedEle = this.tableBodyElement.querySelector('tr td.e-focused-date');\n var selectedEle = this.tableBodyElement.querySelector('tr td.e-selected');\n var type = (this.calendarMode === 'Gregorian') ? 'gregorian' : 'islamic';\n var title;\n var view = this.currentView();\n if (view === 'Month') {\n title = this.globalize.formatDate(this.currentDate, { type: 'date', skeleton: 'full', calendar: type });\n }\n else if (view === 'Year') {\n if (type !== 'islamic') {\n title = this.globalize.formatDate(this.currentDate, { type: 'date', skeleton: 'yMMMM', calendar: type });\n }\n else {\n title = this.globalize.formatDate(this.currentDate, { type: 'date', skeleton: 'GyMMM', calendar: type });\n }\n }\n else {\n title = this.globalize.formatDate(this.currentDate, {\n format: null, type: 'date', skeleton: 'y', calendar: type\n });\n }\n if (selectedEle || focusedEle) {\n if (!isNullOrUndefined(selectedEle)) {\n selectedEle.setAttribute('aria-selected', 'true');\n }\n (focusedEle || selectedEle).setAttribute('aria-label', title);\n id = (focusedEle || selectedEle).getAttribute('id');\n }\n return id;\n };\n CalendarBase.prototype.iconHandler = function () {\n new Date(this.checkValue(this.currentDate)).setDate(1);\n switch (this.currentView()) {\n case 'Month':\n this.previousIconHandler(this.compareMonth(new Date(this.checkValue(this.currentDate)), this.min) < 1);\n this.nextIconHandler(this.compareMonth(new Date(this.checkValue(this.currentDate)), this.max) > -1);\n break;\n case 'Year':\n this.previousIconHandler(this.compareYear(new Date(this.checkValue(this.currentDate)), this.min) < 1);\n this.nextIconHandler(this.compareYear(new Date(this.checkValue(this.currentDate)), this.max) > -1);\n break;\n case 'Decade':\n this.previousIconHandler(this.compareDecade(new Date(this.checkValue(this.currentDate)), this.min) < 1);\n this.nextIconHandler(this.compareDecade(new Date(this.checkValue(this.currentDate)), this.max) > -1);\n }\n };\n /**\n * Destroys the widget.\n *\n * @returns {void}\n */\n CalendarBase.prototype.destroy = function () {\n if (this.getModuleName() === 'calendar' && this.element) {\n removeClass([this.element], [ROOT]);\n }\n else {\n if (this.calendarElement && this.element) {\n removeClass([this.element], [ROOT]);\n }\n }\n if (this.getModuleName() === 'calendar' && this.element) {\n if (!isNullOrUndefined(this.headerTitleElement)) {\n EventHandler.remove(this.headerTitleElement, 'click', this.navigateTitle);\n }\n if (this.todayElement) {\n EventHandler.remove(this.todayElement, 'click', this.todayButtonClick);\n }\n this.previousIconHandler(true);\n this.nextIconHandler(true);\n this.keyboardModule.destroy();\n this.element.removeAttribute('data-role');\n if (!isNullOrUndefined(this.calendarEleCopy.getAttribute('tabindex'))) {\n this.element.setAttribute('tabindex', this.tabIndex);\n }\n else {\n this.element.removeAttribute('tabindex');\n }\n }\n if (this.element) {\n this.element.innerHTML = '';\n }\n this.todayElement = null;\n this.tableBodyElement = null;\n this.renderDayCellArgs = null;\n this.headerElement = null;\n this.nextIcon = null;\n this.table = null;\n this.tableHeadElement = null;\n this.previousIcon = null;\n this.headerTitleElement = null;\n this.footer = null;\n this.contentElement = null;\n _super.prototype.destroy.call(this);\n };\n CalendarBase.prototype.title = function (e) {\n var currentView = this.getViewNumber(this.currentView());\n this.effect = ZOOMIN;\n this.switchView(++currentView, e);\n };\n CalendarBase.prototype.getViewNumber = function (stringVal) {\n if (stringVal === 'Month') {\n return 0;\n }\n else if (stringVal === 'Year') {\n return 1;\n }\n else {\n return 2;\n }\n };\n CalendarBase.prototype.navigateTitle = function (e) {\n e.preventDefault();\n this.title(e);\n if (this.getModuleName() === 'calendar') {\n this.table.focus();\n }\n };\n CalendarBase.prototype.previous = function () {\n this.effect = '';\n var currentView = this.getViewNumber(this.currentView());\n switch (this.currentView()) {\n case 'Month':\n this.addMonths(this.currentDate, -1);\n this.switchView(currentView);\n break;\n case 'Year':\n this.addYears(this.currentDate, -1);\n this.switchView(currentView);\n break;\n case 'Decade':\n this.addYears(this.currentDate, -10);\n this.switchView(currentView);\n break;\n }\n };\n CalendarBase.prototype.navigatePrevious = function (e) {\n e.preventDefault();\n if (this.calendarMode === 'Gregorian') {\n this.previous();\n }\n else {\n this.islamicModule.islamicPrevious();\n }\n this.triggerNavigate(e);\n if (this.getModuleName() === 'calendar') {\n this.table.focus();\n }\n };\n CalendarBase.prototype.next = function () {\n this.effect = '';\n var currentView = this.getViewNumber(this.currentView());\n switch (this.currentView()) {\n case 'Month':\n this.addMonths(this.currentDate, 1);\n this.switchView(currentView);\n break;\n case 'Year':\n this.addYears(this.currentDate, 1);\n this.switchView(currentView);\n break;\n case 'Decade':\n this.addYears(this.currentDate, 10);\n this.switchView(currentView);\n break;\n }\n };\n CalendarBase.prototype.navigateNext = function (eve) {\n eve.preventDefault();\n if (this.calendarMode === 'Gregorian') {\n this.next();\n }\n else {\n this.islamicModule.islamicNext();\n }\n this.triggerNavigate(eve);\n if (this.getModuleName() === 'calendar') {\n this.table.focus();\n }\n };\n /**\n * This method is used to navigate to the month/year/decade view of the Calendar.\n *\n * @param {string} view - Specifies the view of the Calendar.\n * @param {Date} date - Specifies the focused date in a view.\n * @param {boolean} isCustomDate - Specifies whether the calendar is rendered with custom today date or not.\n * @returns {void}\n */\n CalendarBase.prototype.navigateTo = function (view, date, isCustomDate) {\n if (+date >= +this.min && +date <= +this.max) {\n this.currentDate = date;\n }\n if (+date <= +this.min) {\n this.currentDate = new Date(this.checkValue(this.min));\n }\n if (+date >= +this.max) {\n this.currentDate = new Date(this.checkValue(this.max));\n }\n if ((this.getViewNumber(this.depth) >= this.getViewNumber(view))) {\n if ((this.getViewNumber(this.depth) <= this.getViewNumber(this.start))\n || this.getViewNumber(this.depth) === this.getViewNumber(view)) {\n view = this.depth;\n }\n }\n this.switchView(this.getViewNumber(view), null, null, isCustomDate);\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Gets the current view of the Calendar.\n *\n * @returns {string}\n */\n CalendarBase.prototype.currentView = function () {\n if (!isNullOrUndefined(this.contentElement) && this.contentElement.classList.contains(YEAR)) {\n return 'Year';\n }\n else if (!isNullOrUndefined(this.contentElement) && this.contentElement.classList.contains(DECADE)) {\n return 'Decade';\n }\n else {\n return 'Month';\n }\n };\n /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */\n CalendarBase.prototype.getDateVal = function (date, value) {\n return (!isNullOrUndefined(value) && date.getDate() === (value).getDate()\n && date.getMonth() === (value).getMonth() && date.getFullYear() === (value).getFullYear());\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n CalendarBase.prototype.getCultureObjects = function (ld, c) {\n var gregorianFormat = '.dates.calendars.gregorian.days.format.' + this.dayHeaderFormat.toLowerCase();\n var islamicFormat = '.dates.calendars.islamic.days.format.' + this.dayHeaderFormat.toLowerCase();\n var mainVal = 'main.';\n if (this.calendarMode === 'Gregorian') {\n return getValue(mainVal + '' + this.locale + gregorianFormat, ld);\n }\n else {\n return getValue('main.' + '' + this.locale + islamicFormat, ld);\n }\n };\n CalendarBase.prototype.getWeek = function (d) {\n var currentDate = new Date(this.checkValue(d)).valueOf();\n var date = new Date(d.getFullYear(), 0, 1).valueOf();\n return Math.ceil((((currentDate - date) + dayMilliSeconds) / dayMilliSeconds) / 7);\n };\n CalendarBase.prototype.setStartDate = function (date, time) {\n var tzOffset = date.getTimezoneOffset();\n var d = new Date(date.getTime() + time);\n var tzOffsetDiff = d.getTimezoneOffset() - tzOffset;\n date.setTime(d.getTime() + tzOffsetDiff * minutesMilliSeconds);\n };\n CalendarBase.prototype.addMonths = function (date, i) {\n if (this.calendarMode === 'Gregorian') {\n var day = date.getDate();\n date.setDate(1);\n date.setMonth(date.getMonth() + i);\n date.setDate(Math.min(day, this.getMaxDays(date)));\n }\n else {\n var islamicDate = this.islamicModule.getIslamicDate(date);\n this.currentDate = this.islamicModule.toGregorian(islamicDate.year, (islamicDate.month) + i, 1);\n }\n };\n CalendarBase.prototype.addYears = function (date, i) {\n if (this.calendarMode === 'Gregorian') {\n var day = date.getDate();\n date.setDate(1);\n date.setFullYear(date.getFullYear() + i);\n date.setDate(Math.min(day, this.getMaxDays(date)));\n }\n else {\n var islamicDate = this.islamicModule.getIslamicDate(date);\n this.currentDate = this.islamicModule.toGregorian(islamicDate.year + i, (islamicDate.month), 1);\n }\n };\n CalendarBase.prototype.getIdValue = function (e, element) {\n var eve;\n if (e) {\n eve = e.currentTarget;\n }\n else {\n eve = element;\n }\n var type = (this.calendarMode === 'Gregorian') ? 'gregorian' : 'islamic';\n var dateFormatOptions = { type: 'dateTime', skeleton: 'full', calendar: type };\n // eslint-disable-next-line radix\n var dateString = this.globalize.formatDate(new Date(parseInt('' + eve.getAttribute('id'), 0)), dateFormatOptions);\n var date = this.globalize.parseDate(dateString, dateFormatOptions);\n var value = date.valueOf() - date.valueOf() % 1000;\n return new Date(value);\n //return this.globalize.parseDate(dateString, dateFormatOptions);\n };\n CalendarBase.prototype.adjustLongHeaderSize = function () {\n removeClass([this.element], DAYHEADERLONG);\n if (this.dayHeaderFormat === 'Wide') {\n addClass([this.getModuleName() === 'calendar' ? this.element : this.calendarElement], DAYHEADERLONG);\n }\n };\n CalendarBase.prototype.selectDate = function (e, date, node, multiSelection, values) {\n var element = node || e.currentTarget;\n this.isDateSelected = false;\n if (this.currentView() === 'Decade') {\n this.setDateDecade(this.currentDate, date.getFullYear());\n }\n else if (this.currentView() === 'Year') {\n this.setDateYear(this.currentDate, date);\n }\n else {\n if (multiSelection && !this.checkPresentDate(date, values)) {\n var copyValues = this.copyValues(values);\n if (!isNullOrUndefined(values) && copyValues.length > 0) {\n copyValues.push(new Date(this.checkValue(date)));\n this.setProperties({ values: copyValues }, true);\n this.setProperties({ value: values[values.length - 1] }, true);\n }\n else {\n this.setProperties({ values: [new Date(this.checkValue(date))] }, true);\n }\n }\n else {\n this.setProperties({ value: new Date(this.checkValue(date)) }, true);\n }\n this.currentDate = new Date(this.checkValue(date));\n }\n var tableBodyElement = closest(element, '.' + ROOT);\n if (isNullOrUndefined(tableBodyElement)) {\n tableBodyElement = this.tableBodyElement;\n }\n if (!multiSelection && !isNullOrUndefined(tableBodyElement.querySelector('.' + SELECTED))) {\n removeClass([tableBodyElement.querySelector('.' + SELECTED)], SELECTED);\n }\n if (!multiSelection && !isNullOrUndefined(tableBodyElement.querySelector('.' + FOCUSEDDATE))) {\n removeClass([tableBodyElement.querySelector('.' + FOCUSEDDATE)], FOCUSEDDATE);\n }\n if (multiSelection) {\n var copyValues = this.copyValues(values);\n var collection = Array.prototype.slice.call(this.tableBodyElement.querySelectorAll('td'));\n for (var index = 0; index < collection.length; index++) {\n var tempElement = tableBodyElement.querySelectorAll('td' + '.' + FOCUSEDDATE)[0];\n var selectedElement = tableBodyElement.querySelectorAll('td' + '.' + SELECTED)[0];\n if (collection[index] === tempElement) {\n removeClass([collection[index]], FOCUSEDDATE);\n }\n if (collection[index] === selectedElement &&\n !this.checkPresentDate(new Date(parseInt(selectedElement.getAttribute('id').split('_')[0], 10)), values)) {\n removeClass([collection[index]], SELECTED);\n }\n }\n if (element.classList.contains(SELECTED)) {\n removeClass([element], SELECTED);\n for (var i = 0; i < copyValues.length; i++) {\n var type = (this.calendarMode === 'Gregorian') ? 'gregorian' : 'islamic';\n var formatOptions = { format: null, type: 'date', skeleton: 'short', calendar: type };\n var localDateString = this.globalize.formatDate(date, formatOptions);\n var tempDateString = this.globalize.formatDate(copyValues[i], formatOptions);\n if (localDateString === tempDateString) {\n var index = copyValues.indexOf(copyValues[i]);\n copyValues.splice(index, 1);\n addClass([element], FOCUSEDDATE);\n }\n }\n this.setProperties({ values: copyValues }, true);\n }\n else {\n addClass([element], SELECTED);\n }\n }\n else {\n addClass([element], SELECTED);\n }\n this.isDateSelected = true;\n };\n CalendarBase.prototype.checkPresentDate = function (dates, values) {\n var previousValue = false;\n if (!isNullOrUndefined(values)) {\n for (var checkPrevious = 0; checkPrevious < values.length; checkPrevious++) {\n var type = (this.calendarMode === 'Gregorian') ? 'gregorian' : 'islamic';\n var localDateString = this.globalize.formatDate(dates, {\n format: null, type: 'date', skeleton: 'short', calendar: type\n });\n var tempDateString = this.globalize.formatDate(values[checkPrevious], {\n format: null, type: 'date', skeleton: 'short', calendar: type\n });\n if (localDateString === tempDateString) {\n previousValue = true;\n }\n }\n }\n return previousValue;\n };\n CalendarBase.prototype.setAriaActiveDescendant = function () {\n attributes(this.table, {\n 'aria-activedescendant': '' + this.setActiveDescendant()\n });\n };\n CalendarBase.prototype.previousIconHandler = function (disabled) {\n if (disabled) {\n if (!isNullOrUndefined(this.previousIcon)) {\n EventHandler.remove(this.previousIcon, 'click', this.navigatePreviousHandler);\n addClass([this.previousIcon], '' + DISABLED);\n addClass([this.previousIcon], '' + OVERLAY);\n this.previousIcon.setAttribute('aria-disabled', 'true');\n }\n }\n else {\n EventHandler.add(this.previousIcon, 'click', this.navigatePreviousHandler);\n removeClass([this.previousIcon], '' + DISABLED);\n removeClass([this.previousIcon], '' + OVERLAY);\n this.previousIcon.setAttribute('aria-disabled', 'false');\n }\n };\n CalendarBase.prototype.renderDayCellEvent = function (args) {\n extend(this.renderDayCellArgs, { name: 'renderDayCell' });\n this.trigger('renderDayCell', args);\n };\n CalendarBase.prototype.navigatedEvent = function (eve) {\n extend(this.navigatedArgs, { name: 'navigated', event: eve });\n this.trigger('navigated', this.navigatedArgs);\n };\n CalendarBase.prototype.triggerNavigate = function (event) {\n this.navigatedArgs = { view: this.currentView(), date: this.currentDate };\n this.navigatedEvent(event);\n };\n CalendarBase.prototype.nextIconHandler = function (disabled) {\n if (disabled) {\n if (!isNullOrUndefined(this.previousIcon)) {\n EventHandler.remove(this.nextIcon, 'click', this.navigateNextHandler);\n addClass([this.nextIcon], DISABLED);\n addClass([this.nextIcon], OVERLAY);\n this.nextIcon.setAttribute('aria-disabled', 'true');\n }\n }\n else {\n EventHandler.add(this.nextIcon, 'click', this.navigateNextHandler);\n removeClass([this.nextIcon], DISABLED);\n removeClass([this.nextIcon], OVERLAY);\n this.nextIcon.setAttribute('aria-disabled', 'false');\n }\n };\n CalendarBase.prototype.compare = function (startDate, endDate, modifier) {\n var start = endDate.getFullYear();\n var end;\n var result;\n end = start;\n result = 0;\n if (modifier) {\n start = start - start % modifier;\n end = start - start % modifier + modifier - 1;\n }\n if (startDate.getFullYear() > end) {\n result = 1;\n }\n else if (startDate.getFullYear() < start) {\n result = -1;\n }\n return result;\n };\n CalendarBase.prototype.isMinMaxRange = function (date) {\n return +date >= +this.min && +date <= +this.max;\n };\n CalendarBase.prototype.isMonthYearRange = function (date) {\n if (this.calendarMode === 'Gregorian') {\n return date.getMonth() >= this.min.getMonth()\n && date.getFullYear() >= this.min.getFullYear()\n && date.getMonth() <= this.max.getMonth()\n && date.getFullYear() <= this.max.getFullYear();\n }\n else {\n var islamicDate = this.islamicModule.getIslamicDate(date);\n return islamicDate.month >= (this.islamicModule.getIslamicDate(new Date(1944, 1, 18))).month\n && islamicDate.year >= (this.islamicModule.getIslamicDate(new Date(1944, 1, 18))).year\n && islamicDate.month <= (this.islamicModule.getIslamicDate(new Date(2069, 1, 16))).month\n && islamicDate.year <= (this.islamicModule.getIslamicDate(new Date(2069, 1, 16))).year;\n }\n };\n CalendarBase.prototype.compareYear = function (start, end) {\n return this.compare(start, end, 0);\n };\n CalendarBase.prototype.compareDecade = function (start, end) {\n return this.compare(start, end, 10);\n };\n CalendarBase.prototype.shiftArray = function (array, i) {\n return array.slice(i).concat(array.slice(0, i));\n };\n CalendarBase.prototype.addDay = function (date, i, e, max, min) {\n var column = i;\n var value = new Date(+date);\n if (!isNullOrUndefined(this.tableBodyElement) && !isNullOrUndefined(e)) {\n while (this.findNextTD(new Date(+date), column, max, min)) {\n column += i;\n }\n var rangeValue = new Date(value.setDate(value.getDate() + column));\n column = (+rangeValue > +max || +rangeValue < +min) ? column === i ? i - i : i : column;\n }\n date.setDate(date.getDate() + column);\n };\n CalendarBase.prototype.findNextTD = function (date, column, max, min) {\n var value = new Date(date.setDate(date.getDate() + column));\n var collection = [];\n var isDisabled = false;\n if ((!isNullOrUndefined(value) && value.getMonth()) === (!isNullOrUndefined(this.currentDate) && this.currentDate.getMonth())) {\n var tdEles = void 0;\n if (this.calendarMode === 'Gregorian') {\n tdEles = this.renderDays(value);\n }\n else {\n tdEles = this.islamicModule.islamicRenderDays(this.currentDate, value);\n }\n collection = tdEles.filter(function (element) {\n return element.classList.contains(DISABLED);\n });\n }\n else {\n collection = this.tableBodyElement.querySelectorAll('td.' + DISABLED);\n }\n if (+value <= (+(max)) && +value >= (+(min))) {\n if (collection.length) {\n for (var i = 0; i < collection.length; i++) {\n // eslint-disable-next-line radix\n isDisabled = (+value === +new Date(parseInt(collection[i].id, 0))) ? true : false;\n if (isDisabled) {\n break;\n }\n }\n }\n }\n return isDisabled;\n };\n CalendarBase.prototype.getMaxDays = function (d) {\n var date;\n var tmpDate = new Date(this.checkValue(d));\n date = 28;\n var month = tmpDate.getMonth();\n while (tmpDate.getMonth() === month) {\n ++date;\n tmpDate.setDate(date);\n }\n return date - 1;\n };\n CalendarBase.prototype.setDateDecade = function (date, year) {\n date.setFullYear(year);\n this.setProperties({ value: new Date(this.checkValue(date)) }, true);\n };\n CalendarBase.prototype.setDateYear = function (date, value) {\n date.setFullYear(value.getFullYear(), value.getMonth(), date.getDate());\n if (value.getMonth() !== date.getMonth()) {\n date.setDate(0);\n this.currentDate = new Date(this.checkValue(value));\n }\n this.setProperties({ value: new Date(this.checkValue(date)) }, true);\n };\n CalendarBase.prototype.compareMonth = function (start, end) {\n var result;\n if (start.getFullYear() > end.getFullYear()) {\n result = 1;\n }\n else if (start.getFullYear() < end.getFullYear()) {\n result = -1;\n }\n else {\n result = start.getMonth() === end.getMonth() ? 0 : start.getMonth() > end.getMonth() ? 1 : -1;\n }\n return result;\n };\n CalendarBase.prototype.checkValue = function (inValue) {\n if (inValue instanceof Date) {\n return (inValue.toUTCString());\n }\n else {\n return ('' + inValue);\n }\n };\n CalendarBase.prototype.checkView = function () {\n if (this.start !== 'Decade' && this.start !== 'Year') {\n this.setProperties({ start: 'Month' }, true);\n }\n if (this.depth !== 'Decade' && this.depth !== 'Year') {\n this.setProperties({ depth: 'Month' }, true);\n }\n if (this.getViewNumber(this.depth) > this.getViewNumber(this.start)) {\n this.setProperties({ depth: 'Month' }, true);\n }\n };\n CalendarBase.prototype.getDate = function (date, timezone) {\n if (timezone) {\n date = new Date(date.toLocaleString('en-US', { timeZone: timezone }));\n }\n return date;\n };\n __decorate([\n Property(new Date(1900, 0, 1))\n ], CalendarBase.prototype, \"min\", void 0);\n __decorate([\n Property(true)\n ], CalendarBase.prototype, \"enabled\", void 0);\n __decorate([\n Property(null)\n ], CalendarBase.prototype, \"cssClass\", void 0);\n __decorate([\n Property(new Date(2099, 11, 31))\n ], CalendarBase.prototype, \"max\", void 0);\n __decorate([\n Property(null)\n ], CalendarBase.prototype, \"firstDayOfWeek\", void 0);\n __decorate([\n Property('Gregorian')\n ], CalendarBase.prototype, \"calendarMode\", void 0);\n __decorate([\n Property('Month')\n ], CalendarBase.prototype, \"start\", void 0);\n __decorate([\n Property('Month')\n ], CalendarBase.prototype, \"depth\", void 0);\n __decorate([\n Property(false)\n ], CalendarBase.prototype, \"weekNumber\", void 0);\n __decorate([\n Property('FirstDay')\n ], CalendarBase.prototype, \"weekRule\", void 0);\n __decorate([\n Property(true)\n ], CalendarBase.prototype, \"showTodayButton\", void 0);\n __decorate([\n Property('Short')\n ], CalendarBase.prototype, \"dayHeaderFormat\", void 0);\n __decorate([\n Property(false)\n ], CalendarBase.prototype, \"enablePersistence\", void 0);\n __decorate([\n Property(null)\n ], CalendarBase.prototype, \"keyConfigs\", void 0);\n __decorate([\n Property(null)\n ], CalendarBase.prototype, \"serverTimezoneOffset\", void 0);\n __decorate([\n Event()\n ], CalendarBase.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], CalendarBase.prototype, \"destroyed\", void 0);\n __decorate([\n Event()\n ], CalendarBase.prototype, \"navigated\", void 0);\n __decorate([\n Event()\n ], CalendarBase.prototype, \"renderDayCell\", void 0);\n CalendarBase = __decorate([\n NotifyPropertyChanges\n ], CalendarBase);\n return CalendarBase;\n}(Component));\nexport { CalendarBase };\n/**\n * Represents the Calendar component that allows the user to select a date.\n * ```html\n *
\n * ```\n * ```typescript\n * \n * ```\n */\nvar Calendar = /** @class */ (function (_super) {\n __extends(Calendar, _super);\n /**\n * Initialized new instance of Calendar Class.\n * Constructor for creating the widget\n *\n * @param {CalendarModel} options - Specifies the Calendar model.\n * @param {string | HTMLElement} element - Specifies the element to render as component.\n * @private\n */\n function Calendar(options, element) {\n return _super.call(this, options, element) || this;\n }\n /**\n * To Initialize the control rendering.\n *\n * @returns {void}\n * @private\n */\n Calendar.prototype.render = function () {\n if (this.calendarMode === 'Islamic' && this.islamicModule === undefined) {\n throwError('Requires the injectable Islamic modules to render Calendar in Islamic mode');\n }\n if (this.isMultiSelection && typeof this.values === 'object' && !isNullOrUndefined(this.values) && this.values.length > 0) {\n var tempValues = [];\n var copyValues = [];\n for (var limit = 0; limit < this.values.length; limit++) {\n if (tempValues.indexOf(+this.values[limit]) === -1) {\n tempValues.push(+this.values[limit]);\n copyValues.push(this.values[limit]);\n }\n }\n this.setProperties({ values: copyValues }, true);\n for (var index = 0; index < this.values.length; index++) {\n if (!this.checkDateValue(this.values[index])) {\n if (typeof (this.values[index]) === 'string' && this.checkDateValue(new Date(this.checkValue(this.values[index])))) {\n var copyDate = new Date(this.checkValue(this.values[index]));\n this.values.splice(index, 1);\n this.values.splice(index, 0, copyDate);\n }\n else {\n this.values.splice(index, 1);\n }\n }\n }\n this.setProperties({ value: this.values[this.values.length - 1] }, true);\n this.previousValues = this.values.length;\n }\n this.validateDate();\n this.minMaxUpdate();\n if (this.getModuleName() === 'calendar') {\n this.setEnable(this.enabled);\n this.setClass(this.cssClass);\n }\n _super.prototype.render.call(this);\n if (this.getModuleName() === 'calendar') {\n var form = closest(this.element, 'form');\n if (form) {\n EventHandler.add(form, 'reset', this.formResetHandler.bind(this));\n }\n this.setTimeZone(this.serverTimezoneOffset);\n }\n this.renderComplete();\n };\n Calendar.prototype.setEnable = function (enable) {\n if (!enable) {\n addClass([this.element], DISABLED);\n }\n else {\n removeClass([this.element], DISABLED);\n }\n };\n Calendar.prototype.setClass = function (newCssClass, oldCssClass) {\n if (!isNullOrUndefined(oldCssClass)) {\n oldCssClass = (oldCssClass.replace(/\\s+/g, ' ')).trim();\n }\n if (!isNullOrUndefined(newCssClass)) {\n newCssClass = (newCssClass.replace(/\\s+/g, ' ')).trim();\n }\n if (!isNullOrUndefined(oldCssClass) && oldCssClass !== '') {\n removeClass([this.element], oldCssClass.split(' '));\n }\n if (!isNullOrUndefined(newCssClass)) {\n addClass([this.element], newCssClass.split(' '));\n }\n };\n Calendar.prototype.isDayLightSaving = function () {\n var secondOffset = new Date(this.value.getFullYear(), 6, 1).getTimezoneOffset();\n var firstOffset = new Date(this.value.getFullYear(), 0, 1).getTimezoneOffset();\n return (this.value.getTimezoneOffset() < Math.max(firstOffset, secondOffset));\n };\n Calendar.prototype.setTimeZone = function (offsetValue) {\n if (!isNullOrUndefined(this.serverTimezoneOffset) && this.value) {\n var serverTimezoneDiff = offsetValue;\n var clientTimeZoneDiff = new Date().getTimezoneOffset() / 60;\n var timeZoneDiff = serverTimezoneDiff + clientTimeZoneDiff;\n timeZoneDiff = this.isDayLightSaving() ? timeZoneDiff-- : timeZoneDiff;\n this.value = new Date(this.value.getTime() + (timeZoneDiff * 60 * 60 * 1000));\n }\n };\n Calendar.prototype.formResetHandler = function () {\n this.setProperties({ value: null }, true);\n };\n Calendar.prototype.validateDate = function () {\n if (typeof this.value === 'string') {\n this.setProperties({ value: this.checkDateValue(new Date(this.checkValue(this.value))) }, true); // persist the value property.\n }\n _super.prototype.validateDate.call(this, this.value);\n if (!isNullOrUndefined(this.value) && this.min <= this.max && this.value >= this.min && this.value <= this.max) {\n this.currentDate = new Date(this.checkValue(this.value));\n }\n if (isNaN(+this.value)) {\n this.setProperties({ value: null }, true);\n }\n };\n Calendar.prototype.minMaxUpdate = function () {\n if (this.getModuleName() === 'calendar') {\n if (!isNullOrUndefined(this.value) && this.value <= this.min && this.min <= this.max) {\n this.setProperties({ value: this.min }, true);\n this.changedArgs = { value: this.value };\n }\n else {\n if (!isNullOrUndefined(this.value) && this.value >= this.max && this.min <= this.max) {\n this.setProperties({ value: this.max }, true);\n this.changedArgs = { value: this.value };\n }\n }\n }\n if (this.getModuleName() !== 'calendar' && !isNullOrUndefined(this.value)) {\n if (!isNullOrUndefined(this.value) && this.value < this.min && this.min <= this.max) {\n _super.prototype.minMaxUpdate.call(this, this.min);\n }\n else {\n if (!isNullOrUndefined(this.value) && this.value > this.max && this.min <= this.max) {\n _super.prototype.minMaxUpdate.call(this, this.max);\n }\n }\n }\n else {\n _super.prototype.minMaxUpdate.call(this, this.value);\n }\n };\n Calendar.prototype.generateTodayVal = function (value) {\n var tempValue = new Date();\n if (!isNullOrUndefined(this.timezone)) {\n tempValue = _super.prototype.getDate.call(this, tempValue, this.timezone);\n }\n if (value && isNullOrUndefined(this.timezone)) {\n tempValue.setHours(value.getHours());\n tempValue.setMinutes(value.getMinutes());\n tempValue.setSeconds(value.getSeconds());\n tempValue.setMilliseconds(value.getMilliseconds());\n }\n else {\n tempValue = new Date(tempValue.getFullYear(), tempValue.getMonth(), tempValue.getDate(), 0, 0, 0, 0);\n }\n return tempValue;\n };\n Calendar.prototype.todayButtonClick = function (e) {\n if (this.showTodayButton) {\n var tempValue = this.generateTodayVal(this.value);\n this.setProperties({ value: tempValue }, true);\n this.isTodayClicked = true;\n this.todayButtonEvent = e;\n if (this.isMultiSelection) {\n var copyValues = this.copyValues(this.values);\n if (!_super.prototype.checkPresentDate.call(this, tempValue, this.values)) {\n copyValues.push(tempValue);\n this.setProperties({ values: copyValues });\n }\n }\n _super.prototype.todayButtonClick.call(this, e, new Date(+this.value));\n }\n };\n Calendar.prototype.keyActionHandle = function (e) {\n _super.prototype.keyActionHandle.call(this, e, this.value, this.isMultiSelection);\n };\n /**\n * Initialize the event handler\n *\n * @returns {void}\n * @private\n */\n Calendar.prototype.preRender = function () {\n var _this = this;\n this.changeHandler = function (e) {\n _this.triggerChange(e);\n };\n this.checkView();\n _super.prototype.preRender.call(this, this.value);\n };\n /**\n * @returns {void}\n\n */\n Calendar.prototype.createContent = function () {\n this.previousDate = this.value;\n this.previousDateTime = this.value;\n _super.prototype.createContent.call(this);\n };\n Calendar.prototype.minMaxDate = function (localDate) {\n return _super.prototype.minMaxDate.call(this, localDate);\n };\n Calendar.prototype.renderMonths = function (e, value, isCustomDate) {\n _super.prototype.renderMonths.call(this, e, this.value, isCustomDate);\n };\n Calendar.prototype.renderDays = function (currentDate, value, isMultiSelect, values, isCustomDate, e) {\n var tempDays = _super.prototype.renderDays.call(this, currentDate, this.value, this.isMultiSelection, this.values, isCustomDate, e);\n if (this.isMultiSelection) {\n _super.prototype.validateValues.call(this, this.isMultiSelection, this.values);\n }\n return tempDays;\n };\n Calendar.prototype.renderYears = function (e) {\n if (this.calendarMode === 'Gregorian') {\n _super.prototype.renderYears.call(this, e, this.value);\n }\n else {\n this.islamicModule.islamicRenderYears(e, this.value);\n }\n };\n Calendar.prototype.renderDecades = function (e) {\n if (this.calendarMode === 'Gregorian') {\n _super.prototype.renderDecades.call(this, e, this.value);\n }\n else {\n this.islamicModule.islamicRenderDecade(e, this.value);\n }\n };\n Calendar.prototype.renderTemplate = function (elements, count, classNm, e) {\n if (this.calendarMode === 'Gregorian') {\n _super.prototype.renderTemplate.call(this, elements, count, classNm, e, this.value);\n }\n else {\n this.islamicModule.islamicRenderTemplate(elements, count, classNm, e, this.value);\n }\n this.changedArgs = { value: this.value, values: this.values };\n this.changeHandler();\n };\n Calendar.prototype.clickHandler = function (e) {\n var eve = e.currentTarget;\n this.isPopupClicked = true;\n if (eve.classList.contains(OTHERMONTH)) {\n if (this.isMultiSelection) {\n var copyValues = this.copyValues(this.values);\n if (copyValues.toString().indexOf(this.getIdValue(e, null).toString()) === -1) {\n copyValues.push(this.getIdValue(e, null));\n this.setProperties({ values: copyValues }, true);\n this.setProperties({ value: this.values[this.values.length - 1] }, true);\n }\n else {\n this.previousDates = true;\n }\n }\n else {\n this.setProperties({ value: this.getIdValue(e, null) }, true);\n }\n }\n var storeView = this.currentView();\n _super.prototype.clickHandler.call(this, e, this.value);\n if (this.isMultiSelection && this.currentDate !== this.value &&\n !isNullOrUndefined(this.tableBodyElement.querySelectorAll('.' + FOCUSEDDATE)[0]) && storeView === 'Year') {\n this.tableBodyElement.querySelectorAll('.' + FOCUSEDDATE)[0].classList.remove(FOCUSEDDATE);\n }\n };\n Calendar.prototype.switchView = function (view, e, isMultiSelection, isCustomDate) {\n _super.prototype.switchView.call(this, view, e, this.isMultiSelection, isCustomDate);\n };\n /**\n * To get component name\n *\n * @returns {string} Return the component name.\n * @private\n */\n Calendar.prototype.getModuleName = function () {\n _super.prototype.getModuleName.call(this);\n return 'calendar';\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Gets the properties to be maintained upon browser refresh.\n *\n * @returns {string}\n */\n Calendar.prototype.getPersistData = function () {\n _super.prototype.getPersistData.call(this);\n var keyEntity = ['value', 'values'];\n return this.addOnPersist(keyEntity);\n };\n /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Called internally if any of the property value changed.\n *\n * @param {CalendarModel} newProp - Returns the dynamic property value of the component.\n * @param {CalendarModel} oldProp - Returns the previous property value of the component.\n * @returns {void}\n * @private\n */\n Calendar.prototype.onPropertyChanged = function (newProp, oldProp) {\n this.effect = '';\n this.rangeValidation(this.min, this.max);\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'value':\n if (this.isDateSelected) {\n if (typeof newProp.value === 'string') {\n this.setProperties({ value: new Date(this.checkValue(newProp.value)) }, true);\n }\n else {\n newProp.value = new Date(this.checkValue(newProp.value));\n }\n if (isNaN(+this.value)) {\n this.setProperties({ value: oldProp.value }, true);\n }\n this.update();\n }\n break;\n case 'values':\n if (this.isDateSelected) {\n if (typeof newProp.values === 'string' || typeof newProp.values === 'number') {\n this.setProperties({ values: null }, true);\n }\n else {\n var copyValues = this.copyValues(this.values);\n for (var index = 0; index < copyValues.length; index++) {\n var tempDate = copyValues[index];\n if (this.checkDateValue(tempDate) && !_super.prototype.checkPresentDate.call(this, tempDate, copyValues)) {\n copyValues.push(tempDate);\n }\n }\n this.setProperties({ values: copyValues }, true);\n if (this.values.length > 0) {\n this.setProperties({ value: newProp.values[newProp.values.length - 1] }, true);\n }\n }\n this.validateValues(this.isMultiSelection, this.values);\n this.update();\n }\n break;\n case 'isMultiSelection':\n if (this.isDateSelected) {\n this.setProperties({ isMultiSelection: newProp.isMultiSelection }, true);\n this.update();\n }\n break;\n case 'enabled':\n this.setEnable(this.enabled);\n break;\n case 'cssClass':\n if (this.getModuleName() === 'calendar') {\n this.setClass(newProp.cssClass, oldProp.cssClass);\n }\n break;\n default:\n _super.prototype.onPropertyChanged.call(this, newProp, oldProp, this.isMultiSelection, this.values);\n }\n }\n this.preventChange = this.isAngular && this.preventChange ? !this.preventChange : this.preventChange;\n };\n /**\n * Destroys the widget.\n *\n * @returns {void}\n */\n Calendar.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n if (this.getModuleName() === 'calendar') {\n var form = closest(this.element, 'form');\n if (form) {\n EventHandler.remove(form, 'reset', this.formResetHandler.bind(this));\n }\n }\n };\n /**\n * This method is used to navigate to the month/year/decade view of the Calendar.\n *\n * @param {string} view - Specifies the view of the Calendar.\n * @param {Date} date - Specifies the focused date in a view.\n * @param {boolean} isCustomDate - Specifies whether the calendar is rendered with custom today date or not.\n * @returns {void}\n\n */\n Calendar.prototype.navigateTo = function (view, date, isCustomDate) {\n this.minMaxUpdate();\n _super.prototype.navigateTo.call(this, view, date, isCustomDate);\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Gets the current view of the Calendar.\n *\n * @returns {string}\n\n */\n Calendar.prototype.currentView = function () {\n return _super.prototype.currentView.call(this);\n };\n /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * This method is used to add the single or multiple dates to the values property of the Calendar.\n *\n * @param {Date | Date[]} dates - Specifies the date or dates to be added to the values property of the Calendar.\n * @returns {void}\n\n */\n Calendar.prototype.addDate = function (dates) {\n if (typeof dates !== 'string' && typeof dates !== 'number') {\n var copyValues = this.copyValues(this.values);\n if (typeof dates === 'object' && (dates).length > 0) {\n var tempDates = dates;\n for (var i = 0; i < tempDates.length; i++) {\n if (this.checkDateValue(tempDates[i]) && !_super.prototype.checkPresentDate.call(this, tempDates[i], copyValues)) {\n if (!isNullOrUndefined(copyValues) && copyValues.length > 0) {\n copyValues.push(tempDates[i]);\n }\n else {\n copyValues = [new Date(+tempDates[i])];\n }\n }\n }\n }\n else {\n if (this.checkDateValue(dates) && !_super.prototype.checkPresentDate.call(this, dates, copyValues)) {\n if (!isNullOrUndefined(copyValues) && copyValues.length > 0) {\n copyValues.push((dates));\n }\n else {\n copyValues = [new Date(+dates)];\n }\n }\n }\n this.setProperties({ values: copyValues }, true);\n if (this.isMultiSelection) {\n this.setProperties({ value: this.values[this.values.length - 1] }, true);\n }\n this.validateValues(this.isMultiSelection, copyValues);\n this.update();\n this.changedArgs = { value: this.value, values: this.values };\n this.changeHandler();\n }\n };\n /**\n * This method is used to remove the single or multiple dates from the values property of the Calendar.\n *\n * @param {Date | Date[]} dates - Specifies the date or dates which need to be removed from the values property of the Calendar.\n * @returns {void}\n\n */\n Calendar.prototype.removeDate = function (dates) {\n if (typeof dates !== 'string' && typeof dates !== 'number' && !isNullOrUndefined(this.values) && this.values.length > 0) {\n var copyValues = this.copyValues(this.values);\n if (typeof dates === 'object' && ((dates).length > 0)) {\n var tempDates = dates;\n for (var index = 0; index < tempDates.length; index++) {\n for (var i = 0; i < copyValues.length; i++) {\n if (+copyValues[i] === +tempDates[index]) {\n copyValues.splice(i, 1);\n }\n }\n }\n }\n else {\n for (var i = 0; i < copyValues.length; i++) {\n if (+copyValues[i] === +dates) {\n copyValues.splice(i, 1);\n }\n }\n }\n this.setProperties({ values: copyValues }, false);\n this.update();\n if (this.isMultiSelection) {\n this.setProperties({ value: this.values[this.values.length - 1] }, true);\n }\n this.changedArgs = { value: this.value, values: this.values };\n this.changeHandler();\n }\n };\n /**\n * To set custom today date in calendar\n *\n * @param {Date} date - Specifies date value to be set.\n * @private\n * @returns {void}\n */\n Calendar.prototype.setTodayDate = function (date) {\n var todayDate = new Date(+date);\n this.setProperties({ value: todayDate }, true);\n _super.prototype.todayButtonClick.call(this, null, todayDate, true);\n };\n Calendar.prototype.update = function () {\n this.validateDate();\n this.minMaxUpdate();\n _super.prototype.setValueUpdate.call(this);\n };\n Calendar.prototype.selectDate = function (e, date, element) {\n _super.prototype.selectDate.call(this, e, date, element, this.isMultiSelection, this.values);\n if (this.isMultiSelection && !isNullOrUndefined(this.values) && this.values.length > 0) {\n this.setProperties({ value: this.values[this.values.length - 1] }, true);\n }\n this.changedArgs = { value: this.value, values: this.values };\n this.changeHandler(e);\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n Calendar.prototype.changeEvent = function (e) {\n if ((this.value && this.value.valueOf()) !== (this.previousDate && +this.previousDate.valueOf())\n || this.isMultiSelection) {\n if (this.isAngular && this.preventChange) {\n this.preventChange = false;\n }\n else {\n this.trigger('change', this.changedArgs);\n }\n this.previousDate = new Date(+this.value);\n }\n };\n Calendar.prototype.triggerChange = function (e) {\n if (!isNullOrUndefined(this.todayButtonEvent) && this.isTodayClicked) {\n e = this.todayButtonEvent;\n this.isTodayClicked = false;\n }\n this.changedArgs.event = e || null;\n this.changedArgs.isInteracted = !isNullOrUndefined(e);\n if (!isNullOrUndefined(this.value)) {\n this.setProperties({ value: this.value }, true);\n }\n // eslint-disable-next-line use-isnan\n if (!this.isMultiSelection && +this.value !== Number.NaN && (!isNullOrUndefined(this.value) &&\n !isNullOrUndefined(this.previousDate) || this.previousDate === null\n && !isNaN(+this.value))) {\n this.changeEvent(e);\n }\n else if (!isNullOrUndefined(this.values) && this.previousValues !== this.values.length) {\n this.changeEvent(e);\n this.previousValues = this.values.length;\n }\n };\n __decorate([\n Property(null)\n ], Calendar.prototype, \"value\", void 0);\n __decorate([\n Property(null)\n ], Calendar.prototype, \"values\", void 0);\n __decorate([\n Property(false)\n ], Calendar.prototype, \"isMultiSelection\", void 0);\n __decorate([\n Event()\n ], Calendar.prototype, \"change\", void 0);\n Calendar = __decorate([\n NotifyPropertyChanges\n ], Calendar);\n return Calendar;\n}(CalendarBase));\nexport { Calendar };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n// eslint-disable-next-line @typescript-eslint/triple-slash-reference\n/// \nimport { EventHandler, Property, Internationalization, NotifyPropertyChanges } from '@syncfusion/ej2-base';\nimport { KeyboardEvents, Animation, Event, extend, L10n, Browser, formatUnit } from '@syncfusion/ej2-base';\nimport { detach, addClass, removeClass, closest, attributes } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined, setValue, getUniqueID } from '@syncfusion/ej2-base';\nimport { Popup } from '@syncfusion/ej2-popups';\nimport { Input } from '@syncfusion/ej2-inputs';\nimport { Calendar } from '../calendar/calendar';\n//class constant defination\nvar DATEWRAPPER = 'e-date-wrapper';\nvar ROOT = 'e-datepicker';\nvar LIBRARY = 'e-lib';\nvar CONTROL = 'e-control';\nvar POPUPWRAPPER = 'e-popup-wrapper';\nvar INPUTWRAPPER = 'e-input-group-icon';\nvar POPUP = 'e-popup';\nvar INPUTCONTAINER = 'e-input-group';\nvar INPUTFOCUS = 'e-input-focus';\nvar INPUTROOT = 'e-input';\nvar ERROR = 'e-error';\nvar ACTIVE = 'e-active';\nvar OVERFLOW = 'e-date-overflow';\nvar DATEICON = 'e-date-icon';\nvar CLEARICON = 'e-clear-icon';\nvar ICONS = 'e-icons';\nvar OPENDURATION = 300;\nvar OFFSETVALUE = 4;\nvar SELECTED = 'e-selected';\nvar FOCUSEDDATE = 'e-focused-date';\nvar NONEDIT = 'e-non-edit';\nvar containerAttr = ['title', 'class', 'style'];\n/**\n * Represents the DatePicker component that allows user to select\n * or enter a date value.\n * ```html\n * \n * ```\n * ```typescript\n * \n * ```\n */\nvar DatePicker = /** @class */ (function (_super) {\n __extends(DatePicker, _super);\n /**\n * Constructor for creating the widget.\n *\n * @param {DatePickerModel} options - Specifies the DatePicker model.\n * @param {string | HTMLInputElement} element - Specifies the element to render as component.\n * @private\n */\n function DatePicker(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.isDateIconClicked = false;\n _this.isAltKeyPressed = false;\n _this.isInteracted = true;\n _this.invalidValueString = null;\n _this.checkPreviousValue = null;\n _this.maskedDateValue = '';\n _this.isAngular = false;\n _this.preventChange = false;\n _this.isIconClicked = false;\n _this.isDynamicValueChanged = false;\n _this.moduleName = _this.getModuleName();\n _this.isFocused = false;\n _this.isBlur = false;\n _this.datepickerOptions = options;\n return _this;\n }\n /**\n * To Initialize the control rendering.\n *\n * @returns {void}\n * @private\n */\n DatePicker.prototype.render = function () {\n this.initialize();\n this.bindEvents();\n Input.calculateWidth(this.inputElement, this.inputWrapper.container);\n if (!isNullOrUndefined(this.inputWrapper.buttons[0]) && !isNullOrUndefined(this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0]) && this.floatLabelType !== 'Never') {\n this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0].classList.add('e-icon');\n }\n if (!isNullOrUndefined(closest(this.element, 'fieldset')) && closest(this.element, 'fieldset').disabled) {\n this.enabled = false;\n }\n this.renderComplete();\n this.setTimeZone(this.serverTimezoneOffset);\n };\n DatePicker.prototype.setTimeZone = function (offsetValue) {\n if (!isNullOrUndefined(this.serverTimezoneOffset) && this.value) {\n var clientTimeZoneDiff = new Date().getTimezoneOffset() / 60;\n var serverTimezoneDiff = offsetValue;\n var timeZoneDiff = serverTimezoneDiff + clientTimeZoneDiff;\n timeZoneDiff = this.isDayLightSaving() ? timeZoneDiff-- : timeZoneDiff;\n this.value = new Date((this.value).getTime() + (timeZoneDiff * 60 * 60 * 1000));\n this.updateInput();\n }\n };\n DatePicker.prototype.isDayLightSaving = function () {\n var firstOffset = new Date(this.value.getFullYear(), 0, 1).getTimezoneOffset();\n var secondOffset = new Date(this.value.getFullYear(), 6, 1).getTimezoneOffset();\n return (this.value.getTimezoneOffset() < Math.max(firstOffset, secondOffset));\n };\n DatePicker.prototype.setAllowEdit = function () {\n if (this.allowEdit) {\n if (!this.readonly) {\n this.inputElement.removeAttribute('readonly');\n }\n }\n else {\n attributes(this.inputElement, { 'readonly': '' });\n }\n this.updateIconState();\n };\n DatePicker.prototype.updateIconState = function () {\n if (!this.allowEdit && this.inputWrapper && !this.readonly) {\n if (this.inputElement.value === '') {\n removeClass([this.inputWrapper.container], [NONEDIT]);\n }\n else {\n addClass([this.inputWrapper.container], [NONEDIT]);\n }\n }\n else if (this.inputWrapper) {\n removeClass([this.inputWrapper.container], [NONEDIT]);\n }\n };\n DatePicker.prototype.initialize = function () {\n this.checkInvalidValue(this.value);\n if (this.enableMask) {\n this.notify('createMask', {\n module: 'MaskedDateTime'\n });\n }\n this.createInput();\n this.updateHtmlAttributeToWrapper();\n this.setAllowEdit();\n if (this.enableMask && !this.value && this.maskedDateValue && (this.floatLabelType === 'Always' || !this.floatLabelType || !this.placeholder)) {\n this.updateInput(true);\n this.updateInputValue(this.maskedDateValue);\n }\n else if (!this.enableMask) {\n this.updateInput(true);\n }\n this.previousElementValue = this.inputElement.value;\n this.previousDate = !isNullOrUndefined(this.value) ? new Date(+this.value) : null;\n this.inputElement.setAttribute('value', this.inputElement.value);\n this.inputValueCopy = this.value;\n };\n DatePicker.prototype.createInput = function () {\n var ariaAttrs = {\n 'aria-atomic': 'true', 'aria-expanded': 'false',\n 'role': 'combobox', 'autocomplete': 'off', 'autocorrect': 'off',\n 'autocapitalize': 'off', 'spellcheck': 'false', 'aria-invalid': 'false'\n };\n if (this.getModuleName() === 'datepicker') {\n var l10nLocale = { placeholder: this.placeholder };\n this.globalize = new Internationalization(this.locale);\n this.l10n = new L10n('datepicker', l10nLocale, this.locale);\n this.setProperties({ placeholder: this.placeholder || this.l10n.getConstant('placeholder') }, true);\n }\n var updatedCssClassValues = this.cssClass;\n if (!isNullOrUndefined(this.cssClass) && this.cssClass !== '') {\n updatedCssClassValues = (this.cssClass.replace(/\\s+/g, ' ')).trim();\n }\n var isBindClearAction = this.enableMask ? false : true;\n this.inputWrapper = Input.createInput({\n element: this.inputElement,\n floatLabelType: this.floatLabelType,\n bindClearAction: isBindClearAction,\n properties: {\n readonly: this.readonly,\n placeholder: this.placeholder,\n cssClass: updatedCssClassValues,\n enabled: this.enabled,\n enableRtl: this.enableRtl,\n showClearButton: this.showClearButton\n },\n buttons: [INPUTWRAPPER + ' ' + DATEICON + ' ' + ICONS]\n }, this.createElement);\n this.setWidth(this.width);\n if (this.inputElement.name !== '') {\n this.inputElement.setAttribute('name', '' + this.inputElement.getAttribute('name'));\n }\n else {\n this.inputElement.setAttribute('name', '' + this.element.id);\n }\n attributes(this.inputElement, ariaAttrs);\n if (!this.enabled) {\n this.inputElement.setAttribute('aria-disabled', 'true');\n this.inputElement.tabIndex = -1;\n }\n else {\n this.inputElement.setAttribute('aria-disabled', 'false');\n this.inputElement.setAttribute('tabindex', this.tabIndex);\n }\n Input.addAttributes({ 'aria-label': 'select' }, this.inputWrapper.buttons[0]);\n addClass([this.inputWrapper.container], DATEWRAPPER);\n };\n DatePicker.prototype.updateInput = function (isDynamic, isBlur) {\n if (isDynamic === void 0) { isDynamic = false; }\n if (isBlur === void 0) { isBlur = false; }\n var formatOptions;\n if (this.value && !this.isCalendar()) {\n this.disabledDates(isDynamic, isBlur);\n }\n if (isNaN(+new Date(this.checkValue(this.value)))) {\n this.setProperties({ value: null }, true);\n }\n if (this.strictMode) {\n //calls the Calendar processDate protected method to update the date value according to the strictMode true behaviour.\n _super.prototype.validateDate.call(this);\n this.minMaxUpdates();\n _super.prototype.minMaxUpdate.call(this);\n }\n if (!isNullOrUndefined(this.value)) {\n var dateValue = this.value;\n var dateString = void 0;\n var tempFormat = !isNullOrUndefined(this.formatString) ? this.formatString : this.dateTimeFormat;\n if (this.getModuleName() === 'datetimepicker') {\n if (this.calendarMode === 'Gregorian') {\n dateString = this.globalize.formatDate(this.value, {\n format: tempFormat, type: 'dateTime', skeleton: 'yMd'\n });\n }\n else {\n dateString = this.globalize.formatDate(this.value, {\n format: tempFormat, type: 'dateTime', skeleton: 'yMd', calendar: 'islamic'\n });\n }\n }\n else {\n if (this.calendarMode === 'Gregorian') {\n formatOptions = { format: this.formatString, type: 'dateTime', skeleton: 'yMd' };\n }\n else {\n formatOptions = { format: this.formatString, type: 'dateTime', skeleton: 'yMd', calendar: 'islamic' };\n }\n dateString = this.globalize.formatDate(this.value, formatOptions);\n }\n if ((+dateValue <= +this.max) && (+dateValue >= +this.min)) {\n this.updateInputValue(dateString);\n }\n else {\n var value = (+dateValue >= +this.max || !+this.value) || (!+this.value || +dateValue <= +this.min);\n if (!this.strictMode && value) {\n this.updateInputValue(dateString);\n }\n }\n }\n if (isNullOrUndefined(this.value) && this.strictMode) {\n if (!this.enableMask) {\n this.updateInputValue('');\n }\n else {\n this.updateInputValue(this.maskedDateValue);\n this.notify('createMask', {\n module: 'MaskedDateTime'\n });\n }\n }\n if (!this.strictMode && isNullOrUndefined(this.value) && this.invalidValueString) {\n this.updateInputValue(this.invalidValueString);\n }\n this.changedArgs = { value: this.value };\n this.errorClass();\n this.updateIconState();\n };\n DatePicker.prototype.minMaxUpdates = function () {\n if (!isNullOrUndefined(this.value) && this.value < this.min && this.min <= this.max && this.strictMode) {\n this.setProperties({ value: this.min }, true);\n this.changedArgs = { value: this.value };\n }\n else {\n if (!isNullOrUndefined(this.value) && this.value > this.max && this.min <= this.max && this.strictMode) {\n this.setProperties({ value: this.max }, true);\n this.changedArgs = { value: this.value };\n }\n }\n };\n DatePicker.prototype.checkStringValue = function (val) {\n var returnDate = null;\n var formatOptions = null;\n var formatDateTime = null;\n if (this.getModuleName() === 'datetimepicker') {\n var culture = new Internationalization(this.locale);\n if (this.calendarMode === 'Gregorian') {\n formatOptions = { format: this.dateTimeFormat, type: 'dateTime', skeleton: 'yMd' };\n formatDateTime = { format: culture.getDatePattern({ skeleton: 'yMd' }), type: 'dateTime' };\n }\n else {\n formatOptions = { format: this.dateTimeFormat, type: 'dateTime', skeleton: 'yMd', calendar: 'islamic' };\n formatDateTime = { format: culture.getDatePattern({ skeleton: 'yMd' }), type: 'dateTime', calendar: 'islamic' };\n }\n }\n else {\n if (this.calendarMode === 'Gregorian') {\n formatOptions = { format: this.formatString, type: 'dateTime', skeleton: 'yMd' };\n }\n else {\n formatOptions = { format: this.formatString, type: 'dateTime', skeleton: 'yMd', calendar: 'islamic' };\n }\n }\n returnDate = this.checkDateValue(this.globalize.parseDate(val, formatOptions));\n if (isNullOrUndefined(returnDate) && (this.getModuleName() === 'datetimepicker')) {\n returnDate = this.checkDateValue(this.globalize.parseDate(val, formatDateTime));\n }\n return returnDate;\n };\n DatePicker.prototype.checkInvalidValue = function (value) {\n if (!(value instanceof Date) && !isNullOrUndefined(value)) {\n var valueDate = null;\n var valueString = value;\n if (typeof value === 'number') {\n valueString = value.toString();\n }\n var formatOptions = null;\n var formatDateTime = null;\n if (this.getModuleName() === 'datetimepicker') {\n var culture = new Internationalization(this.locale);\n if (this.calendarMode === 'Gregorian') {\n formatOptions = { format: this.dateTimeFormat, type: 'dateTime', skeleton: 'yMd' };\n formatDateTime = { format: culture.getDatePattern({ skeleton: 'yMd' }), type: 'dateTime' };\n }\n else {\n formatOptions = { format: this.dateTimeFormat, type: 'dateTime', skeleton: 'yMd', calendar: 'islamic' };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n formatDateTime = { format: culture.getDatePattern({ skeleton: 'yMd' }), type: 'dateTime', calendar: 'islamic' };\n }\n }\n else {\n if (this.calendarMode === 'Gregorian') {\n formatOptions = { format: this.formatString, type: 'dateTime', skeleton: 'yMd' };\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n formatOptions = { format: this.formatString, type: 'dateTime', skeleton: 'yMd', calendar: 'islamic' };\n }\n }\n var invalid = false;\n if (typeof valueString !== 'string') {\n valueString = null;\n invalid = true;\n }\n else {\n if (typeof valueString === 'string') {\n valueString = valueString.trim();\n }\n valueDate = this.checkStringValue(valueString);\n if (!valueDate) {\n var extISOString = null;\n var basicISOString = null;\n // eslint-disable-next-line\n extISOString = /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?/;\n // eslint-disable-next-line\n basicISOString = /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?/;\n if ((!extISOString.test(valueString) && !basicISOString.test(valueString))\n || (/^[a-zA-Z0-9- ]*$/).test(valueString) || isNaN(+new Date(this.checkValue(valueString)))) {\n invalid = true;\n }\n else {\n valueDate = new Date(valueString);\n }\n }\n }\n if (invalid) {\n if (!this.strictMode) {\n this.invalidValueString = valueString;\n }\n this.setProperties({ value: null }, true);\n }\n else {\n this.setProperties({ value: valueDate }, true);\n }\n }\n };\n DatePicker.prototype.bindInputEvent = function () {\n if (!isNullOrUndefined(this.formatString) || this.enableMask) {\n if (this.enableMask || this.formatString.indexOf('y') === -1) {\n EventHandler.add(this.inputElement, 'input', this.inputHandler, this);\n }\n else {\n EventHandler.remove(this.inputElement, 'input', this.inputHandler);\n }\n }\n };\n DatePicker.prototype.bindEvents = function () {\n EventHandler.add(this.inputWrapper.buttons[0], 'mousedown touchstart', this.dateIconHandler, this);\n EventHandler.add(this.inputElement, 'mouseup', this.mouseUpHandler, this);\n EventHandler.add(this.inputElement, 'focus', this.inputFocusHandler, this);\n EventHandler.add(this.inputElement, 'blur', this.inputBlurHandler, this);\n if (this.enableMask) {\n EventHandler.add(this.inputElement, 'keydown', this.keydownHandler, this);\n }\n this.bindInputEvent();\n // To prevent the twice triggering.\n EventHandler.add(this.inputElement, 'change', this.inputChangeHandler, this);\n if (this.showClearButton && this.inputWrapper.clearButton) {\n EventHandler.add(this.inputWrapper.clearButton, 'mousedown touchstart', this.resetHandler, this);\n }\n if (this.formElement) {\n EventHandler.add(this.formElement, 'reset', this.resetFormHandler, this);\n }\n this.defaultKeyConfigs = extend(this.defaultKeyConfigs, this.keyConfigs);\n this.keyboardModules = new KeyboardEvents(this.inputElement, {\n eventName: 'keydown',\n keyAction: this.inputKeyActionHandle.bind(this),\n keyConfigs: this.defaultKeyConfigs\n });\n };\n DatePicker.prototype.keydownHandler = function (e) {\n switch (e.code) {\n case 'ArrowLeft':\n case 'ArrowRight':\n case 'ArrowUp':\n case 'ArrowDown':\n case 'Home':\n case 'End':\n case 'Delete':\n if (this.enableMask && !this.popupObj && !this.readonly) {\n if (e.code !== 'Delete') {\n e.preventDefault();\n }\n this.notify('keyDownHandler', {\n module: 'MaskedDateTime',\n e: e\n });\n }\n break;\n default:\n break;\n }\n };\n DatePicker.prototype.unBindEvents = function () {\n if (!isNullOrUndefined(this.inputWrapper)) {\n EventHandler.remove(this.inputWrapper.buttons[0], 'mousedown touchstart', this.dateIconHandler);\n }\n EventHandler.remove(this.inputElement, 'mouseup', this.mouseUpHandler);\n EventHandler.remove(this.inputElement, 'focus', this.inputFocusHandler);\n EventHandler.remove(this.inputElement, 'blur', this.inputBlurHandler);\n EventHandler.remove(this.inputElement, 'change', this.inputChangeHandler);\n if (this.enableMask) {\n EventHandler.remove(this.inputElement, 'keydown', this.keydownHandler);\n }\n if (this.showClearButton && this.inputWrapper.clearButton) {\n EventHandler.remove(this.inputWrapper.clearButton, 'mousedown touchstart', this.resetHandler);\n }\n if (this.formElement) {\n EventHandler.remove(this.formElement, 'reset', this.resetFormHandler);\n }\n };\n DatePicker.prototype.resetFormHandler = function () {\n if (!this.enabled) {\n return;\n }\n if (!this.inputElement.disabled) {\n var value = this.inputElement.getAttribute('value');\n if (this.element.tagName === 'EJS-DATEPICKER' || this.element.tagName === 'EJS-DATETIMEPICKER') {\n value = '';\n this.inputValueCopy = null;\n this.inputElement.setAttribute('value', '');\n }\n this.setProperties({ value: this.inputValueCopy }, true);\n this.restoreValue();\n if (this.inputElement) {\n this.updateInputValue(value);\n this.errorClass();\n }\n }\n };\n DatePicker.prototype.restoreValue = function () {\n this.currentDate = this.value ? this.value : new Date();\n this.previousDate = this.value;\n this.previousElementValue = (isNullOrUndefined(this.inputValueCopy)) ? '' :\n this.globalize.formatDate(this.inputValueCopy, {\n format: this.formatString, type: 'dateTime', skeleton: 'yMd'\n });\n };\n DatePicker.prototype.inputChangeHandler = function (e) {\n if (!this.enabled) {\n return;\n }\n e.stopPropagation();\n };\n DatePicker.prototype.bindClearEvent = function () {\n if (this.showClearButton && this.inputWrapper.clearButton) {\n EventHandler.add(this.inputWrapper.clearButton, 'mousedown touchstart', this.resetHandler, this);\n }\n };\n DatePicker.prototype.resetHandler = function (e) {\n if (!this.enabled) {\n return;\n }\n e.preventDefault();\n this.clear(e);\n };\n DatePicker.prototype.mouseUpHandler = function (e) {\n if (this.enableMask) {\n e.preventDefault();\n this.notify('setMaskSelection', {\n module: 'MaskedDateTime'\n });\n }\n };\n DatePicker.prototype.clear = function (event) {\n this.setProperties({ value: null }, true);\n if (!this.enableMask) {\n this.updateInputValue('');\n }\n var clearedArgs = {\n event: event\n };\n this.trigger('cleared', clearedArgs);\n this.invalidValueString = '';\n this.updateInput();\n this.popupUpdate();\n this.changeEvent(event);\n if (this.enableMask) {\n this.notify('clearHandler', {\n module: 'MaskedDateTime'\n });\n }\n if (closest(this.element, 'form')) {\n var element = this.element;\n var keyupEvent = document.createEvent('KeyboardEvent');\n keyupEvent.initEvent('keyup', false, true);\n element.dispatchEvent(keyupEvent);\n }\n };\n DatePicker.prototype.preventEventBubbling = function (e) {\n e.preventDefault();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.interopAdaptor.invokeMethodAsync('OnDateIconClick');\n };\n DatePicker.prototype.updateInputValue = function (value) {\n Input.setValue(value, this.inputElement, this.floatLabelType, this.showClearButton);\n };\n DatePicker.prototype.dateIconHandler = function (e) {\n if (!this.enabled) {\n return;\n }\n this.isIconClicked = true;\n if (Browser.isDevice) {\n this.inputElement.setAttribute('readonly', '');\n this.inputElement.blur();\n }\n e.preventDefault();\n if (!this.readonly) {\n if (this.isCalendar()) {\n this.hide(e);\n }\n else {\n this.isDateIconClicked = true;\n this.show(null, e);\n if (this.getModuleName() === 'datetimepicker') {\n this.inputElement.focus();\n }\n this.inputElement.focus();\n addClass([this.inputWrapper.container], [INPUTFOCUS]);\n addClass(this.inputWrapper.buttons, ACTIVE);\n }\n }\n this.isIconClicked = false;\n };\n DatePicker.prototype.updateHtmlAttributeToWrapper = function () {\n if (!isNullOrUndefined(this.htmlAttributes)) {\n for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) {\n var key = _a[_i];\n if (!isNullOrUndefined(this.htmlAttributes[\"\" + key])) {\n if (containerAttr.indexOf(key) > -1) {\n if (key === 'class') {\n var updatedClassValues = (this.htmlAttributes[\"\" + key].replace(/\\s+/g, ' ')).trim();\n if (updatedClassValues !== '') {\n addClass([this.inputWrapper.container], updatedClassValues.split(' '));\n }\n }\n else if (key === 'style') {\n var setStyle = this.inputWrapper.container.getAttribute(key);\n if (!isNullOrUndefined(setStyle)) {\n if (setStyle.charAt(setStyle.length - 1) === ';') {\n setStyle = setStyle + this.htmlAttributes[\"\" + key];\n }\n else {\n setStyle = setStyle + ';' + this.htmlAttributes[\"\" + key];\n }\n }\n else {\n setStyle = this.htmlAttributes[\"\" + key];\n }\n this.inputWrapper.container.setAttribute(key, setStyle);\n }\n else {\n this.inputWrapper.container.setAttribute(key, this.htmlAttributes[\"\" + key]);\n }\n }\n }\n }\n }\n };\n DatePicker.prototype.updateHtmlAttributeToElement = function () {\n if (!isNullOrUndefined(this.htmlAttributes)) {\n for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) {\n var key = _a[_i];\n if (containerAttr.indexOf(key) < 0) {\n this.inputElement.setAttribute(key, this.htmlAttributes[\"\" + key]);\n }\n }\n }\n };\n DatePicker.prototype.updateCssClass = function (newCssClass, oldCssClass) {\n if (!isNullOrUndefined(oldCssClass)) {\n oldCssClass = (oldCssClass.replace(/\\s+/g, ' ')).trim();\n }\n if (!isNullOrUndefined(newCssClass)) {\n newCssClass = (newCssClass.replace(/\\s+/g, ' ')).trim();\n }\n Input.setCssClass(newCssClass, [this.inputWrapper.container], oldCssClass);\n if (this.popupWrapper) {\n Input.setCssClass(newCssClass, [this.popupWrapper], oldCssClass);\n }\n };\n DatePicker.prototype.calendarKeyActionHandle = function (e) {\n switch (e.action) {\n case 'escape':\n if (this.isCalendar()) {\n this.hide(e);\n }\n else {\n this.inputWrapper.container.children[this.index].blur();\n }\n break;\n case 'enter':\n if (!this.isCalendar()) {\n this.show(null, e);\n }\n else {\n if (+this.value !== +this.currentDate && !this.isCalendar()) {\n this.inputWrapper.container.children[this.index].focus();\n }\n }\n if (this.getModuleName() === 'datetimepicker') {\n this.inputElement.focus();\n }\n break;\n case 'tab':\n this.hide(e);\n }\n };\n DatePicker.prototype.inputFocusHandler = function () {\n this.isFocused = true;\n if (!this.enabled) {\n return;\n }\n if (this.enableMask && !this.inputElement.value && this.placeholder) {\n if (this.maskedDateValue && !this.value && (this.floatLabelType === 'Auto' || this.floatLabelType === 'Never' || this.placeholder)) {\n this.updateInputValue(this.maskedDateValue);\n this.inputElement.selectionStart = 0;\n this.inputElement.selectionEnd = this.inputElement.value.length;\n }\n }\n var focusArguments = {\n model: this\n };\n this.isDateIconClicked = false;\n this.trigger('focus', focusArguments);\n this.updateIconState();\n if (this.openOnFocus && !this.isIconClicked) {\n this.show();\n }\n };\n DatePicker.prototype.inputHandler = function () {\n this.isPopupClicked = false;\n if (this.enableMask) {\n this.notify('inputHandler', {\n module: 'MaskedDateTime'\n });\n }\n };\n DatePicker.prototype.inputBlurHandler = function (e) {\n if (!this.enabled) {\n return;\n }\n this.strictModeUpdate();\n if (this.inputElement.value === '' && isNullOrUndefined(this.value)) {\n this.invalidValueString = null;\n this.updateInputValue('');\n }\n this.isBlur = true;\n this.updateInput(false, true);\n this.isBlur = false;\n this.popupUpdate();\n this.changeTrigger(e);\n if (this.enableMask && this.maskedDateValue && this.placeholder && this.floatLabelType !== 'Always') {\n if (this.inputElement.value === this.maskedDateValue && !this.value && (this.floatLabelType === 'Auto' || this.floatLabelType === 'Never' || this.placeholder)) {\n this.updateInputValue('');\n }\n }\n this.errorClass();\n if (this.isCalendar() && document.activeElement === this.inputElement) {\n this.hide(e);\n }\n if (this.getModuleName() === 'datepicker') {\n var blurArguments = {\n model: this\n };\n this.trigger('blur', blurArguments);\n }\n if (this.isCalendar()) {\n this.defaultKeyConfigs = extend(this.defaultKeyConfigs, this.keyConfigs);\n this.calendarKeyboardModules = new KeyboardEvents(this.calendarElement.children[1].firstElementChild, {\n eventName: 'keydown',\n keyAction: this.calendarKeyActionHandle.bind(this),\n keyConfigs: this.defaultKeyConfigs\n });\n }\n this.isPopupClicked = false;\n };\n DatePicker.prototype.documentHandler = function (e) {\n if ((!isNullOrUndefined(this.popupObj) && !isNullOrUndefined(this.inputWrapper) && (this.inputWrapper.container.contains(e.target) && e.type !== 'mousedown' ||\n (this.popupObj.element && this.popupObj.element.contains(e.target)))) && e.type !== 'touchstart') {\n e.preventDefault();\n }\n var target = e.target;\n if (!(closest(target, '.e-datepicker.e-popup-wrapper')) && !isNullOrUndefined(this.inputWrapper)\n && !(closest(target, '.' + INPUTCONTAINER) === this.inputWrapper.container)\n && (!target.classList.contains('e-day'))) {\n this.hide(e);\n this.focusOut();\n }\n else if (closest(target, '.e-datepicker.e-popup-wrapper')) {\n // Fix for close the popup when select the previously selected value.\n if (target.classList.contains('e-day')\n && !isNullOrUndefined(e.target.parentElement)\n && e.target.parentElement.classList.contains('e-selected')\n && closest(target, '.e-content')\n && closest(target, '.e-content').classList.contains('e-' + this.depth.toLowerCase())) {\n this.hide(e);\n }\n else if (closest(target, '.e-footer-container')\n && target.classList.contains('e-today')\n && target.classList.contains('e-btn')\n && (+new Date(+this.value) === +_super.prototype.generateTodayVal.call(this, this.value))) {\n this.hide(e);\n }\n }\n };\n DatePicker.prototype.inputKeyActionHandle = function (e) {\n var clickedView = this.currentView();\n switch (e.action) {\n case 'altUpArrow':\n this.isAltKeyPressed = false;\n this.hide(e);\n this.inputElement.focus();\n break;\n case 'altDownArrow':\n this.isAltKeyPressed = true;\n this.strictModeUpdate();\n this.updateInput();\n this.changeTrigger(e);\n if (this.getModuleName() === 'datepicker') {\n this.show(null, e);\n }\n break;\n case 'escape':\n this.hide(e);\n break;\n case 'enter':\n this.strictModeUpdate();\n this.updateInput();\n this.popupUpdate();\n this.changeTrigger(e);\n this.errorClass();\n if (!this.isCalendar() && document.activeElement === this.inputElement) {\n this.hide(e);\n }\n if (this.isCalendar()) {\n e.preventDefault();\n e.stopPropagation();\n }\n break;\n case 'tab':\n case 'shiftTab':\n {\n var start = this.inputElement.selectionStart;\n var end = this.inputElement.selectionEnd;\n if (this.enableMask && !this.popupObj && !this.readonly) {\n var length_1 = this.inputElement.value.length;\n if ((start === 0 && end === length_1) || (end !== length_1 && e.action === 'tab') || (start !== 0 && e.action === 'shiftTab')) {\n e.preventDefault();\n }\n this.notify('keyDownHandler', {\n module: 'MaskedDateTime',\n e: e\n });\n start = this.inputElement.selectionStart;\n end = this.inputElement.selectionEnd;\n }\n this.strictModeUpdate();\n this.updateInput();\n this.popupUpdate();\n this.changeTrigger(e);\n this.errorClass();\n if (this.enableMask) {\n this.inputElement.selectionStart = start;\n this.inputElement.selectionEnd = end;\n }\n this.hide(e);\n break;\n }\n default:\n this.defaultAction(e);\n // Fix for close the popup when select the previously selected value.\n if (e.action === 'select' && clickedView === this.depth) {\n this.hide(e);\n }\n }\n };\n DatePicker.prototype.defaultAction = function (e) {\n this.previousDate = ((!isNullOrUndefined(this.value) && new Date(+this.value)) || null);\n if (this.isCalendar()) {\n _super.prototype.keyActionHandle.call(this, e);\n if (this.isCalendar()) {\n attributes(this.inputElement, {\n 'aria-activedescendant': '' + this.setActiveDescendant()\n });\n }\n }\n };\n DatePicker.prototype.popupUpdate = function () {\n if ((isNullOrUndefined(this.value)) && (!isNullOrUndefined(this.previousDate)) ||\n (+this.value !== +this.previousDate)) {\n if (this.popupObj) {\n if (this.popupObj.element.querySelectorAll('.' + SELECTED).length > 0) {\n removeClass(this.popupObj.element.querySelectorAll('.' + SELECTED), [SELECTED]);\n }\n }\n if (!isNullOrUndefined(this.value)) {\n if ((+this.value >= +this.min) && (+this.value <= +this.max)) {\n var targetdate = new Date(this.checkValue(this.value));\n _super.prototype.navigateTo.call(this, 'Month', targetdate);\n }\n }\n }\n };\n DatePicker.prototype.strictModeUpdate = function () {\n var format;\n var formatOptions;\n if (this.getModuleName() === 'datetimepicker') {\n format = !isNullOrUndefined(this.formatString) ? this.formatString : this.dateTimeFormat;\n }\n else {\n format = isNullOrUndefined(this.formatString) ? this.formatString : this.formatString.replace('dd', 'd');\n }\n if (!isNullOrUndefined(format)) {\n var len = format.split('M').length - 1;\n if (len < 3) {\n format = format.replace('MM', 'M');\n }\n }\n var dateOptions;\n if (this.getModuleName() === 'datetimepicker') {\n if (this.calendarMode === 'Gregorian') {\n dateOptions = {\n format: !isNullOrUndefined(this.formatString) ? this.formatString : this.dateTimeFormat,\n type: 'dateTime', skeleton: 'yMd'\n };\n }\n else {\n dateOptions = {\n format: !isNullOrUndefined(this.formatString) ? this.formatString : this.dateTimeFormat,\n type: 'dateTime', skeleton: 'yMd', calendar: 'islamic'\n };\n }\n }\n else {\n if (this.calendarMode === 'Gregorian') {\n formatOptions = { format: format, type: 'dateTime', skeleton: 'yMd' };\n }\n else {\n formatOptions = { format: format, type: 'dateTime', skeleton: 'yMd', calendar: 'islamic' };\n }\n dateOptions = formatOptions;\n }\n var date;\n if (typeof this.inputElement.value === 'string') {\n this.inputElement.value = this.inputElement.value.trim();\n }\n if ((this.getModuleName() === 'datetimepicker')) {\n if (this.checkDateValue(this.globalize.parseDate(this.inputElement.value, dateOptions))) {\n date = this.globalize.parseDate(this.inputElement.value.toLocaleUpperCase(), dateOptions);\n }\n else {\n if (this.calendarMode === 'Gregorian') {\n formatOptions = { type: 'dateTime', skeleton: 'yMd' };\n }\n else {\n formatOptions = { type: 'dateTime', skeleton: 'yMd', calendar: 'islamic' };\n }\n date = this.globalize.parseDate(this.inputElement.value, formatOptions);\n }\n }\n else {\n date = this.globalize.parseDate(this.inputElement.value, dateOptions);\n date = (!isNullOrUndefined(date) && isNaN(+date)) ? null : date;\n if (!isNullOrUndefined(this.formatString) && this.inputElement.value !== '' && this.strictMode) {\n if ((this.isPopupClicked || (!this.isPopupClicked && this.inputElement.value === this.previousElementValue))\n && this.formatString.indexOf('y') === -1) {\n date.setFullYear(this.value.getFullYear());\n }\n }\n }\n // EJ2-35061 - To prevent change event from triggering twice when using strictmode and format property\n if ((this.getModuleName() === 'datepicker') && (this.value && !isNaN(+this.value)) && date) {\n date.setHours(this.value.getHours(), this.value.getMinutes(), this.value.getSeconds(), this.value.getMilliseconds());\n }\n if (this.strictMode && date) {\n this.updateInputValue(this.globalize.formatDate(date, dateOptions));\n if (this.inputElement.value !== this.previousElementValue) {\n this.setProperties({ value: date }, true);\n }\n }\n else if (!this.strictMode) {\n if (this.inputElement.value !== this.previousElementValue) {\n this.setProperties({ value: date }, true);\n }\n }\n if (this.strictMode && !date && this.inputElement.value === (this.enableMask ? this.maskedDateValue : '')) {\n this.setProperties({ value: null }, true);\n }\n if (isNaN(+this.value)) {\n this.setProperties({ value: null }, true);\n }\n if (isNullOrUndefined(this.value)) {\n this.currentDate = new Date(new Date().setHours(0, 0, 0, 0));\n }\n };\n DatePicker.prototype.createCalendar = function () {\n var _this = this;\n this.popupWrapper = this.createElement('div', { className: '' + ROOT + ' ' + POPUPWRAPPER });\n if (!isNullOrUndefined(this.cssClass)) {\n this.popupWrapper.className += ' ' + this.cssClass;\n }\n if (Browser.isDevice) {\n this.modelHeader();\n this.modal = this.createElement('div');\n this.modal.className = '' + ROOT + ' e-date-modal';\n document.body.className += ' ' + OVERFLOW;\n this.modal.style.display = 'block';\n document.body.appendChild(this.modal);\n }\n //this.calendarElement represent the Calendar object from the Calendar class.\n this.calendarElement.querySelector('table tbody').className = '';\n this.popupObj = new Popup(this.popupWrapper, {\n content: this.calendarElement,\n relateTo: Browser.isDevice ? document.body : this.inputWrapper.container,\n position: Browser.isDevice ? { X: 'center', Y: 'center' } : { X: 'left', Y: 'bottom' },\n offsetY: OFFSETVALUE,\n targetType: 'container',\n enableRtl: this.enableRtl,\n zIndex: this.zIndex,\n collision: Browser.isDevice ? { X: 'fit', Y: 'fit' } : { X: 'flip', Y: 'flip' },\n open: function () {\n if (_this.getModuleName() !== 'datetimepicker') {\n if (document.activeElement !== _this.inputElement) {\n _this.defaultKeyConfigs = extend(_this.defaultKeyConfigs, _this.keyConfigs);\n _this.calendarElement.children[1].firstElementChild.focus();\n _this.calendarKeyboardModules = new KeyboardEvents(_this.calendarElement.children[1].firstElementChild, {\n eventName: 'keydown',\n keyAction: _this.calendarKeyActionHandle.bind(_this),\n keyConfigs: _this.defaultKeyConfigs\n });\n _this.calendarKeyboardModules = new KeyboardEvents(_this.inputWrapper.container.children[_this.index], {\n eventName: 'keydown',\n keyAction: _this.calendarKeyActionHandle.bind(_this),\n keyConfigs: _this.defaultKeyConfigs\n });\n }\n }\n }, close: function () {\n if (_this.isDateIconClicked) {\n _this.inputWrapper.container.children[_this.index].focus();\n }\n if (_this.value) {\n _this.disabledDates();\n }\n if (_this.popupObj) {\n _this.popupObj.destroy();\n }\n _this.resetCalendar();\n detach(_this.popupWrapper);\n _this.popupObj = _this.popupWrapper = null;\n _this.preventArgs = null;\n _this.calendarKeyboardModules = null;\n _this.setAriaAttributes();\n }, targetExitViewport: function () {\n if (!Browser.isDevice) {\n _this.hide();\n }\n }\n });\n this.popupObj.element.className += ' ' + this.cssClass;\n this.setAriaAttributes();\n };\n DatePicker.prototype.setAriaDisabled = function () {\n if (!this.enabled) {\n this.inputElement.setAttribute('aria-disabled', 'true');\n this.inputElement.tabIndex = -1;\n }\n else {\n this.inputElement.setAttribute('aria-disabled', 'false');\n this.inputElement.setAttribute('tabindex', this.tabIndex);\n }\n };\n DatePicker.prototype.modelHeader = function () {\n var dateOptions;\n var modelHeader = this.createElement('div', { className: 'e-model-header' });\n var yearHeading = this.createElement('h1', { className: 'e-model-year' });\n var h2 = this.createElement('div');\n var daySpan = this.createElement('span', { className: 'e-model-day' });\n var monthSpan = this.createElement('span', { className: 'e-model-month' });\n if (this.calendarMode === 'Gregorian') {\n dateOptions = { format: 'y', skeleton: 'dateTime' };\n }\n else {\n dateOptions = { format: 'y', skeleton: 'dateTime', calendar: 'islamic' };\n }\n yearHeading.textContent = '' + this.globalize.formatDate(this.value || new Date(), dateOptions);\n if (this.calendarMode === 'Gregorian') {\n dateOptions = { format: 'E', skeleton: 'dateTime' };\n }\n else {\n dateOptions = { format: 'E', skeleton: 'dateTime', calendar: 'islamic' };\n }\n daySpan.textContent = '' + this.globalize.formatDate(this.value || new Date(), dateOptions) + ', ';\n if (this.calendarMode === 'Gregorian') {\n dateOptions = { format: 'MMM d', skeleton: 'dateTime' };\n }\n else {\n dateOptions = { format: 'MMM d', skeleton: 'dateTime', calendar: 'islamic' };\n }\n monthSpan.textContent = '' + this.globalize.formatDate(this.value || new Date(), dateOptions);\n modelHeader.appendChild(yearHeading);\n h2.appendChild(daySpan);\n h2.appendChild(monthSpan);\n modelHeader.appendChild(h2);\n this.calendarElement.insertBefore(modelHeader, this.calendarElement.firstElementChild);\n };\n DatePicker.prototype.changeTrigger = function (event) {\n if (this.inputElement.value !== this.previousElementValue) {\n if (((this.previousDate && this.previousDate.valueOf()) !== (this.value && this.value.valueOf()))) {\n if (this.isDynamicValueChanged && this.isCalendar()) {\n this.popupUpdate();\n }\n this.changedArgs.value = this.value;\n this.changedArgs.event = event || null;\n this.changedArgs.element = this.element;\n this.changedArgs.isInteracted = !isNullOrUndefined(event);\n if (this.isAngular && this.preventChange) {\n this.preventChange = false;\n }\n else {\n this.trigger('change', this.changedArgs);\n }\n this.previousElementValue = this.inputElement.value;\n this.previousDate = !isNaN(+new Date(this.checkValue(this.value))) ? new Date(this.checkValue(this.value)) : null;\n this.isInteracted = true;\n }\n }\n };\n DatePicker.prototype.navigatedEvent = function () {\n this.trigger('navigated', this.navigatedArgs);\n };\n DatePicker.prototype.changeEvent = function (event) {\n if (!this.isIconClicked && !this.isBlur) {\n this.selectCalendar(event);\n }\n if (((this.previousDate && this.previousDate.valueOf()) !== (this.value && this.value.valueOf()))) {\n this.changedArgs.event = event ? event : null;\n this.changedArgs.element = this.element;\n this.changedArgs.isInteracted = this.isInteracted;\n if (!this.isDynamicValueChanged) {\n this.trigger('change', this.changedArgs);\n }\n this.previousDate = this.value && new Date(+this.value);\n if (!this.isDynamicValueChanged) {\n this.hide(event);\n }\n this.previousElementValue = this.inputElement.value;\n this.errorClass();\n }\n else if (event) {\n this.hide(event);\n }\n };\n DatePicker.prototype.requiredModules = function () {\n var modules = [];\n if (this) {\n modules.push({ args: [this], member: 'islamic' });\n }\n if (this.enableMask) {\n modules.push({ args: [this], member: 'MaskedDateTime' });\n }\n return modules;\n };\n DatePicker.prototype.selectCalendar = function (e) {\n var date;\n var tempFormat;\n var formatOptions;\n if (this.getModuleName() === 'datetimepicker') {\n tempFormat = !isNullOrUndefined(this.formatString) ? this.formatString : this.dateTimeFormat;\n }\n else {\n tempFormat = this.formatString;\n }\n if (this.value) {\n if (this.getModuleName() === 'datetimepicker') {\n if (this.calendarMode === 'Gregorian') {\n formatOptions = { format: tempFormat, type: 'dateTime', skeleton: 'yMd' };\n }\n else {\n formatOptions = { format: tempFormat, type: 'dateTime', skeleton: 'yMd', calendar: 'islamic' };\n }\n date = this.globalize.formatDate(this.changedArgs.value, formatOptions);\n }\n else {\n if (this.calendarMode === 'Gregorian') {\n formatOptions = { format: this.formatString, type: 'dateTime', skeleton: 'yMd' };\n }\n else {\n formatOptions = { format: this.formatString, type: 'dateTime', skeleton: 'yMd', calendar: 'islamic' };\n }\n date = this.globalize.formatDate(this.changedArgs.value, formatOptions);\n }\n if (this.enableMask) {\n this.notify('createMask', {\n module: 'MaskedDateTime'\n });\n }\n }\n if (!isNullOrUndefined(date)) {\n this.updateInputValue(date);\n if (this.enableMask) {\n this.notify('setMaskSelection', {\n module: 'MaskedDateTime'\n });\n }\n }\n };\n DatePicker.prototype.isCalendar = function () {\n if (this.popupWrapper && this.popupWrapper.classList.contains('' + POPUPWRAPPER)) {\n return true;\n }\n return false;\n };\n DatePicker.prototype.setWidth = function (width) {\n if (typeof width === 'number') {\n this.inputWrapper.container.style.width = formatUnit(this.width);\n }\n else if (typeof width === 'string') {\n this.inputWrapper.container.style.width = (width.match(/px|%|em/)) ? (this.width) : (formatUnit(this.width));\n }\n else {\n this.inputWrapper.container.style.width = '100%';\n }\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-param */\n /**\n * Shows the Calendar.\n *\n * @returns {void}\n\n */\n DatePicker.prototype.show = function (type, e) {\n var _this = this;\n if ((this.enabled && this.readonly) || !this.enabled || this.popupObj) {\n return;\n }\n else {\n var prevent_1 = true;\n var outOfRange = void 0;\n if (!isNullOrUndefined(this.value) && !(+this.value >= +new Date(this.checkValue(this.min))\n && +this.value <= +new Date(this.checkValue(this.max)))) {\n outOfRange = new Date(this.checkValue(this.value));\n this.setProperties({ 'value': null }, true);\n }\n else {\n outOfRange = this.value || null;\n }\n if (!this.isCalendar()) {\n _super.prototype.render.call(this);\n this.setProperties({ 'value': outOfRange || null }, true);\n this.previousDate = outOfRange;\n this.createCalendar();\n }\n if (Browser.isDevice) {\n this.mobilePopupWrapper = this.createElement('div', { className: 'e-datepick-mob-popup-wrap' });\n document.body.appendChild(this.mobilePopupWrapper);\n }\n this.preventArgs = {\n preventDefault: function () {\n prevent_1 = false;\n },\n popup: this.popupObj,\n event: e || null,\n cancel: false,\n appendTo: Browser.isDevice ? this.mobilePopupWrapper : document.body\n };\n var eventArgs = this.preventArgs;\n this.trigger('open', eventArgs, function (eventArgs) {\n _this.preventArgs = eventArgs;\n if (prevent_1 && !_this.preventArgs.cancel) {\n addClass(_this.inputWrapper.buttons, ACTIVE);\n _this.preventArgs.appendTo.appendChild(_this.popupWrapper);\n _this.popupObj.refreshPosition(_this.inputElement);\n var openAnimation = {\n name: 'FadeIn',\n duration: Browser.isDevice ? 0 : OPENDURATION\n };\n if (_this.zIndex === 1000) {\n _this.popupObj.show(new Animation(openAnimation), _this.element);\n }\n else {\n _this.popupObj.show(new Animation(openAnimation), null);\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _super.prototype.setOverlayIndex.call(_this, _this.mobilePopupWrapper, _this.popupObj.element, _this.modal, Browser.isDevice);\n _this.setAriaAttributes();\n }\n else {\n _this.popupObj.destroy();\n _this.popupWrapper = _this.popupObj = null;\n }\n if (!isNullOrUndefined(_this.inputElement) && _this.inputElement.value === '') {\n if (!isNullOrUndefined(_this.tableBodyElement) && _this.tableBodyElement.querySelectorAll('td.e-selected').length > 0) {\n addClass([_this.tableBodyElement.querySelector('td.e-selected')], FOCUSEDDATE);\n removeClass(_this.tableBodyElement.querySelectorAll('td.e-selected'), SELECTED);\n }\n }\n EventHandler.add(document, 'mousedown touchstart', _this.documentHandler, _this);\n });\n }\n };\n /**\n * Hide the Calendar.\n *\n * @returns {void}\n\n */\n DatePicker.prototype.hide = function (event) {\n var _this = this;\n if (!isNullOrUndefined(this.popupWrapper)) {\n var prevent_2 = true;\n this.preventArgs = {\n preventDefault: function () {\n prevent_2 = false;\n },\n popup: this.popupObj,\n event: event || null,\n cancel: false\n };\n removeClass(this.inputWrapper.buttons, ACTIVE);\n removeClass([document.body], OVERFLOW);\n var eventArgs = this.preventArgs;\n if (this.isCalendar()) {\n this.trigger('close', eventArgs, function (eventArgs) {\n _this.closeEventCallback(prevent_2, eventArgs);\n });\n }\n else {\n this.closeEventCallback(prevent_2, eventArgs);\n }\n }\n else {\n if (Browser.isDevice && this.allowEdit && !this.readonly) {\n this.inputElement.removeAttribute('readonly');\n }\n this.setAllowEdit();\n }\n };\n /* eslint-enable valid-jsdoc, jsdoc/require-param */\n DatePicker.prototype.closeEventCallback = function (prevent, eventArgs) {\n this.preventArgs = eventArgs;\n if (this.isCalendar() && (prevent && !this.preventArgs.cancel)) {\n this.popupObj.hide();\n this.isAltKeyPressed = false;\n this.keyboardModule.destroy();\n removeClass(this.inputWrapper.buttons, ACTIVE);\n }\n this.setAriaAttributes();\n if (Browser.isDevice && this.modal) {\n this.modal.style.display = 'none';\n this.modal.outerHTML = '';\n this.modal = null;\n }\n if (Browser.isDevice) {\n if (!isNullOrUndefined(this.mobilePopupWrapper) && (prevent && (isNullOrUndefined(this.preventArgs) || !this.preventArgs.cancel))) {\n this.mobilePopupWrapper.remove();\n this.mobilePopupWrapper = null;\n }\n }\n EventHandler.remove(document, 'mousedown touchstart', this.documentHandler);\n if (Browser.isDevice && this.allowEdit && !this.readonly) {\n this.inputElement.removeAttribute('readonly');\n }\n this.setAllowEdit();\n };\n /* eslint-disable jsdoc/require-param */\n /**\n * Sets the focus to widget for interaction.\n *\n * @returns {void}\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n DatePicker.prototype.focusIn = function (triggerEvent) {\n if (document.activeElement !== this.inputElement && this.enabled) {\n this.inputElement.focus();\n addClass([this.inputWrapper.container], [INPUTFOCUS]);\n }\n };\n /* eslint-enable jsdoc/require-param */\n /**\n * Remove the focus from widget, if the widget is in focus state.\n *\n * @returns {void}\n */\n DatePicker.prototype.focusOut = function () {\n if (document.activeElement === this.inputElement) {\n removeClass([this.inputWrapper.container], [INPUTFOCUS]);\n this.inputElement.blur();\n }\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Gets the current view of the DatePicker.\n *\n * @returns {string}\n\n */\n DatePicker.prototype.currentView = function () {\n var currentView;\n if (this.calendarElement) {\n // calls the Calendar currentView public method\n currentView = _super.prototype.currentView.call(this);\n }\n return currentView;\n };\n /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Navigates to specified month or year or decade view of the DatePicker.\n *\n * @param {string} view - Specifies the view of the calendar.\n * @param {Date} date - Specifies the focused date in a view.\n * @returns {void}\n\n */\n DatePicker.prototype.navigateTo = function (view, date) {\n if (this.calendarElement) {\n // calls the Calendar navigateTo public method\n _super.prototype.navigateTo.call(this, view, date);\n }\n };\n /**\n * To destroy the widget.\n *\n * @returns {void}\n */\n DatePicker.prototype.destroy = function () {\n this.unBindEvents();\n _super.prototype.destroy.call(this);\n if (!isNullOrUndefined(this.keyboardModules)) {\n this.keyboardModules.destroy();\n }\n if (this.popupObj && this.popupObj.element.classList.contains(POPUP)) {\n _super.prototype.destroy.call(this);\n }\n var ariaAttrs = {\n 'aria-atomic': 'true', 'aria-disabled': 'true',\n 'aria-expanded': 'false', 'role': 'combobox', 'autocomplete': 'off',\n 'autocorrect': 'off', 'autocapitalize': 'off', 'spellcheck': 'false'\n };\n if (this.inputElement) {\n Input.removeAttributes(ariaAttrs, this.inputElement);\n if (!isNullOrUndefined(this.inputElementCopy.getAttribute('tabindex'))) {\n this.inputElement.setAttribute('tabindex', this.tabIndex);\n }\n else {\n this.inputElement.removeAttribute('tabindex');\n }\n EventHandler.remove(this.inputElement, 'blur', this.inputBlurHandler);\n EventHandler.remove(this.inputElement, 'focus', this.inputFocusHandler);\n this.ensureInputAttribute();\n }\n if (this.isCalendar()) {\n if (this.popupWrapper) {\n detach(this.popupWrapper);\n }\n this.popupObj = this.popupWrapper = null;\n this.keyboardModule.destroy();\n }\n if (this.ngTag === null) {\n if (this.inputElement) {\n if (!isNullOrUndefined(this.inputWrapper)) {\n this.inputWrapper.container.insertAdjacentElement('afterend', this.inputElement);\n }\n removeClass([this.inputElement], [INPUTROOT]);\n }\n removeClass([this.element], [ROOT]);\n if (!isNullOrUndefined(this.inputWrapper)) {\n detach(this.inputWrapper.container);\n }\n }\n if (this.formElement) {\n EventHandler.remove(this.formElement, 'reset', this.resetFormHandler);\n }\n this.inputWrapper = null;\n this.keyboardModules = null;\n };\n DatePicker.prototype.ensureInputAttribute = function () {\n var prop = [];\n for (var i = 0; i < this.inputElement.attributes.length; i++) {\n prop[i] = this.inputElement.attributes[i].name;\n }\n for (var i = 0; i < prop.length; i++) {\n if (isNullOrUndefined(this.inputElementCopy.getAttribute(prop[i]))) {\n if (prop[i].toLowerCase() === 'value') {\n this.inputElement.value = '';\n }\n this.inputElement.removeAttribute(prop[i]);\n }\n else {\n if (prop[i].toLowerCase() === 'value') {\n this.inputElement.value = this.inputElementCopy.getAttribute(prop[i]);\n }\n this.inputElement.setAttribute(prop[i], this.inputElementCopy.getAttribute(prop[i]));\n }\n }\n };\n /**\n * Initialize the event handler\n *\n * @returns {void}\n * @private\n */\n DatePicker.prototype.preRender = function () {\n this.inputElementCopy = this.element.cloneNode(true);\n removeClass([this.inputElementCopy], [ROOT, CONTROL, LIBRARY]);\n this.inputElement = this.element;\n this.formElement = closest(this.inputElement, 'form');\n this.index = this.showClearButton ? 2 : 1;\n this.ngTag = null;\n if (this.element.tagName === 'EJS-DATEPICKER' || this.element.tagName === 'EJS-DATETIMEPICKER') {\n this.ngTag = this.element.tagName;\n this.inputElement = this.createElement('input');\n this.element.appendChild(this.inputElement);\n }\n if (this.element.getAttribute('id')) {\n if (this.ngTag !== null) {\n this.inputElement.id = this.element.getAttribute('id') + '_input';\n }\n }\n else {\n if (this.getModuleName() === 'datetimepicker') {\n this.element.id = getUniqueID('ej2-datetimepicker');\n if (this.ngTag !== null) {\n attributes(this.inputElement, { 'id': this.element.id + '_input' });\n }\n }\n else {\n this.element.id = getUniqueID('ej2-datepicker');\n if (this.ngTag !== null) {\n attributes(this.inputElement, { 'id': this.element.id + '_input' });\n }\n }\n }\n if (this.ngTag !== null) {\n this.validationAttribute(this.element, this.inputElement);\n }\n this.updateHtmlAttributeToElement();\n this.defaultKeyConfigs = this.getDefaultKeyConfig();\n this.checkHtmlAttributes(false);\n this.tabIndex = this.element.hasAttribute('tabindex') ? this.element.getAttribute('tabindex') : '0';\n this.element.removeAttribute('tabindex');\n _super.prototype.preRender.call(this);\n };\n DatePicker.prototype.getDefaultKeyConfig = function () {\n this.defaultKeyConfigs = {\n altUpArrow: 'alt+uparrow',\n altDownArrow: 'alt+downarrow',\n escape: 'escape',\n enter: 'enter',\n controlUp: 'ctrl+38',\n controlDown: 'ctrl+40',\n moveDown: 'downarrow',\n moveUp: 'uparrow',\n moveLeft: 'leftarrow',\n moveRight: 'rightarrow',\n select: 'enter',\n home: 'home',\n end: 'end',\n pageUp: 'pageup',\n pageDown: 'pagedown',\n shiftPageUp: 'shift+pageup',\n shiftPageDown: 'shift+pagedown',\n controlHome: 'ctrl+home',\n controlEnd: 'ctrl+end',\n shiftTab: 'shift+tab',\n tab: 'tab'\n };\n return this.defaultKeyConfigs;\n };\n DatePicker.prototype.validationAttribute = function (target, inputElement) {\n var nameAttribute = target.getAttribute('name') ? target.getAttribute('name') : target.getAttribute('id');\n inputElement.setAttribute('name', nameAttribute);\n target.removeAttribute('name');\n var attribute = ['required', 'aria-required', 'form'];\n for (var i = 0; i < attribute.length; i++) {\n if (isNullOrUndefined(target.getAttribute(attribute[i]))) {\n continue;\n }\n var attr = target.getAttribute(attribute[i]);\n inputElement.setAttribute(attribute[i], attr);\n target.removeAttribute(attribute[i]);\n }\n };\n DatePicker.prototype.checkFormat = function () {\n var culture = new Internationalization(this.locale);\n if (this.format) {\n if (typeof this.format === 'string') {\n this.formatString = this.format;\n }\n else if (this.format.skeleton !== '' && !isNullOrUndefined(this.format.skeleton)) {\n var skeletonString = this.format.skeleton;\n if (this.getModuleName() === 'datetimepicker') {\n this.formatString = culture.getDatePattern({ skeleton: skeletonString, type: 'dateTime' });\n }\n else {\n this.formatString = culture.getDatePattern({ skeleton: skeletonString, type: 'date' });\n }\n }\n else {\n if (this.getModuleName() === 'datetimepicker') {\n this.formatString = this.dateTimeFormat;\n }\n else {\n this.formatString = null;\n }\n }\n }\n else {\n this.formatString = null;\n }\n };\n DatePicker.prototype.checkHtmlAttributes = function (dynamic) {\n this.globalize = new Internationalization(this.locale);\n this.checkFormat();\n this.checkView();\n var attributes = dynamic ? isNullOrUndefined(this.htmlAttributes) ? [] : Object.keys(this.htmlAttributes) :\n ['value', 'min', 'max', 'disabled', 'readonly', 'style', 'name', 'placeholder', 'type'];\n var options;\n if (this.getModuleName() === 'datetimepicker') {\n if (this.calendarMode === 'Gregorian') {\n options = {\n format: !isNullOrUndefined(this.formatString) ? this.formatString : this.dateTimeFormat,\n type: 'dateTime', skeleton: 'yMd'\n };\n }\n else {\n options = {\n format: !isNullOrUndefined(this.formatString) ? this.formatString : this.dateTimeFormat,\n type: 'dateTime', skeleton: 'yMd', calendar: 'islamic'\n };\n }\n }\n else {\n if (this.calendarMode === 'Gregorian') {\n options = { format: this.formatString, type: 'dateTime', skeleton: 'yMd' };\n }\n else {\n options = { format: this.formatString, type: 'dateTime', skeleton: 'yMd', calendar: 'islamic' };\n }\n }\n for (var _i = 0, attributes_1 = attributes; _i < attributes_1.length; _i++) {\n var prop = attributes_1[_i];\n if (!isNullOrUndefined(this.inputElement.getAttribute(prop))) {\n switch (prop) {\n case 'disabled':\n if (((isNullOrUndefined(this.datepickerOptions) || (this.datepickerOptions['enabled'] === undefined)) || dynamic)) {\n var enabled = this.inputElement.getAttribute(prop) === 'disabled' ||\n this.inputElement.getAttribute(prop) === '' ||\n this.inputElement.getAttribute(prop) === 'true' ? false : true;\n this.setProperties({ enabled: enabled }, !dynamic);\n }\n break;\n case 'readonly':\n if (((isNullOrUndefined(this.datepickerOptions) || (this.datepickerOptions['readonly'] === undefined)) || dynamic)) {\n var readonly = this.inputElement.getAttribute(prop) === 'readonly' ||\n this.inputElement.getAttribute(prop) === '' || this.inputElement.getAttribute(prop) === 'true' ? true : false;\n this.setProperties({ readonly: readonly }, !dynamic);\n }\n break;\n case 'placeholder':\n if (((isNullOrUndefined(this.datepickerOptions) || (this.datepickerOptions['placeholder'] === undefined)) || dynamic)) {\n this.setProperties({ placeholder: this.inputElement.getAttribute(prop) }, !dynamic);\n }\n break;\n case 'style':\n this.inputElement.setAttribute('style', '' + this.inputElement.getAttribute(prop));\n break;\n case 'name':\n this.inputElement.setAttribute('name', '' + this.inputElement.getAttribute(prop));\n break;\n case 'value':\n if (((isNullOrUndefined(this.datepickerOptions) || (this.datepickerOptions['value'] === undefined)) || dynamic)) {\n var value = this.inputElement.getAttribute(prop);\n this.setProperties(setValue(prop, this.globalize.parseDate(value, options), {}), !dynamic);\n }\n break;\n case 'min':\n if ((+this.min === +new Date(1900, 0, 1)) || dynamic) {\n var min = this.inputElement.getAttribute(prop);\n this.setProperties(setValue(prop, this.globalize.parseDate(min), {}), !dynamic);\n }\n break;\n case 'max':\n if ((+this.max === +new Date(2099, 11, 31)) || dynamic) {\n var max = this.inputElement.getAttribute(prop);\n this.setProperties(setValue(prop, this.globalize.parseDate(max), {}), !dynamic);\n }\n break;\n case 'type':\n if (this.inputElement.getAttribute(prop) !== 'text') {\n this.inputElement.setAttribute('type', 'text');\n }\n break;\n }\n }\n }\n };\n /**\n * To get component name.\n *\n * @returns {string} Returns the component name.\n * @private\n */\n DatePicker.prototype.getModuleName = function () {\n return 'datepicker';\n };\n DatePicker.prototype.disabledDates = function (isDynamic, isBlur) {\n if (isDynamic === void 0) { isDynamic = false; }\n if (isBlur === void 0) { isBlur = false; }\n var formatOptions;\n var globalize;\n var valueCopy = this.checkDateValue(this.value) ? new Date(+this.value) : new Date(this.checkValue(this.value));\n var previousValCopy = this.previousDate;\n //calls the Calendar render method to check the disabled dates through renderDayCell event and update the input value accordingly.\n this.minMaxUpdates();\n if (!isDynamic || (isDynamic && !isNullOrUndefined(this.renderDayCell))) {\n _super.prototype.render.call(this);\n }\n this.previousDate = previousValCopy;\n var date = valueCopy && +(valueCopy);\n var dateIdString = '*[id^=\"/id\"]'.replace('/id', '' + date);\n if (!this.strictMode) {\n if (typeof this.value === 'string' || ((typeof this.value === 'object') && (+this.value) !== (+valueCopy))) {\n this.setProperties({ value: valueCopy }, true);\n }\n }\n if (!isNullOrUndefined(this.calendarElement) && !isNullOrUndefined(this.calendarElement.querySelectorAll(dateIdString)[0])) {\n if (this.calendarElement.querySelectorAll(dateIdString)[0].classList.contains('e-disabled')) {\n if (!this.strictMode) {\n this.currentDate = new Date(new Date().setHours(0, 0, 0, 0));\n }\n }\n }\n var inputVal;\n if (this.getModuleName() === 'datetimepicker') {\n if (this.calendarMode === 'Gregorian') {\n globalize = this.globalize.formatDate(valueCopy, {\n format: !isNullOrUndefined(this.formatString) ? this.formatString : this.dateTimeFormat,\n type: 'dateTime', skeleton: 'yMd'\n });\n }\n else {\n globalize = this.globalize.formatDate(valueCopy, {\n format: !isNullOrUndefined(this.formatString) ? this.formatString : this.dateTimeFormat,\n type: 'dateTime', skeleton: 'yMd', calendar: 'islamic'\n });\n }\n inputVal = globalize;\n }\n else {\n if (this.calendarMode === 'Gregorian') {\n formatOptions = { format: this.formatString, type: 'dateTime', skeleton: 'yMd' };\n }\n else {\n formatOptions = { format: this.formatString, type: 'dateTime', skeleton: 'yMd', calendar: 'islamic' };\n }\n inputVal = this.globalize.formatDate(valueCopy, formatOptions);\n }\n if (!this.popupObj) {\n this.updateInputValue(inputVal);\n if (this.enableMask) {\n this.updateInputValue(this.maskedDateValue);\n this.notify('createMask', {\n module: 'MaskedDateTime', isBlur: isBlur\n });\n }\n }\n };\n DatePicker.prototype.setAriaAttributes = function () {\n if (this.isCalendar()) {\n Input.addAttributes({ 'aria-expanded': 'true' }, this.inputElement);\n attributes(this.inputElement, { 'aria-owns': this.inputElement.id + '_options' });\n if (this.value) {\n attributes(this.inputElement, { 'aria-activedescendant': '' + this.setActiveDescendant() });\n }\n }\n else {\n Input.addAttributes({ 'aria-expanded': 'false' }, this.inputElement);\n this.inputElement.removeAttribute('aria-owns');\n this.inputElement.removeAttribute('aria-activedescendant');\n }\n };\n DatePicker.prototype.errorClass = function () {\n var dateIdString = '*[id^=\"/id\"]'.replace('/id', '' + (+this.value));\n var isDisabledDate = this.calendarElement &&\n this.calendarElement.querySelectorAll(dateIdString)[0] &&\n this.calendarElement.querySelectorAll(dateIdString)[0].classList.contains('e-disabled');\n if ((!isNullOrUndefined(this.value) && !isNullOrUndefined(this.min) &&\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n !isNullOrUndefined(this.max) && !(new Date(this.value).setMilliseconds(0) >= new Date(this.min).setMilliseconds(0)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n && new Date(this.value).setMilliseconds(0) <= new Date(this.max).setMilliseconds(0)))\n || (!this.strictMode && this.inputElement.value !== '' && this.inputElement.value !== this.maskedDateValue && isNullOrUndefined(this.value) || isDisabledDate)) {\n addClass([this.inputWrapper.container], ERROR);\n attributes(this.inputElement, { 'aria-invalid': 'true' });\n }\n else if (!isNullOrUndefined(this.inputWrapper)) {\n removeClass([this.inputWrapper.container], ERROR);\n attributes(this.inputElement, { 'aria-invalid': 'false' });\n }\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {DatePickerModel} newProp - Returns the dynamic property value of the component.\n * @param {DatePickerModel} oldProp - Returns the previous property value of the component.\n * @returns {void}\n * @private\n */\n DatePicker.prototype.onPropertyChanged = function (newProp, oldProp) {\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'value':\n this.isDynamicValueChanged = true;\n this.isInteracted = false;\n this.invalidValueString = null;\n this.checkInvalidValue(newProp.value);\n newProp.value = this.value;\n this.previousElementValue = this.inputElement.value;\n if (isNullOrUndefined(this.value)) {\n if (this.enableMask) {\n this.updateInputValue(this.maskedDateValue);\n }\n else {\n this.updateInputValue('');\n }\n this.currentDate = new Date(new Date().setHours(0, 0, 0, 0));\n }\n this.updateInput(true);\n if (+this.previousDate !== +this.value) {\n this.changeTrigger(null);\n }\n this.isInteracted = true;\n this.preventChange = this.isAngular && this.preventChange ? !this.preventChange : this.preventChange;\n if (this.enableMask) {\n this.notify('createMask', {\n module: 'MaskedDateTime'\n });\n }\n break;\n case 'format':\n this.checkFormat();\n this.bindInputEvent();\n this.updateInput();\n if (this.enableMask) {\n this.notify('createMask', {\n module: 'MaskedDateTime'\n });\n if (!this.value) {\n this.updateInputValue(this.maskedDateValue);\n }\n }\n break;\n case 'allowEdit':\n this.setAllowEdit();\n break;\n case 'placeholder':\n Input.setPlaceholder(this.placeholder, this.inputElement);\n break;\n case 'readonly':\n Input.setReadonly(this.readonly, this.inputElement);\n break;\n case 'enabled':\n Input.setEnabled(this.enabled, this.inputElement);\n this.setAriaDisabled();\n break;\n case 'htmlAttributes':\n this.updateHtmlAttributeToElement();\n this.updateHtmlAttributeToWrapper();\n this.checkHtmlAttributes(true);\n break;\n case 'locale':\n this.globalize = new Internationalization(this.locale);\n this.l10n.setLocale(this.locale);\n this.setProperties({ placeholder: this.l10n.getConstant('placeholder') }, true);\n Input.setPlaceholder(this.placeholder, this.inputElement);\n this.updateInput();\n if (this.enableMask) {\n this.notify('createMask', {\n module: 'MaskedDateTime'\n });\n }\n break;\n case 'enableRtl':\n Input.setEnableRtl(this.enableRtl, [this.inputWrapper.container]);\n break;\n case 'start':\n case 'depth':\n this.checkView();\n if (this.calendarElement) {\n _super.prototype.onPropertyChanged.call(this, newProp, oldProp);\n }\n break;\n case 'zIndex':\n this.setProperties({ zIndex: newProp.zIndex }, true);\n break;\n case 'cssClass':\n this.updateCssClass(newProp.cssClass, oldProp.cssClass);\n break;\n case 'showClearButton':\n Input.setClearButton(this.showClearButton, this.inputElement, this.inputWrapper);\n this.bindClearEvent();\n this.index = this.showClearButton ? 2 : 1;\n break;\n case 'strictMode':\n this.invalidValueString = null;\n this.updateInput();\n break;\n case 'width':\n this.setWidth(newProp.width);\n Input.calculateWidth(this.inputElement, this.inputWrapper.container);\n if (!isNullOrUndefined(this.inputWrapper.buttons[0]) && !isNullOrUndefined(this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0]) && this.floatLabelType !== 'Never') {\n this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0].classList.add('e-icon');\n }\n break;\n case 'floatLabelType':\n this.floatLabelType = newProp.floatLabelType;\n Input.removeFloating(this.inputWrapper);\n Input.addFloating(this.inputElement, this.floatLabelType, this.placeholder);\n if (!isNullOrUndefined(this.inputWrapper.buttons[0]) && !isNullOrUndefined(this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0]) && this.floatLabelType !== 'Never') {\n this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0].classList.add('e-icon');\n }\n break;\n case 'enableMask':\n if (this.enableMask) {\n this.notify('createMask', {\n module: 'MaskedDateTime'\n });\n this.updateInputValue(this.maskedDateValue);\n this.bindInputEvent();\n }\n else {\n if (this.inputElement.value === this.maskedDateValue) {\n this.updateInputValue('');\n }\n }\n break;\n default:\n if (this.calendarElement && this.isCalendar()) {\n _super.prototype.onPropertyChanged.call(this, newProp, oldProp);\n }\n break;\n }\n if (!this.isDynamicValueChanged) {\n this.hide(null);\n }\n this.isDynamicValueChanged = false;\n }\n };\n __decorate([\n Property(null)\n ], DatePicker.prototype, \"width\", void 0);\n __decorate([\n Property(null)\n ], DatePicker.prototype, \"value\", void 0);\n __decorate([\n Property(null)\n ], DatePicker.prototype, \"cssClass\", void 0);\n __decorate([\n Property(false)\n ], DatePicker.prototype, \"strictMode\", void 0);\n __decorate([\n Property(null)\n ], DatePicker.prototype, \"format\", void 0);\n __decorate([\n Property(true)\n ], DatePicker.prototype, \"enabled\", void 0);\n __decorate([\n Property({})\n ], DatePicker.prototype, \"htmlAttributes\", void 0);\n __decorate([\n Property(null)\n ], DatePicker.prototype, \"values\", void 0);\n __decorate([\n Property(false)\n ], DatePicker.prototype, \"isMultiSelection\", void 0);\n __decorate([\n Property(true)\n ], DatePicker.prototype, \"showClearButton\", void 0);\n __decorate([\n Property(true)\n ], DatePicker.prototype, \"allowEdit\", void 0);\n __decorate([\n Property(null)\n ], DatePicker.prototype, \"keyConfigs\", void 0);\n __decorate([\n Property(false)\n ], DatePicker.prototype, \"enablePersistence\", void 0);\n __decorate([\n Property(1000)\n ], DatePicker.prototype, \"zIndex\", void 0);\n __decorate([\n Property(false)\n ], DatePicker.prototype, \"readonly\", void 0);\n __decorate([\n Property(null)\n ], DatePicker.prototype, \"placeholder\", void 0);\n __decorate([\n Property('Never')\n ], DatePicker.prototype, \"floatLabelType\", void 0);\n __decorate([\n Property(null)\n ], DatePicker.prototype, \"serverTimezoneOffset\", void 0);\n __decorate([\n Property(false)\n ], DatePicker.prototype, \"openOnFocus\", void 0);\n __decorate([\n Property(false)\n ], DatePicker.prototype, \"enableMask\", void 0);\n __decorate([\n Property({ day: 'day', month: 'month', year: 'year', hour: 'hour', minute: 'minute', second: 'second', dayOfTheWeek: 'day of the week' })\n ], DatePicker.prototype, \"maskPlaceholder\", void 0);\n __decorate([\n Event()\n ], DatePicker.prototype, \"open\", void 0);\n __decorate([\n Event()\n ], DatePicker.prototype, \"cleared\", void 0);\n __decorate([\n Event()\n ], DatePicker.prototype, \"close\", void 0);\n __decorate([\n Event()\n ], DatePicker.prototype, \"blur\", void 0);\n __decorate([\n Event()\n ], DatePicker.prototype, \"focus\", void 0);\n __decorate([\n Event()\n ], DatePicker.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], DatePicker.prototype, \"destroyed\", void 0);\n DatePicker = __decorate([\n NotifyPropertyChanges\n ], DatePicker);\n return DatePicker;\n}(Calendar));\nexport { DatePicker };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { DatePicker } from '@syncfusion/ej2-calendars';\nimport { ComponentBase, applyMixins } from '@syncfusion/ej2-react-base';\n/**\n * Represents the Essential JS 2 React DatePicker Component.\n * ```ts\n * \n * ```\n */\nvar DatePickerComponent = /** @class */ (function (_super) {\n __extends(DatePickerComponent, _super);\n function DatePickerComponent(props) {\n var _this = _super.call(this, props) || this;\n _this.initRenderCalled = false;\n _this.checkInjectedModules = true;\n _this.statelessTemplateProps = null;\n _this.templateProps = null;\n _this.immediateRender = true;\n _this.portals = [];\n return _this;\n }\n DatePickerComponent.prototype.render = function () {\n if (((this.element && !this.initRenderCalled) || this.refreshing) && !this.isReactForeceUpdate) {\n _super.prototype.render.call(this);\n this.initRenderCalled = true;\n }\n else {\n return React.createElement(React.Fragment, null, [].concat(React.createElement(\"input\", this.getDefaultAttributes()), this.portals));\n }\n };\n return DatePickerComponent;\n}(DatePicker));\nexport { DatePickerComponent };\napplyMixins(DatePickerComponent, [ComponentBase, React.Component]);\n","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nfunction _createForOfIteratorHelper(r, e) {\n var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (!t) {\n if (Array.isArray(r) || (t = unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) {\n t && (r = t);\n var _n = 0,\n F = function F() {};\n return {\n s: F,\n n: function n() {\n return _n >= r.length ? {\n done: !0\n } : {\n done: !1,\n value: r[_n++]\n };\n },\n e: function e(r) {\n throw r;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var o,\n a = !0,\n u = !1;\n return {\n s: function s() {\n t = t.call(r);\n },\n n: function n() {\n var r = t.next();\n return a = r.done, r;\n },\n e: function e(r) {\n u = !0, o = r;\n },\n f: function f() {\n try {\n a || null == t[\"return\"] || t[\"return\"]();\n } finally {\n if (u) throw o;\n }\n }\n };\n}\nexport { _createForOfIteratorHelper as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","export default function assign(target, object) {\n if (target == null) {\n throw new TypeError('assign requires that input parameter not be null or undefined');\n }\n for (var property in object) {\n if (Object.prototype.hasOwnProperty.call(object, property)) {\n ;\n target[property] = object[property];\n }\n }\n return target;\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inherits(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e && setPrototypeOf(t, e);\n}\nexport { _inherits as default };","function _getPrototypeOf(t) {\n return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, _getPrototypeOf(t);\n}\nexport { _getPrototypeOf as default };","function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {\n return !!t;\n })();\n}\nexport { _isNativeReflectConstruct as default };","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nfunction _createSuper(t) {\n var r = isNativeReflectConstruct();\n return function () {\n var e,\n o = getPrototypeOf(t);\n if (r) {\n var s = getPrototypeOf(this).constructor;\n e = Reflect.construct(o, arguments, s);\n } else e = o.apply(this, arguments);\n return possibleConstructorReturn(this, e);\n };\n}\nexport { _createSuper as default };","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nfunction _possibleConstructorReturn(t, e) {\n if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e;\n if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");\n return assertThisInitialized(t);\n}\nexport { _possibleConstructorReturn as default };","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nexport { _createClass as default };","import _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar TIMEZONE_UNIT_PRIORITY = 10;\nexport var Setter = /*#__PURE__*/function () {\n function Setter() {\n _classCallCheck(this, Setter);\n _defineProperty(this, \"priority\", void 0);\n _defineProperty(this, \"subPriority\", 0);\n }\n _createClass(Setter, [{\n key: \"validate\",\n value: function validate(_utcDate, _options) {\n return true;\n }\n }]);\n return Setter;\n}();\nexport var ValueSetter = /*#__PURE__*/function (_Setter) {\n _inherits(ValueSetter, _Setter);\n var _super = _createSuper(ValueSetter);\n function ValueSetter(value, validateValue, setValue, priority, subPriority) {\n var _this;\n _classCallCheck(this, ValueSetter);\n _this = _super.call(this);\n _this.value = value;\n _this.validateValue = validateValue;\n _this.setValue = setValue;\n _this.priority = priority;\n if (subPriority) {\n _this.subPriority = subPriority;\n }\n return _this;\n }\n _createClass(ValueSetter, [{\n key: \"validate\",\n value: function validate(utcDate, options) {\n return this.validateValue(utcDate, this.value, options);\n }\n }, {\n key: \"set\",\n value: function set(utcDate, flags, options) {\n return this.setValue(utcDate, flags, this.value, options);\n }\n }]);\n return ValueSetter;\n}(Setter);\nexport var DateToSystemTimezoneSetter = /*#__PURE__*/function (_Setter2) {\n _inherits(DateToSystemTimezoneSetter, _Setter2);\n var _super2 = _createSuper(DateToSystemTimezoneSetter);\n function DateToSystemTimezoneSetter() {\n var _this2;\n _classCallCheck(this, DateToSystemTimezoneSetter);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this2 = _super2.call.apply(_super2, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this2), \"priority\", TIMEZONE_UNIT_PRIORITY);\n _defineProperty(_assertThisInitialized(_this2), \"subPriority\", -1);\n return _this2;\n }\n _createClass(DateToSystemTimezoneSetter, [{\n key: \"set\",\n value: function set(date, flags) {\n if (flags.timestampIsSet) {\n return date;\n }\n var convertedDate = new Date(0);\n convertedDate.setFullYear(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate());\n convertedDate.setHours(date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), date.getUTCMilliseconds());\n return convertedDate;\n }\n }]);\n return DateToSystemTimezoneSetter;\n}(Setter);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { ValueSetter } from \"./Setter.js\";\nexport var Parser = /*#__PURE__*/function () {\n function Parser() {\n _classCallCheck(this, Parser);\n _defineProperty(this, \"incompatibleTokens\", void 0);\n _defineProperty(this, \"priority\", void 0);\n _defineProperty(this, \"subPriority\", void 0);\n }\n _createClass(Parser, [{\n key: \"run\",\n value: function run(dateString, token, match, options) {\n var result = this.parse(dateString, token, match, options);\n if (!result) {\n return null;\n }\n return {\n setter: new ValueSetter(result.value, this.validate, this.set, this.priority, this.subPriority),\n rest: result.rest\n };\n }\n }, {\n key: \"validate\",\n value: function validate(_utcDate, _value, _options) {\n return true;\n }\n }]);\n return Parser;\n}();","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nexport var EraParser = /*#__PURE__*/function (_Parser) {\n _inherits(EraParser, _Parser);\n var _super = _createSuper(EraParser);\n function EraParser() {\n var _this;\n _classCallCheck(this, EraParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 140);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['R', 'u', 't', 'T']);\n return _this;\n }\n _createClass(EraParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return match.era(dateString, {\n width: 'abbreviated'\n }) || match.era(dateString, {\n width: 'narrow'\n });\n // A, B\n case 'GGGGG':\n return match.era(dateString, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n case 'GGGG':\n default:\n return match.era(dateString, {\n width: 'wide'\n }) || match.era(dateString, {\n width: 'abbreviated'\n }) || match.era(dateString, {\n width: 'narrow'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n flags.era = value;\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return EraParser;\n}(Parser);","export var numericPatterns = {\n month: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n date: /^(3[0-1]|[0-2]?\\d)/,\n // 0 to 31\n dayOfYear: /^(36[0-6]|3[0-5]\\d|[0-2]?\\d?\\d)/,\n // 0 to 366\n week: /^(5[0-3]|[0-4]?\\d)/,\n // 0 to 53\n hour23h: /^(2[0-3]|[0-1]?\\d)/,\n // 0 to 23\n hour24h: /^(2[0-4]|[0-1]?\\d)/,\n // 0 to 24\n hour11h: /^(1[0-1]|0?\\d)/,\n // 0 to 11\n hour12h: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n minute: /^[0-5]?\\d/,\n // 0 to 59\n second: /^[0-5]?\\d/,\n // 0 to 59\n\n singleDigit: /^\\d/,\n // 0 to 9\n twoDigits: /^\\d{1,2}/,\n // 0 to 99\n threeDigits: /^\\d{1,3}/,\n // 0 to 999\n fourDigits: /^\\d{1,4}/,\n // 0 to 9999\n\n anyDigitsSigned: /^-?\\d+/,\n singleDigitSigned: /^-?\\d/,\n // 0 to 9, -0 to -9\n twoDigitsSigned: /^-?\\d{1,2}/,\n // 0 to 99, -0 to -99\n threeDigitsSigned: /^-?\\d{1,3}/,\n // 0 to 999, -0 to -999\n fourDigitsSigned: /^-?\\d{1,4}/ // 0 to 9999, -0 to -9999\n};\n\nexport var timezonePatterns = {\n basicOptionalMinutes: /^([+-])(\\d{2})(\\d{2})?|Z/,\n basic: /^([+-])(\\d{2})(\\d{2})|Z/,\n basicOptionalSeconds: /^([+-])(\\d{2})(\\d{2})((\\d{2}))?|Z/,\n extended: /^([+-])(\\d{2}):(\\d{2})|Z/,\n extendedOptionalSeconds: /^([+-])(\\d{2}):(\\d{2})(:(\\d{2}))?|Z/\n};","/**\n * Days in 1 week.\n *\n * @name daysInWeek\n * @constant\n * @type {number}\n * @default\n */\nexport var daysInWeek = 7;\n\n/**\n * Days in 1 year\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occures every 4 years, except for years that are divisable by 100 and not divisable by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n *\n * @name daysInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var daysInYear = 365.2425;\n\n/**\n * Maximum allowed time.\n *\n * @name maxTime\n * @constant\n * @type {number}\n * @default\n */\nexport var maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * Milliseconds in 1 minute\n *\n * @name millisecondsInMinute\n * @constant\n * @type {number}\n * @default\n */\nexport var millisecondsInMinute = 60000;\n\n/**\n * Milliseconds in 1 hour\n *\n * @name millisecondsInHour\n * @constant\n * @type {number}\n * @default\n */\nexport var millisecondsInHour = 3600000;\n\n/**\n * Milliseconds in 1 second\n *\n * @name millisecondsInSecond\n * @constant\n * @type {number}\n * @default\n */\nexport var millisecondsInSecond = 1000;\n\n/**\n * Minimum allowed time.\n *\n * @name minTime\n * @constant\n * @type {number}\n * @default\n */\nexport var minTime = -maxTime;\n\n/**\n * Minutes in 1 hour\n *\n * @name minutesInHour\n * @constant\n * @type {number}\n * @default\n */\nexport var minutesInHour = 60;\n\n/**\n * Months in 1 quarter\n *\n * @name monthsInQuarter\n * @constant\n * @type {number}\n * @default\n */\nexport var monthsInQuarter = 3;\n\n/**\n * Months in 1 year\n *\n * @name monthsInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var monthsInYear = 12;\n\n/**\n * Quarters in 1 year\n *\n * @name quartersInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var quartersInYear = 4;\n\n/**\n * Seconds in 1 hour\n *\n * @name secondsInHour\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInHour = 3600;\n\n/**\n * Seconds in 1 minute\n *\n * @name secondsInMinute\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInMinute = 60;\n\n/**\n * Seconds in 1 day\n *\n * @name secondsInDay\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInDay = secondsInHour * 24;\n\n/**\n * Seconds in 1 week\n *\n * @name secondsInWeek\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInWeek = secondsInDay * 7;\n\n/**\n * Seconds in 1 year\n *\n * @name secondsInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInYear = secondsInDay * daysInYear;\n\n/**\n * Seconds in 1 month\n *\n * @name secondsInMonth\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInMonth = secondsInYear / 12;\n\n/**\n * Seconds in 1 quarter\n *\n * @name secondsInQuarter\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInQuarter = secondsInMonth * 3;","import { millisecondsInHour, millisecondsInMinute, millisecondsInSecond } from \"../../constants/index.js\";\nimport { numericPatterns } from \"./constants.js\";\nexport function mapValue(parseFnResult, mapFn) {\n if (!parseFnResult) {\n return parseFnResult;\n }\n return {\n value: mapFn(parseFnResult.value),\n rest: parseFnResult.rest\n };\n}\nexport function parseNumericPattern(pattern, dateString) {\n var matchResult = dateString.match(pattern);\n if (!matchResult) {\n return null;\n }\n return {\n value: parseInt(matchResult[0], 10),\n rest: dateString.slice(matchResult[0].length)\n };\n}\nexport function parseTimezonePattern(pattern, dateString) {\n var matchResult = dateString.match(pattern);\n if (!matchResult) {\n return null;\n }\n\n // Input is 'Z'\n if (matchResult[0] === 'Z') {\n return {\n value: 0,\n rest: dateString.slice(1)\n };\n }\n var sign = matchResult[1] === '+' ? 1 : -1;\n var hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;\n var minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;\n var seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;\n return {\n value: sign * (hours * millisecondsInHour + minutes * millisecondsInMinute + seconds * millisecondsInSecond),\n rest: dateString.slice(matchResult[0].length)\n };\n}\nexport function parseAnyDigitsSigned(dateString) {\n return parseNumericPattern(numericPatterns.anyDigitsSigned, dateString);\n}\nexport function parseNDigits(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigit, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigits, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigits, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigits, dateString);\n default:\n return parseNumericPattern(new RegExp('^\\\\d{1,' + n + '}'), dateString);\n }\n}\nexport function parseNDigitsSigned(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigitSigned, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigitsSigned, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigitsSigned, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigitsSigned, dateString);\n default:\n return parseNumericPattern(new RegExp('^-?\\\\d{1,' + n + '}'), dateString);\n }\n}\nexport function dayPeriodEnumToHours(dayPeriod) {\n switch (dayPeriod) {\n case 'morning':\n return 4;\n case 'evening':\n return 17;\n case 'pm':\n case 'noon':\n case 'afternoon':\n return 12;\n case 'am':\n case 'midnight':\n case 'night':\n default:\n return 0;\n }\n}\nexport function normalizeTwoDigitYear(twoDigitYear, currentYear) {\n var isCommonEra = currentYear > 0;\n // Absolute number of the current year:\n // 1 -> 1 AC\n // 0 -> 1 BC\n // -1 -> 2 BC\n var absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;\n var result;\n if (absCurrentYear <= 50) {\n result = twoDigitYear || 100;\n } else {\n var rangeEnd = absCurrentYear + 50;\n var rangeEndCentury = Math.floor(rangeEnd / 100) * 100;\n var isPreviousCentury = twoDigitYear >= rangeEnd % 100;\n result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);\n }\n return isCommonEra ? result : 1 - result;\n}\nexport function isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.js\";\n// From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns\n// | Year | y | yy | yyy | yyyy | yyyyy |\n// |----------|-------|----|-------|-------|-------|\n// | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n// | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n// | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n// | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n// | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\nexport var YearParser = /*#__PURE__*/function (_Parser) {\n _inherits(YearParser, _Parser);\n var _super = _createSuper(YearParser);\n function YearParser() {\n var _this;\n _classCallCheck(this, YearParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'u', 'w', 'I', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(YearParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(year) {\n return {\n year: year,\n isTwoDigitYear: token === 'yy'\n };\n };\n switch (token) {\n case 'y':\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case 'yo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'year'\n }), valueCallback);\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n var currentYear = date.getUTCFullYear();\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return YearParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigits, normalizeTwoDigitYear, mapValue } from \"../utils.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport startOfUTCWeek from \"../../../_lib/startOfUTCWeek/index.js\";\n// Local week-numbering year\nexport var LocalWeekYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(LocalWeekYearParser, _Parser);\n var _super = _createSuper(LocalWeekYearParser);\n function LocalWeekYearParser() {\n var _this;\n _classCallCheck(this, LocalWeekYearParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'Q', 'q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']);\n return _this;\n }\n _createClass(LocalWeekYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(year) {\n return {\n year: year,\n isTwoDigitYear: token === 'YY'\n };\n };\n switch (token) {\n case 'Y':\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case 'Yo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'year'\n }), valueCallback);\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value, options) {\n var currentYear = getUTCWeekYear(date, options);\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n }\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n }\n }]);\n return LocalWeekYearParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigitsSigned } from \"../utils.js\";\nimport startOfUTCISOWeek from \"../../../_lib/startOfUTCISOWeek/index.js\"; // ISO week-numbering year\nexport var ISOWeekYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOWeekYearParser, _Parser);\n var _super = _createSuper(ISOWeekYearParser);\n function ISOWeekYearParser() {\n var _this;\n _classCallCheck(this, ISOWeekYearParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['G', 'y', 'Y', 'u', 'Q', 'q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(ISOWeekYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n if (token === 'R') {\n return parseNDigitsSigned(4, dateString);\n }\n return parseNDigitsSigned(token.length, dateString);\n }\n }, {\n key: \"set\",\n value: function set(_date, _flags, value) {\n var firstWeekOfYear = new Date(0);\n firstWeekOfYear.setUTCFullYear(value, 0, 4);\n firstWeekOfYear.setUTCHours(0, 0, 0, 0);\n return startOfUTCISOWeek(firstWeekOfYear);\n }\n }]);\n return ISOWeekYearParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigitsSigned } from \"../utils.js\";\nexport var ExtendedYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(ExtendedYearParser, _Parser);\n var _super = _createSuper(ExtendedYearParser);\n function ExtendedYearParser() {\n var _this;\n _classCallCheck(this, ExtendedYearParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['G', 'y', 'Y', 'R', 'w', 'I', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(ExtendedYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n if (token === 'u') {\n return parseNDigitsSigned(4, dateString);\n }\n return parseNDigitsSigned(token.length, dateString);\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return ExtendedYearParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigits } from \"../utils.js\";\nexport var QuarterParser = /*#__PURE__*/function (_Parser) {\n _inherits(QuarterParser, _Parser);\n var _super = _createSuper(QuarterParser);\n function QuarterParser() {\n var _this;\n _classCallCheck(this, QuarterParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 120);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(QuarterParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n case 'QQ':\n // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case 'Qo':\n return match.ordinalNumber(dateString, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'QQQ':\n return match.quarter(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'QQQQQ':\n return match.quarter(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n case 'QQQQ':\n default:\n return match.quarter(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.quarter(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return QuarterParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigits } from \"../utils.js\";\nexport var StandAloneQuarterParser = /*#__PURE__*/function (_Parser) {\n _inherits(StandAloneQuarterParser, _Parser);\n var _super = _createSuper(StandAloneQuarterParser);\n function StandAloneQuarterParser() {\n var _this;\n _classCallCheck(this, StandAloneQuarterParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 120);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'Q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(StandAloneQuarterParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n case 'qq':\n // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case 'qo':\n return match.ordinalNumber(dateString, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'qqq':\n return match.quarter(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'qqqqq':\n return match.quarter(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n case 'qqqq':\n default:\n return match.quarter(dateString, {\n width: 'wide',\n context: 'standalone'\n }) || match.quarter(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return StandAloneQuarterParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.js\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nexport var MonthParser = /*#__PURE__*/function (_Parser) {\n _inherits(MonthParser, _Parser);\n var _super = _createSuper(MonthParser);\n function MonthParser() {\n var _this;\n _classCallCheck(this, MonthParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'L', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']);\n _defineProperty(_assertThisInitialized(_this), \"priority\", 110);\n return _this;\n }\n _createClass(MonthParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(value) {\n return value - 1;\n };\n switch (token) {\n // 1, 2, ..., 12\n case 'M':\n return mapValue(parseNumericPattern(numericPatterns.month, dateString), valueCallback);\n // 01, 02, ..., 12\n case 'MM':\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case 'Mo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'month'\n }), valueCallback);\n // Jan, Feb, ..., Dec\n case 'MMM':\n return match.month(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // J, F, ..., D\n case 'MMMMM':\n return match.month(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n case 'MMMM':\n default:\n return match.month(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.month(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return MonthParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits, mapValue } from \"../utils.js\";\nexport var StandAloneMonthParser = /*#__PURE__*/function (_Parser) {\n _inherits(StandAloneMonthParser, _Parser);\n var _super = _createSuper(StandAloneMonthParser);\n function StandAloneMonthParser() {\n var _this;\n _classCallCheck(this, StandAloneMonthParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 110);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'M', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(StandAloneMonthParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(value) {\n return value - 1;\n };\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return mapValue(parseNumericPattern(numericPatterns.month, dateString), valueCallback);\n // 01, 02, ..., 12\n case 'LL':\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case 'Lo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'month'\n }), valueCallback);\n // Jan, Feb, ..., Dec\n case 'LLL':\n return match.month(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // J, F, ..., D\n case 'LLLLL':\n return match.month(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n case 'LLLL':\n default:\n return match.month(dateString, {\n width: 'wide',\n context: 'standalone'\n }) || match.month(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return StandAloneMonthParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nimport setUTCWeek from \"../../../_lib/setUTCWeek/index.js\";\nimport startOfUTCWeek from \"../../../_lib/startOfUTCWeek/index.js\"; // Local week of year\nexport var LocalWeekParser = /*#__PURE__*/function (_Parser) {\n _inherits(LocalWeekParser, _Parser);\n var _super = _createSuper(LocalWeekParser);\n function LocalWeekParser() {\n var _this;\n _classCallCheck(this, LocalWeekParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 100);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']);\n return _this;\n }\n _createClass(LocalWeekParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'w':\n return parseNumericPattern(numericPatterns.week, dateString);\n case 'wo':\n return match.ordinalNumber(dateString, {\n unit: 'week'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n return startOfUTCWeek(setUTCWeek(date, value, options), options);\n }\n }]);\n return LocalWeekParser;\n}(Parser);","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport getUTCWeek from \"../getUTCWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function setUTCWeek(dirtyDate, dirtyWeek, options) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var week = toInteger(dirtyWeek);\n var diff = getUTCWeek(date, options) - week;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nimport setUTCISOWeek from \"../../../_lib/setUTCISOWeek/index.js\";\nimport startOfUTCISOWeek from \"../../../_lib/startOfUTCISOWeek/index.js\"; // ISO week of year\nexport var ISOWeekParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOWeekParser, _Parser);\n var _super = _createSuper(ISOWeekParser);\n function ISOWeekParser() {\n var _this;\n _classCallCheck(this, ISOWeekParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 100);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(ISOWeekParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'I':\n return parseNumericPattern(numericPatterns.week, dateString);\n case 'Io':\n return match.ordinalNumber(dateString, {\n unit: 'week'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n return startOfUTCISOWeek(setUTCISOWeek(date, value));\n }\n }]);\n return ISOWeekParser;\n}(Parser);","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport getUTCISOWeek from \"../getUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function setUTCISOWeek(dirtyDate, dirtyISOWeek) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var isoWeek = toInteger(dirtyISOWeek);\n var diff = getUTCISOWeek(date) - isoWeek;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { isLeapYearIndex, parseNDigits, parseNumericPattern } from \"../utils.js\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nvar DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nvar DAYS_IN_MONTH_LEAP_YEAR = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\n// Day of the month\nexport var DateParser = /*#__PURE__*/function (_Parser) {\n _inherits(DateParser, _Parser);\n var _super = _createSuper(DateParser);\n function DateParser() {\n var _this;\n _classCallCheck(this, DateParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"subPriority\", 1);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(DateParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'd':\n return parseNumericPattern(numericPatterns.date, dateString);\n case 'do':\n return match.ordinalNumber(dateString, {\n unit: 'date'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(date, value) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n var month = date.getUTCMonth();\n if (isLeapYear) {\n return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];\n } else {\n return value >= 1 && value <= DAYS_IN_MONTH[month];\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCDate(value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return DateParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits, isLeapYearIndex } from \"../utils.js\";\nexport var DayOfYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(DayOfYearParser, _Parser);\n var _super = _createSuper(DayOfYearParser);\n function DayOfYearParser() {\n var _this;\n _classCallCheck(this, DayOfYearParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"subpriority\", 1);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'M', 'L', 'w', 'I', 'd', 'E', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(DayOfYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'D':\n case 'DD':\n return parseNumericPattern(numericPatterns.dayOfYear, dateString);\n case 'Do':\n return match.ordinalNumber(dateString, {\n unit: 'date'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(date, value) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n if (isLeapYear) {\n return value >= 1 && value <= 366;\n } else {\n return value >= 1 && value <= 365;\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth(0, value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return DayOfYearParser;\n}(Parser);","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function setUTCDay(dirtyDate, dirtyDay, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(2, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n var date = toDate(dirtyDate);\n var day = toInteger(dirtyDay);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport setUTCDay from \"../../../_lib/setUTCDay/index.js\"; // Day of week\nexport var DayParser = /*#__PURE__*/function (_Parser) {\n _inherits(DayParser, _Parser);\n var _super = _createSuper(DayParser);\n function DayParser() {\n var _this;\n _classCallCheck(this, DayParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['D', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(DayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n case 'EEEEE':\n return match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'EEEEEE':\n return match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n case 'EEEE':\n default:\n return match.day(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return DayParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nimport setUTCDay from \"../../../_lib/setUTCDay/index.js\"; // Local day of week\nexport var LocalDayParser = /*#__PURE__*/function (_Parser) {\n _inherits(LocalDayParser, _Parser);\n var _super = _createSuper(LocalDayParser);\n function LocalDayParser() {\n var _this;\n _classCallCheck(this, LocalDayParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'c', 't', 'T']);\n return _this;\n }\n _createClass(LocalDayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match, options) {\n var valueCallback = function valueCallback(value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n switch (token) {\n // 3\n case 'e':\n case 'ee':\n // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case 'eo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'day'\n }), valueCallback);\n // Tue\n case 'eee':\n return match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n case 'eeeee':\n return match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'eeeeee':\n return match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n case 'eeee':\n default:\n return match.day(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return LocalDayParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nimport setUTCDay from \"../../../_lib/setUTCDay/index.js\"; // Stand-alone local day of week\nexport var StandAloneLocalDayParser = /*#__PURE__*/function (_Parser) {\n _inherits(StandAloneLocalDayParser, _Parser);\n var _super = _createSuper(StandAloneLocalDayParser);\n function StandAloneLocalDayParser() {\n var _this;\n _classCallCheck(this, StandAloneLocalDayParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'e', 't', 'T']);\n return _this;\n }\n _createClass(StandAloneLocalDayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match, options) {\n var valueCallback = function valueCallback(value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n switch (token) {\n // 3\n case 'c':\n case 'cc':\n // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case 'co':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'day'\n }), valueCallback);\n // Tue\n case 'ccc':\n return match.day(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'short',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // T\n case 'ccccc':\n return match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n case 'cccccc':\n return match.day(dateString, {\n width: 'short',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tuesday\n case 'cccc':\n default:\n return match.day(dateString, {\n width: 'wide',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'short',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return StandAloneLocalDayParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nimport setUTCISODay from \"../../../_lib/setUTCISODay/index.js\"; // ISO day of week\nexport var ISODayParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISODayParser, _Parser);\n var _super = _createSuper(ISODayParser);\n function ISODayParser() {\n var _this;\n _classCallCheck(this, ISODayParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'E', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(ISODayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(value) {\n if (value === 0) {\n return 7;\n }\n return value;\n };\n switch (token) {\n // 2\n case 'i':\n case 'ii':\n // 02\n return parseNDigits(token.length, dateString);\n // 2nd\n case 'io':\n return match.ordinalNumber(dateString, {\n unit: 'day'\n });\n // Tue\n case 'iii':\n return mapValue(match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n // T\n case 'iiiii':\n return mapValue(match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n // Tu\n case 'iiiiii':\n return mapValue(match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n // Tuesday\n case 'iiii':\n default:\n return mapValue(match.day(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 7;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date = setUTCISODay(date, value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return ISODayParser;\n}(Parser);","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nexport default function setUTCISODay(dirtyDate, dirtyDay) {\n requiredArgs(2, arguments);\n var day = toInteger(dirtyDay);\n if (day % 7 === 0) {\n day = day - 7;\n }\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { dayPeriodEnumToHours } from \"../utils.js\";\nexport var AMPMParser = /*#__PURE__*/function (_Parser) {\n _inherits(AMPMParser, _Parser);\n var _super = _createSuper(AMPMParser);\n function AMPMParser() {\n var _this;\n _classCallCheck(this, AMPMParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 80);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['b', 'B', 'H', 'k', 't', 'T']);\n return _this;\n }\n _createClass(AMPMParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'a':\n case 'aa':\n case 'aaa':\n return match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'aaaaa':\n return match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'aaaa':\n default:\n return match.dayPeriod(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n }]);\n return AMPMParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { dayPeriodEnumToHours } from \"../utils.js\";\nexport var AMPMMidnightParser = /*#__PURE__*/function (_Parser) {\n _inherits(AMPMMidnightParser, _Parser);\n var _super = _createSuper(AMPMMidnightParser);\n function AMPMMidnightParser() {\n var _this;\n _classCallCheck(this, AMPMMidnightParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 80);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'B', 'H', 'k', 't', 'T']);\n return _this;\n }\n _createClass(AMPMMidnightParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'b':\n case 'bb':\n case 'bbb':\n return match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'bbbbb':\n return match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'bbbb':\n default:\n return match.dayPeriod(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n }]);\n return AMPMMidnightParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { dayPeriodEnumToHours } from \"../utils.js\"; // in the morning, in the afternoon, in the evening, at night\nexport var DayPeriodParser = /*#__PURE__*/function (_Parser) {\n _inherits(DayPeriodParser, _Parser);\n var _super = _createSuper(DayPeriodParser);\n function DayPeriodParser() {\n var _this;\n _classCallCheck(this, DayPeriodParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 80);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'b', 't', 'T']);\n return _this;\n }\n _createClass(DayPeriodParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'BBBBB':\n return match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'BBBB':\n default:\n return match.dayPeriod(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n }]);\n return DayPeriodParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour1to12Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour1to12Parser, _Parser);\n var _super = _createSuper(Hour1to12Parser);\n function Hour1to12Parser() {\n var _this;\n _classCallCheck(this, Hour1to12Parser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['H', 'K', 'k', 't', 'T']);\n return _this;\n }\n _createClass(Hour1to12Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'h':\n return parseNumericPattern(numericPatterns.hour12h, dateString);\n case 'ho':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 12;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n var isPM = date.getUTCHours() >= 12;\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else if (!isPM && value === 12) {\n date.setUTCHours(0, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n return date;\n }\n }]);\n return Hour1to12Parser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour0to23Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour0to23Parser, _Parser);\n var _super = _createSuper(Hour0to23Parser);\n function Hour0to23Parser() {\n var _this;\n _classCallCheck(this, Hour0to23Parser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'b', 'h', 'K', 'k', 't', 'T']);\n return _this;\n }\n _createClass(Hour0to23Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'H':\n return parseNumericPattern(numericPatterns.hour23h, dateString);\n case 'Ho':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 23;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(value, 0, 0, 0);\n return date;\n }\n }]);\n return Hour0to23Parser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour0To11Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour0To11Parser, _Parser);\n var _super = _createSuper(Hour0To11Parser);\n function Hour0To11Parser() {\n var _this;\n _classCallCheck(this, Hour0To11Parser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['h', 'H', 'k', 't', 'T']);\n return _this;\n }\n _createClass(Hour0To11Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'K':\n return parseNumericPattern(numericPatterns.hour11h, dateString);\n case 'Ko':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n var isPM = date.getUTCHours() >= 12;\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n return date;\n }\n }]);\n return Hour0To11Parser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour1To24Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour1To24Parser, _Parser);\n var _super = _createSuper(Hour1To24Parser);\n function Hour1To24Parser() {\n var _this;\n _classCallCheck(this, Hour1To24Parser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'b', 'h', 'H', 'K', 't', 'T']);\n return _this;\n }\n _createClass(Hour1To24Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'k':\n return parseNumericPattern(numericPatterns.hour24h, dateString);\n case 'ko':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 24;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n var hours = value <= 24 ? value % 24 : value;\n date.setUTCHours(hours, 0, 0, 0);\n return date;\n }\n }]);\n return Hour1To24Parser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var MinuteParser = /*#__PURE__*/function (_Parser) {\n _inherits(MinuteParser, _Parser);\n var _super = _createSuper(MinuteParser);\n function MinuteParser() {\n var _this;\n _classCallCheck(this, MinuteParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 60);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T']);\n return _this;\n }\n _createClass(MinuteParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'm':\n return parseNumericPattern(numericPatterns.minute, dateString);\n case 'mo':\n return match.ordinalNumber(dateString, {\n unit: 'minute'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMinutes(value, 0, 0);\n return date;\n }\n }]);\n return MinuteParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var SecondParser = /*#__PURE__*/function (_Parser) {\n _inherits(SecondParser, _Parser);\n var _super = _createSuper(SecondParser);\n function SecondParser() {\n var _this;\n _classCallCheck(this, SecondParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 50);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T']);\n return _this;\n }\n _createClass(SecondParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 's':\n return parseNumericPattern(numericPatterns.second, dateString);\n case 'so':\n return match.ordinalNumber(dateString, {\n unit: 'second'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCSeconds(value, 0);\n return date;\n }\n }]);\n return SecondParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nexport var FractionOfSecondParser = /*#__PURE__*/function (_Parser) {\n _inherits(FractionOfSecondParser, _Parser);\n var _super = _createSuper(FractionOfSecondParser);\n function FractionOfSecondParser() {\n var _this;\n _classCallCheck(this, FractionOfSecondParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 30);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T']);\n return _this;\n }\n _createClass(FractionOfSecondParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n var valueCallback = function valueCallback(value) {\n return Math.floor(value * Math.pow(10, -token.length + 3));\n };\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMilliseconds(value);\n return date;\n }\n }]);\n return FractionOfSecondParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { timezonePatterns } from \"../constants.js\";\nimport { parseTimezonePattern } from \"../utils.js\"; // Timezone (ISO-8601. +00:00 is `'Z'`)\nexport var ISOTimezoneWithZParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOTimezoneWithZParser, _Parser);\n var _super = _createSuper(ISOTimezoneWithZParser);\n function ISOTimezoneWithZParser() {\n var _this;\n _classCallCheck(this, ISOTimezoneWithZParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 10);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T', 'x']);\n return _this;\n }\n _createClass(ISOTimezoneWithZParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n switch (token) {\n case 'X':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, dateString);\n case 'XX':\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case 'XXXX':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, dateString);\n case 'XXXXX':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, dateString);\n case 'XXX':\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n if (flags.timestampIsSet) {\n return date;\n }\n return new Date(date.getTime() - value);\n }\n }]);\n return ISOTimezoneWithZParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { timezonePatterns } from \"../constants.js\";\nimport { parseTimezonePattern } from \"../utils.js\"; // Timezone (ISO-8601)\nexport var ISOTimezoneParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOTimezoneParser, _Parser);\n var _super = _createSuper(ISOTimezoneParser);\n function ISOTimezoneParser() {\n var _this;\n _classCallCheck(this, ISOTimezoneParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 10);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T', 'X']);\n return _this;\n }\n _createClass(ISOTimezoneParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n switch (token) {\n case 'x':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, dateString);\n case 'xx':\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case 'xxxx':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, dateString);\n case 'xxxxx':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, dateString);\n case 'xxx':\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n if (flags.timestampIsSet) {\n return date;\n }\n return new Date(date.getTime() - value);\n }\n }]);\n return ISOTimezoneParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseAnyDigitsSigned } from \"../utils.js\";\nexport var TimestampSecondsParser = /*#__PURE__*/function (_Parser) {\n _inherits(TimestampSecondsParser, _Parser);\n var _super = _createSuper(TimestampSecondsParser);\n function TimestampSecondsParser() {\n var _this;\n _classCallCheck(this, TimestampSecondsParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 40);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", '*');\n return _this;\n }\n _createClass(TimestampSecondsParser, [{\n key: \"parse\",\n value: function parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n }, {\n key: \"set\",\n value: function set(_date, _flags, value) {\n return [new Date(value * 1000), {\n timestampIsSet: true\n }];\n }\n }]);\n return TimestampSecondsParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseAnyDigitsSigned } from \"../utils.js\";\nexport var TimestampMillisecondsParser = /*#__PURE__*/function (_Parser) {\n _inherits(TimestampMillisecondsParser, _Parser);\n var _super = _createSuper(TimestampMillisecondsParser);\n function TimestampMillisecondsParser() {\n var _this;\n _classCallCheck(this, TimestampMillisecondsParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 20);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", '*');\n return _this;\n }\n _createClass(TimestampMillisecondsParser, [{\n key: \"parse\",\n value: function parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n }, {\n key: \"set\",\n value: function set(_date, _flags, value) {\n return [new Date(value), {\n timestampIsSet: true\n }];\n }\n }]);\n return TimestampMillisecondsParser;\n}(Parser);","import { EraParser } from \"./EraParser.js\";\nimport { YearParser } from \"./YearParser.js\";\nimport { LocalWeekYearParser } from \"./LocalWeekYearParser.js\";\nimport { ISOWeekYearParser } from \"./ISOWeekYearParser.js\";\nimport { ExtendedYearParser } from \"./ExtendedYearParser.js\";\nimport { QuarterParser } from \"./QuarterParser.js\";\nimport { StandAloneQuarterParser } from \"./StandAloneQuarterParser.js\";\nimport { MonthParser } from \"./MonthParser.js\";\nimport { StandAloneMonthParser } from \"./StandAloneMonthParser.js\";\nimport { LocalWeekParser } from \"./LocalWeekParser.js\";\nimport { ISOWeekParser } from \"./ISOWeekParser.js\";\nimport { DateParser } from \"./DateParser.js\";\nimport { DayOfYearParser } from \"./DayOfYearParser.js\";\nimport { DayParser } from \"./DayParser.js\";\nimport { LocalDayParser } from \"./LocalDayParser.js\";\nimport { StandAloneLocalDayParser } from \"./StandAloneLocalDayParser.js\";\nimport { ISODayParser } from \"./ISODayParser.js\";\nimport { AMPMParser } from \"./AMPMParser.js\";\nimport { AMPMMidnightParser } from \"./AMPMMidnightParser.js\";\nimport { DayPeriodParser } from \"./DayPeriodParser.js\";\nimport { Hour1to12Parser } from \"./Hour1to12Parser.js\";\nimport { Hour0to23Parser } from \"./Hour0to23Parser.js\";\nimport { Hour0To11Parser } from \"./Hour0To11Parser.js\";\nimport { Hour1To24Parser } from \"./Hour1To24Parser.js\";\nimport { MinuteParser } from \"./MinuteParser.js\";\nimport { SecondParser } from \"./SecondParser.js\";\nimport { FractionOfSecondParser } from \"./FractionOfSecondParser.js\";\nimport { ISOTimezoneWithZParser } from \"./ISOTimezoneWithZParser.js\";\nimport { ISOTimezoneParser } from \"./ISOTimezoneParser.js\";\nimport { TimestampSecondsParser } from \"./TimestampSecondsParser.js\";\nimport { TimestampMillisecondsParser } from \"./TimestampMillisecondsParser.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O* | Timezone (GMT) |\n * | p | | P | |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z* | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n */\nexport var parsers = {\n G: new EraParser(),\n y: new YearParser(),\n Y: new LocalWeekYearParser(),\n R: new ISOWeekYearParser(),\n u: new ExtendedYearParser(),\n Q: new QuarterParser(),\n q: new StandAloneQuarterParser(),\n M: new MonthParser(),\n L: new StandAloneMonthParser(),\n w: new LocalWeekParser(),\n I: new ISOWeekParser(),\n d: new DateParser(),\n D: new DayOfYearParser(),\n E: new DayParser(),\n e: new LocalDayParser(),\n c: new StandAloneLocalDayParser(),\n i: new ISODayParser(),\n a: new AMPMParser(),\n b: new AMPMMidnightParser(),\n B: new DayPeriodParser(),\n h: new Hour1to12Parser(),\n H: new Hour0to23Parser(),\n K: new Hour0To11Parser(),\n k: new Hour1To24Parser(),\n m: new MinuteParser(),\n s: new SecondParser(),\n S: new FractionOfSecondParser(),\n X: new ISOTimezoneWithZParser(),\n x: new ISOTimezoneParser(),\n t: new TimestampSecondsParser(),\n T: new TimestampMillisecondsParser()\n};","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _createForOfIteratorHelper from \"@babel/runtime/helpers/esm/createForOfIteratorHelper\";\nimport defaultLocale from \"../_lib/defaultLocale/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport assign from \"../_lib/assign/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { DateToSystemTimezoneSetter } from \"./_lib/Setter.js\";\nimport { parsers } from \"./_lib/parsers/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar notWhitespaceRegExp = /\\S/;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name parse\n * @category Common Helpers\n * @summary Parse the date.\n *\n * @description\n * Return the date parsed from string using the given format string.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters in the format string wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the format string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 5 below the table).\n *\n * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited\n * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:\n *\n * ```javascript\n * parse('23 AM', 'HH a', new Date())\n * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time\n * ```\n *\n * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true\n *\n * Accepted format string patterns:\n * | Unit |Prior| Pattern | Result examples | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era | 140 | G..GGG | AD, BC | |\n * | | | GGGG | Anno Domini, Before Christ | 2 |\n * | | | GGGGG | A, B | |\n * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 |\n * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | yy | 44, 01, 00, 17 | 4 |\n * | | | yyy | 044, 001, 123, 999 | 4 |\n * | | | yyyy | 0044, 0001, 1900, 2017 | 4 |\n * | | | yyyyy | ... | 2,4 |\n * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 |\n * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | YY | 44, 01, 00, 17 | 4,6 |\n * | | | YYY | 044, 001, 123, 999 | 4 |\n * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 |\n * | | | YYYYY | ... | 2,4 |\n * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 |\n * | | | RR | -43, 01, 00, 17 | 4,5 |\n * | | | RRR | -043, 001, 123, 999, -999 | 4,5 |\n * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 |\n * | | | RRRRR | ... | 2,4,5 |\n * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 |\n * | | | uu | -43, 01, 99, -99 | 4 |\n * | | | uuu | -043, 001, 123, 999, -999 | 4 |\n * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 |\n * | | | uuuuu | ... | 2,4 |\n * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | |\n * | | | Qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | QQ | 01, 02, 03, 04 | |\n * | | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | 120 | q | 1, 2, 3, 4 | |\n * | | | qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | qq | 01, 02, 03, 04 | |\n * | | | qqq | Q1, Q2, Q3, Q4 | |\n * | | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | | qqqqq | 1, 2, 3, 4 | 3 |\n * | Month (formatting) | 110 | M | 1, 2, ..., 12 | |\n * | | | Mo | 1st, 2nd, ..., 12th | 5 |\n * | | | MM | 01, 02, ..., 12 | |\n * | | | MMM | Jan, Feb, ..., Dec | |\n * | | | MMMM | January, February, ..., December | 2 |\n * | | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | 110 | L | 1, 2, ..., 12 | |\n * | | | Lo | 1st, 2nd, ..., 12th | 5 |\n * | | | LL | 01, 02, ..., 12 | |\n * | | | LLL | Jan, Feb, ..., Dec | |\n * | | | LLLL | January, February, ..., December | 2 |\n * | | | LLLLL | J, F, ..., D | |\n * | Local week of year | 100 | w | 1, 2, ..., 53 | |\n * | | | wo | 1st, 2nd, ..., 53th | 5 |\n * | | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 |\n * | | | Io | 1st, 2nd, ..., 53th | 5 |\n * | | | II | 01, 02, ..., 53 | 5 |\n * | Day of month | 90 | d | 1, 2, ..., 31 | |\n * | | | do | 1st, 2nd, ..., 31st | 5 |\n * | | | dd | 01, 02, ..., 31 | |\n * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 |\n * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 |\n * | | | DD | 01, 02, ..., 365, 366 | 7 |\n * | | | DDD | 001, 002, ..., 365, 366 | |\n * | | | DDDD | ... | 2 |\n * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | | EEEEE | M, T, W, T, F, S, S | |\n * | | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | 90 | i | 1, 2, 3, ..., 7 | 5 |\n * | | | io | 1st, 2nd, ..., 7th | 5 |\n * | | | ii | 01, 02, ..., 07 | 5 |\n * | | | iii | Mon, Tue, Wed, ..., Sun | 5 |\n * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 |\n * | | | iiiii | M, T, W, T, F, S, S | 5 |\n * | | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 5 |\n * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | |\n * | | | eo | 2nd, 3rd, ..., 1st | 5 |\n * | | | ee | 02, 03, ..., 01 | |\n * | | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | | eeeee | M, T, W, T, F, S, S | |\n * | | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | 90 | c | 2, 3, 4, ..., 1 | |\n * | | | co | 2nd, 3rd, ..., 1st | 5 |\n * | | | cc | 02, 03, ..., 01 | |\n * | | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | | ccccc | M, T, W, T, F, S, S | |\n * | | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | 80 | a..aaa | AM, PM | |\n * | | | aaaa | a.m., p.m. | 2 |\n * | | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | |\n * | | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | | bbbbb | a, p, n, mi | |\n * | Flexible day period | 80 | B..BBB | at night, in the morning, ... | |\n * | | | BBBB | at night, in the morning, ... | 2 |\n * | | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | 70 | h | 1, 2, ..., 11, 12 | |\n * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 |\n * | | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | |\n * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 |\n * | | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | |\n * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 |\n * | | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | |\n * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 |\n * | | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | 60 | m | 0, 1, ..., 59 | |\n * | | | mo | 0th, 1st, ..., 59th | 5 |\n * | | | mm | 00, 01, ..., 59 | |\n * | Second | 50 | s | 0, 1, ..., 59 | |\n * | | | so | 0th, 1st, ..., 59th | 5 |\n * | | | ss | 00, 01, ..., 59 | |\n * | Seconds timestamp | 40 | t | 512969520 | |\n * | | | tt | ... | 2 |\n * | Fraction of second | 30 | S | 0, 1, ..., 9 | |\n * | | | SS | 00, 01, ..., 99 | |\n * | | | SSS | 000, 001, ..., 999 | |\n * | | | SSSS | ... | 2 |\n * | Milliseconds timestamp | 20 | T | 512969520900 | |\n * | | | TT | ... | 2 |\n * | Timezone (ISO-8601 w/ Z) | 10 | X | -08, +0530, Z | |\n * | | | XX | -0800, +0530, Z | |\n * | | | XXX | -08:00, +05:30, Z | |\n * | | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | 10 | x | -08, +0530, +00 | |\n * | | | xx | -0800, +0530, +0000 | |\n * | | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Long localized date | NA | P | 05/29/1453 | 5,8 |\n * | | | PP | May 29, 1453 | |\n * | | | PPP | May 29th, 1453 | |\n * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 |\n * | Long localized time | NA | p | 12:00 AM | 5,8 |\n * | | | pp | 12:00:00 AM | |\n * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | |\n * | | | PPpp | May 29, 1453, 12:00:00 AM | |\n * | | | PPPpp | May 29th, 1453 at ... | |\n * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular.\n * In `format` function, they will produce different result:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * `parse` will try to match both formatting and stand-alone units interchangably.\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table:\n * - for numerical units (`yyyyyyyy`) `parse` will try to match a number\n * as wide as the sequence\n * - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit.\n * These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 4. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` will try to guess the century of two digit year by proximity with `referenceDate`:\n *\n * `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00`\n *\n * `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00`\n *\n * while `uu` will just assign the year as is:\n *\n * `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00`\n *\n * `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00`\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [setISOWeekYear]{@link https://date-fns.org/docs/setISOWeekYear}\n * and [setWeekYear]{@link https://date-fns.org/docs/setWeekYear}).\n *\n * 5. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 7. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based\n * on the given locale.\n *\n * using `en-US` locale: `P` => `MM/dd/yyyy`\n * using `en-US` locale: `p` => `hh:mm a`\n * using `pt-BR` locale: `P` => `dd/MM/yyyy`\n * using `pt-BR` locale: `p` => `HH:mm`\n *\n * Values will be assigned to the date in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year),\n * the values will be taken from 3rd argument `referenceDate` which works as a context of parsing.\n *\n * `referenceDate` must be passed for correct work of the function.\n * If you're not sure which `referenceDate` to supply, create a new instance of Date:\n * `parse('02/11/2014', 'MM/dd/yyyy', new Date())`\n * In this case parsing will be done in the context of the current date.\n * If `referenceDate` is `Invalid Date` or a value not convertible to valid `Date`,\n * then `Invalid Date` will be returned.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned.\n *\n * If parsing failed, `Invalid Date` will be returned.\n * Invalid Date is a Date, whose time value is NaN.\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {String} dateString - the string to parse\n * @param {String} formatString - the string of tokens\n * @param {Date|Number} referenceDate - defines values missing from the parsed dateString\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {1|2|3|4|5|6|7} [options.firstWeekContainsDate=1] - the day of January, which is always in the first week of the year\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @returns {Date} the parsed date\n * @throws {TypeError} 3 arguments required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} `options.locale` must contain `match` property\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Parse 11 February 2014 from middle-endian format:\n * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date())\n * //=> Tue Feb 11 2014 00:00:00\n *\n * @example\n * // Parse 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * var result = parse('28-a de februaro', \"do 'de' MMMM\", new Date(2010, 0, 1), {\n * locale: eo\n * })\n * //=> Sun Feb 28 2010 00:00:00\n */\nexport default function parse(dirtyDateString, dirtyFormatString, dirtyReferenceDate, options) {\n var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;\n requiredArgs(3, arguments);\n var dateString = String(dirtyDateString);\n var formatString = String(dirtyFormatString);\n var defaultOptions = getDefaultOptions();\n var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : defaultLocale;\n if (!locale.match) {\n throw new RangeError('locale must contain match property');\n }\n var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n if (formatString === '') {\n if (dateString === '') {\n return toDate(dirtyReferenceDate);\n } else {\n return new Date(NaN);\n }\n }\n var subFnOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale\n };\n\n // If timezone isn't specified, it will be set to the system timezone\n var setters = [new DateToSystemTimezoneSetter()];\n var tokens = formatString.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n if (firstCharacter in longFormatters) {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n }).join('').match(formattingTokensRegExp);\n var usedTokens = [];\n var _iterator = _createForOfIteratorHelper(tokens),\n _step;\n try {\n var _loop = function _loop() {\n var token = _step.value;\n if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(token)) {\n throwProtectedError(token, formatString, dirtyDateString);\n }\n if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(token)) {\n throwProtectedError(token, formatString, dirtyDateString);\n }\n var firstCharacter = token[0];\n var parser = parsers[firstCharacter];\n if (parser) {\n var incompatibleTokens = parser.incompatibleTokens;\n if (Array.isArray(incompatibleTokens)) {\n var incompatibleToken = usedTokens.find(function (usedToken) {\n return incompatibleTokens.includes(usedToken.token) || usedToken.token === firstCharacter;\n });\n if (incompatibleToken) {\n throw new RangeError(\"The format string mustn't contain `\".concat(incompatibleToken.fullToken, \"` and `\").concat(token, \"` at the same time\"));\n }\n } else if (parser.incompatibleTokens === '*' && usedTokens.length > 0) {\n throw new RangeError(\"The format string mustn't contain `\".concat(token, \"` and any other token at the same time\"));\n }\n usedTokens.push({\n token: firstCharacter,\n fullToken: token\n });\n var parseResult = parser.run(dateString, token, locale.match, subFnOptions);\n if (!parseResult) {\n return {\n v: new Date(NaN)\n };\n }\n setters.push(parseResult.setter);\n dateString = parseResult.rest;\n } else {\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n\n // Replace two single quote characters with one single quote character\n if (token === \"''\") {\n token = \"'\";\n } else if (firstCharacter === \"'\") {\n token = cleanEscapedString(token);\n }\n\n // Cut token from string, or, if string doesn't match the token, return Invalid Date\n if (dateString.indexOf(token) === 0) {\n dateString = dateString.slice(token.length);\n } else {\n return {\n v: new Date(NaN)\n };\n }\n }\n };\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _ret = _loop();\n if (_typeof(_ret) === \"object\") return _ret.v;\n }\n\n // Check if the remaining input contains something other than whitespace\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n if (dateString.length > 0 && notWhitespaceRegExp.test(dateString)) {\n return new Date(NaN);\n }\n var uniquePrioritySetters = setters.map(function (setter) {\n return setter.priority;\n }).sort(function (a, b) {\n return b - a;\n }).filter(function (priority, index, array) {\n return array.indexOf(priority) === index;\n }).map(function (priority) {\n return setters.filter(function (setter) {\n return setter.priority === priority;\n }).sort(function (a, b) {\n return b.subPriority - a.subPriority;\n });\n }).map(function (setterArray) {\n return setterArray[0];\n });\n var date = toDate(dirtyReferenceDate);\n if (isNaN(date.getTime())) {\n return new Date(NaN);\n }\n\n // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n var utcDate = subMilliseconds(date, getTimezoneOffsetInMilliseconds(date));\n var flags = {};\n var _iterator2 = _createForOfIteratorHelper(uniquePrioritySetters),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var setter = _step2.value;\n if (!setter.validate(utcDate, subFnOptions)) {\n return new Date(NaN);\n }\n var result = setter.set(utcDate, flags, subFnOptions);\n // Result is tuple (date, flags)\n if (Array.isArray(result)) {\n utcDate = result[0];\n assign(flags, result[1]);\n // Result is date\n } else {\n utcDate = result;\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n return utcDate;\n}\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { FormGroup } from \"@blueprintjs/core\";\nimport { FieldLabel } from \"../../CoreFields/FieldLabel/FieldLabel\";\nimport { DatePickerComponent, } from \"@syncfusion/ej2-react-calendars\";\nimport { FormFieldErrorContainer } from \"../../CoreFields/FieldError/FormFieldErrorContainer\";\nimport { parse, format } from \"date-fns\";\nexport var DateFieldV2 = function (props) {\n var calendarRef = useRef(null);\n var _a = useState(), localDate = _a[0], setLocalDate = _a[1];\n useEffect(function () {\n setLocalDate(props.value);\n }, [props.value]);\n var parseValue = function (value) {\n var _a;\n return value\n ? parse(value, (_a = props.dateFormat) !== null && _a !== void 0 ? _a : \"yyyy-MM-dd\", new Date())\n : null; // undefined doesn't unset the value\n };\n var formatValue = function (value) {\n var _a;\n return value ? format(value, (_a = props.dateFormat) !== null && _a !== void 0 ? _a : \"yyyy-MM-dd\") : \"\";\n };\n var handleRenderDayCell = function (args) {\n var _a;\n var date = args.date;\n if (!date) {\n return;\n }\n if (\n // Disable Saturdays and Sundays if disableWeekends is true\n (props.disableWeekends && (date.getDay() === 0 || date.getDay() === 6)) ||\n (\n // Disable dates included in disabledDates array\n (_a = props.disabledDates) === null || _a === void 0 ? void 0 : _a.some(function (d) {\n return d.getDate() === date.getDate() &&\n d.getMonth() === date.getMonth() &&\n d.getFullYear() === date.getFullYear();\n })) ||\n // Disable dates based on dateFilter\n (props.dateFilter && !props.dateFilter(date))) {\n args.isDisabled = true;\n }\n };\n var handleChange = function (args) {\n var formattedValue = formatValue(args.value);\n setLocalDate(formattedValue);\n props.onSubmit && props.onSubmit(formattedValue);\n };\n return (_jsx(\"div\", { className: \"ucl-base-input-date-field-v2-container\", children: _jsxs(FormGroup, { className: \"\".concat(props.isRequired && !localDate\n ? \"has-required-background\"\n : \"base-field\"), children: [props.label && (_jsx(FieldLabel, __assign({ labelName: props.label, tooltipDescription: props.description, fieldProps: __assign(__assign({}, props), { value: localDate }) }, props.labelProps))), _jsx(DatePickerComponent, { ref: calendarRef, min: props.minDate, max: props.maxDate, showTodayButton: props.showTodayButton, showClearButton: props.showClearButton, renderDayCell: handleRenderDayCell, value: parseValue(localDate), change: handleChange, enabled: !props.disabled }), props.errorMessages && (_jsx(FormFieldErrorContainer, { errorMessages: props.errorMessages }))] }) }));\n};\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { Calendar } from '@syncfusion/ej2-calendars';\nimport { ComponentBase, applyMixins } from '@syncfusion/ej2-react-base';\n/**\n * Represents the Essential JS 2 React Calendar Component.\n * ```ts\n * \n * ```\n */\nvar CalendarComponent = /** @class */ (function (_super) {\n __extends(CalendarComponent, _super);\n function CalendarComponent(props) {\n var _this = _super.call(this, props) || this;\n _this.initRenderCalled = false;\n _this.checkInjectedModules = true;\n _this.statelessTemplateProps = null;\n _this.templateProps = null;\n _this.immediateRender = true;\n _this.portals = [];\n return _this;\n }\n CalendarComponent.prototype.render = function () {\n if (((this.element && !this.initRenderCalled) || this.refreshing) && !this.isReactForeceUpdate) {\n _super.prototype.render.call(this);\n this.initRenderCalled = true;\n }\n else {\n return React.createElement('div', this.getDefaultAttributes(), [].concat(this.props.children, this.portals));\n }\n };\n return CalendarComponent;\n}(Calendar));\nexport { CalendarComponent };\napplyMixins(CalendarComponent, [ComponentBase, React.Component]);\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { FormGroup } from \"@blueprintjs/core\";\nimport { FieldLabel } from \"../../CoreFields/FieldLabel/FieldLabel\";\nimport { CalendarComponent, } from \"@syncfusion/ej2-react-calendars\";\nimport { FormFieldErrorContainer } from \"../../CoreFields/FieldError/FormFieldErrorContainer\";\nimport { parse, format } from \"date-fns\";\nexport var CalendarField = function (props) {\n var calendarRef = useRef(null);\n var _a = useState(), localDate = _a[0], setLocalDate = _a[1];\n useEffect(function () {\n setLocalDate(props.value);\n }, [props.value]);\n var parseValue = function (value) {\n var _a;\n return value\n ? parse(value, (_a = props.dateFormat) !== null && _a !== void 0 ? _a : \"yyyy-MM-dd\", new Date())\n : null; // undefined doesn't unset the value\n };\n var formatValue = function (value) {\n var _a;\n return value ? format(value, (_a = props.dateFormat) !== null && _a !== void 0 ? _a : \"yyyy-MM-dd\") : \"\";\n };\n var handleRenderDayCell = function (args) {\n var _a;\n var date = args.date;\n if (!date) {\n return;\n }\n if (\n // Disable Saturdays and Sundays if disableWeekends is true\n (props.disableWeekends && (date.getDay() === 0 || date.getDay() === 6)) ||\n (\n // Disable dates included in disabledDates array\n (_a = props.disabledDates) === null || _a === void 0 ? void 0 : _a.some(function (d) {\n return d.getDate() === date.getDate() &&\n d.getMonth() === date.getMonth() &&\n d.getFullYear() === date.getFullYear();\n })) ||\n // Disable dates based on dateFilter\n (props.dateFilter && !props.dateFilter(date))) {\n args.isDisabled = true;\n }\n };\n var handleChange = function (args) {\n var formattedValue = formatValue(args.value);\n setLocalDate(formattedValue);\n props.onSubmit && props.onSubmit(formattedValue);\n };\n return (_jsx(\"div\", { className: \"ucl-base-input-calendar-field-container\", children: _jsxs(FormGroup, { className: \"\".concat(props.isRequired && !localDate\n ? \"has-required-background\"\n : \"base-field\"), children: [props.label && (_jsx(FieldLabel, __assign({ labelName: props.label, tooltipDescription: props.description, fieldProps: __assign(__assign({}, props), { value: localDate }) }, props.labelProps))), _jsx(CalendarComponent, { ref: calendarRef, min: props.minDate, max: props.maxDate, showTodayButton: props.showTodayButton, renderDayCell: handleRenderDayCell, value: parseValue(localDate), change: handleChange, enabled: !props.disabled }), props.errorMessages && (_jsx(FormFieldErrorContainer, { errorMessages: props.errorMessages }))] }) }));\n};\n","/*\n * Copyright 2016 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getDateNextMonth, getDatePreviousMonth } from \"./dateUtils\";\n\nexport class MonthAndYear {\n public static fromDate(date: Date) {\n return date == null ? undefined : new MonthAndYear(date.getMonth(), date.getFullYear());\n }\n\n private date: Date;\n\n constructor(month?: number, year?: number) {\n if (month !== null && year !== null) {\n this.date = new Date(year, month);\n } else {\n this.date = new Date();\n }\n }\n\n public clone(): MonthAndYear {\n return new MonthAndYear(this.getMonth(), this.getYear());\n }\n\n public getFullDate(): Date {\n return this.date;\n }\n\n public getMonth(): number {\n return this.date.getMonth();\n }\n\n public getYear(): number {\n return this.date.getFullYear();\n }\n\n public getPreviousMonth(): MonthAndYear {\n const previousMonthDate = getDatePreviousMonth(this.date);\n return new MonthAndYear(previousMonthDate.getMonth(), previousMonthDate.getFullYear());\n }\n\n public getNextMonth(): MonthAndYear {\n const nextMonthDate = getDateNextMonth(this.date);\n return new MonthAndYear(nextMonthDate.getMonth(), nextMonthDate.getFullYear());\n }\n\n public isBefore(monthAndYear: MonthAndYear): boolean {\n return compareMonthAndYear(this, monthAndYear) < 0;\n }\n\n public isAfter(monthAndYear: MonthAndYear): boolean {\n return compareMonthAndYear(this, monthAndYear) > 0;\n }\n\n public isSame(monthAndYear: MonthAndYear): boolean {\n return compareMonthAndYear(this, monthAndYear) === 0;\n }\n\n public isSameMonth(monthAndYear: MonthAndYear): boolean {\n return this.getMonth() === monthAndYear.getMonth();\n }\n}\n\n// returns negative if left < right\n// returns positive if left > right\n// returns 0 if left === right\nfunction compareMonthAndYear(firstMonthAndYear: MonthAndYear, secondMonthAndYear: MonthAndYear): number {\n const firstMonth = firstMonthAndYear.getMonth();\n const firstYear = firstMonthAndYear.getYear();\n const secondMonth = secondMonthAndYear.getMonth();\n const secondYear = secondMonthAndYear.getYear();\n\n if (firstYear === secondYear) {\n return firstMonth - secondMonth;\n } else {\n return firstYear - secondYear;\n }\n}\n","/*\n * Copyright 2016 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Boundary } from \"@blueprintjs/core\";\n\nimport { DateRange } from \"./common/dateRange\";\nimport { areSameDay } from \"./common/dateUtils\";\n\nexport interface IDateRangeSelectionState {\n /**\n * The boundary that would be modified by clicking the provided `day`.\n */\n boundary?: Boundary;\n\n /**\n * The date range that would be selected after clicking the provided `day`.\n */\n dateRange: DateRange;\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-extraneous-class */\nexport class DateRangeSelectionStrategy {\n /**\n * Returns the new date-range and the boundary that would be affected if `day` were clicked. The\n * affected boundary may be different from the provided `boundary` in some cases. For example,\n * clicking a particular boundary's selected date will always deselect it regardless of which\n * `boundary` you provide to this function (because it's simply a more intuitive interaction).\n */\n public static getNextState(\n currentRange: DateRange,\n day: Date,\n allowSingleDayRange: boolean,\n boundary?: Boundary,\n ): IDateRangeSelectionState {\n if (boundary != null) {\n return this.getNextStateForBoundary(currentRange, day, allowSingleDayRange, boundary);\n } else {\n return this.getDefaultNextState(currentRange, day, allowSingleDayRange);\n }\n }\n\n private static getNextStateForBoundary(\n currentRange: DateRange,\n day: Date,\n allowSingleDayRange: boolean,\n boundary: Boundary,\n ): IDateRangeSelectionState {\n const boundaryDate = this.getBoundaryDate(boundary, currentRange);\n const otherBoundary = this.getOtherBoundary(boundary);\n const otherBoundaryDate = this.getBoundaryDate(otherBoundary, currentRange);\n\n let nextBoundary: Boundary;\n let nextDateRange: DateRange;\n\n if (boundaryDate == null && otherBoundaryDate == null) {\n nextBoundary = boundary;\n nextDateRange = this.createRangeForBoundary(boundary, day, null);\n } else if (boundaryDate != null && otherBoundaryDate == null) {\n const nextBoundaryDate = areSameDay(boundaryDate, day) ? null : day;\n nextBoundary = boundary;\n nextDateRange = this.createRangeForBoundary(boundary, nextBoundaryDate, null);\n } else if (boundaryDate == null && otherBoundaryDate != null) {\n if (areSameDay(day, otherBoundaryDate)) {\n let nextDate: Date;\n if (allowSingleDayRange) {\n nextBoundary = boundary;\n nextDate = otherBoundaryDate;\n } else {\n nextBoundary = otherBoundary;\n nextDate = null;\n }\n nextDateRange = this.createRangeForBoundary(boundary, nextDate, nextDate);\n } else if (this.isOverlappingOtherBoundary(boundary, day, otherBoundaryDate)) {\n nextBoundary = otherBoundary;\n nextDateRange = this.createRangeForBoundary(boundary, otherBoundaryDate, day);\n } else {\n nextBoundary = boundary;\n nextDateRange = this.createRangeForBoundary(boundary, day, otherBoundaryDate);\n }\n } else {\n // both boundaryDate and otherBoundaryDate are already defined\n if (areSameDay(boundaryDate, day)) {\n const isSingleDayRangeSelected = areSameDay(boundaryDate, otherBoundaryDate);\n const nextOtherBoundaryDate = isSingleDayRangeSelected ? null : otherBoundaryDate;\n nextBoundary = boundary;\n nextDateRange = this.createRangeForBoundary(boundary, null, nextOtherBoundaryDate);\n } else if (areSameDay(day, otherBoundaryDate)) {\n const [nextBoundaryDate, nextOtherBoundaryDate] = allowSingleDayRange\n ? [otherBoundaryDate, otherBoundaryDate]\n : [boundaryDate, null];\n nextBoundary = allowSingleDayRange ? boundary : otherBoundary;\n nextDateRange = this.createRangeForBoundary(boundary, nextBoundaryDate, nextOtherBoundaryDate);\n } else if (this.isOverlappingOtherBoundary(boundary, day, otherBoundaryDate)) {\n nextBoundary = boundary;\n nextDateRange = this.createRangeForBoundary(boundary, day, null);\n } else {\n // extend the date range with an earlier boundaryDate date\n nextBoundary = boundary;\n nextDateRange = this.createRangeForBoundary(boundary, day, otherBoundaryDate);\n }\n }\n\n return { dateRange: nextDateRange, boundary: nextBoundary };\n }\n\n private static getDefaultNextState(\n selectedRange: DateRange,\n day: Date,\n allowSingleDayRange: boolean,\n ): IDateRangeSelectionState {\n const [start, end] = selectedRange;\n\n let nextDateRange: DateRange;\n\n if (start == null && end == null) {\n nextDateRange = [day, null];\n } else if (start != null && end == null) {\n nextDateRange = this.createRange(day, start, allowSingleDayRange);\n } else if (start == null && end != null) {\n nextDateRange = this.createRange(day, end, allowSingleDayRange);\n } else {\n const isStart = areSameDay(start, day);\n const isEnd = areSameDay(end, day);\n if (isStart && isEnd) {\n nextDateRange = [null, null];\n } else if (isStart) {\n nextDateRange = [null, end];\n } else if (isEnd) {\n nextDateRange = [start, null];\n } else {\n nextDateRange = [day, null];\n }\n }\n\n return { dateRange: nextDateRange };\n }\n\n private static getOtherBoundary(boundary: Boundary) {\n return boundary === Boundary.START ? Boundary.END : Boundary.START;\n }\n\n private static getBoundaryDate(boundary: Boundary, dateRange: DateRange) {\n return boundary === Boundary.START ? dateRange[0] : dateRange[1];\n }\n\n private static isOverlappingOtherBoundary(boundary: Boundary, boundaryDate: Date, otherBoundaryDate: Date) {\n return boundary === Boundary.START ? boundaryDate > otherBoundaryDate : boundaryDate < otherBoundaryDate;\n }\n\n private static createRangeForBoundary(boundary: Boundary, boundaryDate: Date, otherBoundaryDate: Date) {\n return boundary === Boundary.START\n ? ([boundaryDate, otherBoundaryDate] as DateRange)\n : ([otherBoundaryDate, boundaryDate] as DateRange);\n }\n\n private static createRange(a: Date, b: Date, allowSingleDayRange: boolean): DateRange {\n // clicking the same date again will clear it\n if (!allowSingleDayRange && areSameDay(a, b)) {\n return [null, null];\n }\n return a < b ? [a, b] : [b, a];\n }\n}\n","/*\n * Copyright 2016 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\nimport DayPicker, { CaptionElementProps, DayModifiers, DayPickerProps, NavbarElementProps } from \"react-day-picker\";\n\nimport { AbstractPureComponent2, Boundary, DISPLAYNAME_PREFIX, Divider, Props } from \"@blueprintjs/core\";\n\nimport * as DateClasses from \"./common/classes\";\nimport { DateRange } from \"./common/dateRange\";\nimport * as DateUtils from \"./common/dateUtils\";\nimport * as Errors from \"./common/errors\";\nimport { MonthAndYear } from \"./common/monthAndYear\";\nimport { DatePickerCaption } from \"./datePickerCaption\";\nimport {\n combineModifiers,\n DatePickerBaseProps,\n DatePickerModifiers,\n getDefaultMaxDate,\n getDefaultMinDate,\n HOVERED_RANGE_MODIFIER,\n SELECTED_RANGE_MODIFIER,\n} from \"./datePickerCore\";\nimport { DatePickerNavbar } from \"./datePickerNavbar\";\nimport { DateRangeSelectionStrategy } from \"./dateRangeSelectionStrategy\";\nimport { DateRangeShortcut, Shortcuts } from \"./shortcuts\";\nimport { TimePicker } from \"./timePicker\";\n\n// eslint-disable-next-line deprecation/deprecation\nexport type DateRangePickerProps = IDateRangePickerProps;\n/** @deprecated use DateRangePickerProps */\nexport interface IDateRangePickerProps extends DatePickerBaseProps, Props {\n /**\n * Whether the start and end dates of the range can be the same day.\n * If `true`, clicking a selected date will create a one-day range.\n * If `false`, clicking a selected date will clear the selection.\n *\n * @default false\n */\n allowSingleDayRange?: boolean;\n\n /**\n * The date-range boundary that the next click should modify.\n * This will be honored unless the next click would overlap the other boundary date.\n * In that case, the two boundary dates will be auto-swapped to keep them in chronological order.\n * If `undefined`, the picker will revert to its default selection behavior.\n */\n boundaryToModify?: Boundary;\n\n /**\n * Whether displayed months in the calendar are contiguous.\n * If false, each side of the calendar can move independently to non-contiguous months.\n *\n * @default true\n */\n contiguousCalendarMonths?: boolean;\n\n /**\n * Initial `DateRange` the calendar will display as selected.\n * This should not be set if `value` is set.\n */\n defaultValue?: DateRange;\n\n /**\n * Called when the user selects a day.\n * If no days are selected, it will pass `[null, null]`.\n * If a start date is selected but not an end date, it will pass `[selectedDate, null]`.\n * If both a start and end date are selected, it will pass `[startDate, endDate]`.\n */\n onChange?: (selectedDates: DateRange) => void;\n\n /**\n * Called when the user changes the hovered date range, either from mouseenter or mouseleave.\n * When triggered from mouseenter, it will pass the date range that would result from next click.\n * When triggered from mouseleave, it will pass `undefined`.\n */\n onHoverChange?: (hoveredDates: DateRange, hoveredDay: Date, hoveredBoundary: Boundary) => void;\n\n /**\n * Called when the `shortcuts` props is enabled and the user changes the shortcut.\n */\n onShortcutChange?: (shortcut: DateRangeShortcut, index: number) => void;\n\n /**\n * Whether shortcuts to quickly select a range of dates are displayed or not.\n * If `true`, preset shortcuts will be displayed.\n * If `false`, no shortcuts will be displayed.\n * If an array is provided, the custom shortcuts will be displayed.\n *\n * @default true\n */\n shortcuts?: boolean | DateRangeShortcut[];\n\n /**\n * The currently selected shortcut.\n * If this prop is provided, the component acts in a controlled manner.\n */\n selectedShortcutIndex?: number;\n\n /**\n * Whether to show only a single month calendar.\n *\n * @default false\n */\n singleMonthOnly?: boolean;\n\n /**\n * The currently selected `DateRange`.\n * If this prop is provided, the component acts in a controlled manner.\n */\n value?: DateRange;\n}\n\n// leftView and rightView controls the DayPicker displayed month\nexport interface IDateRangePickerState {\n hoverValue?: DateRange;\n leftView?: MonthAndYear;\n rightView?: MonthAndYear;\n value?: DateRange;\n time?: DateRange;\n selectedShortcutIndex?: number;\n}\n\n/**\n * Date range picker component.\n *\n * @see https://blueprintjs.com/docs/#datetime/daterangepicker\n */\nexport class DateRangePicker extends AbstractPureComponent2 {\n public static defaultProps: DateRangePickerProps = {\n allowSingleDayRange: false,\n contiguousCalendarMonths: true,\n dayPickerProps: {},\n maxDate: getDefaultMaxDate(),\n minDate: getDefaultMinDate(),\n reverseMonthAndYearMenus: false,\n shortcuts: true,\n singleMonthOnly: false,\n timePickerProps: {},\n };\n\n public static displayName = `${DISPLAYNAME_PREFIX}.DateRangePicker`;\n\n // these will get merged with the user's own\n private modifiers: DatePickerModifiers = {\n [SELECTED_RANGE_MODIFIER]: day => {\n const { value } = this.state;\n return value[0] != null && value[1] != null && DateUtils.isDayInRange(day, value, true);\n },\n [`${SELECTED_RANGE_MODIFIER}-start`]: day => DateUtils.areSameDay(this.state.value[0], day),\n [`${SELECTED_RANGE_MODIFIER}-end`]: day => DateUtils.areSameDay(this.state.value[1], day),\n\n [HOVERED_RANGE_MODIFIER]: day => {\n const {\n hoverValue,\n value: [selectedStart, selectedEnd],\n } = this.state;\n if (selectedStart == null && selectedEnd == null) {\n return false;\n }\n if (hoverValue == null || hoverValue[0] == null || hoverValue[1] == null) {\n return false;\n }\n return DateUtils.isDayInRange(day, hoverValue, true);\n },\n [`${HOVERED_RANGE_MODIFIER}-start`]: day => {\n const { hoverValue } = this.state;\n if (hoverValue == null || hoverValue[0] == null) {\n return false;\n }\n return DateUtils.areSameDay(hoverValue[0], day);\n },\n [`${HOVERED_RANGE_MODIFIER}-end`]: day => {\n const { hoverValue } = this.state;\n if (hoverValue == null || hoverValue[1] == null) {\n return false;\n }\n return DateUtils.areSameDay(hoverValue[1], day);\n },\n };\n\n public constructor(props: DateRangePickerProps, context?: any) {\n super(props, context);\n const value = getInitialValue(props);\n const time: DateRange = value;\n const initialMonth = getInitialMonth(props, value);\n\n // if the initial month is the last month of the picker's\n // allowable range, the react-day-picker library will show\n // the max month on the left and the *min* month on the right.\n // subtracting one avoids that weird, wraparound state (#289).\n const initialMonthEqualsMinMonth = DateUtils.areSameMonth(initialMonth, props.minDate);\n const initalMonthEqualsMaxMonth = DateUtils.areSameMonth(initialMonth, props.maxDate);\n if (!props.singleMonthOnly && !initialMonthEqualsMinMonth && initalMonthEqualsMaxMonth) {\n initialMonth.setMonth(initialMonth.getMonth() - 1);\n }\n\n // show the selected end date's encompassing month in the right view if\n // the calendars don't have to be contiguous.\n // if left view and right view months are the same, show next month in the right view.\n const leftView = MonthAndYear.fromDate(initialMonth);\n const rightDate = value[1];\n const rightView =\n !props.contiguousCalendarMonths && rightDate != null && !DateUtils.areSameMonth(initialMonth, rightDate)\n ? MonthAndYear.fromDate(rightDate)\n : leftView.getNextMonth();\n this.state = {\n hoverValue: [null, null],\n leftView,\n rightView,\n selectedShortcutIndex:\n this.props.selectedShortcutIndex !== undefined ? this.props.selectedShortcutIndex : -1,\n time,\n value,\n };\n }\n\n public render() {\n const { className, contiguousCalendarMonths, singleMonthOnly, footerElement } = this.props;\n const isShowingOneMonth = singleMonthOnly || DateUtils.areSameMonth(this.props.minDate, this.props.maxDate);\n\n const classes = classNames(DateClasses.DATEPICKER, DateClasses.DATERANGEPICKER, className, {\n [DateClasses.DATERANGEPICKER_CONTIGUOUS]: contiguousCalendarMonths,\n [DateClasses.DATERANGEPICKER_SINGLE_MONTH]: isShowingOneMonth,\n });\n\n // use the left DayPicker when we only need one\n return (\n
\n {this.maybeRenderShortcuts()}\n
\n {this.renderCalendars(isShowingOneMonth)}\n {this.maybeRenderTimePickers(isShowingOneMonth)}\n {footerElement}\n
\n
\n );\n }\n\n public componentDidUpdate(prevProps: DateRangePickerProps, prevState: IDateRangePickerState) {\n super.componentDidUpdate(prevProps, prevState);\n\n if (\n !DateUtils.areRangesEqual(prevProps.value, this.props.value) ||\n prevProps.contiguousCalendarMonths !== this.props.contiguousCalendarMonths\n ) {\n const nextState = getStateChange(\n prevProps.value,\n this.props.value,\n this.state,\n prevProps.contiguousCalendarMonths,\n );\n this.setState(nextState);\n }\n\n if (this.props.selectedShortcutIndex !== prevProps.selectedShortcutIndex) {\n this.setState({ selectedShortcutIndex: this.props.selectedShortcutIndex });\n }\n }\n\n protected validateProps(props: DateRangePickerProps) {\n const { defaultValue, initialMonth, maxDate, minDate, boundaryToModify, value } = props;\n const dateRange: DateRange = [minDate, maxDate];\n\n if (defaultValue != null && !DateUtils.isDayRangeInRange(defaultValue, dateRange)) {\n console.error(Errors.DATERANGEPICKER_DEFAULT_VALUE_INVALID);\n }\n\n if (initialMonth != null && !DateUtils.isMonthInRange(initialMonth, dateRange)) {\n console.error(Errors.DATERANGEPICKER_INITIAL_MONTH_INVALID);\n }\n\n if (maxDate != null && minDate != null && maxDate < minDate && !DateUtils.areSameDay(maxDate, minDate)) {\n console.error(Errors.DATERANGEPICKER_MAX_DATE_INVALID);\n }\n\n if (value != null && !DateUtils.isDayRangeInRange(value, dateRange)) {\n console.error(Errors.DATERANGEPICKER_VALUE_INVALID);\n }\n\n if (boundaryToModify != null && boundaryToModify !== Boundary.START && boundaryToModify !== Boundary.END) {\n console.error(Errors.DATERANGEPICKER_PREFERRED_BOUNDARY_TO_MODIFY_INVALID);\n }\n }\n\n private shouldHighlightCurrentDay = (date: Date) => {\n const { highlightCurrentDay } = this.props;\n\n return highlightCurrentDay && DateUtils.isToday(date);\n };\n\n private getDateRangePickerModifiers = () => {\n const { modifiers } = this.props;\n\n return combineModifiers(this.modifiers, {\n isToday: this.shouldHighlightCurrentDay,\n ...modifiers,\n });\n };\n\n private renderDay = (day: Date) => {\n const date = day.getDate();\n\n return
{date}
;\n };\n\n private disabledDays = (day: Date) => !DateUtils.isDayInRange(day, [this.props.minDate, this.props.maxDate]);\n\n private getDisabledDaysModifier = () => {\n const {\n dayPickerProps: { disabledDays },\n } = this.props;\n\n return disabledDays instanceof Array ? [this.disabledDays, ...disabledDays] : [this.disabledDays, disabledDays];\n };\n\n private maybeRenderShortcuts() {\n const { shortcuts } = this.props;\n if (shortcuts == null || shortcuts === false) {\n return null;\n }\n\n const { selectedShortcutIndex } = this.state;\n const { allowSingleDayRange, maxDate, minDate, timePrecision } = this.props;\n return [\n ,\n ,\n ];\n }\n\n private maybeRenderTimePickers(isShowingOneMonth: boolean) {\n const { timePrecision, timePickerProps } = this.props;\n if (timePrecision == null && timePickerProps === DateRangePicker.defaultProps.timePickerProps) {\n return null;\n }\n\n if (isShowingOneMonth) {\n return (\n \n );\n } else {\n return (\n
\n \n \n
\n );\n }\n }\n\n private handleTimeChange = (newTime: Date, dateIndex: number) => {\n this.props.timePickerProps?.onChange?.(newTime);\n\n const { value, time } = this.state;\n const newValue = DateUtils.getDateTime(\n value[dateIndex] != null ? DateUtils.clone(value[dateIndex]) : new Date(),\n newTime,\n );\n const newDateRange: DateRange = [value[0], value[1]];\n newDateRange[dateIndex] = newValue;\n const newTimeRange: DateRange = [time[0], time[1]];\n newTimeRange[dateIndex] = newTime;\n this.props.onChange?.(newDateRange);\n this.setState({ value: newDateRange, time: newTimeRange });\n };\n\n private handleTimeChangeLeftCalendar = (time: Date) => {\n this.handleTimeChange(time, 0);\n };\n\n private handleTimeChangeRightCalendar = (time: Date) => {\n this.handleTimeChange(time, 1);\n };\n\n private renderCalendars(isShowingOneMonth: boolean) {\n const { dayPickerProps, locale, localeUtils, maxDate, minDate } = this.props;\n const dayPickerBaseProps: DayPickerProps = {\n locale,\n localeUtils,\n modifiers: this.getDateRangePickerModifiers(),\n showOutsideDays: true,\n ...dayPickerProps,\n disabledDays: this.getDisabledDaysModifier(),\n onDayClick: this.handleDayClick,\n onDayMouseEnter: this.handleDayMouseEnter,\n onDayMouseLeave: this.handleDayMouseLeave,\n selectedDays: this.state.value,\n };\n\n if (isShowingOneMonth) {\n return (\n \n );\n } else {\n return (\n
\n \n \n
\n );\n }\n }\n\n private renderSingleNavbar = (navbarProps: NavbarElementProps) => (\n \n );\n\n private renderLeftNavbar = (navbarProps: NavbarElementProps) => (\n \n );\n\n private renderRightNavbar = (navbarProps: NavbarElementProps) => (\n \n );\n\n private renderSingleCaption = (captionProps: CaptionElementProps) => (\n \n );\n\n private renderLeftCaption = (captionProps: CaptionElementProps) => (\n \n );\n\n private renderRightCaption = (captionProps: CaptionElementProps) => (\n \n );\n\n private handleDayMouseEnter = (day: Date, modifiers: DayModifiers, e: React.MouseEvent) => {\n this.props.dayPickerProps.onDayMouseEnter?.(day, modifiers, e);\n\n if (modifiers.disabled) {\n return;\n }\n const { dateRange, boundary } = DateRangeSelectionStrategy.getNextState(\n this.state.value,\n day,\n this.props.allowSingleDayRange,\n this.props.boundaryToModify,\n );\n this.setState({ hoverValue: dateRange });\n this.props.onHoverChange?.(dateRange, day, boundary);\n };\n\n private handleDayMouseLeave = (day: Date, modifiers: DayModifiers, e: React.MouseEvent) => {\n this.props.dayPickerProps.onDayMouseLeave?.(day, modifiers, e);\n if (modifiers.disabled) {\n return;\n }\n this.setState({ hoverValue: undefined });\n this.props.onHoverChange?.(undefined, day, undefined);\n };\n\n private handleDayClick = (day: Date, modifiers: DayModifiers, e: React.MouseEvent) => {\n this.props.dayPickerProps.onDayClick?.(day, modifiers, e);\n\n if (modifiers.disabled) {\n // rerender base component to get around bug where you can navigate past bounds by clicking days\n this.forceUpdate();\n return;\n }\n\n const nextValue = DateRangeSelectionStrategy.getNextState(\n this.state.value,\n day,\n this.props.allowSingleDayRange,\n this.props.boundaryToModify,\n ).dateRange;\n\n // update the hovered date range after click to show the newly selected\n // state, at leasts until the mouse moves again\n this.handleDayMouseEnter(day, modifiers, e);\n\n this.handleNextState(nextValue);\n };\n\n private handleShortcutClick = (shortcut: DateRangeShortcut, selectedShortcutIndex: number) => {\n const { onChange, contiguousCalendarMonths, onShortcutChange } = this.props;\n const { dateRange, includeTime } = shortcut;\n if (includeTime) {\n const newDateRange: DateRange = [dateRange[0], dateRange[1]];\n const newTimeRange: DateRange = [dateRange[0], dateRange[1]];\n const nextState = getStateChange(this.state.value, dateRange, this.state, contiguousCalendarMonths);\n this.setState({ ...nextState, time: newTimeRange });\n onChange?.(newDateRange);\n } else {\n this.handleNextState(dateRange);\n }\n\n if (this.props.selectedShortcutIndex === undefined) {\n this.setState({ selectedShortcutIndex });\n }\n\n onShortcutChange?.(shortcut, selectedShortcutIndex);\n };\n\n private handleNextState = (nextValue: DateRange) => {\n const { value } = this.state;\n nextValue[0] = DateUtils.getDateTime(nextValue[0], this.state.time[0]);\n nextValue[1] = DateUtils.getDateTime(nextValue[1], this.state.time[1]);\n\n const nextState = getStateChange(value, nextValue, this.state, this.props.contiguousCalendarMonths);\n\n if (this.props.value == null) {\n this.setState(nextState);\n }\n this.props.onChange?.(nextValue);\n };\n\n private handleLeftMonthChange = (newDate: Date) => {\n const leftView = MonthAndYear.fromDate(newDate);\n this.props.dayPickerProps.onMonthChange?.(leftView.getFullDate());\n this.updateLeftView(leftView);\n };\n\n private handleRightMonthChange = (newDate: Date) => {\n const rightView = MonthAndYear.fromDate(newDate);\n this.props.dayPickerProps.onMonthChange?.(rightView.getFullDate());\n this.updateRightView(rightView);\n };\n\n private handleLeftMonthSelectChange = (leftMonth: number) => {\n const leftView = new MonthAndYear(leftMonth, this.state.leftView.getYear());\n this.props.dayPickerProps.onMonthChange?.(leftView.getFullDate());\n this.updateLeftView(leftView);\n };\n\n private handleRightMonthSelectChange = (rightMonth: number) => {\n const rightView = new MonthAndYear(rightMonth, this.state.rightView.getYear());\n this.props.dayPickerProps.onMonthChange?.(rightView.getFullDate());\n this.updateRightView(rightView);\n };\n\n private updateLeftView(leftView: MonthAndYear) {\n let rightView = this.state.rightView.clone();\n if (!leftView.isBefore(rightView) || this.props.contiguousCalendarMonths) {\n rightView = leftView.getNextMonth();\n }\n this.setViews(leftView, rightView);\n }\n\n private updateRightView(rightView: MonthAndYear) {\n let leftView = this.state.leftView.clone();\n if (!rightView.isAfter(leftView) || this.props.contiguousCalendarMonths) {\n leftView = rightView.getPreviousMonth();\n }\n this.setViews(leftView, rightView);\n }\n\n /*\n * The min / max months are offset by one because we are showing two months.\n * We do a comparison check to see if\n * a) the proposed [Month, Year] change throws the two calendars out of order\n * b) the proposed [Month, Year] goes beyond the min / max months\n * and rectify appropriately.\n */\n private handleLeftYearSelectChange = (leftDisplayYear: number) => {\n let leftView = new MonthAndYear(this.state.leftView.getMonth(), leftDisplayYear);\n this.props.dayPickerProps.onMonthChange?.(leftView.getFullDate());\n const { minDate, maxDate } = this.props;\n const adjustedMaxDate = DateUtils.getDatePreviousMonth(maxDate);\n\n const minMonthAndYear = new MonthAndYear(minDate.getMonth(), minDate.getFullYear());\n const maxMonthAndYear = new MonthAndYear(adjustedMaxDate.getMonth(), adjustedMaxDate.getFullYear());\n\n if (leftView.isBefore(minMonthAndYear)) {\n leftView = minMonthAndYear;\n } else if (leftView.isAfter(maxMonthAndYear)) {\n leftView = maxMonthAndYear;\n }\n\n let rightView = this.state.rightView.clone();\n if (!leftView.isBefore(rightView) || this.props.contiguousCalendarMonths) {\n rightView = leftView.getNextMonth();\n }\n\n this.setViews(leftView, rightView);\n };\n\n private handleRightYearSelectChange = (rightDisplayYear: number) => {\n let rightView = new MonthAndYear(this.state.rightView.getMonth(), rightDisplayYear);\n this.props.dayPickerProps.onMonthChange?.(rightView.getFullDate());\n const { minDate, maxDate } = this.props;\n const adjustedMinDate = DateUtils.getDateNextMonth(minDate);\n\n const minMonthAndYear = MonthAndYear.fromDate(adjustedMinDate);\n const maxMonthAndYear = MonthAndYear.fromDate(maxDate);\n\n if (rightView.isBefore(minMonthAndYear)) {\n rightView = minMonthAndYear;\n } else if (rightView.isAfter(maxMonthAndYear)) {\n rightView = maxMonthAndYear;\n }\n\n let leftView = this.state.leftView.clone();\n if (!rightView.isAfter(leftView) || this.props.contiguousCalendarMonths) {\n leftView = rightView.getPreviousMonth();\n }\n\n this.setViews(leftView, rightView);\n };\n\n private setViews(leftView: MonthAndYear, rightView: MonthAndYear) {\n this.setState({ leftView, rightView });\n }\n}\n\nfunction getStateChange(\n value: DateRange,\n nextValue: DateRange,\n state: IDateRangePickerState,\n contiguousCalendarMonths: boolean,\n): IDateRangePickerState {\n if (value != null && nextValue == null) {\n return { value: [null, null] };\n } else if (nextValue != null) {\n let leftView = state.leftView.clone();\n let rightView = state.rightView.clone();\n\n const nextValueStartView = MonthAndYear.fromDate(nextValue[0]);\n const nextValueEndView = MonthAndYear.fromDate(nextValue[1]);\n\n // Only end date selected.\n // If the newly selected end date isn't in either of the displayed months, then\n // - set the right DayPicker to the month of the selected end date\n // - ensure the left DayPicker is before the right, changing if needed\n if (nextValueStartView == null && nextValueEndView != null) {\n if (!nextValueEndView.isSame(leftView) && !nextValueEndView.isSame(rightView)) {\n rightView = nextValueEndView;\n if (!leftView.isBefore(rightView)) {\n leftView = rightView.getPreviousMonth();\n }\n }\n } else if (nextValueStartView != null && nextValueEndView == null) {\n // Only start date selected.\n // If the newly selected start date isn't in either of the displayed months, then\n // - set the left DayPicker to the month of the selected start date\n // - ensure the right DayPicker is before the left, changing if needed\n if (!nextValueStartView.isSame(leftView) && !nextValueStartView.isSame(rightView)) {\n leftView = nextValueStartView;\n if (!rightView.isAfter(leftView)) {\n rightView = leftView.getNextMonth();\n }\n }\n } else if (nextValueStartView != null && nextValueEndView != null) {\n // Both start and end date months are identical\n // If the selected month isn't in either of the displayed months, then\n // - set the left DayPicker to be the selected month\n // - set the right DayPicker to +1\n if (nextValueStartView.isSame(nextValueEndView)) {\n if (leftView.isSame(nextValueStartView) || rightView.isSame(nextValueStartView)) {\n // do nothing\n } else {\n leftView = nextValueStartView;\n rightView = nextValueStartView.getNextMonth();\n }\n } else {\n // Different start and end date months, adjust display months.\n if (!leftView.isSame(nextValueStartView)) {\n leftView = nextValueStartView;\n rightView = nextValueStartView.getNextMonth();\n }\n if (contiguousCalendarMonths === false && !rightView.isSame(nextValueEndView)) {\n rightView = nextValueEndView;\n }\n }\n }\n\n return {\n leftView,\n rightView,\n value: nextValue,\n };\n } else if (contiguousCalendarMonths === true) {\n // contiguousCalendarMonths is toggled on.\n // If the previous leftView and rightView are not contiguous, then set the right DayPicker to left + 1\n if (!state.leftView.getNextMonth().isSameMonth(state.rightView)) {\n const nextRightView = state.leftView.getNextMonth();\n return { rightView: nextRightView };\n }\n }\n\n return {};\n}\n\nfunction getInitialValue(props: DateRangePickerProps): DateRange | null {\n if (props.value != null) {\n return props.value;\n }\n if (props.defaultValue != null) {\n return props.defaultValue;\n }\n return [null, null];\n}\n\nfunction getInitialMonth(props: DateRangePickerProps, value: DateRange): Date {\n const today = new Date();\n // != because we must have a real `Date` to begin the calendar on.\n if (props.initialMonth != null) {\n return props.initialMonth;\n } else if (value[0] != null) {\n return DateUtils.clone(value[0]);\n } else if (value[1] != null) {\n const month = DateUtils.clone(value[1]);\n if (!DateUtils.areSameMonth(month, props.minDate)) {\n month.setMonth(month.getMonth() - 1);\n }\n return month;\n } else if (DateUtils.isDayInRange(today, [props.minDate, props.maxDate])) {\n return today;\n } else {\n return DateUtils.getDateBetween([props.minDate, props.maxDate]);\n }\n}\n","/*\n * Copyright 2022 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport classNames from \"classnames\";\nimport { isSameDay, isValid } from \"date-fns\";\nimport * as React from \"react\";\n\nimport {\n AbstractPureComponent2,\n Boundary,\n Classes as CoreClasses,\n DISPLAYNAME_PREFIX,\n InputGroup,\n InputGroupProps2,\n Intent,\n Keys,\n Props,\n refHandler,\n setRef,\n Utils,\n} from \"@blueprintjs/core\";\nimport {\n DateFormatProps,\n DatePickerBaseProps,\n DatePickerUtils,\n DateRangePicker,\n DateRangeShortcut,\n} from \"@blueprintjs/datetime\";\nimport { Popover2, Popover2ClickTargetHandlers, Popover2TargetProps } from \"@blueprintjs/popover2\";\n\nimport { Classes, DateRange, NonNullDateRange } from \"../../common\";\nimport { DatetimePopoverProps } from \"../../common/datetimePopoverProps\";\nimport { isDayInRange, isSameTime } from \"../../common/dateUtils\";\nimport * as Errors from \"../../common/errors\";\n\n// We handle events in a kind of generic way in this component, so here\n// we enumerate all the different kinds of events for which we have handlers.\ntype InputEvent =\n | React.MouseEvent\n | React.KeyboardEvent\n | React.FocusEvent\n | React.ChangeEvent;\n\nexport interface DateRangeInput2Props extends DatePickerBaseProps, DateFormatProps, DatetimePopoverProps, Props {\n /**\n * Whether the start and end dates of the range can be the same day.\n * If `true`, clicking a selected date will create a one-day range.\n * If `false`, clicking a selected date will clear the selection.\n *\n * @default false\n */\n allowSingleDayRange?: boolean;\n\n /**\n * Whether the calendar popover should close when a date range is fully selected.\n *\n * @default true\n */\n closeOnSelection?: boolean;\n\n /**\n * Whether displayed months in the calendar are contiguous.\n * If false, each side of the calendar can move independently to non-contiguous months.\n *\n * @default true\n */\n contiguousCalendarMonths?: boolean;\n\n /**\n * The default date range to be used in the component when uncontrolled.\n * This will be ignored if `value` is set.\n */\n defaultValue?: DateRange;\n\n /**\n * Whether the text inputs are non-interactive.\n *\n * @default false\n */\n disabled?: boolean;\n\n /**\n * Whether the component should take up the full width of its container.\n */\n fill?: boolean;\n\n /**\n * Props to pass to the end-date [input group](#core/components/text-inputs.input-group).\n * `disabled` and `value` will be ignored in favor of the top-level props on this component.\n * `ref` is not supported; use `inputRef` instead.\n */\n endInputProps?: InputGroupProps2;\n\n /**\n * Called when the user selects a day.\n * If no days are selected, it will pass `[null, null]`.\n * If a start date is selected but not an end date, it will pass `[selectedDate, null]`.\n * If both a start and end date are selected, it will pass `[startDate, endDate]`.\n */\n onChange?: (selectedRange: DateRange) => void;\n\n /**\n * Called when the user finishes typing in a new date and the date causes an error state.\n * If the date is invalid, `new Date(undefined)` will be returned for the corresponding\n * boundary of the date range.\n * If the date is out of range, the out-of-range date will be returned for the corresponding\n * boundary of the date range (`onChange` is not called in this case).\n */\n onError?: (errorRange: DateRange) => void;\n\n /**\n * The error message to display when the selected dates overlap.\n * This can only happen when typing dates in the input field.\n *\n * @default \"Overlapping dates\"\n */\n overlappingDatesMessage?: string;\n\n /**\n * Whether the entire text field should be selected on focus.\n *\n * @default false\n */\n selectAllOnFocus?: boolean;\n\n /**\n * Whether shortcuts to quickly select a range of dates are displayed or not.\n * If `true`, preset shortcuts will be displayed.\n * If `false`, no shortcuts will be displayed.\n * If an array is provided, the custom shortcuts will be displayed.\n *\n * @default true\n */\n shortcuts?: boolean | DateRangeShortcut[];\n\n /**\n * Whether to show only a single month calendar.\n *\n * @default false\n */\n singleMonthOnly?: boolean;\n\n /**\n * Props to pass to the start-date [input group](#core/components/text-inputs.input-group).\n * `disabled` and `value` will be ignored in favor of the top-level props on this component.\n * `ref` is not supported; use `inputRef` instead.\n */\n startInputProps?: InputGroupProps2;\n\n /**\n * The currently selected date range.\n * If the prop is strictly `undefined`, the component acts in an uncontrolled manner.\n * If this prop is anything else, the component acts in a controlled manner.\n * To display an empty value in the input fields in a controlled manner, pass `[null, null]`.\n * To display an invalid date error in either input field, pass `new Date(undefined)`\n * for the appropriate date in the value prop.\n */\n value?: DateRange;\n}\n\nexport interface DateRangeInput2State {\n isOpen?: boolean;\n boundaryToModify?: Boundary;\n lastFocusedField?: Boundary;\n\n formattedMinDateString?: string;\n formattedMaxDateString?: string;\n\n isStartInputFocused: boolean;\n isEndInputFocused: boolean;\n\n startInputString?: string;\n endInputString?: string;\n\n startHoverString?: string | null;\n endHoverString?: string | null;\n\n selectedEnd: Date | null;\n selectedStart: Date | null;\n\n shouldSelectAfterUpdate?: boolean;\n wasLastFocusChangeDueToHover?: boolean;\n\n selectedShortcutIndex?: number;\n}\n\ninterface StateKeysAndValuesObject {\n keys: {\n hoverString: \"startHoverString\" | \"endHoverString\";\n inputString: \"startInputString\" | \"endInputString\";\n isInputFocused: \"isStartInputFocused\" | \"isEndInputFocused\";\n selectedValue: \"selectedStart\" | \"selectedEnd\";\n };\n values: {\n controlledValue?: Date | null;\n hoverString?: string | null;\n inputString?: string;\n isInputFocused: boolean;\n selectedValue: Date | null;\n };\n}\n\n/**\n * Date range input (v2) component.\n *\n * @see https://blueprintjs.com/docs/#datetime2/date-range-input2\n */\nexport class DateRangeInput2 extends AbstractPureComponent2 {\n public static defaultProps: Partial = {\n allowSingleDayRange: false,\n closeOnSelection: true,\n contiguousCalendarMonths: true,\n dayPickerProps: {},\n disabled: false,\n endInputProps: {},\n invalidDateMessage: \"Invalid date\",\n maxDate: DatePickerUtils.getDefaultMaxDate(),\n minDate: DatePickerUtils.getDefaultMinDate(),\n outOfRangeMessage: \"Out of range\",\n overlappingDatesMessage: \"Overlapping dates\",\n popoverProps: {},\n selectAllOnFocus: false,\n shortcuts: true,\n singleMonthOnly: false,\n startInputProps: {},\n };\n\n public static displayName = `${DISPLAYNAME_PREFIX}.DateRangeInput2`;\n\n public startInputElement: HTMLInputElement | null = null;\n\n public endInputElement: HTMLInputElement | null = null;\n\n private handleStartInputRef = refHandler(\n this,\n \"startInputElement\",\n this.props.startInputProps?.inputRef,\n );\n\n private handleEndInputRef = refHandler(\n this,\n \"endInputElement\",\n this.props.endInputProps?.inputRef,\n );\n\n public constructor(props: DateRangeInput2Props) {\n super(props);\n this.reset(props);\n }\n\n /**\n * Public method intended for unit testing only. Do not use in feature work!\n */\n public reset(props: DateRangeInput2Props = this.props) {\n const [selectedStart, selectedEnd] = this.getInitialRange();\n this.state = {\n formattedMaxDateString: this.getFormattedMinMaxDateString(props, \"maxDate\"),\n formattedMinDateString: this.getFormattedMinMaxDateString(props, \"minDate\"),\n isEndInputFocused: false,\n isOpen: false,\n isStartInputFocused: false,\n selectedEnd,\n selectedShortcutIndex: -1,\n selectedStart,\n };\n }\n\n public componentDidUpdate(prevProps: DateRangeInput2Props, prevState: DateRangeInput2State) {\n super.componentDidUpdate(prevProps, prevState);\n const { isStartInputFocused, isEndInputFocused, shouldSelectAfterUpdate } = this.state;\n\n if (prevProps.startInputProps?.inputRef !== this.props.startInputProps?.inputRef) {\n setRef(prevProps.startInputProps?.inputRef, null);\n this.handleStartInputRef = refHandler(this, \"startInputElement\", this.props.startInputProps?.inputRef);\n setRef(this.props.startInputProps?.inputRef, this.startInputElement);\n }\n if (prevProps.endInputProps?.inputRef !== this.props.endInputProps?.inputRef) {\n setRef(prevProps.endInputProps?.inputRef, null);\n this.handleEndInputRef = refHandler(this, \"endInputElement\", this.props.endInputProps?.inputRef);\n setRef(this.props.endInputProps?.inputRef, this.endInputElement);\n }\n\n const shouldFocusStartInput = this.shouldFocusInputRef(isStartInputFocused, this.startInputElement);\n const shouldFocusEndInput = this.shouldFocusInputRef(isEndInputFocused, this.endInputElement);\n\n if (shouldFocusStartInput) {\n this.startInputElement?.focus();\n } else if (shouldFocusEndInput) {\n this.endInputElement?.focus();\n }\n\n if (isStartInputFocused && shouldSelectAfterUpdate) {\n this.startInputElement?.select();\n } else if (isEndInputFocused && shouldSelectAfterUpdate) {\n this.endInputElement?.select();\n }\n\n let nextState: Partial = {};\n\n if (this.props.value !== prevProps.value) {\n const [selectedStart, selectedEnd] = this.getInitialRange(this.props);\n nextState = {\n ...nextState,\n selectedEnd,\n selectedStart,\n };\n }\n\n // cache the formatted date strings to avoid computing on each render.\n if (this.props.minDate !== prevProps.minDate) {\n const formattedMinDateString = this.getFormattedMinMaxDateString(this.props, \"minDate\");\n nextState = { ...nextState, formattedMinDateString };\n }\n if (this.props.maxDate !== prevProps.maxDate) {\n const formattedMaxDateString = this.getFormattedMinMaxDateString(this.props, \"maxDate\");\n nextState = { ...nextState, formattedMaxDateString };\n }\n\n this.setState(nextState as DateRangeInput2State);\n }\n\n public render() {\n const { selectedShortcutIndex } = this.state;\n const { popoverProps = {}, popoverRef } = this.props;\n\n const popoverContent = (\n \n );\n\n // allow custom props for the popover and each input group, but pass them in an order that\n // guarantees only some props are overridable.\n return (\n \n );\n }\n\n protected validateProps(props: DateRangeInput2Props) {\n if (props.value === null) {\n // throw a blocking error here because we don't handle a null value gracefully across this component\n // (it's not allowed by TS under strict null checks anyway)\n throw new Error(Errors.DATERANGEINPUT_NULL_VALUE);\n }\n }\n\n // We use the renderTarget API to flatten the rendered DOM.\n private renderTarget =\n // N.B. pull out `isOpen` so that it's not forwarded to the DOM.\n ({ isOpen, ...targetProps }: Popover2TargetProps & Popover2ClickTargetHandlers) => {\n const { fill, popoverProps = {} } = this.props;\n const { targetTagName = \"div\" } = popoverProps;\n return React.createElement(\n targetTagName,\n {\n ...targetProps,\n className: classNames(CoreClasses.CONTROL_GROUP, targetProps.className, {\n [CoreClasses.FILL]: fill,\n }),\n },\n this.renderInputGroup(Boundary.START),\n this.renderInputGroup(Boundary.END),\n );\n };\n\n private renderInputGroup = (boundary: Boundary) => {\n const inputProps = this.getInputProps(boundary);\n const handleInputEvent = boundary === Boundary.START ? this.handleStartInputEvent : this.handleEndInputEvent;\n\n return (\n \n );\n };\n\n // Callbacks - DateRangePicker\n // ===========================\n\n private handleDateRangePickerChange = (selectedRange: DateRange, didSubmitWithEnter = false) => {\n // ignore mouse events in the date-range picker if the popover is animating closed.\n if (!this.state.isOpen) {\n return;\n }\n\n const [selectedStart, selectedEnd] = selectedRange;\n\n let isOpen = true;\n\n let isStartInputFocused: boolean | undefined;\n let isEndInputFocused: boolean | undefined;\n\n let startHoverString: string | null | undefined;\n let endHoverString: string | null | undefined;\n\n let boundaryToModify: Boundary | undefined;\n\n if (selectedStart == null) {\n // focus the start field by default or if only an end date is specified\n if (this.props.timePrecision == null) {\n isStartInputFocused = true;\n isEndInputFocused = false;\n } else {\n isStartInputFocused = false;\n isEndInputFocused = false;\n boundaryToModify = Boundary.START;\n }\n\n // for clarity, hide the hover string until the mouse moves over a different date\n startHoverString = null;\n } else if (selectedEnd == null) {\n // focus the end field if a start date is specified\n if (this.props.timePrecision == null) {\n isStartInputFocused = false;\n isEndInputFocused = true;\n } else {\n isStartInputFocused = false;\n isEndInputFocused = false;\n boundaryToModify = Boundary.END;\n }\n\n endHoverString = null;\n } else if (this.props.closeOnSelection) {\n isOpen = this.getIsOpenValueWhenDateChanges(selectedStart, selectedEnd);\n isStartInputFocused = false;\n\n if (this.props.timePrecision == null && didSubmitWithEnter) {\n // if we submit via click or Tab, the focus will have moved already.\n // it we submit with Enter, the focus won't have moved, and setting\n // the flag to false won't have an effect anyway, so leave it true.\n isEndInputFocused = true;\n } else {\n isEndInputFocused = false;\n boundaryToModify = Boundary.END;\n }\n } else if (this.state.lastFocusedField === Boundary.START) {\n // keep the start field focused\n if (this.props.timePrecision == null) {\n isStartInputFocused = true;\n isEndInputFocused = false;\n } else {\n isStartInputFocused = false;\n isEndInputFocused = false;\n boundaryToModify = Boundary.START;\n }\n } else if (this.props.timePrecision == null) {\n // keep the end field focused\n isStartInputFocused = false;\n isEndInputFocused = true;\n } else {\n isStartInputFocused = false;\n isEndInputFocused = false;\n boundaryToModify = Boundary.END;\n }\n\n const baseStateChange = {\n boundaryToModify,\n endHoverString,\n endInputString: this.formatDate(selectedEnd),\n isEndInputFocused,\n isOpen,\n isStartInputFocused,\n startHoverString,\n startInputString: this.formatDate(selectedStart),\n wasLastFocusChangeDueToHover: false,\n };\n\n if (this.isControlled()) {\n this.setState(baseStateChange);\n } else {\n this.setState({ ...baseStateChange, selectedEnd, selectedStart });\n }\n\n this.props.onChange?.(selectedRange);\n };\n\n private handleShortcutChange = (_: DateRangeShortcut, selectedShortcutIndex: number) => {\n this.setState({ selectedShortcutIndex });\n };\n\n private handleDateRangePickerHoverChange = (\n hoveredRange: DateRange,\n _hoveredDay: Date,\n hoveredBoundary: Boundary,\n ) => {\n // ignore mouse events in the date-range picker if the popover is animating closed.\n if (!this.state.isOpen) {\n return;\n }\n\n if (hoveredRange == null) {\n // undo whatever focus changes we made while hovering over various calendar dates\n const isEndInputFocused = this.state.boundaryToModify === Boundary.END;\n\n this.setState({\n endHoverString: null,\n isEndInputFocused,\n isStartInputFocused: !isEndInputFocused,\n lastFocusedField: this.state.boundaryToModify,\n startHoverString: null,\n });\n } else {\n const [hoveredStart, hoveredEnd] = hoveredRange;\n const isStartInputFocused =\n hoveredBoundary != null ? hoveredBoundary === Boundary.START : this.state.isStartInputFocused;\n const isEndInputFocused =\n hoveredBoundary != null ? hoveredBoundary === Boundary.END : this.state.isEndInputFocused;\n\n this.setState({\n endHoverString: this.formatDate(hoveredEnd),\n isEndInputFocused,\n isStartInputFocused,\n lastFocusedField: isStartInputFocused ? Boundary.START : Boundary.END,\n shouldSelectAfterUpdate: this.props.selectAllOnFocus,\n startHoverString: this.formatDate(hoveredStart),\n wasLastFocusChangeDueToHover: true,\n });\n }\n };\n\n // Callbacks - Input\n // =================\n\n // instantiate these two functions once so we don't have to for each callback on each render.\n\n private handleStartInputEvent = (e: InputEvent) => {\n this.handleInputEvent(e, Boundary.START);\n };\n\n private handleEndInputEvent = (e: InputEvent) => {\n this.handleInputEvent(e, Boundary.END);\n };\n\n private handleInputEvent = (e: InputEvent, boundary: Boundary) => {\n const inputProps = this.getInputProps(boundary);\n\n switch (e.type) {\n case \"blur\":\n this.handleInputBlur(e, boundary);\n inputProps?.onBlur?.(e as React.FocusEvent);\n break;\n case \"change\":\n this.handleInputChange(e, boundary);\n inputProps?.onChange?.(e as React.ChangeEvent);\n break;\n case \"click\":\n e = e as React.MouseEvent;\n this.handleInputClick(e);\n inputProps?.onClick?.(e);\n break;\n case \"focus\":\n this.handleInputFocus(e, boundary);\n inputProps?.onFocus?.(e as React.FocusEvent);\n break;\n case \"keydown\":\n e = e as React.KeyboardEvent;\n this.handleInputKeyDown(e);\n inputProps?.onKeyDown?.(e);\n break;\n case \"mousedown\":\n e = e as React.MouseEvent;\n this.handleInputMouseDown();\n inputProps?.onMouseDown?.(e);\n break;\n default:\n break;\n }\n };\n\n // add a keydown listener to persistently change focus when tabbing:\n // - if focused in start field, Tab moves focus to end field\n // - if focused in end field, Shift+Tab moves focus to start field\n private handleInputKeyDown = (e: React.KeyboardEvent) => {\n // HACKHACK: https://github.com/palantir/blueprint/issues/4165\n /* eslint-disable deprecation/deprecation */\n const isTabPressed = e.which === Keys.TAB;\n const isEnterPressed = e.which === Keys.ENTER;\n const isShiftPressed = e.shiftKey;\n\n const { selectedStart, selectedEnd } = this.state;\n\n // order of JS events is our enemy here. when tabbing between fields,\n // this handler will fire in the middle of a focus exchange when no\n // field is currently focused. we work around this by referring to the\n // most recently focused field, rather than the currently focused field.\n const wasStartFieldFocused = this.state.lastFocusedField === Boundary.START;\n const wasEndFieldFocused = this.state.lastFocusedField === Boundary.END;\n\n // move focus to the other field\n if (isTabPressed) {\n let isEndInputFocused: boolean;\n let isStartInputFocused: boolean;\n let isOpen = true;\n\n if (wasStartFieldFocused && !isShiftPressed) {\n isStartInputFocused = false;\n isEndInputFocused = true;\n\n // prevent the default focus-change behavior to avoid race conditions;\n // we'll handle the focus change ourselves in componentDidUpdate.\n e.preventDefault();\n } else if (wasEndFieldFocused && isShiftPressed) {\n isStartInputFocused = true;\n isEndInputFocused = false;\n e.preventDefault();\n } else {\n // don't prevent default here, otherwise Tab won't do anything.\n isStartInputFocused = false;\n isEndInputFocused = false;\n isOpen = false;\n }\n\n this.setState({\n isEndInputFocused,\n isOpen,\n isStartInputFocused,\n wasLastFocusChangeDueToHover: false,\n });\n } else if (wasStartFieldFocused && isEnterPressed) {\n const nextStartDate = this.parseDate(this.state.startInputString);\n this.handleDateRangePickerChange([nextStartDate, selectedEnd], true);\n } else if (wasEndFieldFocused && isEnterPressed) {\n const nextEndDate = this.parseDate(this.state.endInputString);\n this.handleDateRangePickerChange([selectedStart, nextEndDate] as DateRange, true);\n } else {\n // let the default keystroke happen without side effects\n return;\n }\n };\n\n private handleInputMouseDown = () => {\n // clicking in the field constitutes an explicit focus change. we update\n // the flag on \"mousedown\" instead of on \"click\", because it needs to be\n // set before onFocus is called (\"click\" triggers after \"focus\").\n this.setState({ wasLastFocusChangeDueToHover: false });\n };\n\n private handleInputClick = (e: React.MouseEvent) => {\n // unless we stop propagation on this event, a click within an input\n // will close the popover almost as soon as it opens.\n e.stopPropagation();\n };\n\n private handleInputFocus = (_e: React.FormEvent, boundary: Boundary) => {\n const { keys, values } = this.getStateKeysAndValuesForBoundary(boundary);\n const isValueControlled = this.isControlled();\n // We may be reacting to a programmatic focus triggered by componentDidUpdate() at a point when\n // values.selectedValue may not have been updated yet in controlled mode, so we must use values.controlledValue\n // in that case.\n const inputString = DatePickerUtils.getFormattedDateString(\n isValueControlled ? values.controlledValue : values.selectedValue,\n this.props,\n true,\n );\n\n // change the boundary only if the user explicitly focused in the field.\n // focus changes from hovering don't count; they're just temporary.\n const boundaryToModify = this.state.wasLastFocusChangeDueToHover ? this.state.boundaryToModify : boundary;\n\n // HACKHACK: type cast to get setState() working\n this.setState({\n [keys.inputString]: inputString,\n [keys.isInputFocused]: true,\n boundaryToModify,\n isOpen: true,\n lastFocusedField: boundary,\n shouldSelectAfterUpdate: this.props.selectAllOnFocus,\n wasLastFocusChangeDueToHover: false,\n } as any);\n };\n\n private handleInputBlur = (_e: React.FormEvent, boundary: Boundary) => {\n const { keys, values } = this.getStateKeysAndValuesForBoundary(boundary);\n\n const maybeNextDate = this.parseDate(values.inputString);\n const isValueControlled = this.isControlled();\n\n let nextState: Partial = {\n [keys.isInputFocused]: false,\n shouldSelectAfterUpdate: false,\n };\n\n if (this.isInputEmpty(values.inputString)) {\n if (isValueControlled) {\n nextState = {\n ...nextState,\n [keys.inputString]: DatePickerUtils.getFormattedDateString(values.controlledValue, this.props),\n };\n } else {\n nextState = {\n ...nextState,\n [keys.inputString]: null,\n [keys.selectedValue]: null,\n };\n }\n } else if (!this.isNextDateRangeValid(maybeNextDate, boundary)) {\n if (!isValueControlled) {\n nextState = {\n ...nextState,\n [keys.inputString]: null,\n [keys.selectedValue]: maybeNextDate,\n };\n }\n this.props.onError?.(this.getDateRangeForCallback(maybeNextDate, boundary));\n }\n\n // HACKHACK: type cast to get setState() working\n this.setState(nextState as DateRangeInput2State);\n };\n\n private handleInputChange = (e: React.FormEvent, boundary: Boundary) => {\n const inputString = (e.target as HTMLInputElement).value;\n\n const { keys } = this.getStateKeysAndValuesForBoundary(boundary);\n const maybeNextDate = this.parseDate(inputString);\n const isValueControlled = this.isControlled();\n\n let nextState: Partial = { shouldSelectAfterUpdate: false };\n\n if (inputString.length === 0) {\n // this case will be relevant when we start showing the hovered range in the input\n // fields. goal is to show an empty field for clarity until the mouse moves over a\n // different date.\n const baseState = { ...nextState, [keys.inputString]: \"\" };\n if (isValueControlled) {\n nextState = baseState;\n } else {\n nextState = { ...baseState, [keys.selectedValue]: null };\n }\n this.props.onChange?.(this.getDateRangeForCallback(null, boundary));\n } else if (this.isDateValidAndInRange(maybeNextDate)) {\n // note that error cases that depend on both fields (e.g. overlapping dates) should fall\n // through into this block so that the UI can update immediately, possibly with an error\n // message on the other field.\n // also, clear the hover string to ensure the most recent keystroke appears.\n const baseState: Partial = {\n ...nextState,\n [keys.hoverString]: null,\n [keys.inputString]: inputString,\n };\n if (isValueControlled) {\n nextState = baseState;\n } else {\n nextState = { ...baseState, [keys.selectedValue]: maybeNextDate };\n }\n if (this.isNextDateRangeValid(maybeNextDate, boundary)) {\n this.props.onChange?.(this.getDateRangeForCallback(maybeNextDate, boundary));\n }\n } else {\n // again, clear the hover string to ensure the most recent keystroke appears\n nextState = { ...nextState, [keys.inputString]: inputString, [keys.hoverString]: null };\n }\n\n // HACKHACK: type cast to get setState() working\n this.setState(nextState as DateRangeInput2State);\n };\n\n // Callbacks - Popover\n // ===================\n\n private handlePopoverClose = (event: React.SyntheticEvent) => {\n this.setState({ isOpen: false });\n this.props.popoverProps?.onClose?.(event);\n };\n\n // Helpers\n // =======\n\n private shouldFocusInputRef(isFocused: boolean, inputRef: HTMLInputElement | null) {\n return isFocused && inputRef != null && Utils.getActiveElement(this.startInputElement) !== inputRef;\n }\n\n private getIsOpenValueWhenDateChanges = (nextSelectedStart: Date, nextSelectedEnd: Date): boolean => {\n if (this.props.closeOnSelection) {\n // trivial case when TimePicker is not shown\n if (this.props.timePrecision == null) {\n return false;\n }\n\n const fallbackDate = new Date(new Date().setHours(0, 0, 0, 0));\n const [selectedStart, selectedEnd] = this.getSelectedRange([fallbackDate, fallbackDate]);\n\n // case to check if the user has changed TimePicker values\n if (isSameTime(selectedStart, nextSelectedStart) && isSameTime(selectedEnd, nextSelectedEnd)) {\n return false;\n }\n return true;\n }\n\n return true;\n };\n\n private getInitialRange = (props = this.props): DateRange => {\n const { defaultValue, value } = props;\n if (value != null) {\n return value;\n } else if (defaultValue != null) {\n return defaultValue;\n } else {\n return [null, null];\n }\n };\n\n private getSelectedRange = (fallbackRange?: NonNullDateRange) => {\n let selectedStart: Date | null;\n let selectedEnd: Date | null;\n\n if (this.isControlled()) {\n [selectedStart, selectedEnd] = this.props.value!;\n } else {\n selectedStart = this.state.selectedStart;\n selectedEnd = this.state.selectedEnd;\n }\n\n // this helper function checks if the provided boundary date *would* overlap the selected\n // other boundary date. providing the already-selected start date simply tells us if we're\n // currently in an overlapping state.\n const doBoundaryDatesOverlap = this.doBoundaryDatesOverlap(selectedStart, Boundary.START);\n const dateRange = [selectedStart, doBoundaryDatesOverlap ? undefined : selectedEnd];\n\n return dateRange.map((selectedBound: Date | null | undefined, index: number) => {\n const fallbackDate = fallbackRange != null ? fallbackRange[index] : undefined;\n return this.isDateValidAndInRange(selectedBound ?? null) ? selectedBound : fallbackDate;\n }) as DateRange;\n };\n\n private getInputDisplayString = (boundary: Boundary) => {\n const { values } = this.getStateKeysAndValuesForBoundary(boundary);\n const { isInputFocused, inputString, selectedValue, hoverString } = values;\n\n if (hoverString != null) {\n return hoverString;\n } else if (isInputFocused) {\n return inputString == null ? \"\" : inputString;\n } else if (selectedValue == null) {\n return \"\";\n } else if (this.doesEndBoundaryOverlapStartBoundary(selectedValue, boundary)) {\n return this.props.overlappingDatesMessage;\n } else {\n return DatePickerUtils.getFormattedDateString(selectedValue, this.props);\n }\n };\n\n private getInputPlaceholderString = (boundary: Boundary) => {\n const isStartBoundary = boundary === Boundary.START;\n const isEndBoundary = boundary === Boundary.END;\n\n const inputProps = this.getInputProps(boundary);\n const { isInputFocused } = this.getStateKeysAndValuesForBoundary(boundary).values;\n\n // use the custom placeholder text for the input, if providied\n if (inputProps?.placeholder != null) {\n return inputProps.placeholder;\n } else if (isStartBoundary) {\n return isInputFocused ? this.state.formattedMinDateString : \"Start date\";\n } else if (isEndBoundary) {\n return isInputFocused ? this.state.formattedMaxDateString : \"End date\";\n } else {\n return \"\";\n }\n };\n\n private getInputProps = (boundary: Boundary) => {\n return boundary === Boundary.START ? this.props.startInputProps : this.props.endInputProps;\n };\n\n private getInputRef = (boundary: Boundary) => {\n return boundary === Boundary.START ? this.handleStartInputRef : this.handleEndInputRef;\n };\n\n private getStateKeysAndValuesForBoundary = (boundary: Boundary): StateKeysAndValuesObject => {\n const controlledRange = this.props.value;\n if (boundary === Boundary.START) {\n return {\n keys: {\n hoverString: \"startHoverString\",\n inputString: \"startInputString\",\n isInputFocused: \"isStartInputFocused\",\n selectedValue: \"selectedStart\",\n },\n values: {\n controlledValue: controlledRange != null ? controlledRange[0] : undefined,\n hoverString: this.state.startHoverString,\n inputString: this.state.startInputString,\n isInputFocused: this.state.isStartInputFocused,\n selectedValue: this.state.selectedStart,\n },\n };\n } else {\n return {\n keys: {\n hoverString: \"endHoverString\",\n inputString: \"endInputString\",\n isInputFocused: \"isEndInputFocused\",\n selectedValue: \"selectedEnd\",\n },\n values: {\n controlledValue: controlledRange != null ? controlledRange[1] : undefined,\n hoverString: this.state.endHoverString,\n inputString: this.state.endInputString,\n isInputFocused: this.state.isEndInputFocused,\n selectedValue: this.state.selectedEnd,\n },\n };\n }\n };\n\n private getDateRangeForCallback = (currDate: Date | null, currBoundary?: Boundary): DateRange => {\n const otherBoundary = this.getOtherBoundary(currBoundary);\n const otherDate = this.getStateKeysAndValuesForBoundary(otherBoundary).values.selectedValue;\n\n return currBoundary === Boundary.START ? [currDate, otherDate] : [otherDate, currDate];\n };\n\n private getOtherBoundary = (boundary?: Boundary) => {\n return boundary === Boundary.START ? Boundary.END : Boundary.START;\n };\n\n private doBoundaryDatesOverlap = (date: Date | null, boundary: Boundary) => {\n const { allowSingleDayRange } = this.props;\n const otherBoundary = this.getOtherBoundary(boundary);\n const otherBoundaryDate = this.getStateKeysAndValuesForBoundary(otherBoundary).values.selectedValue;\n if (date == null || otherBoundaryDate == null) {\n return false;\n }\n\n if (boundary === Boundary.START) {\n const isAfter = date > otherBoundaryDate;\n return isAfter || (!allowSingleDayRange && isSameDay(date, otherBoundaryDate));\n } else {\n const isBefore = date < otherBoundaryDate;\n return isBefore || (!allowSingleDayRange && isSameDay(date, otherBoundaryDate));\n }\n };\n\n /**\n * Returns true if the provided boundary is an END boundary overlapping the\n * selected start date. (If the boundaries overlap, we consider the END\n * boundary to be erroneous.)\n */\n private doesEndBoundaryOverlapStartBoundary = (boundaryDate: Date, boundary: Boundary) => {\n return boundary === Boundary.START ? false : this.doBoundaryDatesOverlap(boundaryDate, boundary);\n };\n\n private isControlled = () => this.props.value !== undefined;\n\n private isInputEmpty = (inputString: string | undefined) => inputString == null || inputString.length === 0;\n\n private isInputInErrorState = (boundary: Boundary) => {\n const values = this.getStateKeysAndValuesForBoundary(boundary).values;\n const { isInputFocused, hoverString, inputString, selectedValue } = values;\n if (hoverString != null || this.isInputEmpty(inputString)) {\n // don't show an error state while we're hovering over a valid date.\n return false;\n }\n\n const boundaryValue = isInputFocused ? this.parseDate(inputString) : selectedValue;\n return (\n boundaryValue != null &&\n (!this.isDateValidAndInRange(boundaryValue) ||\n this.doesEndBoundaryOverlapStartBoundary(boundaryValue, boundary))\n );\n };\n\n private isDateValidAndInRange = (date: Date | null): date is Date => {\n // min/max dates defined in defaultProps\n return isValid(date) && isDayInRange(date, [this.props.minDate!, this.props.maxDate!]);\n };\n\n private isNextDateRangeValid(nextDate: Date | null, boundary: Boundary): nextDate is Date {\n return this.isDateValidAndInRange(nextDate) && !this.doBoundaryDatesOverlap(nextDate, boundary);\n }\n\n // this is a slightly kludgy function, but it saves us a good amount of repeated code between\n // the constructor and componentDidUpdate.\n private getFormattedMinMaxDateString(props: DateRangeInput2Props, propName: \"minDate\" | \"maxDate\") {\n const date = props[propName];\n const defaultDate = DateRangeInput2.defaultProps[propName];\n // default values are applied only if a prop is strictly `undefined`\n // See: https://facebook.github.io/react/docs/react-component.html#defaultprops\n return DatePickerUtils.getFormattedDateString(date === undefined ? defaultDate : date, this.props);\n }\n\n private parseDate(dateString: string | undefined): Date | null {\n if (\n dateString === undefined ||\n dateString === this.props.outOfRangeMessage ||\n dateString === this.props.invalidDateMessage\n ) {\n return null;\n }\n const { locale, parseDate } = this.props;\n const newDate = parseDate(dateString, locale);\n return newDate === false ? new Date() : newDate;\n }\n\n private formatDate(date: Date | null): string {\n if (!this.isDateValidAndInRange(date)) {\n return \"\";\n }\n const { locale, formatDate } = this.props;\n return formatDate(date, locale);\n }\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { FormGroup } from \"@blueprintjs/core\";\nimport { DateRangeInput2 } from \"@blueprintjs/datetime2\";\nimport { FormFieldErrorContainer } from \"../../CoreFields/FieldError/FormFieldErrorContainer\";\nimport { FieldLabel } from \"../../CoreFields/FieldLabel/FieldLabel\";\nimport { useDateRangeField } from \"./useDateRangeField\";\nvar DateRangeField = function (props) {\n var _a = useDateRangeField(props), localDates = _a.localDates, setLocalDates = _a.setLocalDates, formatDate = _a.formatDate, parseDate = _a.parseDate;\n return (_jsx(\"div\", { className: \"ucl-base-input-date-range-field-container\", children: _jsxs(FormGroup, { className: \"\".concat(props.isRequired &&\n (!localDates || localDates.some(function (x) { return x === null; }))\n ? \"has-required-background\"\n : \"base-field\"), children: [props.label && (_jsx(FieldLabel, __assign({ labelName: props.label, tooltipDescription: props.description, fieldProps: __assign(__assign({}, props), { value: localDates }) }, props.labelProps))), _jsx(DateRangeInput2, { value: localDates, placeholder: \"MM/DD/YYYY\", closeOnSelection: true, formatDate: formatDate, parseDate: parseDate, onChange: function (date) {\n setLocalDates(date);\n props.onSubmit && props.onSubmit(!date ? undefined : date);\n }, disabled: props.disabled, minDate: props.minDate || new Date(\"1900-01-01 05:00:00\"), maxDate: props.maxDate, shortcuts: props.shortcuts, allowSingleDayRange: props.allowSingleDayRange }), props.errorMessages && (_jsx(FormFieldErrorContainer, { errorMessages: props.errorMessages }))] }) }));\n};\nexport default DateRangeField;\n","import { useCallback, useState } from \"react\";\nimport { format, parse } from \"date-fns\";\nexport var useDateRangeField = function (props) {\n var _a = useState(props.value), localDates = _a[0], setLocalDates = _a[1];\n var dateFnsFormat = \"MM/dd/yyyy\";\n var formatDate = useCallback(function (date) { return format(date, dateFnsFormat); }, []);\n var parseDate = useCallback(function (str) { return parse(str, dateFnsFormat, new Date()); }, []);\n return { localDates: localDates, setLocalDates: setLocalDates, formatDate: formatDate, parseDate: parseDate };\n};\n","import { isNullOrUndefined, classList, createElement } from '@syncfusion/ej2-base';\nvar globalTimeOut = {};\nvar DEFT_MAT_WIDTH = 30;\nvar DEFT_MAT3_WIDTH = 30;\nvar DEFT_FAB_WIDTH = 30;\nvar DEFT_FLUENT_WIDTH = 30;\nvar DEFT_BOOT_WIDTH = 30;\nvar DEFT_BOOT4_WIDTH = 36;\nvar DEFT_BOOT5_WIDTH = 36;\nvar CLS_SHOWSPIN = 'e-spin-show';\nvar CLS_HIDESPIN = 'e-spin-hide';\nvar CLS_MATERIALSPIN = 'e-spin-material';\nvar CLS_MATERIAL3SPIN = 'e-spin-material3';\nvar CLS_FABRICSPIN = 'e-spin-fabric';\nvar CLS_FLUENTSPIN = 'e-spin-fluent';\nvar CLS_TAILWINDSPIN = 'e-spin-tailwind';\nvar CLS_BOOTSPIN = 'e-spin-bootstrap';\nvar CLS_BOOT4SPIN = 'e-spin-bootstrap4';\nvar CLS_BOOT5SPIN = 'e-spin-bootstrap5';\nvar CLS_HIGHCONTRASTSPIN = 'e-spin-high-contrast';\nvar CLS_SPINWRAP = 'e-spinner-pane';\nvar CLS_SPININWRAP = 'e-spinner-inner';\nvar CLS_SPINCIRCLE = 'e-path-circle';\nvar CLS_SPINARC = 'e-path-arc';\nvar CLS_SPINLABEL = 'e-spin-label';\nvar CLS_SPINTEMPLATE = 'e-spin-template';\nvar spinTemplate = null;\nvar spinCSSClass = null;\n// eslint-disable-next-line\n/**\n * Function to change the Spinners in a page globally from application end.\n * ```\n * E.g : blazorSpinner({ action: \"Create\", options: {target: targetElement}, type: \"\" });\n * ```\n *\n * @param {string} action - specifies the string\n * @param {CreateArgs} options - specifies the args\n * @param {string} target - specifies the target\n * @param {string} type - specifes the type\n * @returns {void}\n * @private\n */\nexport function Spinner(action, options, target, type) {\n switch (action) {\n case 'Create':\n /* eslint-disable */\n var element = document.querySelector(options.target);\n var args = { type: type, target: element, cssClass: options.cssClass,\n label: options.label, width: options.width };\n /* eslint-enable */\n createSpinner(args);\n break;\n case 'Show':\n showSpinner(document.querySelector(target));\n break;\n case 'Hide':\n hideSpinner(document.querySelector(target));\n break;\n case 'Set':\n // eslint-disable-next-line\n var setArgs = { cssClass: options.cssClass, type: type };\n setSpinner(setArgs);\n break;\n }\n}\n/**\n * Create a spinner for the specified target element.\n * ```\n * E.g : createSpinner({ target: targetElement, width: '34px', label: 'Loading..' });\n * ```\n *\n * @param {SpinnerArgs} args - specifies the args\n * @param {CreateElementArgs} internalCreateElement - specifis the element args\n * @returns {void}\n * @private\n */\nexport function createSpinner(args, internalCreateElement) {\n if (!args.target) {\n return;\n }\n var radius;\n var makeElement = !isNullOrUndefined(internalCreateElement) ? internalCreateElement : createElement;\n // eslint-disable-next-line\n var container = create_spinner_container(args.target, makeElement);\n if (!isNullOrUndefined(args.cssClass)) {\n container.wrap.classList.add(args.cssClass);\n }\n if (!isNullOrUndefined(args.template) || !isNullOrUndefined(spinTemplate)) {\n var template = !isNullOrUndefined(args.template) ? args.template : spinTemplate;\n container.wrap.classList.add(CLS_SPINTEMPLATE);\n replaceContent(container.wrap, template, spinCSSClass);\n }\n else {\n var theme = !isNullOrUndefined(args.type) ? args.type : getTheme(container.wrap);\n var width = !isNullOrUndefined(args.width) ? args.width : undefined;\n radius = calculateRadius(width, theme);\n setTheme(theme, container.wrap, radius, makeElement);\n if (!isNullOrUndefined(args.label)) {\n createLabel(container.inner_wrap, args.label, makeElement);\n }\n }\n container.wrap.classList.add(CLS_HIDESPIN);\n container = null;\n}\n/**\n *\n * @param {HTMLElement} container - specifies the element\n * @param {string} label - specifies the string\n * @param {createElementParams} makeElement - specifies the element\n * @returns {HTMLElement} - returns the element\n */\nfunction createLabel(container, label, makeElement) {\n var labelEle = makeElement('div', {});\n labelEle.classList.add(CLS_SPINLABEL);\n labelEle.innerHTML = label;\n container.appendChild(labelEle);\n return labelEle;\n}\n/**\n *\n * @param {HTMLElement} container - specifies the element\n * @param {number} radius - specifies the radius\n * @param {createElementParams} makeElement - specifies the element\n * @returns {void}\n */\nfunction createMaterialSpinner(container, radius, makeElement) {\n var uniqueID = random_generator();\n globalTimeOut[\"\" + uniqueID] = { timeOut: 0, type: 'Material', radius: radius };\n create_material_element(container, uniqueID, makeElement, CLS_MATERIALSPIN);\n mat_calculate_attributes(radius, container, 'Material', CLS_MATERIALSPIN);\n}\n/**\n *\n * @param {HTMLElement} container - specifies the element\n * @param {number} radius - specifies the radius\n * @param {createElementParams} makeElement - specifies the element\n * @returns {void}\n */\nfunction createMaterial3Spinner(container, radius, makeElement) {\n var uniqueID = random_generator();\n globalTimeOut[\"\" + uniqueID] = { timeOut: 0, type: 'Material3', radius: radius };\n create_material_element(container, uniqueID, makeElement, CLS_MATERIAL3SPIN);\n mat_calculate_attributes(radius, container, 'Material3', CLS_MATERIAL3SPIN);\n}\n/**\n *\n * @param {HTMLElement} container - specifies the element\n * @param {number} radius - specifies the radius\n * @param {createElementParams} makeElement - specifies the element\n * @returns {void}\n */\nfunction createBootstrap4Spinner(container, radius, makeElement) {\n var uniqueID = random_generator();\n globalTimeOut[\"\" + uniqueID] = { timeOut: 0, type: 'Bootstrap4', radius: radius };\n create_material_element(container, uniqueID, makeElement, CLS_BOOT4SPIN);\n mat_calculate_attributes(radius, container, 'Bootstrap4', CLS_BOOT4SPIN);\n}\n/**\n *\n * @param {HTMLElement} container - specifies the element\n * @param {number} radius - specifies the radius\n * @param {createElementParams} makeElement - specifies the element\n * @returns {void}\n */\nfunction createBootstrap5Spinner(container, radius, makeElement) {\n var uniqueID = random_generator();\n globalTimeOut[\"\" + uniqueID] = { timeOut: 0, type: 'Bootstrap5', radius: radius };\n create_material_element(container, uniqueID, makeElement, CLS_BOOT5SPIN);\n mat_calculate_attributes(radius, container, 'Bootstrap5', CLS_BOOT5SPIN);\n}\n/**\n *\n * @param {HTMLElement} container - specifies the element\n * @param {string} uniqueID - specifies the id.\n * @param {number} radius - specifies the radius\n * @returns {void}\n */\nfunction startMatAnimate(container, uniqueID, radius) {\n var globalObject = {};\n var timeOutVar = 0;\n globalTimeOut[\"\" + uniqueID].timeOut = 0;\n globalObject[\"\" + uniqueID] = globalVariables(uniqueID, radius, 0, 0);\n // eslint-disable-next-line\n var spinnerInfo = { uniqueID: uniqueID, container: container, globalInfo: globalObject, timeOutVar: timeOutVar };\n animateMaterial(spinnerInfo);\n}\n/**\n *\n * @param {HTMLElement} container - specifies the element\n * @param {number} radius - specifies the radius\n * @param {createElementParams} makeElement - specifies the element\n * @returns {void}\n */\nfunction createFabricSpinner(container, radius, makeElement) {\n var uniqueID = random_generator();\n globalTimeOut[\"\" + uniqueID] = { timeOut: 0, type: 'Fabric', radius: radius };\n create_fabric_element(container, uniqueID, CLS_FABRICSPIN, makeElement);\n fb_calculate_attributes(radius, container, CLS_FABRICSPIN);\n}\n/**\n *\n * @param {HTMLElement} container - specifies the element\n * @param {number} radius - specifies the radius\n * @param {createElementParams} makeElement - specifies the element\n * @returns {void}\n */\nfunction createFluentSinner(container, radius, makeElement) {\n var uniqueID = random_generator();\n globalTimeOut[\"\" + uniqueID] = { timeOut: 0, type: 'Fluent', radius: radius };\n create_fabric_element(container, uniqueID, CLS_FLUENTSPIN, makeElement);\n fb_calculate_attributes(radius, container, CLS_FLUENTSPIN);\n}\n/**\n *\n * @param {HTMLElement} container - specifies the element\n * @param {number} radius - specifies the radius\n * @param {createElementParams} makeElement - specifies the element\n * @returns {void}\n */\nfunction createTailwindSpinner(container, radius, makeElement) {\n var uniqueID = random_generator();\n globalTimeOut[\"\" + uniqueID] = { timeOut: 0, type: 'Tailwind', radius: radius };\n create_fabric_element(container, uniqueID, CLS_TAILWINDSPIN, makeElement);\n fb_calculate_attributes(radius, container, CLS_TAILWINDSPIN);\n}\n/**\n *\n * @param {HTMLElement} container - specifies the element\n * @param {number} radius - specifies the radius\n * @param {createElementParams} makeElement - specifies the element\n * @returns {void}\n */\nfunction createHighContrastSpinner(container, radius, makeElement) {\n var uniqueID = random_generator();\n globalTimeOut[\"\" + uniqueID] = { timeOut: 0, type: 'HighContrast', radius: radius };\n create_fabric_element(container, uniqueID, CLS_HIGHCONTRASTSPIN, makeElement);\n fb_calculate_attributes(radius, container, CLS_HIGHCONTRASTSPIN);\n}\n/**\n *\n * @param {HTMLElement} container - specifies the element\n * @returns {string} - returns the string\n */\nfunction getTheme(container) {\n var theme = window.getComputedStyle(container, ':after').getPropertyValue('content');\n return theme.replace(/['\"]+/g, '');\n}\n/**\n *\n * @param {string} theme - specifies the theme\n * @param {HTMLElement} container - specifies the element\n * @param {number} radius - specifies the radius\n * @param {createElementParams} makeElement - specifies the element\n * @returns {void}\n */\nfunction setTheme(theme, container, radius, makeElement) {\n var innerContainer = container.querySelector('.' + CLS_SPININWRAP);\n var svg = innerContainer.querySelector('svg');\n if (!isNullOrUndefined(svg)) {\n innerContainer.removeChild(svg);\n }\n switch (theme) {\n case 'Material':\n createMaterialSpinner(innerContainer, radius, makeElement);\n break;\n case 'Material3':\n createMaterial3Spinner(innerContainer, radius, makeElement);\n break;\n case 'Fabric':\n createFabricSpinner(innerContainer, radius, makeElement);\n break;\n case 'Fluent':\n createFluentSinner(innerContainer, radius, makeElement);\n break;\n case 'Bootstrap':\n createBootstrapSpinner(innerContainer, radius, makeElement);\n break;\n case 'HighContrast':\n createHighContrastSpinner(innerContainer, radius, makeElement);\n break;\n case 'Bootstrap4':\n createBootstrap4Spinner(innerContainer, radius, makeElement);\n break;\n case 'Bootstrap5':\n createBootstrap5Spinner(innerContainer, radius, makeElement);\n break;\n case 'Tailwind':\n case 'Tailwind-dark':\n createTailwindSpinner(innerContainer, radius, makeElement);\n break;\n }\n}\n/**\n *\n * @param {HTMLElement} innerContainer - specifies the element\n * @param {number} radius - specifies the radius\n * @param {createElementParams} makeElement - specifies the element\n * @returns {void}\n */\nfunction createBootstrapSpinner(innerContainer, radius, makeElement) {\n var uniqueID = random_generator();\n globalTimeOut[\"\" + uniqueID] = { timeOut: 0, type: 'Bootstrap', radius: radius };\n create_bootstrap_element(innerContainer, uniqueID, makeElement);\n boot_calculate_attributes(innerContainer, radius);\n}\n/**\n *\n * @param {HTMLElement} innerContainer - specifies the element\n * @param {string} uniqueID - specifies the id\n * @param {createElementParams} makeElement - specifies the element\n * @returns {void}\n */\n// eslint-disable-next-line\nfunction create_bootstrap_element(innerContainer, uniqueID, makeElement) {\n var svgBoot = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n var viewBoxValue = 64;\n var trans = 32;\n var defaultRadius = 2;\n svgBoot.setAttribute('id', uniqueID);\n svgBoot.setAttribute('class', CLS_BOOTSPIN);\n svgBoot.setAttribute('viewBox', '0 0 ' + viewBoxValue + ' ' + viewBoxValue);\n innerContainer.insertBefore(svgBoot, innerContainer.firstChild);\n for (var item = 0; item <= 7; item++) {\n var bootCircle = document.createElementNS('http://www.w3.org/2000/svg', 'circle');\n bootCircle.setAttribute('class', CLS_SPINCIRCLE + '_' + item);\n bootCircle.setAttribute('r', defaultRadius + '');\n bootCircle.setAttribute('transform', 'translate(' + trans + ',' + trans + ')');\n svgBoot.appendChild(bootCircle);\n }\n}\n/**\n *\n * @param {HTMLElement} innerContainer - specifies the element\n * @param {number} radius - specifies the radius\n * @returns {void}\n */\n// eslint-disable-next-line\nfunction boot_calculate_attributes(innerContainer, radius) {\n var svg = innerContainer.querySelector('svg.e-spin-bootstrap');\n var x = 0;\n var y = 0;\n var rad = 24;\n svg.style.width = svg.style.height = radius + 'px';\n var startArc = 90;\n for (var item = 0; item <= 7; item++) {\n var start = defineArcPoints(x, y, rad, startArc);\n var circleEle = svg.querySelector('.' + CLS_SPINCIRCLE + '_' + item);\n circleEle.setAttribute('cx', start.x + '');\n circleEle.setAttribute('cy', start.y + '');\n startArc = startArc >= 360 ? 0 : startArc;\n startArc = startArc + 45;\n }\n}\n/**\n *\n * @param {number} begin - specifies the number\n * @param {number} stop - specifirs the number\n * @returns {number[]} - returns the array of number\n */\nfunction generateSeries(begin, stop) {\n var series = [];\n var start = begin;\n var end = stop;\n // eslint-disable-next-line\n var increment = false, count = 1;\n formSeries(start);\n /**\n *\n * @param {number} i - specifies the number\n * @returns {void}\n */\n function formSeries(i) {\n series.push(i);\n if (i !== end || count === 1) {\n if (i <= start && i > 1 && !increment) {\n i = parseFloat((i - 0.2).toFixed(2));\n }\n else if (i === 1) {\n i = 7;\n i = parseFloat((i + 0.2).toFixed(2));\n increment = true;\n }\n else if (i < 8 && increment) {\n i = parseFloat((i + 0.2).toFixed(2));\n if (i === 8) {\n increment = false;\n }\n }\n else if (i <= 8 && !increment) {\n i = parseFloat((i - 0.2).toFixed(2));\n }\n ++count;\n formSeries(i);\n }\n }\n return series;\n}\n/**\n *\n * @param {HTMLElement} innerContainer - specifies the element\n * @returns {void}\n */\nfunction animateBootstrap(innerContainer) {\n var svg = innerContainer.querySelector('svg.e-spin-bootstrap');\n var id = svg.getAttribute('id');\n for (var i = 1; i <= 8; i++) {\n var circleEle = (innerContainer.getElementsByClassName('e-path-circle_' +\n (i === 8 ? 0 : i))[0]);\n rotation(circleEle, i, i, generateSeries(i, i), id);\n }\n /**\n *\n * @param {SVGCircleElement} circle - specifies the circl element\n * @param {number} start - specifies the number\n * @param {number} end - specifies the end number\n * @param {number} series - specifies the series\n * @param {string} id - specifies the id\n * @returns {void}\n */\n function rotation(circle, start, end, series, id) {\n var count = 0;\n boot_animate(start);\n // eslint-disable-next-line\n function boot_animate(radius) {\n if (globalTimeOut[\"\" + id].isAnimate) {\n ++count;\n circle.setAttribute('r', radius + '');\n if (count >= series.length) {\n count = 0;\n }\n // eslint-disable-next-line\n globalTimeOut[id].timeOut = setTimeout(boot_animate.bind(null, series[count]), 18);\n }\n }\n }\n}\n/**\n *\n * @param {HTMLElement} container - specifies the element\n * @param {string} template - specifies the template\n * @param {string} cssClass - specifies the css class.\n * @returns {void}\n */\nfunction replaceContent(container, template, cssClass) {\n if (!isNullOrUndefined(cssClass)) {\n container.classList.add(cssClass);\n }\n var inner = container.querySelector('.e-spinner-inner');\n inner.innerHTML = template;\n}\n/**\n *\n * @param {string} width - specifies the width\n * @param {string} theme - specifies the string\n * @returns {number} - returns the number\n */\nfunction calculateRadius(width, theme) {\n var defaultSize;\n switch (theme) {\n case 'Material':\n defaultSize = DEFT_MAT_WIDTH;\n break;\n case 'Material3':\n defaultSize = DEFT_MAT3_WIDTH;\n break;\n case 'Fabric':\n defaultSize = DEFT_FAB_WIDTH;\n break;\n case 'Tailwind':\n case 'Tailwind-dark':\n defaultSize = DEFT_FAB_WIDTH;\n break;\n case 'Fluent':\n defaultSize = DEFT_FLUENT_WIDTH;\n break;\n case 'Bootstrap4':\n defaultSize = DEFT_BOOT4_WIDTH;\n break;\n case 'Bootstrap5':\n defaultSize = DEFT_BOOT5_WIDTH;\n break;\n default:\n defaultSize = DEFT_BOOT_WIDTH;\n }\n width = width ? parseFloat(width + '') : defaultSize;\n return theme === 'Bootstrap' ? width : width / 2;\n}\n/**\n *\n * @param {string} id - specifies the id\n * @param {number} radius - specifies the radius\n * @param {number} count - specifies the number count\n * @param {number} previousId - specifies the previous id\n * @returns {GlobalVariables} - returns the variables\n */\nfunction globalVariables(id, radius, count, previousId) {\n return {\n radius: radius,\n count: count,\n previousId: previousId\n };\n}\n/**\n * @returns {string} - returns the string\n */\n// eslint-disable-next-line\nfunction random_generator() {\n var random = '';\n var combine = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n for (var i = 0; i < 5; i++) {\n random += combine.charAt(Math.floor(Math.random() * combine.length));\n }\n return random;\n}\n/**\n *\n * @param {HTMLElement} innerCon - specifies the element\n * @param {string} uniqueID - specifies the unique id\n * @param {string} themeClass - specifies the string\n * @param {createElementParams} makeElement - specifies the element\n * @returns {void}\n */\n// eslint-disable-next-line\nfunction create_fabric_element(innerCon, uniqueID, themeClass, makeElement) {\n var svgFabric = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n svgFabric.setAttribute('id', uniqueID);\n svgFabric.setAttribute('class', themeClass);\n var fabricCirclePath = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n fabricCirclePath.setAttribute('class', CLS_SPINCIRCLE);\n var fabricCircleArc = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n fabricCircleArc.setAttribute('class', CLS_SPINARC);\n innerCon.insertBefore(svgFabric, innerCon.firstChild);\n svgFabric.appendChild(fabricCirclePath);\n svgFabric.appendChild(fabricCircleArc);\n}\n/**\n *\n * @param {HTMLElement} innerContainer - specifies the element\n * @param {string} uniqueID - specifies the unique id\n * @param {createElementParams} makeElement - specifies the element\n * @param {string} cls - specifies the string\n * @returns {void}\n */\n// eslint-disable-next-line\nfunction create_material_element(innerContainer, uniqueID, makeElement, cls) {\n var svgMaterial = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n var matCirclePath = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n svgMaterial.setAttribute('class', cls);\n svgMaterial.setAttribute('id', uniqueID);\n matCirclePath.setAttribute('class', CLS_SPINCIRCLE);\n innerContainer.insertBefore(svgMaterial, innerContainer.firstChild);\n svgMaterial.appendChild(matCirclePath);\n}\n/**\n *\n * @param {HTMLElement} target - specifies the element\n * @param {createElementParams} makeElement - specifies the element\n * @returns {void}\n */\n// eslint-disable-next-line\nfunction create_spinner_container(target, makeElement) {\n var spinnerContainer = makeElement('div', {});\n var spinnerInnerContainer = makeElement('div', {});\n spinnerContainer.classList.add(CLS_SPINWRAP);\n spinnerInnerContainer.classList.add(CLS_SPININWRAP);\n target.appendChild(spinnerContainer);\n spinnerContainer.appendChild(spinnerInnerContainer);\n // eslint-disable-next-line\n return { wrap: spinnerContainer, inner_wrap: spinnerInnerContainer };\n}\n/**\n *\n * @param {SpinnerInfo} spinnerInfo - specifies the spinner\n * @returns {void}\n */\nfunction animateMaterial(spinnerInfo) {\n var start = 1;\n var end = 149;\n var duration = 1333;\n var max = 75;\n createCircle(start, end, easeAnimation, duration, spinnerInfo.globalInfo[spinnerInfo.uniqueID].count, max, spinnerInfo);\n spinnerInfo.globalInfo[spinnerInfo.uniqueID].count = ++spinnerInfo.globalInfo[spinnerInfo.uniqueID].count % 4;\n}\n/**\n *\n * @param {number} start - specifies the number\n * @param {number} end - specifies the end number\n * @param {Function} easing - specifies the function\n * @param {number} duration - specifies the duration\n * @param {number} count - specifies the count\n * @param {number} max - specifies the max number\n * @param {SpinnerInfo} spinnerInfo - specifies the spinner info\n * @returns {void}\n */\nfunction createCircle(start, end, easing, duration, count, max, spinnerInfo) {\n var id = ++spinnerInfo.globalInfo[spinnerInfo.uniqueID].previousId;\n var startTime = new Date().getTime();\n var change = end - start;\n var diameter = getSize((spinnerInfo.globalInfo[spinnerInfo.uniqueID].radius * 2) + '');\n var strokeSize = getStrokeSize(diameter);\n var rotate = -90 * (spinnerInfo.globalInfo[spinnerInfo.uniqueID].count || 0);\n mat_animation(spinnerInfo);\n // eslint-disable-next-line\n function mat_animation(spinnerInfo) {\n var currentTime = Math.max(0, Math.min(new Date().getTime() - startTime, duration));\n updatePath(easing(currentTime, start, change, duration), spinnerInfo.container);\n if (id === spinnerInfo.globalInfo[spinnerInfo.uniqueID].previousId && currentTime < duration) {\n // eslint-disable-next-line\n globalTimeOut[spinnerInfo.uniqueID].timeOut = setTimeout(mat_animation.bind(null, spinnerInfo), 1);\n }\n else {\n animateMaterial(spinnerInfo);\n }\n }\n /**\n *\n * @param {number} value - specifies the number value\n * @param {HTMLElement} container - specifies the container\n * @returns {void}\n */\n function updatePath(value, container) {\n if (!isNullOrUndefined(container.querySelector('svg.e-spin-material')) || !isNullOrUndefined(container.querySelector('svg.e-spin-material3'))) {\n var svg = void 0;\n if (!isNullOrUndefined(container.querySelector('svg.e-spin-material')) && !isNullOrUndefined(container.querySelector('svg.e-spin-material').querySelector('path.e-path-circle'))) {\n svg = container.querySelector('svg.e-spin-material');\n }\n else if (!isNullOrUndefined(container.querySelector('svg.e-spin-material3')) && !isNullOrUndefined(container.querySelector('svg.e-spin-material3').querySelector('path.e-path-circle'))) {\n svg = container.querySelector('svg.e-spin-material3');\n }\n if (!isNullOrUndefined(svg)) {\n var path = svg.querySelector('path.e-path-circle');\n path.setAttribute('stroke-dashoffset', getDashOffset(diameter, strokeSize, value, max) + '');\n path.setAttribute('transform', 'rotate(' + (rotate) + ' ' + diameter / 2 + ' ' + diameter / 2 + ')');\n }\n }\n }\n}\n/**\n *\n * @param {number} radius - specifies the number\n * @param {HTMLElement} container - specifies the element\n * @param {string} type - specifies the string type\n * @param {string} cls - specifies the string\n * @returns {void}\n */\n// eslint-disable-next-line\nfunction mat_calculate_attributes(radius, container, type, cls) {\n var diameter = radius * 2;\n var svg = container.querySelector('svg.' + cls);\n var path = svg.querySelector('path.e-path-circle');\n var strokeSize = getStrokeSize(diameter);\n var transformOrigin = (diameter / 2) + 'px';\n svg.setAttribute('viewBox', '0 0 ' + diameter + ' ' + diameter);\n svg.style.width = svg.style.height = diameter + 'px';\n svg.style.transformOrigin = transformOrigin + ' ' + transformOrigin + ' ' + transformOrigin;\n path.setAttribute('d', drawArc(diameter, strokeSize));\n if (type === 'Material' || type === 'Material3') {\n path.setAttribute('stroke-width', strokeSize + '');\n path.setAttribute('stroke-dasharray', ((diameter - strokeSize) * Math.PI * 0.75) + '');\n path.setAttribute('stroke-dashoffset', getDashOffset(diameter, strokeSize, 1, 75) + '');\n }\n}\n/**\n *\n * @param {string} value - specifies the value\n * @returns {number} - returns the number\n */\nfunction getSize(value) {\n var parsed = parseFloat(value);\n return parsed;\n}\n/**\n *\n * @param {number} diameter - specifies the diameter\n * @param {number} strokeSize - specifies the size\n * @returns {string} - returns the string\n */\nfunction drawArc(diameter, strokeSize) {\n var radius = diameter / 2;\n var offset = strokeSize / 2;\n return 'M' + radius + ',' + offset\n + 'A' + (radius - offset) + ',' + (radius - offset) + ' 0 1 1 ' + offset + ',' + radius;\n}\n/**\n *\n * @param {number} diameter - specifies the number\n * @returns {number} - returns the number\n */\nfunction getStrokeSize(diameter) {\n return 10 / 100 * diameter;\n}\n/**\n *\n * @param {number} diameter - specifies the number\n * @param {number} strokeSize - specifies the stroke size\n * @param {number} value - specifies the value\n * @param {number} max - specifies the max number\n * @returns {number} - returns the number\n */\nfunction getDashOffset(diameter, strokeSize, value, max) {\n return (diameter - strokeSize) * Math.PI * ((3 * (max) / 100) - (value / 100));\n}\n/**\n *\n * @param {number} current - specifies the number\n * @param {number} start - specifies the stroke size\n * @param {number} change - specifies the value\n * @param {number} duration - specifies the max number\n * @returns {number} - returns the number\n */\nfunction easeAnimation(current, start, change, duration) {\n var timestamp = (current /= duration) * current;\n var timecount = timestamp * current;\n return start + change * (6 * timecount * timestamp + -15 * timestamp * timestamp + 10 * timecount);\n}\n/**\n *\n * @param {number} radius - specifies the number\n * @param {HTMLElement} innerConainer - specifies the element\n * @param {string} trgClass - specifies the class\n * @returns {void}\n */\n// eslint-disable-next-line\nfunction fb_calculate_attributes(radius, innerConainer, trgClass) {\n var centerX = radius;\n var centerY = radius;\n var diameter = radius * 2;\n // eslint-disable-next-line\n var startArc = 315, endArc = 45;\n var svg = innerConainer.querySelector('.' + trgClass);\n var circle = svg.querySelector('.e-path-circle');\n var path = svg.querySelector('.e-path-arc');\n var transformOrigin = (diameter / 2) + 'px';\n circle.setAttribute('d', defineCircle(centerX, centerY, radius));\n path.setAttribute('d', defineArc(centerX, centerY, radius, startArc, endArc));\n svg.setAttribute('viewBox', '0 0 ' + diameter + ' ' + diameter);\n svg.style.transformOrigin = transformOrigin + ' ' + transformOrigin + ' ' + transformOrigin;\n svg.style.width = svg.style.height = diameter + 'px';\n}\n/**\n *\n * @param {number} centerX - specifies the number\n * @param {number} centerY - specifies the stroke size\n * @param {number} radius - specifies the value\n * @param {number} angle - specifies the max number\n * @returns {number} - returns the number\n */\nfunction defineArcPoints(centerX, centerY, radius, angle) {\n var radians = (angle - 90) * Math.PI / 180.0;\n return {\n x: centerX + (radius * Math.cos(radians)),\n y: centerY + (radius * Math.sin(radians))\n };\n}\n/**\n *\n * @param {number} x - specifies the number\n * @param {number} y - specifies the stroke size\n * @param {number} radius - specifies the radius\n * @param {number} startArc - specifies the value\n * @param {number} endArc - specifies the max number\n * @returns {number} - returns the number\n */\nfunction defineArc(x, y, radius, startArc, endArc) {\n var start = defineArcPoints(x, y, radius, endArc);\n var end = defineArcPoints(x, y, radius, startArc);\n var d = [\n 'M', start.x, start.y,\n 'A', radius, radius, 0, 0, 0, end.x, end.y\n ].join(' ');\n return d;\n}\n/**\n *\n * @param {number} x - specifies the number\n * @param {number} y - specifies the stroke size\n * @param {number} radius - specifies the value\n * @returns {string} - returns the string\n */\nfunction defineCircle(x, y, radius) {\n var d = [\n 'M', x, y,\n 'm', -radius, 0,\n 'a', radius, radius, 0, 1, 0, radius * 2, 0,\n 'a', radius, radius, 0, 1, 0, -radius * 2, 0\n ].join(' ');\n return d;\n}\n/**\n * Function to show the Spinner.\n *\n * @param {HTMLElement} container - Specify the target of the Spinner.\n * @returns {void}\n * @private\n */\nexport function showSpinner(container) {\n showHideSpinner(container, false);\n container = null;\n}\n/**\n *\n * @param {HTMLElement} container - specifies the element\n * @param {boolean} isHide - specifies the boolean\n * @returns {void}\n */\nfunction showHideSpinner(container, isHide) {\n var spinnerWrap;\n if (container) {\n if (container.classList.contains(CLS_SPINWRAP)) {\n spinnerWrap = container;\n }\n else {\n var spinWrapCollection = void 0;\n spinWrapCollection = container.querySelectorAll('.' + CLS_SPINWRAP);\n spinnerWrap = Array.from(spinWrapCollection).find(function (wrap) { return wrap.parentElement === container; }) || null;\n }\n }\n if (container && spinnerWrap) {\n var inner = spinnerWrap.querySelector('.' + CLS_SPININWRAP);\n var spinCheck = void 0;\n // eslint-disable-next-line\n spinCheck = isHide ? !spinnerWrap.classList.contains(CLS_SPINTEMPLATE) && !spinnerWrap.classList.contains(CLS_HIDESPIN) :\n !spinnerWrap.classList.contains(CLS_SPINTEMPLATE) && !spinnerWrap.classList.contains(CLS_SHOWSPIN);\n if (spinCheck) {\n var svgEle = spinnerWrap.querySelector('svg');\n if (isNullOrUndefined(svgEle)) {\n return;\n }\n var id = svgEle.getAttribute('id');\n globalTimeOut[\"\" + id].isAnimate = !isHide;\n switch (globalTimeOut[\"\" + id].type) {\n case 'Material':\n case 'Material3':\n // eslint-disable-next-line\n isHide ? clearTimeout(globalTimeOut[id].timeOut) : startMatAnimate(inner, id, globalTimeOut[id].radius);\n break;\n case 'Bootstrap':\n // eslint-disable-next-line\n isHide ? clearTimeout(globalTimeOut[id].timeOut) : animateBootstrap(inner);\n break;\n }\n }\n // eslint-disable-next-line\n isHide ? classList(spinnerWrap, [CLS_HIDESPIN], [CLS_SHOWSPIN]) : classList(spinnerWrap, [CLS_SHOWSPIN], [CLS_HIDESPIN]);\n container = null;\n }\n}\n/**\n * Function to hide the Spinner.\n *\n * @param {HTMLElement} container - Specify the target of the Spinner.\n * @returns {void}\n * @private\n */\nexport function hideSpinner(container) {\n showHideSpinner(container, true);\n container = null;\n}\n// eslint-disable-next-line\n/**\n * Function to change the Spinners in a page globally from application end.\n * ```\n * E.g : setSpinner({ cssClass: 'custom-css'; type: 'Material' });\n * ```\n *\n * @param {SetSpinnerArgs} args - specifies the args\n * @param {createElementParams} internalCreateElement - specifies the element params\n * @returns {void}\n * @private\n */\nexport function setSpinner(args, internalCreateElement) {\n var makeElement = !isNullOrUndefined(internalCreateElement) ? internalCreateElement : createElement;\n if (args.template !== undefined) {\n spinTemplate = args.template;\n if (args.template !== undefined) {\n spinCSSClass = args.cssClass;\n }\n }\n var container = document.querySelectorAll('.' + CLS_SPINWRAP);\n for (var index = 0; index < container.length; index++) {\n ensureTemplate(args.template, container[index], args.type, args.cssClass, makeElement);\n }\n}\n/**\n *\n * @param {string} template - specifies the string\n * @param {HTMLElement} container - specifies the container\n * @param {string} theme - specifies the theme\n * @param {string} cssClass - specifies the string class\n * @param {createElementParams} makeEle - specifies the params\n * @returns {void}\n */\nfunction ensureTemplate(template, container, theme, cssClass, makeEle) {\n if (isNullOrUndefined(template) && !container.classList.contains(CLS_SPINTEMPLATE)) {\n replaceTheme(container, theme, cssClass, makeEle);\n if (container.classList.contains(CLS_SHOWSPIN)) {\n container.classList.remove(CLS_SHOWSPIN);\n showSpinner(container);\n }\n else {\n container.classList.remove(CLS_HIDESPIN);\n hideSpinner(container);\n }\n }\n else {\n spinTemplate = template;\n if (!isNullOrUndefined(cssClass)) {\n spinCSSClass = cssClass;\n }\n if (!isNullOrUndefined(spinTemplate)) {\n replaceContent(container, spinTemplate, spinCSSClass);\n }\n }\n}\n/**\n *\n * @param {HTMLElement} container - specifies the container\n * @param {string} theme - specifies the theme\n * @param {string} cssClass - specifies the string class\n * @param {createElementParams} makeEle - specifies the params\n * @returns {void}\n */\nfunction replaceTheme(container, theme, cssClass, makeEle) {\n if (!isNullOrUndefined(cssClass)) {\n container.classList.add(cssClass);\n }\n var svgElement = container.querySelector('svg');\n if (!isNullOrUndefined(svgElement)) {\n var radius = theme === 'Bootstrap' ? parseFloat(svgElement.style.height) : parseFloat(svgElement.style.height) / 2;\n var classNames = svgElement.getAttribute('class');\n var svgClassList = classNames.split(/\\s/);\n if (svgClassList.indexOf('e-spin-material') >= 0) {\n var id = svgElement.getAttribute('id');\n clearTimeout(globalTimeOut[\"\" + id].timeOut);\n }\n setTheme(theme, container, radius, makeEle);\n }\n}\n","/**\n * IncrementalSearch module file\n */\nvar queryString = '';\nvar prevString = '';\nvar matches = [];\nvar activeClass = 'e-active';\nvar prevElementId = '';\n/**\n * Search and focus the list item based on key code matches with list text content\n *\n * @param { number } keyCode - Specifies the key code which pressed on keyboard events.\n * @param { HTMLElement[]} items - Specifies an array of HTMLElement, from which matches find has done.\n * @param { number } selectedIndex - Specifies the selected item in list item, so that search will happen\n * after selected item otherwise it will do from initial.\n * @param { boolean } ignoreCase - Specifies the case consideration when search has done.\n * @param {string} elementId - Specifies the list element ID.\n * @returns {Element} Returns list item based on key code matches with list text content.\n */\nexport function incrementalSearch(keyCode, items, selectedIndex, ignoreCase, elementId) {\n queryString += String.fromCharCode(keyCode);\n setTimeout(function () {\n queryString = '';\n }, 1000);\n var index;\n queryString = ignoreCase ? queryString.toLowerCase() : queryString;\n if (prevElementId === elementId && prevString === queryString) {\n for (var i = 0; i < matches.length; i++) {\n if (matches[i].classList.contains(activeClass)) {\n index = i;\n break;\n }\n }\n index = index + 1;\n return matches[index] ? matches[index] : matches[0];\n }\n else {\n var listItems = items;\n var strLength = queryString.length;\n var text = void 0;\n var item = void 0;\n selectedIndex = selectedIndex ? selectedIndex + 1 : 0;\n var i = selectedIndex;\n matches = [];\n do {\n if (i === listItems.length) {\n i = -1;\n }\n if (i === -1) {\n index = 0;\n }\n else {\n index = i;\n }\n item = listItems[index];\n text = ignoreCase ? item.innerText.toLowerCase() : item.innerText;\n if (text.substr(0, strLength) === queryString) {\n matches.push(listItems[index]);\n }\n i++;\n } while (i !== selectedIndex);\n prevString = queryString;\n prevElementId = elementId;\n return matches[0];\n }\n}\n/**\n * Search the list item based on given input value matches with search type.\n *\n * @param {string} inputVal - Specifies the given input value.\n * @param {HTMLElement[]} items - Specifies the list items.\n * @param {SearchType} searchType - Specifies the filter type.\n * @param {boolean} ignoreCase - Specifies the case sensitive option for search operation.\n * @returns {Element | number} Returns the search matched items.\n */\nexport function Search(inputVal, items, searchType, ignoreCase, dataSource, fields, type) {\n var listItems = items;\n ignoreCase = ignoreCase !== undefined && ignoreCase !== null ? ignoreCase : true;\n var itemData = { item: null, index: null };\n if (inputVal && inputVal.length) {\n var strLength = inputVal.length;\n var queryStr = ignoreCase ? inputVal.toLocaleLowerCase() : inputVal;\n queryStr = escapeCharRegExp(queryStr);\n var _loop_1 = function (i, itemsData) {\n var item = itemsData[i];\n var text = void 0;\n var filterValue;\n if (items && dataSource) {\n var checkField_1 = item;\n var fieldValue_1 = fields.text.split('.');\n dataSource.filter(function (data) {\n Array.prototype.slice.call(fieldValue_1).forEach(function (value) {\n /* eslint-disable security/detect-object-injection */\n if (type === 'object' && (!data.isHeader && checkField_1.textContent.toString().indexOf(data[value]) !== -1) && checkField_1.getAttribute('data-value') === data[fields.value].toString() || type === 'string' && checkField_1.textContent.toString().indexOf(data) !== -1) {\n filterValue = type === 'object' ? data[value] : data;\n }\n });\n });\n }\n text = dataSource && filterValue ? (ignoreCase ? filterValue.toLocaleLowerCase() : filterValue).replace(/^\\s+|\\s+$/g, '') : (ignoreCase ? item.textContent.toLocaleLowerCase() : item.textContent).replace(/^\\s+|\\s+$/g, '');\n /* eslint-disable security/detect-non-literal-regexp */\n if ((searchType === 'Equal' && text === queryStr) || (searchType === 'StartsWith' && text.substr(0, strLength) === queryStr) || (searchType === 'EndsWith' && text.substr(text.length - queryStr.length) === queryStr) || (searchType === 'Contains' && new RegExp(queryStr, \"g\").test(text))) {\n itemData.item = item;\n itemData.index = i;\n return { value: { item: item, index: i } };\n }\n };\n for (var i = 0, itemsData = listItems; i < itemsData.length; i++) {\n var state_1 = _loop_1(i, itemsData);\n if (typeof state_1 === \"object\")\n return state_1.value;\n }\n return itemData;\n /* eslint-enable security/detect-non-literal-regexp */\n }\n return itemData;\n}\n/* eslint-enable security/detect-object-injection */\nexport function escapeCharRegExp(value) {\n return value.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n}\nexport function resetIncrementalSearchValues(elementId) {\n if (prevElementId === elementId) {\n prevElementId = '';\n prevString = '';\n queryString = '';\n matches = [];\n }\n}\n","/* eslint-disable valid-jsdoc */\n/* eslint-disable security/detect-object-injection */\nimport { DataUtil } from './util';\nimport { isNullOrUndefined } from '@syncfusion/ej2-base';\n/**\n * Query class is used to build query which is used by the DataManager to communicate with datasource.\n */\nvar Query = /** @class */ (function () {\n /**\n * Constructor for Query class.\n *\n * @param {string|string[]} from?\n * @param from\n * @hidden\n */\n function Query(from) {\n /** @hidden */\n this.subQuery = null;\n /** @hidden */\n this.isChild = false;\n /** @hidden */\n this.distincts = [];\n this.queries = [];\n this.key = '';\n this.fKey = '';\n if (typeof from === 'string') {\n this.fromTable = from;\n }\n else if (from && from instanceof Array) {\n this.lookups = from;\n }\n this.expands = [];\n this.sortedColumns = [];\n this.groupedColumns = [];\n this.subQuery = null;\n this.isChild = false;\n this.params = [];\n this.lazyLoad = [];\n return this;\n }\n /**\n * Sets the primary key.\n *\n * @param {string} field - Defines the column field.\n */\n Query.prototype.setKey = function (field) {\n this.key = field;\n return this;\n };\n /**\n * Sets default DataManager to execute query.\n *\n * @param {DataManager} dataManager - Defines the DataManager.\n */\n Query.prototype.using = function (dataManager) {\n this.dataManager = dataManager;\n return this;\n };\n /**\n * Executes query with the given DataManager.\n *\n * @param {DataManager} dataManager - Defines the DataManager.\n * @param {Function} done - Defines the success callback.\n * @param {Function} fail - Defines the failure callback.\n * @param {Function} always - Defines the callback which will be invoked on either success or failure.\n *\n *
\n     * let dataManager: DataManager = new DataManager([{ ID: '10' }, { ID: '2' }, { ID: '1' }, { ID: '20' }]);\n     * let query: Query = new Query();\n     * query.sortBy('ID', (x: string, y: string): number => { return parseInt(x, 10) - parseInt(y, 10) });\n     * let promise: Promise< Object > = query.execute(dataManager);\n     * promise.then((e: { result: Object }) => { });\n     * 
\n */\n Query.prototype.execute = function (dataManager, done, fail, always) {\n dataManager = dataManager || this.dataManager;\n if (dataManager) {\n return dataManager.executeQuery(this, done, fail, always);\n }\n return DataUtil.throwError('Query - execute() : dataManager needs to be is set using \"using\" function or should be passed as argument');\n };\n /**\n * Executes query with the local datasource.\n *\n * @param {DataManager} dataManager - Defines the DataManager.\n */\n Query.prototype.executeLocal = function (dataManager) {\n dataManager = dataManager || this.dataManager;\n if (dataManager) {\n return dataManager.executeLocal(this);\n }\n return DataUtil.throwError('Query - executeLocal() : dataManager needs to be is set using \"using\" function or should be passed as argument');\n };\n /**\n * Creates deep copy of the Query object.\n */\n Query.prototype.clone = function () {\n var cloned = new Query();\n cloned.queries = this.queries.slice(0);\n cloned.key = this.key;\n cloned.isChild = this.isChild;\n cloned.dataManager = this.dataManager;\n cloned.fromTable = this.fromTable;\n cloned.params = this.params.slice(0);\n cloned.expands = this.expands.slice(0);\n cloned.sortedColumns = this.sortedColumns.slice(0);\n cloned.groupedColumns = this.groupedColumns.slice(0);\n cloned.subQuerySelector = this.subQuerySelector;\n cloned.subQuery = this.subQuery;\n cloned.fKey = this.fKey;\n cloned.isCountRequired = this.isCountRequired;\n cloned.distincts = this.distincts.slice(0);\n cloned.lazyLoad = this.lazyLoad.slice(0);\n return cloned;\n };\n /**\n * Specifies the name of table to retrieve data in query execution.\n *\n * @param {string} tableName - Defines the table name.\n */\n Query.prototype.from = function (tableName) {\n this.fromTable = tableName;\n return this;\n };\n /**\n * Adds additional parameter which will be sent along with the request which will be generated while DataManager execute.\n *\n * @param {string} key - Defines the key of additional parameter.\n * @param {Function|string} value - Defines the value for the key.\n */\n Query.prototype.addParams = function (key, value) {\n if (typeof value === 'function') {\n this.params.push({ key: key, fn: value });\n }\n else {\n this.params.push({ key: key, value: value });\n }\n return this;\n };\n /**\n * @param fields\n * @hidden\n */\n Query.prototype.distinct = function (fields) {\n if (typeof fields === 'string') {\n this.distincts = [].slice.call([fields], 0);\n }\n else {\n this.distincts = fields.slice(0);\n }\n return this;\n };\n /**\n * Expands the related table.\n *\n * @param {string|Object[]} tables\n */\n Query.prototype.expand = function (tables) {\n if (typeof tables === 'string') {\n this.expands = [].slice.call([tables], 0);\n }\n else {\n this.expands = tables.slice(0);\n }\n return this;\n };\n /**\n * Filter data with given filter criteria.\n *\n * @param {string|Predicate} fieldName - Defines the column field or Predicate.\n * @param {string} operator - Defines the operator how to filter data.\n * @param {string|number|boolean} value - Defines the values to match with data.\n * @param {boolean} ignoreCase - If ignore case set to false, then filter data with exact match or else\n * filter data with case insensitive.\n * @param ignoreAccent\n * @param matchCase\n */\n Query.prototype.where = function (fieldName, operator, value, ignoreCase, ignoreAccent, matchCase) {\n operator = operator ? (operator).toLowerCase() : null;\n var predicate = null;\n if (typeof fieldName === 'string') {\n predicate = new Predicate(fieldName, operator, value, ignoreCase, ignoreAccent, matchCase);\n }\n else if (fieldName instanceof Predicate) {\n predicate = fieldName;\n }\n this.queries.push({\n fn: 'onWhere',\n e: predicate\n });\n return this;\n };\n /**\n * Search data with given search criteria.\n *\n * @param {string|number|boolean} searchKey - Defines the search key.\n * @param {string|string[]} fieldNames - Defines the collection of column fields.\n * @param {string} operator - Defines the operator how to search data.\n * @param {boolean} ignoreCase - If ignore case set to false, then filter data with exact match or else\n * filter data with case insensitive.\n * @param ignoreAccent\n */\n Query.prototype.search = function (searchKey, fieldNames, operator, ignoreCase, ignoreAccent) {\n if (typeof fieldNames === 'string') {\n fieldNames = [fieldNames];\n }\n if (!operator || operator === 'none') {\n operator = 'contains';\n }\n var comparer = DataUtil.fnOperators[operator];\n this.queries.push({\n fn: 'onSearch',\n e: {\n fieldNames: fieldNames,\n operator: operator,\n searchKey: searchKey,\n ignoreCase: ignoreCase,\n ignoreAccent: ignoreAccent,\n comparer: comparer\n }\n });\n return this;\n };\n /**\n * Sort the data with given sort criteria.\n * By default, sort direction is ascending.\n *\n * @param {string|string[]} fieldName - Defines the single or collection of column fields.\n * @param {string|Function} comparer - Defines the sort direction or custom sort comparer function.\n * @param isFromGroup\n */\n Query.prototype.sortBy = function (fieldName, comparer, isFromGroup) {\n return this.sortByForeignKey(fieldName, comparer, isFromGroup);\n };\n /**\n * Sort the data with given sort criteria.\n * By default, sort direction is ascending.\n *\n * @param {string|string[]} fieldName - Defines the single or collection of column fields.\n * @param {string|Function} comparer - Defines the sort direction or custom sort comparer function.\n * @param isFromGroup\n * @param {string} direction - Defines the sort direction .\n */\n Query.prototype.sortByForeignKey = function (fieldName, comparer, isFromGroup, direction) {\n var order = !isNullOrUndefined(direction) ? direction : 'ascending';\n var sorts;\n var temp;\n if (typeof fieldName === 'string' && DataUtil.endsWith(fieldName.toLowerCase(), ' desc')) {\n fieldName = fieldName.replace(/ desc$/i, '');\n comparer = 'descending';\n }\n if (!comparer || typeof comparer === 'string') {\n order = comparer ? comparer.toLowerCase() : 'ascending';\n comparer = DataUtil.fnSort(comparer);\n }\n if (isFromGroup) {\n sorts = Query.filterQueries(this.queries, 'onSortBy');\n for (var i = 0; i < sorts.length; i++) {\n temp = sorts[i].e.fieldName;\n if (typeof temp === 'string') {\n if (temp === fieldName) {\n return this;\n }\n }\n else if (temp instanceof Array) {\n for (var j = 0; j < temp.length; j++) {\n if (temp[j] === fieldName || fieldName.toLowerCase() === temp[j] + ' desc') {\n return this;\n }\n }\n }\n }\n }\n this.queries.push({\n fn: 'onSortBy',\n e: {\n fieldName: fieldName,\n comparer: comparer,\n direction: order\n }\n });\n return this;\n };\n /**\n * Sorts data in descending order.\n *\n * @param {string} fieldName - Defines the column field.\n */\n Query.prototype.sortByDesc = function (fieldName) {\n return this.sortBy(fieldName, 'descending');\n };\n /**\n * Groups data with the given field name.\n *\n * @param {string} fieldName - Defines the column field.\n * @param fn\n * @param format\n */\n Query.prototype.group = function (fieldName, fn, format) {\n this.sortBy(fieldName, null, true);\n this.queries.push({\n fn: 'onGroup',\n e: {\n fieldName: fieldName,\n comparer: fn ? fn : null,\n format: format ? format : null\n }\n });\n return this;\n };\n /**\n * Gets data based on the given page index and size.\n *\n * @param {number} pageIndex - Defines the current page index.\n * @param {number} pageSize - Defines the no of records per page.\n */\n Query.prototype.page = function (pageIndex, pageSize) {\n this.queries.push({\n fn: 'onPage',\n e: {\n pageIndex: pageIndex,\n pageSize: pageSize\n }\n });\n return this;\n };\n /**\n * Gets data based on the given start and end index.\n *\n * @param {number} start - Defines the start index of the datasource.\n * @param {number} end - Defines the end index of the datasource.\n */\n Query.prototype.range = function (start, end) {\n this.queries.push({\n fn: 'onRange',\n e: {\n start: start,\n end: end\n }\n });\n return this;\n };\n /**\n * Gets data from the top of the data source based on given number of records count.\n *\n * @param {number} nos - Defines the no of records to retrieve from datasource.\n */\n Query.prototype.take = function (nos) {\n this.queries.push({\n fn: 'onTake',\n e: {\n nos: nos\n }\n });\n return this;\n };\n /**\n * Skips data with given number of records count from the top of the data source.\n *\n * @param {number} nos - Defines the no of records skip in the datasource.\n */\n Query.prototype.skip = function (nos) {\n this.queries.push({\n fn: 'onSkip',\n e: { nos: nos }\n });\n return this;\n };\n /**\n * Selects specified columns from the data source.\n *\n * @param {string|string[]} fieldNames - Defines the collection of column fields.\n */\n Query.prototype.select = function (fieldNames) {\n if (typeof fieldNames === 'string') {\n fieldNames = [].slice.call([fieldNames], 0);\n }\n this.queries.push({\n fn: 'onSelect',\n e: { fieldNames: fieldNames }\n });\n return this;\n };\n /**\n * Gets the records in hierarchical relationship from two tables. It requires the foreign key to relate two tables.\n *\n * @param {Query} query - Defines the query to relate two tables.\n * @param {Function} selectorFn - Defines the custom function to select records.\n */\n Query.prototype.hierarchy = function (query, selectorFn) {\n this.subQuerySelector = selectorFn;\n this.subQuery = query;\n return this;\n };\n /**\n * Sets the foreign key which is used to get data from the related table.\n *\n * @param {string} key - Defines the foreign key.\n */\n Query.prototype.foreignKey = function (key) {\n this.fKey = key;\n return this;\n };\n /**\n * It is used to get total number of records in the DataManager execution result.\n */\n Query.prototype.requiresCount = function () {\n this.isCountRequired = true;\n return this;\n };\n //type - sum, avg, min, max\n /**\n * Aggregate the data with given type and field name.\n *\n * @param {string} type - Defines the aggregate type.\n * @param {string} field - Defines the column field to aggregate.\n */\n Query.prototype.aggregate = function (type, field) {\n this.queries.push({\n fn: 'onAggregates',\n e: { field: field, type: type }\n });\n return this;\n };\n /**\n * Pass array of filterColumn query for performing filter operation.\n *\n * @param {QueryOptions[]} queries\n * @param {string} name\n * @hidden\n */\n Query.filterQueries = function (queries, name) {\n return queries.filter(function (q) {\n return q.fn === name;\n });\n };\n /**\n * To get the list of queries which is already filtered in current data source.\n *\n * @param {Object[]} queries\n * @param {string[]} singles\n * @hidden\n */\n Query.filterQueryLists = function (queries, singles) {\n var filtered = queries.filter(function (q) {\n return singles.indexOf(q.fn) !== -1;\n });\n var res = {};\n for (var i = 0; i < filtered.length; i++) {\n if (!res[filtered[i].fn]) {\n res[filtered[i].fn] = filtered[i].e;\n }\n }\n return res;\n };\n return Query;\n}());\nexport { Query };\n/**\n * Predicate class is used to generate complex filter criteria.\n * This will be used by DataManager to perform multiple filtering operation.\n */\nvar Predicate = /** @class */ (function () {\n /**\n * Constructor for Predicate class.\n *\n * @param {string|Predicate} field\n * @param {string} operator\n * @param {string|number|boolean|Predicate|Predicate[]} value\n * @param {boolean=false} ignoreCase\n * @param ignoreAccent\n * @param {boolean} matchCase\n * @hidden\n */\n function Predicate(field, operator, value, ignoreCase, ignoreAccent, matchCase) {\n if (ignoreCase === void 0) { ignoreCase = false; }\n /** @hidden */\n this.ignoreAccent = false;\n /** @hidden */\n this.isComplex = false;\n if (typeof field === 'string') {\n this.field = field;\n this.operator = operator.toLowerCase();\n this.value = value;\n this.matchCase = matchCase;\n this.ignoreCase = ignoreCase;\n this.ignoreAccent = ignoreAccent;\n this.isComplex = false;\n this.comparer = DataUtil.fnOperators.processOperator(this.operator);\n }\n else if (field instanceof Predicate && value instanceof Predicate || value instanceof Array) {\n this.isComplex = true;\n this.condition = operator.toLowerCase();\n this.predicates = [field];\n this.matchCase = field.matchCase;\n this.ignoreCase = field.ignoreCase;\n this.ignoreAccent = field.ignoreAccent;\n if (value instanceof Array) {\n [].push.apply(this.predicates, value);\n }\n else {\n this.predicates.push(value);\n }\n }\n return this;\n }\n /**\n * Adds n-number of new predicates on existing predicate with “and” condition.\n *\n * @param {Object[]} args - Defines the collection of predicates.\n */\n Predicate.and = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return Predicate.combinePredicates([].slice.call(args, 0), 'and');\n };\n /**\n * Adds new predicate on existing predicate with “and” condition.\n *\n * @param {string} field - Defines the column field.\n * @param {string} operator - Defines the operator how to filter data.\n * @param {string} value - Defines the values to match with data.\n * @param {boolean} ignoreCase? - If ignore case set to false, then filter data with exact match or else\n * filter data with case insensitive.\n * @param ignoreCase\n * @param ignoreAccent\n */\n Predicate.prototype.and = function (field, operator, value, ignoreCase, ignoreAccent) {\n return Predicate.combine(this, field, operator, value, 'and', ignoreCase, ignoreAccent);\n };\n /**\n * Adds n-number of new predicates on existing predicate with “or” condition.\n *\n * @param {Object[]} args - Defines the collection of predicates.\n */\n Predicate.or = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return Predicate.combinePredicates([].slice.call(args, 0), 'or');\n };\n /**\n * Adds new predicate on existing predicate with “or” condition.\n *\n * @param {string} field - Defines the column field.\n * @param {string} operator - Defines the operator how to filter data.\n * @param {string} value - Defines the values to match with data.\n * @param {boolean} ignoreCase? - If ignore case set to false, then filter data with exact match or else\n * filter data with case insensitive.\n * @param ignoreCase\n * @param ignoreAccent\n */\n Predicate.prototype.or = function (field, operator, value, ignoreCase, ignoreAccent) {\n return Predicate.combine(this, field, operator, value, 'or', ignoreCase, ignoreAccent);\n };\n /**\n * Adds n-number of new predicates on existing predicate with “and not” condition.\n *\n * @param {Object[]} args - Defines the collection of predicates.\n */\n Predicate.ornot = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return Predicate.combinePredicates([].slice.call(args, 0), 'or not');\n };\n /**\n * Adds new predicate on existing predicate with “and not” condition.\n *\n * @param {string} field - Defines the column field.\n * @param {string} operator - Defines the operator how to filter data.\n * @param {string} value - Defines the values to match with data.\n * @param {boolean} ignoreCase? - If ignore case set to false, then filter data with exact match or else\n * filter data with case insensitive.\n * @param ignoreCase\n * @param ignoreAccent\n */\n Predicate.prototype.ornot = function (field, operator, value, ignoreCase, ignoreAccent) {\n return Predicate.combine(this, field, operator, value, 'ornot', ignoreCase, ignoreAccent);\n };\n /**\n * Adds n-number of new predicates on existing predicate with “and not” condition.\n *\n * @param {Object[]} args - Defines the collection of predicates.\n */\n Predicate.andnot = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return Predicate.combinePredicates([].slice.call(args, 0), 'and not');\n };\n /**\n * Adds new predicate on existing predicate with “and not” condition.\n *\n * @param {string} field - Defines the column field.\n * @param {string} operator - Defines the operator how to filter data.\n * @param {string} value - Defines the values to match with data.\n * @param {boolean} ignoreCase? - If ignore case set to false, then filter data with exact match or else\n * filter data with case insensitive.\n * @param ignoreCase\n * @param ignoreAccent\n */\n Predicate.prototype.andnot = function (field, operator, value, ignoreCase, ignoreAccent) {\n return Predicate.combine(this, field, operator, value, 'andnot', ignoreCase, ignoreAccent);\n };\n /**\n * Converts plain JavaScript object to Predicate object.\n *\n * @param {Predicate[]|Predicate} json - Defines single or collection of Predicate.\n */\n Predicate.fromJson = function (json) {\n if (json instanceof Array) {\n var res = [];\n for (var i = 0, len = json.length; i < len; i++) {\n res.push(this.fromJSONData(json[i]));\n }\n return res;\n }\n var pred = json;\n return this.fromJSONData(pred);\n };\n /**\n * Validate the record based on the predicates.\n *\n * @param {Object} record - Defines the datasource record.\n */\n Predicate.prototype.validate = function (record) {\n var predicate = this.predicates ? this.predicates : [];\n var ret;\n var isAnd;\n if (!this.isComplex && this.comparer) {\n if (this.condition && this.condition.indexOf('not') !== -1) {\n this.condition = this.condition.split('not')[0] === '' ? undefined : this.condition.split('not')[0];\n return !this.comparer.call(this, DataUtil.getObject(this.field, record), this.value, this.ignoreCase, this.ignoreAccent);\n }\n else {\n return this.comparer.call(this, DataUtil.getObject(this.field, record), this.value, this.ignoreCase, this.ignoreAccent);\n }\n }\n if (this.condition && this.condition.indexOf('not') !== -1) {\n isAnd = this.condition.indexOf('and') !== -1;\n }\n else {\n isAnd = this.condition === 'and';\n }\n for (var i = 0; i < predicate.length; i++) {\n if (i > 0 && this.condition && this.condition.indexOf('not') !== -1) {\n predicate[i].condition = predicate[i].condition ? predicate[i].condition + 'not' : 'not';\n }\n ret = predicate[i].validate(record);\n if (isAnd) {\n if (!ret) {\n return false;\n }\n }\n else {\n if (ret) {\n return true;\n }\n }\n }\n return isAnd;\n };\n /**\n * Converts predicates to plain JavaScript.\n * This method is uses Json stringify when serializing Predicate object.\n */\n Predicate.prototype.toJson = function () {\n var predicates;\n var p;\n if (this.isComplex) {\n predicates = [];\n p = this.predicates;\n for (var i = 0; i < p.length; i++) {\n predicates.push(p[i].toJson());\n }\n }\n return {\n isComplex: this.isComplex,\n field: this.field,\n operator: this.operator,\n value: this.value,\n ignoreCase: this.ignoreCase,\n ignoreAccent: this.ignoreAccent,\n condition: this.condition,\n predicates: predicates,\n matchCase: this.matchCase\n };\n };\n Predicate.combinePredicates = function (predicates, operator) {\n if (predicates.length === 1) {\n if (!(predicates[0] instanceof Array)) {\n return predicates[0];\n }\n predicates = predicates[0];\n }\n return new Predicate(predicates[0], operator, predicates.slice(1));\n };\n Predicate.combine = function (pred, field, operator, value, condition, ignoreCase, ignoreAccent) {\n if (field instanceof Predicate) {\n return Predicate[condition](pred, field);\n }\n if (typeof field === 'string') {\n return Predicate[condition](pred, new Predicate(field, operator, value, ignoreCase, ignoreAccent));\n }\n return DataUtil.throwError('Predicate - ' + condition + ' : invalid arguments');\n };\n Predicate.fromJSONData = function (json) {\n var preds = json.predicates || [];\n var len = preds.length;\n var predicates = [];\n var result;\n for (var i = 0; i < len; i++) {\n predicates.push(this.fromJSONData(preds[i]));\n }\n if (!json.isComplex) {\n result = new Predicate(json.field, json.operator, json.value, json.ignoreCase, json.ignoreAccent);\n }\n else {\n result = new Predicate(predicates[0], json.condition, predicates.slice(1));\n }\n return result;\n };\n return Predicate;\n}());\nexport { Predicate };\n","/* eslint-disable no-inner-declarations */\nimport { extend, merge, isNullOrUndefined, getValue } from '@syncfusion/ej2-base';\nimport { attributes, prepend, isVisible, append, addClass } from '@syncfusion/ej2-base';\nimport { compile } from '@syncfusion/ej2-base';\nimport { DataManager, Query } from '@syncfusion/ej2-data';\nexport var cssClass = {\n li: 'e-list-item',\n ul: 'e-list-parent e-ul',\n group: 'e-list-group-item',\n icon: 'e-list-icon',\n text: 'e-list-text',\n check: 'e-list-check',\n checked: 'e-checked',\n selected: 'e-selected',\n expanded: 'e-expanded',\n textContent: 'e-text-content',\n hasChild: 'e-has-child',\n level: 'e-level',\n url: 'e-list-url',\n collapsible: 'e-icon-collapsible',\n disabled: 'e-disabled',\n image: 'e-list-img',\n iconWrapper: 'e-icon-wrapper',\n anchorWrap: 'e-anchor-wrap',\n navigable: 'e-navigable'\n};\n/**\n * Base List Generator\n */\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport var ListBase;\n(function (ListBase) {\n /**\n *\n * Default mapped fields.\n */\n ListBase.defaultMappedFields = {\n id: 'id',\n text: 'text',\n url: 'url',\n value: 'value',\n isChecked: 'isChecked',\n enabled: 'enabled',\n expanded: 'expanded',\n selected: 'selected',\n iconCss: 'iconCss',\n child: 'child',\n isVisible: 'isVisible',\n hasChildren: 'hasChildren',\n tooltip: 'tooltip',\n htmlAttributes: 'htmlAttributes',\n urlAttributes: 'urlAttributes',\n imageAttributes: 'imageAttributes',\n imageUrl: 'imageUrl',\n groupBy: null,\n sortBy: null\n };\n var defaultAriaAttributes = {\n level: 1,\n listRole: 'presentation',\n itemRole: 'presentation',\n groupItemRole: 'group',\n itemText: 'list-item',\n wrapperRole: 'presentation'\n };\n var defaultListBaseOptions = {\n showCheckBox: false,\n showIcon: false,\n enableHtmlSanitizer: false,\n expandCollapse: false,\n fields: ListBase.defaultMappedFields,\n ariaAttributes: defaultAriaAttributes,\n listClass: '',\n itemClass: '',\n processSubChild: false,\n sortOrder: 'None',\n template: null,\n groupTemplate: null,\n headerTemplate: null,\n expandIconClass: 'e-icon-collapsible',\n moduleName: 'list',\n expandIconPosition: 'Right',\n itemNavigable: false\n };\n /**\n * Function helps to created and return the UL Li element based on your data.\n *\n * @param {createElementParams} createElement - Specifies an array of JSON data.\n *\n * @param {{Object}[]} dataSource - Specifies an array of JSON data.\n *\n * @param {ListBaseOptions} options? - Specifies the list options that need to provide.\n *\n * @param {boolean} isSingleLevel? - Specifies the list options that need to provide.\n *\n * @param {any} componentInstance? - Specifies the list options that need to provide.\n *\n * @returns {createElement} createListFromJson - Specifies the list options that need to provide.\n */\n function createList(createElement, dataSource, \n // eslint-disable-next-line\n options, isSingleLevel, componentInstance) {\n var curOpt = extend({}, defaultListBaseOptions, options);\n var ariaAttributes = extend({}, defaultAriaAttributes, curOpt.ariaAttributes);\n var type = typeofData(dataSource).typeof;\n if (type === 'string' || type === 'number') {\n return createListFromArray(createElement, dataSource, isSingleLevel, options, componentInstance);\n }\n else {\n return createListFromJson(createElement, dataSource, options, ariaAttributes.level, isSingleLevel, componentInstance);\n }\n }\n ListBase.createList = createList;\n /**\n * Function helps to created an element list based on string array input .\n *\n * @param {createElementParams} createElement - Specifies an array of JSON data.\n *\n * @param {{Object}[]} dataSource - Specifies an array of JSON data.\n *\n * @param {ListBaseOptions} options? - Specifies the list options that need to provide.\n *\n * @param {boolean} isSingleLevel? - Specifies the list options that need to provide.\n *\n * @param {any} componentInstance? - Specifies the list options that need to provide.\n *\n * @returns {createElement} generateUL - returns the list options that need to provide.\n */\n function createListFromArray(createElement, dataSource, \n // tslint:disable-next-line\n // eslint-disable-next-line\n isSingleLevel, options, componentInstance) {\n var subChild = createListItemFromArray(createElement, dataSource, isSingleLevel, options, componentInstance);\n return generateUL(createElement, subChild, null, options);\n }\n ListBase.createListFromArray = createListFromArray;\n /**\n * Function helps to created an element list based on string array input .\n *\n * @param {createElementParams} createElement - Specifies an array of JSON data.\n *\n * @param {{Object}[]} dataSource - Specifies an array of JSON data.\n *\n * @param {ListBaseOptions} options? - Specifies the list options that need to provide.\n *\n * @param {boolean} isSingleLevel? - Specifies the list options that need to provide.\n *\n * @param {any} componentInstance? - Specifies the list options that need to provide.\n *\n * @returns {HTMLElement[]} subChild - returns the list options that need to provide.\n */\n function createListItemFromArray(createElement, dataSource, \n // eslint-disable-next-line\n isSingleLevel, options, componentInstance) {\n var subChild = [];\n var curOpt = extend({}, defaultListBaseOptions, options);\n cssClass = getModuleClass(curOpt.moduleName);\n var id = generateId(); // generate id for drop-down-list option.\n for (var i = 0; i < dataSource.length; i++) {\n if (isNullOrUndefined(dataSource[i])) {\n continue;\n }\n var li = void 0;\n if (curOpt.itemCreating && typeof curOpt.itemCreating === 'function') {\n var curData = {\n dataSource: dataSource,\n curData: dataSource[i],\n text: dataSource[i],\n options: curOpt\n };\n curOpt.itemCreating(curData);\n }\n if (isSingleLevel) {\n li = generateSingleLevelLI(createElement, dataSource[i], undefined, null, null, [], null, id, i, options);\n }\n else {\n li = generateLI(createElement, dataSource[i], undefined, null, null, options, componentInstance);\n }\n if (curOpt.itemCreated && typeof curOpt.itemCreated === 'function') {\n var curData = {\n dataSource: dataSource,\n curData: dataSource[i],\n text: dataSource[i],\n item: li,\n options: curOpt\n };\n curOpt.itemCreated(curData);\n }\n subChild.push(li);\n }\n return subChild;\n }\n ListBase.createListItemFromArray = createListItemFromArray;\n /**\n * Function helps to created an element list based on array of JSON input .\n *\n * @param {createElementParams} createElement - Specifies an array of JSON data.\n *\n * @param {{Object}[]} dataSource - Specifies an array of JSON data.\n *\n * @param {ListBaseOptions} options? - Specifies the list options that need to provide.\n *\n * @param {boolean} isSingleLevel? - Specifies the list options that need to provide.\n *\n * @param {number} level? - Specifies the list options that need to provide.\n *\n * @param {any} componentInstance? - Specifies the list options that need to provide.\n *\n * @returns {HTMLElement[]} child - returns the list options that need to provide.\n */\n function createListItemFromJson(createElement, dataSource, \n // eslint-disable-next-line\n options, level, isSingleLevel, componentInstance) {\n var curOpt = extend({}, defaultListBaseOptions, options);\n cssClass = getModuleClass(curOpt.moduleName);\n var fields = (componentInstance &&\n (componentInstance.getModuleName() === 'listview' || componentInstance.getModuleName() === 'multiselect'))\n ? curOpt.fields : extend({}, ListBase.defaultMappedFields, curOpt.fields);\n var ariaAttributes = extend({}, defaultAriaAttributes, curOpt.ariaAttributes);\n var id;\n var checkboxElement = [];\n if (level) {\n ariaAttributes.level = level;\n }\n var child = [];\n var li;\n var anchorElement;\n if (dataSource && dataSource.length && !isNullOrUndefined(typeofData(dataSource).item) &&\n // eslint-disable-next-line no-prototype-builtins\n !typeofData(dataSource).item.hasOwnProperty(fields.id)) {\n id = generateId(); // generate id for drop-down-list option.\n }\n for (var i = 0; i < dataSource.length; i++) {\n var fieldData = getFieldValues(dataSource[i], fields);\n if (isNullOrUndefined(dataSource[i])) {\n continue;\n }\n if (curOpt.itemCreating && typeof curOpt.itemCreating === 'function') {\n var curData = {\n dataSource: dataSource,\n curData: dataSource[i],\n text: fieldData[fields.text],\n options: curOpt,\n fields: fields\n };\n curOpt.itemCreating(curData);\n }\n var curItem = dataSource[i];\n if (curOpt.itemCreating && typeof curOpt.itemCreating === 'function') {\n fieldData = getFieldValues(dataSource[i], fields);\n }\n // eslint-disable-next-line no-prototype-builtins\n if (fieldData.hasOwnProperty(fields.id) && !isNullOrUndefined(fieldData[fields.id])) {\n id = fieldData[fields.id];\n }\n var innerEle = [];\n if (curOpt.showCheckBox) {\n if (curOpt.itemNavigable && (fieldData[fields.url] || fieldData[fields.urlAttributes])) {\n checkboxElement.push(createElement('input', { className: cssClass.check, attrs: { type: 'checkbox' } }));\n }\n else {\n innerEle.push(createElement('input', { className: cssClass.check, attrs: { type: 'checkbox' } }));\n }\n }\n if (isSingleLevel === true) {\n // eslint-disable-next-line no-prototype-builtins\n if (curOpt.showIcon && fieldData.hasOwnProperty(fields.iconCss) && !isNullOrUndefined(fieldData[fields.iconCss])) {\n innerEle.push(createElement('span', { className: cssClass.icon + ' ' + fieldData[fields.iconCss] }));\n }\n li = generateSingleLevelLI(createElement, curItem, fieldData, fields, curOpt.itemClass, innerEle, \n // eslint-disable-next-line no-prototype-builtins\n (curItem.hasOwnProperty('isHeader') &&\n curItem.isHeader) ? true : false, id, i, options);\n anchorElement = li.querySelector('.' + cssClass.anchorWrap);\n if (curOpt.itemNavigable && checkboxElement.length) {\n prepend(checkboxElement, li.firstElementChild);\n }\n }\n else {\n li = generateLI(createElement, curItem, fieldData, fields, curOpt.itemClass, options, componentInstance);\n li.classList.add(cssClass.level + '-' + ariaAttributes.level);\n li.setAttribute('aria-level', ariaAttributes.level.toString());\n if (ariaAttributes.groupItemRole == 'presentation') {\n li.removeAttribute('aria-level');\n }\n anchorElement = li.querySelector('.' + cssClass.anchorWrap);\n // eslint-disable-next-line no-prototype-builtins\n if (fieldData.hasOwnProperty(fields.tooltip)) {\n li.setAttribute('title', fieldData[fields.tooltip]);\n }\n // eslint-disable-next-line no-prototype-builtins\n if (fieldData.hasOwnProperty(fields.htmlAttributes) && fieldData[fields.htmlAttributes]) {\n setAttribute(li, fieldData[fields.htmlAttributes]);\n }\n // eslint-disable-next-line no-prototype-builtins\n if (fieldData.hasOwnProperty(fields.enabled) && fieldData[fields.enabled] === false) {\n li.classList.add(cssClass.disabled);\n }\n // eslint-disable-next-line no-prototype-builtins\n if (fieldData.hasOwnProperty(fields.isVisible) && fieldData[fields.isVisible] === false) {\n li.style.display = 'none';\n }\n // eslint-disable-next-line no-prototype-builtins\n if (fieldData.hasOwnProperty(fields.imageUrl) && !isNullOrUndefined(fieldData[fields.imageUrl])\n && !curOpt.template) {\n var attr = { src: fieldData[fields.imageUrl] };\n merge(attr, fieldData[fields.imageAttributes]);\n var imageElemnt = createElement('img', { className: cssClass.image, attrs: attr });\n if (anchorElement) {\n anchorElement.insertAdjacentElement('afterbegin', imageElemnt);\n }\n else {\n prepend([imageElemnt], li.firstElementChild);\n }\n }\n // eslint-disable-next-line no-prototype-builtins\n if (curOpt.showIcon && fieldData.hasOwnProperty(fields.iconCss) &&\n !isNullOrUndefined(fieldData[fields.iconCss]) && !curOpt.template) {\n var iconElement = createElement('div', { className: cssClass.icon + ' ' + fieldData[fields.iconCss] });\n if (anchorElement) {\n anchorElement.insertAdjacentElement('afterbegin', iconElement);\n }\n else {\n prepend([iconElement], li.firstElementChild);\n }\n }\n if (innerEle.length) {\n prepend(innerEle, li.firstElementChild);\n }\n if (curOpt.itemNavigable && checkboxElement.length) {\n prepend(checkboxElement, li.firstElementChild);\n }\n processSubChild(createElement, fieldData, fields, dataSource, curOpt, li, ariaAttributes.level);\n }\n if (anchorElement) {\n addClass([li], [cssClass.navigable]);\n }\n if (curOpt.itemCreated && typeof curOpt.itemCreated === 'function') {\n var curData = {\n dataSource: dataSource,\n curData: dataSource[i],\n text: fieldData[fields.text],\n item: li,\n options: curOpt,\n fields: fields\n };\n curOpt.itemCreated(curData);\n }\n checkboxElement = [];\n child.push(li);\n }\n return child;\n }\n ListBase.createListItemFromJson = createListItemFromJson;\n /**\n * Function helps to created an element list based on array of JSON input .\n *\n * @param {createElementParams} createElement - Specifies an array of JSON data.\n *\n * @param {{Object}[]} dataSource - Specifies an array of JSON data.\n *\n * @param {ListBaseOptions} options? - Specifies the list options that need to provide.\n *\n * @param {number} level? - Specifies the list options that need to provide.\n *\n * @param {boolean} isSingleLevel? - Specifies the list options that need to provide.\n *\n * @param {any} componentInstance? - Specifies the list options that need to provide.\n *\n * @returns {createElement} generateUL - Specifies the list options that need to provide.\n */\n function createListFromJson(createElement, dataSource, \n // eslint-disable-next-line\n options, level, isSingleLevel, componentInstance) {\n var curOpt = extend({}, defaultListBaseOptions, options);\n var li = createListItemFromJson(createElement, dataSource, options, level, isSingleLevel, componentInstance);\n return generateUL(createElement, li, curOpt.listClass, options);\n }\n ListBase.createListFromJson = createListFromJson;\n /**\n * Return the next or previous visible element.\n *\n * @param {Element[]|NodeList} elementArray - An element array to find next or previous element.\n * @param {Element} li - An element to find next or previous after this element.\n * @param {boolean} isPrevious? - Specify when the need get previous element from array.\n */\n function getSiblingLI(elementArray, element, isPrevious) {\n cssClass = getModuleClass(defaultListBaseOptions.moduleName);\n if (!elementArray || !elementArray.length) {\n return void 0;\n }\n var siblingLI;\n var liIndex;\n var liCollections = Array.prototype.slice.call(elementArray);\n if (element) {\n liIndex = indexOf(element, liCollections);\n }\n else {\n liIndex = (isPrevious === true ? liCollections.length : -1);\n }\n siblingLI = liCollections[liIndex + (isPrevious === true ? -1 : 1)];\n while (siblingLI && (!isVisible(siblingLI) || siblingLI.classList.contains(cssClass.disabled))) {\n liIndex = liIndex + (isPrevious === true ? -1 : 1);\n siblingLI = liCollections[liIndex];\n }\n return siblingLI;\n }\n ListBase.getSiblingLI = getSiblingLI;\n /**\n * Return the index of the li element\n *\n * @param {Element} item - An element to find next or previous after this element.\n * @param {Element[]} elementArray - An element array to find index of given li.\n */\n function indexOf(item, elementArray) {\n if (!elementArray || !item) {\n return void 0;\n }\n else {\n var liCollections = elementArray;\n liCollections = Array.prototype.slice.call(elementArray);\n return liCollections.indexOf(item);\n }\n }\n ListBase.indexOf = indexOf;\n /**\n * Returns the grouped data from given dataSource.\n *\n * @param {{Object}[]} dataSource - The JSON data which is necessary to process.\n * @param {FieldsMapping} fields - Fields that are mapped from the data source.\n * @param {SortOrder} sortOrder- Specifies final result sort order.\n */\n function groupDataSource(dataSource, fields, sortOrder) {\n if (sortOrder === void 0) { sortOrder = 'None'; }\n var curFields = extend({}, ListBase.defaultMappedFields, fields);\n var cusQuery = new Query().group(curFields.groupBy);\n // need to remove once sorting issues fixed in DataManager\n cusQuery = addSorting(sortOrder, 'key', cusQuery);\n var ds = getDataSource(dataSource, cusQuery);\n dataSource = [];\n for (var j = 0; j < ds.length; j++) {\n var itemObj = ds[j].items;\n var grpItem = {};\n var hdr = 'isHeader';\n grpItem[curFields.text] = ds[j].key;\n grpItem[\"\" + hdr] = true;\n var newtext = curFields.text;\n if (newtext === 'id') {\n newtext = 'text';\n grpItem[\"\" + newtext] = ds[j].key;\n }\n grpItem._id = 'group-list-item-' + (ds[j].key ?\n ds[j].key.toString().trim() : 'undefined');\n grpItem.items = itemObj;\n dataSource.push(grpItem);\n for (var k = 0; k < itemObj.length; k++) {\n dataSource.push(itemObj[k]);\n }\n }\n return dataSource;\n }\n ListBase.groupDataSource = groupDataSource;\n /**\n * Returns a sorted query object.\n *\n * @param {SortOrder} sortOrder - Specifies that sort order.\n * @param {string} sortBy - Specifies sortBy fields.\n * @param {Query} query - Pass if any existing query.\n */\n function addSorting(sortOrder, sortBy, query) {\n if (query === void 0) { query = new Query(); }\n if (sortOrder === 'Ascending') {\n query.sortBy(sortBy, 'ascending', true);\n }\n else if (sortOrder === 'Descending') {\n query.sortBy(sortBy, 'descending', true);\n }\n else {\n for (var i = 0; i < query.queries.length; i++) {\n if (query.queries[i].fn === 'onSortBy') {\n query.queries.splice(i, 1);\n }\n }\n }\n return query;\n }\n ListBase.addSorting = addSorting;\n /**\n * Return an array of JSON Data that processed based on queries.\n *\n * @param {{Object}[]} dataSource - Specifies local JSON data source.\n *\n * @param {Query} query - Specifies query that need to process.\n */\n function getDataSource(dataSource, query) {\n // eslint-disable-next-line\n return new DataManager(dataSource)\n .executeLocal(query);\n }\n ListBase.getDataSource = getDataSource;\n /**\n * Created JSON data based the UL and LI element\n *\n * @param {HTMLElement|Element} element - UL element that need to convert as a JSON\n * @param {ListBaseOptions} options? - Specifies listbase option for fields.\n */\n function createJsonFromElement(element, options) {\n var curOpt = extend({}, defaultListBaseOptions, options);\n var fields = extend({}, ListBase.defaultMappedFields, curOpt.fields);\n var curEle = element.cloneNode(true);\n // eslint-disable-next-line\n var jsonAr = [];\n curEle.classList.add('json-parent');\n var childs = curEle.querySelectorAll('.json-parent>li');\n curEle.classList.remove('json-parent');\n for (var i = 0; i < childs.length; i++) {\n var li = childs[i];\n var anchor = li.querySelector('a');\n var ul = li.querySelector('ul');\n // eslint-disable-next-line\n var json = {};\n var childNodes = anchor ? anchor.childNodes : li.childNodes;\n var keys = Object.keys(childNodes);\n for (var i_1 = 0; i_1 < childNodes.length; i_1++) {\n if (!(childNodes[Number(keys[i_1])]).hasChildNodes()) {\n json[fields.text] = childNodes[Number(keys[i_1])].textContent;\n }\n }\n var attributes_1 = getAllAttributes(li);\n if (attributes_1.id) {\n json[fields.id] = attributes_1.id;\n delete attributes_1.id;\n }\n else {\n json[fields.id] = generateId();\n }\n if (Object.keys(attributes_1).length) {\n json[fields.htmlAttributes] = attributes_1;\n }\n if (anchor) {\n attributes_1 = getAllAttributes(anchor);\n if (Object.keys(attributes_1).length) {\n json[fields.urlAttributes] = attributes_1;\n }\n }\n if (ul) {\n json[fields.child] = createJsonFromElement(ul, options);\n }\n jsonAr.push(json);\n }\n return jsonAr;\n }\n ListBase.createJsonFromElement = createJsonFromElement;\n function typeofData(data) {\n var match = { typeof: null, item: null };\n for (var i = 0; i < data.length; i++) {\n if (!isNullOrUndefined(data[i])) {\n return match = { typeof: typeof data[i], item: data[i] };\n }\n }\n return match;\n }\n function setAttribute(element, elementAttributes) {\n var attr = {};\n merge(attr, elementAttributes);\n if (attr.class) {\n addClass([element], attr.class.split(' '));\n delete attr.class;\n }\n attributes(element, attr);\n }\n function getAllAttributes(element) {\n var attributes = {};\n var attr = element.attributes;\n for (var index = 0; index < attr.length; index++) {\n attributes[attr[index].nodeName] = attr[index].nodeValue;\n }\n return attributes;\n }\n /**\n * Created UL element from content template.\n *\n * @param {string} template - that need to convert and generate li element.\n * @param {{Object}[]} dataSource - Specifies local JSON data source.\n * @param {ListBaseOptions} options? - Specifies listbase option for fields.\n */\n function renderContentTemplate(createElement, template, dataSource, \n // eslint-disable-next-line\n fields, options, componentInstance) {\n cssClass = getModuleClass(defaultListBaseOptions.moduleName);\n var ulElement = createElement('ul', { className: cssClass.ul, attrs: { role: 'presentation' } });\n var curOpt = extend({}, defaultListBaseOptions, options);\n var curFields = extend({}, ListBase.defaultMappedFields, fields);\n // eslint-disable-next-line\n var compiledString = compileTemplate(template);\n var liCollection = [];\n var value;\n var id = generateId(); // generate id for drop-down-list option.\n for (var i = 0; i < dataSource.length; i++) {\n var fieldData = getFieldValues(dataSource[i], curFields);\n var curItem = dataSource[i];\n var isHeader = curItem.isHeader;\n if (typeof dataSource[i] === 'string' || typeof dataSource[i] === 'number') {\n value = curItem;\n }\n else {\n value = fieldData[curFields.value];\n }\n if (curOpt.itemCreating && typeof curOpt.itemCreating === 'function') {\n var curData = {\n dataSource: dataSource,\n curData: curItem,\n text: value,\n options: curOpt,\n fields: curFields\n };\n curOpt.itemCreating(curData);\n }\n if (curOpt.itemCreating && typeof curOpt.itemCreating === 'function') {\n fieldData = getFieldValues(dataSource[i], curFields);\n if (typeof dataSource[i] === 'string' || typeof dataSource[i] === 'number') {\n value = curItem;\n }\n else {\n value = fieldData[curFields.value];\n }\n }\n var li = createElement('li', {\n id: id + '-' + i,\n className: isHeader ? cssClass.group : cssClass.li, attrs: { role: 'presentation' }\n });\n if (isHeader) {\n if (typeof dataSource[i] === 'string' || typeof dataSource[i] === 'number') {\n li.innerText = curItem;\n }\n else {\n li.innerText = fieldData[curFields.text];\n }\n }\n else {\n var currentID = isHeader ? curOpt.groupTemplateID : curOpt.templateID;\n if (isHeader) {\n if (componentInstance && componentInstance.getModuleName() != 'listview') {\n // eslint-disable-next-line\n var compiledElement = compiledString(curItem, componentInstance, 'headerTemplate', currentID, !!curOpt.isStringTemplate, null, li);\n if (compiledElement) {\n append(compiledElement, li);\n }\n }\n else {\n append(compiledString(curItem, componentInstance, 'headerTemplate', currentID, !!curOpt.isStringTemplate), li);\n }\n }\n else {\n if (componentInstance && componentInstance.getModuleName() !== 'listview') {\n // eslint-disable-next-line\n var compiledElement = compiledString(curItem, componentInstance, 'template', currentID, !!curOpt.isStringTemplate, null, li);\n if (compiledElement) {\n append(compiledElement, li);\n }\n }\n else {\n append(compiledString(curItem, componentInstance, 'template', currentID, !!curOpt.isStringTemplate), li);\n }\n }\n li.setAttribute('data-value', isNullOrUndefined(value) ? 'null' : value);\n li.setAttribute('role', 'option');\n }\n if (curOpt.itemCreated && typeof curOpt.itemCreated === 'function') {\n var curData = {\n dataSource: dataSource,\n curData: curItem,\n text: value,\n item: li,\n options: curOpt,\n fields: curFields\n };\n curOpt.itemCreated(curData);\n }\n liCollection.push(li);\n }\n append(liCollection, ulElement);\n return ulElement;\n }\n ListBase.renderContentTemplate = renderContentTemplate;\n /**\n * Created header items from group template.\n *\n * @param {string} template - that need to convert and generate li element.\n *\n * @param {{Object}[]} dataSource - Specifies local JSON data source.\n *\n * @param {FieldsMapping} fields - Specifies fields for mapping the dataSource.\n *\n * @param {Element[]} headerItems? - Specifies listbase header items.\n */\n // tslint:disable-next-line\n function renderGroupTemplate(groupTemplate, groupDataSource, fields, \n // eslint-disable-next-line\n headerItems, options, componentInstance) {\n // eslint-disable-next-line @typescript-eslint/ban-types\n var compiledString = compileTemplate(groupTemplate);\n var curFields = extend({}, ListBase.defaultMappedFields, fields);\n var curOpt = extend({}, defaultListBaseOptions, options);\n var category = curFields.groupBy;\n for (var _i = 0, headerItems_1 = headerItems; _i < headerItems_1.length; _i++) {\n var header = headerItems_1[_i];\n var headerData = {};\n headerData[\"\" + category] = header.textContent;\n header.innerHTML = '';\n if (componentInstance && componentInstance.getModuleName() !== \"listview\") {\n // eslint-disable-next-line\n var compiledElement = compiledString(headerData, componentInstance, 'groupTemplate', curOpt.groupTemplateID, !!curOpt.isStringTemplate, null, header);\n if (compiledElement) {\n append(compiledElement, header);\n }\n }\n else {\n append(compiledString(headerData, componentInstance, 'groupTemplate', curOpt.groupTemplateID, !!curOpt.isStringTemplate), header);\n }\n }\n return headerItems;\n }\n ListBase.renderGroupTemplate = renderGroupTemplate;\n function generateId() {\n return Math.floor((1 + Math.random()) * 0x10000)\n .toString(16)\n .substring(1);\n }\n ListBase.generateId = generateId;\n function processSubChild(createElement, fieldData, fields, ds, options, element, level) {\n // Get SubList\n var subDS = fieldData[fields.child] || [];\n var hasChildren = fieldData[fields.hasChildren];\n //Create Sub child\n if (subDS.length) {\n hasChildren = true;\n element.classList.add(cssClass.hasChild);\n if (options.processSubChild) {\n var subLi = createListFromJson(createElement, subDS, options, ++level);\n element.appendChild(subLi);\n }\n }\n // Create expand and collapse node\n if (!!options.expandCollapse && hasChildren && !options.template) {\n element.firstElementChild.classList.add(cssClass.iconWrapper);\n // eslint-disable-next-line @typescript-eslint/ban-types\n var expandElement = options.expandIconPosition === 'Left' ? prepend : append;\n expandElement([createElement('div', { className: 'e-icons ' + options.expandIconClass })], element.querySelector('.' + cssClass.textContent));\n }\n }\n function generateSingleLevelLI(createElement, item, fieldData, fields, className, innerElements, grpLI, id, index, options) {\n var curOpt = extend({}, defaultListBaseOptions, options);\n var ariaAttributes = extend({}, defaultAriaAttributes, curOpt.ariaAttributes);\n var text = item;\n var value = item;\n var dataSource;\n if (typeof item !== 'string' && typeof item !== 'number' && typeof item !== 'boolean') {\n dataSource = item;\n text = (typeof fieldData[fields.text] === 'boolean' || typeof fieldData[fields.text] === 'number') ?\n fieldData[fields.text] : (fieldData[fields.text] || '');\n value = fieldData[fields.value];\n }\n var elementID;\n if (!isNullOrUndefined(dataSource) && !isNullOrUndefined(fieldData[fields.id])\n && fieldData[fields.id] !== '') {\n elementID = id;\n }\n else {\n elementID = id + '-' + index;\n }\n var li = createElement('li', {\n className: (grpLI === true ? cssClass.group : cssClass.li) + ' ' + (isNullOrUndefined(className) ? '' : className),\n id: elementID, attrs: (ariaAttributes.groupItemRole !== '' && ariaAttributes.itemRole !== '' ?\n { role: (grpLI === true ? ariaAttributes.groupItemRole : ariaAttributes.itemRole) } : {})\n });\n // eslint-disable-next-line no-prototype-builtins\n if (dataSource && fieldData.hasOwnProperty(fields.enabled) && fieldData[fields.enabled].toString() === 'false') {\n li.classList.add(cssClass.disabled);\n }\n if (grpLI) {\n li.innerText = text;\n }\n else {\n li.setAttribute('data-value', isNullOrUndefined(value) ? 'null' : value);\n li.setAttribute('role', 'option');\n // eslint-disable-next-line no-prototype-builtins\n if (dataSource && fieldData.hasOwnProperty(fields.htmlAttributes) && fieldData[fields.htmlAttributes]) {\n setAttribute(li, fieldData[fields.htmlAttributes]);\n }\n if (innerElements.length && !curOpt.itemNavigable) {\n append(innerElements, li);\n }\n if (dataSource && (fieldData[fields.url] || (fieldData[fields.urlAttributes] &&\n fieldData[fields.urlAttributes].href))) {\n li.appendChild(anchorTag(createElement, dataSource, fields, text, innerElements, curOpt.itemNavigable));\n }\n else {\n if (innerElements.length && curOpt.itemNavigable) {\n append(innerElements, li);\n }\n li.appendChild(document.createTextNode(text));\n }\n }\n return li;\n }\n function getModuleClass(moduleName) {\n var moduleClass;\n // eslint-disable-next-line\n return moduleClass = {\n li: \"e-\" + moduleName + \"-item\",\n ul: \"e-\" + moduleName + \"-parent e-ul\",\n group: \"e-\" + moduleName + \"-group-item\",\n icon: \"e-\" + moduleName + \"-icon\",\n text: \"e-\" + moduleName + \"-text\",\n check: \"e-\" + moduleName + \"-check\",\n checked: 'e-checked',\n selected: 'e-selected',\n expanded: 'e-expanded',\n textContent: 'e-text-content',\n hasChild: 'e-has-child',\n level: 'e-level',\n url: \"e-\" + moduleName + \"-url\",\n collapsible: 'e-icon-collapsible',\n disabled: 'e-disabled',\n image: \"e-\" + moduleName + \"-img\",\n iconWrapper: 'e-icon-wrapper',\n anchorWrap: 'e-anchor-wrap',\n navigable: 'e-navigable'\n };\n }\n function anchorTag(createElement, dataSource, fields, text, innerElements, isFullNavigation) {\n var fieldData = getFieldValues(dataSource, fields);\n var attr = { href: fieldData[fields.url] };\n // eslint-disable-next-line no-prototype-builtins\n if (fieldData.hasOwnProperty(fields.urlAttributes) && fieldData[fields.urlAttributes]) {\n merge(attr, fieldData[fields.urlAttributes]);\n attr.href = fieldData[fields.url] ? fieldData[fields.url] :\n fieldData[fields.urlAttributes].href;\n }\n var anchorTag;\n if (!isFullNavigation) {\n anchorTag = createElement('a', { className: cssClass.text + ' ' + cssClass.url, innerHTML: text });\n }\n else {\n anchorTag = createElement('a', { className: cssClass.text + ' ' + cssClass.url });\n var anchorWrapper = createElement('div', { className: cssClass.anchorWrap });\n if (innerElements && innerElements.length) {\n append(innerElements, anchorWrapper);\n }\n anchorWrapper.appendChild(document.createTextNode(text));\n append([anchorWrapper], anchorTag);\n }\n setAttribute(anchorTag, attr);\n return anchorTag;\n }\n // tslint:disable-next-line\n /* tslint:disable:align */\n function generateLI(createElement, item, fieldData, \n // eslint-disable-next-line\n fields, className, options, componentInstance) {\n var curOpt = extend({}, defaultListBaseOptions, options);\n var ariaAttributes = extend({}, defaultAriaAttributes, curOpt.ariaAttributes);\n var text = item;\n var uID;\n var grpLI;\n var dataSource;\n if (typeof item !== 'string' && typeof item !== 'number') {\n dataSource = item;\n text = fieldData[fields.text] || '';\n // tslint:disable-next-line\n uID = (isNullOrUndefined(fieldData['_id'])) ? fieldData[fields.id] : fieldData['_id'];\n // eslint-disable-next-line no-prototype-builtins\n grpLI = (item.hasOwnProperty('isHeader') && item.isHeader)\n ? true : false;\n }\n if (options && options.enableHtmlSanitizer) {\n // eslint-disable-next-line no-self-assign\n text = text;\n }\n var li = createElement('li', {\n className: (grpLI === true ? cssClass.group : cssClass.li) + ' ' + (isNullOrUndefined(className) ? '' : className),\n attrs: (ariaAttributes.groupItemRole !== '' && ariaAttributes.itemRole !== '' ?\n { role: (grpLI === true ? ariaAttributes.groupItemRole : ariaAttributes.itemRole) } : {})\n });\n if (!isNullOrUndefined(uID) === true) {\n li.setAttribute('data-uid', uID);\n }\n else {\n li.setAttribute('data-uid', generateId());\n }\n if (grpLI && options && options.groupTemplate) {\n // eslint-disable-next-line @typescript-eslint/ban-types\n var compiledString = compileTemplate(options.groupTemplate);\n if (componentInstance && componentInstance.getModuleName() !== \"listview\") {\n // eslint-disable-next-line\n var compiledElement = compiledString(item, componentInstance, 'groupTemplate', curOpt.groupTemplateID, !!curOpt.isStringTemplate, null, li);\n if (compiledElement) {\n append(compiledElement, li);\n }\n }\n else {\n append(compiledString(item, componentInstance, 'groupTemplate', curOpt.groupTemplateID, !!curOpt.isStringTemplate), li);\n }\n }\n else if (!grpLI && options && options.template) {\n // eslint-disable-next-line @typescript-eslint/ban-types\n var compiledString = compileTemplate(options.template);\n if (componentInstance && componentInstance.getModuleName() !== 'listview') {\n // eslint-disable-next-line\n var compiledElement = compiledString(item, componentInstance, 'template', curOpt.templateID, !!curOpt.isStringTemplate, null, li);\n if (compiledElement) {\n append(compiledElement, li);\n }\n }\n else {\n append(compiledString(item, componentInstance, 'template', curOpt.templateID, !!curOpt.isStringTemplate), li);\n }\n }\n else {\n var innerDiv = createElement('div', {\n className: cssClass.textContent,\n attrs: (ariaAttributes.wrapperRole !== '' ? { role: ariaAttributes.wrapperRole } : {})\n });\n if (dataSource && (fieldData[fields.url] || (fieldData[fields.urlAttributes] &&\n fieldData[fields.urlAttributes].href))) {\n innerDiv.appendChild(anchorTag(createElement, dataSource, fields, text, null, curOpt.itemNavigable));\n }\n else {\n var element = createElement('span', {\n className: cssClass.text,\n attrs: (ariaAttributes.itemText !== '' ? { role: ariaAttributes.itemText } : {})\n });\n if (options && options.enableHtmlSanitizer) {\n element.innerText = text;\n }\n else {\n element.innerHTML = text;\n }\n innerDiv.appendChild(element);\n }\n li.appendChild(innerDiv);\n }\n return li;\n }\n /**\n * Returns UL element based on the given LI element.\n *\n * @param {HTMLElement[]} liElement - Specifies array of LI element.\n *\n * @param {string} className? - Specifies class name that need to be added in UL element.\n *\n * @param {ListBaseOptions} options? - Specifies ListBase options.\n */\n function generateUL(createElement, liElement, className, options) {\n var curOpt = extend({}, defaultListBaseOptions, options);\n var ariaAttributes = extend({}, defaultAriaAttributes, curOpt.ariaAttributes);\n cssClass = getModuleClass(curOpt.moduleName);\n var ulElement = createElement('ul', {\n className: cssClass.ul + ' ' + (isNullOrUndefined(className) ? '' : className),\n attrs: (ariaAttributes.listRole !== '' ? { role: ariaAttributes.listRole } : {})\n });\n append(liElement, ulElement);\n return ulElement;\n }\n ListBase.generateUL = generateUL;\n /**\n * Returns LI element with additional DIV tag based on the given LI element.\n *\n * @param {liElement} liElement - Specifies LI element.\n *\n * @param {string} className? - Specifies class name that need to be added in created DIV element.\n *\n * @param {ListBaseOptions} options? - Specifies ListBase options.\n */\n function generateIcon(createElement, liElement, className, options) {\n var curOpt = extend({}, defaultListBaseOptions, options);\n cssClass = getModuleClass(curOpt.moduleName);\n // eslint-disable-next-line @typescript-eslint/ban-types\n var expandElement = curOpt.expandIconPosition === 'Left' ? prepend : append;\n expandElement([createElement('div', {\n className: 'e-icons ' + curOpt.expandIconClass + ' ' +\n (isNullOrUndefined(className) ? '' : className)\n })], liElement.querySelector('.' + cssClass.textContent));\n return liElement;\n }\n ListBase.generateIcon = generateIcon;\n})(ListBase || (ListBase = {}));\n/**\n * Used to get dataSource item from complex data using fields.\n *\n * @param {Object} dataSource - Specifies an JSON or String data.\n *\n * @param {FieldsMapping} fields - Fields that are mapped from the dataSource.\n */\nexport function getFieldValues(dataItem, fields) {\n var fieldData = {};\n if (isNullOrUndefined(dataItem) || typeof (dataItem) === 'string' || typeof (dataItem) === 'number'\n || !isNullOrUndefined(dataItem.isHeader)) {\n return dataItem;\n }\n else {\n for (var _i = 0, _a = Object.keys(fields); _i < _a.length; _i++) {\n var field = _a[_i];\n var dataField = fields[\"\" + field];\n var value = !isNullOrUndefined(dataField) &&\n typeof (dataField) === 'string' ? getValue(dataField, dataItem) : undefined;\n if (!isNullOrUndefined(value)) {\n fieldData[\"\" + dataField] = value;\n }\n }\n }\n return fieldData;\n}\nfunction compileTemplate(template) {\n if (template) {\n try {\n if (document.querySelector(template)) {\n return compile(document.querySelector(template).innerHTML.trim());\n }\n else {\n return compile(template);\n }\n }\n catch (e) {\n return compile(template);\n }\n }\n return undefined;\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { merge, extend, isNullOrUndefined, setValue, getValue } from '@syncfusion/ej2-base';\nimport { DataUtil } from './util';\nimport { Query, Predicate } from './query';\nvar consts = { GroupGuid: '{271bbba0-1ee7}' };\n/**\n * Adaptors are specific data source type aware interfaces that are used by DataManager to communicate with DataSource.\n * This is the base adaptor class that other adaptors can extend.\n *\n * @hidden\n */\nvar Adaptor = /** @class */ (function () {\n /**\n * Constructor for Adaptor class\n *\n * @param {DataOptions} ds?\n * @param ds\n * @hidden\n * @returns aggregates\n */\n function Adaptor(ds) {\n // common options for all the adaptors\n this.options = {\n from: 'table',\n requestType: 'json',\n sortBy: 'sorted',\n select: 'select',\n skip: 'skip',\n group: 'group',\n take: 'take',\n search: 'search',\n count: 'requiresCounts',\n where: 'where',\n aggregates: 'aggregates',\n expand: 'expand'\n };\n /**\n * Specifies the type of adaptor.\n *\n * @default Adaptor\n */\n this.type = Adaptor;\n this.dataSource = ds;\n this.pvt = {};\n }\n /**\n * Returns the data from the query processing.\n *\n * @param {Object} data\n * @param {DataOptions} ds?\n * @param {Query} query?\n * @param {XMLHttpRequest} xhr?\n * @param ds\n * @param query\n * @param xhr\n * @returns Object\n */\n Adaptor.prototype.processResponse = function (data, ds, query, xhr) {\n return data;\n };\n return Adaptor;\n}());\nexport { Adaptor };\n/**\n * JsonAdaptor is used to process JSON data. It contains methods to process the given JSON data based on the queries.\n *\n * @hidden\n */\nvar JsonAdaptor = /** @class */ (function (_super) {\n __extends(JsonAdaptor, _super);\n function JsonAdaptor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Process the JSON data based on the provided queries.\n *\n * @param {DataManager} dataManager\n * @param {Query} query\n * @returns Object\n */\n JsonAdaptor.prototype.processQuery = function (dataManager, query) {\n var result = dataManager.dataSource.json.slice(0);\n var count = result.length;\n var countFlg = true;\n var ret;\n var key;\n var lazyLoad = {};\n var keyCount = 0;\n var group = [];\n var page;\n for (var i = 0; i < query.lazyLoad.length; i++) {\n keyCount++;\n lazyLoad[query.lazyLoad[i].key] = query.lazyLoad[i].value;\n }\n var agg = {};\n for (var i = 0; i < query.queries.length; i++) {\n key = query.queries[i];\n if ((key.fn === 'onPage' || key.fn === 'onGroup') && query.lazyLoad.length) {\n if (key.fn === 'onGroup') {\n group.push(key.e);\n }\n if (key.fn === 'onPage') {\n page = key.e;\n }\n continue;\n }\n ret = this[key.fn].call(this, result, key.e, query);\n if (key.fn === 'onAggregates') {\n agg[key.e.field + ' - ' + key.e.type] = ret;\n }\n else {\n result = ret !== undefined ? ret : result;\n }\n if (key.fn === 'onPage' || key.fn === 'onSkip' || key.fn === 'onTake' || key.fn === 'onRange') {\n countFlg = false;\n }\n if (countFlg) {\n count = result.length;\n }\n }\n if (keyCount) {\n var args = {\n query: query, lazyLoad: lazyLoad, result: result, group: group, page: page\n };\n var lazyLoadData = this.lazyLoadGroup(args);\n result = lazyLoadData.result;\n count = lazyLoadData.count;\n }\n if (query.isCountRequired) {\n result = {\n result: result,\n count: count,\n aggregates: agg\n };\n }\n return result;\n };\n /**\n * Perform lazy load grouping in JSON array based on the given query and lazy load details.\n *\n * @param {LazyLoadGroupArgs} args\n */\n JsonAdaptor.prototype.lazyLoadGroup = function (args) {\n var count = 0;\n var agg = this.getAggregate(args.query);\n var result = args.result;\n if (!isNullOrUndefined(args.lazyLoad.onDemandGroupInfo)) {\n var req = args.lazyLoad.onDemandGroupInfo;\n for (var i = req.where.length - 1; i >= 0; i--) {\n result = this.onWhere(result, req.where[i]);\n }\n if (args.group.length !== req.level) {\n var field = args.group[req.level].fieldName;\n result = DataUtil.group(result, field, agg, null, null, args.group[0].comparer, true);\n }\n count = result.length;\n var data = result;\n result = result.slice(req.skip);\n result = result.slice(0, req.take);\n if (args.group.length !== req.level) {\n this.formGroupResult(result, data);\n }\n }\n else {\n var field = args.group[0].fieldName;\n result = DataUtil.group(result, field, agg, null, null, args.group[0].comparer, true);\n count = result.length;\n var data = result;\n if (args.page) {\n result = this.onPage(result, args.page, args.query);\n }\n this.formGroupResult(result, data);\n }\n return { result: result, count: count };\n };\n JsonAdaptor.prototype.formGroupResult = function (result, data) {\n if (result.length && data.length) {\n var uid = 'GroupGuid';\n var childLevel = 'childLevels';\n var level = 'level';\n var records = 'records';\n result[uid] = data[uid];\n result[childLevel] = data[childLevel];\n result[level] = data[level];\n result[records] = data[records];\n }\n return result;\n };\n /**\n * Separate the aggregate query from the given queries\n *\n * @param {Query} query\n */\n JsonAdaptor.prototype.getAggregate = function (query) {\n var aggQuery = Query.filterQueries(query.queries, 'onAggregates');\n var agg = [];\n if (aggQuery.length) {\n var tmp = void 0;\n for (var i = 0; i < aggQuery.length; i++) {\n tmp = aggQuery[i].e;\n agg.push({ type: tmp.type, field: DataUtil.getValue(tmp.field, query) });\n }\n }\n return agg;\n };\n /**\n * Performs batch update in the JSON array which add, remove and update records.\n *\n * @param {DataManager} dm\n * @param {CrudOptions} changes\n * @param {RemoteArgs} e\n */\n JsonAdaptor.prototype.batchRequest = function (dm, changes, e) {\n var i;\n var deletedRecordsLen = changes.deletedRecords.length;\n for (i = 0; i < changes.addedRecords.length; i++) {\n this.insert(dm, changes.addedRecords[i]);\n }\n for (i = 0; i < changes.changedRecords.length; i++) {\n this.update(dm, e.key, changes.changedRecords[i]);\n }\n for (i = 0; i < deletedRecordsLen; i++) {\n this.remove(dm, e.key, changes.deletedRecords[i]);\n }\n return changes;\n };\n /**\n * Performs filter operation with the given data and where query.\n *\n * @param {Object[]} ds\n * @param {{validate:Function}} e\n * @param e.validate\n */\n JsonAdaptor.prototype.onWhere = function (ds, e) {\n if (!ds || !ds.length) {\n return ds;\n }\n return ds.filter(function (obj) {\n if (e) {\n return e.validate(obj);\n }\n });\n };\n /**\n * Returns aggregate function based on the aggregate type.\n *\n * @param {Object[]} ds\n * @param e\n * @param {string} } type\n * @param e.field\n * @param e.type\n */\n JsonAdaptor.prototype.onAggregates = function (ds, e) {\n var fn = DataUtil.aggregates[e.type];\n if (!ds || !fn || ds.length === 0) {\n return null;\n }\n return fn(ds, e.field);\n };\n /**\n * Performs search operation based on the given query.\n *\n * @param {Object[]} ds\n * @param {QueryOptions} e\n */\n JsonAdaptor.prototype.onSearch = function (ds, e) {\n if (!ds || !ds.length) {\n return ds;\n }\n if (e.fieldNames.length === 0) {\n DataUtil.getFieldList(ds[0], e.fieldNames);\n }\n return ds.filter(function (obj) {\n for (var j = 0; j < e.fieldNames.length; j++) {\n if (e.comparer.call(obj, DataUtil.getObject(e.fieldNames[j], obj), e.searchKey, e.ignoreCase, e.ignoreAccent)) {\n return true;\n }\n }\n return false;\n });\n };\n /**\n * Sort the data with given direction and field.\n *\n * @param {Object[]} ds\n * @param e\n * @param {Object} b\n * @param e.comparer\n * @param e.fieldName\n * @param query\n */\n JsonAdaptor.prototype.onSortBy = function (ds, e, query) {\n if (!ds || !ds.length) {\n return ds;\n }\n var fnCompare;\n var field = DataUtil.getValue(e.fieldName, query);\n if (!field) {\n return ds.sort(e.comparer);\n }\n if (field instanceof Array) {\n field = field.slice(0);\n for (var i = field.length - 1; i >= 0; i--) {\n if (!field[i]) {\n continue;\n }\n fnCompare = e.comparer;\n if (DataUtil.endsWith(field[i], ' desc')) {\n fnCompare = DataUtil.fnSort('descending');\n field[i] = field[i].replace(' desc', '');\n }\n ds = DataUtil.sort(ds, field[i], fnCompare);\n }\n return ds;\n }\n return DataUtil.sort(ds, field, e.comparer);\n };\n /**\n * Group the data based on the given query.\n *\n * @param {Object[]} ds\n * @param {QueryOptions} e\n * @param {Query} query\n */\n JsonAdaptor.prototype.onGroup = function (ds, e, query) {\n if (!ds || !ds.length) {\n return ds;\n }\n var agg = this.getAggregate(query);\n return DataUtil.group(ds, DataUtil.getValue(e.fieldName, query), agg, null, null, e.comparer);\n };\n /**\n * Retrieves records based on the given page index and size.\n *\n * @param {Object[]} ds\n * @param e\n * @param {number} } pageIndex\n * @param e.pageSize\n * @param {Query} query\n * @param e.pageIndex\n */\n JsonAdaptor.prototype.onPage = function (ds, e, query) {\n var size = DataUtil.getValue(e.pageSize, query);\n var start = (DataUtil.getValue(e.pageIndex, query) - 1) * size;\n var end = start + size;\n if (!ds || !ds.length) {\n return ds;\n }\n return ds.slice(start, end);\n };\n /**\n * Retrieves records based on the given start and end index from query.\n *\n * @param {Object[]} ds\n * @param e\n * @param {number} } end\n * @param e.start\n * @param e.end\n */\n JsonAdaptor.prototype.onRange = function (ds, e) {\n if (!ds || !ds.length) {\n return ds;\n }\n return ds.slice(DataUtil.getValue(e.start), DataUtil.getValue(e.end));\n };\n /**\n * Picks the given count of records from the top of the datasource.\n *\n * @param {Object[]} ds\n * @param {{nos:number}} e\n * @param e.nos\n */\n JsonAdaptor.prototype.onTake = function (ds, e) {\n if (!ds || !ds.length) {\n return ds;\n }\n return ds.slice(0, DataUtil.getValue(e.nos));\n };\n /**\n * Skips the given count of records from the data source.\n *\n * @param {Object[]} ds\n * @param {{nos:number}} e\n * @param e.nos\n */\n JsonAdaptor.prototype.onSkip = function (ds, e) {\n if (!ds || !ds.length) {\n return ds;\n }\n return ds.slice(DataUtil.getValue(e.nos));\n };\n /**\n * Selects specified columns from the data source.\n *\n * @param {Object[]} ds\n * @param {{fieldNames:string}} e\n * @param e.fieldNames\n */\n JsonAdaptor.prototype.onSelect = function (ds, e) {\n if (!ds || !ds.length) {\n return ds;\n }\n return DataUtil.select(ds, DataUtil.getValue(e.fieldNames));\n };\n /**\n * Inserts new record in the table.\n *\n * @param {DataManager} dm\n * @param {Object} data\n * @param tableName\n * @param query\n * @param {number} position\n */\n JsonAdaptor.prototype.insert = function (dm, data, tableName, query, position) {\n if (isNullOrUndefined(position)) {\n return dm.dataSource.json.push(data);\n }\n else {\n return dm.dataSource.json.splice(position, 0, data);\n }\n };\n /**\n * Remove the data from the dataSource based on the key field value.\n *\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {Object} value\n * @param {string} tableName?\n * @param tableName\n * @returns null\n */\n JsonAdaptor.prototype.remove = function (dm, keyField, value, tableName) {\n var ds = dm.dataSource.json;\n var i;\n if (typeof value === 'object' && !(value instanceof Date)) {\n value = DataUtil.getObject(keyField, value);\n }\n for (i = 0; i < ds.length; i++) {\n if (DataUtil.getObject(keyField, ds[i]) === value) {\n break;\n }\n }\n return i !== ds.length ? ds.splice(i, 1) : null;\n };\n /**\n * Updates existing record and saves the changes to the table.\n *\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {Object} value\n * @param {string} tableName?\n * @param tableName\n * @returns null\n */\n JsonAdaptor.prototype.update = function (dm, keyField, value, tableName) {\n var ds = dm.dataSource.json;\n var i;\n var key;\n if (!isNullOrUndefined(keyField)) {\n key = getValue(keyField, value);\n }\n for (i = 0; i < ds.length; i++) {\n if (!isNullOrUndefined(keyField) && (getValue(keyField, ds[i])) === key) {\n break;\n }\n }\n return i < ds.length ? merge(ds[i], value) : null;\n };\n return JsonAdaptor;\n}(Adaptor));\nexport { JsonAdaptor };\n/**\n * URL Adaptor of DataManager can be used when you are required to use remote service to retrieve data.\n * It interacts with server-side for all DataManager Queries and CRUD operations.\n *\n * @hidden\n */\nvar UrlAdaptor = /** @class */ (function (_super) {\n __extends(UrlAdaptor, _super);\n function UrlAdaptor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Process the query to generate request body.\n *\n * @param {DataManager} dm\n * @param {Query} query\n * @param {Object[]} hierarchyFilters?\n * @param hierarchyFilters\n * @returns p\n */\n // tslint:disable-next-line:max-func-body-length\n UrlAdaptor.prototype.processQuery = function (dm, query, hierarchyFilters) {\n var queries = this.getQueryRequest(query);\n var singles = Query.filterQueryLists(query.queries, ['onSelect', 'onPage', 'onSkip', 'onTake', 'onRange']);\n var params = query.params;\n var url = dm.dataSource.url;\n var temp;\n var skip;\n var take = null;\n var options = this.options;\n var request = { sorts: [], groups: [], filters: [], searches: [], aggregates: [] };\n // calc Paging & Range\n if ('onPage' in singles) {\n temp = singles.onPage;\n skip = DataUtil.getValue(temp.pageIndex, query);\n take = DataUtil.getValue(temp.pageSize, query);\n skip = (skip - 1) * take;\n }\n else if ('onRange' in singles) {\n temp = singles.onRange;\n skip = temp.start;\n take = temp.end - temp.start;\n }\n // Sorting\n for (var i = 0; i < queries.sorts.length; i++) {\n temp = DataUtil.getValue(queries.sorts[i].e.fieldName, query);\n request.sorts.push(DataUtil.callAdaptorFunction(this, 'onEachSort', { name: temp, direction: queries.sorts[i].e.direction }, query));\n }\n // hierarchy\n if (hierarchyFilters) {\n temp = this.getFiltersFrom(hierarchyFilters, query);\n if (temp) {\n request.filters.push(DataUtil.callAdaptorFunction(this, 'onEachWhere', temp.toJson(), query));\n }\n }\n // Filters\n for (var i = 0; i < queries.filters.length; i++) {\n var res = DataUtil.callAdaptorFunction(this, 'onEachWhere', queries.filters[i].e.toJson(), query);\n if ((this.getModuleName &&\n this.getModuleName() === 'ODataV4Adaptor') &&\n !isNullOrUndefined(queries.filters[i].e.key) && queries.filters.length > 1) {\n res = '(' + res + ')';\n }\n request.filters.push(res);\n var keys_3 = typeof request.filters[i] === 'object' ? Object.keys(request.filters[i]) : [];\n for (var _i = 0, keys_1 = keys_3; _i < keys_1.length; _i++) {\n var prop = keys_1[_i];\n if (DataUtil.isNull((request)[prop])) {\n delete request[prop];\n }\n }\n }\n // Searches\n for (var i = 0; i < queries.searches.length; i++) {\n temp = queries.searches[i].e;\n request.searches.push(DataUtil.callAdaptorFunction(this, 'onEachSearch', {\n fields: temp.fieldNames,\n operator: temp.operator,\n key: temp.searchKey,\n ignoreCase: temp.ignoreCase\n }, query));\n }\n // Grouping\n for (var i = 0; i < queries.groups.length; i++) {\n request.groups.push(DataUtil.getValue(queries.groups[i].e.fieldName, query));\n }\n // aggregates\n for (var i = 0; i < queries.aggregates.length; i++) {\n temp = queries.aggregates[i].e;\n request.aggregates.push({ type: temp.type, field: DataUtil.getValue(temp.field, query) });\n }\n var req = {};\n this.getRequestQuery(options, query, singles, request, req);\n // Params\n DataUtil.callAdaptorFunction(this, 'addParams', { dm: dm, query: query, params: params, reqParams: req });\n if (query.lazyLoad.length) {\n for (var i = 0; i < query.lazyLoad.length; i++) {\n req[query.lazyLoad[i].key] = query.lazyLoad[i].value;\n }\n }\n // cleanup\n var keys = Object.keys(req);\n for (var _a = 0, keys_2 = keys; _a < keys_2.length; _a++) {\n var prop = keys_2[_a];\n if (DataUtil.isNull(req[prop]) || req[prop] === '' || req[prop].length === 0) {\n delete req[prop];\n }\n }\n if (!(options.skip in req && options.take in req) && take !== null) {\n req[options.skip] = DataUtil.callAdaptorFunction(this, 'onSkip', skip, query);\n req[options.take] = DataUtil.callAdaptorFunction(this, 'onTake', take, query);\n }\n var p = this.pvt;\n this.pvt = {};\n if (this.options.requestType === 'json') {\n return {\n data: JSON.stringify(req, DataUtil.parse.jsonDateReplacer),\n url: url,\n pvtData: p,\n type: 'POST',\n contentType: 'application/json; charset=utf-8'\n };\n }\n temp = this.convertToQueryString(req, query, dm);\n temp = (dm.dataSource.url.indexOf('?') !== -1 ? '&' : '/') + temp;\n return {\n type: 'GET', url: temp.length ? url.replace(/\\/*$/, temp) : url, pvtData: p\n };\n };\n UrlAdaptor.prototype.getRequestQuery = function (options, query, singles, request, request1) {\n var param = 'param';\n var req = request1;\n req[options.from] = query.fromTable;\n if (options.apply && query.distincts.length) {\n req[options.apply] = 'onDistinct' in this ? DataUtil.callAdaptorFunction(this, 'onDistinct', query.distincts) : '';\n }\n if (!query.distincts.length && options.expand) {\n req[options.expand] = 'onExpand' in this && 'onSelect' in singles ?\n DataUtil.callAdaptorFunction(this, 'onExpand', { selects: DataUtil.getValue(singles.onSelect.fieldNames, query), expands: query.expands }, query) : query.expands;\n }\n req[options.select] = 'onSelect' in singles && !query.distincts.length ?\n DataUtil.callAdaptorFunction(this, 'onSelect', DataUtil.getValue(singles.onSelect.fieldNames, query), query) : '';\n req[options.count] = query.isCountRequired ? DataUtil.callAdaptorFunction(this, 'onCount', query.isCountRequired, query) : '';\n req[options.search] = request.searches.length ? DataUtil.callAdaptorFunction(this, 'onSearch', request.searches, query) : '';\n req[options.skip] = 'onSkip' in singles ?\n DataUtil.callAdaptorFunction(this, 'onSkip', DataUtil.getValue(singles.onSkip.nos, query), query) : '';\n req[options.take] = 'onTake' in singles ?\n DataUtil.callAdaptorFunction(this, 'onTake', DataUtil.getValue(singles.onTake.nos, query), query) : '';\n req[options.where] = request.filters.length || request.searches.length ?\n DataUtil.callAdaptorFunction(this, 'onWhere', request.filters, query) : '';\n req[options.sortBy] = request.sorts.length ? DataUtil.callAdaptorFunction(this, 'onSortBy', request.sorts, query) : '';\n req[options.group] = request.groups.length ? DataUtil.callAdaptorFunction(this, 'onGroup', request.groups, query) : '';\n req[options.aggregates] = request.aggregates.length ?\n DataUtil.callAdaptorFunction(this, 'onAggregates', request.aggregates, query) : '';\n req[param] = [];\n };\n /**\n * Convert the object from processQuery to string which can be added query string.\n *\n * @param {Object} req\n * @param request\n * @param {Query} query\n * @param {DataManager} dm\n */\n UrlAdaptor.prototype.convertToQueryString = function (request, query, dm) {\n return '';\n // this needs to be overridden\n };\n /**\n * Return the data from the data manager processing.\n *\n * @param {DataResult} data\n * @param {DataOptions} ds?\n * @param {Query} query?\n * @param {XMLHttpRequest} xhr?\n * @param {Object} request?\n * @param {CrudOptions} changes?\n * @param ds\n * @param query\n * @param xhr\n * @param request\n * @param changes\n */\n UrlAdaptor.prototype.processResponse = function (data, ds, query, xhr, request, changes) {\n if (xhr && xhr.getResponseHeader('Content-Type') &&\n xhr.getResponseHeader('Content-Type').indexOf('application/json') !== -1) {\n var handleTimeZone = DataUtil.timeZoneHandling;\n if (ds && !ds.timeZoneHandling) {\n DataUtil.timeZoneHandling = false;\n }\n data = DataUtil.parse.parseJson(data);\n DataUtil.timeZoneHandling = handleTimeZone;\n }\n var requests = request;\n var pvt = requests.pvtData || {};\n var groupDs = data ? data.groupDs : [];\n if (xhr && xhr.getResponseHeader('Content-Type') &&\n xhr.getResponseHeader('Content-Type').indexOf('xml') !== -1) {\n return (query.isCountRequired ? { result: [], count: 0 } : []);\n }\n var d = JSON.parse(requests.data);\n if (d && d.action === 'batch' && data && data.addedRecords) {\n changes.addedRecords = data.addedRecords;\n return changes;\n }\n if (data && data.d) {\n data = data.d;\n }\n var args = {};\n if (data && 'count' in data) {\n args.count = data.count;\n }\n args.result = data && data.result ? data.result : data;\n var isExpand = false;\n if (Array.isArray(data.result) && data.result.length) {\n var key = 'key';\n var val = 'value';\n var level = 'level';\n if (!isNullOrUndefined(data.result[0][key])) {\n args.result = this.formRemoteGroupedData(args.result, 1, pvt.groups.length - 1);\n }\n if (query && query.lazyLoad.length && pvt.groups.length) {\n for (var i = 0; i < query.lazyLoad.length; i++) {\n if (query.lazyLoad[i][key] === 'onDemandGroupInfo') {\n var value = query.lazyLoad[i][val][level];\n if (pvt.groups.length === value) {\n isExpand = true;\n }\n }\n }\n }\n }\n if (!isExpand) {\n this.getAggregateResult(pvt, data, args, groupDs, query);\n }\n return DataUtil.isNull(args.count) ? args.result : { result: args.result, count: args.count, aggregates: args.aggregates };\n };\n UrlAdaptor.prototype.formRemoteGroupedData = function (data, level, childLevel) {\n for (var i = 0; i < data.length; i++) {\n if (data[i].items.length && Object.keys(data[i].items[0]).indexOf('key') > -1) {\n this.formRemoteGroupedData(data[i].items, level + 1, childLevel - 1);\n }\n }\n var uid = 'GroupGuid';\n var childLvl = 'childLevels';\n var lvl = 'level';\n var records = 'records';\n data[uid] = consts[uid];\n data[lvl] = level;\n data[childLvl] = childLevel;\n data[records] = data[0].items.length ? this.getGroupedRecords(data, !isNullOrUndefined(data[0].items[records])) : [];\n return data;\n };\n UrlAdaptor.prototype.getGroupedRecords = function (data, hasRecords) {\n var childGroupedRecords = [];\n var records = 'records';\n for (var i = 0; i < data.length; i++) {\n if (!hasRecords) {\n for (var j = 0; j < data[i].items.length; j++) {\n childGroupedRecords.push(data[i].items[j]);\n }\n }\n else {\n childGroupedRecords = childGroupedRecords.concat(data[i].items[records]);\n }\n }\n return childGroupedRecords;\n };\n /**\n * Add the group query to the adaptor`s option.\n *\n * @param {Object[]} e\n * @returns void\n */\n UrlAdaptor.prototype.onGroup = function (e) {\n this.pvt.groups = e;\n return e;\n };\n /**\n * Add the aggregate query to the adaptor`s option.\n *\n * @param {Aggregates[]} e\n * @returns void\n */\n UrlAdaptor.prototype.onAggregates = function (e) {\n this.pvt.aggregates = e;\n };\n /**\n * Prepare the request body based on the newly added, removed and updated records.\n * The result is used by the batch request.\n *\n * @param {DataManager} dm\n * @param {CrudOptions} changes\n * @param {Object} e\n * @param query\n * @param original\n */\n UrlAdaptor.prototype.batchRequest = function (dm, changes, e, query, original) {\n var url;\n var key;\n return {\n type: 'POST',\n url: dm.dataSource.batchUrl || dm.dataSource.crudUrl || dm.dataSource.removeUrl || dm.dataSource.url,\n contentType: 'application/json; charset=utf-8',\n dataType: 'json',\n data: JSON.stringify(extend({}, {\n changed: changes.changedRecords,\n added: changes.addedRecords,\n deleted: changes.deletedRecords,\n action: 'batch',\n table: e[url],\n key: e[key]\n }, DataUtil.getAddParams(this, dm, query)))\n };\n };\n /**\n * Method will trigger before send the request to server side.\n * Used to set the custom header or modify the request options.\n *\n * @param {DataManager} dm\n * @param {XMLHttpRequest} request\n * @returns void\n */\n UrlAdaptor.prototype.beforeSend = function (dm, request) {\n // need to extend this method\n };\n /**\n * Prepare and returns request body which is used to insert a new record in the table.\n *\n * @param {DataManager} dm\n * @param {Object} data\n * @param {string} tableName\n * @param query\n */\n UrlAdaptor.prototype.insert = function (dm, data, tableName, query) {\n return {\n url: dm.dataSource.insertUrl || dm.dataSource.crudUrl || dm.dataSource.url,\n data: JSON.stringify(extend({}, {\n value: data,\n table: tableName,\n action: 'insert'\n }, DataUtil.getAddParams(this, dm, query)))\n };\n };\n /**\n * Prepare and return request body which is used to remove record from the table.\n *\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {number|string} value\n * @param {string} tableName\n * @param query\n */\n UrlAdaptor.prototype.remove = function (dm, keyField, value, tableName, query) {\n return {\n type: 'POST',\n url: dm.dataSource.removeUrl || dm.dataSource.crudUrl || dm.dataSource.url,\n data: JSON.stringify(extend({}, {\n key: value,\n keyColumn: keyField,\n table: tableName,\n action: 'remove'\n }, DataUtil.getAddParams(this, dm, query)))\n };\n };\n /**\n * Prepare and return request body which is used to update record.\n *\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {Object} value\n * @param {string} tableName\n * @param query\n */\n UrlAdaptor.prototype.update = function (dm, keyField, value, tableName, query) {\n return {\n type: 'POST',\n url: dm.dataSource.updateUrl || dm.dataSource.crudUrl || dm.dataSource.url,\n data: JSON.stringify(extend({}, {\n value: value,\n action: 'update',\n keyColumn: keyField,\n key: DataUtil.getObject(keyField, value),\n table: tableName\n }, DataUtil.getAddParams(this, dm, query)))\n };\n };\n /**\n * To generate the predicate based on the filtered query.\n *\n * @param {Object[]|string[]|number[]} data\n * @param {Query} query\n * @hidden\n */\n UrlAdaptor.prototype.getFiltersFrom = function (data, query) {\n var key = query.fKey;\n var value;\n var prop = key;\n var pKey = query.key;\n var predicats = [];\n if (typeof data[0] !== 'object') {\n prop = null;\n }\n for (var i = 0; i < data.length; i++) {\n if (typeof data[0] === 'object') {\n value = DataUtil.getObject(pKey || prop, data[i]);\n }\n else {\n value = data[i];\n }\n predicats.push(new Predicate(key, 'equal', value));\n }\n return Predicate.or(predicats);\n };\n UrlAdaptor.prototype.getAggregateResult = function (pvt, data, args, groupDs, query) {\n var pData = data;\n if (data && data.result) {\n pData = data.result;\n }\n if (pvt && pvt.aggregates && pvt.aggregates.length) {\n var agg = pvt.aggregates;\n var fn = void 0;\n var aggregateData = pData;\n var res = {};\n if (data.aggregate) {\n aggregateData = data.aggregate;\n }\n for (var i = 0; i < agg.length; i++) {\n fn = DataUtil.aggregates[agg[i].type];\n if (fn) {\n res[agg[i].field + ' - ' + agg[i].type] = fn(aggregateData, agg[i].field);\n }\n }\n args.aggregates = res;\n }\n var key = 'key';\n var isServerGrouping = Array.isArray(data.result) && data.result.length && !isNullOrUndefined(data.result[0][key]);\n if (pvt && pvt.groups && pvt.groups.length && !isServerGrouping) {\n var groups = pvt.groups;\n for (var i = 0; i < groups.length; i++) {\n var level = null;\n if (!isNullOrUndefined(groupDs)) {\n groupDs = DataUtil.group(groupDs, groups[i]);\n }\n var groupQuery = Query.filterQueries(query.queries, 'onGroup')[i].e;\n pData = DataUtil.group(pData, groups[i], pvt.aggregates, level, groupDs, groupQuery.comparer);\n }\n args.result = pData;\n }\n return args;\n };\n UrlAdaptor.prototype.getQueryRequest = function (query) {\n var req = { sorts: [], groups: [], filters: [], searches: [], aggregates: [] };\n req.sorts = Query.filterQueries(query.queries, 'onSortBy');\n req.groups = Query.filterQueries(query.queries, 'onGroup');\n req.filters = Query.filterQueries(query.queries, 'onWhere');\n req.searches = Query.filterQueries(query.queries, 'onSearch');\n req.aggregates = Query.filterQueries(query.queries, 'onAggregates');\n return req;\n };\n UrlAdaptor.prototype.addParams = function (options) {\n var req = options.reqParams;\n if (options.params.length) {\n req.params = {};\n }\n for (var _i = 0, _a = options.params; _i < _a.length; _i++) {\n var tmp = _a[_i];\n if (req[tmp.key]) {\n throw new Error('Query() - addParams: Custom Param is conflicting other request arguments');\n }\n req[tmp.key] = tmp.value;\n if (tmp.fn) {\n req[tmp.key] = tmp.fn.call(options.query, tmp.key, options.query, options.dm);\n }\n req.params[tmp.key] = req[tmp.key];\n }\n };\n return UrlAdaptor;\n}(Adaptor));\nexport { UrlAdaptor };\n/**\n * OData Adaptor that is extended from URL Adaptor, is used for consuming data through OData Service.\n *\n * @hidden\n */\nvar ODataAdaptor = /** @class */ (function (_super) {\n __extends(ODataAdaptor, _super);\n function ODataAdaptor(props) {\n var _this = _super.call(this) || this;\n // options replaced the default adaptor options\n _this.options = extend({}, _this.options, {\n requestType: 'get',\n accept: 'application/json;odata=light;q=1,application/json;odata=verbose;q=0.5',\n multipartAccept: 'multipart/mixed',\n sortBy: '$orderby',\n select: '$select',\n skip: '$skip',\n take: '$top',\n count: '$inlinecount',\n where: '$filter',\n expand: '$expand',\n batch: '$batch',\n changeSet: '--changeset_',\n batchPre: 'batch_',\n contentId: 'Content-Id: ',\n batchContent: 'Content-Type: multipart/mixed; boundary=',\n changeSetContent: 'Content-Type: application/http\\nContent-Transfer-Encoding: binary ',\n batchChangeSetContentType: 'Content-Type: application/json; charset=utf-8 ',\n updateType: 'PUT'\n });\n extend(_this.options, props || {});\n return _this;\n }\n ODataAdaptor.prototype.getModuleName = function () {\n return 'ODataAdaptor';\n };\n /**\n * Generate request string based on the filter criteria from query.\n *\n * @param {Predicate} pred\n * @param {boolean} requiresCast?\n * @param predicate\n * @param query\n * @param requiresCast\n */\n ODataAdaptor.prototype.onPredicate = function (predicate, query, requiresCast) {\n var returnValue = '';\n var operator;\n var guid;\n var val = predicate.value;\n var type = typeof val;\n var field = predicate.field ? ODataAdaptor.getField(predicate.field) : null;\n if (val instanceof Date) {\n val = 'datetime\\'' + DataUtil.parse.replacer(val) + '\\'';\n }\n if (type === 'string') {\n val = val.replace(/'/g, '\\'\\'');\n if (predicate.ignoreCase) {\n val = val.toLowerCase();\n }\n if (predicate.operator !== 'like') {\n val = encodeURIComponent(val);\n }\n if (predicate.operator !== 'wildcard' && predicate.operator !== 'like') {\n val = '\\'' + val + '\\'';\n }\n if (requiresCast) {\n field = 'cast(' + field + ', \\'Edm.String\\')';\n }\n if (DataUtil.parse.isGuid(val)) {\n guid = 'guid';\n }\n if (predicate.ignoreCase) {\n if (!guid) {\n field = 'tolower(' + field + ')';\n }\n val = val.toLowerCase();\n }\n }\n if (predicate.operator === 'isempty' || predicate.operator === 'isnull' || predicate.operator === 'isnotempty' ||\n predicate.operator === 'isnotnull') {\n operator = predicate.operator.indexOf('isnot') !== -1 ? DataUtil.odBiOperator['notequal'] : DataUtil.odBiOperator['equal'];\n val = predicate.operator === 'isnull' || predicate.operator === 'isnotnull' ? null : '\\'\\'';\n }\n else {\n operator = DataUtil.odBiOperator[predicate.operator];\n }\n if (operator) {\n returnValue += field;\n returnValue += operator;\n if (guid) {\n returnValue += guid;\n }\n return returnValue + val;\n }\n if (!isNullOrUndefined(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor') {\n operator = DataUtil.odv4UniOperator[predicate.operator];\n }\n else {\n operator = DataUtil.odUniOperator[predicate.operator];\n }\n if (operator === 'like') {\n val = val;\n if (val.indexOf('%') !== -1) {\n if (val.charAt(0) === '%' && val.lastIndexOf('%') < 2) {\n val = val.substring(1, val.length);\n operator = !isNullOrUndefined(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor' ?\n DataUtil.odv4UniOperator['startswith'] : DataUtil.odUniOperator['startswith'];\n }\n else if (val.charAt(val.length - 1) === '%' && val.indexOf('%') > val.length - 3) {\n val = val.substring(0, val.length - 1);\n operator = !isNullOrUndefined(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor' ?\n DataUtil.odv4UniOperator['endswith'] : DataUtil.odUniOperator['endswith'];\n }\n else if (val.lastIndexOf('%') !== val.indexOf('%') && val.lastIndexOf('%') > val.indexOf('%') + 1) {\n val = val.substring(val.indexOf('%') + 1, val.lastIndexOf('%'));\n operator = !isNullOrUndefined(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor' ?\n DataUtil.odv4UniOperator['contains'] : DataUtil.odUniOperator['contains'];\n }\n else {\n operator = !isNullOrUndefined(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor' ?\n DataUtil.odv4UniOperator['contains'] : DataUtil.odUniOperator['contains'];\n }\n }\n val = encodeURIComponent(val);\n val = '\\'' + val + '\\'';\n }\n else if (operator === 'wildcard') {\n val = val;\n if (val.indexOf('*') !== -1) {\n var splittedStringValue = val.split('*');\n var splittedValue = void 0;\n var count = 0;\n if (val.indexOf('*') !== 0 && splittedStringValue[0].indexOf('%3f') === -1 &&\n splittedStringValue[0].indexOf('?') === -1) {\n splittedValue = splittedStringValue[0];\n splittedValue = '\\'' + splittedValue + '\\'';\n operator = !isNullOrUndefined(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor' ?\n DataUtil.odv4UniOperator['startswith'] : DataUtil.odUniOperator['startswith'];\n returnValue += operator + '(';\n returnValue += field + ',';\n if (guid) {\n returnValue += guid;\n }\n returnValue += splittedValue + ')';\n count++;\n }\n if (val.lastIndexOf('*') !== val.length - 1 && splittedStringValue[splittedStringValue.length - 1].indexOf('%3f') === -1 &&\n splittedStringValue[splittedStringValue.length - 1].indexOf('?') === -1) {\n splittedValue = splittedStringValue[splittedStringValue.length - 1];\n splittedValue = '\\'' + splittedValue + '\\'';\n operator = !isNullOrUndefined(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor' ?\n DataUtil.odv4UniOperator['endswith'] : DataUtil.odUniOperator['endswith'];\n if (count > 0) {\n returnValue += ' and ';\n }\n returnValue += operator + '(';\n returnValue += field + ',';\n if (guid) {\n returnValue += guid;\n }\n returnValue += splittedValue + ')';\n count++;\n }\n if (splittedStringValue.length > 2) {\n for (var i = 1; i < splittedStringValue.length - 1; i++) {\n if (splittedStringValue[i].indexOf('%3f') === -1 && splittedStringValue[i].indexOf('?') === -1) {\n splittedValue = splittedStringValue[i];\n splittedValue = '\\'' + splittedValue + '\\'';\n operator = !isNullOrUndefined(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor' ?\n DataUtil.odv4UniOperator['contains'] : DataUtil.odUniOperator['contains'];\n if (count > 0) {\n returnValue += ' and ';\n }\n if (operator === 'substringof' || operator === 'not substringof') {\n var temp = splittedValue;\n splittedValue = field;\n field = temp;\n }\n returnValue += operator + '(';\n returnValue += field + ',';\n if (guid) {\n returnValue += guid;\n }\n returnValue += splittedValue + ')';\n count++;\n }\n }\n }\n if (count === 0) {\n operator = !isNullOrUndefined(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor' ?\n DataUtil.odv4UniOperator['contains'] : DataUtil.odUniOperator['contains'];\n if (val.indexOf('?') !== -1 || val.indexOf('%3f') !== -1) {\n val = val.indexOf('?') !== -1 ? val.split('?').join('') : val.split('%3f').join('');\n }\n val = '\\'' + val + '\\'';\n }\n else {\n operator = 'wildcard';\n }\n }\n else {\n operator = !isNullOrUndefined(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor' ?\n DataUtil.odv4UniOperator['contains'] : DataUtil.odUniOperator['contains'];\n if (val.indexOf('?') !== -1 || val.indexOf('%3f') !== -1) {\n val = val.indexOf('?') !== -1 ? val.split('?').join('') : val.split('%3f').join('');\n }\n val = '\\'' + val + '\\'';\n }\n }\n if (operator === 'substringof' || operator === 'not substringof') {\n var temp = val;\n val = field;\n field = temp;\n }\n if (operator !== 'wildcard') {\n returnValue += operator + '(';\n returnValue += field + ',';\n if (guid) {\n returnValue += guid;\n }\n returnValue += val + ')';\n }\n return returnValue;\n };\n ODataAdaptor.prototype.addParams = function (options) {\n _super.prototype.addParams.call(this, options);\n delete options.reqParams.params;\n };\n /**\n * Generate request string based on the multiple filter criteria from query.\n *\n * @param {Predicate} pred\n * @param {boolean} requiresCast?\n * @param predicate\n * @param query\n * @param requiresCast\n */\n ODataAdaptor.prototype.onComplexPredicate = function (predicate, query, requiresCast) {\n var res = [];\n for (var i = 0; i < predicate.predicates.length; i++) {\n res.push('(' + this.onEachWhere(predicate.predicates[i], query, requiresCast) + ')');\n }\n return res.join(' ' + predicate.condition + ' ');\n };\n /**\n * Generate query string based on the multiple filter criteria from query.\n *\n * @param {Predicate} filter\n * @param {boolean} requiresCast?\n * @param query\n * @param requiresCast\n */\n ODataAdaptor.prototype.onEachWhere = function (filter, query, requiresCast) {\n return filter.isComplex ? this.onComplexPredicate(filter, query, requiresCast) : this.onPredicate(filter, query, requiresCast);\n };\n /**\n * Generate query string based on the multiple filter criteria from query.\n *\n * @param {string[]} filters\n */\n ODataAdaptor.prototype.onWhere = function (filters) {\n if (this.pvt.search) {\n filters.push(this.onEachWhere(this.pvt.search, null, true));\n }\n return filters.join(' and ');\n };\n /**\n * Generate query string based on the multiple search criteria from query.\n *\n * @param e\n * @param {string} operator\n * @param {string} key\n * @param {boolean} } ignoreCase\n * @param e.fields\n * @param e.operator\n * @param e.key\n * @param e.ignoreCase\n */\n ODataAdaptor.prototype.onEachSearch = function (e) {\n if (e.fields && e.fields.length === 0) {\n DataUtil.throwError('Query() - Search : oData search requires list of field names to search');\n }\n var filter = this.pvt.search || [];\n for (var i = 0; i < e.fields.length; i++) {\n filter.push(new Predicate(e.fields[i], e.operator, e.key, e.ignoreCase));\n }\n this.pvt.search = filter;\n };\n /**\n * Generate query string based on the search criteria from query.\n *\n * @param {Object} e\n */\n ODataAdaptor.prototype.onSearch = function (e) {\n this.pvt.search = Predicate.or(this.pvt.search);\n return '';\n };\n /**\n * Generate query string based on multiple sort criteria from query.\n *\n * @param {QueryOptions} e\n */\n ODataAdaptor.prototype.onEachSort = function (e) {\n var res = [];\n if (e.name instanceof Array) {\n for (var i = 0; i < e.name.length; i++) {\n res.push(ODataAdaptor.getField(e.name[i]) + (e.direction === 'descending' ? ' desc' : ''));\n }\n }\n else {\n res.push(ODataAdaptor.getField(e.name) + (e.direction === 'descending' ? ' desc' : ''));\n }\n return res.join(',');\n };\n /**\n * Returns sort query string.\n *\n * @param {string[]} e\n */\n ODataAdaptor.prototype.onSortBy = function (e) {\n return e.reverse().join(',');\n };\n /**\n * Adds the group query to the adaptor option.\n *\n * @param {Object[]} e\n * @returns string\n */\n ODataAdaptor.prototype.onGroup = function (e) {\n this.pvt.groups = e;\n return [];\n };\n /**\n * Returns the select query string.\n *\n * @param {string[]} e\n */\n ODataAdaptor.prototype.onSelect = function (e) {\n for (var i = 0; i < e.length; i++) {\n e[i] = ODataAdaptor.getField(e[i]);\n }\n return e.join(',');\n };\n /**\n * Add the aggregate query to the adaptor option.\n *\n * @param {Object[]} e\n * @returns string\n */\n ODataAdaptor.prototype.onAggregates = function (e) {\n this.pvt.aggregates = e;\n return '';\n };\n /**\n * Returns the query string which requests total count from the data source.\n *\n * @param {boolean} e\n * @returns string\n */\n ODataAdaptor.prototype.onCount = function (e) {\n return e === true ? 'allpages' : '';\n };\n /**\n * Method will trigger before send the request to server side.\n * Used to set the custom header or modify the request options.\n *\n * @param {DataManager} dm\n * @param {XMLHttpRequest} request\n * @param {Ajax} settings?\n * @param settings\n */\n ODataAdaptor.prototype.beforeSend = function (dm, request, settings) {\n if (DataUtil.endsWith(settings.url, this.options.batch) && settings.type.toLowerCase() === 'post') {\n request.setRequestHeader('Accept', this.options.multipartAccept);\n request.setRequestHeader('DataServiceVersion', '2.0');\n request.overrideMimeType('text/plain; charset=x-user-defined');\n }\n else {\n request.setRequestHeader('Accept', this.options.accept);\n }\n request.setRequestHeader('DataServiceVersion', '2.0');\n request.setRequestHeader('MaxDataServiceVersion', '2.0');\n };\n /**\n * Returns the data from the query processing.\n *\n * @param {DataResult} data\n * @param {DataOptions} ds?\n * @param {Query} query?\n * @param {XMLHttpRequest} xhr?\n * @param {Ajax} request?\n * @param {CrudOptions} changes?\n * @param ds\n * @param query\n * @param xhr\n * @param request\n * @param changes\n * @returns aggregateResult\n */\n ODataAdaptor.prototype.processResponse = function (data, ds, query, xhr, request, changes) {\n var metaCheck = 'odata.metadata';\n if ((request && request.type === 'GET') && !this.rootUrl && data[metaCheck]) {\n var dataUrls = data[metaCheck].split('/$metadata#');\n this.rootUrl = dataUrls[0];\n this.resourceTableName = dataUrls[1];\n }\n var pvtData = 'pvtData';\n if (!isNullOrUndefined(data.d)) {\n var dataCopy = ((query && query.isCountRequired) ? data.d.results : data.d);\n var metaData = '__metadata';\n if (!isNullOrUndefined(dataCopy)) {\n for (var i = 0; i < dataCopy.length; i++) {\n if (!isNullOrUndefined(dataCopy[i][metaData])) {\n delete dataCopy[i][metaData];\n }\n }\n }\n }\n var pvt = request && request[pvtData];\n var emptyAndBatch = this.processBatchResponse(data, query, xhr, request, changes);\n if (emptyAndBatch) {\n return emptyAndBatch;\n }\n var versionCheck = xhr && request.getResponseHeader('DataServiceVersion');\n var count = null;\n var version = (versionCheck && parseInt(versionCheck, 10)) || 2;\n if (query && query.isCountRequired) {\n var oDataCount = '__count';\n if (data[oDataCount] || data['odata.count']) {\n count = data[oDataCount] || data['odata.count'];\n }\n if (data.d) {\n data = data.d;\n }\n if (data[oDataCount] || data['odata.count']) {\n count = data[oDataCount] || data['odata.count'];\n }\n }\n if (version === 3 && data.value) {\n data = data.value;\n }\n if (data.d) {\n data = data.d;\n }\n if (version < 3 && data.results) {\n data = data.results;\n }\n var args = {};\n args.count = count;\n args.result = data;\n this.getAggregateResult(pvt, data, args, null, query);\n return DataUtil.isNull(count) ? args.result : { result: args.result, count: args.count, aggregates: args.aggregates };\n };\n /**\n * Converts the request object to query string.\n *\n * @param {Object} req\n * @param request\n * @param {Query} query\n * @param {DataManager} dm\n * @returns tableName\n */\n ODataAdaptor.prototype.convertToQueryString = function (request, query, dm) {\n var res = [];\n var table = 'table';\n var tableName = request[table] || '';\n var format = '$format';\n delete request[table];\n if (dm.dataSource.requiresFormat) {\n request[format] = 'json';\n }\n var keys = Object.keys(request);\n for (var _i = 0, keys_4 = keys; _i < keys_4.length; _i++) {\n var prop = keys_4[_i];\n res.push(prop + '=' + request[prop]);\n }\n res = res.join('&');\n if (dm.dataSource.url && dm.dataSource.url.indexOf('?') !== -1 && !tableName) {\n return res;\n }\n return res.length ? tableName + '?' + res : tableName || '';\n };\n ODataAdaptor.prototype.localTimeReplacer = function (key, convertObj) {\n for (var _i = 0, _a = !isNullOrUndefined(convertObj) ? Object.keys(convertObj) : []; _i < _a.length; _i++) {\n var prop = _a[_i];\n if ((convertObj[prop] instanceof Date)) {\n convertObj[prop] = DataUtil.dateParse.toLocalTime(convertObj[prop]);\n }\n }\n return convertObj;\n };\n /**\n * Prepare and returns request body which is used to insert a new record in the table.\n *\n * @param {DataManager} dm\n * @param {Object} data\n * @param {string} tableName?\n * @param tableName\n */\n ODataAdaptor.prototype.insert = function (dm, data, tableName) {\n return {\n url: (dm.dataSource.insertUrl || dm.dataSource.url).replace(/\\/*$/, tableName ? '/' + tableName : ''),\n data: JSON.stringify(data, this.options.localTime ? this.localTimeReplacer : null)\n };\n };\n /**\n * Prepare and return request body which is used to remove record from the table.\n *\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {number} value\n * @param {string} tableName?\n * @param tableName\n */\n ODataAdaptor.prototype.remove = function (dm, keyField, value, tableName) {\n var url;\n if (typeof value === 'string' && !DataUtil.parse.isGuid(value)) {\n url = \"('\" + value + \"')\";\n }\n else {\n url = \"(\" + value + \")\";\n }\n return {\n type: 'DELETE',\n url: (dm.dataSource.removeUrl || dm.dataSource.url).replace(/\\/*$/, tableName ? '/' + tableName : '') + url\n };\n };\n /**\n * Updates existing record and saves the changes to the table.\n *\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {Object} value\n * @param {string} tableName?\n * @param tableName\n * @param query\n * @param original\n * @returns this\n */\n ODataAdaptor.prototype.update = function (dm, keyField, value, tableName, query, original) {\n if (this.options.updateType === 'PATCH' && !isNullOrUndefined(original)) {\n value = this.compareAndRemove(value, original, keyField);\n }\n var url;\n if (typeof value[keyField] === 'string' && !DataUtil.parse.isGuid(value[keyField])) {\n url = \"('\" + value[keyField] + \"')\";\n }\n else {\n url = \"(\" + value[keyField] + \")\";\n }\n return {\n type: this.options.updateType,\n url: (dm.dataSource.updateUrl || dm.dataSource.url).replace(/\\/*$/, tableName ? '/' + tableName : '') + url,\n data: JSON.stringify(value, this.options.localTime ? this.localTimeReplacer : null),\n accept: this.options.accept\n };\n };\n /**\n * Prepare the request body based on the newly added, removed and updated records.\n * The result is used by the batch request.\n *\n * @param {DataManager} dm\n * @param {CrudOptions} changes\n * @param {RemoteArgs} e\n * @param query\n * @param original\n * @returns {Object}\n */\n ODataAdaptor.prototype.batchRequest = function (dm, changes, e, query, original) {\n var initialGuid = e.guid = DataUtil.getGuid(this.options.batchPre);\n var url = this.rootUrl ? this.rootUrl + '/' + this.options.batch :\n dm.dataSource.url.replace(/\\/*$/, '/' + this.options.batch);\n e.url = this.resourceTableName ? this.resourceTableName : e.url;\n var args = {\n url: e.url,\n key: e.key,\n cid: 1,\n cSet: DataUtil.getGuid(this.options.changeSet)\n };\n var req = '--' + initialGuid + '\\n';\n req += 'Content-Type: multipart/mixed; boundary=' + args.cSet.replace('--', '') + '\\n';\n this.pvt.changeSet = 0;\n req += this.generateInsertRequest(changes.addedRecords, args, dm);\n req += this.generateUpdateRequest(changes.changedRecords, args, dm, original ? original.changedRecords : []);\n req += this.generateDeleteRequest(changes.deletedRecords, args, dm);\n req += args.cSet + '--\\n';\n req += '--' + initialGuid + '--';\n return {\n type: 'POST',\n url: url,\n dataType: 'json',\n contentType: 'multipart/mixed; charset=UTF-8;boundary=' + initialGuid,\n data: req\n };\n };\n /**\n * Generate the string content from the removed records.\n * The result will be send during batch update.\n *\n * @param {Object[]} arr\n * @param {RemoteArgs} e\n * @param dm\n * @returns this\n */\n ODataAdaptor.prototype.generateDeleteRequest = function (arr, e, dm) {\n if (!arr) {\n return '';\n }\n var req = '';\n var stat = {\n 'method': 'DELETE ',\n 'url': function (data, i, key) {\n var url = DataUtil.getObject(key, data[i]);\n if (typeof url === 'number' || DataUtil.parse.isGuid(url)) {\n return '(' + url + ')';\n }\n else if (url instanceof Date) {\n var dateTime = data[i][key];\n return '(' + dateTime.toJSON() + ')';\n }\n else {\n return \"('\" + url + \"')\";\n }\n },\n 'data': function (data, i) { return ''; }\n };\n req = this.generateBodyContent(arr, e, stat, dm);\n return req + '\\n';\n };\n /**\n * Generate the string content from the inserted records.\n * The result will be send during batch update.\n *\n * @param {Object[]} arr\n * @param {RemoteArgs} e\n * @param dm\n */\n ODataAdaptor.prototype.generateInsertRequest = function (arr, e, dm) {\n if (!arr) {\n return '';\n }\n var req = '';\n var stat = {\n 'method': 'POST ',\n 'url': function (data, i, key) { return ''; },\n 'data': function (data, i) { return JSON.stringify(data[i]) + '\\n\\n'; }\n };\n req = this.generateBodyContent(arr, e, stat, dm);\n return req;\n };\n /**\n * Generate the string content from the updated records.\n * The result will be send during batch update.\n *\n * @param {Object[]} arr\n * @param {RemoteArgs} e\n * @param dm\n * @param org\n */\n ODataAdaptor.prototype.generateUpdateRequest = function (arr, e, dm, org) {\n var _this = this;\n if (!arr) {\n return '';\n }\n var req = '';\n arr.forEach(function (change) { return change = _this.compareAndRemove(change, org.filter(function (o) { return DataUtil.getObject(e.key, o) === DataUtil.getObject(e.key, change); })[0], e.key); });\n var stat = {\n 'method': this.options.updateType + ' ',\n 'url': function (data, i, key) {\n if (typeof data[i][key] === 'number' || DataUtil.parse.isGuid(data[i][key])) {\n return '(' + data[i][key] + ')';\n }\n else if (data[i][key] instanceof Date) {\n var date = data[i][key];\n return '(' + date.toJSON() + ')';\n }\n else {\n return \"('\" + data[i][key] + \"')\";\n }\n },\n 'data': function (data, i) { return JSON.stringify(data[i]) + '\\n\\n'; }\n };\n req = this.generateBodyContent(arr, e, stat, dm);\n return req;\n };\n ODataAdaptor.getField = function (prop) {\n return prop.replace(/\\./g, '/');\n };\n ODataAdaptor.prototype.generateBodyContent = function (arr, e, stat, dm) {\n var req = '';\n for (var i = 0; i < arr.length; i++) {\n req += '\\n' + e.cSet + '\\n';\n req += this.options.changeSetContent + '\\n\\n';\n req += stat.method;\n if (stat.method === 'POST ') {\n req += (dm.dataSource.insertUrl || dm.dataSource.crudUrl || e.url) + stat.url(arr, i, e.key) + ' HTTP/1.1\\n';\n }\n else if (stat.method === 'PUT ' || stat.method === 'PATCH ') {\n req += (dm.dataSource.updateUrl || dm.dataSource.crudUrl || e.url) + stat.url(arr, i, e.key) + ' HTTP/1.1\\n';\n }\n else if (stat.method === 'DELETE ') {\n req += (dm.dataSource.removeUrl || dm.dataSource.crudUrl || e.url) + stat.url(arr, i, e.key) + ' HTTP/1.1\\n';\n }\n req += 'Accept: ' + this.options.accept + '\\n';\n req += 'Content-Id: ' + this.pvt.changeSet++ + '\\n';\n req += this.options.batchChangeSetContentType + '\\n';\n if (!isNullOrUndefined(arr[i]['@odata.etag'])) {\n req += 'If-Match: ' + arr[i]['@odata.etag'] + '\\n\\n';\n delete arr[i]['@odata.etag'];\n }\n else {\n req += '\\n';\n }\n req += stat.data(arr, i);\n }\n return req;\n };\n ODataAdaptor.prototype.processBatchResponse = function (data, query, xhr, request, changes) {\n if (xhr && xhr.getResponseHeader('Content-Type') && xhr.getResponseHeader('Content-Type').indexOf('xml') !== -1) {\n return (query.isCountRequired ? { result: [], count: 0 } : []);\n }\n if (request && this.options.batch && DataUtil.endsWith(request.url, this.options.batch) && request.type.toLowerCase() === 'post') {\n var guid = xhr.getResponseHeader('Content-Type');\n var cIdx = void 0;\n var jsonObj = void 0;\n var d = data + '';\n guid = guid.substring(guid.indexOf('=batchresponse') + 1);\n d = d.split(guid);\n if (d.length < 2) {\n return {};\n }\n d = d[1];\n var exVal = /(?:\\bContent-Type.+boundary=)(changesetresponse.+)/i.exec(d);\n if (exVal) {\n d.replace(exVal[0], '');\n }\n var changeGuid = exVal ? exVal[1] : '';\n d = d.split(changeGuid);\n for (var i = d.length; i > -1; i--) {\n if (!/\\bContent-ID:/i.test(d[i]) || !/\\bHTTP.+201/.test(d[i])) {\n continue;\n }\n cIdx = parseInt(/\\bContent-ID: (\\d+)/i.exec(d[i])[1], 10);\n if (changes.addedRecords[cIdx]) {\n jsonObj = DataUtil.parse.parseJson(/^\\{.+\\}/m.exec(d[i])[0]);\n extend({}, changes.addedRecords[cIdx], this.processResponse(jsonObj));\n }\n }\n return changes;\n }\n return null;\n };\n ODataAdaptor.prototype.compareAndRemove = function (data, original, key) {\n var _this = this;\n if (isNullOrUndefined(original)) {\n return data;\n }\n Object.keys(data).forEach(function (prop) {\n if (prop !== key && prop !== '@odata.etag') {\n if (DataUtil.isPlainObject(data[prop])) {\n _this.compareAndRemove(data[prop], original[prop]);\n var final = Object.keys(data[prop]).filter(function (data) { return data !== '@odata.etag'; });\n if (final.length === 0) {\n delete data[prop];\n }\n }\n else if (data[prop] === original[prop]) {\n delete data[prop];\n }\n else if (data[prop] && original[prop] && data[prop].valueOf() === original[prop].valueOf()) {\n delete data[prop];\n }\n }\n });\n return data;\n };\n return ODataAdaptor;\n}(UrlAdaptor));\nexport { ODataAdaptor };\n/**\n * The OData v4 is an improved version of OData protocols.\n * The DataManager uses the ODataV4Adaptor to consume OData v4 services.\n *\n * @hidden\n */\nvar ODataV4Adaptor = /** @class */ (function (_super) {\n __extends(ODataV4Adaptor, _super);\n function ODataV4Adaptor(props) {\n var _this = _super.call(this, props) || this;\n // options replaced the default adaptor options\n _this.options = extend({}, _this.options, {\n requestType: 'get',\n accept: 'application/json, text/javascript, */*; q=0.01',\n multipartAccept: 'multipart/mixed',\n sortBy: '$orderby',\n select: '$select',\n skip: '$skip',\n take: '$top',\n count: '$count',\n search: '$search',\n where: '$filter',\n expand: '$expand',\n batch: '$batch',\n changeSet: '--changeset_',\n batchPre: 'batch_',\n contentId: 'Content-Id: ',\n batchContent: 'Content-Type: multipart/mixed; boundary=',\n changeSetContent: 'Content-Type: application/http\\nContent-Transfer-Encoding: binary ',\n batchChangeSetContentType: 'Content-Type: application/json; charset=utf-8 ',\n updateType: 'PATCH',\n localTime: false,\n apply: '$apply'\n });\n extend(_this.options, props || {});\n return _this;\n }\n /**\n * @hidden\n */\n ODataV4Adaptor.prototype.getModuleName = function () {\n return 'ODataV4Adaptor';\n };\n /**\n * Returns the query string which requests total count from the data source.\n *\n * @param {boolean} e\n * @returns string\n */\n ODataV4Adaptor.prototype.onCount = function (e) {\n return e === true ? 'true' : '';\n };\n /**\n * Generate request string based on the filter criteria from query.\n *\n * @param {Predicate} pred\n * @param {boolean} requiresCast?\n * @param predicate\n * @param query\n * @param requiresCast\n */\n ODataV4Adaptor.prototype.onPredicate = function (predicate, query, requiresCast) {\n var returnValue = '';\n var val = predicate.value;\n var isDate = val instanceof Date;\n if (query instanceof Query) {\n var queries = this.getQueryRequest(query);\n for (var i = 0; i < queries.filters.length; i++) {\n if (queries.filters[i].e.key === predicate.value) {\n requiresCast = true;\n }\n }\n }\n returnValue = _super.prototype.onPredicate.call(this, predicate, query, requiresCast);\n if (isDate) {\n returnValue = returnValue.replace(/datetime'(.*)'$/, '$1');\n }\n if (DataUtil.parse.isGuid(val)) {\n returnValue = returnValue.replace('guid', '').replace(/'/g, '');\n }\n return returnValue;\n };\n /**\n * Generate query string based on the multiple search criteria from query.\n *\n * @param e\n * @param {string} operator\n * @param {string} key\n * @param {boolean} } ignoreCase\n * @param e.fields\n * @param e.operator\n * @param e.key\n * @param e.ignoreCase\n */\n ODataV4Adaptor.prototype.onEachSearch = function (e) {\n var search = this.pvt.searches || [];\n search.push(e.key);\n this.pvt.searches = search;\n };\n /**\n * Generate query string based on the search criteria from query.\n *\n * @param {Object} e\n */\n ODataV4Adaptor.prototype.onSearch = function (e) {\n return this.pvt.searches.join(' OR ');\n };\n /**\n * Returns the expand query string.\n *\n * @param {string} e\n * @param e.selects\n * @param e.expands\n */\n ODataV4Adaptor.prototype.onExpand = function (e) {\n var _this = this;\n var selected = {};\n var expanded = {};\n var expands = e.expands.slice();\n var exArr = [];\n var selects = e.selects.filter(function (item) { return item.indexOf('.') > -1; });\n selects.forEach(function (select) {\n var splits = select.split('.');\n if (!(splits[0] in selected)) {\n selected[splits[0]] = [];\n }\n if (splits.length === 2) {\n if (selected[splits[0]].length && Object.keys(selected).indexOf(splits[0]) !== -1) {\n if (selected[splits[0]][0].indexOf('$expand') !== -1 && selected[splits[0]][0].indexOf(';$select=') === -1) {\n selected[splits[0]][0] = selected[splits[0]][0] + ';' + '$select=' + splits[1];\n }\n else {\n selected[splits[0]][0] = selected[splits[0]][0] + ',' + splits[1];\n }\n }\n else {\n selected[splits[0]].push('$select=' + splits[1]);\n }\n }\n else {\n var sel = '$select=' + splits[splits.length - 1];\n var exp = '';\n var close_1 = '';\n for (var i = 1; i < splits.length - 1; i++) {\n exp = exp + '$expand=' + splits[i] + '(';\n close_1 = close_1 + ')';\n }\n var combineVal = exp + sel + close_1;\n if (selected[splits[0]].length && Object.keys(selected).indexOf(splits[0]) !== -1 &&\n _this.expandQueryIndex(selected[splits[0]], true)) {\n var idx = _this.expandQueryIndex(selected[splits[0]]);\n selected[splits[0]][idx] = selected[splits[0]][idx] + combineVal.replace('$expand=', ',');\n }\n else {\n selected[splits[0]].push(combineVal);\n }\n }\n });\n //Auto expand from select query\n Object.keys(selected).forEach(function (expand) {\n if ((expands.indexOf(expand) === -1)) {\n expands.push(expand);\n }\n });\n expands.forEach(function (expand) {\n expanded[expand] = expand in selected ? expand + \"(\" + selected[expand].join(';') + \")\" : expand;\n });\n Object.keys(expanded).forEach(function (ex) { return exArr.push(expanded[ex]); });\n return exArr.join(',');\n };\n ODataV4Adaptor.prototype.expandQueryIndex = function (query, isExpand) {\n for (var i = 0; i < query.length; i++) {\n if (query[i].indexOf('$expand') !== -1) {\n return isExpand ? true : i;\n }\n }\n return isExpand ? false : 0;\n };\n /**\n * Returns the groupby query string.\n *\n * @param {string} e\n * @param distinctFields\n */\n ODataV4Adaptor.prototype.onDistinct = function (distinctFields) {\n var fields = distinctFields.map(function (field) { return ODataAdaptor.getField(field); }).join(',');\n return \"groupby((\" + fields + \"))\";\n };\n /**\n * Returns the select query string.\n *\n * @param {string[]} e\n */\n ODataV4Adaptor.prototype.onSelect = function (e) {\n return _super.prototype.onSelect.call(this, e.filter(function (item) { return item.indexOf('.') === -1; }));\n };\n /**\n * Method will trigger before send the request to server side.\n * Used to set the custom header or modify the request options.\n *\n * @param {DataManager} dm\n * @param {XMLHttpRequest} request\n * @param {Ajax} settings\n * @returns void\n */\n ODataV4Adaptor.prototype.beforeSend = function (dm, request, settings) {\n if (settings.type === 'POST' || settings.type === 'PUT' || settings.type === 'PATCH') {\n request.setRequestHeader('Prefer', 'return=representation');\n }\n request.setRequestHeader('Accept', this.options.accept);\n };\n /**\n * Returns the data from the query processing.\n *\n * @param {DataResult} data\n * @param {DataOptions} ds?\n * @param {Query} query?\n * @param {XMLHttpRequest} xhr?\n * @param {Ajax} request?\n * @param {CrudOptions} changes?\n * @param ds\n * @param query\n * @param xhr\n * @param request\n * @param changes\n * @returns aggregateResult\n */\n ODataV4Adaptor.prototype.processResponse = function (data, ds, query, xhr, request, changes) {\n var metaName = '@odata.context';\n var metaV4Name = '@context';\n if ((request && request.type === 'GET') && !this.rootUrl && (data[metaName] || data[metaV4Name])) {\n var dataUrl = data[metaName] ? data[metaName].split('/$metadata#') : data[metaV4Name].split('/$metadata#');\n this.rootUrl = dataUrl[0];\n this.resourceTableName = dataUrl[1];\n }\n var pvtData = 'pvtData';\n var pvt = request && request[pvtData];\n var emptyAndBatch = _super.prototype.processBatchResponse.call(this, data, query, xhr, request, changes);\n if (emptyAndBatch) {\n return emptyAndBatch;\n }\n var count = null;\n var dataCount = '@odata.count';\n var dataV4Count = '@count';\n if (query && query.isCountRequired) {\n if (dataCount in data) {\n count = data[dataCount];\n }\n else if (dataV4Count in data) {\n count = data[dataV4Count];\n }\n }\n data = !isNullOrUndefined(data.value) ? data.value : data;\n var args = {};\n args.count = count;\n args.result = data;\n this.getAggregateResult(pvt, data, args, null, query);\n return DataUtil.isNull(count) ? args.result : { result: args.result, count: count, aggregates: args.aggregates };\n };\n return ODataV4Adaptor;\n}(ODataAdaptor));\nexport { ODataV4Adaptor };\n/**\n * The Web API is a programmatic interface to define the request and response messages system that is mostly exposed in JSON or XML.\n * The DataManager uses the WebApiAdaptor to consume Web API.\n * Since this adaptor is targeted to interact with Web API created using OData endpoint, it is extended from ODataAdaptor\n *\n * @hidden\n */\nvar WebApiAdaptor = /** @class */ (function (_super) {\n __extends(WebApiAdaptor, _super);\n function WebApiAdaptor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n WebApiAdaptor.prototype.getModuleName = function () {\n return 'WebApiAdaptor';\n };\n /**\n * Prepare and returns request body which is used to insert a new record in the table.\n *\n * @param {DataManager} dm\n * @param {Object} data\n * @param {string} tableName?\n * @param tableName\n */\n WebApiAdaptor.prototype.insert = function (dm, data, tableName) {\n return {\n type: 'POST',\n url: dm.dataSource.url,\n data: JSON.stringify(data)\n };\n };\n /**\n * Prepare and return request body which is used to remove record from the table.\n *\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {number} value\n * @param {string} tableName?\n * @param tableName\n */\n WebApiAdaptor.prototype.remove = function (dm, keyField, value, tableName) {\n return {\n type: 'DELETE',\n url: dm.dataSource.url + '/' + value,\n data: JSON.stringify(value)\n };\n };\n /**\n * Prepare and return request body which is used to update record.\n *\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {Object} value\n * @param {string} tableName?\n * @param tableName\n */\n WebApiAdaptor.prototype.update = function (dm, keyField, value, tableName) {\n return {\n type: 'PUT',\n url: dm.dataSource.url,\n data: JSON.stringify(value)\n };\n };\n WebApiAdaptor.prototype.batchRequest = function (dm, changes, e) {\n var _this = this;\n var initialGuid = e.guid = DataUtil.getGuid(this.options.batchPre);\n var url = dm.dataSource.url.replace(/\\/*$/, '/' + this.options.batch);\n e.url = this.resourceTableName ? this.resourceTableName : e.url;\n var req = [];\n var _loop_1 = function (i, x) {\n changes.addedRecords.forEach(function (j, d) {\n var stat = {\n 'method': 'POST ',\n 'url': function (data, i, key) { return ''; },\n 'data': function (data, i) { return JSON.stringify(data[i]) + '\\n\\n'; }\n };\n req.push('--' + initialGuid);\n req.push('Content-Type: application/http; msgtype=request', '');\n req.push('POST ' + '/api/' + (dm.dataSource.insertUrl || dm.dataSource.crudUrl || e.url)\n + stat.url(changes.addedRecords, i, e.key) + ' HTTP/1.1');\n req.push('Content-Type: ' + 'application/json; charset=utf-8');\n req.push('Host: ' + location.host);\n req.push('', j ? JSON.stringify(j) : '');\n });\n };\n //insertion\n for (var i = 0, x = changes.addedRecords.length; i < x; i++) {\n _loop_1(i, x);\n }\n var _loop_2 = function (i, x) {\n changes.changedRecords.forEach(function (j, d) {\n var stat = {\n 'method': _this.options.updateType + ' ',\n 'url': function (data, i, key) { return ''; },\n 'data': function (data, i) { return JSON.stringify(data[i]) + '\\n\\n'; }\n };\n req.push('--' + initialGuid);\n req.push('Content-Type: application/http; msgtype=request', '');\n req.push('PUT ' + '/api/' + (dm.dataSource.updateUrl || dm.dataSource.crudUrl || e.url)\n + stat.url(changes.changedRecords, i, e.key) + ' HTTP/1.1');\n req.push('Content-Type: ' + 'application/json; charset=utf-8');\n req.push('Host: ' + location.host);\n req.push('', j ? JSON.stringify(j) : '');\n });\n };\n //updation\n for (var i = 0, x = changes.changedRecords.length; i < x; i++) {\n _loop_2(i, x);\n }\n var _loop_3 = function (i, x) {\n changes.deletedRecords.forEach(function (j, d) {\n var state = {\n 'mtd': 'DELETE ',\n 'url': function (data, i, key) {\n var url = DataUtil.getObject(key, data[i]);\n if (typeof url === 'number' || DataUtil.parse.isGuid(url)) {\n return '/' + url;\n }\n else if (url instanceof Date) {\n var datTime = data[i][key];\n return '/' + datTime.toJSON();\n }\n else {\n return \"/'\" + url + \"'\";\n }\n },\n 'data': function (data, i) { return ''; }\n };\n req.push('--' + initialGuid);\n req.push('Content-Type: application/http; msgtype=request', '');\n req.push('DELETE ' + '/api/' + (dm.dataSource.removeUrl || dm.dataSource.crudUrl || e.url)\n + state.url(changes.deletedRecords, i, e.key) + ' HTTP/1.1');\n req.push('Content-Type: ' + 'application/json; charset=utf-8');\n req.push('Host: ' + location.host);\n req.push('', j ? JSON.stringify(j) : '');\n });\n };\n //deletion\n for (var i = 0, x = changes.deletedRecords.length; i < x; i++) {\n _loop_3(i, x);\n }\n req.push('--' + initialGuid + '--', '');\n return {\n type: 'POST',\n url: url,\n contentType: 'multipart/mixed; boundary=' + initialGuid,\n data: req.join('\\r\\n')\n };\n };\n /**\n * Method will trigger before send the request to server side.\n * Used to set the custom header or modify the request options.\n *\n * @param {DataManager} dm\n * @param {XMLHttpRequest} request\n * @param {Ajax} settings\n * @returns void\n */\n WebApiAdaptor.prototype.beforeSend = function (dm, request, settings) {\n request.setRequestHeader('Accept', 'application/json, text/javascript, */*; q=0.01');\n };\n /**\n * Returns the data from the query processing.\n *\n * @param {DataResult} data\n * @param {DataOptions} ds?\n * @param {Query} query?\n * @param {XMLHttpRequest} xhr?\n * @param {Ajax} request?\n * @param {CrudOptions} changes?\n * @param ds\n * @param query\n * @param xhr\n * @param request\n * @param changes\n * @returns aggregateResult\n */\n WebApiAdaptor.prototype.processResponse = function (data, ds, query, xhr, request, changes) {\n var pvtData = 'pvtData';\n var pvt = request && request[pvtData];\n var count = null;\n var args = {};\n if (request && request.type.toLowerCase() !== 'post') {\n var versionCheck = xhr && request.getResponseHeader('DataServiceVersion');\n var version = (versionCheck && parseInt(versionCheck, 10)) || 2;\n if (query && query.isCountRequired) {\n if (!DataUtil.isNull(data.Count)) {\n count = data.Count;\n }\n }\n if (version < 3 && data.Items) {\n data = data.Items;\n }\n args.count = count;\n args.result = data;\n this.getAggregateResult(pvt, data, args, null, query);\n }\n args.result = args.result || data;\n return DataUtil.isNull(count) ? args.result : { result: args.result, count: args.count, aggregates: args.aggregates };\n };\n return WebApiAdaptor;\n}(ODataAdaptor));\nexport { WebApiAdaptor };\n/**\n * WebMethodAdaptor can be used by DataManager to interact with web method.\n *\n * @hidden\n */\nvar WebMethodAdaptor = /** @class */ (function (_super) {\n __extends(WebMethodAdaptor, _super);\n function WebMethodAdaptor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Prepare the request body based on the query.\n * The query information can be accessed at the WebMethod using variable named `value`.\n *\n * @param {DataManager} dm\n * @param {Query} query\n * @param {Object[]} hierarchyFilters?\n * @param hierarchyFilters\n * @returns application\n */\n WebMethodAdaptor.prototype.processQuery = function (dm, query, hierarchyFilters) {\n var obj = new UrlAdaptor().processQuery(dm, query, hierarchyFilters);\n var getData = 'data';\n var data = DataUtil.parse.parseJson(obj[getData]);\n var result = {};\n var value = 'value';\n if (data.param) {\n for (var i = 0; i < data.param.length; i++) {\n var param = data.param[i];\n var key = Object.keys(param)[0];\n result[key] = param[key];\n }\n }\n result[value] = data;\n var pvtData = 'pvtData';\n var url = 'url';\n return {\n data: JSON.stringify(result),\n url: obj[url],\n pvtData: obj[pvtData],\n type: 'POST',\n contentType: 'application/json; charset=utf-8'\n };\n };\n return WebMethodAdaptor;\n}(UrlAdaptor));\nexport { WebMethodAdaptor };\n/**\n * RemoteSaveAdaptor, extended from JsonAdaptor and it is used for binding local data and performs all DataManager queries in client-side.\n * It interacts with server-side only for CRUD operations.\n *\n * @hidden\n */\nvar RemoteSaveAdaptor = /** @class */ (function (_super) {\n __extends(RemoteSaveAdaptor, _super);\n /**\n * @hidden\n */\n function RemoteSaveAdaptor() {\n var _this = _super.call(this) || this;\n setValue('beforeSend', UrlAdaptor.prototype.beforeSend, _this);\n return _this;\n }\n RemoteSaveAdaptor.prototype.insert = function (dm, data, tableName, query, position) {\n this.pvt.position = position;\n this.updateType = 'add';\n return {\n url: dm.dataSource.insertUrl || dm.dataSource.crudUrl || dm.dataSource.url,\n data: JSON.stringify(extend({}, {\n value: data,\n table: tableName,\n action: 'insert'\n }, DataUtil.getAddParams(this, dm, query)))\n };\n };\n RemoteSaveAdaptor.prototype.remove = function (dm, keyField, val, tableName, query) {\n _super.prototype.remove.call(this, dm, keyField, val);\n return {\n type: 'POST',\n url: dm.dataSource.removeUrl || dm.dataSource.crudUrl || dm.dataSource.url,\n data: JSON.stringify(extend({}, {\n key: val,\n keyColumn: keyField,\n table: tableName,\n action: 'remove'\n }, DataUtil.getAddParams(this, dm, query)))\n };\n };\n RemoteSaveAdaptor.prototype.update = function (dm, keyField, val, tableName, query) {\n this.updateType = 'update';\n this.updateKey = keyField;\n return {\n type: 'POST',\n url: dm.dataSource.updateUrl || dm.dataSource.crudUrl || dm.dataSource.url,\n data: JSON.stringify(extend({}, {\n value: val,\n action: 'update',\n keyColumn: keyField,\n key: val[keyField],\n table: tableName\n }, DataUtil.getAddParams(this, dm, query)))\n };\n };\n RemoteSaveAdaptor.prototype.processResponse = function (data, ds, query, xhr, request, changes, e) {\n var i;\n var newData = request ? JSON.parse(request.data) : data;\n data = newData.action === 'batch' ? DataUtil.parse.parseJson(data) : data;\n if (this.updateType === 'add') {\n _super.prototype.insert.call(this, ds, data, null, null, this.pvt.position);\n }\n if (this.updateType === 'update') {\n _super.prototype.update.call(this, ds, this.updateKey, data);\n }\n this.updateType = undefined;\n if (data.added) {\n for (i = 0; i < data.added.length; i++) {\n _super.prototype.insert.call(this, ds, data.added[i]);\n }\n }\n if (data.changed) {\n for (i = 0; i < data.changed.length; i++) {\n _super.prototype.update.call(this, ds, e.key, data.changed[i]);\n }\n }\n if (data.deleted) {\n for (i = 0; i < data.deleted.length; i++) {\n _super.prototype.remove.call(this, ds, e.key, data.deleted[i]);\n }\n }\n return data;\n };\n /**\n * Prepare the request body based on the newly added, removed and updated records.\n * Also perform the changes in the locally cached data to sync with the remote data.\n * The result is used by the batch request.\n *\n * @param {DataManager} dm\n * @param {CrudOptions} changes\n * @param {RemoteArgs} e\n * @param query\n * @param original\n */\n RemoteSaveAdaptor.prototype.batchRequest = function (dm, changes, e, query, original) {\n return {\n type: 'POST',\n url: dm.dataSource.batchUrl || dm.dataSource.crudUrl || dm.dataSource.url,\n contentType: 'application/json; charset=utf-8',\n dataType: 'json',\n data: JSON.stringify(extend({}, {\n changed: changes.changedRecords,\n added: changes.addedRecords,\n deleted: changes.deletedRecords,\n action: 'batch',\n table: e.url,\n key: e.key\n }, DataUtil.getAddParams(this, dm, query)))\n };\n };\n RemoteSaveAdaptor.prototype.addParams = function (options) {\n var urlParams = new UrlAdaptor();\n urlParams.addParams(options);\n };\n return RemoteSaveAdaptor;\n}(JsonAdaptor));\nexport { RemoteSaveAdaptor };\n/**\n * Ajax Adaptor that is extended from URL Adaptor, is used for handle data operations with user defined functions.\n *\n * @hidden\n */\nvar CustomDataAdaptor = /** @class */ (function (_super) {\n __extends(CustomDataAdaptor, _super);\n function CustomDataAdaptor(props) {\n var _this = _super.call(this) || this;\n // options replaced the default adaptor options\n _this.options = extend({}, _this.options, {\n getData: new Function(),\n addRecord: new Function(),\n updateRecord: new Function(),\n deleteRecord: new Function(),\n batchUpdate: new Function()\n });\n extend(_this.options, props || {});\n return _this;\n }\n CustomDataAdaptor.prototype.getModuleName = function () {\n return 'CustomDataAdaptor';\n };\n return CustomDataAdaptor;\n}(UrlAdaptor));\nexport { CustomDataAdaptor };\n/**\n * The GraphqlAdaptor that is extended from URL Adaptor, is used for retrieving data from the Graphql server.\n * It interacts with the Graphql server with all the DataManager Queries and performs CRUD operations.\n *\n * @hidden\n */\nvar GraphQLAdaptor = /** @class */ (function (_super) {\n __extends(GraphQLAdaptor, _super);\n function GraphQLAdaptor(options) {\n var _this = _super.call(this) || this;\n _this.opt = options;\n _this.schema = _this.opt.response;\n _this.query = _this.opt.query;\n /* eslint-disable @typescript-eslint/no-empty-function */\n // tslint:disable-next-line:no-empty\n _this.getVariables = _this.opt.getVariables ? _this.opt.getVariables : function () { };\n /* eslint-enable @typescript-eslint/no-empty-function */\n _this.getQuery = function () { return _this.query; };\n return _this;\n }\n GraphQLAdaptor.prototype.getModuleName = function () {\n return 'GraphQLAdaptor';\n };\n /**\n * Process the JSON data based on the provided queries.\n *\n * @param {DataManager} dm\n * @param {Query} query?\n * @param datamanager\n * @param query\n */\n GraphQLAdaptor.prototype.processQuery = function (datamanager, query) {\n var urlQuery = _super.prototype.processQuery.apply(this, arguments);\n var dm = JSON.parse(urlQuery.data);\n // constructing GraphQL parameters\n var keys = ['skip', 'take', 'sorted', 'table', 'select', 'where',\n 'search', 'requiresCounts', 'aggregates', 'params'];\n var temp = {};\n var str = 'searchwhereparams';\n keys.filter(function (e) {\n temp[e] = str.indexOf(e) > -1 ? JSON.stringify(dm[e]) : dm[e];\n });\n var vars = this.getVariables() || {};\n // tslint:disable-next-line:no-string-literal\n vars['datamanager'] = temp;\n var data = JSON.stringify({\n query: this.getQuery(),\n variables: vars\n });\n urlQuery.data = data;\n return urlQuery;\n };\n /**\n * Returns the data from the query processing.\n * It will also cache the data for later usage.\n *\n * @param {DataResult} data\n * @param {DataManager} ds?\n * @param {Query} query?\n * @param {XMLHttpRequest} xhr?\n * @param {Object} request?\n * @param resData\n * @param ds\n * @param query\n * @param xhr\n * @param request\n * @returns DataResult\n */\n GraphQLAdaptor.prototype.processResponse = function (resData, ds, query, xhr, request) {\n var res = resData;\n var count;\n var aggregates;\n var result = getValue(this.schema.result, res.data);\n if (this.schema.count) {\n count = getValue(this.schema.count, res.data);\n }\n if (this.schema.aggregates) {\n aggregates = getValue(this.schema.aggregates, res.data);\n aggregates = !isNullOrUndefined(aggregates) ? DataUtil.parse.parseJson(aggregates) : aggregates;\n }\n var pvt = request.pvtData || {};\n var args = { result: result, aggregates: aggregates };\n var data = args;\n if (pvt && pvt.groups && pvt.groups.length) {\n this.getAggregateResult(pvt, data, args, null, query);\n }\n return !isNullOrUndefined(count) ? { result: args.result, count: count, aggregates: aggregates } : args.result;\n };\n /**\n * Prepare and returns request body which is used to insert a new record in the table.\n */\n GraphQLAdaptor.prototype.insert = function () {\n var inserted = _super.prototype.insert.apply(this, arguments);\n return this.generateCrudData(inserted, 'insert');\n };\n /**\n * Prepare and returns request body which is used to update a new record in the table.\n */\n GraphQLAdaptor.prototype.update = function () {\n var inserted = _super.prototype.update.apply(this, arguments);\n return this.generateCrudData(inserted, 'update');\n };\n /**\n * Prepare and returns request body which is used to remove a new record in the table.\n */\n GraphQLAdaptor.prototype.remove = function () {\n var inserted = _super.prototype.remove.apply(this, arguments);\n return this.generateCrudData(inserted, 'remove');\n };\n /**\n * Prepare the request body based on the newly added, removed and updated records.\n * The result is used by the batch request.\n *\n * @param {DataManager} dm\n * @param {CrudOptions} changes\n * @param {Object} e\n * @param e.key\n * @param {Query} query\n * @param {Object} original\n */\n GraphQLAdaptor.prototype.batchRequest = function (dm, changes, e, query, original) {\n var batch = _super.prototype.batchRequest.apply(this, arguments);\n // tslint:disable-next-line:typedef\n var bData = JSON.parse(batch.data);\n bData.key = e.key;\n batch.data = JSON.stringify(bData);\n return this.generateCrudData(batch, 'batch');\n };\n GraphQLAdaptor.prototype.generateCrudData = function (crudData, action) {\n var parsed = JSON.parse(crudData.data);\n crudData.data = JSON.stringify({\n query: this.opt.getMutation(action),\n variables: parsed\n });\n return crudData;\n };\n return GraphQLAdaptor;\n}(UrlAdaptor));\nexport { GraphQLAdaptor };\n/**\n * Cache Adaptor is used to cache the data of the visited pages. It prevents new requests for the previously visited pages.\n * You can configure cache page size and duration of caching by using cachingPageSize and timeTillExpiration properties of the DataManager\n *\n * @hidden\n */\nvar CacheAdaptor = /** @class */ (function (_super) {\n __extends(CacheAdaptor, _super);\n /**\n * Constructor for CacheAdaptor class.\n *\n * @param {CacheAdaptor} adaptor?\n * @param {number} timeStamp?\n * @param {number} pageSize?\n * @param adaptor\n * @param timeStamp\n * @param pageSize\n * @hidden\n */\n function CacheAdaptor(adaptor, timeStamp, pageSize) {\n var _this = _super.call(this) || this;\n _this.isCrudAction = false;\n _this.isInsertAction = false;\n if (!isNullOrUndefined(adaptor)) {\n _this.cacheAdaptor = adaptor;\n }\n _this.pageSize = pageSize;\n _this.guidId = DataUtil.getGuid('cacheAdaptor');\n var obj = { keys: [], results: [] };\n window.localStorage.setItem(_this.guidId, JSON.stringify(obj));\n var guid = _this.guidId;\n if (!isNullOrUndefined(timeStamp)) {\n setInterval(function () {\n var data = DataUtil.parse.parseJson(window.localStorage.getItem(guid));\n var forDel = [];\n for (var i = 0; i < data.results.length; i++) {\n var currentTime = +new Date();\n var requestTime = +new Date(data.results[i].timeStamp);\n data.results[i].timeStamp = currentTime - requestTime;\n if (currentTime - requestTime > timeStamp) {\n forDel.push(i);\n }\n }\n for (var i = 0; i < forDel.length; i++) {\n data.results.splice(forDel[i], 1);\n data.keys.splice(forDel[i], 1);\n }\n window.localStorage.removeItem(guid);\n window.localStorage.setItem(guid, JSON.stringify(data));\n }, timeStamp);\n }\n return _this;\n }\n /**\n * It will generate the key based on the URL when we send a request to server.\n *\n * @param {string} url\n * @param {Query} query?\n * @param query\n * @hidden\n */\n CacheAdaptor.prototype.generateKey = function (url, query) {\n var queries = this.getQueryRequest(query);\n var singles = Query.filterQueryLists(query.queries, ['onSelect', 'onPage', 'onSkip', 'onTake', 'onRange']);\n var key = url;\n var page = 'onPage';\n if (page in singles) {\n key += singles[page].pageIndex;\n }\n queries.sorts.forEach(function (obj) {\n key += obj.e.direction + obj.e.fieldName;\n });\n queries.groups.forEach(function (obj) {\n key += obj.e.fieldName;\n });\n queries.searches.forEach(function (obj) {\n key += obj.e.searchKey;\n });\n for (var filter = 0; filter < queries.filters.length; filter++) {\n var currentFilter = queries.filters[filter];\n if (currentFilter.e.isComplex) {\n var newQuery = query.clone();\n newQuery.queries = [];\n for (var i = 0; i < currentFilter.e.predicates.length; i++) {\n newQuery.queries.push({ fn: 'onWhere', e: currentFilter.e.predicates[i], filter: query.queries.filter });\n }\n key += currentFilter.e.condition + this.generateKey(url, newQuery);\n }\n else {\n key += currentFilter.e.field + currentFilter.e.operator + currentFilter.e.value;\n }\n }\n return key;\n };\n /**\n * Process the query to generate request body.\n * If the data is already cached, it will return the cached data.\n *\n * @param {DataManager} dm\n * @param {Query} query?\n * @param {Object[]} hierarchyFilters?\n * @param query\n * @param hierarchyFilters\n */\n CacheAdaptor.prototype.processQuery = function (dm, query, hierarchyFilters) {\n var key = this.generateKey(dm.dataSource.url, query);\n var cachedItems = DataUtil.parse.parseJson(window.localStorage.getItem(this.guidId));\n var data = cachedItems ? cachedItems.results[cachedItems.keys.indexOf(key)] : null;\n if (data != null && !this.isCrudAction && !this.isInsertAction) {\n return data;\n }\n this.isCrudAction = null;\n this.isInsertAction = null;\n /* eslint-disable prefer-spread */\n return this.cacheAdaptor.processQuery.apply(this.cacheAdaptor, [].slice.call(arguments, 0));\n /* eslint-enable prefer-spread */\n };\n /**\n * Returns the data from the query processing.\n * It will also cache the data for later usage.\n *\n * @param {DataResult} data\n * @param {DataManager} ds?\n * @param {Query} query?\n * @param {XMLHttpRequest} xhr?\n * @param {Ajax} request?\n * @param {CrudOptions} changes?\n * @param ds\n * @param query\n * @param xhr\n * @param request\n * @param changes\n */\n CacheAdaptor.prototype.processResponse = function (data, ds, query, xhr, request, changes) {\n if (this.isInsertAction || (request && this.cacheAdaptor.options.batch &&\n DataUtil.endsWith(request.url, this.cacheAdaptor.options.batch) && request.type.toLowerCase() === 'post')) {\n return this.cacheAdaptor.processResponse(data, ds, query, xhr, request, changes);\n }\n /* eslint-disable prefer-spread */\n data = this.cacheAdaptor.processResponse.apply(this.cacheAdaptor, [].slice.call(arguments, 0));\n /* eslint-enable prefer-spread */\n var key = query ? this.generateKey(ds.dataSource.url, query) : ds.dataSource.url;\n var obj = {};\n obj = DataUtil.parse.parseJson(window.localStorage.getItem(this.guidId));\n var index = obj.keys.indexOf(key);\n if (index !== -1) {\n obj.results.splice(index, 1);\n obj.keys.splice(index, 1);\n }\n obj.results[obj.keys.push(key) - 1] = { keys: key, result: data.result, timeStamp: new Date(), count: data.count };\n while (obj.results.length > this.pageSize) {\n obj.results.splice(0, 1);\n obj.keys.splice(0, 1);\n }\n window.localStorage.setItem(this.guidId, JSON.stringify(obj));\n return data;\n };\n /**\n * Method will trigger before send the request to server side. Used to set the custom header or modify the request options.\n *\n * @param {DataManager} dm\n * @param {XMLHttpRequest} request\n * @param {Ajax} settings?\n * @param settings\n */\n CacheAdaptor.prototype.beforeSend = function (dm, request, settings) {\n if (!isNullOrUndefined(this.cacheAdaptor.options.batch) && DataUtil.endsWith(settings.url, this.cacheAdaptor.options.batch)\n && settings.type.toLowerCase() === 'post') {\n request.setRequestHeader('Accept', this.cacheAdaptor.options.multipartAccept);\n }\n if (!dm.dataSource.crossDomain) {\n request.setRequestHeader('Accept', this.cacheAdaptor.options.accept);\n }\n };\n /**\n * Updates existing record and saves the changes to the table.\n *\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {Object} value\n * @param {string} tableName\n */\n CacheAdaptor.prototype.update = function (dm, keyField, value, tableName) {\n this.isCrudAction = true;\n return this.cacheAdaptor.update(dm, keyField, value, tableName);\n };\n /**\n * Prepare and returns request body which is used to insert a new record in the table.\n *\n * @param {DataManager} dm\n * @param {Object} data\n * @param {string} tableName?\n * @param tableName\n */\n CacheAdaptor.prototype.insert = function (dm, data, tableName) {\n this.isInsertAction = true;\n return this.cacheAdaptor.insert(dm, data, tableName);\n };\n /**\n * Prepare and return request body which is used to remove record from the table.\n *\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {Object} value\n * @param {string} tableName?\n * @param tableName\n */\n CacheAdaptor.prototype.remove = function (dm, keyField, value, tableName) {\n this.isCrudAction = true;\n return this.cacheAdaptor.remove(dm, keyField, value, tableName);\n };\n /**\n * Prepare the request body based on the newly added, removed and updated records.\n * The result is used by the batch request.\n *\n * @param {DataManager} dm\n * @param {CrudOptions} changes\n * @param {RemoteArgs} e\n */\n CacheAdaptor.prototype.batchRequest = function (dm, changes, e) {\n return this.cacheAdaptor.batchRequest(dm, changes, e);\n };\n return CacheAdaptor;\n}(UrlAdaptor));\nexport { CacheAdaptor };\n","/* eslint-disable valid-jsdoc */\n/* eslint-disable security/detect-object-injection */\nimport { Ajax } from '@syncfusion/ej2-base';\nimport { extend, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { DataUtil } from './util';\nimport { Query } from './query';\nimport { ODataAdaptor, JsonAdaptor, CacheAdaptor, RemoteSaveAdaptor, CustomDataAdaptor } from './adaptors';\n/**\n * DataManager is used to manage and manipulate relational data.\n */\nvar DataManager = /** @class */ (function () {\n /**\n * Constructor for DataManager class\n *\n * @param {DataOptions|JSON[]} dataSource?\n * @param {Query} query?\n * @param {AdaptorOptions|string} adaptor?\n * @param dataSource\n * @param query\n * @param adaptor\n * @hidden\n */\n function DataManager(dataSource, query, adaptor) {\n var _this = this;\n /** @hidden */\n this.dateParse = true;\n /** @hidden */\n this.timeZoneHandling = true;\n this.requests = [];\n if (!dataSource && !this.dataSource) {\n dataSource = [];\n }\n adaptor = adaptor || dataSource.adaptor;\n if (dataSource && dataSource.timeZoneHandling === false) {\n this.timeZoneHandling = dataSource.timeZoneHandling;\n }\n var data;\n if (dataSource instanceof Array) {\n data = {\n json: dataSource,\n offline: true\n };\n }\n else if (typeof dataSource === 'object') {\n if (!dataSource.json) {\n dataSource.json = [];\n }\n data = {\n url: dataSource.url,\n insertUrl: dataSource.insertUrl,\n removeUrl: dataSource.removeUrl,\n updateUrl: dataSource.updateUrl,\n crudUrl: dataSource.crudUrl,\n batchUrl: dataSource.batchUrl,\n json: dataSource.json,\n headers: dataSource.headers,\n accept: dataSource.accept,\n data: dataSource.data,\n timeTillExpiration: dataSource.timeTillExpiration,\n cachingPageSize: dataSource.cachingPageSize,\n enableCaching: dataSource.enableCaching,\n requestType: dataSource.requestType,\n key: dataSource.key,\n crossDomain: dataSource.crossDomain,\n jsonp: dataSource.jsonp,\n dataType: dataSource.dataType,\n offline: dataSource.offline !== undefined ? dataSource.offline\n : dataSource.adaptor instanceof RemoteSaveAdaptor || dataSource.adaptor instanceof CustomDataAdaptor ?\n false : dataSource.url ? false : true,\n requiresFormat: dataSource.requiresFormat\n };\n }\n else {\n DataUtil.throwError('DataManager: Invalid arguments');\n }\n if (data.requiresFormat === undefined && !DataUtil.isCors()) {\n data.requiresFormat = isNullOrUndefined(data.crossDomain) ? true : data.crossDomain;\n }\n if (data.dataType === undefined) {\n data.dataType = 'json';\n }\n this.dataSource = data;\n this.defaultQuery = query;\n if (data.url && data.offline && !data.json.length) {\n this.isDataAvailable = false;\n this.adaptor = adaptor || new ODataAdaptor();\n this.dataSource.offline = false;\n this.ready = this.executeQuery(query || new Query());\n this.ready.then(function (e) {\n _this.dataSource.offline = true;\n _this.isDataAvailable = true;\n data.json = e.result;\n _this.adaptor = new JsonAdaptor();\n });\n }\n else {\n this.adaptor = data.offline ? new JsonAdaptor() : new ODataAdaptor();\n }\n if (!data.jsonp && this.adaptor instanceof ODataAdaptor) {\n data.jsonp = 'callback';\n }\n this.adaptor = adaptor || this.adaptor;\n if (data.enableCaching) {\n this.adaptor = new CacheAdaptor(this.adaptor, data.timeTillExpiration, data.cachingPageSize);\n }\n return this;\n }\n /**\n * Overrides DataManager's default query with given query.\n *\n * @param {Query} query - Defines the new default query.\n */\n DataManager.prototype.setDefaultQuery = function (query) {\n this.defaultQuery = query;\n return this;\n };\n /**\n * Executes the given query with local data source.\n *\n * @param {Query} query - Defines the query to retrieve data.\n */\n DataManager.prototype.executeLocal = function (query) {\n if (!this.defaultQuery && !(query instanceof Query)) {\n DataUtil.throwError('DataManager - executeLocal() : A query is required to execute');\n }\n if (!this.dataSource.json) {\n DataUtil.throwError('DataManager - executeLocal() : Json data is required to execute');\n }\n query = query || this.defaultQuery;\n var result = this.adaptor.processQuery(this, query);\n if (query.subQuery) {\n var from = query.subQuery.fromTable;\n var lookup = query.subQuery.lookups;\n var res = query.isCountRequired ? result.result :\n result;\n if (lookup && lookup instanceof Array) {\n DataUtil.buildHierarchy(query.subQuery.fKey, from, res, lookup, query.subQuery.key);\n }\n for (var j = 0; j < res.length; j++) {\n if (res[j][from] instanceof Array) {\n res[j] = extend({}, {}, res[j]);\n res[j][from] = this.adaptor.processResponse(query.subQuery.using(new DataManager(res[j][from].slice(0))).executeLocal(), this, query);\n }\n }\n }\n return this.adaptor.processResponse(result, this, query);\n };\n /**\n * Executes the given query with either local or remote data source.\n * It will be executed as asynchronously and returns Promise object which will be resolved or rejected after action completed.\n *\n * @param {Query|Function} query - Defines the query to retrieve data.\n * @param {Function} done - Defines the callback function and triggers when the Promise is resolved.\n * @param {Function} fail - Defines the callback function and triggers when the Promise is rejected.\n * @param {Function} always - Defines the callback function and triggers when the Promise is resolved or rejected.\n */\n DataManager.prototype.executeQuery = function (query, done, fail, always) {\n var _this = this;\n var makeRequest = 'makeRequest';\n if (typeof query === 'function') {\n always = fail;\n fail = done;\n done = query;\n query = null;\n }\n if (!query) {\n query = this.defaultQuery;\n }\n if (!(query instanceof Query)) {\n DataUtil.throwError('DataManager - executeQuery() : A query is required to execute');\n }\n var deffered = new Deferred();\n var args = { query: query };\n if (!this.dataSource.offline && (this.dataSource.url !== undefined && this.dataSource.url !== '')\n || (!isNullOrUndefined(this.adaptor[makeRequest])) || this.isCustomDataAdaptor(this.adaptor)) {\n var result = this.adaptor.processQuery(this, query);\n if (!isNullOrUndefined(this.adaptor[makeRequest])) {\n this.adaptor[makeRequest](result, deffered, args, query);\n }\n else if (!isNullOrUndefined(result.url) || this.isCustomDataAdaptor(this.adaptor)) {\n this.requests = [];\n this.makeRequest(result, deffered, args, query);\n }\n else {\n args = DataManager.getDeferedArgs(query, result, args);\n deffered.resolve(args);\n }\n }\n else {\n DataManager.nextTick(function () {\n var res = _this.executeLocal(query);\n args = DataManager.getDeferedArgs(query, res, args);\n deffered.resolve(args);\n });\n }\n if (done || fail) {\n deffered.promise.then(done, fail);\n }\n if (always) {\n deffered.promise.then(always, always);\n }\n return deffered.promise;\n };\n DataManager.getDeferedArgs = function (query, result, args) {\n if (query.isCountRequired) {\n args.result = result.result;\n args.count = result.count;\n args.aggregates = result.aggregates;\n }\n else {\n args.result = result;\n }\n return args;\n };\n DataManager.nextTick = function (fn) {\n /* eslint-disable @typescript-eslint/no-explicit-any */\n // tslint:disable-next-line:no-any\n (window.setImmediate || window.setTimeout)(fn, 0);\n /* eslint-enable @typescript-eslint/no-explicit-any */\n };\n DataManager.prototype.extendRequest = function (url, fnSuccess, fnFail) {\n return extend({}, {\n type: 'GET',\n dataType: this.dataSource.dataType,\n crossDomain: this.dataSource.crossDomain,\n jsonp: this.dataSource.jsonp,\n cache: true,\n processData: false,\n onSuccess: fnSuccess,\n onFailure: fnFail\n }, url);\n };\n // tslint:disable-next-line:max-func-body-length\n DataManager.prototype.makeRequest = function (url, deffered, args, query) {\n var _this = this;\n var isSelector = !!query.subQuerySelector;\n var fnFail = function (e) {\n args.error = e;\n deffered.reject(args);\n };\n var process = function (data, count, xhr, request, actual, aggregates, virtualSelectRecords) {\n args.xhr = xhr;\n args.count = count ? parseInt(count.toString(), 10) : 0;\n args.result = data;\n args.request = request;\n args.aggregates = aggregates;\n args.actual = actual;\n args.virtualSelectRecords = virtualSelectRecords;\n deffered.resolve(args);\n };\n var fnQueryChild = function (data, selector) {\n var subDeffer = new Deferred();\n var childArgs = { parent: args };\n query.subQuery.isChild = true;\n var subUrl = _this.adaptor.processQuery(_this, query.subQuery, data ? _this.adaptor.processResponse(data) : selector);\n var childReq = _this.makeRequest(subUrl, subDeffer, childArgs, query.subQuery);\n if (!isSelector) {\n subDeffer.then(function (subData) {\n if (data) {\n DataUtil.buildHierarchy(query.subQuery.fKey, query.subQuery.fromTable, data, subData, query.subQuery.key);\n process(data, subData.count, subData.xhr);\n }\n }, fnFail);\n }\n return childReq;\n };\n var fnSuccess = function (data, request) {\n if (_this.isGraphQLAdaptor(_this.adaptor)) {\n // tslint:disable-next-line:no-string-literal\n if (!isNullOrUndefined(data['errors'])) {\n // tslint:disable-next-line:no-string-literal\n return fnFail(data['errors'], request);\n }\n }\n if (_this.isCustomDataAdaptor(_this.adaptor)) {\n request = extend({}, _this.ajaxReqOption, request);\n }\n if (request.httpRequest.getResponseHeader('Content-Type').indexOf('xml') === -1 && _this.dateParse) {\n data = DataUtil.parse.parseJson(data);\n }\n var result = _this.adaptor.processResponse(data, _this, query, request.httpRequest, request);\n var count = 0;\n var aggregates = null;\n var virtualSelectRecords = 'virtualSelectRecords';\n var virtualRecords = data[virtualSelectRecords];\n if (query.isCountRequired) {\n count = result.count;\n aggregates = result.aggregates;\n result = result.result;\n }\n if (!query.subQuery) {\n process(result, count, request.httpRequest, request.type, data, aggregates, virtualRecords);\n return;\n }\n if (!isSelector) {\n fnQueryChild(result, request);\n }\n };\n var req = this.extendRequest(url, fnSuccess, fnFail);\n if (!this.isCustomDataAdaptor(this.adaptor)) {\n var ajax_1 = new Ajax(req);\n ajax_1.beforeSend = function () {\n _this.beforeSend(ajax_1.httpRequest, ajax_1);\n };\n req = ajax_1.send();\n req.catch(function (e) { return true; }); // to handle failure remote requests.\n this.requests.push(ajax_1);\n }\n else {\n this.ajaxReqOption = req;\n var request = req;\n this.adaptor.options.getData({\n data: request.data,\n onSuccess: request.onSuccess, onFailure: request.onFailure\n });\n }\n if (isSelector) {\n var promise = void 0;\n var res = query.subQuerySelector.call(this, { query: query.subQuery, parent: query });\n if (res && res.length) {\n promise = Promise.all([req, fnQueryChild(null, res)]);\n promise.then(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var result = args[0];\n var pResult = _this.adaptor.processResponse(result[0], _this, query, _this.requests[0].httpRequest, _this.requests[0]);\n var count = 0;\n if (query.isCountRequired) {\n count = pResult.count;\n pResult = pResult.result;\n }\n var cResult = _this.adaptor.processResponse(result[1], _this, query.subQuery, _this.requests[1].httpRequest, _this.requests[1]);\n count = 0;\n if (query.subQuery.isCountRequired) {\n count = cResult.count;\n cResult = cResult.result;\n }\n DataUtil.buildHierarchy(query.subQuery.fKey, query.subQuery.fromTable, pResult, cResult, query.subQuery.key);\n isSelector = false;\n process(pResult, count, _this.requests[0].httpRequest);\n });\n }\n else {\n isSelector = false;\n }\n }\n return req;\n };\n DataManager.prototype.beforeSend = function (request, settings) {\n this.adaptor.beforeSend(this, request, settings);\n var headers = this.dataSource.headers;\n var props;\n for (var i = 0; headers && i < headers.length; i++) {\n props = [];\n var keys = Object.keys(headers[i]);\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var prop = keys_1[_i];\n props.push(prop);\n request.setRequestHeader(prop, headers[i][prop]);\n }\n }\n };\n /**\n * Save bulk changes to the given table name.\n * User can add a new record, edit an existing record, and delete a record at the same time.\n * If the datasource from remote, then updated in a single post.\n *\n * @param {Object} changes - Defines the CrudOptions.\n * @param {string} key - Defines the column field.\n * @param {string|Query} tableName - Defines the table name.\n * @param {Query} query - Sets default query for the DataManager.\n * @param original\n */\n DataManager.prototype.saveChanges = function (changes, key, tableName, query, original) {\n var _this = this;\n if (tableName instanceof Query) {\n query = tableName;\n tableName = null;\n }\n var args = {\n url: tableName,\n key: key || this.dataSource.key\n };\n var req = this.adaptor.batchRequest(this, changes, args, query || new Query(), original);\n var doAjaxRequest = 'doAjaxRequest';\n if (this.dataSource.offline) {\n return req;\n }\n if (!isNullOrUndefined(this.adaptor[doAjaxRequest])) {\n return this.adaptor[doAjaxRequest](req);\n }\n else if (!this.isCustomDataAdaptor(this.adaptor)) {\n var deff_1 = new Deferred();\n var ajax_2 = new Ajax(req);\n ajax_2.beforeSend = function () {\n _this.beforeSend(ajax_2.httpRequest, ajax_2);\n };\n ajax_2.onSuccess = function (data, request) {\n if (_this.isGraphQLAdaptor(_this.adaptor)) {\n // tslint:disable-next-line:no-string-literal\n if (!isNullOrUndefined(data['errors'])) {\n // tslint:disable-next-line:no-string-literal\n ajax_2.onFailure(JSON.stringify(data['errors']));\n }\n }\n deff_1.resolve(_this.adaptor.processResponse(data, _this, null, request.httpRequest, request, changes, args));\n };\n ajax_2.onFailure = function (e) {\n deff_1.reject([{ error: e }]);\n };\n ajax_2.send().catch(function (e) { return true; }); // to handle the failure requests.\n return deff_1.promise;\n }\n else {\n return this.doAjaxRequest(req, this.adaptor.options.batchUpdate);\n }\n };\n /**\n * Inserts new record in the given table.\n *\n * @param {Object} data - Defines the data to insert.\n * @param {string|Query} tableName - Defines the table name.\n * @param {Query} query - Sets default query for the DataManager.\n * @param position\n */\n DataManager.prototype.insert = function (data, tableName, query, position) {\n if (tableName instanceof Query) {\n query = tableName;\n tableName = null;\n }\n var req = this.adaptor.insert(this, data, tableName, query, position);\n var doAjaxRequest = 'doAjaxRequest';\n if (this.dataSource.offline) {\n return req;\n }\n if (!isNullOrUndefined(this.adaptor[doAjaxRequest])) {\n return this.adaptor[doAjaxRequest](req);\n }\n else {\n return this.doAjaxRequest(req, this.adaptor.options.addRecord);\n }\n };\n /**\n * Removes data from the table with the given key.\n *\n * @param {string} keyField - Defines the column field.\n * @param {Object} value - Defines the value to find the data in the specified column.\n * @param {string|Query} tableName - Defines the table name\n * @param {Query} query - Sets default query for the DataManager.\n */\n DataManager.prototype.remove = function (keyField, value, tableName, query) {\n if (typeof value === 'object') {\n value = DataUtil.getObject(keyField, value);\n }\n if (tableName instanceof Query) {\n query = tableName;\n tableName = null;\n }\n var res = this.adaptor.remove(this, keyField, value, tableName, query);\n var doAjaxRequest = 'doAjaxRequest';\n if (this.dataSource.offline) {\n return res;\n }\n if (!isNullOrUndefined(this.adaptor[doAjaxRequest])) {\n return this.adaptor[doAjaxRequest](res);\n }\n else {\n var remove = this.adaptor.options.deleteRecord;\n return this.doAjaxRequest(res, remove);\n }\n };\n /**\n * Updates existing record in the given table.\n *\n * @param {string} keyField - Defines the column field.\n * @param {Object} value - Defines the value to find the data in the specified column.\n * @param {string|Query} tableName - Defines the table name\n * @param {Query} query - Sets default query for the DataManager.\n * @param original\n */\n DataManager.prototype.update = function (keyField, value, tableName, query, original) {\n if (tableName instanceof Query) {\n query = tableName;\n tableName = null;\n }\n var res = this.adaptor.update(this, keyField, value, tableName, query, original);\n var doAjaxRequest = 'doAjaxRequest';\n if (this.dataSource.offline) {\n return res;\n }\n if (!isNullOrUndefined(this.adaptor[doAjaxRequest])) {\n return this.adaptor[doAjaxRequest](res);\n }\n else {\n var update = this.adaptor.options.updateRecord;\n return this.doAjaxRequest(res, update);\n }\n };\n DataManager.prototype.isCustomDataAdaptor = function (dataSource) {\n return this.adaptor.getModuleName &&\n this.adaptor.getModuleName() === 'CustomDataAdaptor';\n };\n DataManager.prototype.isGraphQLAdaptor = function (dataSource) {\n return this.adaptor.getModuleName &&\n this.adaptor.getModuleName() === 'GraphQLAdaptor';\n };\n DataManager.prototype.successFunc = function (record, request) {\n if (this.isGraphQLAdaptor(this.adaptor)) {\n var data = JSON.parse(record);\n // tslint:disable-next-line:no-string-literal\n if (!isNullOrUndefined(data['errors'])) {\n // tslint:disable-next-line:no-string-literal\n this.failureFunc(JSON.stringify(data['errors']));\n }\n }\n if (this.isCustomDataAdaptor(this.adaptor)) {\n request = extend({}, this.ajaxReqOption, request);\n }\n try {\n DataUtil.parse.parseJson(record);\n }\n catch (e) {\n record = [];\n }\n record = this.adaptor.processResponse(DataUtil.parse.parseJson(record), this, null, request.httpRequest, request);\n this.ajaxDeffered.resolve(record);\n };\n DataManager.prototype.failureFunc = function (e) {\n this.ajaxDeffered.reject([{ error: e }]);\n };\n DataManager.prototype.doAjaxRequest = function (res, ajaxFunc) {\n var _this = this;\n res = extend({}, {\n type: 'POST',\n contentType: 'application/json; charset=utf-8',\n processData: false\n }, res);\n this.ajaxDeffered = new Deferred();\n if (!this.isCustomDataAdaptor(this.adaptor)) {\n var ajax_3 = new Ajax(res);\n ajax_3.beforeSend = function () {\n _this.beforeSend(ajax_3.httpRequest, ajax_3);\n };\n ajax_3.onSuccess = this.successFunc.bind(this);\n ajax_3.onFailure = this.failureFunc.bind(this);\n ajax_3.send().catch(function (e) { return true; }); // to handle the failure requests.\n }\n else {\n this.ajaxReqOption = res;\n ajaxFunc.call(this, {\n data: res.data, onSuccess: this.successFunc.bind(this),\n onFailure: this.failureFunc.bind(this)\n });\n }\n return this.ajaxDeffered.promise;\n };\n return DataManager;\n}());\nexport { DataManager };\n/**\n * Deferred is used to handle asynchronous operation.\n */\nvar Deferred = /** @class */ (function () {\n function Deferred() {\n var _this = this;\n /**\n * Promise is an object that represents a value that may not be available yet, but will be resolved at some point in the future.\n */\n this.promise = new Promise(function (resolve, reject) {\n _this.resolve = resolve;\n _this.reject = reject;\n });\n /**\n * Defines the callback function triggers when the Deferred object is resolved.\n */\n this.then = this.promise.then.bind(this.promise);\n /**\n * Defines the callback function triggers when the Deferred object is rejected.\n */\n this.catch = this.promise.catch.bind(this.promise);\n }\n return Deferred;\n}());\nexport { Deferred };\n","/* eslint-disable valid-jsdoc */\n/* eslint-disable security/detect-object-injection */\nimport { isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { DataManager } from './manager';\nimport { Query, Predicate } from './query';\nvar consts = { GroupGuid: '{271bbba0-1ee7}' };\n/**\n * Data manager common utility methods.\n *\n * @hidden\n */\nvar DataUtil = /** @class */ (function () {\n function DataUtil() {\n }\n /**\n * Returns the value by invoking the provided parameter function.\n * If the paramater is not of type function then it will be returned as it is.\n *\n * @param {Function|string|string[]|number} value\n * @param {Object} inst?\n * @param inst\n * @hidden\n */\n DataUtil.getValue = function (value, inst) {\n if (typeof value === 'function') {\n return value.call(inst || {});\n }\n return value;\n };\n /**\n * Returns true if the input string ends with given string.\n *\n * @param {string} input\n * @param {string} substr\n */\n DataUtil.endsWith = function (input, substr) {\n return input.slice && input.slice(-substr.length) === substr;\n };\n /**\n * Returns true if the input string not ends with given string.\n *\n * @param {string} input\n * @param {string} substr\n */\n DataUtil.notEndsWith = function (input, substr) {\n return input.slice && input.slice(-substr.length) !== substr;\n };\n /**\n * Returns true if the input string starts with given string.\n *\n * @param {string} str\n * @param {string} startstr\n * @param input\n * @param start\n */\n DataUtil.startsWith = function (input, start) {\n return input.slice(0, start.length) === start;\n };\n /**\n * Returns true if the input string not starts with given string.\n *\n * @param {string} str\n * @param {string} startstr\n * @param input\n * @param start\n */\n DataUtil.notStartsWith = function (input, start) {\n return input.slice(0, start.length) !== start;\n };\n /**\n * Returns true if the input string pattern(wildcard) matches with given string.\n *\n * @param {string} str\n * @param {string} startstr\n * @param input\n * @param pattern\n */\n DataUtil.wildCard = function (input, pattern) {\n var asteriskSplit;\n var optionalSplit;\n // special character allowed search\n if (pattern.indexOf('(') !== -1) {\n pattern = pattern.split('(').join('[(]');\n }\n if (pattern.indexOf(')') !== -1) {\n pattern = pattern.split(')').join('[)]');\n }\n if (pattern.indexOf('*') !== -1) {\n if (pattern.charAt(0) !== '*') {\n pattern = '^' + pattern;\n }\n if (pattern.charAt(pattern.length - 1) !== '*') {\n pattern = pattern + '$';\n }\n asteriskSplit = pattern.split('*');\n for (var i = 0; i < asteriskSplit.length; i++) {\n if (asteriskSplit[i].indexOf('.') === -1) {\n asteriskSplit[i] = asteriskSplit[i] + '.*';\n }\n else {\n asteriskSplit[i] = asteriskSplit[i] + '*';\n }\n }\n pattern = asteriskSplit.join('');\n }\n if (pattern.indexOf('%3f') !== -1 || pattern.indexOf('?') !== -1) {\n optionalSplit = pattern.indexOf('%3f') !== -1 ? pattern.split('%3f') : pattern.split('?');\n pattern = optionalSplit.join('.');\n }\n // eslint-disable-next-line security/detect-non-literal-regexp\n var regexPattern = new RegExp(pattern, 'g');\n return regexPattern.test(input);\n };\n /**\n * Returns true if the input string pattern(like) matches with given string.\n *\n * @param {string} str\n * @param {string} startstr\n * @param input\n * @param pattern\n */\n DataUtil.like = function (input, pattern) {\n if (pattern.indexOf('%') !== -1) {\n if (pattern.charAt(0) === '%' && pattern.lastIndexOf('%') < 2) {\n pattern = pattern.substring(1, pattern.length);\n return DataUtil.startsWith(DataUtil.toLowerCase(input), DataUtil.toLowerCase(pattern));\n }\n else if (pattern.charAt(pattern.length - 1) === '%' && pattern.indexOf('%') > pattern.length - 3) {\n pattern = pattern.substring(0, pattern.length - 1);\n return DataUtil.endsWith(DataUtil.toLowerCase(input), DataUtil.toLowerCase(pattern));\n }\n else if (pattern.lastIndexOf('%') !== pattern.indexOf('%') && pattern.lastIndexOf('%') > pattern.indexOf('%') + 1) {\n pattern = pattern.substring(pattern.indexOf('%') + 1, pattern.lastIndexOf('%'));\n return input.indexOf(pattern) !== -1;\n }\n else {\n return input.indexOf(pattern) !== -1;\n }\n }\n else {\n return false;\n }\n };\n /**\n * To return the sorting function based on the string.\n *\n * @param {string} order\n * @hidden\n */\n DataUtil.fnSort = function (order) {\n order = order ? DataUtil.toLowerCase(order) : 'ascending';\n if (order === 'ascending') {\n return this.fnAscending;\n }\n return this.fnDescending;\n };\n /**\n * Comparer function which is used to sort the data in ascending order.\n *\n * @param {string|number} x\n * @param {string|number} y\n * @returns number\n */\n DataUtil.fnAscending = function (x, y) {\n if (isNullOrUndefined(x) && isNullOrUndefined(y)) {\n return -1;\n }\n if (y === null || y === undefined) {\n return -1;\n }\n if (typeof x === 'string') {\n return x.localeCompare(y);\n }\n if (x === null || x === undefined) {\n return 1;\n }\n return x - y;\n };\n /**\n * Comparer function which is used to sort the data in descending order.\n *\n * @param {string|number} x\n * @param {string|number} y\n * @returns number\n */\n DataUtil.fnDescending = function (x, y) {\n if (isNullOrUndefined(x) && isNullOrUndefined(y)) {\n return -1;\n }\n if (y === null || y === undefined) {\n return 1;\n }\n if (typeof x === 'string') {\n return x.localeCompare(y) * -1;\n }\n if (x === null || x === undefined) {\n return -1;\n }\n return y - x;\n };\n DataUtil.extractFields = function (obj, fields) {\n var newObj = {};\n for (var i = 0; i < fields.length; i++) {\n newObj = this.setValue(fields[i], this.getObject(fields[i], obj), newObj);\n }\n return newObj;\n };\n /**\n * Select objects by given fields from jsonArray.\n *\n * @param {Object[]} jsonArray\n * @param {string[]} fields\n */\n DataUtil.select = function (jsonArray, fields) {\n var newData = [];\n for (var i = 0; i < jsonArray.length; i++) {\n newData.push(this.extractFields(jsonArray[i], fields));\n }\n return newData;\n };\n /**\n * Group the input data based on the field name.\n * It also performs aggregation of the grouped records based on the aggregates paramater.\n *\n * @param {Object[]} jsonArray\n * @param {string} field?\n * @param {Object[]} agg?\n * @param {number} level?\n * @param {Object[]} groupDs?\n * @param field\n * @param aggregates\n * @param level\n * @param groupDs\n * @param format\n * @param isLazyLoad\n */\n DataUtil.group = function (jsonArray, field, aggregates, level, groupDs, format, isLazyLoad) {\n level = level || 1;\n var jsonData = jsonArray;\n var guid = 'GroupGuid';\n if (jsonData.GroupGuid === consts[guid]) {\n var _loop_1 = function (j) {\n if (!isNullOrUndefined(groupDs)) {\n var indx = -1;\n var temp = groupDs.filter(function (e) { return e.key === jsonData[j].key; });\n indx = groupDs.indexOf(temp[0]);\n jsonData[j].items = this_1.group(jsonData[j].items, field, aggregates, jsonData.level + 1, groupDs[indx].items, format, isLazyLoad);\n jsonData[j].count = groupDs[indx].count;\n }\n else {\n jsonData[j].items = this_1.group(jsonData[j].items, field, aggregates, jsonData.level + 1, null, format, isLazyLoad);\n jsonData[j].count = jsonData[j].items.length;\n }\n };\n var this_1 = this;\n for (var j = 0; j < jsonData.length; j++) {\n _loop_1(j);\n }\n jsonData.childLevels += 1;\n return jsonData;\n }\n var grouped = {};\n var groupedArray = [];\n groupedArray.GroupGuid = consts[guid];\n groupedArray.level = level;\n groupedArray.childLevels = 0;\n groupedArray.records = jsonData;\n var _loop_2 = function (i) {\n var val = this_2.getVal(jsonData, i, field);\n if (!isNullOrUndefined(format)) {\n val = format(val, field);\n }\n if (!grouped[val]) {\n grouped[val] = {\n key: val,\n count: 0,\n items: [],\n aggregates: {},\n field: field\n };\n groupedArray.push(grouped[val]);\n if (!isNullOrUndefined(groupDs)) {\n var tempObj = groupDs.filter(function (e) { return e.key === grouped[val].key; });\n grouped[val].count = tempObj[0].count;\n }\n }\n grouped[val].count = !isNullOrUndefined(groupDs) ? grouped[val].count : grouped[val].count += 1;\n if (!isLazyLoad || (isLazyLoad && aggregates.length)) {\n grouped[val].items.push(jsonData[i]);\n }\n };\n var this_2 = this;\n for (var i = 0; i < jsonData.length; i++) {\n _loop_2(i);\n }\n if (aggregates && aggregates.length) {\n var _loop_3 = function (i) {\n var res = {};\n var fn = void 0;\n var aggs = aggregates;\n for (var j = 0; j < aggregates.length; j++) {\n fn = DataUtil.aggregates[aggregates[j].type];\n if (!isNullOrUndefined(groupDs)) {\n var temp = groupDs.filter(function (e) { return e.key === groupedArray[i].key; });\n if (fn) {\n res[aggs[j].field + ' - ' + aggs[j].type] = fn(temp[0].items, aggs[j].field);\n }\n }\n else {\n if (fn) {\n res[aggs[j].field + ' - ' + aggs[j].type] = fn(groupedArray[i].items, aggs[j].field);\n }\n }\n }\n groupedArray[i].aggregates = res;\n };\n for (var i = 0; i < groupedArray.length; i++) {\n _loop_3(i);\n }\n }\n if (isLazyLoad && groupedArray.length && aggregates.length) {\n for (var i = 0; i < groupedArray.length; i++) {\n groupedArray[i].items = [];\n }\n }\n return jsonData.length && groupedArray || jsonData;\n };\n /**\n * It is used to categorize the multiple items based on a specific field in jsonArray.\n * The hierarchical queries are commonly required when you use foreign key binding.\n *\n * @param {string} fKey\n * @param {string} from\n * @param {Object[]} source\n * @param {Group} lookup?\n * @param {string} pKey?\n * @param lookup\n * @param pKey\n * @hidden\n */\n DataUtil.buildHierarchy = function (fKey, from, source, lookup, pKey) {\n var i;\n var grp = {};\n var temp;\n if (lookup.result) {\n lookup = lookup.result;\n }\n if (lookup.GroupGuid) {\n this.throwError('DataManager: Do not have support Grouping in hierarchy');\n }\n for (i = 0; i < lookup.length; i++) {\n var fKeyData = this.getObject(fKey, lookup[i]);\n temp = grp[fKeyData] || (grp[fKeyData] = []);\n temp.push(lookup[i]);\n }\n for (i = 0; i < source.length; i++) {\n var fKeyData = this.getObject(pKey || fKey, source[i]);\n source[i][from] = grp[fKeyData];\n }\n };\n /**\n * The method used to get the field names which started with specified characters.\n *\n * @param {Object} obj\n * @param {string[]} fields?\n * @param {string} prefix?\n * @param fields\n * @param prefix\n * @hidden\n */\n DataUtil.getFieldList = function (obj, fields, prefix) {\n if (prefix === undefined) {\n prefix = '';\n }\n if (fields === undefined || fields === null) {\n return this.getFieldList(obj, [], prefix);\n }\n var copyObj = obj;\n var keys = Object.keys(obj);\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var prop = keys_1[_i];\n if (typeof copyObj[prop] === 'object' && !(copyObj[prop] instanceof Array)) {\n this.getFieldList(copyObj[prop], fields, prefix + prop + '.');\n }\n else {\n fields.push(prefix + prop);\n }\n }\n return fields;\n };\n /**\n * Gets the value of the property in the given object.\n * The complex object can be accessed by providing the field names concatenated with dot(.).\n *\n * @param {string} nameSpace - The name of the property to be accessed.\n * @param {Object} from - Defines the source object.\n */\n DataUtil.getObject = function (nameSpace, from) {\n if (!nameSpace) {\n return from;\n }\n if (!from) {\n return undefined;\n }\n if (nameSpace.indexOf('.') === -1) {\n var lowerCaseNameSpace = nameSpace.charAt(0).toLowerCase() + nameSpace.slice(1);\n var upperCaseNameSpace = nameSpace.charAt(0).toUpperCase() + nameSpace.slice(1);\n if (!isNullOrUndefined(from[nameSpace])) {\n return from[nameSpace];\n }\n else {\n if (!isNullOrUndefined(from[lowerCaseNameSpace])) {\n return from[lowerCaseNameSpace];\n }\n else if (!isNullOrUndefined(from[upperCaseNameSpace])) {\n return from[upperCaseNameSpace];\n }\n else {\n return null;\n }\n }\n }\n var value = from;\n var splits = nameSpace.split('.');\n for (var i = 0; i < splits.length; i++) {\n if (value == null) {\n break;\n }\n value = value[splits[i]];\n if (value === undefined) {\n var casing = splits[i].charAt(0).toUpperCase() + splits[i].slice(1);\n value = from[casing] || from[casing.charAt(0).toLowerCase() + casing.slice(1)] || null;\n }\n from = value;\n }\n return value;\n };\n /**\n * To set value for the nameSpace in desired object.\n *\n * @param {string} nameSpace - String value to the get the inner object.\n * @param {Object} value - Value that you need to set.\n * @param {Object} obj - Object to get the inner object value.\n * @return { [key: string]: Object; } | Object\n * @hidden\n */\n DataUtil.setValue = function (nameSpace, value, obj) {\n var keys = nameSpace.toString().split('.');\n var start = obj || {};\n var fromObj = start;\n var i;\n var length = keys.length;\n var key;\n for (i = 0; i < length; i++) {\n key = keys[i];\n if (i + 1 === length) {\n fromObj[key] = value === undefined ? undefined : value;\n }\n else if (isNullOrUndefined(fromObj[key])) {\n fromObj[key] = {};\n }\n fromObj = fromObj[key];\n }\n return start;\n };\n /**\n * Sort the given data based on the field and comparer.\n *\n * @param {Object[]} ds - Defines the input data.\n * @param {string} field - Defines the field to be sorted.\n * @param {Function} comparer - Defines the comparer function used to sort the records.\n */\n DataUtil.sort = function (ds, field, comparer) {\n if (ds.length <= 1) {\n return ds;\n }\n var middle = parseInt((ds.length / 2).toString(), 10);\n var left = ds.slice(0, middle);\n var right = ds.slice(middle);\n left = this.sort(left, field, comparer);\n right = this.sort(right, field, comparer);\n return this.merge(left, right, field, comparer);\n };\n DataUtil.ignoreDiacritics = function (value) {\n if (typeof value !== 'string') {\n return value;\n }\n var result = value.split('');\n var newValue = result.map(function (temp) { return temp in DataUtil.diacritics ? DataUtil.diacritics[temp] : temp; });\n return newValue.join('');\n };\n DataUtil.merge = function (left, right, fieldName, comparer) {\n var result = [];\n var current;\n while (left.length > 0 || right.length > 0) {\n if (left.length > 0 && right.length > 0) {\n if (comparer) {\n current = comparer(this.getVal(left, 0, fieldName), this.getVal(right, 0, fieldName), left[0], right[0]) <= 0 ? left : right;\n }\n else {\n current = left[0][fieldName] < left[0][fieldName] ? left : right;\n }\n }\n else {\n current = left.length > 0 ? left : right;\n }\n result.push(current.shift());\n }\n return result;\n };\n DataUtil.getVal = function (array, index, field) {\n return field ? this.getObject(field, array[index]) : array[index];\n };\n DataUtil.toLowerCase = function (val) {\n return val ? typeof val === 'string' ? val.toLowerCase() : val.toString() : (val === 0 || val === false) ? val.toString() : '';\n };\n /**\n * To perform the filter operation with specified adaptor and returns the result.\n *\n * @param {Object} adaptor\n * @param {string} fnName\n * @param {Object} param1?\n * @param {Object} param2?\n * @param param1\n * @param param2\n * @hidden\n */\n DataUtil.callAdaptorFunction = function (adaptor, fnName, param1, param2) {\n if (fnName in adaptor) {\n var res = adaptor[fnName](param1, param2);\n if (!isNullOrUndefined(res)) {\n param1 = res;\n }\n }\n return param1;\n };\n DataUtil.getAddParams = function (adp, dm, query) {\n var req = {};\n DataUtil.callAdaptorFunction(adp, 'addParams', {\n dm: dm,\n query: query,\n params: query.params,\n reqParams: req\n });\n return req;\n };\n /**\n * Checks wheather the given input is a plain object or not.\n *\n * @param {Object|Object[]} obj\n */\n DataUtil.isPlainObject = function (obj) {\n return (!!obj) && (obj.constructor === Object);\n };\n /**\n * Returns true when the browser cross origin request.\n */\n DataUtil.isCors = function () {\n var xhr = null;\n var request = 'XMLHttpRequest';\n try {\n xhr = new window[request]();\n }\n catch (e) {\n // No exception handling\n }\n return !!xhr && ('withCredentials' in xhr);\n };\n /**\n * Generate random GUID value which will be prefixed with the given value.\n *\n * @param {string} prefix\n */\n DataUtil.getGuid = function (prefix) {\n var hexs = '0123456789abcdef';\n var rand;\n return (prefix || '') + '00000000-0000-4000-0000-000000000000'.replace(/0/g, function (val, i) {\n if ('crypto' in window && 'getRandomValues' in crypto) {\n var arr = new Uint8Array(1);\n window.crypto.getRandomValues(arr);\n rand = arr[0] % 16 | 0;\n }\n else {\n rand = Math.random() * 16 | 0;\n }\n return hexs[i === 19 ? rand & 0x3 | 0x8 : rand];\n });\n };\n /**\n * Checks wheather the given value is null or not.\n *\n * @param {string|Object} val\n * @returns boolean\n */\n DataUtil.isNull = function (val) {\n return val === undefined || val === null;\n };\n /**\n * To get the required items from collection of objects.\n *\n * @param {Object[]} array\n * @param {string} field\n * @param {Function} comparer\n * @returns Object\n * @hidden\n */\n DataUtil.getItemFromComparer = function (array, field, comparer) {\n var keyVal;\n var current;\n var key;\n var i = 0;\n var castRequired = typeof DataUtil.getVal(array, 0, field) === 'string';\n if (array.length) {\n while (isNullOrUndefined(keyVal) && i < array.length) {\n keyVal = DataUtil.getVal(array, i, field);\n key = array[i++];\n }\n }\n for (; i < array.length; i++) {\n current = DataUtil.getVal(array, i, field);\n if (isNullOrUndefined(current)) {\n continue;\n }\n if (castRequired) {\n keyVal = +keyVal;\n current = +current;\n }\n if (comparer(keyVal, current) > 0) {\n keyVal = current;\n key = array[i];\n }\n }\n return key;\n };\n /**\n * To get distinct values of Array or Array of Objects.\n *\n * @param {Object[]} json\n * @param {string} field\n * @param fieldName\n * @param {boolean} requiresCompleteRecord\n * @returns Object[]\n * * distinct array of objects is return when requiresCompleteRecord set as true.\n * @hidden\n */\n DataUtil.distinct = function (json, fieldName, requiresCompleteRecord) {\n requiresCompleteRecord = isNullOrUndefined(requiresCompleteRecord) ? false : requiresCompleteRecord;\n var result = [];\n var val;\n var tmp = {};\n json.forEach(function (data, index) {\n val = typeof (json[index]) === 'object' ? DataUtil.getVal(json, index, fieldName) : json[index];\n if (!(val in tmp)) {\n result.push(!requiresCompleteRecord ? val : json[index]);\n tmp[val] = 1;\n }\n });\n return result;\n };\n /**\n * Process the given records based on the datamanager string.\n *\n * @param {string} datamanager\n * @param dm\n * @param {Object[]} records\n */\n DataUtil.processData = function (dm, records) {\n var query = this.prepareQuery(dm);\n var sampledata = new DataManager(records);\n if (dm.requiresCounts) {\n query.requiresCount();\n }\n /* eslint-disable @typescript-eslint/no-explicit-any */\n // tslint:disable-next-line:no-any\n var result = sampledata.executeLocal(query);\n /* eslint-enable @typescript-eslint/no-explicit-any */\n var returnValue = {\n result: dm.requiresCounts ? result.result : result,\n count: result.count,\n aggregates: JSON.stringify(result.aggregates)\n };\n return dm.requiresCounts ? returnValue : result;\n };\n DataUtil.prepareQuery = function (dm) {\n var _this = this;\n var query = new Query();\n if (dm.select) {\n query.select(dm.select);\n }\n if (dm.where) {\n var where = DataUtil.parse.parseJson(dm.where);\n where.filter(function (pred) {\n if (isNullOrUndefined(pred.condition)) {\n query.where(pred.field, pred.operator, pred.value, pred.ignoreCase, pred.ignoreAccent);\n }\n else {\n var predicateList = [];\n if (pred.field) {\n predicateList.push(new Predicate(pred.field, pred.operator, pred.value, pred.ignoreCase, pred.ignoreAccent));\n }\n else {\n predicateList = predicateList.concat(_this.getPredicate(pred.predicates));\n }\n if (pred.condition === 'or') {\n query.where(Predicate.or(predicateList));\n }\n else if (pred.condition === 'and') {\n query.where(Predicate.and(predicateList));\n }\n }\n });\n }\n if (dm.search) {\n var search = DataUtil.parse.parseJson(dm.search);\n // tslint:disable-next-line:no-string-literal\n search.filter(function (e) { return query.search(e.key, e.fields, e['operator'], \n // tslint:disable-next-line:no-string-literal\n e['ignoreCase'], e['ignoreAccent']); });\n }\n if (dm.aggregates) {\n dm.aggregates.filter(function (e) { return query.aggregate(e.type, e.field); });\n }\n if (dm.sorted) {\n dm.sorted.filter(function (e) { return query.sortBy(e.name, e.direction); });\n }\n if (dm.skip) {\n query.skip(dm.skip);\n }\n if (dm.take) {\n query.take(dm.take);\n }\n if (dm.group) {\n dm.group.filter(function (grp) { return query.group(grp); });\n }\n return query;\n };\n DataUtil.getPredicate = function (pred) {\n var mainPred = [];\n for (var i = 0; i < pred.length; i++) {\n var e = pred[i];\n if (e.field) {\n mainPred.push(new Predicate(e.field, e.operator, e.value, e.ignoreCase, e.ignoreAccent));\n }\n else {\n var childPred = [];\n // tslint:disable-next-line:typedef\n var cpre = this.getPredicate(e.predicates);\n for (var _i = 0, _a = Object.keys(cpre); _i < _a.length; _i++) {\n var prop = _a[_i];\n childPred.push(cpre[prop]);\n }\n mainPred.push(e.condition === 'or' ? Predicate.or(childPred) : Predicate.and(childPred));\n }\n }\n return mainPred;\n };\n /**\n * Specifies the value which will be used to adjust the date value to server timezone.\n *\n * @default null\n */\n DataUtil.serverTimezoneOffset = null;\n /**\n * Species whether are not to be parsed with serverTimezoneOffset value.\n *\n * @hidden\n */\n DataUtil.timeZoneHandling = true;\n /**\n * Throw error with the given string as message.\n *\n * @param {string} er\n * @param error\n */\n DataUtil.throwError = function (error) {\n try {\n throw new Error(error);\n }\n catch (e) {\n // eslint-disable-next-line no-throw-literal\n throw e.message + '\\n' + e.stack;\n }\n };\n DataUtil.aggregates = {\n /**\n * Calculate sum of the given field in the data.\n *\n * @param {Object[]} ds\n * @param {string} field\n */\n sum: function (ds, field) {\n var result = 0;\n var val;\n var castRequired = typeof DataUtil.getVal(ds, 0, field) !== 'number';\n for (var i = 0; i < ds.length; i++) {\n val = DataUtil.getVal(ds, i, field);\n if (!isNaN(val) && val !== null) {\n if (castRequired) {\n val = +val;\n }\n result += val;\n }\n }\n return result;\n },\n /**\n * Calculate average value of the given field in the data.\n *\n * @param {Object[]} ds\n * @param {string} field\n */\n average: function (ds, field) {\n return DataUtil.aggregates.sum(ds, field) / ds.length;\n },\n /**\n * Returns the min value of the data based on the field.\n *\n * @param {Object[]} ds\n * @param {string|Function} field\n */\n min: function (ds, field) {\n var comparer;\n if (typeof field === 'function') {\n comparer = field;\n field = null;\n }\n return DataUtil.getObject(field, DataUtil.getItemFromComparer(ds, field, comparer || DataUtil.fnAscending));\n },\n /**\n * Returns the max value of the data based on the field.\n *\n * @param {Object[]} ds\n * @param {string} field\n * @returns number\n */\n max: function (ds, field) {\n var comparer;\n if (typeof field === 'function') {\n comparer = field;\n field = null;\n }\n return DataUtil.getObject(field, DataUtil.getItemFromComparer(ds, field, comparer || DataUtil.fnDescending));\n },\n /**\n * Returns the total number of true value present in the data based on the given boolean field name.\n *\n * @param {Object[]} ds\n * @param {string} field\n */\n truecount: function (ds, field) {\n return new DataManager(ds).executeLocal(new Query().where(field, 'equal', true, true)).length;\n },\n /**\n * Returns the total number of false value present in the data based on the given boolean field name.\n *\n * @param {Object[]} ds\n * @param {string} field\n */\n falsecount: function (ds, field) {\n return new DataManager(ds).executeLocal(new Query().where(field, 'equal', false, true)).length;\n },\n /**\n * Returns the length of the given data.\n *\n * @param {Object[]} ds\n * @param {string} field?\n * @param field\n * @returns number\n */\n count: function (ds, field) {\n return ds.length;\n }\n };\n /**\n * Specifies the Object with filter operators.\n */\n DataUtil.operatorSymbols = {\n '<': 'lessthan',\n '>': 'greaterthan',\n '<=': 'lessthanorequal',\n '>=': 'greaterthanorequal',\n '==': 'equal',\n '!=': 'notequal',\n '*=': 'contains',\n '$=': 'endswith',\n '^=': 'startswith'\n };\n /**\n * Specifies the Object with filter operators which will be used for OData filter query generation.\n * * It will be used for date/number type filter query.\n */\n DataUtil.odBiOperator = {\n '<': ' lt ',\n '>': ' gt ',\n '<=': ' le ',\n '>=': ' ge ',\n '==': ' eq ',\n '!=': ' ne ',\n 'lessthan': ' lt ',\n 'lessthanorequal': ' le ',\n 'greaterthan': ' gt ',\n 'greaterthanorequal': ' ge ',\n 'equal': ' eq ',\n 'notequal': ' ne '\n };\n /**\n * Specifies the Object with filter operators which will be used for OData filter query generation.\n * It will be used for string type filter query.\n */\n DataUtil.odUniOperator = {\n '$=': 'endswith',\n '^=': 'startswith',\n '*=': 'substringof',\n 'endswith': 'endswith',\n 'startswith': 'startswith',\n 'contains': 'substringof',\n 'doesnotendwith': 'not endswith',\n 'doesnotstartwith': 'not startswith',\n 'doesnotcontain': 'not substringof',\n 'wildcard': 'wildcard',\n 'like': 'like'\n };\n /**\n * Specifies the Object with filter operators which will be used for ODataV4 filter query generation.\n * It will be used for string type filter query.\n */\n DataUtil.odv4UniOperator = {\n '$=': 'endswith',\n '^=': 'startswith',\n '*=': 'contains',\n 'endswith': 'endswith',\n 'startswith': 'startswith',\n 'contains': 'contains',\n 'doesnotendwith': 'not endswith',\n 'doesnotstartwith': 'not startswith',\n 'doesnotcontain': 'not contains',\n 'wildcard': 'wildcard',\n 'like': 'like'\n };\n DataUtil.diacritics = {\n '\\u24B6': 'A',\n '\\uFF21': 'A',\n '\\u00C0': 'A',\n '\\u00C1': 'A',\n '\\u00C2': 'A',\n '\\u1EA6': 'A',\n '\\u1EA4': 'A',\n '\\u1EAA': 'A',\n '\\u1EA8': 'A',\n '\\u00C3': 'A',\n '\\u0100': 'A',\n '\\u0102': 'A',\n '\\u1EB0': 'A',\n '\\u1EAE': 'A',\n '\\u1EB4': 'A',\n '\\u1EB2': 'A',\n '\\u0226': 'A',\n '\\u01E0': 'A',\n '\\u00C4': 'A',\n '\\u01DE': 'A',\n '\\u1EA2': 'A',\n '\\u00C5': 'A',\n '\\u01FA': 'A',\n '\\u01CD': 'A',\n '\\u0200': 'A',\n '\\u0202': 'A',\n '\\u1EA0': 'A',\n '\\u1EAC': 'A',\n '\\u1EB6': 'A',\n '\\u1E00': 'A',\n '\\u0104': 'A',\n '\\u023A': 'A',\n '\\u2C6F': 'A',\n '\\uA732': 'AA',\n '\\u00C6': 'AE',\n '\\u01FC': 'AE',\n '\\u01E2': 'AE',\n '\\uA734': 'AO',\n '\\uA736': 'AU',\n '\\uA738': 'AV',\n '\\uA73A': 'AV',\n '\\uA73C': 'AY',\n '\\u24B7': 'B',\n '\\uFF22': 'B',\n '\\u1E02': 'B',\n '\\u1E04': 'B',\n '\\u1E06': 'B',\n '\\u0243': 'B',\n '\\u0182': 'B',\n '\\u0181': 'B',\n '\\u24B8': 'C',\n '\\uFF23': 'C',\n '\\u0106': 'C',\n '\\u0108': 'C',\n '\\u010A': 'C',\n '\\u010C': 'C',\n '\\u00C7': 'C',\n '\\u1E08': 'C',\n '\\u0187': 'C',\n '\\u023B': 'C',\n '\\uA73E': 'C',\n '\\u24B9': 'D',\n '\\uFF24': 'D',\n '\\u1E0A': 'D',\n '\\u010E': 'D',\n '\\u1E0C': 'D',\n '\\u1E10': 'D',\n '\\u1E12': 'D',\n '\\u1E0E': 'D',\n '\\u0110': 'D',\n '\\u018B': 'D',\n '\\u018A': 'D',\n '\\u0189': 'D',\n '\\uA779': 'D',\n '\\u01F1': 'DZ',\n '\\u01C4': 'DZ',\n '\\u01F2': 'Dz',\n '\\u01C5': 'Dz',\n '\\u24BA': 'E',\n '\\uFF25': 'E',\n '\\u00C8': 'E',\n '\\u00C9': 'E',\n '\\u00CA': 'E',\n '\\u1EC0': 'E',\n '\\u1EBE': 'E',\n '\\u1EC4': 'E',\n '\\u1EC2': 'E',\n '\\u1EBC': 'E',\n '\\u0112': 'E',\n '\\u1E14': 'E',\n '\\u1E16': 'E',\n '\\u0114': 'E',\n '\\u0116': 'E',\n '\\u00CB': 'E',\n '\\u1EBA': 'E',\n '\\u011A': 'E',\n '\\u0204': 'E',\n '\\u0206': 'E',\n '\\u1EB8': 'E',\n '\\u1EC6': 'E',\n '\\u0228': 'E',\n '\\u1E1C': 'E',\n '\\u0118': 'E',\n '\\u1E18': 'E',\n '\\u1E1A': 'E',\n '\\u0190': 'E',\n '\\u018E': 'E',\n '\\u24BB': 'F',\n '\\uFF26': 'F',\n '\\u1E1E': 'F',\n '\\u0191': 'F',\n '\\uA77B': 'F',\n '\\u24BC': 'G',\n '\\uFF27': 'G',\n '\\u01F4': 'G',\n '\\u011C': 'G',\n '\\u1E20': 'G',\n '\\u011E': 'G',\n '\\u0120': 'G',\n '\\u01E6': 'G',\n '\\u0122': 'G',\n '\\u01E4': 'G',\n '\\u0193': 'G',\n '\\uA7A0': 'G',\n '\\uA77D': 'G',\n '\\uA77E': 'G',\n '\\u24BD': 'H',\n '\\uFF28': 'H',\n '\\u0124': 'H',\n '\\u1E22': 'H',\n '\\u1E26': 'H',\n '\\u021E': 'H',\n '\\u1E24': 'H',\n '\\u1E28': 'H',\n '\\u1E2A': 'H',\n '\\u0126': 'H',\n '\\u2C67': 'H',\n '\\u2C75': 'H',\n '\\uA78D': 'H',\n '\\u24BE': 'I',\n '\\uFF29': 'I',\n '\\u00CC': 'I',\n '\\u00CD': 'I',\n '\\u00CE': 'I',\n '\\u0128': 'I',\n '\\u012A': 'I',\n '\\u012C': 'I',\n '\\u0130': 'I',\n '\\u00CF': 'I',\n '\\u1E2E': 'I',\n '\\u1EC8': 'I',\n '\\u01CF': 'I',\n '\\u0208': 'I',\n '\\u020A': 'I',\n '\\u1ECA': 'I',\n '\\u012E': 'I',\n '\\u1E2C': 'I',\n '\\u0197': 'I',\n '\\u24BF': 'J',\n '\\uFF2A': 'J',\n '\\u0134': 'J',\n '\\u0248': 'J',\n '\\u24C0': 'K',\n '\\uFF2B': 'K',\n '\\u1E30': 'K',\n '\\u01E8': 'K',\n '\\u1E32': 'K',\n '\\u0136': 'K',\n '\\u1E34': 'K',\n '\\u0198': 'K',\n '\\u2C69': 'K',\n '\\uA740': 'K',\n '\\uA742': 'K',\n '\\uA744': 'K',\n '\\uA7A2': 'K',\n '\\u24C1': 'L',\n '\\uFF2C': 'L',\n '\\u013F': 'L',\n '\\u0139': 'L',\n '\\u013D': 'L',\n '\\u1E36': 'L',\n '\\u1E38': 'L',\n '\\u013B': 'L',\n '\\u1E3C': 'L',\n '\\u1E3A': 'L',\n '\\u0141': 'L',\n '\\u023D': 'L',\n '\\u2C62': 'L',\n '\\u2C60': 'L',\n '\\uA748': 'L',\n '\\uA746': 'L',\n '\\uA780': 'L',\n '\\u01C7': 'LJ',\n '\\u01C8': 'Lj',\n '\\u24C2': 'M',\n '\\uFF2D': 'M',\n '\\u1E3E': 'M',\n '\\u1E40': 'M',\n '\\u1E42': 'M',\n '\\u2C6E': 'M',\n '\\u019C': 'M',\n '\\u24C3': 'N',\n '\\uFF2E': 'N',\n '\\u01F8': 'N',\n '\\u0143': 'N',\n '\\u00D1': 'N',\n '\\u1E44': 'N',\n '\\u0147': 'N',\n '\\u1E46': 'N',\n '\\u0145': 'N',\n '\\u1E4A': 'N',\n '\\u1E48': 'N',\n '\\u0220': 'N',\n '\\u019D': 'N',\n '\\uA790': 'N',\n '\\uA7A4': 'N',\n '\\u01CA': 'NJ',\n '\\u01CB': 'Nj',\n '\\u24C4': 'O',\n '\\uFF2F': 'O',\n '\\u00D2': 'O',\n '\\u00D3': 'O',\n '\\u00D4': 'O',\n '\\u1ED2': 'O',\n '\\u1ED0': 'O',\n '\\u1ED6': 'O',\n '\\u1ED4': 'O',\n '\\u00D5': 'O',\n '\\u1E4C': 'O',\n '\\u022C': 'O',\n '\\u1E4E': 'O',\n '\\u014C': 'O',\n '\\u1E50': 'O',\n '\\u1E52': 'O',\n '\\u014E': 'O',\n '\\u022E': 'O',\n '\\u0230': 'O',\n '\\u00D6': 'O',\n '\\u022A': 'O',\n '\\u1ECE': 'O',\n '\\u0150': 'O',\n '\\u01D1': 'O',\n '\\u020C': 'O',\n '\\u020E': 'O',\n '\\u01A0': 'O',\n '\\u1EDC': 'O',\n '\\u1EDA': 'O',\n '\\u1EE0': 'O',\n '\\u1EDE': 'O',\n '\\u1EE2': 'O',\n '\\u1ECC': 'O',\n '\\u1ED8': 'O',\n '\\u01EA': 'O',\n '\\u01EC': 'O',\n '\\u00D8': 'O',\n '\\u01FE': 'O',\n '\\u0186': 'O',\n '\\u019F': 'O',\n '\\uA74A': 'O',\n '\\uA74C': 'O',\n '\\u01A2': 'OI',\n '\\uA74E': 'OO',\n '\\u0222': 'OU',\n '\\u24C5': 'P',\n '\\uFF30': 'P',\n '\\u1E54': 'P',\n '\\u1E56': 'P',\n '\\u01A4': 'P',\n '\\u2C63': 'P',\n '\\uA750': 'P',\n '\\uA752': 'P',\n '\\uA754': 'P',\n '\\u24C6': 'Q',\n '\\uFF31': 'Q',\n '\\uA756': 'Q',\n '\\uA758': 'Q',\n '\\u024A': 'Q',\n '\\u24C7': 'R',\n '\\uFF32': 'R',\n '\\u0154': 'R',\n '\\u1E58': 'R',\n '\\u0158': 'R',\n '\\u0210': 'R',\n '\\u0212': 'R',\n '\\u1E5A': 'R',\n '\\u1E5C': 'R',\n '\\u0156': 'R',\n '\\u1E5E': 'R',\n '\\u024C': 'R',\n '\\u2C64': 'R',\n '\\uA75A': 'R',\n '\\uA7A6': 'R',\n '\\uA782': 'R',\n '\\u24C8': 'S',\n '\\uFF33': 'S',\n '\\u1E9E': 'S',\n '\\u015A': 'S',\n '\\u1E64': 'S',\n '\\u015C': 'S',\n '\\u1E60': 'S',\n '\\u0160': 'S',\n '\\u1E66': 'S',\n '\\u1E62': 'S',\n '\\u1E68': 'S',\n '\\u0218': 'S',\n '\\u015E': 'S',\n '\\u2C7E': 'S',\n '\\uA7A8': 'S',\n '\\uA784': 'S',\n '\\u24C9': 'T',\n '\\uFF34': 'T',\n '\\u1E6A': 'T',\n '\\u0164': 'T',\n '\\u1E6C': 'T',\n '\\u021A': 'T',\n '\\u0162': 'T',\n '\\u1E70': 'T',\n '\\u1E6E': 'T',\n '\\u0166': 'T',\n '\\u01AC': 'T',\n '\\u01AE': 'T',\n '\\u023E': 'T',\n '\\uA786': 'T',\n '\\uA728': 'TZ',\n '\\u24CA': 'U',\n '\\uFF35': 'U',\n '\\u00D9': 'U',\n '\\u00DA': 'U',\n '\\u00DB': 'U',\n '\\u0168': 'U',\n '\\u1E78': 'U',\n '\\u016A': 'U',\n '\\u1E7A': 'U',\n '\\u016C': 'U',\n '\\u00DC': 'U',\n '\\u01DB': 'U',\n '\\u01D7': 'U',\n '\\u01D5': 'U',\n '\\u01D9': 'U',\n '\\u1EE6': 'U',\n '\\u016E': 'U',\n '\\u0170': 'U',\n '\\u01D3': 'U',\n '\\u0214': 'U',\n '\\u0216': 'U',\n '\\u01AF': 'U',\n '\\u1EEA': 'U',\n '\\u1EE8': 'U',\n '\\u1EEE': 'U',\n '\\u1EEC': 'U',\n '\\u1EF0': 'U',\n '\\u1EE4': 'U',\n '\\u1E72': 'U',\n '\\u0172': 'U',\n '\\u1E76': 'U',\n '\\u1E74': 'U',\n '\\u0244': 'U',\n '\\u24CB': 'V',\n '\\uFF36': 'V',\n '\\u1E7C': 'V',\n '\\u1E7E': 'V',\n '\\u01B2': 'V',\n '\\uA75E': 'V',\n '\\u0245': 'V',\n '\\uA760': 'VY',\n '\\u24CC': 'W',\n '\\uFF37': 'W',\n '\\u1E80': 'W',\n '\\u1E82': 'W',\n '\\u0174': 'W',\n '\\u1E86': 'W',\n '\\u1E84': 'W',\n '\\u1E88': 'W',\n '\\u2C72': 'W',\n '\\u24CD': 'X',\n '\\uFF38': 'X',\n '\\u1E8A': 'X',\n '\\u1E8C': 'X',\n '\\u24CE': 'Y',\n '\\uFF39': 'Y',\n '\\u1EF2': 'Y',\n '\\u00DD': 'Y',\n '\\u0176': 'Y',\n '\\u1EF8': 'Y',\n '\\u0232': 'Y',\n '\\u1E8E': 'Y',\n '\\u0178': 'Y',\n '\\u1EF6': 'Y',\n '\\u1EF4': 'Y',\n '\\u01B3': 'Y',\n '\\u024E': 'Y',\n '\\u1EFE': 'Y',\n '\\u24CF': 'Z',\n '\\uFF3A': 'Z',\n '\\u0179': 'Z',\n '\\u1E90': 'Z',\n '\\u017B': 'Z',\n '\\u017D': 'Z',\n '\\u1E92': 'Z',\n '\\u1E94': 'Z',\n '\\u01B5': 'Z',\n '\\u0224': 'Z',\n '\\u2C7F': 'Z',\n '\\u2C6B': 'Z',\n '\\uA762': 'Z',\n '\\u24D0': 'a',\n '\\uFF41': 'a',\n '\\u1E9A': 'a',\n '\\u00E0': 'a',\n '\\u00E1': 'a',\n '\\u00E2': 'a',\n '\\u1EA7': 'a',\n '\\u1EA5': 'a',\n '\\u1EAB': 'a',\n '\\u1EA9': 'a',\n '\\u00E3': 'a',\n '\\u0101': 'a',\n '\\u0103': 'a',\n '\\u1EB1': 'a',\n '\\u1EAF': 'a',\n '\\u1EB5': 'a',\n '\\u1EB3': 'a',\n '\\u0227': 'a',\n '\\u01E1': 'a',\n '\\u00E4': 'a',\n '\\u01DF': 'a',\n '\\u1EA3': 'a',\n '\\u00E5': 'a',\n '\\u01FB': 'a',\n '\\u01CE': 'a',\n '\\u0201': 'a',\n '\\u0203': 'a',\n '\\u1EA1': 'a',\n '\\u1EAD': 'a',\n '\\u1EB7': 'a',\n '\\u1E01': 'a',\n '\\u0105': 'a',\n '\\u2C65': 'a',\n '\\u0250': 'a',\n '\\uA733': 'aa',\n '\\u00E6': 'ae',\n '\\u01FD': 'ae',\n '\\u01E3': 'ae',\n '\\uA735': 'ao',\n '\\uA737': 'au',\n '\\uA739': 'av',\n '\\uA73B': 'av',\n '\\uA73D': 'ay',\n '\\u24D1': 'b',\n '\\uFF42': 'b',\n '\\u1E03': 'b',\n '\\u1E05': 'b',\n '\\u1E07': 'b',\n '\\u0180': 'b',\n '\\u0183': 'b',\n '\\u0253': 'b',\n '\\u24D2': 'c',\n '\\uFF43': 'c',\n '\\u0107': 'c',\n '\\u0109': 'c',\n '\\u010B': 'c',\n '\\u010D': 'c',\n '\\u00E7': 'c',\n '\\u1E09': 'c',\n '\\u0188': 'c',\n '\\u023C': 'c',\n '\\uA73F': 'c',\n '\\u2184': 'c',\n '\\u24D3': 'd',\n '\\uFF44': 'd',\n '\\u1E0B': 'd',\n '\\u010F': 'd',\n '\\u1E0D': 'd',\n '\\u1E11': 'd',\n '\\u1E13': 'd',\n '\\u1E0F': 'd',\n '\\u0111': 'd',\n '\\u018C': 'd',\n '\\u0256': 'd',\n '\\u0257': 'd',\n '\\uA77A': 'd',\n '\\u01F3': 'dz',\n '\\u01C6': 'dz',\n '\\u24D4': 'e',\n '\\uFF45': 'e',\n '\\u00E8': 'e',\n '\\u00E9': 'e',\n '\\u00EA': 'e',\n '\\u1EC1': 'e',\n '\\u1EBF': 'e',\n '\\u1EC5': 'e',\n '\\u1EC3': 'e',\n '\\u1EBD': 'e',\n '\\u0113': 'e',\n '\\u1E15': 'e',\n '\\u1E17': 'e',\n '\\u0115': 'e',\n '\\u0117': 'e',\n '\\u00EB': 'e',\n '\\u1EBB': 'e',\n '\\u011B': 'e',\n '\\u0205': 'e',\n '\\u0207': 'e',\n '\\u1EB9': 'e',\n '\\u1EC7': 'e',\n '\\u0229': 'e',\n '\\u1E1D': 'e',\n '\\u0119': 'e',\n '\\u1E19': 'e',\n '\\u1E1B': 'e',\n '\\u0247': 'e',\n '\\u025B': 'e',\n '\\u01DD': 'e',\n '\\u24D5': 'f',\n '\\uFF46': 'f',\n '\\u1E1F': 'f',\n '\\u0192': 'f',\n '\\uA77C': 'f',\n '\\u24D6': 'g',\n '\\uFF47': 'g',\n '\\u01F5': 'g',\n '\\u011D': 'g',\n '\\u1E21': 'g',\n '\\u011F': 'g',\n '\\u0121': 'g',\n '\\u01E7': 'g',\n '\\u0123': 'g',\n '\\u01E5': 'g',\n '\\u0260': 'g',\n '\\uA7A1': 'g',\n '\\u1D79': 'g',\n '\\uA77F': 'g',\n '\\u24D7': 'h',\n '\\uFF48': 'h',\n '\\u0125': 'h',\n '\\u1E23': 'h',\n '\\u1E27': 'h',\n '\\u021F': 'h',\n '\\u1E25': 'h',\n '\\u1E29': 'h',\n '\\u1E2B': 'h',\n '\\u1E96': 'h',\n '\\u0127': 'h',\n '\\u2C68': 'h',\n '\\u2C76': 'h',\n '\\u0265': 'h',\n '\\u0195': 'hv',\n '\\u24D8': 'i',\n '\\uFF49': 'i',\n '\\u00EC': 'i',\n '\\u00ED': 'i',\n '\\u00EE': 'i',\n '\\u0129': 'i',\n '\\u012B': 'i',\n '\\u012D': 'i',\n '\\u00EF': 'i',\n '\\u1E2F': 'i',\n '\\u1EC9': 'i',\n '\\u01D0': 'i',\n '\\u0209': 'i',\n '\\u020B': 'i',\n '\\u1ECB': 'i',\n '\\u012F': 'i',\n '\\u1E2D': 'i',\n '\\u0268': 'i',\n '\\u0131': 'i',\n '\\u24D9': 'j',\n '\\uFF4A': 'j',\n '\\u0135': 'j',\n '\\u01F0': 'j',\n '\\u0249': 'j',\n '\\u24DA': 'k',\n '\\uFF4B': 'k',\n '\\u1E31': 'k',\n '\\u01E9': 'k',\n '\\u1E33': 'k',\n '\\u0137': 'k',\n '\\u1E35': 'k',\n '\\u0199': 'k',\n '\\u2C6A': 'k',\n '\\uA741': 'k',\n '\\uA743': 'k',\n '\\uA745': 'k',\n '\\uA7A3': 'k',\n '\\u24DB': 'l',\n '\\uFF4C': 'l',\n '\\u0140': 'l',\n '\\u013A': 'l',\n '\\u013E': 'l',\n '\\u1E37': 'l',\n '\\u1E39': 'l',\n '\\u013C': 'l',\n '\\u1E3D': 'l',\n '\\u1E3B': 'l',\n '\\u017F': 'l',\n '\\u0142': 'l',\n '\\u019A': 'l',\n '\\u026B': 'l',\n '\\u2C61': 'l',\n '\\uA749': 'l',\n '\\uA781': 'l',\n '\\uA747': 'l',\n '\\u01C9': 'lj',\n '\\u24DC': 'm',\n '\\uFF4D': 'm',\n '\\u1E3F': 'm',\n '\\u1E41': 'm',\n '\\u1E43': 'm',\n '\\u0271': 'm',\n '\\u026F': 'm',\n '\\u24DD': 'n',\n '\\uFF4E': 'n',\n '\\u01F9': 'n',\n '\\u0144': 'n',\n '\\u00F1': 'n',\n '\\u1E45': 'n',\n '\\u0148': 'n',\n '\\u1E47': 'n',\n '\\u0146': 'n',\n '\\u1E4B': 'n',\n '\\u1E49': 'n',\n '\\u019E': 'n',\n '\\u0272': 'n',\n '\\u0149': 'n',\n '\\uA791': 'n',\n '\\uA7A5': 'n',\n '\\u01CC': 'nj',\n '\\u24DE': 'o',\n '\\uFF4F': 'o',\n '\\u00F2': 'o',\n '\\u00F3': 'o',\n '\\u00F4': 'o',\n '\\u1ED3': 'o',\n '\\u1ED1': 'o',\n '\\u1ED7': 'o',\n '\\u1ED5': 'o',\n '\\u00F5': 'o',\n '\\u1E4D': 'o',\n '\\u022D': 'o',\n '\\u1E4F': 'o',\n '\\u014D': 'o',\n '\\u1E51': 'o',\n '\\u1E53': 'o',\n '\\u014F': 'o',\n '\\u022F': 'o',\n '\\u0231': 'o',\n '\\u00F6': 'o',\n '\\u022B': 'o',\n '\\u1ECF': 'o',\n '\\u0151': 'o',\n '\\u01D2': 'o',\n '\\u020D': 'o',\n '\\u020F': 'o',\n '\\u01A1': 'o',\n '\\u1EDD': 'o',\n '\\u1EDB': 'o',\n '\\u1EE1': 'o',\n '\\u1EDF': 'o',\n '\\u1EE3': 'o',\n '\\u1ECD': 'o',\n '\\u1ED9': 'o',\n '\\u01EB': 'o',\n '\\u01ED': 'o',\n '\\u00F8': 'o',\n '\\u01FF': 'o',\n '\\u0254': 'o',\n '\\uA74B': 'o',\n '\\uA74D': 'o',\n '\\u0275': 'o',\n '\\u01A3': 'oi',\n '\\u0223': 'ou',\n '\\uA74F': 'oo',\n '\\u24DF': 'p',\n '\\uFF50': 'p',\n '\\u1E55': 'p',\n '\\u1E57': 'p',\n '\\u01A5': 'p',\n '\\u1D7D': 'p',\n '\\uA751': 'p',\n '\\uA753': 'p',\n '\\uA755': 'p',\n '\\u24E0': 'q',\n '\\uFF51': 'q',\n '\\u024B': 'q',\n '\\uA757': 'q',\n '\\uA759': 'q',\n '\\u24E1': 'r',\n '\\uFF52': 'r',\n '\\u0155': 'r',\n '\\u1E59': 'r',\n '\\u0159': 'r',\n '\\u0211': 'r',\n '\\u0213': 'r',\n '\\u1E5B': 'r',\n '\\u1E5D': 'r',\n '\\u0157': 'r',\n '\\u1E5F': 'r',\n '\\u024D': 'r',\n '\\u027D': 'r',\n '\\uA75B': 'r',\n '\\uA7A7': 'r',\n '\\uA783': 'r',\n '\\u24E2': 's',\n '\\uFF53': 's',\n '\\u00DF': 's',\n '\\u015B': 's',\n '\\u1E65': 's',\n '\\u015D': 's',\n '\\u1E61': 's',\n '\\u0161': 's',\n '\\u1E67': 's',\n '\\u1E63': 's',\n '\\u1E69': 's',\n '\\u0219': 's',\n '\\u015F': 's',\n '\\u023F': 's',\n '\\uA7A9': 's',\n '\\uA785': 's',\n '\\u1E9B': 's',\n '\\u24E3': 't',\n '\\uFF54': 't',\n '\\u1E6B': 't',\n '\\u1E97': 't',\n '\\u0165': 't',\n '\\u1E6D': 't',\n '\\u021B': 't',\n '\\u0163': 't',\n '\\u1E71': 't',\n '\\u1E6F': 't',\n '\\u0167': 't',\n '\\u01AD': 't',\n '\\u0288': 't',\n '\\u2C66': 't',\n '\\uA787': 't',\n '\\uA729': 'tz',\n '\\u24E4': 'u',\n '\\uFF55': 'u',\n '\\u00F9': 'u',\n '\\u00FA': 'u',\n '\\u00FB': 'u',\n '\\u0169': 'u',\n '\\u1E79': 'u',\n '\\u016B': 'u',\n '\\u1E7B': 'u',\n '\\u016D': 'u',\n '\\u00FC': 'u',\n '\\u01DC': 'u',\n '\\u01D8': 'u',\n '\\u01D6': 'u',\n '\\u01DA': 'u',\n '\\u1EE7': 'u',\n '\\u016F': 'u',\n '\\u0171': 'u',\n '\\u01D4': 'u',\n '\\u0215': 'u',\n '\\u0217': 'u',\n '\\u01B0': 'u',\n '\\u1EEB': 'u',\n '\\u1EE9': 'u',\n '\\u1EEF': 'u',\n '\\u1EED': 'u',\n '\\u1EF1': 'u',\n '\\u1EE5': 'u',\n '\\u1E73': 'u',\n '\\u0173': 'u',\n '\\u1E77': 'u',\n '\\u1E75': 'u',\n '\\u0289': 'u',\n '\\u24E5': 'v',\n '\\uFF56': 'v',\n '\\u1E7D': 'v',\n '\\u1E7F': 'v',\n '\\u028B': 'v',\n '\\uA75F': 'v',\n '\\u028C': 'v',\n '\\uA761': 'vy',\n '\\u24E6': 'w',\n '\\uFF57': 'w',\n '\\u1E81': 'w',\n '\\u1E83': 'w',\n '\\u0175': 'w',\n '\\u1E87': 'w',\n '\\u1E85': 'w',\n '\\u1E98': 'w',\n '\\u1E89': 'w',\n '\\u2C73': 'w',\n '\\u24E7': 'x',\n '\\uFF58': 'x',\n '\\u1E8B': 'x',\n '\\u1E8D': 'x',\n '\\u24E8': 'y',\n '\\uFF59': 'y',\n '\\u1EF3': 'y',\n '\\u00FD': 'y',\n '\\u0177': 'y',\n '\\u1EF9': 'y',\n '\\u0233': 'y',\n '\\u1E8F': 'y',\n '\\u00FF': 'y',\n '\\u1EF7': 'y',\n '\\u1E99': 'y',\n '\\u1EF5': 'y',\n '\\u01B4': 'y',\n '\\u024F': 'y',\n '\\u1EFF': 'y',\n '\\u24E9': 'z',\n '\\uFF5A': 'z',\n '\\u017A': 'z',\n '\\u1E91': 'z',\n '\\u017C': 'z',\n '\\u017E': 'z',\n '\\u1E93': 'z',\n '\\u1E95': 'z',\n '\\u01B6': 'z',\n '\\u0225': 'z',\n '\\u0240': 'z',\n '\\u2C6C': 'z',\n '\\uA763': 'z',\n '\\u0386': '\\u0391',\n '\\u0388': '\\u0395',\n '\\u0389': '\\u0397',\n '\\u038A': '\\u0399',\n '\\u03AA': '\\u0399',\n '\\u038C': '\\u039F',\n '\\u038E': '\\u03A5',\n '\\u03AB': '\\u03A5',\n '\\u038F': '\\u03A9',\n '\\u03AC': '\\u03B1',\n '\\u03AD': '\\u03B5',\n '\\u03AE': '\\u03B7',\n '\\u03AF': '\\u03B9',\n '\\u03CA': '\\u03B9',\n '\\u0390': '\\u03B9',\n '\\u03CC': '\\u03BF',\n '\\u03CD': '\\u03C5',\n '\\u03CB': '\\u03C5',\n '\\u03B0': '\\u03C5',\n '\\u03C9': '\\u03C9',\n '\\u03C2': '\\u03C3'\n };\n DataUtil.fnOperators = {\n /**\n * Returns true when the actual input is equal to the given input.\n *\n * @param {string|number|boolean} actual\n * @param {string|number|boolean} expected\n * @param {boolean} ignoreCase?\n * @param {boolean} ignoreAccent?\n * @param ignoreCase\n * @param ignoreAccent\n */\n equal: function (actual, expected, ignoreCase, ignoreAccent) {\n if (ignoreAccent) {\n actual = DataUtil.ignoreDiacritics(actual);\n expected = DataUtil.ignoreDiacritics(expected);\n }\n if (ignoreCase) {\n return DataUtil.toLowerCase(actual) === DataUtil.toLowerCase(expected);\n }\n return actual === expected;\n },\n /**\n * Returns true when the actual input is not equal to the given input.\n *\n * @param {string|number|boolean} actual\n * @param {string|number|boolean} expected\n * @param {boolean} ignoreCase?\n * @param ignoreCase\n * @param ignoreAccent\n */\n notequal: function (actual, expected, ignoreCase, ignoreAccent) {\n if (ignoreAccent) {\n actual = DataUtil.ignoreDiacritics(actual);\n expected = DataUtil.ignoreDiacritics(expected);\n }\n return !DataUtil.fnOperators.equal(actual, expected, ignoreCase);\n },\n /**\n * Returns true when the actual input is less than to the given input.\n *\n * @param {string|number|boolean} actual\n * @param {string|number|boolean} expected\n * @param {boolean} ignoreCase?\n * @param ignoreCase\n */\n lessthan: function (actual, expected, ignoreCase) {\n if (ignoreCase) {\n return DataUtil.toLowerCase(actual) < DataUtil.toLowerCase(expected);\n }\n if (isNullOrUndefined(actual)) {\n actual = undefined;\n }\n return actual < expected;\n },\n /**\n * Returns true when the actual input is greater than to the given input.\n *\n * @param {string|number|boolean} actual\n * @param {string|number|boolean} expected\n * @param {boolean} ignoreCase?\n * @param ignoreCase\n */\n greaterthan: function (actual, expected, ignoreCase) {\n if (ignoreCase) {\n return DataUtil.toLowerCase(actual) > DataUtil.toLowerCase(expected);\n }\n return actual > expected;\n },\n /**\n * Returns true when the actual input is less than or equal to the given input.\n *\n * @param {string|number|boolean} actual\n * @param {string|number|boolean} expected\n * @param {boolean} ignoreCase?\n * @param ignoreCase\n */\n lessthanorequal: function (actual, expected, ignoreCase) {\n if (ignoreCase) {\n return DataUtil.toLowerCase(actual) <= DataUtil.toLowerCase(expected);\n }\n if (isNullOrUndefined(actual)) {\n actual = undefined;\n }\n return actual <= expected;\n },\n /**\n * Returns true when the actual input is greater than or equal to the given input.\n *\n * @param {string|number|boolean} actual\n * @param {string|number|boolean} expected\n * @param {boolean} ignoreCase?\n * @param ignoreCase\n */\n greaterthanorequal: function (actual, expected, ignoreCase) {\n if (ignoreCase) {\n return DataUtil.toLowerCase(actual) >= DataUtil.toLowerCase(expected);\n }\n return actual >= expected;\n },\n /**\n * Returns true when the actual input contains the given string.\n *\n * @param {string|number} actual\n * @param {string|number} expected\n * @param {boolean} ignoreCase?\n * @param ignoreCase\n * @param ignoreAccent\n */\n contains: function (actual, expected, ignoreCase, ignoreAccent) {\n if (ignoreAccent) {\n actual = DataUtil.ignoreDiacritics(actual);\n expected = DataUtil.ignoreDiacritics(expected);\n }\n if (ignoreCase) {\n return !isNullOrUndefined(actual) && !isNullOrUndefined(expected) &&\n DataUtil.toLowerCase(actual).indexOf(DataUtil.toLowerCase(expected)) !== -1;\n }\n return !isNullOrUndefined(actual) && !isNullOrUndefined(expected) &&\n actual.toString().indexOf(expected) !== -1;\n },\n /**\n * Returns true when the actual input not contains the given string.\n *\n * @param {string|number} actual\n * @param {string|number} expected\n * @param {boolean} ignoreCase?\n */\n doesnotcontain: function (actual, expected, ignoreCase, ignoreAccent) {\n if (ignoreAccent) {\n actual = DataUtil.ignoreDiacritics(actual);\n expected = DataUtil.ignoreDiacritics(expected);\n }\n if (ignoreCase) {\n return !isNullOrUndefined(actual) && !isNullOrUndefined(expected) &&\n DataUtil.toLowerCase(actual).indexOf(DataUtil.toLowerCase(expected)) === -1;\n }\n return !isNullOrUndefined(actual) && !isNullOrUndefined(expected) &&\n actual.toString().indexOf(expected) === -1;\n },\n /**\n * Returns true when the given input value is not null.\n *\n * @param {string|number} actual\n * @returns boolean\n */\n isnotnull: function (actual) {\n return actual !== null && actual !== undefined;\n },\n /**\n * Returns true when the given input value is null.\n *\n * @param {string|number} actual\n * @returns boolean\n */\n isnull: function (actual) {\n return actual === null || actual === undefined;\n },\n /**\n * Returns true when the actual input starts with the given string\n *\n * @param {string} actual\n * @param {string} expected\n * @param {boolean} ignoreCase?\n * @param ignoreCase\n * @param ignoreAccent\n */\n startswith: function (actual, expected, ignoreCase, ignoreAccent) {\n if (ignoreAccent) {\n actual = DataUtil.ignoreDiacritics(actual);\n expected = DataUtil.ignoreDiacritics(expected);\n }\n if (ignoreCase) {\n return actual && expected && DataUtil.startsWith(DataUtil.toLowerCase(actual), DataUtil.toLowerCase(expected));\n }\n return actual && expected && DataUtil.startsWith(actual, expected);\n },\n /**\n * Returns true when the actual input not starts with the given string\n *\n * @param {string} actual\n * @param {string} expected\n * @param {boolean} ignoreCase?\n */\n doesnotstartwith: function (actual, expected, ignoreCase, ignoreAccent) {\n if (ignoreAccent) {\n actual = DataUtil.ignoreDiacritics(actual);\n expected = DataUtil.ignoreDiacritics(expected);\n }\n if (ignoreCase) {\n return actual && expected && DataUtil.notStartsWith(DataUtil.toLowerCase(actual), DataUtil.toLowerCase(expected));\n }\n return actual && expected && DataUtil.notStartsWith(actual, expected);\n },\n /**\n * Returns true when the actual input like with the given string.\n *\n * @param {string} actual\n * @param {string} expected\n * @param {boolean} ignoreCase?\n */\n like: function (actual, expected, ignoreCase, ignoreAccent) {\n if (ignoreAccent) {\n actual = DataUtil.ignoreDiacritics(actual);\n expected = DataUtil.ignoreDiacritics(expected);\n }\n if (ignoreCase) {\n return actual && expected && DataUtil.like(DataUtil.toLowerCase(actual), DataUtil.toLowerCase(expected));\n }\n return actual && expected && DataUtil.like(actual, expected);\n },\n /**\n * Returns true when the given input value is empty.\n *\n * @param {string|number} actual\n * @returns boolean\n */\n isempty: function (actual) {\n return actual === undefined || actual === '';\n },\n /**\n * Returns true when the given input value is not empty.\n *\n * @param {string|number} actual\n * @returns boolean\n */\n isnotempty: function (actual) {\n return actual !== undefined && actual !== '';\n },\n /**\n * Returns true when the actual input pattern(wildcard) matches with the given string.\n *\n * @param {string|Date} actual\n * @param {string} expected\n * @param {boolean} ignoreCase?\n */\n wildcard: function (actual, expected, ignoreCase, ignoreAccent) {\n if (ignoreAccent) {\n actual = DataUtil.ignoreDiacritics(actual);\n expected = DataUtil.ignoreDiacritics(expected);\n }\n if (ignoreCase) {\n return (actual || typeof actual === 'boolean') && expected && typeof actual !== 'object' &&\n DataUtil.wildCard(DataUtil.toLowerCase(actual), DataUtil.toLowerCase(expected));\n }\n return (actual || typeof actual === 'boolean') && expected && DataUtil.wildCard(actual, expected);\n },\n /**\n * Returns true when the actual input ends with the given string.\n *\n * @param {string} actual\n * @param {string} expected\n * @param {boolean} ignoreCase?\n * @param ignoreCase\n * @param ignoreAccent\n */\n endswith: function (actual, expected, ignoreCase, ignoreAccent) {\n if (ignoreAccent) {\n actual = DataUtil.ignoreDiacritics(actual);\n expected = DataUtil.ignoreDiacritics(expected);\n }\n if (ignoreCase) {\n return actual && expected && DataUtil.endsWith(DataUtil.toLowerCase(actual), DataUtil.toLowerCase(expected));\n }\n return actual && expected && DataUtil.endsWith(actual, expected);\n },\n /**\n * Returns true when the actual input not ends with the given string.\n *\n * @param {string} actual\n * @param {string} expected\n * @param {boolean} ignoreCase?\n */\n doesnotendwith: function (actual, expected, ignoreCase, ignoreAccent) {\n if (ignoreAccent) {\n actual = DataUtil.ignoreDiacritics(actual);\n expected = DataUtil.ignoreDiacritics(expected);\n }\n if (ignoreCase) {\n return actual && expected && DataUtil.notEndsWith(DataUtil.toLowerCase(actual), DataUtil.toLowerCase(expected));\n }\n return actual && expected && DataUtil.notEndsWith(actual, expected);\n },\n /**\n * It will return the filter operator based on the filter symbol.\n *\n * @param {string} operator\n * @hidden\n */\n processSymbols: function (operator) {\n var fnName = DataUtil.operatorSymbols[operator];\n if (fnName) {\n var fn = DataUtil.fnOperators[fnName];\n return fn;\n }\n return DataUtil.throwError('Query - Process Operator : Invalid operator');\n },\n /**\n * It will return the valid filter operator based on the specified operators.\n *\n * @param {string} operator\n * @hidden\n */\n processOperator: function (operator) {\n var fn = DataUtil.fnOperators[operator];\n if (fn) {\n return fn;\n }\n return DataUtil.fnOperators.processSymbols(operator);\n }\n };\n /**\n * To perform the parse operation on JSON data, like convert to string from JSON or convert to JSON from string.\n */\n DataUtil.parse = {\n /**\n * Parse the given string to the plain JavaScript object.\n *\n * @param {string|Object|Object[]} jsonText\n */\n parseJson: function (jsonText) {\n if (typeof jsonText === 'string') {\n jsonText = JSON.parse(jsonText, DataUtil.parse.jsonReviver);\n }\n else if (jsonText instanceof Array) {\n DataUtil.parse.iterateAndReviveArray(jsonText);\n }\n else if (typeof jsonText === 'object' && jsonText !== null) {\n DataUtil.parse.iterateAndReviveJson(jsonText);\n }\n return jsonText;\n },\n /**\n * It will perform on array of values.\n *\n * @param {string[]|Object[]} array\n * @hidden\n */\n iterateAndReviveArray: function (array) {\n for (var i = 0; i < array.length; i++) {\n if (typeof array[i] === 'object' && array[i] !== null) {\n DataUtil.parse.iterateAndReviveJson(array[i]);\n // eslint-disable-next-line no-useless-escape\n }\n else if (typeof array[i] === 'string' && !/^[\\s]*\\[|^[\\s]*\\{(.)+:|\\\"/g.test(array[i])) {\n array[i] = DataUtil.parse.jsonReviver('', array[i]);\n }\n else {\n array[i] = DataUtil.parse.parseJson(array[i]);\n }\n }\n },\n /**\n * It will perform on JSON values\n *\n * @param {JSON} json\n * @hidden\n */\n iterateAndReviveJson: function (json) {\n var value;\n var keys = Object.keys(json);\n for (var _i = 0, keys_2 = keys; _i < keys_2.length; _i++) {\n var prop = keys_2[_i];\n if (DataUtil.startsWith(prop, '__')) {\n continue;\n }\n value = json[prop];\n if (typeof value === 'object') {\n if (value instanceof Array) {\n DataUtil.parse.iterateAndReviveArray(value);\n }\n else if (value) {\n DataUtil.parse.iterateAndReviveJson(value);\n }\n }\n else {\n json[prop] = DataUtil.parse.jsonReviver(json[prop], value);\n }\n }\n },\n /**\n * It will perform on JSON values\n *\n * @param {string} field\n * @param {string|Date} value\n * @hidden\n */\n jsonReviver: function (field, value) {\n if (typeof value === 'string') {\n // eslint-disable-next-line security/detect-unsafe-regex\n var ms = /^\\/Date\\(([+-]?[0-9]+)([+-][0-9]{4})?\\)\\/$/.exec(value);\n var offSet = DataUtil.timeZoneHandling ? DataUtil.serverTimezoneOffset : null;\n if (ms) {\n return DataUtil.dateParse.toTimeZone(new Date(parseInt(ms[1], 10)), offSet, true);\n // eslint-disable-next-line no-useless-escape, security/detect-unsafe-regex\n }\n else if (/^(\\d{4}\\-\\d\\d\\-\\d\\d([tT][\\d:\\.]*){1})([zZ]|([+\\-])(\\d\\d):?(\\d\\d))?$/.test(value)) {\n var isUTC = value.indexOf('Z') > -1 || value.indexOf('z') > -1;\n var arr = value.split(/[^0-9.]/);\n if (isUTC) {\n if (arr[5].indexOf('.') > -1) {\n var secondsMs = arr[5].split('.');\n arr[5] = secondsMs[0];\n arr[6] = new Date(value).getUTCMilliseconds().toString();\n }\n else {\n arr[6] = '00';\n }\n value = DataUtil.dateParse\n .toTimeZone(new Date(parseInt(arr[0], 10), parseInt(arr[1], 10) - 1, parseInt(arr[2], 10), parseInt(arr[3], 10), parseInt(arr[4], 10), parseInt(arr[5], 10), parseInt(arr[6], 10)), DataUtil.serverTimezoneOffset, false);\n }\n else {\n var utcFormat = new Date(parseInt(arr[0], 10), parseInt(arr[1], 10) - 1, parseInt(arr[2], 10), parseInt(arr[3], 10), parseInt(arr[4], 10), parseInt(arr[5], 10));\n var hrs = parseInt(arr[6], 10);\n var mins = parseInt(arr[7], 10);\n if (isNaN(hrs) && isNaN(mins)) {\n return utcFormat;\n }\n if (value.indexOf('+') > -1) {\n utcFormat.setHours(utcFormat.getHours() - hrs, utcFormat.getMinutes() - mins);\n }\n else {\n utcFormat.setHours(utcFormat.getHours() + hrs, utcFormat.getMinutes() + mins);\n }\n value = DataUtil.dateParse\n .toTimeZone(utcFormat, DataUtil.serverTimezoneOffset, false);\n }\n if (DataUtil.serverTimezoneOffset == null) {\n value = DataUtil.dateParse.addSelfOffset(value);\n }\n }\n }\n return value;\n },\n /**\n * Check wheather the given value is JSON or not.\n *\n * @param {Object[]} jsonData\n */\n isJson: function (jsonData) {\n if (typeof jsonData[0] === 'string') {\n return jsonData;\n }\n return DataUtil.parse.parseJson(jsonData);\n },\n /**\n * Checks wheather the given value is GUID or not.\n *\n * @param {string} value\n */\n isGuid: function (value) {\n // eslint-disable-next-line security/detect-unsafe-regex\n var regex = /[A-Fa-f0-9]{8}(?:-[A-Fa-f0-9]{4}){3}-[A-Fa-f0-9]{12}/i;\n var match = regex.exec(value);\n return match != null;\n },\n /**\n * The method used to replace the value based on the type.\n *\n * @param {Object} value\n * @param {boolean} stringify\n * @hidden\n */\n replacer: function (value, stringify) {\n if (DataUtil.isPlainObject(value)) {\n return DataUtil.parse.jsonReplacer(value, stringify);\n }\n if (value instanceof Array) {\n return DataUtil.parse.arrayReplacer(value);\n }\n if (value instanceof Date) {\n return DataUtil.parse.jsonReplacer({ val: value }, stringify).val;\n }\n return value;\n },\n /**\n * It will replace the JSON value.\n *\n * @param {string} key\n * @param {Object} val\n * @param stringify\n * @hidden\n */\n jsonReplacer: function (val, stringify) {\n var value;\n var keys = Object.keys(val);\n for (var _i = 0, keys_3 = keys; _i < keys_3.length; _i++) {\n var prop = keys_3[_i];\n value = val[prop];\n if (!(value instanceof Date)) {\n continue;\n }\n var d = value;\n if (DataUtil.serverTimezoneOffset == null) {\n val[prop] = DataUtil.dateParse.toTimeZone(d, null).toJSON();\n }\n else {\n d = new Date(+d + DataUtil.serverTimezoneOffset * 3600000);\n val[prop] = DataUtil.dateParse.toTimeZone(DataUtil.dateParse.addSelfOffset(d), null).toJSON();\n }\n }\n return val;\n },\n /**\n * It will replace the Array of value.\n *\n * @param {string} key\n * @param {Object[]} val\n * @hidden\n */\n arrayReplacer: function (val) {\n for (var i = 0; i < val.length; i++) {\n if (DataUtil.isPlainObject(val[i])) {\n val[i] = DataUtil.parse.jsonReplacer(val[i]);\n }\n else if (val[i] instanceof Date) {\n val[i] = DataUtil.parse.jsonReplacer({ date: val[i] }).date;\n }\n }\n return val;\n },\n /**\n * It will replace the Date object with respective to UTC format value.\n *\n * @param {string} key\n * @param {any} value\n * @hidden\n */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n /* tslint:disable-next-line:no-any */\n jsonDateReplacer: function (key, value) {\n /* eslint-enable @typescript-eslint/no-explicit-any */\n if (key === 'value' && value) {\n if (typeof value === 'string') {\n // eslint-disable-next-line security/detect-unsafe-regex\n var ms = /^\\/Date\\(([+-]?[0-9]+)([+-][0-9]{4})?\\)\\/$/.exec(value);\n if (ms) {\n value = DataUtil.dateParse.toTimeZone(new Date(parseInt(ms[1], 10)), null, true);\n // eslint-disable-next-line no-useless-escape, security/detect-unsafe-regex\n }\n else if (/^(\\d{4}\\-\\d\\d\\-\\d\\d([tT][\\d:\\.]*){1})([zZ]|([+\\-])(\\d\\d):?(\\d\\d))?$/.test(value)) {\n var arr = value.split(/[^0-9]/);\n value = DataUtil.dateParse\n .toTimeZone(new Date(parseInt(arr[0], 10), parseInt(arr[1], 10) - 1, parseInt(arr[2], 10), parseInt(arr[3], 10), parseInt(arr[4], 10), parseInt(arr[5], 10)), null, true);\n }\n }\n if (value instanceof Date) {\n value = DataUtil.dateParse.addSelfOffset(value);\n if (DataUtil.serverTimezoneOffset === null) {\n return DataUtil.dateParse.toTimeZone(DataUtil.dateParse.addSelfOffset(value), null).toJSON();\n }\n else {\n value = DataUtil.dateParse.toTimeZone(value, (((value.getTimezoneOffset() / 60) * 2)\n - DataUtil.serverTimezoneOffset), false);\n return value.toJSON();\n }\n }\n }\n return value;\n }\n };\n /**\n * @hidden\n */\n DataUtil.dateParse = {\n addSelfOffset: function (input) {\n return new Date(+input - (input.getTimezoneOffset() * 60000));\n },\n toUTC: function (input) {\n return new Date(+input + (input.getTimezoneOffset() * 60000));\n },\n toTimeZone: function (input, offset, utc) {\n if (offset === null) {\n return input;\n }\n var unix = utc ? DataUtil.dateParse.toUTC(input) : input;\n return new Date(+unix - (offset * 3600000));\n },\n toLocalTime: function (input) {\n var datefn = input;\n var timeZone = -datefn.getTimezoneOffset();\n var differenceString = timeZone >= 0 ? '+' : '-';\n var localtimefn = function (num) {\n var norm = Math.floor(Math.abs(num));\n return (norm < 10 ? '0' : '') + norm;\n };\n var val = datefn.getFullYear() + '-' + localtimefn(datefn.getMonth() + 1) + '-' + localtimefn(datefn.getDate()) +\n 'T' + localtimefn(datefn.getHours()) +\n ':' + localtimefn(datefn.getMinutes()) +\n ':' + localtimefn(datefn.getSeconds()) +\n differenceString + localtimefn(timeZone / 60) +\n ':' + localtimefn(timeZone % 60);\n return val;\n }\n };\n return DataUtil;\n}());\nexport { DataUtil };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component, EventHandler, addClass, append, Property, Event, L10n, compile } from '@syncfusion/ej2-base';\nimport { setStyleAttribute, extend, removeClass, prepend, isNullOrUndefined, detach, getValue } from '@syncfusion/ej2-base';\nimport { NotifyPropertyChanges, rippleEffect, ChildProperty, Complex } from '@syncfusion/ej2-base';\nimport { DataManager, Query, DataUtil } from '@syncfusion/ej2-data';\nimport { ListBase } from '@syncfusion/ej2-lists';\nimport { select, selectAll } from '@syncfusion/ej2-base';\nvar FieldSettings = /** @class */ (function (_super) {\n __extends(FieldSettings, _super);\n function FieldSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property()\n ], FieldSettings.prototype, \"text\", void 0);\n __decorate([\n Property()\n ], FieldSettings.prototype, \"value\", void 0);\n __decorate([\n Property()\n ], FieldSettings.prototype, \"iconCss\", void 0);\n __decorate([\n Property()\n ], FieldSettings.prototype, \"groupBy\", void 0);\n __decorate([\n Property()\n ], FieldSettings.prototype, \"htmlAttributes\", void 0);\n return FieldSettings;\n}(ChildProperty));\nexport { FieldSettings };\nexport var dropDownBaseClasses = {\n root: 'e-dropdownbase',\n rtl: 'e-rtl',\n content: 'e-content',\n selected: 'e-active',\n hover: 'e-hover',\n noData: 'e-nodata',\n fixedHead: 'e-fixed-head',\n focus: 'e-item-focus',\n li: 'e-list-item',\n group: 'e-list-group-item',\n disabled: 'e-disabled',\n grouping: 'e-dd-group'\n};\nvar ITEMTEMPLATE_PROPERTY = 'ItemTemplate';\nvar DISPLAYTEMPLATE_PROPERTY = 'DisplayTemplate';\nvar SPINNERTEMPLATE_PROPERTY = 'SpinnerTemplate';\nvar VALUETEMPLATE_PROPERTY = 'ValueTemplate';\nvar GROUPTEMPLATE_PROPERTY = 'GroupTemplate';\nvar HEADERTEMPLATE_PROPERTY = 'HeaderTemplate';\nvar FOOTERTEMPLATE_PROPERTY = 'FooterTemplate';\nvar NORECORDSTEMPLATE_PROPERTY = 'NoRecordsTemplate';\nvar ACTIONFAILURETEMPLATE_PROPERTY = 'ActionFailureTemplate';\nvar HIDE_GROUPLIST = 'e-hide-group-header';\n/**\n * DropDownBase component will generate the list items based on given data and act as base class to drop-down related components\n */\nvar DropDownBase = /** @class */ (function (_super) {\n __extends(DropDownBase, _super);\n /**\n * * Constructor for DropDownBase class\n *\n * @param {DropDownBaseModel} options - Specifies the DropDownBase model.\n * @param {string | HTMLElement} element - Specifies the element to render as component.\n * @private\n */\n function DropDownBase(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.preventChange = false;\n _this.isAngular = false;\n _this.isPreventChange = false;\n _this.isDynamicDataChange = false;\n _this.addedNewItem = false;\n return _this;\n }\n DropDownBase.prototype.getPropObject = function (prop, newProp, oldProp) {\n var newProperty = new Object();\n var oldProperty = new Object();\n var propName = function (prop) {\n return prop;\n };\n newProperty[propName(prop)] = newProp[propName(prop)];\n oldProperty[propName(prop)] = oldProp[propName(prop)];\n var data = new Object();\n data.newProperty = newProperty;\n data.oldProperty = oldProperty;\n return data;\n };\n DropDownBase.prototype.getValueByText = function (text, ignoreCase, ignoreAccent) {\n var value = null;\n if (!isNullOrUndefined(this.listData)) {\n if (ignoreCase) {\n value = this.checkValueCase(text, true, ignoreAccent);\n }\n else {\n value = this.checkValueCase(text, false, ignoreAccent);\n }\n }\n return value;\n };\n DropDownBase.prototype.checkValueCase = function (text, ignoreCase, ignoreAccent, isTextByValue) {\n var _this = this;\n var value = null;\n if (isTextByValue) {\n value = text;\n }\n var dataSource = this.listData;\n var fields = this.fields;\n var type = this.typeOfData(dataSource).typeof;\n if (type === 'string' || type === 'number' || type === 'boolean') {\n for (var _i = 0, dataSource_1 = dataSource; _i < dataSource_1.length; _i++) {\n var item = dataSource_1[_i];\n if (!isNullOrUndefined(item)) {\n if (ignoreAccent) {\n value = this.checkingAccent(String(item), text, ignoreCase);\n }\n else {\n if (ignoreCase) {\n if (this.checkIgnoreCase(String(item), text)) {\n value = this.getItemValue(String(item), text, ignoreCase);\n }\n }\n else {\n if (this.checkNonIgnoreCase(String(item), text)) {\n value = this.getItemValue(String(item), text, ignoreCase, isTextByValue);\n }\n }\n }\n }\n }\n }\n else {\n if (ignoreCase) {\n dataSource.filter(function (item) {\n var itemValue = getValue(fields.value, item);\n if (!isNullOrUndefined(itemValue) && _this.checkIgnoreCase(getValue(fields.text, item).toString(), text)) {\n value = getValue(fields.value, item);\n }\n });\n }\n else {\n if (isTextByValue) {\n var compareValue_1 = null;\n compareValue_1 = value;\n dataSource.filter(function (item) {\n var itemValue = getValue(fields.value, item);\n if (!isNullOrUndefined(itemValue) && !isNullOrUndefined(value) && itemValue.toString() === compareValue_1.toString()) {\n value = getValue(fields.text, item);\n }\n });\n }\n else {\n dataSource.filter(function (item) {\n if (_this.checkNonIgnoreCase(getValue(fields.text, item), text)) {\n value = getValue(fields.value, item);\n }\n });\n }\n }\n }\n return value;\n };\n DropDownBase.prototype.checkingAccent = function (item, text, ignoreCase) {\n var dataItem = DataUtil.ignoreDiacritics(String(item));\n var textItem = DataUtil.ignoreDiacritics(text.toString());\n var value = null;\n if (ignoreCase) {\n if (this.checkIgnoreCase(dataItem, textItem)) {\n value = this.getItemValue(String(item), text, ignoreCase);\n }\n }\n else {\n if (this.checkNonIgnoreCase(String(item), text)) {\n value = this.getItemValue(String(item), text, ignoreCase);\n }\n }\n return value;\n };\n DropDownBase.prototype.checkIgnoreCase = function (item, text) {\n return String(item).toLowerCase() === text.toString().toLowerCase() ? true : false;\n };\n DropDownBase.prototype.checkNonIgnoreCase = function (item, text) {\n return String(item) === text.toString() ? true : false;\n };\n DropDownBase.prototype.getItemValue = function (dataItem, typedText, ignoreCase, isTextByValue) {\n var value = null;\n var dataSource = this.listData;\n var type = this.typeOfData(dataSource).typeof;\n if (isTextByValue) {\n value = dataItem.toString();\n }\n else {\n if (ignoreCase) {\n value = type === 'string' ? String(dataItem) : this.getFormattedValue(String(dataItem));\n }\n else {\n value = type === 'string' ? typedText : this.getFormattedValue(typedText);\n }\n }\n return value;\n };\n DropDownBase.prototype.templateCompiler = function (baseTemplate) {\n var checkTemplate = false;\n if (baseTemplate) {\n try {\n checkTemplate = (selectAll(baseTemplate, document).length) ? true : false;\n }\n catch (exception) {\n checkTemplate = false;\n }\n }\n return checkTemplate;\n };\n DropDownBase.prototype.l10nUpdate = function (actionFailure) {\n var ele = this.getModuleName() === 'listbox' ? this.ulElement : this.list;\n if (this.noRecordsTemplate !== 'No records found' || this.actionFailureTemplate !== 'Request failed') {\n var template = actionFailure ? this.actionFailureTemplate : this.noRecordsTemplate;\n var compiledString = void 0;\n var templateId = actionFailure ? this.actionFailureTemplateId : this.noRecordsTemplateId;\n ele.innerHTML = '';\n var tempaltecheck = this.templateCompiler(template);\n if (tempaltecheck) {\n compiledString = compile(select(template, document).innerHTML.trim());\n }\n else {\n compiledString = compile(template);\n }\n var templateName = actionFailure ? 'actionFailureTemplate' : 'noRecordsTemplate';\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var noDataCompTemp = compiledString({}, this, templateName, templateId, this.isStringTemplate, null, ele);\n if (noDataCompTemp && noDataCompTemp.length > 0) {\n for (var i = 0; i < noDataCompTemp.length; i++) {\n if (this.getModuleName() === 'listbox' && templateName === 'noRecordsTemplate') {\n if (noDataCompTemp[i].nodeName === '#text') {\n var liElem = this.createElement('li');\n liElem.textContent = noDataCompTemp[i].textContent;\n liElem.classList.add('e-list-nrt');\n liElem.setAttribute('role', 'option');\n ele.appendChild(liElem);\n }\n else {\n noDataCompTemp[i].classList.add('e-list-nr-template');\n ele.appendChild(noDataCompTemp[i]);\n }\n }\n else {\n ele.appendChild(noDataCompTemp[i]);\n }\n }\n }\n this.renderReactTemplates();\n }\n else {\n var l10nLocale = { noRecordsTemplate: 'No records found', actionFailureTemplate: 'Request failed' };\n var componentLocale = new L10n(this.getLocaleName(), {}, this.locale);\n if (componentLocale.getConstant('actionFailureTemplate') !== '') {\n this.l10n = componentLocale;\n }\n else {\n this.l10n = new L10n(this.getModuleName() === 'listbox' ? 'listbox' :\n this.getModuleName() === 'mention' ? 'mention' : 'dropdowns', l10nLocale, this.locale);\n }\n var content = actionFailure ?\n this.l10n.getConstant('actionFailureTemplate') : this.l10n.getConstant('noRecordsTemplate');\n if (this.getModuleName() === 'listbox') {\n var liElem = this.createElement('li');\n liElem.textContent = content;\n ele.appendChild(liElem);\n liElem.classList.add('e-list-nrt');\n liElem.setAttribute('role', 'option');\n }\n else {\n if (!isNullOrUndefined(ele)) {\n ele.innerHTML = content;\n }\n }\n }\n };\n DropDownBase.prototype.getLocaleName = function () {\n return 'drop-down-base';\n };\n DropDownBase.prototype.getTextByValue = function (value) {\n var text = this.checkValueCase(value, false, false, true);\n return text;\n };\n DropDownBase.prototype.getFormattedValue = function (value) {\n if (this.listData && this.listData.length) {\n var item = void 0;\n if (this.properties.allowCustomValue && this.properties.value && this.properties.value instanceof Array && this.properties.value.length > 0) {\n item = this.typeOfData(this.properties.value);\n }\n else {\n item = this.typeOfData(this.listData);\n }\n if (typeof getValue((this.fields.value ? this.fields.value : 'value'), item.item) === 'number'\n || item.typeof === 'number') {\n return parseFloat(value);\n }\n if (typeof getValue((this.fields.value ? this.fields.value : 'value'), item.item) === 'boolean'\n || item.typeof === 'boolean') {\n return ((value === 'true') || ('' + value === 'true'));\n }\n }\n return value;\n };\n /**\n * Sets RTL to dropdownbase wrapper\n *\n * @returns {void}\n */\n DropDownBase.prototype.setEnableRtl = function () {\n if (!isNullOrUndefined(this.enableRtlElements)) {\n if (this.list) {\n this.enableRtlElements.push(this.list);\n }\n if (this.enableRtl) {\n addClass(this.enableRtlElements, dropDownBaseClasses.rtl);\n }\n else {\n removeClass(this.enableRtlElements, dropDownBaseClasses.rtl);\n }\n }\n };\n /**\n * Initialize the Component.\n *\n * @returns {void}\n */\n DropDownBase.prototype.initialize = function (e) {\n this.bindEvent = true;\n this.actionFailureTemplateId = \"\" + this.element.id + ACTIONFAILURETEMPLATE_PROPERTY;\n if (this.element.tagName === 'UL') {\n var jsonElement = ListBase.createJsonFromElement(this.element);\n this.setProperties({ fields: { text: 'text', value: 'text' } }, true);\n this.resetList(jsonElement, this.fields);\n }\n else if (this.element.tagName === 'SELECT') {\n var dataSource = this.dataSource instanceof Array ? (this.dataSource.length > 0 ? true : false)\n : !isNullOrUndefined(this.dataSource) ? true : false;\n if (!dataSource) {\n this.renderItemsBySelect();\n }\n else if (this.isDynamicDataChange) {\n this.setListData(this.dataSource, this.fields, this.query);\n }\n }\n else {\n this.setListData(this.dataSource, this.fields, this.query, e);\n }\n };\n /**\n * Get the properties to be maintained in persisted state.\n *\n * @returns {string} Returns the persisted data of the component.\n */\n DropDownBase.prototype.getPersistData = function () {\n return this.addOnPersist([]);\n };\n /**\n * Sets the enabled state to DropDownBase.\n *\n * @param {string} value - Specifies the attribute values to add on the input element.\n * @returns {void}\n */\n DropDownBase.prototype.updateDataAttribute = function (value) {\n var invalidAttr = ['class', 'style', 'id', 'type', 'aria-expanded', 'aria-autocomplete', 'aria-readonly'];\n var attr = {};\n for (var a = 0; a < this.element.attributes.length; a++) {\n if (invalidAttr.indexOf(this.element.attributes[a].name) === -1 &&\n !(this.getModuleName() === 'dropdownlist' && this.element.attributes[a].name === 'readonly')) {\n attr[this.element.attributes[a].name] = this.element.getAttribute(this.element.attributes[a].name);\n }\n }\n extend(attr, value, attr);\n this.setProperties({ htmlAttributes: attr }, true);\n };\n DropDownBase.prototype.renderItemsBySelect = function () {\n var element = this.element;\n var fields = { value: 'value', text: 'text' };\n var jsonElement = [];\n var group = element.querySelectorAll('select>optgroup');\n var option = element.querySelectorAll('select>option');\n this.getJSONfromOption(jsonElement, option, fields);\n if (group.length) {\n for (var i = 0; i < group.length; i++) {\n var item = group[i];\n var optionGroup = {};\n optionGroup[fields.text] = item.label;\n optionGroup.isHeader = true;\n var child = item.querySelectorAll('option');\n jsonElement.push(optionGroup);\n this.getJSONfromOption(jsonElement, child, fields);\n }\n element.querySelectorAll('select>option');\n }\n this.updateFields(fields.text, fields.value, this.fields.groupBy, this.fields.htmlAttributes, this.fields.iconCss);\n this.resetList(jsonElement, fields);\n };\n DropDownBase.prototype.updateFields = function (text, value, groupBy, htmlAttributes, iconCss) {\n var field = {\n 'fields': {\n text: text,\n value: value,\n groupBy: !isNullOrUndefined(groupBy) ? groupBy : this.fields && this.fields.groupBy,\n htmlAttributes: !isNullOrUndefined(htmlAttributes) ? htmlAttributes : this.fields && this.fields.htmlAttributes,\n iconCss: !isNullOrUndefined(iconCss) ? iconCss : this.fields && this.fields.iconCss\n }\n };\n this.setProperties(field, true);\n };\n DropDownBase.prototype.getJSONfromOption = function (items, options, fields) {\n for (var _i = 0, options_1 = options; _i < options_1.length; _i++) {\n var option = options_1[_i];\n var json = {};\n json[fields.text] = option.innerText;\n json[fields.value] = !isNullOrUndefined(option.getAttribute(fields.value)) ?\n option.getAttribute(fields.value) : option.innerText;\n items.push(json);\n }\n };\n /**\n * Execute before render the list items\n *\n * @private\n * @returns {void}\n */\n DropDownBase.prototype.preRender = function () {\n // there is no event handler\n this.scrollTimer = -1;\n this.enableRtlElements = [];\n this.isRequested = false;\n this.isDataFetched = false;\n this.itemTemplateId = \"\" + this.element.id + ITEMTEMPLATE_PROPERTY;\n this.displayTemplateId = \"\" + this.element.id + DISPLAYTEMPLATE_PROPERTY;\n this.spinnerTemplateId = \"\" + this.element.id + SPINNERTEMPLATE_PROPERTY;\n this.valueTemplateId = \"\" + this.element.id + VALUETEMPLATE_PROPERTY;\n this.groupTemplateId = \"\" + this.element.id + GROUPTEMPLATE_PROPERTY;\n this.headerTemplateId = \"\" + this.element.id + HEADERTEMPLATE_PROPERTY;\n this.footerTemplateId = \"\" + this.element.id + FOOTERTEMPLATE_PROPERTY;\n this.noRecordsTemplateId = \"\" + this.element.id + NORECORDSTEMPLATE_PROPERTY;\n };\n /**\n * Creates the list items of DropDownBase component.\n *\n * @param {Object[] | string[] | number[] | DataManager | boolean[]} dataSource - Specifies the data to generate the list.\n * @param {FieldSettingsModel} fields - Maps the columns of the data table and binds the data to the component.\n * @param {Query} query - Accepts the external Query that execute along with data processing.\n * @returns {void}\n */\n DropDownBase.prototype.setListData = function (dataSource, fields, query, event) {\n var _this = this;\n fields = fields ? fields : this.fields;\n var ulElement;\n this.isActive = true;\n var eventArgs = { cancel: false, data: dataSource, query: query };\n this.isPreventChange = this.isAngular && this.preventChange ? true : this.isPreventChange;\n this.trigger('actionBegin', eventArgs, function (eventArgs) {\n if (!eventArgs.cancel) {\n _this.showSpinner();\n if (dataSource instanceof DataManager) {\n _this.isRequested = true;\n if (_this.isDataFetched) {\n _this.emptyDataRequest(fields);\n return;\n }\n eventArgs.data.executeQuery(_this.getQuery(eventArgs.query)).then(function (e) {\n _this.isPreventChange = _this.isAngular && _this.preventChange ? true : _this.isPreventChange;\n _this.trigger('actionComplete', e, function (e) {\n if (!e.cancel) {\n var listItems = e.result;\n if (listItems.length === 0) {\n _this.isDataFetched = true;\n }\n ulElement = _this.renderItems(listItems, fields);\n _this.onActionComplete(ulElement, listItems, e);\n if (_this.groupTemplate) {\n _this.renderGroupTemplate(ulElement);\n }\n _this.isRequested = false;\n _this.bindChildItems(listItems, ulElement, fields, e);\n }\n });\n }).catch(function (e) {\n _this.isRequested = false;\n _this.onActionFailure(e);\n _this.hideSpinner();\n });\n }\n else {\n var dataManager = new DataManager(eventArgs.data);\n var listItems = (_this.getQuery(eventArgs.query)).executeLocal(dataManager);\n var localDataArgs = { cancel: false, result: listItems };\n _this.isPreventChange = _this.isAngular && _this.preventChange ? true : _this.isPreventChange;\n _this.trigger('actionComplete', localDataArgs, function (localDataArgs) {\n if (!localDataArgs.cancel) {\n ulElement = _this.renderItems(localDataArgs.result, fields);\n _this.onActionComplete(ulElement, localDataArgs.result, event);\n if (_this.groupTemplate) {\n _this.renderGroupTemplate(ulElement);\n }\n _this.bindChildItems(localDataArgs.result, ulElement, fields);\n setTimeout(function () {\n if (_this.getModuleName() === 'multiselect' && _this.itemTemplate != null && (ulElement.childElementCount > 0 && (ulElement.children[0].childElementCount > 0 || (_this.fields.groupBy && ulElement.children[1] && ulElement.children[1].childElementCount > 0)))) {\n _this.updateDataList();\n }\n });\n }\n });\n }\n }\n });\n };\n DropDownBase.prototype.bindChildItems = function (listItems, ulElement, fields, e) {\n var _this = this;\n if (listItems.length >= 100 && this.getModuleName() === 'autocomplete') {\n setTimeout(function () {\n var childNode = _this.remainingItems(_this.sortedData, fields);\n append(childNode, ulElement);\n _this.liCollections = _this.list.querySelectorAll('.' + dropDownBaseClasses.li);\n _this.updateListValues();\n _this.raiseDataBound(listItems, e);\n }, 0);\n }\n else {\n this.raiseDataBound(listItems, e);\n }\n };\n DropDownBase.prototype.updateListValues = function () {\n // Used this method in component side.\n };\n DropDownBase.prototype.findListElement = function (list, findNode, attribute, value) {\n var liElement = null;\n if (list) {\n var listArr = [].slice.call(list.querySelectorAll(findNode));\n for (var index = 0; index < listArr.length; index++) {\n if (listArr[index].getAttribute(attribute) === (value + '')) {\n liElement = listArr[index];\n break;\n }\n }\n }\n return liElement;\n };\n DropDownBase.prototype.raiseDataBound = function (listItems, e) {\n this.hideSpinner();\n var dataBoundEventArgs = {\n items: listItems,\n e: e\n };\n this.trigger('dataBound', dataBoundEventArgs);\n };\n DropDownBase.prototype.remainingItems = function (dataSource, fields) {\n var spliceData = new DataManager(dataSource).executeLocal(new Query().skip(100));\n if (this.itemTemplate) {\n var listElements = this.templateListItem(spliceData, fields);\n return [].slice.call(listElements.childNodes);\n }\n var type = this.typeOfData(spliceData).typeof;\n if (type === 'string' || type === 'number' || type === 'boolean') {\n return ListBase.createListItemFromArray(this.createElement, spliceData, true, this.listOption(spliceData, fields), this);\n }\n return ListBase.createListItemFromJson(this.createElement, spliceData, this.listOption(spliceData, fields), 1, true, this);\n };\n DropDownBase.prototype.emptyDataRequest = function (fields) {\n var listItems = [];\n this.onActionComplete(this.renderItems(listItems, fields), listItems);\n this.isRequested = false;\n this.hideSpinner();\n };\n DropDownBase.prototype.showSpinner = function () {\n // Used this method in component side.\n };\n DropDownBase.prototype.hideSpinner = function () {\n // Used this method in component side.\n };\n DropDownBase.prototype.onActionFailure = function (e) {\n this.liCollections = [];\n this.trigger('actionFailure', e);\n this.l10nUpdate(true);\n if (!isNullOrUndefined(this.list)) {\n addClass([this.list], dropDownBaseClasses.noData);\n }\n };\n /* eslint-disable @typescript-eslint/no-unused-vars */\n DropDownBase.prototype.onActionComplete = function (ulElement, list, e) {\n /* eslint-enable @typescript-eslint/no-unused-vars */\n this.listData = list;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact) {\n this.clearTemplate(['itemTemplate', 'groupTemplate', 'actionFailureTemplate', 'noRecordsTemplate']);\n }\n this.fixedHeaderElement = isNullOrUndefined(this.fixedHeaderElement) ? this.fixedHeaderElement : null;\n if (this.getModuleName() === 'multiselect' && this.properties.allowCustomValue && this.fields.groupBy) {\n for (var i = 0; i < ulElement.childElementCount; i++) {\n if (ulElement.children[i].classList.contains('e-list-group-item')) {\n if (isNullOrUndefined(ulElement.children[i].innerHTML) || ulElement.children[i].innerHTML == \"\") {\n addClass([ulElement.children[i]], HIDE_GROUPLIST);\n }\n }\n }\n }\n if (!isNullOrUndefined(this.list)) {\n this.list.innerHTML = '';\n this.list.appendChild(ulElement);\n this.liCollections = this.list.querySelectorAll('.' + dropDownBaseClasses.li);\n this.ulElement = this.list.querySelector('ul');\n this.postRender(this.list, list, this.bindEvent);\n }\n };\n /* eslint-disable @typescript-eslint/no-unused-vars */\n DropDownBase.prototype.postRender = function (listElement, list, bindEvent) {\n /* eslint-enable @typescript-eslint/no-unused-vars */\n var focusItem = listElement.querySelector('.' + dropDownBaseClasses.li);\n var selectedItem = listElement.querySelector('.' + dropDownBaseClasses.selected);\n if (focusItem && !selectedItem) {\n focusItem.classList.add(dropDownBaseClasses.focus);\n }\n if (list.length <= 0) {\n this.l10nUpdate();\n addClass([listElement], dropDownBaseClasses.noData);\n }\n else {\n listElement.classList.remove(dropDownBaseClasses.noData);\n }\n };\n /**\n * Get the query to do the data operation before list item generation.\n *\n * @param {Query} query - Accepts the external Query that execute along with data processing.\n * @returns {Query} Returns the query to do the data query operation.\n */\n DropDownBase.prototype.getQuery = function (query) {\n return query ? query : this.query ? this.query : new Query();\n };\n /**\n * To render the template content for group header element.\n *\n * @param {HTMLElement} listEle - Specifies the group list elements.\n * @returns {void}\n */\n DropDownBase.prototype.renderGroupTemplate = function (listEle) {\n if (this.fields.groupBy !== null && this.dataSource || this.element.querySelector('.' + dropDownBaseClasses.group)) {\n var dataSource = this.dataSource;\n var option = { groupTemplateID: this.groupTemplateId, isStringTemplate: this.isStringTemplate };\n var headerItems = listEle.querySelectorAll('.' + dropDownBaseClasses.group);\n var groupcheck = this.templateCompiler(this.groupTemplate);\n if (groupcheck) {\n var groupValue = select(this.groupTemplate, document).innerHTML.trim();\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var tempHeaders = ListBase.renderGroupTemplate(groupValue, dataSource, this.fields.properties, headerItems, option, this);\n //EJ2-55168- Group checkbox is not working with group template\n if (this.isGroupChecking) {\n for (var i = 0; i < tempHeaders.length; i++) {\n this.notify('addItem', { module: 'CheckBoxSelection', item: tempHeaders[i] });\n }\n }\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var tempHeaders = ListBase.renderGroupTemplate(this.groupTemplate, dataSource, this.fields.properties, headerItems, option, this);\n //EJ2-55168- Group checkbox is not working with group template\n if (this.isGroupChecking) {\n for (var i = 0; i < tempHeaders.length; i++) {\n this.notify('addItem', { module: 'CheckBoxSelection', item: tempHeaders[i] });\n }\n }\n }\n this.renderReactTemplates();\n }\n };\n /**\n * To create the ul li list items\n *\n * @param {object []} dataSource - Specifies the data to generate the list.\n * @param {FieldSettingsModel} fields - Maps the columns of the data table and binds the data to the component.\n * @returns {HTMLElement} Return the ul li list items.\n */\n DropDownBase.prototype.createListItems = function (dataSource, fields) {\n if (dataSource && fields.groupBy || this.element.querySelector('optgroup')) {\n if (fields.groupBy) {\n if (this.sortOrder !== 'None') {\n dataSource = this.getSortedDataSource(dataSource);\n }\n dataSource = ListBase.groupDataSource(dataSource, fields.properties, this.sortOrder);\n }\n addClass([this.list], dropDownBaseClasses.grouping);\n }\n else {\n dataSource = this.getSortedDataSource(dataSource);\n }\n var options = this.listOption(dataSource, fields);\n var spliceData = (dataSource.length > 100) ?\n new DataManager(dataSource).executeLocal(new Query().take(100))\n : dataSource;\n this.sortedData = dataSource;\n return ListBase.createList(this.createElement, (this.getModuleName() === 'autocomplete') ? spliceData : dataSource, options, true, this);\n };\n DropDownBase.prototype.listOption = function (dataSource, fields) {\n var iconCss = isNullOrUndefined(fields.iconCss) ? false : true;\n var fieldValues = !isNullOrUndefined(fields.properties) ?\n fields.properties : fields;\n var options = (fields.text !== null || fields.value !== null) ? {\n fields: fieldValues,\n showIcon: iconCss, ariaAttributes: { groupItemRole: 'presentation' }\n } : { fields: { value: 'text' } };\n return extend({}, options, fields, true);\n };\n DropDownBase.prototype.setFloatingHeader = function (e) {\n if (!isNullOrUndefined(this.list) && !this.list.classList.contains(dropDownBaseClasses.noData)) {\n if (isNullOrUndefined(this.fixedHeaderElement)) {\n this.fixedHeaderElement = this.createElement('div', { className: dropDownBaseClasses.fixedHead });\n if (!isNullOrUndefined(this.list) && !this.list.querySelector('li').classList.contains(dropDownBaseClasses.group)) {\n this.fixedHeaderElement.style.display = 'none';\n }\n if (!isNullOrUndefined(this.fixedHeaderElement) && !isNullOrUndefined(this.list)) {\n prepend([this.fixedHeaderElement], this.list);\n }\n this.setFixedHeader();\n }\n if (!isNullOrUndefined(this.fixedHeaderElement) && this.fixedHeaderElement.style.zIndex === '0') {\n this.setFixedHeader();\n }\n this.scrollStop(e);\n }\n };\n DropDownBase.prototype.scrollStop = function (e) {\n var target = !isNullOrUndefined(e) ? e.target : this.list;\n var liHeight = parseInt(getComputedStyle(this.getValidLi(), null).getPropertyValue('height'), 10);\n var topIndex = Math.round(target.scrollTop / liHeight);\n var liCollections = this.list.querySelectorAll('li' + ':not(.e-hide-listitem)');\n for (var i = topIndex; i > -1; i--) {\n if (!isNullOrUndefined(liCollections[i]) && liCollections[i].classList.contains(dropDownBaseClasses.group)) {\n var currentLi = liCollections[i];\n this.fixedHeaderElement.innerHTML = currentLi.innerHTML;\n this.fixedHeaderElement.style.top = target.scrollTop + 'px';\n this.fixedHeaderElement.style.display = 'block';\n break;\n }\n else {\n this.fixedHeaderElement.style.display = 'none';\n this.fixedHeaderElement.style.top = 'none';\n }\n }\n };\n DropDownBase.prototype.getValidLi = function () {\n return this.liCollections[0];\n };\n /**\n * To render the list items\n *\n * @param {object[]} listData - Specifies the list of array of data.\n * @param {FieldSettingsModel} fields - Maps the columns of the data table and binds the data to the component.\n * @returns {HTMLElement} Return the list items.\n */\n DropDownBase.prototype.renderItems = function (listData, fields) {\n var ulElement;\n if (this.itemTemplate && listData) {\n var dataSource = listData;\n if (dataSource && fields.groupBy) {\n if (this.sortOrder !== 'None') {\n dataSource = this.getSortedDataSource(dataSource);\n }\n dataSource = ListBase.groupDataSource(dataSource, fields.properties, this.sortOrder);\n }\n else {\n dataSource = this.getSortedDataSource(dataSource);\n }\n this.sortedData = dataSource;\n var spliceData = (dataSource.length > 100) ?\n new DataManager(dataSource).executeLocal(new Query().take(100))\n : dataSource;\n ulElement = this.templateListItem((this.getModuleName() === 'autocomplete') ? spliceData : dataSource, fields);\n }\n else {\n ulElement = this.createListItems(listData, fields);\n }\n return ulElement;\n };\n DropDownBase.prototype.templateListItem = function (dataSource, fields) {\n var option = this.listOption(dataSource, fields);\n option.templateID = this.itemTemplateId;\n option.isStringTemplate = this.isStringTemplate;\n var itemcheck = this.templateCompiler(this.itemTemplate);\n if (itemcheck) {\n var itemValue = select(this.itemTemplate, document).innerHTML.trim();\n return ListBase.renderContentTemplate(this.createElement, itemValue, dataSource, fields.properties, option, this);\n }\n else {\n return ListBase.renderContentTemplate(this.createElement, this.itemTemplate, dataSource, fields.properties, option, this);\n }\n };\n DropDownBase.prototype.typeOfData = function (items) {\n var item = { typeof: null, item: null };\n for (var i = 0; (!isNullOrUndefined(items) && i < items.length); i++) {\n if (!isNullOrUndefined(items[i])) {\n var listDataType = typeof (items[i]) === 'string' ||\n typeof (items[i]) === 'number' || typeof (items[i]) === 'boolean';\n var isNullData = listDataType ? isNullOrUndefined(items[i]) :\n isNullOrUndefined(getValue((this.fields.value ? this.fields.value : 'value'), items[i]));\n if (!isNullData) {\n return item = { typeof: typeof items[i], item: items[i] };\n }\n }\n }\n return item;\n };\n DropDownBase.prototype.setFixedHeader = function () {\n if (!isNullOrUndefined(this.list)) {\n this.list.parentElement.style.display = 'block';\n }\n var borderWidth = 0;\n if (this.list && this.list.parentElement) {\n borderWidth = parseInt(document.defaultView.getComputedStyle(this.list.parentElement, null).getPropertyValue('border-width'), 10);\n /*Shorthand property not working in Firefox for getComputedStyle method.\n Refer bug report https://bugzilla.mozilla.org/show_bug.cgi?id=137688\n Refer alternate solution https://stackoverflow.com/a/41696234/9133493*/\n if (isNaN(borderWidth)) {\n var borderTopWidth = parseInt(document.defaultView.getComputedStyle(this.list.parentElement, null).getPropertyValue('border-top-width'), 10);\n var borderBottomWidth = parseInt(document.defaultView.getComputedStyle(this.list.parentElement, null).getPropertyValue('border-bottom-width'), 10);\n var borderLeftWidth = parseInt(document.defaultView.getComputedStyle(this.list.parentElement, null).getPropertyValue('border-left-width'), 10);\n var borderRightWidth = parseInt(document.defaultView.getComputedStyle(this.list.parentElement, null).getPropertyValue('border-right-width'), 10);\n borderWidth = (borderTopWidth + borderBottomWidth + borderLeftWidth + borderRightWidth);\n }\n }\n if (!isNullOrUndefined(this.liCollections)) {\n var liWidth = this.getValidLi().offsetWidth - borderWidth;\n this.fixedHeaderElement.style.width = liWidth.toString() + 'px';\n }\n setStyleAttribute(this.fixedHeaderElement, { zIndex: 10 });\n var firstLi = this.ulElement.querySelector('.' + dropDownBaseClasses.group + ':not(.e-hide-listitem)');\n this.fixedHeaderElement.innerHTML = firstLi.innerHTML;\n };\n DropDownBase.prototype.getSortedDataSource = function (dataSource) {\n if (dataSource && this.sortOrder !== 'None') {\n var textField = this.fields.text ? this.fields.text : 'text';\n if (this.typeOfData(dataSource).typeof === 'string' || this.typeOfData(dataSource).typeof === 'number'\n || this.typeOfData(dataSource).typeof === 'boolean') {\n textField = '';\n }\n dataSource = ListBase.getDataSource(dataSource, ListBase.addSorting(this.sortOrder, textField));\n }\n return dataSource;\n };\n /**\n * Return the index of item which matched with given value in data source\n *\n * @param {string | number | boolean} value - Specifies given value.\n * @returns {number} Returns the index of the item.\n */\n DropDownBase.prototype.getIndexByValue = function (value) {\n var index;\n var listItems = this.getItems();\n for (var i = 0; i < listItems.length; i++) {\n if (!isNullOrUndefined(value) && listItems[i].getAttribute('data-value') === value.toString()) {\n index = i;\n break;\n }\n }\n return index;\n };\n /**\n * To dispatch the event manually\n *\n * @param {HTMLElement} element - Specifies the element to dispatch the event.\n * @param {string} type - Specifies the name of the event.\n * @returns {void}\n */\n DropDownBase.prototype.dispatchEvent = function (element, type) {\n var evt = document.createEvent('HTMLEvents');\n evt.initEvent(type, false, true);\n element.dispatchEvent(evt);\n };\n /**\n * To set the current fields\n *\n * @returns {void}\n */\n DropDownBase.prototype.setFields = function () {\n if (this.fields.value && !this.fields.text) {\n this.updateFields(this.fields.value, this.fields.value);\n }\n else if (!this.fields.value && this.fields.text) {\n this.updateFields(this.fields.text, this.fields.text);\n }\n else if (!this.fields.value && !this.fields.text) {\n this.updateFields('text', 'text');\n }\n };\n /**\n * reset the items list.\n *\n * @param {Object[] | string[] | number[] | DataManager | boolean[]} dataSource - Specifies the data to generate the list.\n * @param {FieldSettingsModel} fields - Maps the columns of the data table and binds the data to the component.\n * @param {Query} query - Accepts the external Query that execute along with data processing.\n * @returns {void}\n */\n DropDownBase.prototype.resetList = function (dataSource, fields, query, e) {\n if (this.list) {\n if ((this.element.tagName === 'SELECT' && this.element.options.length > 0)\n || (this.element.tagName === 'UL' && this.element.childNodes.length > 0)) {\n var data = dataSource instanceof Array ? (dataSource.length > 0)\n : !isNullOrUndefined(dataSource);\n if (!data && this.selectData && this.selectData.length > 0) {\n dataSource = this.selectData;\n }\n }\n dataSource = this.getModuleName() === 'combobox' && this.selectData && dataSource instanceof Array && dataSource.length < this.selectData.length && this.addedNewItem ? this.selectData : dataSource;\n this.addedNewItem = false;\n this.setListData(dataSource, fields, query, e);\n }\n };\n DropDownBase.prototype.updateSelectElementData = function (isFiltering) {\n if (isFiltering && isNullOrUndefined(this.selectData) && this.listData && this.listData.length > 0) {\n this.selectData = this.listData;\n }\n };\n DropDownBase.prototype.updateSelection = function () {\n // This is for after added the item, need to update the selected index values.\n };\n DropDownBase.prototype.renderList = function () {\n // This is for render the list items.\n this.render();\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n DropDownBase.prototype.updateDataSource = function (props) {\n this.resetList(this.dataSource);\n };\n DropDownBase.prototype.setUpdateInitial = function (props, newProp) {\n this.isDataFetched = false;\n var updateData = {};\n for (var j = 0; props.length > j; j++) {\n if (newProp[props[j]] && props[j] === 'fields') {\n this.setFields();\n updateData[props[j]] = newProp[props[j]];\n }\n else if (newProp[props[j]]) {\n updateData[props[j]] = newProp[props[j]];\n }\n }\n if (Object.keys(updateData).length > 0) {\n if (Object.keys(updateData).indexOf('dataSource') === -1) {\n updateData.dataSource = this.dataSource;\n }\n this.updateDataSource(updateData);\n }\n };\n /**\n * When property value changes happened, then onPropertyChanged method will execute the respective changes in this component.\n *\n * @param {DropDownBaseModel} newProp - Returns the dynamic property value of the component.\n * @param {DropDownBaseModel} oldProp - Returns the previous property value of the component.\n * @private\n * @returns {void}\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n DropDownBase.prototype.onPropertyChanged = function (newProp, oldProp) {\n if (this.getModuleName() === 'dropdownbase') {\n this.setUpdateInitial(['fields', 'query', 'dataSource'], newProp);\n }\n this.setUpdateInitial(['sortOrder', 'itemTemplate'], newProp);\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'query':\n case 'sortOrder':\n case 'dataSource':\n case 'itemTemplate':\n break;\n case 'enableRtl':\n this.setEnableRtl();\n break;\n case 'groupTemplate':\n this.renderGroupTemplate(this.list);\n if (this.ulElement && this.fixedHeaderElement) {\n var firstLi = this.ulElement.querySelector('.' + dropDownBaseClasses.group);\n this.fixedHeaderElement.innerHTML = firstLi.innerHTML;\n }\n break;\n case 'locale':\n if (this.list && (!isNullOrUndefined(this.liCollections) && this.liCollections.length === 0)) {\n this.l10nUpdate();\n }\n break;\n case 'zIndex':\n this.setProperties({ zIndex: newProp.zIndex }, true);\n this.setZIndex();\n break;\n }\n }\n };\n /**\n * Build and render the component\n *\n * @param {boolean} isEmptyData - Specifies the component to initialize with list data or not.\n * @private\n * @returns {void}\n */\n DropDownBase.prototype.render = function (e, isEmptyData) {\n this.list = this.createElement('div', { className: dropDownBaseClasses.content, attrs: { 'tabindex': '0' } });\n this.list.classList.add(dropDownBaseClasses.root);\n this.setFields();\n var rippleModel = { duration: 300, selector: '.' + dropDownBaseClasses.li };\n this.rippleFun = rippleEffect(this.list, rippleModel);\n var group = this.element.querySelector('select>optgroup');\n if ((this.fields.groupBy || !isNullOrUndefined(group)) && !this.isGroupChecking) {\n EventHandler.add(this.list, 'scroll', this.setFloatingHeader, this);\n }\n if (this.getModuleName() === 'dropdownbase') {\n if (this.element.getAttribute('tabindex')) {\n this.list.setAttribute('tabindex', this.element.getAttribute('tabindex'));\n }\n removeClass([this.element], dropDownBaseClasses.root);\n this.element.style.display = 'none';\n var wrapperElement = this.createElement('div');\n this.element.parentElement.insertBefore(wrapperElement, this.element);\n wrapperElement.appendChild(this.element);\n wrapperElement.appendChild(this.list);\n }\n this.setEnableRtl();\n if (!isEmptyData) {\n this.initialize(e);\n }\n };\n /**\n * Return the module name of this component.\n *\n * @private\n * @returns {string} Return the module name of this component.\n */\n DropDownBase.prototype.getModuleName = function () {\n return 'dropdownbase';\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Gets all the list items bound on this component.\n *\n * @returns {Element[]}\n */\n DropDownBase.prototype.getItems = function () {\n return this.ulElement.querySelectorAll('.' + dropDownBaseClasses.li);\n };\n /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Adds a new item to the popup list. By default, new item appends to the list as the last item,\n * but you can insert based on the index parameter.\n *\n * @param { Object[] } items - Specifies an array of JSON data or a JSON data.\n * @param { number } itemIndex - Specifies the index to place the newly added item in the popup list.\n * @returns {void}\n\n */\n DropDownBase.prototype.addItem = function (items, itemIndex) {\n if (!this.list || (this.list.textContent === this.noRecordsTemplate && this.getModuleName() !== 'listbox')) {\n this.renderList();\n }\n if (this.sortOrder !== 'None' && isNullOrUndefined(itemIndex)) {\n var newList = [].slice.call(this.listData);\n newList.push(items);\n newList = this.getSortedDataSource(newList);\n if (this.fields.groupBy) {\n newList = ListBase.groupDataSource(newList, this.fields.properties, this.sortOrder);\n itemIndex = newList.indexOf(items);\n }\n else {\n itemIndex = newList.indexOf(items);\n }\n }\n var itemsCount = this.getItems().length;\n var selectedItemValue = this.list.querySelector('.' + dropDownBaseClasses.selected);\n items = (items instanceof Array ? items : [items]);\n var index;\n index = (isNullOrUndefined(itemIndex) || itemIndex < 0 || itemIndex > itemsCount - 1) ? itemsCount : itemIndex;\n var fields = this.fields;\n if (items && fields.groupBy) {\n items = ListBase.groupDataSource(items, fields.properties);\n }\n var liCollections = [];\n for (var i = 0; i < items.length; i++) {\n var item = items[i];\n var isHeader = item.isHeader;\n var li = this.createElement('li', { className: isHeader ? dropDownBaseClasses.group : dropDownBaseClasses.li, id: 'option-add-' + i });\n var itemText = item instanceof Object ? getValue(fields.text, item) : item;\n if (isHeader) {\n li.innerText = itemText;\n }\n if (this.itemTemplate && !isHeader) {\n var itemCheck = this.templateCompiler(this.itemTemplate);\n var compiledString = itemCheck ? compile(select(this.itemTemplate, document).innerHTML.trim()) : compile(this.itemTemplate);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var addItemTemplate = compiledString(item, this, 'itemTemplate', this.itemTemplateId, this.isStringTemplate, null, li);\n if (addItemTemplate) {\n append(addItemTemplate, li);\n }\n }\n else if (!isHeader) {\n li.appendChild(document.createTextNode(itemText));\n }\n li.setAttribute('data-value', item instanceof Object ? getValue(fields.value, item) : item);\n li.setAttribute('role', 'option');\n this.notify('addItem', { module: 'CheckBoxSelection', item: li });\n liCollections.push(li);\n this.listData.push(item);\n if (this.sortOrder === 'None' && isNullOrUndefined(itemIndex) && index === 0) {\n index = null;\n }\n this.updateActionCompleteData(li, item, index);\n //Listbox event\n this.trigger('beforeItemRender', { element: li, item: item });\n }\n if (itemsCount === 0 && isNullOrUndefined(this.list.querySelector('ul'))) {\n if (!isNullOrUndefined(this.list)) {\n this.list.innerHTML = '';\n this.list.classList.remove(dropDownBaseClasses.noData);\n if (!isNullOrUndefined(this.ulElement)) {\n this.list.appendChild(this.ulElement);\n }\n }\n this.liCollections = liCollections;\n if (!isNullOrUndefined(liCollections) && !isNullOrUndefined(this.ulElement)) {\n append(liCollections, this.ulElement);\n }\n this.updateAddItemList(this.list, itemsCount);\n }\n else {\n if (this.getModuleName() === 'listbox' && itemsCount === 0) {\n this.ulElement.innerHTML = '';\n }\n var attr = [];\n for (var i = 0; i < items.length; i++) {\n var listGroupItem = this.ulElement.querySelectorAll('.e-list-group-item');\n for (var j = 0; j < listGroupItem.length; j++) {\n attr[j] = listGroupItem[j].innerText;\n }\n if (attr.indexOf(liCollections[i].innerText) > -1 && fields.groupBy) {\n for (var j = 0; j < listGroupItem.length; j++) {\n if (attr[j] === liCollections[i].innerText) {\n if (this.sortOrder === 'None') {\n this.ulElement.insertBefore(liCollections[i + 1], listGroupItem[j + 1]);\n }\n else {\n this.ulElement.insertBefore(liCollections[i + 1], this.ulElement.childNodes[itemIndex]);\n }\n i = i + 1;\n break;\n }\n }\n }\n else {\n if (this.liCollections[index]) {\n this.liCollections[index].parentNode.insertBefore(liCollections[i], this.liCollections[index]);\n }\n else {\n this.ulElement.appendChild(liCollections[i]);\n }\n }\n var tempLi = [].slice.call(this.liCollections);\n tempLi.splice(index, 0, liCollections[i]);\n this.liCollections = tempLi;\n index += 1;\n if (this.getModuleName() === 'multiselect') {\n this.updateDataList();\n }\n }\n }\n if (this.getModuleName() === 'listbox' && this.isReact) {\n this.renderReactTemplates();\n }\n if (selectedItemValue || itemIndex === 0) {\n this.updateSelection();\n }\n this.addedNewItem = true;\n };\n DropDownBase.prototype.validationAttribute = function (target, hidden) {\n var name = target.getAttribute('name') ? target.getAttribute('name') : target.getAttribute('id');\n hidden.setAttribute('name', name);\n target.removeAttribute('name');\n var attributes = ['required', 'aria-required', 'form'];\n for (var i = 0; i < attributes.length; i++) {\n if (!target.getAttribute(attributes[i])) {\n continue;\n }\n var attr = target.getAttribute(attributes[i]);\n hidden.setAttribute(attributes[i], attr);\n target.removeAttribute(attributes[i]);\n }\n };\n DropDownBase.prototype.setZIndex = function () {\n // this is for component wise\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n DropDownBase.prototype.updateActionCompleteData = function (li, item, index) {\n // this is for ComboBox custom value\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n DropDownBase.prototype.updateAddItemList = function (list, itemCount) {\n // this is for multiselect add item\n };\n DropDownBase.prototype.updateDataList = function () {\n // this is for multiselect update list items\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Gets the data Object that matches the given value.\n *\n * @param { string | number } value - Specifies the value of the list item.\n * @returns {Object}\n */\n DropDownBase.prototype.getDataByValue = function (value) {\n if (!isNullOrUndefined(this.listData)) {\n var type = this.typeOfData(this.listData).typeof;\n if (type === 'string' || type === 'number' || type === 'boolean') {\n for (var _i = 0, _a = this.listData; _i < _a.length; _i++) {\n var item = _a[_i];\n if (!isNullOrUndefined(item) && item === value) {\n return item;\n }\n }\n }\n else {\n for (var _b = 0, _c = this.listData; _b < _c.length; _b++) {\n var item = _c[_b];\n if (!isNullOrUndefined(item) && getValue((this.fields.value ? this.fields.value : 'value'), item) === value) {\n return item;\n }\n }\n }\n }\n return null;\n };\n /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Removes the component from the DOM and detaches all its related event handlers. It also removes the attributes and classes.\n *\n * @method destroy\n * @returns {void}\n */\n DropDownBase.prototype.destroy = function () {\n if (document.body.contains(this.list)) {\n EventHandler.remove(this.list, 'scroll', this.setFloatingHeader);\n if (!isNullOrUndefined(this.rippleFun)) {\n this.rippleFun();\n }\n detach(this.list);\n }\n this.liCollections = null;\n this.ulElement = null;\n this.list = null;\n this.enableRtlElements = null;\n this.rippleFun = null;\n _super.prototype.destroy.call(this);\n };\n __decorate([\n Complex({ text: null, value: null, iconCss: null, groupBy: null }, FieldSettings)\n ], DropDownBase.prototype, \"fields\", void 0);\n __decorate([\n Property(null)\n ], DropDownBase.prototype, \"itemTemplate\", void 0);\n __decorate([\n Property(null)\n ], DropDownBase.prototype, \"groupTemplate\", void 0);\n __decorate([\n Property('No records found')\n ], DropDownBase.prototype, \"noRecordsTemplate\", void 0);\n __decorate([\n Property('Request failed')\n ], DropDownBase.prototype, \"actionFailureTemplate\", void 0);\n __decorate([\n Property('None')\n ], DropDownBase.prototype, \"sortOrder\", void 0);\n __decorate([\n Property([])\n ], DropDownBase.prototype, \"dataSource\", void 0);\n __decorate([\n Property(null)\n ], DropDownBase.prototype, \"query\", void 0);\n __decorate([\n Property('StartsWith')\n ], DropDownBase.prototype, \"filterType\", void 0);\n __decorate([\n Property(true)\n ], DropDownBase.prototype, \"ignoreCase\", void 0);\n __decorate([\n Property(1000)\n ], DropDownBase.prototype, \"zIndex\", void 0);\n __decorate([\n Property(false)\n ], DropDownBase.prototype, \"ignoreAccent\", void 0);\n __decorate([\n Property()\n ], DropDownBase.prototype, \"locale\", void 0);\n __decorate([\n Event()\n ], DropDownBase.prototype, \"actionBegin\", void 0);\n __decorate([\n Event()\n ], DropDownBase.prototype, \"actionComplete\", void 0);\n __decorate([\n Event()\n ], DropDownBase.prototype, \"actionFailure\", void 0);\n __decorate([\n Event()\n ], DropDownBase.prototype, \"select\", void 0);\n __decorate([\n Event()\n ], DropDownBase.prototype, \"dataBound\", void 0);\n __decorate([\n Event()\n ], DropDownBase.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], DropDownBase.prototype, \"destroyed\", void 0);\n DropDownBase = __decorate([\n NotifyPropertyChanges\n ], DropDownBase);\n return DropDownBase;\n}(Component));\nexport { DropDownBase };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n// eslint-disable-next-line @typescript-eslint/triple-slash-reference\n/// \nimport { EventHandler, Property, Event, compile, KeyboardEvents, append, select } from '@syncfusion/ej2-base';\nimport { attributes, isNullOrUndefined, getUniqueID, formatUnit, isUndefined, getValue } from '@syncfusion/ej2-base';\nimport { Animation, Browser, NotifyPropertyChanges } from '@syncfusion/ej2-base';\nimport { addClass, removeClass, closest, prepend, detach, classList } from '@syncfusion/ej2-base';\nimport { Popup, isCollide, createSpinner, showSpinner, hideSpinner } from '@syncfusion/ej2-popups';\nimport { Input } from '@syncfusion/ej2-inputs';\nimport { incrementalSearch, resetIncrementalSearchValues } from '../common/incremental-search';\nimport { DropDownBase, dropDownBaseClasses } from '../drop-down-base/drop-down-base';\nimport { DataManager, Query, Predicate } from '@syncfusion/ej2-data';\n// don't use space in classnames\nexport var dropDownListClasses = {\n root: 'e-dropdownlist',\n hover: dropDownBaseClasses.hover,\n selected: dropDownBaseClasses.selected,\n rtl: dropDownBaseClasses.rtl,\n li: dropDownBaseClasses.li,\n disable: dropDownBaseClasses.disabled,\n base: dropDownBaseClasses.root,\n focus: dropDownBaseClasses.focus,\n input: 'e-input-group',\n inputFocus: 'e-input-focus',\n icon: 'e-input-group-icon e-ddl-icon',\n iconAnimation: 'e-icon-anim',\n value: 'e-input-value',\n device: 'e-ddl-device',\n backIcon: 'e-input-group-icon e-back-icon e-icons',\n filterBarClearIcon: 'e-input-group-icon e-clear-icon e-icons',\n filterInput: 'e-input-filter',\n filterParent: 'e-filter-parent',\n mobileFilter: 'e-ddl-device-filter',\n footer: 'e-ddl-footer',\n header: 'e-ddl-header',\n clearIcon: 'e-clear-icon',\n clearIconHide: 'e-clear-icon-hide',\n popupFullScreen: 'e-popup-full-page',\n disableIcon: 'e-ddl-disable-icon',\n hiddenElement: 'e-ddl-hidden'\n};\nvar inputObject = {\n container: null,\n buttons: []\n};\n/**\n * The DropDownList component contains a list of predefined values from which you can\n * choose a single value.\n * ```html\n * \n * ```\n * ```typescript\n * let dropDownListObj:DropDownList = new DropDownList();\n * dropDownListObj.appendTo(\"#list\");\n * ```\n */\nvar DropDownList = /** @class */ (function (_super) {\n __extends(DropDownList, _super);\n /**\n * * Constructor for creating the DropDownList component.\n *\n * @param {DropDownListModel} options - Specifies the DropDownList model.\n * @param {string | HTMLElement} element - Specifies the element to render as component.\n * @private\n */\n function DropDownList(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.isListSearched = false;\n _this.preventChange = false;\n _this.isAngular = false;\n return _this;\n }\n /**\n * Initialize the event handler.\n *\n * @private\n * @returns {void}\n */\n DropDownList.prototype.preRender = function () {\n this.valueTempElement = null;\n this.element.style.opacity = '0';\n this.initializeData();\n _super.prototype.preRender.call(this);\n this.activeIndex = this.index;\n this.queryString = '';\n };\n DropDownList.prototype.initializeData = function () {\n this.isPopupOpen = false;\n this.isDocumentClick = false;\n this.isInteracted = false;\n this.isFilterFocus = false;\n this.beforePopupOpen = false;\n this.initial = true;\n this.initRemoteRender = false;\n this.isNotSearchList = false;\n this.isTyped = false;\n this.isSelected = false;\n this.preventFocus = false;\n this.preventAutoFill = false;\n this.isValidKey = false;\n this.typedString = '';\n this.isEscapeKey = false;\n this.isPreventBlur = false;\n this.isTabKey = false;\n this.actionCompleteData = { isUpdated: false };\n this.actionData = { isUpdated: false };\n this.prevSelectPoints = {};\n this.isSelectCustom = false;\n this.isDropDownClick = false;\n this.preventAltUp = false;\n this.isCustomFilter = false;\n this.isSecondClick = false;\n this.previousValue = null;\n this.keyConfigure = {\n tab: 'tab',\n enter: '13',\n escape: '27',\n end: '35',\n home: '36',\n down: '40',\n up: '38',\n pageUp: '33',\n pageDown: '34',\n open: 'alt+40',\n close: 'shift+tab',\n hide: 'alt+38',\n space: '32'\n };\n };\n DropDownList.prototype.setZIndex = function () {\n if (this.popupObj) {\n this.popupObj.setProperties({ 'zIndex': this.zIndex });\n }\n };\n DropDownList.prototype.renderList = function (e, isEmptyData) {\n _super.prototype.render.call(this, e, isEmptyData);\n this.unWireListEvents();\n this.wireListEvents();\n };\n DropDownList.prototype.floatLabelChange = function () {\n if (this.getModuleName() === 'dropdownlist' && this.floatLabelType === 'Auto') {\n var floatElement = this.inputWrapper.container.querySelector('.e-float-text');\n if (this.inputElement.value !== '' || this.isInteracted) {\n classList(floatElement, ['e-label-top'], ['e-label-bottom']);\n }\n else {\n classList(floatElement, ['e-label-bottom'], ['e-label-top']);\n }\n }\n };\n DropDownList.prototype.resetHandler = function (e) {\n e.preventDefault();\n this.clearAll(e);\n };\n DropDownList.prototype.resetFocusElement = function () {\n this.removeHover();\n this.removeSelection();\n this.removeFocus();\n this.list.scrollTop = 0;\n if (this.getModuleName() !== 'autocomplete' && !isNullOrUndefined(this.ulElement)) {\n var li = this.ulElement.querySelector('.' + dropDownListClasses.li);\n if (li) {\n li.classList.add(dropDownListClasses.focus);\n }\n }\n };\n DropDownList.prototype.clearAll = function (e, properties) {\n this.previousItemData = (!isNullOrUndefined(this.itemData)) ? this.itemData : null;\n if (isNullOrUndefined(properties) || (!isNullOrUndefined(properties) &&\n (isNullOrUndefined(properties.dataSource) ||\n (!(properties.dataSource instanceof DataManager) && properties.dataSource.length === 0)))) {\n this.isActive = true;\n this.resetSelection(properties);\n }\n var dataItem = this.getItemData();\n if (this.previousValue === dataItem.value) {\n return;\n }\n this.onChangeEvent(e);\n };\n DropDownList.prototype.resetSelection = function (properties) {\n if (this.list) {\n if ((!isNullOrUndefined(properties) &&\n (isNullOrUndefined(properties.dataSource) ||\n (!(properties.dataSource instanceof DataManager) && properties.dataSource.length === 0)))) {\n this.selectedLI = null;\n this.actionCompleteData.isUpdated = false;\n this.actionCompleteData.ulElement = null;\n this.actionCompleteData.list = null;\n this.resetList(properties.dataSource);\n }\n else {\n if (this.allowFiltering && this.getModuleName() !== 'autocomplete'\n && !isNullOrUndefined(this.actionCompleteData.ulElement) && !isNullOrUndefined(this.actionCompleteData.list) &&\n this.actionCompleteData.list.length > 0) {\n this.onActionComplete(this.actionCompleteData.ulElement.cloneNode(true), this.actionCompleteData.list);\n }\n this.resetFocusElement();\n }\n }\n if (!isNullOrUndefined(this.hiddenElement)) {\n this.hiddenElement.innerHTML = '';\n }\n if (!isNullOrUndefined(this.inputElement)) {\n this.inputElement.value = '';\n }\n this.value = null;\n this.itemData = null;\n this.text = null;\n this.index = null;\n this.activeIndex = null;\n this.item = null;\n this.queryString = '';\n if (this.valueTempElement) {\n detach(this.valueTempElement);\n this.inputElement.style.display = 'block';\n this.valueTempElement = null;\n }\n this.setSelection(null, null);\n this.isSelectCustom = false;\n this.updateIconState();\n this.cloneElements();\n };\n DropDownList.prototype.setHTMLAttributes = function () {\n if (Object.keys(this.htmlAttributes).length) {\n for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) {\n var htmlAttr = _a[_i];\n if (htmlAttr === 'class') {\n var updatedClassValue = (this.htmlAttributes[\"\" + htmlAttr].replace(/\\s+/g, ' ')).trim();\n if (updatedClassValue !== '') {\n addClass([this.inputWrapper.container], updatedClassValue.split(' '));\n }\n }\n else if (htmlAttr === 'disabled' && this.htmlAttributes[\"\" + htmlAttr] === 'disabled') {\n this.enabled = false;\n this.setEnable();\n }\n else if (htmlAttr === 'readonly' && !isNullOrUndefined(this.htmlAttributes[\"\" + htmlAttr])) {\n this.readonly = true;\n this.dataBind();\n }\n else if (htmlAttr === 'style') {\n this.inputWrapper.container.setAttribute('style', this.htmlAttributes[\"\" + htmlAttr]);\n }\n else if (htmlAttr === 'aria-label') {\n if (this.getModuleName() === 'autocomplete' || this.getModuleName() === 'combobox') {\n this.inputElement.setAttribute('aria-label', this.htmlAttributes[\"\" + htmlAttr]);\n }\n else {\n this.inputWrapper.container.setAttribute('aria-label', this.htmlAttributes[\"\" + htmlAttr]);\n }\n }\n else {\n var defaultAttr = ['title', 'id', 'placeholder',\n 'role', 'autocomplete', 'autocapitalize', 'spellcheck', 'minlength', 'maxlength'];\n var validateAttr = ['name', 'required'];\n if (this.getModuleName() === 'autocomplete' || this.getModuleName() === 'combobox') {\n defaultAttr.push('tabindex');\n }\n if (validateAttr.indexOf(htmlAttr) > -1 || htmlAttr.indexOf('data') === 0) {\n this.hiddenElement.setAttribute(htmlAttr, this.htmlAttributes[\"\" + htmlAttr]);\n }\n else if (defaultAttr.indexOf(htmlAttr) > -1) {\n if (htmlAttr === 'placeholder') {\n Input.setPlaceholder(this.htmlAttributes[\"\" + htmlAttr], this.inputElement);\n }\n else {\n this.inputElement.setAttribute(htmlAttr, this.htmlAttributes[\"\" + htmlAttr]);\n }\n }\n else {\n this.inputWrapper.container.setAttribute(htmlAttr, this.htmlAttributes[\"\" + htmlAttr]);\n }\n }\n }\n }\n if (this.getModuleName() === 'autocomplete' || this.getModuleName() === 'combobox') {\n this.inputWrapper.container.removeAttribute('tabindex');\n }\n };\n DropDownList.prototype.getAriaAttributes = function () {\n return {\n 'aria-disabled': 'false',\n 'role': 'combobox',\n 'aria-expanded': 'false',\n 'aria-live': 'polite',\n 'aria-labelledby': this.hiddenElement.id\n };\n };\n DropDownList.prototype.setEnableRtl = function () {\n Input.setEnableRtl(this.enableRtl, [this.inputElement.parentElement]);\n if (this.popupObj) {\n this.popupObj.enableRtl = this.enableRtl;\n this.popupObj.dataBind();\n }\n };\n DropDownList.prototype.setEnable = function () {\n Input.setEnabled(this.enabled, this.inputElement);\n if (this.enabled) {\n removeClass([this.inputWrapper.container], dropDownListClasses.disable);\n this.inputElement.setAttribute('aria-disabled', 'false');\n this.targetElement().setAttribute('tabindex', this.tabIndex);\n }\n else {\n this.hidePopup();\n addClass([this.inputWrapper.container], dropDownListClasses.disable);\n this.inputElement.setAttribute('aria-disabled', 'true');\n this.targetElement().tabIndex = -1;\n }\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @returns {string} Returns the persisted data of the component.\n */\n DropDownList.prototype.getPersistData = function () {\n return this.addOnPersist(['value']);\n };\n DropDownList.prototype.getLocaleName = function () {\n return 'drop-down-list';\n };\n DropDownList.prototype.preventTabIndex = function (element) {\n if (this.getModuleName() === 'dropdownlist') {\n element.tabIndex = -1;\n }\n };\n DropDownList.prototype.targetElement = function () {\n return !isNullOrUndefined(this.inputWrapper) ? this.inputWrapper.container : null;\n };\n DropDownList.prototype.getNgDirective = function () {\n return 'EJS-DROPDOWNLIST';\n };\n DropDownList.prototype.getElementByText = function (text) {\n return this.getElementByValue(this.getValueByText(text));\n };\n DropDownList.prototype.getElementByValue = function (value) {\n var item;\n var listItems = this.getItems();\n for (var _i = 0, listItems_1 = listItems; _i < listItems_1.length; _i++) {\n var liItem = listItems_1[_i];\n if (this.getFormattedValue(liItem.getAttribute('data-value')) === value) {\n item = liItem;\n break;\n }\n }\n return item;\n };\n DropDownList.prototype.initValue = function () {\n this.renderList();\n if (this.dataSource instanceof DataManager) {\n this.initRemoteRender = true;\n }\n else {\n this.updateValues();\n }\n };\n DropDownList.prototype.updateValues = function () {\n if (!isNullOrUndefined(this.value)) {\n this.setSelection(this.getElementByValue(this.value), null);\n }\n else if (this.text && isNullOrUndefined(this.value)) {\n var element = this.getElementByText(this.text);\n if (isNullOrUndefined(element)) {\n this.setProperties({ text: null });\n return;\n }\n else {\n this.setSelection(element, null);\n }\n }\n else {\n this.setSelection(this.liCollections[this.activeIndex], null);\n }\n this.setHiddenValue();\n Input.setValue(this.text, this.inputElement, this.floatLabelType, this.showClearButton);\n };\n DropDownList.prototype.onBlurHandler = function (e) {\n if (!this.enabled) {\n return;\n }\n var target = e.relatedTarget;\n var currentTarget = e.target;\n var isPreventBlur = this.isPreventBlur;\n this.isPreventBlur = false;\n //IE 11 - issue\n if (isPreventBlur && !this.isDocumentClick && this.isPopupOpen && (!isNullOrUndefined(currentTarget) ||\n !this.isFilterLayout() && isNullOrUndefined(target))) {\n if (this.getModuleName() === 'dropdownlist' && this.allowFiltering && this.isPopupOpen) {\n this.filterInput.focus();\n }\n else {\n this.targetElement().focus();\n }\n return;\n }\n if (this.isDocumentClick || (!isNullOrUndefined(this.popupObj)\n && document.body.contains(this.popupObj.element) &&\n this.popupObj.element.classList.contains(dropDownListClasses.mobileFilter))) {\n if (!this.beforePopupOpen) {\n this.isDocumentClick = false;\n }\n return;\n }\n if (((this.getModuleName() === 'dropdownlist' && !this.isFilterFocus && target !== this.inputElement)\n && (document.activeElement !== target || (document.activeElement === target &&\n currentTarget.classList.contains(dropDownListClasses.inputFocus)))) ||\n (isNullOrUndefined(target) && this.getModuleName() === 'dropdownlist' && this.allowFiltering &&\n currentTarget !== this.inputWrapper.container) || this.getModuleName() !== 'dropdownlist' &&\n !this.inputWrapper.container.contains(target) || this.isTabKey) {\n this.isDocumentClick = this.isPopupOpen ? true : false;\n this.focusOutAction(e);\n this.isTabKey = false;\n }\n if (this.isRequested && !this.isPopupOpen && !this.isPreventBlur) {\n this.isActive = false;\n this.beforePopupOpen = false;\n }\n };\n DropDownList.prototype.focusOutAction = function (e) {\n this.isInteracted = false;\n this.focusOut(e);\n this.onFocusOut();\n };\n DropDownList.prototype.onFocusOut = function () {\n if (!this.enabled) {\n return;\n }\n if (this.isSelected) {\n this.isSelectCustom = false;\n this.onChangeEvent(null);\n }\n this.floatLabelChange();\n this.dispatchEvent(this.hiddenElement, 'change');\n if (this.getModuleName() === 'dropdownlist' && this.element.tagName !== 'INPUT') {\n this.dispatchEvent(this.inputElement, 'blur');\n }\n if (this.inputWrapper.clearButton) {\n addClass([this.inputWrapper.clearButton], dropDownListClasses.clearIconHide);\n }\n this.trigger('blur');\n };\n DropDownList.prototype.onFocus = function (e) {\n if (!this.isInteracted) {\n this.isInteracted = true;\n var args = { isInteracted: e ? true : false, event: e };\n this.trigger('focus', args);\n }\n this.updateIconState();\n };\n DropDownList.prototype.resetValueHandler = function (e) {\n var formElement = closest(this.inputElement, 'form');\n if (formElement && e.target === formElement) {\n var val = (this.element.tagName === this.getNgDirective()) ? null : this.inputElement.getAttribute('value');\n this.text = val;\n }\n };\n DropDownList.prototype.wireEvent = function () {\n EventHandler.add(this.inputWrapper.container, 'mousedown', this.dropDownClick, this);\n EventHandler.add(this.inputWrapper.container, 'focus', this.focusIn, this);\n EventHandler.add(this.inputWrapper.container, 'keypress', this.onSearch, this);\n this.bindCommonEvent();\n };\n DropDownList.prototype.bindCommonEvent = function () {\n EventHandler.add(this.targetElement(), 'blur', this.onBlurHandler, this);\n var formElement = closest(this.inputElement, 'form');\n if (formElement) {\n EventHandler.add(formElement, 'reset', this.resetValueHandler, this);\n }\n if (!Browser.isDevice) {\n this.keyboardModule = new KeyboardEvents(this.targetElement(), {\n keyAction: this.keyActionHandler.bind(this), keyConfigs: this.keyConfigure, eventName: 'keydown'\n });\n }\n else {\n this.keyboardModule = new KeyboardEvents(this.targetElement(), {\n keyAction: this.mobileKeyActionHandler.bind(this), keyConfigs: this.keyConfigure, eventName: 'keydown'\n });\n }\n this.bindClearEvent();\n };\n DropDownList.prototype.bindClearEvent = function () {\n if (this.showClearButton) {\n EventHandler.add(this.inputWrapper.clearButton, 'mousedown', this.resetHandler, this);\n }\n };\n DropDownList.prototype.unBindCommonEvent = function () {\n if (!isNullOrUndefined(this.inputWrapper) && this.targetElement()) {\n EventHandler.remove(this.targetElement(), 'blur', this.onBlurHandler);\n }\n var formElement = this.inputElement && closest(this.inputElement, 'form');\n if (formElement) {\n EventHandler.remove(formElement, 'reset', this.resetValueHandler);\n }\n if (!Browser.isDevice) {\n this.keyboardModule.destroy();\n }\n if (this.showClearButton) {\n EventHandler.remove(this.inputWrapper.clearButton, 'mousedown', this.resetHandler);\n }\n };\n DropDownList.prototype.updateIconState = function () {\n if (this.showClearButton) {\n if (this.inputElement.value !== '' && !this.readonly) {\n removeClass([this.inputWrapper.clearButton], dropDownListClasses.clearIconHide);\n }\n else {\n addClass([this.inputWrapper.clearButton], dropDownListClasses.clearIconHide);\n }\n }\n };\n /**\n * Event binding for list\n *\n * @returns {void}\n */\n DropDownList.prototype.wireListEvents = function () {\n if (!isNullOrUndefined(this.list)) {\n EventHandler.add(this.list, 'click', this.onMouseClick, this);\n EventHandler.add(this.list, 'mouseover', this.onMouseOver, this);\n EventHandler.add(this.list, 'mouseout', this.onMouseLeave, this);\n }\n };\n DropDownList.prototype.onSearch = function (e) {\n if (e.charCode !== 32 && e.charCode !== 13) {\n if (this.list === undefined) {\n this.renderList();\n }\n this.searchKeyEvent = e;\n this.onServerIncrementalSearch(e);\n }\n };\n DropDownList.prototype.onServerIncrementalSearch = function (e) {\n if (!this.isRequested && !isNullOrUndefined(this.list) &&\n !isNullOrUndefined(this.list.querySelector('li')) && this.enabled && !this.readonly) {\n this.incrementalSearch(e);\n }\n };\n DropDownList.prototype.onMouseClick = function (e) {\n var target = e.target;\n var li = closest(target, '.' + dropDownBaseClasses.li);\n if (!this.isValidLI(li)) {\n return;\n }\n this.setSelection(li, e);\n if (Browser.isDevice && this.isFilterLayout()) {\n history.back();\n }\n else {\n var delay = 100;\n this.closePopup(delay, e);\n }\n };\n DropDownList.prototype.onMouseOver = function (e) {\n var currentLi = closest(e.target, '.' + dropDownBaseClasses.li);\n this.setHover(currentLi);\n };\n DropDownList.prototype.setHover = function (li) {\n if (this.enabled && this.isValidLI(li) && !li.classList.contains(dropDownBaseClasses.hover)) {\n this.removeHover();\n addClass([li], dropDownBaseClasses.hover);\n }\n };\n DropDownList.prototype.onMouseLeave = function () {\n this.removeHover();\n };\n DropDownList.prototype.removeHover = function () {\n if (this.list) {\n var hoveredItem = this.list.querySelectorAll('.' + dropDownBaseClasses.hover);\n if (hoveredItem && hoveredItem.length) {\n removeClass(hoveredItem, dropDownBaseClasses.hover);\n }\n }\n };\n DropDownList.prototype.isValidLI = function (li) {\n return (li && li.hasAttribute('role') && li.getAttribute('role') === 'option');\n };\n DropDownList.prototype.incrementalSearch = function (e) {\n if (this.liCollections.length > 0) {\n var li = incrementalSearch(e.charCode, this.liCollections, this.activeIndex, true, this.element.id);\n if (!isNullOrUndefined(li)) {\n this.setSelection(li, e);\n this.setScrollPosition();\n }\n }\n };\n /**\n * Hides the spinner loader.\n *\n * @returns {void}\n */\n DropDownList.prototype.hideSpinner = function () {\n if (!isNullOrUndefined(this.spinnerElement)) {\n hideSpinner(this.spinnerElement);\n removeClass([this.spinnerElement], dropDownListClasses.disableIcon);\n this.spinnerElement.innerHTML = '';\n this.spinnerElement = null;\n }\n };\n /**\n * Shows the spinner loader.\n *\n * @returns {void}\n */\n DropDownList.prototype.showSpinner = function () {\n if (isNullOrUndefined(this.spinnerElement)) {\n this.spinnerElement = Browser.isDevice && !isNullOrUndefined(this.filterInputObj) && this.filterInputObj.buttons[1] ||\n !isNullOrUndefined(this.filterInputObj) && this.filterInputObj.buttons[0] || this.inputWrapper.buttons[0];\n addClass([this.spinnerElement], dropDownListClasses.disableIcon);\n createSpinner({\n target: this.spinnerElement,\n width: Browser.isDevice ? '16px' : '14px'\n }, this.createElement);\n showSpinner(this.spinnerElement);\n }\n };\n DropDownList.prototype.keyActionHandler = function (e) {\n if (!this.enabled) {\n return;\n }\n var preventAction = e.action === 'pageUp' || e.action === 'pageDown';\n var preventHomeEnd = this.getModuleName() !== 'dropdownlist' && (e.action === 'home' || e.action === 'end');\n this.isEscapeKey = e.action === 'escape';\n this.isTabKey = !this.isPopupOpen && e.action === 'tab';\n var isNavigation = (e.action === 'down' || e.action === 'up' || e.action === 'pageUp' || e.action === 'pageDown'\n || e.action === 'home' || e.action === 'end');\n if ((this.isEditTextBox() || preventAction || preventHomeEnd) && !this.isPopupOpen) {\n return;\n }\n if (!this.readonly) {\n var isTabAction = e.action === 'tab' || e.action === 'close';\n if (isNullOrUndefined(this.list) && !this.isRequested && !isTabAction && e.action !== 'escape') {\n this.searchKeyEvent = e;\n this.renderList(e);\n }\n if (isNullOrUndefined(this.list) || (!isNullOrUndefined(this.liCollections) &&\n isNavigation && this.liCollections.length === 0) || this.isRequested) {\n return;\n }\n if ((isTabAction && this.getModuleName() !== 'autocomplete') && this.isPopupOpen\n || e.action === 'escape') {\n e.preventDefault();\n }\n this.isSelected = e.action === 'escape' ? false : this.isSelected;\n this.isTyped = (isNavigation || e.action === 'escape') ? false : this.isTyped;\n switch (e.action) {\n case 'down':\n case 'up':\n this.updateUpDownAction(e);\n break;\n case 'pageUp':\n this.pageUpSelection(this.activeIndex - this.getPageCount(), e);\n e.preventDefault();\n break;\n case 'pageDown':\n this.pageDownSelection(this.activeIndex + this.getPageCount(), e);\n e.preventDefault();\n break;\n case 'home':\n this.updateHomeEndAction(e);\n break;\n case 'end':\n this.updateHomeEndAction(e);\n break;\n case 'space':\n if (this.getModuleName() === 'dropdownlist') {\n if (!this.beforePopupOpen) {\n this.showPopup();\n }\n }\n break;\n case 'open':\n this.showPopup(e);\n break;\n case 'hide':\n this.preventAltUp = this.isPopupOpen;\n this.hidePopup(e);\n this.focusDropDown(e);\n break;\n case 'enter':\n this.selectCurrentItem(e);\n break;\n case 'tab':\n this.selectCurrentValueOnTab(e);\n break;\n case 'escape':\n case 'close':\n if (this.isPopupOpen) {\n this.hidePopup(e);\n this.focusDropDown(e);\n }\n break;\n }\n }\n };\n DropDownList.prototype.updateUpDownAction = function (e) {\n var focusEle = this.list.querySelector('.' + dropDownListClasses.focus);\n if (this.isSelectFocusItem(focusEle)) {\n this.setSelection(focusEle, e);\n }\n else if (!isNullOrUndefined(this.liCollections)) {\n var index = e.action === 'down' ? this.activeIndex + 1 : this.activeIndex - 1;\n var startIndex = 0;\n if (this.getModuleName() === 'autocomplete') {\n startIndex = e.action === 'down' && isNullOrUndefined(this.activeIndex) ? 0 : this.liCollections.length - 1;\n index = index < 0 ? this.liCollections.length - 1 : index === this.liCollections.length ? 0 : index;\n }\n var nextItem = isNullOrUndefined(this.activeIndex) ? this.liCollections[startIndex]\n : this.liCollections[index];\n if (!isNullOrUndefined(nextItem)) {\n this.setSelection(nextItem, e);\n }\n }\n e.preventDefault();\n };\n DropDownList.prototype.updateHomeEndAction = function (e) {\n if (this.getModuleName() === 'dropdownlist') {\n var findLi = 0;\n if (e.action === 'home') {\n findLi = 0;\n }\n else {\n findLi = this.getItems().length - 1;\n }\n e.preventDefault();\n if (this.activeIndex === findLi) {\n return;\n }\n this.setSelection(this.liCollections[findLi], e);\n }\n };\n DropDownList.prototype.selectCurrentValueOnTab = function (e) {\n if (this.getModuleName() === 'autocomplete') {\n this.selectCurrentItem(e);\n }\n else {\n if (this.isPopupOpen) {\n this.hidePopup(e);\n this.focusDropDown(e);\n }\n }\n };\n DropDownList.prototype.mobileKeyActionHandler = function (e) {\n if (!this.enabled) {\n return;\n }\n if ((this.isEditTextBox()) && !this.isPopupOpen) {\n return;\n }\n if (!this.readonly) {\n if (this.list === undefined && !this.isRequested) {\n this.searchKeyEvent = e;\n this.renderList();\n }\n if (isNullOrUndefined(this.list) || (!isNullOrUndefined(this.liCollections) &&\n this.liCollections.length === 0) || this.isRequested) {\n return;\n }\n if (e.action === 'enter') {\n this.selectCurrentItem(e);\n }\n }\n };\n DropDownList.prototype.selectCurrentItem = function (e) {\n if (this.isPopupOpen) {\n var li = this.list.querySelector('.' + dropDownListClasses.focus);\n if (li) {\n this.setSelection(li, e);\n this.isTyped = false;\n }\n if (this.isSelected) {\n this.isSelectCustom = false;\n this.onChangeEvent(e);\n }\n this.hidePopup(e);\n this.focusDropDown(e);\n }\n else {\n this.showPopup();\n }\n };\n DropDownList.prototype.isSelectFocusItem = function (element) {\n return !isNullOrUndefined(element);\n };\n DropDownList.prototype.getPageCount = function () {\n var liHeight = this.list.classList.contains(dropDownBaseClasses.noData) ? null :\n getComputedStyle(this.getItems()[0], null).getPropertyValue('height');\n return Math.round(this.list.getBoundingClientRect().height / parseInt(liHeight, 10));\n };\n DropDownList.prototype.pageUpSelection = function (steps, event) {\n var previousItem = steps >= 0 ? this.liCollections[steps + 1] : this.liCollections[0];\n this.setSelection(previousItem, event);\n };\n DropDownList.prototype.pageDownSelection = function (steps, event) {\n var list = this.getItems();\n var previousItem = steps <= list.length ? this.liCollections[steps - 1] : this.liCollections[list.length - 1];\n this.setSelection(previousItem, event);\n };\n DropDownList.prototype.unWireEvent = function () {\n if (!isNullOrUndefined(this.inputWrapper)) {\n EventHandler.remove(this.inputWrapper.container, 'mousedown', this.dropDownClick);\n EventHandler.remove(this.inputWrapper.container, 'keypress', this.onSearch);\n EventHandler.remove(this.inputWrapper.container, 'focus', this.focusIn);\n }\n this.unBindCommonEvent();\n };\n /**\n * Event un binding for list items.\n *\n * @returns {void}\n */\n DropDownList.prototype.unWireListEvents = function () {\n if (this.list) {\n EventHandler.remove(this.list, 'click', this.onMouseClick);\n EventHandler.remove(this.list, 'mouseover', this.onMouseOver);\n EventHandler.remove(this.list, 'mouseout', this.onMouseLeave);\n }\n };\n DropDownList.prototype.checkSelector = function (id) {\n return '[id=\"' + id.replace(/(:|\\.|\\[|\\]|,|=|@|\\\\|\\/|#)/g, '\\\\$1') + '\"]';\n };\n DropDownList.prototype.onDocumentClick = function (e) {\n var target = e.target;\n if (!(!isNullOrUndefined(this.popupObj) && closest(target, this.checkSelector(this.popupObj.element.id))) &&\n !isNullOrUndefined(this.inputWrapper) && !this.inputWrapper.container.contains(e.target)) {\n if (this.inputWrapper.container.classList.contains(dropDownListClasses.inputFocus) || this.isPopupOpen) {\n this.isDocumentClick = true;\n var isActive = this.isRequested;\n this.isInteracted = false;\n this.hidePopup(e);\n if (!isActive) {\n this.onFocusOut();\n this.inputWrapper.container.classList.remove(dropDownListClasses.inputFocus);\n }\n }\n }\n else if (target !== this.inputElement && !(this.allowFiltering && target === this.filterInput)\n && !(this.getModuleName() === 'combobox' &&\n !this.allowFiltering && Browser.isDevice && target === this.inputWrapper.buttons[0])) {\n this.isPreventBlur = (Browser.isIE || Browser.info.name === 'edge') && (document.activeElement === this.targetElement() ||\n document.activeElement === this.filterInput);\n e.preventDefault();\n }\n };\n DropDownList.prototype.activeStateChange = function () {\n if (this.isDocumentClick) {\n this.hidePopup();\n this.onFocusOut();\n this.inputWrapper.container.classList.remove(dropDownListClasses.inputFocus);\n }\n };\n DropDownList.prototype.focusDropDown = function (e) {\n if (!this.initial && this.isFilterLayout()) {\n this.focusIn(e);\n }\n };\n DropDownList.prototype.dropDownClick = function (e) {\n if (e.which === 3 || e.button === 2) {\n return;\n }\n if (this.targetElement().classList.contains(dropDownListClasses.disable) || this.inputWrapper.clearButton === e.target) {\n return;\n }\n var target = e.target;\n if (target !== this.inputElement && !(this.allowFiltering && target === this.filterInput) && this.getModuleName() !== 'combobox') {\n e.preventDefault();\n }\n if (!this.readonly) {\n if (this.isPopupOpen) {\n this.hidePopup(e);\n if (this.isFilterLayout()) {\n this.focusDropDown(e);\n }\n }\n else {\n this.focusIn(e);\n this.floatLabelChange();\n this.queryString = this.inputElement.value.trim() === '' ? null : this.inputElement.value;\n this.isDropDownClick = true;\n this.showPopup(e);\n }\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var proxy_1 = this;\n // eslint-disable-next-line max-len\n var duration = (this.element.tagName === this.getNgDirective() && this.itemTemplate) ? 500 : 100;\n if (!this.isSecondClick) {\n setTimeout(function () {\n proxy_1.cloneElements();\n proxy_1.isSecondClick = true;\n }, duration);\n }\n }\n else {\n this.focusIn(e);\n }\n };\n DropDownList.prototype.cloneElements = function () {\n if (this.list) {\n var ulElement = this.list.querySelector('ul');\n if (ulElement) {\n ulElement = ulElement.cloneNode ? ulElement.cloneNode(true) : ulElement;\n this.actionCompleteData.ulElement = ulElement;\n }\n }\n };\n DropDownList.prototype.updateSelectedItem = function (li, e, preventSelect, isSelection) {\n var _this = this;\n this.removeSelection();\n li.classList.add(dropDownBaseClasses.selected);\n this.removeHover();\n var value = li.getAttribute('data-value') !== \"null\" ? this.getFormattedValue(li.getAttribute('data-value')) : null;\n var selectedData = this.getDataByValue(value);\n if (!this.initial && !preventSelect && !isNullOrUndefined(e)) {\n var items = this.detachChanges(selectedData);\n this.isSelected = true;\n var eventArgs = {\n e: e,\n item: li,\n itemData: items,\n isInteracted: e ? true : false,\n cancel: false\n };\n this.trigger('select', eventArgs, function (eventArgs) {\n if (eventArgs.cancel) {\n li.classList.remove(dropDownBaseClasses.selected);\n }\n else {\n _this.selectEventCallback(li, e, preventSelect, selectedData, value);\n if (isSelection) {\n _this.setSelectOptions(li, e);\n }\n }\n });\n }\n else {\n this.selectEventCallback(li, e, preventSelect, selectedData, value);\n if (isSelection) {\n this.setSelectOptions(li, e);\n }\n }\n };\n DropDownList.prototype.selectEventCallback = function (li, e, preventSelect, selectedData, value) {\n this.previousItemData = (!isNullOrUndefined(this.itemData)) ? this.itemData : null;\n if (this.itemData != selectedData) {\n this.previousValue = (!isNullOrUndefined(this.itemData)) ? typeof this.itemData == \"object\" ? this.checkFieldValue(this.itemData, this.fields.value.split('.')) : this.itemData : null;\n }\n this.item = li;\n this.itemData = selectedData;\n var focusedItem = this.list.querySelector('.' + dropDownBaseClasses.focus);\n if (focusedItem) {\n removeClass([focusedItem], dropDownBaseClasses.focus);\n }\n li.setAttribute('aria-selected', 'true');\n this.activeIndex = this.getIndexByValue(value);\n };\n DropDownList.prototype.activeItem = function (li) {\n if (this.isValidLI(li) && !li.classList.contains(dropDownBaseClasses.selected)) {\n this.removeSelection();\n li.classList.add(dropDownBaseClasses.selected);\n this.removeHover();\n li.setAttribute('aria-selected', 'true');\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n DropDownList.prototype.setValue = function (e) {\n var dataItem = this.getItemData();\n if (dataItem.value === null) {\n Input.setValue(null, this.inputElement, this.floatLabelType, this.showClearButton);\n }\n else {\n Input.setValue(dataItem.text, this.inputElement, this.floatLabelType, this.showClearButton);\n }\n if (this.valueTemplate && this.itemData !== null) {\n this.setValueTemplate();\n }\n else if (!isNullOrUndefined(this.valueTempElement) && this.inputElement.previousSibling === this.valueTempElement) {\n detach(this.valueTempElement);\n this.inputElement.style.display = 'block';\n }\n var clearIcon = dropDownListClasses.clearIcon;\n var isFilterElement = this.isFiltering() && this.filterInput && (this.getModuleName() === 'combobox');\n var clearElement = isFilterElement && this.filterInput.parentElement.querySelector('.' + clearIcon);\n if (this.isFiltering() && clearElement) {\n clearElement.style.removeProperty('visibility');\n }\n if (this.previousValue === dataItem.value) {\n this.isSelected = false;\n return true;\n }\n else {\n this.isSelected = !this.initial ? true : false;\n this.isSelectCustom = false;\n if (this.getModuleName() === 'dropdownlist') {\n this.updateIconState();\n }\n return false;\n }\n };\n DropDownList.prototype.setSelection = function (li, e) {\n if (this.isValidLI(li) && (!li.classList.contains(dropDownBaseClasses.selected) || (this.isPopupOpen && this.isSelected\n && li.classList.contains(dropDownBaseClasses.selected)))) {\n this.updateSelectedItem(li, e, false, true);\n }\n else {\n this.setSelectOptions(li, e);\n }\n };\n DropDownList.prototype.setSelectOptions = function (li, e) {\n if (this.list) {\n this.removeHover();\n }\n this.previousSelectedLI = (!isNullOrUndefined(this.selectedLI)) ? this.selectedLI : null;\n this.selectedLI = li;\n if (this.setValue(e)) {\n return;\n }\n if ((!this.isPopupOpen && !isNullOrUndefined(li)) || (this.isPopupOpen && !isNullOrUndefined(e) &&\n (e.type !== 'keydown' || e.type === 'keydown' && e.action === 'enter'))) {\n this.isSelectCustom = false;\n this.onChangeEvent(e);\n }\n if (this.isPopupOpen && !isNullOrUndefined(this.selectedLI) && this.itemData !== null && (!e || e.type !== 'click')) {\n this.setScrollPosition(e);\n }\n if (Browser.info.name !== 'mozilla') {\n if (this.targetElement()) {\n if (this.getModuleName() !== 'combobox') {\n attributes(this.targetElement(), { 'aria-describedby': this.inputElement.id !== '' ? this.inputElement.id : this.element.id });\n }\n this.targetElement().removeAttribute('aria-live');\n }\n }\n if (this.isPopupOpen && !isNullOrUndefined(this.ulElement) && !isNullOrUndefined(this.ulElement.getElementsByClassName('e-item-focus')[0])) {\n attributes(this.targetElement(), { 'aria-activedescendant': this.ulElement.getElementsByClassName('e-item-focus')[0].id });\n }\n else if (this.isPopupOpen && !isNullOrUndefined(this.ulElement) && !isNullOrUndefined(this.ulElement.getElementsByClassName('e-active')[0])) {\n attributes(this.targetElement(), { 'aria-activedescendant': this.ulElement.getElementsByClassName('e-active')[0].id });\n }\n };\n DropDownList.prototype.dropdownCompiler = function (dropdownTemplate) {\n var checkTemplate = false;\n if (dropdownTemplate) {\n try {\n checkTemplate = (document.querySelectorAll(dropdownTemplate).length) ? true : false;\n }\n catch (exception) {\n checkTemplate = false;\n }\n }\n return checkTemplate;\n };\n DropDownList.prototype.setValueTemplate = function () {\n var compiledString;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact) {\n this.clearTemplate(['valueTemplate']);\n if (this.valueTempElement) {\n detach(this.valueTempElement);\n this.inputElement.style.display = 'block';\n this.valueTempElement = null;\n }\n }\n if (!this.valueTempElement) {\n this.valueTempElement = this.createElement('span', { className: dropDownListClasses.value });\n this.inputElement.parentElement.insertBefore(this.valueTempElement, this.inputElement);\n this.inputElement.style.display = 'none';\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (!this.isReact) {\n this.valueTempElement.innerHTML = '';\n }\n var valuecheck = this.dropdownCompiler(this.valueTemplate);\n if (valuecheck) {\n compiledString = compile(document.querySelector(this.valueTemplate).innerHTML.trim());\n }\n else {\n compiledString = compile(this.valueTemplate);\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var valueCompTemp = compiledString(this.itemData, this, 'valueTemplate', this.valueTemplateId, this.isStringTemplate, null, this.valueTempElement);\n if (valueCompTemp && valueCompTemp.length > 0) {\n append(valueCompTemp, this.valueTempElement);\n }\n this.renderReactTemplates();\n };\n DropDownList.prototype.removeSelection = function () {\n if (this.list) {\n var selectedItems = this.list.querySelectorAll('.' + dropDownBaseClasses.selected);\n if (selectedItems.length) {\n removeClass(selectedItems, dropDownBaseClasses.selected);\n selectedItems[0].removeAttribute('aria-selected');\n }\n }\n };\n DropDownList.prototype.getItemData = function () {\n var fields = this.fields;\n var dataItem = null;\n dataItem = this.itemData;\n var dataValue;\n var dataText;\n if (!isNullOrUndefined(dataItem)) {\n dataValue = getValue(fields.value, dataItem);\n dataText = getValue(fields.text, dataItem);\n }\n var value = (!isNullOrUndefined(dataItem) &&\n !isUndefined(dataValue) ? dataValue : dataItem);\n var text = (!isNullOrUndefined(dataItem) &&\n !isUndefined(dataValue) ? dataText : dataItem);\n return { value: value, text: text };\n };\n /**\n * To trigger the change event for list.\n *\n * @param {MouseEvent | KeyboardEvent | TouchEvent} eve - Specifies the event arguments.\n * @returns {void}\n */\n DropDownList.prototype.onChangeEvent = function (eve) {\n var dataItem = this.getItemData();\n var index = this.isSelectCustom ? null : this.activeIndex;\n this.setProperties({ 'index': index, 'text': dataItem.text, 'value': dataItem.value }, true);\n this.detachChangeEvent(eve);\n this.dispatchEvent(this.hiddenElement, 'change');\n };\n DropDownList.prototype.detachChanges = function (value) {\n var items;\n if (typeof value === 'string' ||\n typeof value === 'boolean' ||\n typeof value === 'number') {\n items = Object.defineProperties({}, {\n value: {\n value: value,\n enumerable: true\n },\n text: {\n value: value,\n enumerable: true\n }\n });\n }\n else {\n items = value;\n }\n return items;\n };\n DropDownList.prototype.detachChangeEvent = function (eve) {\n this.isSelected = false;\n this.previousValue = this.value;\n this.activeIndex = this.index;\n this.typedString = !isNullOrUndefined(this.text) ? this.text : '';\n if (!this.initial) {\n var items = this.detachChanges(this.itemData);\n var preItems = void 0;\n if (typeof this.previousItemData === 'string' ||\n typeof this.previousItemData === 'boolean' ||\n typeof this.previousItemData === 'number') {\n preItems = Object.defineProperties({}, {\n value: {\n value: this.previousItemData,\n enumerable: true\n },\n text: {\n value: this.previousItemData,\n enumerable: true\n }\n });\n }\n else {\n preItems = this.previousItemData;\n }\n this.setHiddenValue();\n var eventArgs = {\n e: eve,\n item: this.item,\n itemData: items,\n previousItem: this.previousSelectedLI,\n previousItemData: preItems,\n isInteracted: eve ? true : false,\n value: this.value,\n element: this.element,\n event: eve\n };\n if (this.isAngular && this.preventChange) {\n this.preventChange = false;\n }\n else {\n this.trigger('change', eventArgs);\n }\n }\n if ((isNullOrUndefined(this.value) || this.value === '') && this.floatLabelType !== 'Always') {\n removeClass([this.inputWrapper.container], 'e-valid-input');\n }\n };\n DropDownList.prototype.setHiddenValue = function () {\n if (!isNullOrUndefined(this.value)) {\n if (this.hiddenElement.querySelector('option')) {\n var selectedElement = this.hiddenElement.querySelector('option');\n selectedElement.textContent = this.text;\n selectedElement.setAttribute('value', this.value.toString());\n }\n else {\n if (!isNullOrUndefined(this.hiddenElement)) {\n this.hiddenElement.innerHTML = '';\n var selectedElement = this.hiddenElement.querySelector('option');\n selectedElement.setAttribute('value', this.value.toString());\n }\n }\n }\n else {\n this.hiddenElement.innerHTML = '';\n }\n };\n /**\n * Filter bar implementation\n *\n * @param {KeyboardEventArgs} e - Specifies the event arguments.\n * @returns {void}\n */\n DropDownList.prototype.onFilterUp = function (e) {\n if (!(e.ctrlKey && e.keyCode === 86) && (this.isValidKey || e.keyCode === 40 || e.keyCode === 38)) {\n this.isValidKey = false;\n switch (e.keyCode) {\n case 38: //up arrow\n case 40: //down arrow\n if (this.getModuleName() === 'autocomplete' && !this.isPopupOpen && !this.preventAltUp && !this.isRequested) {\n this.preventAutoFill = true;\n this.searchLists(e);\n }\n else {\n this.preventAutoFill = false;\n }\n this.preventAltUp = false;\n if (this.getModuleName() === 'autocomplete' && !isNullOrUndefined(this.ulElement) && !isNullOrUndefined(this.ulElement.getElementsByClassName('e-item-focus')[0])) {\n attributes(this.targetElement(), { 'aria-activedescendant': this.ulElement.getElementsByClassName('e-item-focus')[0].id });\n }\n e.preventDefault();\n break;\n case 46: //delete\n case 8: //backspace\n this.typedString = this.filterInput.value;\n if (!this.isPopupOpen && this.typedString !== '' || this.isPopupOpen && this.queryString.length > 0) {\n this.preventAutoFill = true;\n this.searchLists(e);\n }\n else if (this.typedString === '' && this.queryString === '' && this.getModuleName() !== 'autocomplete') {\n this.preventAutoFill = true;\n this.searchLists(e);\n }\n else if (this.typedString === '') {\n if (this.list) {\n this.resetFocusElement();\n }\n this.activeIndex = null;\n if (this.getModuleName() !== 'dropdownlist') {\n this.preventAutoFill = true;\n this.searchLists(e);\n if (this.getModuleName() === 'autocomplete') {\n this.hidePopup();\n }\n }\n }\n e.preventDefault();\n break;\n default:\n this.typedString = this.filterInput.value;\n this.preventAutoFill = false;\n this.searchLists(e);\n break;\n }\n }\n else {\n this.isValidKey = false;\n }\n };\n DropDownList.prototype.onFilterDown = function (e) {\n switch (e.keyCode) {\n case 13: //enter\n break;\n case 40: //down arrow\n case 38: //up arrow\n this.queryString = this.filterInput.value;\n e.preventDefault();\n break;\n case 9: //tab\n if (this.isPopupOpen && this.getModuleName() !== 'autocomplete') {\n e.preventDefault();\n }\n break;\n default:\n this.prevSelectPoints = this.getSelectionPoints();\n this.queryString = this.filterInput.value;\n break;\n }\n };\n DropDownList.prototype.removeFillSelection = function () {\n if (this.isInteracted) {\n var selection = this.getSelectionPoints();\n this.inputElement.setSelectionRange(selection.end, selection.end);\n }\n };\n DropDownList.prototype.getQuery = function (query) {\n var filterQuery;\n if (!this.isCustomFilter && this.allowFiltering && this.filterInput) {\n filterQuery = query ? query.clone() : this.query ? this.query.clone() : new Query();\n var filterType = this.typedString === '' ? 'contains' : this.filterType;\n var dataType = this.typeOfData(this.dataSource).typeof;\n if (!(this.dataSource instanceof DataManager) && dataType === 'string' || dataType === 'number') {\n filterQuery.where('', filterType, this.typedString, this.ignoreCase, this.ignoreAccent);\n }\n else {\n var fields = (this.fields.text) ? this.fields.text : '';\n filterQuery.where(fields, filterType, this.typedString, this.ignoreCase, this.ignoreAccent);\n }\n }\n else {\n filterQuery = query ? query.clone() : this.query ? this.query.clone() : new Query();\n }\n return filterQuery;\n };\n DropDownList.prototype.getSelectionPoints = function () {\n var input = this.inputElement;\n return { start: Math.abs(input.selectionStart), end: Math.abs(input.selectionEnd) };\n };\n DropDownList.prototype.searchLists = function (e) {\n var _this = this;\n this.isTyped = true;\n this.activeIndex = null;\n this.isListSearched = true;\n if (this.filterInput.parentElement.querySelector('.' + dropDownListClasses.clearIcon)) {\n var clearElement = this.filterInput.parentElement.querySelector('.' + dropDownListClasses.clearIcon);\n clearElement.style.visibility = this.filterInput.value === '' ? 'hidden' : 'visible';\n }\n this.isDataFetched = false;\n if (this.isFiltering()) {\n var eventArgs_1 = {\n preventDefaultAction: false,\n text: this.filterInput.value,\n updateData: function (dataSource, query, fields) {\n if (eventArgs_1.cancel) {\n return;\n }\n _this.isCustomFilter = true;\n _this.filteringAction(dataSource, query, fields);\n },\n baseEventArgs: e,\n cancel: false\n };\n this.trigger('filtering', eventArgs_1, function (eventArgs) {\n if (!eventArgs.cancel && !_this.isCustomFilter && !eventArgs.preventDefaultAction) {\n _this.filteringAction(_this.dataSource, null, _this.fields);\n }\n });\n }\n };\n /**\n * To filter the data from given data source by using query\n *\n * @param {Object[] | DataManager } dataSource - Set the data source to filter.\n * @param {Query} query - Specify the query to filter the data.\n * @param {FieldSettingsModel} fields - Specify the fields to map the column in the data table.\n * @returns {void}\n\n */\n DropDownList.prototype.filter = function (dataSource, query, fields) {\n this.isCustomFilter = true;\n this.filteringAction(dataSource, query, fields);\n };\n DropDownList.prototype.filteringAction = function (dataSource, query, fields) {\n if (!isNullOrUndefined(this.filterInput)) {\n this.beforePopupOpen = (!this.isPopupOpen && this.getModuleName() === 'combobox' && this.filterInput.value === '') ?\n false : true;\n if (this.filterInput.value.trim() === '' && !this.itemTemplate) {\n this.actionCompleteData.isUpdated = false;\n this.isTyped = false;\n if (!isNullOrUndefined(this.actionCompleteData.ulElement) && !isNullOrUndefined(this.actionCompleteData.list)) {\n this.onActionComplete(this.actionCompleteData.ulElement, this.actionCompleteData.list);\n }\n this.isTyped = true;\n if (!isNullOrUndefined(this.itemData) && this.getModuleName() === 'dropdownlist') {\n this.focusIndexItem();\n this.setScrollPosition();\n }\n this.isNotSearchList = true;\n }\n else {\n this.isNotSearchList = false;\n query = (this.filterInput.value.trim() === '') ? null : query;\n this.resetList(dataSource, fields, query);\n }\n this.renderReactTemplates();\n }\n };\n DropDownList.prototype.setSearchBox = function (popupElement) {\n if (this.isFiltering()) {\n var parentElement = popupElement.querySelector('.' + dropDownListClasses.filterParent) ?\n popupElement.querySelector('.' + dropDownListClasses.filterParent) : this.createElement('span', {\n className: dropDownListClasses.filterParent\n });\n this.filterInput = this.createElement('input', {\n attrs: { type: 'text' },\n className: dropDownListClasses.filterInput\n });\n this.element.parentNode.insertBefore(this.filterInput, this.element);\n var backIcon = false;\n if (Browser.isDevice) {\n backIcon = true;\n }\n this.filterInputObj = Input.createInput({\n element: this.filterInput,\n buttons: backIcon ?\n [dropDownListClasses.backIcon, dropDownListClasses.filterBarClearIcon] : [dropDownListClasses.filterBarClearIcon],\n properties: { placeholder: this.filterBarPlaceholder }\n }, this.createElement);\n if (!isNullOrUndefined(this.cssClass)) {\n if (this.cssClass.split(' ').indexOf('e-outline') !== -1) {\n addClass([this.filterInputObj.container], 'e-outline');\n }\n else if (this.cssClass.split(' ').indexOf('e-filled') !== -1) {\n addClass([this.filterInputObj.container], 'e-filled');\n }\n }\n append([this.filterInputObj.container], parentElement);\n prepend([parentElement], popupElement);\n attributes(this.filterInput, {\n 'aria-disabled': 'false',\n 'role': 'combobox',\n 'autocomplete': 'off',\n 'autocapitalize': 'off',\n 'spellcheck': 'false'\n });\n this.clearIconElement = this.filterInput.parentElement.querySelector('.' + dropDownListClasses.clearIcon);\n if (!Browser.isDevice && this.clearIconElement) {\n EventHandler.add(this.clearIconElement, 'click', this.clearText, this);\n this.clearIconElement.style.visibility = 'hidden';\n }\n if (!Browser.isDevice) {\n this.searchKeyModule = new KeyboardEvents(this.filterInput, {\n keyAction: this.keyActionHandler.bind(this),\n keyConfigs: this.keyConfigure,\n eventName: 'keydown'\n });\n }\n else {\n this.searchKeyModule = new KeyboardEvents(this.filterInput, {\n keyAction: this.mobileKeyActionHandler.bind(this),\n keyConfigs: this.keyConfigure,\n eventName: 'keydown'\n });\n }\n EventHandler.add(this.filterInput, 'input', this.onInput, this);\n EventHandler.add(this.filterInput, 'keyup', this.onFilterUp, this);\n EventHandler.add(this.filterInput, 'keydown', this.onFilterDown, this);\n EventHandler.add(this.filterInput, 'blur', this.onBlurHandler, this);\n EventHandler.add(this.filterInput, 'paste', this.pasteHandler, this);\n return this.filterInputObj;\n }\n else {\n return inputObject;\n }\n };\n DropDownList.prototype.onInput = function (e) {\n this.isValidKey = true;\n // For filtering works in mobile firefox.\n if (Browser.isDevice && Browser.info.name === 'mozilla') {\n this.typedString = this.filterInput.value;\n this.preventAutoFill = true;\n this.searchLists(e);\n }\n };\n DropDownList.prototype.pasteHandler = function (e) {\n var _this = this;\n setTimeout(function () {\n _this.typedString = _this.filterInput.value;\n _this.searchLists(e);\n });\n };\n DropDownList.prototype.onActionFailure = function (e) {\n _super.prototype.onActionFailure.call(this, e);\n if (this.beforePopupOpen) {\n this.renderPopup();\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n DropDownList.prototype.onActionComplete = function (ulElement, list, e, isUpdated) {\n var _this = this;\n if (this.isNotSearchList) {\n this.isNotSearchList = false;\n return;\n }\n if (this.isActive) {\n var selectedItem = this.selectedLI ? this.selectedLI.cloneNode(true) : null;\n _super.prototype.onActionComplete.call(this, ulElement, list, e);\n this.updateSelectElementData(this.allowFiltering);\n if (this.isRequested && !isNullOrUndefined(this.searchKeyEvent) && this.searchKeyEvent.type === 'keydown') {\n this.isRequested = false;\n this.keyActionHandler(this.searchKeyEvent);\n this.searchKeyEvent = null;\n }\n if (this.isRequested && !isNullOrUndefined(this.searchKeyEvent)) {\n this.incrementalSearch(this.searchKeyEvent);\n this.searchKeyEvent = null;\n }\n this.list.scrollTop = 0;\n if (!isNullOrUndefined(ulElement)) {\n attributes(ulElement, { 'id': this.element.id + '_options', 'role': 'listbox', 'aria-hidden': 'false' });\n }\n if (this.initRemoteRender) {\n this.initial = true;\n this.activeIndex = this.index;\n this.initRemoteRender = false;\n if (this.value && this.dataSource instanceof DataManager) {\n var checkField_1 = isNullOrUndefined(this.fields.value) ? this.fields.text : this.fields.value;\n var fieldValue_1 = this.fields.value.split('.');\n var checkVal = list.some(function (x) {\n return isNullOrUndefined(x[checkField_1]) && fieldValue_1.length > 1 ?\n _this.checkFieldValue(x, fieldValue_1) === _this.value : x[checkField_1] === _this.value;\n });\n if (!checkVal) {\n this.dataSource.executeQuery(this.getQuery(this.query).where(new Predicate(checkField_1, 'equal', this.value)))\n .then(function (e) {\n if (e.result.length > 0) {\n _this.addItem(e.result, list.length);\n _this.updateValues();\n }\n else {\n _this.updateValues();\n }\n });\n }\n else {\n this.updateValues();\n }\n }\n else {\n this.updateValues();\n }\n this.initial = false;\n }\n else if (this.getModuleName() === 'autocomplete' && this.value) {\n this.setInputValue();\n }\n if (this.getModuleName() !== 'autocomplete' && this.isFiltering() && !this.isTyped) {\n if (!this.actionCompleteData.isUpdated || ((!this.isCustomFilter\n && !this.isFilterFocus) || (isNullOrUndefined(this.itemData) && this.allowFiltering)\n && ((this.dataSource instanceof DataManager)\n || (!isNullOrUndefined(this.dataSource) && !isNullOrUndefined(this.dataSource.length) &&\n this.dataSource.length !== 0)))) {\n if (this.itemTemplate && this.element.tagName === 'EJS-COMBOBOX' && this.allowFiltering) {\n setTimeout(function () {\n _this.updateActionCompleteDataValues(ulElement, list);\n }, 0);\n }\n else {\n this.updateActionCompleteDataValues(ulElement, list);\n }\n }\n this.addNewItem(list, selectedItem);\n if (!isNullOrUndefined(this.itemData)) {\n this.focusIndexItem();\n }\n }\n if (this.beforePopupOpen) {\n this.renderPopup(e);\n }\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n DropDownList.prototype.checkFieldValue = function (list, fieldValue) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var checkField = list;\n fieldValue.forEach(function (value) {\n checkField = checkField[value];\n });\n return checkField;\n };\n DropDownList.prototype.updateActionCompleteDataValues = function (ulElement, list) {\n this.actionCompleteData = { ulElement: ulElement.cloneNode(true), list: list, isUpdated: true };\n if (this.actionData.list !== this.actionCompleteData.list && this.actionCompleteData.ulElement && this.actionCompleteData.list) {\n this.actionData = this.actionCompleteData;\n }\n };\n DropDownList.prototype.addNewItem = function (listData, newElement) {\n var _this = this;\n if (!isNullOrUndefined(this.itemData) && !isNullOrUndefined(newElement)) {\n var value_1 = this.getItemData().value;\n var isExist = listData.some(function (data) {\n return (((typeof data === 'string' || typeof data === 'number') && data === value_1) ||\n (getValue(_this.fields.value, data) === value_1));\n });\n if (!isExist) {\n this.addItem(this.itemData);\n }\n }\n };\n DropDownList.prototype.updateActionCompleteData = function (li, item, index) {\n var _this = this;\n if (this.getModuleName() !== 'autocomplete' && this.actionCompleteData.ulElement) {\n if (this.itemTemplate && this.element.tagName === 'EJS-COMBOBOX' && this.allowFiltering) {\n setTimeout(function () {\n _this.actionCompleteDataUpdate(li, item, index);\n }, 0);\n }\n else {\n this.actionCompleteDataUpdate(li, item, index);\n }\n }\n };\n DropDownList.prototype.actionCompleteDataUpdate = function (li, item, index) {\n if (index !== null) {\n this.actionCompleteData.ulElement.\n insertBefore(li.cloneNode(true), this.actionCompleteData.ulElement.childNodes[index]);\n }\n else {\n this.actionCompleteData.ulElement.appendChild(li.cloneNode(true));\n }\n if (this.isFiltering() && this.actionCompleteData.list.indexOf(item) < 0) {\n this.actionCompleteData.list.push(item);\n }\n };\n DropDownList.prototype.focusIndexItem = function () {\n var value = this.getItemData().value;\n this.activeIndex = this.getIndexByValue(value);\n var element = this.findListElement(this.list, 'li', 'data-value', value);\n this.selectedLI = element;\n this.activeItem(element);\n this.removeFocus();\n };\n DropDownList.prototype.updateSelection = function () {\n var selectedItem = this.list.querySelector('.' + dropDownBaseClasses.selected);\n if (selectedItem) {\n this.setProperties({ 'index': this.getIndexByValue(selectedItem.getAttribute('data-value')) });\n this.activeIndex = this.index;\n }\n else {\n this.removeFocus();\n this.list.querySelector('.' + dropDownBaseClasses.li).classList.add(dropDownListClasses.focus);\n }\n };\n DropDownList.prototype.removeFocus = function () {\n var highlightedItem = this.list.querySelectorAll('.' + dropDownListClasses.focus);\n if (highlightedItem && highlightedItem.length) {\n removeClass(highlightedItem, dropDownListClasses.focus);\n }\n };\n DropDownList.prototype.renderPopup = function (e) {\n var _this = this;\n if (this.popupObj && document.body.contains(this.popupObj.element)) {\n this.refreshPopup();\n return;\n }\n var args = { cancel: false };\n this.trigger('beforeOpen', args, function (args) {\n if (!args.cancel) {\n var popupEle = _this.createElement('div', {\n id: _this.element.id + '_popup', className: 'e-ddl e-popup ' + (_this.cssClass !== null ? _this.cssClass : '')\n });\n var searchBox = _this.setSearchBox(popupEle);\n _this.listHeight = formatUnit(_this.popupHeight);\n if (_this.headerTemplate) {\n _this.setHeaderTemplate(popupEle);\n }\n append([_this.list], popupEle);\n if (_this.footerTemplate) {\n _this.setFooterTemplate(popupEle);\n }\n document.body.appendChild(popupEle);\n popupEle.style.visibility = 'hidden';\n if (_this.popupHeight !== 'auto') {\n _this.searchBoxHeight = 0;\n if (!isNullOrUndefined(searchBox.container)) {\n _this.searchBoxHeight = (searchBox.container.parentElement).getBoundingClientRect().height;\n _this.listHeight = (parseInt(_this.listHeight, 10) - (_this.searchBoxHeight)).toString() + 'px';\n }\n if (_this.headerTemplate) {\n _this.header = _this.header ? _this.header : popupEle.querySelector('.e-ddl-header');\n var height = Math.round(_this.header.getBoundingClientRect().height);\n _this.listHeight = (parseInt(_this.listHeight, 10) - (height + _this.searchBoxHeight)).toString() + 'px';\n }\n if (_this.footerTemplate) {\n _this.footer = _this.footer ? _this.footer : popupEle.querySelector('.e-ddl-footer');\n var height = Math.round(_this.footer.getBoundingClientRect().height);\n _this.listHeight = (parseInt(_this.listHeight, 10) - (height + _this.searchBoxHeight)).toString() + 'px';\n }\n _this.list.style.maxHeight = (parseInt(_this.listHeight, 10) - 2).toString() + 'px'; // due to box-sizing property\n popupEle.style.maxHeight = formatUnit(_this.popupHeight);\n }\n else {\n popupEle.style.height = 'auto';\n }\n var offsetValue = 0;\n var left = void 0;\n if (!isNullOrUndefined(_this.selectedLI) && (!isNullOrUndefined(_this.activeIndex) && _this.activeIndex >= 0)) {\n _this.setScrollPosition();\n }\n else {\n _this.list.scrollTop = 0;\n }\n if (Browser.isDevice && (!_this.allowFiltering && (_this.getModuleName() === 'dropdownlist' ||\n (_this.isDropDownClick && _this.getModuleName() === 'combobox')))) {\n offsetValue = _this.getOffsetValue(popupEle);\n var firstItem = _this.isEmptyList() ? _this.list : _this.liCollections[0];\n if (!isNullOrUndefined(_this.inputElement)) {\n left = -(parseInt(getComputedStyle(firstItem).textIndent, 10) -\n parseInt(getComputedStyle(_this.inputElement).paddingLeft, 10) +\n parseInt(getComputedStyle(_this.inputElement.parentElement).borderLeftWidth, 10));\n }\n }\n _this.getFocusElement();\n _this.createPopup(popupEle, offsetValue, left);\n _this.checkCollision(popupEle);\n if (Browser.isDevice) {\n _this.popupObj.element.classList.add(dropDownListClasses.device);\n if (_this.getModuleName() === 'dropdownlist' || (_this.getModuleName() === 'combobox'\n && !_this.allowFiltering && _this.isDropDownClick)) {\n _this.popupObj.collision = { X: 'fit', Y: 'fit' };\n }\n if (_this.isFilterLayout()) {\n _this.popupObj.element.classList.add(dropDownListClasses.mobileFilter);\n _this.popupObj.position = { X: 0, Y: 0 };\n _this.popupObj.dataBind();\n attributes(_this.popupObj.element, { style: 'left:0px;right:0px;top:0px;bottom:0px;' });\n addClass([document.body, _this.popupObj.element], dropDownListClasses.popupFullScreen);\n _this.setSearchBoxPosition();\n _this.backIconElement = searchBox.container.querySelector('.e-back-icon');\n _this.clearIconElement = searchBox.container.querySelector('.' + dropDownListClasses.clearIcon);\n EventHandler.add(_this.backIconElement, 'click', _this.clickOnBackIcon, _this);\n EventHandler.add(_this.clearIconElement, 'click', _this.clearText, _this);\n }\n }\n popupEle.style.visibility = 'visible';\n addClass([popupEle], 'e-popup-close');\n var scrollParentElements = _this.popupObj.getScrollableParent(_this.inputWrapper.container);\n for (var _i = 0, scrollParentElements_1 = scrollParentElements; _i < scrollParentElements_1.length; _i++) {\n var element = scrollParentElements_1[_i];\n EventHandler.add(element, 'scroll', _this.scrollHandler, _this);\n }\n if (!isNullOrUndefined(_this.list)) {\n _this.unWireListEvents();\n _this.wireListEvents();\n }\n _this.selectedElementID = _this.selectedLI ? _this.selectedLI.id : null;\n attributes(_this.targetElement(), { 'aria-expanded': 'true', 'aria-owns': _this.inputElement.id + '_options' });\n _this.inputElement.setAttribute('aria-expanded', 'true');\n var inputParent = _this.isFiltering() ? _this.filterInput.parentElement : _this.inputWrapper.container;\n addClass([inputParent], [dropDownListClasses.inputFocus]);\n var animModel = { name: 'FadeIn', duration: 100 };\n _this.beforePopupOpen = true;\n var popupInstance = _this.popupObj;\n var eventArgs = { popup: popupInstance, event: e, cancel: false, animation: animModel };\n _this.trigger('open', eventArgs, function (eventArgs) {\n if (!eventArgs.cancel) {\n if (!isNullOrUndefined(_this.inputWrapper)) {\n addClass([_this.inputWrapper.container], [dropDownListClasses.iconAnimation]);\n }\n _this.renderReactTemplates();\n if (!isNullOrUndefined(_this.popupObj)) {\n _this.popupObj.show(new Animation(eventArgs.animation), (_this.zIndex === 1000) ? _this.element : null);\n }\n }\n else {\n _this.beforePopupOpen = false;\n _this.destroyPopup();\n }\n });\n }\n else {\n _this.beforePopupOpen = false;\n }\n });\n };\n DropDownList.prototype.checkCollision = function (popupEle) {\n if (!Browser.isDevice || (Browser.isDevice && !(this.getModuleName() === 'dropdownlist' || this.isDropDownClick))) {\n var collision = isCollide(popupEle);\n if (collision.length > 0) {\n popupEle.style.marginTop = -parseInt(getComputedStyle(popupEle).marginTop, 10) + 'px';\n }\n this.popupObj.resolveCollision();\n }\n };\n DropDownList.prototype.getOffsetValue = function (popupEle) {\n var popupStyles = getComputedStyle(popupEle);\n var borderTop = parseInt(popupStyles.borderTopWidth, 10);\n var borderBottom = parseInt(popupStyles.borderBottomWidth, 10);\n return this.setPopupPosition(borderTop + borderBottom);\n };\n DropDownList.prototype.createPopup = function (element, offsetValue, left) {\n var _this = this;\n this.popupObj = new Popup(element, {\n width: this.setWidth(), targetType: 'relative',\n relateTo: this.inputWrapper.container, collision: { X: 'flip', Y: 'flip' }, offsetY: offsetValue,\n enableRtl: this.enableRtl, offsetX: left, position: { X: 'left', Y: 'bottom' },\n zIndex: this.zIndex,\n close: function () {\n if (!_this.isDocumentClick) {\n _this.focusDropDown();\n }\n // eslint-disable-next-line\n if (_this.isReact) {\n _this.clearTemplate(['headerTemplate', 'footerTemplate']);\n }\n _this.isNotSearchList = false;\n _this.isDocumentClick = false;\n _this.destroyPopup();\n if (_this.isFiltering() && _this.actionCompleteData.list && _this.actionCompleteData.list[0]) {\n _this.isActive = true;\n _this.onActionComplete(_this.actionCompleteData.ulElement, _this.actionCompleteData.list, null, true);\n }\n },\n open: function () {\n EventHandler.add(document, 'mousedown', _this.onDocumentClick, _this);\n _this.isPopupOpen = true;\n var actionList = _this.actionCompleteData && _this.actionCompleteData.ulElement &&\n _this.actionCompleteData.ulElement.querySelector('li');\n var ulElement = _this.list.querySelector('ul li');\n if (!isNullOrUndefined(_this.ulElement) && !isNullOrUndefined(_this.ulElement.getElementsByClassName('e-item-focus')[0])) {\n attributes(_this.targetElement(), { 'aria-activedescendant': _this.ulElement.getElementsByClassName('e-item-focus')[0].id });\n }\n else if (!isNullOrUndefined(_this.ulElement) && !isNullOrUndefined(_this.ulElement.getElementsByClassName('e-active')[0])) {\n attributes(_this.targetElement(), { 'aria-activedescendant': _this.ulElement.getElementsByClassName('e-active')[0].id });\n }\n if (_this.isFiltering() && _this.itemTemplate && (_this.element.tagName === _this.getNgDirective()) &&\n (actionList && ulElement && actionList.textContent !== ulElement.textContent) &&\n _this.element.tagName !== 'EJS-COMBOBOX') {\n _this.cloneElements();\n }\n if (_this.isFilterLayout()) {\n removeClass([_this.inputWrapper.container], [dropDownListClasses.inputFocus]);\n _this.isFilterFocus = true;\n _this.filterInput.focus();\n if (_this.inputWrapper.clearButton) {\n addClass([_this.inputWrapper.clearButton], dropDownListClasses.clearIconHide);\n }\n }\n _this.activeStateChange();\n },\n targetExitViewport: function () {\n if (!Browser.isDevice) {\n _this.hidePopup();\n }\n }\n });\n };\n DropDownList.prototype.isEmptyList = function () {\n return !isNullOrUndefined(this.liCollections) && this.liCollections.length === 0;\n };\n DropDownList.prototype.getFocusElement = function () {\n // combo-box used this method\n };\n DropDownList.prototype.isFilterLayout = function () {\n return this.getModuleName() === 'dropdownlist' && this.allowFiltering;\n };\n DropDownList.prototype.scrollHandler = function () {\n if (Browser.isDevice && ((this.getModuleName() === 'dropdownlist' &&\n !this.isFilterLayout()) || (this.getModuleName() === 'combobox' && !this.allowFiltering && this.isDropDownClick))) {\n this.hidePopup();\n }\n };\n DropDownList.prototype.setSearchBoxPosition = function () {\n var searchBoxHeight = this.filterInput.parentElement.getBoundingClientRect().height;\n this.popupObj.element.style.maxHeight = '100%';\n this.popupObj.element.style.width = '100%';\n this.list.style.maxHeight = (window.innerHeight - searchBoxHeight) + 'px';\n this.list.style.height = (window.innerHeight - searchBoxHeight) + 'px';\n var clearElement = this.filterInput.parentElement.querySelector('.' + dropDownListClasses.clearIcon);\n detach(this.filterInput);\n clearElement.parentElement.insertBefore(this.filterInput, clearElement);\n };\n DropDownList.prototype.setPopupPosition = function (border) {\n var offsetValue;\n var popupOffset = border;\n var selectedLI = this.list.querySelector('.' + dropDownListClasses.focus) || this.selectedLI;\n var firstItem = this.isEmptyList() ? this.list : this.liCollections[0];\n var lastItem = this.isEmptyList() ? this.list : this.liCollections[this.getItems().length - 1];\n var liHeight = firstItem.getBoundingClientRect().height;\n var listHeight = this.list.offsetHeight / 2;\n var height = isNullOrUndefined(selectedLI) ? firstItem.offsetTop : selectedLI.offsetTop;\n var lastItemOffsetValue = lastItem.offsetTop;\n if (lastItemOffsetValue - listHeight < height && !isNullOrUndefined(this.liCollections) &&\n this.liCollections.length > 0 && !isNullOrUndefined(selectedLI)) {\n var count = this.list.offsetHeight / liHeight;\n var paddingBottom = parseInt(getComputedStyle(this.list).paddingBottom, 10);\n offsetValue = (count - (this.liCollections.length - this.activeIndex)) * liHeight - popupOffset + paddingBottom;\n this.list.scrollTop = selectedLI.offsetTop;\n }\n else if (height > listHeight) {\n offsetValue = listHeight - liHeight / 2;\n this.list.scrollTop = height - listHeight + liHeight / 2;\n }\n else {\n offsetValue = height;\n }\n var inputHeight = this.inputWrapper.container.offsetHeight;\n offsetValue = offsetValue + liHeight + popupOffset - ((liHeight - inputHeight) / 2);\n return -offsetValue;\n };\n DropDownList.prototype.setWidth = function () {\n var width = formatUnit(this.popupWidth);\n if (width.indexOf('%') > -1) {\n var inputWidth = this.inputWrapper.container.offsetWidth * parseFloat(width) / 100;\n width = inputWidth.toString() + 'px';\n }\n if (Browser.isDevice && (!this.allowFiltering && (this.getModuleName() === 'dropdownlist' ||\n (this.isDropDownClick && this.getModuleName() === 'combobox')))) {\n var firstItem = this.isEmptyList() ? this.list : this.liCollections[0];\n width = (parseInt(width, 10) + (parseInt(getComputedStyle(firstItem).textIndent, 10) -\n parseInt(getComputedStyle(this.inputElement).paddingLeft, 10) +\n parseInt(getComputedStyle(this.inputElement.parentElement).borderLeftWidth, 10)) * 2) + 'px';\n }\n return width;\n };\n DropDownList.prototype.scrollBottom = function (isInitial) {\n if (!isNullOrUndefined(this.selectedLI)) {\n var currentOffset = this.list.offsetHeight;\n var nextBottom = this.selectedLI.offsetTop + this.selectedLI.offsetHeight - this.list.scrollTop;\n var nextOffset = this.list.scrollTop + nextBottom - currentOffset;\n nextOffset = isInitial ? nextOffset + parseInt(getComputedStyle(this.list).paddingTop, 10) * 2 : nextOffset;\n var boxRange = this.selectedLI.offsetTop + this.selectedLI.offsetHeight - this.list.scrollTop;\n boxRange = this.fields.groupBy && !isNullOrUndefined(this.fixedHeaderElement) ?\n boxRange - this.fixedHeaderElement.offsetHeight : boxRange;\n if (this.activeIndex === 0) {\n this.list.scrollTop = 0;\n }\n else if (nextBottom > currentOffset || !(boxRange > 0 && this.list.offsetHeight > boxRange)) {\n this.list.scrollTop = nextOffset;\n }\n }\n };\n DropDownList.prototype.scrollTop = function () {\n if (!isNullOrUndefined(this.selectedLI)) {\n var nextOffset = this.selectedLI.offsetTop - this.list.scrollTop;\n nextOffset = this.fields.groupBy && !isNullOrUndefined(this.fixedHeaderElement) ?\n nextOffset - this.fixedHeaderElement.offsetHeight : nextOffset;\n var boxRange = (this.selectedLI.offsetTop + this.selectedLI.offsetHeight - this.list.scrollTop);\n if (this.activeIndex === 0) {\n this.list.scrollTop = 0;\n }\n else if (nextOffset < 0) {\n this.list.scrollTop = this.list.scrollTop + nextOffset;\n }\n else if (!(boxRange > 0 && this.list.offsetHeight > boxRange)) {\n this.list.scrollTop = this.selectedLI.offsetTop - (this.fields.groupBy && !isNullOrUndefined(this.fixedHeaderElement) ?\n this.fixedHeaderElement.offsetHeight : 0);\n }\n }\n };\n DropDownList.prototype.isEditTextBox = function () {\n return false;\n };\n DropDownList.prototype.isFiltering = function () {\n return this.allowFiltering;\n };\n DropDownList.prototype.isPopupButton = function () {\n return true;\n };\n DropDownList.prototype.setScrollPosition = function (e) {\n if (!isNullOrUndefined(e)) {\n switch (e.action) {\n case 'pageDown':\n case 'down':\n case 'end':\n this.scrollBottom();\n break;\n default:\n this.scrollTop();\n break;\n }\n }\n else {\n this.scrollBottom(true);\n }\n };\n DropDownList.prototype.clearText = function () {\n this.filterInput.value = this.typedString = '';\n this.searchLists(null);\n };\n DropDownList.prototype.setEleWidth = function (width) {\n if (!isNullOrUndefined(width)) {\n if (typeof width === 'number') {\n this.inputWrapper.container.style.width = formatUnit(width);\n }\n else if (typeof width === 'string') {\n this.inputWrapper.container.style.width = (width.match(/px|%|em/)) ? (width) : (formatUnit(width));\n }\n }\n };\n DropDownList.prototype.closePopup = function (delay, e) {\n var _this = this;\n this.isTyped = false;\n if (!(this.popupObj && document.body.contains(this.popupObj.element) && this.beforePopupOpen)) {\n return;\n }\n EventHandler.remove(document, 'mousedown', this.onDocumentClick);\n this.isActive = false;\n this.filterInputObj = null;\n this.isDropDownClick = false;\n this.preventAutoFill = false;\n var scrollableParentElements = this.popupObj.getScrollableParent(this.inputWrapper.container);\n for (var _i = 0, scrollableParentElements_1 = scrollableParentElements; _i < scrollableParentElements_1.length; _i++) {\n var element = scrollableParentElements_1[_i];\n EventHandler.remove(element, 'scroll', this.scrollHandler);\n }\n if (Browser.isDevice && this.isFilterLayout()) {\n removeClass([document.body, this.popupObj.element], dropDownListClasses.popupFullScreen);\n }\n if (this.isFilterLayout()) {\n if (!Browser.isDevice) {\n this.searchKeyModule.destroy();\n if (this.clearIconElement) {\n EventHandler.remove(this.clearIconElement, 'click', this.clearText);\n }\n }\n if (this.backIconElement) {\n EventHandler.remove(this.backIconElement, 'click', this.clickOnBackIcon);\n EventHandler.remove(this.clearIconElement, 'click', this.clearText);\n }\n if (!isNullOrUndefined(this.filterInput)) {\n EventHandler.remove(this.filterInput, 'input', this.onInput);\n EventHandler.remove(this.filterInput, 'keyup', this.onFilterUp);\n EventHandler.remove(this.filterInput, 'keydown', this.onFilterDown);\n EventHandler.remove(this.filterInput, 'blur', this.onBlurHandler);\n EventHandler.remove(this.filterInput, 'paste', this.pasteHandler);\n }\n this.filterInput = null;\n }\n attributes(this.targetElement(), { 'aria-expanded': 'false' });\n this.inputElement.setAttribute('aria-expanded', 'false');\n this.targetElement().removeAttribute('aria-owns');\n this.targetElement().removeAttribute('aria-activedescendant');\n this.inputWrapper.container.classList.remove(dropDownListClasses.iconAnimation);\n if (this.isFiltering()) {\n this.actionCompleteData.isUpdated = false;\n }\n this.beforePopupOpen = false;\n var animModel = {\n name: 'FadeOut',\n duration: 100,\n delay: delay ? delay : 0\n };\n var popupInstance = this.popupObj;\n var eventArgs = { popup: popupInstance, cancel: false, animation: animModel, event: e || null };\n this.trigger('close', eventArgs, function (eventArgs) {\n if (!isNullOrUndefined(_this.popupObj) &&\n !isNullOrUndefined(_this.popupObj.element.querySelector('.e-fixed-head'))) {\n var fixedHeader = _this.popupObj.element.querySelector('.e-fixed-head');\n fixedHeader.parentNode.removeChild(fixedHeader);\n _this.fixedHeaderElement = null;\n }\n if (!eventArgs.cancel) {\n if (_this.getModuleName() === 'autocomplete') {\n _this.rippleFun();\n }\n if (_this.isPopupOpen) {\n _this.popupObj.hide(new Animation(eventArgs.animation));\n }\n else {\n _this.destroyPopup();\n }\n }\n });\n };\n DropDownList.prototype.destroyPopup = function () {\n this.isPopupOpen = false;\n this.isFilterFocus = false;\n if (this.popupObj) {\n this.popupObj.destroy();\n detach(this.popupObj.element);\n }\n };\n DropDownList.prototype.clickOnBackIcon = function () {\n this.hidePopup();\n this.focusIn();\n };\n /**\n * To Initialize the control rendering\n *\n * @private\n * @returns {void}\n */\n DropDownList.prototype.render = function () {\n if (this.element.tagName === 'INPUT') {\n this.inputElement = this.element;\n if (isNullOrUndefined(this.inputElement.getAttribute('role'))) {\n this.inputElement.setAttribute('role', 'combobox');\n }\n if (isNullOrUndefined(this.inputElement.getAttribute('type'))) {\n this.inputElement.setAttribute('type', 'text');\n }\n this.inputElement.setAttribute('aria-expanded', 'false');\n }\n else {\n this.inputElement = this.createElement('input', { attrs: { role: 'combobox', type: 'text' } });\n if (this.element.tagName !== this.getNgDirective()) {\n this.element.style.display = 'none';\n }\n this.element.parentElement.insertBefore(this.inputElement, this.element);\n this.preventTabIndex(this.inputElement);\n }\n var updatedCssClassValues = this.cssClass;\n if (!isNullOrUndefined(this.cssClass) && this.cssClass !== '') {\n updatedCssClassValues = (this.cssClass.replace(/\\s+/g, ' ')).trim();\n }\n if (!isNullOrUndefined(closest(this.element, 'fieldset')) && closest(this.element, 'fieldset').disabled) {\n this.enabled = false;\n }\n this.inputWrapper = Input.createInput({\n element: this.inputElement,\n buttons: this.isPopupButton() ? [dropDownListClasses.icon] : null,\n floatLabelType: this.floatLabelType,\n properties: {\n readonly: this.getModuleName() === 'dropdownlist' ? true : this.readonly,\n placeholder: this.placeholder,\n cssClass: updatedCssClassValues,\n enabled: this.enabled,\n enableRtl: this.enableRtl,\n showClearButton: this.showClearButton\n }\n }, this.createElement);\n if (this.element.tagName === this.getNgDirective()) {\n this.element.appendChild(this.inputWrapper.container);\n }\n else {\n this.inputElement.parentElement.insertBefore(this.element, this.inputElement);\n }\n this.hiddenElement = this.createElement('select', {\n attrs: { 'aria-hidden': 'true', 'tabindex': '-1', 'class': dropDownListClasses.hiddenElement }\n });\n prepend([this.hiddenElement], this.inputWrapper.container);\n this.validationAttribute(this.element, this.hiddenElement);\n this.setReadOnly();\n this.setFields();\n this.inputWrapper.container.style.width = formatUnit(this.width);\n this.inputWrapper.container.classList.add('e-ddl');\n Input.calculateWidth(this.inputElement, this.inputWrapper.container);\n if (!isNullOrUndefined(this.inputWrapper.buttons[0]) && this.inputWrapper.container.getElementsByClassName('e-float-text-content')[0] && this.floatLabelType !== 'Never') {\n this.inputWrapper.container.getElementsByClassName('e-float-text-content')[0].classList.add('e-icon');\n }\n this.wireEvent();\n this.tabIndex = this.element.hasAttribute('tabindex') ? this.element.getAttribute('tabindex') : '0';\n this.element.removeAttribute('tabindex');\n var id = this.element.getAttribute('id') ? this.element.getAttribute('id') : getUniqueID('ej2_dropdownlist');\n this.element.id = id;\n this.hiddenElement.id = id + '_hidden';\n this.targetElement().setAttribute('tabindex', this.tabIndex);\n if (this.getModuleName() === 'autocomplete' || this.getModuleName() === 'combobox') {\n this.inputElement.setAttribute('aria-label', this.getModuleName());\n }\n else {\n attributes(this.targetElement(), { 'aria-label': this.getModuleName() });\n }\n attributes(this.targetElement(), this.getAriaAttributes());\n this.updateDataAttribute(this.htmlAttributes);\n this.setHTMLAttributes();\n if (this.targetElement() === this.inputElement) {\n this.inputElement.removeAttribute('aria-labelledby');\n }\n if (this.value !== null || this.activeIndex !== null || this.text !== null) {\n this.initValue();\n }\n else if (this.element.tagName === 'SELECT' && this.element.options[0]) {\n var selectElement = this.element;\n this.value = selectElement.options[selectElement.selectedIndex].value;\n this.text = isNullOrUndefined(this.value) ? null : selectElement.options[selectElement.selectedIndex].textContent;\n this.initValue();\n }\n this.setEnabled();\n this.preventTabIndex(this.element);\n if (!this.enabled) {\n this.targetElement().tabIndex = -1;\n }\n this.initial = false;\n this.element.style.opacity = '';\n this.inputElement.onselect = function (e) {\n e.stopImmediatePropagation();\n };\n this.inputElement.onchange = function (e) {\n e.stopImmediatePropagation();\n };\n if (this.element.hasAttribute('autofocus')) {\n this.focusIn();\n }\n if (!isNullOrUndefined(this.text)) {\n this.inputElement.setAttribute('value', this.text);\n }\n if (this.element.hasAttribute('data-val')) {\n this.element.setAttribute('data-val', 'false');\n }\n var floatLabelElement = this.inputWrapper.container.getElementsByClassName('e-float-text')[0];\n if (!isNullOrUndefined(this.element.id) && this.element.id !== '' && !isNullOrUndefined(floatLabelElement)) {\n floatLabelElement.id = 'label_' + this.element.id.replace(/ /g, '_');\n attributes(this.inputElement, { 'aria-labelledby': floatLabelElement.id });\n }\n this.renderComplete();\n };\n DropDownList.prototype.setFooterTemplate = function (popupEle) {\n var compiledString;\n if (this.footer) {\n if (this.isReact) {\n this.clearTemplate(['footerTemplate']);\n }\n else {\n this.footer.innerHTML = '';\n }\n }\n else {\n this.footer = this.createElement('div');\n addClass([this.footer], dropDownListClasses.footer);\n }\n var footercheck = this.dropdownCompiler(this.footerTemplate);\n if (footercheck) {\n compiledString = compile(select(this.footerTemplate, document).innerHTML.trim());\n }\n else {\n compiledString = compile(this.footerTemplate);\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var footerCompTemp = compiledString({}, this, 'footerTemplate', this.footerTemplateId, this.isStringTemplate, null, this.footer);\n if (footerCompTemp && footerCompTemp.length > 0) {\n append(footerCompTemp, this.footer);\n }\n append([this.footer], popupEle);\n };\n DropDownList.prototype.setHeaderTemplate = function (popupEle) {\n var compiledString;\n if (this.header) {\n this.header.innerHTML = '';\n }\n else {\n this.header = this.createElement('div');\n addClass([this.header], dropDownListClasses.header);\n }\n var headercheck = this.dropdownCompiler(this.headerTemplate);\n if (headercheck) {\n compiledString = compile(select(this.headerTemplate, document).innerHTML.trim());\n }\n else {\n compiledString = compile(this.headerTemplate);\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var headerCompTemp = compiledString({}, this, 'headerTemplate', this.headerTemplateId, this.isStringTemplate, null, this.header);\n if (headerCompTemp && headerCompTemp.length) {\n append(headerCompTemp, this.header);\n }\n var contentEle = popupEle.querySelector('div.e-content');\n popupEle.insertBefore(this.header, contentEle);\n };\n /**\n * Sets the enabled state to DropDownBase.\n *\n * @returns {void}\n */\n DropDownList.prototype.setEnabled = function () {\n this.element.setAttribute('aria-disabled', (this.enabled) ? 'false' : 'true');\n };\n DropDownList.prototype.setOldText = function (text) {\n this.text = text;\n };\n DropDownList.prototype.setOldValue = function (value) {\n this.value = value;\n };\n DropDownList.prototype.refreshPopup = function () {\n if (!isNullOrUndefined(this.popupObj) && document.body.contains(this.popupObj.element) &&\n ((this.allowFiltering && !(Browser.isDevice && this.isFilterLayout())) || this.getModuleName() === 'autocomplete')) {\n removeClass([this.popupObj.element], 'e-popup-close');\n this.popupObj.refreshPosition(this.inputWrapper.container);\n this.popupObj.resolveCollision();\n }\n };\n DropDownList.prototype.checkData = function (newProp) {\n if (newProp.dataSource && !isNullOrUndefined(Object.keys(newProp.dataSource)) && this.itemTemplate && this.allowFiltering &&\n !(this.isListSearched && (newProp.dataSource instanceof DataManager))) {\n this.list = null;\n this.actionCompleteData = { ulElement: null, list: null, isUpdated: false };\n }\n this.isListSearched = false;\n var isChangeValue = Object.keys(newProp).indexOf('value') !== -1 && isNullOrUndefined(newProp.value);\n var isChangeText = Object.keys(newProp).indexOf('text') !== -1 && isNullOrUndefined(newProp.text);\n if (this.getModuleName() !== 'autocomplete' && this.allowFiltering && (isChangeValue || isChangeText)) {\n this.itemData = null;\n }\n if (this.allowFiltering && newProp.dataSource && !isNullOrUndefined(Object.keys(newProp.dataSource))) {\n this.actionCompleteData = { ulElement: null, list: null, isUpdated: false };\n this.actionData = this.actionCompleteData;\n }\n else if (this.allowFiltering && newProp.query && !isNullOrUndefined(Object.keys(newProp.query))) {\n this.actionCompleteData = this.getModuleName() === 'combobox' ?\n { ulElement: null, list: null, isUpdated: false } : this.actionCompleteData;\n this.actionData = this.actionCompleteData;\n }\n };\n DropDownList.prototype.updateDataSource = function (props) {\n if (this.inputElement.value !== '' || (!isNullOrUndefined(props) && (isNullOrUndefined(props.dataSource)\n || (!(props.dataSource instanceof DataManager) && props.dataSource.length === 0)))) {\n this.clearAll(null, props);\n }\n if ((this.fields.groupBy && props.fields) && !this.isGroupChecking && this.list) {\n EventHandler.remove(this.list, 'scroll', this.setFloatingHeader);\n EventHandler.add(this.list, 'scroll', this.setFloatingHeader, this);\n }\n if (!(!isNullOrUndefined(props) && (isNullOrUndefined(props.dataSource)\n || (!(props.dataSource instanceof DataManager) && props.dataSource.length === 0))) || !(props.dataSource === [])) {\n this.typedString = '';\n this.resetList(this.dataSource);\n }\n if (!this.isCustomFilter && !this.isFilterFocus && document.activeElement !== this.filterInput) {\n this.checkCustomValue();\n }\n };\n DropDownList.prototype.checkCustomValue = function () {\n this.itemData = this.getDataByValue(this.value);\n var dataItem = this.getItemData();\n this.setProperties({ 'text': dataItem.text, 'value': dataItem.value });\n };\n DropDownList.prototype.updateInputFields = function () {\n if (this.getModuleName() === 'dropdownlist') {\n Input.setValue(this.text, this.inputElement, this.floatLabelType, this.showClearButton);\n }\n };\n /**\n * Dynamically change the value of properties.\n *\n * @private\n * @param {DropDownListModel} newProp - Returns the dynamic property value of the component.\n * @param {DropDownListModel} oldProp - Returns the previous previous value of the component.\n * @returns {void}\n */\n DropDownList.prototype.onPropertyChanged = function (newProp, oldProp) {\n var _this = this;\n if (this.getModuleName() === 'dropdownlist') {\n this.checkData(newProp);\n this.setUpdateInitial(['fields', 'query', 'dataSource'], newProp);\n }\n var _loop_1 = function (prop) {\n switch (prop) {\n case 'query':\n case 'dataSource': break;\n case 'htmlAttributes':\n this_1.setHTMLAttributes();\n break;\n case 'width':\n this_1.setEleWidth(newProp.width);\n Input.calculateWidth(this_1.inputElement, this_1.inputWrapper.container);\n break;\n case 'placeholder':\n Input.setPlaceholder(newProp.placeholder, this_1.inputElement);\n break;\n case 'filterBarPlaceholder':\n if (this_1.filterInput) {\n Input.setPlaceholder(newProp.filterBarPlaceholder, this_1.filterInput);\n }\n break;\n case 'readonly':\n if (this_1.getModuleName() !== 'dropdownlist') {\n Input.setReadonly(newProp.readonly, this_1.inputElement);\n }\n this_1.setReadOnly();\n break;\n case 'cssClass':\n this_1.setCssClass(newProp.cssClass, oldProp.cssClass);\n Input.calculateWidth(this_1.inputElement, this_1.inputWrapper.container);\n break;\n case 'enableRtl':\n this_1.setEnableRtl();\n break;\n case 'enabled':\n this_1.setEnable();\n break;\n case 'text':\n if (newProp.text === null) {\n this_1.clearAll();\n break;\n }\n if (!this_1.list) {\n if (this_1.dataSource instanceof DataManager) {\n this_1.initRemoteRender = true;\n }\n this_1.renderList();\n }\n if (!this_1.initRemoteRender) {\n var li = this_1.getElementByText(newProp.text);\n if (!this_1.checkValidLi(li)) {\n if (this_1.liCollections && this_1.liCollections.length === 100 &&\n this_1.getModuleName() === 'autocomplete' && this_1.listData.length > 100) {\n this_1.setSelectionData(newProp.text, oldProp.text, 'text');\n }\n else if (newProp.text && this_1.dataSource instanceof DataManager) {\n var listLength_1 = this_1.getItems().length;\n var checkField = isNullOrUndefined(this_1.fields.text) ? this_1.fields.value : this_1.fields.text;\n this_1.typedString = '';\n this_1.dataSource.executeQuery(this_1.getQuery(this_1.query).where(new Predicate(checkField, 'equal', newProp.text)))\n .then(function (e) {\n if (e.result.length > 0) {\n _this.addItem(e.result, listLength_1);\n _this.updateValues();\n }\n else {\n _this.setOldText(oldProp.text);\n }\n });\n }\n else if (this_1.getModuleName() === 'autocomplete') {\n this_1.setInputValue(newProp, oldProp);\n }\n else {\n this_1.setOldText(oldProp.text);\n }\n }\n this_1.updateInputFields();\n }\n break;\n case 'value':\n if (newProp.value === null) {\n this_1.clearAll();\n break;\n }\n this_1.notify('beforeValueChange', { newProp: newProp }); // gird component value type change\n if (!this_1.list) {\n if (this_1.dataSource instanceof DataManager) {\n this_1.initRemoteRender = true;\n }\n this_1.renderList();\n }\n if (!this_1.initRemoteRender) {\n var item = this_1.getElementByValue(newProp.value);\n if (!this_1.checkValidLi(item)) {\n if (this_1.liCollections && this_1.liCollections.length === 100 &&\n this_1.getModuleName() === 'autocomplete' && this_1.listData.length > 100) {\n this_1.setSelectionData(newProp.value, oldProp.value, 'value');\n }\n else if (newProp.value && this_1.dataSource instanceof DataManager) {\n var listLength_2 = this_1.getItems().length;\n var checkField = isNullOrUndefined(this_1.fields.value) ? this_1.fields.text : this_1.fields.value;\n this_1.typedString = '';\n this_1.dataSource.executeQuery(this_1.getQuery(this_1.query).where(new Predicate(checkField, 'equal', newProp.value)))\n .then(function (e) {\n if (e.result.length > 0) {\n _this.addItem(e.result, listLength_2);\n _this.updateValues();\n }\n else {\n _this.setOldValue(oldProp.value);\n }\n });\n }\n else if (this_1.getModuleName() === 'autocomplete') {\n this_1.setInputValue(newProp, oldProp);\n }\n else {\n this_1.setOldValue(oldProp.value);\n }\n }\n this_1.updateInputFields();\n this_1.preventChange = this_1.isAngular && this_1.preventChange ? !this_1.preventChange : this_1.preventChange;\n }\n break;\n case 'index':\n if (newProp.index === null) {\n this_1.clearAll();\n break;\n }\n if (!this_1.list) {\n if (this_1.dataSource instanceof DataManager) {\n this_1.initRemoteRender = true;\n }\n this_1.renderList();\n }\n if (!this_1.initRemoteRender && this_1.liCollections) {\n var element = this_1.liCollections[newProp.index];\n if (!this_1.checkValidLi(element)) {\n if (this_1.liCollections && this_1.liCollections.length === 100 &&\n this_1.getModuleName() === 'autocomplete' && this_1.listData.length > 100) {\n this_1.setSelectionData(newProp.index, oldProp.index, 'index');\n }\n else {\n this_1.index = oldProp.index;\n }\n }\n this_1.updateInputFields();\n }\n break;\n case 'footerTemplate':\n if (this_1.popupObj) {\n this_1.setFooterTemplate(this_1.popupObj.element);\n }\n break;\n case 'headerTemplate':\n if (this_1.popupObj) {\n this_1.setHeaderTemplate(this_1.popupObj.element);\n }\n break;\n case 'valueTemplate':\n if (!isNullOrUndefined(this_1.itemData) && this_1.valueTemplate !== null) {\n this_1.setValueTemplate();\n }\n break;\n case 'allowFiltering':\n if (this_1.allowFiltering) {\n this_1.actionCompleteData = {\n ulElement: this_1.ulElement,\n list: this_1.listData, isUpdated: true\n };\n this_1.actionData = this_1.actionCompleteData;\n this_1.updateSelectElementData(this_1.allowFiltering);\n }\n break;\n case 'floatLabelType':\n Input.removeFloating(this_1.inputWrapper);\n Input.addFloating(this_1.inputElement, newProp.floatLabelType, this_1.placeholder, this_1.createElement);\n if (!isNullOrUndefined(this_1.inputWrapper.buttons[0]) && this_1.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0] && this_1.floatLabelType !== 'Never') {\n this_1.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0].classList.add('e-icon');\n }\n break;\n case 'showClearButton':\n Input.setClearButton(newProp.showClearButton, this_1.inputElement, this_1.inputWrapper, null, this_1.createElement);\n this_1.bindClearEvent();\n break;\n default:\n {\n // eslint-disable-next-line max-len\n var ddlProps = this_1.getPropObject(prop, newProp, oldProp);\n _super.prototype.onPropertyChanged.call(this_1, ddlProps.newProperty, ddlProps.oldProperty);\n }\n break;\n }\n };\n var this_1 = this;\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n _loop_1(prop);\n }\n };\n DropDownList.prototype.checkValidLi = function (element) {\n if (this.isValidLI(element)) {\n this.setSelection(element, null);\n return true;\n }\n return false;\n };\n DropDownList.prototype.setSelectionData = function (newProp, oldProp, prop) {\n var _this = this;\n var li;\n this.updateListValues = function () {\n if (prop === 'text') {\n li = _this.getElementByText(newProp);\n if (!_this.checkValidLi(li)) {\n _this.setOldText(oldProp);\n }\n }\n else if (prop === 'value') {\n li = _this.getElementByValue(newProp);\n if (!_this.checkValidLi(li)) {\n _this.setOldValue(oldProp);\n }\n }\n else if (prop === 'index') {\n li = _this.liCollections[newProp];\n if (!_this.checkValidLi(li)) {\n _this.index = oldProp;\n }\n }\n };\n };\n DropDownList.prototype.setReadOnly = function () {\n if (this.readonly) {\n addClass([this.inputWrapper.container], ['e-readonly']);\n }\n else {\n removeClass([this.inputWrapper.container], ['e-readonly']);\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n DropDownList.prototype.setInputValue = function (newProp, oldProp) {\n };\n DropDownList.prototype.setCssClass = function (newClass, oldClass) {\n if (!isNullOrUndefined(oldClass)) {\n oldClass = (oldClass.replace(/\\s+/g, ' ')).trim();\n }\n if (!isNullOrUndefined(newClass)) {\n newClass = (newClass.replace(/\\s+/g, ' ')).trim();\n }\n Input.setCssClass(newClass, [this.inputWrapper.container], oldClass);\n if (this.popupObj) {\n Input.setCssClass(newClass, [this.popupObj.element], oldClass);\n }\n };\n /**\n * Return the module name of this component.\n *\n * @private\n * @returns {string} Return the module name of this component.\n */\n DropDownList.prototype.getModuleName = function () {\n return 'dropdownlist';\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-param */\n /**\n * Opens the popup that displays the list of items.\n *\n * @returns {void}\n */\n DropDownList.prototype.showPopup = function (e) {\n /* eslint-enable valid-jsdoc, jsdoc/require-param */\n if (!this.enabled) {\n return;\n }\n if (this.isFiltering() && this.dataSource instanceof DataManager && (this.actionData.list !== this.actionCompleteData.list) &&\n this.actionData.list && this.actionData.ulElement) {\n this.actionCompleteData = this.actionData;\n this.onActionComplete(this.actionCompleteData.ulElement, this.actionCompleteData.list, null, true);\n }\n if (this.beforePopupOpen) {\n this.refreshPopup();\n return;\n }\n this.beforePopupOpen = true;\n if (this.isFiltering() && !this.isActive && this.actionCompleteData.list && this.actionCompleteData.list[0]) {\n this.isActive = true;\n this.onActionComplete(this.actionCompleteData.ulElement, this.actionCompleteData.list, null, true);\n }\n else if (isNullOrUndefined(this.list) || !isUndefined(this.list) && (this.list.classList.contains(dropDownBaseClasses.noData) ||\n this.list.querySelectorAll('.' + dropDownBaseClasses.li).length <= 0)) {\n this.renderList(e);\n }\n this.invokeRenderPopup(e);\n };\n DropDownList.prototype.invokeRenderPopup = function (e) {\n if (Browser.isDevice && this.isFilterLayout()) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var proxy_2 = this;\n window.onpopstate = function () {\n proxy_2.hidePopup();\n };\n history.pushState({}, '');\n }\n if (!isNullOrUndefined(this.list) && (!isNullOrUndefined(this.list.children[0]) ||\n this.list.classList.contains(dropDownBaseClasses.noData))) {\n this.renderPopup(e);\n }\n };\n DropDownList.prototype.renderHightSearch = function () {\n // update high light search\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-param */\n /**\n * Hides the popup if it is in an open state.\n *\n * @returns {void}\n */\n DropDownList.prototype.hidePopup = function (e) {\n /* eslint-enable valid-jsdoc, jsdoc/require-param */\n if (this.isEscapeKey && this.getModuleName() === 'dropdownlist') {\n if (!isNullOrUndefined(this.inputElement)) {\n Input.setValue(this.text, this.inputElement, this.floatLabelType, this.showClearButton);\n }\n this.isEscapeKey = false;\n if (!isNullOrUndefined(this.index)) {\n var element = this.findListElement(this.ulElement, 'li', 'data-value', this.value);\n this.selectedLI = this.liCollections[this.index] || element;\n if (this.selectedLI) {\n this.updateSelectedItem(this.selectedLI, null, true);\n if (this.valueTemplate && this.itemData !== null) {\n this.setValueTemplate();\n }\n }\n }\n else {\n this.resetSelection();\n }\n }\n this.closePopup(0, e);\n var dataItem = this.getItemData();\n var isSelectVal = !isNullOrUndefined(this.selectedLI);\n if (this.inputElement && this.inputElement.value.trim() === '' && !this.isInteracted && (this.isSelectCustom ||\n isSelectVal && this.inputElement.value !== dataItem.text)) {\n this.isSelectCustom = false;\n this.clearAll(e);\n }\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-param */\n /**\n * Sets the focus on the component for interaction.\n *\n * @returns {void}\n */\n DropDownList.prototype.focusIn = function (e) {\n if (!this.enabled) {\n return;\n }\n if (this.targetElement().classList.contains(dropDownListClasses.disable)) {\n return;\n }\n var isFocused = false;\n if (this.preventFocus && Browser.isDevice) {\n this.inputWrapper.container.tabIndex = 1;\n this.inputWrapper.container.focus();\n this.preventFocus = false;\n isFocused = true;\n }\n if (!isFocused) {\n this.targetElement().focus();\n }\n addClass([this.inputWrapper.container], [dropDownListClasses.inputFocus]);\n this.onFocus(e);\n Input.calculateWidth(this.inputElement, this.inputWrapper.container);\n };\n /**\n * Moves the focus from the component if the component is already focused.\n *\n * @returns {void}\n */\n DropDownList.prototype.focusOut = function (e) {\n /* eslint-enable valid-jsdoc, jsdoc/require-param */\n if (!this.enabled) {\n return;\n }\n this.isTyped = true;\n this.hidePopup(e);\n if (this.targetElement()) {\n this.targetElement().blur();\n }\n removeClass([this.inputWrapper.container], [dropDownListClasses.inputFocus]);\n Input.calculateWidth(this.inputElement, this.inputWrapper.container);\n };\n /**\n * Removes the component from the DOM and detaches all its related event handlers. Also it removes the attributes and classes.\n *\n * @method destroy\n * @returns {void}\n */\n DropDownList.prototype.destroy = function () {\n this.isActive = false;\n resetIncrementalSearchValues(this.element.id);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact) {\n this.clearTemplate();\n }\n this.hidePopup();\n this.unWireEvent();\n if (this.list) {\n this.unWireListEvents();\n }\n if (this.element && !this.element.classList.contains('e-' + this.getModuleName())) {\n return;\n }\n if (this.inputElement) {\n var attrArray = ['readonly', 'aria-disabled', 'placeholder', 'aria-labelledby',\n 'aria-expanded', 'autocomplete', 'aria-readonly', 'autocapitalize',\n 'spellcheck', 'aria-autocomplete', 'aria-live', 'aria-describedby', 'aria-label'];\n for (var i = 0; i < attrArray.length; i++) {\n this.inputElement.removeAttribute(attrArray[i]);\n }\n this.inputElement.setAttribute('tabindex', this.tabIndex);\n this.inputElement.classList.remove('e-input');\n Input.setValue('', this.inputElement, this.floatLabelType, this.showClearButton);\n }\n this.element.style.display = 'block';\n if (this.inputWrapper.container.parentElement.tagName === this.getNgDirective()) {\n detach(this.inputWrapper.container);\n }\n else {\n this.inputWrapper.container.parentElement.insertBefore(this.element, this.inputWrapper.container);\n detach(this.inputWrapper.container);\n }\n this.hiddenElement = null;\n this.inputWrapper = null;\n this.keyboardModule = null;\n this.ulElement = null;\n this.list = null;\n this.popupObj = null;\n this.rippleFun = null;\n this.selectedLI = null;\n this.liCollections = null;\n this.item = null;\n this.inputWrapper = null;\n this.footer = null;\n this.header = null;\n this.previousSelectedLI = null;\n this.valueTempElement = null;\n this.actionData.ulElement = null;\n _super.prototype.destroy.call(this);\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Gets all the list items bound on this component.\n *\n * @returns {Element[]}\n */\n DropDownList.prototype.getItems = function () {\n if (!this.list) {\n if (this.dataSource instanceof DataManager) {\n this.initRemoteRender = true;\n }\n this.renderList();\n }\n return this.ulElement ? _super.prototype.getItems.call(this) : [];\n };\n /**\n * Gets the data Object that matches the given value.\n *\n * @param { string | number } value - Specifies the value of the list item.\n * @returns {Object}\n */\n DropDownList.prototype.getDataByValue = function (value) {\n return _super.prototype.getDataByValue.call(this, value);\n };\n /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Allows you to clear the selected values from the component.\n *\n * @returns {void}\n */\n DropDownList.prototype.clear = function () {\n this.value = null;\n };\n __decorate([\n Property(null)\n ], DropDownList.prototype, \"cssClass\", void 0);\n __decorate([\n Property('100%')\n ], DropDownList.prototype, \"width\", void 0);\n __decorate([\n Property(true)\n ], DropDownList.prototype, \"enabled\", void 0);\n __decorate([\n Property(false)\n ], DropDownList.prototype, \"enablePersistence\", void 0);\n __decorate([\n Property('300px')\n ], DropDownList.prototype, \"popupHeight\", void 0);\n __decorate([\n Property('100%')\n ], DropDownList.prototype, \"popupWidth\", void 0);\n __decorate([\n Property(null)\n ], DropDownList.prototype, \"placeholder\", void 0);\n __decorate([\n Property(null)\n ], DropDownList.prototype, \"filterBarPlaceholder\", void 0);\n __decorate([\n Property({})\n ], DropDownList.prototype, \"htmlAttributes\", void 0);\n __decorate([\n Property(null)\n ], DropDownList.prototype, \"query\", void 0);\n __decorate([\n Property(null)\n ], DropDownList.prototype, \"valueTemplate\", void 0);\n __decorate([\n Property(null)\n ], DropDownList.prototype, \"headerTemplate\", void 0);\n __decorate([\n Property(null)\n ], DropDownList.prototype, \"footerTemplate\", void 0);\n __decorate([\n Property(false)\n ], DropDownList.prototype, \"allowFiltering\", void 0);\n __decorate([\n Property(false)\n ], DropDownList.prototype, \"readonly\", void 0);\n __decorate([\n Property(null)\n ], DropDownList.prototype, \"text\", void 0);\n __decorate([\n Property(null)\n ], DropDownList.prototype, \"value\", void 0);\n __decorate([\n Property(null)\n ], DropDownList.prototype, \"index\", void 0);\n __decorate([\n Property('Never')\n ], DropDownList.prototype, \"floatLabelType\", void 0);\n __decorate([\n Property(false)\n ], DropDownList.prototype, \"showClearButton\", void 0);\n __decorate([\n Event()\n ], DropDownList.prototype, \"filtering\", void 0);\n __decorate([\n Event()\n ], DropDownList.prototype, \"change\", void 0);\n __decorate([\n Event()\n ], DropDownList.prototype, \"beforeOpen\", void 0);\n __decorate([\n Event()\n ], DropDownList.prototype, \"open\", void 0);\n __decorate([\n Event()\n ], DropDownList.prototype, \"close\", void 0);\n __decorate([\n Event()\n ], DropDownList.prototype, \"blur\", void 0);\n __decorate([\n Event()\n ], DropDownList.prototype, \"focus\", void 0);\n DropDownList = __decorate([\n NotifyPropertyChanges\n ], DropDownList);\n return DropDownList;\n}(DropDownBase));\nexport { DropDownList };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { DropDownList } from '@syncfusion/ej2-dropdowns';\nimport { ComponentBase, applyMixins } from '@syncfusion/ej2-react-base';\n/**\n * The DropDownList component contains a list of predefined values, from which the user can choose a single value.\n * ```\n * \n * ```\n */\nvar DropDownListComponent = /** @class */ (function (_super) {\n __extends(DropDownListComponent, _super);\n function DropDownListComponent(props) {\n var _this = _super.call(this, props) || this;\n _this.initRenderCalled = false;\n _this.checkInjectedModules = false;\n _this.statelessTemplateProps = [\"headerTemplate\", \"valueTemplate\", \"itemTemplate\"];\n _this.templateProps = null;\n _this.immediateRender = false;\n _this.portals = [];\n return _this;\n }\n DropDownListComponent.prototype.render = function () {\n if (((this.element && !this.initRenderCalled) || this.refreshing) && !this.isReactForeceUpdate) {\n _super.prototype.render.call(this);\n this.initRenderCalled = true;\n }\n else {\n return React.createElement(React.Fragment, null, [].concat(React.createElement(\"input\", this.getDefaultAttributes()), this.portals));\n }\n };\n return DropDownListComponent;\n}(DropDownList));\nexport { DropDownListComponent };\napplyMixins(DropDownListComponent, [ComponentBase, React.Component]);\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { useEffect, useRef, useState } from \"react\";\nimport { Query } from \"@syncfusion/ej2-data\";\nimport { omit } from \"lodash\";\nexport var useEnumSingleSelectFieldV2 = function (props) {\n var _a = useState(), settings = _a[0], setSettings = _a[1];\n var _b = useState(props.value), localValue = _b[0], setLocalValue = _b[1];\n var _c = useState(false), ready = _c[0], setReady = _c[1];\n var singleSelectRef = useRef(null);\n useEffect(function () {\n if (!ready) {\n return;\n }\n setLocalValue(props.value);\n }, [props.value]);\n useEffect(function () {\n var _a;\n if (!singleSelectRef.current) {\n return;\n }\n if (props.value !== localValue) {\n if (localValue === undefined) {\n singleSelectRef.current.clear();\n }\n else {\n singleSelectRef.current.value = localValue;\n }\n (_a = props.onSubmit) === null || _a === void 0 ? void 0 : _a.call(props, localValue);\n }\n }, [localValue]);\n useEffect(function () {\n setup();\n }, [props.disabled, props.optionValues, props.reorderOptions]);\n var filteringHandler = function (e) {\n var query = new Query();\n // Frame the query based on search string with filter type.\n query =\n e.text !== \"\" ? query.where(\"label\", \"startswith\", e.text, true) : query;\n // Pass the filter data source, filter query to updateData method.\n var searchData = getOptionValues(props.optionValues);\n e.updateData(searchData, query);\n };\n var getOptionValues = function (options) {\n var searchData = options.map(function (option) { return ({\n label: option.label,\n value: option.value || {},\n }); });\n return searchData;\n };\n var orderedOptionValues = function () {\n if (!!props.sortFunction) {\n props.optionValues.sort(props.sortFunction);\n }\n if (!!props.reorderOptions) {\n props.reorderOptions.forEach(function (element) {\n var foundOptionIndex = (props.optionValues || []).findIndex(function (x) { return x.value === element.value; });\n props.optionValues.splice(element.newIndex, 0, props.optionValues.splice(foundOptionIndex, 1)[0]);\n });\n }\n return props.optionValues;\n };\n var defaultSettings = {\n filterBarPlaceholder: \"Search...\",\n fields: { text: \"label\", value: \"value\" },\n filtering: filteringHandler,\n select: function (args) {\n var _a;\n setLocalValue(args.itemData.value);\n (_a = props === null || props === void 0 ? void 0 : props.select) === null || _a === void 0 ? void 0 : _a.call(props, args);\n },\n };\n var setup = function () {\n // Merge settings\n var settings = __assign(__assign(__assign({}, defaultSettings), omit(props, \"showClearButton\")), {\n dataSource: getOptionValues(orderedOptionValues()),\n allowFiltering: !props.hideSearchBox,\n readonly: props.disabled,\n });\n // set\n setSettings(settings);\n setLocalValue(props.value);\n setReady(true);\n };\n return {\n localValue: localValue,\n setLocalValue: setLocalValue,\n settings: settings,\n singleSelectRef: singleSelectRef,\n ready: ready,\n };\n};\n","import { detach, getUniqueID, rippleEffect, setValue, attributes } from '@syncfusion/ej2-base';\nimport { getValue, addClass, deleteObject } from '@syncfusion/ej2-base';\n/**\n * Initialize wrapper element for angular.\n *\n * @private\n *\n * @param {CreateElementArgs} createElement - Specifies created element args\n * @param {string} tag - Specifies tag name\n * @param {string} type - Specifies type name\n * @param {HTMLInputElement} element - Specifies input element\n * @param {string} WRAPPER - Specifies wrapper element\n * @param {string} role - Specifies role\n * @returns {HTMLInputElement} - Input Element\n */\nexport function wrapperInitialize(createElement, tag, type, element, WRAPPER, role) {\n var input = element;\n if (element.tagName === tag) {\n var ejInstance = getValue('ej2_instances', element);\n input = createElement('input', { attrs: { 'type': type } });\n var props = ['change', 'cssClass', 'label', 'labelPosition', 'id'];\n for (var index = 0, len = element.attributes.length; index < len; index++) {\n if (props.indexOf(element.attributes[index].nodeName) === -1) {\n input.setAttribute(element.attributes[index].nodeName, element.attributes[index].nodeValue);\n }\n }\n attributes(element, { 'class': WRAPPER });\n element.appendChild(input);\n setValue('ej2_instances', ejInstance, input);\n deleteObject(element, 'ej2_instances');\n }\n return input;\n}\n/**\n * Get the text node.\n *\n * @param {HTMLElement} element - Specifies html element\n * @private\n * @returns {Node} - Text node.\n */\nexport function getTextNode(element) {\n var node;\n var childnode = element.childNodes;\n for (var i = 0; i < childnode.length; i++) {\n node = childnode[i];\n if (node.nodeType === 3) {\n return node;\n }\n }\n return null;\n}\n/**\n * Destroy the button components.\n *\n * @private\n * @param {Switch | CheckBox} ejInst - Specifies eJ2 Instance\n * @param {Element} wrapper - Specifies wrapper element\n * @param {string} tagName - Specifies tag name\n * @returns {void}\n */\nexport function destroy(ejInst, wrapper, tagName) {\n if (tagName === 'INPUT') {\n wrapper.parentNode.insertBefore(ejInst.element, wrapper);\n detach(wrapper);\n ejInst.element.checked = false;\n ['name', 'value', 'disabled'].forEach(function (key) {\n ejInst.element.removeAttribute(key);\n });\n }\n else {\n ['role', 'aria-checked', 'class'].forEach(function (key) {\n wrapper.removeAttribute(key);\n });\n wrapper.innerHTML = '';\n }\n}\n/**\n * Initialize control pre rendering.\n *\n * @private\n * @param {Switch | CheckBox} proxy - Specifies proxy\n * @param {string} control - Specifies control\n * @param {string} wrapper - Specifies wrapper element\n * @param {HTMLInputElement} element - Specifies input element\n * @param {string} moduleName - Specifies module name\n * @returns {void}\n */\nexport function preRender(proxy, control, wrapper, element, moduleName) {\n element = wrapperInitialize(proxy.createElement, control, 'checkbox', element, wrapper, moduleName);\n proxy.element = element;\n if (proxy.element.getAttribute('type') !== 'checkbox') {\n proxy.element.setAttribute('type', 'checkbox');\n }\n if (!proxy.element.id) {\n proxy.element.id = getUniqueID('e-' + moduleName);\n }\n}\n/**\n * Creates CheckBox component UI with theming and ripple support.\n *\n * @private\n * @param {CreateElementArgs} createElement - Specifies Created Element args\n * @param {boolean} enableRipple - Specifies ripple effect\n * @param {CheckBoxUtilModel} options - Specifies Checkbox util Model\n * @returns {Element} - Checkbox Element\n */\nexport function createCheckBox(createElement, enableRipple, options) {\n if (enableRipple === void 0) { enableRipple = false; }\n if (options === void 0) { options = {}; }\n var wrapper = createElement('div', { className: 'e-checkbox-wrapper e-css' });\n if (options.cssClass) {\n addClass([wrapper], options.cssClass.split(' '));\n }\n if (options.enableRtl) {\n wrapper.classList.add('e-rtl');\n }\n if (enableRipple) {\n var rippleSpan = createElement('span', { className: 'e-ripple-container' });\n rippleEffect(rippleSpan, { isCenterRipple: true, duration: 400 });\n wrapper.appendChild(rippleSpan);\n }\n var frameSpan = createElement('span', { className: 'e-frame e-icons' });\n if (options.checked) {\n frameSpan.classList.add('e-check');\n }\n wrapper.appendChild(frameSpan);\n if (options.label) {\n var labelSpan = createElement('span', { className: 'e-label' });\n if (options.disableHtmlEncode) {\n labelSpan.textContent = options.label;\n }\n else {\n labelSpan.innerHTML = options.label;\n }\n wrapper.appendChild(labelSpan);\n }\n return wrapper;\n}\n/**\n * Handles ripple mouse.\n *\n * @private\n * @param {MouseEvent} e - Specifies mouse event\n * @param {Element} rippleSpan - Specifies Ripple span element\n * @returns {void}\n */\nexport function rippleMouseHandler(e, rippleSpan) {\n if (rippleSpan) {\n var event_1 = document.createEvent('MouseEvents');\n event_1.initEvent(e.type, false, true);\n rippleSpan.dispatchEvent(event_1);\n }\n}\n/**\n * Append hidden input to given element\n *\n * @private\n * @param {Switch | CheckBox} proxy - Specifies Proxy\n * @param {Element} wrap - Specifies Wrapper ELement\n * @returns {void}\n */\nexport function setHiddenInput(proxy, wrap) {\n if (proxy.element.getAttribute('ejs-for')) {\n wrap.appendChild(proxy.createElement('input', {\n attrs: { 'name': proxy.name || proxy.element.name, 'value': 'false', 'type': 'hidden' }\n }));\n }\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, NotifyPropertyChanges, Component, isBlazor, isRippleEnabled } from '@syncfusion/ej2-base';\nimport { addClass, Event, detach, removeClass } from '@syncfusion/ej2-base';\nimport { rippleEffect, EventHandler, Observer, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\nimport { getTextNode } from '../common/common';\n/**\n * Defines the icon position of button.\n */\nexport var IconPosition;\n(function (IconPosition) {\n /**\n * Positions the Icon at the left of the text content in the Button.\n */\n IconPosition[\"Left\"] = \"Left\";\n /**\n * Positions the Icon at the right of the text content in the Button.\n */\n IconPosition[\"Right\"] = \"Right\";\n /**\n * Positions the Icon at the top of the text content in the Button.\n */\n IconPosition[\"Top\"] = \"Top\";\n /**\n * Positions the Icon at the bottom of the text content in the Button.\n */\n IconPosition[\"Bottom\"] = \"Bottom\";\n})(IconPosition || (IconPosition = {}));\nexport var buttonObserver = new Observer();\nvar cssClassName = {\n RTL: 'e-rtl',\n BUTTON: 'e-btn',\n PRIMARY: 'e-primary',\n ICONBTN: 'e-icon-btn'\n};\n/**\n * The Button is a graphical user interface element that triggers an event on its click action. It can contain a text, an image, or both.\n * ```html\n * \n * ```\n * ```typescript\n * \n * ```\n */\nvar Button = /** @class */ (function (_super) {\n __extends(Button, _super);\n /**\n * Constructor for creating the widget\n *\n * @param {ButtonModel} options - Specifies the button model\n * @param {string|HTMLButtonElement} element - Specifies the target element\n */\n function Button(options, element) {\n return _super.call(this, options, element) || this;\n }\n Button.prototype.preRender = function () {\n // pre render code snippets\n };\n /**\n * Initialize the control rendering\n *\n * @returns {void}\n * @private\n */\n Button.prototype.render = function () {\n this.initialize();\n this.removeRippleEffect = rippleEffect(this.element, { selector: '.' + cssClassName.BUTTON });\n this.renderComplete();\n };\n Button.prototype.initialize = function () {\n if (this.cssClass) {\n addClass([this.element], this.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n if (this.isPrimary) {\n this.element.classList.add(cssClassName.PRIMARY);\n }\n if (!isBlazor() || (isBlazor() && this.getModuleName() !== 'progress-btn')) {\n if (this.content) {\n var tempContent = (this.enableHtmlSanitizer) ? SanitizeHtmlHelper.sanitize(this.content) : this.content;\n this.element.innerHTML = tempContent;\n }\n this.setIconCss();\n }\n if (this.enableRtl) {\n this.element.classList.add(cssClassName.RTL);\n }\n if (this.disabled) {\n this.controlStatus(this.disabled);\n }\n else {\n this.wireEvents();\n }\n };\n Button.prototype.controlStatus = function (disabled) {\n this.element.disabled = disabled;\n };\n Button.prototype.setIconCss = function () {\n if (this.iconCss) {\n var span = this.createElement('span', { className: 'e-btn-icon ' + this.iconCss });\n if (!this.element.textContent.trim()) {\n this.element.classList.add(cssClassName.ICONBTN);\n }\n else {\n span.classList.add('e-icon-' + this.iconPosition.toLowerCase());\n if (this.iconPosition === 'Top' || this.iconPosition === 'Bottom') {\n this.element.classList.add('e-' + this.iconPosition.toLowerCase() + '-icon-btn');\n }\n }\n var node = this.element.childNodes[0];\n if (node && (this.iconPosition === 'Left' || this.iconPosition === 'Top')) {\n this.element.insertBefore(span, node);\n }\n else {\n this.element.appendChild(span);\n }\n }\n };\n Button.prototype.wireEvents = function () {\n if (this.isToggle) {\n EventHandler.add(this.element, 'click', this.btnClickHandler, this);\n }\n };\n Button.prototype.unWireEvents = function () {\n if (this.isToggle) {\n EventHandler.remove(this.element, 'click', this.btnClickHandler);\n }\n };\n Button.prototype.btnClickHandler = function () {\n if (this.element.classList.contains('e-active')) {\n this.element.classList.remove('e-active');\n }\n else {\n this.element.classList.add('e-active');\n }\n };\n /**\n * Destroys the widget.\n *\n * @returns {void}\n */\n Button.prototype.destroy = function () {\n var classList = [cssClassName.PRIMARY, cssClassName.RTL, cssClassName.ICONBTN, 'e-success', 'e-info', 'e-danger',\n 'e-warning', 'e-flat', 'e-outline', 'e-small', 'e-bigger', 'e-active', 'e-round',\n 'e-top-icon-btn', 'e-bottom-icon-btn'];\n if (this.cssClass) {\n classList = classList.concat(this.cssClass.split(' '));\n }\n _super.prototype.destroy.call(this);\n removeClass([this.element], classList);\n if (!this.element.getAttribute('class')) {\n this.element.removeAttribute('class');\n }\n if (this.disabled) {\n this.element.removeAttribute('disabled');\n }\n if (this.content) {\n this.element.innerHTML = this.element.innerHTML.replace(this.content, '');\n }\n var span = this.element.querySelector('span.e-btn-icon');\n if (span) {\n detach(span);\n }\n this.unWireEvents();\n if (isRippleEnabled) {\n this.removeRippleEffect();\n }\n };\n /**\n * Get component name.\n *\n * @returns {string} - Module name\n * @private\n */\n Button.prototype.getModuleName = function () {\n return 'btn';\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @returns {string} - Persist Data\n * @private\n */\n Button.prototype.getPersistData = function () {\n return this.addOnPersist([]);\n };\n /**\n * Dynamically injects the required modules to the component.\n *\n * @private\n * @returns {void}\n */\n Button.Inject = function () {\n // Inject code snippets\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {ButtonModel} newProp - Specifies new properties\n * @param {ButtonModel} oldProp - Specifies old properties\n * @returns {void}\n * @private\n */\n Button.prototype.onPropertyChanged = function (newProp, oldProp) {\n var span = this.element.querySelector('span.e-btn-icon');\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'isPrimary':\n if (newProp.isPrimary) {\n this.element.classList.add(cssClassName.PRIMARY);\n }\n else {\n this.element.classList.remove(cssClassName.PRIMARY);\n }\n break;\n case 'disabled':\n this.controlStatus(newProp.disabled);\n break;\n case 'iconCss': {\n if (span) {\n if (newProp.iconCss) {\n span.className = 'e-btn-icon ' + newProp.iconCss;\n if (this.element.textContent.trim()) {\n if (this.iconPosition === 'Left') {\n span.classList.add('e-icon-left');\n }\n else {\n span.classList.add('e-icon-right');\n }\n }\n }\n else {\n detach(span);\n }\n }\n else {\n this.setIconCss();\n }\n break;\n }\n case 'iconPosition':\n removeClass([this.element], ['e-top-icon-btn', 'e-bottom-icon-btn']);\n span = this.element.querySelector('span.e-btn-icon');\n if (span) {\n detach(span);\n }\n this.setIconCss();\n break;\n case 'cssClass':\n if (oldProp.cssClass) {\n removeClass([this.element], oldProp.cssClass.split(' '));\n }\n if (newProp.cssClass) {\n addClass([this.element], newProp.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n break;\n case 'enableRtl':\n if (newProp.enableRtl) {\n this.element.classList.add(cssClassName.RTL);\n }\n else {\n this.element.classList.remove(cssClassName.RTL);\n }\n break;\n case 'content': {\n var node = getTextNode(this.element);\n if (!node) {\n this.element.classList.remove(cssClassName.ICONBTN);\n }\n if (!isBlazor() || (isBlazor() && !this.isServerRendered && this.getModuleName() !== 'progress-btn')) {\n if (this.enableHtmlSanitizer) {\n newProp.content = SanitizeHtmlHelper.sanitize(newProp.content);\n }\n this.element.innerHTML = newProp.content;\n this.setIconCss();\n }\n break;\n }\n case 'isToggle':\n if (newProp.isToggle) {\n EventHandler.add(this.element, 'click', this.btnClickHandler, this);\n }\n else {\n EventHandler.remove(this.element, 'click', this.btnClickHandler);\n removeClass([this.element], ['e-active']);\n }\n break;\n }\n }\n };\n /**\n * Click the button element\n * its native method\n *\n * @public\n * @returns {void}\n */\n Button.prototype.click = function () {\n this.element.click();\n };\n /**\n * Sets the focus to Button\n * its native method\n *\n * @public\n * @returns {void}\n */\n Button.prototype.focusIn = function () {\n this.element.focus();\n };\n __decorate([\n Property('Left')\n ], Button.prototype, \"iconPosition\", void 0);\n __decorate([\n Property('')\n ], Button.prototype, \"iconCss\", void 0);\n __decorate([\n Property(false)\n ], Button.prototype, \"disabled\", void 0);\n __decorate([\n Property(false)\n ], Button.prototype, \"isPrimary\", void 0);\n __decorate([\n Property('')\n ], Button.prototype, \"cssClass\", void 0);\n __decorate([\n Property('')\n ], Button.prototype, \"content\", void 0);\n __decorate([\n Property(false)\n ], Button.prototype, \"isToggle\", void 0);\n __decorate([\n Property()\n ], Button.prototype, \"locale\", void 0);\n __decorate([\n Property(false)\n ], Button.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Event()\n ], Button.prototype, \"created\", void 0);\n Button = __decorate([\n NotifyPropertyChanges\n ], Button);\n return Button;\n}(Component));\nexport { Button };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Button } from '@syncfusion/ej2-buttons';\nimport { EventHandler, Property, NotifyPropertyChanges, Animation, attributes } from '@syncfusion/ej2-base';\nimport { Event, remove, removeClass } from '@syncfusion/ej2-base';\nimport { Complex, ChildProperty, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\nimport { createSpinner, showSpinner, hideSpinner } from '@syncfusion/ej2-popups';\nvar HIDESPINNER = 'e-hide-spinner';\nvar PROGRESS = 'e-progress';\nvar PROGRESSACTIVE = 'e-progress-active';\nvar CONTENTCLS = 'e-btn-content';\n/**\n * Defines the spin settings.\n */\nvar SpinSettings = /** @class */ (function (_super) {\n __extends(SpinSettings, _super);\n function SpinSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(null)\n ], SpinSettings.prototype, \"template\", void 0);\n __decorate([\n Property(16)\n ], SpinSettings.prototype, \"width\", void 0);\n __decorate([\n Property('Left')\n ], SpinSettings.prototype, \"position\", void 0);\n return SpinSettings;\n}(ChildProperty));\nexport { SpinSettings };\n/**\n * Defines the animation settings.\n */\nvar AnimationSettings = /** @class */ (function (_super) {\n __extends(AnimationSettings, _super);\n function AnimationSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(400)\n ], AnimationSettings.prototype, \"duration\", void 0);\n __decorate([\n Property('None')\n ], AnimationSettings.prototype, \"effect\", void 0);\n __decorate([\n Property('ease')\n ], AnimationSettings.prototype, \"easing\", void 0);\n return AnimationSettings;\n}(ChildProperty));\nexport { AnimationSettings };\n/**\n * The ProgressButton visualizes the progression of an operation to indicate the user\n * that a process is happening in the background with visual representation.\n * ```html\n * \n * ```\n * ```typescript\n * \n * ```\n */\nvar ProgressButton = /** @class */ (function (_super) {\n __extends(ProgressButton, _super);\n /**\n * Constructor for creating the widget.\n *\n * @param {ProgressButtonModel} options - Specifies progress button model\n * @param {string|HTMLButtonElement} element - Specifies element\n */\n function ProgressButton(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.step = 1;\n return _this;\n }\n ProgressButton.prototype.preRender = function () {\n _super.prototype.preRender.call(this);\n };\n /**\n * Initialize the Component rendering\n *\n * @returns {void}\n * @private\n */\n ProgressButton.prototype.render = function () {\n _super.prototype.render.call(this);\n this.init();\n this.wireEvents();\n this.setAria();\n this.renderComplete();\n };\n /**\n * Starts the button progress at the specified percent.\n *\n * @param {number} percent - Starts the button progress at this percent.\n * @returns {void}\n */\n ProgressButton.prototype.start = function (percent) {\n this.isPaused = false;\n this.startProgress(percent ? percent : this.percent, this.progressTime);\n };\n /**\n * Stops the button progress.\n *\n * @returns {void}\n */\n ProgressButton.prototype.stop = function () {\n this.isPaused = true;\n cancelAnimationFrame(this.timerId);\n };\n /**\n * Complete the button progress.\n *\n * @returns {void}\n */\n ProgressButton.prototype.progressComplete = function () {\n this.isPaused = false;\n this.finishProgress();\n };\n /**\n * Get component name.\n *\n * @returns {string} - Module Name\n * @private\n */\n ProgressButton.prototype.getModuleName = function () {\n return 'progress-btn';\n };\n /**\n * Destroys the widget.\n *\n * @returns {void}\n */\n ProgressButton.prototype.destroy = function () {\n var _this = this;\n var classList = [HIDESPINNER, PROGRESSACTIVE, 'e-round-corner', 'e-' + _super.prototype.getModuleName.call(this),\n 'e-spin-' + this.spinSettings.position.toLowerCase()];\n _super.prototype.destroy.call(this);\n this.unWireEvents();\n this.element.innerHTML = '';\n if (this.cssClass) {\n classList = classList.concat(this.cssClass.split(' '));\n }\n removeClass([this.element], classList);\n var css = this.element.getAttribute('class') ? ['aria-label', 'aria-valuemin', 'aria-valuemax', 'aria-valuenow']\n : ['aria-label', 'aria-valuemin', 'aria-valuemax', 'aria-valuenow', 'class'];\n css.forEach(function (key) {\n _this.element.removeAttribute(key);\n });\n if (this.disabled) {\n this.element.removeAttribute('disabled');\n }\n };\n ProgressButton.prototype.init = function () {\n this.element.classList.add('e-' + _super.prototype.getModuleName.call(this));\n this.setContent();\n this.createSpinner();\n if (this.enableProgress) {\n this.createProgress();\n }\n };\n ProgressButton.prototype.createSpinner = function () {\n var spinner = this.createElement('span', { className: 'e-spinner' });\n this.setSpinPosition(spinner);\n createSpinner({\n target: spinner, width: this.spinSettings.width || 16, template: this.spinSettings.template\n }, this.createElement);\n };\n ProgressButton.prototype.getSpinner = function () {\n return this.element.getElementsByClassName('e-spinner')[0];\n };\n ProgressButton.prototype.getProgress = function () {\n return this.element.getElementsByClassName(PROGRESS)[0];\n };\n ProgressButton.prototype.setSpinPosition = function (ele) {\n var position = this.spinSettings.position || 'Left';\n if (position === 'Left' || position === 'Top') {\n this.element.insertBefore(ele, this.element.getElementsByClassName(CONTENTCLS)[0]);\n }\n else {\n this.element.appendChild(ele);\n }\n this.element.classList.add('e-spin-' + position.toLowerCase());\n };\n ProgressButton.prototype.createProgress = function () {\n this.element.appendChild(this.createElement('span', { className: PROGRESS }));\n };\n ProgressButton.prototype.setContent = function () {\n var cont;\n cont = this.element.innerHTML;\n if (this.enableHtmlSanitizer) {\n cont = SanitizeHtmlHelper.sanitize(this.element.innerHTML);\n }\n this.element.innerHTML = '';\n this.element.appendChild(this.createElement('span', { className: CONTENTCLS, innerHTML: cont }));\n };\n ProgressButton.prototype.setContentIcon = function (content) {\n var contElem = this.createElement('span', { className: CONTENTCLS, innerHTML: content });\n if (this.iconCss) {\n var span = this.createElement('span', { className: 'e-btn-icon ' + this.iconCss });\n if (!this.element.textContent.trim()) {\n this.element.classList.add('e-icon-btn');\n }\n else {\n span.classList.add('e-icon-' + this.iconPosition.toLowerCase());\n if (this.iconPosition === 'Top' || this.iconPosition === 'Bottom') {\n this.element.classList.add('e-' + this.iconPosition.toLowerCase() + '-icon-btn');\n }\n }\n var node = contElem.childNodes[0];\n if (node && (this.iconPosition === 'Left' || this.iconPosition === 'Top')) {\n contElem.insertBefore(span, node);\n }\n else {\n contElem.appendChild(span);\n }\n }\n this.element.appendChild(contElem);\n };\n ProgressButton.prototype.clickHandler = function () {\n if (this.element.classList.contains(PROGRESSACTIVE)) {\n return;\n }\n this.startProgress();\n };\n ProgressButton.prototype.startProgress = function (percent, progressTime) {\n var clsList = this.element.classList;\n var isVertical = clsList.contains('e-vertical');\n clsList.add(PROGRESSACTIVE);\n if (!(clsList.contains(HIDESPINNER))) {\n showSpinner(this.element.querySelector(\".e-spinner\"));\n }\n this.startAnimate(Date.now(), progressTime ? progressTime : 0, progressTime ? Date.now() - (this.duration * 1 / 100) : Date.now(), percent ? percent : 0, 0, this.step, 0, isVertical);\n this.startContAnimate();\n };\n ProgressButton.prototype.startAnimate = function (timestamp, progressTime, prevTime, percent, prevPercent, step, prevProgressTime, isVertical) {\n var _this = this;\n try {\n var timeDiff = timestamp - prevTime;\n var stepTime = this.duration * step / 100;\n var timeDiffBuffer_1 = timeDiff ? (timeDiff < stepTime ? timeDiff - stepTime : timeDiff % stepTime) : 0;\n this.progressTime = progressTime = progressTime + timeDiff - timeDiffBuffer_1;\n prevTime = timestamp - timeDiffBuffer_1;\n percent = percent + (timeDiff - timeDiffBuffer_1) / this.duration * 100;\n prevPercent = ((progressTime - prevProgressTime) % stepTime === 0 || percent === 100) ? percent : prevPercent;\n var args = { percent: prevPercent, currentDuration: progressTime, step: step };\n this.eIsVertical = isVertical;\n if (percent === 0) {\n this.trigger('begin', args, function (observedArgs) {\n _this.successCallback(observedArgs, percent, prevPercent, progressTime, prevProgressTime, timeDiffBuffer_1, prevTime);\n });\n }\n else if (percent === 100 || progressTime === this.duration) {\n this.trigger('end', args, function (observedArgs) {\n _this.successCallback(observedArgs, percent, prevPercent, progressTime, prevProgressTime, timeDiffBuffer_1, prevTime);\n });\n }\n else {\n this.trigger('progress', args, function (observedArgs) {\n _this.successCallback(observedArgs, percent, prevPercent, progressTime, prevProgressTime, timeDiffBuffer_1, prevTime);\n });\n }\n }\n catch (e) {\n cancelAnimationFrame(this.timerId);\n this.trigger('fail', e);\n }\n };\n ProgressButton.prototype.successCallback = function (args, perc, pPerc, prgTim, pPrgTim, timDif, pTim) {\n var _this = this;\n var percent = perc;\n var prevPercent = pPerc;\n var timeDiffBuffer = timDif;\n var progressTime = prgTim;\n var prevProgressTime = pPrgTim;\n var prevTime = pTim;\n var isVertical = this.eIsVertical;\n if (percent !== args.percent && args.percent !== prevPercent) {\n percent = args.percent;\n }\n this.percent = percent;\n this.step = args.step;\n if ((progressTime - prevProgressTime) % (this.duration * args.step / 100) === 0 || percent === 100) {\n this.timerId = requestAnimationFrame(function () {\n if (_this.enableProgress) {\n _this.getProgress().style[isVertical ? 'height' : 'width'] = percent + '%';\n }\n _this.element.setAttribute('aria-valuenow', percent.toString());\n });\n prevPercent = percent;\n prevProgressTime = progressTime;\n }\n if (!this.isPaused) {\n if (progressTime < this.duration && percent < 100) {\n this.interval = window.setTimeout(function () {\n _this.startAnimate(Date.now(), progressTime, prevTime, percent, prevPercent, args.step, prevProgressTime, isVertical);\n }, (this.duration / 100) - timeDiffBuffer);\n }\n else {\n this.interval = window.setTimeout(function () {\n _this.progressTime = _this.percent = 0;\n if (_this.enableProgress) {\n _this.getProgress().style[isVertical ? 'height' : 'width'] = '0%';\n }\n _this.element.setAttribute('aria-valuenow', '0');\n _this.hideSpin();\n }, 100);\n }\n }\n };\n ProgressButton.prototype.startContAnimate = function () {\n var _this = this;\n var ele = this.element.getElementsByClassName(CONTENTCLS)[0];\n if (this.animationSettings.effect !== 'None') {\n (new Animation({})).animate(ele, {\n duration: this.animationSettings.duration,\n name: 'Progress' + this.animationSettings.effect,\n timingFunction: this.animationSettings.easing,\n begin: function () {\n if (_this.spinSettings.position === 'Center') {\n _this.setSpinnerSize();\n }\n },\n end: function () {\n ele.classList.add('e-animate-end');\n }\n });\n }\n else if (this.spinSettings.position === 'Center') {\n this.setSpinnerSize();\n }\n };\n ProgressButton.prototype.finishProgress = function () {\n var clsList = this.element.classList;\n var isVertical = clsList.contains('e-vertical');\n clsList.add(PROGRESSACTIVE);\n var count = 100;\n for (var i = this.percent; i < count; i++) {\n i += 10;\n if (i > 100) {\n i = 100;\n }\n if (this.enableProgress) {\n this.getProgress().style[isVertical ? 'height' : 'width'] = (this.percent < 100) ? (i + '%') : '100%';\n }\n }\n this.element.setAttribute('aria-valuenow', '0');\n this.hideSpin();\n var args = { step: this.step, currentDuration: this.progressTime, percent: 100 };\n clearTimeout(this.interval);\n this.trigger('end', args);\n this.progressTime = this.percent = 0;\n };\n ProgressButton.prototype.setSpinnerSize = function () {\n var ele = this.element.getElementsByClassName(CONTENTCLS)[0];\n var spinner = this.getSpinner();\n spinner.style.width = Math.max(spinner.offsetWidth, ele.offsetWidth) + 'px';\n spinner.style.height = Math.max(spinner.offsetHeight, ele.offsetHeight) + 'px';\n ele.classList.add('e-cont-animate');\n };\n ProgressButton.prototype.hideSpin = function () {\n var cont = this.element.getElementsByClassName(CONTENTCLS)[0];\n if (!(this.element.classList.contains(HIDESPINNER))) {\n hideSpinner(this.element.querySelector(\".e-spinner\"));\n }\n this.element.classList.remove(PROGRESSACTIVE);\n if (this.animationSettings.effect !== 'None') {\n cont.classList.remove('e-animate-end');\n }\n if (this.spinSettings.position === 'Center') {\n var ele = this.getSpinner();\n cont.classList.remove('e-cont-animate');\n ele.style.width = 'auto';\n ele.style.height = 'auto';\n }\n };\n ProgressButton.prototype.setIconSpan = function () {\n var cont = this.element.getElementsByClassName(CONTENTCLS)[0];\n var iconSpan = this.element.getElementsByClassName('e-btn-icon')[0];\n if (cont.childNodes[0] && (this.iconPosition === 'Left' || this.iconPosition === 'Top')) {\n cont.insertBefore(iconSpan, cont.childNodes[0]);\n }\n else {\n cont.appendChild(iconSpan);\n }\n };\n ProgressButton.prototype.setAria = function () {\n attributes(this.element, {\n 'aria-label': this.element.textContent + ' progress', 'aria-valuemin': '0', 'aria-valuemax': '100', 'aria-valuenow': '0'\n });\n };\n ProgressButton.prototype.wireEvents = function () {\n EventHandler.add(this.element, 'click', this.clickHandler, this);\n };\n ProgressButton.prototype.unWireEvents = function () {\n EventHandler.remove(this.element, 'click', this.clickHandler);\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {ProgressButtonModel} newProp - Specifies new properties\n * @param {ProgressButtonModel} oldProp - Specifies old properties\n * @returns {void}\n * @private\n */\n ProgressButton.prototype.onPropertyChanged = function (newProp, oldProp) {\n var ele = this.element;\n var isSpinning = false;\n var clsList = this.element.querySelector('.e-spinner-pane').classList;\n if (clsList.contains('e-spin-show')) {\n isSpinning = true;\n }\n _super.prototype.onPropertyChanged.call(this, newProp, oldProp);\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'content':\n this.setContent();\n this.createSpinner();\n if (isSpinning) {\n showSpinner(this.element.querySelector(\".e-spinner\"));\n isSpinning = false;\n }\n if (this.enableProgress) {\n this.createProgress();\n }\n ele.setAttribute('aria-label', ele.textContent + ' progress');\n break;\n case 'iconCss':\n if (!oldProp.iconCss) {\n this.setIconSpan();\n }\n break;\n case 'iconPosition':\n this.setIconSpan();\n break;\n case 'enableProgress':\n if (newProp.enableProgress) {\n this.createProgress();\n }\n else {\n remove(this.getProgress());\n }\n break;\n case 'spinSettings':\n if (newProp.spinSettings.position) {\n ele.classList.remove('e-spin-' + oldProp.spinSettings.position.toLowerCase());\n this.setSpinPosition(this.getSpinner());\n }\n if (newProp.spinSettings.template || newProp.spinSettings.width) {\n ele.removeChild(this.getSpinner());\n this.createSpinner();\n }\n break;\n }\n }\n };\n /**\n * Sets the focus to ProgressButton\n * its native method\n *\n * @public\n * @returns {void}\n */\n ProgressButton.prototype.focusIn = function () {\n this.element.focus();\n };\n __decorate([\n Property(false)\n ], ProgressButton.prototype, \"enableProgress\", void 0);\n __decorate([\n Property(2000)\n ], ProgressButton.prototype, \"duration\", void 0);\n __decorate([\n Property('Left')\n ], ProgressButton.prototype, \"iconPosition\", void 0);\n __decorate([\n Property('')\n ], ProgressButton.prototype, \"iconCss\", void 0);\n __decorate([\n Property(false)\n ], ProgressButton.prototype, \"disabled\", void 0);\n __decorate([\n Property(false)\n ], ProgressButton.prototype, \"isPrimary\", void 0);\n __decorate([\n Property('')\n ], ProgressButton.prototype, \"cssClass\", void 0);\n __decorate([\n Property('')\n ], ProgressButton.prototype, \"content\", void 0);\n __decorate([\n Property(false)\n ], ProgressButton.prototype, \"isToggle\", void 0);\n __decorate([\n Property(false)\n ], ProgressButton.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Complex({}, SpinSettings)\n ], ProgressButton.prototype, \"spinSettings\", void 0);\n __decorate([\n Complex({}, AnimationSettings)\n ], ProgressButton.prototype, \"animationSettings\", void 0);\n __decorate([\n Event()\n ], ProgressButton.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], ProgressButton.prototype, \"begin\", void 0);\n __decorate([\n Event()\n ], ProgressButton.prototype, \"progress\", void 0);\n __decorate([\n Event()\n ], ProgressButton.prototype, \"end\", void 0);\n __decorate([\n Event()\n ], ProgressButton.prototype, \"fail\", void 0);\n ProgressButton = __decorate([\n NotifyPropertyChanges\n ], ProgressButton);\n return ProgressButton;\n}(Button));\nexport { ProgressButton };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { ProgressButton } from '@syncfusion/ej2-splitbuttons';\nimport { ComponentBase, applyMixins } from '@syncfusion/ej2-react-base';\n/**\n * `ProgressButtonComponent` represents the react ProgressButton Component.\n * ```ts\n * \n * ```\n */\nvar ProgressButtonComponent = /** @class */ (function (_super) {\n __extends(ProgressButtonComponent, _super);\n function ProgressButtonComponent(props) {\n var _this = _super.call(this, props) || this;\n _this.initRenderCalled = false;\n _this.checkInjectedModules = false;\n _this.statelessTemplateProps = null;\n _this.templateProps = null;\n _this.immediateRender = true;\n _this.portals = [];\n return _this;\n }\n ProgressButtonComponent.prototype.render = function () {\n if (((this.element && !this.initRenderCalled) || this.refreshing) && !this.isReactForeceUpdate) {\n _super.prototype.render.call(this);\n this.initRenderCalled = true;\n }\n else {\n return React.createElement('button', this.getDefaultAttributes(), [].concat(this.props.children, this.portals));\n }\n };\n return ProgressButtonComponent;\n}(ProgressButton));\nexport { ProgressButtonComponent };\napplyMixins(ProgressButtonComponent, [ComponentBase, React.Component]);\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from \"react\";\nvar useLoadingButton = function (props, buttonClassStyle, defaultLoadingIdleContent, defaultLoadingProgressContent, defaultLoadingSuccessContent) {\n var _a;\n var _b = React.useState(false), isLoading = _b[0], setIsLoading = _b[1];\n var _c = React.useState(), loadingState = _c[0], setLoadingState = _c[1];\n var progressButtonComponent = React.useRef(null);\n var duration = (_a = props.duration) !== null && _a !== void 0 ? _a : 81000000;\n React.useEffect(function () {\n var _a;\n setLoadingState(__assign({\n content: (_a = props.content) !== null && _a !== void 0 ? _a : defaultLoadingIdleContent,\n cssClass: \"\".concat(buttonClassStyle, \" \").concat(props.cssClass),\n }));\n }, []);\n React.useEffect(function () {\n var _a, _b, _c, _d;\n if (props.isLoading) {\n (_a = progressButtonComponent.current) === null || _a === void 0 ? void 0 : _a.start();\n setLoadingState(__assign({\n content: (_b = props.loadingProgressContent) !== null && _b !== void 0 ? _b : defaultLoadingProgressContent,\n cssClass: \"\".concat(buttonClassStyle, \" \").concat(props.cssClass),\n }));\n }\n else {\n if (isLoading) {\n setLoadingState(__assign({\n content: (_c = props.loadingSuccessContent) !== null && _c !== void 0 ? _c : defaultLoadingSuccessContent,\n cssClass: \"\".concat(buttonClassStyle, \" \").concat(props.cssClass, \" e-success\"),\n }));\n setTimeout(function () {\n var _a;\n (_a = progressButtonComponent.current) === null || _a === void 0 ? void 0 : _a.progressComplete();\n setDefaultLoadingState();\n }, 500);\n }\n }\n setIsLoading((_d = props.isLoading) !== null && _d !== void 0 ? _d : false);\n }, [props.isLoading]);\n var setDefaultLoadingState = function () {\n var _a;\n setLoadingState(__assign({\n content: (_a = props.content) !== null && _a !== void 0 ? _a : defaultLoadingIdleContent,\n cssClass: \"\".concat(buttonClassStyle, \" \").concat(props.cssClass),\n }));\n };\n var onClickHandler = function (e) {\n var _a;\n e.preventDefault();\n e.stopPropagation();\n if (props.onClick) {\n props.onClick(e);\n (_a = progressButtonComponent.current) === null || _a === void 0 ? void 0 : _a.progressComplete();\n }\n };\n return {\n loadingState: loadingState,\n isLoading: isLoading,\n progressButtonComponent: progressButtonComponent,\n onClickHandler: onClickHandler,\n duration: duration,\n };\n};\nexport default useLoadingButton;\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { ProgressButtonComponent } from \"@syncfusion/ej2-react-splitbuttons\";\nimport useLoadingButton from \"./useLoadingButton\";\n/**Default 'Save' button with primary styling*/\nvar PrimaryButton = function (props) {\n var _a = useLoadingButton(props, \"ucl-primary\", \"Save\", \"Saving\", \"Saved\"), loadingState = _a.loadingState, progressButtonComponent = _a.progressButtonComponent, onClickHandler = _a.onClickHandler, duration = _a.duration;\n return (_jsx(\"div\", { className: \"relativity-primary-button\", children: loadingState && (_jsx(ProgressButtonComponent, __assign({ ref: progressButtonComponent, isPrimary: true }, props, { content: loadingState.content, cssClass: loadingState.cssClass, duration: duration, onClick: onClickHandler }))) }));\n};\nexport default PrimaryButton;\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { ProgressButtonComponent } from \"@syncfusion/ej2-react-splitbuttons\";\nimport useLoadingButton from \"./useLoadingButton\";\n/**Default 'Cancel' Button with styling*/\nvar CancelButton = function (props) {\n var _a = useLoadingButton(props, \"e-warning\", \"Cancel\", \"Cancelling\", \"Cancelled\"), loadingState = _a.loadingState, progressButtonComponent = _a.progressButtonComponent, onClickHandler = _a.onClickHandler, duration = _a.duration;\n return (_jsx(\"div\", { className: \"relativity-cancel-button\", children: loadingState && (_jsx(ProgressButtonComponent, __assign({ ref: progressButtonComponent, isPrimary: false }, props, { content: loadingState.content, cssClass: loadingState.cssClass, duration: duration, onClick: onClickHandler }))) }));\n};\nexport default CancelButton;\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { ProgressButtonComponent } from \"@syncfusion/ej2-react-splitbuttons\";\nimport useLoadingButton from \"./useLoadingButton\";\nimport classNames from \"classnames\";\n/**No defaults set, with secondary styling*/\nvar SecondaryButton = function (props) {\n var _a = useLoadingButton(props, \"e-info\", \"Button\", \"Loading\", \"Loaded\"), loadingState = _a.loadingState, isLoading = _a.isLoading, progressButtonComponent = _a.progressButtonComponent, onClickHandler = _a.onClickHandler, duration = _a.duration;\n return (_jsx(\"div\", { className: classNames(\"relativity-secondary-button\", {\n \"relativity-secondary-button-minimal\": props.minimal,\n }), children: loadingState && (_jsx(ProgressButtonComponent, __assign({ ref: progressButtonComponent, isPrimary: false }, props, (!props.children ? { content: loadingState.content } : {}), { cssClass: loadingState.cssClass, duration: duration, onClick: onClickHandler, children: _jsxs(_Fragment, { children: [props.children && !isLoading && props.children, props.children && isLoading && _jsx(_Fragment, { children: loadingState.content })] }) }))) }));\n};\nexport default SecondaryButton;\n","const prefix = \"fas\";\nconst fa0 = {\n prefix: 'fas',\n iconName: '0',\n icon: [320, 512, [], \"30\", \"M0 192C0 103.6 71.6 32 160 32s160 71.6 160 160l0 128c0 88.4-71.6 160-160 160S0 408.4 0 320L0 192zM160 96c-53 0-96 43-96 96l0 128c0 53 43 96 96 96s96-43 96-96l0-128c0-53-43-96-96-96z\"]\n};\nconst fa1 = {\n prefix: 'fas',\n iconName: '1',\n icon: [256, 512, [], \"31\", \"M160 64c0-11.8-6.5-22.6-16.9-28.2s-23-5-32.8 1.6l-96 64C-.5 111.2-4.4 131 5.4 145.8s29.7 18.7 44.4 8.9L96 123.8 96 416l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-352z\"]\n};\nconst fa2 = {\n prefix: 'fas',\n iconName: '2',\n icon: [320, 512, [], \"32\", \"M142.9 96c-21.5 0-42.2 8.5-57.4 23.8L54.6 150.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L40.2 74.5C67.5 47.3 104.4 32 142.9 32C223 32 288 97 288 177.1c0 38.5-15.3 75.4-42.5 102.6L109.3 416 288 416c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9L200.2 234.5c15.2-15.2 23.8-35.9 23.8-57.4c0-44.8-36.3-81.1-81.1-81.1z\"]\n};\nconst fa3 = {\n prefix: 'fas',\n iconName: '3',\n icon: [320, 512, [], \"33\", \"M0 64C0 46.3 14.3 32 32 32l240 0c13.2 0 25 8.1 29.8 20.4s1.5 26.3-8.2 35.2L162.3 208l21.7 0c75.1 0 136 60.9 136 136s-60.9 136-136 136l-78.6 0C63 480 24.2 456 5.3 418.1l-1.9-3.8c-7.9-15.8-1.5-35 14.3-42.9s35-1.5 42.9 14.3l1.9 3.8c8.1 16.3 24.8 26.5 42.9 26.5l78.6 0c39.8 0 72-32.2 72-72s-32.2-72-72-72L80 272c-13.2 0-25-8.1-29.8-20.4s-1.5-26.3 8.2-35.2L189.7 96 32 96C14.3 96 0 81.7 0 64z\"]\n};\nconst fa4 = {\n prefix: 'fas',\n iconName: '4',\n icon: [384, 512, [], \"34\", \"M189 77.6c7.5-16 .7-35.1-15.3-42.6s-35.1-.7-42.6 15.3L3 322.4c-4.7 9.9-3.9 21.5 1.9 30.8S21 368 32 368l224 0 0 80c0 17.7 14.3 32 32 32s32-14.3 32-32l0-80 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-144c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 144L82.4 304 189 77.6z\"]\n};\nconst fa5 = {\n prefix: 'fas',\n iconName: '5',\n icon: [320, 512, [], \"35\", \"M32.5 58.3C35.3 43.1 48.5 32 64 32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L90.7 96 70.3 208 184 208c75.1 0 136 60.9 136 136s-60.9 136-136 136l-83.5 0c-39.4 0-75.4-22.3-93-57.5l-4.1-8.2c-7.9-15.8-1.5-35 14.3-42.9s35-1.5 42.9 14.3l4.1 8.2c6.8 13.6 20.6 22.1 35.8 22.1l83.5 0c39.8 0 72-32.2 72-72s-32.2-72-72-72L32 272c-9.5 0-18.5-4.2-24.6-11.5s-8.6-16.9-6.9-26.2l32-176z\"]\n};\nconst fa6 = {\n prefix: 'fas',\n iconName: '6',\n icon: [320, 512, [], \"36\", \"M232.4 84.7c11.4-13.5 9.7-33.7-3.8-45.1s-33.7-9.7-45.1 3.8L38.6 214.7C14.7 242.9 1.1 278.4 .1 315.2c0 1.4-.1 2.9-.1 4.3l0 .5c0 88.4 71.6 160 160 160s160-71.6 160-160c0-85.5-67.1-155.4-151.5-159.8l63.9-75.6zM256 320A96 96 0 1 1 64 320a96 96 0 1 1 192 0z\"]\n};\nconst fa7 = {\n prefix: 'fas',\n iconName: '7',\n icon: [320, 512, [], \"37\", \"M0 64C0 46.3 14.3 32 32 32l256 0c11.5 0 22 6.1 27.7 16.1s5.7 22.2-.1 32.1l-224 384c-8.9 15.3-28.5 20.4-43.8 11.5s-20.4-28.5-11.5-43.8L232.3 96 32 96C14.3 96 0 81.7 0 64z\"]\n};\nconst fa8 = {\n prefix: 'fas',\n iconName: '8',\n icon: [320, 512, [], \"38\", \"M304 160c0-70.7-57.3-128-128-128l-32 0C73.3 32 16 89.3 16 160c0 34.6 13.7 66 36 89C20.5 272.3 0 309.8 0 352c0 70.7 57.3 128 128 128l64 0c70.7 0 128-57.3 128-128c0-42.2-20.5-79.7-52-103c22.3-23 36-54.4 36-89zM176.1 288l15.9 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-64 0c-35.3 0-64-28.7-64-64s28.7-64 64-64l15.9 0c0 0 .1 0 .1 0l32 0c0 0 .1 0 .1 0zm0-64c0 0 0 0 0 0l-32 0c0 0 0 0 0 0c-35.3 0-64-28.7-64-64c0-35.3 28.7-64 64-64l32 0c35.3 0 64 28.7 64 64c0 35.3-28.6 64-64 64z\"]\n};\nconst fa9 = {\n prefix: 'fas',\n iconName: '9',\n icon: [320, 512, [], \"39\", \"M64 192a96 96 0 1 0 192 0A96 96 0 1 0 64 192zm87.5 159.8C67.1 347.4 0 277.5 0 192C0 103.6 71.6 32 160 32s160 71.6 160 160c0 2.6-.1 5.3-.2 7.9c-1.7 35.7-15.2 70-38.4 97.4l-145 171.4c-11.4 13.5-31.6 15.2-45.1 3.8s-15.2-31.6-3.8-45.1l63.9-75.6z\"]\n};\nconst faFillDrip = {\n prefix: 'fas',\n iconName: 'fill-drip',\n icon: [576, 512, [], \"f576\", \"M41.4 9.4C53.9-3.1 74.1-3.1 86.6 9.4L168 90.7l53.1-53.1c28.1-28.1 73.7-28.1 101.8 0L474.3 189.1c28.1 28.1 28.1 73.7 0 101.8L283.9 481.4c-37.5 37.5-98.3 37.5-135.8 0L30.6 363.9c-37.5-37.5-37.5-98.3 0-135.8L122.7 136 41.4 54.6c-12.5-12.5-12.5-32.8 0-45.3zm176 221.3L168 181.3 75.9 273.4c-4.2 4.2-7 9.3-8.4 14.6l319.2 0 42.3-42.3c3.1-3.1 3.1-8.2 0-11.3L277.7 82.9c-3.1-3.1-8.2-3.1-11.3 0L213.3 136l49.4 49.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0zM512 512c-35.3 0-64-28.7-64-64c0-25.2 32.6-79.6 51.2-108.7c6-9.4 19.5-9.4 25.5 0C543.4 368.4 576 422.8 576 448c0 35.3-28.7 64-64 64z\"]\n};\nconst faArrowsToCircle = {\n prefix: 'fas',\n iconName: 'arrows-to-circle',\n icon: [640, 512, [], \"e4bd\", \"M9.4 9.4C21.9-3.1 42.1-3.1 54.6 9.4L160 114.7 160 96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96c0 4.3-.9 8.5-2.4 12.2c-1.6 3.7-3.8 7.3-6.9 10.3l-.1 .1c-3.1 3-6.6 5.3-10.3 6.9c-3.8 1.6-7.9 2.4-12.2 2.4l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l18.7 0L9.4 54.6C-3.1 42.1-3.1 21.9 9.4 9.4zM256 256a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM114.7 352L96 352c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0s0 0 0 0l.1 0c8.8 0 16.7 3.6 22.5 9.3l.1 .1c3 3.1 5.3 6.6 6.9 10.3c1.6 3.8 2.4 7.9 2.4 12.2l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-18.7L54.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L114.7 352zM416 96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 18.7L585.4 9.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L525.3 160l18.7 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-8.8 0-16.8-3.6-22.6-9.3l-.1-.1c-3-3.1-5.3-6.6-6.9-10.3s-2.4-7.8-2.4-12.2l0-.1s0 0 0 0l0-96zM525.3 352L630.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L480 397.3l0 18.7c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96s0 0 0 0l0-.1c0-4.3 .9-8.4 2.4-12.2c1.6-3.8 3.9-7.3 6.9-10.4c5.8-5.8 13.7-9.3 22.5-9.4l.1 0s0 0 0 0l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-18.7 0z\"]\n};\nconst faCircleChevronRight = {\n prefix: 'fas',\n iconName: 'circle-chevron-right',\n icon: [512, 512, [\"chevron-circle-right\"], \"f138\", \"M0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM241 377c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l87-87-87-87c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L345 239c9.4 9.4 9.4 24.6 0 33.9L241 377z\"]\n};\nconst faChevronCircleRight = faCircleChevronRight;\nconst faAt = {\n prefix: 'fas',\n iconName: 'at',\n icon: [512, 512, [61946], \"40\", \"M256 64C150 64 64 150 64 256s86 192 192 192c17.7 0 32 14.3 32 32s-14.3 32-32 32C114.6 512 0 397.4 0 256S114.6 0 256 0S512 114.6 512 256l0 32c0 53-43 96-96 96c-29.3 0-55.6-13.2-73.2-33.9C320 371.1 289.5 384 256 384c-70.7 0-128-57.3-128-128s57.3-128 128-128c27.9 0 53.7 8.9 74.7 24.1c5.7-5 13.1-8.1 21.3-8.1c17.7 0 32 14.3 32 32l0 80 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32c0-106-86-192-192-192zm64 192a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z\"]\n};\nconst faTrashCan = {\n prefix: 'fas',\n iconName: 'trash-can',\n icon: [448, 512, [61460, \"trash-alt\"], \"f2ed\", \"M135.2 17.7C140.6 6.8 151.7 0 163.8 0L284.2 0c12.1 0 23.2 6.8 28.6 17.7L320 32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l96 0 7.2-14.3zM32 128l384 0 0 320c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-320zm96 64c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224c0-8.8-7.2-16-16-16z\"]\n};\nconst faTrashAlt = faTrashCan;\nconst faTextHeight = {\n prefix: 'fas',\n iconName: 'text-height',\n icon: [576, 512, [], \"f034\", \"M64 128l0-32 64 0 0 320-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-320 64 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-48c0-26.5-21.5-48-48-48L160 32 48 32C21.5 32 0 53.5 0 80l0 48c0 17.7 14.3 32 32 32s32-14.3 32-32zM502.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l32 0 0 192-32 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8l-32 0 0-192 32 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64z\"]\n};\nconst faUserXmark = {\n prefix: 'fas',\n iconName: 'user-xmark',\n icon: [640, 512, [\"user-times\"], \"f235\", \"M96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM0 482.3C0 383.8 79.8 304 178.3 304l91.4 0C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7L29.7 512C13.3 512 0 498.7 0 482.3zM471 143c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nconst faUserTimes = faUserXmark;\nconst faStethoscope = {\n prefix: 'fas',\n iconName: 'stethoscope',\n icon: [576, 512, [129658], \"f0f1\", \"M142.4 21.9c5.6 16.8-3.5 34.9-20.2 40.5L96 71.1 96 192c0 53 43 96 96 96s96-43 96-96l0-120.9-26.1-8.7c-16.8-5.6-25.8-23.7-20.2-40.5s23.7-25.8 40.5-20.2l26.1 8.7C334.4 19.1 352 43.5 352 71.1L352 192c0 77.2-54.6 141.6-127.3 156.7C231 404.6 278.4 448 336 448c61.9 0 112-50.1 112-112l0-70.7c-28.3-12.3-48-40.5-48-73.3c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3l0 70.7c0 97.2-78.8 176-176 176c-92.9 0-168.9-71.9-175.5-163.1C87.2 334.2 32 269.6 32 192L32 71.1c0-27.5 17.6-52 43.8-60.7l26.1-8.7c16.8-5.6 34.9 3.5 40.5 20.2zM480 224a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nconst faMessage = {\n prefix: 'fas',\n iconName: 'message',\n icon: [512, 512, [\"comment-alt\"], \"f27a\", \"M64 0C28.7 0 0 28.7 0 64L0 352c0 35.3 28.7 64 64 64l96 0 0 80c0 6.1 3.4 11.6 8.8 14.3s11.9 2.1 16.8-1.5L309.3 416 448 416c35.3 0 64-28.7 64-64l0-288c0-35.3-28.7-64-64-64L64 0z\"]\n};\nconst faCommentAlt = faMessage;\nconst faInfo = {\n prefix: 'fas',\n iconName: 'info',\n icon: [192, 512, [], \"f129\", \"M48 80a48 48 0 1 1 96 0A48 48 0 1 1 48 80zM0 224c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 224 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-192-32 0c-17.7 0-32-14.3-32-32z\"]\n};\nconst faDownLeftAndUpRightToCenter = {\n prefix: 'fas',\n iconName: 'down-left-and-up-right-to-center',\n icon: [512, 512, [\"compress-alt\"], \"f422\", \"M439 7c9.4-9.4 24.6-9.4 33.9 0l32 32c9.4 9.4 9.4 24.6 0 33.9l-87 87 39 39c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8l-144 0c-13.3 0-24-10.7-24-24l0-144c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l39 39L439 7zM72 272l144 0c13.3 0 24 10.7 24 24l0 144c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39L73 505c-9.4 9.4-24.6 9.4-33.9 0L7 473c-9.4-9.4-9.4-24.6 0-33.9l87-87L55 313c-6.9-6.9-8.9-17.2-5.2-26.2s12.5-14.8 22.2-14.8z\"]\n};\nconst faCompressAlt = faDownLeftAndUpRightToCenter;\nconst faExplosion = {\n prefix: 'fas',\n iconName: 'explosion',\n icon: [576, 512, [], \"e4e9\", \"M499.6 11.3c6.7-10.7 20.5-14.5 31.7-8.5s15.8 19.5 10.6 31L404.8 338.6c2.2 2.3 4.3 4.7 6.3 7.1l97.2-54.7c10.5-5.9 23.6-3.1 30.9 6.4s6.3 23-2.2 31.5l-87 87-71.4 0c-13.2-37.3-48.7-64-90.5-64s-77.4 26.7-90.5 64l-79.6 0L42.3 363.7c-9.7-6.7-13.1-19.6-7.9-30.3s17.4-15.9 28.7-12.4l97.2 30.4c3-3.9 6.1-7.7 9.4-11.3L107.4 236.3c-6.1-10.1-3.9-23.1 5.1-30.7s22.2-7.5 31.1 .1L246 293.6c1.5-.4 3-.8 4.5-1.1l13.6-142.7c1.2-12.3 11.5-21.7 23.9-21.7s22.7 9.4 23.9 21.7l13.5 141.9L499.6 11.3zM64 448s0 0 0 0l448 0s0 0 0 0l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0zM288 0c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24z\"]\n};\nconst faFileLines = {\n prefix: 'fas',\n iconName: 'file-lines',\n icon: [384, 512, [128441, 128462, 61686, \"file-alt\", \"file-text\"], \"f15c\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM112 256l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nconst faFileAlt = faFileLines;\nconst faFileText = faFileLines;\nconst faWaveSquare = {\n prefix: 'fas',\n iconName: 'wave-square',\n icon: [640, 512, [], \"f83e\", \"M128 64c0-17.7 14.3-32 32-32l160 0c17.7 0 32 14.3 32 32l0 352 96 0 0-160c0-17.7 14.3-32 32-32l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0 0 160c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-352-96 0 0 160c0 17.7-14.3 32-32 32L32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0 0-160z\"]\n};\nconst faRing = {\n prefix: 'fas',\n iconName: 'ring',\n icon: [512, 512, [], \"f70b\", \"M64 208c0 7.8 4.4 18.7 17.1 30.3C126.5 214.1 188.9 200 256 200s129.5 14.1 174.9 38.3C443.6 226.7 448 215.8 448 208c0-12.3-10.8-32-47.9-50.6C364.9 139.8 314 128 256 128s-108.9 11.8-144.1 29.4C74.8 176 64 195.7 64 208zm192 40c-47 0-89.3 7.6-122.9 19.7C166.3 280.2 208.8 288 256 288s89.7-7.8 122.9-20.3C345.3 255.6 303 248 256 248zM0 208c0-49.6 39.4-85.8 83.3-107.8C129.1 77.3 190.3 64 256 64s126.9 13.3 172.7 36.2c43.9 22 83.3 58.2 83.3 107.8l0 96c0 49.6-39.4 85.8-83.3 107.8C382.9 434.7 321.7 448 256 448s-126.9-13.3-172.7-36.2C39.4 389.8 0 353.6 0 304l0-96z\"]\n};\nconst faBuildingUn = {\n prefix: 'fas',\n iconName: 'building-un',\n icon: [384, 512, [], \"e4d9\", \"M48 0C21.5 0 0 21.5 0 48L0 464c0 26.5 21.5 48 48 48l96 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 96 0c26.5 0 48-21.5 48-48l0-416c0-26.5-21.5-48-48-48L48 0zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm112-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM237.3 71.1l34.7 52L272 80c0-8.8 7.2-16 16-16s16 7.2 16 16l0 96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4l-34.7-52 0 43.2c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4zM112 80l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16l0 64c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nconst faDiceThree = {\n prefix: 'fas',\n iconName: 'dice-three',\n icon: [448, 512, [9858], \"f527\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm64 96a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64 128a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm128 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nconst faCalendarDays = {\n prefix: 'fas',\n iconName: 'calendar-days',\n icon: [448, 512, [\"calendar-alt\"], \"f073\", \"M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 48 0c26.5 0 48 21.5 48 48l0 48L0 160l0-48C0 85.5 21.5 64 48 64l48 0 0-32c0-17.7 14.3-32 32-32zM0 192l448 0 0 272c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 192zm64 80l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm128 0l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM64 400l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z\"]\n};\nconst faCalendarAlt = faCalendarDays;\nconst faAnchorCircleCheck = {\n prefix: 'fas',\n iconName: 'anchor-circle-check',\n icon: [640, 512, [], \"e4aa\", \"M320 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm21.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80L224 176c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 208-48 0c-53 0-96-43-96-96l0-6.1 7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7 0 6.1c0 88.4 71.6 160 160 160l80 0 80 0c8.2 0 16.3-.6 24.2-1.8c-22.2-16.2-40.4-37.5-53-62.2L320 448l0-80 0-128 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-10.9 0zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"]\n};\nconst faBuildingCircleArrowRight = {\n prefix: 'fas',\n iconName: 'building-circle-arrow-right',\n icon: [640, 512, [], \"e4d1\", \"M0 48C0 21.5 21.5 0 48 0L336 0c26.5 0 48 21.5 48 48l0 184.2c-39.1 32.3-64 81.1-64 135.8c0 49.5 20.4 94.2 53.3 126.2C364.5 505.1 351.1 512 336 512l-96 0 0-80c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 80-96 0c-26.5 0-48-21.5-48-48L0 48zM80 224c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm80 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm112-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM64 112l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16L80 96c-8.8 0-16 7.2-16 16zM176 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm80 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm96 256a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm140.7-67.3c-6.2 6.2-6.2 16.4 0 22.6L521.4 352 432 352c-8.8 0-16 7.2-16 16s7.2 16 16 16l89.4 0-28.7 28.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l56-56c6.2-6.2 6.2-16.4 0-22.6l-56-56c-6.2-6.2-16.4-6.2-22.6 0z\"]\n};\nconst faVolleyball = {\n prefix: 'fas',\n iconName: 'volleyball',\n icon: [512, 512, [127952, \"volleyball-ball\"], \"f45f\", \"M511.8 267.4c-26.1 8.7-53.4 13.8-81 15.1c9.2-105.3-31.5-204.2-103.2-272.4C434.1 41.1 512 139.5 512 256c0 3.8-.1 7.6-.2 11.4zm-3.9 34.7c-5.8 32-17.6 62-34.2 88.7c-97.5 48.5-217.7 42.6-311.9-24.5c23.7-36.2 55.4-67.7 94.5-91.8c79.9 43.2 170.1 50.8 251.6 27.6zm-236-55.5c-2.5-90.9-41.1-172.7-101.9-231.7C196.8 5.2 225.8 0 256 0c2.7 0 5.3 0 7.9 .1c90.8 60.2 145.7 167.2 134.7 282.3c-43.1-2.4-86.4-14.1-126.8-35.9zM138 28.8c20.6 18.3 38.7 39.4 53.7 62.6C95.9 136.1 30.6 220.8 7.3 316.9C2.5 297.4 0 277 0 256C0 157.2 56 71.5 138 28.8zm69.6 90.5c19.5 38.6 31 81.9 32.3 127.7C162.5 294.6 110.9 368.9 90.2 451C66 430.4 45.6 405.4 30.4 377.2c6.7-108.7 71.9-209.9 177.1-257.9zM256 512c-50.7 0-98-14.7-137.8-40.2c5.6-27 14.8-53.1 27.4-77.7C232.2 454.6 338.1 468.8 433 441c-46 44-108.3 71-177 71z\"]\n};\nconst faVolleyballBall = faVolleyball;\nconst faArrowsUpToLine = {\n prefix: 'fas',\n iconName: 'arrows-up-to-line',\n icon: [576, 512, [], \"e4c2\", \"M32 96l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32C14.3 32 0 46.3 0 64S14.3 96 32 96zM9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L96 237.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-210.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0l-96 96zm320 45.3c12.5 12.5 32.8 12.5 45.3 0L416 237.3 416 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-210.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3z\"]\n};\nconst faSortDown = {\n prefix: 'fas',\n iconName: 'sort-down',\n icon: [320, 512, [\"sort-desc\"], \"f0dd\", \"M182.6 470.6c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-9.2-9.2-11.9-22.9-6.9-34.9s16.6-19.8 29.6-19.8l256 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9l-128 128z\"]\n};\nconst faSortDesc = faSortDown;\nconst faCircleMinus = {\n prefix: 'fas',\n iconName: 'circle-minus',\n icon: [512, 512, [\"minus-circle\"], \"f056\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM184 232l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nconst faMinusCircle = faCircleMinus;\nconst faDoorOpen = {\n prefix: 'fas',\n iconName: 'door-open',\n icon: [576, 512, [], \"f52b\", \"M320 32c0-9.9-4.5-19.2-12.3-25.2S289.8-1.4 280.2 1l-179.9 45C79 51.3 64 70.5 64 92.5L64 448l-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0 192 0 32 0 0-32 0-448zM256 256c0 17.7-10.7 32-24 32s-24-14.3-24-32s10.7-32 24-32s24 14.3 24 32zm96-128l96 0 0 352c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-320c0-35.3-28.7-64-64-64l-96 0 0 64z\"]\n};\nconst faRightFromBracket = {\n prefix: 'fas',\n iconName: 'right-from-bracket',\n icon: [512, 512, [\"sign-out-alt\"], \"f2f5\", \"M377.9 105.9L500.7 228.7c7.2 7.2 11.3 17.1 11.3 27.3s-4.1 20.1-11.3 27.3L377.9 406.1c-6.4 6.4-15 9.9-24 9.9c-18.7 0-33.9-15.2-33.9-33.9l0-62.1-128 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l128 0 0-62.1c0-18.7 15.2-33.9 33.9-33.9c9 0 17.6 3.6 24 9.9zM160 96L96 96c-17.7 0-32 14.3-32 32l0 256c0 17.7 14.3 32 32 32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-53 0-96-43-96-96L0 128C0 75 43 32 96 32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32z\"]\n};\nconst faSignOutAlt = faRightFromBracket;\nconst faAtom = {\n prefix: 'fas',\n iconName: 'atom',\n icon: [512, 512, [9883], \"f5d2\", \"M256 398.8c-11.8 5.1-23.4 9.7-34.9 13.5c16.7 33.8 31 35.7 34.9 35.7s18.1-1.9 34.9-35.7c-11.4-3.9-23.1-8.4-34.9-13.5zM446 256c33 45.2 44.3 90.9 23.6 128c-20.2 36.3-62.5 49.3-115.2 43.2c-22 52.1-55.6 84.8-98.4 84.8s-76.4-32.7-98.4-84.8c-52.7 6.1-95-6.8-115.2-43.2C21.7 346.9 33 301.2 66 256c-33-45.2-44.3-90.9-23.6-128c20.2-36.3 62.5-49.3 115.2-43.2C179.6 32.7 213.2 0 256 0s76.4 32.7 98.4 84.8c52.7-6.1 95 6.8 115.2 43.2c20.7 37.1 9.4 82.8-23.6 128zm-65.8 67.4c-1.7 14.2-3.9 28-6.7 41.2c31.8 1.4 38.6-8.7 40.2-11.7c2.3-4.2 7-17.9-11.9-48.1c-6.8 6.3-14 12.5-21.6 18.6zm-6.7-175.9c2.8 13.1 5 26.9 6.7 41.2c7.6 6.1 14.8 12.3 21.6 18.6c18.9-30.2 14.2-44 11.9-48.1c-1.6-2.9-8.4-13-40.2-11.7zM290.9 99.7C274.1 65.9 259.9 64 256 64s-18.1 1.9-34.9 35.7c11.4 3.9 23.1 8.4 34.9 13.5c11.8-5.1 23.4-9.7 34.9-13.5zm-159 88.9c1.7-14.3 3.9-28 6.7-41.2c-31.8-1.4-38.6 8.7-40.2 11.7c-2.3 4.2-7 17.9 11.9 48.1c6.8-6.3 14-12.5 21.6-18.6zM110.2 304.8C91.4 335 96 348.7 98.3 352.9c1.6 2.9 8.4 13 40.2 11.7c-2.8-13.1-5-26.9-6.7-41.2c-7.6-6.1-14.8-12.3-21.6-18.6zM336 256a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zm-80-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nconst faSoap = {\n prefix: 'fas',\n iconName: 'soap',\n icon: [512, 512, [129532], \"e06e\", \"M208 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM320 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128zM416 32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0 160c0 27.6-11.7 52.5-30.4 70.1C422.1 275.7 448 310.8 448 352c0 53-43 96-96 96l-192 0c-53 0-96-43-96-96s43-96 96-96l88.4 0c-15.2-17-24.4-39.4-24.4-64L96 192c-53 0-96 43-96 96L0 416c0 53 43 96 96 96l320 0c53 0 96-43 96-96l0-128c0-53-43-96-96-96zM160 288c-35.3 0-64 28.7-64 64s28.7 64 64 64l192 0c35.3 0 64-28.7 64-64s-28.7-64-64-64l-32 0-160 0z\"]\n};\nconst faIcons = {\n prefix: 'fas',\n iconName: 'icons',\n icon: [512, 512, [\"heart-music-camera-bolt\"], \"f86d\", \"M500.3 7.3C507.7 13.3 512 22.4 512 32l0 144c0 26.5-28.7 48-64 48s-64-21.5-64-48s28.7-48 64-48l0-57L352 90.2 352 208c0 26.5-28.7 48-64 48s-64-21.5-64-48s28.7-48 64-48l0-96c0-15.3 10.8-28.4 25.7-31.4l160-32c9.4-1.9 19.1 .6 26.6 6.6zM74.7 304l11.8-17.8c5.9-8.9 15.9-14.2 26.6-14.2l61.7 0c10.7 0 20.7 5.3 26.6 14.2L213.3 304l26.7 0c26.5 0 48 21.5 48 48l0 112c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 352c0-26.5 21.5-48 48-48l26.7 0zM192 408a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM478.7 278.3L440.3 368l55.7 0c6.7 0 12.6 4.1 15 10.4s.6 13.3-4.4 17.7l-128 112c-5.6 4.9-13.9 5.3-19.9 .9s-8.2-12.4-5.3-19.2L391.7 400 336 400c-6.7 0-12.6-4.1-15-10.4s-.6-13.3 4.4-17.7l128-112c5.6-4.9 13.9-5.3 19.9-.9s8.2 12.4 5.3 19.2zm-339-59.2c-6.5 6.5-17 6.5-23 0L19.9 119.2c-28-29-26.5-76.9 5-103.9c27-23.5 68.4-19 93.4 6.5l10 10.5 9.5-10.5c25-25.5 65.9-30 93.9-6.5c31 27 32.5 74.9 4.5 103.9l-96.4 99.9z\"]\n};\nconst faHeartMusicCameraBolt = faIcons;\nconst faMicrophoneLinesSlash = {\n prefix: 'fas',\n iconName: 'microphone-lines-slash',\n icon: [640, 512, [\"microphone-alt-slash\"], \"f539\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L472.1 344.7c15.2-26 23.9-56.3 23.9-88.7l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 24 0 16c0 21.2-5.1 41.1-14.2 58.7L416 300.8l0-44.8-57.1 0-34.5-27c2.9-3.1 7-5 11.6-5l80 0 0-32-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-32-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0c0-53-43-96-96-96s-96 43-96 96l0 54.3L38.8 5.1zm362.5 407l-43.1-33.9C346.1 382 333.3 384 320 384c-70.7 0-128-57.3-128-128l0-8.7L144.7 210c-.5 1.9-.7 3.9-.7 6l0 40c0 89.1 66.2 162.7 152 174.4l0 33.6-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0 72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-33.6c20.4-2.8 39.7-9.1 57.3-18.2z\"]\n};\nconst faMicrophoneAltSlash = faMicrophoneLinesSlash;\nconst faBridgeCircleCheck = {\n prefix: 'fas',\n iconName: 'bridge-circle-check',\n icon: [640, 512, [], \"e4c9\", \"M64 32C46.3 32 32 46.3 32 64s14.3 32 32 32l40 0 0 64-72 0 0 128c53 0 96 43 96 96l0 64c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-64c0-53 43-96 96-96c6.3 0 12.4 .6 18.3 1.7C367.1 231.8 426.9 192 496 192c42.5 0 81.6 15.1 112 40.2l0-72.2-72 0 0-64 40 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 32zM488 96l0 64-80 0 0-64 80 0zM360 96l0 64-80 0 0-64 80 0zM232 96l0 64-80 0 0-64 80 0zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"]\n};\nconst faPumpMedical = {\n prefix: 'fas',\n iconName: 'pump-medical',\n icon: [448, 512, [], \"e06a\", \"M128 32l0 96 128 0 0-32 60.1 0c4.2 0 8.3 1.7 11.3 4.7l33.9 33.9c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L372.7 55.4c-15-15-35.4-23.4-56.6-23.4L256 32c0-17.7-14.3-32-32-32L160 0c-17.7 0-32 14.3-32 32zM117.4 160c-33.3 0-61 25.5-63.8 58.7L35 442.7C31.9 480 61.3 512 98.8 512l186.4 0c37.4 0 66.9-32 63.8-69.3l-18.7-224c-2.8-33.2-30.5-58.7-63.8-58.7l-149.1 0zM216 280l0 32 32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0 0 32c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-32-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l32 0 0-32c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nconst faFingerprint = {\n prefix: 'fas',\n iconName: 'fingerprint',\n icon: [512, 512, [], \"f577\", \"M48 256C48 141.1 141.1 48 256 48c63.1 0 119.6 28.1 157.8 72.5c8.6 10.1 23.8 11.2 33.8 2.6s11.2-23.8 2.6-33.8C403.3 34.6 333.7 0 256 0C114.6 0 0 114.6 0 256l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40zm458.5-52.9c-2.7-13-15.5-21.3-28.4-18.5s-21.3 15.5-18.5 28.4c2.9 13.9 4.5 28.3 4.5 43.1l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40c0-18.1-1.9-35.8-5.5-52.9zM256 80c-19 0-37.4 3-54.5 8.6c-15.2 5-18.7 23.7-8.3 35.9c7.1 8.3 18.8 10.8 29.4 7.9c10.6-2.9 21.8-4.4 33.4-4.4c70.7 0 128 57.3 128 128l0 24.9c0 25.2-1.5 50.3-4.4 75.3c-1.7 14.6 9.4 27.8 24.2 27.8c11.8 0 21.9-8.6 23.3-20.3c3.3-27.4 5-55 5-82.7l0-24.9c0-97.2-78.8-176-176-176zM150.7 148.7c-9.1-10.6-25.3-11.4-33.9-.4C93.7 178 80 215.4 80 256l0 24.9c0 24.2-2.6 48.4-7.8 71.9C68.8 368.4 80.1 384 96.1 384c10.5 0 19.9-7 22.2-17.3c6.4-28.1 9.7-56.8 9.7-85.8l0-24.9c0-27.2 8.5-52.4 22.9-73.1c7.2-10.4 8-24.6-.2-34.2zM256 160c-53 0-96 43-96 96l0 24.9c0 35.9-4.6 71.5-13.8 106.1c-3.8 14.3 6.7 29 21.5 29c9.5 0 17.9-6.2 20.4-15.4c10.5-39 15.9-79.2 15.9-119.7l0-24.9c0-28.7 23.3-52 52-52s52 23.3 52 52l0 24.9c0 36.3-3.5 72.4-10.4 107.9c-2.7 13.9 7.7 27.2 21.8 27.2c10.2 0 19-7 21-17c7.7-38.8 11.6-78.3 11.6-118.1l0-24.9c0-53-43-96-96-96zm24 96c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 24.9c0 59.9-11 119.3-32.5 175.2l-5.9 15.3c-4.8 12.4 1.4 26.3 13.8 31s26.3-1.4 31-13.8l5.9-15.3C267.9 411.9 280 346.7 280 280.9l0-24.9z\"]\n};\nconst faHandPointRight = {\n prefix: 'fas',\n iconName: 'hand-point-right',\n icon: [512, 512, [], \"f0a4\", \"M480 96c17.7 0 32 14.3 32 32s-14.3 32-32 32l-208 0 0-64 208 0zM320 288c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0zm64-64c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l48 0c17.7 0 32 14.3 32 32zM288 384c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0zm-88-96l.6 0c-5.4 9.4-8.6 20.3-8.6 32c0 13.2 4 25.4 10.8 35.6C177.9 364.3 160 388.1 160 416c0 11.7 3.1 22.6 8.6 32l-8.6 0C71.6 448 0 376.4 0 288l0-61.7c0-42.4 16.9-83.1 46.9-113.1l11.6-11.6C82.5 77.5 115.1 64 149 64l27 0c35.3 0 64 28.7 64 64l0 88c0 22.1-17.9 40-40 40s-40-17.9-40-40l0-56c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 56c0 39.8 32.2 72 72 72z\"]\n};\nconst faMagnifyingGlassLocation = {\n prefix: 'fas',\n iconName: 'magnifying-glass-location',\n icon: [512, 512, [\"search-location\"], \"f689\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM288 176c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 48.8 46.5 111.6 68.6 138.6c6 7.3 16.8 7.3 22.7 0c22.1-27 68.6-89.8 68.6-138.6zm-112 0a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nconst faSearchLocation = faMagnifyingGlassLocation;\nconst faForwardStep = {\n prefix: 'fas',\n iconName: 'forward-step',\n icon: [320, 512, [\"step-forward\"], \"f051\", \"M52.5 440.6c-9.5 7.9-22.8 9.7-34.1 4.4S0 428.4 0 416L0 96C0 83.6 7.2 72.3 18.4 67s24.5-3.6 34.1 4.4l192 160L256 241l0-145c0-17.7 14.3-32 32-32s32 14.3 32 32l0 320c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-145-11.5 9.6-192 160z\"]\n};\nconst faStepForward = faForwardStep;\nconst faFaceSmileBeam = {\n prefix: 'fas',\n iconName: 'face-smile-beam',\n icon: [512, 512, [128522, \"smile-beam\"], \"f5b8\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM164.1 325.5C182 346.2 212.6 368 256 368s74-21.8 91.9-42.5c5.8-6.7 15.9-7.4 22.6-1.6s7.4 15.9 1.6 22.6C349.8 372.1 311.1 400 256 400s-93.8-27.9-116.1-53.5c-5.8-6.7-5.1-16.8 1.6-22.6s16.8-5.1 22.6 1.6zm53.5-96.7s0 0 0 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0zm160 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0z\"]\n};\nconst faSmileBeam = faFaceSmileBeam;\nconst faFlagCheckered = {\n prefix: 'fas',\n iconName: 'flag-checkered',\n icon: [448, 512, [127937], \"f11e\", \"M32 0C49.7 0 64 14.3 64 32l0 16 69-17.2c38.1-9.5 78.3-5.1 113.5 12.5c46.3 23.2 100.8 23.2 147.1 0l9.6-4.8C423.8 28.1 448 43.1 448 66.1l0 279.7c0 13.3-8.3 25.3-20.8 30l-34.7 13c-46.2 17.3-97.6 14.6-141.7-7.4c-37.9-19-81.3-23.7-122.5-13.4L64 384l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-80 0-66L0 64 0 32C0 14.3 14.3 0 32 0zM64 187.1l64-13.9 0 65.5L64 252.6 64 318l48.8-12.2c5.1-1.3 10.1-2.4 15.2-3.3l0-63.9 38.9-8.4c8.3-1.8 16.7-2.5 25.1-2.1l0-64c13.6 .4 27.2 2.6 40.4 6.4l23.6 6.9 0 66.7-41.7-12.3c-7.3-2.1-14.8-3.4-22.3-3.8l0 71.4c21.8 1.9 43.3 6.7 64 14.4l0-69.8 22.7 6.7c13.5 4 27.3 6.4 41.3 7.4l0-64.2c-7.8-.8-15.6-2.3-23.2-4.5l-40.8-12 0-62c-13-3.8-25.8-8.8-38.2-15c-8.2-4.1-16.9-7-25.8-8.8l0 72.4c-13-.4-26 .8-38.7 3.6L128 173.2 128 98 64 114l0 73.1zM320 335.7c16.8 1.5 33.9-.7 50-6.8l14-5.2 0-71.7-7.9 1.8c-18.4 4.3-37.3 5.7-56.1 4.5l0 77.4zm64-149.4l0-70.8c-20.9 6.1-42.4 9.1-64 9.1l0 69.4c13.9 1.4 28 .5 41.7-2.6l22.3-5.2z\"]\n};\nconst faFootball = {\n prefix: 'fas',\n iconName: 'football',\n icon: [512, 512, [127944, \"football-ball\"], \"f44e\", \"M247.5 25.4c-13.5 3.3-26.4 7.2-38.6 11.7C142.9 61.6 96.7 103.6 66 153.6C47.8 183.4 35.1 215.9 26.9 249L264.5 486.6c13.5-3.3 26.4-7.2 38.6-11.7c66-24.5 112.2-66.5 142.9-116.5c18.3-29.8 30.9-62.3 39.1-95.3L247.5 25.4zM495.2 205.3c6.1-56.8 1.4-112.2-7.7-156.4c-2.7-12.9-13-22.9-26.1-25.1c-58.2-9.7-109.9-12-155.6-7.9L495.2 205.3zM206.1 496L16.8 306.7c-6.1 56.8-1.4 112.2 7.7 156.4c2.7 12.9 13 22.9 26.1 25.1c58.2 9.7 109.9 12 155.6 7.9zm54.6-331.3c6.2-6.2 16.4-6.2 22.6 0l64 64c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-64-64c-6.2-6.2-6.2-16.4 0-22.6zm-48 48c6.2-6.2 16.4-6.2 22.6 0l64 64c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-64-64c-6.2-6.2-6.2-16.4 0-22.6zm-48 48c6.2-6.2 16.4-6.2 22.6 0l64 64c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-64-64c-6.2-6.2-6.2-16.4 0-22.6z\"]\n};\nconst faFootballBall = faFootball;\nconst faSchoolCircleExclamation = {\n prefix: 'fas',\n iconName: 'school-circle-exclamation',\n icon: [640, 512, [], \"e56c\", \"M337.8 5.4C327-1.8 313-1.8 302.2 5.4L166.3 96 48 96C21.5 96 0 117.5 0 144L0 464c0 26.5 21.5 48 48 48l272 0s0 0 0 0l-64 0 0-96c0-35.3 28.7-64 64-64l.3 0 .5 0c3.4-37.7 18.7-72.1 42.2-99.1C350.2 260 335.6 264 320 264c-48.6 0-88-39.4-88-88s39.4-88 88-88s88 39.4 88 88c0 18.3-5.6 35.3-15.1 49.4c29-21 64.6-33.4 103.1-33.4c59.5 0 112.1 29.6 144 74.8L640 144c0-26.5-21.5-48-48-48L473.7 96 337.8 5.4zM96 192l32 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16zm0 128l32 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16zM320 128c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0 0-16c0-8.8-7.2-16-16-16zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"]\n};\nconst faCrop = {\n prefix: 'fas',\n iconName: 'crop',\n icon: [512, 512, [], \"f125\", \"M448 109.3l54.6-54.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L402.7 64 160 64l0 64 178.7 0L128 338.7 128 32c0-17.7-14.3-32-32-32S64 14.3 64 32l0 32L32 64C14.3 64 0 78.3 0 96s14.3 32 32 32l32 0 0 256c0 35.3 28.7 64 64 64l224 0 0-64-178.7 0L384 173.3 384 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-274.7z\"]\n};\nconst faAnglesDown = {\n prefix: 'fas',\n iconName: 'angles-down',\n icon: [448, 512, [\"angle-double-down\"], \"f103\", \"M246.6 470.6c-12.5 12.5-32.8 12.5-45.3 0l-160-160c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L224 402.7 361.4 265.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-160 160zm160-352l-160 160c-12.5 12.5-32.8 12.5-45.3 0l-160-160c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L224 210.7 361.4 73.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3z\"]\n};\nconst faAngleDoubleDown = faAnglesDown;\nconst faUsersRectangle = {\n prefix: 'fas',\n iconName: 'users-rectangle',\n icon: [640, 512, [], \"e594\", \"M96 0C43 0 0 43 0 96L0 416c0 53 43 96 96 96l448 0c53 0 96-43 96-96l0-320c0-53-43-96-96-96L96 0zM64 96c0-17.7 14.3-32 32-32l448 0c17.7 0 32 14.3 32 32l0 320c0 17.7-14.3 32-32 32L96 448c-17.7 0-32-14.3-32-32L64 96zm159.8 80a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM96 309.3c0 14.7 11.9 26.7 26.7 26.7l56.1 0c8-34.1 32.8-61.7 65.2-73.6c-7.5-4.1-16.2-6.4-25.3-6.4l-69.3 0C119.9 256 96 279.9 96 309.3zM461.2 336l56.1 0c14.7 0 26.7-11.9 26.7-26.7c0-29.5-23.9-53.3-53.3-53.3l-69.3 0c-9.2 0-17.8 2.3-25.3 6.4c32.4 11.9 57.2 39.5 65.2 73.6zM372 289c-3.9-.7-7.9-1-12-1l-80 0c-4.1 0-8.1 .3-12 1c-26 4.4-47.3 22.7-55.9 47c-2.7 7.5-4.1 15.6-4.1 24c0 13.3 10.7 24 24 24l176 0c13.3 0 24-10.7 24-24c0-8.4-1.4-16.5-4.1-24c-8.6-24.3-29.9-42.6-55.9-47zM512 176a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM320 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128z\"]\n};\nconst faPeopleRoof = {\n prefix: 'fas',\n iconName: 'people-roof',\n icon: [640, 512, [], \"e537\", \"M335.5 4l288 160c15.4 8.6 21 28.1 12.4 43.5s-28.1 21-43.5 12.4L320 68.6 47.5 220c-15.4 8.6-34.9 3-43.5-12.4s-3-34.9 12.4-43.5L304.5 4c9.7-5.4 21.4-5.4 31.1 0zM320 160a40 40 0 1 1 0 80 40 40 0 1 1 0-80zM144 256a40 40 0 1 1 0 80 40 40 0 1 1 0-80zm312 40a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM226.9 491.4L200 441.5l0 38.5c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32l0-38.5L61.1 491.4c-6.3 11.7-20.8 16-32.5 9.8s-16-20.8-9.8-32.5l37.9-70.3c15.3-28.5 45.1-46.3 77.5-46.3l19.5 0c16.3 0 31.9 4.5 45.4 12.6l33.6-62.3c15.3-28.5 45.1-46.3 77.5-46.3l19.5 0c32.4 0 62.1 17.8 77.5 46.3l33.6 62.3c13.5-8.1 29.1-12.6 45.4-12.6l19.5 0c32.4 0 62.1 17.8 77.5 46.3l37.9 70.3c6.3 11.7 1.9 26.2-9.8 32.5s-26.2 1.9-32.5-9.8L552 441.5l0 38.5c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32l0-38.5-26.9 49.9c-6.3 11.7-20.8 16-32.5 9.8s-16-20.8-9.8-32.5l36.3-67.5c-1.7-1.7-3.2-3.6-4.3-5.8L376 345.5l0 54.5c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32l0-54.5-26.9 49.9c-1.2 2.2-2.6 4.1-4.3 5.8l36.3 67.5c6.3 11.7 1.9 26.2-9.8 32.5s-26.2 1.9-32.5-9.8z\"]\n};\nconst faPeopleLine = {\n prefix: 'fas',\n iconName: 'people-line',\n icon: [640, 512, [], \"e534\", \"M360 72a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zM144 208a40 40 0 1 0 0-80 40 40 0 1 0 0 80zM32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l576 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 416zM496 208a40 40 0 1 0 0-80 40 40 0 1 0 0 80zM200 313.5l26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-36.3-67.5c1.7-1.7 3.2-3.6 4.3-5.8L264 217.5l0 54.5c0 17.7 14.3 32 32 32l48 0c17.7 0 32-14.3 32-32l0-54.5 26.9 49.9c1.2 2.2 2.6 4.1 4.3 5.8l-36.3 67.5c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L440 313.5l0 38.5c0 17.7 14.3 32 32 32l48 0c17.7 0 32-14.3 32-32l0-38.5 26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-37.9-70.3c-15.3-28.5-45.1-46.3-77.5-46.3l-19.5 0c-16.3 0-31.9 4.5-45.4 12.6l-33.6-62.3c-15.3-28.5-45.1-46.3-77.5-46.3l-19.5 0c-32.4 0-62.1 17.8-77.5 46.3l-33.6 62.3c-13.5-8.1-29.1-12.6-45.4-12.6l-19.5 0c-32.4 0-62.1 17.8-77.5 46.3L18.9 340.6c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L88 313.5 88 352c0 17.7 14.3 32 32 32l48 0c17.7 0 32-14.3 32-32l0-38.5z\"]\n};\nconst faBeerMugEmpty = {\n prefix: 'fas',\n iconName: 'beer-mug-empty',\n icon: [512, 512, [\"beer\"], \"f0fc\", \"M32 64c0-17.7 14.3-32 32-32l288 0c17.7 0 32 14.3 32 32l0 32 51.2 0c42.4 0 76.8 34.4 76.8 76.8l0 102.1c0 30.4-17.9 57.9-45.6 70.2L384 381.7l0 34.3c0 35.3-28.7 64-64 64L96 480c-35.3 0-64-28.7-64-64L32 64zM384 311.6l56.4-25.1c4.6-2.1 7.6-6.6 7.6-11.7l0-102.1c0-7.1-5.7-12.8-12.8-12.8L384 160l0 151.6zM160 144c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224zm64 0c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224zm64 0c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224z\"]\n};\nconst faBeer = faBeerMugEmpty;\nconst faDiagramPredecessor = {\n prefix: 'fas',\n iconName: 'diagram-predecessor',\n icon: [512, 512, [], \"e477\", \"M448 416l0-64L64 352l0 64 384 0zm0 64L64 480c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l384 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64zM288 160c0 35.3-28.7 64-64 64L64 224c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l144 0 16 0 144 0c44.2 0 80 35.8 80 80l0 16 38.1 0c21.4 0 32.1 25.9 17 41L433 239c-9.4 9.4-24.6 9.4-33.9 0L329 169c-15.1-15.1-4.4-41 17-41l38.1 0 0-16c0-8.8-7.2-16-16-16l-80 0 0 64z\"]\n};\nconst faArrowUpLong = {\n prefix: 'fas',\n iconName: 'arrow-up-long',\n icon: [384, 512, [\"long-arrow-up\"], \"f176\", \"M214.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 109.3 160 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-370.7 73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128z\"]\n};\nconst faLongArrowUp = faArrowUpLong;\nconst faFireFlameSimple = {\n prefix: 'fas',\n iconName: 'fire-flame-simple',\n icon: [384, 512, [\"burn\"], \"f46a\", \"M372.5 256.5l-.7-1.9C337.8 160.8 282 76.5 209.1 8.5l-3.3-3C202.1 2 197.1 0 192 0s-10.1 2-13.8 5.5l-3.3 3C102 76.5 46.2 160.8 12.2 254.6l-.7 1.9C3.9 277.3 0 299.4 0 321.6C0 426.7 86.8 512 192 512s192-85.3 192-190.4c0-22.2-3.9-44.2-11.5-65.1zm-90.8 49.5c4.1 9.3 6.2 19.4 6.2 29.5c0 53-43 96.5-96 96.5s-96-43.5-96-96.5c0-10.1 2.1-20.3 6.2-29.5l1.9-4.3c15.8-35.4 37.9-67.7 65.3-95.1l8.9-8.9c3.6-3.6 8.5-5.6 13.6-5.6s10 2 13.6 5.6l8.9 8.9c27.4 27.4 49.6 59.7 65.3 95.1l1.9 4.3z\"]\n};\nconst faBurn = faFireFlameSimple;\nconst faPerson = {\n prefix: 'fas',\n iconName: 'person',\n icon: [320, 512, [129485, \"male\"], \"f183\", \"M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-223.1L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6l29.7 0c33.7 0 64.9 17.7 82.3 46.6l58.3 97c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9L232 256.9 232 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0z\"]\n};\nconst faMale = faPerson;\nconst faLaptop = {\n prefix: 'fas',\n iconName: 'laptop',\n icon: [640, 512, [128187], \"f109\", \"M128 32C92.7 32 64 60.7 64 96l0 256 64 0 0-256 384 0 0 256 64 0 0-256c0-35.3-28.7-64-64-64L128 32zM19.2 384C8.6 384 0 392.6 0 403.2C0 445.6 34.4 480 76.8 480l486.4 0c42.4 0 76.8-34.4 76.8-76.8c0-10.6-8.6-19.2-19.2-19.2L19.2 384z\"]\n};\nconst faFileCsv = {\n prefix: 'fas',\n iconName: 'file-csv',\n icon: [512, 512, [], \"f6dd\", \"M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 144-208 0c-35.3 0-64 28.7-64 64l0 144-48 0c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zM200 352l16 0c22.1 0 40 17.9 40 40l0 8c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-8c0-4.4-3.6-8-8-8l-16 0c-4.4 0-8 3.6-8 8l0 80c0 4.4 3.6 8 8 8l16 0c4.4 0 8-3.6 8-8l0-8c0-8.8 7.2-16 16-16s16 7.2 16 16l0 8c0 22.1-17.9 40-40 40l-16 0c-22.1 0-40-17.9-40-40l0-80c0-22.1 17.9-40 40-40zm133.1 0l34.9 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-34.9 0c-7.2 0-13.1 5.9-13.1 13.1c0 5.2 3 9.9 7.8 12l37.4 16.6c16.3 7.2 26.8 23.4 26.8 41.2c0 24.9-20.2 45.1-45.1 45.1L304 512c-8.8 0-16-7.2-16-16s7.2-16 16-16l42.9 0c7.2 0 13.1-5.9 13.1-13.1c0-5.2-3-9.9-7.8-12l-37.4-16.6c-16.3-7.2-26.8-23.4-26.8-41.2c0-24.9 20.2-45.1 45.1-45.1zm98.9 0c8.8 0 16 7.2 16 16l0 31.6c0 23 5.5 45.6 16 66c10.5-20.3 16-42.9 16-66l0-31.6c0-8.8 7.2-16 16-16s16 7.2 16 16l0 31.6c0 34.7-10.3 68.7-29.6 97.6l-5.1 7.7c-3 4.5-8 7.1-13.3 7.1s-10.3-2.7-13.3-7.1l-5.1-7.7c-19.3-28.9-29.6-62.9-29.6-97.6l0-31.6c0-8.8 7.2-16 16-16z\"]\n};\nconst faMenorah = {\n prefix: 'fas',\n iconName: 'menorah',\n icon: [640, 512, [], \"f676\", \"M20.8 7.4C22.8 2.9 27.1 0 32 0s9.2 2.9 11.2 7.4L61.3 49.7c1.8 4.1 2.7 8.6 2.7 13.1L64 64c0 17.7-14.3 32-32 32S0 81.7 0 64l0-1.2c0-4.5 .9-8.9 2.7-13.1L20.8 7.4zm96 0C118.8 2.9 123.1 0 128 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1L116.8 7.4zm77.8 42.4L212.8 7.4C214.8 2.9 219.1 0 224 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1zM308.8 7.4C310.8 2.9 315.1 0 320 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1L308.8 7.4zm77.8 42.4L404.8 7.4C406.8 2.9 411.1 0 416 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1zM500.8 7.4C502.8 2.9 507.1 0 512 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1L500.8 7.4zm77.8 42.4L596.8 7.4C598.8 2.9 603.1 0 608 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1zM32 128c17.7 0 32 14.3 32 32l0 128c0 17.7 14.3 32 32 32l192 0 0-160c0-17.7 14.3-32 32-32s32 14.3 32 32l0 160 192 0c17.7 0 32-14.3 32-32l0-128c0-17.7 14.3-32 32-32s32 14.3 32 32l0 128c0 53-43 96-96 96l-192 0 0 64 128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-160 0-160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l128 0 0-64L96 384c-53 0-96-43-96-96L0 160c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32l0 96 0 32-64 0 0-32 0-96c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32l0 96 0 32-64 0 0-32 0-96c0-17.7 14.3-32 32-32zm192 0c17.7 0 32 14.3 32 32l0 96 0 32-64 0 0-32 0-96c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32l0 96 0 32-64 0 0-32 0-96c0-17.7 14.3-32 32-32z\"]\n};\nconst faTruckPlane = {\n prefix: 'fas',\n iconName: 'truck-plane',\n icon: [640, 512, [], \"e58f\", \"M200 0c-30.6 0-56 54.7-56 86.1l0 106.5L7.8 274.3C2.9 277.2 0 282.4 0 288l0 64c0 5.1 2.4 9.8 6.4 12.8s9.3 3.9 14.1 2.5l123.4-37 0 81.2-50 40c-3.8 3-6 7.6-6 12.5l0 32c0 5.1 2.5 10 6.6 13s9.5 3.8 14.4 2.2L200 480.9 290.4 511c-1.6-4.7-2.4-9.8-2.4-15l0-32.6c-18.2-10.5-30.7-29.7-31.9-51.8l-.1-.1 0-3.5 0-82.5L256 184l0-1.1s0 0 0 0l0-96.9C256 54.7 231.5 0 200 0zm88 176l0 224c0 20.9 13.4 38.7 32 45.3l0 42.7c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24l0-40 160 0 0 40c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24l0-42.7c18.6-6.6 32-24.4 32-45.3l0-224c0-26.5-21.5-48-48-48l-256 0c-26.5 0-48 21.5-48 48zm79.8 78.7c3.3-8.7 11.2-14.7 20.5-14.7l151.4 0c9.2 0 17.2 6 20.5 14.7L576 304l-224 0 15.8-49.3zM568 352a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM336 376a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nconst faRecordVinyl = {\n prefix: 'fas',\n iconName: 'record-vinyl',\n icon: [512, 512, [], \"f8d9\", \"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256-96a96 96 0 1 1 0 192 96 96 0 1 1 0-192zm0 224a128 128 0 1 0 0-256 128 128 0 1 0 0 256zm0-96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nconst faFaceGrinStars = {\n prefix: 'fas',\n iconName: 'face-grin-stars',\n icon: [512, 512, [129321, \"grin-stars\"], \"f587\", \"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm407.4 75.5c5-11.8-7-22.5-19.3-18.7c-39.7 12.2-84.5 19-131.8 19s-92.1-6.8-131.8-19c-12.3-3.8-24.3 6.9-19.3 18.7c25 59.1 83.2 100.5 151.1 100.5s126.2-41.4 151.1-100.5zM160 120c-3.1 0-5.9 1.8-7.2 4.6l-16.6 34.7-38.1 5c-3.1 .4-5.6 2.5-6.6 5.5s-.1 6.2 2.1 8.3l27.9 26.5-7 37.8c-.6 3 .7 6.1 3.2 7.9s5.8 2 8.5 .6L160 232.5l33.8 18.3c2.7 1.5 6 1.3 8.5-.6s3.7-4.9 3.2-7.9l-7-37.8L226.4 178c2.2-2.1 3.1-5.3 2.1-8.3s-3.5-5.1-6.6-5.5l-38.1-5-16.6-34.7c-1.3-2.8-4.1-4.6-7.2-4.6zm192 0c-3.1 0-5.9 1.8-7.2 4.6l-16.6 34.7-38.1 5c-3.1 .4-5.6 2.5-6.6 5.5s-.1 6.2 2.1 8.3l27.9 26.5-7 37.8c-.6 3 .7 6.1 3.2 7.9s5.8 2 8.5 .6L352 232.5l33.8 18.3c2.7 1.5 6 1.3 8.5-.6s3.7-4.9 3.2-7.9l-7-37.8L418.4 178c2.2-2.1 3.1-5.3 2.1-8.3s-3.5-5.1-6.6-5.5l-38.1-5-16.6-34.7c-1.3-2.8-4.1-4.6-7.2-4.6z\"]\n};\nconst faGrinStars = faFaceGrinStars;\nconst faBong = {\n prefix: 'fas',\n iconName: 'bong',\n icon: [448, 512, [], \"f55c\", \"M160 208.5c0 29.1-15.6 53.9-37.2 67.8c-17.2 11.1-31.5 26.1-41.7 43.7l221.8 0c-10.2-17.6-24.5-32.6-41.7-43.7c-21.6-13.9-37.2-38.7-37.2-67.8L224 64l-64 0 0 144.5zM288 64l0 144.5c0 5.7 3.1 10.9 7.9 14c11.2 7.2 21.5 15.5 30.9 24.8L366.1 208l-7-7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l24 24 24 24c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-7-7-43.3 43.3C374 314.1 384 347.9 384 384c0 39.4-11.9 76.1-32.2 106.5c-9.6 14.4-26.5 21.5-43.8 21.5L76.1 512c-17.3 0-34.2-7.1-43.8-21.5C11.9 460.1 0 423.4 0 384c0-67.8 35.1-127.3 88.1-161.5c4.8-3.1 7.9-8.3 7.9-14L96 64C78.3 64 64 49.7 64 32S78.3 0 96 0l16 0L272 0l16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32z\"]\n};\nconst faSpaghettiMonsterFlying = {\n prefix: 'fas',\n iconName: 'spaghetti-monster-flying',\n icon: [640, 512, [\"pastafarianism\"], \"f67b\", \"M208 64a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm48 0c0 16.2-6 31.1-16 42.3l15.6 31.2c18.7-6 39.9-9.5 64.4-9.5s45.8 3.5 64.4 9.5L400 106.3C390 95.1 384 80.2 384 64c0-35.3 28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64c-1.7 0-3.4-.1-5.1-.2L427.8 158c21.1 13.6 37.7 30.2 51.4 46.4c7.1 8.3 13.5 16.6 19.3 24l1.4 1.8c6.3 8.1 11.6 14.8 16.7 20.4C527.3 262.3 532.7 264 536 264c2.5 0 4.3-.6 7.1-3.3c3.7-3.5 7.1-8.8 12.5-17.4l.6-.9c4.6-7.4 11-17.6 19.4-25.7c9.7-9.3 22.9-16.7 40.4-16.7c13.3 0 24 10.7 24 24s-10.7 24-24 24c-2.5 0-4.3 .6-7.1 3.3c-3.7 3.5-7.1 8.8-12.5 17.4l-.6 .9c-4.6 7.4-11 17.6-19.4 25.7c-9.7 9.3-22.9 16.7-40.4 16.7c-18.5 0-32.9-8.5-44.3-18.6c-3.1 4-6.6 8.3-10.5 12.7c1.4 4.3 2.8 8.5 4 12.5c.9 3 1.8 5.8 2.6 8.6c3 9.8 5.5 18.2 8.6 25.9c3.9 9.8 7.4 15.4 10.8 18.5c2.6 2.4 5.9 4.3 12.8 4.3c8.7 0 16.9-4.2 33.7-13.2c15-8 35.7-18.8 62.3-18.8c13.3 0 24 10.7 24 24s-10.7 24-24 24c-13.4 0-24.7 5.2-39.7 13.2c-1 .6-2.1 1.1-3.2 1.7C559.9 414 541.4 424 520 424c-18.4 0-33.6-6.1-45.5-17.2c-11.1-10.3-17.9-23.7-22.7-36c-3.6-9-6.7-19.1-9.5-28.5c-16.4 12.3-36.1 23.6-58.9 31.3c3.6 10.8 8.4 23.5 14.4 36.2c7.5 15.9 16.2 30.4 25.8 40.5C433 460.5 441.2 464 448 464c13.3 0 24 10.7 24 24s-10.7 24-24 24c-25.2 0-45-13.5-59.5-28.8c-14.5-15.4-25.7-34.9-34.2-53c-8-17-14.1-33.8-18.3-46.9c-5.2 .4-10.6 .6-16 .6s-10.8-.2-16-.6c-4.2 13-10.3 29.9-18.3 46.9c-8.5 18.1-19.8 37.6-34.2 53C237 498.5 217.2 512 192 512c-13.3 0-24-10.7-24-24s10.7-24 24-24c6.8 0 15-3.5 24.5-13.7c9.5-10.1 18.3-24.6 25.8-40.5c5.9-12.6 10.7-25.4 14.4-36.2c-22.8-7.7-42.5-19-58.9-31.3c-2.9 9.4-6 19.5-9.5 28.5c-4.8 12.2-11.6 25.6-22.7 36C153.6 417.9 138.4 424 120 424c-21.4 0-39.9-10-53.1-17.1c0 0 0 0 0 0c-1.1-.6-2.2-1.2-3.2-1.7c-15-8-26.3-13.2-39.7-13.2c-13.3 0-24-10.7-24-24s10.7-24 24-24c26.6 0 47.3 10.8 62.3 18.8c16.8 9 25 13.2 33.7 13.2c6.8 0 10.2-1.9 12.8-4.3c3.4-3.2 7-8.8 10.8-18.5c3-7.7 5.6-16.1 8.6-25.9c.8-2.7 1.7-5.6 2.6-8.6c1.2-4 2.6-8.2 4-12.5c-3.9-4.5-7.4-8.8-10.5-12.7C136.9 303.5 122.5 312 104 312c-17.5 0-30.7-7.4-40.4-16.7c-8.4-8.1-14.8-18.3-19.4-25.7l-.6-.9c-5.4-8.6-8.8-13.9-12.5-17.4c-2.8-2.7-4.6-3.3-7.1-3.3c-13.3 0-24-10.7-24-24s10.7-24 24-24c17.5 0 30.7 7.4 40.4 16.7c8.4 8.1 14.8 18.3 19.4 25.7l.6 .9c5.4 8.6 8.8 13.9 12.5 17.4c2.8 2.7 4.6 3.3 7.1 3.3c3.3 0 8.7-1.7 19.4-13.4c5.1-5.6 10.4-12.3 16.7-20.4l1.4-1.8c5.8-7.4 12.2-15.7 19.3-24c13.8-16.2 30.3-32.8 51.4-46.4l-15.1-30.2c-1.7 .1-3.4 .2-5.1 .2c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zm208 0a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z\"]\n};\nconst faPastafarianism = faSpaghettiMonsterFlying;\nconst faArrowDownUpAcrossLine = {\n prefix: 'fas',\n iconName: 'arrow-down-up-across-line',\n icon: [576, 512, [], \"e4af\", \"M137.4 502.6c12.5 12.5 32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 402.7 192 288l352 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0 0-114.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L384 109.3 384 224l-192 0-64 0-96 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0 0 114.7L86.6 361.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96zM128 192l64 0 0-128c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 128zM448 320l-64 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128z\"]\n};\nconst faSpoon = {\n prefix: 'fas',\n iconName: 'spoon',\n icon: [512, 512, [129348, 61873, \"utensil-spoon\"], \"f2e5\", \"M245.8 220.9c-14.5-17.6-21.8-39.2-21.8-60.8C224 80 320 0 416 0c53 0 96 43 96 96c0 96-80 192-160.2 192c-21.6 0-43.2-7.3-60.8-21.8L54.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L245.8 220.9z\"]\n};\nconst faUtensilSpoon = faSpoon;\nconst faJarWheat = {\n prefix: 'fas',\n iconName: 'jar-wheat',\n icon: [320, 512, [], \"e517\", \"M32 32C32 14.3 46.3 0 64 0L256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 64C46.3 64 32 49.7 32 32zM0 160c0-35.3 28.7-64 64-64l192 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 160zm112 0l-42.2 0c-3.2 0-5.8 2.6-5.8 5.8C64 198 90 224 122.2 224l21.8 0 32 0 21.8 0c32.1 0 58.2-26 58.2-58.2c0-3.2-2.6-5.8-5.8-5.8L208 160c-19.1 0-36.3 8.4-48 21.7c-11.7-13.3-28.9-21.7-48-21.7zm48 117.7c-11.7-13.3-28.9-21.7-48-21.7l-42.2 0c-3.2 0-5.8 2.6-5.8 5.8C64 294 90 320 122.2 320l21.8 0 32 0 21.8 0c32.1 0 58.2-26 58.2-58.2c0-3.2-2.6-5.8-5.8-5.8L208 256c-19.1 0-36.3 8.4-48 21.7zM112 352l-42.2 0c-3.2 0-5.8 2.6-5.8 5.8C64 390 90 416 122.2 416l21.8 0 0 32c0 8.8 7.2 16 16 16s16-7.2 16-16l0-32 21.8 0c32.1 0 58.2-26 58.2-58.2c0-3.2-2.6-5.8-5.8-5.8L208 352c-19.1 0-36.3 8.4-48 21.7c-11.7-13.3-28.9-21.7-48-21.7z\"]\n};\nconst faEnvelopesBulk = {\n prefix: 'fas',\n iconName: 'envelopes-bulk',\n icon: [640, 512, [\"mail-bulk\"], \"f674\", \"M128 0C110.3 0 96 14.3 96 32l0 192 96 0 0-32c0-35.3 28.7-64 64-64l224 0 0-96c0-17.7-14.3-32-32-32L128 0zM256 160c-17.7 0-32 14.3-32 32l0 32 96 0c35.3 0 64 28.7 64 64l0 128 192 0c17.7 0 32-14.3 32-32l0-192c0-17.7-14.3-32-32-32l-320 0zm240 64l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM64 256c-17.7 0-32 14.3-32 32l0 13L187.1 415.9c1.4 1 3.1 1.6 4.9 1.6s3.5-.6 4.9-1.6L352 301l0-13c0-17.7-14.3-32-32-32L64 256zm288 84.8L216 441.6c-6.9 5.1-15.3 7.9-24 7.9s-17-2.8-24-7.9L32 340.8 32 480c0 17.7 14.3 32 32 32l256 0c17.7 0 32-14.3 32-32l0-139.2z\"]\n};\nconst faMailBulk = faEnvelopesBulk;\nconst faFileCircleExclamation = {\n prefix: 'fas',\n iconName: 'file-circle-exclamation',\n icon: [576, 512, [], \"e4eb\", \"M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zm48 96a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 240a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm0-192c-8.8 0-16 7.2-16 16l0 80c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80c0-8.8-7.2-16-16-16z\"]\n};\nconst faCircleH = {\n prefix: 'fas',\n iconName: 'circle-h',\n icon: [512, 512, [9405, \"hospital-symbol\"], \"f47e\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM368 152l0 104 0 104c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-80-128 0 0 80c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-208c0-13.3 10.7-24 24-24s24 10.7 24 24l0 80 128 0 0-80c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nconst faHospitalSymbol = faCircleH;\nconst faPager = {\n prefix: 'fas',\n iconName: 'pager',\n icon: [512, 512, [128223], \"f815\", \"M0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zm64 32l0 64c0 17.7 14.3 32 32 32l320 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32L96 128c-17.7 0-32 14.3-32 32zM80 320c-13.3 0-24 10.7-24 24s10.7 24 24 24l56 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-56 0zm136 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0z\"]\n};\nconst faAddressBook = {\n prefix: 'fas',\n iconName: 'address-book',\n icon: [512, 512, [62138, \"contact-book\"], \"f2b9\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l288 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L96 0zM208 288l64 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm-32-96a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM512 80c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64zM496 192c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8-7.2-16-16-16zm16 144c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64z\"]\n};\nconst faContactBook = faAddressBook;\nconst faStrikethrough = {\n prefix: 'fas',\n iconName: 'strikethrough',\n icon: [512, 512, [], \"f0cc\", \"M161.3 144c3.2-17.2 14-30.1 33.7-38.6c21.1-9 51.8-12.3 88.6-6.5c11.9 1.9 48.8 9.1 60.1 12c17.1 4.5 34.6-5.6 39.2-22.7s-5.6-34.6-22.7-39.2c-14.3-3.8-53.6-11.4-66.6-13.4c-44.7-7-88.3-4.2-123.7 10.9c-36.5 15.6-64.4 44.8-71.8 87.3c-.1 .6-.2 1.1-.2 1.7c-2.8 23.9 .5 45.6 10.1 64.6c4.5 9 10.2 16.9 16.7 23.9L32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l448 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-209.9 0-.4-.1-1.1-.3c-36-10.8-65.2-19.6-85.2-33.1c-9.3-6.3-15-12.6-18.2-19.1c-3.1-6.1-5.2-14.6-3.8-27.4zM348.9 337.2c2.7 6.5 4.4 15.8 1.9 30.1c-3 17.6-13.8 30.8-33.9 39.4c-21.1 9-51.7 12.3-88.5 6.5c-18-2.9-49.1-13.5-74.4-22.1c-5.6-1.9-11-3.7-15.9-5.4c-16.8-5.6-34.9 3.5-40.5 20.3s3.5 34.9 20.3 40.5c3.6 1.2 7.9 2.7 12.7 4.3c0 0 0 0 0 0s0 0 0 0c24.9 8.5 63.6 21.7 87.6 25.6c0 0 0 0 0 0l.2 0c44.7 7 88.3 4.2 123.7-10.9c36.5-15.6 64.4-44.8 71.8-87.3c3.6-21 2.7-40.4-3.1-58.1l-75.7 0c7 5.6 11.4 11.2 13.9 17.2z\"]\n};\nconst faK = {\n prefix: 'fas',\n iconName: 'k',\n icon: [320, 512, [107], \"4b\", \"M311 86.3c12.3-12.7 12-32.9-.7-45.2s-32.9-12-45.2 .7l-155.2 160L64 249 64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 328 0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-107 64.7-66.7 133 192c10.1 14.5 30 18.1 44.5 8.1s18.1-30 8.1-44.5L174.1 227.4 311 86.3z\"]\n};\nconst faLandmarkFlag = {\n prefix: 'fas',\n iconName: 'landmark-flag',\n icon: [512, 512, [], \"e51c\", \"M272 0l80 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-80 0 0 32 192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L48 192c-17.7 0-32-14.3-32-32s14.3-32 32-32l192 0 0-112c0-8.8 7.2-16 16-16l16 0zM64 224l64 0 0 192 40 0 0-192 64 0 0 192 48 0 0-192 64 0 0 192 40 0 0-192 64 0 0 196.3c.6 .3 1.2 .7 1.8 1.1l48 32c11.7 7.8 17 22.4 12.9 35.9S494.1 512 480 512L32 512c-14.1 0-26.5-9.2-30.6-22.7s1.1-28.1 12.9-35.9l48-32c.6-.4 1.2-.7 1.8-1.1L64 224z\"]\n};\nconst faPencil = {\n prefix: 'fas',\n iconName: 'pencil',\n icon: [512, 512, [9999, 61504, \"pencil-alt\"], \"f303\", \"M410.3 231l11.3-11.3-33.9-33.9-62.1-62.1L291.7 89.8l-11.3 11.3-22.6 22.6L58.6 322.9c-10.4 10.4-18 23.3-22.2 37.4L1 480.7c-2.5 8.4-.2 17.5 6.1 23.7s15.3 8.5 23.7 6.1l120.3-35.4c14.1-4.2 27-11.8 37.4-22.2L387.7 253.7 410.3 231zM160 399.4l-9.1 22.7c-4 3.1-8.5 5.4-13.3 6.9L59.4 452l23-78.1c1.4-4.9 3.8-9.4 6.9-13.3l22.7-9.1 0 32c0 8.8 7.2 16 16 16l32 0zM362.7 18.7L348.3 33.2 325.7 55.8 314.3 67.1l33.9 33.9 62.1 62.1 33.9 33.9 11.3-11.3 22.6-22.6 14.5-14.5c25-25 25-65.5 0-90.5L453.3 18.7c-25-25-65.5-25-90.5 0zm-47.4 168l-144 144c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l144-144c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nconst faPencilAlt = faPencil;\nconst faBackward = {\n prefix: 'fas',\n iconName: 'backward',\n icon: [512, 512, [9194], \"f04a\", \"M459.5 440.6c9.5 7.9 22.8 9.7 34.1 4.4s18.4-16.6 18.4-29l0-320c0-12.4-7.2-23.7-18.4-29s-24.5-3.6-34.1 4.4L288 214.3l0 41.7 0 41.7L459.5 440.6zM256 352l0-96 0-128 0-32c0-12.4-7.2-23.7-18.4-29s-24.5-3.6-34.1 4.4l-192 160C4.2 237.5 0 246.5 0 256s4.2 18.5 11.5 24.6l192 160c9.5 7.9 22.8 9.7 34.1 4.4s18.4-16.6 18.4-29l0-64z\"]\n};\nconst faCaretRight = {\n prefix: 'fas',\n iconName: 'caret-right',\n icon: [256, 512, [], \"f0da\", \"M246.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-9.2-9.2-22.9-11.9-34.9-6.9s-19.8 16.6-19.8 29.6l0 256c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l128-128z\"]\n};\nconst faComments = {\n prefix: 'fas',\n iconName: 'comments',\n icon: [640, 512, [128490, 61670], \"f086\", \"M208 352c114.9 0 208-78.8 208-176S322.9 0 208 0S0 78.8 0 176c0 38.6 14.7 74.3 39.6 103.4c-3.5 9.4-8.7 17.7-14.2 24.7c-4.8 6.2-9.7 11-13.3 14.3c-1.8 1.6-3.3 2.9-4.3 3.7c-.5 .4-.9 .7-1.1 .8l-.2 .2s0 0 0 0s0 0 0 0C1 327.2-1.4 334.4 .8 340.9S9.1 352 16 352c21.8 0 43.8-5.6 62.1-12.5c9.2-3.5 17.8-7.4 25.2-11.4C134.1 343.3 169.8 352 208 352zM448 176c0 112.3-99.1 196.9-216.5 207C255.8 457.4 336.4 512 432 512c38.2 0 73.9-8.7 104.7-23.9c7.5 4 16 7.9 25.2 11.4c18.3 6.9 40.3 12.5 62.1 12.5c6.9 0 13.1-4.5 15.2-11.1c2.1-6.6-.2-13.8-5.8-17.9c0 0 0 0 0 0s0 0 0 0l-.2-.2c-.2-.2-.6-.4-1.1-.8c-1-.8-2.5-2-4.3-3.7c-3.6-3.3-8.5-8.1-13.3-14.3c-5.5-7-10.7-15.4-14.2-24.7c24.9-29 39.6-64.7 39.6-103.4c0-92.8-84.9-168.9-192.6-175.5c.4 5.1 .6 10.3 .6 15.5z\"]\n};\nconst faPaste = {\n prefix: 'fas',\n iconName: 'paste',\n icon: [512, 512, [\"file-clipboard\"], \"f0ea\", \"M160 0c-23.7 0-44.4 12.9-55.4 32L48 32C21.5 32 0 53.5 0 80L0 400c0 26.5 21.5 48 48 48l144 0 0-272c0-44.2 35.8-80 80-80l48 0 0-16c0-26.5-21.5-48-48-48l-56.6 0C204.4 12.9 183.7 0 160 0zM272 128c-26.5 0-48 21.5-48 48l0 272 0 16c0 26.5 21.5 48 48 48l192 0c26.5 0 48-21.5 48-48l0-220.1c0-12.7-5.1-24.9-14.1-33.9l-67.9-67.9c-9-9-21.2-14.1-33.9-14.1L320 128l-48 0zM160 40a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nconst faFileClipboard = faPaste;\nconst faCodePullRequest = {\n prefix: 'fas',\n iconName: 'code-pull-request',\n icon: [512, 512, [], \"e13c\", \"M305.8 2.1C314.4 5.9 320 14.5 320 24l0 40 16 0c70.7 0 128 57.3 128 128l0 166.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3L400 192c0-35.3-28.7-64-64-64l-16 0 0 40c0 9.5-5.6 18.1-14.2 21.9s-18.8 2.3-25.8-4.1l-80-72c-5.1-4.6-7.9-11-7.9-17.8s2.9-13.3 7.9-17.8l80-72c7-6.3 17.2-7.9 25.8-4.1zM104 80A24 24 0 1 0 56 80a24 24 0 1 0 48 0zm8 73.3l0 205.3c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3l0-205.3C19.7 141 0 112.8 0 80C0 35.8 35.8 0 80 0s80 35.8 80 80c0 32.8-19.7 61-48 73.3zM104 432a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm328 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nconst faClipboardList = {\n prefix: 'fas',\n iconName: 'clipboard-list',\n icon: [384, 512, [], \"f46d\", \"M192 0c-41.8 0-77.4 26.7-90.5 64L64 64C28.7 64 0 92.7 0 128L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64l-37.5 0C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM72 272a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm104-16l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zM72 368a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm88 0c0-8.8 7.2-16 16-16l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16z\"]\n};\nconst faTruckRampBox = {\n prefix: 'fas',\n iconName: 'truck-ramp-box',\n icon: [640, 512, [\"truck-loading\"], \"f4de\", \"M640 0l0 400c0 61.9-50.1 112-112 112c-61 0-110.5-48.7-112-109.3L48.4 502.9c-17.1 4.6-34.6-5.4-39.3-22.5s5.4-34.6 22.5-39.3L352 353.8 352 64c0-35.3 28.7-64 64-64L640 0zM576 400a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM23.1 207.7c-4.6-17.1 5.6-34.6 22.6-39.2l46.4-12.4 20.7 77.3c2.3 8.5 11.1 13.6 19.6 11.3l30.9-8.3c8.5-2.3 13.6-11.1 11.3-19.6l-20.7-77.3 46.4-12.4c17.1-4.6 34.6 5.6 39.2 22.6l41.4 154.5c4.6 17.1-5.6 34.6-22.6 39.2L103.7 384.9c-17.1 4.6-34.6-5.6-39.2-22.6L23.1 207.7z\"]\n};\nconst faTruckLoading = faTruckRampBox;\nconst faUserCheck = {\n prefix: 'fas',\n iconName: 'user-check',\n icon: [640, 512, [], \"f4fc\", \"M96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM0 482.3C0 383.8 79.8 304 178.3 304l91.4 0C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7L29.7 512C13.3 512 0 498.7 0 482.3zM625 177L497 305c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L591 143c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\"]\n};\nconst faVialVirus = {\n prefix: 'fas',\n iconName: 'vial-virus',\n icon: [512, 512, [], \"e597\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l0 288c0 53 43 96 96 96c28.6 0 54.2-12.5 71.8-32.3c.1-14.2 5.6-28.3 16.4-39.1c.2-.2 .1-.6-.2-.6c-30.9 0-56-25.1-56-56s25.1-56 56-56c.3 0 .4-.4 .2-.6c-21.9-21.9-21.9-57.3 0-79.2c2.4-2.4 5-4.6 7.8-6.5L224 96c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0L96 32 32 32zM96 192l0-96 64 0 0 96-64 0zM216 376c28.8 0 43.2 34.8 22.9 55.2c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0c20.4-20.4 55.2-5.9 55.2 22.9c0 13.3 10.7 24 24 24s24-10.7 24-24c0-28.8 34.8-43.2 55.2-22.9c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9C444.8 410.8 459.2 376 488 376c13.3 0 24-10.7 24-24s-10.7-24-24-24c-28.8 0-43.2-34.8-22.9-55.2c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0C410.8 259.2 376 244.8 376 216c0-13.3-10.7-24-24-24s-24 10.7-24 24c0 28.8-34.8 43.2-55.2 22.9c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9c20.4 20.4 5.9 55.2-22.9 55.2c-13.3 0-24 10.7-24 24s10.7 24 24 24zm104-88a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm40 96a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nconst faSheetPlastic = {\n prefix: 'fas',\n iconName: 'sheet-plastic',\n icon: [384, 512, [], \"e571\", \"M0 448c0 35.3 28.7 64 64 64l160 0 0-128c0-17.7 14.3-32 32-32l128 0 0-288c0-35.3-28.7-64-64-64L64 0C28.7 0 0 28.7 0 64L0 448zM171.3 75.3l-96 96c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l96-96c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6zm96 32l-160 160c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l160-160c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6zM384 384l-128 0 0 128L384 384z\"]\n};\nconst faBlog = {\n prefix: 'fas',\n iconName: 'blog',\n icon: [512, 512, [], \"f781\", \"M192 32c0 17.7 14.3 32 32 32c123.7 0 224 100.3 224 224c0 17.7 14.3 32 32 32s32-14.3 32-32C512 128.9 383.1 0 224 0c-17.7 0-32 14.3-32 32zm0 96c0 17.7 14.3 32 32 32c70.7 0 128 57.3 128 128c0 17.7 14.3 32 32 32s32-14.3 32-32c0-106-86-192-192-192c-17.7 0-32 14.3-32 32zM96 144c0-26.5-21.5-48-48-48S0 117.5 0 144L0 368c0 79.5 64.5 144 144 144s144-64.5 144-144s-64.5-144-144-144l-16 0 0 96 16 0c26.5 0 48 21.5 48 48s-21.5 48-48 48s-48-21.5-48-48l0-224z\"]\n};\nconst faUserNinja = {\n prefix: 'fas',\n iconName: 'user-ninja',\n icon: [448, 512, [129399], \"f504\", \"M224 256c-57.2 0-105.6-37.5-122-89.3c-1.1 1.3-2.2 2.6-3.5 3.8c-15.8 15.8-38.8 20.7-53.6 22.1c-8.1 .8-14.6-5.7-13.8-13.8c1.4-14.7 6.3-37.8 22.1-53.6c5.8-5.8 12.6-10.1 19.6-13.4c-7-3.2-13.8-7.6-19.6-13.4C37.4 82.7 32.6 59.7 31.1 44.9c-.8-8.1 5.7-14.6 13.8-13.8c14.7 1.4 37.8 6.3 53.6 22.1c4.8 4.8 8.7 10.4 11.7 16.1C131.4 28.2 174.4 0 224 0c70.7 0 128 57.3 128 128s-57.3 128-128 128zM0 482.3C0 399.5 56.4 330 132.8 309.9c6-1.6 12.2 .9 15.9 5.8l62.5 83.3c6.4 8.5 19.2 8.5 25.6 0l62.5-83.3c3.7-4.9 9.9-7.4 15.9-5.8C391.6 330 448 399.5 448 482.3c0 16.4-13.3 29.7-29.7 29.7L29.7 512C13.3 512 0 498.7 0 482.3zM160 96c-8.8 0-16 7.2-16 16s7.2 16 16 16l128 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L160 96z\"]\n};\nconst faPersonArrowUpFromLine = {\n prefix: 'fas',\n iconName: 'person-arrow-up-from-line',\n icon: [640, 512, [], \"e539\", \"M192 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-8 352l0-96 16 0 0 96-16 0zm-64 0l-88 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l120 0 80 0 376 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-344 0 0-191.1 28.6 47.5c9.1 15.1 28.8 20 43.9 10.9s20-28.8 10.9-43.9l-58.3-97c-17.4-28.9-48.6-46.6-82.3-46.6l-29.7 0c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L120 256.9 120 448zM598.6 121.4l-80-80c-12.5-12.5-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L464 141.3 464 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-242.7 25.4 25.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3z\"]\n};\nconst faScrollTorah = {\n prefix: 'fas',\n iconName: 'scroll-torah',\n icon: [640, 512, [\"torah\"], \"f6a0\", \"M96 480L96 32C96 14.3 74.5 0 48 0S0 14.3 0 32L0 480c0 17.7 21.5 32 48 32s48-14.3 48-32zM512 32L128 32l0 448 384 0 0-448zM592 0c-26.5 0-48 14.3-48 32l0 448c0 17.7 21.5 32 48 32s48-14.3 48-32l0-448c0-17.7-21.5-32-48-32zM196 313.7c0-3.2 .9-6.4 2.5-9.2L226.7 256l-28.3-48.5c-1.6-2.8-2.5-6-2.5-9.2c0-10.1 8.2-18.3 18.3-18.3l56.7 0 31.4-53.9c3.6-6.3 10.3-10.1 17.6-10.1s13.9 3.8 17.6 10.1L369 180l56.7 0c10.1 0 18.3 8.2 18.3 18.3c0 3.2-.9 6.4-2.5 9.2L413.3 256l28.3 48.5c1.6 2.8 2.5 6 2.5 9.2c0 10.1-8.2 18.3-18.3 18.3L369 332l-31.4 53.9c-3.6 6.3-10.3 10.1-17.6 10.1s-13.9-3.8-17.6-10.1L271 332l-56.7 0c-10.1 0-18.3-8.2-18.3-18.3zm124 54.7L341.2 332l-42.4 0L320 368.4zM254.5 256l30.3 52 70.4 0 30.3-52-30.3-52-70.4 0-30.3 52zm144.9 23.8L383 308l32.8 0-16.4-28.2zM415.8 204L383 204l16.4 28.2L415.8 204zM320 143.6L298.8 180l42.4 0L320 143.6zM224.2 204l16.4 28.2L257 204l-32.8 0zM257 308l-16.4-28.2L224.2 308l32.8 0z\"]\n};\nconst faTorah = faScrollTorah;\nconst faBroomBall = {\n prefix: 'fas',\n iconName: 'broom-ball',\n icon: [576, 512, [\"quidditch\", \"quidditch-broom-ball\"], \"f458\", \"M566.6 9.4c12.5 12.5 12.5 32.8 0 45.3l-192 192 34.7 34.7c4.2 4.2 6.6 10 6.6 16c0 12.5-10.1 22.6-22.6 22.6l-29.1 0L256 211.7l0-29.1c0-12.5 10.1-22.6 22.6-22.6c6 0 11.8 2.4 16 6.6l34.7 34.7 192-192c12.5-12.5 32.8-12.5 45.3 0zm-344 225.5L341.1 353.4c3.7 42.7-11.7 85.2-42.3 115.8C271.4 496.6 234.2 512 195.5 512L22.1 512C9.9 512 0 502.1 0 489.9c0-6.3 2.7-12.3 7.3-16.5L133.7 359.7c4.2-3.7-.4-10.4-5.4-7.9L77.2 377.4c-6.1 3-13.2-1.4-13.2-8.2c0-31.5 12.5-61.7 34.8-84l8-8c30.6-30.6 73.1-45.9 115.8-42.3zM464 352a80 80 0 1 1 0 160 80 80 0 1 1 0-160z\"]\n};\nconst faQuidditch = faBroomBall;\nconst faQuidditchBroomBall = faBroomBall;\nconst faToggleOff = {\n prefix: 'fas',\n iconName: 'toggle-off',\n icon: [576, 512, [], \"f204\", \"M384 128c70.7 0 128 57.3 128 128s-57.3 128-128 128l-192 0c-70.7 0-128-57.3-128-128s57.3-128 128-128l192 0zM576 256c0-106-86-192-192-192L192 64C86 64 0 150 0 256S86 448 192 448l192 0c106 0 192-86 192-192zM192 352a96 96 0 1 0 0-192 96 96 0 1 0 0 192z\"]\n};\nconst faBoxArchive = {\n prefix: 'fas',\n iconName: 'box-archive',\n icon: [512, 512, [\"archive\"], \"f187\", \"M32 32l448 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L32 128C14.3 128 0 113.7 0 96L0 64C0 46.3 14.3 32 32 32zm0 128l448 0 0 256c0 35.3-28.7 64-64 64L96 480c-35.3 0-64-28.7-64-64l0-256zm128 80c0 8.8 7.2 16 16 16l160 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-160 0c-8.8 0-16 7.2-16 16z\"]\n};\nconst faArchive = faBoxArchive;\nconst faPersonDrowning = {\n prefix: 'fas',\n iconName: 'person-drowning',\n icon: [576, 512, [], \"e545\", \"M192 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 32.2c0 54.1 23.5 104 62.2 138.3l-21 146.7c7.8 2.1 15.5 3.3 22.8 3.3c21.1 0 42-8.5 59.2-20.3c22.1-15.5 51.6-15.5 73.7 0c12.4 8.5 26.1 14.8 39.7 18l17.7-97.6c10.7-1.2 21.3-3.1 31.9-5.5l105-23.9c17.2-3.9 28-21.1 24.1-38.3s-21.1-28-38.3-24.1L400 216.6c-41 9.3-83.7 7.5-123.7-5.2c-50.2-16-84.3-62.6-84.3-115.3L192 64zM320 192a64 64 0 1 0 0-128 64 64 0 1 0 0 128zM306.5 389.9c-11.1-7.9-25.9-7.9-37 0C247 405.4 219.5 416 192 416c-26.9 0-55.3-10.8-77.4-26.1c0 0 0 0 0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 469.7 159 480 192 480c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7c0 0 0 0 0 0C439.4 405.2 410.9 416 384 416c-27.5 0-55-10.6-77.5-26.1z\"]\n};\nconst faArrowDown91 = {\n prefix: 'fas',\n iconName: 'arrow-down-9-1',\n icon: [576, 512, [\"sort-numeric-desc\", \"sort-numeric-down-alt\"], \"f886\", \"M160 480c9 0 17.5-3.8 23.6-10.4l88-96c11.9-13 11.1-33.3-2-45.2s-33.3-11.1-45.2 2L192 365.7 192 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 301.7L95.6 330.4c-11.9-13-32.2-13.9-45.2-2s-13.9 32.2-2 45.2l88 96C142.5 476.2 151 480 160 480zM450.7 294c-8.3-6-19.1-7.7-28.8-4.4l-48 16c-16.8 5.6-25.8 23.7-20.2 40.5s23.7 25.8 40.5 20.2l5.9-2 0 51.6-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l48 0 48 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-16 0 0-96c0-10.3-4.9-19.9-13.3-26zM418.3 91a32 32 0 1 1 27.4 57.9A32 32 0 1 1 418.3 91zM405.1 203.8l-6.8 9.2c-10.5 14.2-7.5 34.2 6.7 44.8s34.2 7.5 44.8-6.7l48.8-65.8c14-18.9 21.5-41.7 21.5-65.2c0-48.6-39.4-88-88-88s-88 39.4-88 88c0 39.2 25.6 72.4 61.1 83.8z\"]\n};\nconst faSortNumericDesc = faArrowDown91;\nconst faSortNumericDownAlt = faArrowDown91;\nconst faFaceGrinTongueSquint = {\n prefix: 'fas',\n iconName: 'face-grin-tongue-squint',\n icon: [512, 512, [128541, \"grin-tongue-squint\"], \"f58a\", \"M0 256C0 368.9 73.1 464.7 174.5 498.8C165.3 484 160 466.6 160 448l0-47.3c-24-17.5-43.1-41.4-54.8-69.2c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19c12.3-3.8 24.3 6.9 19.3 18.7c-11.8 28-31.1 52-55.4 69.6l0 46.9c0 18.6-5.3 36-14.5 50.8C438.9 464.7 512 368.9 512 256C512 114.6 397.4 0 256 0S0 114.6 0 256zM116 141.1c0-9 9.6-14.7 17.5-10.5l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6zm262.5-10.5c7.9-4.2 17.5 1.5 17.5 10.5c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9zM320 448l0-45.4c0-14.7-11.9-26.6-26.6-26.6l-2 0c-11.3 0-21.1 7.9-23.6 18.9c-2.8 12.6-20.8 12.6-23.6 0c-2.5-11.1-12.3-18.9-23.6-18.9l-2 0c-14.7 0-26.6 11.9-26.6 26.6l0 45.4c0 35.3 28.7 64 64 64s64-28.7 64-64z\"]\n};\nconst faGrinTongueSquint = faFaceGrinTongueSquint;\nconst faSprayCan = {\n prefix: 'fas',\n iconName: 'spray-can',\n icon: [512, 512, [], \"f5bd\", \"M128 0l64 0c17.7 0 32 14.3 32 32l0 96L96 128l0-96c0-17.7 14.3-32 32-32zM0 256c0-53 43-96 96-96l128 0c53 0 96 43 96 96l0 208c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 256zm240 80A80 80 0 1 0 80 336a80 80 0 1 0 160 0zM256 64a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM384 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM448 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM384 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nconst faTruckMonster = {\n prefix: 'fas',\n iconName: 'truck-monster',\n icon: [640, 512, [], \"f63b\", \"M288 64l0 64 128 0L368 64l-80 0zM419.2 25.6L496 128l80 0c17.7 0 32 14.3 32 32l0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32c-29.2-38.9-75.7-64-128-64s-98.8 25.1-128 64l-64 0c-29.2-38.9-75.7-64-128-64s-98.8 25.1-128 64c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-64c0-17.7 14.3-32 32-32l160 0 0-80c0-26.5 21.5-48 48-48l96 0c20.1 0 39.1 9.5 51.2 25.6zM152 256l16 0c12.1 0 22.1 8.9 23.8 20.6c7.6 2.2 14.9 5.3 21.7 9c9.4-7 22.8-6.3 31.3 2.3l11.3 11.3c8.6 8.6 9.3 21.9 2.3 31.3c3.7 6.8 6.8 14.1 9 21.7c11.6 1.7 20.6 11.7 20.6 23.8l0 16c0 12.1-8.9 22.1-20.6 23.8c-2.2 7.6-5.3 14.9-9 21.7c7 9.4 6.3 22.8-2.3 31.3l-11.3 11.3c-8.6 8.6-21.9 9.3-31.3 2.2c-6.8 3.7-14.1 6.8-21.7 9C190.1 503.1 180.1 512 168 512l-16 0c-12.1 0-22.1-8.9-23.8-20.6c-7.6-2.2-14.9-5.3-21.7-9c-9.4 7.1-22.8 6.3-31.3-2.2L63.8 468.9c-8.6-8.6-9.3-21.9-2.3-31.3c-3.7-6.9-6.8-14.1-9-21.8C40.9 414.1 32 404.1 32 392l0-16c0-12.1 8.9-22.1 20.6-23.8c2.2-7.6 5.3-14.9 9-21.8c-7-9.4-6.3-22.8 2.3-31.3l11.3-11.3c8.6-8.6 21.9-9.3 31.3-2.3c6.8-3.7 14.1-6.8 21.7-9c1.7-11.6 11.7-20.6 23.8-20.6zm8 176a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM448.2 276.6c1.7-11.6 11.7-20.6 23.8-20.6l16 0c12.1 0 22.1 8.9 23.8 20.6c7.6 2.2 14.9 5.3 21.8 9c9.4-7 22.8-6.3 31.3 2.3l11.3 11.3c8.6 8.6 9.3 21.9 2.2 31.3c3.7 6.8 6.8 14.1 9 21.7c11.6 1.7 20.6 11.7 20.6 23.8l0 16c0 12.1-8.9 22.1-20.6 23.8c-2.2 7.6-5.3 14.9-9 21.7c7 9.4 6.3 22.8-2.2 31.3l-11.3 11.3c-8.6 8.6-21.9 9.3-31.3 2.2c-6.9 3.7-14.1 6.8-21.8 9C510.1 503.1 500.1 512 488 512l-16 0c-12.1 0-22.1-8.9-23.8-20.6c-7.6-2.2-14.9-5.3-21.7-9c-9.4 7.1-22.8 6.3-31.3-2.2l-11.3-11.3c-8.6-8.6-9.3-21.9-2.2-31.3c-3.7-6.9-6.8-14.1-9-21.8C360.9 414.1 352 404.1 352 392l0-16c0-12.1 8.9-22.1 20.6-23.8c2.2-7.6 5.3-14.9 9-21.8c-7-9.4-6.3-22.8 2.2-31.3l11.3-11.3c8.6-8.6 21.9-9.3 31.3-2.3c6.8-3.7 14.1-6.8 21.7-9zM528 384a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"]\n};\nconst faW = {\n prefix: 'fas',\n iconName: 'w',\n icon: [576, 512, [119], \"57\", \"M20.8 34c16.5-6.2 35 2.2 41.2 18.7l110.2 294L257.3 55c4-13.7 16.5-23 30.7-23s26.7 9.4 30.7 23l85.1 291.7L514 52.8c6.2-16.5 24.6-24.9 41.2-18.7s24.9 24.7 18.7 41.2l-144 384c-4.8 12.9-17.4 21.3-31.2 20.7s-25.7-9.8-29.5-23L288 178.3 206.7 457c-3.9 13.2-15.8 22.5-29.5 23s-26.3-7.8-31.2-20.7L2 75.2C-4.2 58.7 4.2 40.2 20.8 34z\"]\n};\nconst faEarthAfrica = {\n prefix: 'fas',\n iconName: 'earth-africa',\n icon: [512, 512, [127757, \"globe-africa\"], \"f57c\", \"M177.8 63.2l10 17.4c2.8 4.8 4.2 10.3 4.2 15.9l0 41.4c0 3.9 1.6 7.7 4.3 10.4c6.2 6.2 16.5 5.7 22-1.2l13.6-17c4.7-5.9 12.9-7.7 19.6-4.3l15.2 7.6c3.4 1.7 7.2 2.6 11 2.6c6.5 0 12.8-2.6 17.4-7.2l3.9-3.9c2.9-2.9 7.3-3.6 11-1.8l29.2 14.6c7.8 3.9 12.6 11.8 12.6 20.5c0 10.5-7.1 19.6-17.3 22.2l-35.4 8.8c-7.4 1.8-15.1 1.5-22.4-.9l-32-10.7c-3.3-1.1-6.7-1.7-10.2-1.7c-7 0-13.8 2.3-19.4 6.5L176 212c-10.1 7.6-16 19.4-16 32l0 28c0 26.5 21.5 48 48 48l32 0c8.8 0 16 7.2 16 16l0 48c0 17.7 14.3 32 32 32c10.1 0 19.6-4.7 25.6-12.8l25.6-34.1c8.3-11.1 12.8-24.6 12.8-38.4l0-12.1c0-3.9 2.6-7.3 6.4-8.2l5.3-1.3c11.9-3 20.3-13.7 20.3-26c0-7.1-2.8-13.9-7.8-18.9l-33.5-33.5c-3.7-3.7-3.7-9.7 0-13.4c5.7-5.7 14.1-7.7 21.8-5.1l14.1 4.7c12.3 4.1 25.7-1.5 31.5-13c3.5-7 11.2-10.8 18.9-9.2l27.4 5.5C432 112.4 351.5 48 256 48c-27.7 0-54 5.4-78.2 15.2zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z\"]\n};\nconst faGlobeAfrica = faEarthAfrica;\nconst faRainbow = {\n prefix: 'fas',\n iconName: 'rainbow',\n icon: [640, 512, [127752], \"f75b\", \"M320 96C178.6 96 64 210.6 64 352l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96C0 175.3 143.3 32 320 32s320 143.3 320 320l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96C576 210.6 461.4 96 320 96zm0 192c-35.3 0-64 28.7-64 64l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-70.7 57.3-128 128-128s128 57.3 128 128l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-35.3-28.7-64-64-64zM160 352l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-123.7 100.3-224 224-224s224 100.3 224 224l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-88.4-71.6-160-160-160s-160 71.6-160 160z\"]\n};\nconst faCircleNotch = {\n prefix: 'fas',\n iconName: 'circle-notch',\n icon: [512, 512, [], \"f1ce\", \"M222.7 32.1c5 16.9-4.6 34.8-21.5 39.8C121.8 95.6 64 169.1 64 256c0 106 86 192 192 192s192-86 192-192c0-86.9-57.8-160.4-137.1-184.1c-16.9-5-26.6-22.9-21.5-39.8s22.9-26.6 39.8-21.5C434.9 42.1 512 140 512 256c0 141.4-114.6 256-256 256S0 397.4 0 256C0 140 77.1 42.1 182.9 10.6c16.9-5 34.8 4.6 39.8 21.5z\"]\n};\nconst faTabletScreenButton = {\n prefix: 'fas',\n iconName: 'tablet-screen-button',\n icon: [448, 512, [\"tablet-alt\"], \"f3fa\", \"M0 64C0 28.7 28.7 0 64 0L384 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM256 448a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM384 64L64 64l0 320 320 0 0-320z\"]\n};\nconst faTabletAlt = faTabletScreenButton;\nconst faPaw = {\n prefix: 'fas',\n iconName: 'paw',\n icon: [512, 512, [], \"f1b0\", \"M226.5 92.9c14.3 42.9-.3 86.2-32.6 96.8s-70.1-15.6-84.4-58.5s.3-86.2 32.6-96.8s70.1 15.6 84.4 58.5zM100.4 198.6c18.9 32.4 14.3 70.1-10.2 84.1s-59.7-.9-78.5-33.3S-2.7 179.3 21.8 165.3s59.7 .9 78.5 33.3zM69.2 401.2C121.6 259.9 214.7 224 256 224s134.4 35.9 186.8 177.2c3.6 9.7 5.2 20.1 5.2 30.5l0 1.6c0 25.8-20.9 46.7-46.7 46.7c-11.5 0-22.9-1.4-34-4.2l-88-22c-15.3-3.8-31.3-3.8-46.6 0l-88 22c-11.1 2.8-22.5 4.2-34 4.2C84.9 480 64 459.1 64 433.3l0-1.6c0-10.4 1.6-20.8 5.2-30.5zM421.8 282.7c-24.5-14-29.1-51.7-10.2-84.1s54-47.3 78.5-33.3s29.1 51.7 10.2 84.1s-54 47.3-78.5 33.3zM310.1 189.7c-32.3-10.6-46.9-53.9-32.6-96.8s52.1-69.1 84.4-58.5s46.9 53.9 32.6 96.8s-52.1 69.1-84.4 58.5z\"]\n};\nconst faCloud = {\n prefix: 'fas',\n iconName: 'cloud',\n icon: [640, 512, [9729], \"f0c2\", \"M0 336c0 79.5 64.5 144 144 144l368 0c70.7 0 128-57.3 128-128c0-61.9-44-113.6-102.4-125.4c4.1-10.7 6.4-22.4 6.4-34.6c0-53-43-96-96-96c-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32C167.6 32 96 103.6 96 192c0 2.7 .1 5.4 .2 8.1C40.2 219.8 0 273.2 0 336z\"]\n};\nconst faTrowelBricks = {\n prefix: 'fas',\n iconName: 'trowel-bricks',\n icon: [512, 512, [], \"e58a\", \"M240.8 4.8C250.3 10.6 256 20.9 256 32l0 72 89 0c3.6-13.8 16.1-24 31-24l88 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-88 0c-14.9 0-27.4-10.2-31-24l-89 0 0 72c0 11.1-5.7 21.4-15.2 27.2s-21.2 6.4-31.1 1.4l-192-96C6.8 151.2 0 140.1 0 128s6.8-23.2 17.7-28.6l192-96c9.9-5 21.7-4.4 31.1 1.4zM288 256c0-17.7 14.3-32 32-32l160 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-64zM32 384l96 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zm192 0l256 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32z\"]\n};\nconst faFaceFlushed = {\n prefix: 'fas',\n iconName: 'face-flushed',\n icon: [512, 512, [128563, \"flushed\"], \"f579\", \"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM176 384c0 8.8 7.2 16 16 16l128 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-128 0c-8.8 0-16 7.2-16 16zm-16-88a72 72 0 1 0 0-144 72 72 0 1 0 0 144zm264-72a72 72 0 1 0 -144 0 72 72 0 1 0 144 0zm-288 0a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm192 0a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nconst faFlushed = faFaceFlushed;\nconst faHospitalUser = {\n prefix: 'fas',\n iconName: 'hospital-user',\n icon: [576, 512, [], \"f80d\", \"M48 0C21.5 0 0 21.5 0 48L0 256l144 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L0 288l0 64 144 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L0 384l0 80c0 26.5 21.5 48 48 48l217.9 0c-6.3-10.2-9.9-22.2-9.9-35.1c0-46.9 25.8-87.8 64-109.2l0-95.9L320 48c0-26.5-21.5-48-48-48L48 0zM152 64l16 0c8.8 0 16 7.2 16 16l0 24 24 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-24 0 0 24c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-24-24 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16l24 0 0-24c0-8.8 7.2-16 16-16zM512 272a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM288 477.1c0 19.3 15.6 34.9 34.9 34.9l218.2 0c19.3 0 34.9-15.6 34.9-34.9c0-51.4-41.7-93.1-93.1-93.1l-101.8 0c-51.4 0-93.1 41.7-93.1 93.1z\"]\n};\nconst faTentArrowLeftRight = {\n prefix: 'fas',\n iconName: 'tent-arrow-left-right',\n icon: [576, 512, [], \"e57f\", \"M488.1 6.2c-9.9-8.9-25-8.1-33.9 1.8s-8.1 25 1.8 33.9L489.5 72 86.5 72l33.5-30.2c9.9-8.9 10.7-24 1.8-33.9S97.8-2.7 87.9 6.2l-80 72C2.9 82.7 0 89.2 0 96s2.9 13.3 7.9 17.8l80 72c9.9 8.9 25 8.1 33.9-1.8s8.1-25-1.8-33.9L86.5 120l402.9 0-33.5 30.2c-9.9 8.9-10.7 24-1.8 33.9s24 10.7 33.9 1.8l80-72c5.1-4.6 7.9-11 7.9-17.8s-2.9-13.3-7.9-17.8l-80-72zM307.4 166.5c-11.5-8.7-27.3-8.7-38.8 0l-168 128c-6.6 5-11 12.5-12.3 20.7l-24 160c-1.4 9.2 1.3 18.6 7.4 25.6S86.7 512 96 512l144 0 16 0c17.7 0 32-14.3 32-32l0-118.1c0-5.5 4.4-9.9 9.9-9.9c3.7 0 7.2 2.1 8.8 5.5l68.4 136.8c5.4 10.8 16.5 17.7 28.6 17.7l60.2 0 16 0c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128z\"]\n};\nconst faGavel = {\n prefix: 'fas',\n iconName: 'gavel',\n icon: [512, 512, [\"legal\"], \"f0e3\", \"M318.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-120 120c-12.5 12.5-12.5 32.8 0 45.3l16 16c12.5 12.5 32.8 12.5 45.3 0l4-4L325.4 293.4l-4 4c-12.5 12.5-12.5 32.8 0 45.3l16 16c12.5 12.5 32.8 12.5 45.3 0l120-120c12.5-12.5 12.5-32.8 0-45.3l-16-16c-12.5-12.5-32.8-12.5-45.3 0l-4 4L330.6 74.6l4-4c12.5-12.5 12.5-32.8 0-45.3l-16-16zm-152 288c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3l48 48c12.5 12.5 32.8 12.5 45.3 0l112-112c12.5-12.5 12.5-32.8 0-45.3l-1.4-1.4L272 285.3 226.7 240 168 298.7l-1.4-1.4z\"]\n};\nconst faLegal = faGavel;\nconst faBinoculars = {\n prefix: 'fas',\n iconName: 'binoculars',\n icon: [512, 512, [], \"f1e5\", \"M128 32l32 0c17.7 0 32 14.3 32 32l0 32L96 96l0-32c0-17.7 14.3-32 32-32zm64 96l0 320c0 17.7-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32l0-59.1c0-34.6 9.4-68.6 27.2-98.3C40.9 267.8 49.7 242.4 53 216L60.5 156c2-16 15.6-28 31.8-28l99.8 0zm227.8 0c16.1 0 29.8 12 31.8 28L459 216c3.3 26.4 12.1 51.8 25.8 74.6c17.8 29.7 27.2 63.7 27.2 98.3l0 59.1c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-320 99.8 0zM320 64c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 32-96 0 0-32zm-32 64l0 160-64 0 0-160 64 0z\"]\n};\nconst faMicrophoneSlash = {\n prefix: 'fas',\n iconName: 'microphone-slash',\n icon: [640, 512, [], \"f131\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L472.1 344.7c15.2-26 23.9-56.3 23.9-88.7l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c0 21.2-5.1 41.1-14.2 58.7L416 300.8 416 96c0-53-43-96-96-96s-96 43-96 96l0 54.3L38.8 5.1zM344 430.4c20.4-2.8 39.7-9.1 57.3-18.2l-43.1-33.9C346.1 382 333.3 384 320 384c-70.7 0-128-57.3-128-128l0-8.7L144.7 210c-.5 1.9-.7 3.9-.7 6l0 40c0 89.1 66.2 162.7 152 174.4l0 33.6-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0 72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-33.6z\"]\n};\nconst faBoxTissue = {\n prefix: 'fas',\n iconName: 'box-tissue',\n icon: [512, 512, [], \"e05b\", \"M92.5 0L208 0c40 0 52 24 64 48s24 48 64 48l85.2 0C436 96 448 108 448 122.8c0 3.4-.7 6.8-1.9 10L409.6 224 384 288l-256 0-16-64L64.9 35.4c-.6-2.3-.9-4.6-.9-6.9C64 12.8 76.8 0 92.5 0zM79 224l16 64-15 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l48 0 256 0 48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-13.5 0 25.6-64 19.9 0c26.5 0 48 21.5 48 48l0 112L0 384 0 272c0-26.5 21.5-48 48-48l31 0zM0 416l512 0 0 48c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48l0-48z\"]\n};\nconst faMotorcycle = {\n prefix: 'fas',\n iconName: 'motorcycle',\n icon: [640, 512, [127949], \"f21c\", \"M280 32c-13.3 0-24 10.7-24 24s10.7 24 24 24l57.7 0 16.4 30.3L256 192l-45.3-45.3c-12-12-28.3-18.7-45.3-18.7L64 128c-17.7 0-32 14.3-32 32l0 32 96 0c88.4 0 160 71.6 160 160c0 11-1.1 21.7-3.2 32l70.4 0c-2.1-10.3-3.2-21-3.2-32c0-52.2 25-98.6 63.7-127.8l15.4 28.6C402.4 276.3 384 312 384 352c0 70.7 57.3 128 128 128s128-57.3 128-128s-57.3-128-128-128c-13.5 0-26.5 2.1-38.7 6L418.2 128l61.8 0c17.7 0 32-14.3 32-32l0-32c0-17.7-14.3-32-32-32l-20.4 0c-7.5 0-14.7 2.6-20.5 7.4L391.7 78.9l-14-26c-7-12.9-20.5-21-35.2-21L280 32zM462.7 311.2l28.2 52.2c6.3 11.7 20.9 16 32.5 9.7s16-20.9 9.7-32.5l-28.2-52.2c2.3-.3 4.7-.4 7.1-.4c35.3 0 64 28.7 64 64s-28.7 64-64 64s-64-28.7-64-64c0-15.5 5.5-29.7 14.7-40.8zM187.3 376c-9.5 23.5-32.5 40-59.3 40c-35.3 0-64-28.7-64-64s28.7-64 64-64c26.9 0 49.9 16.5 59.3 40l66.4 0C242.5 268.8 190.5 224 128 224C57.3 224 0 281.3 0 352s57.3 128 128 128c62.5 0 114.5-44.8 125.8-104l-66.4 0zM128 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nconst faBellConcierge = {\n prefix: 'fas',\n iconName: 'bell-concierge',\n icon: [512, 512, [128718, \"concierge-bell\"], \"f562\", \"M216 64c-13.3 0-24 10.7-24 24s10.7 24 24 24l16 0 0 33.3C119.6 157.2 32 252.4 32 368l448 0c0-115.6-87.6-210.8-200-222.7l0-33.3 16 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0-40 0zM24 400c-13.3 0-24 10.7-24 24s10.7 24 24 24l464 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 400z\"]\n};\nconst faConciergeBell = faBellConcierge;\nconst faPenRuler = {\n prefix: 'fas',\n iconName: 'pen-ruler',\n icon: [512, 512, [\"pencil-ruler\"], \"f5ae\", \"M469.3 19.3l23.4 23.4c25 25 25 65.5 0 90.5l-56.4 56.4L322.3 75.7l56.4-56.4c25-25 65.5-25 90.5 0zM44.9 353.2L299.7 98.3 413.7 212.3 158.8 467.1c-6.7 6.7-15.1 11.6-24.2 14.2l-104 29.7c-8.4 2.4-17.4 .1-23.6-6.1s-8.5-15.2-6.1-23.6l29.7-104c2.6-9.2 7.5-17.5 14.2-24.2zM249.4 103.4L103.4 249.4 16 161.9c-18.7-18.7-18.7-49.1 0-67.9L94.1 16c18.7-18.7 49.1-18.7 67.9 0l19.8 19.8c-.3 .3-.7 .6-1 .9l-64 64c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l64-64c.3-.3 .6-.7 .9-1l45.1 45.1zM408.6 262.6l45.1 45.1c-.3 .3-.7 .6-1 .9l-64 64c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l64-64c.3-.3 .6-.7 .9-1L496 350.1c18.7 18.7 18.7 49.1 0 67.9L417.9 496c-18.7 18.7-49.1 18.7-67.9 0l-87.4-87.4L408.6 262.6z\"]\n};\nconst faPencilRuler = faPenRuler;\nconst faPeopleArrows = {\n prefix: 'fas',\n iconName: 'people-arrows',\n icon: [640, 512, [\"people-arrows-left-right\"], \"e068\", \"M64 64a64 64 0 1 1 128 0A64 64 0 1 1 64 64zM25.9 233.4C29.3 191.9 64 160 105.6 160l44.8 0c27 0 51 13.4 65.5 34.1c-2.7 1.9-5.2 4-7.5 6.3l-64 64c-21.9 21.9-21.9 57.3 0 79.2L192 391.2l0 72.8c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-115.7c-26.5-9.5-44.7-35.8-42.2-65.6l4.1-49.3zM448 64a64 64 0 1 1 128 0A64 64 0 1 1 448 64zM431.6 200.4c-2.3-2.3-4.9-4.4-7.5-6.3c14.5-20.7 38.6-34.1 65.5-34.1l44.8 0c41.6 0 76.3 31.9 79.7 73.4l4.1 49.3c2.5 29.8-15.7 56.1-42.2 65.6L576 464c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-72.8 47.6-47.6c21.9-21.9 21.9-57.3 0-79.2l-64-64zM272 240l0 32 96 0 0-32c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l64 64c9.4 9.4 9.4 24.6 0 33.9l-64 64c-6.9 6.9-17.2 8.9-26.2 5.2s-14.8-12.5-14.8-22.2l0-32-96 0 0 32c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-64-64c-9.4-9.4-9.4-24.6 0-33.9l64-64c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2z\"]\n};\nconst faPeopleArrowsLeftRight = faPeopleArrows;\nconst faMarsAndVenusBurst = {\n prefix: 'fas',\n iconName: 'mars-and-venus-burst',\n icon: [640, 512, [], \"e523\", \"M504 0c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l39 39-22.2 22.2C475.9 78.4 439.6 64 400 64c-88.4 0-160 71.6-160 160c0 80.2 59.1 146.7 136.1 158.2c0 .6-.1 1.2-.1 1.8l0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .3 0 .4 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3-24 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l24 0 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1c0 0 0 .1 0 .1s0 .1 0 .1l0 .1c0 0 0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0l24 0-24 0c0 13.3 10.7 24 24 24s24-10.7 24-24l-24 0 24 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1l0-.1c0 0 0-.1 0-.1s0-.1 0-.1l0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 24 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-24 0 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.4 0-.3 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4c0-.6 0-1.2-.1-1.8c77-11.6 136.1-78 136.1-158.2c0-31.4-9-60.7-24.7-85.4L560 113.9l39 39c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2l0-112c0-13.3-10.7-24-24-24L504 0zM400 128a96 96 0 1 1 0 192 96 96 0 1 1 0-192zM190.9 18.1C188.4 12 182.6 8 176 8s-12.4 4-14.9 10.1l-29.4 74L55.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1L10.9 206.4c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2L90.6 327c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6L176 286.1l58.6 53.9c4.1 3.8 9.9 5.1 15.2 3.6C223.6 310.8 208 269.2 208 224c0-60.8 28.3-115 72.4-150.2L220.3 92.1l-29.4-74z\"]\n};\nconst faSquareCaretRight = {\n prefix: 'fas',\n iconName: 'square-caret-right',\n icon: [448, 512, [\"caret-square-right\"], \"f152\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM320 256c0 6.7-2.8 13-7.7 17.6l-112 104c-7 6.5-17.2 8.2-25.9 4.4s-14.4-12.5-14.4-22l0-208c0-9.5 5.7-18.2 14.4-22s18.9-2.1 25.9 4.4l112 104c4.9 4.5 7.7 10.9 7.7 17.6z\"]\n};\nconst faCaretSquareRight = faSquareCaretRight;\nconst faScissors = {\n prefix: 'fas',\n iconName: 'scissors',\n icon: [512, 512, [9984, 9986, 9988, \"cut\"], \"f0c4\", \"M256 192l-39.5-39.5c4.9-12.6 7.5-26.2 7.5-40.5C224 50.1 173.9 0 112 0S0 50.1 0 112s50.1 112 112 112c14.3 0 27.9-2.7 40.5-7.5L192 256l-39.5 39.5c-12.6-4.9-26.2-7.5-40.5-7.5C50.1 288 0 338.1 0 400s50.1 112 112 112s112-50.1 112-112c0-14.3-2.7-27.9-7.5-40.5L499.2 76.8c7.1-7.1 7.1-18.5 0-25.6c-28.3-28.3-74.1-28.3-102.4 0L256 192zm22.6 150.6L396.8 460.8c28.3 28.3 74.1 28.3 102.4 0c7.1-7.1 7.1-18.5 0-25.6L342.6 278.6l-64 64zM64 112a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm48 240a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"]\n};\nconst faCut = faScissors;\nconst faSunPlantWilt = {\n prefix: 'fas',\n iconName: 'sun-plant-wilt',\n icon: [640, 512, [], \"e57a\", \"M160 0c-6.3 0-12 3.7-14.6 9.5L120.6 64.9 63.9 43.2c-5.9-2.3-12.6-.8-17 3.6s-5.9 11.1-3.6 17l21.7 56.7L9.5 145.4C3.7 148 0 153.7 0 160s3.7 12 9.5 14.6l55.4 24.8L43.2 256.1c-2.3 5.9-.8 12.6 3.6 17s11.1 5.9 17 3.6l56.7-21.7 24.8 55.4c2.6 5.8 8.3 9.5 14.6 9.5s12-3.7 14.6-9.5l24.8-55.4 56.7 21.7c5.9 2.3 12.6 .8 17-3.6s5.9-11.1 3.6-17l-21.7-56.7 55.4-24.8c5.8-2.6 9.5-8.3 9.5-14.6s-3.7-12-9.5-14.6l-55.4-24.8 21.7-56.7c2.3-5.9 .8-12.6-3.6-17s-11.1-5.9-17-3.6L199.4 64.9 174.6 9.5C172 3.7 166.3 0 160 0zm0 96a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm32 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm312 16c0-17.7 14.3-32 32-32s32 14.3 32 32l0 53.4c-14.8 7.7-24 23.1-24 44.6c0 16.8 16 44 37.4 67.2c5.8 6.2 15.5 6.2 21.2 0C624 318 640 290.7 640 274c0-21.5-9.2-37-24-44.6l0-53.4c0-44.2-35.8-80-80-80s-80 35.8-80 80l0 22.7c-9.8-4.3-20.6-6.7-32-6.7c-44.2 0-80 35.8-80 80l0 21.4c-14.8 7.7-24 23.1-24 44.6c0 16.8 16 44 37.4 67.2c5.8 6.2 15.5 6.2 21.2 0C400 382 416 354.7 416 338c0-21.5-9.2-37-24-44.6l0-21.4c0-17.7 14.3-32 32-32s32 14.3 32 32l0 8 0 168L32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l576 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-104 0 0-168 0-8 0-96z\"]\n};\nconst faToiletsPortable = {\n prefix: 'fas',\n iconName: 'toilets-portable',\n icon: [576, 512, [], \"e584\", \"M32 0L224 0c17.7 0 32 14.3 32 32l0 32L0 64 0 32C0 14.3 14.3 0 32 0zM0 96l24 0 208 0 24 0 0 24 0 368c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-8L48 480l0 8c0 13.3-10.7 24-24 24s-24-10.7-24-24L0 120 0 96zM192 224c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8-7.2-16-16-16zM352 0L544 0c17.7 0 32 14.3 32 32l0 32L320 64l0-32c0-17.7 14.3-32 32-32zM320 96l24 0 208 0 24 0 0 24 0 368c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-8-160 0 0 8c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-368 0-24zM512 224c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8-7.2-16-16-16z\"]\n};\nconst faHockeyPuck = {\n prefix: 'fas',\n iconName: 'hockey-puck',\n icon: [512, 512, [], \"f453\", \"M256 256C114.6 256 0 213 0 160s114.6-96 256-96s256 43 256 96s-114.6 96-256 96zm192.3 1.8c24.7-9.3 46.9-21 63.7-35.6L512 352c0 53-114.6 96-256 96S0 405 0 352L0 222.3c16.8 14.6 39 26.3 63.7 35.6C114.5 276.9 182.5 288 256 288s141.5-11.1 192.3-30.2z\"]\n};\nconst faTable = {\n prefix: 'fas',\n iconName: 'table',\n icon: [512, 512, [], \"f0ce\", \"M64 256l0-96 160 0 0 96L64 256zm0 64l160 0 0 96L64 416l0-96zm224 96l0-96 160 0 0 96-160 0zM448 256l-160 0 0-96 160 0 0 96zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z\"]\n};\nconst faMagnifyingGlassArrowRight = {\n prefix: 'fas',\n iconName: 'magnifying-glass-arrow-right',\n icon: [512, 512, [], \"e521\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM241 119c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l31 31L120 184c-13.3 0-24 10.7-24 24s10.7 24 24 24l118.1 0-31 31c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9l-72-72z\"]\n};\nconst faTachographDigital = {\n prefix: 'fas',\n iconName: 'tachograph-digital',\n icon: [640, 512, [\"digital-tachograph\"], \"f566\", \"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l512 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm32 64l224 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32L96 256c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zM64 368c0-8.8 7.2-16 16-16l256 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L80 384c-8.8 0-16-7.2-16-16zm320 0c0-8.8 7.2-16 16-16l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16zM80 288a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm48 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm80-16a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm48 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm80-16a16 16 0 1 1 0 32 16 16 0 1 1 0-32z\"]\n};\nconst faDigitalTachograph = faTachographDigital;\nconst faUsersSlash = {\n prefix: 'fas',\n iconName: 'users-slash',\n icon: [640, 512, [], \"e073\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L440.6 320l178.1 0c11.8 0 21.3-9.6 21.3-21.3C640 239.8 592.2 192 533.3 192l-42.7 0c-15.9 0-31 3.5-44.6 9.7c1.3 7.2 1.9 14.7 1.9 22.3c0 30.2-10.5 58-28 79.9l-25.2-19.7C408.1 267.7 416 246.8 416 224c0-53-43-96-96-96c-31.1 0-58.7 14.8-76.3 37.7l-40.6-31.8c13-14.2 20.9-33.1 20.9-53.9c0-44.2-35.8-80-80-80C116.3 0 91.9 14.1 77.5 35.5L38.8 5.1zM106.7 192C47.8 192 0 239.8 0 298.7C0 310.4 9.6 320 21.3 320l213.3 0c.2 0 .4 0 .7 0c-20.6-18.2-35.2-42.8-40.8-70.8L121.8 192l-15.2 0zM261.3 352C187.7 352 128 411.7 128 485.3c0 14.7 11.9 26.7 26.7 26.7l330.7 0c10.5 0 19.5-6 23.9-14.8L324.9 352l-63.6 0zM512 160A80 80 0 1 0 512 0a80 80 0 1 0 0 160z\"]\n};\nconst faClover = {\n prefix: 'fas',\n iconName: 'clover',\n icon: [448, 512, [], \"e139\", \"M216.6 49.9C205.1 38.5 189.5 32 173.3 32C139.4 32 112 59.4 112 93.3l0 4.9c0 12 3.3 23.7 9.4 34l18.8 31.3c1.1 1.8 1.2 3.1 1 4.2c-.2 1.2-.8 2.5-2 3.6s-2.4 1.8-3.6 2c-1 .2-2.4 .1-4.2-1l-31.3-18.8c-10.3-6.2-22-9.4-34-9.4l-4.9 0C27.4 144 0 171.4 0 205.3c0 16.2 6.5 31.8 17.9 43.3l1.2 1.2c3.4 3.4 3.4 9 0 12.4l-1.2 1.2C6.5 274.9 0 290.5 0 306.7C0 340.6 27.4 368 61.3 368l4.9 0c12 0 23.7-3.3 34-9.4l31.3-18.8c1.8-1.1 3.1-1.2 4.2-1c1.2 .2 2.5 .8 3.6 2s1.8 2.4 2 3.6c.2 1 .1 2.4-1 4.2l-18.8 31.3c-6.2 10.3-9.4 22-9.4 34l0 4.9c0 33.8 27.4 61.3 61.3 61.3c16.2 0 31.8-6.5 43.3-17.9l1.2-1.2c3.4-3.4 9-3.4 12.4 0l1.2 1.2c11.5 11.5 27.1 17.9 43.3 17.9c33.8 0 61.3-27.4 61.3-61.3l0-4.9c0-12-3.3-23.7-9.4-34l-18.8-31.3c-1.1-1.8-1.2-3.1-1-4.2c.2-1.2 .8-2.5 2-3.6s2.4-1.8 3.6-2c1-.2 2.4-.1 4.2 1l31.3 18.8c10.3 6.2 22 9.4 34 9.4l4.9 0c33.8 0 61.3-27.4 61.3-61.3c0-16.2-6.5-31.8-17.9-43.3l-1.2-1.2c-3.4-3.4-3.4-9 0-12.4l1.2-1.2c11.5-11.5 17.9-27.1 17.9-43.3c0-33.8-27.4-61.3-61.3-61.3l-4.9 0c-12 0-23.7 3.3-34 9.4l-31.3 18.8c-1.8 1.1-3.1 1.2-4.2 1c-1.2-.2-2.5-.8-3.6-2s-1.8-2.4-2-3.6c-.2-1-.1-2.4 1-4.2l18.8-31.3c6.2-10.3 9.4-22 9.4-34l0-4.9C336 59.4 308.6 32 274.7 32c-16.2 0-31.8 6.5-43.3 17.9l-1.2 1.2c-3.4 3.4-9 3.4-12.4 0l-1.2-1.2z\"]\n};\nconst faReply = {\n prefix: 'fas',\n iconName: 'reply',\n icon: [512, 512, [61714, \"mail-reply\"], \"f3e5\", \"M205 34.8c11.5 5.1 19 16.6 19 29.2l0 64 112 0c97.2 0 176 78.8 176 176c0 113.3-81.5 163.9-100.2 174.1c-2.5 1.4-5.3 1.9-8.1 1.9c-10.9 0-19.7-8.9-19.7-19.7c0-7.5 4.3-14.4 9.8-19.5c9.4-8.8 22.2-26.4 22.2-56.7c0-53-43-96-96-96l-96 0 0 64c0 12.6-7.4 24.1-19 29.2s-25 3-34.4-5.4l-160-144C3.9 225.7 0 217.1 0 208s3.9-17.7 10.6-23.8l160-144c9.4-8.5 22.9-10.6 34.4-5.4z\"]\n};\nconst faMailReply = faReply;\nconst faStarAndCrescent = {\n prefix: 'fas',\n iconName: 'star-and-crescent',\n icon: [512, 512, [9770], \"f699\", \"M0 256C0 114.6 114.6 0 256 0c33 0 64.6 6.3 93.6 17.7c7.4 2.9 11.5 10.7 9.8 18.4s-8.8 13-16.7 12.4c-4.8-.3-9.7-.5-14.6-.5c-114.9 0-208 93.1-208 208s93.1 208 208 208c4.9 0 9.8-.2 14.6-.5c7.9-.5 15 4.7 16.7 12.4s-2.4 15.5-9.8 18.4C320.6 505.7 289 512 256 512C114.6 512 0 397.4 0 256zM375.4 137.4c3.5-7.1 13.7-7.1 17.2 0l31.5 63.8c1.4 2.8 4.1 4.8 7.2 5.3l70.4 10.2c7.9 1.1 11 10.8 5.3 16.4l-50.9 49.6c-2.3 2.2-3.3 5.4-2.8 8.5l12 70.1c1.3 7.8-6.9 13.8-13.9 10.1l-63-33.1c-2.8-1.5-6.1-1.5-8.9 0l-63 33.1c-7 3.7-15.3-2.3-13.9-10.1l12-70.1c.5-3.1-.5-6.3-2.8-8.5L261 233.1c-5.7-5.6-2.6-15.2 5.3-16.4l70.4-10.2c3.1-.5 5.8-2.4 7.2-5.3l31.5-63.8z\"]\n};\nconst faHouseFire = {\n prefix: 'fas',\n iconName: 'house-fire',\n icon: [640, 512, [], \"e50c\", \"M288 350.1l0 1.9-32 0c-17.7 0-32 14.3-32 32l0 64 0 24c0 22.1-17.9 40-40 40l-24 0-31.9 0c-1.5 0-3-.1-4.5-.2c-1.2 .1-2.4 .2-3.6 .2l-16 0c-22.1 0-40-17.9-40-40l0-112c0-.9 0-1.9 .1-2.8l0-69.7-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L447.3 128.1c-12.3-1-25 3-34.8 11.7c-35.4 31.6-65.6 67.7-87.3 102.8C304.3 276.5 288 314.9 288 350.1zM480 512c-88.4 0-160-71.6-160-160c0-76.7 62.5-144.7 107.2-179.4c5-3.9 10.9-5.8 16.8-5.8c7.9-.1 16 3.1 22 9.2l46 46 11.3-11.3c11.7-11.7 30.6-12.7 42.3-1C624.5 268 640 320.2 640 352c0 88.4-71.6 160-160 160zm64-111.8c0-36.5-37-73-54.8-88.4c-5.4-4.7-13.1-4.7-18.5 0C453 327.1 416 363.6 416 400.2c0 35.3 28.7 64 64 64s64-28.7 64-64z\"]\n};\nconst faSquareMinus = {\n prefix: 'fas',\n iconName: 'square-minus',\n icon: [448, 512, [61767, \"minus-square\"], \"f146\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm88 200l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nconst faMinusSquare = faSquareMinus;\nconst faHelicopter = {\n prefix: 'fas',\n iconName: 'helicopter',\n icon: [640, 512, [128641], \"f533\", \"M128 32c0-17.7 14.3-32 32-32L544 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L384 64l0 64 32 0c88.4 0 160 71.6 160 160l0 64c0 17.7-14.3 32-32 32l-160 0-64 0c-20.1 0-39.1-9.5-51.2-25.6l-71.4-95.2c-3.5-4.7-8.3-8.3-13.7-10.5L47.2 198.1c-9.5-3.8-16.7-12-19.2-22L5 83.9C2.4 73.8 10.1 64 20.5 64L48 64c10.1 0 19.6 4.7 25.6 12.8L112 128l208 0 0-64L160 64c-17.7 0-32-14.3-32-32zM384 320l128 0 0-32c0-53-43-96-96-96l-32 0 0 128zM630.6 425.4c12.5 12.5 12.5 32.8 0 45.3l-3.9 3.9c-24 24-56.6 37.5-90.5 37.5L256 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l280.2 0c17 0 33.3-6.7 45.3-18.7l3.9-3.9c12.5-12.5 32.8-12.5 45.3 0z\"]\n};\nconst faCompass = {\n prefix: 'fas',\n iconName: 'compass',\n icon: [512, 512, [129517], \"f14e\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm50.7-186.9L162.4 380.6c-19.4 7.5-38.5-11.6-31-31l55.5-144.3c3.3-8.5 9.9-15.1 18.4-18.4l144.3-55.5c19.4-7.5 38.5 11.6 31 31L325.1 306.7c-3.2 8.5-9.9 15.1-18.4 18.4zM288 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"]\n};\nconst faSquareCaretDown = {\n prefix: 'fas',\n iconName: 'square-caret-down',\n icon: [448, 512, [\"caret-square-down\"], \"f150\", \"M384 480c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0zM224 352c-6.7 0-13-2.8-17.6-7.7l-104-112c-6.5-7-8.2-17.2-4.4-25.9s12.5-14.4 22-14.4l208 0c9.5 0 18.2 5.7 22 14.4s2.1 18.9-4.4 25.9l-104 112c-4.5 4.9-10.9 7.7-17.6 7.7z\"]\n};\nconst faCaretSquareDown = faSquareCaretDown;\nconst faFileCircleQuestion = {\n prefix: 'fas',\n iconName: 'file-circle-question',\n icon: [576, 512, [], \"e4ef\", \"M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zm48 96a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 240a24 24 0 1 0 0-48 24 24 0 1 0 0 48zM368 321.6l0 6.4c0 8.8 7.2 16 16 16s16-7.2 16-16l0-6.4c0-5.3 4.3-9.6 9.6-9.6l40.5 0c7.7 0 13.9 6.2 13.9 13.9c0 5.2-2.9 9.9-7.4 12.3l-32 16.8c-5.3 2.8-8.6 8.2-8.6 14.2l0 14.8c0 8.8 7.2 16 16 16s16-7.2 16-16l0-5.1 23.5-12.3c15.1-7.9 24.5-23.6 24.5-40.6c0-25.4-20.6-45.9-45.9-45.9l-40.5 0c-23 0-41.6 18.6-41.6 41.6z\"]\n};\nconst faLaptopCode = {\n prefix: 'fas',\n iconName: 'laptop-code',\n icon: [640, 512, [], \"f5fc\", \"M64 96c0-35.3 28.7-64 64-64l384 0c35.3 0 64 28.7 64 64l0 256-64 0 0-256L128 96l0 256-64 0L64 96zM0 403.2C0 392.6 8.6 384 19.2 384l601.6 0c10.6 0 19.2 8.6 19.2 19.2c0 42.4-34.4 76.8-76.8 76.8L76.8 480C34.4 480 0 445.6 0 403.2zM281 209l-31 31 31 31c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-48-48c-9.4-9.4-9.4-24.6 0-33.9l48-48c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zM393 175l48 48c9.4 9.4 9.4 24.6 0 33.9l-48 48c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z\"]\n};\nconst faSwatchbook = {\n prefix: 'fas',\n iconName: 'swatchbook',\n icon: [512, 512, [], \"f5c3\", \"M0 32C0 14.3 14.3 0 32 0L160 0c17.7 0 32 14.3 32 32l0 384c0 53-43 96-96 96s-96-43-96-96L0 32zM223.6 425.9c.3-3.3 .4-6.6 .4-9.9l0-262 75.4-75.4c12.5-12.5 32.8-12.5 45.3 0l90.5 90.5c12.5 12.5 12.5 32.8 0 45.3L223.6 425.9zM182.8 512l192-192L480 320c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-297.2 0zM128 64L64 64l0 64 64 0 0-64zM64 192l0 64 64 0 0-64-64 0zM96 440a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nconst faPrescriptionBottle = {\n prefix: 'fas',\n iconName: 'prescription-bottle',\n icon: [384, 512, [], \"f485\", \"M0 32C0 14.3 14.3 0 32 0L352 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64L0 32zm32 96l320 0 0 320c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-32 112 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L32 384l0-64 112 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L32 288l0-64 112 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L32 192l0-64z\"]\n};\nconst faBars = {\n prefix: 'fas',\n iconName: 'bars',\n icon: [448, 512, [\"navicon\"], \"f0c9\", \"M0 96C0 78.3 14.3 64 32 64l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 128C14.3 128 0 113.7 0 96zM0 256c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 288c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z\"]\n};\nconst faNavicon = faBars;\nconst faPeopleGroup = {\n prefix: 'fas',\n iconName: 'people-group',\n icon: [640, 512, [], \"e533\", \"M72 88a56 56 0 1 1 112 0A56 56 0 1 1 72 88zM64 245.7C54 256.9 48 271.8 48 288s6 31.1 16 42.3l0-84.7zm144.4-49.3C178.7 222.7 160 261.2 160 304c0 34.3 12 65.8 32 90.5l0 21.5c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-26.8C26.2 371.2 0 332.7 0 288c0-61.9 50.1-112 112-112l32 0c24 0 46.2 7.5 64.4 20.3zM448 416l0-21.5c20-24.7 32-56.2 32-90.5c0-42.8-18.7-81.3-48.4-107.7C449.8 183.5 472 176 496 176l32 0c61.9 0 112 50.1 112 112c0 44.7-26.2 83.2-64 101.2l0 26.8c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32zm8-328a56 56 0 1 1 112 0A56 56 0 1 1 456 88zM576 245.7l0 84.7c10-11.3 16-26.1 16-42.3s-6-31.1-16-42.3zM320 32a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM240 304c0 16.2 6 31 16 42.3l0-84.7c-10 11.3-16 26.1-16 42.3zm144-42.3l0 84.7c10-11.3 16-26.1 16-42.3s-6-31.1-16-42.3zM448 304c0 44.7-26.2 83.2-64 101.2l0 42.8c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-42.8c-37.8-18-64-56.5-64-101.2c0-61.9 50.1-112 112-112l32 0c61.9 0 112 50.1 112 112z\"]\n};\nconst faHourglassEnd = {\n prefix: 'fas',\n iconName: 'hourglass-end',\n icon: [384, 512, [8987, \"hourglass-3\"], \"f253\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l0 11c0 42.4 16.9 83.1 46.9 113.1L146.7 256 78.9 323.9C48.9 353.9 32 394.6 32 437l0 11c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 256 0 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-11c0-42.4-16.9-83.1-46.9-113.1L237.3 256l67.9-67.9c30-30 46.9-70.7 46.9-113.1l0-11c17.7 0 32-14.3 32-32s-14.3-32-32-32L320 0 64 0 32 0zM96 75l0-11 192 0 0 11c0 25.5-10.1 49.9-28.1 67.9L192 210.7l-67.9-67.9C106.1 124.9 96 100.4 96 75z\"]\n};\nconst faHourglass3 = faHourglassEnd;\nconst faHeartCrack = {\n prefix: 'fas',\n iconName: 'heart-crack',\n icon: [512, 512, [128148, \"heart-broken\"], \"f7a9\", \"M119.4 44.1c23.3-3.9 46.8-1.9 68.6 5.3l49.8 77.5-75.4 75.4c-1.5 1.5-2.4 3.6-2.3 5.8s1 4.2 2.6 5.7l112 104c2.9 2.7 7.4 2.9 10.5 .3s3.8-7 1.7-10.4l-60.4-98.1 90.7-75.6c2.6-2.1 3.5-5.7 2.4-8.8L296.8 61.8c28.5-16.7 62.4-23.2 95.7-17.6C461.5 55.6 512 115.2 512 185.1l0 5.8c0 41.5-17.2 81.2-47.6 109.5L283.7 469.1c-7.5 7-17.4 10.9-27.7 10.9s-20.2-3.9-27.7-10.9L47.6 300.4C17.2 272.1 0 232.4 0 190.9l0-5.8c0-69.9 50.5-129.5 119.4-141z\"]\n};\nconst faHeartBroken = faHeartCrack;\nconst faSquareUpRight = {\n prefix: 'fas',\n iconName: 'square-up-right',\n icon: [448, 512, [8599, \"external-link-square-alt\"], \"f360\", \"M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM160 160c-6.5 0-12.3 3.9-14.8 9.9s-1.1 12.9 3.5 17.4l40 40-71 71C114 302 112 306.9 112 312s2 10 5.7 13.7l36.7 36.7c3.6 3.6 8.5 5.7 13.7 5.7s10-2 13.7-5.7l71-71 40 40c4.6 4.6 11.5 5.9 17.4 3.5s9.9-8.3 9.9-14.8l0-144c0-8.8-7.2-16-16-16l-144 0z\"]\n};\nconst faExternalLinkSquareAlt = faSquareUpRight;\nconst faFaceKissBeam = {\n prefix: 'fas',\n iconName: 'face-kiss-beam',\n icon: [512, 512, [128537, \"kiss-beam\"], \"f597\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm48.7-198.3c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C274.7 443.1 257.4 448 240 448c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9c0 0 0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7c0 0 0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1 .3-.2 .6-.4c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1l-.4-.3-.5-.3-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4zm-87.1-84.9s0 0 0 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0zm160 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0z\"]\n};\nconst faKissBeam = faFaceKissBeam;\nconst faFilm = {\n prefix: 'fas',\n iconName: 'film',\n icon: [512, 512, [127902], \"f008\", \"M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM48 368l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm368-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM48 240l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm368-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM48 112l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16L64 96c-8.8 0-16 7.2-16 16zM416 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM160 128l0 64c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32L192 96c-17.7 0-32 14.3-32 32zm32 160c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-128 0z\"]\n};\nconst faRulerHorizontal = {\n prefix: 'fas',\n iconName: 'ruler-horizontal',\n icon: [640, 512, [], \"f547\", \"M0 336c0 26.5 21.5 48 48 48l544 0c26.5 0 48-21.5 48-48l0-160c0-26.5-21.5-48-48-48l-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0c-26.5 0-48 21.5-48 48L0 336z\"]\n};\nconst faPeopleRobbery = {\n prefix: 'fas',\n iconName: 'people-robbery',\n icon: [576, 512, [], \"e536\", \"M488.2 59.1C478.1 99.6 441.7 128 400 128s-78.1-28.4-88.2-68.9L303 24.2C298.8 7.1 281.4-3.3 264.2 1S236.7 22.6 241 39.8l8.7 34.9c11 44 40.2 79.6 78.3 99.6L328 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-305.7c38.1-20 67.3-55.6 78.3-99.6L559 39.8c4.3-17.1-6.1-34.5-23.3-38.8S501.2 7.1 497 24.2l-8.7 34.9zM400 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM80 96A48 48 0 1 0 80 0a48 48 0 1 0 0 96zm-8 32c-35.3 0-64 28.7-64 64l0 96 0 .6L8 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-227.3 13 20.5c5.9 9.2 16.1 14.9 27 14.9l48 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-30.4 0-37.4-58.9C157.6 142 132.1 128 104.7 128L72 128z\"]\n};\nconst faLightbulb = {\n prefix: 'fas',\n iconName: 'lightbulb',\n icon: [384, 512, [128161], \"f0eb\", \"M272 384c9.6-31.9 29.5-59.1 49.2-86.2c0 0 0 0 0 0c5.2-7.1 10.4-14.2 15.4-21.4c19.8-28.5 31.4-63 31.4-100.3C368 78.8 289.2 0 192 0S16 78.8 16 176c0 37.3 11.6 71.9 31.4 100.3c5 7.2 10.2 14.3 15.4 21.4c0 0 0 0 0 0c19.8 27.1 39.7 54.4 49.2 86.2l160 0zM192 512c44.2 0 80-35.8 80-80l0-16-160 0 0 16c0 44.2 35.8 80 80 80zM112 176c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-61.9 50.1-112 112-112c8.8 0 16 7.2 16 16s-7.2 16-16 16c-44.2 0-80 35.8-80 80z\"]\n};\nconst faCaretLeft = {\n prefix: 'fas',\n iconName: 'caret-left',\n icon: [256, 512, [], \"f0d9\", \"M9.4 278.6c-12.5-12.5-12.5-32.8 0-45.3l128-128c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6l0 256c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-128-128z\"]\n};\nconst faCircleExclamation = {\n prefix: 'fas',\n iconName: 'circle-exclamation',\n icon: [512, 512, [\"exclamation-circle\"], \"f06a\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-384c13.3 0 24 10.7 24 24l0 112c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-112c0-13.3 10.7-24 24-24zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nconst faExclamationCircle = faCircleExclamation;\nconst faSchoolCircleXmark = {\n prefix: 'fas',\n iconName: 'school-circle-xmark',\n icon: [640, 512, [], \"e56d\", \"M337.8 5.4C327-1.8 313-1.8 302.2 5.4L166.3 96 48 96C21.5 96 0 117.5 0 144L0 464c0 26.5 21.5 48 48 48l272 0s0 0 0 0l-64 0 0-96c0-35.3 28.7-64 64-64l.3 0 .5 0c3.4-37.7 18.7-72.1 42.2-99.1C350.2 260 335.6 264 320 264c-48.6 0-88-39.4-88-88s39.4-88 88-88s88 39.4 88 88c0 18.3-5.6 35.3-15.1 49.4c29-21 64.6-33.4 103.1-33.4c59.5 0 112.1 29.6 144 74.8L640 144c0-26.5-21.5-48-48-48L473.7 96 337.8 5.4zM96 192l32 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16zm0 128l32 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16zM320 128c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0 0-16c0-8.8-7.2-16-16-16zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm22.6-144l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L518.6 368z\"]\n};\nconst faArrowRightFromBracket = {\n prefix: 'fas',\n iconName: 'arrow-right-from-bracket',\n icon: [512, 512, [\"sign-out\"], \"f08b\", \"M502.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224 192 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l210.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128zM160 96c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 32C43 32 0 75 0 128L0 384c0 53 43 96 96 96l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l64 0z\"]\n};\nconst faSignOut = faArrowRightFromBracket;\nconst faCircleChevronDown = {\n prefix: 'fas',\n iconName: 'circle-chevron-down',\n icon: [512, 512, [\"chevron-circle-down\"], \"f13a\", \"M256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM135 241c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l87 87 87-87c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L273 345c-9.4 9.4-24.6 9.4-33.9 0L135 241z\"]\n};\nconst faChevronCircleDown = faCircleChevronDown;\nconst faUnlockKeyhole = {\n prefix: 'fas',\n iconName: 'unlock-keyhole',\n icon: [448, 512, [\"unlock-alt\"], \"f13e\", \"M224 64c-44.2 0-80 35.8-80 80l0 48 240 0c35.3 0 64 28.7 64 64l0 192c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 256c0-35.3 28.7-64 64-64l16 0 0-48C80 64.5 144.5 0 224 0c57.5 0 107 33.7 130.1 82.3c7.6 16 .8 35.1-15.2 42.6s-35.1 .8-42.6-15.2C283.4 82.6 255.9 64 224 64zm32 320c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0z\"]\n};\nconst faUnlockAlt = faUnlockKeyhole;\nconst faCloudShowersHeavy = {\n prefix: 'fas',\n iconName: 'cloud-showers-heavy',\n icon: [512, 512, [], \"f740\", \"M96 320c-53 0-96-43-96-96c0-42.5 27.6-78.6 65.9-91.2C64.7 126.1 64 119.1 64 112C64 50.1 114.1 0 176 0c43.1 0 80.5 24.3 99.2 60c14.7-17.1 36.5-28 60.8-28c44.2 0 80 35.8 80 80c0 5.5-.6 10.8-1.6 16c.5 0 1.1 0 1.6 0c53 0 96 43 96 96s-43 96-96 96L96 320zM81.5 353.9c12.2 5.2 17.8 19.3 12.6 31.5l-48 112c-5.2 12.2-19.3 17.8-31.5 12.6S-3.3 490.7 1.9 478.5l48-112c5.2-12.2 19.3-17.8 31.5-12.6zm120 0c12.2 5.2 17.8 19.3 12.6 31.5l-48 112c-5.2 12.2-19.3 17.8-31.5 12.6s-17.8-19.3-12.6-31.5l48-112c5.2-12.2 19.3-17.8 31.5-12.6zm244.6 31.5l-48 112c-5.2 12.2-19.3 17.8-31.5 12.6s-17.8-19.3-12.6-31.5l48-112c5.2-12.2 19.3-17.8 31.5-12.6s17.8 19.3 12.6 31.5zM313.5 353.9c12.2 5.2 17.8 19.3 12.6 31.5l-48 112c-5.2 12.2-19.3 17.8-31.5 12.6s-17.8-19.3-12.6-31.5l48-112c5.2-12.2 19.3-17.8 31.5-12.6z\"]\n};\nconst faHeadphonesSimple = {\n prefix: 'fas',\n iconName: 'headphones-simple',\n icon: [512, 512, [\"headphones-alt\"], \"f58f\", \"M256 80C141.1 80 48 173.1 48 288l0 104c0 13.3-10.7 24-24 24s-24-10.7-24-24L0 288C0 146.6 114.6 32 256 32s256 114.6 256 256l0 104c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-104c0-114.9-93.1-208-208-208zM80 352c0-35.3 28.7-64 64-64l16 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-16 0c-35.3 0-64-28.7-64-64l0-64zm288-64c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64l-16 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32l16 0z\"]\n};\nconst faHeadphonesAlt = faHeadphonesSimple;\nconst faSitemap = {\n prefix: 'fas',\n iconName: 'sitemap',\n icon: [576, 512, [], \"f0e8\", \"M208 80c0-26.5 21.5-48 48-48l64 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48l-8 0 0 40 152 0c30.9 0 56 25.1 56 56l0 32 8 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48l-64 0c-26.5 0-48-21.5-48-48l0-64c0-26.5 21.5-48 48-48l8 0 0-32c0-4.4-3.6-8-8-8l-152 0 0 40 8 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48l-64 0c-26.5 0-48-21.5-48-48l0-64c0-26.5 21.5-48 48-48l8 0 0-40-152 0c-4.4 0-8 3.6-8 8l0 32 8 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48l-64 0c-26.5 0-48-21.5-48-48l0-64c0-26.5 21.5-48 48-48l8 0 0-32c0-30.9 25.1-56 56-56l152 0 0-40-8 0c-26.5 0-48-21.5-48-48l0-64z\"]\n};\nconst faCircleDollarToSlot = {\n prefix: 'fas',\n iconName: 'circle-dollar-to-slot',\n icon: [512, 512, [\"donate\"], \"f4b9\", \"M326.7 403.7c-22.1 8-45.9 12.3-70.7 12.3s-48.7-4.4-70.7-12.3l-.8-.3c-30-11-56.8-28.7-78.6-51.4C70 314.6 48 263.9 48 208C48 93.1 141.1 0 256 0S464 93.1 464 208c0 55.9-22 106.6-57.9 144c-1 1-2 2.1-3 3.1c-21.4 21.4-47.4 38.1-76.3 48.6zM256 91.9c-11.1 0-20.1 9-20.1 20.1l0 6c-5.6 1.2-10.9 2.9-15.9 5.1c-15 6.8-27.9 19.4-31.1 37.7c-1.8 10.2-.8 20 3.4 29c4.2 8.8 10.7 15 17.3 19.5c11.6 7.9 26.9 12.5 38.6 16l2.2 .7c13.9 4.2 23.4 7.4 29.3 11.7c2.5 1.8 3.4 3.2 3.7 4c.3 .8 .9 2.6 .2 6.7c-.6 3.5-2.5 6.4-8 8.8c-6.1 2.6-16 3.9-28.8 1.9c-6-1-16.7-4.6-26.2-7.9c0 0 0 0 0 0s0 0 0 0s0 0 0 0c-2.2-.7-4.3-1.5-6.4-2.1c-10.5-3.5-21.8 2.2-25.3 12.7s2.2 21.8 12.7 25.3c1.2 .4 2.7 .9 4.4 1.5c7.9 2.7 20.3 6.9 29.8 9.1l0 6.4c0 11.1 9 20.1 20.1 20.1s20.1-9 20.1-20.1l0-5.5c5.3-1 10.5-2.5 15.4-4.6c15.7-6.7 28.4-19.7 31.6-38.7c1.8-10.4 1-20.3-3-29.4c-3.9-9-10.2-15.6-16.9-20.5c-12.2-8.8-28.3-13.7-40.4-17.4l-.8-.2c-14.2-4.3-23.8-7.3-29.9-11.4c-2.6-1.8-3.4-3-3.6-3.5c-.2-.3-.7-1.6-.1-5c.3-1.9 1.9-5.2 8.2-8.1c6.4-2.9 16.4-4.5 28.6-2.6c4.3 .7 17.9 3.3 21.7 4.3c10.7 2.8 21.6-3.5 24.5-14.2s-3.5-21.6-14.2-24.5c-4.4-1.2-14.4-3.2-21-4.4l0-6.3c0-11.1-9-20.1-20.1-20.1zM48 352l16 0c19.5 25.9 44 47.7 72.2 64L64 416l0 32 192 0 192 0 0-32-72.2 0c28.2-16.3 52.8-38.1 72.2-64l16 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48l0-64c0-26.5 21.5-48 48-48z\"]\n};\nconst faDonate = faCircleDollarToSlot;\nconst faMemory = {\n prefix: 'fas',\n iconName: 'memory',\n icon: [576, 512, [], \"f538\", \"M64 64C28.7 64 0 92.7 0 128l0 7.4c0 6.8 4.4 12.6 10.1 16.3C23.3 160.3 32 175.1 32 192s-8.7 31.7-21.9 40.3C4.4 236 0 241.8 0 248.6L0 320l576 0 0-71.4c0-6.8-4.4-12.6-10.1-16.3C552.7 223.7 544 208.9 544 192s8.7-31.7 21.9-40.3c5.7-3.7 10.1-9.5 10.1-16.3l0-7.4c0-35.3-28.7-64-64-64L64 64zM576 352L0 352l0 64c0 17.7 14.3 32 32 32l48 0 0-32c0-8.8 7.2-16 16-16s16 7.2 16 16l0 32 96 0 0-32c0-8.8 7.2-16 16-16s16 7.2 16 16l0 32 96 0 0-32c0-8.8 7.2-16 16-16s16 7.2 16 16l0 32 96 0 0-32c0-8.8 7.2-16 16-16s16 7.2 16 16l0 32 48 0c17.7 0 32-14.3 32-32l0-64zM192 160l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32z\"]\n};\nconst faRoadSpikes = {\n prefix: 'fas',\n iconName: 'road-spikes',\n icon: [640, 512, [], \"e568\", \"M64 116.8c0-15.8 20.5-22 29.3-8.9L192 256l0-139.2c0-15.8 20.5-22 29.3-8.9L320 256l0-139.2c0-15.8 20.5-22 29.3-8.9L448 256l0-139.2c0-15.8 20.5-22 29.3-8.9L606.8 302.2c14.2 21.3-1.1 49.7-26.6 49.7L512 352l-64 0-64 0-64 0-64 0-64 0L64 352l0-235.2zM32 384l576 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nconst faFireBurner = {\n prefix: 'fas',\n iconName: 'fire-burner',\n icon: [640, 512, [], \"e4f1\", \"M345.7 48.3L358 34.5c5.4-6.1 13.3-8.8 20.9-8.9c7.2 0 14.3 2.6 19.9 7.8c19.7 18.3 39.8 43.2 55 70.6C469 131.2 480 162.2 480 192.2C480 280.8 408.7 352 320 352c-89.6 0-160-71.3-160-159.8c0-37.3 16-73.4 36.8-104.5c20.9-31.3 47.5-59 70.9-80.2C273.4 2.3 280.7-.2 288 0c14.1 .3 23.8 11.4 32.7 21.6c0 0 0 0 0 0c2 2.3 4 4.6 6 6.7l19 19.9zM384 240.2c0-36.5-37-73-54.8-88.4c-5.4-4.7-13.1-4.7-18.5 0C293 167.1 256 203.6 256 240.2c0 35.3 28.7 64 64 64s64-28.7 64-64zM32 288c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 64 448 0 0-64c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 96c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l0-96zM320 480a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm160-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM192 480a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nconst faFlag = {\n prefix: 'fas',\n iconName: 'flag',\n icon: [448, 512, [127988, 61725], \"f024\", \"M64 32C64 14.3 49.7 0 32 0S0 14.3 0 32L0 64 0 368 0 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 64.3-16.1c41.1-10.3 84.6-5.5 122.5 13.4c44.2 22.1 95.5 24.8 141.7 7.4l34.7-13c12.5-4.7 20.8-16.6 20.8-30l0-247.7c0-23-24.2-38-44.8-27.7l-9.6 4.8c-46.3 23.2-100.8 23.2-147.1 0c-35.1-17.6-75.4-22-113.5-12.5L64 48l0-16z\"]\n};\nconst faHanukiah = {\n prefix: 'fas',\n iconName: 'hanukiah',\n icon: [640, 512, [128334], \"f6e6\", \"M314.2 3.3C309.1 12.1 296 36.6 296 56c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7C324.6 1.2 322.4 0 320 0s-4.6 1.2-5.8 3.3zm-288 48C21.1 60.1 8 84.6 8 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7C36.6 49.2 34.4 48 32 48s-4.6 1.2-5.8 3.3zM88 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C101.1 60.1 88 84.6 88 104zm82.2-52.7C165.1 60.1 152 84.6 152 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM216 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C229.1 60.1 216 84.6 216 104zM394.2 51.3C389.1 60.1 376 84.6 376 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM440 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C453.1 60.1 440 84.6 440 104zm82.2-52.7C517.1 60.1 504 84.6 504 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM584 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C597.1 60.1 584 84.6 584 104zM112 160c-8.8 0-16 7.2-16 16l0 96 0 16 32 0 0-16 0-96c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16l0 96 0 16 32 0 0-16 0-96c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16l0 96 0 16 32 0 0-16 0-96c0-8.8-7.2-16-16-16zm160 0c-8.8 0-16 7.2-16 16l0 96 0 16 32 0 0-16 0-96c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16l0 96 0 16 32 0 0-16 0-96c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16l0 96 0 16 32 0 0-16 0-96c0-8.8-7.2-16-16-16zM352 144c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 176L96 320c-17.7 0-32-14.3-32-32l0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 53 43 96 96 96l192 0 0 64-128 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l160 0 160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-128 0 0-64 192 0c53 0 96-43 96-96l0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7-14.3 32-32 32l-192 0 0-176z\"]\n};\nconst faFeather = {\n prefix: 'fas',\n iconName: 'feather',\n icon: [512, 512, [129718], \"f52d\", \"M278.5 215.6L23 471c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l57-57 68 0c49.7 0 97.9-14.4 139-41c11.1-7.2 5.5-23-7.8-23c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l81-24.3c2.5-.8 4.8-2.1 6.7-4l22.4-22.4c10.1-10.1 2.9-27.3-11.3-27.3l-32.2 0c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l112-33.6c4-1.2 7.4-3.9 9.3-7.7C506.4 207.6 512 184.1 512 160c0-41-16.3-80.3-45.3-109.3l-5.5-5.5C432.3 16.3 393 0 352 0s-80.3 16.3-109.3 45.3L139 149C91 197 64 262.1 64 330l0 55.3L253.6 195.8c6.2-6.2 16.4-6.2 22.6 0c5.4 5.4 6.1 13.6 2.2 19.8z\"]\n};\nconst faVolumeLow = {\n prefix: 'fas',\n iconName: 'volume-low',\n icon: [448, 512, [128264, \"volume-down\"], \"f027\", \"M301.1 34.8C312.6 40 320 51.4 320 64l0 384c0 12.6-7.4 24-18.9 29.2s-25 3.1-34.4-5.3L131.8 352 64 352c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l67.8 0L266.7 40.1c9.4-8.4 22.9-10.4 34.4-5.3zM412.6 181.5C434.1 199.1 448 225.9 448 256s-13.9 56.9-35.4 74.5c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C393.1 284.4 400 271 400 256s-6.9-28.4-17.7-37.3c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5z\"]\n};\nconst faVolumeDown = faVolumeLow;\nconst faCommentSlash = {\n prefix: 'fas',\n iconName: 'comment-slash',\n icon: [640, 512, [], \"f4b3\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L512.9 376.7C552.2 340.2 576 292.3 576 240C576 125.1 461.4 32 320 32c-67.7 0-129.3 21.4-175.1 56.3L38.8 5.1zm385.2 425L82.9 161.3C70.7 185.6 64 212.2 64 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0s0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9c37 0 72.3-6.4 104.1-17.9z\"]\n};\nconst faCloudSunRain = {\n prefix: 'fas',\n iconName: 'cloud-sun-rain',\n icon: [640, 512, [127782], \"f743\", \"M294.2 1.2c5.1 2.1 8.7 6.7 9.6 12.1l10.4 62.4c-23.3 10.8-42.9 28.4-56 50.3c-14.6-9-31.8-14.1-50.2-14.1c-53 0-96 43-96 96c0 35.5 19.3 66.6 48 83.2c.8 31.8 13.2 60.7 33.1 82.7l-56 39.2c-4.5 3.2-10.3 3.8-15.4 1.6s-8.7-6.7-9.6-12.1L98.1 317.9 13.4 303.8c-5.4-.9-10-4.5-12.1-9.6s-1.5-10.9 1.6-15.4L52.5 208 2.9 137.2c-3.2-4.5-3.8-10.3-1.6-15.4s6.7-8.7 12.1-9.6L98.1 98.1l14.1-84.7c.9-5.4 4.5-10 9.6-12.1s10.9-1.5 15.4 1.6L208 52.5 278.8 2.9c4.5-3.2 10.3-3.8 15.4-1.6zM208 144c13.8 0 26.7 4.4 37.1 11.9c-1.2 4.1-2.2 8.3-3 12.6c-37.9 14.6-67.2 46.6-77.8 86.4C151.8 243.1 144 226.5 144 208c0-35.3 28.7-64 64-64zm69.4 276c11 7.4 14 22.3 6.7 33.3l-32 48c-7.4 11-22.3 14-33.3 6.7s-14-22.3-6.7-33.3l32-48c7.4-11 22.3-14 33.3-6.7zm96 0c11 7.4 14 22.3 6.7 33.3l-32 48c-7.4 11-22.3 14-33.3 6.7s-14-22.3-6.7-33.3l32-48c7.4-11 22.3-14 33.3-6.7zm96 0c11 7.4 14 22.3 6.7 33.3l-32 48c-7.4 11-22.3 14-33.3 6.7s-14-22.3-6.7-33.3l32-48c7.4-11 22.3-14 33.3-6.7zm96 0c11 7.4 14 22.3 6.7 33.3l-32 48c-7.4 11-22.3 14-33.3 6.7s-14-22.3-6.7-33.3l32-48c7.4-11 22.3-14 33.3-6.7zm74.5-116.1c0 44.2-35.8 80-80 80l-271.9 0c-53 0-96-43-96-96c0-47.6 34.6-87 80-94.6l0-1.3c0-53 43-96 96-96c34.9 0 65.4 18.6 82.2 46.4c13-9.1 28.8-14.4 45.8-14.4c44.2 0 80 35.8 80 80c0 5.9-.6 11.7-1.9 17.2c37.4 6.7 65.8 39.4 65.8 78.7z\"]\n};\nconst faCompress = {\n prefix: 'fas',\n iconName: 'compress',\n icon: [448, 512, [], \"f066\", \"M160 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32l0-96zM32 320c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32l-96 0zM352 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-64zM320 320c-17.7 0-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0z\"]\n};\nconst faWheatAwn = {\n prefix: 'fas',\n iconName: 'wheat-awn',\n icon: [512, 512, [\"wheat-alt\"], \"e2cd\", \"M505 41c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L383 95c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l88-88zM305.5 27.3c-6.2-6.2-16.4-6.2-22.6 0L271.5 38.6c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4-30.5 30.5c-3.4-27.3-15.5-53.8-36.5-74.8l-11.3-11.3c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4-30.5 30.5c-3.4-27.3-15.5-53.8-36.5-74.8L101.8 231c-6.2-6.2-16.4-6.2-22.6 0L67.9 242.3c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4L9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l68.9-68.9 12.2 12.2c37.5 37.5 98.3 37.5 135.8 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-21.8-21.8-49.6-34.1-78.1-36.9l31.9-31.9 12.2 12.2c37.5 37.5 98.3 37.5 135.8 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-21.8-21.8-49.6-34.1-78.1-36.9l31.9-31.9 12.2 12.2c37.5 37.5 98.3 37.5 135.8 0L486.5 231c6.2-6.2 6.2-16.4 0-22.6L475.2 197c-5.2-5.2-10.6-9.8-16.4-13.9L505 137c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-59.4 59.4c-20.6-4.4-42-3.7-62.3 2.1c6.1-21.3 6.6-43.8 1.4-65.3L409 41c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L329.1 52.9c-3.7-5-7.8-9.8-12.4-14.3L305.5 27.3z\"]\n};\nconst faWheatAlt = faWheatAwn;\nconst faAnkh = {\n prefix: 'fas',\n iconName: 'ankh',\n icon: [320, 512, [9765], \"f644\", \"M96 128c0-35.3 28.7-64 64-64s64 28.7 64 64c0 41.6-20.7 76.6-46.6 104.1c-5.9 6.2-11.8 11.8-17.4 16.7c-5.6-4.9-11.5-10.5-17.4-16.7C116.7 204.6 96 169.6 96 128zM160 0C89.3 0 32 57.3 32 128c0 52.4 21.5 95.5 46.8 128L32 256c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0 0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-46.8 0c25.4-32.5 46.8-75.6 46.8-128C288 57.3 230.7 0 160 0z\"]\n};\nconst faHandsHoldingChild = {\n prefix: 'fas',\n iconName: 'hands-holding-child',\n icon: [640, 512, [], \"e4fa\", \"M320 0a40 40 0 1 1 0 80 40 40 0 1 1 0-80zm44.7 164.3L375.8 253c1.6 13.2-7.7 25.1-20.8 26.8s-25.1-7.7-26.8-20.8l-4.4-35-7.6 0-4.4 35c-1.6 13.2-13.6 22.5-26.8 20.8s-22.5-13.6-20.8-26.8l11.1-88.8L255.5 181c-10.1 8.6-25.3 7.3-33.8-2.8s-7.3-25.3 2.8-33.8l27.9-23.6C271.3 104.8 295.3 96 320 96s48.7 8.8 67.6 24.7l27.9 23.6c10.1 8.6 11.4 23.7 2.8 33.8s-23.7 11.4-33.8 2.8l-19.8-16.7zM40 64c22.1 0 40 17.9 40 40l0 40 0 80 0 40.2c0 17 6.7 33.3 18.7 45.3l51.1 51.1c8.3 8.3 21.3 9.6 31 3.1c12.9-8.6 14.7-26.9 3.7-37.8l-15.2-15.2-32-32c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l32 32 15.2 15.2c0 0 0 0 0 0l25.3 25.3c21 21 32.8 49.5 32.8 79.2l0 78.9c0 26.5-21.5 48-48 48l-66.7 0c-17 0-33.3-6.7-45.3-18.7L28.1 393.4C10.1 375.4 0 351 0 325.5L0 224l0-64 0-56C0 81.9 17.9 64 40 64zm560 0c22.1 0 40 17.9 40 40l0 56 0 64 0 101.5c0 25.5-10.1 49.9-28.1 67.9L512 493.3c-12 12-28.3 18.7-45.3 18.7L400 512c-26.5 0-48-21.5-48-48l0-78.9c0-29.7 11.8-58.2 32.8-79.2l25.3-25.3c0 0 0 0 0 0l15.2-15.2 32-32c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-32 32-15.2 15.2c-11 11-9.2 29.2 3.7 37.8c9.7 6.5 22.7 5.2 31-3.1l51.1-51.1c12-12 18.7-28.3 18.7-45.3l0-40.2 0-80 0-40c0-22.1 17.9-40 40-40z\"]\n};\nconst faAsterisk = {\n prefix: 'fas',\n iconName: 'asterisk',\n icon: [384, 512, [10033, 61545], \"2a\", \"M192 32c17.7 0 32 14.3 32 32l0 135.5 111.5-66.9c15.2-9.1 34.8-4.2 43.9 11s4.2 34.8-11 43.9L254.2 256l114.3 68.6c15.2 9.1 20.1 28.7 11 43.9s-28.7 20.1-43.9 11L224 312.5 224 448c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-135.5L48.5 379.4c-15.2 9.1-34.8 4.2-43.9-11s-4.2-34.8 11-43.9L129.8 256 15.5 187.4c-15.2-9.1-20.1-28.7-11-43.9s28.7-20.1 43.9-11L160 199.5 160 64c0-17.7 14.3-32 32-32z\"]\n};\nconst faSquareCheck = {\n prefix: 'fas',\n iconName: 'square-check',\n icon: [448, 512, [9745, 9989, 61510, \"check-square\"], \"f14a\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM337 209L209 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L303 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\"]\n};\nconst faCheckSquare = faSquareCheck;\nconst faPesetaSign = {\n prefix: 'fas',\n iconName: 'peseta-sign',\n icon: [384, 512, [], \"e221\", \"M64 32C46.3 32 32 46.3 32 64l0 96c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 96 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 96 0c77.4 0 142-55 156.8-128l3.2 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-3.2 0C334 87 269.4 32 192 32L64 32zM282.5 160L96 160l0-64 96 0c41.8 0 77.4 26.7 90.5 64zM96 224l186.5 0c-13.2 37.3-48.7 64-90.5 64l-96 0 0-64z\"]\n};\nconst faHeading = {\n prefix: 'fas',\n iconName: 'heading',\n icon: [448, 512, [\"header\"], \"f1dc\", \"M0 64C0 46.3 14.3 32 32 32l48 0 48 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 112 224 0 0-112-16 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l48 0 48 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 144 0 176 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-48 0-48 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-144-224 0 0 144 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-48 0-48 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-176L48 96 32 96C14.3 96 0 81.7 0 64z\"]\n};\nconst faHeader = faHeading;\nconst faGhost = {\n prefix: 'fas',\n iconName: 'ghost',\n icon: [384, 512, [128123], \"f6e2\", \"M40.1 467.1l-11.2 9c-3.2 2.5-7.1 3.9-11.1 3.9C8 480 0 472 0 462.2L0 192C0 86 86 0 192 0S384 86 384 192l0 270.2c0 9.8-8 17.8-17.8 17.8c-4 0-7.9-1.4-11.1-3.9l-11.2-9c-13.4-10.7-32.8-9-44.1 3.9L269.3 506c-3.3 3.8-8.2 6-13.3 6s-9.9-2.2-13.3-6l-26.6-30.5c-12.7-14.6-35.4-14.6-48.2 0L141.3 506c-3.3 3.8-8.2 6-13.3 6s-9.9-2.2-13.3-6L84.2 471c-11.3-12.9-30.7-14.6-44.1-3.9zM160 192a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nconst faList = {\n prefix: 'fas',\n iconName: 'list',\n icon: [512, 512, [\"list-squares\"], \"f03a\", \"M40 48C26.7 48 16 58.7 16 72l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24L40 48zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 64zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zM16 232l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24zM40 368c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-48 0z\"]\n};\nconst faListSquares = faList;\nconst faSquarePhoneFlip = {\n prefix: 'fas',\n iconName: 'square-phone-flip',\n icon: [448, 512, [\"phone-square-alt\"], \"f87b\", \"M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zm-90.7 96.7c-9.7-2.6-19.9 2.3-23.7 11.6l-20 48c-3.4 8.2-1 17.6 5.8 23.2L280 231.7c-16.6 35.2-45.1 63.7-80.3 80.3l-20.2-24.7c-5.6-6.8-15-9.2-23.2-5.8l-48 20c-9.3 3.9-14.2 14-11.6 23.7l12 44C111.1 378 119 384 128 384c123.7 0 224-100.3 224-224c0-9-6-16.9-14.7-19.3l-44-12z\"]\n};\nconst faPhoneSquareAlt = faSquarePhoneFlip;\nconst faCartPlus = {\n prefix: 'fas',\n iconName: 'cart-plus',\n icon: [576, 512, [], \"f217\", \"M0 24C0 10.7 10.7 0 24 0L69.5 0c22 0 41.5 12.8 50.6 32l411 0c26.3 0 45.5 25 38.6 50.4l-41 152.3c-8.5 31.4-37 53.3-69.5 53.3l-288.5 0 5.4 28.5c2.2 11.3 12.1 19.5 23.6 19.5L488 336c13.3 0 24 10.7 24 24s-10.7 24-24 24l-288.3 0c-34.6 0-64.3-24.6-70.7-58.5L77.4 54.5c-.7-3.8-4-6.5-7.9-6.5L24 48C10.7 48 0 37.3 0 24zM128 464a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm336-48a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM252 160c0 11 9 20 20 20l44 0 0 44c0 11 9 20 20 20s20-9 20-20l0-44 44 0c11 0 20-9 20-20s-9-20-20-20l-44 0 0-44c0-11-9-20-20-20s-20 9-20 20l0 44-44 0c-11 0-20 9-20 20z\"]\n};\nconst faGamepad = {\n prefix: 'fas',\n iconName: 'gamepad',\n icon: [640, 512, [], \"f11b\", \"M192 64C86 64 0 150 0 256S86 448 192 448l256 0c106 0 192-86 192-192s-86-192-192-192L192 64zM496 168a40 40 0 1 1 0 80 40 40 0 1 1 0-80zM392 304a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM168 200c0-13.3 10.7-24 24-24s24 10.7 24 24l0 32 32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0 0 32c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-32-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l32 0 0-32z\"]\n};\nconst faCircleDot = {\n prefix: 'fas',\n iconName: 'circle-dot',\n icon: [512, 512, [128280, \"dot-circle\"], \"f192\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-352a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"]\n};\nconst faDotCircle = faCircleDot;\nconst faFaceDizzy = {\n prefix: 'fas',\n iconName: 'face-dizzy',\n icon: [512, 512, [\"dizzy\"], \"f567\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-224a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM100.7 132.7c6.2-6.2 16.4-6.2 22.6 0L160 169.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L182.6 192l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L160 214.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L137.4 192l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6zm192 0c6.2-6.2 16.4-6.2 22.6 0L352 169.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L374.6 192l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L352 214.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L329.4 192l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6z\"]\n};\nconst faDizzy = faFaceDizzy;\nconst faEgg = {\n prefix: 'fas',\n iconName: 'egg',\n icon: [384, 512, [129370], \"f7fb\", \"M192 496C86 496 0 394 0 288C0 176 64 16 192 16s192 160 192 272c0 106-86 208-192 208zM154.8 134c6.5-6 7-16.1 1-22.6s-16.1-7-22.6-1c-23.9 21.8-41.1 52.7-52.3 84.2C69.7 226.1 64 259.7 64 288c0 8.8 7.2 16 16 16s16-7.2 16-16c0-24.5 5-54.4 15.1-82.8c10.1-28.5 25-54.1 43.7-71.2z\"]\n};\nconst faHouseMedicalCircleXmark = {\n prefix: 'fas',\n iconName: 'house-medical-circle-xmark',\n icon: [640, 512, [], \"e513\", \"M320 368c0 59.5 29.5 112.1 74.8 144l-266.7 0c-35.3 0-64-28.7-64-64l0-160.4-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L522.1 193.9c-8.5-1.3-17.3-1.9-26.1-1.9c-54.7 0-103.5 24.9-135.8 64L320 256l0-48c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 48-48 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zM496 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm22.6 144l36.7-36.7c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L496 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L473.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L496 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L518.6 368z\"]\n};\nconst faCampground = {\n prefix: 'fas',\n iconName: 'campground',\n icon: [576, 512, [9978], \"f6bb\", \"M377 52c11-13.8 8.8-33.9-5-45s-33.9-8.8-45 5L288 60.8 249 12c-11-13.8-31.2-16-45-5s-16 31.2-5 45l48 60L12.3 405.4C4.3 415.4 0 427.7 0 440.4L0 464c0 26.5 21.5 48 48 48l240 0 240 0c26.5 0 48-21.5 48-48l0-23.6c0-12.7-4.3-25.1-12.3-35L329 112l48-60zM288 448l-119.5 0L288 291.7 407.5 448 288 448z\"]\n};\nconst faFolderPlus = {\n prefix: 'fas',\n iconName: 'folder-plus',\n icon: [512, 512, [], \"f65e\", \"M512 416c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l128 0c20.1 0 39.1 9.5 51.2 25.6l19.2 25.6c6 8.1 15.5 12.8 25.6 12.8l160 0c35.3 0 64 28.7 64 64l0 256zM232 376c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64 64 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-64 0 0-64c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 64-64 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l64 0 0 64z\"]\n};\nconst faFutbol = {\n prefix: 'fas',\n iconName: 'futbol',\n icon: [512, 512, [9917, \"futbol-ball\", \"soccer-ball\"], \"f1e3\", \"M417.3 360.1l-71.6-4.8c-5.2-.3-10.3 1.1-14.5 4.2s-7.2 7.4-8.4 12.5l-17.6 69.6C289.5 445.8 273 448 256 448s-33.5-2.2-49.2-6.4L189.2 372c-1.3-5-4.3-9.4-8.4-12.5s-9.3-4.5-14.5-4.2l-71.6 4.8c-17.6-27.2-28.5-59.2-30.4-93.6L125 228.3c4.4-2.8 7.6-7 9.2-11.9s1.4-10.2-.5-15l-26.7-66.6C128 109.2 155.3 89 186.7 76.9l55.2 46c4 3.3 9 5.1 14.1 5.1s10.2-1.8 14.1-5.1l55.2-46c31.3 12.1 58.7 32.3 79.6 57.9l-26.7 66.6c-1.9 4.8-2.1 10.1-.5 15s4.9 9.1 9.2 11.9l60.7 38.2c-1.9 34.4-12.8 66.4-30.4 93.6zM256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm14.1-325.7c-8.4-6.1-19.8-6.1-28.2 0L194 221c-8.4 6.1-11.9 16.9-8.7 26.8l18.3 56.3c3.2 9.9 12.4 16.6 22.8 16.6l59.2 0c10.4 0 19.6-6.7 22.8-16.6l18.3-56.3c3.2-9.9-.3-20.7-8.7-26.8l-47.9-34.8z\"]\n};\nconst faFutbolBall = faFutbol;\nconst faSoccerBall = faFutbol;\nconst faPaintbrush = {\n prefix: 'fas',\n iconName: 'paintbrush',\n icon: [576, 512, [128396, \"paint-brush\"], \"f1fc\", \"M339.3 367.1c27.3-3.9 51.9-19.4 67.2-42.9L568.2 74.1c12.6-19.5 9.4-45.3-7.6-61.2S517.7-4.4 499.1 9.6L262.4 187.2c-24 18-38.2 46.1-38.4 76.1L339.3 367.1zm-19.6 25.4l-116-104.4C143.9 290.3 96 339.6 96 400c0 3.9 .2 7.8 .6 11.6C98.4 429.1 86.4 448 68.8 448L64 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l144 0c61.9 0 112-50.1 112-112c0-2.5-.1-5-.2-7.5z\"]\n};\nconst faPaintBrush = faPaintbrush;\nconst faLock = {\n prefix: 'fas',\n iconName: 'lock',\n icon: [448, 512, [128274], \"f023\", \"M144 144l0 48 160 0 0-48c0-44.2-35.8-80-80-80s-80 35.8-80 80zM80 192l0-48C80 64.5 144.5 0 224 0s144 64.5 144 144l0 48 16 0c35.3 0 64 28.7 64 64l0 192c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 256c0-35.3 28.7-64 64-64l16 0z\"]\n};\nconst faGasPump = {\n prefix: 'fas',\n iconName: 'gas-pump',\n icon: [512, 512, [9981], \"f52f\", \"M32 64C32 28.7 60.7 0 96 0L256 0c35.3 0 64 28.7 64 64l0 192 8 0c48.6 0 88 39.4 88 88l0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-154c-27.6-7.1-48-32.2-48-62l0-64L384 64c-8.8-8.8-8.8-23.2 0-32s23.2-8.8 32 0l77.3 77.3c12 12 18.7 28.3 18.7 45.3l0 13.5 0 24 0 32 0 152c0 39.8-32.2 72-72 72s-72-32.2-72-72l0-32c0-22.1-17.9-40-40-40l-8 0 0 144c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32L32 64zM96 80l0 96c0 8.8 7.2 16 16 16l128 0c8.8 0 16-7.2 16-16l0-96c0-8.8-7.2-16-16-16L112 64c-8.8 0-16 7.2-16 16z\"]\n};\nconst faHotTubPerson = {\n prefix: 'fas',\n iconName: 'hot-tub-person',\n icon: [512, 512, [\"hot-tub\"], \"f593\", \"M272 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 5.2c0 34 14.4 66.4 39.7 89.2l16.4 14.8c15.2 13.7 23.8 33.1 23.8 53.5l0 13.2c0 13.3 10.7 24 24 24s24-10.7 24-24l0-13.2c0-34-14.4-66.4-39.7-89.2L295.8 82.8C280.7 69.1 272 49.7 272 29.2l0-5.2zM0 320l0 16L0 448c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-128c0-35.3-28.7-64-64-64l-170.7 0c-13.8 0-27.3-4.5-38.4-12.8l-85.3-64C137 166.7 116.8 160 96 160c-53 0-96 43-96 96l0 64zm128 16l0 96c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-8.8 7.2-16 16-16s16 7.2 16 16zm80-16c8.8 0 16 7.2 16 16l0 96c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-8.8 7.2-16 16-16zm112 16l0 96c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-8.8 7.2-16 16-16s16 7.2 16 16zm80-16c8.8 0 16 7.2 16 16l0 96c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-8.8 7.2-16 16-16zM360 0c-13.3 0-24 10.7-24 24l0 5.2c0 34 14.4 66.4 39.7 89.2l16.4 14.8c15.2 13.7 23.8 33.1 23.8 53.5l0 13.2c0 13.3 10.7 24 24 24s24-10.7 24-24l0-13.2c0-34-14.4-66.4-39.7-89.2L407.8 82.8C392.7 69.1 384 49.7 384 29.2l0-5.2c0-13.3-10.7-24-24-24zM64 128A64 64 0 1 0 64 0a64 64 0 1 0 0 128z\"]\n};\nconst faHotTub = faHotTubPerson;\nconst faMapLocation = {\n prefix: 'fas',\n iconName: 'map-location',\n icon: [576, 512, [\"map-marked\"], \"f59f\", \"M302.8 312C334.9 271.9 408 174.6 408 120C408 53.7 354.3 0 288 0S168 53.7 168 120c0 54.6 73.1 151.9 105.2 192c7.7 9.6 22 9.6 29.6 0zM416 503l144.9-58c9.1-3.6 15.1-12.5 15.1-22.3L576 152c0-17-17.1-28.6-32.9-22.3l-116 46.4c-.5 1.2-1 2.5-1.5 3.7c-2.9 6.8-6.1 13.7-9.6 20.6L416 503zM15.1 187.3C6 191 0 199.8 0 209.6L0 480.4c0 17 17.1 28.6 32.9 22.3L160 451.8l0-251.4c-3.5-6.9-6.7-13.8-9.6-20.6c-5.6-13.2-10.4-27.4-12.8-41.5l-122.6 49zM384 255c-20.5 31.3-42.3 59.6-56.2 77c-20.5 25.6-59.1 25.6-79.6 0c-13.9-17.4-35.7-45.7-56.2-77l0 194.4 192 54.9L384 255z\"]\n};\nconst faMapMarked = faMapLocation;\nconst faHouseFloodWater = {\n prefix: 'fas',\n iconName: 'house-flood-water',\n icon: [576, 512, [], \"e50e\", \"M306.8 6.1C295.6-2 280.4-2 269.2 6.1l-176 128c-11.2 8.2-15.9 22.6-11.6 35.8S98.1 192 112 192l16 0 0 73c1.7 1 3.3 2 4.9 3.1c18 12.4 40.1 20.3 59.2 20.3c21.1 0 42-8.5 59.2-20.3c22.1-15.5 51.6-15.5 73.7 0c18.4 12.7 39.6 20.3 59.2 20.3c19 0 41.2-7.9 59.2-20.3c1.5-1 3-2 4.5-2.9l-.3-73.2 16.6 0c13.9 0 26.1-8.9 30.4-22.1s-.4-27.6-11.6-35.8l-176-128zM269.5 309.9C247 325.4 219.5 336 192 336c-26.9 0-55.3-10.8-77.4-26.1c0 0 0 0 0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 389.7 159 400 192 400c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.5-27.3-10.1-39.2-1.7c0 0 0 0 0 0C439.4 325.2 410.9 336 384 336c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0zM384 448c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0C247 437.4 219.5 448 192 448c-26.9 0-55.3-10.8-77.4-26.1c0 0 0 0 0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 501.7 159 512 192 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7c0 0 0 0 0 0C439.4 437.2 410.9 448 384 448z\"]\n};\nconst faTree = {\n prefix: 'fas',\n iconName: 'tree',\n icon: [448, 512, [127794], \"f1bb\", \"M210.6 5.9L62 169.4c-3.9 4.2-6 9.8-6 15.5C56 197.7 66.3 208 79.1 208l24.9 0L30.6 281.4c-4.2 4.2-6.6 10-6.6 16C24 309.9 34.1 320 46.6 320L80 320 5.4 409.5C1.9 413.7 0 419 0 424.5c0 13 10.5 23.5 23.5 23.5L192 448l0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 168.5 0c13 0 23.5-10.5 23.5-23.5c0-5.5-1.9-10.8-5.4-15L368 320l33.4 0c12.5 0 22.6-10.1 22.6-22.6c0-6-2.4-11.8-6.6-16L344 208l24.9 0c12.7 0 23.1-10.3 23.1-23.1c0-5.7-2.1-11.3-6-15.5L237.4 5.9C234 2.1 229.1 0 224 0s-10 2.1-13.4 5.9z\"]\n};\nconst faBridgeLock = {\n prefix: 'fas',\n iconName: 'bridge-lock',\n icon: [640, 512, [], \"e4cc\", \"M32 64c0-17.7 14.3-32 32-32l512 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-40 0 0 64-8 0c-61.9 0-112 50.1-112 112l0 24.6c-9.9 5.8-18.2 14.1-23.8 24.1c-17.6-20-43.4-32.7-72.2-32.7c-53 0-96 43-96 96l0 64c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-64c0-53-43-96-96-96l0-128 72 0 0-64L64 96C46.3 96 32 81.7 32 64zM408 96l0 64 80 0 0-64-80 0zm-48 64l0-64-80 0 0 64 80 0zM152 96l0 64 80 0 0-64-80 0zM528 240c-17.7 0-32 14.3-32 32l0 48 64 0 0-48c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80l0 48c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32l0-48z\"]\n};\nconst faSackDollar = {\n prefix: 'fas',\n iconName: 'sack-dollar',\n icon: [512, 512, [128176], \"f81d\", \"M320 96L192 96 144.6 24.9C137.5 14.2 145.1 0 157.9 0L354.1 0c12.8 0 20.4 14.2 13.3 24.9L320 96zM192 128l128 0c3.8 2.5 8.1 5.3 13 8.4C389.7 172.7 512 250.9 512 416c0 53-43 96-96 96L96 512c-53 0-96-43-96-96C0 250.9 122.3 172.7 179 136.4c0 0 0 0 0 0s0 0 0 0c4.8-3.1 9.2-5.9 13-8.4zm84 88c0-11-9-20-20-20s-20 9-20 20l0 14c-7.6 1.7-15.2 4.4-22.2 8.5c-13.9 8.3-25.9 22.8-25.8 43.9c.1 20.3 12 33.1 24.7 40.7c11 6.6 24.7 10.8 35.6 14l1.7 .5c12.6 3.8 21.8 6.8 28 10.7c5.1 3.2 5.8 5.4 5.9 8.2c.1 5-1.8 8-5.9 10.5c-5 3.1-12.9 5-21.4 4.7c-11.1-.4-21.5-3.9-35.1-8.5c-2.3-.8-4.7-1.6-7.2-2.4c-10.5-3.5-21.8 2.2-25.3 12.6s2.2 21.8 12.6 25.3c1.9 .6 4 1.3 6.1 2.1c0 0 0 0 0 0s0 0 0 0c8.3 2.9 17.9 6.2 28.2 8.4l0 14.6c0 11 9 20 20 20s20-9 20-20l0-13.8c8-1.7 16-4.5 23.2-9c14.3-8.9 25.1-24.1 24.8-45c-.3-20.3-11.7-33.4-24.6-41.6c-11.5-7.2-25.9-11.6-37.1-15c0 0 0 0 0 0l-.7-.2c-12.8-3.9-21.9-6.7-28.3-10.5c-5.2-3.1-5.3-4.9-5.3-6.7c0-3.7 1.4-6.5 6.2-9.3c5.4-3.2 13.6-5.1 21.5-5c9.6 .1 20.2 2.2 31.2 5.2c10.7 2.8 21.6-3.5 24.5-14.2s-3.5-21.6-14.2-24.5c-6.5-1.7-13.7-3.4-21.1-4.7l0-13.9z\"]\n};\nconst faPenToSquare = {\n prefix: 'fas',\n iconName: 'pen-to-square',\n icon: [512, 512, [\"edit\"], \"f044\", \"M471.6 21.7c-21.9-21.9-57.3-21.9-79.2 0L362.3 51.7l97.9 97.9 30.1-30.1c21.9-21.9 21.9-57.3 0-79.2L471.6 21.7zm-299.2 220c-6.1 6.1-10.8 13.6-13.5 21.9l-29.6 88.8c-2.9 8.6-.6 18.1 5.8 24.6s15.9 8.7 24.6 5.8l88.8-29.6c8.2-2.7 15.7-7.4 21.9-13.5L437.7 172.3 339.7 74.3 172.4 241.7zM96 64C43 64 0 107 0 160L0 416c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7-14.3 32-32 32L96 448c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 64z\"]\n};\nconst faEdit = faPenToSquare;\nconst faCarSide = {\n prefix: 'fas',\n iconName: 'car-side',\n icon: [640, 512, [128663], \"f5e4\", \"M171.3 96L224 96l0 96-112.7 0 30.4-75.9C146.5 104 158.2 96 171.3 96zM272 192l0-96 81.2 0c9.7 0 18.9 4.4 25 12l67.2 84L272 192zm256.2 1L428.2 68c-18.2-22.8-45.8-36-75-36L171.3 32c-39.3 0-74.6 23.9-89.1 60.3L40.6 196.4C16.8 205.8 0 228.9 0 256L0 368c0 17.7 14.3 32 32 32l33.3 0c7.6 45.4 47.1 80 94.7 80s87.1-34.6 94.7-80l130.7 0c7.6 45.4 47.1 80 94.7 80s87.1-34.6 94.7-80l33.3 0c17.7 0 32-14.3 32-32l0-48c0-65.2-48.8-119-111.8-127zM434.7 368a48 48 0 1 1 90.5 32 48 48 0 1 1 -90.5-32zM160 336a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"]\n};\nconst faShareNodes = {\n prefix: 'fas',\n iconName: 'share-nodes',\n icon: [448, 512, [\"share-alt\"], \"f1e0\", \"M352 224c53 0 96-43 96-96s-43-96-96-96s-96 43-96 96c0 4 .2 8 .7 11.9l-94.1 47C145.4 170.2 121.9 160 96 160c-53 0-96 43-96 96s43 96 96 96c25.9 0 49.4-10.2 66.6-26.9l94.1 47c-.5 3.9-.7 7.8-.7 11.9c0 53 43 96 96 96s96-43 96-96s-43-96-96-96c-25.9 0-49.4 10.2-66.6 26.9l-94.1-47c.5-3.9 .7-7.8 .7-11.9s-.2-8-.7-11.9l94.1-47C302.6 213.8 326.1 224 352 224z\"]\n};\nconst faShareAlt = faShareNodes;\nconst faHeartCircleMinus = {\n prefix: 'fas',\n iconName: 'heart-circle-minus',\n icon: [576, 512, [], \"e4ff\", \"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6l0-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1l0 5.8c0 41.5 17.2 81.2 47.6 109.5zM576 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-64 0c0 8.8-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l128 0c8.8 0 16 7.2 16 16z\"]\n};\nconst faHourglassHalf = {\n prefix: 'fas',\n iconName: 'hourglass-half',\n icon: [384, 512, [\"hourglass-2\"], \"f252\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l0 11c0 42.4 16.9 83.1 46.9 113.1L146.7 256 78.9 323.9C48.9 353.9 32 394.6 32 437l0 11c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 256 0 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-11c0-42.4-16.9-83.1-46.9-113.1L237.3 256l67.9-67.9c30-30 46.9-70.7 46.9-113.1l0-11c17.7 0 32-14.3 32-32s-14.3-32-32-32L320 0 64 0 32 0zM96 75l0-11 192 0 0 11c0 19-5.6 37.4-16 53L112 128c-10.3-15.6-16-34-16-53zm16 309c3.5-5.3 7.6-10.3 12.1-14.9L192 301.3l67.9 67.9c4.6 4.6 8.6 9.6 12.1 14.9L112 384z\"]\n};\nconst faHourglass2 = faHourglassHalf;\nconst faMicroscope = {\n prefix: 'fas',\n iconName: 'microscope',\n icon: [512, 512, [128300], \"f610\", \"M160 32c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32c17.7 0 32 14.3 32 32l0 224c0 17.7-14.3 32-32 32c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32c-17.7 0-32-14.3-32-32l0-224c0-17.7 14.3-32 32-32zM32 448l288 0c70.7 0 128-57.3 128-128s-57.3-128-128-128l0-64c106 0 192 86 192 192c0 49.2-18.5 94-48.9 128l16.9 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-160 0L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32zm80-64l192 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nconst faSink = {\n prefix: 'fas',\n iconName: 'sink',\n icon: [512, 512, [], \"e06d\", \"M288 96c0-17.7 14.3-32 32-32s32 14.3 32 32s14.3 32 32 32s32-14.3 32-32c0-53-43-96-96-96s-96 43-96 96l0 192-64 0 0-24c0-30.9-25.1-56-56-56l-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c4.4 0 8 3.6 8 8l0 24-80 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l224 0 224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-80 0 0-24c0-4.4 3.6-8 8-8l56 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-56 0c-30.9 0-56 25.1-56 56l0 24-64 0 0-192zM480 416l0-32L32 384l0 32c0 53 43 96 96 96l256 0c53 0 96-43 96-96z\"]\n};\nconst faBagShopping = {\n prefix: 'fas',\n iconName: 'bag-shopping',\n icon: [448, 512, [\"shopping-bag\"], \"f290\", \"M160 112c0-35.3 28.7-64 64-64s64 28.7 64 64l0 48-128 0 0-48zm-48 48l-64 0c-26.5 0-48 21.5-48 48L0 416c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-208c0-26.5-21.5-48-48-48l-64 0 0-48C336 50.1 285.9 0 224 0S112 50.1 112 112l0 48zm24 48a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm152 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nconst faShoppingBag = faBagShopping;\nconst faArrowDownZA = {\n prefix: 'fas',\n iconName: 'arrow-down-z-a',\n icon: [576, 512, [\"sort-alpha-desc\", \"sort-alpha-down-alt\"], \"f881\", \"M183.6 469.6C177.5 476.2 169 480 160 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L128 365.7 128 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 301.7 32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 64c0-17.7 14.3-32 32-32l128 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9L429.3 160l50.7 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-128 0c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9L402.7 96 352 96c-17.7 0-32-14.3-32-32zm96 192c12.1 0 23.2 6.8 28.6 17.7l64 128 16 32c7.9 15.8 1.5 35-14.3 42.9s-35 1.5-42.9-14.3L460.2 448l-88.4 0-7.2 14.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l16-32 64-128c5.4-10.8 16.5-17.7 28.6-17.7zM395.8 400l40.4 0L416 359.6 395.8 400z\"]\n};\nconst faSortAlphaDesc = faArrowDownZA;\nconst faSortAlphaDownAlt = faArrowDownZA;\nconst faMitten = {\n prefix: 'fas',\n iconName: 'mitten',\n icon: [448, 512, [], \"f7b5\", \"M352 384L64 384 5.4 178.9C1.8 166.4 0 153.4 0 140.3C0 62.8 62.8 0 140.3 0l3.4 0c66 0 123.5 44.9 139.5 108.9l31.4 125.8 17.6-20.1C344.8 200.2 362.9 192 382 192l2.8 0c34.9 0 63.3 28.3 63.3 63.3c0 15.9-6 31.2-16.8 42.9L352 384zM32 448c0-17.7 14.3-32 32-32l288 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L64 512c-17.7 0-32-14.3-32-32l0-32z\"]\n};\nconst faPersonRays = {\n prefix: 'fas',\n iconName: 'person-rays',\n icon: [512, 512, [], \"e54d\", \"M208 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-223.1-28.6 47.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6l29.7 0c33.7 0 64.9 17.7 82.3 46.6l58.3 97c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9L328 256.9 328 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0zM7 7C16.4-2.3 31.6-2.3 41 7l80 80c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L7 41C-2.3 31.6-2.3 16.4 7 7zM471 7c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-80 80c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L471 7zM7 505c-9.4-9.4-9.4-24.6 0-33.9l80-80c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L41 505c-9.4 9.4-24.6 9.4-33.9 0zm464 0l-80-80c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l80 80c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0z\"]\n};\nconst faUsers = {\n prefix: 'fas',\n iconName: 'users',\n icon: [640, 512, [], \"f0c0\", \"M144 0a80 80 0 1 1 0 160A80 80 0 1 1 144 0zM512 0a80 80 0 1 1 0 160A80 80 0 1 1 512 0zM0 298.7C0 239.8 47.8 192 106.7 192l42.7 0c15.9 0 31 3.5 44.6 9.7c-1.3 7.2-1.9 14.7-1.9 22.3c0 38.2 16.8 72.5 43.3 96c-.2 0-.4 0-.7 0L21.3 320C9.6 320 0 310.4 0 298.7zM405.3 320c-.2 0-.4 0-.7 0c26.6-23.5 43.3-57.8 43.3-96c0-7.6-.7-15-1.9-22.3c13.6-6.3 28.7-9.7 44.6-9.7l42.7 0C592.2 192 640 239.8 640 298.7c0 11.8-9.6 21.3-21.3 21.3l-213.3 0zM224 224a96 96 0 1 1 192 0 96 96 0 1 1 -192 0zM128 485.3C128 411.7 187.7 352 261.3 352l117.3 0C452.3 352 512 411.7 512 485.3c0 14.7-11.9 26.7-26.7 26.7l-330.7 0c-14.7 0-26.7-11.9-26.7-26.7z\"]\n};\nconst faEyeSlash = {\n prefix: 'fas',\n iconName: 'eye-slash',\n icon: [640, 512, [], \"f070\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zM223.1 149.5C248.6 126.2 282.7 112 320 112c79.5 0 144 64.5 144 144c0 24.9-6.3 48.3-17.4 68.7L408 294.5c8.4-19.3 10.6-41.4 4.8-63.3c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3c0 10.2-2.4 19.8-6.6 28.3l-90.3-70.8zM373 389.9c-16.4 6.5-34.3 10.1-53 10.1c-79.5 0-144-64.5-144-144c0-6.9 .5-13.6 1.4-20.2L83.1 161.5C60.3 191.2 44 220.8 34.5 243.7c-3.3 7.9-3.3 16.7 0 24.6c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c47.8 0 89.9-12.9 126.2-32.5L373 389.9z\"]\n};\nconst faFlaskVial = {\n prefix: 'fas',\n iconName: 'flask-vial',\n icon: [640, 512, [], \"e4f3\", \"M175 389.4c-9.8 16-15 34.3-15 53.1c-10 3.5-20.8 5.5-32 5.5c-53 0-96-43-96-96L32 64C14.3 64 0 49.7 0 32S14.3 0 32 0L96 0l64 0 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 245.9-49 79.6zM96 64l0 96 64 0 0-96L96 64zM352 0L480 0l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 150.9L629.7 406.2c6.7 10.9 10.3 23.5 10.3 36.4c0 38.3-31.1 69.4-69.4 69.4l-309.2 0c-38.3 0-69.4-31.1-69.4-69.4c0-12.8 3.6-25.4 10.3-36.4L320 214.9 320 64c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0zm32 64l0 160c0 5.9-1.6 11.7-4.7 16.8L330.5 320l171 0-48.8-79.2c-3.1-5-4.7-10.8-4.7-16.8l0-160-64 0z\"]\n};\nconst faHand = {\n prefix: 'fas',\n iconName: 'hand',\n icon: [512, 512, [129306, 9995, \"hand-paper\"], \"f256\", \"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 208c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-176c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 272c0 1.5 0 3.1 .1 4.6L67.6 283c-16-15.2-41.3-14.6-56.6 1.4s-14.6 41.3 1.4 56.6L124.8 448c43.1 41.1 100.4 64 160 64l19.2 0c97.2 0 176-78.8 176-176l0-208c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 112c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-176c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 176c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-208z\"]\n};\nconst faHandPaper = faHand;\nconst faOm = {\n prefix: 'fas',\n iconName: 'om',\n icon: [512, 512, [128329], \"f679\", \"M379.3 4.7c-6.2-6.2-16.4-6.2-22.6 0l-16 16c-6.2 6.2-6.2 16.4 0 22.6l16 16c6.2 6.2 16.4 6.2 22.6 0l16-16c6.2-6.2 6.2-16.4 0-22.6l-16-16zM281 66.7c-2.2-1.5-4.9-2.5-7.7-2.7c-.6 0-1.3-.1-1.9 0c-3.9 .2-7.4 1.7-10.1 4.2c-.9 .8-1.6 1.7-2.3 2.6c-1.7 2.4-2.7 5.3-2.9 8.5c0 .7 0 1.4 0 2.1c.2 2.2 .9 4.3 1.9 6.2l.3 .6c.3 .6 .8 1.4 1.4 2.4c1.2 2 2.9 4.8 5.1 8.2c4.4 6.7 11.1 15.5 20 24.4C302.4 141.1 330.3 160 368 160c31.2 0 56.6-10.4 73.9-20.2c8.7-5 15.6-9.9 20.4-13.8c2.4-1.9 4.3-3.6 5.7-4.9c.7-.6 1.3-1.2 1.7-1.6l.6-.5 .1-.1 .1-.1s0 0 0 0s0 0 0 0c5.9-5.8 9.5-13.9 9.5-22.8c0-17.7-14.3-32-32-32c-8.7 0-16.7 3.5-22.4 9.2c-.1 .1-.2 .2-.5 .4c-.5 .5-1.5 1.3-2.8 2.4c-2.7 2.2-6.8 5.2-12.1 8.2C399.4 90.4 384.8 96 368 96c-20.8 0-42.4-7-59.5-14.6c-8.4-3.7-15.4-7.5-20.3-10.3c-2.4-1.4-4.3-2.5-5.6-3.3c-.6-.4-1.1-.7-1.4-.9l-.3-.2zM115.2 169.6c8-6 17.9-9.6 28.8-9.6c26.5 0 48 21.5 48 48s-21.5 48-48 48l-34.2 0c-7.6 0-13.8 6.2-13.8 13.8c0 1.5 .2 2.9 .7 4.4l8 24c4.4 13.1 16.6 21.9 30.4 21.9l8.9 0 16 0c35.3 0 64 28.7 64 64s-28.7 64-64 64c-50.8 0-82.7-21.5-102.2-42.8c-9.9-10.8-16.6-21.6-20.9-29.7c-2.1-4-3.6-7.3-4.5-9.6c-.5-1.1-.8-2-1-2.5l-.2-.5c-.3-.9-.7-1.8-1.1-2.6c-1.2-2.2-2.8-4-4.7-5.4c-1.9-1.4-4.1-2.3-6.5-2.8c-1.4-.3-2.9-.3-4.4-.2c-2.5 .2-4.8 1-6.8 2.3c-1.1 .7-2.2 1.5-3.1 2.5c-2.4 2.5-4.1 5.8-4.5 9.5c-.1 .6-.1 1.1-.1 1.7c0 0 0 0 0 0c0 .8 .1 1.7 .2 2.5l0 .1c0 .3 .1 .8 .2 1.3c.2 1.1 .4 2.7 .8 4.6c.8 3.9 2 9.4 3.9 15.9c3.8 13 10.3 30.4 21.3 48C48.7 476.2 89.4 512 160 512c70.7 0 128-57.3 128-128c0-23.3-6.2-45.2-17.1-64l22.6 0c25.5 0 49.9-10.1 67.9-28.1l26.5-26.5c6-6 14.1-9.4 22.6-9.4l5.5 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32c-25.7 0-41.4-12.5-51.2-25.6c-5-6.7-8.4-13.4-10.5-18.6c-1.1-2.5-1.8-4.6-2.2-6c-.2-.7-.4-1.2-.5-1.5l-.1-.2c-.3-1.3-.8-2.6-1.5-3.8c-1.1-2-2.6-3.8-4.4-5.1c-2.7-2-6-3.2-9.6-3.2l-.2 0c-8 .1-14.6 6.1-15.6 13.9c0 0 0 0 0 0c0 .3-.1 .6-.2 1.1c-.1 .9-.3 2.1-.4 3.6c-.3 3-.6 7.3-.6 12.4c0 10.1 1.1 23.9 5.8 38.1c4.8 14.3 13.4 29.3 28.6 40.7C368.7 473.3 389.3 480 416 480c53 0 96-43 96-96l0-96c0-53-43-96-96-96l-5.5 0c-25.5 0-49.9 10.1-67.9 28.1l-26.5 26.5c-6 6-14.1 9.4-22.6 9.4l-48.3 0c6.9-14.5 10.8-30.8 10.8-48c0-61.9-50.1-112-112-112c-25.2 0-48.5 8.3-67.2 22.4c-14.1 10.6-17 30.7-6.4 44.8s30.7 17 44.8 6.4z\"]\n};\nconst faWorm = {\n prefix: 'fas',\n iconName: 'worm',\n icon: [512, 512, [], \"e599\", \"M256 96c0-53 43-96 96-96l38.4 0C439.9 0 480 40.1 480 89.6l0 86.4 0 16 0 184c0 75.1-60.9 136-136 136s-136-60.9-136-136l0-80c0-22.1-17.9-40-40-40s-40 17.9-40 40l0 168c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-168c0-75.1 60.9-136 136-136s136 60.9 136 136l0 80c0 22.1 17.9 40 40 40s40-17.9 40-40l0-184-32 0c-53 0-96-43-96-96zm144-8a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"]\n};\nconst faHouseCircleXmark = {\n prefix: 'fas',\n iconName: 'house-circle-xmark',\n icon: [640, 512, [], \"e50b\", \"M320.7 352c8.1-89.7 83.5-160 175.3-160c8.9 0 17.6 .7 26.1 1.9L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1l32 0 0 69.7c-.1 .9-.1 1.8-.1 2.8l0 112c0 22.1 17.9 40 40 40l16 0c1.2 0 2.4-.1 3.6-.2c1.5 .1 3 .2 4.5 .2l31.9 0 24 0c22.1 0 40-17.9 40-40l0-24 0-64c0-17.7 14.3-32 32-32l64 0 .7 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nconst faPlug = {\n prefix: 'fas',\n iconName: 'plug',\n icon: [384, 512, [128268], \"f1e6\", \"M96 0C78.3 0 64 14.3 64 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c0 77.4 55 142 128 156.8l0 67.2c0 17.7 14.3 32 32 32s32-14.3 32-32l0-67.2C297 398 352 333.4 352 256l0-32c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 160z\"]\n};\nconst faChevronUp = {\n prefix: 'fas',\n iconName: 'chevron-up',\n icon: [512, 512, [], \"f077\", \"M233.4 105.4c12.5-12.5 32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L256 173.3 86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l192-192z\"]\n};\nconst faHandSpock = {\n prefix: 'fas',\n iconName: 'hand-spock',\n icon: [576, 512, [128406], \"f259\", \"M246.9 23.7C242.3 6.6 224.8-3.5 207.7 1.1s-27.2 22.1-22.6 39.2L238 237.8c2.5 9.2-4.5 18.2-14 18.2c-6.4 0-12-4.2-13.9-10.3L166.6 102.7c-5.1-16.9-23-26.4-39.9-21.3s-26.4 23-21.3 39.9l62.8 206.4c2.4 7.9-7.2 13.8-13.2 8.1L99.6 283c-16-15.2-41.3-14.6-56.6 1.4s-14.6 41.3 1.4 56.6L156.8 448c43.1 41.1 100.4 64 160 64l10.9 0 8.2 0c.1 0 .1-.1 .1-.1s.1-.1 .1-.1c58.3-3.5 108.6-43.2 125.3-99.7l81.2-275c5-16.9-4.7-34.7-21.6-39.8s-34.7 4.7-39.8 21.6L443.5 247.1c-1.6 5.3-6.4 8.9-12 8.9c-7.9 0-13.8-7.3-12.2-15.1l36-170.3c3.7-17.3-7.4-34.3-24.7-37.9s-34.3 7.4-37.9 24.7L355.1 235.1c-2.6 12.2-13.3 20.9-25.8 20.9c-11.9 0-22.4-8-25.4-19.5l-57-212.8z\"]\n};\nconst faStopwatch = {\n prefix: 'fas',\n iconName: 'stopwatch',\n icon: [448, 512, [9201], \"f2f2\", \"M176 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l16 0 0 34.4C92.3 113.8 16 200 16 304c0 114.9 93.1 208 208 208s208-93.1 208-208c0-41.8-12.3-80.7-33.5-113.2l24.1-24.1c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L355.7 143c-28.1-23-62.2-38.8-99.7-44.6L256 64l16 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L224 0 176 0zm72 192l0 128c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-128c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nconst faFaceKiss = {\n prefix: 'fas',\n iconName: 'face-kiss',\n icon: [512, 512, [128535, \"kiss\"], \"f596\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm48.7-198.3c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C274.7 443.1 257.4 448 240 448c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9c0 0 0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7c0 0 0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1 .3-.2 .6-.4c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1l-.4-.3-.5-.3-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nconst faKiss = faFaceKiss;\nconst faBridgeCircleXmark = {\n prefix: 'fas',\n iconName: 'bridge-circle-xmark',\n icon: [640, 512, [], \"e4cb\", \"M64 32C46.3 32 32 46.3 32 64s14.3 32 32 32l40 0 0 64-72 0 0 128c53 0 96 43 96 96l0 64c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-64c0-53 43-96 96-96c6.3 0 12.4 .6 18.3 1.7C367.1 231.8 426.9 192 496 192c42.5 0 81.6 15.1 112 40.2l0-72.2-72 0 0-64 40 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 32zM488 96l0 64-80 0 0-64 80 0zM360 96l0 64-80 0 0-64 80 0zM232 96l0 64-80 0 0-64 80 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nconst faFaceGrinTongue = {\n prefix: 'fas',\n iconName: 'face-grin-tongue',\n icon: [512, 512, [128539, \"grin-tongue\"], \"f589\", \"M0 256C0 368.9 73.1 464.7 174.5 498.8C165.3 484 160 466.6 160 448l0-47.3c-24-17.5-43.1-41.4-54.8-69.2c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19c12.3-3.8 24.3 6.9 19.3 18.7c-11.8 28-31.1 52-55.4 69.6l0 46.9c0 18.6-5.3 36-14.5 50.8C438.9 464.7 512 368.9 512 256C512 114.6 397.4 0 256 0S0 114.6 0 256zm176.4-80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM320 448l0-45.4c0-14.7-11.9-26.6-26.6-26.6l-2 0c-11.3 0-21.1 7.9-23.6 18.9c-2.8 12.6-20.8 12.6-23.6 0c-2.5-11.1-12.3-18.9-23.6-18.9l-2 0c-14.7 0-26.6 11.9-26.6 26.6l0 45.4c0 35.3 28.7 64 64 64s64-28.7 64-64z\"]\n};\nconst faGrinTongue = faFaceGrinTongue;\nconst faChessBishop = {\n prefix: 'fas',\n iconName: 'chess-bishop',\n icon: [320, 512, [9821], \"f43a\", \"M128 0C110.3 0 96 14.3 96 32c0 16.1 11.9 29.4 27.4 31.7C78.4 106.8 8 190 8 288c0 47.4 30.8 72.3 56 84.7L64 400l192 0 0-27.3c25.2-12.5 56-37.4 56-84.7c0-37.3-10.2-72.4-25.3-104.1l-99.4 99.4c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L270.8 154.6c-23.2-38.1-51.8-69.5-74.2-90.9C212.1 61.4 224 48.1 224 32c0-17.7-14.3-32-32-32L128 0zM48 432L6.6 473.4c-4.2 4.2-6.6 10-6.6 16C0 501.9 10.1 512 22.6 512l274.7 0c12.5 0 22.6-10.1 22.6-22.6c0-6-2.4-11.8-6.6-16L272 432 48 432z\"]\n};\nconst faFaceGrinWink = {\n prefix: 'fas',\n iconName: 'face-grin-wink',\n icon: [512, 512, [\"grin-wink\"], \"f58c\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zm-16.9-79.2c-17.6-23.5-52.8-23.5-70.4 0c-5.3 7.1-15.3 8.5-22.4 3.2s-8.5-15.3-3.2-22.4c30.4-40.5 91.2-40.5 121.6 0c5.3 7.1 3.9 17.1-3.2 22.4s-17.1 3.9-22.4-3.2zM176.4 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nconst faGrinWink = faFaceGrinWink;\nconst faEarDeaf = {\n prefix: 'fas',\n iconName: 'ear-deaf',\n icon: [512, 512, [\"deaf\", \"deafness\", \"hard-of-hearing\"], \"f2a4\", \"M502.6 54.6l-40 40c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l40-40c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zm-320 320l-128 128c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l128-128c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zM240 128c-57.6 0-105.1 43.6-111.3 99.5c-1.9 17.6-17.8 30.2-35.3 28.3s-30.2-17.8-28.3-35.3C74.8 132.5 149.4 64 240 64c97.2 0 176 78.8 176 176c0 46-17.7 87.9-46.6 119.3c-12 13-17.4 24.8-17.4 34.7l0 6.1c0 61.9-50.1 112-112 112c-17.7 0-32-14.3-32-32s14.3-32 32-32c26.5 0 48-21.5 48-48l0-6.1c0-32.9 17.4-59.6 34.4-78c18.4-20 29.6-46.6 29.6-75.9c0-61.9-50.1-112-112-112zm0 80c-17.7 0-32 14.3-32 32c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-44.2 35.8-80 80-80s80 35.8 80 80c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-17.7-14.3-32-32-32z\"]\n};\nconst faDeaf = faEarDeaf;\nconst faDeafness = faEarDeaf;\nconst faHardOfHearing = faEarDeaf;\nconst faRoadCircleCheck = {\n prefix: 'fas',\n iconName: 'road-circle-check',\n icon: [640, 512, [], \"e564\", \"M213.2 32L288 32l0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 74.8 0c27.1 0 51.3 17.1 60.3 42.6l42.7 120.6c-10.9-2.1-22.2-3.2-33.8-3.2c-59.5 0-112.1 29.6-144 74.8l0-42.8c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32c2.3 0 4.6-.3 6.8-.7c-4.5 15.5-6.8 31.8-6.8 48.7c0 5.4 .2 10.7 .7 16l-.7 0c-17.7 0-32 14.3-32 32l0 64L86.6 480C56.5 480 32 455.5 32 425.4c0-6.2 1.1-12.4 3.1-18.2L152.9 74.6C162 49.1 186.1 32 213.2 32zM352 368a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm211.3-43.3c-6.2-6.2-16.4-6.2-22.6 0L480 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z\"]\n};\nconst faDiceFive = {\n prefix: 'fas',\n iconName: 'dice-five',\n icon: [448, 512, [9860], \"f523\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm64 96a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM96 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM224 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64-64a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32 160a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nconst faSquareRss = {\n prefix: 'fas',\n iconName: 'square-rss',\n icon: [448, 512, [\"rss-square\"], \"f143\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM96 136c0-13.3 10.7-24 24-24c137 0 248 111 248 248c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-110.5-89.5-200-200-200c-13.3 0-24-10.7-24-24zm0 96c0-13.3 10.7-24 24-24c83.9 0 152 68.1 152 152c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-57.4-46.6-104-104-104c-13.3 0-24-10.7-24-24zm0 120a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nconst faRssSquare = faSquareRss;\nconst faLandMineOn = {\n prefix: 'fas',\n iconName: 'land-mine-on',\n icon: [640, 512, [], \"e51b\", \"M344 24l0 144c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-144c0-13.3 10.7-24 24-24s24 10.7 24 24zM192 320c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32l0 32-256 0 0-32zm-77.3 90.5c8.1-16.3 24.8-26.5 42.9-26.5l324.7 0c18.2 0 34.8 10.3 42.9 26.5l27.6 55.2C563.5 487 548 512 524.2 512l-408.4 0c-23.8 0-39.3-25-28.6-46.3l27.6-55.2zM36.3 138.3c7.5-10.9 22.5-13.6 33.4-6.1l104 72c10.9 7.5 13.6 22.5 6.1 33.4s-22.5 13.6-33.4 6.1l-104-72c-10.9-7.5-13.6-22.5-6.1-33.4zm534.1-6.1c10.9-7.5 25.8-4.8 33.4 6.1s4.8 25.8-6.1 33.4l-104 72c-10.9 7.5-25.8 4.8-33.4-6.1s-4.8-25.8 6.1-33.4l104-72z\"]\n};\nconst faICursor = {\n prefix: 'fas',\n iconName: 'i-cursor',\n icon: [256, 512, [], \"f246\", \"M.1 29.3C-1.4 47 11.7 62.4 29.3 63.9l8 .7C70.5 67.3 96 95 96 128.3L96 224l-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 95.7c0 33.3-25.5 61-58.7 63.8l-8 .7C11.7 449.6-1.4 465 .1 482.7s16.9 30.7 34.5 29.2l8-.7c34.1-2.8 64.2-18.9 85.4-42.9c21.2 24 51.2 40 85.4 42.9l8 .7c17.6 1.5 33.1-11.6 34.5-29.2s-11.6-33.1-29.2-34.5l-8-.7C185.5 444.7 160 417 160 383.7l0-95.7 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-95.7c0-33.3 25.5-61 58.7-63.8l8-.7c17.6-1.5 30.7-16.9 29.2-34.5S239-1.4 221.3 .1l-8 .7C179.2 3.6 149.2 19.7 128 43.7c-21.2-24-51.2-40-85.4-42.9l-8-.7C17-1.4 1.6 11.7 .1 29.3z\"]\n};\nconst faStamp = {\n prefix: 'fas',\n iconName: 'stamp',\n icon: [512, 512, [], \"f5bf\", \"M312 201.8c0-17.4 9.2-33.2 19.9-47C344.5 138.5 352 118.1 352 96c0-53-43-96-96-96s-96 43-96 96c0 22.1 7.5 42.5 20.1 58.8c10.7 13.8 19.9 29.6 19.9 47c0 29.9-24.3 54.2-54.2 54.2L112 256C50.1 256 0 306.1 0 368c0 20.9 13.4 38.7 32 45.3L32 464c0 26.5 21.5 48 48 48l352 0c26.5 0 48-21.5 48-48l0-50.7c18.6-6.6 32-24.4 32-45.3c0-61.9-50.1-112-112-112l-33.8 0c-29.9 0-54.2-24.3-54.2-54.2zM416 416l0 32L96 448l0-32 320 0z\"]\n};\nconst faStairs = {\n prefix: 'fas',\n iconName: 'stairs',\n icon: [576, 512, [], \"e289\", \"M384 64c0-17.7 14.3-32 32-32l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0 0 96c0 17.7-14.3 32-32 32l-96 0 0 96c0 17.7-14.3 32-32 32l-96 0 0 96c0 17.7-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0 0-96c0-17.7 14.3-32 32-32l96 0 0-96c0-17.7 14.3-32 32-32l96 0 0-96z\"]\n};\nconst faI = {\n prefix: 'fas',\n iconName: 'i',\n icon: [320, 512, [105], \"49\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l96 0 0 320-96 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0 0-320 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L160 32 32 32z\"]\n};\nconst faHryvniaSign = {\n prefix: 'fas',\n iconName: 'hryvnia-sign',\n icon: [384, 512, [8372, \"hryvnia\"], \"f6f2\", \"M121.9 116.2C138.3 103.1 158.7 96 179.6 96L223 96c27.1 0 49 21.9 49 49c0 11.5-4 22.4-11.1 31L32 176c-17.7 0-32 14.3-32 32s14.3 32 32 32l123.5 0-50.6 28.9c-1.7 1-3.4 2-5.1 3.1L32 272c-17.7 0-32 14.3-32 32s14.3 32 32 32l20.3 0c-2.8 9.9-4.3 20.4-4.3 31c0 62.4 50.6 113 113 113l43.4 0c35.5 0 70-12.1 97.7-34.3L308 441c13.8-11 16-31.2 5-45s-31.2-16-45-5l-5.9 4.7c-16.4 13.1-36.7 20.2-57.7 20.2L161 416c-27.1 0-49-21.9-49-49c0-11.5 4-22.4 11.1-31L352 336c17.7 0 32-14.3 32-32s-14.3-32-32-32l-123.5 0 50.6-28.9c1.7-1 3.4-2 5.1-3.1l67.8 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-20.3 0c2.8-10 4.3-20.4 4.3-31c0-62.4-50.6-113-113-113l-43.4 0c-35.5 0-70 12.1-97.7 34.3L76 71c-13.8 11-16 31.2-5 45s31.2 16 45 5l5.9-4.7z\"]\n};\nconst faHryvnia = faHryvniaSign;\nconst faPills = {\n prefix: 'fas',\n iconName: 'pills',\n icon: [576, 512, [], \"f484\", \"M112 96c-26.5 0-48 21.5-48 48l0 112 96 0 0-112c0-26.5-21.5-48-48-48zM0 144C0 82.1 50.1 32 112 32s112 50.1 112 112l0 224c0 61.9-50.1 112-112 112S0 429.9 0 368L0 144zM554.9 399.4c-7.1 12.3-23.7 13.1-33.8 3.1L333.5 214.9c-10-10-9.3-26.7 3.1-33.8C360 167.7 387.1 160 416 160c88.4 0 160 71.6 160 160c0 28.9-7.7 56-21.1 79.4zm-59.5 59.5C472 472.3 444.9 480 416 480c-88.4 0-160-71.6-160-160c0-28.9 7.7-56 21.1-79.4c7.1-12.3 23.7-13.1 33.8-3.1L498.5 425.1c10 10 9.3 26.7-3.1 33.8z\"]\n};\nconst faFaceGrinWide = {\n prefix: 'fas',\n iconName: 'face-grin-wide',\n icon: [512, 512, [128515, \"grin-alt\"], \"f581\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zM208 192c0 35.3-14.3 64-32 64s-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64zm128 64c-17.7 0-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64s-14.3 64-32 64z\"]\n};\nconst faGrinAlt = faFaceGrinWide;\nconst faTooth = {\n prefix: 'fas',\n iconName: 'tooth',\n icon: [448, 512, [129463], \"f5c9\", \"M186.1 52.1C169.3 39.1 148.7 32 127.5 32C74.7 32 32 74.7 32 127.5l0 6.2c0 15.8 3.7 31.3 10.7 45.5l23.5 47.1c4.5 8.9 7.6 18.4 9.4 28.2l36.7 205.8c2 11.2 11.6 19.4 22.9 19.8s21.4-7.4 24-18.4l28.9-121.3C192.2 323.7 207 312 224 312s31.8 11.7 35.8 28.3l28.9 121.3c2.6 11.1 12.7 18.8 24 18.4s20.9-8.6 22.9-19.8l36.7-205.8c1.8-9.8 4.9-19.3 9.4-28.2l23.5-47.1c7.1-14.1 10.7-29.7 10.7-45.5l0-2.1c0-55-44.6-99.6-99.6-99.6c-24.1 0-47.4 8.8-65.6 24.6l-3.2 2.8 19.5 15.2c7 5.4 8.2 15.5 2.8 22.5s-15.5 8.2-22.5 2.8l-24.4-19-37-28.8z\"]\n};\nconst faV = {\n prefix: 'fas',\n iconName: 'v',\n icon: [384, 512, [118], \"56\", \"M19.7 34.5c16.3-6.8 35 .9 41.8 17.2L192 364.8 322.5 51.7c6.8-16.3 25.5-24 41.8-17.2s24 25.5 17.2 41.8l-160 384c-5 11.9-16.6 19.7-29.5 19.7s-24.6-7.8-29.5-19.7L2.5 76.3c-6.8-16.3 .9-35 17.2-41.8z\"]\n};\nconst faBangladeshiTakaSign = {\n prefix: 'fas',\n iconName: 'bangladeshi-taka-sign',\n icon: [384, 512, [], \"e2e6\", \"M36 32.3C18.4 30.1 2.4 42.5 .2 60S10.5 93.6 28 95.8l7.9 1c16 2 28 15.6 28 31.8L64 160l-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 160c0 53 43 96 96 96l32 0c106 0 192-86 192-192l0-32c0-53-43-96-96-96l-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l16 0c17.7 0 32 14.3 32 32l0 32c0 70.7-57.3 128-128 128l-32 0c-17.7 0-32-14.3-32-32l0-160 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-31.5c0-48.4-36.1-89.3-84.1-95.3l-7.9-1z\"]\n};\nconst faBicycle = {\n prefix: 'fas',\n iconName: 'bicycle',\n icon: [640, 512, [128690], \"f206\", \"M312 32c-13.3 0-24 10.7-24 24s10.7 24 24 24l25.7 0 34.6 64-149.4 0-27.4-38C191 99.7 183.7 96 176 96l-56 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l43.7 0 22.1 30.7-26.6 53.1c-10-2.5-20.5-3.8-31.2-3.8C57.3 224 0 281.3 0 352s57.3 128 128 128c65.3 0 119.1-48.9 127-112l49 0c8.5 0 16.3-4.5 20.7-11.8l84.8-143.5 21.7 40.1C402.4 276.3 384 312 384 352c0 70.7 57.3 128 128 128s128-57.3 128-128s-57.3-128-128-128c-13.5 0-26.5 2.1-38.7 6L375.4 48.8C369.8 38.4 359 32 347.2 32L312 32zM458.6 303.7l32.3 59.7c6.3 11.7 20.9 16 32.5 9.7s16-20.9 9.7-32.5l-32.3-59.7c3.6-.6 7.4-.9 11.2-.9c39.8 0 72 32.2 72 72s-32.2 72-72 72s-72-32.2-72-72c0-18.6 7-35.5 18.6-48.3zM133.2 368l65 0c-7.3 32.1-36 56-70.2 56c-39.8 0-72-32.2-72-72s32.2-72 72-72c1.7 0 3.4 .1 5.1 .2l-24.2 48.5c-9 18.1 4.1 39.4 24.3 39.4zm33.7-48l50.7-101.3 72.9 101.2-.1 .1-123.5 0zm90.6-128l108.5 0L317 274.8 257.4 192z\"]\n};\nconst faStaffSnake = {\n prefix: 'fas',\n iconName: 'staff-snake',\n icon: [384, 512, [\"rod-asclepius\", \"rod-snake\", \"staff-aesculapius\"], \"e579\", \"M222.6 43.2l-.1 4.8L288 48c53 0 96 43 96 96s-43 96-96 96l-40 0 0-80 40 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-40 0-28 0-4.5 144 40.5 0c53 0 96 43 96 96s-43 96-96 96l-16 0 0-80 16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-43 0-3.1 99.5L208.5 495l0 1c-.3 8.9-7.6 16-16.5 16s-16.2-7.1-16.5-16l0-1-1-31L136 464c-22.1 0-40-17.9-40-40s17.9-40 40-40l36 0-1-32-19 0c-53 0-96-43-96-96c0-47.6 34.6-87.1 80-94.7l0 94.7c0 8.8 7.2 16 16 16l16.5 0L164 128l-28 0-13.4 0c-9 18.9-28.3 32-50.6 32l-16 0c-30.9 0-56-25.1-56-56S25.1 48 56 48l8 0 8 0 89.5 0-.1-4.8L161 32c0-.7 0-1.3 0-1.9c.5-16.6 14.1-30 31-30s30.5 13.4 31 30c0 .6 0 1.3 0 1.9l-.4 11.2zM64 112a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"]\n};\nconst faRodAsclepius = faStaffSnake;\nconst faRodSnake = faStaffSnake;\nconst faStaffAesculapius = faStaffSnake;\nconst faHeadSideCoughSlash = {\n prefix: 'fas',\n iconName: 'head-side-cough-slash',\n icon: [640, 512, [], \"e062\", \"M448 325.8l44 34.5c8.1 1.4 14.8 6.8 18 14.1L552.9 408c10.6 .4 19.5 7.6 22.2 17.4l39.1 30.6c.6 0 1.2-.1 1.8-.1c11.1 0 20.4 7.5 23.2 17.8l-3.9 0c6.2 8.5 6.4 20.4-.4 29c-8.2 10.4-23.3 12.3-33.7 4.1L9.2 42.9C-1.2 34.7-3.1 19.6 5.1 9.2S28.4-3.1 38.8 5.1L89.6 44.9C127 16.7 173.5 0 224 0l24 0c95.2 0 181.2 69.3 197.3 160.2c2.3 13 6.8 25.7 15.1 36l42 52.6c6.2 7.8 9.6 17.4 9.6 27.4c0 24.2-19.6 43.8-43.8 43.8L448 320s0 0 0 0l0 5.8zM0 224.2c0-38.7 9.8-75.1 27.1-106.9L341.8 365.3l-2.5 .3c-11 1.4-19.2 10.7-19.2 21.8c0 11.6 9 21.2 20.6 21.9l62 3.9 43 33.9C439.3 466.2 421.2 480 400 480l-80 0 0 8c0 13.3-10.7 24-24 24l-40 0s0 0 0 0L96 512c-17.7 0-32-14.3-32-32l0-72.7c0-16.7-6.9-32.5-17.1-45.8C16.6 322.4 0 274.1 0 224.2zM616 360a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm-64-48a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm40-24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nconst faTruckMedical = {\n prefix: 'fas',\n iconName: 'truck-medical',\n icon: [640, 512, [128657, \"ambulance\"], \"f0f9\", \"M0 48C0 21.5 21.5 0 48 0L368 0c26.5 0 48 21.5 48 48l0 48 50.7 0c17 0 33.3 6.7 45.3 18.7L589.3 192c12 12 18.7 28.3 18.7 45.3l0 18.7 0 32 0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c0 53-43 96-96 96s-96-43-96-96l-128 0c0 53-43 96-96 96s-96-43-96-96l-16 0c-26.5 0-48-21.5-48-48L0 48zM416 256l128 0 0-18.7L466.7 160 416 160l0 96zM160 464a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm368-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM176 80l0 48-48 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-48 0 0-48c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z\"]\n};\nconst faAmbulance = faTruckMedical;\nconst faWheatAwnCircleExclamation = {\n prefix: 'fas',\n iconName: 'wheat-awn-circle-exclamation',\n icon: [640, 512, [], \"e598\", \"M505 41c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L383 95c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l88-88zM305.5 27.3c-6.2-6.2-16.4-6.2-22.6 0L271.5 38.6c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4-30.5 30.5c-3.4-27.3-15.5-53.8-36.5-74.8l-11.3-11.3c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4-30.5 30.5c-3.4-27.3-15.5-53.8-36.5-74.8L101.8 231c-6.2-6.2-16.4-6.2-22.6 0L67.9 242.3c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4L9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l68.9-68.9 12.2 12.2c37.5 37.5 98.3 37.5 135.8 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-21.8-21.8-49.6-34.1-78.1-36.9l31.9-31.9 12.2 12.2c22.5 22.5 53.3 31.5 82.4 27c0-1 0-2.1 0-3.1c0-33.1 9.1-64.1 25-90.6c-15.5-8.7-32.5-13.8-49.8-15.5l31.9-31.9 12.2 12.2c6 6 12.6 11.1 19.7 15.2c27.5-34 67.3-57.5 112.6-63.8c-4.1-3.8-8.4-7.3-12.9-10.5L505 137c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-59.4 59.4c-20.6-4.4-42-3.7-62.3 2.1c6.1-21.3 6.6-43.8 1.4-65.3L409 41c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L329.1 52.9c-3.7-5-7.8-9.8-12.4-14.3L305.5 27.3zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"]\n};\nconst faSnowman = {\n prefix: 'fas',\n iconName: 'snowman',\n icon: [512, 512, [9731, 9924], \"f7d0\", \"M341.1 140.6c-2 3.9-1.6 8.6 1.2 12c7 8.5 12.9 18.1 17.2 28.4L408 160.2l0-40.2c0-13.3 10.7-24 24-24s24 10.7 24 24l0 19.6 22.5-9.7c12.2-5.2 26.3 .4 31.5 12.6s-.4 26.3-12.6 31.5l-56 24-73.6 31.5c-.5 9.5-2.1 18.6-4.8 27.3c-1.2 3.8-.1 8 2.8 10.8C396.7 296.9 416 338.2 416 384c0 44.7-18.3 85-47.8 114.1c-9.9 9.7-23.7 13.9-37.5 13.9l-149.3 0c-13.9 0-27.7-4.2-37.5-13.9C114.3 469 96 428.7 96 384c0-45.8 19.3-87.1 50.1-116.3c2.9-2.8 4-6.9 2.8-10.8c-2.7-8.7-4.3-17.9-4.8-27.3L70.5 198.1l-56-24C2.4 168.8-3.3 154.7 1.9 142.5s19.3-17.8 31.5-12.6L56 139.6 56 120c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40.2L152.6 181c4.3-10.3 10.1-19.9 17.2-28.4c2.8-3.4 3.3-8.1 1.2-12C164 127.2 160 112.1 160 96c0-53 43-96 96-96s96 43 96 96c0 16.1-4 31.2-10.9 44.6zM224 96a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm48 128a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm-16 80a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm16 48a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zM288 96a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm-48 24l0 3.2c0 3.2 .8 6.3 2.3 9l9 16.9c.9 1.7 2.7 2.8 4.7 2.8s3.8-1.1 4.7-2.8l9-16.9c1.5-2.8 2.3-5.9 2.3-9l0-3.2c0-8.8-7.2-16-16-16s-16 7.2-16 16z\"]\n};\nconst faMortarPestle = {\n prefix: 'fas',\n iconName: 'mortar-pestle',\n icon: [512, 512, [], \"f5a7\", \"M504.3 11.1C493.3-1.6 474.5-3.7 461 6.2L252.3 160l144.9 0L502.6 54.6c11.8-11.8 12.6-30.8 1.6-43.5zM32 192c-17.7 0-32 14.3-32 32s14.3 32 32 32c0 82.5 43.4 147.7 123.9 176.2c-11.1 13.9-19.4 30.3-23.9 48.1C127.6 497.4 142.3 512 160 512l192 0c17.7 0 32.4-14.6 28.1-31.7c-4.5-17.8-12.8-34.1-23.9-48.1C436.6 403.7 480 338.5 480 256c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 192z\"]\n};\nconst faRoadBarrier = {\n prefix: 'fas',\n iconName: 'road-barrier',\n icon: [640, 512, [], \"e562\", \"M32 32C14.3 32 0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-181.7L149.2 96 64 96l0-32c0-17.7-14.3-32-32-32zM405.2 96l-74.3 0-5.4 10.7L234.8 288l74.3 0 5.4-10.7L405.2 96zM362.8 288l74.3 0 5.4-10.7L533.2 96l-74.3 0-5.4 10.7L362.8 288zM202.8 96l-5.4 10.7L106.8 288l74.3 0 5.4-10.7L277.2 96l-74.3 0zm288 192l85.2 0 0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 53.7L490.8 288z\"]\n};\nconst faSchool = {\n prefix: 'fas',\n iconName: 'school',\n icon: [640, 512, [127979], \"f549\", \"M337.8 5.4C327-1.8 313-1.8 302.2 5.4L166.3 96 48 96C21.5 96 0 117.5 0 144L0 464c0 26.5 21.5 48 48 48l208 0 0-96c0-35.3 28.7-64 64-64s64 28.7 64 64l0 96 208 0c26.5 0 48-21.5 48-48l0-320c0-26.5-21.5-48-48-48L473.7 96 337.8 5.4zM96 192l32 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16zm400 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-64zM96 320l32 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16zm400 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-64zM232 176a88 88 0 1 1 176 0 88 88 0 1 1 -176 0zm88-48c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0 0-16c0-8.8-7.2-16-16-16z\"]\n};\nconst faIgloo = {\n prefix: 'fas',\n iconName: 'igloo',\n icon: [576, 512, [], \"f7ae\", \"M320 33.8L320 160 48.5 160C100.2 82.8 188.1 32 288 32c10.8 0 21.5 .6 32 1.8zM352 160l0-120.9C424.9 55.7 487.2 99.8 527.5 160L352 160zM29.9 192L96 192l0 128L0 320c0-46 10.8-89.4 29.9-128zM192 320l-64 0 0-128 320 0 0 128-64 0 0 32 192 0 0 80c0 26.5-21.5 48-48 48l-176 0 0-128c0-35.3-28.7-64-64-64s-64 28.7-64 64l0 128L48 480c-26.5 0-48-21.5-48-48l0-80 192 0 0-32zm288 0l0-128 66.1 0c19.2 38.6 29.9 82 29.9 128l-96 0z\"]\n};\nconst faJoint = {\n prefix: 'fas',\n iconName: 'joint',\n icon: [640, 512, [], \"f595\", \"M448 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 11c0 55.2 21.9 108.1 60.9 147.1l21 21c9 9 14.1 21.2 14.1 33.9l0 11c0 17.7 14.3 32 32 32s32-14.3 32-32l0-11c0-29.7-11.8-58.2-32.8-79.2l-21-21C463.2 117.8 448 81.2 448 43l0-11zM576 256c0 17.7 14.3 32 32 32s32-14.3 32-32l0-11c0-55.2-21.9-108.1-60.9-147.1l-21-21c-9-9-14.1-21.2-14.1-33.9l0-11c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 11c0 29.7 11.8 58.2 32.8 79.2l21 21c27 27 42.2 63.6 42.2 101.8l0 11zM229.8 360c-4.7-2.3-10-2.7-15.2-2c-37.8 5.6-75.2 14.3-106.9 22.8C81.3 388 58.3 395.1 42 400.4c-8.2 2.7-14.7 4.9-19.2 6.5c-2.3 .8-4 1.4-5.2 1.8l-1.3 .5C6.8 412.5 0 421.4 0 432s6.8 19.5 16.3 22.7l1.3 .5c1.2 .4 3 1.1 5.2 1.8c4.5 1.6 11 3.8 19.2 6.5c16.3 5.4 39.2 12.5 65.7 19.6C160.3 497.3 228.8 512 288 512l67.3 0c4.1 0 6.3-5.1 3.6-8.3L256.5 380.8c-7.4-8.9-16.5-15.9-26.7-20.8zM445 512l19 0 51.3 0c4.1 0 6.3-5.1 3.6-8.3L416.5 380.8C401.3 362.5 378.8 352 355 352l-19 0-48 0c-1.1 0-2.3 0-3.4 0c-4.1 0-6.2 5.1-3.5 8.3L383.5 483.2C398.7 501.5 421.2 512 445 512zm-3.9-151.7L543.5 483.2c14.6 17.5 35.9 27.9 58.6 28.7c21.1-1.1 37.9-18.6 37.9-39.9l0-80c0-22.1-17.9-40-40-40l-155.3 0c-4.1 0-6.3 5.1-3.6 8.3z\"]\n};\nconst faAngleRight = {\n prefix: 'fas',\n iconName: 'angle-right',\n icon: [320, 512, [8250], \"f105\", \"M278.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-160 160c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L210.7 256 73.4 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160z\"]\n};\nconst faHorse = {\n prefix: 'fas',\n iconName: 'horse',\n icon: [576, 512, [128014], \"f6f0\", \"M448 238.1l0-78.1 16 0 9.8 19.6c12.5 25.1 42.2 36.4 68.3 26c20.5-8.2 33.9-28 33.9-50.1L576 80c0-19.1-8.4-36.3-21.7-48l5.7 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L480 0 448 0C377.3 0 320 57.3 320 128l-96 0-20.8 0-54.4 0c-30.7 0-57.6 16.3-72.5 40.8C33.2 174.5 0 211.4 0 256l0 56c0 13.3 10.7 24 24 24s24-10.7 24-24l0-56c0-13.4 6.6-25.2 16.7-32.5c1.6 13 6.3 25.4 13.6 36.4l28.2 42.4c8.3 12.4 6.4 28.7-1.2 41.6c-16.5 28-20.6 62.2-10 93.9l17.5 52.4c4.4 13.1 16.6 21.9 30.4 21.9l33.7 0c21.8 0 37.3-21.4 30.4-42.1l-20.8-62.5c-2.1-6.4-.5-13.4 4.3-18.2l12.7-12.7c13.2-13.2 20.6-31.1 20.6-49.7c0-2.3-.1-4.6-.3-6.9l84 24c4.1 1.2 8.2 2.1 12.3 2.8L320 480c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-164.3c19.2-19.2 31.5-45.7 32-75.7c0 0 0 0 0 0l0-1.9zM496 64a16 16 0 1 1 0 32 16 16 0 1 1 0-32z\"]\n};\nconst faQ = {\n prefix: 'fas',\n iconName: 'q',\n icon: [448, 512, [113], \"51\", \"M64 256c0 88.4 71.6 160 160 160c28.9 0 56-7.7 79.4-21.1l-72-86.4c-11.3-13.6-9.5-33.8 4.1-45.1s33.8-9.5 45.1 4.1l70.9 85.1C371.9 325.8 384 292.3 384 256c0-88.4-71.6-160-160-160S64 167.6 64 256zM344.9 444.6C310 467 268.5 480 224 480C100.3 480 0 379.7 0 256S100.3 32 224 32s224 100.3 224 224c0 56.1-20.6 107.4-54.7 146.7l47.3 56.8c11.3 13.6 9.5 33.8-4.1 45.1s-33.8 9.5-45.1-4.1l-46.6-55.9z\"]\n};\nconst faG = {\n prefix: 'fas',\n iconName: 'g',\n icon: [448, 512, [103], \"47\", \"M224 96C135.6 96 64 167.6 64 256s71.6 160 160 160c77.4 0 142-55 156.8-128L256 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l144 0c25.8 0 49.6 21.4 47.2 50.6C437.8 389.6 341.4 480 224 480C100.3 480 0 379.7 0 256S100.3 32 224 32c57.4 0 109.7 21.6 149.3 57c13.2 11.8 14.3 32 2.5 45.2s-32 14.3-45.2 2.5C302.3 111.4 265 96 224 96z\"]\n};\nconst faNotesMedical = {\n prefix: 'fas',\n iconName: 'notes-medical',\n icon: [512, 512, [], \"f481\", \"M96 352L96 96c0-35.3 28.7-64 64-64l256 0c35.3 0 64 28.7 64 64l0 197.5c0 17-6.7 33.3-18.7 45.3l-58.5 58.5c-12 12-28.3 18.7-45.3 18.7L160 416c-35.3 0-64-28.7-64-64zM272 128c-8.8 0-16 7.2-16 16l0 48-48 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-48 0 0-48c0-8.8-7.2-16-16-16l-32 0zm24 336c13.3 0 24 10.7 24 24s-10.7 24-24 24l-160 0C60.9 512 0 451.1 0 376L0 152c0-13.3 10.7-24 24-24s24 10.7 24 24l0 224c0 48.6 39.4 88 88 88l160 0z\"]\n};\nconst faTemperatureHalf = {\n prefix: 'fas',\n iconName: 'temperature-half',\n icon: [320, 512, [127777, \"temperature-2\", \"thermometer-2\", \"thermometer-half\"], \"f2c9\", \"M160 64c-26.5 0-48 21.5-48 48l0 164.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5L208 112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112l0 164.4c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6L48 112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3L144 208c0-8.8 7.2-16 16-16s16 7.2 16 16l0 114.7c18.6 6.6 32 24.4 32 45.3z\"]\n};\nconst faTemperature2 = faTemperatureHalf;\nconst faThermometer2 = faTemperatureHalf;\nconst faThermometerHalf = faTemperatureHalf;\nconst faDongSign = {\n prefix: 'fas',\n iconName: 'dong-sign',\n icon: [384, 512, [], \"e169\", \"M288 32c-17.7 0-32 14.3-32 32l-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 49.1c-18.8-10.9-40.7-17.1-64-17.1c-70.7 0-128 57.3-128 128s57.3 128 128 128c24.5 0 47.4-6.9 66.8-18.8c5 11.1 16.2 18.8 29.2 18.8c17.7 0 32-14.3 32-32l0-96 0-160c17.7 0 32-14.3 32-32s-14.3-32-32-32c0-17.7-14.3-32-32-32zM128 288a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 448z\"]\n};\nconst faCapsules = {\n prefix: 'fas',\n iconName: 'capsules',\n icon: [576, 512, [], \"f46b\", \"M64 144c0-26.5 21.5-48 48-48s48 21.5 48 48l0 112-96 0 0-112zM0 144L0 368c0 61.9 50.1 112 112 112s112-50.1 112-112l0-178.4c1.8 19.1 8.2 38 19.8 54.8L372.3 431.7c35.5 51.7 105.3 64.3 156 28.1s63-107.5 27.5-159.2L427.3 113.3C391.8 61.5 321.9 49 271.3 85.2c-28 20-44.3 50.8-47.3 83l0-24.2c0-61.9-50.1-112-112-112S0 82.1 0 144zm296.6 64.2c-16-23.3-10-55.3 11.9-71c21.2-15.1 50.5-10.3 66 12.2l67 97.6L361.6 303l-65-94.8zM491 407.7c-.8 .6-1.6 1.1-2.4 1.6l4-2.8c-.5 .4-1 .8-1.6 1.2z\"]\n};\nconst faPooStorm = {\n prefix: 'fas',\n iconName: 'poo-storm',\n icon: [448, 512, [\"poo-bolt\"], \"f75a\", \"M236.9 .2c-5.5-.7-11 1.4-14.5 5.7s-4.6 10.1-2.8 15.3c2.8 8.2 4.3 16.9 4.3 26.1c0 21.7-8.5 37.2-21.9 47.6c-13.8 10.8-34 17-57.8 17L128 112c-35.3 0-64 28.7-64 64c0 12.2 3.4 23.5 9.3 33.2C31.7 216.2 0 252.4 0 296c0 40.9 28 75.4 65.8 85.2c-5.3-18.5 1-38.5 16.2-50.7l160-128c17.6-14.1 42.6-14 60.2 .2s22.8 38.6 12.8 58.8L285.7 320l18.3 0c20.4 0 38.5 12.9 45.3 32.1c3.7 10.6 3.5 21.8 0 31.9l10.7 0c48.6 0 88-39.4 88-88c0-43.6-31.7-79.8-73.3-86.8c5.9-9.7 9.3-21.1 9.3-33.2c0-35.3-28.7-64-64-64l-1.4 0c.9-5.4 1.4-10.9 1.4-16.6c0-48.7-36.1-88.9-83.1-95.2zm45.1 227.4c-5.8-4.7-14.2-4.7-20.1-.1l-160 128c-5.3 4.2-7.4 11.4-5.1 17.8s8.3 10.7 15.1 10.7l70.1 0L129.7 488.8c-3.4 6.7-1.6 14.9 4.3 19.6s14.2 4.7 20.1 .1l160-128c5.3-4.2 7.4-11.4 5.1-17.8s-8.3-10.7-15.1-10.7l-70.1 0 52.4-104.8c3.4-6.7 1.6-14.9-4.3-19.6z\"]\n};\nconst faPooBolt = faPooStorm;\nconst faFaceFrownOpen = {\n prefix: 'fas',\n iconName: 'face-frown-open',\n icon: [512, 512, [128550, \"frown-open\"], \"f57a\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM176.4 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm-122 174.5c-12.4 5.2-26.5-4.1-21.1-16.4c16-36.6 52.4-62.1 94.8-62.1s78.8 25.6 94.8 62.1c5.4 12.3-8.7 21.6-21.1 16.4c-22.4-9.5-47.4-14.8-73.7-14.8s-51.3 5.3-73.7 14.8z\"]\n};\nconst faFrownOpen = faFaceFrownOpen;\nconst faHandPointUp = {\n prefix: 'fas',\n iconName: 'hand-point-up',\n icon: [384, 512, [9757], \"f0a6\", \"M32 32C32 14.3 46.3 0 64 0S96 14.3 96 32l0 208-64 0L32 32zM224 192c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm-64-64c17.7 0 32 14.3 32 32l0 48c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-48c0-17.7 14.3-32 32-32zm160 96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm-96 88l0-.6c9.4 5.4 20.3 8.6 32 8.6c13.2 0 25.4-4 35.6-10.8c8.7 24.9 32.5 42.8 60.4 42.8c11.7 0 22.6-3.1 32-8.6l0 8.6c0 88.4-71.6 160-160 160l-61.7 0c-42.4 0-83.1-16.9-113.1-46.9L37.5 453.5C13.5 429.5 0 396.9 0 363l0-27c0-35.3 28.7-64 64-64l88 0c22.1 0 40 17.9 40 40s-17.9 40-40 40l-56 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l56 0c39.8 0 72-32.2 72-72z\"]\n};\nconst faMoneyBill = {\n prefix: 'fas',\n iconName: 'money-bill',\n icon: [576, 512, [], \"f0d6\", \"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm64 320l-64 0 0-64c35.3 0 64 28.7 64 64zM64 192l0-64 64 0c0 35.3-28.7 64-64 64zM448 384c0-35.3 28.7-64 64-64l0 64-64 0zm64-192c-35.3 0-64-28.7-64-64l64 0 0 64zM288 160a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"]\n};\nconst faBookmark = {\n prefix: 'fas',\n iconName: 'bookmark',\n icon: [384, 512, [128278, 61591], \"f02e\", \"M0 48V487.7C0 501.1 10.9 512 24.3 512c5 0 9.9-1.5 14-4.4L192 400 345.7 507.6c4.1 2.9 9 4.4 14 4.4c13.4 0 24.3-10.9 24.3-24.3V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48z\"]\n};\nconst faAlignJustify = {\n prefix: 'fas',\n iconName: 'align-justify',\n icon: [448, 512, [], \"f039\", \"M448 64c0-17.7-14.3-32-32-32L32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l384 0c17.7 0 32-14.3 32-32zm0 256c0-17.7-14.3-32-32-32L32 288c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32zM0 192c0 17.7 14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 160c-17.7 0-32 14.3-32 32zM448 448c0-17.7-14.3-32-32-32L32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32z\"]\n};\nconst faUmbrellaBeach = {\n prefix: 'fas',\n iconName: 'umbrella-beach',\n icon: [576, 512, [127958], \"f5ca\", \"M346.3 271.8l-60.1-21.9L214 448 32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-261.9 0 64.1-176.2zm121.1-.2l-3.3 9.1 67.7 24.6c18.1 6.6 38-4.2 39.6-23.4c6.5-78.5-23.9-155.5-80.8-208.5c2 8 3.2 16.3 3.4 24.8l.2 6c1.8 57-7.3 113.8-26.8 167.4zM462 99.1c-1.1-34.4-22.5-64.8-54.4-77.4c-.9-.4-1.9-.7-2.8-1.1c-33-11.7-69.8-2.4-93.1 23.8l-4 4.5C272.4 88.3 245 134.2 226.8 184l-3.3 9.1L434 269.7l3.3-9.1c18.1-49.8 26.6-102.5 24.9-155.5l-.2-6zM107.2 112.9c-11.1 15.7-2.8 36.8 15.3 43.4l71 25.8 3.3-9.1c19.5-53.6 49.1-103 87.1-145.5l4-4.5c6.2-6.9 13.1-13 20.5-18.2c-79.6 2.5-154.7 42.2-201.2 108z\"]\n};\nconst faHelmetUn = {\n prefix: 'fas',\n iconName: 'helmet-un',\n icon: [512, 512, [], \"e503\", \"M479.5 224C471.2 98.9 367.2 0 240 0C107.5 0 0 107.5 0 240l0 56.3C0 344.8 39.2 384 87.7 384L200 384l14.9 0L343.5 505.4c4.5 4.2 10.4 6.6 16.5 6.6l96 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-86.5 0-1.5-1.5L368 288l80 0 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-.5 0zM320 417.2l-78-73.7L274.4 288l45.6 0 0 129.2zM285.3 103.1l34.7 52 0-43.2c0-8.8 7.2-16 16-16s16 7.2 16 16l0 96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4l-34.7-52 0 43.2c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4zM160 112l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16l0 64c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nconst faBullseye = {\n prefix: 'fas',\n iconName: 'bullseye',\n icon: [512, 512, [], \"f140\", \"M448 256A192 192 0 1 0 64 256a192 192 0 1 0 384 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256 80a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm0-224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zM224 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nconst faBacon = {\n prefix: 'fas',\n iconName: 'bacon',\n icon: [576, 512, [129363], \"f7e5\", \"M439.2 1.2c11.2-3.2 23.2-.1 31.4 8.1L518 56.7l-26.5 7.9c-58 16.6-98.1 39.6-129.6 67.4c-31.2 27.5-53.2 59.1-75.1 90.9l-2.3 3.3C241.6 288.7 195 356.6 72.8 417.7L37.9 435.2 9.4 406.6c-7.3-7.3-10.6-17.6-9-27.8s8.1-18.9 17.3-23.5C136.1 296.2 180.9 231 223.3 169.3l2.3-3.4c21.8-31.8 44.9-64.9 77.7-93.9c33.4-29.5 75.8-53.6 135.9-70.8zM61.8 459l25.4-12.7c129.5-64.7 179.9-138.1 223.8-202l2.2-3.3c22.1-32.1 42.1-60.5 69.9-85.1c27.5-24.3 63.4-45.2 117.3-60.6c0 0 0 0 0 0l.2-.1 43.1-12.9 23 23c8 8 11.2 19.7 8.3 30.7s-11.3 19.6-22.2 22.7c-51.9 14.8-85.6 34.7-111.1 57.2c-26.1 23-45.1 49.9-67.3 82.1l-2.2 3.2C327.8 365.9 275.5 442 142.3 508.6c-12.3 6.2-27.2 3.7-36.9-6L61.8 459z\"]\n};\nconst faHandPointDown = {\n prefix: 'fas',\n iconName: 'hand-point-down',\n icon: [384, 512, [], \"f0a7\", \"M32 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-208-64 0 0 208zM224 320c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64zm-64 64c17.7 0 32-14.3 32-32l0-48c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48c0 17.7 14.3 32 32 32zm160-96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64zm-96-88l0 .6c9.4-5.4 20.3-8.6 32-8.6c13.2 0 25.4 4 35.6 10.8c8.7-24.9 32.5-42.8 60.4-42.8c11.7 0 22.6 3.1 32 8.6l0-8.6C384 71.6 312.4 0 224 0L162.3 0C119.8 0 79.1 16.9 49.1 46.9L37.5 58.5C13.5 82.5 0 115.1 0 149l0 27c0 35.3 28.7 64 64 64l88 0c22.1 0 40-17.9 40-40s-17.9-40-40-40l-56 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l56 0c39.8 0 72 32.2 72 72z\"]\n};\nconst faArrowUpFromBracket = {\n prefix: 'fas',\n iconName: 'arrow-up-from-bracket',\n icon: [448, 512, [], \"e09a\", \"M246.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 109.3 192 320c0 17.7 14.3 32 32 32s32-14.3 32-32l0-210.7 73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128zM64 352c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64c0 17.7-14.3 32-32 32L96 448c-17.7 0-32-14.3-32-32l0-64z\"]\n};\nconst faFolder = {\n prefix: 'fas',\n iconName: 'folder',\n icon: [512, 512, [128193, 128447, 61716, \"folder-blank\"], \"f07b\", \"M64 480H448c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H288c-10.1 0-19.6-4.7-25.6-12.8L243.2 57.6C231.1 41.5 212.1 32 192 32H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64z\"]\n};\nconst faFolderBlank = faFolder;\nconst faFileWaveform = {\n prefix: 'fas',\n iconName: 'file-waveform',\n icon: [448, 512, [\"file-medical-alt\"], \"f478\", \"M96 0C60.7 0 32 28.7 32 64l0 224 112 0c6.1 0 11.6 3.4 14.3 8.8L176 332.2l49.7-99.4c2.7-5.4 8.3-8.8 14.3-8.8s11.6 3.4 14.3 8.8L281.9 288l70.1 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-80 0c-6.1 0-11.6-3.4-14.3-8.8L240 275.8l-49.7 99.4c-2.7 5.4-8.3 8.8-14.3 8.8s-11.6-3.4-14.3-8.8L134.1 320 32 320l0 128c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L256 0 96 0zM288 0l0 128 128 0L288 0z\"]\n};\nconst faFileMedicalAlt = faFileWaveform;\nconst faRadiation = {\n prefix: 'fas',\n iconName: 'radiation',\n icon: [512, 512, [], \"f7b9\", \"M216 186.7c-23.9 13.8-40 39.7-40 69.3L32 256C14.3 256-.2 241.6 2 224.1C10.7 154 47.8 92.7 101.3 52c14.1-10.7 33.8-5.3 42.7 10l72 124.7zM256 336c14.6 0 28.2-3.9 40-10.7l72 124.8c8.8 15.3 3.7 35.1-12.6 41.9c-30.6 12.9-64.2 20-99.4 20s-68.9-7.1-99.4-20c-16.3-6.9-21.4-26.6-12.6-41.9l72-124.8c11.8 6.8 25.4 10.7 40 10.7zm224-80l-144 0c0-29.6-16.1-55.5-40-69.3L368 62c8.8-15.3 28.6-20.7 42.7-10c53.6 40.7 90.6 102 99.4 172.1c2.2 17.5-12.4 31.9-30 31.9zM256 208a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"]\n};\nconst faChartSimple = {\n prefix: 'fas',\n iconName: 'chart-simple',\n icon: [448, 512, [], \"e473\", \"M160 80c0-26.5 21.5-48 48-48l32 0c26.5 0 48 21.5 48 48l0 352c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-352zM0 272c0-26.5 21.5-48 48-48l32 0c26.5 0 48 21.5 48 48l0 160c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48L0 272zM368 96l32 0c26.5 0 48 21.5 48 48l0 288c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-288c0-26.5 21.5-48 48-48z\"]\n};\nconst faMarsStroke = {\n prefix: 'fas',\n iconName: 'mars-stroke',\n icon: [512, 512, [9894], \"f229\", \"M376 0c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l33.4 33.4L370.3 96.4 345 71c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l25.4 25.4L307.8 159c-28.4-19.5-62.7-31-99.8-31c-97.2 0-176 78.8-176 176s78.8 176 176 176s176-78.8 176-176c0-37-11.4-71.4-31-99.8l28.6-28.6L407 201c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-25.4-25.4 22.1-22.1L471 153c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2l0-112c0-13.3-10.7-24-24-24L376 0zm88 48s0 0 0 0s0 0 0 0s0 0 0 0zM96 304a112 112 0 1 1 224 0A112 112 0 1 1 96 304z\"]\n};\nconst faVial = {\n prefix: 'fas',\n iconName: 'vial',\n icon: [512, 512, [129514], \"f492\", \"M342.6 9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l9.4 9.4L28.1 342.6C10.1 360.6 0 385 0 410.5L0 416c0 53 43 96 96 96l5.5 0c25.5 0 49.9-10.1 67.9-28.1L448 205.3l9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-32-32-96-96-32-32zM205.3 256L352 109.3 402.7 160l-96 96-101.5 0z\"]\n};\nconst faGauge = {\n prefix: 'fas',\n iconName: 'gauge',\n icon: [512, 512, [\"dashboard\", \"gauge-med\", \"tachometer-alt-average\"], \"f624\", \"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm320 96c0-26.9-16.5-49.9-40-59.3L280 88c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 204.7c-23.5 9.5-40 32.5-40 59.3c0 35.3 28.7 64 64 64s64-28.7 64-64zM144 176a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm-16 80a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm288 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM400 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"]\n};\nconst faDashboard = faGauge;\nconst faGaugeMed = faGauge;\nconst faTachometerAltAverage = faGauge;\nconst faWandMagicSparkles = {\n prefix: 'fas',\n iconName: 'wand-magic-sparkles',\n icon: [576, 512, [\"magic-wand-sparkles\"], \"e2ca\", \"M234.7 42.7L197 56.8c-3 1.1-5 4-5 7.2s2 6.1 5 7.2l37.7 14.1L248.8 123c1.1 3 4 5 7.2 5s6.1-2 7.2-5l14.1-37.7L315 71.2c3-1.1 5-4 5-7.2s-2-6.1-5-7.2L277.3 42.7 263.2 5c-1.1-3-4-5-7.2-5s-6.1 2-7.2 5L234.7 42.7zM46.1 395.4c-18.7 18.7-18.7 49.1 0 67.9l34.6 34.6c18.7 18.7 49.1 18.7 67.9 0L529.9 116.5c18.7-18.7 18.7-49.1 0-67.9L495.3 14.1c-18.7-18.7-49.1-18.7-67.9 0L46.1 395.4zM484.6 82.6l-105 105-23.3-23.3 105-105 23.3 23.3zM7.5 117.2C3 118.9 0 123.2 0 128s3 9.1 7.5 10.8L64 160l21.2 56.5c1.7 4.5 6 7.5 10.8 7.5s9.1-3 10.8-7.5L128 160l56.5-21.2c4.5-1.7 7.5-6 7.5-10.8s-3-9.1-7.5-10.8L128 96 106.8 39.5C105.1 35 100.8 32 96 32s-9.1 3-10.8 7.5L64 96 7.5 117.2zm352 256c-4.5 1.7-7.5 6-7.5 10.8s3 9.1 7.5 10.8L416 416l21.2 56.5c1.7 4.5 6 7.5 10.8 7.5s9.1-3 10.8-7.5L480 416l56.5-21.2c4.5-1.7 7.5-6 7.5-10.8s-3-9.1-7.5-10.8L480 352l-21.2-56.5c-1.7-4.5-6-7.5-10.8-7.5s-9.1 3-10.8 7.5L416 352l-56.5 21.2z\"]\n};\nconst faMagicWandSparkles = faWandMagicSparkles;\nconst faE = {\n prefix: 'fas',\n iconName: 'e',\n icon: [320, 512, [101], \"45\", \"M64 32C28.7 32 0 60.7 0 96L0 256 0 416c0 35.3 28.7 64 64 64l224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 416l0-128 160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 224 64 96l224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 32z\"]\n};\nconst faPenClip = {\n prefix: 'fas',\n iconName: 'pen-clip',\n icon: [512, 512, [\"pen-alt\"], \"f305\", \"M453.3 19.3l39.4 39.4c25 25 25 65.5 0 90.5l-52.1 52.1s0 0 0 0l-1-1s0 0 0 0l-16-16-96-96-17-17 52.1-52.1c25-25 65.5-25 90.5 0zM241 114.9c-9.4-9.4-24.6-9.4-33.9 0L105 217c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L173.1 81c28.1-28.1 73.7-28.1 101.8 0L288 94.1l17 17 96 96 16 16 1 1-17 17L229.5 412.5c-48 48-109.2 80.8-175.8 94.1l-25 5c-7.9 1.6-16-.9-21.7-6.6s-8.1-13.8-6.6-21.7l5-25c13.3-66.6 46.1-127.8 94.1-175.8L254.1 128 241 114.9z\"]\n};\nconst faPenAlt = faPenClip;\nconst faBridgeCircleExclamation = {\n prefix: 'fas',\n iconName: 'bridge-circle-exclamation',\n icon: [640, 512, [], \"e4ca\", \"M64 32C46.3 32 32 46.3 32 64s14.3 32 32 32l40 0 0 64-72 0 0 128c53 0 96 43 96 96l0 64c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-64c0-53 43-96 96-96c6.3 0 12.4 .6 18.3 1.7C367.1 231.8 426.9 192 496 192c42.5 0 81.6 15.1 112 40.2l0-72.2-72 0 0-64 40 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 32zM488 96l0 64-80 0 0-64 80 0zM360 96l0 64-80 0 0-64 80 0zM232 96l0 64-80 0 0-64 80 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"]\n};\nconst faUser = {\n prefix: 'fas',\n iconName: 'user',\n icon: [448, 512, [128100, 62144], \"f007\", \"M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512l388.6 0c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304l-91.4 0z\"]\n};\nconst faSchoolCircleCheck = {\n prefix: 'fas',\n iconName: 'school-circle-check',\n icon: [640, 512, [], \"e56b\", \"M337.8 5.4C327-1.8 313-1.8 302.2 5.4L166.3 96 48 96C21.5 96 0 117.5 0 144L0 464c0 26.5 21.5 48 48 48l272 0s0 0 0 0l-64 0 0-96c0-35.3 28.7-64 64-64l.3 0 .5 0c3.4-37.7 18.7-72.1 42.2-99.1C350.2 260 335.6 264 320 264c-48.6 0-88-39.4-88-88s39.4-88 88-88s88 39.4 88 88c0 18.3-5.6 35.3-15.1 49.4c29-21 64.6-33.4 103.1-33.4c59.5 0 112.1 29.6 144 74.8L640 144c0-26.5-21.5-48-48-48L473.7 96 337.8 5.4zM96 192l32 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16zm0 128l32 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16zM320 128c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0 0-16c0-8.8-7.2-16-16-16zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-99.3-43.3c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7z\"]\n};\nconst faDumpster = {\n prefix: 'fas',\n iconName: 'dumpster',\n icon: [576, 512, [], \"f793\", \"M49.7 32c-10.5 0-19.8 6.9-22.9 16.9L.9 133c-.6 2-.9 4.1-.9 6.1C0 150.7 9.3 160 20.9 160l94 0L140.5 32 49.7 32zM272 160l0-128-98.9 0L147.5 160 272 160zm32 0l124.5 0L402.9 32 304 32l0 128zm157.1 0l94 0c11.5 0 20.9-9.3 20.9-20.9c0-2.1-.3-4.1-.9-6.1L549.2 48.9C546.1 38.9 536.8 32 526.3 32l-90.8 0 25.6 128zM32 192l4 32-4 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l12 0L64 448c0 17.7 14.3 32 32 32s32-14.3 32-32l320 0c0 17.7 14.3 32 32 32s32-14.3 32-32l20-160 12 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-4 0 4-32L32 192z\"]\n};\nconst faVanShuttle = {\n prefix: 'fas',\n iconName: 'van-shuttle',\n icon: [640, 512, [128656, \"shuttle-van\"], \"f5b6\", \"M64 104l0 88 96 0 0-96L72 96c-4.4 0-8 3.6-8 8zm482 88L465.1 96 384 96l0 96 162 0zm-226 0l0-96-96 0 0 96 96 0zM592 384l-16 0c0 53-43 96-96 96s-96-43-96-96l-128 0c0 53-43 96-96 96s-96-43-96-96l-16 0c-26.5 0-48-21.5-48-48L0 104C0 64.2 32.2 32 72 32l120 0 160 0 113.1 0c18.9 0 36.8 8.3 49 22.8L625 186.5c9.7 11.5 15 26.1 15 41.2L640 336c0 26.5-21.5 48-48 48zm-64 0a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM160 432a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"]\n};\nconst faShuttleVan = faVanShuttle;\nconst faBuildingUser = {\n prefix: 'fas',\n iconName: 'building-user',\n icon: [640, 512, [], \"e4da\", \"M48 0C21.5 0 0 21.5 0 48L0 464c0 26.5 21.5 48 48 48l96 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 89.9 0c-6.3-10.2-9.9-22.2-9.9-35.1c0-46.9 25.8-87.8 64-109.2l0-95.9L384 48c0-26.5-21.5-48-48-48L48 0zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm112-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM80 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM576 272a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM352 477.1c0 19.3 15.6 34.9 34.9 34.9l218.2 0c19.3 0 34.9-15.6 34.9-34.9c0-51.4-41.7-93.1-93.1-93.1l-101.8 0c-51.4 0-93.1 41.7-93.1 93.1z\"]\n};\nconst faSquareCaretLeft = {\n prefix: 'fas',\n iconName: 'square-caret-left',\n icon: [448, 512, [\"caret-square-left\"], \"f191\", \"M0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416zM128 256c0-6.7 2.8-13 7.7-17.6l112-104c7-6.5 17.2-8.2 25.9-4.4s14.4 12.5 14.4 22l0 208c0 9.5-5.7 18.2-14.4 22s-18.9 2.1-25.9-4.4l-112-104c-4.9-4.5-7.7-10.9-7.7-17.6z\"]\n};\nconst faCaretSquareLeft = faSquareCaretLeft;\nconst faHighlighter = {\n prefix: 'fas',\n iconName: 'highlighter',\n icon: [576, 512, [], \"f591\", \"M315 315l158.4-215L444.1 70.6 229 229 315 315zm-187 5s0 0 0 0l0-71.7c0-15.3 7.2-29.6 19.5-38.6L420.6 8.4C428 2.9 437 0 446.2 0c11.4 0 22.4 4.5 30.5 12.6l54.8 54.8c8.1 8.1 12.6 19 12.6 30.5c0 9.2-2.9 18.2-8.4 25.6L334.4 396.5c-9 12.3-23.4 19.5-38.6 19.5L224 416l-25.4 25.4c-12.5 12.5-32.8 12.5-45.3 0l-50.7-50.7c-12.5-12.5-12.5-32.8 0-45.3L128 320zM7 466.3l63-63 70.6 70.6-31 31c-4.5 4.5-10.6 7-17 7L24 512c-13.3 0-24-10.7-24-24l0-4.7c0-6.4 2.5-12.5 7-17z\"]\n};\nconst faKey = {\n prefix: 'fas',\n iconName: 'key',\n icon: [512, 512, [128273], \"f084\", \"M336 352c97.2 0 176-78.8 176-176S433.2 0 336 0S160 78.8 160 176c0 18.7 2.9 36.8 8.3 53.7L7 391c-4.5 4.5-7 10.6-7 17l0 80c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24l0-40 40 0c13.3 0 24-10.7 24-24l0-40 40 0c6.4 0 12.5-2.5 17-7l33.3-33.3c16.9 5.4 35 8.3 53.7 8.3zM376 96a40 40 0 1 1 0 80 40 40 0 1 1 0-80z\"]\n};\nconst faBullhorn = {\n prefix: 'fas',\n iconName: 'bullhorn',\n icon: [512, 512, [128226, 128363], \"f0a1\", \"M480 32c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9L381.7 53c-48 48-113.1 75-181 75l-8.7 0-32 0-96 0c-35.3 0-64 28.7-64 64l0 96c0 35.3 28.7 64 64 64l0 128c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-128 8.7 0c67.9 0 133 27 181 75l43.6 43.6c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6l0-147.6c18.6-8.8 32-32.5 32-60.4s-13.4-51.6-32-60.4L480 32zm-64 76.7L416 240l0 131.3C357.2 317.8 280.5 288 200.7 288l-8.7 0 0-96 8.7 0c79.8 0 156.5-29.8 215.3-83.3z\"]\n};\nconst faGlobe = {\n prefix: 'fas',\n iconName: 'globe',\n icon: [512, 512, [127760], \"f0ac\", \"M352 256c0 22.2-1.2 43.6-3.3 64l-185.3 0c-2.2-20.4-3.3-41.8-3.3-64s1.2-43.6 3.3-64l185.3 0c2.2 20.4 3.3 41.8 3.3 64zm28.8-64l123.1 0c5.3 20.5 8.1 41.9 8.1 64s-2.8 43.5-8.1 64l-123.1 0c2.1-20.6 3.2-42 3.2-64s-1.1-43.4-3.2-64zm112.6-32l-116.7 0c-10-63.9-29.8-117.4-55.3-151.6c78.3 20.7 142 77.5 171.9 151.6zm-149.1 0l-176.6 0c6.1-36.4 15.5-68.6 27-94.7c10.5-23.6 22.2-40.7 33.5-51.5C239.4 3.2 248.7 0 256 0s16.6 3.2 27.8 13.8c11.3 10.8 23 27.9 33.5 51.5c11.6 26 20.9 58.2 27 94.7zm-209 0L18.6 160C48.6 85.9 112.2 29.1 190.6 8.4C165.1 42.6 145.3 96.1 135.3 160zM8.1 192l123.1 0c-2.1 20.6-3.2 42-3.2 64s1.1 43.4 3.2 64L8.1 320C2.8 299.5 0 278.1 0 256s2.8-43.5 8.1-64zM194.7 446.6c-11.6-26-20.9-58.2-27-94.6l176.6 0c-6.1 36.4-15.5 68.6-27 94.6c-10.5 23.6-22.2 40.7-33.5 51.5C272.6 508.8 263.3 512 256 512s-16.6-3.2-27.8-13.8c-11.3-10.8-23-27.9-33.5-51.5zM135.3 352c10 63.9 29.8 117.4 55.3 151.6C112.2 482.9 48.6 426.1 18.6 352l116.7 0zm358.1 0c-30 74.1-93.6 130.9-171.9 151.6c25.5-34.2 45.2-87.7 55.3-151.6l116.7 0z\"]\n};\nconst faSynagogue = {\n prefix: 'fas',\n iconName: 'synagogue',\n icon: [640, 512, [128333], \"f69b\", \"M309.8 3.7c5.9-4.9 14.6-4.9 20.5 0l121 100.8C469.5 119.7 480 142.2 480 166l0 114.1L480 512l-16 0-112 0 0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96-112 0-16 0 0-231.9L160 166c0-23.7 10.5-46.3 28.8-61.5L309.8 3.7zM512 512l0-267.5 28.1-31.2c3-3.4 7.4-5.3 11.9-5.3s8.9 1.9 11.9 5.3l63.8 70.9c7.9 8.8 12.3 20.3 12.3 32.1L640 448c0 35.3-28.7 64-64 64l-64 0zM128 244.5L128 512l-64 0c-35.3 0-64-28.7-64-64L0 316.3c0-11.9 4.4-23.3 12.3-32.1l63.8-70.9c3-3.4 7.4-5.3 11.9-5.3s8.9 1.9 11.9 5.3L128 244.5zM327 124.3c-3.1-5.4-10.9-5.4-13.9 0l-15.9 28.1-32.3-.3c-6.2-.1-10.1 6.7-7 12.1L274.3 192l-16.4 27.8c-3.2 5.4 .7 12.1 7 12.1l32.3-.3L313 259.7c3.1 5.4 10.9 5.4 13.9 0l15.9-28.1 32.3 .3c6.2 .1 10.1-6.7 7-12.1L365.7 192l16.4-27.8c3.2-5.4-.7-12.1-7-12.1l-32.3 .3L327 124.3z\"]\n};\nconst faPersonHalfDress = {\n prefix: 'fas',\n iconName: 'person-half-dress',\n icon: [320, 512, [], \"e548\", \"M160 0a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm8 352l0-224 6.9 0c33.7 0 64.9 17.7 82.3 46.6l58.3 97c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9L232 256.9 232 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128s0 0 0 0zM58.2 182.3c19.9-33.1 55.3-53.5 93.8-54.3l0 256s0 0 0 0l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-17.8 0c-10.9 0-18.6-10.7-15.2-21.1L93.3 248.1 59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l53.6-89.2z\"]\n};\nconst faRoadBridge = {\n prefix: 'fas',\n iconName: 'road-bridge',\n icon: [640, 512, [], \"e563\", \"M352 0L608 0c17.7 0 32 14.3 32 32l0 448c0 17.7-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32l0-448c0-17.7 14.3-32 32-32zM480 200c-13.3 0-24 10.7-24 24l0 64c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64c0-13.3-10.7-24-24-24zm24 184c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 64c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64zM480 40c-13.3 0-24 10.7-24 24l0 64c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64c0-13.3-10.7-24-24-24zM32 96l256 0 0 64-40 0 0 64 40 0 0 96c-53 0-96 43-96 96l0 64c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-64c0-53-43-96-96-96l0-96 72 0 0-64-40 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm168 64l-80 0 0 64 80 0 0-64z\"]\n};\nconst faLocationArrow = {\n prefix: 'fas',\n iconName: 'location-arrow',\n icon: [448, 512, [], \"f124\", \"M429.6 92.1c4.9-11.9 2.1-25.6-7-34.7s-22.8-11.9-34.7-7l-352 144c-14.2 5.8-22.2 20.8-19.3 35.8s16.1 25.8 31.4 25.8l176 0 0 176c0 15.3 10.8 28.4 25.8 31.4s30-5.1 35.8-19.3l144-352z\"]\n};\nconst faC = {\n prefix: 'fas',\n iconName: 'c',\n icon: [384, 512, [99], \"43\", \"M329.1 142.9c-62.5-62.5-155.8-62.5-218.3 0s-62.5 163.8 0 226.3s155.8 62.5 218.3 0c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3c-87.5 87.5-221.3 87.5-308.8 0s-87.5-229.3 0-316.8s221.3-87.5 308.8 0c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0z\"]\n};\nconst faTabletButton = {\n prefix: 'fas',\n iconName: 'tablet-button',\n icon: [448, 512, [], \"f10a\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zM224 400a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nconst faBuildingLock = {\n prefix: 'fas',\n iconName: 'building-lock',\n icon: [576, 512, [], \"e4d6\", \"M48 0C21.5 0 0 21.5 0 48L0 464c0 26.5 21.5 48 48 48l96 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 88.6 0c-5.4-9.4-8.6-20.3-8.6-32l0-128c0-23.7 12.9-44.4 32-55.4l0-24.6c0-30.5 12.2-58.2 32-78.4L384 48c0-26.5-21.5-48-48-48L48 0zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm112-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM80 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM464 240c17.7 0 32 14.3 32 32l0 48-64 0 0-48c0-17.7 14.3-32 32-32zm-80 32l0 48c-17.7 0-32 14.3-32 32l0 128c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"]\n};\nconst faPizzaSlice = {\n prefix: 'fas',\n iconName: 'pizza-slice',\n icon: [512, 512, [], \"f818\", \"M169.7 .9c-22.8-1.6-41.9 14-47.5 34.7L110.4 80c.5 0 1.1 0 1.6 0c176.7 0 320 143.3 320 320c0 .5 0 1.1 0 1.6l44.4-11.8c20.8-5.5 36.3-24.7 34.7-47.5C498.5 159.5 352.5 13.5 169.7 .9zM399.8 410.2c.1-3.4 .2-6.8 .2-10.2c0-159.1-128.9-288-288-288c-3.4 0-6.8 .1-10.2 .2L.5 491.9c-1.5 5.5 .1 11.4 4.1 15.4s9.9 5.6 15.4 4.1L399.8 410.2zM176 208a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64 128a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM96 384a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nconst faMoneyBillWave = {\n prefix: 'fas',\n iconName: 'money-bill-wave',\n icon: [576, 512, [], \"f53a\", \"M0 112.5L0 422.3c0 18 10.1 35 27 41.3c87 32.5 174 10.3 261-11.9c79.8-20.3 159.6-40.7 239.3-18.9c23 6.3 48.7-9.5 48.7-33.4l0-309.9c0-18-10.1-35-27-41.3C462 15.9 375 38.1 288 60.3C208.2 80.6 128.4 100.9 48.7 79.1C25.6 72.8 0 88.6 0 112.5zM288 352c-44.2 0-80-43-80-96s35.8-96 80-96s80 43 80 96s-35.8 96-80 96zM64 352c35.3 0 64 28.7 64 64l-64 0 0-64zm64-208c0 35.3-28.7 64-64 64l0-64 64 0zM512 304l0 64-64 0c0-35.3 28.7-64 64-64zM448 96l64 0 0 64c-35.3 0-64-28.7-64-64z\"]\n};\nconst faChartArea = {\n prefix: 'fas',\n iconName: 'chart-area',\n icon: [512, 512, [\"area-chart\"], \"f1fe\", \"M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 400c0 44.2 35.8 80 80 80l400 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 416c-8.8 0-16-7.2-16-16L64 64zm96 288l288 0c17.7 0 32-14.3 32-32l0-68.2c0-7.6-2.7-15-7.7-20.8l-65.8-76.8c-12.1-14.2-33.7-15-46.9-1.8l-21 21c-10 10-26.4 9.2-35.4-1.6l-39.2-47c-12.6-15.1-35.7-15.4-48.7-.6L135.9 215c-5.1 5.8-7.9 13.3-7.9 21.1l0 84c0 17.7 14.3 32 32 32z\"]\n};\nconst faAreaChart = faChartArea;\nconst faHouseFlag = {\n prefix: 'fas',\n iconName: 'house-flag',\n icon: [640, 512, [], \"e50d\", \"M480 0c-17.7 0-32 14.3-32 32l0 160 0 320 64 0 0-320 112 0c8.8 0 16-7.2 16-16l0-128c0-8.8-7.2-16-16-16L512 32c0-17.7-14.3-32-32-32zM416 159L276.8 39.7c-12-10.3-29.7-10.3-41.7 0l-224 192C1 240.4-2.7 254.5 2 267.1S18.6 288 32 288l32 0 0 192c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-96c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 96c0 17.7 14.3 32 32 32l64.7 0 .2 0-1 0 0-353z\"]\n};\nconst faPersonCircleMinus = {\n prefix: 'fas',\n iconName: 'person-circle-minus',\n icon: [576, 512, [], \"e540\", \"M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-223.1L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6l29.7 0c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9 232 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0zm136 16a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm224 0c0-8.8-7.2-16-16-16l-128 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l128 0c8.8 0 16-7.2 16-16z\"]\n};\nconst faBan = {\n prefix: 'fas',\n iconName: 'ban',\n icon: [512, 512, [128683, \"cancel\"], \"f05e\", \"M367.2 412.5L99.5 144.8C77.1 176.1 64 214.5 64 256c0 106 86 192 192 192c41.5 0 79.9-13.1 111.2-35.5zm45.3-45.3C434.9 335.9 448 297.5 448 256c0-106-86-192-192-192c-41.5 0-79.9 13.1-111.2 35.5L412.5 367.2zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z\"]\n};\nconst faCancel = faBan;\nconst faCameraRotate = {\n prefix: 'fas',\n iconName: 'camera-rotate',\n icon: [640, 512, [], \"e0d8\", \"M213.1 64.8L202.7 96 128 96c-35.3 0-64 28.7-64 64l0 256c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-74.7 0L426.9 64.8C420.4 45.2 402.1 32 381.4 32L258.6 32c-20.7 0-39 13.2-45.5 32.8zM448 256c0 8.8-7.2 16-16 16l-76.7 0c-6.2 0-11.3-5.1-11.3-11.3c0-3 1.2-5.9 3.3-8L371 229c-13.6-13.4-31.9-21-51-21c-19.2 0-37.7 7.6-51.3 21.3L249 249c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l19.7-19.7C257.4 172.7 288 160 320 160c31.8 0 62.4 12.6 85 35l23.7-23.7c2.1-2.1 5-3.3 8-3.3c6.2 0 11.3 5.1 11.3 11.3l0 76.7zM192 320c0-8.8 7.2-16 16-16l76.7 0c6.2 0 11.3 5.1 11.3 11.3c0 3-1.2 5.9-3.3 8L269 347c13.6 13.4 31.9 21 51 21c19.2 0 37.7-7.6 51.3-21.3L391 327c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-19.7 19.7C382.6 403.3 352 416 320 416c-31.8 0-62.4-12.6-85-35l-23.7 23.7c-2.1 2.1-5 3.3-8 3.3c-6.2 0-11.3-5.1-11.3-11.3l0-76.7z\"]\n};\nconst faSprayCanSparkles = {\n prefix: 'fas',\n iconName: 'spray-can-sparkles',\n icon: [512, 512, [\"air-freshener\"], \"f5d0\", \"M96 32l0 96 128 0 0-96c0-17.7-14.3-32-32-32L128 0C110.3 0 96 14.3 96 32zm0 128c-53 0-96 43-96 96L0 464c0 26.5 21.5 48 48 48l224 0c26.5 0 48-21.5 48-48l0-208c0-53-43-96-96-96L96 160zm64 96a80 80 0 1 1 0 160 80 80 0 1 1 0-160zM384 48c0-1.4-1-3-2.2-3.6L352 32 339.6 2.2C339 1 337.4 0 336 0s-3 1-3.6 2.2L320 32 290.2 44.4C289 45 288 46.6 288 48c0 1.4 1 3 2.2 3.6L320 64l12.4 29.8C333 95 334.6 96 336 96s3-1 3.6-2.2L352 64l29.8-12.4C383 51 384 49.4 384 48zm76.4 45.8C461 95 462.6 96 464 96s3-1 3.6-2.2L480 64l29.8-12.4C511 51 512 49.4 512 48c0-1.4-1-3-2.2-3.6L480 32 467.6 2.2C467 1 465.4 0 464 0s-3 1-3.6 2.2L448 32 418.2 44.4C417 45 416 46.6 416 48c0 1.4 1 3 2.2 3.6L448 64l12.4 29.8zm7.2 100.4c-.6-1.2-2.2-2.2-3.6-2.2s-3 1-3.6 2.2L448 224l-29.8 12.4c-1.2 .6-2.2 2.2-2.2 3.6c0 1.4 1 3 2.2 3.6L448 256l12.4 29.8c.6 1.2 2.2 2.2 3.6 2.2s3-1 3.6-2.2L480 256l29.8-12.4c1.2-.6 2.2-2.2 2.2-3.6c0-1.4-1-3-2.2-3.6L480 224l-12.4-29.8zM448 144c0-1.4-1-3-2.2-3.6L416 128 403.6 98.2C403 97 401.4 96 400 96s-3 1-3.6 2.2L384 128l-29.8 12.4c-1.2 .6-2.2 2.2-2.2 3.6c0 1.4 1 3 2.2 3.6L384 160l12.4 29.8c.6 1.2 2.2 2.2 3.6 2.2s3-1 3.6-2.2L416 160l29.8-12.4c1.2-.6 2.2-2.2 2.2-3.6z\"]\n};\nconst faAirFreshener = faSprayCanSparkles;\nconst faStar = {\n prefix: 'fas',\n iconName: 'star',\n icon: [576, 512, [11088, 61446], \"f005\", \"M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z\"]\n};\nconst faRepeat = {\n prefix: 'fas',\n iconName: 'repeat',\n icon: [512, 512, [128257], \"f363\", \"M0 224c0 17.7 14.3 32 32 32s32-14.3 32-32c0-53 43-96 96-96l160 0 0 32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9S320 19.1 320 32l0 32L160 64C71.6 64 0 135.6 0 224zm512 64c0-17.7-14.3-32-32-32s-32 14.3-32 32c0 53-43 96-96 96l-160 0 0-32c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6l0-32 160 0c88.4 0 160-71.6 160-160z\"]\n};\nconst faCross = {\n prefix: 'fas',\n iconName: 'cross',\n icon: [384, 512, [128327, 10013], \"f654\", \"M176 0c-26.5 0-48 21.5-48 48l0 80-80 0c-26.5 0-48 21.5-48 48l0 32c0 26.5 21.5 48 48 48l80 0 0 208c0 26.5 21.5 48 48 48l32 0c26.5 0 48-21.5 48-48l0-208 80 0c26.5 0 48-21.5 48-48l0-32c0-26.5-21.5-48-48-48l-80 0 0-80c0-26.5-21.5-48-48-48L176 0z\"]\n};\nconst faBox = {\n prefix: 'fas',\n iconName: 'box',\n icon: [448, 512, [128230], \"f466\", \"M50.7 58.5L0 160l208 0 0-128L93.7 32C75.5 32 58.9 42.3 50.7 58.5zM240 160l208 0L397.3 58.5C389.1 42.3 372.5 32 354.3 32L240 32l0 128zm208 32L0 192 0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-224z\"]\n};\nconst faVenusMars = {\n prefix: 'fas',\n iconName: 'venus-mars',\n icon: [640, 512, [9892], \"f228\", \"M176 288a112 112 0 1 0 0-224 112 112 0 1 0 0 224zM352 176c0 86.3-62.1 158.1-144 173.1l0 34.9 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-34.9C62.1 334.1 0 262.3 0 176C0 78.8 78.8 0 176 0s176 78.8 176 176zM271.9 360.6c19.3-10.1 36.9-23.1 52.1-38.4c20 18.5 46.7 29.8 76.1 29.8c61.9 0 112-50.1 112-112s-50.1-112-112-112c-7.2 0-14.3 .7-21.1 2c-4.9-21.5-13-41.7-24-60.2C369.3 66 384.4 64 400 64c37 0 71.4 11.4 99.8 31l20.6-20.6L487 41c-6.9-6.9-8.9-17.2-5.2-26.2S494.3 0 504 0L616 0c13.3 0 24 10.7 24 24l0 112c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-33.4-33.4L545 140.2c19.5 28.4 31 62.7 31 99.8c0 97.2-78.8 176-176 176c-50.5 0-96-21.3-128.1-55.4z\"]\n};\nconst faArrowPointer = {\n prefix: 'fas',\n iconName: 'arrow-pointer',\n icon: [320, 512, [\"mouse-pointer\"], \"f245\", \"M0 55.2L0 426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320l118.1 0c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z\"]\n};\nconst faMousePointer = faArrowPointer;\nconst faMaximize = {\n prefix: 'fas',\n iconName: 'maximize',\n icon: [512, 512, [\"expand-arrows-alt\"], \"f31e\", \"M200 32L56 32C42.7 32 32 42.7 32 56l0 144c0 9.7 5.8 18.5 14.8 22.2s19.3 1.7 26.2-5.2l40-40 79 79-79 79L73 295c-6.9-6.9-17.2-8.9-26.2-5.2S32 302.3 32 312l0 144c0 13.3 10.7 24 24 24l144 0c9.7 0 18.5-5.8 22.2-14.8s1.7-19.3-5.2-26.2l-40-40 79-79 79 79-40 40c-6.9 6.9-8.9 17.2-5.2 26.2s12.5 14.8 22.2 14.8l144 0c13.3 0 24-10.7 24-24l0-144c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2l-40 40-79-79 79-79 40 40c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2l0-144c0-13.3-10.7-24-24-24L312 32c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l40 40-79 79-79-79 40-40c6.9-6.9 8.9-17.2 5.2-26.2S209.7 32 200 32z\"]\n};\nconst faExpandArrowsAlt = faMaximize;\nconst faChargingStation = {\n prefix: 'fas',\n iconName: 'charging-station',\n icon: [576, 512, [], \"f5e7\", \"M96 0C60.7 0 32 28.7 32 64l0 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-144 16 0c22.1 0 40 17.9 40 40l0 32c0 39.8 32.2 72 72 72s72-32.2 72-72l0-123.7c32.5-10.2 56-40.5 56-76.3l0-32c0-8.8-7.2-16-16-16l-16 0 0-48c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 48-32 0 0-48c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 48-16 0c-8.8 0-16 7.2-16 16l0 32c0 35.8 23.5 66.1 56 76.3L472 376c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-32c0-48.6-39.4-88-88-88l-16 0 0-192c0-35.3-28.7-64-64-64L96 0zM216.9 82.7c6 4 8.5 11.5 6.3 18.3l-25 74.9 57.8 0c6.7 0 12.7 4.2 15 10.4s.5 13.3-4.6 17.7l-112 96c-5.5 4.7-13.4 5.1-19.3 1.1s-8.5-11.5-6.3-18.3l25-74.9L96 208c-6.7 0-12.7-4.2-15-10.4s-.5-13.3 4.6-17.7l112-96c5.5-4.7 13.4-5.1 19.3-1.1z\"]\n};\nconst faShapes = {\n prefix: 'fas',\n iconName: 'shapes',\n icon: [512, 512, [\"triangle-circle-square\"], \"f61f\", \"M315.4 15.5C309.7 5.9 299.2 0 288 0s-21.7 5.9-27.4 15.5l-96 160c-5.9 9.9-6.1 22.2-.4 32.2s16.3 16.2 27.8 16.2l192 0c11.5 0 22.2-6.2 27.8-16.2s5.5-22.3-.4-32.2l-96-160zM288 312l0 144c0 22.1 17.9 40 40 40l144 0c22.1 0 40-17.9 40-40l0-144c0-22.1-17.9-40-40-40l-144 0c-22.1 0-40 17.9-40 40zM128 512a128 128 0 1 0 0-256 128 128 0 1 0 0 256z\"]\n};\nconst faTriangleCircleSquare = faShapes;\nconst faShuffle = {\n prefix: 'fas',\n iconName: 'shuffle',\n icon: [512, 512, [128256, \"random\"], \"f074\", \"M403.8 34.4c12-5 25.7-2.2 34.9 6.9l64 64c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-64 64c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6l0-32-32 0c-10.1 0-19.6 4.7-25.6 12.8L284 229.3 244 176l31.2-41.6C293.3 110.2 321.8 96 352 96l32 0 0-32c0-12.9 7.8-24.6 19.8-29.6zM164 282.7L204 336l-31.2 41.6C154.7 401.8 126.2 416 96 416l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0c10.1 0 19.6-4.7 25.6-12.8L164 282.7zm274.6 188c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6l0-32-32 0c-30.2 0-58.7-14.2-76.8-38.4L121.6 172.8c-6-8.1-15.5-12.8-25.6-12.8l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0c30.2 0 58.7 14.2 76.8 38.4L326.4 339.2c6 8.1 15.5 12.8 25.6 12.8l32 0 0-32c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l64 64c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-64 64z\"]\n};\nconst faRandom = faShuffle;\nconst faPersonRunning = {\n prefix: 'fas',\n iconName: 'person-running',\n icon: [448, 512, [127939, \"running\"], \"f70c\", \"M320 48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM125.7 175.5c9.9-9.9 23.4-15.5 37.5-15.5c1.9 0 3.8 .1 5.6 .3L137.6 254c-9.3 28 1.7 58.8 26.8 74.5l86.2 53.9-25.4 88.8c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l28.7-100.4c5.9-20.6-2.6-42.6-20.7-53.9L238 299l30.9-82.4 5.1 12.3C289 264.7 323.9 288 362.7 288l21.3 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-21.3 0c-12.9 0-24.6-7.8-29.5-19.7l-6.3-15c-14.6-35.1-44.1-61.9-80.5-73.1l-48.7-15c-11.1-3.4-22.7-5.2-34.4-5.2c-31 0-60.8 12.3-82.7 34.3L57.4 153.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l23.1-23.1zM91.2 352L32 352c-17.7 0-32 14.3-32 32s14.3 32 32 32l69.6 0c19 0 36.2-11.2 43.9-28.5L157 361.6l-9.5-6c-17.5-10.9-30.5-26.8-37.9-44.9L91.2 352z\"]\n};\nconst faRunning = faPersonRunning;\nconst faMobileRetro = {\n prefix: 'fas',\n iconName: 'mobile-retro',\n icon: [320, 512, [], \"e527\", \"M0 64C0 28.7 28.7 0 64 0L256 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm64 96l0 64c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32L96 128c-17.7 0-32 14.3-32 32zM80 352a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm24 56a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm56-56a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm24 56a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm56-56a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm24 56a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM128 48c-8.8 0-16 7.2-16 16s7.2 16 16 16l64 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-64 0z\"]\n};\nconst faGripLinesVertical = {\n prefix: 'fas',\n iconName: 'grip-lines-vertical',\n icon: [192, 512, [], \"f7a5\", \"M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32L64 64zm128 0c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384z\"]\n};\nconst faSpider = {\n prefix: 'fas',\n iconName: 'spider',\n icon: [512, 512, [128375], \"f717\", \"M158.4 32.6c4.8-12.4-1.4-26.3-13.8-31s-26.3 1.4-31 13.8L81.1 100c-7.9 20.7-3 44.1 12.7 59.7l57.4 57.4L70.8 190.3c-2.4-.8-4.3-2.7-5.1-5.1L46.8 128.4C42.6 115.8 29 109 16.4 113.2S-3 131 1.2 143.6l18.9 56.8c5.6 16.7 18.7 29.8 35.4 35.4L116.1 256 55.6 276.2c-16.7 5.6-29.8 18.7-35.4 35.4L1.2 368.4C-3 381 3.8 394.6 16.4 398.8s26.2-2.6 30.4-15.2l18.9-56.8c.8-2.4 2.7-4.3 5.1-5.1l80.4-26.8L93.7 352.3C78.1 368 73.1 391.4 81.1 412l32.5 84.6c4.8 12.4 18.6 18.5 31 13.8s18.5-18.6 13.8-31l-32.5-84.6c-1.1-3-.4-6.3 1.8-8.5L160 353.9c1 52.1 43.6 94.1 96 94.1s95-41.9 96-94.1l32.3 32.3c2.2 2.2 2.9 5.6 1.8 8.5l-32.5 84.6c-4.8 12.4 1.4 26.3 13.8 31s26.3-1.4 31-13.8L430.9 412c7.9-20.7 3-44.1-12.7-59.7l-57.4-57.4 80.4 26.8c2.4 .8 4.3 2.7 5.1 5.1l18.9 56.8c4.2 12.6 17.8 19.4 30.4 15.2s19.4-17.8 15.2-30.4l-18.9-56.8c-5.6-16.7-18.7-29.8-35.4-35.4L395.9 256l60.5-20.2c16.7-5.6 29.8-18.7 35.4-35.4l18.9-56.8c4.2-12.6-2.6-26.2-15.2-30.4s-26.2 2.6-30.4 15.2l-18.9 56.8c-.8 2.4-2.7 4.3-5.1 5.1l-80.4 26.8 57.4-57.4c15.6-15.6 20.6-39 12.7-59.7L398.4 15.4C393.6 3 379.8-3.2 367.4 1.6s-18.5 18.6-13.8 31l32.5 84.6c1.1 3 .4 6.3-1.8 8.5L336 174.1l0-14.1c0-31.8-18.6-59.3-45.5-72.2c-9.1-4.4-18.5 3.3-18.5 13.4l0 10.8c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-10.8c0-10.1-9.4-17.7-18.5-13.4C194.6 100.7 176 128.2 176 160l0 14.1-48.3-48.3c-2.2-2.2-2.9-5.6-1.8-8.5l32.5-84.6z\"]\n};\nconst faHandsBound = {\n prefix: 'fas',\n iconName: 'hands-bound',\n icon: [640, 512, [], \"e4f9\", \"M96 32C96 14.3 81.7 0 64 0S32 14.3 32 32l0 64 0 59.1 0 .7L32 192l0 21.9c0 14.2 5.1 27.9 14.3 38.7L131.6 352l-3.6 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 128 0 64 0 128 0 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-3.6 0 85.3-99.5c9.2-10.8 14.3-24.5 14.3-38.7l0-21.9 0-36.2 0-.7L608 96l0-64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64 0 48.8-69.3 92.4c-5.7 7.6-16.1 9.6-24.2 4.8c-9.7-5.7-12.1-18.7-5.1-27.5L473 180c10.8-13.5 8.9-33.3-4.4-44.5s-33-9.8-44.5 3.2l-46.7 52.5C361 209.7 352 233.4 352 258.1l0 61.9 0 32-64 0 0-32 0-61.9c0-24.6-9-48.4-25.4-66.8l-46.7-52.5c-11.5-13-31.3-14.4-44.5-3.2s-15.2 30.9-4.4 44.5l27.6 34.5c7 8.8 4.7 21.8-5.1 27.5c-8.1 4.8-18.6 2.7-24.2-4.8L96 144.8 96 96l0-64zm64 448l0 32 128 0 0-32 64 0 0 32 128 0 0-32 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0-128 0-64 0-128 0-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0z\"]\n};\nconst faFileInvoiceDollar = {\n prefix: 'fas',\n iconName: 'file-invoice-dollar',\n icon: [384, 512, [], \"f571\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM64 80c0-8.8 7.2-16 16-16l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L80 96c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16zm128 72c8.8 0 16 7.2 16 16l0 17.3c8.5 1.2 16.7 3.1 24.1 5.1c8.5 2.3 13.6 11 11.3 19.6s-11 13.6-19.6 11.3c-11.1-3-22-5.2-32.1-5.3c-8.4-.1-17.4 1.8-23.6 5.5c-5.7 3.4-8.1 7.3-8.1 12.8c0 3.7 1.3 6.5 7.3 10.1c6.9 4.1 16.6 7.1 29.2 10.9l.5 .1s0 0 0 0s0 0 0 0c11.3 3.4 25.3 7.6 36.3 14.6c12.1 7.6 22.4 19.7 22.7 38.2c.3 19.3-9.6 33.3-22.9 41.6c-7.7 4.8-16.4 7.6-25.1 9.1l0 17.1c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-17.8c-11.2-2.1-21.7-5.7-30.9-8.9c0 0 0 0 0 0c-2.1-.7-4.2-1.4-6.2-2.1c-8.4-2.8-12.9-11.9-10.1-20.2s11.9-12.9 20.2-10.1c2.5 .8 4.8 1.6 7.1 2.4c0 0 0 0 0 0s0 0 0 0s0 0 0 0c13.6 4.6 24.6 8.4 36.3 8.7c9.1 .3 17.9-1.7 23.7-5.3c5.1-3.2 7.9-7.3 7.8-14c-.1-4.6-1.8-7.8-7.7-11.6c-6.8-4.3-16.5-7.4-29-11.2l-1.6-.5s0 0 0 0c-11-3.3-24.3-7.3-34.8-13.7c-12-7.2-22.6-18.9-22.7-37.3c-.1-19.4 10.8-32.8 23.8-40.5c7.5-4.4 15.8-7.2 24.1-8.7l0-17.3c0-8.8 7.2-16 16-16z\"]\n};\nconst faPlaneCircleExclamation = {\n prefix: 'fas',\n iconName: 'plane-circle-exclamation',\n icon: [640, 512, [], \"e556\", \"M256 0c-35 0-64 59.5-64 93.7l0 84.6L8.1 283.4c-5 2.8-8.1 8.2-8.1 13.9l0 65.5c0 10.6 10.2 18.3 20.4 15.4l171.6-49 0 70.9-57.6 43.2c-4 3-6.4 7.8-6.4 12.8l0 42c0 7.8 6.3 14 14 14c1.3 0 2.6-.2 3.9-.5L256 480l110.1 31.5c1.3 .4 2.6 .5 3.9 .5c6 0 11.1-3.7 13.1-9C344.5 470.7 320 422.2 320 368c0-60.6 30.6-114 77.1-145.6L320 178.3l0-84.6C320 59.5 292 0 256 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"]\n};\nconst faXRay = {\n prefix: 'fas',\n iconName: 'x-ray',\n icon: [512, 512, [], \"f497\", \"M0 64C0 46.3 14.3 32 32 32l448 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 320c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32L32 96C14.3 96 0 81.7 0 64zM256 96c-8.8 0-16 7.2-16 16l0 32-80 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l80 0 0 48-112 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l112 0 0 70.6L189.1 307c-5.2-2-10.6-3-16.2-3l-2.1 0c-23.6 0-42.8 19.2-42.8 42.8c0 9.6 3.2 18.9 9.1 26.4l18.2 23.2c9.7 12.4 24.6 19.6 40.3 19.6l120.8 0c15.7 0 30.6-7.2 40.3-19.6l18.2-23.2c5.9-7.5 9.1-16.8 9.1-26.4c0-23.6-19.2-42.8-42.8-42.8l-2.2 0c-5.5 0-11 1-16.2 3L272 326.6l0-70.6 112 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-112 0 0-48 80 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-80 0 0-32c0-8.8-7.2-16-16-16zM208 352a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm80 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z\"]\n};\nconst faSpellCheck = {\n prefix: 'fas',\n iconName: 'spell-check',\n icon: [576, 512, [], \"f891\", \"M112 0C99.1 0 87.4 7.8 82.5 19.7l-66.7 160-13.3 32c-6.8 16.3 .9 35 17.2 41.8s35-.9 41.8-17.2L66.7 224l90.7 0 5.1 12.3c6.8 16.3 25.5 24 41.8 17.2s24-25.5 17.2-41.8l-13.3-32-66.7-160C136.6 7.8 124.9 0 112 0zm18.7 160l-37.3 0L112 115.2 130.7 160zM256 32l0 96 0 96c0 17.7 14.3 32 32 32l80 0c44.2 0 80-35.8 80-80c0-23.1-9.8-43.8-25.4-58.4c6-11.2 9.4-24 9.4-37.6c0-44.2-35.8-80-80-80L288 0c-17.7 0-32 14.3-32 32zm96 64l-32 0 0-32 32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16zm-32 64l32 0 16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-48 0 0-32zM566.6 310.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L352 434.7l-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l192-192z\"]\n};\nconst faSlash = {\n prefix: 'fas',\n iconName: 'slash',\n icon: [640, 512, [], \"f715\", \"M5.1 9.2C13.3-1.2 28.4-3.1 38.8 5.1l592 464c10.4 8.2 12.3 23.3 4.1 33.7s-23.3 12.3-33.7 4.1L9.2 42.9C-1.2 34.7-3.1 19.6 5.1 9.2z\"]\n};\nconst faComputerMouse = {\n prefix: 'fas',\n iconName: 'computer-mouse',\n icon: [384, 512, [128433, \"mouse\"], \"f8cc\", \"M0 192l176 0L176 0 160 0C71.6 0 0 71.6 0 160l0 32zm0 32L0 352c0 88.4 71.6 160 160 160l64 0c88.4 0 160-71.6 160-160l0-128-192 0L0 224zm384-32l0-32C384 71.6 312.4 0 224 0L208 0l0 192 176 0z\"]\n};\nconst faMouse = faComputerMouse;\nconst faArrowRightToBracket = {\n prefix: 'fas',\n iconName: 'arrow-right-to-bracket',\n icon: [512, 512, [\"sign-in\"], \"f090\", \"M352 96l64 0c17.7 0 32 14.3 32 32l0 256c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c53 0 96-43 96-96l0-256c0-53-43-96-96-96l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm-9.4 182.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L242.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l210.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128z\"]\n};\nconst faSignIn = faArrowRightToBracket;\nconst faShopSlash = {\n prefix: 'fas',\n iconName: 'shop-slash',\n icon: [640, 512, [\"store-alt-slash\"], \"e070\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-54.8-43L576 224l-64 0 0 152L384 275.7l0-51.7-64 0 0 1.5L277.2 192l325.9 0c20.3 0 36.8-16.5 36.8-36.8c0-7.3-2.2-14.4-6.2-20.4L558.2 21.4C549.3 8 534.4 0 518.3 0L121.7 0c-16 0-31 8-39.9 21.4L74.1 32.8 38.8 5.1zM36.8 192l85 0L21 112.5 6.2 134.7c-4 6.1-6.2 13.2-6.2 20.4C0 175.5 16.5 192 36.8 192zM320 384l-192 0 0-160-64 0 0 160 0 80c0 26.5 21.5 48 48 48l224 0c26.5 0 48-21.5 48-48l0-65.5-64-50.4 0 35.9z\"]\n};\nconst faStoreAltSlash = faShopSlash;\nconst faServer = {\n prefix: 'fas',\n iconName: 'server',\n icon: [512, 512, [], \"f233\", \"M64 32C28.7 32 0 60.7 0 96l0 64c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-64c0-35.3-28.7-64-64-64L64 32zm280 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm48 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM64 288c-35.3 0-64 28.7-64 64l0 64c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-64c0-35.3-28.7-64-64-64L64 288zm280 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm56 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nconst faVirusCovidSlash = {\n prefix: 'fas',\n iconName: 'virus-covid-slash',\n icon: [640, 512, [], \"e4a9\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L472.1 344.7c11.4-19.5 19.1-41.4 22.3-64.7l33.6 0 0 16c0 13.3 10.7 24 24 24s24-10.7 24-24l0-80c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 16-33.6 0c-4.2-30.7-16.3-58.8-34.1-82.3L484 125.9l11.3 11.3c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L472.7 46.7c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9L450.1 92l-23.8 23.8C402.8 97.9 374.7 85.8 344 81.6L344 48l16 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L280 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l16 0 0 33.6c-30.7 4.2-58.8 16.3-82.3 34.1L189.9 92l11.3-11.3c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L134.1 79.8 38.8 5.1zM149.2 213.5c-1.5 6-2.7 12.2-3.5 18.5L112 232l0-16c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16 33.6 0c4.2 30.7 16.3 58.8 34.1 82.3L156 386.1l-11.3-11.3c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l56.6 56.6c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L189.9 420l23.8-23.8c23.5 17.9 51.7 29.9 82.3 34.1l0 33.6-16 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-16 0 0-33.6c20.4-2.8 39.7-9.1 57.3-18.2L149.2 213.5z\"]\n};\nconst faShopLock = {\n prefix: 'fas',\n iconName: 'shop-lock',\n icon: [640, 512, [], \"e4a5\", \"M36.8 192l412.8 0c20.2-19.8 47.9-32 78.4-32c30.5 0 58.1 12.2 78.3 31.9c18.9-1.6 33.7-17.4 33.7-36.7c0-7.3-2.2-14.4-6.2-20.4L558.2 21.4C549.3 8 534.4 0 518.3 0L121.7 0c-16 0-31 8-39.9 21.4L6.2 134.7c-4 6.1-6.2 13.2-6.2 20.4C0 175.5 16.5 192 36.8 192zM384 224l-64 0 0 160-192 0 0-160-64 0 0 160 0 80c0 26.5 21.5 48 48 48l224 0c26.5 0 48-21.5 48-48l0-80 0-32 0-128zm144 16c17.7 0 32 14.3 32 32l0 48-64 0 0-48c0-17.7 14.3-32 32-32zm-80 32l0 48c-17.7 0-32 14.3-32 32l0 128c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"]\n};\nconst faHourglassStart = {\n prefix: 'fas',\n iconName: 'hourglass-start',\n icon: [384, 512, [\"hourglass-1\"], \"f251\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l0 11c0 42.4 16.9 83.1 46.9 113.1L146.7 256 78.9 323.9C48.9 353.9 32 394.6 32 437l0 11c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 256 0 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-11c0-42.4-16.9-83.1-46.9-113.1L237.3 256l67.9-67.9c30-30 46.9-70.7 46.9-113.1l0-11c17.7 0 32-14.3 32-32s-14.3-32-32-32L320 0 64 0 32 0zM288 437l0 11L96 448l0-11c0-25.5 10.1-49.9 28.1-67.9L192 301.3l67.9 67.9c18 18 28.1 42.4 28.1 67.9z\"]\n};\nconst faHourglass1 = faHourglassStart;\nconst faBlenderPhone = {\n prefix: 'fas',\n iconName: 'blender-phone',\n icon: [576, 512, [], \"f6b6\", \"M224 352L196.8 52.3C194.2 24.2 216.3 0 244.6 0L534.1 0c21.1 0 36.4 20.1 30.9 40.4L558.5 64 400 64c-8.8 0-16 7.2-16 16s7.2 16 16 16l149.8 0-17.5 64L400 160c-8.8 0-16 7.2-16 16s7.2 16 16 16l123.6 0-17.5 64L400 256c-8.8 0-16 7.2-16 16s7.2 16 16 16l97.5 0L480 352l-256 0zm-16 32l288 0c26.5 0 48 21.5 48 48l0 32c0 26.5-21.5 48-48 48l-288 0c-26.5 0-48-21.5-48-48l0-32c0-26.5 21.5-48 48-48zm144 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM147.5 30.7c10.8 6.7 15.3 21 10.6 33.4l-22 57.8c-4.2 10.9-14.5 17.6-25.3 16.4l-33.3-3.6c-13.6 42.2-13.6 88.4 0 130.7l33.3-3.6c10.9-1.2 21.2 5.5 25.3 16.4l22 57.8c4.7 12.4 .2 26.7-10.6 33.4l-44 27.2c-9.7 6-21.9 4.2-29.8-4.3C-24.6 286-24.6 114 73.7 7.8C81.6-.7 93.8-2.5 103.5 3.5l44 27.2z\"]\n};\nconst faBuildingWheat = {\n prefix: 'fas',\n iconName: 'building-wheat',\n icon: [640, 512, [], \"e4db\", \"M0 48C0 21.5 21.5 0 48 0L336 0c26.5 0 48 21.5 48 48l0 416c0 26.5-21.5 48-48 48l-96 0 0-80c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 80-96 0c-26.5 0-48-21.5-48-48L0 48zM80 224c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm80 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm112-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM64 112l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16L80 96c-8.8 0-16 7.2-16 16zM176 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm80 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm384 80l0 16c0 44.2-35.8 80-80 80l-16 0 0-16c0-44.2 35.8-80 80-80l16 0zm0 128c0 44.2-35.8 80-80 80l-16 0 0-16c0-44.2 35.8-80 80-80l16 0 0 16zm0 112c0 44.2-35.8 80-80 80l-16 0 0-16c0-44.2 35.8-80 80-80l16 0 0 16zM512 496l0 16-16 0c-44.2 0-80-35.8-80-80l0-16 16 0c44.2 0 80 35.8 80 80zm0-96l-16 0c-44.2 0-80-35.8-80-80l0-16 16 0c44.2 0 80 35.8 80 80l0 16zm0-128l0 16-16 0c-44.2 0-80-35.8-80-80l0-16 16 0c44.2 0 80 35.8 80 80zM528 32c13.3 0 24 10.7 24 24l0 104c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-104c0-13.3 10.7-24 24-24zm96 64l0 32c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-32c0-13.3 10.7-24 24-24s24 10.7 24 24zM456 72c13.3 0 24 10.7 24 24l0 32c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-32c0-13.3 10.7-24 24-24z\"]\n};\nconst faPersonBreastfeeding = {\n prefix: 'fas',\n iconName: 'person-breastfeeding',\n icon: [448, 512, [], \"e53a\", \"M224 0a80 80 0 1 1 0 160A80 80 0 1 1 224 0zM436.8 382.8L373.5 462c-16.6 20.7-46.8 24.1-67.5 7.5c-17.6-14.1-22.7-38.1-13.5-57.7l-.8-.1c-38.9-5.6-74.3-25.1-99.7-54.8l0-36.8c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48c0 .8 0 1.6 .1 2.4l101.4 50.7c23.7 11.9 33.3 40.7 21.5 64.4s-40.7 33.3-64.4 21.5L27.2 427.3c-1.1-.5-2.2-1.1-3.3-1.7c-4.9-2.8-9.2-6.4-12.6-10.6c-4.6-5.4-7.8-11.7-9.6-18.4c-3.3-12-1.9-25.2 4.8-36.6c.6-1.1 1.3-2.2 2-3.2L75.6 256.1c26.7-40.1 71.7-64.1 119.8-64.1l75.2 0c46.5 0 90.1 22.5 117.2 60.3l50.7 70.9c2.2 3 4 6.1 5.5 9.4c2.9 6.7 4.3 13.8 4 20.8c-.3 10.6-4.2 21-11.2 29.4zM320 332a44 44 0 1 0 -88 0 44 44 0 1 0 88 0z\"]\n};\nconst faRightToBracket = {\n prefix: 'fas',\n iconName: 'right-to-bracket',\n icon: [512, 512, [\"sign-in-alt\"], \"f2f6\", \"M217.9 105.9L340.7 228.7c7.2 7.2 11.3 17.1 11.3 27.3s-4.1 20.1-11.3 27.3L217.9 406.1c-6.4 6.4-15 9.9-24 9.9c-18.7 0-33.9-15.2-33.9-33.9l0-62.1L32 320c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l128 0 0-62.1c0-18.7 15.2-33.9 33.9-33.9c9 0 17.6 3.6 24 9.9zM352 416l64 0c17.7 0 32-14.3 32-32l0-256c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0c53 0 96 43 96 96l0 256c0 53-43 96-96 96l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nconst faSignInAlt = faRightToBracket;\nconst faVenus = {\n prefix: 'fas',\n iconName: 'venus',\n icon: [384, 512, [9792], \"f221\", \"M80 176a112 112 0 1 1 224 0A112 112 0 1 1 80 176zM224 349.1c81.9-15 144-86.8 144-173.1C368 78.8 289.2 0 192 0S16 78.8 16 176c0 86.3 62.1 158.1 144 173.1l0 34.9-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-34.9z\"]\n};\nconst faPassport = {\n prefix: 'fas',\n iconName: 'passport',\n icon: [448, 512, [], \"f5ab\", \"M0 64C0 28.7 28.7 0 64 0L384 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM183 278.8c-27.9-13.2-48.4-39.4-53.7-70.8l39.1 0c1.6 30.4 7.7 53.8 14.6 70.8zm41.3 9.2l-.3 0-.3 0c-2.4-3.5-5.7-8.9-9.1-16.5c-6-13.6-12.4-34.3-14.2-63.5l47.1 0c-1.8 29.2-8.1 49.9-14.2 63.5c-3.4 7.6-6.7 13-9.1 16.5zm40.7-9.2c6.8-17.1 12.9-40.4 14.6-70.8l39.1 0c-5.3 31.4-25.8 57.6-53.7 70.8zM279.6 176c-1.6-30.4-7.7-53.8-14.6-70.8c27.9 13.2 48.4 39.4 53.7 70.8l-39.1 0zM223.7 96l.3 0 .3 0c2.4 3.5 5.7 8.9 9.1 16.5c6 13.6 12.4 34.3 14.2 63.5l-47.1 0c1.8-29.2 8.1-49.9 14.2-63.5c3.4-7.6 6.7-13 9.1-16.5zM183 105.2c-6.8 17.1-12.9 40.4-14.6 70.8l-39.1 0c5.3-31.4 25.8-57.6 53.7-70.8zM352 192A128 128 0 1 0 96 192a128 128 0 1 0 256 0zM112 384c-8.8 0-16 7.2-16 16s7.2 16 16 16l224 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-224 0z\"]\n};\nconst faThumbtackSlash = {\n prefix: 'fas',\n iconName: 'thumbtack-slash',\n icon: [640, 512, [\"thumb-tack-slash\"], \"e68f\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L481.4 352c9.8-.4 18.9-5.3 24.6-13.3c6-8.3 7.7-19.1 4.4-28.8l-1-3c-13.8-41.5-42.8-74.8-79.5-94.7L418.5 64 448 64c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l29.5 0-6.1 79.5L38.8 5.1zM324.9 352L177.1 235.6c-20.9 18.9-37.2 43.3-46.5 71.3l-1 3c-3.3 9.8-1.6 20.5 4.4 28.8s15.7 13.3 26 13.3l164.9 0zM288 384l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96-64 0z\"]\n};\nconst faThumbTackSlash = faThumbtackSlash;\nconst faHeartPulse = {\n prefix: 'fas',\n iconName: 'heart-pulse',\n icon: [512, 512, [\"heartbeat\"], \"f21e\", \"M228.3 469.1L47.6 300.4c-4.2-3.9-8.2-8.1-11.9-12.4l87 0c22.6 0 43-13.6 51.7-34.5l10.5-25.2 49.3 109.5c3.8 8.5 12.1 14 21.4 14.1s17.8-5 22-13.3L320 253.7l1.7 3.4c9.5 19 28.9 31 50.1 31l104.5 0c-3.7 4.3-7.7 8.5-11.9 12.4L283.7 469.1c-7.5 7-17.4 10.9-27.7 10.9s-20.2-3.9-27.7-10.9zM503.7 240l-132 0c-3 0-5.8-1.7-7.2-4.4l-23.2-46.3c-4.1-8.1-12.4-13.3-21.5-13.3s-17.4 5.1-21.5 13.3l-41.4 82.8L205.9 158.2c-3.9-8.7-12.7-14.3-22.2-14.1s-18.1 5.9-21.8 14.8l-31.8 76.3c-1.2 3-4.2 4.9-7.4 4.9L16 240c-2.6 0-5 .4-7.3 1.1C3 225.2 0 208.2 0 190.9l0-5.8c0-69.9 50.5-129.5 119.4-141C165 36.5 211.4 51.4 244 84l12 12 12-12c32.6-32.6 79-47.5 124.6-39.9C461.5 55.6 512 115.2 512 185.1l0 5.8c0 16.9-2.8 33.5-8.3 49.1z\"]\n};\nconst faHeartbeat = faHeartPulse;\nconst faPeopleCarryBox = {\n prefix: 'fas',\n iconName: 'people-carry-box',\n icon: [640, 512, [\"people-carry\"], \"f4ce\", \"M80 48a48 48 0 1 1 96 0A48 48 0 1 1 80 48zm64 193.7l0 65.1 51 51c7.1 7.1 11.8 16.2 13.4 26.1l15.2 90.9c2.9 17.4-8.9 33.9-26.3 36.8s-33.9-8.9-36.8-26.3l-14.3-85.9L66.8 320C54.8 308 48 291.7 48 274.7l0-88.1c0-32.4 26.2-58.6 58.6-58.6c24.1 0 46.5 12 59.9 32l47.4 71.1 10.1 5 0-76.2c0-17.7 14.3-32 32-32l128 0c17.7 0 32 14.3 32 32l0 76.2 10.1-5L473.5 160c13.3-20 35.8-32 59.9-32c32.4 0 58.6 26.2 58.6 58.6l0 88.1c0 17-6.7 33.3-18.7 45.3l-79.4 79.4-14.3 85.9c-2.9 17.4-19.4 29.2-36.8 26.3s-29.2-19.4-26.3-36.8l15.2-90.9c1.6-9.9 6.3-19 13.4-26.1l51-51 0-65.1-19 28.5c-4.6 7-11 12.6-18.5 16.3l-59.6 29.8c-2.4 1.3-4.9 2.2-7.6 2.8c-2.6 .6-5.3 .9-7.9 .8l-126.7 0c-2.5 .1-5-.2-7.5-.7c-2.9-.6-5.6-1.6-8.1-3l-59.5-29.8c-7.5-3.7-13.8-9.4-18.5-16.3l-19-28.5zM2.3 468.1L50.1 348.6l49.2 49.2-37.6 94c-6.6 16.4-25.2 24.4-41.6 17.8S-4.3 484.5 2.3 468.1zM512 0a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm77.9 348.6l47.8 119.5c6.6 16.4-1.4 35-17.8 41.6s-35-1.4-41.6-17.8l-37.6-94 49.2-49.2z\"]\n};\nconst faPeopleCarry = faPeopleCarryBox;\nconst faTemperatureHigh = {\n prefix: 'fas',\n iconName: 'temperature-high',\n icon: [512, 512, [], \"f769\", \"M416 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0 128A96 96 0 1 0 416 0a96 96 0 1 0 0 192zM96 112c0-26.5 21.5-48 48-48s48 21.5 48 48l0 164.5c0 17.3 7.1 31.9 15.3 42.5C217.8 332.6 224 349.5 224 368c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-18.5 6.2-35.4 16.7-48.9C88.9 308.4 96 293.8 96 276.5L96 112zM144 0C82.1 0 32 50.2 32 112l0 164.4c0 .1-.1 .3-.2 .6c-.2 .6-.8 1.6-1.7 2.8C11.2 304.2 0 334.8 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.2-11.2-63.8-30.1-88.1c-.9-1.2-1.5-2.2-1.7-2.8c-.1-.3-.2-.5-.2-.6L256 112C256 50.2 205.9 0 144 0zm0 416c26.5 0 48-21.5 48-48c0-20.9-13.4-38.7-32-45.3L160 112c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 210.7c-18.6 6.6-32 24.4-32 45.3c0 26.5 21.5 48 48 48z\"]\n};\nconst faMicrochip = {\n prefix: 'fas',\n iconName: 'microchip',\n icon: [512, 512, [], \"f2db\", \"M176 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c-35.3 0-64 28.7-64 64l-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0 0 56-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0 0 56-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0c0 35.3 28.7 64 64 64l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40 56 0 0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40 56 0 0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40c35.3 0 64-28.7 64-64l40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0 0-56 40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0 0-56 40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0c0-35.3-28.7-64-64-64l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40-56 0 0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40-56 0 0-40zM160 128l192 0c17.7 0 32 14.3 32 32l0 192c0 17.7-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32l0-192c0-17.7 14.3-32 32-32zm192 32l-192 0 0 192 192 0 0-192z\"]\n};\nconst faCrown = {\n prefix: 'fas',\n iconName: 'crown',\n icon: [576, 512, [128081], \"f521\", \"M309 106c11.4-7 19-19.7 19-34c0-22.1-17.9-40-40-40s-40 17.9-40 40c0 14.4 7.6 27 19 34L209.7 220.6c-9.1 18.2-32.7 23.4-48.6 10.7L72 160c5-6.7 8-15 8-24c0-22.1-17.9-40-40-40S0 113.9 0 136s17.9 40 40 40c.2 0 .5 0 .7 0L86.4 427.4c5.5 30.4 32 52.6 63 52.6l277.2 0c30.9 0 57.4-22.1 63-52.6L535.3 176c.2 0 .5 0 .7 0c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40c0 9 3 17.3 8 24l-89.1 71.3c-15.9 12.7-39.5 7.5-48.6-10.7L309 106z\"]\n};\nconst faWeightHanging = {\n prefix: 'fas',\n iconName: 'weight-hanging',\n icon: [512, 512, [], \"f5cd\", \"M224 96a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm122.5 32c3.5-10 5.5-20.8 5.5-32c0-53-43-96-96-96s-96 43-96 96c0 11.2 1.9 22 5.5 32L120 128c-22 0-41.2 15-46.6 36.4l-72 288c-3.6 14.3-.4 29.5 8.7 41.2S33.2 512 48 512l416 0c14.8 0 28.7-6.8 37.8-18.5s12.3-26.8 8.7-41.2l-72-288C433.2 143 414 128 392 128l-45.5 0z\"]\n};\nconst faXmarksLines = {\n prefix: 'fas',\n iconName: 'xmarks-lines',\n icon: [640, 512, [], \"e59a\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l576 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zm0 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l576 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 416zM7 167c-9.4 9.4-9.4 24.6 0 33.9l55 55L7 311c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55L41 167c-9.4-9.4-24.6-9.4-33.9 0zM265 167c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l55 55-55 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55-55-55zM455 167c-9.4 9.4-9.4 24.6 0 33.9l55 55-55 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55-55-55c-9.4-9.4-24.6-9.4-33.9 0z\"]\n};\nconst faFilePrescription = {\n prefix: 'fas',\n iconName: 'file-prescription',\n icon: [384, 512, [], \"f572\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM104 196l72 0c33.1 0 60 26.9 60 60c0 25.5-15.9 47.2-38.3 55.9l43 40.3 33.8-31c8.1-7.5 20.8-6.9 28.3 1.2s6.9 20.8-1.2 28.3L270 379.7l31.7 29.7c8.1 7.6 8.5 20.2 .9 28.3s-20.2 8.5-28.3 .9l-33.9-31.8-34.9 32c-8.1 7.5-20.8 6.9-28.3-1.2s-6.9-20.8 1.2-28.3l32.6-29.9-64.8-60.8c-.9-.8-1.6-1.7-2.3-2.6l-20 0 0 44c0 11-9 20-20 20s-20-9-20-20l0-64 0-80c0-11 9-20 20-20zm72 80c11 0 20-9 20-20s-9-20-20-20l-52 0 0 40 52 0z\"]\n};\nconst faWeightScale = {\n prefix: 'fas',\n iconName: 'weight-scale',\n icon: [512, 512, [\"weight\"], \"f496\", \"M128 176a128 128 0 1 1 256 0 128 128 0 1 1 -256 0zM391.8 64C359.5 24.9 310.7 0 256 0S152.5 24.9 120.2 64L64 64C28.7 64 0 92.7 0 128L0 448c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64l-56.2 0zM296 224c0-10.6-4.1-20.2-10.9-27.4l33.6-78.3c3.5-8.1-.3-17.5-8.4-21s-17.5 .3-21 8.4L255.7 184c-22 .1-39.7 18-39.7 40c0 22.1 17.9 40 40 40s40-17.9 40-40z\"]\n};\nconst faWeight = faWeightScale;\nconst faUserGroup = {\n prefix: 'fas',\n iconName: 'user-group',\n icon: [640, 512, [128101, \"user-friends\"], \"f500\", \"M96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM0 482.3C0 383.8 79.8 304 178.3 304l91.4 0C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7L29.7 512C13.3 512 0 498.7 0 482.3zM609.3 512l-137.8 0c5.4-9.4 8.6-20.3 8.6-32l0-8c0-60.7-27.1-115.2-69.8-151.8c2.4-.1 4.7-.2 7.1-.2l61.4 0C567.8 320 640 392.2 640 481.3c0 17-13.8 30.7-30.7 30.7zM432 256c-31 0-59-12.6-79.3-32.9C372.4 196.5 384 163.6 384 128c0-26.8-6.6-52.1-18.3-74.3C384.3 40.1 407.2 32 432 32c61.9 0 112 50.1 112 112s-50.1 112-112 112z\"]\n};\nconst faUserFriends = faUserGroup;\nconst faArrowUpAZ = {\n prefix: 'fas',\n iconName: 'arrow-up-a-z',\n icon: [576, 512, [\"sort-alpha-up\"], \"f15e\", \"M183.6 42.4C177.5 35.8 169 32 160 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L128 146.3 128 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-301.7 32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 320c0 17.7 14.3 32 32 32l50.7 0-73.4 73.4c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-50.7 0 73.4-73.4c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8l-128 0c-17.7 0-32 14.3-32 32zM416 32c-12.1 0-23.2 6.8-28.6 17.7l-64 128-16 32c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l7.2-14.3 88.4 0 7.2 14.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9l-16-32-64-128C439.2 38.8 428.1 32 416 32zM395.8 176L416 135.6 436.2 176l-40.4 0z\"]\n};\nconst faSortAlphaUp = faArrowUpAZ;\nconst faChessKnight = {\n prefix: 'fas',\n iconName: 'chess-knight',\n icon: [448, 512, [9822], \"f441\", \"M96 48L82.7 61.3C70.7 73.3 64 89.5 64 106.5l0 132.4c0 10.7 5.3 20.7 14.2 26.6l10.6 7c14.3 9.6 32.7 10.7 48.1 3l3.2-1.6c2.6-1.3 5-2.8 7.3-4.5l49.4-37c6.6-5 15.7-5 22.3 0c10.2 7.7 9.9 23.1-.7 30.3L90.4 350C73.9 361.3 64 380 64 400l320 0 28.9-159c2.1-11.3 3.1-22.8 3.1-34.3l0-14.7C416 86 330 0 224 0L83.8 0C72.9 0 64 8.9 64 19.8c0 7.5 4.2 14.3 10.9 17.7L96 48zm24 68a20 20 0 1 1 40 0 20 20 0 1 1 -40 0zM22.6 473.4c-4.2 4.2-6.6 10-6.6 16C16 501.9 26.1 512 38.6 512l370.7 0c12.5 0 22.6-10.1 22.6-22.6c0-6-2.4-11.8-6.6-16L384 432 64 432 22.6 473.4z\"]\n};\nconst faFaceLaughSquint = {\n prefix: 'fas',\n iconName: 'face-laugh-squint',\n icon: [512, 512, [\"laugh-squint\"], \"f59b\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM96.8 314.1c-3.8-13.7 7.4-26.1 21.6-26.1l275.2 0c14.2 0 25.5 12.4 21.6 26.1C396.2 382 332.1 432 256 432s-140.2-50-159.2-117.9zm36.7-199.4l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 125.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z\"]\n};\nconst faLaughSquint = faFaceLaughSquint;\nconst faWheelchair = {\n prefix: 'fas',\n iconName: 'wheelchair',\n icon: [512, 512, [], \"f193\", \"M192 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM120.5 247.2c12.4-4.7 18.7-18.5 14-30.9s-18.5-18.7-30.9-14C43.1 225.1 0 283.5 0 352c0 88.4 71.6 160 160 160c61.2 0 114.3-34.3 141.2-84.7c6.2-11.7 1.8-26.2-9.9-32.5s-26.2-1.8-32.5 9.9C240 440 202.8 464 160 464C98.1 464 48 413.9 48 352c0-47.9 30.1-88.8 72.5-104.8zM259.8 176l-1.9-9.7c-4.5-22.3-24-38.3-46.8-38.3c-30.1 0-52.7 27.5-46.8 57l23.1 115.5c6 29.9 32.2 51.4 62.8 51.4l5.1 0c.4 0 .8 0 1.3 0l94.1 0c6.7 0 12.6 4.1 15 10.4L402 459.2c6 16.1 23.8 24.6 40.1 19.1l48-16c16.8-5.6 25.8-23.7 20.2-40.5s-23.7-25.8-40.5-20.2l-18.7 6.2-25.5-68c-11.7-31.2-41.6-51.9-74.9-51.9l-68.5 0-9.6-48 63.4 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-76.2 0z\"]\n};\nconst faCircleArrowUp = {\n prefix: 'fas',\n iconName: 'circle-arrow-up',\n icon: [512, 512, [\"arrow-circle-up\"], \"f0aa\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM385 215c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-71-71L280 392c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-214.1-71 71c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L239 103c9.4-9.4 24.6-9.4 33.9 0L385 215z\"]\n};\nconst faArrowCircleUp = faCircleArrowUp;\nconst faToggleOn = {\n prefix: 'fas',\n iconName: 'toggle-on',\n icon: [576, 512, [], \"f205\", \"M192 64C86 64 0 150 0 256S86 448 192 448l192 0c106 0 192-86 192-192s-86-192-192-192L192 64zm192 96a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"]\n};\nconst faPersonWalking = {\n prefix: 'fas',\n iconName: 'person-walking',\n icon: [320, 512, [128694, \"walking\"], \"f554\", \"M160 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM126.5 199.3c-1 .4-1.9 .8-2.9 1.2l-8 3.5c-16.4 7.3-29 21.2-34.7 38.2l-2.6 7.8c-5.6 16.8-23.7 25.8-40.5 20.2s-25.8-23.7-20.2-40.5l2.6-7.8c11.4-34.1 36.6-61.9 69.4-76.5l8-3.5c20.8-9.2 43.3-14 66.1-14c44.6 0 84.8 26.8 101.9 67.9L281 232.7l21.4 10.7c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3L247 287.3c-10.3-5.2-18.4-13.8-22.8-24.5l-9.6-23-19.3 65.5 49.5 54c5.4 5.9 9.2 13 11.2 20.8l23 92.1c4.3 17.1-6.1 34.5-23.3 38.8s-34.5-6.1-38.8-23.3l-22-88.1-70.7-77.1c-14.8-16.1-20.3-38.6-14.7-59.7l16.9-63.5zM68.7 398l25-62.4c2.1 3 4.5 5.8 7 8.6l40.7 44.4-14.5 36.2c-2.4 6-6 11.5-10.6 16.1L54.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L68.7 398z\"]\n};\nconst faWalking = faPersonWalking;\nconst faL = {\n prefix: 'fas',\n iconName: 'l',\n icon: [320, 512, [108], \"4c\", \"M64 32c17.7 0 32 14.3 32 32l0 352 192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 480c-17.7 0-32-14.3-32-32L32 64c0-17.7 14.3-32 32-32z\"]\n};\nconst faFire = {\n prefix: 'fas',\n iconName: 'fire',\n icon: [448, 512, [128293], \"f06d\", \"M159.3 5.4c7.8-7.3 19.9-7.2 27.7 .1c27.6 25.9 53.5 53.8 77.7 84c11-14.4 23.5-30.1 37-42.9c7.9-7.4 20.1-7.4 28 .1c34.6 33 63.9 76.6 84.5 118c20.3 40.8 33.8 82.5 33.8 111.9C448 404.2 348.2 512 224 512C98.4 512 0 404.1 0 276.5c0-38.4 17.8-85.3 45.4-131.7C73.3 97.7 112.7 48.6 159.3 5.4zM225.7 416c25.3 0 47.7-7 68.8-21c42.1-29.4 53.4-88.2 28.1-134.4c-4.5-9-16-9.6-22.5-2l-25.2 29.3c-6.6 7.6-18.5 7.4-24.7-.5c-16.5-21-46-58.5-62.8-79.8c-6.3-8-18.3-8.1-24.7-.1c-33.8 42.5-50.8 69.3-50.8 99.4C112 375.4 162.6 416 225.7 416z\"]\n};\nconst faBedPulse = {\n prefix: 'fas',\n iconName: 'bed-pulse',\n icon: [640, 512, [\"procedures\"], \"f487\", \"M483.2 9.6L524 64l92 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-104 0c-7.6 0-14.7-3.6-19.2-9.6L468.7 70.3l-47 99.9c-3.7 7.8-11.3 13.1-19.9 13.7s-16.9-3.4-21.7-10.6L339.2 112 216 112c-13.3 0-24-10.7-24-24s10.7-24 24-24l136 0c8 0 15.5 4 20 10.7l24.4 36.6 45.9-97.5C445.9 6.2 453.2 1 461.6 .1s16.6 2.7 21.6 9.5zM320 160l12.7 0 20.7 31.1c11.2 16.8 30.6 26.3 50.7 24.8s37.9-13.7 46.5-32L461.9 160l82.1 0c53 0 96 43 96 96l0 224c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-224 0-32 0L64 448l0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 96C0 78.3 14.3 64 32 64s32 14.3 32 32l0 256 224 0 0-160c0-17.7 14.3-32 32-32zm-144 0a80 80 0 1 1 0 160 80 80 0 1 1 0-160z\"]\n};\nconst faProcedures = faBedPulse;\nconst faShuttleSpace = {\n prefix: 'fas',\n iconName: 'shuttle-space',\n icon: [640, 512, [\"space-shuttle\"], \"f197\", \"M130 480c40.6 0 80.4-11 115.2-31.9L352 384l-224 0 0 96 2 0zM352 128L245.2 63.9C210.4 43 170.6 32 130 32l-2 0 0 96 224 0zM96 128l0-96L80 32C53.5 32 32 53.5 32 80l0 48 8 0c-22.1 0-40 17.9-40 40l0 16L0 328l0 16c0 22.1 17.9 40 40 40l-8 0 0 48c0 26.5 21.5 48 48 48l16 0 0-96 8 0c26.2 0 49.4-12.6 64-32l288 0c69.3 0 135-22.7 179.2-81.6c6.4-8.5 6.4-20.3 0-28.8C591 182.7 525.3 160 456 160l-288 0c-14.6-19.4-37.8-32-64-32l-8 0zM512 243.6l0 24.9c0 19.6-15.9 35.6-35.6 35.6c-2.5 0-4.4-2-4.4-4.4l0-87.1c0-2.5 2-4.4 4.4-4.4c19.6 0 35.6 15.9 35.6 35.6z\"]\n};\nconst faSpaceShuttle = faShuttleSpace;\nconst faFaceLaugh = {\n prefix: 'fas',\n iconName: 'face-laugh',\n icon: [512, 512, [\"laugh\"], \"f599\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM96.8 314.1c-3.8-13.7 7.4-26.1 21.6-26.1l275.2 0c14.2 0 25.5 12.4 21.6 26.1C396.2 382 332.1 432 256 432s-140.2-50-159.2-117.9zM144.4 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nconst faLaugh = faFaceLaugh;\nconst faFolderOpen = {\n prefix: 'fas',\n iconName: 'folder-open',\n icon: [576, 512, [128194, 128449, 61717], \"f07c\", \"M88.7 223.8L0 375.8 0 96C0 60.7 28.7 32 64 32l117.5 0c17 0 33.3 6.7 45.3 18.7l26.5 26.5c12 12 28.3 18.7 45.3 18.7L416 96c35.3 0 64 28.7 64 64l0 32-336 0c-22.8 0-43.8 12.1-55.3 31.8zm27.6 16.1C122.1 230 132.6 224 144 224l400 0c11.5 0 22 6.1 27.7 16.1s5.7 22.2-.1 32.1l-112 192C453.9 474 443.4 480 432 480L32 480c-11.5 0-22-6.1-27.7-16.1s-5.7-22.2 .1-32.1l112-192z\"]\n};\nconst faHeartCirclePlus = {\n prefix: 'fas',\n iconName: 'heart-circle-plus',\n icon: [576, 512, [], \"e500\", \"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6l0-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1l0 5.8c0 41.5 17.2 81.2 47.6 109.5zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm16-208l0 48 48 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l48 0 0-48c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nconst faCodeFork = {\n prefix: 'fas',\n iconName: 'code-fork',\n icon: [448, 512, [], \"e13b\", \"M80 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm80-24c0 32.8-19.7 61-48 73.3l0 38.7c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-38.7C307.7 141 288 112.8 288 80c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3l0 38.7c0 53-43 96-96 96l-48 0 0 70.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3l0-70.7-48 0c-53 0-96-43-96-96l0-38.7C19.7 141 0 112.8 0 80C0 35.8 35.8 0 80 0s80 35.8 80 80zm208 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48zM248 432a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"]\n};\nconst faCity = {\n prefix: 'fas',\n iconName: 'city',\n icon: [640, 512, [127961], \"f64f\", \"M480 48c0-26.5-21.5-48-48-48L336 0c-26.5 0-48 21.5-48 48l0 48-64 0 0-72c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 72-64 0 0-72c0-13.3-10.7-24-24-24S64 10.7 64 24l0 72L48 96C21.5 96 0 117.5 0 144l0 96L0 464c0 26.5 21.5 48 48 48l256 0 32 0 96 0 160 0c26.5 0 48-21.5 48-48l0-224c0-26.5-21.5-48-48-48l-112 0 0-144zm96 320l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16zM240 416l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16zM128 400c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32zM560 256c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0zM256 176l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16zM112 160c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0zM256 304c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32zM112 320l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16zm304-48l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16zM400 64c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0zm16 112l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16z\"]\n};\nconst faMicrophoneLines = {\n prefix: 'fas',\n iconName: 'microphone-lines',\n icon: [384, 512, [127897, \"microphone-alt\"], \"f3c9\", \"M96 96l0 160c0 53 43 96 96 96s96-43 96-96l-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-32-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-32-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0c0-53-43-96-96-96S96 43 96 96zM320 240l0 16c0 70.7-57.3 128-128 128s-128-57.3-128-128l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c0 89.1 66.2 162.7 152 174.4l0 33.6-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0 72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-33.6c85.8-11.7 152-85.3 152-174.4l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 24z\"]\n};\nconst faMicrophoneAlt = faMicrophoneLines;\nconst faPepperHot = {\n prefix: 'fas',\n iconName: 'pepper-hot',\n icon: [512, 512, [127798], \"f816\", \"M428.3 3c11.6-6.4 26.2-2.3 32.6 9.3l4.8 8.7c19.3 34.7 19.8 75.7 3.4 110C495.8 159.6 512 197.9 512 240c0 18.5-3.1 36.3-8.9 52.8c-6.1 17.3-28.5 16.3-36.8-.1l-11.7-23.4c-4.1-8.1-12.4-13.3-21.5-13.3L360 256c-13.3 0-24-10.7-24-24l0-80c0-13.3-10.7-24-24-24l-17.1 0c-21.3 0-30-23.9-10.8-32.9C304.7 85.4 327.7 80 352 80c28.3 0 54.8 7.3 77.8 20.2c5.5-18.2 3.7-38.4-6-55.8L419 35.7c-6.4-11.6-2.3-26.2 9.3-32.6zM171.2 345.5L264 160l40 0 0 80c0 26.5 21.5 48 48 48l76.2 0 23.9 47.8C372.3 443.9 244.3 512 103.2 512l-58.8 0C19.9 512 0 492.1 0 467.6c0-20.8 14.5-38.8 34.8-43.3l49.8-11.1c37.6-8.4 69.5-33.2 86.7-67.7z\"]\n};\nconst faUnlock = {\n prefix: 'fas',\n iconName: 'unlock',\n icon: [448, 512, [128275], \"f09c\", \"M144 144c0-44.2 35.8-80 80-80c31.9 0 59.4 18.6 72.3 45.7c7.6 16 26.7 22.8 42.6 15.2s22.8-26.7 15.2-42.6C331 33.7 281.5 0 224 0C144.5 0 80 64.5 80 144l0 48-16 0c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64l-240 0 0-48z\"]\n};\nconst faColonSign = {\n prefix: 'fas',\n iconName: 'colon-sign',\n icon: [384, 512, [], \"e140\", \"M255 39.8c4.3-17.1-6.1-34.5-23.3-38.8S197.2 7.1 193 24.2L181.9 68.6C96.1 87.8 32 164.4 32 256c0 58.1 25.8 110.2 66.7 145.4L81 472.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l13-52.1c9 3.4 18.4 6.2 28 8.2L177 472.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l10.4-41.4c33.4-4.4 64.1-17.4 89.8-36.7c14.1-10.6 17-30.7 6.4-44.8s-30.7-17-44.8-6.4c-10.2 7.7-21.7 13.9-34 18.3L321 160c9.4-.3 18.5-4.7 24.6-12.8c10.6-14.1 7.8-34.2-6.4-44.8c-1.1-.8-2.2-1.6-3.3-2.4L351 39.8c4.3-17.1-6.1-34.5-23.3-38.8S293.2 7.1 289 24.2L277.2 71.5c-9.3-2.7-18.8-4.6-28.6-5.9L255 39.8zM163.2 143.3L117.3 326.8C103.9 306.5 96 282.2 96 256c0-48.7 27.2-91 67.2-112.7zm8.6 229.5l61.1-244.6c9.9 .7 19.5 2.5 28.7 5.3l-62 248.1c-9.7-1.9-19-4.8-27.8-8.8z\"]\n};\nconst faHeadset = {\n prefix: 'fas',\n iconName: 'headset',\n icon: [512, 512, [], \"f590\", \"M256 48C141.1 48 48 141.1 48 256l0 40c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-40C0 114.6 114.6 0 256 0S512 114.6 512 256l0 144.1c0 48.6-39.4 88-88.1 88L313.6 488c-8.3 14.3-23.8 24-41.6 24l-32 0c-26.5 0-48-21.5-48-48s21.5-48 48-48l32 0c17.8 0 33.3 9.7 41.6 24l110.4 .1c22.1 0 40-17.9 40-40L464 256c0-114.9-93.1-208-208-208zM144 208l16 0c17.7 0 32 14.3 32 32l0 112c0 17.7-14.3 32-32 32l-16 0c-35.3 0-64-28.7-64-64l0-48c0-35.3 28.7-64 64-64zm224 0c35.3 0 64 28.7 64 64l0 48c0 35.3-28.7 64-64 64l-16 0c-17.7 0-32-14.3-32-32l0-112c0-17.7 14.3-32 32-32l16 0z\"]\n};\nconst faStoreSlash = {\n prefix: 'fas',\n iconName: 'store-slash',\n icon: [640, 512, [], \"e071\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-86.8-68 0-17.1 0-131.4c-4 1-8 1.8-12.3 2.3c0 0 0 0-.1 0c-5.3 .7-10.7 1.1-16.2 1.1c-12.4 0-24.3-1.9-35.4-5.3l0 100.3L301.2 210.7c7-4.4 13.3-9.7 18.8-15.7c15.9 17.6 39.1 29 65.2 29c26.2 0 49.3-11.4 65.2-29c16 17.6 39.1 29 65.2 29c4.1 0 8.1-.3 12.1-.8c55.5-7.4 81.8-72.5 52.1-119.4L522.3 13.1C517.2 5 508.1 0 498.4 0L141.6 0c-9.7 0-18.8 5-23.9 13.1l-22.7 36L38.8 5.1zm73.4 218.1c4 .5 8.1 .8 12.1 .8c11 0 21.4-2 31-5.6L48.9 134.5c-6.1 40.6 19.5 82.8 63.3 88.7zM160 384l0-133.4c-11.2 3.5-23.2 5.4-35.6 5.4c-5.5 0-11-.4-16.3-1.1l-.1 0c-4.1-.6-8.1-1.3-12-2.3L96 384l0 64c0 35.3 28.7 64 64 64l320 0c12.9 0 24.8-3.8 34.9-10.3L365.5 384 160 384z\"]\n};\nconst faRoadCircleXmark = {\n prefix: 'fas',\n iconName: 'road-circle-xmark',\n icon: [640, 512, [], \"e566\", \"M213.2 32L288 32l0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 74.8 0c27.1 0 51.3 17.1 60.3 42.6l42.7 120.6c-10.9-2.1-22.2-3.2-33.8-3.2c-59.5 0-112.1 29.6-144 74.8l0-42.8c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32c2.3 0 4.6-.3 6.8-.7c-4.5 15.5-6.8 31.8-6.8 48.7c0 5.4 .2 10.7 .7 16l-.7 0c-17.7 0-32 14.3-32 32l0 64L86.6 480C56.5 480 32 455.5 32 425.4c0-6.2 1.1-12.4 3.1-18.2L152.9 74.6C162 49.1 186.1 32 213.2 32zM496 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm22.6 144l36.7-36.7c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L496 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L473.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L496 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L518.6 368z\"]\n};\nconst faUserMinus = {\n prefix: 'fas',\n iconName: 'user-minus',\n icon: [640, 512, [], \"f503\", \"M96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM0 482.3C0 383.8 79.8 304 178.3 304l91.4 0C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7L29.7 512C13.3 512 0 498.7 0 482.3zM472 200l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nconst faMarsStrokeUp = {\n prefix: 'fas',\n iconName: 'mars-stroke-up',\n icon: [320, 512, [9896, \"mars-stroke-v\"], \"f22a\", \"M148.7 4.7c6.2-6.2 16.4-6.2 22.6 0l64 64c4.6 4.6 5.9 11.5 3.5 17.4s-8.3 9.9-14.8 9.9l-40 0 0 24 32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0 0 24c0 .6 0 1.2-.1 1.8c77 11.6 136.1 78 136.1 158.2c0 88.4-71.6 160-160 160S0 440.4 0 352c0-80.2 59.1-146.7 136.1-158.2c0-.6-.1-1.2-.1-1.8l0-24-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l32 0 0-24L96 96c-6.5 0-12.3-3.9-14.8-9.9s-1.1-12.9 3.5-17.4l64-64zM256 352A96 96 0 1 0 64 352a96 96 0 1 0 192 0z\"]\n};\nconst faMarsStrokeV = faMarsStrokeUp;\nconst faChampagneGlasses = {\n prefix: 'fas',\n iconName: 'champagne-glasses',\n icon: [640, 512, [129346, \"glass-cheers\"], \"f79f\", \"M155.6 17.3C163 3 179.9-3.6 195 1.9L320 47.5l125-45.6c15.1-5.5 32 1.1 39.4 15.4l78.8 152.9c28.8 55.8 10.3 122.3-38.5 156.6L556.1 413l41-15c16.6-6 35 2.5 41 19.1s-2.5 35-19.1 41l-71.1 25.9L476.8 510c-16.6 6.1-35-2.5-41-19.1s2.5-35 19.1-41l41-15-31.3-86.2c-59.4 5.2-116.2-34-130-95.2L320 188.8l-14.6 64.7c-13.8 61.3-70.6 100.4-130 95.2l-31.3 86.2 41 15c16.6 6 25.2 24.4 19.1 41s-24.4 25.2-41 19.1L92.2 484.1 21.1 458.2c-16.6-6.1-25.2-24.4-19.1-41s24.4-25.2 41-19.1l41 15 31.3-86.2C66.5 292.5 48.1 226 76.9 170.2L155.6 17.3zm44 54.4l-27.2 52.8L261.6 157l13.1-57.9L199.6 71.7zm240.9 0L365.4 99.1 378.5 157l89.2-32.5L440.5 71.7z\"]\n};\nconst faGlassCheers = faChampagneGlasses;\nconst faClipboard = {\n prefix: 'fas',\n iconName: 'clipboard',\n icon: [384, 512, [128203], \"f328\", \"M192 0c-41.8 0-77.4 26.7-90.5 64L64 64C28.7 64 0 92.7 0 128L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64l-37.5 0C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM112 192l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nconst faHouseCircleExclamation = {\n prefix: 'fas',\n iconName: 'house-circle-exclamation',\n icon: [640, 512, [], \"e50a\", \"M320.7 352c8.1-89.7 83.5-160 175.3-160c8.9 0 17.6 .7 26.1 1.9L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1l32 0 0 69.7c-.1 .9-.1 1.8-.1 2.8l0 112c0 22.1 17.9 40 40 40l16 0c1.2 0 2.4-.1 3.6-.2c1.5 .1 3 .2 4.5 .2l31.9 0 24 0c22.1 0 40-17.9 40-40l0-24 0-64c0-17.7 14.3-32 32-32l64 0 .7 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"]\n};\nconst faFileArrowUp = {\n prefix: 'fas',\n iconName: 'file-arrow-up',\n icon: [384, 512, [\"file-upload\"], \"f574\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM216 408c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-102.1-31 31c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l72-72c9.4-9.4 24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-31-31L216 408z\"]\n};\nconst faFileUpload = faFileArrowUp;\nconst faWifi = {\n prefix: 'fas',\n iconName: 'wifi',\n icon: [640, 512, [\"wifi-3\", \"wifi-strong\"], \"f1eb\", \"M54.2 202.9C123.2 136.7 216.8 96 320 96s196.8 40.7 265.8 106.9c12.8 12.2 33 11.8 45.2-.9s11.8-33-.9-45.2C549.7 79.5 440.4 32 320 32S90.3 79.5 9.8 156.7C-2.9 169-3.3 189.2 8.9 202s32.5 13.2 45.2 .9zM320 256c56.8 0 108.6 21.1 148.2 56c13.3 11.7 33.5 10.4 45.2-2.8s10.4-33.5-2.8-45.2C459.8 219.2 393 192 320 192s-139.8 27.2-190.5 72c-13.3 11.7-14.5 31.9-2.8 45.2s31.9 14.5 45.2 2.8c39.5-34.9 91.3-56 148.2-56zm64 160a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z\"]\n};\nconst faWifi3 = faWifi;\nconst faWifiStrong = faWifi;\nconst faBath = {\n prefix: 'fas',\n iconName: 'bath',\n icon: [512, 512, [128705, \"bathtub\"], \"f2cd\", \"M96 77.3c0-7.3 5.9-13.3 13.3-13.3c3.5 0 6.9 1.4 9.4 3.9l14.9 14.9C130 91.8 128 101.7 128 112c0 19.9 7.2 38 19.2 52c-5.3 9.2-4 21.1 3.8 29c9.4 9.4 24.6 9.4 33.9 0L289 89c9.4-9.4 9.4-24.6 0-33.9c-7.9-7.9-19.8-9.1-29-3.8C246 39.2 227.9 32 208 32c-10.3 0-20.2 2-29.2 5.5L163.9 22.6C149.4 8.1 129.7 0 109.3 0C66.6 0 32 34.6 32 77.3L32 256c-17.7 0-32 14.3-32 32s14.3 32 32 32l448 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 256 96 77.3zM32 352l0 16c0 28.4 12.4 54 32 71.6L64 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-16 256 0 0 16c0 17.7 14.3 32 32 32s32-14.3 32-32l0-40.4c19.6-17.6 32-43.1 32-71.6l0-16L32 352z\"]\n};\nconst faBathtub = faBath;\nconst faUnderline = {\n prefix: 'fas',\n iconName: 'underline',\n icon: [448, 512, [], \"f0cd\", \"M16 64c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 128c0 53 43 96 96 96s96-43 96-96l0-128-16 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 128c0 88.4-71.6 160-160 160s-160-71.6-160-160L64 96 48 96C30.3 96 16 81.7 16 64zM0 448c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32z\"]\n};\nconst faUserPen = {\n prefix: 'fas',\n iconName: 'user-pen',\n icon: [640, 512, [\"user-edit\"], \"f4ff\", \"M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512l293.1 0c-3.1-8.8-3.7-18.4-1.4-27.8l15-60.1c2.8-11.3 8.6-21.5 16.8-29.7l40.3-40.3c-32.1-31-75.7-50.1-123.9-50.1l-91.4 0zm435.5-68.3c-15.6-15.6-40.9-15.6-56.6 0l-29.4 29.4 71 71 29.4-29.4c15.6-15.6 15.6-40.9 0-56.6l-14.4-14.4zM375.9 417c-4.1 4.1-7 9.2-8.4 14.9l-15 60.1c-1.4 5.5 .2 11.2 4.2 15.2s9.7 5.6 15.2 4.2l60.1-15c5.6-1.4 10.8-4.3 14.9-8.4L576.1 358.7l-71-71L375.9 417z\"]\n};\nconst faUserEdit = faUserPen;\nconst faSignature = {\n prefix: 'fas',\n iconName: 'signature',\n icon: [640, 512, [], \"f5b7\", \"M192 128c0-17.7 14.3-32 32-32s32 14.3 32 32l0 7.8c0 27.7-2.4 55.3-7.1 82.5l-84.4 25.3c-40.6 12.2-68.4 49.6-68.4 92l0 71.9c0 40 32.5 72.5 72.5 72.5c26 0 50-13.9 62.9-36.5l13.9-24.3c26.8-47 46.5-97.7 58.4-150.5l94.4-28.3-12.5 37.5c-3.3 9.8-1.6 20.5 4.4 28.8s15.7 13.3 26 13.3l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-83.6 0 18-53.9c3.8-11.3 .9-23.8-7.4-32.4s-20.7-11.8-32.2-8.4L316.4 198.1c2.4-20.7 3.6-41.4 3.6-62.3l0-7.8c0-53-43-96-96-96s-96 43-96 96l0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32zm-9.2 177l49-14.7c-10.4 33.8-24.5 66.4-42.1 97.2l-13.9 24.3c-1.5 2.6-4.3 4.3-7.4 4.3c-4.7 0-8.5-3.8-8.5-8.5l0-71.9c0-14.1 9.3-26.6 22.8-30.7zM24 368c-13.3 0-24 10.7-24 24s10.7 24 24 24l40.3 0c-.2-2.8-.3-5.6-.3-8.5L64 368l-40 0zm592 48c13.3 0 24-10.7 24-24s-10.7-24-24-24l-310.1 0c-6.7 16.3-14.2 32.3-22.3 48L616 416z\"]\n};\nconst faStroopwafel = {\n prefix: 'fas',\n iconName: 'stroopwafel',\n icon: [512, 512, [], \"f551\", \"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM312.6 63.7c-6.2-6.2-16.4-6.2-22.6 0L256 97.6 222.1 63.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l33.9 33.9-45.3 45.3-56.6-56.6c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l56.6 56.6-45.3 45.3L86.3 199.4c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L97.6 256 63.7 289.9c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l33.9-33.9 45.3 45.3-56.6 56.6c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l56.6-56.6 45.3 45.3-33.9 33.9c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L256 414.4l33.9 33.9c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-33.9-33.9 45.3-45.3 56.6 56.6c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-56.6-56.6 45.3-45.3 33.9 33.9c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L414.4 256l33.9-33.9c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0l-33.9 33.9-45.3-45.3 56.6-56.6c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0l-56.6 56.6-45.3-45.3 33.9-33.9c6.2-6.2 6.2-16.4 0-22.6zM142.9 256l45.3-45.3L233.4 256l-45.3 45.3L142.9 256zm67.9 67.9L256 278.6l45.3 45.3L256 369.1l-45.3-45.3zM278.6 256l45.3-45.3L369.1 256l-45.3 45.3L278.6 256zm22.6-67.9L256 233.4l-45.3-45.3L256 142.9l45.3 45.3z\"]\n};\nconst faBold = {\n prefix: 'fas',\n iconName: 'bold',\n icon: [384, 512, [], \"f032\", \"M0 64C0 46.3 14.3 32 32 32l48 0 16 0 128 0c70.7 0 128 57.3 128 128c0 31.3-11.3 60.1-30 82.3c37.1 22.4 62 63.1 62 109.7c0 70.7-57.3 128-128 128L96 480l-16 0-48 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-160L48 96 32 96C14.3 96 0 81.7 0 64zM224 224c35.3 0 64-28.7 64-64s-28.7-64-64-64L112 96l0 128 112 0zM112 288l0 128 144 0c35.3 0 64-28.7 64-64s-28.7-64-64-64l-32 0-112 0z\"]\n};\nconst faAnchorLock = {\n prefix: 'fas',\n iconName: 'anchor-lock',\n icon: [640, 512, [], \"e4ad\", \"M320 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm21.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80L224 176c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 208-48 0c-53 0-96-43-96-96l0-6.1 7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7 0 6.1c0 88.4 71.6 160 160 160l80 0 80 0c8 0 15.9-.6 23.6-1.7c-4.8-9-7.6-19.3-7.6-30.3l0-33.3c-5.2 .9-10.5 1.3-16 1.3l-48 0 0-208 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-10.9 0zM528 240c17.7 0 32 14.3 32 32l0 48-64 0 0-48c0-17.7 14.3-32 32-32zm-80 32l0 48c-17.7 0-32 14.3-32 32l0 128c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"]\n};\nconst faBuildingNgo = {\n prefix: 'fas',\n iconName: 'building-ngo',\n icon: [384, 512, [], \"e4d7\", \"M48 0C21.5 0 0 21.5 0 48L0 464c0 26.5 21.5 48 48 48l96 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 96 0c26.5 0 48-21.5 48-48l0-416c0-26.5-21.5-48-48-48L48 0zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm112-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM168 64l48 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0 0 64 16 0 0-16c0-8.8 7.2-16 16-16s16 7.2 16 16l0 24c0 13.3-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24l0-88c0-8.8 7.2-16 16-16zM304 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16s16-7.2 16-16l0-32c0-8.8-7.2-16-16-16zm-48 16c0-26.5 21.5-48 48-48s48 21.5 48 48l0 32c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-32zM61.3 71.1l34.7 52L96 80c0-8.8 7.2-16 16-16s16 7.2 16 16l0 96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4L64 132.8 64 176c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4z\"]\n};\nconst faManatSign = {\n prefix: 'fas',\n iconName: 'manat-sign',\n icon: [384, 512, [], \"e1d5\", \"M192 32c-17.7 0-32 14.3-32 32l0 34.7C69.2 113.9 0 192.9 0 288L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-59.6 40.8-109.8 96-124l0 284c0 17.7 14.3 32 32 32s32-14.3 32-32l0-284c55.2 14.2 96 64.3 96 124l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-95.1-69.2-174.1-160-189.3L224 64c0-17.7-14.3-32-32-32z\"]\n};\nconst faNotEqual = {\n prefix: 'fas',\n iconName: 'not-equal',\n icon: [448, 512, [], \"f53e\", \"M369.8 37.4c14.7 9.8 18.7 29.7 8.9 44.4L337.1 144l62.9 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-105.5 0-64 96L400 304c17.7 0 32 14.3 32 32s-14.3 32-32 32l-212.2 0-65.2 97.7c-9.8 14.7-29.7 18.7-44.4 8.9s-18.7-29.7-8.9-44.4L110.9 368 48 368c-17.7 0-32-14.3-32-32s14.3-32 32-32l105.5 0 64-96L48 208c-17.7 0-32-14.3-32-32s14.3-32 32-32l212.2 0 65.2-97.7c9.8-14.7 29.7-18.7 44.4-8.9z\"]\n};\nconst faBorderTopLeft = {\n prefix: 'fas',\n iconName: 'border-top-left',\n icon: [448, 512, [\"border-style\"], \"f853\", \"M0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-336c0-8.8 7.2-16 16-16l336 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 32C35.8 32 0 67.8 0 112L0 448zm160 0a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm192 0a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm-96 0a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm192 0a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM416 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm0 32a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm0-128a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nconst faBorderStyle = faBorderTopLeft;\nconst faMapLocationDot = {\n prefix: 'fas',\n iconName: 'map-location-dot',\n icon: [576, 512, [\"map-marked-alt\"], \"f5a0\", \"M408 120c0 54.6-73.1 151.9-105.2 192c-7.7 9.6-22 9.6-29.6 0C241.1 271.9 168 174.6 168 120C168 53.7 221.7 0 288 0s120 53.7 120 120zm8 80.4c3.5-6.9 6.7-13.8 9.6-20.6c.5-1.2 1-2.5 1.5-3.7l116-46.4C558.9 123.4 576 135 576 152l0 270.8c0 9.8-6 18.6-15.1 22.3L416 503l0-302.6zM137.6 138.3c2.4 14.1 7.2 28.3 12.8 41.5c2.9 6.8 6.1 13.7 9.6 20.6l0 251.4L32.9 502.7C17.1 509 0 497.4 0 480.4L0 209.6c0-9.8 6-18.6 15.1-22.3l122.6-49zM327.8 332c13.9-17.4 35.7-45.7 56.2-77l0 249.3L192 449.4 192 255c20.5 31.3 42.3 59.6 56.2 77c20.5 25.6 59.1 25.6 79.6 0zM288 152a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"]\n};\nconst faMapMarkedAlt = faMapLocationDot;\nconst faJedi = {\n prefix: 'fas',\n iconName: 'jedi',\n icon: [576, 512, [], \"f669\", \"M246 315.7l-21.2-31.9c-2.1-3.2-1.7-7.4 1-10.1s6.9-3.1 10.1-1l29.5 19.7c2.1 1.4 4.9 0 5-2.6L279.7 8c.1-4.5 3.8-8 8.3-8s8.1 3.5 8.3 8l9.4 281.9c.1 2.5 2.9 3.9 5 2.6l29.5-19.7c3.2-2.1 7.4-1.7 10.1 1s3.1 6.9 1 10.1L330 315.7c-1.3 1.9-.2 4.5 2 4.9l37.6 7.5c3.7 .7 6.4 4 6.4 7.8s-2.7 7.1-6.4 7.8L332 351.4c-2.2 .4-3.3 3-2 4.9l21.2 31.9c2.1 3.2 1.7 7.4-1 10.1s-6.9 3.1-10.1 1l-26.3-17.6c-2.2-1.4-5.1 .2-5 2.8l2.1 61.5C370.6 435.2 416 382.9 416 320c0-37-15.7-70.4-40.8-93.7c-7-6.5-6.5-18.6 1-24.4C410.1 175.5 432 134.3 432 88c0-16.8-2.9-33-8.2-48c-4.6-13 10.2-30 21.4-22c53.5 38 92.7 94.8 107.8 160.7c.5 2.1-.2 4.3-1.7 5.9l-28.4 28.4c-4 4-1.2 10.9 4.5 10.9l26 0c3.4 0 6.2 2.6 6.3 6c.1 3.3 .2 6.6 .2 10c0 17.5-1.7 34.7-4.8 51.3c-.2 1.2-.9 2.4-1.7 3.3l-46.5 46.5c-4 4-1.2 10.9 4.5 10.9l14.6 0c4.6 0 7.7 4.8 5.7 9C487.2 450.5 394.8 512 288 512S88.8 450.5 44.3 361c-2.1-4.2 1-9 5.7-9l14.6 0c5.7 0 8.6-6.9 4.5-10.9L22.6 294.6c-.9-.9-1.5-2-1.7-3.3C17.7 274.7 16 257.5 16 240c0-3.3 .1-6.7 .2-10c.1-3.4 2.9-6 6.3-6l26 0c5.7 0 8.6-6.9 4.5-10.9L24.6 184.6c-1.5-1.5-2.2-3.8-1.7-5.9C38.1 112.8 77.3 56 130.8 18c11.3-8 26 8.9 21.4 22c-5.3 15-8.2 31.2-8.2 48c0 46.3 21.9 87.5 55.8 113.9c7.5 5.8 8 17.9 1 24.4C175.7 249.6 160 283 160 320c0 62.9 45.4 115.2 105.1 126l2.1-61.5c.1-2.6-2.8-4.2-5-2.8l-26.3 17.6c-3.2 2.1-7.4 1.7-10.1-1s-3.1-6.9-1-10.1L246 356.3c1.3-1.9 .2-4.5-2-4.9l-37.6-7.5c-3.7-.7-6.4-4-6.4-7.8s2.7-7.1 6.4-7.8l37.6-7.5c2.2-.4 3.3-3 2-4.9z\"]\n};\nconst faSquarePollVertical = {\n prefix: 'fas',\n iconName: 'square-poll-vertical',\n icon: [448, 512, [\"poll\"], \"f681\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm64 192c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32zm64-64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 192c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-192zM320 288c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32c0-17.7 14.3-32 32-32z\"]\n};\nconst faPoll = faSquarePollVertical;\nconst faMugHot = {\n prefix: 'fas',\n iconName: 'mug-hot',\n icon: [512, 512, [9749], \"f7b6\", \"M88 0C74.7 0 64 10.7 64 24c0 38.9 23.4 59.4 39.1 73.1l1.1 1C120.5 112.3 128 119.9 128 136c0 13.3 10.7 24 24 24s24-10.7 24-24c0-38.9-23.4-59.4-39.1-73.1l-1.1-1C119.5 47.7 112 40.1 112 24c0-13.3-10.7-24-24-24zM32 192c-17.7 0-32 14.3-32 32L0 416c0 53 43 96 96 96l192 0c53 0 96-43 96-96l16 0c61.9 0 112-50.1 112-112s-50.1-112-112-112l-48 0L32 192zm352 64l16 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-16 0 0-96zM224 24c0-13.3-10.7-24-24-24s-24 10.7-24 24c0 38.9 23.4 59.4 39.1 73.1l1.1 1C232.5 112.3 240 119.9 240 136c0 13.3 10.7 24 24 24s24-10.7 24-24c0-38.9-23.4-59.4-39.1-73.1l-1.1-1C231.5 47.7 224 40.1 224 24z\"]\n};\nconst faCarBattery = {\n prefix: 'fas',\n iconName: 'car-battery',\n icon: [512, 512, [\"battery-car\"], \"f5df\", \"M80 96c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l96 0c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l16 0c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 160c0-35.3 28.7-64 64-64l16 0zm304 96c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 32-32 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l32 0 0 32c0 8.8 7.2 16 16 16s16-7.2 16-16l0-32 32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0 0-32zM80 240c0 8.8 7.2 16 16 16l96 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-96 0c-8.8 0-16 7.2-16 16z\"]\n};\nconst faBatteryCar = faCarBattery;\nconst faGift = {\n prefix: 'fas',\n iconName: 'gift',\n icon: [512, 512, [127873], \"f06b\", \"M190.5 68.8L225.3 128l-1.3 0-72 0c-22.1 0-40-17.9-40-40s17.9-40 40-40l2.2 0c14.9 0 28.8 7.9 36.3 20.8zM64 88c0 14.4 3.5 28 9.6 40L32 128c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l448 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-41.6 0c6.1-12 9.6-25.6 9.6-40c0-48.6-39.4-88-88-88l-2.2 0c-31.9 0-61.5 16.9-77.7 44.4L256 85.5l-24.1-41C215.7 16.9 186.1 0 154.2 0L152 0C103.4 0 64 39.4 64 88zm336 0c0 22.1-17.9 40-40 40l-72 0-1.3 0 34.8-59.2C329.1 55.9 342.9 48 357.8 48l2.2 0c22.1 0 40 17.9 40 40zM32 288l0 176c0 26.5 21.5 48 48 48l144 0 0-224L32 288zM288 512l144 0c26.5 0 48-21.5 48-48l0-176-192 0 0 224z\"]\n};\nconst faDiceTwo = {\n prefix: 'fas',\n iconName: 'dice-two',\n icon: [448, 512, [9857], \"f528\", \"M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM352 352a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM128 192a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nconst faChessQueen = {\n prefix: 'fas',\n iconName: 'chess-queen',\n icon: [512, 512, [9819], \"f445\", \"M256 0a56 56 0 1 1 0 112A56 56 0 1 1 256 0zM134.1 143.8c3.3-13 15-23.8 30.2-23.8c12.3 0 22.6 7.2 27.7 17c12 23.2 36.2 39 64 39s52-15.8 64-39c5.1-9.8 15.4-17 27.7-17c15.3 0 27 10.8 30.2 23.8c7 27.8 32.2 48.3 62.1 48.3c10.8 0 21-2.7 29.8-7.4c8.4-4.4 18.9-4.5 27.6 .9c13 8 17.1 25 9.2 38L399.7 400 384 400l-40.4 0-175.1 0L128 400l-15.7 0L5.4 223.6c-7.9-13-3.8-30 9.2-38c8.7-5.3 19.2-5.3 27.6-.9c8.9 4.7 19 7.4 29.8 7.4c29.9 0 55.1-20.5 62.1-48.3zM256 224s0 0 0 0s0 0 0 0s0 0 0 0zM112 432l288 0 41.4 41.4c4.2 4.2 6.6 10 6.6 16c0 12.5-10.1 22.6-22.6 22.6L86.6 512C74.1 512 64 501.9 64 489.4c0-6 2.4-11.8 6.6-16L112 432z\"]\n};\nconst faGlasses = {\n prefix: 'fas',\n iconName: 'glasses',\n icon: [576, 512, [], \"f530\", \"M118.6 80c-11.5 0-21.4 7.9-24 19.1L57 260.3c20.5-6.2 48.3-12.3 78.7-12.3c32.3 0 61.8 6.9 82.8 13.5c10.6 3.3 19.3 6.7 25.4 9.2c3.1 1.3 5.5 2.4 7.3 3.2c.9 .4 1.6 .7 2.1 1l.6 .3 .2 .1c0 0 .1 0 .1 0c0 0 0 0 0 0s0 0 0 0L247.9 288s0 0 0 0l6.3-12.7c5.8 2.9 10.4 7.3 13.5 12.7l40.6 0c3.1-5.3 7.7-9.8 13.5-12.7l6.3 12.7s0 0 0 0c-6.3-12.7-6.3-12.7-6.3-12.7s0 0 0 0s0 0 0 0c0 0 .1 0 .1 0l.2-.1 .6-.3c.5-.2 1.2-.6 2.1-1c1.8-.8 4.2-1.9 7.3-3.2c6.1-2.6 14.8-5.9 25.4-9.2c21-6.6 50.4-13.5 82.8-13.5c30.4 0 58.2 6.1 78.7 12.3L481.4 99.1c-2.6-11.2-12.6-19.1-24-19.1c-3.1 0-6.2 .6-9.2 1.8L416.9 94.3c-12.3 4.9-26.3-1.1-31.2-13.4s1.1-26.3 13.4-31.2l31.3-12.5c8.6-3.4 17.7-5.2 27-5.2c33.8 0 63.1 23.3 70.8 56.2l43.9 188c1.7 7.3 2.9 14.7 3.5 22.1c.3 1.9 .5 3.8 .5 5.7l0 6.7 0 41.3 0 16c0 61.9-50.1 112-112 112l-44.3 0c-59.4 0-108.5-46.4-111.8-105.8L306.6 352l-37.2 0-1.2 22.2C264.9 433.6 215.8 480 156.3 480L112 480C50.1 480 0 429.9 0 368l0-16 0-41.3L0 304c0-1.9 .2-3.8 .5-5.7c.6-7.4 1.8-14.8 3.5-22.1l43.9-188C55.5 55.3 84.8 32 118.6 32c9.2 0 18.4 1.8 27 5.2l31.3 12.5c12.3 4.9 18.3 18.9 13.4 31.2s-18.9 18.3-31.2 13.4L127.8 81.8c-2.9-1.2-6-1.8-9.2-1.8zM64 325.4L64 368c0 26.5 21.5 48 48 48l44.3 0c25.5 0 46.5-19.9 47.9-45.3l2.5-45.6c-2.3-.8-4.9-1.7-7.5-2.5c-17.2-5.4-39.9-10.5-63.6-10.5c-23.7 0-46.2 5.1-63.2 10.5c-3.1 1-5.9 1.9-8.5 2.9zM512 368l0-42.6c-2.6-.9-5.5-1.9-8.5-2.9c-17-5.4-39.5-10.5-63.2-10.5c-23.7 0-46.4 5.1-63.6 10.5c-2.7 .8-5.2 1.7-7.5 2.5l2.5 45.6c1.4 25.4 22.5 45.3 47.9 45.3l44.3 0c26.5 0 48-21.5 48-48z\"]\n};\nconst faChessBoard = {\n prefix: 'fas',\n iconName: 'chess-board',\n icon: [448, 512, [], \"f43c\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm64 64l0 64 64 0 0-64 64 0 0 64 64 0 0-64 64 0 0 64-64 0 0 64 64 0 0 64-64 0 0 64 64 0 0 64-64 0 0-64-64 0 0 64-64 0 0-64-64 0 0 64-64 0 0-64 64 0 0-64-64 0 0-64 64 0 0-64-64 0 0-64 64 0zm64 128l64 0 0-64-64 0 0 64zm0 64l0-64-64 0 0 64 64 0zm64 0l-64 0 0 64 64 0 0-64zm0 0l64 0 0-64-64 0 0 64z\"]\n};\nconst faBuildingCircleCheck = {\n prefix: 'fas',\n iconName: 'building-circle-check',\n icon: [640, 512, [], \"e4d2\", \"M48 0C21.5 0 0 21.5 0 48L0 464c0 26.5 21.5 48 48 48l96 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 96 0c15.1 0 28.5-6.9 37.3-17.8C340.4 462.2 320 417.5 320 368c0-54.7 24.9-103.5 64-135.8L384 48c0-26.5-21.5-48-48-48L48 0zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm112-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM80 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"]\n};\nconst faPersonChalkboard = {\n prefix: 'fas',\n iconName: 'person-chalkboard',\n icon: [640, 512, [], \"e53d\", \"M192 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-8 384l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-288 56 0 64 0 16 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-16 0 0-64 192 0 0 192-192 0 0-32-64 0 0 48c0 26.5 21.5 48 48 48l224 0c26.5 0 48-21.5 48-48l0-224c0-26.5-21.5-48-48-48L368 0c-26.5 0-48 21.5-48 48l0 80-76.9 0-65.9 0c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L120 256.9 120 480c0 17.7 14.3 32 32 32s32-14.3 32-32z\"]\n};\nconst faMarsStrokeRight = {\n prefix: 'fas',\n iconName: 'mars-stroke-right',\n icon: [640, 512, [9897, \"mars-stroke-h\"], \"f22b\", \"M208 368a112 112 0 1 0 0-224 112 112 0 1 0 0 224zm174.4-88C370.7 365.8 297.1 432 208 432c-97.2 0-176-78.8-176-176s78.8-176 176-176c89.1 0 162.7 66.2 174.4 152l33.6 0 0-56c0-13.3 10.7-24 24-24s24 10.7 24 24l0 56 32 0 0-56c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l80 80c9.4 9.4 9.4 24.6 0 33.9l-80 80c-6.9 6.9-17.2 8.9-26.2 5.2s-14.8-12.5-14.8-22.2l0-56-32 0 0 56c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-56-33.6 0z\"]\n};\nconst faMarsStrokeH = faMarsStrokeRight;\nconst faHandBackFist = {\n prefix: 'fas',\n iconName: 'hand-back-fist',\n icon: [448, 512, [\"hand-rock\"], \"f255\", \"M144 0C117.5 0 96 21.5 96 48l0 48 0 28.5L96 176c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-26.7-9 7.5C40.4 169 32 187 32 206L32 244c0 38 16.9 74 46.1 98.3L128 384l0 96c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-105.3c46.9-19 80-65 80-118.7l0-80 0-16 0-16c0-26.5-21.5-48-48-48c-12.4 0-23.6 4.7-32.1 12.3C350 83.5 329.3 64 304 64c-12.4 0-23.6 4.7-32.1 12.3C270 51.5 249.3 32 224 32c-12.4 0-23.6 4.7-32.1 12.3C190 19.5 169.3 0 144 0z\"]\n};\nconst faHandRock = faHandBackFist;\nconst faSquareCaretUp = {\n prefix: 'fas',\n iconName: 'square-caret-up',\n icon: [448, 512, [\"caret-square-up\"], \"f151\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM224 160c6.7 0 13 2.8 17.6 7.7l104 112c6.5 7 8.2 17.2 4.4 25.9s-12.5 14.4-22 14.4l-208 0c-9.5 0-18.2-5.7-22-14.4s-2.1-18.9 4.4-25.9l104-112c4.5-4.9 10.9-7.7 17.6-7.7z\"]\n};\nconst faCaretSquareUp = faSquareCaretUp;\nconst faCloudShowersWater = {\n prefix: 'fas',\n iconName: 'cloud-showers-water',\n icon: [576, 512, [], \"e4e4\", \"M224 0c38.6 0 71.9 22.8 87.2 55.7C325.7 41.1 345.8 32 368 32c38.7 0 71 27.5 78.4 64l1.6 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-320 0c-35.3 0-64-28.7-64-64s28.7-64 64-64c0-53 43-96 96-96zM140.6 292.3l-48 80c-6.8 11.4-21.6 15-32.9 8.2s-15.1-21.6-8.2-32.9l48-80c6.8-11.4 21.6-15.1 32.9-8.2s15.1 21.6 8.2 32.9zm327.8-32.9c11.4 6.8 15 21.6 8.2 32.9l-48 80c-6.8 11.4-21.6 15-32.9 8.2s-15-21.6-8.2-32.9l48-80c6.8-11.4 21.6-15.1 32.9-8.2zM252.6 292.3l-48 80c-6.8 11.4-21.6 15-32.9 8.2s-15.1-21.6-8.2-32.9l48-80c6.8-11.4 21.6-15.1 32.9-8.2s15.1 21.6 8.2 32.9zm103.8-32.9c11.4 6.8 15 21.6 8.2 32.9l-48 80c-6.8 11.4-21.6 15-32.9 8.2s-15.1-21.6-8.2-32.9l48-80c6.8-11.4 21.6-15.1 32.9-8.2zM306.5 421.9C329 437.4 356.5 448 384 448c26.9 0 55.4-10.8 77.4-26.1c0 0 0 0 0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 501.7 417 512 384 512c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7c0 0 0 0 0 0C136.7 437.2 165.1 448 192 448c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"]\n};\nconst faChartBar = {\n prefix: 'fas',\n iconName: 'chart-bar',\n icon: [512, 512, [\"bar-chart\"], \"f080\", \"M32 32c17.7 0 32 14.3 32 32l0 336c0 8.8 7.2 16 16 16l400 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L80 480c-44.2 0-80-35.8-80-80L0 64C0 46.3 14.3 32 32 32zm96 96c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32zm32 64l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 96l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nconst faBarChart = faChartBar;\nconst faHandsBubbles = {\n prefix: 'fas',\n iconName: 'hands-bubbles',\n icon: [576, 512, [\"hands-wash\"], \"e05e\", \"M416 64a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm96 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM160 464a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM32 160l.1 72.6c.1 52.2 24 101 64 133.1c-.1-1.9-.1-3.8-.1-5.7l0-8c0-71.8 37-138.6 97.9-176.7l60.2-37.6c8.6-5.4 17.9-8.4 27.3-9.4l45.9-79.5c6.6-11.5 2.7-26.2-8.8-32.8s-26.2-2.7-32.8 8.8l-78 135.1c-3.3 5.7-10.7 7.7-16.4 4.4s-7.7-10.7-4.4-16.4l62-107.4c6.6-11.5 2.7-26.2-8.8-32.8S214 5 207.4 16.5l-68 117.8s0 0 0 0s0 0 0 0l-43.3 75L96 160c0-17.7-14.4-32-32-32s-32 14.4-32 32zM332.1 88.5L307.5 131c13.9 4.5 26.4 13.7 34.7 27c.9 1.5 1.8 2.9 2.5 4.4l28.9-50c6.6-11.5 2.7-26.2-8.8-32.8s-26.2-2.7-32.8 8.8zm46.4 63.7l-26.8 46.4c-.6 6-2.1 11.8-4.3 17.4l4.7 0 13.3 0s0 0 0 0l31.8 0 23-39.8c6.6-11.5 2.7-26.2-8.8-32.8s-26.2-2.7-32.8 8.8zM315.1 175c-9.4-15-29.1-19.5-44.1-10.2l-60.2 37.6C159.3 234.7 128 291.2 128 352l0 8c0 8.9 .8 17.6 2.2 26.1c35.4 8.2 61.8 40 61.8 77.9c0 6.3-.7 12.5-2.1 18.4C215.1 501 246.3 512 280 512l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-92 0c-6.6 0-12-5.4-12-12s5.4-12 12-12l124 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-124 0c-6.6 0-12-5.4-12-12s5.4-12 12-12l156 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-156 0c-6.6 0-12-5.4-12-12s5.4-12 12-12l124 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-136 0s0 0 0 0s0 0 0 0l-93.2 0L305 219.1c15-9.4 19.5-29.1 10.2-44.1z\"]\n};\nconst faHandsWash = faHandsBubbles;\nconst faLessThanEqual = {\n prefix: 'fas',\n iconName: 'less-than-equal',\n icon: [448, 512, [], \"f537\", \"M395.9 93.7c16.4-6.6 24.4-25.2 17.8-41.6s-25.2-24.4-41.6-17.8l-320 128C40 167.1 32 178.9 32 192s8 24.9 20.1 29.7l320 128c16.4 6.6 35-1.4 41.6-17.8s-1.4-35-17.8-41.6L150.2 192 395.9 93.7zM32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 416z\"]\n};\nconst faTrain = {\n prefix: 'fas',\n iconName: 'train',\n icon: [448, 512, [128646], \"f238\", \"M96 0C43 0 0 43 0 96L0 352c0 48 35.2 87.7 81.1 94.9l-46 46C28.1 499.9 33.1 512 43 512l39.7 0c8.5 0 16.6-3.4 22.6-9.4L160 448l128 0 54.6 54.6c6 6 14.1 9.4 22.6 9.4l39.7 0c10 0 15-12.1 7.9-19.1l-46-46c46-7.1 81.1-46.9 81.1-94.9l0-256c0-53-43-96-96-96L96 0zM64 96c0-17.7 14.3-32 32-32l256 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32L96 224c-17.7 0-32-14.3-32-32l0-96zM224 288a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"]\n};\nconst faEyeLowVision = {\n prefix: 'fas',\n iconName: 'eye-low-vision',\n icon: [640, 512, [\"low-vision\"], \"f2a8\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zM223 149.5c48.6-44.3 123-50.8 179.3-11.7c60.8 42.4 78.9 123.2 44.2 186.9L408 294.5c8.4-19.3 10.6-41.4 4.8-63.3c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3c0 10.2-2.4 19.8-6.6 28.3L223 149.5zm223.1 298L83.1 161.5c-11 14.4-20.5 28.7-28.4 42.2l339 265.7c18.7-5.5 36.2-13 52.6-21.8zM34.5 268.3c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c3.1 0 6.1-.1 9.2-.2L33.1 247.8c-1.8 6.8-1.3 14 1.4 20.5z\"]\n};\nconst faLowVision = faEyeLowVision;\nconst faCrow = {\n prefix: 'fas',\n iconName: 'crow',\n icon: [640, 512, [], \"f520\", \"M456 0c-48.6 0-88 39.4-88 88l0 29.2L12.5 390.6c-14 10.8-16.6 30.9-5.9 44.9s30.9 16.6 44.9 5.9L126.1 384l133.1 0 46.6 113.1c5 12.3 19.1 18.1 31.3 13.1s18.1-19.1 13.1-31.3L311.1 384l40.9 0c1.1 0 2.1 0 3.2 0l46.6 113.2c5 12.3 19.1 18.1 31.3 13.1s18.1-19.1 13.1-31.3l-42-102C484.9 354.1 544 280 544 192l0-64 0-8 80.5-20.1c8.6-2.1 13.8-10.8 11.6-19.4C629 52 603.4 32 574 32l-50.1 0C507.7 12.5 483.3 0 456 0zm0 64a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nconst faSailboat = {\n prefix: 'fas',\n iconName: 'sailboat',\n icon: [576, 512, [], \"e445\", \"M256 16c0-7 4.5-13.2 11.2-15.3s13.9 .4 17.9 6.1l224 320c3.4 4.9 3.8 11.3 1.1 16.6s-8.2 8.6-14.2 8.6l-224 0c-8.8 0-16-7.2-16-16l0-320zM212.1 96.5c7 1.9 11.9 8.2 11.9 15.5l0 224c0 8.8-7.2 16-16 16L80 352c-5.7 0-11-3-13.8-8s-2.9-11-.1-16l128-224c3.6-6.3 11-9.4 18-7.5zM5.7 404.3C2.8 394.1 10.5 384 21.1 384l533.8 0c10.6 0 18.3 10.1 15.4 20.3l-4 14.3C550.7 473.9 500.4 512 443 512L133 512C75.6 512 25.3 473.9 9.7 418.7l-4-14.3z\"]\n};\nconst faWindowRestore = {\n prefix: 'fas',\n iconName: 'window-restore',\n icon: [512, 512, [], \"f2d2\", \"M432 64L208 64c-8.8 0-16 7.2-16 16l0 16-64 0 0-16c0-44.2 35.8-80 80-80L432 0c44.2 0 80 35.8 80 80l0 224c0 44.2-35.8 80-80 80l-16 0 0-64 16 0c8.8 0 16-7.2 16-16l0-224c0-8.8-7.2-16-16-16zM0 192c0-35.3 28.7-64 64-64l256 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 192zm64 32c0 17.7 14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 192c-17.7 0-32 14.3-32 32z\"]\n};\nconst faSquarePlus = {\n prefix: 'fas',\n iconName: 'square-plus',\n icon: [448, 512, [61846, \"plus-square\"], \"f0fe\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM200 344l0-64-64 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l64 0 0-64c0-13.3 10.7-24 24-24s24 10.7 24 24l0 64 64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-64 0 0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24z\"]\n};\nconst faPlusSquare = faSquarePlus;\nconst faToriiGate = {\n prefix: 'fas',\n iconName: 'torii-gate',\n icon: [512, 512, [9961], \"f6a1\", \"M0 80c0 26.5 21.5 48 48 48l16 0 0 64 64 0 0-64 96 0 0 64 64 0 0-64 96 0 0 64 64 0 0-64 16 0c26.5 0 48-21.5 48-48l0-66.6C512 6 506 0 498.6 0c-1.7 0-3.4 .3-5 1l-49 19.6C425.7 28.1 405.5 32 385.2 32L126.8 32c-20.4 0-40.5-3.9-59.4-11.4L18.4 1c-1.6-.6-3.3-1-5-1C6 0 0 6 0 13.4L0 80zM64 288l0 192c0 17.7 14.3 32 32 32s32-14.3 32-32l0-192 256 0 0 192c0 17.7 14.3 32 32 32s32-14.3 32-32l0-192 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0z\"]\n};\nconst faFrog = {\n prefix: 'fas',\n iconName: 'frog',\n icon: [576, 512, [], \"f52e\", \"M368 32c41.7 0 75.9 31.8 79.7 72.5l85.6 26.3c25.4 7.8 42.8 31.3 42.8 57.9c0 21.8-11.7 41.9-30.7 52.7L400.8 323.5 493.3 416l50.7 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-8.5 0-16.6-3.4-22.6-9.4L346.9 360.2c11.7-36 3.2-77.1-25.4-105.7c-40.6-40.6-106.3-40.6-146.9-.1L101 324.4c-6.4 6.1-6.7 16.2-.6 22.6s16.2 6.6 22.6 .6l73.8-70.2 .1-.1 .1-.1c3.5-3.5 7.3-6.6 11.3-9.2c27.9-18.5 65.9-15.4 90.5 9.2c24.7 24.7 27.7 62.9 9 90.9c-2.6 3.8-5.6 7.5-9 10.9L261.8 416l90.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 480c-35.3 0-64-28.7-64-64C0 249.6 127 112.9 289.3 97.5C296.2 60.2 328.8 32 368 32zm0 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nconst faBucket = {\n prefix: 'fas',\n iconName: 'bucket',\n icon: [448, 512, [], \"e4cf\", \"M96 152l0 8-48 0 0-8C48 68.1 116.1 0 200 0l48 0c83.9 0 152 68.1 152 152l0 8-48 0 0-8c0-57.4-46.6-104-104-104l-48 0C142.6 48 96 94.6 96 152zM0 224c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-5.1 0L388.5 469c-2.6 24.4-23.2 43-47.7 43l-233.6 0c-24.6 0-45.2-18.5-47.7-43L37.1 256 32 256c-17.7 0-32-14.3-32-32z\"]\n};\nconst faImage = {\n prefix: 'fas',\n iconName: 'image',\n icon: [512, 512, [], \"f03e\", \"M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM323.8 202.5c-4.5-6.6-11.9-10.5-19.8-10.5s-15.4 3.9-19.8 10.5l-87 127.6L170.7 297c-4.6-5.7-11.5-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4s12.4 13.6 21.6 13.6l96 0 32 0 208 0c8.9 0 17.1-4.9 21.2-12.8s3.6-17.4-1.4-24.7l-120-176zM112 192a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"]\n};\nconst faMicrophone = {\n prefix: 'fas',\n iconName: 'microphone',\n icon: [384, 512, [], \"f130\", \"M192 0C139 0 96 43 96 96l0 160c0 53 43 96 96 96s96-43 96-96l0-160c0-53-43-96-96-96zM64 216c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c0 89.1 66.2 162.7 152 174.4l0 33.6-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0 72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-33.6c85.8-11.7 152-85.3 152-174.4l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c0 70.7-57.3 128-128 128s-128-57.3-128-128l0-40z\"]\n};\nconst faCow = {\n prefix: 'fas',\n iconName: 'cow',\n icon: [640, 512, [128004], \"f6c8\", \"M96 224l0 32 0 160c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-88.2c9.9 6.6 20.6 12 32 16.1l0 24.2c0 8.8 7.2 16 16 16s16-7.2 16-16l0-16.9c5.3 .6 10.6 .9 16 .9s10.7-.3 16-.9l0 16.9c0 8.8 7.2 16 16 16s16-7.2 16-16l0-24.2c11.4-4 22.1-9.4 32-16.1l0 88.2c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-160 32 32 0 49.5c0 9.5 2.8 18.7 8.1 26.6L530 427c8.8 13.1 23.5 21 39.3 21c22.5 0 41.9-15.9 46.3-38l20.3-101.6c2.6-13-.3-26.5-8-37.3l-3.9-5.5 0-81.6c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 14.4-52.9-74.1C496 86.5 452.4 64 405.9 64L272 64l-16 0-64 0-48 0C77.7 64 24 117.7 24 184l0 54C9.4 249.8 0 267.8 0 288l0 17.6c0 8 6.4 14.4 14.4 14.4C46.2 320 72 294.2 72 262.4l0-6.4 0-32 0-40c0-24.3 12.1-45.8 30.5-58.9C98.3 135.9 96 147.7 96 160l0 64zM560 336a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM166.6 166.6c-4.2-4.2-6.6-10-6.6-16c0-12.5 10.1-22.6 22.6-22.6l178.7 0c12.5 0 22.6 10.1 22.6 22.6c0 6-2.4 11.8-6.6 16l-23.4 23.4C332.2 211.8 302.7 224 272 224s-60.2-12.2-81.9-33.9l-23.4-23.4z\"]\n};\nconst faCaretUp = {\n prefix: 'fas',\n iconName: 'caret-up',\n icon: [320, 512, [], \"f0d8\", \"M182.6 137.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l256 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-128-128z\"]\n};\nconst faScrewdriver = {\n prefix: 'fas',\n iconName: 'screwdriver',\n icon: [512, 512, [129691], \"f54a\", \"M465 7c-8.5-8.5-22-9.4-31.6-2.1l-104 80c-5.9 4.5-9.4 11.6-9.4 19l0 54.1-85.6 85.6c6.7 4.2 13 9.3 18.8 15.1s10.9 12.2 15.1 18.8L353.9 192l54.1 0c7.5 0 14.5-3.5 19-9.4l80-104c7.4-9.6 6.5-23.1-2.1-31.6L465 7zM121.4 281.4l-112 112c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0l112-112c30.2-30.2 30.2-79.1 0-109.3s-79.1-30.2-109.3 0z\"]\n};\nconst faFolderClosed = {\n prefix: 'fas',\n iconName: 'folder-closed',\n icon: [512, 512, [], \"e185\", \"M448 480L64 480c-35.3 0-64-28.7-64-64L0 192l512 0 0 224c0 35.3-28.7 64-64 64zm64-320L0 160 0 96C0 60.7 28.7 32 64 32l128 0c20.1 0 39.1 9.5 51.2 25.6l19.2 25.6c6 8.1 15.5 12.8 25.6 12.8l160 0c35.3 0 64 28.7 64 64z\"]\n};\nconst faHouseTsunami = {\n prefix: 'fas',\n iconName: 'house-tsunami',\n icon: [576, 512, [], \"e515\", \"M80.8 136.5C104.9 93.8 152.6 64 209 64c16.9 0 33.1 2.7 48.2 7.7c16.8 5.5 34.9-3.6 40.4-20.4s-3.6-34.9-20.4-40.4C255.8 3.8 232.8 0 209 0C95.2 0 0 88 0 200c0 91.6 53.5 172.1 142.2 194.1c13.4 3.8 27.5 5.9 42.2 5.9c.7 0 1.4 0 2.1-.1c1.8 0 3.7 .1 5.5 .1c0 0 0 0 0 0c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.5-27.3-10.1-39.2-1.7c0 0 0 0 0 0C439.4 325.2 410.9 336 384 336c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0c-22.4 15.5-49.9 26.1-77.4 26.1c0 0-.1 0-.1 0c-12.4 0-24-1.5-34.9-4.3C121.6 320.2 96 287 96 248c0-48.5 39.5-88 88.4-88c13.5 0 26.1 3 37.5 8.3c16 7.5 35.1 .6 42.5-15.5s.6-35.1-15.5-42.5C229.3 101.1 207.4 96 184.4 96c-40 0-76.4 15.4-103.6 40.5zm252-18.1c-8.1 6-12.8 15.5-12.8 25.6l0 121c1.6 1 3.3 2 4.8 3.1c18.4 12.7 39.6 20.3 59.2 20.3c19 0 41.2-7.9 59.2-20.3c23.8-16.7 55.8-15.3 78.1 3.4c10.6 8.8 24.2 15.6 37.3 18.6c5.8 1.4 11.2 3.4 16.2 6.2c.7-2.7 1.1-5.5 1.1-8.4l-.4-144c0-10-4.7-19.4-12.7-25.5l-95.5-72c-11.4-8.6-27.1-8.6-38.5 0l-96 72zM384 448c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0C247 437.4 219.5 448 192 448c-26.9 0-55.3-10.8-77.4-26.1c0 0 0 0 0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 501.7 159 512 192 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7c0 0 0 0 0 0C439.4 437.2 410.9 448 384 448z\"]\n};\nconst faSquareNfi = {\n prefix: 'fas',\n iconName: 'square-nfi',\n icon: [448, 512, [], \"e576\", \"M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm75.7 64.6C68.8 162.5 64 168.8 64 176l0 160c0 8.8 7.2 16 16 16s16-7.2 16-16l0-102.2 66.3 110.5c3.7 6.2 11.1 9.1 18 7.2s11.7-8.2 11.7-15.4l0-160c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 102.2L93.7 167.8c-3.7-6.2-11.1-9.1-18-7.2zM224 176l0 64 0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80 48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-48 0 0-32 48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-64 0c-8.8 0-16 7.2-16 16zm160 0c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 160c0 8.8 7.2 16 16 16s16-7.2 16-16l0-160z\"]\n};\nconst faArrowUpFromGroundWater = {\n prefix: 'fas',\n iconName: 'arrow-up-from-ground-water',\n icon: [576, 512, [], \"e4b5\", \"M288 352c17.7 0 32-14.3 32-32l0-210.7 25.4 25.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-80-80c-12.5-12.5-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L256 109.3 256 320c0 17.7 14.3 32 32 32zm-18.5 69.9C247 437.4 219.5 448 192 448c-26.9 0-55.3-10.8-77.4-26.1c0 0 0 0 0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 501.7 159 512 192 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7c0 0 0 0 0 0C439.4 437.2 410.9 448 384 448c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0zM192 192L48 192c-26.5 0-48 21.5-48 48L0 425c5.3-3.1 11.2-5.4 17.5-6.9c13.1-3.1 26.7-9.8 37.3-18.6c22.2-18.7 54.3-20.1 78.1-3.4c18 12.4 40.1 20.3 59.1 20.3L192 192zm384 48c0-26.5-21.5-48-48-48l-144 0 0 224.5s0 0 0 0c19 0 41.2-7.9 59.2-20.3c23.8-16.7 55.8-15.4 78.1 3.4c10.6 8.8 24.2 15.6 37.3 18.6c6.3 1.5 12.1 3.8 17.5 6.9l0-185z\"]\n};\nconst faMartiniGlass = {\n prefix: 'fas',\n iconName: 'martini-glass',\n icon: [512, 512, [127864, \"glass-martini-alt\"], \"f57b\", \"M32 0C19.1 0 7.4 7.8 2.4 19.8s-2.2 25.7 6.9 34.9L224 269.3 224 448l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-178.7L502.6 54.6c9.2-9.2 11.9-22.9 6.9-34.9S492.9 0 480 0L32 0zM173.3 128l-64-64 293.5 0-64 64-165.5 0z\"]\n};\nconst faGlassMartiniAlt = faMartiniGlass;\nconst faRotateLeft = {\n prefix: 'fas',\n iconName: 'rotate-left',\n icon: [512, 512, [\"rotate-back\", \"rotate-backward\", \"undo-alt\"], \"f2ea\", \"M48.5 224L40 224c-13.3 0-24-10.7-24-24L16 72c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2L98.6 96.6c87.6-86.5 228.7-86.2 315.8 1c87.5 87.5 87.5 229.3 0 316.8s-229.3 87.5-316.8 0c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c62.5 62.5 163.8 62.5 226.3 0s62.5-163.8 0-226.3c-62.2-62.2-162.7-62.5-225.3-1L185 183c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8L48.5 224z\"]\n};\nconst faRotateBack = faRotateLeft;\nconst faRotateBackward = faRotateLeft;\nconst faUndoAlt = faRotateLeft;\nconst faTableColumns = {\n prefix: 'fas',\n iconName: 'table-columns',\n icon: [512, 512, [\"columns\"], \"f0db\", \"M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm64 64l0 256 160 0 0-256L64 160zm384 0l-160 0 0 256 160 0 0-256z\"]\n};\nconst faColumns = faTableColumns;\nconst faLemon = {\n prefix: 'fas',\n iconName: 'lemon',\n icon: [448, 512, [127819], \"f094\", \"M448 96c0-35.3-28.7-64-64-64c-6.6 0-13 1-19 2.9c-22.5 7-48.1 14.9-71 9c-75.2-19.1-156.4 11-213.7 68.3S-7.2 250.8 11.9 326c5.8 22.9-2 48.4-9 71C1 403 0 409.4 0 416c0 35.3 28.7 64 64 64c6.6 0 13-1 19.1-2.9c22.5-7 48.1-14.9 71-9c75.2 19.1 156.4-11 213.7-68.3s87.5-138.5 68.3-213.7c-5.8-22.9 2-48.4 9-71c1.9-6 2.9-12.4 2.9-19.1zM212.5 127.4c-54.6 16-101.1 62.5-117.1 117.1C92.9 253 84 257.8 75.5 255.4S62.2 244 64.6 235.5c19.1-65.1 73.7-119.8 138.9-138.9c8.5-2.5 17.4 2.4 19.9 10.9s-2.4 17.4-10.9 19.9z\"]\n};\nconst faHeadSideMask = {\n prefix: 'fas',\n iconName: 'head-side-mask',\n icon: [576, 512, [], \"e063\", \"M32 224.2c0-22.2 3.2-43.6 9.2-63.9L262.2 321c-4 9.5-6.2 20-6.2 31l0 160-128 0c-17.7 0-32-14.3-32-32l0-72.7c0-16.7-6.9-32.5-17.1-45.8C48.6 322.4 32 274.1 32 224.2zm248.3 70.4L53 129.3C88.7 53 166.2 0 256 0l24 0c95.2 0 181.2 69.3 197.3 160.2c2.3 13 6.8 25.7 15.1 36l42 52.6c5.4 6.7 8.6 14.8 9.4 23.2L336 272c-21.7 0-41.3 8.6-55.7 22.6zM336 304l198 0s0 0 0 0l10 0-19.7 64L368 368c-8.8 0-16 7.2-16 16s7.2 16 16 16l146.5 0-9.8 32L368 432c-8.8 0-16 7.2-16 16s7.2 16 16 16l126.8 0-.9 2.8c-8.3 26.9-33.1 45.2-61.2 45.2L288 512l0-160c0-14 6-26.7 15.6-35.4c0 0 0 0 0 0c8.5-7.8 19.9-12.6 32.4-12.6zm48-80a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nconst faHandshake = {\n prefix: 'fas',\n iconName: 'handshake',\n icon: [640, 512, [], \"f2b5\", \"M323.4 85.2l-96.8 78.4c-16.1 13-19.2 36.4-7 53.1c12.9 17.8 38 21.3 55.3 7.8l99.3-77.2c7-5.4 17-4.2 22.5 2.8s4.2 17-2.8 22.5l-20.9 16.2L512 316.8 512 128l-.7 0-3.9-2.5L434.8 79c-15.3-9.8-33.2-15-51.4-15c-21.8 0-43 7.5-60 21.2zm22.8 124.4l-51.7 40.2C263 274.4 217.3 268 193.7 235.6c-22.2-30.5-16.6-73.1 12.7-96.8l83.2-67.3c-11.6-4.9-24.1-7.4-36.8-7.4C234 64 215.7 69.6 200 80l-72 48 0 224 28.2 0 91.4 83.4c19.6 17.9 49.9 16.5 67.8-3.1c5.5-6.1 9.2-13.2 11.1-20.6l17 15.6c19.5 17.9 49.9 16.6 67.8-2.9c4.5-4.9 7.8-10.6 9.9-16.5c19.4 13 45.8 10.3 62.1-7.5c17.9-19.5 16.6-49.9-2.9-67.8l-134.2-123zM16 128c-8.8 0-16 7.2-16 16L0 352c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-224-80 0zM48 320a16 16 0 1 1 0 32 16 16 0 1 1 0-32zM544 128l0 224c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-208c0-8.8-7.2-16-16-16l-80 0zm32 208a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z\"]\n};\nconst faGem = {\n prefix: 'fas',\n iconName: 'gem',\n icon: [512, 512, [128142], \"f3a5\", \"M116.7 33.8c4.5-6.1 11.7-9.8 19.3-9.8l240 0c7.6 0 14.8 3.6 19.3 9.8l112 152c6.8 9.2 6.1 21.9-1.5 30.4l-232 256c-4.5 5-11 7.9-17.8 7.9s-13.2-2.9-17.8-7.9l-232-256c-7.7-8.5-8.3-21.2-1.5-30.4l112-152zm38.5 39.8c-3.3 2.5-4.2 7-2.1 10.5l57.4 95.6L63.3 192c-4.1 .3-7.3 3.8-7.3 8s3.2 7.6 7.3 8l192 16c.4 0 .9 0 1.3 0l192-16c4.1-.3 7.3-3.8 7.3-8s-3.2-7.6-7.3-8L301.5 179.8l57.4-95.6c2.1-3.5 1.2-8.1-2.1-10.5s-7.9-2-10.7 1L256 172.2 165.9 74.6c-2.8-3-7.4-3.4-10.7-1z\"]\n};\nconst faDolly = {\n prefix: 'fas',\n iconName: 'dolly',\n icon: [576, 512, [\"dolly-box\"], \"f472\", \"M0 32C0 14.3 14.3 0 32 0l72.9 0c27.5 0 52 17.6 60.7 43.8L257.7 320c30.1 .5 56.8 14.9 74 37l202.1-67.4c16.8-5.6 34.9 3.5 40.5 20.2s-3.5 34.9-20.2 40.5L352 417.7c-.9 52.2-43.5 94.3-96 94.3c-53 0-96-43-96-96c0-30.8 14.5-58.2 37-75.8L104.9 64 32 64C14.3 64 0 49.7 0 32zM244.8 134.5c-5.5-16.8 3.7-34.9 20.5-40.3L311 79.4l19.8 60.9 60.9-19.8L371.8 59.6l45.7-14.8c16.8-5.5 34.9 3.7 40.3 20.5l49.4 152.2c5.5 16.8-3.7 34.9-20.5 40.3L334.5 307.2c-16.8 5.5-34.9-3.7-40.3-20.5L244.8 134.5z\"]\n};\nconst faDollyBox = faDolly;\nconst faSmoking = {\n prefix: 'fas',\n iconName: 'smoking',\n icon: [640, 512, [128684], \"f48d\", \"M448 32l0 11c0 38.2 15.2 74.8 42.2 101.8l21 21c21 21 32.8 49.5 32.8 79.2l0 11c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-11c0-12.7-5.1-24.9-14.1-33.9l-21-21C405.9 151.1 384 98.1 384 43l0-11c0-17.7 14.3-32 32-32s32 14.3 32 32zM576 256l0-11c0-38.2-15.2-74.8-42.2-101.8l-21-21c-21-21-32.8-49.5-32.8-79.2l0-11c0-17.7 14.3-32 32-32s32 14.3 32 32l0 11c0 12.7 5.1 24.9 14.1 33.9l21 21c39 39 60.9 91.9 60.9 147.1l0 11c0 17.7-14.3 32-32 32s-32-14.3-32-32zM0 416c0-35.3 28.7-64 64-64l352 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32L64 512c-35.3 0-64-28.7-64-64l0-32zm224 0l0 32 160 0 0-32-160 0zm288-64c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32z\"]\n};\nconst faMinimize = {\n prefix: 'fas',\n iconName: 'minimize',\n icon: [512, 512, [\"compress-arrows-alt\"], \"f78c\", \"M456 224l-144 0c-13.3 0-24-10.7-24-24l0-144c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l40 40L442.3 5.7C446 2 450.9 0 456 0s10 2 13.7 5.7l36.7 36.7C510 46 512 50.9 512 56s-2 10-5.7 13.7L433 143l40 40c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8zm0 64c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-40 40 73.4 73.4c3.6 3.6 5.7 8.5 5.7 13.7s-2 10-5.7 13.7l-36.7 36.7C466 510 461.1 512 456 512s-10-2-13.7-5.7L369 433l-40 40c-6.9 6.9-17.2 8.9-26.2 5.2s-14.8-12.5-14.8-22.2l0-144c0-13.3 10.7-24 24-24l144 0zm-256 0c13.3 0 24 10.7 24 24l0 144c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-40-40L69.7 506.3C66 510 61.1 512 56 512s-10-2-13.7-5.7L5.7 469.7C2 466 0 461.1 0 456s2-10 5.7-13.7L79 369 39 329c-6.9-6.9-8.9-17.2-5.2-26.2s12.5-14.8 22.2-14.8l144 0zM56 224c-9.7 0-18.5-5.8-22.2-14.8s-1.7-19.3 5.2-26.2l40-40L5.7 69.7C2 66 0 61.1 0 56s2-10 5.7-13.7L42.3 5.7C46 2 50.9 0 56 0s10 2 13.7 5.7L143 79l40-40c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2l0 144c0 13.3-10.7 24-24 24L56 224z\"]\n};\nconst faCompressArrowsAlt = faMinimize;\nconst faMonument = {\n prefix: 'fas',\n iconName: 'monument',\n icon: [384, 512, [], \"f5a6\", \"M180.7 4.7c6.2-6.2 16.4-6.2 22.6 0l80 80c2.5 2.5 4.1 5.8 4.6 9.3l40.2 322L55.9 416 96.1 94c.4-3.5 2-6.8 4.6-9.3l80-80zM152 272c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0zM32 448l320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nconst faSnowplow = {\n prefix: 'fas',\n iconName: 'snowplow',\n icon: [640, 512, [], \"f7d2\", \"M298.9 64l68.6 160L256 224l-64-64 0-96 106.9 0zM445.1 242.7l-87.4-204C347.6 15.3 324.5 0 298.9 0L176 0c-26.5 0-48 21.5-48 48l0 112-32 0c-17.7 0-32 14.3-32 32l0 106.8C26.2 316.8 0 355.3 0 400c0 61.9 50.1 112 112 112l256 0c61.9 0 112-50.1 112-112c0-17.2-3.9-33.5-10.8-48l42.8 0 0 50.7c0 17 6.7 33.3 18.7 45.3l54.6 54.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L576 402.7l0-82.7 0-84.8L633 164c11-13.8 8.8-33.9-5-45s-33.9-8.8-45 5l-57 71.2c-9.1 11.3-14 25.4-14 40l0 52.8-64 0 0-31.3c.1-2.4-.2-4.8-.6-7.1s-1.2-4.7-2.2-6.8zM368 352c26.5 0 48 21.5 48 48s-21.5 48-48 48l-256 0c-26.5 0-48-21.5-48-48s21.5-48 48-48l256 0zM144 400a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm216 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm-56-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM200 424a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nconst faAnglesRight = {\n prefix: 'fas',\n iconName: 'angles-right',\n icon: [512, 512, [187, \"angle-double-right\"], \"f101\", \"M470.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 256 265.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160zm-352 160l160-160c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L210.7 256 73.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0z\"]\n};\nconst faAngleDoubleRight = faAnglesRight;\nconst faCannabis = {\n prefix: 'fas',\n iconName: 'cannabis',\n icon: [512, 512, [], \"f55f\", \"M256 0c5.3 0 10.3 2.7 13.3 7.1c15.8 23.5 36.7 63.7 49.2 109c7.2 26.4 11.8 55.2 10.4 84c11.5-8.8 23.7-16.7 35.8-23.6c41-23.3 84.4-36.9 112.2-42.5c5.2-1 10.7 .6 14.4 4.4s5.4 9.2 4.4 14.5c-5.6 27.7-19.3 70.9-42.7 111.7c-9.1 15.9-19.9 31.7-32.4 46.3c27.8 6.6 52.4 17.3 67.2 25.5c5.1 2.8 8.2 8.2 8.2 14s-3.2 11.2-8.2 14c-15.2 8.4-40.9 19.5-69.8 26.1c-20.2 4.6-42.9 7.2-65.2 4.6l8.3 33.1c1.5 6.1-.6 12.4-5.5 16.4s-11.6 4.6-17.2 1.9L280 417.2l0 70.8c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-70.8-58.5 29.1c-5.6 2.8-12.3 2.1-17.2-1.9s-7-10.3-5.5-16.4l8.3-33.1c-22.2 2.6-45 0-65.2-4.6c-28.9-6.6-54.6-17.6-69.8-26.1c-5.1-2.8-8.2-8.2-8.2-14s3.2-11.2 8.2-14c14.8-8.2 39.4-18.8 67.2-25.5C78.9 296.3 68.1 280.5 59 264.6c-23.4-40.8-37.1-84-42.7-111.7c-1.1-5.2 .6-10.7 4.4-14.5s9.2-5.4 14.4-4.4c27.9 5.5 71.2 19.2 112.2 42.5c12.1 6.9 24.3 14.7 35.8 23.6c-1.4-28.7 3.1-57.6 10.4-84c12.5-45.3 33.4-85.5 49.2-109c3-4.4 8-7.1 13.3-7.1z\"]\n};\nconst faCirclePlay = {\n prefix: 'fas',\n iconName: 'circle-play',\n icon: [512, 512, [61469, \"play-circle\"], \"f144\", \"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM188.3 147.1c-7.6 4.2-12.3 12.3-12.3 20.9l0 176c0 8.7 4.7 16.7 12.3 20.9s16.8 4.1 24.3-.5l144-88c7.1-4.4 11.5-12.1 11.5-20.5s-4.4-16.1-11.5-20.5l-144-88c-7.4-4.5-16.7-4.7-24.3-.5z\"]\n};\nconst faPlayCircle = faCirclePlay;\nconst faTablets = {\n prefix: 'fas',\n iconName: 'tablets',\n icon: [640, 512, [], \"f490\", \"M614.3 247c-5.2 7.9-16.2 8.5-22.9 1.8L391.2 48.6c-6.7-6.7-6.2-17.8 1.8-22.9C418.1 9.4 447.9 0 480 0c88.4 0 160 71.6 160 160c0 32.1-9.4 61.9-25.7 87zM567 294.3c-25 16.3-54.9 25.7-87 25.7c-88.4 0-160-71.6-160-160c0-32.1 9.4-61.9 25.7-87c5.2-7.9 16.2-8.5 22.9-1.8L568.8 271.4c6.7 6.7 6.2 17.8-1.8 22.9zM301.5 368c9.5 0 16.9 8.2 15 17.5C301.1 457.8 236.9 512 160 512S18.9 457.8 3.5 385.5c-2-9.3 5.5-17.5 15-17.5l283.1 0zm0-32L18.5 336c-9.5 0-16.9-8.2-15-17.5C18.9 246.2 83.1 192 160 192s141.1 54.2 156.5 126.5c2 9.3-5.5 17.5-15 17.5z\"]\n};\nconst faEthernet = {\n prefix: 'fas',\n iconName: 'ethernet',\n icon: [512, 512, [], \"f796\", \"M0 224L0 416c0 17.7 14.3 32 32 32l64 0 0-112c0-8.8 7.2-16 16-16s16 7.2 16 16l0 112 64 0 0-112c0-8.8 7.2-16 16-16s16 7.2 16 16l0 112 64 0 0-112c0-8.8 7.2-16 16-16s16 7.2 16 16l0 112 64 0 0-112c0-8.8 7.2-16 16-16s16 7.2 16 16l0 112 64 0c17.7 0 32-14.3 32-32l0-192c0-17.7-14.3-32-32-32l-32 0 0-32c0-17.7-14.3-32-32-32l-32 0 0-32c0-17.7-14.3-32-32-32L160 64c-17.7 0-32 14.3-32 32l0 32-32 0c-17.7 0-32 14.3-32 32l0 32-32 0c-17.7 0-32 14.3-32 32z\"]\n};\nconst faEuroSign = {\n prefix: 'fas',\n iconName: 'euro-sign',\n icon: [320, 512, [8364, \"eur\", \"euro\"], \"f153\", \"M48.1 240c-.1 2.7-.1 5.3-.1 8l0 16c0 2.7 0 5.3 .1 8L32 272c-17.7 0-32 14.3-32 32s14.3 32 32 32l28.3 0C89.9 419.9 170 480 264 480l24 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-24 0c-57.9 0-108.2-32.4-133.9-80L256 336c17.7 0 32-14.3 32-32s-14.3-32-32-32l-143.8 0c-.1-2.6-.2-5.3-.2-8l0-16c0-2.7 .1-5.4 .2-8L256 240c17.7 0 32-14.3 32-32s-14.3-32-32-32l-125.9 0c25.7-47.6 76-80 133.9-80l24 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-24 0C170 32 89.9 92.1 60.3 176L32 176c-17.7 0-32 14.3-32 32s14.3 32 32 32l16.1 0z\"]\n};\nconst faEur = faEuroSign;\nconst faEuro = faEuroSign;\nconst faChair = {\n prefix: 'fas',\n iconName: 'chair',\n icon: [448, 512, [129681], \"f6c0\", \"M248 48l0 208 48 0 0-197.3c23.9 13.8 40 39.7 40 69.3l0 128 48 0 0-128C384 57.3 326.7 0 256 0L192 0C121.3 0 64 57.3 64 128l0 128 48 0 0-128c0-29.6 16.1-55.5 40-69.3L152 256l48 0 0-208 48 0zM48 288c-12.1 0-23.2 6.8-28.6 17.7l-16 32c-5 9.9-4.4 21.7 1.4 31.1S20.9 384 32 384l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 256 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c11.1 0 21.4-5.7 27.2-15.2s6.4-21.2 1.4-31.1l-16-32C423.2 294.8 412.1 288 400 288L48 288z\"]\n};\nconst faCircleCheck = {\n prefix: 'fas',\n iconName: 'circle-check',\n icon: [512, 512, [61533, \"check-circle\"], \"f058\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM369 209L241 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L335 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\"]\n};\nconst faCheckCircle = faCircleCheck;\nconst faCircleStop = {\n prefix: 'fas',\n iconName: 'circle-stop',\n icon: [512, 512, [62094, \"stop-circle\"], \"f28d\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM192 160l128 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32z\"]\n};\nconst faStopCircle = faCircleStop;\nconst faCompassDrafting = {\n prefix: 'fas',\n iconName: 'compass-drafting',\n icon: [512, 512, [\"drafting-compass\"], \"f568\", \"M352 96c0 14.3-3.1 27.9-8.8 40.2L396 227.4c-23.7 25.3-54.2 44.1-88.5 53.6L256 192c0 0 0 0 0 0s0 0 0 0l-68 117.5c21.5 6.8 44.3 10.5 68.1 10.5c70.7 0 133.8-32.7 174.9-84c11.1-13.8 31.2-16 45-5s16 31.2 5 45C428.1 341.8 347 384 256 384c-35.4 0-69.4-6.4-100.7-18.1L98.7 463.7C94 471.8 87 478.4 78.6 482.6L23.2 510.3c-5 2.5-10.9 2.2-15.6-.7S0 501.5 0 496l0-55.4c0-8.4 2.2-16.7 6.5-24.1l60-103.7C53.7 301.6 41.8 289.3 31.2 276c-11.1-13.8-8.8-33.9 5-45s33.9-8.8 45 5c5.7 7.1 11.8 13.8 18.2 20.1l69.4-119.9c-5.6-12.2-8.8-25.8-8.8-40.2c0-53 43-96 96-96s96 43 96 96zm21 297.9c32.6-12.8 62.5-30.8 88.9-52.9l43.7 75.5c4.2 7.3 6.5 15.6 6.5 24.1l0 55.4c0 5.5-2.9 10.7-7.6 13.6s-10.6 3.2-15.6 .7l-55.4-27.7c-8.4-4.2-15.4-10.8-20.1-18.9L373 393.9zM256 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nconst faDraftingCompass = faCompassDrafting;\nconst faPlateWheat = {\n prefix: 'fas',\n iconName: 'plate-wheat',\n icon: [512, 512, [], \"e55a\", \"M176 32c44.2 0 80 35.8 80 80l0 16c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80l0-16c0-8.8 7.2-16 16-16zM56 64l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zM24 136l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 184c-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 96c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24zM272 48c0-8.8 7.2-16 16-16c44.2 0 80 35.8 80 80l0 16c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80l0-16zM400 32c44.2 0 80 35.8 80 80l0 16c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80l0-16c0-8.8 7.2-16 16-16zm80 160l0 16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16l0-16c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM352 176c8.8 0 16 7.2 16 16l0 16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16l0-16c0-44.2 35.8-80 80-80zm-96 16l0 16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16l0-16c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM3.5 347.6C1.6 332.9 13 320 27.8 320l456.4 0c14.8 0 26.2 12.9 24.4 27.6C502.3 397.8 464.2 437 416 446l0 2c0 17.7-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32l0-2c-48.2-9-86.3-48.2-92.5-98.4z\"]\n};\nconst faIcicles = {\n prefix: 'fas',\n iconName: 'icicles',\n icon: [512, 512, [], \"f7ad\", \"M75.8 304.8L1 35.7c-.7-2.5-1-5-1-7.5C0 12.6 12.6 0 28.2 0H482.4C498.8 0 512 13.2 512 29.6c0 1.6-.1 3.3-.4 4.9L434.6 496.1c-1.5 9.2-9.5 15.9-18.8 15.9c-9.2 0-17.1-6.6-18.7-15.6L336 160 307.2 303.9c-1.9 9.3-10.1 16.1-19.6 16.1c-9.2 0-17.2-6.2-19.4-15.1L240 192 210.6 368.2c-1.5 9.1-9.4 15.8-18.6 15.8s-17.1-6.7-18.6-15.8L144 192 115.9 304.3c-2.3 9.2-10.6 15.7-20.1 15.7c-9.3 0-17.5-6.2-20-15.2z\"]\n};\nconst faPersonShelter = {\n prefix: 'fas',\n iconName: 'person-shelter',\n icon: [512, 512, [], \"e54f\", \"M271.9 4.2c-9.8-5.6-21.9-5.6-31.8 0l-224 128C6.2 137.9 0 148.5 0 160L0 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-301.4L256 68.9 448 178.6 448 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-320c0-11.5-6.2-22.1-16.1-27.8l-224-128zM256 208a40 40 0 1 0 0-80 40 40 0 1 0 0 80zm-8 280l0-88 16 0 0 88c0 13.3 10.7 24 24 24s24-10.7 24-24l0-174.5 26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-37.9-70.3c-15.3-28.5-45.1-46.3-77.5-46.3l-19.5 0c-32.4 0-62.1 17.8-77.5 46.3l-37.9 70.3c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L200 313.5 200 488c0 13.3 10.7 24 24 24s24-10.7 24-24z\"]\n};\nconst faNeuter = {\n prefix: 'fas',\n iconName: 'neuter',\n icon: [384, 512, [9906], \"f22c\", \"M80 176a112 112 0 1 1 224 0A112 112 0 1 1 80 176zM224 349.1c81.9-15 144-86.8 144-173.1C368 78.8 289.2 0 192 0S16 78.8 16 176c0 86.3 62.1 158.1 144 173.1L160 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-130.9z\"]\n};\nconst faIdBadge = {\n prefix: 'fas',\n iconName: 'id-badge',\n icon: [384, 512, [], \"f2c1\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zm96 320l64 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16L96 416c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm-32-96a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM144 64l96 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-96 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nconst faMarker = {\n prefix: 'fas',\n iconName: 'marker',\n icon: [512, 512, [], \"f5a1\", \"M481 31C445.1-4.8 386.9-4.8 351 31l-15 15L322.9 33C294.8 4.9 249.2 4.9 221.1 33L135 119c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0L255 66.9c9.4-9.4 24.6-9.4 33.9 0L302.1 80 186.3 195.7 316.3 325.7 481 161c35.9-35.9 35.9-94.1 0-129.9zM293.7 348.3L163.7 218.3 99.5 282.5c-48 48-80.8 109.2-94.1 175.8l-5 25c-1.6 7.9 .9 16 6.6 21.7s13.8 8.1 21.7 6.6l25-5c66.6-13.3 127.8-46.1 175.8-94.1l64.2-64.2z\"]\n};\nconst faFaceLaughBeam = {\n prefix: 'fas',\n iconName: 'face-laugh-beam',\n icon: [512, 512, [128513, \"laugh-beam\"], \"f59a\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM96.8 314.1c-3.8-13.7 7.4-26.1 21.6-26.1l275.2 0c14.2 0 25.5 12.4 21.6 26.1C396.2 382 332.1 432 256 432s-140.2-50-159.2-117.9zM217.6 212.8s0 0 0 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0zm160 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0z\"]\n};\nconst faLaughBeam = faFaceLaughBeam;\nconst faHelicopterSymbol = {\n prefix: 'fas',\n iconName: 'helicopter-symbol',\n icon: [512, 512, [], \"e502\", \"M445.3 224l64.7 0C495.6 108.2 403.8 16.4 288 2l0 64.7C368.4 80.1 431.9 143.6 445.3 224zM510 288l-64.7 0C431.9 368.4 368.4 431.9 288 445.3l0 64.7c115.8-14.4 207.6-106.2 222-222zM2 288C16.4 403.8 108.2 495.6 224 510l0-64.7C143.6 431.9 80.1 368.4 66.7 288L2 288zm0-64l64.7 0C80.1 143.6 143.6 80.1 224 66.7L224 2C108.2 16.4 16.4 108.2 2 224zm206-64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 192c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 96 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-192c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64-96 0 0-64z\"]\n};\nconst faUniversalAccess = {\n prefix: 'fas',\n iconName: 'universal-access',\n icon: [512, 512, [], \"f29a\", \"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm161.5-86.1c-12.2-5.2-26.3 .4-31.5 12.6s.4 26.3 12.6 31.5l11.9 5.1c17.3 7.4 35.2 12.9 53.6 16.3l0 50.1c0 4.3-.7 8.6-2.1 12.6l-28.7 86.1c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l24.4-73.2c1.3-3.8 4.8-6.4 8.8-6.4s7.6 2.6 8.8 6.4l24.4 73.2c4.2 12.6 17.8 19.4 30.4 15.2s19.4-17.8 15.2-30.4l-28.7-86.1c-1.4-4.1-2.1-8.3-2.1-12.6l0-50.1c18.4-3.5 36.3-8.9 53.6-16.3l11.9-5.1c12.2-5.2 17.8-19.3 12.6-31.5s-19.3-17.8-31.5-12.6L338.7 175c-26.1 11.2-54.2 17-82.7 17s-56.5-5.8-82.7-17l-11.9-5.1zM256 160a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"]\n};\nconst faCircleChevronUp = {\n prefix: 'fas',\n iconName: 'circle-chevron-up',\n icon: [512, 512, [\"chevron-circle-up\"], \"f139\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM377 271c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-87-87-87 87c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L239 167c9.4-9.4 24.6-9.4 33.9 0L377 271z\"]\n};\nconst faChevronCircleUp = faCircleChevronUp;\nconst faLariSign = {\n prefix: 'fas',\n iconName: 'lari-sign',\n icon: [384, 512, [], \"e1c8\", \"M144 32c17.7 0 32 14.3 32 32l0 32.7c5.3-.4 10.6-.7 16-.7s10.7 .2 16 .7L208 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 49.4c54.9 25.2 95.8 75.5 108.2 136.2c3.5 17.3-7.7 34.2-25 37.7s-34.2-7.7-37.7-25c-6.1-29.9-22.5-55.9-45.4-74.3l0 67.9c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-95c-5.2-.7-10.6-1-16-1s-10.8 .3-16 1l0 95c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-67.9C82.7 211.5 64 247.6 64 288c0 70.7 57.3 128 128 128l160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-160 0L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l16.9 0C18.5 382 0 337.2 0 288c0-77.5 45.9-144.3 112-174.6L112 64c0-17.7 14.3-32 32-32z\"]\n};\nconst faVolcano = {\n prefix: 'fas',\n iconName: 'volcano',\n icon: [512, 512, [127755], \"f770\", \"M160 144c-35.3 0-64-28.7-64-64s28.7-64 64-64c15.7 0 30 5.6 41.2 15C212.4 12.4 232.7 0 256 0s43.6 12.4 54.8 31C322 21.6 336.3 16 352 16c35.3 0 64 28.7 64 64s-28.7 64-64 64c-14.7 0-28.3-5-39.1-13.3l-32 48C275.3 187 266 192 256 192s-19.3-5-24.9-13.3l-32-48C188.3 139 174.7 144 160 144zM144 352l48.4-24.2c10.2-5.1 21.6-7.8 33-7.8c19.6 0 38.4 7.8 52.2 21.6l32.5 32.5c6.3 6.3 14.9 9.9 23.8 9.9c11.3 0 21.8-5.6 28-15l9.7-14.6-58.9-66.3c-9.1-10.2-22.2-16.1-35.9-16.1l-41.8 0c-13.7 0-26.8 5.9-35.9 16.1l-59.9 67.4L144 352zm19.4-95.8c18.2-20.5 44.3-32.2 71.8-32.2l41.8 0c27.4 0 53.5 11.7 71.8 32.2l150.2 169c8.5 9.5 13.2 21.9 13.2 34.7c0 28.8-23.4 52.2-52.2 52.2L52.2 512C23.4 512 0 488.6 0 459.8c0-12.8 4.7-25.1 13.2-34.7l150.2-169z\"]\n};\nconst faPersonWalkingDashedLineArrowRight = {\n prefix: 'fas',\n iconName: 'person-walking-dashed-line-arrow-right',\n icon: [640, 512, [], \"e553\", \"M208 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM123.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L281 232.7l-15.3-36.8C248.5 154.8 208.3 128 163.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1L68.7 398 9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L116.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zM550.6 153.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L530.7 224 384 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l146.7 0-25.4 25.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l80-80c12.5-12.5 12.5-32.8 0-45.3l-80-80zM392 0c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24s24-10.7 24-24l0-48c0-13.3-10.7-24-24-24zm24 152c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 16c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16zM392 320c-13.3 0-24 10.7-24 24l0 16c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16c0-13.3-10.7-24-24-24zm24 120c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24s24-10.7 24-24l0-48z\"]\n};\nconst faSterlingSign = {\n prefix: 'fas',\n iconName: 'sterling-sign',\n icon: [320, 512, [163, \"gbp\", \"pound-sign\"], \"f154\", \"M112 160.4c0-35.5 28.8-64.4 64.4-64.4c6.9 0 13.8 1.1 20.4 3.3l81.2 27.1c16.8 5.6 34.9-3.5 40.5-20.2s-3.5-34.9-20.2-40.5L217 38.6c-13.1-4.4-26.8-6.6-40.6-6.6C105.5 32 48 89.5 48 160.4L48 224l-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l16 0 0 44.5c0 17.4-4.7 34.5-13.7 49.4L4.6 431.5c-5.9 9.9-6.1 22.2-.4 32.2S20.5 480 32 480l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L88.5 416l.7-1.1C104.1 390 112 361.5 112 332.5l0-44.5 112 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-112 0 0-63.6z\"]\n};\nconst faGbp = faSterlingSign;\nconst faPoundSign = faSterlingSign;\nconst faViruses = {\n prefix: 'fas',\n iconName: 'viruses',\n icon: [640, 512, [], \"e076\", \"M192 0c13.3 0 24 10.7 24 24l0 13.5c0 35.6 43.1 53.5 68.3 28.3l9.5-9.5c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-9.5 9.5C293 124.9 310.9 168 346.5 168l13.5 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-13.5 0c-35.6 0-53.5 43.1-28.3 68.3l9.5 9.5c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-9.5-9.5C259.1 293 216 310.9 216 346.5l0 13.5c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-13.5c0-35.6-43.1-53.5-68.3-28.3l-9.5 9.5c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l9.5-9.5C91 259.1 73.1 216 37.5 216L24 216c-13.3 0-24-10.7-24-24s10.7-24 24-24l13.5 0c35.6 0 53.5-43.1 28.3-68.3l-9.5-9.5c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l9.5 9.5C124.9 91 168 73.1 168 37.5L168 24c0-13.3 10.7-24 24-24zm48 224a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm-48-64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm320 80c0 33 39.9 49.5 63.2 26.2c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6C574.5 312.1 591 352 624 352c8.8 0 16 7.2 16 16s-7.2 16-16 16c-33 0-49.5 39.9-26.2 63.2c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0C551.9 446.5 512 463 512 496c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-33-39.9-49.5-63.2-26.2c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6C417.5 423.9 401 384 368 384c-8.8 0-16-7.2-16-16s7.2-16 16-16c33 0 49.5-39.9 26.2-63.2c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0C440.1 289.5 480 273 480 240c0-8.8 7.2-16 16-16s16 7.2 16 16zm0 112a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"]\n};\nconst faSquarePersonConfined = {\n prefix: 'fas',\n iconName: 'square-person-confined',\n icon: [448, 512, [], \"e577\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm96 112a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm80 104c0-30.9 25.1-56 56-56s56 25.1 56 56l0 102.1c0 36.4-29.5 65.9-65.9 65.9c-17.5 0-34.3-6.9-46.6-19.3L184.8 342l-28.1 56.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l48-96c4.6-9.2 13.3-15.6 23.5-17.3s20.5 1.7 27.8 9L240 306.7l0-58.7z\"]\n};\nconst faUserTie = {\n prefix: 'fas',\n iconName: 'user-tie',\n icon: [448, 512, [], \"f508\", \"M96 128a128 128 0 1 0 256 0A128 128 0 1 0 96 128zm94.5 200.2l18.6 31L175.8 483.1l-36-146.9c-2-8.1-9.8-13.4-17.9-11.3C51.9 342.4 0 405.8 0 481.3c0 17 13.8 30.7 30.7 30.7l131.7 0c0 0 0 0 .1 0l5.5 0 112 0 5.5 0c0 0 0 0 .1 0l131.7 0c17 0 30.7-13.8 30.7-30.7c0-75.5-51.9-138.9-121.9-156.4c-8.1-2-15.9 3.3-17.9 11.3l-36 146.9L238.9 359.2l18.6-31c6.4-10.7-1.3-24.2-13.7-24.2L224 304l-19.7 0c-12.4 0-20.1 13.6-13.7 24.2z\"]\n};\nconst faArrowDownLong = {\n prefix: 'fas',\n iconName: 'arrow-down-long',\n icon: [384, 512, [\"long-arrow-down\"], \"f175\", \"M169.4 502.6c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 402.7 224 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 370.7L86.6 329.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128z\"]\n};\nconst faLongArrowDown = faArrowDownLong;\nconst faTentArrowDownToLine = {\n prefix: 'fas',\n iconName: 'tent-arrow-down-to-line',\n icon: [640, 512, [], \"e57e\", \"M241.8 111.9c8.9 9.9 8.1 25-1.8 33.9l-80 72c-9.1 8.2-23 8.2-32.1 0l-80-72c-9.9-8.9-10.7-24-1.8-33.9s24-10.7 33.9-1.8l39.9 36L120 24c0-13.3 10.7-24 24-24s24 10.7 24 24l0 122.1 39.9-36c9.9-8.9 25-8.1 33.9 1.8zm122.8 22.6c11.5-8.7 27.3-8.7 38.8 0l168 128c6.6 5 11 12.5 12.3 20.7l24 160 .7 4.7c17.5 .2 31.6 14.4 31.6 32c0 17.7-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l127.6 0 .7-4.7 24-160c1.2-8.2 5.6-15.7 12.3-20.7l168-128zM384 448l80 0L402.7 325.5c-1.7-3.4-5.1-5.5-8.8-5.5c-5.5 0-9.9 4.4-9.9 9.9L384 448z\"]\n};\nconst faCertificate = {\n prefix: 'fas',\n iconName: 'certificate',\n icon: [512, 512, [], \"f0a3\", \"M211 7.3C205 1 196-1.4 187.6 .8s-14.9 8.9-17.1 17.3L154.7 80.6l-62-17.5c-8.4-2.4-17.4 0-23.5 6.1s-8.5 15.1-6.1 23.5l17.5 62L18.1 170.6c-8.4 2.1-15 8.7-17.3 17.1S1 205 7.3 211l46.2 45L7.3 301C1 307-1.4 316 .8 324.4s8.9 14.9 17.3 17.1l62.5 15.8-17.5 62c-2.4 8.4 0 17.4 6.1 23.5s15.1 8.5 23.5 6.1l62-17.5 15.8 62.5c2.1 8.4 8.7 15 17.1 17.3s17.3-.2 23.4-6.4l45-46.2 45 46.2c6.1 6.2 15 8.7 23.4 6.4s14.9-8.9 17.1-17.3l15.8-62.5 62 17.5c8.4 2.4 17.4 0 23.5-6.1s8.5-15.1 6.1-23.5l-17.5-62 62.5-15.8c8.4-2.1 15-8.7 17.3-17.1s-.2-17.4-6.4-23.4l-46.2-45 46.2-45c6.2-6.1 8.7-15 6.4-23.4s-8.9-14.9-17.3-17.1l-62.5-15.8 17.5-62c2.4-8.4 0-17.4-6.1-23.5s-15.1-8.5-23.5-6.1l-62 17.5L341.4 18.1c-2.1-8.4-8.7-15-17.1-17.3S307 1 301 7.3L256 53.5 211 7.3z\"]\n};\nconst faReplyAll = {\n prefix: 'fas',\n iconName: 'reply-all',\n icon: [576, 512, [\"mail-reply-all\"], \"f122\", \"M209.4 39.5c-9.1-9.6-24.3-10-33.9-.9L33.8 173.2c-19.9 18.9-19.9 50.7 0 69.6L175.5 377.4c9.6 9.1 24.8 8.7 33.9-.9s8.7-24.8-.9-33.9L66.8 208 208.5 73.4c9.6-9.1 10-24.3 .9-33.9zM352 64c0-12.6-7.4-24.1-19-29.2s-25-3-34.4 5.4l-160 144c-6.7 6.1-10.6 14.7-10.6 23.8s3.9 17.7 10.6 23.8l160 144c9.4 8.5 22.9 10.6 34.4 5.4s19-16.6 19-29.2l0-64 32 0c53 0 96 43 96 96c0 30.4-12.8 47.9-22.2 56.7c-5.5 5.1-9.8 12-9.8 19.5c0 10.9 8.8 19.7 19.7 19.7c2.8 0 5.6-.6 8.1-1.9C494.5 467.9 576 417.3 576 304c0-97.2-78.8-176-176-176l-48 0 0-64z\"]\n};\nconst faMailReplyAll = faReplyAll;\nconst faSuitcase = {\n prefix: 'fas',\n iconName: 'suitcase',\n icon: [512, 512, [129523], \"f0f2\", \"M176 56l0 40 160 0 0-40c0-4.4-3.6-8-8-8L184 48c-4.4 0-8 3.6-8 8zM128 96l0-40c0-30.9 25.1-56 56-56L328 0c30.9 0 56 25.1 56 56l0 40 0 32 0 352-256 0 0-352 0-32zM64 96l32 0 0 384-32 0c-35.3 0-64-28.7-64-64L0 160c0-35.3 28.7-64 64-64zM448 480l-32 0 0-384 32 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64z\"]\n};\nconst faPersonSkating = {\n prefix: 'fas',\n iconName: 'person-skating',\n icon: [448, 512, [\"skating\"], \"f7c5\", \"M352 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM128 128c0-17.7 14.3-32 32-32l159.4 0c43.6 0 64.6 53.4 32.8 83.1l-74.4 69.4 60.2 60.2c9 9 14.1 21.2 14.1 33.9l0 73.4c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-66.7-77.9-77.8c-26.6-26.6-24.6-70.3 4.3-94.4l20.4-17L160 160c-17.7 0-32-14.3-32-32zM81.4 353.4l86.9-86.9c4.6 10 11 19.3 19.3 27.5l21.8 21.8-82.7 82.7c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3zm322.5 95.1c8.6 2.1 13.8 10.8 11.6 19.4l-.4 1.7c-6.2 24.9-28.6 42.4-54.3 42.4L272 512c-8.8 0-16-7.2-16-16s7.2-16 16-16l88.8 0c11 0 20.6-7.5 23.3-18.2l.4-1.7c2.1-8.6 10.8-13.8 19.4-11.6zM135.2 478.3l-6.2 3.1c-21.6 10.8-47.6 6.6-64.6-10.5L4.7 411.3c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l59.6 59.6c7.3 7.3 18.5 9.1 27.7 4.5l6.2-3.1c7.9-4 17.5-.7 21.5 7.2s.7 17.5-7.2 21.5z\"]\n};\nconst faSkating = faPersonSkating;\nconst faFilterCircleDollar = {\n prefix: 'fas',\n iconName: 'filter-circle-dollar',\n icon: [576, 512, [\"funnel-dollar\"], \"f662\", \"M3.9 22.9C10.5 8.9 24.5 0 40 0L472 0c15.5 0 29.5 8.9 36.1 22.9s4.6 30.5-5.2 42.5L396.4 195.6C316.2 212.1 256 283 256 368c0 27.4 6.3 53.4 17.5 76.5c-1.6-.8-3.2-1.8-4.7-2.9l-64-48c-8.1-6-12.8-15.5-12.8-25.6l0-79.1L9 65.3C-.7 53.4-2.8 36.8 3.9 22.9zM288 368a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm120.8-32.6c.6-.9 1.8-2.1 4.2-3.4c5.1-2.7 12.5-4.1 18.7-4c8.2 .1 17.1 1.8 26.4 4.1c8.6 2.1 17.3-3.1 19.4-11.7s-3.1-17.3-11.7-19.4c-5.6-1.4-11.6-2.7-17.9-3.7l0-9.4c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 9.5c-6.1 1.2-12.3 3.2-18 6.3c-11.8 6.3-23 18.4-21.8 37.2c1 16 11.7 25.3 21.6 30.7c8.8 4.7 19.7 7.8 28.6 10.3l1.8 .5c10.3 2.9 17.9 5.2 23.2 8.3c4.5 2.7 4.7 4.2 4.7 5.6c.1 2.4-.5 3.7-1 4.5c-.6 1-1.8 2.2-4 3.3c-4.7 2.5-11.8 3.8-18.5 3.6c-9.5-.3-18.5-3.1-29.9-6.8c-1.9-.6-3.8-1.2-5.8-1.8c-8.4-2.6-17.4 2.1-20 10.5s2.1 17.4 10.5 20c1.6 .5 3.3 1 5 1.6c0 0 0 0 0 0s0 0 0 0c7 2.3 15.1 4.8 23.7 6.6l0 11.4c0 8.8 7.2 16 16 16s16-7.2 16-16l0-10.8c6.2-1.1 12.5-3.1 18.3-6.2c12.1-6.5 22.3-18.7 21.7-36.9c-.5-16.2-10.3-26.3-20.5-32.3c-9.4-5.6-21.2-8.9-30.5-11.5l-.2 0c-10.4-2.9-18.3-5.2-23.9-8.2c-4.8-2.6-4.8-4-4.8-4.5c0 0 0 0 0-.1c-.1-1.9 .3-2.9 .8-3.6z\"]\n};\nconst faFunnelDollar = faFilterCircleDollar;\nconst faCameraRetro = {\n prefix: 'fas',\n iconName: 'camera-retro',\n icon: [512, 512, [128247], \"f083\", \"M220.6 121.2L271.1 96 448 96l0 96-114.8 0c-21.9-15.1-48.5-24-77.2-24s-55.2 8.9-77.2 24L64 192l0-64 128 0c9.9 0 19.7-2.3 28.6-6.8zM0 128L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L271.1 32c-9.9 0-19.7 2.3-28.6 6.8L192 64l-32 0 0-16c0-8.8-7.2-16-16-16L80 32c-8.8 0-16 7.2-16 16l0 16C28.7 64 0 92.7 0 128zM168 304a88 88 0 1 1 176 0 88 88 0 1 1 -176 0z\"]\n};\nconst faCircleArrowDown = {\n prefix: 'fas',\n iconName: 'circle-arrow-down',\n icon: [512, 512, [\"arrow-circle-down\"], \"f0ab\", \"M256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM127 297c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l71 71L232 120c0-13.3 10.7-24 24-24s24 10.7 24 24l0 214.1 71-71c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L273 409c-9.4 9.4-24.6 9.4-33.9 0L127 297z\"]\n};\nconst faArrowCircleDown = faCircleArrowDown;\nconst faFileImport = {\n prefix: 'fas',\n iconName: 'file-import',\n icon: [512, 512, [\"arrow-right-to-file\"], \"f56f\", \"M128 64c0-35.3 28.7-64 64-64L352 0l0 128c0 17.7 14.3 32 32 32l128 0 0 288c0 35.3-28.7 64-64 64l-256 0c-35.3 0-64-28.7-64-64l0-112 174.1 0-39 39c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9l-80-80c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l39 39L128 288l0-224zm0 224l0 48L24 336c-13.3 0-24-10.7-24-24s10.7-24 24-24l104 0zM512 128l-128 0L384 0 512 128z\"]\n};\nconst faArrowRightToFile = faFileImport;\nconst faSquareArrowUpRight = {\n prefix: 'fas',\n iconName: 'square-arrow-up-right',\n icon: [448, 512, [\"external-link-square\"], \"f14c\", \"M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM160 144c-13.3 0-24 10.7-24 24s10.7 24 24 24l94.1 0L119 327c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l135-135L288 328c0 13.3 10.7 24 24 24s24-10.7 24-24l0-160c0-13.3-10.7-24-24-24l-152 0z\"]\n};\nconst faExternalLinkSquare = faSquareArrowUpRight;\nconst faBoxOpen = {\n prefix: 'fas',\n iconName: 'box-open',\n icon: [640, 512, [], \"f49e\", \"M58.9 42.1c3-6.1 9.6-9.6 16.3-8.7L320 64 564.8 33.4c6.7-.8 13.3 2.7 16.3 8.7l41.7 83.4c9 17.9-.6 39.6-19.8 45.1L439.6 217.3c-13.9 4-28.8-1.9-36.2-14.3L320 64 236.6 203c-7.4 12.4-22.3 18.3-36.2 14.3L37.1 170.6c-19.3-5.5-28.8-27.2-19.8-45.1L58.9 42.1zM321.1 128l54.9 91.4c14.9 24.8 44.6 36.6 72.5 28.6L576 211.6l0 167c0 22-15 41.2-36.4 46.6l-204.1 51c-10.2 2.6-20.9 2.6-31 0l-204.1-51C79 419.7 64 400.5 64 378.5l0-167L191.6 248c27.8 8 57.6-3.8 72.5-28.6L318.9 128l2.2 0z\"]\n};\nconst faScroll = {\n prefix: 'fas',\n iconName: 'scroll',\n icon: [576, 512, [128220], \"f70e\", \"M0 80l0 48c0 17.7 14.3 32 32 32l16 0 48 0 0-80c0-26.5-21.5-48-48-48S0 53.5 0 80zM112 32c10 13.4 16 30 16 48l0 304c0 35.3 28.7 64 64 64s64-28.7 64-64l0-5.3c0-32.4 26.3-58.7 58.7-58.7L480 320l0-192c0-53-43-96-96-96L112 32zM464 480c61.9 0 112-50.1 112-112c0-8.8-7.2-16-16-16l-245.3 0c-14.7 0-26.7 11.9-26.7 26.7l0 5.3c0 53-43 96-96 96l176 0 96 0z\"]\n};\nconst faSpa = {\n prefix: 'fas',\n iconName: 'spa',\n icon: [576, 512, [], \"f5bb\", \"M183.1 235.3c33.7 20.7 62.9 48.1 85.8 80.5c7 9.9 13.4 20.3 19.1 31c5.7-10.8 12.1-21.1 19.1-31c22.9-32.4 52.1-59.8 85.8-80.5C437.6 207.8 490.1 192 546 192l9.9 0c11.1 0 20.1 9 20.1 20.1C576 360.1 456.1 480 308.1 480L288 480l-20.1 0C119.9 480 0 360.1 0 212.1C0 201 9 192 20.1 192l9.9 0c55.9 0 108.4 15.8 153.1 43.3zM301.5 37.6c15.7 16.9 61.1 71.8 84.4 164.6c-38 21.6-71.4 50.8-97.9 85.6c-26.5-34.8-59.9-63.9-97.9-85.6c23.2-92.8 68.6-147.7 84.4-164.6C278 33.9 282.9 32 288 32s10 1.9 13.5 5.6z\"]\n};\nconst faLocationPinLock = {\n prefix: 'fas',\n iconName: 'location-pin-lock',\n icon: [512, 512, [], \"e51f\", \"M215.7 499.2c11-13.8 25.1-31.7 40.3-52.3l0-94.8c0-23.7 12.9-44.4 32-55.4l0-24.6c0-55.6 40.5-101.7 93.6-110.5C367 70 287.7 0 192 0C86 0 0 86 0 192c0 87.4 117 243 168.3 307.2c12.3 15.3 35.1 15.3 47.4 0zM192 128a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM400 240c17.7 0 32 14.3 32 32l0 48-64 0 0-48c0-17.7 14.3-32 32-32zm-80 32l0 48c-17.7 0-32 14.3-32 32l0 128c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"]\n};\nconst faPause = {\n prefix: 'fas',\n iconName: 'pause',\n icon: [320, 512, [9208], \"f04c\", \"M48 64C21.5 64 0 85.5 0 112L0 400c0 26.5 21.5 48 48 48l32 0c26.5 0 48-21.5 48-48l0-288c0-26.5-21.5-48-48-48L48 64zm192 0c-26.5 0-48 21.5-48 48l0 288c0 26.5 21.5 48 48 48l32 0c26.5 0 48-21.5 48-48l0-288c0-26.5-21.5-48-48-48l-32 0z\"]\n};\nconst faHillAvalanche = {\n prefix: 'fas',\n iconName: 'hill-avalanche',\n icon: [576, 512, [], \"e507\", \"M439.7 401.9c34.2 23.1 81.1 19.5 111.4-10.8c34.4-34.4 34.4-90.1 0-124.4c-27.8-27.8-69.5-33.1-102.6-16c-11.8 6.1-16.4 20.6-10.3 32.3s20.6 16.4 32.3 10.3c15.1-7.8 34-5.3 46.6 7.3c15.6 15.6 15.6 40.9 0 56.6s-40.9 15.6-56.6 0l-81.7-81.7C401.2 261.3 416 236.4 416 208c0-33.9-21.1-62.9-50.9-74.5c1.9-6.8 2.9-14 2.9-21.5c0-44.2-35.8-80-80-80c-27.3 0-51.5 13.7-65.9 34.6C216.3 46.6 197.9 32 176 32c-26.5 0-48 21.5-48 48c0 4 .5 7.9 1.4 11.6L439.7 401.9zM480 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM68.3 87C43.1 61.8 0 79.7 0 115.3L0 432c0 44.2 35.8 80 80 80l316.7 0c35.6 0 53.5-43.1 28.3-68.3L68.3 87z\"]\n};\nconst faTemperatureEmpty = {\n prefix: 'fas',\n iconName: 'temperature-empty',\n icon: [320, 512, [\"temperature-0\", \"thermometer-0\", \"thermometer-empty\"], \"f2cb\", \"M112 112c0-26.5 21.5-48 48-48s48 21.5 48 48l0 164.5c0 17.3 7.1 31.9 15.3 42.5C233.8 332.6 240 349.5 240 368c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-18.5 6.2-35.4 16.7-48.9c8.2-10.6 15.3-25.2 15.3-42.5L112 112zM160 0C98.1 0 48 50.2 48 112l0 164.4c0 .1-.1 .3-.2 .6c-.2 .6-.8 1.6-1.7 2.8C27.2 304.2 16 334.8 16 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.2-11.2-63.8-30.1-88.1c-.9-1.2-1.5-2.2-1.7-2.8c-.1-.3-.2-.5-.2-.6L272 112C272 50.2 221.9 0 160 0zm0 416a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"]\n};\nconst faTemperature0 = faTemperatureEmpty;\nconst faThermometer0 = faTemperatureEmpty;\nconst faThermometerEmpty = faTemperatureEmpty;\nconst faBomb = {\n prefix: 'fas',\n iconName: 'bomb',\n icon: [512, 512, [128163], \"f1e2\", \"M459.1 52.4L442.6 6.5C440.7 2.6 436.5 0 432.1 0s-8.5 2.6-10.4 6.5L405.2 52.4l-46 16.8c-4.3 1.6-7.3 5.9-7.2 10.4c0 4.5 3 8.7 7.2 10.2l45.7 16.8 16.8 45.8c1.5 4.4 5.8 7.5 10.4 7.5s8.9-3.1 10.4-7.5l16.5-45.8 45.7-16.8c4.2-1.5 7.2-5.7 7.2-10.2c0-4.6-3-8.9-7.2-10.4L459.1 52.4zm-132.4 53c-12.5-12.5-32.8-12.5-45.3 0l-2.9 2.9C256.5 100.3 232.7 96 208 96C93.1 96 0 189.1 0 304S93.1 512 208 512s208-93.1 208-208c0-24.7-4.3-48.5-12.2-70.5l2.9-2.9c12.5-12.5 12.5-32.8 0-45.3l-80-80zM200 192c-57.4 0-104 46.6-104 104l0 8c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-8c0-75.1 60.9-136 136-136l8 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-8 0z\"]\n};\nconst faRegistered = {\n prefix: 'fas',\n iconName: 'registered',\n icon: [512, 512, [174], \"f25d\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM160 152c0-13.3 10.7-24 24-24l88 0c44.2 0 80 35.8 80 80c0 28-14.4 52.7-36.3 67l34.1 75.1c5.5 12.1 .1 26.3-11.9 31.8s-26.3 .1-31.8-11.9L268.9 288 208 288l0 72c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-96 0-112zm48 88l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0 64z\"]\n};\nconst faAddressCard = {\n prefix: 'fas',\n iconName: 'address-card',\n icon: [576, 512, [62140, \"contact-card\", \"vcard\"], \"f2bb\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm80 256l64 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16L80 384c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm-32-96a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zm256-32l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nconst faContactCard = faAddressCard;\nconst faVcard = faAddressCard;\nconst faScaleUnbalancedFlip = {\n prefix: 'fas',\n iconName: 'scale-unbalanced-flip',\n icon: [640, 512, [\"balance-scale-right\"], \"f516\", \"M117.9 62.4c-16.8-5.6-25.8-23.7-20.2-40.5s23.7-25.8 40.5-20.2l113 37.7C265 15.8 290.7 0 320 0c44.2 0 80 35.8 80 80c0 3-.2 5.9-.5 8.8l122.6 40.9c16.8 5.6 25.8 23.7 20.2 40.5s-23.7 25.8-40.5 20.2L366.4 145.2c-4.5 3.2-9.3 5.9-14.4 8.2L352 480c0 17.7-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0 0-294.7c-21-9.2-37.2-27-44.2-49l-125.9-42zM200.4 288L128 163.8 55.6 288l144.9 0zM128 384C65.1 384 12.8 350 2 305.1c-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1C243.2 350 190.9 384 128 384zm382.8-92.2L438.4 416l144.9 0L510.8 291.8zm126 141.3C626 478 573.7 512 510.8 512s-115.2-34-126-78.9c-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1z\"]\n};\nconst faBalanceScaleRight = faScaleUnbalancedFlip;\nconst faSubscript = {\n prefix: 'fas',\n iconName: 'subscript',\n icon: [512, 512, [], \"f12c\", \"M32 64C14.3 64 0 78.3 0 96s14.3 32 32 32l15.3 0 89.6 128L47.3 384 32 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0c10.4 0 20.2-5.1 26.2-13.6L176 311.8l85.8 122.6c6 8.6 15.8 13.6 26.2 13.6l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-15.3 0L215.1 256l89.6-128 15.3 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0c-10.4 0-20.2 5.1-26.2 13.6L176 200.2 90.2 77.6C84.2 69.1 74.4 64 64 64L32 64zM480 320c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4l-32 16c-15.8 7.9-22.2 27.1-14.3 42.9C393 361.5 404.3 368 416 368l0 80c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-128z\"]\n};\nconst faDiamondTurnRight = {\n prefix: 'fas',\n iconName: 'diamond-turn-right',\n icon: [512, 512, [\"directions\"], \"f5eb\", \"M227.7 11.7c15.6-15.6 40.9-15.6 56.6 0l216 216c15.6 15.6 15.6 40.9 0 56.6l-216 216c-15.6 15.6-40.9 15.6-56.6 0l-216-216c-15.6-15.6-15.6-40.9 0-56.6l216-216zm87.6 137c-4.6-4.6-11.5-5.9-17.4-3.5s-9.9 8.3-9.9 14.8l0 56-64 0c-35.3 0-64 28.7-64 64l0 48c0 13.3 10.7 24 24 24s24-10.7 24-24l0-48c0-8.8 7.2-16 16-16l64 0 0 56c0 6.5 3.9 12.3 9.9 14.8s12.9 1.1 17.4-3.5l80-80c6.2-6.2 6.2-16.4 0-22.6l-80-80z\"]\n};\nconst faDirections = faDiamondTurnRight;\nconst faBurst = {\n prefix: 'fas',\n iconName: 'burst',\n icon: [512, 512, [], \"e4dc\", \"M37.6 4.2C28-2.3 15.2-1.1 7 7s-9.4 21-2.8 30.5l112 163.3L16.6 233.2C6.7 236.4 0 245.6 0 256s6.7 19.6 16.6 22.8l103.1 33.4L66.8 412.8c-4.9 9.3-3.2 20.7 4.3 28.1s18.8 9.2 28.1 4.3l100.6-52.9 33.4 103.1c3.2 9.9 12.4 16.6 22.8 16.6s19.6-6.7 22.8-16.6l33.4-103.1 100.6 52.9c9.3 4.9 20.7 3.2 28.1-4.3s9.2-18.8 4.3-28.1L392.3 312.2l103.1-33.4c9.9-3.2 16.6-12.4 16.6-22.8s-6.7-19.6-16.6-22.8L388.9 198.7l25.7-70.4c3.2-8.8 1-18.6-5.6-25.2s-16.4-8.8-25.2-5.6l-70.4 25.7L278.8 16.6C275.6 6.7 266.4 0 256 0s-19.6 6.7-22.8 16.6l-32.3 99.6L37.6 4.2z\"]\n};\nconst faHouseLaptop = {\n prefix: 'fas',\n iconName: 'house-laptop',\n icon: [640, 512, [\"laptop-house\"], \"e066\", \"M218.3 8.5c12.3-11.3 31.2-11.3 43.4 0l208 192c6.7 6.2 10.3 14.8 10.3 23.5l-144 0c-19.1 0-36.3 8.4-48 21.7l0-37.7c0-8.8-7.2-16-16-16l-64 0c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l64 0 0 128-160 0c-26.5 0-48-21.5-48-48l0-112-32 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8.1-35.2l208-192zM352 304l0 144 192 0 0-144-192 0zm-48-16c0-17.7 14.3-32 32-32l224 0c17.7 0 32 14.3 32 32l0 160 32 0c8.8 0 16 7.2 16 16c0 26.5-21.5 48-48 48l-48 0-192 0-48 0c-26.5 0-48-21.5-48-48c0-8.8 7.2-16 16-16l32 0 0-160z\"]\n};\nconst faLaptopHouse = faHouseLaptop;\nconst faFaceTired = {\n prefix: 'fas',\n iconName: 'face-tired',\n icon: [512, 512, [128555, \"tired\"], \"f5c8\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM164.7 328.7c22-22 53.9-40.7 91.3-40.7s69.3 18.7 91.3 40.7c11.1 11.1 20.1 23.4 26.4 35.4c6.2 11.7 10.3 24.4 10.3 35.9c0 5.2-2.6 10.2-6.9 13.2s-9.8 3.7-14.7 1.8l-20.5-7.7c-26.9-10.1-55.5-15.3-84.3-15.3l-3.2 0c-28.8 0-57.3 5.2-84.3 15.3L149.6 415c-4.9 1.8-10.4 1.2-14.7-1.8s-6.9-7.9-6.9-13.2c0-11.6 4.2-24.2 10.3-35.9c6.3-12 15.3-24.3 26.4-35.4zm-31.2-182l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 157.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z\"]\n};\nconst faTired = faFaceTired;\nconst faMoneyBills = {\n prefix: 'fas',\n iconName: 'money-bills',\n icon: [640, 512, [], \"e1f3\", \"M96 96l0 224c0 35.3 28.7 64 64 64l416 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L160 32c-35.3 0-64 28.7-64 64zm64 160c35.3 0 64 28.7 64 64l-64 0 0-64zM224 96c0 35.3-28.7 64-64 64l0-64 64 0zM576 256l0 64-64 0c0-35.3 28.7-64 64-64zM512 96l64 0 0 64c-35.3 0-64-28.7-64-64zM288 208a80 80 0 1 1 160 0 80 80 0 1 1 -160 0zM48 120c0-13.3-10.7-24-24-24S0 106.7 0 120L0 360c0 66.3 53.7 120 120 120l400 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-400 0c-39.8 0-72-32.2-72-72l0-240z\"]\n};\nconst faSmog = {\n prefix: 'fas',\n iconName: 'smog',\n icon: [640, 512, [], \"f75f\", \"M32 144c0 79.5 64.5 144 144 144l123.3 0c22.6 19.9 52.2 32 84.7 32s62.1-12.1 84.7-32l27.3 0c61.9 0 112-50.1 112-112s-50.1-112-112-112c-10.7 0-21 1.5-30.8 4.3C443.8 27.7 401.1 0 352 0c-32.6 0-62.4 12.2-85.1 32.3C242.1 12.1 210.5 0 176 0C96.5 0 32 64.5 32 144zM616 368l-336 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l336 0c13.3 0 24-10.7 24-24s-10.7-24-24-24zm-64 96l-112 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24zm-192 0L24 464c-13.3 0-24 10.7-24 24s10.7 24 24 24l336 0c13.3 0 24-10.7 24-24s-10.7-24-24-24zM224 392c0-13.3-10.7-24-24-24L96 368c-13.3 0-24 10.7-24 24s10.7 24 24 24l104 0c13.3 0 24-10.7 24-24z\"]\n};\nconst faCrutch = {\n prefix: 'fas',\n iconName: 'crutch',\n icon: [512, 512, [], \"f7f7\", \"M297.4 9.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0zm-96 144l-34.8 34.8c-12.9 12.9-21.9 29.2-25.8 47.1L116.8 342.9c-1.3 5.9-4.3 11.4-8.6 15.7L9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l98.8-98.8c4.3-4.3 9.7-7.3 15.7-8.6l107.6-23.9c17.8-4 34.1-12.9 47.1-25.8l34.7-34.7c0 0 .1-.1 .1-.1s.1-.1 .1-.1l74.6-74.6-45.3-45.3L336 242.7 269.3 176l52.1-52.1L276.1 78.6l-74.7 74.7zM224 221.3L290.7 288l-12.2 12.2c-4.3 4.3-9.7 7.3-15.7 8.6l-76.7 17 17-76.7c1.3-5.9 4.3-11.4 8.6-15.7L224 221.3z\"]\n};\nconst faFontAwesome = {\n prefix: 'fas',\n iconName: 'font-awesome',\n icon: [512, 512, [62501, 62694, \"font-awesome-flag\", \"font-awesome-logo-full\"], \"f2b4\", \"M91.7 96C106.3 86.8 116 70.5 116 52C116 23.3 92.7 0 64 0S12 23.3 12 52c0 16.7 7.8 31.5 20 41l0 3 0 352 0 64 64 0 0-64 373.6 0c14.6 0 26.4-11.8 26.4-26.4c0-3.7-.8-7.3-2.3-10.7L432 272l61.7-138.9c1.5-3.4 2.3-7 2.3-10.7c0-14.6-11.8-26.4-26.4-26.4L91.7 96z\"]\n};\nconst faFontAwesomeFlag = faFontAwesome;\nconst faFontAwesomeLogoFull = faFontAwesome;\nconst faCloudArrowUp = {\n prefix: 'fas',\n iconName: 'cloud-arrow-up',\n icon: [640, 512, [62338, \"cloud-upload\", \"cloud-upload-alt\"], \"f0ee\", \"M144 480C64.5 480 0 415.5 0 336c0-62.8 40.2-116.2 96.2-135.9c-.1-2.7-.2-5.4-.2-8.1c0-88.4 71.6-160 160-160c59.3 0 111 32.2 138.7 80.2C409.9 102 428.3 96 448 96c53 0 96 43 96 96c0 12.2-2.3 23.8-6.4 34.6C596 238.4 640 290.1 640 352c0 70.7-57.3 128-128 128l-368 0zm79-217c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l39-39L296 392c0 13.3 10.7 24 24 24s24-10.7 24-24l0-134.1 39 39c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-80-80c-9.4-9.4-24.6-9.4-33.9 0l-80 80z\"]\n};\nconst faCloudUpload = faCloudArrowUp;\nconst faCloudUploadAlt = faCloudArrowUp;\nconst faPalette = {\n prefix: 'fas',\n iconName: 'palette',\n icon: [512, 512, [127912], \"f53f\", \"M512 256c0 .9 0 1.8 0 2.7c-.4 36.5-33.6 61.3-70.1 61.3L344 320c-26.5 0-48 21.5-48 48c0 3.4 .4 6.7 1 9.9c2.1 10.2 6.5 20 10.8 29.9c6.1 13.8 12.1 27.5 12.1 42c0 31.8-21.6 60.7-53.4 62c-3.5 .1-7 .2-10.6 .2C114.6 512 0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM128 288a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-96a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nconst faArrowsTurnRight = {\n prefix: 'fas',\n iconName: 'arrows-turn-right',\n icon: [448, 512, [], \"e4c0\", \"M297.4 9.4c12.5-12.5 32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3l-96 96c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L338.7 160 128 160c-35.3 0-64 28.7-64 64l0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32C0 153.3 57.3 96 128 96l210.7 0L297.4 54.6c-12.5-12.5-12.5-32.8 0-45.3zm-96 256c12.5-12.5 32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3l-96 96c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 416 96 416c-17.7 0-32 14.3-32 32l0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32c0-53 43-96 96-96l146.7 0-41.4-41.4c-12.5-12.5-12.5-32.8 0-45.3z\"]\n};\nconst faVest = {\n prefix: 'fas',\n iconName: 'vest',\n icon: [448, 512, [], \"e085\", \"M207.1 237.4L151.2 69.7C168.6 79.7 192.6 88 224 88s55.4-8.3 72.8-18.3L226.5 280.6c-1.6 4.9-2.5 10-2.5 15.2L224 464c0 26.5 21.5 48 48 48l128 0c26.5 0 48-21.5 48-48l0-193.5c0-9.5-2.8-18.7-8.1-26.6l-47.9-71.8c-5.3-7.9-8.1-17.1-8.1-26.6l0-17.5 0-73.7 0-6.3c0-26.5-21.5-48-48-48l-4.5 0c-.2 0-.4 0-.6 0c-.4 0-.8 0-1.2 0C311 0 295.7 9.7 285.7 18.8C276.4 27.2 257.2 40 224 40s-52.4-12.8-61.7-21.2C152.3 9.7 137 0 118.3 0c-.4 0-.8 0-1.2 0c-.2 0-.4 0-.6 0L112 0C85.5 0 64 21.5 64 48l0 6.3L64 128l0 17.5c0 9.5-2.8 18.7-8.1 26.6L8.1 243.9C2.8 251.8 0 261.1 0 270.5L0 464c0 26.5 21.5 48 48 48l128 0c9.9 0 19-3 26.7-8.1C195.9 492.2 192 478.5 192 464l0-168.2c0-8.6 1.4-17.1 4.1-25.3l11-33.1zM347.3 356.7l48 48c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-48-48c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0zm-294.6 48l48-48c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6l-48 48c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6z\"]\n};\nconst faFerry = {\n prefix: 'fas',\n iconName: 'ferry',\n icon: [576, 512, [], \"e4ea\", \"M224 0L352 0c17.7 0 32 14.3 32 32l75.1 0c20.6 0 31.6 24.3 18.1 39.8L456 96 120 96 98.8 71.8C85.3 56.3 96.3 32 116.9 32L192 32c0-17.7 14.3-32 32-32zM96 128l384 0c17.7 0 32 14.3 32 32l0 123.5c0 13.3-4.2 26.3-11.9 37.2l-51.4 71.9c-1.9 1.1-3.7 2.2-5.5 3.5c-15.5 10.7-34 18-51 19.9l-16.5 0c-17.1-1.8-35-9-50.8-19.9c-22.1-15.5-51.6-15.5-73.7 0c-14.8 10.2-32.5 18-50.6 19.9l-16.6 0c-17-1.8-35.6-9.2-51-19.9c-1.8-1.3-3.7-2.4-5.6-3.5L75.9 320.7C68.2 309.8 64 296.8 64 283.5L64 160c0-17.7 14.3-32 32-32zm32 64l0 96 320 0 0-96-320 0zM306.5 421.9C329 437.4 356.5 448 384 448c26.9 0 55.3-10.8 77.4-26.1c0 0 0 0 0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 501.7 417 512 384 512c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7c0 0 0 0 0 0C136.7 437.2 165.1 448 192 448c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"]\n};\nconst faArrowsDownToPeople = {\n prefix: 'fas',\n iconName: 'arrows-down-to-people',\n icon: [640, 512, [], \"e4b9\", \"M144 0c-13.3 0-24 10.7-24 24l0 118.1L97 119c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0l64-64c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-23 23L168 24c0-13.3-10.7-24-24-24zM360 200a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zM184 296a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zm312 40a40 40 0 1 0 0-80 40 40 0 1 0 0 80zM200 441.5l26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-36.3-67.5c1.7-1.7 3.2-3.6 4.3-5.8L264 345.5l0 54.5c0 17.7 14.3 32 32 32l48 0c17.7 0 32-14.3 32-32l0-54.5 26.9 49.9c1.2 2.2 2.6 4.1 4.3 5.8l-36.3 67.5c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L440 441.5l0 38.5c0 17.7 14.3 32 32 32l48 0c17.7 0 32-14.3 32-32l0-38.5 26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-37.9-70.3c-15.3-28.5-45.1-46.3-77.5-46.3l-19.5 0c-16.3 0-31.9 4.5-45.4 12.6l-33.6-62.3c-15.3-28.5-45.1-46.3-77.5-46.3l-19.5 0c-32.4 0-62.1 17.8-77.5 46.3l-33.6 62.3c-13.5-8.1-29.1-12.6-45.4-12.6l-19.5 0c-32.4 0-62.1 17.8-77.5 46.3L18.9 468.6c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L88 441.5 88 480c0 17.7 14.3 32 32 32l48 0c17.7 0 32-14.3 32-32l0-38.5zM415 153l64 64c9.4 9.4 24.6 9.4 33.9 0l64-64c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-23 23L520 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 118.1-23-23c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9z\"]\n};\nconst faSeedling = {\n prefix: 'fas',\n iconName: 'seedling',\n icon: [512, 512, [127793, \"sprout\"], \"f4d8\", \"M512 32c0 113.6-84.6 207.5-194.2 222c-7.1-53.4-30.6-101.6-65.3-139.3C290.8 46.3 364 0 448 0l32 0c17.7 0 32 14.3 32 32zM0 96C0 78.3 14.3 64 32 64l32 0c123.7 0 224 100.3 224 224l0 32 0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160C100.3 320 0 219.7 0 96z\"]\n};\nconst faSprout = faSeedling;\nconst faLeftRight = {\n prefix: 'fas',\n iconName: 'left-right',\n icon: [512, 512, [8596, \"arrows-alt-h\"], \"f337\", \"M504.3 273.6c4.9-4.5 7.7-10.9 7.7-17.6s-2.8-13-7.7-17.6l-112-104c-7-6.5-17.2-8.2-25.9-4.4s-14.4 12.5-14.4 22l0 56-192 0 0-56c0-9.5-5.7-18.2-14.4-22s-18.9-2.1-25.9 4.4l-112 104C2.8 243 0 249.3 0 256s2.8 13 7.7 17.6l112 104c7 6.5 17.2 8.2 25.9 4.4s14.4-12.5 14.4-22l0-56 192 0 0 56c0 9.5 5.7 18.2 14.4 22s18.9 2.1 25.9-4.4l112-104z\"]\n};\nconst faArrowsAltH = faLeftRight;\nconst faBoxesPacking = {\n prefix: 'fas',\n iconName: 'boxes-packing',\n icon: [640, 512, [], \"e4c7\", \"M256 48c0-26.5 21.5-48 48-48L592 0c26.5 0 48 21.5 48 48l0 416c0 26.5-21.5 48-48 48l-210.7 0c1.8-5 2.7-10.4 2.7-16l0-242.7c18.6-6.6 32-24.4 32-45.3l0-32c0-26.5-21.5-48-48-48l-112 0 0-80zM571.3 347.3c6.2-6.2 6.2-16.4 0-22.6l-64-64c-6.2-6.2-16.4-6.2-22.6 0l-64 64c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L480 310.6 480 432c0 8.8 7.2 16 16 16s16-7.2 16-16l0-121.4 36.7 36.7c6.2 6.2 16.4 6.2 22.6 0zM0 176c0-8.8 7.2-16 16-16l352 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16L16 224c-8.8 0-16-7.2-16-16l0-32zm352 80l0 224c0 17.7-14.3 32-32 32L64 512c-17.7 0-32-14.3-32-32l0-224 320 0zM144 320c-8.8 0-16 7.2-16 16s7.2 16 16 16l96 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-96 0z\"]\n};\nconst faCircleArrowLeft = {\n prefix: 'fas',\n iconName: 'circle-arrow-left',\n icon: [512, 512, [\"arrow-circle-left\"], \"f0a8\", \"M512 256A256 256 0 1 0 0 256a256 256 0 1 0 512 0zM215 127c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-71 71L392 232c13.3 0 24 10.7 24 24s-10.7 24-24 24l-214.1 0 71 71c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L103 273c-9.4-9.4-9.4-24.6 0-33.9L215 127z\"]\n};\nconst faArrowCircleLeft = faCircleArrowLeft;\nconst faGroupArrowsRotate = {\n prefix: 'fas',\n iconName: 'group-arrows-rotate',\n icon: [512, 512, [], \"e4f6\", \"M201.1 71.9c16.9-5 26.6-22.9 21.5-39.8s-22.9-26.6-39.8-21.5c-21.5 6.4-41.8 15.5-60.6 27C114.3 34 105.4 32 96 32C60.7 32 32 60.7 32 96c0 9.4 2 18.3 5.6 26.3c-11.5 18.7-20.6 39-27 60.6c-5 16.9 4.6 34.8 21.5 39.8s34.8-4.6 39.8-21.5c4.3-14.6 10.4-28.5 17.9-41.4c2 .2 4.1 .3 6.1 .3c35.3 0 64-28.7 64-64c0-2.1-.1-4.1-.3-6.1c12.9-7.5 26.8-13.6 41.4-17.9zm128-61.3c-16.9-5-34.8 4.6-39.8 21.5s4.6 34.8 21.5 39.8c14.6 4.3 28.5 10.4 41.4 17.9c-.2 2-.3 4.1-.3 6.1c0 35.3 28.7 64 64 64c2.1 0 4.1-.1 6.2-.3c7.5 12.9 13.6 26.8 17.9 41.4c5 16.9 22.9 26.6 39.8 21.5s26.6-22.9 21.5-39.8c-6.4-21.5-15.5-41.8-27-60.6c3.6-8 5.6-16.9 5.6-26.3c0-35.3-28.7-64-64-64c-9.4 0-18.3 2-26.3 5.6c-18.7-11.5-39-20.6-60.6-27zM71.9 310.9c-5-16.9-22.9-26.6-39.8-21.5s-26.6 22.9-21.5 39.8c6.4 21.5 15.5 41.8 27 60.6C34 397.7 32 406.6 32 416c0 35.3 28.7 64 64 64c9.4 0 18.3-2 26.3-5.6c18.7 11.5 39 20.6 60.6 27c16.9 5 34.8-4.6 39.8-21.5s-4.6-34.8-21.5-39.8c-14.6-4.3-28.5-10.4-41.4-17.9c.2-2 .3-4.1 .3-6.2c0-35.3-28.7-64-64-64c-2.1 0-4.1 .1-6.2 .3c-7.5-12.9-13.6-26.8-17.9-41.4zm429.4 18.3c5-16.9-4.6-34.8-21.5-39.8s-34.8 4.6-39.8 21.5c-4.3 14.6-10.4 28.5-17.9 41.4c-2-.2-4.1-.3-6.2-.3c-35.3 0-64 28.7-64 64c0 2.1 .1 4.1 .3 6.2c-12.9 7.5-26.8 13.6-41.4 17.9c-16.9 5-26.6 22.9-21.5 39.8s22.9 26.6 39.8 21.5c21.5-6.4 41.8-15.5 60.6-27c8 3.6 16.9 5.6 26.3 5.6c35.3 0 64-28.7 64-64c0-9.4-2-18.3-5.6-26.3c11.5-18.7 20.6-39 27-60.6zM192.8 256.8c0-15.6 5.6-29.9 14.9-41.1L223 231c6.6 6.6 17.8 1.9 17.8-7.4l0-60.5c0-5.7-4.7-10.4-10.4-10.4l-60.5 0c-9.3 0-13.9 11.2-7.4 17.8l11.2 11.2c-17.9 19.8-28.9 46.2-28.9 75.1c0 43.6 24.9 81.3 61.1 99.8c11.8 6 26.3 1.4 32.3-10.4s1.4-26.3-10.4-32.3c-20.8-10.6-34.9-32.2-34.9-57zm93.1-58.6c20.8 10.6 34.9 32.2 34.9 57c0 15.6-5.6 29.9-14.9 41.1L290.6 281c-6.6-6.6-17.8-1.9-17.8 7.4l0 60.5c0 5.7 4.7 10.4 10.4 10.4l60.5 0c9.3 0 13.9-11.2 7.4-17.8l-11.2-11.2c17.9-19.8 28.9-46.2 28.9-75.1c0-43.6-24.9-81.3-61.1-99.8c-11.8-6-26.3-1.4-32.3 10.4s-1.4 26.3 10.4 32.3z\"]\n};\nconst faBowlFood = {\n prefix: 'fas',\n iconName: 'bowl-food',\n icon: [512, 512, [], \"e4c6\", \"M0 192c0-35.3 28.7-64 64-64c.5 0 1.1 0 1.6 0C73 91.5 105.3 64 144 64c15 0 29 4.1 40.9 11.2C198.2 49.6 225.1 32 256 32s57.8 17.6 71.1 43.2C339 68.1 353 64 368 64c38.7 0 71 27.5 78.4 64c.5 0 1.1 0 1.6 0c35.3 0 64 28.7 64 64c0 11.7-3.1 22.6-8.6 32L8.6 224C3.1 214.6 0 203.7 0 192zm0 91.4C0 268.3 12.3 256 27.4 256l457.1 0c15.1 0 27.4 12.3 27.4 27.4c0 70.5-44.4 130.7-106.7 154.1L403.5 452c-2 16-15.6 28-31.8 28l-231.5 0c-16.1 0-29.8-12-31.8-28l-1.8-14.4C44.4 414.1 0 353.9 0 283.4z\"]\n};\nconst faCandyCane = {\n prefix: 'fas',\n iconName: 'candy-cane',\n icon: [512, 512, [], \"f786\", \"M348.8 131.5c3.7-2.3 7.9-3.5 12.2-3.5c12.7 0 23 10.3 23 23l0 5.6c0 9.9-5.1 19.1-13.5 24.3L30.1 393.7C.1 412.5-9 451.9 9.7 481.9s58.2 39.1 88.2 20.4L438.4 289.5c45.8-28.6 73.6-78.8 73.6-132.8l0-5.6C512 67.6 444.4 0 361 0c-28.3 0-56 8-80.1 23L254.1 39.7c-30 18.7-39.1 58.2-20.4 88.2s58.2 39.1 88.2 20.4l26.8-16.8zM298.4 49.8c9.2-5.7 19.1-10.1 29.4-13.1L348 97.5c-5.7 1.4-11.2 3.7-16.3 6.8l-12.6 7.9L298.4 49.8zm88.5 52.7l46.2-46.2c8.5 6.5 16.1 14.1 22.6 22.6l-46.2 46.2c-5.1-9.6-13-17.5-22.6-22.6zm28.9 59.3l61.6 20.5c-2.2 10.5-5.8 20.7-10.5 30.2l-62-20.7c6.2-8.8 10.1-19.1 11-30.1zm-86.1 82.5l60.4 37.7-30.2 18.9-60.4-37.7 30.2-18.9zm-107.2 67l60.4 37.7-30.2 18.9-60.4-37.7 30.2-18.9zM119.3 375.7l60.4 37.7-30.2 18.9L89.1 394.6l30.2-18.9z\"]\n};\nconst faArrowDownWideShort = {\n prefix: 'fas',\n iconName: 'arrow-down-wide-short',\n icon: [576, 512, [\"sort-amount-asc\", \"sort-amount-down\"], \"f160\", \"M151.6 469.6C145.5 476.2 137 480 128 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L96 365.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 301.7 32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-160 0zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L320 96z\"]\n};\nconst faSortAmountAsc = faArrowDownWideShort;\nconst faSortAmountDown = faArrowDownWideShort;\nconst faCloudBolt = {\n prefix: 'fas',\n iconName: 'cloud-bolt',\n icon: [512, 512, [127785, \"thunderstorm\"], \"f76c\", \"M0 224c0 53 43 96 96 96l47.2 0L290 202.5c17.6-14.1 42.6-14 60.2 .2s22.8 38.6 12.8 58.8L333.7 320l18.3 0 64 0c53 0 96-43 96-96s-43-96-96-96c-.5 0-1.1 0-1.6 0c1.1-5.2 1.6-10.5 1.6-16c0-44.2-35.8-80-80-80c-24.3 0-46.1 10.9-60.8 28C256.5 24.3 219.1 0 176 0C114.1 0 64 50.1 64 112c0 7.1 .7 14.1 1.9 20.8C27.6 145.4 0 181.5 0 224zm330.1 3.6c-5.8-4.7-14.2-4.7-20.1-.1l-160 128c-5.3 4.2-7.4 11.4-5.1 17.8s8.3 10.7 15.1 10.7l70.1 0L177.7 488.8c-3.4 6.7-1.6 14.9 4.3 19.6s14.2 4.7 20.1 .1l160-128c5.3-4.2 7.4-11.4 5.1-17.8s-8.3-10.7-15.1-10.7l-70.1 0 52.4-104.8c3.4-6.7 1.6-14.9-4.2-19.6z\"]\n};\nconst faThunderstorm = faCloudBolt;\nconst faTextSlash = {\n prefix: 'fas',\n iconName: 'text-slash',\n icon: [640, 512, [\"remove-format\"], \"f87d\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L355.7 253.5 400.2 96 503 96 497 120.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l11-44.1C577.6 61.3 554.7 32 523.5 32L376.1 32l-.3 0L204.5 32c-22 0-41.2 15-46.6 36.4l-6.3 25.2L38.8 5.1zm168 131.7c.1-.3 .2-.7 .3-1L217 96l116.7 0L301.3 210.8l-94.5-74.1zM243.3 416L192 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-42.2 0 17.6-62.1L272.9 311 243.3 416z\"]\n};\nconst faRemoveFormat = faTextSlash;\nconst faFaceSmileWink = {\n prefix: 'fas',\n iconName: 'face-smile-wink',\n icon: [512, 512, [128521, \"smile-wink\"], \"f4da\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM164.1 325.5C182 346.2 212.6 368 256 368s74-21.8 91.9-42.5c5.8-6.7 15.9-7.4 22.6-1.6s7.4 15.9 1.6 22.6C349.8 372.1 311.1 400 256 400s-93.8-27.9-116.1-53.5c-5.8-6.7-5.1-16.8 1.6-22.6s16.8-5.1 22.6 1.6zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm156.4 25.6c-5.3 7.1-15.3 8.5-22.4 3.2s-8.5-15.3-3.2-22.4c30.4-40.5 91.2-40.5 121.6 0c5.3 7.1 3.9 17.1-3.2 22.4s-17.1 3.9-22.4-3.2c-17.6-23.5-52.8-23.5-70.4 0z\"]\n};\nconst faSmileWink = faFaceSmileWink;\nconst faFileWord = {\n prefix: 'fas',\n iconName: 'file-word',\n icon: [384, 512, [], \"f1c2\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM111 257.1l26.8 89.2 31.6-90.3c3.4-9.6 12.5-16.1 22.7-16.1s19.3 6.4 22.7 16.1l31.6 90.3L273 257.1c3.8-12.7 17.2-19.9 29.9-16.1s19.9 17.2 16.1 29.9l-48 160c-3 10-12 16.9-22.4 17.1s-19.8-6.2-23.2-16.1L192 336.6l-33.3 95.3c-3.4 9.8-12.8 16.3-23.2 16.1s-19.5-7.1-22.4-17.1l-48-160c-3.8-12.7 3.4-26.1 16.1-29.9s26.1 3.4 29.9 16.1z\"]\n};\nconst faFilePowerpoint = {\n prefix: 'fas',\n iconName: 'file-powerpoint',\n icon: [384, 512, [], \"f1c4\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM136 240l68 0c42 0 76 34 76 76s-34 76-76 76l-44 0 0 32c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-56 0-104c0-13.3 10.7-24 24-24zm68 104c15.5 0 28-12.5 28-28s-12.5-28-28-28l-44 0 0 56 44 0z\"]\n};\nconst faArrowsLeftRight = {\n prefix: 'fas',\n iconName: 'arrows-left-right',\n icon: [512, 512, [\"arrows-h\"], \"f07e\", \"M406.6 374.6l96-96c12.5-12.5 12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224l-293.5 0 41.4-41.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 288l293.5 0-41.4 41.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0z\"]\n};\nconst faArrowsH = faArrowsLeftRight;\nconst faHouseLock = {\n prefix: 'fas',\n iconName: 'house-lock',\n icon: [640, 512, [], \"e510\", \"M384 480c0 11.7 3.1 22.6 8.6 32l-.6 0c-22.1 0-40-17.9-40-40l0-24 0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32l0 64 0 24c0 22.1-17.9 40-40 40l-24 0-31.9 0c-1.5 0-3-.1-4.5-.2c-1.2 .1-2.4 .2-3.6 .2l-16 0c-22.1 0-40-17.9-40-40l0-112c0-.9 0-1.9 .1-2.8l0-69.7-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L490.7 166.3C447.2 181.7 416 223.2 416 272l0 24.6c-19.1 11.1-32 31.7-32 55.4l0 128zM528 240c-17.7 0-32 14.3-32 32l0 48 64 0 0-48c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80l0 48c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32l0-48z\"]\n};\nconst faCloudArrowDown = {\n prefix: 'fas',\n iconName: 'cloud-arrow-down',\n icon: [640, 512, [62337, \"cloud-download\", \"cloud-download-alt\"], \"f0ed\", \"M144 480C64.5 480 0 415.5 0 336c0-62.8 40.2-116.2 96.2-135.9c-.1-2.7-.2-5.4-.2-8.1c0-88.4 71.6-160 160-160c59.3 0 111 32.2 138.7 80.2C409.9 102 428.3 96 448 96c53 0 96 43 96 96c0 12.2-2.3 23.8-6.4 34.6C596 238.4 640 290.1 640 352c0 70.7-57.3 128-128 128l-368 0zm79-167l80 80c9.4 9.4 24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-39 39L344 184c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 134.1-39-39c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9z\"]\n};\nconst faCloudDownload = faCloudArrowDown;\nconst faCloudDownloadAlt = faCloudArrowDown;\nconst faChildren = {\n prefix: 'fas',\n iconName: 'children',\n icon: [640, 512, [], \"e4e1\", \"M160 0a64 64 0 1 1 0 128A64 64 0 1 1 160 0zM88 480l0-80-17.8 0c-10.9 0-18.6-10.7-15.2-21.1l31.1-93.4L57.5 323.3c-10.7 14.1-30.8 16.8-44.8 6.2s-16.8-30.7-6.2-44.8L65.4 207c22.4-29.6 57.5-47 94.6-47s72.2 17.4 94.6 47l58.9 77.7c10.7 14.1 7.9 34.2-6.2 44.8s-34.2 7.9-44.8-6.2l-28.6-37.8L265 378.9c3.5 10.4-4.3 21.1-15.2 21.1L232 400l0 80c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-80-16 0 0 80c0 17.7-14.3 32-32 32s-32-14.3-32-32zM480 0a64 64 0 1 1 0 128A64 64 0 1 1 480 0zm-8 384l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-179.5L395.1 321c-9.4 15-29.2 19.4-44.1 10s-19.4-29.2-10-44.1l51.7-82.1c17.6-27.9 48.3-44.9 81.2-44.9l12.3 0c33 0 63.7 16.9 81.2 44.9L619.1 287c9.4 15 4.9 34.7-10 44.1s-34.7 4.9-44.1-10L552 300.5 552 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-16 0z\"]\n};\nconst faChalkboard = {\n prefix: 'fas',\n iconName: 'chalkboard',\n icon: [576, 512, [\"blackboard\"], \"f51b\", \"M96 32C60.7 32 32 60.7 32 96l0 288 64 0L96 96l384 0 0 288 64 0 0-288c0-35.3-28.7-64-64-64L96 32zM224 384l0 32L32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-128 0 0-32c0-17.7-14.3-32-32-32l-128 0c-17.7 0-32 14.3-32 32z\"]\n};\nconst faBlackboard = faChalkboard;\nconst faUserLargeSlash = {\n prefix: 'fas',\n iconName: 'user-large-slash',\n icon: [640, 512, [\"user-alt-slash\"], \"f4fa\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L381.9 274c48.5-23.2 82.1-72.7 82.1-130C464 64.5 399.5 0 320 0C250.4 0 192.4 49.3 178.9 114.9L38.8 5.1zM545.5 512L528 512 284.3 320l-59 0C136.2 320 64 392.2 64 481.3c0 17 13.8 30.7 30.7 30.7l450.6 0 .3 0z\"]\n};\nconst faUserAltSlash = faUserLargeSlash;\nconst faEnvelopeOpen = {\n prefix: 'fas',\n iconName: 'envelope-open',\n icon: [512, 512, [62135], \"f2b6\", \"M64 208.1L256 65.9 448 208.1l0 47.4L289.5 373c-9.7 7.2-21.4 11-33.5 11s-23.8-3.9-33.5-11L64 255.5l0-47.4zM256 0c-12.1 0-23.8 3.9-33.5 11L25.9 156.7C9.6 168.8 0 187.8 0 208.1L0 448c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-239.9c0-20.3-9.6-39.4-25.9-51.4L289.5 11C279.8 3.9 268.1 0 256 0z\"]\n};\nconst faHandshakeSimpleSlash = {\n prefix: 'fas',\n iconName: 'handshake-simple-slash',\n icon: [640, 512, [\"handshake-alt-slash\"], \"e05f\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-135-105.8c-1.1-11.4-6.3-22.3-15.3-30.7l-134.2-123-23.4 18.2-26-20.3 77.2-60.1c7-5.4 17-4.2 22.5 2.8s4.2 17-2.8 22.5l-20.9 16.2L550.2 352l41.8 0c26.5 0 48-21.5 48-48l0-128c0-26.5-21.5-48-48-48l-76 0-4 0-.7 0-3.9-2.5L434.8 79c-15.3-9.8-33.2-15-51.4-15c-21.8 0-43 7.5-60 21.2l-89.7 72.6-25.8-20.3 81.8-66.2c-11.6-4.9-24.1-7.4-36.8-7.4C234 64 215.7 69.6 200 80l-35.5 23.7L38.8 5.1zM0 176L0 304c0 26.5 21.5 48 48 48l108.2 0 91.4 83.4c19.6 17.9 49.9 16.5 67.8-3.1c5.5-6.1 9.2-13.2 11.1-20.6l17 15.6c19.5 17.9 49.9 16.6 67.8-2.9c.8-.8 1.5-1.7 2.2-2.6L41.2 128.5C17.9 131.8 0 151.8 0 176z\"]\n};\nconst faHandshakeAltSlash = faHandshakeSimpleSlash;\nconst faMattressPillow = {\n prefix: 'fas',\n iconName: 'mattress-pillow',\n icon: [640, 512, [], \"e525\", \"M256 64L64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l192 0 0-384zm32 384l288 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L288 64l0 384zM64 160c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 192c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-192z\"]\n};\nconst faGuaraniSign = {\n prefix: 'fas',\n iconName: 'guarani-sign',\n icon: [384, 512, [], \"e19a\", \"M192 0c-17.7 0-32 14.3-32 32l0 34.7C69.2 81.9 0 160.9 0 256s69.2 174.1 160 189.3l0 34.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-34.7c90.8-15.2 160-94.2 160-189.3c0-17.7-14.3-32-32-32l-128 0 0-92c22.1 5.7 41.8 17.1 57.6 32.6c12.6 12.4 32.9 12.2 45.3-.4s12.2-32.9-.5-45.3C299 92 263.5 73.3 224 66.7L224 32c0-17.7-14.3-32-32-32zM160 132L160 380c-55.2-14.2-96-64.3-96-124s40.8-109.8 96-124zM224 380l0-92 92 0c-11.6 45-47 80.4-92 92z\"]\n};\nconst faArrowsRotate = {\n prefix: 'fas',\n iconName: 'arrows-rotate',\n icon: [512, 512, [128472, \"refresh\", \"sync\"], \"f021\", \"M105.1 202.6c7.7-21.8 20.2-42.3 37.8-59.8c62.5-62.5 163.8-62.5 226.3 0L386.3 160 352 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l111.5 0c0 0 0 0 0 0l.4 0c17.7 0 32-14.3 32-32l0-112c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 35.2L414.4 97.6c-87.5-87.5-229.3-87.5-316.8 0C73.2 122 55.6 150.7 44.8 181.4c-5.9 16.7 2.9 34.9 19.5 40.8s34.9-2.9 40.8-19.5zM39 289.3c-5 1.5-9.8 4.2-13.7 8.2c-4 4-6.7 8.8-8.1 14c-.3 1.2-.6 2.5-.8 3.8c-.3 1.7-.4 3.4-.4 5.1L16 432c0 17.7 14.3 32 32 32s32-14.3 32-32l0-35.1 17.6 17.5c0 0 0 0 0 0c87.5 87.4 229.3 87.4 316.7 0c24.4-24.4 42.1-53.1 52.9-83.8c5.9-16.7-2.9-34.9-19.5-40.8s-34.9 2.9-40.8 19.5c-7.7 21.8-20.2 42.3-37.8 59.8c-62.5 62.5-163.8 62.5-226.3 0l-.1-.1L125.6 352l34.4 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L48.4 288c-1.6 0-3.2 .1-4.8 .3s-3.1 .5-4.6 1z\"]\n};\nconst faRefresh = faArrowsRotate;\nconst faSync = faArrowsRotate;\nconst faFireExtinguisher = {\n prefix: 'fas',\n iconName: 'fire-extinguisher',\n icon: [512, 512, [129519], \"f134\", \"M500.3 7.3C507.7 13.3 512 22.4 512 32l0 96c0 9.6-4.3 18.7-11.7 24.7s-17.2 8.5-26.6 6.6l-160-32C301.5 124.9 292 115.7 289 104l-65 0 0 34.8c37.8 18 64 56.5 64 101.2l0 144L64 384l0-144c0-44.7 26.2-83.2 64-101.2l0-28.8c-36.2 11.1-66 36.9-82.3 70.5c-5.8 11.9-20.2 16.9-32.1 11.1S-3.3 171.4 2.5 159.5C26.7 109.8 72.7 72.6 128 60.4L128 32c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 24 65 0c3-11.7 12.5-20.9 24.7-23.4l160-32c9.4-1.9 19.1 .6 26.6 6.6zM288 416l0 32c0 35.3-28.7 64-64 64l-96 0c-35.3 0-64-28.7-64-64l0-32 224 0zM176 96a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"]\n};\nconst faCruzeiroSign = {\n prefix: 'fas',\n iconName: 'cruzeiro-sign',\n icon: [448, 512, [], \"e152\", \"M96 256c0-88.4 71.6-160 160-160c41 0 78.3 15.4 106.7 40.7c13.2 11.8 33.4 10.7 45.2-2.5s10.7-33.4-2.5-45.2c-39.6-35.5-92-57-149.3-57C132.3 32 32 132.3 32 256s100.3 224 224 224c57.4 0 109.7-21.6 149.3-57c13.2-11.8 14.3-32 2.5-45.2s-32-14.3-45.2-2.5C334.3 400.6 297 416 256 416l0-96 0-8.7c0-12.8 10.4-23.3 23.3-23.3c4.6 0 9.1 1.4 12.9 3.9l10.1 6.7c14.7 9.8 34.6 5.8 44.4-8.9s5.8-34.6-8.9-44.4l-10.1-6.7c-14.3-9.6-31.2-14.7-48.4-14.7c-12.4 0-24.2 2.6-34.9 7.3c-5.5-4.5-12.6-7.3-20.3-7.3c-17.7 0-32 14.3-32 32l0 55.3 0 8.7 0 82.7C135.5 378 96 321.6 96 256z\"]\n};\nconst faGreaterThanEqual = {\n prefix: 'fas',\n iconName: 'greater-than-equal',\n icon: [448, 512, [], \"f532\", \"M52.1 93.7C35.7 87.1 27.7 68.5 34.3 52.1s25.2-24.4 41.6-17.8l320 128C408 167.1 416 178.9 416 192s-8 24.9-20.1 29.7l-320 128c-16.4 6.6-35-1.4-41.6-17.8s1.4-35 17.8-41.6L297.8 192 52.1 93.7zM416 416c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0z\"]\n};\nconst faShieldHalved = {\n prefix: 'fas',\n iconName: 'shield-halved',\n icon: [512, 512, [\"shield-alt\"], \"f3ed\", \"M256 0c4.6 0 9.2 1 13.4 2.9L457.7 82.8c22 9.3 38.4 31 38.3 57.2c-.5 99.2-41.3 280.7-213.6 363.2c-16.7 8-36.1 8-52.8 0C57.3 420.7 16.5 239.2 16 140c-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.8 1 251.4 0 256 0zm0 66.8l0 378.1C394 378 431.1 230.1 432 141.4L256 66.8s0 0 0 0z\"]\n};\nconst faShieldAlt = faShieldHalved;\nconst faBookAtlas = {\n prefix: 'fas',\n iconName: 'book-atlas',\n icon: [448, 512, [\"atlas\"], \"f558\", \"M0 96C0 43 43 0 96 0L384 0l32 0c17.7 0 32 14.3 32 32l0 320c0 17.7-14.3 32-32 32l0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0L96 512c-53 0-96-43-96-96L0 96zM64 416c0 17.7 14.3 32 32 32l256 0 0-64L96 384c-17.7 0-32 14.3-32 32zM247.4 283.8c-3.7 3.7-6.2 4.2-7.4 4.2s-3.7-.5-7.4-4.2c-3.8-3.7-8-10-11.8-18.9c-6.2-14.5-10.8-34.3-12.2-56.9l63 0c-1.5 22.6-6 42.4-12.2 56.9c-3.8 8.9-8 15.2-11.8 18.9zm42.7-9.9c7.3-18.3 12-41.1 13.4-65.9l31.1 0c-4.7 27.9-21.4 51.7-44.5 65.9zm0-163.8c23.2 14.2 39.9 38 44.5 65.9l-31.1 0c-1.4-24.7-6.1-47.5-13.4-65.9zM368 192a128 128 0 1 0 -256 0 128 128 0 1 0 256 0zM145.3 208l31.1 0c1.4 24.7 6.1 47.5 13.4 65.9c-23.2-14.2-39.9-38-44.5-65.9zm31.1-32l-31.1 0c4.7-27.9 21.4-51.7 44.5-65.9c-7.3 18.3-12 41.1-13.4 65.9zm56.1-75.8c3.7-3.7 6.2-4.2 7.4-4.2s3.7 .5 7.4 4.2c3.8 3.7 8 10 11.8 18.9c6.2 14.5 10.8 34.3 12.2 56.9l-63 0c1.5-22.6 6-42.4 12.2-56.9c3.8-8.9 8-15.2 11.8-18.9z\"]\n};\nconst faAtlas = faBookAtlas;\nconst faVirus = {\n prefix: 'fas',\n iconName: 'virus',\n icon: [512, 512, [], \"e074\", \"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 11.5c0 49.9-60.3 74.9-95.6 39.6L120.2 75C107.7 62.5 87.5 62.5 75 75s-12.5 32.8 0 45.3l8.2 8.2C118.4 163.7 93.4 224 43.5 224L32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l11.5 0c49.9 0 74.9 60.3 39.6 95.6L75 391.8c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l8.2-8.2c35.3-35.3 95.6-10.3 95.6 39.6l0 11.5c0 17.7 14.3 32 32 32s32-14.3 32-32l0-11.5c0-49.9 60.3-74.9 95.6-39.6l8.2 8.2c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-8.2-8.2c-35.3-35.3-10.3-95.6 39.6-95.6l11.5 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-11.5 0c-49.9 0-74.9-60.3-39.6-95.6l8.2-8.2c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-8.2 8.2C348.3 118.4 288 93.4 288 43.5L288 32zM176 224a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm128 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nconst faEnvelopeCircleCheck = {\n prefix: 'fas',\n iconName: 'envelope-circle-check',\n icon: [640, 512, [], \"e4e8\", \"M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4L236.8 313.6c11.4 8.5 27 8.5 38.4 0l57.4-43c23.9-59.8 79.7-103.3 146.3-109.8l13.9-10.4c12.1-9.1 19.2-23.3 19.2-38.4c0-26.5-21.5-48-48-48L48 64zM294.4 339.2c-22.8 17.1-54 17.1-76.8 0L0 176 0 384c0 35.3 28.7 64 64 64l296.2 0C335.1 417.6 320 378.5 320 336c0-5.6 .3-11.1 .8-16.6l-26.4 19.8zM640 336a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 353.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"]\n};\nconst faLayerGroup = {\n prefix: 'fas',\n iconName: 'layer-group',\n icon: [576, 512, [], \"f5fd\", \"M264.5 5.2c14.9-6.9 32.1-6.9 47 0l218.6 101c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L45.9 149.8C37.4 145.8 32 137.3 32 128s5.4-17.9 13.9-21.8L264.5 5.2zM476.9 209.6l53.2 24.6c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L45.9 277.8C37.4 273.8 32 265.3 32 256s5.4-17.9 13.9-21.8l53.2-24.6 152 70.2c23.4 10.8 50.4 10.8 73.8 0l152-70.2zm-152 198.2l152-70.2 53.2 24.6c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L45.9 405.8C37.4 401.8 32 393.3 32 384s5.4-17.9 13.9-21.8l53.2-24.6 152 70.2c23.4 10.8 50.4 10.8 73.8 0z\"]\n};\nconst faArrowsToDot = {\n prefix: 'fas',\n iconName: 'arrows-to-dot',\n icon: [512, 512, [], \"e4be\", \"M256 0c17.7 0 32 14.3 32 32l0 32 32 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9l-64 64c-12.5 12.5-32.8 12.5-45.3 0l-64-64c-9.2-9.2-11.9-22.9-6.9-34.9s16.6-19.8 29.6-19.8l32 0 0-32c0-17.7 14.3-32 32-32zM169.4 393.4l64-64c12.5-12.5 32.8-12.5 45.3 0l64 64c9.2 9.2 11.9 22.9 6.9 34.9s-16.6 19.8-29.6 19.8l-32 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9zM32 224l32 0 0-32c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l64 64c12.5 12.5 12.5 32.8 0 45.3l-64 64c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm297.4 54.6c-12.5-12.5-12.5-32.8 0-45.3l64-64c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6l0 32 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 32c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-64-64zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nconst faArchway = {\n prefix: 'fas',\n iconName: 'archway',\n icon: [512, 512, [], \"f557\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l448 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zm0 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0 64 0 0-128c0-53 43-96 96-96s96 43 96 96l0 128 64 0 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-288L32 128l0 288z\"]\n};\nconst faHeartCircleCheck = {\n prefix: 'fas',\n iconName: 'heart-circle-check',\n icon: [576, 512, [], \"e4fd\", \"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6l0-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1l0 5.8c0 41.5 17.2 81.2 47.6 109.5zM576 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L416 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"]\n};\nconst faHouseChimneyCrack = {\n prefix: 'fas',\n iconName: 'house-chimney-crack',\n icon: [576, 512, [\"house-damage\"], \"f6f1\", \"M575.8 255.5c0 18-15 32.1-32 32.1l-32 0 .7 160.2c.2 35.5-28.5 64.3-64 64.3l-122.1 0L288 448l80.8-67.3c7.8-6.5 7.6-18.6-.4-24.9L250.6 263.2c-14.6-11.5-33.8 7-22.8 22L288 368l-85.5 71.2c-6.1 5-7.5 13.8-3.5 20.5L230.4 512l-102.3 0c-35.3 0-64-28.7-64-64l0-160.4-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L416 100.7 416 64c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 121 52.8 46.4c8 7 12 15 11 24z\"]\n};\nconst faHouseDamage = faHouseChimneyCrack;\nconst faFileZipper = {\n prefix: 'fas',\n iconName: 'file-zipper',\n icon: [384, 512, [\"file-archive\"], \"f1c6\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM96 48c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16zm-6.3 71.8c3.7-14 16.4-23.8 30.9-23.8l14.8 0c14.5 0 27.2 9.7 30.9 23.8l23.5 88.2c1.4 5.4 2.1 10.9 2.1 16.4c0 35.2-28.8 63.7-64 63.7s-64-28.5-64-63.7c0-5.5 .7-11.1 2.1-16.4l23.5-88.2zM112 336c-8.8 0-16 7.2-16 16s7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0z\"]\n};\nconst faFileArchive = faFileZipper;\nconst faSquare = {\n prefix: 'fas',\n iconName: 'square',\n icon: [448, 512, [9632, 9723, 9724, 61590], \"f0c8\", \"M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96z\"]\n};\nconst faMartiniGlassEmpty = {\n prefix: 'fas',\n iconName: 'martini-glass-empty',\n icon: [512, 512, [\"glass-martini\"], \"f000\", \"M32 0C19.1 0 7.4 7.8 2.4 19.8s-2.2 25.7 6.9 34.9L224 269.3 224 448l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-178.7L502.6 54.6c9.2-9.2 11.9-22.9 6.9-34.9S492.9 0 480 0L32 0zM256 210.7L109.3 64l293.5 0L256 210.7z\"]\n};\nconst faGlassMartini = faMartiniGlassEmpty;\nconst faCouch = {\n prefix: 'fas',\n iconName: 'couch',\n icon: [640, 512, [], \"f4b8\", \"M64 160C64 89.3 121.3 32 192 32l256 0c70.7 0 128 57.3 128 128l0 33.6c-36.5 7.4-64 39.7-64 78.4l0 48-384 0 0-48c0-38.7-27.5-71-64-78.4L64 160zM544 272c0-20.9 13.4-38.7 32-45.3c5-1.8 10.4-2.7 16-2.7c26.5 0 48 21.5 48 48l0 176c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32L96 448c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32L0 272c0-26.5 21.5-48 48-48c5.6 0 11 1 16 2.7c18.6 6.6 32 24.4 32 45.3l0 48 0 32 32 0 384 0 32 0 0-32 0-48z\"]\n};\nconst faCediSign = {\n prefix: 'fas',\n iconName: 'cedi-sign',\n icon: [384, 512, [], \"e0df\", \"M256 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 34.7C101.2 81.9 32 160.9 32 256s69.2 174.1 160 189.3l0 34.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-34.7c30.9-5.2 59.2-17.7 83.2-35.8c14.1-10.6 17-30.7 6.4-44.8s-30.7-17-44.8-6.4c-13.2 9.9-28.3 17.3-44.8 21.6L256 132c16.4 4.2 31.6 11.6 44.8 21.6c14.1 10.6 34.2 7.8 44.8-6.4s7.8-34.2-6.4-44.8c-24-18-52.4-30.6-83.2-35.8L256 32zM192 132L192 380c-55.2-14.2-96-64.3-96-124s40.8-109.8 96-124z\"]\n};\nconst faItalic = {\n prefix: 'fas',\n iconName: 'italic',\n icon: [384, 512, [], \"f033\", \"M128 64c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-58.7 0L160 416l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l58.7 0L224 96l-64 0c-17.7 0-32-14.3-32-32z\"]\n};\nconst faTableCellsColumnLock = {\n prefix: 'fas',\n iconName: 'table-cells-column-lock',\n icon: [640, 512, [], \"e678\", \"M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 65.1c-37.8 5.4-69.4 29.6-85.2 62.9L360 224l0 64 56 0 0 8.6c-19.1 11.1-32 31.7-32 55.4l-24 0 0 64 24 0 0 64L64 480c-35.3 0-64-28.7-64-64L0 96zm208 0l0 64 88 0 0-64-88 0zm240 0l-88 0 0 64 88 0 0-64zM208 224l0 64 88 0 0-64-88 0zm0 128l0 64 88 0 0-64-88 0zM528 240c-17.7 0-32 14.3-32 32l0 48 64 0 0-48c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80l0 48c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32l0-48z\"]\n};\nconst faChurch = {\n prefix: 'fas',\n iconName: 'church',\n icon: [640, 512, [9962], \"f51d\", \"M344 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 24-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 46.4L183.3 210c-14.5 8.7-23.3 24.3-23.3 41.2L160 512l96 0 0-96c0-35.3 28.7-64 64-64s64 28.7 64 64l0 96 96 0 0-260.8c0-16.9-8.8-32.5-23.3-41.2L344 142.4 344 96l32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0 0-24zM24.9 330.3C9.5 338.8 0 354.9 0 372.4L0 464c0 26.5 21.5 48 48 48l80 0 0-238.4L24.9 330.3zM592 512c26.5 0 48-21.5 48-48l0-91.6c0-17.5-9.5-33.6-24.9-42.1L512 273.6 512 512l80 0z\"]\n};\nconst faCommentsDollar = {\n prefix: 'fas',\n iconName: 'comments-dollar',\n icon: [640, 512, [], \"f653\", \"M416 176c0 97.2-93.1 176-208 176c-38.2 0-73.9-8.7-104.7-23.9c-7.5 4-16 7.9-25.2 11.4C59.8 346.4 37.8 352 16 352c-6.9 0-13.1-4.5-15.2-11.1s.2-13.8 5.8-17.9c0 0 0 0 0 0s0 0 0 0l.2-.2c.2-.2 .6-.4 1.1-.8c1-.8 2.5-2 4.3-3.7c3.6-3.3 8.5-8.1 13.3-14.3c5.5-7 10.7-15.4 14.2-24.7C14.7 250.3 0 214.6 0 176C0 78.8 93.1 0 208 0S416 78.8 416 176zM231.5 383C348.9 372.9 448 288.3 448 176c0-5.2-.2-10.4-.6-15.5C555.1 167.1 640 243.2 640 336c0 38.6-14.7 74.3-39.6 103.4c3.5 9.4 8.7 17.7 14.2 24.7c4.8 6.2 9.7 11 13.3 14.3c1.8 1.6 3.3 2.9 4.3 3.7c.5 .4 .9 .7 1.1 .8l.2 .2s0 0 0 0s0 0 0 0c5.6 4.1 7.9 11.3 5.8 17.9c-2.1 6.6-8.3 11.1-15.2 11.1c-21.8 0-43.8-5.6-62.1-12.5c-9.2-3.5-17.8-7.4-25.2-11.4C505.9 503.3 470.2 512 432 512c-95.6 0-176.2-54.6-200.5-129zM228 72c0-11-9-20-20-20s-20 9-20 20l0 14c-7.6 1.7-15.2 4.4-22.2 8.5c-13.9 8.3-25.9 22.8-25.8 43.9c.1 20.3 12 33.1 24.7 40.7c11 6.6 24.7 10.8 35.6 14l1.7 .5c12.6 3.8 21.8 6.8 28 10.7c5.1 3.2 5.8 5.4 5.9 8.2c.1 5-1.8 8-5.9 10.5c-5 3.1-12.9 5-21.4 4.7c-11.1-.4-21.5-3.9-35.1-8.5c-2.3-.8-4.7-1.6-7.2-2.4c-10.5-3.5-21.8 2.2-25.3 12.6s2.2 21.8 12.6 25.3c1.9 .6 4 1.3 6.1 2.1c0 0 0 0 0 0s0 0 0 0c8.3 2.9 17.9 6.2 28.2 8.4l0 14.6c0 11 9 20 20 20s20-9 20-20l0-13.8c8-1.7 16-4.5 23.2-9c14.3-8.9 25.1-24.1 24.8-45c-.3-20.3-11.7-33.4-24.6-41.6c-11.5-7.2-25.9-11.6-37.1-15l-.7-.2c-12.8-3.9-21.9-6.7-28.3-10.5c-5.2-3.1-5.3-4.9-5.3-6.7c0-3.7 1.4-6.5 6.2-9.3c5.4-3.2 13.6-5.1 21.5-5c9.6 .1 20.2 2.2 31.2 5.2c10.7 2.8 21.6-3.5 24.5-14.2s-3.5-21.6-14.2-24.5c-6.5-1.7-13.7-3.4-21.1-4.7L228 72z\"]\n};\nconst faDemocrat = {\n prefix: 'fas',\n iconName: 'democrat',\n icon: [640, 512, [], \"f747\", \"M64 32c0-8.9 3.8-20.9 6.2-27.3C71.2 1.8 74 0 77 0c1.9 0 3.8 .7 5.2 2.1L128 45.7 173.8 2.1C175.2 .7 177.1 0 179 0c3 0 5.8 1.8 6.8 4.7c2.4 6.5 6.2 18.4 6.2 27.3c0 26.5-21.9 42-29.5 46.6l76.2 72.6c6 5.7 13.9 8.8 22.1 8.8L480 160l32 0c40.3 0 78.2 19 102.4 51.2l19.2 25.6c10.6 14.1 7.7 34.2-6.4 44.8s-34.2 7.7-44.8-6.4l-19.2-25.6c-5.3-7-11.8-12.8-19.2-17l0 87.4-352 0-40.4-94.3c-3.9-9.2-15.3-12.6-23.6-7l-42.1 28c-9.1 6.1-19.7 9.3-30.7 9.3l-2 0C23.9 256 0 232.1 0 202.7c0-12.1 4.1-23.8 11.7-33.3L87.6 74.6C78.1 67.4 64 53.2 64 32zM448 352l96 0 0 64 0 64c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-64-160 0 0 64c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-64 0-64 96 0 160 0zM260.9 210.9c-.9-1.8-2.8-2.9-4.8-2.9s-3.9 1.1-4.8 2.9l-10.5 20.5-23.5 3.3c-2 .3-3.7 1.6-4.3 3.5s-.1 3.9 1.3 5.3l17 16-4 22.6c-.3 1.9 .5 3.9 2.1 5s3.8 1.3 5.6 .4l21-10.7 21 10.7c1.8 .9 4 .8 5.6-.4s2.5-3.1 2.1-5l-4-22.6 17-16c1.5-1.4 2-3.4 1.3-5.3s-2.3-3.2-4.3-3.5l-23.5-3.3-10.5-20.5zM368.1 208c-2 0-3.9 1.1-4.8 2.9l-10.5 20.5-23.5 3.3c-2 .3-3.7 1.6-4.3 3.5s-.1 3.9 1.3 5.3l17 16-4 22.6c-.3 1.9 .5 3.9 2.1 5s3.8 1.3 5.6 .4l21-10.7 21 10.7c1.8 .9 4 .8 5.6-.4s2.5-3.1 2.1-5l-4-22.6 17-16c1.5-1.4 2-3.4 1.4-5.3s-2.3-3.2-4.3-3.5l-23.5-3.3-10.5-20.5c-.9-1.8-2.8-2.9-4.8-2.9zm116.8 2.9c-.9-1.8-2.8-2.9-4.8-2.9s-3.9 1.1-4.8 2.9l-10.5 20.5-23.5 3.3c-2 .3-3.7 1.6-4.3 3.5s-.1 3.9 1.3 5.3l17 16-4 22.6c-.3 1.9 .5 3.9 2.1 5s3.8 1.3 5.6 .4l21-10.7 21 10.7c1.8 .9 4 .8 5.6-.4s2.5-3.1 2.1-5l-4-22.6 17-16c1.5-1.4 2-3.4 1.4-5.3s-2.3-3.2-4.3-3.5l-23.5-3.3-10.5-20.5z\"]\n};\nconst faZ = {\n prefix: 'fas',\n iconName: 'z',\n icon: [384, 512, [122], \"5a\", \"M0 64C0 46.3 14.3 32 32 32l320 0c12.4 0 23.7 7.2 29 18.4s3.6 24.5-4.4 34.1L100.3 416 352 416c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-12.4 0-23.7-7.2-29-18.4s-3.6-24.5 4.4-34.1L283.7 96 32 96C14.3 96 0 81.7 0 64z\"]\n};\nconst faPersonSkiing = {\n prefix: 'fas',\n iconName: 'person-skiing',\n icon: [512, 512, [9975, \"skiing\"], \"f7c9\", \"M380.7 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM2.7 268.9c6.1-11.8 20.6-16.3 32.4-10.2L232.7 361.3l46.2-69.2-75.1-75.1c-14.6-14.6-20.4-33.9-18.4-52.1l108.8 52 39.3 39.3c16.2 16.2 18.7 41.5 6 60.6L289.8 391l128.7 66.8c13.6 7.1 29.8 7.2 43.6 .3l15.2-7.6c11.9-5.9 26.3-1.1 32.2 10.7s1.1 26.3-10.7 32.2l-15.2 7.6c-27.5 13.7-59.9 13.5-87.2-.7L12.9 301.3C1.2 295.2-3.4 280.7 2.7 268.9zM118.9 65.6L137 74.2l8.7-17.4c4-7.9 13.6-11.1 21.5-7.2s11.1 13.6 7.2 21.5l-8.5 16.9 54.7 26.2c1.5-.7 3.1-1.4 4.7-2.1l83.4-33.4c34.2-13.7 72.8 4.2 84.5 39.2l17.1 51.2 52.1 26.1c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3l-58.1-29c-11.4-5.7-20-15.7-24.1-27.8l-5.8-17.3-27.3 12.1-6.8 3-6.7-3.2L151.5 116.7l-9.2 18.4c-4 7.9-13.6 11.1-21.5 7.2s-11.1-13.6-7.2-21.5l9-18-17.6-8.4c-8-3.8-11.3-13.4-7.5-21.3s13.4-11.3 21.3-7.5z\"]\n};\nconst faSkiing = faPersonSkiing;\nconst faRoadLock = {\n prefix: 'fas',\n iconName: 'road-lock',\n icon: [640, 512, [], \"e567\", \"M288 32l-74.8 0c-27.1 0-51.3 17.1-60.3 42.6L35.1 407.2c-2.1 5.9-3.1 12-3.1 18.2C32 455.5 56.5 480 86.6 480L288 480l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64 32 0 0-128c0-23.7 12.9-44.4 32-55.4l0-24.6c0-58.3 44.6-106.2 101.5-111.5L487.1 74.6C478 49.1 453.9 32 426.8 32L352 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm64 192l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32zm176 16c17.7 0 32 14.3 32 32l0 48-64 0 0-48c0-17.7 14.3-32 32-32zm-80 32l0 48c-17.7 0-32 14.3-32 32l0 128c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"]\n};\nconst faA = {\n prefix: 'fas',\n iconName: 'a',\n icon: [384, 512, [97], \"41\", \"M221.5 51.7C216.6 39.8 204.9 32 192 32s-24.6 7.8-29.5 19.7l-120 288-40 96c-6.8 16.3 .9 35 17.2 41.8s35-.9 41.8-17.2L93.3 384l197.3 0 31.8 76.3c6.8 16.3 25.5 24 41.8 17.2s24-25.5 17.2-41.8l-40-96-120-288zM264 320l-144 0 72-172.8L264 320z\"]\n};\nconst faTemperatureArrowDown = {\n prefix: 'fas',\n iconName: 'temperature-arrow-down',\n icon: [576, 512, [\"temperature-down\"], \"e03f\", \"M128 112c0-26.5 21.5-48 48-48s48 21.5 48 48l0 164.5c0 17.3 7.1 31.9 15.3 42.5C249.8 332.6 256 349.5 256 368c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-18.5 6.2-35.4 16.7-48.9c8.2-10.6 15.3-25.2 15.3-42.5L128 112zM176 0C114.1 0 64 50.1 64 112l0 164.4c0 .1-.1 .3-.2 .6c-.2 .6-.8 1.6-1.7 2.8C43.2 304.2 32 334.8 32 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.2-11.2-63.8-30.1-88.1c-.9-1.2-1.5-2.2-1.7-2.8c-.1-.3-.2-.5-.2-.6L288 112C288 50.1 237.9 0 176 0zm0 416c26.5 0 48-21.5 48-48c0-20.9-13.4-38.7-32-45.3l0-50.7c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 50.7c-18.6 6.6-32 24.4-32 45.3c0 26.5 21.5 48 48 48zm336-64l-32 0 0-288c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 288-32 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c6 6 14.1 9.4 22.6 9.4s16.6-3.4 22.6-9.4l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8z\"]\n};\nconst faTemperatureDown = faTemperatureArrowDown;\nconst faFeatherPointed = {\n prefix: 'fas',\n iconName: 'feather-pointed',\n icon: [512, 512, [\"feather-alt\"], \"f56b\", \"M278.5 215.6L23 471c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l74.8-74.8c7.4 4.6 15.3 8.2 23.8 10.5C200.3 452.8 270 454.5 338 409.4c12.2-8.1 5.8-25.4-8.8-25.4l-16.1 0c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l97.7-29.3c3.4-1 6.4-3.1 8.4-6.1c4.4-6.4 8.6-12.9 12.6-19.6c6.2-10.3-1.5-23-13.5-23l-38.6 0c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l80.9-24.3c4.6-1.4 8.4-4.8 10.2-9.3C494.5 163 507.8 86.1 511.9 36.8c.8-9.9-3-19.6-10-26.6s-16.7-10.8-26.6-10C391.5 7 228.5 40.5 137.4 131.6C57.3 211.7 56.7 302.3 71.3 356.4c2.1 7.9 12 9.6 17.8 3.8L253.6 195.8c6.2-6.2 16.4-6.2 22.6 0c5.4 5.4 6.1 13.6 2.2 19.8z\"]\n};\nconst faFeatherAlt = faFeatherPointed;\nconst faP = {\n prefix: 'fas',\n iconName: 'p',\n icon: [320, 512, [112], \"50\", \"M0 96C0 60.7 28.7 32 64 32l96 0c88.4 0 160 71.6 160 160s-71.6 160-160 160l-96 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 320 0 96zM64 288l96 0c53 0 96-43 96-96s-43-96-96-96L64 96l0 192z\"]\n};\nconst faSnowflake = {\n prefix: 'fas',\n iconName: 'snowflake',\n icon: [448, 512, [10052, 10054], \"f2dc\", \"M224 0c17.7 0 32 14.3 32 32l0 30.1 15-15c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-49 49 0 70.3 61.4-35.8 17.7-66.1c3.4-12.8 16.6-20.4 29.4-17s20.4 16.6 17 29.4l-5.2 19.3 23.6-13.8c15.3-8.9 34.9-3.7 43.8 11.5s3.8 34.9-11.5 43.8l-25.3 14.8 21.7 5.8c12.8 3.4 20.4 16.6 17 29.4s-16.6 20.4-29.4 17l-67.7-18.1L287.5 256l60.9 35.5 67.7-18.1c12.8-3.4 26 4.2 29.4 17s-4.2 26-17 29.4l-21.7 5.8 25.3 14.8c15.3 8.9 20.4 28.5 11.5 43.8s-28.5 20.4-43.8 11.5l-23.6-13.8 5.2 19.3c3.4 12.8-4.2 26-17 29.4s-26-4.2-29.4-17l-17.7-66.1L256 311.7l0 70.3 49 49c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-15-15 0 30.1c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-30.1-15 15c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l49-49 0-70.3-61.4 35.8-17.7 66.1c-3.4 12.8-16.6 20.4-29.4 17s-20.4-16.6-17-29.4l5.2-19.3L48.1 395.6c-15.3 8.9-34.9 3.7-43.8-11.5s-3.7-34.9 11.5-43.8l25.3-14.8-21.7-5.8c-12.8-3.4-20.4-16.6-17-29.4s16.6-20.4 29.4-17l67.7 18.1L160.5 256 99.6 220.5 31.9 238.6c-12.8 3.4-26-4.2-29.4-17s4.2-26 17-29.4l21.7-5.8L15.9 171.6C.6 162.7-4.5 143.1 4.4 127.9s28.5-20.4 43.8-11.5l23.6 13.8-5.2-19.3c-3.4-12.8 4.2-26 17-29.4s26 4.2 29.4 17l17.7 66.1L192 200.3l0-70.3L143 81c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l15 15L192 32c0-17.7 14.3-32 32-32z\"]\n};\nconst faNewspaper = {\n prefix: 'fas',\n iconName: 'newspaper',\n icon: [512, 512, [128240], \"f1ea\", \"M96 96c0-35.3 28.7-64 64-64l288 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L80 480c-44.2 0-80-35.8-80-80L0 128c0-17.7 14.3-32 32-32s32 14.3 32 32l0 272c0 8.8 7.2 16 16 16s16-7.2 16-16L96 96zm64 24l0 80c0 13.3 10.7 24 24 24l112 0c13.3 0 24-10.7 24-24l0-80c0-13.3-10.7-24-24-24L184 96c-13.3 0-24 10.7-24 24zm208-8c0 8.8 7.2 16 16 16l48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-48 0c-8.8 0-16 7.2-16 16zm0 96c0 8.8 7.2 16 16 16l48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-48 0c-8.8 0-16 7.2-16 16zM160 304c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-256 0c-8.8 0-16 7.2-16 16zm0 96c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-256 0c-8.8 0-16 7.2-16 16z\"]\n};\nconst faRectangleAd = {\n prefix: 'fas',\n iconName: 'rectangle-ad',\n icon: [576, 512, [\"ad\"], \"f641\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM229.5 173.3l72 144c5.9 11.9 1.1 26.3-10.7 32.2s-26.3 1.1-32.2-10.7L253.2 328l-90.3 0-5.4 10.7c-5.9 11.9-20.3 16.7-32.2 10.7s-16.7-20.3-10.7-32.2l72-144c4.1-8.1 12.4-13.3 21.5-13.3s17.4 5.1 21.5 13.3zM208 237.7L186.8 280l42.3 0L208 237.7zM392 256a24 24 0 1 0 0 48 24 24 0 1 0 0-48zm24-43.9l0-28.1c0-13.3 10.7-24 24-24s24 10.7 24 24l0 96 0 48c0 13.3-10.7 24-24 24c-6.6 0-12.6-2.7-17-7c-9.4 4.5-19.9 7-31 7c-39.8 0-72-32.2-72-72s32.2-72 72-72c8.4 0 16.5 1.4 24 4.1z\"]\n};\nconst faAd = faRectangleAd;\nconst faCircleArrowRight = {\n prefix: 'fas',\n iconName: 'circle-arrow-right',\n icon: [512, 512, [\"arrow-circle-right\"], \"f0a9\", \"M0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM297 385c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l71-71L120 280c-13.3 0-24-10.7-24-24s10.7-24 24-24l214.1 0-71-71c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L409 239c9.4 9.4 9.4 24.6 0 33.9L297 385z\"]\n};\nconst faArrowCircleRight = faCircleArrowRight;\nconst faFilterCircleXmark = {\n prefix: 'fas',\n iconName: 'filter-circle-xmark',\n icon: [576, 512, [], \"e17b\", \"M3.9 22.9C10.5 8.9 24.5 0 40 0L472 0c15.5 0 29.5 8.9 36.1 22.9s4.6 30.5-5.2 42.5L396.4 195.6C316.2 212.1 256 283 256 368c0 27.4 6.3 53.4 17.5 76.5c-1.6-.8-3.2-1.8-4.7-2.9l-64-48c-8.1-6-12.8-15.5-12.8-25.6l0-79.1L9 65.3C-.7 53.4-2.8 36.8 3.9 22.9zM432 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm59.3 107.3c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L432 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L409.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L432 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L454.6 368l36.7-36.7z\"]\n};\nconst faLocust = {\n prefix: 'fas',\n iconName: 'locust',\n icon: [576, 512, [], \"e520\", \"M312 32c-13.3 0-24 10.7-24 24s10.7 24 24 24l16 0c98.7 0 180.6 71.4 197 165.4c-9-3.5-18.8-5.4-29-5.4l-64.2 0-41.8-97.5c-3.4-7.9-10.8-13.4-19.3-14.4s-17 2.7-22.1 9.6l-40.9 55.5-21.7-50.7c-3.3-7.8-10.5-13.2-18.9-14.3s-16.7 2.3-22 8.9l-240 304c-8.2 10.4-6.4 25.5 4 33.7s25.5 6.4 33.7-4l79.4-100.5 43 16.4-40.5 55c-7.9 10.7-5.6 25.7 5.1 33.6s25.7 5.6 33.6-5.1L215.1 400l74.5 0-29.3 42.3c-7.5 10.9-4.8 25.8 6.1 33.4s25.8 4.8 33.4-6.1L348 400l80.4 0 38.8 67.9c6.6 11.5 21.2 15.5 32.7 8.9s15.5-21.2 8.9-32.7L483.6 400l12.4 0c44.1 0 79.8-35.7 80-79.7c0-.1 0-.2 0-.3l0-40C576 143 465 32 328 32l-16 0zm50.5 168l17.1 40L333 240l29.5-40zm-87.7 38.1l-1.4 1.9-48.2 0 32.7-41.5 16.9 39.5zM88.8 240C57.4 240 32 265.4 32 296.8c0 15.5 6.3 30 16.9 40.4L126.7 240l-37.9 0zM496 288a16 16 0 1 1 0 32 16 16 0 1 1 0-32z\"]\n};\nconst faSort = {\n prefix: 'fas',\n iconName: 'sort',\n icon: [320, 512, [\"unsorted\"], \"f0dc\", \"M137.4 41.4c12.5-12.5 32.8-12.5 45.3 0l128 128c9.2 9.2 11.9 22.9 6.9 34.9s-16.6 19.8-29.6 19.8L32 224c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9l128-128zm0 429.3l-128-128c-9.2-9.2-11.9-22.9-6.9-34.9s16.6-19.8 29.6-19.8l256 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9l-128 128c-12.5 12.5-32.8 12.5-45.3 0z\"]\n};\nconst faUnsorted = faSort;\nconst faListOl = {\n prefix: 'fas',\n iconName: 'list-ol',\n icon: [512, 512, [\"list-1-2\", \"list-numeric\"], \"f0cb\", \"M24 56c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24l0 120 16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l16 0 0-96-8 0C34.7 80 24 69.3 24 56zM86.7 341.2c-6.5-7.4-18.3-6.9-24 1.2L51.5 357.9c-7.7 10.8-22.7 13.3-33.5 5.6s-13.3-22.7-5.6-33.5l11.1-15.6c23.7-33.2 72.3-35.6 99.2-4.9c21.3 24.4 20.8 60.9-1.1 84.7L86.8 432l33.2 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-88 0c-9.5 0-18.2-5.6-22-14.4s-2.1-18.9 4.3-25.9l72-78c5.3-5.8 5.4-14.6 .3-20.5zM224 64l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nconst faList12 = faListOl;\nconst faListNumeric = faListOl;\nconst faPersonDressBurst = {\n prefix: 'fas',\n iconName: 'person-dress-burst',\n icon: [640, 512, [], \"e544\", \"M528 48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM390.2 384l17.8 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 16 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 17.8 0c10.9 0 18.6-10.7 15.2-21.1L546.7 248.1l33.9 56.3c9.1 15.1 28.8 20 43.9 10.9s20-28.8 10.9-43.9l-53.6-89.2c-20.2-33.7-56.7-54.3-96-54.3l-11.6 0c-39.3 0-75.7 20.6-96 54.3l-53.6 89.2c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9l33.9-56.3L375 362.9c-3.5 10.4 4.3 21.1 15.2 21.1zM190.9 18.1C188.4 12 182.6 8 176 8s-12.4 4-14.9 10.1l-29.4 74L55.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1L10.9 206.4c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2L90.6 327c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6L176 286.1l58.6 53.9c4.8 4.4 11.9 5.5 17.8 2.6s9.5-9 9-15.5l-5.6-79.4 50.5-7.8 24.4-40.5-55.2-38L315 92.2c3.3-5.7 2.7-12.8-1.4-17.9s-10.9-7.2-17.2-5.3L220.3 92.1l-29.4-74z\"]\n};\nconst faMoneyCheckDollar = {\n prefix: 'fas',\n iconName: 'money-check-dollar',\n icon: [576, 512, [\"money-check-alt\"], \"f53d\", \"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zM272 192l224 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-224 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zM256 304c0-8.8 7.2-16 16-16l224 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-224 0c-8.8 0-16-7.2-16-16zM164 152l0 13.9c7.5 1.2 14.6 2.9 21.1 4.7c10.7 2.8 17 13.8 14.2 24.5s-13.8 17-24.5 14.2c-11-2.9-21.6-5-31.2-5.2c-7.9-.1-16 1.8-21.5 5c-4.8 2.8-6.2 5.6-6.2 9.3c0 1.8 .1 3.5 5.3 6.7c6.3 3.8 15.5 6.7 28.3 10.5l.7 .2c11.2 3.4 25.6 7.7 37.1 15c12.9 8.1 24.3 21.3 24.6 41.6c.3 20.9-10.5 36.1-24.8 45c-7.2 4.5-15.2 7.3-23.2 9l0 13.8c0 11-9 20-20 20s-20-9-20-20l0-14.6c-10.3-2.2-20-5.5-28.2-8.4c0 0 0 0 0 0s0 0 0 0c-2.1-.7-4.1-1.4-6.1-2.1c-10.5-3.5-16.1-14.8-12.6-25.3s14.8-16.1 25.3-12.6c2.5 .8 4.9 1.7 7.2 2.4c13.6 4.6 24 8.1 35.1 8.5c8.6 .3 16.5-1.6 21.4-4.7c4.1-2.5 6-5.5 5.9-10.5c0-2.9-.8-5-5.9-8.2c-6.3-4-15.4-6.9-28-10.7l-1.7-.5c-10.9-3.3-24.6-7.4-35.6-14c-12.7-7.7-24.6-20.5-24.7-40.7c-.1-21.1 11.8-35.7 25.8-43.9c6.9-4.1 14.5-6.8 22.2-8.5l0-14c0-11 9-20 20-20s20 9 20 20z\"]\n};\nconst faMoneyCheckAlt = faMoneyCheckDollar;\nconst faVectorSquare = {\n prefix: 'fas',\n iconName: 'vector-square',\n icon: [448, 512, [], \"f5cb\", \"M368 80l32 0 0 32-32 0 0-32zM352 32c-17.7 0-32 14.3-32 32L128 64c0-17.7-14.3-32-32-32L32 32C14.3 32 0 46.3 0 64l0 64c0 17.7 14.3 32 32 32l0 192c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l192 0c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l0-192c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-64 0zM96 160c17.7 0 32-14.3 32-32l192 0c0 17.7 14.3 32 32 32l0 192c-17.7 0-32 14.3-32 32l-192 0c0-17.7-14.3-32-32-32l0-192zM48 400l32 0 0 32-32 0 0-32zm320 32l0-32 32 0 0 32-32 0zM48 112l0-32 32 0 0 32-32 0z\"]\n};\nconst faBreadSlice = {\n prefix: 'fas',\n iconName: 'bread-slice',\n icon: [512, 512, [], \"f7ec\", \"M256 32C192 32 0 64 0 192c0 35.3 28.7 64 64 64V432c0 26.5 21.5 48 48 48H400c26.5 0 48-21.5 48-48V256c35.3 0 64-28.7 64-64C512 64 320 32 256 32z\"]\n};\nconst faLanguage = {\n prefix: 'fas',\n iconName: 'language',\n icon: [640, 512, [], \"f1ab\", \"M0 128C0 92.7 28.7 64 64 64l192 0 48 0 16 0 256 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64l-256 0-16 0-48 0L64 448c-35.3 0-64-28.7-64-64L0 128zm320 0l0 256 256 0 0-256-256 0zM178.3 175.9c-3.2-7.2-10.4-11.9-18.3-11.9s-15.1 4.7-18.3 11.9l-64 144c-4.5 10.1 .1 21.9 10.2 26.4s21.9-.1 26.4-10.2l8.9-20.1 73.6 0 8.9 20.1c4.5 10.1 16.3 14.6 26.4 10.2s14.6-16.3 10.2-26.4l-64-144zM160 233.2L179 276l-38 0 19-42.8zM448 164c11 0 20 9 20 20l0 4 44 0 16 0c11 0 20 9 20 20s-9 20-20 20l-2 0-1.6 4.5c-8.9 24.4-22.4 46.6-39.6 65.4c.9 .6 1.8 1.1 2.7 1.6l18.9 11.3c9.5 5.7 12.5 18 6.9 27.4s-18 12.5-27.4 6.9l-18.9-11.3c-4.5-2.7-8.8-5.5-13.1-8.5c-10.6 7.5-21.9 14-34 19.4l-3.6 1.6c-10.1 4.5-21.9-.1-26.4-10.2s.1-21.9 10.2-26.4l3.6-1.6c6.4-2.9 12.6-6.1 18.5-9.8l-12.2-12.2c-7.8-7.8-7.8-20.5 0-28.3s20.5-7.8 28.3 0l14.6 14.6 .5 .5c12.4-13.1 22.5-28.3 29.8-45L448 228l-72 0c-11 0-20-9-20-20s9-20 20-20l52 0 0-4c0-11 9-20 20-20z\"]\n};\nconst faFaceKissWinkHeart = {\n prefix: 'fas',\n iconName: 'face-kiss-wink-heart',\n icon: [512, 512, [128536, \"kiss-wink-heart\"], \"f598\", \"M498 339.7c9.1-26.2 14-54.4 14-83.7C512 114.6 397.4 0 256 0S0 114.6 0 256S114.6 512 256 512c35.4 0 69.1-7.2 99.7-20.2c-4.8-5.5-8.5-12.2-10.4-19.7l-22.9-89.3c-10-39 11.8-80.9 51.8-92.1c37.2-10.4 73.8 10.1 87.5 44c12.7-1.6 25.1 .4 36.2 5zM296 332c0 6.9-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C258.7 443.1 241.4 448 224 448c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9c0 0 0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1l-.6-.4-.3-.2-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7c0 0 0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3zM176.4 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm194.8 57.6c-17.6-23.5-52.8-23.5-70.4 0c-5.3 7.1-15.3 8.5-22.4 3.2s-8.5-15.3-3.2-22.4c30.4-40.5 91.2-40.5 121.6 0c5.3 7.1 3.9 17.1-3.2 22.4s-17.1 3.9-22.4-3.2zM434 352.3c-6-23.2-28.8-37-51.1-30.8s-35.4 30.1-29.5 53.4l22.9 89.3c2.2 8.7 11.2 13.9 19.8 11.4l84.9-23.8c22.2-6.2 35.4-30.1 29.5-53.4s-28.8-37-51.1-30.8l-20.2 5.6-5.4-21z\"]\n};\nconst faKissWinkHeart = faFaceKissWinkHeart;\nconst faFilter = {\n prefix: 'fas',\n iconName: 'filter',\n icon: [512, 512, [], \"f0b0\", \"M3.9 54.9C10.5 40.9 24.5 32 40 32l432 0c15.5 0 29.5 8.9 36.1 22.9s4.6 30.5-5.2 42.5L320 320.9 320 448c0 12.1-6.8 23.2-17.7 28.6s-23.8 4.3-33.5-3l-64-48c-8.1-6-12.8-15.5-12.8-25.6l0-79.1L9 97.3C-.7 85.4-2.8 68.8 3.9 54.9z\"]\n};\nconst faQuestion = {\n prefix: 'fas',\n iconName: 'question',\n icon: [320, 512, [10067, 10068, 61736], \"3f\", \"M80 160c0-35.3 28.7-64 64-64l32 0c35.3 0 64 28.7 64 64l0 3.6c0 21.8-11.1 42.1-29.4 53.8l-42.2 27.1c-25.2 16.2-40.4 44.1-40.4 74l0 1.4c0 17.7 14.3 32 32 32s32-14.3 32-32l0-1.4c0-8.2 4.2-15.8 11-20.2l42.2-27.1c36.6-23.6 58.8-64.1 58.8-107.7l0-3.6c0-70.7-57.3-128-128-128l-32 0C73.3 32 16 89.3 16 160c0 17.7 14.3 32 32 32s32-14.3 32-32zm80 320a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"]\n};\nconst faFileSignature = {\n prefix: 'fas',\n iconName: 'file-signature',\n icon: [576, 512, [], \"f573\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-19.3c-2.7 1.1-5.4 2-8.2 2.7l-60.1 15c-3 .7-6 1.2-9 1.4c-.9 .1-1.8 .2-2.7 .2l-64 0c-6.1 0-11.6-3.4-14.3-8.8l-8.8-17.7c-1.7-3.4-5.1-5.5-8.8-5.5s-7.2 2.1-8.8 5.5l-8.8 17.7c-2.9 5.9-9.2 9.4-15.7 8.8s-12.1-5.1-13.9-11.3L144 381l-9.8 32.8c-6.1 20.3-24.8 34.2-46 34.2L80 448c-8.8 0-16-7.2-16-16s7.2-16 16-16l8.2 0c7.1 0 13.3-4.6 15.3-11.4l14.9-49.5c3.4-11.3 13.8-19.1 25.6-19.1s22.2 7.8 25.6 19.1l11.6 38.6c7.4-6.2 16.8-9.7 26.8-9.7c15.9 0 30.4 9 37.5 23.2l4.4 8.8 8.9 0c-3.1-8.8-3.7-18.4-1.4-27.8l15-60.1c2.8-11.3 8.6-21.5 16.8-29.7L384 203.6l0-43.6-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM549.8 139.7c-15.6-15.6-40.9-15.6-56.6 0l-29.4 29.4 71 71 29.4-29.4c15.6-15.6 15.6-40.9 0-56.6l-14.4-14.4zM311.9 321c-4.1 4.1-7 9.2-8.4 14.9l-15 60.1c-1.4 5.5 .2 11.2 4.2 15.2s9.7 5.6 15.2 4.2l60.1-15c5.6-1.4 10.8-4.3 14.9-8.4L512.1 262.7l-71-71L311.9 321z\"]\n};\nconst faUpDownLeftRight = {\n prefix: 'fas',\n iconName: 'up-down-left-right',\n icon: [512, 512, [\"arrows-alt\"], \"f0b2\", \"M278.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l32 0 0 96-96 0 0-32c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6l0-32 96 0 0 96-32 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8l-32 0 0-96 96 0 0 32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9s-19.8 16.6-19.8 29.6l0 32-96 0 0-96 32 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64z\"]\n};\nconst faArrowsAlt = faUpDownLeftRight;\nconst faHouseChimneyUser = {\n prefix: 'fas',\n iconName: 'house-chimney-user',\n icon: [576, 512, [], \"e065\", \"M543.8 287.6c17 0 32-14 32-32.1c1-9-3-17-11-24L512 185l0-121c0-17.7-14.3-32-32-32l-32 0c-17.7 0-32 14.3-32 32l0 36.7L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1l32 0 0 160.4c0 35.3 28.7 64 64 64l320.4 0c35.5 0 64.2-28.8 64-64.3l-.7-160.2 32 0zM288 160a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM176 400c0-44.2 35.8-80 80-80l64 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16z\"]\n};\nconst faHandHoldingHeart = {\n prefix: 'fas',\n iconName: 'hand-holding-heart',\n icon: [576, 512, [], \"f4be\", \"M163.9 136.9c-29.4-29.8-29.4-78.2 0-108s77-29.8 106.4 0l17.7 18 17.7-18c29.4-29.8 77-29.8 106.4 0s29.4 78.2 0 108L310.5 240.1c-6.2 6.3-14.3 9.4-22.5 9.4s-16.3-3.1-22.5-9.4L163.9 136.9zM568.2 336.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5L192 512 32 512c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l36.8 0 44.9-36c22.7-18.2 50.9-28 80-28l78.3 0 16 0 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0-16 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l120.6 0 119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 384c0 0 0 0 0 0l-.9 0c.3 0 .6 0 .9 0z\"]\n};\nconst faPuzzlePiece = {\n prefix: 'fas',\n iconName: 'puzzle-piece',\n icon: [512, 512, [129513], \"f12e\", \"M192 104.8c0-9.2-5.8-17.3-13.2-22.8C167.2 73.3 160 61.3 160 48c0-26.5 28.7-48 64-48s64 21.5 64 48c0 13.3-7.2 25.3-18.8 34c-7.4 5.5-13.2 13.6-13.2 22.8c0 12.8 10.4 23.2 23.2 23.2l56.8 0c26.5 0 48 21.5 48 48l0 56.8c0 12.8 10.4 23.2 23.2 23.2c9.2 0 17.3-5.8 22.8-13.2c8.7-11.6 20.7-18.8 34-18.8c26.5 0 48 28.7 48 64s-21.5 64-48 64c-13.3 0-25.3-7.2-34-18.8c-5.5-7.4-13.6-13.2-22.8-13.2c-12.8 0-23.2 10.4-23.2 23.2L384 464c0 26.5-21.5 48-48 48l-56.8 0c-12.8 0-23.2-10.4-23.2-23.2c0-9.2 5.8-17.3 13.2-22.8c11.6-8.7 18.8-20.7 18.8-34c0-26.5-28.7-48-64-48s-64 21.5-64 48c0 13.3 7.2 25.3 18.8 34c7.4 5.5 13.2 13.6 13.2 22.8c0 12.8-10.4 23.2-23.2 23.2L48 512c-26.5 0-48-21.5-48-48L0 343.2C0 330.4 10.4 320 23.2 320c9.2 0 17.3 5.8 22.8 13.2C54.7 344.8 66.7 352 80 352c26.5 0 48-28.7 48-64s-21.5-64-48-64c-13.3 0-25.3 7.2-34 18.8C40.5 250.2 32.4 256 23.2 256C10.4 256 0 245.6 0 232.8L0 176c0-26.5 21.5-48 48-48l120.8 0c12.8 0 23.2-10.4 23.2-23.2z\"]\n};\nconst faMoneyCheck = {\n prefix: 'fas',\n iconName: 'money-check',\n icon: [576, 512, [], \"f53c\", \"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm48 160l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zM96 336c0-8.8 7.2-16 16-16l352 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-352 0c-8.8 0-16-7.2-16-16zM376 160l80 0c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24z\"]\n};\nconst faStarHalfStroke = {\n prefix: 'fas',\n iconName: 'star-half-stroke',\n icon: [576, 512, [\"star-half-alt\"], \"f5c0\", \"M288 376.4l.1-.1 26.4 14.1 85.2 45.5-16.5-97.6-4.8-28.7 20.7-20.5 70.1-69.3-96.1-14.2-29.3-4.3-12.9-26.6L288.1 86.9l-.1 .3 0 289.2zm175.1 98.3c2 12-3 24.2-12.9 31.3s-23 8-33.8 2.3L288.1 439.8 159.8 508.3C149 514 135.9 513.1 126 506s-14.9-19.3-12.9-31.3L137.8 329 33.6 225.9c-8.6-8.5-11.7-21.2-7.9-32.7s13.7-19.9 25.7-21.7L195 150.3 259.4 18c5.4-11 16.5-18 28.8-18s23.4 7 28.8 18l64.3 132.3 143.6 21.2c12 1.8 22 10.2 25.7 21.7s.7 24.2-7.9 32.7L438.5 329l24.6 145.7z\"]\n};\nconst faStarHalfAlt = faStarHalfStroke;\nconst faCode = {\n prefix: 'fas',\n iconName: 'code',\n icon: [640, 512, [], \"f121\", \"M392.8 1.2c-17-4.9-34.7 5-39.6 22l-128 448c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l128-448c4.9-17-5-34.7-22-39.6zm80.6 120.1c-12.5 12.5-12.5 32.8 0 45.3L562.7 256l-89.4 89.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l112-112c12.5-12.5 12.5-32.8 0-45.3l-112-112c-12.5-12.5-32.8-12.5-45.3 0zm-306.7 0c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3l112 112c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256l89.4-89.4c12.5-12.5 12.5-32.8 0-45.3z\"]\n};\nconst faWhiskeyGlass = {\n prefix: 'fas',\n iconName: 'whiskey-glass',\n icon: [512, 512, [129347, \"glass-whiskey\"], \"f7a0\", \"M32 32c-9.3 0-18.1 4-24.2 11.1S-1 59.4 .3 68.6l50 342.9c5.7 39.3 39.4 68.5 79.2 68.5l253 0c39.7 0 73.4-29.1 79.2-68.5l50-342.9c1.3-9.2-1.4-18.5-7.5-25.5S489.3 32 480 32L32 32zM87.7 224L69 96l374 0L424.3 224 87.7 224z\"]\n};\nconst faGlassWhiskey = faWhiskeyGlass;\nconst faBuildingCircleExclamation = {\n prefix: 'fas',\n iconName: 'building-circle-exclamation',\n icon: [640, 512, [], \"e4d3\", \"M48 0C21.5 0 0 21.5 0 48L0 464c0 26.5 21.5 48 48 48l96 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 96 0c15.1 0 28.5-6.9 37.3-17.8C340.4 462.2 320 417.5 320 368c0-54.7 24.9-103.5 64-135.8L384 48c0-26.5-21.5-48-48-48L48 0zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm112-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM80 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"]\n};\nconst faMagnifyingGlassChart = {\n prefix: 'fas',\n iconName: 'magnifying-glass-chart',\n icon: [512, 512, [], \"e522\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zm-312 8l0 64c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64c0-13.3-10.7-24-24-24s-24 10.7-24 24zm80-96l0 160c0 13.3 10.7 24 24 24s24-10.7 24-24l0-160c0-13.3-10.7-24-24-24s-24 10.7-24 24zm80 64l0 96c0 13.3 10.7 24 24 24s24-10.7 24-24l0-96c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"]\n};\nconst faArrowUpRightFromSquare = {\n prefix: 'fas',\n iconName: 'arrow-up-right-from-square',\n icon: [512, 512, [\"external-link\"], \"f08e\", \"M320 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l82.7 0L201.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L448 109.3l0 82.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-17.7-14.3-32-32-32L320 0zM80 32C35.8 32 0 67.8 0 112L0 432c0 44.2 35.8 80 80 80l320 0c44.2 0 80-35.8 80-80l0-112c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 112c0 8.8-7.2 16-16 16L80 448c-8.8 0-16-7.2-16-16l0-320c0-8.8 7.2-16 16-16l112 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 32z\"]\n};\nconst faExternalLink = faArrowUpRightFromSquare;\nconst faCubesStacked = {\n prefix: 'fas',\n iconName: 'cubes-stacked',\n icon: [448, 512, [], \"e4e6\", \"M192 64l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32zM82.7 207c-15.3 8.8-20.5 28.4-11.7 43.7l32 55.4c8.8 15.3 28.4 20.5 43.7 11.7l55.4-32c15.3-8.8 20.5-28.4 11.7-43.7l-32-55.4c-8.8-15.3-28.4-20.5-43.7-11.7L82.7 207zM288 192c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-64 0zm64 160c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-64 0zM160 384l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32zM32 352c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-64 0z\"]\n};\nconst faWonSign = {\n prefix: 'fas',\n iconName: 'won-sign',\n icon: [512, 512, [8361, \"krw\", \"won\"], \"f159\", \"M62.4 53.9C56.8 37.1 38.6 28.1 21.9 33.6S-3.9 57.4 1.6 74.1L51.6 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l40.9 0 56.7 170.1c4.5 13.5 17.4 22.4 31.6 21.9s26.4-10.4 29.8-24.2L233 288l46 0L321 455.8c3.4 13.8 15.6 23.7 29.8 24.2s27.1-8.4 31.6-21.9L439.1 288l40.9 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-19.6 0 50-149.9c5.6-16.8-3.5-34.9-20.2-40.5s-34.9 3.5-40.5 20.2L392.9 224l-64 0L287 56.2C283.5 42 270.7 32 256 32s-27.5 10-31 24.2L183 224l-64 0L62.4 53.9zm78 234.1l26.6 0-11.4 45.6L140.4 288zM249 224l7-28.1 7 28.1-14 0zm96 64l26.6 0-15.2 45.6L345 288z\"]\n};\nconst faKrw = faWonSign;\nconst faWon = faWonSign;\nconst faVirusCovid = {\n prefix: 'fas',\n iconName: 'virus-covid',\n icon: [512, 512, [], \"e4a8\", \"M192 24c0-13.3 10.7-24 24-24l80 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0 0 33.6c30.7 4.2 58.8 16.3 82.3 34.1L386.1 92 374.8 80.6c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l56.6 56.6c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L420 125.9l-23.8 23.8c17.9 23.5 29.9 51.7 34.1 82.3l33.6 0 0-16c0-13.3 10.7-24 24-24s24 10.7 24 24l0 80c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-16-33.6 0c-4.2 30.7-16.3 58.8-34.1 82.3L420 386.1l11.3-11.3c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-56.6 56.6c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L386.1 420l-23.8-23.8c-23.5 17.9-51.7 29.9-82.3 34.1l0 33.6 16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l16 0 0-33.6c-30.7-4.2-58.8-16.3-82.3-34.1L125.9 420l11.3 11.3c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L46.7 408.7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L92 386.1l23.8-23.8C97.9 338.8 85.8 310.7 81.6 280L48 280l0 16c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-80c0-13.3 10.7-24 24-24s24 10.7 24 24l0 16 33.6 0c4.2-30.7 16.3-58.8 34.1-82.3L92 125.9 80.6 137.2c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l56.6-56.6c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L125.9 92l23.8 23.8c23.5-17.9 51.7-29.9 82.3-34.1L232 48l-16 0c-13.3 0-24-10.7-24-24zm48 200a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm64 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nconst faAustralSign = {\n prefix: 'fas',\n iconName: 'austral-sign',\n icon: [448, 512, [], \"e0a9\", \"M253.5 51.7C248.6 39.8 236.9 32 224 32s-24.6 7.8-29.5 19.7L122.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0L82.7 320 32 320c-17.7 0-32 14.3-32 32s14.3 32 32 32l24 0L34.5 435.7c-6.8 16.3 .9 35 17.2 41.8s35-.9 41.8-17.2L125.3 384l197.3 0 31.8 76.3c6.8 16.3 25.5 24 41.8 17.2s24-25.5 17.2-41.8L392 384l24 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-50.7 0L352 288l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-90.7 0L253.5 51.7zM256 224l-64 0 32-76.8L256 224zm-90.7 64l117.3 0L296 320l-144 0 13.3-32z\"]\n};\nconst faF = {\n prefix: 'fas',\n iconName: 'f',\n icon: [320, 512, [102], \"46\", \"M64 32C28.7 32 0 60.7 0 96L0 256 0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160 160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 224 64 96l224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 32z\"]\n};\nconst faLeaf = {\n prefix: 'fas',\n iconName: 'leaf',\n icon: [512, 512, [], \"f06c\", \"M272 96c-78.6 0-145.1 51.5-167.7 122.5c33.6-17 71.5-26.5 111.7-26.5l88 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-16 0-72 0s0 0 0 0c-16.6 0-32.7 1.9-48.3 5.4c-25.9 5.9-49.9 16.4-71.4 30.7c0 0 0 0 0 0C38.3 298.8 0 364.9 0 440l0 16c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16c0-48.7 20.7-92.5 53.8-123.2C121.6 392.3 190.3 448 272 448l1 0c132.1-.7 239-130.9 239-291.4c0-42.6-7.5-83.1-21.1-119.6c-2.6-6.9-12.7-6.6-16.2-.1C455.9 72.1 418.7 96 376 96L272 96z\"]\n};\nconst faRoad = {\n prefix: 'fas',\n iconName: 'road',\n icon: [576, 512, [128739], \"f018\", \"M256 32l-74.8 0c-27.1 0-51.3 17.1-60.3 42.6L3.1 407.2C1.1 413 0 419.2 0 425.4C0 455.5 24.5 480 54.6 480L256 480l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64 201.4 0c30.2 0 54.6-24.5 54.6-54.6c0-6.2-1.1-12.4-3.1-18.2L455.1 74.6C446 49.1 421.9 32 394.8 32L320 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm64 192l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32z\"]\n};\nconst faTaxi = {\n prefix: 'fas',\n iconName: 'taxi',\n icon: [512, 512, [128662, \"cab\"], \"f1ba\", \"M192 0c-17.7 0-32 14.3-32 32l0 32 0 .2c-38.6 2.2-72.3 27.3-85.2 64.1L39.6 228.8C16.4 238.4 0 261.3 0 288L0 432l0 48c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-48 320 0 0 48c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-48 0-144c0-26.7-16.4-49.6-39.6-59.2L437.2 128.3c-12.9-36.8-46.6-62-85.2-64.1l0-.2 0-32c0-17.7-14.3-32-32-32L192 0zM165.4 128l181.2 0c13.6 0 25.7 8.6 30.2 21.4L402.9 224l-293.8 0 26.1-74.6c4.5-12.8 16.6-21.4 30.2-21.4zM96 288a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm288 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nconst faCab = faTaxi;\nconst faPersonCirclePlus = {\n prefix: 'fas',\n iconName: 'person-circle-plus',\n icon: [576, 512, [], \"e541\", \"M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-223.1L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6l29.7 0c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9 232 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0zM432 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm16 80c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 48-48 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16s16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-48 0 0-48z\"]\n};\nconst faChartPie = {\n prefix: 'fas',\n iconName: 'chart-pie',\n icon: [576, 512, [\"pie-chart\"], \"f200\", \"M304 240l0-223.4c0-9 7-16.6 16-16.6C443.7 0 544 100.3 544 224c0 9-7.6 16-16.6 16L304 240zM32 272C32 150.7 122.1 50.3 239 34.3c9.2-1.3 17 6.1 17 15.4L256 288 412.5 444.5c6.7 6.7 6.2 17.7-1.5 23.1C371.8 495.6 323.8 512 272 512C139.5 512 32 404.6 32 272zm526.4 16c9.3 0 16.6 7.8 15.4 17c-7.7 55.9-34.6 105.6-73.9 142.3c-6 5.6-15.4 5.2-21.2-.7L320 288l238.4 0z\"]\n};\nconst faPieChart = faChartPie;\nconst faBoltLightning = {\n prefix: 'fas',\n iconName: 'bolt-lightning',\n icon: [384, 512, [], \"e0b7\", \"M0 256L28.5 28c2-16 15.6-28 31.8-28H228.9c15 0 27.1 12.1 27.1 27.1c0 3.2-.6 6.5-1.7 9.5L208 160H347.3c20.2 0 36.7 16.4 36.7 36.7c0 7.4-2.2 14.6-6.4 20.7l-192.2 281c-5.9 8.6-15.6 13.7-25.9 13.7h-2.9c-15.7 0-28.5-12.8-28.5-28.5c0-2.3 .3-4.6 .9-6.9L176 288H32c-17.7 0-32-14.3-32-32z\"]\n};\nconst faSackXmark = {\n prefix: 'fas',\n iconName: 'sack-xmark',\n icon: [512, 512, [], \"e56a\", \"M192 96l128 0 47.4-71.1C374.5 14.2 366.9 0 354.1 0L157.9 0c-12.8 0-20.4 14.2-13.3 24.9L192 96zm128 32l-128 0c-3.8 2.5-8.1 5.3-13 8.4c0 0 0 0 0 0s0 0 0 0C122.3 172.7 0 250.9 0 416c0 53 43 96 96 96l320 0c53 0 96-43 96-96c0-165.1-122.3-243.3-179-279.6c-4.8-3.1-9.2-5.9-13-8.4zM289.9 336l47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47z\"]\n};\nconst faFileExcel = {\n prefix: 'fas',\n iconName: 'file-excel',\n icon: [384, 512, [], \"f1c3\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM155.7 250.2L192 302.1l36.3-51.9c7.6-10.9 22.6-13.5 33.4-5.9s13.5 22.6 5.9 33.4L221.3 344l46.4 66.2c7.6 10.9 5 25.8-5.9 33.4s-25.8 5-33.4-5.9L192 385.8l-36.3 51.9c-7.6 10.9-22.6 13.5-33.4 5.9s-13.5-22.6-5.9-33.4L162.7 344l-46.4-66.2c-7.6-10.9-5-25.8 5.9-33.4s25.8-5 33.4 5.9z\"]\n};\nconst faFileContract = {\n prefix: 'fas',\n iconName: 'file-contract',\n icon: [384, 512, [], \"f56c\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM80 64l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L80 96c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm54.2 253.8c-6.1 20.3-24.8 34.2-46 34.2L80 416c-8.8 0-16-7.2-16-16s7.2-16 16-16l8.2 0c7.1 0 13.3-4.6 15.3-11.4l14.9-49.5c3.4-11.3 13.8-19.1 25.6-19.1s22.2 7.7 25.6 19.1l11.6 38.6c7.4-6.2 16.8-9.7 26.8-9.7c15.9 0 30.4 9 37.5 23.2l4.4 8.8 54.1 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0c-6.1 0-11.6-3.4-14.3-8.8l-8.8-17.7c-1.7-3.4-5.1-5.5-8.8-5.5s-7.2 2.1-8.8 5.5l-8.8 17.7c-2.9 5.9-9.2 9.4-15.7 8.8s-12.1-5.1-13.9-11.3L144 349l-9.8 32.8z\"]\n};\nconst faFishFins = {\n prefix: 'fas',\n iconName: 'fish-fins',\n icon: [576, 512, [], \"e4f2\", \"M275.2 38.4c-10.6-8-25-8.5-36.3-1.5S222 57.3 224.6 70.3l9.7 48.6c-19.4 9-36.9 19.9-52.4 31.5c-15.3 11.5-29 23.9-40.7 36.3L48.1 132.4c-12.5-7.3-28.4-5.3-38.6 4.9S-3 163.3 4.2 175.9L50 256 4.2 336.1c-7.2 12.6-5 28.4 5.3 38.6s26.1 12.2 38.6 4.9l93.1-54.3c11.8 12.3 25.4 24.8 40.7 36.3c15.5 11.6 33 22.5 52.4 31.5l-9.7 48.6c-2.6 13 3.1 26.3 14.3 33.3s25.6 6.5 36.3-1.5l77.6-58.2c54.9-4 101.5-27 137.2-53.8c39.2-29.4 67.2-64.7 81.6-89.5c5.8-9.9 5.8-22.2 0-32.1c-14.4-24.8-42.5-60.1-81.6-89.5c-35.8-26.8-82.3-49.8-137.2-53.8L275.2 38.4zM384 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nconst faBuildingFlag = {\n prefix: 'fas',\n iconName: 'building-flag',\n icon: [640, 512, [], \"e4d5\", \"M48 0C21.5 0 0 21.5 0 48L0 464c0 26.5 21.5 48 48 48l96 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 96 0c26.5 0 48-21.5 48-48l0-416c0-26.5-21.5-48-48-48L48 0zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm112-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM80 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM448 0c-17.7 0-32 14.3-32 32l0 480 64 0 0-320 144 0c8.8 0 16-7.2 16-16l0-128c0-8.8-7.2-16-16-16L480 32c0-17.7-14.3-32-32-32z\"]\n};\nconst faFaceGrinBeam = {\n prefix: 'fas',\n iconName: 'face-grin-beam',\n icon: [512, 512, [128516, \"grin-beam\"], \"f582\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zm-170.5-84s0 0 0 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0zm160 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0z\"]\n};\nconst faGrinBeam = faFaceGrinBeam;\nconst faObjectUngroup = {\n prefix: 'fas',\n iconName: 'object-ungroup',\n icon: [640, 512, [], \"f248\", \"M32 119.4C12.9 108.4 0 87.7 0 64C0 28.7 28.7 0 64 0c23.7 0 44.4 12.9 55.4 32l209.1 0C339.6 12.9 360.3 0 384 0c35.3 0 64 28.7 64 64c0 23.7-12.9 44.4-32 55.4l0 113.1c19.1 11.1 32 31.7 32 55.4c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32l-209.1 0c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4l0-113.1zM119.4 96c-5.6 9.7-13.7 17.8-23.4 23.4l0 113.1c9.7 5.6 17.8 13.7 23.4 23.4l209.1 0c5.6-9.7 13.7-17.8 23.4-23.4l0-113.1c-9.7-5.6-17.8-13.7-23.4-23.4L119.4 96zm192 384c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4l0-40.6 64 0 0 40.6c9.7 5.6 17.8 13.7 23.4 23.4l209.1 0c5.6-9.7 13.7-17.8 23.4-23.4l0-113.1c-9.7-5.6-17.8-13.7-23.4-23.4l-46 0c-5.4-15.4-14.6-28.9-26.5-39.6l0-24.4 72.6 0c11.1-19.1 31.7-32 55.4-32c35.3 0 64 28.7 64 64c0 23.7-12.9 44.4-32 55.4l0 113.1c19.1 11.1 32 31.7 32 55.4c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32l-209.1 0z\"]\n};\nconst faPoop = {\n prefix: 'fas',\n iconName: 'poop',\n icon: [512, 512, [], \"f619\", \"M254.4 6.6c3.5-4.3 9-6.5 14.5-5.7C315.8 7.2 352 47.4 352 96c0 11.2-1.9 22-5.5 32l5.5 0c35.3 0 64 28.7 64 64c0 19.1-8.4 36.3-21.7 48l13.7 0c39.8 0 72 32.2 72 72c0 23.2-11 43.8-28 57c34.1 5.7 60 35.3 60 71c0 39.8-32.2 72-72 72L72 512c-39.8 0-72-32.2-72-72c0-35.7 25.9-65.3 60-71c-17-13.2-28-33.8-28-57c0-39.8 32.2-72 72-72l13.7 0C104.4 228.3 96 211.1 96 192c0-35.3 28.7-64 64-64l16.2 0c44.1-.1 79.8-35.9 79.8-80c0-9.2-1.5-17.9-4.3-26.1c-1.8-5.2-.8-11.1 2.8-15.4z\"]\n};\nconst faLocationPin = {\n prefix: 'fas',\n iconName: 'location-pin',\n icon: [384, 512, [\"map-marker\"], \"f041\", \"M384 192c0 87.4-117 243-168.3 307.2c-12.3 15.3-35.1 15.3-47.4 0C117 435 0 279.4 0 192C0 86 86 0 192 0S384 86 384 192z\"]\n};\nconst faMapMarker = faLocationPin;\nconst faKaaba = {\n prefix: 'fas',\n iconName: 'kaaba',\n icon: [576, 512, [128331], \"f66b\", \"M60 120l228 71.2L516 120 288 48.8 60 120zM278.5 1.5c6.2-1.9 12.9-1.9 19.1 0l256 80C566.9 85.6 576 98 576 112l0 16s0 0 0 0l0 21.2L292.8 237.7c-3.1 1-6.4 1-9.5 0L0 149.2 0 128l0-16C0 98 9.1 85.6 22.5 81.5l256-80zm23.9 266.8L576 182.8l0 46.5-52.8 16.5c-8.4 2.6-13.1 11.6-10.5 20s11.6 13.1 20 10.5L576 262.8 576 400c0 14-9.1 26.4-22.5 30.5l-256 80c-6.2 1.9-12.9 1.9-19.1 0l-256-80C9.1 426.4 0 414 0 400L0 262.8l43.2 13.5c8.4 2.6 17.4-2.1 20-10.5s-2.1-17.4-10.5-20L0 229.2l0-46.5 273.7 85.5c9.3 2.9 19.3 2.9 28.6 0zm-185.5-2.6c-8.4-2.6-17.4 2.1-20 10.5s2.1 17.4 10.5 20l64 20c8.4 2.6 17.4-2.1 20-10.5s-2.1-17.4-10.5-20l-64-20zm352 30.5c8.4-2.6 13.1-11.6 10.5-20s-11.6-13.1-20-10.5l-64 20c-8.4 2.6-13.1 11.6-10.5 20s11.6 13.1 20 10.5l64-20zm-224 9.5c-8.4-2.6-17.4 2.1-20 10.5s2.1 17.4 10.5 20l38.5 12c9.3 2.9 19.3 2.9 28.6 0l38.5-12c8.4-2.6 13.1-11.6 10.5-20s-11.6-13.1-20-10.5l-38.5 12c-3.1 1-6.4 1-9.5 0l-38.5-12z\"]\n};\nconst faToiletPaper = {\n prefix: 'fas',\n iconName: 'toilet-paper',\n icon: [640, 512, [129531], \"f71e\", \"M444.2 0C397.2 49.6 384 126.5 384 192c0 158.8-27.3 247-42.7 283.9c-10 24-33.2 36.1-55.4 36.1L48 512c-11.5 0-22.2-6.2-27.8-16.2s-5.6-22.3 .4-32.2c9.8-17.7 15.4-38.2 20.5-57.7C52.3 362.8 64 293.5 64 192C64 86 107 0 160 0L444.2 0zM512 384c-53 0-96-86-96-192S459 0 512 0s96 86 96 192s-43 192-96 192zm0-128c17.7 0 32-28.7 32-64s-14.3-64-32-64s-32 28.7-32 64s14.3 64 32 64zM144 208a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm64 0a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm48 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm80-16a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z\"]\n};\nconst faHelmetSafety = {\n prefix: 'fas',\n iconName: 'helmet-safety',\n icon: [576, 512, [\"hard-hat\", \"hat-hard\"], \"f807\", \"M256 32c-17.7 0-32 14.3-32 32l0 2.3 0 99.6c0 5.6-4.5 10.1-10.1 10.1c-3.6 0-7-1.9-8.8-5.1L157.1 87C83 123.5 32 199.8 32 288l0 64 512 0 0-66.4c-.9-87.2-51.7-162.4-125.1-198.6l-48 83.9c-1.8 3.2-5.2 5.1-8.8 5.1c-5.6 0-10.1-4.5-10.1-10.1l0-99.6 0-2.3c0-17.7-14.3-32-32-32l-64 0zM16.6 384C7.4 384 0 391.4 0 400.6c0 4.7 2 9.2 5.8 11.9C27.5 428.4 111.8 480 288 480s260.5-51.6 282.2-67.5c3.8-2.8 5.8-7.2 5.8-11.9c0-9.2-7.4-16.6-16.6-16.6L16.6 384z\"]\n};\nconst faHardHat = faHelmetSafety;\nconst faHatHard = faHelmetSafety;\nconst faEject = {\n prefix: 'fas',\n iconName: 'eject',\n icon: [448, 512, [9167], \"f052\", \"M224 32c13.5 0 26.3 5.6 35.4 15.6l176 192c12.9 14 16.2 34.3 8.6 51.8S419 320 400 320L48 320c-19 0-36.3-11.2-43.9-28.7s-4.3-37.7 8.6-51.8l176-192C197.7 37.6 210.5 32 224 32zM0 432c0-26.5 21.5-48 48-48l352 0c26.5 0 48 21.5 48 48s-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48z\"]\n};\nconst faCircleRight = {\n prefix: 'fas',\n iconName: 'circle-right',\n icon: [512, 512, [61838, \"arrow-alt-circle-right\"], \"f35a\", \"M0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zm395.3 11.3l-112 112c-4.6 4.6-11.5 5.9-17.4 3.5s-9.9-8.3-9.9-14.8l0-64-96 0c-17.7 0-32-14.3-32-32l0-32c0-17.7 14.3-32 32-32l96 0 0-64c0-6.5 3.9-12.3 9.9-14.8s12.9-1.1 17.4 3.5l112 112c6.2 6.2 6.2 16.4 0 22.6z\"]\n};\nconst faArrowAltCircleRight = faCircleRight;\nconst faPlaneCircleCheck = {\n prefix: 'fas',\n iconName: 'plane-circle-check',\n icon: [640, 512, [], \"e555\", \"M256 0c-35 0-64 59.5-64 93.7l0 84.6L8.1 283.4c-5 2.8-8.1 8.2-8.1 13.9l0 65.5c0 10.6 10.2 18.3 20.4 15.4l171.6-49 0 70.9-57.6 43.2c-4 3-6.4 7.8-6.4 12.8l0 42c0 7.8 6.3 14 14 14c1.3 0 2.6-.2 3.9-.5L256 480l110.1 31.5c1.3 .4 2.6 .5 3.9 .5c6 0 11.1-3.7 13.1-9C344.5 470.7 320 422.2 320 368c0-60.6 30.6-114 77.1-145.6L320 178.3l0-84.6C320 59.5 292 0 256 0zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"]\n};\nconst faFaceRollingEyes = {\n prefix: 'fas',\n iconName: 'face-rolling-eyes',\n icon: [512, 512, [128580, \"meh-rolling-eyes\"], \"f5a5\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM192 368l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm32-144c0 35.3-28.7 64-64 64s-64-28.7-64-64c0-26 15.5-48.4 37.8-58.4c-3.7 5.2-5.8 11.6-5.8 18.4c0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.9-2.2-13.2-5.8-18.4C208.5 175.6 224 198 224 224zm128 64c-35.3 0-64-28.7-64-64c0-26 15.5-48.4 37.8-58.4c-3.7 5.2-5.8 11.6-5.8 18.4c0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.9-2.2-13.2-5.8-18.4C400.5 175.6 416 198 416 224c0 35.3-28.7 64-64 64z\"]\n};\nconst faMehRollingEyes = faFaceRollingEyes;\nconst faObjectGroup = {\n prefix: 'fas',\n iconName: 'object-group',\n icon: [576, 512, [], \"f247\", \"M32 119.4C12.9 108.4 0 87.7 0 64C0 28.7 28.7 0 64 0c23.7 0 44.4 12.9 55.4 32l337.1 0C467.6 12.9 488.3 0 512 0c35.3 0 64 28.7 64 64c0 23.7-12.9 44.4-32 55.4l0 273.1c19.1 11.1 32 31.7 32 55.4c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32l-337.1 0c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4l0-273.1zM456.6 96L119.4 96c-5.6 9.7-13.7 17.8-23.4 23.4l0 273.1c9.7 5.6 17.8 13.7 23.4 23.4l337.1 0c5.6-9.7 13.7-17.8 23.4-23.4l0-273.1c-9.7-5.6-17.8-13.7-23.4-23.4zM128 160c0-17.7 14.3-32 32-32l128 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-96zM256 320l32 0c35.3 0 64-28.7 64-64l0-32 64 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-32z\"]\n};\nconst faChartLine = {\n prefix: 'fas',\n iconName: 'chart-line',\n icon: [512, 512, [\"line-chart\"], \"f201\", \"M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 400c0 44.2 35.8 80 80 80l400 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 416c-8.8 0-16-7.2-16-16L64 64zm406.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L320 210.7l-57.4-57.4c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L240 221.3l57.4 57.4c12.5 12.5 32.8 12.5 45.3 0l128-128z\"]\n};\nconst faLineChart = faChartLine;\nconst faMaskVentilator = {\n prefix: 'fas',\n iconName: 'mask-ventilator',\n icon: [640, 512, [], \"e524\", \"M159.1 176C139.4 219.2 128 264.7 128 300.8c0 15.9 2.2 31.4 6.3 46l-31.8-7.9C70.5 330.9 48 302.1 48 269l0-85c0-4.4 3.6-8 8-8l103.1 0zm26-48L56 128c-30.9 0-56 25.1-56 56l0 85c0 55.1 37.5 103.1 90.9 116.4l71.3 17.8c22.7 30.5 55.4 54.1 93.8 66.6l0-76.6c-19.7-16.4-32-40.3-32-66.9c0-49.5 43-134.4 96-134.4c52.5 0 96 84.9 96 134.4c0 26.7-12.4 50.4-32 66.8l0 76.6c38-12.6 70.6-36 93.5-66.4l71.6-17.9C602.5 372.1 640 324.1 640 269l0-85c0-30.9-25.1-56-56-56l-129.5 0C419.7 73.8 372.1 32 320 32c-52.6 0-100.2 41.8-134.9 96zm295.6 48L584 176c4.4 0 8 3.6 8 8l0 85c0 33-22.5 61.8-54.5 69.9l-31.8 8c4.2-14.7 6.4-30.1 6.4-46.1c0-36.1-11.6-81.6-31.3-124.8zM288 320l0 192 64 0 0-192c0-17.7-14.3-32-32-32s-32 14.3-32 32z\"]\n};\nconst faArrowRight = {\n prefix: 'fas',\n iconName: 'arrow-right',\n icon: [448, 512, [8594], \"f061\", \"M438.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.8 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l306.7 0L233.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160z\"]\n};\nconst faSignsPost = {\n prefix: 'fas',\n iconName: 'signs-post',\n icon: [512, 512, [\"map-signs\"], \"f277\", \"M224 32L64 32C46.3 32 32 46.3 32 64l0 64c0 17.7 14.3 32 32 32l377.4 0c4.2 0 8.3-1.7 11.3-4.7l48-48c6.2-6.2 6.2-16.4 0-22.6l-48-48c-3-3-7.1-4.7-11.3-4.7L288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32zM480 256c0-17.7-14.3-32-32-32l-160 0 0-32-64 0 0 32L70.6 224c-4.2 0-8.3 1.7-11.3 4.7l-48 48c-6.2 6.2-6.2 16.4 0 22.6l48 48c3 3 7.1 4.7 11.3 4.7L448 352c17.7 0 32-14.3 32-32l0-64zM288 480l0-96-64 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32z\"]\n};\nconst faMapSigns = faSignsPost;\nconst faCashRegister = {\n prefix: 'fas',\n iconName: 'cash-register',\n icon: [512, 512, [], \"f788\", \"M64 0C46.3 0 32 14.3 32 32l0 64c0 17.7 14.3 32 32 32l80 0 0 32-57 0c-31.6 0-58.5 23.1-63.3 54.4L1.1 364.1C.4 368.8 0 373.6 0 378.4L0 448c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-69.6c0-4.8-.4-9.6-1.1-14.4L488.2 214.4C483.5 183.1 456.6 160 425 160l-217 0 0-32 80 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32L64 0zM96 48l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L96 80c-8.8 0-16-7.2-16-16s7.2-16 16-16zM64 432c0-8.8 7.2-16 16-16l352 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L80 448c-8.8 0-16-7.2-16-16zm48-168a24 24 0 1 1 0-48 24 24 0 1 1 0 48zm120-24a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM160 344a24 24 0 1 1 0-48 24 24 0 1 1 0 48zM328 240a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM256 344a24 24 0 1 1 0-48 24 24 0 1 1 0 48zM424 240a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM352 344a24 24 0 1 1 0-48 24 24 0 1 1 0 48z\"]\n};\nconst faPersonCircleQuestion = {\n prefix: 'fas',\n iconName: 'person-circle-question',\n icon: [576, 512, [], \"e542\", \"M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-223.1L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6l29.7 0c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9 232 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0zM432 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 240a24 24 0 1 0 0-48 24 24 0 1 0 0 48zM368 321.6l0 6.4c0 8.8 7.2 16 16 16s16-7.2 16-16l0-6.4c0-5.3 4.3-9.6 9.6-9.6l40.5 0c7.7 0 13.9 6.2 13.9 13.9c0 5.2-2.9 9.9-7.4 12.3l-32 16.8c-5.3 2.8-8.6 8.2-8.6 14.2l0 14.8c0 8.8 7.2 16 16 16s16-7.2 16-16l0-5.1 23.5-12.3c15.1-7.9 24.5-23.6 24.5-40.6c0-25.4-20.6-45.9-45.9-45.9l-40.5 0c-23 0-41.6 18.6-41.6 41.6z\"]\n};\nconst faH = {\n prefix: 'fas',\n iconName: 'h',\n icon: [384, 512, [104], \"48\", \"M320 256l0 192c0 17.7 14.3 32 32 32s32-14.3 32-32l0-224 0-160c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 128L64 192 64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-192 256 0z\"]\n};\nconst faTarp = {\n prefix: 'fas',\n iconName: 'tarp',\n icon: [576, 512, [], \"e57b\", \"M576 128c0-35.3-28.7-64-64-64L64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l352 0 0-128c0-17.7 14.3-32 32-32l128 0 0-160zM448 448L576 320l-128 0 0 128zM96 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nconst faScrewdriverWrench = {\n prefix: 'fas',\n iconName: 'screwdriver-wrench',\n icon: [512, 512, [\"tools\"], \"f7d9\", \"M78.6 5C69.1-2.4 55.6-1.5 47 7L7 47c-8.5 8.5-9.4 22-2.1 31.6l80 104c4.5 5.9 11.6 9.4 19 9.4l54.1 0 109 109c-14.7 29-10 65.4 14.3 89.6l112 112c12.5 12.5 32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3l-112-112c-24.2-24.2-60.6-29-89.6-14.3l-109-109 0-54.1c0-7.5-3.5-14.5-9.4-19L78.6 5zM19.9 396.1C7.2 408.8 0 426.1 0 444.1C0 481.6 30.4 512 67.9 512c18 0 35.3-7.2 48-19.9L233.7 374.3c-7.8-20.9-9-43.6-3.6-65.1l-61.7-61.7L19.9 396.1zM512 144c0-10.5-1.1-20.7-3.2-30.5c-2.4-11.2-16.1-14.1-24.2-6l-63.9 63.9c-3 3-7.1 4.7-11.3 4.7L352 176c-8.8 0-16-7.2-16-16l0-57.4c0-4.2 1.7-8.3 4.7-11.3l63.9-63.9c8.1-8.1 5.2-21.8-6-24.2C388.7 1.1 378.5 0 368 0C288.5 0 224 64.5 224 144l0 .8 85.3 85.3c36-9.1 75.8 .5 104 28.7L429 274.5c49-23 83-72.8 83-130.5zM56 432a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nconst faTools = faScrewdriverWrench;\nconst faArrowsToEye = {\n prefix: 'fas',\n iconName: 'arrows-to-eye',\n icon: [640, 512, [], \"e4bf\", \"M15 15C24.4 5.7 39.6 5.7 49 15l63 63L112 40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 96c0 13.3-10.7 24-24 24l-96 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l38.1 0L15 49C5.7 39.6 5.7 24.4 15 15zM133.5 243.9C158.6 193.6 222.7 112 320 112s161.4 81.6 186.5 131.9c3.8 7.6 3.8 16.5 0 24.2C481.4 318.4 417.3 400 320 400s-161.4-81.6-186.5-131.9c-3.8-7.6-3.8-16.5 0-24.2zM320 320a64 64 0 1 0 0-128 64 64 0 1 0 0 128zM591 15c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-63 63 38.1 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-96 0c-13.3 0-24-10.7-24-24l0-96c0-13.3 10.7-24 24-24s24 10.7 24 24l0 38.1 63-63zM15 497c-9.4-9.4-9.4-24.6 0-33.9l63-63L40 400c-13.3 0-24-10.7-24-24s10.7-24 24-24l96 0c13.3 0 24 10.7 24 24l0 96c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-38.1L49 497c-9.4 9.4-24.6 9.4-33.9 0zm576 0l-63-63 0 38.1c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-96c0-13.3 10.7-24 24-24l96 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-38.1 0 63 63c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0z\"]\n};\nconst faPlugCircleBolt = {\n prefix: 'fas',\n iconName: 'plug-circle-bolt',\n icon: [576, 512, [], \"e55b\", \"M96 0C78.3 0 64 14.3 64 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c0 77.4 55 142 128 156.8l0 67.2c0 17.7 14.3 32 32 32s32-14.3 32-32l0-67.2c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32L32 160zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm47.9-225c4.3 3.7 5.4 9.9 2.6 14.9L452.4 356l35.6 0c5.2 0 9.8 3.3 11.4 8.2s-.1 10.3-4.2 13.4l-96 72c-4.5 3.4-10.8 3.2-15.1-.6s-5.4-9.9-2.6-14.9L411.6 380 376 380c-5.2 0-9.8-3.3-11.4-8.2s.1-10.3 4.2-13.4l96-72c4.5-3.4 10.8-3.2 15.1 .6z\"]\n};\nconst faHeart = {\n prefix: 'fas',\n iconName: 'heart',\n icon: [512, 512, [128153, 128154, 128155, 128156, 128420, 129293, 129294, 129505, 9829, 10084, 61578], \"f004\", \"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9L464.4 300.4c30.4-28.3 47.6-68 47.6-109.5v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5z\"]\n};\nconst faMarsAndVenus = {\n prefix: 'fas',\n iconName: 'mars-and-venus',\n icon: [512, 512, [9893], \"f224\", \"M337.8 14.8C341.5 5.8 350.3 0 360 0L472 0c13.3 0 24 10.7 24 24l0 112c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39-24.7 24.7C407 163.3 416 192.6 416 224c0 80.2-59 146.6-136 158.2l0 25.8 24 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-24 0 0 32c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-32-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l24 0 0-25.8C155 370.6 96 304.2 96 224c0-88.4 71.6-160 160-160c39.6 0 75.9 14.4 103.8 38.2L382.1 80 343 41c-6.9-6.9-8.9-17.2-5.2-26.2zM448 48s0 0 0 0s0 0 0 0s0 0 0 0zM352 224a96 96 0 1 0 -192 0 96 96 0 1 0 192 0z\"]\n};\nconst faHouseUser = {\n prefix: 'fas',\n iconName: 'house-user',\n icon: [576, 512, [\"home-user\"], \"e1b0\", \"M575.8 255.5c0 18-15 32.1-32 32.1l-32 0 .7 160.2c.2 35.5-28.5 64.3-64 64.3l-320.4 0c-35.3 0-64-28.7-64-64l0-160.4-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L564.8 231.5c8 7 12 15 11 24zM352 224a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zm-96 96c-44.2 0-80 35.8-80 80c0 8.8 7.2 16 16 16l192 0c8.8 0 16-7.2 16-16c0-44.2-35.8-80-80-80l-64 0z\"]\n};\nconst faHomeUser = faHouseUser;\nconst faDumpsterFire = {\n prefix: 'fas',\n iconName: 'dumpster-fire',\n icon: [640, 512, [], \"f794\", \"M49.7 32l90.8 0L114.9 160l-94 0C9.3 160 0 150.7 0 139.1c0-2.1 .3-4.1 .9-6.1L26.8 48.9C29.9 38.9 39.2 32 49.7 32zM272 160l-124.5 0L173.1 32 272 32l0 128zm32 0l0-128 98.9 0 14.4 72.1c-1.7 1.1-3.3 2.4-4.8 3.8c-18.4 16.4-35.4 34-50.5 52.1l-58 0zm209.9-23.7c-1.7 1.6-3.4 3.2-5 4.8C498 129.6 486.7 118.6 475 108c-7.6-6.9-17-10.8-26.6-11.8L435.5 32l90.8 0c10.5 0 19.8 6.9 22.9 16.9L575.1 133c.2 .7 .4 1.4 .5 2.1c-17.8-15-44.3-14.6-61.7 1.2zM325.2 210.7C304.3 244.5 288 282.9 288 318.1c0 49.3 18.6 95.2 49.6 129.9L128 448c0 17.7-14.3 32-32 32s-32-14.3-32-32L44 288l-12 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l4 0-4-32 305.5 0c-4.4 6.2-8.5 12.5-12.3 18.7zm180.6-34.5L518 162.5c5.4-6.1 13.3-8.8 20.9-8.9c7.2 0 14.3 2.6 19.9 7.8c19.7 18.3 39.8 43.2 55 70.6C629 259.2 640 290.2 640 320.2C640 408.8 568.7 480 480 480c-89.6 0-160-71.3-160-159.8c0-37.3 16-73.4 36.8-104.5c20.9-31.3 47.5-59 70.9-80.2c5.7-5.2 13.1-7.7 20.3-7.5c14.1 .3 23.8 11.4 32.7 21.6c0 0 0 0 0 0c2 2.3 4 4.6 6 6.7l19 19.9zM544 368.2c0-36.5-37-73-54.8-88.4c-5.4-4.7-13.1-4.7-18.5 0C453 295.1 416 331.6 416 368.2c0 35.3 28.7 64 64 64s64-28.7 64-64z\"]\n};\nconst faHouseCrack = {\n prefix: 'fas',\n iconName: 'house-crack',\n icon: [576, 512, [], \"e3b1\", \"M543.8 287.6c17 0 32-14 32-32.1c1-9-3-17-11-24L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1l32 0 0 160.4c0 35.3 28.7 64 64 64l102.3 0-31.3-52.2c-4.1-6.8-2.6-15.5 3.5-20.5L288 368l-60.2-82.8c-10.9-15 8.2-33.5 22.8-22l117.9 92.6c8 6.3 8.2 18.4 .4 24.9L288 448l38.4 64 122.1 0c35.5 0 64.2-28.8 64-64.3l-.7-160.2 32 0z\"]\n};\nconst faMartiniGlassCitrus = {\n prefix: 'fas',\n iconName: 'martini-glass-citrus',\n icon: [576, 512, [\"cocktail\"], \"f561\", \"M432 240c53 0 96-43 96-96s-43-96-96-96c-35.5 0-66.6 19.3-83.2 48l-52.6 0C316 40.1 369.3 0 432 0c79.5 0 144 64.5 144 144s-64.5 144-144 144c-27.7 0-53.5-7.8-75.5-21.3l35.4-35.4c12.2 5.6 25.8 8.7 40.1 8.7zM1.8 142.8C5.5 133.8 14.3 128 24 128l368 0c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-177 177L232 464l64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-88 0-88 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l64 0 0-118.1L7 169c-6.9-6.9-8.9-17.2-5.2-26.2z\"]\n};\nconst faCocktail = faMartiniGlassCitrus;\nconst faFaceSurprise = {\n prefix: 'fas',\n iconName: 'face-surprise',\n icon: [512, 512, [128558, \"surprise\"], \"f5c2\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM176.4 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM256 288a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"]\n};\nconst faSurprise = faFaceSurprise;\nconst faBottleWater = {\n prefix: 'fas',\n iconName: 'bottle-water',\n icon: [320, 512, [], \"e4c5\", \"M120 0l80 0c13.3 0 24 10.7 24 24l0 40L96 64l0-40c0-13.3 10.7-24 24-24zM32 167.5c0-19.5 10-37.6 26.6-47.9l15.8-9.9C88.7 100.7 105.2 96 122.1 96l75.8 0c16.9 0 33.4 4.7 47.7 13.7l15.8 9.9C278 129.9 288 148 288 167.5c0 17-7.5 32.3-19.4 42.6C280.6 221.7 288 238 288 256c0 19.1-8.4 36.3-21.7 48c13.3 11.7 21.7 28.9 21.7 48s-8.4 36.3-21.7 48c13.3 11.7 21.7 28.9 21.7 48c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64c0-19.1 8.4-36.3 21.7-48C40.4 388.3 32 371.1 32 352s8.4-36.3 21.7-48C40.4 292.3 32 275.1 32 256c0-18 7.4-34.3 19.4-45.9C39.5 199.7 32 184.5 32 167.5zM96 240c0 8.8 7.2 16 16 16l96 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-96 0c-8.8 0-16 7.2-16 16zm16 112c-8.8 0-16 7.2-16 16s7.2 16 16 16l96 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-96 0z\"]\n};\nconst faCirclePause = {\n prefix: 'fas',\n iconName: 'circle-pause',\n icon: [512, 512, [62092, \"pause-circle\"], \"f28b\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM224 192l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32s32 14.3 32 32z\"]\n};\nconst faPauseCircle = faCirclePause;\nconst faToiletPaperSlash = {\n prefix: 'fas',\n iconName: 'toilet-paper-slash',\n icon: [640, 512, [], \"e072\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-109.7-86C569.9 374 608 291.9 608 192C608 86 565 0 512 0s-96 86-96 192c0 49.1 9.2 93.9 24.4 127.9l-59-46.2c1.6-24.8 2.6-52 2.6-81.6c0-65.5 13.2-142.4 60.2-192L160 0c-24.8 0-47.4 18.8-64.4 49.6L38.8 5.1zM367.3 385.4L66.5 148.4C64.9 162.4 64 177 64 192c0 101.5-11.7 170.8-23 213.9c-5.1 19.4-10.7 39.9-20.5 57.7c-5.9 9.9-6.1 22.1-.4 32.2S36.5 512 48 512l237.9 0c22.3 0 45.4-12.1 55.4-36.1c7.4-17.7 17.5-47.2 26-90.6zM544 192c0 35.3-14.3 64-32 64s-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64z\"]\n};\nconst faAppleWhole = {\n prefix: 'fas',\n iconName: 'apple-whole',\n icon: [448, 512, [127822, 127823, \"apple-alt\"], \"f5d1\", \"M224 112c-8.8 0-16-7.2-16-16l0-16c0-44.2 35.8-80 80-80l16 0c8.8 0 16 7.2 16 16l0 16c0 44.2-35.8 80-80 80l-16 0zM0 288c0-76.3 35.7-160 112-160c27.3 0 59.7 10.3 82.7 19.3c18.8 7.3 39.9 7.3 58.7 0c22.9-8.9 55.4-19.3 82.7-19.3c76.3 0 112 83.7 112 160c0 128-80 224-160 224c-16.5 0-38.1-6.6-51.5-11.3c-8.1-2.8-16.9-2.8-25 0c-13.4 4.7-35 11.3-51.5 11.3C80 512 0 416 0 288z\"]\n};\nconst faAppleAlt = faAppleWhole;\nconst faKitchenSet = {\n prefix: 'fas',\n iconName: 'kitchen-set',\n icon: [576, 512, [], \"e51a\", \"M240 144A96 96 0 1 0 48 144a96 96 0 1 0 192 0zm44.4 32C269.9 240.1 212.5 288 144 288C64.5 288 0 223.5 0 144S64.5 0 144 0c68.5 0 125.9 47.9 140.4 112l71.8 0c8.8-9.8 21.6-16 35.8-16l104 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-104 0c-14.2 0-27-6.2-35.8-16l-71.8 0zM144 80a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM400 240c13.3 0 24 10.7 24 24l0 8 96 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-240 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l96 0 0-8c0-13.3 10.7-24 24-24zM288 464l0-112 224 0 0 112c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48zM48 320l80 0 16 0 32 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-16 0c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-80c0-8.8 7.2-16 16-16zm128 64c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0 0 32 16 0zM24 464l176 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nconst faR = {\n prefix: 'fas',\n iconName: 'r',\n icon: [320, 512, [114], \"52\", \"M64 32C28.7 32 0 60.7 0 96L0 288 0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 95.3 0L261.8 466.4c10.1 14.5 30.1 18 44.6 7.9s18-30.1 7.9-44.6L230.1 309.5C282.8 288.1 320 236.4 320 176c0-79.5-64.5-144-144-144L64 32zM176 256L64 256 64 96l112 0c44.2 0 80 35.8 80 80s-35.8 80-80 80z\"]\n};\nconst faTemperatureQuarter = {\n prefix: 'fas',\n iconName: 'temperature-quarter',\n icon: [320, 512, [\"temperature-1\", \"thermometer-1\", \"thermometer-quarter\"], \"f2ca\", \"M160 64c-26.5 0-48 21.5-48 48l0 164.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5L208 112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112l0 164.4c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6L48 112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3l0-50.7c0-8.8 7.2-16 16-16s16 7.2 16 16l0 50.7c18.6 6.6 32 24.4 32 45.3z\"]\n};\nconst faTemperature1 = faTemperatureQuarter;\nconst faThermometer1 = faTemperatureQuarter;\nconst faThermometerQuarter = faTemperatureQuarter;\nconst faCube = {\n prefix: 'fas',\n iconName: 'cube',\n icon: [512, 512, [], \"f1b2\", \"M234.5 5.7c13.9-5 29.1-5 43.1 0l192 68.6C495 83.4 512 107.5 512 134.6l0 242.9c0 27-17 51.2-42.5 60.3l-192 68.6c-13.9 5-29.1 5-43.1 0l-192-68.6C17 428.6 0 404.5 0 377.4L0 134.6c0-27 17-51.2 42.5-60.3l192-68.6zM256 66L82.3 128 256 190l173.7-62L256 66zm32 368.6l160-57.1 0-188L288 246.6l0 188z\"]\n};\nconst faBitcoinSign = {\n prefix: 'fas',\n iconName: 'bitcoin-sign',\n icon: [320, 512, [], \"e0b4\", \"M48 32C48 14.3 62.3 0 80 0s32 14.3 32 32l0 32 32 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32c0 1.5-.1 3.1-.3 4.5C254.1 82.2 288 125.1 288 176c0 24.2-7.7 46.6-20.7 64.9c31.7 19.8 52.7 55 52.7 95.1c0 61.9-50.1 112-112 112l0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-6.3 0C18.7 448 0 429.3 0 406.3L0 288l0-22.3L0 224 0 101.6C0 80.8 16.8 64 37.6 64L48 64l0-32zM64 224l112 0c26.5 0 48-21.5 48-48s-21.5-48-48-48L64 128l0 96zm112 64L64 288l0 96 144 0c26.5 0 48-21.5 48-48s-21.5-48-48-48l-32 0z\"]\n};\nconst faShieldDog = {\n prefix: 'fas',\n iconName: 'shield-dog',\n icon: [512, 512, [], \"e573\", \"M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2c.5 99.2 41.3 280.7 213.6 363.2c16.7 8 36.1 8 52.8 0C454.7 420.7 495.5 239.2 496 140c.1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM160.9 286.2c4.8 1.2 9.9 1.8 15.1 1.8c35.3 0 64-28.7 64-64l0-64 44.2 0c12.1 0 23.2 6.8 28.6 17.7L320 192l64 0c8.8 0 16 7.2 16 16l0 32c0 44.2-35.8 80-80 80l-48 0 0 50.7c0 7.3-5.9 13.3-13.3 13.3c-1.8 0-3.6-.4-5.2-1.1l-98.7-42.3c-6.6-2.8-10.8-9.3-10.8-16.4c0-2.8 .6-5.5 1.9-8l15-30zM160 160l40 0 8 0 0 32 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-48c0-8.8 7.2-16 16-16zm128 48a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z\"]\n};\nconst faSolarPanel = {\n prefix: 'fas',\n iconName: 'solar-panel',\n icon: [640, 512, [], \"f5ba\", \"M122.2 0C91.7 0 65.5 21.5 59.5 51.4L8.3 307.4C.4 347 30.6 384 71 384l217 0 0 64-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-64 217 0c40.4 0 70.7-36.9 62.8-76.6l-51.2-256C574.5 21.5 548.3 0 517.8 0L122.2 0zM260.9 64l118.2 0 10.4 104-139 0L260.9 64zM202.3 168l-100.8 0L122.2 64l90.4 0L202.3 168zM91.8 216l105.6 0L187.1 320 71 320 91.8 216zm153.9 0l148.6 0 10.4 104-169.4 0 10.4-104zm196.8 0l105.6 0L569 320l-116 0L442.5 216zm96-48l-100.8 0L427.3 64l90.4 0 31.4-6.3L517.8 64l20.8 104z\"]\n};\nconst faLockOpen = {\n prefix: 'fas',\n iconName: 'lock-open',\n icon: [576, 512, [], \"f3c1\", \"M352 144c0-44.2 35.8-80 80-80s80 35.8 80 80l0 48c0 17.7 14.3 32 32 32s32-14.3 32-32l0-48C576 64.5 511.5 0 432 0S288 64.5 288 144l0 48L64 192c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64l-32 0 0-48z\"]\n};\nconst faElevator = {\n prefix: 'fas',\n iconName: 'elevator',\n icon: [512, 512, [], \"e16d\", \"M132.7 4.7l-64 64c-4.6 4.6-5.9 11.5-3.5 17.4s8.3 9.9 14.8 9.9l128 0c6.5 0 12.3-3.9 14.8-9.9s1.1-12.9-3.5-17.4l-64-64c-6.2-6.2-16.4-6.2-22.6 0zM64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 128zm96 96a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM80 400c0-26.5 21.5-48 48-48l64 0c26.5 0 48 21.5 48 48l0 16c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-16zm192 0c0-26.5 21.5-48 48-48l64 0c26.5 0 48 21.5 48 48l0 16c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-16zm32-128a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM356.7 91.3c6.2 6.2 16.4 6.2 22.6 0l64-64c4.6-4.6 5.9-11.5 3.5-17.4S438.5 0 432 0L304 0c-6.5 0-12.3 3.9-14.8 9.9s-1.1 12.9 3.5 17.4l64 64z\"]\n};\nconst faMoneyBillTransfer = {\n prefix: 'fas',\n iconName: 'money-bill-transfer',\n icon: [640, 512, [], \"e528\", \"M535 41c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l64 64c4.5 4.5 7 10.6 7 17s-2.5 12.5-7 17l-64 64c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l23-23L384 112c-13.3 0-24-10.7-24-24s10.7-24 24-24l174.1 0L535 41zM105 377l-23 23L256 400c13.3 0 24 10.7 24 24s-10.7 24-24 24L81.9 448l23 23c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L7 441c-4.5-4.5-7-10.6-7-17s2.5-12.5 7-17l64-64c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zM96 64l241.9 0c-3.7 7.2-5.9 15.3-5.9 24c0 28.7 23.3 52 52 52l117.4 0c-4 17 .6 35.5 13.8 48.8c20.3 20.3 53.2 20.3 73.5 0L608 169.5 608 384c0 35.3-28.7 64-64 64l-241.9 0c3.7-7.2 5.9-15.3 5.9-24c0-28.7-23.3-52-52-52l-117.4 0c4-17-.6-35.5-13.8-48.8c-20.3-20.3-53.2-20.3-73.5 0L32 342.5 32 128c0-35.3 28.7-64 64-64zm64 64l-64 0 0 64c35.3 0 64-28.7 64-64zM544 320c-35.3 0-64 28.7-64 64l64 0 0-64zM320 352a96 96 0 1 0 0-192 96 96 0 1 0 0 192z\"]\n};\nconst faMoneyBillTrendUp = {\n prefix: 'fas',\n iconName: 'money-bill-trend-up',\n icon: [512, 512, [], \"e529\", \"M470.7 9.4c3 3.1 5.3 6.6 6.9 10.3s2.4 7.8 2.4 12.2c0 0 0 .1 0 .1c0 0 0 0 0 0l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-18.7L310.6 214.6c-11.8 11.8-30.8 12.6-43.5 1.7L176 138.1 84.8 216.3c-13.4 11.5-33.6 9.9-45.1-3.5s-9.9-33.6 3.5-45.1l112-96c12-10.3 29.7-10.3 41.7 0l89.5 76.7L370.7 64 352 64c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0s0 0 0 0c8.8 0 16.8 3.6 22.6 9.3l.1 .1zM0 304c0-26.5 21.5-48 48-48l416 0c26.5 0 48 21.5 48 48l0 160c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 304zM48 416l0 48 48 0c0-26.5-21.5-48-48-48zM96 304l-48 0 0 48c26.5 0 48-21.5 48-48zM464 416c-26.5 0-48 21.5-48 48l48 0 0-48zM416 304c0 26.5 21.5 48 48 48l0-48-48 0zm-96 80a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z\"]\n};\nconst faHouseFloodWaterCircleArrowRight = {\n prefix: 'fas',\n iconName: 'house-flood-water-circle-arrow-right',\n icon: [640, 512, [], \"e50f\", \"M288 144A144 144 0 1 0 0 144a144 144 0 1 0 288 0zM140.7 76.7c6.2-6.2 16.4-6.2 22.6 0l56 56c6.2 6.2 6.2 16.4 0 22.6l-56 56c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L169.4 160 80 160c-8.8 0-16-7.2-16-16s7.2-16 16-16l89.4 0L140.7 99.3c-6.2-6.2-6.2-16.4 0-22.6zM320 144c0 57.3-27.4 108.2-69.8 140.3c11.8-3.6 23-9.4 33-16.2c22.1-15.5 51.6-15.5 73.7 0c18.4 12.7 39.6 20.3 59.2 20.3c19 0 41.2-7.9 59.2-20.3c23.8-16.7 55.8-15.4 78.1 3.4c2.1 1.7 4.2 3.3 6.5 4.9l-.3-84.4 16.6 0c13.9 0 26.1-8.9 30.4-22.1s-.4-27.6-11.6-35.8l-176-128C407.6-2 392.4-2 381.2 6.1L301 64.4c12.1 23.9 19 50.9 19 79.6zm18.5 165.9c-11.1-7.9-25.9-7.9-37 0C279 325.4 251.5 336 224 336c-26.9 0-55.3-10.8-77.4-26.1c0 0 0 0 0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C158.5 389.7 191 400 224 400c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.5-27.3-10.1-39.2-1.7c0 0 0 0 0 0C471.4 325.2 442.9 336 416 336c-27.5 0-55-10.6-77.5-26.1zm0 112c-11.1-7.9-25.9-7.9-37 0C279 437.4 251.5 448 224 448c-26.9 0-55.3-10.8-77.4-26.1c0 0 0 0 0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C158.5 501.7 191 512 224 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7c0 0 0 0 0 0C471.4 437.2 442.9 448 416 448c-27.5 0-55-10.6-77.5-26.1z\"]\n};\nconst faSquarePollHorizontal = {\n prefix: 'fas',\n iconName: 'square-poll-horizontal',\n icon: [448, 512, [\"poll-h\"], \"f682\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM256 160c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32zm64 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l192 0zM192 352c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0c17.7 0 32 14.3 32 32z\"]\n};\nconst faPollH = faSquarePollHorizontal;\nconst faCircle = {\n prefix: 'fas',\n iconName: 'circle',\n icon: [512, 512, [128308, 128309, 128992, 128993, 128994, 128995, 128996, 9679, 9898, 9899, 11044, 61708, 61915], \"f111\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512z\"]\n};\nconst faBackwardFast = {\n prefix: 'fas',\n iconName: 'backward-fast',\n icon: [512, 512, [9198, \"fast-backward\"], \"f049\", \"M493.6 445c-11.2 5.3-24.5 3.6-34.1-4.4L288 297.7 288 416c0 12.4-7.2 23.7-18.4 29s-24.5 3.6-34.1-4.4L64 297.7 64 416c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 96C0 78.3 14.3 64 32 64s32 14.3 32 32l0 118.3L235.5 71.4c9.5-7.9 22.8-9.7 34.1-4.4S288 83.6 288 96l0 118.3L459.5 71.4c9.5-7.9 22.8-9.7 34.1-4.4S512 83.6 512 96l0 320c0 12.4-7.2 23.7-18.4 29z\"]\n};\nconst faFastBackward = faBackwardFast;\nconst faRecycle = {\n prefix: 'fas',\n iconName: 'recycle',\n icon: [512, 512, [9842, 9850, 9851], \"f1b8\", \"M174.7 45.1C192.2 17 223 0 256 0s63.8 17 81.3 45.1l38.6 61.7 27-15.6c8.4-4.9 18.9-4.2 26.6 1.7s11.1 15.9 8.6 25.3l-23.4 87.4c-3.4 12.8-16.6 20.4-29.4 17l-87.4-23.4c-9.4-2.5-16.3-10.4-17.6-20s3.4-19.1 11.8-23.9l28.4-16.4L283 79c-5.8-9.3-16-15-27-15s-21.2 5.7-27 15l-17.5 28c-9.2 14.8-28.6 19.5-43.6 10.5c-15.3-9.2-20.2-29.2-10.7-44.4l17.5-28zM429.5 251.9c15-9 34.4-4.3 43.6 10.5l24.4 39.1c9.4 15.1 14.4 32.4 14.6 50.2c.3 53.1-42.7 96.4-95.8 96.4L320 448l0 32c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-64-64c-9.4-9.4-9.4-24.6 0-33.9l64-64c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2l0 32 96.2 0c17.6 0 31.9-14.4 31.8-32c0-5.9-1.7-11.7-4.8-16.7l-24.4-39.1c-9.5-15.2-4.7-35.2 10.7-44.4zm-364.6-31L36 204.2c-8.4-4.9-13.1-14.3-11.8-23.9s8.2-17.5 17.6-20l87.4-23.4c12.8-3.4 26 4.2 29.4 17L182 241.2c2.5 9.4-.9 19.3-8.6 25.3s-18.2 6.6-26.6 1.7l-26.5-15.3L68.8 335.3c-3.1 5-4.8 10.8-4.8 16.7c-.1 17.6 14.2 32 31.8 32l32.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32.2 0C42.7 448-.3 404.8 0 351.6c.1-17.8 5.1-35.1 14.6-50.2l50.3-80.5z\"]\n};\nconst faUserAstronaut = {\n prefix: 'fas',\n iconName: 'user-astronaut',\n icon: [448, 512, [], \"f4fb\", \"M370.7 96.1C346.1 39.5 289.7 0 224 0S101.9 39.5 77.3 96.1C60.9 97.5 48 111.2 48 128l0 64c0 16.8 12.9 30.5 29.3 31.9C101.9 280.5 158.3 320 224 320s122.1-39.5 146.7-96.1c16.4-1.4 29.3-15.1 29.3-31.9l0-64c0-16.8-12.9-30.5-29.3-31.9zM336 144l0 16c0 53-43 96-96 96l-32 0c-53 0-96-43-96-96l0-16c0-26.5 21.5-48 48-48l128 0c26.5 0 48 21.5 48 48zM189.3 162.7l-6-21.2c-.9-3.3-3.9-5.5-7.3-5.5s-6.4 2.2-7.3 5.5l-6 21.2-21.2 6c-3.3 .9-5.5 3.9-5.5 7.3s2.2 6.4 5.5 7.3l21.2 6 6 21.2c.9 3.3 3.9 5.5 7.3 5.5s6.4-2.2 7.3-5.5l6-21.2 21.2-6c3.3-.9 5.5-3.9 5.5-7.3s-2.2-6.4-5.5-7.3l-21.2-6zM112.7 316.5C46.7 342.6 0 407 0 482.3C0 498.7 13.3 512 29.7 512l98.3 0 0-64c0-17.7 14.3-32 32-32l128 0c17.7 0 32 14.3 32 32l0 64 98.3 0c16.4 0 29.7-13.3 29.7-29.7c0-75.3-46.7-139.7-112.7-165.8C303.9 338.8 265.5 352 224 352s-79.9-13.2-111.3-35.5zM176 448c-8.8 0-16 7.2-16 16l0 48 32 0 0-48c0-8.8-7.2-16-16-16zm96 32a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"]\n};\nconst faPlaneSlash = {\n prefix: 'fas',\n iconName: 'plane-slash',\n icon: [640, 512, [], \"e069\", \"M514.3 192c34.2 0 93.7 29 93.7 64c0 36-59.5 64-93.7 64l-73.8 0L630.8 469.1c10.4 8.2 12.3 23.3 4.1 33.7s-23.3 12.3-33.7 4.1L9.2 42.9C-1.2 34.7-3.1 19.6 5.1 9.2S28.4-3.1 38.8 5.1L238.1 161.3 197.8 20.4C194.9 10.2 202.6 0 213.2 0l56.2 0c11.5 0 22.1 6.2 27.8 16.1L397.7 192l116.6 0zM41.5 128.7l321 252.9L297.2 495.9c-5.7 10-16.3 16.1-27.8 16.1l-56.2 0c-10.6 0-18.3-10.2-15.4-20.4l49-171.6L144 320l-43.2 57.6c-3 4-7.8 6.4-12.8 6.4l-42 0c-7.8 0-14-6.3-14-14c0-1.3 .2-2.6 .5-3.9L64 256 32.5 145.9c-.4-1.3-.5-2.6-.5-3.9c0-6.2 4-11.4 9.5-13.3z\"]\n};\nconst faTrademark = {\n prefix: 'fas',\n iconName: 'trademark',\n icon: [640, 512, [8482], \"f25c\", \"M345.6 108.8c-8.3-11-22.7-15.5-35.7-11.2S288 114.2 288 128l0 256c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160 86.4 115.2c6 8.1 15.5 12.8 25.6 12.8s19.6-4.7 25.6-12.8L576 224l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-256c0-13.8-8.8-26-21.9-30.4s-27.5 .1-35.7 11.2L464 266.7 345.6 108.8zM0 128c0 17.7 14.3 32 32 32l64 0 0 224c0 17.7 14.3 32 32 32s32-14.3 32-32l0-224 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 96C14.3 96 0 110.3 0 128z\"]\n};\nconst faBasketball = {\n prefix: 'fas',\n iconName: 'basketball',\n icon: [512, 512, [127936, \"basketball-ball\"], \"f434\", \"M86.6 64l85.2 85.2C194.5 121.7 208 86.4 208 48c0-14.7-2-28.9-5.7-42.4C158.6 15 119 35.5 86.6 64zM64 86.6C35.5 119 15 158.6 5.6 202.3C19.1 206 33.3 208 48 208c38.4 0 73.7-13.5 101.3-36.1L64 86.6zM256 0c-7.3 0-14.6 .3-21.8 .9C238 16 240 31.8 240 48c0 47.3-17.1 90.5-45.4 124L256 233.4 425.4 64C380.2 24.2 320.9 0 256 0zM48 240c-16.2 0-32-2-47.1-5.8C.3 241.4 0 248.7 0 256c0 64.9 24.2 124.2 64 169.4L233.4 256 172 194.6C138.5 222.9 95.3 240 48 240zm463.1 37.8c.6-7.2 .9-14.5 .9-21.8c0-64.9-24.2-124.2-64-169.4L278.6 256 340 317.4c33.4-28.3 76.7-45.4 124-45.4c16.2 0 32 2 47.1 5.8zm-4.7 31.9C492.9 306 478.7 304 464 304c-38.4 0-73.7 13.5-101.3 36.1L448 425.4c28.5-32.3 49.1-71.9 58.4-115.7zM340.1 362.7C317.5 390.3 304 425.6 304 464c0 14.7 2 28.9 5.7 42.4C353.4 497 393 476.5 425.4 448l-85.2-85.2zM317.4 340L256 278.6 86.6 448c45.1 39.8 104.4 64 169.4 64c7.3 0 14.6-.3 21.8-.9C274 496 272 480.2 272 464c0-47.3 17.1-90.5 45.4-124z\"]\n};\nconst faBasketballBall = faBasketball;\nconst faSatelliteDish = {\n prefix: 'fas',\n iconName: 'satellite-dish',\n icon: [512, 512, [128225], \"f7c0\", \"M192 32c0-17.7 14.3-32 32-32C383.1 0 512 128.9 512 288c0 17.7-14.3 32-32 32s-32-14.3-32-32C448 164.3 347.7 64 224 64c-17.7 0-32-14.3-32-32zM60.6 220.6L164.7 324.7l28.4-28.4c-.7-2.6-1.1-5.4-1.1-8.3c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32c-2.9 0-5.6-.4-8.3-1.1l-28.4 28.4L291.4 451.4c14.5 14.5 11.8 38.8-7.3 46.3C260.5 506.9 234.9 512 208 512C93.1 512 0 418.9 0 304c0-26.9 5.1-52.5 14.4-76.1c7.5-19 31.8-21.8 46.3-7.3zM224 96c106 0 192 86 192 192c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-70.7-57.3-128-128-128c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nconst faCircleUp = {\n prefix: 'fas',\n iconName: 'circle-up',\n icon: [512, 512, [61467, \"arrow-alt-circle-up\"], \"f35b\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm11.3-395.3l112 112c4.6 4.6 5.9 11.5 3.5 17.4s-8.3 9.9-14.8 9.9l-64 0 0 96c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-96-64 0c-6.5 0-12.3-3.9-14.8-9.9s-1.1-12.9 3.5-17.4l112-112c6.2-6.2 16.4-6.2 22.6 0z\"]\n};\nconst faArrowAltCircleUp = faCircleUp;\nconst faMobileScreenButton = {\n prefix: 'fas',\n iconName: 'mobile-screen-button',\n icon: [384, 512, [\"mobile-alt\"], \"f3cd\", \"M16 64C16 28.7 44.7 0 80 0L304 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L80 512c-35.3 0-64-28.7-64-64L16 64zM224 448a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM304 64L80 64l0 320 224 0 0-320z\"]\n};\nconst faMobileAlt = faMobileScreenButton;\nconst faVolumeHigh = {\n prefix: 'fas',\n iconName: 'volume-high',\n icon: [640, 512, [128266, \"volume-up\"], \"f028\", \"M533.6 32.5C598.5 85.2 640 165.8 640 256s-41.5 170.7-106.4 223.5c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C557.5 398.2 592 331.2 592 256s-34.5-142.2-88.7-186.3c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5zM473.1 107c43.2 35.2 70.9 88.9 70.9 149s-27.7 113.8-70.9 149c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C475.3 341.3 496 301.1 496 256s-20.7-85.3-53.2-111.8c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5zm-60.5 74.5C434.1 199.1 448 225.9 448 256s-13.9 56.9-35.4 74.5c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C393.1 284.4 400 271 400 256s-6.9-28.4-17.7-37.3c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5zM301.1 34.8C312.6 40 320 51.4 320 64l0 384c0 12.6-7.4 24-18.9 29.2s-25 3.1-34.4-5.3L131.8 352 64 352c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l67.8 0L266.7 40.1c9.4-8.4 22.9-10.4 34.4-5.3z\"]\n};\nconst faVolumeUp = faVolumeHigh;\nconst faUsersRays = {\n prefix: 'fas',\n iconName: 'users-rays',\n icon: [640, 512, [], \"e593\", \"M41 7C31.6-2.3 16.4-2.3 7 7S-2.3 31.6 7 41l72 72c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L41 7zM599 7L527 79c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0zM7 505c9.4 9.4 24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L7 471c-9.4 9.4-9.4 24.6 0 33.9zm592 0c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-72-72c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72zM320 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128zM212.1 336c-2.7 7.5-4.1 15.6-4.1 24c0 13.3 10.7 24 24 24l176 0c13.3 0 24-10.7 24-24c0-8.4-1.4-16.5-4.1-24c-.5-1.4-1-2.7-1.6-4c-9.4-22.3-29.8-38.9-54.3-43c-3.9-.7-7.9-1-12-1l-80 0c-4.1 0-8.1 .3-12 1c-.8 .1-1.7 .3-2.5 .5c-24.9 5.1-45.1 23-53.4 46.5zM175.8 224a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-26.5 32C119.9 256 96 279.9 96 309.3c0 14.7 11.9 26.7 26.7 26.7l56.1 0c8-34.1 32.8-61.7 65.2-73.6c-7.5-4.1-16.2-6.4-25.3-6.4l-69.3 0zm368 80c14.7 0 26.7-11.9 26.7-26.7c0-29.5-23.9-53.3-53.3-53.3l-69.3 0c-9.2 0-17.8 2.3-25.3 6.4c32.4 11.9 57.2 39.5 65.2 73.6l56.1 0zM464 224a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"]\n};\nconst faWallet = {\n prefix: 'fas',\n iconName: 'wallet',\n icon: [512, 512, [], \"f555\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L80 128c-8.8 0-16-7.2-16-16s7.2-16 16-16l368 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 32zM416 272a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nconst faClipboardCheck = {\n prefix: 'fas',\n iconName: 'clipboard-check',\n icon: [384, 512, [], \"f46c\", \"M192 0c-41.8 0-77.4 26.7-90.5 64L64 64C28.7 64 0 92.7 0 128L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64l-37.5 0C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM305 273L177 401c-9.4 9.4-24.6 9.4-33.9 0L79 337c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L271 239c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\"]\n};\nconst faFileAudio = {\n prefix: 'fas',\n iconName: 'file-audio',\n icon: [384, 512, [], \"f1c7\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zm2 226.3c37.1 22.4 62 63.1 62 109.7s-24.9 87.3-62 109.7c-7.6 4.6-17.4 2.1-22-5.4s-2.1-17.4 5.4-22C269.4 401.5 288 370.9 288 336s-18.6-65.5-46.5-82.3c-7.6-4.6-10-14.4-5.4-22s14.4-10 22-5.4zm-91.9 30.9c6 2.5 9.9 8.3 9.9 14.8l0 128c0 6.5-3.9 12.3-9.9 14.8s-12.9 1.1-17.4-3.5L113.4 376 80 376c-8.8 0-16-7.2-16-16l0-48c0-8.8 7.2-16 16-16l33.4 0 35.3-35.3c4.6-4.6 11.5-5.9 17.4-3.5zm51 34.9c6.6-5.9 16.7-5.3 22.6 1.3C249.8 304.6 256 319.6 256 336s-6.2 31.4-16.3 42.7c-5.9 6.6-16 7.1-22.6 1.3s-7.1-16-1.3-22.6c5.1-5.7 8.1-13.1 8.1-21.3s-3.1-15.7-8.1-21.3c-5.9-6.6-5.3-16.7 1.3-22.6z\"]\n};\nconst faBurger = {\n prefix: 'fas',\n iconName: 'burger',\n icon: [512, 512, [\"hamburger\"], \"f805\", \"M61.1 224C45 224 32 211 32 194.9c0-1.9 .2-3.7 .6-5.6C37.9 168.3 78.8 32 256 32s218.1 136.3 223.4 157.3c.5 1.9 .6 3.7 .6 5.6c0 16.1-13 29.1-29.1 29.1L61.1 224zM144 128a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm240 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32zM272 96a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zM16 304c0-26.5 21.5-48 48-48l384 0c26.5 0 48 21.5 48 48s-21.5 48-48 48L64 352c-26.5 0-48-21.5-48-48zm16 96c0-8.8 7.2-16 16-16l416 0c8.8 0 16 7.2 16 16l0 16c0 35.3-28.7 64-64 64L96 480c-35.3 0-64-28.7-64-64l0-16z\"]\n};\nconst faHamburger = faBurger;\nconst faWrench = {\n prefix: 'fas',\n iconName: 'wrench',\n icon: [512, 512, [128295], \"f0ad\", \"M352 320c88.4 0 160-71.6 160-160c0-15.3-2.2-30.1-6.2-44.2c-3.1-10.8-16.4-13.2-24.3-5.3l-76.8 76.8c-3 3-7.1 4.7-11.3 4.7L336 192c-8.8 0-16-7.2-16-16l0-57.4c0-4.2 1.7-8.3 4.7-11.3l76.8-76.8c7.9-7.9 5.4-21.2-5.3-24.3C382.1 2.2 367.3 0 352 0C263.6 0 192 71.6 192 160c0 19.1 3.4 37.5 9.5 54.5L19.9 396.1C7.2 408.8 0 426.1 0 444.1C0 481.6 30.4 512 67.9 512c18 0 35.3-7.2 48-19.9L297.5 310.5c17 6.2 35.4 9.5 54.5 9.5zM80 408a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nconst faBugs = {\n prefix: 'fas',\n iconName: 'bugs',\n icon: [576, 512, [], \"e4d0\", \"M164.5 107.4l33.4-73.5c5.5-12.1 .1-26.3-11.9-31.8s-26.3-.1-31.8 11.9L128 71.7 101.9 14.1C96.4 2 82.1-3.3 70.1 2.1S52.7 21.9 58.1 33.9l33.4 73.5c-10.2 7.1-18.2 17-22.9 28.6l-17 0-4.1-20.7c-2.6-13-15.2-21.4-28.2-18.8S-2.1 111.7 .5 124.7l8 40C10.7 175.9 20.6 184 32 184l32 0 0 23.3-37.8 9.5c-9.5 2.4-16.6 10.2-17.9 19.9l-8 56c-1.9 13.1 7.2 25.3 20.4 27.2s25.3-7.2 27.2-20.4l5.7-40 18.4-4.6C82.7 274.6 103.8 288 128 288s45.3-13.4 56.1-33.2l18.4 4.6 5.7 40c1.9 13.1 14 22.2 27.2 20.4s22.2-14 20.4-27.2l-8-56c-1.4-9.7-8.5-17.5-17.9-19.9L192 207.3l0-23.3 32 0c11.4 0 21.3-8.1 23.5-19.3l8-40c2.6-13-5.8-25.6-18.8-28.2s-25.6 5.8-28.2 18.8L204.3 136l-17 0c-4.7-11.6-12.7-21.5-22.9-28.6zM496 286.5l65.6-47c10.8-7.7 13.3-22.7 5.6-33.5s-22.7-13.3-33.5-5.6l-51.4 36.8 6.1-62.9c1.3-13.2-8.4-24.9-21.6-26.2s-24.9 8.4-26.2 21.6L432.8 250c-12.3 1-24.2 5.6-34.1 13.3L384 254.8l6.8-20c4.2-12.6-2.5-26.2-15-30.4s-26.2 2.5-30.4 15l-13.1 38.6c-3.7 10.8 .8 22.8 10.7 28.5l27.7 16L359 322.7 321.5 312c-9.4-2.7-19.5 .6-25.5 8.3l-34.9 44.5c-8.2 10.4-6.4 25.5 4.1 33.7s25.5 6.4 33.7-4.1l25-31.8 18.2 5.2c-.5 22.6 11 44.7 32 56.8s45.9 11 65.2-.7l13.6 13.2-15.1 37.5c-4.9 12.3 1 26.3 13.3 31.2s26.3-1 31.2-13.3L503.5 440c3.6-9.1 1.4-19.4-5.6-26.2l-28-27.1 11.6-20.1 27.7 16c9.9 5.7 22.5 3.7 30-4.9L566.2 347c8.7-10 7.8-25.1-2.2-33.9s-25.1-7.8-33.9 2.2l-13.9 15.9-14.7-8.5c1.7-12.4-.2-25-5.5-36.2z\"]\n};\nconst faRupeeSign = {\n prefix: 'fas',\n iconName: 'rupee-sign',\n icon: [448, 512, [8360, \"rupee\"], \"f156\", \"M0 64C0 46.3 14.3 32 32 32l80 0c79.5 0 144 64.5 144 144c0 58.8-35.2 109.3-85.7 131.7l51.4 128.4c6.6 16.4-1.4 35-17.8 41.6s-35-1.4-41.6-17.8L106.3 320 64 320l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 288 0 64zM64 256l48 0c44.2 0 80-35.8 80-80s-35.8-80-80-80L64 96l0 160zm256.5 16.4c-.9 6 0 8.7 .4 9.8c.4 1.1 1.4 2.6 4.2 4.9c7.2 5.7 18.7 10 37.9 16.8l1.3 .5c16 5.6 38.7 13.6 55.7 28.1c9.5 8.1 17.9 18.6 23.1 32.3c5.1 13.7 6.1 28.5 3.8 44c-4.2 28.1-20.5 49.3-43.8 60.9c-22.1 11-48.1 12.5-73.2 8l-.2 0s0 0 0 0c-9.3-1.8-20.5-5.7-29.3-9c-6-2.3-12.6-4.9-17.7-6.9c0 0 0 0 0 0c-2.5-1-4.6-1.8-6.3-2.5c-16.5-6.4-24.6-25-18.2-41.4s24.9-24.6 41.4-18.2c2.6 1 5.2 2 7.9 3.1c0 0 0 0 0 0c4.8 1.9 9.8 3.9 15.4 6c8.8 3.3 15.3 5.4 18.7 6c15.7 2.8 26.7 .8 32.9-2.3c5-2.5 8-6 9.1-13c1-6.9 .2-10.5-.5-12.3c-.6-1.7-1.8-3.6-4.5-5.9c-6.9-5.8-18.2-10.4-36.9-17l-3-1.1c-15.5-5.4-37-13-53.3-25.9c-9.5-7.5-18.3-17.6-23.7-31c-5.5-13.4-6.6-28-4.4-43.2c8.4-57.1 67-78 116.9-68.9c6.9 1.3 27.3 5.8 35.4 8.4c16.9 5.2 26.3 23.2 21.1 40.1s-23.2 26.3-40.1 21.1c-4.7-1.4-22.3-5.5-27.9-6.5c-14.6-2.7-25.8-.4-32.6 3.2c-6.3 3.3-8.9 7.6-9.5 12z\"]\n};\nconst faRupee = faRupeeSign;\nconst faFileImage = {\n prefix: 'fas',\n iconName: 'file-image',\n icon: [384, 512, [128443], \"f1c5\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM64 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm152 32c5.3 0 10.2 2.6 13.2 6.9l88 128c3.4 4.9 3.7 11.3 1 16.5s-8.2 8.6-14.2 8.6l-88 0-40 0-48 0-48 0c-5.8 0-11.1-3.1-13.9-8.1s-2.8-11.2 .2-16.1l48-80c2.9-4.8 8.1-7.8 13.7-7.8s10.8 2.9 13.7 7.8l12.8 21.4 48.3-70.2c3-4.3 7.9-6.9 13.2-6.9z\"]\n};\nconst faCircleQuestion = {\n prefix: 'fas',\n iconName: 'circle-question',\n icon: [512, 512, [62108, \"question-circle\"], \"f059\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM169.8 165.3c7.9-22.3 29.1-37.3 52.8-37.3l58.3 0c34.9 0 63.1 28.3 63.1 63.1c0 22.6-12.1 43.5-31.7 54.8L280 264.4c-.2 13-10.9 23.6-24 23.6c-13.3 0-24-10.7-24-24l0-13.5c0-8.6 4.6-16.5 12.1-20.8l44.3-25.4c4.7-2.7 7.6-7.7 7.6-13.1c0-8.4-6.8-15.1-15.1-15.1l-58.3 0c-3.4 0-6.4 2.1-7.5 5.3l-.4 1.2c-4.4 12.5-18.2 19-30.6 14.6s-19-18.2-14.6-30.6l.4-1.2zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nconst faQuestionCircle = faCircleQuestion;\nconst faPlaneDeparture = {\n prefix: 'fas',\n iconName: 'plane-departure',\n icon: [640, 512, [128747], \"f5b0\", \"M381 114.9L186.1 41.8c-16.7-6.2-35.2-5.3-51.1 2.7L89.1 67.4C78 73 77.2 88.5 87.6 95.2l146.9 94.5L136 240 77.8 214.1c-8.7-3.9-18.8-3.7-27.3 .6L18.3 230.8c-9.3 4.7-11.8 16.8-5 24.7l73.1 85.3c6.1 7.1 15 11.2 24.3 11.2l137.7 0c5 0 9.9-1.2 14.3-3.4L535.6 212.2c46.5-23.3 82.5-63.3 100.8-112C645.9 75 627.2 48 600.2 48l-57.4 0c-20.2 0-40.2 4.8-58.2 14L381 114.9zM0 480c0 17.7 14.3 32 32 32l576 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 448c-17.7 0-32 14.3-32 32z\"]\n};\nconst faHandshakeSlash = {\n prefix: 'fas',\n iconName: 'handshake-slash',\n icon: [640, 512, [], \"e060\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-135-105.8c-1.1-11.4-6.3-22.3-15.3-30.7l-134.2-123-23.4 18.2-26-20.3 77.2-60.1c7-5.4 17-4.2 22.5 2.8s4.2 17-2.8 22.5l-20.9 16.2L512 316.8 512 128l-.7 0-3.9-2.5L434.8 79c-15.3-9.8-33.2-15-51.4-15c-21.8 0-43 7.5-60 21.2l-89.7 72.6-25.8-20.3 81.8-66.2c-11.6-4.9-24.1-7.4-36.8-7.4C234 64 215.7 69.6 200 80l-35.5 23.7L38.8 5.1zM96 171.6L40.6 128 0 128 0 352c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-180.4zM413.6 421.9L128 196.9 128 352l28.2 0 91.4 83.4c19.6 17.9 49.9 16.5 67.8-3.1c5.5-6.1 9.2-13.2 11.1-20.6l17 15.6c19.5 17.9 49.9 16.6 67.8-2.9c.8-.8 1.5-1.7 2.2-2.6zM48 320a16 16 0 1 1 0 32 16 16 0 1 1 0-32zM544 128l0 224c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-224-96 0zm32 208a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z\"]\n};\nconst faBookBookmark = {\n prefix: 'fas',\n iconName: 'book-bookmark',\n icon: [448, 512, [], \"e0bb\", \"M0 96C0 43 43 0 96 0l96 0 0 190.7c0 13.4 15.5 20.9 26 12.5L272 160l54 43.2c10.5 8.4 26 .9 26-12.5L352 0l32 0 32 0c17.7 0 32 14.3 32 32l0 320c0 17.7-14.3 32-32 32l0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0L96 512c-53 0-96-43-96-96L0 96zM64 416c0 17.7 14.3 32 32 32l256 0 0-64L96 384c-17.7 0-32 14.3-32 32z\"]\n};\nconst faCodeBranch = {\n prefix: 'fas',\n iconName: 'code-branch',\n icon: [448, 512, [], \"f126\", \"M80 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm80-24c0 32.8-19.7 61-48 73.3l0 87.8c18.8-10.9 40.7-17.1 64-17.1l96 0c35.3 0 64-28.7 64-64l0-6.7C307.7 141 288 112.8 288 80c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3l0 6.7c0 70.7-57.3 128-128 128l-96 0c-35.3 0-64 28.7-64 64l0 6.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3l0-6.7 0-198.7C19.7 141 0 112.8 0 80C0 35.8 35.8 0 80 0s80 35.8 80 80zm232 0a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM80 456a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nconst faHatCowboy = {\n prefix: 'fas',\n iconName: 'hat-cowboy',\n icon: [640, 512, [], \"f8c0\", \"M320 64c14.4 0 22.3-7 30.8-14.4C360.4 41.1 370.7 32 392 32c49.3 0 84.4 152.2 97.9 221.9C447.8 272.1 390.9 288 320 288s-127.8-15.9-169.9-34.1C163.6 184.2 198.7 32 248 32c21.3 0 31.6 9.1 41.2 17.6C297.7 57 305.6 64 320 64zM111.1 270.7c47.2 24.5 117.5 49.3 209 49.3s161.8-24.8 208.9-49.3c24.8-12.9 49.8-28.3 70.1-47.7c7.9-7.9 20.2-9.2 29.6-3.3c9.5 5.9 13.5 17.9 9.9 28.5c-13.5 37.7-38.4 72.3-66.1 100.6C523.7 398.9 443.6 448 320 448s-203.6-49.1-252.5-99.2C39.8 320.4 14.9 285.8 1.4 248.1c-3.6-10.6 .4-22.6 9.9-28.5c9.5-5.9 21.7-4.5 29.6 3.3c20.4 19.4 45.3 34.8 70.1 47.7z\"]\n};\nconst faBridge = {\n prefix: 'fas',\n iconName: 'bridge',\n icon: [576, 512, [], \"e4c8\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l40 0 0 64L0 160 0 288c53 0 96 43 96 96l0 64c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-64c0-53 43-96 96-96s96 43 96 96l0 64c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-64c0-53 43-96 96-96l0-128-72 0 0-64 40 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zM456 96l0 64-80 0 0-64 80 0zM328 96l0 64-80 0 0-64 80 0zM200 96l0 64-80 0 0-64 80 0z\"]\n};\nconst faPhoneFlip = {\n prefix: 'fas',\n iconName: 'phone-flip',\n icon: [512, 512, [128381, \"phone-alt\"], \"f879\", \"M347.1 24.6c7.7-18.6 28-28.5 47.4-23.2l88 24C499.9 30.2 512 46 512 64c0 247.4-200.6 448-448 448c-18 0-33.8-12.1-38.6-29.5l-24-88c-5.3-19.4 4.6-39.7 23.2-47.4l96-40c16.3-6.8 35.2-2.1 46.3 11.6L207.3 368c70.4-33.3 127.4-90.3 160.7-160.7L318.7 167c-13.7-11.2-18.4-30-11.6-46.3l40-96z\"]\n};\nconst faPhoneAlt = faPhoneFlip;\nconst faTruckFront = {\n prefix: 'fas',\n iconName: 'truck-front',\n icon: [512, 512, [], \"e2b7\", \"M0 80C0 35.8 35.8 0 80 0L432 0c44.2 0 80 35.8 80 80l0 288c0 26.2-12.6 49.4-32 64l0 48c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-32-256 0 0 32c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-48C12.6 417.4 0 394.2 0 368L0 80zm129.9 72.2L112 224l288 0-17.9-71.8C378.5 138 365.7 128 351 128l-190 0c-14.7 0-27.5 10-31 24.2zM128 320a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm288 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nconst faCat = {\n prefix: 'fas',\n iconName: 'cat',\n icon: [576, 512, [128008], \"f6be\", \"M320 192l17.1 0c22.1 38.3 63.5 64 110.9 64c11 0 21.8-1.4 32-4l0 4 0 32 0 192c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-140.8L280 448l56 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-144 0c-53 0-96-43-96-96l0-223.5c0-16.1-12-29.8-28-31.8l-7.9-1c-17.5-2.2-30-18.2-27.8-35.7s18.2-30 35.7-27.8l7.9 1c48 6 84.1 46.8 84.1 95.3l0 85.3c34.4-51.7 93.2-85.8 160-85.8zm160 26.5s0 0 0 0c-10 3.5-20.8 5.5-32 5.5c-28.4 0-54-12.4-71.6-32c0 0 0 0 0 0c-3.7-4.1-7-8.5-9.9-13.2C357.3 164 352 146.6 352 128c0 0 0 0 0 0l0-96 0-20 0-1.3C352 4.8 356.7 .1 362.6 0l.2 0c3.3 0 6.4 1.6 8.4 4.2c0 0 0 0 0 .1L384 21.3l27.2 36.3L416 64l64 0 4.8-6.4L512 21.3 524.8 4.3c0 0 0 0 0-.1c2-2.6 5.1-4.2 8.4-4.2l.2 0C539.3 .1 544 4.8 544 10.7l0 1.3 0 20 0 96c0 17.3-4.6 33.6-12.6 47.6c-11.3 19.8-29.6 35.2-51.4 42.9zM432 128a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm48 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"]\n};\nconst faAnchorCircleExclamation = {\n prefix: 'fas',\n iconName: 'anchor-circle-exclamation',\n icon: [640, 512, [], \"e4ab\", \"M320 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm21.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80L224 176c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 208-48 0c-53 0-96-43-96-96l0-6.1 7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7 0 6.1c0 88.4 71.6 160 160 160l80 0 80 0c8.2 0 16.3-.6 24.2-1.8c-22.2-16.2-40.4-37.5-53-62.2L320 448l0-80 0-128 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-10.9 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"]\n};\nconst faTruckField = {\n prefix: 'fas',\n iconName: 'truck-field',\n icon: [640, 512, [], \"e58d\", \"M32 96c0-35.3 28.7-64 64-64l224 0c23.7 0 44.4 12.9 55.4 32l51.8 0c25.3 0 48.2 14.9 58.5 38l52.8 118.8c.5 1.1 .9 2.1 1.3 3.2l4.2 0c35.3 0 64 28.7 64 64l0 32c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c0 53-43 96-96 96s-96-43-96-96l-128 0c0 53-43 96-96 96s-96-43-96-96l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-32c-17.7 0-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32l0-32zM384 224l85.9 0-42.7-96L384 128l0 96zM160 432a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm368-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"]\n};\nconst faRoute = {\n prefix: 'fas',\n iconName: 'route',\n icon: [512, 512, [], \"f4d7\", \"M512 96c0 50.2-59.1 125.1-84.6 155c-3.8 4.4-9.4 6.1-14.5 5L320 256c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c53 0 96 43 96 96s-43 96-96 96l-276.4 0c8.7-9.9 19.3-22.6 30-36.8c6.3-8.4 12.8-17.6 19-27.2L416 448c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0c-53 0-96-43-96-96s43-96 96-96l39.8 0c-21-31.5-39.8-67.7-39.8-96c0-53 43-96 96-96s96 43 96 96zM117.1 489.1c-3.8 4.3-7.2 8.1-10.1 11.3l-1.8 2-.2-.2c-6 4.6-14.6 4-20-1.8C59.8 473 0 402.5 0 352c0-53 43-96 96-96s96 43 96 96c0 30-21.1 67-43.5 97.9c-10.7 14.7-21.7 28-30.8 38.5l-.6 .7zM128 352a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM416 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nconst faClipboardQuestion = {\n prefix: 'fas',\n iconName: 'clipboard-question',\n icon: [384, 512, [], \"e4e3\", \"M192 0c-41.8 0-77.4 26.7-90.5 64L64 64C28.7 64 0 92.7 0 128L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64l-37.5 0C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM105.8 229.3c7.9-22.3 29.1-37.3 52.8-37.3l58.3 0c34.9 0 63.1 28.3 63.1 63.1c0 22.6-12.1 43.5-31.7 54.8L216 328.4c-.2 13-10.9 23.6-24 23.6c-13.3 0-24-10.7-24-24l0-13.5c0-8.6 4.6-16.5 12.1-20.8l44.3-25.4c4.7-2.7 7.6-7.7 7.6-13.1c0-8.4-6.8-15.1-15.1-15.1l-58.3 0c-3.4 0-6.4 2.1-7.5 5.3l-.4 1.2c-4.4 12.5-18.2 19-30.6 14.6s-19-18.2-14.6-30.6l.4-1.2zM160 416a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nconst faPanorama = {\n prefix: 'fas',\n iconName: 'panorama',\n icon: [640, 512, [], \"e209\", \"M45.6 32C20.4 32 0 52.4 0 77.6L0 434.4C0 459.6 20.4 480 45.6 480c5.1 0 10-.8 14.7-2.4C74.6 472.8 177.6 440 320 440s245.4 32.8 259.6 37.6c4.7 1.6 9.7 2.4 14.7 2.4c25.2 0 45.6-20.4 45.6-45.6l0-356.7C640 52.4 619.6 32 594.4 32c-5 0-10 .8-14.7 2.4C565.4 39.2 462.4 72 320 72S74.6 39.2 60.4 34.4C55.6 32.8 50.7 32 45.6 32zM96 160a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm272 0c7.9 0 15.4 3.9 19.8 10.5L512.3 353c5.4 8 5.6 18.4 .4 26.5s-14.7 12.3-24.2 10.7C442.7 382.4 385.2 376 320 376c-65.6 0-123.4 6.5-169.3 14.4c-9.8 1.7-19.7-2.9-24.7-11.5s-4.3-19.4 1.9-27.2L197.3 265c4.6-5.7 11.4-9 18.7-9s14.2 3.3 18.7 9l26.4 33.1 87-127.6c4.5-6.6 11.9-10.5 19.8-10.5z\"]\n};\nconst faCommentMedical = {\n prefix: 'fas',\n iconName: 'comment-medical',\n icon: [512, 512, [], \"f7f5\", \"M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0s0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zM224 160c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 48 48 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l48 0 0-48z\"]\n};\nconst faTeethOpen = {\n prefix: 'fas',\n iconName: 'teeth-open',\n icon: [576, 512, [], \"f62f\", \"M96 32C43 32 0 75 0 128l0 64c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-64c0-53-43-96-96-96L96 32zM224 96c26.5 0 48 21.5 48 48l0 56c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-56c0-26.5 21.5-48 48-48zm80 48c0-26.5 21.5-48 48-48s48 21.5 48 48l0 56c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-56zM96 128c26.5 0 48 21.5 48 48l0 24c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-24c0-26.5 21.5-48 48-48zm336 48c0-26.5 21.5-48 48-48s48 21.5 48 48l0 24c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-24zM96 480l384 0c53 0 96-43 96-96l0-32c0-35.3-28.7-64-64-64L64 288c-35.3 0-64 28.7-64 64l0 32c0 53 43 96 96 96zm0-64c-26.5 0-48-21.5-48-48l0-24c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 24c0 26.5-21.5 48-48 48zm80-48l0-24c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 24c0 26.5-21.5 48-48 48s-48-21.5-48-48zm176 48c-26.5 0-48-21.5-48-48l0-24c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 24c0 26.5-21.5 48-48 48zm80-48l0-24c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 24c0 26.5-21.5 48-48 48s-48-21.5-48-48z\"]\n};\nconst faFileCircleMinus = {\n prefix: 'fas',\n iconName: 'file-circle-minus',\n icon: [576, 512, [], \"e4ed\", \"M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zM288 368a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm224 0c0-8.8-7.2-16-16-16l-128 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l128 0c8.8 0 16-7.2 16-16z\"]\n};\nconst faTags = {\n prefix: 'fas',\n iconName: 'tags',\n icon: [512, 512, [], \"f02c\", \"M345 39.1L472.8 168.4c52.4 53 52.4 138.2 0 191.2L360.8 472.9c-9.3 9.4-24.5 9.5-33.9 .2s-9.5-24.5-.2-33.9L438.6 325.9c33.9-34.3 33.9-89.4 0-123.7L310.9 72.9c-9.3-9.4-9.2-24.6 .2-33.9s24.6-9.2 33.9 .2zM0 229.5L0 80C0 53.5 21.5 32 48 32l149.5 0c17 0 33.3 6.7 45.3 18.7l168 168c25 25 25 65.5 0 90.5L277.3 442.7c-25 25-65.5 25-90.5 0l-168-168C6.7 262.7 0 246.5 0 229.5zM144 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"]\n};\nconst faWineGlass = {\n prefix: 'fas',\n iconName: 'wine-glass',\n icon: [320, 512, [127863], \"f4e3\", \"M32.1 29.3C33.5 12.8 47.4 0 64 0L256 0c16.6 0 30.5 12.8 31.9 29.3l14 168.4c6 72-42.5 135.2-109.9 150.6l0 99.6 48 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-80 0-80 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l48 0 0-99.6C60.6 333 12.1 269.8 18.1 197.8l14-168.4zm56 98.7l143.8 0-5.3-64L93.4 64l-5.3 64z\"]\n};\nconst faForwardFast = {\n prefix: 'fas',\n iconName: 'forward-fast',\n icon: [512, 512, [9197, \"fast-forward\"], \"f050\", \"M18.4 445c11.2 5.3 24.5 3.6 34.1-4.4L224 297.7 224 416c0 12.4 7.2 23.7 18.4 29s24.5 3.6 34.1-4.4L448 297.7 448 416c0 17.7 14.3 32 32 32s32-14.3 32-32l0-320c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 118.3L276.5 71.4c-9.5-7.9-22.8-9.7-34.1-4.4S224 83.6 224 96l0 118.3L52.5 71.4c-9.5-7.9-22.8-9.7-34.1-4.4S0 83.6 0 96L0 416c0 12.4 7.2 23.7 18.4 29z\"]\n};\nconst faFastForward = faForwardFast;\nconst faFaceMehBlank = {\n prefix: 'fas',\n iconName: 'face-meh-blank',\n icon: [512, 512, [128566, \"meh-blank\"], \"f5a4\", \"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm208.4-48a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm128 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nconst faMehBlank = faFaceMehBlank;\nconst faSquareParking = {\n prefix: 'fas',\n iconName: 'square-parking',\n icon: [448, 512, [127359, \"parking\"], \"f540\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM192 256l48 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-48 0 0 64zm48 64l-48 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64 0-120c0-22.1 17.9-40 40-40l72 0c53 0 96 43 96 96s-43 96-96 96z\"]\n};\nconst faParking = faSquareParking;\nconst faHouseSignal = {\n prefix: 'fas',\n iconName: 'house-signal',\n icon: [576, 512, [], \"e012\", \"M357.7 8.5c-12.3-11.3-31.2-11.3-43.4 0l-208 192c-9.4 8.6-12.7 22-8.5 34c87.1 25.3 155.6 94.2 180.3 181.6L464 416c26.5 0 48-21.5 48-48l0-112 32 0c13.2 0 25-8.1 29.8-20.3s1.6-26.2-8.1-35.2l-208-192zM288 208c0-8.8 7.2-16 16-16l64 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16l0-64zM24 256c-13.3 0-24 10.7-24 24s10.7 24 24 24c101.6 0 184 82.4 184 184c0 13.3 10.7 24 24 24s24-10.7 24-24c0-128.1-103.9-232-232-232zm8 256a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM0 376c0 13.3 10.7 24 24 24c48.6 0 88 39.4 88 88c0 13.3 10.7 24 24 24s24-10.7 24-24c0-75.1-60.9-136-136-136c-13.3 0-24 10.7-24 24z\"]\n};\nconst faBarsProgress = {\n prefix: 'fas',\n iconName: 'bars-progress',\n icon: [512, 512, [\"tasks-alt\"], \"f828\", \"M448 160l-128 0 0-32 128 0 0 32zM48 64C21.5 64 0 85.5 0 112l0 64c0 26.5 21.5 48 48 48l416 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48L48 64zM448 352l0 32-256 0 0-32 256 0zM48 288c-26.5 0-48 21.5-48 48l0 64c0 26.5 21.5 48 48 48l416 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48L48 288z\"]\n};\nconst faTasksAlt = faBarsProgress;\nconst faFaucetDrip = {\n prefix: 'fas',\n iconName: 'faucet-drip',\n icon: [512, 512, [128688], \"e006\", \"M224 0c17.7 0 32 14.3 32 32l0 12 96-12c17.7 0 32 14.3 32 32s-14.3 32-32 32L256 84l-31-3.9-1-.1-1 .1L192 84 96 96C78.3 96 64 81.7 64 64s14.3-32 32-32l96 12 0-12c0-17.7 14.3-32 32-32zM0 224c0-17.7 14.3-32 32-32l96 0 22.6-22.6c6-6 14.1-9.4 22.6-9.4l18.7 0 0-43.8 32-4 32 4 0 43.8 18.7 0c8.5 0 16.6 3.4 22.6 9.4L320 192l32 0c88.4 0 160 71.6 160 160c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32s-14.3-32-32-32l-36.1 0c-20.2 29-53.9 48-91.9 48s-71.7-19-91.9-48L32 320c-17.7 0-32-14.3-32-32l0-64zM436.8 423.4c1.9-4.5 6.3-7.4 11.2-7.4s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1l18.2-42.4z\"]\n};\nconst faCartFlatbed = {\n prefix: 'fas',\n iconName: 'cart-flatbed',\n icon: [640, 512, [\"dolly-flatbed\"], \"f474\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l16 0c8.8 0 16 7.2 16 16l0 288c0 44.2 35.8 80 80 80l18.7 0c-1.8 5-2.7 10.4-2.7 16c0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1-11-2.7-16l197.5 0c-1.8 5-2.7 10.4-2.7 16c0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1-11-2.7-16l66.7 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-464 0c-8.8 0-16-7.2-16-16l0-288C128 35.8 92.2 0 48 0L32 0zM192 80l0 192c0 26.5 21.5 48 48 48l320 0c26.5 0 48-21.5 48-48l0-192c0-26.5-21.5-48-48-48l-96 0 0 144c0 5.9-3.2 11.3-8.5 14.1s-11.5 2.5-16.4-.8L400 163.2l-39.1 26.1c-4.9 3.3-11.2 3.6-16.4 .8s-8.5-8.2-8.5-14.1l0-144-96 0c-26.5 0-48 21.5-48 48z\"]\n};\nconst faDollyFlatbed = faCartFlatbed;\nconst faBanSmoking = {\n prefix: 'fas',\n iconName: 'ban-smoking',\n icon: [512, 512, [128685, \"smoking-ban\"], \"f54d\", \"M99.5 144.8L178.7 224l96 96 92.5 92.5C335.9 434.9 297.5 448 256 448C150 448 64 362 64 256c0-41.5 13.1-79.9 35.5-111.2zM333.3 288l-32-32 82.7 0 0 32-50.7 0zm32 32l34.7 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-130.7 0L144.8 99.5C176.1 77.1 214.5 64 256 64c106 0 192 86 192 192c0 41.5-13.1 79.9-35.5 111.2L365.3 320zM256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM272 96c-8.8 0-16 7.2-16 16c0 26.5 21.5 48 48 48l32 0c8.8 0 16 7.2 16 16s7.2 16 16 16s16-7.2 16-16c0-26.5-21.5-48-48-48l-32 0c-8.8 0-16-7.2-16-16s-7.2-16-16-16zM229.5 320l-96-96L112 224c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l117.5 0z\"]\n};\nconst faSmokingBan = faBanSmoking;\nconst faTerminal = {\n prefix: 'fas',\n iconName: 'terminal',\n icon: [576, 512, [], \"f120\", \"M9.4 86.6C-3.1 74.1-3.1 53.9 9.4 41.4s32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L178.7 256 9.4 86.6zM256 416l288 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-288 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nconst faMobileButton = {\n prefix: 'fas',\n iconName: 'mobile-button',\n icon: [384, 512, [], \"f10b\", \"M80 0C44.7 0 16 28.7 16 64l0 384c0 35.3 28.7 64 64 64l224 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L80 0zM192 400a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nconst faHouseMedicalFlag = {\n prefix: 'fas',\n iconName: 'house-medical-flag',\n icon: [640, 512, [], \"e514\", \"M480 0c17.7 0 32 14.3 32 32l112 0c8.8 0 16 7.2 16 16l0 128c0 8.8-7.2 16-16 16l-112 0 0 320-64 0 0-320 0-160c0-17.7 14.3-32 32-32zM276.8 39.7L416 159l0 353 1 0-.2 0L96 512c-17.7 0-32-14.3-32-32l0-192-32 0c-13.4 0-25.4-8.3-30-20.9s-1-26.7 9.2-35.4l224-192c12-10.3 29.7-10.3 41.7 0zM224 208l0 48-48 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-48 0 0-48c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z\"]\n};\nconst faBasketShopping = {\n prefix: 'fas',\n iconName: 'basket-shopping',\n icon: [576, 512, [\"shopping-basket\"], \"f291\", \"M253.3 35.1c6.1-11.8 1.5-26.3-10.2-32.4s-26.3-1.5-32.4 10.2L117.6 192 32 192c-17.7 0-32 14.3-32 32s14.3 32 32 32L83.9 463.5C91 492 116.6 512 146 512L430 512c29.4 0 55-20 62.1-48.5L544 256c17.7 0 32-14.3 32-32s-14.3-32-32-32l-85.6 0L365.3 12.9C359.2 1.2 344.7-3.4 332.9 2.7s-16.3 20.6-10.2 32.4L404.3 192l-232.6 0L253.3 35.1zM192 304l0 96c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-8.8 7.2-16 16-16s16 7.2 16 16zm96-16c8.8 0 16 7.2 16 16l0 96c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-8.8 7.2-16 16-16zm128 16l0 96c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nconst faShoppingBasket = faBasketShopping;\nconst faTape = {\n prefix: 'fas',\n iconName: 'tape',\n icon: [576, 512, [], \"f4db\", \"M380.8 416c41.5-40.7 67.2-97.3 67.2-160C448 132.3 347.7 32 224 32S0 132.3 0 256S100.3 480 224 480l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-163.2 0zM224 160a96 96 0 1 1 0 192 96 96 0 1 1 0-192zm64 96a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z\"]\n};\nconst faBusSimple = {\n prefix: 'fas',\n iconName: 'bus-simple',\n icon: [448, 512, [\"bus-alt\"], \"f55e\", \"M224 0C348.8 0 448 35.2 448 80l0 16 0 320c0 17.7-14.3 32-32 32l0 32c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-32-192 0 0 32c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-32c-17.7 0-32-14.3-32-32L0 96 0 80C0 35.2 99.2 0 224 0zM64 128l0 128c0 17.7 14.3 32 32 32l256 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32L96 96c-17.7 0-32 14.3-32 32zM80 400a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm288 0a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nconst faBusAlt = faBusSimple;\nconst faEye = {\n prefix: 'fas',\n iconName: 'eye',\n icon: [576, 512, [128065], \"f06e\", \"M288 32c-80.8 0-145.5 36.8-192.6 80.6C48.6 156 17.3 208 2.5 243.7c-3.3 7.9-3.3 16.7 0 24.6C17.3 304 48.6 356 95.4 399.4C142.5 443.2 207.2 480 288 480s145.5-36.8 192.6-80.6c46.8-43.5 78.1-95.4 93-131.1c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C433.5 68.8 368.8 32 288 32zM144 256a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm144-64c0 35.3-28.7 64-64 64c-7.1 0-13.9-1.2-20.3-3.3c-5.5-1.8-11.9 1.6-11.7 7.4c.3 6.9 1.3 13.8 3.2 20.7c13.7 51.2 66.4 81.6 117.6 67.9s81.6-66.4 67.9-117.6c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3z\"]\n};\nconst faFaceSadCry = {\n prefix: 'fas',\n iconName: 'face-sad-cry',\n icon: [512, 512, [128557, \"sad-cry\"], \"f5b3\", \"M352 493.4c-29.6 12-62.1 18.6-96 18.6s-66.4-6.6-96-18.6L160 288c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 189.8C51.5 433.5 0 350.8 0 256C0 114.6 114.6 0 256 0S512 114.6 512 256c0 94.8-51.5 177.5-128 221.8L384 288c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 205.4zM195.2 233.6c5.3 7.1 15.3 8.5 22.4 3.2s8.5-15.3 3.2-22.4c-30.4-40.5-91.2-40.5-121.6 0c-5.3 7.1-3.9 17.1 3.2 22.4s17.1 3.9 22.4-3.2c17.6-23.5 52.8-23.5 70.4 0zm121.6 0c17.6-23.5 52.8-23.5 70.4 0c5.3 7.1 15.3 8.5 22.4 3.2s8.5-15.3 3.2-22.4c-30.4-40.5-91.2-40.5-121.6 0c-5.3 7.1-3.9 17.1 3.2 22.4s17.1 3.9 22.4-3.2zM208 336l0 32c0 26.5 21.5 48 48 48s48-21.5 48-48l0-32c0-26.5-21.5-48-48-48s-48 21.5-48 48z\"]\n};\nconst faSadCry = faFaceSadCry;\nconst faAudioDescription = {\n prefix: 'fas',\n iconName: 'audio-description',\n icon: [576, 512, [], \"f29e\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM213.5 173.3l72 144c5.9 11.9 1.1 26.3-10.7 32.2s-26.3 1.1-32.2-10.7l-9.4-18.9-82.2 0-9.4 18.9c-5.9 11.9-20.3 16.7-32.2 10.7s-16.7-20.3-10.7-32.2l72-144c4.1-8.1 12.4-13.3 21.5-13.3s17.4 5.1 21.5 13.3zm-.4 106.6L192 237.7l-21.1 42.2 42.2 0zM304 184c0-13.3 10.7-24 24-24l56 0c53 0 96 43 96 96s-43 96-96 96l-56 0c-13.3 0-24-10.7-24-24l0-144zm48 24l0 96 32 0c26.5 0 48-21.5 48-48s-21.5-48-48-48l-32 0z\"]\n};\nconst faPersonMilitaryToPerson = {\n prefix: 'fas',\n iconName: 'person-military-to-person',\n icon: [512, 512, [], \"e54c\", \"M71 12.5c-8.6 1-15 8.2-15 16.8c0 9.3 7.5 16.8 16.7 16.9l111.4 0c8.8-.1 15.9-7.2 15.9-16L200 16c0-9.5-8.3-17-17.8-15.9L71 12.5zM189.5 78.1l-122.9 0C64.9 83.8 64 89.8 64 96c0 35.3 28.7 64 64 64s64-28.7 64-64c0-6.2-.9-12.2-2.5-17.9zM32 256l0 32c0 17.7 14.3 32 32 32l128 0c1.8 0 3.5-.1 5.2-.4L53 208.6C40.1 220.3 32 237.2 32 256zm190.2 42.5c1.1-3.3 1.8-6.8 1.8-10.5l0-32c0-35.3-28.7-64-64-64l-64 0c-3.7 0-7.4 .3-10.9 .9L222.2 298.5zM384 160a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm-32 32c-35.3 0-64 28.7-64 64l0 32c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-32c0-35.3-28.7-64-64-64l-64 0zM215.8 450.1c5.2-4.6 8.2-11.1 8.2-18.1s-3-13.5-8.2-18.1l-64-56c-7.1-6.2-17.1-7.7-25.7-3.8S112 366.6 112 376l0 32-88 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l88 0 0 32c0 9.4 5.5 18 14.1 21.9s18.6 2.4 25.7-3.8l64-56zM288 431.9c0 6.9 2.9 13.5 8.1 18.1l64 56.4c7.1 6.2 17.1 7.8 25.7 3.9s14.1-12.4 14.1-21.9l0-32.4 88 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-88 0 0-32c0-9.4-5.5-18-14.1-21.9s-18.6-2.4-25.7 3.8l-64 56c-5.2 4.5-8.2 11.1-8.2 18z\"]\n};\nconst faFileShield = {\n prefix: 'fas',\n iconName: 'file-shield',\n icon: [576, 512, [], \"e4f0\", \"M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 47-92.8 37.1c-21.3 8.5-35.2 29.1-35.2 52c0 56.6 18.9 148 94.2 208.3c-9 4.8-19.3 7.6-30.2 7.6L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zm39.1 97.7c5.7-2.3 12.1-2.3 17.8 0l120 48C570 277.4 576 286.2 576 296c0 63.3-25.9 168.8-134.8 214.2c-5.9 2.5-12.6 2.5-18.5 0C313.9 464.8 288 359.3 288 296c0-9.8 6-18.6 15.1-22.3l120-48zM527.4 312L432 273.8l0 187.8c68.2-33 91.5-99 95.4-149.7z\"]\n};\nconst faUserSlash = {\n prefix: 'fas',\n iconName: 'user-slash',\n icon: [640, 512, [], \"f506\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L353.3 251.6C407.9 237 448 187.2 448 128C448 57.3 390.7 0 320 0C250.2 0 193.5 55.8 192 125.2L38.8 5.1zM264.3 304.3C170.5 309.4 96 387.2 96 482.3c0 16.4 13.3 29.7 29.7 29.7l388.6 0c3.9 0 7.6-.7 11-2.1l-261-205.6z\"]\n};\nconst faPen = {\n prefix: 'fas',\n iconName: 'pen',\n icon: [512, 512, [128394], \"f304\", \"M362.7 19.3L314.3 67.7 444.3 197.7l48.4-48.4c25-25 25-65.5 0-90.5L453.3 19.3c-25-25-65.5-25-90.5 0zm-71 71L58.6 323.5c-10.4 10.4-18 23.3-22.2 37.4L1 481.2C-1.5 489.7 .8 498.8 7 505s15.3 8.5 23.7 6.1l120.3-35.4c14.1-4.2 27-11.8 37.4-22.2L421.7 220.3 291.7 90.3z\"]\n};\nconst faTowerObservation = {\n prefix: 'fas',\n iconName: 'tower-observation',\n icon: [512, 512, [], \"e586\", \"M241.7 3.4c9-4.5 19.6-4.5 28.6 0l160 80c15.8 7.9 22.2 27.1 14.3 42.9C439 137.5 427.7 144 416 144l0 80c0 17.7-14.3 32-32 32l-4.9 0 32 192 68.9 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-95.5 0c-.4 0-.8 0-1.1 0l-254.8 0c-.4 0-.8 0-1.1 0L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l68.9 0 32-192-4.9 0c-17.7 0-32-14.3-32-32l0-80c-11.7 0-23-6.5-28.6-17.7c-7.9-15.8-1.5-35 14.3-42.9l160-80zM314.5 448L256 399.2 197.5 448l117 0zM197.8 256l-4.7 28.3L256 336.8l62.9-52.5L314.2 256l-116.5 0zm-13.9 83.2l-11.2 67L218.5 368l-34.6-28.8zM293.5 368l45.8 38.1-11.2-67L293.5 368zM176 128c-8.8 0-16 7.2-16 16s7.2 16 16 16l160 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-160 0z\"]\n};\nconst faFileCode = {\n prefix: 'fas',\n iconName: 'file-code',\n icon: [384, 512, [], \"f1c9\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM153 289l-31 31 31 31c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L71 337c-9.4-9.4-9.4-24.6 0-33.9l48-48c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zM265 255l48 48c9.4 9.4 9.4 24.6 0 33.9l-48 48c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z\"]\n};\nconst faSignal = {\n prefix: 'fas',\n iconName: 'signal',\n icon: [640, 512, [128246, \"signal-5\", \"signal-perfect\"], \"f012\", \"M576 0c17.7 0 32 14.3 32 32l0 448c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-448c0-17.7 14.3-32 32-32zM448 96c17.7 0 32 14.3 32 32l0 352c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-352c0-17.7 14.3-32 32-32zM352 224l0 256c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32s32 14.3 32 32zM192 288c17.7 0 32 14.3 32 32l0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160c0-17.7 14.3-32 32-32zM96 416l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32z\"]\n};\nconst faSignal5 = faSignal;\nconst faSignalPerfect = faSignal;\nconst faBus = {\n prefix: 'fas',\n iconName: 'bus',\n icon: [576, 512, [128653], \"f207\", \"M288 0C422.4 0 512 35.2 512 80l0 16 0 32c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l0 160c0 17.7-14.3 32-32 32l0 32c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-32-192 0 0 32c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-32c-17.7 0-32-14.3-32-32l0-160c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32c0 0 0 0 0 0l0-32s0 0 0 0l0-16C64 35.2 153.6 0 288 0zM128 160l0 96c0 17.7 14.3 32 32 32l112 0 0-160-112 0c-17.7 0-32 14.3-32 32zM304 288l112 0c17.7 0 32-14.3 32-32l0-96c0-17.7-14.3-32-32-32l-112 0 0 160zM144 400a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm288 0a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM384 80c0-8.8-7.2-16-16-16L208 64c-8.8 0-16 7.2-16 16s7.2 16 16 16l160 0c8.8 0 16-7.2 16-16z\"]\n};\nconst faHeartCircleXmark = {\n prefix: 'fas',\n iconName: 'heart-circle-xmark',\n icon: [576, 512, [], \"e501\", \"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6l0-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1l0 5.8c0 41.5 17.2 81.2 47.6 109.5zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L454.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L432 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L409.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L432 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nconst faHouseChimney = {\n prefix: 'fas',\n iconName: 'house-chimney',\n icon: [576, 512, [63499, \"home-lg\"], \"e3af\", \"M543.8 287.6c17 0 32-14 32-32.1c1-9-3-17-11-24L512 185l0-121c0-17.7-14.3-32-32-32l-32 0c-17.7 0-32 14.3-32 32l0 36.7L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1l32 0 0 69.7c-.1 .9-.1 1.8-.1 2.8l0 112c0 22.1 17.9 40 40 40l16 0c1.2 0 2.4-.1 3.6-.2c1.5 .1 3 .2 4.5 .2l31.9 0 24 0c22.1 0 40-17.9 40-40l0-24 0-64c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 64 0 24c0 22.1 17.9 40 40 40l24 0 32.5 0c1.4 0 2.8 0 4.2-.1c1.1 .1 2.2 .1 3.3 .1l16 0c22.1 0 40-17.9 40-40l0-16.2c.3-2.6 .5-5.3 .5-8.1l-.7-160.2 32 0z\"]\n};\nconst faHomeLg = faHouseChimney;\nconst faWindowMaximize = {\n prefix: 'fas',\n iconName: 'window-maximize',\n icon: [512, 512, [128470], \"f2d0\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM96 96l320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L96 160c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nconst faFaceFrown = {\n prefix: 'fas',\n iconName: 'face-frown',\n icon: [512, 512, [9785, \"frown\"], \"f119\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM159.3 388.7c-2.6 8.4-11.6 13.2-20 10.5s-13.2-11.6-10.5-20C145.2 326.1 196.3 288 256 288s110.8 38.1 127.3 91.3c2.6 8.4-2.1 17.4-10.5 20s-17.4-2.1-20-10.5C340.5 349.4 302.1 320 256 320s-84.5 29.4-96.7 68.7zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nconst faFrown = faFaceFrown;\nconst faPrescription = {\n prefix: 'fas',\n iconName: 'prescription',\n icon: [448, 512, [], \"f5b1\", \"M32 0C14.3 0 0 14.3 0 32L0 192l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 50.7 0 128 128L137.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L288 397.3 393.4 502.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L333.3 352 438.6 246.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 306.7l-85.8-85.8C251.4 209.1 288 164.8 288 112C288 50.1 237.9 0 176 0L32 0zM176 160L64 160l0-96 112 0c26.5 0 48 21.5 48 48s-21.5 48-48 48z\"]\n};\nconst faShop = {\n prefix: 'fas',\n iconName: 'shop',\n icon: [640, 512, [\"store-alt\"], \"f54f\", \"M36.8 192l566.3 0c20.3 0 36.8-16.5 36.8-36.8c0-7.3-2.2-14.4-6.2-20.4L558.2 21.4C549.3 8 534.4 0 518.3 0L121.7 0c-16 0-31 8-39.9 21.4L6.2 134.7c-4 6.1-6.2 13.2-6.2 20.4C0 175.5 16.5 192 36.8 192zM64 224l0 160 0 80c0 26.5 21.5 48 48 48l224 0c26.5 0 48-21.5 48-48l0-80 0-160-64 0 0 160-192 0 0-160-64 0zm448 0l0 256c0 17.7 14.3 32 32 32s32-14.3 32-32l0-256-64 0z\"]\n};\nconst faStoreAlt = faShop;\nconst faFloppyDisk = {\n prefix: 'fas',\n iconName: 'floppy-disk',\n icon: [448, 512, [128190, 128426, \"save\"], \"f0c7\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-242.7c0-17-6.7-33.3-18.7-45.3L352 50.7C340 38.7 323.7 32 306.7 32L64 32zm0 96c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32L96 224c-17.7 0-32-14.3-32-32l0-64zM224 288a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"]\n};\nconst faSave = faFloppyDisk;\nconst faVihara = {\n prefix: 'fas',\n iconName: 'vihara',\n icon: [640, 512, [], \"f6a7\", \"M281 22L305.8 4.7c1.3-.9 2.7-1.8 4.1-2.4C313.1 .7 316.6 0 320 0s6.9 .7 10.1 2.2c1.4 .7 2.8 1.5 4.1 2.4L359 22C393 45.8 430.8 63.5 470.8 74.4l23 6.3c1.8 .5 3.6 1.1 5.2 2c3.2 1.7 5.9 4 8.1 6.8c3.8 4.9 5.6 11.3 4.7 17.8c-.4 2.8-1.2 5.4-2.5 7.8c-1.7 3.2-4 5.9-6.8 8.1c-4.3 3.2-9.6 5.1-15.1 4.9l-7.5 0 0 56.1 6.4 5.1 5.2 4.1c21.1 16.7 45 29.6 70.5 38.1l28.9 9.6c1.6 .5 3.2 1.2 4.6 2c3.1 1.7 5.8 4.1 7.8 6.9s3.5 6.1 4.1 9.6c.5 2.7 .6 5.5 .1 8.3s-1.4 5.4-2.7 7.8c-1.7 3.1-4.1 5.8-6.9 7.8s-6.1 3.5-9.6 4.1c-1.6 .3-3.3 .4-5 .4L544 288l0 65.9c20.5 22.8 47.4 39.2 77.4 46.7C632 403 640 412.6 640 424c0 13.3-10.7 24-24 24l-40 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-160 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-160 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-40 0c-13.3 0-24-10.7-24-24c0-11.4 8-21 18.6-23.4c30-7.6 56.9-23.9 77.4-46.7L96 288l-39.4 0c-1.7 0-3.4-.1-5-.4c-3.5-.7-6.8-2.1-9.6-4.1s-5.2-4.7-7-7.8c-1.3-2.4-2.3-5-2.7-7.8s-.4-5.6 .1-8.3c.7-3.5 2.1-6.8 4.1-9.6s4.7-5.2 7.8-6.9c1.4-.8 3-1.5 4.6-2l28.9-9.6c25.5-8.5 49.4-21.4 70.5-38.1l5.2-4.1 6.4-5.1 0-8.1 0-48-7.5 0c-5.5 .1-10.8-1.7-15.1-4.9c-2.8-2.1-5.1-4.8-6.8-8.1c-1.2-2.4-2.1-5-2.5-7.8c-.9-6.5 .9-12.8 4.7-17.8c2.1-2.8 4.8-5.1 8.1-6.8c1.6-.8 3.4-1.5 5.2-2l23-6.3C209.2 63.5 247 45.8 281 22zM416 128l-96 0-96 0 0 64 72 0 48 0 72 0 0-64zM160 288l0 64 136 0 24 0 24 0 136 0 0-64-136 0-24 0s0 0 0 0l-24 0-136 0z\"]\n};\nconst faScaleUnbalanced = {\n prefix: 'fas',\n iconName: 'scale-unbalanced',\n icon: [640, 512, [\"balance-scale-left\"], \"f515\", \"M522.1 62.4c16.8-5.6 25.8-23.7 20.2-40.5S518.6-3.9 501.9 1.6l-113 37.7C375 15.8 349.3 0 320 0c-44.2 0-80 35.8-80 80c0 3 .2 5.9 .5 8.8L117.9 129.6c-16.8 5.6-25.8 23.7-20.2 40.5s23.7 25.8 40.5 20.2l135.5-45.2c4.5 3.2 9.3 5.9 14.4 8.2L288 480c0 17.7 14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0 0-294.7c21-9.2 37.2-27 44.2-49l125.9-42zM439.6 288L512 163.8 584.4 288l-144.9 0zM512 384c62.9 0 115.2-34 126-78.9c2.6-11-1-22.3-6.7-32.1L536.1 109.8c-5-8.6-14.2-13.8-24.1-13.8s-19.1 5.3-24.1 13.8L392.7 273.1c-5.7 9.8-9.3 21.1-6.7 32.1C396.8 350 449.1 384 512 384zM129.2 291.8L201.6 416 56.7 416l72.4-124.2zM3.2 433.1C14 478 66.3 512 129.2 512s115.2-34 126-78.9c2.6-11-1-22.3-6.7-32.1L153.2 237.8c-5-8.6-14.2-13.8-24.1-13.8s-19.1 5.3-24.1 13.8L9.9 401.1c-5.7 9.8-9.3 21.1-6.7 32.1z\"]\n};\nconst faBalanceScaleLeft = faScaleUnbalanced;\nconst faSortUp = {\n prefix: 'fas',\n iconName: 'sort-up',\n icon: [320, 512, [\"sort-asc\"], \"f0de\", \"M182.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l256 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-128-128z\"]\n};\nconst faSortAsc = faSortUp;\nconst faCommentDots = {\n prefix: 'fas',\n iconName: 'comment-dots',\n icon: [512, 512, [128172, 62075, \"commenting\"], \"f4ad\", \"M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0s0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zM128 208a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 0a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm96 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nconst faCommenting = faCommentDots;\nconst faPlantWilt = {\n prefix: 'fas',\n iconName: 'plant-wilt',\n icon: [512, 512, [], \"e5aa\", \"M288 120c0-30.9 25.1-56 56-56s56 25.1 56 56l0 13c-29.3 10-48 34.5-48 70.1c0 27.9 25.3 74.8 66 111.6c3.8 3.5 8.9 5.3 14 5.3s10.2-1.8 14-5.3c40.7-36.8 66-83.7 66-111.6c0-35.6-18.7-60.2-48-70.1l0-13C464 53.7 410.3 0 344 0S224 53.7 224 120l0 21.8C207.3 133 188.2 128 168 128c-66.3 0-120 53.7-120 120l0 13c-29.3 10-48 34.5-48 70.1C0 359 25.3 405.9 66 442.7c3.8 3.5 8.9 5.3 14 5.3s10.2-1.8 14-5.3c40.7-36.8 66-83.7 66-111.6c0-35.6-18.7-60.2-48-70.1l0-13c0-30.9 25.1-56 56-56s56 25.1 56 56l0 32 0 200c0 17.7 14.3 32 32 32s32-14.3 32-32l0-200 0-32 0-128z\"]\n};\nconst faDiamond = {\n prefix: 'fas',\n iconName: 'diamond',\n icon: [512, 512, [9830], \"f219\", \"M284.3 11.7c-15.6-15.6-40.9-15.6-56.6 0l-216 216c-15.6 15.6-15.6 40.9 0 56.6l216 216c15.6 15.6 40.9 15.6 56.6 0l216-216c15.6-15.6 15.6-40.9 0-56.6l-216-216z\"]\n};\nconst faFaceGrinSquint = {\n prefix: 'fas',\n iconName: 'face-grin-squint',\n icon: [512, 512, [128518, \"grin-squint\"], \"f585\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zM133.5 146.7l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 157.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z\"]\n};\nconst faGrinSquint = faFaceGrinSquint;\nconst faHandHoldingDollar = {\n prefix: 'fas',\n iconName: 'hand-holding-dollar',\n icon: [576, 512, [\"hand-holding-usd\"], \"f4c0\", \"M312 24l0 10.5c6.4 1.2 12.6 2.7 18.2 4.2c12.8 3.4 20.4 16.6 17 29.4s-16.6 20.4-29.4 17c-10.9-2.9-21.1-4.9-30.2-5c-7.3-.1-14.7 1.7-19.4 4.4c-2.1 1.3-3.1 2.4-3.5 3c-.3 .5-.7 1.2-.7 2.8c0 .3 0 .5 0 .6c.2 .2 .9 1.2 3.3 2.6c5.8 3.5 14.4 6.2 27.4 10.1l.9 .3s0 0 0 0c11.1 3.3 25.9 7.8 37.9 15.3c13.7 8.6 26.1 22.9 26.4 44.9c.3 22.5-11.4 38.9-26.7 48.5c-6.7 4.1-13.9 7-21.3 8.8l0 10.6c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-11.4c-9.5-2.3-18.2-5.3-25.6-7.8c-2.1-.7-4.1-1.4-6-2c-12.6-4.2-19.4-17.8-15.2-30.4s17.8-19.4 30.4-15.2c2.6 .9 5 1.7 7.3 2.5c13.6 4.6 23.4 7.9 33.9 8.3c8 .3 15.1-1.6 19.2-4.1c1.9-1.2 2.8-2.2 3.2-2.9c.4-.6 .9-1.8 .8-4.1l0-.2c0-1 0-2.1-4-4.6c-5.7-3.6-14.3-6.4-27.1-10.3l-1.9-.6c-10.8-3.2-25-7.5-36.4-14.4c-13.5-8.1-26.5-22-26.6-44.1c-.1-22.9 12.9-38.6 27.7-47.4c6.4-3.8 13.3-6.4 20.2-8.2L264 24c0-13.3 10.7-24 24-24s24 10.7 24 24zM568.2 336.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5L192 512 32 512c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l36.8 0 44.9-36c22.7-18.2 50.9-28 80-28l78.3 0 16 0 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0-16 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l120.6 0 119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 384c0 0 0 0 0 0l-.9 0c.3 0 .6 0 .9 0z\"]\n};\nconst faHandHoldingUsd = faHandHoldingDollar;\nconst faBacterium = {\n prefix: 'fas',\n iconName: 'bacterium',\n icon: [512, 512, [], \"e05a\", \"M423.1 30.6c3.6-12.7-3.7-26-16.5-29.7s-26 3.7-29.7 16.5l-4.2 14.7c-9.8-.4-19.9 .5-29.9 2.8c-12.1 2.8-23.7 5.9-34.9 9.4l-5.9-13.7c-5.2-12.2-19.3-17.8-31.5-12.6s-17.8 19.3-12.6 31.5l4.9 11.3c-22 9.4-42 20.1-60.2 31.8L196 82.7c-7.4-11-22.3-14-33.3-6.7s-14 22.3-6.7 33.3l7.8 11.6c-18 15-33.7 30.8-47.3 47.1L103 157.3c-10.4-8.3-25.5-6.6-33.7 3.7s-6.6 25.5 3.7 33.7l15 12c-2.1 3.2-4.1 6.5-6 9.7c-9.4 15.7-17 31-23.2 45.3l-9.9-3.9c-12.3-4.9-26.3 1.1-31.2 13.4s1.1 26.3 13.4 31.2l11.6 4.6c-.3 1.1-.6 2.1-.9 3.1c-3.5 12.5-5.7 23.2-7.1 31.3c-.7 4.1-1.2 7.5-1.6 10.3c-.2 1.4-.3 2.6-.4 3.6l-.1 1.4-.1 .6 0 .3 0 .1c0 0 0 .1 39.2 3.7c0 0 0 0 0 0l-39.2-3.6c-.5 5-.6 10-.4 14.9l-14.7 4.2C4.7 380.6-2.7 393.8 .9 406.6s16.9 20.1 29.7 16.5l13.8-3.9c10.6 20.7 27.6 37.8 48.5 48.5l-3.9 13.7c-3.6 12.7 3.7 26 16.5 29.7s26-3.7 29.7-16.5l4.2-14.7c23.8 1 46.3-5.5 65.1-17.6L215 473c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-10.6-10.6c9.1-14.1 15.1-30.5 17-48.3l.1-.8c.3-1.7 1-5.1 2.3-9.8l.2-.8 12.6 5.4c12.2 5.2 26.3-.4 31.5-12.6s-.4-26.3-12.6-31.5l-11.3-4.8c9.9-14.9 24.9-31.6 48.6-46l2.1 7.5c3.6 12.7 16.9 20.1 29.7 16.5s20.1-16.9 16.5-29.7L371 259.2c6.9-2.2 14.3-4.3 22.2-6.1c12.9-3 24.7-8 35.2-14.8L439 249c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-10.6-10.6c12.2-19 18.6-41.6 17.6-65.1l14.7-4.2c12.7-3.6 20.1-16.9 16.5-29.7s-16.9-20.1-29.7-16.5l-13.7 3.9c-10.8-21.2-28-38-48.5-48.5l3.9-13.8zM92.1 363.3s0 0 0 0L144 368l-51.9-4.7zM112 320a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM240 184a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nconst faHandPointer = {\n prefix: 'fas',\n iconName: 'hand-pointer',\n icon: [448, 512, [], \"f25a\", \"M128 40c0-22.1 17.9-40 40-40s40 17.9 40 40l0 148.2c8.5-7.6 19.7-12.2 32-12.2c20.6 0 38.2 13 45 31.2c8.8-9.3 21.2-15.2 35-15.2c25.3 0 46 19.5 47.9 44.3c8.5-7.7 19.8-12.3 32.1-12.3c26.5 0 48 21.5 48 48l0 48 0 16 0 48c0 70.7-57.3 128-128 128l-16 0-64 0-.1 0-5.2 0c-5 0-9.9-.3-14.7-1c-55.3-5.6-106.2-34-140-79L8 336c-13.3-17.7-9.7-42.7 8-56s42.7-9.7 56 8l56 74.7L128 40zM240 304c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96zm48-16c-8.8 0-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96c0-8.8-7.2-16-16-16zm80 16c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96z\"]\n};\nconst faDrumSteelpan = {\n prefix: 'fas',\n iconName: 'drum-steelpan',\n icon: [576, 512, [], \"f56a\", \"M288 32c159.1 0 288 48 288 128l0 192c0 80-128.9 128-288 128S0 432 0 352L0 160C0 80 128.9 32 288 32zM528 160c0-9.9-8-29.9-55-49.8c-18.6-7.9-40.9-14.4-66-19.4l-27.8 43.6c-7.3 11.5-11.2 24.8-11.2 38.4c0 17.5 6.4 34.4 18.1 47.5l9.8 11c29.8-5.2 55.9-12.5 77.2-21.5c47.1-19.9 55-39.9 55-49.8zM349.2 237.3c-8-26.2-32.4-45.3-61.2-45.3s-53.3 19.1-61.2 45.3c19.4 1.7 39.9 2.7 61.2 2.7s41.8-.9 61.2-2.7zM169 90.8c-25.2 5-47.4 11.6-66 19.4C56 130.1 48 150.1 48 160s8 29.9 55 49.8c21.3 9 47.4 16.3 77.2 21.5l9.8-11c11.6-13.1 18.1-30 18.1-47.5c0-13.6-3.9-26.9-11.2-38.4L169 90.8zm56.3-8C224.5 87 224 91.5 224 96c0 35.3 28.7 64 64 64s64-28.7 64-64c0-4.5-.5-9-1.4-13.2C330.8 81 309.8 80 288 80s-42.8 1-62.6 2.8z\"]\n};\nconst faHandScissors = {\n prefix: 'fas',\n iconName: 'hand-scissors',\n icon: [512, 512, [], \"f257\", \"M40 208c-22.1 0-40 17.9-40 40s17.9 40 40 40l180.2 0c-7.6 8.5-12.2 19.7-12.2 32c0 25.3 19.5 46 44.3 47.9c-7.7 8.5-12.3 19.8-12.3 32.1c0 26.5 21.5 48 48 48l32 0 64 0c70.7 0 128-57.3 128-128l0-113.1c0-40.2-16-78.8-44.4-107.3C444.8 76.8 413.9 64 381.7 64L336 64c-21.3 0-39.3 13.9-45.6 33.1l74.5 23.7c8.4 2.7 13.1 11.7 10.4 20.1s-11.7 13.1-20.1 10.4L288 129.9c0 0 0 .1 0 .1L84 65.8C62.9 59.2 40.5 70.9 33.8 92s5.1 43.5 26.2 50.2L269.5 208 40 208z\"]\n};\nconst faHandsPraying = {\n prefix: 'fas',\n iconName: 'hands-praying',\n icon: [640, 512, [\"praying-hands\"], \"f684\", \"M351.2 4.8c3.2-2 6.6-3.3 10-4.1c4.7-1 9.6-.9 14.1 .1c7.7 1.8 14.8 6.5 19.4 13.6L514.6 194.2c8.8 13.1 13.4 28.6 13.4 44.4l0 73.5c0 6.9 4.4 13 10.9 15.2l79.2 26.4C631.2 358 640 370.2 640 384l0 96c0 9.9-4.6 19.3-12.5 25.4s-18.1 8.1-27.7 5.5L431 465.9c-56-14.9-95-65.7-95-123.7L336 224c0-17.7 14.3-32 32-32s32 14.3 32 32l0 80c0 8.8 7.2 16 16 16s16-7.2 16-16l0-84.9c0-7-1.8-13.8-5.3-19.8L340.3 48.1c-1.7-3-2.9-6.1-3.6-9.3c-1-4.7-1-9.6 .1-14.1c1.9-8 6.8-15.2 14.3-19.9zm-62.4 0c7.5 4.6 12.4 11.9 14.3 19.9c1.1 4.6 1.2 9.4 .1 14.1c-.7 3.2-1.9 6.3-3.6 9.3L213.3 199.3c-3.5 6-5.3 12.9-5.3 19.8l0 84.9c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80c0-17.7 14.3-32 32-32s32 14.3 32 32l0 118.2c0 58-39 108.7-95 123.7l-168.7 45c-9.6 2.6-19.9 .5-27.7-5.5S0 490 0 480l0-96c0-13.8 8.8-26 21.9-30.4l79.2-26.4c6.5-2.2 10.9-8.3 10.9-15.2l0-73.5c0-15.8 4.7-31.2 13.4-44.4L245.2 14.5c4.6-7.1 11.7-11.8 19.4-13.6c4.6-1.1 9.4-1.2 14.1-.1c3.5 .8 6.9 2.1 10 4.1z\"]\n};\nconst faPrayingHands = faHandsPraying;\nconst faArrowRotateRight = {\n prefix: 'fas',\n iconName: 'arrow-rotate-right',\n icon: [512, 512, [8635, \"arrow-right-rotate\", \"arrow-rotate-forward\", \"redo\"], \"f01e\", \"M386.3 160L336 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 51.2L414.4 97.6c-87.5-87.5-229.3-87.5-316.8 0s-87.5 229.3 0 316.8s229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3s163.8-62.5 226.3 0L386.3 160z\"]\n};\nconst faArrowRightRotate = faArrowRotateRight;\nconst faArrowRotateForward = faArrowRotateRight;\nconst faRedo = faArrowRotateRight;\nconst faWebAwesome = {\n prefix: 'fas',\n iconName: 'web-awesome',\n icon: [640, 512, [], \"e682\", \"M372.2 52c0 20.9-12.4 39-30.2 47.2L448 192l104.4-20.9c-5.3-7.7-8.4-17.1-8.4-27.1c0-26.5 21.5-48 48-48s48 21.5 48 48c0 26-20.6 47.1-46.4 48L481 442.3c-10.3 23-33.2 37.7-58.4 37.7l-205.2 0c-25.2 0-48-14.8-58.4-37.7L46.4 192C20.6 191.1 0 170 0 144c0-26.5 21.5-48 48-48s48 21.5 48 48c0 10.1-3.1 19.4-8.4 27.1L192 192 298.1 99.1c-17.7-8.3-30-26.3-30-47.1c0-28.7 23.3-52 52-52s52 23.3 52 52z\"]\n};\nconst faBiohazard = {\n prefix: 'fas',\n iconName: 'biohazard',\n icon: [576, 512, [9763], \"f780\", \"M173.2 0c-1.8 0-3.5 .7-4.8 2C138.5 32.3 120 74 120 120c0 26.2 6 50.9 16.6 73c-22 2.4-43.8 9.1-64.2 20.5C37.9 232.8 13.3 262.4 .4 296c-.7 1.7-.5 3.7 .5 5.2c2.2 3.7 7.4 4.3 10.6 1.3C64.2 254.3 158 245.1 205 324s-8.1 153.1-77.6 173.2c-4.2 1.2-6.3 5.9-4.1 9.6c1 1.6 2.6 2.7 4.5 3c36.5 5.9 75.2 .1 109.7-19.2c20.4-11.4 37.4-26.5 50.5-43.8c13.1 17.3 30.1 32.4 50.5 43.8c34.5 19.3 73.3 25.2 109.7 19.2c1.9-.3 3.5-1.4 4.5-3c2.2-3.7 .1-8.4-4.1-9.6C379.1 477.1 324 403 371 324s140.7-69.8 193.5-21.4c3.2 2.9 8.4 2.3 10.6-1.3c1-1.6 1.1-3.5 .5-5.2c-12.9-33.6-37.5-63.2-72.1-82.5c-20.4-11.4-42.2-18.1-64.2-20.5C450 170.9 456 146.2 456 120c0-46-18.5-87.7-48.4-118c-1.3-1.3-3-2-4.8-2c-5 0-8.4 5.2-6.7 9.9C421.7 80.5 385.6 176 288 176S154.3 80.5 179.9 9.9c1.7-4.7-1.6-9.9-6.7-9.9zM240 272a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM181.7 417.6c6.3-11.8 9.8-25.1 8.6-39.8c-19.5-18-34-41.4-41.2-67.8c-12.5-8.1-26.2-11.8-40-12.4c-9-.4-18.1 .6-27.1 2.7c7.8 57.1 38.7 106.8 82.9 139.4c6.8-6.7 12.6-14.1 16.8-22.1zM288 64c-28.8 0-56.3 5.9-81.2 16.5c2 8.3 5 16.2 9 23.5c6.8 12.4 16.7 23.1 30.1 30.3c13.3-4.1 27.5-6.3 42.2-6.3s28.8 2.2 42.2 6.3c13.4-7.2 23.3-17.9 30.1-30.3c4-7.3 7-15.2 9-23.5C344.3 69.9 316.8 64 288 64zM426.9 310c-7.2 26.4-21.7 49.7-41.2 67.8c-1.2 14.7 2.2 28.1 8.6 39.8c4.3 8 10 15.4 16.8 22.1c44.3-32.6 75.2-82.3 82.9-139.4c-9-2.2-18.1-3.1-27.1-2.7c-13.8 .6-27.5 4.4-40 12.4z\"]\n};\nconst faLocationCrosshairs = {\n prefix: 'fas',\n iconName: 'location-crosshairs',\n icon: [512, 512, [\"location\"], \"f601\", \"M256 0c17.7 0 32 14.3 32 32l0 34.7C368.4 80.1 431.9 143.6 445.3 224l34.7 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-34.7 0C431.9 368.4 368.4 431.9 288 445.3l0 34.7c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-34.7C143.6 431.9 80.1 368.4 66.7 288L32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l34.7 0C80.1 143.6 143.6 80.1 224 66.7L224 32c0-17.7 14.3-32 32-32zM128 256a128 128 0 1 0 256 0 128 128 0 1 0 -256 0zm128-80a80 80 0 1 1 0 160 80 80 0 1 1 0-160z\"]\n};\nconst faLocation = faLocationCrosshairs;\nconst faMarsDouble = {\n prefix: 'fas',\n iconName: 'mars-double',\n icon: [640, 512, [9891], \"f227\", \"M312 32c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l33.4 33.4L275.8 159c-28.4-19.5-62.7-31-99.8-31C78.8 128 0 206.8 0 304s78.8 176 176 176s176-78.8 176-176c0-37-11.4-71.4-31-99.8l52.6-52.6L407 185c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2l0-112c0-13.3-10.7-24-24-24L312 32zm88 48s0 0 0 0s0 0 0 0s0 0 0 0zM64 304a112 112 0 1 1 224 0A112 112 0 1 1 64 304zM368 480c97.2 0 176-78.8 176-176c0-37-11.4-71.4-31-99.8l52.6-52.6L599 185c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2l0-112c0-13.3-10.7-24-24-24L504 32c-9.7 0-18.5 5.8-22.2 14.8c-1.2 2.9-1.8 6-1.8 9l0 .2 0 .2c0 6.2 2.5 12.2 7 16.8l33.4 33.4L480 146.7l0 21.3c0 22.6-13.6 43.1-34.6 51.7c-.8 .3-1.7 .7-2.5 1C465.7 241.2 480 270.9 480 304c0 61.9-50.1 112-112 112c-5.4 0-10.8-.4-16-1.1c-12.9 20.4-29.1 38.3-48.1 53.1c19.8 7.8 41.4 12 64 12z\"]\n};\nconst faChildDress = {\n prefix: 'fas',\n iconName: 'child-dress',\n icon: [320, 512, [], \"e59c\", \"M224 64A64 64 0 1 0 96 64a64 64 0 1 0 128 0zM88 400l0 80c0 17.7 14.3 32 32 32s32-14.3 32-32l0-80 16 0 0 80c0 17.7 14.3 32 32 32s32-14.3 32-32l0-80 17.8 0c10.9 0 18.6-10.7 15.2-21.1l-31.1-93.4 28.6 37.8c10.7 14.1 30.8 16.8 44.8 6.2s16.8-30.7 6.2-44.8L254.6 207c-22.4-29.6-57.5-47-94.6-47s-72.2 17.4-94.6 47L6.5 284.7c-10.7 14.1-7.9 34.2 6.2 44.8s34.2 7.9 44.8-6.2l28.7-37.8L55 378.9C51.6 389.3 59.3 400 70.2 400L88 400z\"]\n};\nconst faUsersBetweenLines = {\n prefix: 'fas',\n iconName: 'users-between-lines',\n icon: [640, 512, [], \"e591\", \"M0 24C0 10.7 10.7 0 24 0L616 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 48C10.7 48 0 37.3 0 24zM0 488c0-13.3 10.7-24 24-24l592 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 512c-13.3 0-24-10.7-24-24zM83.2 160a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM32 320c0-35.3 28.7-64 64-64l96 0c12.2 0 23.7 3.4 33.4 9.4c-37.2 15.1-65.6 47.2-75.8 86.6L64 352c-17.7 0-32-14.3-32-32zm461.6 32c-10.3-40.1-39.6-72.6-77.7-87.4c9.4-5.5 20.4-8.6 32.1-8.6l96 0c35.3 0 64 28.7 64 64c0 17.7-14.3 32-32 32l-82.4 0zM391.2 290.4c32.1 7.4 58.1 30.9 68.9 61.6c3.5 10 5.5 20.8 5.5 32c0 17.7-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32c0-11.2 1.9-22 5.5-32c10.5-29.7 35.3-52.8 66.1-60.9c7.8-2.1 16-3.1 24.5-3.1l96 0c7.4 0 14.7 .8 21.6 2.4zm44-130.4a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM321.6 96a80 80 0 1 1 0 160 80 80 0 1 1 0-160z\"]\n};\nconst faLungsVirus = {\n prefix: 'fas',\n iconName: 'lungs-virus',\n icon: [640, 512, [], \"e067\", \"M320 0c17.7 0 32 14.3 32 32l0 124.2c-8.5-7.6-19.7-12.2-32-12.2s-23.5 4.6-32 12.2L288 32c0-17.7 14.3-32 32-32zM444.5 195.5c-16.4-16.4-41.8-18.5-60.5-6.1l0-24.1C384 127 415 96 453.3 96c21.7 0 42.8 10.2 55.8 28.8c15.4 22.1 44.3 65.4 71 116.9c26.5 50.9 52.4 112.5 59.6 170.3c.2 1.3 .2 2.6 .2 4l0 7c0 49.1-39.8 89-89 89c-7.3 0-14.5-.9-21.6-2.7l-72.7-18.2c-20.9-5.2-38.7-17.1-51.5-32.9c14 1.5 28.5-3 39.2-13.8l-22.6-22.6 22.6 22.6c18.7-18.7 18.7-49.1 0-67.9c-1.1-1.1-1.4-2-1.5-2.5c-.1-.8-.1-1.8 .4-2.9s1.2-1.9 1.8-2.3c.5-.3 1.3-.8 2.9-.8c26.5 0 48-21.5 48-48s-21.5-48-48-48c-1.6 0-2.4-.4-2.9-.8c-.6-.4-1.3-1.2-1.8-2.3s-.5-2.2-.4-2.9c.1-.6 .4-1.4 1.5-2.5c18.7-18.7 18.7-49.1 0-67.9zM421.8 421.8c-6.2 6.2-16.4 6.2-22.6 0C375.9 398.5 336 415 336 448c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-33-39.9-49.5-63.2-26.2c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6C241.5 375.9 225 336 192 336c-8.8 0-16-7.2-16-16s7.2-16 16-16c33 0 49.5-39.9 26.2-63.2c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0C264.1 241.5 304 225 304 192c0-8.8 7.2-16 16-16s16 7.2 16 16c0 33 39.9 49.5 63.2 26.2c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6C398.5 264.1 415 304 448 304c8.8 0 16 7.2 16 16s-7.2 16-16 16c-33 0-49.5 39.9-26.2 63.2c6.2 6.2 6.2 16.4 0 22.6zM183.3 491.2l-72.7 18.2c-7.1 1.8-14.3 2.7-21.6 2.7c-49.1 0-89-39.8-89-89l0-7c0-1.3 .1-2.7 .2-4c7.2-57.9 33.1-119.4 59.6-170.3c26.8-51.5 55.6-94.8 71-116.9c13-18.6 34-28.8 55.8-28.8C225 96 256 127 256 165.3l0 24.1c-18.6-12.4-44-10.3-60.5 6.1c-18.7 18.7-18.7 49.1 0 67.9c1.1 1.1 1.4 2 1.5 2.5c.1 .8 .1 1.8-.4 2.9s-1.2 1.9-1.8 2.3c-.5 .3-1.3 .8-2.9 .8c-26.5 0-48 21.5-48 48s21.5 48 48 48c1.6 0 2.4 .4 2.9 .8c.6 .4 1.3 1.2 1.8 2.3s.5 2.2 .4 2.9c-.1 .6-.4 1.4-1.5 2.5c-18.7 18.7-18.7 49.1 0 67.9c10.7 10.7 25.3 15.3 39.2 13.8c-12.8 15.9-30.6 27.7-51.5 32.9zM296 320a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm72 32a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z\"]\n};\nconst faFaceGrinTears = {\n prefix: 'fas',\n iconName: 'face-grin-tears',\n icon: [640, 512, [128514, \"grin-tears\"], \"f588\", \"M548.6 371.4C506.4 454.8 419.9 512 320 512s-186.4-57.2-228.6-140.6c4.5-2.9 8.7-6.3 12.7-10.3c8.1-8.1 13.2-18.6 16.5-26.6c3.6-8.8 6.5-18.4 8.8-27.5c4.6-18.2 7.7-37 9.3-48.2c3.9-26.5-18.8-49.2-45.2-45.4c-6.8 .9-16.2 2.4-26.6 4.4C85.3 94.5 191.6 0 320 0S554.7 94.5 573.2 217.7c-10.3-2-19.8-3.5-26.6-4.4c-26.5-3.9-49.2 18.8-45.2 45.4c1.6 11.3 4.6 30 9.3 48.2c2.3 9.1 5.2 18.8 8.8 27.5c3.3 8.1 8.4 18.5 16.5 26.6c3.9 3.9 8.2 7.4 12.7 10.3zM107 254.1c-3.1 21.5-11.4 70.2-25.5 84.4c-.9 1-1.9 1.8-2.9 2.7C60 356.7 32 355.5 14.3 337.7c-18.7-18.7-19.1-48.8-.7-67.2c8.6-8.6 30.1-15.1 50.5-19.6c13-2.8 25.5-4.8 33.9-6c5.4-.8 9.9 3.7 9 9zm454.5 87.1c-.8-.6-1.5-1.3-2.3-2c-.2-.2-.5-.4-.7-.7c-14.1-14.1-22.5-62.9-25.5-84.4c-.8-5.4 3.7-9.9 9-9c1 .1 2.2 .3 3.3 .5c8.2 1.2 19.2 3 30.6 5.5c20.4 4.4 41.9 10.9 50.5 19.6c18.4 18.4 18 48.5-.7 67.2c-17.7 17.7-45.7 19-64.2 3.4zm-90.1-9.7c5-11.8-7-22.5-19.3-18.7c-39.7 12.2-84.5 19-131.8 19s-92.1-6.8-131.8-19c-12.3-3.8-24.3 6.9-19.3 18.7c25 59.1 83.2 100.5 151.1 100.5s126.2-41.4 151.1-100.5zM281.6 228.8s0 0 0 0s0 0 0 0s0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C190.7 188.4 184 206.1 184 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8c0 0 0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2c0 0 0 0 0 0zm160 0s0 0 0 0s0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C350.7 188.4 344 206.1 344 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8c0 0 0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2c0 0 0 0 0 0c0 0 0 0 0 0z\"]\n};\nconst faGrinTears = faFaceGrinTears;\nconst faPhone = {\n prefix: 'fas',\n iconName: 'phone',\n icon: [512, 512, [128222, 128379], \"f095\", \"M164.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C12.1 30.2 0 46 0 64C0 311.4 200.6 512 448 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L304.7 368C234.3 334.7 177.3 277.7 144 207.3L193.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96z\"]\n};\nconst faCalendarXmark = {\n prefix: 'fas',\n iconName: 'calendar-xmark',\n icon: [448, 512, [\"calendar-times\"], \"f273\", \"M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 48 0c26.5 0 48 21.5 48 48l0 48L0 160l0-48C0 85.5 21.5 64 48 64l48 0 0-32c0-17.7 14.3-32 32-32zM0 192l448 0 0 272c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 192zM305 305c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-47 47-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l47 47-47 47c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l47-47 47 47c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-47-47 47-47z\"]\n};\nconst faCalendarTimes = faCalendarXmark;\nconst faChildReaching = {\n prefix: 'fas',\n iconName: 'child-reaching',\n icon: [384, 512, [], \"e59d\", \"M256 64A64 64 0 1 0 128 64a64 64 0 1 0 128 0zM152.9 169.3c-23.7-8.4-44.5-24.3-58.8-45.8L74.6 94.2C64.8 79.5 45 75.6 30.2 85.4s-18.7 29.7-8.9 44.4L40.9 159c18.1 27.1 42.8 48.4 71.1 62.4L112 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 32 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-258.4c29.1-14.2 54.4-36.2 72.7-64.2l18.2-27.9c9.6-14.8 5.4-34.6-9.4-44.3s-34.6-5.5-44.3 9.4L291 122.4c-21.8 33.4-58.9 53.6-98.8 53.6c-12.6 0-24.9-2-36.6-5.8c-.9-.3-1.8-.7-2.7-.9z\"]\n};\nconst faHeadSideVirus = {\n prefix: 'fas',\n iconName: 'head-side-virus',\n icon: [512, 512, [], \"e064\", \"M0 224.2C0 100.6 100.2 0 224 0l24 0c95.2 0 181.2 69.3 197.3 160.2c2.3 13 6.8 25.7 15.1 36l42 52.6c6.2 7.8 9.6 17.4 9.6 27.4c0 24.2-19.6 43.8-43.8 43.8L448 320l0 64c0 35.3-28.7 64-64 64l-64 0 0 32c0 17.7-14.3 32-32 32L96 512c-17.7 0-32-14.3-32-32l0-72.7c0-16.7-6.9-32.5-17.1-45.8C16.6 322.4 0 274.1 0 224.2zM224 64c-8.8 0-16 7.2-16 16c0 33-39.9 49.5-63.2 26.2c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6C145.5 152.1 129 192 96 192c-8.8 0-16 7.2-16 16s7.2 16 16 16c33 0 49.5 39.9 26.2 63.2c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0C168.1 286.5 208 303 208 336c0 8.8 7.2 16 16 16s16-7.2 16-16c0-33 39.9-49.5 63.2-26.2c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6C302.5 263.9 319 224 352 224c8.8 0 16-7.2 16-16s-7.2-16-16-16c-33 0-49.5-39.9-26.2-63.2c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0C279.9 129.5 240 113 240 80c0-8.8-7.2-16-16-16zm-24 96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm40 80a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z\"]\n};\nconst faUserGear = {\n prefix: 'fas',\n iconName: 'user-gear',\n icon: [640, 512, [\"user-cog\"], \"f4fe\", \"M224 0a128 128 0 1 1 0 256A128 128 0 1 1 224 0zM178.3 304l91.4 0c11.8 0 23.4 1.2 34.5 3.3c-2.1 18.5 7.4 35.6 21.8 44.8c-16.6 10.6-26.7 31.6-20 53.3c4 12.9 9.4 25.5 16.4 37.6s15.2 23.1 24.4 33c15.7 16.9 39.6 18.4 57.2 8.7l0 .9c0 9.2 2.7 18.5 7.9 26.3L29.7 512C13.3 512 0 498.7 0 482.3C0 383.8 79.8 304 178.3 304zM436 218.2c0-7 4.5-13.3 11.3-14.8c10.5-2.4 21.5-3.7 32.7-3.7s22.2 1.3 32.7 3.7c6.8 1.5 11.3 7.8 11.3 14.8l0 30.6c7.9 3.4 15.4 7.7 22.3 12.8l24.9-14.3c6.1-3.5 13.7-2.7 18.5 2.4c7.6 8.1 14.3 17.2 20.1 27.2s10.3 20.4 13.5 31c2.1 6.7-1.1 13.7-7.2 17.2l-25 14.4c.4 4 .7 8.1 .7 12.3s-.2 8.2-.7 12.3l25 14.4c6.1 3.5 9.2 10.5 7.2 17.2c-3.3 10.6-7.8 21-13.5 31s-12.5 19.1-20.1 27.2c-4.8 5.1-12.5 5.9-18.5 2.4l-24.9-14.3c-6.9 5.1-14.3 9.4-22.3 12.8l0 30.6c0 7-4.5 13.3-11.3 14.8c-10.5 2.4-21.5 3.7-32.7 3.7s-22.2-1.3-32.7-3.7c-6.8-1.5-11.3-7.8-11.3-14.8l0-30.5c-8-3.4-15.6-7.7-22.5-12.9l-24.7 14.3c-6.1 3.5-13.7 2.7-18.5-2.4c-7.6-8.1-14.3-17.2-20.1-27.2s-10.3-20.4-13.5-31c-2.1-6.7 1.1-13.7 7.2-17.2l24.8-14.3c-.4-4.1-.7-8.2-.7-12.4s.2-8.3 .7-12.4L343.8 325c-6.1-3.5-9.2-10.5-7.2-17.2c3.3-10.6 7.7-21 13.5-31s12.5-19.1 20.1-27.2c4.8-5.1 12.4-5.9 18.5-2.4l24.8 14.3c6.9-5.1 14.5-9.4 22.5-12.9l0-30.5zm92.1 133.5a48.1 48.1 0 1 0 -96.1 0 48.1 48.1 0 1 0 96.1 0z\"]\n};\nconst faUserCog = faUserGear;\nconst faArrowUp19 = {\n prefix: 'fas',\n iconName: 'arrow-up-1-9',\n icon: [576, 512, [\"sort-numeric-up\"], \"f163\", \"M450.7 38c8.3 6 13.3 15.7 13.3 26l0 96 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-48 0-48 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-51.6-5.9 2c-16.8 5.6-34.9-3.5-40.5-20.2s3.5-34.9 20.2-40.5l48-16c9.8-3.3 20.5-1.6 28.8 4.4zM160 32c9 0 17.5 3.8 23.6 10.4l88 96c11.9 13 11.1 33.3-2 45.2s-33.3 11.1-45.2-2L192 146.3 192 448c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-301.7L95.6 181.6c-11.9 13-32.2 13.9-45.2 2s-13.9-32.2-2-45.2l88-96C142.5 35.8 151 32 160 32zM445.7 364.9A32 32 0 1 0 418.3 307a32 32 0 1 0 27.4 57.9zm-40.7 54.9C369.6 408.4 344 375.2 344 336c0-48.6 39.4-88 88-88s88 39.4 88 88c0 23.5-7.5 46.3-21.5 65.2L449.7 467c-10.5 14.2-30.6 17.2-44.8 6.7s-17.2-30.6-6.7-44.8l6.8-9.2z\"]\n};\nconst faSortNumericUp = faArrowUp19;\nconst faDoorClosed = {\n prefix: 'fas',\n iconName: 'door-closed',\n icon: [576, 512, [128682], \"f52a\", \"M96 64c0-35.3 28.7-64 64-64L416 0c35.3 0 64 28.7 64 64l0 384 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-112 0-288 0L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0L96 64zM384 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nconst faShieldVirus = {\n prefix: 'fas',\n iconName: 'shield-virus',\n icon: [512, 512, [], \"e06c\", \"M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2c.5 99.2 41.3 280.7 213.6 363.2c16.7 8 36.1 8 52.8 0C454.7 420.7 495.5 239.2 496 140c.1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM256 112c8.8 0 16 7.2 16 16c0 33 39.9 49.5 63.2 26.2c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6C334.5 200.1 351 240 384 240c8.8 0 16 7.2 16 16s-7.2 16-16 16c-33 0-49.5 39.9-26.2 63.2c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0C311.9 334.5 272 351 272 384c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-33-39.9-49.5-63.2-26.2c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6C177.5 311.9 161 272 128 272c-8.8 0-16-7.2-16-16s7.2-16 16-16c33 0 49.5-39.9 26.2-63.2c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0C200.1 177.5 240 161 240 128c0-8.8 7.2-16 16-16zM232 256a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm72 32a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z\"]\n};\nconst faDiceSix = {\n prefix: 'fas',\n iconName: 'dice-six',\n icon: [448, 512, [9861], \"f526\", \"M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm160 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM128 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm32 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM320 192a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm32 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM320 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nconst faMosquitoNet = {\n prefix: 'fas',\n iconName: 'mosquito-net',\n icon: [640, 512, [], \"e52c\", \"M168.8 462.3c-7.9-4-11.1-13.6-7.2-21.5L192 380.2l0-44.2c0-4.2 1.7-8.3 4.7-11.3L256 265.4l0-23.1L139.2 344C87.8 395.3 0 358.9 0 286.3c0-41.1 30.6-75.8 71.4-80.9l159.9-23.9-49.6-41.3c-5.1-4.2-7-11.1-4.9-17.4l13.9-41.7-29-58.1c-4-7.9-.7-17.5 7.2-21.5s17.5-.7 21.5 7.2l32 64c1.9 3.8 2.2 8.2 .9 12.2l-12.5 37.6L256 160.5l0-22.6c0-14.9 10.1-27.3 23.8-31l0-43.3c0-4.5 3.7-8.2 8.2-8.2s8.2 3.7 8.2 8.2l0 43.3c13.7 3.6 23.8 16.1 23.8 31l0 22.6 45.4-37.8L352.8 85.1c-1.3-4-1-8.4 .9-12.2l32-64c4-7.9 13.6-11.1 21.5-7.2s11.1 13.6 7.2 21.5l-29 58.1 13.9 41.7c2.1 6.2 .1 13.1-4.9 17.4l-49.6 41.3 159.9 23.9c22.5 2.8 41.8 14.6 54.7 31.4c-2.7 2.6-5.2 5.4-7.3 8.6c-8.6-12.9-23.3-21.5-40-21.5s-31.4 8.5-40 21.5c-8.6-12.9-23.3-21.5-40-21.5c-21.7 0-40 14.3-45.9 34.1c-10.7 3.2-19.8 10.1-25.9 19.2l-40.2-35 0 23.1 32.4 32.4c-.3 2-.4 4.1-.4 6.2c0 16.7 8.5 31.4 21.5 40c-4 2.6-7.5 5.9-10.6 9.5L320 310.6l0 50c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-50-32 32 0 41.4c0 2.5-.6 4.9-1.7 7.2l-32 64c-4 7.9-13.6 11.1-21.5 7.2zM512 256c8.8 0 16 7.2 16 16l0 16 48 0 0-16c0-8.8 7.2-16 16-16s16 7.2 16 16l0 16 16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-16 0 0 48 16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-16 0 0 48 16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-16 0 0 16c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-16-48 0 0 16c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-16-48 0 0 16c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-16-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0 0-48-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0 0-48-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0 0-16c0-8.8 7.2-16 16-16s16 7.2 16 16l0 16 48 0 0-16c0-8.8 7.2-16 16-16zm16 112l48 0 0-48-48 0 0 48zm0 80l48 0 0-48-48 0 0 48zM448 320l0 48 48 0 0-48-48 0zm0 80l0 48 48 0 0-48-48 0z\"]\n};\nconst faBridgeWater = {\n prefix: 'fas',\n iconName: 'bridge-water',\n icon: [576, 512, [], \"e4ce\", \"M0 96C0 78.3 14.3 64 32 64l512 0c17.7 0 32 14.3 32 32l0 35.6c0 15.7-12.7 28.4-28.4 28.4c-37.3 0-67.6 30.2-67.6 67.6l0 124.9c-12.9 0-25.8 3.9-36.8 11.7c-18 12.4-40.1 20.3-59.2 20.3c0 0 0 0 0 0l0-.5 0-128c0-53-43-96-96-96s-96 43-96 96l0 128 0 .5c-19 0-41.2-7.9-59.1-20.3c-11.1-7.8-24-11.7-36.9-11.7l0-124.9C96 190.2 65.8 160 28.4 160C12.7 160 0 147.3 0 131.6L0 96zM306.5 389.9C329 405.4 356.5 416 384 416c26.9 0 55.4-10.8 77.4-26.1c0 0 0 0 0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 469.7 417 480 384 480c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7c0 0 0 0 0 0C136.7 405.2 165.1 416 192 416c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"]\n};\nconst faPersonBooth = {\n prefix: 'fas',\n iconName: 'person-booth',\n icon: [576, 512, [], \"f756\", \"M256 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 160 64 0 0-160zm320 0c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-448zM224 512c17.7 0 32-14.3 32-32l0-160-64 0 0 160c0 17.7 14.3 32 32 32zM320 0c-9.3 0-18.1 4-24.2 11s-8.8 16.3-7.5 25.5l31.2 218.6L288.6 409.7c-3.5 17.3 7.8 34.2 25.1 37.7s34.2-7.8 37.7-25.1l.7-3.6c1.3 16.4 15.1 29.4 31.9 29.4c17.7 0 32-14.3 32-32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384c0-17.7-14.3-32-32-32L320 0zM112 80A48 48 0 1 0 16 80a48 48 0 1 0 96 0zm0 261.3l0-72.1 4.7 4.7c9 9 21.2 14.1 33.9 14.1l73.4 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-66.7 0-41.6-41.6c-14.3-14.3-33.8-22.4-54-22.4C27.6 160 0 187.6 0 221.6l0 55.7 0 .9L0 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 32 42.7L96 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-58.7c0-10.4-3.4-20.5-9.6-28.8L112 341.3z\"]\n};\nconst faTextWidth = {\n prefix: 'fas',\n iconName: 'text-width',\n icon: [448, 512, [], \"f035\", \"M64 128l0-32 128 0 0 128-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-16 0 0-128 128 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-48c0-26.5-21.5-48-48-48L224 32 48 32C21.5 32 0 53.5 0 80l0 48c0 17.7 14.3 32 32 32s32-14.3 32-32zM9.4 361.4c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6l0-32 192 0 0 32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9s-19.8 16.6-19.8 29.6l0 32-192 0 0-32c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64z\"]\n};\nconst faHatWizard = {\n prefix: 'fas',\n iconName: 'hat-wizard',\n icon: [512, 512, [], \"f6e8\", \"M64 416L168.6 180.7c15.3-34.4 40.3-63.5 72-83.7l146.9-94c3-1.9 6.5-2.9 10-2.9C407.7 0 416 8.3 416 18.6l0 1.6c0 2.6-.5 5.1-1.4 7.5L354.8 176.9c-1.9 4.7-2.8 9.7-2.8 14.7c0 5.5 1.2 11 3.4 16.1L448 416l-207.1 0 11.8-35.4 40.4-13.5c6.5-2.2 10.9-8.3 10.9-15.2s-4.4-13-10.9-15.2l-40.4-13.5-13.5-40.4C237 276.4 230.9 272 224 272s-13 4.4-15.2 10.9l-13.5 40.4-40.4 13.5C148.4 339 144 345.1 144 352s4.4 13 10.9 15.2l40.4 13.5L207.1 416 64 416zM279.6 141.5c-1.1-3.3-4.1-5.5-7.6-5.5s-6.5 2.2-7.6 5.5l-6.7 20.2-20.2 6.7c-3.3 1.1-5.5 4.1-5.5 7.6s2.2 6.5 5.5 7.6l20.2 6.7 6.7 20.2c1.1 3.3 4.1 5.5 7.6 5.5s6.5-2.2 7.6-5.5l6.7-20.2 20.2-6.7c3.3-1.1 5.5-4.1 5.5-7.6s-2.2-6.5-5.5-7.6l-20.2-6.7-6.7-20.2zM32 448l448 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nconst faPenFancy = {\n prefix: 'fas',\n iconName: 'pen-fancy',\n icon: [512, 512, [128395, 10002], \"f5ac\", \"M373.5 27.1C388.5 9.9 410.2 0 433 0c43.6 0 79 35.4 79 79c0 22.8-9.9 44.6-27.1 59.6L277.7 319l-10.3-10.3-64-64L193 234.3 373.5 27.1zM170.3 256.9l10.4 10.4 64 64 10.4 10.4-19.2 83.4c-3.9 17.1-16.9 30.7-33.8 35.4L24.3 510.3l95.4-95.4c2.6 .7 5.4 1.1 8.3 1.1c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32c0 2.9 .4 5.6 1.1 8.3L1.7 487.6 51.5 310c4.7-16.9 18.3-29.9 35.4-33.8l83.4-19.2z\"]\n};\nconst faPersonDigging = {\n prefix: 'fas',\n iconName: 'person-digging',\n icon: [576, 512, [\"digging\"], \"f85e\", \"M208 64a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM9.8 214.8c5.1-12.2 19.1-18 31.4-12.9L60.7 210l22.9-38.1C99.9 144.6 129.3 128 161 128c51.4 0 97 32.9 113.3 81.7l34.6 103.7 79.3 33.1 34.2-45.6c6.4-8.5 16.6-13.3 27.2-12.8s20.3 6.4 25.8 15.5l96 160c5.9 9.9 6.1 22.2 .4 32.2s-16.3 16.2-27.8 16.2l-256 0c-11.1 0-21.4-5.7-27.2-15.2s-6.4-21.2-1.4-31.1l16-32c5.4-10.8 16.5-17.7 28.6-17.7l32 0 22.5-30L22.8 246.2c-12.2-5.1-18-19.1-12.9-31.4zm82.8 91.8l112 48c11.8 5 19.4 16.6 19.4 29.4l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-74.9-60.6-26-37 111c-5.6 16.8-23.7 25.8-40.5 20.2S-3.9 486.6 1.6 469.9l48-144 11-33 32 13.7z\"]\n};\nconst faDigging = faPersonDigging;\nconst faTrash = {\n prefix: 'fas',\n iconName: 'trash',\n icon: [448, 512, [], \"f1f8\", \"M135.2 17.7L128 32 32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0-7.2-14.3C307.4 6.8 296.3 0 284.2 0L163.8 0c-12.1 0-23.2 6.8-28.6 17.7zM416 128L32 128 53.2 467c1.6 25.3 22.6 45 47.9 45l245.8 0c25.3 0 46.3-19.7 47.9-45L416 128z\"]\n};\nconst faGaugeSimple = {\n prefix: 'fas',\n iconName: 'gauge-simple',\n icon: [512, 512, [\"gauge-simple-med\", \"tachometer-average\"], \"f629\", \"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm320 96c0-26.9-16.5-49.9-40-59.3L280 88c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 204.7c-23.5 9.5-40 32.5-40 59.3c0 35.3 28.7 64 64 64s64-28.7 64-64z\"]\n};\nconst faGaugeSimpleMed = faGaugeSimple;\nconst faTachometerAverage = faGaugeSimple;\nconst faBookMedical = {\n prefix: 'fas',\n iconName: 'book-medical',\n icon: [448, 512, [], \"f7e6\", \"M0 96C0 43 43 0 96 0L384 0l32 0c17.7 0 32 14.3 32 32l0 320c0 17.7-14.3 32-32 32l0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0L96 512c-53 0-96-43-96-96L0 96zM64 416c0 17.7 14.3 32 32 32l256 0 0-64L96 384c-17.7 0-32 14.3-32 32zM208 112l0 48-48 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-48 0 0-48c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z\"]\n};\nconst faPoo = {\n prefix: 'fas',\n iconName: 'poo',\n icon: [512, 512, [128169], \"f2fe\", \"M268.9 .9c-5.5-.7-11 1.4-14.5 5.7s-4.6 10.1-2.8 15.4c2.8 8.2 4.3 16.9 4.3 26.1c0 44.1-35.7 79.9-79.8 80L160 128c-35.3 0-64 28.7-64 64c0 19.1 8.4 36.3 21.7 48L104 240c-39.8 0-72 32.2-72 72c0 23.2 11 43.8 28 57c-34.1 5.7-60 35.3-60 71c0 39.8 32.2 72 72 72l368 0c39.8 0 72-32.2 72-72c0-35.7-25.9-65.3-60-71c17-13.2 28-33.8 28-57c0-39.8-32.2-72-72-72l-13.7 0c13.3-11.7 21.7-28.9 21.7-48c0-35.3-28.7-64-64-64l-5.5 0c3.5-10 5.5-20.8 5.5-32c0-48.6-36.2-88.8-83.1-95.1zM192 256a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm96 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm64 108.3c0 2.4-.7 4.8-2.2 6.7c-8.2 10.5-39.5 45-93.8 45s-85.6-34.6-93.8-45c-1.5-1.9-2.2-4.3-2.2-6.7c0-6.8 5.5-12.3 12.3-12.3l167.4 0c6.8 0 12.3 5.5 12.3 12.3z\"]\n};\nconst faQuoteRight = {\n prefix: 'fas',\n iconName: 'quote-right',\n icon: [448, 512, [8221, \"quote-right-alt\"], \"f10e\", \"M448 296c0 66.3-53.7 120-120 120l-8 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l8 0c30.9 0 56-25.1 56-56l0-8-64 0c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l64 0c35.3 0 64 28.7 64 64l0 32 0 32 0 72zm-256 0c0 66.3-53.7 120-120 120l-8 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l8 0c30.9 0 56-25.1 56-56l0-8-64 0c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l64 0c35.3 0 64 28.7 64 64l0 32 0 32 0 72z\"]\n};\nconst faQuoteRightAlt = faQuoteRight;\nconst faShirt = {\n prefix: 'fas',\n iconName: 'shirt',\n icon: [640, 512, [128085, \"t-shirt\", \"tshirt\"], \"f553\", \"M211.8 0c7.8 0 14.3 5.7 16.7 13.2C240.8 51.9 277.1 80 320 80s79.2-28.1 91.5-66.8C413.9 5.7 420.4 0 428.2 0l12.6 0c22.5 0 44.2 7.9 61.5 22.3L628.5 127.4c6.6 5.5 10.7 13.5 11.4 22.1s-2.1 17.1-7.8 23.6l-56 64c-11.4 13.1-31.2 14.6-44.6 3.5L480 197.7 480 448c0 35.3-28.7 64-64 64l-192 0c-35.3 0-64-28.7-64-64l0-250.3-51.5 42.9c-13.3 11.1-33.1 9.6-44.6-3.5l-56-64c-5.7-6.5-8.5-15-7.8-23.6s4.8-16.6 11.4-22.1L137.7 22.3C155 7.9 176.7 0 199.2 0l12.6 0z\"]\n};\nconst faTShirt = faShirt;\nconst faTshirt = faShirt;\nconst faCubes = {\n prefix: 'fas',\n iconName: 'cubes',\n icon: [576, 512, [], \"f1b3\", \"M290.8 48.6l78.4 29.7L288 109.5 206.8 78.3l78.4-29.7c1.8-.7 3.8-.7 5.7 0zM136 92.5l0 112.2c-1.3 .4-2.6 .8-3.9 1.3l-96 36.4C14.4 250.6 0 271.5 0 294.7L0 413.9c0 22.2 13.1 42.3 33.5 51.3l96 42.2c14.4 6.3 30.7 6.3 45.1 0L288 457.5l113.5 49.9c14.4 6.3 30.7 6.3 45.1 0l96-42.2c20.3-8.9 33.5-29.1 33.5-51.3l0-119.1c0-23.3-14.4-44.1-36.1-52.4l-96-36.4c-1.3-.5-2.6-.9-3.9-1.3l0-112.2c0-23.3-14.4-44.1-36.1-52.4l-96-36.4c-12.8-4.8-26.9-4.8-39.7 0l-96 36.4C150.4 48.4 136 69.3 136 92.5zM392 210.6l-82.4 31.2 0-89.2L392 121l0 89.6zM154.8 250.9l78.4 29.7L152 311.7 70.8 280.6l78.4-29.7c1.8-.7 3.8-.7 5.7 0zm18.8 204.4l0-100.5L256 323.2l0 95.9-82.4 36.2zM421.2 250.9c1.8-.7 3.8-.7 5.7 0l78.4 29.7L424 311.7l-81.2-31.1 78.4-29.7zM523.2 421.2l-77.6 34.1 0-100.5L528 323.2l0 90.7c0 3.2-1.9 6-4.8 7.3z\"]\n};\nconst faDivide = {\n prefix: 'fas',\n iconName: 'divide',\n icon: [448, 512, [10135, 247], \"f529\", \"M272 96a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm0 320a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM400 288c17.7 0 32-14.3 32-32s-14.3-32-32-32L48 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l352 0z\"]\n};\nconst faTengeSign = {\n prefix: 'fas',\n iconName: 'tenge-sign',\n icon: [384, 512, [8376, \"tenge\"], \"f7d7\", \"M0 64C0 46.3 14.3 32 32 32l320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64zM0 192c0-17.7 14.3-32 32-32l160 0 160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-128 0 0 224c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-224L32 224c-17.7 0-32-14.3-32-32z\"]\n};\nconst faTenge = faTengeSign;\nconst faHeadphones = {\n prefix: 'fas',\n iconName: 'headphones',\n icon: [512, 512, [127911], \"f025\", \"M256 80C149.9 80 62.4 159.4 49.6 262c9.4-3.8 19.6-6 30.4-6c26.5 0 48 21.5 48 48l0 128c0 26.5-21.5 48-48 48c-44.2 0-80-35.8-80-80l0-16 0-48 0-48C0 146.6 114.6 32 256 32s256 114.6 256 256l0 48 0 48 0 16c0 44.2-35.8 80-80 80c-26.5 0-48-21.5-48-48l0-128c0-26.5 21.5-48 48-48c10.8 0 21 2.1 30.4 6C449.6 159.4 362.1 80 256 80z\"]\n};\nconst faHandsHolding = {\n prefix: 'fas',\n iconName: 'hands-holding',\n icon: [640, 512, [], \"f4c2\", \"M80 104c0-22.1-17.9-40-40-40S0 81.9 0 104l0 56 0 64L0 325.5c0 25.5 10.1 49.9 28.1 67.9L128 493.3c12 12 28.3 18.7 45.3 18.7l66.7 0c26.5 0 48-21.5 48-48l0-78.9c0-29.7-11.8-58.2-32.8-79.2l-25.3-25.3c0 0 0 0 0 0l-15.2-15.2-32-32c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l32 32 15.2 15.2c11 11 9.2 29.2-3.7 37.8c-9.7 6.5-22.7 5.2-31-3.1L98.7 309.5c-12-12-18.7-28.3-18.7-45.3L80 224l0-80 0-40zm480 0l0 40 0 80 0 40.2c0 17-6.7 33.3-18.7 45.3l-51.1 51.1c-8.3 8.3-21.3 9.6-31 3.1c-12.9-8.6-14.7-26.9-3.7-37.8l15.2-15.2 32-32c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-32 32-15.2 15.2c0 0 0 0 0 0l-25.3 25.3c-21 21-32.8 49.5-32.8 79.2l0 78.9c0 26.5 21.5 48 48 48l66.7 0c17 0 33.3-6.7 45.3-18.7l99.9-99.9c18-18 28.1-42.4 28.1-67.9L640 224l0-64 0-56c0-22.1-17.9-40-40-40s-40 17.9-40 40z\"]\n};\nconst faHandsClapping = {\n prefix: 'fas',\n iconName: 'hands-clapping',\n icon: [512, 512, [], \"e1a8\", \"M336 16l0 64c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16zm-98.7 7.1l32 48c4.9 7.4 2.9 17.3-4.4 22.2s-17.3 2.9-22.2-4.4l-32-48c-4.9-7.4-2.9-17.3 4.4-22.2s17.3-2.9 22.2 4.4zM135 119c9.4-9.4 24.6-9.4 33.9 0L292.7 242.7c10.1 10.1 27.3 2.9 27.3-11.3l0-39.4c0-17.7 14.3-32 32-32s32 14.3 32 32l0 153.6c0 57.1-30 110-78.9 139.4c-64 38.4-145.8 28.3-198.5-24.4L7 361c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l53 53c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1L23 265c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l93 93c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1L55 185c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l117 117c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1l-93-93c-9.4-9.4-9.4-24.6 0-33.9zM433.1 484.9c-24.2 14.5-50.9 22.1-77.7 23.1c48.1-39.6 76.6-99 76.6-162.4l0-98.1c8.2-.1 16-6.4 16-16l0-39.4c0-17.7 14.3-32 32-32s32 14.3 32 32l0 153.6c0 57.1-30 110-78.9 139.4zM424.9 18.7c7.4 4.9 9.3 14.8 4.4 22.2l-32 48c-4.9 7.4-14.8 9.3-22.2 4.4s-9.3-14.8-4.4-22.2l32-48c4.9-7.4 14.8-9.3 22.2-4.4z\"]\n};\nconst faRepublican = {\n prefix: 'fas',\n iconName: 'republican',\n icon: [640, 512, [], \"f75e\", \"M0 192C0 103.6 71.6 32 160 32l224 0c88.4 0 160 71.6 160 160l0 64L0 256l0-64zm415.9-64c-2.4 0-4.7 1.3-5.7 3.4l-12.6 24.6-28.2 4c-2.4 .3-4.4 2-5.2 4.2s-.1 4.7 1.6 6.3l20.4 19.2-4.8 27.1c-.4 2.3 .6 4.7 2.5 6s4.6 1.6 6.7 .5l25.2-12.8 25.2 12.8c2.2 1.1 4.8 .9 6.7-.5s3-3.7 2.5-6l-4.8-27.1L466 170.5c1.7-1.6 2.4-4.1 1.6-6.3s-2.8-3.9-5.2-4.2l-28.2-4-12.6-24.6c-1.1-2.1-3.3-3.4-5.7-3.4zm-138.3 3.4c-1.1-2.1-3.3-3.4-5.7-3.4s-4.7 1.3-5.7 3.4l-12.6 24.6-28.2 4c-2.4 .3-4.4 2-5.2 4.2s-.1 4.7 1.6 6.3l20.4 19.2-4.8 27.1c-.4 2.3 .6 4.7 2.5 6s4.6 1.6 6.7 .5l25.2-12.8 25.2 12.8c2.2 1.1 4.8 .9 6.7-.5s3-3.7 2.5-6l-4.8-27.1L322 170.5c1.7-1.6 2.4-4.1 1.6-6.3s-2.8-3.9-5.2-4.2l-28.2-4-12.6-24.6zM127.9 128c-2.4 0-4.7 1.3-5.7 3.4l-12.6 24.6-28.2 4c-2.4 .3-4.4 2-5.2 4.2s-.1 4.7 1.6 6.3l20.4 19.2-4.8 27.1c-.4 2.3 .6 4.7 2.5 6s4.6 1.6 6.7 .5l25.2-12.8 25.2 12.8c2.2 1.1 4.8 .9 6.7-.5s3-3.7 2.5-6l-4.8-27.1L178 170.5c1.7-1.6 2.4-4.1 1.6-6.3s-2.8-3.9-5.2-4.2l-28.2-4-12.6-24.6c-1.1-2.1-3.3-3.4-5.7-3.4zm.1 160l192 0 96 0 32 0 64 0 32 0 0 32 0 80c0 8.8 7.2 16 16 16s16-7.2 16-16l0-48c0-17.7 14.3-32 32-32s32 14.3 32 32l0 48c0 44.2-35.8 80-80 80s-80-35.8-80-80l0-48-32 0 0 32 0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64-192 0 0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64 0-96 128 0z\"]\n};\nconst faArrowLeft = {\n prefix: 'fas',\n iconName: 'arrow-left',\n icon: [448, 512, [8592], \"f060\", \"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.2 288 416 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-306.7 0L214.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z\"]\n};\nconst faPersonCircleXmark = {\n prefix: 'fas',\n iconName: 'person-circle-xmark',\n icon: [576, 512, [], \"e543\", \"M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-223.1L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6l29.7 0c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9 232 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0zM432 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm59.3 107.3c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L432 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L409.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L432 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L454.6 368l36.7-36.7z\"]\n};\nconst faRuler = {\n prefix: 'fas',\n iconName: 'ruler',\n icon: [512, 512, [128207], \"f545\", \"M177.9 494.1c-18.7 18.7-49.1 18.7-67.9 0L17.9 401.9c-18.7-18.7-18.7-49.1 0-67.9l50.7-50.7 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 41.4-41.4 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 41.4-41.4 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 41.4-41.4 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 50.7-50.7c18.7-18.7 49.1-18.7 67.9 0l92.1 92.1c18.7 18.7 18.7 49.1 0 67.9L177.9 494.1z\"]\n};\nconst faAlignLeft = {\n prefix: 'fas',\n iconName: 'align-left',\n icon: [448, 512, [], \"f036\", \"M288 64c0 17.7-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l224 0c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32L32 352c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 224c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z\"]\n};\nconst faDiceD6 = {\n prefix: 'fas',\n iconName: 'dice-d6',\n icon: [448, 512, [], \"f6d1\", \"M201 10.3c14.3-7.8 31.6-7.8 46 0L422.3 106c5.1 2.8 8.3 8.2 8.3 14s-3.2 11.2-8.3 14L231.7 238c-4.8 2.6-10.5 2.6-15.3 0L25.7 134c-5.1-2.8-8.3-8.2-8.3-14s3.2-11.2 8.3-14L201 10.3zM23.7 170l176 96c5.1 2.8 8.3 8.2 8.3 14l0 216c0 5.6-3 10.9-7.8 13.8s-10.9 3-15.8 .3L25 423.1C9.6 414.7 0 398.6 0 381L0 184c0-5.6 3-10.9 7.8-13.8s10.9-3 15.8-.3zm400.7 0c5-2.7 11-2.6 15.8 .3s7.8 8.1 7.8 13.8l0 197c0 17.6-9.6 33.7-25 42.1L263.7 510c-5 2.7-11 2.6-15.8-.3s-7.8-8.1-7.8-13.8l0-216c0-5.9 3.2-11.2 8.3-14l176-96z\"]\n};\nconst faRestroom = {\n prefix: 'fas',\n iconName: 'restroom',\n icon: [640, 512, [], \"f7bd\", \"M80 48a48 48 0 1 1 96 0A48 48 0 1 1 80 48zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-154.8c-8.1 9.2-21.1 13.2-33.5 9.4c-16.9-5.3-26.3-23.2-21-40.1l30.9-99.1C44.9 155.3 82 128 124 128l8 0c42 0 79.1 27.3 91.6 67.4l30.9 99.1c5.3 16.9-4.1 34.8-21 40.1c-12.4 3.9-25.4-.2-33.5-9.4L200 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0zM320 0c13.3 0 24 10.7 24 24l0 464c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-464c0-13.3 10.7-24 24-24zM464 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM440 480l0-96-17.8 0c-10.9 0-18.6-10.7-15.2-21.1l9-26.9c-3.2 0-6.4-.5-9.5-1.5c-16.9-5.3-26.3-23.2-21-40.1l29.7-95.2C428.4 156.9 467.6 128 512 128s83.6 28.9 96.8 71.2l29.7 95.2c5.3 16.9-4.1 34.8-21 40.1c-3.2 1-6.4 1.5-9.5 1.5l9 26.9c3.5 10.4-4.3 21.1-15.2 21.1L584 384l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-16 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32z\"]\n};\nconst faJ = {\n prefix: 'fas',\n iconName: 'j',\n icon: [320, 512, [106], \"4a\", \"M288 32c17.7 0 32 14.3 32 32l0 256c0 88.4-71.6 160-160 160S0 408.4 0 320l0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32c0 53 43 96 96 96s96-43 96-96l0-256c0-17.7 14.3-32 32-32z\"]\n};\nconst faUsersViewfinder = {\n prefix: 'fas',\n iconName: 'users-viewfinder',\n icon: [640, 512, [], \"e595\", \"M48 48l88 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L32 0C14.3 0 0 14.3 0 32L0 136c0 13.3 10.7 24 24 24s24-10.7 24-24l0-88zM175.8 224a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-26.5 32C119.9 256 96 279.9 96 309.3c0 14.7 11.9 26.7 26.7 26.7l56.1 0c8-34.1 32.8-61.7 65.2-73.6c-7.5-4.1-16.2-6.4-25.3-6.4l-69.3 0zm368 80c14.7 0 26.7-11.9 26.7-26.7c0-29.5-23.9-53.3-53.3-53.3l-69.3 0c-9.2 0-17.8 2.3-25.3 6.4c32.4 11.9 57.2 39.5 65.2 73.6l56.1 0zm-89.4 0c-8.6-24.3-29.9-42.6-55.9-47c-3.9-.7-7.9-1-12-1l-80 0c-4.1 0-8.1 .3-12 1c-26 4.4-47.3 22.7-55.9 47c-2.7 7.5-4.1 15.6-4.1 24c0 13.3 10.7 24 24 24l176 0c13.3 0 24-10.7 24-24c0-8.4-1.4-16.5-4.1-24zM464 224a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-80-32a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM504 48l88 0 0 88c0 13.3 10.7 24 24 24s24-10.7 24-24l0-104c0-17.7-14.3-32-32-32L504 0c-13.3 0-24 10.7-24 24s10.7 24 24 24zM48 464l0-88c0-13.3-10.7-24-24-24s-24 10.7-24 24L0 480c0 17.7 14.3 32 32 32l104 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-88 0zm456 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l104 0c17.7 0 32-14.3 32-32l0-104c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 88-88 0z\"]\n};\nconst faFileVideo = {\n prefix: 'fas',\n iconName: 'file-video',\n icon: [384, 512, [], \"f1c8\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM64 288c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-96zM300.9 397.9L256 368l0-64 44.9-29.9c2-1.3 4.4-2.1 6.8-2.1c6.8 0 12.3 5.5 12.3 12.3l0 103.4c0 6.8-5.5 12.3-12.3 12.3c-2.4 0-4.8-.7-6.8-2.1z\"]\n};\nconst faUpRightFromSquare = {\n prefix: 'fas',\n iconName: 'up-right-from-square',\n icon: [512, 512, [\"external-link-alt\"], \"f35d\", \"M352 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9L370.7 96 201.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L416 141.3l41.4 41.4c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6l0-128c0-17.7-14.3-32-32-32L352 0zM80 32C35.8 32 0 67.8 0 112L0 432c0 44.2 35.8 80 80 80l320 0c44.2 0 80-35.8 80-80l0-112c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 112c0 8.8-7.2 16-16 16L80 448c-8.8 0-16-7.2-16-16l0-320c0-8.8 7.2-16 16-16l112 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 32z\"]\n};\nconst faExternalLinkAlt = faUpRightFromSquare;\nconst faTableCells = {\n prefix: 'fas',\n iconName: 'table-cells',\n icon: [512, 512, [\"th\"], \"f00a\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm88 64l0 64-88 0 0-64 88 0zm56 0l88 0 0 64-88 0 0-64zm240 0l0 64-88 0 0-64 88 0zM64 224l88 0 0 64-88 0 0-64zm232 0l0 64-88 0 0-64 88 0zm64 0l88 0 0 64-88 0 0-64zM152 352l0 64-88 0 0-64 88 0zm56 0l88 0 0 64-88 0 0-64zm240 0l0 64-88 0 0-64 88 0z\"]\n};\nconst faTh = faTableCells;\nconst faFilePdf = {\n prefix: 'fas',\n iconName: 'file-pdf',\n icon: [512, 512, [], \"f1c1\", \"M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 144-208 0c-35.3 0-64 28.7-64 64l0 144-48 0c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zM176 352l32 0c30.9 0 56 25.1 56 56s-25.1 56-56 56l-16 0 0 32c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48 0-80c0-8.8 7.2-16 16-16zm32 80c13.3 0 24-10.7 24-24s-10.7-24-24-24l-16 0 0 48 16 0zm96-80l32 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48l-32 0c-8.8 0-16-7.2-16-16l0-128c0-8.8 7.2-16 16-16zm32 128c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-16 0 0 96 16 0zm80-112c0-8.8 7.2-16 16-16l48 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0 0 32 32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0 0 48c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-64 0-64z\"]\n};\nconst faBookBible = {\n prefix: 'fas',\n iconName: 'book-bible',\n icon: [448, 512, [\"bible\"], \"f647\", \"M96 0C43 0 0 43 0 96L0 416c0 53 43 96 96 96l288 0 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-64c17.7 0 32-14.3 32-32l0-320c0-17.7-14.3-32-32-32L384 0 96 0zm0 384l256 0 0 64L96 448c-17.7 0-32-14.3-32-32s14.3-32 32-32zM208 80c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 48 48 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-48 0 0 112c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-112-48 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l48 0 0-48z\"]\n};\nconst faBible = faBookBible;\nconst faO = {\n prefix: 'fas',\n iconName: 'o',\n icon: [448, 512, [111], \"4f\", \"M224 96a160 160 0 1 0 0 320 160 160 0 1 0 0-320zM448 256A224 224 0 1 1 0 256a224 224 0 1 1 448 0z\"]\n};\nconst faSuitcaseMedical = {\n prefix: 'fas',\n iconName: 'suitcase-medical',\n icon: [512, 512, [\"medkit\"], \"f0fa\", \"M184 48l144 0c4.4 0 8 3.6 8 8l0 40L176 96l0-40c0-4.4 3.6-8 8-8zm-56 8l0 40 0 32 0 352 256 0 0-352 0-32 0-40c0-30.9-25.1-56-56-56L184 0c-30.9 0-56 25.1-56 56zM96 96L64 96C28.7 96 0 124.7 0 160L0 416c0 35.3 28.7 64 64 64l32 0L96 96zM416 480l32 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-32 0 0 384zM224 208c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 48 48 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l48 0 0-48z\"]\n};\nconst faMedkit = faSuitcaseMedical;\nconst faUserSecret = {\n prefix: 'fas',\n iconName: 'user-secret',\n icon: [448, 512, [128373], \"f21b\", \"M224 16c-6.7 0-10.8-2.8-15.5-6.1C201.9 5.4 194 0 176 0c-30.5 0-52 43.7-66 89.4C62.7 98.1 32 112.2 32 128c0 14.3 25 27.1 64.6 35.9c-.4 4-.6 8-.6 12.1c0 17 3.3 33.2 9.3 48l-59.9 0C38 224 32 230 32 237.4c0 1.7 .3 3.4 1 5l38.8 96.9C28.2 371.8 0 423.8 0 482.3C0 498.7 13.3 512 29.7 512l388.6 0c16.4 0 29.7-13.3 29.7-29.7c0-58.5-28.2-110.4-71.7-143L415 242.4c.6-1.6 1-3.3 1-5c0-7.4-6-13.4-13.4-13.4l-59.9 0c6-14.8 9.3-31 9.3-48c0-4.1-.2-8.1-.6-12.1C391 155.1 416 142.3 416 128c0-15.8-30.7-29.9-78-38.6C324 43.7 302.5 0 272 0c-18 0-25.9 5.4-32.5 9.9c-4.8 3.3-8.8 6.1-15.5 6.1zm56 208l-12.4 0c-16.5 0-31.1-10.6-36.3-26.2c-2.3-7-12.2-7-14.5 0c-5.2 15.6-19.9 26.2-36.3 26.2L168 224c-22.1 0-40-17.9-40-40l0-14.4c28.2 4.1 61 6.4 96 6.4s67.8-2.3 96-6.4l0 14.4c0 22.1-17.9 40-40 40zm-88 96l16 32L176 480 128 288l64 32zm128-32L272 480 240 352l16-32 64-32z\"]\n};\nconst faOtter = {\n prefix: 'fas',\n iconName: 'otter',\n icon: [640, 512, [129446], \"f700\", \"M181.5 197.1l12.9 6.4c5.9 3 12.4 4.5 19.1 4.5c23.5 0 42.6-19.1 42.6-42.6l0-21.4c0-35.3-28.7-64-64-64l-64 0c-35.3 0-64 28.7-64 64l0 21.4c0 23.5 19.1 42.6 42.6 42.6c6.6 0 13.1-1.5 19.1-4.5l12.9-6.4 8.4-4.2L135.1 185c-4.5-3-7.1-8-7.1-13.3l0-3.7c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24l0 3.7c0 5.3-2.7 10.3-7.1 13.3l-11.8 7.9 8.4 4.2zm-8.6 49.4L160 240l-12.9 6.4c-12.6 6.3-26.5 9.6-40.5 9.6c-3.6 0-7.1-.2-10.6-.6l0 .6c0 35.3 28.7 64 64 64l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l160 0 0-48 0-16c0-23.7 12.9-44.4 32-55.4c9.4-5.4 20.3-8.6 32-8.6l0-16c0-26.5 21.5-48 48-48c8.8 0 16 7.2 16 16l0 32 0 16 0 48c0 8.8 7.2 16 16 16s16-7.2 16-16l0-99.7c0-48.2-30.8-91-76.6-106.3l-8.5-2.8c-8-2.7-12.6-11.1-10.4-19.3s10.3-13.2 18.6-11.6l19.9 4C576 86.1 640 164.2 640 254.9l0 1.1s0 0 0 0c0 123.7-100.3 224-224 224l-1.1 0L256 480l-.6 0C132 480 32 380 32 256.6l0-.6 0-39.2c-10.1-14.6-16-32.3-16-51.4L16 144l0-1.4C6.7 139.3 0 130.5 0 120c0-13.3 10.7-24 24-24l2.8 0C44.8 58.2 83.3 32 128 32l64 0c44.7 0 83.2 26.2 101.2 64l2.8 0c13.3 0 24 10.7 24 24c0 10.5-6.7 19.3-16 22.6l0 1.4 0 21.4c0 1.4 0 2.8-.1 4.3c12-6.2 25.7-9.6 40.1-9.6l8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-8 0c-13.3 0-24 10.7-24 24l0 8 56.4 0c-15.2 17-24.4 39.4-24.4 64l-32 0c-42.3 0-78.2-27.4-91-65.3c-5.1 .9-10.3 1.3-15.6 1.3c-14.1 0-27.9-3.3-40.5-9.6zM96 128a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm112 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z\"]\n};\nconst faPersonDress = {\n prefix: 'fas',\n iconName: 'person-dress',\n icon: [320, 512, [\"female\"], \"f182\", \"M160 0a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM88 384l-17.8 0c-10.9 0-18.6-10.7-15.2-21.1L93.3 248.1 59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l53.6-89.2c20.3-33.7 56.7-54.3 96-54.3l11.6 0c39.3 0 75.7 20.6 96 54.3l53.6 89.2c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9l-33.9-56.3L265 362.9c3.5 10.4-4.3 21.1-15.2 21.1L232 384l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-16 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96z\"]\n};\nconst faFemale = faPersonDress;\nconst faCommentDollar = {\n prefix: 'fas',\n iconName: 'comment-dollar',\n icon: [512, 512, [], \"f651\", \"M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0s0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zm20-312l0 13.9c7.5 1.2 14.6 2.9 21.1 4.7c10.7 2.8 17 13.8 14.2 24.5s-13.8 17-24.5 14.2c-11-2.9-21.6-5-31.2-5.2c-7.9-.1-16 1.8-21.5 5c-4.8 2.8-6.2 5.6-6.2 9.3c0 1.8 .1 3.5 5.3 6.7c6.3 3.8 15.5 6.7 28.3 10.5l.7 .2c11.2 3.4 25.6 7.7 37.1 15c12.9 8.1 24.3 21.3 24.6 41.6c.3 20.9-10.5 36.1-24.8 45c-7.2 4.5-15.2 7.3-23.2 9l0 13.8c0 11-9 20-20 20s-20-9-20-20l0-14.6c-10.3-2.2-20-5.5-28.2-8.4c0 0 0 0 0 0s0 0 0 0c-2.1-.7-4.1-1.4-6.1-2.1c-10.5-3.5-16.1-14.8-12.6-25.3s14.8-16.1 25.3-12.6c2.5 .8 4.9 1.7 7.2 2.4c0 0 0 0 0 0c13.6 4.6 24 8.1 35.1 8.5c8.6 .3 16.5-1.6 21.4-4.7c4.1-2.5 6-5.5 5.9-10.5c0-2.9-.8-5-5.9-8.2c-6.3-4-15.4-6.9-28-10.7l-1.7-.5c-10.9-3.3-24.6-7.4-35.6-14c-12.7-7.7-24.6-20.5-24.7-40.7c-.1-21.1 11.8-35.7 25.8-43.9c6.9-4.1 14.5-6.8 22.2-8.5l0-14c0-11 9-20 20-20s20 9 20 20z\"]\n};\nconst faBusinessTime = {\n prefix: 'fas',\n iconName: 'business-time',\n icon: [640, 512, [\"briefcase-clock\"], \"f64a\", \"M184 48l144 0c4.4 0 8 3.6 8 8l0 40L176 96l0-40c0-4.4 3.6-8 8-8zm-56 8l0 40L64 96C28.7 96 0 124.7 0 160l0 96 192 0 160 0 8.2 0c32.3-39.1 81.1-64 135.8-64c5.4 0 10.7 .2 16 .7l0-32.7c0-35.3-28.7-64-64-64l-64 0 0-40c0-30.9-25.1-56-56-56L184 0c-30.9 0-56 25.1-56 56zM320 352l-96 0c-17.7 0-32-14.3-32-32l0-32L0 288 0 416c0 35.3 28.7 64 64 64l296.2 0C335.1 449.6 320 410.5 320 368c0-5.4 .2-10.7 .7-16l-.7 0zm320 16a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zM496 288c8.8 0 16 7.2 16 16l0 48 32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16z\"]\n};\nconst faBriefcaseClock = faBusinessTime;\nconst faTableCellsLarge = {\n prefix: 'fas',\n iconName: 'table-cells-large',\n icon: [512, 512, [\"th-large\"], \"f009\", \"M448 96l0 128-160 0 0-128 160 0zm0 192l0 128-160 0 0-128 160 0zM224 224L64 224 64 96l160 0 0 128zM64 288l160 0 0 128L64 416l0-128zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z\"]\n};\nconst faThLarge = faTableCellsLarge;\nconst faBookTanakh = {\n prefix: 'fas',\n iconName: 'book-tanakh',\n icon: [448, 512, [\"tanakh\"], \"f827\", \"M352 0c53 0 96 43 96 96l0 320c0 53-43 96-96 96L64 512l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-64c-17.7 0-32-14.3-32-32L0 32C0 14.3 14.3 0 32 0L64 0 352 0zm0 384L96 384l0 64 256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32zM138.7 208l13.9 24-27.7 0 13.9-24zm-13.9-24L97.1 232c-6.2 10.7 1.5 24 13.9 24l55.4 0 27.7 48c6.2 10.7 21.6 10.7 27.7 0l27.7-48 55.4 0c12.3 0 20-13.3 13.9-24l-27.7-48 27.7-48c6.2-10.7-1.5-24-13.9-24l-55.4 0L221.9 64c-6.2-10.7-21.6-10.7-27.7 0l-27.7 48L111 112c-12.3 0-20 13.3-13.9 24l27.7 48zm27.7 0l27.7-48 55.4 0 27.7 48-27.7 48-55.4 0-27.7-48zm0-48l-13.9 24-13.9-24 27.7 0zm41.6-24L208 88l13.9 24-27.7 0zm69.3 24l27.7 0-13.9 24-13.9-24zm13.9 72l13.9 24-27.7 0 13.9-24zm-55.4 48L208 280l-13.9-24 27.7 0z\"]\n};\nconst faTanakh = faBookTanakh;\nconst faPhoneVolume = {\n prefix: 'fas',\n iconName: 'phone-volume',\n icon: [512, 512, [\"volume-control-phone\"], \"f2a0\", \"M280 0C408.1 0 512 103.9 512 232c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-101.6-82.4-184-184-184c-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 192a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm-32-72c0-13.3 10.7-24 24-24c75.1 0 136 60.9 136 136c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-48.6-39.4-88-88-88c-13.3 0-24-10.7-24-24zM117.5 1.4c19.4-5.3 39.7 4.6 47.4 23.2l40 96c6.8 16.3 2.1 35.2-11.6 46.3L144 207.3c33.3 70.4 90.3 127.4 160.7 160.7L345 318.7c11.2-13.7 30-18.4 46.3-11.6l96 40c18.6 7.7 28.5 28 23.2 47.4l-24 88C481.8 499.9 466 512 448 512C200.6 512 0 311.4 0 64C0 46 12.1 30.2 29.5 25.4l88-24z\"]\n};\nconst faVolumeControlPhone = faPhoneVolume;\nconst faHatCowboySide = {\n prefix: 'fas',\n iconName: 'hat-cowboy-side',\n icon: [640, 512, [], \"f8c1\", \"M152.7 135.9l-10.4 57.2c6.8-.7 13.6-1.1 20.5-1.1l10.7 0c39.4 0 77.8 12.1 110.1 34.7L562.4 421.8l35.1 24.6c24.4-6 42.5-28.1 42.5-54.4c0-75.8-94.7-126.6-134.6-144.7L474 83.9C468.2 53.8 441.8 32 411.1 32l-2.7 0c-5.6 0-11.1 .7-16.5 2.2L199.2 85.5c-23.9 6.4-42 26-46.5 50.4zM0 384c0 35.3 28.7 64 64 64l480 0L265.3 252.9c-26.9-18.8-58.9-28.9-91.8-28.9l-10.7 0c-60.6 0-116 34.2-143.1 88.4L13.5 325C4.6 342.7 0 362.3 0 382.2L0 384z\"]\n};\nconst faClipboardUser = {\n prefix: 'fas',\n iconName: 'clipboard-user',\n icon: [384, 512, [], \"f7f3\", \"M192 0c-41.8 0-77.4 26.7-90.5 64L64 64C28.7 64 0 92.7 0 128L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64l-37.5 0C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM128 256a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM80 432c0-44.2 35.8-80 80-80l64 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16L96 448c-8.8 0-16-7.2-16-16z\"]\n};\nconst faChild = {\n prefix: 'fas',\n iconName: 'child',\n icon: [320, 512, [], \"f1ae\", \"M96 64a64 64 0 1 1 128 0A64 64 0 1 1 96 64zm48 320l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-192.2L59.1 321c-9.4 15-29.2 19.4-44.1 10S-4.5 301.9 4.9 287l39.9-63.3C69.7 184 113.2 160 160 160s90.3 24 115.2 63.6L315.1 287c9.4 15 4.9 34.7-10 44.1s-34.7 4.9-44.1-10L240 287.8 240 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-32 0z\"]\n};\nconst faLiraSign = {\n prefix: 'fas',\n iconName: 'lira-sign',\n icon: [320, 512, [8356], \"f195\", \"M112 160.4c0-35.5 28.8-64.4 64.4-64.4c6.9 0 13.8 1.1 20.4 3.3l81.2 27.1c16.8 5.6 34.9-3.5 40.5-20.2s-3.5-34.9-20.2-40.5L217 38.6c-13.1-4.4-26.8-6.6-40.6-6.6C105.5 32 48 89.5 48 160.4L48 192l-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l16 0 0 32-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l14 0c-2.2 10.5-6.1 20.6-11.7 29.9L4.6 431.5c-5.9 9.9-6.1 22.2-.4 32.2S20.5 480 32 480l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L88.5 416l.7-1.1c11.6-19.3 18.9-40.7 21.6-62.9L224 352c17.7 0 32-14.3 32-32s-14.3-32-32-32l-112 0 0-32 112 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-112 0 0-31.6z\"]\n};\nconst faSatellite = {\n prefix: 'fas',\n iconName: 'satellite',\n icon: [512, 512, [128752], \"f7bf\", \"M233 7c-9.4-9.4-24.6-9.4-33.9 0l-96 96c-9.4 9.4-9.4 24.6 0 33.9l89.4 89.4-15.5 15.5C152.3 230.4 124.9 224 96 224c-31.7 0-61.5 7.7-87.8 21.2c-9 4.7-10.3 16.7-3.1 23.8L112.7 376.7 96.3 393.1c-2.6-.7-5.4-1.1-8.3-1.1c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32c0-2.9-.4-5.6-1.1-8.3l16.4-16.4L242.9 506.9c7.2 7.2 19.2 5.9 23.8-3.1C280.3 477.5 288 447.7 288 416c0-28.9-6.4-56.3-17.8-80.9l15.5-15.5L375 409c9.4 9.4 24.6 9.4 33.9 0l96-96c9.4-9.4 9.4-24.6 0-33.9l-89.4-89.4 55-55c12.5-12.5 12.5-32.8 0-45.3l-48-48c-12.5-12.5-32.8-12.5-45.3 0l-55 55L233 7zm159 351l-72.4-72.4 62.1-62.1L454.1 296 392 358.1zM226.3 192.4L153.9 120 216 57.9l72.4 72.4-62.1 62.1z\"]\n};\nconst faPlaneLock = {\n prefix: 'fas',\n iconName: 'plane-lock',\n icon: [640, 512, [], \"e558\", \"M192 93.7C192 59.5 221 0 256 0c36 0 64 59.5 64 93.7l0 84.6 101.8 58.2C418 247.6 416 259.6 416 272l0 24.6c-17.9 10.4-30.3 29.1-31.8 50.9L320 329.1l0 70.9 57.6 43.2c4 3 6.4 7.8 6.4 12.8l0 24 0 18c0 7.8-6.3 14-14 14c-1.3 0-2.6-.2-3.9-.5L256 480 145.9 511.5c-1.3 .4-2.6 .5-3.9 .5c-7.8 0-14-6.3-14-14l0-42c0-5 2.4-9.8 6.4-12.8L192 400l0-70.9-171.6 49C10.2 381.1 0 373.4 0 362.8l0-65.5c0-5.7 3.1-11 8.1-13.9L192 178.3l0-84.6zM528 240c-17.7 0-32 14.3-32 32l0 48 64 0 0-48c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80l0 48c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32l0-48z\"]\n};\nconst faTag = {\n prefix: 'fas',\n iconName: 'tag',\n icon: [448, 512, [127991], \"f02b\", \"M0 80L0 229.5c0 17 6.7 33.3 18.7 45.3l176 176c25 25 65.5 25 90.5 0L418.7 317.3c25-25 25-65.5 0-90.5l-176-176c-12-12-28.3-18.7-45.3-18.7L48 32C21.5 32 0 53.5 0 80zm112 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nconst faComment = {\n prefix: 'fas',\n iconName: 'comment',\n icon: [512, 512, [128489, 61669], \"f075\", \"M512 240c0 114.9-114.6 208-256 208c-37.1 0-72.3-6.4-104.1-17.9c-11.9 8.7-31.3 20.6-54.3 30.6C73.6 471.1 44.7 480 16 480c-6.5 0-12.3-3.9-14.8-9.9c-2.5-6-1.1-12.8 3.4-17.4c0 0 0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.3-.3c.3-.3 .7-.7 1.3-1.4c1.1-1.2 2.8-3.1 4.9-5.7c4.1-5 9.6-12.4 15.2-21.6c10-16.6 19.5-38.4 21.4-62.9C17.7 326.8 0 285.1 0 240C0 125.1 114.6 32 256 32s256 93.1 256 208z\"]\n};\nconst faCakeCandles = {\n prefix: 'fas',\n iconName: 'cake-candles',\n icon: [448, 512, [127874, \"birthday-cake\", \"cake\"], \"f1fd\", \"M86.4 5.5L61.8 47.6C58 54.1 56 61.6 56 69.2L56 72c0 22.1 17.9 40 40 40s40-17.9 40-40l0-2.8c0-7.6-2-15-5.8-21.6L105.6 5.5C103.6 2.1 100 0 96 0s-7.6 2.1-9.6 5.5zm128 0L189.8 47.6c-3.8 6.5-5.8 14-5.8 21.6l0 2.8c0 22.1 17.9 40 40 40s40-17.9 40-40l0-2.8c0-7.6-2-15-5.8-21.6L233.6 5.5C231.6 2.1 228 0 224 0s-7.6 2.1-9.6 5.5zM317.8 47.6c-3.8 6.5-5.8 14-5.8 21.6l0 2.8c0 22.1 17.9 40 40 40s40-17.9 40-40l0-2.8c0-7.6-2-15-5.8-21.6L361.6 5.5C359.6 2.1 356 0 352 0s-7.6 2.1-9.6 5.5L317.8 47.6zM128 176c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48c-35.3 0-64 28.7-64 64l0 71c8.3 5.2 18.1 9 28.8 9c13.5 0 27.2-6.1 38.4-13.4c5.4-3.5 9.9-7.1 13-9.7c1.5-1.3 2.7-2.4 3.5-3.1c.4-.4 .7-.6 .8-.8l.1-.1s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0c3.1-3.2 7.4-4.9 11.9-4.8s8.6 2.1 11.6 5.4c0 0 0 0 0 0s0 0 0 0l.1 .1c.1 .1 .4 .4 .7 .7c.7 .7 1.7 1.7 3.1 3c2.8 2.6 6.8 6.1 11.8 9.5c10.2 7.1 23 13.1 36.3 13.1s26.1-6 36.3-13.1c5-3.5 9-6.9 11.8-9.5c1.4-1.3 2.4-2.3 3.1-3c.3-.3 .6-.6 .7-.7l.1-.1c3-3.5 7.4-5.4 12-5.4s9 2 12 5.4l.1 .1c.1 .1 .4 .4 .7 .7c.7 .7 1.7 1.7 3.1 3c2.8 2.6 6.8 6.1 11.8 9.5c10.2 7.1 23 13.1 36.3 13.1s26.1-6 36.3-13.1c5-3.5 9-6.9 11.8-9.5c1.4-1.3 2.4-2.3 3.1-3c.3-.3 .6-.6 .7-.7l.1-.1c2.9-3.4 7.1-5.3 11.6-5.4s8.7 1.6 11.9 4.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0l.1 .1c.2 .2 .4 .4 .8 .8c.8 .7 1.9 1.8 3.5 3.1c3.1 2.6 7.5 6.2 13 9.7c11.2 7.3 24.9 13.4 38.4 13.4c10.7 0 20.5-3.9 28.8-9l0-71c0-35.3-28.7-64-64-64l0-48c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48-64 0 0-48c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48-64 0 0-48zM448 394.6c-8.5 3.3-18.2 5.4-28.8 5.4c-22.5 0-42.4-9.9-55.8-18.6c-4.1-2.7-7.8-5.4-10.9-7.8c-2.8 2.4-6.1 5-9.8 7.5C329.8 390 310.6 400 288 400s-41.8-10-54.6-18.9c-3.5-2.4-6.7-4.9-9.4-7.2c-2.7 2.3-5.9 4.7-9.4 7.2C201.8 390 182.6 400 160 400s-41.8-10-54.6-18.9c-3.7-2.6-7-5.2-9.8-7.5c-3.1 2.4-6.8 5.1-10.9 7.8C71.2 390.1 51.3 400 28.8 400c-10.6 0-20.3-2.2-28.8-5.4L0 480c0 17.7 14.3 32 32 32l384 0c17.7 0 32-14.3 32-32l0-85.4z\"]\n};\nconst faBirthdayCake = faCakeCandles;\nconst faCake = faCakeCandles;\nconst faEnvelope = {\n prefix: 'fas',\n iconName: 'envelope',\n icon: [512, 512, [128386, 9993, 61443], \"f0e0\", \"M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4L236.8 313.6c11.4 8.5 27 8.5 38.4 0L492.8 150.4c12.1-9.1 19.2-23.3 19.2-38.4c0-26.5-21.5-48-48-48L48 64zM0 176L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-208L294.4 339.2c-22.8 17.1-54 17.1-76.8 0L0 176z\"]\n};\nconst faAnglesUp = {\n prefix: 'fas',\n iconName: 'angles-up',\n icon: [448, 512, [\"angle-double-up\"], \"f102\", \"M246.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L224 109.3 361.4 246.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160zm160 352l-160-160c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L224 301.3 361.4 438.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3z\"]\n};\nconst faAngleDoubleUp = faAnglesUp;\nconst faPaperclip = {\n prefix: 'fas',\n iconName: 'paperclip',\n icon: [448, 512, [128206], \"f0c6\", \"M364.2 83.8c-24.4-24.4-64-24.4-88.4 0l-184 184c-42.1 42.1-42.1 110.3 0 152.4s110.3 42.1 152.4 0l152-152c10.9-10.9 28.7-10.9 39.6 0s10.9 28.7 0 39.6l-152 152c-64 64-167.6 64-231.6 0s-64-167.6 0-231.6l184-184c46.3-46.3 121.3-46.3 167.6 0s46.3 121.3 0 167.6l-176 176c-28.6 28.6-75 28.6-103.6 0s-28.6-75 0-103.6l144-144c10.9-10.9 28.7-10.9 39.6 0s10.9 28.7 0 39.6l-144 144c-6.7 6.7-6.7 17.7 0 24.4s17.7 6.7 24.4 0l176-176c24.4-24.4 24.4-64 0-88.4z\"]\n};\nconst faArrowRightToCity = {\n prefix: 'fas',\n iconName: 'arrow-right-to-city',\n icon: [640, 512, [], \"e4b3\", \"M288 48c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 144 40 0 0-72c0-13.3 10.7-24 24-24s24 10.7 24 24l0 72 24 0c26.5 0 48 21.5 48 48l0 224c0 26.5-21.5 48-48 48l-160 0-96 0c-26.5 0-48-21.5-48-48l0-416zm64 32l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm16 80c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM352 272l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm176-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM512 368l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM166.6 153.4l80 80c12.5 12.5 12.5 32.8 0 45.3l-80 80c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L146.7 288 32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l114.7 0-25.4-25.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0z\"]\n};\nconst faRibbon = {\n prefix: 'fas',\n iconName: 'ribbon',\n icon: [448, 512, [127895], \"f4d6\", \"M333.2 322.8s0 0 0 0l-133.9-146s0 0 0 0L146 118.6c7.8-5.1 37-22.6 78-22.6s70.2 17.4 78 22.6L245.7 180l85.6 93.4 27.4-29.8c16.3-17.7 25.3-40.9 25.3-65l0-29.5c0-19-5.6-37.5-16.1-53.3L327.8 35.6C312.9 13.4 287.9 0 261.2 0l-76 0c-25.8 0-50.1 12.5-65.1 33.5L81.9 87C70.3 103.2 64 122.8 64 142.8L64 164c0 23.2 8.4 45.6 23.6 63.1l56 64.2s0 0 0 0l83.3 95.6s0 0 0 0l91.8 105.3c10 11.5 26.8 14.3 40 6.8l54.5-31.1c17.8-10.2 21.6-34.3 7.7-49.4l-87.7-95.7zM205.2 410.6l-83.3-95.6L27.1 418.5c-13.9 15.1-10.1 39.2 7.7 49.4l55.1 31.5c13 7.4 29.3 4.9 39.4-6.1l75.9-82.6z\"]\n};\nconst faLungs = {\n prefix: 'fas',\n iconName: 'lungs',\n icon: [640, 512, [129729], \"f604\", \"M320 0c17.7 0 32 14.3 32 32l0 132.1c0 16.4 8.4 31.7 22.2 40.5l9.8 6.2 0-45.5C384 127 415 96 453.3 96c21.7 0 42.8 10.2 55.8 28.8c15.4 22.1 44.3 65.4 71 116.9c26.5 50.9 52.4 112.5 59.6 170.3c.2 1.3 .2 2.6 .2 4l0 7c0 49.1-39.8 89-89 89c-7.3 0-14.5-.9-21.6-2.7l-72.7-18.2C414 480.5 384 442.1 384 398l0-73 90.5 57.6c7.5 4.7 17.3 2.5 22.1-4.9s2.5-17.3-4.9-22.1L384 287.1l0-.4-44.1-28.1c-7.3-4.6-13.9-10.1-19.9-16.1c-5.9 6-12.6 11.5-19.9 16.1L256 286.7 161.2 347l-13.5 8.6c0 0 0 0-.1 0c-7.4 4.8-9.6 14.6-4.8 22.1c4.7 7.5 14.6 9.7 22.1 4.9l91.1-58 0 73.4c0 44.1-30 82.5-72.7 93.1l-72.7 18.2c-7.1 1.8-14.3 2.7-21.6 2.7c-49.1 0-89-39.8-89-89l0-7c0-1.3 .1-2.7 .2-4c7.2-57.9 33.1-119.4 59.6-170.3c26.8-51.5 55.6-94.8 71-116.9c13-18.6 34-28.8 55.8-28.8C225 96 256 127 256 165.3l0 45.5 9.8-6.2c13.8-8.8 22.2-24.1 22.2-40.5L288 32c0-17.7 14.3-32 32-32z\"]\n};\nconst faArrowUp91 = {\n prefix: 'fas',\n iconName: 'arrow-up-9-1',\n icon: [576, 512, [\"sort-numeric-up-alt\"], \"f887\", \"M160 32c9 0 17.5 3.8 23.6 10.4l88 96c11.9 13 11.1 33.3-2 45.2s-33.3 11.1-45.2-2L192 146.3 192 448c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-301.7L95.6 181.6c-11.9 13-32.2 13.9-45.2 2s-13.9-32.2-2-45.2l88-96C142.5 35.8 151 32 160 32zM450.7 294c8.3 6 13.3 15.7 13.3 26l0 96 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-48 0-48 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-51.6-5.9 2c-16.8 5.6-34.9-3.5-40.5-20.2s3.5-34.9 20.2-40.5l48-16c9.8-3.3 20.5-1.6 28.8 4.4zm-5-145.1A32 32 0 1 0 418.3 91a32 32 0 1 0 27.4 57.9zm-40.7 54.9C369.6 192.4 344 159.2 344 120c0-48.6 39.4-88 88-88s88 39.4 88 88c0 23.5-7.5 46.3-21.5 65.2L449.7 251c-10.5 14.2-30.6 17.2-44.8 6.7s-17.2-30.6-6.7-44.8l6.8-9.2z\"]\n};\nconst faSortNumericUpAlt = faArrowUp91;\nconst faLitecoinSign = {\n prefix: 'fas',\n iconName: 'litecoin-sign',\n icon: [384, 512, [], \"e1d3\", \"M128 64c0-17.7-14.3-32-32-32S64 46.3 64 64l0 149.6L23.2 225.2c-17 4.9-26.8 22.6-22 39.6s22.6 26.8 39.6 22L64 280.1 64 448c0 17.7 14.3 32 32 32l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-224 0 0-154.1 136.8-39.1c17-4.9 26.8-22.6 22-39.6s-22.6-26.8-39.6-22L128 195.3 128 64z\"]\n};\nconst faBorderNone = {\n prefix: 'fas',\n iconName: 'border-none',\n icon: [448, 512, [], \"f850\", \"M32 480a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm96-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0-384a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0 256a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM320 416a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0-320a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm0 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM224 480a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm0-448a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0 256a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM416 416a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0-384a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM32 96a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM416 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM32 288a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm192 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm192 64a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM32 320a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM416 192a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM32 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm192 64a32 32 0 1 1 0-64 32 32 0 1 1 0 64z\"]\n};\nconst faCircleNodes = {\n prefix: 'fas',\n iconName: 'circle-nodes',\n icon: [512, 512, [], \"e4e2\", \"M418.4 157.9c35.3-8.3 61.6-40 61.6-77.9c0-44.2-35.8-80-80-80c-43.4 0-78.7 34.5-80 77.5L136.2 151.1C121.7 136.8 101.9 128 80 128c-44.2 0-80 35.8-80 80s35.8 80 80 80c12.2 0 23.8-2.7 34.1-7.6L259.7 407.8c-2.4 7.6-3.7 15.8-3.7 24.2c0 44.2 35.8 80 80 80s80-35.8 80-80c0-27.7-14-52.1-35.4-66.4l37.8-207.7zM156.3 232.2c2.2-6.9 3.5-14.2 3.7-21.7l183.8-73.5c3.6 3.5 7.4 6.7 11.6 9.5L317.6 354.1c-5.5 1.3-10.8 3.1-15.8 5.5L156.3 232.2z\"]\n};\nconst faParachuteBox = {\n prefix: 'fas',\n iconName: 'parachute-box',\n icon: [512, 512, [], \"f4cd\", \"M383.5 192c.3-5.3 .5-10.6 .5-16c0-51-15.9-96-40.2-127.6C319.5 16.9 288.2 0 256 0s-63.5 16.9-87.8 48.4C143.9 80 128 125 128 176c0 5.4 .2 10.7 .5 16L240 192l0 128-32 0c-7 0-13.7 1.5-19.7 4.2L68.2 192l28.3 0c-.3-5.3-.5-10.6-.5-16c0-64 22.2-121.2 57.1-159.3C62 49.3 18.6 122.6 4.2 173.6C1.5 183.1 9 192 18.9 192l6 0L165.2 346.3c-3.3 6.5-5.2 13.9-5.2 21.7l0 96c0 26.5 21.5 48 48 48l96 0c26.5 0 48-21.5 48-48l0-96c0-7.8-1.9-15.2-5.2-21.7L487.1 192l6 0c9.9 0 17.4-8.9 14.7-18.4C493.4 122.6 450 49.3 358.9 16.7C393.8 54.8 416 112.1 416 176c0 5.4-.2 10.7-.5 16l28.3 0L323.7 324.2c-6-2.7-12.7-4.2-19.7-4.2l-32 0 0-128 111.5 0z\"]\n};\nconst faIndent = {\n prefix: 'fas',\n iconName: 'indent',\n icon: [448, 512, [], \"f03c\", \"M0 64C0 46.3 14.3 32 32 32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64zM192 192c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32zm32 96l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zM0 448c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32zM127.8 268.6L25.8 347.9C15.3 356.1 0 348.6 0 335.3L0 176.7c0-13.3 15.3-20.8 25.8-12.6l101.9 79.3c8.2 6.4 8.2 18.9 0 25.3z\"]\n};\nconst faTruckFieldUn = {\n prefix: 'fas',\n iconName: 'truck-field-un',\n icon: [640, 512, [], \"e58e\", \"M96 32C60.7 32 32 60.7 32 96l0 32c-17.7 0-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32l0 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0c0 53 43 96 96 96s96-43 96-96l128 0c0 53 43 96 96 96s96-43 96-96l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-32c0-35.3-28.7-64-64-64l-4.2 0c-.4-1.1-.9-2.1-1.3-3.2L485.7 102c-10.3-23.1-33.2-38-58.5-38l-51.8 0C364.4 44.9 343.7 32 320 32L96 32zm288 96l43.2 0 42.7 96L384 224l0-96zM112 384a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm368-48a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM253.3 135.1l34.7 52 0-43.2c0-8.8 7.2-16 16-16s16 7.2 16 16l0 96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4l-34.7-52 0 43.2c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4zM128 144l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16l0 64c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nconst faHourglass = {\n prefix: 'fas',\n iconName: 'hourglass',\n icon: [384, 512, [9203, 62032, \"hourglass-empty\"], \"f254\", \"M0 32C0 14.3 14.3 0 32 0L64 0 320 0l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 11c0 42.4-16.9 83.1-46.9 113.1L237.3 256l67.9 67.9c30 30 46.9 70.7 46.9 113.1l0 11c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0L64 512l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-11c0-42.4 16.9-83.1 46.9-113.1L146.7 256 78.9 188.1C48.9 158.1 32 117.4 32 75l0-11C14.3 64 0 49.7 0 32zM96 64l0 11c0 25.5 10.1 49.9 28.1 67.9L192 210.7l67.9-67.9c18-18 28.1-42.4 28.1-67.9l0-11L96 64zm0 384l192 0 0-11c0-25.5-10.1-49.9-28.1-67.9L192 301.3l-67.9 67.9c-18 18-28.1 42.4-28.1 67.9l0 11z\"]\n};\nconst faHourglassEmpty = faHourglass;\nconst faMountain = {\n prefix: 'fas',\n iconName: 'mountain',\n icon: [512, 512, [127956], \"f6fc\", \"M256 32c12.5 0 24.1 6.4 30.8 17L503.4 394.4c5.6 8.9 8.6 19.2 8.6 29.7c0 30.9-25 55.9-55.9 55.9L55.9 480C25 480 0 455 0 424.1c0-10.5 3-20.8 8.6-29.7L225.2 49c6.6-10.6 18.3-17 30.8-17zm65 192L256 120.4 176.9 246.5l18.3 24.4c6.4 8.5 19.2 8.5 25.6 0l25.6-34.1c6-8.1 15.5-12.8 25.6-12.8l49 0z\"]\n};\nconst faUserDoctor = {\n prefix: 'fas',\n iconName: 'user-doctor',\n icon: [448, 512, [\"user-md\"], \"f0f0\", \"M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-96 55.2C54 332.9 0 401.3 0 482.3C0 498.7 13.3 512 29.7 512l388.6 0c16.4 0 29.7-13.3 29.7-29.7c0-81-54-149.4-128-171.1l0 50.8c27.6 7.1 48 32.2 48 62l0 40c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l0-24c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 24c8.8 0 16 7.2 16 16s-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-40c0-29.8 20.4-54.9 48-62l0-57.1c-6-.6-12.1-.9-18.3-.9l-91.4 0c-6.2 0-12.3 .3-18.3 .9l0 65.4c23.1 6.9 40 28.3 40 53.7c0 30.9-25.1 56-56 56s-56-25.1-56-56c0-25.4 16.9-46.8 40-53.7l0-59.1zM144 448a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nconst faUserMd = faUserDoctor;\nconst faCircleInfo = {\n prefix: 'fas',\n iconName: 'circle-info',\n icon: [512, 512, [\"info-circle\"], \"f05a\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM216 336l24 0 0-64-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 88 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm40-208a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nconst faInfoCircle = faCircleInfo;\nconst faCloudMeatball = {\n prefix: 'fas',\n iconName: 'cloud-meatball',\n icon: [512, 512, [], \"f73b\", \"M0 224c0 53 43 96 96 96l44.7 0c9.5-23.5 32.5-40 59.3-40c2 0 3.9 .1 5.8 .3C217.6 265.5 235.7 256 256 256s38.4 9.5 50.2 24.3c1.9-.2 3.9-.3 5.8-.3c26.9 0 49.9 16.5 59.3 40l44.7 0c53 0 96-43 96-96s-43-96-96-96c-.5 0-1.1 0-1.6 0c1.1-5.2 1.6-10.5 1.6-16c0-44.2-35.8-80-80-80c-24.3 0-46.1 10.9-60.8 28C256.5 24.3 219.1 0 176 0C114.1 0 64 50.1 64 112c0 7.1 .7 14.1 1.9 20.8C27.6 145.4 0 181.5 0 224zm288 96c0-17.7-14.3-32-32-32s-32 14.3-32 32c0 1 .1 2.1 .1 3.1c-.7-.8-1.4-1.6-2.1-2.3c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3c.7 .7 1.5 1.4 2.3 2.1c-1-.1-2.1-.1-3.1-.1c-17.7 0-32 14.3-32 32s14.3 32 32 32c1 0 2.1-.1 3.1-.1c-.8 .7-1.6 1.3-2.3 2.1c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0c.7-.7 1.4-1.5 2.1-2.3c-.1 1-.1 2.1-.1 3.1c0 17.7 14.3 32 32 32s32-14.3 32-32c0-1-.1-2.1-.1-3.1c.7 .8 1.3 1.6 2.1 2.3c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3c-.7-.7-1.5-1.4-2.3-2.1c1 .1 2.1 .1 3.1 .1c17.7 0 32-14.3 32-32s-14.3-32-32-32c-1 0-2.1 .1-3.1 .1c.8-.7 1.6-1.3 2.3-2.1c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-.7 .7-1.4 1.5-2.1 2.3c.1-1 .1-2.1 .1-3.1zM48 448a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm416 0a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"]\n};\nconst faCamera = {\n prefix: 'fas',\n iconName: 'camera',\n icon: [512, 512, [62258, \"camera-alt\"], \"f030\", \"M149.1 64.8L138.7 96 64 96C28.7 96 0 124.7 0 160L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-74.7 0L362.9 64.8C356.4 45.2 338.1 32 317.4 32L194.6 32c-20.7 0-39 13.2-45.5 32.8zM256 192a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"]\n};\nconst faCameraAlt = faCamera;\nconst faSquareVirus = {\n prefix: 'fas',\n iconName: 'square-virus',\n icon: [448, 512, [], \"e578\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM223.8 93.7c13.3 0 24 10.7 24 24c0 29.3 35.4 43.9 56.1 23.2c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-20.7 20.7-6 56.1 23.2 56.1c13.3 0 24 10.7 24 24s-10.7 24-24 24c-29.3 0-43.9 35.4-23.2 56.1c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-20.7-20.7-56.1-6-56.1 23.2c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-29.3-35.4-43.9-56.1-23.2c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9c20.7-20.7 6-56.1-23.2-56.1c-13.3 0-24-10.7-24-24s10.7-24 24-24c29.3 0 43.9-35.4 23.2-56.1c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0c20.7 20.7 56.1 6 56.1-23.2c0-13.3 10.7-24 24-24zM192 256a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm88 32a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"]\n};\nconst faMeteor = {\n prefix: 'fas',\n iconName: 'meteor',\n icon: [512, 512, [9732], \"f753\", \"M493.7 .9L299.4 75.6l2.3-29.3c1-12.8-12.8-21.5-24-15.1L101.3 133.4C38.6 169.7 0 236.6 0 309C0 421.1 90.9 512 203 512c72.4 0 139.4-38.6 175.7-101.3L480.8 234.3c6.5-11.1-2.2-25-15.1-24l-29.3 2.3L511.1 18.3c.6-1.5 .9-3.2 .9-4.8C512 6 506 0 498.5 0c-1.7 0-3.3 .3-4.8 .9zM192 192a128 128 0 1 1 0 256 128 128 0 1 1 0-256zm0 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm16 96a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"]\n};\nconst faCarOn = {\n prefix: 'fas',\n iconName: 'car-on',\n icon: [512, 512, [], \"e4dd\", \"M280 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24s24-10.7 24-24l0-80zM185.8 224l140.3 0c6.8 0 12.8 4.3 15.1 10.6L360.3 288l-208.6 0 19.1-53.4c2.3-6.4 8.3-10.6 15.1-10.6zm-75.3-10.9L82.2 292.4C62.1 300.9 48 320.8 48 344l0 40 0 64 0 32c0 17.7 14.3 32 32 32l16 0c17.7 0 32-14.3 32-32l0-32 256 0 0 32c0 17.7 14.3 32 32 32l16 0c17.7 0 32-14.3 32-32l0-32 0-64 0-40c0-23.2-14.1-43.1-34.2-51.6l-28.3-79.3C390.1 181.3 360 160 326.2 160l-140.3 0c-33.8 0-64 21.3-75.3 53.1zM128 344a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm232 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM39 39c-9.4 9.4-9.4 24.6 0 33.9l48 48c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L73 39c-9.4-9.4-24.6-9.4-33.9 0zm400 0L391 87c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l48-48c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0z\"]\n};\nconst faSleigh = {\n prefix: 'fas',\n iconName: 'sleigh',\n icon: [640, 512, [], \"f7cc\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l0 160c0 53 43 96 96 96l0 32 64 0 0-32 192 0 0 32 64 0 0-32c53 0 96-43 96-96l0-96c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0-32 0c-17.7 0-32 14.3-32 32l0 41.3c0 30.2-24.5 54.7-54.7 54.7c-75.5 0-145.6-38.9-185.6-102.9l-4.3-6.9C174.2 67.6 125 37.6 70.7 32.7c-2.2-.5-4.4-.7-6.7-.7l-9 0L32 32zM640 384c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 8c0 13.3-10.7 24-24 24L64 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l488 0c48.6 0 88-39.4 88-88l0-8z\"]\n};\nconst faArrowDown19 = {\n prefix: 'fas',\n iconName: 'arrow-down-1-9',\n icon: [576, 512, [\"sort-numeric-asc\", \"sort-numeric-down\"], \"f162\", \"M450.7 38c-8.3-6-19.1-7.7-28.8-4.4l-48 16c-16.8 5.6-25.8 23.7-20.2 40.5s23.7 25.8 40.5 20.2l5.9-2 0 51.6-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l48 0 48 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-16 0 0-96c0-10.3-4.9-19.9-13.3-26zM160 480c9 0 17.5-3.8 23.6-10.4l88-96c11.9-13 11.1-33.3-2-45.2s-33.3-11.1-45.2 2L192 365.7 192 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 301.7L95.6 330.4c-11.9-13-32.2-13.9-45.2-2s-13.9 32.2-2 45.2l88 96C142.5 476.2 151 480 160 480zM418.3 307a32 32 0 1 1 27.4 57.9A32 32 0 1 1 418.3 307zM405.1 419.8l-6.8 9.2c-10.5 14.2-7.5 34.2 6.7 44.8s34.2 7.5 44.8-6.7l48.8-65.8c14-18.9 21.5-41.7 21.5-65.2c0-48.6-39.4-88-88-88s-88 39.4-88 88c0 39.2 25.6 72.4 61.1 83.8z\"]\n};\nconst faSortNumericAsc = faArrowDown19;\nconst faSortNumericDown = faArrowDown19;\nconst faHandHoldingDroplet = {\n prefix: 'fas',\n iconName: 'hand-holding-droplet',\n icon: [576, 512, [\"hand-holding-water\"], \"f4c1\", \"M275.5 6.6C278.3 2.5 283 0 288 0s9.7 2.5 12.5 6.6L366.8 103C378 119.3 384 138.6 384 158.3l0 1.7c0 53-43 96-96 96s-96-43-96-96l0-1.7c0-19.8 6-39 17.2-55.3L275.5 6.6zM568.2 336.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5L192 512 32 512c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l36.8 0 44.9-36c22.7-18.2 50.9-28 80-28l78.3 0 16 0 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0-16 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l120.6 0 119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 384c0 0 0 0 0 0l-.9 0c.3 0 .6 0 .9 0z\"]\n};\nconst faHandHoldingWater = faHandHoldingDroplet;\nconst faWater = {\n prefix: 'fas',\n iconName: 'water',\n icon: [576, 512, [], \"f773\", \"M269.5 69.9c11.1-7.9 25.9-7.9 37 0C329 85.4 356.5 96 384 96c26.9 0 55.4-10.8 77.4-26.1c0 0 0 0 0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 149.7 417 160 384 160c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4C42.8 92.6 61 83.5 75.3 71.6c11.1-9.5 27.3-10.1 39.2-1.7c0 0 0 0 0 0C136.7 85.2 165.1 96 192 96c27.5 0 55-10.6 77.5-26.1zm37 288C329 373.4 356.5 384 384 384c26.9 0 55.4-10.8 77.4-26.1c0 0 0 0 0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 437.7 417 448 384 448c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7c0 0 0 0 0 0C136.7 373.2 165.1 384 192 384c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0zm0-144C329 229.4 356.5 240 384 240c26.9 0 55.4-10.8 77.4-26.1c0 0 0 0 0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 293.7 417 304 384 304c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.5 27.3-10.1 39.2-1.7c0 0 0 0 0 0C136.7 229.2 165.1 240 192 240c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"]\n};\nconst faCalendarCheck = {\n prefix: 'fas',\n iconName: 'calendar-check',\n icon: [448, 512, [], \"f274\", \"M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 48 0c26.5 0 48 21.5 48 48l0 48L0 160l0-48C0 85.5 21.5 64 48 64l48 0 0-32c0-17.7 14.3-32 32-32zM0 192l448 0 0 272c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 192zM329 305c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-95 95-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0L329 305z\"]\n};\nconst faBraille = {\n prefix: 'fas',\n iconName: 'braille',\n icon: [640, 512, [], \"f2a1\", \"M0 96a64 64 0 1 1 128 0A64 64 0 1 1 0 96zM224 272a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm0-80a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM80 416a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zM0 416a64 64 0 1 1 128 0A64 64 0 1 1 0 416zm240 0a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm-80 0a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM64 192a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM224 32a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM352 96a64 64 0 1 1 128 0A64 64 0 1 1 352 96zm240 0a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm-80 0a64 64 0 1 1 128 0A64 64 0 1 1 512 96zm64 176a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm0-80a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm16 224a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm-80 0a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM416 272a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm0-80a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm16 224a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm-80 0a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z\"]\n};\nconst faPrescriptionBottleMedical = {\n prefix: 'fas',\n iconName: 'prescription-bottle-medical',\n icon: [384, 512, [\"prescription-bottle-alt\"], \"f486\", \"M0 32C0 14.3 14.3 0 32 0L352 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64L0 32zm32 96l320 0 0 320c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-320zM160 240l0 48-48 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-48 0 0-48c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z\"]\n};\nconst faPrescriptionBottleAlt = faPrescriptionBottleMedical;\nconst faLandmark = {\n prefix: 'fas',\n iconName: 'landmark',\n icon: [512, 512, [127963], \"f66f\", \"M240.1 4.2c9.8-5.6 21.9-5.6 31.8 0l171.8 98.1L448 104l0 .9 47.9 27.4c12.6 7.2 18.8 22 15.1 36s-16.4 23.8-30.9 23.8L32 192c-14.5 0-27.2-9.8-30.9-23.8s2.5-28.8 15.1-36L64 104.9l0-.9 4.4-1.6L240.1 4.2zM64 224l64 0 0 192 40 0 0-192 64 0 0 192 48 0 0-192 64 0 0 192 40 0 0-192 64 0 0 196.3c.6 .3 1.2 .7 1.8 1.1l48 32c11.7 7.8 17 22.4 12.9 35.9S494.1 512 480 512L32 512c-14.1 0-26.5-9.2-30.6-22.7s1.1-28.1 12.9-35.9l48-32c.6-.4 1.2-.7 1.8-1.1L64 224z\"]\n};\nconst faTruck = {\n prefix: 'fas',\n iconName: 'truck',\n icon: [640, 512, [128666, 9951], \"f0d1\", \"M48 0C21.5 0 0 21.5 0 48L0 368c0 26.5 21.5 48 48 48l16 0c0 53 43 96 96 96s96-43 96-96l128 0c0 53 43 96 96 96s96-43 96-96l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-64 0-32 0-18.7c0-17-6.7-33.3-18.7-45.3L512 114.7c-12-12-28.3-18.7-45.3-18.7L416 96l0-48c0-26.5-21.5-48-48-48L48 0zM416 160l50.7 0L544 237.3l0 18.7-128 0 0-96zM112 416a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm368-48a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"]\n};\nconst faCrosshairs = {\n prefix: 'fas',\n iconName: 'crosshairs',\n icon: [512, 512, [], \"f05b\", \"M256 0c17.7 0 32 14.3 32 32l0 10.4c93.7 13.9 167.7 88 181.6 181.6l10.4 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-10.4 0c-13.9 93.7-88 167.7-181.6 181.6l0 10.4c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-10.4C130.3 455.7 56.3 381.7 42.4 288L32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l10.4 0C56.3 130.3 130.3 56.3 224 42.4L224 32c0-17.7 14.3-32 32-32zM107.4 288c12.5 58.3 58.4 104.1 116.6 116.6l0-20.6c0-17.7 14.3-32 32-32s32 14.3 32 32l0 20.6c58.3-12.5 104.1-58.4 116.6-116.6L384 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l20.6 0C392.1 165.7 346.3 119.9 288 107.4l0 20.6c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-20.6C165.7 119.9 119.9 165.7 107.4 224l20.6 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-20.6 0zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nconst faPersonCane = {\n prefix: 'fas',\n iconName: 'person-cane',\n icon: [448, 512, [], \"e53c\", \"M272 48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm-8 187.3l47.4 57.1c11.3 13.6 31.5 15.5 45.1 4.2s15.5-31.5 4.2-45.1l-73.7-88.9c-18.2-22-45.3-34.7-73.9-34.7l-35.9 0c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L120 256.9 120 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-244.7zM352 376c0-4.4 3.6-8 8-8s8 3.6 8 8l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112c0-30.9-25.1-56-56-56s-56 25.1-56 56l0 8c0 13.3 10.7 24 24 24s24-10.7 24-24l0-8z\"]\n};\nconst faTent = {\n prefix: 'fas',\n iconName: 'tent',\n icon: [576, 512, [], \"e57d\", \"M269.4 6C280.5-2 295.5-2 306.6 6l224 160c7.4 5.3 12.2 13.5 13.2 22.5l32 288c1 9-1.9 18.1-8 24.9s-14.7 10.7-23.8 10.7l-80 0-28.2 0c-12.1 0-23.2-6.8-28.6-17.7L306.7 293.5c-1.7-3.4-5.1-5.5-8.8-5.5c-5.5 0-9.9 4.4-9.9 9.9L288 480c0 17.7-14.3 32-32 32l-16 0L32 512c-9.1 0-17.8-3.9-23.8-10.7s-9-15.8-8-24.9l32-288c1-9 5.8-17.2 13.2-22.5L269.4 6z\"]\n};\nconst faVestPatches = {\n prefix: 'fas',\n iconName: 'vest-patches',\n icon: [448, 512, [], \"e086\", \"M151.2 69.7l55.9 167.7-11 33.1c-2.7 8.2-4.1 16.7-4.1 25.3L192 464c0 14.5 3.9 28.2 10.7 39.9C195 509 185.9 512 176 512L48 512c-26.5 0-48-21.5-48-48L0 270.5c0-9.5 2.8-18.7 8.1-26.6l47.9-71.8c5.3-7.9 8.1-17.1 8.1-26.6L64 128l0-73.7L64 48C64 21.5 85.5 0 112 0l4.5 0c.2 0 .4 0 .6 0c.4 0 .8 0 1.2 0c18.8 0 34.1 9.7 44.1 18.8C171.6 27.2 190.8 40 224 40s52.4-12.8 61.7-21.2C295.7 9.7 311 0 329.7 0c.4 0 .8 0 1.2 0c.2 0 .4 0 .6 0L336 0c26.5 0 48 21.5 48 48l0 6.3 0 73.7 0 17.5c0 9.5 2.8 18.7 8.1 26.6l47.9 71.8c5.3 7.9 8.1 17.1 8.1 26.6L448 464c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-168.2c0-5.2 .8-10.3 2.5-15.2L296.8 69.7C279.4 79.7 255.4 88 224 88s-55.4-8.3-72.8-18.3zM96 456a40 40 0 1 0 0-80 40 40 0 1 0 0 80zM63.5 255.5c-4.7 4.7-4.7 12.3 0 17L79 288 63.5 303.5c-4.7 4.7-4.7 12.3 0 17s12.3 4.7 17 0L96 305l15.5 15.5c4.7 4.7 12.3 4.7 17 0s4.7-12.3 0-17L113 288l15.5-15.5c4.7-4.7 4.7-12.3 0-17s-12.3-4.7-17 0L96 271 80.5 255.5c-4.7-4.7-12.3-4.7-17 0zM304 280l0 8 0 32c0 8.8 7.2 16 16 16l32 0 8 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0 0-8c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"]\n};\nconst faCheckDouble = {\n prefix: 'fas',\n iconName: 'check-double',\n icon: [448, 512, [], \"f560\", \"M342.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L160 178.7l-57.4-57.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l80 80c12.5 12.5 32.8 12.5 45.3 0l160-160zm96 128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L160 402.7 54.6 297.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l256-256z\"]\n};\nconst faArrowDownAZ = {\n prefix: 'fas',\n iconName: 'arrow-down-a-z',\n icon: [576, 512, [\"sort-alpha-asc\", \"sort-alpha-down\"], \"f15d\", \"M183.6 469.6C177.5 476.2 169 480 160 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L128 365.7 128 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 301.7 32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 320c0-17.7 14.3-32 32-32l128 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9L429.3 416l50.7 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-128 0c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9L402.7 352 352 352c-17.7 0-32-14.3-32-32zM416 32c12.1 0 23.2 6.8 28.6 17.7l64 128 16 32c7.9 15.8 1.5 35-14.3 42.9s-35 1.5-42.9-14.3L460.2 224l-88.4 0-7.2 14.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l16-32 64-128C392.8 38.8 403.9 32 416 32zM395.8 176l40.4 0L416 135.6 395.8 176z\"]\n};\nconst faSortAlphaAsc = faArrowDownAZ;\nconst faSortAlphaDown = faArrowDownAZ;\nconst faMoneyBillWheat = {\n prefix: 'fas',\n iconName: 'money-bill-wheat',\n icon: [512, 512, [], \"e52a\", \"M176 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80c0-8.8 7.2-16 16-16zM56 16l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L56 64C42.7 64 32 53.3 32 40s10.7-24 24-24zM24 88l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 136c-13.3 0-24-10.7-24-24S10.7 88 24 88zm8 96c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24zM272 16c0-8.8 7.2-16 16-16c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80zM400 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80c0-8.8 7.2-16 16-16zm80 144c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM352 128c8.8 0 16 7.2 16 16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm-96 16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM0 304c0-26.5 21.5-48 48-48l416 0c26.5 0 48 21.5 48 48l0 160c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 304zM48 416l0 48 48 0c0-26.5-21.5-48-48-48zM96 304l-48 0 0 48c26.5 0 48-21.5 48-48zM464 416c-26.5 0-48 21.5-48 48l48 0 0-48zM416 304c0 26.5 21.5 48 48 48l0-48-48 0zm-96 80a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z\"]\n};\nconst faCookie = {\n prefix: 'fas',\n iconName: 'cookie',\n icon: [512, 512, [127850], \"f563\", \"M247.2 17c-22.1-3.1-44.6 .9-64.4 11.4l-74 39.5C89.1 78.4 73.2 94.9 63.4 115L26.7 190.6c-9.8 20.1-13 42.9-9.1 64.9l14.5 82.8c3.9 22.1 14.6 42.3 30.7 57.9l60.3 58.4c16.1 15.6 36.6 25.6 58.7 28.7l83 11.7c22.1 3.1 44.6-.9 64.4-11.4l74-39.5c19.7-10.5 35.6-27 45.4-47.2l36.7-75.5c9.8-20.1 13-42.9 9.1-64.9l-14.6-82.8c-3.9-22.1-14.6-42.3-30.7-57.9L388.9 57.5c-16.1-15.6-36.6-25.6-58.7-28.7L247.2 17zM208 144a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM144 336a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm224-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nconst faArrowRotateLeft = {\n prefix: 'fas',\n iconName: 'arrow-rotate-left',\n icon: [512, 512, [8634, \"arrow-left-rotate\", \"arrow-rotate-back\", \"arrow-rotate-backward\", \"undo\"], \"f0e2\", \"M125.7 160l50.3 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L48 224c-17.7 0-32-14.3-32-32L16 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 51.2L97.6 97.6c87.5-87.5 229.3-87.5 316.8 0s87.5 229.3 0 316.8s-229.3 87.5-316.8 0c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c62.5 62.5 163.8 62.5 226.3 0s62.5-163.8 0-226.3s-163.8-62.5-226.3 0L125.7 160z\"]\n};\nconst faArrowLeftRotate = faArrowRotateLeft;\nconst faArrowRotateBack = faArrowRotateLeft;\nconst faArrowRotateBackward = faArrowRotateLeft;\nconst faUndo = faArrowRotateLeft;\nconst faHardDrive = {\n prefix: 'fas',\n iconName: 'hard-drive',\n icon: [512, 512, [128436, \"hdd\"], \"f0a0\", \"M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 184.4c-17-15.2-39.4-24.4-64-24.4L64 256c-24.6 0-47 9.2-64 24.4L0 96zM64 288l384 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64zM320 416a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm128-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"]\n};\nconst faHdd = faHardDrive;\nconst faFaceGrinSquintTears = {\n prefix: 'fas',\n iconName: 'face-grin-squint-tears',\n icon: [512, 512, [129315, \"grin-squint-tears\"], \"f586\", \"M426.8 14.2C446-5 477.5-4.6 497.1 14.9s20 51 .7 70.3c-6.8 6.8-21.4 12.4-37.4 16.7c-16.3 4.4-34.1 7.5-46.3 9.3c-1.6 .2-3.1 .5-4.6 .6c-4.9 .8-9.1-2.8-9.5-7.4c-.1-.7 0-1.4 .1-2.1c1.6-11.2 4.6-29.6 9-47c.3-1.3 .7-2.6 1-3.9c4.3-15.9 9.8-30.5 16.7-37.4zm-44.7 19c-1.5 4.8-2.9 9.6-4.1 14.3c-4.8 18.9-8 38.5-9.7 50.3c-4 26.8 18.9 49.7 45.7 45.8c11.9-1.6 31.5-4.8 50.4-9.7c4.7-1.2 9.5-2.5 14.3-4.1C534.2 227.5 520.2 353.8 437 437c-83.2 83.2-209.5 97.2-307.2 41.8c1.5-4.8 2.8-9.6 4-14.3c4.8-18.9 8-38.5 9.7-50.3c4-26.8-18.9-49.7-45.7-45.8c-11.9 1.6-31.5 4.8-50.4 9.7c-4.7 1.2-9.5 2.5-14.3 4.1C-22.2 284.5-8.2 158.2 75 75C158.2-8.3 284.5-22.2 382.2 33.2zM51.5 410.1c18.5-5 38.8-8.3 50.9-10c.4-.1 .7-.1 1-.1c5.1-.2 9.2 4.3 8.4 9.6c-1.7 12.1-5 32.4-10 50.9C97.6 476.4 92 491 85.2 497.8C66 517 34.5 516.6 14.9 497.1s-20-51-.7-70.3c6.8-6.8 21.4-12.4 37.4-16.7zM416.9 209c-4.7-11.9-20.8-11-26.8 .3c-19 35.5-45 70.8-77.5 103.3S244.8 371.1 209.3 390c-11.3 6-12.2 22.1-.3 26.8c57.6 22.9 125.8 11 172.3-35.5s58.4-114.8 35.5-172.3zM87.1 285.1c2 2 4.6 3.2 7.3 3.4l56.1 5.1 5.1 56.1c.3 2.8 1.5 5.4 3.4 7.3c6.3 6.3 17.2 3.6 19.8-4.9l29.7-97.4c3.5-11.6-7.3-22.5-19-19L92 265.3c-8.6 2.6-11.3 13.4-4.9 19.8zM265.3 92l-29.7 97.4c-3.5 11.6 7.3 22.5 19 19l97.4-29.7c8.6-2.6 11.3-13.4 4.9-19.8c-2-2-4.6-3.2-7.3-3.4l-56.1-5.1-5.1-56.1c-.3-2.8-1.5-5.4-3.4-7.3c-6.3-6.3-17.2-3.6-19.8 4.9z\"]\n};\nconst faGrinSquintTears = faFaceGrinSquintTears;\nconst faDumbbell = {\n prefix: 'fas',\n iconName: 'dumbbell',\n icon: [640, 512, [], \"f44b\", \"M96 64c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 160 0 64 0 160c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-64-32 0c-17.7 0-32-14.3-32-32l0-64c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-64c0-17.7 14.3-32 32-32l32 0 0-64zm448 0l0 64 32 0c17.7 0 32 14.3 32 32l0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 64c0 17.7-14.3 32-32 32l-32 0 0 64c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-160 0-64 0-160c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32zM416 224l0 64-192 0 0-64 192 0z\"]\n};\nconst faRectangleList = {\n prefix: 'fas',\n iconName: 'rectangle-list',\n icon: [576, 512, [\"list-alt\"], \"f022\", \"M0 96C0 60.7 28.7 32 64 32l448 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM128 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm32-128a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM128 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm96-248c-13.3 0-24 10.7-24 24s10.7 24 24 24l224 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-224 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l224 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-224 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l224 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-224 0z\"]\n};\nconst faListAlt = faRectangleList;\nconst faTarpDroplet = {\n prefix: 'fas',\n iconName: 'tarp-droplet',\n icon: [576, 512, [], \"e57c\", \"M288 160c-35.3 0-64-26.9-64-60c0-24 33.7-70.1 52.2-93.5c6.1-7.7 17.5-7.7 23.6 0C318.3 29.9 352 76 352 100c0 33.1-28.7 60-64 60zM64 128l133.5 0c13.2 37.3 48.7 64 90.5 64s77.4-26.7 90.5-64L512 128c35.3 0 64 28.7 64 64l0 160-128 0c-17.7 0-32 14.3-32 32l0 128L64 512c-35.3 0-64-28.7-64-64L0 192c0-35.3 28.7-64 64-64zM448 512l0-128 128 0L448 512zM96 256a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nconst faHouseMedicalCircleCheck = {\n prefix: 'fas',\n iconName: 'house-medical-circle-check',\n icon: [640, 512, [], \"e511\", \"M320 368c0 59.5 29.5 112.1 74.8 144l-266.7 0c-35.3 0-64-28.7-64-64l0-160.4-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L522.1 193.9c-8.5-1.3-17.3-1.9-26.1-1.9c-54.7 0-103.5 24.9-135.8 64L320 256l0-48c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 48-48 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zm32 0a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm211.3-43.3c-6.2-6.2-16.4-6.2-22.6 0L480 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z\"]\n};\nconst faPersonSkiingNordic = {\n prefix: 'fas',\n iconName: 'person-skiing-nordic',\n icon: [576, 512, [\"skiing-nordic\"], \"f7ca\", \"M336 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM227.2 160c1.9 0 3.8 .1 5.6 .3L201.6 254c-9.3 28 1.7 58.8 26.8 74.5l86.2 53.9L291.3 464l-88.5 0 41.1-88.1-32.4-20.3c-7.8-4.9-14.7-10.7-20.6-17.3L132.2 464l-32.4 0 54.2-257.6c4.6-1.5 9-4.1 12.7-7.8l23.1-23.1c9.9-9.9 23.4-15.5 37.5-15.5zM121.4 198.6c.4 .4 .8 .8 1.3 1.2L67 464l-43 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l135.3 0c.5 0 .9 0 1.4 0l158.6 0c.5 0 1 0 1.4 0L504 512c39.8 0 72-32.2 72-72l0-8c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 8c0 13.3-10.7 24-24 24l-69.4 0 27.6-179.3c10.5-5.2 17.8-16.1 17.8-28.7c0-17.7-14.3-32-32-32l-21.3 0c-12.9 0-24.6-7.8-29.5-19.7l-6.3-15c-14.6-35.1-44.1-61.9-80.5-73.1l-48.7-15c-11.1-3.4-22.7-5.2-34.4-5.2c-31 0-60.8 12.3-82.7 34.3l-23.1 23.1c-12.5 12.5-12.5 32.8 0 45.3zm308 89.4L402.3 464l-44.4 0 21.6-75.6c5.9-20.6-2.6-42.6-20.7-53.9L302 299l30.9-82.4 5.1 12.3C353 264.7 387.9 288 426.7 288l2.7 0z\"]\n};\nconst faSkiingNordic = faPersonSkiingNordic;\nconst faCalendarPlus = {\n prefix: 'fas',\n iconName: 'calendar-plus',\n icon: [448, 512, [], \"f271\", \"M96 32l0 32L48 64C21.5 64 0 85.5 0 112l0 48 448 0 0-48c0-26.5-21.5-48-48-48l-48 0 0-32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 32L160 64l0-32c0-17.7-14.3-32-32-32S96 14.3 96 32zM448 192L0 192 0 464c0 26.5 21.5 48 48 48l352 0c26.5 0 48-21.5 48-48l0-272zM224 248c13.3 0 24 10.7 24 24l0 56 56 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-56 0 0 56c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-56-56 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l56 0 0-56c0-13.3 10.7-24 24-24z\"]\n};\nconst faPlaneArrival = {\n prefix: 'fas',\n iconName: 'plane-arrival',\n icon: [640, 512, [128748], \"f5af\", \"M.3 166.9L0 68C0 57.7 9.5 50.1 19.5 52.3l35.6 7.9c10.6 2.3 19.2 9.9 23 20L96 128l127.3 37.6L181.8 20.4C178.9 10.2 186.6 0 197.2 0l40.1 0c11.6 0 22.2 6.2 27.9 16.3l109 193.8 107.2 31.7c15.9 4.7 30.8 12.5 43.7 22.8l34.4 27.6c24 19.2 18.1 57.3-10.7 68.2c-41.2 15.6-86.2 18.1-128.8 7L121.7 289.8c-11.1-2.9-21.2-8.7-29.3-16.9L9.5 189.4c-5.9-6-9.3-14.1-9.3-22.5zM32 448l576 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32zm96-80a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm128-16a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nconst faCircleLeft = {\n prefix: 'fas',\n iconName: 'circle-left',\n icon: [512, 512, [61840, \"arrow-alt-circle-left\"], \"f359\", \"M512 256A256 256 0 1 0 0 256a256 256 0 1 0 512 0zM116.7 244.7l112-112c4.6-4.6 11.5-5.9 17.4-3.5s9.9 8.3 9.9 14.8l0 64 96 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32l-96 0 0 64c0 6.5-3.9 12.3-9.9 14.8s-12.9 1.1-17.4-3.5l-112-112c-6.2-6.2-6.2-16.4 0-22.6z\"]\n};\nconst faArrowAltCircleLeft = faCircleLeft;\nconst faTrainSubway = {\n prefix: 'fas',\n iconName: 'train-subway',\n icon: [448, 512, [\"subway\"], \"f239\", \"M96 0C43 0 0 43 0 96L0 352c0 48 35.2 87.7 81.1 94.9l-46 46C28.1 499.9 33.1 512 43 512l39.7 0c8.5 0 16.6-3.4 22.6-9.4L160 448l128 0 54.6 54.6c6 6 14.1 9.4 22.6 9.4l39.7 0c10 0 15-12.1 7.9-19.1l-46-46c46-7.1 81.1-46.9 81.1-94.9l0-256c0-53-43-96-96-96L96 0zM64 128c0-17.7 14.3-32 32-32l80 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-80 0c-17.7 0-32-14.3-32-32l0-96zM272 96l80 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-80 0c-17.7 0-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32zM64 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm288-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nconst faSubway = faTrainSubway;\nconst faChartGantt = {\n prefix: 'fas',\n iconName: 'chart-gantt',\n icon: [512, 512, [], \"e0e4\", \"M32 32c17.7 0 32 14.3 32 32l0 336c0 8.8 7.2 16 16 16l400 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L80 480c-44.2 0-80-35.8-80-80L0 64C0 46.3 14.3 32 32 32zm96 96c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32zm96 64l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm160 96l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nconst faIndianRupeeSign = {\n prefix: 'fas',\n iconName: 'indian-rupee-sign',\n icon: [320, 512, [\"indian-rupee\", \"inr\"], \"e1bc\", \"M0 64C0 46.3 14.3 32 32 32l64 0 16 0 176 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-56.2 0c9.6 14.4 16.7 30.6 20.7 48l35.6 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-35.6 0c-13.2 58.3-61.9 103.2-122.2 110.9L274.6 422c14.4 10.3 17.7 30.3 7.4 44.6s-30.3 17.7-44.6 7.4L13.4 314C2.1 306-2.7 291.5 1.5 278.2S18.1 256 32 256l80 0c32.8 0 61-19.7 73.3-48L32 208c-17.7 0-32-14.3-32-32s14.3-32 32-32l153.3 0C173 115.7 144.8 96 112 96L96 96 32 96C14.3 96 0 81.7 0 64z\"]\n};\nconst faIndianRupee = faIndianRupeeSign;\nconst faInr = faIndianRupeeSign;\nconst faCropSimple = {\n prefix: 'fas',\n iconName: 'crop-simple',\n icon: [512, 512, [\"crop-alt\"], \"f565\", \"M128 32c0-17.7-14.3-32-32-32S64 14.3 64 32l0 32L32 64C14.3 64 0 78.3 0 96s14.3 32 32 32l32 0 0 256c0 35.3 28.7 64 64 64l224 0 0-64-224 0 0-352zM384 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-256c0-35.3-28.7-64-64-64L160 64l0 64 224 0 0 352z\"]\n};\nconst faCropAlt = faCropSimple;\nconst faMoneyBill1 = {\n prefix: 'fas',\n iconName: 'money-bill-1',\n icon: [576, 512, [\"money-bill-alt\"], \"f3d1\", \"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm64 320l-64 0 0-64c35.3 0 64 28.7 64 64zM64 192l0-64 64 0c0 35.3-28.7 64-64 64zM448 384c0-35.3 28.7-64 64-64l0 64-64 0zm64-192c-35.3 0-64-28.7-64-64l64 0 0 64zM176 256a112 112 0 1 1 224 0 112 112 0 1 1 -224 0zm76-48c0 9.7 6.9 17.7 16 19.6l0 48.4-4 0c-11 0-20 9-20 20s9 20 20 20l24 0 24 0c11 0 20-9 20-20s-9-20-20-20l-4 0 0-68c0-11-9-20-20-20l-16 0c-11 0-20 9-20 20z\"]\n};\nconst faMoneyBillAlt = faMoneyBill1;\nconst faLeftLong = {\n prefix: 'fas',\n iconName: 'left-long',\n icon: [512, 512, [\"long-arrow-alt-left\"], \"f30a\", \"M177.5 414c-8.8 3.8-19 2-26-4.6l-144-136C2.7 268.9 0 262.6 0 256s2.7-12.9 7.5-17.4l144-136c7-6.6 17.2-8.4 26-4.6s14.5 12.5 14.5 22l0 72 288 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-288 0 0 72c0 9.6-5.7 18.2-14.5 22z\"]\n};\nconst faLongArrowAltLeft = faLeftLong;\nconst faDna = {\n prefix: 'fas',\n iconName: 'dna',\n icon: [448, 512, [129516], \"f471\", \"M416 0c17.7 0 32 14.3 32 32c0 59.8-30.3 107.5-69.4 146.6c-28 28-62.5 53.5-97.3 77.4l-2.5 1.7c-11.9 8.1-23.8 16.1-35.5 23.9c0 0 0 0 0 0s0 0 0 0s0 0 0 0l-1.6 1c-6 4-11.9 7.9-17.8 11.9c-20.9 14-40.8 27.7-59.3 41.5l118.5 0c-9.8-7.4-20.1-14.7-30.7-22.1l7-4.7 3-2c15.1-10.1 30.9-20.6 46.7-31.6c25 18.1 48.9 37.3 69.4 57.7C417.7 372.5 448 420.2 448 480c0 17.7-14.3 32-32 32s-32-14.3-32-32L64 480c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-59.8 30.3-107.5 69.4-146.6c28-28 62.5-53.5 97.3-77.4c-34.8-23.9-69.3-49.3-97.3-77.4C30.3 139.5 0 91.8 0 32C0 14.3 14.3 0 32 0S64 14.3 64 32l320 0c0-17.7 14.3-32 32-32zM338.6 384l-229.2 0c-10.1 10.6-18.6 21.3-25.5 32l280.2 0c-6.8-10.7-15.3-21.4-25.5-32zM109.4 128l229.2 0c10.1-10.7 18.6-21.3 25.5-32L83.9 96c6.8 10.7 15.3 21.3 25.5 32zm55.4 48c18.4 13.8 38.4 27.5 59.3 41.5c20.9-14 40.8-27.7 59.3-41.5l-118.5 0z\"]\n};\nconst faVirusSlash = {\n prefix: 'fas',\n iconName: 'virus-slash',\n icon: [640, 512, [], \"e075\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-154.3-121c-2-30.1 20.8-60.1 56-60.1l11.5 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-11.5 0c-49.9 0-74.9-60.3-39.6-95.6l8.2-8.2c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-8.2 8.2C412.3 118.4 352 93.4 352 43.5L352 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 11.5c0 49.9-60.3 74.9-95.6 39.6L184.2 75c-12.5-12.5-32.8-12.5-45.3 0c-1.6 1.6-3.1 3.4-4.3 5.3L38.8 5.1zm225.8 177c6.9-3.9 14.9-6.1 23.4-6.1c26.5 0 48 21.5 48 48c0 4.4-.6 8.7-1.7 12.7l-69.7-54.6zM402 412.7L144.7 210c-9.5 8.5-22.2 14-37.2 14L96 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l11.5 0c49.9 0 74.9 60.3 39.6 95.6l-8.2 8.2c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l8.2-8.2c35.3-35.3 95.6-10.3 95.6 39.6l0 11.5c0 17.7 14.3 32 32 32s32-14.3 32-32l0-11.5c0-31.2 23.6-52.7 50-55.7z\"]\n};\nconst faMinus = {\n prefix: 'fas',\n iconName: 'minus',\n icon: [448, 512, [8211, 8722, 10134, \"subtract\"], \"f068\", \"M432 256c0 17.7-14.3 32-32 32L48 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l352 0c17.7 0 32 14.3 32 32z\"]\n};\nconst faSubtract = faMinus;\nconst faChess = {\n prefix: 'fas',\n iconName: 'chess',\n icon: [512, 512, [], \"f439\", \"M144 16c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 16L96 32c-8.8 0-16 7.2-16 16s7.2 16 16 16l16 0 0 32L60.2 96C49.1 96 40 105.1 40 116.2c0 2.5 .5 4.9 1.3 7.3L73.8 208 72 208c-13.3 0-24 10.7-24 24s10.7 24 24 24l4 0L60 384l136 0L180 256l4 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-1.8 0 32.5-84.5c.9-2.3 1.3-4.8 1.3-7.3c0-11.2-9.1-20.2-20.2-20.2L144 96l0-32 16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0 0-16zM48 416L4.8 473.6C1.7 477.8 0 482.8 0 488c0 13.3 10.7 24 24 24l208 0c13.3 0 24-10.7 24-24c0-5.2-1.7-10.2-4.8-14.4L208 416 48 416zm288 0l-43.2 57.6c-3.1 4.2-4.8 9.2-4.8 14.4c0 13.3 10.7 24 24 24l176 0c13.3 0 24-10.7 24-24c0-5.2-1.7-10.2-4.8-14.4L464 416l-128 0zM304 208l0 51.9c0 7.8 2.8 15.3 8 21.1L339.2 312 337 384l125.5 0-3.3-72 28.3-30.8c5.4-5.9 8.5-13.6 8.5-21.7l0-51.5c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16l0 16-24 0 0-16c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16l0 16-24 0 0-16c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16zm80 96c0-8.8 7.2-16 16-16s16 7.2 16 16l0 32-32 0 0-32z\"]\n};\nconst faArrowLeftLong = {\n prefix: 'fas',\n iconName: 'arrow-left-long',\n icon: [512, 512, [\"long-arrow-left\"], \"f177\", \"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 288 480 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-370.7 0 73.4-73.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-128 128z\"]\n};\nconst faLongArrowLeft = faArrowLeftLong;\nconst faPlugCircleCheck = {\n prefix: 'fas',\n iconName: 'plug-circle-check',\n icon: [576, 512, [], \"e55c\", \"M96 0C78.3 0 64 14.3 64 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c0 77.4 55 142 128 156.8l0 67.2c0 17.7 14.3 32 32 32s32-14.3 32-32l0-67.2c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32L32 160zM576 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L416 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"]\n};\nconst faStreetView = {\n prefix: 'fas',\n iconName: 'street-view',\n icon: [512, 512, [], \"f21d\", \"M320 64A64 64 0 1 0 192 64a64 64 0 1 0 128 0zm-96 96c-35.3 0-64 28.7-64 64l0 48c0 17.7 14.3 32 32 32l1.8 0 11.1 99.5c1.8 16.2 15.5 28.5 31.8 28.5l38.7 0c16.3 0 30-12.3 31.8-28.5L318.2 304l1.8 0c17.7 0 32-14.3 32-32l0-48c0-35.3-28.7-64-64-64l-64 0zM132.3 394.2c13-2.4 21.7-14.9 19.3-27.9s-14.9-21.7-27.9-19.3c-32.4 5.9-60.9 14.2-82 24.8c-10.5 5.3-20.3 11.7-27.8 19.6C6.4 399.5 0 410.5 0 424c0 21.4 15.5 36.1 29.1 45c14.7 9.6 34.3 17.3 56.4 23.4C130.2 504.7 190.4 512 256 512s125.8-7.3 170.4-19.6c22.1-6.1 41.8-13.8 56.4-23.4c13.7-8.9 29.1-23.6 29.1-45c0-13.5-6.4-24.5-14-32.6c-7.5-7.9-17.3-14.3-27.8-19.6c-21-10.6-49.5-18.9-82-24.8c-13-2.4-25.5 6.3-27.9 19.3s6.3 25.5 19.3 27.9c30.2 5.5 53.7 12.8 69 20.5c3.2 1.6 5.8 3.1 7.9 4.5c3.6 2.4 3.6 7.2 0 9.6c-8.8 5.7-23.1 11.8-43 17.3C374.3 457 318.5 464 256 464s-118.3-7-157.7-17.9c-19.9-5.5-34.2-11.6-43-17.3c-3.6-2.4-3.6-7.2 0-9.6c2.1-1.4 4.8-2.9 7.9-4.5c15.3-7.7 38.8-14.9 69-20.5z\"]\n};\nconst faFrancSign = {\n prefix: 'fas',\n iconName: 'franc-sign',\n icon: [320, 512, [], \"e18f\", \"M80 32C62.3 32 48 46.3 48 64l0 160 0 96-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l16 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 80 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-80 0 0-64 144 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-144 0 0-96 176 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 32z\"]\n};\nconst faVolumeOff = {\n prefix: 'fas',\n iconName: 'volume-off',\n icon: [320, 512, [], \"f026\", \"M320 64c0-12.6-7.4-24-18.9-29.2s-25-3.1-34.4 5.3L131.8 160 64 160c-35.3 0-64 28.7-64 64l0 64c0 35.3 28.7 64 64 64l67.8 0L266.7 471.9c9.4 8.4 22.9 10.4 34.4 5.3S320 460.6 320 448l0-384z\"]\n};\nconst faHandsAslInterpreting = {\n prefix: 'fas',\n iconName: 'hands-asl-interpreting',\n icon: [640, 512, [\"american-sign-language-interpreting\", \"asl-interpreting\", \"hands-american-sign-language-interpreting\"], \"f2a3\", \"M156.6 46.3c7.9-15.8 1.5-35-14.3-42.9s-35-1.5-42.9 14.3L13.5 189.4C4.6 207.2 0 226.8 0 246.7L0 256c0 70.7 57.3 128 128 128l72 0 8 0 0-.3c35.2-2.7 65.4-22.8 82.1-51.7c8.8-15.3 3.6-34.9-11.7-43.7s-34.9-3.6-43.7 11.7c-7 12-19.9 20-34.7 20c-22.1 0-40-17.9-40-40s17.9-40 40-40c14.8 0 27.7 8 34.7 20c8.8 15.3 28.4 20.5 43.7 11.7s20.5-28.4 11.7-43.7c-12.8-22.1-33.6-39.1-58.4-47.1l80.8-22c17-4.6 27.1-22.2 22.5-39.3s-22.2-27.1-39.3-22.5L194.9 124.6l81.6-68c13.6-11.3 15.4-31.5 4.1-45.1S249.1-3.9 235.5 7.4L133.6 92.3l23-46zM483.4 465.7c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l85.9-171.7c8.9-17.8 13.5-37.4 13.5-57.2l0-9.3c0-70.7-57.3-128-128-128l-72 0-8 0 0 .3c-35.2 2.7-65.4 22.8-82.1 51.7c-8.9 15.3-3.6 34.9 11.7 43.7s34.9 3.6 43.7-11.7c7-12 19.9-20 34.7-20c22.1 0 40 17.9 40 40s-17.9 40-40 40c-14.8 0-27.7-8-34.7-20c-8.9-15.3-28.4-20.5-43.7-11.7s-20.5 28.4-11.7 43.7c12.8 22.1 33.6 39.1 58.4 47.1l-80.8 22c-17.1 4.7-27.1 22.2-22.5 39.3s22.2 27.1 39.3 22.5l100.7-27.5-81.6 68c-13.6 11.3-15.4 31.5-4.1 45.1s31.5 15.4 45.1 4.1l101.9-84.9-23 46z\"]\n};\nconst faAmericanSignLanguageInterpreting = faHandsAslInterpreting;\nconst faAslInterpreting = faHandsAslInterpreting;\nconst faHandsAmericanSignLanguageInterpreting = faHandsAslInterpreting;\nconst faGear = {\n prefix: 'fas',\n iconName: 'gear',\n icon: [512, 512, [9881, \"cog\"], \"f013\", \"M495.9 166.6c3.2 8.7 .5 18.4-6.4 24.6l-43.3 39.4c1.1 8.3 1.7 16.8 1.7 25.4s-.6 17.1-1.7 25.4l43.3 39.4c6.9 6.2 9.6 15.9 6.4 24.6c-4.4 11.9-9.7 23.3-15.8 34.3l-4.7 8.1c-6.6 11-14 21.4-22.1 31.2c-5.9 7.2-15.7 9.6-24.5 6.8l-55.7-17.7c-13.4 10.3-28.2 18.9-44 25.4l-12.5 57.1c-2 9.1-9 16.3-18.2 17.8c-13.8 2.3-28 3.5-42.5 3.5s-28.7-1.2-42.5-3.5c-9.2-1.5-16.2-8.7-18.2-17.8l-12.5-57.1c-15.8-6.5-30.6-15.1-44-25.4L83.1 425.9c-8.8 2.8-18.6 .3-24.5-6.8c-8.1-9.8-15.5-20.2-22.1-31.2l-4.7-8.1c-6.1-11-11.4-22.4-15.8-34.3c-3.2-8.7-.5-18.4 6.4-24.6l43.3-39.4C64.6 273.1 64 264.6 64 256s.6-17.1 1.7-25.4L22.4 191.2c-6.9-6.2-9.6-15.9-6.4-24.6c4.4-11.9 9.7-23.3 15.8-34.3l4.7-8.1c6.6-11 14-21.4 22.1-31.2c5.9-7.2 15.7-9.6 24.5-6.8l55.7 17.7c13.4-10.3 28.2-18.9 44-25.4l12.5-57.1c2-9.1 9-16.3 18.2-17.8C227.3 1.2 241.5 0 256 0s28.7 1.2 42.5 3.5c9.2 1.5 16.2 8.7 18.2 17.8l12.5 57.1c15.8 6.5 30.6 15.1 44 25.4l55.7-17.7c8.8-2.8 18.6-.3 24.5 6.8c8.1 9.8 15.5 20.2 22.1 31.2l4.7 8.1c6.1 11 11.4 22.4 15.8 34.3zM256 336a80 80 0 1 0 0-160 80 80 0 1 0 0 160z\"]\n};\nconst faCog = faGear;\nconst faDropletSlash = {\n prefix: 'fas',\n iconName: 'droplet-slash',\n icon: [640, 512, [\"tint-slash\"], \"f5c7\", \"M320 512c53.2 0 101.4-21.6 136.1-56.6l-298.3-235C140 257.1 128 292.3 128 320c0 106 86 192 192 192zM505.2 370.7c4.4-16.2 6.8-33.1 6.8-50.7c0-91.2-130.2-262.3-166.6-308.3C339.4 4.2 330.5 0 320.9 0l-1.8 0c-9.6 0-18.5 4.2-24.5 11.7C277.8 33 240.7 81.3 205.8 136L38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L505.2 370.7zM224 336c0 44.2 35.8 80 80 80c8.8 0 16 7.2 16 16s-7.2 16-16 16c-61.9 0-112-50.1-112-112c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nconst faTintSlash = faDropletSlash;\nconst faMosque = {\n prefix: 'fas',\n iconName: 'mosque',\n icon: [640, 512, [128332], \"f678\", \"M400 0c5 0 9.8 2.4 12.8 6.4c34.7 46.3 78.1 74.9 133.5 111.5c0 0 0 0 0 0s0 0 0 0c5.2 3.4 10.5 7 16 10.6c28.9 19.2 45.7 51.7 45.7 86.1c0 28.6-11.3 54.5-29.8 73.4l-356.4 0c-18.4-19-29.8-44.9-29.8-73.4c0-34.4 16.7-66.9 45.7-86.1c5.4-3.6 10.8-7.1 16-10.6c0 0 0 0 0 0s0 0 0 0C309.1 81.3 352.5 52.7 387.2 6.4c3-4 7.8-6.4 12.8-6.4zM288 512l0-72c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 72-48 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32l416 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-48 0 0-72c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 72-64 0 0-58c0-19-8.4-37-23-49.2L400 384l-25 20.8C360.4 417 352 435 352 454l0 58-64 0zM70.4 5.2c5.7-4.3 13.5-4.3 19.2 0l16 12C139.8 42.9 160 83.2 160 126l0 2L0 128l0-2C0 83.2 20.2 42.9 54.4 17.2l16-12zM0 160l160 0 0 136.6c-19.1 11.1-32 31.7-32 55.4l0 128c0 9.6 2.1 18.6 5.8 26.8c-6.6 3.4-14 5.2-21.8 5.2l-64 0c-26.5 0-48-21.5-48-48L0 176l0-16z\"]\n};\nconst faMosquito = {\n prefix: 'fas',\n iconName: 'mosquito',\n icon: [640, 512, [], \"e52b\", \"M463.7 505.9c9.8-8.9 10.7-24.3 2.1-34.3l-42.1-49 0-54.7c0-5.5-1.8-10.8-5.1-15.1L352 266.3l0-.3L485.4 387.8C542.4 447.6 640 405.2 640 320.6c0-47.9-34-88.3-79.4-94.2l-153-23.9 40.8-40.9c7.8-7.8 9.4-20.1 3.9-29.8L428.5 90.1l38.2-50.9c8-10.6 6.1-25.9-4.3-34.1s-25.2-6.3-33.2 4.4l-48 63.9c-5.9 7.9-6.6 18.6-1.7 27.2L402.2 140 352 190.3l0-38.2c0-14.9-10.2-27.4-24-31l0-57.2c0-4.4-3.6-8-8-8s-8 3.6-8 8l0 57.2c-13.8 3.6-24 16.1-24 31l0 38.1L237.8 140l22.6-39.5c4.9-8.6 4.2-19.3-1.7-27.2l-48-63.9c-8-10.6-22.8-12.6-33.2-4.4s-12.2 23.5-4.3 34.1l38.2 50.9-23.9 41.7c-5.5 9.7-3.9 22 3.9 29.8l40.8 40.9-153 23.9C34 232.3 0 272.7 0 320.6c0 84.6 97.6 127 154.6 67.1L288 266l0 .3-66.5 86.4c-3.3 4.3-5.1 9.6-5.1 15.1l0 54.7-42.1 49c-8.6 10.1-7.7 25.5 2.1 34.3s24.7 7.9 33.4-2.1l48-55.9c3.8-4.4 5.9-10.2 5.9-16.1l0-55.4L288 344.7l0 63.1c0 17.7 14.3 32 32 32s32-14.3 32-32l0-63.1 24.3 31.6 0 55.4c0 5.9 2.1 11.7 5.9 16.1l48 55.9c8.6 10.1 23.6 11 33.4 2.1z\"]\n};\nconst faStarOfDavid = {\n prefix: 'fas',\n iconName: 'star-of-david',\n icon: [512, 512, [10017], \"f69a\", \"M404.2 309.5L383.1 344l42.3 0-21.1-34.5zM371.4 256l-54-88-122.8 0-54 88 54 88 122.8 0 54-88zm65.7 0l53.4 87c3.6 5.9 5.5 12.7 5.5 19.6c0 20.7-16.8 37.4-37.4 37.4l-109.8 0-56.2 91.5C284.8 504.3 270.9 512 256 512s-28.8-7.7-36.6-20.5L163.3 400 53.4 400C32.8 400 16 383.2 16 362.6c0-6.9 1.9-13.7 5.5-19.6l53.4-87L21.5 169c-3.6-5.9-5.5-12.7-5.5-19.6C16 128.8 32.8 112 53.4 112l109.8 0 56.2-91.5C227.2 7.7 241.1 0 256 0s28.8 7.7 36.6 20.5L348.7 112l109.8 0c20.7 0 37.4 16.8 37.4 37.4c0 6.9-1.9 13.7-5.5 19.6l-53.4 87zm-54-88l21.1 34.5L425.4 168l-42.3 0zM283 112L256 68l-27 44 54 0zM128.9 168l-42.3 0 21.1 34.5L128.9 168zM107.8 309.5L86.6 344l42.3 0-21.1-34.5zM229 400l27 44 27-44-54 0z\"]\n};\nconst faPersonMilitaryRifle = {\n prefix: 'fas',\n iconName: 'person-military-rifle',\n icon: [512, 512, [], \"e54b\", \"M160 39c0-13 10-23.8 22.9-24.9L334.7 1.4C344 .7 352 8 352 17.4L352 48c0 8.8-7.2 16-16 16L185 64c-13.8 0-25-11.2-25-25zm17.6 57l156.8 0c1 5.2 1.6 10.5 1.6 16c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-5.5 .6-10.8 1.6-16zm228 364.3L352 369.7 352 480c0 1.3-.1 2.5-.2 3.8L177.5 234.9c16.6-7.1 34.6-10.9 53.3-10.9l50.4 0c15.9 0 31.3 2.8 45.8 7.9L421.9 67.7c-7.7-4.4-10.3-14.2-5.9-21.9s14.2-10.3 21.9-5.9l13.9 8 13.9 8c7.7 4.4 10.3 14.2 5.9 21.9L416 173.9l1.6 .9c15.3 8.8 20.6 28.4 11.7 43.7L392.6 282c2 2.8 3.9 5.8 5.7 8.8l76.1 128.8c11.2 19 4.9 43.5-14.1 54.8s-43.5 4.9-54.8-14.1zM320 512l-128 0c-17.7 0-32-14.3-32-32l0-110.3-53.6 90.6c-11.2 19-35.8 25.3-54.8 14.1s-25.3-35.8-14.1-54.8l76.1-128.8c9.4-15.8 21.7-29.3 36-40L331.1 510c-3.5 1.3-7.2 2-11.1 2zM296 320a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nconst faCartShopping = {\n prefix: 'fas',\n iconName: 'cart-shopping',\n icon: [576, 512, [128722, \"shopping-cart\"], \"f07a\", \"M0 24C0 10.7 10.7 0 24 0L69.5 0c22 0 41.5 12.8 50.6 32l411 0c26.3 0 45.5 25 38.6 50.4l-41 152.3c-8.5 31.4-37 53.3-69.5 53.3l-288.5 0 5.4 28.5c2.2 11.3 12.1 19.5 23.6 19.5L488 336c13.3 0 24 10.7 24 24s-10.7 24-24 24l-288.3 0c-34.6 0-64.3-24.6-70.7-58.5L77.4 54.5c-.7-3.8-4-6.5-7.9-6.5L24 48C10.7 48 0 37.3 0 24zM128 464a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm336-48a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"]\n};\nconst faShoppingCart = faCartShopping;\nconst faVials = {\n prefix: 'fas',\n iconName: 'vials',\n icon: [512, 512, [], \"f493\", \"M0 64C0 46.3 14.3 32 32 32l56 0 48 0 56 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 304c0 44.2-35.8 80-80 80s-80-35.8-80-80L32 96C14.3 96 0 81.7 0 64zM136 96L88 96l0 160 48 0 0-160zM288 64c0-17.7 14.3-32 32-32l56 0 48 0 56 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 304c0 44.2-35.8 80-80 80s-80-35.8-80-80l0-304c-17.7 0-32-14.3-32-32zM424 96l-48 0 0 160 48 0 0-160z\"]\n};\nconst faPlugCirclePlus = {\n prefix: 'fas',\n iconName: 'plug-circle-plus',\n icon: [576, 512, [], \"e55f\", \"M96 0C78.3 0 64 14.3 64 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c0 77.4 55 142 128 156.8l0 67.2c0 17.7 14.3 32 32 32s32-14.3 32-32l0-67.2c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32L32 160zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm16-208l0 48 48 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l48 0 0-48c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nconst faPlaceOfWorship = {\n prefix: 'fas',\n iconName: 'place-of-worship',\n icon: [640, 512, [], \"f67f\", \"M224 109.3l0 108.3L183.3 242c-14.5 8.7-23.3 24.3-23.3 41.2L160 512l96 0 0-96c0-35.3 28.7-64 64-64s64 28.7 64 64l0 96 96 0 0-228.8c0-16.9-8.8-32.5-23.3-41.2L416 217.6l0-108.3c0-8.5-3.4-16.6-9.4-22.6L331.3 11.3c-6.2-6.2-16.4-6.2-22.6 0L233.4 86.6c-6 6-9.4 14.1-9.4 22.6zM24.9 330.3C9.5 338.8 0 354.9 0 372.4L0 464c0 26.5 21.5 48 48 48l80 0 0-238.4L24.9 330.3zM592 512c26.5 0 48-21.5 48-48l0-91.6c0-17.5-9.5-33.6-24.9-42.1L512 273.6 512 512l80 0z\"]\n};\nconst faGripVertical = {\n prefix: 'fas',\n iconName: 'grip-vertical',\n icon: [320, 512, [], \"f58e\", \"M40 352l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40zm192 0l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40zM40 320c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0zM232 192l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40zM40 160c-22.1 0-40-17.9-40-40L0 72C0 49.9 17.9 32 40 32l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0zM232 32l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40z\"]\n};\nconst faArrowTurnUp = {\n prefix: 'fas',\n iconName: 'arrow-turn-up',\n icon: [384, 512, [\"level-up\"], \"f148\", \"M32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c53 0 96-43 96-96l0-306.7 73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 109.3 160 416c0 17.7-14.3 32-32 32l-96 0z\"]\n};\nconst faLevelUp = faArrowTurnUp;\nconst faU = {\n prefix: 'fas',\n iconName: 'u',\n icon: [384, 512, [117], \"55\", \"M32 32c17.7 0 32 14.3 32 32l0 224c0 70.7 57.3 128 128 128s128-57.3 128-128l0-224c0-17.7 14.3-32 32-32s32 14.3 32 32l0 224c0 106-86 192-192 192S0 394 0 288L0 64C0 46.3 14.3 32 32 32z\"]\n};\nconst faSquareRootVariable = {\n prefix: 'fas',\n iconName: 'square-root-variable',\n icon: [576, 512, [\"square-root-alt\"], \"f698\", \"M282.6 78.1c8-27.3 33-46.1 61.4-46.1l200 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L344 96 238.7 457c-3.6 12.3-14.1 21.2-26.8 22.8s-25.1-4.6-31.5-15.6L77.6 288 32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l45.6 0c22.8 0 43.8 12.1 55.3 31.8l65.2 111.8L282.6 78.1zM393.4 233.4c12.5-12.5 32.8-12.5 45.3 0L480 274.7l41.4-41.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L525.3 320l41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L480 365.3l-41.4 41.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L434.7 320l-41.4-41.4c-12.5-12.5-12.5-32.8 0-45.3z\"]\n};\nconst faSquareRootAlt = faSquareRootVariable;\nconst faClock = {\n prefix: 'fas',\n iconName: 'clock',\n icon: [512, 512, [128339, \"clock-four\"], \"f017\", \"M256 0a256 256 0 1 1 0 512A256 256 0 1 1 256 0zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"]\n};\nconst faClockFour = faClock;\nconst faBackwardStep = {\n prefix: 'fas',\n iconName: 'backward-step',\n icon: [320, 512, [\"step-backward\"], \"f048\", \"M267.5 440.6c9.5 7.9 22.8 9.7 34.1 4.4s18.4-16.6 18.4-29l0-320c0-12.4-7.2-23.7-18.4-29s-24.5-3.6-34.1 4.4l-192 160L64 241 64 96c0-17.7-14.3-32-32-32S0 78.3 0 96L0 416c0 17.7 14.3 32 32 32s32-14.3 32-32l0-145 11.5 9.6 192 160z\"]\n};\nconst faStepBackward = faBackwardStep;\nconst faPallet = {\n prefix: 'fas',\n iconName: 'pallet',\n icon: [640, 512, [], \"f482\", \"M32 320c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 64-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0 224 0 224 0 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-64 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0-224 0L96 320l-64 0zm96 64l160 0 0 64-160 0 0-64zm224 0l160 0 0 64-160 0 0-64z\"]\n};\nconst faFaucet = {\n prefix: 'fas',\n iconName: 'faucet',\n icon: [512, 512, [], \"e005\", \"M192 96l0 12L96 96c-17.7 0-32 14.3-32 32s14.3 32 32 32l96-12 31-3.9 1-.1 1 .1 31 3.9 96 12c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 12 0-12c0-17.7-14.3-32-32-32s-32 14.3-32 32zM32 256c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l100.1 0c20.2 29 53.9 48 91.9 48s71.7-19 91.9-48l36.1 0c17.7 0 32 14.3 32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32c0-88.4-71.6-160-160-160l-32 0-22.6-22.6c-6-6-14.1-9.4-22.6-9.4L256 224l0-43.8-32-4-32 4 0 43.8-18.7 0c-8.5 0-16.6 3.4-22.6 9.4L128 256l-96 0z\"]\n};\nconst faBaseballBatBall = {\n prefix: 'fas',\n iconName: 'baseball-bat-ball',\n icon: [512, 512, [], \"f432\", \"M424 0c-12.4 0-24.2 4.9-33 13.7L233.5 171.2c-10.5 10.5-19.8 22.1-27.7 34.6L132.7 321.6c-7.3 11.5-15.8 22.2-25.5 31.9L69.9 390.7l51.3 51.3 37.3-37.3c9.6-9.6 20.3-18.2 31.9-25.5l115.8-73.1c12.5-7.9 24.1-17.2 34.6-27.7L498.3 121c8.7-8.7 13.7-20.6 13.7-33s-4.9-24.2-13.7-33L457 13.7C448.2 4.9 436.4 0 424 0zm88 432a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM15 399c-9.4 9.4-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L49 399c-9.4-9.4-24.6-9.4-33.9 0z\"]\n};\nconst faS = {\n prefix: 'fas',\n iconName: 's',\n icon: [320, 512, [115], \"53\", \"M99.1 105.4C79 114 68.2 127.2 65.2 144.8c-2.4 14.1-.7 23.2 2 29.4c2.8 6.3 7.9 12.4 16.7 18.6c19.2 13.4 48.3 22.1 84.9 32.5c1 .3 1.9 .6 2.9 .8c32.7 9.3 72 20.6 100.9 40.7c15.7 10.9 29.9 25.5 38.6 45.1c8.8 19.8 10.8 42 6.6 66.3c-7.3 42.5-35.3 71.7-71.8 87.3c-35.4 15.2-79.1 17.9-123.7 10.9l-.2 0s0 0 0 0c-24-3.9-62.7-17.1-87.6-25.6c-4.8-1.7-9.2-3.1-12.8-4.3C5.1 440.8-3.9 422.7 1.6 405.9s23.7-25.8 40.5-20.3c4.9 1.6 10.2 3.4 15.9 5.4c25.4 8.6 56.4 19.2 74.4 22.1c36.8 5.7 67.5 2.5 88.5-6.5c20.1-8.6 30.8-21.8 33.9-39.4c2.4-14.1 .7-23.2-2-29.4c-2.8-6.3-7.9-12.4-16.7-18.6c-19.2-13.4-48.3-22.1-84.9-32.5c-1-.3-1.9-.6-2.9-.8c-32.7-9.3-72-20.6-100.9-40.7c-15.7-10.9-29.9-25.5-38.6-45.1c-8.8-19.8-10.8-42-6.6-66.3l31.5 5.5L2.1 133.9C9.4 91.4 37.4 62.2 73.9 46.6c35.4-15.2 79.1-17.9 123.7-10.9c13 2 52.4 9.6 66.6 13.4c17.1 4.5 27.2 22.1 22.7 39.2s-22.1 27.2-39.2 22.7c-11.2-3-48.1-10.2-60.1-12l4.9-31.5-4.9 31.5c-36.9-5.8-67.5-2.5-88.6 6.5z\"]\n};\nconst faTimeline = {\n prefix: 'fas',\n iconName: 'timeline',\n icon: [640, 512, [], \"e29c\", \"M128 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm32 97.3c28.3-12.3 48-40.5 48-73.3c0-44.2-35.8-80-80-80S48 51.8 48 96c0 32.8 19.7 61 48 73.3L96 224l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l256 0 0 54.7c-28.3 12.3-48 40.5-48 73.3c0 44.2 35.8 80 80 80s80-35.8 80-80c0-32.8-19.7-61-48-73.3l0-54.7 256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-54.7c28.3-12.3 48-40.5 48-73.3c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 32.8 19.7 61 48 73.3l0 54.7-320 0 0-54.7zM488 96a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM320 392a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nconst faKeyboard = {\n prefix: 'fas',\n iconName: 'keyboard',\n icon: [576, 512, [9000], \"f11c\", \"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm16 64l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80-176c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM160 336c0-8.8 7.2-16 16-16l224 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-224 0c-8.8 0-16-7.2-16-16l0-32zM272 128l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM256 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM368 128l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM352 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM464 128l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM448 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16z\"]\n};\nconst faCaretDown = {\n prefix: 'fas',\n iconName: 'caret-down',\n icon: [320, 512, [], \"f0d7\", \"M137.4 374.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8L32 192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z\"]\n};\nconst faHouseChimneyMedical = {\n prefix: 'fas',\n iconName: 'house-chimney-medical',\n icon: [576, 512, [\"clinic-medical\"], \"f7f2\", \"M575.8 255.5c0 18-15 32.1-32 32.1l-32 0 .7 160.2c.2 35.5-28.5 64.3-64 64.3l-320.4 0c-35.3 0-64-28.7-64-64l0-160.4-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L416 100.7 416 64c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 121 52.8 46.4c8 7 12 15 11 24zM272 192c-8.8 0-16 7.2-16 16l0 48-48 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-48 0 0-48c0-8.8-7.2-16-16-16l-32 0z\"]\n};\nconst faClinicMedical = faHouseChimneyMedical;\nconst faTemperatureThreeQuarters = {\n prefix: 'fas',\n iconName: 'temperature-three-quarters',\n icon: [320, 512, [\"temperature-3\", \"thermometer-3\", \"thermometer-three-quarters\"], \"f2c8\", \"M160 64c-26.5 0-48 21.5-48 48l0 164.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5L208 112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112l0 164.4c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6L48 112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3L144 144c0-8.8 7.2-16 16-16s16 7.2 16 16l0 178.7c18.6 6.6 32 24.4 32 45.3z\"]\n};\nconst faTemperature3 = faTemperatureThreeQuarters;\nconst faThermometer3 = faTemperatureThreeQuarters;\nconst faThermometerThreeQuarters = faTemperatureThreeQuarters;\nconst faMobileScreen = {\n prefix: 'fas',\n iconName: 'mobile-screen',\n icon: [384, 512, [\"mobile-android-alt\"], \"f3cf\", \"M16 64C16 28.7 44.7 0 80 0L304 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L80 512c-35.3 0-64-28.7-64-64L16 64zM144 448c0 8.8 7.2 16 16 16l64 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-64 0c-8.8 0-16 7.2-16 16zM304 64L80 64l0 320 224 0 0-320z\"]\n};\nconst faMobileAndroidAlt = faMobileScreen;\nconst faPlaneUp = {\n prefix: 'fas',\n iconName: 'plane-up',\n icon: [512, 512, [], \"e22d\", \"M192 93.7C192 59.5 221 0 256 0c36 0 64 59.5 64 93.7l0 66.3L497.8 278.5c8.9 5.9 14.2 15.9 14.2 26.6l0 56.7c0 10.9-10.7 18.6-21.1 15.2L320 320l0 80 57.6 43.2c4 3 6.4 7.8 6.4 12.8l0 42c0 7.8-6.3 14-14 14c-1.3 0-2.6-.2-3.9-.5L256 480 145.9 511.5c-1.3 .4-2.6 .5-3.9 .5c-7.8 0-14-6.3-14-14l0-42c0-5 2.4-9.8 6.4-12.8L192 400l0-80L21.1 377C10.7 380.4 0 372.7 0 361.8l0-56.7c0-10.7 5.3-20.7 14.2-26.6L192 160l0-66.3z\"]\n};\nconst faPiggyBank = {\n prefix: 'fas',\n iconName: 'piggy-bank',\n icon: [576, 512, [], \"f4d3\", \"M400 96l0 .7c-5.3-.4-10.6-.7-16-.7L256 96c-16.5 0-32.5 2.1-47.8 6c-.1-2-.2-4-.2-6c0-53 43-96 96-96s96 43 96 96zm-16 32c3.5 0 7 .1 10.4 .3c4.2 .3 8.4 .7 12.6 1.3C424.6 109.1 450.8 96 480 96l11.5 0c10.4 0 18 9.8 15.5 19.9l-13.8 55.2c15.8 14.8 28.7 32.8 37.5 52.9l13.3 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-32 0c-9.1 12.1-19.9 22.9-32 32l0 64c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-32-128 0 0 32c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-64c-34.9-26.2-58.7-66.3-63.2-112L68 304c-37.6 0-68-30.4-68-68s30.4-68 68-68l4 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-4 0c-11 0-20 9-20 20s9 20 20 20l31.2 0c12.1-59.8 57.7-107.5 116.3-122.8c12.9-3.4 26.5-5.2 40.5-5.2l128 0zm64 136a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"]\n};\nconst faBatteryHalf = {\n prefix: 'fas',\n iconName: 'battery-half',\n icon: [576, 512, [\"battery-3\"], \"f242\", \"M464 160c8.8 0 16 7.2 16 16l0 160c0 8.8-7.2 16-16 16L80 352c-8.8 0-16-7.2-16-16l0-160c0-8.8 7.2-16 16-16l384 0zM80 96C35.8 96 0 131.8 0 176L0 336c0 44.2 35.8 80 80 80l384 0c44.2 0 80-35.8 80-80l0-16c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l0-16c0-44.2-35.8-80-80-80L80 96zm208 96L96 192l0 128 192 0 0-128z\"]\n};\nconst faBattery3 = faBatteryHalf;\nconst faMountainCity = {\n prefix: 'fas',\n iconName: 'mountain-city',\n icon: [640, 512, [], \"e52e\", \"M336 0c-26.5 0-48 21.5-48 48l0 92.1 71.4 118.4c2.5-1.6 5.4-2.5 8.6-2.5l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-3.5 0 73.8 122.4c12.4 20.6 12.9 46.3 1.2 67.3c-.4 .8-.9 1.6-1.4 2.3L592 512c26.5 0 48-21.5 48-48l0-224c0-26.5-21.5-48-48-48l-24 0 0-72c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 72-40 0 0-144c0-26.5-21.5-48-48-48L336 0zm32 64l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM352 176c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm160 96c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM224 188.9L283.8 288 223 288l-48 64-24.6-41.2L224 188.9zm29.4-44.2C247.1 134.3 236 128 224 128s-23.1 6.3-29.4 16.7L5.1 458.9c-6.5 10.8-6.7 24.3-.7 35.3S22 512 34.5 512l379.1 0c12.5 0 24-6.8 30.1-17.8s5.8-24.5-.7-35.3L253.4 144.7z\"]\n};\nconst faCoins = {\n prefix: 'fas',\n iconName: 'coins',\n icon: [512, 512, [], \"f51e\", \"M512 80c0 18-14.3 34.6-38.4 48c-29.1 16.1-72.5 27.5-122.3 30.9c-3.7-1.8-7.4-3.5-11.3-5C300.6 137.4 248.2 128 192 128c-8.3 0-16.4 .2-24.5 .6l-1.1-.6C142.3 114.6 128 98 128 80c0-44.2 86-80 192-80S512 35.8 512 80zM160.7 161.1c10.2-.7 20.7-1.1 31.3-1.1c62.2 0 117.4 12.3 152.5 31.4C369.3 204.9 384 221.7 384 240c0 4-.7 7.9-2.1 11.7c-4.6 13.2-17 25.3-35 35.5c0 0 0 0 0 0c-.1 .1-.3 .1-.4 .2c0 0 0 0 0 0s0 0 0 0c-.3 .2-.6 .3-.9 .5c-35 19.4-90.8 32-153.6 32c-59.6 0-112.9-11.3-148.2-29.1c-1.9-.9-3.7-1.9-5.5-2.9C14.3 274.6 0 258 0 240c0-34.8 53.4-64.5 128-75.4c10.5-1.5 21.4-2.7 32.7-3.5zM416 240c0-21.9-10.6-39.9-24.1-53.4c28.3-4.4 54.2-11.4 76.2-20.5c16.3-6.8 31.5-15.2 43.9-25.5l0 35.4c0 19.3-16.5 37.1-43.8 50.9c-14.6 7.4-32.4 13.7-52.4 18.5c.1-1.8 .2-3.5 .2-5.3zm-32 96c0 18-14.3 34.6-38.4 48c-1.8 1-3.6 1.9-5.5 2.9C304.9 404.7 251.6 416 192 416c-62.8 0-118.6-12.6-153.6-32C14.3 370.6 0 354 0 336l0-35.4c12.5 10.3 27.6 18.7 43.9 25.5C83.4 342.6 135.8 352 192 352s108.6-9.4 148.1-25.9c7.8-3.2 15.3-6.9 22.4-10.9c6.1-3.4 11.8-7.2 17.2-11.2c1.5-1.1 2.9-2.3 4.3-3.4l0 3.4 0 5.7 0 26.3zm32 0l0-32 0-25.9c19-4.2 36.5-9.5 52.1-16c16.3-6.8 31.5-15.2 43.9-25.5l0 35.4c0 10.5-5 21-14.9 30.9c-16.3 16.3-45 29.7-81.3 38.4c.1-1.7 .2-3.5 .2-5.3zM192 448c56.2 0 108.6-9.4 148.1-25.9c16.3-6.8 31.5-15.2 43.9-25.5l0 35.4c0 44.2-86 80-192 80S0 476.2 0 432l0-35.4c12.5 10.3 27.6 18.7 43.9 25.5C83.4 438.6 135.8 448 192 448z\"]\n};\nconst faKhanda = {\n prefix: 'fas',\n iconName: 'khanda',\n icon: [512, 512, [9772], \"f66d\", \"M245.8 3.7c5.9-4.9 14.6-4.9 20.5 0l48 40c5.9 4.9 7.5 13.2 3.8 19.9c0 0 0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0l-.1 .1-.3 .6c-.3 .5-.7 1.3-1.2 2.3c-1 2-2.6 5-4.4 8.6c-.5 .9-.9 1.9-1.4 2.9C344.9 97.4 368 134 368 176s-23.1 78.6-57.3 97.8c.5 1 1 2 1.4 2.9c1.8 3.7 3.3 6.6 4.4 8.6c.5 1 .9 1.8 1.2 2.3l.3 .6 .1 .1s0 0 0 0s0 0 0 0c3.6 6.7 2 15-3.8 19.9L272 343.5l0 19.8 35.6-24.5 41.1-28.2c42.8-29.4 68.4-78 68.4-130c0-31.1-9.2-61.6-26.5-87.5l-2.8-4.2c-4-6-3.5-14 1.3-19.5s12.7-7 19.2-3.7L401.1 80c7.2-14.3 7.2-14.3 7.2-14.3s0 0 0 0s0 0 0 0l.1 0 .3 .2 1 .5c.8 .4 2 1.1 3.5 1.9c2.9 1.7 7 4.1 11.8 7.3c9.6 6.4 22.5 16.1 35.4 29c25.7 25.7 52.7 65.6 52.7 119.3c0 53.1-26.4 100.5-51.2 133.6c-12.6 16.7-25.1 30.3-34.5 39.7c-4.7 4.7-8.7 8.4-11.5 10.9c-1.4 1.3-2.5 2.2-3.3 2.9l-.9 .8-.3 .2-.1 .1c0 0 0 0 0 0s0 0 0 0L401.1 400l10.2 12.3c-5.1 4.3-12.4 4.9-18.2 1.6l-75.6-43-32.7 22.5 45.5 31.3c1.8-.4 3.7-.7 5.7-.7c13.3 0 24 10.7 24 24s-10.7 24-24 24c-12.2 0-22.3-9.1-23.8-21L272 423.4l0 28.9c9.6 5.5 16 15.9 16 27.7c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-11.8 6.4-22.2 16-27.7l0-28.1-40.3 27.7C197.8 463.3 187.9 472 176 472c-13.3 0-24-10.7-24-24s10.7-24 24-24c2.2 0 4.4 .3 6.5 .9l45.8-31.5-32.7-22.5-75.6 43c-5.8 3.3-13 2.7-18.2-1.6L112 400c-10.2 12.3-10.2 12.3-10.3 12.3s0 0 0 0s0 0 0 0l-.1-.1-.3-.2-.9-.8c-.8-.7-1.9-1.7-3.3-2.9c-2.8-2.5-6.7-6.2-11.5-10.9c-9.4-9.4-21.9-23-34.5-39.7C26.4 324.5 0 277.1 0 224c0-53.7 26.9-93.6 52.7-119.3c12.9-12.9 25.8-22.6 35.4-29C93 72.5 97 70 99.9 68.4c1.5-.8 2.6-1.5 3.5-1.9l1-.5 .3-.2 .1 0c0 0 0 0 0 0s0 0 0 0L112 80l-7.2-14.3c6.5-3.2 14.3-1.7 19.2 3.7s5.3 13.4 1.3 19.5l-2.8 4.2C105.2 119 96 149.5 96 180.6c0 51.9 25.6 100.6 68.4 130l41.1 28.2L240 362.6l0-19.1-42.2-35.2c-5.9-4.9-7.5-13.2-3.8-19.9c0 0 0 0 0 0s0 0 0 0s0 0 0 0l.1-.1 .3-.6c.3-.5 .7-1.3 1.2-2.3c1-2 2.6-5 4.4-8.6c.5-.9 .9-1.9 1.4-2.9C167.1 254.6 144 218 144 176s23.1-78.6 57.3-97.8c-.5-1-1-2-1.4-2.9c-1.8-3.7-3.3-6.6-4.4-8.6c-.5-1-.9-1.8-1.2-2.3l-.3-.6-.1-.1s0 0 0 0s0 0 0 0s0 0 0 0c-3.6-6.7-2-15 3.8-19.9l48-40zM220.2 122.9c-17 11.5-28.2 31-28.2 53.1s11.2 41.6 28.2 53.1C227 210.2 232 190.9 232 176s-5-34.2-11.8-53.1zm71.5 106.2c17-11.5 28.2-31 28.2-53.1s-11.2-41.6-28.2-53.1C285 141.8 280 161.1 280 176s5 34.2 11.8 53.1z\"]\n};\nconst faSliders = {\n prefix: 'fas',\n iconName: 'sliders',\n icon: [512, 512, [\"sliders-h\"], \"f1de\", \"M0 416c0 17.7 14.3 32 32 32l54.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48L480 448c17.7 0 32-14.3 32-32s-14.3-32-32-32l-246.7 0c-12.3-28.3-40.5-48-73.3-48s-61 19.7-73.3 48L32 384c-17.7 0-32 14.3-32 32zm128 0a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM320 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32-80c-32.8 0-61 19.7-73.3 48L32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l246.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48l54.7 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-54.7 0c-12.3-28.3-40.5-48-73.3-48zM192 128a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm73.3-64C253 35.7 224.8 16 192 16s-61 19.7-73.3 48L32 64C14.3 64 0 78.3 0 96s14.3 32 32 32l86.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48L480 128c17.7 0 32-14.3 32-32s-14.3-32-32-32L265.3 64z\"]\n};\nconst faSlidersH = faSliders;\nconst faFolderTree = {\n prefix: 'fas',\n iconName: 'folder-tree',\n icon: [576, 512, [], \"f802\", \"M64 32C64 14.3 49.7 0 32 0S0 14.3 0 32l0 96L0 384c0 35.3 28.7 64 64 64l192 0 0-64L64 384l0-224 192 0 0-64L64 96l0-64zM288 192c0 17.7 14.3 32 32 32l224 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32l-98.7 0c-8.5 0-16.6-3.4-22.6-9.4L409.4 9.4c-6-6-14.1-9.4-22.6-9.4L320 0c-17.7 0-32 14.3-32 32l0 160zm0 288c0 17.7 14.3 32 32 32l224 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32l-98.7 0c-8.5 0-16.6-3.4-22.6-9.4l-13.3-13.3c-6-6-14.1-9.4-22.6-9.4L320 288c-17.7 0-32 14.3-32 32l0 160z\"]\n};\nconst faNetworkWired = {\n prefix: 'fas',\n iconName: 'network-wired',\n icon: [640, 512, [], \"f6ff\", \"M256 64l128 0 0 64-128 0 0-64zM240 0c-26.5 0-48 21.5-48 48l0 96c0 26.5 21.5 48 48 48l48 0 0 32L32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0 0 32-48 0c-26.5 0-48 21.5-48 48l0 96c0 26.5 21.5 48 48 48l160 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48l-48 0 0-32 256 0 0 32-48 0c-26.5 0-48 21.5-48 48l0 96c0 26.5 21.5 48 48 48l160 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48l-48 0 0-32 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-256 0 0-32 48 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48L240 0zM96 448l0-64 128 0 0 64L96 448zm320-64l128 0 0 64-128 0 0-64z\"]\n};\nconst faMapPin = {\n prefix: 'fas',\n iconName: 'map-pin',\n icon: [320, 512, [128205], \"f276\", \"M16 144a144 144 0 1 1 288 0A144 144 0 1 1 16 144zM160 80c8.8 0 16-7.2 16-16s-7.2-16-16-16c-53 0-96 43-96 96c0 8.8 7.2 16 16 16s16-7.2 16-16c0-35.3 28.7-64 64-64zM128 480l0-162.9c10.4 1.9 21.1 2.9 32 2.9s21.6-1 32-2.9L192 480c0 17.7-14.3 32-32 32s-32-14.3-32-32z\"]\n};\nconst faHamsa = {\n prefix: 'fas',\n iconName: 'hamsa',\n icon: [512, 512, [], \"f665\", \"M34.6 288L80 288c8.8 0 16-7.2 16-16L96 72c0-22.1 17.9-40 40-40s40 17.9 40 40l0 132c0 11 9 20 20 20s20-9 20-20l0-164c0-22.1 17.9-40 40-40s40 17.9 40 40l0 164c0 11 9 20 20 20s20-9 20-20l0-132c0-22.1 17.9-40 40-40s40 17.9 40 40l0 200c0 8.8 7.2 16 16 16l45.4 0c19.1 0 34.6 15.5 34.6 34.6c0 8.6-3.2 16.9-9 23.3L416.6 441c-41.1 45.2-99.4 71-160.6 71s-119.4-25.8-160.6-71L9 345.9c-5.8-6.4-9-14.7-9-23.3C0 303.5 15.5 288 34.6 288zM256 288c-38.4 0-76.8 35.8-90.6 50.2c-3.6 3.7-5.4 8.7-5.4 13.8s1.8 10.1 5.4 13.8C179.2 380.2 217.6 416 256 416s76.8-35.8 90.6-50.2c3.6-3.7 5.4-8.7 5.4-13.8s-1.8-10.1-5.4-13.8C332.8 323.8 294.4 288 256 288zm0 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nconst faCentSign = {\n prefix: 'fas',\n iconName: 'cent-sign',\n icon: [384, 512, [], \"e3f5\", \"M224 0c17.7 0 32 14.3 32 32l0 34.7c30.9 5.2 59.2 17.7 83.2 35.8c14.1 10.6 17 30.7 6.4 44.8s-30.7 17-44.8 6.4C279.4 137.5 252.9 128 224 128c-70.7 0-128 57.3-128 128s57.3 128 128 128c28.9 0 55.4-9.5 76.8-25.6c14.1-10.6 34.2-7.8 44.8 6.4s7.8 34.2-6.4 44.8c-24 18-52.4 30.6-83.2 35.8l0 34.7c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-34.7C101.2 430.1 32 351.1 32 256s69.2-174.1 160-189.3L192 32c0-17.7 14.3-32 32-32z\"]\n};\nconst faFlask = {\n prefix: 'fas',\n iconName: 'flask',\n icon: [448, 512, [], \"f0c3\", \"M288 0L160 0 128 0C110.3 0 96 14.3 96 32s14.3 32 32 32l0 132.8c0 11.8-3.3 23.5-9.5 33.5L10.3 406.2C3.6 417.2 0 429.7 0 442.6C0 480.9 31.1 512 69.4 512l309.2 0c38.3 0 69.4-31.1 69.4-69.4c0-12.8-3.6-25.4-10.3-36.4L329.5 230.4c-6.2-10.1-9.5-21.7-9.5-33.5L320 64c17.7 0 32-14.3 32-32s-14.3-32-32-32L288 0zM192 196.8L192 64l64 0 0 132.8c0 23.7 6.6 46.9 19 67.1L309.5 320l-171 0L173 263.9c12.4-20.2 19-43.4 19-67.1z\"]\n};\nconst faPersonPregnant = {\n prefix: 'fas',\n iconName: 'person-pregnant',\n icon: [384, 512, [], \"e31e\", \"M192 0a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM120 383c-13.8-3.6-24-16.1-24-31l0-55.1-4.6 7.6c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c15-24.9 40.3-41.5 68.7-45.6c4.1-.6 8.2-1 12.5-1l1.1 0 12.5 0 2.4 0c1.4 0 2.8 .1 4.1 .3c35.7 2.9 65.4 29.3 72.1 65l6.1 32.5c44.3 8.6 77.7 47.5 77.7 94.3l0 32c0 17.7-14.3 32-32 32l-16 0-40 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-8 0-8 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-97z\"]\n};\nconst faWandSparkles = {\n prefix: 'fas',\n iconName: 'wand-sparkles',\n icon: [512, 512, [], \"f72b\", \"M464 6.1c9.5-8.5 24-8.1 33 .9l8 8c9 9 9.4 23.5 .9 33l-85.8 95.9c-2.6 2.9-4.1 6.7-4.1 10.7l0 21.4c0 8.8-7.2 16-16 16l-15.8 0c-4.6 0-8.9 1.9-11.9 5.3L100.7 500.9C94.3 508 85.3 512 75.8 512c-8.8 0-17.3-3.5-23.5-9.8L9.7 459.7C3.5 453.4 0 445 0 436.2c0-9.5 4-18.5 11.1-24.8l111.6-99.8c3.4-3 5.3-7.4 5.3-11.9l0-27.6c0-8.8 7.2-16 16-16l34.6 0c3.9 0 7.7-1.5 10.7-4.1L464 6.1zM432 288c3.6 0 6.7 2.4 7.7 5.8l14.8 51.7 51.7 14.8c3.4 1 5.8 4.1 5.8 7.7s-2.4 6.7-5.8 7.7l-51.7 14.8-14.8 51.7c-1 3.4-4.1 5.8-7.7 5.8s-6.7-2.4-7.7-5.8l-14.8-51.7-51.7-14.8c-3.4-1-5.8-4.1-5.8-7.7s2.4-6.7 5.8-7.7l51.7-14.8 14.8-51.7c1-3.4 4.1-5.8 7.7-5.8zM87.7 69.8l14.8 51.7 51.7 14.8c3.4 1 5.8 4.1 5.8 7.7s-2.4 6.7-5.8 7.7l-51.7 14.8L87.7 218.2c-1 3.4-4.1 5.8-7.7 5.8s-6.7-2.4-7.7-5.8L57.5 166.5 5.8 151.7c-3.4-1-5.8-4.1-5.8-7.7s2.4-6.7 5.8-7.7l51.7-14.8L72.3 69.8c1-3.4 4.1-5.8 7.7-5.8s6.7 2.4 7.7 5.8zM208 0c3.7 0 6.9 2.5 7.8 6.1l6.8 27.3 27.3 6.8c3.6 .9 6.1 4.1 6.1 7.8s-2.5 6.9-6.1 7.8l-27.3 6.8-6.8 27.3c-.9 3.6-4.1 6.1-7.8 6.1s-6.9-2.5-7.8-6.1l-6.8-27.3-27.3-6.8c-3.6-.9-6.1-4.1-6.1-7.8s2.5-6.9 6.1-7.8l27.3-6.8 6.8-27.3c.9-3.6 4.1-6.1 7.8-6.1z\"]\n};\nconst faEllipsisVertical = {\n prefix: 'fas',\n iconName: 'ellipsis-vertical',\n icon: [128, 512, [\"ellipsis-v\"], \"f142\", \"M64 360a56 56 0 1 0 0 112 56 56 0 1 0 0-112zm0-160a56 56 0 1 0 0 112 56 56 0 1 0 0-112zM120 96A56 56 0 1 0 8 96a56 56 0 1 0 112 0z\"]\n};\nconst faEllipsisV = faEllipsisVertical;\nconst faTicket = {\n prefix: 'fas',\n iconName: 'ticket',\n icon: [576, 512, [127903], \"f145\", \"M64 64C28.7 64 0 92.7 0 128l0 64c0 8.8 7.4 15.7 15.7 18.6C34.5 217.1 48 235 48 256s-13.5 38.9-32.3 45.4C7.4 304.3 0 311.2 0 320l0 64c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-64c0-8.8-7.4-15.7-15.7-18.6C541.5 294.9 528 277 528 256s13.5-38.9 32.3-45.4c8.3-2.9 15.7-9.8 15.7-18.6l0-64c0-35.3-28.7-64-64-64L64 64zm64 112l0 160c0 8.8 7.2 16 16 16l288 0c8.8 0 16-7.2 16-16l0-160c0-8.8-7.2-16-16-16l-288 0c-8.8 0-16 7.2-16 16zM96 160c0-17.7 14.3-32 32-32l320 0c17.7 0 32 14.3 32 32l0 192c0 17.7-14.3 32-32 32l-320 0c-17.7 0-32-14.3-32-32l0-192z\"]\n};\nconst faPowerOff = {\n prefix: 'fas',\n iconName: 'power-off',\n icon: [512, 512, [9211], \"f011\", \"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 224c0 17.7 14.3 32 32 32s32-14.3 32-32l0-224zM143.5 120.6c13.6-11.3 15.4-31.5 4.1-45.1s-31.5-15.4-45.1-4.1C49.7 115.4 16 181.8 16 256c0 132.5 107.5 240 240 240s240-107.5 240-240c0-74.2-33.8-140.6-86.6-184.6c-13.6-11.3-33.8-9.4-45.1 4.1s-9.4 33.8 4.1 45.1c38.9 32.3 63.5 81 63.5 135.4c0 97.2-78.8 176-176 176s-176-78.8-176-176c0-54.4 24.7-103.1 63.5-135.4z\"]\n};\nconst faRightLong = {\n prefix: 'fas',\n iconName: 'right-long',\n icon: [512, 512, [\"long-arrow-alt-right\"], \"f30b\", \"M334.5 414c8.8 3.8 19 2 26-4.6l144-136c4.8-4.5 7.5-10.8 7.5-17.4s-2.7-12.9-7.5-17.4l-144-136c-7-6.6-17.2-8.4-26-4.6s-14.5 12.5-14.5 22l0 72L32 192c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l288 0 0 72c0 9.6 5.7 18.2 14.5 22z\"]\n};\nconst faLongArrowAltRight = faRightLong;\nconst faFlagUsa = {\n prefix: 'fas',\n iconName: 'flag-usa',\n icon: [448, 512, [], \"f74d\", \"M32 0C49.7 0 64 14.3 64 32l0 16 69-17.2c38.1-9.5 78.3-5.1 113.5 12.5c46.3 23.2 100.8 23.2 147.1 0l9.6-4.8C423.8 28.1 448 43.1 448 66.1l0 36.1-44.7 16.2c-42.8 15.6-90 13.9-131.6-4.6l-16.1-7.2c-20.3-9-41.8-14.7-63.6-16.9l0 32.2c17.4 2.1 34.4 6.7 50.6 13.9l16.1 7.2c49.2 21.9 105 23.8 155.6 5.4L448 136.3l0 62-44.7 16.2c-42.8 15.6-90 13.9-131.6-4.6l-16.1-7.2c-40.2-17.9-85-22.5-128.1-13.3L64 203.1l0 32.7 70.2-15.1c36.4-7.8 74.3-3.9 108.4 11.3l16.1 7.2c49.2 21.9 105 23.8 155.6 5.4L448 232.3l0 62-44.7 16.2c-42.8 15.6-90 13.9-131.6-4.6l-16.1-7.2c-40.2-17.9-85-22.5-128.1-13.3L64 299.1l0 32.7 70.2-15.1c36.4-7.8 74.3-3.9 108.4 11.3l16.1 7.2c49.2 21.9 105 23.8 155.6 5.4L448 328.3l0 33.5c0 13.3-8.3 25.3-20.8 30l-34.7 13c-46.2 17.3-97.6 14.6-141.7-7.4c-37.9-19-81.3-23.7-122.5-13.4L64 400l0 80c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64 0-70.5 0-32.7 0-63.3 0-32.7 0-63.3 0-32.7L0 64 0 32C0 14.3 14.3 0 32 0zm80 96A16 16 0 1 0 80 96a16 16 0 1 0 32 0zm32 0a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm-32 48a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm32 0a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"]\n};\nconst faLaptopFile = {\n prefix: 'fas',\n iconName: 'laptop-file',\n icon: [640, 512, [], \"e51d\", \"M128 0C92.7 0 64 28.7 64 64l0 224-44.8 0C8.6 288 0 296.6 0 307.2C0 349.6 34.4 384 76.8 384L320 384l0-96-192 0 0-224 320 0 0 32 64 0 0-32c0-35.3-28.7-64-64-64L128 0zM512 128l-112 0c-26.5 0-48 21.5-48 48l0 288c0 26.5 21.5 48 48 48l192 0c26.5 0 48-21.5 48-48l0-208-96 0c-17.7 0-32-14.3-32-32l0-96zm32 0l0 96 96 0-96-96z\"]\n};\nconst faTty = {\n prefix: 'fas',\n iconName: 'tty',\n icon: [512, 512, [\"teletype\"], \"f1e4\", \"M38.3 241.3L15.1 200.6c-9.2-16.2-8.4-36.5 4.5-50C61.4 106.8 144.7 48 256 48s194.6 58.8 236.4 102.6c12.9 13.5 13.7 33.8 4.5 50l-23.1 40.7c-7.5 13.2-23.3 19.3-37.8 14.6l-81.1-26.6c-13.1-4.3-22-16.6-22-30.4l0-54.8c-49.6-18.1-104-18.1-153.6 0l0 54.8c0 13.8-8.9 26.1-22 30.4L76.1 255.8c-14.5 4.7-30.3-1.4-37.8-14.6zM32 336c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm0 96c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM144 320l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm112-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM128 432c0-8.8 7.2-16 16-16l224 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-224 0c-8.8 0-16-7.2-16-16l0-32z\"]\n};\nconst faTeletype = faTty;\nconst faDiagramNext = {\n prefix: 'fas',\n iconName: 'diagram-next',\n icon: [512, 512, [], \"e476\", \"M512 160c0 35.3-28.7 64-64 64l-168 0 0 64 46.1 0c21.4 0 32.1 25.9 17 41L273 399c-9.4 9.4-24.6 9.4-33.9 0L169 329c-15.1-15.1-4.4-41 17-41l46.1 0 0-64L64 224c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 64zM448 416l0-64-82.7 0 .4-.4c18.4-18.4 20.4-43.7 11-63.6l71.3 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l71.3 0c-9.4 19.9-7.4 45.2 11 63.6l.4 .4L64 352l0 64 146.7 0 5.7 5.7c21.9 21.9 57.3 21.9 79.2 0l5.7-5.7L448 416z\"]\n};\nconst faPersonRifle = {\n prefix: 'fas',\n iconName: 'person-rifle',\n icon: [576, 512, [], \"e54e\", \"M265.2 192c25.4 0 49.8 7.1 70.8 19.9L336 512l-192 0 0-174.3L90.4 428.3c-11.2 19-35.8 25.3-54.8 14.1s-25.3-35.8-14.1-54.8L97.7 258.8c24.5-41.4 69-66.8 117.1-66.8l50.4 0zM160 80a80 80 0 1 1 160 0A80 80 0 1 1 160 80zM448 0c8.8 0 16 7.2 16 16l0 116.3c9.6 5.5 16 15.9 16 27.7l0 109.3 16-5.3 0-56c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 84.5c0 6.9-4.4 13-10.9 15.2L480 325.3l0 26.7 48 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-44 0 23 92.1c2.5 10.1-5.1 19.9-15.5 19.9L432 512c-8.8 0-16-7.2-16-16l0-96-16 0c-17.7 0-32-14.3-32-32l0-144c0-17.7 14.3-32 32-32l0-32c0-11.8 6.4-22.2 16-27.7L416 32c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0 16 0z\"]\n};\nconst faHouseMedicalCircleExclamation = {\n prefix: 'fas',\n iconName: 'house-medical-circle-exclamation',\n icon: [640, 512, [], \"e512\", \"M320 368c0 59.5 29.5 112.1 74.8 144l-266.7 0c-35.3 0-64-28.7-64-64l0-160.4-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L522.1 193.9c-8.5-1.3-17.3-1.9-26.1-1.9c-54.7 0-103.5 24.9-135.8 64L320 256l0-48c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 48-48 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zM496 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 240a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm0-192c-8.8 0-16 7.2-16 16l0 80c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80c0-8.8-7.2-16-16-16z\"]\n};\nconst faClosedCaptioning = {\n prefix: 'fas',\n iconName: 'closed-captioning',\n icon: [576, 512, [], \"f20a\", \"M0 96C0 60.7 28.7 32 64 32l448 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM200 208c14.2 0 27 6.1 35.8 16c8.8 9.9 24 10.7 33.9 1.9s10.7-24 1.9-33.9c-17.5-19.6-43.1-32-71.5-32c-53 0-96 43-96 96s43 96 96 96c28.4 0 54-12.4 71.5-32c8.8-9.9 8-25-1.9-33.9s-25-8-33.9 1.9c-8.8 9.9-21.6 16-35.8 16c-26.5 0-48-21.5-48-48s21.5-48 48-48zm144 48c0-26.5 21.5-48 48-48c14.2 0 27 6.1 35.8 16c8.8 9.9 24 10.7 33.9 1.9s10.7-24 1.9-33.9c-17.5-19.6-43.1-32-71.5-32c-53 0-96 43-96 96s43 96 96 96c28.4 0 54-12.4 71.5-32c8.8-9.9 8-25-1.9-33.9s-25-8-33.9 1.9c-8.8 9.9-21.6 16-35.8 16c-26.5 0-48-21.5-48-48z\"]\n};\nconst faPersonHiking = {\n prefix: 'fas',\n iconName: 'person-hiking',\n icon: [384, 512, [\"hiking\"], \"f6ec\", \"M192 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm51.3 182.7L224.2 307l49.7 49.7c9 9 14.1 21.2 14.1 33.9l0 89.4c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-82.7-73.9-73.9c-15.8-15.8-22.2-38.6-16.9-60.3l20.4-84c8.3-34.1 42.7-54.9 76.7-46.4c19 4.8 35.6 16.4 46.4 32.7L305.1 208l30.9 0 0-24c0-13.3 10.7-24 24-24s24 10.7 24 24l0 55.8c0 .1 0 .2 0 .2s0 .2 0 .2L384 488c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-216-39.4 0c-16 0-31-8-39.9-21.4l-13.3-20zM81.1 471.9L117.3 334c3 4.2 6.4 8.2 10.1 11.9l41.9 41.9L142.9 488.1c-4.5 17.1-22 27.3-39.1 22.8s-27.3-22-22.8-39.1zm55.5-346L101.4 266.5c-3 12.1-14.9 19.9-27.2 17.9l-47.9-8c-14-2.3-22.9-16.3-19.2-30L31.9 155c9.5-34.8 41.1-59 77.2-59l4.2 0c15.6 0 27.1 14.7 23.3 29.8z\"]\n};\nconst faHiking = faPersonHiking;\nconst faVenusDouble = {\n prefix: 'fas',\n iconName: 'venus-double',\n icon: [640, 512, [9890], \"f226\", \"M192 288a112 112 0 1 0 0-224 112 112 0 1 0 0 224zM368 176c0 86.3-62.1 158.1-144 173.1l0 34.9 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-34.9C78.1 334.1 16 262.3 16 176C16 78.8 94.8 0 192 0s176 78.8 176 176zM344 318c14.6-15.6 26.8-33.4 36-53c18.8 14.4 42.4 23 68 23c61.9 0 112-50.1 112-112s-50.1-112-112-112c-25.6 0-49.1 8.6-68 23c-9.3-19.5-21.5-37.4-36-53C373.1 12.6 409.1 0 448 0c97.2 0 176 78.8 176 176c0 86.3-62.1 158.1-144 173.1l0 34.9 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-34.9c-26.6-4.9-51.1-15.7-72-31.1z\"]\n};\nconst faImages = {\n prefix: 'fas',\n iconName: 'images',\n icon: [576, 512, [], \"f302\", \"M160 32c-35.3 0-64 28.7-64 64l0 224c0 35.3 28.7 64 64 64l352 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L160 32zM396 138.7l96 144c4.9 7.4 5.4 16.8 1.2 24.6S480.9 320 472 320l-144 0-48 0-80 0c-9.2 0-17.6-5.3-21.6-13.6s-2.9-18.2 2.9-25.4l64-80c4.6-5.7 11.4-9 18.7-9s14.2 3.3 18.7 9l17.3 21.6 56-84C360.5 132 368 128 376 128s15.5 4 20 10.7zM192 128a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM48 120c0-13.3-10.7-24-24-24S0 106.7 0 120L0 344c0 75.1 60.9 136 136 136l320 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-320 0c-48.6 0-88-39.4-88-88l0-224z\"]\n};\nconst faCalculator = {\n prefix: 'fas',\n iconName: 'calculator',\n icon: [384, 512, [128425], \"f1ec\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zM96 64l192 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L96 160c-17.7 0-32-14.3-32-32l0-32c0-17.7 14.3-32 32-32zm32 160a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zM96 352a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM64 416c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32zM192 256a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm32 64a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm64-64a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm32 64a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zM288 448a32 32 0 1 1 0-64 32 32 0 1 1 0 64z\"]\n};\nconst faPeoplePulling = {\n prefix: 'fas',\n iconName: 'people-pulling',\n icon: [576, 512, [], \"e535\", \"M80 96A48 48 0 1 0 80 0a48 48 0 1 0 0 96zM64 128c-35.3 0-64 28.7-64 64L0 320c0 17.7 14.3 32 32 32c9.8 0 18.5-4.4 24.4-11.2L80.4 485.3c2.9 17.4 19.4 29.2 36.8 26.3s29.2-19.4 26.3-36.8L123.1 352l15.7 0 30 134.9c3.8 17.3 20.9 28.1 38.2 24.3s28.1-20.9 24.3-38.2l-57.3-258 116.3 53.8c.5 .3 1.1 .5 1.6 .7c8.6 3.6 18 3.1 25.9-.7c3.4-1.6 6.6-3.9 9.3-6.7c3.1-3.2 5.5-7 7.1-11.4c.1-.3 .2-.7 .3-1l2.5-7.5c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L537 232.7l-15.3-36.8C504.5 154.8 464.3 128 419.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-24.4 10.9-44.6 29-58.1 51.6L157.3 136.9C144.7 131 130.9 128 117 128l-53 0zM464 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM349.7 335.6l-25 62.4-59.4 59.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L372.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6z\"]\n};\nconst faN = {\n prefix: 'fas',\n iconName: 'n',\n icon: [384, 512, [110], \"4e\", \"M21.1 33.9c12.7-4.6 26.9-.7 35.5 9.6L320 359.6 320 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 384c0 13.5-8.4 25.5-21.1 30.1s-26.9 .7-35.5-9.6L64 152.4 64 448c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 64C0 50.5 8.4 38.5 21.1 33.9z\"]\n};\nconst faCableCar = {\n prefix: 'fas',\n iconName: 'cable-car',\n icon: [512, 512, [128673, 57551, \"tram\"], \"f7da\", \"M288 0a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM160 56a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM32 288c0-35.3 28.7-64 64-64l136 0 0-66.5-203.1 42c-13 2.7-25.7-5.7-28.4-18.6s5.7-25.7 18.6-28.4l232-48 232-48c13-2.7 25.7 5.7 28.4 18.6s-5.7 25.7-18.6 28.4L280 147.5l0 76.5 136 0c35.3 0 64 28.7 64 64l0 160c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-160zm64 0c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l64 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-64 0zm112 16l0 64c0 8.8 7.2 16 16 16l64 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-64 0c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l64 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-64 0z\"]\n};\nconst faTram = faCableCar;\nconst faCloudRain = {\n prefix: 'fas',\n iconName: 'cloud-rain',\n icon: [512, 512, [127783, 9926], \"f73d\", \"M96 320c-53 0-96-43-96-96c0-42.5 27.6-78.6 65.9-91.2C64.7 126.1 64 119.1 64 112C64 50.1 114.1 0 176 0c43.1 0 80.5 24.3 99.2 60c14.7-17.1 36.5-28 60.8-28c44.2 0 80 35.8 80 80c0 5.5-.6 10.8-1.6 16c.5 0 1.1 0 1.6 0c53 0 96 43 96 96s-43 96-96 96L96 320zm-6.8 52c1.3-2.5 3.9-4 6.8-4s5.4 1.5 6.8 4l35.1 64.6c4.1 7.5 6.2 15.8 6.2 24.3l0 3c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-3c0-8.5 2.1-16.9 6.2-24.3L89.2 372zm160 0c1.3-2.5 3.9-4 6.8-4s5.4 1.5 6.8 4l35.1 64.6c4.1 7.5 6.2 15.8 6.2 24.3l0 3c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-3c0-8.5 2.1-16.9 6.2-24.3L249.2 372zm124.9 64.6L409.2 372c1.3-2.5 3.9-4 6.8-4s5.4 1.5 6.8 4l35.1 64.6c4.1 7.5 6.2 15.8 6.2 24.3l0 3c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-3c0-8.5 2.1-16.9 6.2-24.3z\"]\n};\nconst faBuildingCircleXmark = {\n prefix: 'fas',\n iconName: 'building-circle-xmark',\n icon: [640, 512, [], \"e4d4\", \"M48 0C21.5 0 0 21.5 0 48L0 464c0 26.5 21.5 48 48 48l96 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 96 0c15.1 0 28.5-6.9 37.3-17.8C340.4 462.2 320 417.5 320 368c0-54.7 24.9-103.5 64-135.8L384 48c0-26.5-21.5-48-48-48L48 0zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm112-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM80 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nconst faShip = {\n prefix: 'fas',\n iconName: 'ship',\n icon: [576, 512, [128674], \"f21a\", \"M192 32c0-17.7 14.3-32 32-32L352 0c17.7 0 32 14.3 32 32l0 32 48 0c26.5 0 48 21.5 48 48l0 128 44.4 14.8c23.1 7.7 29.5 37.5 11.5 53.9l-101 92.6c-16.2 9.4-34.7 15.1-50.9 15.1c-19.6 0-40.8-7.7-59.2-20.3c-22.1-15.5-51.6-15.5-73.7 0c-17.1 11.8-38 20.3-59.2 20.3c-16.2 0-34.7-5.7-50.9-15.1l-101-92.6c-18-16.5-11.6-46.2 11.5-53.9L96 240l0-128c0-26.5 21.5-48 48-48l48 0 0-32zM160 218.7l107.8-35.9c13.1-4.4 27.3-4.4 40.5 0L416 218.7l0-90.7-256 0 0 90.7zM306.5 421.9C329 437.4 356.5 448 384 448c26.9 0 55.4-10.8 77.4-26.1c0 0 0 0 0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 501.7 417 512 384 512c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7c0 0 0 0 0 0C136.7 437.2 165.1 448 192 448c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"]\n};\nconst faArrowsDownToLine = {\n prefix: 'fas',\n iconName: 'arrows-down-to-line',\n icon: [576, 512, [], \"e4b8\", \"M544 416L32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32zm22.6-137.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L480 274.7 480 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 210.7-41.4-41.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l96-96zm-320-45.3c-12.5-12.5-32.8-12.5-45.3 0L160 274.7 160 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 210.7L54.6 233.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3z\"]\n};\nconst faDownload = {\n prefix: 'fas',\n iconName: 'download',\n icon: [512, 512, [], \"f019\", \"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 242.7-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 274.7 288 32zM64 352c-35.3 0-64 28.7-64 64l0 32c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-32c0-35.3-28.7-64-64-64l-101.5 0-45.3 45.3c-25 25-65.5 25-90.5 0L165.5 352 64 352zm368 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nconst faFaceGrin = {\n prefix: 'fas',\n iconName: 'face-grin',\n icon: [512, 512, [128512, \"grin\"], \"f580\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nconst faGrin = faFaceGrin;\nconst faDeleteLeft = {\n prefix: 'fas',\n iconName: 'delete-left',\n icon: [576, 512, [9003, \"backspace\"], \"f55a\", \"M576 128c0-35.3-28.7-64-64-64L205.3 64c-17 0-33.3 6.7-45.3 18.7L9.4 233.4c-6 6-9.4 14.1-9.4 22.6s3.4 16.6 9.4 22.6L160 429.3c12 12 28.3 18.7 45.3 18.7L512 448c35.3 0 64-28.7 64-64l0-256zM271 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nconst faBackspace = faDeleteLeft;\nconst faEyeDropper = {\n prefix: 'fas',\n iconName: 'eye-dropper',\n icon: [512, 512, [\"eye-dropper-empty\", \"eyedropper\"], \"f1fb\", \"M341.6 29.2L240.1 130.8l-9.4-9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4L482.8 170.4c39-39 39-102.2 0-141.1s-102.2-39-141.1 0zM55.4 323.3c-15 15-23.4 35.4-23.4 56.6l0 42.4L5.4 462.2c-8.5 12.7-6.8 29.6 4 40.4s27.7 12.5 40.4 4L89.7 480l42.4 0c21.2 0 41.6-8.4 56.6-23.4L309.4 335.9l-45.3-45.3L143.4 411.3c-3 3-7.1 4.7-11.3 4.7L96 416l0-36.1c0-4.2 1.7-8.3 4.7-11.3L221.4 247.9l-45.3-45.3L55.4 323.3z\"]\n};\nconst faEyeDropperEmpty = faEyeDropper;\nconst faEyedropper = faEyeDropper;\nconst faFileCircleCheck = {\n prefix: 'fas',\n iconName: 'file-circle-check',\n icon: [576, 512, [], \"e5a0\", \"M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zM288 368a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm211.3-43.3c-6.2-6.2-16.4-6.2-22.6 0L416 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z\"]\n};\nconst faForward = {\n prefix: 'fas',\n iconName: 'forward',\n icon: [512, 512, [9193], \"f04e\", \"M52.5 440.6c-9.5 7.9-22.8 9.7-34.1 4.4S0 428.4 0 416L0 96C0 83.6 7.2 72.3 18.4 67s24.5-3.6 34.1 4.4L224 214.3l0 41.7 0 41.7L52.5 440.6zM256 352l0-96 0-128 0-32c0-12.4 7.2-23.7 18.4-29s24.5-3.6 34.1 4.4l192 160c7.3 6.1 11.5 15.1 11.5 24.6s-4.2 18.5-11.5 24.6l-192 160c-9.5 7.9-22.8 9.7-34.1 4.4s-18.4-16.6-18.4-29l0-64z\"]\n};\nconst faMobile = {\n prefix: 'fas',\n iconName: 'mobile',\n icon: [384, 512, [128241, \"mobile-android\", \"mobile-phone\"], \"f3ce\", \"M80 0C44.7 0 16 28.7 16 64l0 384c0 35.3 28.7 64 64 64l224 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L80 0zm80 432l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nconst faMobileAndroid = faMobile;\nconst faMobilePhone = faMobile;\nconst faFaceMeh = {\n prefix: 'fas',\n iconName: 'face-meh',\n icon: [512, 512, [128528, \"meh\"], \"f11a\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM176.4 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM160 336l192 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nconst faMeh = faFaceMeh;\nconst faAlignCenter = {\n prefix: 'fas',\n iconName: 'align-center',\n icon: [448, 512, [], \"f037\", \"M352 64c0-17.7-14.3-32-32-32L128 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32zm96 128c0-17.7-14.3-32-32-32L32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32zM0 448c0 17.7 14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 416c-17.7 0-32 14.3-32 32zM352 320c0-17.7-14.3-32-32-32l-192 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32z\"]\n};\nconst faBookSkull = {\n prefix: 'fas',\n iconName: 'book-skull',\n icon: [448, 512, [\"book-dead\"], \"f6b7\", \"M0 96C0 43 43 0 96 0L384 0l32 0c17.7 0 32 14.3 32 32l0 320c0 17.7-14.3 32-32 32l0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0L96 512c-53 0-96-43-96-96L0 96zM64 416c0 17.7 14.3 32 32 32l256 0 0-64L96 384c-17.7 0-32 14.3-32 32zM320 112c0-35.3-35.8-64-80-64s-80 28.7-80 64c0 20.9 12.6 39.5 32 51.2l0 12.8c0 8.8 7.2 16 16 16l64 0c8.8 0 16-7.2 16-16l0-12.8c19.4-11.7 32-30.3 32-51.2zM208 96a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm48 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM134.3 209.3c-8.1-3.5-17.5 .3-21 8.4s.3 17.5 8.4 21L199.4 272l-77.7 33.3c-8.1 3.5-11.9 12.9-8.4 21s12.9 11.9 21 8.4L240 289.4l105.7 45.3c8.1 3.5 17.5-.3 21-8.4s-.3-17.5-8.4-21L280.6 272l77.7-33.3c8.1-3.5 11.9-12.9 8.4-21s-12.9-11.9-21-8.4L240 254.6 134.3 209.3z\"]\n};\nconst faBookDead = faBookSkull;\nconst faIdCard = {\n prefix: 'fas',\n iconName: 'id-card',\n icon: [576, 512, [62147, \"drivers-license\"], \"f2c2\", \"M0 96l576 0c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96zm0 32L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-288L0 128zM64 405.3c0-29.5 23.9-53.3 53.3-53.3l117.3 0c29.5 0 53.3 23.9 53.3 53.3c0 5.9-4.8 10.7-10.7 10.7L74.7 416c-5.9 0-10.7-4.8-10.7-10.7zM176 192a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm176 16c0-8.8 7.2-16 16-16l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16z\"]\n};\nconst faDriversLicense = faIdCard;\nconst faOutdent = {\n prefix: 'fas',\n iconName: 'outdent',\n icon: [448, 512, [\"dedent\"], \"f03b\", \"M0 64C0 46.3 14.3 32 32 32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64zM192 192c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32zm32 96l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zM0 448c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32zM.2 268.6c-8.2-6.4-8.2-18.9 0-25.3l101.9-79.3c10.5-8.2 25.8-.7 25.8 12.6l0 158.6c0 13.3-15.3 20.8-25.8 12.6L.2 268.6z\"]\n};\nconst faDedent = faOutdent;\nconst faHeartCircleExclamation = {\n prefix: 'fas',\n iconName: 'heart-circle-exclamation',\n icon: [576, 512, [], \"e4fe\", \"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6l0-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1l0 5.8c0 41.5 17.2 81.2 47.6 109.5zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"]\n};\nconst faHouse = {\n prefix: 'fas',\n iconName: 'house',\n icon: [576, 512, [127968, 63498, 63500, \"home\", \"home-alt\", \"home-lg-alt\"], \"f015\", \"M575.8 255.5c0 18-15 32.1-32 32.1l-32 0 .7 160.2c0 2.7-.2 5.4-.5 8.1l0 16.2c0 22.1-17.9 40-40 40l-16 0c-1.1 0-2.2 0-3.3-.1c-1.4 .1-2.8 .1-4.2 .1L416 512l-24 0c-22.1 0-40-17.9-40-40l0-24 0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32l0 64 0 24c0 22.1-17.9 40-40 40l-24 0-31.9 0c-1.5 0-3-.1-4.5-.2c-1.2 .1-2.4 .2-3.6 .2l-16 0c-22.1 0-40-17.9-40-40l0-112c0-.9 0-1.9 .1-2.8l0-69.7-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L564.8 231.5c8 7 12 15 11 24z\"]\n};\nconst faHome = faHouse;\nconst faHomeAlt = faHouse;\nconst faHomeLgAlt = faHouse;\nconst faCalendarWeek = {\n prefix: 'fas',\n iconName: 'calendar-week',\n icon: [448, 512, [], \"f784\", \"M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 48 0c26.5 0 48 21.5 48 48l0 48L0 160l0-48C0 85.5 21.5 64 48 64l48 0 0-32c0-17.7 14.3-32 32-32zM0 192l448 0 0 272c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 192zm80 64c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l288 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16L80 256z\"]\n};\nconst faLaptopMedical = {\n prefix: 'fas',\n iconName: 'laptop-medical',\n icon: [640, 512, [], \"f812\", \"M64 96c0-35.3 28.7-64 64-64l384 0c35.3 0 64 28.7 64 64l0 256-64 0 0-256L128 96l0 256-64 0L64 96zM0 403.2C0 392.6 8.6 384 19.2 384l601.6 0c10.6 0 19.2 8.6 19.2 19.2c0 42.4-34.4 76.8-76.8 76.8L76.8 480C34.4 480 0 445.6 0 403.2zM288 160c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 48 48 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l48 0 0-48z\"]\n};\nconst faB = {\n prefix: 'fas',\n iconName: 'b',\n icon: [320, 512, [98], \"42\", \"M64 32C28.7 32 0 60.7 0 96L0 256 0 416c0 35.3 28.7 64 64 64l128 0c70.7 0 128-57.3 128-128c0-46.5-24.8-87.3-62-109.7c18.7-22.3 30-51 30-82.3c0-70.7-57.3-128-128-128L64 32zm96 192l-96 0L64 96l96 0c35.3 0 64 28.7 64 64s-28.7 64-64 64zM64 288l96 0 32 0c35.3 0 64 28.7 64 64s-28.7 64-64 64L64 416l0-128z\"]\n};\nconst faFileMedical = {\n prefix: 'fas',\n iconName: 'file-medical',\n icon: [384, 512, [], \"f477\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM160 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 48 48 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l48 0 0-48z\"]\n};\nconst faDiceOne = {\n prefix: 'fas',\n iconName: 'dice-one',\n icon: [448, 512, [9856], \"f525\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM224 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nconst faKiwiBird = {\n prefix: 'fas',\n iconName: 'kiwi-bird',\n icon: [576, 512, [], \"f535\", \"M291.2 388.4c31.2-18.8 64.7-36.4 101.1-36.4l55.7 0c4.6 0 9.1-.2 13.6-.7l85.3 121.9c4 5.7 11.3 8.2 17.9 6.1s11.2-8.3 11.2-15.3l0-240c0-70.7-57.3-128-128-128l-55.7 0c-36.4 0-69.9-17.6-101.1-36.4C262.3 42.1 228.3 32 192 32C86 32 0 118 0 224c0 71.1 38.6 133.1 96 166.3L96 456c0 13.3 10.7 24 24 24s24-10.7 24-24l0-46c15.3 3.9 31.4 6 48 6c5.4 0 10.7-.2 16-.7l0 40.7c0 13.3 10.7 24 24 24s24-10.7 24-24l0-50.9c12.4-4.4 24.2-10 35.2-16.7zM448 200a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nconst faArrowRightArrowLeft = {\n prefix: 'fas',\n iconName: 'arrow-right-arrow-left',\n icon: [448, 512, [8644, \"exchange\"], \"f0ec\", \"M438.6 150.6c12.5-12.5 12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.7 96 32 96C14.3 96 0 110.3 0 128s14.3 32 32 32l306.7 0-41.4 41.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l96-96zm-333.3 352c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 416 416 416c17.7 0 32-14.3 32-32s-14.3-32-32-32l-306.7 0 41.4-41.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96z\"]\n};\nconst faExchange = faArrowRightArrowLeft;\nconst faRotateRight = {\n prefix: 'fas',\n iconName: 'rotate-right',\n icon: [512, 512, [\"redo-alt\", \"rotate-forward\"], \"f2f9\", \"M463.5 224l8.5 0c13.3 0 24-10.7 24-24l0-128c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2L413.4 96.6c-87.6-86.5-228.7-86.2-315.8 1c-87.5 87.5-87.5 229.3 0 316.8s229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3c62.2-62.2 162.7-62.5 225.3-1L327 183c-6.9 6.9-8.9 17.2-5.2 26.2s12.5 14.8 22.2 14.8l119.5 0z\"]\n};\nconst faRedoAlt = faRotateRight;\nconst faRotateForward = faRotateRight;\nconst faUtensils = {\n prefix: 'fas',\n iconName: 'utensils',\n icon: [448, 512, [127860, 61685, \"cutlery\"], \"f2e7\", \"M416 0C400 0 288 32 288 176l0 112c0 35.3 28.7 64 64 64l32 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 0-112 0-208c0-17.7-14.3-32-32-32zM64 16C64 7.8 57.9 1 49.7 .1S34.2 4.6 32.4 12.5L2.1 148.8C.7 155.1 0 161.5 0 167.9c0 45.9 35.1 83.6 80 87.7L80 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-224.4c44.9-4.1 80-41.8 80-87.7c0-6.4-.7-12.8-2.1-19.1L191.6 12.5c-1.8-8-9.3-13.3-17.4-12.4S160 7.8 160 16l0 134.2c0 5.4-4.4 9.8-9.8 9.8c-5.1 0-9.3-3.9-9.8-9L127.9 14.6C127.2 6.3 120.3 0 112 0s-15.2 6.3-15.9 14.6L83.7 151c-.5 5.1-4.7 9-9.8 9c-5.4 0-9.8-4.4-9.8-9.8L64 16zm48.3 152l-.3 0-.3 0 .3-.7 .3 .7z\"]\n};\nconst faCutlery = faUtensils;\nconst faArrowUpWideShort = {\n prefix: 'fas',\n iconName: 'arrow-up-wide-short',\n icon: [576, 512, [\"sort-amount-up\"], \"f161\", \"M151.6 42.4C145.5 35.8 137 32 128 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L96 146.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-301.7 32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 480l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128l160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128l224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32z\"]\n};\nconst faSortAmountUp = faArrowUpWideShort;\nconst faMillSign = {\n prefix: 'fas',\n iconName: 'mill-sign',\n icon: [384, 512, [], \"e1ed\", \"M302.1 42.8c5.9-16.6-2.7-35-19.4-40.9s-35 2.7-40.9 19.4L208 116.1c-5.7 4-11.1 8.5-16 13.5C171.7 108.9 143.3 96 112 96c-19.5 0-37.8 5-53.7 13.7C52.5 101.4 42.9 96 32 96C14.3 96 0 110.3 0 128l0 80L0 416c0 17.7 14.3 32 32 32s32-14.3 32-32l0-208c0-26.5 21.5-48 48-48s48 21.5 48 48l0 42.5L81.9 469.2c-5.9 16.6 2.7 35 19.4 40.9s35-2.7 40.9-19.4l21.4-60C168.9 441 179.6 448 192 448c17.7 0 32-14.3 32-32l0-154.5 35.7-100c3.9-1 8.1-1.6 12.3-1.6c26.5 0 48 21.5 48 48l0 208c0 17.7 14.3 32 32 32s32-14.3 32-32l0-208c0-58.2-44.3-106-101.1-111.5l19.2-53.8z\"]\n};\nconst faBowlRice = {\n prefix: 'fas',\n iconName: 'bowl-rice',\n icon: [512, 512, [], \"e2eb\", \"M176 56c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zm24 48l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zM56 176l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zM0 283.4C0 268.3 12.3 256 27.4 256l457.1 0c15.1 0 27.4 12.3 27.4 27.4c0 70.5-44.4 130.7-106.7 154.1L403.5 452c-2 16-15.6 28-31.8 28l-231.5 0c-16.1 0-29.8-12-31.8-28l-1.8-14.4C44.4 414.1 0 353.9 0 283.4zM224 200c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zm-96 0c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zm-24-96l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm216 96c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zm-24-96l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm120 96c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zm-24-96l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zM296 32l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nconst faSkull = {\n prefix: 'fas',\n iconName: 'skull',\n icon: [512, 512, [128128], \"f54c\", \"M416 398.9c58.5-41.1 96-104.1 96-174.9C512 100.3 397.4 0 256 0S0 100.3 0 224c0 70.7 37.5 133.8 96 174.9c0 .4 0 .7 0 1.1l0 64c0 26.5 21.5 48 48 48l48 0 0-48c0-8.8 7.2-16 16-16s16 7.2 16 16l0 48 64 0 0-48c0-8.8 7.2-16 16-16s16 7.2 16 16l0 48 48 0c26.5 0 48-21.5 48-48l0-64c0-.4 0-.7 0-1.1zM96 256a64 64 0 1 1 128 0A64 64 0 1 1 96 256zm256-64a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"]\n};\nconst faTowerBroadcast = {\n prefix: 'fas',\n iconName: 'tower-broadcast',\n icon: [576, 512, [\"broadcast-tower\"], \"f519\", \"M80.3 44C69.8 69.9 64 98.2 64 128s5.8 58.1 16.3 84c6.6 16.4-1.3 35-17.7 41.7s-35-1.3-41.7-17.7C7.4 202.6 0 166.1 0 128S7.4 53.4 20.9 20C27.6 3.6 46.2-4.3 62.6 2.3S86.9 27.6 80.3 44zM555.1 20C568.6 53.4 576 89.9 576 128s-7.4 74.6-20.9 108c-6.6 16.4-25.3 24.3-41.7 17.7S489.1 228.4 495.7 212c10.5-25.9 16.3-54.2 16.3-84s-5.8-58.1-16.3-84C489.1 27.6 497 9 513.4 2.3s35 1.3 41.7 17.7zM352 128c0 23.7-12.9 44.4-32 55.4L320 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-296.6c-19.1-11.1-32-31.7-32-55.4c0-35.3 28.7-64 64-64s64 28.7 64 64zM170.6 76.8C163.8 92.4 160 109.7 160 128s3.8 35.6 10.6 51.2c7.1 16.2-.3 35.1-16.5 42.1s-35.1-.3-42.1-16.5c-10.3-23.6-16-49.6-16-76.8s5.7-53.2 16-76.8c7.1-16.2 25.9-23.6 42.1-16.5s23.6 25.9 16.5 42.1zM464 51.2c10.3 23.6 16 49.6 16 76.8s-5.7 53.2-16 76.8c-7.1 16.2-25.9 23.6-42.1 16.5s-23.6-25.9-16.5-42.1c6.8-15.6 10.6-32.9 10.6-51.2s-3.8-35.6-10.6-51.2c-7.1-16.2 .3-35.1 16.5-42.1s35.1 .3 42.1 16.5z\"]\n};\nconst faBroadcastTower = faTowerBroadcast;\nconst faTruckPickup = {\n prefix: 'fas',\n iconName: 'truck-pickup',\n icon: [640, 512, [128763], \"f63c\", \"M368.6 96l76.8 96L288 192l0-96 80.6 0zM224 80l0 112L64 192c-17.7 0-32 14.3-32 32l0 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l33.1 0c-.7 5.2-1.1 10.6-1.1 16c0 61.9 50.1 112 112 112s112-50.1 112-112c0-5.4-.4-10.8-1.1-16l66.3 0c-.7 5.2-1.1 10.6-1.1 16c0 61.9 50.1 112 112 112s112-50.1 112-112c0-5.4-.4-10.8-1.1-16l33.1 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-64c0-17.7-14.3-32-32-32l-48.6 0L418.6 56c-12.1-15.2-30.5-24-50-24L272 32c-26.5 0-48 21.5-48 48zm0 288a48 48 0 1 1 -96 0 48 48 0 1 1 96 0zm288 0a48 48 0 1 1 -96 0 48 48 0 1 1 96 0z\"]\n};\nconst faUpLong = {\n prefix: 'fas',\n iconName: 'up-long',\n icon: [320, 512, [\"long-arrow-alt-up\"], \"f30c\", \"M318 177.5c3.8-8.8 2-19-4.6-26l-136-144C172.9 2.7 166.6 0 160 0s-12.9 2.7-17.4 7.5l-136 144c-6.6 7-8.4 17.2-4.6 26S14.4 192 24 192l72 0 0 288c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-288 72 0c9.6 0 18.2-5.7 22-14.5z\"]\n};\nconst faLongArrowAltUp = faUpLong;\nconst faStop = {\n prefix: 'fas',\n iconName: 'stop',\n icon: [384, 512, [9209], \"f04d\", \"M0 128C0 92.7 28.7 64 64 64H320c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128z\"]\n};\nconst faCodeMerge = {\n prefix: 'fas',\n iconName: 'code-merge',\n icon: [448, 512, [], \"f387\", \"M80 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm32.4 97.2c28-12.4 47.6-40.5 47.6-73.2c0-44.2-35.8-80-80-80S0 35.8 0 80c0 32.8 19.7 61 48 73.3l0 205.3C19.7 371 0 399.2 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-32.8-19.7-61-48-73.3l0-86.6c26.7 20.1 60 32 96 32l86.7 0c12.3 28.3 40.5 48 73.3 48c44.2 0 80-35.8 80-80s-35.8-80-80-80c-32.8 0-61 19.7-73.3 48L208 240c-49.9 0-91-38.1-95.6-86.8zM80 408a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM344 272a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nconst faUpload = {\n prefix: 'fas',\n iconName: 'upload',\n icon: [512, 512, [], \"f093\", \"M288 109.3L288 352c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-242.7-73.4 73.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l128-128c12.5-12.5 32.8-12.5 45.3 0l128 128c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L288 109.3zM64 352l128 0c0 35.3 28.7 64 64 64s64-28.7 64-64l128 0c35.3 0 64 28.7 64 64l0 32c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64l0-32c0-35.3 28.7-64 64-64zM432 456a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nconst faHurricane = {\n prefix: 'fas',\n iconName: 'hurricane',\n icon: [384, 512, [], \"f751\", \"M0 208C0 104.4 75.7 18.5 174.9 2.6C184 1.2 192 8.6 192 17.9l0 63.3c0 8.4 6.5 15.3 14.7 16.5C307 112.5 384 199 384 303.4c0 103.6-75.7 189.5-174.9 205.4c-9.2 1.5-17.1-5.9-17.1-15.2l0-63.3c0-8.4-6.5-15.3-14.7-16.5C77 398.9 0 312.4 0 208zm288 48A96 96 0 1 0 96 256a96 96 0 1 0 192 0zm-96-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nconst faMound = {\n prefix: 'fas',\n iconName: 'mound',\n icon: [576, 512, [], \"e52d\", \"M144.1 179.2C173.8 127.7 228.6 96 288 96s114.2 31.7 143.9 83.2L540.4 368c12.3 21.3-3.1 48-27.7 48H63.3c-24.6 0-40-26.6-27.7-48L144.1 179.2z\"]\n};\nconst faToiletPortable = {\n prefix: 'fas',\n iconName: 'toilet-portable',\n icon: [320, 512, [], \"e583\", \"M0 32L0 64l320 0 0-32c0-17.7-14.3-32-32-32L32 0C14.3 0 0 14.3 0 32zM24 96L0 96l0 24L0 488c0 13.3 10.7 24 24 24s24-10.7 24-24l0-8 224 0 0 8c0 13.3 10.7 24 24 24s24-10.7 24-24l0-368 0-24-24 0L24 96zM256 240l0 64c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nconst faCompactDisc = {\n prefix: 'fas',\n iconName: 'compact-disc',\n icon: [512, 512, [128191, 128192, 128440], \"f51f\", \"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256 32a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm-96-32a96 96 0 1 0 192 0 96 96 0 1 0 -192 0zM96 240c0-35 17.5-71.1 45.2-98.8S205 96 240 96c8.8 0 16-7.2 16-16s-7.2-16-16-16c-45.4 0-89.2 22.3-121.5 54.5S64 194.6 64 240c0 8.8 7.2 16 16 16s16-7.2 16-16z\"]\n};\nconst faFileArrowDown = {\n prefix: 'fas',\n iconName: 'file-arrow-down',\n icon: [384, 512, [\"file-download\"], \"f56d\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM216 232l0 102.1 31-31c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-72 72c-9.4 9.4-24.6 9.4-33.9 0l-72-72c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l31 31L168 232c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nconst faFileDownload = faFileArrowDown;\nconst faCaravan = {\n prefix: 'fas',\n iconName: 'caravan',\n icon: [640, 512, [], \"f8ff\", \"M0 112C0 67.8 35.8 32 80 32l336 0c88.4 0 160 71.6 160 160l0 160 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0-288 0c0 53-43 96-96 96s-96-43-96-96l-16 0c-44.2 0-80-35.8-80-80L0 112zM320 352l128 0 0-96-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l32 0 0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32l0 192zM96 128c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32L96 128zm96 336a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"]\n};\nconst faShieldCat = {\n prefix: 'fas',\n iconName: 'shield-cat',\n icon: [512, 512, [], \"e572\", \"M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2c.5 99.2 41.3 280.7 213.6 363.2c16.7 8 36.1 8 52.8 0C454.7 420.7 495.5 239.2 496 140c.1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM160 154.4c0-5.8 4.7-10.4 10.4-10.4l.2 0c3.4 0 6.5 1.6 8.5 4.3l40 53.3c3 4 7.8 6.4 12.8 6.4l48 0c5 0 9.8-2.4 12.8-6.4l40-53.3c2-2.7 5.2-4.3 8.5-4.3l.2 0c5.8 0 10.4 4.7 10.4 10.4L352 272c0 53-43 96-96 96s-96-43-96-96l0-117.6zM216 288a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm96-16a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z\"]\n};\nconst faBolt = {\n prefix: 'fas',\n iconName: 'bolt',\n icon: [448, 512, [9889, \"zap\"], \"f0e7\", \"M349.4 44.6c5.9-13.7 1.5-29.7-10.6-38.5s-28.6-8-39.9 1.8l-256 224c-10 8.8-13.6 22.9-8.9 35.3S50.7 288 64 288l111.5 0L98.6 467.4c-5.9 13.7-1.5 29.7 10.6 38.5s28.6 8 39.9-1.8l256-224c10-8.8 13.6-22.9 8.9-35.3s-16.6-20.7-30-20.7l-111.5 0L349.4 44.6z\"]\n};\nconst faZap = faBolt;\nconst faGlassWater = {\n prefix: 'fas',\n iconName: 'glass-water',\n icon: [384, 512, [], \"e4f4\", \"M32 0C23.1 0 14.6 3.7 8.6 10.2S-.6 25.4 .1 34.3L28.9 437.7c3 41.9 37.8 74.3 79.8 74.3l166.6 0c42 0 76.8-32.4 79.8-74.3L383.9 34.3c.6-8.9-2.4-17.6-8.5-24.1S360.9 0 352 0L32 0zM73 156.5L66.4 64l251.3 0L311 156.5l-24.2 12.1c-19.4 9.7-42.2 9.7-61.6 0c-20.9-10.4-45.5-10.4-66.4 0c-19.4 9.7-42.2 9.7-61.6 0L73 156.5z\"]\n};\nconst faOilWell = {\n prefix: 'fas',\n iconName: 'oil-well',\n icon: [576, 512, [], \"e532\", \"M528.3 61.3c-11.4-42.7-55.3-68-98-56.6L414.9 8.8C397.8 13.4 387.7 31 392.3 48l24.5 91.4L308.5 167.5l-6.3-18.1C297.7 136.6 285.6 128 272 128s-25.7 8.6-30.2 21.4l-13.6 39L96 222.6 96 184c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 264-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-137.3 0L340 257.5l-62.2 16.1L305.3 352l-66.6 0L265 277l-74.6 19.3L137.3 448 96 448l0-159.2 337.4-87.5 25.2 94c4.6 17.1 22.1 27.2 39.2 22.6l15.5-4.1c42.7-11.4 68-55.3 56.6-98L528.3 61.3zM205.1 448l11.2-32 111.4 0 11.2 32-133.8 0z\"]\n};\nconst faVault = {\n prefix: 'fas',\n iconName: 'vault',\n icon: [576, 512, [], \"e2c5\", \"M64 0C28.7 0 0 28.7 0 64L0 416c0 35.3 28.7 64 64 64l16 0 16 32 64 0 16-32 224 0 16 32 64 0 16-32 16 0c35.3 0 64-28.7 64-64l0-352c0-35.3-28.7-64-64-64L64 0zM224 320a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm0-240a160 160 0 1 1 0 320 160 160 0 1 1 0-320zM480 221.3L480 336c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-114.7c-18.6-6.6-32-24.4-32-45.3c0-26.5 21.5-48 48-48s48 21.5 48 48c0 20.9-13.4 38.7-32 45.3z\"]\n};\nconst faMars = {\n prefix: 'fas',\n iconName: 'mars',\n icon: [448, 512, [9794], \"f222\", \"M289.8 46.8c3.7-9 12.5-14.8 22.2-14.8l112 0c13.3 0 24 10.7 24 24l0 112c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-33.4-33.4L321 204.2c19.5 28.4 31 62.7 31 99.8c0 97.2-78.8 176-176 176S0 401.2 0 304s78.8-176 176-176c37 0 71.4 11.4 99.8 31l52.6-52.6L295 73c-6.9-6.9-8.9-17.2-5.2-26.2zM400 80s0 0 0 0s0 0 0 0s0 0 0 0zM176 416a112 112 0 1 0 0-224 112 112 0 1 0 0 224z\"]\n};\nconst faToilet = {\n prefix: 'fas',\n iconName: 'toilet',\n icon: [448, 512, [128701], \"f7d8\", \"M24 0C10.7 0 0 10.7 0 24S10.7 48 24 48l8 0 0 148.9c-1.9 1.4-3.8 2.9-5.6 4.4C10.9 214.5 0 232.9 0 256c0 46.9 14.3 84.1 37 112.5c14.2 17.7 31.1 31.3 48.5 41.8L65.6 469.9c-3.3 9.8-1.6 20.5 4.4 28.8s15.7 13.3 26 13.3l256 0c10.3 0 19.9-4.9 26-13.3s7.7-19.1 4.4-28.8l-19.8-59.5c17.4-10.5 34.3-24.1 48.5-41.8c22.7-28.4 37-65.5 37-112.5c0-23.1-10.9-41.5-26.4-54.6c-1.8-1.5-3.7-3-5.6-4.4L416 48l8 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 0zM384 256.3c0 1-.3 2.6-3.8 5.6c-4.8 4.1-14 9-29.3 13.4C320.5 284 276.1 288 224 288s-96.5-4-126.9-12.8c-15.3-4.4-24.5-9.3-29.3-13.4c-3.5-3-3.8-4.6-3.8-5.6l0-.3c0 0 0-.1 0-.1c0-1 0-2.5 3.8-5.8c4.8-4.1 14-9 29.3-13.4C127.5 228 171.9 224 224 224s96.5 4 126.9 12.8c15.3 4.4 24.5 9.3 29.3 13.4c3.8 3.2 3.8 4.8 3.8 5.8c0 0 0 .1 0 .1l0 .3zM328.2 384l-.2 .5 0-.5 .2 0zM112 64l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nconst faPlaneCircleXmark = {\n prefix: 'fas',\n iconName: 'plane-circle-xmark',\n icon: [640, 512, [], \"e557\", \"M256 0c-35 0-64 59.5-64 93.7l0 84.6L8.1 283.4c-5 2.8-8.1 8.2-8.1 13.9l0 65.5c0 10.6 10.2 18.3 20.4 15.4l171.6-49 0 70.9-57.6 43.2c-4 3-6.4 7.8-6.4 12.8l0 42c0 7.8 6.3 14 14 14c1.3 0 2.6-.2 3.9-.5L256 480l110.1 31.5c1.3 .4 2.6 .5 3.9 .5c6 0 11.1-3.7 13.1-9C344.5 470.7 320 422.2 320 368c0-60.6 30.6-114 77.1-145.6L320 178.3l0-84.6C320 59.5 292 0 256 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nconst faYenSign = {\n prefix: 'fas',\n iconName: 'yen-sign',\n icon: [320, 512, [165, \"cny\", \"jpy\", \"rmb\", \"yen\"], \"f157\", \"M58.6 46.3C48.8 31.5 29 27.6 14.2 37.4S-4.4 67 5.4 81.8L100.2 224 48 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l80 0 0 32-80 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l80 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 80 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-80 0 0-32 80 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-52.2 0L314.6 81.8c9.8-14.7 5.8-34.6-8.9-44.4s-34.6-5.8-44.4 8.9L160 198.3 58.6 46.3z\"]\n};\nconst faCny = faYenSign;\nconst faJpy = faYenSign;\nconst faRmb = faYenSign;\nconst faYen = faYenSign;\nconst faRubleSign = {\n prefix: 'fas',\n iconName: 'ruble-sign',\n icon: [384, 512, [8381, \"rouble\", \"rub\", \"ruble\"], \"f158\", \"M96 32C78.3 32 64 46.3 64 64l0 192-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 32-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0 0-32 112 0c79.5 0 144-64.5 144-144s-64.5-144-144-144L96 32zM240 256l-112 0 0-160 112 0c44.2 0 80 35.8 80 80s-35.8 80-80 80z\"]\n};\nconst faRouble = faRubleSign;\nconst faRub = faRubleSign;\nconst faRuble = faRubleSign;\nconst faSun = {\n prefix: 'fas',\n iconName: 'sun',\n icon: [512, 512, [9728], \"f185\", \"M361.5 1.2c5 2.1 8.6 6.6 9.6 11.9L391 121l107.9 19.8c5.3 1 9.8 4.6 11.9 9.6s1.5 10.7-1.6 15.2L446.9 256l62.3 90.3c3.1 4.5 3.7 10.2 1.6 15.2s-6.6 8.6-11.9 9.6L391 391 371.1 498.9c-1 5.3-4.6 9.8-9.6 11.9s-10.7 1.5-15.2-1.6L256 446.9l-90.3 62.3c-4.5 3.1-10.2 3.7-15.2 1.6s-8.6-6.6-9.6-11.9L121 391 13.1 371.1c-5.3-1-9.8-4.6-11.9-9.6s-1.5-10.7 1.6-15.2L65.1 256 2.8 165.7c-3.1-4.5-3.7-10.2-1.6-15.2s6.6-8.6 11.9-9.6L121 121 140.9 13.1c1-5.3 4.6-9.8 9.6-11.9s10.7-1.5 15.2 1.6L256 65.1 346.3 2.8c4.5-3.1 10.2-3.7 15.2-1.6zM160 256a96 96 0 1 1 192 0 96 96 0 1 1 -192 0zm224 0a128 128 0 1 0 -256 0 128 128 0 1 0 256 0z\"]\n};\nconst faGuitar = {\n prefix: 'fas',\n iconName: 'guitar',\n icon: [512, 512, [], \"f7a6\", \"M465 7c-9.4-9.4-24.6-9.4-33.9 0L383 55c-2.4 2.4-4.3 5.3-5.5 8.5l-15.4 41-77.5 77.6c-45.1-29.4-99.3-30.2-131 1.6c-11 11-18 24.6-21.4 39.6c-3.7 16.6-19.1 30.7-36.1 31.6c-25.6 1.3-49.3 10.7-67.3 28.6C-16 328.4-7.6 409.4 47.5 464.5s136.1 63.5 180.9 18.7c17.9-17.9 27.4-41.7 28.6-67.3c.9-17 15-32.3 31.6-36.1c15-3.4 28.6-10.5 39.6-21.4c31.8-31.8 31-85.9 1.6-131l77.6-77.6 41-15.4c3.2-1.2 6.1-3.1 8.5-5.5l48-48c9.4-9.4 9.4-24.6 0-33.9L465 7zM208 256a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"]\n};\nconst faFaceLaughWink = {\n prefix: 'fas',\n iconName: 'face-laugh-wink',\n icon: [512, 512, [\"laugh-wink\"], \"f59c\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM96.8 314.1c-3.8-13.7 7.4-26.1 21.6-26.1l275.2 0c14.2 0 25.5 12.4 21.6 26.1C396.2 382 332.1 432 256 432s-140.2-50-159.2-117.9zM144.4 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm156.4 25.6c-5.3 7.1-15.3 8.5-22.4 3.2s-8.5-15.3-3.2-22.4c30.4-40.5 91.2-40.5 121.6 0c5.3 7.1 3.9 17.1-3.2 22.4s-17.1 3.9-22.4-3.2c-17.6-23.5-52.8-23.5-70.4 0z\"]\n};\nconst faLaughWink = faFaceLaughWink;\nconst faHorseHead = {\n prefix: 'fas',\n iconName: 'horse-head',\n icon: [640, 512, [], \"f7ab\", \"M64 464l0-147.1c0-108.4 68.3-205.1 170.5-241.3L404.2 15.5C425.6 7.9 448 23.8 448 46.4c0 11-5.5 21.2-14.6 27.3L400 96c48.1 0 91.2 29.8 108.1 74.9l48.6 129.5c11.8 31.4 4.1 66.8-19.6 90.5c-16 16-37.8 25.1-60.5 25.1l-3.4 0c-26.1 0-50.9-11.6-67.6-31.7l-32.3-38.7c-11.7 4.1-24.2 6.4-37.3 6.4c0 0 0 0-.1 0c0 0 0 0 0 0c-6.3 0-12.5-.5-18.6-1.5c-3.6-.6-7.2-1.4-10.7-2.3c0 0 0 0 0 0c-28.9-7.8-53.1-26.8-67.8-52.2c-4.4-7.6-14.2-10.3-21.9-5.8s-10.3 14.2-5.8 21.9c24 41.5 68.3 70 119.3 71.9l47.2 70.8c4 6.1 6.2 13.2 6.2 20.4c0 20.3-16.5 36.8-36.8 36.8L112 512c-26.5 0-48-21.5-48-48zM392 224a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nconst faBoreHole = {\n prefix: 'fas',\n iconName: 'bore-hole',\n icon: [512, 512, [], \"e4c3\", \"M256 0c-17.7 0-32 14.3-32 32l0 264.6c-19.1 11.1-32 31.7-32 55.4c0 35.3 28.7 64 64 64s64-28.7 64-64c0-23.7-12.9-44.4-32-55.4L288 32c0-17.7-14.3-32-32-32zM48 128c-26.5 0-48 21.5-48 48L0 464c0 26.5 21.5 48 48 48l416 0c26.5 0 48-21.5 48-48l0-288c0-26.5-21.5-48-48-48l-80 0c-17.7 0-32 14.3-32 32l0 192c0 53-43 96-96 96s-96-43-96-96l0-192c0-17.7-14.3-32-32-32l-80 0z\"]\n};\nconst faIndustry = {\n prefix: 'fas',\n iconName: 'industry',\n icon: [576, 512, [], \"f275\", \"M64 32C46.3 32 32 46.3 32 64l0 240 0 48 0 80c0 26.5 21.5 48 48 48l416 0c26.5 0 48-21.5 48-48l0-128 0-151.8c0-18.2-19.4-29.7-35.4-21.1L352 215.4l0-63.2c0-18.2-19.4-29.7-35.4-21.1L160 215.4 160 64c0-17.7-14.3-32-32-32L64 32z\"]\n};\nconst faCircleDown = {\n prefix: 'fas',\n iconName: 'circle-down',\n icon: [512, 512, [61466, \"arrow-alt-circle-down\"], \"f358\", \"M256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM244.7 395.3l-112-112c-4.6-4.6-5.9-11.5-3.5-17.4s8.3-9.9 14.8-9.9l64 0 0-96c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 96 64 0c6.5 0 12.3 3.9 14.8 9.9s1.1 12.9-3.5 17.4l-112 112c-6.2 6.2-16.4 6.2-22.6 0z\"]\n};\nconst faArrowAltCircleDown = faCircleDown;\nconst faArrowsTurnToDots = {\n prefix: 'fas',\n iconName: 'arrows-turn-to-dots',\n icon: [512, 512, [], \"e4c1\", \"M249.4 25.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L269.3 96 416 96c53 0 96 43 96 96l0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32c0-17.7-14.3-32-32-32l-146.7 0 25.4 25.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-80-80c-12.5-12.5-12.5-32.8 0-45.3l80-80zm13.3 256l80 80c12.5 12.5 12.5 32.8 0 45.3l-80 80c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 416 96 416c-17.7 0-32 14.3-32 32l0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32c0-53 43-96 96-96l146.7 0-25.4-25.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0zM384 384a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM64 192A64 64 0 1 1 64 64a64 64 0 1 1 0 128z\"]\n};\nconst faFlorinSign = {\n prefix: 'fas',\n iconName: 'florin-sign',\n icon: [384, 512, [], \"e184\", \"M314.7 32c-38.8 0-73.7 23.3-88.6 59.1L170.7 224 64 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l80 0L98.9 396.3c-5 11.9-16.6 19.7-29.5 19.7L32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l37.3 0c38.8 0 73.7-23.3 88.6-59.1L213.3 288 320 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-80 0 45.1-108.3c5-11.9 16.6-19.7 29.5-19.7L352 96c17.7 0 32-14.3 32-32s-14.3-32-32-32l-37.3 0z\"]\n};\nconst faArrowDownShortWide = {\n prefix: 'fas',\n iconName: 'arrow-down-short-wide',\n icon: [576, 512, [\"sort-amount-desc\", \"sort-amount-down-alt\"], \"f884\", \"M151.6 469.6C145.5 476.2 137 480 128 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L96 365.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 301.7 32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 32l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nconst faSortAmountDesc = faArrowDownShortWide;\nconst faSortAmountDownAlt = faArrowDownShortWide;\nconst faLessThan = {\n prefix: 'fas',\n iconName: 'less-than',\n icon: [384, 512, [62774], \"3c\", \"M380.6 81.7c7.9 15.8 1.5 35-14.3 42.9L103.6 256 366.3 387.4c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3l-320-160C6.8 279.2 0 268.1 0 256s6.8-23.2 17.7-28.6l320-160c15.8-7.9 35-1.5 42.9 14.3z\"]\n};\nconst faAngleDown = {\n prefix: 'fas',\n iconName: 'angle-down',\n icon: [448, 512, [8964], \"f107\", \"M201.4 374.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 306.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z\"]\n};\nconst faCarTunnel = {\n prefix: 'fas',\n iconName: 'car-tunnel',\n icon: [512, 512, [], \"e4de\", \"M256 0C114.6 0 0 114.6 0 256L0 448c0 35.3 28.7 64 64 64l42.8 0c-6.6-5.9-10.8-14.4-10.8-24l0-112c0-20.8 11.3-38.9 28.1-48.6l21-64.7c7.5-23.1 29-38.7 53.3-38.7l115.2 0c24.3 0 45.8 15.6 53.3 38.7l21 64.7c16.8 9.7 28.2 27.8 28.2 48.6l0 112c0 9.6-4.2 18.1-10.8 24l42.8 0c35.3 0 64-28.7 64-64l0-192C512 114.6 397.4 0 256 0zM362.8 512c-6.6-5.9-10.8-14.4-10.8-24l0-40-192 0 0 40c0 9.6-4.2 18.1-10.8 24l213.7 0zM190.8 277.5L177 320l158 0-13.8-42.5c-1.1-3.3-4.1-5.5-7.6-5.5l-115.2 0c-3.5 0-6.5 2.2-7.6 5.5zM168 408a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm200-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"]\n};\nconst faHeadSideCough = {\n prefix: 'fas',\n iconName: 'head-side-cough',\n icon: [640, 512, [], \"e061\", \"M0 224.2C0 100.6 100.2 0 224 0l24 0c95.2 0 181.2 69.3 197.3 160.2c2.3 13 6.8 25.7 15.1 36l42 52.6c6.2 7.8 9.6 17.4 9.6 27.4c0 24.2-19.6 43.8-43.8 43.8L448 320s0 0 0 0l0 32L339.2 365.6c-11 1.4-19.2 10.7-19.2 21.8c0 11.6 9 21.2 20.6 21.9L448 416l0 16c0 26.5-21.5 48-48 48l-80 0 0 8c0 13.3-10.7 24-24 24l-40 0s0 0 0 0L96 512c-17.7 0-32-14.3-32-32l0-72.7c0-16.7-6.9-32.5-17.1-45.8C16.6 322.4 0 274.1 0 224.2zm352-.2a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM464 384a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm152-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM592 480a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM552 312a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm40-24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM552 408a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nconst faGripLines = {\n prefix: 'fas',\n iconName: 'grip-lines',\n icon: [448, 512, [], \"f7a4\", \"M32 288c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 288zm0-128c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 160z\"]\n};\nconst faThumbsDown = {\n prefix: 'fas',\n iconName: 'thumbs-down',\n icon: [512, 512, [128078, 61576], \"f165\", \"M313.4 479.1c26-5.2 42.9-30.5 37.7-56.5l-2.3-11.4c-5.3-26.7-15.1-52.1-28.8-75.2l144 0c26.5 0 48-21.5 48-48c0-18.5-10.5-34.6-25.9-42.6C497 236.6 504 223.1 504 208c0-23.4-16.8-42.9-38.9-47.1c4.4-7.3 6.9-15.8 6.9-24.9c0-21.3-13.9-39.4-33.1-45.6c.7-3.3 1.1-6.8 1.1-10.4c0-26.5-21.5-48-48-48l-97.5 0c-19 0-37.5 5.6-53.3 16.1L202.7 73.8C176 91.6 160 121.6 160 153.7l0 38.3 0 48 0 24.9c0 29.2 13.3 56.7 36 75l7.4 5.9c26.5 21.2 44.6 51 51.2 84.2l2.3 11.4c5.2 26 30.5 42.9 56.5 37.7zM32 384l64 0c17.7 0 32-14.3 32-32l0-224c0-17.7-14.3-32-32-32L32 96C14.3 96 0 110.3 0 128L0 352c0 17.7 14.3 32 32 32z\"]\n};\nconst faUserLock = {\n prefix: 'fas',\n iconName: 'user-lock',\n icon: [640, 512, [], \"f502\", \"M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512l362.8 0c-5.4-9.4-8.6-20.3-8.6-32l0-128c0-2.1 .1-4.2 .3-6.3c-31-26-71-41.7-114.6-41.7l-91.4 0zM528 240c17.7 0 32 14.3 32 32l0 48-64 0 0-48c0-17.7 14.3-32 32-32zm-80 32l0 48c-17.7 0-32 14.3-32 32l0 128c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"]\n};\nconst faArrowRightLong = {\n prefix: 'fas',\n iconName: 'arrow-right-long',\n icon: [512, 512, [\"long-arrow-right\"], \"f178\", \"M502.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l370.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128z\"]\n};\nconst faLongArrowRight = faArrowRightLong;\nconst faAnchorCircleXmark = {\n prefix: 'fas',\n iconName: 'anchor-circle-xmark',\n icon: [640, 512, [], \"e4ac\", \"M320 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm21.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80L224 176c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 208-48 0c-53 0-96-43-96-96l0-6.1 7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7 0 6.1c0 88.4 71.6 160 160 160l80 0 80 0c8.2 0 16.3-.6 24.2-1.8c-22.2-16.2-40.4-37.5-53-62.2L320 448l0-80 0-128 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-10.9 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nconst faEllipsis = {\n prefix: 'fas',\n iconName: 'ellipsis',\n icon: [448, 512, [\"ellipsis-h\"], \"f141\", \"M8 256a56 56 0 1 1 112 0A56 56 0 1 1 8 256zm160 0a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm216-56a56 56 0 1 1 0 112 56 56 0 1 1 0-112z\"]\n};\nconst faEllipsisH = faEllipsis;\nconst faChessPawn = {\n prefix: 'fas',\n iconName: 'chess-pawn',\n icon: [320, 512, [9823], \"f443\", \"M215.5 224c29.2-18.4 48.5-50.9 48.5-88c0-57.4-46.6-104-104-104S56 78.6 56 136c0 37.1 19.4 69.6 48.5 88L96 224c-17.7 0-32 14.3-32 32c0 16.5 12.5 30 28.5 31.8L80 400l160 0L227.5 287.8c16-1.8 28.5-15.3 28.5-31.8c0-17.7-14.3-32-32-32l-8.5 0zM22.6 473.4c-4.2 4.2-6.6 10-6.6 16C16 501.9 26.1 512 38.6 512l242.7 0c12.5 0 22.6-10.1 22.6-22.6c0-6-2.4-11.8-6.6-16L256 432 64 432 22.6 473.4z\"]\n};\nconst faKitMedical = {\n prefix: 'fas',\n iconName: 'kit-medical',\n icon: [576, 512, [\"first-aid\"], \"f479\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l32 0L96 32 64 32zm64 0l0 448 320 0 0-448L128 32zM512 480c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64l-32 0 0 448 32 0zM256 176c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 48 48 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l48 0 0-48z\"]\n};\nconst faFirstAid = faKitMedical;\nconst faPersonThroughWindow = {\n prefix: 'fas',\n iconName: 'person-through-window',\n icon: [640, 512, [], \"e5a9\", \"M64 64l224 0 0 9.8c0 39-23.7 74-59.9 88.4C167.6 186.5 128 245 128 310.2l0 73.8s0 0 0 0l-64 0L64 64zm288 0l224 0 0 320-67.7 0-3.7-4.5-75.2-90.2c-9.1-10.9-22.6-17.3-36.9-17.3l-71.1 0-41-63.1c-.3-.5-.6-1-1-1.4c44.7-29 72.5-79 72.5-133.6l0-9.8zm73 320l-45.8 0 42.7 64L592 448c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48L48 0C21.5 0 0 21.5 0 48L0 400c0 26.5 21.5 48 48 48l260.2 0 33.2 49.8c9.8 14.7 29.7 18.7 44.4 8.9s18.7-29.7 8.9-44.4L310.5 336l74.6 0 40 48zm-159.5 0L192 384s0 0 0 0l0-73.8c0-10.2 1.6-20.1 4.7-29.5L265.5 384zM192 128a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"]\n};\nconst faToolbox = {\n prefix: 'fas',\n iconName: 'toolbox',\n icon: [512, 512, [129520], \"f552\", \"M176 88l0 40 160 0 0-40c0-4.4-3.6-8-8-8L184 80c-4.4 0-8 3.6-8 8zm-48 40l0-40c0-30.9 25.1-56 56-56l144 0c30.9 0 56 25.1 56 56l0 40 28.1 0c12.7 0 24.9 5.1 33.9 14.1l51.9 51.9c9 9 14.1 21.2 14.1 33.9l0 92.1-128 0 0-32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 32-128 0 0-32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 32L0 320l0-92.1c0-12.7 5.1-24.9 14.1-33.9l51.9-51.9c9-9 21.2-14.1 33.9-14.1l28.1 0zM0 416l0-64 128 0c0 17.7 14.3 32 32 32s32-14.3 32-32l128 0c0 17.7 14.3 32 32 32s32-14.3 32-32l128 0 0 64c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64z\"]\n};\nconst faHandsHoldingCircle = {\n prefix: 'fas',\n iconName: 'hands-holding-circle',\n icon: [640, 512, [], \"e4fb\", \"M320 0a128 128 0 1 1 0 256A128 128 0 1 1 320 0zM40 64c22.1 0 40 17.9 40 40l0 40 0 80 0 40.2c0 17 6.7 33.3 18.7 45.3l51.1 51.1c8.3 8.3 21.3 9.6 31 3.1c12.9-8.6 14.7-26.9 3.7-37.8l-15.2-15.2-32-32c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l32 32 15.2 15.2c0 0 0 0 0 0l25.3 25.3c21 21 32.8 49.5 32.8 79.2l0 78.9c0 26.5-21.5 48-48 48l-66.7 0c-17 0-33.3-6.7-45.3-18.7L28.1 393.4C10.1 375.4 0 351 0 325.5L0 224l0-64 0-56C0 81.9 17.9 64 40 64zm560 0c22.1 0 40 17.9 40 40l0 56 0 64 0 101.5c0 25.5-10.1 49.9-28.1 67.9L512 493.3c-12 12-28.3 18.7-45.3 18.7L400 512c-26.5 0-48-21.5-48-48l0-78.9c0-29.7 11.8-58.2 32.8-79.2l25.3-25.3c0 0 0 0 0 0l15.2-15.2 32-32c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-32 32-15.2 15.2c-11 11-9.2 29.2 3.7 37.8c9.7 6.5 22.7 5.2 31-3.1l51.1-51.1c12-12 18.7-28.3 18.7-45.3l0-40.2 0-80 0-40c0-22.1 17.9-40 40-40z\"]\n};\nconst faBug = {\n prefix: 'fas',\n iconName: 'bug',\n icon: [512, 512, [], \"f188\", \"M256 0c53 0 96 43 96 96l0 3.6c0 15.7-12.7 28.4-28.4 28.4l-135.1 0c-15.7 0-28.4-12.7-28.4-28.4l0-3.6c0-53 43-96 96-96zM41.4 105.4c12.5-12.5 32.8-12.5 45.3 0l64 64c.7 .7 1.3 1.4 1.9 2.1c14.2-7.3 30.4-11.4 47.5-11.4l112 0c17.1 0 33.2 4.1 47.5 11.4c.6-.7 1.2-1.4 1.9-2.1l64-64c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-64 64c-.7 .7-1.4 1.3-2.1 1.9c6.2 12 10.1 25.3 11.1 39.5l64.3 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c0 24.6-5.5 47.8-15.4 68.6c2.2 1.3 4.2 2.9 6 4.8l64 64c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-63.1-63.1c-24.5 21.8-55.8 36.2-90.3 39.6L272 240c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 239.2c-34.5-3.4-65.8-17.8-90.3-39.6L86.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l64-64c1.9-1.9 3.9-3.4 6-4.8C101.5 367.8 96 344.6 96 320l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64.3 0c1.1-14.1 5-27.5 11.1-39.5c-.7-.6-1.4-1.2-2.1-1.9l-64-64c-12.5-12.5-12.5-32.8 0-45.3z\"]\n};\nconst faCreditCard = {\n prefix: 'fas',\n iconName: 'credit-card',\n icon: [576, 512, [128179, 62083, \"credit-card-alt\"], \"f09d\", \"M64 32C28.7 32 0 60.7 0 96l0 32 576 0 0-32c0-35.3-28.7-64-64-64L64 32zM576 224L0 224 0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-192zM112 352l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm112 16c0-8.8 7.2-16 16-16l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16z\"]\n};\nconst faCreditCardAlt = faCreditCard;\nconst faCar = {\n prefix: 'fas',\n iconName: 'car',\n icon: [512, 512, [128664, \"automobile\"], \"f1b9\", \"M135.2 117.4L109.1 192l293.8 0-26.1-74.6C372.3 104.6 360.2 96 346.6 96L165.4 96c-13.6 0-25.7 8.6-30.2 21.4zM39.6 196.8L74.8 96.3C88.3 57.8 124.6 32 165.4 32l181.2 0c40.8 0 77.1 25.8 90.6 64.3l35.2 100.5c23.2 9.6 39.6 32.5 39.6 59.2l0 144 0 48c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-48L96 400l0 48c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-48L0 256c0-26.7 16.4-49.6 39.6-59.2zM128 288a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm288 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nconst faAutomobile = faCar;\nconst faHandHoldingHand = {\n prefix: 'fas',\n iconName: 'hand-holding-hand',\n icon: [576, 512, [], \"e4f7\", \"M7.8 207.7c-13.1-17.8-9.3-42.8 8.5-55.9L142.9 58.5C166.2 41.3 194.5 32 223.5 32L384 32l160 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-36.8 0-44.9 36c-22.7 18.2-50.9 28-80 28L304 224l-16 0-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0 16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-120.6 0L63.7 216.2c-17.8 13.1-42.8 9.3-55.9-8.5zM382.4 160c0 0 0 0 0 0l.9 0c-.3 0-.6 0-.9 0zM568.2 304.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 453.5c-23.4 17.2-51.6 26.5-80.7 26.5L192 480 32 480c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l36.8 0 44.9-36c22.7-18.2 50.9-28 80-28l78.3 0 16 0 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0-16 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l120.6 0 119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 352c0 0 0 0 0 0l-.9 0c.3 0 .6 0 .9 0z\"]\n};\nconst faBookOpenReader = {\n prefix: 'fas',\n iconName: 'book-open-reader',\n icon: [512, 512, [\"book-reader\"], \"f5da\", \"M160 96a96 96 0 1 1 192 0A96 96 0 1 1 160 96zm80 152l0 264-48.4-24.2c-20.9-10.4-43.5-17-66.8-19.3l-96-9.6C12.5 457.2 0 443.5 0 427L0 224c0-17.7 14.3-32 32-32l30.3 0c63.6 0 125.6 19.6 177.7 56zm32 264l0-264c52.1-36.4 114.1-56 177.7-56l30.3 0c17.7 0 32 14.3 32 32l0 203c0 16.4-12.5 30.2-28.8 31.8l-96 9.6c-23.2 2.3-45.9 8.9-66.8 19.3L272 512z\"]\n};\nconst faBookReader = faBookOpenReader;\nconst faMountainSun = {\n prefix: 'fas',\n iconName: 'mountain-sun',\n icon: [640, 512, [], \"e52f\", \"M560 160A80 80 0 1 0 560 0a80 80 0 1 0 0 160zM55.9 512l325.2 0 75 0 122.8 0c33.8 0 61.1-27.4 61.1-61.1c0-11.2-3.1-22.2-8.9-31.8l-132-216.3C495 196.1 487.8 192 480 192s-15 4.1-19.1 10.7l-48.2 79L286.8 81c-6.6-10.6-18.3-17-30.8-17s-24.1 6.4-30.8 17L8.6 426.4C3 435.3 0 445.6 0 456.1C0 487 25 512 55.9 512z\"]\n};\nconst faArrowsLeftRightToLine = {\n prefix: 'fas',\n iconName: 'arrows-left-right-to-line',\n icon: [640, 512, [], \"e4ba\", \"M32 64c17.7 0 32 14.3 32 32l0 320c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 96C0 78.3 14.3 64 32 64zm214.6 73.4c12.5 12.5 12.5 32.8 0 45.3L205.3 224l229.5 0-41.4-41.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3l-96 96c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L434.7 288l-229.5 0 41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0zM640 96l0 320c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-320c0-17.7 14.3-32 32-32s32 14.3 32 32z\"]\n};\nconst faDiceD20 = {\n prefix: 'fas',\n iconName: 'dice-d20',\n icon: [512, 512, [], \"f6cf\", \"M48.7 125.8l53.2 31.9c7.8 4.7 17.8 2 22.2-5.9L201.6 12.1c3-5.4-.9-12.1-7.1-12.1c-1.6 0-3.2 .5-4.6 1.4L47.9 98.8c-9.6 6.6-9.2 20.9 .8 26.9zM16 171.7l0 123.5c0 8 10.4 11 14.7 4.4l60-92c5-7.6 2.6-17.8-5.2-22.5L40.2 158C29.6 151.6 16 159.3 16 171.7zM310.4 12.1l77.6 139.6c4.4 7.9 14.5 10.6 22.2 5.9l53.2-31.9c10-6 10.4-20.3 .8-26.9L322.1 1.4c-1.4-.9-3-1.4-4.6-1.4c-6.2 0-10.1 6.7-7.1 12.1zM496 171.7c0-12.4-13.6-20.1-24.2-13.7l-45.3 27.2c-7.8 4.7-10.1 14.9-5.2 22.5l60 92c4.3 6.7 14.7 3.6 14.7-4.4l0-123.5zm-49.3 246L286.1 436.6c-8.1 .9-14.1 7.8-14.1 15.9l0 52.8c0 3.7 3 6.8 6.8 6.8c.8 0 1.6-.1 2.4-.4l172.7-64c6.1-2.2 10.1-8 10.1-14.5c0-9.3-8.1-16.5-17.3-15.4zM233.2 512c3.7 0 6.8-3 6.8-6.8l0-52.6c0-8.1-6.1-14.9-14.1-15.9l-160.6-19c-9.2-1.1-17.3 6.1-17.3 15.4c0 6.5 4 12.3 10.1 14.5l172.7 64c.8 .3 1.6 .4 2.4 .4zM41.7 382.9l170.9 20.2c7.8 .9 13.4-7.5 9.5-14.3l-85.7-150c-5.9-10.4-20.7-10.8-27.3-.8L30.2 358.2c-6.5 9.9-.3 23.3 11.5 24.7zm439.6-24.8L402.9 238.1c-6.5-10-21.4-9.6-27.3 .8L290.2 388.5c-3.9 6.8 1.6 15.2 9.5 14.3l170.1-20c11.8-1.4 18-14.7 11.5-24.6zm-216.9 11l78.4-137.2c6.1-10.7-1.6-23.9-13.9-23.9l-145.7 0c-12.3 0-20 13.3-13.9 23.9l78.4 137.2c3.7 6.4 13 6.4 16.7 0zM174.4 176l163.2 0c12.2 0 19.9-13.1 14-23.8l-80-144c-2.8-5.1-8.2-8.2-14-8.2l-3.2 0c-5.8 0-11.2 3.2-14 8.2l-80 144c-5.9 10.7 1.8 23.8 14 23.8z\"]\n};\nconst faTruckDroplet = {\n prefix: 'fas',\n iconName: 'truck-droplet',\n icon: [640, 512, [], \"e58c\", \"M0 48C0 21.5 21.5 0 48 0L368 0c26.5 0 48 21.5 48 48l0 48 50.7 0c17 0 33.3 6.7 45.3 18.7L589.3 192c12 12 18.7 28.3 18.7 45.3l0 18.7 0 32 0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c0 53-43 96-96 96s-96-43-96-96l-128 0c0 53-43 96-96 96s-96-43-96-96l-16 0c-26.5 0-48-21.5-48-48L0 48zM416 256l128 0 0-18.7L466.7 160 416 160l0 96zM160 464a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm368-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM208 272c39.8 0 72-29.6 72-66c0-27-39.4-82.9-59.9-110.3c-6.1-8.2-18.1-8.2-24.2 0C175.4 123 136 179 136 206c0 36.5 32.2 66 72 66z\"]\n};\nconst faFileCircleXmark = {\n prefix: 'fas',\n iconName: 'file-circle-xmark',\n icon: [576, 512, [], \"e5a1\", \"M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zm48 96a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm59.3 107.3c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L432 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L409.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L432 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L454.6 368l36.7-36.7z\"]\n};\nconst faTemperatureArrowUp = {\n prefix: 'fas',\n iconName: 'temperature-arrow-up',\n icon: [576, 512, [\"temperature-up\"], \"e040\", \"M128 112c0-26.5 21.5-48 48-48s48 21.5 48 48l0 164.5c0 17.3 7.1 31.9 15.3 42.5C249.8 332.6 256 349.5 256 368c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-18.5 6.2-35.4 16.7-48.9c8.2-10.6 15.3-25.2 15.3-42.5L128 112zM176 0C114.1 0 64 50.1 64 112l0 164.4c0 .1-.1 .3-.2 .6c-.2 .6-.8 1.6-1.7 2.8C43.2 304.2 32 334.8 32 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.2-11.2-63.8-30.1-88.1c-.9-1.2-1.5-2.2-1.7-2.8c-.1-.3-.2-.5-.2-.6L288 112C288 50.1 237.9 0 176 0zm0 416c26.5 0 48-21.5 48-48c0-20.9-13.4-38.7-32-45.3L192 112c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 210.7c-18.6 6.6-32 24.4-32 45.3c0 26.5 21.5 48 48 48zM480 160l32 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l32 0 0 288c0 17.7 14.3 32 32 32s32-14.3 32-32l0-288z\"]\n};\nconst faTemperatureUp = faTemperatureArrowUp;\nconst faMedal = {\n prefix: 'fas',\n iconName: 'medal',\n icon: [512, 512, [127941], \"f5a2\", \"M4.1 38.2C1.4 34.2 0 29.4 0 24.6C0 11 11 0 24.6 0L133.9 0c11.2 0 21.7 5.9 27.4 15.5l68.5 114.1c-48.2 6.1-91.3 28.6-123.4 61.9L4.1 38.2zm503.7 0L405.6 191.5c-32.1-33.3-75.2-55.8-123.4-61.9L350.7 15.5C356.5 5.9 366.9 0 378.1 0L487.4 0C501 0 512 11 512 24.6c0 4.8-1.4 9.6-4.1 13.6zM80 336a176 176 0 1 1 352 0A176 176 0 1 1 80 336zm184.4-94.9c-3.4-7-13.3-7-16.8 0l-22.4 45.4c-1.4 2.8-4 4.7-7 5.1L168 298.9c-7.7 1.1-10.7 10.5-5.2 16l36.3 35.4c2.2 2.2 3.2 5.2 2.7 8.3l-8.6 49.9c-1.3 7.6 6.7 13.5 13.6 9.9l44.8-23.6c2.7-1.4 6-1.4 8.7 0l44.8 23.6c6.9 3.6 14.9-2.2 13.6-9.9l-8.6-49.9c-.5-3 .5-6.1 2.7-8.3l36.3-35.4c5.6-5.4 2.5-14.8-5.2-16l-50.1-7.3c-3-.4-5.7-2.4-7-5.1l-22.4-45.4z\"]\n};\nconst faBed = {\n prefix: 'fas',\n iconName: 'bed',\n icon: [640, 512, [128716], \"f236\", \"M32 32c17.7 0 32 14.3 32 32l0 256 224 0 0-160c0-17.7 14.3-32 32-32l224 0c53 0 96 43 96 96l0 224c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-224 0-32 0L64 416l0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 64C0 46.3 14.3 32 32 32zm144 96a80 80 0 1 1 0 160 80 80 0 1 1 0-160z\"]\n};\nconst faSquareH = {\n prefix: 'fas',\n iconName: 'square-h',\n icon: [448, 512, [\"h-square\"], \"f0fd\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM336 152l0 104 0 104c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-80-128 0 0 80c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-208c0-13.3 10.7-24 24-24s24 10.7 24 24l0 80 128 0 0-80c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nconst faHSquare = faSquareH;\nconst faPodcast = {\n prefix: 'fas',\n iconName: 'podcast',\n icon: [448, 512, [], \"f2ce\", \"M319.4 372c48.5-31.3 80.6-85.9 80.6-148c0-97.2-78.8-176-176-176S48 126.8 48 224c0 62.1 32.1 116.6 80.6 148c1.2 17.3 4 38 7.2 57.1l.2 1C56 395.8 0 316.5 0 224C0 100.3 100.3 0 224 0S448 100.3 448 224c0 92.5-56 171.9-136 206.1l.2-1.1c3.1-19.2 6-39.8 7.2-57zm-2.3-38.1c-1.6-5.7-3.9-11.1-7-16.2c-5.8-9.7-13.5-17-21.9-22.4c19.5-17.6 31.8-43 31.8-71.3c0-53-43-96-96-96s-96 43-96 96c0 28.3 12.3 53.8 31.8 71.3c-8.4 5.4-16.1 12.7-21.9 22.4c-3.1 5.1-5.4 10.5-7 16.2C99.8 307.5 80 268 80 224c0-79.5 64.5-144 144-144s144 64.5 144 144c0 44-19.8 83.5-50.9 109.9zM224 312c32.9 0 64 8.6 64 43.8c0 33-12.9 104.1-20.6 132.9c-5.1 19-24.5 23.4-43.4 23.4s-38.2-4.4-43.4-23.4c-7.8-28.5-20.6-99.7-20.6-132.8c0-35.1 31.1-43.8 64-43.8zm0-144a56 56 0 1 1 0 112 56 56 0 1 1 0-112z\"]\n};\nconst faTemperatureFull = {\n prefix: 'fas',\n iconName: 'temperature-full',\n icon: [320, 512, [\"temperature-4\", \"thermometer-4\", \"thermometer-full\"], \"f2c7\", \"M160 64c-26.5 0-48 21.5-48 48l0 164.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5L208 112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112l0 164.4c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6L48 112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3L144 112c0-8.8 7.2-16 16-16s16 7.2 16 16l0 210.7c18.6 6.6 32 24.4 32 45.3z\"]\n};\nconst faTemperature4 = faTemperatureFull;\nconst faThermometer4 = faTemperatureFull;\nconst faThermometerFull = faTemperatureFull;\nconst faBell = {\n prefix: 'fas',\n iconName: 'bell',\n icon: [448, 512, [128276, 61602], \"f0f3\", \"M224 0c-17.7 0-32 14.3-32 32l0 19.2C119 66 64 130.6 64 208l0 18.8c0 47-17.3 92.4-48.5 127.6l-7.4 8.3c-8.4 9.4-10.4 22.9-5.3 34.4S19.4 416 32 416l384 0c12.6 0 24-7.4 29.2-18.9s3.1-25-5.3-34.4l-7.4-8.3C401.3 319.2 384 273.9 384 226.8l0-18.8c0-77.4-55-142-128-156.8L256 32c0-17.7-14.3-32-32-32zm45.3 493.3c12-12 18.7-28.3 18.7-45.3l-64 0-64 0c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7z\"]\n};\nconst faSuperscript = {\n prefix: 'fas',\n iconName: 'superscript',\n icon: [512, 512, [], \"f12b\", \"M480 32c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4l-32 16c-15.8 7.9-22.2 27.1-14.3 42.9C393 73.5 404.3 80 416 80l0 80c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-128zM32 64C14.3 64 0 78.3 0 96s14.3 32 32 32l15.3 0 89.6 128L47.3 384 32 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0c10.4 0 20.2-5.1 26.2-13.6L176 311.8l85.8 122.6c6 8.6 15.8 13.6 26.2 13.6l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-15.3 0L215.1 256l89.6-128 15.3 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0c-10.4 0-20.2 5.1-26.2 13.6L176 200.2 90.2 77.6C84.2 69.1 74.4 64 64 64L32 64z\"]\n};\nconst faPlugCircleXmark = {\n prefix: 'fas',\n iconName: 'plug-circle-xmark',\n icon: [576, 512, [], \"e560\", \"M96 0C78.3 0 64 14.3 64 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c0 77.4 55 142 128 156.8l0 67.2c0 17.7 14.3 32 32 32s32-14.3 32-32l0-67.2c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32L32 160zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L454.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L432 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L409.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L432 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nconst faStarOfLife = {\n prefix: 'fas',\n iconName: 'star-of-life',\n icon: [512, 512, [], \"f621\", \"M208 32c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 140.9 122-70.4c15.3-8.8 34.9-3.6 43.7 11.7l16 27.7c8.8 15.3 3.6 34.9-11.7 43.7L352 256l122 70.4c15.3 8.8 20.6 28.4 11.7 43.7l-16 27.7c-8.8 15.3-28.4 20.6-43.7 11.7L304 339.1 304 480c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-140.9L86 409.6c-15.3 8.8-34.9 3.6-43.7-11.7l-16-27.7c-8.8-15.3-3.6-34.9 11.7-43.7L160 256 38 185.6c-15.3-8.8-20.5-28.4-11.7-43.7l16-27.7C51.1 98.8 70.7 93.6 86 102.4l122 70.4L208 32z\"]\n};\nconst faPhoneSlash = {\n prefix: 'fas',\n iconName: 'phone-slash',\n icon: [640, 512, [], \"f3dd\", \"M228.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C76.1 30.2 64 46 64 64c0 107.4 37.8 206 100.8 283.1L9.2 469.1c-10.4 8.2-12.3 23.3-4.1 33.7s23.3 12.3 33.7 4.1l592-464c10.4-8.2 12.3-23.3 4.1-33.7s-23.3-12.3-33.7-4.1L253 278c-17.8-21.5-32.9-45.2-45-70.7L257.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96zm96.8 319l-91.3 72C310.7 476 407.1 512 512 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L368.7 368c-15-7.1-29.3-15.2-43-24.3z\"]\n};\nconst faPaintRoller = {\n prefix: 'fas',\n iconName: 'paint-roller',\n icon: [512, 512, [], \"f5aa\", \"M0 64C0 28.7 28.7 0 64 0L352 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64L64 192c-35.3 0-64-28.7-64-64L0 64zM160 352c0-17.7 14.3-32 32-32l0-16c0-44.2 35.8-80 80-80l144 0c17.7 0 32-14.3 32-32l0-32 0-90.5c37.3 13.2 64 48.7 64 90.5l0 32c0 53-43 96-96 96l-144 0c-8.8 0-16 7.2-16 16l0 16c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-128z\"]\n};\nconst faHandshakeAngle = {\n prefix: 'fas',\n iconName: 'handshake-angle',\n icon: [640, 512, [\"hands-helping\"], \"f4c4\", \"M544 248l0 3.3 69.7-69.7c21.9-21.9 21.9-57.3 0-79.2L535.6 24.4c-21.9-21.9-57.3-21.9-79.2 0L416.3 64.5c-2.7-.3-5.5-.5-8.3-.5L296 64c-37.1 0-67.6 28-71.6 64l-.4 0 0 120c0 22.1 17.9 40 40 40s40-17.9 40-40l0-72c0 0 0-.1 0-.1l0-15.9 16 0 136 0c0 0 0 0 .1 0l7.9 0c44.2 0 80 35.8 80 80l0 8zM336 192l0 56c0 39.8-32.2 72-72 72s-72-32.2-72-72l0-118.6c-35.9 6.2-65.8 32.3-76 68.2L99.5 255.2 26.3 328.4c-21.9 21.9-21.9 57.3 0 79.2l78.1 78.1c21.9 21.9 57.3 21.9 79.2 0l37.7-37.7c.9 0 1.8 .1 2.7 .1l160 0c26.5 0 48-21.5 48-48c0-5.6-1-11-2.7-16l2.7 0c26.5 0 48-21.5 48-48c0-12.8-5-24.4-13.2-33c25.7-5 45.1-27.6 45.2-54.8l0-.4c-.1-30.8-25.1-55.8-56-55.8c0 0 0 0 0 0l-120 0z\"]\n};\nconst faHandsHelping = faHandshakeAngle;\nconst faLocationDot = {\n prefix: 'fas',\n iconName: 'location-dot',\n icon: [384, 512, [\"map-marker-alt\"], \"f3c5\", \"M215.7 499.2C267 435 384 279.4 384 192C384 86 298 0 192 0S0 86 0 192c0 87.4 117 243 168.3 307.2c12.3 15.3 35.1 15.3 47.4 0zM192 128a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"]\n};\nconst faMapMarkerAlt = faLocationDot;\nconst faFile = {\n prefix: 'fas',\n iconName: 'file',\n icon: [384, 512, [128196, 128459, 61462], \"f15b\", \"M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 288c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128z\"]\n};\nconst faGreaterThan = {\n prefix: 'fas',\n iconName: 'greater-than',\n icon: [384, 512, [62769], \"3e\", \"M3.4 81.7c-7.9 15.8-1.5 35 14.3 42.9L280.5 256 17.7 387.4C1.9 395.3-4.5 414.5 3.4 430.3s27.1 22.2 42.9 14.3l320-160c10.8-5.4 17.7-16.5 17.7-28.6s-6.8-23.2-17.7-28.6l-320-160c-15.8-7.9-35-1.5-42.9 14.3z\"]\n};\nconst faPersonSwimming = {\n prefix: 'fas',\n iconName: 'person-swimming',\n icon: [576, 512, [127946, \"swimmer\"], \"f5c4\", \"M309.5 178.4L447.9 297.1c-1.6 .9-3.2 2-4.8 3c-18 12.4-40.1 20.3-59.2 20.3c-19.6 0-40.8-7.7-59.2-20.3c-22.1-15.5-51.6-15.5-73.7 0c-17.1 11.8-38 20.3-59.2 20.3c-10.1 0-21.1-2.2-31.9-6.2C163.1 193.2 262.2 96 384 96l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-26.9 0-52.3 6.6-74.5 18.4zM160 160A64 64 0 1 1 32 160a64 64 0 1 1 128 0zM306.5 325.9C329 341.4 356.5 352 384 352c26.9 0 55.4-10.8 77.4-26.1c0 0 0 0 0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 405.7 417 416 384 416c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7c0 0 0 0 0 0C136.7 341.2 165.1 352 192 352c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"]\n};\nconst faSwimmer = faPersonSwimming;\nconst faArrowDown = {\n prefix: 'fas',\n iconName: 'arrow-down',\n icon: [384, 512, [8595], \"f063\", \"M169.4 470.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 370.8 224 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 306.7L54.6 265.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z\"]\n};\nconst faDroplet = {\n prefix: 'fas',\n iconName: 'droplet',\n icon: [384, 512, [128167, \"tint\"], \"f043\", \"M192 512C86 512 0 426 0 320C0 228.8 130.2 57.7 166.6 11.7C172.6 4.2 181.5 0 191.1 0l1.8 0c9.6 0 18.5 4.2 24.5 11.7C253.8 57.7 384 228.8 384 320c0 106-86 192-192 192zM96 336c0-8.8-7.2-16-16-16s-16 7.2-16 16c0 61.9 50.1 112 112 112c8.8 0 16-7.2 16-16s-7.2-16-16-16c-44.2 0-80-35.8-80-80z\"]\n};\nconst faTint = faDroplet;\nconst faEraser = {\n prefix: 'fas',\n iconName: 'eraser',\n icon: [576, 512, [], \"f12d\", \"M290.7 57.4L57.4 290.7c-25 25-25 65.5 0 90.5l80 80c12 12 28.3 18.7 45.3 18.7L288 480l9.4 0L512 480c17.7 0 32-14.3 32-32s-14.3-32-32-32l-124.1 0L518.6 285.3c25-25 25-65.5 0-90.5L381.3 57.4c-25-25-65.5-25-90.5 0zM297.4 416l-9.4 0-105.4 0-80-80L227.3 211.3 364.7 348.7 297.4 416z\"]\n};\nconst faEarthAmericas = {\n prefix: 'fas',\n iconName: 'earth-americas',\n icon: [512, 512, [127758, \"earth\", \"earth-america\", \"globe-americas\"], \"f57d\", \"M57.7 193l9.4 16.4c8.3 14.5 21.9 25.2 38 29.8L163 255.7c17.2 4.9 29 20.6 29 38.5l0 39.9c0 11 6.2 21 16 25.9s16 14.9 16 25.9l0 39c0 15.6 14.9 26.9 29.9 22.6c16.1-4.6 28.6-17.5 32.7-33.8l2.8-11.2c4.2-16.9 15.2-31.4 30.3-40l8.1-4.6c15-8.5 24.2-24.5 24.2-41.7l0-8.3c0-12.7-5.1-24.9-14.1-33.9l-3.9-3.9c-9-9-21.2-14.1-33.9-14.1L257 256c-11.1 0-22.1-2.9-31.8-8.4l-34.5-19.7c-4.3-2.5-7.6-6.5-9.2-11.2c-3.2-9.6 1.1-20 10.2-24.5l5.9-3c6.6-3.3 14.3-3.9 21.3-1.5l23.2 7.7c8.2 2.7 17.2-.4 21.9-7.5c4.7-7 4.2-16.3-1.2-22.8l-13.6-16.3c-10-12-9.9-29.5 .3-41.3l15.7-18.3c8.8-10.3 10.2-25 3.5-36.7l-2.4-4.2c-3.5-.2-6.9-.3-10.4-.3C163.1 48 84.4 108.9 57.7 193zM464 256c0-36.8-9.6-71.4-26.4-101.5L412 164.8c-15.7 6.3-23.8 23.8-18.5 39.8l16.9 50.7c3.5 10.4 12 18.3 22.6 20.9l29.1 7.3c1.2-9 1.8-18.2 1.8-27.5zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z\"]\n};\nconst faEarth = faEarthAmericas;\nconst faEarthAmerica = faEarthAmericas;\nconst faGlobeAmericas = faEarthAmericas;\nconst faPersonBurst = {\n prefix: 'fas',\n iconName: 'person-burst',\n icon: [640, 512, [], \"e53b\", \"M480 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-8 384l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-223.1 28.6 47.5c9.1 15.1 28.8 20 43.9 10.9s20-28.8 10.9-43.9l-58.3-97c-17.4-28.9-48.6-46.6-82.3-46.6l-29.7 0c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L408 256.9 408 480c0 17.7 14.3 32 32 32s32-14.3 32-32zM190.9 18.1C188.4 12 182.6 8 176 8s-12.4 4-14.9 10.1l-29.4 74L55.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1L10.9 206.4c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2L90.6 327c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6L176 286.1l58.6 53.9c4.8 4.4 11.9 5.5 17.8 2.6s9.5-9 9-15.5l-5.6-79.4 50.5-7.8 24.3-40.5-55.2-38L315 92.2c3.3-5.7 2.7-12.8-1.4-17.9s-10.9-7.2-17.2-5.3L220.3 92.1l-29.4-74z\"]\n};\nconst faDove = {\n prefix: 'fas',\n iconName: 'dove',\n icon: [512, 512, [128330], \"f4ba\", \"M160.8 96.5c14 17 31 30.9 49.5 42.2c25.9 15.8 53.7 25.9 77.7 31.6l0-31.5C265.8 108.5 250 71.5 248.6 28c-.4-11.3-7.5-21.5-18.4-24.4c-7.6-2-15.8-.2-21 5.8c-13.3 15.4-32.7 44.6-48.4 87.2zM320 144l0 30.6s0 0 0 0l0 1.3s0 0 0 0l0 32.1c-60.8-5.1-185-43.8-219.3-157.2C97.4 40 87.9 32 76.6 32c-7.9 0-15.3 3.9-18.8 11C46.8 65.9 32 112.1 32 176c0 116.9 80.1 180.5 118.4 202.8L11.8 416.6C6.7 418 2.6 421.8 .9 426.8s-.8 10.6 2.3 14.8C21.7 466.2 77.3 512 160 512c3.6 0 7.2-1.2 10-3.5L245.6 448l74.4 0c88.4 0 160-71.6 160-160l0-160 29.9-44.9c1.3-2 2.1-4.4 2.1-6.8c0-6.8-5.5-12.3-12.3-12.3L400 64c-44.2 0-80 35.8-80 80zm80-16a16 16 0 1 1 0 32 16 16 0 1 1 0-32z\"]\n};\nconst faBatteryEmpty = {\n prefix: 'fas',\n iconName: 'battery-empty',\n icon: [576, 512, [\"battery-0\"], \"f244\", \"M80 160c-8.8 0-16 7.2-16 16l0 160c0 8.8 7.2 16 16 16l384 0c8.8 0 16-7.2 16-16l0-160c0-8.8-7.2-16-16-16L80 160zM0 176c0-44.2 35.8-80 80-80l384 0c44.2 0 80 35.8 80 80l0 16c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l0 16c0 44.2-35.8 80-80 80L80 416c-44.2 0-80-35.8-80-80L0 176z\"]\n};\nconst faBattery0 = faBatteryEmpty;\nconst faSocks = {\n prefix: 'fas',\n iconName: 'socks',\n icon: [512, 512, [129510], \"f696\", \"M175.2 476.6c-9.7-18-15.2-38.7-15.2-60.6c0-40.3 19-78.2 51.2-102.4l64-48c8.1-6 12.8-15.5 12.8-25.6l0-144L128 96l0 144c0 20.1-9.5 39.1-25.6 51.2l-64 48C14.2 357.3 0 385.8 0 416c0 53 43 96 96 96c20.8 0 41-6.7 57.6-19.2l21.6-16.2zM128 64l160 0 0-16c0-14.5 3.9-28.2 10.7-39.9C291 3 281.9 0 272 0L176 0c-26.5 0-48 21.5-48 48l0 16zM320 96l0 144c0 20.1-9.5 39.1-25.6 51.2l-64 48C206.2 357.3 192 385.8 192 416c0 53 43 96 96 96c20.8 0 41-6.7 57.6-19.2l115.2-86.4C493 382.2 512 344.3 512 304l0-208L320 96zM512 64l0-16c0-26.5-21.5-48-48-48L368 0c-26.5 0-48 21.5-48 48l0 16 192 0z\"]\n};\nconst faInbox = {\n prefix: 'fas',\n iconName: 'inbox',\n icon: [512, 512, [], \"f01c\", \"M121 32C91.6 32 66 52 58.9 80.5L1.9 308.4C.6 313.5 0 318.7 0 323.9L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-92.1c0-5.2-.6-10.4-1.9-15.5l-57-227.9C446 52 420.4 32 391 32L121 32zm0 64l270 0 48 192-51.2 0c-12.1 0-23.2 6.8-28.6 17.7l-14.3 28.6c-5.4 10.8-16.5 17.7-28.6 17.7l-120.4 0c-12.1 0-23.2-6.8-28.6-17.7l-14.3-28.6c-5.4-10.8-16.5-17.7-28.6-17.7L73 288 121 96z\"]\n};\nconst faSection = {\n prefix: 'fas',\n iconName: 'section',\n icon: [256, 512, [], \"e447\", \"M64.9 96C67.1 84.4 73.7 76.2 86 70.6c13.8-6.2 34.8-8.9 61.2-4.5c8.8 1.4 36.1 7.1 44.1 9.3c17 4.8 34.7-5.1 39.5-22.2s-5.1-34.7-22.2-39.5c-11.1-3.1-41-9.2-50.9-10.8C123-2.7 88.3-.6 59.7 12.3C29.9 25.8 7.5 50.9 1.6 86.5c-.1 .5-.2 1.1-.2 1.6c-2.2 19.7 .3 37.9 8.1 54.1c7.7 16.1 19.4 28 32 36.9c.6 .5 1.3 .9 2 1.4C22.3 194.2 6.5 215.1 1.7 243c-.1 .6-.2 1.1-.2 1.7c-2.3 19.3 .4 37.1 8.4 53c7.9 15.6 19.8 27 32.3 35.5c22.4 15.2 51.9 24 75.4 31c0 0 0 0 0 0l3.7 1.1c27.2 8.2 46.9 14.6 59.4 23.8c5.5 4 8.2 7.6 9.5 10.9c1.3 3.2 2.6 8.6 .9 18.1c-1.7 10.1-7.7 18-20.7 23.5c-14 6-35.4 8.5-62 4.4c-12.8-2.1-35.1-9.7-54.1-16.2c0 0 0 0 0 0c-4.3-1.5-8.5-2.9-12.3-4.2C25.3 420 7.2 429.1 1.6 445.8s3.5 34.9 20.3 40.5c2.6 .8 5.7 1.9 9.2 3.1c18.6 6.3 48.5 16.6 67.3 19.6c0 0 0 0 0 0l.2 0c34.5 5.4 68.8 3.4 97.2-8.7c29.4-12.6 52.5-36.5 58.5-71.5c3.3-19.3 1.9-37.4-5-53.9c-6.3-15-16.4-26.4-27.6-35.2c16.5-13.9 28.5-33.2 32.6-58.2c3.2-19.8 1.9-38.3-4.8-55.1c-6.7-16.8-17.8-29.4-30.2-39c-22.8-17.6-53.6-27.4-77.7-35l-1.4-.5c-27.4-8.7-47.8-15.3-61.5-25c-6.1-4.4-9.5-8.5-11.4-12.4c-1.8-3.7-3.2-9.3-2.3-18.5zm76.7 208.5l-.6-.2-1.4-.4c-27.4-8.2-47.9-14.5-61.7-23.8c-6.2-4.2-9.3-7.9-11-11.3c-1.5-3-2.9-7.7-2.1-15.7c1.9-9.7 7.9-17.3 20.5-22.7c14-6 35.4-8.5 62.1-4.3l16.4 2.6c6.3 2.9 11.7 6 16.2 9.5c5.5 4.2 8.4 8.2 10 12.2c1.6 4 2.8 10.4 1.1 20.9c-2.4 14.7-12.8 26.4-37.1 31l-12.4 2.3z\"]\n};\nconst faGaugeHigh = {\n prefix: 'fas',\n iconName: 'gauge-high',\n icon: [512, 512, [62461, \"tachometer-alt\", \"tachometer-alt-fast\"], \"f625\", \"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM256 416c35.3 0 64-28.7 64-64c0-17.4-6.9-33.1-18.1-44.6L366 161.7c5.3-12.1-.2-26.3-12.3-31.6s-26.3 .2-31.6 12.3L257.9 288c-.6 0-1.3 0-1.9 0c-35.3 0-64 28.7-64 64s28.7 64 64 64zM176 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM96 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm352-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"]\n};\nconst faTachometerAlt = faGaugeHigh;\nconst faTachometerAltFast = faGaugeHigh;\nconst faEnvelopeOpenText = {\n prefix: 'fas',\n iconName: 'envelope-open-text',\n icon: [512, 512, [], \"f658\", \"M215.4 96L144 96l-36.2 0L96 96l0 8.8L96 144l0 40.4 0 89L.2 202.5c1.6-18.1 10.9-34.9 25.7-45.8L48 140.3 48 96c0-26.5 21.5-48 48-48l76.6 0 49.9-36.9C232.2 3.9 243.9 0 256 0s23.8 3.9 33.5 11L339.4 48 416 48c26.5 0 48 21.5 48 48l0 44.3 22.1 16.4c14.8 10.9 24.1 27.7 25.7 45.8L416 273.4l0-89 0-40.4 0-39.2 0-8.8-11.8 0L368 96l-71.4 0-81.3 0zM0 448L0 242.1 217.6 403.3c11.1 8.2 24.6 12.7 38.4 12.7s27.3-4.4 38.4-12.7L512 242.1 512 448s0 0 0 0c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64c0 0 0 0 0 0zM176 160l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nconst faHospital = {\n prefix: 'fas',\n iconName: 'hospital',\n icon: [640, 512, [127973, 62589, \"hospital-alt\", \"hospital-wide\"], \"f0f8\", \"M192 48c0-26.5 21.5-48 48-48L400 0c26.5 0 48 21.5 48 48l0 464-80 0 0-80c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 80-80 0 0-464zM48 96l112 0 0 416L48 512c-26.5 0-48-21.5-48-48L0 320l80 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L0 288l0-64 80 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L0 192l0-48c0-26.5 21.5-48 48-48zm544 0c26.5 0 48 21.5 48 48l0 48-80 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l80 0 0 64-80 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l80 0 0 144c0 26.5-21.5 48-48 48l-112 0 0-416 112 0zM312 64c-8.8 0-16 7.2-16 16l0 24-24 0c-8.8 0-16 7.2-16 16l0 16c0 8.8 7.2 16 16 16l24 0 0 24c0 8.8 7.2 16 16 16l16 0c8.8 0 16-7.2 16-16l0-24 24 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-24 0 0-24c0-8.8-7.2-16-16-16l-16 0z\"]\n};\nconst faHospitalAlt = faHospital;\nconst faHospitalWide = faHospital;\nconst faWineBottle = {\n prefix: 'fas',\n iconName: 'wine-bottle',\n icon: [512, 512, [], \"f72f\", \"M393.4 9.4c12.5-12.5 32.8-12.5 45.3 0l64 64c12.5 12.5 12.5 32.8 0 45.3c-11.8 11.8-30.7 12.5-43.2 1.9l-9.5 9.5-48.8 48.8c-9.2 9.2-11.5 22.9-8.6 35.6c9.4 40.9-1.9 85.6-33.8 117.5L197.3 493.3c-25 25-65.5 25-90.5 0l-88-88c-25-25-25-65.5 0-90.5L180.2 153.3c31.9-31.9 76.6-43.1 117.5-33.8c12.6 2.9 26.4 .5 35.5-8.6l48.8-48.8 9.5-9.5c-10.6-12.6-10-31.4 1.9-43.2zM99.3 347.3l65.4 65.4c6.2 6.2 16.4 6.2 22.6 0l97.4-97.4c6.2-6.2 6.2-16.4 0-22.6l-65.4-65.4c-6.2-6.2-16.4-6.2-22.6 0L99.3 324.7c-6.2 6.2-6.2 16.4 0 22.6z\"]\n};\nconst faChessRook = {\n prefix: 'fas',\n iconName: 'chess-rook',\n icon: [448, 512, [9820], \"f447\", \"M32 192L32 48c0-8.8 7.2-16 16-16l64 0c8.8 0 16 7.2 16 16l0 40c0 4.4 3.6 8 8 8l32 0c4.4 0 8-3.6 8-8l0-40c0-8.8 7.2-16 16-16l64 0c8.8 0 16 7.2 16 16l0 40c0 4.4 3.6 8 8 8l32 0c4.4 0 8-3.6 8-8l0-40c0-8.8 7.2-16 16-16l64 0c8.8 0 16 7.2 16 16l0 144c0 10.1-4.7 19.6-12.8 25.6L352 256l16 144L80 400 96 256 44.8 217.6C36.7 211.6 32 202.1 32 192zm176 96l32 0c8.8 0 16-7.2 16-16l0-48c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48c0 8.8 7.2 16 16 16zM22.6 473.4L64 432l320 0 41.4 41.4c4.2 4.2 6.6 10 6.6 16c0 12.5-10.1 22.6-22.6 22.6L38.6 512C26.1 512 16 501.9 16 489.4c0-6 2.4-11.8 6.6-16z\"]\n};\nconst faBarsStaggered = {\n prefix: 'fas',\n iconName: 'bars-staggered',\n icon: [512, 512, [\"reorder\", \"stream\"], \"f550\", \"M0 96C0 78.3 14.3 64 32 64l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 128C14.3 128 0 113.7 0 96zM64 256c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L96 288c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z\"]\n};\nconst faReorder = faBarsStaggered;\nconst faStream = faBarsStaggered;\nconst faDharmachakra = {\n prefix: 'fas',\n iconName: 'dharmachakra',\n icon: [512, 512, [9784], \"f655\", \"M337.8 205.7l48.6-42.5c13.8 19.3 23.4 41.9 27.4 66.2l-64.4 4.3c-2.4-10.1-6.4-19.5-11.6-28zm140.1 19.5c-5.3-38.8-20.6-74.5-43.2-104.3l.8-.7C449 108.4 449.7 87.6 437 75s-33.4-12-45.2 1.5l-.7 .8c-29.8-22.6-65.5-37.9-104.3-43.2l.1-1.1c1.2-17.9-13-33-30.9-33s-32.1 15.2-30.9 33l.1 1.1c-38.8 5.3-74.5 20.6-104.3 43.2l-.7-.8C108.4 63 87.6 62.3 75 75s-12 33.4 1.5 45.2l.8 .7c-22.6 29.8-37.9 65.5-43.2 104.3l-1.1-.1c-17.9-1.2-33 13-33 30.9s15.2 32.1 33 30.9l1.1-.1c5.3 38.8 20.6 74.5 43.2 104.3l-.8 .7C63 403.6 62.3 424.4 75 437s33.4 12 45.2-1.5l.7-.8c29.8 22.6 65.5 37.9 104.3 43.2l-.1 1.1c-1.2 17.9 13 33 30.9 33s32.1-15.2 30.9-33l-.1-1.1c38.8-5.3 74.5-20.6 104.3-43.2l.7 .8c11.8 13.5 32.5 14.2 45.2 1.5s12-33.4-1.5-45.2l-.8-.7c22.6-29.8 37.9-65.5 43.2-104.3l1.1 .1c17.9 1.2 33-13 33-30.9s-15.2-32.1-33-30.9l-1.1 .1zM163.2 125.6c19.3-13.8 41.9-23.4 66.2-27.5l4.3 64.4c-10 2.4-19.5 6.4-28 11.6l-42.5-48.6zm-65 103.8c4.1-24.4 13.7-46.9 27.5-66.2l48.6 42.5c-5.3 8.5-9.2 18-11.6 28l-64.4-4.3zm27.5 119.4c-13.8-19.3-23.4-41.9-27.5-66.2l64.4-4.3c2.4 10 6.4 19.5 11.6 28l-48.6 42.5zm103.8 65c-24.4-4.1-46.9-13.7-66.2-27.4l42.5-48.6c8.5 5.3 18 9.2 28 11.6l-4.3 64.4zm119.4-27.4c-19.3 13.8-41.9 23.4-66.2 27.4l-4.3-64.4c10-2.4 19.5-6.4 28-11.6l42.5 48.6zm65-103.8c-4.1 24.4-13.7 46.9-27.4 66.2l-48.6-42.5c5.3-8.5 9.2-18 11.6-28l64.4 4.3zm-65-156.9l-42.5 48.6c-8.5-5.3-18-9.2-28-11.6l4.3-64.4c24.4 4.1 46.9 13.7 66.2 27.5zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nconst faHotdog = {\n prefix: 'fas',\n iconName: 'hotdog',\n icon: [512, 512, [127789], \"f80f\", \"M488.6 23.4c31.2 31.2 31.2 81.9 0 113.1l-352 352c-31.2 31.2-81.9 31.2-113.1 0s-31.2-81.9 0-113.1l352-352c31.2-31.2 81.9-31.2 113.1 0zM443.3 92.7c-6.2-6.2-16.4-6.2-22.6 0c-12.5 12.5-23.8 15.1-37.5 17.6l-2.5 .4c-13.8 2.5-31.6 5.6-48 22c-16.7 16.7-20.9 36-24.1 50.9c0 0 0 0 0 0s0 0 0 0l-.2 1c-3.4 15.6-6 26.4-15.7 36.1s-20.5 12.3-36.1 15.7l-1 .2c-14.9 3.2-34.2 7.4-50.9 24.1s-20.9 36-24.1 50.9l-.2 1c-3.4 15.6-6 26.4-15.7 36.1c-9.2 9.2-18 10.8-32.7 13.4c0 0 0 0 0 0l-.9 .2c-15.6 2.8-34.9 6.9-54.4 26.4c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0c12.5-12.5 23.8-15.1 37.5-17.6l2.5-.4c13.8-2.5 31.6-5.6 48-22c16.7-16.7 20.9-36 24.1-50.9l.2-1c3.4-15.6 6-26.4 15.7-36.1s20.5-12.3 36.1-15.7l1-.2c14.9-3.2 34.2-7.4 50.9-24.1s20.9-36 24.1-50.9l.2-1c3.4-15.6 6-26.4 15.7-36.1c9.2-9.2 18-10.8 32.7-13.4l.9-.2c15.6-2.8 34.9-6.9 54.4-26.4c6.2-6.2 6.2-16.4 0-22.6zM191.2 479.2l288-288L495 207c10.9 10.9 17 25.6 17 41s-6.1 30.1-17 41L289 495c-10.9 10.9-25.6 17-41 17s-30.1-6.1-41-17l-15.8-15.8zM17 305C6.1 294.1 0 279.4 0 264s6.1-30.1 17-41L223 17C233.9 6.1 248.6 0 264 0s30.1 6.1 41 17l15.8 15.8-288 288L17 305z\"]\n};\nconst faPersonWalkingWithCane = {\n prefix: 'fas',\n iconName: 'person-walking-with-cane',\n icon: [512, 512, [\"blind\"], \"f29d\", \"M176 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-8.4 32c-36.4 0-69.6 20.5-85.9 53.1L35.4 273.7c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3L128 231.6l0 43.2c0 17 6.7 33.3 18.7 45.3L224 397.3l0 82.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-89.4c0-12.7-5.1-24.9-14.1-33.9L224 306.7l0-93.4 70.4 93.9c10.6 14.1 30.7 17 44.8 6.4s17-30.7 6.4-44.8L268.8 166.4C250.7 142.2 222.2 128 192 128l-24.4 0zM128.3 346.8L97 472.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l22-88.2-52.8-52.8zM450.8 505.1c5 7.3 15 9.1 22.3 4s9.1-15 4-22.3L358.9 316.1c-2.8 3.8-6.1 7.3-10.1 10.3c-5 3.8-10.5 6.4-16.2 7.9L450.8 505.1z\"]\n};\nconst faBlind = faPersonWalkingWithCane;\nconst faDrum = {\n prefix: 'fas',\n iconName: 'drum',\n icon: [512, 512, [129345], \"f569\", \"M501.2 76.1c11.1-7.3 14.2-22.1 6.9-33.2s-22.1-14.2-33.2-6.9L370.2 104.5C335.8 98.7 297 96 256 96C114.6 96 0 128 0 208L0 368c0 31.3 27.4 58.8 72 78.7L72 344c0-13.3 10.7-24 24-24s24 10.7 24 24l0 119.4c33 8.9 71.1 14.5 112 16.1L232 376c0-13.3 10.7-24 24-24s24 10.7 24 24l0 103.5c40.9-1.6 79-7.2 112-16.1L392 344c0-13.3 10.7-24 24-24s24 10.7 24 24l0 102.7c44.6-19.9 72-47.4 72-78.7l0-160c0-41.1-30.2-69.5-78.8-87.4l67.9-44.5zM307.4 145.6l-64.6 42.3c-11.1 7.3-14.2 22.1-6.9 33.2s22.1 14.2 33.2 6.9l111.1-72.8c14.7 3.2 27.9 7 39.4 11.5C458.4 181.8 464 197.4 464 208c0 .8-2.7 17.2-46 35.9C379.1 260.7 322 272 256 272s-123.1-11.3-162-28.1C50.7 225.2 48 208.8 48 208c0-10.6 5.6-26.2 44.4-41.3C130.6 151.9 187.8 144 256 144c18 0 35.1 .5 51.4 1.6z\"]\n};\nconst faIceCream = {\n prefix: 'fas',\n iconName: 'ice-cream',\n icon: [448, 512, [127848], \"f810\", \"M367.1 160c.6-5.3 .9-10.6 .9-16C368 64.5 303.5 0 224 0S80 64.5 80 144c0 5.4 .3 10.7 .9 16l-.9 0c-26.5 0-48 21.5-48 48s21.5 48 48 48l53.5 0 181 0 53.5 0c26.5 0 48-21.5 48-48s-21.5-48-48-48l-.9 0zM96 288L200.8 497.7c4.4 8.8 13.3 14.3 23.2 14.3s18.8-5.5 23.2-14.3L352 288 96 288z\"]\n};\nconst faHeartCircleBolt = {\n prefix: 'fas',\n iconName: 'heart-circle-bolt',\n icon: [576, 512, [], \"e4fc\", \"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6l0-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1l0 5.8c0 41.5 17.2 81.2 47.6 109.5zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm47.9-225c4.3 3.7 5.4 9.9 2.6 14.9L452.4 356l35.6 0c5.2 0 9.8 3.3 11.4 8.2s-.1 10.3-4.2 13.4l-96 72c-4.5 3.4-10.8 3.2-15.1-.6s-5.4-9.9-2.6-14.9L411.6 380 376 380c-5.2 0-9.8-3.3-11.4-8.2s.1-10.3 4.2-13.4l96-72c4.5-3.4 10.8-3.2 15.1 .6z\"]\n};\nconst faFax = {\n prefix: 'fas',\n iconName: 'fax',\n icon: [512, 512, [128224, 128439], \"f1ac\", \"M128 64l0 96 64 0 0-96 194.7 0L416 93.3l0 66.7 64 0 0-66.7c0-17-6.7-33.3-18.7-45.3L432 18.7C420 6.7 403.7 0 386.7 0L192 0c-35.3 0-64 28.7-64 64zM0 160L0 480c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-320c0-17.7-14.3-32-32-32l-32 0c-17.7 0-32 14.3-32 32zm480 32l-352 0 0 288c0 17.7 14.3 32 32 32l320 0c17.7 0 32-14.3 32-32l0-256c0-17.7-14.3-32-32-32zM256 256a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm96 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32 96a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM224 416a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nconst faParagraph = {\n prefix: 'fas',\n iconName: 'paragraph',\n icon: [448, 512, [182], \"f1dd\", \"M192 32l64 0 160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 352c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-352-32 0 0 352c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-32 0c-88.4 0-160-71.6-160-160s71.6-160 160-160z\"]\n};\nconst faCheckToSlot = {\n prefix: 'fas',\n iconName: 'check-to-slot',\n icon: [576, 512, [\"vote-yea\"], \"f772\", \"M96 80c0-26.5 21.5-48 48-48l288 0c26.5 0 48 21.5 48 48l0 304L96 384 96 80zm313 47c-9.4-9.4-24.6-9.4-33.9 0l-111 111-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0L409 161c9.4-9.4 9.4-24.6 0-33.9zM0 336c0-26.5 21.5-48 48-48l16 0 0 128 448 0 0-128 16 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48l0-96z\"]\n};\nconst faVoteYea = faCheckToSlot;\nconst faStarHalf = {\n prefix: 'fas',\n iconName: 'star-half',\n icon: [576, 512, [61731], \"f089\", \"M288 0c-12.2 .1-23.3 7-28.6 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3L288 439.8 288 0zM429.9 512c1.1 .1 2.1 .1 3.2 0l-3.2 0z\"]\n};\nconst faBoxesStacked = {\n prefix: 'fas',\n iconName: 'boxes-stacked',\n icon: [576, 512, [62625, \"boxes\", \"boxes-alt\"], \"f468\", \"M248 0L208 0c-26.5 0-48 21.5-48 48l0 112c0 35.3 28.7 64 64 64l128 0c35.3 0 64-28.7 64-64l0-112c0-26.5-21.5-48-48-48L328 0l0 80c0 8.8-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-80zM64 256c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l160 0c35.3 0 64-28.7 64-64l0-128c0-35.3-28.7-64-64-64l-40 0 0 80c0 8.8-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-80-40 0zM352 512l160 0c35.3 0 64-28.7 64-64l0-128c0-35.3-28.7-64-64-64l-40 0 0 80c0 8.8-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-80-40 0c-15 0-28.8 5.1-39.7 13.8c4.9 10.4 7.7 22 7.7 34.2l0 160c0 12.2-2.8 23.8-7.7 34.2C323.2 506.9 337 512 352 512z\"]\n};\nconst faBoxes = faBoxesStacked;\nconst faBoxesAlt = faBoxesStacked;\nconst faLink = {\n prefix: 'fas',\n iconName: 'link',\n icon: [640, 512, [128279, \"chain\"], \"f0c1\", \"M579.8 267.7c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L422.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-1.1 1.6C206.5 251.2 213 330 263 380c56.5 56.5 148 56.5 204.5 0L579.8 267.7zM60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5L217.7 177.2c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.9l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6C433.5 260.8 427 182 377 132c-56.5-56.5-148-56.5-204.5 0L60.2 244.3z\"]\n};\nconst faChain = faLink;\nconst faEarListen = {\n prefix: 'fas',\n iconName: 'ear-listen',\n icon: [512, 512, [\"assistive-listening-systems\"], \"f2a2\", \"M398.3 3.4c-15.8-7.9-35-1.5-42.9 14.3c-7.9 15.8-1.5 34.9 14.2 42.9l.4 .2c.4 .2 1.1 .6 2.1 1.2c2 1.2 5 3 8.7 5.6c7.5 5.2 17.6 13.2 27.7 24.2C428.5 113.4 448 146 448 192c0 17.7 14.3 32 32 32s32-14.3 32-32c0-66-28.5-113.4-56.5-143.7C441.6 33.2 427.7 22.2 417.3 15c-5.3-3.7-9.7-6.4-13-8.3c-1.6-1-3-1.7-4-2.2c-.5-.3-.9-.5-1.2-.7l-.4-.2-.2-.1c0 0 0 0-.1 0c0 0 0 0 0 0L384 32 398.3 3.4zM128.7 227.5c6.2-56 53.7-99.5 111.3-99.5c61.9 0 112 50.1 112 112c0 29.3-11.2 55.9-29.6 75.9c-17 18.4-34.4 45.1-34.4 78l0 6.1c0 26.5-21.5 48-48 48c-17.7 0-32 14.3-32 32s14.3 32 32 32c61.9 0 112-50.1 112-112l0-6.1c0-9.8 5.4-21.7 17.4-34.7C398.3 327.9 416 286 416 240c0-97.2-78.8-176-176-176C149.4 64 74.8 132.5 65.1 220.5c-1.9 17.6 10.7 33.4 28.3 35.3s33.4-10.7 35.3-28.3zM32 512a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM192 352a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64c-12.5-12.5-32.8-12.5-45.3 0zM208 240c0-17.7 14.3-32 32-32s32 14.3 32 32c0 13.3 10.7 24 24 24s24-10.7 24-24c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 13.3 10.7 24 24 24s24-10.7 24-24z\"]\n};\nconst faAssistiveListeningSystems = faEarListen;\nconst faTreeCity = {\n prefix: 'fas',\n iconName: 'tree-city',\n icon: [640, 512, [], \"e587\", \"M288 48c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 144 40 0 0-72c0-13.3 10.7-24 24-24s24 10.7 24 24l0 72 24 0c26.5 0 48 21.5 48 48l0 224c0 26.5-21.5 48-48 48l-160 0-96 0c-26.5 0-48-21.5-48-48l0-416zm64 32l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm16 80c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM352 272l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm176-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM512 368l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM224 160c0 6-1 11-2 16c20 14 34 38 34 64c0 45-36 80-80 80l-16 0 0 160c0 18-15 32-32 32c-18 0-32-14-32-32l0-160-16 0c-45 0-80-35-80-80c0-26 13-50 33-64c-1-5-1-10-1-16c0-53 42-96 96-96c53 0 96 43 96 96z\"]\n};\nconst faPlay = {\n prefix: 'fas',\n iconName: 'play',\n icon: [384, 512, [9654], \"f04b\", \"M73 39c-14.8-9.1-33.4-9.4-48.5-.9S0 62.6 0 80L0 432c0 17.4 9.4 33.4 24.5 41.9s33.7 8.1 48.5-.9L361 297c14.3-8.7 23-24.2 23-41s-8.7-32.2-23-41L73 39z\"]\n};\nconst faFont = {\n prefix: 'fas',\n iconName: 'font',\n icon: [448, 512, [], \"f031\", \"M254 52.8C249.3 40.3 237.3 32 224 32s-25.3 8.3-30 20.8L57.8 416 32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-1.8 0 18-48 159.6 0 18 48-1.8 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-25.8 0L254 52.8zM279.8 304l-111.6 0L224 155.1 279.8 304z\"]\n};\nconst faTableCellsRowLock = {\n prefix: 'fas',\n iconName: 'table-cells-row-lock',\n icon: [640, 512, [], \"e67a\", \"M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 65.1c-37.8 5.4-69.4 29.6-85.2 62.9L360 224l0 64 56 0 0 8.6c-19.1 11.1-32 31.7-32 55.4l-24 0 0 64 24 0 0 64L64 480c-35.3 0-64-28.7-64-64L0 96zM64 224l0 64 88 0 0-64-88 0zm232 0l-88 0 0 64 88 0 0-64zM152 352l-88 0 0 64 88 0 0-64zm56 0l0 64 88 0 0-64-88 0zM528 240c-17.7 0-32 14.3-32 32l0 48 64 0 0-48c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80l0 48c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32l0-48z\"]\n};\nconst faRupiahSign = {\n prefix: 'fas',\n iconName: 'rupiah-sign',\n icon: [512, 512, [], \"e23d\", \"M0 64C0 46.3 14.3 32 32 32l80 0c79.5 0 144 64.5 144 144c0 58.8-35.2 109.3-85.7 131.7l51.4 128.4c6.6 16.4-1.4 35-17.8 41.6s-35-1.4-41.6-17.8L106.3 320 64 320l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 288 0 64zM64 256l48 0c44.2 0 80-35.8 80-80s-35.8-80-80-80L64 96l0 160zm256-96l80 0c61.9 0 112 50.1 112 112s-50.1 112-112 112l-48 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128 0-160c0-17.7 14.3-32 32-32zm80 160c26.5 0 48-21.5 48-48s-21.5-48-48-48l-48 0 0 96 48 0z\"]\n};\nconst faMagnifyingGlass = {\n prefix: 'fas',\n iconName: 'magnifying-glass',\n icon: [512, 512, [128269, \"search\"], \"f002\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z\"]\n};\nconst faSearch = faMagnifyingGlass;\nconst faTableTennisPaddleBall = {\n prefix: 'fas',\n iconName: 'table-tennis-paddle-ball',\n icon: [512, 512, [127955, \"ping-pong-paddle-ball\", \"table-tennis\"], \"f45d\", \"M416 288c-50.1 0-93.6 28.8-114.6 70.8L68.9 126.3l.6-.6 60.1-60.1c87.5-87.5 229.3-87.5 316.8 0c67.1 67.1 82.7 166.3 46.8 248.3C471.8 297.6 445 288 416 288zM49.3 151.9L290.1 392.7c-1.4 7.5-2.1 15.3-2.1 23.3c0 23.2 6.2 44.9 16.9 63.7c-3 .2-6.1 .3-9.2 .3l-2.7 0c-33.9 0-66.5-13.5-90.5-37.5l-9.8-9.8c-13.1-13.1-34.6-12.4-46.8 1.7L88.2 501c-5.8 6.7-14.2 10.7-23 11s-17.5-3.1-23.8-9.4l-32-32C3.1 464.3-.3 455.7 0 446.9s4.3-17.2 11-23l66.6-57.7c14-12.2 14.8-33.7 1.7-46.8l-9.8-9.8C45.5 285.5 32 252.9 32 219l0-2.7c0-22.8 6.1-44.9 17.3-64.3zM416 320a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"]\n};\nconst faPingPongPaddleBall = faTableTennisPaddleBall;\nconst faTableTennis = faTableTennisPaddleBall;\nconst faPersonDotsFromLine = {\n prefix: 'fas',\n iconName: 'person-dots-from-line',\n icon: [576, 512, [\"diagnoses\"], \"f470\", \"M288 176A88 88 0 1 0 288 0a88 88 0 1 0 0 176zM78.7 372.9c15-12.5 50-34.4 97.3-50.1L176 432l224 0 0-109.3c47.3 15.8 82.3 37.7 97.3 50.1c20.4 17 50.6 14.2 67.6-6.1s14.2-50.6-6.1-67.6c-12-10-30.1-22.5-53.2-35C497.2 278.4 481.7 288 464 288c-26.5 0-48-21.5-48-48c0-4.3 .6-8.4 1.6-12.4C379.1 215.9 335.3 208 288 208c-60.2 0-114.9 12.9-160 29.9c0 .7 0 1.4 0 2.1c0 26.5-21.5 48-48 48c-11.8 0-22.7-4.3-31-11.4c-13.1 8.1-23.7 15.9-31.7 22.5c-20.4 17-23.1 47.2-6.1 67.6s47.2 23.1 67.6 6.1zM24 464c-13.3 0-24 10.7-24 24s10.7 24 24 24l528 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 464zM224 280a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm104 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM96 240a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm368 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"]\n};\nconst faDiagnoses = faPersonDotsFromLine;\nconst faTrashCanArrowUp = {\n prefix: 'fas',\n iconName: 'trash-can-arrow-up',\n icon: [448, 512, [\"trash-restore-alt\"], \"f82a\", \"M163.8 0L284.2 0c12.1 0 23.2 6.8 28.6 17.7L320 32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l96 0 7.2-14.3C140.6 6.8 151.7 0 163.8 0zM32 128l384 0 0 320c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-320zm192 64c-6.4 0-12.5 2.5-17 7l-80 80c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l39-39L200 408c0 13.3 10.7 24 24 24s24-10.7 24-24l0-134.1 39 39c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-80-80c-4.5-4.5-10.6-7-17-7z\"]\n};\nconst faTrashRestoreAlt = faTrashCanArrowUp;\nconst faNairaSign = {\n prefix: 'fas',\n iconName: 'naira-sign',\n icon: [448, 512, [], \"e1f6\", \"M122.6 46.3c-7.8-11.7-22.4-17-35.9-12.9S64 49.9 64 64l0 192-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 100.2 0 97.2 145.8c7.8 11.7 22.4 17 35.9 12.9s22.7-16.5 22.7-30.6l0-128 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-192c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 192-57.5 0L122.6 46.3zM305.1 320l14.9 0 0 22.3L305.1 320zM185.5 256L128 256l0-86.3L185.5 256z\"]\n};\nconst faCartArrowDown = {\n prefix: 'fas',\n iconName: 'cart-arrow-down',\n icon: [576, 512, [], \"f218\", \"M24 0C10.7 0 0 10.7 0 24S10.7 48 24 48l45.5 0c3.8 0 7.1 2.7 7.9 6.5l51.6 271c6.5 34 36.2 58.5 70.7 58.5L488 384c13.3 0 24-10.7 24-24s-10.7-24-24-24l-288.3 0c-11.5 0-21.4-8.2-23.6-19.5L170.7 288l288.5 0c32.6 0 61.1-21.8 69.5-53.3l41-152.3C576.6 57 557.4 32 531.1 32L360 32l0 102.1 23-23c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-64 64c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l23 23L312 32 120.1 32C111 12.8 91.6 0 69.5 0L24 0zM176 512a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm336-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"]\n};\nconst faWalkieTalkie = {\n prefix: 'fas',\n iconName: 'walkie-talkie',\n icon: [384, 512, [], \"f8ef\", \"M112 24c0-13.3-10.7-24-24-24S64 10.7 64 24l0 72L48 96C21.5 96 0 117.5 0 144L0 300.1c0 12.7 5.1 24.9 14.1 33.9l3.9 3.9c9 9 14.1 21.2 14.1 33.9L32 464c0 26.5 21.5 48 48 48l224 0c26.5 0 48-21.5 48-48l0-92.1c0-12.7 5.1-24.9 14.1-33.9l3.9-3.9c9-9 14.1-21.2 14.1-33.9L384 144c0-26.5-21.5-48-48-48l-16 0c0-17.7-14.3-32-32-32s-32 14.3-32 32l-32 0c0-17.7-14.3-32-32-32s-32 14.3-32 32l-48 0 0-72zm0 136l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nconst faFilePen = {\n prefix: 'fas',\n iconName: 'file-pen',\n icon: [576, 512, [128221, \"file-edit\"], \"f31c\", \"M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 125.7-86.8 86.8c-10.3 10.3-17.5 23.1-21 37.2l-18.7 74.9c-2.3 9.2-1.8 18.8 1.3 27.5L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zM549.8 235.7l14.4 14.4c15.6 15.6 15.6 40.9 0 56.6l-29.4 29.4-71-71 29.4-29.4c15.6-15.6 40.9-15.6 56.6 0zM311.9 417L441.1 287.8l71 71L382.9 487.9c-4.1 4.1-9.2 7-14.9 8.4l-60.1 15c-5.5 1.4-11.2-.2-15.2-4.2s-5.6-9.7-4.2-15.2l15-60.1c1.4-5.6 4.3-10.8 8.4-14.9z\"]\n};\nconst faFileEdit = faFilePen;\nconst faReceipt = {\n prefix: 'fas',\n iconName: 'receipt',\n icon: [384, 512, [129534], \"f543\", \"M14 2.2C22.5-1.7 32.5-.3 39.6 5.8L80 40.4 120.4 5.8c9-7.7 22.3-7.7 31.2 0L192 40.4 232.4 5.8c9-7.7 22.3-7.7 31.2 0L304 40.4 344.4 5.8c7.1-6.1 17.1-7.5 25.6-3.6s14 12.4 14 21.8l0 464c0 9.4-5.5 17.9-14 21.8s-18.5 2.5-25.6-3.6L304 471.6l-40.4 34.6c-9 7.7-22.3 7.7-31.2 0L192 471.6l-40.4 34.6c-9 7.7-22.3 7.7-31.2 0L80 471.6 39.6 506.2c-7.1 6.1-17.1 7.5-25.6 3.6S0 497.4 0 488L0 24C0 14.6 5.5 6.1 14 2.2zM96 144c-8.8 0-16 7.2-16 16s7.2 16 16 16l192 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L96 144zM80 352c0 8.8 7.2 16 16 16l192 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L96 336c-8.8 0-16 7.2-16 16zM96 240c-8.8 0-16 7.2-16 16s7.2 16 16 16l192 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L96 240z\"]\n};\nconst faSquarePen = {\n prefix: 'fas',\n iconName: 'square-pen',\n icon: [448, 512, [\"pen-square\", \"pencil-square\"], \"f14b\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM325.8 139.7l14.4 14.4c15.6 15.6 15.6 40.9 0 56.6l-21.4 21.4-71-71 21.4-21.4c15.6-15.6 40.9-15.6 56.6 0zM119.9 289L225.1 183.8l71 71L190.9 359.9c-4.1 4.1-9.2 7-14.9 8.4l-60.1 15c-5.5 1.4-11.2-.2-15.2-4.2s-5.6-9.7-4.2-15.2l15-60.1c1.4-5.6 4.3-10.8 8.4-14.9z\"]\n};\nconst faPenSquare = faSquarePen;\nconst faPencilSquare = faSquarePen;\nconst faSuitcaseRolling = {\n prefix: 'fas',\n iconName: 'suitcase-rolling',\n icon: [384, 512, [], \"f5c1\", \"M144 56c0-4.4 3.6-8 8-8l80 0c4.4 0 8 3.6 8 8l0 72-96 0 0-72zm176 72l-32 0 0-72c0-30.9-25.1-56-56-56L152 0C121.1 0 96 25.1 96 56l0 72-32 0c-35.3 0-64 28.7-64 64L0 416c0 35.3 28.7 64 64 64c0 17.7 14.3 32 32 32s32-14.3 32-32l128 0c0 17.7 14.3 32 32 32s32-14.3 32-32c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64zM112 224l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 128l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nconst faPersonCircleExclamation = {\n prefix: 'fas',\n iconName: 'person-circle-exclamation',\n icon: [576, 512, [], \"e53f\", \"M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-223.1L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6l29.7 0c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9 232 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0zM432 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 240a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm0-192c-8.8 0-16 7.2-16 16l0 80c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80c0-8.8-7.2-16-16-16z\"]\n};\nconst faChevronDown = {\n prefix: 'fas',\n iconName: 'chevron-down',\n icon: [512, 512, [], \"f078\", \"M233.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 338.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z\"]\n};\nconst faBatteryFull = {\n prefix: 'fas',\n iconName: 'battery-full',\n icon: [576, 512, [128267, \"battery\", \"battery-5\"], \"f240\", \"M464 160c8.8 0 16 7.2 16 16l0 160c0 8.8-7.2 16-16 16L80 352c-8.8 0-16-7.2-16-16l0-160c0-8.8 7.2-16 16-16l384 0zM80 96C35.8 96 0 131.8 0 176L0 336c0 44.2 35.8 80 80 80l384 0c44.2 0 80-35.8 80-80l0-16c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l0-16c0-44.2-35.8-80-80-80L80 96zm368 96L96 192l0 128 352 0 0-128z\"]\n};\nconst faBattery = faBatteryFull;\nconst faBattery5 = faBatteryFull;\nconst faSkullCrossbones = {\n prefix: 'fas',\n iconName: 'skull-crossbones',\n icon: [448, 512, [128369, 9760], \"f714\", \"M368 128c0 44.4-25.4 83.5-64 106.4l0 21.6c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-21.6c-38.6-23-64-62.1-64-106.4C80 57.3 144.5 0 224 0s144 57.3 144 128zM168 176a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm144-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM3.4 273.7c7.9-15.8 27.1-22.2 42.9-14.3L224 348.2l177.7-88.8c15.8-7.9 35-1.5 42.9 14.3s1.5 35-14.3 42.9L295.6 384l134.8 67.4c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3L224 419.8 46.3 508.6c-15.8 7.9-35 1.5-42.9-14.3s-1.5-35 14.3-42.9L152.4 384 17.7 316.6C1.9 308.7-4.5 289.5 3.4 273.7z\"]\n};\nconst faCodeCompare = {\n prefix: 'fas',\n iconName: 'code-compare',\n icon: [512, 512, [], \"e13a\", \"M320 488c0 9.5-5.6 18.1-14.2 21.9s-18.8 2.3-25.8-4.1l-80-72c-5.1-4.6-7.9-11-7.9-17.8s2.9-13.3 7.9-17.8l80-72c7-6.3 17.2-7.9 25.8-4.1s14.2 12.4 14.2 21.9l0 40 16 0c35.3 0 64-28.7 64-64l0-166.7C371.7 141 352 112.8 352 80c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3L464 320c0 70.7-57.3 128-128 128l-16 0 0 40zM456 80a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM192 24c0-9.5 5.6-18.1 14.2-21.9s18.8-2.3 25.8 4.1l80 72c5.1 4.6 7.9 11 7.9 17.8s-2.9 13.3-7.9 17.8l-80 72c-7 6.3-17.2 7.9-25.8 4.1s-14.2-12.4-14.2-21.9l0-40-16 0c-35.3 0-64 28.7-64 64l0 166.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3L48 192c0-70.7 57.3-128 128-128l16 0 0-40zM56 432a24 24 0 1 0 48 0 24 24 0 1 0 -48 0z\"]\n};\nconst faListUl = {\n prefix: 'fas',\n iconName: 'list-ul',\n icon: [512, 512, [\"list-dots\"], \"f0ca\", \"M64 144a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 64zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zM64 464a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm48-208a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"]\n};\nconst faListDots = faListUl;\nconst faSchoolLock = {\n prefix: 'fas',\n iconName: 'school-lock',\n icon: [640, 512, [], \"e56f\", \"M302.2 5.4c10.7-7.2 24.8-7.2 35.5 0L473.7 96 592 96c26.5 0 48 21.5 48 48l0 128c0-61.9-50.1-112-112-112s-112 50.1-112 112l0 24.6c-19.1 11.1-32 31.7-32 55.4l-63.7 0-.3 0c-35.3 0-64 28.7-64 64l0 96 64 0s0 0 0 0L48 512c-26.5 0-48-21.5-48-48L0 144c0-26.5 21.5-48 48-48l118.3 0L302.2 5.4zM80 208l0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm0 128l0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm240-72a88 88 0 1 0 0-176 88 88 0 1 0 0 176zm16-120l0 16 16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16s16 7.2 16 16zm192 96c-17.7 0-32 14.3-32 32l0 48 64 0 0-48c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80l0 48c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32l0-48z\"]\n};\nconst faTowerCell = {\n prefix: 'fas',\n iconName: 'tower-cell',\n icon: [576, 512, [], \"e585\", \"M62.6 2.3C46.2-4.3 27.6 3.6 20.9 20C7.4 53.4 0 89.9 0 128s7.4 74.6 20.9 108c6.6 16.4 25.3 24.3 41.7 17.7S86.9 228.4 80.3 212C69.8 186.1 64 157.8 64 128s5.8-58.1 16.3-84C86.9 27.6 79 9 62.6 2.3zm450.8 0C497 9 489.1 27.6 495.7 44C506.2 69.9 512 98.2 512 128s-5.8 58.1-16.3 84c-6.6 16.4 1.3 35 17.7 41.7s35-1.3 41.7-17.7c13.5-33.4 20.9-69.9 20.9-108s-7.4-74.6-20.9-108C548.4 3.6 529.8-4.3 513.4 2.3zM340.1 165.2c7.5-10.5 11.9-23.3 11.9-37.2c0-35.3-28.7-64-64-64s-64 28.7-64 64c0 13.9 4.4 26.7 11.9 37.2L98.9 466.8c-7.3 16.1-.2 35.1 15.9 42.4s35.1 .2 42.4-15.9L177.7 448l220.6 0 20.6 45.2c7.3 16.1 26.3 23.2 42.4 15.9s23.2-26.3 15.9-42.4L340.1 165.2zM369.2 384l-162.4 0 14.5-32 133.3 0 14.5 32zM288 205.3L325.6 288l-75.2 0L288 205.3zM163.3 73.6c5.3-12.1-.2-26.3-12.4-31.6s-26.3 .2-31.6 12.4C109.5 77 104 101.9 104 128s5.5 51 15.3 73.6c5.3 12.1 19.5 17.7 31.6 12.4s17.7-19.5 12.4-31.6C156 165.8 152 147.4 152 128s4-37.8 11.3-54.4zM456.7 54.4c-5.3-12.1-19.5-17.7-31.6-12.4s-17.7 19.5-12.4 31.6C420 90.2 424 108.6 424 128s-4 37.8-11.3 54.4c-5.3 12.1 .2 26.3 12.4 31.6s26.3-.2 31.6-12.4C466.5 179 472 154.1 472 128s-5.5-51-15.3-73.6z\"]\n};\nconst faDownLong = {\n prefix: 'fas',\n iconName: 'down-long',\n icon: [320, 512, [\"long-arrow-alt-down\"], \"f309\", \"M2 334.5c-3.8 8.8-2 19 4.6 26l136 144c4.5 4.8 10.8 7.5 17.4 7.5s12.9-2.7 17.4-7.5l136-144c6.6-7 8.4-17.2 4.6-26s-12.5-14.5-22-14.5l-72 0 0-288c0-17.7-14.3-32-32-32L128 0C110.3 0 96 14.3 96 32l0 288-72 0c-9.6 0-18.2 5.7-22 14.5z\"]\n};\nconst faLongArrowAltDown = faDownLong;\nconst faRankingStar = {\n prefix: 'fas',\n iconName: 'ranking-star',\n icon: [640, 512, [], \"e561\", \"M353.8 54.1L330.2 6.3c-3.9-8.3-16.1-8.6-20.4 0L286.2 54.1l-52.3 7.5c-9.3 1.4-13.3 12.9-6.4 19.8l38 37-9 52.1c-1.4 9.3 8.2 16.5 16.8 12.2l46.9-24.8 46.6 24.4c8.6 4.3 18.3-2.9 16.8-12.2l-9-52.1 38-36.6c6.8-6.8 2.9-18.3-6.4-19.8l-52.3-7.5zM256 256c-17.7 0-32 14.3-32 32l0 192c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-192c0-17.7-14.3-32-32-32l-128 0zM32 320c-17.7 0-32 14.3-32 32L0 480c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32L32 320zm416 96l0 64c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-128 0c-17.7 0-32 14.3-32 32z\"]\n};\nconst faChessKing = {\n prefix: 'fas',\n iconName: 'chess-king',\n icon: [448, 512, [9818], \"f43f\", \"M224 0c17.7 0 32 14.3 32 32l0 16 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 48 152 0c22.1 0 40 17.9 40 40c0 5.3-1 10.5-3.1 15.4L368 400 80 400 3.1 215.4C1 210.5 0 205.3 0 200c0-22.1 17.9-40 40-40l152 0 0-48-16 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-16c0-17.7 14.3-32 32-32zM38.6 473.4L80 432l288 0 41.4 41.4c4.2 4.2 6.6 10 6.6 16c0 12.5-10.1 22.6-22.6 22.6L54.6 512C42.1 512 32 501.9 32 489.4c0-6 2.4-11.8 6.6-16z\"]\n};\nconst faPersonHarassing = {\n prefix: 'fas',\n iconName: 'person-harassing',\n icon: [576, 512, [], \"e549\", \"M192 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM59.4 304.5L88 256.9 88 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-244.7 47.4 57.1c11.3 13.6 31.5 15.5 45.1 4.2s15.5-31.5 4.2-45.1l-73.7-88.9c-18.2-22-45.3-34.7-73.9-34.7l-35.9 0c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9zM480 240a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM464 344l0 58.7-41.4-41.4c-7.3-7.3-17.6-10.6-27.8-9s-18.9 8.1-23.5 17.3l-48 96c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3L408.8 438l54.7 54.7c12.4 12.4 29.1 19.3 46.6 19.3c36.4 0 65.9-29.5 65.9-65.9L576 344c0-30.9-25.1-56-56-56s-56 25.1-56 56zM288 48c0 8.8 7.2 16 16 16l56 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-56 0c-8.8 0-16 7.2-16 16zm-.8 49.7c-7.9-4-17.5-.7-21.5 7.2s-.7 17.5 7.2 21.5l48 24c7.9 4 17.5 .7 21.5-7.2s.7-17.5-7.2-21.5l-48-24z\"]\n};\nconst faBrazilianRealSign = {\n prefix: 'fas',\n iconName: 'brazilian-real-sign',\n icon: [512, 512, [], \"e46c\", \"M400 0c17.7 0 32 14.3 32 32l0 18.2c12.5 2.3 24.7 6.4 36.2 12.1l10.1 5.1c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3l-10.2-5.1c-9.9-5-20.9-7.5-32-7.5l-1.7 0c-29.8 0-53.9 24.1-53.9 53.9c0 22 13.4 41.8 33.9 50l52 20.8c44.7 17.9 74.1 61.2 74.1 109.4l0 3.4c0 51.2-33.6 94.6-80 109.2l0 21.3c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-19.4c-15-3.5-29.4-9.7-42.3-18.3l-23.4-15.6c-14.7-9.8-18.7-29.7-8.9-44.4s29.7-18.7 44.4-8.9L361.2 389c10.8 7.2 23.4 11 36.3 11c27.9 0 50.5-22.6 50.5-50.5l0-3.4c0-22-13.4-41.8-33.9-50l-52-20.8C317.3 257.4 288 214.1 288 165.9C288 114 321.5 70 368 54.2L368 32c0-17.7 14.3-32 32-32zM0 64C0 46.3 14.3 32 32 32l80 0c79.5 0 144 64.5 144 144c0 58.8-35.2 109.3-85.7 131.7l51.4 128.4c6.6 16.4-1.4 35-17.8 41.6s-35-1.4-41.6-17.8L106.3 320 64 320l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 288 0 64zM64 256l48 0c44.2 0 80-35.8 80-80s-35.8-80-80-80L64 96l0 160z\"]\n};\nconst faLandmarkDome = {\n prefix: 'fas',\n iconName: 'landmark-dome',\n icon: [512, 512, [\"landmark-alt\"], \"f752\", \"M248 0l16 0c13.3 0 24 10.7 24 24l0 10.7C368.4 48.1 431.9 111.6 445.3 192l2.7 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 256c-17.7 0-32-14.3-32-32s14.3-32 32-32l2.7 0C80.1 111.6 143.6 48.1 224 34.7L224 24c0-13.3 10.7-24 24-24zM64 288l64 0 0 128 40 0 0-128 64 0 0 128 48 0 0-128 64 0 0 128 40 0 0-128 64 0 0 132.3c.6 .3 1.2 .7 1.8 1.1l48 32c11.7 7.8 17 22.4 12.9 35.9S494.1 512 480 512L32 512c-14.1 0-26.5-9.2-30.6-22.7s1.1-28.1 12.9-35.9l48-32c.6-.4 1.2-.7 1.8-1.1L64 288z\"]\n};\nconst faLandmarkAlt = faLandmarkDome;\nconst faArrowUp = {\n prefix: 'fas',\n iconName: 'arrow-up',\n icon: [384, 512, [8593], \"f062\", \"M214.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 141.2 160 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-306.7L329.4 246.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160z\"]\n};\nconst faTv = {\n prefix: 'fas',\n iconName: 'tv',\n icon: [640, 512, [63717, \"television\", \"tv-alt\"], \"f26c\", \"M64 64l0 288 512 0 0-288L64 64zM0 64C0 28.7 28.7 0 64 0L576 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 416c-35.3 0-64-28.7-64-64L0 64zM128 448l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-384 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nconst faTelevision = faTv;\nconst faTvAlt = faTv;\nconst faShrimp = {\n prefix: 'fas',\n iconName: 'shrimp',\n icon: [512, 512, [129424], \"e448\", \"M64 32C28.7 32 0 60.7 0 96s28.7 64 64 64l1 0c3.7 88.9 77 160 167 160l56 0 0-192-24 0L88.8 128 64 128c-17.7 0-32-14.3-32-32s14.3-32 32-32l400 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L64 32zM224 456c0 13.3 10.7 24 24 24l72 0 0-72.2-64.1-22.4c-12.5-4.4-26.2 2.2-30.6 14.7s2.2 26.2 14.7 30.6l4.5 1.6C233 433.9 224 443.9 224 456zm128 23.3c36.4-3.3 69.5-17.6 96.1-39.6l-86.5-34.6c-3 1.8-6.2 3.2-9.6 4.3l0 69.9zM472.6 415c24.6-30.3 39.4-68.9 39.4-111c0-12.3-1.3-24.3-3.7-35.9L382.8 355.1c.8 3.4 1.2 7 1.2 10.6c0 4.6-.7 9-1.9 13.1L472.6 415zM336 128l-16 0 0 192 18.3 0c9.9 0 19.1 3.2 26.6 8.5l133.5-92.4C471.8 172.6 409.1 128 336 128zM168 192a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nconst faListCheck = {\n prefix: 'fas',\n iconName: 'list-check',\n icon: [512, 512, [\"tasks\"], \"f0ae\", \"M152.1 38.2c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L7 113C-2.3 103.6-2.3 88.4 7 79s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zm0 160c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L7 273c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zM224 96c0-17.7 14.3-32 32-32l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32zm0 160c0-17.7 14.3-32 32-32l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32zM160 416c0-17.7 14.3-32 32-32l288 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-288 0c-17.7 0-32-14.3-32-32zM48 368a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"]\n};\nconst faTasks = faListCheck;\nconst faJugDetergent = {\n prefix: 'fas',\n iconName: 'jug-detergent',\n icon: [384, 512, [], \"e519\", \"M96 24c0-13.3 10.7-24 24-24l80 0c13.3 0 24 10.7 24 24l0 24 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L88 96C74.7 96 64 85.3 64 72s10.7-24 24-24l8 0 0-24zM0 256c0-70.7 57.3-128 128-128l128 0c70.7 0 128 57.3 128 128l0 192c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 256zm256 0l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32z\"]\n};\nconst faCircleUser = {\n prefix: 'fas',\n iconName: 'circle-user',\n icon: [512, 512, [62142, \"user-circle\"], \"f2bd\", \"M399 384.2C376.9 345.8 335.4 320 288 320l-64 0c-47.4 0-88.9 25.8-111 64.2c35.2 39.2 86.2 63.8 143 63.8s107.8-24.7 143-63.8zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256 16a72 72 0 1 0 0-144 72 72 0 1 0 0 144z\"]\n};\nconst faUserCircle = faCircleUser;\nconst faUserShield = {\n prefix: 'fas',\n iconName: 'user-shield',\n icon: [640, 512, [], \"f505\", \"M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512l388.6 0c1.8 0 3.5-.2 5.3-.5c-76.3-55.1-99.8-141-103.1-200.2c-16.1-4.8-33.1-7.3-50.7-7.3l-91.4 0zm308.8-78.3l-120 48C358 277.4 352 286.2 352 296c0 63.3 25.9 168.8 134.8 214.2c5.9 2.5 12.6 2.5 18.5 0C614.1 464.8 640 359.3 640 296c0-9.8-6-18.6-15.1-22.3l-120-48c-5.7-2.3-12.1-2.3-17.8 0zM591.4 312c-3.9 50.7-27.2 116.7-95.4 149.7l0-187.8L591.4 312z\"]\n};\nconst faWind = {\n prefix: 'fas',\n iconName: 'wind',\n icon: [512, 512, [], \"f72e\", \"M288 32c0 17.7 14.3 32 32 32l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l320 0c53 0 96-43 96-96s-43-96-96-96L320 0c-17.7 0-32 14.3-32 32zm64 352c0 17.7 14.3 32 32 32l32 0c53 0 96-43 96-96s-43-96-96-96L32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c-17.7 0-32 14.3-32 32zM128 512l32 0c53 0 96-43 96-96s-43-96-96-96L32 320c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32z\"]\n};\nconst faCarBurst = {\n prefix: 'fas',\n iconName: 'car-burst',\n icon: [640, 512, [\"car-crash\"], \"f5e1\", \"M176 8c-6.6 0-12.4 4-14.9 10.1l-29.4 74L55.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1L10.9 206.4c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2L90.6 327c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6l35.3-32.5 9.5-35.4 10.4-38.6c8-29.9 30.5-52.1 57.9-60.9l41-59.2c11.3-16.3 26.4-28.9 43.5-37.2c-.4-.6-.8-1.2-1.3-1.8c-4.1-5.1-10.9-7.2-17.2-5.3L220.3 92.1l-29.4-74C188.4 12 182.6 8 176 8zM367.7 161.5l135.6 36.3c6.5 1.8 11.3 7.4 11.8 14.2l4.6 56.5-201.5-54 32.2-46.6c3.8-5.6 10.8-8.1 17.3-6.4zm-69.9-30l-47.9 69.3c-21.6 3-40.3 18.6-46.3 41l-10.4 38.6-16.6 61.8-8.3 30.9c-4.6 17.1 5.6 34.6 22.6 39.2l15.5 4.1c17.1 4.6 34.6-5.6 39.2-22.6l8.3-30.9 247.3 66.3-8.3 30.9c-4.6 17.1 5.6 34.6 22.6 39.2l15.5 4.1c17.1 4.6 34.6-5.6 39.2-22.6l8.3-30.9L595 388l10.4-38.6c6-22.4-2.5-45.2-19.6-58.7l-6.8-84c-2.7-33.7-26.4-62-59-70.8L384.2 99.7c-32.7-8.8-67.3 4-86.5 31.8zm-17 131a24 24 0 1 1 -12.4 46.4 24 24 0 1 1 12.4-46.4zm217.9 83.2A24 24 0 1 1 545 358.1a24 24 0 1 1 -46.4-12.4z\"]\n};\nconst faCarCrash = faCarBurst;\nconst faY = {\n prefix: 'fas',\n iconName: 'y',\n icon: [384, 512, [121], \"59\", \"M58 45.4C47.8 31 27.8 27.7 13.4 38S-4.3 68.2 6 82.6L160 298.3 160 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-149.7L378 82.6c10.3-14.4 6.9-34.4-7.4-44.6S336.2 31 326 45.4L192 232.9 58 45.4z\"]\n};\nconst faPersonSnowboarding = {\n prefix: 'fas',\n iconName: 'person-snowboarding',\n icon: [512, 512, [127938, \"snowboarding\"], \"f7ce\", \"M209.7 3.4c15.8-7.9 35-1.5 42.9 14.3l25 50 42.4 8.5c19.5 3.9 37.8 12.3 53.5 24.5l126.1 98.1c14 10.9 16.5 31 5.6 44.9s-31 16.5-44.9 5.6l-72.1-56.1-71.5 31.8 33.1 27.6c23.2 19.3 33.5 50 26.7 79.4l-17.4 75.2c-2.2 9.4-8.2 16.8-16.1 21l86.5 33.1c4.6 1.8 9.4 2.6 14.3 2.6l28.2 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-28.2 0c-10.8 0-21.4-2-31.5-5.8L60.1 371.3c-11.5-4.4-22-11.2-30.8-20L7 329c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.4 22.4c4 4 8.7 7.1 14 9.1l22.4 8.6c-.8-1.6-1.5-3.2-2.1-4.9c-5.6-16.8 3.5-34.9 20.2-40.5L192 264.9l0-53.2c0-24.2 13.7-46.4 35.4-57.2l45.2-22.6-7.5-1.5c-19.4-3.9-35.9-16.5-44.7-34.1l-25-50c-7.9-15.8-1.5-35 14.3-42.9zM139 350.1l159 60.9c-2.1-5.6-2.6-11.9-1.1-18.2l17.4-75.2c1.4-5.9-.7-12-5.3-15.9l-52.8-44 0 18.8c0 20.7-13.2 39-32.8 45.5L139 350.1zM432 0a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"]\n};\nconst faSnowboarding = faPersonSnowboarding;\nconst faTruckFast = {\n prefix: 'fas',\n iconName: 'truck-fast',\n icon: [640, 512, [\"shipping-fast\"], \"f48b\", \"M112 0C85.5 0 64 21.5 64 48l0 48L16 96c-8.8 0-16 7.2-16 16s7.2 16 16 16l48 0 208 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L64 160l-16 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l16 0 176 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L64 224l-48 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l48 0 144 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L64 288l0 128c0 53 43 96 96 96s96-43 96-96l128 0c0 53 43 96 96 96s96-43 96-96l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-64 0-32 0-18.7c0-17-6.7-33.3-18.7-45.3L512 114.7c-12-12-28.3-18.7-45.3-18.7L416 96l0-48c0-26.5-21.5-48-48-48L112 0zM544 237.3l0 18.7-128 0 0-96 50.7 0L544 237.3zM160 368a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm272 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z\"]\n};\nconst faShippingFast = faTruckFast;\nconst faFish = {\n prefix: 'fas',\n iconName: 'fish',\n icon: [576, 512, [128031], \"f578\", \"M180.5 141.5C219.7 108.5 272.6 80 336 80s116.3 28.5 155.5 61.5c39.1 33 66.9 72.4 81 99.8c4.7 9.2 4.7 20.1 0 29.3c-14.1 27.4-41.9 66.8-81 99.8C452.3 403.5 399.4 432 336 432s-116.3-28.5-155.5-61.5c-16.2-13.7-30.5-28.5-42.7-43.1L48.1 379.6c-12.5 7.3-28.4 5.3-38.7-4.9S-3 348.7 4.2 336.1L50 256 4.2 175.9c-7.2-12.6-5-28.4 5.3-38.6s26.1-12.2 38.7-4.9l89.7 52.3c12.2-14.6 26.5-29.4 42.7-43.1zM448 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"]\n};\nconst faUserGraduate = {\n prefix: 'fas',\n iconName: 'user-graduate',\n icon: [448, 512, [], \"f501\", \"M219.3 .5c3.1-.6 6.3-.6 9.4 0l200 40C439.9 42.7 448 52.6 448 64s-8.1 21.3-19.3 23.5L352 102.9l0 57.1c0 70.7-57.3 128-128 128s-128-57.3-128-128l0-57.1L48 93.3l0 65.1 15.7 78.4c.9 4.7-.3 9.6-3.3 13.3s-7.6 5.9-12.4 5.9l-32 0c-4.8 0-9.3-2.1-12.4-5.9s-4.3-8.6-3.3-13.3L16 158.4l0-71.8C6.5 83.3 0 74.3 0 64C0 52.6 8.1 42.7 19.3 40.5l200-40zM111.9 327.7c10.5-3.4 21.8 .4 29.4 8.5l71 75.5c6.3 6.7 17 6.7 23.3 0l71-75.5c7.6-8.1 18.9-11.9 29.4-8.5C401 348.6 448 409.4 448 481.3c0 17-13.8 30.7-30.7 30.7L30.7 512C13.8 512 0 498.2 0 481.3c0-71.9 47-132.7 111.9-153.6z\"]\n};\nconst faCircleHalfStroke = {\n prefix: 'fas',\n iconName: 'circle-half-stroke',\n icon: [512, 512, [9680, \"adjust\"], \"f042\", \"M448 256c0-106-86-192-192-192l0 384c106 0 192-86 192-192zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z\"]\n};\nconst faAdjust = faCircleHalfStroke;\nconst faClapperboard = {\n prefix: 'fas',\n iconName: 'clapperboard',\n icon: [512, 512, [], \"e131\", \"M448 32l-86.1 0-1 1-127 127 92.1 0 1-1L453.8 32.3c-1.9-.2-3.8-.3-5.8-.3zm64 128l0-64c0-15.1-5.3-29.1-14-40l-104 104L512 160zM294.1 32l-92.1 0-1 1L73.9 160l92.1 0 1-1 127-127zM64 32C28.7 32 0 60.7 0 96l0 64 6.1 0 1-1 127-127L64 32zM512 192L0 192 0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-224z\"]\n};\nconst faCircleRadiation = {\n prefix: 'fas',\n iconName: 'circle-radiation',\n icon: [512, 512, [9762, \"radiation-alt\"], \"f7ba\", \"M256 64a192 192 0 1 1 0 384 192 192 0 1 1 0-384zm0 448A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM200 256c0-20.7 11.3-38.8 28-48.5l-36-62.3c-8.8-15.3-28.7-20.8-42-9c-25.6 22.6-43.9 53.3-50.9 88.1C95.7 241.5 110.3 256 128 256l72 0zm28 48.5l-36 62.4c-8.8 15.3-3.6 35.2 13.1 40.8c16 5.4 33.1 8.3 50.9 8.3s34.9-2.9 50.9-8.3c16.7-5.6 21.9-25.5 13.1-40.8l-36-62.4c-8.2 4.8-17.8 7.5-28 7.5s-19.8-2.7-28-7.5zM312 256l72 0c17.7 0 32.3-14.5 28.8-31.8c-7-34.8-25.3-65.5-50.9-88.1c-13.2-11.7-33.1-6.3-42 9l-36 62.3c16.7 9.7 28 27.8 28 48.5zm-56 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nconst faRadiationAlt = faCircleRadiation;\nconst faBaseball = {\n prefix: 'fas',\n iconName: 'baseball',\n icon: [512, 512, [129358, 9918, \"baseball-ball\"], \"f433\", \"M62.7 223.4c-4.8 .4-9.7 .6-14.7 .6c-15.6 0-30.8-2-45.2-5.9C19.2 107.1 107.1 19.2 218.1 2.8C222 17.2 224 32.4 224 48c0 4.9-.2 9.8-.6 14.7c-.7 8.8 5.8 16.5 14.6 17.3s16.5-5.8 17.3-14.6c.5-5.7 .7-11.5 .7-17.3c0-16.5-1.9-32.6-5.6-47.9c1.8 0 3.7-.1 5.6-.1C397.4 0 512 114.6 512 256c0 1.9 0 3.7-.1 5.6c-15.4-3.6-31.4-5.6-47.9-5.6c-5.8 0-11.6 .2-17.3 .7c-8.8 .7-15.4 8.5-14.6 17.3s8.5 15.4 17.3 14.6c4.8-.4 9.7-.6 14.7-.6c15.6 0 30.8 2 45.2 5.9C492.8 404.9 404.9 492.8 293.9 509.2C290 494.8 288 479.6 288 464c0-4.9 .2-9.8 .6-14.7c.7-8.8-5.8-16.5-14.6-17.3s-16.5 5.8-17.3 14.6c-.5 5.7-.7 11.5-.7 17.3c0 16.5 1.9 32.6 5.6 47.9c-1.8 0-3.7 .1-5.6 .1C114.6 512 0 397.4 0 256c0-1.9 0-3.7 .1-5.6C15.4 254.1 31.5 256 48 256c5.8 0 11.6-.2 17.3-.7c8.8-.7 15.4-8.5 14.6-17.3s-8.5-15.4-17.3-14.6zM121.3 208c-8 3.7-11.6 13.2-7.9 21.2s13.2 11.6 21.2 7.9c45.2-20.8 81.7-57.2 102.5-102.5c3.7-8 .2-17.5-7.9-21.2s-17.5-.2-21.2 7.9c-17.6 38.3-48.5 69.2-86.7 86.7zm277.2 74.7c-3.7-8-13.2-11.6-21.2-7.9c-45.2 20.8-81.7 57.2-102.5 102.5c-3.7 8-.2 17.5 7.9 21.2s17.5 .2 21.2-7.9c17.6-38.3 48.5-69.2 86.7-86.7c8-3.7 11.6-13.2 7.9-21.2z\"]\n};\nconst faBaseballBall = faBaseball;\nconst faJetFighterUp = {\n prefix: 'fas',\n iconName: 'jet-fighter-up',\n icon: [512, 512, [], \"e518\", \"M270.7 9.7C268.2 3.8 262.4 0 256 0s-12.2 3.8-14.7 9.7L197.2 112.6c-3.4 8-5.2 16.5-5.2 25.2l0 77-144 84L48 280c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 56 0 32 0 24c0 13.3 10.7 24 24 24s24-10.7 24-24l0-8 144 0 0 32.7L133.5 468c-3.5 3-5.5 7.4-5.5 12l0 16c0 8.8 7.2 16 16 16l96 0 0-64c0-8.8 7.2-16 16-16s16 7.2 16 16l0 64 96 0c8.8 0 16-7.2 16-16l0-16c0-4.6-2-9-5.5-12L320 416.7l0-32.7 144 0 0 8c0 13.3 10.7 24 24 24s24-10.7 24-24l0-24 0-32 0-56c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 18.8-144-84 0-77c0-8.7-1.8-17.2-5.2-25.2L270.7 9.7z\"]\n};\nconst faDiagramProject = {\n prefix: 'fas',\n iconName: 'diagram-project',\n icon: [576, 512, [\"project-diagram\"], \"f542\", \"M0 80C0 53.5 21.5 32 48 32l96 0c26.5 0 48 21.5 48 48l0 16 192 0 0-16c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-16-192 0 0 16c0 1.7-.1 3.4-.3 5L272 288l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-96c0-1.7 .1-3.4 .3-5L144 224l-96 0c-26.5 0-48-21.5-48-48L0 80z\"]\n};\nconst faProjectDiagram = faDiagramProject;\nconst faCopy = {\n prefix: 'fas',\n iconName: 'copy',\n icon: [448, 512, [], \"f0c5\", \"M208 0L332.1 0c12.7 0 24.9 5.1 33.9 14.1l67.9 67.9c9 9 14.1 21.2 14.1 33.9L448 336c0 26.5-21.5 48-48 48l-192 0c-26.5 0-48-21.5-48-48l0-288c0-26.5 21.5-48 48-48zM48 128l80 0 0 64-64 0 0 256 192 0 0-32 64 0 0 48c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 176c0-26.5 21.5-48 48-48z\"]\n};\nconst faVolumeXmark = {\n prefix: 'fas',\n iconName: 'volume-xmark',\n icon: [576, 512, [\"volume-mute\", \"volume-times\"], \"f6a9\", \"M301.1 34.8C312.6 40 320 51.4 320 64l0 384c0 12.6-7.4 24-18.9 29.2s-25 3.1-34.4-5.3L131.8 352 64 352c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l67.8 0L266.7 40.1c9.4-8.4 22.9-10.4 34.4-5.3zM425 167l55 55 55-55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-55 55 55 55c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-55-55-55 55c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l55-55-55-55c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z\"]\n};\nconst faVolumeMute = faVolumeXmark;\nconst faVolumeTimes = faVolumeXmark;\nconst faHandSparkles = {\n prefix: 'fas',\n iconName: 'hand-sparkles',\n icon: [640, 512, [], \"e05d\", \"M320 0c17.7 0 32 14.3 32 32l0 208c0 8.8 7.2 16 16 16s16-7.2 16-16l0-176c0-17.7 14.3-32 32-32s32 14.3 32 32l0 176c0 8.8 7.2 16 16 16s16-7.2 16-16l0-112c0-17.7 14.3-32 32-32s32 14.3 32 32l0 195.1c-11.9 4.8-21.3 14.9-25 27.8l-8.9 31.2L478.9 391C460.6 396.3 448 413 448 432c0 18.9 12.5 35.6 30.6 40.9C448.4 497.4 409.9 512 368 512l-19.2 0c-59.6 0-116.9-22.9-160-64L76.4 341c-16-15.2-16.6-40.6-1.4-56.6s40.6-16.6 56.6-1.4l60.5 57.6c0-1.5-.1-3.1-.1-4.6l0-272c0-17.7 14.3-32 32-32s32 14.3 32 32l0 176c0 8.8 7.2 16 16 16s16-7.2 16-16l0-208c0-17.7 14.3-32 32-32zm-7.3 326.6c-1.1-3.9-4.7-6.6-8.7-6.6s-7.6 2.7-8.7 6.6L288 352l-25.4 7.3c-3.9 1.1-6.6 4.7-6.6 8.7s2.7 7.6 6.6 8.7L288 384l7.3 25.4c1.1 3.9 4.7 6.6 8.7 6.6s7.6-2.7 8.7-6.6L320 384l25.4-7.3c3.9-1.1 6.6-4.7 6.6-8.7s-2.7-7.6-6.6-8.7L320 352l-7.3-25.4zM104 120l48.3 13.8c4.6 1.3 7.7 5.5 7.7 10.2s-3.1 8.9-7.7 10.2L104 168 90.2 216.3c-1.3 4.6-5.5 7.7-10.2 7.7s-8.9-3.1-10.2-7.7L56 168 7.7 154.2C3.1 152.9 0 148.7 0 144s3.1-8.9 7.7-10.2L56 120 69.8 71.7C71.1 67.1 75.3 64 80 64s8.9 3.1 10.2 7.7L104 120zM584 408l48.3 13.8c4.6 1.3 7.7 5.5 7.7 10.2s-3.1 8.9-7.7 10.2L584 456l-13.8 48.3c-1.3 4.6-5.5 7.7-10.2 7.7s-8.9-3.1-10.2-7.7L536 456l-48.3-13.8c-4.6-1.3-7.7-5.5-7.7-10.2s3.1-8.9 7.7-10.2L536 408l13.8-48.3c1.3-4.6 5.5-7.7 10.2-7.7s8.9 3.1 10.2 7.7L584 408z\"]\n};\nconst faGrip = {\n prefix: 'fas',\n iconName: 'grip',\n icon: [448, 512, [\"grip-horizontal\"], \"f58d\", \"M128 136c0-22.1-17.9-40-40-40L40 96C17.9 96 0 113.9 0 136l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48zm0 192c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48zm32-192l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40zM288 328c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48zm32-192l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40zM448 328c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48z\"]\n};\nconst faGripHorizontal = faGrip;\nconst faShareFromSquare = {\n prefix: 'fas',\n iconName: 'share-from-square',\n icon: [576, 512, [61509, \"share-square\"], \"f14d\", \"M352 224l-46.5 0c-45 0-81.5 36.5-81.5 81.5c0 22.3 10.3 34.3 19.2 40.5c6.8 4.7 12.8 12 12.8 20.3c0 9.8-8 17.8-17.8 17.8l-2.5 0c-2.4 0-4.8-.4-7.1-1.4C210.8 374.8 128 333.4 128 240c0-79.5 64.5-144 144-144l80 0 0-61.3C352 15.5 367.5 0 386.7 0c8.6 0 16.8 3.2 23.2 8.9L548.1 133.3c7.6 6.8 11.9 16.5 11.9 26.7s-4.3 19.9-11.9 26.7l-139 125.1c-5.9 5.3-13.5 8.2-21.4 8.2l-3.7 0c-17.7 0-32-14.3-32-32l0-64zM80 96c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-48c0-17.7 14.3-32 32-32s32 14.3 32 32l0 48c0 44.2-35.8 80-80 80L80 512c-44.2 0-80-35.8-80-80L0 112C0 67.8 35.8 32 80 32l48 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L80 96z\"]\n};\nconst faShareSquare = faShareFromSquare;\nconst faChildCombatant = {\n prefix: 'fas',\n iconName: 'child-combatant',\n icon: [576, 512, [\"child-rifle\"], \"e4e0\", \"M176 128A64 64 0 1 0 176 0a64 64 0 1 0 0 128zm-8 352l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-179.5L260.9 321c9.4 15 29.2 19.4 44.1 10s19.4-29.2 10-44.1l-51.7-82.1c-17.6-27.9-48.3-44.9-81.2-44.9l-12.3 0c-33 0-63.7 16.9-81.2 44.9L36.9 287c-9.4 15-4.9 34.7 10 44.1s34.7 4.9 44.1-10L104 300.5 104 480c0 17.7 14.3 32 32 32s32-14.3 32-32zM448 0L432 0 416 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l0 100.3c-9.6 5.5-16 15.9-16 27.7l0 32c-17.7 0-32 14.3-32 32l0 144c0 17.7 14.3 32 32 32l16 0 0 96c0 8.8 7.2 16 16 16l59.5 0c10.4 0 18-9.8 15.5-19.9L484 400l44 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-48 0 0-26.7 53.1-17.7c6.5-2.2 10.9-8.3 10.9-15.2l0-84.5c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16l0 56-16 5.3L480 160c0-11.8-6.4-22.2-16-27.7L464 16c0-8.8-7.2-16-16-16z\"]\n};\nconst faChildRifle = faChildCombatant;\nconst faGun = {\n prefix: 'fas',\n iconName: 'gun',\n icon: [576, 512, [], \"e19b\", \"M528 56c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 8L32 64C14.3 64 0 78.3 0 96L0 208c0 17.7 14.3 32 32 32l10 0c20.8 0 36.1 19.6 31 39.8L33 440.2c-2.4 9.6-.2 19.7 5.8 27.5S54.1 480 64 480l96 0c14.7 0 27.5-10 31-24.2L217 352l104.5 0c23.7 0 44.8-14.9 52.7-37.2L400.9 240l31.1 0c8.5 0 16.6-3.4 22.6-9.4L477.3 208l66.7 0c17.7 0 32-14.3 32-32l0-80c0-17.7-14.3-32-32-32l-16 0 0-8zM321.4 304L229 304l16-64 105 0-21 58.7c-1.1 3.2-4.2 5.3-7.5 5.3zM80 128l384 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L80 160c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nconst faSquarePhone = {\n prefix: 'fas',\n iconName: 'square-phone',\n icon: [448, 512, [\"phone-square\"], \"f098\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm90.7 96.7c9.7-2.6 19.9 2.3 23.7 11.6l20 48c3.4 8.2 1 17.6-5.8 23.2L168 231.7c16.6 35.2 45.1 63.7 80.3 80.3l20.2-24.7c5.6-6.8 15-9.2 23.2-5.8l48 20c9.3 3.9 14.2 14 11.6 23.7l-12 44C336.9 378 329 384 320 384C196.3 384 96 283.7 96 160c0-9 6-16.9 14.7-19.3l44-12z\"]\n};\nconst faPhoneSquare = faSquarePhone;\nconst faPlus = {\n prefix: 'fas',\n iconName: 'plus',\n icon: [448, 512, [10133, 61543, \"add\"], \"2b\", \"M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 144L48 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l144 0 0 144c0 17.7 14.3 32 32 32s32-14.3 32-32l0-144 144 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-144 0 0-144z\"]\n};\nconst faAdd = faPlus;\nconst faExpand = {\n prefix: 'fas',\n iconName: 'expand',\n icon: [448, 512, [], \"f065\", \"M32 32C14.3 32 0 46.3 0 64l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zM64 352c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-64zM320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32l-96 0zM448 352c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32l0-96z\"]\n};\nconst faComputer = {\n prefix: 'fas',\n iconName: 'computer',\n icon: [640, 512, [], \"e4e5\", \"M384 96l0 224L64 320 64 96l320 0zM64 32C28.7 32 0 60.7 0 96L0 320c0 35.3 28.7 64 64 64l117.3 0-10.7 32L96 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-74.7 0-10.7-32L384 384c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L64 32zm464 0c-26.5 0-48 21.5-48 48l0 352c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48l-64 0zm16 64l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm-16 80c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16zm32 160a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nconst faXmark = {\n prefix: 'fas',\n iconName: 'xmark',\n icon: [384, 512, [128473, 10005, 10006, 10060, 215, \"close\", \"multiply\", \"remove\", \"times\"], \"f00d\", \"M342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7 86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256 41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 297.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256 342.6 150.6z\"]\n};\nconst faClose = faXmark;\nconst faMultiply = faXmark;\nconst faRemove = faXmark;\nconst faTimes = faXmark;\nconst faArrowsUpDownLeftRight = {\n prefix: 'fas',\n iconName: 'arrows-up-down-left-right',\n icon: [512, 512, [\"arrows\"], \"f047\", \"M278.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l9.4-9.4L224 224l-114.7 0 9.4-9.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4L224 288l0 114.7-9.4-9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-9.4 9.4L288 288l114.7 0-9.4 9.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l9.4 9.4L288 224l0-114.7 9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64z\"]\n};\nconst faArrows = faArrowsUpDownLeftRight;\nconst faChalkboardUser = {\n prefix: 'fas',\n iconName: 'chalkboard-user',\n icon: [640, 512, [\"chalkboard-teacher\"], \"f51c\", \"M160 64c0-35.3 28.7-64 64-64L576 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64l-239.2 0c-11.8-25.5-29.9-47.5-52.4-64l99.6 0 0-32c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 32 64 0 0-288L224 64l0 49.1C205.2 102.2 183.3 96 160 96l0-32zm0 64a96 96 0 1 1 0 192 96 96 0 1 1 0-192zM133.3 352l53.3 0C260.3 352 320 411.7 320 485.3c0 14.7-11.9 26.7-26.7 26.7L26.7 512C11.9 512 0 500.1 0 485.3C0 411.7 59.7 352 133.3 352z\"]\n};\nconst faChalkboardTeacher = faChalkboardUser;\nconst faPesoSign = {\n prefix: 'fas',\n iconName: 'peso-sign',\n icon: [384, 512, [], \"e222\", \"M64 32C46.3 32 32 46.3 32 64l0 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 64 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 80 0c68.4 0 127.7-39 156.8-96l19.2 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-.7 0c.5-5.3 .7-10.6 .7-16s-.2-10.7-.7-16l.7 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-19.2 0C303.7 71 244.4 32 176 32L64 32zm190.4 96L96 128l0-32 80 0c30.5 0 58.2 12.2 78.4 32zM96 192l190.9 0c.7 5.2 1.1 10.6 1.1 16s-.4 10.8-1.1 16L96 224l0-32zm158.4 96c-20.2 19.8-47.9 32-78.4 32l-80 0 0-32 158.4 0z\"]\n};\nconst faBuildingShield = {\n prefix: 'fas',\n iconName: 'building-shield',\n icon: [576, 512, [], \"e4d8\", \"M0 48C0 21.5 21.5 0 48 0L336 0c26.5 0 48 21.5 48 48l0 159-42.4 17L304 224l-32 0c-8.8 0-16 7.2-16 16l0 32 0 24.2 0 7.8c0 .9 .1 1.7 .2 2.6c2.3 58.1 24.1 144.8 98.7 201.5c-5.8 2.5-12.2 3.9-18.9 3.9l-96 0 0-80c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 80-96 0c-26.5 0-48-21.5-48-48L0 48zM80 224c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm80 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM64 112l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16L80 96c-8.8 0-16 7.2-16 16zM176 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm80 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM423.1 225.7c5.7-2.3 12.1-2.3 17.8 0l120 48C570 277.4 576 286.2 576 296c0 63.3-25.9 168.8-134.8 214.2c-5.9 2.5-12.6 2.5-18.5 0C313.9 464.8 288 359.3 288 296c0-9.8 6-18.6 15.1-22.3l120-48zM527.4 312L432 273.8l0 187.8c68.2-33 91.5-99 95.4-149.7z\"]\n};\nconst faBaby = {\n prefix: 'fas',\n iconName: 'baby',\n icon: [448, 512, [], \"f77c\", \"M152 88a72 72 0 1 1 144 0A72 72 0 1 1 152 88zM39.7 144.5c13-17.9 38-21.8 55.9-8.8L131.8 162c26.8 19.5 59.1 30 92.2 30s65.4-10.5 92.2-30l36.2-26.4c17.9-13 42.9-9 55.9 8.8s9 42.9-8.8 55.9l-36.2 26.4c-13.6 9.9-28.1 18.2-43.3 25l0 36.3-192 0 0-36.3c-15.2-6.7-29.7-15.1-43.3-25L48.5 200.3c-17.9-13-21.8-38-8.8-55.9zm89.8 184.8l60.6 53-26 37.2 24.3 24.3c15.6 15.6 15.6 40.9 0 56.6s-40.9 15.6-56.6 0l-48-48C70 438.6 68.1 417 79.2 401.1l50.2-71.8zm128.5 53l60.6-53 50.2 71.8c11.1 15.9 9.2 37.5-4.5 51.2l-48 48c-15.6 15.6-40.9 15.6-56.6 0s-15.6-40.9 0-56.6L284 419.4l-26-37.2z\"]\n};\nconst faUsersLine = {\n prefix: 'fas',\n iconName: 'users-line',\n icon: [640, 512, [], \"e592\", \"M211.2 96a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM32 256c0 17.7 14.3 32 32 32l85.6 0c10.1-39.4 38.6-71.5 75.8-86.6c-9.7-6-21.2-9.4-33.4-9.4l-96 0c-35.3 0-64 28.7-64 64zm461.6 32l82.4 0c17.7 0 32-14.3 32-32c0-35.3-28.7-64-64-64l-96 0c-11.7 0-22.7 3.1-32.1 8.6c38.1 14.8 67.4 47.3 77.7 87.4zM391.2 226.4c-6.9-1.6-14.2-2.4-21.6-2.4l-96 0c-8.5 0-16.7 1.1-24.5 3.1c-30.8 8.1-55.6 31.1-66.1 60.9c-3.5 10-5.5 20.8-5.5 32c0 17.7 14.3 32 32 32l224 0c17.7 0 32-14.3 32-32c0-11.2-1.9-22-5.5-32c-10.8-30.7-36.8-54.2-68.9-61.6zM563.2 96a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM321.6 192a80 80 0 1 0 0-160 80 80 0 1 0 0 160zM32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l576 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 416z\"]\n};\nconst faQuoteLeft = {\n prefix: 'fas',\n iconName: 'quote-left',\n icon: [448, 512, [8220, \"quote-left-alt\"], \"f10d\", \"M0 216C0 149.7 53.7 96 120 96l8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-8 0c-30.9 0-56 25.1-56 56l0 8 64 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64l-64 0c-35.3 0-64-28.7-64-64l0-32 0-32 0-72zm256 0c0-66.3 53.7-120 120-120l8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-8 0c-30.9 0-56 25.1-56 56l0 8 64 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64l-64 0c-35.3 0-64-28.7-64-64l0-32 0-32 0-72z\"]\n};\nconst faQuoteLeftAlt = faQuoteLeft;\nconst faTractor = {\n prefix: 'fas',\n iconName: 'tractor',\n icon: [640, 512, [128668], \"f722\", \"M96 64c0-35.3 28.7-64 64-64L266.3 0c26.2 0 49.7 15.9 59.4 40.2L373.7 160 480 160l0-33.8c0-24.8 5.8-49.3 16.9-71.6l2.5-5c7.9-15.8 27.1-22.2 42.9-14.3s22.2 27.1 14.3 42.9l-2.5 5c-6.7 13.3-10.1 28-10.1 42.9l0 33.8 56 0c22.1 0 40 17.9 40 40l0 45.4c0 16.5-8.5 31.9-22.6 40.7l-43.3 27.1c-14.2-5.9-29.8-9.2-46.1-9.2c-39.3 0-74.1 18.9-96 48l-80 0c0 17.7-14.3 32-32 32l-8.2 0c-1.7 4.8-3.7 9.5-5.8 14.1l5.8 5.8c12.5 12.5 12.5 32.8 0 45.3l-22.6 22.6c-12.5 12.5-32.8 12.5-45.3 0l-5.8-5.8c-4.6 2.2-9.3 4.1-14.1 5.8l0 8.2c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-8.2c-4.8-1.7-9.5-3.7-14.1-5.8l-5.8 5.8c-12.5 12.5-32.8 12.5-45.3 0L40.2 449.1c-12.5-12.5-12.5-32.8 0-45.3l5.8-5.8c-2.2-4.6-4.1-9.3-5.8-14.1L32 384c-17.7 0-32-14.3-32-32l0-32c0-17.7 14.3-32 32-32l8.2 0c1.7-4.8 3.7-9.5 5.8-14.1l-5.8-5.8c-12.5-12.5-12.5-32.8 0-45.3l22.6-22.6c9-9 21.9-11.5 33.1-7.6l0-.6 0-32 0-96zm170.3 0L160 64l0 96 32 0 112.7 0L266.3 64zM176 256a80 80 0 1 0 0 160 80 80 0 1 0 0-160zM528 448a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm0 64c-48.6 0-88-39.4-88-88c0-29.8 14.8-56.1 37.4-72c14.3-10.1 31.8-16 50.6-16c2.7 0 5.3 .1 7.9 .3c44.9 4 80.1 41.7 80.1 87.7c0 48.6-39.4 88-88 88z\"]\n};\nconst faTrashArrowUp = {\n prefix: 'fas',\n iconName: 'trash-arrow-up',\n icon: [448, 512, [\"trash-restore\"], \"f829\", \"M163.8 0L284.2 0c12.1 0 23.2 6.8 28.6 17.7L320 32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l96 0 7.2-14.3C140.6 6.8 151.7 0 163.8 0zM32 128l384 0L394.8 467c-1.6 25.3-22.6 45-47.9 45l-245.8 0c-25.3 0-46.3-19.7-47.9-45L32 128zm192 64c-6.4 0-12.5 2.5-17 7l-80 80c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l39-39L200 408c0 13.3 10.7 24 24 24s24-10.7 24-24l0-134.1 39 39c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-80-80c-4.5-4.5-10.6-7-17-7z\"]\n};\nconst faTrashRestore = faTrashArrowUp;\nconst faArrowDownUpLock = {\n prefix: 'fas',\n iconName: 'arrow-down-up-lock',\n icon: [640, 512, [], \"e4b0\", \"M150.6 502.6l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L160 402.7 160 288l256 0 0-16c0-17.2 3.9-33.5 10.8-48L352 224l0-114.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96c-6-6-14.1-9.4-22.6-9.4s-16.6 3.4-22.6 9.4l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L288 109.3 288 224l-128 0-64 0-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0 0 114.7L54.6 361.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0zM160 192l0-128c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 128 64 0zM288 320l0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128-64 0zm240-80c17.7 0 32 14.3 32 32l0 48-64 0 0-48c0-17.7 14.3-32 32-32zm-80 32l0 48c-17.7 0-32 14.3-32 32l0 128c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"]\n};\nconst faLinesLeaning = {\n prefix: 'fas',\n iconName: 'lines-leaning',\n icon: [384, 512, [], \"e51e\", \"M190.4 74.1c5.6-16.8-3.5-34.9-20.2-40.5s-34.9 3.5-40.5 20.2l-128 384c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l128-384zm70.9-41.7c-17.4-2.9-33.9 8.9-36.8 26.3l-64 384c-2.9 17.4 8.9 33.9 26.3 36.8s33.9-8.9 36.8-26.3l64-384c2.9-17.4-8.9-33.9-26.3-36.8zM352 32c-17.7 0-32 14.3-32 32l0 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384c0-17.7-14.3-32-32-32z\"]\n};\nconst faRulerCombined = {\n prefix: 'fas',\n iconName: 'ruler-combined',\n icon: [512, 512, [], \"f546\", \"M.2 468.9C2.7 493.1 23.1 512 48 512l96 0 320 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48l-48 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-64-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-64-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-48c0-26.5-21.5-48-48-48L48 0C21.5 0 0 21.5 0 48L0 368l0 96c0 1.7 .1 3.3 .2 4.9z\"]\n};\nconst faCopyright = {\n prefix: 'fas',\n iconName: 'copyright',\n icon: [512, 512, [169], \"f1f9\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM199.4 312.6c31.2 31.2 81.9 31.2 113.1 0c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-50 50-131 50-181 0s-50-131 0-181s131-50 181 0c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-31.2-31.2-81.9-31.2-113.1 0s-31.2 81.9 0 113.1z\"]\n};\nconst faEquals = {\n prefix: 'fas',\n iconName: 'equals',\n icon: [448, 512, [62764], \"3d\", \"M48 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l352 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L48 128zm0 192c-17.7 0-32 14.3-32 32s14.3 32 32 32l352 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L48 320z\"]\n};\nconst faBlender = {\n prefix: 'fas',\n iconName: 'blender',\n icon: [512, 512, [], \"f517\", \"M0 64C0 28.7 28.7 0 64 0l64 0 32 0L470.1 0c21.1 0 36.4 20.1 30.9 40.4L494.5 64 336 64c-8.8 0-16 7.2-16 16s7.2 16 16 16l149.8 0-17.5 64L336 160c-8.8 0-16 7.2-16 16s7.2 16 16 16l123.6 0-17.5 64L336 256c-8.8 0-16 7.2-16 16s7.2 16 16 16l97.5 0L416 352l-256 0-8.7-96L64 256c-35.3 0-64-28.7-64-64L0 64zM145.5 192L133.8 64 64 64l0 128 81.5 0zM144 384l288 0c26.5 0 48 21.5 48 48l0 32c0 26.5-21.5 48-48 48l-288 0c-26.5 0-48-21.5-48-48l0-32c0-26.5 21.5-48 48-48zm144 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nconst faTeeth = {\n prefix: 'fas',\n iconName: 'teeth',\n icon: [576, 512, [], \"f62e\", \"M0 128C0 75 43 32 96 32l384 0c53 0 96 43 96 96l0 256c0 53-43 96-96 96L96 480c-53 0-96-43-96-96L0 128zm176 48l0 56c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-56c0-26.5-21.5-48-48-48s-48 21.5-48 48zm176-48c-26.5 0-48 21.5-48 48l0 56c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-56c0-26.5-21.5-48-48-48zM48 208l0 24c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-24c0-26.5-21.5-48-48-48s-48 21.5-48 48zM96 384c26.5 0 48-21.5 48-48l0-24c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24l0 24c0 26.5 21.5 48 48 48zm80-48c0 26.5 21.5 48 48 48s48-21.5 48-48l0-24c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24l0 24zm176 48c26.5 0 48-21.5 48-48l0-24c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24l0 24c0 26.5 21.5 48 48 48zm80-176l0 24c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-24c0-26.5-21.5-48-48-48s-48 21.5-48 48zm48 176c26.5 0 48-21.5 48-48l0-24c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24l0 24c0 26.5 21.5 48 48 48z\"]\n};\nconst faShekelSign = {\n prefix: 'fas',\n iconName: 'shekel-sign',\n icon: [448, 512, [8362, \"ils\", \"shekel\", \"sheqel\", \"sheqel-sign\"], \"f20b\", \"M32 32C14.3 32 0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32L64 96l128 0c35.3 0 64 28.7 64 64l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-70.7-57.3-128-128-128L32 32zM320 480c70.7 0 128-57.3 128-128l0-288c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 288c0 35.3-28.7 64-64 64l-128 0 0-224c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 256c0 17.7 14.3 32 32 32l160 0z\"]\n};\nconst faIls = faShekelSign;\nconst faShekel = faShekelSign;\nconst faSheqel = faShekelSign;\nconst faSheqelSign = faShekelSign;\nconst faMap = {\n prefix: 'fas',\n iconName: 'map',\n icon: [576, 512, [128506, 62072], \"f279\", \"M384 476.1L192 421.2l0-385.3L384 90.8l0 385.3zm32-1.2l0-386.5L543.1 37.5c15.8-6.3 32.9 5.3 32.9 22.3l0 334.8c0 9.8-6 18.6-15.1 22.3L416 474.8zM15.1 95.1L160 37.2l0 386.5L32.9 474.5C17.1 480.8 0 469.2 0 452.2L0 117.4c0-9.8 6-18.6 15.1-22.3z\"]\n};\nconst faRocket = {\n prefix: 'fas',\n iconName: 'rocket',\n icon: [512, 512, [], \"f135\", \"M156.6 384.9L125.7 354c-8.5-8.5-11.5-20.8-7.7-32.2c3-8.9 7-20.5 11.8-33.8L24 288c-8.6 0-16.6-4.6-20.9-12.1s-4.2-16.7 .2-24.1l52.5-88.5c13-21.9 36.5-35.3 61.9-35.3l82.3 0c2.4-4 4.8-7.7 7.2-11.3C289.1-4.1 411.1-8.1 483.9 5.3c11.6 2.1 20.6 11.2 22.8 22.8c13.4 72.9 9.3 194.8-111.4 276.7c-3.5 2.4-7.3 4.8-11.3 7.2l0 82.3c0 25.4-13.4 49-35.3 61.9l-88.5 52.5c-7.4 4.4-16.6 4.5-24.1 .2s-12.1-12.2-12.1-20.9l0-107.2c-14.1 4.9-26.4 8.9-35.7 11.9c-11.2 3.6-23.4 .5-31.8-7.8zM384 168a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"]\n};\nconst faPhotoFilm = {\n prefix: 'fas',\n iconName: 'photo-film',\n icon: [640, 512, [\"photo-video\"], \"f87c\", \"M256 0L576 0c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64l-320 0c-35.3 0-64-28.7-64-64l0-224c0-35.3 28.7-64 64-64zM476 106.7C471.5 100 464 96 456 96s-15.5 4-20 10.7l-56 84L362.7 169c-4.6-5.7-11.5-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4s12.4 13.6 21.6 13.6l80 0 48 0 144 0c8.9 0 17-4.9 21.2-12.7s3.7-17.3-1.2-24.6l-96-144zM336 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM64 128l96 0 0 256 0 32c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-32 160 0 0 64c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 192c0-35.3 28.7-64 64-64zm8 64c-8.8 0-16 7.2-16 16l0 16c0 8.8 7.2 16 16 16l16 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-16 0zm0 104c-8.8 0-16 7.2-16 16l0 16c0 8.8 7.2 16 16 16l16 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-16 0zm0 104c-8.8 0-16 7.2-16 16l0 16c0 8.8 7.2 16 16 16l16 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-16 0zm336 16l0 16c0 8.8 7.2 16 16 16l16 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16z\"]\n};\nconst faPhotoVideo = faPhotoFilm;\nconst faFolderMinus = {\n prefix: 'fas',\n iconName: 'folder-minus',\n icon: [512, 512, [], \"f65d\", \"M448 480L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l128 0c20.1 0 39.1 9.5 51.2 25.6l19.2 25.6c6 8.1 15.5 12.8 25.6 12.8l160 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64zM184 272c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"]\n};\nconst faStore = {\n prefix: 'fas',\n iconName: 'store',\n icon: [576, 512, [], \"f54e\", \"M547.6 103.8L490.3 13.1C485.2 5 476.1 0 466.4 0L109.6 0C99.9 0 90.8 5 85.7 13.1L28.3 103.8c-29.6 46.8-3.4 111.9 51.9 119.4c4 .5 8.1 .8 12.1 .8c26.1 0 49.3-11.4 65.2-29c15.9 17.6 39.1 29 65.2 29c26.1 0 49.3-11.4 65.2-29c15.9 17.6 39.1 29 65.2 29c26.2 0 49.3-11.4 65.2-29c16 17.6 39.1 29 65.2 29c4.1 0 8.1-.3 12.1-.8c55.5-7.4 81.8-72.5 52.1-119.4zM499.7 254.9c0 0 0 0-.1 0c-5.3 .7-10.7 1.1-16.2 1.1c-12.4 0-24.3-1.9-35.4-5.3L448 384l-320 0 0-133.4c-11.2 3.5-23.2 5.4-35.6 5.4c-5.5 0-11-.4-16.3-1.1l-.1 0c-4.1-.6-8.1-1.3-12-2.3L64 384l0 64c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-64 0-131.4c-4 1-8 1.8-12.3 2.3z\"]\n};\nconst faArrowTrendUp = {\n prefix: 'fas',\n iconName: 'arrow-trend-up',\n icon: [576, 512, [], \"e098\", \"M384 160c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0c17.7 0 32 14.3 32 32l0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-82.7L342.6 374.6c-12.5 12.5-32.8 12.5-45.3 0L192 269.3 54.6 406.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l160-160c12.5-12.5 32.8-12.5 45.3 0L320 306.7 466.7 160 384 160z\"]\n};\nconst faPlugCircleMinus = {\n prefix: 'fas',\n iconName: 'plug-circle-minus',\n icon: [576, 512, [], \"e55e\", \"M96 0C78.3 0 64 14.3 64 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c0 77.4 55 142 128 156.8l0 67.2c0 17.7 14.3 32 32 32s32-14.3 32-32l0-67.2c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32L32 160zM576 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-64 0c0 8.8-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l128 0c8.8 0 16 7.2 16 16z\"]\n};\nconst faSignHanging = {\n prefix: 'fas',\n iconName: 'sign-hanging',\n icon: [512, 512, [\"sign\"], \"f4d9\", \"M96 0c17.7 0 32 14.3 32 32l0 32 352 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-352 0 0 352c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-352-32 0C14.3 128 0 113.7 0 96S14.3 64 32 64l32 0 0-32C64 14.3 78.3 0 96 0zm96 160l256 0c17.7 0 32 14.3 32 32l0 160c0 17.7-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32l0-160c0-17.7 14.3-32 32-32z\"]\n};\nconst faSign = faSignHanging;\nconst faBezierCurve = {\n prefix: 'fas',\n iconName: 'bezier-curve',\n icon: [640, 512, [], \"f55b\", \"M296 136l0-48 48 0 0 48-48 0zM288 32c-26.5 0-48 21.5-48 48l0 4L121.6 84C111.2 62.7 89.3 48 64 48C28.7 48 0 76.7 0 112s28.7 64 64 64c25.3 0 47.2-14.7 57.6-36l66.9 0c-58.9 39.6-98.9 105-104 180L80 320c-26.5 0-48 21.5-48 48l0 64c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48l-3.3 0c5.9-67 48.5-123.4 107.5-149.1c8.6 12.7 23.2 21.1 39.8 21.1l64 0c16.6 0 31.1-8.4 39.8-21.1c59 25.7 101.6 82.1 107.5 149.1l-3.3 0c-26.5 0-48 21.5-48 48l0 64c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48l-4.5 0c-5-75-45.1-140.4-104-180l66.9 0c10.4 21.3 32.3 36 57.6 36c35.3 0 64-28.7 64-64s-28.7-64-64-64c-25.3 0-47.2 14.7-57.6 36L400 84l0-4c0-26.5-21.5-48-48-48l-64 0zM88 376l48 0 0 48-48 0 0-48zm416 48l0-48 48 0 0 48-48 0z\"]\n};\nconst faBellSlash = {\n prefix: 'fas',\n iconName: 'bell-slash',\n icon: [640, 512, [128277, 61943], \"f1f6\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-90.2-70.7c.2-.4 .4-.9 .6-1.3c5.2-11.5 3.1-25-5.3-34.4l-7.4-8.3C497.3 319.2 480 273.9 480 226.8l0-18.8c0-77.4-55-142-128-156.8L352 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 19.2c-42.6 8.6-79 34.2-102 69.3L38.8 5.1zM406.2 416L160 222.1l0 4.8c0 47-17.3 92.4-48.5 127.6l-7.4 8.3c-8.4 9.4-10.4 22.9-5.3 34.4S115.4 416 128 416l278.2 0zm-40.9 77.3c12-12 18.7-28.3 18.7-45.3l-64 0-64 0c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7z\"]\n};\nconst faTablet = {\n prefix: 'fas',\n iconName: 'tablet',\n icon: [448, 512, [\"tablet-android\"], \"f3fb\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zM176 432l96 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-96 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nconst faTabletAndroid = faTablet;\nconst faSchoolFlag = {\n prefix: 'fas',\n iconName: 'school-flag',\n icon: [576, 512, [], \"e56e\", \"M288 0L400 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-79.3 0 89.6 64L512 160c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64l-176 0 0-112c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 112L64 512c-35.3 0-64-28.7-64-64L0 224c0-35.3 28.7-64 64-64l101.7 0L256 95.5 256 32c0-17.7 14.3-32 32-32zm48 240a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM80 224c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-32 0zm368 16l0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM80 352c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-32 0zm384 0c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-32 0z\"]\n};\nconst faFill = {\n prefix: 'fas',\n iconName: 'fill',\n icon: [512, 512, [], \"f575\", \"M86.6 9.4C74.1-3.1 53.9-3.1 41.4 9.4s-12.5 32.8 0 45.3L122.7 136 30.6 228.1c-37.5 37.5-37.5 98.3 0 135.8L148.1 481.4c37.5 37.5 98.3 37.5 135.8 0L474.3 290.9c28.1-28.1 28.1-73.7 0-101.8L322.9 37.7c-28.1-28.1-73.7-28.1-101.8 0L168 90.7 86.6 9.4zM168 181.3l49.4 49.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L213.3 136l53.1-53.1c3.1-3.1 8.2-3.1 11.3 0L429.1 234.3c3.1 3.1 3.1 8.2 0 11.3L386.7 288 67.5 288c1.4-5.4 4.2-10.4 8.4-14.6L168 181.3z\"]\n};\nconst faAngleUp = {\n prefix: 'fas',\n iconName: 'angle-up',\n icon: [448, 512, [8963], \"f106\", \"M201.4 137.4c12.5-12.5 32.8-12.5 45.3 0l160 160c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L224 205.3 86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l160-160z\"]\n};\nconst faDrumstickBite = {\n prefix: 'fas',\n iconName: 'drumstick-bite',\n icon: [512, 512, [], \"f6d7\", \"M160 265.2c0 8.5-3.4 16.6-9.4 22.6l-26.8 26.8c-12.3 12.3-32.5 11.4-49.4 7.2C69.8 320.6 65 320 60 320c-33.1 0-60 26.9-60 60s26.9 60 60 60c6.3 0 12 5.7 12 12c0 33.1 26.9 60 60 60s60-26.9 60-60c0-5-.6-9.8-1.8-14.5c-4.2-16.9-5.2-37.1 7.2-49.4l26.8-26.8c6-6 14.1-9.4 22.6-9.4l89.2 0c6.3 0 12.4-.3 18.5-1c11.9-1.2 16.4-15.5 10.8-26c-8.5-15.8-13.3-33.8-13.3-53c0-61.9 50.1-112 112-112c8 0 15.7 .8 23.2 2.4c11.7 2.5 24.1-5.9 22-17.6C494.5 62.5 422.5 0 336 0C238.8 0 160 78.8 160 176l0 89.2z\"]\n};\nconst faHollyBerry = {\n prefix: 'fas',\n iconName: 'holly-berry',\n icon: [512, 512, [], \"f7aa\", \"M256 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-80 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM276.8 383.8c1 .1 2.1 .2 3.2 .2c39.8 0 72 32.2 72 72l0 22.7c0 16.4 16 27.9 31.6 22.8l12.8-4.3c18-6 37.3-6.5 55.6-1.5l19.4 5.3c17.9 4.9 34.4-11.6 29.5-29.5L495.6 452c-5-18.3-4.4-37.6 1.5-55.6l4.3-12.8c5.2-15.5-6.4-31.6-22.8-31.6c-34.6 0-62.7-28.1-62.7-62.7l0-32c0-16.4-16-27.9-31.6-22.8l-12.8 4.3c-18 6-37.3 6.5-55.6 1.5l-29.6-8.1c-2.9-.8-5.9-1-8.7-.7c4.2 9.7 5.8 20.8 3.7 32.3L275 298.7c-1.5 8.4-1.4 17 .5 25.3l5.3 23.9c2.8 12.7 1.1 25.2-4 35.9zM127.6 234.5c-15.5-5.2-31.6 6.4-31.6 22.8l0 32C96 323.9 67.9 352 33.3 352c-16.4 0-27.9 16-22.8 31.6l4.3 12.8c6 18 6.5 37.3 1.5 55.6l-5.3 19.4C6.2 489.4 22.6 505.8 40.5 501L60 495.6c18.3-5 37.6-4.5 55.6 1.5l12.8 4.3c15.5 5.2 31.6-6.4 31.6-22.8l0-32c0-34.6 28.1-62.7 62.7-62.7c16.4 0 27.9-16 22.8-31.6l-4.3-12.8c-6-18-6.5-37.3-1.5-55.6l5.3-19.4c4.9-17.9-11.6-34.4-29.5-29.5L196 240.4c-18.3 5-37.6 4.4-55.6-1.5l-12.8-4.3zM384 144a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"]\n};\nconst faChevronLeft = {\n prefix: 'fas',\n iconName: 'chevron-left',\n icon: [320, 512, [9001], \"f053\", \"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l192 192c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 246.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192z\"]\n};\nconst faBacteria = {\n prefix: 'fas',\n iconName: 'bacteria',\n icon: [640, 512, [], \"e059\", \"M304.9 .7c-9.6-2.7-19.5 2.8-22.3 12.4l-4.3 15.2c-8.3-.6-16.8 0-25.2 1.9c-7.3 1.7-14.3 3.5-21.1 5.5l-5.5-12.7c-3.9-9.1-14.5-13.4-23.6-9.5s-13.4 14.5-9.5 23.6l4.4 10.4c-16.6 6.7-31.7 14.4-45.4 22.8L147 62c-5.5-8.3-16.7-10.5-25-5s-10.5 16.7-5 25l6 9c-13.7 11-25.5 22.8-35.8 34.9l-10-8c-7.8-6.2-19.1-5-25.3 2.8s-5 19.1 2.8 25.3L65.9 155c-1.8 2.8-3.5 5.7-5.1 8.5c-6.6 11.4-11.8 22.6-16 33l-8-3.2c-9.2-3.7-19.7 .8-23.4 10s.8 19.7 10 23.4l10.4 4.2c-.2 .8-.4 1.5-.5 2.3c-2.2 9.3-3.4 17.3-4.1 23.4c-.4 3.1-.6 5.7-.8 7.8c-.1 1.1-.1 2-.2 2.8l-.1 1.1 0 .5 0 .2 0 .1c0 0 0 .1 29.1 1c0 0 0 0-.1 0L28 269.3c-.1 3.1 0 6.1 .2 9.1l-15.2 4.3C3.5 285.4-2 295.4 .7 304.9s12.7 15.1 22.3 12.4l15.6-4.5c7.6 13.6 18.9 25 32.6 32.6L66.7 361c-2.7 9.6 2.8 19.5 12.4 22.3s19.5-2.8 22.3-12.4l4.3-15.2c1.2 .1 2.4 .2 3.6 .2c15.6 .5 30.3-3.3 43-10.2l9 9c7 7 18.4 7 25.5 0s7-18.4 0-25.5l-7.2-7.2c9.3-12.6 15.2-27.8 16.3-44.5l7.1 3c9.1 3.9 19.7-.3 23.6-9.5s-.3-19.7-9.5-23.6l-8.6-3.7c6.4-9.9 17.3-22.4 36.9-33.3l1.3 4.4c2.7 9.6 12.7 15.1 22.3 12.4s15.1-12.7 12.4-22.3l-2.3-8.1c3.8-1.1 7.7-2.1 11.9-3.1c11.6-2.7 22.1-7.7 31.1-14.4l7.2 7.2c7 7 18.4 7 25.5 0s7-18.4 0-25.5l-9-9c7.6-13.9 11.3-30.1 10.1-46.6l15.2-4.3c9.6-2.7 15.1-12.7 12.4-22.3S370.6 64 361 66.7l-15.6 4.5c-7.7-13.9-19.1-25.1-32.6-32.6l4.5-15.6c2.7-9.6-2.8-19.5-12.4-22.3zM112 272l-48-1.5c0 0 0 0 0 0c11.7 .4 27.3 .9 48 1.6zm16-80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64-48a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM322.7 489c-2.7 9.6 2.8 19.5 12.4 22.3s19.5-2.8 22.2-12.4l4.3-15.2c8.3 .6 16.8 0 25.2-1.9c7.3-1.7 14.3-3.5 21.1-5.5l5.5 12.7c3.9 9.1 14.5 13.4 23.6 9.5s13.4-14.5 9.5-23.6l-4.4-10.4c16.6-6.7 31.7-14.4 45.4-22.8L493 450c5.5 8.3 16.7 10.5 25 5s10.5-16.7 5-25l-6-9c13.7-11 25.5-22.8 35.8-34.9l10 8c7.8 6.2 19.1 5 25.3-2.8s5-19.1-2.8-25.3L574.1 357c1.8-2.8 3.5-5.7 5.1-8.5c6.6-11.4 11.8-22.6 16-33l8 3.2c9.2 3.7 19.7-.8 23.4-10s-.8-19.7-10-23.4l-10.4-4.2c.2-.8 .4-1.5 .5-2.3c2.2-9.3 3.4-17.3 4.1-23.4c.4-3.1 .6-5.7 .8-7.8c.1-1.1 .1-2 .2-2.8l.1-1.1 0-.5 0-.2 0-.1c0 0 0-.1-29.1-1c0 0 0 0 .1 0l29.1 .9c.1-3.1 0-6.1-.2-9.1l15.2-4.3c9.6-2.7 15.1-12.7 12.4-22.3s-12.7-15.1-22.3-12.4l-15.6 4.5c-7.6-13.6-18.9-25-32.6-32.6l4.5-15.6c2.7-9.6-2.8-19.5-12.4-22.3s-19.5 2.8-22.3 12.4l-4.3 15.2c-1.2-.1-2.4-.2-3.6-.2c-15.6-.5-30.3 3.3-43 10.2l-9-9c-7-7-18.4-7-25.5 0s-7 18.4 0 25.5l7.2 7.2c-9.3 12.6-15.2 27.8-16.3 44.5l-7.1-3c-9.1-3.9-19.7 .3-23.6 9.5s.3 19.7 9.5 23.6l8.6 3.7c-6.4 9.9-17.3 22.4-36.9 33.3l-1.3-4.4c-2.7-9.6-12.7-15.1-22.3-12.4s-15.1 12.7-12.4 22.3l2.3 8.1c-3.8 1.1-7.7 2.1-11.9 3.1c-11.6 2.7-22.1 7.7-31.1 14.4l-7.2-7.2c-7-7-18.4-7-25.5 0s-7 18.4 0 25.5l9 9c-7.6 13.9-11.3 30.1-10.1 46.6l-15.2 4.3c-9.6 2.7-15.1 12.7-12.4 22.2s12.7 15.1 22.3 12.4l15.6-4.5c7.7 13.9 19.1 25.1 32.6 32.6L322.7 489zM576 241.5c0 0 0 0 0 0c-11.7-.4-27.3-.9-48-1.6l48 1.5zM448 384a32 32 0 1 1 -64 0 32 32 0 1 1 64 0z\"]\n};\nconst faHandLizard = {\n prefix: 'fas',\n iconName: 'hand-lizard',\n icon: [512, 512, [], \"f258\", \"M0 112C0 85.5 21.5 64 48 64l112 0 80 0 46.5 0c36.8 0 71.2 18 92.1 48.2l113.5 164c13 18.7 19.9 41 19.9 63.8l0 12 0 16 0 48c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-13.8L273.9 352 240 352l-80 0-48 0c-26.5 0-48-21.5-48-48s21.5-48 48-48l48 0 80 0c26.5 0 48-21.5 48-48s-21.5-48-48-48l-80 0L48 160c-26.5 0-48-21.5-48-48z\"]\n};\nconst faNotdef = {\n prefix: 'fas',\n iconName: 'notdef',\n icon: [384, 512, [], \"e1fe\", \"M64 390.3L153.5 256 64 121.7l0 268.6zM102.5 448l179.1 0L192 313.7 102.5 448zm128-192L320 390.3l0-268.6L230.5 256zM281.5 64L102.5 64 192 198.3 281.5 64zM0 48C0 21.5 21.5 0 48 0L336 0c26.5 0 48 21.5 48 48l0 416c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 48z\"]\n};\nconst faDisease = {\n prefix: 'fas',\n iconName: 'disease',\n icon: [512, 512, [], \"f7fa\", \"M236.4 61.4L227 75.5c-21.3 32-59.4 48.5-97.3 42.1l-59.6-9.9C33.4 101.6 0 129.9 .1 167.1c0 15.9 6.4 31.2 17.6 42.5l29.2 29.2c11 11 17.2 25.9 17.2 41.5c0 15.8-6.4 30.9-17.7 42L33.3 335.1C22.2 345.9 16 360.7 16 376.2c0 36.8 34.1 64.2 70.1 56.2l62.3-13.8c7.7-1.7 15.7-2.6 23.6-2.6l10 0c27.2 0 53.7 9.3 75 26.3L287.8 467c10.5 8.4 23.6 13 37 13c32.7 0 59.3-26.5 59.3-59.3l0-25.2c0-34.9 21.4-66.2 53.9-78.8l36.9-14.3c22.4-8.7 37.2-30.3 37.2-54.3c0-28.1-20.1-52.3-47.8-57.3l-28-5.1c-36.5-6.7-65.4-34.5-73.6-70.7l-7.1-31.5C348.9 53.4 322.1 32 291.3 32c-22 0-42.6 11-54.9 29.4zM160 192a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm0 80a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nconst faBriefcaseMedical = {\n prefix: 'fas',\n iconName: 'briefcase-medical',\n icon: [512, 512, [], \"f469\", \"M184 48l144 0c4.4 0 8 3.6 8 8l0 40L176 96l0-40c0-4.4 3.6-8 8-8zm-56 8l0 40L64 96C28.7 96 0 124.7 0 160L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-64 0 0-40c0-30.9-25.1-56-56-56L184 0c-30.9 0-56 25.1-56 56zm96 152c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 48 48 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l48 0 0-48z\"]\n};\nconst faGenderless = {\n prefix: 'fas',\n iconName: 'genderless',\n icon: [384, 512, [], \"f22d\", \"M192 144a112 112 0 1 1 0 224 112 112 0 1 1 0-224zm0 288a176 176 0 1 0 0-352 176 176 0 1 0 0 352z\"]\n};\nconst faChevronRight = {\n prefix: 'fas',\n iconName: 'chevron-right',\n icon: [320, 512, [9002], \"f054\", \"M310.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 256 73.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z\"]\n};\nconst faRetweet = {\n prefix: 'fas',\n iconName: 'retweet',\n icon: [576, 512, [], \"f079\", \"M272 416c17.7 0 32-14.3 32-32s-14.3-32-32-32l-112 0c-17.7 0-32-14.3-32-32l0-128 32 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l32 0 0 128c0 53 43 96 96 96l112 0zM304 96c-17.7 0-32 14.3-32 32s14.3 32 32 32l112 0c17.7 0 32 14.3 32 32l0 128-32 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8l-32 0 0-128c0-53-43-96-96-96L304 96z\"]\n};\nconst faCarRear = {\n prefix: 'fas',\n iconName: 'car-rear',\n icon: [512, 512, [\"car-alt\"], \"f5de\", \"M165.4 96l181.2 0c13.6 0 25.7 8.6 30.2 21.4L402.9 192l-293.8 0 26.1-74.6c4.5-12.8 16.6-21.4 30.2-21.4zm-90.6 .3L39.6 196.8C16.4 206.4 0 229.3 0 256l0 80c0 23.7 12.9 44.4 32 55.4L32 448c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-48 256 0 0 48c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-56.6c19.1-11.1 32-31.7 32-55.4l0-80c0-26.7-16.4-49.6-39.6-59.2L437.2 96.3C423.7 57.8 387.4 32 346.6 32L165.4 32c-40.8 0-77.1 25.8-90.6 64.3zM208 272l96 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-96 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM48 280c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zm360-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nconst faCarAlt = faCarRear;\nconst faPumpSoap = {\n prefix: 'fas',\n iconName: 'pump-soap',\n icon: [448, 512, [], \"e06b\", \"M128 32l0 96 128 0 0-32 60.1 0c4.2 0 8.3 1.7 11.3 4.7l33.9 33.9c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L372.7 55.4c-15-15-35.4-23.4-56.6-23.4L256 32c0-17.7-14.3-32-32-32L160 0c-17.7 0-32 14.3-32 32zM117.4 160c-33.3 0-61 25.5-63.8 58.7L35 442.7C31.9 480 61.3 512 98.8 512l186.4 0c37.4 0 66.9-32 63.8-69.3l-18.7-224c-2.8-33.2-30.5-58.7-63.8-58.7l-149.1 0zM256 360c0 35.3-28.7 56-64 56s-64-20.7-64-56c0-32.5 37-80.9 50.9-97.9c3.2-3.9 8.1-6.1 13.1-6.1s9.9 2.2 13.1 6.1C219 279.1 256 327.5 256 360z\"]\n};\nconst faVideoSlash = {\n prefix: 'fas',\n iconName: 'video-slash',\n icon: [640, 512, [], \"f4e2\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-86.4-67.7 13.8 9.2c9.8 6.5 22.4 7.2 32.9 1.6s16.9-16.4 16.9-28.2l0-256c0-11.8-6.5-22.6-16.9-28.2s-23-5-32.9 1.6l-96 64L448 174.9l0 17.1 0 128 0 5.8-32-25.1L416 128c0-35.3-28.7-64-64-64L113.9 64 38.8 5.1zM407 416.7L32.3 121.5c-.2 2.1-.3 4.3-.3 6.5l0 256c0 35.3 28.7 64 64 64l256 0c23.4 0 43.9-12.6 55-31.3z\"]\n};\nconst faBatteryQuarter = {\n prefix: 'fas',\n iconName: 'battery-quarter',\n icon: [576, 512, [\"battery-2\"], \"f243\", \"M464 160c8.8 0 16 7.2 16 16l0 160c0 8.8-7.2 16-16 16L80 352c-8.8 0-16-7.2-16-16l0-160c0-8.8 7.2-16 16-16l384 0zM80 96C35.8 96 0 131.8 0 176L0 336c0 44.2 35.8 80 80 80l384 0c44.2 0 80-35.8 80-80l0-16c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l0-16c0-44.2-35.8-80-80-80L80 96zm112 96l-96 0 0 128 96 0 0-128z\"]\n};\nconst faBattery2 = faBatteryQuarter;\nconst faRadio = {\n prefix: 'fas',\n iconName: 'radio',\n icon: [512, 512, [128251], \"f8d7\", \"M494.8 47c12.7-3.7 20-17.1 16.3-29.8S494-2.8 481.2 1L51.7 126.9c-9.4 2.7-17.9 7.3-25.1 13.2C10.5 151.7 0 170.6 0 192l0 4L0 304 0 448c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-229.5 0L494.8 47zM368 240a80 80 0 1 1 0 160 80 80 0 1 1 0-160zM80 256c0-8.8 7.2-16 16-16l96 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-96 0c-8.8 0-16-7.2-16-16zM64 320c0-8.8 7.2-16 16-16l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L80 336c-8.8 0-16-7.2-16-16zm16 64c0-8.8 7.2-16 16-16l96 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-96 0c-8.8 0-16-7.2-16-16z\"]\n};\nconst faBabyCarriage = {\n prefix: 'fas',\n iconName: 'baby-carriage',\n icon: [512, 512, [\"carriage-baby\"], \"f77d\", \"M256 192L.1 192C2.7 117.9 41.3 52.9 99 14.1c13.3-8.9 30.8-4.3 39.9 8.8L256 192zm128-32c0-35.3 28.7-64 64-64l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 64c0 25.2-5.8 50.2-17 73.5s-27.8 44.5-48.6 62.3s-45.5 32-72.7 41.6S253.4 416 224 416s-58.5-5-85.7-14.6s-51.9-23.8-72.7-41.6s-37.3-39-48.6-62.3S0 249.2 0 224l224 0 160 0 0-64zM80 416a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm240 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z\"]\n};\nconst faCarriageBaby = faBabyCarriage;\nconst faTrafficLight = {\n prefix: 'fas',\n iconName: 'traffic-light',\n icon: [320, 512, [128678], \"f637\", \"M64 0C28.7 0 0 28.7 0 64L0 352c0 88.4 71.6 160 160 160s160-71.6 160-160l0-288c0-35.3-28.7-64-64-64L64 0zm96 416a48 48 0 1 1 0-96 48 48 0 1 1 0 96zm48-176a48 48 0 1 1 -96 0 48 48 0 1 1 96 0zm-48-80a48 48 0 1 1 0-96 48 48 0 1 1 0 96z\"]\n};\nconst faThermometer = {\n prefix: 'fas',\n iconName: 'thermometer',\n icon: [512, 512, [], \"f491\", \"M96 382.1l0-88.8c0-14.9 5.9-29.1 16.4-39.6l27.3-27.3 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57 41.4-41.4 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57 41.4-41.4 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57 45.5-45.5C355.2 10.9 381.4 0 408.8 0C465.8 0 512 46.2 512 103.2c0 27.4-10.9 53.6-30.2 73L258.3 399.6c-10.5 10.5-24.7 16.4-39.6 16.4l-88.8 0L41 505c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l89-89z\"]\n};\nconst faVrCardboard = {\n prefix: 'fas',\n iconName: 'vr-cardboard',\n icon: [640, 512, [], \"f729\", \"M576 64L64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l120.4 0c24.2 0 46.4-13.7 57.2-35.4l32-64c8.8-17.5 26.7-28.6 46.3-28.6s37.5 11.1 46.3 28.6l32 64c10.8 21.7 33 35.4 57.2 35.4L576 448c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64zM96 240a64 64 0 1 1 128 0A64 64 0 1 1 96 240zm384-64a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"]\n};\nconst faHandMiddleFinger = {\n prefix: 'fas',\n iconName: 'hand-middle-finger',\n icon: [448, 512, [128405], \"f806\", \"M232 0c-22.1 0-40 17.9-40 40l0 164.2c-8.5-7.6-19.7-12.2-32-12.2c-26.5 0-48 21.5-48 48l0 7 0 73c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-55.7c-2 1.4-3.9 3-5.8 4.5L55 284.8C40.4 297 32 315 32 334L32 372c0 38 16.9 74 46.1 98.3l5.4 4.5c28.8 24 65 37.1 102.4 37.1L304 512c70.7 0 128-57.3 128-128l0-64 0-32c0-26.5-21.5-48-48-48c-12.4 0-23.6 4.7-32.1 12.3C350 227.5 329.3 208 304 208c-12.3 0-23.5 4.6-32 12.2L272 40c0-22.1-17.9-40-40-40z\"]\n};\nconst faPercent = {\n prefix: 'fas',\n iconName: 'percent',\n icon: [384, 512, [62101, 62785, \"percentage\"], \"25\", \"M374.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-320 320c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l320-320zM128 128A64 64 0 1 0 0 128a64 64 0 1 0 128 0zM384 384a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z\"]\n};\nconst faPercentage = faPercent;\nconst faTruckMoving = {\n prefix: 'fas',\n iconName: 'truck-moving',\n icon: [640, 512, [], \"f4df\", \"M64 32C28.7 32 0 60.7 0 96L0 304l0 80 0 16c0 44.2 35.8 80 80 80c26.2 0 49.4-12.6 64-32c14.6 19.4 37.8 32 64 32c44.2 0 80-35.8 80-80c0-5.5-.6-10.8-1.6-16L416 384l33.6 0c-1 5.2-1.6 10.5-1.6 16c0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16l1.6 0c17.7 0 32-14.3 32-32l0-64 0-16 0-10.3c0-9.2-3.2-18.2-9-25.3l-58.8-71.8c-10.6-13-26.5-20.5-43.3-20.5L480 144l0-48c0-35.3-28.7-64-64-64L64 32zM585 256l-105 0 0-64 48.8 0c2.4 0 4.7 1.1 6.2 2.9L585 256zM528 368a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM176 400a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM80 368a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nconst faGlassWaterDroplet = {\n prefix: 'fas',\n iconName: 'glass-water-droplet',\n icon: [384, 512, [], \"e4f5\", \"M32 0C23.1 0 14.6 3.7 8.6 10.2S-.6 25.4 .1 34.3L28.9 437.7c3 41.9 37.8 74.3 79.8 74.3l166.6 0c42 0 76.8-32.4 79.8-74.3L383.9 34.3c.6-8.9-2.4-17.6-8.5-24.1S360.9 0 352 0L32 0zM83 297.5L66.4 64l251.3 0L301 297.5 288 304c-20.1 10.1-43.9 10.1-64 0s-43.9-10.1-64 0s-43.9 10.1-64 0l-13-6.5zM256 196c0-24-33.7-70.1-52.2-93.5c-6.1-7.7-17.5-7.7-23.6 0C161.7 125.9 128 172 128 196c0 33.1 28.7 60 64 60s64-26.9 64-60z\"]\n};\nconst faDisplay = {\n prefix: 'fas',\n iconName: 'display',\n icon: [576, 512, [], \"e163\", \"M64 0C28.7 0 0 28.7 0 64L0 352c0 35.3 28.7 64 64 64l176 0-10.7 32L160 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-69.3 0L336 416l176 0c35.3 0 64-28.7 64-64l0-288c0-35.3-28.7-64-64-64L64 0zM512 64l0 288L64 352 64 64l448 0z\"]\n};\nconst faFaceSmile = {\n prefix: 'fas',\n iconName: 'face-smile',\n icon: [512, 512, [128578, \"smile\"], \"f118\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM164.1 325.5C182 346.2 212.6 368 256 368s74-21.8 91.9-42.5c5.8-6.7 15.9-7.4 22.6-1.6s7.4 15.9 1.6 22.6C349.8 372.1 311.1 400 256 400s-93.8-27.9-116.1-53.5c-5.8-6.7-5.1-16.8 1.6-22.6s16.8-5.1 22.6 1.6zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nconst faSmile = faFaceSmile;\nconst faThumbtack = {\n prefix: 'fas',\n iconName: 'thumbtack',\n icon: [384, 512, [128204, 128392, \"thumb-tack\"], \"f08d\", \"M32 32C32 14.3 46.3 0 64 0L320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-29.5 0 11.4 148.2c36.7 19.9 65.7 53.2 79.5 94.7l1 3c3.3 9.8 1.6 20.5-4.4 28.8s-15.7 13.3-26 13.3L32 352c-10.3 0-19.9-4.9-26-13.3s-7.7-19.1-4.4-28.8l1-3c13.8-41.5 42.8-74.8 79.5-94.7L93.5 64 64 64C46.3 64 32 49.7 32 32zM160 384l64 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96z\"]\n};\nconst faThumbTack = faThumbtack;\nconst faTrophy = {\n prefix: 'fas',\n iconName: 'trophy',\n icon: [576, 512, [127942], \"f091\", \"M400 0L176 0c-26.5 0-48.1 21.8-47.1 48.2c.2 5.3 .4 10.6 .7 15.8L24 64C10.7 64 0 74.7 0 88c0 92.6 33.5 157 78.5 200.7c44.3 43.1 98.3 64.8 138.1 75.8c23.4 6.5 39.4 26 39.4 45.6c0 20.9-17 37.9-37.9 37.9L192 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-26.1 0C337 448 320 431 320 410.1c0-19.6 15.9-39.2 39.4-45.6c39.9-11 93.9-32.7 138.2-75.8C542.5 245 576 180.6 576 88c0-13.3-10.7-24-24-24L446.4 64c.3-5.2 .5-10.4 .7-15.8C448.1 21.8 426.5 0 400 0zM48.9 112l84.4 0c9.1 90.1 29.2 150.3 51.9 190.6c-24.9-11-50.8-26.5-73.2-48.3c-32-31.1-58-76-63-142.3zM464.1 254.3c-22.4 21.8-48.3 37.3-73.2 48.3c22.7-40.3 42.8-100.5 51.9-190.6l84.4 0c-5.1 66.3-31.1 111.2-63 142.3z\"]\n};\nconst faPersonPraying = {\n prefix: 'fas',\n iconName: 'person-praying',\n icon: [448, 512, [128720, \"pray\"], \"f683\", \"M352 64A64 64 0 1 0 224 64a64 64 0 1 0 128 0zM232.7 264l22.9 31.5c6.5 8.9 16.3 14.7 27.2 16.1s21.9-1.7 30.4-8.7l88-72c17.1-14 19.6-39.2 5.6-56.3s-39.2-19.6-56.3-5.6l-55.2 45.2-26.2-36C253.6 156.7 228.6 144 202 144c-30.9 0-59.2 17.1-73.6 44.4L79.8 280.9c-20.2 38.5-9.4 85.9 25.6 111.8L158.6 432 72 432c-22.1 0-40 17.9-40 40s17.9 40 40 40l208 0c17.3 0 32.6-11.1 38-27.5s-.3-34.4-14.2-44.7L187.7 354l45-90z\"]\n};\nconst faPray = faPersonPraying;\nconst faHammer = {\n prefix: 'fas',\n iconName: 'hammer',\n icon: [576, 512, [128296], \"f6e3\", \"M413.5 237.5c-28.2 4.8-58.2-3.6-80-25.4l-38.1-38.1C280.4 159 272 138.8 272 117.6l0-12.1L192.3 62c-5.3-2.9-8.6-8.6-8.3-14.7s3.9-11.5 9.5-14l47.2-21C259.1 4.2 279 0 299.2 0l18.1 0c36.7 0 72 14 98.7 39.1l44.6 42c24.2 22.8 33.2 55.7 26.6 86L503 183l8-8c9.4-9.4 24.6-9.4 33.9 0l24 24c9.4 9.4 9.4 24.6 0 33.9l-88 88c-9.4 9.4-24.6 9.4-33.9 0l-24-24c-9.4-9.4-9.4-24.6 0-33.9l8-8-17.5-17.5zM27.4 377.1L260.9 182.6c3.5 4.9 7.5 9.6 11.8 14l38.1 38.1c6 6 12.4 11.2 19.2 15.7L134.9 484.6c-14.5 17.4-36 27.4-58.6 27.4C34.1 512 0 477.8 0 435.7c0-22.6 10.1-44.1 27.4-58.6z\"]\n};\nconst faHandPeace = {\n prefix: 'fas',\n iconName: 'hand-peace',\n icon: [512, 512, [9996], \"f25b\", \"M224 0c17.7 0 32 14.3 32 32l0 208-64 0 0-208c0-17.7 14.3-32 32-32zm96 160c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zm64 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zM93.3 51.2L175.9 240l-69.9 0L34.7 76.8C27.6 60.6 35 41.8 51.2 34.7s35.1 .3 42.1 16.5zm27 221.3l-.2-.5 69.9 0 26.1 0c22.1 0 40 17.9 40 40s-17.9 40-40 40l-56 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l56 0c39.8 0 72-32.2 72-72l0-.6c9.4 5.4 20.3 8.6 32 8.6c13.2 0 25.4-4 35.6-10.8c8.7 24.9 32.5 42.8 60.4 42.8c11.7 0 22.6-3.1 32-8.6l0 8.6c0 88.4-71.6 160-160 160l-61.7 0c-42.4 0-83.1-16.9-113.1-46.9l-11.6-11.6C77.5 429.5 64 396.9 64 363l0-27c0-32.7 24.6-59.7 56.3-63.5z\"]\n};\nconst faRotate = {\n prefix: 'fas',\n iconName: 'rotate',\n icon: [512, 512, [128260, \"sync-alt\"], \"f2f1\", \"M142.9 142.9c-17.5 17.5-30.1 38-37.8 59.8c-5.9 16.7-24.2 25.4-40.8 19.5s-25.4-24.2-19.5-40.8C55.6 150.7 73.2 122 97.6 97.6c87.2-87.2 228.3-87.5 315.8-1L455 55c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2l0 128c0 13.3-10.7 24-24 24l-8.4 0c0 0 0 0 0 0L344 224c-9.7 0-18.5-5.8-22.2-14.8s-1.7-19.3 5.2-26.2l41.1-41.1c-62.6-61.5-163.1-61.2-225.3 1zM16 312c0-13.3 10.7-24 24-24l7.6 0 .7 0L168 288c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-41.1 41.1c62.6 61.5 163.1 61.2 225.3-1c17.5-17.5 30.1-38 37.8-59.8c5.9-16.7 24.2-25.4 40.8-19.5s25.4 24.2 19.5 40.8c-10.8 30.6-28.4 59.3-52.9 83.8c-87.2 87.2-228.3 87.5-315.8 1L57 457c-6.9 6.9-17.2 8.9-26.2 5.2S16 449.7 16 440l0-119.6 0-.7 0-7.6z\"]\n};\nconst faSyncAlt = faRotate;\nconst faSpinner = {\n prefix: 'fas',\n iconName: 'spinner',\n icon: [512, 512, [], \"f110\", \"M304 48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm0 416a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM48 304a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm464-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM142.9 437A48 48 0 1 0 75 369.1 48 48 0 1 0 142.9 437zm0-294.2A48 48 0 1 0 75 75a48 48 0 1 0 67.9 67.9zM369.1 437A48 48 0 1 0 437 369.1 48 48 0 1 0 369.1 437z\"]\n};\nconst faRobot = {\n prefix: 'fas',\n iconName: 'robot',\n icon: [640, 512, [129302], \"f544\", \"M320 0c17.7 0 32 14.3 32 32l0 64 120 0c39.8 0 72 32.2 72 72l0 272c0 39.8-32.2 72-72 72l-304 0c-39.8 0-72-32.2-72-72l0-272c0-39.8 32.2-72 72-72l120 0 0-64c0-17.7 14.3-32 32-32zM208 384c-8.8 0-16 7.2-16 16s7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0zm96 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0zm96 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0zM264 256a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zm152 40a40 40 0 1 0 0-80 40 40 0 1 0 0 80zM48 224l16 0 0 192-16 0c-26.5 0-48-21.5-48-48l0-96c0-26.5 21.5-48 48-48zm544 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-16 0 0-192 16 0z\"]\n};\nconst faPeace = {\n prefix: 'fas',\n iconName: 'peace',\n icon: [512, 512, [9774], \"f67c\", \"M224 445.3l0-121.8-94.3 77.1c26.1 22.8 58.5 38.7 94.3 44.7zM89.2 351.1L224 240.8l0-174.2C133.2 81.9 64 160.9 64 256c0 34.6 9.2 67.1 25.2 95.1zm293.1 49.5L288 323.5l0 121.8c35.7-6 68.1-21.9 94.3-44.7zm40.6-49.5c16-28 25.2-60.5 25.2-95.1c0-95.1-69.2-174.1-160-189.3l0 174.2L422.8 351.1zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z\"]\n};\nconst faGears = {\n prefix: 'fas',\n iconName: 'gears',\n icon: [640, 512, [\"cogs\"], \"f085\", \"M308.5 135.3c7.1-6.3 9.9-16.2 6.2-25c-2.3-5.3-4.8-10.5-7.6-15.5L304 89.4c-3-5-6.3-9.9-9.8-14.6c-5.7-7.6-15.7-10.1-24.7-7.1l-28.2 9.3c-10.7-8.8-23-16-36.2-20.9L199 27.1c-1.9-9.3-9.1-16.7-18.5-17.8C173.9 8.4 167.2 8 160.4 8l-.7 0c-6.8 0-13.5 .4-20.1 1.2c-9.4 1.1-16.6 8.6-18.5 17.8L115 56.1c-13.3 5-25.5 12.1-36.2 20.9L50.5 67.8c-9-3-19-.5-24.7 7.1c-3.5 4.7-6.8 9.6-9.9 14.6l-3 5.3c-2.8 5-5.3 10.2-7.6 15.6c-3.7 8.7-.9 18.6 6.2 25l22.2 19.8C32.6 161.9 32 168.9 32 176s.6 14.1 1.7 20.9L11.5 216.7c-7.1 6.3-9.9 16.2-6.2 25c2.3 5.3 4.8 10.5 7.6 15.6l3 5.2c3 5.1 6.3 9.9 9.9 14.6c5.7 7.6 15.7 10.1 24.7 7.1l28.2-9.3c10.7 8.8 23 16 36.2 20.9l6.1 29.1c1.9 9.3 9.1 16.7 18.5 17.8c6.7 .8 13.5 1.2 20.4 1.2s13.7-.4 20.4-1.2c9.4-1.1 16.6-8.6 18.5-17.8l6.1-29.1c13.3-5 25.5-12.1 36.2-20.9l28.2 9.3c9 3 19 .5 24.7-7.1c3.5-4.7 6.8-9.5 9.8-14.6l3.1-5.4c2.8-5 5.3-10.2 7.6-15.5c3.7-8.7 .9-18.6-6.2-25l-22.2-19.8c1.1-6.8 1.7-13.8 1.7-20.9s-.6-14.1-1.7-20.9l22.2-19.8zM112 176a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM504.7 500.5c6.3 7.1 16.2 9.9 25 6.2c5.3-2.3 10.5-4.8 15.5-7.6l5.4-3.1c5-3 9.9-6.3 14.6-9.8c7.6-5.7 10.1-15.7 7.1-24.7l-9.3-28.2c8.8-10.7 16-23 20.9-36.2l29.1-6.1c9.3-1.9 16.7-9.1 17.8-18.5c.8-6.7 1.2-13.5 1.2-20.4s-.4-13.7-1.2-20.4c-1.1-9.4-8.6-16.6-17.8-18.5L583.9 307c-5-13.3-12.1-25.5-20.9-36.2l9.3-28.2c3-9 .5-19-7.1-24.7c-4.7-3.5-9.6-6.8-14.6-9.9l-5.3-3c-5-2.8-10.2-5.3-15.6-7.6c-8.7-3.7-18.6-.9-25 6.2l-19.8 22.2c-6.8-1.1-13.8-1.7-20.9-1.7s-14.1 .6-20.9 1.7l-19.8-22.2c-6.3-7.1-16.2-9.9-25-6.2c-5.3 2.3-10.5 4.8-15.6 7.6l-5.2 3c-5.1 3-9.9 6.3-14.6 9.9c-7.6 5.7-10.1 15.7-7.1 24.7l9.3 28.2c-8.8 10.7-16 23-20.9 36.2L315.1 313c-9.3 1.9-16.7 9.1-17.8 18.5c-.8 6.7-1.2 13.5-1.2 20.4s.4 13.7 1.2 20.4c1.1 9.4 8.6 16.6 17.8 18.5l29.1 6.1c5 13.3 12.1 25.5 20.9 36.2l-9.3 28.2c-3 9-.5 19 7.1 24.7c4.7 3.5 9.5 6.8 14.6 9.8l5.4 3.1c5 2.8 10.2 5.3 15.5 7.6c8.7 3.7 18.6 .9 25-6.2l19.8-22.2c6.8 1.1 13.8 1.7 20.9 1.7s14.1-.6 20.9-1.7l19.8 22.2zM464 304a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"]\n};\nconst faCogs = faGears;\nconst faWarehouse = {\n prefix: 'fas',\n iconName: 'warehouse',\n icon: [640, 512, [], \"f494\", \"M0 488L0 171.3c0-26.2 15.9-49.7 40.2-59.4L308.1 4.8c7.6-3.1 16.1-3.1 23.8 0L599.8 111.9c24.3 9.7 40.2 33.3 40.2 59.4L640 488c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-264c0-17.7-14.3-32-32-32l-384 0c-17.7 0-32 14.3-32 32l0 264c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24zm488 24l-336 0c-13.3 0-24-10.7-24-24l0-56 384 0 0 56c0 13.3-10.7 24-24 24zM128 400l0-64 384 0 0 64-384 0zm0-96l0-80 384 0 0 80-384 0z\"]\n};\nconst faArrowUpRightDots = {\n prefix: 'fas',\n iconName: 'arrow-up-right-dots',\n icon: [576, 512, [], \"e4b7\", \"M160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l50.7 0L9.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L256 109.3l0 50.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128c0-17.7-14.3-32-32-32L160 0zM576 80a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM448 208a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM400 384a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm48 80a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm128 0a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM272 384a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm48 80a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM144 512a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM576 336a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm-48-80a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"]\n};\nconst faSplotch = {\n prefix: 'fas',\n iconName: 'splotch',\n icon: [512, 512, [], \"f5bc\", \"M208.5 62.3l28.1-36.9C248.8 9.4 267.8 0 288 0c28.5 0 53.6 18.7 61.8 46l17.8 59.4c10.3 34.4 36.1 62 69.8 74.6l39.8 14.9c20.9 7.9 34.8 27.9 34.8 50.2c0 16.9-7.9 32.8-21.5 42.9l-67.3 50.5c-24.3 18.2-37.2 47.9-33.8 78.1l2.5 22.7c4.3 38.7-26 72.6-65 72.6c-14.8 0-29.3-5.1-40.8-14.3l-55.4-44.3c-4.5-3.6-9.3-6.7-14.5-9.2c-15.8-7.9-33.7-10.4-51-7.3L82.4 451.9C47.8 458.2 16 431.6 16 396.5c0-13.2 4.7-26 13.1-36.2l11.2-13.4c14.6-17.4 22.6-39.4 22.6-62.1c0-18.8-5.5-37.2-15.8-53L8.8 173.5C3.1 164.7 0 154.4 0 143.9c0-33.4 30.1-58.8 63-53.2l51.3 8.7c35.9 6.1 72.2-8.2 94.2-37.1z\"]\n};\nconst faFaceGrinHearts = {\n prefix: 'fas',\n iconName: 'face-grin-hearts',\n icon: [512, 512, [128525, \"grin-hearts\"], \"f584\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zM199.3 129.1c17.8 4.8 28.4 23.1 23.6 40.8l-17.4 65c-2.3 8.5-11.1 13.6-19.6 11.3l-65.1-17.4c-17.8-4.8-28.4-23.1-23.6-40.8s23.1-28.4 40.8-23.6l16.1 4.3 4.3-16.1c4.8-17.8 23.1-28.4 40.8-23.6zm154.3 23.6l4.3 16.1 16.1-4.3c17.8-4.8 36.1 5.8 40.8 23.6s-5.8 36.1-23.6 40.8l-65.1 17.4c-8.5 2.3-17.3-2.8-19.6-11.3l-17.4-65c-4.8-17.8 5.8-36.1 23.6-40.8s36.1 5.8 40.9 23.6z\"]\n};\nconst faGrinHearts = faFaceGrinHearts;\nconst faDiceFour = {\n prefix: 'fas',\n iconName: 'dice-four',\n icon: [448, 512, [9859], \"f524\", \"M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm160 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM128 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM352 160a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM320 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nconst faSimCard = {\n prefix: 'fas',\n iconName: 'sim-card',\n icon: [384, 512, [], \"f7c4\", \"M64 0L242.7 0c17 0 33.3 6.7 45.3 18.7L365.3 96c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64C0 28.7 28.7 0 64 0zM96 192c-17.7 0-32 14.3-32 32l0 32 64 0 0-64-32 0zM64 352l80 0 96 0 80 0 0-64-80 0-96 0-80 0 0 64zM320 224c0-17.7-14.3-32-32-32l-32 0 0 64 64 0 0-32zM160 192l0 64 64 0 0-64-64 0zM288 448c17.7 0 32-14.3 32-32l0-32-64 0 0 64 32 0zM160 384l0 64 64 0 0-64-64 0zM64 416c0 17.7 14.3 32 32 32l32 0 0-64-64 0 0 32z\"]\n};\nconst faTransgender = {\n prefix: 'fas',\n iconName: 'transgender',\n icon: [512, 512, [9895, \"transgender-alt\"], \"f225\", \"M112 0c6.5 0 12.3 3.9 14.8 9.9s1.1 12.9-3.5 17.4l-31 31L112 78.1l7-7c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-7 7 15.2 15.2C187.7 107.6 220.5 96 256 96s68.3 11.6 94.9 31.2l68.8-68.8-31-31c-4.6-4.6-5.9-11.5-3.5-17.4s8.3-9.9 14.8-9.9l96 0c8.8 0 16 7.2 16 16l0 96c0 6.5-3.9 12.3-9.9 14.8s-12.9 1.1-17.4-3.5l-31-31-68.8 68.8C404.4 187.7 416 220.5 416 256c0 80.2-59 146.6-136 158.2l0 17.8 16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0 0 8c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-8-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l16 0 0-17.8C155 402.6 96 336.2 96 256c0-35.5 11.6-68.3 31.2-94.9L112 145.9l-7 7c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l7-7L58.3 92.3l-31 31c-4.6 4.6-11.5 5.9-17.4 3.5S0 118.5 0 112L0 16C0 7.2 7.2 0 16 0l96 0zM352 256a96 96 0 1 0 -192 0 96 96 0 1 0 192 0z\"]\n};\nconst faTransgenderAlt = faTransgender;\nconst faMercury = {\n prefix: 'fas',\n iconName: 'mercury',\n icon: [384, 512, [9791], \"f223\", \"M72.1 7C85.8-4 106-1.8 117 12c17.6 22 44.7 36 75 36s57.3-14 75-36c11.1-13.8 31.2-16 45-5s16 31.2 5 45c-7.8 9.7-16.6 18.4-26.4 26.1C337.3 109.7 368 163.3 368 224c0 89.1-66.2 162.7-152 174.4l0 25.6 32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0 0 16c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-16-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l32 0 0-25.6C82.2 386.7 16 313.1 16 224c0-60.7 30.7-114.3 77.5-145.9C83.7 70.5 74.9 61.7 67.1 52c-11.1-13.8-8.8-33.9 5-45zM80 224a112 112 0 1 0 224 0A112 112 0 1 0 80 224z\"]\n};\nconst faArrowTurnDown = {\n prefix: 'fas',\n iconName: 'arrow-turn-down',\n icon: [384, 512, [\"level-down\"], \"f149\", \"M32 64C14.3 64 0 49.7 0 32S14.3 0 32 0l96 0c53 0 96 43 96 96l0 306.7 73.4-73.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-128 128c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 402.7 160 96c0-17.7-14.3-32-32-32L32 64z\"]\n};\nconst faLevelDown = faArrowTurnDown;\nconst faPersonFallingBurst = {\n prefix: 'fas',\n iconName: 'person-falling-burst',\n icon: [640, 512, [], \"e547\", \"M256 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 9.8c0 39-23.7 74-59.9 88.4C71.6 154.5 32 213 32 278.2L32 352c0 17.7 14.3 32 32 32s32-14.3 32-32l0-73.8c0-10 1.6-19.8 4.5-29L261.1 497.4c9.6 14.8 29.4 19.1 44.3 9.5s19.1-29.4 9.5-44.3L222.6 320l1.4 0 80 0 38.4 51.2c10.6 14.1 30.7 17 44.8 6.4s17-30.7 6.4-44.8l-43.2-57.6C341.3 263.1 327.1 256 312 256l-71.5 0-56.8-80.2-.2-.3c44.7-29 72.5-79 72.5-133.6l0-9.8zM96 80A48 48 0 1 0 0 80a48 48 0 1 0 96 0zM464 286.1l58.6 53.9c4.8 4.4 11.9 5.5 17.8 2.6s9.5-9 9-15.5l-5.6-79.4 78.7-12.2c6.5-1 11.7-5.9 13.1-12.2s-1.1-13-6.5-16.7l-65.6-45.1L603 92.2c3.3-5.7 2.7-12.8-1.4-17.9s-10.9-7.2-17.2-5.3L508.3 92.1l-29.4-74C476.4 12 470.6 8 464 8s-12.4 4-14.9 10.1l-29.4 74L343.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1-65.6 45.1c-5.4 3.7-8 10.3-6.5 16.7c.1 .3 .1 .6 .2 .8l19.4 0c20.1 0 39.2 7.5 53.8 20.8l18.4 2.9L383 265.3l36.2 48.3c2.1 2.8 3.9 5.7 5.5 8.6L464 286.1z\"]\n};\nconst faAward = {\n prefix: 'fas',\n iconName: 'award',\n icon: [384, 512, [], \"f559\", \"M173.8 5.5c11-7.3 25.4-7.3 36.4 0L228 17.2c6 3.9 13 5.8 20.1 5.4l21.3-1.3c13.2-.8 25.6 6.4 31.5 18.2l9.6 19.1c3.2 6.4 8.4 11.5 14.7 14.7L344.5 83c11.8 5.9 19 18.3 18.2 31.5l-1.3 21.3c-.4 7.1 1.5 14.2 5.4 20.1l11.8 17.8c7.3 11 7.3 25.4 0 36.4L366.8 228c-3.9 6-5.8 13-5.4 20.1l1.3 21.3c.8 13.2-6.4 25.6-18.2 31.5l-19.1 9.6c-6.4 3.2-11.5 8.4-14.7 14.7L301 344.5c-5.9 11.8-18.3 19-31.5 18.2l-21.3-1.3c-7.1-.4-14.2 1.5-20.1 5.4l-17.8 11.8c-11 7.3-25.4 7.3-36.4 0L156 366.8c-6-3.9-13-5.8-20.1-5.4l-21.3 1.3c-13.2 .8-25.6-6.4-31.5-18.2l-9.6-19.1c-3.2-6.4-8.4-11.5-14.7-14.7L39.5 301c-11.8-5.9-19-18.3-18.2-31.5l1.3-21.3c.4-7.1-1.5-14.2-5.4-20.1L5.5 210.2c-7.3-11-7.3-25.4 0-36.4L17.2 156c3.9-6 5.8-13 5.4-20.1l-1.3-21.3c-.8-13.2 6.4-25.6 18.2-31.5l19.1-9.6C65 70.2 70.2 65 73.4 58.6L83 39.5c5.9-11.8 18.3-19 31.5-18.2l21.3 1.3c7.1 .4 14.2-1.5 20.1-5.4L173.8 5.5zM272 192a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM1.3 441.8L44.4 339.3c.2 .1 .3 .2 .4 .4l9.6 19.1c11.7 23.2 36 37.3 62 35.8l21.3-1.3c.2 0 .5 0 .7 .2l17.8 11.8c5.1 3.3 10.5 5.9 16.1 7.7l-37.6 89.3c-2.3 5.5-7.4 9.2-13.3 9.7s-11.6-2.2-14.8-7.2L74.4 455.5l-56.1 8.3c-5.7 .8-11.4-1.5-15-6s-4.3-10.7-2.1-16zm248 60.4L211.7 413c5.6-1.8 11-4.3 16.1-7.7l17.8-11.8c.2-.1 .4-.2 .7-.2l21.3 1.3c26 1.5 50.3-12.6 62-35.8l9.6-19.1c.1-.2 .2-.3 .4-.4l43.2 102.5c2.2 5.3 1.4 11.4-2.1 16s-9.3 6.9-15 6l-56.1-8.3-32.2 49.2c-3.2 5-8.9 7.7-14.8 7.2s-11-4.3-13.3-9.7z\"]\n};\nconst faTicketSimple = {\n prefix: 'fas',\n iconName: 'ticket-simple',\n icon: [576, 512, [\"ticket-alt\"], \"f3ff\", \"M0 128C0 92.7 28.7 64 64 64l448 0c35.3 0 64 28.7 64 64l0 64c0 8.8-7.4 15.7-15.7 18.6C541.5 217.1 528 235 528 256s13.5 38.9 32.3 45.4c8.3 2.9 15.7 9.8 15.7 18.6l0 64c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64l0-64c0-8.8 7.4-15.7 15.7-18.6C34.5 294.9 48 277 48 256s-13.5-38.9-32.3-45.4C7.4 207.7 0 200.8 0 192l0-64z\"]\n};\nconst faTicketAlt = faTicketSimple;\nconst faBuilding = {\n prefix: 'fas',\n iconName: 'building',\n icon: [384, 512, [127970, 61687], \"f1ad\", \"M48 0C21.5 0 0 21.5 0 48L0 464c0 26.5 21.5 48 48 48l96 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 96 0c26.5 0 48-21.5 48-48l0-416c0-26.5-21.5-48-48-48L48 0zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm112-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM80 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16z\"]\n};\nconst faAnglesLeft = {\n prefix: 'fas',\n iconName: 'angles-left',\n icon: [512, 512, [171, \"angle-double-left\"], \"f100\", \"M41.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 256 246.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160zm352-160l-160 160c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L301.3 256 438.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0z\"]\n};\nconst faAngleDoubleLeft = faAnglesLeft;\nconst faQrcode = {\n prefix: 'fas',\n iconName: 'qrcode',\n icon: [448, 512, [], \"f029\", \"M0 80C0 53.5 21.5 32 48 32l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48L0 80zM64 96l0 64 64 0 0-64L64 96zM0 336c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-96zm64 16l0 64 64 0 0-64-64 0zM304 32l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-96c0-26.5 21.5-48 48-48zm80 64l-64 0 0 64 64 0 0-64zM256 304c0-8.8 7.2-16 16-16l64 0c8.8 0 16 7.2 16 16s7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s7.2-16 16-16s16 7.2 16 16l0 96c0 8.8-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16s-7.2-16-16-16s-16 7.2-16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-160zM368 480a16 16 0 1 1 0-32 16 16 0 1 1 0 32zm64 0a16 16 0 1 1 0-32 16 16 0 1 1 0 32z\"]\n};\nconst faClockRotateLeft = {\n prefix: 'fas',\n iconName: 'clock-rotate-left',\n icon: [512, 512, [\"history\"], \"f1da\", \"M75 75L41 41C25.9 25.9 0 36.6 0 57.9L0 168c0 13.3 10.7 24 24 24l110.1 0c21.4 0 32.1-25.9 17-41l-30.8-30.8C155 85.5 203 64 256 64c106 0 192 86 192 192s-86 192-192 192c-40.8 0-78.6-12.7-109.7-34.4c-14.5-10.1-34.4-6.6-44.6 7.9s-6.6 34.4 7.9 44.6C151.2 495 201.7 512 256 512c141.4 0 256-114.6 256-256S397.4 0 256 0C185.3 0 121.3 28.7 75 75zm181 53c-13.3 0-24 10.7-24 24l0 104c0 6.4 2.5 12.5 7 17l72 72c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-65-65 0-94.1c0-13.3-10.7-24-24-24z\"]\n};\nconst faHistory = faClockRotateLeft;\nconst faFaceGrinBeamSweat = {\n prefix: 'fas',\n iconName: 'face-grin-beam-sweat',\n icon: [512, 512, [128517, \"grin-beam-sweat\"], \"f583\", \"M476.8 126.3c-4.1 1.1-8.4 1.7-12.8 1.7c-26.5 0-48-21-48-47c0-5 1.8-11.3 4.6-18.1c.3-.7 .6-1.4 .9-2.1c9-20.2 26.5-44.9 36-57.5c3.2-4.4 9.6-4.4 12.8 0C483.4 20.6 512 61 512 81c0 21.7-14.9 39.8-35.2 45.3zM256 0c51.4 0 99.3 15.2 139.4 41.2c-1.5 3.1-3 6.2-4.3 9.3c-3.4 8-7.1 19-7.1 30.5c0 44.3 36.6 79 80 79c9.6 0 18.8-1.7 27.4-4.8c13.3 30.9 20.6 65 20.6 100.8c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0zM383.8 317.8C345.3 329.4 301.9 336 256 336s-89.3-6.6-127.8-18.2c-12.3-3.7-24.3 7-19.2 18.7c24.5 56.9 81.1 96.7 147 96.7s122.5-39.8 147-96.7c5.1-11.8-6.9-22.4-19.2-18.7zm-166.2-89s0 0 0 0s0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C126.7 188.4 120 206.1 120 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8c0 0 0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2c0 0 0 0 0 0c0 0 0 0 0 0zm160 0s0 0 0 0s0 0 0 0s0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C286.7 188.4 280 206.1 280 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8c0 0 0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2c0 0 0 0 0 0z\"]\n};\nconst faGrinBeamSweat = faFaceGrinBeamSweat;\nconst faFileExport = {\n prefix: 'fas',\n iconName: 'file-export',\n icon: [576, 512, [\"arrow-right-from-file\"], \"f56e\", \"M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 128-168 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l168 0 0 112c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM384 336l0-48 110.1 0-39-39c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l80 80c9.4 9.4 9.4 24.6 0 33.9l-80 80c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l39-39L384 336zm0-208l-128 0L256 0 384 128z\"]\n};\nconst faArrowRightFromFile = faFileExport;\nconst faShield = {\n prefix: 'fas',\n iconName: 'shield',\n icon: [512, 512, [128737, \"shield-blank\"], \"f132\", \"M256 0c4.6 0 9.2 1 13.4 2.9L457.7 82.8c22 9.3 38.4 31 38.3 57.2c-.5 99.2-41.3 280.7-213.6 363.2c-16.7 8-36.1 8-52.8 0C57.3 420.7 16.5 239.2 16 140c-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.8 1 251.4 0 256 0z\"]\n};\nconst faShieldBlank = faShield;\nconst faArrowUpShortWide = {\n prefix: 'fas',\n iconName: 'arrow-up-short-wide',\n icon: [576, 512, [\"sort-amount-up-alt\"], \"f885\", \"M151.6 42.4C145.5 35.8 137 32 128 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L96 146.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-301.7 32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-224 0z\"]\n};\nconst faSortAmountUpAlt = faArrowUpShortWide;\nconst faHouseMedical = {\n prefix: 'fas',\n iconName: 'house-medical',\n icon: [576, 512, [], \"e3b2\", \"M543.8 287.6c17 0 32-14 32-32.1c1-9-3-17-11-24L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1l32 0 0 160.4c0 35.3 28.7 64 64 64l320.4 0c35.5 0 64.2-28.8 64-64.3l-.7-160.2 32 0zM256 208c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 48 48 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l48 0 0-48z\"]\n};\nconst faGolfBallTee = {\n prefix: 'fas',\n iconName: 'golf-ball-tee',\n icon: [384, 512, [\"golf-ball\"], \"f450\", \"M384 192c0 66.8-34.1 125.6-85.8 160L85.8 352C34.1 317.6 0 258.8 0 192C0 86 86 0 192 0S384 86 384 192zM242.1 256.6c0 18.5-15 33.5-33.5 33.5c-4.9 0-9.1 5.1-5.4 8.4c5.9 5.2 13.7 8.4 22.1 8.4c18.5 0 33.5-15 33.5-33.5c0-8.5-3.2-16.2-8.4-22.1c-3.3-3.7-8.4 .5-8.4 5.4zm-52.3-49.3c-4.9 0-9.1 5.1-5.4 8.4c5.9 5.2 13.7 8.4 22.1 8.4c18.5 0 33.5-15 33.5-33.5c0-8.5-3.2-16.2-8.4-22.1c-3.3-3.7-8.4 .5-8.4 5.4c0 18.5-15 33.5-33.5 33.5zm113.5-17.5c0 18.5-15 33.5-33.5 33.5c-4.9 0-9.1 5.1-5.4 8.4c5.9 5.2 13.7 8.4 22.1 8.4c18.5 0 33.5-15 33.5-33.5c0-8.5-3.2-16.2-8.4-22.1c-3.3-3.7-8.4 .5-8.4 5.4zM96 416c0-17.7 14.3-32 32-32l64 0 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0c-8.8 0-16 7.2-16 16l0 16c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-16c0-8.8-7.2-16-16-16l-16 0c-17.7 0-32-14.3-32-32z\"]\n};\nconst faGolfBall = faGolfBallTee;\nconst faCircleChevronLeft = {\n prefix: 'fas',\n iconName: 'circle-chevron-left',\n icon: [512, 512, [\"chevron-circle-left\"], \"f137\", \"M512 256A256 256 0 1 0 0 256a256 256 0 1 0 512 0zM271 135c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-87 87 87 87c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L167 273c-9.4-9.4-9.4-24.6 0-33.9L271 135z\"]\n};\nconst faChevronCircleLeft = faCircleChevronLeft;\nconst faHouseChimneyWindow = {\n prefix: 'fas',\n iconName: 'house-chimney-window',\n icon: [576, 512, [], \"e00d\", \"M575.8 255.5c0 18-15 32.1-32 32.1l-32 0 .7 160.2c.2 35.5-28.5 64.3-64 64.3l-320.4 0c-35.3 0-64-28.7-64-64l0-160.4-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L416 100.7 416 64c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 121 52.8 46.4c8 7 12 15 11 24zM248 192c-13.3 0-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24l0-80c0-13.3-10.7-24-24-24l-80 0z\"]\n};\nconst faPenNib = {\n prefix: 'fas',\n iconName: 'pen-nib',\n icon: [512, 512, [10001], \"f5ad\", \"M368.4 18.3L312.7 74.1 437.9 199.3l55.7-55.7c21.9-21.9 21.9-57.3 0-79.2L447.6 18.3c-21.9-21.9-57.3-21.9-79.2 0zM288 94.6l-9.2 2.8L134.7 140.6c-19.9 6-35.7 21.2-42.3 41L3.8 445.8c-3.8 11.3-1 23.9 7.3 32.4L164.7 324.7c-3-6.3-4.7-13.3-4.7-20.7c0-26.5 21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48c-7.4 0-14.4-1.7-20.7-4.7L33.7 500.9c8.6 8.3 21.1 11.2 32.4 7.3l264.3-88.6c19.7-6.6 35-22.4 41-42.3l43.2-144.1 2.7-9.2L288 94.6z\"]\n};\nconst faTentArrowTurnLeft = {\n prefix: 'fas',\n iconName: 'tent-arrow-turn-left',\n icon: [576, 512, [], \"e580\", \"M120.1 41.8c9.9-8.9 10.7-24 1.8-33.9S97.8-2.7 87.9 6.2l-80 72C2.9 82.7 0 89.2 0 96s2.9 13.3 7.9 17.8l80 72c9.9 8.9 25 8.1 33.9-1.8s8.1-25-1.8-33.9L86.5 120 456 120c39.8 0 72 32.2 72 72l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40c0-66.3-53.7-120-120-120L86.5 72l33.5-30.2zM307.4 166.5c-11.5-8.7-27.3-8.7-38.8 0l-168 128c-6.6 5-11 12.5-12.3 20.7l-24 160c-1.4 9.2 1.3 18.6 7.4 25.6S86.7 512 96 512l144 0 16 0c17.7 0 32-14.3 32-32l0-118.1c0-5.5 4.4-9.9 9.9-9.9c3.7 0 7.2 2.1 8.8 5.5l68.4 136.8c5.4 10.8 16.5 17.7 28.6 17.7l60.2 0 16 0c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128z\"]\n};\nconst faTents = {\n prefix: 'fas',\n iconName: 'tents',\n icon: [640, 512, [], \"e582\", \"M396.6 6.5L235.8 129.1c9.6 1.8 18.9 5.8 27 12l168 128c13.2 10.1 22 24.9 24.5 41.4l6.2 41.5L608 352c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128c-11.5-8.7-27.3-8.7-38.8 0zm-153.2 160c-11.5-8.7-27.3-8.7-38.8 0l-168 128c-6.6 5-11 12.5-12.3 20.7l-24 160c-1.4 9.2 1.3 18.6 7.4 25.6S22.7 512 32 512l144 0 16 0c17.7 0 32-14.3 32-32l0-118.1c0-5.5 4.4-9.9 9.9-9.9c3.7 0 7.2 2.1 8.8 5.5l68.4 136.8c5.4 10.8 16.5 17.7 28.6 17.7l60.2 0 16 0c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128z\"]\n};\nconst faWandMagic = {\n prefix: 'fas',\n iconName: 'wand-magic',\n icon: [512, 512, [\"magic\"], \"f0d0\", \"M14.1 463.3c-18.7-18.7-18.7-49.1 0-67.9L395.4 14.1c18.7-18.7 49.1-18.7 67.9 0l34.6 34.6c18.7 18.7 18.7 49.1 0 67.9L116.5 497.9c-18.7 18.7-49.1 18.7-67.9 0L14.1 463.3zM347.6 187.6l105-105L429.4 59.3l-105 105 23.3 23.3z\"]\n};\nconst faMagic = faWandMagic;\nconst faDog = {\n prefix: 'fas',\n iconName: 'dog',\n icon: [576, 512, [128021], \"f6d3\", \"M309.6 158.5L332.7 19.8C334.6 8.4 344.5 0 356.1 0c7.5 0 14.5 3.5 19 9.5L392 32l52.1 0c12.7 0 24.9 5.1 33.9 14.1L496 64l56 0c13.3 0 24 10.7 24 24l0 24c0 44.2-35.8 80-80 80l-32 0-16 0-21.3 0-5.1 30.5-112-64zM416 256.1L416 480c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-115.2c-24 12.3-51.2 19.2-80 19.2s-56-6.9-80-19.2L160 480c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-230.2c-28.8-10.9-51.4-35.3-59.2-66.5L1 167.8c-4.3-17.1 6.1-34.5 23.3-38.8s34.5 6.1 38.8 23.3l3.9 15.5C70.5 182 83.3 192 98 192l30 0 16 0 159.8 0L416 256.1zM464 80a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z\"]\n};\nconst faCarrot = {\n prefix: 'fas',\n iconName: 'carrot',\n icon: [512, 512, [129365], \"f787\", \"M346.7 6C337.6 17 320 42.3 320 72c0 40 15.3 55.3 40 80s40 40 80 40c29.7 0 55-17.6 66-26.7c4-3.3 6-8.2 6-13.3s-2-10-6-13.2c-11.4-9.1-38.3-26.8-74-26.8c-32 0-40 8-40 8s8-8 8-40c0-35.7-17.7-62.6-26.8-74C370 2 365.1 0 360 0s-10 2-13.3 6zM244.6 136c-40 0-77.1 18.1-101.7 48.2l60.5 60.5c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-55.3-55.3 0 .1L2.2 477.9C-2 487-.1 497.8 7 505s17.9 9 27.1 4.8l134.7-62.4-52.1-52.1c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L199.7 433l100.2-46.4c46.4-21.5 76.2-68 76.2-119.2C376 194.8 317.2 136 244.6 136z\"]\n};\nconst faMoon = {\n prefix: 'fas',\n iconName: 'moon',\n icon: [384, 512, [127769, 9214], \"f186\", \"M223.5 32C100 32 0 132.3 0 256S100 480 223.5 480c60.6 0 115.5-24.2 155.8-63.4c5-4.9 6.3-12.5 3.1-18.7s-10.1-9.7-17-8.5c-9.8 1.7-19.8 2.6-30.1 2.6c-96.9 0-175.5-78.8-175.5-176c0-65.8 36-123.1 89.3-153.3c6.1-3.5 9.2-10.5 7.7-17.3s-7.3-11.9-14.3-12.5c-6.3-.5-12.6-.8-19-.8z\"]\n};\nconst faWineGlassEmpty = {\n prefix: 'fas',\n iconName: 'wine-glass-empty',\n icon: [320, 512, [\"wine-glass-alt\"], \"f5ce\", \"M64 0C47.4 0 33.5 12.8 32.1 29.3l-14 168.4c-6 72 42.5 135.2 109.9 150.6l0 99.6-48 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l80 0 80 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-48 0 0-99.6c67.4-15.4 115.9-78.6 109.9-150.6l-14-168.4C286.5 12.8 272.6 0 256 0L64 0zM81.9 203.1L93.4 64l133.1 0 11.6 139.1C242 248.8 205.9 288 160 288s-82-39.2-78.1-84.9z\"]\n};\nconst faWineGlassAlt = faWineGlassEmpty;\nconst faCheese = {\n prefix: 'fas',\n iconName: 'cheese',\n icon: [512, 512, [], \"f7ef\", \"M512 240.2l0 15.8L0 256c0-20 10-38.7 26.6-49.8L274.9 40.7c8.6-5.7 18.6-8.7 28.9-8.7C418.8 32 512 125.2 512 240.2zm0 47.8l0 128c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 288l512 0z\"]\n};\nconst faYinYang = {\n prefix: 'fas',\n iconName: 'yin-yang',\n icon: [512, 512, [9775], \"f6ad\", \"M256 64c53 0 96 43 96 96s-43 96-96 96s-96 43-96 96s43 96 96 96C150 448 64 362 64 256S150 64 256 64zm0 448A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm32-352a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nconst faMusic = {\n prefix: 'fas',\n iconName: 'music',\n icon: [512, 512, [127925], \"f001\", \"M499.1 6.3c8.1 6 12.9 15.6 12.9 25.7l0 72 0 264c0 44.2-43 80-96 80s-96-35.8-96-80s43-80 96-80c11.2 0 22 1.6 32 4.6L448 147 192 223.8 192 432c0 44.2-43 80-96 80s-96-35.8-96-80s43-80 96-80c11.2 0 22 1.6 32 4.6L128 200l0-72c0-14.1 9.3-26.6 22.8-30.7l320-96c9.7-2.9 20.2-1.1 28.3 5z\"]\n};\nconst faCodeCommit = {\n prefix: 'fas',\n iconName: 'code-commit',\n icon: [640, 512, [], \"f386\", \"M320 336a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm156.8-48C462 361 397.4 416 320 416s-142-55-156.8-128L32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l131.2 0C178 151 242.6 96 320 96s142 55 156.8 128L608 224c17.7 0 32 14.3 32 32s-14.3 32-32 32l-131.2 0z\"]\n};\nconst faTemperatureLow = {\n prefix: 'fas',\n iconName: 'temperature-low',\n icon: [512, 512, [], \"f76b\", \"M448 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM320 96a96 96 0 1 1 192 0A96 96 0 1 1 320 96zM144 64c-26.5 0-48 21.5-48 48l0 164.5c0 17.3-7.1 31.9-15.3 42.5C70.2 332.6 64 349.5 64 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5L192 112c0-26.5-21.5-48-48-48zM32 112C32 50.2 82.1 0 144 0s112 50.1 112 112l0 164.4c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S0 447.5 0 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6L32 112zM192 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3l0-50.7c0-8.8 7.2-16 16-16s16 7.2 16 16l0 50.7c18.6 6.6 32 24.4 32 45.3z\"]\n};\nconst faPersonBiking = {\n prefix: 'fas',\n iconName: 'person-biking',\n icon: [640, 512, [128692, \"biking\"], \"f84a\", \"M400 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm27.2 64l-61.8-48.8c-17.3-13.6-41.7-13.8-59.1-.3l-83.1 64.2c-30.7 23.8-28.5 70.8 4.3 91.6L288 305.1 288 416c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128c0-10.7-5.3-20.7-14.2-26.6L295 232.9l60.3-48.5L396 217c5.7 4.5 12.7 7 20 7l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-52.8 0zM56 384a72 72 0 1 1 144 0A72 72 0 1 1 56 384zm200 0A128 128 0 1 0 0 384a128 128 0 1 0 256 0zm184 0a72 72 0 1 1 144 0 72 72 0 1 1 -144 0zm200 0a128 128 0 1 0 -256 0 128 128 0 1 0 256 0z\"]\n};\nconst faBiking = faPersonBiking;\nconst faBroom = {\n prefix: 'fas',\n iconName: 'broom',\n icon: [576, 512, [129529], \"f51a\", \"M566.6 54.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192-34.7-34.7c-4.2-4.2-10-6.6-16-6.6c-12.5 0-22.6 10.1-22.6 22.6l0 29.1L364.3 320l29.1 0c12.5 0 22.6-10.1 22.6-22.6c0-6-2.4-11.8-6.6-16l-34.7-34.7 192-192zM341.1 353.4L222.6 234.9c-42.7-3.7-85.2 11.7-115.8 42.3l-8 8C76.5 307.5 64 337.7 64 369.2c0 6.8 7.1 11.2 13.2 8.2l51.1-25.5c5-2.5 9.5 4.1 5.4 7.9L7.3 473.4C2.7 477.6 0 483.6 0 489.9C0 502.1 9.9 512 22.1 512l173.3 0c38.8 0 75.9-15.4 103.4-42.8c30.6-30.6 45.9-73.1 42.3-115.8z\"]\n};\nconst faShieldHeart = {\n prefix: 'fas',\n iconName: 'shield-heart',\n icon: [512, 512, [], \"e574\", \"M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2c.5 99.2 41.3 280.7 213.6 363.2c16.7 8 36.1 8 52.8 0C454.7 420.7 495.5 239.2 496 140c.1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM144 221.3c0-33.8 27.4-61.3 61.3-61.3c16.2 0 31.8 6.5 43.3 17.9l7.4 7.4 7.4-7.4c11.5-11.5 27.1-17.9 43.3-17.9c33.8 0 61.3 27.4 61.3 61.3c0 16.2-6.5 31.8-17.9 43.3l-82.7 82.7c-6.2 6.2-16.4 6.2-22.6 0l-82.7-82.7c-11.5-11.5-17.9-27.1-17.9-43.3z\"]\n};\nconst faGopuram = {\n prefix: 'fas',\n iconName: 'gopuram',\n icon: [512, 512, [], \"f664\", \"M120 0c13.3 0 24 10.7 24 24l0 8 40 0 0-8c0-13.3 10.7-24 24-24s24 10.7 24 24l0 8 48 0 0-8c0-13.3 10.7-24 24-24s24 10.7 24 24l0 8 40 0 0-8c0-13.3 10.7-24 24-24s24 10.7 24 24l0 8 0 32 0 64c17.7 0 32 14.3 32 32l0 64c17.7 0 32 14.3 32 32l0 96c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-64 0 0-160-32 0 0-128-32 0 0-96-32 0 0 96 32 0 0 128 32 0 0 160-80 0 0-48c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 48-80 0 0-160 32 0 0-128 32 0 0-96-32 0 0 96-32 0 0 128-32 0 0 160-64 0c-17.7 0-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32l0-96c0-17.7 14.3-32 32-32l0-64c0-17.7 14.3-32 32-32l0-64 0-32 0-8c0-13.3 10.7-24 24-24zM256 272c-17.7 0-32 14.3-32 32l0 48 64 0 0-48c0-17.7-14.3-32-32-32zm-32-80l0 32 64 0 0-32c0-17.7-14.3-32-32-32s-32 14.3-32 32z\"]\n};\nconst faEarthOceania = {\n prefix: 'fas',\n iconName: 'earth-oceania',\n icon: [512, 512, [\"globe-oceania\"], \"e47b\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM208.6 357.3l-39-13.5c-6.5-2.2-13.6-2.3-20.1-.3l-15.3 4.9c-18.5 5.9-38.5-2.4-47.5-19.5l-3.3-6.2c-10.6-20.1-2.3-45 18.2-54.7l35.3-16.8c2.3-1.1 4.4-2.8 5.9-4.8l5.3-7c7.2-9.6 18.6-15.3 30.6-15.3s23.4 5.7 30.6 15.3l4.6 6.1c2 2.6 4.9 4.5 8.1 5.1c7.8 1.6 15.7-1.5 20.4-7.9l10.4-14.2c2-2.8 5.3-4.4 8.7-4.4c4.4 0 8.4 2.7 10 6.8l10.1 25.9c2.8 7.2 6.7 14 11.5 20.2L311 299.8c5.8 7.4 9 16.6 9 26s-3.2 18.6-9 26L299 367.2c-8.3 10.6-21 16.8-34.4 16.8c-8.4 0-16.6-2.4-23.7-7l-25.4-16.4c-2.2-1.4-4.5-2.5-6.9-3.4zm65.2-214.8L296 164.7c10.1 10.1 2.9 27.3-11.3 27.3l-29.9 0c-5.6 0-11.1-1.2-16.2-3.4l-42.8-19c-14.3-6.3-11.9-27.3 3.4-30.3l38.5-7.7c13.1-2.6 26.7 1.5 36.1 10.9zM248 432c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16zM431.2 298.9l8 24c2.8 8.4-1.7 17.4-10.1 20.2s-17.4-1.7-20.2-10.1l-8-24c-2.8-8.4 1.7-17.4 10.1-20.2s17.4 1.7 20.2 10.1zm-19.9 80.4l-32 32c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l32-32c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nconst faGlobeOceania = faEarthOceania;\nconst faSquareXmark = {\n prefix: 'fas',\n iconName: 'square-xmark',\n icon: [448, 512, [10062, \"times-square\", \"xmark-square\"], \"f2d3\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm79 143c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nconst faTimesSquare = faSquareXmark;\nconst faXmarkSquare = faSquareXmark;\nconst faHashtag = {\n prefix: 'fas',\n iconName: 'hashtag',\n icon: [448, 512, [62098], \"23\", \"M181.3 32.4c17.4 2.9 29.2 19.4 26.3 36.8L197.8 128l95.1 0 11.5-69.3c2.9-17.4 19.4-29.2 36.8-26.3s29.2 19.4 26.3 36.8L357.8 128l58.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-68.9 0L325.8 320l58.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-68.9 0-11.5 69.3c-2.9 17.4-19.4 29.2-36.8 26.3s-29.2-19.4-26.3-36.8l9.8-58.7-95.1 0-11.5 69.3c-2.9 17.4-19.4 29.2-36.8 26.3s-29.2-19.4-26.3-36.8L90.2 384 32 384c-17.7 0-32-14.3-32-32s14.3-32 32-32l68.9 0 21.3-128L64 192c-17.7 0-32-14.3-32-32s14.3-32 32-32l68.9 0 11.5-69.3c2.9-17.4 19.4-29.2 36.8-26.3zM187.1 192L165.8 320l95.1 0 21.3-128-95.1 0z\"]\n};\nconst faUpRightAndDownLeftFromCenter = {\n prefix: 'fas',\n iconName: 'up-right-and-down-left-from-center',\n icon: [512, 512, [\"expand-alt\"], \"f424\", \"M344 0L488 0c13.3 0 24 10.7 24 24l0 144c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39-87 87c-9.4 9.4-24.6 9.4-33.9 0l-32-32c-9.4-9.4-9.4-24.6 0-33.9l87-87L327 41c-6.9-6.9-8.9-17.2-5.2-26.2S334.3 0 344 0zM168 512L24 512c-13.3 0-24-10.7-24-24L0 344c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l39 39 87-87c9.4-9.4 24.6-9.4 33.9 0l32 32c9.4 9.4 9.4 24.6 0 33.9l-87 87 39 39c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8z\"]\n};\nconst faExpandAlt = faUpRightAndDownLeftFromCenter;\nconst faOilCan = {\n prefix: 'fas',\n iconName: 'oil-can',\n icon: [640, 512, [], \"f613\", \"M320 128c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 32-80 0-48 0-48 0c-26.5 0-48 21.5-48 48l0 64.8c0 19 11.2 36.2 28.5 43.9l67.5 30L96 368c0 26.5 21.5 48 48 48l259.1 0c18.4 0 35.8-7.9 48-21.7L633.5 187.7c12.3-13.9-.3-35.4-18.4-31.5L448 192l-50.5-25.2c-8.9-4.4-18.7-6.8-28.6-6.8L288 160l0-32 32 0zM96 208l0 86.1L48 272.8 48 208l48 0z\"]\n};\nconst faT = {\n prefix: 'fas',\n iconName: 't',\n icon: [384, 512, [116], \"54\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l128 0 0 352c0 17.7 14.3 32 32 32s32-14.3 32-32l0-352 128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 32 32 32z\"]\n};\nconst faHippo = {\n prefix: 'fas',\n iconName: 'hippo',\n icon: [640, 512, [129435], \"f6ed\", \"M407 47c9.4-9.4 24.6-9.4 33.9 0l17.2 17.2c1.9-.1 3.9-.2 5.8-.2l32 0c11.2 0 21.9 2.3 31.6 6.5L543 55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L564 101.9c7.6 12.2 12 26.7 12 42.1c0 10.2 7.4 18.8 16.7 23c27.9 12.5 47.3 40.5 47.3 73c0 26.2-12.6 49.4-32 64l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-16-64 0 0 16c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-17.6c-11.8-2.4-22.7-7.4-32-14.4c-1.5-1.1-2.9-2.3-4.3-3.5c-17-14.7-27.7-36.4-27.7-60.5c0-8.8-7.2-16-16-16s-16 7.2-16 16c0 44.7 26.2 83.2 64 101.2l0 10.8c0 17.7 14.3 32 32 32l32 0 0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-76c-19.8 7.7-41.4 12-64 12s-44.2-4.3-64-12l0 76c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-118.9L45.9 369.7c-5.4 12.1-19.6 17.6-31.7 12.2S-3.3 362.4 2.1 350.3L24 300.9c5.3-11.9 8-24.7 8-37.7C32 155.7 117.2 68 223.8 64.1l.2-.1 7.2 0L256 64l32 0c41.7 0 83.4 12.1 117.2 25.7c1.7-1.8 3.5-3.6 5.3-5.2L407 81c-9.4-9.4-9.4-24.6 0-33.9zm73 185a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm88 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48zM480 144a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm48 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"]\n};\nconst faChartColumn = {\n prefix: 'fas',\n iconName: 'chart-column',\n icon: [512, 512, [], \"e0e3\", \"M32 32c17.7 0 32 14.3 32 32l0 336c0 8.8 7.2 16 16 16l400 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L80 480c-44.2 0-80-35.8-80-80L0 64C0 46.3 14.3 32 32 32zM160 224c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zm128-64l0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160c0-17.7 14.3-32 32-32s32 14.3 32 32zm64 32c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32zM480 96l0 224c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-224c0-17.7 14.3-32 32-32s32 14.3 32 32z\"]\n};\nconst faInfinity = {\n prefix: 'fas',\n iconName: 'infinity',\n icon: [640, 512, [8734, 9854], \"f534\", \"M0 241.1C0 161 65 96 145.1 96c38.5 0 75.4 15.3 102.6 42.5L320 210.7l72.2-72.2C419.5 111.3 456.4 96 494.9 96C575 96 640 161 640 241.1l0 29.7C640 351 575 416 494.9 416c-38.5 0-75.4-15.3-102.6-42.5L320 301.3l-72.2 72.2C220.5 400.7 183.6 416 145.1 416C65 416 0 351 0 270.9l0-29.7zM274.7 256l-72.2-72.2c-15.2-15.2-35.9-23.8-57.4-23.8C100.3 160 64 196.3 64 241.1l0 29.7c0 44.8 36.3 81.1 81.1 81.1c21.5 0 42.2-8.5 57.4-23.8L274.7 256zm90.5 0l72.2 72.2c15.2 15.2 35.9 23.8 57.4 23.8c44.8 0 81.1-36.3 81.1-81.1l0-29.7c0-44.8-36.3-81.1-81.1-81.1c-21.5 0-42.2 8.5-57.4 23.8L365.3 256z\"]\n};\nconst faVialCircleCheck = {\n prefix: 'fas',\n iconName: 'vial-circle-check',\n icon: [512, 512, [], \"e596\", \"M0 64C0 46.3 14.3 32 32 32l64 0 64 0 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 170.8c-20.2 28.6-32 63.5-32 101.2c0 25.2 5.3 49.1 14.8 70.8C189.5 463.7 160.6 480 128 480c-53 0-96-43-96-96L32 96C14.3 96 0 81.7 0 64zM96 96l0 96 64 0 0-96L96 96zM224 368a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm211.3-43.3c-6.2-6.2-16.4-6.2-22.6 0L352 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z\"]\n};\nconst faPersonArrowDownToLine = {\n prefix: 'fas',\n iconName: 'person-arrow-down-to-line',\n icon: [640, 512, [], \"e538\", \"M192 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-8 352l0-96 16 0 0 96-16 0zm-64 0l-88 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l120 0 80 0 376 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-344 0 0-191.1 28.6 47.5c9.1 15.1 28.8 20 43.9 10.9s20-28.8 10.9-43.9l-58.3-97c-17.4-28.9-48.6-46.6-82.3-46.6l-29.7 0c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L120 256.9 120 448zM464 64l0 242.7-25.4-25.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l80 80c12.5 12.5 32.8 12.5 45.3 0l80-80c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L528 306.7 528 64c0-17.7-14.3-32-32-32s-32 14.3-32 32z\"]\n};\nconst faVoicemail = {\n prefix: 'fas',\n iconName: 'voicemail',\n icon: [640, 512, [], \"f897\", \"M144 320a80 80 0 1 1 0-160 80 80 0 1 1 0 160zm119.8 0c15.3-22.9 24.2-50.4 24.2-80c0-79.5-64.5-144-144-144S0 160.5 0 240s64.5 144 144 144l352 0c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144c0 29.6 8.9 57.1 24.2 80l-112.5 0zM496 160a80 80 0 1 1 0 160 80 80 0 1 1 0-160z\"]\n};\nconst faFan = {\n prefix: 'fas',\n iconName: 'fan',\n icon: [512, 512, [], \"f863\", \"M258.6 0c-1.7 0-3.4 .1-5.1 .5C168 17 115.6 102.3 130.5 189.3c2.9 17 8.4 32.9 15.9 47.4L32 224l-2.6 0C13.2 224 0 237.2 0 253.4c0 1.7 .1 3.4 .5 5.1C17 344 102.3 396.4 189.3 381.5c17-2.9 32.9-8.4 47.4-15.9L224 480l0 2.6c0 16.2 13.2 29.4 29.4 29.4c1.7 0 3.4-.1 5.1-.5C344 495 396.4 409.7 381.5 322.7c-2.9-17-8.4-32.9-15.9-47.4L480 288l2.6 0c16.2 0 29.4-13.2 29.4-29.4c0-1.7-.1-3.4-.5-5.1C495 168 409.7 115.6 322.7 130.5c-17 2.9-32.9 8.4-47.4 15.9L288 32l0-2.6C288 13.2 274.8 0 258.6 0zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nconst faPersonWalkingLuggage = {\n prefix: 'fas',\n iconName: 'person-walking-luggage',\n icon: [576, 512, [], \"e554\", \"M432 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM347.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L505 232.7l-15.3-36.8C472.5 154.8 432.3 128 387.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1l-25 62.4-59.4 59.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L340.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zM256 274.1c-7.7-4.4-17.4-1.8-21.9 5.9l-32 55.4L147.7 304c-15.3-8.8-34.9-3.6-43.7 11.7L40 426.6c-8.8 15.3-3.6 34.9 11.7 43.7l55.4 32c15.3 8.8 34.9 3.6 43.7-11.7l64-110.9c1.5-2.6 2.6-5.2 3.3-8L261.9 296c4.4-7.7 1.8-17.4-5.9-21.9z\"]\n};\nconst faUpDown = {\n prefix: 'fas',\n iconName: 'up-down',\n icon: [256, 512, [8597, 11021, \"arrows-alt-v\"], \"f338\", \"M145.6 7.7C141 2.8 134.7 0 128 0s-13 2.8-17.6 7.7l-104 112c-6.5 7-8.2 17.2-4.4 25.9S14.5 160 24 160l56 0 0 192-56 0c-9.5 0-18.2 5.7-22 14.4s-2.1 18.9 4.4 25.9l104 112c4.5 4.9 10.9 7.7 17.6 7.7s13-2.8 17.6-7.7l104-112c6.5-7 8.2-17.2 4.4-25.9s-12.5-14.4-22-14.4l-56 0 0-192 56 0c9.5 0 18.2-5.7 22-14.4s2.1-18.9-4.4-25.9l-104-112z\"]\n};\nconst faArrowsAltV = faUpDown;\nconst faCloudMoonRain = {\n prefix: 'fas',\n iconName: 'cloud-moon-rain',\n icon: [576, 512, [], \"f73c\", \"M481.2 0C417 0 363.5 46.5 353.7 107.6c35.4 17.6 60.2 53.3 62.1 95.1c23.2 11 42 29.7 53.1 52.7c4 .4 8.1 .6 12.3 .6c34.9 0 66.7-13.8 89.9-36.1c5.1-4.9 6.4-12.5 3.2-18.7s-10.1-9.7-17-8.6c-4.9 .8-10 1.3-15.2 1.3c-49 0-88.4-39.3-88.4-87.4c0-32.6 18-61.1 44.9-76.1c6.1-3.4 9.3-10.5 7.8-17.4s-7.3-12-14.3-12.6c-3.6-.3-7.3-.5-10.9-.5zM367.9 383.9c44.2 0 80-35.8 80-80c0-39.3-28.4-72.1-65.8-78.7c1.2-5.6 1.9-11.3 1.9-17.2c0-44.2-35.8-80-80-80c-17 0-32.8 5.3-45.8 14.4C241.3 114.6 210.8 96 176 96c-53 0-96 43-96 96l0 1.3c-45.4 7.6-80 47.1-80 94.6c0 53 43 96 96 96l271.9 0zM85.4 420.1c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm96 0c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm96 0c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm96 0c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3z\"]\n};\nconst faCalendar = {\n prefix: 'fas',\n iconName: 'calendar',\n icon: [448, 512, [128197, 128198], \"f133\", \"M96 32l0 32L48 64C21.5 64 0 85.5 0 112l0 48 448 0 0-48c0-26.5-21.5-48-48-48l-48 0 0-32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 32L160 64l0-32c0-17.7-14.3-32-32-32S96 14.3 96 32zM448 192L0 192 0 464c0 26.5 21.5 48 48 48l352 0c26.5 0 48-21.5 48-48l0-272z\"]\n};\nconst faTrailer = {\n prefix: 'fas',\n iconName: 'trailer',\n icon: [640, 512, [], \"e041\", \"M48 32C21.5 32 0 53.5 0 80L0 336c0 26.5 21.5 48 48 48l17.1 0c7.8-54.3 54.4-96 110.9-96s103.1 41.7 110.9 96L488 384l8 0 112 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-240c0-26.5-21.5-48-48-48L48 32zM80 96c8.8 0 16 7.2 16 16l0 131.2c-11.4 5.9-22.2 12.9-32 21L64 112c0-8.8 7.2-16 16-16zm96 128c-5.4 0-10.7 .2-16 .7L160 112c0-8.8 7.2-16 16-16s16 7.2 16 16l0 112.7c-5.3-.5-10.6-.7-16-.7zm80 19.2L256 112c0-8.8 7.2-16 16-16s16 7.2 16 16l0 152.2c-9.8-8.1-20.6-15.2-32-21zM368 96c8.8 0 16 7.2 16 16l0 192c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-192c0-8.8 7.2-16 16-16zm112 16l0 192c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-192c0-8.8 7.2-16 16-16s16 7.2 16 16zM176 480a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm0-112a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nconst faBahai = {\n prefix: 'fas',\n iconName: 'bahai',\n icon: [576, 512, [\"haykal\"], \"f666\", \"M288 0c14.5 0 27.2 9.7 30.9 23.8l23.9 89.6 75.9-53.3c11.9-8.3 27.8-7.6 39 1.7s14.6 24.9 8.4 38.1l-39.3 84 92.4 8c14.4 1.2 26.2 12 28.8 26.3s-4.9 28.5-18 34.6l-84.1 39.1 65.7 65.5c10.3 10.2 12.4 26.1 5.1 38.7s-22 18.7-36 14.9L391 386.8l8.2 92.4c1.3 14.4-7.3 27.9-20.9 32.9s-28.9 .1-37.2-11.7l-53.1-76-53.1 76c-8.3 11.9-23.6 16.7-37.2 11.7s-22.2-18.5-20.9-32.9l8.2-92.4L95.4 410.9c-14 3.8-28.8-2.3-36-14.9s-5.2-28.4 5.1-38.7l65.7-65.5L46 252.7c-13.1-6.1-20.5-20.3-18-34.6s14.3-25.1 28.8-26.3l92.4-8-39.3-84c-6.1-13.1-2.7-28.8 8.4-38.1s27.1-10 39-1.7l75.9 53.3 23.9-89.6C260.8 9.7 273.5 0 288 0zm0 156.2l-4.8 18c-2.7 10.1-10.2 18.2-20 21.8s-20.8 2.1-29.3-3.9l-15.2-10.7 7.9 16.8c4.4 9.5 4 20.5-1.3 29.6s-14.5 15-25 15.9l-18.5 1.6 16.8 7.8c9.5 4.4 16.2 13.2 18 23.5s-1.5 20.8-8.9 28.2l-13.2 13.1 17.9-4.8c10.1-2.7 20.9-.3 28.9 6.4s12.2 16.9 11.3 27.3l-1.6 18.5 10.6-15.2c6-8.6 15.8-13.7 26.2-13.7s20.2 5.1 26.2 13.7l10.6 15.2-1.6-18.5c-.9-10.4 3.3-20.6 11.3-27.3s18.8-9.1 28.9-6.4l17.9 4.8-13.2-13.1c-7.4-7.4-10.7-17.9-8.9-28.2s8.5-19.1 18-23.5l16.8-7.8-18.5-1.6c-10.4-.9-19.7-6.8-25-15.9s-5.7-20.1-1.3-29.6l7.9-16.8-15.2 10.7c-8.6 6-19.5 7.5-29.3 3.9s-17.3-11.7-20-21.8l-4.8-18z\"]\n};\nconst faHaykal = faBahai;\nconst faSdCard = {\n prefix: 'fas',\n iconName: 'sd-card',\n icon: [384, 512, [], \"f7c2\", \"M320 0L141.3 0C124.3 0 108 6.7 96 18.7L18.7 96C6.7 108 0 124.3 0 141.3L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64zM160 88l0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24s24 10.7 24 24zm80 0l0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24s24 10.7 24 24zm80 0l0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nconst faDragon = {\n prefix: 'fas',\n iconName: 'dragon',\n icon: [640, 512, [128009], \"f6d5\", \"M352 124.5l-51.9-13c-6.5-1.6-11.3-7.1-12-13.8s2.8-13.1 8.7-16.1l40.8-20.4L294.4 28.8c-5.5-4.1-7.8-11.3-5.6-17.9S297.1 0 304 0L416 0l32 0 16 0c30.2 0 58.7 14.2 76.8 38.4l57.6 76.8c6.2 8.3 9.6 18.4 9.6 28.8c0 26.5-21.5 48-48 48l-21.5 0c-17 0-33.3-6.7-45.3-18.7L480 160l-32 0 0 21.5c0 24.8 12.8 47.9 33.8 61.1l106.6 66.6c32.1 20.1 51.6 55.2 51.6 93.1C640 462.9 590.9 512 530.2 512L496 512l-64 0L32.3 512c-3.3 0-6.6-.4-9.6-1.4C13.5 507.8 6 501 2.4 492.1C1 488.7 .2 485.2 0 481.4c-.2-3.7 .3-7.3 1.3-10.7c2.8-9.2 9.6-16.7 18.6-20.4c3-1.2 6.2-2 9.5-2.2L433.3 412c8.3-.7 14.7-7.7 14.7-16.1c0-4.3-1.7-8.4-4.7-11.4l-44.4-44.4c-30-30-46.9-70.7-46.9-113.1l0-45.5 0-57zM512 72.3c0-.1 0-.2 0-.3s0-.2 0-.3l0 .6zm-1.3 7.4L464.3 68.1c-.2 1.3-.3 2.6-.3 3.9c0 13.3 10.7 24 24 24c10.6 0 19.5-6.8 22.7-16.3zM130.9 116.5c16.3-14.5 40.4-16.2 58.5-4.1l130.6 87 0 27.5c0 32.8 8.4 64.8 24 93l-232 0c-6.7 0-12.7-4.2-15-10.4s-.5-13.3 4.6-17.7L171 232.3 18.4 255.8c-7 1.1-13.9-2.6-16.9-9s-1.5-14.1 3.8-18.8L130.9 116.5z\"]\n};\nconst faShoePrints = {\n prefix: 'fas',\n iconName: 'shoe-prints',\n icon: [640, 512, [], \"f54b\", \"M416 0C352.3 0 256 32 256 32l0 128c48 0 76 16 104 32s56 32 104 32c56.4 0 176-16 176-96S512 0 416 0zM128 96c0 35.3 28.7 64 64 64l32 0 0-128-32 0c-35.3 0-64 28.7-64 64zM288 512c96 0 224-48 224-128s-119.6-96-176-96c-48 0-76 16-104 32s-56 32-104 32l0 128s96.3 32 160 32zM0 416c0 35.3 28.7 64 64 64l32 0 0-128-32 0c-35.3 0-64 28.7-64 64z\"]\n};\nconst faCirclePlus = {\n prefix: 'fas',\n iconName: 'circle-plus',\n icon: [512, 512, [\"plus-circle\"], \"f055\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM232 344l0-64-64 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l64 0 0-64c0-13.3 10.7-24 24-24s24 10.7 24 24l0 64 64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-64 0 0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24z\"]\n};\nconst faPlusCircle = faCirclePlus;\nconst faFaceGrinTongueWink = {\n prefix: 'fas',\n iconName: 'face-grin-tongue-wink',\n icon: [512, 512, [128540, \"grin-tongue-wink\"], \"f58b\", \"M174.5 498.8C73.1 464.7 0 368.9 0 256C0 114.6 114.6 0 256 0S512 114.6 512 256c0 112.9-73.1 208.7-174.5 242.8C346.7 484 352 466.6 352 448l0-46.9c24.3-17.5 43.6-41.6 55.4-69.6c5-11.8-7-22.5-19.3-18.7c-39.7 12.2-84.5 19-131.8 19s-92.1-6.8-131.8-19c-12.3-3.8-24.3 6.9-19.3 18.7c11.7 27.8 30.8 51.7 54.8 69.2l0 47.3c0 18.6 5.3 36 14.5 50.8zm20.7-265.2c5.3 7.1 15.3 8.5 22.4 3.2s8.5-15.3 3.2-22.4c-30.4-40.5-91.2-40.5-121.6 0c-5.3 7.1-3.9 17.1 3.2 22.4s17.1 3.9 22.4-3.2c17.6-23.5 52.8-23.5 70.4 0zM336 272a64 64 0 1 0 0-128 64 64 0 1 0 0 128zM320 402.6l0 45.4c0 35.3-28.7 64-64 64s-64-28.7-64-64l0-45.4c0-14.7 11.9-26.6 26.6-26.6l2 0c11.3 0 21.1 7.9 23.6 18.9c2.8 12.6 20.8 12.6 23.6 0c2.5-11.1 12.3-18.9 23.6-18.9l2 0c14.7 0 26.6 11.9 26.6 26.6zM336 184a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nconst faGrinTongueWink = faFaceGrinTongueWink;\nconst faHandHolding = {\n prefix: 'fas',\n iconName: 'hand-holding',\n icon: [576, 512, [], \"f4bd\", \"M559.7 392.2c17.8-13.1 21.6-38.1 8.5-55.9s-38.1-21.6-55.9-8.5L392.6 416 272 416c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0-16 0-78.3 0c-29.1 0-57.3 9.9-80 28L68.8 384 32 384c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l160 0 160.5 0c29 0 57.3-9.3 80.7-26.5l126.6-93.3zm-367-8.2c.3 0 .6 0 .9 0c0 0 0 0 0 0c-.3 0-.6 0-.9 0z\"]\n};\nconst faPlugCircleExclamation = {\n prefix: 'fas',\n iconName: 'plug-circle-exclamation',\n icon: [576, 512, [], \"e55d\", \"M96 0C78.3 0 64 14.3 64 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c0 77.4 55 142 128 156.8l0 67.2c0 17.7 14.3 32 32 32s32-14.3 32-32l0-67.2c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32L32 160zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"]\n};\nconst faLinkSlash = {\n prefix: 'fas',\n iconName: 'link-slash',\n icon: [640, 512, [\"chain-broken\", \"chain-slash\", \"unlink\"], \"f127\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L489.3 358.2l90.5-90.5c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114l-96 96-31.9-25C430.9 239.6 420.1 175.1 377 132c-52.2-52.3-134.5-56.2-191.3-11.7L38.8 5.1zM239 162c30.1-14.9 67.7-9.9 92.8 15.3c20 20 27.5 48.3 21.7 74.5L239 162zM406.6 416.4L220.9 270c-2.1 39.8 12.2 80.1 42.2 110c38.9 38.9 94.4 51 143.6 36.3zm-290-228.5L60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5l61.8-61.8-50.6-39.9z\"]\n};\nconst faChainBroken = faLinkSlash;\nconst faChainSlash = faLinkSlash;\nconst faUnlink = faLinkSlash;\nconst faClone = {\n prefix: 'fas',\n iconName: 'clone',\n icon: [512, 512, [], \"f24d\", \"M288 448L64 448l0-224 64 0 0-64-64 0c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l224 0c35.3 0 64-28.7 64-64l0-64-64 0 0 64zm-64-96l224 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L224 0c-35.3 0-64 28.7-64 64l0 224c0 35.3 28.7 64 64 64z\"]\n};\nconst faPersonWalkingArrowLoopLeft = {\n prefix: 'fas',\n iconName: 'person-walking-arrow-loop-left',\n icon: [640, 512, [], \"e551\", \"M208 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM123.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L281 232.7l-15.3-36.8C248.5 154.8 208.3 128 163.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1L68.7 398 9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L116.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zm347.7 119c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L461.3 384l18.7 0c88.4 0 160-71.6 160-160s-71.6-160-160-160L352 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c53 0 96 43 96 96s-43 96-96 96l-18.7 0 25.4-25.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3l80 80z\"]\n};\nconst faArrowUpZA = {\n prefix: 'fas',\n iconName: 'arrow-up-z-a',\n icon: [576, 512, [\"sort-alpha-up-alt\"], \"f882\", \"M183.6 42.4C177.5 35.8 169 32 160 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L128 146.3 128 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-301.7 32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 64c0 17.7 14.3 32 32 32l50.7 0-73.4 73.4c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-50.7 0 73.4-73.4c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8L352 32c-17.7 0-32 14.3-32 32zm96 192c-12.1 0-23.2 6.8-28.6 17.7l-64 128-16 32c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l7.2-14.3 88.4 0 7.2 14.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9l-16-32-64-128C439.2 262.8 428.1 256 416 256zM395.8 400L416 359.6 436.2 400l-40.4 0z\"]\n};\nconst faSortAlphaUpAlt = faArrowUpZA;\nconst faFireFlameCurved = {\n prefix: 'fas',\n iconName: 'fire-flame-curved',\n icon: [384, 512, [\"fire-alt\"], \"f7e4\", \"M153.6 29.9l16-21.3C173.6 3.2 180 0 186.7 0C198.4 0 208 9.6 208 21.3V43.5c0 13.1 5.4 25.7 14.9 34.7L307.6 159C356.4 205.6 384 270.2 384 337.7C384 434 306 512 209.7 512H192C86 512 0 426 0 320v-3.8c0-48.8 19.4-95.6 53.9-130.1l3.5-3.5c4.2-4.2 10-6.6 16-6.6C85.9 176 96 186.1 96 198.6V288c0 35.3 28.7 64 64 64s64-28.7 64-64v-3.9c0-18-7.2-35.3-19.9-48l-38.6-38.6c-24-24-37.5-56.7-37.5-90.7c0-27.7 9-54.8 25.6-76.9z\"]\n};\nconst faFireAlt = faFireFlameCurved;\nconst faTornado = {\n prefix: 'fas',\n iconName: 'tornado',\n icon: [448, 512, [127786], \"f76f\", \"M0 32L0 45.6C0 62.7 1.7 79.6 5 96l352.8 0c3.2-6.9 7.5-13.3 13-18.8l38.6-38.6c4.2-4.2 6.6-10 6.6-16C416 10.1 405.9 0 393.4 0L32 0C14.3 0 0 14.3 0 32zm352.2 96L13.6 128c12.2 35.9 32.3 68.7 58.8 96L412 224l-47.2-62.9c-7.3-9.7-11.6-21.2-12.6-33.1zm-226 138.2l116.4 68.5c8.2 4.8 15.8 10.7 22.5 17.3L445 352c2-9.8 3-19.9 3-30.1c0-23-5.3-45.5-15.3-65.9l-322.5 0c5.2 3.6 10.5 7 16 10.2zM288 384c10.3 21.4 13.8 45.5 9.9 69l-5.9 35.7c-2 12.2 7.4 23.4 19.8 23.4c5.3 0 10.4-2.1 14.2-5.9l78.2-78.2c12.8-12.8 23.1-27.7 30.4-43.9L288 384z\"]\n};\nconst faFileCirclePlus = {\n prefix: 'fas',\n iconName: 'file-circle-plus',\n icon: [576, 512, [58606], \"e494\", \"M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zm48 96a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm16 80c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 48-48 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16s16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-48 0 0-48z\"]\n};\nconst faBookQuran = {\n prefix: 'fas',\n iconName: 'book-quran',\n icon: [448, 512, [\"quran\"], \"f687\", \"M352 0c53 0 96 43 96 96l0 320c0 53-43 96-96 96L64 512l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-64c-17.7 0-32-14.3-32-32L0 32C0 14.3 14.3 0 32 0L64 0 352 0zm0 384L96 384l0 64 256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32zM274.1 150.2l-8.9 21.4-23.1 1.9c-5.7 .5-8 7.5-3.7 11.2L256 199.8l-5.4 22.6c-1.3 5.5 4.7 9.9 9.6 6.9L280 217.2l19.8 12.1c4.9 3 10.9-1.4 9.6-6.9L304 199.8l17.6-15.1c4.3-3.7 2-10.8-3.7-11.2l-23.1-1.9-8.9-21.4c-2.2-5.3-9.6-5.3-11.8 0zM96 192c0 70.7 57.3 128 128 128c25.6 0 49.5-7.5 69.5-20.5c3.2-2.1 4.5-6.2 3.1-9.7s-5.2-5.6-9-4.8c-6.1 1.2-12.5 1.9-19 1.9c-52.4 0-94.9-42.5-94.9-94.9s42.5-94.9 94.9-94.9c6.5 0 12.8 .7 19 1.9c3.8 .8 7.5-1.3 9-4.8s.2-7.6-3.1-9.7C273.5 71.5 249.6 64 224 64C153.3 64 96 121.3 96 192z\"]\n};\nconst faQuran = faBookQuran;\nconst faAnchor = {\n prefix: 'fas',\n iconName: 'anchor',\n icon: [576, 512, [9875], \"f13d\", \"M320 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm21.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80L224 176c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 208-48 0c-53 0-96-43-96-96l0-6.1 7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7 0 6.1c0 88.4 71.6 160 160 160l80 0 80 0c88.4 0 160-71.6 160-160l0-6.1 7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-56-56c-9.4-9.4-24.6-9.4-33.9 0l-56 56c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7 0 6.1c0 53-43 96-96 96l-48 0 0-208 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-10.9 0z\"]\n};\nconst faBorderAll = {\n prefix: 'fas',\n iconName: 'border-all',\n icon: [448, 512, [], \"f84c\", \"M384 96l0 128-128 0 0-128 128 0zm0 192l0 128-128 0 0-128 128 0zM192 224L64 224 64 96l128 0 0 128zM64 288l128 0 0 128L64 416l0-128zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z\"]\n};\nconst faFaceAngry = {\n prefix: 'fas',\n iconName: 'face-angry',\n icon: [512, 512, [128544, \"angry\"], \"f556\", \"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM338.7 395.9c6.6-5.9 7.1-16 1.2-22.6C323.8 355.4 295.7 336 256 336s-67.8 19.4-83.9 37.3c-5.9 6.6-5.4 16.7 1.2 22.6s16.7 5.4 22.6-1.2c11.7-13 31.6-26.7 60.1-26.7s48.4 13.7 60.1 26.7c5.9 6.6 16 7.1 22.6 1.2zM176.4 272c17.7 0 32-14.3 32-32c0-1.5-.1-3-.3-4.4l10.9 3.6c8.4 2.8 17.4-1.7 20.2-10.1s-1.7-17.4-10.1-20.2l-96-32c-8.4-2.8-17.4 1.7-20.2 10.1s1.7 17.4 10.1 20.2l30.7 10.2c-5.8 5.8-9.3 13.8-9.3 22.6c0 17.7 14.3 32 32 32zm192-32c0-8.9-3.6-17-9.5-22.8l30.2-10.1c8.4-2.8 12.9-11.9 10.1-20.2s-11.9-12.9-20.2-10.1l-96 32c-8.4 2.8-12.9 11.9-10.1 20.2s11.9 12.9 20.2 10.1l11.7-3.9c-.2 1.5-.3 3.1-.3 4.7c0 17.7 14.3 32 32 32s32-14.3 32-32z\"]\n};\nconst faAngry = faFaceAngry;\nconst faCookieBite = {\n prefix: 'fas',\n iconName: 'cookie-bite',\n icon: [512, 512, [], \"f564\", \"M257.5 27.6c-.8-5.4-4.9-9.8-10.3-10.6c-22.1-3.1-44.6 .9-64.4 11.4l-74 39.5C89.1 78.4 73.2 94.9 63.4 115L26.7 190.6c-9.8 20.1-13 42.9-9.1 64.9l14.5 82.8c3.9 22.1 14.6 42.3 30.7 57.9l60.3 58.4c16.1 15.6 36.6 25.6 58.7 28.7l83 11.7c22.1 3.1 44.6-.9 64.4-11.4l74-39.5c19.7-10.5 35.6-27 45.4-47.2l36.7-75.5c9.8-20.1 13-42.9 9.1-64.9c-.9-5.3-5.3-9.3-10.6-10.1c-51.5-8.2-92.8-47.1-104.5-97.4c-1.8-7.6-8-13.4-15.7-14.6c-54.6-8.7-97.7-52-106.2-106.8zM208 144a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM144 336a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm224-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nconst faArrowTrendDown = {\n prefix: 'fas',\n iconName: 'arrow-trend-down',\n icon: [576, 512, [], \"e097\", \"M384 352c-17.7 0-32 14.3-32 32s14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-160c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 82.7L342.6 137.4c-12.5-12.5-32.8-12.5-45.3 0L192 242.7 54.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0L320 205.3 466.7 352 384 352z\"]\n};\nconst faRss = {\n prefix: 'fas',\n iconName: 'rss',\n icon: [448, 512, [\"feed\"], \"f09e\", \"M0 64C0 46.3 14.3 32 32 32c229.8 0 416 186.2 416 416c0 17.7-14.3 32-32 32s-32-14.3-32-32C384 253.6 226.4 96 32 96C14.3 96 0 81.7 0 64zM0 416a64 64 0 1 1 128 0A64 64 0 1 1 0 416zM32 160c159.1 0 288 128.9 288 288c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-123.7-100.3-224-224-224c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nconst faFeed = faRss;\nconst faDrawPolygon = {\n prefix: 'fas',\n iconName: 'draw-polygon',\n icon: [448, 512, [], \"f5ee\", \"M96 151.4l0 209.1c9.7 5.6 17.8 13.7 23.4 23.4l209.1 0c0-.1 .1-.2 .1-.3l-4.5-7.9-32-56s0 0 0 0c-1.4 .1-2.8 .1-4.2 .1c-35.3 0-64-28.7-64-64s28.7-64 64-64c1.4 0 2.8 0 4.2 .1c0 0 0 0 0 0l32-56 4.5-7.9-.1-.3-209.1 0c-5.6 9.7-13.7 17.8-23.4 23.4zM384.3 352c35.2 .2 63.7 28.7 63.7 64c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32l-209.1 0c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4l0-209.1C12.9 140.4 0 119.7 0 96C0 60.7 28.7 32 64 32c23.7 0 44.4 12.9 55.4 32l209.1 0c11.1-19.1 31.7-32 55.4-32c35.3 0 64 28.7 64 64c0 35.3-28.5 63.8-63.7 64l-4.5 7.9-32 56-2.3 4c4.2 8.5 6.5 18 6.5 28.1s-2.3 19.6-6.5 28.1l2.3 4 32 56 4.5 7.9z\"]\n};\nconst faScaleBalanced = {\n prefix: 'fas',\n iconName: 'scale-balanced',\n icon: [640, 512, [9878, \"balance-scale\"], \"f24e\", \"M384 32l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L398.4 96c-5.2 25.8-22.9 47.1-46.4 57.3L352 448l160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0 0-294.7c-23.5-10.3-41.2-31.6-46.4-57.3L128 96c-17.7 0-32-14.3-32-32s14.3-32 32-32l128 0c14.6-19.4 37.8-32 64-32s49.4 12.6 64 32zm55.6 288l144.9 0L512 195.8 439.6 320zM512 416c-62.9 0-115.2-34-126-78.9c-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1C627.2 382 574.9 416 512 416zM126.8 195.8L54.4 320l144.9 0L126.8 195.8zM.9 337.1c-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1C242 382 189.7 416 126.8 416S11.7 382 .9 337.1z\"]\n};\nconst faBalanceScale = faScaleBalanced;\nconst faGaugeSimpleHigh = {\n prefix: 'fas',\n iconName: 'gauge-simple-high',\n icon: [512, 512, [61668, \"tachometer\", \"tachometer-fast\"], \"f62a\", \"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm320 96c0-15.9-5.8-30.4-15.3-41.6l76.6-147.4c6.1-11.8 1.5-26.3-10.2-32.4s-26.2-1.5-32.4 10.2L262.1 288.3c-2-.2-4-.3-6.1-.3c-35.3 0-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64z\"]\n};\nconst faTachometer = faGaugeSimpleHigh;\nconst faTachometerFast = faGaugeSimpleHigh;\nconst faShower = {\n prefix: 'fas',\n iconName: 'shower',\n icon: [512, 512, [128703], \"f2cc\", \"M64 131.9C64 112.1 80.1 96 99.9 96c9.5 0 18.6 3.8 25.4 10.5l16.2 16.2c-21 38.9-17.4 87.5 10.9 123L151 247c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0L345 121c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-1.3 1.3c-35.5-28.3-84.2-31.9-123-10.9L170.5 61.3C151.8 42.5 126.4 32 99.9 32C44.7 32 0 76.7 0 131.9L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-316.1zM256 352a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm64 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm64 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm64 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm32-32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nconst faDesktop = {\n prefix: 'fas',\n iconName: 'desktop',\n icon: [576, 512, [128421, 61704, \"desktop-alt\"], \"f390\", \"M64 0C28.7 0 0 28.7 0 64L0 352c0 35.3 28.7 64 64 64l176 0-10.7 32L160 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-69.3 0L336 416l176 0c35.3 0 64-28.7 64-64l0-288c0-35.3-28.7-64-64-64L64 0zM512 64l0 224L64 288 64 64l448 0z\"]\n};\nconst faDesktopAlt = faDesktop;\nconst faM = {\n prefix: 'fas',\n iconName: 'm',\n icon: [448, 512, [109], \"4d\", \"M22.7 33.4c13.5-4.1 28.1 1.1 35.9 12.9L224 294.3 389.4 46.3c7.8-11.7 22.4-17 35.9-12.9S448 49.9 448 64l0 384c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-278.3L250.6 369.8c-5.9 8.9-15.9 14.2-26.6 14.2s-20.7-5.3-26.6-14.2L64 169.7 64 448c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 64C0 49.9 9.2 37.5 22.7 33.4z\"]\n};\nconst faTableList = {\n prefix: 'fas',\n iconName: 'table-list',\n icon: [512, 512, [\"th-list\"], \"f00b\", \"M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm64 0l0 64 64 0 0-64L64 96zm384 0L192 96l0 64 256 0 0-64zM64 224l0 64 64 0 0-64-64 0zm384 0l-256 0 0 64 256 0 0-64zM64 352l0 64 64 0 0-64-64 0zm384 0l-256 0 0 64 256 0 0-64z\"]\n};\nconst faThList = faTableList;\nconst faCommentSms = {\n prefix: 'fas',\n iconName: 'comment-sms',\n icon: [512, 512, [\"sms\"], \"f7cd\", \"M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0s0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zM96 212.8c0-20.3 16.5-36.8 36.8-36.8l19.2 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-19.2 0c-2.7 0-4.8 2.2-4.8 4.8c0 1.6 .8 3.1 2.2 4l29.4 19.6c10.3 6.8 16.4 18.3 16.4 30.7c0 20.3-16.5 36.8-36.8 36.8L112 304c-8.8 0-16-7.2-16-16s7.2-16 16-16l27.2 0c2.7 0 4.8-2.2 4.8-4.8c0-1.6-.8-3.1-2.2-4l-29.4-19.6C102.2 236.7 96 225.2 96 212.8zM372.8 176l19.2 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-19.2 0c-2.7 0-4.8 2.2-4.8 4.8c0 1.6 .8 3.1 2.2 4l29.4 19.6c10.2 6.8 16.4 18.3 16.4 30.7c0 20.3-16.5 36.8-36.8 36.8L352 304c-8.8 0-16-7.2-16-16s7.2-16 16-16l27.2 0c2.7 0 4.8-2.2 4.8-4.8c0-1.6-.8-3.1-2.2-4l-29.4-19.6c-10.2-6.8-16.4-18.3-16.4-30.7c0-20.3 16.5-36.8 36.8-36.8zm-152 6.4L256 229.3l35.2-46.9c4.1-5.5 11.3-7.8 17.9-5.6s10.9 8.3 10.9 15.2l0 96c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48-19.2 25.6c-3 4-7.8 6.4-12.8 6.4s-9.8-2.4-12.8-6.4L224 240l0 48c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-6.9 4.4-13 10.9-15.2s13.7 .1 17.9 5.6z\"]\n};\nconst faSms = faCommentSms;\nconst faBook = {\n prefix: 'fas',\n iconName: 'book',\n icon: [448, 512, [128212], \"f02d\", \"M96 0C43 0 0 43 0 96L0 416c0 53 43 96 96 96l288 0 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-64c17.7 0 32-14.3 32-32l0-320c0-17.7-14.3-32-32-32L384 0 96 0zm0 384l256 0 0 64L96 448c-17.7 0-32-14.3-32-32s14.3-32 32-32zm32-240c0-8.8 7.2-16 16-16l192 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16zm16 48l192 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nconst faUserPlus = {\n prefix: 'fas',\n iconName: 'user-plus',\n icon: [640, 512, [], \"f234\", \"M96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM0 482.3C0 383.8 79.8 304 178.3 304l91.4 0C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7L29.7 512C13.3 512 0 498.7 0 482.3zM504 312l0-64-64 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l64 0 0-64c0-13.3 10.7-24 24-24s24 10.7 24 24l0 64 64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-64 0 0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24z\"]\n};\nconst faCheck = {\n prefix: 'fas',\n iconName: 'check',\n icon: [448, 512, [10003, 10004], \"f00c\", \"M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z\"]\n};\nconst faBatteryThreeQuarters = {\n prefix: 'fas',\n iconName: 'battery-three-quarters',\n icon: [576, 512, [\"battery-4\"], \"f241\", \"M464 160c8.8 0 16 7.2 16 16l0 160c0 8.8-7.2 16-16 16L80 352c-8.8 0-16-7.2-16-16l0-160c0-8.8 7.2-16 16-16l384 0zM80 96C35.8 96 0 131.8 0 176L0 336c0 44.2 35.8 80 80 80l384 0c44.2 0 80-35.8 80-80l0-16c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l0-16c0-44.2-35.8-80-80-80L80 96zm272 96L96 192l0 128 256 0 0-128z\"]\n};\nconst faBattery4 = faBatteryThreeQuarters;\nconst faHouseCircleCheck = {\n prefix: 'fas',\n iconName: 'house-circle-check',\n icon: [640, 512, [], \"e509\", \"M320.7 352c8.1-89.7 83.5-160 175.3-160c8.9 0 17.6 .7 26.1 1.9L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1l32 0 0 69.7c-.1 .9-.1 1.8-.1 2.8l0 112c0 22.1 17.9 40 40 40l16 0c1.2 0 2.4-.1 3.6-.2c1.5 .1 3 .2 4.5 .2l31.9 0 24 0c22.1 0 40-17.9 40-40l0-24 0-64c0-17.7 14.3-32 32-32l64 0 .7 0zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"]\n};\nconst faAngleLeft = {\n prefix: 'fas',\n iconName: 'angle-left',\n icon: [320, 512, [8249], \"f104\", \"M41.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 256 246.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z\"]\n};\nconst faDiagramSuccessor = {\n prefix: 'fas',\n iconName: 'diagram-successor',\n icon: [512, 512, [], \"e47a\", \"M512 416l0-64c0-35.3-28.7-64-64-64L64 288c-35.3 0-64 28.7-64 64l0 64c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64zM64 160l0-64 144 0 16 0 0 64L64 160zm224 0l0-64 80 0c8.8 0 16 7.2 16 16l0 16-38.1 0c-21.4 0-32.1 25.9-17 41L399 239c9.4 9.4 24.6 9.4 33.9 0L503 169c15.1-15.1 4.4-41-17-41L448 128l0-16c0-44.2-35.8-80-80-80L224 32l-16 0L64 32C28.7 32 0 60.7 0 96l0 64c0 35.3 28.7 64 64 64l160 0c35.3 0 64-28.7 64-64z\"]\n};\nconst faTruckArrowRight = {\n prefix: 'fas',\n iconName: 'truck-arrow-right',\n icon: [640, 512, [], \"e58b\", \"M0 48C0 21.5 21.5 0 48 0L368 0c26.5 0 48 21.5 48 48l0 48 50.7 0c17 0 33.3 6.7 45.3 18.7L589.3 192c12 12 18.7 28.3 18.7 45.3l0 18.7 0 32 0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c0 53-43 96-96 96s-96-43-96-96l-128 0c0 53-43 96-96 96s-96-43-96-96l-16 0c-26.5 0-48-21.5-48-48L0 48zM416 256l128 0 0-18.7L466.7 160 416 160l0 96zM160 464a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm368-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM257 95c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l39 39L96 168c-13.3 0-24 10.7-24 24s10.7 24 24 24l166.1 0-39 39c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9L257 95z\"]\n};\nconst faArrowsSplitUpAndLeft = {\n prefix: 'fas',\n iconName: 'arrows-split-up-and-left',\n icon: [512, 512, [], \"e4bc\", \"M246.6 150.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L352 109.3 352 384c0 35.3 28.7 64 64 64l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-70.7 0-128-57.3-128-128c0-35.3-28.7-64-64-64l-114.7 0 41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L109.3 256 224 256c23.3 0 45.2 6.2 64 17.1l0-163.9-41.4 41.4z\"]\n};\nconst faHandFist = {\n prefix: 'fas',\n iconName: 'hand-fist',\n icon: [448, 512, [9994, \"fist-raised\"], \"f6de\", \"M192 0c17.7 0 32 14.3 32 32l0 112-64 0 0-112c0-17.7 14.3-32 32-32zM64 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 80-64 0 0-80zm192 0c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96zm96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm-96 88l0-.6c9.4 5.4 20.3 8.6 32 8.6c13.2 0 25.4-4 35.6-10.8c8.7 24.9 32.5 42.8 60.4 42.8c11.7 0 22.6-3.1 32-8.6l0 8.6c0 52.3-25.1 98.8-64 128l0 96c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-78.4c-17.3-7.9-33.2-18.8-46.9-32.5L69.5 357.5C45.5 333.5 32 300.9 32 267l0-27c0-35.3 28.7-64 64-64l88 0c22.1 0 40 17.9 40 40s-17.9 40-40 40l-56 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l56 0c39.8 0 72-32.2 72-72z\"]\n};\nconst faFistRaised = faHandFist;\nconst faCloudMoon = {\n prefix: 'fas',\n iconName: 'cloud-moon',\n icon: [640, 512, [], \"f6c3\", \"M495.8 0c5.5 0 10.9 .2 16.3 .7c7 .6 12.8 5.7 14.3 12.5s-1.6 13.9-7.7 17.3c-44.4 25.2-74.4 73-74.4 127.8c0 81 65.5 146.6 146.2 146.6c8.6 0 17-.7 25.1-2.1c6.9-1.2 13.8 2.2 17 8.5s1.9 13.8-3.1 18.7c-34.5 33.6-81.7 54.4-133.6 54.4c-9.3 0-18.4-.7-27.4-1.9c-11.2-22.6-29.8-40.9-52.6-51.7c-2.7-58.5-50.3-105.3-109.2-106.7c-1.7-10.4-2.6-21-2.6-31.8C304 86.1 389.8 0 495.8 0zM447.9 431.9c0 44.2-35.8 80-80 80L96 511.9c-53 0-96-43-96-96c0-47.6 34.6-87 80-94.6l0-1.3c0-53 43-96 96-96c34.9 0 65.4 18.6 82.2 46.4c13-9.1 28.8-14.4 45.8-14.4c44.2 0 80 35.8 80 80c0 5.9-.6 11.7-1.9 17.2c37.4 6.7 65.8 39.4 65.8 78.7z\"]\n};\nconst faBriefcase = {\n prefix: 'fas',\n iconName: 'briefcase',\n icon: [512, 512, [128188], \"f0b1\", \"M184 48l144 0c4.4 0 8 3.6 8 8l0 40L176 96l0-40c0-4.4 3.6-8 8-8zm-56 8l0 40L64 96C28.7 96 0 124.7 0 160l0 96 192 0 128 0 192 0 0-96c0-35.3-28.7-64-64-64l-64 0 0-40c0-30.9-25.1-56-56-56L184 0c-30.9 0-56 25.1-56 56zM512 288l-192 0 0 32c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-32L0 288 0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-128z\"]\n};\nconst faPersonFalling = {\n prefix: 'fas',\n iconName: 'person-falling',\n icon: [512, 512, [], \"e546\", \"M288 0c17.7 0 32 14.3 32 32l0 9.8c0 54.6-27.9 104.6-72.5 133.6l.2 .3L304.5 256l87.5 0c15.1 0 29.3 7.1 38.4 19.2l43.2 57.6c10.6 14.1 7.7 34.2-6.4 44.8s-34.2 7.7-44.8-6.4L384 320l-96 0-1.4 0 92.3 142.6c9.6 14.8 5.4 34.6-9.5 44.3s-34.6 5.4-44.3-9.5L164.5 249.2c-2.9 9.2-4.5 19-4.5 29l0 73.8c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-73.8c0-65.1 39.6-123.7 100.1-147.9C232.3 115.8 256 80.8 256 41.8l0-9.8c0-17.7 14.3-32 32-32zM112 32a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"]\n};\nconst faImagePortrait = {\n prefix: 'fas',\n iconName: 'image-portrait',\n icon: [384, 512, [\"portrait\"], \"f3e0\", \"M384 64c0-35.3-28.7-64-64-64L64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384zM128 192a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM80 356.6c0-37.9 30.7-68.6 68.6-68.6l86.9 0c37.9 0 68.6 30.7 68.6 68.6c0 15.1-12.3 27.4-27.4 27.4l-169.1 0C92.3 384 80 371.7 80 356.6z\"]\n};\nconst faPortrait = faImagePortrait;\nconst faUserTag = {\n prefix: 'fas',\n iconName: 'user-tag',\n icon: [640, 512, [], \"f507\", \"M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512l388.6 0c10 0 18.8-4.9 24.2-12.5l-99.2-99.2c-14.9-14.9-23.3-35.1-23.3-56.1l0-33c-15.9-4.7-32.8-7.2-50.3-7.2l-91.4 0zM384 224c-17.7 0-32 14.3-32 32l0 82.7c0 17 6.7 33.3 18.7 45.3L478.1 491.3c18.7 18.7 49.1 18.7 67.9 0l73.4-73.4c18.7-18.7 18.7-49.1 0-67.9L512 242.7c-12-12-28.3-18.7-45.3-18.7L384 224zm24 80a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nconst faRug = {\n prefix: 'fas',\n iconName: 'rug',\n icon: [640, 512, [], \"e569\", \"M24 64l32 0 24 0 0 24 0 88 0 80 0 80 0 88 0 24-24 0-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-40-8 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-32-8 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-32-8 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-40-8 0C10.7 112 0 101.3 0 88S10.7 64 24 64zm88 0l416 0 0 384-416 0 0-384zM640 88c0 13.3-10.7 24-24 24l-8 0 0 40 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 32 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 32 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 40 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0-24 0 0-24 0-88 0-80 0-80 0-88 0-24 24 0 32 0c13.3 0 24 10.7 24 24z\"]\n};\nconst faEarthEurope = {\n prefix: 'fas',\n iconName: 'earth-europe',\n icon: [512, 512, [\"globe-europe\"], \"f7a2\", \"M266.3 48.3L232.5 73.6c-5.4 4-8.5 10.4-8.5 17.1l0 9.1c0 6.8 5.5 12.3 12.3 12.3c2.4 0 4.8-.7 6.8-2.1l41.8-27.9c2-1.3 4.4-2.1 6.8-2.1l1 0c6.2 0 11.3 5.1 11.3 11.3c0 3-1.2 5.9-3.3 8l-19.9 19.9c-5.8 5.8-12.9 10.2-20.7 12.8l-26.5 8.8c-5.8 1.9-9.6 7.3-9.6 13.4c0 3.7-1.5 7.3-4.1 10l-17.9 17.9c-6.4 6.4-9.9 15-9.9 24l0 4.3c0 16.4 13.6 29.7 29.9 29.7c11 0 21.2-6.2 26.1-16l4-8.1c2.4-4.8 7.4-7.9 12.8-7.9c4.5 0 8.7 2.1 11.4 5.7l16.3 21.7c2.1 2.9 5.5 4.5 9.1 4.5c8.4 0 13.9-8.9 10.1-16.4l-1.1-2.3c-3.5-7 0-15.5 7.5-18l21.2-7.1c7.6-2.5 12.7-9.6 12.7-17.6c0-10.3 8.3-18.6 18.6-18.6l29.4 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-20.7 0c-7.2 0-14.2 2.9-19.3 8l-4.7 4.7c-2.1 2.1-3.3 5-3.3 8c0 6.2 5.1 11.3 11.3 11.3l11.3 0c6 0 11.8 2.4 16 6.6l6.5 6.5c1.8 1.8 2.8 4.3 2.8 6.8s-1 5-2.8 6.8l-7.5 7.5C386 262 384 266.9 384 272s2 10 5.7 13.7L408 304c10.2 10.2 24.1 16 38.6 16l7.3 0c6.5-20.2 10-41.7 10-64c0-111.4-87.6-202.4-197.7-207.7zm172 307.9c-3.7-2.6-8.2-4.1-13-4.1c-6 0-11.8-2.4-16-6.6L396 332c-7.7-7.7-18-12-28.9-12c-9.7 0-19.2-3.5-26.6-9.8L314 287.4c-11.6-9.9-26.4-15.4-41.7-15.4l-20.9 0c-12.6 0-25 3.7-35.5 10.7L188.5 301c-17.8 11.9-28.5 31.9-28.5 53.3l0 3.2c0 17 6.7 33.3 18.7 45.3l16 16c8.5 8.5 20 13.3 32 13.3l21.3 0c13.3 0 24 10.7 24 24c0 2.5 .4 5 1.1 7.3c71.3-5.8 132.5-47.6 165.2-107.2zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM187.3 100.7c-6.2-6.2-16.4-6.2-22.6 0l-32 32c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l32-32c6.2-6.2 6.2-16.4 0-22.6z\"]\n};\nconst faGlobeEurope = faEarthEurope;\nconst faCartFlatbedSuitcase = {\n prefix: 'fas',\n iconName: 'cart-flatbed-suitcase',\n icon: [640, 512, [\"luggage-cart\"], \"f59d\", \"M0 32C0 14.3 14.3 0 32 0L48 0c44.2 0 80 35.8 80 80l0 288c0 8.8 7.2 16 16 16l464 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-66.7 0c1.8 5 2.7 10.4 2.7 16c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-5.6 1-11 2.7-16l-197.5 0c1.8 5 2.7 10.4 2.7 16c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-5.6 1-11 2.7-16L144 448c-44.2 0-80-35.8-80-80L64 80c0-8.8-7.2-16-16-16L32 64C14.3 64 0 49.7 0 32zM432 96l0-40c0-4.4-3.6-8-8-8l-80 0c-4.4 0-8 3.6-8 8l0 40 96 0zM288 96l0-40c0-30.9 25.1-56 56-56l80 0c30.9 0 56 25.1 56 56l0 40 0 224-192 0 0-224zM512 320l0-224 16 0c26.5 0 48 21.5 48 48l0 128c0 26.5-21.5 48-48 48l-16 0zM240 96l16 0 0 224-16 0c-26.5 0-48-21.5-48-48l0-128c0-26.5 21.5-48 48-48z\"]\n};\nconst faLuggageCart = faCartFlatbedSuitcase;\nconst faRectangleXmark = {\n prefix: 'fas',\n iconName: 'rectangle-xmark',\n icon: [512, 512, [62164, \"rectangle-times\", \"times-rectangle\", \"window-close\"], \"f410\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM175 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nconst faRectangleTimes = faRectangleXmark;\nconst faTimesRectangle = faRectangleXmark;\nconst faWindowClose = faRectangleXmark;\nconst faBahtSign = {\n prefix: 'fas',\n iconName: 'baht-sign',\n icon: [320, 512, [], \"e0ac\", \"M144 0c-17.7 0-32 14.3-32 32l0 32L37.6 64C16.8 64 0 80.8 0 101.6L0 224l0 41.7L0 288 0 406.3c0 23 18.7 41.7 41.7 41.7l70.3 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c61.9 0 112-50.1 112-112c0-40.1-21.1-75.3-52.7-95.1C280.3 222.6 288 200.2 288 176c0-61.9-50.1-112-112-112l0-32c0-17.7-14.3-32-32-32zM112 128l0 96-48 0 0-96 48 0zm64 96l0-96c26.5 0 48 21.5 48 48s-21.5 48-48 48zm-64 64l0 96-48 0 0-96 48 0zm64 96l0-96 32 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-32 0z\"]\n};\nconst faBookOpen = {\n prefix: 'fas',\n iconName: 'book-open',\n icon: [576, 512, [128214, 128366], \"f518\", \"M249.6 471.5c10.8 3.8 22.4-4.1 22.4-15.5l0-377.4c0-4.2-1.6-8.4-5-11C247.4 52 202.4 32 144 32C93.5 32 46.3 45.3 18.1 56.1C6.8 60.5 0 71.7 0 83.8L0 454.1c0 11.9 12.8 20.2 24.1 16.5C55.6 460.1 105.5 448 144 448c33.9 0 79 14 105.6 23.5zm76.8 0C353 462 398.1 448 432 448c38.5 0 88.4 12.1 119.9 22.6c11.3 3.8 24.1-4.6 24.1-16.5l0-370.3c0-12.1-6.8-23.3-18.1-27.6C529.7 45.3 482.5 32 432 32c-58.4 0-103.4 20-123 35.6c-3.3 2.6-5 6.8-5 11L304 456c0 11.4 11.7 19.3 22.4 15.5z\"]\n};\nconst faBookJournalWhills = {\n prefix: 'fas',\n iconName: 'book-journal-whills',\n icon: [448, 512, [\"journal-whills\"], \"f66a\", \"M0 96C0 43 43 0 96 0L384 0l32 0c17.7 0 32 14.3 32 32l0 320c0 17.7-14.3 32-32 32l0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0L96 512c-53 0-96-43-96-96L0 96zM64 416c0 17.7 14.3 32 32 32l256 0 0-64L96 384c-17.7 0-32 14.3-32 32zm90.4-234.4l-21.2-21.2c-3 10.1-5.1 20.6-5.1 31.6c0 .2 0 .5 .1 .8s.1 .5 .1 .8L165.2 226c2.5 2.1 3.4 5.8 2.3 8.9c-1.3 3-4.1 5.1-7.5 5.1c-1.9-.1-3.8-.8-5.2-2l-23.6-20.6C142.8 267 186.9 304 240 304s97.3-37 108.9-86.6L325.3 238c-1.4 1.2-3.3 2-5.3 2c-2.2-.1-4.4-1.1-6-2.8c-1.2-1.5-1.9-3.4-2-5.2c.1-2.2 1.1-4.4 2.8-6l37.1-32.5c0-.3 0-.5 .1-.8s.1-.5 .1-.8c0-11-2.1-21.5-5.1-31.6l-21.2 21.2c-3.1 3.1-8.1 3.1-11.3 0s-3.1-8.1 0-11.2l26.4-26.5c-8.2-17-20.5-31.7-35.9-42.6c-2.7-1.9-6.2 1.4-5 4.5c8.5 22.4 3.6 48-13 65.6c-3.2 3.4-3.6 8.9-.9 12.7c9.8 14 12.7 31.9 7.5 48.5c-5.9 19.4-22 34.1-41.9 38.3l-1.4-34.3 12.6 8.6c.6 .4 1.5 .6 2.3 .6c1.5 0 2.7-.8 3.5-2s.6-2.8-.1-4L260 225.4l18-3.6c1.8-.4 3.1-2.1 3.1-4s-1.4-3.5-3.1-3.9l-18-3.7 8.5-14.3c.8-1.2 .9-2.9 .1-4.1s-2-2-3.5-2l-.1 0c-.7 .1-1.5 .3-2.1 .7l-14.1 9.6L244 87.9c-.1-2.2-1.9-3.9-4-3.9s-3.9 1.6-4 3.9l-4.6 110.8-12-8.1c-1.5-1.1-3.6-.9-5 .4s-1.6 3.4-.8 5l8.6 14.3-18 3.7c-1.8 .4-3.1 2-3.1 3.9s1.4 3.6 3.1 4l18 3.8-8.6 14.2c-.2 .6-.5 1.4-.5 2c0 1.1 .5 2.1 1.2 3c.8 .6 1.8 1 2.8 1c.7 0 1.6-.2 2.2-.6l10.4-7.1-1.4 32.8c-19.9-4.1-36-18.9-41.9-38.3c-5.1-16.6-2.2-34.4 7.6-48.5c2.7-3.9 2.3-9.3-.9-12.7c-16.6-17.5-21.6-43.1-13.1-65.5c1.2-3.1-2.3-6.4-5-4.5c-15.3 10.9-27.6 25.6-35.8 42.6l26.4 26.5c3.1 3.1 3.1 8.1 0 11.2s-8.1 3.1-11.2 0z\"]\n};\nconst faJournalWhills = faBookJournalWhills;\nconst faHandcuffs = {\n prefix: 'fas',\n iconName: 'handcuffs',\n icon: [640, 512, [], \"e4f8\", \"M240 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM192 48a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm-32 80c17.7 0 32 14.3 32 32l8 0c13.3 0 24 10.7 24 24l0 16c0 1.7-.2 3.4-.5 5.1C280.3 229.6 320 286.2 320 352c0 88.4-71.6 160-160 160S0 440.4 0 352c0-65.8 39.7-122.4 96.5-146.9c-.4-1.6-.5-3.3-.5-5.1l0-16c0-13.3 10.7-24 24-24l8 0c0-17.7 14.3-32 32-32zm0 320a96 96 0 1 0 0-192 96 96 0 1 0 0 192zm192-96c0-25.9-5.1-50.5-14.4-73.1c16.9-32.9 44.8-59.1 78.9-73.9c-.4-1.6-.5-3.3-.5-5.1l0-16c0-13.3 10.7-24 24-24l8 0c0-17.7 14.3-32 32-32s32 14.3 32 32l8 0c13.3 0 24 10.7 24 24l0 16c0 1.7-.2 3.4-.5 5.1C600.3 229.6 640 286.2 640 352c0 88.4-71.6 160-160 160c-62 0-115.8-35.3-142.4-86.9c9.3-22.5 14.4-47.2 14.4-73.1zm224 0a96 96 0 1 0 -192 0 96 96 0 1 0 192 0zM368 0a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm80 48a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nconst faTriangleExclamation = {\n prefix: 'fas',\n iconName: 'triangle-exclamation',\n icon: [512, 512, [9888, \"exclamation-triangle\", \"warning\"], \"f071\", \"M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7 .2 40.1S486.3 480 472 480L40 480c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8 .2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112c0-13.3-10.7-24-24-24zm32 224a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"]\n};\nconst faExclamationTriangle = faTriangleExclamation;\nconst faWarning = faTriangleExclamation;\nconst faDatabase = {\n prefix: 'fas',\n iconName: 'database',\n icon: [448, 512, [], \"f1c0\", \"M448 80l0 48c0 44.2-100.3 80-224 80S0 172.2 0 128L0 80C0 35.8 100.3 0 224 0S448 35.8 448 80zM393.2 214.7c20.8-7.4 39.9-16.9 54.8-28.6L448 288c0 44.2-100.3 80-224 80S0 332.2 0 288L0 186.1c14.9 11.8 34 21.2 54.8 28.6C99.7 230.7 159.5 240 224 240s124.3-9.3 169.2-25.3zM0 346.1c14.9 11.8 34 21.2 54.8 28.6C99.7 390.7 159.5 400 224 400s124.3-9.3 169.2-25.3c20.8-7.4 39.9-16.9 54.8-28.6l0 85.9c0 44.2-100.3 80-224 80S0 476.2 0 432l0-85.9z\"]\n};\nconst faShare = {\n prefix: 'fas',\n iconName: 'share',\n icon: [512, 512, [\"mail-forward\"], \"f064\", \"M307 34.8c-11.5 5.1-19 16.6-19 29.2l0 64-112 0C78.8 128 0 206.8 0 304C0 417.3 81.5 467.9 100.2 478.1c2.5 1.4 5.3 1.9 8.1 1.9c10.9 0 19.7-8.9 19.7-19.7c0-7.5-4.3-14.4-9.8-19.5C108.8 431.9 96 414.4 96 384c0-53 43-96 96-96l96 0 0 64c0 12.6 7.4 24.1 19 29.2s25 3 34.4-5.4l160-144c6.7-6.1 10.6-14.7 10.6-23.8s-3.8-17.7-10.6-23.8l-160-144c-9.4-8.5-22.9-10.6-34.4-5.4z\"]\n};\nconst faMailForward = faShare;\nconst faBottleDroplet = {\n prefix: 'fas',\n iconName: 'bottle-droplet',\n icon: [320, 512, [], \"e4c4\", \"M96 0C82.7 0 72 10.7 72 24s10.7 24 24 24c4.4 0 8 3.6 8 8l0 64.9c0 12.2-7.2 23.1-17.2 30.1C53.7 174.1 32 212.5 32 256l0 192c0 35.3 28.7 64 64 64l128 0c35.3 0 64-28.7 64-64l0-192c0-43.5-21.7-81.9-54.8-105c-10-7-17.2-17.9-17.2-30.1L216 56c0-4.4 3.6-8 8-8c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0s0 0 0 0s0 0 0 0L104 0s0 0 0 0s0 0 0 0L96 0zm64 382c-26.5 0-48-20.1-48-45c0-16.8 22.1-48.1 36.3-66.4c6-7.8 17.5-7.8 23.5 0C185.9 288.9 208 320.2 208 337c0 24.9-21.5 45-48 45z\"]\n};\nconst faMaskFace = {\n prefix: 'fas',\n iconName: 'mask-face',\n icon: [640, 512, [], \"e1d7\", \"M320 64c-27.2 0-53.8 8-76.4 23.1l-37.1 24.8c-15.8 10.5-34.3 16.1-53.3 16.1l-9.2 0-16 0-72 0c-30.9 0-56 25.1-56 56l0 85c0 55.1 37.5 103.1 90.9 116.4l108 27C233.8 435 275.4 448 320 448s86.2-13 121.1-35.5l108-27C602.5 372.1 640 324.1 640 269l0-85c0-30.9-25.1-56-56-56l-72 0-16 0-9.2 0c-19 0-37.5-5.6-53.3-16.1L396.4 87.1C373.8 72 347.2 64 320 64zM132.3 346.3l-29.8-7.4C70.5 330.9 48 302.1 48 269l0-85c0-4.4 3.6-8 8-8l40 0 0 48c0 45.1 13.4 87.2 36.3 122.3zm405.1-7.4l-29.8 7.4c23-35.2 36.3-77.2 36.3-122.3l0-48 40 0c4.4 0 8 3.6 8 8l0 85c0 33-22.5 61.8-54.5 69.9zM192 208c0-8.8 7.2-16 16-16l224 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-224 0c-8.8 0-16-7.2-16-16zm16 48l224 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-224 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm16 80c0-8.8 7.2-16 16-16l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16z\"]\n};\nconst faHillRockslide = {\n prefix: 'fas',\n iconName: 'hill-rockslide',\n icon: [576, 512, [], \"e508\", \"M252.4 103.8l27 48c2.8 5 8.2 8.2 13.9 8.2l53.3 0c5.8 0 11.1-3.1 13.9-8.2l27-48c2.7-4.9 2.7-10.8 0-15.7l-27-48c-2.8-5-8.2-8.2-13.9-8.2l-53.3 0c-5.8 0-11.1 3.1-13.9 8.2l-27 48c-2.7 4.9-2.7 10.8 0 15.7zM68.3 87C43.1 61.8 0 79.7 0 115.3L0 432c0 44.2 35.8 80 80 80l316.7 0c35.6 0 53.5-43.1 28.3-68.3L68.3 87zM504.2 403.6c4.9 2.7 10.8 2.7 15.7 0l48-27c5-2.8 8.2-8.2 8.2-13.9l0-53.3c0-5.8-3.1-11.1-8.2-13.9l-48-27c-4.9-2.7-10.8-2.7-15.7 0l-48 27c-5 2.8-8.2 8.2-8.2 13.9l0 53.3c0 5.8 3.1 11.1 8.2 13.9l48 27zM192 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM384 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nconst faRightLeft = {\n prefix: 'fas',\n iconName: 'right-left',\n icon: [512, 512, [\"exchange-alt\"], \"f362\", \"M32 96l320 0 0-64c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l96 96c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-96 96c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6l0-64L32 160c-17.7 0-32-14.3-32-32s14.3-32 32-32zM480 352c17.7 0 32 14.3 32 32s-14.3 32-32 32l-320 0 0 64c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-96-96c-6-6-9.4-14.1-9.4-22.6s3.4-16.6 9.4-22.6l96-96c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6l0 64 320 0z\"]\n};\nconst faExchangeAlt = faRightLeft;\nconst faPaperPlane = {\n prefix: 'fas',\n iconName: 'paper-plane',\n icon: [512, 512, [61913], \"f1d8\", \"M498.1 5.6c10.1 7 15.4 19.1 13.5 31.2l-64 416c-1.5 9.7-7.4 18.2-16 23s-18.9 5.4-28 1.6L284 427.7l-68.5 74.1c-8.9 9.7-22.9 12.9-35.2 8.1S160 493.2 160 480l0-83.6c0-4 1.5-7.8 4.2-10.8L331.8 202.8c5.8-6.3 5.6-16-.4-22s-15.7-6.4-22-.7L106 360.8 17.7 316.6C7.1 311.3 .3 300.7 0 288.9s5.9-22.8 16.1-28.7l448-256c10.7-6.1 23.9-5.5 34 1.4z\"]\n};\nconst faRoadCircleExclamation = {\n prefix: 'fas',\n iconName: 'road-circle-exclamation',\n icon: [640, 512, [], \"e565\", \"M213.2 32L288 32l0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 74.8 0c27.1 0 51.3 17.1 60.3 42.6l42.7 120.6c-10.9-2.1-22.2-3.2-33.8-3.2c-59.5 0-112.1 29.6-144 74.8l0-42.8c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32c2.3 0 4.6-.3 6.8-.7c-4.5 15.5-6.8 31.8-6.8 48.7c0 5.4 .2 10.7 .7 16l-.7 0c-17.7 0-32 14.3-32 32l0 64L86.6 480C56.5 480 32 455.5 32 425.4c0-6.2 1.1-12.4 3.1-18.2L152.9 74.6C162 49.1 186.1 32 213.2 32zM496 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 240a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm0-192c-8.8 0-16 7.2-16 16l0 80c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80c0-8.8-7.2-16-16-16z\"]\n};\nconst faDungeon = {\n prefix: 'fas',\n iconName: 'dungeon',\n icon: [512, 512, [], \"f6d9\", \"M336.6 156.5c1.3 1.1 2.7 2.2 3.9 3.3c9.3 8.2 23 10.5 33.4 3.6l67.6-45.1c11.4-7.6 14.2-23.2 5.1-33.4C430 66.6 410.9 50.6 389.7 37.6c-11.9-7.3-26.9-1.4-32.1 11.6l-30.5 76.2c-4.5 11.1 .2 23.6 9.5 31.2zM328 36.8c5.1-12.8-1.6-27.4-15-30.5C294.7 2.2 275.6 0 256 0s-38.7 2.2-57 6.4C185.5 9.4 178.8 24 184 36.8l30.3 75.8c4.5 11.3 16.8 17.2 29 16c4.2-.4 8.4-.6 12.7-.6s8.6 .2 12.7 .6c12.1 1.2 24.4-4.7 29-16L328 36.8zM65.5 85c-9.1 10.2-6.3 25.8 5.1 33.4l67.6 45.1c10.3 6.9 24.1 4.6 33.4-3.6c1.3-1.1 2.6-2.3 4-3.3c9.3-7.5 13.9-20.1 9.5-31.2L154.4 49.2c-5.2-12.9-20.3-18.8-32.1-11.6C101.1 50.6 82 66.6 65.5 85zm314 137.1c.9 3.3 1.7 6.6 2.3 10c2.5 13 13 23.9 26.2 23.9l80 0c13.3 0 24.1-10.8 22.9-24c-2.5-27.2-9.3-53.2-19.7-77.3c-5.5-12.9-21.4-16.6-33.1-8.9l-68.6 45.7c-9.8 6.5-13.2 19.2-10 30.5zM53.9 145.8c-11.6-7.8-27.6-4-33.1 8.9C10.4 178.8 3.6 204.8 1.1 232c-1.2 13.2 9.6 24 22.9 24l80 0c13.3 0 23.8-10.8 26.2-23.9c.6-3.4 1.4-6.7 2.3-10c3.1-11.4-.2-24-10-30.5L53.9 145.8zM104 288l-80 0c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24zm304 0c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-80 0zM24 416c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-80 0zm384 0c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-80 0zM272 192c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 272c0 8.8 7.2 16 16 16s16-7.2 16-16l0-272zm-64 32c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 240c0 8.8 7.2 16 16 16s16-7.2 16-16l0-240zm128 0c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 240c0 8.8 7.2 16 16 16s16-7.2 16-16l0-240z\"]\n};\nconst faAlignRight = {\n prefix: 'fas',\n iconName: 'align-right',\n icon: [448, 512, [], \"f038\", \"M448 64c0 17.7-14.3 32-32 32L192 96c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 224c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z\"]\n};\nconst faMoneyBill1Wave = {\n prefix: 'fas',\n iconName: 'money-bill-1-wave',\n icon: [576, 512, [\"money-bill-wave-alt\"], \"f53b\", \"M0 112.5L0 422.3c0 18 10.1 35 27 41.3c87 32.5 174 10.3 261-11.9c79.8-20.3 159.6-40.7 239.3-18.9c23 6.3 48.7-9.5 48.7-33.4l0-309.9c0-18-10.1-35-27-41.3C462 15.9 375 38.1 288 60.3C208.2 80.6 128.4 100.9 48.7 79.1C25.6 72.8 0 88.6 0 112.5zM128 416l-64 0 0-64c35.3 0 64 28.7 64 64zM64 224l0-64 64 0c0 35.3-28.7 64-64 64zM448 352c0-35.3 28.7-64 64-64l0 64-64 0zm64-192c-35.3 0-64-28.7-64-64l64 0 0 64zM384 256c0 61.9-43 112-96 112s-96-50.1-96-112s43-112 96-112s96 50.1 96 112zM252 208c0 9.7 6.9 17.7 16 19.6l0 48.4-4 0c-11 0-20 9-20 20s9 20 20 20l24 0 24 0c11 0 20-9 20-20s-9-20-20-20l-4 0 0-68c0-11-9-20-20-20l-16 0c-11 0-20 9-20 20z\"]\n};\nconst faMoneyBillWaveAlt = faMoneyBill1Wave;\nconst faLifeRing = {\n prefix: 'fas',\n iconName: 'life-ring',\n icon: [512, 512, [], \"f1cd\", \"M367.2 412.5C335.9 434.9 297.5 448 256 448s-79.9-13.1-111.2-35.5l58-58c15.8 8.6 34 13.5 53.3 13.5s37.4-4.9 53.3-13.5l58 58zm90.7 .8c33.8-43.4 54-98 54-157.3s-20.2-113.9-54-157.3c9-12.5 7.9-30.1-3.4-41.3S425.8 45 413.3 54C369.9 20.2 315.3 0 256 0S142.1 20.2 98.7 54c-12.5-9-30.1-7.9-41.3 3.4S45 86.2 54 98.7C20.2 142.1 0 196.7 0 256s20.2 113.9 54 157.3c-9 12.5-7.9 30.1 3.4 41.3S86.2 467 98.7 458c43.4 33.8 98 54 157.3 54s113.9-20.2 157.3-54c12.5 9 30.1 7.9 41.3-3.4s12.4-28.8 3.4-41.3zm-45.5-46.1l-58-58c8.6-15.8 13.5-34 13.5-53.3s-4.9-37.4-13.5-53.3l58-58C434.9 176.1 448 214.5 448 256s-13.1 79.9-35.5 111.2zM367.2 99.5l-58 58c-15.8-8.6-34-13.5-53.3-13.5s-37.4 4.9-53.3 13.5l-58-58C176.1 77.1 214.5 64 256 64s79.9 13.1 111.2 35.5zM157.5 309.3l-58 58C77.1 335.9 64 297.5 64 256s13.1-79.9 35.5-111.2l58 58c-8.6 15.8-13.5 34-13.5 53.3s4.9 37.4 13.5 53.3zM208 256a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z\"]\n};\nconst faHands = {\n prefix: 'fas',\n iconName: 'hands',\n icon: [576, 512, [\"sign-language\", \"signing\"], \"f2a7\", \"M544 160l-.1 72.6c-.1 52.2-24 101-64 133.1c.1-1.9 .1-3.8 .1-5.7l0-8c0-71.8-37-138.6-97.9-176.7l-60.2-37.6c-8.6-5.4-17.9-8.4-27.3-9.4L248.7 48.8c-6.6-11.5-2.7-26.2 8.8-32.8s26.2-2.7 32.8 8.8l78 135.1c3.3 5.7 10.7 7.7 16.4 4.4s7.7-10.7 4.4-16.4l-62-107.4c-6.6-11.5-2.7-26.2 8.8-32.8S362 5 368.6 16.5l68 117.8s0 0 0 0s0 0 0 0l43.3 75L480 160c0-17.7 14.4-32 32-32s32 14.4 32 32zM243.9 88.5L268.5 131c-13.9 4.5-26.4 13.7-34.7 27c-.9 1.4-1.7 2.9-2.5 4.4l-28.9-50c-6.6-11.5-2.7-26.2 8.8-32.8s26.2-2.7 32.8 8.8zm-46.4 63.7l26.8 46.4c.6 6 2.1 11.8 4.3 17.4l-4.7 0-13.3 0s0 0 0 0L179 216l-23-39.8c-6.6-11.5-2.7-26.2 8.8-32.8s26.2-2.7 32.8 8.8zM260.9 175c9.4-15 29.1-19.5 44.1-10.2l60.2 37.6C416.7 234.7 448 291.2 448 352l0 8c0 83.9-68.1 152-152 152l-176 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l92 0c6.6 0 12-5.4 12-12s-5.4-12-12-12L88 440c-13.3 0-24-10.7-24-24s10.7-24 24-24l124 0c6.6 0 12-5.4 12-12s-5.4-12-12-12L56 368c-13.3 0-24-10.7-24-24s10.7-24 24-24l156 0c6.6 0 12-5.4 12-12s-5.4-12-12-12L88 296c-13.3 0-24-10.7-24-24s10.7-24 24-24l136 0s0 0 0 0s0 0 0 0l93.2 0L271 219.1c-15-9.4-19.5-29.1-10.2-44.1z\"]\n};\nconst faSignLanguage = faHands;\nconst faSigning = faHands;\nconst faCalendarDay = {\n prefix: 'fas',\n iconName: 'calendar-day',\n icon: [448, 512, [], \"f783\", \"M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 48 0c26.5 0 48 21.5 48 48l0 48L0 160l0-48C0 85.5 21.5 64 48 64l48 0 0-32c0-17.7 14.3-32 32-32zM0 192l448 0 0 272c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 192zm80 64c-8.8 0-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16l96 0c8.8 0 16-7.2 16-16l0-96c0-8.8-7.2-16-16-16l-96 0z\"]\n};\nconst faWaterLadder = {\n prefix: 'fas',\n iconName: 'water-ladder',\n icon: [576, 512, [\"ladder-water\", \"swimming-pool\"], \"f5c5\", \"M128 127.7C128 74.9 170.9 32 223.7 32c48.3 0 89 36 95 83.9l1 8.2c2.2 17.5-10.2 33.5-27.8 35.7s-33.5-10.2-35.7-27.8l-1-8.2c-2-15.9-15.5-27.8-31.5-27.8c-17.5 0-31.7 14.2-31.7 31.7l0 96.3 192 0 0-96.3C384 74.9 426.9 32 479.7 32c48.3 0 89 36 95 83.9l1 8.2c2.2 17.5-10.2 33.5-27.8 35.7s-33.5-10.2-35.7-27.8l-1-8.2c-2-15.9-15.5-27.8-31.5-27.8c-17.5 0-31.7 14.2-31.7 31.7L448 361c-1.6 1-3.3 2-4.8 3.1c-18 12.4-40.1 20.3-59.2 20.3c0 0 0 0 0 0l0-96.5-192 0 0 96.5c-19 0-41.2-7.9-59.1-20.3c-1.6-1.1-3.2-2.2-4.9-3.1l0-233.3zM306.5 389.9C329 405.4 356.5 416 384 416c26.9 0 55.4-10.8 77.4-26.1c0 0 0 0 0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 469.7 417 480 384 480c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7c0 0 0 0 0 0C136.7 405.2 165.1 416 192 416c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"]\n};\nconst faLadderWater = faWaterLadder;\nconst faSwimmingPool = faWaterLadder;\nconst faArrowsUpDown = {\n prefix: 'fas',\n iconName: 'arrows-up-down',\n icon: [320, 512, [\"arrows-v\"], \"f07d\", \"M182.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L128 109.3l0 293.5L86.6 361.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 402.7l0-293.5 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96z\"]\n};\nconst faArrowsV = faArrowsUpDown;\nconst faFaceGrimace = {\n prefix: 'fas',\n iconName: 'face-grimace',\n icon: [512, 512, [128556, \"grimace\"], \"f57f\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm96-112l-8 0 0-40 55.3 0c-3.8 22.7-23.6 40-47.3 40zm47.3-56L344 344l0-40 8 0c23.8 0 43.5 17.3 47.3 40zM328 344l-64 0 0-40 64 0 0 40zm0 56l-64 0 0-40 64 0 0 40zm-80-96l0 40-64 0 0-40 64 0zm0 56l0 40-64 0 0-40 64 0zm-80-16l-55.3 0c3.8-22.7 23.6-40 47.3-40l8 0 0 40zm0 56l-8 0c-23.8 0-43.5-17.3-47.3-40l55.3 0 0 40zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nconst faGrimace = faFaceGrimace;\nconst faWheelchairMove = {\n prefix: 'fas',\n iconName: 'wheelchair-move',\n icon: [448, 512, [\"wheelchair-alt\"], \"e2ce\", \"M320 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM204.5 121.3c-5.4-2.5-11.7-1.9-16.4 1.7l-40.9 30.7c-14.1 10.6-34.2 7.7-44.8-6.4s-7.7-34.2 6.4-44.8l40.9-30.7c23.7-17.8 55.3-21 82.1-8.4l90.4 42.5c29.1 13.7 36.8 51.6 15.2 75.5L299.1 224l97.4 0c30.3 0 53 27.7 47.1 57.4L415.4 422.3c-3.5 17.3-20.3 28.6-37.7 25.1s-28.6-20.3-25.1-37.7L377 288l-70.3 0c8.6 19.6 13.3 41.2 13.3 64c0 88.4-71.6 160-160 160S0 440.4 0 352s71.6-160 160-160c11.1 0 22 1.1 32.4 3.3l54.2-54.2-42.1-19.8zM160 448a96 96 0 1 0 0-192 96 96 0 1 0 0 192z\"]\n};\nconst faWheelchairAlt = faWheelchairMove;\nconst faTurnDown = {\n prefix: 'fas',\n iconName: 'turn-down',\n icon: [384, 512, [10549, \"level-down-alt\"], \"f3be\", \"M350 334.5c3.8 8.8 2 19-4.6 26l-136 144c-4.5 4.8-10.8 7.5-17.4 7.5s-12.9-2.7-17.4-7.5l-136-144c-6.6-7-8.4-17.2-4.6-26s12.5-14.5 22-14.5l88 0 0-192c0-17.7-14.3-32-32-32L32 96C14.3 96 0 81.7 0 64L0 32C0 14.3 14.3 0 32 0l80 0c70.7 0 128 57.3 128 128l0 192 88 0c9.6 0 18.2 5.7 22 14.5z\"]\n};\nconst faLevelDownAlt = faTurnDown;\nconst faPersonWalkingArrowRight = {\n prefix: 'fas',\n iconName: 'person-walking-arrow-right',\n icon: [640, 512, [], \"e552\", \"M208 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM123.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L281 232.7l-15.3-36.8C248.5 154.8 208.3 128 163.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1L68.7 398 9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L116.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zM550.6 153.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L530.7 224 384 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l146.7 0-25.4 25.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l80-80c12.5-12.5 12.5-32.8 0-45.3l-80-80z\"]\n};\nconst faSquareEnvelope = {\n prefix: 'fas',\n iconName: 'square-envelope',\n icon: [448, 512, [\"envelope-square\"], \"f199\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM218 271.7L64.2 172.4C66 156.4 79.5 144 96 144l256 0c16.5 0 30 12.4 31.8 28.4L230 271.7c-1.8 1.2-3.9 1.8-6 1.8s-4.2-.6-6-1.8zm29.4 26.9L384 210.4 384 336c0 17.7-14.3 32-32 32L96 368c-17.7 0-32-14.3-32-32l0-125.6 136.6 88.2c7 4.5 15.1 6.9 23.4 6.9s16.4-2.4 23.4-6.9z\"]\n};\nconst faEnvelopeSquare = faSquareEnvelope;\nconst faDice = {\n prefix: 'fas',\n iconName: 'dice',\n icon: [640, 512, [127922], \"f522\", \"M274.9 34.3c-28.1-28.1-73.7-28.1-101.8 0L34.3 173.1c-28.1 28.1-28.1 73.7 0 101.8L173.1 413.7c28.1 28.1 73.7 28.1 101.8 0L413.7 274.9c28.1-28.1 28.1-73.7 0-101.8L274.9 34.3zM200 224a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM96 200a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM224 376a24 24 0 1 1 0-48 24 24 0 1 1 0 48zM352 200a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM224 120a24 24 0 1 1 0-48 24 24 0 1 1 0 48zm96 328c0 35.3 28.7 64 64 64l192 0c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64l-114.3 0c11.6 36 3.1 77-25.4 105.5L320 413.8l0 34.2zM480 328a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nconst faBowlingBall = {\n prefix: 'fas',\n iconName: 'bowling-ball',\n icon: [512, 512, [], \"f436\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM240 80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM208 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm-64-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nconst faBrain = {\n prefix: 'fas',\n iconName: 'brain',\n icon: [512, 512, [129504], \"f5dc\", \"M184 0c30.9 0 56 25.1 56 56l0 400c0 30.9-25.1 56-56 56c-28.9 0-52.7-21.9-55.7-50.1c-5.2 1.4-10.7 2.1-16.3 2.1c-35.3 0-64-28.7-64-64c0-7.4 1.3-14.6 3.6-21.2C21.4 367.4 0 338.2 0 304c0-31.9 18.7-59.5 45.8-72.3C37.1 220.8 32 207 32 192c0-30.7 21.6-56.3 50.4-62.6C80.8 123.9 80 118 80 112c0-29.9 20.6-55.1 48.3-62.1C131.3 21.9 155.1 0 184 0zM328 0c28.9 0 52.6 21.9 55.7 49.9c27.8 7 48.3 32.1 48.3 62.1c0 6-.8 11.9-2.4 17.4c28.8 6.2 50.4 31.9 50.4 62.6c0 15-5.1 28.8-13.8 39.7C493.3 244.5 512 272.1 512 304c0 34.2-21.4 63.4-51.6 74.8c2.3 6.6 3.6 13.8 3.6 21.2c0 35.3-28.7 64-64 64c-5.6 0-11.1-.7-16.3-2.1c-3 28.2-26.8 50.1-55.7 50.1c-30.9 0-56-25.1-56-56l0-400c0-30.9 25.1-56 56-56z\"]\n};\nconst faBandage = {\n prefix: 'fas',\n iconName: 'bandage',\n icon: [640, 512, [129657, \"band-aid\"], \"f462\", \"M480 416l96 0c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64l-96 0 0 320zM448 96L192 96l0 320 256 0 0-320zM64 96C28.7 96 0 124.7 0 160L0 352c0 35.3 28.7 64 64 64l96 0 0-320L64 96zM248 208a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm120-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM248 304a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm120-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nconst faBandAid = faBandage;\nconst faCalendarMinus = {\n prefix: 'fas',\n iconName: 'calendar-minus',\n icon: [448, 512, [], \"f272\", \"M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 48 0c26.5 0 48 21.5 48 48l0 48L0 160l0-48C0 85.5 21.5 64 48 64l48 0 0-32c0-17.7 14.3-32 32-32zM0 192l448 0 0 272c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 192zM312 376c13.3 0 24-10.7 24-24s-10.7-24-24-24l-176 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l176 0z\"]\n};\nconst faCircleXmark = {\n prefix: 'fas',\n iconName: 'circle-xmark',\n icon: [512, 512, [61532, \"times-circle\", \"xmark-circle\"], \"f057\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM175 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nconst faTimesCircle = faCircleXmark;\nconst faXmarkCircle = faCircleXmark;\nconst faGifts = {\n prefix: 'fas',\n iconName: 'gifts',\n icon: [640, 512, [], \"f79c\", \"M200.6 32C205 19.5 198.5 5.8 186 1.4S159.8 3.5 155.4 16L144.7 46.2l-9.9-29.8C130.6 3.8 117-3 104.4 1.2S85 19 89.2 31.6l8.3 25-27.4-20c-10.7-7.8-25.7-5.4-33.5 5.3s-5.4 25.7 5.3 33.5L70.2 96 48 96C21.5 96 0 117.5 0 144L0 464c0 26.5 21.5 48 48 48l152.6 0c-5.4-9.4-8.6-20.3-8.6-32l0-224c0-29.9 20.5-55 48.2-62c1.8-31 17.1-58.2 40.1-76.1C271.7 104.7 256.9 96 240 96l-22.2 0 28.3-20.6c10.7-7.8 13.1-22.8 5.3-33.5s-22.8-13.1-33.5-5.3L192.5 55.1 200.6 32zM363.5 185.5L393.1 224 344 224c-13.3 0-24-10.7-24-24c0-13.1 10.8-24 24.2-24c7.6 0 14.7 3.5 19.3 9.5zM272 200c0 8.4 1.4 16.5 4.1 24l-4.1 0c-26.5 0-48 21.5-48 48l0 80 192 0 0-96 32 0 0 96 192 0 0-80c0-26.5-21.5-48-48-48l-4.1 0c2.7-7.5 4.1-15.6 4.1-24c0-39.9-32.5-72-72.2-72c-22.4 0-43.6 10.4-57.3 28.2L432 195.8l-30.5-39.6c-13.7-17.8-35-28.2-57.3-28.2c-39.7 0-72.2 32.1-72.2 72zM224 464c0 26.5 21.5 48 48 48l144 0 0-128-192 0 0 80zm224 48l144 0c26.5 0 48-21.5 48-48l0-80-192 0 0 128zm96-312c0 13.3-10.7 24-24 24l-49.1 0 29.6-38.5c4.6-5.9 11.7-9.5 19.3-9.5c13.4 0 24.2 10.9 24.2 24z\"]\n};\nconst faHotel = {\n prefix: 'fas',\n iconName: 'hotel',\n icon: [512, 512, [127976], \"f594\", \"M0 32C0 14.3 14.3 0 32 0L480 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 384c17.7 0 32 14.3 32 32s-14.3 32-32 32l-176 0 0-48c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 48L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32L32 64C14.3 64 0 49.7 0 32zm96 80l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM240 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM112 192c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM328 384c13.3 0 24.3-10.9 21-23.8c-10.6-41.5-48.2-72.2-93-72.2s-82.5 30.7-93 72.2c-3.3 12.8 7.8 23.8 21 23.8l144 0z\"]\n};\nconst faEarthAsia = {\n prefix: 'fas',\n iconName: 'earth-asia',\n icon: [512, 512, [127759, \"globe-asia\"], \"f57e\", \"M51.7 295.1l31.7 6.3c7.9 1.6 16-.9 21.7-6.6l15.4-15.4c11.6-11.6 31.1-8.4 38.4 6.2l9.3 18.5c4.8 9.6 14.6 15.7 25.4 15.7c15.2 0 26.1-14.6 21.7-29.2l-6-19.9c-4.6-15.4 6.9-30.9 23-30.9l2.3 0c13.4 0 25.9-6.7 33.3-17.8l10.7-16.1c5.6-8.5 5.3-19.6-.8-27.7l-16.1-21.5c-10.3-13.7-3.3-33.5 13.4-37.7l17-4.3c7.5-1.9 13.6-7.2 16.5-14.4l16.4-40.9C303.4 52.1 280.2 48 256 48C141.1 48 48 141.1 48 256c0 13.4 1.3 26.5 3.7 39.1zm407.7 4.6c-3-.3-6-.1-9 .8l-15.8 4.4c-6.7 1.9-13.8-.9-17.5-6.7l-2-3.1c-6-9.4-16.4-15.1-27.6-15.1s-21.6 5.7-27.6 15.1l-6.1 9.5c-1.4 2.2-3.4 4.1-5.7 5.3L312 330.1c-18.1 10.1-25.5 32.4-17 51.3l5.5 12.4c8.6 19.2 30.7 28.5 50.5 21.1l2.6-1c10-3.7 21.3-2.2 29.9 4.1l1.5 1.1c37.2-29.5 64.1-71.4 74.4-119.5zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm144.5 92.1c-2.1 8.6 3.1 17.3 11.6 19.4l32 8c8.6 2.1 17.3-3.1 19.4-11.6s-3.1-17.3-11.6-19.4l-32-8c-8.6-2.1-17.3 3.1-19.4 11.6zm92-20c-2.1 8.6 3.1 17.3 11.6 19.4s17.3-3.1 19.4-11.6l8-32c2.1-8.6-3.1-17.3-11.6-19.4s-17.3 3.1-19.4 11.6l-8 32zM343.2 113.7c-7.9-4-17.5-.7-21.5 7.2l-16 32c-4 7.9-.7 17.5 7.2 21.5s17.5 .7 21.5-7.2l16-32c4-7.9 .7-17.5-7.2-21.5z\"]\n};\nconst faGlobeAsia = faEarthAsia;\nconst faIdCardClip = {\n prefix: 'fas',\n iconName: 'id-card-clip',\n icon: [576, 512, [\"id-card-alt\"], \"f47f\", \"M256 0l64 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zM64 64l128 0 0 48c0 26.5 21.5 48 48 48l96 0c26.5 0 48-21.5 48-48l0-48 128 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64zM176 437.3c0 5.9 4.8 10.7 10.7 10.7l202.7 0c5.9 0 10.7-4.8 10.7-10.7c0-29.5-23.9-53.3-53.3-53.3l-117.3 0c-29.5 0-53.3 23.9-53.3 53.3zM288 352a64 64 0 1 0 0-128 64 64 0 1 0 0 128z\"]\n};\nconst faIdCardAlt = faIdCardClip;\nconst faMagnifyingGlassPlus = {\n prefix: 'fas',\n iconName: 'magnifying-glass-plus',\n icon: [512, 512, [\"search-plus\"], \"f00e\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM184 296c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64 64 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-64 0 0-64c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 64-64 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l64 0 0 64z\"]\n};\nconst faSearchPlus = faMagnifyingGlassPlus;\nconst faThumbsUp = {\n prefix: 'fas',\n iconName: 'thumbs-up',\n icon: [512, 512, [128077, 61575], \"f164\", \"M313.4 32.9c26 5.2 42.9 30.5 37.7 56.5l-2.3 11.4c-5.3 26.7-15.1 52.1-28.8 75.2l144 0c26.5 0 48 21.5 48 48c0 18.5-10.5 34.6-25.9 42.6C497 275.4 504 288.9 504 304c0 23.4-16.8 42.9-38.9 47.1c4.4 7.3 6.9 15.8 6.9 24.9c0 21.3-13.9 39.4-33.1 45.6c.7 3.3 1.1 6.8 1.1 10.4c0 26.5-21.5 48-48 48l-97.5 0c-19 0-37.5-5.6-53.3-16.1l-38.5-25.7C176 420.4 160 390.4 160 358.3l0-38.3 0-48 0-24.9c0-29.2 13.3-56.7 36-75l7.4-5.9c26.5-21.2 44.6-51 51.2-84.2l2.3-11.4c5.2-26 30.5-42.9 56.5-37.7zM32 192l64 0c17.7 0 32 14.3 32 32l0 224c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32L0 224c0-17.7 14.3-32 32-32z\"]\n};\nconst faUserClock = {\n prefix: 'fas',\n iconName: 'user-clock',\n icon: [640, 512, [], \"f4fd\", \"M224 0a128 128 0 1 1 0 256A128 128 0 1 1 224 0zM178.3 304l91.4 0c20.6 0 40.4 3.5 58.8 9.9C323 331 320 349.1 320 368c0 59.5 29.5 112.1 74.8 144L29.7 512C13.3 512 0 498.7 0 482.3C0 383.8 79.8 304 178.3 304zM352 368a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm144-80c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0 0-48c0-8.8-7.2-16-16-16z\"]\n};\nconst faHandDots = {\n prefix: 'fas',\n iconName: 'hand-dots',\n icon: [512, 512, [\"allergies\"], \"f461\", \"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 208c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-176c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 272c0 1.5 0 3.1 .1 4.6L67.6 283c-16-15.2-41.3-14.6-56.6 1.4s-14.6 41.3 1.4 56.6L124.8 448c43.1 41.1 100.4 64 160 64l19.2 0c97.2 0 176-78.8 176-176l0-208c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 112c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-176c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 176c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-208zM240 336a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm80 16a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm48-16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm-16 80a16 16 0 1 1 0 32 16 16 0 1 1 0-32zM240 432a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm-48-48a16 16 0 1 1 0 32 16 16 0 1 1 0-32z\"]\n};\nconst faAllergies = faHandDots;\nconst faFileInvoice = {\n prefix: 'fas',\n iconName: 'file-invoice',\n icon: [384, 512, [], \"f570\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM80 64l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L80 96c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm16 96l192 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32L96 352c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zm0 32l0 64 192 0 0-64L96 256zM240 416l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nconst faWindowMinimize = {\n prefix: 'fas',\n iconName: 'window-minimize',\n icon: [512, 512, [128469], \"f2d1\", \"M32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l448 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 416z\"]\n};\nconst faMugSaucer = {\n prefix: 'fas',\n iconName: 'mug-saucer',\n icon: [640, 512, [\"coffee\"], \"f0f4\", \"M96 64c0-17.7 14.3-32 32-32l320 0 64 0c70.7 0 128 57.3 128 128s-57.3 128-128 128l-32 0c0 53-43 96-96 96l-192 0c-53 0-96-43-96-96L96 64zM480 224l32 0c35.3 0 64-28.7 64-64s-28.7-64-64-64l-32 0 0 128zM32 416l512 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nconst faCoffee = faMugSaucer;\nconst faBrush = {\n prefix: 'fas',\n iconName: 'brush',\n icon: [384, 512, [], \"f55d\", \"M162.4 6c-1.5-3.6-5-6-8.9-6l-19 0c-3.9 0-7.5 2.4-8.9 6L104.9 57.7c-3.2 8-14.6 8-17.8 0L66.4 6c-1.5-3.6-5-6-8.9-6L48 0C21.5 0 0 21.5 0 48L0 224l0 22.4L0 256l9.6 0 364.8 0 9.6 0 0-9.6 0-22.4 0-176c0-26.5-21.5-48-48-48L230.5 0c-3.9 0-7.5 2.4-8.9 6L200.9 57.7c-3.2 8-14.6 8-17.8 0L162.4 6zM0 288l0 32c0 35.3 28.7 64 64 64l64 0 0 64c0 35.3 28.7 64 64 64s64-28.7 64-64l0-64 64 0c35.3 0 64-28.7 64-64l0-32L0 288zM192 432a16 16 0 1 1 0 32 16 16 0 1 1 0-32z\"]\n};\nconst faMask = {\n prefix: 'fas',\n iconName: 'mask',\n icon: [576, 512, [], \"f6fa\", \"M288 64C64 64 0 160 0 272S80 448 176 448l8.4 0c24.2 0 46.4-13.7 57.2-35.4l23.2-46.3c4.4-8.8 13.3-14.3 23.2-14.3s18.8 5.5 23.2 14.3l23.2 46.3c10.8 21.7 33 35.4 57.2 35.4l8.4 0c96 0 176-64 176-176s-64-208-288-208zM96 256a64 64 0 1 1 128 0A64 64 0 1 1 96 256zm320-64a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"]\n};\nconst faMagnifyingGlassMinus = {\n prefix: 'fas',\n iconName: 'magnifying-glass-minus',\n icon: [512, 512, [\"search-minus\"], \"f010\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM136 184c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"]\n};\nconst faSearchMinus = faMagnifyingGlassMinus;\nconst faRulerVertical = {\n prefix: 'fas',\n iconName: 'ruler-vertical',\n icon: [256, 512, [], \"f548\", \"M0 48C0 21.5 21.5 0 48 0L208 0c26.5 0 48 21.5 48 48l0 48-80 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l80 0 0 64-80 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l80 0 0 64-80 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l80 0 0 64-80 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l80 0 0 48c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 48z\"]\n};\nconst faUserLarge = {\n prefix: 'fas',\n iconName: 'user-large',\n icon: [512, 512, [\"user-alt\"], \"f406\", \"M256 288A144 144 0 1 0 256 0a144 144 0 1 0 0 288zm-94.7 32C72.2 320 0 392.2 0 481.3c0 17 13.8 30.7 30.7 30.7l450.6 0c17 0 30.7-13.8 30.7-30.7C512 392.2 439.8 320 350.7 320l-189.4 0z\"]\n};\nconst faUserAlt = faUserLarge;\nconst faTrainTram = {\n prefix: 'fas',\n iconName: 'train-tram',\n icon: [448, 512, [128650], \"e5b4\", \"M86.8 48c-12.2 0-23.6 5.5-31.2 15L42.7 79C34.5 89.3 19.4 91 9 82.7S-3 59.4 5.3 49L18 33C34.7 12.2 60 0 86.8 0L361.2 0c26.7 0 52 12.2 68.7 33l12.8 16c8.3 10.4 6.6 25.5-3.8 33.7s-25.5 6.6-33.7-3.7L392.5 63c-7.6-9.5-19.1-15-31.2-15L248 48l0 48 40 0c53 0 96 43 96 96l0 160c0 30.6-14.3 57.8-36.6 75.4l65.5 65.5c7.1 7.1 2.1 19.1-7.9 19.1l-39.7 0c-8.5 0-16.6-3.4-22.6-9.4L288 448l-128 0-54.6 54.6c-6 6-14.1 9.4-22.6 9.4L43 512c-10 0-15-12.1-7.9-19.1l65.5-65.5C78.3 409.8 64 382.6 64 352l0-160c0-53 43-96 96-96l40 0 0-48L86.8 48zM160 160c-17.7 0-32 14.3-32 32l0 32c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-32c0-17.7-14.3-32-32-32l-128 0zm32 192a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nconst faUserNurse = {\n prefix: 'fas',\n iconName: 'user-nurse',\n icon: [448, 512, [], \"f82f\", \"M96 128l0-57.8c0-13.3 8.3-25.3 20.8-30l96-36c7.2-2.7 15.2-2.7 22.5 0l96 36c12.5 4.7 20.8 16.6 20.8 30l0 57.8-.3 0c.2 2.6 .3 5.3 .3 8l0 40c0 70.7-57.3 128-128 128s-128-57.3-128-128l0-40c0-2.7 .1-5.4 .3-8l-.3 0zm48 48c0 44.2 35.8 80 80 80s80-35.8 80-80l0-16-160 0 0 16zM111.9 327.7c10.5-3.4 21.8 .4 29.4 8.5l71 75.5c6.3 6.7 17 6.7 23.3 0l71-75.5c7.6-8.1 18.9-11.9 29.4-8.5C401 348.6 448 409.4 448 481.3c0 17-13.8 30.7-30.7 30.7L30.7 512C13.8 512 0 498.2 0 481.3c0-71.9 47-132.7 111.9-153.6zM208 48l0 16-16 0c-4.4 0-8 3.6-8 8l0 16c0 4.4 3.6 8 8 8l16 0 0 16c0 4.4 3.6 8 8 8l16 0c4.4 0 8-3.6 8-8l0-16 16 0c4.4 0 8-3.6 8-8l0-16c0-4.4-3.6-8-8-8l-16 0 0-16c0-4.4-3.6-8-8-8l-16 0c-4.4 0-8 3.6-8 8z\"]\n};\nconst faSyringe = {\n prefix: 'fas',\n iconName: 'syringe',\n icon: [512, 512, [128137], \"f48e\", \"M441 7l32 32 32 32c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-15-15L417.9 128l55 55c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-72-72L295 73c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l55 55L422.1 56 407 41c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0zM210.3 155.7l61.1-61.1c.3 .3 .6 .7 1 1l16 16 56 56 56 56 16 16c.3 .3 .6 .6 1 1l-191 191c-10.5 10.5-24.7 16.4-39.6 16.4l-88.8 0L41 505c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l57-57 0-88.8c0-14.9 5.9-29.1 16.4-39.6l43.3-43.3 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57 41.4-41.4 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57z\"]\n};\nconst faCloudSun = {\n prefix: 'fas',\n iconName: 'cloud-sun',\n icon: [640, 512, [9925], \"f6c4\", \"M294.2 1.2c5.1 2.1 8.7 6.7 9.6 12.1l14.1 84.7 84.7 14.1c5.4 .9 10 4.5 12.1 9.6s1.5 10.9-1.6 15.4l-38.5 55c-2.2-.1-4.4-.2-6.7-.2c-23.3 0-45.1 6.2-64 17.1l0-1.1c0-53-43-96-96-96s-96 43-96 96s43 96 96 96c8.1 0 15.9-1 23.4-2.9c-36.6 18.1-63.3 53.1-69.8 94.9l-24.4 17c-4.5 3.2-10.3 3.8-15.4 1.6s-8.7-6.7-9.6-12.1L98.1 317.9 13.4 303.8c-5.4-.9-10-4.5-12.1-9.6s-1.5-10.9 1.6-15.4L52.5 208 2.9 137.2c-3.2-4.5-3.8-10.3-1.6-15.4s6.7-8.7 12.1-9.6L98.1 98.1l14.1-84.7c.9-5.4 4.5-10 9.6-12.1s10.9-1.5 15.4 1.6L208 52.5 278.8 2.9c4.5-3.2 10.3-3.8 15.4-1.6zM144 208a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM639.9 431.9c0 44.2-35.8 80-80 80l-271.9 0c-53 0-96-43-96-96c0-47.6 34.6-87 80-94.6l0-1.3c0-53 43-96 96-96c34.9 0 65.4 18.6 82.2 46.4c13-9.1 28.8-14.4 45.8-14.4c44.2 0 80 35.8 80 80c0 5.9-.6 11.7-1.9 17.2c37.4 6.7 65.8 39.4 65.8 78.7z\"]\n};\nconst faStopwatch20 = {\n prefix: 'fas',\n iconName: 'stopwatch-20',\n icon: [448, 512, [], \"e06f\", \"M176 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l16 0 0 34.4C92.3 113.8 16 200 16 304c0 114.9 93.1 208 208 208s208-93.1 208-208c0-41.8-12.3-80.7-33.5-113.2l24.1-24.1c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L355.7 143c-28.1-23-62.2-38.8-99.7-44.6L256 64l16 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L176 0zM288 204c28.7 0 52 23.3 52 52l0 96c0 28.7-23.3 52-52 52s-52-23.3-52-52l0-96c0-28.7 23.3-52 52-52zm-12 52l0 96c0 6.6 5.4 12 12 12s12-5.4 12-12l0-96c0-6.6-5.4-12-12-12s-12 5.4-12 12zM159.5 244c-5.4 0-10.2 3.5-11.9 8.6l-.6 1.7c-3.5 10.5-14.8 16.1-25.3 12.6s-16.1-14.8-12.6-25.3l.6-1.7c7.2-21.5 27.2-35.9 49.8-35.9c29 0 52.5 23.5 52.5 52.5l0 2.2c0 13.4-4.9 26.4-13.8 36.4l-39 43.9c-6.2 7-10 15.7-10.9 24.9l43.8 0c11 0 20 9 20 20s-9 20-20 20l-64 0c-11 0-20-9-20-20l0-15.7c0-20.6 7.5-40.4 21.2-55.8l39-43.9c2.4-2.7 3.7-6.2 3.7-9.8l0-2.2c0-6.9-5.6-12.5-12.5-12.5z\"]\n};\nconst faSquareFull = {\n prefix: 'fas',\n iconName: 'square-full',\n icon: [512, 512, [128997, 128998, 128999, 129000, 129001, 129002, 129003, 11035, 11036], \"f45c\", \"M0 0H512V512H0V0z\"]\n};\nconst faMagnet = {\n prefix: 'fas',\n iconName: 'magnet',\n icon: [448, 512, [129522], \"f076\", \"M0 160l0 96C0 379.7 100.3 480 224 480s224-100.3 224-224l0-96-128 0 0 96c0 53-43 96-96 96s-96-43-96-96l0-96L0 160zm0-32l128 0 0-64c0-17.7-14.3-32-32-32L32 32C14.3 32 0 46.3 0 64l0 64zm320 0l128 0 0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32l0 64z\"]\n};\nconst faJar = {\n prefix: 'fas',\n iconName: 'jar',\n icon: [320, 512, [], \"e516\", \"M32 32C32 14.3 46.3 0 64 0L256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 64C46.3 64 32 49.7 32 32zM0 160c0-35.3 28.7-64 64-64l192 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 160zm96 64c-17.7 0-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-96c0-17.7-14.3-32-32-32L96 224z\"]\n};\nconst faNoteSticky = {\n prefix: 'fas',\n iconName: 'note-sticky',\n icon: [448, 512, [62026, \"sticky-note\"], \"f249\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l224 0 0-112c0-26.5 21.5-48 48-48l112 0 0-224c0-35.3-28.7-64-64-64L64 32zM448 352l-45.3 0L336 352c-8.8 0-16 7.2-16 16l0 66.7 0 45.3 32-32 64-64 32-32z\"]\n};\nconst faStickyNote = faNoteSticky;\nconst faBugSlash = {\n prefix: 'fas',\n iconName: 'bug-slash',\n icon: [640, 512, [], \"e490\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L477.4 348.9c1.7-9.4 2.6-19 2.6-28.9l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64.3 0c-1.1-14.1-5-27.5-11.1-39.5c.7-.6 1.4-1.2 2.1-1.9l64-64c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-64 64c-.7 .7-1.3 1.4-1.9 2.1C409.2 164.1 393.1 160 376 160l-112 0c-8.3 0-16.3 1-24 2.8L38.8 5.1zM320 0c-53 0-96 43-96 96l0 3.6c0 15.7 12.7 28.4 28.4 28.4l135.1 0c15.7 0 28.4-12.7 28.4-28.4l0-3.6c0-53-43-96-96-96zM160.3 256L96 256c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c0 24.6 5.5 47.8 15.4 68.6c-2.2 1.3-4.2 2.9-6 4.8l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l63.1-63.1c24.5 21.8 55.8 36.2 90.3 39.6l0-143.7L166.7 227.3c-3.4 9-5.6 18.7-6.4 28.7zM336 479.2c36.6-3.6 69.7-19.6 94.8-43.8L336 360.7l0 118.5z\"]\n};\nconst faArrowUpFromWaterPump = {\n prefix: 'fas',\n iconName: 'arrow-up-from-water-pump',\n icon: [576, 512, [], \"e4b6\", \"M112 0C85.5 0 64 21.5 64 48l0 208-16 0c-26.5 0-48 21.5-48 48l0 96c0 8 2 15.6 5.4 22.2c3.8-1.7 7.8-3.1 12-4.1c13.1-3.1 26.7-9.8 37.3-18.6c22.2-18.7 54.3-20.1 78.1-3.4c18 12.4 40.1 20.3 59.2 20.3c21.1 0 42-8.5 59.2-20.3c22.1-15.5 51.6-15.5 73.7 0c18.4 12.7 39.6 20.3 59.2 20.3c19 0 41.2-7.9 59.2-20.3c23.8-16.7 55.8-15.3 78.1 3.4c10.6 8.8 24.2 15.6 37.3 18.6c4.2 1 8.2 2.4 12 4.1C574 415.6 576 408 576 400l0-96c0-26.5-21.5-48-48-48l-48 0 0-146.7 25.4 25.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-80-80c-12.5-12.5-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L416 109.3 416 256l-128 0 0-208c0-26.5-21.5-48-48-48L112 0zM306.5 421.9c-11.1-7.9-25.9-7.9-37 0C247 437.4 219.5 448 192 448c-26.9 0-55.3-10.8-77.4-26.1c0 0 0 0 0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 501.7 159 512 192 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7c0 0 0 0 0 0C439.4 437.2 410.9 448 384 448c-27.5 0-55-10.6-77.5-26.1z\"]\n};\nconst faBone = {\n prefix: 'fas',\n iconName: 'bone',\n icon: [576, 512, [129460], \"f5d7\", \"M153.7 144.8c6.9 16.3 20.6 31.2 38.3 31.2l192 0c17.7 0 31.4-14.9 38.3-31.2C434.4 116.1 462.9 96 496 96c44.2 0 80 35.8 80 80c0 30.4-17 56.9-42 70.4c-3.6 1.9-6 5.5-6 9.6s2.4 7.7 6 9.6c25 13.5 42 40 42 70.4c0 44.2-35.8 80-80 80c-33.1 0-61.6-20.1-73.7-48.8C415.4 350.9 401.7 336 384 336l-192 0c-17.7 0-31.4 14.9-38.3 31.2C141.6 395.9 113.1 416 80 416c-44.2 0-80-35.8-80-80c0-30.4 17-56.9 42-70.4c3.6-1.9 6-5.5 6-9.6s-2.4-7.7-6-9.6C17 232.9 0 206.4 0 176c0-44.2 35.8-80 80-80c33.1 0 61.6 20.1 73.7 48.8z\"]\n};\nconst faTableCellsRowUnlock = {\n prefix: 'fas',\n iconName: 'table-cells-row-unlock',\n icon: [640, 512, [], \"e691\", \"M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 65.1c-37.8 5.4-69.4 29.6-85.2 62.9L360 224l0 64 56 0 0 8.6c-19.1 11.1-32 31.7-32 55.4l-24 0 0 64 24 0 0 64L64 480c-35.3 0-64-28.7-64-64L0 96zM64 224l0 64 88 0 0-64-88 0zm232 0l-88 0 0 64 88 0 0-64zM152 352l-88 0 0 64 88 0 0-64zm56 0l0 64 88 0 0-64-88 0zm288-80l0 48 32 0 32 0 48 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32l0-48c0-44.2 35.8-80 80-80s80 35.8 80 80l-48 0c0-17.7-14.3-32-32-32s-32 14.3-32 32z\"]\n};\nconst faUserInjured = {\n prefix: 'fas',\n iconName: 'user-injured',\n icon: [448, 512, [], \"f728\", \"M240 80l102.7 0c-7.9-19.5-20.4-36.5-36.2-49.9L240 80zm37.7-68.2C261.3 4.2 243.2 0 224 0c-53.7 0-99.7 33.1-118.7 80l81.4 0 91-68.2zM224 256c70.7 0 128-57.3 128-128c0-5.4-.3-10.8-1-16L97 112c-.7 5.2-1 10.6-1 16c0 70.7 57.3 128 128 128zM124 312.4c-9.7 3.1-19.1 7-28 11.7L96 512l147.7 0L181.5 408.2 124 312.4zm33-7.2L204.3 384l67.7 0c44.2 0 80 35.8 80 80c0 18-6 34.6-16 48l82.3 0c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304l-91.4 0c-7.2 0-14.3 .4-21.3 1.3zM0 482.3C0 498.7 13.3 512 29.7 512L64 512l0-166.6C24.9 378.1 0 427.3 0 482.3zM320 464c0-26.5-21.5-48-48-48l-48.5 0 57.1 95.2C303 507.2 320 487.6 320 464z\"]\n};\nconst faFaceSadTear = {\n prefix: 'fas',\n iconName: 'face-sad-tear',\n icon: [512, 512, [128546, \"sad-tear\"], \"f5b4\", \"M0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zm240 80c0-8.8 7.2-16 16-16c45 0 85.6 20.5 115.7 53.1c6 6.5 5.6 16.6-.9 22.6s-16.6 5.6-22.6-.9c-25-27.1-57.4-42.9-92.3-42.9c-8.8 0-16-7.2-16-16zm-80 80c-26.5 0-48-21-48-47c0-20 28.6-60.4 41.6-77.7c3.2-4.4 9.6-4.4 12.8 0C179.6 308.6 208 349 208 369c0 26-21.5 47-48 47zM367.6 208a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm-192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nconst faSadTear = faFaceSadTear;\nconst faPlane = {\n prefix: 'fas',\n iconName: 'plane',\n icon: [576, 512, [], \"f072\", \"M482.3 192c34.2 0 93.7 29 93.7 64c0 36-59.5 64-93.7 64l-116.6 0L265.2 495.9c-5.7 10-16.3 16.1-27.8 16.1l-56.2 0c-10.6 0-18.3-10.2-15.4-20.4l49-171.6L112 320 68.8 377.6c-3 4-7.8 6.4-12.8 6.4l-42 0c-7.8 0-14-6.3-14-14c0-1.3 .2-2.6 .5-3.9L32 256 .5 145.9c-.4-1.3-.5-2.6-.5-3.9c0-7.8 6.3-14 14-14l42 0c5 0 9.8 2.4 12.8 6.4L112 192l102.9 0-49-171.6C162.9 10.2 170.6 0 181.2 0l56.2 0c11.5 0 22.1 6.2 27.8 16.1L365.7 192l116.6 0z\"]\n};\nconst faTentArrowsDown = {\n prefix: 'fas',\n iconName: 'tent-arrows-down',\n icon: [576, 512, [], \"e581\", \"M209.8 111.9c-8.9-9.9-24-10.7-33.9-1.8l-39.9 36L136 24c0-13.3-10.7-24-24-24S88 10.7 88 24l0 122.1-39.9-36c-9.9-8.9-25-8.1-33.9 1.8s-8.1 25 1.8 33.9l80 72c9.1 8.2 23 8.2 32.1 0l80-72c9.9-8.9 10.7-24 1.8-33.9zm352 0c-8.9-9.9-24-10.7-33.9-1.8l-39.9 36L488 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 122.1-39.9-36c-9.9-8.9-25-8.1-33.9 1.8s-8.1 25 1.8 33.9l80 72c9.1 8.2 23 8.2 32.1 0l80-72c9.9-8.9 10.7-24 1.8-33.9zM307.4 166.5c-11.5-8.7-27.3-8.7-38.8 0l-168 128c-6.6 5-11 12.5-12.3 20.7l-24 160c-1.4 9.2 1.3 18.6 7.4 25.6S86.7 512 96 512l144 0 16 0c17.7 0 32-14.3 32-32l0-118.1c0-5.5 4.4-9.9 9.9-9.9c3.7 0 7.2 2.1 8.8 5.5l68.4 136.8c5.4 10.8 16.5 17.7 28.6 17.7l60.2 0 16 0c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128z\"]\n};\nconst faExclamation = {\n prefix: 'fas',\n iconName: 'exclamation',\n icon: [128, 512, [10069, 10071, 61738], \"21\", \"M96 64c0-17.7-14.3-32-32-32S32 46.3 32 64l0 256c0 17.7 14.3 32 32 32s32-14.3 32-32L96 64zM64 480a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"]\n};\nconst faArrowsSpin = {\n prefix: 'fas',\n iconName: 'arrows-spin',\n icon: [512, 512, [], \"e4bb\", \"M256 96c38.4 0 73.7 13.5 101.3 36.1l-32.6 32.6c-4.6 4.6-5.9 11.5-3.5 17.4s8.3 9.9 14.8 9.9l112 0c8.8 0 16-7.2 16-16l0-112c0-6.5-3.9-12.3-9.9-14.8s-12.9-1.1-17.4 3.5l-34 34C363.4 52.6 312.1 32 256 32c-10.9 0-21.5 .8-32 2.3l0 64.9c10.3-2.1 21-3.2 32-3.2zM132.1 154.7l32.6 32.6c4.6 4.6 11.5 5.9 17.4 3.5s9.9-8.3 9.9-14.8l0-112c0-8.8-7.2-16-16-16L64 48c-6.5 0-12.3 3.9-14.8 9.9s-1.1 12.9 3.5 17.4l34 34C52.6 148.6 32 199.9 32 256c0 10.9 .8 21.5 2.3 32l64.9 0c-2.1-10.3-3.2-21-3.2-32c0-38.4 13.5-73.7 36.1-101.3zM477.7 224l-64.9 0c2.1 10.3 3.2 21 3.2 32c0 38.4-13.5 73.7-36.1 101.3l-32.6-32.6c-4.6-4.6-11.5-5.9-17.4-3.5s-9.9 8.3-9.9 14.8l0 112c0 8.8 7.2 16 16 16l112 0c6.5 0 12.3-3.9 14.8-9.9s1.1-12.9-3.5-17.4l-34-34C459.4 363.4 480 312.1 480 256c0-10.9-.8-21.5-2.3-32zM256 416c-38.4 0-73.7-13.5-101.3-36.1l32.6-32.6c4.6-4.6 5.9-11.5 3.5-17.4s-8.3-9.9-14.8-9.9L64 320c-8.8 0-16 7.2-16 16l0 112c0 6.5 3.9 12.3 9.9 14.8s12.9 1.1 17.4-3.5l34-34C148.6 459.4 199.9 480 256 480c10.9 0 21.5-.8 32-2.3l0-64.9c-10.3 2.1-21 3.2-32 3.2z\"]\n};\nconst faPrint = {\n prefix: 'fas',\n iconName: 'print',\n icon: [512, 512, [128424, 128438, 9113], \"f02f\", \"M128 0C92.7 0 64 28.7 64 64l0 96 64 0 0-96 226.7 0L384 93.3l0 66.7 64 0 0-66.7c0-17-6.7-33.3-18.7-45.3L400 18.7C388 6.7 371.7 0 354.7 0L128 0zM384 352l0 32 0 64-256 0 0-64 0-16 0-16 256 0zm64 32l32 0c17.7 0 32-14.3 32-32l0-96c0-35.3-28.7-64-64-64L64 192c-35.3 0-64 28.7-64 64l0 96c0 17.7 14.3 32 32 32l32 0 0 64c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-64zM432 248a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nconst faTurkishLiraSign = {\n prefix: 'fas',\n iconName: 'turkish-lira-sign',\n icon: [384, 512, [\"try\", \"turkish-lira\"], \"e2bb\", \"M96 32c17.7 0 32 14.3 32 32l0 35.3L247.2 65.2c17-4.9 34.7 5 39.6 22s-5 34.7-22 39.6L128 165.9l0 29.4 119.2-34.1c17-4.9 34.7 5 39.6 22s-5 34.7-22 39.6L128 261.9 128 416l63.8 0c68.2 0 124.4-53.5 127.8-121.6l.4-8c.9-17.7 15.9-31.2 33.6-30.4s31.2 15.9 30.4 33.6l-.4 8C378.5 399.8 294.1 480 191.8 480L96 480c-17.7 0-32-14.3-32-32l0-167.9-23.2 6.6c-17 4.9-34.7-5-39.6-22s5-34.7 22-39.6L64 213.6l0-29.4-23.2 6.6c-17 4.9-34.7-5-39.6-22s5-34.7 22-39.6L64 117.6 64 64c0-17.7 14.3-32 32-32z\"]\n};\nconst faTry = faTurkishLiraSign;\nconst faTurkishLira = faTurkishLiraSign;\nconst faDollarSign = {\n prefix: 'fas',\n iconName: 'dollar-sign',\n icon: [320, 512, [128178, 61781, \"dollar\", \"usd\"], \"24\", \"M160 0c17.7 0 32 14.3 32 32l0 35.7c1.6 .2 3.1 .4 4.7 .7c.4 .1 .7 .1 1.1 .2l48 8.8c17.4 3.2 28.9 19.9 25.7 37.2s-19.9 28.9-37.2 25.7l-47.5-8.7c-31.3-4.6-58.9-1.5-78.3 6.2s-27.2 18.3-29 28.1c-2 10.7-.5 16.7 1.2 20.4c1.8 3.9 5.5 8.3 12.8 13.2c16.3 10.7 41.3 17.7 73.7 26.3l2.9 .8c28.6 7.6 63.6 16.8 89.6 33.8c14.2 9.3 27.6 21.9 35.9 39.5c8.5 17.9 10.3 37.9 6.4 59.2c-6.9 38-33.1 63.4-65.6 76.7c-13.7 5.6-28.6 9.2-44.4 11l0 33.4c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-34.9c-.4-.1-.9-.1-1.3-.2l-.2 0s0 0 0 0c-24.4-3.8-64.5-14.3-91.5-26.3c-16.1-7.2-23.4-26.1-16.2-42.2s26.1-23.4 42.2-16.2c20.9 9.3 55.3 18.5 75.2 21.6c31.9 4.7 58.2 2 76-5.3c16.9-6.9 24.6-16.9 26.8-28.9c1.9-10.6 .4-16.7-1.3-20.4c-1.9-4-5.6-8.4-13-13.3c-16.4-10.7-41.5-17.7-74-26.3l-2.8-.7s0 0 0 0C119.4 279.3 84.4 270 58.4 253c-14.2-9.3-27.5-22-35.8-39.6c-8.4-17.9-10.1-37.9-6.1-59.2C23.7 116 52.3 91.2 84.8 78.3c13.3-5.3 27.9-8.9 43.2-11L128 32c0-17.7 14.3-32 32-32z\"]\n};\nconst faDollar = faDollarSign;\nconst faUsd = faDollarSign;\nconst faX = {\n prefix: 'fas',\n iconName: 'x',\n icon: [384, 512, [120], \"58\", \"M376.6 84.5c11.3-13.6 9.5-33.8-4.1-45.1s-33.8-9.5-45.1 4.1L192 206 56.6 43.5C45.3 29.9 25.1 28.1 11.5 39.4S-3.9 70.9 7.4 84.5L150.3 256 7.4 427.5c-11.3 13.6-9.5 33.8 4.1 45.1s33.8 9.5 45.1-4.1L192 306 327.4 468.5c11.3 13.6 31.5 15.4 45.1 4.1s15.4-31.5 4.1-45.1L233.7 256 376.6 84.5z\"]\n};\nconst faMagnifyingGlassDollar = {\n prefix: 'fas',\n iconName: 'magnifying-glass-dollar',\n icon: [512, 512, [\"search-dollar\"], \"f688\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM228 104c0-11-9-20-20-20s-20 9-20 20l0 14c-7.6 1.7-15.2 4.4-22.2 8.5c-13.9 8.3-25.9 22.8-25.8 43.9c.1 20.3 12 33.1 24.7 40.7c11 6.6 24.7 10.8 35.6 14l1.7 .5c12.6 3.8 21.8 6.8 28 10.7c5.1 3.2 5.8 5.4 5.9 8.2c.1 5-1.8 8-5.9 10.5c-5 3.1-12.9 5-21.4 4.7c-11.1-.4-21.5-3.9-35.1-8.5c-2.3-.8-4.7-1.6-7.2-2.4c-10.5-3.5-21.8 2.2-25.3 12.6s2.2 21.8 12.6 25.3c1.9 .6 4 1.3 6.1 2.1c0 0 0 0 0 0s0 0 0 0c8.3 2.9 17.9 6.2 28.2 8.4l0 14.6c0 11 9 20 20 20s20-9 20-20l0-13.8c8-1.7 16-4.5 23.2-9c14.3-8.9 25.1-24.1 24.8-45c-.3-20.3-11.7-33.4-24.6-41.6c-11.5-7.2-25.9-11.6-37.1-15l-.7-.2c-12.8-3.9-21.9-6.7-28.3-10.5c-5.2-3.1-5.3-4.9-5.3-6.7c0-3.7 1.4-6.5 6.2-9.3c5.4-3.2 13.6-5.1 21.5-5c9.6 .1 20.2 2.2 31.2 5.2c10.7 2.8 21.6-3.5 24.5-14.2s-3.5-21.6-14.2-24.5c-6.5-1.7-13.7-3.4-21.1-4.7l0-13.9z\"]\n};\nconst faSearchDollar = faMagnifyingGlassDollar;\nconst faUsersGear = {\n prefix: 'fas',\n iconName: 'users-gear',\n icon: [640, 512, [\"users-cog\"], \"f509\", \"M144 160A80 80 0 1 0 144 0a80 80 0 1 0 0 160zm368 0A80 80 0 1 0 512 0a80 80 0 1 0 0 160zM0 298.7C0 310.4 9.6 320 21.3 320l213.3 0c.2 0 .4 0 .7 0c-26.6-23.5-43.3-57.8-43.3-96c0-7.6 .7-15 1.9-22.3c-13.6-6.3-28.7-9.7-44.6-9.7l-42.7 0C47.8 192 0 239.8 0 298.7zM320 320c24 0 45.9-8.8 62.7-23.3c2.5-3.7 5.2-7.3 8-10.7c2.7-3.3 5.7-6.1 9-8.3C410 262.3 416 243.9 416 224c0-53-43-96-96-96s-96 43-96 96s43 96 96 96zm65.4 60.2c-10.3-5.9-18.1-16.2-20.8-28.2l-103.2 0C187.7 352 128 411.7 128 485.3c0 14.7 11.9 26.7 26.7 26.7l300.6 0c-2.1-5.2-3.2-10.9-3.2-16.4l0-3c-1.3-.7-2.7-1.5-4-2.3l-2.6 1.5c-16.8 9.7-40.5 8-54.7-9.7c-4.5-5.6-8.6-11.5-12.4-17.6l-.1-.2-.1-.2-2.4-4.1-.1-.2-.1-.2c-3.4-6.2-6.4-12.6-9-19.3c-8.2-21.2 2.2-42.6 19-52.3l2.7-1.5c0-.8 0-1.5 0-2.3s0-1.5 0-2.3l-2.7-1.5zM533.3 192l-42.7 0c-15.9 0-31 3.5-44.6 9.7c1.3 7.2 1.9 14.7 1.9 22.3c0 17.4-3.5 33.9-9.7 49c2.5 .9 4.9 2 7.1 3.3l2.6 1.5c1.3-.8 2.6-1.6 4-2.3l0-3c0-19.4 13.3-39.1 35.8-42.6c7.9-1.2 16-1.9 24.2-1.9s16.3 .6 24.2 1.9c22.5 3.5 35.8 23.2 35.8 42.6l0 3c1.3 .7 2.7 1.5 4 2.3l2.6-1.5c16.8-9.7 40.5-8 54.7 9.7c2.3 2.8 4.5 5.8 6.6 8.7c-2.1-57.1-49-102.7-106.6-102.7zm91.3 163.9c6.3-3.6 9.5-11.1 6.8-18c-2.1-5.5-4.6-10.8-7.4-15.9l-2.3-4c-3.1-5.1-6.5-9.9-10.2-14.5c-4.6-5.7-12.7-6.7-19-3l-2.9 1.7c-9.2 5.3-20.4 4-29.6-1.3s-16.1-14.5-16.1-25.1l0-3.4c0-7.3-4.9-13.8-12.1-14.9c-6.5-1-13.1-1.5-19.9-1.5s-13.4 .5-19.9 1.5c-7.2 1.1-12.1 7.6-12.1 14.9l0 3.4c0 10.6-6.9 19.8-16.1 25.1s-20.4 6.6-29.6 1.3l-2.9-1.7c-6.3-3.6-14.4-2.6-19 3c-3.7 4.6-7.1 9.5-10.2 14.6l-2.3 3.9c-2.8 5.1-5.3 10.4-7.4 15.9c-2.6 6.8 .5 14.3 6.8 17.9l2.9 1.7c9.2 5.3 13.7 15.8 13.7 26.4s-4.5 21.1-13.7 26.4l-3 1.7c-6.3 3.6-9.5 11.1-6.8 17.9c2.1 5.5 4.6 10.7 7.4 15.8l2.4 4.1c3 5.1 6.4 9.9 10.1 14.5c4.6 5.7 12.7 6.7 19 3l2.9-1.7c9.2-5.3 20.4-4 29.6 1.3s16.1 14.5 16.1 25.1l0 3.4c0 7.3 4.9 13.8 12.1 14.9c6.5 1 13.1 1.5 19.9 1.5s13.4-.5 19.9-1.5c7.2-1.1 12.1-7.6 12.1-14.9l0-3.4c0-10.6 6.9-19.8 16.1-25.1s20.4-6.6 29.6-1.3l2.9 1.7c6.3 3.6 14.4 2.6 19-3c3.7-4.6 7.1-9.4 10.1-14.5l2.4-4.2c2.8-5.1 5.3-10.3 7.4-15.8c2.6-6.8-.5-14.3-6.8-17.9l-3-1.7c-9.2-5.3-13.7-15.8-13.7-26.4s4.5-21.1 13.7-26.4l3-1.7zM472 384a40 40 0 1 1 80 0 40 40 0 1 1 -80 0z\"]\n};\nconst faUsersCog = faUsersGear;\nconst faPersonMilitaryPointing = {\n prefix: 'fas',\n iconName: 'person-military-pointing',\n icon: [576, 512, [], \"e54a\", \"M246.9 14.1C234 15.2 224 26 224 39c0 13.8 11.2 25 25 25l151 0c8.8 0 16-7.2 16-16l0-30.6C416 8 408 .7 398.7 1.4L246.9 14.1zM240 112c0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16L241.6 96c-1 5.2-1.6 10.5-1.6 16zM72 224c-22.1 0-40 17.9-40 40s17.9 40 40 40l152 0 0 89.4L386.8 230.5c-13.3-4.3-27.3-6.5-41.6-6.5L240 224 72 224zm345.7 20.9L246.6 416 416 416l0-46.3 53.6 90.6c11.2 19 35.8 25.3 54.8 14.1s25.3-35.8 14.1-54.8L462.3 290.8c-11.2-18.9-26.6-34.5-44.6-45.9zM224 448l0 32c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-32-192 0z\"]\n};\nconst faBuildingColumns = {\n prefix: 'fas',\n iconName: 'building-columns',\n icon: [512, 512, [\"bank\", \"institution\", \"museum\", \"university\"], \"f19c\", \"M243.4 2.6l-224 96c-14 6-21.8 21-18.7 35.8S16.8 160 32 160l0 8c0 13.3 10.7 24 24 24l400 0c13.3 0 24-10.7 24-24l0-8c15.2 0 28.3-10.7 31.3-25.6s-4.8-29.9-18.7-35.8l-224-96c-8-3.4-17.2-3.4-25.2 0zM128 224l-64 0 0 196.3c-.6 .3-1.2 .7-1.8 1.1l-48 32c-11.7 7.8-17 22.4-12.9 35.9S17.9 512 32 512l448 0c14.1 0 26.5-9.2 30.6-22.7s-1.1-28.1-12.9-35.9l-48-32c-.6-.4-1.2-.7-1.8-1.1L448 224l-64 0 0 192-40 0 0-192-64 0 0 192-48 0 0-192-64 0 0 192-40 0 0-192zM256 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nconst faBank = faBuildingColumns;\nconst faInstitution = faBuildingColumns;\nconst faMuseum = faBuildingColumns;\nconst faUniversity = faBuildingColumns;\nconst faUmbrella = {\n prefix: 'fas',\n iconName: 'umbrella',\n icon: [576, 512, [], \"f0e9\", \"M288 0c17.7 0 32 14.3 32 32l0 17.7C451.8 63.4 557.7 161 573.9 285.9c2 15.6-17.3 24.4-27.8 12.7C532.1 283 504.8 272 480 272c-38.7 0-71 27.5-78.4 64.1c-1.7 8.7-8.7 15.9-17.6 15.9s-15.8-7.2-17.6-15.9C359 299.5 326.7 272 288 272s-71 27.5-78.4 64.1c-1.7 8.7-8.7 15.9-17.6 15.9s-15.8-7.2-17.6-15.9C167 299.5 134.7 272 96 272c-24.8 0-52.1 11-66.1 26.7C19.4 310.4 .1 301.5 2.1 285.9C18.3 161 124.2 63.4 256 49.7L256 32c0-17.7 14.3-32 32-32zm0 304c12.3 0 23.5 4.6 32 12.2l0 114.3c0 45-36.5 81.4-81.4 81.4c-30.8 0-59-17.4-72.8-45l-2.3-4.7c-7.9-15.8-1.5-35 14.3-42.9s35-1.5 42.9 14.3l2.3 4.7c3 5.9 9 9.6 15.6 9.6c9.6 0 17.4-7.8 17.4-17.4l0-114.3c8.5-7.6 19.7-12.2 32-12.2z\"]\n};\nconst faTrowel = {\n prefix: 'fas',\n iconName: 'trowel',\n icon: [512, 512, [], \"e589\", \"M343.9 213.4L245.3 312l65.4 65.4c7.9 7.9 11.1 19.4 8.4 30.3s-10.8 19.6-21.5 22.9l-256 80c-11.4 3.5-23.8 .5-32.2-7.9S-2.1 481.8 1.5 470.5l80-256c3.3-10.7 12-18.9 22.9-21.5s22.4 .5 30.3 8.4L200 266.7l98.6-98.6c-14.3-14.6-14.2-38 .3-52.5l95.4-95.4c26.9-26.9 70.5-26.9 97.5 0s26.9 70.5 0 97.5l-95.4 95.4c-14.5 14.5-37.9 14.6-52.5 .3z\"]\n};\nconst faD = {\n prefix: 'fas',\n iconName: 'd',\n icon: [384, 512, [100], \"44\", \"M0 96C0 60.7 28.7 32 64 32l96 0c123.7 0 224 100.3 224 224s-100.3 224-224 224l-96 0c-35.3 0-64-28.7-64-64L0 96zm160 0L64 96l0 320 96 0c88.4 0 160-71.6 160-160s-71.6-160-160-160z\"]\n};\nconst faStapler = {\n prefix: 'fas',\n iconName: 'stapler',\n icon: [640, 512, [], \"e5af\", \"M640 299.3l0 4.7 0 128c0 26.5-21.5 48-48 48l-80 0-64 0L64 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0 0-48L96 368c-17.7 0-32-14.3-32-32l0-116.6L33.8 214C14.2 210.5 0 193.5 0 173.7c0-8.9 2.9-17.5 8.2-24.6l35.6-47.5C76.7 57.8 128.2 32 182.9 32c27 0 53.6 6.3 77.8 18.4L586.9 213.5C619.5 229.7 640 263 640 299.3zM448 304l0-16L128 230.9l0 73.1 320 0z\"]\n};\nconst faMasksTheater = {\n prefix: 'fas',\n iconName: 'masks-theater',\n icon: [640, 512, [127917, \"theater-masks\"], \"f630\", \"M74.6 373.2c41.7 36.1 108 82.5 166.1 73.7c6.1-.9 12.1-2.5 18-4.5c-9.2-12.3-17.3-24.4-24.2-35.4c-21.9-35-28.8-75.2-25.9-113.6c-20.6 4.1-39.2 13-54.7 25.4c-6.5 5.2-16.3 1.3-14.8-7c6.4-33.5 33-60.9 68.2-66.3c2.6-.4 5.3-.7 7.9-.8l19.4-131.3c2-13.8 8-32.7 25-45.9C278.2 53.2 310.5 37 363.2 32.2c-.8-.7-1.6-1.4-2.4-2.1C340.6 14.5 288.4-11.5 175.7 5.6S20.5 63 5.7 83.9C0 91.9-.8 102 .6 111.8L24.8 276.1c5.5 37.3 21.5 72.6 49.8 97.2zm87.7-219.6c4.4-3.1 10.8-2 11.8 3.3c.1 .5 .2 1.1 .3 1.6c3.2 21.8-11.6 42-33.1 45.3s-41.5-11.8-44.7-33.5c-.1-.5-.1-1.1-.2-1.6c-.6-5.4 5.2-8.4 10.3-6.7c9 3 18.8 3.9 28.7 2.4s19.1-5.3 26.8-10.8zM261.6 390c29.4 46.9 79.5 110.9 137.6 119.7s124.5-37.5 166.1-73.7c28.3-24.5 44.3-59.8 49.8-97.2l24.2-164.3c1.4-9.8 .6-19.9-5.1-27.9c-14.8-20.9-57.3-61.2-170-78.3S299.4 77.2 279.2 92.8c-7.8 6-11.5 15.4-12.9 25.2L242.1 282.3c-5.5 37.3-.4 75.8 19.6 107.7zM404.5 235.3c-7.7-5.5-16.8-9.3-26.8-10.8s-19.8-.6-28.7 2.4c-5.1 1.7-10.9-1.3-10.3-6.7c.1-.5 .1-1.1 .2-1.6c3.2-21.8 23.2-36.8 44.7-33.5s36.3 23.5 33.1 45.3c-.1 .5-.2 1.1-.3 1.6c-1 5.3-7.4 6.4-11.8 3.3zm136.2 15.5c-1 5.3-7.4 6.4-11.8 3.3c-7.7-5.5-16.8-9.3-26.8-10.8s-19.8-.6-28.7 2.4c-5.1 1.7-10.9-1.3-10.3-6.7c.1-.5 .1-1.1 .2-1.6c3.2-21.8 23.2-36.8 44.7-33.5s36.3 23.5 33.1 45.3c-.1 .5-.2 1.1-.3 1.6zM530 350.2c-19.6 44.7-66.8 72.5-116.8 64.9s-87.1-48.2-93-96.7c-1-8.3 8.9-12.1 15.2-6.7c23.9 20.8 53.6 35.3 87 40.3s66.1 .1 94.9-12.8c7.6-3.4 16 3.2 12.6 10.9z\"]\n};\nconst faTheaterMasks = faMasksTheater;\nconst faKipSign = {\n prefix: 'fas',\n iconName: 'kip-sign',\n icon: [384, 512, [], \"e1c4\", \"M340.8 88.3c13.4-11.5 15-31.7 3.5-45.1s-31.7-15-45.1-3.5L128 186.4 128 64c0-17.7-14.3-32-32-32S64 46.3 64 64l0 160-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-122.4L299.2 472.3c13.4 11.5 33.6 9.9 45.1-3.5s9.9-33.6-3.5-45.1L182.5 288 352 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-169.5 0L340.8 88.3z\"]\n};\nconst faHandPointLeft = {\n prefix: 'fas',\n iconName: 'hand-point-left',\n icon: [512, 512, [], \"f0a5\", \"M32 96C14.3 96 0 110.3 0 128s14.3 32 32 32l208 0 0-64L32 96zM192 288c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0zm-64-64c0 17.7 14.3 32 32 32l48 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-48 0c-17.7 0-32 14.3-32 32zm96 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0zm88-96l-.6 0c5.4 9.4 8.6 20.3 8.6 32c0 13.2-4 25.4-10.8 35.6c24.9 8.7 42.8 32.5 42.8 60.4c0 11.7-3.1 22.6-8.6 32l8.6 0c88.4 0 160-71.6 160-160l0-61.7c0-42.4-16.9-83.1-46.9-113.1l-11.6-11.6C429.5 77.5 396.9 64 363 64l-27 0c-35.3 0-64 28.7-64 64l0 88c0 22.1 17.9 40 40 40s40-17.9 40-40l0-56c0-8.8 7.2-16 16-16s16 7.2 16 16l0 56c0 39.8-32.2 72-72 72z\"]\n};\nconst faHandshakeSimple = {\n prefix: 'fas',\n iconName: 'handshake-simple',\n icon: [640, 512, [129309, \"handshake-alt\"], \"f4c6\", \"M323.4 85.2l-96.8 78.4c-16.1 13-19.2 36.4-7 53.1c12.9 17.8 38 21.3 55.3 7.8l99.3-77.2c7-5.4 17-4.2 22.5 2.8s4.2 17-2.8 22.5l-20.9 16.2L550.2 352l41.8 0c26.5 0 48-21.5 48-48l0-128c0-26.5-21.5-48-48-48l-76 0-4 0-.7 0-3.9-2.5L434.8 79c-15.3-9.8-33.2-15-51.4-15c-21.8 0-43 7.5-60 21.2zm22.8 124.4l-51.7 40.2C263 274.4 217.3 268 193.7 235.6c-22.2-30.5-16.6-73.1 12.7-96.8l83.2-67.3c-11.6-4.9-24.1-7.4-36.8-7.4C234 64 215.7 69.6 200 80l-72 48-80 0c-26.5 0-48 21.5-48 48L0 304c0 26.5 21.5 48 48 48l108.2 0 91.4 83.4c19.6 17.9 49.9 16.5 67.8-3.1c5.5-6.1 9.2-13.2 11.1-20.6l17 15.6c19.5 17.9 49.9 16.6 67.8-2.9c4.5-4.9 7.8-10.6 9.9-16.5c19.4 13 45.8 10.3 62.1-7.5c17.9-19.5 16.6-49.9-2.9-67.8l-134.2-123z\"]\n};\nconst faHandshakeAlt = faHandshakeSimple;\nconst faJetFighter = {\n prefix: 'fas',\n iconName: 'jet-fighter',\n icon: [640, 512, [\"fighter-jet\"], \"f0fb\", \"M160 24c0-13.3 10.7-24 24-24L296 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0L384 192l116.4 0c7.7 0 15.3 1.4 22.5 4.1L625 234.4c9 3.4 15 12 15 21.6s-6 18.2-15 21.6L522.9 315.9c-7.2 2.7-14.8 4.1-22.5 4.1L384 320 280 464l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-112 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-144-32 0-54.6 54.6c-6 6-14.1 9.4-22.6 9.4L64 384c-17.7 0-32-14.3-32-32l0-64c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-64c0-17.7 14.3-32 32-32l18.7 0c8.5 0 16.6 3.4 22.6 9.4L160 192l32 0 0-144-8 0c-13.3 0-24-10.7-24-24zM80 240c-8.8 0-16 7.2-16 16s7.2 16 16 16l64 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-64 0z\"]\n};\nconst faFighterJet = faJetFighter;\nconst faSquareShareNodes = {\n prefix: 'fas',\n iconName: 'square-share-nodes',\n icon: [448, 512, [\"share-alt-square\"], \"f1e1\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM384 160c0 35.3-28.7 64-64 64c-15.4 0-29.5-5.4-40.6-14.5L194.1 256l85.3 46.5c11-9.1 25.2-14.5 40.6-14.5c35.3 0 64 28.7 64 64s-28.7 64-64 64s-64-28.7-64-64c0-2.5 .1-4.9 .4-7.3L174.5 300c-11.7 12.3-28.2 20-46.5 20c-35.3 0-64-28.7-64-64s28.7-64 64-64c18.3 0 34.8 7.7 46.5 20l81.9-44.7c-.3-2.4-.4-4.9-.4-7.3c0-35.3 28.7-64 64-64s64 28.7 64 64z\"]\n};\nconst faShareAltSquare = faSquareShareNodes;\nconst faBarcode = {\n prefix: 'fas',\n iconName: 'barcode',\n icon: [512, 512, [], \"f02a\", \"M24 32C10.7 32 0 42.7 0 56L0 456c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24L64 56c0-13.3-10.7-24-24-24L24 32zm88 0c-8.8 0-16 7.2-16 16l0 416c0 8.8 7.2 16 16 16s16-7.2 16-16l0-416c0-8.8-7.2-16-16-16zm72 0c-13.3 0-24 10.7-24 24l0 400c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24l0-400c0-13.3-10.7-24-24-24l-16 0zm96 0c-13.3 0-24 10.7-24 24l0 400c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24l0-400c0-13.3-10.7-24-24-24l-16 0zM448 56l0 400c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24l0-400c0-13.3-10.7-24-24-24l-16 0c-13.3 0-24 10.7-24 24zm-64-8l0 416c0 8.8 7.2 16 16 16s16-7.2 16-16l0-416c0-8.8-7.2-16-16-16s-16 7.2-16 16z\"]\n};\nconst faPlusMinus = {\n prefix: 'fas',\n iconName: 'plus-minus',\n icon: [384, 512, [], \"e43c\", \"M224 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 112L48 144c-17.7 0-32 14.3-32 32s14.3 32 32 32l112 0 0 112c0 17.7 14.3 32 32 32s32-14.3 32-32l0-112 112 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-112 0 0-112zM0 480c0 17.7 14.3 32 32 32l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 448c-17.7 0-32 14.3-32 32z\"]\n};\nconst faVideo = {\n prefix: 'fas',\n iconName: 'video',\n icon: [576, 512, [\"video-camera\"], \"f03d\", \"M0 128C0 92.7 28.7 64 64 64l256 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zM559.1 99.8c10.4 5.6 16.9 16.4 16.9 28.2l0 256c0 11.8-6.5 22.6-16.9 28.2s-23 5-32.9-1.6l-96-64L416 337.1l0-17.1 0-128 0-17.1 14.2-9.5 96-64c9.8-6.5 22.4-7.2 32.9-1.6z\"]\n};\nconst faVideoCamera = faVideo;\nconst faGraduationCap = {\n prefix: 'fas',\n iconName: 'graduation-cap',\n icon: [640, 512, [127891, \"mortar-board\"], \"f19d\", \"M320 32c-8.1 0-16.1 1.4-23.7 4.1L15.8 137.4C6.3 140.9 0 149.9 0 160s6.3 19.1 15.8 22.6l57.9 20.9C57.3 229.3 48 259.8 48 291.9l0 28.1c0 28.4-10.8 57.7-22.3 80.8c-6.5 13-13.9 25.8-22.5 37.6C0 442.7-.9 448.3 .9 453.4s6 8.9 11.2 10.2l64 16c4.2 1.1 8.7 .3 12.4-2s6.3-6.1 7.1-10.4c8.6-42.8 4.3-81.2-2.1-108.7C90.3 344.3 86 329.8 80 316.5l0-24.6c0-30.2 10.2-58.7 27.9-81.5c12.9-15.5 29.6-28 49.2-35.7l157-61.7c8.2-3.2 17.5 .8 20.7 9s-.8 17.5-9 20.7l-157 61.7c-12.4 4.9-23.3 12.4-32.2 21.6l159.6 57.6c7.6 2.7 15.6 4.1 23.7 4.1s16.1-1.4 23.7-4.1L624.2 182.6c9.5-3.4 15.8-12.5 15.8-22.6s-6.3-19.1-15.8-22.6L343.7 36.1C336.1 33.4 328.1 32 320 32zM128 408c0 35.3 86 72 192 72s192-36.7 192-72L496.7 262.6 354.5 314c-11.1 4-22.8 6-34.5 6s-23.5-2-34.5-6L143.3 262.6 128 408z\"]\n};\nconst faMortarBoard = faGraduationCap;\nconst faHandHoldingMedical = {\n prefix: 'fas',\n iconName: 'hand-holding-medical',\n icon: [576, 512, [], \"e05c\", \"M224 24l0 56-56 0c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l56 0 0 56c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-56 56 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-56 0 0-56c0-13.3-10.7-24-24-24L248 0c-13.3 0-24 10.7-24 24zM559.7 392.2c17.8-13.1 21.6-38.1 8.5-55.9s-38.1-21.6-55.9-8.5L392.6 416 272 416c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0-16 0-78.3 0c-29.1 0-57.3 9.9-80 28L68.8 384 32 384c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l160 0 160.5 0c29 0 57.3-9.3 80.7-26.5l126.6-93.3zm-367-8.2l.9 0c0 0 0 0 0 0c-.3 0-.6 0-.9 0z\"]\n};\nconst faPersonCircleCheck = {\n prefix: 'fas',\n iconName: 'person-circle-check',\n icon: [576, 512, [], \"e53e\", \"M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-223.1L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6l29.7 0c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9 232 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0zm136 16a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm211.3-43.3c-6.2-6.2-16.4-6.2-22.6 0L416 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z\"]\n};\nconst faTurnUp = {\n prefix: 'fas',\n iconName: 'turn-up',\n icon: [384, 512, [10548, \"level-up-alt\"], \"f3bf\", \"M350 177.5c3.8-8.8 2-19-4.6-26l-136-144C204.9 2.7 198.6 0 192 0s-12.9 2.7-17.4 7.5l-136 144c-6.6 7-8.4 17.2-4.6 26s12.5 14.5 22 14.5l88 0 0 192c0 17.7-14.3 32-32 32l-80 0c-17.7 0-32 14.3-32 32l0 32c0 17.7 14.3 32 32 32l80 0c70.7 0 128-57.3 128-128l0-192 88 0c9.6 0 18.2-5.7 22-14.5z\"]\n};\nconst faLevelUpAlt = faTurnUp;\nvar icons = {\n fa0,\n fa1,\n fa2,\n fa3,\n fa4,\n fa5,\n fa6,\n fa7,\n fa8,\n fa9,\n faFillDrip,\n faArrowsToCircle,\n faCircleChevronRight,\n faChevronCircleRight,\n faAt,\n faTrashCan,\n faTrashAlt,\n faTextHeight,\n faUserXmark,\n faUserTimes,\n faStethoscope,\n faMessage,\n faCommentAlt,\n faInfo,\n faDownLeftAndUpRightToCenter,\n faCompressAlt,\n faExplosion,\n faFileLines,\n faFileAlt,\n faFileText,\n faWaveSquare,\n faRing,\n faBuildingUn,\n faDiceThree,\n faCalendarDays,\n faCalendarAlt,\n faAnchorCircleCheck,\n faBuildingCircleArrowRight,\n faVolleyball,\n faVolleyballBall,\n faArrowsUpToLine,\n faSortDown,\n faSortDesc,\n faCircleMinus,\n faMinusCircle,\n faDoorOpen,\n faRightFromBracket,\n faSignOutAlt,\n faAtom,\n faSoap,\n faIcons,\n faHeartMusicCameraBolt,\n faMicrophoneLinesSlash,\n faMicrophoneAltSlash,\n faBridgeCircleCheck,\n faPumpMedical,\n faFingerprint,\n faHandPointRight,\n faMagnifyingGlassLocation,\n faSearchLocation,\n faForwardStep,\n faStepForward,\n faFaceSmileBeam,\n faSmileBeam,\n faFlagCheckered,\n faFootball,\n faFootballBall,\n faSchoolCircleExclamation,\n faCrop,\n faAnglesDown,\n faAngleDoubleDown,\n faUsersRectangle,\n faPeopleRoof,\n faPeopleLine,\n faBeerMugEmpty,\n faBeer,\n faDiagramPredecessor,\n faArrowUpLong,\n faLongArrowUp,\n faFireFlameSimple,\n faBurn,\n faPerson,\n faMale,\n faLaptop,\n faFileCsv,\n faMenorah,\n faTruckPlane,\n faRecordVinyl,\n faFaceGrinStars,\n faGrinStars,\n faBong,\n faSpaghettiMonsterFlying,\n faPastafarianism,\n faArrowDownUpAcrossLine,\n faSpoon,\n faUtensilSpoon,\n faJarWheat,\n faEnvelopesBulk,\n faMailBulk,\n faFileCircleExclamation,\n faCircleH,\n faHospitalSymbol,\n faPager,\n faAddressBook,\n faContactBook,\n faStrikethrough,\n faK,\n faLandmarkFlag,\n faPencil,\n faPencilAlt,\n faBackward,\n faCaretRight,\n faComments,\n faPaste,\n faFileClipboard,\n faCodePullRequest,\n faClipboardList,\n faTruckRampBox,\n faTruckLoading,\n faUserCheck,\n faVialVirus,\n faSheetPlastic,\n faBlog,\n faUserNinja,\n faPersonArrowUpFromLine,\n faScrollTorah,\n faTorah,\n faBroomBall,\n faQuidditch,\n faQuidditchBroomBall,\n faToggleOff,\n faBoxArchive,\n faArchive,\n faPersonDrowning,\n faArrowDown91,\n faSortNumericDesc,\n faSortNumericDownAlt,\n faFaceGrinTongueSquint,\n faGrinTongueSquint,\n faSprayCan,\n faTruckMonster,\n faW,\n faEarthAfrica,\n faGlobeAfrica,\n faRainbow,\n faCircleNotch,\n faTabletScreenButton,\n faTabletAlt,\n faPaw,\n faCloud,\n faTrowelBricks,\n faFaceFlushed,\n faFlushed,\n faHospitalUser,\n faTentArrowLeftRight,\n faGavel,\n faLegal,\n faBinoculars,\n faMicrophoneSlash,\n faBoxTissue,\n faMotorcycle,\n faBellConcierge,\n faConciergeBell,\n faPenRuler,\n faPencilRuler,\n faPeopleArrows,\n faPeopleArrowsLeftRight,\n faMarsAndVenusBurst,\n faSquareCaretRight,\n faCaretSquareRight,\n faScissors,\n faCut,\n faSunPlantWilt,\n faToiletsPortable,\n faHockeyPuck,\n faTable,\n faMagnifyingGlassArrowRight,\n faTachographDigital,\n faDigitalTachograph,\n faUsersSlash,\n faClover,\n faReply,\n faMailReply,\n faStarAndCrescent,\n faHouseFire,\n faSquareMinus,\n faMinusSquare,\n faHelicopter,\n faCompass,\n faSquareCaretDown,\n faCaretSquareDown,\n faFileCircleQuestion,\n faLaptopCode,\n faSwatchbook,\n faPrescriptionBottle,\n faBars,\n faNavicon,\n faPeopleGroup,\n faHourglassEnd,\n faHourglass3,\n faHeartCrack,\n faHeartBroken,\n faSquareUpRight,\n faExternalLinkSquareAlt,\n faFaceKissBeam,\n faKissBeam,\n faFilm,\n faRulerHorizontal,\n faPeopleRobbery,\n faLightbulb,\n faCaretLeft,\n faCircleExclamation,\n faExclamationCircle,\n faSchoolCircleXmark,\n faArrowRightFromBracket,\n faSignOut,\n faCircleChevronDown,\n faChevronCircleDown,\n faUnlockKeyhole,\n faUnlockAlt,\n faCloudShowersHeavy,\n faHeadphonesSimple,\n faHeadphonesAlt,\n faSitemap,\n faCircleDollarToSlot,\n faDonate,\n faMemory,\n faRoadSpikes,\n faFireBurner,\n faFlag,\n faHanukiah,\n faFeather,\n faVolumeLow,\n faVolumeDown,\n faCommentSlash,\n faCloudSunRain,\n faCompress,\n faWheatAwn,\n faWheatAlt,\n faAnkh,\n faHandsHoldingChild,\n faAsterisk,\n faSquareCheck,\n faCheckSquare,\n faPesetaSign,\n faHeading,\n faHeader,\n faGhost,\n faList,\n faListSquares,\n faSquarePhoneFlip,\n faPhoneSquareAlt,\n faCartPlus,\n faGamepad,\n faCircleDot,\n faDotCircle,\n faFaceDizzy,\n faDizzy,\n faEgg,\n faHouseMedicalCircleXmark,\n faCampground,\n faFolderPlus,\n faFutbol,\n faFutbolBall,\n faSoccerBall,\n faPaintbrush,\n faPaintBrush,\n faLock,\n faGasPump,\n faHotTubPerson,\n faHotTub,\n faMapLocation,\n faMapMarked,\n faHouseFloodWater,\n faTree,\n faBridgeLock,\n faSackDollar,\n faPenToSquare,\n faEdit,\n faCarSide,\n faShareNodes,\n faShareAlt,\n faHeartCircleMinus,\n faHourglassHalf,\n faHourglass2,\n faMicroscope,\n faSink,\n faBagShopping,\n faShoppingBag,\n faArrowDownZA,\n faSortAlphaDesc,\n faSortAlphaDownAlt,\n faMitten,\n faPersonRays,\n faUsers,\n faEyeSlash,\n faFlaskVial,\n faHand,\n faHandPaper,\n faOm,\n faWorm,\n faHouseCircleXmark,\n faPlug,\n faChevronUp,\n faHandSpock,\n faStopwatch,\n faFaceKiss,\n faKiss,\n faBridgeCircleXmark,\n faFaceGrinTongue,\n faGrinTongue,\n faChessBishop,\n faFaceGrinWink,\n faGrinWink,\n faEarDeaf,\n faDeaf,\n faDeafness,\n faHardOfHearing,\n faRoadCircleCheck,\n faDiceFive,\n faSquareRss,\n faRssSquare,\n faLandMineOn,\n faICursor,\n faStamp,\n faStairs,\n faI,\n faHryvniaSign,\n faHryvnia,\n faPills,\n faFaceGrinWide,\n faGrinAlt,\n faTooth,\n faV,\n faBangladeshiTakaSign,\n faBicycle,\n faStaffSnake,\n faRodAsclepius,\n faRodSnake,\n faStaffAesculapius,\n faHeadSideCoughSlash,\n faTruckMedical,\n faAmbulance,\n faWheatAwnCircleExclamation,\n faSnowman,\n faMortarPestle,\n faRoadBarrier,\n faSchool,\n faIgloo,\n faJoint,\n faAngleRight,\n faHorse,\n faQ,\n faG,\n faNotesMedical,\n faTemperatureHalf,\n faTemperature2,\n faThermometer2,\n faThermometerHalf,\n faDongSign,\n faCapsules,\n faPooStorm,\n faPooBolt,\n faFaceFrownOpen,\n faFrownOpen,\n faHandPointUp,\n faMoneyBill,\n faBookmark,\n faAlignJustify,\n faUmbrellaBeach,\n faHelmetUn,\n faBullseye,\n faBacon,\n faHandPointDown,\n faArrowUpFromBracket,\n faFolder,\n faFolderBlank,\n faFileWaveform,\n faFileMedicalAlt,\n faRadiation,\n faChartSimple,\n faMarsStroke,\n faVial,\n faGauge,\n faDashboard,\n faGaugeMed,\n faTachometerAltAverage,\n faWandMagicSparkles,\n faMagicWandSparkles,\n faE,\n faPenClip,\n faPenAlt,\n faBridgeCircleExclamation,\n faUser,\n faSchoolCircleCheck,\n faDumpster,\n faVanShuttle,\n faShuttleVan,\n faBuildingUser,\n faSquareCaretLeft,\n faCaretSquareLeft,\n faHighlighter,\n faKey,\n faBullhorn,\n faGlobe,\n faSynagogue,\n faPersonHalfDress,\n faRoadBridge,\n faLocationArrow,\n faC,\n faTabletButton,\n faBuildingLock,\n faPizzaSlice,\n faMoneyBillWave,\n faChartArea,\n faAreaChart,\n faHouseFlag,\n faPersonCircleMinus,\n faBan,\n faCancel,\n faCameraRotate,\n faSprayCanSparkles,\n faAirFreshener,\n faStar,\n faRepeat,\n faCross,\n faBox,\n faVenusMars,\n faArrowPointer,\n faMousePointer,\n faMaximize,\n faExpandArrowsAlt,\n faChargingStation,\n faShapes,\n faTriangleCircleSquare,\n faShuffle,\n faRandom,\n faPersonRunning,\n faRunning,\n faMobileRetro,\n faGripLinesVertical,\n faSpider,\n faHandsBound,\n faFileInvoiceDollar,\n faPlaneCircleExclamation,\n faXRay,\n faSpellCheck,\n faSlash,\n faComputerMouse,\n faMouse,\n faArrowRightToBracket,\n faSignIn,\n faShopSlash,\n faStoreAltSlash,\n faServer,\n faVirusCovidSlash,\n faShopLock,\n faHourglassStart,\n faHourglass1,\n faBlenderPhone,\n faBuildingWheat,\n faPersonBreastfeeding,\n faRightToBracket,\n faSignInAlt,\n faVenus,\n faPassport,\n faThumbtackSlash,\n faThumbTackSlash,\n faHeartPulse,\n faHeartbeat,\n faPeopleCarryBox,\n faPeopleCarry,\n faTemperatureHigh,\n faMicrochip,\n faCrown,\n faWeightHanging,\n faXmarksLines,\n faFilePrescription,\n faWeightScale,\n faWeight,\n faUserGroup,\n faUserFriends,\n faArrowUpAZ,\n faSortAlphaUp,\n faChessKnight,\n faFaceLaughSquint,\n faLaughSquint,\n faWheelchair,\n faCircleArrowUp,\n faArrowCircleUp,\n faToggleOn,\n faPersonWalking,\n faWalking,\n faL,\n faFire,\n faBedPulse,\n faProcedures,\n faShuttleSpace,\n faSpaceShuttle,\n faFaceLaugh,\n faLaugh,\n faFolderOpen,\n faHeartCirclePlus,\n faCodeFork,\n faCity,\n faMicrophoneLines,\n faMicrophoneAlt,\n faPepperHot,\n faUnlock,\n faColonSign,\n faHeadset,\n faStoreSlash,\n faRoadCircleXmark,\n faUserMinus,\n faMarsStrokeUp,\n faMarsStrokeV,\n faChampagneGlasses,\n faGlassCheers,\n faClipboard,\n faHouseCircleExclamation,\n faFileArrowUp,\n faFileUpload,\n faWifi,\n faWifi3,\n faWifiStrong,\n faBath,\n faBathtub,\n faUnderline,\n faUserPen,\n faUserEdit,\n faSignature,\n faStroopwafel,\n faBold,\n faAnchorLock,\n faBuildingNgo,\n faManatSign,\n faNotEqual,\n faBorderTopLeft,\n faBorderStyle,\n faMapLocationDot,\n faMapMarkedAlt,\n faJedi,\n faSquarePollVertical,\n faPoll,\n faMugHot,\n faCarBattery,\n faBatteryCar,\n faGift,\n faDiceTwo,\n faChessQueen,\n faGlasses,\n faChessBoard,\n faBuildingCircleCheck,\n faPersonChalkboard,\n faMarsStrokeRight,\n faMarsStrokeH,\n faHandBackFist,\n faHandRock,\n faSquareCaretUp,\n faCaretSquareUp,\n faCloudShowersWater,\n faChartBar,\n faBarChart,\n faHandsBubbles,\n faHandsWash,\n faLessThanEqual,\n faTrain,\n faEyeLowVision,\n faLowVision,\n faCrow,\n faSailboat,\n faWindowRestore,\n faSquarePlus,\n faPlusSquare,\n faToriiGate,\n faFrog,\n faBucket,\n faImage,\n faMicrophone,\n faCow,\n faCaretUp,\n faScrewdriver,\n faFolderClosed,\n faHouseTsunami,\n faSquareNfi,\n faArrowUpFromGroundWater,\n faMartiniGlass,\n faGlassMartiniAlt,\n faRotateLeft,\n faRotateBack,\n faRotateBackward,\n faUndoAlt,\n faTableColumns,\n faColumns,\n faLemon,\n faHeadSideMask,\n faHandshake,\n faGem,\n faDolly,\n faDollyBox,\n faSmoking,\n faMinimize,\n faCompressArrowsAlt,\n faMonument,\n faSnowplow,\n faAnglesRight,\n faAngleDoubleRight,\n faCannabis,\n faCirclePlay,\n faPlayCircle,\n faTablets,\n faEthernet,\n faEuroSign,\n faEur,\n faEuro,\n faChair,\n faCircleCheck,\n faCheckCircle,\n faCircleStop,\n faStopCircle,\n faCompassDrafting,\n faDraftingCompass,\n faPlateWheat,\n faIcicles,\n faPersonShelter,\n faNeuter,\n faIdBadge,\n faMarker,\n faFaceLaughBeam,\n faLaughBeam,\n faHelicopterSymbol,\n faUniversalAccess,\n faCircleChevronUp,\n faChevronCircleUp,\n faLariSign,\n faVolcano,\n faPersonWalkingDashedLineArrowRight,\n faSterlingSign,\n faGbp,\n faPoundSign,\n faViruses,\n faSquarePersonConfined,\n faUserTie,\n faArrowDownLong,\n faLongArrowDown,\n faTentArrowDownToLine,\n faCertificate,\n faReplyAll,\n faMailReplyAll,\n faSuitcase,\n faPersonSkating,\n faSkating,\n faFilterCircleDollar,\n faFunnelDollar,\n faCameraRetro,\n faCircleArrowDown,\n faArrowCircleDown,\n faFileImport,\n faArrowRightToFile,\n faSquareArrowUpRight,\n faExternalLinkSquare,\n faBoxOpen,\n faScroll,\n faSpa,\n faLocationPinLock,\n faPause,\n faHillAvalanche,\n faTemperatureEmpty,\n faTemperature0,\n faThermometer0,\n faThermometerEmpty,\n faBomb,\n faRegistered,\n faAddressCard,\n faContactCard,\n faVcard,\n faScaleUnbalancedFlip,\n faBalanceScaleRight,\n faSubscript,\n faDiamondTurnRight,\n faDirections,\n faBurst,\n faHouseLaptop,\n faLaptopHouse,\n faFaceTired,\n faTired,\n faMoneyBills,\n faSmog,\n faCrutch,\n faFontAwesome,\n faFontAwesomeFlag,\n faFontAwesomeLogoFull,\n faCloudArrowUp,\n faCloudUpload,\n faCloudUploadAlt,\n faPalette,\n faArrowsTurnRight,\n faVest,\n faFerry,\n faArrowsDownToPeople,\n faSeedling,\n faSprout,\n faLeftRight,\n faArrowsAltH,\n faBoxesPacking,\n faCircleArrowLeft,\n faArrowCircleLeft,\n faGroupArrowsRotate,\n faBowlFood,\n faCandyCane,\n faArrowDownWideShort,\n faSortAmountAsc,\n faSortAmountDown,\n faCloudBolt,\n faThunderstorm,\n faTextSlash,\n faRemoveFormat,\n faFaceSmileWink,\n faSmileWink,\n faFileWord,\n faFilePowerpoint,\n faArrowsLeftRight,\n faArrowsH,\n faHouseLock,\n faCloudArrowDown,\n faCloudDownload,\n faCloudDownloadAlt,\n faChildren,\n faChalkboard,\n faBlackboard,\n faUserLargeSlash,\n faUserAltSlash,\n faEnvelopeOpen,\n faHandshakeSimpleSlash,\n faHandshakeAltSlash,\n faMattressPillow,\n faGuaraniSign,\n faArrowsRotate,\n faRefresh,\n faSync,\n faFireExtinguisher,\n faCruzeiroSign,\n faGreaterThanEqual,\n faShieldHalved,\n faShieldAlt,\n faBookAtlas,\n faAtlas,\n faVirus,\n faEnvelopeCircleCheck,\n faLayerGroup,\n faArrowsToDot,\n faArchway,\n faHeartCircleCheck,\n faHouseChimneyCrack,\n faHouseDamage,\n faFileZipper,\n faFileArchive,\n faSquare,\n faMartiniGlassEmpty,\n faGlassMartini,\n faCouch,\n faCediSign,\n faItalic,\n faTableCellsColumnLock,\n faChurch,\n faCommentsDollar,\n faDemocrat,\n faZ,\n faPersonSkiing,\n faSkiing,\n faRoadLock,\n faA,\n faTemperatureArrowDown,\n faTemperatureDown,\n faFeatherPointed,\n faFeatherAlt,\n faP,\n faSnowflake,\n faNewspaper,\n faRectangleAd,\n faAd,\n faCircleArrowRight,\n faArrowCircleRight,\n faFilterCircleXmark,\n faLocust,\n faSort,\n faUnsorted,\n faListOl,\n faList12,\n faListNumeric,\n faPersonDressBurst,\n faMoneyCheckDollar,\n faMoneyCheckAlt,\n faVectorSquare,\n faBreadSlice,\n faLanguage,\n faFaceKissWinkHeart,\n faKissWinkHeart,\n faFilter,\n faQuestion,\n faFileSignature,\n faUpDownLeftRight,\n faArrowsAlt,\n faHouseChimneyUser,\n faHandHoldingHeart,\n faPuzzlePiece,\n faMoneyCheck,\n faStarHalfStroke,\n faStarHalfAlt,\n faCode,\n faWhiskeyGlass,\n faGlassWhiskey,\n faBuildingCircleExclamation,\n faMagnifyingGlassChart,\n faArrowUpRightFromSquare,\n faExternalLink,\n faCubesStacked,\n faWonSign,\n faKrw,\n faWon,\n faVirusCovid,\n faAustralSign,\n faF,\n faLeaf,\n faRoad,\n faTaxi,\n faCab,\n faPersonCirclePlus,\n faChartPie,\n faPieChart,\n faBoltLightning,\n faSackXmark,\n faFileExcel,\n faFileContract,\n faFishFins,\n faBuildingFlag,\n faFaceGrinBeam,\n faGrinBeam,\n faObjectUngroup,\n faPoop,\n faLocationPin,\n faMapMarker,\n faKaaba,\n faToiletPaper,\n faHelmetSafety,\n faHardHat,\n faHatHard,\n faEject,\n faCircleRight,\n faArrowAltCircleRight,\n faPlaneCircleCheck,\n faFaceRollingEyes,\n faMehRollingEyes,\n faObjectGroup,\n faChartLine,\n faLineChart,\n faMaskVentilator,\n faArrowRight,\n faSignsPost,\n faMapSigns,\n faCashRegister,\n faPersonCircleQuestion,\n faH,\n faTarp,\n faScrewdriverWrench,\n faTools,\n faArrowsToEye,\n faPlugCircleBolt,\n faHeart,\n faMarsAndVenus,\n faHouseUser,\n faHomeUser,\n faDumpsterFire,\n faHouseCrack,\n faMartiniGlassCitrus,\n faCocktail,\n faFaceSurprise,\n faSurprise,\n faBottleWater,\n faCirclePause,\n faPauseCircle,\n faToiletPaperSlash,\n faAppleWhole,\n faAppleAlt,\n faKitchenSet,\n faR,\n faTemperatureQuarter,\n faTemperature1,\n faThermometer1,\n faThermometerQuarter,\n faCube,\n faBitcoinSign,\n faShieldDog,\n faSolarPanel,\n faLockOpen,\n faElevator,\n faMoneyBillTransfer,\n faMoneyBillTrendUp,\n faHouseFloodWaterCircleArrowRight,\n faSquarePollHorizontal,\n faPollH,\n faCircle,\n faBackwardFast,\n faFastBackward,\n faRecycle,\n faUserAstronaut,\n faPlaneSlash,\n faTrademark,\n faBasketball,\n faBasketballBall,\n faSatelliteDish,\n faCircleUp,\n faArrowAltCircleUp,\n faMobileScreenButton,\n faMobileAlt,\n faVolumeHigh,\n faVolumeUp,\n faUsersRays,\n faWallet,\n faClipboardCheck,\n faFileAudio,\n faBurger,\n faHamburger,\n faWrench,\n faBugs,\n faRupeeSign,\n faRupee,\n faFileImage,\n faCircleQuestion,\n faQuestionCircle,\n faPlaneDeparture,\n faHandshakeSlash,\n faBookBookmark,\n faCodeBranch,\n faHatCowboy,\n faBridge,\n faPhoneFlip,\n faPhoneAlt,\n faTruckFront,\n faCat,\n faAnchorCircleExclamation,\n faTruckField,\n faRoute,\n faClipboardQuestion,\n faPanorama,\n faCommentMedical,\n faTeethOpen,\n faFileCircleMinus,\n faTags,\n faWineGlass,\n faForwardFast,\n faFastForward,\n faFaceMehBlank,\n faMehBlank,\n faSquareParking,\n faParking,\n faHouseSignal,\n faBarsProgress,\n faTasksAlt,\n faFaucetDrip,\n faCartFlatbed,\n faDollyFlatbed,\n faBanSmoking,\n faSmokingBan,\n faTerminal,\n faMobileButton,\n faHouseMedicalFlag,\n faBasketShopping,\n faShoppingBasket,\n faTape,\n faBusSimple,\n faBusAlt,\n faEye,\n faFaceSadCry,\n faSadCry,\n faAudioDescription,\n faPersonMilitaryToPerson,\n faFileShield,\n faUserSlash,\n faPen,\n faTowerObservation,\n faFileCode,\n faSignal,\n faSignal5,\n faSignalPerfect,\n faBus,\n faHeartCircleXmark,\n faHouseChimney,\n faHomeLg,\n faWindowMaximize,\n faFaceFrown,\n faFrown,\n faPrescription,\n faShop,\n faStoreAlt,\n faFloppyDisk,\n faSave,\n faVihara,\n faScaleUnbalanced,\n faBalanceScaleLeft,\n faSortUp,\n faSortAsc,\n faCommentDots,\n faCommenting,\n faPlantWilt,\n faDiamond,\n faFaceGrinSquint,\n faGrinSquint,\n faHandHoldingDollar,\n faHandHoldingUsd,\n faBacterium,\n faHandPointer,\n faDrumSteelpan,\n faHandScissors,\n faHandsPraying,\n faPrayingHands,\n faArrowRotateRight,\n faArrowRightRotate,\n faArrowRotateForward,\n faRedo,\n faWebAwesome,\n faBiohazard,\n faLocationCrosshairs,\n faLocation,\n faMarsDouble,\n faChildDress,\n faUsersBetweenLines,\n faLungsVirus,\n faFaceGrinTears,\n faGrinTears,\n faPhone,\n faCalendarXmark,\n faCalendarTimes,\n faChildReaching,\n faHeadSideVirus,\n faUserGear,\n faUserCog,\n faArrowUp19,\n faSortNumericUp,\n faDoorClosed,\n faShieldVirus,\n faDiceSix,\n faMosquitoNet,\n faBridgeWater,\n faPersonBooth,\n faTextWidth,\n faHatWizard,\n faPenFancy,\n faPersonDigging,\n faDigging,\n faTrash,\n faGaugeSimple,\n faGaugeSimpleMed,\n faTachometerAverage,\n faBookMedical,\n faPoo,\n faQuoteRight,\n faQuoteRightAlt,\n faShirt,\n faTShirt,\n faTshirt,\n faCubes,\n faDivide,\n faTengeSign,\n faTenge,\n faHeadphones,\n faHandsHolding,\n faHandsClapping,\n faRepublican,\n faArrowLeft,\n faPersonCircleXmark,\n faRuler,\n faAlignLeft,\n faDiceD6,\n faRestroom,\n faJ,\n faUsersViewfinder,\n faFileVideo,\n faUpRightFromSquare,\n faExternalLinkAlt,\n faTableCells,\n faTh,\n faFilePdf,\n faBookBible,\n faBible,\n faO,\n faSuitcaseMedical,\n faMedkit,\n faUserSecret,\n faOtter,\n faPersonDress,\n faFemale,\n faCommentDollar,\n faBusinessTime,\n faBriefcaseClock,\n faTableCellsLarge,\n faThLarge,\n faBookTanakh,\n faTanakh,\n faPhoneVolume,\n faVolumeControlPhone,\n faHatCowboySide,\n faClipboardUser,\n faChild,\n faLiraSign,\n faSatellite,\n faPlaneLock,\n faTag,\n faComment,\n faCakeCandles,\n faBirthdayCake,\n faCake,\n faEnvelope,\n faAnglesUp,\n faAngleDoubleUp,\n faPaperclip,\n faArrowRightToCity,\n faRibbon,\n faLungs,\n faArrowUp91,\n faSortNumericUpAlt,\n faLitecoinSign,\n faBorderNone,\n faCircleNodes,\n faParachuteBox,\n faIndent,\n faTruckFieldUn,\n faHourglass,\n faHourglassEmpty,\n faMountain,\n faUserDoctor,\n faUserMd,\n faCircleInfo,\n faInfoCircle,\n faCloudMeatball,\n faCamera,\n faCameraAlt,\n faSquareVirus,\n faMeteor,\n faCarOn,\n faSleigh,\n faArrowDown19,\n faSortNumericAsc,\n faSortNumericDown,\n faHandHoldingDroplet,\n faHandHoldingWater,\n faWater,\n faCalendarCheck,\n faBraille,\n faPrescriptionBottleMedical,\n faPrescriptionBottleAlt,\n faLandmark,\n faTruck,\n faCrosshairs,\n faPersonCane,\n faTent,\n faVestPatches,\n faCheckDouble,\n faArrowDownAZ,\n faSortAlphaAsc,\n faSortAlphaDown,\n faMoneyBillWheat,\n faCookie,\n faArrowRotateLeft,\n faArrowLeftRotate,\n faArrowRotateBack,\n faArrowRotateBackward,\n faUndo,\n faHardDrive,\n faHdd,\n faFaceGrinSquintTears,\n faGrinSquintTears,\n faDumbbell,\n faRectangleList,\n faListAlt,\n faTarpDroplet,\n faHouseMedicalCircleCheck,\n faPersonSkiingNordic,\n faSkiingNordic,\n faCalendarPlus,\n faPlaneArrival,\n faCircleLeft,\n faArrowAltCircleLeft,\n faTrainSubway,\n faSubway,\n faChartGantt,\n faIndianRupeeSign,\n faIndianRupee,\n faInr,\n faCropSimple,\n faCropAlt,\n faMoneyBill1,\n faMoneyBillAlt,\n faLeftLong,\n faLongArrowAltLeft,\n faDna,\n faVirusSlash,\n faMinus,\n faSubtract,\n faChess,\n faArrowLeftLong,\n faLongArrowLeft,\n faPlugCircleCheck,\n faStreetView,\n faFrancSign,\n faVolumeOff,\n faHandsAslInterpreting,\n faAmericanSignLanguageInterpreting,\n faAslInterpreting,\n faHandsAmericanSignLanguageInterpreting,\n faGear,\n faCog,\n faDropletSlash,\n faTintSlash,\n faMosque,\n faMosquito,\n faStarOfDavid,\n faPersonMilitaryRifle,\n faCartShopping,\n faShoppingCart,\n faVials,\n faPlugCirclePlus,\n faPlaceOfWorship,\n faGripVertical,\n faArrowTurnUp,\n faLevelUp,\n faU,\n faSquareRootVariable,\n faSquareRootAlt,\n faClock,\n faClockFour,\n faBackwardStep,\n faStepBackward,\n faPallet,\n faFaucet,\n faBaseballBatBall,\n faS,\n faTimeline,\n faKeyboard,\n faCaretDown,\n faHouseChimneyMedical,\n faClinicMedical,\n faTemperatureThreeQuarters,\n faTemperature3,\n faThermometer3,\n faThermometerThreeQuarters,\n faMobileScreen,\n faMobileAndroidAlt,\n faPlaneUp,\n faPiggyBank,\n faBatteryHalf,\n faBattery3,\n faMountainCity,\n faCoins,\n faKhanda,\n faSliders,\n faSlidersH,\n faFolderTree,\n faNetworkWired,\n faMapPin,\n faHamsa,\n faCentSign,\n faFlask,\n faPersonPregnant,\n faWandSparkles,\n faEllipsisVertical,\n faEllipsisV,\n faTicket,\n faPowerOff,\n faRightLong,\n faLongArrowAltRight,\n faFlagUsa,\n faLaptopFile,\n faTty,\n faTeletype,\n faDiagramNext,\n faPersonRifle,\n faHouseMedicalCircleExclamation,\n faClosedCaptioning,\n faPersonHiking,\n faHiking,\n faVenusDouble,\n faImages,\n faCalculator,\n faPeoplePulling,\n faN,\n faCableCar,\n faTram,\n faCloudRain,\n faBuildingCircleXmark,\n faShip,\n faArrowsDownToLine,\n faDownload,\n faFaceGrin,\n faGrin,\n faDeleteLeft,\n faBackspace,\n faEyeDropper,\n faEyeDropperEmpty,\n faEyedropper,\n faFileCircleCheck,\n faForward,\n faMobile,\n faMobileAndroid,\n faMobilePhone,\n faFaceMeh,\n faMeh,\n faAlignCenter,\n faBookSkull,\n faBookDead,\n faIdCard,\n faDriversLicense,\n faOutdent,\n faDedent,\n faHeartCircleExclamation,\n faHouse,\n faHome,\n faHomeAlt,\n faHomeLgAlt,\n faCalendarWeek,\n faLaptopMedical,\n faB,\n faFileMedical,\n faDiceOne,\n faKiwiBird,\n faArrowRightArrowLeft,\n faExchange,\n faRotateRight,\n faRedoAlt,\n faRotateForward,\n faUtensils,\n faCutlery,\n faArrowUpWideShort,\n faSortAmountUp,\n faMillSign,\n faBowlRice,\n faSkull,\n faTowerBroadcast,\n faBroadcastTower,\n faTruckPickup,\n faUpLong,\n faLongArrowAltUp,\n faStop,\n faCodeMerge,\n faUpload,\n faHurricane,\n faMound,\n faToiletPortable,\n faCompactDisc,\n faFileArrowDown,\n faFileDownload,\n faCaravan,\n faShieldCat,\n faBolt,\n faZap,\n faGlassWater,\n faOilWell,\n faVault,\n faMars,\n faToilet,\n faPlaneCircleXmark,\n faYenSign,\n faCny,\n faJpy,\n faRmb,\n faYen,\n faRubleSign,\n faRouble,\n faRub,\n faRuble,\n faSun,\n faGuitar,\n faFaceLaughWink,\n faLaughWink,\n faHorseHead,\n faBoreHole,\n faIndustry,\n faCircleDown,\n faArrowAltCircleDown,\n faArrowsTurnToDots,\n faFlorinSign,\n faArrowDownShortWide,\n faSortAmountDesc,\n faSortAmountDownAlt,\n faLessThan,\n faAngleDown,\n faCarTunnel,\n faHeadSideCough,\n faGripLines,\n faThumbsDown,\n faUserLock,\n faArrowRightLong,\n faLongArrowRight,\n faAnchorCircleXmark,\n faEllipsis,\n faEllipsisH,\n faChessPawn,\n faKitMedical,\n faFirstAid,\n faPersonThroughWindow,\n faToolbox,\n faHandsHoldingCircle,\n faBug,\n faCreditCard,\n faCreditCardAlt,\n faCar,\n faAutomobile,\n faHandHoldingHand,\n faBookOpenReader,\n faBookReader,\n faMountainSun,\n faArrowsLeftRightToLine,\n faDiceD20,\n faTruckDroplet,\n faFileCircleXmark,\n faTemperatureArrowUp,\n faTemperatureUp,\n faMedal,\n faBed,\n faSquareH,\n faHSquare,\n faPodcast,\n faTemperatureFull,\n faTemperature4,\n faThermometer4,\n faThermometerFull,\n faBell,\n faSuperscript,\n faPlugCircleXmark,\n faStarOfLife,\n faPhoneSlash,\n faPaintRoller,\n faHandshakeAngle,\n faHandsHelping,\n faLocationDot,\n faMapMarkerAlt,\n faFile,\n faGreaterThan,\n faPersonSwimming,\n faSwimmer,\n faArrowDown,\n faDroplet,\n faTint,\n faEraser,\n faEarthAmericas,\n faEarth,\n faEarthAmerica,\n faGlobeAmericas,\n faPersonBurst,\n faDove,\n faBatteryEmpty,\n faBattery0,\n faSocks,\n faInbox,\n faSection,\n faGaugeHigh,\n faTachometerAlt,\n faTachometerAltFast,\n faEnvelopeOpenText,\n faHospital,\n faHospitalAlt,\n faHospitalWide,\n faWineBottle,\n faChessRook,\n faBarsStaggered,\n faReorder,\n faStream,\n faDharmachakra,\n faHotdog,\n faPersonWalkingWithCane,\n faBlind,\n faDrum,\n faIceCream,\n faHeartCircleBolt,\n faFax,\n faParagraph,\n faCheckToSlot,\n faVoteYea,\n faStarHalf,\n faBoxesStacked,\n faBoxes,\n faBoxesAlt,\n faLink,\n faChain,\n faEarListen,\n faAssistiveListeningSystems,\n faTreeCity,\n faPlay,\n faFont,\n faTableCellsRowLock,\n faRupiahSign,\n faMagnifyingGlass,\n faSearch,\n faTableTennisPaddleBall,\n faPingPongPaddleBall,\n faTableTennis,\n faPersonDotsFromLine,\n faDiagnoses,\n faTrashCanArrowUp,\n faTrashRestoreAlt,\n faNairaSign,\n faCartArrowDown,\n faWalkieTalkie,\n faFilePen,\n faFileEdit,\n faReceipt,\n faSquarePen,\n faPenSquare,\n faPencilSquare,\n faSuitcaseRolling,\n faPersonCircleExclamation,\n faChevronDown,\n faBatteryFull,\n faBattery,\n faBattery5,\n faSkullCrossbones,\n faCodeCompare,\n faListUl,\n faListDots,\n faSchoolLock,\n faTowerCell,\n faDownLong,\n faLongArrowAltDown,\n faRankingStar,\n faChessKing,\n faPersonHarassing,\n faBrazilianRealSign,\n faLandmarkDome,\n faLandmarkAlt,\n faArrowUp,\n faTv,\n faTelevision,\n faTvAlt,\n faShrimp,\n faListCheck,\n faTasks,\n faJugDetergent,\n faCircleUser,\n faUserCircle,\n faUserShield,\n faWind,\n faCarBurst,\n faCarCrash,\n faY,\n faPersonSnowboarding,\n faSnowboarding,\n faTruckFast,\n faShippingFast,\n faFish,\n faUserGraduate,\n faCircleHalfStroke,\n faAdjust,\n faClapperboard,\n faCircleRadiation,\n faRadiationAlt,\n faBaseball,\n faBaseballBall,\n faJetFighterUp,\n faDiagramProject,\n faProjectDiagram,\n faCopy,\n faVolumeXmark,\n faVolumeMute,\n faVolumeTimes,\n faHandSparkles,\n faGrip,\n faGripHorizontal,\n faShareFromSquare,\n faShareSquare,\n faChildCombatant,\n faChildRifle,\n faGun,\n faSquarePhone,\n faPhoneSquare,\n faPlus,\n faAdd,\n faExpand,\n faComputer,\n faXmark,\n faClose,\n faMultiply,\n faRemove,\n faTimes,\n faArrowsUpDownLeftRight,\n faArrows,\n faChalkboardUser,\n faChalkboardTeacher,\n faPesoSign,\n faBuildingShield,\n faBaby,\n faUsersLine,\n faQuoteLeft,\n faQuoteLeftAlt,\n faTractor,\n faTrashArrowUp,\n faTrashRestore,\n faArrowDownUpLock,\n faLinesLeaning,\n faRulerCombined,\n faCopyright,\n faEquals,\n faBlender,\n faTeeth,\n faShekelSign,\n faIls,\n faShekel,\n faSheqel,\n faSheqelSign,\n faMap,\n faRocket,\n faPhotoFilm,\n faPhotoVideo,\n faFolderMinus,\n faStore,\n faArrowTrendUp,\n faPlugCircleMinus,\n faSignHanging,\n faSign,\n faBezierCurve,\n faBellSlash,\n faTablet,\n faTabletAndroid,\n faSchoolFlag,\n faFill,\n faAngleUp,\n faDrumstickBite,\n faHollyBerry,\n faChevronLeft,\n faBacteria,\n faHandLizard,\n faNotdef,\n faDisease,\n faBriefcaseMedical,\n faGenderless,\n faChevronRight,\n faRetweet,\n faCarRear,\n faCarAlt,\n faPumpSoap,\n faVideoSlash,\n faBatteryQuarter,\n faBattery2,\n faRadio,\n faBabyCarriage,\n faCarriageBaby,\n faTrafficLight,\n faThermometer,\n faVrCardboard,\n faHandMiddleFinger,\n faPercent,\n faPercentage,\n faTruckMoving,\n faGlassWaterDroplet,\n faDisplay,\n faFaceSmile,\n faSmile,\n faThumbtack,\n faThumbTack,\n faTrophy,\n faPersonPraying,\n faPray,\n faHammer,\n faHandPeace,\n faRotate,\n faSyncAlt,\n faSpinner,\n faRobot,\n faPeace,\n faGears,\n faCogs,\n faWarehouse,\n faArrowUpRightDots,\n faSplotch,\n faFaceGrinHearts,\n faGrinHearts,\n faDiceFour,\n faSimCard,\n faTransgender,\n faTransgenderAlt,\n faMercury,\n faArrowTurnDown,\n faLevelDown,\n faPersonFallingBurst,\n faAward,\n faTicketSimple,\n faTicketAlt,\n faBuilding,\n faAnglesLeft,\n faAngleDoubleLeft,\n faQrcode,\n faClockRotateLeft,\n faHistory,\n faFaceGrinBeamSweat,\n faGrinBeamSweat,\n faFileExport,\n faArrowRightFromFile,\n faShield,\n faShieldBlank,\n faArrowUpShortWide,\n faSortAmountUpAlt,\n faHouseMedical,\n faGolfBallTee,\n faGolfBall,\n faCircleChevronLeft,\n faChevronCircleLeft,\n faHouseChimneyWindow,\n faPenNib,\n faTentArrowTurnLeft,\n faTents,\n faWandMagic,\n faMagic,\n faDog,\n faCarrot,\n faMoon,\n faWineGlassEmpty,\n faWineGlassAlt,\n faCheese,\n faYinYang,\n faMusic,\n faCodeCommit,\n faTemperatureLow,\n faPersonBiking,\n faBiking,\n faBroom,\n faShieldHeart,\n faGopuram,\n faEarthOceania,\n faGlobeOceania,\n faSquareXmark,\n faTimesSquare,\n faXmarkSquare,\n faHashtag,\n faUpRightAndDownLeftFromCenter,\n faExpandAlt,\n faOilCan,\n faT,\n faHippo,\n faChartColumn,\n faInfinity,\n faVialCircleCheck,\n faPersonArrowDownToLine,\n faVoicemail,\n faFan,\n faPersonWalkingLuggage,\n faUpDown,\n faArrowsAltV,\n faCloudMoonRain,\n faCalendar,\n faTrailer,\n faBahai,\n faHaykal,\n faSdCard,\n faDragon,\n faShoePrints,\n faCirclePlus,\n faPlusCircle,\n faFaceGrinTongueWink,\n faGrinTongueWink,\n faHandHolding,\n faPlugCircleExclamation,\n faLinkSlash,\n faChainBroken,\n faChainSlash,\n faUnlink,\n faClone,\n faPersonWalkingArrowLoopLeft,\n faArrowUpZA,\n faSortAlphaUpAlt,\n faFireFlameCurved,\n faFireAlt,\n faTornado,\n faFileCirclePlus,\n faBookQuran,\n faQuran,\n faAnchor,\n faBorderAll,\n faFaceAngry,\n faAngry,\n faCookieBite,\n faArrowTrendDown,\n faRss,\n faFeed,\n faDrawPolygon,\n faScaleBalanced,\n faBalanceScale,\n faGaugeSimpleHigh,\n faTachometer,\n faTachometerFast,\n faShower,\n faDesktop,\n faDesktopAlt,\n faM,\n faTableList,\n faThList,\n faCommentSms,\n faSms,\n faBook,\n faUserPlus,\n faCheck,\n faBatteryThreeQuarters,\n faBattery4,\n faHouseCircleCheck,\n faAngleLeft,\n faDiagramSuccessor,\n faTruckArrowRight,\n faArrowsSplitUpAndLeft,\n faHandFist,\n faFistRaised,\n faCloudMoon,\n faBriefcase,\n faPersonFalling,\n faImagePortrait,\n faPortrait,\n faUserTag,\n faRug,\n faEarthEurope,\n faGlobeEurope,\n faCartFlatbedSuitcase,\n faLuggageCart,\n faRectangleXmark,\n faRectangleTimes,\n faTimesRectangle,\n faWindowClose,\n faBahtSign,\n faBookOpen,\n faBookJournalWhills,\n faJournalWhills,\n faHandcuffs,\n faTriangleExclamation,\n faExclamationTriangle,\n faWarning,\n faDatabase,\n faShare,\n faMailForward,\n faBottleDroplet,\n faMaskFace,\n faHillRockslide,\n faRightLeft,\n faExchangeAlt,\n faPaperPlane,\n faRoadCircleExclamation,\n faDungeon,\n faAlignRight,\n faMoneyBill1Wave,\n faMoneyBillWaveAlt,\n faLifeRing,\n faHands,\n faSignLanguage,\n faSigning,\n faCalendarDay,\n faWaterLadder,\n faLadderWater,\n faSwimmingPool,\n faArrowsUpDown,\n faArrowsV,\n faFaceGrimace,\n faGrimace,\n faWheelchairMove,\n faWheelchairAlt,\n faTurnDown,\n faLevelDownAlt,\n faPersonWalkingArrowRight,\n faSquareEnvelope,\n faEnvelopeSquare,\n faDice,\n faBowlingBall,\n faBrain,\n faBandage,\n faBandAid,\n faCalendarMinus,\n faCircleXmark,\n faTimesCircle,\n faXmarkCircle,\n faGifts,\n faHotel,\n faEarthAsia,\n faGlobeAsia,\n faIdCardClip,\n faIdCardAlt,\n faMagnifyingGlassPlus,\n faSearchPlus,\n faThumbsUp,\n faUserClock,\n faHandDots,\n faAllergies,\n faFileInvoice,\n faWindowMinimize,\n faMugSaucer,\n faCoffee,\n faBrush,\n faMask,\n faMagnifyingGlassMinus,\n faSearchMinus,\n faRulerVertical,\n faUserLarge,\n faUserAlt,\n faTrainTram,\n faUserNurse,\n faSyringe,\n faCloudSun,\n faStopwatch20,\n faSquareFull,\n faMagnet,\n faJar,\n faNoteSticky,\n faStickyNote,\n faBugSlash,\n faArrowUpFromWaterPump,\n faBone,\n faTableCellsRowUnlock,\n faUserInjured,\n faFaceSadTear,\n faSadTear,\n faPlane,\n faTentArrowsDown,\n faExclamation,\n faArrowsSpin,\n faPrint,\n faTurkishLiraSign,\n faTry,\n faTurkishLira,\n faDollarSign,\n faDollar,\n faUsd,\n faX,\n faMagnifyingGlassDollar,\n faSearchDollar,\n faUsersGear,\n faUsersCog,\n faPersonMilitaryPointing,\n faBuildingColumns,\n faBank,\n faInstitution,\n faMuseum,\n faUniversity,\n faUmbrella,\n faTrowel,\n faD,\n faStapler,\n faMasksTheater,\n faTheaterMasks,\n faKipSign,\n faHandPointLeft,\n faHandshakeSimple,\n faHandshakeAlt,\n faJetFighter,\n faFighterJet,\n faSquareShareNodes,\n faShareAltSquare,\n faBarcode,\n faPlusMinus,\n faVideo,\n faVideoCamera,\n faGraduationCap,\n faMortarBoard,\n faHandHoldingMedical,\n faPersonCircleCheck,\n faTurnUp,\n faLevelUpAlt\n};\n\nexport { icons as fas, prefix, fa0, fa1, fa2, fa3, fa4, fa5, fa6, fa7, fa8, fa9, faFillDrip, faArrowsToCircle, faCircleChevronRight, faChevronCircleRight, faAt, faTrashCan, faTrashAlt, faTextHeight, faUserXmark, faUserTimes, faStethoscope, faMessage, faCommentAlt, faInfo, faDownLeftAndUpRightToCenter, faCompressAlt, faExplosion, faFileLines, faFileAlt, faFileText, faWaveSquare, faRing, faBuildingUn, faDiceThree, faCalendarDays, faCalendarAlt, faAnchorCircleCheck, faBuildingCircleArrowRight, faVolleyball, faVolleyballBall, faArrowsUpToLine, faSortDown, faSortDesc, faCircleMinus, faMinusCircle, faDoorOpen, faRightFromBracket, faSignOutAlt, faAtom, faSoap, faIcons, faHeartMusicCameraBolt, faMicrophoneLinesSlash, faMicrophoneAltSlash, faBridgeCircleCheck, faPumpMedical, faFingerprint, faHandPointRight, faMagnifyingGlassLocation, faSearchLocation, faForwardStep, faStepForward, faFaceSmileBeam, faSmileBeam, faFlagCheckered, faFootball, faFootballBall, faSchoolCircleExclamation, faCrop, faAnglesDown, faAngleDoubleDown, faUsersRectangle, faPeopleRoof, faPeopleLine, faBeerMugEmpty, faBeer, faDiagramPredecessor, faArrowUpLong, faLongArrowUp, faFireFlameSimple, faBurn, faPerson, faMale, faLaptop, faFileCsv, faMenorah, faTruckPlane, faRecordVinyl, faFaceGrinStars, faGrinStars, faBong, faSpaghettiMonsterFlying, faPastafarianism, faArrowDownUpAcrossLine, faSpoon, faUtensilSpoon, faJarWheat, faEnvelopesBulk, faMailBulk, faFileCircleExclamation, faCircleH, faHospitalSymbol, faPager, faAddressBook, faContactBook, faStrikethrough, faK, faLandmarkFlag, faPencil, faPencilAlt, faBackward, faCaretRight, faComments, faPaste, faFileClipboard, faCodePullRequest, faClipboardList, faTruckRampBox, faTruckLoading, faUserCheck, faVialVirus, faSheetPlastic, faBlog, faUserNinja, faPersonArrowUpFromLine, faScrollTorah, faTorah, faBroomBall, faQuidditch, faQuidditchBroomBall, faToggleOff, faBoxArchive, faArchive, faPersonDrowning, faArrowDown91, faSortNumericDesc, faSortNumericDownAlt, faFaceGrinTongueSquint, faGrinTongueSquint, faSprayCan, faTruckMonster, faW, faEarthAfrica, faGlobeAfrica, faRainbow, faCircleNotch, faTabletScreenButton, faTabletAlt, faPaw, faCloud, faTrowelBricks, faFaceFlushed, faFlushed, faHospitalUser, faTentArrowLeftRight, faGavel, faLegal, faBinoculars, faMicrophoneSlash, faBoxTissue, faMotorcycle, faBellConcierge, faConciergeBell, faPenRuler, faPencilRuler, faPeopleArrows, faPeopleArrowsLeftRight, faMarsAndVenusBurst, faSquareCaretRight, faCaretSquareRight, faScissors, faCut, faSunPlantWilt, faToiletsPortable, faHockeyPuck, faTable, faMagnifyingGlassArrowRight, faTachographDigital, faDigitalTachograph, faUsersSlash, faClover, faReply, faMailReply, faStarAndCrescent, faHouseFire, faSquareMinus, faMinusSquare, faHelicopter, faCompass, faSquareCaretDown, faCaretSquareDown, faFileCircleQuestion, faLaptopCode, faSwatchbook, faPrescriptionBottle, faBars, faNavicon, faPeopleGroup, faHourglassEnd, faHourglass3, faHeartCrack, faHeartBroken, faSquareUpRight, faExternalLinkSquareAlt, faFaceKissBeam, faKissBeam, faFilm, faRulerHorizontal, faPeopleRobbery, faLightbulb, faCaretLeft, faCircleExclamation, faExclamationCircle, faSchoolCircleXmark, faArrowRightFromBracket, faSignOut, faCircleChevronDown, faChevronCircleDown, faUnlockKeyhole, faUnlockAlt, faCloudShowersHeavy, faHeadphonesSimple, faHeadphonesAlt, faSitemap, faCircleDollarToSlot, faDonate, faMemory, faRoadSpikes, faFireBurner, faFlag, faHanukiah, faFeather, faVolumeLow, faVolumeDown, faCommentSlash, faCloudSunRain, faCompress, faWheatAwn, faWheatAlt, faAnkh, faHandsHoldingChild, faAsterisk, faSquareCheck, faCheckSquare, faPesetaSign, faHeading, faHeader, faGhost, faList, faListSquares, faSquarePhoneFlip, faPhoneSquareAlt, faCartPlus, faGamepad, faCircleDot, faDotCircle, faFaceDizzy, faDizzy, faEgg, faHouseMedicalCircleXmark, faCampground, faFolderPlus, faFutbol, faFutbolBall, faSoccerBall, faPaintbrush, faPaintBrush, faLock, faGasPump, faHotTubPerson, faHotTub, faMapLocation, faMapMarked, faHouseFloodWater, faTree, faBridgeLock, faSackDollar, faPenToSquare, faEdit, faCarSide, faShareNodes, faShareAlt, faHeartCircleMinus, faHourglassHalf, faHourglass2, faMicroscope, faSink, faBagShopping, faShoppingBag, faArrowDownZA, faSortAlphaDesc, faSortAlphaDownAlt, faMitten, faPersonRays, faUsers, faEyeSlash, faFlaskVial, faHand, faHandPaper, faOm, faWorm, faHouseCircleXmark, faPlug, faChevronUp, faHandSpock, faStopwatch, faFaceKiss, faKiss, faBridgeCircleXmark, faFaceGrinTongue, faGrinTongue, faChessBishop, faFaceGrinWink, faGrinWink, faEarDeaf, faDeaf, faDeafness, faHardOfHearing, faRoadCircleCheck, faDiceFive, faSquareRss, faRssSquare, faLandMineOn, faICursor, faStamp, faStairs, faI, faHryvniaSign, faHryvnia, faPills, faFaceGrinWide, faGrinAlt, faTooth, faV, faBangladeshiTakaSign, faBicycle, faStaffSnake, faRodAsclepius, faRodSnake, faStaffAesculapius, faHeadSideCoughSlash, faTruckMedical, faAmbulance, faWheatAwnCircleExclamation, faSnowman, faMortarPestle, faRoadBarrier, faSchool, faIgloo, faJoint, faAngleRight, faHorse, faQ, faG, faNotesMedical, faTemperatureHalf, faTemperature2, faThermometer2, faThermometerHalf, faDongSign, faCapsules, faPooStorm, faPooBolt, faFaceFrownOpen, faFrownOpen, faHandPointUp, faMoneyBill, faBookmark, faAlignJustify, faUmbrellaBeach, faHelmetUn, faBullseye, faBacon, faHandPointDown, faArrowUpFromBracket, faFolder, faFolderBlank, faFileWaveform, faFileMedicalAlt, faRadiation, faChartSimple, faMarsStroke, faVial, faGauge, faDashboard, faGaugeMed, faTachometerAltAverage, faWandMagicSparkles, faMagicWandSparkles, faE, faPenClip, faPenAlt, faBridgeCircleExclamation, faUser, faSchoolCircleCheck, faDumpster, faVanShuttle, faShuttleVan, faBuildingUser, faSquareCaretLeft, faCaretSquareLeft, faHighlighter, faKey, faBullhorn, faGlobe, faSynagogue, faPersonHalfDress, faRoadBridge, faLocationArrow, faC, faTabletButton, faBuildingLock, faPizzaSlice, faMoneyBillWave, faChartArea, faAreaChart, faHouseFlag, faPersonCircleMinus, faBan, faCancel, faCameraRotate, faSprayCanSparkles, faAirFreshener, faStar, faRepeat, faCross, faBox, faVenusMars, faArrowPointer, faMousePointer, faMaximize, faExpandArrowsAlt, faChargingStation, faShapes, faTriangleCircleSquare, faShuffle, faRandom, faPersonRunning, faRunning, faMobileRetro, faGripLinesVertical, faSpider, faHandsBound, faFileInvoiceDollar, faPlaneCircleExclamation, faXRay, faSpellCheck, faSlash, faComputerMouse, faMouse, faArrowRightToBracket, faSignIn, faShopSlash, faStoreAltSlash, faServer, faVirusCovidSlash, faShopLock, faHourglassStart, faHourglass1, faBlenderPhone, faBuildingWheat, faPersonBreastfeeding, faRightToBracket, faSignInAlt, faVenus, faPassport, faThumbtackSlash, faThumbTackSlash, faHeartPulse, faHeartbeat, faPeopleCarryBox, faPeopleCarry, faTemperatureHigh, faMicrochip, faCrown, faWeightHanging, faXmarksLines, faFilePrescription, faWeightScale, faWeight, faUserGroup, faUserFriends, faArrowUpAZ, faSortAlphaUp, faChessKnight, faFaceLaughSquint, faLaughSquint, faWheelchair, faCircleArrowUp, faArrowCircleUp, faToggleOn, faPersonWalking, faWalking, faL, faFire, faBedPulse, faProcedures, faShuttleSpace, faSpaceShuttle, faFaceLaugh, faLaugh, faFolderOpen, faHeartCirclePlus, faCodeFork, faCity, faMicrophoneLines, faMicrophoneAlt, faPepperHot, faUnlock, faColonSign, faHeadset, faStoreSlash, faRoadCircleXmark, faUserMinus, faMarsStrokeUp, faMarsStrokeV, faChampagneGlasses, faGlassCheers, faClipboard, faHouseCircleExclamation, faFileArrowUp, faFileUpload, faWifi, faWifi3, faWifiStrong, faBath, faBathtub, faUnderline, faUserPen, faUserEdit, faSignature, faStroopwafel, faBold, faAnchorLock, faBuildingNgo, faManatSign, faNotEqual, faBorderTopLeft, faBorderStyle, faMapLocationDot, faMapMarkedAlt, faJedi, faSquarePollVertical, faPoll, faMugHot, faCarBattery, faBatteryCar, faGift, faDiceTwo, faChessQueen, faGlasses, faChessBoard, faBuildingCircleCheck, faPersonChalkboard, faMarsStrokeRight, faMarsStrokeH, faHandBackFist, faHandRock, faSquareCaretUp, faCaretSquareUp, faCloudShowersWater, faChartBar, faBarChart, faHandsBubbles, faHandsWash, faLessThanEqual, faTrain, faEyeLowVision, faLowVision, faCrow, faSailboat, faWindowRestore, faSquarePlus, faPlusSquare, faToriiGate, faFrog, faBucket, faImage, faMicrophone, faCow, faCaretUp, faScrewdriver, faFolderClosed, faHouseTsunami, faSquareNfi, faArrowUpFromGroundWater, faMartiniGlass, faGlassMartiniAlt, faRotateLeft, faRotateBack, faRotateBackward, faUndoAlt, faTableColumns, faColumns, faLemon, faHeadSideMask, faHandshake, faGem, faDolly, faDollyBox, faSmoking, faMinimize, faCompressArrowsAlt, faMonument, faSnowplow, faAnglesRight, faAngleDoubleRight, faCannabis, faCirclePlay, faPlayCircle, faTablets, faEthernet, faEuroSign, faEur, faEuro, faChair, faCircleCheck, faCheckCircle, faCircleStop, faStopCircle, faCompassDrafting, faDraftingCompass, faPlateWheat, faIcicles, faPersonShelter, faNeuter, faIdBadge, faMarker, faFaceLaughBeam, faLaughBeam, faHelicopterSymbol, faUniversalAccess, faCircleChevronUp, faChevronCircleUp, faLariSign, faVolcano, faPersonWalkingDashedLineArrowRight, faSterlingSign, faGbp, faPoundSign, faViruses, faSquarePersonConfined, faUserTie, faArrowDownLong, faLongArrowDown, faTentArrowDownToLine, faCertificate, faReplyAll, faMailReplyAll, faSuitcase, faPersonSkating, faSkating, faFilterCircleDollar, faFunnelDollar, faCameraRetro, faCircleArrowDown, faArrowCircleDown, faFileImport, faArrowRightToFile, faSquareArrowUpRight, faExternalLinkSquare, faBoxOpen, faScroll, faSpa, faLocationPinLock, faPause, faHillAvalanche, faTemperatureEmpty, faTemperature0, faThermometer0, faThermometerEmpty, faBomb, faRegistered, faAddressCard, faContactCard, faVcard, faScaleUnbalancedFlip, faBalanceScaleRight, faSubscript, faDiamondTurnRight, faDirections, faBurst, faHouseLaptop, faLaptopHouse, faFaceTired, faTired, faMoneyBills, faSmog, faCrutch, faFontAwesome, faFontAwesomeFlag, faFontAwesomeLogoFull, faCloudArrowUp, faCloudUpload, faCloudUploadAlt, faPalette, faArrowsTurnRight, faVest, faFerry, faArrowsDownToPeople, faSeedling, faSprout, faLeftRight, faArrowsAltH, faBoxesPacking, faCircleArrowLeft, faArrowCircleLeft, faGroupArrowsRotate, faBowlFood, faCandyCane, faArrowDownWideShort, faSortAmountAsc, faSortAmountDown, faCloudBolt, faThunderstorm, faTextSlash, faRemoveFormat, faFaceSmileWink, faSmileWink, faFileWord, faFilePowerpoint, faArrowsLeftRight, faArrowsH, faHouseLock, faCloudArrowDown, faCloudDownload, faCloudDownloadAlt, faChildren, faChalkboard, faBlackboard, faUserLargeSlash, faUserAltSlash, faEnvelopeOpen, faHandshakeSimpleSlash, faHandshakeAltSlash, faMattressPillow, faGuaraniSign, faArrowsRotate, faRefresh, faSync, faFireExtinguisher, faCruzeiroSign, faGreaterThanEqual, faShieldHalved, faShieldAlt, faBookAtlas, faAtlas, faVirus, faEnvelopeCircleCheck, faLayerGroup, faArrowsToDot, faArchway, faHeartCircleCheck, faHouseChimneyCrack, faHouseDamage, faFileZipper, faFileArchive, faSquare, faMartiniGlassEmpty, faGlassMartini, faCouch, faCediSign, faItalic, faTableCellsColumnLock, faChurch, faCommentsDollar, faDemocrat, faZ, faPersonSkiing, faSkiing, faRoadLock, faA, faTemperatureArrowDown, faTemperatureDown, faFeatherPointed, faFeatherAlt, faP, faSnowflake, faNewspaper, faRectangleAd, faAd, faCircleArrowRight, faArrowCircleRight, faFilterCircleXmark, faLocust, faSort, faUnsorted, faListOl, faList12, faListNumeric, faPersonDressBurst, faMoneyCheckDollar, faMoneyCheckAlt, faVectorSquare, faBreadSlice, faLanguage, faFaceKissWinkHeart, faKissWinkHeart, faFilter, faQuestion, faFileSignature, faUpDownLeftRight, faArrowsAlt, faHouseChimneyUser, faHandHoldingHeart, faPuzzlePiece, faMoneyCheck, faStarHalfStroke, faStarHalfAlt, faCode, faWhiskeyGlass, faGlassWhiskey, faBuildingCircleExclamation, faMagnifyingGlassChart, faArrowUpRightFromSquare, faExternalLink, faCubesStacked, faWonSign, faKrw, faWon, faVirusCovid, faAustralSign, faF, faLeaf, faRoad, faTaxi, faCab, faPersonCirclePlus, faChartPie, faPieChart, faBoltLightning, faSackXmark, faFileExcel, faFileContract, faFishFins, faBuildingFlag, faFaceGrinBeam, faGrinBeam, faObjectUngroup, faPoop, faLocationPin, faMapMarker, faKaaba, faToiletPaper, faHelmetSafety, faHardHat, faHatHard, faEject, faCircleRight, faArrowAltCircleRight, faPlaneCircleCheck, faFaceRollingEyes, faMehRollingEyes, faObjectGroup, faChartLine, faLineChart, faMaskVentilator, faArrowRight, faSignsPost, faMapSigns, faCashRegister, faPersonCircleQuestion, faH, faTarp, faScrewdriverWrench, faTools, faArrowsToEye, faPlugCircleBolt, faHeart, faMarsAndVenus, faHouseUser, faHomeUser, faDumpsterFire, faHouseCrack, faMartiniGlassCitrus, faCocktail, faFaceSurprise, faSurprise, faBottleWater, faCirclePause, faPauseCircle, faToiletPaperSlash, faAppleWhole, faAppleAlt, faKitchenSet, faR, faTemperatureQuarter, faTemperature1, faThermometer1, faThermometerQuarter, faCube, faBitcoinSign, faShieldDog, faSolarPanel, faLockOpen, faElevator, faMoneyBillTransfer, faMoneyBillTrendUp, faHouseFloodWaterCircleArrowRight, faSquarePollHorizontal, faPollH, faCircle, faBackwardFast, faFastBackward, faRecycle, faUserAstronaut, faPlaneSlash, faTrademark, faBasketball, faBasketballBall, faSatelliteDish, faCircleUp, faArrowAltCircleUp, faMobileScreenButton, faMobileAlt, faVolumeHigh, faVolumeUp, faUsersRays, faWallet, faClipboardCheck, faFileAudio, faBurger, faHamburger, faWrench, faBugs, faRupeeSign, faRupee, faFileImage, faCircleQuestion, faQuestionCircle, faPlaneDeparture, faHandshakeSlash, faBookBookmark, faCodeBranch, faHatCowboy, faBridge, faPhoneFlip, faPhoneAlt, faTruckFront, faCat, faAnchorCircleExclamation, faTruckField, faRoute, faClipboardQuestion, faPanorama, faCommentMedical, faTeethOpen, faFileCircleMinus, faTags, faWineGlass, faForwardFast, faFastForward, faFaceMehBlank, faMehBlank, faSquareParking, faParking, faHouseSignal, faBarsProgress, faTasksAlt, faFaucetDrip, faCartFlatbed, faDollyFlatbed, faBanSmoking, faSmokingBan, faTerminal, faMobileButton, faHouseMedicalFlag, faBasketShopping, faShoppingBasket, faTape, faBusSimple, faBusAlt, faEye, faFaceSadCry, faSadCry, faAudioDescription, faPersonMilitaryToPerson, faFileShield, faUserSlash, faPen, faTowerObservation, faFileCode, faSignal, faSignal5, faSignalPerfect, faBus, faHeartCircleXmark, faHouseChimney, faHomeLg, faWindowMaximize, faFaceFrown, faFrown, faPrescription, faShop, faStoreAlt, faFloppyDisk, faSave, faVihara, faScaleUnbalanced, faBalanceScaleLeft, faSortUp, faSortAsc, faCommentDots, faCommenting, faPlantWilt, faDiamond, faFaceGrinSquint, faGrinSquint, faHandHoldingDollar, faHandHoldingUsd, faBacterium, faHandPointer, faDrumSteelpan, faHandScissors, faHandsPraying, faPrayingHands, faArrowRotateRight, faArrowRightRotate, faArrowRotateForward, faRedo, faWebAwesome, faBiohazard, faLocationCrosshairs, faLocation, faMarsDouble, faChildDress, faUsersBetweenLines, faLungsVirus, faFaceGrinTears, faGrinTears, faPhone, faCalendarXmark, faCalendarTimes, faChildReaching, faHeadSideVirus, faUserGear, faUserCog, faArrowUp19, faSortNumericUp, faDoorClosed, faShieldVirus, faDiceSix, faMosquitoNet, faBridgeWater, faPersonBooth, faTextWidth, faHatWizard, faPenFancy, faPersonDigging, faDigging, faTrash, faGaugeSimple, faGaugeSimpleMed, faTachometerAverage, faBookMedical, faPoo, faQuoteRight, faQuoteRightAlt, faShirt, faTShirt, faTshirt, faCubes, faDivide, faTengeSign, faTenge, faHeadphones, faHandsHolding, faHandsClapping, faRepublican, faArrowLeft, faPersonCircleXmark, faRuler, faAlignLeft, faDiceD6, faRestroom, faJ, faUsersViewfinder, faFileVideo, faUpRightFromSquare, faExternalLinkAlt, faTableCells, faTh, faFilePdf, faBookBible, faBible, faO, faSuitcaseMedical, faMedkit, faUserSecret, faOtter, faPersonDress, faFemale, faCommentDollar, faBusinessTime, faBriefcaseClock, faTableCellsLarge, faThLarge, faBookTanakh, faTanakh, faPhoneVolume, faVolumeControlPhone, faHatCowboySide, faClipboardUser, faChild, faLiraSign, faSatellite, faPlaneLock, faTag, faComment, faCakeCandles, faBirthdayCake, faCake, faEnvelope, faAnglesUp, faAngleDoubleUp, faPaperclip, faArrowRightToCity, faRibbon, faLungs, faArrowUp91, faSortNumericUpAlt, faLitecoinSign, faBorderNone, faCircleNodes, faParachuteBox, faIndent, faTruckFieldUn, faHourglass, faHourglassEmpty, faMountain, faUserDoctor, faUserMd, faCircleInfo, faInfoCircle, faCloudMeatball, faCamera, faCameraAlt, faSquareVirus, faMeteor, faCarOn, faSleigh, faArrowDown19, faSortNumericAsc, faSortNumericDown, faHandHoldingDroplet, faHandHoldingWater, faWater, faCalendarCheck, faBraille, faPrescriptionBottleMedical, faPrescriptionBottleAlt, faLandmark, faTruck, faCrosshairs, faPersonCane, faTent, faVestPatches, faCheckDouble, faArrowDownAZ, faSortAlphaAsc, faSortAlphaDown, faMoneyBillWheat, faCookie, faArrowRotateLeft, faArrowLeftRotate, faArrowRotateBack, faArrowRotateBackward, faUndo, faHardDrive, faHdd, faFaceGrinSquintTears, faGrinSquintTears, faDumbbell, faRectangleList, faListAlt, faTarpDroplet, faHouseMedicalCircleCheck, faPersonSkiingNordic, faSkiingNordic, faCalendarPlus, faPlaneArrival, faCircleLeft, faArrowAltCircleLeft, faTrainSubway, faSubway, faChartGantt, faIndianRupeeSign, faIndianRupee, faInr, faCropSimple, faCropAlt, faMoneyBill1, faMoneyBillAlt, faLeftLong, faLongArrowAltLeft, faDna, faVirusSlash, faMinus, faSubtract, faChess, faArrowLeftLong, faLongArrowLeft, faPlugCircleCheck, faStreetView, faFrancSign, faVolumeOff, faHandsAslInterpreting, faAmericanSignLanguageInterpreting, faAslInterpreting, faHandsAmericanSignLanguageInterpreting, faGear, faCog, faDropletSlash, faTintSlash, faMosque, faMosquito, faStarOfDavid, faPersonMilitaryRifle, faCartShopping, faShoppingCart, faVials, faPlugCirclePlus, faPlaceOfWorship, faGripVertical, faArrowTurnUp, faLevelUp, faU, faSquareRootVariable, faSquareRootAlt, faClock, faClockFour, faBackwardStep, faStepBackward, faPallet, faFaucet, faBaseballBatBall, faS, faTimeline, faKeyboard, faCaretDown, faHouseChimneyMedical, faClinicMedical, faTemperatureThreeQuarters, faTemperature3, faThermometer3, faThermometerThreeQuarters, faMobileScreen, faMobileAndroidAlt, faPlaneUp, faPiggyBank, faBatteryHalf, faBattery3, faMountainCity, faCoins, faKhanda, faSliders, faSlidersH, faFolderTree, faNetworkWired, faMapPin, faHamsa, faCentSign, faFlask, faPersonPregnant, faWandSparkles, faEllipsisVertical, faEllipsisV, faTicket, faPowerOff, faRightLong, faLongArrowAltRight, faFlagUsa, faLaptopFile, faTty, faTeletype, faDiagramNext, faPersonRifle, faHouseMedicalCircleExclamation, faClosedCaptioning, faPersonHiking, faHiking, faVenusDouble, faImages, faCalculator, faPeoplePulling, faN, faCableCar, faTram, faCloudRain, faBuildingCircleXmark, faShip, faArrowsDownToLine, faDownload, faFaceGrin, faGrin, faDeleteLeft, faBackspace, faEyeDropper, faEyeDropperEmpty, faEyedropper, faFileCircleCheck, faForward, faMobile, faMobileAndroid, faMobilePhone, faFaceMeh, faMeh, faAlignCenter, faBookSkull, faBookDead, faIdCard, faDriversLicense, faOutdent, faDedent, faHeartCircleExclamation, faHouse, faHome, faHomeAlt, faHomeLgAlt, faCalendarWeek, faLaptopMedical, faB, faFileMedical, faDiceOne, faKiwiBird, faArrowRightArrowLeft, faExchange, faRotateRight, faRedoAlt, faRotateForward, faUtensils, faCutlery, faArrowUpWideShort, faSortAmountUp, faMillSign, faBowlRice, faSkull, faTowerBroadcast, faBroadcastTower, faTruckPickup, faUpLong, faLongArrowAltUp, faStop, faCodeMerge, faUpload, faHurricane, faMound, faToiletPortable, faCompactDisc, faFileArrowDown, faFileDownload, faCaravan, faShieldCat, faBolt, faZap, faGlassWater, faOilWell, faVault, faMars, faToilet, faPlaneCircleXmark, faYenSign, faCny, faJpy, faRmb, faYen, faRubleSign, faRouble, faRub, faRuble, faSun, faGuitar, faFaceLaughWink, faLaughWink, faHorseHead, faBoreHole, faIndustry, faCircleDown, faArrowAltCircleDown, faArrowsTurnToDots, faFlorinSign, faArrowDownShortWide, faSortAmountDesc, faSortAmountDownAlt, faLessThan, faAngleDown, faCarTunnel, faHeadSideCough, faGripLines, faThumbsDown, faUserLock, faArrowRightLong, faLongArrowRight, faAnchorCircleXmark, faEllipsis, faEllipsisH, faChessPawn, faKitMedical, faFirstAid, faPersonThroughWindow, faToolbox, faHandsHoldingCircle, faBug, faCreditCard, faCreditCardAlt, faCar, faAutomobile, faHandHoldingHand, faBookOpenReader, faBookReader, faMountainSun, faArrowsLeftRightToLine, faDiceD20, faTruckDroplet, faFileCircleXmark, faTemperatureArrowUp, faTemperatureUp, faMedal, faBed, faSquareH, faHSquare, faPodcast, faTemperatureFull, faTemperature4, faThermometer4, faThermometerFull, faBell, faSuperscript, faPlugCircleXmark, faStarOfLife, faPhoneSlash, faPaintRoller, faHandshakeAngle, faHandsHelping, faLocationDot, faMapMarkerAlt, faFile, faGreaterThan, faPersonSwimming, faSwimmer, faArrowDown, faDroplet, faTint, faEraser, faEarthAmericas, faEarth, faEarthAmerica, faGlobeAmericas, faPersonBurst, faDove, faBatteryEmpty, faBattery0, faSocks, faInbox, faSection, faGaugeHigh, faTachometerAlt, faTachometerAltFast, faEnvelopeOpenText, faHospital, faHospitalAlt, faHospitalWide, faWineBottle, faChessRook, faBarsStaggered, faReorder, faStream, faDharmachakra, faHotdog, faPersonWalkingWithCane, faBlind, faDrum, faIceCream, faHeartCircleBolt, faFax, faParagraph, faCheckToSlot, faVoteYea, faStarHalf, faBoxesStacked, faBoxes, faBoxesAlt, faLink, faChain, faEarListen, faAssistiveListeningSystems, faTreeCity, faPlay, faFont, faTableCellsRowLock, faRupiahSign, faMagnifyingGlass, faSearch, faTableTennisPaddleBall, faPingPongPaddleBall, faTableTennis, faPersonDotsFromLine, faDiagnoses, faTrashCanArrowUp, faTrashRestoreAlt, faNairaSign, faCartArrowDown, faWalkieTalkie, faFilePen, faFileEdit, faReceipt, faSquarePen, faPenSquare, faPencilSquare, faSuitcaseRolling, faPersonCircleExclamation, faChevronDown, faBatteryFull, faBattery, faBattery5, faSkullCrossbones, faCodeCompare, faListUl, faListDots, faSchoolLock, faTowerCell, faDownLong, faLongArrowAltDown, faRankingStar, faChessKing, faPersonHarassing, faBrazilianRealSign, faLandmarkDome, faLandmarkAlt, faArrowUp, faTv, faTelevision, faTvAlt, faShrimp, faListCheck, faTasks, faJugDetergent, faCircleUser, faUserCircle, faUserShield, faWind, faCarBurst, faCarCrash, faY, faPersonSnowboarding, faSnowboarding, faTruckFast, faShippingFast, faFish, faUserGraduate, faCircleHalfStroke, faAdjust, faClapperboard, faCircleRadiation, faRadiationAlt, faBaseball, faBaseballBall, faJetFighterUp, faDiagramProject, faProjectDiagram, faCopy, faVolumeXmark, faVolumeMute, faVolumeTimes, faHandSparkles, faGrip, faGripHorizontal, faShareFromSquare, faShareSquare, faChildCombatant, faChildRifle, faGun, faSquarePhone, faPhoneSquare, faPlus, faAdd, faExpand, faComputer, faXmark, faClose, faMultiply, faRemove, faTimes, faArrowsUpDownLeftRight, faArrows, faChalkboardUser, faChalkboardTeacher, faPesoSign, faBuildingShield, faBaby, faUsersLine, faQuoteLeft, faQuoteLeftAlt, faTractor, faTrashArrowUp, faTrashRestore, faArrowDownUpLock, faLinesLeaning, faRulerCombined, faCopyright, faEquals, faBlender, faTeeth, faShekelSign, faIls, faShekel, faSheqel, faSheqelSign, faMap, faRocket, faPhotoFilm, faPhotoVideo, faFolderMinus, faStore, faArrowTrendUp, faPlugCircleMinus, faSignHanging, faSign, faBezierCurve, faBellSlash, faTablet, faTabletAndroid, faSchoolFlag, faFill, faAngleUp, faDrumstickBite, faHollyBerry, faChevronLeft, faBacteria, faHandLizard, faNotdef, faDisease, faBriefcaseMedical, faGenderless, faChevronRight, faRetweet, faCarRear, faCarAlt, faPumpSoap, faVideoSlash, faBatteryQuarter, faBattery2, faRadio, faBabyCarriage, faCarriageBaby, faTrafficLight, faThermometer, faVrCardboard, faHandMiddleFinger, faPercent, faPercentage, faTruckMoving, faGlassWaterDroplet, faDisplay, faFaceSmile, faSmile, faThumbtack, faThumbTack, faTrophy, faPersonPraying, faPray, faHammer, faHandPeace, faRotate, faSyncAlt, faSpinner, faRobot, faPeace, faGears, faCogs, faWarehouse, faArrowUpRightDots, faSplotch, faFaceGrinHearts, faGrinHearts, faDiceFour, faSimCard, faTransgender, faTransgenderAlt, faMercury, faArrowTurnDown, faLevelDown, faPersonFallingBurst, faAward, faTicketSimple, faTicketAlt, faBuilding, faAnglesLeft, faAngleDoubleLeft, faQrcode, faClockRotateLeft, faHistory, faFaceGrinBeamSweat, faGrinBeamSweat, faFileExport, faArrowRightFromFile, faShield, faShieldBlank, faArrowUpShortWide, faSortAmountUpAlt, faHouseMedical, faGolfBallTee, faGolfBall, faCircleChevronLeft, faChevronCircleLeft, faHouseChimneyWindow, faPenNib, faTentArrowTurnLeft, faTents, faWandMagic, faMagic, faDog, faCarrot, faMoon, faWineGlassEmpty, faWineGlassAlt, faCheese, faYinYang, faMusic, faCodeCommit, faTemperatureLow, faPersonBiking, faBiking, faBroom, faShieldHeart, faGopuram, faEarthOceania, faGlobeOceania, faSquareXmark, faTimesSquare, faXmarkSquare, faHashtag, faUpRightAndDownLeftFromCenter, faExpandAlt, faOilCan, faT, faHippo, faChartColumn, faInfinity, faVialCircleCheck, faPersonArrowDownToLine, faVoicemail, faFan, faPersonWalkingLuggage, faUpDown, faArrowsAltV, faCloudMoonRain, faCalendar, faTrailer, faBahai, faHaykal, faSdCard, faDragon, faShoePrints, faCirclePlus, faPlusCircle, faFaceGrinTongueWink, faGrinTongueWink, faHandHolding, faPlugCircleExclamation, faLinkSlash, faChainBroken, faChainSlash, faUnlink, faClone, faPersonWalkingArrowLoopLeft, faArrowUpZA, faSortAlphaUpAlt, faFireFlameCurved, faFireAlt, faTornado, faFileCirclePlus, faBookQuran, faQuran, faAnchor, faBorderAll, faFaceAngry, faAngry, faCookieBite, faArrowTrendDown, faRss, faFeed, faDrawPolygon, faScaleBalanced, faBalanceScale, faGaugeSimpleHigh, faTachometer, faTachometerFast, faShower, faDesktop, faDesktopAlt, faM, faTableList, faThList, faCommentSms, faSms, faBook, faUserPlus, faCheck, faBatteryThreeQuarters, faBattery4, faHouseCircleCheck, faAngleLeft, faDiagramSuccessor, faTruckArrowRight, faArrowsSplitUpAndLeft, faHandFist, faFistRaised, faCloudMoon, faBriefcase, faPersonFalling, faImagePortrait, faPortrait, faUserTag, faRug, faEarthEurope, faGlobeEurope, faCartFlatbedSuitcase, faLuggageCart, faRectangleXmark, faRectangleTimes, faTimesRectangle, faWindowClose, faBahtSign, faBookOpen, faBookJournalWhills, faJournalWhills, faHandcuffs, faTriangleExclamation, faExclamationTriangle, faWarning, faDatabase, faShare, faMailForward, faBottleDroplet, faMaskFace, faHillRockslide, faRightLeft, faExchangeAlt, faPaperPlane, faRoadCircleExclamation, faDungeon, faAlignRight, faMoneyBill1Wave, faMoneyBillWaveAlt, faLifeRing, faHands, faSignLanguage, faSigning, faCalendarDay, faWaterLadder, faLadderWater, faSwimmingPool, faArrowsUpDown, faArrowsV, faFaceGrimace, faGrimace, faWheelchairMove, faWheelchairAlt, faTurnDown, faLevelDownAlt, faPersonWalkingArrowRight, faSquareEnvelope, faEnvelopeSquare, faDice, faBowlingBall, faBrain, faBandage, faBandAid, faCalendarMinus, faCircleXmark, faTimesCircle, faXmarkCircle, faGifts, faHotel, faEarthAsia, faGlobeAsia, faIdCardClip, faIdCardAlt, faMagnifyingGlassPlus, faSearchPlus, faThumbsUp, faUserClock, faHandDots, faAllergies, faFileInvoice, faWindowMinimize, faMugSaucer, faCoffee, faBrush, faMask, faMagnifyingGlassMinus, faSearchMinus, faRulerVertical, faUserLarge, faUserAlt, faTrainTram, faUserNurse, faSyringe, faCloudSun, faStopwatch20, faSquareFull, faMagnet, faJar, faNoteSticky, faStickyNote, faBugSlash, faArrowUpFromWaterPump, faBone, faTableCellsRowUnlock, faUserInjured, faFaceSadTear, faSadTear, faPlane, faTentArrowsDown, faExclamation, faArrowsSpin, faPrint, faTurkishLiraSign, faTry, faTurkishLira, faDollarSign, faDollar, faUsd, faX, faMagnifyingGlassDollar, faSearchDollar, faUsersGear, faUsersCog, faPersonMilitaryPointing, faBuildingColumns, faBank, faInstitution, faMuseum, faUniversity, faUmbrella, faTrowel, faD, faStapler, faMasksTheater, faTheaterMasks, faKipSign, faHandPointLeft, faHandshakeSimple, faHandshakeAlt, faJetFighter, faFighterJet, faSquareShareNodes, faShareAltSquare, faBarcode, faPlusMinus, faVideo, faVideoCamera, faGraduationCap, faMortarBoard, faHandHoldingMedical, faPersonCircleCheck, faTurnUp, faLevelUpAlt };\n","const noop = () => {};\n\nlet _WINDOW = {};\nlet _DOCUMENT = {};\nlet _MUTATION_OBSERVER = null;\nlet _PERFORMANCE = {\n mark: noop,\n measure: noop\n};\n\ntry {\n if (typeof window !== 'undefined') _WINDOW = window;\n if (typeof document !== 'undefined') _DOCUMENT = document;\n if (typeof MutationObserver !== 'undefined') _MUTATION_OBSERVER = MutationObserver;\n if (typeof performance !== 'undefined') _PERFORMANCE = performance;\n} catch (e) {}\n\nconst {\n userAgent = ''\n} = _WINDOW.navigator || {};\nconst WINDOW = _WINDOW;\nconst DOCUMENT = _DOCUMENT;\nconst MUTATION_OBSERVER = _MUTATION_OBSERVER;\nconst PERFORMANCE = _PERFORMANCE;\nconst IS_BROWSER = !!WINDOW.document;\nconst IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';\nconst IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');\n\nvar a = \"classic\",\n t = \"duotone\",\n r = \"sharp\",\n o = \"sharp-duotone\",\n c = [a, t, r, o];\n\nvar et$1 = {\n classic: {\n 900: \"fas\",\n 400: \"far\",\n normal: \"far\",\n 300: \"fal\",\n 100: \"fat\"\n },\n sharp: {\n 900: \"fass\",\n 400: \"fasr\",\n 300: \"fasl\",\n 100: \"fast\"\n },\n \"sharp-duotone\": {\n 900: \"fasds\"\n }\n};\nvar bt = {\n kit: {\n fak: \"kit\",\n \"fa-kit\": \"kit\"\n },\n \"kit-duotone\": {\n fakd: \"kit-duotone\",\n \"fa-kit-duotone\": \"kit-duotone\"\n }\n},\n Ct = [\"kit\"];\nvar Dt = /fa(s|r|l|t|d|b|k|kd|ss|sr|sl|st|sds)?[\\-\\ ]/,\n Kt = /Font ?Awesome ?([56 ]*)(Solid|Regular|Light|Thin|Duotone|Brands|Free|Pro|Sharp Duotone|Sharp|Kit)?.*/i;\nvar ao = {\n \"Font Awesome 5 Free\": {\n 900: \"fas\",\n 400: \"far\"\n },\n \"Font Awesome 5 Pro\": {\n 900: \"fas\",\n 400: \"far\",\n normal: \"far\",\n 300: \"fal\"\n },\n \"Font Awesome 5 Brands\": {\n 400: \"fab\",\n normal: \"fab\"\n },\n \"Font Awesome 5 Duotone\": {\n 900: \"fad\"\n }\n};\nvar eo = {\n \"Font Awesome 6 Free\": {\n 900: \"fas\",\n 400: \"far\"\n },\n \"Font Awesome 6 Pro\": {\n 900: \"fas\",\n 400: \"far\",\n normal: \"far\",\n 300: \"fal\",\n 100: \"fat\"\n },\n \"Font Awesome 6 Brands\": {\n 400: \"fab\",\n normal: \"fab\"\n },\n \"Font Awesome 6 Duotone\": {\n 900: \"fad\"\n },\n \"Font Awesome 6 Sharp\": {\n 900: \"fass\",\n 400: \"fasr\",\n normal: \"fasr\",\n 300: \"fasl\",\n 100: \"fast\"\n },\n \"Font Awesome 6 Sharp Duotone\": {\n 900: \"fasds\"\n }\n},\n lo = {\n classic: {\n \"fa-brands\": \"fab\",\n \"fa-duotone\": \"fad\",\n \"fa-light\": \"fal\",\n \"fa-regular\": \"far\",\n \"fa-solid\": \"fas\",\n \"fa-thin\": \"fat\"\n },\n sharp: {\n \"fa-solid\": \"fass\",\n \"fa-regular\": \"fasr\",\n \"fa-light\": \"fasl\",\n \"fa-thin\": \"fast\"\n },\n \"sharp-duotone\": {\n \"fa-solid\": \"fasds\"\n }\n},\n y = {\n classic: [\"fas\", \"far\", \"fal\", \"fat\"],\n sharp: [\"fass\", \"fasr\", \"fasl\", \"fast\"],\n \"sharp-duotone\": [\"fasds\"]\n},\n no = {\n classic: {\n fab: \"fa-brands\",\n fad: \"fa-duotone\",\n fal: \"fa-light\",\n far: \"fa-regular\",\n fas: \"fa-solid\",\n fat: \"fa-thin\"\n },\n sharp: {\n fass: \"fa-solid\",\n fasr: \"fa-regular\",\n fasl: \"fa-light\",\n fast: \"fa-thin\"\n },\n \"sharp-duotone\": {\n fasds: \"fa-solid\"\n }\n},\n fo = {\n classic: {\n solid: \"fas\",\n regular: \"far\",\n light: \"fal\",\n thin: \"fat\",\n duotone: \"fad\",\n brands: \"fab\"\n },\n sharp: {\n solid: \"fass\",\n regular: \"fasr\",\n light: \"fasl\",\n thin: \"fast\"\n },\n \"sharp-duotone\": {\n solid: \"fasds\"\n }\n},\n ho = {\n classic: {\n fa: \"solid\",\n fas: \"solid\",\n \"fa-solid\": \"solid\",\n far: \"regular\",\n \"fa-regular\": \"regular\",\n fal: \"light\",\n \"fa-light\": \"light\",\n fat: \"thin\",\n \"fa-thin\": \"thin\",\n fad: \"duotone\",\n \"fa-duotone\": \"duotone\",\n fab: \"brands\",\n \"fa-brands\": \"brands\"\n },\n sharp: {\n fa: \"solid\",\n fass: \"solid\",\n \"fa-solid\": \"solid\",\n fasr: \"regular\",\n \"fa-regular\": \"regular\",\n fasl: \"light\",\n \"fa-light\": \"light\",\n fast: \"thin\",\n \"fa-thin\": \"thin\"\n },\n \"sharp-duotone\": {\n fa: \"solid\",\n fasds: \"solid\",\n \"fa-solid\": \"solid\"\n }\n},\n x$1 = [\"solid\", \"regular\", \"light\", \"thin\", \"duotone\", \"brands\"],\n u$1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],\n m$1 = u$1.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]),\n t$1 = {\n GROUP: \"duotone-group\",\n SWAP_OPACITY: \"swap-opacity\",\n PRIMARY: \"primary\",\n SECONDARY: \"secondary\"\n},\n yo = [...Object.keys(y), ...x$1, \"2xs\", \"xs\", \"sm\", \"lg\", \"xl\", \"2xl\", \"beat\", \"border\", \"fade\", \"beat-fade\", \"bounce\", \"flip-both\", \"flip-horizontal\", \"flip-vertical\", \"flip\", \"fw\", \"inverse\", \"layers-counter\", \"layers-text\", \"layers\", \"li\", \"pull-left\", \"pull-right\", \"pulse\", \"rotate-180\", \"rotate-270\", \"rotate-90\", \"rotate-by\", \"shake\", \"spin-pulse\", \"spin-reverse\", \"spin\", \"stack-1x\", \"stack-2x\", \"stack\", \"ul\", t$1.GROUP, t$1.SWAP_OPACITY, t$1.PRIMARY, t$1.SECONDARY].concat(u$1.map(o => \"\".concat(o, \"x\"))).concat(m$1.map(o => \"w-\".concat(o)));\nvar mo = {\n \"Font Awesome Kit\": {\n 400: \"fak\",\n normal: \"fak\"\n },\n \"Font Awesome Kit Duotone\": {\n 400: \"fakd\",\n normal: \"fakd\"\n }\n},\n Io = {\n kit: {\n \"fa-kit\": \"fak\"\n },\n \"kit-duotone\": {\n \"fa-kit-duotone\": \"fakd\"\n }\n},\n Fo = {\n kit: {\n fak: \"fa-kit\"\n },\n \"kit-duotone\": {\n fakd: \"fa-kit-duotone\"\n }\n},\n So = {\n kit: {\n kit: \"fak\"\n },\n \"kit-duotone\": {\n \"kit-duotone\": \"fakd\"\n }\n};\n\nconst NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';\nconst UNITS_IN_GRID = 16;\nconst DEFAULT_CSS_PREFIX = 'fa';\nconst DEFAULT_REPLACEMENT_CLASS = 'svg-inline--fa';\nconst DATA_FA_I2SVG = 'data-fa-i2svg';\nconst DATA_FA_PSEUDO_ELEMENT = 'data-fa-pseudo-element';\nconst DATA_FA_PSEUDO_ELEMENT_PENDING = 'data-fa-pseudo-element-pending';\nconst DATA_PREFIX = 'data-prefix';\nconst DATA_ICON = 'data-icon';\nconst HTML_CLASS_I2SVG_BASE_CLASS = 'fontawesome-i2svg';\nconst MUTATION_APPROACH_ASYNC = 'async';\nconst TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS = ['HTML', 'HEAD', 'STYLE', 'SCRIPT'];\nconst PRODUCTION = (() => {\n try {\n return process.env.NODE_ENV === 'production';\n } catch (e$$1) {\n return false;\n }\n})();\nconst FAMILIES = [a, r, o];\n\nfunction familyProxy(obj) {\n // Defaults to the classic family if family is not available\n return new Proxy(obj, {\n get(target, prop) {\n return prop in target ? target[prop] : target[a];\n }\n\n });\n}\n\nconst _PREFIX_TO_STYLE = { ...ho\n};\n_PREFIX_TO_STYLE[a] = { ...ho[a],\n ...bt['kit'],\n ...bt['kit-duotone']\n};\nconst PREFIX_TO_STYLE = familyProxy(_PREFIX_TO_STYLE);\nconst _STYLE_TO_PREFIX = { ...fo\n};\n_STYLE_TO_PREFIX[a] = { ..._STYLE_TO_PREFIX[a],\n ...So['kit'],\n ...So['kit-duotone']\n};\nconst STYLE_TO_PREFIX = familyProxy(_STYLE_TO_PREFIX);\nconst _PREFIX_TO_LONG_STYLE = { ...no\n};\n_PREFIX_TO_LONG_STYLE[a] = { ..._PREFIX_TO_LONG_STYLE[a],\n ...Fo['kit']\n};\nconst PREFIX_TO_LONG_STYLE = familyProxy(_PREFIX_TO_LONG_STYLE);\nconst _LONG_STYLE_TO_PREFIX = { ...lo\n};\n_LONG_STYLE_TO_PREFIX[a] = { ..._LONG_STYLE_TO_PREFIX[a],\n ...Io['kit']\n};\nconst LONG_STYLE_TO_PREFIX = familyProxy(_LONG_STYLE_TO_PREFIX);\nconst ICON_SELECTION_SYNTAX_PATTERN = Dt; // eslint-disable-line no-useless-escape\n\nconst LAYERS_TEXT_CLASSNAME = 'fa-layers-text';\nconst FONT_FAMILY_PATTERN = Kt;\nconst _FONT_WEIGHT_TO_PREFIX = { ...et$1\n};\nconst FONT_WEIGHT_TO_PREFIX = familyProxy(_FONT_WEIGHT_TO_PREFIX);\nconst ATTRIBUTES_WATCHED_FOR_MUTATION = ['class', 'data-prefix', 'data-icon', 'data-fa-transform', 'data-fa-mask'];\nconst DUOTONE_CLASSES = t$1;\nconst prefixes = new Set();\nObject.keys(STYLE_TO_PREFIX[a]).map(prefixes.add.bind(prefixes));\nObject.keys(STYLE_TO_PREFIX[r]).map(prefixes.add.bind(prefixes));\nObject.keys(STYLE_TO_PREFIX[o]).map(prefixes.add.bind(prefixes));\nconst RESERVED_CLASSES = [...Ct, ...yo];\n\nconst initial = WINDOW.FontAwesomeConfig || {};\n\nfunction getAttrConfig(attr) {\n var element = DOCUMENT.querySelector('script[' + attr + ']');\n\n if (element) {\n return element.getAttribute(attr);\n }\n}\n\nfunction coerce(val) {\n // Getting an empty string will occur if the attribute is set on the HTML tag but without a value\n // We'll assume that this is an indication that it should be toggled to true\n if (val === '') return true;\n if (val === 'false') return false;\n if (val === 'true') return true;\n return val;\n}\n\nif (DOCUMENT && typeof DOCUMENT.querySelector === 'function') {\n const attrs = [['data-family-prefix', 'familyPrefix'], ['data-css-prefix', 'cssPrefix'], ['data-family-default', 'familyDefault'], ['data-style-default', 'styleDefault'], ['data-replacement-class', 'replacementClass'], ['data-auto-replace-svg', 'autoReplaceSvg'], ['data-auto-add-css', 'autoAddCss'], ['data-auto-a11y', 'autoA11y'], ['data-search-pseudo-elements', 'searchPseudoElements'], ['data-observe-mutations', 'observeMutations'], ['data-mutate-approach', 'mutateApproach'], ['data-keep-original-source', 'keepOriginalSource'], ['data-measure-performance', 'measurePerformance'], ['data-show-missing-icons', 'showMissingIcons']];\n attrs.forEach(_ref => {\n let [attr, key] = _ref;\n const val = coerce(getAttrConfig(attr));\n\n if (val !== undefined && val !== null) {\n initial[key] = val;\n }\n });\n}\n\nconst _default = {\n styleDefault: 'solid',\n familyDefault: 'classic',\n cssPrefix: DEFAULT_CSS_PREFIX,\n replacementClass: DEFAULT_REPLACEMENT_CLASS,\n autoReplaceSvg: true,\n autoAddCss: true,\n autoA11y: true,\n searchPseudoElements: false,\n observeMutations: true,\n mutateApproach: 'async',\n keepOriginalSource: true,\n measurePerformance: false,\n showMissingIcons: true\n}; // familyPrefix is deprecated but we must still support it if present\n\nif (initial.familyPrefix) {\n initial.cssPrefix = initial.familyPrefix;\n}\n\nconst _config = { ..._default,\n ...initial\n};\nif (!_config.autoReplaceSvg) _config.observeMutations = false;\nconst config = {};\nObject.keys(_default).forEach(key => {\n Object.defineProperty(config, key, {\n enumerable: true,\n set: function (val) {\n _config[key] = val;\n\n _onChangeCb.forEach(cb => cb(config));\n },\n get: function () {\n return _config[key];\n }\n });\n}); // familyPrefix is deprecated as of 6.2.0 and should be removed in 7.0.0\n\nObject.defineProperty(config, 'familyPrefix', {\n enumerable: true,\n set: function (val) {\n _config.cssPrefix = val;\n\n _onChangeCb.forEach(cb => cb(config));\n },\n get: function () {\n return _config.cssPrefix;\n }\n});\nWINDOW.FontAwesomeConfig = config;\nconst _onChangeCb = [];\nfunction onChange(cb) {\n _onChangeCb.push(cb);\n\n return () => {\n _onChangeCb.splice(_onChangeCb.indexOf(cb), 1);\n };\n}\n\nconst d$2 = UNITS_IN_GRID;\nconst meaninglessTransform = {\n size: 16,\n x: 0,\n y: 0,\n rotate: 0,\n flipX: false,\n flipY: false\n};\nfunction insertCss(css) {\n if (!css || !IS_DOM) {\n return;\n }\n\n const style = DOCUMENT.createElement('style');\n style.setAttribute('type', 'text/css');\n style.innerHTML = css;\n const headChildren = DOCUMENT.head.childNodes;\n let beforeChild = null;\n\n for (let i = headChildren.length - 1; i > -1; i--) {\n const child = headChildren[i];\n const tagName = (child.tagName || '').toUpperCase();\n\n if (['STYLE', 'LINK'].indexOf(tagName) > -1) {\n beforeChild = child;\n }\n }\n\n DOCUMENT.head.insertBefore(style, beforeChild);\n return css;\n}\nconst idPool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\nfunction nextUniqueId() {\n let size = 12;\n let id = '';\n\n while (size-- > 0) {\n id += idPool[Math.random() * 62 | 0];\n }\n\n return id;\n}\nfunction toArray(obj) {\n const array = [];\n\n for (let i = (obj || []).length >>> 0; i--;) {\n array[i] = obj[i];\n }\n\n return array;\n}\nfunction classArray(node) {\n if (node.classList) {\n return toArray(node.classList);\n } else {\n return (node.getAttribute('class') || '').split(' ').filter(i => i);\n }\n}\nfunction htmlEscape(str) {\n return \"\".concat(str).replace(/&/g, '&').replace(/\"/g, '"').replace(/'/g, ''').replace(//g, '>');\n}\nfunction joinAttributes(attributes) {\n return Object.keys(attributes || {}).reduce((acc, attributeName) => {\n return acc + \"\".concat(attributeName, \"=\\\"\").concat(htmlEscape(attributes[attributeName]), \"\\\" \");\n }, '').trim();\n}\nfunction joinStyles(styles) {\n return Object.keys(styles || {}).reduce((acc, styleName) => {\n return acc + \"\".concat(styleName, \": \").concat(styles[styleName].trim(), \";\");\n }, '');\n}\nfunction transformIsMeaningful(transform) {\n return transform.size !== meaninglessTransform.size || transform.x !== meaninglessTransform.x || transform.y !== meaninglessTransform.y || transform.rotate !== meaninglessTransform.rotate || transform.flipX || transform.flipY;\n}\nfunction transformForSvg(_ref) {\n let {\n transform,\n containerWidth,\n iconWidth\n } = _ref;\n const outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n const innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n const innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n const innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n const inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n const path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n return {\n outer,\n inner,\n path\n };\n}\nfunction transformForCss(_ref2) {\n let {\n transform,\n width = UNITS_IN_GRID,\n height = UNITS_IN_GRID,\n startCentered = false\n } = _ref2;\n let val = '';\n\n if (startCentered && IS_IE) {\n val += \"translate(\".concat(transform.x / d$2 - width / 2, \"em, \").concat(transform.y / d$2 - height / 2, \"em) \");\n } else if (startCentered) {\n val += \"translate(calc(-50% + \".concat(transform.x / d$2, \"em), calc(-50% + \").concat(transform.y / d$2, \"em)) \");\n } else {\n val += \"translate(\".concat(transform.x / d$2, \"em, \").concat(transform.y / d$2, \"em) \");\n }\n\n val += \"scale(\".concat(transform.size / d$2 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / d$2 * (transform.flipY ? -1 : 1), \") \");\n val += \"rotate(\".concat(transform.rotate, \"deg) \");\n return val;\n}\n\nvar baseStyles = \":root, :host {\\n --fa-font-solid: normal 900 1em/1 \\\"Font Awesome 6 Free\\\";\\n --fa-font-regular: normal 400 1em/1 \\\"Font Awesome 6 Free\\\";\\n --fa-font-light: normal 300 1em/1 \\\"Font Awesome 6 Pro\\\";\\n --fa-font-thin: normal 100 1em/1 \\\"Font Awesome 6 Pro\\\";\\n --fa-font-duotone: normal 900 1em/1 \\\"Font Awesome 6 Duotone\\\";\\n --fa-font-brands: normal 400 1em/1 \\\"Font Awesome 6 Brands\\\";\\n --fa-font-sharp-solid: normal 900 1em/1 \\\"Font Awesome 6 Sharp\\\";\\n --fa-font-sharp-regular: normal 400 1em/1 \\\"Font Awesome 6 Sharp\\\";\\n --fa-font-sharp-light: normal 300 1em/1 \\\"Font Awesome 6 Sharp\\\";\\n --fa-font-sharp-thin: normal 100 1em/1 \\\"Font Awesome 6 Sharp\\\";\\n --fa-font-sharp-duotone-solid: normal 900 1em/1 \\\"Font Awesome 6 Sharp Duotone\\\";\\n}\\n\\nsvg:not(:root).svg-inline--fa, svg:not(:host).svg-inline--fa {\\n overflow: visible;\\n box-sizing: content-box;\\n}\\n\\n.svg-inline--fa {\\n display: var(--fa-display, inline-block);\\n height: 1em;\\n overflow: visible;\\n vertical-align: -0.125em;\\n}\\n.svg-inline--fa.fa-2xs {\\n vertical-align: 0.1em;\\n}\\n.svg-inline--fa.fa-xs {\\n vertical-align: 0em;\\n}\\n.svg-inline--fa.fa-sm {\\n vertical-align: -0.0714285705em;\\n}\\n.svg-inline--fa.fa-lg {\\n vertical-align: -0.2em;\\n}\\n.svg-inline--fa.fa-xl {\\n vertical-align: -0.25em;\\n}\\n.svg-inline--fa.fa-2xl {\\n vertical-align: -0.3125em;\\n}\\n.svg-inline--fa.fa-pull-left {\\n margin-right: var(--fa-pull-margin, 0.3em);\\n width: auto;\\n}\\n.svg-inline--fa.fa-pull-right {\\n margin-left: var(--fa-pull-margin, 0.3em);\\n width: auto;\\n}\\n.svg-inline--fa.fa-li {\\n width: var(--fa-li-width, 2em);\\n top: 0.25em;\\n}\\n.svg-inline--fa.fa-fw {\\n width: var(--fa-fw-width, 1.25em);\\n}\\n\\n.fa-layers svg.svg-inline--fa {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n\\n.fa-layers-counter, .fa-layers-text {\\n display: inline-block;\\n position: absolute;\\n text-align: center;\\n}\\n\\n.fa-layers {\\n display: inline-block;\\n height: 1em;\\n position: relative;\\n text-align: center;\\n vertical-align: -0.125em;\\n width: 1em;\\n}\\n.fa-layers svg.svg-inline--fa {\\n transform-origin: center center;\\n}\\n\\n.fa-layers-text {\\n left: 50%;\\n top: 50%;\\n transform: translate(-50%, -50%);\\n transform-origin: center center;\\n}\\n\\n.fa-layers-counter {\\n background-color: var(--fa-counter-background-color, #ff253a);\\n border-radius: var(--fa-counter-border-radius, 1em);\\n box-sizing: border-box;\\n color: var(--fa-inverse, #fff);\\n line-height: var(--fa-counter-line-height, 1);\\n max-width: var(--fa-counter-max-width, 5em);\\n min-width: var(--fa-counter-min-width, 1.5em);\\n overflow: hidden;\\n padding: var(--fa-counter-padding, 0.25em 0.5em);\\n right: var(--fa-right, 0);\\n text-overflow: ellipsis;\\n top: var(--fa-top, 0);\\n transform: scale(var(--fa-counter-scale, 0.25));\\n transform-origin: top right;\\n}\\n\\n.fa-layers-bottom-right {\\n bottom: var(--fa-bottom, 0);\\n right: var(--fa-right, 0);\\n top: auto;\\n transform: scale(var(--fa-layers-scale, 0.25));\\n transform-origin: bottom right;\\n}\\n\\n.fa-layers-bottom-left {\\n bottom: var(--fa-bottom, 0);\\n left: var(--fa-left, 0);\\n right: auto;\\n top: auto;\\n transform: scale(var(--fa-layers-scale, 0.25));\\n transform-origin: bottom left;\\n}\\n\\n.fa-layers-top-right {\\n top: var(--fa-top, 0);\\n right: var(--fa-right, 0);\\n transform: scale(var(--fa-layers-scale, 0.25));\\n transform-origin: top right;\\n}\\n\\n.fa-layers-top-left {\\n left: var(--fa-left, 0);\\n right: auto;\\n top: var(--fa-top, 0);\\n transform: scale(var(--fa-layers-scale, 0.25));\\n transform-origin: top left;\\n}\\n\\n.fa-1x {\\n font-size: 1em;\\n}\\n\\n.fa-2x {\\n font-size: 2em;\\n}\\n\\n.fa-3x {\\n font-size: 3em;\\n}\\n\\n.fa-4x {\\n font-size: 4em;\\n}\\n\\n.fa-5x {\\n font-size: 5em;\\n}\\n\\n.fa-6x {\\n font-size: 6em;\\n}\\n\\n.fa-7x {\\n font-size: 7em;\\n}\\n\\n.fa-8x {\\n font-size: 8em;\\n}\\n\\n.fa-9x {\\n font-size: 9em;\\n}\\n\\n.fa-10x {\\n font-size: 10em;\\n}\\n\\n.fa-2xs {\\n font-size: 0.625em;\\n line-height: 0.1em;\\n vertical-align: 0.225em;\\n}\\n\\n.fa-xs {\\n font-size: 0.75em;\\n line-height: 0.0833333337em;\\n vertical-align: 0.125em;\\n}\\n\\n.fa-sm {\\n font-size: 0.875em;\\n line-height: 0.0714285718em;\\n vertical-align: 0.0535714295em;\\n}\\n\\n.fa-lg {\\n font-size: 1.25em;\\n line-height: 0.05em;\\n vertical-align: -0.075em;\\n}\\n\\n.fa-xl {\\n font-size: 1.5em;\\n line-height: 0.0416666682em;\\n vertical-align: -0.125em;\\n}\\n\\n.fa-2xl {\\n font-size: 2em;\\n line-height: 0.03125em;\\n vertical-align: -0.1875em;\\n}\\n\\n.fa-fw {\\n text-align: center;\\n width: 1.25em;\\n}\\n\\n.fa-ul {\\n list-style-type: none;\\n margin-left: var(--fa-li-margin, 2.5em);\\n padding-left: 0;\\n}\\n.fa-ul > li {\\n position: relative;\\n}\\n\\n.fa-li {\\n left: calc(-1 * var(--fa-li-width, 2em));\\n position: absolute;\\n text-align: center;\\n width: var(--fa-li-width, 2em);\\n line-height: inherit;\\n}\\n\\n.fa-border {\\n border-color: var(--fa-border-color, #eee);\\n border-radius: var(--fa-border-radius, 0.1em);\\n border-style: var(--fa-border-style, solid);\\n border-width: var(--fa-border-width, 0.08em);\\n padding: var(--fa-border-padding, 0.2em 0.25em 0.15em);\\n}\\n\\n.fa-pull-left {\\n float: left;\\n margin-right: var(--fa-pull-margin, 0.3em);\\n}\\n\\n.fa-pull-right {\\n float: right;\\n margin-left: var(--fa-pull-margin, 0.3em);\\n}\\n\\n.fa-beat {\\n animation-name: fa-beat;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n}\\n\\n.fa-bounce {\\n animation-name: fa-bounce;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\\n}\\n\\n.fa-fade {\\n animation-name: fa-fade;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n}\\n\\n.fa-beat-fade {\\n animation-name: fa-beat-fade;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n}\\n\\n.fa-flip {\\n animation-name: fa-flip;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n}\\n\\n.fa-shake {\\n animation-name: fa-shake;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, linear);\\n}\\n\\n.fa-spin {\\n animation-name: fa-spin;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 2s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, linear);\\n}\\n\\n.fa-spin-reverse {\\n --fa-animation-direction: reverse;\\n}\\n\\n.fa-pulse,\\n.fa-spin-pulse {\\n animation-name: fa-spin;\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, steps(8));\\n}\\n\\n@media (prefers-reduced-motion: reduce) {\\n .fa-beat,\\n.fa-bounce,\\n.fa-fade,\\n.fa-beat-fade,\\n.fa-flip,\\n.fa-pulse,\\n.fa-shake,\\n.fa-spin,\\n.fa-spin-pulse {\\n animation-delay: -1ms;\\n animation-duration: 1ms;\\n animation-iteration-count: 1;\\n transition-delay: 0s;\\n transition-duration: 0s;\\n }\\n}\\n@keyframes fa-beat {\\n 0%, 90% {\\n transform: scale(1);\\n }\\n 45% {\\n transform: scale(var(--fa-beat-scale, 1.25));\\n }\\n}\\n@keyframes fa-bounce {\\n 0% {\\n transform: scale(1, 1) translateY(0);\\n }\\n 10% {\\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\\n }\\n 30% {\\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\\n }\\n 50% {\\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\\n }\\n 57% {\\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\\n }\\n 64% {\\n transform: scale(1, 1) translateY(0);\\n }\\n 100% {\\n transform: scale(1, 1) translateY(0);\\n }\\n}\\n@keyframes fa-fade {\\n 50% {\\n opacity: var(--fa-fade-opacity, 0.4);\\n }\\n}\\n@keyframes fa-beat-fade {\\n 0%, 100% {\\n opacity: var(--fa-beat-fade-opacity, 0.4);\\n transform: scale(1);\\n }\\n 50% {\\n opacity: 1;\\n transform: scale(var(--fa-beat-fade-scale, 1.125));\\n }\\n}\\n@keyframes fa-flip {\\n 50% {\\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\\n }\\n}\\n@keyframes fa-shake {\\n 0% {\\n transform: rotate(-15deg);\\n }\\n 4% {\\n transform: rotate(15deg);\\n }\\n 8%, 24% {\\n transform: rotate(-18deg);\\n }\\n 12%, 28% {\\n transform: rotate(18deg);\\n }\\n 16% {\\n transform: rotate(-22deg);\\n }\\n 20% {\\n transform: rotate(22deg);\\n }\\n 32% {\\n transform: rotate(-12deg);\\n }\\n 36% {\\n transform: rotate(12deg);\\n }\\n 40%, 100% {\\n transform: rotate(0deg);\\n }\\n}\\n@keyframes fa-spin {\\n 0% {\\n transform: rotate(0deg);\\n }\\n 100% {\\n transform: rotate(360deg);\\n }\\n}\\n.fa-rotate-90 {\\n transform: rotate(90deg);\\n}\\n\\n.fa-rotate-180 {\\n transform: rotate(180deg);\\n}\\n\\n.fa-rotate-270 {\\n transform: rotate(270deg);\\n}\\n\\n.fa-flip-horizontal {\\n transform: scale(-1, 1);\\n}\\n\\n.fa-flip-vertical {\\n transform: scale(1, -1);\\n}\\n\\n.fa-flip-both,\\n.fa-flip-horizontal.fa-flip-vertical {\\n transform: scale(-1, -1);\\n}\\n\\n.fa-rotate-by {\\n transform: rotate(var(--fa-rotate-angle, 0));\\n}\\n\\n.fa-stack {\\n display: inline-block;\\n vertical-align: middle;\\n height: 2em;\\n position: relative;\\n width: 2.5em;\\n}\\n\\n.fa-stack-1x,\\n.fa-stack-2x {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0;\\n z-index: var(--fa-stack-z-index, auto);\\n}\\n\\n.svg-inline--fa.fa-stack-1x {\\n height: 1em;\\n width: 1.25em;\\n}\\n.svg-inline--fa.fa-stack-2x {\\n height: 2em;\\n width: 2.5em;\\n}\\n\\n.fa-inverse {\\n color: var(--fa-inverse, #fff);\\n}\\n\\n.sr-only,\\n.fa-sr-only {\\n position: absolute;\\n width: 1px;\\n height: 1px;\\n padding: 0;\\n margin: -1px;\\n overflow: hidden;\\n clip: rect(0, 0, 0, 0);\\n white-space: nowrap;\\n border-width: 0;\\n}\\n\\n.sr-only-focusable:not(:focus),\\n.fa-sr-only-focusable:not(:focus) {\\n position: absolute;\\n width: 1px;\\n height: 1px;\\n padding: 0;\\n margin: -1px;\\n overflow: hidden;\\n clip: rect(0, 0, 0, 0);\\n white-space: nowrap;\\n border-width: 0;\\n}\\n\\n.svg-inline--fa .fa-primary {\\n fill: var(--fa-primary-color, currentColor);\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa .fa-secondary {\\n fill: var(--fa-secondary-color, currentColor);\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-primary {\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa mask .fa-primary,\\n.svg-inline--fa mask .fa-secondary {\\n fill: black;\\n}\\n\\n.fad.fa-inverse,\\n.fa-duotone.fa-inverse {\\n color: var(--fa-inverse, #fff);\\n}\";\n\nfunction css() {\n const dcp = DEFAULT_CSS_PREFIX;\n const drc = DEFAULT_REPLACEMENT_CLASS;\n const fp = config.cssPrefix;\n const rc = config.replacementClass;\n let s = baseStyles;\n\n if (fp !== dcp || rc !== drc) {\n const dPatt = new RegExp(\"\\\\.\".concat(dcp, \"\\\\-\"), 'g');\n const customPropPatt = new RegExp(\"\\\\--\".concat(dcp, \"\\\\-\"), 'g');\n const rPatt = new RegExp(\"\\\\.\".concat(drc), 'g');\n s = s.replace(dPatt, \".\".concat(fp, \"-\")).replace(customPropPatt, \"--\".concat(fp, \"-\")).replace(rPatt, \".\".concat(rc));\n }\n\n return s;\n}\n\nlet _cssInserted = false;\n\nfunction ensureCss() {\n if (config.autoAddCss && !_cssInserted) {\n insertCss(css());\n _cssInserted = true;\n }\n}\n\nvar InjectCSS = {\n mixout() {\n return {\n dom: {\n css,\n insertCss: ensureCss\n }\n };\n },\n\n hooks() {\n return {\n beforeDOMElementCreation() {\n ensureCss();\n },\n\n beforeI2svg() {\n ensureCss();\n }\n\n };\n }\n\n};\n\nconst w$1 = WINDOW || {};\nif (!w$1[NAMESPACE_IDENTIFIER]) w$1[NAMESPACE_IDENTIFIER] = {};\nif (!w$1[NAMESPACE_IDENTIFIER].styles) w$1[NAMESPACE_IDENTIFIER].styles = {};\nif (!w$1[NAMESPACE_IDENTIFIER].hooks) w$1[NAMESPACE_IDENTIFIER].hooks = {};\nif (!w$1[NAMESPACE_IDENTIFIER].shims) w$1[NAMESPACE_IDENTIFIER].shims = [];\nvar namespace = w$1[NAMESPACE_IDENTIFIER];\n\nconst functions = [];\n\nconst listener = function () {\n DOCUMENT.removeEventListener('DOMContentLoaded', listener);\n loaded = 1;\n functions.map(fn => fn());\n};\n\nlet loaded = false;\n\nif (IS_DOM) {\n loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState);\n if (!loaded) DOCUMENT.addEventListener('DOMContentLoaded', listener);\n}\n\nfunction domready (fn) {\n if (!IS_DOM) return;\n loaded ? setTimeout(fn, 0) : functions.push(fn);\n}\n\nfunction toHtml(abstractNodes) {\n const {\n tag,\n attributes = {},\n children = []\n } = abstractNodes;\n\n if (typeof abstractNodes === 'string') {\n return htmlEscape(abstractNodes);\n } else {\n return \"<\".concat(tag, \" \").concat(joinAttributes(attributes), \">\").concat(children.map(toHtml).join(''), \"\");\n }\n}\n\nfunction iconFromMapping(mapping, prefix, iconName) {\n if (mapping && mapping[prefix] && mapping[prefix][iconName]) {\n return {\n prefix,\n iconName,\n icon: mapping[prefix][iconName]\n };\n }\n}\n\n/**\n * Internal helper to bind a function known to have 4 arguments\n * to a given context.\n */\n\nvar bindInternal4 = function bindInternal4(func, thisContext) {\n return function (a, b, c, d) {\n return func.call(thisContext, a, b, c, d);\n };\n};\n\n/**\n * # Reduce\n *\n * A fast object `.reduce()` implementation.\n *\n * @param {Object} subject The object to reduce over.\n * @param {Function} fn The reducer function.\n * @param {mixed} initialValue The initial value for the reducer, defaults to subject[0].\n * @param {Object} thisContext The context for the reducer.\n * @return {mixed} The final result.\n */\n\n\nvar reduce = function fastReduceObject(subject, fn, initialValue, thisContext) {\n var keys = Object.keys(subject),\n length = keys.length,\n iterator = thisContext !== undefined ? bindInternal4(fn, thisContext) : fn,\n i,\n key,\n result;\n\n if (initialValue === undefined) {\n i = 1;\n result = subject[keys[0]];\n } else {\n i = 0;\n result = initialValue;\n }\n\n for (; i < length; i++) {\n key = keys[i];\n result = iterator(result, subject[key], key, subject);\n }\n\n return result;\n};\n\n/**\n * ucs2decode() and codePointAt() are both works of Mathias Bynens and licensed under MIT\n *\n * Copyright Mathias Bynens \n\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\nfunction ucs2decode(string) {\n const output = [];\n let counter = 0;\n const length = string.length;\n\n while (counter < length) {\n const value = string.charCodeAt(counter++);\n\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n const extra = string.charCodeAt(counter++);\n\n if ((extra & 0xFC00) == 0xDC00) {\n // eslint-disable-line eqeqeq\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n\n return output;\n}\n\nfunction toHex(unicode) {\n const decoded = ucs2decode(unicode);\n return decoded.length === 1 ? decoded[0].toString(16) : null;\n}\nfunction codePointAt(string, index) {\n const size = string.length;\n let first = string.charCodeAt(index);\n let second;\n\n if (first >= 0xD800 && first <= 0xDBFF && size > index + 1) {\n second = string.charCodeAt(index + 1);\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n\n return first;\n}\n\nfunction normalizeIcons(icons) {\n return Object.keys(icons).reduce((acc, iconName) => {\n const icon = icons[iconName];\n const expanded = !!icon.icon;\n\n if (expanded) {\n acc[icon.iconName] = icon.icon;\n } else {\n acc[iconName] = icon;\n }\n\n return acc;\n }, {});\n}\n\nfunction defineIcons(prefix, icons) {\n let params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n const {\n skipHooks = false\n } = params;\n const normalized = normalizeIcons(icons);\n\n if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n namespace.hooks.addPack(prefix, normalizeIcons(icons));\n } else {\n namespace.styles[prefix] = { ...(namespace.styles[prefix] || {}),\n ...normalized\n };\n }\n /**\n * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n * for `fas` so we'll ease the upgrade process for our users by automatically defining\n * this as well.\n */\n\n\n if (prefix === 'fas') {\n defineIcons('fa', icons);\n }\n}\n\nconst {\n styles,\n shims\n} = namespace;\nconst LONG_STYLE = {\n [a]: Object.values(PREFIX_TO_LONG_STYLE[a]),\n [r]: Object.values(PREFIX_TO_LONG_STYLE[r]),\n [o]: Object.values(PREFIX_TO_LONG_STYLE[o])\n};\nlet _defaultUsablePrefix = null;\nlet _byUnicode = {};\nlet _byLigature = {};\nlet _byOldName = {};\nlet _byOldUnicode = {};\nlet _byAlias = {};\nconst PREFIXES = {\n [a]: Object.keys(PREFIX_TO_STYLE[a]),\n [r]: Object.keys(PREFIX_TO_STYLE[r]),\n [o]: Object.keys(PREFIX_TO_STYLE[o])\n};\n\nfunction isReserved(name) {\n return ~RESERVED_CLASSES.indexOf(name);\n}\n\nfunction getIconName(cssPrefix, cls) {\n const parts = cls.split('-');\n const prefix = parts[0];\n const iconName = parts.slice(1).join('-');\n\n if (prefix === cssPrefix && iconName !== '' && !isReserved(iconName)) {\n return iconName;\n } else {\n return null;\n }\n}\nconst build = () => {\n const lookup = reducer => {\n return reduce(styles, (o$$1, style, prefix) => {\n o$$1[prefix] = reduce(style, reducer, {});\n return o$$1;\n }, {});\n };\n\n _byUnicode = lookup((acc, icon, iconName) => {\n if (icon[3]) {\n acc[icon[3]] = iconName;\n }\n\n if (icon[2]) {\n const aliases = icon[2].filter(a$$1 => {\n return typeof a$$1 === 'number';\n });\n aliases.forEach(alias => {\n acc[alias.toString(16)] = iconName;\n });\n }\n\n return acc;\n });\n _byLigature = lookup((acc, icon, iconName) => {\n acc[iconName] = iconName;\n\n if (icon[2]) {\n const aliases = icon[2].filter(a$$1 => {\n return typeof a$$1 === 'string';\n });\n aliases.forEach(alias => {\n acc[alias] = iconName;\n });\n }\n\n return acc;\n });\n _byAlias = lookup((acc, icon, iconName) => {\n const aliases = icon[2];\n acc[iconName] = iconName;\n aliases.forEach(alias => {\n acc[alias] = iconName;\n });\n return acc;\n }); // If we have a Kit, we can't determine if regular is available since we\n // could be auto-fetching it. We'll have to assume that it is available.\n\n const hasRegular = 'far' in styles || config.autoFetchSvg;\n const shimLookups = reduce(shims, (acc, shim) => {\n const maybeNameMaybeUnicode = shim[0];\n let prefix = shim[1];\n const iconName = shim[2];\n\n if (prefix === 'far' && !hasRegular) {\n prefix = 'fas';\n }\n\n if (typeof maybeNameMaybeUnicode === 'string') {\n acc.names[maybeNameMaybeUnicode] = {\n prefix,\n iconName\n };\n }\n\n if (typeof maybeNameMaybeUnicode === 'number') {\n acc.unicodes[maybeNameMaybeUnicode.toString(16)] = {\n prefix,\n iconName\n };\n }\n\n return acc;\n }, {\n names: {},\n unicodes: {}\n });\n _byOldName = shimLookups.names;\n _byOldUnicode = shimLookups.unicodes;\n _defaultUsablePrefix = getCanonicalPrefix(config.styleDefault, {\n family: config.familyDefault\n });\n};\nonChange(c$$1 => {\n _defaultUsablePrefix = getCanonicalPrefix(c$$1.styleDefault, {\n family: config.familyDefault\n });\n});\nbuild();\nfunction byUnicode(prefix, unicode) {\n return (_byUnicode[prefix] || {})[unicode];\n}\nfunction byLigature(prefix, ligature) {\n return (_byLigature[prefix] || {})[ligature];\n}\nfunction byAlias(prefix, alias) {\n return (_byAlias[prefix] || {})[alias];\n}\nfunction byOldName(name) {\n return _byOldName[name] || {\n prefix: null,\n iconName: null\n };\n}\nfunction byOldUnicode(unicode) {\n const oldUnicode = _byOldUnicode[unicode];\n const newUnicode = byUnicode('fas', unicode);\n return oldUnicode || (newUnicode ? {\n prefix: 'fas',\n iconName: newUnicode\n } : null) || {\n prefix: null,\n iconName: null\n };\n}\nfunction getDefaultUsablePrefix() {\n return _defaultUsablePrefix;\n}\nconst emptyCanonicalIcon = () => {\n return {\n prefix: null,\n iconName: null,\n rest: []\n };\n};\nfunction getCanonicalPrefix(styleOrPrefix) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const {\n family = a\n } = params;\n const style = PREFIX_TO_STYLE[family][styleOrPrefix];\n const prefix = STYLE_TO_PREFIX[family][styleOrPrefix] || STYLE_TO_PREFIX[family][style];\n const defined = styleOrPrefix in namespace.styles ? styleOrPrefix : null;\n const result = prefix || defined || null;\n return result;\n}\nconst PREFIXES_FOR_FAMILY = {\n [a]: Object.keys(PREFIX_TO_LONG_STYLE[a]),\n [r]: Object.keys(PREFIX_TO_LONG_STYLE[r]),\n [o]: Object.keys(PREFIX_TO_LONG_STYLE[o])\n};\nfunction getCanonicalIcon(values) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const {\n skipLookups = false\n } = params;\n const famProps = {\n [a]: \"\".concat(config.cssPrefix, \"-\").concat(a),\n [r]: \"\".concat(config.cssPrefix, \"-\").concat(r),\n [o]: \"\".concat(config.cssPrefix, \"-\").concat(o)\n };\n let givenPrefix = null;\n let family = a;\n const nonDuotoneFamilyIds = c.filter(familyId => familyId !== t);\n nonDuotoneFamilyIds.forEach(familyId => {\n if (values.includes(famProps[familyId]) || values.some(v$$1 => PREFIXES_FOR_FAMILY[familyId].includes(v$$1))) {\n family = familyId;\n }\n });\n const canonical = values.reduce((acc, cls) => {\n const iconName = getIconName(config.cssPrefix, cls);\n\n if (styles[cls]) {\n cls = LONG_STYLE[family].includes(cls) ? LONG_STYLE_TO_PREFIX[family][cls] : cls;\n givenPrefix = cls;\n acc.prefix = cls;\n } else if (PREFIXES[family].indexOf(cls) > -1) {\n givenPrefix = cls;\n acc.prefix = getCanonicalPrefix(cls, {\n family\n });\n } else if (iconName) {\n acc.iconName = iconName;\n } else if (cls !== config.replacementClass && !nonDuotoneFamilyIds.some(familyName => cls === famProps[familyName])) {\n acc.rest.push(cls);\n }\n\n if (!skipLookups && acc.prefix && acc.iconName) {\n const shim = givenPrefix === 'fa' ? byOldName(acc.iconName) : {};\n const aliasIconName = byAlias(acc.prefix, acc.iconName);\n\n if (shim.prefix) {\n givenPrefix = null;\n }\n\n acc.iconName = shim.iconName || aliasIconName || acc.iconName;\n acc.prefix = shim.prefix || acc.prefix;\n\n if (acc.prefix === 'far' && !styles['far'] && styles['fas'] && !config.autoFetchSvg) {\n // Allow a fallback from the regular style to solid if regular is not available\n // but only if we aren't auto-fetching SVGs\n acc.prefix = 'fas';\n }\n }\n\n return acc;\n }, emptyCanonicalIcon());\n\n if (values.includes('fa-brands') || values.includes('fab')) {\n canonical.prefix = 'fab';\n }\n\n if (values.includes('fa-duotone') || values.includes('fad')) {\n canonical.prefix = 'fad';\n }\n\n if (!canonical.prefix && family === r && (styles['fass'] || config.autoFetchSvg)) {\n canonical.prefix = 'fass';\n canonical.iconName = byAlias(canonical.prefix, canonical.iconName) || canonical.iconName;\n }\n\n if (!canonical.prefix && family === o && (styles['fasds'] || config.autoFetchSvg)) {\n canonical.prefix = 'fasds';\n canonical.iconName = byAlias(canonical.prefix, canonical.iconName) || canonical.iconName;\n }\n\n if (canonical.prefix === 'fa' || givenPrefix === 'fa') {\n // The fa prefix is not canonical. So if it has made it through until this point\n // we will shift it to the correct prefix.\n canonical.prefix = getDefaultUsablePrefix() || 'fas';\n }\n\n return canonical;\n}\n\nclass Library {\n constructor() {\n this.definitions = {};\n }\n\n add() {\n for (var _len = arguments.length, definitions = new Array(_len), _key = 0; _key < _len; _key++) {\n definitions[_key] = arguments[_key];\n }\n\n const additions = definitions.reduce(this._pullDefinitions, {});\n Object.keys(additions).forEach(key => {\n this.definitions[key] = { ...(this.definitions[key] || {}),\n ...additions[key]\n };\n defineIcons(key, additions[key]); // TODO can we stop doing this? We can't get the icons by 'fa-solid' any longer so this probably needs to change\n\n const longPrefix = PREFIX_TO_LONG_STYLE[a][key];\n if (longPrefix) defineIcons(longPrefix, additions[key]);\n build();\n });\n }\n\n reset() {\n this.definitions = {};\n }\n\n _pullDefinitions(additions, definition) {\n const normalized = definition.prefix && definition.iconName && definition.icon ? {\n 0: definition\n } : definition;\n Object.keys(normalized).map(key => {\n const {\n prefix,\n iconName,\n icon\n } = normalized[key];\n const aliases = icon[2];\n if (!additions[prefix]) additions[prefix] = {};\n\n if (aliases.length > 0) {\n aliases.forEach(alias => {\n if (typeof alias === 'string') {\n additions[prefix][alias] = icon;\n }\n });\n }\n\n additions[prefix][iconName] = icon;\n });\n return additions;\n }\n\n}\n\nlet _plugins = [];\nlet _hooks = {};\nconst providers = {};\nconst defaultProviderKeys = Object.keys(providers);\nfunction registerPlugins(nextPlugins, _ref) {\n let {\n mixoutsTo: obj\n } = _ref;\n _plugins = nextPlugins;\n _hooks = {};\n Object.keys(providers).forEach(k => {\n if (defaultProviderKeys.indexOf(k) === -1) {\n delete providers[k];\n }\n });\n\n _plugins.forEach(plugin => {\n const mixout = plugin.mixout ? plugin.mixout() : {};\n Object.keys(mixout).forEach(tk => {\n if (typeof mixout[tk] === 'function') {\n obj[tk] = mixout[tk];\n }\n\n if (typeof mixout[tk] === 'object') {\n Object.keys(mixout[tk]).forEach(sk => {\n if (!obj[tk]) {\n obj[tk] = {};\n }\n\n obj[tk][sk] = mixout[tk][sk];\n });\n }\n });\n\n if (plugin.hooks) {\n const hooks = plugin.hooks();\n Object.keys(hooks).forEach(hook => {\n if (!_hooks[hook]) {\n _hooks[hook] = [];\n }\n\n _hooks[hook].push(hooks[hook]);\n });\n }\n\n if (plugin.provides) {\n plugin.provides(providers);\n }\n });\n\n return obj;\n}\nfunction chainHooks(hook, accumulator) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n const hookFns = _hooks[hook] || [];\n hookFns.forEach(hookFn => {\n accumulator = hookFn.apply(null, [accumulator, ...args]); // eslint-disable-line no-useless-call\n });\n return accumulator;\n}\nfunction callHooks(hook) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n const hookFns = _hooks[hook] || [];\n hookFns.forEach(hookFn => {\n hookFn.apply(null, args);\n });\n return undefined;\n}\nfunction callProvided() {\n const hook = arguments[0];\n const args = Array.prototype.slice.call(arguments, 1);\n return providers[hook] ? providers[hook].apply(null, args) : undefined;\n}\n\nfunction findIconDefinition(iconLookup) {\n if (iconLookup.prefix === 'fa') {\n iconLookup.prefix = 'fas';\n }\n\n let {\n iconName\n } = iconLookup;\n const prefix = iconLookup.prefix || getDefaultUsablePrefix();\n if (!iconName) return;\n iconName = byAlias(prefix, iconName) || iconName;\n return iconFromMapping(library.definitions, prefix, iconName) || iconFromMapping(namespace.styles, prefix, iconName);\n}\nconst library = new Library();\nconst noAuto = () => {\n config.autoReplaceSvg = false;\n config.observeMutations = false;\n callHooks('noAuto');\n};\nconst dom = {\n i2svg: function () {\n let params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (IS_DOM) {\n callHooks('beforeI2svg', params);\n callProvided('pseudoElements2svg', params);\n return callProvided('i2svg', params);\n } else {\n return Promise.reject(new Error('Operation requires a DOM of some kind.'));\n }\n },\n watch: function () {\n let params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const {\n autoReplaceSvgRoot\n } = params;\n\n if (config.autoReplaceSvg === false) {\n config.autoReplaceSvg = true;\n }\n\n config.observeMutations = true;\n domready(() => {\n autoReplace({\n autoReplaceSvgRoot\n });\n callHooks('watch', params);\n });\n }\n};\nconst parse = {\n icon: icon => {\n if (icon === null) {\n return null;\n }\n\n if (typeof icon === 'object' && icon.prefix && icon.iconName) {\n return {\n prefix: icon.prefix,\n iconName: byAlias(icon.prefix, icon.iconName) || icon.iconName\n };\n }\n\n if (Array.isArray(icon) && icon.length === 2) {\n const iconName = icon[1].indexOf('fa-') === 0 ? icon[1].slice(3) : icon[1];\n const prefix = getCanonicalPrefix(icon[0]);\n return {\n prefix,\n iconName: byAlias(prefix, iconName) || iconName\n };\n }\n\n if (typeof icon === 'string' && (icon.indexOf(\"\".concat(config.cssPrefix, \"-\")) > -1 || icon.match(ICON_SELECTION_SYNTAX_PATTERN))) {\n const canonicalIcon = getCanonicalIcon(icon.split(' '), {\n skipLookups: true\n });\n return {\n prefix: canonicalIcon.prefix || getDefaultUsablePrefix(),\n iconName: byAlias(canonicalIcon.prefix, canonicalIcon.iconName) || canonicalIcon.iconName\n };\n }\n\n if (typeof icon === 'string') {\n const prefix = getDefaultUsablePrefix();\n return {\n prefix,\n iconName: byAlias(prefix, icon) || icon\n };\n }\n }\n};\nconst api = {\n noAuto,\n config,\n dom,\n parse,\n library,\n findIconDefinition,\n toHtml\n};\n\nconst autoReplace = function () {\n let params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const {\n autoReplaceSvgRoot = DOCUMENT\n } = params;\n if ((Object.keys(namespace.styles).length > 0 || config.autoFetchSvg) && IS_DOM && config.autoReplaceSvg) api.dom.i2svg({\n node: autoReplaceSvgRoot\n });\n};\n\nfunction domVariants(val, abstractCreator) {\n Object.defineProperty(val, 'abstract', {\n get: abstractCreator\n });\n Object.defineProperty(val, 'html', {\n get: function () {\n return val.abstract.map(a => toHtml(a));\n }\n });\n Object.defineProperty(val, 'node', {\n get: function () {\n if (!IS_DOM) return;\n const container = DOCUMENT.createElement('div');\n container.innerHTML = val.html;\n return container.children;\n }\n });\n return val;\n}\n\nfunction asIcon (_ref) {\n let {\n children,\n main,\n mask,\n attributes,\n styles,\n transform\n } = _ref;\n\n if (transformIsMeaningful(transform) && main.found && !mask.found) {\n const {\n width,\n height\n } = main;\n const offset = {\n x: width / height / 2,\n y: 0.5\n };\n attributes['style'] = joinStyles({ ...styles,\n 'transform-origin': \"\".concat(offset.x + transform.x / 16, \"em \").concat(offset.y + transform.y / 16, \"em\")\n });\n }\n\n return [{\n tag: 'svg',\n attributes,\n children\n }];\n}\n\nfunction asSymbol (_ref) {\n let {\n prefix,\n iconName,\n children,\n attributes,\n symbol\n } = _ref;\n const id = symbol === true ? \"\".concat(prefix, \"-\").concat(config.cssPrefix, \"-\").concat(iconName) : symbol;\n return [{\n tag: 'svg',\n attributes: {\n style: 'display: none;'\n },\n children: [{\n tag: 'symbol',\n attributes: { ...attributes,\n id\n },\n children\n }]\n }];\n}\n\nfunction makeInlineSvgAbstract(params) {\n const {\n icons: {\n main,\n mask\n },\n prefix,\n iconName,\n transform,\n symbol,\n title,\n maskId,\n titleId,\n extra,\n watchable = false\n } = params;\n const {\n width,\n height\n } = mask.found ? mask : main;\n const isUploadedIcon = prefix === 'fak';\n const attrClass = [config.replacementClass, iconName ? \"\".concat(config.cssPrefix, \"-\").concat(iconName) : ''].filter(c => extra.classes.indexOf(c) === -1).filter(c => c !== '' || !!c).concat(extra.classes).join(' ');\n let content = {\n children: [],\n attributes: { ...extra.attributes,\n 'data-prefix': prefix,\n 'data-icon': iconName,\n 'class': attrClass,\n 'role': extra.attributes.role || 'img',\n 'xmlns': 'http://www.w3.org/2000/svg',\n 'viewBox': \"0 0 \".concat(width, \" \").concat(height)\n }\n };\n const uploadedIconWidthStyle = isUploadedIcon && !~extra.classes.indexOf('fa-fw') ? {\n width: \"\".concat(width / height * 16 * 0.0625, \"em\")\n } : {};\n\n if (watchable) {\n content.attributes[DATA_FA_I2SVG] = '';\n }\n\n if (title) {\n content.children.push({\n tag: 'title',\n attributes: {\n id: content.attributes['aria-labelledby'] || \"title-\".concat(titleId || nextUniqueId())\n },\n children: [title]\n });\n delete content.attributes.title;\n }\n\n const args = { ...content,\n prefix,\n iconName,\n main,\n mask,\n maskId,\n transform,\n symbol,\n styles: { ...uploadedIconWidthStyle,\n ...extra.styles\n }\n };\n const {\n children,\n attributes\n } = mask.found && main.found ? callProvided('generateAbstractMask', args) || {\n children: [],\n attributes: {}\n } : callProvided('generateAbstractIcon', args) || {\n children: [],\n attributes: {}\n };\n args.children = children;\n args.attributes = attributes;\n\n if (symbol) {\n return asSymbol(args);\n } else {\n return asIcon(args);\n }\n}\nfunction makeLayersTextAbstract(params) {\n const {\n content,\n width,\n height,\n transform,\n title,\n extra,\n watchable = false\n } = params;\n const attributes = { ...extra.attributes,\n ...(title ? {\n 'title': title\n } : {}),\n 'class': extra.classes.join(' ')\n };\n\n if (watchable) {\n attributes[DATA_FA_I2SVG] = '';\n }\n\n const styles = { ...extra.styles\n };\n\n if (transformIsMeaningful(transform)) {\n styles['transform'] = transformForCss({\n transform,\n startCentered: true,\n width,\n height\n });\n styles['-webkit-transform'] = styles['transform'];\n }\n\n const styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n const val = [];\n val.push({\n tag: 'span',\n attributes,\n children: [content]\n });\n\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n\n return val;\n}\nfunction makeLayersCounterAbstract(params) {\n const {\n content,\n title,\n extra\n } = params;\n const attributes = { ...extra.attributes,\n ...(title ? {\n 'title': title\n } : {}),\n 'class': extra.classes.join(' ')\n };\n const styleString = joinStyles(extra.styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n const val = [];\n val.push({\n tag: 'span',\n attributes,\n children: [content]\n });\n\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n\n return val;\n}\n\nconst {\n styles: styles$1\n} = namespace;\nfunction asFoundIcon(icon) {\n const width = icon[0];\n const height = icon[1];\n const [vectorData] = icon.slice(4);\n let element = null;\n\n if (Array.isArray(vectorData)) {\n element = {\n tag: 'g',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.GROUP)\n },\n children: [{\n tag: 'path',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.SECONDARY),\n fill: 'currentColor',\n d: vectorData[0]\n }\n }, {\n tag: 'path',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.PRIMARY),\n fill: 'currentColor',\n d: vectorData[1]\n }\n }]\n };\n } else {\n element = {\n tag: 'path',\n attributes: {\n fill: 'currentColor',\n d: vectorData\n }\n };\n }\n\n return {\n found: true,\n width,\n height,\n icon: element\n };\n}\nconst missingIconResolutionMixin = {\n found: false,\n width: 512,\n height: 512\n};\n\nfunction maybeNotifyMissing(iconName, prefix) {\n if (!PRODUCTION && !config.showMissingIcons && iconName) {\n console.error(\"Icon with name \\\"\".concat(iconName, \"\\\" and prefix \\\"\").concat(prefix, \"\\\" is missing.\"));\n }\n}\n\nfunction findIcon(iconName, prefix) {\n let givenPrefix = prefix;\n\n if (prefix === 'fa' && config.styleDefault !== null) {\n prefix = getDefaultUsablePrefix();\n }\n\n return new Promise((resolve, reject) => {\n if (givenPrefix === 'fa') {\n const shim = byOldName(iconName) || {};\n iconName = shim.iconName || iconName;\n prefix = shim.prefix || prefix;\n }\n\n if (iconName && prefix && styles$1[prefix] && styles$1[prefix][iconName]) {\n const icon = styles$1[prefix][iconName];\n return resolve(asFoundIcon(icon));\n }\n\n maybeNotifyMissing(iconName, prefix);\n resolve({ ...missingIconResolutionMixin,\n icon: config.showMissingIcons && iconName ? callProvided('missingIconAbstract') || {} : {}\n });\n });\n}\n\nconst noop$1 = () => {};\n\nconst p$2 = config.measurePerformance && PERFORMANCE && PERFORMANCE.mark && PERFORMANCE.measure ? PERFORMANCE : {\n mark: noop$1,\n measure: noop$1\n};\nconst preamble = \"FA \\\"6.6.0\\\"\";\n\nconst begin = name => {\n p$2.mark(\"\".concat(preamble, \" \").concat(name, \" begins\"));\n return () => end(name);\n};\n\nconst end = name => {\n p$2.mark(\"\".concat(preamble, \" \").concat(name, \" ends\"));\n p$2.measure(\"\".concat(preamble, \" \").concat(name), \"\".concat(preamble, \" \").concat(name, \" begins\"), \"\".concat(preamble, \" \").concat(name, \" ends\"));\n};\n\nvar perf = {\n begin,\n end\n};\n\nconst noop$2 = () => {};\n\nfunction isWatched(node) {\n const i2svg = node.getAttribute ? node.getAttribute(DATA_FA_I2SVG) : null;\n return typeof i2svg === 'string';\n}\n\nfunction hasPrefixAndIcon(node) {\n const prefix = node.getAttribute ? node.getAttribute(DATA_PREFIX) : null;\n const icon = node.getAttribute ? node.getAttribute(DATA_ICON) : null;\n return prefix && icon;\n}\n\nfunction hasBeenReplaced(node) {\n return node && node.classList && node.classList.contains && node.classList.contains(config.replacementClass);\n}\n\nfunction getMutator() {\n if (config.autoReplaceSvg === true) {\n return mutators.replace;\n }\n\n const mutator = mutators[config.autoReplaceSvg];\n return mutator || mutators.replace;\n}\n\nfunction createElementNS(tag) {\n return DOCUMENT.createElementNS('http://www.w3.org/2000/svg', tag);\n}\n\nfunction createElement(tag) {\n return DOCUMENT.createElement(tag);\n}\n\nfunction convertSVG(abstractObj) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const {\n ceFn = abstractObj.tag === 'svg' ? createElementNS : createElement\n } = params;\n\n if (typeof abstractObj === 'string') {\n return DOCUMENT.createTextNode(abstractObj);\n }\n\n const tag = ceFn(abstractObj.tag);\n Object.keys(abstractObj.attributes || []).forEach(function (key) {\n tag.setAttribute(key, abstractObj.attributes[key]);\n });\n const children = abstractObj.children || [];\n children.forEach(function (child) {\n tag.appendChild(convertSVG(child, {\n ceFn\n }));\n });\n return tag;\n}\n\nfunction nodeAsComment(node) {\n let comment = \" \".concat(node.outerHTML, \" \");\n /* BEGIN.ATTRIBUTION */\n\n comment = \"\".concat(comment, \"Font Awesome fontawesome.com \");\n /* END.ATTRIBUTION */\n\n return comment;\n}\n\nconst mutators = {\n replace: function (mutation) {\n const node = mutation[0];\n\n if (node.parentNode) {\n mutation[1].forEach(abstract => {\n node.parentNode.insertBefore(convertSVG(abstract), node);\n });\n\n if (node.getAttribute(DATA_FA_I2SVG) === null && config.keepOriginalSource) {\n let comment = DOCUMENT.createComment(nodeAsComment(node));\n node.parentNode.replaceChild(comment, node);\n } else {\n node.remove();\n }\n }\n },\n nest: function (mutation) {\n const node = mutation[0];\n const abstract = mutation[1]; // If we already have a replaced node we do not want to continue nesting within it.\n // Short-circuit to the standard replacement\n\n if (~classArray(node).indexOf(config.replacementClass)) {\n return mutators.replace(mutation);\n }\n\n const forSvg = new RegExp(\"\".concat(config.cssPrefix, \"-.*\"));\n delete abstract[0].attributes.id;\n\n if (abstract[0].attributes.class) {\n const splitClasses = abstract[0].attributes.class.split(' ').reduce((acc, cls) => {\n if (cls === config.replacementClass || cls.match(forSvg)) {\n acc.toSvg.push(cls);\n } else {\n acc.toNode.push(cls);\n }\n\n return acc;\n }, {\n toNode: [],\n toSvg: []\n });\n abstract[0].attributes.class = splitClasses.toSvg.join(' ');\n\n if (splitClasses.toNode.length === 0) {\n node.removeAttribute('class');\n } else {\n node.setAttribute('class', splitClasses.toNode.join(' '));\n }\n }\n\n const newInnerHTML = abstract.map(a => toHtml(a)).join('\\n');\n node.setAttribute(DATA_FA_I2SVG, '');\n node.innerHTML = newInnerHTML;\n }\n};\n\nfunction performOperationSync(op) {\n op();\n}\n\nfunction perform(mutations, callback) {\n const callbackFunction = typeof callback === 'function' ? callback : noop$2;\n\n if (mutations.length === 0) {\n callbackFunction();\n } else {\n let frame = performOperationSync;\n\n if (config.mutateApproach === MUTATION_APPROACH_ASYNC) {\n frame = WINDOW.requestAnimationFrame || performOperationSync;\n }\n\n frame(() => {\n const mutator = getMutator();\n const mark = perf.begin('mutate');\n mutations.map(mutator);\n mark();\n callbackFunction();\n });\n }\n}\nlet disabled = false;\nfunction disableObservation() {\n disabled = true;\n}\nfunction enableObservation() {\n disabled = false;\n}\nlet mo$1 = null;\nfunction observe(options) {\n if (!MUTATION_OBSERVER) {\n return;\n }\n\n if (!config.observeMutations) {\n return;\n }\n\n const {\n treeCallback = noop$2,\n nodeCallback = noop$2,\n pseudoElementsCallback = noop$2,\n observeMutationsRoot = DOCUMENT\n } = options;\n mo$1 = new MUTATION_OBSERVER(objects => {\n if (disabled) return;\n const defaultPrefix = getDefaultUsablePrefix();\n toArray(objects).forEach(mutationRecord => {\n if (mutationRecord.type === 'childList' && mutationRecord.addedNodes.length > 0 && !isWatched(mutationRecord.addedNodes[0])) {\n if (config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target);\n }\n\n treeCallback(mutationRecord.target);\n }\n\n if (mutationRecord.type === 'attributes' && mutationRecord.target.parentNode && config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target.parentNode);\n }\n\n if (mutationRecord.type === 'attributes' && isWatched(mutationRecord.target) && ~ATTRIBUTES_WATCHED_FOR_MUTATION.indexOf(mutationRecord.attributeName)) {\n if (mutationRecord.attributeName === 'class' && hasPrefixAndIcon(mutationRecord.target)) {\n const {\n prefix,\n iconName\n } = getCanonicalIcon(classArray(mutationRecord.target));\n mutationRecord.target.setAttribute(DATA_PREFIX, prefix || defaultPrefix);\n if (iconName) mutationRecord.target.setAttribute(DATA_ICON, iconName);\n } else if (hasBeenReplaced(mutationRecord.target)) {\n nodeCallback(mutationRecord.target);\n }\n }\n });\n });\n if (!IS_DOM) return;\n mo$1.observe(observeMutationsRoot, {\n childList: true,\n attributes: true,\n characterData: true,\n subtree: true\n });\n}\nfunction disconnect() {\n if (!mo$1) return;\n mo$1.disconnect();\n}\n\nfunction styleParser (node) {\n const style = node.getAttribute('style');\n let val = [];\n\n if (style) {\n val = style.split(';').reduce((acc, style) => {\n const styles = style.split(':');\n const prop = styles[0];\n const value = styles.slice(1);\n\n if (prop && value.length > 0) {\n acc[prop] = value.join(':').trim();\n }\n\n return acc;\n }, {});\n }\n\n return val;\n}\n\nfunction classParser (node) {\n const existingPrefix = node.getAttribute('data-prefix');\n const existingIconName = node.getAttribute('data-icon');\n const innerText = node.innerText !== undefined ? node.innerText.trim() : '';\n let val = getCanonicalIcon(classArray(node));\n\n if (!val.prefix) {\n val.prefix = getDefaultUsablePrefix();\n }\n\n if (existingPrefix && existingIconName) {\n val.prefix = existingPrefix;\n val.iconName = existingIconName;\n }\n\n if (val.iconName && val.prefix) {\n return val;\n }\n\n if (val.prefix && innerText.length > 0) {\n val.iconName = byLigature(val.prefix, node.innerText) || byUnicode(val.prefix, toHex(node.innerText));\n }\n\n if (!val.iconName && config.autoFetchSvg && node.firstChild && node.firstChild.nodeType === Node.TEXT_NODE) {\n val.iconName = node.firstChild.data;\n }\n\n return val;\n}\n\nfunction attributesParser (node) {\n const extraAttributes = toArray(node.attributes).reduce((acc, attr) => {\n if (acc.name !== 'class' && acc.name !== 'style') {\n acc[attr.name] = attr.value;\n }\n\n return acc;\n }, {});\n const title = node.getAttribute('title');\n const titleId = node.getAttribute('data-fa-title-id');\n\n if (config.autoA11y) {\n if (title) {\n extraAttributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n extraAttributes['aria-hidden'] = 'true';\n extraAttributes['focusable'] = 'false';\n }\n }\n\n return extraAttributes;\n}\n\nfunction blankMeta() {\n return {\n iconName: null,\n title: null,\n titleId: null,\n prefix: null,\n transform: meaninglessTransform,\n symbol: false,\n mask: {\n iconName: null,\n prefix: null,\n rest: []\n },\n maskId: null,\n extra: {\n classes: [],\n styles: {},\n attributes: {}\n }\n };\n}\nfunction parseMeta(node) {\n let parser = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n styleParser: true\n };\n const {\n iconName,\n prefix,\n rest: extraClasses\n } = classParser(node);\n const extraAttributes = attributesParser(node);\n const pluginMeta = chainHooks('parseNodeAttributes', {}, node);\n let extraStyles = parser.styleParser ? styleParser(node) : [];\n return {\n iconName,\n title: node.getAttribute('title'),\n titleId: node.getAttribute('data-fa-title-id'),\n prefix,\n transform: meaninglessTransform,\n mask: {\n iconName: null,\n prefix: null,\n rest: []\n },\n maskId: null,\n symbol: false,\n extra: {\n classes: extraClasses,\n styles: extraStyles,\n attributes: extraAttributes\n },\n ...pluginMeta\n };\n}\n\nconst {\n styles: styles$2\n} = namespace;\n\nfunction generateMutation(node) {\n const nodeMeta = config.autoReplaceSvg === 'nest' ? parseMeta(node, {\n styleParser: false\n }) : parseMeta(node);\n\n if (~nodeMeta.extra.classes.indexOf(LAYERS_TEXT_CLASSNAME)) {\n return callProvided('generateLayersText', node, nodeMeta);\n } else {\n return callProvided('generateSvgReplacementMutation', node, nodeMeta);\n }\n}\n\nlet knownPrefixes = new Set();\nFAMILIES.map(family => {\n knownPrefixes.add(\"fa-\".concat(family));\n});\nObject.keys(PREFIX_TO_STYLE[a]).map(knownPrefixes.add.bind(knownPrefixes));\nObject.keys(PREFIX_TO_STYLE[r]).map(knownPrefixes.add.bind(knownPrefixes));\nObject.keys(PREFIX_TO_STYLE[o]).map(knownPrefixes.add.bind(knownPrefixes));\nknownPrefixes = [...knownPrefixes];\n\nfunction onTree(root) {\n let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n if (!IS_DOM) return Promise.resolve();\n const htmlClassList = DOCUMENT.documentElement.classList;\n\n const hclAdd = suffix => htmlClassList.add(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n\n const hclRemove = suffix => htmlClassList.remove(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n\n const prefixes = config.autoFetchSvg ? knownPrefixes : FAMILIES.map(f$$1 => \"fa-\".concat(f$$1)).concat(Object.keys(styles$2));\n\n if (!prefixes.includes('fa')) {\n prefixes.push('fa');\n }\n\n const prefixesDomQuery = [\".\".concat(LAYERS_TEXT_CLASSNAME, \":not([\").concat(DATA_FA_I2SVG, \"])\")].concat(prefixes.map(p$$1 => \".\".concat(p$$1, \":not([\").concat(DATA_FA_I2SVG, \"])\"))).join(', ');\n\n if (prefixesDomQuery.length === 0) {\n return Promise.resolve();\n }\n\n let candidates = [];\n\n try {\n candidates = toArray(root.querySelectorAll(prefixesDomQuery));\n } catch (e$$1) {// noop\n }\n\n if (candidates.length > 0) {\n hclAdd('pending');\n hclRemove('complete');\n } else {\n return Promise.resolve();\n }\n\n const mark = perf.begin('onTree');\n const mutations = candidates.reduce((acc, node) => {\n try {\n const mutation = generateMutation(node);\n\n if (mutation) {\n acc.push(mutation);\n }\n } catch (e$$1) {\n if (!PRODUCTION) {\n if (e$$1.name === 'MissingIcon') {\n console.error(e$$1);\n }\n }\n }\n\n return acc;\n }, []);\n return new Promise((resolve, reject) => {\n Promise.all(mutations).then(resolvedMutations => {\n perform(resolvedMutations, () => {\n hclAdd('active');\n hclAdd('complete');\n hclRemove('pending');\n if (typeof callback === 'function') callback();\n mark();\n resolve();\n });\n }).catch(e$$1 => {\n mark();\n reject(e$$1);\n });\n });\n}\n\nfunction onNode(node) {\n let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n generateMutation(node).then(mutation => {\n if (mutation) {\n perform([mutation], callback);\n }\n });\n}\n\nfunction resolveIcons(next) {\n return function (maybeIconDefinition) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const iconDefinition = (maybeIconDefinition || {}).icon ? maybeIconDefinition : findIconDefinition(maybeIconDefinition || {});\n let {\n mask\n } = params;\n\n if (mask) {\n mask = (mask || {}).icon ? mask : findIconDefinition(mask || {});\n }\n\n return next(iconDefinition, { ...params,\n mask\n });\n };\n}\n\nconst render = function (iconDefinition) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const {\n transform = meaninglessTransform,\n symbol = false,\n mask = null,\n maskId = null,\n title = null,\n titleId = null,\n classes = [],\n attributes = {},\n styles = {}\n } = params;\n if (!iconDefinition) return;\n const {\n prefix,\n iconName,\n icon\n } = iconDefinition;\n return domVariants({\n type: 'icon',\n ...iconDefinition\n }, () => {\n callHooks('beforeDOMElementCreation', {\n iconDefinition,\n params\n });\n\n if (config.autoA11y) {\n if (title) {\n attributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n attributes['aria-hidden'] = 'true';\n attributes['focusable'] = 'false';\n }\n }\n\n return makeInlineSvgAbstract({\n icons: {\n main: asFoundIcon(icon),\n mask: mask ? asFoundIcon(mask.icon) : {\n found: false,\n width: null,\n height: null,\n icon: {}\n }\n },\n prefix,\n iconName,\n transform: { ...meaninglessTransform,\n ...transform\n },\n symbol,\n title,\n maskId,\n titleId,\n extra: {\n attributes,\n styles,\n classes\n }\n });\n });\n};\nvar ReplaceElements = {\n mixout() {\n return {\n icon: resolveIcons(render)\n };\n },\n\n hooks() {\n return {\n mutationObserverCallbacks(accumulator) {\n accumulator.treeCallback = onTree;\n accumulator.nodeCallback = onNode;\n return accumulator;\n }\n\n };\n },\n\n provides(providers$$1) {\n providers$$1.i2svg = function (params) {\n const {\n node = DOCUMENT,\n callback = () => {}\n } = params;\n return onTree(node, callback);\n };\n\n providers$$1.generateSvgReplacementMutation = function (node, nodeMeta) {\n const {\n iconName,\n title,\n titleId,\n prefix,\n transform,\n symbol,\n mask,\n maskId,\n extra\n } = nodeMeta;\n return new Promise((resolve, reject) => {\n Promise.all([findIcon(iconName, prefix), mask.iconName ? findIcon(mask.iconName, mask.prefix) : Promise.resolve({\n found: false,\n width: 512,\n height: 512,\n icon: {}\n })]).then(_ref => {\n let [main, mask] = _ref;\n resolve([node, makeInlineSvgAbstract({\n icons: {\n main,\n mask\n },\n prefix,\n iconName,\n transform,\n symbol,\n maskId,\n title,\n titleId,\n extra,\n watchable: true\n })]);\n }).catch(reject);\n });\n };\n\n providers$$1.generateAbstractIcon = function (_ref2) {\n let {\n children,\n attributes,\n main,\n transform,\n styles\n } = _ref2;\n const styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n let nextChild;\n\n if (transformIsMeaningful(transform)) {\n nextChild = callProvided('generateAbstractTransformGrouping', {\n main,\n transform,\n containerWidth: main.width,\n iconWidth: main.width\n });\n }\n\n children.push(nextChild || main.icon);\n return {\n children,\n attributes\n };\n };\n }\n\n};\n\nvar Layers = {\n mixout() {\n return {\n layer(assembler) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const {\n classes = []\n } = params;\n return domVariants({\n type: 'layer'\n }, () => {\n callHooks('beforeDOMElementCreation', {\n assembler,\n params\n });\n let children = [];\n assembler(args => {\n Array.isArray(args) ? args.map(a => {\n children = children.concat(a.abstract);\n }) : children = children.concat(args.abstract);\n });\n return [{\n tag: 'span',\n attributes: {\n class: [\"\".concat(config.cssPrefix, \"-layers\"), ...classes].join(' ')\n },\n children\n }];\n });\n }\n\n };\n }\n\n};\n\nvar LayersCounter = {\n mixout() {\n return {\n counter(content) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const {\n title = null,\n classes = [],\n attributes = {},\n styles = {}\n } = params;\n return domVariants({\n type: 'counter',\n content\n }, () => {\n callHooks('beforeDOMElementCreation', {\n content,\n params\n });\n return makeLayersCounterAbstract({\n content: content.toString(),\n title,\n extra: {\n attributes,\n styles,\n classes: [\"\".concat(config.cssPrefix, \"-layers-counter\"), ...classes]\n }\n });\n });\n }\n\n };\n }\n\n};\n\nvar LayersText = {\n mixout() {\n return {\n text(content) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const {\n transform = meaninglessTransform,\n title = null,\n classes = [],\n attributes = {},\n styles = {}\n } = params;\n return domVariants({\n type: 'text',\n content\n }, () => {\n callHooks('beforeDOMElementCreation', {\n content,\n params\n });\n return makeLayersTextAbstract({\n content,\n transform: { ...meaninglessTransform,\n ...transform\n },\n title,\n extra: {\n attributes,\n styles,\n classes: [\"\".concat(config.cssPrefix, \"-layers-text\"), ...classes]\n }\n });\n });\n }\n\n };\n },\n\n provides(providers$$1) {\n providers$$1.generateLayersText = function (node, nodeMeta) {\n const {\n title,\n transform,\n extra\n } = nodeMeta;\n let width = null;\n let height = null;\n\n if (IS_IE) {\n const computedFontSize = parseInt(getComputedStyle(node).fontSize, 10);\n const boundingClientRect = node.getBoundingClientRect();\n width = boundingClientRect.width / computedFontSize;\n height = boundingClientRect.height / computedFontSize;\n }\n\n if (config.autoA11y && !title) {\n extra.attributes['aria-hidden'] = 'true';\n }\n\n return Promise.resolve([node, makeLayersTextAbstract({\n content: node.innerHTML,\n width,\n height,\n transform,\n title,\n extra,\n watchable: true\n })]);\n };\n }\n\n};\n\nconst CLEAN_CONTENT_PATTERN = new RegExp('\\u{22}', 'ug');\nconst SECONDARY_UNICODE_RANGE = [1105920, 1112319];\nconst _FONT_FAMILY_WEIGHT_TO_PREFIX = { ...{\n FontAwesome: {\n normal: 'fas',\n 400: 'fas'\n }\n },\n ...eo,\n ...ao,\n ...mo\n};\nconst FONT_FAMILY_WEIGHT_TO_PREFIX = Object.keys(_FONT_FAMILY_WEIGHT_TO_PREFIX).reduce((acc, key) => {\n acc[key.toLowerCase()] = _FONT_FAMILY_WEIGHT_TO_PREFIX[key];\n return acc;\n}, {});\nconst FONT_FAMILY_WEIGHT_FALLBACK = Object.keys(FONT_FAMILY_WEIGHT_TO_PREFIX).reduce((acc, fontFamily) => {\n const weights = FONT_FAMILY_WEIGHT_TO_PREFIX[fontFamily];\n acc[fontFamily] = weights[900] || [...Object.entries(weights)][0][1];\n return acc;\n}, {});\nfunction hexValueFromContent(content) {\n const cleaned = content.replace(CLEAN_CONTENT_PATTERN, '');\n const codePoint = codePointAt(cleaned, 0);\n const isPrependTen = codePoint >= SECONDARY_UNICODE_RANGE[0] && codePoint <= SECONDARY_UNICODE_RANGE[1];\n const isDoubled = cleaned.length === 2 ? cleaned[0] === cleaned[1] : false;\n return {\n value: isDoubled ? toHex(cleaned[0]) : toHex(cleaned),\n isSecondary: isPrependTen || isDoubled\n };\n}\nfunction getPrefix(fontFamily, fontWeight) {\n const fontFamilySanitized = fontFamily.replace(/^['\"]|['\"]$/g, '').toLowerCase();\n const fontWeightInteger = parseInt(fontWeight);\n const fontWeightSanitized = isNaN(fontWeightInteger) ? 'normal' : fontWeightInteger;\n return (FONT_FAMILY_WEIGHT_TO_PREFIX[fontFamilySanitized] || {})[fontWeightSanitized] || FONT_FAMILY_WEIGHT_FALLBACK[fontFamilySanitized];\n}\n\nfunction replaceForPosition(node, position) {\n const pendingAttribute = \"\".concat(DATA_FA_PSEUDO_ELEMENT_PENDING).concat(position.replace(':', '-'));\n return new Promise((resolve, reject) => {\n if (node.getAttribute(pendingAttribute) !== null) {\n // This node is already being processed\n return resolve();\n }\n\n const children = toArray(node.children);\n const alreadyProcessedPseudoElement = children.filter(c => c.getAttribute(DATA_FA_PSEUDO_ELEMENT) === position)[0];\n const styles = WINDOW.getComputedStyle(node, position);\n const fontFamily = styles.getPropertyValue('font-family');\n const fontFamilyMatch = fontFamily.match(FONT_FAMILY_PATTERN);\n const fontWeight = styles.getPropertyValue('font-weight');\n const content = styles.getPropertyValue('content');\n\n if (alreadyProcessedPseudoElement && !fontFamilyMatch) {\n // If we've already processed it but the current computed style does not result in a font-family,\n // that probably means that a class name that was previously present to make the icon has been\n // removed. So we now should delete the icon.\n node.removeChild(alreadyProcessedPseudoElement);\n return resolve();\n } else if (fontFamilyMatch && content !== 'none' && content !== '') {\n const content = styles.getPropertyValue('content');\n let prefix = getPrefix(fontFamily, fontWeight);\n const {\n value: hexValue,\n isSecondary\n } = hexValueFromContent(content);\n const isV4 = fontFamilyMatch[0].startsWith('FontAwesome');\n let iconName = byUnicode(prefix, hexValue);\n let iconIdentifier = iconName;\n\n if (isV4) {\n const iconName4 = byOldUnicode(hexValue);\n\n if (iconName4.iconName && iconName4.prefix) {\n iconName = iconName4.iconName;\n prefix = iconName4.prefix;\n }\n } // Only convert the pseudo element in this ::before/::after position into an icon if we haven't\n // already done so with the same prefix and iconName\n\n\n if (iconName && !isSecondary && (!alreadyProcessedPseudoElement || alreadyProcessedPseudoElement.getAttribute(DATA_PREFIX) !== prefix || alreadyProcessedPseudoElement.getAttribute(DATA_ICON) !== iconIdentifier)) {\n node.setAttribute(pendingAttribute, iconIdentifier);\n\n if (alreadyProcessedPseudoElement) {\n // Delete the old one, since we're replacing it with a new one\n node.removeChild(alreadyProcessedPseudoElement);\n }\n\n const meta = blankMeta();\n const {\n extra\n } = meta;\n extra.attributes[DATA_FA_PSEUDO_ELEMENT] = position;\n findIcon(iconName, prefix).then(main => {\n const abstract = makeInlineSvgAbstract({ ...meta,\n icons: {\n main,\n mask: emptyCanonicalIcon()\n },\n prefix,\n iconName: iconIdentifier,\n extra,\n watchable: true\n });\n const element = DOCUMENT.createElementNS('http://www.w3.org/2000/svg', 'svg');\n\n if (position === '::before') {\n node.insertBefore(element, node.firstChild);\n } else {\n node.appendChild(element);\n }\n\n element.outerHTML = abstract.map(a => toHtml(a)).join('\\n');\n node.removeAttribute(pendingAttribute);\n resolve();\n }).catch(reject);\n } else {\n resolve();\n }\n } else {\n resolve();\n }\n });\n}\n\nfunction replace(node) {\n return Promise.all([replaceForPosition(node, '::before'), replaceForPosition(node, '::after')]);\n}\n\nfunction processable(node) {\n return node.parentNode !== document.head && !~TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS.indexOf(node.tagName.toUpperCase()) && !node.getAttribute(DATA_FA_PSEUDO_ELEMENT) && (!node.parentNode || node.parentNode.tagName !== 'svg');\n}\n\nfunction searchPseudoElements(root) {\n if (!IS_DOM) return;\n return new Promise((resolve, reject) => {\n const operations = toArray(root.querySelectorAll('*')).filter(processable).map(replace);\n const end = perf.begin('searchPseudoElements');\n disableObservation();\n Promise.all(operations).then(() => {\n end();\n enableObservation();\n resolve();\n }).catch(() => {\n end();\n enableObservation();\n reject();\n });\n });\n}\n\nvar PseudoElements = {\n hooks() {\n return {\n mutationObserverCallbacks(accumulator) {\n accumulator.pseudoElementsCallback = searchPseudoElements;\n return accumulator;\n }\n\n };\n },\n\n provides(providers) {\n providers.pseudoElements2svg = function (params) {\n const {\n node = DOCUMENT\n } = params;\n\n if (config.searchPseudoElements) {\n searchPseudoElements(node);\n }\n };\n }\n\n};\n\nlet _unwatched = false;\nvar MutationObserver$1 = {\n mixout() {\n return {\n dom: {\n unwatch() {\n disableObservation();\n _unwatched = true;\n }\n\n }\n };\n },\n\n hooks() {\n return {\n bootstrap() {\n observe(chainHooks('mutationObserverCallbacks', {}));\n },\n\n noAuto() {\n disconnect();\n },\n\n watch(params) {\n const {\n observeMutationsRoot\n } = params;\n\n if (_unwatched) {\n enableObservation();\n } else {\n observe(chainHooks('mutationObserverCallbacks', {\n observeMutationsRoot\n }));\n }\n }\n\n };\n }\n\n};\n\nconst parseTransformString = transformString => {\n let transform = {\n size: 16,\n x: 0,\n y: 0,\n flipX: false,\n flipY: false,\n rotate: 0\n };\n return transformString.toLowerCase().split(' ').reduce((acc, n) => {\n const parts = n.toLowerCase().split('-');\n const first = parts[0];\n let rest = parts.slice(1).join('-');\n\n if (first && rest === 'h') {\n acc.flipX = true;\n return acc;\n }\n\n if (first && rest === 'v') {\n acc.flipY = true;\n return acc;\n }\n\n rest = parseFloat(rest);\n\n if (isNaN(rest)) {\n return acc;\n }\n\n switch (first) {\n case 'grow':\n acc.size = acc.size + rest;\n break;\n\n case 'shrink':\n acc.size = acc.size - rest;\n break;\n\n case 'left':\n acc.x = acc.x - rest;\n break;\n\n case 'right':\n acc.x = acc.x + rest;\n break;\n\n case 'up':\n acc.y = acc.y - rest;\n break;\n\n case 'down':\n acc.y = acc.y + rest;\n break;\n\n case 'rotate':\n acc.rotate = acc.rotate + rest;\n break;\n }\n\n return acc;\n }, transform);\n};\nvar PowerTransforms = {\n mixout() {\n return {\n parse: {\n transform: transformString => {\n return parseTransformString(transformString);\n }\n }\n };\n },\n\n hooks() {\n return {\n parseNodeAttributes(accumulator, node) {\n const transformString = node.getAttribute('data-fa-transform');\n\n if (transformString) {\n accumulator.transform = parseTransformString(transformString);\n }\n\n return accumulator;\n }\n\n };\n },\n\n provides(providers) {\n providers.generateAbstractTransformGrouping = function (_ref) {\n let {\n main,\n transform,\n containerWidth,\n iconWidth\n } = _ref;\n const outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n const innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n const innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n const innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n const inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n const path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n const operations = {\n outer,\n inner,\n path\n };\n return {\n tag: 'g',\n attributes: { ...operations.outer\n },\n children: [{\n tag: 'g',\n attributes: { ...operations.inner\n },\n children: [{\n tag: main.icon.tag,\n children: main.icon.children,\n attributes: { ...main.icon.attributes,\n ...operations.path\n }\n }]\n }]\n };\n };\n }\n\n};\n\nconst ALL_SPACE = {\n x: 0,\n y: 0,\n width: '100%',\n height: '100%'\n};\n\nfunction fillBlack(abstract) {\n let force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (abstract.attributes && (abstract.attributes.fill || force)) {\n abstract.attributes.fill = 'black';\n }\n\n return abstract;\n}\n\nfunction deGroup(abstract) {\n if (abstract.tag === 'g') {\n return abstract.children;\n } else {\n return [abstract];\n }\n}\n\nvar Masks = {\n hooks() {\n return {\n parseNodeAttributes(accumulator, node) {\n const maskData = node.getAttribute('data-fa-mask');\n const mask = !maskData ? emptyCanonicalIcon() : getCanonicalIcon(maskData.split(' ').map(i => i.trim()));\n\n if (!mask.prefix) {\n mask.prefix = getDefaultUsablePrefix();\n }\n\n accumulator.mask = mask;\n accumulator.maskId = node.getAttribute('data-fa-mask-id');\n return accumulator;\n }\n\n };\n },\n\n provides(providers) {\n providers.generateAbstractMask = function (_ref) {\n let {\n children,\n attributes,\n main,\n mask,\n maskId: explicitMaskId,\n transform\n } = _ref;\n const {\n width: mainWidth,\n icon: mainPath\n } = main;\n const {\n width: maskWidth,\n icon: maskPath\n } = mask;\n const trans = transformForSvg({\n transform,\n containerWidth: maskWidth,\n iconWidth: mainWidth\n });\n const maskRect = {\n tag: 'rect',\n attributes: { ...ALL_SPACE,\n fill: 'white'\n }\n };\n const maskInnerGroupChildrenMixin = mainPath.children ? {\n children: mainPath.children.map(fillBlack)\n } : {};\n const maskInnerGroup = {\n tag: 'g',\n attributes: { ...trans.inner\n },\n children: [fillBlack({\n tag: mainPath.tag,\n attributes: { ...mainPath.attributes,\n ...trans.path\n },\n ...maskInnerGroupChildrenMixin\n })]\n };\n const maskOuterGroup = {\n tag: 'g',\n attributes: { ...trans.outer\n },\n children: [maskInnerGroup]\n };\n const maskId = \"mask-\".concat(explicitMaskId || nextUniqueId());\n const clipId = \"clip-\".concat(explicitMaskId || nextUniqueId());\n const maskTag = {\n tag: 'mask',\n attributes: { ...ALL_SPACE,\n id: maskId,\n maskUnits: 'userSpaceOnUse',\n maskContentUnits: 'userSpaceOnUse'\n },\n children: [maskRect, maskOuterGroup]\n };\n const defs = {\n tag: 'defs',\n children: [{\n tag: 'clipPath',\n attributes: {\n id: clipId\n },\n children: deGroup(maskPath)\n }, maskTag]\n };\n children.push(defs, {\n tag: 'rect',\n attributes: {\n fill: 'currentColor',\n 'clip-path': \"url(#\".concat(clipId, \")\"),\n mask: \"url(#\".concat(maskId, \")\"),\n ...ALL_SPACE\n }\n });\n return {\n children,\n attributes\n };\n };\n }\n\n};\n\nvar MissingIconIndicator = {\n provides(providers) {\n let reduceMotion = false;\n\n if (WINDOW.matchMedia) {\n reduceMotion = WINDOW.matchMedia('(prefers-reduced-motion: reduce)').matches;\n }\n\n providers.missingIconAbstract = function () {\n const gChildren = [];\n const FILL = {\n fill: 'currentColor'\n };\n const ANIMATION_BASE = {\n attributeType: 'XML',\n repeatCount: 'indefinite',\n dur: '2s'\n }; // Ring\n\n gChildren.push({\n tag: 'path',\n attributes: { ...FILL,\n d: 'M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z'\n }\n });\n const OPACITY_ANIMATE = { ...ANIMATION_BASE,\n attributeName: 'opacity'\n };\n const dot = {\n tag: 'circle',\n attributes: { ...FILL,\n cx: '256',\n cy: '364',\n r: '28'\n },\n children: []\n };\n\n if (!reduceMotion) {\n dot.children.push({\n tag: 'animate',\n attributes: { ...ANIMATION_BASE,\n attributeName: 'r',\n values: '28;14;28;28;14;28;'\n }\n }, {\n tag: 'animate',\n attributes: { ...OPACITY_ANIMATE,\n values: '1;0;1;1;0;1;'\n }\n });\n }\n\n gChildren.push(dot);\n gChildren.push({\n tag: 'path',\n attributes: { ...FILL,\n opacity: '1',\n d: 'M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z'\n },\n children: reduceMotion ? [] : [{\n tag: 'animate',\n attributes: { ...OPACITY_ANIMATE,\n values: '1;0;0;0;0;1;'\n }\n }]\n });\n\n if (!reduceMotion) {\n // Exclamation\n gChildren.push({\n tag: 'path',\n attributes: { ...FILL,\n opacity: '0',\n d: 'M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z'\n },\n children: [{\n tag: 'animate',\n attributes: { ...OPACITY_ANIMATE,\n values: '0;0;1;1;0;0;'\n }\n }]\n });\n }\n\n return {\n tag: 'g',\n attributes: {\n 'class': 'missing'\n },\n children: gChildren\n };\n };\n }\n\n};\n\nvar SvgSymbols = {\n hooks() {\n return {\n parseNodeAttributes(accumulator, node) {\n const symbolData = node.getAttribute('data-fa-symbol');\n const symbol = symbolData === null ? false : symbolData === '' ? true : symbolData;\n accumulator['symbol'] = symbol;\n return accumulator;\n }\n\n };\n }\n\n};\n\nvar plugins = [InjectCSS, ReplaceElements, Layers, LayersCounter, LayersText, PseudoElements, MutationObserver$1, PowerTransforms, Masks, MissingIconIndicator, SvgSymbols];\n\nregisterPlugins(plugins, {\n mixoutsTo: api\n});\nconst noAuto$1 = api.noAuto;\nconst config$1 = api.config;\nconst library$1 = api.library;\nconst dom$1 = api.dom;\nconst parse$1 = api.parse;\nconst findIconDefinition$1 = api.findIconDefinition;\nconst toHtml$1 = api.toHtml;\nconst icon = api.icon;\nconst layer = api.layer;\nconst text = api.text;\nconst counter = api.counter;\n\nexport { noAuto$1 as noAuto, config$1 as config, library$1 as library, dom$1 as dom, parse$1 as parse, findIconDefinition$1 as findIconDefinition, toHtml$1 as toHtml, icon, layer, text, counter, api };\n","import { parse, icon } from '@fortawesome/fontawesome-svg-core';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\n// Get CSS class list from a props object\nfunction classList(props) {\n var _classes;\n\n var beat = props.beat,\n fade = props.fade,\n beatFade = props.beatFade,\n bounce = props.bounce,\n shake = props.shake,\n flash = props.flash,\n spin = props.spin,\n spinPulse = props.spinPulse,\n spinReverse = props.spinReverse,\n pulse = props.pulse,\n fixedWidth = props.fixedWidth,\n inverse = props.inverse,\n border = props.border,\n listItem = props.listItem,\n flip = props.flip,\n size = props.size,\n rotation = props.rotation,\n pull = props.pull; // map of CSS class names to properties\n\n var classes = (_classes = {\n 'fa-beat': beat,\n 'fa-fade': fade,\n 'fa-beat-fade': beatFade,\n 'fa-bounce': bounce,\n 'fa-shake': shake,\n 'fa-flash': flash,\n 'fa-spin': spin,\n 'fa-spin-reverse': spinReverse,\n 'fa-spin-pulse': spinPulse,\n 'fa-pulse': pulse,\n 'fa-fw': fixedWidth,\n 'fa-inverse': inverse,\n 'fa-border': border,\n 'fa-li': listItem,\n 'fa-flip': flip === true,\n 'fa-flip-horizontal': flip === 'horizontal' || flip === 'both',\n 'fa-flip-vertical': flip === 'vertical' || flip === 'both'\n }, _defineProperty(_classes, \"fa-\".concat(size), typeof size !== 'undefined' && size !== null), _defineProperty(_classes, \"fa-rotate-\".concat(rotation), typeof rotation !== 'undefined' && rotation !== null && rotation !== 0), _defineProperty(_classes, \"fa-pull-\".concat(pull), typeof pull !== 'undefined' && pull !== null), _defineProperty(_classes, 'fa-swap-opacity', props.swapOpacity), _classes); // map over all the keys in the classes object\n // return an array of the keys where the value for the key is not null\n\n return Object.keys(classes).map(function (key) {\n return classes[key] ? key : null;\n }).filter(function (key) {\n return key;\n });\n}\n\n// Camelize taken from humps\n// humps is copyright © 2012+ Dom Christie\n// Released under the MIT license.\n// Performant way to determine if object coerces to a number\nfunction _isNumerical(obj) {\n obj = obj - 0; // eslint-disable-next-line no-self-compare\n\n return obj === obj;\n}\n\nfunction camelize(string) {\n if (_isNumerical(string)) {\n return string;\n } // eslint-disable-next-line no-useless-escape\n\n\n string = string.replace(/[\\-_\\s]+(.)?/g, function (match, chr) {\n return chr ? chr.toUpperCase() : '';\n }); // Ensure 1st char is always lowercase\n\n return string.substr(0, 1).toLowerCase() + string.substr(1);\n}\n\nvar _excluded = [\"style\"];\n\nfunction capitalize(val) {\n return val.charAt(0).toUpperCase() + val.slice(1);\n}\n\nfunction styleToObject(style) {\n return style.split(';').map(function (s) {\n return s.trim();\n }).filter(function (s) {\n return s;\n }).reduce(function (acc, pair) {\n var i = pair.indexOf(':');\n var prop = camelize(pair.slice(0, i));\n var value = pair.slice(i + 1).trim();\n prop.startsWith('webkit') ? acc[capitalize(prop)] = value : acc[prop] = value;\n return acc;\n }, {});\n}\n\nfunction convert(createElement, element) {\n var extraProps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (typeof element === 'string') {\n return element;\n }\n\n var children = (element.children || []).map(function (child) {\n return convert(createElement, child);\n });\n /* eslint-disable dot-notation */\n\n var mixins = Object.keys(element.attributes || {}).reduce(function (acc, key) {\n var val = element.attributes[key];\n\n switch (key) {\n case 'class':\n acc.attrs['className'] = val;\n delete element.attributes['class'];\n break;\n\n case 'style':\n acc.attrs['style'] = styleToObject(val);\n break;\n\n default:\n if (key.indexOf('aria-') === 0 || key.indexOf('data-') === 0) {\n acc.attrs[key.toLowerCase()] = val;\n } else {\n acc.attrs[camelize(key)] = val;\n }\n\n }\n\n return acc;\n }, {\n attrs: {}\n });\n\n var _extraProps$style = extraProps.style,\n existingStyle = _extraProps$style === void 0 ? {} : _extraProps$style,\n remaining = _objectWithoutProperties(extraProps, _excluded);\n\n mixins.attrs['style'] = _objectSpread2(_objectSpread2({}, mixins.attrs['style']), existingStyle);\n /* eslint-enable */\n\n return createElement.apply(void 0, [element.tag, _objectSpread2(_objectSpread2({}, mixins.attrs), remaining)].concat(_toConsumableArray(children)));\n}\n\nvar PRODUCTION = false;\n\ntry {\n PRODUCTION = process.env.NODE_ENV === 'production';\n} catch (e) {}\n\nfunction log () {\n if (!PRODUCTION && console && typeof console.error === 'function') {\n var _console;\n\n (_console = console).error.apply(_console, arguments);\n }\n}\n\nfunction normalizeIconArgs(icon) {\n // this has everything that it needs to be rendered which means it was probably imported\n // directly from an icon svg package\n if (icon && _typeof(icon) === 'object' && icon.prefix && icon.iconName && icon.icon) {\n return icon;\n }\n\n if (parse.icon) {\n return parse.icon(icon);\n } // if the icon is null, there's nothing to do\n\n\n if (icon === null) {\n return null;\n } // if the icon is an object and has a prefix and an icon name, return it\n\n\n if (icon && _typeof(icon) === 'object' && icon.prefix && icon.iconName) {\n return icon;\n } // if it's an array with length of two\n\n\n if (Array.isArray(icon) && icon.length === 2) {\n // use the first item as prefix, second as icon name\n return {\n prefix: icon[0],\n iconName: icon[1]\n };\n } // if it's a string, use it as the icon name\n\n\n if (typeof icon === 'string') {\n return {\n prefix: 'fas',\n iconName: icon\n };\n }\n}\n\n// creates an object with a key of key\n// and a value of value\n// if certain conditions are met\nfunction objectWithKey(key, value) {\n // if the value is a non-empty array\n // or it's not an array but it is truthy\n // then create the object with the key and the value\n // if not, return an empty array\n return Array.isArray(value) && value.length > 0 || !Array.isArray(value) && value ? _defineProperty({}, key, value) : {};\n}\n\nvar defaultProps = {\n border: false,\n className: '',\n mask: null,\n maskId: null,\n fixedWidth: false,\n inverse: false,\n flip: false,\n icon: null,\n listItem: false,\n pull: null,\n pulse: false,\n rotation: null,\n size: null,\n spin: false,\n spinPulse: false,\n spinReverse: false,\n beat: false,\n fade: false,\n beatFade: false,\n bounce: false,\n shake: false,\n symbol: false,\n title: '',\n titleId: null,\n transform: null,\n swapOpacity: false\n};\nvar FontAwesomeIcon = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var allProps = _objectSpread2(_objectSpread2({}, defaultProps), props);\n\n var iconArgs = allProps.icon,\n maskArgs = allProps.mask,\n symbol = allProps.symbol,\n className = allProps.className,\n title = allProps.title,\n titleId = allProps.titleId,\n maskId = allProps.maskId;\n var iconLookup = normalizeIconArgs(iconArgs);\n var classes = objectWithKey('classes', [].concat(_toConsumableArray(classList(allProps)), _toConsumableArray((className || '').split(' '))));\n var transform = objectWithKey('transform', typeof allProps.transform === 'string' ? parse.transform(allProps.transform) : allProps.transform);\n var mask = objectWithKey('mask', normalizeIconArgs(maskArgs));\n var renderedIcon = icon(iconLookup, _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, classes), transform), mask), {}, {\n symbol: symbol,\n title: title,\n titleId: titleId,\n maskId: maskId\n }));\n\n if (!renderedIcon) {\n log('Could not find icon', iconLookup);\n return null;\n }\n\n var abstract = renderedIcon.abstract;\n var extraProps = {\n ref: ref\n };\n Object.keys(allProps).forEach(function (key) {\n // eslint-disable-next-line no-prototype-builtins\n if (!defaultProps.hasOwnProperty(key)) {\n extraProps[key] = allProps[key];\n }\n });\n return convertCurry(abstract[0], extraProps);\n});\nFontAwesomeIcon.displayName = 'FontAwesomeIcon';\nFontAwesomeIcon.propTypes = {\n beat: PropTypes.bool,\n border: PropTypes.bool,\n beatFade: PropTypes.bool,\n bounce: PropTypes.bool,\n className: PropTypes.string,\n fade: PropTypes.bool,\n flash: PropTypes.bool,\n mask: PropTypes.oneOfType([PropTypes.object, PropTypes.array, PropTypes.string]),\n maskId: PropTypes.string,\n fixedWidth: PropTypes.bool,\n inverse: PropTypes.bool,\n flip: PropTypes.oneOf([true, false, 'horizontal', 'vertical', 'both']),\n icon: PropTypes.oneOfType([PropTypes.object, PropTypes.array, PropTypes.string]),\n listItem: PropTypes.bool,\n pull: PropTypes.oneOf(['right', 'left']),\n pulse: PropTypes.bool,\n rotation: PropTypes.oneOf([0, 90, 180, 270]),\n shake: PropTypes.bool,\n size: PropTypes.oneOf(['2xs', 'xs', 'sm', 'lg', 'xl', '2xl', '1x', '2x', '3x', '4x', '5x', '6x', '7x', '8x', '9x', '10x']),\n spin: PropTypes.bool,\n spinPulse: PropTypes.bool,\n spinReverse: PropTypes.bool,\n symbol: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n title: PropTypes.string,\n titleId: PropTypes.string,\n transform: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n swapOpacity: PropTypes.bool\n};\nvar convertCurry = convert.bind(null, React.createElement);\n\nexport { FontAwesomeIcon };\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { FormGroup } from \"@blueprintjs/core\";\nimport { FormFieldErrorContainer } from \"../../CoreFields/FieldError/FormFieldErrorContainer\";\nimport { FieldLabel } from \"../../CoreFields/FieldLabel/FieldLabel\";\nimport { DropDownListComponent } from \"@syncfusion/ej2-react-dropdowns\";\nimport { useEnumSingleSelectFieldV2, } from \"./useEnumSingleSelectFieldV2\";\nimport { SecondaryButton } from \"../../../Buttons\";\nimport { faClose } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport classNames from \"classnames\";\n/**Single Select is used primarily with enum values from the API, but can be passed collection of arrays*/\nexport var EnumSingleSelectFieldV2 = function (props) {\n var module = useEnumSingleSelectFieldV2(props);\n return (_jsxs(FormGroup, { className: classNames(\"enum-single-select-field-v2\", {\n \"has-required-background\": props.isRequired && !module.localValue,\n }), children: [props.label && (_jsx(FieldLabel, __assign({ labelName: props.label, tooltipDescription: props.description, fieldProps: __assign(__assign({}, props), { value: module.localValue }) }, props.labelProps))), module.ready && (_jsxs(\"div\", { className: \"select-field-input\", children: [_jsx(DropDownListComponent, __assign({ ref: module.singleSelectRef }, module.settings)), props.showClearButton !== false && (_jsx(SecondaryButton, { minimal: true, className: \"select-field-clear-button\", onClick: function () {\n module.setLocalValue(undefined);\n }, children: _jsx(FontAwesomeIcon, { icon: faClose }) }))] })), props.errorMessages && (_jsx(FormFieldErrorContainer, { errorMessages: props.errorMessages }))] }, module.localValue));\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { FormGroup, TextArea } from \"@blueprintjs/core\";\nimport { FormFieldErrorContainer } from \"../../CoreFields/FieldError/FormFieldErrorContainer\";\nimport { FieldLabel } from \"../../CoreFields/FieldLabel/FieldLabel\";\nimport { useTextAreaField } from \"./useTextAreaField\";\nvar TextAreaField = function (props) {\n var _a = useTextAreaField(props), localValue = _a.localValue, setLocalValue = _a.setLocalValue;\n return (_jsx(\"div\", { className: \"ucl-base-input-text-area-field-container\", children: _jsxs(FormGroup, { className: props.isRequired && !localValue\n ? \"has-required-background\"\n : \"base-field\", children: [props.label && (_jsx(FieldLabel, __assign({ labelName: props.label, tooltipDescription: props.description, fieldProps: __assign(__assign({}, props), { value: localValue }) }, props.labelProps))), _jsx(TextArea, { name: String(props.label), defaultValue: props.value, value: localValue, maxLength: props.maxLength === 0 ? undefined : props.maxLength, disabled: props.disabled, onChange: function (e) {\n setLocalValue(e.target.value);\n props.onSubmit && props.onSubmit(e.target.value);\n } }), !!props.maxLength && localValue && (_jsx(\"div\", { className: \"text-area-remaining-characters\", children: _jsx(FieldLabel, { labelName: \"\".concat(props.maxLength - localValue.length, \" of \").concat(props.maxLength, \" characters left\") }) })), props.errorMessages && (_jsx(FormFieldErrorContainer, { errorMessages: props.errorMessages }))] }) }));\n};\nexport default TextAreaField;\n","import { useState, useEffect } from \"react\";\nexport var useTextAreaField = function (props) {\n var _a = useState(props.value), localValue = _a[0], setLocalValue = _a[1];\n useEffect(function () {\n setLocalValue(props.value);\n }, [props.value]);\n return { localValue: localValue, setLocalValue: setLocalValue };\n};\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n// eslint-disable-next-line @typescript-eslint/triple-slash-reference\n/// \nimport { EventHandler, Property, Event, addClass, Browser, removeClass, detach } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined, NotifyPropertyChanges, getValue, setValue } from '@syncfusion/ej2-base';\nimport { DropDownList, dropDownListClasses } from '../drop-down-list/drop-down-list';\nimport { Search } from '../common/incremental-search';\nimport { createSpinner, showSpinner, hideSpinner } from '@syncfusion/ej2-popups';\nimport { Input } from '@syncfusion/ej2-inputs';\nvar SPINNER_CLASS = 'e-atc-spinner-icon';\ndropDownListClasses.root = 'e-combobox';\nvar inputObject = {\n container: null,\n buttons: []\n};\n/**\n * The ComboBox component allows the user to type a value or choose an option from the list of predefined options.\n * ```html\n * \n * ```\n * ```typescript\n * let games:ComboBox = new ComboBox();\n * games.appendTo(\"#list\");\n * ```\n */\nvar ComboBox = /** @class */ (function (_super) {\n __extends(ComboBox, _super);\n /**\n * *Constructor for creating the component\n *\n * @param {ComboBoxModel} options - Specifies the ComboBox model.\n * @param {string | HTMLElement} element - Specifies the element to render as component.\n * @private\n */\n function ComboBox(options, element) {\n return _super.call(this, options, element) || this;\n }\n /**\n * Initialize the event handler\n *\n * @private\n * @returns {void}\n */\n ComboBox.prototype.preRender = function () {\n _super.prototype.preRender.call(this);\n };\n ComboBox.prototype.getLocaleName = function () {\n return 'combo-box';\n };\n ComboBox.prototype.wireEvent = function () {\n if (this.getModuleName() === 'combobox') {\n EventHandler.add(this.inputWrapper.buttons[0], 'mousedown', this.preventBlur, this);\n EventHandler.add(this.inputWrapper.container, 'blur', this.onBlurHandler, this);\n }\n if (!isNullOrUndefined(this.inputWrapper.buttons[0])) {\n EventHandler.add(this.inputWrapper.buttons[0], 'mousedown', this.dropDownClick, this);\n }\n EventHandler.add(this.inputElement, 'focus', this.targetFocus, this);\n if (!this.readonly) {\n EventHandler.add(this.inputElement, 'input', this.onInput, this);\n EventHandler.add(this.inputElement, 'keyup', this.onFilterUp, this);\n EventHandler.add(this.inputElement, 'keydown', this.onFilterDown, this);\n EventHandler.add(this.inputElement, 'paste', this.pasteHandler, this);\n }\n this.bindCommonEvent();\n };\n ComboBox.prototype.preventBlur = function (e) {\n if ((!this.allowFiltering && document.activeElement !== this.inputElement &&\n !document.activeElement.classList.contains(dropDownListClasses.input) && Browser.isDevice || !Browser.isDevice)) {\n e.preventDefault();\n }\n };\n ComboBox.prototype.onBlurHandler = function (e) {\n var inputValue = this.inputElement && this.inputElement.value === '' ?\n null : this.inputElement && this.inputElement.value;\n if (!isNullOrUndefined(this.listData) && !isNullOrUndefined(inputValue) && inputValue !== this.text) {\n this.customValue(e);\n }\n _super.prototype.onBlurHandler.call(this, e);\n };\n ComboBox.prototype.targetElement = function () {\n return this.inputElement;\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n ComboBox.prototype.setOldText = function (text) {\n Input.setValue(this.text, this.inputElement, this.floatLabelType, this.showClearButton);\n this.customValue();\n this.removeSelection();\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n ComboBox.prototype.setOldValue = function (value) {\n if (this.allowCustom) {\n this.valueMuteChange(this.value);\n }\n else {\n this.valueMuteChange(null);\n }\n this.removeSelection();\n this.setHiddenValue();\n };\n ComboBox.prototype.valueMuteChange = function (value) {\n var inputValue = isNullOrUndefined(value) ? null : value.toString();\n Input.setValue(inputValue, this.inputElement, this.floatLabelType, this.showClearButton);\n this.setProperties({ value: value, text: value, index: null }, true);\n this.activeIndex = this.index;\n var fields = this.fields;\n var dataItem = {};\n dataItem[fields.text] = isNullOrUndefined(value) ? null : value.toString();\n dataItem[fields.value] = isNullOrUndefined(value) ? null : value.toString();\n this.itemData = dataItem;\n this.item = null;\n if (this.previousValue !== this.value) {\n this.detachChangeEvent(null);\n }\n };\n ComboBox.prototype.updateValues = function () {\n if (!isNullOrUndefined(this.value)) {\n var li = this.getElementByValue(this.value);\n if (li) {\n this.setSelection(li, null);\n }\n else if (this.allowCustom) {\n this.valueMuteChange(this.value);\n }\n else {\n this.valueMuteChange(null);\n }\n }\n else if (this.text && isNullOrUndefined(this.value)) {\n var li = this.getElementByText(this.text);\n if (li) {\n this.setSelection(li, null);\n }\n else {\n Input.setValue(this.text, this.inputElement, this.floatLabelType, this.showClearButton);\n this.customValue();\n }\n }\n else {\n this.setSelection(this.liCollections[this.activeIndex], null);\n }\n this.setHiddenValue();\n Input.setValue(this.text, this.inputElement, this.floatLabelType, this.showClearButton);\n };\n ComboBox.prototype.updateIconState = function () {\n if (this.showClearButton) {\n if (this.inputElement && this.inputElement.value !== '' && !this.readonly) {\n removeClass([this.inputWrapper.clearButton], dropDownListClasses.clearIconHide);\n }\n else {\n addClass([this.inputWrapper.clearButton], dropDownListClasses.clearIconHide);\n }\n }\n };\n ComboBox.prototype.getAriaAttributes = function () {\n var ariaAttributes = {\n 'role': 'combobox',\n 'aria-autocomplete': 'both',\n 'aria-labelledby': this.hiddenElement.id,\n 'aria-expanded': 'false',\n 'aria-readonly': this.readonly.toString(),\n 'autocomplete': 'off',\n 'autocapitalize': 'off',\n 'spellcheck': 'false'\n };\n return ariaAttributes;\n };\n ComboBox.prototype.searchLists = function (e) {\n this.isTyped = true;\n if (this.isFiltering()) {\n _super.prototype.searchLists.call(this, e);\n if (this.ulElement && this.filterInput.value.trim() === '') {\n this.setHoverList(this.ulElement.querySelector('.' + dropDownListClasses.li));\n }\n }\n else {\n if (this.ulElement && this.inputElement.value === '' && this.preventAutoFill) {\n this.setHoverList(this.ulElement.querySelector('.' + dropDownListClasses.li));\n }\n this.incrementalSearch(e);\n }\n };\n ComboBox.prototype.getNgDirective = function () {\n return 'EJS-COMBOBOX';\n };\n ComboBox.prototype.setSearchBox = function () {\n this.filterInput = this.inputElement;\n return (this.isFiltering() ? this.inputWrapper : inputObject);\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n ComboBox.prototype.onActionComplete = function (ulElement, list, e, isUpdated) {\n var _this = this;\n _super.prototype.onActionComplete.call(this, ulElement, list, e);\n if (this.isSelectCustom) {\n this.removeSelection();\n }\n if (!this.preventAutoFill && this.getModuleName() === 'combobox' && this.isTyped) {\n setTimeout(function () {\n _this.inlineSearch();\n });\n }\n };\n ComboBox.prototype.getFocusElement = function () {\n var dataItem = this.isSelectCustom ? { text: '' } : this.getItemData();\n var selected = !isNullOrUndefined(this.list) ? this.list.querySelector('.' + dropDownListClasses.selected) : this.list;\n var isSelected = dataItem.text === this.inputElement.value && !isNullOrUndefined(selected);\n if (isSelected) {\n return selected;\n }\n if ((Browser.isDevice && !this.isDropDownClick || !Browser.isDevice) &&\n !isNullOrUndefined(this.liCollections) && this.liCollections.length > 0) {\n var inputValue = this.inputElement.value;\n var dataSource = this.sortedData;\n var type = this.typeOfData(dataSource).typeof;\n var activeItem = Search(inputValue, this.liCollections, this.filterType, true, dataSource, this.fields, type);\n var activeElement = activeItem.item;\n if (!isNullOrUndefined(activeElement)) {\n var count = this.getIndexByValue(activeElement.getAttribute('data-value')) - 1;\n var height = parseInt(getComputedStyle(this.liCollections[0], null).getPropertyValue('height'), 10);\n if (!isNaN(height) && this.getModuleName() !== 'autocomplete') {\n this.removeFocus();\n var fixedHead = this.fields.groupBy ? this.liCollections[0].offsetHeight : 0;\n this.list.scrollTop = count * height + fixedHead;\n addClass([activeElement], dropDownListClasses.focus);\n }\n }\n else {\n if (this.isSelectCustom && this.inputElement.value.trim() !== '') {\n this.removeFocus();\n this.list.scrollTop = 0;\n }\n }\n return activeElement;\n }\n else {\n return null;\n }\n };\n ComboBox.prototype.setValue = function (e) {\n if (e && e.type === 'keydown' && e.action === 'enter') {\n this.removeFillSelection();\n }\n if (this.autofill && this.getModuleName() === 'combobox' && e && e.type === 'keydown' && e.action !== 'enter') {\n this.preventAutoFill = false;\n this.inlineSearch(e);\n return false;\n }\n else {\n return _super.prototype.setValue.call(this, e);\n }\n };\n ComboBox.prototype.checkCustomValue = function () {\n this.itemData = this.getDataByValue(this.value);\n var dataItem = this.getItemData();\n if (!(this.allowCustom && isNullOrUndefined(dataItem.value) && isNullOrUndefined(dataItem.text))) {\n this.setProperties({ 'value': dataItem.value }, !this.allowCustom);\n }\n };\n /**\n * Shows the spinner loader.\n *\n * @returns {void}\n\n */\n ComboBox.prototype.showSpinner = function () {\n if (isNullOrUndefined(this.spinnerElement)) {\n this.spinnerElement = (this.getModuleName() === 'autocomplete') ? (this.inputWrapper.buttons[0] ||\n this.inputWrapper.clearButton ||\n Input.appendSpan('e-input-group-icon ' + SPINNER_CLASS, this.inputWrapper.container, this.createElement)) :\n (this.inputWrapper.buttons[0] || this.inputWrapper.clearButton);\n addClass([this.spinnerElement], dropDownListClasses.disableIcon);\n createSpinner({\n target: this.spinnerElement,\n width: Browser.isDevice ? '16px' : '14px'\n }, this.createElement);\n showSpinner(this.spinnerElement);\n }\n };\n /**\n * Hides the spinner loader.\n *\n * @returns {void}\n\n */\n ComboBox.prototype.hideSpinner = function () {\n if (!isNullOrUndefined(this.spinnerElement)) {\n hideSpinner(this.spinnerElement);\n removeClass([this.spinnerElement], dropDownListClasses.disableIcon);\n if (this.spinnerElement.classList.contains(SPINNER_CLASS)) {\n detach(this.spinnerElement);\n }\n else {\n this.spinnerElement.innerHTML = '';\n }\n this.spinnerElement = null;\n }\n };\n ComboBox.prototype.setAutoFill = function (activeElement, isHover) {\n if (!isHover) {\n this.setHoverList(activeElement);\n }\n if (this.autofill && !this.preventAutoFill) {\n var currentValue = this.getTextByValue(activeElement.getAttribute('data-value')).toString();\n var currentFillValue = this.getFormattedValue(activeElement.getAttribute('data-value'));\n if (this.getModuleName() === 'combobox') {\n if (!this.isSelected && this.previousValue !== currentFillValue) {\n this.updateSelectedItem(activeElement, null);\n this.isSelected = true;\n this.previousValue = this.getFormattedValue(activeElement.getAttribute('data-value'));\n }\n else {\n this.updateSelectedItem(activeElement, null, true);\n }\n }\n if (!this.isAndroidAutoFill(currentValue)) {\n this.setAutoFillSelection(currentValue, isHover);\n }\n }\n };\n ComboBox.prototype.isAndroidAutoFill = function (value) {\n if (Browser.isAndroid) {\n var currentPoints = this.getSelectionPoints();\n var prevEnd = this.prevSelectPoints.end;\n var curEnd = currentPoints.end;\n var prevStart = this.prevSelectPoints.start;\n var curStart = currentPoints.start;\n if (prevEnd !== 0 && ((prevEnd === value.length && prevStart === value.length) ||\n (prevStart > curStart && prevEnd > curEnd) || (prevEnd === curEnd && prevStart === curStart))) {\n return true;\n }\n else {\n return false;\n }\n }\n else {\n return false;\n }\n };\n ComboBox.prototype.clearAll = function (e, property) {\n if (isNullOrUndefined(property) || (!isNullOrUndefined(property) && isNullOrUndefined(property.dataSource))) {\n _super.prototype.clearAll.call(this, e);\n }\n if (this.isFiltering() && !isNullOrUndefined(e) && e.target === this.inputWrapper.clearButton) {\n this.searchLists(e);\n }\n };\n ComboBox.prototype.isSelectFocusItem = function (element) {\n return !isNullOrUndefined(element);\n };\n ComboBox.prototype.inlineSearch = function (e) {\n var isKeyNavigate = (e && (e.action === 'down' || e.action === 'up' ||\n e.action === 'home' || e.action === 'end' || e.action === 'pageUp' || e.action === 'pageDown'));\n var activeElement = isKeyNavigate ? this.liCollections[this.activeIndex] : this.getFocusElement();\n if (!isNullOrUndefined(activeElement)) {\n if (!isKeyNavigate) {\n var value = this.getFormattedValue(activeElement.getAttribute('data-value'));\n this.activeIndex = this.getIndexByValue(value);\n this.activeIndex = !isNullOrUndefined(this.activeIndex) ? this.activeIndex : null;\n }\n this.preventAutoFill = this.inputElement.value === '' ? false : this.preventAutoFill;\n this.setAutoFill(activeElement, isKeyNavigate);\n }\n else if (this.inputElement.value === '') {\n this.activeIndex = null;\n if (!isNullOrUndefined(this.list)) {\n this.list.scrollTop = 0;\n var focusItem = this.list.querySelector('.' + dropDownListClasses.li);\n this.setHoverList(focusItem);\n }\n }\n else {\n this.activeIndex = null;\n this.removeSelection();\n if (this.liCollections && this.liCollections.length > 0 && !this.isCustomFilter) {\n this.removeFocus();\n }\n }\n };\n ComboBox.prototype.incrementalSearch = function (e) {\n this.showPopup(e);\n if (!isNullOrUndefined(this.listData)) {\n this.inlineSearch(e);\n e.preventDefault();\n }\n };\n ComboBox.prototype.setAutoFillSelection = function (currentValue, isKeyNavigate) {\n if (isKeyNavigate === void 0) { isKeyNavigate = false; }\n var selection = this.getSelectionPoints();\n var value = this.inputElement.value.substr(0, selection.start);\n if (value && (value.toLowerCase() === currentValue.substr(0, selection.start).toLowerCase())) {\n var inputValue = value + currentValue.substr(value.length, currentValue.length);\n Input.setValue(inputValue, this.inputElement, this.floatLabelType, this.showClearButton);\n this.inputElement.setSelectionRange(selection.start, this.inputElement.value.length);\n }\n else if (isKeyNavigate) {\n Input.setValue(currentValue, this.inputElement, this.floatLabelType, this.showClearButton);\n this.inputElement.setSelectionRange(0, this.inputElement.value.length);\n }\n };\n ComboBox.prototype.getValueByText = function (text) {\n return _super.prototype.getValueByText.call(this, text, true, this.ignoreAccent);\n };\n ComboBox.prototype.unWireEvent = function () {\n if (this.getModuleName() === 'combobox') {\n EventHandler.remove(this.inputWrapper.buttons[0], 'mousedown', this.preventBlur);\n EventHandler.remove(this.inputWrapper.container, 'blur', this.onBlurHandler);\n }\n if (!isNullOrUndefined(this.inputWrapper.buttons[0])) {\n EventHandler.remove(this.inputWrapper.buttons[0], 'mousedown', this.dropDownClick);\n }\n if (this.inputElement) {\n EventHandler.remove(this.inputElement, 'focus', this.targetFocus);\n if (!this.readonly) {\n EventHandler.remove(this.inputElement, 'input', this.onInput);\n EventHandler.remove(this.inputElement, 'keyup', this.onFilterUp);\n EventHandler.remove(this.inputElement, 'keydown', this.onFilterDown);\n EventHandler.remove(this.inputElement, 'paste', this.pasteHandler);\n }\n }\n this.unBindCommonEvent();\n };\n ComboBox.prototype.setSelection = function (li, e) {\n _super.prototype.setSelection.call(this, li, e);\n if (!isNullOrUndefined(li) && !this.autofill && !this.isDropDownClick) {\n this.removeFocus();\n }\n };\n ComboBox.prototype.selectCurrentItem = function (e) {\n var li;\n if (this.isPopupOpen) {\n if (this.isSelected) {\n li = this.list.querySelector('.' + dropDownListClasses.selected);\n }\n else {\n li = this.list.querySelector('.' + dropDownListClasses.focus);\n }\n if (li) {\n this.setSelection(li, e);\n this.isTyped = false;\n }\n if (this.isSelected) {\n this.isSelectCustom = false;\n this.onChangeEvent(e);\n }\n }\n if (e.action === 'enter' && this.inputElement.value.trim() === '') {\n this.clearAll(e);\n }\n else if (this.isTyped && !this.isSelected && isNullOrUndefined(li)) {\n this.customValue(e);\n }\n this.hidePopup(e);\n };\n ComboBox.prototype.setHoverList = function (li) {\n this.removeSelection();\n if (this.isValidLI(li) && !li.classList.contains(dropDownListClasses.selected)) {\n this.removeFocus();\n li.classList.add(dropDownListClasses.focus);\n }\n };\n ComboBox.prototype.targetFocus = function (e) {\n if (Browser.isDevice && !this.allowFiltering) {\n this.preventFocus = false;\n }\n this.onFocus(e);\n Input.calculateWidth(this.inputElement, this.inputWrapper.container);\n };\n ComboBox.prototype.dropDownClick = function (e) {\n e.preventDefault();\n if (Browser.isDevice && !this.isFiltering()) {\n this.preventFocus = true;\n }\n _super.prototype.dropDownClick.call(this, e);\n };\n ComboBox.prototype.customValue = function (e) {\n var _this = this;\n var value = this.getValueByText(this.inputElement.value);\n if (!this.allowCustom && this.inputElement.value !== '') {\n var previousValue = this.previousValue;\n var currentValue = this.value;\n this.setProperties({ value: value });\n if (isNullOrUndefined(this.value)) {\n Input.setValue('', this.inputElement, this.floatLabelType, this.showClearButton);\n }\n if (this.autofill && previousValue === this.value && currentValue !== this.value) {\n this.onChangeEvent(null);\n }\n }\n else if (this.inputElement.value.trim() !== '') {\n var previousValue_1 = this.value;\n if (isNullOrUndefined(value)) {\n var value_1 = this.inputElement.value === '' ? null : this.inputElement.value;\n // eslint-disable-next-line max-len\n var eventArgs = { text: value_1, item: {} };\n if (!this.initial) {\n this.trigger('customValueSpecifier', eventArgs, function (eventArgs) {\n _this.updateCustomValueCallback(value_1, eventArgs, previousValue_1, e);\n });\n }\n else {\n this.updateCustomValueCallback(value_1, eventArgs, previousValue_1);\n }\n }\n else {\n this.isSelectCustom = false;\n this.setProperties({ value: value });\n if (previousValue_1 !== this.value) {\n this.onChangeEvent(e);\n }\n }\n }\n else if (this.allowCustom) {\n this.isSelectCustom = true;\n }\n };\n ComboBox.prototype.updateCustomValueCallback = function (value, eventArgs, previousValue, e) {\n var fields = this.fields;\n var item = eventArgs.item;\n var dataItem = {};\n if (item && getValue(fields.text, item) && getValue(fields.value, item)) {\n dataItem = item;\n }\n else {\n setValue(fields.text, value, dataItem);\n setValue(fields.value, value, dataItem);\n }\n this.itemData = dataItem;\n var changeData = {\n text: getValue(fields.text, this.itemData),\n value: getValue(fields.value, this.itemData),\n index: null\n };\n this.setProperties(changeData, true);\n this.setSelection(null, null);\n this.isSelectCustom = true;\n if (previousValue !== this.value) {\n this.onChangeEvent(e);\n }\n };\n /**\n * Dynamically change the value of properties.\n *\n * @param {ComboBoxModel} newProp - Returns the dynamic property value of the component.\n * @param {ComboBoxModel} oldProp - Returns the previous property value of the component.\n * @private\n * @returns {void}\n */\n ComboBox.prototype.onPropertyChanged = function (newProp, oldProp) {\n if (this.getModuleName() === 'combobox') {\n this.checkData(newProp);\n this.setUpdateInitial(['fields', 'query', 'dataSource'], newProp);\n }\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'readonly':\n Input.setReadonly(this.readonly, this.inputElement);\n if (this.readonly) {\n EventHandler.remove(this.inputElement, 'input', this.onInput);\n EventHandler.remove(this.inputElement, 'keyup', this.onFilterUp);\n EventHandler.remove(this.inputElement, 'keydown', this.onFilterDown);\n }\n else {\n EventHandler.add(this.inputElement, 'input', this.onInput, this);\n EventHandler.add(this.inputElement, 'keyup', this.onFilterUp, this);\n EventHandler.add(this.inputElement, 'keydown', this.onFilterDown, this);\n }\n this.setReadOnly();\n break;\n case 'allowFiltering':\n this.setSearchBox();\n if (this.isFiltering() && this.getModuleName() === 'combobox' && isNullOrUndefined(this.list)) {\n _super.prototype.renderList.call(this);\n }\n break;\n case 'allowCustom':\n break;\n default: {\n // eslint-disable-next-line max-len\n var comboProps = this.getPropObject(prop, newProp, oldProp);\n _super.prototype.onPropertyChanged.call(this, comboProps.newProperty, comboProps.oldProperty);\n if (this.isFiltering() && prop === 'dataSource' && isNullOrUndefined(this.list) && this.itemTemplate &&\n this.getModuleName() === 'combobox') {\n _super.prototype.renderList.call(this);\n }\n break;\n }\n }\n }\n };\n /**\n * To initialize the control rendering.\n *\n * @private\n * @returns {void}\n */\n ComboBox.prototype.render = function () {\n _super.prototype.render.call(this);\n this.setSearchBox();\n if (this.isFiltering() && this.getModuleName() === 'combobox' && isNullOrUndefined(this.list)) {\n _super.prototype.renderList.call(this);\n }\n this.renderComplete();\n };\n /**\n * Return the module name of this component.\n *\n * @private\n * @returns {string} Return the module name of this component.\n */\n ComboBox.prototype.getModuleName = function () {\n return 'combobox';\n };\n /**\n * Adds a new item to the combobox popup list. By default, new item appends to the list as the last item,\n * but you can insert based on the index parameter.\n *\n * @param { Object[] } items - Specifies an array of JSON data or a JSON data.\n * @param { number } itemIndex - Specifies the index to place the newly added item in the popup list.\n * @returns {void}\n\n */\n ComboBox.prototype.addItem = function (items, itemIndex) {\n _super.prototype.addItem.call(this, items, itemIndex);\n };\n /**\n * To filter the data from given data source by using query\n *\n * @param {Object[] | DataManager } dataSource - Set the data source to filter.\n * @param {Query} query - Specify the query to filter the data.\n * @param {FieldSettingsModel} fields - Specify the fields to map the column in the data table.\n * @returns {void}\n\n */\n ComboBox.prototype.filter = function (dataSource, query, fields) {\n _super.prototype.filter.call(this, dataSource, query, fields);\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-param */\n /**\n * Opens the popup that displays the list of items.\n *\n * @returns {void}\n\n */\n ComboBox.prototype.showPopup = function (e) {\n /* eslint-enable valid-jsdoc, jsdoc/require-param */\n _super.prototype.showPopup.call(this, e);\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-param */\n /**\n * Hides the popup if it is in open state.\n *\n * @returns {void}\n\n */\n ComboBox.prototype.hidePopup = function (e) {\n /* eslint-enable valid-jsdoc, jsdoc/require-param */\n var inputValue = this.inputElement && this.inputElement.value === '' ? null\n : this.inputElement && this.inputElement.value;\n if (!isNullOrUndefined(this.listData)) {\n var isEscape = this.isEscapeKey;\n if (this.isEscapeKey) {\n Input.setValue(this.typedString, this.inputElement, this.floatLabelType, this.showClearButton);\n this.isEscapeKey = false;\n }\n if (this.autofill) {\n this.removeFillSelection();\n }\n var dataItem = this.isSelectCustom ? { text: '' } : this.getItemData();\n var selected = !isNullOrUndefined(this.list) ? this.list.querySelector('.' + dropDownListClasses.selected) : null;\n if (this.inputElement && dataItem.text === this.inputElement.value && !isNullOrUndefined(selected)) {\n if (this.isSelected) {\n this.onChangeEvent(e);\n this.isSelectCustom = false;\n }\n _super.prototype.hidePopup.call(this, e);\n return;\n }\n if (this.getModuleName() === 'combobox' && this.inputElement.value.trim() !== '') {\n var dataSource = this.sortedData;\n var type = this.typeOfData(dataSource).typeof;\n var searchItem = Search(this.inputElement.value, this.liCollections, 'Equal', true, dataSource, this.fields, type);\n this.selectedLI = searchItem.item;\n if (isNullOrUndefined(searchItem.index)) {\n searchItem.index = Search(this.inputElement.value, this.liCollections, 'StartsWith', true, dataSource, this.fields, type).index;\n }\n this.activeIndex = searchItem.index;\n if (!isNullOrUndefined(this.selectedLI)) {\n this.updateSelectedItem(this.selectedLI, null, true);\n }\n else if (isEscape) {\n this.isSelectCustom = true;\n this.removeSelection();\n }\n }\n if (!this.isEscapeKey && this.isTyped && !this.isInteracted) {\n this.customValue(e);\n }\n }\n if (isNullOrUndefined(this.listData) && this.allowCustom && !isNullOrUndefined(inputValue) && inputValue !== this.value) {\n this.customValue();\n }\n _super.prototype.hidePopup.call(this, e);\n };\n /**\n * Sets the focus to the component for interaction.\n *\n * @returns {void}\n */\n ComboBox.prototype.focusIn = function () {\n if (!this.enabled) {\n return;\n }\n if (Browser.isDevice && !this.isFiltering()) {\n this.preventFocus = true;\n }\n _super.prototype.focusIn.call(this);\n };\n /**\n * Allows you to clear the selected values from the component.\n *\n * @returns {void}\n\n */\n ComboBox.prototype.clear = function () {\n this.value = null;\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-param */\n /**\n * Moves the focus from the component if the component is already focused.\n *\n * @returns {void}\n\n */\n ComboBox.prototype.focusOut = function (e) {\n /* eslint-enable valid-jsdoc, jsdoc/require-param */\n _super.prototype.focusOut.call(this, e);\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Gets all the list items bound on this component.\n *\n * @returns {Element[]}\n\n */\n ComboBox.prototype.getItems = function () {\n return _super.prototype.getItems.call(this);\n };\n /**\n * Gets the data Object that matches the given value.\n *\n * @param { string | number } value - Specifies the value of the list item.\n * @returns {Object}\n\n */\n ComboBox.prototype.getDataByValue = function (value) {\n return _super.prototype.getDataByValue.call(this, value);\n };\n /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */\n ComboBox.prototype.renderHightSearch = function () {\n // update high light search\n };\n __decorate([\n Property(false)\n ], ComboBox.prototype, \"autofill\", void 0);\n __decorate([\n Property(true)\n ], ComboBox.prototype, \"allowCustom\", void 0);\n __decorate([\n Property({})\n ], ComboBox.prototype, \"htmlAttributes\", void 0);\n __decorate([\n Property(false)\n ], ComboBox.prototype, \"allowFiltering\", void 0);\n __decorate([\n Property(null)\n ], ComboBox.prototype, \"query\", void 0);\n __decorate([\n Property(null)\n ], ComboBox.prototype, \"index\", void 0);\n __decorate([\n Property(true)\n ], ComboBox.prototype, \"showClearButton\", void 0);\n __decorate([\n Property(false)\n ], ComboBox.prototype, \"enableRtl\", void 0);\n __decorate([\n Event()\n ], ComboBox.prototype, \"customValueSpecifier\", void 0);\n __decorate([\n Event()\n ], ComboBox.prototype, \"filtering\", void 0);\n __decorate([\n Property(null)\n ], ComboBox.prototype, \"valueTemplate\", void 0);\n __decorate([\n Property('Never')\n ], ComboBox.prototype, \"floatLabelType\", void 0);\n __decorate([\n Property(null)\n ], ComboBox.prototype, \"filterBarPlaceholder\", void 0);\n __decorate([\n Property(null)\n ], ComboBox.prototype, \"cssClass\", void 0);\n __decorate([\n Property(null)\n ], ComboBox.prototype, \"headerTemplate\", void 0);\n __decorate([\n Property(null)\n ], ComboBox.prototype, \"footerTemplate\", void 0);\n __decorate([\n Property(null)\n ], ComboBox.prototype, \"placeholder\", void 0);\n __decorate([\n Property('100%')\n ], ComboBox.prototype, \"width\", void 0);\n __decorate([\n Property('300px')\n ], ComboBox.prototype, \"popupHeight\", void 0);\n __decorate([\n Property('100%')\n ], ComboBox.prototype, \"popupWidth\", void 0);\n __decorate([\n Property(false)\n ], ComboBox.prototype, \"readonly\", void 0);\n __decorate([\n Property(null)\n ], ComboBox.prototype, \"text\", void 0);\n __decorate([\n Property(null)\n ], ComboBox.prototype, \"value\", void 0);\n ComboBox = __decorate([\n NotifyPropertyChanges\n ], ComboBox);\n return ComboBox;\n}(DropDownList));\nexport { ComboBox };\n","/**\n * Function helps to find which highlightSearch is to call based on your data.\n *\n * @param {HTMLElement} element - Specifies an li element.\n * @param {string} query - Specifies the string to be highlighted.\n * @param {boolean} ignoreCase - Specifies the ignoreCase option.\n * @param {HightLightType} type - Specifies the type of highlight.\n * @returns {void}\n */\nexport function highlightSearch(element, query, ignoreCase, type) {\n if (query === '') {\n return;\n }\n else {\n var ignoreRegex = ignoreCase ? 'gim' : 'gm';\n // eslint-disable-next-line\n query = /^[a-zA-Z0-9- ]*$/.test(query) ? query : query.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n var replaceQuery = type === 'StartsWith' ? '^(' + query + ')' : type === 'EndsWith' ?\n '(' + query + ')$' : '(' + query + ')';\n // eslint-disable-next-line security/detect-non-literal-regexp\n findTextNode(element, new RegExp(replaceQuery, ignoreRegex));\n }\n}\n/* eslint-enable jsdoc/require-param, valid-jsdoc */\n/**\n *\n * @param {HTMLElement} element - Specifies the element.\n * @param {RegExp} pattern - Specifies the regex to match the searched text.\n * @returns {void}\n */\nfunction findTextNode(element, pattern) {\n for (var index = 0; element.childNodes && (index < element.childNodes.length); index++) {\n if (element.childNodes[index].nodeType === 3 && element.childNodes[index].textContent.trim() !== '') {\n var value = element.childNodes[index].nodeValue.trim().replace(pattern, '$1');\n element.childNodes[index].nodeValue = '';\n element.innerHTML = element.innerHTML.trim() + value;\n break;\n }\n else {\n findTextNode(element.childNodes[index], pattern);\n }\n }\n}\n/**\n * Function helps to remove highlighted element based on your data.\n *\n * @param {HTMLElement} content - Specifies an content element.\n * @returns {void}\n */\nexport function revertHighlightSearch(content) {\n var contentElement = content.querySelectorAll('.e-highlight');\n for (var i = contentElement.length - 1; i >= 0; i--) {\n var parent_1 = contentElement[i].parentNode;\n var text = document.createTextNode(contentElement[i].textContent);\n parent_1.replaceChild(text, contentElement[i]);\n }\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n// eslint-disable-next-line @typescript-eslint/triple-slash-reference\n/// \nimport { Property, EventHandler, isNullOrUndefined, detach } from '@syncfusion/ej2-base';\nimport { Event, Complex } from '@syncfusion/ej2-base';\nimport { removeClass, NotifyPropertyChanges } from '@syncfusion/ej2-base';\nimport { dropDownListClasses } from '../drop-down-list/drop-down-list';\nimport { ComboBox } from '../combo-box/combo-box';\nimport { highlightSearch, revertHighlightSearch } from '../common/highlight-search';\nimport { Search } from '../common/incremental-search';\nimport { FieldSettings } from '../drop-down-base/drop-down-base';\nimport { Input } from '@syncfusion/ej2-inputs';\nimport { DataManager, Predicate, Query } from '@syncfusion/ej2-data';\ndropDownListClasses.root = 'e-autocomplete';\ndropDownListClasses.icon = 'e-input-group-icon e-ddl-icon e-search-icon';\n/**\n * The AutoComplete component provides the matched suggestion list when type into the input,\n * from which the user can select one.\n * ```html\n * \n * ```\n * ```typescript\n * let atcObj:AutoComplete = new AutoComplete();\n * atcObj.appendTo(\"#list\");\n * ```\n */\nvar AutoComplete = /** @class */ (function (_super) {\n __extends(AutoComplete, _super);\n /**\n * * Constructor for creating the widget\n *\n * @param {AutoCompleteModel} options - Specifies the AutoComplete model.\n * @param {string | HTMLElement} element - Specifies the element to render as component.\n * @private\n */\n function AutoComplete(options, element) {\n var _this_1 = _super.call(this, options, element) || this;\n _this_1.isFiltered = false;\n _this_1.searchList = false;\n return _this_1;\n }\n /**\n * Initialize the event handler\n *\n * @private\n * @returns {void}\n */\n AutoComplete.prototype.preRender = function () {\n _super.prototype.preRender.call(this);\n };\n AutoComplete.prototype.getLocaleName = function () {\n return 'auto-complete';\n };\n AutoComplete.prototype.getNgDirective = function () {\n return 'EJS-AUTOCOMPLETE';\n };\n AutoComplete.prototype.getQuery = function (query) {\n var filterQuery = query ? query.clone() : this.query ? this.query.clone() : new Query();\n var filterType = (this.queryString === '' && !isNullOrUndefined(this.value)) ? 'equal' : this.filterType;\n var queryString = (this.queryString === '' && !isNullOrUndefined(this.value)) ? this.value : this.queryString;\n if (this.isFiltered) {\n return filterQuery;\n }\n if (this.queryString !== null && this.queryString !== '') {\n var dataType = this.typeOfData(this.dataSource).typeof;\n if (!(this.dataSource instanceof DataManager) && dataType === 'string' || dataType === 'number') {\n filterQuery.where('', filterType, queryString, this.ignoreCase, this.ignoreAccent);\n }\n else {\n var mapping = !isNullOrUndefined(this.fields.value) ? this.fields.value : '';\n filterQuery.where(mapping, filterType, queryString, this.ignoreCase, this.ignoreAccent);\n }\n }\n if (!isNullOrUndefined(this.suggestionCount)) {\n // Since defualt value of suggestioncount is 20, checked the condition\n if (this.suggestionCount !== 20) {\n for (var queryElements = 0; queryElements < filterQuery.queries.length; queryElements++) {\n if (filterQuery.queries[queryElements].fn === 'onTake') {\n filterQuery.queries.splice(queryElements, 1);\n }\n }\n }\n filterQuery.take(this.suggestionCount);\n }\n return filterQuery;\n };\n AutoComplete.prototype.searchLists = function (e) {\n var _this_1 = this;\n this.isTyped = true;\n this.isDataFetched = this.isSelectCustom = false;\n if (isNullOrUndefined(this.list)) {\n _super.prototype.renderList.call(this, e, true);\n }\n this.queryString = this.filterInput.value;\n if (e.type !== 'mousedown' && (e.keyCode === 40 || e.keyCode === 38)) {\n this.queryString = this.queryString === '' ? null : this.queryString;\n this.beforePopupOpen = true;\n this.resetList(this.dataSource, this.fields, null, e);\n return;\n }\n this.isSelected = false;\n this.activeIndex = null;\n var eventArgs = {\n preventDefaultAction: false,\n text: this.filterInput.value,\n updateData: function (dataSource, query, fields) {\n if (eventArgs.cancel) {\n return;\n }\n _this_1.isFiltered = true;\n _this_1.filterAction(dataSource, query, fields);\n },\n cancel: false\n };\n this.trigger('filtering', eventArgs, function (eventArgs) {\n if (!eventArgs.cancel && !_this_1.isFiltered && !eventArgs.preventDefaultAction) {\n _this_1.searchList = true;\n _this_1.filterAction(_this_1.dataSource, null, _this_1.fields, e);\n }\n });\n };\n /**\n * To filter the data from given data source by using query\n *\n * @param {Object[] | DataManager } dataSource - Set the data source to filter.\n * @param {Query} query - Specify the query to filter the data.\n * @param {FieldSettingsModel} fields - Specify the fields to map the column in the data table.\n * @returns {void}\n\n */\n AutoComplete.prototype.filter = function (dataSource, query, fields) {\n this.isFiltered = true;\n this.filterAction(dataSource, query, fields);\n };\n AutoComplete.prototype.filterAction = function (dataSource, query, fields, e) {\n this.beforePopupOpen = true;\n if (this.queryString !== '' && (this.queryString.length >= this.minLength)) {\n this.resetList(dataSource, fields, query, e);\n }\n else {\n this.hidePopup(e);\n this.beforePopupOpen = false;\n }\n this.renderReactTemplates();\n };\n AutoComplete.prototype.clearAll = function (e, property) {\n if (isNullOrUndefined(property) || (!isNullOrUndefined(property) && isNullOrUndefined(property.dataSource))) {\n _super.prototype.clearAll.call(this, e);\n }\n if (this.beforePopupOpen) {\n this.hidePopup();\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n AutoComplete.prototype.onActionComplete = function (ulElement, list, e, isUpdated) {\n this.fixedHeaderElement = null;\n _super.prototype.onActionComplete.call(this, ulElement, list, e);\n var item = this.list.querySelector('.' + dropDownListClasses.li);\n if (!isNullOrUndefined(item)) {\n removeClass([item], dropDownListClasses.focus);\n }\n this.postBackAction();\n };\n AutoComplete.prototype.postBackAction = function () {\n if (this.autofill && !isNullOrUndefined(this.liCollections[0]) && this.searchList) {\n var items = [this.liCollections[0]];\n var dataSource = this.listData;\n var type = this.typeOfData(dataSource).typeof;\n var searchItem = Search(this.inputElement.value, items, 'StartsWith', this.ignoreCase, dataSource, this.fields, type);\n this.searchList = false;\n if (!isNullOrUndefined(searchItem.item)) {\n _super.prototype.setAutoFill.call(this, this.liCollections[0], true);\n }\n }\n };\n AutoComplete.prototype.setSelection = function (li, e) {\n if (!this.isValidLI(li)) {\n this.selectedLI = li;\n return;\n }\n if (!isNullOrUndefined(e) && e.type === 'keydown' && e.action !== 'enter'\n && e.action !== 'tab' && this.isValidLI(li)) {\n var value = this.getFormattedValue(li.getAttribute('data-value'));\n this.activeIndex = this.getIndexByValue(value);\n this.setHoverList(li);\n this.selectedLI = li;\n this.setScrollPosition(e);\n if (this.autofill && this.isPopupOpen) {\n this.preventAutoFill = false;\n var isKeyNavigate = (e && e.action === 'down' || e.action === 'up' ||\n e.action === 'home' || e.action === 'end' || e.action === 'pageUp' || e.action === 'pageDown');\n _super.prototype.setAutoFill.call(this, li, isKeyNavigate);\n }\n }\n else {\n _super.prototype.setSelection.call(this, li, e);\n }\n };\n AutoComplete.prototype.listOption = function (dataSource, fieldsSettings) {\n var _this_1 = this;\n var fields = _super.prototype.listOption.call(this, dataSource, fieldsSettings);\n if (isNullOrUndefined(fields.itemCreated)) {\n fields.itemCreated = function (e) {\n if (_this_1.highlight) {\n if (_this_1.element.tagName === _this_1.getNgDirective() && _this_1.itemTemplate) {\n setTimeout(function () {\n highlightSearch(e.item, _this_1.queryString, _this_1.ignoreCase, _this_1.filterType);\n }, 0);\n }\n else {\n highlightSearch(e.item, _this_1.queryString, _this_1.ignoreCase, _this_1.filterType);\n }\n }\n };\n }\n else {\n var itemCreated_1 = fields.itemCreated;\n fields.itemCreated = function (e) {\n if (_this_1.highlight) {\n highlightSearch(e.item, _this_1.queryString, _this_1.ignoreCase, _this_1.filterType);\n }\n itemCreated_1.apply(_this_1, [e]);\n };\n }\n return fields;\n };\n AutoComplete.prototype.isFiltering = function () {\n return true;\n };\n AutoComplete.prototype.renderPopup = function (e) {\n this.list.scrollTop = 0;\n _super.prototype.renderPopup.call(this, e);\n };\n AutoComplete.prototype.isEditTextBox = function () {\n return true && this.inputElement.value.trim() !== '';\n };\n AutoComplete.prototype.isPopupButton = function () {\n return this.showPopupButton;\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n AutoComplete.prototype.isSelectFocusItem = function (element) {\n return false;\n };\n AutoComplete.prototype.setInputValue = function (newProp, oldProp) {\n var oldValue = oldProp && oldProp.text ? oldProp.text : oldProp ? oldProp.value : oldProp;\n var value = newProp && newProp.text ? newProp.text : newProp && newProp.value ? newProp.value : this.value;\n if (value && this.typedString === '' && !this.allowCustom && !(this.dataSource instanceof DataManager)) {\n var checkFields_1_1 = this.typeOfData(this.dataSource).typeof === 'string' ? '' : this.fields.value;\n var listLength_1 = this.getItems().length;\n var query = new Query();\n var _this_2 = this;\n new DataManager(this.dataSource).executeQuery(query.where(new Predicate(checkFields_1_1, 'equal', value)))\n .then(function (e) {\n if (e.result.length > 0) {\n _this_2.value = checkFields_1_1 !== '' ? e.result[0][_this_2.fields.value].toString() : e.result[0].toString();\n _this_2.addItem(e.result, listLength_1);\n _this_2.updateValues();\n }\n else {\n newProp && newProp.text ? _this_2.setOldText(oldValue) : newProp && newProp.value ? _this_2.setOldValue(oldValue) : _this_2.updateValues();\n }\n });\n }\n else if (newProp) {\n newProp.text ? this.setOldText(oldValue) : this.setOldValue(oldValue);\n }\n };\n /**\n * Search the entered text and show it in the suggestion list if available.\n *\n * @returns {void}\n\n */\n AutoComplete.prototype.showPopup = function (e) {\n if (!this.enabled) {\n return;\n }\n if (this.beforePopupOpen) {\n this.refreshPopup();\n return;\n }\n this.beforePopupOpen = true;\n this.preventAutoFill = true;\n if (isNullOrUndefined(this.list)) {\n this.renderList(e);\n }\n else {\n this.resetList(this.dataSource, this.fields, null, e);\n }\n };\n /**\n * Hides the popup if it is in open state.\n *\n * @returns {void}\n */\n AutoComplete.prototype.hidePopup = function (e) {\n _super.prototype.hidePopup.call(this, e);\n this.activeIndex = -1;\n };\n /**\n * Dynamically change the value of properties.\n *\n * @param {AutoCompleteModel} newProp - Returns the dynamic property value of the component.\n * @param {AutoCompleteModel} oldProp - Returns the previous property value of the component.\n * @private\n * @returns {void}\n */\n AutoComplete.prototype.onPropertyChanged = function (newProp, oldProp) {\n if (this.getModuleName() === 'autocomplete') {\n this.setUpdateInitial(['fields', 'query', 'dataSource'], newProp);\n }\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'showPopupButton':\n if (this.showPopupButton) {\n var button = Input.appendSpan(dropDownListClasses.icon, this.inputWrapper.container, this.createElement);\n this.inputWrapper.buttons[0] = button;\n Input.calculateWidth(this.inputElement, this.inputWrapper.container);\n if (!isNullOrUndefined(this.inputWrapper.buttons[0]) && !isNullOrUndefined(this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0]) && this.floatLabelType !== 'Never') {\n this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0].classList.add('e-icon');\n }\n if (this.inputWrapper && this.inputWrapper.buttons && this.inputWrapper.buttons[0]) {\n EventHandler.add(this.inputWrapper.buttons[0], 'click', this.dropDownClick, this);\n }\n }\n else {\n detach(this.inputWrapper.buttons[0]);\n this.inputWrapper.buttons[0] = null;\n }\n break;\n default: {\n // eslint-disable-next-line max-len\n var atcProps = this.getPropObject(prop, newProp, oldProp);\n _super.prototype.onPropertyChanged.call(this, atcProps.newProperty, atcProps.oldProperty);\n break;\n }\n }\n }\n };\n AutoComplete.prototype.renderHightSearch = function () {\n if (this.highlight) {\n for (var i = 0; i < this.liCollections.length; i++) {\n var isHighlight = this.ulElement.querySelector('.e-active');\n if (!isHighlight) {\n revertHighlightSearch(this.liCollections[i]);\n highlightSearch(this.liCollections[i], this.queryString, this.ignoreCase, this.filterType);\n }\n }\n }\n };\n /**\n * Return the module name of this component.\n *\n * @private\n * @returns {string} Return the module name of this component.\n */\n AutoComplete.prototype.getModuleName = function () {\n return 'autocomplete';\n };\n /**\n * To initialize the control rendering\n *\n * @private\n * @returns {void}\n */\n AutoComplete.prototype.render = function () {\n _super.prototype.render.call(this);\n };\n __decorate([\n Complex({ value: null, iconCss: null, groupBy: null }, FieldSettings)\n ], AutoComplete.prototype, \"fields\", void 0);\n __decorate([\n Property(true)\n ], AutoComplete.prototype, \"ignoreCase\", void 0);\n __decorate([\n Property(false)\n ], AutoComplete.prototype, \"showPopupButton\", void 0);\n __decorate([\n Property(false)\n ], AutoComplete.prototype, \"highlight\", void 0);\n __decorate([\n Property(20)\n ], AutoComplete.prototype, \"suggestionCount\", void 0);\n __decorate([\n Property({})\n ], AutoComplete.prototype, \"htmlAttributes\", void 0);\n __decorate([\n Property(null)\n ], AutoComplete.prototype, \"query\", void 0);\n __decorate([\n Property(1)\n ], AutoComplete.prototype, \"minLength\", void 0);\n __decorate([\n Property('Contains')\n ], AutoComplete.prototype, \"filterType\", void 0);\n __decorate([\n Event()\n ], AutoComplete.prototype, \"filtering\", void 0);\n __decorate([\n Property(null)\n ], AutoComplete.prototype, \"index\", void 0);\n __decorate([\n Property('Never')\n ], AutoComplete.prototype, \"floatLabelType\", void 0);\n __decorate([\n Property(null)\n ], AutoComplete.prototype, \"valueTemplate\", void 0);\n __decorate([\n Property(null)\n ], AutoComplete.prototype, \"filterBarPlaceholder\", void 0);\n __decorate([\n Property(false)\n ], AutoComplete.prototype, \"allowFiltering\", void 0);\n __decorate([\n Property(null)\n ], AutoComplete.prototype, \"text\", void 0);\n AutoComplete = __decorate([\n NotifyPropertyChanges\n ], AutoComplete);\n return AutoComplete;\n}(ComboBox));\nexport { AutoComplete };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { AutoComplete } from '@syncfusion/ej2-dropdowns';\nimport { ComponentBase, applyMixins } from '@syncfusion/ej2-react-base';\n/**\n *The AutoComplete component provides the matched suggestion list when type into the input, from which the user can select one.\n * ```\n * \n * ```\n */\nvar AutoCompleteComponent = /** @class */ (function (_super) {\n __extends(AutoCompleteComponent, _super);\n function AutoCompleteComponent(props) {\n var _this = _super.call(this, props) || this;\n _this.initRenderCalled = false;\n _this.checkInjectedModules = false;\n _this.statelessTemplateProps = [\"headerTemplate\", \"itemTemplate\"];\n _this.templateProps = null;\n _this.immediateRender = false;\n _this.portals = [];\n return _this;\n }\n AutoCompleteComponent.prototype.render = function () {\n if (((this.element && !this.initRenderCalled) || this.refreshing) && !this.isReactForeceUpdate) {\n _super.prototype.render.call(this);\n this.initRenderCalled = true;\n }\n else {\n return React.createElement(React.Fragment, null, [].concat(React.createElement(\"input\", this.getDefaultAttributes()), this.portals));\n }\n };\n return AutoCompleteComponent;\n}(AutoComplete));\nexport { AutoCompleteComponent };\napplyMixins(AutoCompleteComponent, [ComponentBase, React.Component]);\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { ODataV4Adaptor, } from \"@syncfusion/ej2-data\";\nexport var notInListValue = \"not-in-list\";\nexport var inactiveCategory = \"Inactive\";\nvar AsyncAutocompleteODataV4Adaptor = /** @class */ (function (_super) {\n __extends(AsyncAutocompleteODataV4Adaptor, _super);\n function AsyncAutocompleteODataV4Adaptor(hasNotInListOption, groupByActiveStatus, fieldSettings, beforeSendFn) {\n var _this = _super.call(this) || this;\n _this.hasNotInListOption = hasNotInListOption;\n _this.groupByActiveStatus = groupByActiveStatus;\n _this.fieldSettings = fieldSettings;\n _this.beforeSend = function (dataManager, request, ajax) { return __awaiter(_this, void 0, void 0, function () {\n var url, queryString;\n return __generator(this, function (_a) {\n url = new URL(ajax.url);\n queryString = url.search;\n /**\n * Cleanups\n * Replaces any undefined keyword for null to supprto api types\n */\n queryString = queryString.replace(/undefined/g, \"null\");\n /** Send onBeforeSend event */\n if (!!this.onBeforeSend) {\n queryString = this.onBeforeSend({\n dataManager: dataManager,\n request: request,\n ajax: ajax,\n queryString: queryString,\n });\n }\n /**\n * Send request on Body\n * Note that is important that the body still sends the ? on the beginning for full support of queriers, including top.\n */\n ajax.data = queryString;\n request.open(\"POST\", String(\"\".concat(url.origin).concat(url.pathname, \"$query\")));\n return [2 /*return*/];\n });\n }); };\n _this.onBeforeSend = beforeSendFn;\n return _this;\n }\n AsyncAutocompleteODataV4Adaptor.prototype.processResponse = function (data, ds, query, xhr, request, changes) {\n var _this = this;\n var processResult = _super.prototype.processResponse.apply(this, [\n data,\n ds,\n query,\n xhr,\n request,\n changes,\n ]);\n var addNotInListOption = function () {\n var _a;\n var _b, _c;\n var processResultAvailable = processResult.map(function (x) {\n return __assign(__assign({}, x), { category: \"Available\" });\n });\n var notInListOption = (_a = {\n category: \"Unavailable\"\n },\n _a[((_b = _this.fieldSettings) === null || _b === void 0 ? void 0 : _b.text) || \"label\"] = \"Not In List\",\n _a[((_c = _this.fieldSettings) === null || _c === void 0 ? void 0 : _c.value) || \"value\"] = notInListValue,\n _a);\n return __spreadArray(__spreadArray([], processResultAvailable, true), [notInListOption], false);\n };\n var categorizeListByActiveStatus = function () {\n var _a;\n var _b, _c;\n var processResultActive = processResult\n .filter(function (x) { return !x.isDeleted; })\n .map(function (x) {\n return __assign(__assign({}, x), { category: \"Active\" });\n });\n var processResultInactive = processResult\n .filter(function (x) { return x.isDeleted; })\n .map(function (x) {\n return __assign(__assign({}, x), { category: inactiveCategory });\n });\n if (_this.hasNotInListOption) {\n var notInListOption = (_a = {\n category: \"Unavailable\"\n },\n _a[((_b = _this.fieldSettings) === null || _b === void 0 ? void 0 : _b.text) || \"label\"] = \"Not In List\",\n _a[((_c = _this.fieldSettings) === null || _c === void 0 ? void 0 : _c.value) || \"value\"] = notInListValue,\n _a);\n return __spreadArray(__spreadArray(__spreadArray([], processResultActive, true), processResultInactive, true), [\n notInListOption,\n ], false);\n }\n return __spreadArray(__spreadArray([], processResultActive, true), processResultInactive, true);\n };\n /** Process */\n var results = processResult;\n if (this.groupByActiveStatus) {\n results = __spreadArray([], categorizeListByActiveStatus(), true);\n }\n if (this.hasNotInListOption && !this.groupByActiveStatus) {\n results = __spreadArray([], addNotInListOption(), true);\n }\n return results;\n };\n return AsyncAutocompleteODataV4Adaptor;\n}(ODataV4Adaptor));\nexport default AsyncAutocompleteODataV4Adaptor;\n","import moment from \"moment-timezone\";\nexport var convertDateTo_EST_timeZone_AsString = function (date) {\n return moment(date).tz(\"America/New_York\").format(\"MM/DD/YYYY hh:mm A\");\n};\nexport var convertDateTo_EST_timeZone_AsDate = function (date) {\n return moment(date).tz(\"America/New_York\").toDate();\n};\nexport var removeOffSetFromDate = function (dateString) {\n var _a, _b;\n // Validation\n if (!dateString || ((_a = String(dateString)) === null || _a === void 0 ? void 0 : _a.indexOf(\"Z\")) > -1) {\n return dateString;\n }\n // Get Offset\n var offsetStr = String(dateString).substring((_b = String(dateString)) === null || _b === void 0 ? void 0 : _b.lastIndexOf(\"-\"));\n // Convert Offset to Z\n if (/[\\+\\-]\\d{2}:\\d{2}$/.test(offsetStr)) {\n dateString = \"\".concat(String(dateString).replace(offsetStr, \"\"), \"Z\");\n }\n // Return\n return dateString;\n};\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { ODataV4Adaptor, } from \"@syncfusion/ej2-data\";\nimport _ from \"lodash\";\nimport moment from \"moment-timezone\";\nimport { convertDateTo_EST_timeZone_AsDate, removeOffSetFromDate, } from \"../../../utils/momentTimeZone\";\nvar GridODataV4Adaptor = /** @class */ (function (_super) {\n __extends(GridODataV4Adaptor, _super);\n function GridODataV4Adaptor(columnsConfiguration, beforeSendFn) {\n var _this = _super.call(this) || this;\n _this.columnsConfiguration = columnsConfiguration;\n _this.beforeSend = function (dataManager, request, ajax) { return __awaiter(_this, void 0, void 0, function () {\n var url, queryString, authRequestHeader, _a, qry, token, key, value;\n return __generator(this, function (_b) {\n url = new URL(ajax.url);\n queryString = url.search;\n // Cleanups\n //--Replaces any undefined keyword for null to supprto api types\n queryString = queryString.replace(/undefined/g, \"null\");\n authRequestHeader = undefined;\n // Send onBeforeSend event\n if (!!this.onBeforeSend) {\n _a = this.onBeforeSend({\n dataManager: dataManager,\n request: request,\n ajax: ajax,\n queryString: queryString,\n }), qry = _a[0], token = _a[1];\n queryString = qry;\n authRequestHeader = token;\n }\n // Send request on Body\n // Note that is important that the body still sends the ? on the beginning for full support of queriers, including top.\n // queryString = queryString + \"&$orderby=createdAt%20desc\";\n // Set Query String\n ajax.data = queryString;\n // Open as POST Request\n request.open(\"POST\", String(\"\".concat(url.origin).concat(url.pathname, \"$query\")));\n // Set Access Token\n if (!!authRequestHeader) {\n for (key in authRequestHeader) {\n if (authRequestHeader.hasOwnProperty(key)) {\n value = authRequestHeader[key];\n request.setRequestHeader(key, value);\n }\n }\n }\n return [2 /*return*/];\n });\n }); };\n _this.onBeforeSend = beforeSendFn;\n return _this;\n }\n GridODataV4Adaptor.prototype.onPredicate = function (predicate, query, requiresCast) {\n var _a, _b;\n // \"date\" types will display as is without time conversion\n // Type on Column Configuration should be date, ideally with format: { format: \"MM/dd/yyyy\", type: \"date\" }\n var dateColumnConfigs = (_a = this.columnsConfiguration) === null || _a === void 0 ? void 0 : _a.filter(function (x) { return x.type === \"date\"; });\n if (dateColumnConfigs === null || dateColumnConfigs === void 0 ? void 0 : dateColumnConfigs.map(function (x) { return x.field; }).includes(predicate.field)) {\n if (predicate.value) {\n var momentDate = moment(predicate.value);\n if (momentDate.isValid()) {\n var userTimezoneOffset = momentDate.toDate().getTimezoneOffset() * 60000;\n var newDateNoTz = new Date(momentDate.toDate().getTime() - userTimezoneOffset);\n var convertedEST = convertDateTo_EST_timeZone_AsDate(newDateNoTz);\n predicate.value = convertedEST;\n }\n }\n }\n var dateTimeColumnConfigs = (_b = this.columnsConfiguration) === null || _b === void 0 ? void 0 : _b.filter(function (x) { return x.type === \"datetime\"; });\n if (dateTimeColumnConfigs === null || dateTimeColumnConfigs === void 0 ? void 0 : dateTimeColumnConfigs.map(function (x) { return x.field; }).includes(predicate.field)) {\n if (predicate.value) {\n var momentDate = moment(predicate.value);\n if (momentDate.isValid()) {\n var cleanedDate = removeOffSetFromDate(momentDate.toString());\n var convertedEST = convertDateTo_EST_timeZone_AsDate(cleanedDate);\n predicate.value = convertedEST;\n }\n }\n }\n var result = _super.prototype.onPredicate.call(this, predicate, query, requiresCast);\n return result;\n };\n GridODataV4Adaptor.prototype.processResponse = function (data, ds, query, xhr, request, changes) {\n var dateColumnReults = this.processDateColumns(data);\n if (!!dateColumnReults) {\n data = dateColumnReults;\n }\n var datetimeColumnResults = this.processDateTimeColumns(data);\n if (!!datetimeColumnResults) {\n data = datetimeColumnResults;\n }\n var processResult = _super.prototype.processResponse.apply(this, [\n data,\n ds,\n query,\n xhr,\n request,\n changes,\n ]);\n return processResult;\n };\n GridODataV4Adaptor.prototype.processDateTimeColumns = function (data) {\n var _a, _b;\n var dateTimeColumnConfigs = (_a = this.columnsConfiguration) === null || _a === void 0 ? void 0 : _a.filter(function (x) { return x.type === \"datetime\"; });\n if (dateTimeColumnConfigs) {\n var cleaned = (_b = _.get(data, \"value\")) === null || _b === void 0 ? void 0 : _b.map(function (resultData) {\n dateTimeColumnConfigs.forEach(function (columnConfig) {\n var rawDate = _.get(resultData, columnConfig.field);\n if (rawDate) {\n var momentDate = moment(rawDate);\n if (momentDate.isValid()) {\n var cleanedDate = removeOffSetFromDate(rawDate);\n var convertedEST = convertDateTo_EST_timeZone_AsDate(cleanedDate);\n _.set(resultData, columnConfig.field, convertedEST);\n }\n }\n });\n return resultData;\n });\n return __assign(__assign({}, data), { value: cleaned });\n }\n };\n GridODataV4Adaptor.prototype.processDateColumns = function (data) {\n var _a, _b;\n // \"date\" types will display as is without time conversion\n // Type on Column Configuration should be date, ideally with format: { format: \"MM/dd/yyyy\", type: \"date\" }\n var dateColumnConfigs = (_a = this.columnsConfiguration) === null || _a === void 0 ? void 0 : _a.filter(function (x) { return x.type === \"date\"; });\n if (dateColumnConfigs) {\n var cleaned = (_b = _.get(data, \"value\")) === null || _b === void 0 ? void 0 : _b.map(function (resultData) {\n dateColumnConfigs.forEach(function (columnConfig) {\n var rawDate = _.get(resultData, columnConfig.field);\n if (rawDate instanceof Date) {\n rawDate = rawDate.toISOString();\n }\n // since we now officially set the odata timestamp to UTC, we can ensure that Z will always be returned\n var rawDateWithoutZone = rawDate === null || rawDate === void 0 ? void 0 : rawDate.replace(\"Z\", \"\");\n if (rawDateWithoutZone) {\n _.set(resultData, columnConfig.field, rawDateWithoutZone);\n }\n });\n return resultData;\n });\n return __assign(__assign({}, data), { value: cleaned });\n }\n };\n return GridODataV4Adaptor;\n}(ODataV4Adaptor));\nexport default GridODataV4Adaptor;\n","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Intent, Position, Toaster } from \"@blueprintjs/core\";\n/** Singleton toaster instance. Create separate instances for different options. */\nexport var AppToaster = Toaster.create({\n position: Position.TOP,\n});\nexport var showSuccessAppToaster = function (successActionName) {\n return AppToaster.show({\n message: (_jsxs(\"div\", { children: [_jsx(\"h3\", { children: \"Success!\" }), successActionName] })),\n intent: Intent.SUCCESS,\n });\n};\nexport var showDownloadingFileAppToaster = function (fileName) {\n return AppToaster.show({\n message: (_jsxs(\"div\", { children: [_jsx(\"h3\", { children: \"Exporting...\" }), fileName, \" is downloading...\"] })),\n intent: Intent.NONE,\n });\n};\nexport var showFailedActionToaster = function (failedActionName) {\n return AppToaster.show({\n message: (_jsxs(\"div\", { children: [_jsx(\"h3\", { children: \"Error\" }), failedActionName] })),\n intent: Intent.DANGER,\n });\n};\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { ODataV4Adaptor, } from \"@syncfusion/ej2-data\";\nvar AsyncMultiSelectODataV4Adaptor = /** @class */ (function (_super) {\n __extends(AsyncMultiSelectODataV4Adaptor, _super);\n function AsyncMultiSelectODataV4Adaptor(groupbyActiveStatus, beforeSendFn) {\n var _this = _super.call(this) || this;\n _this.groupbyActiveStatus = groupbyActiveStatus;\n _this.beforeSend = function (dataManager, request, ajax) { return __awaiter(_this, void 0, void 0, function () {\n var url, queryString;\n return __generator(this, function (_a) {\n url = new URL(ajax.url);\n queryString = url.search;\n // Cleanups\n //--Replaces any undefined keyword for null to supprto api types\n queryString = queryString.replace(/undefined/g, \"null\");\n // Send onBeforeSend event\n if (!!this.onBeforeSend) {\n queryString = this.onBeforeSend({\n dataManager: dataManager,\n request: request,\n ajax: ajax,\n queryString: queryString,\n });\n }\n // Send request on Body\n // Note that is important that the body still sends the ? on the beginning for full support of queriers, including top.\n //queryString = queryString + \"&$orderby=createdAt%20desc\";\n ajax.data = queryString;\n request.open(\"POST\", String(\"\".concat(url.origin).concat(url.pathname, \"$query\")));\n return [2 /*return*/];\n });\n }); };\n _this.onBeforeSend = beforeSendFn;\n return _this;\n }\n AsyncMultiSelectODataV4Adaptor.prototype.processResponse = function (data, ds, query, xhr, request, changes) {\n var processResult = _super.prototype.processResponse.apply(this, [\n data,\n ds,\n query,\n xhr,\n request,\n changes,\n ]);\n if (this.groupbyActiveStatus) {\n var processResultActive = processResult\n .filter(function (x) { return !x.isDeleted; })\n .map(function (x) {\n return __assign(__assign({}, x), { category: \"Active\" });\n });\n var processResultInactive = processResult\n .filter(function (x) { return x.isDeleted; })\n .map(function (x) {\n return __assign(__assign({}, x), { category: \"Inactive\" });\n });\n return __spreadArray(__spreadArray([], processResultActive, true), processResultInactive, true);\n }\n return processResult;\n };\n return AsyncMultiSelectODataV4Adaptor;\n}(ODataV4Adaptor));\nexport default AsyncMultiSelectODataV4Adaptor;\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { DataManager } from \"@syncfusion/ej2-data\";\nimport GridODataV4Adaptor from \"../components/Grids/GridOData/GridODataV4Adaptor\";\nimport { AppToaster } from \"../components/Toast/Toast\";\nimport { Intent } from \"@blueprintjs/core\";\nimport { useEffect, useState } from \"react\";\nimport AsyncAutocompleteODataV4Adaptor from \"../components/Fields/DropdownFields/AsyncAutoCompleteField/AsyncAutoCompleteODataV4Adaptor\";\nimport AsyncMultiSelectODataV4Adaptor from \"../components/Fields/DropdownFields/AsyncMultiSelectField/AsyncMultiSelectODataV4Adaptor\";\nexport var useOData = function (props, init) {\n var _a = useState(props.getAuthRequestHeader), getAuthRequestHeader = _a[0], setGetAuthRequestHeader = _a[1];\n var _b = useState(), authRequestHeader = _b[0], setAuthRequestHeader = _b[1];\n useEffect(function () {\n initRequestHeader();\n }, []);\n useEffect(function () {\n setGetAuthRequestHeader(props.getAuthRequestHeader);\n }, [props.getAuthRequestHeader]);\n useEffect(function () {\n if (authRequestHeader) {\n init();\n }\n }, [authRequestHeader]);\n var failureTimeoutCount = 0;\n var initRequestHeader = function () { return __awaiter(void 0, void 0, void 0, function () {\n var header;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n setGetAuthRequestHeader(getAuthRequestHeader);\n return [4 /*yield*/, props.getAuthRequestHeader()];\n case 1:\n header = _a.sent();\n setAuthRequestHeader(header);\n return [2 /*return*/];\n }\n });\n }); };\n var setupGridODataSource = function (odataUrl, columnsConfiguration, beforeSendFn) {\n var dataManager = new DataManager({\n url: odataUrl,\n adaptor: new GridODataV4Adaptor(columnsConfiguration, beforeSendFn ? beforeSendFn : baseOnBeforeSend),\n crossDomain: true,\n });\n return dataManager;\n };\n // Setup\n var setupAsyncAutoCompleteODataSource = function (odataUrl, fieldSettings, hasNotInListOption, groupByActiveStatus) {\n var dataManager = new DataManager({\n url: odataUrl,\n adaptor: new AsyncAutocompleteODataV4Adaptor(!!hasNotInListOption, !!groupByActiveStatus, fieldSettings),\n crossDomain: true,\n headers: !!authRequestHeader\n ? Object.entries(authRequestHeader).map(function (_a) {\n var _b;\n var key = _a[0], value = _a[1];\n return (_b = {},\n _b[key] = value,\n _b);\n })\n : undefined,\n });\n return dataManager;\n };\n var setupAsyncMultiselectODataSource = function (odataUrl, groupByActiveStatus) {\n var dataManager = new DataManager({\n url: odataUrl,\n adaptor: new AsyncMultiSelectODataV4Adaptor(!!groupByActiveStatus),\n crossDomain: true,\n headers: !!authRequestHeader\n ? Object.entries(authRequestHeader).map(function (_a) {\n var _b;\n var key = _a[0], value = _a[1];\n return (_b = {},\n _b[key] = value,\n _b);\n })\n : undefined,\n });\n return dataManager;\n };\n var setFailureTimeoutCount = function (value) {\n failureTimeoutCount = value;\n };\n var baseActionCompleteEventHandler = function () {\n setFailureTimeoutCount(0);\n };\n var baseActionFailureEventHandler = function (eventArgs, refreshFn) { return __awaiter(void 0, void 0, void 0, function () {\n var errorStatus, token;\n var _a, _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n errorStatus = ((_a = eventArgs.error) === null || _a === void 0 ? void 0 : _a.status) ||\n ((_b = eventArgs.error) === null || _b === void 0 ? void 0 : _b.error.status) ||\n 0;\n if (!(!!eventArgs.error && [401, 403].includes(errorStatus))) return [3 /*break*/, 5];\n setFailureTimeoutCount(failureTimeoutCount + 1);\n //eslint-disable-next-line @typescript-eslint/no-unused-expressions\n failureTimeoutCount;\n if (!(failureTimeoutCount < 3)) return [3 /*break*/, 3];\n if (!getAuthRequestHeader) return [3 /*break*/, 2];\n return [4 /*yield*/, getAuthRequestHeader()];\n case 1:\n token = _c.sent();\n setAuthRequestHeader(token);\n _c.label = 2;\n case 2:\n refreshFn();\n return [3 /*break*/, 4];\n case 3:\n AppToaster.show({\n message: \"Authorization Error. Please refresh and try again.\",\n intent: Intent.WARNING,\n });\n _c.label = 4;\n case 4: return [3 /*break*/, 6];\n case 5:\n AppToaster.show({\n message: \"An error ocurred executing the current action.\",\n intent: Intent.DANGER,\n });\n _c.label = 6;\n case 6: return [2 /*return*/];\n }\n });\n }); };\n // Base Methods\n var baseOnBeforeSend = function (_a) {\n var queryString = _a.queryString;\n return [queryString, authRequestHeader];\n };\n var baseActionCompleteEvent = function () {\n return function () {\n baseActionCompleteEventHandler();\n };\n };\n var baseActionFailureEvent = function (refreshFn) {\n return function (eventArgs) { return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: \n // Process Error\n return [4 /*yield*/, baseActionFailureEventHandler(eventArgs, refreshFn)];\n case 1:\n // Process Error\n _a.sent();\n return [2 /*return*/];\n }\n });\n }); };\n };\n return {\n init: init,\n authRequestHeader: authRequestHeader,\n setupGridODataSource: setupGridODataSource,\n setupAsyncAutoCompleteODataSource: setupAsyncAutoCompleteODataSource,\n setupAsyncMultiselectODataSource: setupAsyncMultiselectODataSource,\n baseActionCompleteEvent: baseActionCompleteEvent,\n baseActionFailureEvent: baseActionFailureEvent,\n baseActionCompleteEventHandler: baseActionCompleteEventHandler,\n baseActionFailureEventHandler: baseActionFailureEventHandler,\n };\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport React from \"react\";\nimport { Predicate, Query } from \"@syncfusion/ej2-data\";\nimport { inactiveCategory } from \"./AsyncAutoCompleteODataV4Adaptor\";\nimport { get } from \"lodash\";\nimport { useOData } from \"../../../../stores/useOData\";\nexport var useAsyncAutoCompleteField = function (props) {\n var _a, _b;\n var _c = useOData({ getAuthRequestHeader: props.getAuthRequestHeader }, function () {\n setInitialized(true);\n }), authRequestHeader = _c.authRequestHeader, setupAsyncAutoCompleteODataSource = _c.setupAsyncAutoCompleteODataSource, baseActionCompleteEvent = _c.baseActionCompleteEvent, baseActionFailureEvent = _c.baseActionFailureEvent;\n var autoCompleteRef = React.useRef(null);\n var _d = React.useState(false), ready = _d[0], setReady = _d[1];\n var _e = React.useState(false), isLoading = _e[0], setIsLoading = _e[1];\n var _f = React.useState(false), isDataLoaded = _f[0], setIsDataLoaded = _f[1];\n var _g = React.useState(), instancePredicates = _g[0], setInstancePredicates = _g[1];\n var _h = React.useState(false), initialized = _h[0], setInitialized = _h[1];\n var _j = React.useState(props.value), localValue = _j[0], setLocalValue = _j[1];\n var _k = React.useState(props.searchValue), localSearchValue = _k[0], setLocalSearchValue = _k[1];\n var _l = React.useState(), localData = _l[0], setLocalData = _l[1];\n var _m = React.useState(), localAllData = _m[0], setLocalAllData = _m[1];\n var _o = React.useState(), autoCompleteSettings = _o[0], setAutoCompleteSettings = _o[1];\n var _p = React.useState(), queryKey = _p[0], setQueryKey = _p[1];\n var localAutofillDataRef = React.useRef(props.autoFillData);\n var handleValueChange = function (newValue) {\n if (initialized && autoCompleteRef.current) {\n /**\n * Setting local value to detect change faster than rerendering,\n * allowing the UI to adjust styles like require as it occurs.\n */\n setLocalValue(newValue);\n autoCompleteRef.current.value = newValue;\n }\n };\n React.useEffect(function () {\n setQueryKey(\"initial-key\");\n }, [initialized]);\n React.useEffect(function () {\n if (autoCompleteRef.current &&\n localSearchValue &&\n !(localAutofillDataRef.current && localAutofillDataRef.current.length > 0)) {\n searchOnPopup(localSearchValue);\n }\n }, [isDataLoaded, localSearchValue]);\n React.useEffect(function () {\n if (autoCompleteRef.current &&\n localAutofillDataRef.current &&\n localAutofillDataRef.current.length > 0) {\n autoFillOnPopup();\n }\n }, [isDataLoaded, localAutofillDataRef.current]);\n React.useEffect(function () {\n if (isDataLoaded && initialized && autoCompleteRef.current) {\n handleValueChange(props.value);\n }\n }, [props.value, isDataLoaded]);\n React.useEffect(function () {\n if (props.searchValue !== localSearchValue) {\n setLocalSearchValue(props.searchValue);\n }\n }, [props.searchValue]);\n React.useEffect(function () {\n if (initialized) {\n if (props.submitAllAssigments && localValue && localData === undefined) {\n var data = localAllData.find(function (x) { return x.value === localValue; });\n props.onSubmit && props.onSubmit(data);\n }\n }\n }, [localAllData]);\n /** Observe and Save Filter Settings */\n React.useEffect(function () {\n if (initialized) {\n setup();\n }\n }, [queryKey]);\n React.useEffect(function () {\n var requestKey = JSON.stringify(props.autoCompleteSettings);\n if (requestKey !== queryKey) {\n setQueryKey(requestKey);\n }\n }, [props.autoCompleteSettings]);\n React.useEffect(function () {\n if (initialized) {\n props.onSubmit && props.onSubmit(localData);\n }\n }, [localData]);\n React.useEffect(function () {\n var _a, _b;\n var predicates = (_b = (_a = props.autoCompleteSettings) === null || _a === void 0 ? void 0 : _a.query) === null || _b === void 0 ? void 0 : _b.queries.filter(function (x) { return x.fn === \"onWhere\"; }).map(function (x) { return x.e; });\n setInstancePredicates(predicates);\n }, [(_b = (_a = props.autoCompleteSettings) === null || _a === void 0 ? void 0 : _a.query) === null || _b === void 0 ? void 0 : _b.queries]);\n // Events\n var createdHandler = function () {\n if (localSearchValue &&\n !(localAutofillDataRef.current && localAutofillDataRef.current.length > 0)) {\n searchOnPopup(localSearchValue);\n }\n if (localAutofillDataRef.current &&\n localAutofillDataRef.current.length > 0) {\n autoFillOnPopup();\n }\n };\n var autoFillOnPopup = function () {\n if (!!autoCompleteRef.current &&\n !props.disabled &&\n localAutofillDataRef.current &&\n localAutofillDataRef.current.length > 0) {\n autoCompleteRef.current.hidePopup();\n setTimeout(function () {\n var _a;\n if (!!autoCompleteRef.current) {\n autoCompleteRef.current.dataSource = localAutofillDataRef.current;\n ((_a = autoCompleteRef.current) === null || _a === void 0 ? void 0 : _a.element).addEventListener(\"focus\", function () {\n if (localAutofillDataRef.current &&\n localAutofillDataRef.current.length > 0) {\n localAutofillDataRef.current = undefined;\n setup(true);\n }\n });\n showSearchPopup();\n }\n }, 100);\n }\n };\n var searchOnPopup = function (searchText) {\n var _a;\n if (!!autoCompleteRef.current && !props.disabled && searchText) {\n autoCompleteRef.current.hidePopup();\n ((_a = autoCompleteRef.current) === null || _a === void 0 ? void 0 : _a.element).value = searchText;\n setTimeout(function () {\n var _a;\n autoCompleteRef.current.query = buildQuery(searchText);\n ((_a = autoCompleteRef.current) === null || _a === void 0 ? void 0 : _a.element).value =\n searchText;\n showSearchPopup();\n setLocalSearchValue(undefined);\n }, 100);\n }\n };\n var showSearchPopup = function () {\n if (!!autoCompleteRef.current && initialized && !props.disabled) {\n autoCompleteRef.current.showPopup();\n }\n };\n var handleSearchSelect = function (args) { return __awaiter(void 0, void 0, void 0, function () {\n var _a;\n return __generator(this, function (_b) {\n if (get(args.itemData, \"category\") === inactiveCategory) {\n args.cancel = true;\n (_a = autoCompleteRef.current) === null || _a === void 0 ? void 0 : _a.hidePopup();\n setTimeout(function () {\n if (!!autoCompleteRef.current && initialized) {\n autoCompleteRef.current.showPopup();\n }\n }, 100);\n }\n else {\n if (!!autoCompleteRef.current && initialized) {\n setLocalData(args.itemData);\n }\n }\n return [2 /*return*/];\n });\n }); };\n var handleChange = function (args) { return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (!!autoCompleteRef.current && initialized && args.isInteracted) {\n if (!(args === null || args === void 0 ? void 0 : args.value)) {\n /** If localData is undefined it never triggers the update, in which case we trigger in this clause */\n if (!!localData) {\n setLocalData(undefined);\n }\n else {\n props.onSubmit && props.onSubmit(undefined);\n }\n }\n else {\n setLocalData(args.itemData);\n }\n }\n return [2 /*return*/];\n });\n }); };\n var buildDefaultQuery = function () {\n return new Query()\n .select(props.fieldNames || [\"label\", \"value\"])\n .sortBy(props.sortBy || \"label\")\n .take(50);\n };\n var buildQuery = function (searchText) {\n var query = buildDefaultQuery();\n var containsPredicate = new Predicate(autoCompleteRef.current.fields.text || \"label\", \"contains\", searchText, true);\n if (!autoCompleteRef.current.query) {\n query = query.where(containsPredicate);\n }\n else {\n var predicate_1 = containsPredicate;\n if (props.searchBy) {\n predicate_1 = props.searchBy(searchText);\n }\n if (predicate_1) {\n if (instancePredicates) {\n instancePredicates.forEach(function (instancePredicate) { return query.where(predicate_1.and(instancePredicate)); });\n }\n else {\n query.where(predicate_1);\n }\n }\n }\n return query;\n };\n var handleFiltering = function (args) {\n if (autoCompleteRef.current) {\n args.preventDefaultAction = true;\n var query = buildQuery(args.text);\n args.updateData(autoCompleteRef.current.dataSource, query);\n }\n };\n var defaultAutoCompleteSettings = {\n autofill: true,\n showClearButton: true,\n highlight: false,\n allowCustom: false,\n fields: { text: \"label\", value: \"value\" },\n itemTemplate: \"
${label}
\",\n /** Inmutable */\n created: createdHandler,\n select: handleSearchSelect,\n focus: showSearchPopup,\n onClick: showSearchPopup,\n change: handleChange,\n filtering: handleFiltering,\n actionFailure: baseActionFailureEvent,\n actionComplete: function (args) {\n var data = get(args, \"result\", []);\n setLocalAllData(data);\n baseActionCompleteEvent();\n },\n };\n var setup = function (force) { return __awaiter(void 0, void 0, void 0, function () {\n var settings, dm;\n return __generator(this, function (_a) {\n if (!force && !queryKey) {\n return [2 /*return*/];\n }\n if (force || !!authRequestHeader) {\n settings = __assign(__assign({}, defaultAutoCompleteSettings), (props.autoCompleteSettings || {}));\n /** Set Item Template Wrapper */\n settings.itemTemplate =\n \"\" +\n String(settings.itemTemplate) +\n \"\";\n /** System not allows groupby if not in list option is set up */\n if (settings.fields &&\n (!!props.hasNotInListOption || !!props.groupByActiveStatus)) {\n settings.fields.groupBy = \"category\";\n }\n // Set Datasource\n if (localAutofillDataRef.current &&\n localAutofillDataRef.current.length > 0) {\n settings.dataSource = localAutofillDataRef.current;\n }\n else {\n dm = setupAsyncAutoCompleteODataSource(props.odataUrl, settings.fields, props.hasNotInListOption, props.groupByActiveStatus);\n settings.dataSource = dm;\n }\n settings.value = props.value;\n setAutoCompleteSettings(settings);\n setReady(true);\n }\n return [2 /*return*/];\n });\n }); };\n return {\n autoCompleteRef: autoCompleteRef,\n ready: ready,\n isLoading: isLoading,\n setIsLoading: setIsLoading,\n isDataLoaded: isDataLoaded,\n setIsDataLoaded: setIsDataLoaded,\n localValue: localValue,\n setLocalValue: setLocalValue,\n autoCompleteSettings: autoCompleteSettings,\n handleValueChange: handleValueChange,\n buildDefaultQuery: buildDefaultQuery,\n localAutofillData: localAutofillDataRef.current,\n };\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { FormGroup, Icon } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport { AutoCompleteComponent, } from \"@syncfusion/ej2-react-dropdowns\";\nimport classNames from \"classnames\";\nimport { has } from \"lodash\";\nimport { FieldLabel } from \"../../CoreFields/FieldLabel/FieldLabel\";\nimport { notInListValue } from \"./AsyncAutoCompleteODataV4Adaptor\";\nimport { FormFieldErrorContainer } from \"../../CoreFields/FieldError/FormFieldErrorContainer\";\nimport { useAsyncAutoCompleteField } from \"./useAsyncAutoCompleteField\";\nvar AsyncAutoCompleteField = function (props) {\n var _a = useAsyncAutoCompleteField(props), autoCompleteRef = _a.autoCompleteRef, ready = _a.ready, isLoading = _a.isLoading, setIsLoading = _a.setIsLoading, isDataLoaded = _a.isDataLoaded, setIsDataLoaded = _a.setIsDataLoaded, localValue = _a.localValue, autoCompleteSettings = _a.autoCompleteSettings, handleValueChange = _a.handleValueChange, buildDefaultQuery = _a.buildDefaultQuery, localAutofillData = _a.localAutofillData;\n return (_jsxs(FormGroup, { className: classNames(\"\".concat(props.isRequired && !localValue\n ? \"has-required-background\"\n : \"ucl-async-autocomplete-field\")), children: [props.label && (_jsx(FieldLabel, __assign({ labelName: props.label, tooltipDescription: props.description, fieldProps: __assign(__assign({}, props), { value: localValue }) }, props.labelProps))), _jsx(\"div\", { className: \"ucl-async-autocomplete-toolbar\", children: ready && (autoCompleteSettings === null || autoCompleteSettings === void 0 ? void 0 : autoCompleteSettings.dataSource) && (_jsxs(\"div\", { className: \"ucl-async-autocomplete-input-container\", children: [_jsx(AutoCompleteComponent, __assign({ ref: autoCompleteRef, id: \"ucl-async-autocomplete-search-list\", className: \"ucl-async-autocomplete-input\", onChange: function (e) {\n handleValueChange(e.value);\n }, readonly: props.disabled || isLoading, placeholder: isLoading\n ? \"Loading...\"\n : localAutofillData\n ? \"Choose or type to search more....\"\n : \"Type to search...\", actionBegin: function (args) {\n var _a;\n /** Initital or Filtering, */\n if (!(localAutofillData && localAutofillData.length > 0)) {\n if (has(args, \"query\")) {\n if (!isDataLoaded) {\n /** Load Initial Value */\n setIsLoading(true);\n if (props.value === notInListValue) {\n args.query = buildDefaultQuery();\n }\n setIsLoading(false);\n }\n /** Initital */\n }\n else {\n /** Load */\n args.query =\n ((_a = props.autoCompleteSettings) === null || _a === void 0 ? void 0 : _a.query) || buildDefaultQuery();\n }\n }\n }, dataBound: function () {\n setIsDataLoaded(!(localAutofillData && localAutofillData.length > 0));\n setIsLoading(false);\n } }, autoCompleteSettings)), _jsx(Icon, { icon: IconNames.Search, size: 14 })] })) }), props.errorMessages && (_jsx(FormFieldErrorContainer, { errorMessages: props.errorMessages }))] }));\n};\nexport default AsyncAutoCompleteField;\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { FormGroup, Icon } from \"@blueprintjs/core\";\nimport React from \"react\";\nimport { FieldLabel } from \"../FieldLabel/FieldLabel\";\nimport { FormFieldErrorContainer } from \"../FieldError/FormFieldErrorContainer\";\nimport classNames from \"classnames\";\nexport var ReadOnlyField = function (props) {\n var _a = React.useState(false), ready = _a[0], setReady = _a[1];\n var _b = React.useState(), readOnlySettings = _b[0], setReadOnlySettings = _b[1];\n React.useEffect(function () {\n setup();\n }, []);\n var defaultReadOnlySettings = {};\n // Setup\n var setup = function () { return __awaiter(void 0, void 0, void 0, function () {\n var settings;\n return __generator(this, function (_a) {\n settings = __assign(__assign({}, defaultReadOnlySettings), props);\n setReadOnlySettings(settings);\n setReady(true);\n return [2 /*return*/];\n });\n }); };\n return (_jsxs(FormGroup, { children: [props.label && (_jsx(FieldLabel, __assign({ labelName: props.label, tooltipDescription: props.description, fieldProps: __assign({}, props) }, props.labelProps))), ready && readOnlySettings && (_jsx(\"div\", { className: \"readonly-toolbar\", children: ready && (_jsxs(\"div\", { className: classNames(\"readonly-container\", {\n \"bp4-disabled bp4-input\": !props.minimal,\n }), children: [readOnlySettings.leftIcon && (_jsx(Icon, { icon: readOnlySettings.leftIcon })), _jsx(\"div\", { children: readOnlySettings.value })] })) })), props.errorMessages && (_jsx(FormFieldErrorContainer, { errorMessages: props.errorMessages }))] }));\n};\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component, EventHandler, Property, Event, Browser, L10n, getUniqueID } from '@syncfusion/ej2-base';\nimport { NotifyPropertyChanges } from '@syncfusion/ej2-base';\nimport { attributes, addClass, removeClass, detach, closest } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined, getValue, formatUnit, setValue, merge } from '@syncfusion/ej2-base';\nimport { Internationalization, getNumericObject } from '@syncfusion/ej2-base';\nimport { Input } from '../input/input';\nvar ROOT = 'e-control-wrapper e-numeric';\nvar SPINICON = 'e-input-group-icon';\nvar SPINUP = 'e-spin-up';\nvar SPINDOWN = 'e-spin-down';\nvar ERROR = 'e-error';\nvar INCREMENT = 'increment';\nvar DECREMENT = 'decrement';\nvar INTREGEXP = new RegExp('^(-)?(\\\\d*)$');\nvar DECIMALSEPARATOR = '.';\nvar COMPONENT = 'e-numerictextbox';\nvar CONTROL = 'e-control';\nvar NUMERIC_FOCUS = 'e-input-focus';\nvar HIDDENELEMENT = 'e-numeric-hidden';\nvar wrapperAttributes = ['title', 'style', 'class'];\nvar selectionTimeOut = 0;\n/**\n * Represents the NumericTextBox component that allows the user to enter only numeric values.\n * ```html\n * \n * ```\n * ```typescript\n * \n * ```\n */\nvar NumericTextBox = /** @class */ (function (_super) {\n __extends(NumericTextBox, _super);\n /**\n *\n * @param {NumericTextBoxModel} options - Specifies the NumericTextBox model.\n * @param {string | HTMLInputElement} element - Specifies the element to render as component.\n * @private\n */\n function NumericTextBox(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.isVue = false;\n _this.preventChange = false;\n _this.isAngular = false;\n _this.isDynamicChange = false;\n _this.numericOptions = options;\n return _this;\n }\n NumericTextBox.prototype.preRender = function () {\n this.isPrevFocused = false;\n this.decimalSeparator = '.';\n // eslint-disable-next-line no-useless-escape\n this.intRegExp = new RegExp('/^(-)?(\\d*)$/');\n this.isCalled = false;\n var ejInstance = getValue('ej2_instances', this.element);\n this.cloneElement = this.element.cloneNode(true);\n removeClass([this.cloneElement], [CONTROL, COMPONENT, 'e-lib']);\n this.angularTagName = null;\n this.formEle = closest(this.element, 'form');\n if (this.element.tagName === 'EJS-NUMERICTEXTBOX') {\n this.angularTagName = this.element.tagName;\n var input = this.createElement('input');\n var index = 0;\n for (index; index < this.element.attributes.length; index++) {\n var attributeName = this.element.attributes[index].nodeName;\n if (attributeName !== 'id' && attributeName !== 'class') {\n input.setAttribute(this.element.attributes[index].nodeName, this.element.attributes[index].nodeValue);\n input.innerHTML = this.element.innerHTML;\n }\n else if (attributeName === 'class') {\n input.setAttribute(attributeName, this.element.className.split(' ').filter(function (item) { return item.indexOf('ng-') !== 0; }).join(' '));\n }\n }\n if (this.element.hasAttribute('name')) {\n this.element.removeAttribute('name');\n }\n this.element.classList.remove('e-control', 'e-numerictextbox');\n this.element.appendChild(input);\n this.element = input;\n setValue('ej2_instances', ejInstance, this.element);\n }\n attributes(this.element, { 'role': 'spinbutton', 'tabindex': '0', 'autocomplete': 'off' });\n var localeText = {\n incrementTitle: 'Increment value', decrementTitle: 'Decrement value', placeholder: this.placeholder\n };\n this.l10n = new L10n('numerictextbox', localeText, this.locale);\n if (this.l10n.getConstant('placeholder') !== '') {\n this.setProperties({ placeholder: this.placeholder || this.l10n.getConstant('placeholder') }, true);\n }\n if (!this.element.hasAttribute('id')) {\n this.element.setAttribute('id', getUniqueID('numerictextbox'));\n }\n this.isValidState = true;\n this.inputStyle = null;\n this.inputName = null;\n this.cultureInfo = {};\n this.initCultureInfo();\n this.initCultureFunc();\n this.prevValue = this.value;\n this.updateHTMLAttrToElement();\n this.checkAttributes(false);\n if (this.formEle) {\n this.inputEleValue = this.value;\n }\n this.validateMinMax();\n this.validateStep();\n if (this.placeholder === null) {\n this.updatePlaceholder();\n }\n };\n /**\n * To Initialize the control rendering\n *\n * @returns {void}\n * @private\n */\n NumericTextBox.prototype.render = function () {\n if (this.element.tagName.toLowerCase() === 'input') {\n this.createWrapper();\n if (this.showSpinButton) {\n this.spinBtnCreation();\n }\n this.setElementWidth(this.width);\n if (!this.container.classList.contains('e-input-group')) {\n this.container.classList.add('e-input-group');\n }\n this.changeValue(this.value === null || isNaN(this.value) ?\n null : this.strictMode ? this.trimValue(this.value) : this.value);\n this.wireEvents();\n if (this.value !== null && !isNaN(this.value)) {\n if (this.decimals) {\n this.setProperties({ value: this.roundNumber(this.value, this.decimals) }, true);\n }\n }\n if (this.element.getAttribute('value') || this.value) {\n this.element.setAttribute('value', this.element.value);\n this.hiddenInput.setAttribute('value', this.hiddenInput.value);\n }\n this.elementPrevValue = this.element.value;\n if (this.element.hasAttribute('data-val')) {\n this.element.setAttribute('data-val', 'false');\n }\n if (!isNullOrUndefined(closest(this.element, 'fieldset')) && closest(this.element, 'fieldset').disabled) {\n this.enabled = false;\n }\n this.renderComplete();\n }\n };\n NumericTextBox.prototype.checkAttributes = function (isDynamic) {\n var attributes = isDynamic ? isNullOrUndefined(this.htmlAttributes) ? [] : Object.keys(this.htmlAttributes) :\n ['value', 'min', 'max', 'step', 'disabled', 'readonly', 'style', 'name', 'placeholder'];\n for (var _i = 0, attributes_1 = attributes; _i < attributes_1.length; _i++) {\n var prop = attributes_1[_i];\n if (!isNullOrUndefined(this.element.getAttribute(prop))) {\n switch (prop) {\n case 'disabled':\n if ((isNullOrUndefined(this.numericOptions) || (this.numericOptions['enabled'] === undefined)) || isDynamic) {\n var enabled = this.element.getAttribute(prop) === 'disabled' || this.element.getAttribute(prop) === ''\n || this.element.getAttribute(prop) === 'true' ? false : true;\n this.setProperties({ enabled: enabled }, !isDynamic);\n }\n break;\n case 'readonly':\n if ((isNullOrUndefined(this.numericOptions) || (this.numericOptions['readonly'] === undefined)) || isDynamic) {\n var readonly = this.element.getAttribute(prop) === 'readonly' || this.element.getAttribute(prop) === ''\n || this.element.getAttribute(prop) === 'true' ? true : false;\n this.setProperties({ readonly: readonly }, !isDynamic);\n }\n break;\n case 'placeholder':\n if ((isNullOrUndefined(this.numericOptions) || (this.numericOptions['placeholder'] === undefined)) || isDynamic) {\n this.setProperties({ placeholder: this.element.placeholder }, !isDynamic);\n }\n break;\n case 'value':\n if ((isNullOrUndefined(this.numericOptions) || (this.numericOptions['value'] === undefined)) || isDynamic) {\n var setNumber = this.instance.getNumberParser({ format: 'n' })(this.element.getAttribute(prop));\n this.setProperties(setValue(prop, setNumber, {}), !isDynamic);\n }\n break;\n case 'min':\n if ((isNullOrUndefined(this.numericOptions) || (this.numericOptions['min'] === undefined)) || isDynamic) {\n var minValue = this.instance.getNumberParser({ format: 'n' })(this.element.getAttribute(prop));\n if (minValue !== null && !isNaN(minValue)) {\n this.setProperties(setValue(prop, minValue, {}), !isDynamic);\n }\n }\n break;\n case 'max':\n if ((isNullOrUndefined(this.numericOptions) || (this.numericOptions['max'] === undefined)) || isDynamic) {\n var maxValue = this.instance.getNumberParser({ format: 'n' })(this.element.getAttribute(prop));\n if (maxValue !== null && !isNaN(maxValue)) {\n this.setProperties(setValue(prop, maxValue, {}), !isDynamic);\n }\n }\n break;\n case 'step':\n if ((isNullOrUndefined(this.numericOptions) || (this.numericOptions['step'] === undefined)) || isDynamic) {\n var stepValue = this.instance.getNumberParser({ format: 'n' })(this.element.getAttribute(prop));\n if (stepValue !== null && !isNaN(stepValue)) {\n this.setProperties(setValue(prop, stepValue, {}), !isDynamic);\n }\n }\n break;\n case 'style':\n this.inputStyle = this.element.getAttribute(prop);\n break;\n case 'name':\n this.inputName = this.element.getAttribute(prop);\n break;\n default:\n {\n var value = this.instance.getNumberParser({ format: 'n' })(this.element.getAttribute(prop));\n if ((value !== null && !isNaN(value)) || (prop === 'value')) {\n this.setProperties(setValue(prop, value, {}), true);\n }\n }\n break;\n }\n }\n }\n };\n NumericTextBox.prototype.updatePlaceholder = function () {\n this.setProperties({ placeholder: this.l10n.getConstant('placeholder') }, true);\n };\n NumericTextBox.prototype.initCultureFunc = function () {\n this.instance = new Internationalization(this.locale);\n };\n NumericTextBox.prototype.initCultureInfo = function () {\n this.cultureInfo.format = this.format;\n if (getValue('currency', this) !== null) {\n setValue('currency', this.currency, this.cultureInfo);\n this.setProperties({ currencyCode: this.currency }, true);\n }\n };\n /* Wrapper creation */\n NumericTextBox.prototype.createWrapper = function () {\n var updatedCssClassValue = this.cssClass;\n if (!isNullOrUndefined(this.cssClass) && this.cssClass !== '') {\n updatedCssClassValue = this.getNumericValidClassList(this.cssClass);\n }\n var inputObj = Input.createInput({\n element: this.element,\n floatLabelType: this.floatLabelType,\n properties: {\n readonly: this.readonly,\n placeholder: this.placeholder,\n cssClass: updatedCssClassValue,\n enableRtl: this.enableRtl,\n showClearButton: this.showClearButton,\n enabled: this.enabled\n }\n }, this.createElement);\n this.inputWrapper = inputObj;\n this.container = inputObj.container;\n this.container.setAttribute('class', ROOT + ' ' + this.container.getAttribute('class'));\n this.updateHTMLAttrToWrapper();\n if (this.readonly) {\n attributes(this.element, { 'aria-readonly': 'true' });\n }\n this.hiddenInput = (this.createElement('input', { attrs: { type: 'text',\n 'validateHidden': 'true', 'class': HIDDENELEMENT } }));\n this.inputName = this.inputName !== null ? this.inputName : this.element.id;\n this.element.removeAttribute('name');\n if (this.isAngular && this.angularTagName === 'EJS-NUMERICTEXTBOX' && this.cloneElement.id.length > 0) {\n attributes(this.hiddenInput, { 'name': this.cloneElement.id });\n }\n else {\n attributes(this.hiddenInput, { 'name': this.inputName });\n }\n this.container.insertBefore(this.hiddenInput, this.container.childNodes[1]);\n this.updateDataAttribute(false);\n if (this.inputStyle !== null) {\n attributes(this.container, { 'style': this.inputStyle });\n }\n };\n NumericTextBox.prototype.updateDataAttribute = function (isDynamic) {\n var attr = {};\n if (!isDynamic) {\n for (var a = 0; a < this.element.attributes.length; a++) {\n attr[this.element.attributes[a].name] = this.element.getAttribute(this.element.attributes[a].name);\n }\n }\n else {\n attr = this.htmlAttributes;\n }\n for (var _i = 0, _a = Object.keys(attr); _i < _a.length; _i++) {\n var key = _a[_i];\n if (key.indexOf('data') === 0) {\n this.hiddenInput.setAttribute(key, attr[\"\" + key]);\n }\n }\n };\n NumericTextBox.prototype.updateHTMLAttrToElement = function () {\n if (!isNullOrUndefined(this.htmlAttributes)) {\n for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) {\n var pro = _a[_i];\n if (wrapperAttributes.indexOf(pro) < 0) {\n this.element.setAttribute(pro, this.htmlAttributes[\"\" + pro]);\n }\n }\n }\n };\n NumericTextBox.prototype.updateCssClass = function (newClass, oldClass) {\n Input.setCssClass(this.getNumericValidClassList(newClass), [this.container], this.getNumericValidClassList(oldClass));\n };\n NumericTextBox.prototype.getNumericValidClassList = function (numericClassName) {\n var result = numericClassName;\n if (!isNullOrUndefined(numericClassName) && numericClassName !== '') {\n result = (numericClassName.replace(/\\s+/g, ' ')).trim();\n }\n return result;\n };\n NumericTextBox.prototype.updateHTMLAttrToWrapper = function () {\n if (!isNullOrUndefined(this.htmlAttributes)) {\n for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) {\n var pro = _a[_i];\n if (wrapperAttributes.indexOf(pro) > -1) {\n if (pro === 'class') {\n var updatedClassValue = this.getNumericValidClassList(this.htmlAttributes[\"\" + pro]);\n if (updatedClassValue !== '') {\n addClass([this.container], updatedClassValue.split(' '));\n }\n }\n else if (pro === 'style') {\n var numericStyle = this.container.getAttribute(pro);\n numericStyle = !isNullOrUndefined(numericStyle) ? (numericStyle + this.htmlAttributes[\"\" + pro]) :\n this.htmlAttributes[\"\" + pro];\n this.container.setAttribute(pro, numericStyle);\n }\n else {\n this.container.setAttribute(pro, this.htmlAttributes[\"\" + pro]);\n }\n }\n }\n }\n };\n NumericTextBox.prototype.setElementWidth = function (width) {\n if (!isNullOrUndefined(width)) {\n if (typeof width === 'number') {\n this.container.style.width = formatUnit(width);\n }\n else if (typeof width === 'string') {\n this.container.style.width = (width.match(/px|%|em/)) ? (width) : (formatUnit(width));\n }\n }\n };\n /* Spinner creation */\n NumericTextBox.prototype.spinBtnCreation = function () {\n this.spinDown = Input.appendSpan(SPINICON + ' ' + SPINDOWN, this.container, this.createElement);\n attributes(this.spinDown, {\n 'title': this.l10n.getConstant('decrementTitle')\n });\n this.spinUp = Input.appendSpan(SPINICON + ' ' + SPINUP, this.container, this.createElement);\n attributes(this.spinUp, {\n 'title': this.l10n.getConstant('incrementTitle')\n });\n this.wireSpinBtnEvents();\n };\n NumericTextBox.prototype.validateMinMax = function () {\n if (!(typeof (this.min) === 'number' && !isNaN(this.min))) {\n this.setProperties({ min: -(Number.MAX_VALUE) }, true);\n }\n if (!(typeof (this.max) === 'number' && !isNaN(this.max))) {\n this.setProperties({ max: Number.MAX_VALUE }, true);\n }\n if (this.decimals !== null) {\n if (this.min !== -(Number.MAX_VALUE)) {\n this.setProperties({ min: this.instance.getNumberParser({ format: 'n' })(this.formattedValue(this.decimals, this.min)) }, true);\n }\n if (this.max !== (Number.MAX_VALUE)) {\n this.setProperties({ max: this.instance.getNumberParser({ format: 'n' })(this.formattedValue(this.decimals, this.max)) }, true);\n }\n }\n this.setProperties({ min: this.min > this.max ? this.max : this.min }, true);\n if (this.min !== -(Number.MAX_VALUE)) {\n attributes(this.element, { 'aria-valuemin': this.min.toString() });\n }\n if (this.max !== (Number.MAX_VALUE)) {\n attributes(this.element, { 'aria-valuemax': this.max.toString() });\n }\n };\n NumericTextBox.prototype.formattedValue = function (decimals, value) {\n return this.instance.getNumberFormat({\n maximumFractionDigits: decimals,\n minimumFractionDigits: decimals, useGrouping: false\n })(value);\n };\n NumericTextBox.prototype.validateStep = function () {\n if (this.decimals !== null) {\n this.setProperties({ step: this.instance.getNumberParser({ format: 'n' })(this.formattedValue(this.decimals, this.step)) }, true);\n }\n };\n NumericTextBox.prototype.action = function (operation, event) {\n this.isInteract = true;\n var value = this.isFocused ? this.instance.getNumberParser({ format: 'n' })(this.element.value) : this.value;\n this.changeValue(this.performAction(value, this.step, operation));\n this.raiseChangeEvent(event);\n };\n NumericTextBox.prototype.checkErrorClass = function () {\n if (this.isValidState) {\n removeClass([this.container], ERROR);\n }\n else {\n addClass([this.container], ERROR);\n }\n attributes(this.element, { 'aria-invalid': this.isValidState ? 'false' : 'true' });\n };\n NumericTextBox.prototype.bindClearEvent = function () {\n if (this.showClearButton) {\n EventHandler.add(this.inputWrapper.clearButton, 'mousedown touchstart', this.resetHandler, this);\n }\n };\n NumericTextBox.prototype.resetHandler = function (e) {\n e.preventDefault();\n if (!(this.inputWrapper.clearButton.classList.contains('e-clear-icon-hide')) || this.inputWrapper.container.classList.contains('e-static-clear')) {\n this.clear(e);\n }\n this.isInteract = true;\n this.raiseChangeEvent(e);\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n NumericTextBox.prototype.clear = function (event) {\n this.setProperties({ value: null }, true);\n this.setElementValue('');\n this.hiddenInput.value = '';\n var formElement = closest(this.element, 'form');\n if (formElement) {\n var element = this.element.nextElementSibling;\n var keyupEvent = document.createEvent('KeyboardEvent');\n keyupEvent.initEvent('keyup', false, true);\n element.dispatchEvent(keyupEvent);\n }\n };\n NumericTextBox.prototype.resetFormHandler = function () {\n if (this.element.tagName === 'EJS-NUMERICTEXTBOX') {\n this.updateValue(null);\n }\n else {\n this.updateValue(this.inputEleValue);\n }\n };\n NumericTextBox.prototype.setSpinButton = function () {\n if (!isNullOrUndefined(this.spinDown)) {\n attributes(this.spinDown, {\n 'title': this.l10n.getConstant('decrementTitle'),\n 'aria-label': this.l10n.getConstant('decrementTitle')\n });\n }\n if (!isNullOrUndefined(this.spinUp)) {\n attributes(this.spinUp, {\n 'title': this.l10n.getConstant('incrementTitle'),\n 'aria-label': this.l10n.getConstant('incrementTitle')\n });\n }\n };\n NumericTextBox.prototype.wireEvents = function () {\n EventHandler.add(this.element, 'focus', this.focusHandler, this);\n EventHandler.add(this.element, 'blur', this.focusOutHandler, this);\n EventHandler.add(this.element, 'keydown', this.keyDownHandler, this);\n EventHandler.add(this.element, 'keyup', this.keyUpHandler, this);\n EventHandler.add(this.element, 'input', this.inputHandler, this);\n EventHandler.add(this.element, 'keypress', this.keyPressHandler, this);\n EventHandler.add(this.element, 'change', this.changeHandler, this);\n EventHandler.add(this.element, 'paste', this.pasteHandler, this);\n if (this.enabled) {\n this.bindClearEvent();\n if (this.formEle) {\n EventHandler.add(this.formEle, 'reset', this.resetFormHandler, this);\n }\n }\n };\n NumericTextBox.prototype.wireSpinBtnEvents = function () {\n /* bind spin button events */\n EventHandler.add(this.spinUp, Browser.touchStartEvent, this.mouseDownOnSpinner, this);\n EventHandler.add(this.spinDown, Browser.touchStartEvent, this.mouseDownOnSpinner, this);\n EventHandler.add(this.spinUp, Browser.touchEndEvent, this.mouseUpOnSpinner, this);\n EventHandler.add(this.spinDown, Browser.touchEndEvent, this.mouseUpOnSpinner, this);\n EventHandler.add(this.spinUp, Browser.touchMoveEvent, this.touchMoveOnSpinner, this);\n EventHandler.add(this.spinDown, Browser.touchMoveEvent, this.touchMoveOnSpinner, this);\n };\n NumericTextBox.prototype.unwireEvents = function () {\n EventHandler.remove(this.element, 'focus', this.focusHandler);\n EventHandler.remove(this.element, 'blur', this.focusOutHandler);\n EventHandler.remove(this.element, 'keyup', this.keyUpHandler);\n EventHandler.remove(this.element, 'input', this.inputHandler);\n EventHandler.remove(this.element, 'keydown', this.keyDownHandler);\n EventHandler.remove(this.element, 'keypress', this.keyPressHandler);\n EventHandler.remove(this.element, 'change', this.changeHandler);\n EventHandler.remove(this.element, 'paste', this.pasteHandler);\n if (this.formEle) {\n EventHandler.remove(this.formEle, 'reset', this.resetFormHandler);\n }\n };\n NumericTextBox.prototype.unwireSpinBtnEvents = function () {\n /* unbind spin button events */\n EventHandler.remove(this.spinUp, Browser.touchStartEvent, this.mouseDownOnSpinner);\n EventHandler.remove(this.spinDown, Browser.touchStartEvent, this.mouseDownOnSpinner);\n EventHandler.remove(this.spinUp, Browser.touchEndEvent, this.mouseUpOnSpinner);\n EventHandler.remove(this.spinDown, Browser.touchEndEvent, this.mouseUpOnSpinner);\n EventHandler.remove(this.spinUp, Browser.touchMoveEvent, this.touchMoveOnSpinner);\n EventHandler.remove(this.spinDown, Browser.touchMoveEvent, this.touchMoveOnSpinner);\n };\n NumericTextBox.prototype.changeHandler = function (event) {\n event.stopPropagation();\n if (!this.element.value.length) {\n this.setProperties({ value: null }, true);\n }\n var parsedInput = this.instance.getNumberParser({ format: 'n' })(this.element.value);\n this.updateValue(parsedInput, event);\n };\n NumericTextBox.prototype.raiseChangeEvent = function (event) {\n if (this.prevValue !== this.value || this.prevValue !== this.inputValue) {\n var eventArgs = {};\n this.changeEventArgs = { value: this.value, previousValue: this.prevValue, isInteracted: this.isInteract,\n isInteraction: this.isInteract, event: event };\n if (event) {\n this.changeEventArgs.event = event;\n }\n if (this.changeEventArgs.event === undefined) {\n this.changeEventArgs.isInteracted = false;\n this.changeEventArgs.isInteraction = false;\n }\n merge(eventArgs, this.changeEventArgs);\n this.prevValue = this.value;\n this.isInteract = false;\n this.elementPrevValue = this.element.value;\n this.preventChange = false;\n this.trigger('change', eventArgs);\n }\n };\n NumericTextBox.prototype.pasteHandler = function () {\n var _this = this;\n if (!this.enabled || this.readonly) {\n return;\n }\n var beforeUpdate = this.element.value;\n setTimeout(function () {\n if (!_this.numericRegex().test(_this.element.value)) {\n _this.setElementValue(beforeUpdate);\n }\n });\n };\n NumericTextBox.prototype.preventHandler = function () {\n var _this = this;\n var iOS = !!navigator.platform && /iPad|iPhone|iPod/.test(navigator.platform);\n setTimeout(function () {\n if (_this.element.selectionStart > 0) {\n var currentPos = _this.element.selectionStart;\n var prevPos = _this.element.selectionStart - 1;\n var start = 0;\n var valArray = _this.element.value.split('');\n var numericObject = getNumericObject(_this.locale);\n var decimalSeparator = getValue('decimal', numericObject);\n var ignoreKeyCode = decimalSeparator.charCodeAt(0);\n if (_this.element.value[prevPos] === ' ' && _this.element.selectionStart > 0 && !iOS) {\n if (isNullOrUndefined(_this.prevVal)) {\n _this.element.value = _this.element.value.trim();\n }\n else if (prevPos !== 0) {\n _this.element.value = _this.prevVal;\n }\n else if (prevPos === 0) {\n _this.element.value = _this.element.value.trim();\n }\n _this.element.setSelectionRange(prevPos, prevPos);\n }\n else if (isNaN(parseFloat(_this.element.value[_this.element.selectionStart - 1])) &&\n _this.element.value[_this.element.selectionStart - 1].charCodeAt(0) !== 45) {\n if ((valArray.indexOf(_this.element.value[_this.element.selectionStart - 1]) !==\n valArray.lastIndexOf(_this.element.value[_this.element.selectionStart - 1]) &&\n _this.element.value[_this.element.selectionStart - 1].charCodeAt(0) === ignoreKeyCode) ||\n _this.element.value[_this.element.selectionStart - 1].charCodeAt(0) !== ignoreKeyCode) {\n _this.element.value = _this.element.value.substring(0, prevPos) +\n _this.element.value.substring(currentPos, _this.element.value.length);\n _this.element.setSelectionRange(prevPos, prevPos);\n if (isNaN(parseFloat(_this.element.value[_this.element.selectionStart - 1])) && _this.element.selectionStart > 0\n && _this.element.value.length) {\n _this.preventHandler();\n }\n }\n }\n else if (isNaN(parseFloat(_this.element.value[_this.element.selectionStart - 2])) && _this.element.selectionStart > 1 &&\n _this.element.value[_this.element.selectionStart - 2].charCodeAt(0) !== 45) {\n if ((valArray.indexOf(_this.element.value[_this.element.selectionStart - 2]) !==\n valArray.lastIndexOf(_this.element.value[_this.element.selectionStart - 2]) &&\n _this.element.value[_this.element.selectionStart - 2].charCodeAt(0) === ignoreKeyCode) ||\n _this.element.value[_this.element.selectionStart - 2].charCodeAt(0) !== ignoreKeyCode) {\n _this.element.setSelectionRange(prevPos, prevPos);\n _this.nextEle = _this.element.value[_this.element.selectionStart];\n _this.cursorPosChanged = true;\n _this.preventHandler();\n }\n }\n if (_this.cursorPosChanged === true && _this.element.value[_this.element.selectionStart] === _this.nextEle &&\n isNaN(parseFloat(_this.element.value[_this.element.selectionStart - 1]))) {\n _this.element.setSelectionRange(_this.element.selectionStart + 1, _this.element.selectionStart + 1);\n _this.cursorPosChanged = false;\n _this.nextEle = null;\n }\n if (_this.element.value.trim() === '') {\n _this.element.setSelectionRange(start, start);\n }\n if (_this.element.selectionStart > 0) {\n if ((_this.element.value[_this.element.selectionStart - 1].charCodeAt(0) === 45) && _this.element.selectionStart > 1) {\n if (isNullOrUndefined(_this.prevVal)) {\n // eslint-disable-next-line no-self-assign\n _this.element.value = _this.element.value;\n }\n else {\n _this.element.value = _this.prevVal;\n }\n _this.element.setSelectionRange(_this.element.selectionStart, _this.element.selectionStart);\n }\n if (_this.element.value[_this.element.selectionStart - 1] === decimalSeparator && _this.decimals === 0 && _this.validateDecimalOnType) {\n _this.element.value = _this.element.value.substring(0, prevPos) +\n _this.element.value.substring(currentPos, _this.element.value.length);\n }\n }\n _this.prevVal = _this.element.value;\n }\n });\n };\n NumericTextBox.prototype.keyUpHandler = function () {\n if (!this.enabled || this.readonly) {\n return;\n }\n var iOS = !!navigator.platform && /iPad|iPhone|iPod/.test(navigator.platform);\n if (!iOS && Browser.isDevice) {\n this.preventHandler();\n }\n var parseValue = this.instance.getNumberParser({ format: 'n' })(this.element.value);\n parseValue = parseValue === null || isNaN(parseValue) ? null : parseValue;\n this.hiddenInput.value = parseValue || parseValue === 0 ? parseValue.toString() : null;\n var formElement = closest(this.element, 'form');\n if (formElement) {\n var element = this.element.nextElementSibling;\n var keyupEvent = document.createEvent('KeyboardEvent');\n keyupEvent.initEvent('keyup', false, true);\n element.dispatchEvent(keyupEvent);\n }\n };\n NumericTextBox.prototype.inputHandler = function (event) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-this-alias\n var numerictextboxObj = this;\n if (!this.enabled || this.readonly) {\n return;\n }\n var iOS = !!navigator.platform && /iPad|iPhone|iPod/.test(navigator.platform);\n var fireFox = navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\n if ((fireFox || iOS) && Browser.isDevice) {\n this.preventHandler();\n }\n /* istanbul ignore next */\n if (this.isAngular\n && this.element.value !== getValue('decimal', getNumericObject(this.locale))\n && this.element.value !== getValue('minusSign', getNumericObject(this.locale))) {\n var parsedValue = this.instance.getNumberParser({ format: 'n' })(this.element.value);\n parsedValue = isNaN(parsedValue) ? null : parsedValue;\n numerictextboxObj.localChange({ value: parsedValue });\n this.preventChange = true;\n }\n if (this.isVue) {\n var current = this.instance.getNumberParser({ format: 'n' })(this.element.value);\n var previous = this.instance.getNumberParser({ format: 'n' })(this.elementPrevValue);\n //EJ2-54963-if type \".\" or \".0\" or \"-.0\" it converts to \"0\" automatically when binding v-model\n var nonZeroRegex = new RegExp('[^0-9]+$');\n if (nonZeroRegex.test(this.element.value) || ((this.elementPrevValue.indexOf('.') !== -1 || this.elementPrevValue.indexOf('-') !== -1) && this.element.value[this.element.value.length - 1] === '0')) {\n current = this.value;\n }\n var eventArgs = {\n event: event,\n value: (current === null || isNaN(current) ? null : current),\n previousValue: (previous === null || isNaN(previous) ? null : previous)\n };\n this.preventChange = true;\n this.elementPrevValue = this.element.value;\n this.trigger('input', eventArgs);\n }\n };\n NumericTextBox.prototype.keyDownHandler = function (event) {\n if (!this.readonly) {\n switch (event.keyCode) {\n case 38:\n event.preventDefault();\n this.action(INCREMENT, event);\n break;\n case 40:\n event.preventDefault();\n this.action(DECREMENT, event);\n break;\n default: break;\n }\n }\n };\n NumericTextBox.prototype.performAction = function (value, step, operation) {\n if (value === null || isNaN(value)) {\n value = 0;\n }\n var updatedValue = operation === INCREMENT ? value + step : value - step;\n updatedValue = this.correctRounding(value, step, updatedValue);\n return this.strictMode ? this.trimValue(updatedValue) : updatedValue;\n };\n NumericTextBox.prototype.correctRounding = function (value, step, result) {\n var floatExp = new RegExp('[,.](.*)');\n var floatValue = floatExp.test(value.toString());\n var floatStep = floatExp.test(step.toString());\n if (floatValue || floatStep) {\n var valueCount = floatValue ? floatExp.exec(value.toString())[0].length : 0;\n var stepCount = floatStep ? floatExp.exec(step.toString())[0].length : 0;\n var max = Math.max(valueCount, stepCount);\n return value = this.roundValue(result, max);\n }\n return result;\n };\n NumericTextBox.prototype.roundValue = function (result, precision) {\n precision = precision || 0;\n var divide = Math.pow(10, precision);\n return result *= divide, result = Math.round(result) / divide;\n };\n NumericTextBox.prototype.updateValue = function (value, event) {\n if (event) {\n this.isInteract = true;\n }\n if (value !== null && !isNaN(value)) {\n if (this.decimals) {\n value = this.roundNumber(value, this.decimals);\n }\n }\n this.inputValue = value;\n this.changeValue(value === null || isNaN(value) ? null : this.strictMode ? this.trimValue(value) : value);\n /* istanbul ignore next */\n if (!this.isDynamicChange) {\n this.raiseChangeEvent(event);\n }\n };\n NumericTextBox.prototype.updateCurrency = function (prop, propVal) {\n setValue(prop, propVal, this.cultureInfo);\n this.updateValue(this.value);\n };\n NumericTextBox.prototype.changeValue = function (value) {\n if (!(value || value === 0)) {\n value = null;\n this.setProperties({ value: value }, true);\n }\n else {\n var numberOfDecimals = this.getNumberOfDecimals(value);\n this.setProperties({ value: this.roundNumber(value, numberOfDecimals) }, true);\n }\n this.modifyText();\n if (!this.strictMode) {\n this.validateState();\n }\n };\n NumericTextBox.prototype.modifyText = function () {\n if (this.value || this.value === 0) {\n var value = this.formatNumber();\n var elementValue = this.isFocused ? value : this.instance.getNumberFormat(this.cultureInfo)(this.value);\n this.setElementValue(elementValue);\n attributes(this.element, { 'aria-valuenow': value });\n this.hiddenInput.value = this.value.toString();\n if (this.value !== null && this.serverDecimalSeparator) {\n this.hiddenInput.value = this.hiddenInput.value.replace('.', this.serverDecimalSeparator);\n }\n }\n else {\n this.setElementValue('');\n this.element.removeAttribute('aria-valuenow');\n this.hiddenInput.value = null;\n }\n };\n NumericTextBox.prototype.setElementValue = function (val, element) {\n Input.setValue(val, (element ? element : this.element), this.floatLabelType, this.showClearButton);\n };\n NumericTextBox.prototype.validateState = function () {\n this.isValidState = true;\n if (this.value || this.value === 0) {\n this.isValidState = !(this.value > this.max || this.value < this.min);\n }\n this.checkErrorClass();\n };\n NumericTextBox.prototype.getNumberOfDecimals = function (value) {\n var numberOfDecimals;\n // eslint-disable-next-line no-useless-escape\n var EXPREGEXP = new RegExp('[eE][\\-+]?([0-9]+)');\n var valueString = value.toString();\n if (EXPREGEXP.test(valueString)) {\n var result = EXPREGEXP.exec(valueString);\n if (!isNullOrUndefined(result)) {\n valueString = value.toFixed(Math.min(parseInt(result[1], 10), 20));\n }\n }\n var decimalPart = valueString.split('.')[1];\n numberOfDecimals = !decimalPart || !decimalPart.length ? 0 : decimalPart.length;\n if (this.decimals !== null) {\n numberOfDecimals = numberOfDecimals < this.decimals ? numberOfDecimals : this.decimals;\n }\n return numberOfDecimals;\n };\n NumericTextBox.prototype.formatNumber = function () {\n var numberOfDecimals = this.getNumberOfDecimals(this.value);\n return this.instance.getNumberFormat({\n maximumFractionDigits: numberOfDecimals,\n minimumFractionDigits: numberOfDecimals, useGrouping: false\n })(this.value);\n };\n NumericTextBox.prototype.trimValue = function (value) {\n if (value > this.max) {\n return this.max;\n }\n if (value < this.min) {\n return this.min;\n }\n return value;\n };\n NumericTextBox.prototype.roundNumber = function (value, precision) {\n var result = value;\n var decimals = precision || 0;\n var result1 = result.toString().split('e');\n result = Math.round(Number(result1[0] + 'e' + (result1[1] ? (Number(result1[1]) + decimals) : decimals)));\n var result2 = result.toString().split('e');\n result = Number(result2[0] + 'e' + (result2[1] ? (Number(result2[1]) - decimals) : -decimals));\n return Number(result.toFixed(decimals));\n };\n NumericTextBox.prototype.cancelEvent = function (event) {\n event.preventDefault();\n return false;\n };\n NumericTextBox.prototype.keyPressHandler = function (event) {\n if (!this.enabled || this.readonly) {\n return true;\n }\n if (!Browser.isDevice && Browser.info.version === '11.0' && event.keyCode === 13) {\n var parsedInput = this.instance.getNumberParser({ format: 'n' })(this.element.value);\n this.updateValue(parsedInput, event);\n return true;\n }\n if (event.which === 0 || event.metaKey || event.ctrlKey || event.keyCode === 8 || event.keyCode === 13) {\n return true;\n }\n var currentChar = String.fromCharCode(event.which);\n var decimalSeparator = getValue('decimal', getNumericObject(this.locale));\n var isAlterNumPadDecimalChar = event.code === 'NumpadDecimal' && currentChar !== decimalSeparator;\n //EJ2-59813-replace the culture decimal separator value with numberpad decimal separator value when culture decimal separator and numberpad decimal separator are different\n if (isAlterNumPadDecimalChar) {\n currentChar = decimalSeparator;\n }\n var text = this.element.value;\n text = text.substring(0, this.element.selectionStart) + currentChar + text.substring(this.element.selectionEnd);\n if (!this.numericRegex().test(text)) {\n event.preventDefault();\n event.stopPropagation();\n return false;\n }\n else {\n //EJ2-59813-update the numberpad decimal separator and update the cursor position\n if (isAlterNumPadDecimalChar) {\n var start = this.element.selectionStart + 1;\n this.element.value = text;\n this.element.setSelectionRange(start, start);\n event.preventDefault();\n event.stopPropagation();\n }\n return true;\n }\n };\n NumericTextBox.prototype.numericRegex = function () {\n var numericObject = getNumericObject(this.locale);\n var decimalSeparator = getValue('decimal', numericObject);\n var fractionRule = '*';\n if (decimalSeparator === DECIMALSEPARATOR) {\n decimalSeparator = '\\\\' + decimalSeparator;\n }\n if (this.decimals === 0 && this.validateDecimalOnType) {\n return INTREGEXP;\n }\n if (this.decimals && this.validateDecimalOnType) {\n fractionRule = '{0,' + this.decimals + '}';\n }\n /* eslint-disable-next-line security/detect-non-literal-regexp */\n return new RegExp('^(-)?(((\\\\d+(' + decimalSeparator + '\\\\d' + fractionRule +\n ')?)|(' + decimalSeparator + '\\\\d' + fractionRule + ')))?$');\n };\n NumericTextBox.prototype.mouseWheel = function (event) {\n event.preventDefault();\n var delta;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var rawEvent = event;\n if (rawEvent.wheelDelta) {\n delta = rawEvent.wheelDelta / 120;\n }\n else if (rawEvent.detail) {\n delta = -rawEvent.detail / 3;\n }\n if (delta > 0) {\n this.action(INCREMENT, event);\n }\n else if (delta < 0) {\n this.action(DECREMENT, event);\n }\n this.cancelEvent(event);\n };\n NumericTextBox.prototype.focusHandler = function (event) {\n var _this = this;\n clearTimeout(selectionTimeOut);\n this.focusEventArgs = { event: event, value: this.value, container: this.container };\n this.trigger('focus', this.focusEventArgs);\n if (!this.enabled || this.readonly) {\n return;\n }\n this.isFocused = true;\n removeClass([this.container], ERROR);\n this.prevValue = this.value;\n if ((this.value || this.value === 0)) {\n var formatValue_1 = this.formatNumber();\n this.setElementValue(formatValue_1);\n if (!this.isPrevFocused) {\n if (!Browser.isDevice && Browser.info.version === '11.0') {\n this.element.setSelectionRange(0, formatValue_1.length);\n }\n else {\n var delay = (Browser.isDevice && Browser.isIos) ? 600 : 0;\n selectionTimeOut = setTimeout(function () {\n _this.element.setSelectionRange(0, formatValue_1.length);\n }, delay);\n }\n }\n }\n if (!Browser.isDevice) {\n EventHandler.add(this.element, 'mousewheel DOMMouseScroll', this.mouseWheel, this);\n }\n };\n NumericTextBox.prototype.focusOutHandler = function (event) {\n var _this = this;\n this.blurEventArgs = { event: event, value: this.value, container: this.container };\n this.trigger('blur', this.blurEventArgs);\n if (!this.enabled || this.readonly) {\n return;\n }\n if (this.isPrevFocused) {\n event.preventDefault();\n if (Browser.isDevice) {\n var value_1 = this.element.value;\n this.element.focus();\n this.isPrevFocused = false;\n var ele_1 = this.element;\n setTimeout(function () {\n _this.setElementValue(value_1, ele_1);\n }, 200);\n }\n }\n else {\n this.isFocused = false;\n if (!this.element.value.length) {\n this.setProperties({ value: null }, true);\n }\n var parsedInput = this.instance.getNumberParser({ format: 'n' })(this.element.value);\n this.updateValue(parsedInput);\n if (!Browser.isDevice) {\n EventHandler.remove(this.element, 'mousewheel DOMMouseScroll', this.mouseWheel);\n }\n }\n var formElement = closest(this.element, 'form');\n if (formElement) {\n var element = this.element.nextElementSibling;\n var focusEvent = document.createEvent('FocusEvent');\n focusEvent.initEvent('focusout', false, true);\n element.dispatchEvent(focusEvent);\n }\n };\n NumericTextBox.prototype.mouseDownOnSpinner = function (event) {\n var _this = this;\n if (this.isFocused) {\n this.isPrevFocused = true;\n event.preventDefault();\n }\n if (!this.getElementData(event)) {\n return;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var result = this.getElementData(event);\n var target = event.currentTarget;\n var action = (target.classList.contains(SPINUP)) ? INCREMENT : DECREMENT;\n EventHandler.add(target, 'mouseleave', this.mouseUpClick, this);\n this.timeOut = setInterval(function () {\n _this.isCalled = true;\n _this.action(action, event);\n }, 150);\n EventHandler.add(document, 'mouseup', this.mouseUpClick, this);\n };\n NumericTextBox.prototype.touchMoveOnSpinner = function (event) {\n var target;\n if (event.type === 'touchmove') {\n var touchEvent = event.touches;\n target = touchEvent.length && document.elementFromPoint(touchEvent[0].pageX, touchEvent[0].pageY);\n }\n else {\n target = document.elementFromPoint(event.clientX, event.clientY);\n }\n if (!(target.classList.contains(SPINICON))) {\n clearInterval(this.timeOut);\n }\n };\n NumericTextBox.prototype.mouseUpOnSpinner = function (event) {\n this.prevValue = this.value;\n if (this.isPrevFocused) {\n this.element.focus();\n if (!Browser.isDevice) {\n this.isPrevFocused = false;\n }\n }\n if (!Browser.isDevice) {\n event.preventDefault();\n }\n if (!this.getElementData(event)) {\n return;\n }\n var target = event.currentTarget;\n var action = (target.classList.contains(SPINUP)) ? INCREMENT : DECREMENT;\n EventHandler.remove(target, 'mouseleave', this.mouseUpClick);\n if (!this.isCalled) {\n this.action(action, event);\n }\n this.isCalled = false;\n EventHandler.remove(document, 'mouseup', this.mouseUpClick);\n var formElement = closest(this.element, 'form');\n if (formElement) {\n var element = this.element.nextElementSibling;\n var keyupEvent = document.createEvent('KeyboardEvent');\n keyupEvent.initEvent('keyup', false, true);\n element.dispatchEvent(keyupEvent);\n }\n };\n NumericTextBox.prototype.getElementData = function (event) {\n if ((event.which && event.which === 3) || (event.button && event.button === 2)\n || !this.enabled || this.readonly) {\n return false;\n }\n clearInterval(this.timeOut);\n return true;\n };\n NumericTextBox.prototype.floatLabelTypeUpdate = function () {\n Input.removeFloating(this.inputWrapper);\n var hiddenInput = this.hiddenInput;\n this.hiddenInput.remove();\n Input.addFloating(this.element, this.floatLabelType, this.placeholder, this.createElement);\n this.container.insertBefore(hiddenInput, this.container.childNodes[1]);\n };\n NumericTextBox.prototype.mouseUpClick = function (event) {\n event.stopPropagation();\n clearInterval(this.timeOut);\n this.isCalled = false;\n EventHandler.remove(this.spinUp, 'mouseleave', this.mouseUpClick);\n EventHandler.remove(this.spinDown, 'mouseleave', this.mouseUpClick);\n };\n /**\n * Increments the NumericTextBox value with the specified step value.\n *\n * @param {number} step - Specifies the value used to increment the NumericTextBox value.\n * if its not given then numeric value will be incremented based on the step property value.\n * @returns {void}\n */\n NumericTextBox.prototype.increment = function (step) {\n if (step === void 0) { step = this.step; }\n this.isInteract = false;\n this.changeValue(this.performAction(this.value, step, INCREMENT));\n this.raiseChangeEvent();\n };\n /**\n * Decrements the NumericTextBox value with specified step value.\n *\n * @param {number} step - Specifies the value used to decrement the NumericTextBox value.\n * if its not given then numeric value will be decremented based on the step property value.\n * @returns {void}\n */\n NumericTextBox.prototype.decrement = function (step) {\n if (step === void 0) { step = this.step; }\n this.isInteract = false;\n this.changeValue(this.performAction(this.value, step, DECREMENT));\n this.raiseChangeEvent();\n };\n /**\n * Removes the component from the DOM and detaches all its related event handlers.\n * Also it maintains the initial input element from the DOM.\n *\n * @method destroy\n * @returns {void}\n */\n NumericTextBox.prototype.destroy = function () {\n this.unwireEvents();\n detach(this.hiddenInput);\n if (this.showSpinButton) {\n this.unwireSpinBtnEvents();\n detach(this.spinUp);\n detach(this.spinDown);\n }\n var attrArray = ['aria-labelledby', 'role', 'autocomplete', 'aria-readonly',\n 'aria-disabled', 'autocapitalize', 'spellcheck', 'aria-autocomplete', 'tabindex',\n 'aria-valuemin', 'aria-valuemax', 'aria-valuenow', 'aria-invalid'];\n for (var i = 0; i < attrArray.length; i++) {\n this.element.removeAttribute(attrArray[i]);\n }\n this.element.classList.remove('e-input');\n this.container.insertAdjacentElement('afterend', this.element);\n detach(this.container);\n this.spinUp = null;\n this.spinDown = null;\n this.container = null;\n this.hiddenInput = null;\n this.changeEventArgs = null;\n this.blurEventArgs = null;\n this.focusEventArgs = null;\n this.inputWrapper = null;\n Input.destroy();\n _super.prototype.destroy.call(this);\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-returns */\n /**\n * Returns the value of NumericTextBox with the format applied to the NumericTextBox.\n *\n */\n NumericTextBox.prototype.getText = function () {\n return this.element.value;\n };\n /* eslint-enable valid-jsdoc, jsdoc/require-returns */\n /**\n * Sets the focus to widget for interaction.\n *\n * @returns {void}\n */\n NumericTextBox.prototype.focusIn = function () {\n if (document.activeElement !== this.element && this.enabled) {\n this.element.focus();\n addClass([this.container], [NUMERIC_FOCUS]);\n }\n };\n /**\n * Remove the focus from widget, if the widget is in focus state.\n *\n * @returns {void}\n */\n NumericTextBox.prototype.focusOut = function () {\n if (document.activeElement === this.element && this.enabled) {\n this.element.blur();\n removeClass([this.container], [NUMERIC_FOCUS]);\n }\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Gets the properties to be maintained in the persisted state.\n *\n * @returns {string}\n */\n NumericTextBox.prototype.getPersistData = function () {\n var keyEntity = ['value'];\n return this.addOnPersist(keyEntity);\n };\n /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Calls internally if any of the property value is changed.\n *\n * @param {NumericTextBoxModel} newProp - Returns the dynamic property value of the component.\n * @param {NumericTextBoxModel} oldProp - Returns the previous property value of the component.\n * @returns {void}\n * @private\n */\n NumericTextBox.prototype.onPropertyChanged = function (newProp, oldProp) {\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'width':\n this.setElementWidth(newProp.width);\n Input.calculateWidth(this.element, this.container);\n break;\n case 'cssClass':\n this.updateCssClass(newProp.cssClass, oldProp.cssClass);\n break;\n case 'enabled':\n Input.setEnabled(newProp.enabled, this.element);\n this.bindClearEvent();\n break;\n case 'enableRtl':\n Input.setEnableRtl(newProp.enableRtl, [this.container]);\n break;\n case 'readonly':\n Input.setReadonly(newProp.readonly, this.element);\n if (this.readonly) {\n attributes(this.element, { 'aria-readonly': 'true' });\n }\n else {\n this.element.removeAttribute('aria-readonly');\n }\n break;\n case 'htmlAttributes':\n this.updateHTMLAttrToElement();\n this.updateHTMLAttrToWrapper();\n this.updateDataAttribute(true);\n this.checkAttributes(true);\n Input.validateInputType(this.container, this.element);\n break;\n case 'placeholder':\n Input.setPlaceholder(newProp.placeholder, this.element);\n Input.calculateWidth(this.element, this.container);\n break;\n case 'step':\n this.step = newProp.step;\n this.validateStep();\n break;\n case 'showSpinButton':\n this.updateSpinButton(newProp);\n break;\n case 'showClearButton':\n this.updateClearButton(newProp);\n break;\n case 'floatLabelType':\n this.floatLabelType = newProp.floatLabelType;\n this.floatLabelTypeUpdate();\n break;\n case 'value':\n this.isDynamicChange = (this.isAngular || this.isVue) && this.preventChange;\n this.updateValue(newProp.value);\n if (this.isDynamicChange) {\n this.preventChange = false;\n this.isDynamicChange = false;\n }\n break;\n case 'min':\n case 'max':\n setValue(prop, getValue(prop, newProp), this);\n this.validateMinMax();\n this.updateValue(this.value);\n break;\n case 'strictMode':\n this.strictMode = newProp.strictMode;\n this.updateValue(this.value);\n this.validateState();\n break;\n case 'locale':\n this.initCultureFunc();\n this.l10n.setLocale(this.locale);\n this.setSpinButton();\n this.updatePlaceholder();\n Input.setPlaceholder(this.placeholder, this.element);\n this.updateValue(this.value);\n break;\n case 'currency':\n {\n var propVal = getValue(prop, newProp);\n this.setProperties({ currencyCode: propVal }, true);\n this.updateCurrency(prop, propVal);\n }\n break;\n case 'currencyCode':\n {\n var propValue = getValue(prop, newProp);\n this.setProperties({ currency: propValue }, true);\n this.updateCurrency('currency', propValue);\n }\n break;\n case 'format':\n setValue(prop, getValue(prop, newProp), this);\n this.initCultureInfo();\n this.updateValue(this.value);\n break;\n case 'decimals':\n this.decimals = newProp.decimals;\n this.updateValue(this.value);\n }\n }\n };\n NumericTextBox.prototype.updateClearButton = function (newProp) {\n Input.setClearButton(newProp.showClearButton, this.element, this.inputWrapper, undefined, this.createElement);\n this.bindClearEvent();\n };\n NumericTextBox.prototype.updateSpinButton = function (newProp) {\n if (newProp.showSpinButton) {\n this.spinBtnCreation();\n }\n else {\n detach(this.spinUp);\n detach(this.spinDown);\n }\n };\n /**\n * Gets the component name\n *\n * @returns {string} Returns the component name.\n * @private\n */\n NumericTextBox.prototype.getModuleName = function () {\n return 'numerictextbox';\n };\n __decorate([\n Property('')\n ], NumericTextBox.prototype, \"cssClass\", void 0);\n __decorate([\n Property(null)\n ], NumericTextBox.prototype, \"value\", void 0);\n __decorate([\n Property(-(Number.MAX_VALUE))\n ], NumericTextBox.prototype, \"min\", void 0);\n __decorate([\n Property(Number.MAX_VALUE)\n ], NumericTextBox.prototype, \"max\", void 0);\n __decorate([\n Property(1)\n ], NumericTextBox.prototype, \"step\", void 0);\n __decorate([\n Property(null)\n ], NumericTextBox.prototype, \"width\", void 0);\n __decorate([\n Property(null)\n ], NumericTextBox.prototype, \"placeholder\", void 0);\n __decorate([\n Property({})\n ], NumericTextBox.prototype, \"htmlAttributes\", void 0);\n __decorate([\n Property(true)\n ], NumericTextBox.prototype, \"showSpinButton\", void 0);\n __decorate([\n Property(false)\n ], NumericTextBox.prototype, \"readonly\", void 0);\n __decorate([\n Property(true)\n ], NumericTextBox.prototype, \"enabled\", void 0);\n __decorate([\n Property(false)\n ], NumericTextBox.prototype, \"showClearButton\", void 0);\n __decorate([\n Property(false)\n ], NumericTextBox.prototype, \"enablePersistence\", void 0);\n __decorate([\n Property('n2')\n ], NumericTextBox.prototype, \"format\", void 0);\n __decorate([\n Property(null)\n ], NumericTextBox.prototype, \"decimals\", void 0);\n __decorate([\n Property(null)\n ], NumericTextBox.prototype, \"currency\", void 0);\n __decorate([\n Property(null)\n ], NumericTextBox.prototype, \"currencyCode\", void 0);\n __decorate([\n Property(true)\n ], NumericTextBox.prototype, \"strictMode\", void 0);\n __decorate([\n Property(false)\n ], NumericTextBox.prototype, \"validateDecimalOnType\", void 0);\n __decorate([\n Property('Never')\n ], NumericTextBox.prototype, \"floatLabelType\", void 0);\n __decorate([\n Event()\n ], NumericTextBox.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], NumericTextBox.prototype, \"destroyed\", void 0);\n __decorate([\n Event()\n ], NumericTextBox.prototype, \"change\", void 0);\n __decorate([\n Event()\n ], NumericTextBox.prototype, \"focus\", void 0);\n __decorate([\n Event()\n ], NumericTextBox.prototype, \"blur\", void 0);\n NumericTextBox = __decorate([\n NotifyPropertyChanges\n ], NumericTextBox);\n return NumericTextBox;\n}(Component));\nexport { NumericTextBox };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { NumericTextBox } from '@syncfusion/ej2-inputs';\nimport { ComponentBase, applyMixins } from '@syncfusion/ej2-react-base';\n/**\n * Represents the React NumericTextBox Component\n * ```html\n * \n * ```\n */\nvar NumericTextBoxComponent = /** @class */ (function (_super) {\n __extends(NumericTextBoxComponent, _super);\n function NumericTextBoxComponent(props) {\n var _this = _super.call(this, props) || this;\n _this.initRenderCalled = false;\n _this.checkInjectedModules = false;\n _this.statelessTemplateProps = null;\n _this.templateProps = null;\n _this.immediateRender = true;\n _this.portals = [];\n return _this;\n }\n NumericTextBoxComponent.prototype.render = function () {\n if (((this.element && !this.initRenderCalled) || this.refreshing) && !this.isReactForeceUpdate) {\n _super.prototype.render.call(this);\n this.initRenderCalled = true;\n }\n else {\n return React.createElement(React.Fragment, null, [].concat(React.createElement(\"input\", this.getDefaultAttributes()), this.portals));\n }\n };\n return NumericTextBoxComponent;\n}(NumericTextBox));\nexport { NumericTextBoxComponent };\napplyMixins(NumericTextBoxComponent, [ComponentBase, React.Component]);\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { FormGroup } from \"@blueprintjs/core\";\nimport React, { useEffect, useRef } from \"react\";\nimport { NumericTextBoxComponent, } from \"@syncfusion/ej2-react-inputs\";\nimport { RelativityTooltip } from \"../../../Tooltip/RelativityTooltip\";\nimport { FieldLabel } from \"../../CoreFields/FieldLabel/FieldLabel\";\nimport { FormFieldErrorContainer } from \"../../CoreFields/FieldError/FormFieldErrorContainer\";\nimport { useIsNumericFieldToolTipVisibleSetter } from \"../../../../utils/field\";\n/**Numeric Field can be used by its self or inherited for Currency Percentages etc. */\nvar NumericField = function (props) {\n var _a;\n var _b = React.useState(props.value), localValue = _b[0], setLocalValue = _b[1];\n var numericInputRef = useRef(null);\n var isTooltipVisible = useIsNumericFieldToolTipVisibleSetter(numericInputRef, localValue);\n useEffect(function () {\n setLocalValue(props.value);\n }, [props.value]);\n return (_jsx(\"div\", { className: \"ucl-base-input-numeric-field-container\", children: _jsx(RelativityTooltip, { shouldShowTooltip: isTooltipVisible, content: !!localValue ? localValue.toString() : \"\", children: _jsxs(FormGroup, { className: \"\".concat(props.isRequired && !localValue && localValue !== 0\n ? \"has-required-background\"\n : \"base-field\"), children: [props.label && (_jsx(FieldLabel, __assign({ labelName: props.label, tooltipDescription: props.description, fieldProps: __assign(__assign({}, props), { value: localValue }) }, props.labelProps))), _jsx(NumericTextBoxComponent, { className: \"ucl-base-input-numeric-field\", ref: numericInputRef, type: props.type, name: props.fieldName, value: localValue, readOnly: !!props.disabled, min: props === null || props === void 0 ? void 0 : props.min, max: props === null || props === void 0 ? void 0 : props.max, showSpinButton: props.showIncrementButtons, currency: props === null || props === void 0 ? void 0 : props.currency, format: props === null || props === void 0 ? void 0 : props.format, validateDecimalOnType: true, change: function (e) {\n setLocalValue(e.value);\n props.onSubmit && props.onSubmit(e.value);\n }, decimals: props === null || props === void 0 ? void 0 : props.decimals, placeholder: props === null || props === void 0 ? void 0 : props.placeholder, step: (_a = props === null || props === void 0 ? void 0 : props.stepValue) !== null && _a !== void 0 ? _a : 1 }), props.errorMessages && (_jsx(FormFieldErrorContainer, { errorMessages: props.errorMessages }))] }) }) }));\n};\nexport default NumericField;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { Component, removeClass } from '@syncfusion/ej2-base';\nimport { EventHandler, isNullOrUndefined } from '@syncfusion/ej2-base';\nvar SignatureBase = /** @class */ (function (_super) {\n __extends(SignatureBase, _super);\n function SignatureBase() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /* minDistance(distance between the two point) was calaculated for smoothness.*/\n _this.minDistance = 5;\n _this.previous = 0;\n /* interval handles for the smoothness in the mouse move event.*/\n _this.interval = 30;\n _this.timeout = null;\n _this.isSignatureEmpty = true;\n _this.backgroundLoaded = null;\n _this.clearArray = [];\n _this.isBlazor = false;\n _this.isResponsive = false;\n _this.signPointsColl = [];\n _this.signRatioPointsColl = [];\n return _this;\n }\n /**\n * To Initialize the component rendering\n *\n * @private\n * @param {HTMLCanvasElement} element - Specifies the canvas element.\n * @param {BlazorDotnetObject} dotnetRef - Specifies for blazor client to server communication.\n * @returns {void}\n */\n SignatureBase.prototype.initialize = function (element, dotnetRef) {\n this.element = element;\n this.canvasContext = this.element.getContext('2d');\n this.canvasContext.canvas.tabIndex = -1;\n if (dotnetRef) {\n this.dotnetRef = dotnetRef;\n this.isBlazor = true;\n if (this.signatureValue) {\n this.loadPersistedSignature();\n }\n }\n this.setHTMLProperties();\n if (isNullOrUndefined(this.signatureValue)) {\n this.updateSnapCollection(true);\n }\n this.wireEvents();\n if (!this.isBlazor) {\n this.trigger('created', null);\n }\n };\n SignatureBase.prototype.wireEvents = function () {\n if (isNullOrUndefined(this.pointColl) && !this.isReadOnly && !this.disabled) {\n EventHandler.add(this.canvasContext.canvas, 'mousedown touchstart', this.mouseDownHandler, this);\n EventHandler.add(this.canvasContext.canvas, 'keydown', this.keyboardHandler, this);\n window.addEventListener('resize', this.resizeHandler.bind(this));\n }\n else if (this.pointColl) {\n EventHandler.add(this.canvasContext.canvas, 'mousemove touchmove', this.mouseMoveHandler, this);\n EventHandler.add(this.canvasContext.canvas, 'mouseup touchend', this.mouseUpHandler, this);\n EventHandler.add(document, 'mouseup', this.mouseUpHandler, this);\n }\n };\n SignatureBase.prototype.unwireEvents = function (type) {\n if (type === 'mouseup' || type === 'touchend') {\n EventHandler.remove(this.canvasContext.canvas, 'mousemove touchmove', this.mouseMoveHandler);\n EventHandler.remove(this.canvasContext.canvas, 'mouseup touchend', this.mouseUpHandler);\n EventHandler.remove(document, 'mouseup', this.mouseUpHandler);\n }\n else {\n EventHandler.remove(this.canvasContext.canvas, 'mousedown touchstart', this.mouseDownHandler);\n EventHandler.remove(this.canvasContext.canvas, 'keydown', this.keyboardHandler);\n window.removeEventListener('resize', this.resizeHandler);\n }\n };\n SignatureBase.prototype.setHTMLProperties = function () {\n if (this.element.height === 150 && this.element.width === 300) {\n this.element.height = this.element.offsetHeight;\n this.element.width = this.element.offsetWidth;\n this.isResponsive = true;\n }\n else if (this.element.height !== this.element.offsetHeight - 1 || this.element.width !== this.element.offsetWidth - 1) {\n this.element.height = this.element.offsetHeight;\n this.element.width = this.element.offsetWidth;\n }\n this.canvasContext.scale(1, 1);\n this.canvasContext.fillStyle = this.strokeColor;\n if (this.backgroundImage) {\n this.canvasContext.canvas.style.backgroundImage = 'url(' + this.backgroundImage + ')';\n this.canvasContext.canvas.style.backgroundRepeat = 'no-repeat';\n }\n else if (this.backgroundColor) {\n this.canvasContext.canvas.style.backgroundColor = this.backgroundColor;\n }\n };\n // eslint-disable-next-line\n SignatureBase.prototype.mouseDownHandler = function (e) {\n if (e.buttons === 1 || e.buttons === 2 || e.type === 'touchstart') {\n if (e.type === 'touchstart') {\n e.preventDefault();\n e.stopPropagation();\n }\n this.beginStroke(e);\n this.wireEvents();\n }\n };\n SignatureBase.prototype.mouseMoveHandler = function (e) {\n if (e.buttons === 1 || e.buttons === 2 || e.type === 'touchmove') {\n if (e.type === 'touchmove') {\n e.preventDefault();\n e.stopPropagation();\n }\n if (this.interval) {\n this.updateStrokeWithThrottle(e);\n }\n else {\n this.updateStroke(e);\n }\n }\n };\n SignatureBase.prototype.mouseUpHandler = function (e) {\n var args = { actionName: 'strokeUpdate' };\n if (e.type === 'touchstart') {\n e.preventDefault();\n e.stopPropagation();\n }\n this.endDraw();\n this.updateSnapCollection();\n this.unwireEvents(e.type);\n if (!this.isBlazor) {\n this.trigger('change', args);\n }\n else {\n this.dotnetRef.invokeMethodAsync('TriggerEventAsync', 'mouseUp');\n }\n this.signatureValue = this.snapColl[this.incStep];\n for (var i = 0; i < this.signPointsColl.length; i++) {\n this.signRatioPointsColl.push({ x: (this.signPointsColl[i].x / this.canvasContext.canvas.width),\n y: (this.signPointsColl[i].y / this.canvasContext.canvas.height) });\n }\n this.signPointsColl = [];\n };\n SignatureBase.prototype.keyboardHandler = function (e) {\n var _this = this;\n var args = { fileName: 'Signature', type: 'Png', cancel: false };\n switch (e.key) {\n case 'Delete':\n this.clear();\n break;\n case (e.ctrlKey && 's'):\n if (!this.isBlazor) {\n this.trigger('beforeSave', args, function (observableSaveArgs) {\n if (!args.cancel) {\n _this.save(observableSaveArgs.type, observableSaveArgs.fileName);\n }\n });\n }\n else {\n this.dotnetRef.invokeMethodAsync('TriggerEventAsync', 'beforeSave');\n }\n e.preventDefault();\n e.stopImmediatePropagation();\n break;\n case (e.ctrlKey && 'z'):\n this.undo();\n break;\n case (e.ctrlKey && 'y'):\n this.redo();\n break;\n }\n };\n SignatureBase.prototype.resizeHandler = function () {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var proxy = this;\n if (this.isResponsive) {\n this.canvasContext.canvas.width = this.element.offsetWidth;\n this.canvasContext.canvas.height = this.element.offsetHeight;\n this.canvasContext.scale(1, 1);\n var pointSize = (this.minStrokeWidth + this.maxStrokeWidth) / 2;\n for (var i = 0; i < this.signRatioPointsColl.length; i++) {\n this.arcDraw((this.signRatioPointsColl[i].x * this.canvasContext.canvas.width), (this.signRatioPointsColl[i].y * this.canvasContext.canvas.height), pointSize);\n }\n this.signPointsColl = [];\n this.canvasContext.closePath();\n this.canvasContext.fill();\n }\n else {\n var restoreImg_1 = new Image();\n restoreImg_1.src = this.snapColl[this.incStep];\n restoreImg_1.onload = function () {\n proxy.canvasContext.clearRect(0, 0, proxy.element.width, proxy.element.height);\n proxy.canvasContext.drawImage(restoreImg_1, 0, 0, proxy.element.width, proxy.element.height);\n };\n }\n };\n SignatureBase.prototype.beginStroke = function (e) {\n this.refresh();\n this.updateStroke(e);\n };\n SignatureBase.prototype.updateStroke = function (e) {\n var point = this.createPoint(e);\n this.addPoint(point);\n };\n SignatureBase.prototype.updateStrokeWithThrottle = function (args) {\n var now = Date.now();\n var remaining = this.interval - (now - this.previous);\n this.storedArgs = args;\n if (remaining <= 0 || remaining > this.interval) {\n if (this.timeout) {\n clearTimeout(this.timeout);\n this.timeout = null;\n }\n this.previous = now;\n this.updateStroke(this.storedArgs);\n if (!this.timeout) {\n this.storedArgs = null;\n }\n }\n else if (!this.timeout) {\n this.timeout = window.setTimeout(this.delay.bind(this), remaining);\n }\n };\n SignatureBase.prototype.delay = function () {\n this.previous = Date.now();\n this.timeout = null;\n this.updateStroke(this.storedArgs);\n if (!this.timeout) {\n this.storedArgs = null;\n }\n };\n SignatureBase.prototype.createPoint = function (e) {\n var rect = this.canvasContext.canvas.getBoundingClientRect();\n if (e.type === 'mousedown' || e.type === 'mousemove') {\n return this.point(e.clientX - rect.left, e.clientY - rect.top, new Date().getTime());\n }\n else {\n return this.point(e.touches[0].clientX - rect.left, e.touches[0].clientY - rect.top, new Date().getTime());\n }\n };\n /* Returns the current point corrdinates(x, y) and time.*/\n SignatureBase.prototype.point = function (pointX, pointY, time) {\n this.pointX = pointX;\n this.pointY = pointY;\n this.time = time || new Date().getTime();\n return { x: this.pointX, y: this.pointY, time: this.time };\n };\n SignatureBase.prototype.addPoint = function (point) {\n var points = this.pointColl;\n var controlPoint1;\n var controlPoint2;\n var lastPoint = points.length > 0 && points[points.length - 1];\n var isLastPointTooClose = lastPoint ? this.distanceTo(lastPoint) <= this.minDistance : false;\n if (!lastPoint || !(lastPoint && isLastPointTooClose)) {\n points.push(point);\n if (points.length > 2) {\n if (points.length === 3) {\n points.unshift(points[0]);\n }\n controlPoint1 = (this.calculateCurveControlPoints(points[0], points[1], points[2])).controlPoint2;\n controlPoint2 = (this.calculateCurveControlPoints(points[1], points[2], points[3])).controlPoint1;\n this.startPoint = points[1];\n this.controlPoint1 = controlPoint1;\n this.controlPoint2 = controlPoint2;\n this.endPoint = points[2];\n this.startDraw();\n points.shift();\n }\n }\n };\n SignatureBase.prototype.startDraw = function () {\n var velocity;\n velocity = this.pointVelocityCalc(this.startPoint);\n velocity = this.velocity * velocity + (1 - this.velocity) * this.lastVelocity;\n var newWidth = Math.max(this.maxStrokeWidth / (velocity + 1), this.minStrokeWidth);\n this.curveDraw(this.lastWidth, newWidth);\n this.lastVelocity = velocity;\n this.lastWidth = newWidth;\n };\n SignatureBase.prototype.endDraw = function () {\n var canDrawCurve = this.pointColl.length > 2;\n var point = this.pointColl[0];\n if (!canDrawCurve && point) {\n this.strokeDraw(point);\n }\n };\n /* Calculate the Bezier (x, y) coordinate of the curve. */\n SignatureBase.prototype.curveDraw = function (startWidth, endWidth) {\n var context = this.canvasContext;\n var width;\n var i;\n var t1;\n var t2;\n var t3;\n var u1;\n var u2;\n var u3;\n var x;\n var y;\n var widthValue = endWidth - startWidth;\n var bezierLength = this.bezierLengthCalc();\n var drawSteps = Math.ceil(bezierLength) * 2;\n context.beginPath();\n for (i = 0; i < drawSteps; i++) {\n t1 = i / drawSteps;\n t2 = t1 * t1;\n t3 = t2 * t1;\n u1 = 1 - t1;\n u2 = u1 * u1;\n u3 = u2 * u1;\n x = u3 * this.startPoint.x;\n x += 3 * u2 * t1 * this.controlPoint1.x;\n x += 3 * u1 * t2 * this.controlPoint2.x;\n x += t3 * this.endPoint.x;\n y = u3 * this.startPoint.y;\n y += 3 * u2 * t1 * this.controlPoint1.y;\n y += 3 * u1 * t2 * this.controlPoint2.y;\n y += t3 * this.endPoint.y;\n width = Math.min(startWidth + t3 * widthValue, this.maxStrokeWidth);\n this.arcDraw(x, y, width);\n }\n context.closePath();\n context.fill();\n this.isSignatureEmpty = false;\n };\n SignatureBase.prototype.strokeDraw = function (point) {\n var context = this.canvasContext;\n var pointSize = (this.minStrokeWidth + this.maxStrokeWidth) / 2;\n context.beginPath();\n this.arcDraw(point.x, point.y, pointSize);\n context.closePath();\n context.fill();\n this.isSignatureEmpty = false;\n };\n SignatureBase.prototype.arcDraw = function (x, y, size) {\n this.signPointsColl.push({ x: x, y: y });\n var context = this.canvasContext;\n context.moveTo(x, y);\n context.arc(x, y, size, 0, 2 * Math.PI, false);\n };\n /* Utility functions for Bezier algorithm*/\n SignatureBase.prototype.calculateCurveControlPoints = function (p1, p2, p3) {\n var dx1 = p1.x - p2.x;\n var dy1 = p1.y - p2.y;\n var dx2 = p2.x - p3.x;\n var dy2 = p2.y - p3.y;\n var m1 = { x: (p1.x + p2.x) / 2.0, y: (p1.y + p2.y) / 2.0 };\n var m2 = { x: (p2.x + p3.x) / 2.0, y: (p2.y + p3.y) / 2.0 };\n var l1 = Math.sqrt(dx1 * dx1 + dy1 * dy1);\n var l2 = Math.sqrt(dx2 * dx2 + dy2 * dy2);\n var dxm = (m1.x - m2.x);\n var dym = (m1.y - m2.y);\n var k = l2 / (l1 + l2);\n var cm = { x: m2.x + dxm * k, y: m2.y + dym * k };\n var tx = p2.x - cm.x;\n var ty = p2.y - cm.y;\n return {\n controlPoint1: this.point(m1.x + tx, m1.y + ty, 0),\n controlPoint2: this.point(m2.x + tx, m2.y + ty, 0)\n };\n };\n /* Returns approximated bezier length of the curuve.*/\n SignatureBase.prototype.bezierLengthCalc = function () {\n var steps = 10;\n var length = 0;\n var i;\n var t;\n var pointx1;\n var pointy1;\n var pointx2;\n var pointy2;\n var pointx3;\n var pointy3;\n for (i = 0; i <= steps; i++) {\n t = i / steps;\n pointx1 = this.bezierPointCalc(t, this.startPoint.x, this.controlPoint1.x, this.controlPoint2.x, this.endPoint.x);\n pointy1 = this.bezierPointCalc(t, this.startPoint.y, this.controlPoint1.y, this.controlPoint2.y, this.endPoint.y);\n if (i > 0) {\n pointx3 = pointx1 - pointx2;\n pointy3 = pointy1 - pointy2;\n length += Math.sqrt(pointx3 * pointx3 + pointy3 * pointy3);\n }\n pointx2 = pointx1;\n pointy2 = pointy1;\n }\n return length;\n };\n /* Calculate parametric value of x or y given t and the\n four point(startpoint, controlpoint1, controlpoint2, endpoint) coordinates of a cubic bezier curve.*/\n SignatureBase.prototype.bezierPointCalc = function (t, startpoint, cp1, cp2, endpoint) {\n return startpoint * (1.0 - t) * (1.0 - t) * (1.0 - t) + 3.0 * cp1 * (1.0 - t) * (1.0 - t) * t + 3.0 *\n cp2 * (1.0 - t) * t * t + endpoint * t * t * t;\n };\n /* Velocity between the current point and last point.*/\n SignatureBase.prototype.pointVelocityCalc = function (startPoint) {\n return (this.time !== startPoint.time) ? this.distanceTo(startPoint) / (this.time - startPoint.time) : 0;\n };\n /* Distance between the current point and last point.*/\n SignatureBase.prototype.distanceTo = function (start) {\n return Math.sqrt(Math.pow(this.pointX - start.x, 2) + Math.pow(this.pointY - start.y, 2));\n };\n SignatureBase.prototype.isRead = function (isRead) {\n if (isRead) {\n EventHandler.remove(this.canvasContext.canvas, 'mousedown touchstart', this.mouseDownHandler);\n }\n else if (!this.disabled) {\n EventHandler.add(this.canvasContext.canvas, 'mousedown touchstart', this.mouseDownHandler, this);\n }\n };\n SignatureBase.prototype.enableOrDisable = function (isDisable) {\n this.disabled = isDisable;\n if (isDisable) {\n this.canvasContext.canvas.style.filter = 'opacity(0.5)';\n this.isRead(true);\n }\n else {\n this.canvasContext.canvas.style.filter = '';\n this.isRead(false);\n }\n };\n SignatureBase.prototype.updateSnapCollection = function (isClear) {\n if (isNullOrUndefined(this.incStep)) {\n this.incStep = -1;\n this.incStep++;\n this.snapColl = [];\n this.clearArray = [];\n }\n else {\n this.incStep++;\n }\n if (this.incStep < this.snapColl.length) {\n this.snapColl.length = this.incStep;\n }\n if (this.incStep > 0) {\n var canvasNew = this.createElement('canvas', { className: 'e-' + this.getModuleName() + '-wrapper' });\n var canvasContextNew = canvasNew.getContext('2d');\n canvasNew.width = this.canvasContext.canvas.width;\n canvasNew.height = this.canvasContext.canvas.height;\n canvasContextNew.drawImage(this.canvasContext.canvas, 0, 0, canvasNew.width, canvasNew.height);\n this.snapColl.push(canvasNew.toDataURL());\n }\n else {\n this.snapColl.push(this.canvasContext.canvas.toDataURL());\n }\n if (isClear) {\n this.clearArray.push(this.incStep);\n }\n };\n SignatureBase.prototype.setBackgroundImage = function (imageSrc) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var proxy = this;\n var imageObj = new Image();\n imageObj.crossOrigin = 'anonymous';\n imageObj.src = imageSrc;\n imageObj.onload = function () {\n proxy.canvasContext.globalCompositeOperation = 'source-over';\n proxy.canvasContext.drawImage(imageObj, 0, 0, proxy.element.width, proxy.element.height);\n proxy.updateSnapCollection();\n proxy.saveBackground(true);\n };\n this.canvasContext.clearRect(0, 0, this.canvasContext.canvas.width, this.canvasContext.canvas.height);\n };\n SignatureBase.prototype.setBackgroundColor = function (color) {\n var canvasEle = this.canvasContext;\n canvasEle.strokeStyle = color;\n var i;\n var j;\n for (i = 1; i <= canvasEle.canvas.width; i++) {\n for (j = 1; j <= canvasEle.canvas.height; j++) {\n canvasEle.strokeRect(0, 0, i, j);\n }\n }\n this.updateSnapCollection();\n };\n SignatureBase.prototype.loadPersistedSignature = function () {\n if (isNullOrUndefined(this.signatureValue)) {\n return;\n }\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var proxy = this;\n var lastImage = new Image();\n lastImage.src = this.signatureValue;\n lastImage.onload = function () {\n proxy.canvasContext.clearRect(0, 0, proxy.element.width, proxy.element.height);\n proxy.canvasContext.drawImage(lastImage, 0, 0);\n proxy.updateSnapCollection();\n };\n this.isSignatureEmpty = false;\n };\n /**\n * To get the signature as Blob.\n *\n * @param {string} url - specify the url/base 64 string to get blob of the signature.\n * @returns {Blob}.\n */\n SignatureBase.prototype.getBlob = function (url) {\n var arr = url.split(',');\n var type = arr[0].match(/:(.*?);/)[1];\n var bstr = atob(arr[1]);\n var n = bstr.length;\n var u8arr = new Uint8Array(n);\n while (n--) {\n u8arr[n] = bstr.charCodeAt(n);\n }\n return new Blob([u8arr], { type: type });\n };\n SignatureBase.prototype.download = function (blob, fileName) {\n var blobUrl = URL.createObjectURL(blob);\n var a = document.createElement('a');\n a.href = blobUrl;\n a.target = '_parent';\n a.download = fileName;\n (document.body || document.documentElement).appendChild(a);\n a.click();\n a.parentNode.removeChild(a);\n };\n /**\n * To refresh the signature.\n *\n * @private\n * @returns {void}.\n */\n SignatureBase.prototype.refresh = function () {\n this.pointColl = [];\n this.lastVelocity = 0;\n this.lastWidth = (this.minStrokeWidth + this.maxStrokeWidth) / 2;\n };\n /**\n * Erases all the signature strokes signed by user.\n *\n * @returns {void}.\n */\n SignatureBase.prototype.clear = function () {\n var args = { actionName: 'clear' };\n this.canvasContext.clearRect(0, 0, this.canvasContext.canvas.width, this.canvasContext.canvas.height);\n this.refresh();\n this.signRatioPointsColl = [];\n this.updateSnapCollection(true);\n this.isSignatureEmpty = true;\n if (!this.isBlazor) {\n this.trigger('change', args);\n }\n else {\n this.dotnetRef.invokeMethodAsync('TriggerEventAsync', 'Clear');\n }\n };\n /**\n * Undo the last user action.\n *\n * @returns {void}.\n */\n SignatureBase.prototype.undo = function () {\n var args = { actionName: 'undo' };\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var proxy = this;\n if (this.incStep > 0) {\n this.incStep--;\n var undoImg_1 = new Image();\n undoImg_1.src = this.snapColl[this.incStep];\n undoImg_1.onload = function () {\n proxy.canvasContext.clearRect(0, 0, proxy.element.width, proxy.element.height);\n proxy.canvasContext.drawImage(undoImg_1, 0, 0, proxy.element.width, proxy.element.height);\n };\n }\n this.isClear();\n if (!this.isBlazor) {\n this.trigger('change', args);\n }\n else {\n this.dotnetRef.invokeMethodAsync('TriggerEventAsync', 'Undo');\n }\n };\n /**\n * Redo the last user action.\n *\n * @returns {void}.\n */\n SignatureBase.prototype.redo = function () {\n var args = { actionName: 'redo' };\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var proxy = this;\n if (this.incStep < this.snapColl.length - 1) {\n this.incStep++;\n var redoImg_1 = new Image();\n redoImg_1.src = this.snapColl[this.incStep];\n redoImg_1.onload = function () {\n proxy.canvasContext.clearRect(0, 0, proxy.element.width, proxy.element.height);\n proxy.canvasContext.drawImage(redoImg_1, 0, 0, proxy.element.width, proxy.element.height);\n };\n }\n this.isClear();\n if (!this.isBlazor) {\n this.trigger('change', args);\n }\n else {\n this.dotnetRef.invokeMethodAsync('TriggerEventAsync', 'Redo');\n }\n };\n SignatureBase.prototype.isClear = function () {\n if (this.clearArray) {\n var empty = false;\n for (var i = 0; i < this.clearArray.length; i++) {\n if (this.clearArray[i] === this.incStep) {\n this.isSignatureEmpty = true;\n empty = true;\n }\n }\n if (!empty) {\n this.isSignatureEmpty = false;\n }\n }\n };\n /**\n * To check whether the signature is empty or not.\n *\n * @returns {boolean}.\n */\n SignatureBase.prototype.isEmpty = function () {\n return this.isSignatureEmpty;\n };\n /**\n * To check whether the undo collection is empty or not.\n *\n * @returns {boolean}.\n */\n SignatureBase.prototype.canUndo = function () {\n return this.incStep > 0;\n };\n /**\n * To check whether the redo collection is empty or not.\n *\n * @returns {boolean}.\n */\n SignatureBase.prototype.canRedo = function () {\n return this.incStep < this.snapColl.length - 1;\n };\n /**\n * To draw the signature based on the given text, with the font family and font size.\n *\n * @param {string} text - specify text to be drawn as signature.\n * @param {string} fontFamily - specify font family of a signature.\n * @param {number} fontSize - specify font size of a signature.\n *\n * @returns {void}.\n */\n SignatureBase.prototype.draw = function (text, fontFamily, fontSize) {\n var args = { actionName: 'draw-text' };\n this.canvasContext.clearRect(0, 0, this.canvasContext.canvas.width, this.canvasContext.canvas.height);\n fontFamily = fontFamily || 'Arial';\n fontSize = fontSize || 30;\n this.canvasContext.font = fontSize + 'px ' + fontFamily;\n this.canvasContext.textAlign = 'center';\n this.canvasContext.textBaseline = 'middle';\n this.canvasContext.fillText(text, this.element.width / 2, this.element.height / 2);\n this.updateSnapCollection();\n this.isSignatureEmpty = false;\n this.trigger('change', args);\n };\n /**\n * To load the signature with the given base 64 string, height and width.\n *\n * @param {string} signature - specify the url/base 64 string to be drawn as signature.\n * @param {number} width - specify the width of the loaded signature image.\n * @param {number} height - specify the height of the loaded signature image.\n * @returns {void}.\n */\n SignatureBase.prototype.load = function (signature, width, height) {\n height = height || this.element.height;\n width = width || this.element.width;\n this.canvasContext.clearRect(0, 0, this.canvasContext.canvas.width, this.canvasContext.canvas.height);\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var proxy = this;\n var bitmapImage = new Image();\n bitmapImage.src = signature;\n if (signature.slice(0, 4) !== 'data') {\n bitmapImage.crossOrigin = 'anonymous';\n }\n bitmapImage.onload = function () {\n Promise.all([\n createImageBitmap(bitmapImage, 0, 0, width, height)\n ]).then(function (results) {\n var tempCanvas = document.createElement('canvas');\n tempCanvas.width = width;\n tempCanvas.height = height;\n tempCanvas.getContext('2d').drawImage(results[0], 0, 0);\n if (signature.slice(0, 4) !== 'data') {\n proxy.canvasContext.globalCompositeOperation = 'source-over';\n }\n proxy.canvasContext.drawImage(tempCanvas, 0, 0, width, height, 0, 0, proxy.element.width, proxy.element.height);\n proxy.updateSnapCollection();\n });\n };\n this.isSignatureEmpty = false;\n };\n SignatureBase.prototype.saveBackground = function (savebg) {\n var imageSrc;\n if (savebg && this.backgroundImage) {\n imageSrc = this.snapColl[this.incStep - 1];\n }\n else {\n imageSrc = this.snapColl[this.incStep];\n }\n if (!savebg) {\n this.canvasContext.clearRect(0, 0, this.canvasContext.canvas.width, this.canvasContext.canvas.height);\n if (this.backgroundImage) {\n this.setBackgroundImage(this.backgroundImage);\n }\n else if (this.backgroundColor) {\n this.setBackgroundColor(this.backgroundColor);\n savebg = true;\n }\n }\n if (savebg) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var proxy_1 = this;\n var imageObj_1 = new Image();\n imageObj_1.crossOrigin = 'anonymous';\n imageObj_1.src = imageSrc;\n imageObj_1.onload = function () {\n proxy_1.backgroundLoaded = true;\n proxy_1.canvasContext.globalCompositeOperation = 'source-over';\n proxy_1.canvasContext.drawImage(imageObj_1, 0, 0, proxy_1.element.width, proxy_1.element.height);\n proxy_1.save(proxy_1.fileType, proxy_1.fileName);\n };\n }\n };\n /**\n * To save the signature with the given file type and file name.\n *\n * @param {SignatureFileType} type - specify type of the file to be saved a signature.\n * @param {string} fileName - specify name of the file to be saved a signature.\n *\n * @returns {void}.\n */\n SignatureBase.prototype.save = function (type, fileName) {\n if (this.saveWithBackground && this.backgroundLoaded == null && (this.backgroundImage || this.backgroundColor)) {\n this.backgroundLoaded = false;\n this.fileType = type;\n this.fileName = fileName;\n this.saveBackground(false);\n }\n else if (type === 'Svg') {\n fileName = fileName || 'Signature';\n this.toSVG(fileName);\n }\n else if (type === 'Jpeg') {\n fileName = fileName || 'Signature';\n if (!this.saveWithBackground || this.saveWithBackground && !(this.backgroundImage || this.backgroundColor)) {\n this.toJPEG(fileName);\n }\n else {\n var dataURL = this.canvasContext.canvas.toDataURL('image/jpeg');\n this.download(this.getBlob(dataURL), fileName + '.' + 'jpeg');\n }\n }\n else {\n fileName = fileName || 'Signature';\n var dataURL = this.canvasContext.canvas.toDataURL('image/png');\n this.download(this.getBlob(dataURL), fileName + '.' + 'png');\n }\n if (this.saveWithBackground && this.backgroundLoaded) {\n this.resetSnap();\n }\n };\n SignatureBase.prototype.resetSnap = function () {\n this.canvasContext.clearRect(0, 0, this.canvasContext.canvas.width, this.canvasContext.canvas.height);\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var proxy = this;\n var restoreObj = new Image();\n restoreObj.src = this.snapColl[this.incStep - 1];\n restoreObj.onload = function () {\n proxy.canvasContext.drawImage(restoreObj, 0, 0, proxy.element.width, proxy.element.height);\n proxy.updateSnapCollection();\n };\n this.backgroundLoaded = null;\n this.snapColl.pop();\n this.incStep--;\n this.snapColl.pop();\n this.incStep--;\n };\n SignatureBase.prototype.toJPEG = function (fileName) {\n var _this = this;\n var imageSrc = this.snapColl[this.incStep];\n this.setBackgroundColor('#ffffff');\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var proxy = this;\n var imageObj = new Image();\n imageObj.crossOrigin = 'anonymous';\n imageObj.src = imageSrc;\n imageObj.onload = function () {\n proxy.canvasContext.globalCompositeOperation = 'source-over';\n proxy.canvasContext.drawImage(imageObj, 0, 0, proxy.element.width, proxy.element.height);\n var dataURL = proxy.canvasContext.canvas.toDataURL('image/jpeg');\n proxy.download(proxy.getBlob(dataURL), fileName + '.' + 'jpeg');\n proxy.canvasContext.clearRect(0, 0, proxy.canvasContext.canvas.width, proxy.canvasContext.canvas.height);\n _this.resizeHandler();\n };\n this.snapColl.pop();\n this.incStep--;\n };\n SignatureBase.prototype.toSVG = function (fileName) {\n var dataUrl = this.canvasContext.canvas.toDataURL();\n var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n svg.setAttribute('width', this.canvasContext.canvas.width.toString());\n svg.setAttribute('height', this.canvasContext.canvas.height.toString());\n var XLinkNS = 'http://www.w3.org/1999/xlink';\n var img = document.createElementNS('http://www.w3.org/2000/svg', 'image');\n img.setAttributeNS(null, 'height', this.canvasContext.canvas.height.toString());\n img.setAttributeNS(null, 'width', this.canvasContext.canvas.width.toString());\n img.setAttributeNS(XLinkNS, 'xlink:href', dataUrl);\n svg.appendChild(img);\n var prefix = 'data:image/svg+xml;base64,';\n var header = '';\n var footer = '';\n var body = svg.innerHTML;\n var data = header + body + footer;\n var svgDataUrl = prefix + btoa(data);\n if (fileName == null) {\n return svgDataUrl;\n }\n else {\n this.download(this.getBlob(svgDataUrl), fileName + '.' + 'svg');\n return null;\n }\n };\n /**\n * To save the signature as Blob.\n *\n * @returns {Blob}.\n */\n SignatureBase.prototype.saveAsBlob = function () {\n return this.getBlob(this.canvasContext.canvas.toDataURL('image/png'));\n };\n /**\n * To get the signature as Base 64.\n *\n * @private\n * @param {SignatureFileType} type - Specifies the type of the image format.\n * @returns {string}.\n */\n SignatureBase.prototype.getSignature = function (type) {\n if (type === 'Jpeg') {\n var imgData = this.canvasContext.getImageData(0, 0, this.element.width, this.element.height);\n var data = imgData.data;\n for (var i = 0; i < data.length; i += 4) {\n if (data[i + 3] < 255) {\n data[i] = 255 - data[i];\n data[i + 1] = 255 - data[i + 1];\n data[i + 2] = 255 - data[i + 2];\n data[i + 3] = 255 - data[i + 3];\n }\n }\n this.canvasContext.putImageData(imgData, 0, 0);\n var dataURL = this.canvasContext.canvas.toDataURL('image/jpeg');\n this.resizeHandler();\n return dataURL;\n }\n else if (type === 'Svg') {\n return this.toSVG(null);\n }\n else {\n return this.canvasContext.canvas.toDataURL('image/png');\n }\n };\n /**\n * Get component name.\n *\n * @returns {string} - Module Name\n * @private\n */\n SignatureBase.prototype.getModuleName = function () {\n return 'signature';\n };\n /**\n * To get the properties to be maintained in the persisted state.\n *\n * @returns {string} - Persist data\n */\n SignatureBase.prototype.getPersistData = function () {\n this.signatureValue = this.snapColl[this.incStep];\n return this.addOnPersist(['signatureValue']);\n };\n /**\n * Removes the component from the DOM and detaches all its related event handlers.\n * Also it maintains the initial input element from the DOM.\n *\n * @method destroy\n * @returns {void}\n */\n SignatureBase.prototype.destroy = function () {\n if (this.getModuleName() !== 'image-editor') {\n this.unwireEvents(null);\n removeClass([this.element], 'e-' + this.getModuleName());\n this.element.removeAttribute('tabindex');\n this.pointColl = null;\n }\n _super.prototype.destroy.call(this);\n };\n /**\n * Modified onPropertyChanged method for both blazor and EJ2 signature component.\n *\n * @private\n * @param {string} key - Specifies the property, which changed.\n * @param {string} value - Specifies the property value changed.\n * @returns {void}\n */\n SignatureBase.prototype.propertyChanged = function (key, value) {\n var canvasNew = this.canvasContext;\n switch (key) {\n case 'backgroundColor':\n canvasNew.canvas.style.backgroundColor = value;\n this.backgroundColor = value;\n break;\n case 'backgroundImage':\n canvasNew.canvas.style.backgroundImage = 'url(' + value + ')';\n this.backgroundImage = value;\n break;\n case 'strokeColor':\n canvasNew.fillStyle = value;\n this.strokeColor = value;\n break;\n case 'saveWithBackground':\n this.saveWithBackground = value;\n break;\n case 'maxStrokeWidth':\n this.maxStrokeWidth = value;\n break;\n case 'minStrokeWidth':\n this.minStrokeWidth = value;\n break;\n case 'velocity':\n this.velocity = value;\n break;\n case 'isReadOnly':\n this.isRead(value);\n break;\n case 'disabled':\n this.enableOrDisable(value);\n break;\n }\n };\n return SignatureBase;\n}(Component));\nexport { SignatureBase };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Event } from '@syncfusion/ej2-base';\nimport { NotifyPropertyChanges, Property, addClass } from '@syncfusion/ej2-base';\nimport { SignatureBase } from '../common/signature-base';\n/**\n * The Signature component allows user to draw smooth signatures as vector outline of strokes using variable width bezier curve interpolation.\n * It allows to save signature as image.\n * You can use your finger, pen, or mouse on a tablet, touchscreen, etc., to draw your own signature on this Signature component.\n * Signature component is a user interface to draw the Signature or Text.\n * It provides supports for various Background color, Stroke color and Background Image.\n * ```html\n * \n * ```\n * ```typescript\n * \n * ```\n */\nvar Signature = /** @class */ (function (_super) {\n __extends(Signature, _super);\n /**\n * Constructor for creating the widget.\n *\n * @param {SignatureModel} options - Specifies the Signature model.\n * @param {string | HTMLCanvasElement} element - Specifies the element.\n * @private\n */\n function Signature(options, element) {\n return _super.call(this, options, element) || this;\n }\n Signature.prototype.preRender = function () {\n // pre render code snippets\n };\n /**\n * To Initialize the component rendering\n *\n * @private\n * @returns {void}\n */\n Signature.prototype.render = function () {\n this.initialize();\n };\n Signature.prototype.initialize = function () {\n addClass([this.element], 'e-' + this.getModuleName());\n _super.prototype.initialize.call(this, this.element);\n if (this.enablePersistence) {\n this.loadPersistedSignature();\n }\n };\n /**\n * To get component name.\n *\n * @returns {string} - Module Name\n * @private\n */\n Signature.prototype.getModuleName = function () {\n return 'signature';\n };\n /**\n * To get the properties to be maintained in the persisted state.\n *\n * @returns {string} - Persist data\n */\n Signature.prototype.getPersistData = function () {\n return this.addOnPersist(['signatureValue']);\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {SignatureModel} newProp - Specifies new properties\n * @param {SignatureModel} oldProp - Specifies old properties\n * @returns {void}\n * @private\n */\n Signature.prototype.onPropertyChanged = function (newProp, oldProp) {\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'backgroundColor':\n _super.prototype.propertyChanged.call(this, prop, newProp.backgroundColor);\n break;\n case 'backgroundImage':\n _super.prototype.propertyChanged.call(this, prop, newProp.backgroundImage);\n break;\n case 'strokeColor':\n if (newProp.strokeColor !== oldProp.strokeColor) {\n _super.prototype.propertyChanged.call(this, prop, newProp.strokeColor);\n }\n break;\n case 'saveWithBackground':\n _super.prototype.propertyChanged.call(this, prop, newProp.saveWithBackground);\n break;\n case 'isReadOnly':\n _super.prototype.propertyChanged.call(this, prop, newProp.isReadOnly);\n break;\n case 'disabled':\n _super.prototype.propertyChanged.call(this, prop, newProp.disabled);\n break;\n }\n }\n };\n __decorate([\n Property('')\n ], Signature.prototype, \"backgroundColor\", void 0);\n __decorate([\n Property('')\n ], Signature.prototype, \"backgroundImage\", void 0);\n __decorate([\n Property(false)\n ], Signature.prototype, \"disabled\", void 0);\n __decorate([\n Property(false)\n ], Signature.prototype, \"isReadOnly\", void 0);\n __decorate([\n Property(true)\n ], Signature.prototype, \"saveWithBackground\", void 0);\n __decorate([\n Property('#000000')\n ], Signature.prototype, \"strokeColor\", void 0);\n __decorate([\n Property(0.5)\n ], Signature.prototype, \"minStrokeWidth\", void 0);\n __decorate([\n Property(2)\n ], Signature.prototype, \"maxStrokeWidth\", void 0);\n __decorate([\n Property(0.7)\n ], Signature.prototype, \"velocity\", void 0);\n __decorate([\n Property('en-US')\n ], Signature.prototype, \"locale\", void 0);\n __decorate([\n Property(false)\n ], Signature.prototype, \"enableRtl\", void 0);\n __decorate([\n Property(false)\n ], Signature.prototype, \"enablePersistence\", void 0);\n __decorate([\n Event()\n ], Signature.prototype, \"beforeSave\", void 0);\n __decorate([\n Event()\n ], Signature.prototype, \"change\", void 0);\n __decorate([\n Event()\n ], Signature.prototype, \"created\", void 0);\n Signature = __decorate([\n NotifyPropertyChanges\n ], Signature);\n return Signature;\n}(SignatureBase));\nexport { Signature };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { Signature } from '@syncfusion/ej2-inputs';\nimport { ComponentBase, applyMixins } from '@syncfusion/ej2-react-base';\n/**\n * Represents the React Signature Component\n * ```html\n * \n * ```\n */\nvar SignatureComponent = /** @class */ (function (_super) {\n __extends(SignatureComponent, _super);\n function SignatureComponent(props) {\n var _this = _super.call(this, props) || this;\n _this.initRenderCalled = false;\n _this.checkInjectedModules = false;\n _this.statelessTemplateProps = null;\n _this.templateProps = null;\n _this.immediateRender = true;\n _this.portals = [];\n return _this;\n }\n SignatureComponent.prototype.render = function () {\n if (((this.element && !this.initRenderCalled) || this.refreshing) && !this.isReactForeceUpdate) {\n _super.prototype.render.call(this);\n this.initRenderCalled = true;\n }\n else {\n return React.createElement('canvas', this.getDefaultAttributes(), [].concat(this.props.children, this.portals));\n }\n };\n return SignatureComponent;\n}(Signature));\nexport { SignatureComponent };\napplyMixins(SignatureComponent, [ComponentBase, React.Component]);\n","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { Button, Intent } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nexport var ClearButton = function (_a) {\n var _b = _a.text, text = _b === void 0 ? \"\" : _b, _c = _a.disabled, disabled = _c === void 0 ? false : _c, onClick = _a.onClick;\n return (_jsx(Button, { type: \"button\", disabled: disabled, minimal: true, intent: Intent.WARNING, onClick: onClick, rightIcon: IconNames.RESET, text: text }));\n};\n","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { Button, Intent } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nexport var UndoButton = function (_a) {\n var isSaving = _a.isSaving, _b = _a.text, text = _b === void 0 ? \"\" : _b, _c = _a.disabled, disabled = _c === void 0 ? false : _c, onClick = _a.onClick, hidden = _a.hidden;\n if (isSaving) {\n return null;\n }\n return (_jsx(Button, { type: \"button\", disabled: disabled, minimal: true, intent: Intent.DANGER, onClick: onClick, rightIcon: IconNames.Undo, text: text, hidden: hidden }));\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { FormGroup } from \"@blueprintjs/core\";\nimport { SignatureComponent } from \"@syncfusion/ej2-react-inputs\";\nimport { ClearButton } from \"../../../Buttons/ClearButton\";\nimport { UndoButton } from \"../../../Buttons/UndoButton\";\nimport { FormFieldErrorContainer } from \"../../CoreFields/FieldError/FormFieldErrorContainer\";\nimport { FieldLabel } from \"../../CoreFields/FieldLabel/FieldLabel\";\nimport { useSignatureField } from \"./useSignatureField\";\nimport { signaturePNGBackground } from \"./utils\";\nvar SignatureField = function (props) {\n var _a = useSignatureField(props), signatureComponent = _a.signatureComponent, localDisabled = _a.localDisabled, setLocalDisabled = _a.setLocalDisabled, undoDisabled = _a.undoDisabled, setUndoDisabled = _a.setUndoDisabled, clearDisabled = _a.clearDisabled, setClearDisabled = _a.setClearDisabled, submitValue = _a.submitValue, getValue = _a.getValue;\n return (_jsxs(\"div\", { className: \"ucl-special-input-signature-field-container\", children: [_jsxs(FormGroup, { className: \"\".concat(props.isRequired && !signatureComponent.current\n ? \"has-required-background signature-input-field\"\n : \"base-field signature-input-field\"), children: [_jsxs(\"section\", { className: \"signature-action-button-section\", children: [props.label && (_jsx(FieldLabel, __assign({ labelName: props.label, tooltipDescription: props.description, fieldProps: __assign(__assign({}, props), { value: getValue() }) }, props.labelProps))), _jsx(UndoButton, { text: \"Undo\", disabled: localDisabled || undoDisabled, onClick: function () {\n if (signatureComponent.current) {\n // We need to wait until the new images is loaded on the canvas, unfortunately, we don't have a way to\n // attach an event to the library on that specific section.\n signatureComponent.current.undo();\n setLocalDisabled(true);\n setTimeout(function () {\n setLocalDisabled(false);\n submitValue();\n }, 300);\n }\n } }), _jsx(ClearButton, { text: \"Clear\", disabled: localDisabled || clearDisabled, onClick: function () { var _a; return (_a = signatureComponent.current) === null || _a === void 0 ? void 0 : _a.clear(); } })] }), _jsx(SignatureComponent, { disabled: localDisabled, ref: signatureComponent, backgroundImage: signaturePNGBackground, saveWithBackground: false, change: function () {\n var _a, _b;\n setUndoDisabled(!((_a = signatureComponent.current) === null || _a === void 0 ? void 0 : _a.canUndo()));\n setClearDisabled((_b = signatureComponent.current) === null || _b === void 0 ? void 0 : _b.isEmpty());\n submitValue();\n } })] }), props.errorMessages && (_jsx(FormFieldErrorContainer, { errorMessages: props.errorMessages }))] }));\n};\nexport default SignatureField;\n","import { useEffect, useRef, useState } from \"react\";\n/**Hooks for Text Field*/\nexport var useSignatureField = function (props) {\n var _a = useState(props.disabled), localDisabled = _a[0], setLocalDisabled = _a[1];\n var _b = useState(true), undoDisabled = _b[0], setUndoDisabled = _b[1];\n var _c = useState(false), clearDisabled = _c[0], setClearDisabled = _c[1];\n var signatureComponent = useRef(null);\n useEffect(function () {\n var _a;\n (_a = signatureComponent.current) === null || _a === void 0 ? void 0 : _a.load(props.value || \"\");\n }, []);\n useEffect(function () {\n var _a, _b;\n setLocalDisabled(props.disabled);\n setUndoDisabled(!((_a = signatureComponent.current) === null || _a === void 0 ? void 0 : _a.canUndo()));\n setClearDisabled((_b = signatureComponent.current) === null || _b === void 0 ? void 0 : _b.isEmpty());\n }, [props.disabled]);\n var getValue = function () {\n var _a;\n if (!signatureComponent.current) {\n return null;\n }\n return ((_a = signatureComponent === null || signatureComponent === void 0 ? void 0 : signatureComponent.current) === null || _a === void 0 ? void 0 : _a.isEmpty())\n ? null\n : signatureComponent.current.getSignature();\n };\n var submitValue = function () {\n if (signatureComponent.current) {\n props.onSubmit && props.onSubmit(getValue());\n }\n };\n return {\n signatureComponent: signatureComponent,\n localDisabled: localDisabled,\n setLocalDisabled: setLocalDisabled,\n undoDisabled: undoDisabled,\n setUndoDisabled: setUndoDisabled,\n clearDisabled: clearDisabled,\n setClearDisabled: setClearDisabled,\n submitValue: submitValue,\n getValue: getValue,\n };\n};\n","export var signaturePNGBackground = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABRQAAAC0CAYAAADlwqChAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDkuMC1jMDAwIDc5LjE3MWMyN2ZhYiwgMjAyMi8wOC8xNi0yMjozNTo0MSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDphYjg5YTZmOS1jMmNjLTdjNDItOGU0Zi0yMjk1YmI3NGQ3MzQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NUM0NjdFMEVDMkFGMTFFREI5RkZDM0YzNjQ5OUY2MTYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NUM0NjdFMERDMkFGMTFFREI5RkZDM0YzNjQ5OUY2MTYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDI0LjAgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6YWI4OWE2ZjktYzJjYy03YzQyLThlNGYtMjI5NWJiNzRkNzM0IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOmFiODlhNmY5LWMyY2MtN2M0Mi04ZTRmLTIyOTViYjc0ZDczNCIv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\";\n","import React, { useEffect } from \"react\";\nexport var useEnumRadioField = function (props) {\n var _a = React.useState(props.value), localValue = _a[0], setLocalValue = _a[1];\n useEffect(function () {\n setLocalValue(props.value);\n }, [props.value]);\n return { localValue: localValue, setLocalValue: setLocalValue };\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { FormGroup, RadioGroup } from \"@blueprintjs/core\";\nimport { FieldLabel } from \"../../CoreFields/FieldLabel/FieldLabel\";\nimport { FormFieldErrorContainer } from \"../../CoreFields/FieldError/FormFieldErrorContainer\";\nimport { useEnumRadioField } from \"./useEnumRadioField\";\nvar EnumRadioField = function (props) {\n var _a = useEnumRadioField(props), localValue = _a.localValue, setLocalValue = _a.setLocalValue;\n return (_jsx(\"div\", { className: \"ucl-base-input-radio-field-container\", children: _jsxs(FormGroup, { className: \"\".concat(props.isRequired && !localValue && localValue !== 0\n ? \"has-required-background\"\n : \"base-field\"), children: [props.label && (_jsx(FieldLabel, __assign({ labelName: props.label, tooltipDescription: props.description, fieldProps: __assign(__assign({}, props), { value: localValue }) }, props.labelProps))), _jsx(RadioGroup, { disabled: props.disabled, onChange: function (e) {\n setLocalValue(Number(e.currentTarget.value));\n props.onSubmit && props.onSubmit(Number(e.currentTarget.value));\n }, selectedValue: localValue, options: (props.optionValues || [])\n .filter(function (option) { return option.value; })\n .map(function (option, idx) { return ({\n key: idx,\n label: option.label,\n value: Number(option.value),\n }); }), inline: true }), props.errorMessages && (_jsx(FormFieldErrorContainer, { errorMessages: props.errorMessages }))] }) }));\n};\nexport default EnumRadioField;\n","/* eslint-disable valid-jsdoc, jsdoc/require-jsdoc, jsdoc/require-returns, jsdoc/require-param */\n/**\n * MaskedTextBox base module\n */\nimport { EventHandler, isNullOrUndefined, merge, attributes, addClass, removeClass, Browser, extend } from '@syncfusion/ej2-base';\nimport { Input } from '../../input/input';\nvar ERROR = 'e-error';\nvar INPUTGROUP = 'e-input-group';\nvar FLOATINPUT = 'e-float-input';\nvar UTILMASK = 'e-utility-mask';\nvar TOPLABEL = 'e-label-top';\nvar BOTTOMLABEL = 'e-label-bottom';\n/**\n * @hidden\n * Built-in masking elements collection.\n */\nexport var regularExpressions = {\n '0': '[0-9]',\n '9': '[0-9 ]',\n '#': '[0-9 +-]',\n 'L': '[A-Za-z]',\n '?': '[A-Za-z ]',\n '&': '[^\\x7f ]+',\n 'C': '[^\\x7f]+',\n 'A': '[A-Za-z0-9]',\n 'a': '[A-Za-z0-9 ]'\n};\n/**\n * Generate required masking elements to the MaskedTextBox from user mask input.\n *\n * @hidden\n */\nexport function createMask() {\n attributes(this.element, {\n 'role': 'textbox', 'autocomplete': 'off', 'autocapitalize': 'off',\n 'spellcheck': 'false', 'aria-live': 'assertive'\n });\n if (this.mask) {\n var splitMask = this.mask.split(']');\n for (var i = 0; i < splitMask.length; i++) {\n if (splitMask[i][splitMask[i].length - 1] === '\\\\') {\n splitMask[i] = splitMask[i] + ']';\n var splitInnerMask = splitMask[i].split('[');\n for (var j = 0; j < splitInnerMask.length; j++) {\n if (splitInnerMask[j][splitInnerMask[j].length - 1] === '\\\\') {\n splitInnerMask[j] = splitInnerMask[j] + '[';\n }\n pushIntoRegExpCollec.call(this, splitInnerMask[j]);\n }\n }\n else {\n var splitInnerMask = splitMask[i].split('[');\n if (splitInnerMask.length > 1) {\n var chkSpace = false;\n for (var j = 0; j < splitInnerMask.length; j++) {\n if (splitInnerMask[j] === '\\\\') {\n this.customRegExpCollec.push('[');\n this.hiddenMask += splitInnerMask[j] + '[';\n }\n else if (splitInnerMask[j] === '') {\n chkSpace = true;\n }\n else if ((splitInnerMask[j] !== '' && chkSpace) || j === splitInnerMask.length - 1) {\n this.customRegExpCollec.push('[' + splitInnerMask[j] + ']');\n this.hiddenMask += this.promptChar;\n chkSpace = false;\n }\n else {\n pushIntoRegExpCollec.call(this, splitInnerMask[j]);\n }\n }\n }\n else {\n pushIntoRegExpCollec.call(this, splitInnerMask[0]);\n }\n }\n }\n this.escapeMaskValue = this.hiddenMask;\n this.promptMask = this.hiddenMask.replace(/[09?LCAa#&]/g, this.promptChar);\n if (!isNullOrUndefined(this.customCharacters)) {\n for (var i = 0; i < this.promptMask.length; i++) {\n if (!isNullOrUndefined(this.customCharacters[this.promptMask[i]])) {\n /* eslint-disable-next-line security/detect-non-literal-regexp */\n this.promptMask = this.promptMask.replace(new RegExp(this.promptMask[i], 'g'), this.promptChar);\n }\n }\n }\n var escapeNumber = 0;\n if (this.hiddenMask.match(new RegExp(/\\\\/))) {\n for (var i = 0; i < this.hiddenMask.length; i++) {\n var j = 0;\n if (i >= 1) {\n j = i;\n }\n escapeNumber = this.hiddenMask.length - this.promptMask.length;\n j = j - escapeNumber;\n if ((i > 0 && this.hiddenMask[i - 1] !== '\\\\') && (this.hiddenMask[i] === '>' ||\n this.hiddenMask[i] === '<' || this.hiddenMask[i] === '|')) {\n this.promptMask = this.promptMask.substring(0, j) +\n this.promptMask.substring((i + 1) - escapeNumber, this.promptMask.length);\n this.escapeMaskValue = this.escapeMaskValue.substring(0, j) +\n this.escapeMaskValue.substring((i + 1) - escapeNumber, this.escapeMaskValue.length);\n }\n if (this.hiddenMask[i] === '\\\\') {\n this.promptMask = this.promptMask.substring(0, j) + this.hiddenMask[i + 1] +\n this.promptMask.substring((i + 2) - escapeNumber, this.promptMask.length);\n this.escapeMaskValue = this.escapeMaskValue.substring(0, j) + this.escapeMaskValue[i + 1] +\n this.escapeMaskValue.substring((i + 2) - escapeNumber, this.escapeMaskValue.length);\n }\n }\n }\n else {\n this.promptMask = this.promptMask.replace(/[>|<]/g, '');\n this.escapeMaskValue = this.hiddenMask.replace(/[>|<]/g, '');\n }\n attributes(this.element, { 'aria-invalid': 'false' });\n }\n}\n/**\n * Apply mask ability with masking elements to the MaskedTextBox.\n *\n * @hidden\n */\nexport function applyMask() {\n setElementValue.call(this, this.promptMask);\n setMaskValue.call(this, this.value);\n}\n/**\n * To wire required events to the MaskedTextBox.\n *\n * @hidden\n */\nexport function wireEvents() {\n EventHandler.add(this.element, 'keydown', maskInputKeyDownHandler, this);\n EventHandler.add(this.element, 'keypress', maskInputKeyPressHandler, this);\n EventHandler.add(this.element, 'keyup', maskInputKeyUpHandler, this);\n EventHandler.add(this.element, 'input', maskInputHandler, this);\n EventHandler.add(this.element, 'focus', maskInputFocusHandler, this);\n EventHandler.add(this.element, 'blur', maskInputBlurHandler, this);\n EventHandler.add(this.element, 'paste', maskInputPasteHandler, this);\n EventHandler.add(this.element, 'cut', maskInputCutHandler, this);\n EventHandler.add(this.element, 'drop', maskInputDropHandler, this);\n EventHandler.add(this.element, 'mousedown', maskInputMouseDownHandler, this);\n EventHandler.add(this.element, 'mouseup', maskInputMouseUpHandler, this);\n if (this.enabled) {\n bindClearEvent.call(this);\n if (this.formElement) {\n EventHandler.add(this.formElement, 'reset', resetFormHandler, this);\n }\n }\n}\n/**\n * To unwire events attached to the MaskedTextBox.\n *\n * @hidden\n */\nexport function unwireEvents() {\n EventHandler.remove(this.element, 'keydown', maskInputKeyDownHandler);\n EventHandler.remove(this.element, 'keypress', maskInputKeyPressHandler);\n EventHandler.remove(this.element, 'keyup', maskInputKeyUpHandler);\n EventHandler.remove(this.element, 'input', maskInputHandler);\n EventHandler.remove(this.element, 'focus', maskInputFocusHandler);\n EventHandler.remove(this.element, 'blur', maskInputBlurHandler);\n EventHandler.remove(this.element, 'paste', maskInputPasteHandler);\n EventHandler.remove(this.element, 'cut', maskInputCutHandler);\n EventHandler.remove(this.element, 'mousedown', maskInputMouseDownHandler);\n EventHandler.remove(this.element, 'mouseup', maskInputMouseUpHandler);\n if (this.formElement) {\n EventHandler.remove(this.formElement, 'reset', resetFormHandler);\n }\n}\n/**\n * To bind required events to the MaskedTextBox clearButton.\n *\n * @hidden\n */\nexport function bindClearEvent() {\n if (this.showClearButton) {\n EventHandler.add(this.inputObj.clearButton, 'mousedown touchstart', resetHandler, this);\n }\n}\nfunction resetHandler(e) {\n e.preventDefault();\n if (!this.inputObj.clearButton.classList.contains('e-clear-icon-hide') || (this.inputObj.container.classList.contains('e-static-clear'))) {\n clear.call(this, e);\n this.value = '';\n }\n}\nfunction clear(event) {\n var value = this.element.value;\n setElementValue.call(this, this.promptMask);\n this.redoCollec.unshift({\n value: this.promptMask, startIndex: this.element.selectionStart, endIndex: this.element.selectionEnd\n });\n triggerMaskChangeEvent.call(this, event, value);\n this.element.setSelectionRange(0, 0);\n}\nfunction resetFormHandler() {\n if (this.element.tagName === 'EJS-MASKEDTEXTBOX') {\n setElementValue.call(this, this.promptMask);\n }\n else {\n this.value = this.initInputValue;\n }\n}\n/**\n * To get masked value from the MaskedTextBox.\n *\n * @hidden\n */\nexport function unstrippedValue(element) {\n return element.value;\n}\n/**\n * To extract raw value from the MaskedTextBox.\n *\n * @hidden\n */\nexport function strippedValue(element, maskValues) {\n var value = '';\n var k = 0;\n var checkMask = false;\n var maskValue = (!isNullOrUndefined(maskValues)) ? maskValues : (!isNullOrUndefined(element) &&\n !isNullOrUndefined(this)) ? element.value : maskValues;\n if (maskValue !== this.promptMask) {\n for (var i = 0; i < this.customRegExpCollec.length; i++) {\n if (checkMask) {\n checkMask = false;\n }\n if (this.customRegExpCollec[k] === '>' || this.customRegExpCollec[k] === '<' ||\n this.customRegExpCollec[k] === '|' || this.customRegExpCollec[k] === '\\\\') {\n --i;\n checkMask = true;\n }\n if (!checkMask) {\n if ((maskValue[i] !== this.promptChar) && (!isNullOrUndefined(this.customRegExpCollec[k]) &&\n ((this._callPasteHandler || !isNullOrUndefined(this.regExpCollec[this.customRegExpCollec[k]])) ||\n (this.customRegExpCollec[k].length > 2 && this.customRegExpCollec[k][0] === '[' &&\n this.customRegExpCollec[k][this.customRegExpCollec[k].length - 1] === ']') ||\n (!isNullOrUndefined(this.customCharacters) &&\n (!isNullOrUndefined(this.customCharacters[this.customRegExpCollec[k]]))))) && (maskValue !== '')) {\n value += maskValue[i];\n }\n }\n ++k;\n }\n }\n if (this.mask === null || this.mask === '' && this.value !== undefined) {\n value = maskValue;\n }\n return value;\n}\nfunction pushIntoRegExpCollec(value) {\n for (var k = 0; k < value.length; k++) {\n this.hiddenMask += value[k];\n if (value[k] !== '\\\\') {\n this.customRegExpCollec.push(value[k]);\n }\n }\n}\nexport function maskInputMouseDownHandler() {\n this.isClicked = true;\n}\nexport function maskInputMouseUpHandler() {\n this.isClicked = false;\n}\nexport function maskInputFocusHandler(event) {\n var _this = this;\n var inputElement = this.element;\n var startIndex = 0;\n var modelValue = strippedValue.call(this, inputElement);\n var toAllowForward = false;\n var toAllowBackward = false;\n var eventArgs = {\n selectionStart: inputElement.selectionStart,\n event: event,\n value: this.value,\n maskedValue: inputElement.value,\n container: !isNullOrUndefined(this.inputObj) ? this.inputObj.container : this.inputObj,\n selectionEnd: inputElement.selectionEnd\n };\n if (!this.isClicked) {\n triggerFocus.call(this, eventArgs, inputElement);\n }\n if (this.mask) {\n if (!(!(modelValue === null || modelValue === '') || this.floatLabelType === 'Always' ||\n this.placeholder === null || this.placeholder === '')) {\n inputElement.value = this.promptMask;\n }\n setTimeout(function () {\n if (inputElement.selectionStart === _this.promptMask.length ||\n inputElement.value[inputElement.selectionStart] === _this.promptChar) {\n toAllowForward = true;\n }\n else {\n for (var i = inputElement.selectionStart; i < _this.promptMask.length; i++) {\n if (inputElement.value[i] !== _this.promptChar) {\n if ((inputElement.value[i] !== _this.promptMask[i])) {\n toAllowForward = false;\n break;\n }\n }\n else {\n toAllowForward = true;\n break;\n }\n }\n }\n });\n setTimeout(function () {\n var backSelectionStart = inputElement.selectionStart - 1;\n if (backSelectionStart === _this.promptMask.length - 1 ||\n inputElement.value[backSelectionStart] === _this.promptChar) {\n toAllowBackward = true;\n }\n else {\n for (var i = backSelectionStart; i >= 0; i--) {\n if (inputElement.value[i] !== _this.promptChar) {\n if ((inputElement.value[i] !== _this.promptMask[i])) {\n toAllowBackward = false;\n break;\n }\n }\n else {\n toAllowBackward = true;\n break;\n }\n }\n }\n });\n if ((this.isClicked || (this.floatLabelType !== 'Always' &&\n ((modelValue === null || modelValue === '') &&\n (this.placeholder !== null && this.placeholder !== ''))))) {\n for (startIndex = 0; startIndex < this.promptMask.length; startIndex++) {\n if (inputElement.value[startIndex] === this.promptChar) {\n setTimeout(function () {\n if (toAllowForward || toAllowBackward) {\n inputElement.selectionEnd = startIndex;\n inputElement.selectionStart = startIndex;\n }\n eventArgs = {\n selectionStart: inputElement.selectionStart,\n event: event,\n value: _this.value,\n maskedValue: inputElement.value,\n container: !isNullOrUndefined(_this.inputObj) ? _this.inputObj.container : _this.inputObj,\n selectionEnd: inputElement.selectionEnd\n };\n triggerFocus.call(_this, eventArgs, inputElement);\n }, 110);\n break;\n }\n }\n if (isNullOrUndefined(inputElement.value.match(escapeRegExp(this.promptChar)))) {\n eventArgs = {\n selectionStart: inputElement.selectionStart,\n event: event,\n value: this.value,\n maskedValue: inputElement.value,\n container: !isNullOrUndefined(this.inputObj) ? this.inputObj.container : this.inputObj,\n selectionEnd: inputElement.selectionEnd\n };\n triggerFocus.call(this, eventArgs, inputElement);\n }\n this.isClicked = false;\n }\n }\n}\nexport function triggerFocus(eventArgs, inputElement) {\n this.trigger('focus', eventArgs, function (eventArgs) {\n inputElement.selectionStart = eventArgs.selectionStart;\n inputElement.selectionEnd = eventArgs.selectionEnd;\n });\n}\nexport function escapeRegExp(text) {\n return !isNullOrUndefined(text) ? text.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&') : text;\n}\nexport function maskInputBlurHandler(event) {\n this.blurEventArgs = {\n event: event,\n value: this.value,\n maskedValue: this.element.value,\n container: !isNullOrUndefined(this.inputObj) ? this.inputObj.container : this.inputObj\n };\n this.trigger('blur', this.blurEventArgs);\n if (this.mask) {\n this.isFocus = false;\n if (this.placeholder && this.element.value === this.promptMask && this.floatLabelType !== 'Always') {\n setElementValue.call(this, '');\n var labelElement = this.element.parentNode.querySelector('.e-float-text');\n if (this.floatLabelType === 'Auto' && !isNullOrUndefined(labelElement) && labelElement.classList.contains(TOPLABEL)) {\n removeClass([labelElement], TOPLABEL);\n }\n }\n }\n}\nfunction maskInputPasteHandler(event) {\n var _this = this;\n if (this.mask && !this.readonly) {\n var sIndex_1 = this.element.selectionStart;\n var eIndex_1 = this.element.selectionEnd;\n var oldValue_1 = this.element.value;\n setElementValue.call(this, '');\n this._callPasteHandler = true;\n setTimeout(function () {\n var value = _this.element.value.replace(/ /g, '');\n if (_this.redoCollec.length > 0 && _this.redoCollec[0].value === _this.element.value) {\n value = strippedValue.call(_this, _this.element);\n }\n setElementValue.call(_this, oldValue_1);\n _this.element.selectionStart = sIndex_1;\n _this.element.selectionEnd = eIndex_1;\n var i = 0;\n _this.maskKeyPress = true;\n do {\n validateValue.call(_this, value[i], false, null);\n ++i;\n } while (i < value.length);\n _this.maskKeyPress = false;\n _this._callPasteHandler = false;\n if (_this.element.value === oldValue_1) {\n var i_1 = 0;\n _this.maskKeyPress = true;\n do {\n validateValue.call(_this, value[i_1], false, null);\n ++i_1;\n } while (i_1 < value.length);\n _this.maskKeyPress = false;\n }\n else {\n triggerMaskChangeEvent.call(_this, event, oldValue_1);\n }\n }, 1);\n }\n}\nfunction maskInputCutHandler(event) {\n var _this = this;\n if (this.mask && !this.readonly) {\n var preValue_1 = this.element.value;\n var sIndex_2 = this.element.selectionStart;\n var eIndex = this.element.selectionEnd;\n this.undoCollec.push({ value: this.element.value, startIndex: this.element.selectionStart, endIndex: this.element.selectionEnd });\n var value_1 = this.element.value.substring(0, sIndex_2) + this.promptMask.substring(sIndex_2, eIndex) +\n this.element.value.substring(eIndex);\n setTimeout(function () {\n setElementValue.call(_this, value_1);\n _this.element.selectionStart = _this.element.selectionEnd = sIndex_2;\n if (_this.element.value !== preValue_1) {\n triggerMaskChangeEvent.call(_this, event, null);\n }\n }, 0);\n }\n}\nexport function maskInputDropHandler(event) {\n event.preventDefault();\n}\nfunction maskInputHandler(event) {\n if (Browser.isIE === true && this.element.value === '' && this.floatLabelType === 'Never') {\n return;\n }\n var eventArgs = { ctrlKey: false, keyCode: 229 };\n extend(event, eventArgs);\n if (this.mask) {\n if (this.element.value === '') {\n this.redoCollec.unshift({\n value: this.promptMask, startIndex: this.element.selectionStart, endIndex: this.element.selectionEnd\n });\n }\n if (this.element.value.length === 1) {\n this.element.value = this.element.value + this.promptMask;\n this.element.setSelectionRange(1, 1);\n }\n if (!this._callPasteHandler) {\n removeMaskInputValues.call(this, event);\n }\n if (this.element.value.length > this.promptMask.length) {\n var startIndex = this.element.selectionStart;\n var addedValues = this.element.value.length - this.promptMask.length;\n var value = this.element.value.substring(startIndex - addedValues, startIndex);\n this.maskKeyPress = false;\n var i = 0;\n do {\n validateValue.call(this, value[i], event.ctrlKey, event);\n ++i;\n } while (i < value.length);\n if (this.element.value !== this.preEleVal) {\n triggerMaskChangeEvent.call(this, event, null);\n }\n }\n var val = strippedValue.call(this, this.element);\n this.prevValue = val;\n this.value = val;\n if (val === '') {\n setElementValue.call(this, this.promptMask);\n this.element.setSelectionRange(0, 0);\n }\n }\n}\nfunction maskInputKeyDownHandler(event) {\n if (this.mask && !this.readonly) {\n if (event.keyCode !== 229) {\n if (event.ctrlKey && (event.keyCode === 89 || event.keyCode === 90)) {\n event.preventDefault();\n }\n removeMaskInputValues.call(this, event);\n }\n var startValue = this.element.value;\n if (event.ctrlKey && (event.keyCode === 89 || event.keyCode === 90)) {\n var collec = void 0;\n if (event.keyCode === 90 && this.undoCollec.length > 0 && startValue !== this.undoCollec[this.undoCollec.length - 1].value) {\n collec = this.undoCollec[this.undoCollec.length - 1];\n this.redoCollec.unshift({\n value: this.element.value, startIndex: this.element.selectionStart,\n endIndex: this.element.selectionEnd\n });\n setElementValue.call(this, collec.value);\n this.element.selectionStart = collec.startIndex;\n this.element.selectionEnd = collec.endIndex;\n this.undoCollec.splice(this.undoCollec.length - 1, 1);\n }\n else if (event.keyCode === 89 && this.redoCollec.length > 0 && startValue !== this.redoCollec[0].value) {\n collec = this.redoCollec[0];\n this.undoCollec.push({\n value: this.element.value, startIndex: this.element.selectionStart,\n endIndex: this.element.selectionEnd\n });\n setElementValue.call(this, collec.value);\n this.element.selectionStart = collec.startIndex;\n this.element.selectionEnd = collec.endIndex;\n this.redoCollec.splice(0, 1);\n }\n }\n }\n}\nexport function mobileRemoveFunction() {\n var collec;\n var sIndex = this.element.selectionStart;\n var eIndex = this.element.selectionEnd;\n if (this.redoCollec.length > 0) {\n collec = this.redoCollec[0];\n setElementValue.call(this, collec.value);\n if ((collec.startIndex - sIndex) === 1) {\n this.element.selectionStart = collec.startIndex;\n this.element.selectionEnd = collec.endIndex;\n }\n else {\n this.element.selectionStart = sIndex + 1;\n this.element.selectionEnd = eIndex + 1;\n }\n }\n else {\n setElementValue.call(this, this.promptMask);\n this.element.selectionStart = this.element.selectionEnd = sIndex;\n }\n}\nfunction autoFillMaskInputValues(isRemove, oldEventVal, event) {\n if (event.type === 'input') {\n isRemove = false;\n oldEventVal = this.element.value;\n setElementValue.call(this, this.promptMask);\n setMaskValue.call(this, oldEventVal);\n }\n return isRemove;\n}\nfunction removeMaskInputValues(event) {\n var isRemove = false;\n var oldEventVal;\n var isDeleted = false;\n if (this.element.value.length < this.promptMask.length) {\n isRemove = true;\n oldEventVal = this.element.value;\n isRemove = autoFillMaskInputValues.call(this, isRemove, oldEventVal, event);\n mobileRemoveFunction.call(this);\n }\n if (this.element.value.length >= this.promptMask.length && event.type === 'input') {\n isRemove = autoFillMaskInputValues.call(this, isRemove, oldEventVal, event);\n }\n var initStartIndex = this.element.selectionStart;\n var initEndIndex = this.element.selectionEnd;\n var startIndex = this.element.selectionStart;\n var endIndex = this.element.selectionEnd;\n var maskValue = this.hiddenMask.replace(/[>|\\\\<]/g, '');\n var curMask = maskValue[startIndex - 1];\n var deleteEndIndex = this.element.selectionEnd;\n if (isRemove || event.keyCode === 8 || event.keyCode === 46) {\n this.undoCollec.push({ value: this.element.value, startIndex: this.element.selectionStart, endIndex: endIndex });\n var multipleDel = false;\n var preValue = this.element.value;\n if (startIndex > 0 || ((event.keyCode === 8 || event.keyCode === 46) && startIndex < this.element.value.length\n && ((this.element.selectionEnd - startIndex) !== this.element.value.length))) {\n var index = startIndex;\n if (startIndex !== endIndex) {\n startIndex = endIndex;\n if (event.keyCode === 46) {\n multipleDel = true;\n }\n }\n else if (event.keyCode === 46) {\n ++index;\n }\n else {\n --index;\n }\n for (var k = startIndex; (event.keyCode === 8 || isRemove || multipleDel) ? k > index : k < index; (event.keyCode === 8 || isRemove || multipleDel) ? k-- : k++) {\n for (var i = startIndex; (event.keyCode === 8 || isRemove || multipleDel) ? i > 0 : i < this.element.value.length; (event.keyCode === 8 || isRemove || multipleDel) ? i-- : i++) {\n var sIndex = void 0;\n if (((event.keyCode === 8 || multipleDel) && ((initStartIndex !== initEndIndex && initStartIndex !== startIndex) ||\n (initStartIndex === initEndIndex))) || isRemove) {\n curMask = maskValue[i - 1];\n sIndex = startIndex - 1;\n }\n else {\n curMask = maskValue[i];\n sIndex = startIndex;\n ++startIndex;\n }\n var oldValue = this.element.value[sIndex];\n if ((isNullOrUndefined(this.regExpCollec[\"\" + curMask]) && (!isNullOrUndefined(this.customCharacters)\n && isNullOrUndefined(this.customCharacters[\"\" + curMask]))\n && ((this.hiddenMask[sIndex] !== this.promptChar && this.customRegExpCollec[sIndex][0] !== '['\n && this.customRegExpCollec[sIndex][this.customRegExpCollec[sIndex].length - 1] !== ']')))\n || (this.promptMask[sIndex] !== this.promptChar && isNullOrUndefined(this.customCharacters))) {\n this.element.selectionStart = this.element.selectionEnd = sIndex;\n event.preventDefault();\n if (event.keyCode === 46 && !multipleDel) {\n ++this.element.selectionStart;\n }\n }\n else {\n var value = this.element.value;\n var prompt_1 = this.promptChar;\n var elementValue = value.substring(0, sIndex) + prompt_1 + value.substring(startIndex, value.length);\n setElementValue.call(this, elementValue);\n event.preventDefault();\n if (event.keyCode === 46 && !multipleDel) {\n sIndex++;\n }\n this.element.selectionStart = this.element.selectionEnd = sIndex;\n isDeleted = true;\n }\n startIndex = this.element.selectionStart;\n if ((!isDeleted && event.keyCode === 8) || multipleDel || (!isDeleted && !(event.keyCode === 46))) {\n sIndex = startIndex - 1;\n }\n else {\n sIndex = startIndex;\n isDeleted = false;\n }\n oldValue = this.element.value[sIndex];\n if (((initStartIndex !== initEndIndex) && (this.element.selectionStart === initStartIndex))\n || (this.promptMask[sIndex] === this.promptChar) || ((oldValue !== this.promptMask[sIndex]) &&\n (this.promptMask[sIndex] !== this.promptChar) && !isNullOrUndefined(this.customCharacters))) {\n break;\n }\n }\n }\n }\n if (event.keyCode === 46 && multipleDel && isDeleted) {\n this.element.selectionStart = this.element.selectionEnd = deleteEndIndex;\n }\n if (this.element.selectionStart === 0 && (this.element.selectionEnd === this.element.value.length)) {\n setElementValue.call(this, this.promptMask);\n event.preventDefault();\n this.element.selectionStart = this.element.selectionEnd = startIndex;\n }\n this.redoCollec.unshift({\n value: this.element.value, startIndex: this.element.selectionStart,\n endIndex: this.element.selectionEnd\n });\n if (this.element.value !== preValue) {\n triggerMaskChangeEvent.call(this, event, oldEventVal);\n }\n }\n}\nfunction maskInputKeyPressHandler(event) {\n if (this.mask && !this.readonly) {\n var oldValue = this.element.value;\n if (!(event.ctrlKey || event.metaKey) || ((event.ctrlKey || event.metaKey) && event.code !== 'KeyA' && event.code !== 'KeyY'\n && event.code !== 'KeyZ' && event.code !== 'KeyX' && event.code !== 'KeyC' && event.code !== 'KeyV')) {\n this.maskKeyPress = true;\n var key = event.key;\n if (key === 'Spacebar') {\n key = String.fromCharCode(event.keyCode);\n }\n if (!key) {\n this.isIosInvalid = true;\n validateValue.call(this, String.fromCharCode(event.keyCode), event.ctrlKey, event);\n event.preventDefault();\n this.isIosInvalid = false;\n }\n else if (key && key.length === 1) {\n validateValue.call(this, key, event.ctrlKey, event);\n event.preventDefault();\n }\n if (event.keyCode === 32 && key === ' ' && this.promptChar === ' ') {\n this.element.selectionStart = this.element.selectionEnd = this.element.selectionStart - key.length;\n }\n }\n if (this.element.value !== oldValue) {\n triggerMaskChangeEvent.call(this, event, oldValue);\n }\n }\n}\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction triggerMaskChangeEvent(event, oldValue) {\n var prevOnChange = this.isProtectedOnChange;\n if (!isNullOrUndefined(this.changeEventArgs) && !this.isInitial) {\n var eventArgs = {};\n this.changeEventArgs = { value: this.element.value, maskedValue: this.element.value, isInteraction: false, isInteracted: false };\n if (this.mask) {\n this.changeEventArgs.value = strippedValue.call(this, this.element);\n }\n if (!isNullOrUndefined(event)) {\n this.changeEventArgs.isInteracted = true;\n this.changeEventArgs.isInteraction = true;\n this.changeEventArgs.event = event;\n }\n this.isProtectedOnChange = true;\n this.value = this.changeEventArgs.value;\n this.isProtectedOnChange = prevOnChange;\n merge(eventArgs, this.changeEventArgs);\n /* istanbul ignore next */\n if (this.isAngular && this.preventChange) {\n this.preventChange = false;\n }\n else {\n this.trigger('change', eventArgs);\n }\n }\n this.preEleVal = this.element.value;\n this.prevValue = strippedValue.call(this, this.element);\n}\nfunction maskInputKeyUpHandler(event) {\n if (this.mask && !this.readonly) {\n var collec = void 0;\n if (!this.maskKeyPress && event.keyCode === 229) {\n var oldEventVal = void 0;\n if (this.element.value.length === 1) {\n this.element.value = this.element.value + this.promptMask;\n this.element.setSelectionRange(1, 1);\n }\n if (this.element.value.length > this.promptMask.length) {\n var startIndex = this.element.selectionStart;\n var addedValues = this.element.value.length - this.promptMask.length;\n var val_1 = this.element.value.substring(startIndex - addedValues, startIndex);\n if (this.undoCollec.length > 0) {\n collec = this.undoCollec[this.undoCollec.length - 1];\n var startIndex_1 = this.element.selectionStart;\n oldEventVal = collec.value;\n var oldVal = collec.value.substring(startIndex_1 - addedValues, startIndex_1);\n collec = this.redoCollec[0];\n val_1 = val_1.trim();\n var isSpace = Browser.isAndroid && val_1 === '';\n if (!isSpace && oldVal !== val_1 && collec.value.substring(startIndex_1 - addedValues, startIndex_1) !== val_1) {\n validateValue.call(this, val_1, event.ctrlKey, event);\n }\n else if (isSpace) {\n preventUnsupportedValues.call(this, event, startIndex_1 - 1, this.element.selectionEnd - 1, val_1, event.ctrlKey, false);\n }\n }\n else {\n oldEventVal = this.promptMask;\n validateValue.call(this, val_1, event.ctrlKey, event);\n }\n this.maskKeyPress = false;\n triggerMaskChangeEvent.call(this, event, oldEventVal);\n }\n }\n else {\n removeMaskError.call(this);\n }\n var val = strippedValue.call(this, this.element);\n if (!((this.element.selectionStart === 0) && (this.promptMask === this.element.value) && val === '')\n || (val === '' && this.value !== val)) {\n this.prevValue = val;\n this.value = val;\n }\n }\n else {\n triggerMaskChangeEvent.call(this, event);\n }\n if (this.element.selectionStart === 0 && this.element.selectionEnd === 0) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var temp_1 = this.element;\n setTimeout(function () {\n temp_1.setSelectionRange(0, 0);\n }, 0);\n }\n}\nfunction mobileSwipeCheck(key) {\n if (key.length > 1 && ((this.promptMask.length + key.length) < this.element.value.length)) {\n var elementValue = this.redoCollec[0].value.substring(0, this.redoCollec[0].startIndex) + key +\n this.redoCollec[0].value.substring(this.redoCollec[0].startIndex, this.redoCollec[0].value.length);\n setElementValue.call(this, elementValue);\n this.element.selectionStart = this.element.selectionEnd = this.redoCollec[0].startIndex + key.length;\n }\n this.element.selectionStart = this.element.selectionStart - key.length;\n this.element.selectionEnd = this.element.selectionEnd - key.length;\n}\nfunction mobileValidation(key) {\n if (!this.maskKeyPress) {\n mobileSwipeCheck.call(this, key);\n }\n}\nfunction validateValue(key, isCtrlKey, event) {\n mobileValidation.call(this, key);\n if (isNullOrUndefined(this) || isNullOrUndefined(key)) {\n return;\n }\n var startIndex = this.element.selectionStart;\n var initStartIndex = startIndex;\n var curMask;\n var allowText = false;\n var value = this.element.value;\n var eventOldVal;\n var prevSupport = false;\n var isEqualVal = false;\n for (var k = 0; k < key.length; k++) {\n var keyValue = key[k];\n startIndex = this.element.selectionStart;\n if (!this.maskKeyPress && initStartIndex === startIndex) {\n startIndex = startIndex + k;\n }\n if ((!this.maskKeyPress || startIndex < this.promptMask.length)) {\n for (var i = startIndex; i < this.promptMask.length; i++) {\n var maskValue = this.escapeMaskValue;\n curMask = maskValue[startIndex];\n if (this.hiddenMask[startIndex] === '\\\\' && this.hiddenMask[startIndex + 1] === key) {\n isEqualVal = true;\n }\n if ((isNullOrUndefined(this.regExpCollec[\"\" + curMask]) && (isNullOrUndefined(this.customCharacters)\n || (!isNullOrUndefined(this.customCharacters) && isNullOrUndefined(this.customCharacters[\"\" + curMask])))\n && ((this.hiddenMask[startIndex] !== this.promptChar && this.customRegExpCollec[startIndex][0] !== '['\n && this.customRegExpCollec[startIndex][this.customRegExpCollec[startIndex].length - 1] !== ']')))\n || ((this.promptMask[startIndex] !== this.promptChar) && isNullOrUndefined(this.customCharacters))\n || (this.promptChar === curMask && this.escapeMaskValue === this.mask)) {\n this.element.selectionStart = this.element.selectionEnd = startIndex + 1;\n startIndex = this.element.selectionStart;\n curMask = this.hiddenMask[startIndex];\n }\n }\n if (!isNullOrUndefined(this.customCharacters) && !isNullOrUndefined(this.customCharacters[\"\" + curMask])) {\n var customValStr = this.customCharacters[\"\" + curMask];\n var customValArr = customValStr.split(',');\n for (var i = 0; i < customValArr.length; i++) {\n /* eslint-disable-next-line security/detect-non-literal-regexp */\n if (keyValue.match(new RegExp('[' + customValArr[i] + ']'))) {\n allowText = true;\n break;\n }\n }\n /* eslint-disable-next-line security/detect-non-literal-regexp */\n }\n else if (!isNullOrUndefined(this.regExpCollec[\"\" + curMask]) && keyValue.match(new RegExp(this.regExpCollec[\"\" + curMask]))\n && this.promptMask[startIndex] === this.promptChar) {\n allowText = true;\n }\n else if (this.promptMask[startIndex] === this.promptChar && this.customRegExpCollec[startIndex][0] === '['\n && this.customRegExpCollec[startIndex][this.customRegExpCollec[startIndex].length - 1] === ']'\n /* eslint-disable-next-line security/detect-non-literal-regexp */\n && keyValue.match(new RegExp(this.customRegExpCollec[startIndex]))) {\n allowText = true;\n }\n if ((!this.maskKeyPress || startIndex < this.hiddenMask.length) && allowText) {\n if (k === 0) {\n if (this.maskKeyPress) {\n this.undoCollec.push({ value: value, startIndex: startIndex, endIndex: startIndex });\n }\n else {\n var sIndex = this.element.selectionStart;\n var eIndex = this.element.selectionEnd;\n if (this.redoCollec.length > 0) {\n eventOldVal = this.redoCollec[0].value;\n setElementValue.call(this, eventOldVal);\n this.undoCollec.push(this.redoCollec[0]);\n }\n else {\n this.undoCollec.push({ value: this.promptMask, startIndex: startIndex, endIndex: startIndex });\n eventOldVal = this.promptMask;\n setElementValue.call(this, eventOldVal);\n }\n this.element.selectionStart = sIndex;\n this.element.selectionEnd = eIndex;\n }\n }\n startIndex = this.element.selectionStart;\n applySupportedValues.call(this, event, startIndex, keyValue, eventOldVal, isEqualVal);\n prevSupport = true;\n if (k === key.length - 1) {\n this.redoCollec.unshift({\n value: this.element.value, startIndex: this.element.selectionStart, endIndex: this.element.selectionEnd\n });\n }\n allowText = false;\n }\n else {\n startIndex = this.element.selectionStart;\n preventUnsupportedValues.call(this, event, startIndex, initStartIndex, key, isCtrlKey, prevSupport);\n }\n if (k === key.length - 1 && !allowText) {\n if (!Browser.isAndroid || (Browser.isAndroid && startIndex < this.promptMask.length)) {\n this.redoCollec.unshift({\n value: this.element.value, startIndex: this.element.selectionStart, endIndex: this.element.selectionEnd\n });\n }\n }\n }\n else {\n if (key.length === 1 && !isCtrlKey && !isNullOrUndefined(event)) {\n addMaskErrorClass.call(this);\n }\n }\n }\n}\nfunction applySupportedValues(event, startIndex, keyValue, eventOldVal, isEqualVal) {\n if (this.hiddenMask.length > this.promptMask.length) {\n keyValue = changeToLowerUpperCase.call(this, keyValue, this.element.value);\n }\n if (!isEqualVal) {\n var value = this.element.value;\n var elementValue = value.substring(0, startIndex) + keyValue + value.substring(startIndex + 1, value.length);\n setElementValue.call(this, elementValue);\n this.element.selectionStart = this.element.selectionEnd = startIndex + 1;\n }\n}\nfunction preventUnsupportedValues(event, sIdx, idx, key, ctrl, chkSupport) {\n if (!this.maskKeyPress) {\n var value = this.element.value;\n if (sIdx >= this.promptMask.length) {\n setElementValue.call(this, value.substring(0, sIdx));\n }\n else {\n if (idx === sIdx) {\n setElementValue.call(this, value.substring(0, sIdx) + value.substring(sIdx + 1, value.length));\n }\n else {\n if (this.promptMask.length === this.element.value.length) {\n setElementValue.call(this, value.substring(0, sIdx) + value.substring(sIdx, value.length));\n }\n else {\n setElementValue.call(this, value.substring(0, idx) + value.substring(idx + 1, value.length));\n }\n }\n this.element.selectionStart = this.element.selectionEnd = (chkSupport ||\n this.element.value[idx] !== this.promptChar) ? sIdx : idx;\n }\n addMaskErrorClass.call(this);\n }\n if (key.length === 1 && !ctrl && !isNullOrUndefined(event)) {\n addMaskErrorClass.call(this);\n }\n}\nfunction addMaskErrorClass() {\n var _this = this;\n var parentElement = this.element.parentNode;\n var timer = 200;\n if (parentElement.classList.contains(INPUTGROUP) || parentElement.classList.contains(FLOATINPUT)) {\n addClass([parentElement], ERROR);\n }\n else {\n addClass([this.element], ERROR);\n }\n if (this.isIosInvalid === true) {\n timer = 400;\n }\n attributes(this.element, { 'aria-invalid': 'true' });\n setTimeout(function () {\n if (!_this.maskKeyPress) {\n removeMaskError.call(_this);\n }\n }, timer);\n}\nfunction removeMaskError() {\n var parentElement = this.element.parentNode;\n if (!isNullOrUndefined(parentElement)) {\n removeClass([parentElement], ERROR);\n }\n removeClass([this.element], ERROR);\n attributes(this.element, { 'aria-invalid': 'false' });\n}\n/**\n * Validates user input using masking elements '<' , '>' and '|'.\n *\n * @hidden\n */\nfunction changeToLowerUpperCase(key, value) {\n var promptMask;\n var i;\n var curVal = value;\n var caseCount = 0;\n for (i = 0; i < this.hiddenMask.length; i++) {\n if (this.hiddenMask[i] === '\\\\') {\n promptMask = curVal.substring(0, i) + '\\\\' + curVal.substring(i, curVal.length);\n }\n if (this.hiddenMask[i] === '>' || this.hiddenMask[i] === '<' || this.hiddenMask[i] === '|') {\n if (this.hiddenMask[i] !== curVal[i]) {\n promptMask = curVal.substring(0, i) + this.hiddenMask[i] + curVal.substring(i, curVal.length);\n }\n ++caseCount;\n }\n if (promptMask) {\n if (((promptMask[i] === this.promptChar) && (i > this.element.selectionStart)) ||\n (this.element.value.indexOf(this.promptChar) < 0 && (this.element.selectionStart + caseCount) === i)) {\n caseCount = 0;\n break;\n }\n curVal = promptMask;\n }\n }\n while (i >= 0 && promptMask) {\n if (i === 0 || promptMask[i - 1] !== '\\\\') {\n if (promptMask[i] === '>') {\n key = key.toUpperCase();\n break;\n }\n else if (promptMask[i] === '<') {\n key = key.toLowerCase();\n break;\n }\n else if (promptMask[i] === '|') {\n break;\n }\n }\n --i;\n }\n return key;\n}\n/**\n * To set updated values in the MaskedTextBox.\n *\n * @hidden\n */\nexport function setMaskValue(val) {\n if (this.mask && val !== undefined && (this.prevValue === undefined || this.prevValue !== val)) {\n this.maskKeyPress = true;\n setElementValue.call(this, this.promptMask);\n if (val !== '' && !(val === null && this.floatLabelType === 'Never' && this.placeholder)) {\n this.element.selectionStart = 0;\n this.element.selectionEnd = 0;\n }\n if (val !== null) {\n for (var i = 0; i < val.length; i++) {\n validateValue.call(this, val[i], false, null);\n }\n }\n var newVal = strippedValue.call(this, this.element);\n this.prevValue = newVal;\n this.value = newVal;\n triggerMaskChangeEvent.call(this, null, null);\n this.maskKeyPress = false;\n var labelElement = this.element.parentNode.querySelector('.e-float-text');\n if (this.element.value === this.promptMask && this.floatLabelType === 'Auto' && this.placeholder &&\n !isNullOrUndefined(labelElement) && labelElement.classList.contains(TOPLABEL) && !this.isFocus) {\n removeClass([labelElement], TOPLABEL);\n addClass([labelElement], BOTTOMLABEL);\n setElementValue.call(this, '');\n }\n }\n if (this.mask === null || this.mask === '' && this.value !== undefined) {\n setElementValue.call(this, this.value);\n }\n}\n/**\n * To set updated values in the input element.\n *\n * @hidden\n */\nexport function setElementValue(val, element) {\n if (!this.isFocus && this.floatLabelType === 'Auto' && this.placeholder && isNullOrUndefined(this.value)) {\n val = '';\n }\n var value = strippedValue.call(this, (element ? element : this.element), val);\n if (value === null || value === '') {\n Input.setValue(val, (element ? element : this.element), this.floatLabelType, false);\n if (this.showClearButton) {\n this.inputObj.clearButton.classList.add('e-clear-icon-hide');\n }\n }\n else {\n Input.setValue(val, (element ? element : this.element), this.floatLabelType, this.showClearButton);\n }\n}\n/**\n * Provide mask support to input textbox through utility method.\n *\n * @hidden\n */\nexport function maskInput(args) {\n var inputEle = getMaskInput(args);\n applyMask.call(inputEle);\n var val = strippedValue.call(this, this.element);\n this.prevValue = val;\n this.value = val;\n if (args.mask) {\n unwireEvents.call(inputEle);\n wireEvents.call(inputEle);\n }\n}\nfunction getMaskInput(args) {\n addClass([args.element], UTILMASK);\n var inputEle = {\n element: args.element,\n mask: args.mask,\n promptMask: '',\n hiddenMask: '',\n escapeMaskValue: '',\n promptChar: args.promptChar ? (args.promptChar.length > 1) ? args.promptChar = args.promptChar[0]\n : args.promptChar : '_',\n value: args.value ? args.value : null,\n regExpCollec: regularExpressions,\n customRegExpCollec: [],\n customCharacters: args.customCharacters,\n undoCollec: [],\n redoCollec: [],\n maskKeyPress: false,\n prevValue: ''\n };\n createMask.call(inputEle);\n return inputEle;\n}\n/**\n * Gets raw value of the textbox which has been masked through utility method.\n *\n * @hidden\n */\nexport function getVal(args) {\n return strippedValue.call(getUtilMaskEle(args), args.element);\n}\n/**\n * Gets masked value of the textbox which has been masked through utility method.\n *\n * @hidden\n */\nexport function getMaskedVal(args) {\n return unstrippedValue.call(getUtilMaskEle(args), args.element);\n}\nfunction getUtilMaskEle(args) {\n var inputEle;\n if (!isNullOrUndefined(args) && args.element.classList.contains(UTILMASK)) {\n inputEle = getMaskInput(args);\n }\n return inputEle;\n}\n/**\n * Arguments to perform undo and redo functionalities.\n *\n * @hidden\n */\nvar MaskUndo = /** @class */ (function () {\n function MaskUndo() {\n }\n return MaskUndo;\n}());\nexport { MaskUndo };\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nvar maskUndo = new MaskUndo();\n/* eslint-enable valid-jsdoc, jsdoc/require-jsdoc, jsdoc/require-returns, jsdoc/require-param */\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component, Event, Property, NotifyPropertyChanges } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined, formatUnit, getValue, setValue, addClass, detach } from '@syncfusion/ej2-base';\nimport { removeClass, Browser, closest } from '@syncfusion/ej2-base';\nimport { Input } from '../../input/input';\nimport { regularExpressions, createMask, applyMask, wireEvents, unwireEvents, unstrippedValue, strippedValue } from '../base/index';\nimport { setMaskValue, setElementValue, bindClearEvent } from '../base/index';\nvar ROOT = 'e-control-wrapper e-mask';\nvar INPUT = 'e-input';\nvar COMPONENT = 'e-maskedtextbox';\nvar CONTROL = 'e-control';\nvar MASKINPUT_FOCUS = 'e-input-focus';\nvar wrapperAttr = ['title', 'style', 'class'];\n/**\n * The MaskedTextBox allows the user to enter the valid input only based on the provided mask.\n * ```html\n * \n * ```\n * ```typescript\n * \n * ```\n */\nvar MaskedTextBox = /** @class */ (function (_super) {\n __extends(MaskedTextBox, _super);\n /**\n *\n * @param {MaskedTextBoxModel} options - Specifies the MaskedTextBox model.\n * @param {string | HTMLElement | HTMLInputElement} element - Specifies the element to render as component.\n * @private\n */\n function MaskedTextBox(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.initInputValue = '';\n _this.isAngular = false;\n _this.preventChange = false;\n _this.isClicked = false;\n _this.maskOptions = options;\n return _this;\n }\n /**\n * Gets the component name.\n *\n * @returns {string} Returns the component name.\n * @private\n */\n MaskedTextBox.prototype.getModuleName = function () {\n return 'maskedtextbox';\n };\n /**\n * Initializes the event handler\n *\n * @returns {void}\n * @private\n */\n MaskedTextBox.prototype.preRender = function () {\n this.promptMask = '';\n this.hiddenMask = '';\n this.escapeMaskValue = '';\n this.regExpCollec = regularExpressions;\n this.customRegExpCollec = [];\n this.undoCollec = [];\n this.redoCollec = [];\n this.changeEventArgs = {};\n this.focusEventArgs = {};\n this.blurEventArgs = {};\n this.maskKeyPress = false;\n this.isFocus = false;\n this.isInitial = false;\n this.isIosInvalid = false;\n var ejInstance = getValue('ej2_instances', this.element);\n this.cloneElement = this.element.cloneNode(true);\n removeClass([this.cloneElement], [CONTROL, COMPONENT, 'e-lib']);\n this.angularTagName = null;\n this.formElement = closest(this.element, 'form');\n if (this.element.tagName === 'EJS-MASKEDTEXTBOX') {\n this.angularTagName = this.element.tagName;\n var input = this.createElement('input');\n for (var i = 0; i < this.element.attributes.length; i++) {\n input.setAttribute(this.element.attributes[i].nodeName, this.element.attributes[i].nodeValue);\n input.innerHTML = this.element.innerHTML;\n }\n if (this.element.hasAttribute('id')) {\n this.element.removeAttribute('id');\n }\n this.element.classList.remove('e-control', 'e-maskedtextbox');\n this.element.classList.add('e-mask-container');\n this.element.appendChild(input);\n this.element = input;\n setValue('ej2_instances', ejInstance, this.element);\n }\n this.updateHTMLAttrToElement();\n this.checkHtmlAttributes(false);\n if (this.formElement) {\n this.initInputValue = this.value;\n }\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Gets the properties to be maintained in the persisted state.\n *\n * @returns {string}\n */\n MaskedTextBox.prototype.getPersistData = function () {\n var keyEntity = ['value'];\n return this.addOnPersist(keyEntity);\n };\n /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Initializes the component rendering.\n *\n * @returns {void}\n * @private\n */\n MaskedTextBox.prototype.render = function () {\n if (this.element.tagName.toLowerCase() === 'input') {\n if (this.floatLabelType === 'Never') {\n addClass([this.element], INPUT);\n }\n this.createWrapper();\n this.updateHTMLAttrToWrapper();\n if (this.element.name === '') {\n this.element.setAttribute('name', this.element.id);\n }\n this.isInitial = true;\n this.resetMaskedTextBox();\n this.isInitial = false;\n this.setMaskPlaceholder(true, false);\n this.setWidth(this.width);\n this.preEleVal = this.element.value;\n if (!Browser.isDevice && (Browser.info.version === '11.0' || Browser.info.name === 'edge')) {\n this.element.blur();\n }\n if (Browser.isDevice && Browser.isIos) {\n this.element.blur();\n }\n if (this.element.getAttribute('value') || this.value) {\n this.element.setAttribute('value', this.element.value);\n }\n if (!isNullOrUndefined(closest(this.element, \"fieldset\")) && closest(this.element, \"fieldset\").disabled) {\n this.enabled = false;\n }\n this.renderComplete();\n }\n };\n MaskedTextBox.prototype.updateHTMLAttrToElement = function () {\n if (!isNullOrUndefined(this.htmlAttributes)) {\n for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) {\n var key = _a[_i];\n if (wrapperAttr.indexOf(key) < 0) {\n this.element.setAttribute(key, this.htmlAttributes[\"\" + key]);\n }\n }\n }\n };\n MaskedTextBox.prototype.updateCssClass = function (newClass, oldClass) {\n Input.setCssClass(this.getValidClassList(newClass), [this.inputObj.container], this.getValidClassList(oldClass));\n };\n MaskedTextBox.prototype.getValidClassList = function (maskClassName) {\n var result = maskClassName;\n if (!isNullOrUndefined(maskClassName) && maskClassName !== '') {\n result = (maskClassName.replace(/\\s+/g, ' ')).trim();\n }\n return result;\n };\n MaskedTextBox.prototype.updateHTMLAttrToWrapper = function () {\n if (!isNullOrUndefined(this.htmlAttributes)) {\n for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) {\n var key = _a[_i];\n if (wrapperAttr.indexOf(key) > -1) {\n if (key === 'class') {\n var updatedClassValues = (this.htmlAttributes[\"\" + key].replace(/\\s+/g, ' ')).trim();\n if (updatedClassValues !== '') {\n addClass([this.inputObj.container], updatedClassValues.split(' '));\n }\n }\n else if (key === 'style') {\n var maskStyle = this.inputObj.container.getAttribute(key);\n maskStyle = !isNullOrUndefined(maskStyle) ? (maskStyle + this.htmlAttributes[\"\" + key]) :\n this.htmlAttributes[\"\" + key];\n this.inputObj.container.setAttribute(key, maskStyle);\n }\n else {\n this.inputObj.container.setAttribute(key, this.htmlAttributes[\"\" + key]);\n }\n }\n }\n }\n };\n MaskedTextBox.prototype.resetMaskedTextBox = function () {\n this.promptMask = '';\n this.hiddenMask = '';\n this.escapeMaskValue = '';\n this.customRegExpCollec = [];\n this.undoCollec = [];\n this.redoCollec = [];\n if (this.promptChar.length > 1) {\n this.promptChar = this.promptChar[0];\n }\n createMask.call(this);\n applyMask.call(this);\n if (this.mask === null || this.mask === '' && this.value !== undefined) {\n setElementValue.call(this, this.value);\n }\n var val = strippedValue.call(this, this.element);\n this.prevValue = val;\n this.value = val;\n if (!this.isInitial) {\n unwireEvents.call(this);\n }\n wireEvents.call(this);\n };\n MaskedTextBox.prototype.setMaskPlaceholder = function (setVal, dynamicPlaceholder) {\n if (dynamicPlaceholder || this.placeholder) {\n Input.setPlaceholder(this.placeholder, this.element);\n if ((this.element.value === this.promptMask && setVal && this.floatLabelType !== 'Always') ||\n this.element.value === this.promptMask && this.floatLabelType === 'Never') {\n setElementValue.call(this, '');\n }\n }\n };\n MaskedTextBox.prototype.setWidth = function (width) {\n if (!isNullOrUndefined(width)) {\n if (typeof width === 'number') {\n this.inputObj.container.style.width = formatUnit(width);\n this.element.style.width = formatUnit(width);\n }\n else if (typeof width === 'string') {\n var elementWidth = (width.match(/px|%|em/)) ? (width) : (formatUnit(width));\n this.inputObj.container.style.width = elementWidth;\n this.element.style.width = elementWidth;\n }\n }\n };\n MaskedTextBox.prototype.checkHtmlAttributes = function (isDynamic) {\n var attributes = isDynamic ? isNullOrUndefined(this.htmlAttributes) ? [] : Object.keys(this.htmlAttributes)\n : ['placeholder', 'disabled', 'value', 'readonly'];\n for (var _i = 0, attributes_1 = attributes; _i < attributes_1.length; _i++) {\n var key = attributes_1[_i];\n if (!isNullOrUndefined(this.element.getAttribute(key))) {\n switch (key) {\n case 'placeholder':\n if ((isNullOrUndefined(this.maskOptions) || (this.maskOptions['placeholder'] === undefined)) || isDynamic) {\n this.setProperties({ placeholder: this.element.placeholder }, !isDynamic);\n }\n break;\n case 'disabled':\n if ((isNullOrUndefined(this.maskOptions) || (this.maskOptions['enabled'] === undefined)) || isDynamic) {\n var isEnabled = this.element.getAttribute(key) === 'disabled' || this.element.getAttribute(key) === '' ||\n this.element.getAttribute(key) === 'true' ? false : true;\n this.setProperties({ enabled: isEnabled }, !isDynamic);\n }\n break;\n case 'value':\n if ((isNullOrUndefined(this.maskOptions) || (this.maskOptions['value'] === undefined)) || isDynamic) {\n this.setProperties({ value: this.element.value }, !isDynamic);\n }\n break;\n case 'readonly':\n if ((isNullOrUndefined(this.maskOptions) || (this.maskOptions['readonly'] === undefined)) || isDynamic) {\n var isReadonly = this.element.getAttribute(key) === 'readonly' || this.element.getAttribute(key) === ''\n || this.element.getAttribute(key) === 'true' ? true : false;\n this.setProperties({ readonly: isReadonly }, !isDynamic);\n }\n break;\n }\n }\n }\n };\n MaskedTextBox.prototype.createWrapper = function () {\n var updatedCssClassValues = this.cssClass;\n if (!isNullOrUndefined(this.cssClass) && this.cssClass !== '') {\n updatedCssClassValues = this.getValidClassList(this.cssClass);\n }\n this.inputObj = Input.createInput({\n element: this.element,\n floatLabelType: this.floatLabelType,\n properties: {\n enableRtl: this.enableRtl,\n cssClass: updatedCssClassValues,\n enabled: this.enabled,\n readonly: this.readonly,\n placeholder: this.placeholder,\n showClearButton: this.showClearButton\n }\n }, this.createElement);\n this.inputObj.container.setAttribute('class', ROOT + ' ' + this.inputObj.container.getAttribute('class'));\n };\n /**\n * Calls internally if any of the property value is changed.\n *\n * @param {MaskedTextBoxModel} newProp - Returns the dynamic property value of the component.\n * @param {MaskedTextBoxModel} oldProp - Returns the previous property value of the component.\n * @returns {void}\n * @hidden\n */\n MaskedTextBox.prototype.onPropertyChanged = function (newProp, oldProp) {\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'value':\n setMaskValue.call(this, this.value);\n if (this.placeholder && !this.isFocus) {\n this.setMaskPlaceholder(false, false);\n }\n if (this.value === \"\") {\n this.element.selectionStart = 0;\n this.element.selectionEnd = 0;\n }\n break;\n case 'placeholder':\n this.setMaskPlaceholder(true, true);\n break;\n case 'width':\n this.setWidth(newProp.width);\n Input.calculateWidth(this.element, this.inputObj.container);\n break;\n case 'cssClass':\n this.updateCssClass(newProp.cssClass, oldProp.cssClass);\n break;\n case 'enabled':\n Input.setEnabled(newProp.enabled, this.element, this.floatLabelType, this.inputObj.container);\n break;\n case 'readonly':\n Input.setReadonly(newProp.readonly, this.element);\n break;\n case 'enableRtl':\n Input.setEnableRtl(newProp.enableRtl, [this.inputObj.container]);\n break;\n case 'customCharacters':\n this.customCharacters = newProp.customCharacters;\n this.resetMaskedTextBox();\n break;\n case 'showClearButton':\n Input.setClearButton(newProp.showClearButton, this.element, this.inputObj, undefined, this.createElement);\n bindClearEvent.call(this);\n break;\n case 'floatLabelType':\n this.floatLabelType = newProp.floatLabelType;\n Input.removeFloating(this.inputObj);\n Input.addFloating(this.element, this.floatLabelType, this.placeholder, this.createElement);\n break;\n case 'htmlAttributes':\n this.updateHTMLAttrToElement();\n this.updateHTMLAttrToWrapper();\n this.checkHtmlAttributes(true);\n break;\n case 'mask':\n {\n var strippedValue_1 = this.value;\n this.mask = newProp.mask;\n this.updateValue(strippedValue_1);\n }\n break;\n case 'promptChar': {\n if (newProp.promptChar.length > 1) {\n newProp.promptChar = newProp.promptChar[0];\n }\n if (newProp.promptChar) {\n this.promptChar = newProp.promptChar;\n }\n else {\n this.promptChar = '_';\n }\n /* eslint-disable-next-line security/detect-non-literal-regexp */\n var value = this.element.value.replace(new RegExp('[' + oldProp.promptChar + ']', 'g'), this.promptChar);\n if (this.promptMask === this.element.value) {\n /* eslint-disable-next-line security/detect-non-literal-regexp */\n value = this.promptMask.replace(new RegExp('[' + oldProp.promptChar + ']', 'g'), this.promptChar);\n }\n /* eslint-disable-next-line security/detect-non-literal-regexp */\n this.promptMask = this.promptMask.replace(new RegExp('[' + oldProp.promptChar + ']', 'g'), this.promptChar);\n this.undoCollec = this.redoCollec = [];\n setElementValue.call(this, value);\n break;\n }\n }\n }\n this.preventChange = this.isAngular && this.preventChange ? !this.preventChange : this.preventChange;\n };\n MaskedTextBox.prototype.updateValue = function (strippedVal) {\n this.resetMaskedTextBox();\n setMaskValue.call(this, strippedVal);\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Gets the value of the MaskedTextBox with the masked format.\n * By using `value` property, you can get the raw value of maskedtextbox without literals and prompt characters.\n *\n * @returns {string}\n */\n MaskedTextBox.prototype.getMaskedValue = function () {\n return unstrippedValue.call(this, this.element);\n };\n /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Sets the focus to widget for interaction.\n *\n * @returns {void}\n */\n MaskedTextBox.prototype.focusIn = function () {\n if (document.activeElement !== this.element && this.enabled) {\n this.isFocus = true;\n this.element.focus();\n addClass([this.inputObj.container], [MASKINPUT_FOCUS]);\n }\n };\n /**\n * Remove the focus from widget, if the widget is in focus state.\n *\n * @returns {void}\n */\n MaskedTextBox.prototype.focusOut = function () {\n if (document.activeElement === this.element && this.enabled) {\n this.isFocus = false;\n this.element.blur();\n removeClass([this.inputObj.container], [MASKINPUT_FOCUS]);\n }\n };\n /**\n * Removes the component from the DOM and detaches all its related event handlers.\n * Also it maintains the initial input element from the DOM.\n *\n * @method destroy\n * @returns {void}\n */\n MaskedTextBox.prototype.destroy = function () {\n unwireEvents.call(this);\n var attrArray = ['aria-labelledby', 'role', 'autocomplete', 'aria-readonly',\n 'aria-disabled', 'autocapitalize', 'spellcheck', 'aria-autocomplete', 'aria-live', 'aria-invalid'];\n for (var i = 0; i < attrArray.length; i++) {\n this.element.removeAttribute(attrArray[i]);\n }\n this.element.classList.remove('e-input');\n if (this.inputObj) {\n this.inputObj.container.insertAdjacentElement('afterend', this.element);\n detach(this.inputObj.container);\n }\n this.blurEventArgs = null;\n Input.destroy();\n this.changeEventArgs = null;\n this.inputObj = null;\n _super.prototype.destroy.call(this);\n };\n __decorate([\n Property(null)\n ], MaskedTextBox.prototype, \"cssClass\", void 0);\n __decorate([\n Property(null)\n ], MaskedTextBox.prototype, \"width\", void 0);\n __decorate([\n Property(null)\n ], MaskedTextBox.prototype, \"placeholder\", void 0);\n __decorate([\n Property('Never')\n ], MaskedTextBox.prototype, \"floatLabelType\", void 0);\n __decorate([\n Property({})\n ], MaskedTextBox.prototype, \"htmlAttributes\", void 0);\n __decorate([\n Property(true)\n ], MaskedTextBox.prototype, \"enabled\", void 0);\n __decorate([\n Property(false)\n ], MaskedTextBox.prototype, \"readonly\", void 0);\n __decorate([\n Property(false)\n ], MaskedTextBox.prototype, \"showClearButton\", void 0);\n __decorate([\n Property(false)\n ], MaskedTextBox.prototype, \"enablePersistence\", void 0);\n __decorate([\n Property(null)\n ], MaskedTextBox.prototype, \"mask\", void 0);\n __decorate([\n Property('_')\n ], MaskedTextBox.prototype, \"promptChar\", void 0);\n __decorate([\n Property(null)\n ], MaskedTextBox.prototype, \"value\", void 0);\n __decorate([\n Property(null)\n ], MaskedTextBox.prototype, \"customCharacters\", void 0);\n __decorate([\n Event()\n ], MaskedTextBox.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], MaskedTextBox.prototype, \"destroyed\", void 0);\n __decorate([\n Event()\n ], MaskedTextBox.prototype, \"change\", void 0);\n __decorate([\n Event()\n ], MaskedTextBox.prototype, \"focus\", void 0);\n __decorate([\n Event()\n ], MaskedTextBox.prototype, \"blur\", void 0);\n MaskedTextBox = __decorate([\n NotifyPropertyChanges\n ], MaskedTextBox);\n return MaskedTextBox;\n}(Component));\nexport { MaskedTextBox };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { MaskedTextBox } from '@syncfusion/ej2-inputs';\nimport { ComponentBase, applyMixins } from '@syncfusion/ej2-react-base';\n/**\n * Represents the React MaskedTextBox Component\n * ```html\n * \n * ```\n */\nvar MaskedTextBoxComponent = /** @class */ (function (_super) {\n __extends(MaskedTextBoxComponent, _super);\n function MaskedTextBoxComponent(props) {\n var _this = _super.call(this, props) || this;\n _this.controlAttributes = ['name'];\n _this.initRenderCalled = false;\n _this.checkInjectedModules = false;\n _this.statelessTemplateProps = null;\n _this.templateProps = null;\n _this.immediateRender = true;\n _this.portals = [];\n return _this;\n }\n MaskedTextBoxComponent.prototype.render = function () {\n if (((this.element && !this.initRenderCalled) || this.refreshing) && !this.isReactForeceUpdate) {\n _super.prototype.render.call(this);\n this.initRenderCalled = true;\n }\n else {\n return React.createElement(React.Fragment, null, [].concat(React.createElement(\"input\", this.getDefaultAttributes()), this.portals));\n }\n };\n return MaskedTextBoxComponent;\n}(MaskedTextBox));\nexport { MaskedTextBoxComponent };\napplyMixins(MaskedTextBoxComponent, [ComponentBase, React.Component]);\n","import React, { useEffect, useRef, useState } from \"react\";\nimport { isTextOverflowingField } from \"../../../../utils/miscellaneous\";\nexport var useMaskedField = function (props) {\n var _a = React.useState(props.value), localValue = _a[0], setLocalValue = _a[1];\n var maskedInputRef = useRef(null);\n var _b = useState(false), isTooltipVisible = _b[0], setIsTooltipVisible = _b[1];\n var _c = useState(false), initialized = _c[0], setInitialized = _c[1];\n var handleInputResize = function () {\n if (!!maskedInputRef && maskedInputRef.current) {\n setIsTooltipVisible(isTextOverflowingField(maskedInputRef.current.element));\n }\n };\n // Initialize\n useEffect(function () {\n if (!!maskedInputRef && !!maskedInputRef.current && !initialized) {\n setInitialized(true);\n handleInputResize();\n window.addEventListener(\"resize\", handleInputResize);\n }\n return function () {\n window.removeEventListener(\"resize\", handleInputResize);\n };\n }, []);\n useEffect(function () {\n if (props.value !== localValue) {\n setLocalValue(props.value);\n }\n }, [props.value]);\n useEffect(function () {\n if (initialized) {\n props.onSubmit && props.onSubmit(localValue);\n handleInputResize();\n }\n }, [localValue]);\n return {\n localValue: localValue,\n setLocalValue: setLocalValue,\n maskedInputRef: maskedInputRef,\n isTooltipVisible: isTooltipVisible,\n };\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { FormGroup } from \"@blueprintjs/core\";\nimport { MaskedTextBoxComponent, } from \"@syncfusion/ej2-react-inputs\";\nimport { RelativityTooltip } from \"../../../Tooltip/RelativityTooltip\";\nimport { FieldLabel } from \"../../CoreFields/FieldLabel/FieldLabel\";\nimport { FormFieldErrorContainer } from \"../../CoreFields/FieldError/FormFieldErrorContainer\";\nimport { useMaskedField } from \"./useMaskedField\";\nvar MaskedField = function (props) {\n var _a = useMaskedField(props), localValue = _a.localValue, setLocalValue = _a.setLocalValue, maskedInputRef = _a.maskedInputRef, isTooltipVisible = _a.isTooltipVisible;\n return (_jsx(\"div\", { className: \"ucl-base-input-masked-field-container\", children: _jsx(RelativityTooltip, { shouldShowTooltip: isTooltipVisible, content: !!localValue ? localValue.toString() : \"\", children: _jsxs(FormGroup, { className: \"\".concat(props.isRequired && !localValue\n ? \"has-required-background\"\n : \"base-field\"), children: [props.label && (_jsx(FieldLabel, __assign({ labelName: props.label, tooltipDescription: props.description, fieldProps: __assign(__assign({}, props), { value: localValue }) }, props.labelProps))), _jsx(MaskedTextBoxComponent, { ref: maskedInputRef, type: props.type, name: props.fieldName, value: localValue, readonly: !!props.disabled, enablePersistence: false, mask: props.mask, onChange: function (e) {\n if (e.value != localValue) {\n setLocalValue(e.value);\n }\n }, placeholder: props.placeholder, promptChar: props.promptChar ? props.promptChar : \"_\" }), props.errorMessages && (_jsx(FormFieldErrorContainer, { errorMessages: props.errorMessages }))] }) }) }));\n};\nexport default MaskedField;\n","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport NumericField from \"../../BaseInputFields/NumericField/NumericField\";\nvar CurrencyField = function (props) {\n return (_jsx(NumericField, { className: \"currency-field\", type: \"Numeric\", description: props.description, label: props.label, format: \"c2\", currency: \"USD\", min: props.minValue, max: props.maxValue, showIncrementButtons: props.showIncrementButtons, stepValue: props.stepValue, placeholder: \"$0.00\", value: props.value, disabled: props.disabled, onSubmit: props.onSubmit, errorMessages: props.errorMessages, isRequired: props.isRequired, labelProps: props.labelProps }));\n};\nexport default CurrencyField;\n","export var formatSSN = function (value) {\n if (!value) {\n return value;\n }\n var ssn = value.replace(/[^\\d]/g, \"\");\n var ssnLength = ssn.length;\n if (ssnLength < 4) {\n return ssn;\n }\n if (ssnLength < 6) {\n return \"\".concat(ssn.slice(0, 3), \"-\").concat(ssn.slice(3));\n }\n return \"\".concat(ssn.slice(0, 3), \"-\").concat(ssn.slice(3, 5), \"-\").concat(ssn.slice(5, 9));\n};\n","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport TextField from \"../../BaseInputFields/TextField/TextField\";\nimport { formatSSN } from \"./utils\";\n/**Inherits Text Field with concrete parameters like placeholder*/\nvar SocialSecurityNumberField = function (props) {\n return (_jsx(TextField, { label: props.label, value: formatSSN(props.value), disabled: props.disabled, onSubmit: props.onSubmit, errorMessages: props.errorMessages, isRequired: props.isRequired, placeholder: \"999-99-9999\", isSensitive: true, maxLength: 11, inputMode: \"numeric\", sanitize: formatSSN, labelProps: props.labelProps }));\n};\nexport default SocialSecurityNumberField;\n","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport MaskedField from \"../../BaseInputFields/MaskedField/MaskedField\";\nexport var PhoneNumberField = function (_a) {\n var labelProps = _a.labelProps, label = _a.label, description = _a.description, value = _a.value, disabled = _a.disabled, onSubmit = _a.onSubmit, hidden = _a.hidden, errorMessages = _a.errorMessages, isRequired = _a.isRequired;\n return (_jsx(MaskedField, { type: \"Text\", labelProps: labelProps, label: label, description: description, value: value, mask: \"([0-9][0-9][0-9]) [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]\", placeholder: \"(999) 999-9999\", disabled: disabled, onSubmit: onSubmit, hidden: hidden, errorMessages: errorMessages, isRequired: isRequired }));\n};\nexport default PhoneNumberField;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, Property, Event, EventHandler, L10n, compile, isNullOrUndefined, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\nimport { NotifyPropertyChanges, detach, append, Animation } from '@syncfusion/ej2-base';\nimport { addClass, removeClass, KeyboardEvents, setValue, getValue, ChildProperty } from '@syncfusion/ej2-base';\nimport { Collection, Complex, Browser, Ajax, getUniqueID, closest, remove } from '@syncfusion/ej2-base';\nimport { createSpinner, showSpinner, hideSpinner } from '@syncfusion/ej2-popups';\nimport { select, selectAll } from '@syncfusion/ej2-base';\nvar CONTROL_WRAPPER = 'e-upload e-control-wrapper';\nvar INPUT_WRAPPER = 'e-file-select';\nvar DROP_AREA = 'e-file-drop';\nvar DROP_WRAPPER = 'e-file-select-wrap';\nvar LIST_PARENT = 'e-upload-files';\nvar FILE = 'e-upload-file-list';\nvar STATUS = 'e-file-status';\nvar ACTION_BUTTONS = 'e-upload-actions';\nvar UPLOAD_BUTTONS = 'e-file-upload-btn e-css e-btn e-flat e-primary';\nvar CLEAR_BUTTONS = 'e-file-clear-btn e-css e-btn e-flat';\nvar FILE_NAME = 'e-file-name';\nvar FILE_TYPE = 'e-file-type';\nvar FILE_SIZE = 'e-file-size';\nvar REMOVE_ICON = 'e-file-remove-btn';\nvar DELETE_ICON = 'e-file-delete-btn';\nvar SPINNER_PANE = 'e-spinner-pane';\nvar ABORT_ICON = 'e-file-abort-btn';\nvar RETRY_ICON = 'e-file-reload-btn';\nvar DRAG_HOVER = 'e-upload-drag-hover';\nvar PROGRESS_WRAPPER = 'e-upload-progress-wrap';\nvar PROGRESSBAR = 'e-upload-progress-bar';\nvar PROGRESSBAR_TEXT = 'e-progress-bar-text';\nvar UPLOAD_INPROGRESS = 'e-upload-progress';\nvar UPLOAD_SUCCESS = 'e-upload-success';\nvar UPLOAD_FAILED = 'e-upload-fails';\nvar TEXT_CONTAINER = 'e-file-container';\nvar VALIDATION_FAILS = 'e-validation-fails';\nvar RTL = 'e-rtl';\nvar DISABLED = 'e-disabled';\nvar RTL_CONTAINER = 'e-rtl-container';\nvar ICON_FOCUSED = 'e-clear-icon-focus';\nvar PROGRESS_INNER_WRAPPER = 'e-progress-inner-wrap';\nvar PAUSE_UPLOAD = 'e-file-pause-btn';\nvar RESUME_UPLOAD = 'e-file-play-btn';\nvar RESTRICT_RETRY = 'e-restrict-retry';\nvar wrapperAttr = ['title', 'style', 'class'];\nvar FORM_UPLOAD = 'e-form-upload';\nvar HIDDEN_INPUT = 'e-hidden-file-input';\nvar INVALID_FILE = 'e-file-invalid';\nvar INFORMATION = 'e-file-information';\nvar FilesProp = /** @class */ (function (_super) {\n __extends(FilesProp, _super);\n function FilesProp() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], FilesProp.prototype, \"name\", void 0);\n __decorate([\n Property(null)\n ], FilesProp.prototype, \"size\", void 0);\n __decorate([\n Property('')\n ], FilesProp.prototype, \"type\", void 0);\n return FilesProp;\n}(ChildProperty));\nexport { FilesProp };\nvar ButtonsProps = /** @class */ (function (_super) {\n __extends(ButtonsProps, _super);\n function ButtonsProps() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('Browse...')\n ], ButtonsProps.prototype, \"browse\", void 0);\n __decorate([\n Property('Upload')\n ], ButtonsProps.prototype, \"upload\", void 0);\n __decorate([\n Property('Clear')\n ], ButtonsProps.prototype, \"clear\", void 0);\n return ButtonsProps;\n}(ChildProperty));\nexport { ButtonsProps };\nvar AsyncSettings = /** @class */ (function (_super) {\n __extends(AsyncSettings, _super);\n function AsyncSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], AsyncSettings.prototype, \"saveUrl\", void 0);\n __decorate([\n Property('')\n ], AsyncSettings.prototype, \"removeUrl\", void 0);\n __decorate([\n Property(0)\n ], AsyncSettings.prototype, \"chunkSize\", void 0);\n __decorate([\n Property(3)\n ], AsyncSettings.prototype, \"retryCount\", void 0);\n __decorate([\n Property(500)\n ], AsyncSettings.prototype, \"retryAfterDelay\", void 0);\n return AsyncSettings;\n}(ChildProperty));\nexport { AsyncSettings };\n/**\n * The uploader component allows to upload images, documents, and other files from local to server.\n * ```html\n * \n * ```\n * ```typescript\n * \n * ```\n */\nvar Uploader = /** @class */ (function (_super) {\n __extends(Uploader, _super);\n /**\n * Triggers when change the Uploader value.\n *\n * @param {UploaderModel} options - Specifies the Uploader model.\n * @param {string | HTMLInputElement} element - Specifies the element to render as component.\n * @private\n */\n function Uploader(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.initialAttr = { accept: null, multiple: false, disabled: false };\n _this.uploadedFilesData = [];\n _this.base64String = [];\n _this.isForm = false;\n _this.allTypes = false;\n _this.pausedData = [];\n _this.uploadMetaData = [];\n _this.tabIndex = '0';\n _this.btnTabIndex = '0';\n _this.disableKeyboardNavigation = false;\n _this.count = -1;\n _this.actionCompleteCount = 0;\n _this.flag = true;\n _this.selectedFiles = [];\n _this.uploaderName = 'UploadFiles';\n _this.fileStreams = [];\n _this.newFileRef = 0;\n _this.isFirstFileOnSelection = false;\n _this.dragCounter = 0;\n _this.isAngular = false;\n /**\n * Get the file item(li) which are shown in file list.\n *\n * @private\n */\n _this.fileList = [];\n /**\n * Get the data of files which are shown in file list.\n *\n * @private\n */\n _this.filesData = [];\n _this.uploaderOptions = options;\n return _this;\n }\n /**\n * Calls internally if any of the property value is changed.\n *\n * @param {UploaderModel} newProp - Returns the dynamic property value of the component.\n * @param {UploaderModel} oldProp - Returns the previous property value of the component.\n * @returns {void}\n * @private\n */\n Uploader.prototype.onPropertyChanged = function (newProp, oldProp) {\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'allowedExtensions':\n this.setExtensions(this.allowedExtensions);\n this.clearAll();\n break;\n case 'enabled':\n this.setControlStatus();\n break;\n case 'multiple':\n this.setMultipleSelection();\n break;\n case 'enableRtl':\n this.setRTL();\n this.reRenderFileList();\n break;\n case 'buttons':\n this.buttons.browse = isNullOrUndefined(this.buttons.browse) ? '' : this.buttons.browse;\n this.buttons.clear = isNullOrUndefined(this.buttons.clear) ? '' : this.buttons.clear;\n this.buttons.upload = isNullOrUndefined(this.buttons.upload) ? '' : this.buttons.upload;\n this.renderButtonTemplates();\n break;\n case 'dropArea':\n this.unBindDropEvents();\n this.updateDropArea();\n break;\n case 'htmlAttributes':\n this.updateHTMLAttrToElement();\n this.updateHTMLAttrToWrapper();\n this.checkHTMLAttributes(true);\n break;\n case 'files':\n this.renderPreLoadFiles();\n break;\n case 'directoryUpload':\n this.updateDirectoryAttributes();\n break;\n case 'template':\n var ejInstance = getValue('ej2_instances', this.element);\n if (ejInstance[0].isReact) {\n this.reRenderFileList();\n }\n else {\n this.clearAll();\n }\n break;\n case 'minFileSize':\n case 'maxFileSize':\n case 'autoUpload':\n this.clearAll();\n break;\n case 'sequentialUpload':\n this.clearAll();\n break;\n case 'locale':\n this.l10n.setLocale(this.locale);\n this.setLocalizedTexts();\n this.preLocaleObj = getValue('currentLocale', this.l10n);\n break;\n case 'cssClass':\n this.setCSSClass(oldProp.cssClass);\n break;\n }\n }\n };\n Uploader.prototype.setLocalizedTexts = function () {\n if (isNullOrUndefined(this.template)) {\n if (typeof (this.buttons.browse) === 'string') {\n this.browseButton.innerText = (this.buttons.browse === 'Browse...') ?\n this.localizedTexts('Browse') : this.buttons.browse;\n this.browseButton.setAttribute('title', this.browseButton.innerText);\n if (this.uploadWrapper && !isNullOrUndefined(this.uploadWrapper.querySelector('.' + DROP_AREA))) {\n this.uploadWrapper.querySelector('.' + DROP_AREA).innerHTML = this.localizedTexts('dropFilesHint');\n }\n }\n this.updateFileList();\n }\n };\n Uploader.prototype.getKeyValue = function (val) {\n var keyValue;\n for (var _i = 0, _a = Object.keys(this.preLocaleObj); _i < _a.length; _i++) {\n var key = _a[_i];\n if (this.preLocaleObj[\"\" + key] === val) {\n keyValue = key;\n }\n }\n return keyValue;\n };\n Uploader.prototype.updateFileList = function () {\n var element;\n /* istanbul ignore next */\n if (this.fileList.length > 0 && !isNullOrUndefined(this.uploadWrapper.querySelector('.' + LIST_PARENT))) {\n for (var i = 0; i < this.fileList.length; i++) {\n element = this.fileList[i].querySelector('.e-file-status');\n element.innerHTML = this.localizedTexts(this.getKeyValue(this.filesData[i].status));\n this.filesData[i].status = this.localizedTexts(this.getKeyValue(this.filesData[i].status));\n if (this.fileList[i].classList.contains(UPLOAD_SUCCESS)) {\n this.fileList[i].querySelector('.e-icons').setAttribute('title', this.localizedTexts('delete'));\n }\n if (this.fileList[i].querySelector('.e-file-play-btn')) {\n this.fileList[i].querySelector('.e-icons').setAttribute('title', this.localizedTexts('resume'));\n }\n if (this.fileList[i].querySelector('.e-file-remove-btn')) {\n this.fileList[i].querySelector('.e-icons').setAttribute('title', this.localizedTexts('remove'));\n }\n if (this.fileList[i].querySelector('.e-file-reload-btn')) {\n this.fileList[i].querySelector('.e-icons').setAttribute('title', this.localizedTexts('retry'));\n }\n if (!this.autoUpload) {\n this.uploadButton.innerText = (this.buttons.upload === 'Upload') ?\n this.localizedTexts('Upload') : this.buttons.upload;\n this.uploadButton.setAttribute('title', this.localizedTexts('Upload'));\n this.clearButton.innerText = (this.buttons.clear === 'Clear') ?\n this.localizedTexts('Clear') : this.buttons.clear;\n this.clearButton.setAttribute('title', this.localizedTexts('Clear'));\n }\n }\n }\n };\n Uploader.prototype.reRenderFileList = function () {\n if (this.listParent) {\n detach(this.listParent);\n this.listParent = null;\n this.fileList = [];\n this.createFileList(this.filesData);\n if (this.actionButtons) {\n this.removeActionButtons();\n this.renderActionButtons();\n this.checkActionButtonStatus();\n }\n }\n };\n Uploader.prototype.preRender = function () {\n this.localeText = { Browse: 'Browse...', Clear: 'Clear', Upload: 'Upload', invalidFileName: 'File Name is not allowed',\n dropFilesHint: 'Or drop files here', invalidMaxFileSize: 'File size is too large',\n invalidMinFileSize: 'File size is too small', invalidFileType: 'File type is not allowed',\n uploadFailedMessage: 'File failed to upload', uploadSuccessMessage: 'File uploaded successfully',\n removedSuccessMessage: 'File removed successfully', removedFailedMessage: 'Unable to remove file', inProgress: 'Uploading',\n readyToUploadMessage: 'Ready to upload', abort: 'Abort', remove: 'Remove', cancel: 'Cancel', delete: 'Delete file',\n pauseUpload: 'File upload paused', pause: 'Pause', resume: 'Resume', retry: 'Retry',\n fileUploadCancel: 'File upload canceled', invalidFileSelection: 'Invalid files selected', totalFiles: 'Total files',\n size: 'Size'\n };\n this.l10n = new L10n('uploader', this.localeText, this.locale);\n this.preLocaleObj = getValue('currentLocale', this.l10n);\n this.formRendered();\n this.updateHTMLAttrToElement();\n this.checkHTMLAttributes(false);\n var ejInstance = getValue('ej2_instances', this.element);\n /* istanbul ignore next */\n if (this.element.tagName === 'EJS-UPLOADER') {\n var inputElement = this.createElement('input', { attrs: { type: 'file' } });\n var index = 0;\n for (index; index < this.element.attributes.length; index++) {\n if (this.element.attributes[index].nodeName !== 'id') {\n inputElement.setAttribute(this.element.attributes[index].nodeName, this.element.attributes[index].nodeValue);\n }\n else if (this.element.attributes[index].nodeName === 'id') {\n inputElement.setAttribute(this.element.attributes[index].nodeName, getUniqueID('uploader'));\n }\n inputElement.innerHTML = this.element.innerHTML;\n }\n if (!inputElement.hasAttribute('name')) {\n inputElement.setAttribute('name', 'UploadFiles');\n }\n this.element.appendChild(inputElement);\n this.element = inputElement;\n setValue('ej2_instances', ejInstance, this.element);\n }\n /* istanbul ignore next */\n if (ejInstance[0].isPureReactComponent) {\n if (!isNullOrUndefined(ejInstance[0].props.name)) {\n this.element.setAttribute('name', ejInstance[0].props.name);\n }\n else if (!isNullOrUndefined(ejInstance[0].props.id) && isNullOrUndefined(ejInstance[0].props.name)) {\n this.element.setAttribute('name', ejInstance[0].props.id);\n }\n else {\n this.element.setAttribute('name', 'UploadFiles');\n }\n }\n if (isNullOrUndefined(this.element.getAttribute('name'))) {\n this.element.setAttribute('name', this.element.getAttribute('id'));\n }\n if (!this.element.hasAttribute('type')) {\n this.element.setAttribute('type', 'file');\n }\n this.updateDirectoryAttributes();\n this.keyConfigs = {\n enter: 'enter'\n };\n if (this.element.hasAttribute('tabindex')) {\n this.tabIndex = this.element.getAttribute('tabindex');\n }\n this.browserName = Browser.info.name;\n this.uploaderName = this.element.getAttribute('name');\n };\n Uploader.prototype.formRendered = function () {\n var parentEle = closest(this.element, 'form');\n if (!isNullOrUndefined(parentEle)) {\n for (; parentEle && parentEle !== document.documentElement; parentEle = parentEle.parentElement) {\n if (parentEle.tagName === 'FORM') {\n this.isForm = true;\n this.formElement = parentEle;\n parentEle.setAttribute('enctype', 'multipart/form-data');\n parentEle.setAttribute('encoding', 'multipart/form-data');\n }\n }\n }\n };\n Uploader.prototype.getPersistData = function () {\n return this.addOnPersist(['filesData']);\n };\n /**\n * Return the module name of the component.\n *\n * @returns {string} Returns the component name.\n */\n Uploader.prototype.getModuleName = function () {\n return 'uploader';\n };\n Uploader.prototype.updateDirectoryAttributes = function () {\n if (this.directoryUpload) {\n this.element.setAttribute('directory', 'true');\n this.element.setAttribute('webkitdirectory', 'true');\n }\n else {\n this.element.removeAttribute('directory');\n this.element.removeAttribute('webkitdirectory');\n }\n };\n /**\n * To Initialize the control rendering\n *\n * @private\n * @returns {void}\n */\n Uploader.prototype.render = function () {\n this.renderBrowseButton();\n this.initializeUpload();\n this.updateHTMLAttrToWrapper();\n this.wireEvents();\n this.setMultipleSelection();\n this.setExtensions(this.allowedExtensions);\n this.setRTL();\n this.renderPreLoadFiles();\n this.setControlStatus();\n this.setCSSClass();\n };\n Uploader.prototype.renderBrowseButton = function () {\n this.browseButton = this.createElement('button', { className: 'e-css e-btn', attrs: { 'type': 'button' } });\n this.browseButton.setAttribute('tabindex', this.tabIndex);\n if (typeof (this.buttons.browse) === 'string') {\n this.browseButton.textContent = (this.buttons.browse === 'Browse...') ?\n this.localizedTexts('Browse') : this.buttons.browse;\n this.browseButton.setAttribute('title', this.browseButton.innerText);\n }\n else {\n this.browseButton.appendChild(this.buttons.browse);\n }\n this.element.setAttribute('aria-label', 'Uploader');\n };\n Uploader.prototype.renderActionButtons = function () {\n this.element.setAttribute('tabindex', '-1');\n this.actionButtons = this.createElement('div', { className: ACTION_BUTTONS });\n this.uploadButton = this.createElement('button', { className: UPLOAD_BUTTONS,\n attrs: { 'type': 'button', 'tabindex': this.btnTabIndex } });\n this.clearButton = this.createElement('button', { className: CLEAR_BUTTONS,\n attrs: { 'type': 'button', 'tabindex': this.btnTabIndex } });\n this.actionButtons.appendChild(this.clearButton);\n this.actionButtons.appendChild(this.uploadButton);\n this.renderButtonTemplates();\n this.uploadWrapper.appendChild(this.actionButtons);\n this.browseButton.blur();\n if (!this.isPreloadFiles) {\n this.uploadButton.focus();\n }\n this.wireActionButtonEvents();\n };\n /* istanbul ignore next */\n Uploader.prototype.serverActionButtonsEventBind = function (element) {\n if (element && !this.isForm) {\n this.browseButton.blur();\n this.actionButtons = element;\n this.uploadButton = this.actionButtons.querySelector('.e-file-upload-btn');\n this.clearButton = this.actionButtons.querySelector('.e-file-clear-btn');\n this.uploadButton.focus();\n this.unwireActionButtonEvents();\n this.wireActionButtonEvents();\n this.checkActionButtonStatus();\n }\n };\n Uploader.prototype.wireActionButtonEvents = function () {\n EventHandler.add(this.uploadButton, 'click', this.uploadButtonClick, this);\n EventHandler.add(this.clearButton, 'click', this.clearButtonClick, this);\n };\n Uploader.prototype.unwireActionButtonEvents = function () {\n EventHandler.remove(this.uploadButton, 'click', this.uploadButtonClick);\n EventHandler.remove(this.clearButton, 'click', this.clearButtonClick);\n };\n Uploader.prototype.removeActionButtons = function () {\n if (this.actionButtons) {\n this.unwireActionButtonEvents();\n detach(this.actionButtons);\n this.actionButtons = null;\n }\n };\n Uploader.prototype.renderButtonTemplates = function () {\n if (typeof (this.buttons.browse) === 'string') {\n this.browseButton.textContent = (this.buttons.browse === 'Browse...') ?\n this.localizedTexts('Browse') : this.buttons.browse;\n this.browseButton.setAttribute('title', this.browseButton.textContent);\n }\n else {\n this.browseButton.innerHTML = '';\n this.browseButton.appendChild(this.buttons.browse);\n }\n if (this.uploadButton) {\n var uploadText = isNullOrUndefined(this.buttons.upload) ? 'Upload' : this.buttons.upload;\n this.buttons.upload = uploadText;\n if (typeof (this.buttons.upload) === 'string') {\n this.uploadButton.textContent = (this.buttons.upload === 'Upload') ?\n this.localizedTexts('Upload') : this.buttons.upload;\n this.uploadButton.setAttribute('title', this.uploadButton.textContent);\n }\n else {\n this.uploadButton.innerHTML = '';\n this.uploadButton.appendChild(this.buttons.upload);\n }\n }\n if (this.clearButton) {\n var clearText = isNullOrUndefined(this.buttons.clear) ? 'Clear' : this.buttons.clear;\n this.buttons.clear = clearText;\n if (typeof (this.buttons.clear) === 'string') {\n this.clearButton.textContent = (this.buttons.clear === 'Clear') ?\n this.localizedTexts('Clear') : this.buttons.clear;\n this.clearButton.setAttribute('title', this.clearButton.textContent);\n }\n else {\n this.clearButton.innerHTML = '';\n this.clearButton.appendChild(this.buttons.clear);\n }\n }\n };\n Uploader.prototype.initializeUpload = function () {\n this.element.setAttribute('tabindex', '-1');\n var inputWrapper = this.createElement('span', { className: INPUT_WRAPPER });\n this.element.parentElement.insertBefore(inputWrapper, this.element);\n this.dropAreaWrapper = this.createElement('div', { className: DROP_WRAPPER });\n this.element.parentElement.insertBefore(this.dropAreaWrapper, this.element);\n inputWrapper.appendChild(this.element);\n this.dropAreaWrapper.appendChild(this.browseButton);\n this.dropAreaWrapper.appendChild(inputWrapper);\n this.uploadWrapper = this.createElement('div', { className: CONTROL_WRAPPER });\n this.dropAreaWrapper.parentElement.insertBefore(this.uploadWrapper, this.dropAreaWrapper);\n this.uploadWrapper.appendChild(this.dropAreaWrapper);\n this.setDropArea();\n };\n Uploader.prototype.renderPreLoadFiles = function () {\n if (this.files.length) {\n if (this.enablePersistence && this.filesData.length) {\n this.createFileList(this.filesData);\n return;\n }\n if (isNullOrUndefined(this.files[0].size)) {\n return;\n }\n this.isPreloadFiles = true;\n var files = [].slice.call(this.files);\n var filesData = [];\n if (!this.multiple) {\n this.clearData();\n files = [files[0]];\n }\n for (var _i = 0, files_1 = files; _i < files_1.length; _i++) {\n var data = files_1[_i];\n var fileData = {\n name: data.name + '.' + data.type.split('.')[data.type.split('.').length - 1],\n rawFile: '',\n size: data.size,\n status: this.localizedTexts('uploadSuccessMessage'),\n type: data.type,\n validationMessages: { minSize: '', maxSize: '' },\n statusCode: '2'\n };\n filesData.push(fileData);\n this.filesData.push(fileData);\n }\n this.createFileList(filesData);\n if (!this.autoUpload && this.listParent && !this.actionButtons && (!this.isForm || this.allowUpload()) && this.showFileList) {\n this.renderActionButtons();\n }\n this.checkActionButtonStatus();\n if (this.sequentialUpload) {\n this.count = this.filesData.length - 1;\n }\n this.isPreloadFiles = false;\n }\n };\n Uploader.prototype.checkActionButtonStatus = function () {\n if (this.actionButtons) {\n var length_1 = this.uploadWrapper.querySelectorAll('.' + VALIDATION_FAILS).length +\n this.uploadWrapper.querySelectorAll('.e-upload-fails:not(.e-upload-progress)').length +\n this.uploadWrapper.querySelectorAll('span.' + UPLOAD_SUCCESS).length +\n this.uploadWrapper.querySelectorAll('span.' + UPLOAD_INPROGRESS).length;\n if (length_1 > 0 && length_1 === this.uploadWrapper.querySelectorAll('li').length) {\n this.uploadButton.setAttribute('disabled', 'disabled');\n }\n else {\n this.uploadButton.removeAttribute('disabled');\n }\n }\n };\n Uploader.prototype.setDropArea = function () {\n var dropTextArea = this.dropAreaWrapper.querySelector('.e-file-drop');\n if (this.dropArea) {\n this.dropZoneElement = (typeof (this.dropArea) !== 'string') ? this.dropArea :\n select(this.dropArea, document);\n var element = this.element;\n var enableDropText = false;\n while (element.parentNode) {\n element = element.parentNode;\n if (element === this.dropZoneElement) {\n enableDropText = true;\n if (!dropTextArea) {\n this.createDropTextHint();\n }\n else {\n dropTextArea.innerHTML = this.localizedTexts('dropFilesHint');\n }\n }\n }\n if (!enableDropText && dropTextArea) {\n remove(dropTextArea);\n }\n }\n else if (!isNullOrUndefined(this.uploaderOptions) && this.uploaderOptions.dropArea === undefined) {\n this.createDropTextHint();\n this.dropZoneElement = this.uploadWrapper;\n this.setProperties({ dropArea: this.uploadWrapper }, true);\n }\n this.bindDropEvents();\n };\n Uploader.prototype.updateDropArea = function () {\n if (this.dropArea) {\n this.setDropArea();\n }\n else {\n this.dropZoneElement = null;\n var dropTextArea = this.dropAreaWrapper.querySelector('.e-file-drop');\n if (dropTextArea) {\n remove(dropTextArea);\n }\n }\n };\n Uploader.prototype.createDropTextHint = function () {\n var fileDropArea = this.createElement('span', { className: DROP_AREA });\n fileDropArea.innerHTML = this.localizedTexts('dropFilesHint');\n this.dropAreaWrapper.appendChild(fileDropArea);\n };\n Uploader.prototype.updateHTMLAttrToElement = function () {\n if (!isNullOrUndefined(this.htmlAttributes)) {\n for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) {\n var pro = _a[_i];\n if (wrapperAttr.indexOf(pro) < 0) {\n this.element.setAttribute(pro, this.htmlAttributes[\"\" + pro]);\n }\n }\n }\n };\n Uploader.prototype.updateHTMLAttrToWrapper = function () {\n if (!isNullOrUndefined(this.htmlAttributes)) {\n for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) {\n var pro = _a[_i];\n if (wrapperAttr.indexOf(pro) > -1) {\n if (pro === 'class') {\n var updatedClassValues = (this.htmlAttributes[\"\" + pro].replace(/\\s+/g, ' ')).trim();\n if (updatedClassValues !== '') {\n addClass([this.uploadWrapper], updatedClassValues.split(' '));\n }\n }\n else if (pro === 'style') {\n var uploadStyle = this.uploadWrapper.getAttribute(pro);\n uploadStyle = !isNullOrUndefined(uploadStyle) ? (uploadStyle + this.htmlAttributes[\"\" + pro]) :\n this.htmlAttributes[\"\" + pro];\n this.uploadWrapper.setAttribute(pro, uploadStyle);\n }\n else {\n this.uploadWrapper.setAttribute(pro, this.htmlAttributes[\"\" + pro]);\n }\n }\n }\n }\n };\n Uploader.prototype.setMultipleSelection = function () {\n if (this.multiple && !this.element.hasAttribute('multiple')) {\n var newAttr = document.createAttribute('multiple');\n newAttr.value = 'multiple';\n this.element.setAttributeNode(newAttr);\n }\n else if (!this.multiple) {\n this.element.removeAttribute('multiple');\n }\n };\n Uploader.prototype.checkAutoUpload = function (fileData) {\n if (this.autoUpload) {\n if (this.sequentialUpload) {\n /* istanbul ignore next */\n this.sequenceUpload(fileData);\n }\n else {\n this.upload(fileData);\n }\n this.removeActionButtons();\n }\n else if (!this.actionButtons) {\n this.renderActionButtons();\n }\n this.checkActionButtonStatus();\n };\n Uploader.prototype.sequenceUpload = function (fileData) {\n if (this.filesData.length - fileData.length === 0 ||\n this.filesData[(this.filesData.length - fileData.length - 1)].statusCode !== '1') {\n if (this.multiple || this.count < 0) {\n ++this.count;\n }\n var isFileListCreated = this.showFileList ? false : true;\n if (typeof this.filesData[this.count] === 'object') {\n this.isFirstFileOnSelection = false;\n this.upload(this.filesData[this.count], isFileListCreated);\n if (this.filesData[this.count].statusCode === '0') {\n this.sequenceUpload(fileData);\n }\n }\n else {\n --this.count;\n }\n }\n };\n Uploader.prototype.setCSSClass = function (oldCSSClass) {\n var updatedOldCssClass = oldCSSClass;\n if (!isNullOrUndefined(oldCSSClass)) {\n updatedOldCssClass = (oldCSSClass.replace(/\\s+/g, ' ')).trim();\n }\n if (!isNullOrUndefined(oldCSSClass) && updatedOldCssClass !== '') {\n removeClass([this.uploadWrapper], updatedOldCssClass.split(' '));\n }\n var updatedCssClassValue = this.cssClass;\n if (!isNullOrUndefined(this.cssClass) && this.cssClass !== '') {\n updatedCssClassValue = (this.cssClass.replace(/\\s+/g, ' ')).trim();\n }\n if (!isNullOrUndefined(this.cssClass) && updatedCssClassValue !== '') {\n addClass([this.uploadWrapper], updatedCssClassValue.split(updatedCssClassValue.indexOf(',') > -1 ? ',' : ' '));\n }\n };\n Uploader.prototype.wireEvents = function () {\n EventHandler.add(this.browseButton, 'click', this.browseButtonClick, this);\n EventHandler.add(this.element, 'change', this.onSelectFiles, this);\n EventHandler.add(document, 'click', this.removeFocus, this);\n this.keyboardModule = new KeyboardEvents(this.uploadWrapper, {\n keyAction: this.keyActionHandler.bind(this),\n keyConfigs: this.keyConfigs,\n eventName: 'keydown'\n });\n if (this.isForm) {\n EventHandler.add(this.formElement, 'reset', this.resetForm, this);\n }\n };\n Uploader.prototype.unWireEvents = function () {\n EventHandler.remove(this.browseButton, 'click', this.browseButtonClick);\n EventHandler.remove(this.element, 'change', this.onSelectFiles);\n EventHandler.remove(document, 'click', this.removeFocus);\n if (this.isForm) {\n EventHandler.remove(this.formElement, 'reset', this.resetForm);\n }\n if (this.keyboardModule) {\n this.keyboardModule.destroy();\n }\n };\n Uploader.prototype.resetForm = function () {\n this.clearAll();\n };\n Uploader.prototype.keyActionHandler = function (e) {\n var targetElement = e.target;\n switch (e.action) {\n case 'enter':\n if (e.target === this.clearButton) {\n this.clearButtonClick();\n }\n else if (e.target === this.uploadButton) {\n this.uploadButtonClick();\n }\n else if (e.target === this.browseButton) {\n this.browseButtonClick();\n }\n else if (targetElement.classList.contains(PAUSE_UPLOAD)) {\n var metaData = this.getCurrentMetaData(null, e);\n metaData.file.statusCode = '4';\n metaData.file.status = this.localizedTexts('pauseUpload');\n this.abortUpload(metaData, false);\n }\n else if (targetElement.classList.contains(RESUME_UPLOAD)) {\n this.resumeUpload(this.getCurrentMetaData(null, e), e);\n }\n else if (targetElement.classList.contains(RETRY_ICON)) {\n var metaData = this.getCurrentMetaData(null, e);\n if (!isNullOrUndefined(metaData)) {\n metaData.file.statusCode = '1';\n metaData.file.status = this.localizedTexts('readyToUploadMessage');\n this.chunkUpload(metaData.file);\n }\n else {\n var target = e.target.parentElement;\n var fileData = this.filesData[this.fileList.indexOf(target)];\n this.retry(fileData);\n }\n }\n else {\n this.removeFiles(e);\n if (!targetElement.classList.contains(ABORT_ICON)) {\n this.browseButton.focus();\n }\n }\n e.preventDefault();\n e.stopPropagation();\n break;\n }\n };\n Uploader.prototype.getCurrentMetaData = function (fileInfo, e) {\n var fileData;\n var targetMetaData;\n if (isNullOrUndefined(fileInfo)) {\n var target = e.target.parentElement;\n fileData = this.filesData[this.fileList.indexOf(target)];\n }\n else {\n fileData = fileInfo;\n }\n for (var i = 0; i < this.uploadMetaData.length; i++) {\n if (this.uploadMetaData[i].file.name === fileData.name) {\n targetMetaData = this.uploadMetaData[i];\n }\n }\n return targetMetaData;\n };\n Uploader.prototype.removeFocus = function () {\n if (this.uploadWrapper && this.listParent && this.listParent.querySelector('.' + ICON_FOCUSED)) {\n document.activeElement.blur();\n this.listParent.querySelector('.' + ICON_FOCUSED).classList.remove(ICON_FOCUSED);\n }\n };\n Uploader.prototype.browseButtonClick = function () {\n this.element.click();\n };\n Uploader.prototype.uploadButtonClick = function () {\n if (this.sequentialUpload) {\n this.sequenceUpload(this.filesData);\n }\n else {\n this.upload(this.filesData);\n }\n };\n Uploader.prototype.clearButtonClick = function () {\n this.clearAll();\n /* istanbul ignore next */\n if (this.sequentialUpload) {\n this.count = -1;\n }\n this.actionCompleteCount = 0;\n };\n Uploader.prototype.bindDropEvents = function () {\n if (this.dropZoneElement) {\n EventHandler.add(this.dropZoneElement, 'drop', this.dropElement, this);\n EventHandler.add(this.dropZoneElement, 'dragover', this.dragHover, this);\n EventHandler.add(this.dropZoneElement, 'dragleave', this.onDragLeave, this);\n EventHandler.add(this.dropZoneElement, 'paste', this.onPasteFile, this);\n EventHandler.add(this.dropZoneElement, 'dragenter', this.onDragEnter, this);\n }\n };\n Uploader.prototype.unBindDropEvents = function () {\n if (this.dropZoneElement) {\n EventHandler.remove(this.dropZoneElement, 'drop', this.dropElement);\n EventHandler.remove(this.dropZoneElement, 'dragover', this.dragHover);\n EventHandler.remove(this.dropZoneElement, 'dragleave', this.onDragLeave);\n EventHandler.remove(this.dropZoneElement, 'dragenter', this.onDragEnter);\n }\n };\n Uploader.prototype.onDragEnter = function (e) {\n if (!this.enabled) {\n return;\n }\n this.dropZoneElement.classList.add(DRAG_HOVER);\n this.dragCounter = this.dragCounter + 1;\n e.preventDefault();\n e.stopPropagation();\n };\n Uploader.prototype.onDragLeave = function () {\n if (!this.enabled) {\n return;\n }\n this.dragCounter = this.dragCounter - 1;\n if (!this.dragCounter) {\n this.dropZoneElement.classList.remove(DRAG_HOVER);\n }\n };\n Uploader.prototype.dragHover = function (e) {\n if (!this.enabled) {\n return;\n }\n if (this.dropEffect !== 'Default') {\n e.dataTransfer.dropEffect = this.dropEffect.toLowerCase();\n }\n e.preventDefault();\n e.stopPropagation();\n };\n /* istanbul ignore next */\n Uploader.prototype.dropElement = function (e) {\n this.dragCounter = 0;\n this.dropZoneElement.classList.remove(DRAG_HOVER);\n this.onSelectFiles(e);\n e.preventDefault();\n e.stopPropagation();\n };\n /* istanbul ignore next */\n Uploader.prototype.onPasteFile = function (event) {\n var item = event.clipboardData.items;\n if (event.type === 'paste' && this.browserName !== 'msie' && this.browserName !== 'edge' && this.browserName !== 'safari') {\n this.element.files = event.clipboardData.files;\n }\n if (item.length !== 1) {\n return;\n }\n var pasteFile = [].slice.call(item)[0];\n if ((pasteFile.kind === 'file') && pasteFile.type.match('^image/')) {\n this.renderSelectedFiles(event, [pasteFile.getAsFile()], false, true);\n }\n };\n Uploader.prototype.getSelectedFiles = function (index) {\n var data = [];\n var liElement = this.fileList[index];\n var allFiles = this.getFilesData();\n var nameElements = +liElement.getAttribute('data-files-count');\n var startIndex = 0;\n for (var i = 0; i < index; i++) {\n startIndex += (+this.fileList[i].getAttribute('data-files-count'));\n }\n for (var j = startIndex; j < (startIndex + nameElements); j++) {\n data.push(allFiles[j]);\n }\n return data;\n };\n Uploader.prototype.removeFiles = function (args) {\n if (!this.enabled) {\n return;\n }\n var selectedElement = args.target.parentElement;\n var index = this.fileList.indexOf(selectedElement);\n var liElement = this.fileList[index];\n var formUpload = this.isFormUpload();\n var fileData = formUpload ? this.getSelectedFiles(index) : this.getFilesInArray(this.filesData[index]);\n if (isNullOrUndefined(fileData)) {\n return;\n }\n if (args.target.classList.contains(ABORT_ICON) && !formUpload) {\n fileData[0].statusCode = '5';\n if (!isNullOrUndefined(liElement)) {\n var spinnerTarget = liElement.querySelector('.' + ABORT_ICON);\n createSpinner({ target: spinnerTarget, width: '20px' });\n showSpinner(spinnerTarget);\n }\n if (this.sequentialUpload) {\n /* istanbul ignore next */\n this.uploadSequential();\n }\n if (!(liElement.classList.contains(RESTRICT_RETRY))) {\n this.checkActionComplete(true);\n }\n }\n else if (!closest(args.target, '.' + SPINNER_PANE)) {\n this.remove(fileData, false, false, true, args);\n }\n this.checkActionButtonStatus();\n };\n Uploader.prototype.removeFilesData = function (file, customTemplate) {\n var index;\n if (customTemplate) {\n if (!this.showFileList) {\n index = this.filesData.indexOf(file);\n this.filesData.splice(index, 1);\n }\n return;\n }\n var selectedElement = this.getLiElement(file);\n if (isNullOrUndefined(selectedElement)) {\n return;\n }\n this.element.value = '';\n detach(selectedElement);\n index = this.fileList.indexOf(selectedElement);\n this.fileList.splice(index, 1);\n this.filesData.splice(index, 1);\n if (this.fileList.length === 0 && !isNullOrUndefined(this.listParent)) {\n detach(this.listParent);\n this.listParent = null;\n this.removeActionButtons();\n }\n if (this.sequentialUpload) {\n /* istanbul ignore next */\n if (index <= this.count) {\n --this.count;\n }\n }\n };\n Uploader.prototype.removeUploadedFile = function (file, eventArgs, removeDirectly, custom) {\n var _this = this;\n var selectedFiles = file;\n var ajax = new Ajax(this.asyncSettings.removeUrl, 'POST', true, null);\n ajax.emitError = false;\n var formData = new FormData();\n ajax.beforeSend = function (e) {\n eventArgs.currentRequest = ajax.httpRequest;\n if (!removeDirectly) {\n _this.trigger('removing', eventArgs, function (eventArgs) {\n if (eventArgs.cancel) {\n e.cancel = true;\n }\n else {\n _this.removingEventCallback(eventArgs, formData, selectedFiles, file);\n }\n });\n }\n else {\n _this.removingEventCallback(eventArgs, formData, selectedFiles, file);\n }\n };\n ajax.onLoad = function (e) {\n _this.removeCompleted(e, selectedFiles, custom);\n return {};\n };\n /* istanbul ignore next */\n ajax.onError = function (e) {\n _this.removeFailed(e, selectedFiles, custom);\n return {};\n };\n ajax.send(formData);\n };\n Uploader.prototype.removingEventCallback = function (eventArgs, formData, selectedFiles, file) {\n /* istanbul ignore next */\n var name = this.element.getAttribute('name');\n var liElement = this.getLiElement(file);\n if (!isNullOrUndefined(liElement) && (!isNullOrUndefined(liElement.querySelector('.' + DELETE_ICON)) ||\n !isNullOrUndefined(liElement.querySelector('.' + REMOVE_ICON)))) {\n var spinnerTarget = liElement.querySelector('.' + DELETE_ICON) ?\n liElement.querySelector('.' + DELETE_ICON) :\n liElement.querySelector('.' + REMOVE_ICON);\n createSpinner({ target: spinnerTarget, width: '20px' });\n showSpinner(spinnerTarget);\n }\n if (eventArgs.postRawFile && !isNullOrUndefined(selectedFiles.rawFile) && selectedFiles.rawFile !== '') {\n formData.append(name, selectedFiles.rawFile, selectedFiles.name);\n }\n else {\n formData.append(name, selectedFiles.name);\n }\n this.updateFormData(formData, eventArgs.customFormData);\n };\n /* istanbul ignore next */\n Uploader.prototype.updateFormData = function (formData, customData) {\n if (customData.length > 0 && customData[0]) {\n var _loop_1 = function (i) {\n var data = customData[i];\n // eslint-disable-next-line @typescript-eslint/tslint/config\n var value = Object.keys(data).map(function (e) {\n return data[\"\" + e];\n });\n formData.append(Object.keys(data)[0], value);\n };\n for (var i = 0; i < customData.length; i++) {\n _loop_1(i);\n }\n }\n };\n /* istanbul ignore next */\n Uploader.prototype.updateCustomheader = function (request, currentRequest) {\n if (currentRequest.length > 0 && currentRequest[0]) {\n var _loop_2 = function (i) {\n var data = currentRequest[i];\n // eslint-disable-next-line @typescript-eslint/tslint/config\n var value = Object.keys(data).map(function (e) {\n return data[\"\" + e];\n });\n request.setRequestHeader(Object.keys(data)[0], value);\n };\n for (var i = 0; i < currentRequest.length; i++) {\n _loop_2(i);\n }\n }\n };\n Uploader.prototype.removeCompleted = function (e, files, customTemplate) {\n var response = e && e.currentTarget ? this.getResponse(e) : null;\n var status = e.target;\n if (status.readyState === 4 && status.status >= 200 && status.status <= 299) {\n var args = {\n e: e, response: response, operation: 'remove', file: this.updateStatus(files, this.localizedTexts('removedSuccessMessage'), '2')\n };\n this.trigger('success', args);\n this.removeFilesData(files, customTemplate);\n var index = this.uploadedFilesData.indexOf(files);\n this.uploadedFilesData.splice(index, 1);\n this.trigger('change', { files: this.uploadedFilesData });\n }\n else {\n this.removeFailed(e, files, customTemplate);\n }\n };\n Uploader.prototype.removeFailed = function (e, files, customTemplate) {\n var response = e && e.currentTarget ? this.getResponse(e) : null;\n var args = {\n e: e, response: response, operation: 'remove', file: this.updateStatus(files, this.localizedTexts('removedFailedMessage'), '0')\n };\n if (!customTemplate) {\n var index = this.filesData.indexOf(files);\n var rootElement = this.fileList[index];\n if (rootElement) {\n rootElement.classList.remove(UPLOAD_SUCCESS);\n rootElement.classList.add(UPLOAD_FAILED);\n var statusElement = rootElement.querySelector('.' + STATUS);\n if (statusElement) {\n statusElement.classList.remove(UPLOAD_SUCCESS);\n statusElement.classList.add(UPLOAD_FAILED);\n }\n }\n this.checkActionButtonStatus();\n }\n this.trigger('failure', args);\n var liElement = this.getLiElement(files);\n /* istanbul ignore next */\n if (!isNullOrUndefined(liElement) && !isNullOrUndefined(liElement.querySelector('.' + DELETE_ICON))) {\n var spinnerTarget = liElement.querySelector('.' + DELETE_ICON);\n hideSpinner(spinnerTarget);\n detach(liElement.querySelector('.e-spinner-pane'));\n }\n };\n /* istanbul ignore next */\n Uploader.prototype.getFilesFromFolder = function (event) {\n this.filesEntries = [];\n var items = this.multiple ?\n event.dataTransfer.items : [event.dataTransfer.items[0]];\n var validDirectoryUpload = this.checkDirectoryUpload(items);\n if (!validDirectoryUpload) {\n return;\n }\n var _loop_3 = function (i) {\n var item = items[i].webkitGetAsEntry();\n if (item.isFile) {\n var files_2 = [];\n (item).file(function (fileObj) {\n var path = item.fullPath;\n files_2.push({ 'path': path, 'file': fileObj });\n });\n this_1.renderSelectedFiles(event, files_2, true);\n }\n else if (item.isDirectory) {\n this_1.traverseFileTree(item, event);\n }\n };\n var this_1 = this;\n for (var i = 0; i < items.length; i++) {\n _loop_3(i);\n }\n };\n /* istanbul ignore next */\n Uploader.prototype.checkDirectoryUpload = function (items) {\n for (var i = 0; items && i < items.length; i++) {\n var item = items[i].webkitGetAsEntry();\n if (item.isDirectory) {\n return true;\n }\n }\n return false;\n };\n /* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n /* istanbul ignore next */\n Uploader.prototype.traverseFileTree = function (item, event) {\n /* eslint-enable @typescript-eslint/explicit-module-boundary-types */\n if (item.isFile) {\n this.filesEntries.push(item);\n }\n else if (item.isDirectory) {\n var directoryReader = item.createReader();\n this.readFileFromDirectory(directoryReader, event);\n }\n };\n /* istanbul ignore next */\n Uploader.prototype.readFileFromDirectory = function (directoryReader, event) {\n var _this = this;\n directoryReader.readEntries(function (entries) {\n for (var i = 0; i < entries.length; i++) {\n _this.traverseFileTree(entries[i], event);\n }\n _this.pushFilesEntries(event);\n if (entries.length) {\n _this.readFileFromDirectory(directoryReader);\n }\n });\n };\n Uploader.prototype.pushFilesEntries = function (event) {\n var _this = this;\n var files = [];\n var _loop_4 = function (i) {\n this_2.filesEntries[i].file(function (fileObj) {\n if (_this.filesEntries.length) {\n var path = _this.filesEntries[i].fullPath;\n files.push({ 'path': path, 'file': fileObj });\n if (i === _this.filesEntries.length - 1) {\n _this.filesEntries = [];\n _this.renderSelectedFiles(event, files, true);\n }\n }\n });\n };\n var this_2 = this;\n for (var i = 0; i < this.filesEntries.length; i++) {\n _loop_4(i);\n }\n };\n Uploader.prototype.onSelectFiles = function (args) {\n if (!this.enabled) {\n return;\n }\n var targetFiles;\n /* istanbul ignore next */\n if (args.type === 'drop') {\n if (this.directoryUpload) {\n this.getFilesFromFolder(args);\n }\n else {\n var files = this.sortFilesList = args.dataTransfer.files;\n if (this.browserName !== 'msie' && this.browserName !== 'edge' && this.browserName !== 'safari') {\n this.element.files = files;\n }\n if (files.length > 0) {\n targetFiles = this.multiple ? this.sortFileList(files) : [files[0]];\n this.renderSelectedFiles(args, targetFiles);\n }\n }\n }\n else {\n targetFiles = [].slice.call(args.target.files);\n this.renderSelectedFiles(args, targetFiles);\n }\n if (this.isAngular) {\n args.stopPropagation();\n }\n };\n /* istanbul ignore next */\n Uploader.prototype.getBase64 = function (file) {\n return new Promise(function (resolve, reject) {\n var fileReader = new FileReader();\n fileReader.readAsDataURL(file);\n fileReader.onload = function () { return resolve(fileReader.result); };\n fileReader.onerror = function (error) { return reject(error); };\n });\n };\n /* istanbul ignore next */\n /* tslint:ignore */\n Uploader.prototype.renderSelectedFiles = function (args, targetFiles, directory, paste) {\n var _this = this;\n this.base64String = [];\n var eventArgs = {\n event: args,\n cancel: false,\n filesData: [],\n isModified: false,\n modifiedFilesData: [],\n progressInterval: '',\n isCanceled: false,\n currentRequest: null,\n customFormData: null\n };\n /* istanbul ignore next */\n if (targetFiles.length < 1) {\n eventArgs.isCanceled = true;\n this.trigger('selected', eventArgs);\n return;\n }\n this.flag = true;\n var fileData = [];\n if (!this.multiple) {\n this.clearData(true);\n targetFiles = [targetFiles[0]];\n }\n for (var i = 0; i < targetFiles.length; i++) {\n var file = directory ? targetFiles[i].file : targetFiles[i];\n this.updateInitialFileDetails(args, targetFiles, file, i, fileData, directory, paste);\n }\n eventArgs.filesData = fileData;\n if (this.allowedExtensions.indexOf('*') > -1) {\n this.allTypes = true;\n }\n if (this.enableHtmlSanitizer) {\n for (var i = 0; i < fileData.length; i++) {\n var sanitizeFile = SanitizeHtmlHelper.beforeSanitize();\n var sanitizeFileName = SanitizeHtmlHelper.serializeValue(sanitizeFile, fileData[parseInt(i.toString())].name);\n if (sanitizeFileName !== fileData[parseInt(i.toString())].name) {\n var encodedFileName = targetFiles[parseInt(i.toString())].name.replace(/[\\u00A0-\\u9999<>\\&]/g, function (i) {\n return '&#' + i.charCodeAt(0) + ';';\n });\n fileData[parseInt(i.toString())].name = encodedFileName;\n fileData[parseInt(i.toString())].status = this.localizedTexts('invalidFileName');\n fileData[parseInt(i.toString())].statusCode = '0';\n }\n }\n }\n if (!this.allTypes) {\n fileData = this.checkExtension(fileData);\n }\n this.trigger('selected', eventArgs, function (eventArgs) {\n _this._internalRenderSelect(eventArgs, fileData);\n });\n };\n Uploader.prototype.updateInitialFileDetails = function (args, \n // eslint-disable-next-line @typescript-eslint/indent\n targetFiles, file, i, fileData, directory, paste) {\n var fileName = directory ? targetFiles[i].path.substring(1, targetFiles[i].path.length) : paste ?\n getUniqueID(file.name.substring(0, file.name.lastIndexOf('.'))) + '.' + this.getFileType(file.name) :\n this.directoryUpload ? targetFiles[i].webkitRelativePath : file.name;\n var fileDetails = {\n name: fileName,\n rawFile: file,\n size: file.size,\n status: this.localizedTexts('readyToUploadMessage'),\n type: this.getFileType(file.name),\n validationMessages: this.validatedFileSize(file.size),\n statusCode: '1',\n id: getUniqueID(file.name.substring(0, file.name.lastIndexOf('.'))) + '.' + this.getFileType(file.name)\n };\n /* istanbul ignore next */\n if (paste) {\n fileDetails.fileSource = 'paste';\n }\n fileDetails.status = fileDetails.validationMessages.minSize !== '' ? this.localizedTexts('invalidMinFileSize') :\n fileDetails.validationMessages.maxSize !== '' ? this.localizedTexts('invalidMaxFileSize') : fileDetails.status;\n if (fileDetails.validationMessages.minSize !== '' || fileDetails.validationMessages.maxSize !== '') {\n fileDetails.statusCode = '0';\n }\n fileData.push(fileDetails);\n };\n Uploader.prototype._internalRenderSelect = function (eventArgs, fileData) {\n if (!eventArgs.cancel) {\n /* istanbul ignore next */\n this.selectedFiles = this.selectedFiles.concat(fileData);\n this.btnTabIndex = this.disableKeyboardNavigation ? '-1' : '0';\n if (this.showFileList) {\n if (eventArgs.isModified && eventArgs.modifiedFilesData.length > 0) {\n for (var j = 0; j < eventArgs.modifiedFilesData.length; j++) {\n for (var k = 0; k < fileData.length; k++) {\n if (eventArgs.modifiedFilesData[j].id === fileData[k].id) {\n eventArgs.modifiedFilesData[j].rawFile = fileData[k].rawFile;\n }\n }\n }\n var dataFiles = this.allTypes ? eventArgs.modifiedFilesData :\n this.checkExtension(eventArgs.modifiedFilesData);\n this.updateSortedFileList(dataFiles);\n this.filesData = dataFiles;\n if (!this.isForm || this.allowUpload()) {\n this.checkAutoUpload(dataFiles);\n }\n }\n else {\n this.createFileList(fileData, true);\n if (!this.isForm || this.allowUpload()) {\n this.checkAutoUpload(fileData);\n }\n }\n if (!isNullOrUndefined(eventArgs.progressInterval) && eventArgs.progressInterval !== '') {\n this.progressInterval = eventArgs.progressInterval;\n }\n }\n else {\n this.filesData = this.filesData.concat(fileData);\n if (this.autoUpload) {\n this.upload(this.filesData, true);\n }\n }\n this.raiseActionComplete();\n this.isFirstFileOnSelection = true;\n }\n };\n Uploader.prototype.allowUpload = function () {\n var allowFormUpload = false;\n if (this.isForm && (!isNullOrUndefined(this.asyncSettings.saveUrl) && this.asyncSettings.saveUrl !== '')) {\n allowFormUpload = true;\n }\n return allowFormUpload;\n };\n Uploader.prototype.isFormUpload = function () {\n var isFormUpload = false;\n if (this.isForm && ((isNullOrUndefined(this.asyncSettings.saveUrl) || this.asyncSettings.saveUrl === '')\n && (isNullOrUndefined(this.asyncSettings.removeUrl) || this.asyncSettings.removeUrl === ''))) {\n isFormUpload = true;\n }\n return isFormUpload;\n };\n Uploader.prototype.clearData = function (singleUpload) {\n if (!isNullOrUndefined(this.listParent)) {\n detach(this.listParent);\n this.listParent = null;\n }\n if (this.browserName !== 'msie' && !singleUpload) {\n this.element.value = '';\n }\n this.fileList = [];\n this.filesData = [];\n this.removeActionButtons();\n };\n Uploader.prototype.updateSortedFileList = function (filesData) {\n var previousListClone = this.createElement('div', { id: 'clonewrapper' });\n var added = -1;\n var removedList;\n if (this.listParent) {\n for (var i = 0; i < this.listParent.querySelectorAll('li').length; i++) {\n var liElement = this.listParent.querySelectorAll('li')[i];\n previousListClone.appendChild(liElement.cloneNode(true));\n }\n removedList = this.listParent.querySelectorAll('li');\n for (var _i = 0, removedList_1 = removedList; _i < removedList_1.length; _i++) {\n var item = removedList_1[_i];\n detach(item);\n }\n this.removeActionButtons();\n var oldList = [].slice.call(previousListClone.childNodes);\n detach(this.listParent);\n this.listParent = null;\n this.fileList = [];\n this.createParentUL();\n for (var index = 0; index < filesData.length; index++) {\n for (var j = 0; j < this.filesData.length; j++) {\n if (this.filesData[j].name === filesData[index].name) {\n this.listParent.appendChild(oldList[j]);\n EventHandler.add(oldList[j].querySelector('.e-icons'), 'click', this.removeFiles, this);\n this.fileList.push(oldList[j]);\n added = index;\n }\n }\n if (added !== index) {\n this.createFileList([filesData[index]]);\n }\n }\n }\n else {\n this.createFileList(filesData);\n }\n };\n Uploader.prototype.isBlank = function (str) {\n return (!str || /^\\s*$/.test(str));\n };\n Uploader.prototype.checkExtension = function (files) {\n var dropFiles = files;\n if (!this.isBlank(this.allowedExtensions)) {\n var allowedExtensions = [];\n var extensions = this.allowedExtensions.split(',');\n for (var _i = 0, extensions_1 = extensions; _i < extensions_1.length; _i++) {\n var extension = extensions_1[_i];\n allowedExtensions.push(extension.trim().toLocaleLowerCase());\n }\n for (var i = 0; i < files.length; i++) {\n if (allowedExtensions.indexOf(('.' + files[i].type).toLocaleLowerCase()) === -1) {\n files[i].status = this.localizedTexts('invalidFileType');\n files[i].statusCode = '0';\n }\n }\n }\n return dropFiles;\n };\n Uploader.prototype.validatedFileSize = function (fileSize) {\n var minSizeError = '';\n var maxSizeError = '';\n if (fileSize < this.minFileSize) {\n minSizeError = this.localizedTexts('invalidMinFileSize');\n }\n else if (fileSize > this.maxFileSize) {\n maxSizeError = this.localizedTexts('invalidMaxFileSize');\n }\n else {\n minSizeError = '';\n maxSizeError = '';\n }\n var errorMessage = { minSize: minSizeError, maxSize: maxSizeError };\n return errorMessage;\n };\n Uploader.prototype.isPreLoadFile = function (fileData) {\n var isPreload = false;\n for (var i = 0; i < this.files.length; i++) {\n if (this.files[i].name === fileData.name.slice(0, fileData.name.lastIndexOf('.')) && this.files[i].type === fileData.type) {\n isPreload = true;\n }\n }\n return isPreload;\n };\n Uploader.prototype.createCustomfileList = function (fileData) {\n this.createParentUL();\n for (var _i = 0, fileData_1 = fileData; _i < fileData_1.length; _i++) {\n var listItem = fileData_1[_i];\n var listElement = this.createElement('li', { className: FILE, attrs: { 'data-file-name': listItem.name } });\n this.uploadTemplateFn = this.templateComplier(this.template);\n var liTempCompiler = this.uploadTemplateFn(listItem, this, 'template', this.element.id + 'Template', this.isStringTemplate, null, listElement);\n if (liTempCompiler) {\n var fromElements = [].slice.call(liTempCompiler);\n append(fromElements, listElement);\n }\n var index = fileData.indexOf(listItem);\n var eventArgs = {\n element: listElement,\n fileInfo: listItem,\n index: index,\n isPreload: this.isPreLoadFile(listItem)\n };\n var eventsArgs = {\n element: listElement,\n fileInfo: listItem,\n index: index,\n isPreload: this.isPreLoadFile(listItem)\n };\n this.trigger('rendering', eventArgs);\n this.trigger('fileListRendering', eventsArgs);\n this.listParent.appendChild(listElement);\n this.fileList.push(listElement);\n }\n this.renderReactTemplates();\n };\n Uploader.prototype.createParentUL = function () {\n if (isNullOrUndefined(this.listParent)) {\n this.listParent = this.createElement('ul', { className: LIST_PARENT });\n this.uploadWrapper.appendChild(this.listParent);\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n Uploader.prototype.formFileList = function (fileData, files) {\n var fileList = this.createElement('li', { className: FILE });\n fileList.setAttribute('data-files-count', fileData.length + '');\n var fileContainer = this.createElement('span', { className: TEXT_CONTAINER });\n var statusMessage;\n for (var _i = 0, fileData_2 = fileData; _i < fileData_2.length; _i++) {\n var listItem = fileData_2[_i];\n var fileNameEle = this.createElement('span', { className: FILE_NAME });\n fileNameEle.innerHTML = this.getFileNameOnly(listItem.name);\n var fileTypeEle = this.createElement('span', { className: FILE_TYPE });\n var fileType = this.getFileType(listItem.name);\n fileTypeEle.innerHTML = '.' + fileType;\n if (!fileType) {\n fileTypeEle.classList.add('e-hidden');\n }\n if (!this.enableRtl) {\n fileContainer.appendChild(fileNameEle);\n fileContainer.appendChild(fileTypeEle);\n }\n else {\n var rtlContainer = this.createElement('span', { className: RTL_CONTAINER });\n rtlContainer.appendChild(fileTypeEle);\n rtlContainer.appendChild(fileNameEle);\n fileContainer.appendChild(rtlContainer);\n }\n this.truncateName(fileNameEle);\n statusMessage = this.formValidateFileInfo(listItem, fileList);\n }\n fileList.appendChild(fileContainer);\n this.setListToFileInfo(fileData, fileList);\n var index = this.listParent.querySelectorAll('li').length;\n var infoEle = this.createElement('span');\n if (fileList.classList.contains(INVALID_FILE)) {\n infoEle.classList.add(STATUS);\n infoEle.classList.add(INVALID_FILE);\n infoEle.innerText = fileData.length > 1 ? this.localizedTexts('invalidFileSelection') : statusMessage;\n }\n else {\n infoEle.classList.add(fileData.length > 1 ? INFORMATION : FILE_SIZE);\n infoEle.innerText = fileData.length > 1 ? this.localizedTexts('totalFiles') + ': ' + fileData.length + ' , '\n + this.localizedTexts('size') + ': ' +\n this.bytesToSize(this.getFileSize(fileData)) : this.bytesToSize(fileData[0].size);\n this.createFormInput(fileData);\n }\n fileContainer.appendChild(infoEle);\n if (isNullOrUndefined(fileList.querySelector('.e-icons'))) {\n var iconElement = this.createElement('span', { className: 'e-icons', attrs: { 'tabindex': this.btnTabIndex } });\n /* istanbul ignore next */\n if (this.browserName === 'msie') {\n iconElement.classList.add('e-msie');\n }\n iconElement.setAttribute('title', this.localizedTexts('remove'));\n fileList.appendChild(fileContainer);\n fileList.appendChild(iconElement);\n EventHandler.add(iconElement, 'click', this.removeFiles, this);\n iconElement.classList.add(REMOVE_ICON);\n }\n var eventArgs = {\n element: fileList,\n fileInfo: this.mergeFileInfo(fileData, fileList),\n index: index,\n isPreload: this.isPreLoadFile(this.mergeFileInfo(fileData, fileList))\n };\n var eventsArgs = {\n element: fileList,\n fileInfo: this.mergeFileInfo(fileData, fileList),\n index: index,\n isPreload: this.isPreLoadFile(this.mergeFileInfo(fileData, fileList))\n };\n this.trigger('rendering', eventArgs);\n this.trigger('fileListRendering', eventsArgs);\n this.listParent.appendChild(fileList);\n this.fileList.push(fileList);\n };\n Uploader.prototype.formValidateFileInfo = function (listItem, fileList) {\n var statusMessage = listItem.status;\n var validationMessages = this.validatedFileSize(listItem.size);\n if (validationMessages.minSize !== '' || validationMessages.maxSize !== '') {\n this.addInvalidClass(fileList);\n statusMessage = validationMessages.minSize !== '' ? this.localizedTexts('invalidMinFileSize') :\n validationMessages.maxSize !== '' ? this.localizedTexts('invalidMaxFileSize') : statusMessage;\n }\n var typeValidationMessage = this.checkExtension(this.getFilesInArray(listItem))[0].status;\n if (typeValidationMessage === this.localizedTexts('invalidFileType')) {\n this.addInvalidClass(fileList);\n statusMessage = typeValidationMessage;\n }\n return statusMessage;\n };\n Uploader.prototype.addInvalidClass = function (fileList) {\n fileList.classList.add(INVALID_FILE);\n };\n Uploader.prototype.createFormInput = function (fileData) {\n if (this.browserName !== 'safari') {\n var inputElement = this.element.cloneNode(true);\n inputElement.classList.add(HIDDEN_INPUT);\n for (var _i = 0, fileData_3 = fileData; _i < fileData_3.length; _i++) {\n var listItem = fileData_3[_i];\n listItem.input = inputElement;\n }\n inputElement.setAttribute('id', getUniqueID('hiddenUploader'));\n inputElement.setAttribute('name', this.uploaderName);\n this.uploadWrapper.querySelector('.' + INPUT_WRAPPER).appendChild(inputElement);\n if (this.browserName !== 'msie' && this.browserName !== 'edge') {\n this.element.value = '';\n }\n }\n };\n Uploader.prototype.getFileSize = function (fileData) {\n var fileSize = 0;\n for (var _i = 0, fileData_4 = fileData; _i < fileData_4.length; _i++) {\n var file = fileData_4[_i];\n fileSize += file.size;\n }\n return fileSize;\n };\n Uploader.prototype.mergeFileInfo = function (fileData, fileList) {\n var result = {\n name: '',\n rawFile: '',\n size: 0,\n status: '',\n type: '',\n validationMessages: { minSize: '', maxSize: '' },\n statusCode: '1',\n list: fileList\n };\n var fileNames = [];\n var type = '';\n for (var _i = 0, fileData_5 = fileData; _i < fileData_5.length; _i++) {\n var listItem = fileData_5[_i];\n fileNames.push(listItem.name);\n type = listItem.type;\n }\n result.name = fileNames.join(', ');\n result.size = this.getFileSize(fileData);\n result.type = type;\n result.status = this.statusForFormUpload(fileData, fileList);\n return result;\n };\n Uploader.prototype.statusForFormUpload = function (fileData, fileList) {\n var isValid = true;\n var statusMessage;\n for (var _i = 0, fileData_6 = fileData; _i < fileData_6.length; _i++) {\n var listItem = fileData_6[_i];\n statusMessage = listItem.status;\n var validationMessages = this.validatedFileSize(listItem.size);\n if (validationMessages.minSize !== '' || validationMessages.maxSize !== '') {\n isValid = false;\n statusMessage = validationMessages.minSize !== '' ? this.localizedTexts('invalidMinFileSize') :\n validationMessages.maxSize !== '' ? this.localizedTexts('invalidMaxFileSize') : statusMessage;\n }\n var typeValidationMessage = this.checkExtension(this.getFilesInArray(listItem))[0].status;\n if (typeValidationMessage === this.localizedTexts('invalidFileType')) {\n isValid = false;\n statusMessage = typeValidationMessage;\n }\n }\n if (!isValid) {\n fileList.classList.add(INVALID_FILE);\n statusMessage = fileData.length > 1 ? this.localizedTexts('invalidFileSelection') : statusMessage;\n }\n else {\n statusMessage = this.localizedTexts('totalFiles') + ': ' + fileData.length + ' , '\n + this.localizedTexts('size') + ': ' +\n this.bytesToSize(this.getFileSize(fileData));\n }\n return statusMessage;\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n Uploader.prototype.formCustomFileList = function (fileData, files) {\n this.createParentUL();\n var fileList = this.createElement('li', { className: FILE });\n fileList.setAttribute('data-files-count', fileData.length + '');\n this.setListToFileInfo(fileData, fileList);\n var result = this.mergeFileInfo(fileData, fileList);\n fileList.setAttribute('data-file-name', result.name);\n this.uploadTemplateFn = this.templateComplier(this.template);\n var liTempCompiler = this.uploadTemplateFn(result, this, 'template', this.element.id + 'Template', this.isStringTemplate, null, fileList);\n if (liTempCompiler) {\n var fromElements = [].slice.call(liTempCompiler);\n append(fromElements, fileList);\n }\n var index = this.listParent.querySelectorAll('li').length;\n if (!fileList.classList.contains(INVALID_FILE)) {\n this.createFormInput(fileData);\n }\n var eventArgs = {\n element: fileList,\n fileInfo: result,\n index: index,\n isPreload: this.isPreLoadFile(result)\n };\n var eventsArgs = {\n element: fileList,\n fileInfo: result,\n index: index,\n isPreload: this.isPreLoadFile(result)\n };\n this.trigger('rendering', eventArgs);\n this.trigger('fileListRendering', eventsArgs);\n this.listParent.appendChild(fileList);\n this.fileList.push(fileList);\n this.renderReactTemplates();\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-param */\n /**\n * Create the file list for specified files data.\n *\n * @param { FileInfo[] } fileData - Specifies the files data for file list creation.\n * @returns {void}\n */\n Uploader.prototype.createFileList = function (fileData, isSelectedFile) {\n /* eslint-enable valid-jsdoc, jsdoc/require-param */\n this.createParentUL();\n this.filesData = (isSelectedFile) ? this.filesData.concat(fileData) : fileData;\n if (this.template !== '' && !isNullOrUndefined(this.template)) {\n if (this.isFormUpload()) {\n this.uploadWrapper.classList.add(FORM_UPLOAD);\n this.formCustomFileList(fileData, this.element.files);\n }\n else {\n this.createCustomfileList(fileData);\n }\n }\n else if (this.isFormUpload()) {\n this.uploadWrapper.classList.add(FORM_UPLOAD);\n this.formFileList(fileData, this.element.files);\n }\n else {\n for (var _i = 0, fileData_7 = fileData; _i < fileData_7.length; _i++) {\n var listItem = fileData_7[_i];\n var liElement = this.createElement('li', {\n className: FILE,\n attrs: { 'data-file-name': listItem.name, 'data-files-count': '1' }\n });\n var textContainer = this.createElement('span', { className: TEXT_CONTAINER });\n var textElement = this.createElement('span', { className: FILE_NAME, attrs: { 'title': listItem.name } });\n textElement.innerHTML = this.getFileNameOnly(listItem.name);\n var fileExtension = this.createElement('span', { className: FILE_TYPE });\n var fileType = this.getFileType(listItem.name);\n fileExtension.innerHTML = '.' + fileType;\n if (!fileType) {\n fileExtension.classList.add('e-hidden');\n }\n if (!this.enableRtl) {\n textContainer.appendChild(textElement);\n textContainer.appendChild(fileExtension);\n }\n else {\n var rtlContainer = this.createElement('span', { className: RTL_CONTAINER });\n rtlContainer.appendChild(fileExtension);\n rtlContainer.appendChild(textElement);\n textContainer.appendChild(rtlContainer);\n }\n var fileSize = this.createElement('span', { className: FILE_SIZE });\n fileSize.innerHTML = this.bytesToSize(listItem.size);\n textContainer.appendChild(fileSize);\n var statusElement = this.createElement('span', { className: STATUS });\n textContainer.appendChild(statusElement);\n statusElement.innerHTML = listItem.status;\n liElement.appendChild(textContainer);\n var iconElement = this.createElement('span', { className: ' e-icons',\n attrs: { 'tabindex': this.btnTabIndex } });\n /* istanbul ignore next */\n if (this.browserName === 'msie') {\n iconElement.classList.add('e-msie');\n }\n iconElement.setAttribute('title', this.localizedTexts('remove'));\n liElement.appendChild(iconElement);\n EventHandler.add(iconElement, 'click', this.removeFiles, this);\n if (listItem.statusCode === '2') {\n statusElement.classList.add(UPLOAD_SUCCESS);\n iconElement.classList.add(DELETE_ICON);\n iconElement.setAttribute('title', this.localizedTexts('delete'));\n }\n else if (listItem.statusCode !== '1') {\n statusElement.classList.remove(UPLOAD_SUCCESS);\n statusElement.classList.add(VALIDATION_FAILS);\n }\n if (this.autoUpload && listItem.statusCode === '1' && this.asyncSettings.saveUrl !== '') {\n statusElement.innerHTML = '';\n }\n if (!iconElement.classList.contains(DELETE_ICON)) {\n iconElement.classList.add(REMOVE_ICON);\n }\n var index = fileData.indexOf(listItem);\n var eventArgs = {\n element: liElement,\n fileInfo: listItem,\n index: index,\n isPreload: this.isPreLoadFile(listItem)\n };\n var eventsArgs = {\n element: liElement,\n fileInfo: listItem,\n index: index,\n isPreload: this.isPreLoadFile(listItem)\n };\n this.trigger('rendering', eventArgs);\n this.trigger('fileListRendering', eventsArgs);\n this.listParent.appendChild(liElement);\n this.fileList.push(liElement);\n this.truncateName(textElement);\n var preventActionComplete = this.flag;\n if (this.isPreLoadFile(listItem)) {\n this.flag = false;\n this.checkActionComplete(true);\n this.flag = preventActionComplete;\n }\n }\n }\n };\n Uploader.prototype.getSlicedName = function (nameElement) {\n var text = nameElement.textContent;\n nameElement.dataset.tail = text.slice(text.length - 10);\n };\n Uploader.prototype.setListToFileInfo = function (fileData, fileList) {\n for (var _i = 0, fileData_8 = fileData; _i < fileData_8.length; _i++) {\n var listItem = fileData_8[_i];\n listItem.list = fileList;\n }\n };\n Uploader.prototype.truncateName = function (name) {\n var nameElement = name;\n if (this.browserName !== 'edge' && nameElement.offsetWidth < nameElement.scrollWidth) {\n this.getSlicedName(nameElement);\n /* istanbul ignore next */\n }\n else if (nameElement.offsetWidth + 1 < nameElement.scrollWidth) {\n this.getSlicedName(nameElement);\n }\n };\n Uploader.prototype.getFileType = function (name) {\n var extension;\n var index = name.lastIndexOf('.');\n if (index >= 0) {\n extension = name.substring(index + 1);\n }\n return extension ? extension : '';\n };\n Uploader.prototype.getFileNameOnly = function (name) {\n var type = this.getFileType(name);\n var names = name.split('.' + type);\n return type = names[0];\n };\n Uploader.prototype.setInitialAttributes = function () {\n if (this.initialAttr.accept) {\n this.element.setAttribute('accept', this.initialAttr.accept);\n }\n if (this.initialAttr.disabled) {\n this.element.setAttribute('disabled', 'disabled');\n }\n if (this.initialAttr.multiple) {\n var newAttr = document.createAttribute('multiple');\n this.element.setAttributeNode(newAttr);\n }\n };\n Uploader.prototype.filterfileList = function (files) {\n var filterFiles = [];\n var li;\n for (var i = 0; i < files.length; i++) {\n li = this.getLiElement(files[i]);\n if (!li.classList.contains(UPLOAD_SUCCESS)) {\n filterFiles.push(files[i]);\n }\n }\n return filterFiles;\n };\n Uploader.prototype.updateStatus = function (files, status, statusCode, updateLiStatus) {\n if (updateLiStatus === void 0) { updateLiStatus = true; }\n if (!(status === '' || isNullOrUndefined(status)) && !(statusCode === '' || isNullOrUndefined(statusCode))) {\n files.status = status;\n files.statusCode = statusCode;\n }\n if (updateLiStatus) {\n var li = this.getLiElement(files);\n if (!isNullOrUndefined(li)) {\n if (!isNullOrUndefined(li.querySelector('.' + STATUS)) && !((status === '' || isNullOrUndefined(status)))) {\n li.querySelector('.' + STATUS).textContent = status;\n }\n }\n }\n return files;\n };\n Uploader.prototype.getLiElement = function (files) {\n var index;\n for (var i = 0; i < this.filesData.length; i++) {\n if (!isNullOrUndefined(files) && ((!isNullOrUndefined(this.filesData[i].id) &&\n !isNullOrUndefined(files.id)) ? (this.filesData[i].name === files.name &&\n this.filesData[i].id === files.id) : this.filesData[i].name === files.name)) {\n index = i;\n }\n }\n return this.fileList[index];\n };\n Uploader.prototype.createProgressBar = function (liElement) {\n var progressbarWrapper = this.createElement('span', { className: PROGRESS_WRAPPER });\n var progressBar = this.createElement('progressbar', { className: PROGRESSBAR, attrs: { value: '0', max: '100' } });\n var progressbarInnerWrapper = this.createElement('span', { className: PROGRESS_INNER_WRAPPER });\n progressBar.setAttribute('style', 'width: 0%');\n var progressbarText = this.createElement('span', { className: PROGRESSBAR_TEXT });\n progressbarText.textContent = '0%';\n progressbarInnerWrapper.appendChild(progressBar);\n progressbarWrapper.appendChild(progressbarInnerWrapper);\n progressbarWrapper.appendChild(progressbarText);\n liElement.querySelector('.' + TEXT_CONTAINER).appendChild(progressbarWrapper);\n };\n /* istanbul ignore next */\n Uploader.prototype.updateProgressbar = function (e, li) {\n if (!isNaN(Math.round((e.loaded / e.total) * 100)) && !isNullOrUndefined(li.querySelector('.' + PROGRESSBAR))) {\n if (!isNullOrUndefined(this.progressInterval) && this.progressInterval !== '') {\n var value = (Math.round((e.loaded / e.total) * 100)) % parseInt(this.progressInterval, 10);\n if (value === 0 || value === 100) {\n this.changeProgressValue(li, Math.round((e.loaded / e.total) * 100).toString() + '%');\n }\n }\n else {\n this.changeProgressValue(li, Math.round((e.loaded / e.total) * 100).toString() + '%');\n }\n }\n };\n Uploader.prototype.changeProgressValue = function (li, progressValue) {\n li.querySelector('.' + PROGRESSBAR).setAttribute('style', 'width:' + progressValue);\n li.querySelector('.' + PROGRESSBAR_TEXT).textContent = progressValue;\n };\n Uploader.prototype.uploadInProgress = function (e, files, customUI, request) {\n var li = this.getLiElement(files);\n if (isNullOrUndefined(li) && (!customUI)) {\n return;\n }\n if (!isNullOrUndefined(li)) {\n /* istanbul ignore next */\n if (files.statusCode === '5') {\n this.cancelUploadingFile(files, e, request, li);\n }\n if (!(li.querySelectorAll('.' + PROGRESS_WRAPPER).length > 0) && li.querySelector('.' + STATUS)) {\n li.querySelector('.' + STATUS).classList.add(UPLOAD_INPROGRESS);\n this.createProgressBar(li);\n this.updateProgressBarClasses(li, UPLOAD_INPROGRESS);\n li.querySelector('.' + STATUS).classList.remove(UPLOAD_FAILED);\n }\n this.updateProgressbar(e, li);\n var iconEle = li.querySelector('.' + REMOVE_ICON);\n if (!isNullOrUndefined(iconEle)) {\n iconEle.classList.add(ABORT_ICON, UPLOAD_INPROGRESS);\n iconEle.setAttribute('title', this.localizedTexts('abort'));\n iconEle.classList.remove(REMOVE_ICON);\n }\n }\n else {\n this.cancelUploadingFile(files, e, request);\n }\n var args = { e: e, operation: 'upload', file: this.updateStatus(files, this.localizedTexts('inProgress'), '3') };\n this.trigger('progress', args);\n };\n /* istanbul ignore next */\n Uploader.prototype.cancelUploadingFile = function (files, e, request, li) {\n var _this = this;\n if (files.statusCode === '5') {\n var eventArgs = {\n event: e,\n fileData: files,\n cancel: false,\n customFormData: []\n };\n this.trigger('canceling', eventArgs, function (eventArgs) {\n if (eventArgs.cancel) {\n files.statusCode = '3';\n if (!isNullOrUndefined(li)) {\n var spinnerTarget = li.querySelector('.' + ABORT_ICON);\n if (!isNullOrUndefined(spinnerTarget)) {\n hideSpinner(spinnerTarget);\n detach(li.querySelector('.e-spinner-pane'));\n }\n }\n }\n else {\n request.emitError = false;\n request.httpRequest.abort();\n var formData = new FormData();\n if (files.statusCode === '5') {\n var name_1 = _this.element.getAttribute('name');\n formData.append(name_1, files.name);\n formData.append('cancel-uploading', files.name);\n _this.updateFormData(formData, eventArgs.customFormData);\n var ajax = new Ajax(_this.asyncSettings.removeUrl, 'POST', true, null);\n ajax.emitError = false;\n ajax.onLoad = function (e) {\n _this.removecanceledFile(e, files);\n return {};\n };\n ajax.send(formData);\n }\n }\n });\n }\n };\n Uploader.prototype.removecanceledFile = function (e, file) {\n var liElement = this.getLiElement(file);\n if (isNullOrUndefined(liElement) || liElement.querySelector('.' + RETRY_ICON) || isNullOrUndefined(liElement.querySelector('.' + ABORT_ICON))) {\n return;\n }\n this.updateStatus(file, this.localizedTexts('fileUploadCancel'), '5');\n this.renderFailureState(e, file, liElement);\n var spinnerTarget = liElement.querySelector('.' + REMOVE_ICON);\n if (!isNullOrUndefined(liElement)) {\n hideSpinner(spinnerTarget);\n if (!isNullOrUndefined(liElement.querySelector('.e-spinner-pane'))) {\n detach(liElement.querySelector('.e-spinner-pane'));\n }\n }\n var requestResponse = e && e.currentTarget ? this.getResponse(e) : null;\n var args = { event: e, response: requestResponse, operation: 'cancel', file: file };\n this.trigger('success', args);\n };\n Uploader.prototype.renderFailureState = function (e, file, liElement) {\n var _this = this;\n this.updateProgressBarClasses(liElement, UPLOAD_FAILED);\n this.removeProgressbar(liElement, 'failure');\n if (!isNullOrUndefined(liElement.querySelector('.e-file-status'))) {\n liElement.querySelector('.e-file-status').classList.add(UPLOAD_FAILED);\n }\n var deleteIcon = liElement.querySelector('.' + ABORT_ICON);\n if (isNullOrUndefined(deleteIcon)) {\n return;\n }\n deleteIcon.classList.remove(ABORT_ICON, UPLOAD_INPROGRESS);\n deleteIcon.classList.add(REMOVE_ICON);\n deleteIcon.setAttribute('title', this.localizedTexts('remove'));\n this.pauseButton = this.createElement('span', { className: 'e-icons e-file-reload-btn', attrs: { 'tabindex': this.btnTabIndex } });\n deleteIcon.parentElement.insertBefore(this.pauseButton, deleteIcon);\n this.pauseButton.setAttribute('title', this.localizedTexts('retry'));\n var retryElement = liElement.querySelector('.' + RETRY_ICON);\n /* istanbul ignore next */\n retryElement.addEventListener('click', function (e) {\n _this.reloadcanceledFile(e, file, liElement, false);\n }, false);\n };\n Uploader.prototype.reloadcanceledFile = function (e, file, liElement, custom) {\n file.statusCode = '1';\n file.status = this.localizedTexts('readyToUploadMessage');\n if (!custom) {\n if (!isNullOrUndefined(liElement.querySelector('.' + STATUS))) {\n liElement.querySelector('.' + STATUS).classList.remove(UPLOAD_FAILED);\n }\n if (!isNullOrUndefined(liElement.querySelector('.' + RETRY_ICON))) {\n detach(liElement.querySelector('.' + RETRY_ICON));\n }\n this.pauseButton = null;\n }\n /* istanbul ignore next */\n if (!isNullOrUndefined(liElement)) {\n liElement.classList.add(RESTRICT_RETRY);\n }\n this.upload([file]);\n };\n /* istanbul ignore next */\n Uploader.prototype.uploadComplete = function (e, file, customUI) {\n var status = e.target;\n if (status.readyState === 4 && status.status >= 200 && status.status <= 299) {\n var li = this.getLiElement(file);\n if (isNullOrUndefined(li) && (!customUI || isNullOrUndefined(customUI))) {\n return;\n }\n if (!isNullOrUndefined(li)) {\n this.updateProgressBarClasses(li, UPLOAD_SUCCESS);\n this.removeProgressbar(li, 'success');\n var iconEle = li.querySelector('.' + ABORT_ICON);\n if (!isNullOrUndefined(iconEle)) {\n iconEle.classList.add(DELETE_ICON);\n iconEle.setAttribute('title', this.localizedTexts('delete'));\n iconEle.classList.remove(ABORT_ICON);\n iconEle.classList.remove(UPLOAD_INPROGRESS);\n }\n }\n this.raiseSuccessEvent(e, file);\n }\n else {\n this.uploadFailed(e, file);\n }\n };\n Uploader.prototype.getResponse = function (e) {\n var target = e.currentTarget;\n var response = {\n readyState: target.readyState,\n statusCode: target.status,\n statusText: target.statusText,\n headers: target.getAllResponseHeaders(),\n withCredentials: target.withCredentials\n };\n return response;\n };\n Uploader.prototype.raiseSuccessEvent = function (e, file) {\n var _this = this;\n var response = e && e.currentTarget ? this.getResponse(e) : null;\n var statusMessage = this.localizedTexts('uploadSuccessMessage');\n var args = {\n e: e, response: response, operation: 'upload', file: this.updateStatus(file, statusMessage, '2', false), statusText: statusMessage\n };\n var liElement = this.getLiElement(file);\n if (!isNullOrUndefined(liElement)) {\n var spinnerEle = liElement.querySelector('.' + SPINNER_PANE);\n if (!isNullOrUndefined(spinnerEle)) {\n hideSpinner(liElement);\n detach(spinnerEle);\n }\n }\n this.trigger('success', args, function (args) {\n _this.updateStatus(file, args.statusText, '2');\n _this.uploadedFilesData.push(file);\n _this.trigger('change', { file: _this.uploadedFilesData });\n _this.checkActionButtonStatus();\n if (_this.fileList.length > 0) {\n if ((!(_this.getLiElement(file)).classList.contains(RESTRICT_RETRY))) {\n _this.uploadSequential();\n _this.checkActionComplete(true);\n }\n else {\n /* istanbul ignore next */\n (_this.getLiElement(file)).classList.remove(RESTRICT_RETRY);\n }\n }\n });\n };\n Uploader.prototype.uploadFailed = function (e, file) {\n var _this = this;\n var li = this.getLiElement(file);\n var response = e && e.currentTarget ? this.getResponse(e) : null;\n var statusMessage = this.localizedTexts('uploadFailedMessage');\n var args = {\n e: e, response: response, operation: 'upload', file: this.updateStatus(file, statusMessage, '0', false), statusText: statusMessage\n };\n if (!isNullOrUndefined(li)) {\n this.renderFailureState(e, file, li);\n }\n this.trigger('failure', args, function (args) {\n _this.updateStatus(file, args.statusText, '0');\n _this.checkActionButtonStatus();\n _this.uploadSequential();\n _this.checkActionComplete(true);\n });\n };\n Uploader.prototype.uploadSequential = function () {\n if (this.sequentialUpload) {\n if (this.autoUpload) {\n /* istanbul ignore next */\n this.checkAutoUpload(this.filesData);\n }\n else {\n this.uploadButtonClick();\n }\n }\n };\n Uploader.prototype.checkActionComplete = function (increment) {\n if (increment) {\n ++this.actionCompleteCount;\n }\n else {\n --this.actionCompleteCount;\n }\n this.raiseActionComplete();\n };\n Uploader.prototype.raiseActionComplete = function () {\n if ((this.filesData.length === this.actionCompleteCount) && this.flag) {\n this.flag = false;\n var eventArgs = {\n fileData: []\n };\n eventArgs.fileData = this.getSelectedFileStatus(this.selectedFiles);\n this.trigger('actionComplete', eventArgs);\n }\n };\n Uploader.prototype.getSelectedFileStatus = function (selectedFiles) {\n var matchFiles = [];\n var matchFilesIndex = 0;\n for (var selectFileIndex = 0; selectFileIndex < selectedFiles.length; selectFileIndex++) {\n var selectedFileData = selectedFiles[selectFileIndex];\n for (var fileDataIndex = 0; fileDataIndex < this.filesData.length; fileDataIndex++) {\n if (this.filesData[fileDataIndex].name === selectedFileData.name && this.filesData[fileDataIndex].status === selectedFileData.status) {\n matchFiles[matchFilesIndex] = this.filesData[fileDataIndex];\n ++matchFilesIndex;\n }\n }\n }\n return matchFiles;\n };\n Uploader.prototype.updateProgressBarClasses = function (li, className) {\n var progressBar = li.querySelector('.' + PROGRESSBAR);\n if (!isNullOrUndefined(progressBar)) {\n progressBar.classList.add(className);\n }\n };\n Uploader.prototype.removeProgressbar = function (li, callType) {\n var _this = this;\n if (!isNullOrUndefined(li.querySelector('.' + PROGRESS_WRAPPER))) {\n this.progressAnimation = new Animation({ duration: 1250 });\n this.progressAnimation.animate(li.querySelector('.' + PROGRESS_WRAPPER), { name: 'FadeOut' });\n this.progressAnimation.animate(li.querySelector('.' + PROGRESSBAR_TEXT), { name: 'FadeOut' });\n setTimeout(function () {\n _this.animateProgressBar(li, callType);\n }, 750);\n }\n };\n /* istanbul ignore next */\n Uploader.prototype.animateProgressBar = function (li, callType) {\n if (callType === 'success') {\n li.classList.add(UPLOAD_SUCCESS);\n if (!isNullOrUndefined(li.querySelector('.' + STATUS))) {\n li.querySelector('.' + STATUS).classList.remove(UPLOAD_INPROGRESS);\n this.progressAnimation.animate(li.querySelector('.' + STATUS), { name: 'FadeIn' });\n li.querySelector('.' + STATUS).classList.add(UPLOAD_SUCCESS);\n }\n }\n else {\n if (!isNullOrUndefined(li.querySelector('.' + STATUS))) {\n li.querySelector('.' + STATUS).classList.remove(UPLOAD_INPROGRESS);\n this.progressAnimation.animate(li.querySelector('.' + STATUS), { name: 'FadeIn' });\n li.querySelector('.' + STATUS).classList.add(UPLOAD_FAILED);\n }\n }\n if (li.querySelector('.' + PROGRESS_WRAPPER)) {\n detach(li.querySelector('.' + PROGRESS_WRAPPER));\n }\n };\n Uploader.prototype.setExtensions = function (extensions) {\n if (extensions !== '' && !isNullOrUndefined(extensions)) {\n this.element.setAttribute('accept', extensions);\n }\n else {\n this.element.removeAttribute('accept');\n }\n };\n Uploader.prototype.templateComplier = function (uploadTemplate) {\n if (uploadTemplate) {\n try {\n if (selectAll(uploadTemplate, document).length) {\n return compile(select(uploadTemplate, document).innerHTML.trim());\n }\n else {\n return compile(uploadTemplate);\n }\n }\n catch (exception) {\n return compile(uploadTemplate);\n }\n }\n return undefined;\n };\n Uploader.prototype.setRTL = function () {\n if (this.enableRtl) {\n addClass([this.uploadWrapper], RTL);\n }\n else {\n removeClass([this.uploadWrapper], RTL);\n }\n };\n Uploader.prototype.localizedTexts = function (localeText) {\n this.l10n.setLocale(this.locale);\n return this.l10n.getConstant(localeText);\n };\n Uploader.prototype.setControlStatus = function () {\n if (!this.enabled) {\n this.uploadWrapper.classList.add(DISABLED);\n this.element.setAttribute('disabled', 'disabled');\n this.browseButton.setAttribute('disabled', 'disabled');\n if (!isNullOrUndefined(this.clearButton)) {\n this.clearButton.setAttribute('disabled', 'disabled');\n }\n if (!isNullOrUndefined(this.uploadButton)) {\n this.uploadButton.setAttribute('disabled', 'disabled');\n }\n }\n else {\n if (this.uploadWrapper.classList.contains(DISABLED)) {\n this.uploadWrapper.classList.remove(DISABLED);\n }\n if (!isNullOrUndefined(this.browseButton) && this.element.hasAttribute('disabled')) {\n this.element.removeAttribute('disabled');\n this.browseButton.removeAttribute('disabled');\n }\n if (!isNullOrUndefined(this.clearButton) && this.clearButton.hasAttribute('disabled')) {\n this.clearButton.removeAttribute('disabled');\n }\n if (!isNullOrUndefined(this.uploadButton) && this.uploadButton.hasAttribute('disabled')) {\n this.uploadButton.hasAttribute('disabled');\n }\n }\n };\n Uploader.prototype.checkHTMLAttributes = function (isDynamic) {\n var attributes = isDynamic ? isNullOrUndefined(this.htmlAttributes) ? [] : Object.keys(this.htmlAttributes) :\n ['accept', 'multiple', 'disabled'];\n for (var _i = 0, attributes_1 = attributes; _i < attributes_1.length; _i++) {\n var prop = attributes_1[_i];\n if (!isNullOrUndefined(this.element.getAttribute(prop))) {\n switch (prop) {\n case 'accept':\n if ((isNullOrUndefined(this.uploaderOptions) || (this.uploaderOptions['allowedExtensions'] === undefined))\n || isDynamic) {\n this.setProperties({ allowedExtensions: this.element.getAttribute('accept') }, !isDynamic);\n this.initialAttr.accept = this.allowedExtensions;\n }\n break;\n case 'multiple':\n if ((isNullOrUndefined(this.uploaderOptions) || (this.uploaderOptions['multiple'] === undefined)) || isDynamic) {\n var isMutiple = this.element.getAttribute(prop) === 'multiple' ||\n this.element.getAttribute(prop) === '' || this.element.getAttribute(prop) === 'true' ? true : false;\n this.setProperties({ multiple: isMutiple }, !isDynamic);\n this.initialAttr.multiple = true;\n }\n break;\n case 'disabled':\n if ((isNullOrUndefined(this.uploaderOptions) || (this.uploaderOptions['enabled'] === undefined)) || isDynamic) {\n var isDisabled = this.element.getAttribute(prop) === 'disabled' ||\n this.element.getAttribute(prop) === '' || this.element.getAttribute(prop) === 'true' ? false : true;\n this.setProperties({ enabled: isDisabled }, !isDynamic);\n this.initialAttr.disabled = true;\n }\n }\n }\n }\n };\n Uploader.prototype.chunkUpload = function (file, custom, fileIndex) {\n var start = 0;\n var end = Math.min(this.asyncSettings.chunkSize, file.size);\n var index = 0;\n var blob = file.rawFile.slice(start, end);\n var metaData = { chunkIndex: index, blob: blob, file: file, start: start, end: end, retryCount: 0, request: null };\n this.sendRequest(file, metaData, custom, fileIndex);\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n Uploader.prototype.sendRequest = function (file, metaData, custom, fileIndex) {\n var _this = this;\n var formData = new FormData();\n var blob = file.rawFile.slice(metaData.start, metaData.end);\n formData.append(this.uploaderName, blob, file.name);\n formData.append('chunk-index', metaData.chunkIndex.toString());\n formData.append('chunkIndex', metaData.chunkIndex.toString());\n var totalChunk = Math.max(Math.ceil(file.size / this.asyncSettings.chunkSize), 1);\n formData.append('total-chunk', totalChunk.toString());\n formData.append('totalChunk', totalChunk.toString());\n var ajax = new Ajax({ url: this.asyncSettings.saveUrl, type: 'POST', async: true, contentType: null });\n ajax.emitError = false;\n ajax.onLoad = function (e) {\n _this.chunkUploadComplete(e, metaData, custom);\n return {};\n };\n ajax.onUploadProgress = function (e) {\n _this.chunkUploadInProgress(e, metaData, custom);\n return {};\n };\n var eventArgs = {\n fileData: file,\n customFormData: [],\n cancel: false,\n chunkSize: this.asyncSettings.chunkSize === 0 ? null : this.asyncSettings.chunkSize\n };\n ajax.beforeSend = function (e) {\n eventArgs.currentRequest = ajax.httpRequest;\n eventArgs.currentChunkIndex = metaData.chunkIndex;\n if (eventArgs.currentChunkIndex === 0) {\n // This event is currently not required but to avoid breaking changes for previous customer, we have included.\n _this.trigger('uploading', eventArgs, function (eventArgs) {\n _this.uploadingEventCallback(formData, eventArgs, e, file);\n });\n }\n else {\n _this.trigger('chunkUploading', eventArgs, function (eventArgs) {\n _this.uploadingEventCallback(formData, eventArgs, e, file);\n });\n }\n };\n /* istanbul ignore next */\n ajax.onError = function (e) {\n _this.chunkUploadFailed(e, metaData, custom);\n return {};\n };\n ajax.send(formData);\n metaData.request = ajax;\n };\n Uploader.prototype.uploadingEventCallback = function (formData, eventArgs, e, file) {\n if (eventArgs.cancel) {\n this.eventCancelByArgs(e, eventArgs, file);\n }\n else {\n this.updateFormData(formData, eventArgs.customFormData);\n }\n };\n Uploader.prototype.eventCancelByArgs = function (e, eventArgs, file) {\n var _this = this;\n e.cancel = true;\n if (eventArgs.fileData.statusCode === '5') {\n return;\n }\n eventArgs.fileData.statusCode = '5';\n eventArgs.fileData.status = this.localizedTexts('fileUploadCancel');\n var liElement = this.getLiElement(eventArgs.fileData);\n if (liElement) {\n if (!isNullOrUndefined(liElement.querySelector('.' + STATUS))) {\n liElement.querySelector('.' + STATUS).innerHTML = this.localizedTexts('fileUploadCancel');\n liElement.querySelector('.' + STATUS).classList.add(UPLOAD_FAILED);\n }\n this.pauseButton = this.createElement('span', { className: 'e-icons e-file-reload-btn', attrs: { 'tabindex': this.btnTabIndex } });\n var removeIcon = liElement.querySelector('.' + REMOVE_ICON);\n if (removeIcon) {\n removeIcon.parentElement.insertBefore(this.pauseButton, removeIcon);\n }\n this.pauseButton.setAttribute('title', this.localizedTexts('retry'));\n /* istanbul ignore next */\n this.pauseButton.addEventListener('click', function (e) {\n _this.reloadcanceledFile(e, file, liElement);\n }, false);\n this.checkActionButtonStatus();\n }\n };\n Uploader.prototype.checkChunkUpload = function () {\n return (this.asyncSettings.chunkSize <= 0 || isNullOrUndefined(this.asyncSettings.chunkSize)) ? false : true;\n };\n Uploader.prototype.chunkUploadComplete = function (e, metaData, custom) {\n var _this = this;\n var response = e.target;\n var liElement;\n if (response.readyState === 4 && response.status >= 200 && response.status < 300) {\n var requestResponse = e && e.currentTarget ? this.getResponse(e) : null;\n var totalChunk = Math.max(Math.ceil(metaData.file.size / this.asyncSettings.chunkSize), 1);\n var eventArgs = {\n event: e,\n file: metaData.file,\n chunkIndex: metaData.chunkIndex,\n totalChunk: totalChunk,\n chunkSize: this.asyncSettings.chunkSize,\n response: requestResponse\n };\n this.trigger('chunkSuccess', eventArgs);\n if (isNullOrUndefined(custom) || !custom) {\n liElement = this.getLiElement(metaData.file);\n }\n this.updateMetaData(metaData);\n if (metaData.end === metaData.file.size) {\n metaData.file.statusCode = '3';\n }\n if (metaData.file.statusCode === '5') {\n var eventArgs_1 = { event: e, fileData: metaData.file, cancel: false, customFormData: [] };\n this.trigger('canceling', eventArgs_1, function (eventArgs) {\n /* istanbul ignore next */\n if (eventArgs.cancel) {\n metaData.file.statusCode = '3';\n var spinnerTarget = liElement.querySelector('.' + ABORT_ICON);\n if (!isNullOrUndefined(liElement) && !isNullOrUndefined(spinnerTarget)) {\n hideSpinner(spinnerTarget);\n detach(liElement.querySelector('.e-spinner-pane'));\n }\n _this.sendNextRequest(metaData);\n }\n else {\n metaData.request.emitError = false;\n response.abort();\n var formData = new FormData();\n var name_2 = _this.element.getAttribute('name');\n formData.append(name_2, metaData.file.name);\n formData.append('cancel-uploading', metaData.file.name);\n formData.append('cancelUploading', metaData.file.name);\n _this.updateFormData(formData, eventArgs.customFormData);\n var ajax = new Ajax(_this.asyncSettings.removeUrl, 'POST', true, null);\n ajax.emitError = false;\n ajax.onLoad = function (e) {\n _this.removeChunkFile(e, metaData, custom);\n return {};\n };\n ajax.send(formData);\n }\n });\n }\n else {\n if ((totalChunk - 1) === metaData.chunkIndex && totalChunk > metaData.chunkIndex) {\n var index = this.pausedData.indexOf(metaData);\n if (index >= 0) {\n this.pausedData.splice(index, 1);\n }\n if (isNullOrUndefined(this.template) && (isNullOrUndefined(custom) || !custom) && liElement) {\n if (liElement && !isNullOrUndefined(liElement.querySelector('.' + PAUSE_UPLOAD))) {\n detach(liElement.querySelector('.' + PAUSE_UPLOAD));\n }\n this.removeChunkProgressBar(metaData);\n }\n this.raiseSuccessEvent(e, metaData.file);\n return;\n }\n if (metaData.file.statusCode !== '4') {\n this.sendNextRequest(metaData);\n }\n }\n }\n else {\n this.chunkUploadFailed(e, metaData);\n }\n };\n Uploader.prototype.sendNextRequest = function (metaData) {\n metaData.start = metaData.end;\n metaData.end += this.asyncSettings.chunkSize;\n metaData.end = Math.min(metaData.end, metaData.file.size);\n metaData.chunkIndex += 1;\n this.sendRequest(metaData.file, metaData);\n };\n Uploader.prototype.removeChunkFile = function (e, metaData, custom) {\n if (isNullOrUndefined(this.template) && (isNullOrUndefined(custom) && !custom)) {\n var liElement = this.getLiElement(metaData.file);\n var deleteIcon = liElement.querySelector('.' + ABORT_ICON);\n var spinnerTarget = deleteIcon;\n this.updateStatus(metaData.file, this.localizedTexts('fileUploadCancel'), '5');\n this.updateProgressBarClasses(liElement, UPLOAD_FAILED);\n this.removeProgressbar(liElement, 'failure');\n (deleteIcon && deleteIcon.classList.remove(ABORT_ICON));\n (deleteIcon && deleteIcon.classList.add(REMOVE_ICON));\n (deleteIcon && deleteIcon.setAttribute('title', this.localizedTexts('remove')));\n var pauseIcon = liElement.querySelector('.' + PAUSE_UPLOAD);\n (pauseIcon && pauseIcon.classList.add(RETRY_ICON));\n (pauseIcon && pauseIcon.classList.remove(PAUSE_UPLOAD));\n (pauseIcon && pauseIcon.setAttribute('title', this.localizedTexts('retry')));\n if (!isNullOrUndefined(liElement) && !isNullOrUndefined(deleteIcon)\n && !isNullOrUndefined(liElement.querySelector('.e-spinner-pane'))) {\n hideSpinner(spinnerTarget);\n detach(liElement.querySelector('.e-spinner-pane'));\n }\n }\n };\n Uploader.prototype.pauseUpload = function (metaData, e, custom) {\n metaData.file.statusCode = '4';\n metaData.file.status = this.localizedTexts('pause');\n this.updateMetaData(metaData);\n var eventArgs = {\n event: e ? e : null,\n file: metaData.file,\n chunkIndex: metaData.chunkIndex,\n chunkCount: Math.round(metaData.file.size / this.asyncSettings.chunkSize),\n chunkSize: this.asyncSettings.chunkSize\n };\n this.abortUpload(metaData, custom, eventArgs);\n };\n Uploader.prototype.abortUpload = function (metaData, custom, eventArgs) {\n if (metaData.file.statusCode !== '4') {\n metaData.request.emitError = false;\n metaData.request.httpRequest.abort();\n }\n var liElement = this.getLiElement(metaData.file);\n if (isNullOrUndefined(this.template) && (isNullOrUndefined(custom) || !custom)) {\n var targetElement = liElement.querySelector('.' + PAUSE_UPLOAD);\n targetElement.classList.remove(PAUSE_UPLOAD);\n targetElement.classList.add(RESUME_UPLOAD);\n targetElement.setAttribute('title', this.localizedTexts('resume'));\n targetElement.nextElementSibling.classList.add(REMOVE_ICON);\n targetElement.nextElementSibling.classList.remove(ABORT_ICON);\n targetElement.nextElementSibling.setAttribute('title', this.localizedTexts('remove'));\n }\n for (var i = 0; i < this.pausedData.length; i++) {\n if (this.pausedData[i].file.name === metaData.file.name) {\n this.pausedData.splice(i, 1);\n }\n }\n this.pausedData.push(metaData);\n this.trigger('pausing', eventArgs);\n };\n Uploader.prototype.resumeUpload = function (metaData, e, custom) {\n var liElement = this.getLiElement(metaData.file);\n var targetElement;\n if (!isNullOrUndefined(liElement)) {\n targetElement = liElement.querySelector('.' + RESUME_UPLOAD);\n }\n if (!isNullOrUndefined(targetElement) && (isNullOrUndefined(custom) || !custom)) {\n targetElement.classList.remove(RESUME_UPLOAD);\n targetElement.classList.add(PAUSE_UPLOAD);\n targetElement.setAttribute('title', this.localizedTexts('pause'));\n targetElement.nextElementSibling.classList.remove(REMOVE_ICON);\n targetElement.nextElementSibling.classList.add(ABORT_ICON);\n targetElement.nextElementSibling.setAttribute('title', this.localizedTexts('abort'));\n }\n metaData.file.status = this.localizedTexts('inProgress');\n metaData.file.statusCode = '3';\n this.updateMetaData(metaData);\n var eventArgs = {\n event: e ? e : null,\n file: metaData.file,\n chunkIndex: metaData.chunkIndex,\n chunkCount: Math.round(metaData.file.size / this.asyncSettings.chunkSize),\n chunkSize: this.asyncSettings.chunkSize\n };\n this.trigger('resuming', eventArgs);\n for (var i = 0; i < this.pausedData.length; i++) {\n if (this.pausedData[i].end === this.pausedData[i].file.size) {\n this.chunkUploadComplete(e, metaData, custom);\n }\n else {\n if (this.pausedData[i].file.name === metaData.file.name) {\n this.pausedData[i].start = this.pausedData[i].end;\n this.pausedData[i].end = this.pausedData[i].end + this.asyncSettings.chunkSize;\n this.pausedData[i].end = Math.min(this.pausedData[i].end, this.pausedData[i].file.size);\n this.pausedData[i].chunkIndex = this.pausedData[i].chunkIndex + 1;\n this.sendRequest(this.pausedData[i].file, this.pausedData[i], custom);\n }\n }\n }\n };\n Uploader.prototype.updateMetaData = function (metaData) {\n if (this.uploadMetaData.indexOf(metaData) === -1) {\n this.uploadMetaData.push(metaData);\n }\n else {\n this.uploadMetaData.splice(this.uploadMetaData.indexOf(metaData), 1);\n this.uploadMetaData.push(metaData);\n }\n };\n Uploader.prototype.removeChunkProgressBar = function (metaData) {\n var liElement = this.getLiElement(metaData.file);\n if (!isNullOrUndefined(liElement)) {\n this.updateProgressBarClasses(liElement, UPLOAD_SUCCESS);\n this.removeProgressbar(liElement, 'success');\n var cancelButton = liElement.querySelector('.' + ABORT_ICON);\n if (!isNullOrUndefined(cancelButton)) {\n cancelButton.classList.add(DELETE_ICON);\n cancelButton.setAttribute('title', this.localizedTexts('delete'));\n cancelButton.classList.remove(ABORT_ICON, UPLOAD_INPROGRESS);\n }\n }\n };\n Uploader.prototype.chunkUploadFailed = function (e, metaData, custom) {\n var _this = this;\n var chunkCount = Math.max(Math.ceil(metaData.file.size / this.asyncSettings.chunkSize), 1);\n var liElement;\n if (isNullOrUndefined(this.template) && (isNullOrUndefined(custom) || !custom)) {\n liElement = this.getLiElement(metaData.file);\n }\n var requestResponse = e && e.currentTarget ? this.getResponse(e) : null;\n var eventArgs = {\n event: e,\n file: metaData.file,\n chunkIndex: metaData.chunkIndex,\n totalChunk: chunkCount,\n chunkSize: this.asyncSettings.chunkSize,\n cancel: false,\n response: requestResponse\n };\n this.trigger('chunkFailure', eventArgs, function (eventArgs) {\n // To prevent triggering of failure event\n if (!eventArgs.cancel) {\n if (metaData.retryCount < _this.asyncSettings.retryCount) {\n setTimeout(function () {\n _this.retryRequest(liElement, metaData, custom);\n }, _this.asyncSettings.retryAfterDelay);\n }\n else {\n if (!isNullOrUndefined(liElement)) {\n var pauseButton = liElement.querySelector('.' + PAUSE_UPLOAD) ?\n liElement.querySelector('.' + PAUSE_UPLOAD) : liElement.querySelector('.' + RESUME_UPLOAD);\n if (!isNullOrUndefined(pauseButton)) {\n pauseButton.classList.add(RETRY_ICON);\n pauseButton.classList.remove(PAUSE_UPLOAD, RESUME_UPLOAD);\n }\n _this.updateProgressBarClasses(liElement, UPLOAD_FAILED);\n _this.removeProgressbar(liElement, 'failure');\n liElement.querySelector('.e-icons').classList.remove(UPLOAD_INPROGRESS);\n var iconElement = liElement.querySelector('.' + ABORT_ICON) ?\n liElement.querySelector('.' + ABORT_ICON) : liElement.querySelector('.' + REMOVE_ICON);\n iconElement.classList.remove(ABORT_ICON);\n if (!isNullOrUndefined(liElement.querySelector('.' + PAUSE_UPLOAD))) {\n detach(liElement.querySelector('.' + PAUSE_UPLOAD));\n }\n if (metaData.start > 0) {\n iconElement.classList.add(DELETE_ICON);\n iconElement.setAttribute('title', _this.localizedTexts('delete'));\n }\n else {\n iconElement.classList.add(REMOVE_ICON);\n iconElement.setAttribute('title', _this.localizedTexts('remove'));\n }\n }\n metaData.retryCount = 0;\n var file_1 = metaData.file;\n var failureMessage = _this.localizedTexts('uploadFailedMessage');\n var args = {\n e: e, response: requestResponse,\n operation: 'upload',\n file: _this.updateStatus(file_1, failureMessage, '0', false),\n statusText: failureMessage\n };\n _this.trigger('failure', args, function (args) {\n _this.updateStatus(file_1, args.statusText, '0');\n _this.uploadSequential();\n _this.checkActionComplete(true);\n });\n }\n }\n });\n };\n Uploader.prototype.retryRequest = function (liElement, metaData, custom) {\n if (isNullOrUndefined(this.template) && (isNullOrUndefined(custom) || !custom) && liElement) {\n this.updateProgressBarClasses(liElement, UPLOAD_FAILED);\n }\n metaData.retryCount += 1;\n this.sendRequest(metaData.file, metaData);\n };\n Uploader.prototype.checkPausePlayAction = function (e) {\n var targetElement = e.target;\n var selectedElement = e.target.parentElement;\n var index = this.fileList.indexOf(selectedElement);\n var fileData = this.filesData[index];\n var metaData = this.getCurrentMetaData(fileData);\n if (targetElement.classList.contains(PAUSE_UPLOAD)) {\n /* istanbul ignore next */\n this.pauseUpload(metaData, e);\n }\n else if (targetElement.classList.contains(RESUME_UPLOAD)) {\n /* istanbul ignore next */\n this.resumeUpload(metaData, e);\n }\n else if (targetElement.classList.contains(RETRY_ICON)) {\n if (metaData.file.status === this.localizedTexts('fileUploadCancel')) {\n this.retryUpload(metaData, false);\n }\n else {\n this.retryUpload(metaData, true);\n }\n }\n };\n Uploader.prototype.retryUpload = function (metaData, fromcanceledStage) {\n if (fromcanceledStage) {\n metaData.end = metaData.end + this.asyncSettings.chunkSize;\n metaData.start = metaData.start + this.asyncSettings.chunkSize;\n this.sendRequest(metaData.file, metaData);\n }\n else {\n metaData.file.statusCode = '1';\n metaData.file.status = this.localizedTexts('readyToUploadMessage');\n this.chunkUpload(metaData.file);\n }\n /* istanbul ignore next */\n (this.getLiElement(metaData.file)).classList.add(RESTRICT_RETRY);\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n Uploader.prototype.chunkUploadInProgress = function (e, metaData, custom) {\n var _this = this;\n if (metaData.file.statusCode === '4') {\n return;\n }\n if (metaData.file.statusCode !== '4' && metaData.file.statusCode !== '5') {\n metaData.file.statusCode = '3';\n metaData.file.status = this.localizedTexts('inProgress');\n }\n this.updateMetaData(metaData);\n var liElement = this.getLiElement(metaData.file);\n if (isNullOrUndefined(liElement)) {\n return;\n }\n var retryElement = liElement.querySelector('.' + RETRY_ICON);\n if (!isNullOrUndefined(retryElement)) {\n retryElement.classList.add(PAUSE_UPLOAD);\n retryElement.setAttribute('title', this.localizedTexts('pause'));\n retryElement.classList.remove(RETRY_ICON);\n }\n if (!isNullOrUndefined(liElement)) {\n if (!(liElement.querySelectorAll('.' + PROGRESS_WRAPPER).length > 0)) {\n var statusElement = liElement.querySelector('.' + STATUS);\n if (isNullOrUndefined(this.template)) {\n statusElement.classList.add(UPLOAD_INPROGRESS);\n statusElement.classList.remove(UPLOAD_FAILED);\n this.createProgressBar(liElement);\n this.updateProgressBarClasses(liElement, UPLOAD_INPROGRESS);\n }\n var clearIcon = liElement.querySelector('.' + REMOVE_ICON) ? liElement.querySelector('.' + REMOVE_ICON) :\n liElement.querySelector('.' + DELETE_ICON);\n if (!isNullOrUndefined(clearIcon)) {\n clearIcon.classList.add(ABORT_ICON);\n clearIcon.setAttribute('title', this.localizedTexts('abort'));\n clearIcon.classList.remove(REMOVE_ICON);\n }\n }\n if (!isNaN(Math.round((e.loaded / e.total) * 100)) && isNullOrUndefined(this.template) && metaData.file.statusCode !== '4') {\n var progressVal = void 0;\n var totalChunks = Math.ceil(metaData.file.size / this.asyncSettings.chunkSize) - 1;\n if (this.asyncSettings.chunkSize && totalChunks) {\n progressVal = Math.round(metaData.chunkIndex / totalChunks * 100);\n this.changeProgressValue(liElement, progressVal.toString() + '%');\n }\n }\n if (metaData.chunkIndex === 0) {\n this.checkActionButtonStatus();\n }\n }\n if (isNullOrUndefined(liElement.querySelector('.' + PAUSE_UPLOAD)) && isNullOrUndefined(this.template)\n && isNullOrUndefined(liElement.querySelector('.' + DELETE_ICON))) {\n this.pauseButton = this.createElement('span', { className: 'e-icons e-file-pause-btn', attrs: { 'tabindex': this.btnTabIndex } });\n if (this.browserName === 'msie') {\n this.pauseButton.classList.add('e-msie');\n }\n var abortIcon = liElement.querySelector('.' + ABORT_ICON);\n abortIcon.parentElement.insertBefore(this.pauseButton, abortIcon);\n this.pauseButton.setAttribute('title', this.localizedTexts('pause'));\n this.pauseButton.addEventListener('click', function (e) {\n _this.checkPausePlayAction(e);\n }, false);\n }\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * It is used to convert bytes value into kilobytes or megabytes depending on the size based\n * on [binary prefix](https://en.wikipedia.org/wiki/Binary_prefix).\n *\n * @param { number } bytes - Specifies the file size in bytes.\n * @returns {string}\n */\n Uploader.prototype.bytesToSize = function (bytes) {\n var i = -1;\n if (!bytes) {\n return '0.0 KB';\n }\n do {\n bytes = bytes / 1024;\n i++;\n } while (bytes > 99);\n if (i >= 2) {\n bytes = bytes * 1024;\n i = 1;\n }\n return Math.max(bytes, 0).toFixed(1) + ' ' + ['KB', 'MB'][i];\n };\n /**\n * Allows you to sort the file data alphabetically based on its file name clearly.\n *\n * @param { FileList } filesData - specifies the files data for upload.\n * @returns {File[]}\n */\n /* istanbul ignore next */\n Uploader.prototype.sortFileList = function (filesData) {\n filesData = filesData ? filesData : this.sortFilesList;\n var files = filesData;\n var fileNames = [];\n for (var i = 0; i < files.length; i++) {\n fileNames.push(files[i].name);\n }\n var sortedFileNames = fileNames.sort();\n var sortedFilesData = [];\n for (var _i = 0, sortedFileNames_1 = sortedFileNames; _i < sortedFileNames_1.length; _i++) {\n var name_3 = sortedFileNames_1[_i];\n for (var i = 0; i < files.length; i++) {\n if (name_3 === files[i].name) {\n sortedFilesData.push(files[i]);\n }\n }\n }\n return sortedFilesData;\n };\n /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Removes the component from the DOM and detaches all its related event handlers. Also it removes the attributes and classes.\n *\n * @method destroy\n * @returns {void}\n */\n Uploader.prototype.destroy = function () {\n this.element.value = null;\n this.clearTemplate();\n this.clearAll();\n this.unWireEvents();\n this.unBindDropEvents();\n if (this.multiple) {\n this.element.removeAttribute('multiple');\n }\n if (!this.enabled) {\n this.element.removeAttribute('disabled');\n }\n this.element.removeAttribute('accept');\n this.setInitialAttributes();\n var attributes = ['aria-label', 'directory', 'webkitdirectory', 'tabindex'];\n for (var _i = 0, attributes_2 = attributes; _i < attributes_2.length; _i++) {\n var key = attributes_2[_i];\n this.element.removeAttribute(key);\n }\n if (!isNullOrUndefined(this.uploadWrapper)) {\n this.uploadWrapper.parentElement.appendChild(this.element);\n detach(this.uploadWrapper);\n }\n this.uploadWrapper = null;\n this.uploadWrapper = null;\n this.browseButton = null;\n this.dropAreaWrapper = null;\n this.dropZoneElement = null;\n this.dropArea = null;\n this.keyboardModule = null;\n this.clearButton = null;\n this.uploadButton = null;\n _super.prototype.destroy.call(this);\n };\n /**\n * Allows you to call the upload process manually by calling save URL action.\n * To process the selected files (added in upload queue), pass an empty argument otherwise\n * upload the specific file based on its argument.\n *\n * @param { FileInfo | FileInfo[] } files - Specifies the files data for upload.\n * @param {boolean} custom - Specifies whether the uploader is rendered with custom file list.\n * @returns {void}\n */\n Uploader.prototype.upload = function (files, custom) {\n var _this = this;\n files = files ? files : this.filesData;\n if (this.sequentialUpload && (this.isFirstFileOnSelection || custom)) {\n this.sequenceUpload(files);\n }\n else {\n var uploadFiles_1 = this.getFilesInArray(files);\n var eventArgs = {\n customFormData: [],\n currentRequest: null,\n cancel: false\n };\n this.trigger('beforeUpload', eventArgs, function (eventArgs) {\n if (!eventArgs.cancel) {\n _this.uploadFiles(uploadFiles_1, custom);\n }\n });\n }\n };\n Uploader.prototype.getFilesInArray = function (files) {\n var uploadFiles = [];\n if (files instanceof Array) {\n uploadFiles = files;\n }\n else {\n uploadFiles.push(files);\n }\n return uploadFiles;\n };\n /* istanbul ignore next */\n Uploader.prototype.serverReadFileBase64 = function (fileIndex, position, totalCount) {\n var _this = this;\n return new Promise(function (resolve, reject) {\n var file = _this.fileStreams[fileIndex].rawFile;\n try {\n var reader = new FileReader();\n reader.onload = (function (args) {\n return function () {\n try {\n var contents = args.result;\n var data = contents ? contents.split(';base64,')[1] : null;\n resolve(data);\n }\n catch (e) {\n reject(e);\n }\n };\n })(reader);\n reader.readAsDataURL(file.slice(position, position + totalCount));\n }\n catch (e) {\n reject(e);\n }\n });\n };\n /* eslint-disable @typescript-eslint/no-unused-vars */\n /* istanbul ignore next */\n Uploader.prototype.uploadFileCount = function (ele) {\n /* eslint-enable @typescript-eslint/no-unused-vars */\n var files = this.filesData;\n if (!files || files.length === 0) {\n return -1;\n }\n var result = files.length;\n return result;\n };\n /* eslint-disable @typescript-eslint/no-unused-vars */\n /* istanbul ignore next */\n Uploader.prototype.getFileRead = function (index, ele) {\n /* eslint-enable @typescript-eslint/no-unused-vars */\n var files = this.filesData;\n if (!files || files.length === 0) {\n return -1;\n }\n var file = files[index];\n var fileCount = this.newFileRef++;\n this.fileStreams[fileCount] = file;\n return fileCount;\n };\n /* eslint-disable @typescript-eslint/no-unused-vars */\n /* istanbul ignore next */\n Uploader.prototype.getFileInfo = function (index, ele) {\n /* eslint-enable @typescript-eslint/no-unused-vars */\n var files = this.filesData;\n if (!files || files.length === 0) {\n return null;\n }\n var file = files[index];\n if (!file) {\n return null;\n }\n return this.filesData[index];\n };\n Uploader.prototype.uploadFiles = function (files, custom) {\n var selectedFiles = [];\n if (this.asyncSettings.saveUrl === '' || isNullOrUndefined(this.asyncSettings.saveUrl)) {\n return;\n }\n if (!custom || isNullOrUndefined(custom)) {\n if (!this.multiple) {\n var file = [];\n file.push(files[0]);\n selectedFiles = this.filterfileList(file);\n }\n else {\n selectedFiles = this.filterfileList(files);\n }\n }\n else {\n selectedFiles = files;\n }\n for (var i = 0; i < selectedFiles.length; i++) {\n this.uploadFilesRequest(selectedFiles, i, custom);\n }\n };\n Uploader.prototype.uploadFilesRequest = function (selectedFiles, i, custom) {\n var _this = this;\n var cloneFiles = [];\n var chunkEnabled = this.checkChunkUpload();\n var ajax = new Ajax(this.asyncSettings.saveUrl, 'POST', true, null);\n ajax.emitError = false;\n var getFileData;\n var eventArgs = {\n fileData: selectedFiles[i],\n customFormData: [],\n cancel: false\n };\n var formData = new FormData();\n ajax.beforeSend = function (e) {\n eventArgs.currentRequest = ajax.httpRequest;\n _this.trigger('uploading', eventArgs, function (eventArgs) {\n /* istanbul ignore next */\n if (eventArgs.cancel) {\n _this.eventCancelByArgs(e, eventArgs, selectedFiles[i]);\n }\n _this.updateFormData(formData, eventArgs.customFormData);\n });\n };\n if (selectedFiles[i].statusCode === '1') {\n var name_4 = this.element.getAttribute('name');\n formData.append(name_4, selectedFiles[i].rawFile, selectedFiles[i].name);\n if (chunkEnabled && selectedFiles[i].size > this.asyncSettings.chunkSize) {\n this.chunkUpload(selectedFiles[i], custom, i);\n }\n else {\n ajax.onLoad = function (e) {\n if (eventArgs.cancel) {\n return {};\n }\n else {\n _this.uploadComplete(e, selectedFiles[i], custom);\n return {};\n }\n };\n ajax.onUploadProgress = function (e) {\n if (eventArgs.cancel) {\n return {};\n }\n else {\n _this.uploadInProgress(e, selectedFiles[i], custom, ajax);\n return {};\n }\n };\n /* istanbul ignore next */\n ajax.onError = function (e) {\n _this.uploadFailed(e, selectedFiles[i]);\n return {};\n };\n ajax.send(formData);\n }\n }\n };\n Uploader.prototype.spliceFiles = function (liIndex) {\n var liElement = this.fileList[liIndex];\n var allFiles = this.getFilesData();\n var nameElements = +liElement.getAttribute('data-files-count');\n var startIndex = 0;\n for (var i = 0; i < liIndex; i++) {\n startIndex += (+this.fileList[i].getAttribute('data-files-count'));\n }\n var endIndex = (startIndex + nameElements) - 1;\n for (var j = endIndex; j >= startIndex; j--) {\n allFiles.splice(j, 1);\n }\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-param */\n /**\n * Remove the uploaded file from server manually by calling the remove URL action.\n * If you pass an empty argument to this method, the complete file list can be cleared,\n * otherwise remove the specific file based on its argument (“file_data”).\n *\n * @param { FileInfo | FileInfo[] } fileData - specifies the files data to remove from file list/server.\n * @param { boolean } customTemplate - Set true if the component rendering with customize template.\n * @param { boolean } removeDirectly - Set true if files remove without removing event.\n * @param { boolean } postRawFile - Set false, to post file name only to the remove action.\n * @returns {void}\n */\n Uploader.prototype.remove = function (fileData, customTemplate, removeDirectly, postRawFile, args) {\n var _this = this;\n if (isNullOrUndefined(postRawFile)) {\n postRawFile = true;\n }\n var eventArgs = {\n event: args,\n cancel: false,\n filesData: [],\n customFormData: [],\n postRawFile: postRawFile,\n currentRequest: null\n };\n var beforeEventArgs = {\n cancel: false,\n customFormData: [],\n currentRequest: null\n };\n this.trigger('beforeRemove', beforeEventArgs, function (beforeEventArgs) {\n if (!beforeEventArgs.cancel) {\n if (_this.isFormUpload()) {\n eventArgs.filesData = fileData;\n _this.trigger('removing', eventArgs, function (eventArgs) {\n if (!eventArgs.cancel) {\n var removingFiles = _this.getFilesInArray(fileData);\n var isLiRemoved = false;\n var liIndex = void 0;\n for (var _i = 0, removingFiles_1 = removingFiles; _i < removingFiles_1.length; _i++) {\n var data = removingFiles_1[_i];\n if (!isLiRemoved) {\n liIndex = _this.fileList.indexOf(data.list);\n }\n if (liIndex > -1) {\n var inputElement = !isNullOrUndefined(data.input) ? data.input : null;\n if (inputElement) {\n detach(inputElement);\n }\n _this.spliceFiles(liIndex);\n detach(_this.fileList[liIndex]);\n _this.fileList.splice(liIndex, 1);\n isLiRemoved = true;\n liIndex = -1;\n }\n }\n }\n });\n }\n else if (_this.isForm && (isNullOrUndefined(_this.asyncSettings.removeUrl) || _this.asyncSettings.removeUrl === '')) {\n eventArgs.filesData = _this.getFilesData();\n _this.trigger('removing', eventArgs, function (eventArgs) {\n if (!eventArgs.cancel) {\n _this.clearAll();\n }\n });\n }\n else {\n var removeFiles = [];\n fileData = !isNullOrUndefined(fileData) ? fileData : _this.filesData;\n if (fileData instanceof Array) {\n removeFiles = fileData;\n }\n else {\n removeFiles.push(fileData);\n }\n eventArgs.filesData = removeFiles;\n var removeUrl = _this.asyncSettings.removeUrl;\n var validUrl = (removeUrl === '' || isNullOrUndefined(removeUrl)) ? false : true;\n var _loop_5 = function (files) {\n var fileUploadedIndex = _this.uploadedFilesData.indexOf(files);\n if ((files.statusCode === '2' || files.statusCode === '4' || (files.statusCode === '0' &&\n fileUploadedIndex !== -1)) && validUrl) {\n _this.removeUploadedFile(files, eventArgs, removeDirectly, customTemplate);\n }\n else {\n if (!removeDirectly) {\n _this.trigger('removing', eventArgs, function (eventArgs) {\n if (!eventArgs.cancel) {\n _this.removeFilesData(files, customTemplate);\n }\n });\n }\n else {\n _this.removeFilesData(files, customTemplate);\n }\n }\n if (args && !args.target.classList.contains(REMOVE_ICON)) {\n _this.checkActionComplete(false);\n }\n };\n for (var _i = 0, removeFiles_1 = removeFiles; _i < removeFiles_1.length; _i++) {\n var files = removeFiles_1[_i];\n _loop_5(files);\n }\n }\n }\n });\n };\n /* eslint-enable valid-jsdoc, jsdoc/require-param */\n /**\n * Clear all the file entries from list that can be uploaded files or added in upload queue.\n *\n * @returns {void}\n */\n Uploader.prototype.clearAll = function () {\n var _this = this;\n if (isNullOrUndefined(this.listParent)) {\n if (this.browserName !== 'msie') {\n this.element.value = '';\n }\n this.filesData = [];\n return;\n }\n var eventArgs = {\n cancel: false,\n filesData: this.filesData\n };\n this.trigger('clearing', eventArgs, function (eventArgs) {\n if (!eventArgs.cancel) {\n _this.clearData();\n _this.actionCompleteCount = 0;\n _this.count = -1;\n }\n });\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Get the data of files which are shown in file list.\n *\n * @param { number } index - specifies the file list item(li) index.\n * @returns {FileInfo[]}\n */\n Uploader.prototype.getFilesData = function (index) {\n if (isNullOrUndefined(index)) {\n return this.filesData;\n }\n else {\n return this.getSelectedFiles(index);\n }\n };\n /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Pauses the in-progress chunked upload based on the file data.\n *\n * @param { FileInfo | FileInfo[] } fileData - specifies the files data to pause from uploading.\n * @param { boolean } custom - Set true if used custom UI.\n * @returns {void}\n */\n Uploader.prototype.pause = function (fileData, custom) {\n fileData = fileData ? fileData : this.filesData;\n var fileDataFiles = this.getFilesInArray(fileData);\n this.pauseUploading(fileDataFiles, custom);\n };\n Uploader.prototype.pauseUploading = function (fileData, custom) {\n var files = this.getFiles(fileData);\n for (var i = 0; i < files.length; i++) {\n if (files[i].statusCode === '3') {\n this.pauseUpload(this.getCurrentMetaData(files[i], null), null, custom);\n }\n }\n };\n Uploader.prototype.getFiles = function (fileData) {\n var files = [];\n if (!isNullOrUndefined(fileData) && !(fileData instanceof Array)) {\n files.push(fileData);\n }\n else {\n files = fileData;\n }\n return files;\n };\n /**\n * Resumes the chunked upload that is previously paused based on the file data.\n *\n * @param { FileInfo | FileInfo[] } fileData - specifies the files data to resume the paused file.\n * @param { boolean } custom - Set true if used custom UI.\n * @returns {void}\n */\n Uploader.prototype.resume = function (fileData, custom) {\n fileData = fileData ? fileData : this.filesData;\n var fileDataFiles = this.getFilesInArray(fileData);\n this.resumeFiles(fileDataFiles, custom);\n };\n Uploader.prototype.resumeFiles = function (fileData, custom) {\n var files = this.getFiles(fileData);\n for (var i = 0; i < files.length; i++) {\n if (files[i].statusCode === '4') {\n this.resumeUpload(this.getCurrentMetaData(files[i], null), null, custom);\n }\n }\n };\n /**\n * Retries the canceled or failed file upload based on the file data.\n *\n * @param { FileInfo | FileInfo[] } fileData - specifies the files data to retry the canceled or failed file.\n * @param { boolean } fromcanceledStage - Set true to retry from canceled stage and set false to retry from initial stage.\n * @param {boolean} custom -Specifies whether the uploader is rendered with custom file list.\n * @returns {void}\n */\n Uploader.prototype.retry = function (fileData, fromcanceledStage, custom) {\n fileData = fileData ? fileData : this.filesData;\n var fileDataFiles = this.getFilesInArray(fileData);\n if (this.sequentialUpload && this.isFirstFileOnSelection) {\n this.isFirstFileOnSelection = false;\n }\n this.retryFailedFiles(fileDataFiles, fromcanceledStage, custom);\n };\n Uploader.prototype.retryFailedFiles = function (fileData, fromcanceledStage, custom) {\n var files = this.getFiles(fileData);\n for (var i = 0; i < files.length; i++) {\n if (files[i].statusCode === '5' || files[i].statusCode === '0') {\n if (this.asyncSettings.chunkSize > 0 && this.getCurrentMetaData(files[i], null)) {\n this.retryUpload(this.getCurrentMetaData(files[i], null), fromcanceledStage);\n }\n else {\n var liElement = void 0;\n if (!custom) {\n liElement = this.fileList[this.filesData.indexOf(files[i])];\n }\n this.reloadcanceledFile(null, files[i], liElement, custom);\n }\n }\n }\n };\n /**\n * Stops the in-progress chunked upload based on the file data.\n * When the file upload is canceled, the partially uploaded file is removed from server.\n *\n * @param { FileInfo | FileInfo[] } fileData - specifies the files data to cancel the progressing file.\n * @returns {void}\n */\n Uploader.prototype.cancel = function (fileData) {\n fileData = fileData ? fileData : this.filesData;\n var cancelingFiles = this.getFilesInArray(fileData);\n this.cancelUpload(cancelingFiles);\n };\n Uploader.prototype.cancelUpload = function (fileData) {\n var files = this.getFiles(fileData);\n if (this.asyncSettings.chunkSize > 0) {\n for (var i = 0; i < files.length; i++) {\n if (files[i].statusCode === '3') {\n var metaData = this.getCurrentMetaData(files[i], null);\n metaData.file.statusCode = '5';\n metaData.file.status = this.localizedTexts('fileUploadCancel');\n this.updateMetaData(metaData);\n this.showHideUploadSpinner(files[i]);\n }\n }\n }\n else {\n for (var i = 0; i < files.length; i++) {\n if (files[i].statusCode === '3') {\n files[i].statusCode = '5';\n files[i].status = this.localizedTexts('fileUploadCancel');\n this.showHideUploadSpinner(files[i]);\n }\n }\n }\n };\n Uploader.prototype.showHideUploadSpinner = function (files) {\n var liElement = this.getLiElement(files);\n if (!isNullOrUndefined(liElement) && isNullOrUndefined(this.template)) {\n var spinnerTarget = liElement.querySelector('.' + ABORT_ICON);\n createSpinner({ target: spinnerTarget, width: '20px' });\n showSpinner(spinnerTarget);\n }\n };\n __decorate([\n Complex({ saveUrl: '', removeUrl: '' }, AsyncSettings)\n ], Uploader.prototype, \"asyncSettings\", void 0);\n __decorate([\n Property(false)\n ], Uploader.prototype, \"sequentialUpload\", void 0);\n __decorate([\n Property({})\n ], Uploader.prototype, \"htmlAttributes\", void 0);\n __decorate([\n Property('')\n ], Uploader.prototype, \"cssClass\", void 0);\n __decorate([\n Property(true)\n ], Uploader.prototype, \"enabled\", void 0);\n __decorate([\n Property(null)\n ], Uploader.prototype, \"template\", void 0);\n __decorate([\n Property(true)\n ], Uploader.prototype, \"multiple\", void 0);\n __decorate([\n Property(true)\n ], Uploader.prototype, \"autoUpload\", void 0);\n __decorate([\n Property(true)\n ], Uploader.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Complex({}, ButtonsProps)\n ], Uploader.prototype, \"buttons\", void 0);\n __decorate([\n Property('')\n ], Uploader.prototype, \"allowedExtensions\", void 0);\n __decorate([\n Property(0)\n ], Uploader.prototype, \"minFileSize\", void 0);\n __decorate([\n Property(30000000)\n ], Uploader.prototype, \"maxFileSize\", void 0);\n __decorate([\n Property(null)\n ], Uploader.prototype, \"dropArea\", void 0);\n __decorate([\n Collection([{}], FilesProp)\n ], Uploader.prototype, \"files\", void 0);\n __decorate([\n Property(true)\n ], Uploader.prototype, \"showFileList\", void 0);\n __decorate([\n Property(false)\n ], Uploader.prototype, \"directoryUpload\", void 0);\n __decorate([\n Property('Default')\n ], Uploader.prototype, \"dropEffect\", void 0);\n __decorate([\n Event()\n ], Uploader.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], Uploader.prototype, \"actionComplete\", void 0);\n __decorate([\n Event()\n ], Uploader.prototype, \"rendering\", void 0);\n __decorate([\n Event()\n ], Uploader.prototype, \"beforeUpload\", void 0);\n __decorate([\n Event()\n ], Uploader.prototype, \"fileListRendering\", void 0);\n __decorate([\n Event()\n ], Uploader.prototype, \"selected\", void 0);\n __decorate([\n Event()\n ], Uploader.prototype, \"uploading\", void 0);\n __decorate([\n Event()\n ], Uploader.prototype, \"success\", void 0);\n __decorate([\n Event()\n ], Uploader.prototype, \"failure\", void 0);\n __decorate([\n Event()\n ], Uploader.prototype, \"removing\", void 0);\n __decorate([\n Event()\n ], Uploader.prototype, \"beforeRemove\", void 0);\n __decorate([\n Event()\n ], Uploader.prototype, \"clearing\", void 0);\n __decorate([\n Event()\n ], Uploader.prototype, \"progress\", void 0);\n __decorate([\n Event()\n ], Uploader.prototype, \"change\", void 0);\n __decorate([\n Event()\n ], Uploader.prototype, \"chunkSuccess\", void 0);\n __decorate([\n Event()\n ], Uploader.prototype, \"chunkFailure\", void 0);\n __decorate([\n Event()\n ], Uploader.prototype, \"chunkUploading\", void 0);\n __decorate([\n Event()\n ], Uploader.prototype, \"canceling\", void 0);\n __decorate([\n Event()\n ], Uploader.prototype, \"pausing\", void 0);\n __decorate([\n Event()\n ], Uploader.prototype, \"resuming\", void 0);\n Uploader = __decorate([\n NotifyPropertyChanges\n ], Uploader);\n return Uploader;\n}(Component));\nexport { Uploader };\n/* eslint-enable @typescript-eslint/no-explicit-any */\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { Uploader } from '@syncfusion/ej2-inputs';\nimport { ComponentBase, applyMixins } from '@syncfusion/ej2-react-base';\n/**\n * Represents the React Uploader Component\n * ```html\n * \n * ```\n */\nvar UploaderComponent = /** @class */ (function (_super) {\n __extends(UploaderComponent, _super);\n function UploaderComponent(props) {\n var _this = _super.call(this, props) || this;\n _this.initRenderCalled = false;\n _this.checkInjectedModules = false;\n _this.directivekeys = { 'files': 'uploadedFiles' };\n _this.statelessTemplateProps = null;\n _this.templateProps = null;\n _this.immediateRender = false;\n _this.portals = [];\n return _this;\n }\n UploaderComponent.prototype.render = function () {\n if (((this.element && !this.initRenderCalled) || this.refreshing) && !this.isReactForeceUpdate) {\n _super.prototype.render.call(this);\n this.initRenderCalled = true;\n }\n else {\n return React.createElement(React.Fragment, null, [].concat(React.createElement(\"input\", this.getDefaultAttributes()), this.portals));\n }\n };\n return UploaderComponent;\n}(Uploader));\nexport { UploaderComponent };\napplyMixins(UploaderComponent, [ComponentBase, React.Component]);\n","import { get } from \"lodash\";\nexport var buildFileDocumentCustomFormData = function (doc) {\n return Object.keys(doc).map(function (key) {\n var _a;\n return (_a = {}, _a[key] = get(doc, key), _a);\n });\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport React, { useEffect } from \"react\";\nimport { useRef } from \"react\";\nimport { buildFileDocumentCustomFormData } from \"./types\";\n/**\n * Custom hook to implement file field functionality\n */\nexport var useFileField = function (props) {\n var _a = React.useState(), authRequestHeader = _a[0], setAuthRequestHeader = _a[1];\n var localDocument = undefined;\n var fileFieldRef = useRef(null);\n useEffect(function () {\n setToken();\n }, []);\n var setToken = function () { return __awaiter(void 0, void 0, void 0, function () {\n var token;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!!!props.getAuthRequestHeader) return [3 /*break*/, 2];\n return [4 /*yield*/, props.getAuthRequestHeader()];\n case 1:\n token = _a.sent();\n setAuthRequestHeader(token);\n _a.label = 2;\n case 2: return [2 /*return*/];\n }\n });\n }); };\n // Methods\n var onUploadingDefault = function (args) { return __awaiter(void 0, void 0, void 0, function () {\n var doc;\n return __generator(this, function (_a) {\n if (!(args === null || args === void 0 ? void 0 : args.currentRequest)) {\n return [2 /*return*/];\n }\n doc = {\n originalFileName: args.fileData.name,\n folderName: props.documentsFolderName || \"documents\",\n isChunked: true,\n };\n args.customFormData = buildFileDocumentCustomFormData(doc);\n // Overwrite as needed\n !!props.onUploading && props.onUploading(args);\n // Set Header\n setRequestHeader(args === null || args === void 0 ? void 0 : args.currentRequest);\n return [2 /*return*/];\n });\n }); };\n var onChunkUploadingDefault = function (args) { return __awaiter(void 0, void 0, void 0, function () {\n var doc;\n return __generator(this, function (_a) {\n if (!(args === null || args === void 0 ? void 0 : args.currentRequest)) {\n return [2 /*return*/];\n }\n doc = {\n id: localDocument === null || localDocument === void 0 ? void 0 : localDocument.id,\n originalFileName: args.fileData.name,\n folderName: props.documentsFolderName || \"documents\",\n isChunked: true,\n };\n args.customFormData = buildFileDocumentCustomFormData(doc);\n // Overwrite as needed\n !!props.onChunkUploading && props.onChunkUploading(args);\n // Set Header\n setRequestHeader(args === null || args === void 0 ? void 0 : args.currentRequest);\n return [2 /*return*/];\n });\n }); };\n var onRemovingDefault = function (args) { return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (!(args === null || args === void 0 ? void 0 : args.currentRequest)) {\n return [2 /*return*/];\n }\n !!props.onRemoving && props.onRemoving(args);\n // Set Header\n setRequestHeader(args === null || args === void 0 ? void 0 : args.currentRequest);\n return [2 /*return*/];\n });\n }); };\n var onChunkSuccess = function (args) {\n var docUploaded = JSON.parse(args.event.target.response);\n localDocument = docUploaded;\n };\n var onSuccess = function (args) {\n var docUploaded = args.operation === \"upload\" ? JSON.parse(args.e.target.response) : {};\n localDocument = docUploaded;\n props.onSubmit && props.onSubmit(docUploaded);\n if (args.operation === \"upload\") {\n props.onCompleteUploading && props.onCompleteUploading(docUploaded);\n }\n else if (args.operation === \"remove\") {\n props.onCompleteRemoving && props.onCompleteRemoving();\n }\n };\n var setRequestHeader = function (currentRequest) {\n if (!currentRequest || !authRequestHeader) {\n return;\n }\n for (var key in authRequestHeader) {\n if (authRequestHeader.hasOwnProperty(key)) {\n var value = authRequestHeader[key];\n currentRequest.setRequestHeader(key, value);\n }\n }\n };\n // Config\n var defaultUploaderConfig = {\n enabled: !props.disabled,\n success: onSuccess,\n chunkSuccess: onChunkSuccess,\n uploading: onUploadingDefault,\n chunkUploading: onChunkUploadingDefault,\n removing: onRemovingDefault,\n actionComplete: props.onAllActionComplete,\n };\n var resolvedUploaderConfig = __assign(__assign({}, defaultUploaderConfig), props.uploaderConfig);\n return { fileFieldRef: fileFieldRef, resolvedUploaderConfig: resolvedUploaderConfig };\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { FormGroup, Icon } from \"@blueprintjs/core\";\nimport { UploaderComponent, } from \"@syncfusion/ej2-react-inputs\";\nimport { FieldLabel } from \"../../CoreFields/FieldLabel/FieldLabel\";\nimport { FormFieldErrorContainer } from \"../../CoreFields/FieldError/FormFieldErrorContainer\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport { useFileField } from \"./useFileField\";\nvar FileField = function (props) {\n var _a = useFileField(props), fileFieldRef = _a.fileFieldRef, resolvedUploaderConfig = _a.resolvedUploaderConfig;\n return (_jsx(\"div\", { className: \"ucl-base-input-file-field-container\", children: _jsxs(FormGroup, { className: \"\".concat(props.isRequired && !props.value\n ? \"has-required-background\"\n : \"base-field\"), children: [props.label && (_jsx(FieldLabel, __assign({ labelName: props.label, tooltipDescription: props.description, fieldProps: __assign({}, props) }, props.labelProps))), _jsx(\"section\", { className: \"ucl-field-header file\", children: props.showPreview && (_jsx(\"span\", { className: \"ucl-file-field preview\", children: props.value && (_jsx(Icon, { title: \"Preview\", icon: IconNames.EyeOpen, onClick: props.handleOnPreview })) })) }), _jsx(UploaderComponent, __assign({ id: \"documentFile\", ref: fileFieldRef }, resolvedUploaderConfig)), props.errorMessages && (_jsx(FormFieldErrorContainer, { errorMessages: props.errorMessages }))] }) }));\n};\nexport default FileField;\n","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport MaskedField from \"../../BaseInputFields/MaskedField/MaskedField\";\nvar EmailField = function (props) {\n return (_jsx(MaskedField, { type: props.type, description: props.description, label: props.label, placeholder: \"johnsmith@gmail.com\", fieldName: \"email\", value: props.value, disabled: props.disabled, onSubmit: props.onSubmit, errorMessages: props.errorMessages, isRequired: props.isRequired, labelProps: props.labelProps }));\n};\nexport default EmailField;\n","import React, { useEffect } from \"react\";\nexport var useSwitchField = function (props) {\n var _a = React.useState(props.value), localValue = _a[0], setLocalValue = _a[1];\n useEffect(function () {\n props.onSubmit && props.onSubmit(localValue);\n }, [localValue]);\n return { localValue: localValue, setLocalValue: setLocalValue };\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { FormGroup, Switch } from \"@blueprintjs/core\";\nimport { FieldLabel } from \"../../CoreFields/FieldLabel/FieldLabel\";\nimport { FormFieldErrorContainer } from \"../../CoreFields/FieldError/FormFieldErrorContainer\";\nimport { useSwitchField } from \"./useSwitchField\";\nvar SwitchField = function (props) {\n var _a = useSwitchField(props), localValue = _a.localValue, setLocalValue = _a.setLocalValue;\n return (_jsx(\"div\", { className: \"ucl-base-input-switch-field-container\", children: _jsxs(FormGroup, { className: \"\".concat(props.isRequired && !localValue\n ? \"has-required-background\"\n : \"base-field\"), children: [props.labelOnTop && props.label && (_jsx(FieldLabel, __assign({ labelName: props.label, tooltipDescription: props.description, fieldProps: __assign(__assign({}, props), { value: localValue }) }, props.labelProps))), _jsx(Switch, { label: props.labelOnTop ? undefined : props.label, disabled: props.disabled, checked: localValue, onChange: function () {\n setLocalValue(!localValue);\n }, onClick: props.handleClick }), props.errorMessages && (_jsx(FormFieldErrorContainer, { errorMessages: props.errorMessages }))] }) }));\n};\nexport default SwitchField;\n","import React, { useEffect } from \"react\";\nexport var useEnumCheckboxField = function (props) {\n var _a = React.useState(props.value), localValues = _a[0], setLocalValues = _a[1];\n useEffect(function () {\n setLocalValues(props.value);\n }, [props.value]);\n return { localValues: localValues, setLocalValues: setLocalValues };\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { FormGroup, Checkbox } from \"@blueprintjs/core\";\nimport { FieldLabel } from \"../../CoreFields/FieldLabel/FieldLabel\";\nimport { FormFieldErrorContainer } from \"../../CoreFields/FieldError/FormFieldErrorContainer\";\nimport { useEnumCheckboxField } from \"./useEnumCheckboxField\";\nvar EnumCheckboxField = function (props) {\n var _a = useEnumCheckboxField(props), localValues = _a.localValues, setLocalValues = _a.setLocalValues;\n return (_jsx(\"div\", { className: \"ucl-base-input-checkbox-field-container\", children: _jsxs(FormGroup, { className: \"\".concat(props.isRequired && (!localValues || (localValues === null || localValues === void 0 ? void 0 : localValues.length) === 0)\n ? \"has-required-background\"\n : \"base-field\"), children: [props.label && (_jsx(FieldLabel, __assign({ labelName: props.label, tooltipDescription: props.description, fieldProps: __assign(__assign({}, props), { value: localValues }) }, props.labelProps))), (props.optionValues || [])\n .filter(function (option) { return !!option.value; })\n .map(function (option, idx) {\n var checked = localValues === null || localValues === void 0 ? void 0 : localValues.some(function (arg) { return arg === option.value; });\n return (_jsx(Checkbox, { name: option.label, label: option.label, disabled: props.disabled, checked: checked, onChange: function () {\n var newLocalValues;\n if (checked) {\n var filteredValues = localValues === null || localValues === void 0 ? void 0 : localValues.filter(function (localValue) { return localValue !== option.value; });\n newLocalValues =\n filteredValues && filteredValues.length > 0\n ? filteredValues\n : [];\n }\n else {\n newLocalValues = localValues\n ? __spreadArray(__spreadArray([], localValues, true), [option.value], false) : [option.value];\n }\n setLocalValues(newLocalValues);\n props.onSubmit && props.onSubmit(newLocalValues);\n } }, idx));\n }), props.errorMessages && (_jsx(FormFieldErrorContainer, { errorMessages: props.errorMessages }))] }) }));\n};\nexport default EnumCheckboxField;\n","/*\n * Copyright 2022 Palantir Technologies, Inc. All rights reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\n\nimport {\n AbstractPureComponent2,\n Button,\n Classes as CoreClasses,\n DISPLAYNAME_PREFIX,\n Keys,\n mergeRefs,\n refHandler,\n setRef,\n TagInput,\n TagInputAddMethod,\n TagInputProps,\n Utils,\n} from \"@blueprintjs/core\";\nimport { Popover2, Popover2ClickTargetHandlers, Popover2TargetProps, PopupKind } from \"@blueprintjs/popover2\";\n\nimport { Classes, ListItemsProps, SelectPopoverProps } from \"../../common\";\nimport { QueryList, QueryListRendererProps } from \"../query-list/queryList\";\n\nexport interface MultiSelect2Props extends ListItemsProps, SelectPopoverProps {\n /**\n * Whether the component is non-interactive.\n * If true, the list's item renderer will not be called.\n *\n * @default false\n */\n disabled?: boolean;\n\n /**\n * Whether the component should take up the full width of its container.\n */\n fill?: boolean;\n\n /**\n * Props to spread to the `Menu` listbox containing the selectable options.\n */\n menuProps?: React.HTMLAttributes;\n\n /**\n * If provided, this component will render a \"clear\" button inside its TagInput.\n * Clicking that button will invoke this callback to clear all items from the current selection.\n */\n onClear?: () => void;\n\n /**\n * Callback invoked when an item is removed from the selection by\n * removing its tag in the TagInput. This is generally more useful than\n * `tagInputProps.onRemove` because it receives the removed value instead of\n * the value's rendered `ReactNode` tag.\n *\n * It is not recommended to supply _both_ this prop and `tagInputProps.onRemove`.\n */\n onRemove?: (value: T, index: number) => void;\n\n /**\n * If true, the component waits until a keydown event in the TagInput\n * before opening its popover.\n *\n * If false, the popover opens immediately after a mouse click focuses\n * the component's TagInput.\n *\n * N.B. the behavior of this prop differs slightly from the same one\n * in the Suggest component; see https://github.com/palantir/blueprint/issues/4152.\n *\n * @default false\n */\n openOnKeyDown?: boolean;\n\n /**\n * Input placeholder text. Shorthand for `tagInputProps.placeholder`.\n *\n * @default \"Search...\"\n */\n placeholder?: string;\n\n /** Controlled selected values. */\n selectedItems: T[];\n\n /**\n * Props to pass to the [TagInput component](##core/components/tag-input).\n *\n * Some properties are unavailable:\n * - `tagInputProps.inputValue`: use `query` instead\n * - `tagInputProps.onInputChange`: use `onQueryChange` instead\n *\n * Some properties are available, but discouraged. If you find yourself using these due to a bug in MultiSelect2\n * or some edge case which is not handled by `onItemSelect`, `onItemsPaste`, `onRemove`, and `onClear`, please\n * file a bug in the Blueprint repo:\n * - `tagInputProps.onChange`\n *\n * Notes for `tagInputProps.rightElement`:\n * - you are responsible for disabling any elements you may render here when the overall `MultiSelect2` is disabled\n * - if the `onClear` prop is defined, this element will override/replace the default rightElement,\n * which is a \"clear\" button that removes all items from the current selection.\n */\n tagInputProps?: Partial>;\n\n /** Custom renderer to transform an item into tag content. */\n tagRenderer: (item: T) => React.ReactNode;\n}\n\nexport interface MultiSelect2State {\n isOpen: boolean;\n}\n\n/**\n * Multi select (v2) component.\n *\n * @see https://blueprintjs.com/docs/#select/multi-select2\n */\nexport class MultiSelect2 extends AbstractPureComponent2, MultiSelect2State> {\n public static displayName = `${DISPLAYNAME_PREFIX}.MultiSelect2`;\n\n private listboxId = Utils.uniqueId(\"listbox\");\n\n public static defaultProps = {\n disabled: false,\n fill: false,\n placeholder: \"Search...\",\n };\n\n /** @deprecated no longer necessary now that the TypeScript parser supports type arguments on JSX element tags */\n public static ofType() {\n return MultiSelect2 as new (props: MultiSelect2Props) => MultiSelect2;\n }\n\n public state: MultiSelect2State = {\n isOpen: (this.props.popoverProps && this.props.popoverProps.isOpen) || false,\n };\n\n public input: HTMLInputElement | null = null;\n\n public queryList: QueryList | null = null;\n\n private refHandlers: {\n input: React.RefCallback;\n popover: React.RefObject;\n queryList: React.RefCallback>;\n } = {\n input: refHandler(this, \"input\", this.props.tagInputProps?.inputRef),\n popover: React.createRef(),\n queryList: (ref: QueryList | null) => (this.queryList = ref),\n };\n\n public componentDidUpdate(prevProps: MultiSelect2Props) {\n if (prevProps.tagInputProps?.inputRef !== this.props.tagInputProps?.inputRef) {\n setRef(prevProps.tagInputProps?.inputRef, null);\n this.refHandlers.input = refHandler(this, \"input\", this.props.tagInputProps?.inputRef);\n setRef(this.props.tagInputProps?.inputRef, this.input);\n }\n if (\n (prevProps.onClear === undefined && this.props.onClear !== undefined) ||\n (prevProps.onClear !== undefined && this.props.onClear === undefined)\n ) {\n this.forceUpdate();\n }\n }\n\n public render() {\n // omit props specific to this component, spread the rest.\n const { menuProps, openOnKeyDown, popoverProps, tagInputProps, ...restProps } = this.props;\n\n return (\n \n {...restProps}\n menuProps={{\n \"aria-label\": \"selectable options\",\n ...menuProps,\n \"aria-multiselectable\": true,\n id: this.listboxId,\n }}\n onItemSelect={this.handleItemSelect}\n onQueryChange={this.handleQueryChange}\n ref={this.refHandlers.queryList}\n renderer={this.renderQueryList}\n />\n );\n }\n\n private renderQueryList = (listProps: QueryListRendererProps) => {\n const { disabled, popoverContentProps = {}, popoverProps = {} } = this.props;\n const { handleKeyDown, handleKeyUp } = listProps;\n\n const popoverRef =\n this.props.popoverRef === undefined\n ? this.refHandlers.popover\n : mergeRefs(this.refHandlers.popover, this.props.popoverRef);\n\n // N.B. no need to set `popoverProps.fill` since that is unused with the `renderTarget` API\n return (\n \n {listProps.itemList}\n \n }\n interactionKind=\"click\"\n onInteraction={this.handlePopoverInteraction}\n onOpened={this.handlePopoverOpened}\n popoverClassName={classNames(Classes.MULTISELECT_POPOVER, popoverProps.popoverClassName)}\n popupKind={PopupKind.LISTBOX}\n ref={popoverRef}\n renderTarget={this.getPopoverTargetRenderer(listProps, this.state.isOpen)}\n />\n );\n };\n\n // We use the renderTarget API to flatten the rendered DOM and make it easier to implement features like\n // the \"fill\" prop. Note that we must take `isOpen` as an argument to force this render function to be called\n // again after that state changes.\n private getPopoverTargetRenderer =\n (listProps: QueryListRendererProps, isOpen: boolean) =>\n // N.B. pull out `isOpen` so that it's not forwarded to the DOM, but remember not to use it directly\n // since it may be stale (`renderTarget` is not re-invoked on this.state changes).\n // eslint-disable-next-line react/display-name\n ({ isOpen: _isOpen, ref, ...targetProps }: Popover2TargetProps & Popover2ClickTargetHandlers) => {\n const {\n disabled,\n fill,\n onClear,\n placeholder,\n popoverProps = {},\n popoverTargetProps = {},\n selectedItems,\n tagInputProps = {},\n } = this.props;\n const { handleKeyDown, handleKeyUp } = listProps;\n\n if (disabled) {\n tagInputProps.disabled = true;\n }\n if (fill) {\n tagInputProps.fill = true;\n }\n\n // add our own inputProps.className so that we can reference it in event handlers\n const inputProps = {\n ...tagInputProps.inputProps,\n className: classNames(tagInputProps.inputProps?.className, Classes.MULTISELECT_TAG_INPUT_INPUT),\n };\n\n const maybeClearButton =\n onClear !== undefined && selectedItems.length > 0 ? (\n // use both aria-label and title a11y attributes here, for screen readers\n // and mouseover interactions respectively\n \n ) : undefined;\n\n const { targetTagName = \"div\" } = popoverProps;\n\n return React.createElement(\n targetTagName,\n {\n \"aria-autocomplete\": \"list\",\n \"aria-controls\": this.listboxId,\n ...popoverTargetProps,\n ...targetProps,\n \"aria-disabled\": disabled,\n \"aria-expanded\": isOpen,\n // Note that we must set FILL here in addition to TagInput to get the wrapper element to full width\n className: classNames(targetProps.className, popoverTargetProps.className, {\n [CoreClasses.FILL]: fill,\n }),\n // Normally, Popover2 would also need to attach its own `onKeyDown` handler via `targetProps`,\n // but in our case we fully manage that interaction and listen for key events to open/close\n // the popover, so we elide it from the DOM.\n onKeyDown: this.getTagInputKeyDownHandler(handleKeyDown),\n onKeyUp: this.getTagInputKeyUpHandler(handleKeyUp),\n ref,\n role: \"combobox\",\n },\n ,\n );\n };\n\n private handleItemSelect = (item: T, evt?: React.SyntheticEvent) => {\n if (this.input != null) {\n this.input.focus();\n }\n this.props.onItemSelect?.(item, evt);\n this.refHandlers.popover.current?.reposition(); // reposition when size of input changes\n };\n\n private handleQueryChange = (query: string, evt?: React.ChangeEvent) => {\n this.setState({ isOpen: query.length > 0 || !this.props.openOnKeyDown });\n this.props.onQueryChange?.(query, evt);\n };\n\n // Popover interaction kind is CLICK, so this only handles click events.\n // Note that we defer to the next animation frame in order to get the latest activeElement\n private handlePopoverInteraction = (nextOpenState: boolean, evt?: React.SyntheticEvent) =>\n this.requestAnimationFrame(() => {\n const isInputFocused = this.input === Utils.getActiveElement(this.input);\n\n if (this.input != null && !isInputFocused) {\n // input is no longer focused, we should close the popover\n this.setState({ isOpen: false });\n } else if (!this.props.openOnKeyDown) {\n // we should open immediately on click focus events\n this.setState({ isOpen: true });\n }\n\n this.props.popoverProps?.onInteraction?.(nextOpenState, evt);\n });\n\n private handlePopoverOpened = (node: HTMLElement) => {\n if (this.queryList != null) {\n // scroll active item into view after popover transition completes and all dimensions are stable.\n this.queryList.scrollActiveItemIntoView();\n }\n this.props.popoverProps?.onOpened?.(node);\n };\n\n private handleTagRemove = (tag: React.ReactNode, index: number) => {\n const { selectedItems, onRemove, tagInputProps } = this.props;\n onRemove?.(selectedItems[index], index);\n tagInputProps?.onRemove?.(tag, index);\n this.refHandlers.popover.current?.reposition(); // reposition when size of input changes\n };\n\n private getTagInputAddHandler =\n (listProps: QueryListRendererProps) => (values: any[], method: TagInputAddMethod) => {\n if (method === \"paste\") {\n listProps.handlePaste(values);\n }\n };\n\n private getTagInputKeyDownHandler = (handleQueryListKeyDown: React.KeyboardEventHandler) => {\n return (e: React.KeyboardEvent) => {\n // HACKHACK: https://github.com/palantir/blueprint/issues/4165\n // eslint-disable-next-line deprecation/deprecation\n const { which } = e;\n\n if (which === Keys.ESCAPE || which === Keys.TAB) {\n // By default the escape key will not trigger a blur on the\n // input element. It must be done explicitly.\n if (this.input != null) {\n this.input.blur();\n }\n this.setState({ isOpen: false });\n } else if (!(which === Keys.BACKSPACE || which === Keys.ARROW_LEFT || which === Keys.ARROW_RIGHT)) {\n this.setState({ isOpen: true });\n }\n\n const isTargetingTagRemoveButton = (e.target as HTMLElement).closest(`.${CoreClasses.TAG_REMOVE}`) != null;\n\n if (this.state.isOpen && !isTargetingTagRemoveButton) {\n handleQueryListKeyDown?.(e);\n }\n\n this.props.popoverTargetProps?.onKeyDown?.(e);\n };\n };\n\n private getTagInputKeyUpHandler = (handleQueryListKeyUp: React.KeyboardEventHandler) => {\n return (e: React.KeyboardEvent) => {\n const isTargetingInput = (e.target as HTMLElement).classList.contains(Classes.MULTISELECT_TAG_INPUT_INPUT);\n\n // only handle events when the focus is on the actual inside the TagInput, as that's\n // what QueryList is designed to do\n if (this.state.isOpen && isTargetingInput) {\n handleQueryListKeyUp?.(e);\n }\n\n this.props.popoverTargetProps?.onKeyDown?.(e);\n };\n };\n\n private handleClearButtonClick = () => {\n this.props.onClear?.();\n this.refHandlers.popover.current?.reposition(); // reposition when size of input changes\n };\n}\n","var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport React from \"react\";\nexport var useEnumMultiSelectField = function (props) {\n var selectAllOption = {\n label: \"Select All\",\n value: 9999,\n };\n var valueWithSelectAll = (props.optionValues || []).length === (props.value || []).length\n ? __spreadArray(__spreadArray([], (props.value || []), true), [selectAllOption.value], false) : props.value;\n var setInitialFieldValue = function (includeSelectAll) {\n if (includeSelectAll === void 0) { includeSelectAll = false; }\n if (!!includeSelectAll) {\n return valueWithSelectAll;\n }\n else {\n return props.value;\n }\n };\n var _a = React.useState(setInitialFieldValue(props.includeSelectAll) || []), localValue = _a[0], setLocalValue = _a[1];\n var localOptionValues = __spreadArray(__spreadArray([], (props.optionValues || []), true), [selectAllOption], false);\n return { localValue: localValue, setLocalValue: setLocalValue, localOptionValues: localOptionValues, selectAllOption: selectAllOption };\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { FormGroup, Icon } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport { MenuItem2 } from \"@blueprintjs/popover2\";\nimport { MultiSelect2 } from \"@blueprintjs/select\";\nimport { FormFieldErrorContainer } from \"../../CoreFields/FieldError/FormFieldErrorContainer\";\nimport { FieldLabel } from \"../../CoreFields/FieldLabel/FieldLabel\";\nimport { useEnumMultiSelectField } from \"./useEnumMultiSelectField\";\n/**Enum Multi Select is used primarily with enum values from the API, but can be passed collection of arrays.\n * Allows for multiple selections.\n */\nvar EnumMultiSelectField = function (props) {\n var _a = useEnumMultiSelectField(props), localValue = _a.localValue, setLocalValue = _a.setLocalValue, localOptionValues = _a.localOptionValues, selectAllOption = _a.selectAllOption;\n return (_jsxs(FormGroup, { className: \"\".concat(props.isRequired && !!localValue && (localValue || []).length === 0\n ? \"has-required-background\"\n : \"base-field\"), children: [props.label && (_jsx(FieldLabel, __assign({ labelName: props.label, tooltipDescription: props.description, fieldProps: __assign(__assign({}, props), { value: localValue }) }, props.labelProps))), _jsxs(\"div\", { className: \"\".concat((localValue || []).length === 0\n ? \"multi-select-container__empty\"\n : \"multi-select-container\"), children: [_jsx(MultiSelect2, { className: \"multi-select-input\", placeholder: props.placeholder ? props.placeholder : \"Please Select A Value\", disabled: props.disabled, selectedItems: localValue\n .map(function (value) {\n return (localOptionValues || []).find(function (optionValue) { return optionValue.value === value; }) || [];\n })\n .filter(function (value) { return !!value; }), popoverProps: {\n position: \"auto\",\n hasBackdrop: true,\n minimal: false,\n canEscapeKeyClose: true,\n }, items: props.includeSelectAll ? localOptionValues : props.optionValues, itemRenderer: function (item, itemProps) {\n return (_jsx(MenuItem2, { className: \"select__menu-item\", text: item.label, active: localValue.some(function (value) { return String(value) === String(item.value); }), onClick: itemProps.handleClick }, itemProps.index));\n }, onClear: function () {\n var newValue = [];\n setLocalValue(newValue);\n props.onSubmit && props.onSubmit(newValue);\n }, noResults: \"No Results\", resetOnSelect: true, onRemove: function (item) {\n var newValue = [];\n if (item.value === selectAllOption.value) {\n newValue = [];\n }\n else {\n newValue = (localValue || []).filter(function (value) {\n return value !== item.value && value !== selectAllOption.value;\n });\n }\n setLocalValue(newValue);\n props.onSubmit && props.onSubmit(newValue);\n }, onItemSelect: function (item) {\n var newValue = [];\n if (localValue.some(function (value) { return String(value) === String(item.value); })) {\n if (item.value === selectAllOption.value) {\n newValue = [];\n setLocalValue(newValue);\n }\n else {\n newValue = (localValue || []).filter(function (value) {\n return value !== item.value && value !== selectAllOption.value;\n });\n setLocalValue(newValue);\n }\n }\n else {\n if (item.value === selectAllOption.value) {\n newValue = props.optionValues.map(function (optionValue) { return optionValue.value; });\n setLocalValue(__spreadArray([selectAllOption.value], newValue, true));\n }\n else {\n newValue = __spreadArray(__spreadArray([], localValue, true), [item.value], false);\n setLocalValue(newValue);\n }\n }\n props.onSubmit && props.onSubmit(newValue);\n }, tagRenderer: function (item) { return item.label; }, itemListPredicate: function (query, items) {\n query = query.toLowerCase();\n return (items || []).filter(function (optionValue) {\n return optionValue.label.toLowerCase().includes(query);\n });\n } }), _jsx(Icon, { className: \"select-right-icon\", icon: IconNames.CaretDown })] }), props.errorMessages && (_jsx(FormFieldErrorContainer, { errorMessages: props.errorMessages }))] }));\n};\nexport default EnumMultiSelectField;\n","/**\n * FloatLable Moduel\n * Specifies whether to display the floating label above the input element.\n */\nimport { removeClass, addClass, detach } from '@syncfusion/ej2-base';\nimport { attributes, isNullOrUndefined, createElement, getUniqueID } from '@syncfusion/ej2-base';\nvar FLOATLINE = 'e-float-line';\nvar FLOATTEXT = 'e-float-text';\nvar LABELTOP = 'e-label-top';\nvar LABELBOTTOM = 'e-label-bottom';\n/* eslint-disable valid-jsdoc */\n/**\n * Function to create Float Label element.\n *\n * @param {HTMLDivElement} overAllWrapper - Overall wrapper of multiselect.\n * @param {HTMLElement} searchWrapper - Search wrapper of multiselect.\n * @param {HTMLElement} element - The given html element.\n * @param {HTMLInputElement} inputElement - Specify the input wrapper.\n * @param {number[] | string[] | boolean[]} value - Value of the MultiSelect.\n * @param {FloatLabelType} floatLabelType - Specify the FloatLabel Type.\n * @param {string} placeholder - Specify the PlaceHolder text.\n */\nexport function createFloatLabel(overAllWrapper, searchWrapper, element, inputElement, value, floatLabelType, placeholder) {\n var floatLinelement = createElement('span', { className: FLOATLINE });\n var floatLabelElement = createElement('label', { className: FLOATTEXT });\n var id = element.getAttribute('id') ? element.getAttribute('id') : getUniqueID('ej2_multiselect');\n element.id = id;\n if (!isNullOrUndefined(element.id) && element.id !== '') {\n floatLabelElement.id = 'label_' + element.id.replace(/ /g, '_');\n attributes(inputElement, { 'aria-labelledby': floatLabelElement.id });\n }\n if (!isNullOrUndefined(inputElement.placeholder) && inputElement.placeholder !== '') {\n floatLabelElement.innerText = encodePlaceholder(inputElement.placeholder);\n inputElement.removeAttribute('placeholder');\n }\n floatLabelElement.innerText = encodePlaceholder(placeholder);\n searchWrapper.appendChild(floatLinelement);\n searchWrapper.appendChild(floatLabelElement);\n overAllWrapper.classList.add('e-float-input');\n updateFloatLabelState(value, floatLabelElement);\n if (floatLabelType === 'Always') {\n if (floatLabelElement.classList.contains(LABELBOTTOM)) {\n removeClass([floatLabelElement], LABELBOTTOM);\n }\n addClass([floatLabelElement], LABELTOP);\n }\n}\n/**\n * Function to update status of the Float Label element.\n *\n * @param {string[] | number[] | boolean[]} value - Value of the MultiSelect.\n * @param {HTMLElement} label - Float label element.\n */\nexport function updateFloatLabelState(value, label) {\n if (value && value.length > 0) {\n addClass([label], LABELTOP);\n removeClass([label], LABELBOTTOM);\n }\n else {\n removeClass([label], LABELTOP);\n addClass([label], LABELBOTTOM);\n }\n}\n/**\n * Function to remove Float Label element.\n *\n * @param {HTMLDivElement} overAllWrapper - Overall wrapper of multiselect.\n * @param {HTMLDivElement} componentWrapper - Wrapper element of multiselect.\n * @param {HTMLElement} searchWrapper - Search wrapper of multiselect.\n * @param {HTMLInputElement} inputElement - Specify the input wrapper.\n * @param {number[] | string[] | boolean[]} value - Value of the MultiSelect.\n * @param {FloatLabelType} floatLabelType - Specify the FloatLabel Type.\n * @param {string} placeholder - Specify the PlaceHolder text.\n */\nexport function removeFloating(overAllWrapper, componentWrapper, searchWrapper, inputElement, value, floatLabelType, placeholder) {\n var placeholderElement = componentWrapper.querySelector('.' + FLOATTEXT);\n var floatLine = componentWrapper.querySelector('.' + FLOATLINE);\n var placeholderText;\n if (!isNullOrUndefined(placeholderElement)) {\n placeholderText = placeholderElement.innerText;\n detach(searchWrapper.querySelector('.' + FLOATTEXT));\n setPlaceHolder(value, inputElement, placeholderText);\n if (!isNullOrUndefined(floatLine)) {\n detach(searchWrapper.querySelector('.' + FLOATLINE));\n }\n }\n else {\n placeholderText = (placeholder !== null) ? placeholder : '';\n setPlaceHolder(value, inputElement, placeholderText);\n }\n overAllWrapper.classList.remove('e-float-input');\n}\n/**\n * Function to set the placeholder to the element.\n *\n * @param {number[] | string[] | boolean[]} value - Value of the MultiSelect.\n * @param {HTMLInputElement} inputElement - Specify the input wrapper.\n * @param {string} placeholder - Specify the PlaceHolder text.\n */\nexport function setPlaceHolder(value, inputElement, placeholder) {\n if (value && value.length) {\n inputElement.placeholder = '';\n }\n else {\n inputElement.placeholder = placeholder;\n }\n}\n/**\n * Function for focusing the Float Element.\n *\n * @param {HTMLDivElement} overAllWrapper - Overall wrapper of multiselect.\n * @param {HTMLDivElement} componentWrapper - Wrapper element of multiselect.\n */\nexport function floatLabelFocus(overAllWrapper, componentWrapper) {\n overAllWrapper.classList.add('e-input-focus');\n var label = componentWrapper.querySelector('.' + FLOATTEXT);\n if (!isNullOrUndefined(label)) {\n addClass([label], LABELTOP);\n if (label.classList.contains(LABELBOTTOM)) {\n removeClass([label], LABELBOTTOM);\n }\n }\n}\n/* eslint-disable @typescript-eslint/no-unused-vars */\n/**\n * Function to focus the Float Label element.\n *\n * @param {HTMLDivElement} overAllWrapper - Overall wrapper of multiselect.\n * @param {HTMLDivElement} componentWrapper - Wrapper element of multiselect.\n * @param {number[] | string[] | boolean[]} value - Value of the MultiSelect.\n * @param {FloatLabelType} floatLabelType - Specify the FloatLabel Type.\n * @param {string} placeholder - Specify the PlaceHolder text.\n */\nexport function floatLabelBlur(overAllWrapper, componentWrapper, value, floatLabelType, placeholder) {\n /* eslint-enable @typescript-eslint/no-unused-vars */\n overAllWrapper.classList.remove('e-input-focus');\n var label = componentWrapper.querySelector('.' + FLOATTEXT);\n if (value && value.length <= 0 && floatLabelType === 'Auto' && !isNullOrUndefined(label)) {\n if (label.classList.contains(LABELTOP)) {\n removeClass([label], LABELTOP);\n }\n addClass([label], LABELBOTTOM);\n }\n}\nexport function encodePlaceholder(placeholder) {\n var result = '';\n if (!isNullOrUndefined(placeholder) && placeholder !== '') {\n var spanElement = document.createElement('span');\n spanElement.innerHTML = '';\n var hiddenInput = (spanElement.children[0]);\n result = hiddenInput.placeholder;\n }\n return result;\n}\n/* eslint-enable valid-jsdoc */\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n// eslint-disable-next-line @typescript-eslint/triple-slash-reference\n/// \nimport { DropDownBase, dropDownBaseClasses } from '../drop-down-base/drop-down-base';\nimport { FieldSettings } from '../drop-down-base/drop-down-base';\nimport { Popup, createSpinner, showSpinner, hideSpinner } from '@syncfusion/ej2-popups';\nimport { Input } from '@syncfusion/ej2-inputs';\nimport { attributes, setValue, SanitizeHtmlHelper, getValue } from '@syncfusion/ej2-base';\nimport { NotifyPropertyChanges, extend } from '@syncfusion/ej2-base';\nimport { EventHandler, Property, Event, compile, L10n } from '@syncfusion/ej2-base';\nimport { Animation, Browser, prepend, Complex } from '@syncfusion/ej2-base';\nimport { Search } from '../common/incremental-search';\nimport { append, addClass, removeClass, closest, detach, remove, select, selectAll } from '@syncfusion/ej2-base';\nimport { getUniqueID, formatUnit, isNullOrUndefined, isUndefined } from '@syncfusion/ej2-base';\nimport { DataManager, Query, Predicate, JsonAdaptor } from '@syncfusion/ej2-data';\nimport { createFloatLabel, removeFloating, floatLabelFocus, floatLabelBlur, encodePlaceholder } from './float-label';\nvar FOCUS = 'e-input-focus';\nvar DISABLED = 'e-disabled';\nvar OVER_ALL_WRAPPER = 'e-multiselect e-input-group e-control-wrapper';\nvar ELEMENT_WRAPPER = 'e-multi-select-wrapper';\nvar ELEMENT_MOBILE_WRAPPER = 'e-mob-wrapper';\nvar HIDE_LIST = 'e-hide-listitem';\nvar DELIMITER_VIEW = 'e-delim-view';\nvar CHIP_WRAPPER = 'e-chips-collection';\nvar CHIP = 'e-chips';\nvar CHIP_CONTENT = 'e-chipcontent';\nvar CHIP_CLOSE = 'e-chips-close';\nvar CHIP_SELECTED = 'e-chip-selected';\nvar SEARCHBOX_WRAPPER = 'e-searcher';\nvar DELIMITER_VIEW_WRAPPER = 'e-delimiter';\nvar ZERO_SIZE = 'e-zero-size';\nvar REMAIN_WRAPPER = 'e-remain';\nvar CLOSEICON_CLASS = 'e-chips-close e-close-hooker';\nvar DELIMITER_WRAPPER = 'e-delim-values';\nvar POPUP_WRAPPER = 'e-ddl e-popup e-multi-select-list-wrapper';\nvar INPUT_ELEMENT = 'e-dropdownbase';\nvar RTL_CLASS = 'e-rtl';\nvar CLOSE_ICON_HIDE = 'e-close-icon-hide';\nvar MOBILE_CHIP = 'e-mob-chip';\nvar FOOTER = 'e-ddl-footer';\nvar HEADER = 'e-ddl-header';\nvar DISABLE_ICON = 'e-ddl-disable-icon';\nvar SPINNER_CLASS = 'e-ms-spinner-icon';\nvar HIDDEN_ELEMENT = 'e-multi-hidden';\nvar destroy = 'destroy';\nvar dropdownIcon = 'e-input-group-icon e-ddl-icon';\nvar iconAnimation = 'e-icon-anim';\nvar TOTAL_COUNT_WRAPPER = 'e-delim-total';\nvar BOX_ELEMENT = 'e-multiselect-box';\nvar FILTERPARENT = 'e-filter-parent';\nvar CUSTOM_WIDTH = 'e-search-custom-width';\nvar FILTERINPUT = 'e-input-filter';\n/**\n * The Multiselect allows the user to pick a more than one value from list of predefined values.\n * ```html\n * \n * ```\n * ```typescript\n * \n * ```\n */\nvar MultiSelect = /** @class */ (function (_super) {\n __extends(MultiSelect, _super);\n /**\n * Constructor for creating the DropDownList widget.\n *\n * @param {MultiSelectModel} option - Specifies the MultiSelect model.\n * @param {string | HTMLElement} element - Specifies the element to render as component.\n * @private\n */\n function MultiSelect(option, element) {\n var _this = _super.call(this, option, element) || this;\n _this.clearIconWidth = 0;\n _this.previousFilterText = '';\n _this.isValidKey = false;\n _this.selectAllEventData = [];\n _this.selectAllEventEle = [];\n _this.resetMainList = null;\n _this.resetFilteredData = false;\n _this.scrollFocusStatus = false;\n _this.keyDownStatus = false;\n return _this;\n }\n MultiSelect.prototype.enableRTL = function (state) {\n if (state) {\n this.overAllWrapper.classList.add(RTL_CLASS);\n }\n else {\n this.overAllWrapper.classList.remove(RTL_CLASS);\n }\n if (this.popupObj) {\n this.popupObj.enableRtl = state;\n this.popupObj.dataBind();\n }\n };\n MultiSelect.prototype.requiredModules = function () {\n var modules = [];\n if (this.mode === 'CheckBox') {\n this.isGroupChecking = this.enableGroupCheckBox;\n if (this.enableGroupCheckBox) {\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.enableSelectionOrder = false;\n this.isProtectedOnChange = prevOnChange;\n }\n this.allowCustomValue = false;\n this.hideSelectedItem = false;\n this.closePopupOnSelect = false;\n modules.push({\n member: 'CheckBoxSelection',\n args: [this]\n });\n }\n return modules;\n };\n MultiSelect.prototype.updateHTMLAttribute = function () {\n if (Object.keys(this.htmlAttributes).length) {\n for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) {\n var htmlAttr = _a[_i];\n switch (htmlAttr) {\n case 'class': {\n var updatedClassValue = (this.htmlAttributes[\"\" + htmlAttr].replace(/\\s+/g, ' ')).trim();\n if (updatedClassValue !== '') {\n addClass([this.overAllWrapper], updatedClassValue.split(' '));\n addClass([this.popupWrapper], updatedClassValue.split(' '));\n }\n break;\n }\n case 'disabled':\n this.enable(false);\n break;\n case 'placeholder':\n if (!this.placeholder) {\n this.inputElement.setAttribute(htmlAttr, this.htmlAttributes[\"\" + htmlAttr]);\n this.setProperties({ placeholder: this.inputElement.placeholder }, true);\n this.refreshPlaceHolder();\n }\n break;\n default: {\n var defaultAttr = ['id'];\n var validateAttr = ['name', 'required', 'aria-required', 'form'];\n var containerAttr = ['title', 'role', 'style', 'class'];\n if (defaultAttr.indexOf(htmlAttr) > -1) {\n this.element.setAttribute(htmlAttr, this.htmlAttributes[\"\" + htmlAttr]);\n }\n else if (htmlAttr.indexOf('data') === 0 || validateAttr.indexOf(htmlAttr) > -1) {\n this.hiddenElement.setAttribute(htmlAttr, this.htmlAttributes[\"\" + htmlAttr]);\n }\n else if (containerAttr.indexOf(htmlAttr) > -1) {\n this.overAllWrapper.setAttribute(htmlAttr, this.htmlAttributes[\"\" + htmlAttr]);\n }\n else if (htmlAttr !== 'size' && !isNullOrUndefined(this.inputElement)) {\n this.inputElement.setAttribute(htmlAttr, this.htmlAttributes[\"\" + htmlAttr]);\n }\n break;\n }\n }\n }\n }\n };\n MultiSelect.prototype.updateReadonly = function (state) {\n if (!isNullOrUndefined(this.inputElement)) {\n if (state || this.mode === 'CheckBox') {\n this.inputElement.setAttribute('readonly', 'true');\n }\n else {\n this.inputElement.removeAttribute('readonly');\n }\n }\n };\n MultiSelect.prototype.updateClearButton = function (state) {\n if (state) {\n if (this.overAllClear.parentNode) {\n this.overAllClear.style.display = '';\n }\n else {\n this.componentWrapper.appendChild(this.overAllClear);\n }\n this.componentWrapper.classList.remove(CLOSE_ICON_HIDE);\n }\n else {\n this.overAllClear.style.display = 'none';\n this.componentWrapper.classList.add(CLOSE_ICON_HIDE);\n }\n };\n MultiSelect.prototype.updateCssClass = function () {\n if (!isNullOrUndefined(this.cssClass) && this.cssClass !== '') {\n var updatedCssClassValues = this.cssClass;\n updatedCssClassValues = (this.cssClass.replace(/\\s+/g, ' ')).trim();\n if (updatedCssClassValues !== '') {\n addClass([this.overAllWrapper], updatedCssClassValues.split(' '));\n addClass([this.popupWrapper], updatedCssClassValues.split(' '));\n }\n }\n };\n MultiSelect.prototype.updateOldPropCssClass = function (oldClass) {\n if (!isNullOrUndefined(oldClass) && oldClass !== '') {\n oldClass = (oldClass.replace(/\\s+/g, ' ')).trim();\n if (oldClass !== '') {\n removeClass([this.overAllWrapper], oldClass.split(' '));\n removeClass([this.popupWrapper], oldClass.split(' '));\n }\n }\n };\n MultiSelect.prototype.onPopupShown = function (e) {\n var _this = this;\n if (Browser.isDevice && (this.mode === 'CheckBox' && this.allowFiltering)) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var proxy_1 = this;\n window.onpopstate = function () {\n proxy_1.hidePopup();\n proxy_1.inputElement.focus();\n };\n history.pushState({}, '');\n }\n var animModel = { name: 'FadeIn', duration: 100 };\n var eventArgs = { popup: this.popupObj, event: e, cancel: false, animation: animModel };\n this.trigger('open', eventArgs, function (eventArgs) {\n if (!eventArgs.cancel) {\n _this.focusAtFirstListItem();\n if (_this.popupObj) {\n document.body.appendChild(_this.popupObj.element);\n }\n if (_this.mode === 'CheckBox' && _this.enableGroupCheckBox && !isNullOrUndefined(_this.fields.groupBy)) {\n _this.updateListItems(_this.list.querySelectorAll('li.e-list-item'), _this.mainList.querySelectorAll('li.e-list-item'));\n }\n if (_this.mode === 'CheckBox' || _this.showDropDownIcon) {\n addClass([_this.overAllWrapper], [iconAnimation]);\n }\n _this.refreshPopup();\n _this.renderReactTemplates();\n if (_this.popupObj) {\n _this.popupObj.show(eventArgs.animation, (_this.zIndex === 1000) ? _this.element : null);\n }\n attributes(_this.inputElement, { 'aria-expanded': 'true', 'aria-owns': _this.inputElement.id + '_options' });\n _this.updateAriaActiveDescendant();\n if (_this.isFirstClick) {\n _this.loadTemplate();\n }\n }\n });\n };\n MultiSelect.prototype.updateListItems = function (listItems, mainListItems) {\n for (var i = 0; i < listItems.length; i++) {\n this.findGroupStart(listItems[i]);\n this.findGroupStart(mainListItems[i]);\n }\n this.deselectHeader();\n };\n MultiSelect.prototype.loadTemplate = function () {\n this.refreshListItems(null);\n if (this.mode === 'CheckBox') {\n this.removeFocus();\n }\n this.notify('reOrder', { module: 'CheckBoxSelection', enable: this.mode === 'CheckBox', e: this });\n };\n MultiSelect.prototype.setScrollPosition = function () {\n if (((!this.hideSelectedItem && this.mode !== 'CheckBox') || (this.mode === 'CheckBox' && !this.enableSelectionOrder)) &&\n (!isNullOrUndefined(this.value) && (this.value.length > 0))) {\n var valueEle = this.findListElement((this.hideSelectedItem ? this.ulElement : this.list), 'li', 'data-value', this.value[this.value.length - 1]);\n if (!isNullOrUndefined(valueEle)) {\n this.scrollBottom(valueEle);\n }\n }\n };\n MultiSelect.prototype.focusAtFirstListItem = function () {\n if (this.ulElement && this.ulElement.querySelector('li.'\n + dropDownBaseClasses.li)) {\n var element = void 0;\n if (this.mode === 'CheckBox') {\n this.removeFocus();\n return;\n }\n else {\n element = this.ulElement.querySelector('li.'\n + dropDownBaseClasses.li + ':not(.'\n + HIDE_LIST + ')');\n }\n if (element !== null) {\n this.removeFocus();\n this.addListFocus(element);\n }\n }\n };\n MultiSelect.prototype.focusAtLastListItem = function (data) {\n var activeElement;\n if (data) {\n activeElement = Search(data, this.liCollections, 'StartsWith', this.ignoreCase);\n }\n else {\n if (this.value && this.value.length) {\n Search(this.value[this.value.length - 1], this.liCollections, 'StartsWith', this.ignoreCase);\n }\n else {\n activeElement = null;\n }\n }\n if (activeElement && activeElement.item !== null) {\n this.addListFocus(activeElement.item);\n this.scrollBottom(activeElement.item, activeElement.index);\n }\n };\n MultiSelect.prototype.getAriaAttributes = function () {\n var ariaAttributes = {\n 'aria-disabled': 'false',\n 'role': 'combobox',\n 'aria-expanded': 'false'\n };\n return ariaAttributes;\n };\n MultiSelect.prototype.updateListARIA = function () {\n if (!isNullOrUndefined(this.ulElement)) {\n attributes(this.ulElement, { 'id': this.element.id + '_options', 'role': 'listbox', 'aria-hidden': 'false' });\n }\n var disableStatus = !isNullOrUndefined(this.inputElement) && (this.inputElement.disabled) ? true : false;\n if (!this.isPopupOpen() && !isNullOrUndefined(this.inputElement)) {\n attributes(this.inputElement, this.getAriaAttributes());\n }\n if (disableStatus) {\n attributes(this.inputElement, { 'aria-disabled': 'true' });\n }\n this.ensureAriaDisabled((disableStatus) ? 'true' : 'false');\n };\n MultiSelect.prototype.ensureAriaDisabled = function (status) {\n if (this.htmlAttributes && this.htmlAttributes['aria-disabled']) {\n var attr = this.htmlAttributes;\n extend(attr, { 'aria-disabled': status }, attr);\n this.setProperties({ htmlAttributes: attr }, true);\n }\n };\n MultiSelect.prototype.removelastSelection = function (e) {\n var elements = this.chipCollectionWrapper.querySelectorAll('span.' + CHIP);\n var value = elements[elements.length - 1].getAttribute('data-value');\n if (!isNullOrUndefined(this.value)) {\n this.tempValues = this.value.slice();\n }\n var customValue = this.getFormattedValue(value);\n if (this.allowCustomValue && (value !== 'false' && customValue === false || (!isNullOrUndefined(customValue) &&\n customValue.toString() === 'NaN'))) {\n customValue = value;\n }\n this.removeValue(customValue, e);\n this.removeChipSelection();\n this.updateDelimeter(this.delimiterChar, e);\n this.makeTextBoxEmpty();\n if (this.mainList && this.listData) {\n this.refreshSelection();\n }\n this.checkPlaceholderSize();\n };\n MultiSelect.prototype.onActionFailure = function (e) {\n _super.prototype.onActionFailure.call(this, e);\n this.renderPopup();\n this.onPopupShown();\n };\n MultiSelect.prototype.targetElement = function () {\n this.targetInputElement = this.inputElement;\n if (this.mode === 'CheckBox' && this.allowFiltering) {\n this.notify('targetElement', { module: 'CheckBoxSelection', enable: this.mode === 'CheckBox' });\n }\n return this.targetInputElement.value;\n };\n MultiSelect.prototype.getForQuery = function (valuecheck) {\n var predicate;\n var field = isNullOrUndefined(this.fields.value) ? this.fields.text : this.fields.value;\n for (var i = 0; i < valuecheck.length; i++) {\n if (i === 0) {\n predicate = new Predicate(field, 'equal', valuecheck[i]);\n }\n else {\n predicate = predicate.or(field, 'equal', valuecheck[i]);\n }\n }\n if (this.dataSource instanceof DataManager && this.dataSource.adaptor instanceof JsonAdaptor) {\n return new Query().where(predicate);\n }\n else {\n return this.getQuery(this.query).clone().where(predicate);\n }\n };\n /* eslint-disable @typescript-eslint/no-unused-vars */\n MultiSelect.prototype.onActionComplete = function (ulElement, list, e, isUpdated) {\n /* eslint-enable @typescript-eslint/no-unused-vars */\n _super.prototype.onActionComplete.call(this, ulElement, list, e);\n this.updateSelectElementData(this.allowFiltering);\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var proxy = this;\n if (!isNullOrUndefined(this.value) && !this.allowCustomValue) {\n for (var i = 0; i < this.value.length; i++) {\n var checkEle = this.findListElement(((this.allowFiltering && !isNullOrUndefined(this.mainList)) ? this.mainList : ulElement), 'li', 'data-value', proxy.value[i]);\n if (!checkEle && !(this.dataSource instanceof DataManager)) {\n this.value.splice(i, 1);\n i -= 1;\n }\n }\n }\n var valuecheck = [];\n if (!isNullOrUndefined(this.value)) {\n valuecheck = this.presentItemValue(this.ulElement);\n }\n if (valuecheck.length > 0 && this.dataSource instanceof DataManager && !isNullOrUndefined(this.value)\n && this.listData != null) {\n this.addNonPresentItems(valuecheck, this.ulElement, this.listData);\n }\n else {\n this.updateActionList(ulElement, list, e);\n }\n if (this.dataSource instanceof DataManager && this.mode === 'CheckBox' && this.allowFiltering) {\n this.removeFocus();\n }\n };\n /* eslint-disable @typescript-eslint/no-unused-vars */\n MultiSelect.prototype.updateActionList = function (ulElement, list, e, isUpdated) {\n /* eslint-enable @typescript-eslint/no-unused-vars */\n if (this.mode === 'CheckBox' && this.showSelectAll) {\n this.notify('selectAll', { module: 'CheckBoxSelection', enable: this.mode === 'CheckBox' });\n }\n if (!this.mainList && !this.mainData) {\n this.mainList = ulElement.cloneNode ? ulElement.cloneNode(true) : ulElement;\n this.mainData = list;\n this.mainListCollection = this.liCollections;\n }\n else if (isNullOrUndefined(this.mainData) || this.mainData.length === 0) {\n this.mainData = list;\n }\n if ((this.remoteCustomValue || list.length <= 0) && this.allowCustomValue && this.inputFocus && this.allowFiltering &&\n this.inputElement.value && this.inputElement.value !== '') {\n this.checkForCustomValue(this.tempQuery, this.fields);\n return;\n }\n if (this.value && this.value.length && ((this.mode !== 'CheckBox' && !isNullOrUndefined(this.inputElement) && this.inputElement.value.trim() !== '') ||\n this.mode === 'CheckBox' || ((this.keyCode === 8 || this.keyCode === 46) && this.allowFiltering &&\n this.allowCustomValue && this.dataSource instanceof DataManager && this.inputElement.value === ''))) {\n this.refreshSelection();\n }\n this.updateListARIA();\n this.unwireListEvents();\n this.wireListEvents();\n if (!isNullOrUndefined(this.setInitialValue)) {\n this.setInitialValue();\n }\n if (!isNullOrUndefined(this.selectAllAction)) {\n this.selectAllAction();\n }\n if (this.setDynValue) {\n if (!isNullOrUndefined(this.text) && (isNullOrUndefined(this.value) || this.value.length === 0)) {\n this.initialTextUpdate();\n }\n this.initialValueUpdate();\n this.initialUpdate();\n this.refreshPlaceHolder();\n if (this.mode !== 'CheckBox' && this.changeOnBlur) {\n this.updateValueState(null, this.value, null);\n }\n }\n this.renderPopup();\n if (this.beforePopupOpen) {\n this.beforePopupOpen = false;\n this.onPopupShown(e);\n }\n };\n MultiSelect.prototype.refreshSelection = function () {\n var value;\n var element;\n var className = this.hideSelectedItem ?\n HIDE_LIST :\n dropDownBaseClasses.selected;\n if (!isNullOrUndefined(this.value)) {\n for (var index = 0; !isNullOrUndefined(this.value[index]); index++) {\n value = this.value[index];\n element = this.findListElement(this.list, 'li', 'data-value', value);\n if (element) {\n addClass([element], className);\n if (this.hideSelectedItem && element.previousSibling\n && element.previousElementSibling.classList.contains(dropDownBaseClasses.group)\n && (!element.nextElementSibling ||\n element.nextElementSibling.classList.contains(dropDownBaseClasses.group))) {\n addClass([element.previousElementSibling], className);\n }\n if (this.hideSelectedItem && this.fields.groupBy && !element.previousElementSibling.classList.contains(HIDE_LIST)) {\n this.hideGroupItem(value);\n }\n if (this.hideSelectedItem && element.classList.contains(dropDownBaseClasses.focus)) {\n removeClass([element], dropDownBaseClasses.focus);\n var listEle = element.parentElement.querySelectorAll('.' +\n dropDownBaseClasses.li + ':not(.' + HIDE_LIST + ')');\n if (listEle.length > 0) {\n addClass([listEle[0]], dropDownBaseClasses.focus);\n this.updateAriaActiveDescendant();\n }\n else {\n //EJ2-57588 - for this task, we prevent the ul element cloning ( this.ulElement = this.ulElement.cloneNode ? this.ulElement.cloneNode(true) : this.ulElement;)\n if (!(this.list && this.list.querySelectorAll('.' + dropDownBaseClasses.li).length > 0)) {\n this.l10nUpdate();\n addClass([this.list], dropDownBaseClasses.noData);\n }\n }\n }\n element.setAttribute('aria-selected', 'true');\n if (this.mode === 'CheckBox' && element.classList.contains('e-active')) {\n var ariaValue = element.getElementsByClassName('e-check').length;\n if (ariaValue === 0) {\n var args = {\n module: 'CheckBoxSelection',\n enable: this.mode === 'CheckBox',\n li: element,\n e: null\n };\n this.notify('updatelist', args);\n }\n }\n }\n }\n }\n this.checkSelectAll();\n this.checkMaxSelection();\n };\n MultiSelect.prototype.hideGroupItem = function (value) {\n var element;\n var element1;\n var className = this.hideSelectedItem ?\n HIDE_LIST :\n dropDownBaseClasses.selected;\n element1 = element = this.findListElement(this.ulElement, 'li', 'data-value', value);\n var i = 0;\n var j = 0;\n var temp = true;\n var temp1 = true;\n do {\n if (element && element.previousElementSibling\n && (!element.previousElementSibling.classList.contains(HIDE_LIST) &&\n element.previousElementSibling.classList.contains(dropDownBaseClasses.li))) {\n temp = false;\n }\n if (!temp || !element || (element.previousElementSibling\n && element.previousElementSibling.classList.contains(dropDownBaseClasses.group))) {\n i = 10;\n }\n else {\n element = element.previousElementSibling;\n }\n if (element1 && element1.nextElementSibling\n && (!element1.nextElementSibling.classList.contains(HIDE_LIST) &&\n element1.nextElementSibling.classList.contains(dropDownBaseClasses.li))) {\n temp1 = false;\n }\n if (!temp1 || !element1 || (element1.nextElementSibling\n && element1.nextElementSibling.classList.contains(dropDownBaseClasses.group))) {\n j = 10;\n }\n else {\n element1 = element1.nextElementSibling;\n }\n } while (i < 10 || j < 10);\n if (temp && temp1 && !element.previousElementSibling.classList.contains(HIDE_LIST)) {\n addClass([element.previousElementSibling], className);\n }\n else if (temp && temp1 && element.previousElementSibling.classList.contains(HIDE_LIST)) {\n removeClass([element.previousElementSibling], className);\n }\n };\n MultiSelect.prototype.getValidLi = function () {\n var liElement = this.ulElement.querySelector('li.' + dropDownBaseClasses.li + ':not(.' + HIDE_LIST + ')');\n return (!isNullOrUndefined(liElement) ? liElement : this.liCollections[0]);\n };\n MultiSelect.prototype.checkSelectAll = function () {\n var groupItemLength = this.list.querySelectorAll('li.e-list-group-item.e-active').length;\n var listItem = this.list.querySelectorAll('li.e-list-item');\n var searchCount = this.list.querySelectorAll('li.' + dropDownBaseClasses.li).length;\n var searchActiveCount = this.list.querySelectorAll('li.' + dropDownBaseClasses.selected).length;\n if (this.enableGroupCheckBox && !isNullOrUndefined(this.fields.groupBy)) {\n searchActiveCount = searchActiveCount - groupItemLength;\n }\n if ((searchCount === searchActiveCount || searchActiveCount === this.maximumSelectionLength)\n && (this.mode === 'CheckBox' && this.showSelectAll)) {\n this.notify('checkSelectAll', { module: 'CheckBoxSelection', enable: this.mode === 'CheckBox', value: 'check' });\n }\n else if ((searchCount !== searchActiveCount) && (this.mode === 'CheckBox' && this.showSelectAll)) {\n this.notify('checkSelectAll', { module: 'CheckBoxSelection', enable: this.mode === 'CheckBox', value: 'uncheck' });\n }\n if (this.enableGroupCheckBox && this.fields.groupBy && !this.enableSelectionOrder) {\n for (var i = 0; i < listItem.length; i++) {\n this.findGroupStart(listItem[i]);\n }\n this.deselectHeader();\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n MultiSelect.prototype.openClick = function (e) {\n if (!this.openOnClick && this.mode !== 'CheckBox') {\n if (this.targetElement() !== '') {\n this.showPopup();\n }\n else {\n this.hidePopup(e);\n }\n }\n else if (!this.openOnClick && this.mode === 'CheckBox' && !this.isPopupOpen()) {\n this.showPopup();\n }\n };\n MultiSelect.prototype.keyUp = function (e) {\n if (this.mode === 'CheckBox' && !this.openOnClick) {\n var char = String.fromCharCode(e.keyCode);\n var isWordCharacter = char.match(/\\w/);\n if (!isNullOrUndefined(isWordCharacter)) {\n this.isValidKey = true;\n }\n }\n this.isValidKey = (this.isPopupOpen() && e.keyCode === 8) || this.isValidKey;\n this.isValidKey = e.ctrlKey && e.keyCode === 86 ? false : this.isValidKey;\n if (this.isValidKey) {\n this.isValidKey = false;\n this.expandTextbox();\n this.showOverAllClear();\n switch (e.keyCode) {\n default:\n // For filtering works in mobile firefox\n this.search(e);\n }\n }\n };\n /**\n * To filter the multiselect data from given data source by using query\n *\n * @param {Object[] | DataManager } dataSource - Set the data source to filter.\n * @param {Query} query - Specify the query to filter the data.\n * @param {FieldSettingsModel} fields - Specify the fields to map the column in the data table.\n * @returns {void}\n */\n MultiSelect.prototype.filter = function (dataSource, query, fields) {\n this.isFiltered = true;\n this.remoteFilterAction = true;\n this.dataUpdater(dataSource, query, fields);\n };\n MultiSelect.prototype.getQuery = function (query) {\n var filterQuery = query ? query.clone() : this.query ? this.query.clone() : new Query();\n if (this.isFiltered) {\n return filterQuery;\n }\n if (this.filterAction) {\n if (this.targetElement() !== null) {\n var dataType = this.typeOfData(this.dataSource).typeof;\n if (!(this.dataSource instanceof DataManager) && dataType === 'string' || dataType === 'number') {\n filterQuery.where('', this.filterType, this.targetElement(), this.ignoreCase, this.ignoreAccent);\n }\n else {\n var fields = this.fields;\n filterQuery.where(!isNullOrUndefined(fields.text) ? fields.text : '', this.filterType, this.targetElement(), this.ignoreCase, this.ignoreAccent);\n }\n }\n return filterQuery;\n }\n else {\n return query ? query : this.query ? this.query : new Query();\n }\n };\n MultiSelect.prototype.dataUpdater = function (dataSource, query, fields) {\n this.isDataFetched = false;\n if (this.targetElement().trim() === '') {\n var list = this.mainList.cloneNode ? this.mainList.cloneNode(true) : this.mainList;\n if (this.backCommand) {\n this.remoteCustomValue = false;\n if (this.allowCustomValue && list.querySelectorAll('li').length == 0 && this.mainData.length > 0) {\n this.mainData = [];\n }\n this.onActionComplete(list, this.mainData);\n if (this.value && this.value.length) {\n this.refreshSelection();\n }\n if (this.keyCode !== 8) {\n this.focusAtFirstListItem();\n }\n this.notify('reOrder', { module: 'CheckBoxSelection', enable: this.mode === 'CheckBox', e: this });\n }\n }\n else {\n this.resetList(dataSource, fields, query);\n if (this.allowCustomValue) {\n if (!(dataSource instanceof DataManager)) {\n this.checkForCustomValue(query, fields);\n }\n else {\n this.remoteCustomValue = true;\n this.tempQuery = query;\n }\n }\n }\n this.refreshPopup();\n if (this.mode === 'CheckBox') {\n this.removeFocus();\n }\n };\n MultiSelect.prototype.checkForCustomValue = function (query, fields) {\n var dataChecks = !this.getValueByText(this.inputElement.value, this.ignoreCase);\n if (this.allowCustomValue && dataChecks) {\n var value = this.inputElement.value;\n var field = fields ? fields : this.fields;\n var customData = (!isNullOrUndefined(this.mainData) && this.mainData.length > 0) ?\n this.mainData[0] : this.mainData;\n if (typeof (customData) !== 'string' && typeof (customData) !== 'number' && typeof (customData) !== 'boolean') {\n var dataItem = {};\n setValue(field.text, value, dataItem);\n if (typeof getValue((this.fields.value ? this.fields.value : 'value'), customData)\n === 'number') {\n setValue(field.value, Math.random(), dataItem);\n }\n else {\n setValue(field.value, value, dataItem);\n }\n var tempData = JSON.parse(JSON.stringify(this.listData));\n tempData.splice(0, 0, dataItem);\n this.resetList(tempData, field, query);\n }\n else {\n var tempData = JSON.parse(JSON.stringify(this.listData));\n tempData.splice(0, 0, this.inputElement.value);\n tempData[0] = (typeof customData === 'number' && !isNaN(parseFloat(tempData[0]))) ?\n parseFloat(tempData[0]) : tempData[0];\n tempData[0] = (typeof customData === 'boolean') ?\n (tempData[0] === 'true' ? true : (tempData[0] === 'false' ? false : tempData[0])) : tempData[0];\n this.resetList(tempData, field);\n }\n }\n if (this.value && this.value.length) {\n this.refreshSelection();\n }\n };\n MultiSelect.prototype.getNgDirective = function () {\n return 'EJS-MULTISELECT';\n };\n MultiSelect.prototype.wrapperClick = function (e) {\n this.setDynValue = false;\n if (!this.enabled) {\n return;\n }\n if (e.target === this.overAllClear) {\n e.preventDefault();\n return;\n }\n if (!this.inputFocus) {\n this.inputElement.focus();\n }\n if (!this.readonly) {\n if (e.target && e.target.classList.toString().indexOf(CHIP_CLOSE) !== -1) {\n if (this.isPopupOpen()) {\n this.refreshPopup();\n }\n return;\n }\n if (!this.isPopupOpen() &&\n (this.openOnClick || (this.showDropDownIcon && e.target && e.target.className === dropdownIcon))) {\n this.showPopup(e);\n }\n else {\n this.hidePopup(e);\n if (this.mode === 'CheckBox') {\n this.showOverAllClear();\n this.inputFocus = true;\n if (!this.overAllWrapper.classList.contains(FOCUS)) {\n this.overAllWrapper.classList.add(FOCUS);\n }\n }\n }\n }\n if (!(this.targetElement() && this.targetElement() !== '')) {\n e.preventDefault();\n }\n };\n MultiSelect.prototype.enable = function (state) {\n if (state) {\n this.overAllWrapper.classList.remove(DISABLED);\n this.inputElement.removeAttribute('disabled');\n attributes(this.inputElement, { 'aria-disabled': 'false' });\n this.ensureAriaDisabled('false');\n }\n else {\n this.overAllWrapper.classList.add(DISABLED);\n this.inputElement.setAttribute('disabled', 'true');\n attributes(this.inputElement, { 'aria-disabled': 'true' });\n this.ensureAriaDisabled('true');\n }\n if (this.enabled !== state) {\n this.enabled = state;\n }\n this.hidePopup();\n };\n MultiSelect.prototype.onBlurHandler = function (eve, isDocClickFromCheck) {\n var target;\n if (!isNullOrUndefined(eve)) {\n target = eve.relatedTarget;\n }\n if (this.popupObj && document.body.contains(this.popupObj.element) && this.popupObj.element.contains(target)) {\n if (this.mode !== 'CheckBox') {\n this.inputElement.focus();\n }\n else if ((this.floatLabelType === 'Auto' &&\n ((this.overAllWrapper.classList.contains('e-outline')) || (this.overAllWrapper.classList.contains('e-filled'))))) {\n addClass([this.overAllWrapper], 'e-valid-input');\n }\n return;\n }\n if (this.floatLabelType === 'Auto' && (this.overAllWrapper.classList.contains('e-outline')) && this.mode === 'CheckBox' &&\n ((isNullOrUndefined(this.value)) || this.value.length === 0)) {\n removeClass([this.overAllWrapper], 'e-valid-input');\n }\n if (this.mode === 'CheckBox' && Browser.isIE && !isNullOrUndefined(eve) && !isDocClickFromCheck) {\n this.inputFocus = false;\n this.overAllWrapper.classList.remove(FOCUS);\n return;\n }\n if (this.scrollFocusStatus) {\n if (!isNullOrUndefined(eve)) {\n eve.preventDefault();\n }\n this.inputElement.focus();\n this.scrollFocusStatus = false;\n return;\n }\n this.inputFocus = false;\n this.overAllWrapper.classList.remove(FOCUS);\n if (this.addTagOnBlur) {\n var dataChecks = this.getValueByText(this.inputElement.value, this.ignoreCase, this.ignoreAccent);\n var listLiElement = this.findListElement(this.list, 'li', 'data-value', dataChecks);\n var className = this.hideSelectedItem ? HIDE_LIST : dropDownBaseClasses.selected;\n var allowChipAddition = (listLiElement && !listLiElement.classList.contains(className)) ? true : false;\n if (allowChipAddition) {\n this.updateListSelection(listLiElement, eve);\n if (this.mode === 'Delimiter') {\n this.updateDelimeter(this.delimiterChar);\n }\n }\n }\n this.updateDataList();\n if (this.resetMainList) {\n this.mainList = this.resetMainList;\n this.resetMainList = null;\n }\n this.refreshListItems(null);\n if (this.mode !== 'Box' && this.mode !== 'CheckBox') {\n this.updateDelimView();\n }\n if (this.changeOnBlur) {\n this.updateValueState(eve, this.value, this.tempValues);\n this.dispatchEvent(this.hiddenElement, 'change');\n }\n this.overAllClear.style.display = 'none';\n if (this.isPopupOpen()) {\n this.hidePopup(eve);\n }\n this.makeTextBoxEmpty();\n this.trigger('blur');\n this.focused = true;\n if (Browser.isDevice && this.mode !== 'Delimiter' && this.mode !== 'CheckBox') {\n this.removeChipFocus();\n }\n this.removeChipSelection();\n this.refreshInputHight();\n floatLabelBlur(this.overAllWrapper, this.componentWrapper, this.value, this.floatLabelType, this.placeholder);\n this.refreshPlaceHolder();\n if ((this.allowFiltering || (this.enableSelectionOrder === true && this.mode === 'CheckBox'))\n && !isNullOrUndefined(this.mainList)) {\n this.ulElement = this.mainList;\n }\n this.checkPlaceholderSize();\n Input.createSpanElement(this.overAllWrapper, this.createElement);\n this.calculateWidth();\n if (!isNullOrUndefined(this.overAllWrapper) && !isNullOrUndefined(this.overAllWrapper.getElementsByClassName('e-ddl-icon')[0] && this.overAllWrapper.getElementsByClassName('e-float-text-content')[0] && this.floatLabelType !== 'Never')) {\n this.overAllWrapper.getElementsByClassName('e-float-text-content')[0].classList.add('e-icon');\n }\n };\n MultiSelect.prototype.calculateWidth = function () {\n var elementWidth;\n if (this.overAllWrapper) {\n if (!this.showDropDownIcon || this.overAllWrapper.querySelector('.' + 'e-label-top')) {\n elementWidth = this.overAllWrapper.clientWidth - 2 * (parseInt(getComputedStyle(this.inputElement).paddingRight));\n }\n else {\n var downIconWidth = this.dropIcon.offsetWidth +\n parseInt(getComputedStyle(this.dropIcon).marginRight);\n elementWidth = this.overAllWrapper.clientWidth - (downIconWidth + 2 * (parseInt(getComputedStyle(this.inputElement).paddingRight)));\n }\n Input.calculateWidth(elementWidth, this.overAllWrapper, this.getModuleName());\n }\n };\n MultiSelect.prototype.checkPlaceholderSize = function () {\n if (this.showDropDownIcon) {\n var downIconWidth = this.dropIcon.offsetWidth +\n parseInt(window.getComputedStyle(this.dropIcon).marginRight, 10);\n this.setPlaceholderSize(downIconWidth);\n }\n else {\n if (!isNullOrUndefined(this.dropIcon)) {\n this.setPlaceholderSize(this.showDropDownIcon ? this.dropIcon.offsetWidth : 0);\n }\n }\n };\n MultiSelect.prototype.setPlaceholderSize = function (downIconWidth) {\n if (isNullOrUndefined(this.value) || this.value.length === 0) {\n if (this.dropIcon.offsetWidth !== 0) {\n this.searchWrapper.style.width = ('calc(100% - ' + (downIconWidth + 10)) + 'px';\n }\n else {\n addClass([this.searchWrapper], CUSTOM_WIDTH);\n }\n }\n else if (!isNullOrUndefined(this.value)) {\n this.searchWrapper.removeAttribute('style');\n removeClass([this.searchWrapper], CUSTOM_WIDTH);\n }\n };\n MultiSelect.prototype.refreshInputHight = function () {\n if (!isNullOrUndefined(this.searchWrapper)) {\n if ((!this.value || !this.value.length) && (isNullOrUndefined(this.text) || this.text === '')) {\n this.searchWrapper.classList.remove(ZERO_SIZE);\n }\n else {\n this.searchWrapper.classList.add(ZERO_SIZE);\n }\n }\n };\n MultiSelect.prototype.validateValues = function (newValue, oldValue) {\n return JSON.stringify(newValue.slice().sort()) !== JSON.stringify(oldValue.slice().sort());\n };\n MultiSelect.prototype.updateValueState = function (event, newVal, oldVal) {\n var newValue = newVal ? newVal : [];\n var oldValue = oldVal ? oldVal : [];\n if (this.initStatus && this.validateValues(newValue, oldValue)) {\n var eventArgs = {\n e: event,\n oldValue: oldVal,\n value: newVal,\n isInteracted: event ? true : false,\n element: this.element,\n event: event\n };\n if (this.isAngular && this.preventChange) {\n this.preventChange = false;\n }\n else {\n this.trigger('change', eventArgs);\n }\n this.updateTempValue();\n if (!this.changeOnBlur) {\n this.dispatchEvent(this.hiddenElement, 'change');\n }\n }\n };\n MultiSelect.prototype.updateTempValue = function () {\n if (!this.value) {\n this.tempValues = this.value;\n }\n else {\n this.tempValues = this.value.slice();\n }\n };\n MultiSelect.prototype.updateAriaActiveDescendant = function () {\n if (!isNullOrUndefined(this.ulElement) && !isNullOrUndefined(this.ulElement.getElementsByClassName('e-item-focus')[0])) {\n attributes(this.inputElement, { 'aria-activedescendant': this.ulElement.getElementsByClassName('e-item-focus')[0].id });\n }\n };\n MultiSelect.prototype.getPagingCount = function () {\n var height = this.list.classList.contains(dropDownBaseClasses.noData) ? null :\n getComputedStyle(this.getItems()[0], null).getPropertyValue('height');\n return Math.round(this.list.offsetHeight / parseInt(height, 10));\n };\n MultiSelect.prototype.pageUpSelection = function (steps) {\n var collection = this.list.querySelectorAll('li.'\n + dropDownBaseClasses.li + ':not(.' + HIDE_LIST + ')' + ':not(.e-reorder-hide)');\n var previousItem = steps >= 0 ? collection[steps + 1] : collection[0];\n this.addListFocus(previousItem);\n this.scrollBottom(previousItem, this.getIndexByValue(previousItem.getAttribute('data-value')));\n };\n MultiSelect.prototype.pageDownSelection = function (steps) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var list = this.getItems();\n var collection = this.list.querySelectorAll('li.'\n + dropDownBaseClasses.li + ':not(.' + HIDE_LIST + ')' + ':not(.e-reorder-hide)');\n var previousItem = steps <= collection.length ? collection[steps - 1] : collection[collection.length - 1];\n this.addListFocus(previousItem);\n this.scrollBottom(previousItem, this.getIndexByValue(previousItem.getAttribute('data-value')));\n };\n MultiSelect.prototype.getItems = function () {\n if (!this.list) {\n _super.prototype.render.call(this);\n }\n return this.ulElement && this.ulElement.querySelectorAll('.' + dropDownBaseClasses.li).length > 0 ?\n this.ulElement.querySelectorAll('.' + dropDownBaseClasses.li\n + ':not(.' + HIDE_LIST + ')') : [];\n };\n MultiSelect.prototype.focusInHandler = function (e) {\n var _this = this;\n if (this.enabled) {\n this.showOverAllClear();\n this.inputFocus = true;\n if (this.value && this.value.length) {\n if (this.mode !== 'Delimiter' && this.mode !== 'CheckBox') {\n this.chipCollectionWrapper.style.display = '';\n }\n else {\n this.showDelimWrapper();\n }\n if (this.mode !== 'CheckBox') {\n this.viewWrapper.style.display = 'none';\n }\n }\n if (this.mode !== 'CheckBox') {\n this.searchWrapper.classList.remove(ZERO_SIZE);\n }\n this.checkPlaceholderSize();\n if (this.focused) {\n var args = { isInteracted: e ? true : false, event: e };\n this.trigger('focus', args);\n this.focused = false;\n }\n if (!this.overAllWrapper.classList.contains(FOCUS)) {\n this.overAllWrapper.classList.add(FOCUS);\n }\n floatLabelFocus(this.overAllWrapper, this.componentWrapper);\n if (this.isPopupOpen()) {\n this.refreshPopup();\n }\n setTimeout(function () {\n _this.calculateWidth();\n }, 150);\n return true;\n }\n else {\n return false;\n }\n };\n MultiSelect.prototype.showDelimWrapper = function () {\n if (this.mode === 'CheckBox') {\n this.viewWrapper.style.display = '';\n }\n else {\n this.delimiterWrapper.style.display = '';\n }\n this.componentWrapper.classList.add(DELIMITER_VIEW_WRAPPER);\n };\n MultiSelect.prototype.hideDelimWrapper = function () {\n this.delimiterWrapper.style.display = 'none';\n this.componentWrapper.classList.remove(DELIMITER_VIEW_WRAPPER);\n };\n MultiSelect.prototype.expandTextbox = function () {\n var size = 5;\n if (this.placeholder) {\n size = size > this.inputElement.placeholder.length ? size : this.inputElement.placeholder.length;\n }\n if (this.inputElement.value.length > size) {\n this.inputElement.size = this.inputElement.value.length;\n }\n else {\n this.inputElement.size = size;\n }\n };\n MultiSelect.prototype.isPopupOpen = function () {\n return ((this.popupWrapper !== null) && (this.popupWrapper.parentElement !== null));\n };\n MultiSelect.prototype.refreshPopup = function () {\n if (this.popupObj && this.mobFilter) {\n this.popupObj.setProperties({ width: this.calcPopupWidth() });\n this.popupObj.refreshPosition(this.overAllWrapper);\n this.popupObj.resolveCollision();\n }\n };\n MultiSelect.prototype.checkTextLength = function () {\n return this.targetElement().length < 1;\n };\n MultiSelect.prototype.popupKeyActions = function (e) {\n switch (e.keyCode) {\n case 38:\n this.hidePopup(e);\n if (this.mode === 'CheckBox') {\n this.inputElement.focus();\n }\n e.preventDefault();\n break;\n case 40:\n if (!this.isPopupOpen()) {\n this.showPopup(e);\n e.preventDefault();\n }\n break;\n }\n };\n MultiSelect.prototype.updateAriaAttribute = function () {\n var focusedItem = this.list.querySelector('.' + dropDownBaseClasses.focus);\n if (!isNullOrUndefined(focusedItem)) {\n this.inputElement.setAttribute('aria-activedescendant', focusedItem.id);\n if (this.allowFiltering) {\n var filterInput = this.popupWrapper.querySelector('.' + FILTERINPUT);\n filterInput && filterInput.setAttribute('aria-activedescendant', focusedItem.id);\n }\n else if (this.mode == \"CheckBox\") {\n this.overAllWrapper.setAttribute('aria-activedescendant', focusedItem.id);\n }\n }\n };\n MultiSelect.prototype.homeNavigation = function (isHome) {\n this.removeFocus();\n var scrollEle = this.ulElement.querySelectorAll('li.' + dropDownBaseClasses.li\n + ':not(.' + HIDE_LIST + ')' + ':not(.e-reorder-hide)');\n if (scrollEle.length > 0) {\n var element = scrollEle[(isHome) ? 0 : (scrollEle.length - 1)];\n element.classList.add(dropDownBaseClasses.focus);\n this.scrollBottom(element);\n this.updateAriaActiveDescendant();\n }\n };\n MultiSelect.prototype.onKeyDown = function (e) {\n if (this.readonly || !this.enabled && this.mode !== 'CheckBox') {\n return;\n }\n this.keyCode = e.keyCode;\n this.keyDownStatus = true;\n if (e.keyCode > 111 && e.keyCode < 124) {\n return;\n }\n if (e.altKey) {\n this.popupKeyActions(e);\n return;\n }\n else if (this.isPopupOpen()) {\n var focusedItem = this.list.querySelector('.' + dropDownBaseClasses.focus);\n var activeIndex = void 0;\n switch (e.keyCode) {\n case 36:\n case 35:\n this.homeNavigation((e.keyCode === 36) ? true : false);\n break;\n case 33:\n e.preventDefault();\n if (focusedItem) {\n this.getIndexByValue(focusedItem.getAttribute('data-value'));\n this.pageUpSelection(activeIndex - this.getPagingCount());\n this.updateAriaAttribute();\n }\n return;\n case 34:\n e.preventDefault();\n if (focusedItem) {\n this.getIndexByValue(focusedItem.getAttribute('data-value'));\n this.pageDownSelection(activeIndex + this.getPagingCount());\n this.updateAriaAttribute();\n }\n return;\n case 38:\n this.arrowUp(e);\n break;\n case 40:\n this.arrowDown(e);\n break;\n case 27:\n e.preventDefault();\n this.hidePopup(e);\n if (this.mode === 'CheckBox') {\n this.inputElement.focus();\n }\n return;\n case 13:\n e.preventDefault();\n if (this.mode !== 'CheckBox') {\n this.selectByKey(e);\n }\n this.checkPlaceholderSize();\n return;\n case 32:\n this.spaceKeySelection(e);\n return;\n case 9:\n e.preventDefault();\n this.hidePopup(e);\n this.inputElement.focus();\n this.overAllWrapper.classList.add(FOCUS);\n }\n }\n else {\n switch (e.keyCode) {\n case 13:\n case 9:\n case 16:\n case 17:\n case 20:\n return;\n case 40:\n if (this.openOnClick) {\n this.showPopup();\n }\n break;\n case 27:\n e.preventDefault();\n this.escapeAction();\n return;\n }\n }\n if (this.checkTextLength()) {\n this.keyNavigation(e);\n }\n if (this.mode === 'CheckBox' && this.enableSelectionOrder) {\n if (this.allowFiltering) {\n this.previousFilterText = this.targetElement();\n }\n this.checkBackCommand(e);\n }\n this.expandTextbox();\n if (!(this.mode === 'CheckBox' && this.showSelectAll)) {\n this.refreshPopup();\n }\n };\n MultiSelect.prototype.arrowDown = function (e) {\n e.preventDefault();\n this.moveByList(1);\n this.keyAction = true;\n if (document.activeElement.classList.contains(FILTERINPUT)\n || (this.mode === 'CheckBox' && !this.allowFiltering && document.activeElement !== this.list)) {\n EventHandler.add(this.list, 'keydown', this.onKeyDown, this);\n }\n this.updateAriaAttribute();\n };\n MultiSelect.prototype.arrowUp = function (e) {\n e.preventDefault();\n this.keyAction = true;\n var list = this.list.querySelectorAll('li.'\n + dropDownBaseClasses.li\n + ':not(.' + HIDE_LIST + ')' + ':not(.e-reorder-hide)');\n if (this.enableGroupCheckBox && this.mode === 'CheckBox' && !isNullOrUndefined(this.fields.groupBy)) {\n list = this.list.querySelectorAll('li.'\n + dropDownBaseClasses.li + ',li.' + dropDownBaseClasses.group\n + ':not(.' + HIDE_LIST + ')' + ':not(.e-reorder-hide)');\n }\n var focuseElem = this.list.querySelector('li.' + dropDownBaseClasses.focus);\n var index = Array.prototype.slice.call(list).indexOf(focuseElem);\n if (index <= 0 && (this.mode === 'CheckBox' && this.allowFiltering)) {\n this.keyAction = false;\n this.notify('inputFocus', { module: 'CheckBoxSelection', enable: this.mode === 'CheckBox', value: 'focus' });\n }\n this.moveByList(-1);\n this.updateAriaAttribute();\n };\n MultiSelect.prototype.spaceKeySelection = function (e) {\n if (this.mode === 'CheckBox') {\n if (!document.activeElement.classList.contains(FILTERINPUT)) {\n e.preventDefault();\n this.keyAction = true;\n }\n this.selectByKey(e);\n }\n this.checkPlaceholderSize();\n };\n MultiSelect.prototype.checkBackCommand = function (e) {\n if (e.keyCode === 8 && this.allowFiltering ? this.targetElement() !== this.previousFilterText : this.targetElement() === '') {\n this.backCommand = false;\n }\n else {\n this.backCommand = true;\n }\n };\n MultiSelect.prototype.keyNavigation = function (e) {\n if ((this.mode !== 'Delimiter' && this.mode !== 'CheckBox') && this.value && this.value.length) {\n switch (e.keyCode) {\n case 37: //left arrow\n e.preventDefault();\n this.moveBy(-1, e);\n break;\n case 39: //right arrow\n e.preventDefault();\n this.moveBy(1, e);\n break;\n case 8:\n this.removelastSelection(e);\n break;\n case 46: //del\n this.removeSelectedChip(e);\n break;\n }\n }\n else if (e.keyCode === 8 && this.mode === 'Delimiter') {\n if (this.value && this.value.length) {\n e.preventDefault();\n var temp = this.value[this.value.length - 1];\n this.removeValue(temp, e);\n this.updateDelimeter(this.delimiterChar, e);\n this.focusAtLastListItem(temp);\n }\n }\n };\n MultiSelect.prototype.selectByKey = function (e) {\n this.removeChipSelection();\n this.selectListByKey(e);\n if (this.hideSelectedItem) {\n this.focusAtFirstListItem();\n }\n };\n MultiSelect.prototype.escapeAction = function () {\n var temp = this.tempValues ? this.tempValues.slice() : [];\n if (this.value && this.validateValues(this.value, temp)) {\n if (this.mode !== 'CheckBox') {\n this.value = temp;\n this.initialValueUpdate();\n }\n if (this.mode !== 'Delimiter' && this.mode !== 'CheckBox') {\n this.chipCollectionWrapper.style.display = '';\n }\n else {\n this.showDelimWrapper();\n }\n this.refreshPlaceHolder();\n if (this.value.length) {\n this.showOverAllClear();\n }\n else {\n this.hideOverAllClear();\n }\n }\n this.makeTextBoxEmpty();\n };\n MultiSelect.prototype.scrollBottom = function (selectedLI, activeIndex) {\n var currentOffset = this.list.offsetHeight;\n var nextBottom = selectedLI.offsetTop + selectedLI.offsetHeight - this.list.scrollTop;\n var nextOffset = this.list.scrollTop + nextBottom - currentOffset;\n var boxRange = (selectedLI.offsetTop + selectedLI.offsetHeight - this.list.scrollTop);\n boxRange = this.fields.groupBy && !isNullOrUndefined(this.fixedHeaderElement) ?\n boxRange - this.fixedHeaderElement.offsetHeight : boxRange;\n if (activeIndex === 0) {\n this.list.scrollTop = 0;\n }\n else if (nextBottom > currentOffset) {\n this.list.scrollTop = nextOffset;\n }\n else if (!(boxRange > 0 && this.list.offsetHeight > boxRange)) {\n this.list.scrollTop = nextOffset;\n }\n };\n MultiSelect.prototype.scrollTop = function (selectedLI, activeIndex) {\n var nextOffset = selectedLI.offsetTop - this.list.scrollTop;\n nextOffset = this.fields.groupBy && !isUndefined(this.fixedHeaderElement) ?\n nextOffset - this.fixedHeaderElement.offsetHeight : nextOffset;\n var boxRange = (selectedLI.offsetTop + selectedLI.offsetHeight - this.list.scrollTop);\n if (activeIndex === 0) {\n this.list.scrollTop = 0;\n }\n else if (nextOffset < 0) {\n this.list.scrollTop = this.list.scrollTop + nextOffset;\n }\n else if (!(boxRange > 0 && this.list.offsetHeight > boxRange)) {\n this.list.scrollTop = selectedLI.offsetTop - (this.fields.groupBy && !isUndefined(this.fixedHeaderElement) ?\n this.fixedHeaderElement.offsetHeight : 0);\n }\n };\n MultiSelect.prototype.selectListByKey = function (e) {\n var li = this.list.querySelector('li.' + dropDownBaseClasses.focus);\n var limit = this.value && this.value.length ? this.value.length : 0;\n var target;\n if (li !== null) {\n if (li.classList.contains('e-active')) {\n limit = limit - 1;\n }\n if (this.isValidLI(li) && limit < this.maximumSelectionLength) {\n this.updateListSelection(li, e);\n this.addListFocus(li);\n if (this.mode === 'CheckBox') {\n this.updateDelimView();\n this.updateDelimeter(this.delimiterChar, e);\n this.refreshInputHight();\n this.checkPlaceholderSize();\n if (this.enableGroupCheckBox && !isNullOrUndefined(this.fields.groupBy)) {\n target = li.firstElementChild.lastElementChild;\n this.findGroupStart(target);\n this.deselectHeader();\n }\n }\n else {\n this.updateDelimeter(this.delimiterChar, e);\n }\n this.makeTextBoxEmpty();\n if (this.mode !== 'CheckBox') {\n this.refreshListItems(li.textContent);\n }\n if (!this.changeOnBlur) {\n this.updateValueState(e, this.value, this.tempValues);\n }\n this.refreshPopup();\n }\n else {\n if (!this.isValidLI(li) && limit < this.maximumSelectionLength) {\n target = li.firstElementChild.lastElementChild;\n if (target.classList.contains('e-check')) {\n this.selectAllItem(false, e, li);\n }\n else {\n this.selectAllItem(true, e, li);\n }\n }\n }\n this.refreshSelection();\n if (this.closePopupOnSelect) {\n this.hidePopup(e);\n }\n }\n this.refreshPlaceHolder();\n };\n MultiSelect.prototype.refreshListItems = function (data) {\n if ((this.allowFiltering || (this.mode === 'CheckBox' && this.enableSelectionOrder === true)\n || this.allowCustomValue) && this.mainList && this.listData) {\n var list = this.mainList.cloneNode ? this.mainList.cloneNode(true) : this.mainList;\n this.onActionComplete(list, this.mainData);\n this.focusAtLastListItem(data);\n if (this.value && this.value.length) {\n this.refreshSelection();\n }\n }\n else if (!isNullOrUndefined(this.fields.groupBy) && this.value && this.value.length) {\n this.refreshSelection();\n }\n };\n MultiSelect.prototype.removeSelectedChip = function (e) {\n var selectedElem = this.chipCollectionWrapper.querySelector('span.' + CHIP_SELECTED);\n var temp;\n if (selectedElem !== null) {\n if (!isNullOrUndefined(this.value)) {\n this.tempValues = this.value.slice();\n }\n temp = selectedElem.nextElementSibling;\n if (temp !== null) {\n this.removeChipSelection();\n this.addChipSelection(temp, e);\n }\n this.removeValue(selectedElem.getAttribute('data-value'), e);\n this.makeTextBoxEmpty();\n }\n if (this.closePopupOnSelect) {\n this.hidePopup(e);\n }\n this.checkPlaceholderSize();\n };\n MultiSelect.prototype.moveByTop = function (state) {\n var elements = this.list.querySelectorAll('li.' + dropDownBaseClasses.li);\n var index;\n if (elements.length > 1) {\n this.removeFocus();\n index = state ? 0 : (elements.length - 1);\n this.addListFocus(elements[index]);\n this.scrollBottom(elements[index], index);\n }\n this.updateAriaAttribute();\n };\n MultiSelect.prototype.moveByList = function (position) {\n if (this.list) {\n var elements = this.list.querySelectorAll('li.'\n + dropDownBaseClasses.li\n + ':not(.' + HIDE_LIST + ')' + ':not(.e-reorder-hide)');\n if (this.mode === 'CheckBox' && this.enableGroupCheckBox && !isNullOrUndefined(this.fields.groupBy)) {\n elements = this.list.querySelectorAll('li.'\n + dropDownBaseClasses.li + ',li.' + dropDownBaseClasses.group\n + ':not(.' + HIDE_LIST + ')' + ':not(.e-reorder-hide)');\n }\n var selectedElem = this.list.querySelector('li.' + dropDownBaseClasses.focus);\n var temp = -1;\n if (elements.length) {\n for (var index = 0; index < elements.length; index++) {\n if (elements[index] === selectedElem) {\n temp = index;\n break;\n }\n }\n if (position > 0) {\n if (temp < (elements.length - 1)) {\n this.removeFocus();\n this.addListFocus(elements[++temp]);\n this.updateCheck(elements[temp]);\n this.scrollBottom(elements[temp], temp);\n }\n }\n else {\n if (temp > 0) {\n this.removeFocus();\n this.addListFocus(elements[--temp]);\n this.updateCheck(elements[temp]);\n this.scrollTop(elements[temp], temp);\n }\n }\n }\n }\n };\n MultiSelect.prototype.updateCheck = function (element) {\n if (this.mode === 'CheckBox' && this.enableGroupCheckBox &&\n !isNullOrUndefined(this.fields.groupBy)) {\n var checkElement = element.firstElementChild.lastElementChild;\n if (checkElement.classList.contains('e-check')) {\n element.classList.add('e-active');\n }\n else {\n element.classList.remove('e-active');\n }\n }\n };\n MultiSelect.prototype.moveBy = function (position, e) {\n var temp;\n var elements = this.chipCollectionWrapper.querySelectorAll('span.' + CHIP);\n var selectedElem = this.chipCollectionWrapper.querySelector('span.' + CHIP_SELECTED);\n if (selectedElem === null) {\n if (position < 0) {\n this.addChipSelection(elements[elements.length - 1], e);\n }\n }\n else {\n if (position < 0) {\n temp = selectedElem.previousElementSibling;\n if (temp !== null) {\n this.removeChipSelection();\n this.addChipSelection(temp, e);\n }\n }\n else {\n temp = selectedElem.nextElementSibling;\n this.removeChipSelection();\n if (temp !== null) {\n this.addChipSelection(temp, e);\n }\n }\n }\n };\n MultiSelect.prototype.chipClick = function (e) {\n if (this.enabled) {\n var elem = closest(e.target, '.' + CHIP);\n this.removeChipSelection();\n this.addChipSelection(elem, e);\n }\n };\n MultiSelect.prototype.removeChipSelection = function () {\n if (this.chipCollectionWrapper) {\n this.removeChipFocus();\n }\n };\n MultiSelect.prototype.addChipSelection = function (element, e) {\n addClass([element], CHIP_SELECTED);\n this.trigger('chipSelection', e);\n };\n MultiSelect.prototype.onChipRemove = function (e) {\n if (e.which === 3 || e.button === 2) {\n return;\n }\n if (this.enabled && !this.readonly) {\n var element = e.target.parentElement;\n var customVal = element.getAttribute('data-value');\n var value = this.getFormattedValue(customVal);\n if (this.allowCustomValue && ((customVal !== 'false' && value === false) ||\n (!isNullOrUndefined(value) && value.toString() === 'NaN'))) {\n value = customVal;\n }\n if (this.isPopupOpen() && this.mode !== 'CheckBox') {\n this.hidePopup(e);\n }\n if (!this.inputFocus) {\n this.inputElement.focus();\n }\n this.removeValue(value, e);\n if (isNullOrUndefined(this.findListElement(this.list, 'li', 'data-value', value)) && this.mainList && this.listData) {\n var list = this.mainList.cloneNode ? this.mainList.cloneNode(true) : this.mainList;\n this.onActionComplete(list, this.mainData);\n }\n this.updateDelimeter(this.delimiterChar, e);\n if (this.placeholder && this.floatLabelType === 'Never') {\n this.makeTextBoxEmpty();\n this.checkPlaceholderSize();\n }\n else {\n this.inputElement.value = '';\n }\n e.preventDefault();\n }\n };\n MultiSelect.prototype.makeTextBoxEmpty = function () {\n this.inputElement.value = '';\n this.refreshPlaceHolder();\n };\n MultiSelect.prototype.refreshPlaceHolder = function () {\n if (this.placeholder && this.floatLabelType === 'Never') {\n if ((this.value && this.value.length) || (!isNullOrUndefined(this.text) && this.text !== '')) {\n this.inputElement.placeholder = '';\n }\n else {\n this.inputElement.placeholder = encodePlaceholder(this.placeholder);\n }\n }\n else {\n this.setFloatLabelType();\n }\n this.expandTextbox();\n };\n MultiSelect.prototype.removeAllItems = function (value, eve, isClearAll, element, mainElement) {\n var index = this.value.indexOf(value);\n var removeVal = this.value.slice(0);\n removeVal.splice(index, 1);\n this.setProperties({ value: [].concat([], removeVal) }, true);\n element.setAttribute('aria-selected', 'false');\n var className = this.hideSelectedItem ?\n HIDE_LIST :\n dropDownBaseClasses.selected;\n removeClass([element], className);\n this.notify('activeList', {\n module: 'CheckBoxSelection',\n enable: this.mode === 'CheckBox', li: element,\n e: this, index: index\n });\n this.invokeCheckboxSelection(element, eve, isClearAll);\n this.updateMainList(true, value, mainElement);\n this.updateChipStatus();\n };\n MultiSelect.prototype.invokeCheckboxSelection = function (element, eve, isClearAll) {\n this.notify('updatelist', { module: 'CheckBoxSelection', enable: this.mode === 'CheckBox', li: element, e: eve });\n this.updateAriaActiveDescendant();\n if ((this.value && this.value.length !== this.mainData.length)\n && (this.mode === 'CheckBox' && this.showSelectAll && !(this.isSelectAll || isClearAll))) {\n this.notify('checkSelectAll', {\n module: 'CheckBoxSelection',\n enable: this.mode === 'CheckBox',\n value: 'uncheck'\n });\n }\n };\n MultiSelect.prototype.removeValue = function (value, eve, length, isClearAll) {\n var _this = this;\n var index = this.value.indexOf(this.getFormattedValue(value));\n if (index === -1 && this.allowCustomValue && !isNullOrUndefined(value)) {\n index = this.value.indexOf(value.toString());\n }\n var targetEle = eve && eve.target;\n isClearAll = (isClearAll || targetEle && targetEle.classList.contains('e-close-hooker')) ? true : null;\n var className = this.hideSelectedItem ?\n HIDE_LIST :\n dropDownBaseClasses.selected;\n if (index !== -1) {\n var element_1 = this.findListElement(this.list, 'li', 'data-value', value);\n var val_1 = this.getDataByValue(value);\n var eventArgs = {\n e: eve,\n item: element_1,\n itemData: val_1,\n isInteracted: eve ? true : false,\n cancel: false\n };\n this.trigger('removing', eventArgs, function (eventArgs) {\n if (eventArgs.cancel) {\n _this.removeIndex++;\n }\n else {\n var removeVal = _this.value.slice(0);\n removeVal.splice(index, 1);\n _this.setProperties({ value: [].concat([], removeVal) }, true);\n if (element_1 !== null) {\n var hideElement = _this.findListElement(_this.mainList, 'li', 'data-value', value);\n element_1.setAttribute('aria-selected', 'false');\n removeClass([element_1], className);\n if (hideElement) {\n hideElement.setAttribute('aria-selected', 'false');\n removeClass([element_1, hideElement], className);\n }\n _this.notify('activeList', {\n module: 'CheckBoxSelection',\n enable: _this.mode === 'CheckBox', li: element_1,\n e: _this, index: index\n });\n _this.invokeCheckboxSelection(element_1, eve, isClearAll);\n }\n if (_this.hideSelectedItem && _this.fields.groupBy && element_1) {\n _this.hideGroupItem(value);\n }\n if (_this.hideSelectedItem && _this.fixedHeaderElement && _this.fields.groupBy && _this.mode !== 'CheckBox' &&\n _this.isPopupOpen()) {\n _super.prototype.scrollStop.call(_this);\n }\n _this.updateMainList(true, value);\n _this.removeChip(value);\n _this.updateChipStatus();\n var limit = _this.value && _this.value.length ? _this.value.length : 0;\n if (limit < _this.maximumSelectionLength) {\n var collection = _this.list.querySelectorAll('li.'\n + dropDownBaseClasses.li + ':not(.e-active)');\n removeClass(collection, 'e-disable');\n }\n _this.trigger('removed', eventArgs);\n var targetEle_1 = eve && eve.currentTarget;\n var isSelectAll = (targetEle_1 && targetEle_1.classList.contains('e-selectall-parent')) ? true : null;\n if (!_this.changeOnBlur && !isClearAll && (eve && length && !isSelectAll)) {\n _this.updateValueState(eve, _this.value, _this.tempValues);\n }\n if (length) {\n _this.selectAllEventData.push(val_1);\n _this.selectAllEventEle.push(element_1);\n }\n if (length === 1) {\n if (!_this.changeOnBlur) {\n _this.updateValueState(eve, _this.value, _this.tempValues);\n }\n var args = {\n event: eve,\n items: _this.selectAllEventEle,\n itemData: _this.selectAllEventData,\n isInteracted: eve ? true : false,\n isChecked: false\n };\n _this.trigger('selectedAll', args);\n _this.selectAllEventData = [];\n _this.selectAllEventEle = [];\n }\n if (isClearAll && (length === 1 || length === null)) {\n _this.clearAllCallback(eve, isClearAll);\n }\n }\n });\n }\n };\n MultiSelect.prototype.updateMainList = function (state, value, mainElement) {\n if (this.allowFiltering || this.mode === 'CheckBox') {\n var element2 = mainElement ? mainElement :\n this.findListElement(this.mainList, 'li', 'data-value', value);\n if (element2) {\n if (state) {\n element2.setAttribute('aria-selected', 'false');\n removeClass([element2], this.hideSelectedItem ?\n HIDE_LIST :\n dropDownBaseClasses.selected);\n if (this.mode === 'CheckBox') {\n removeClass([element2.firstElementChild.lastElementChild], 'e-check');\n }\n }\n else {\n element2.setAttribute('aria-selected', 'true');\n addClass([element2], this.hideSelectedItem ?\n HIDE_LIST :\n dropDownBaseClasses.selected);\n if (this.mode === 'CheckBox') {\n addClass([element2.firstElementChild.lastElementChild], 'e-check');\n }\n }\n }\n }\n };\n MultiSelect.prototype.removeChip = function (value) {\n if (this.chipCollectionWrapper) {\n var element = this.findListElement(this.chipCollectionWrapper, 'span', 'data-value', value);\n if (element) {\n remove(element);\n }\n }\n };\n MultiSelect.prototype.setWidth = function (width) {\n if (!isNullOrUndefined(width)) {\n if (typeof width === 'number') {\n this.overAllWrapper.style.width = formatUnit(width);\n }\n else if (typeof width === 'string') {\n this.overAllWrapper.style.width = (width.match(/px|%|em/)) ? (width) : (formatUnit(width));\n }\n }\n };\n MultiSelect.prototype.updateChipStatus = function () {\n if (this.value && this.value.length) {\n if (!isNullOrUndefined(this.chipCollectionWrapper)) {\n (this.chipCollectionWrapper.style.display = '');\n }\n if (this.mode === 'Delimiter' || this.mode === 'CheckBox') {\n this.showDelimWrapper();\n }\n this.showOverAllClear();\n }\n else {\n if (!isNullOrUndefined(this.chipCollectionWrapper)) {\n this.chipCollectionWrapper.style.display = 'none';\n }\n if (!isNullOrUndefined(this.delimiterWrapper)) {\n (this.delimiterWrapper.style.display = 'none');\n }\n this.hideOverAllClear();\n }\n };\n MultiSelect.prototype.addValue = function (value, text, eve) {\n if (!this.value) {\n this.value = [];\n }\n if (this.value.indexOf(value) < 0) {\n this.setProperties({ value: [].concat([], this.value, [value]) }, true);\n }\n var element = this.findListElement(this.list, 'li', 'data-value', value);\n this.removeFocus();\n if (element) {\n this.addListFocus(element);\n this.addListSelection(element);\n }\n if (this.mode !== 'Delimiter' && this.mode !== 'CheckBox') {\n this.addChip(text, value, eve);\n }\n if (this.hideSelectedItem && this.fields.groupBy) {\n this.hideGroupItem(value);\n }\n this.updateChipStatus();\n this.checkMaxSelection();\n };\n MultiSelect.prototype.checkMaxSelection = function () {\n var limit = this.value && this.value.length ? this.value.length : 0;\n if (limit === this.maximumSelectionLength) {\n var collection = this.list.querySelectorAll('li.'\n + dropDownBaseClasses.li + ':not(.e-active)');\n addClass(collection, 'e-disable');\n }\n };\n MultiSelect.prototype.dispatchSelect = function (value, eve, element, isNotTrigger, length) {\n var _this = this;\n var list = this.listData;\n if (this.initStatus && !isNotTrigger) {\n var val_2 = this.getDataByValue(value);\n var eventArgs = {\n e: eve,\n item: element,\n itemData: val_2,\n isInteracted: eve ? true : false,\n cancel: false\n };\n this.trigger('select', eventArgs, function (eventArgs) {\n if (!eventArgs.cancel) {\n if (length) {\n _this.selectAllEventData.push(val_2);\n _this.selectAllEventEle.push(element);\n }\n if (length === 1) {\n var args = {\n event: eve,\n items: _this.selectAllEventEle,\n itemData: _this.selectAllEventData,\n isInteracted: eve ? true : false,\n isChecked: true\n };\n _this.trigger('selectedAll', args);\n _this.selectAllEventData = [];\n }\n if (_this.allowCustomValue && _this.isServerRendered && _this.listData !== list) {\n _this.listData = list;\n }\n _this.updateListSelectEventCallback(value, element, eve);\n if (_this.hideSelectedItem && _this.fixedHeaderElement && _this.fields.groupBy && _this.mode !== 'CheckBox') {\n _super.prototype.scrollStop.call(_this);\n }\n }\n });\n }\n };\n MultiSelect.prototype.addChip = function (text, value, e) {\n if (this.chipCollectionWrapper) {\n this.getChip(text, value, e);\n }\n };\n MultiSelect.prototype.removeChipFocus = function () {\n var elements = this.chipCollectionWrapper.querySelectorAll('span.' + CHIP + '.' + CHIP_SELECTED);\n removeClass(elements, CHIP_SELECTED);\n if (Browser.isDevice) {\n var closeElements = this.chipCollectionWrapper.querySelectorAll('span.' + CHIP_CLOSE.split(' ')[0]);\n for (var index = 0; index < closeElements.length; index++) {\n closeElements[index].style.display = 'none';\n }\n }\n };\n MultiSelect.prototype.onMobileChipInteraction = function (e) {\n var chipElem = closest(e.target, '.' + CHIP);\n var chipClose = chipElem.querySelector('span.' + CHIP_CLOSE.split(' ')[0]);\n if (this.enabled && !this.readonly) {\n if (!chipElem.classList.contains(CHIP_SELECTED)) {\n this.removeChipFocus();\n chipClose.style.display = '';\n chipElem.classList.add(CHIP_SELECTED);\n }\n this.refreshPopup();\n e.preventDefault();\n }\n };\n MultiSelect.prototype.multiCompiler = function (multiselectTemplate) {\n var checkTemplate = false;\n if (multiselectTemplate) {\n try {\n checkTemplate = (selectAll(multiselectTemplate, document).length) ? true : false;\n }\n catch (exception) {\n checkTemplate = false;\n }\n }\n return checkTemplate;\n };\n MultiSelect.prototype.getChip = function (data, value, e) {\n var _this = this;\n var itemData = { text: value, value: value };\n var chip = this.createElement('span', {\n className: CHIP,\n attrs: { 'data-value': value, 'title': data }\n });\n var compiledString;\n var chipContent = this.createElement('span', { className: CHIP_CONTENT });\n var chipClose = this.createElement('span', { className: CHIP_CLOSE });\n if (this.mainData) {\n itemData = this.getDataByValue(value);\n }\n if (this.valueTemplate && !isNullOrUndefined(itemData)) {\n var valuecheck = this.multiCompiler(this.valueTemplate);\n if (valuecheck) {\n compiledString = compile(select(this.valueTemplate, document).innerHTML.trim());\n }\n else {\n compiledString = compile(this.valueTemplate);\n }\n // eslint-disable-next-line\n var valueCompTemp = compiledString(itemData, this, 'valueTemplate', this.valueTemplateId, this.isStringTemplate, null, chipContent);\n if (valueCompTemp && valueCompTemp.length > 0) {\n append(valueCompTemp, chipContent);\n }\n this.renderReactTemplates();\n }\n else if (this.enableHtmlSanitizer) {\n chipContent.innerText = data;\n }\n else {\n chipContent.innerHTML = data;\n }\n chip.appendChild(chipContent);\n var eventArgs = {\n isInteracted: e ? true : false,\n itemData: itemData,\n e: e,\n setClass: function (classes) {\n addClass([chip], classes);\n },\n cancel: false\n };\n this.isPreventChange = this.isAngular && this.preventChange;\n this.trigger('tagging', eventArgs, function (eventArgs) {\n if (!eventArgs.cancel) {\n if (Browser.isDevice) {\n chip.classList.add(MOBILE_CHIP);\n append([chipClose], chip);\n chipClose.style.display = 'none';\n EventHandler.add(chip, 'click', _this.onMobileChipInteraction, _this);\n }\n else {\n EventHandler.add(chip, 'mousedown', _this.chipClick, _this);\n if (_this.showClearButton) {\n chip.appendChild(chipClose);\n }\n }\n EventHandler.add(chipClose, 'mousedown', _this.onChipRemove, _this);\n _this.chipCollectionWrapper.appendChild(chip);\n if (!_this.changeOnBlur && e) {\n _this.updateValueState(e, _this.value, _this.tempValues);\n }\n }\n });\n };\n MultiSelect.prototype.calcPopupWidth = function () {\n var width = formatUnit(this.popupWidth);\n if (width.indexOf('%') > -1) {\n var inputWidth = (this.componentWrapper.offsetWidth) * parseFloat(width) / 100;\n width = inputWidth.toString() + 'px';\n }\n return width;\n };\n MultiSelect.prototype.mouseIn = function () {\n if (this.enabled && !this.readonly) {\n this.showOverAllClear();\n }\n };\n MultiSelect.prototype.mouseOut = function () {\n if (!this.inputFocus) {\n this.overAllClear.style.display = 'none';\n }\n };\n MultiSelect.prototype.listOption = function (dataSource, fields) {\n var iconCss = isNullOrUndefined(fields.iconCss) ? false : true;\n var fieldProperty = isNullOrUndefined(fields.properties) ? fields :\n fields.properties;\n this.listCurrentOptions = (fields.text !== null || fields.value !== null) ? {\n fields: fieldProperty, showIcon: iconCss, ariaAttributes: { groupItemRole: 'presentation' }\n } : { fields: { value: 'text' } };\n extend(this.listCurrentOptions, this.listCurrentOptions, fields, true);\n if (this.mode === 'CheckBox') {\n this.notify('listoption', { module: 'CheckBoxSelection', enable: this.mode === 'CheckBox', dataSource: dataSource, fieldProperty: fieldProperty });\n }\n return this.listCurrentOptions;\n };\n MultiSelect.prototype.renderPopup = function () {\n var _this = this;\n if (!this.list) {\n _super.prototype.render.call(this);\n }\n if (!this.popupObj) {\n if (!isNullOrUndefined(this.popupWrapper)) {\n document.body.appendChild(this.popupWrapper);\n var checkboxFilter = this.popupWrapper.querySelector('.' + FILTERPARENT);\n if (this.mode === 'CheckBox' && !this.allowFiltering && checkboxFilter && this.filterParent) {\n checkboxFilter.remove();\n this.filterParent = null;\n }\n var overAllHeight = parseInt(this.popupHeight, 10);\n this.popupWrapper.style.visibility = 'hidden';\n if (this.headerTemplate) {\n this.setHeaderTemplate();\n overAllHeight -= this.header.offsetHeight;\n }\n append([this.list], this.popupWrapper);\n if (this.footerTemplate) {\n this.setFooterTemplate();\n overAllHeight -= this.footer.offsetHeight;\n }\n if (this.mode === 'CheckBox' && this.showSelectAll) {\n this.notify('selectAll', { module: 'CheckBoxSelection', enable: this.mode === 'CheckBox' });\n overAllHeight -= this.selectAllHeight;\n }\n else if (this.mode === 'CheckBox' && !this.showSelectAll && (!this.headerTemplate && !this.footerTemplate)) {\n this.notify('selectAll', { module: 'CheckBoxSelection', enable: this.mode === 'CheckBox' });\n overAllHeight = parseInt(this.popupHeight, 10);\n }\n else if (this.mode === 'CheckBox' && !this.showSelectAll) {\n this.notify('selectAll', { module: 'CheckBoxSelection', enable: this.mode === 'CheckBox' });\n overAllHeight = parseInt(this.popupHeight, 10);\n if (this.headerTemplate && this.header) {\n overAllHeight -= this.header.offsetHeight;\n }\n if (this.footerTemplate && this.footer) {\n overAllHeight -= this.footer.offsetHeight;\n }\n }\n if (this.mode === 'CheckBox') {\n var args = {\n module: 'CheckBoxSelection',\n enable: this.mode === 'CheckBox',\n popupElement: this.popupWrapper\n };\n if (this.allowFiltering) {\n this.notify('searchBox', args);\n overAllHeight -= this.searchBoxHeight;\n }\n addClass([this.popupWrapper], 'e-checkbox');\n }\n if (this.popupHeight !== 'auto') {\n this.list.style.maxHeight = formatUnit(overAllHeight);\n this.popupWrapper.style.maxHeight = formatUnit(this.popupHeight);\n }\n else {\n this.list.style.maxHeight = formatUnit(this.popupHeight);\n }\n this.popupObj = new Popup(this.popupWrapper, {\n width: this.calcPopupWidth(), targetType: 'relative', position: { X: 'left', Y: 'bottom' },\n relateTo: this.overAllWrapper, collision: { X: 'flip', Y: 'flip' }, offsetY: 1,\n enableRtl: this.enableRtl, zIndex: this.zIndex,\n close: function () {\n if (_this.popupObj.element.parentElement) {\n _this.popupObj.unwireScrollEvents();\n // For restrict the page scrolling in safari browser\n var checkboxFilterInput = _this.popupWrapper.querySelector('.' + FILTERINPUT);\n if (_this.mode === 'CheckBox' && checkboxFilterInput && document.activeElement === checkboxFilterInput) {\n checkboxFilterInput.blur();\n }\n detach(_this.popupObj.element);\n }\n },\n open: function () {\n _this.popupObj.resolveCollision();\n if (!_this.isFirstClick) {\n var ulElement = _this.list.querySelector('ul');\n if (ulElement) {\n if (!(_this.mode !== 'CheckBox' && (_this.allowFiltering || _this.allowCustomValue) &&\n _this.targetElement().trim() !== '')) {\n _this.mainList = ulElement.cloneNode ? ulElement.cloneNode(true) : ulElement;\n }\n }\n _this.isFirstClick = true;\n }\n _this.popupObj.wireScrollEvents();\n if (!(_this.mode !== 'CheckBox' && (_this.allowFiltering || _this.allowCustomValue) &&\n _this.targetElement().trim() !== '')) {\n _this.loadTemplate();\n }\n _this.setScrollPosition();\n if (_this.allowFiltering) {\n _this.notify('inputFocus', {\n module: 'CheckBoxSelection', enable: _this.mode === 'CheckBox', value: 'focus'\n });\n }\n }, targetExitViewport: function () {\n if (!Browser.isDevice) {\n _this.hidePopup();\n }\n }\n });\n if (this.mode === 'CheckBox' && Browser.isDevice && this.allowFiltering) {\n this.notify('deviceSearchBox', { module: 'CheckBoxSelection', enable: this.mode === 'CheckBox' });\n }\n this.popupObj.close();\n this.popupWrapper.style.visibility = '';\n }\n }\n };\n MultiSelect.prototype.setHeaderTemplate = function () {\n var compiledString;\n if (this.header) {\n this.header.remove();\n }\n this.header = this.createElement('div');\n addClass([this.header], HEADER);\n var headercheck = this.multiCompiler(this.headerTemplate);\n if (headercheck) {\n compiledString = compile(select(this.headerTemplate, document).innerHTML.trim());\n }\n else {\n compiledString = compile(this.headerTemplate);\n }\n // eslint-disable-next-line\n var elements = compiledString({}, this, 'headerTemplate', this.headerTemplateId, this.isStringTemplate, null, this.header);\n if (elements && elements.length > 0) {\n append(elements, this.header);\n }\n if (this.mode === 'CheckBox' && this.showSelectAll) {\n prepend([this.header], this.popupWrapper);\n }\n else {\n append([this.header], this.popupWrapper);\n }\n EventHandler.add(this.header, 'mousedown', this.onListMouseDown, this);\n };\n MultiSelect.prototype.setFooterTemplate = function () {\n var compiledString;\n if (this.footer) {\n this.footer.remove();\n }\n this.footer = this.createElement('div');\n addClass([this.footer], FOOTER);\n var footercheck = this.multiCompiler(this.footerTemplate);\n if (footercheck) {\n compiledString = compile(select(this.footerTemplate, document).innerHTML.trim());\n }\n else {\n compiledString = compile(this.footerTemplate);\n }\n // eslint-disable-next-line\n var elements = compiledString({}, this, 'footerTemplate', this.footerTemplateId, this.isStringTemplate, null, this.footer);\n if (elements && elements.length > 0) {\n append(elements, this.footer);\n }\n append([this.footer], this.popupWrapper);\n EventHandler.add(this.footer, 'mousedown', this.onListMouseDown, this);\n };\n MultiSelect.prototype.clearAll = function (e) {\n if (this.enabled && !this.readonly) {\n var temp = void 0;\n if (this.value && this.value.length > 0) {\n var liElement = this.list && this.list.querySelectorAll('li.e-list-item');\n if (liElement && liElement.length > 0) {\n this.selectAllItems(false, e);\n }\n else {\n this.removeIndex = 0;\n for (temp = this.value[this.removeIndex]; this.removeIndex < this.value.length; temp = this.value[this.removeIndex]) {\n this.removeValue(temp, e, null, true);\n }\n }\n this.selectedElementID = null;\n this.inputElement.removeAttribute('aria-activedescendant');\n }\n else {\n this.clearAllCallback(e);\n }\n }\n };\n MultiSelect.prototype.clearAllCallback = function (e, isClearAll) {\n var tempValues = this.value ? this.value.slice() : [];\n if (this.mainList && this.listData && ((this.allowFiltering && this.mode !== 'CheckBox') || this.allowCustomValue)) {\n var list = this.mainList.cloneNode ? this.mainList.cloneNode(true) : this.mainList;\n this.onActionComplete(list, this.mainData);\n }\n this.focusAtFirstListItem();\n this.updateDelimeter(this.delimiterChar, e);\n if (this.mode !== 'Box' && (!this.inputFocus || this.mode === 'CheckBox')) {\n this.updateDelimView();\n }\n if (this.inputElement.value !== '') {\n this.makeTextBoxEmpty();\n this.search(null);\n }\n this.checkPlaceholderSize();\n if (this.isPopupOpen()) {\n this.refreshPopup();\n }\n if (!this.inputFocus) {\n if (this.changeOnBlur) {\n this.updateValueState(e, this.value, tempValues);\n }\n if (this.mode !== 'CheckBox') {\n this.inputElement.focus();\n }\n }\n if (this.mode === 'CheckBox') {\n this.refreshPlaceHolder();\n this.refreshInputHight();\n if (this.changeOnBlur && isClearAll && (isNullOrUndefined(this.value) || this.value.length === 0)) {\n this.updateValueState(e, this.value, this.tempValues);\n }\n }\n if (!this.changeOnBlur && isClearAll && (isNullOrUndefined(this.value) || this.value.length === 0)) {\n this.updateValueState(e, this.value, this.tempValues);\n }\n if (this.mode === 'CheckBox' && this.enableGroupCheckBox && !isNullOrUndefined(this.fields.groupBy)) {\n this.updateListItems(this.list.querySelectorAll('li.e-list-item'), this.mainList.querySelectorAll('li.e-list-item'));\n }\n e.preventDefault();\n };\n MultiSelect.prototype.windowResize = function () {\n this.refreshPopup();\n if ((!this.inputFocus || this.mode === 'CheckBox') && this.viewWrapper && this.viewWrapper.parentElement) {\n this.updateDelimView();\n }\n };\n MultiSelect.prototype.resetValueHandler = function (e) {\n var formElement = closest(this.inputElement, 'form');\n if (formElement && e.target === formElement) {\n var textVal = (this.element.tagName === this.getNgDirective()) ?\n null : this.element.getAttribute('data-initial-value');\n this.text = textVal;\n }\n };\n MultiSelect.prototype.wireEvent = function () {\n EventHandler.add(this.componentWrapper, 'mousedown', this.wrapperClick, this);\n EventHandler.add(window, 'resize', this.windowResize, this);\n EventHandler.add(this.inputElement, 'focus', this.focusInHandler, this);\n EventHandler.add(this.inputElement, 'keydown', this.onKeyDown, this);\n EventHandler.add(this.inputElement, 'keyup', this.keyUp, this);\n if (this.mode !== 'CheckBox') {\n EventHandler.add(this.inputElement, 'input', this.onInput, this);\n }\n EventHandler.add(this.inputElement, 'blur', this.onBlurHandler, this);\n EventHandler.add(this.componentWrapper, 'mouseover', this.mouseIn, this);\n var formElement = closest(this.inputElement, 'form');\n if (formElement) {\n EventHandler.add(formElement, 'reset', this.resetValueHandler, this);\n }\n EventHandler.add(this.componentWrapper, 'mouseout', this.mouseOut, this);\n EventHandler.add(this.overAllClear, 'mouseup', this.clearAll, this);\n EventHandler.add(this.inputElement, 'paste', this.pasteHandler, this);\n };\n MultiSelect.prototype.onInput = function (e) {\n if (this.keyDownStatus) {\n this.isValidKey = true;\n }\n else {\n this.isValidKey = false;\n }\n this.keyDownStatus = false;\n // For Filtering works in mobile firefox\n if (Browser.isDevice && Browser.info.name === 'mozilla') {\n this.search(e);\n }\n };\n MultiSelect.prototype.pasteHandler = function (event) {\n var _this = this;\n setTimeout(function () {\n _this.expandTextbox();\n _this.search(event);\n });\n };\n MultiSelect.prototype.search = function (e) {\n var _this = this;\n this.resetFilteredData = true;\n if (!isNullOrUndefined(e)) {\n this.keyCode = e.keyCode;\n }\n if (!this.isPopupOpen() && this.openOnClick) {\n this.showPopup(e);\n }\n this.openClick(e);\n if (this.checkTextLength() && !this.allowFiltering && !isNullOrUndefined(e) && (e.keyCode !== 8)) {\n this.focusAtFirstListItem();\n }\n else {\n var text = this.targetElement();\n if (this.allowFiltering) {\n var eventArgs_1 = {\n preventDefaultAction: false,\n text: this.targetElement(),\n updateData: function (dataSource, query, fields) {\n if (eventArgs_1.cancel) {\n return;\n }\n _this.isFiltered = true;\n _this.remoteFilterAction = true;\n _this.dataUpdater(dataSource, query, fields);\n },\n event: e,\n cancel: false\n };\n this.trigger('filtering', eventArgs_1, function (eventArgs) {\n if (!eventArgs.cancel) {\n if (!_this.isFiltered && !eventArgs.preventDefaultAction) {\n _this.filterAction = true;\n _this.dataUpdater(_this.dataSource, null, _this.fields);\n }\n }\n });\n }\n else if (this.allowCustomValue) {\n var query = new Query();\n query = (text !== '') ? query.where(this.fields.text, 'startswith', text, this.ignoreCase, this.ignoreAccent) : query;\n this.dataUpdater(this.mainData, query, this.fields);\n }\n else {\n var liCollections = this.list.querySelectorAll('li.' + dropDownBaseClasses.li + ':not(.e-hide-listitem)');\n var activeElement = Search(this.targetElement(), liCollections, 'StartsWith', this.ignoreCase);\n if (activeElement && activeElement.item !== null) {\n this.addListFocus(activeElement.item);\n this.list.scrollTop =\n activeElement.item.offsetHeight * activeElement.index;\n }\n else if (this.targetElement() !== '') {\n this.removeFocus();\n }\n else {\n this.focusAtFirstListItem();\n }\n }\n }\n };\n MultiSelect.prototype.preRender = function () {\n if (this.allowFiltering === null) {\n this.allowFiltering = (this.mode === 'CheckBox') ? true : false;\n }\n this.initializeData();\n this.updateDataAttribute(this.htmlAttributes);\n _super.prototype.preRender.call(this);\n };\n MultiSelect.prototype.getLocaleName = function () {\n return 'multi-select';\n };\n MultiSelect.prototype.initializeData = function () {\n this.mainListCollection = [];\n this.beforePopupOpen = false;\n this.filterAction = false;\n this.remoteFilterAction = false;\n this.isFirstClick = false;\n this.mobFilter = true;\n this.isFiltered = false;\n this.focused = true;\n this.initial = true;\n this.backCommand = true;\n };\n MultiSelect.prototype.updateData = function (delimiterChar, e) {\n var data = '';\n var delim = this.mode === 'Delimiter' || this.mode === 'CheckBox';\n var text = [];\n var temp;\n var tempData = this.listData;\n this.listData = this.mainData;\n if (!isNullOrUndefined(this.hiddenElement)) {\n this.hiddenElement.innerHTML = '';\n }\n if (!isNullOrUndefined(this.value)) {\n var valueLength = this.value.length;\n var hiddenElementContent = '';\n for (var index = 0; index < valueLength; index++) {\n var valueItem = this.value[index];\n var listValue = this.findListElement((!isNullOrUndefined(this.mainList) ? this.mainList : this.ulElement), 'li', 'data-value', valueItem);\n if (isNullOrUndefined(listValue) && !this.allowCustomValue) {\n this.value.splice(index, 1);\n index -= 1;\n valueLength -= 1;\n }\n else {\n if (this.listData) {\n temp = this.getTextByValue(valueItem);\n }\n else {\n temp = valueItem;\n }\n data += temp + delimiterChar + ' ';\n text.push(temp);\n }\n hiddenElementContent += \"\";\n }\n if (!isNullOrUndefined(this.hiddenElement)) {\n this.hiddenElement.innerHTML = hiddenElementContent;\n }\n }\n this.setProperties({ text: text.toString() }, true);\n if (delim) {\n this.updateWrapperText(this.delimiterWrapper, data);\n this.delimiterWrapper.setAttribute('id', getUniqueID('delim_val'));\n this.inputElement.setAttribute('aria-describedby', this.delimiterWrapper.id);\n this.inputElement.setAttribute('aria-labelledby', this.delimiterWrapper.id);\n }\n var targetEle = e && e.target;\n var isClearAll = (targetEle && targetEle.classList.contains('e-close-hooker')) ? true : null;\n if (!this.changeOnBlur && ((e && !isClearAll)) || this.isSelectAll) {\n this.isSelectAll = false;\n this.updateValueState(e, this.value, this.tempValues);\n }\n this.listData = tempData;\n this.addValidInputClass();\n };\n MultiSelect.prototype.initialTextUpdate = function () {\n if (!isNullOrUndefined(this.text)) {\n var textArr = this.text.split(this.delimiterChar);\n var textVal = [];\n for (var index = 0; textArr.length > index; index++) {\n var val = this.getValueByText(textArr[index]);\n if (!isNullOrUndefined(val)) {\n textVal.push(val);\n }\n else if (this.allowCustomValue) {\n textVal.push(textArr[index]);\n }\n }\n if (textVal && textVal.length) {\n this.setProperties({ value: textVal }, true);\n }\n }\n else {\n this.setProperties({ value: null }, true);\n }\n };\n MultiSelect.prototype.renderList = function (isEmptyData) {\n if (!isEmptyData && this.allowCustomValue && this.list && (this.list.textContent === this.noRecordsTemplate\n || this.list.querySelector('.e-ul') && this.list.querySelector('.e-ul').childElementCount === 0)) {\n isEmptyData = true;\n }\n _super.prototype.render.call(this, null, isEmptyData);\n this.unwireListEvents();\n this.wireListEvents();\n };\n MultiSelect.prototype.initialValueUpdate = function () {\n if (this.list) {\n var text = void 0;\n var element = void 0;\n var value = void 0;\n if (this.chipCollectionWrapper) {\n this.chipCollectionWrapper.innerHTML = '';\n }\n this.removeListSelection();\n if (!isNullOrUndefined(this.value)) {\n for (var index = 0; !isNullOrUndefined(this.value[index]); index++) {\n value = this.value[index];\n element = this.findListElement(this.hideSelectedItem ? this.ulElement : this.list, 'li', 'data-value', value);\n text = this.getTextByValue(value);\n if ((element && (element.getAttribute('aria-selected') !== 'true')) ||\n (element && (element.getAttribute('aria-selected') === 'true' && this.hideSelectedItem) &&\n (this.mode === 'Box' || this.mode === 'Default'))) {\n this.addChip(text, value);\n this.addListSelection(element);\n }\n else if (value && this.allowCustomValue) {\n var indexItem = this.listData.length;\n var newValue = {};\n setValue(this.fields.text, value, newValue);\n setValue(this.fields.value, value, newValue);\n var noDataEle = this.popupWrapper.querySelector('.' + dropDownBaseClasses.noData);\n this.addItem(newValue, indexItem);\n element = element ? element : this.findListElement(this.hideSelectedItem ? this.ulElement : this.list, 'li', 'data-value', value);\n if (this.popupWrapper.contains(noDataEle)) {\n this.list.setAttribute('style', noDataEle.getAttribute('style'));\n this.popupWrapper.replaceChild(this.list, noDataEle);\n this.wireListEvents();\n }\n this.addChip(text, value);\n this.addListSelection(element);\n }\n }\n }\n if (this.mode === 'CheckBox') {\n this.updateDelimView();\n if (this.changeOnBlur) {\n this.updateValueState(null, this.value, this.tempValues);\n }\n this.updateDelimeter(this.delimiterChar);\n this.refreshInputHight();\n }\n else {\n this.updateDelimeter(this.delimiterChar);\n }\n if (this.mode === 'CheckBox' && this.showSelectAll && (isNullOrUndefined(this.value) || !this.value.length)) {\n this.notify('checkSelectAll', { module: 'CheckBoxSelection', enable: this.mode === 'CheckBox', value: 'uncheck' });\n }\n if (this.mode === 'Box' || (this.mode === 'Default' && this.inputFocus)) {\n this.chipCollectionWrapper.style.display = '';\n }\n else if (this.mode === 'Delimiter' || this.mode === 'CheckBox') {\n this.showDelimWrapper();\n }\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n MultiSelect.prototype.updateActionCompleteData = function (li, item) {\n if (this.value && this.value.indexOf(li.getAttribute('data-value')) > -1) {\n this.mainList = this.ulElement;\n if (this.hideSelectedItem) {\n addClass([li], HIDE_LIST);\n }\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n MultiSelect.prototype.updateAddItemList = function (list, itemCount) {\n if (this.popupObj && this.popupObj.element && this.popupObj.element.querySelector('.' + dropDownBaseClasses.noData) && list) {\n this.list = list;\n this.mainList = this.ulElement = list.querySelector('ul');\n remove(this.popupWrapper.querySelector('.e-content'));\n this.popupObj = null;\n this.renderPopup();\n }\n else if (this.allowCustomValue) {\n this.list = list;\n this.mainList = this.ulElement = list.querySelector('ul');\n }\n };\n MultiSelect.prototype.updateDataList = function () {\n if (this.mainList && this.ulElement && !(this.isFiltered || this.filterAction || this.targetElement().trim())) {\n var isDynamicGroupItemUpdate = this.mainList.childElementCount < this.ulElement.childElementCount;\n var isReactTemplateUpdate = ((this.ulElement.childElementCount > 0 && this.ulElement.children[0].childElementCount > 0) && (this.mainList.children[0].childElementCount < this.ulElement.children[0].childElementCount));\n var isAngularTemplateUpdate = this.itemTemplate && this.ulElement.childElementCount > 0 && !(this.ulElement.childElementCount < this.mainList.childElementCount) && (this.ulElement.children[0].childElementCount > 0 || (this.fields.groupBy && this.ulElement.children[1] && this.ulElement.children[1].childElementCount > 0));\n if (isDynamicGroupItemUpdate || isReactTemplateUpdate || isAngularTemplateUpdate) {\n //EJ2-57748 - for this task, we prevent the ul element cloning ( this.mainList = this.ulElement.cloneNode ? this.ulElement.cloneNode(true) : this.ulElement;)\n this.mainList = this.ulElement;\n }\n }\n };\n MultiSelect.prototype.isValidLI = function (li) {\n return (li && !li.classList.contains(dropDownBaseClasses.disabled) && !li.classList.contains(dropDownBaseClasses.group) &&\n li.classList.contains(dropDownBaseClasses.li));\n };\n MultiSelect.prototype.updateListSelection = function (li, e, length) {\n var customVal = li.getAttribute('data-value');\n var value = this.getFormattedValue(customVal);\n if (this.allowCustomValue && ((customVal !== 'false' && value === false) ||\n (!isNullOrUndefined(value) && value.toString() === 'NaN'))) {\n value = customVal;\n }\n this.removeHover();\n if (!this.value || this.value.indexOf(value) === -1) {\n this.dispatchSelect(value, e, li, (li.getAttribute('aria-selected') === 'true'), length);\n }\n else {\n this.removeValue(value, e, length);\n }\n };\n MultiSelect.prototype.updateListSelectEventCallback = function (value, li, e) {\n var _this = this;\n var text = this.getTextByValue(value);\n if ((this.allowCustomValue || this.allowFiltering) && !this.findListElement(this.mainList, 'li', 'data-value', value)) {\n var temp_1 = li.cloneNode(true);\n var fieldValue = this.fields.value ? this.fields.value : 'value';\n if (this.allowCustomValue && this.mainData.length && typeof getValue(fieldValue, this.mainData[0]) === 'number') {\n value = !isNaN(parseFloat(value.toString())) ? parseFloat(value.toString()) : value;\n }\n var data_1 = this.getDataByValue(value);\n var eventArgs = {\n newData: data_1,\n cancel: false\n };\n this.trigger('customValueSelection', eventArgs, function (eventArgs) {\n if (!eventArgs.cancel) {\n append([temp_1], _this.mainList);\n _this.mainData.push(data_1);\n _this.remoteCustomValue = false;\n _this.addValue(value, text, e);\n }\n });\n }\n else {\n this.remoteCustomValue = false;\n this.addValue(value, text, e);\n }\n };\n MultiSelect.prototype.removeListSelection = function () {\n var className = this.hideSelectedItem ?\n HIDE_LIST :\n dropDownBaseClasses.selected;\n var selectedItems = this.list.querySelectorAll('.' + className);\n var temp = selectedItems.length;\n if (selectedItems && selectedItems.length) {\n removeClass(selectedItems, className);\n while (temp > 0) {\n selectedItems[temp - 1].setAttribute('aria-selected', 'false');\n temp--;\n }\n }\n if (!isNullOrUndefined(this.mainList)) {\n var selectItems = this.mainList.querySelectorAll('.' + className);\n var temp1 = selectItems.length;\n if (selectItems && selectItems.length) {\n removeClass(selectItems, className);\n while (temp1 > 0) {\n selectItems[temp1 - 1].setAttribute('aria-selected', 'false');\n if (this.mode === 'CheckBox') {\n if (selectedItems && (selectedItems.length > (temp1 - 1))) {\n removeClass([selectedItems[temp1 - 1].firstElementChild.lastElementChild], 'e-check');\n }\n removeClass([selectItems[temp1 - 1].firstElementChild.lastElementChild], 'e-check');\n }\n temp1--;\n }\n }\n }\n };\n MultiSelect.prototype.removeHover = function () {\n var hoveredItem = this.list.querySelectorAll('.' + dropDownBaseClasses.hover);\n if (hoveredItem && hoveredItem.length) {\n removeClass(hoveredItem, dropDownBaseClasses.hover);\n }\n };\n MultiSelect.prototype.removeFocus = function () {\n if (this.list && this.mainList) {\n var hoveredItem = this.list.querySelectorAll('.' + dropDownBaseClasses.focus);\n var mainlist = this.mainList.querySelectorAll('.' + dropDownBaseClasses.focus);\n if (hoveredItem && hoveredItem.length) {\n removeClass(hoveredItem, dropDownBaseClasses.focus);\n removeClass(mainlist, dropDownBaseClasses.focus);\n }\n }\n };\n MultiSelect.prototype.addListHover = function (li) {\n if (this.enabled && this.isValidLI(li)) {\n this.removeHover();\n addClass([li], dropDownBaseClasses.hover);\n }\n else {\n if ((li !== null && li.classList.contains('e-list-group-item')) && this.enableGroupCheckBox && this.mode === 'CheckBox'\n && !isNullOrUndefined(this.fields.groupBy)) {\n this.removeHover();\n addClass([li], dropDownBaseClasses.hover);\n }\n }\n };\n MultiSelect.prototype.addListFocus = function (element) {\n if (this.enabled && this.isValidLI(element)) {\n this.removeFocus();\n addClass([element], dropDownBaseClasses.focus);\n this.updateAriaActiveDescendant();\n }\n else {\n if (this.enableGroupCheckBox && this.mode === 'CheckBox' && !isNullOrUndefined(this.fields.groupBy)) {\n addClass([element], dropDownBaseClasses.focus);\n this.updateAriaActiveDescendant();\n }\n }\n };\n MultiSelect.prototype.addListSelection = function (element, mainElement) {\n var className = this.hideSelectedItem ?\n HIDE_LIST :\n dropDownBaseClasses.selected;\n if (this.isValidLI(element) && !element.classList.contains(dropDownBaseClasses.hover)) {\n addClass([element], className);\n this.updateMainList(false, element.getAttribute('data-value'), mainElement);\n element.setAttribute('aria-selected', 'true');\n if (this.mode === 'CheckBox' && element.classList.contains('e-active')) {\n var ariaCheck = element.getElementsByClassName('e-check').length;\n if (ariaCheck === 0) {\n this.notify('updatelist', { module: 'CheckBoxSelection', enable: this.mode === 'CheckBox', li: element, e: this });\n }\n }\n this.notify('activeList', { module: 'CheckBoxSelection', enable: this.mode === 'CheckBox', li: element, e: this });\n if (this.chipCollectionWrapper) {\n this.removeChipSelection();\n }\n this.selectedElementID = element.id;\n }\n };\n MultiSelect.prototype.updateDelimeter = function (delimChar, e) {\n this.updateData(delimChar, e);\n };\n MultiSelect.prototype.onMouseClick = function (e) {\n var _this = this;\n this.keyCode = null;\n this.scrollFocusStatus = false;\n var target = e.target;\n var li = closest(target, '.' + dropDownBaseClasses.li);\n var headerLi = closest(target, '.' + dropDownBaseClasses.group);\n if (headerLi && this.enableGroupCheckBox && this.mode === 'CheckBox' && this.fields.groupBy) {\n target = target.classList.contains('e-list-group-item') ? target.firstElementChild.lastElementChild\n : e.target;\n if (target.classList.contains('e-check')) {\n this.selectAllItem(false, e);\n target.classList.remove('e-check');\n target.classList.remove('e-stop');\n closest(target, '.' + 'e-list-group-item').classList.remove('e-active');\n target.setAttribute('aria-selected', 'false');\n }\n else {\n this.selectAllItem(true, e);\n target.classList.remove('e-stop');\n target.classList.add('e-check');\n closest(target, '.' + 'e-list-group-item').classList.add('e-active');\n target.setAttribute('aria-selected', 'true');\n }\n this.refreshSelection();\n this.checkSelectAll();\n }\n else {\n if (this.isValidLI(li)) {\n var limit = this.value && this.value.length ? this.value.length : 0;\n if (li.classList.contains('e-active')) {\n limit = limit - 1;\n }\n if (limit < this.maximumSelectionLength) {\n this.updateListSelection(li, e);\n this.checkPlaceholderSize();\n this.addListFocus(li);\n if ((this.allowCustomValue || this.allowFiltering) && this.mainList && this.listData) {\n if (this.mode !== 'CheckBox') {\n this.focusAtLastListItem(li.getAttribute('data-value'));\n this.refreshSelection();\n }\n }\n else {\n this.makeTextBoxEmpty();\n }\n }\n if (this.mode === 'CheckBox') {\n this.updateDelimView();\n if (this.value && this.value.length > 50) {\n setTimeout(function () {\n _this.updateDelimeter(_this.delimiterChar, e);\n }, 0);\n }\n else {\n this.updateDelimeter(this.delimiterChar, e);\n }\n this.refreshInputHight();\n }\n else {\n this.updateDelimeter(this.delimiterChar, e);\n }\n this.checkSelectAll();\n this.refreshPopup();\n if (this.hideSelectedItem) {\n this.focusAtFirstListItem();\n }\n if (this.closePopupOnSelect) {\n this.hidePopup(e);\n }\n else {\n e.preventDefault();\n }\n this.makeTextBoxEmpty();\n this.findGroupStart(target);\n if (this.mode !== 'CheckBox') {\n this.refreshListItems(isNullOrUndefined(li) ? null : li.textContent);\n }\n }\n else {\n e.preventDefault();\n }\n this.refreshPlaceHolder();\n this.deselectHeader();\n }\n };\n MultiSelect.prototype.findGroupStart = function (target) {\n if (this.enableGroupCheckBox && this.mode === 'CheckBox' && !isNullOrUndefined(this.fields.groupBy)) {\n var count = 0;\n var liChecked = 0;\n var liUnchecked = 0;\n var groupValues = void 0;\n if (this.itemTemplate && !target.getElementsByClassName('e-frame').length) {\n while (!target.getElementsByClassName('e-frame').length) {\n target = target.parentElement;\n }\n }\n if (target.classList.contains('e-frame')) {\n target = target.parentElement.parentElement;\n }\n groupValues = this.findGroupAttrtibutes(target, liChecked, liUnchecked, count, 0);\n groupValues = this.findGroupAttrtibutes(target, groupValues[0], groupValues[1], groupValues[2], 1);\n while (!target.classList.contains('e-list-group-item')) {\n if (target.classList.contains('e-list-icon')) {\n target = target.parentElement;\n }\n target = target.previousElementSibling;\n if (target == null) {\n break;\n }\n }\n this.updateCheckBox(target, groupValues[0], groupValues[1], groupValues[2]);\n }\n };\n MultiSelect.prototype.findGroupAttrtibutes = function (listElement, checked, unChecked, count, position) {\n while (!listElement.classList.contains('e-list-group-item')) {\n if (listElement.classList.contains('e-list-icon')) {\n listElement = listElement.parentElement;\n }\n if (listElement.getElementsByClassName('e-frame')[0].classList.contains('e-check') &&\n listElement.classList.contains('e-list-item')) {\n checked++;\n }\n else if (listElement.classList.contains('e-list-item')) {\n unChecked++;\n }\n count++;\n listElement = position ? listElement.nextElementSibling : listElement.previousElementSibling;\n if (listElement == null) {\n break;\n }\n }\n return [checked, unChecked, count];\n };\n MultiSelect.prototype.updateCheckBox = function (groupHeader, checked, unChecked, count) {\n if (groupHeader === null) {\n return;\n }\n var checkBoxElement = groupHeader.getElementsByClassName('e-frame')[0];\n if (count === checked) {\n checkBoxElement.classList.remove('e-stop');\n checkBoxElement.classList.add('e-check');\n closest(checkBoxElement, '.' + 'e-list-group-item').classList.add('e-active');\n groupHeader.setAttribute('aria-selected', 'true');\n }\n else if (count === unChecked) {\n checkBoxElement.classList.remove('e-check');\n checkBoxElement.classList.remove('e-stop');\n closest(checkBoxElement, '.' + 'e-list-group-item').classList.remove('e-active');\n groupHeader.setAttribute('aria-selected', 'false');\n }\n else if (this.maximumSelectionLength === checked - 1) {\n checkBoxElement.classList.remove('e-stop');\n groupHeader.setAttribute('aria-selected', 'true');\n closest(checkBoxElement, '.' + 'e-list-group-item').classList.add('e-active');\n checkBoxElement.classList.add('e-check');\n }\n else {\n checkBoxElement.classList.remove('e-check');\n checkBoxElement.classList.add('e-stop');\n closest(checkBoxElement, '.' + 'e-list-group-item').classList.add('e-active');\n groupHeader.setAttribute('aria-selected', 'false');\n }\n };\n MultiSelect.prototype.deselectHeader = function () {\n var limit = this.value && this.value.length ? this.value.length : 0;\n var collection = this.list.querySelectorAll('li.e-list-group-item:not(.e-active)');\n if (limit < this.maximumSelectionLength) {\n removeClass(collection, 'e-disable');\n }\n if (limit === this.maximumSelectionLength) {\n addClass(collection, 'e-disable');\n }\n };\n MultiSelect.prototype.onMouseOver = function (e) {\n var currentLi = closest(e.target, '.' + dropDownBaseClasses.li);\n if (currentLi === null && this.mode === 'CheckBox' && !isNullOrUndefined(this.fields.groupBy)\n && this.enableGroupCheckBox) {\n currentLi = closest(e.target, '.' + dropDownBaseClasses.group);\n }\n this.addListHover(currentLi);\n };\n MultiSelect.prototype.onMouseLeave = function () {\n this.removeHover();\n };\n MultiSelect.prototype.onListMouseDown = function (e) {\n e.preventDefault();\n this.scrollFocusStatus = true;\n };\n MultiSelect.prototype.onDocumentClick = function (e) {\n if (this.mode !== 'CheckBox') {\n var target = e.target;\n if (!(!isNullOrUndefined(this.popupObj) && closest(target, '[id=\"' + this.popupObj.element.id + '\"]')) &&\n !this.overAllWrapper.contains(e.target)) {\n this.scrollFocusStatus = false;\n }\n else {\n this.scrollFocusStatus = (Browser.isIE || Browser.info.name === 'edge') && (document.activeElement === this.inputElement);\n }\n }\n };\n MultiSelect.prototype.wireListEvents = function () {\n if (!isNullOrUndefined(this.list)) {\n EventHandler.add(document, 'mousedown', this.onDocumentClick, this);\n EventHandler.add(this.list, 'mousedown', this.onListMouseDown, this);\n EventHandler.add(this.list, 'mouseup', this.onMouseClick, this);\n EventHandler.add(this.list, 'mouseover', this.onMouseOver, this);\n EventHandler.add(this.list, 'mouseout', this.onMouseLeave, this);\n }\n };\n MultiSelect.prototype.unwireListEvents = function () {\n EventHandler.remove(document, 'mousedown', this.onDocumentClick);\n if (this.list) {\n EventHandler.remove(this.list, 'mousedown', this.onListMouseDown);\n EventHandler.remove(this.list, 'mouseup', this.onMouseClick);\n EventHandler.remove(this.list, 'mouseover', this.onMouseOver);\n EventHandler.remove(this.list, 'mouseout', this.onMouseLeave);\n }\n };\n MultiSelect.prototype.hideOverAllClear = function () {\n if (!this.value || !this.value.length || this.inputElement.value === '') {\n this.overAllClear.style.display = 'none';\n }\n };\n MultiSelect.prototype.showOverAllClear = function () {\n if (((this.value && this.value.length) || this.inputElement.value !== '') && this.showClearButton && this.readonly !== true) {\n this.overAllClear.style.display = '';\n }\n else {\n this.overAllClear.style.display = 'none';\n }\n };\n /**\n * Sets the focus to widget for interaction.\n *\n * @returns {void}\n */\n MultiSelect.prototype.focusIn = function () {\n if (document.activeElement !== this.inputElement && this.enabled) {\n this.inputElement.focus();\n }\n };\n /**\n * Remove the focus from widget, if the widget is in focus state.\n *\n * @returns {void}\n */\n MultiSelect.prototype.focusOut = function () {\n if (document.activeElement === this.inputElement && this.enabled) {\n this.inputElement.blur();\n }\n };\n /**\n * Shows the spinner loader.\n *\n * @returns {void}\n */\n MultiSelect.prototype.showSpinner = function () {\n if (isNullOrUndefined(this.spinnerElement)) {\n var filterClear = this.filterParent && this.filterParent.querySelector('.e-clear-icon.e-icons');\n if (this.overAllClear.style.display !== 'none' || filterClear) {\n this.spinnerElement = filterClear ? filterClear : this.overAllClear;\n }\n else {\n this.spinnerElement = this.createElement('span', { className: CLOSEICON_CLASS + ' ' + SPINNER_CLASS });\n this.componentWrapper.appendChild(this.spinnerElement);\n }\n createSpinner({ target: this.spinnerElement, width: Browser.isDevice ? '16px' : '14px' }, this.createElement);\n addClass([this.spinnerElement], DISABLE_ICON);\n showSpinner(this.spinnerElement);\n }\n };\n /**\n * Hides the spinner loader.\n *\n * @returns {void}\n */\n MultiSelect.prototype.hideSpinner = function () {\n if (!isNullOrUndefined(this.spinnerElement)) {\n hideSpinner(this.spinnerElement);\n removeClass([this.spinnerElement], DISABLE_ICON);\n if (this.spinnerElement.classList.contains(SPINNER_CLASS)) {\n detach(this.spinnerElement);\n }\n else {\n this.spinnerElement.innerHTML = '';\n }\n this.spinnerElement = null;\n }\n };\n MultiSelect.prototype.updateWrapperText = function (wrapperType, wrapperData) {\n if (this.valueTemplate || !this.enableHtmlSanitizer) {\n wrapperType.innerHTML = wrapperData;\n }\n else {\n wrapperType.innerText = SanitizeHtmlHelper.sanitize(wrapperData);\n }\n };\n MultiSelect.prototype.updateDelimView = function () {\n if (this.delimiterWrapper) {\n this.hideDelimWrapper();\n }\n if (this.chipCollectionWrapper) {\n this.chipCollectionWrapper.style.display = 'none';\n }\n if (!isNullOrUndefined(this.viewWrapper)) {\n this.viewWrapper.style.display = '';\n this.viewWrapper.style.width = '';\n this.viewWrapper.classList.remove(TOTAL_COUNT_WRAPPER);\n }\n if (this.value && this.value.length) {\n var data = '';\n var temp = void 0;\n var tempData = void 0;\n var tempIndex = 1;\n var wrapperleng = void 0;\n var remaining = void 0;\n var downIconWidth = 0;\n var overAllContainer = void 0;\n this.updateWrapperText(this.viewWrapper, data);\n var l10nLocale = {\n noRecordsTemplate: 'No records found',\n actionFailureTemplate: 'Request failed',\n overflowCountTemplate: '+${count} more..',\n totalCountTemplate: '${count} selected'\n };\n var l10n = new L10n(this.getLocaleName(), l10nLocale, this.locale);\n if (l10n.getConstant('actionFailureTemplate') === '') {\n l10n = new L10n('dropdowns', l10nLocale, this.locale);\n }\n if (l10n.getConstant('noRecordsTemplate') === '') {\n l10n = new L10n('dropdowns', l10nLocale, this.locale);\n }\n var remainContent = l10n.getConstant('overflowCountTemplate');\n var totalContent = l10n.getConstant('totalCountTemplate');\n var raminElement = this.createElement('span', {\n className: REMAIN_WRAPPER\n });\n var remainCompildTemp = remainContent.replace('${count}', this.value.length.toString());\n raminElement.innerText = remainCompildTemp;\n this.viewWrapper.appendChild(raminElement);\n this.renderReactTemplates();\n var remainSize = raminElement.offsetWidth;\n remove(raminElement);\n if (this.showDropDownIcon) {\n downIconWidth = this.dropIcon.offsetWidth + parseInt(window.getComputedStyle(this.dropIcon).marginRight, 10);\n }\n this.checkClearIconWidth();\n if (!isNullOrUndefined(this.value)) {\n for (var index = 0; !isNullOrUndefined(this.value[index]); index++) {\n data += (index === 0) ? '' : this.delimiterChar + ' ';\n temp = this.getOverflowVal(index);\n data += temp;\n temp = this.viewWrapper.innerHTML;\n this.updateWrapperText(this.viewWrapper, data);\n wrapperleng = this.viewWrapper.offsetWidth +\n parseInt(window.getComputedStyle(this.viewWrapper).paddingRight, 10);\n overAllContainer = this.componentWrapper.offsetWidth -\n parseInt(window.getComputedStyle(this.componentWrapper).paddingLeft, 10) -\n parseInt(window.getComputedStyle(this.componentWrapper).paddingRight, 10);\n if ((wrapperleng + downIconWidth + this.clearIconWidth) > overAllContainer) {\n if (tempData !== undefined && tempData !== '') {\n temp = tempData;\n index = tempIndex + 1;\n }\n this.updateWrapperText(this.viewWrapper, temp);\n remaining = this.value.length - index;\n wrapperleng = this.viewWrapper.offsetWidth +\n parseInt(window.getComputedStyle(this.viewWrapper).paddingRight, 10);\n while (((wrapperleng + remainSize + downIconWidth + this.clearIconWidth) > overAllContainer) && wrapperleng !== 0\n && this.viewWrapper.innerHTML !== '') {\n var textArr = [];\n this.viewWrapper.innerHTML = textArr.join(this.delimiterChar);\n remaining = this.value.length;\n wrapperleng = this.viewWrapper.offsetWidth +\n parseInt(window.getComputedStyle(this.viewWrapper).paddingRight, 10);\n }\n break;\n }\n else if ((wrapperleng + remainSize + downIconWidth + this.clearIconWidth) <= overAllContainer) {\n tempData = data;\n tempIndex = index;\n }\n else if (index === 0) {\n tempData = '';\n tempIndex = -1;\n }\n }\n }\n if (remaining > 0) {\n var totalWidth = overAllContainer - downIconWidth - this.clearIconWidth;\n this.viewWrapper.appendChild(this.updateRemainTemplate(raminElement, this.viewWrapper, remaining, remainContent, totalContent, totalWidth));\n this.updateRemainWidth(this.viewWrapper, totalWidth);\n this.updateRemainingText(raminElement, downIconWidth, remaining, remainContent, totalContent);\n }\n }\n else {\n if (!isNullOrUndefined(this.viewWrapper)) {\n this.viewWrapper.innerHTML = '';\n this.viewWrapper.style.display = 'none';\n }\n }\n };\n MultiSelect.prototype.checkClearIconWidth = function () {\n if (this.showClearButton) {\n this.clearIconWidth = this.overAllClear.offsetWidth;\n }\n };\n MultiSelect.prototype.updateRemainWidth = function (viewWrapper, totalWidth) {\n if (viewWrapper.classList.contains(TOTAL_COUNT_WRAPPER) && totalWidth < (viewWrapper.offsetWidth +\n parseInt(window.getComputedStyle(viewWrapper).paddingLeft, 10)\n + parseInt(window.getComputedStyle(viewWrapper).paddingLeft, 10))) {\n viewWrapper.style.width = totalWidth + 'px';\n }\n };\n MultiSelect.prototype.updateRemainTemplate = function (raminElement, viewWrapper, remaining, remainContent, totalContent, totalWidth) {\n if (viewWrapper.firstChild && viewWrapper.firstChild.nodeType === 3 && viewWrapper.firstChild.nodeValue === '') {\n viewWrapper.removeChild(viewWrapper.firstChild);\n }\n raminElement.innerHTML = '';\n var remainTemp = remainContent.replace('${count}', remaining.toString());\n var totalTemp = totalContent.replace('${count}', remaining.toString());\n raminElement.innerText = (viewWrapper.firstChild && viewWrapper.firstChild.nodeType === 3) ? remainTemp : totalTemp;\n if (viewWrapper.firstChild && viewWrapper.firstChild.nodeType === 3) {\n viewWrapper.classList.remove(TOTAL_COUNT_WRAPPER);\n }\n else {\n viewWrapper.classList.add(TOTAL_COUNT_WRAPPER);\n this.updateRemainWidth(viewWrapper, totalWidth);\n }\n return raminElement;\n };\n MultiSelect.prototype.updateRemainingText = function (raminElement, downIconWidth, remaining, remainContent, totalContent) {\n var overAllContainer = this.componentWrapper.offsetWidth -\n parseInt(window.getComputedStyle(this.componentWrapper).paddingLeft, 10) -\n parseInt(window.getComputedStyle(this.componentWrapper).paddingRight, 10);\n var wrapperleng = this.viewWrapper.offsetWidth + parseInt(window.getComputedStyle(this.viewWrapper).paddingRight, 10);\n if (((wrapperleng + downIconWidth) >= overAllContainer) && wrapperleng !== 0 && this.viewWrapper.firstChild &&\n this.viewWrapper.firstChild.nodeType === 3) {\n while (((wrapperleng + downIconWidth) > overAllContainer) && wrapperleng !== 0 && this.viewWrapper.firstChild &&\n this.viewWrapper.firstChild.nodeType === 3) {\n var textArr = this.viewWrapper.firstChild.nodeValue.split(this.delimiterChar);\n textArr.pop();\n this.viewWrapper.firstChild.nodeValue = textArr.join(this.delimiterChar);\n if (this.viewWrapper.firstChild.nodeValue === '') {\n this.viewWrapper.removeChild(this.viewWrapper.firstChild);\n }\n remaining++;\n wrapperleng = this.viewWrapper.offsetWidth;\n }\n var totalWidth = overAllContainer - downIconWidth;\n this.updateRemainTemplate(raminElement, this.viewWrapper, remaining, remainContent, totalContent, totalWidth);\n }\n };\n MultiSelect.prototype.getOverflowVal = function (index) {\n var temp;\n if (this.mainData && this.mainData.length) {\n if (this.mode === 'CheckBox') {\n var newTemp = this.listData;\n this.listData = this.mainData;\n temp = this.getTextByValue(this.value[index]);\n this.listData = newTemp;\n }\n else {\n temp = this.getTextByValue(this.value[index]);\n }\n }\n else {\n temp = this.value[index];\n }\n return temp;\n };\n MultiSelect.prototype.unWireEvent = function () {\n if (!isNullOrUndefined(this.componentWrapper)) {\n EventHandler.remove(this.componentWrapper, 'mousedown', this.wrapperClick);\n }\n EventHandler.remove(window, 'resize', this.windowResize);\n if (!isNullOrUndefined(this.inputElement)) {\n EventHandler.remove(this.inputElement, 'focus', this.focusInHandler);\n EventHandler.remove(this.inputElement, 'keydown', this.onKeyDown);\n if (this.mode !== 'CheckBox') {\n EventHandler.remove(this.inputElement, 'input', this.onInput);\n }\n EventHandler.remove(this.inputElement, 'keyup', this.keyUp);\n var formElement = closest(this.inputElement, 'form');\n if (formElement) {\n EventHandler.remove(formElement, 'reset', this.resetValueHandler);\n }\n EventHandler.remove(this.inputElement, 'blur', this.onBlurHandler);\n }\n if (!isNullOrUndefined(this.componentWrapper)) {\n EventHandler.remove(this.componentWrapper, 'mouseover', this.mouseIn);\n EventHandler.remove(this.componentWrapper, 'mouseout', this.mouseOut);\n }\n if (!isNullOrUndefined(this.overAllClear)) {\n EventHandler.remove(this.overAllClear, 'mousedown', this.clearAll);\n }\n if (!isNullOrUndefined(this.inputElement)) {\n EventHandler.remove(this.inputElement, 'paste', this.pasteHandler);\n }\n };\n MultiSelect.prototype.selectAllItem = function (state, event, list) {\n var li;\n if (!isNullOrUndefined(this.list)) {\n li = this.list.querySelectorAll(state ?\n 'li.e-list-item:not([aria-selected=\"true\"]):not(.e-reorder-hide)' :\n 'li.e-list-item[aria-selected=\"true\"]:not(.e-reorder-hide)');\n }\n if (this.value && this.value.length && event && event.target\n && closest(event.target, '.e-close-hooker') && this.allowFiltering) {\n li = this.mainList.querySelectorAll(state ?\n 'li.e-list-item:not([aria-selected=\"true\"]):not(.e-reorder-hide)' :\n 'li.e-list-item[aria-selected=\"true\"]:not(.e-reorder-hide)');\n }\n if (this.enableGroupCheckBox && this.mode === 'CheckBox' && !isNullOrUndefined(this.fields.groupBy)) {\n var target = (event ? (this.groupTemplate ? closest(event.target, '.e-list-group-item') : event.target) : null);\n target = (event && event.keyCode === 32) ? list : target;\n target = (target && target.classList.contains('e-frame')) ? target.parentElement.parentElement : target;\n if (target && target.classList.contains('e-list-group-item')) {\n var listElement = target.nextElementSibling;\n if (isNullOrUndefined(listElement)) {\n return;\n }\n while (listElement.classList.contains('e-list-item')) {\n if (state) {\n if (!listElement.firstElementChild.lastElementChild.classList.contains('e-check')) {\n var selectionLimit = this.value && this.value.length ? this.value.length : 0;\n if (listElement.classList.contains('e-active')) {\n selectionLimit -= 1;\n }\n if (selectionLimit < this.maximumSelectionLength) {\n this.updateListSelection(listElement, event);\n }\n }\n }\n else {\n if (listElement.firstElementChild.lastElementChild.classList.contains('e-check')) {\n this.updateListSelection(listElement, event);\n }\n }\n listElement = listElement.nextElementSibling;\n if (listElement == null) {\n break;\n }\n }\n if (target.classList.contains('e-list-group-item')) {\n var focusedElement = this.list.getElementsByClassName('e-item-focus')[0];\n if (focusedElement) {\n focusedElement.classList.remove('e-item-focus');\n }\n if (state) {\n target.classList.add('e-active');\n }\n else {\n target.classList.remove('e-active');\n }\n target.classList.add('e-item-focus');\n this.updateAriaActiveDescendant();\n }\n this.textboxValueUpdate();\n this.checkPlaceholderSize();\n if (!this.changeOnBlur && event) {\n this.updateValueState(event, this.value, this.tempValues);\n }\n }\n else {\n this.updateValue(event, li, state);\n }\n }\n else {\n this.updateValue(event, li, state);\n }\n this.addValidInputClass();\n };\n MultiSelect.prototype.updateValue = function (event, li, state) {\n var _this = this;\n var length = li.length;\n var beforeSelectArgs = {\n event: event,\n items: state ? li : [],\n itemData: state ? this.listData : [],\n isInteracted: event ? true : false,\n isChecked: state,\n preventSelectEvent: false\n };\n this.trigger('beforeSelectAll', beforeSelectArgs);\n if (li && li.length) {\n var index_1 = 0;\n var count_1 = 0;\n if (this.enableGroupCheckBox) {\n count_1 = state ? this.maximumSelectionLength - (this.value ? this.value.length : 0) : li.length;\n }\n else {\n count_1 = state ? this.maximumSelectionLength - (this.value ? this.value.length : 0) : this.maximumSelectionLength;\n }\n if (!beforeSelectArgs.preventSelectEvent) {\n while (index_1 < length && index_1 <= 50 && index_1 < count_1) {\n this.updateListSelection(li[index_1], event, length - index_1);\n if (this.enableGroupCheckBox) {\n this.findGroupStart(li[index_1]);\n }\n index_1++;\n }\n if (length > 50) {\n setTimeout(function () {\n while (index_1 < length && index_1 < count_1) {\n _this.updateListSelection(li[index_1], event, length - index_1);\n if (_this.enableGroupCheckBox) {\n _this.findGroupStart(li[index_1]);\n }\n index_1++;\n }\n _this.updatedataValueItems(event);\n if (!_this.changeOnBlur) {\n _this.updateValueState(event, _this.value, _this.tempValues);\n _this.isSelectAll = _this.isSelectAll ? !_this.isSelectAll : _this.isSelectAll;\n }\n _this.updateHiddenElement();\n }, 0);\n }\n }\n else {\n for (var i = 0; i < li.length && i < count_1; i++) {\n this.removeHover();\n var customVal = li[i].getAttribute('data-value');\n var value = this.getFormattedValue(customVal);\n var mainElement = this.mainList ? this.mainList.querySelectorAll(state ?\n 'li.e-list-item:not([aria-selected=\"true\"]):not(.e-reorder-hide)' :\n 'li.e-list-item[aria-selected=\"true\"]:not(.e-reorder-hide)')[i] : null;\n if (state) {\n this.value = !this.value ? [] : this.value;\n if (this.value.indexOf(value) < 0) {\n this.setProperties({ value: [].concat([], this.value, [value]) }, true);\n }\n this.removeFocus();\n this.addListSelection(li[i], mainElement);\n this.updateChipStatus();\n this.checkMaxSelection();\n }\n else {\n this.removeAllItems(value, event, false, li[i], mainElement);\n }\n if (this.enableGroupCheckBox) {\n this.findGroupStart(li[i]);\n }\n }\n if (!state) {\n var limit = this.value && this.value.length ? this.value.length : 0;\n if (limit < this.maximumSelectionLength) {\n var collection = this.list.querySelectorAll('li.'\n + dropDownBaseClasses.li + ':not(.e-active)');\n removeClass(collection, 'e-disable');\n }\n }\n var args = {\n event: event,\n items: state ? li : [],\n itemData: state ? this.listData : [],\n isInteracted: event ? true : false,\n isChecked: state\n };\n this.trigger('selectedAll', args);\n }\n }\n this.updatedataValueItems(event);\n this.checkPlaceholderSize();\n if (length <= 50 && !beforeSelectArgs.preventSelectEvent) {\n if (!this.changeOnBlur) {\n this.updateValueState(event, this.value, this.tempValues);\n this.isSelectAll = this.isSelectAll ? !this.isSelectAll : this.isSelectAll;\n }\n this.updateHiddenElement();\n }\n };\n MultiSelect.prototype.updateHiddenElement = function () {\n var _this = this;\n var hiddenValue = '';\n var wrapperText = '';\n var data = '';\n var text = [];\n if (this.mode === 'CheckBox') {\n this.value.map(function (value, index) {\n hiddenValue += '';\n if (_this.listData) {\n data = _this.getTextByValue(value);\n }\n else {\n data = value;\n }\n wrapperText += data + _this.delimiterChar + ' ';\n text.push(data);\n });\n this.hiddenElement.innerHTML = hiddenValue;\n this.updateWrapperText(this.delimiterWrapper, wrapperText);\n this.delimiterWrapper.setAttribute('id', getUniqueID('delim_val'));\n this.inputElement.setAttribute('aria-describedby', this.delimiterWrapper.id);\n this.inputElement.setAttribute('aria-labelledby', this.delimiterWrapper.id);\n this.setProperties({ text: text.toString() }, true);\n this.refreshInputHight();\n this.refreshPlaceHolder();\n }\n };\n MultiSelect.prototype.updatedataValueItems = function (event) {\n this.deselectHeader();\n this.textboxValueUpdate(event);\n };\n MultiSelect.prototype.textboxValueUpdate = function (event) {\n var isRemoveAll = event && event.target && (closest(event.target, '.e-selectall-parent')\n || closest(event.target, '.e-close-hooker'));\n if (this.mode !== 'Box' && !this.isPopupOpen() && !(this.mode === 'CheckBox' && (this.isSelectAll || isRemoveAll))) {\n this.updateDelimView();\n }\n else {\n this.searchWrapper.classList.remove(ZERO_SIZE);\n }\n if (this.mode === 'CheckBox') {\n this.updateDelimView();\n if (!(isRemoveAll || this.isSelectAll)) {\n this.updateDelimeter(this.delimiterChar, event);\n }\n this.refreshInputHight();\n }\n else {\n this.updateDelimeter(this.delimiterChar, event);\n }\n this.refreshPlaceHolder();\n };\n MultiSelect.prototype.setZIndex = function () {\n if (this.popupObj) {\n this.popupObj.setProperties({ 'zIndex': this.zIndex });\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n MultiSelect.prototype.updateDataSource = function (prop) {\n if (isNullOrUndefined(this.list)) {\n this.renderPopup();\n }\n else {\n this.resetList(this.dataSource);\n }\n if (this.value && this.value.length) {\n this.setProperties({ 'value': this.value });\n this.refreshSelection();\n }\n };\n MultiSelect.prototype.onLoadSelect = function () {\n this.setDynValue = true;\n this.renderPopup();\n };\n MultiSelect.prototype.selectAllItems = function (state, event) {\n var _this = this;\n if (isNullOrUndefined(this.list)) {\n this.selectAllAction = function () {\n if (_this.mode === 'CheckBox' && _this.showSelectAll) {\n var args = {\n module: 'CheckBoxSelection',\n enable: _this.mode === 'CheckBox',\n value: state ? 'check' : 'uncheck'\n };\n _this.notify('checkSelectAll', args);\n }\n _this.selectAllItem(state, event);\n _this.selectAllAction = null;\n };\n _super.prototype.render.call(this);\n }\n else {\n this.selectAllAction = null;\n if (this.mode === 'CheckBox' && this.showSelectAll) {\n var args = {\n value: state ? 'check' : 'uncheck',\n enable: this.mode === 'CheckBox',\n module: 'CheckBoxSelection'\n };\n this.notify('checkSelectAll', args);\n }\n this.selectAllItem(state, event);\n }\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @returns {string} Returns the persisted data of the component.\n */\n MultiSelect.prototype.getPersistData = function () {\n return this.addOnPersist(['value']);\n };\n /**\n * Dynamically change the value of properties.\n *\n * @param {MultiSelectModel} newProp - Returns the dynamic property value of the component.\n * @param {MultiSelectModel} oldProp - Returns the previous property value of the component.\n * @private\n * @returns {void}\n */\n MultiSelect.prototype.onPropertyChanged = function (newProp, oldProp) {\n if (newProp.dataSource && !isNullOrUndefined(Object.keys(newProp.dataSource))\n || newProp.query && !isNullOrUndefined(Object.keys(newProp.query))) {\n if (this.resetFilteredData) {\n // The filtered data is not being reset in the component after the user focuses out.\n this.resetMainList = !this.resetMainList ? this.mainList : this.resetMainList;\n this.resetFilteredData = false;\n }\n this.mainList = null;\n this.mainData = null;\n this.isFirstClick = false;\n this.isDynamicDataChange = true;\n }\n if (this.getModuleName() === 'multiselect') {\n this.filterAction = false;\n this.setUpdateInitial(['fields', 'query', 'dataSource'], newProp);\n }\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'query':\n case 'dataSource':\n if (this.mode === 'CheckBox' && this.showSelectAll) {\n if (!isNullOrUndefined(this.popupObj)) {\n this.popupObj.destroy();\n this.popupObj = null;\n }\n this.renderPopup();\n }\n break;\n case 'htmlAttributes':\n this.updateHTMLAttribute();\n break;\n case 'showClearButton':\n this.updateClearButton(newProp.showClearButton);\n break;\n case 'text':\n this.updateVal(this.value, this.value, 'text');\n break;\n case 'value':\n this.updateVal(this.value, oldProp.value, 'value');\n this.addValidInputClass();\n if (!this.closePopupOnSelect && this.isPopupOpen()) {\n this.refreshPopup();\n }\n this.preventChange = this.isAngular && this.preventChange ? !this.preventChange : this.preventChange;\n break;\n case 'width':\n this.setWidth(newProp.width);\n this.popupObj.setProperties({ width: this.calcPopupWidth() });\n break;\n case 'placeholder':\n this.refreshPlaceHolder();\n break;\n case 'filterBarPlaceholder':\n if (this.allowFiltering) {\n this.notify('filterBarPlaceholder', { filterBarPlaceholder: newProp.filterBarPlaceholder });\n }\n break;\n case 'delimiterChar':\n if (this.mode !== 'Box') {\n this.updateDelimView();\n }\n this.updateData(newProp.delimiterChar);\n break;\n case 'cssClass':\n this.updateOldPropCssClass(oldProp.cssClass);\n this.updateCssClass();\n this.calculateWidth();\n break;\n case 'enableRtl':\n this.enableRTL(newProp.enableRtl);\n _super.prototype.onPropertyChanged.call(this, newProp, oldProp);\n break;\n case 'readonly':\n this.updateReadonly(newProp.readonly);\n this.hidePopup();\n break;\n case 'enabled':\n this.hidePopup();\n this.enable(newProp.enabled);\n break;\n case 'showSelectAll':\n if (this.popupObj) {\n this.popupObj.destroy();\n this.popupObj = null;\n }\n this.renderPopup();\n break;\n case 'showDropDownIcon':\n this.dropDownIcon();\n break;\n case 'floatLabelType':\n this.setFloatLabelType();\n this.addValidInputClass();\n Input.createSpanElement(this.overAllWrapper, this.createElement);\n this.calculateWidth();\n if (!isNullOrUndefined(this.overAllWrapper) && !isNullOrUndefined(this.overAllWrapper.getElementsByClassName('e-ddl-icon')[0] && this.overAllWrapper.getElementsByClassName('e-float-text-content')[0] && this.floatLabelType !== 'Never')) {\n this.overAllWrapper.getElementsByClassName('e-float-text-content')[0].classList.add('e-icon');\n }\n break;\n case 'enableSelectionOrder':\n break;\n case 'selectAllText':\n this.notify('selectAllText', false);\n break;\n case 'popupHeight':\n if (this.popupObj) {\n var overAllHeight = parseInt(this.popupHeight, 10);\n if (this.popupHeight !== 'auto') {\n this.list.style.maxHeight = formatUnit(overAllHeight);\n this.popupWrapper.style.maxHeight = formatUnit(this.popupHeight);\n }\n else {\n this.list.style.maxHeight = formatUnit(this.popupHeight);\n }\n }\n break;\n case 'headerTemplate':\n case 'footerTemplate':\n this.reInitializePoup();\n break;\n case 'allowFiltering':\n if (this.mode === 'CheckBox' && this.popupObj) {\n this.reInitializePoup();\n }\n this.updateSelectElementData(this.allowFiltering);\n break;\n default:\n {\n // eslint-disable-next-line max-len\n var msProps = this.getPropObject(prop, newProp, oldProp);\n _super.prototype.onPropertyChanged.call(this, msProps.newProperty, msProps.oldProperty);\n }\n break;\n }\n }\n };\n MultiSelect.prototype.reInitializePoup = function () {\n if (this.popupObj) {\n this.popupObj.destroy();\n this.popupObj = null;\n }\n this.renderPopup();\n };\n MultiSelect.prototype.presentItemValue = function (ulElement) {\n var valuecheck = [];\n for (var i = 0; i < this.value.length; i++) {\n var checkEle = this.findListElement(((this.allowFiltering && !isNullOrUndefined(this.mainList)) ? this.mainList : ulElement), 'li', 'data-value', this.value[i]);\n if (!checkEle) {\n valuecheck.push(this.value[i]);\n }\n }\n return valuecheck;\n };\n ;\n MultiSelect.prototype.addNonPresentItems = function (valuecheck, ulElement, list, event) {\n var _this = this;\n this.dataSource.executeQuery(this.getForQuery(valuecheck)).then(function (e) {\n if (e.result.length > 0) {\n _this.addItem(e.result, list.length);\n }\n _this.updateActionList(ulElement, list, event);\n });\n };\n ;\n MultiSelect.prototype.updateVal = function (newProp, oldProp, prop) {\n if (!this.list) {\n this.onLoadSelect();\n }\n else if ((this.dataSource instanceof DataManager) && (!this.listData || !(this.mainList && this.mainData))) {\n this.onLoadSelect();\n }\n else {\n var valuecheck = [];\n if (!isNullOrUndefined(this.value) && !this.allowCustomValue) {\n valuecheck = this.presentItemValue(this.ulElement);\n }\n if (prop == 'value' && valuecheck.length > 0 && this.dataSource instanceof DataManager && !isNullOrUndefined(this.value)\n && this.listData != null) {\n this.mainData = null;\n this.setDynValue = true;\n this.addNonPresentItems(valuecheck, this.ulElement, this.listData);\n }\n else {\n if (prop === 'text') {\n this.initialTextUpdate();\n newProp = this.value;\n }\n if (isNullOrUndefined(this.value) || this.value.length === 0) {\n this.tempValues = oldProp;\n }\n // eslint-disable-next-line\n if (this.allowCustomValue && (this.mode === 'Default' || this.mode === 'Box') && this.isReact && this.inputFocus\n && this.isPopupOpen() && this.mainData !== this.listData) {\n var list = this.mainList.cloneNode ? this.mainList.cloneNode(true) : this.mainList;\n this.onActionComplete(list, this.mainData);\n }\n this.initialValueUpdate();\n if (this.mode !== 'Box' && !this.inputFocus) {\n this.updateDelimView();\n }\n if (!this.inputFocus) {\n this.refreshInputHight();\n }\n this.refreshPlaceHolder();\n if (this.mode !== 'CheckBox' && this.changeOnBlur) {\n this.updateValueState(null, newProp, oldProp);\n }\n this.checkPlaceholderSize();\n }\n }\n if (!this.changeOnBlur) {\n this.updateValueState(null, newProp, oldProp);\n }\n };\n /**\n * Adds a new item to the multiselect popup list. By default, new item appends to the list as the last item,\n * but you can insert based on the index parameter.\n *\n * @param { Object[] } items - Specifies an array of JSON data or a JSON data.\n * @param { number } itemIndex - Specifies the index to place the newly added item in the popup list.\n * @returns {void}\n */\n MultiSelect.prototype.addItem = function (items, itemIndex) {\n _super.prototype.addItem.call(this, items, itemIndex);\n };\n /**\n * Hides the popup, if the popup in a open state.\n *\n * @returns {void}\n */\n MultiSelect.prototype.hidePopup = function (e) {\n var _this = this;\n var delay = 100;\n if (this.isPopupOpen()) {\n var animModel = {\n name: 'FadeOut',\n duration: 100,\n delay: delay ? delay : 0\n };\n var eventArgs = { popup: this.popupObj, cancel: false, animation: animModel, event: e || null };\n this.trigger('close', eventArgs, function (eventArgs) {\n if (!eventArgs.cancel) {\n if (_this.fields.groupBy && _this.mode !== 'CheckBox' && _this.fixedHeaderElement) {\n remove(_this.fixedHeaderElement);\n _this.fixedHeaderElement = null;\n }\n _this.beforePopupOpen = false;\n _this.overAllWrapper.classList.remove(iconAnimation);\n _this.popupObj.hide(new Animation(eventArgs.animation));\n attributes(_this.inputElement, { 'aria-expanded': 'false' });\n _this.inputElement.removeAttribute('aria-owns');\n _this.inputElement.removeAttribute('aria-activedescendant');\n if (_this.allowFiltering) {\n _this.notify('inputFocus', { module: 'CheckBoxSelection', enable: _this.mode === 'CheckBox', value: 'clear' });\n }\n _this.popupObj.hide();\n removeClass([document.body, _this.popupObj.element], 'e-popup-full-page');\n EventHandler.remove(_this.list, 'keydown', _this.onKeyDown);\n }\n });\n }\n };\n /**\n * Shows the popup, if the popup in a closed state.\n *\n * @returns {void}\n */\n MultiSelect.prototype.showPopup = function (e) {\n var _this = this;\n if (!this.enabled) {\n return;\n }\n var args = { cancel: false };\n this.trigger('beforeOpen', args, function (args) {\n if (!args.cancel) {\n if (!_this.ulElement) {\n _this.beforePopupOpen = true;\n _super.prototype.render.call(_this, e);\n if (_this.mode === 'CheckBox' && Browser.isDevice && _this.allowFiltering) {\n _this.notify('popupFullScreen', { module: 'CheckBoxSelection', enable: _this.mode === 'CheckBox' });\n }\n return;\n }\n if (_this.mode === 'CheckBox' && Browser.isDevice && _this.allowFiltering) {\n _this.notify('popupFullScreen', { module: 'CheckBoxSelection', enable: _this.mode === 'CheckBox' });\n }\n var mainLiLength = _this.ulElement.querySelectorAll('li.' + 'e-list-item').length;\n var liLength = _this.ulElement.querySelectorAll('li.'\n + dropDownBaseClasses.li + '.' + HIDE_LIST).length;\n if (mainLiLength > 0 && (mainLiLength === liLength) && (liLength === _this.mainData.length) && !(_this.targetElement() !== '' && _this.allowCustomValue)) {\n _this.beforePopupOpen = false;\n return;\n }\n _this.onPopupShown(e);\n }\n });\n };\n /**\n * Based on the state parameter, entire list item will be selected/deselected.\n * parameter\n * `true` - Selects entire list items.\n * `false` - Un Selects entire list items.\n *\n * @param {boolean} state - if it’s true then Selects the entire list items. If it’s false the Unselects entire list items.\n * @returns {void}\n */\n MultiSelect.prototype.selectAll = function (state) {\n this.isSelectAll = true;\n this.selectAllItems(state);\n };\n /**\n * Return the module name of this component.\n *\n * @private\n * @returns {string} Return the module name of this component.\n */\n MultiSelect.prototype.getModuleName = function () {\n return 'multiselect';\n };\n /**\n * Allows you to clear the selected values from the Multiselect component.\n *\n * @returns {void}\n */\n MultiSelect.prototype.clear = function () {\n var _this = this;\n this.selectAll(false);\n if (this.value && this.value.length) {\n setTimeout(function () {\n _this.setProperties({ value: null }, true);\n }, 0);\n }\n else {\n this.setProperties({ value: null }, true);\n }\n };\n /**\n * To Initialize the control rendering\n *\n * @private\n * @returns {void}\n */\n MultiSelect.prototype.render = function () {\n this.setDynValue = this.initStatus = false;\n this.isSelectAll = false;\n this.selectAllEventEle = [];\n this.searchWrapper = this.createElement('span', { className: SEARCHBOX_WRAPPER + ' ' + ((this.mode === 'Box') ? BOX_ELEMENT : '') });\n this.viewWrapper = this.createElement('span', { className: DELIMITER_VIEW + ' ' + DELIMITER_WRAPPER, styles: 'display:none;' });\n this.overAllClear = this.createElement('span', {\n className: CLOSEICON_CLASS, styles: 'display:none;'\n });\n this.componentWrapper = this.createElement('div', { className: ELEMENT_WRAPPER });\n this.overAllWrapper = this.createElement('div', { className: OVER_ALL_WRAPPER });\n if (this.mode === 'CheckBox') {\n addClass([this.overAllWrapper], 'e-checkbox');\n }\n if (Browser.isDevice) {\n this.componentWrapper.classList.add(ELEMENT_MOBILE_WRAPPER);\n }\n this.setWidth(this.width);\n this.overAllWrapper.appendChild(this.componentWrapper);\n this.popupWrapper = this.createElement('div', { id: this.element.id + '_popup', className: POPUP_WRAPPER });\n if (this.mode === 'Delimiter' || this.mode === 'CheckBox') {\n this.delimiterWrapper = this.createElement('span', { className: DELIMITER_WRAPPER, styles: 'display:none' });\n this.componentWrapper.appendChild(this.delimiterWrapper);\n }\n else {\n this.chipCollectionWrapper = this.createElement('span', {\n className: CHIP_WRAPPER,\n styles: 'display:none'\n });\n if (this.mode === 'Default') {\n this.chipCollectionWrapper.setAttribute('id', getUniqueID('chip_default'));\n }\n else if (this.mode === 'Box') {\n this.chipCollectionWrapper.setAttribute('id', getUniqueID('chip_box'));\n }\n this.componentWrapper.appendChild(this.chipCollectionWrapper);\n }\n if (this.mode !== 'Box') {\n this.componentWrapper.appendChild(this.viewWrapper);\n }\n this.componentWrapper.appendChild(this.searchWrapper);\n if (this.showClearButton && !Browser.isDevice) {\n this.componentWrapper.appendChild(this.overAllClear);\n }\n else {\n this.componentWrapper.classList.add(CLOSE_ICON_HIDE);\n }\n this.dropDownIcon();\n this.inputElement = this.createElement('input', {\n className: INPUT_ELEMENT,\n attrs: {\n spellcheck: 'false',\n type: 'text',\n autocomplete: 'off',\n tabindex: '0',\n role: 'combobox'\n }\n });\n if (this.mode === 'Default' || this.mode === 'Box') {\n this.inputElement.setAttribute('aria-describedby', this.chipCollectionWrapper.id);\n }\n if (this.element.tagName !== this.getNgDirective()) {\n this.element.style.display = 'none';\n }\n if (this.element.tagName === this.getNgDirective()) {\n this.element.appendChild(this.overAllWrapper);\n this.searchWrapper.appendChild(this.inputElement);\n }\n else {\n this.element.parentElement.insertBefore(this.overAllWrapper, this.element);\n this.searchWrapper.appendChild(this.inputElement);\n this.searchWrapper.appendChild(this.element);\n this.element.removeAttribute('tabindex');\n }\n if (this.floatLabelType !== 'Never') {\n createFloatLabel(this.overAllWrapper, this.searchWrapper, this.element, this.inputElement, this.value, this.floatLabelType, this.placeholder);\n }\n else if (this.floatLabelType === 'Never') {\n this.refreshPlaceHolder();\n }\n this.addValidInputClass();\n this.element.style.opacity = '';\n var id = this.element.getAttribute('id') ? this.element.getAttribute('id') : getUniqueID('ej2_dropdownlist');\n this.element.id = id;\n this.hiddenElement = this.createElement('select', {\n attrs: { 'aria-hidden': 'true', 'class': HIDDEN_ELEMENT, 'tabindex': '-1', 'multiple': '' }\n });\n this.componentWrapper.appendChild(this.hiddenElement);\n this.validationAttribute(this.element, this.hiddenElement);\n if (this.mode !== 'CheckBox') {\n this.hideOverAllClear();\n }\n if (!isNullOrUndefined(closest(this.element, \"fieldset\")) && closest(this.element, \"fieldset\").disabled) {\n this.enabled = false;\n }\n this.wireEvent();\n this.enable(this.enabled);\n this.enableRTL(this.enableRtl);\n this.checkInitialValue();\n if (this.element.hasAttribute('data-val')) {\n this.element.setAttribute('data-val', 'false');\n }\n Input.createSpanElement(this.overAllWrapper, this.createElement);\n this.calculateWidth();\n if (!isNullOrUndefined(this.overAllWrapper) && !isNullOrUndefined(this.overAllWrapper.getElementsByClassName('e-ddl-icon')[0] && this.overAllWrapper.getElementsByClassName('e-float-text-content')[0] && this.floatLabelType !== 'Never')) {\n this.overAllWrapper.getElementsByClassName('e-float-text-content')[0].classList.add('e-icon');\n }\n this.renderComplete();\n };\n MultiSelect.prototype.checkInitialValue = function () {\n var _this = this;\n var isData = this.dataSource instanceof Array ? (this.dataSource.length > 0)\n : !isNullOrUndefined(this.dataSource);\n if (!(this.value && this.value.length) &&\n isNullOrUndefined(this.text) &&\n !isData &&\n this.element.tagName === 'SELECT' &&\n this.element.options.length > 0) {\n var optionsElement = this.element.options;\n var valueCol = [];\n var textCol = '';\n for (var index = 0, optionsLen = optionsElement.length; index < optionsLen; index++) {\n var opt = optionsElement[index];\n if (!isNullOrUndefined(opt.getAttribute('selected'))) {\n if (opt.getAttribute('value')) {\n valueCol.push(opt.getAttribute('value'));\n }\n else {\n textCol += (opt.text + this.delimiterChar);\n }\n }\n }\n if (valueCol.length > 0) {\n this.setProperties({ value: valueCol }, true);\n }\n else if (textCol !== '') {\n this.setProperties({ text: textCol }, true);\n }\n if (valueCol.length > 0 || textCol !== '') {\n this.refreshInputHight();\n this.refreshPlaceHolder();\n }\n }\n if ((this.value && this.value.length) || !isNullOrUndefined(this.text)) {\n if (!this.list) {\n _super.prototype.render.call(this);\n }\n }\n if (!isNullOrUndefined(this.text) && (isNullOrUndefined(this.value) || this.value.length === 0)) {\n this.initialTextUpdate();\n }\n if (this.value && this.value.length) {\n if (!(this.dataSource instanceof DataManager)) {\n this.initialValueUpdate();\n this.initialUpdate();\n }\n else {\n this.setInitialValue = function () {\n _this.initStatus = false;\n _this.initialValueUpdate();\n _this.initialUpdate();\n _this.setInitialValue = null;\n _this.initStatus = true;\n };\n }\n this.updateTempValue();\n }\n else {\n this.initialUpdate();\n }\n this.initStatus = true;\n this.checkAutoFocus();\n if (!isNullOrUndefined(this.text)) {\n this.element.setAttribute('data-initial-value', this.text);\n }\n };\n MultiSelect.prototype.checkAutoFocus = function () {\n if (this.element.hasAttribute('autofocus')) {\n this.inputElement.focus();\n }\n };\n MultiSelect.prototype.setFloatLabelType = function () {\n removeFloating(this.overAllWrapper, this.componentWrapper, this.searchWrapper, this.inputElement, this.value, this.floatLabelType, this.placeholder);\n if (this.floatLabelType !== 'Never') {\n createFloatLabel(this.overAllWrapper, this.searchWrapper, this.element, this.inputElement, this.value, this.floatLabelType, this.placeholder);\n }\n };\n MultiSelect.prototype.addValidInputClass = function () {\n if (!isNullOrUndefined(this.overAllWrapper)) {\n if ((!isNullOrUndefined(this.value) && this.value.length) || this.floatLabelType === 'Always') {\n addClass([this.overAllWrapper], 'e-valid-input');\n }\n else {\n removeClass([this.overAllWrapper], 'e-valid-input');\n }\n }\n };\n MultiSelect.prototype.dropDownIcon = function () {\n if (this.showDropDownIcon) {\n this.dropIcon = this.createElement('span', { className: dropdownIcon });\n this.componentWrapper.appendChild(this.dropIcon);\n addClass([this.componentWrapper], ['e-down-icon']);\n }\n else {\n if (!isNullOrUndefined(this.dropIcon)) {\n this.dropIcon.parentElement.removeChild(this.dropIcon);\n removeClass([this.componentWrapper], ['e-down-icon']);\n }\n }\n };\n MultiSelect.prototype.initialUpdate = function () {\n if (this.mode !== 'Box' && !(this.setDynValue && this.mode === 'Default' && this.inputFocus)) {\n this.updateDelimView();\n }\n this.updateCssClass();\n this.updateHTMLAttribute();\n this.updateReadonly(this.readonly);\n this.refreshInputHight();\n this.checkPlaceholderSize();\n };\n /**\n * Removes the component from the DOM and detaches all its related event handlers. Also it removes the attributes and classes.\n *\n * @method destroy\n * @returns {void}\n */\n MultiSelect.prototype.destroy = function () {\n // eslint-disable-next-line\n if (this.isReact) {\n this.clearTemplate();\n }\n if (this.popupObj) {\n this.popupObj.hide();\n }\n this.notify(destroy, {});\n this.unwireListEvents();\n this.unWireEvent();\n this.list = null;\n this.popupObj = null;\n this.mainList = null;\n this.mainData = null;\n this.filterParent = null;\n this.ulElement = null;\n this.mainListCollection = null;\n _super.prototype.destroy.call(this);\n var temp = ['readonly', 'aria-disabled', 'placeholder'];\n var length = temp.length;\n if (!isNullOrUndefined(this.inputElement)) {\n while (length > 0) {\n this.inputElement.removeAttribute(temp[length - 1]);\n length--;\n }\n }\n if (!isNullOrUndefined(this.element)) {\n this.element.removeAttribute('data-initial-value');\n this.element.style.display = 'block';\n }\n if (this.overAllWrapper && this.overAllWrapper.parentElement) {\n if (this.overAllWrapper.parentElement.tagName === this.getNgDirective()) {\n remove(this.overAllWrapper);\n }\n else {\n this.overAllWrapper.parentElement.insertBefore(this.element, this.overAllWrapper);\n remove(this.overAllWrapper);\n }\n }\n this.componentWrapper = null;\n this.overAllClear = null;\n this.overAllWrapper = null;\n this.hiddenElement = null;\n this.searchWrapper = null;\n this.viewWrapper = null;\n this.chipCollectionWrapper = null;\n this.targetInputElement = null;\n this.popupWrapper = null;\n this.inputElement = null;\n this.delimiterWrapper = null;\n this.popupObj = null;\n this.popupWrapper = null;\n this.liCollections = null;\n this.header = null;\n this.mainList = null;\n this.mainListCollection = null;\n this.footer = null;\n this.selectAllEventEle = null;\n };\n __decorate([\n Complex({ text: null, value: null, iconCss: null, groupBy: null }, FieldSettings)\n ], MultiSelect.prototype, \"fields\", void 0);\n __decorate([\n Property(false)\n ], MultiSelect.prototype, \"enablePersistence\", void 0);\n __decorate([\n Property(null)\n ], MultiSelect.prototype, \"groupTemplate\", void 0);\n __decorate([\n Property('No records found')\n ], MultiSelect.prototype, \"noRecordsTemplate\", void 0);\n __decorate([\n Property('Request failed')\n ], MultiSelect.prototype, \"actionFailureTemplate\", void 0);\n __decorate([\n Property('None')\n ], MultiSelect.prototype, \"sortOrder\", void 0);\n __decorate([\n Property(true)\n ], MultiSelect.prototype, \"enabled\", void 0);\n __decorate([\n Property(false)\n ], MultiSelect.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Property([])\n ], MultiSelect.prototype, \"dataSource\", void 0);\n __decorate([\n Property(null)\n ], MultiSelect.prototype, \"query\", void 0);\n __decorate([\n Property('StartsWith')\n ], MultiSelect.prototype, \"filterType\", void 0);\n __decorate([\n Property(1000)\n ], MultiSelect.prototype, \"zIndex\", void 0);\n __decorate([\n Property(false)\n ], MultiSelect.prototype, \"ignoreAccent\", void 0);\n __decorate([\n Property()\n ], MultiSelect.prototype, \"locale\", void 0);\n __decorate([\n Property(false)\n ], MultiSelect.prototype, \"enableGroupCheckBox\", void 0);\n __decorate([\n Property(null)\n ], MultiSelect.prototype, \"cssClass\", void 0);\n __decorate([\n Property('100%')\n ], MultiSelect.prototype, \"width\", void 0);\n __decorate([\n Property('300px')\n ], MultiSelect.prototype, \"popupHeight\", void 0);\n __decorate([\n Property('100%')\n ], MultiSelect.prototype, \"popupWidth\", void 0);\n __decorate([\n Property(null)\n ], MultiSelect.prototype, \"placeholder\", void 0);\n __decorate([\n Property(null)\n ], MultiSelect.prototype, \"filterBarPlaceholder\", void 0);\n __decorate([\n Property({})\n ], MultiSelect.prototype, \"htmlAttributes\", void 0);\n __decorate([\n Property(null)\n ], MultiSelect.prototype, \"valueTemplate\", void 0);\n __decorate([\n Property(null)\n ], MultiSelect.prototype, \"headerTemplate\", void 0);\n __decorate([\n Property(null)\n ], MultiSelect.prototype, \"footerTemplate\", void 0);\n __decorate([\n Property(null)\n ], MultiSelect.prototype, \"itemTemplate\", void 0);\n __decorate([\n Property(null)\n ], MultiSelect.prototype, \"allowFiltering\", void 0);\n __decorate([\n Property(true)\n ], MultiSelect.prototype, \"changeOnBlur\", void 0);\n __decorate([\n Property(false)\n ], MultiSelect.prototype, \"allowCustomValue\", void 0);\n __decorate([\n Property(true)\n ], MultiSelect.prototype, \"showClearButton\", void 0);\n __decorate([\n Property(1000)\n ], MultiSelect.prototype, \"maximumSelectionLength\", void 0);\n __decorate([\n Property(false)\n ], MultiSelect.prototype, \"readonly\", void 0);\n __decorate([\n Property(null)\n ], MultiSelect.prototype, \"text\", void 0);\n __decorate([\n Property(null)\n ], MultiSelect.prototype, \"value\", void 0);\n __decorate([\n Property(true)\n ], MultiSelect.prototype, \"hideSelectedItem\", void 0);\n __decorate([\n Property(true)\n ], MultiSelect.prototype, \"closePopupOnSelect\", void 0);\n __decorate([\n Property('Default')\n ], MultiSelect.prototype, \"mode\", void 0);\n __decorate([\n Property(',')\n ], MultiSelect.prototype, \"delimiterChar\", void 0);\n __decorate([\n Property(true)\n ], MultiSelect.prototype, \"ignoreCase\", void 0);\n __decorate([\n Property(false)\n ], MultiSelect.prototype, \"showDropDownIcon\", void 0);\n __decorate([\n Property('Never')\n ], MultiSelect.prototype, \"floatLabelType\", void 0);\n __decorate([\n Property(false)\n ], MultiSelect.prototype, \"showSelectAll\", void 0);\n __decorate([\n Property('Select All')\n ], MultiSelect.prototype, \"selectAllText\", void 0);\n __decorate([\n Property('Unselect All')\n ], MultiSelect.prototype, \"unSelectAllText\", void 0);\n __decorate([\n Property(true)\n ], MultiSelect.prototype, \"enableSelectionOrder\", void 0);\n __decorate([\n Property(true)\n ], MultiSelect.prototype, \"openOnClick\", void 0);\n __decorate([\n Property(false)\n ], MultiSelect.prototype, \"addTagOnBlur\", void 0);\n __decorate([\n Event()\n ], MultiSelect.prototype, \"change\", void 0);\n __decorate([\n Event()\n ], MultiSelect.prototype, \"removing\", void 0);\n __decorate([\n Event()\n ], MultiSelect.prototype, \"removed\", void 0);\n __decorate([\n Event()\n ], MultiSelect.prototype, \"beforeSelectAll\", void 0);\n __decorate([\n Event()\n ], MultiSelect.prototype, \"selectedAll\", void 0);\n __decorate([\n Event()\n ], MultiSelect.prototype, \"beforeOpen\", void 0);\n __decorate([\n Event()\n ], MultiSelect.prototype, \"open\", void 0);\n __decorate([\n Event()\n ], MultiSelect.prototype, \"close\", void 0);\n __decorate([\n Event()\n ], MultiSelect.prototype, \"blur\", void 0);\n __decorate([\n Event()\n ], MultiSelect.prototype, \"focus\", void 0);\n __decorate([\n Event()\n ], MultiSelect.prototype, \"chipSelection\", void 0);\n __decorate([\n Event()\n ], MultiSelect.prototype, \"filtering\", void 0);\n __decorate([\n Event()\n ], MultiSelect.prototype, \"tagging\", void 0);\n __decorate([\n Event()\n ], MultiSelect.prototype, \"customValueSelection\", void 0);\n MultiSelect = __decorate([\n NotifyPropertyChanges\n ], MultiSelect);\n return MultiSelect;\n}(DropDownBase));\nexport { MultiSelect };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { MultiSelect } from '@syncfusion/ej2-dropdowns';\nimport { ComponentBase, applyMixins } from '@syncfusion/ej2-react-base';\n/**\n* The MultiSelect allows the user to pick a values from the predefined list of values.\n * ```\n * \n * ```\n */\nvar MultiSelectComponent = /** @class */ (function (_super) {\n __extends(MultiSelectComponent, _super);\n function MultiSelectComponent(props) {\n var _this = _super.call(this, props) || this;\n _this.initRenderCalled = false;\n _this.checkInjectedModules = true;\n _this.statelessTemplateProps = [\"headerTemplate\", \"valueTemplate\", \"itemTemplate\"];\n _this.templateProps = null;\n _this.immediateRender = false;\n _this.portals = [];\n return _this;\n }\n MultiSelectComponent.prototype.render = function () {\n if (((this.element && !this.initRenderCalled) || this.refreshing) && !this.isReactForeceUpdate) {\n _super.prototype.render.call(this);\n this.initRenderCalled = true;\n }\n else {\n return React.createElement(React.Fragment, null, [].concat(React.createElement(\"input\", this.getDefaultAttributes()), this.portals));\n }\n };\n return MultiSelectComponent;\n}(MultiSelect));\nexport { MultiSelectComponent };\napplyMixins(MultiSelectComponent, [ComponentBase, React.Component]);\n","var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport React from \"react\";\nexport var useEnumMultiSelectFieldV2 = function (props) {\n var multiSelectRef = React.useRef(null);\n var _a = React.useState(props.value || []), localValue = _a[0], setLocalValue = _a[1];\n var localOptionValues = __spreadArray([], (props.optionValues || []), true);\n var setNoRecordsTemplate = function () {\n if (!!multiSelectRef.current && !!props.noRecordsTemplate) {\n multiSelectRef.current.noRecordsTemplate = props.noRecordsTemplate(multiSelectRef.current);\n }\n };\n var sanitizeValue = function (values) {\n return values === null || values === void 0 ? void 0 : values.filter(function (value) { return value != null || value !== undefined; });\n };\n var getOptions = function (values) {\n return values === null || values === void 0 ? void 0 : values.map(function (value) {\n return props.optionValues.find(function (ov) { return ov.value === value; });\n });\n };\n var handleValueChange = function (newValue) {\n if (multiSelectRef.current && newValue !== undefined) {\n /**\n * Setting local value to detect change faster than rerendering,\n * allowing the UI to adjust styles like require as it occurs.\n */\n var sanitizedValue = sanitizeValue(newValue) || [];\n setLocalValue(sanitizedValue);\n multiSelectRef.current.value = sanitizedValue;\n }\n };\n return {\n localValue: localValue,\n setLocalValue: setLocalValue,\n localOptionValues: localOptionValues,\n getOptions: getOptions,\n setNoRecordsTemplate: setNoRecordsTemplate,\n multiSelectRef: multiSelectRef,\n sanitizeValue: sanitizeValue,\n handleValueChange: handleValueChange,\n };\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { FormGroup } from \"@blueprintjs/core\";\nimport { MultiSelectComponent, } from \"@syncfusion/ej2-react-dropdowns\";\nimport { FieldLabel } from \"../../CoreFields/FieldLabel/FieldLabel\";\nimport { FormFieldErrorContainer } from \"../../CoreFields/FieldError/FormFieldErrorContainer\";\nimport { useEnumMultiSelectFieldV2 } from \"./useEnumMultiSelectFieldV2\";\nvar EnumMultiSelectFieldV2 = function (props) {\n var _a = useEnumMultiSelectFieldV2(props), localValue = _a.localValue, setNoRecordsTemplate = _a.setNoRecordsTemplate, multiSelectRef = _a.multiSelectRef, handleValueChange = _a.handleValueChange;\n setNoRecordsTemplate();\n return (_jsxs(FormGroup, { className: \"\".concat((props.isRequired && !localValue) ||\n (props.isRequired && !!localValue && localValue.length === 0) ||\n (props.isRequired &&\n !!props.value &&\n props.value.filter(function (x) { return x !== null && x !== undefined; }).length === 0)\n ? \"has-required-background\"\n : \"ucl-enum-multiselect-field-v2\"), children: [props.label && (_jsx(FieldLabel, __assign({ labelName: props.label, tooltipDescription: props.description, fieldProps: __assign(__assign({}, props), { value: localValue }) }, props.labelProps))), _jsx(\"div\", { className: \"ucl-enum-multiselect-field-v2-toolbar\", children: _jsx(\"div\", { className: \"ucl-enum-multiselect-field-v2-input-container\", children: _jsx(MultiSelectComponent, { className: \"ucl-enum-multiselect-field-v2-input\", ref: multiSelectRef, value: localValue, dataSource: props.optionValues, fields: { text: \"label\", value: \"value\" }, changeOnBlur: false, onChange: function (e) {\n handleValueChange(e.value);\n }, placeholder: props.placeholder, itemTemplate: \"
${label}
\", change: function (e) { return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n // Syncfusion emits a change event on load of the initial data.\n // We only want to update the form state if the change was user-intiated.\n if (e.isInteracted) {\n props.onSubmit &&\n props.onSubmit(e.value);\n }\n return [2 /*return*/];\n });\n }); }, disabled: props.disabled }) }) }), props.errorMessages && (_jsx(FormFieldErrorContainer, { errorMessages: props.errorMessages }))] }));\n};\nexport default EnumMultiSelectFieldV2;\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { RichTextEditorValueType, } from \"./RichTextEditorField\";\nimport { useEffect, useRef, useState } from \"react\";\n/**Hooks for Rich Text Editor Field*/\nexport var useRichTextEditorField = function (props) {\n var richTextEditorRef = useRef(null);\n var _a = useState(false), ready = _a[0], setReady = _a[1];\n var _b = useState(), richTextEditorSettings = _b[0], setRichTextEditorSettings = _b[1];\n var encodeToBase64 = function (data) {\n return window.btoa(unescape(encodeURIComponent(data))); // btoa(data);\n };\n var decodeFromBase64 = function (data) {\n return decodeURIComponent(escape(window.atob(data))); //atob(data);\n };\n var getPropValue = function (propValue) {\n var val = propValue;\n if (val && props.valueType === RichTextEditorValueType.base64) {\n val = decodeFromBase64(val);\n }\n return val;\n };\n var _c = useState(getPropValue(props.value)), localValue = _c[0], setLocalValue = _c[1];\n useEffect(function () {\n setup();\n }, []);\n useEffect(function () {\n if (richTextEditorRef.current) {\n handleValueChange(getPropValue(props.value));\n }\n }, [props.value]);\n var setup = function () { return __awaiter(void 0, void 0, void 0, function () {\n var settings;\n var _a, _b, _c;\n return __generator(this, function (_d) {\n settings = __assign(__assign({}, defaultRichTextEditorSettings), (props.richTextEditorSettings || {}));\n if (((_a = settings.toolbarSettings) === null || _a === void 0 ? void 0 : _a.items) &&\n !props.showFullScreenOption) {\n settings.toolbarSettings.items = (_c = (_b = settings.toolbarSettings) === null || _b === void 0 ? void 0 : _b.items) === null || _c === void 0 ? void 0 : _c.filter(function (item) { return item !== \"FullScreen\"; });\n }\n setRichTextEditorSettings(settings);\n setReady(true);\n return [2 /*return*/];\n });\n }); };\n var handleValueChange = function (newValue) {\n if (richTextEditorRef.current) {\n setLocalValue(newValue);\n richTextEditorRef.current.value = newValue || \"\";\n var val = newValue;\n if (val && props.valueType === RichTextEditorValueType.base64) {\n val = encodeToBase64(val);\n }\n props.onSubmit && props.onSubmit(val);\n }\n };\n var defaultRichTextEditorSettings = {\n toolbarSettings: {\n items: [\n \"Bold\",\n \"Italic\",\n \"Underline\",\n \"StrikeThrough\",\n \"|\",\n \"Formats\",\n \"Alignments\",\n \"OrderedList\",\n \"UnorderedList\",\n \"Outdent\",\n \"Indent\",\n \"|\",\n \"ClearFormat\",\n \"FullScreen\",\n ],\n },\n iframeSettings: { enable: true },\n change: function (args) {\n handleValueChange(args.value);\n },\n enterKey: \"P\",\n pasteCleanupSettings: {\n prompt: false,\n plainText: false,\n keepFormat: true,\n allowedStyleProps: [\"\"],\n deniedAttrs: [\"class\", \"id\", \"style\"],\n deniedTags: [\"a\"],\n },\n };\n return { richTextEditorRef: richTextEditorRef, localValue: localValue, richTextEditorSettings: richTextEditorSettings, ready: ready };\n};\n","/**\n * Defines types of Render\n *\n * @hidden\n\n */\nexport var RenderType;\n(function (RenderType) {\n /* eslint-disable */\n /** Defines RenderType as Toolbar */\n RenderType[RenderType[\"Toolbar\"] = 0] = \"Toolbar\";\n /** Defines RenderType as Content */\n RenderType[RenderType[\"Content\"] = 1] = \"Content\";\n /** Defines RenderType as Popup */\n RenderType[RenderType[\"Popup\"] = 2] = \"Popup\";\n /** Defines RenderType as LinkToolbar */\n RenderType[RenderType[\"LinkToolbar\"] = 3] = \"LinkToolbar\";\n /** Defines RenderType as TextToolbar */\n RenderType[RenderType[\"TextToolbar\"] = 4] = \"TextToolbar\";\n /** Defines RenderType as ImageToolbar */\n RenderType[RenderType[\"ImageToolbar\"] = 5] = \"ImageToolbar\";\n /** Defines RenderType as AudioToolbar */\n RenderType[RenderType[\"AudioToolbar\"] = 6] = \"AudioToolbar\";\n /** Defines RenderType as AudioToolbar */\n RenderType[RenderType[\"VideoToolbar\"] = 7] = \"VideoToolbar\";\n /** Defines RenderType as InlineToolbar */\n RenderType[RenderType[\"InlineToolbar\"] = 8] = \"InlineToolbar\";\n /** Defines RenderType as TableToolbar */\n RenderType[RenderType[\"TableToolbar\"] = 9] = \"TableToolbar\";\n /* eslint-enable */\n})(RenderType || (RenderType = {}));\n/**\n * Defines types to be used as Toolbar.\n */\nexport var ToolbarType;\n(function (ToolbarType) {\n /* eslint-disable */\n /** Defines ToolbarType as Standard */\n ToolbarType[\"Expand\"] = \"Expand\";\n /** Defines ToolbarType as MultiRow */\n ToolbarType[\"MultiRow\"] = \"MultiRow\";\n /** Defines ToolbarType as Scrollable */\n ToolbarType[\"Scrollable\"] = \"Scrollable\";\n /* eslint-enable */\n})(ToolbarType || (ToolbarType = {}));\n/**\n * Defines the type of dialog, which open or close in the Rich Text Editor.\n */\nexport var DialogType;\n(function (DialogType) {\n /* eslint-disable */\n /** Defines ToolbarType as Standard */\n DialogType[\"InsertLink\"] = \"InsertLink\";\n /** Defines ToolbarType as MultiRow */\n DialogType[\"InsertImage\"] = \"InsertImage\";\n /** Defines DialogType as Audio*/\n DialogType[\"InsertAudio\"] = \"InsertAudio\";\n /** Defines DialogType as Video*/\n DialogType[\"InsertVideo\"] = \"InsertVideo\";\n /** Defines ToolbarType as Scrollable */\n DialogType[\"InsertTable\"] = \"InsertTable\";\n /* eslint-enable */\n})(DialogType || (DialogType = {}));\n","/**\n * @hidden\n\n */\nexport var created = 'create';\n/**\n * @hidden\n\n */\nexport var destroyed = 'destroy';\n/**\n * @hidden\n\n */\nexport var tableclass = 'tableclass';\n/**\n * @hidden\n\n */\nexport var load = 'load';\n/**\n * Specifies Rich Text Editor internal events\n */\n/**\n * @hidden\n\n */\nexport var initialLoad = 'initial-load';\n/**\n * @hidden\n\n */\nexport var contentChanged = 'content-changed';\n/**\n * @hidden\n\n */\nexport var initialEnd = 'initial-end';\n/**\n * @hidden\n\n */\nexport var iframeMouseDown = 'iframe-click';\n/**\n * @hidden\n\n */\nexport var destroy = 'destroy';\n/**\n * @hidden\n\n */\nexport var toolbarClick = 'toolbarClick';\n/**\n * @hidden\n\n */\nexport var toolbarRefresh = 'toolbar-refresh';\n/**\n * @hidden\n\n */\nexport var refreshBegin = 'refresh-begin';\n/**\n * @hidden\n\n */\nexport var toolbarUpdated = 'toolbar-updated';\n/**\n * @hidden\n\n */\nexport var bindOnEnd = 'bind-on-end';\n/**\n * @hidden\n\n */\nexport var renderColorPicker = 'render-color-picker';\n/**\n * @hidden\n\n */\nexport var htmlToolbarClick = 'html-toolbar-click';\n/**\n * @hidden\n\n */\nexport var markdownToolbarClick = 'markdown-toolbar-click';\n/**\n * @hidden\n\n */\nexport var destroyColorPicker = 'destroy-color-picker';\n/**\n * @hidden\n\n */\nexport var modelChanged = 'model-changed';\n/**\n * @hidden\n\n */\nexport var tableModulekeyUp = 'tableModulekeyUp';\n/**\n * @hidden\n\n */\nexport var keyUp = 'keyUp';\n/**\n * @hidden\n\n */\nexport var keyDown = 'keyDown';\n/**\n * @hidden\n\n */\nexport var mouseUp = 'mouseUp';\n/**\n * @hidden\n\n */\nexport var toolbarCreated = 'toolbarCreated';\n/**\n * @hidden\n\n */\nexport var toolbarRenderComplete = 'toolbarRenderComplete';\n/**\n * @hidden\n\n */\nexport var enableFullScreen = 'enableFullScreen';\n/**\n * @hidden\n\n */\nexport var disableFullScreen = 'disableFullScreen';\n/**\n * @hidden\n\n */\nexport var dropDownSelect = 'dropDownSelect';\n/**\n * @hidden\n\n */\nexport var beforeDropDownItemRender = 'beforeDropDownItemRender';\n/**\n * @hidden\n\n */\nexport var execCommandCallBack = 'execCommandCallBack';\n/**\n * @hidden\n\n */\nexport var imageToolbarAction = 'image-toolbar-action';\n/**\n * @hidden\n\n */\nexport var audioToolbarAction = 'audio-toolbar-action';\n/**\n * @hidden\n\n */\nexport var videoToolbarAction = 'video-toolbar-action';\n/**\n * @hidden\n\n */\nexport var linkToolbarAction = 'link-toolbar-action';\n/**\n * @hidden\n\n */\nexport var windowResize = 'resize';\n/**\n * @hidden\n\n */\nexport var resizeStart = 'resizeStart';\n/**\n * @hidden\n\n */\nexport var onResize = 'resizing';\n/**\n * @hidden\n\n */\nexport var resizeStop = 'resizeStop';\n/**\n * @hidden\n\n */\nexport var undo = 'undo';\n/**\n * @hidden\n\n */\nexport var redo = 'redo';\n/**\n * @hidden\n\n */\nexport var insertLink = 'insertLink';\n/**\n * @hidden\n\n */\nexport var unLink = 'unLink';\n/**\n * @hidden\n\n */\nexport var editLink = 'editLink';\n/**\n * @hidden\n\n */\nexport var openLink = 'openLink';\n/**\n * @hidden\n\n */\nexport var actionBegin = 'actionBegin';\n/**\n * @hidden\n\n */\nexport var actionComplete = 'actionComplete';\n/**\n * @hidden\n\n */\nexport var updatedToolbarStatus = 'updatedToolbarStatus';\n/**\n * @hidden\n\n */\nexport var actionSuccess = 'actionSuccess';\n/**\n * @hidden\n\n */\nexport var updateToolbarItem = 'updateToolbarItem';\n/**\n * @hidden\n\n */\nexport var insertImage = 'insertImage';\n/**\n * @hidden\n\n */\nexport var insertAudio = 'insertAudio';\n/**\n * @hidden\n\n */\nexport var insertVideo = 'insertVideo';\n/**\n * @hidden\n\n */\nexport var insertCompleted = 'insertCompleted';\n/**\n * @hidden\n\n */\nexport var imageLeft = 'justifyLeft';\n/**\n * @hidden\n\n */\nexport var imageRight = 'justifyRight';\n/**\n * @hidden\n\n */\nexport var imageCenter = 'justifyCenter';\n/**\n * @hidden\n\n */\nexport var imageBreak = 'break';\n/**\n * @hidden\n\n */\nexport var imageInline = 'inline';\n/**\n * @hidden\n\n */\nexport var imageLink = 'insertImgLink';\n/**\n * @hidden\n\n */\nexport var imageAlt = 'imgAltText';\n/**\n * @hidden\n\n */\nexport var imageDelete = 'delete';\n/**\n * @hidden\n\n */\nexport var audioDelete = 'delete';\n/**\n * @hidden\n\n */\nexport var videoDelete = 'delete';\n/**\n * @hidden\n\n */\nexport var imageCaption = 'caption';\n/**\n * @hidden\n\n */\nexport var imageSize = 'imageSize';\n/**\n * @hidden\n\n */\nexport var videoSize = 'videoSize';\n/**\n * @hidden\n\n */\nexport var sourceCode = 'sourceCode';\n/**\n * @hidden\n\n */\nexport var updateSource = 'updateSource';\n/**\n * @hidden\n\n */\nexport var toolbarOpen = 'toolbarOpen';\n/**\n * @hidden\n\n */\nexport var beforeDropDownOpen = 'beforeDropDownOpen';\n/**\n * @hidden\n\n */\nexport var selectionSave = 'selection-save';\n/**\n * @hidden\n\n */\nexport var selectionRestore = 'selection-restore';\n/**\n * @hidden\n\n */\nexport var expandPopupClick = 'expandPopupClick';\n/**\n * @hidden\n\n */\nexport var count = 'count';\n/**\n * @hidden\n\n */\nexport var contentFocus = 'contentFocus';\n/**\n * @hidden\n\n */\nexport var contentBlur = 'contentBlur';\n/**\n * @hidden\n\n */\nexport var mouseDown = 'mouseDown';\n/**\n * @hidden\n\n */\nexport var sourceCodeMouseDown = 'sourceCodeMouseDown';\n/**\n * @hidden\n\n */\nexport var editAreaClick = 'editAreaClick';\n/**\n * @hidden\n\n */\nexport var scroll = 'scroll';\n/**\n * @hidden\n\n */\nexport var contentscroll = 'contentscroll';\n/**\n * @hidden\n\n */\nexport var colorPickerChanged = 'colorPickerChanged';\n/**\n * @hidden\n\n */\nexport var tableColorPickerChanged = 'tableColorPickerChanged';\n/**\n * @hidden\n\n */\nexport var focusChange = 'focusChange';\n/**\n * @hidden\n\n */\nexport var selectAll = 'selectAll';\n/**\n * @hidden\n\n */\nexport var selectRange = 'selectRange';\n/**\n * @hidden\n\n */\nexport var getSelectedHtml = 'getSelectedHtml';\n/**\n * @hidden\n\n */\nexport var renderInlineToolbar = 'renderInlineToolbar';\n/**\n * @hidden\n\n */\nexport var paste = 'paste-content';\n/**\n * @hidden\n\n */\nexport var imgModule = 'imageModule';\n/**\n * @hidden\n\n */\nexport var rtlMode = 'rtl-mode';\n/**\n * @hidden\n\n */\nexport var createTable = 'createTable';\n/**\n * @hidden\n\n */\nexport var docClick = 'docClick';\n/**\n * @hidden\n\n */\nexport var tableToolbarAction = 'table-toolbar-action';\n/**\n * @hidden\n\n */\nexport var checkUndo = 'checkUndoStack';\n/**\n * @hidden\n\n */\nexport var readOnlyMode = 'readOnlyMode';\n/**\n * @hidden\n\n */\nexport var moduleDestroy = 'moduleDestroy';\n/**\n * @hidden\n\n */\nexport var pasteClean = 'pasteClean';\n/**\n * @hidden\n\n */\nexport var enterHandler = 'enterHandler';\n/**\n * @hidden\n\n */\nexport var beforeDialogOpen = 'beforeDialogOpen';\n/**\n * @hidden\n\n */\nexport var clearDialogObj = 'clearDialogObj';\n/**\n * @hidden\n\n */\nexport var dialogOpen = 'dialogOpen';\n/**\n * @hidden\n\n */\nexport var beforeDialogClose = 'beforeDialogClose';\n/**\n * @hidden\n\n */\nexport var dialogClose = 'dialogClose';\n/**\n * @hidden\n\n */\nexport var beforeQuickToolbarOpen = 'beforeQuickToolbarOpen';\n/**\n * @hidden\n\n */\nexport var quickToolbarOpen = 'quickToolbarOpen';\n/**\n * @hidden\n\n */\nexport var quickToolbarClose = 'quickToolbarClose';\n/**\n * @hidden\n\n */\nexport var popupHide = 'popupHide';\n/**\n * @hidden\n\n */\nexport var imageSelected = 'imageSelected';\n/**\n * @hidden\n\n */\nexport var imageUploading = 'imageUploading';\n/**\n * @hidden\n\n */\nexport var imageUploadSuccess = 'imageUploadSuccess';\n/**\n * @hidden\n\n */\nexport var imageUploadFailed = 'imageUploadFailed';\n/**\n * @hidden\n\n */\nexport var imageRemoving = 'imageRemoving';\n/**\n * @hidden\n\n */\nexport var fileSelected = 'fileSelected';\n/**\n * @hidden\n\n */\nexport var fileUploading = 'fileUploading';\n/**\n * @hidden\n\n */\nexport var fileUploadSuccess = 'fileUploadSuccess';\n/**\n * @hidden\n\n */\nexport var fileUploadFailed = 'fileUploadFailed';\n/**\n * @hidden\n\n */\nexport var fileRemoving = 'fileRemoving';\n/**\n * @hidden\n\n */\nexport var afterImageDelete = 'afterImageDelete';\n/**\n * @hidden\n\n */\nexport var afterMediaDelete = 'afterMediaDelete';\n/**\n * @hidden\n\n */\nexport var drop = 'drop';\n/**\n * @hidden\n\n */\nexport var xhtmlValidation = 'xhtmlValidation';\n/**\n * @hidden\n\n */\nexport var beforeImageUpload = 'beforeImageUpload';\n/**\n * @hidden\n\n */\nexport var beforeFileUpload = 'beforeFileUpload';\n/**\n * @hidden\n\n */\nexport var resizeInitialized = 'resizeInitialized';\n/**\n * @hidden\n\n */\nexport var renderFileManager = 'renderFileManager';\n/**\n * @hidden\n\n */\nexport var beforeImageDrop = 'beforeImageDrop';\n/**\n * @hidden\n\n */\nexport var dynamicModule = 'dynamicModule';\n/**\n * @hidden\n\n */\nexport var beforePasteCleanup = 'beforePasteCleanup';\n/**\n * @hidden\n\n */\nexport var afterPasteCleanup = 'afterPasteCleanup';\n/**\n * @hidden\n\n */\nexport var updateTbItemsStatus = 'updateTbItemsStatus';\n/**\n * @hidden\n\n */\nexport var showLinkDialog = 'showLinkDialog';\n/**\n * @hidden\n\n */\nexport var closeLinkDialog = 'closeLinkDialog';\n/**\n * @hidden\n\n */\nexport var showImageDialog = 'showImageDialog';\n/**\n * @hidden\n\n */\nexport var showAudioDialog = 'showAudioDialog';\n/**\n * @hidden\n\n */\nexport var showVideoDialog = 'showVideoDialog';\n/**\n * @hidden\n\n */\nexport var closeImageDialog = 'closeImageDialog';\n/**\n * @hidden\n\n */\nexport var closeAudioDialog = 'closeAudioDialog';\n/**\n * @hidden\n\n */\nexport var closeVideoDialog = 'closeVideoDialog';\n/**\n * @hidden\n\n */\nexport var showTableDialog = 'showTableDialog';\n/**\n * @hidden\n\n */\nexport var closeTableDialog = 'closeTableDialog';\n/**\n * @hidden\n\n */\nexport var bindCssClass = 'closeTableDialog';\n/**\n * @hidden\n\n */\nexport var formatPainterClick = 'formatPainterClick';\n/**\n * @hidden\n\n */\nexport var formatPainterDoubleClick = 'formatPainterDoubleClick';\n/**\n * @hidden\n\n */\nexport var blockEmptyNodes = \"address:empty, article:empty, aside:empty, blockquote:empty,\\n details:empty, dd:empty, div:empty, dl:empty, dt:empty, fieldset:empty, footer:empty,form:empty, h1:empty,\\n h2:empty, h3:empty, h4:empty, h5:empty, h6:empty, header:empty, hgroup:empty, li:empty, main:empty, nav:empty,\\n noscript:empty, output:empty, p:empty, pre:empty, section:empty, td:empty, th:empty\";\n/**\n * @hidden\n\n */\nexport var inlineEmptyNodes = \"a:empty, abbr:empty, acronym:empty, b:empty, bdi:empty, bdo:empty, big:empty, button:empty,\\ncanvas:empty, cite:empty, code:empty, data:empty, datalist:empty, del:empty, dfn:empty, em:empty, font:empty, i:empty, iframe:empty,\\nins:empty, kbd:empty, label:empty, map:empty, mark:empty, meter:empty, noscript:empty, object:empty, output:empty, picture:empty, progress:empty,\\nq:empty, ruby:empty, s:empty, samp:empty, script:empty, select:empty, slot:empty, small:empty, span:empty, strong:empty, strike:empty, sub:empty, sup:empty, svg:empty,\\ntemplate:empty, textarea:empty, time:empty, u:empty, tt:empty, var:empty, wbr:empty\";\n","/**\n * Rich Text Editor classes defined here.\n */\n/**\n * @hidden\n\n */\nexport var CLS_RTE = 'e-richtexteditor';\n/**\n * @hidden\n\n */\nexport var CLS_RTL = 'e-rtl';\n/**\n * @hidden\n\n */\nexport var CLS_CONTENT = 'e-content';\n/**\n * @hidden\n\n */\nexport var CLS_DISABLED = 'e-disabled';\n/**\n * @hidden\n\n */\nexport var CLS_SCRIPT_SHEET = 'rte-iframe-script-sheet';\n/**\n * @hidden\n\n */\nexport var CLS_STYLE_SHEET = 'rte-iframe-style-sheet';\n/**\n * @hidden\n\n */\nexport var CLS_TOOLBAR = 'e-rte-toolbar';\n/**\n * @hidden\n\n */\nexport var CLS_TB_FIXED = 'e-rte-tb-fixed';\n/**\n * @hidden\n\n */\nexport var CLS_TB_FLOAT = 'e-rte-tb-float';\n/**\n * @hidden\n\n */\nexport var CLS_TB_ABS_FLOAT = 'e-rte-tb-abs-float';\n/**\n * @hidden\n\n */\nexport var CLS_INLINE = 'e-rte-inline';\n/**\n * @hidden\n\n */\nexport var CLS_TB_INLINE = 'e-rte-tb-inline';\n/**\n * @hidden\n\n */\nexport var CLS_RTE_EXPAND_TB = 'e-rte-tb-expand';\n/**\n * @hidden\n\n */\nexport var CLS_FULL_SCREEN = 'e-rte-full-screen';\n/**\n * @hidden\n\n */\nexport var CLS_QUICK_TB = 'e-rte-quick-toolbar';\n/**\n * @hidden\n\n */\nexport var CLS_POP = 'e-rte-pop';\n/**\n * @hidden\n\n */\nexport var CLS_TB_STATIC = 'e-tb-static';\n/**\n * @hidden\n\n */\nexport var CLS_QUICK_POP = 'e-rte-quick-popup';\n/**\n * @hidden\n\n */\nexport var CLS_QUICK_DROPDOWN = 'e-quick-dropdown';\n/**\n * @hidden\n\n */\nexport var CLS_IMAGE_POP = 'e-rte-image-popup';\n/**\n * @hidden\n\n */\nexport var CLS_INLINE_POP = 'e-rte-inline-popup';\n/**\n * @hidden\n\n */\nexport var CLS_INLINE_DROPDOWN = 'e-rte-inline-dropdown';\n/**\n * @hidden\n\n */\nexport var CLS_DROPDOWN_POPUP = 'e-rte-dropdown-popup';\n/**\n * @hidden\n\n */\nexport var CLS_DROPDOWN_ICONS = 'e-rte-dropdown-icons';\n/**\n * @hidden\n\n */\nexport var CLS_DROPDOWN_ITEMS = 'e-rte-dropdown-items';\n/**\n * @hidden\n\n */\nexport var CLS_DROPDOWN_BTN = 'e-rte-dropdown-btn';\n/**\n * @hidden\n\n */\nexport var CLS_RTE_CONTENT = 'e-rte-content';\n/**\n * @hidden\n\n */\nexport var CLS_TB_ITEM = 'e-toolbar-item';\n/**\n * @hidden\n\n */\nexport var CLS_TB_EXTENDED = 'e-toolbar-extended';\n/**\n * @hidden\n\n */\nexport var CLS_TB_WRAP = 'e-toolbar-wrapper';\n/**\n * @hidden\n\n */\nexport var CLS_POPUP = 'e-popup';\n/**\n * @hidden\n\n */\nexport var CLS_SEPARATOR = 'e-separator';\n/**\n * @hidden\n\n */\nexport var CLS_MINIMIZE = 'e-minimize';\n/**\n * @hidden\n\n */\nexport var CLS_MAXIMIZE = 'e-maximize';\n/**\n * @hidden\n\n */\nexport var CLS_BACK = 'e-back';\n/**\n * @hidden\n\n */\nexport var CLS_SHOW = 'e-show';\n/**\n * @hidden\n\n */\nexport var CLS_HIDE = 'e-hide';\n/**\n * @hidden\n\n */\nexport var CLS_VISIBLE = 'e-visible';\n/**\n * @hidden\n\n */\nexport var CLS_FOCUS = 'e-focused';\n/**\n * @hidden\n\n */\nexport var CLS_RM_WHITE_SPACE = 'e-remove-white-space';\n/**\n * @hidden\n\n */\nexport var CLS_IMGRIGHT = 'e-imgright';\n/**\n * @hidden\n\n */\nexport var CLS_IMGLEFT = 'e-imgleft';\n/**\n * @hidden\n\n */\nexport var CLS_IMGCENTER = 'e-imgcenter';\n/**\n * @hidden\n\n */\nexport var CLS_IMGBREAK = 'e-imgbreak';\n/**\n * @hidden\n\n */\nexport var CLS_AUDIOBREAK = 'e-audio-break';\n/**\n * @hidden\n\n */\nexport var CLS_CLICKELEM = 'e-clickelem';\n/**\n * @hidden\n\n */\nexport var CLS_VID_CLICK_ELEM = 'e-video-clickelem';\n/**\n * @hidden\n\n */\nexport var CLS_AUDIOWRAP = 'e-audio-wrap';\n/**\n * @hidden\n\n */\nexport var CLS_VIDEOWRAP = 'e-video-wrap';\n/**\n * @hidden\n\n */\nexport var CLS_VIDEOBREAK = 'e-video-break';\n/**\n * @hidden\n\n */\nexport var CLS_CAPTION = 'e-img-caption';\n/**\n * @hidden\n\n */\nexport var CLS_RTE_CAPTION = 'e-rte-img-caption';\n/**\n * @hidden\n\n */\nexport var CLS_CAPINLINE = 'e-caption-inline';\n/**\n * @hidden\n\n */\nexport var CLS_IMGINLINE = 'e-imginline';\n/**\n * @hidden\n\n */\nexport var CLS_AUDIOINLINE = 'e-audio-inline';\n/**\n * @hidden\n\n */\nexport var CLS_VIDEOINLINE = 'e-video-inline';\n/**\n * @hidden\n\n */\nexport var CLS_COUNT = 'e-rte-character-count';\n/**\n * @hidden\n\n */\nexport var CLS_WARNING = 'e-warning';\n/**\n * @hidden\n\n */\nexport var CLS_ERROR = 'e-error';\n/**\n * @hidden\n\n */\nexport var CLS_ICONS = 'e-icons';\n/**\n * @hidden\n\n */\nexport var CLS_ACTIVE = 'e-active';\n/**\n * @hidden\n\n */\nexport var CLS_EXPAND_OPEN = 'e-expand-open';\n/**\n * @hidden\n\n */\nexport var CLS_RTE_ELEMENTS = 'e-rte-elements';\n/**\n * @hidden\n\n */\nexport var CLS_TB_BTN = 'e-tbar-btn';\n/**\n * @hidden\n\n */\nexport var CLS_HR_SEPARATOR = 'e-rte-horizontal-separator';\n/**\n * @hidden\n\n */\nexport var CLS_TB_IOS_FIX = 'e-tbar-ios-fixed';\n/**\n * @hidden\n\n */\nexport var CLS_LIST_PRIMARY_CONTENT = 'e-rte-list-primary-content';\n/**\n * @hidden\n\n */\nexport var CLS_NUMBERFORMATLIST_TB_BTN = 'e-rte-numberformatlist-dropdown';\n/**\n * @hidden\n\n */\nexport var CLS_BULLETFORMATLIST_TB_BTN = 'e-rte-bulletformatlist-dropdown';\n/**\n * @hidden\n\n */\nexport var CLS_FORMATS_TB_BTN = 'e-formats-tbar-btn';\n/**\n * @hidden\n\n */\nexport var CLS_FONT_NAME_TB_BTN = 'e-font-name-tbar-btn';\n/**\n * @hidden\n\n */\nexport var CLS_FONT_SIZE_TB_BTN = 'e-font-size-tbar-btn';\n/**\n * @hidden\n\n */\nexport var CLS_ALIGN_TB_BTN = 'e-alignment-tbar-btn';\n/**\n * @hidden\n\n */\nexport var CLS_FONT_COLOR_TARGET = 'e-rte-fontcolor-element';\n/**\n * @hidden\n\n */\nexport var CLS_BACKGROUND_COLOR_TARGET = 'e-rte-backgroundcolor-element';\n/**\n * @hidden\n\n */\nexport var CLS_COLOR_CONTENT = 'e-rte-color-content';\n/**\n * @hidden\n\n */\nexport var CLS_FONT_COLOR_DROPDOWN = 'e-rte-fontcolor-dropdown';\n/**\n * @hidden\n\n */\nexport var CLS_BACKGROUND_COLOR_DROPDOWN = 'e-rte-backgroundcolor-dropdown';\n/**\n * @hidden\n\n */\nexport var CLS_COLOR_PALETTE = 'e-rte-square-palette';\n/**\n * @hidden\n\n */\nexport var CLS_FONT_COLOR_PICKER = 'e-rte-fontcolor-colorpicker';\n/**\n * @hidden\n\n */\nexport var CLS_BACKGROUND_COLOR_PICKER = 'e-rte-backgroundcolor-colorpicker';\n/**\n * @hidden\n\n */\nexport var CLS_RTE_READONLY = 'e-rte-readonly';\n/**\n * @hidden\n\n */\nexport var CLS_TABLE_SEL = 'e-cell-select';\n/**\n * @hidden\n\n */\nexport var CLS_TB_DASH_BOR = 'e-dashed-border';\n/**\n * @hidden\n\n */\nexport var CLS_TB_ALT_BOR = 'e-alternate-border';\n/**\n * @hidden\n\n */\nexport var CLS_TB_COL_RES = 'e-column-resize';\n/**\n * @hidden\n\n */\nexport var CLS_TB_ROW_RES = 'e-row-resize';\n/**\n * @hidden\n\n */\nexport var CLS_TB_BOX_RES = 'e-table-box';\n/**\n * @hidden\n\n */\nexport var CLS_RTE_HIDDEN = 'e-rte-hidden';\n/**\n * @hidden\n\n */\nexport var CLS_RTE_PASTE_KEEP_FORMAT = 'e-rte-keepformat';\n/**\n * @hidden\n\n */\nexport var CLS_RTE_PASTE_REMOVE_FORMAT = 'e-rte-removeformat';\n/**\n * @hidden\n\n */\nexport var CLS_RTE_PASTE_PLAIN_FORMAT = 'e-rte-plainformat';\n/**\n * @hidden\n\n */\nexport var CLS_RTE_PASTE_OK = 'e-rte-pasteok';\n/**\n * @hidden\n\n */\nexport var CLS_RTE_PASTE_CANCEL = 'e-rte-pastecancel';\n/**\n * @hidden\n\n */\nexport var CLS_RTE_DIALOG_MIN_HEIGHT = 'e-rte-dialog-minheight';\n/**\n * @hidden\n\n */\nexport var CLS_RTE_RES_HANDLE = 'e-resize-handle';\n/**\n * @hidden\n\n */\nexport var CLS_RTE_RES_EAST = 'e-south-east';\n/**\n * @hidden\n\n */\nexport var CLS_RTE_IMAGE = 'e-rte-image';\n/**\n * @hidden\n\n */\nexport var CLS_RESIZE = 'e-resize';\n/**\n * @hidden\n\n */\nexport var CLS_IMG_FOCUS = 'e-img-focus';\n/**\n * @hidden\n\n */\nexport var CLS_AUD_FOCUS = 'e-audio-focus';\n/**\n * @hidden\n\n */\nexport var CLS_VID_FOCUS = 'e-video-focus';\n/**\n * @hidden\n\n */\nexport var CLS_RTE_DRAG_IMAGE = 'e-rte-drag-image';\n/**\n * @hidden\n\n */\nexport var CLS_RTE_UPLOAD_POPUP = 'e-rte-upload-popup';\n/**\n * @hidden\n\n */\nexport var CLS_POPUP_OPEN = 'e-popup-open';\n/**\n * @hidden\n\n */\nexport var CLS_IMG_RESIZE = 'e-img-resize';\n/**\n * @hidden\n\n */\nexport var CLS_DROPAREA = 'e-droparea';\n/**\n * @hidden\n\n */\nexport var CLS_IMG_INNER = 'e-img-inner';\n/**\n * @hidden\n\n */\nexport var CLS_UPLOAD_FILES = 'e-upload-files';\n/**\n * @hidden\n\n */\nexport var CLS_RTE_DIALOG_UPLOAD = 'e-rte-dialog-upload';\n/**\n * @hidden\n\n */\nexport var CLS_RTE_RES_CNT = 'e-rte-resize';\n/**\n * @hidden\n\n */\nexport var CLS_CUSTOM_TILE = 'e-custom-tile';\n/**\n * @hidden\n\n */\nexport var CLS_NOCOLOR_ITEM = 'e-nocolor-item';\n/**\n * @hidden\n\n */\nexport var CLS_TABLE = 'e-rte-table';\n/**\n * @hidden\n\n */\nexport var CLS_TABLE_BORDER = 'e-rte-table-border';\n/**\n * @hidden\n\n */\nexport var CLS_RTE_TABLE_RESIZE = 'e-rte-table-resize';\n/**\n * @hidden\n\n */\nexport var CLS_RTE_FIXED_TB_EXPAND = 'e-rte-fixed-tb-expand';\n/**\n * @hidden\n\n */\nexport var CLS_RTE_TB_ENABLED = 'e-rte-toolbar-enabled';\n/**\n * @hidden\n\n */\nexport var CLS_RTE_RES_WEST = 'e-south-west';\n","import { RenderType } from '../base/enum';\nimport * as events from '../base/constant';\n/**\n * Content module is used to render Rich Text Editor content\n *\n * @hidden\n\n */\nvar Render = /** @class */ (function () {\n /**\n * Constructor for render module\n *\n * @param {IRichTextEditor} parent - specifies the parent\n * @param {ServiceLocator} locator - specifies the locator.\n * @returns {void}\n */\n function Render(parent, locator) {\n this.parent = parent;\n this.locator = locator;\n this.renderer = this.locator.getService('rendererFactory');\n this.addEventListener();\n }\n /**\n * To initialize Rich Text Editor header, content and footer rendering\n *\n * @returns {void}\n * @hidden\n\n */\n Render.prototype.render = function () {\n // eslint-disable-next-line\n var rteObj = this.parent;\n this.contentRenderer = this.renderer.getRenderer(RenderType.Content);\n this.contentRenderer.renderPanel();\n };\n /**\n * Refresh the entire RichTextEditor.\n *\n * @param {NotifyArgs} e - specifies the arguments.\n * @returns {void}\n */\n Render.prototype.refresh = function (e) {\n if (e === void 0) { e = { requestType: 'refresh' }; }\n this.parent.notify(e.requestType + \"-begin\", e);\n };\n /**\n * Destroy the entire RichTextEditor.\n *\n * @returns {void}\n */\n Render.prototype.destroy = function () {\n this.removeEventListener();\n };\n Render.prototype.moduleDestroy = function () {\n this.parent = null;\n };\n Render.prototype.addEventListener = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n this.parent.on(events.modelChanged, this.refresh, this);\n this.parent.on(events.keyUp, this.keyUp, this);\n this.parent.on(events.moduleDestroy, this.moduleDestroy, this);\n };\n Render.prototype.removeEventListener = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n this.parent.off(events.modelChanged, this.refresh);\n this.parent.off(events.keyUp, this.keyUp);\n this.parent.off(events.moduleDestroy, this.moduleDestroy);\n };\n Render.prototype.keyUp = function (e) {\n if (this.parent.editorMode === 'HTML') {\n switch (e.args.which) {\n case 46:\n case 8:\n // eslint-disable-next-line\n var childNodes = this.parent.contentModule.getEditPanel().childNodes;\n if ((childNodes.length === 0) ||\n (childNodes.length === 1 && childNodes[0].childNodes.length === 0 && ((childNodes[0].tagName === 'BR') ||\n ((childNodes[0].tagName === 'P' || childNodes[0].tagName === 'DIV') && childNodes[0].textContent === '')))) {\n var node = this.parent.contentModule.getEditPanel();\n if (this.parent.enterKey === 'DIV') {\n node.innerHTML = '

';\n }\n else if (this.parent.enterKey === 'BR') {\n node.innerHTML = '
';\n }\n else {\n node.innerHTML = '


';\n }\n this.parent.formatter.editorManager.nodeSelection.setCursorPoint(this.parent.contentModule.getDocument(), node.childNodes[0], 0);\n }\n break;\n }\n }\n };\n return Render;\n}());\nexport { Render };\n","/**\n * Constant values for Common\n */\n/**\n * Keydown event trigger\n *\n * @hidden\n */\nexport var KEY_DOWN = 'keydown';\n/**\n * Undo and Redo action HTML plugin events\n *\n * @hidden\n */\nexport var ACTION = 'action';\n/**\n * Formats plugin events\n *\n * @hidden\n */\nexport var FORMAT_TYPE = 'format-type';\n/**\n * Keydown handler event trigger\n *\n * @hidden\n */\nexport var KEY_DOWN_HANDLER = 'keydown-handler';\n/**\n * List plugin events\n *\n * @hidden\n */\nexport var LIST_TYPE = 'list-type';\n/**\n * Keyup handler event trigger\n *\n * @hidden\n */\nexport var KEY_UP_HANDLER = 'keyup-handler';\n/**\n * Keyup event trigger\n *\n * @hidden\n */\nexport var KEY_UP = 'keyup';\n/**\n * Model changed plugin event trigger\n *\n * @hidden\n */\nexport var MODEL_CHANGED_PLUGIN = 'model_changed_plugin';\n/**\n * Model changed event trigger\n *\n * @hidden\n */\nexport var MODEL_CHANGED = 'model_changed';\n/**\n * PasteCleanup plugin for MSWord content\n *\n * @hidden\n */\nexport var MS_WORD_CLEANUP_PLUGIN = 'ms_word_cleanup_plugin';\n/**\n * PasteCleanup for MSWord content\n *\n * @hidden\n */\nexport var MS_WORD_CLEANUP = 'ms_word_cleanup';\n/**\n * ActionBegin event callback\n *\n * @hidden\n */\nexport var ON_BEGIN = 'onBegin';\n/**\n * Callback for spacelist action\n *\n * @hidden\n */\nexport var SPACE_ACTION = 'actionBegin';\n/**\n * Format painter event constant\n *\n * @hidden\n */\nexport var FORMAT_PAINTER_ACTIONS = 'format_painter_actions';\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, NotifyPropertyChanges, Event } from '@syncfusion/ej2-base';\nimport { Base } from '@syncfusion/ej2-base';\nvar keyCode = {\n 'backspace': 8,\n 'tab': 9,\n 'enter': 13,\n 'shift': 16,\n 'control': 17,\n 'alt': 18,\n 'pause': 19,\n 'capslock': 20,\n 'space': 32,\n 'escape': 27,\n 'pageup': 33,\n 'pagedown': 34,\n 'end': 35,\n 'home': 36,\n 'leftarrow': 37,\n 'uparrow': 38,\n 'rightarrow': 39,\n 'downarrow': 40,\n 'insert': 45,\n 'delete': 46,\n 'f1': 112,\n 'f2': 113,\n 'f3': 114,\n 'f4': 115,\n 'f5': 116,\n 'f6': 117,\n 'f7': 118,\n 'f8': 119,\n 'f9': 120,\n 'f10': 121,\n 'f11': 122,\n 'f12': 123,\n 'semicolon': 186,\n 'plus': 187,\n 'comma': 188,\n 'minus': 189,\n 'dot': 190,\n 'forwardslash': 191,\n 'graveaccent': 192,\n 'openbracket': 219,\n 'backslash': 220,\n 'closebracket': 221,\n 'singlequote': 222,\n ']': 221,\n '[': 219,\n '=': 187\n};\n/**\n * KeyboardEvents class enables you to bind key action desired key combinations for ex., Ctrl+A, Delete, Alt+Space etc.\n * ```html\n *
;\n * \n * ```\n *\n * @hidden\n\n */\nvar KeyboardEvents = /** @class */ (function (_super) {\n __extends(KeyboardEvents, _super);\n /**\n * Initializes the KeyboardEvents\n *\n * @param {HTMLElement} element - specifies the elements.\n * @param {KeyboardEventsModel} options - specify the options\n */\n function KeyboardEvents(element, options) {\n var _this = _super.call(this, options, element) || this;\n /**\n * To handle a key press event returns null\n *\n * @param {KeyboardEventArgs} e - specifies the event arguments.\n * @returns {void}\n */\n _this.keyPressHandler = function (e) {\n /* eslint-disable */\n var isAltKey = e.altKey;\n var isCtrlKey = e.ctrlKey;\n var isShiftKey = e.shiftKey;\n var isMetaKey = e.metaKey;\n /* eslint-enable */\n var curkeyCode = e.which;\n var keys = Object.keys(_this.keyConfigs);\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n var configCollection = _this.keyConfigs[\"\" + key].split(',');\n for (var _a = 0, configCollection_1 = configCollection; _a < configCollection_1.length; _a++) {\n var rconfig = configCollection_1[_a];\n var rKeyObj = KeyboardEvents_1.getKeyConfigData(rconfig.trim());\n if (isAltKey === rKeyObj.altKey && (isCtrlKey === rKeyObj.ctrlKey || isMetaKey) &&\n isShiftKey === rKeyObj.shiftKey && curkeyCode === rKeyObj.keyCode) {\n e.action = key;\n }\n }\n }\n if (_this.keyAction) {\n _this.keyAction(e);\n }\n };\n _this.bind();\n return _this;\n }\n KeyboardEvents_1 = KeyboardEvents;\n /**\n * Unwire bound events and destroy the instance.\n *\n * @returns {void}\n */\n KeyboardEvents.prototype.destroy = function () {\n this.unwireEvents();\n _super.prototype.destroy.call(this);\n };\n /**\n * Function can be used to specify certain action if a property is changed\n *\n * @param {KeyboardEventsModel} newProp - specifies the keyboard event.\n * @param {KeyboardEventsModel} oldProp - specifies the old property.\n * @returns {void}\n * @private\n */\n // eslint-disable-next-line\n KeyboardEvents.prototype.onPropertyChanged = function (newProp, oldProp) {\n // No code are needed\n };\n KeyboardEvents.prototype.bind = function () {\n this.wireEvents();\n };\n /**\n * To get the module name, returns 'keyboard'.\n *\n * @returns {void}\n */\n KeyboardEvents.prototype.getModuleName = function () {\n return 'keyboard';\n };\n /**\n * Wiring event handlers to events\n *\n * @returns {void}\n */\n KeyboardEvents.prototype.wireEvents = function () {\n this.element.addEventListener(this.eventName, this.keyPressHandler);\n };\n /**\n * Unwiring event handlers to events\n *\n * @returns {void}\n */\n KeyboardEvents.prototype.unwireEvents = function () {\n this.element.removeEventListener(this.eventName, this.keyPressHandler);\n };\n /**\n * To get the key configuration data\n *\n * @param {string} config - configuration data\n * @returns {KeyData} - specifies the key data\n */\n KeyboardEvents.getKeyConfigData = function (config) {\n if (config in this.configCache) {\n return this.configCache[\"\" + config];\n }\n var keys = config.toLowerCase().split('+');\n var keyData = {\n altKey: (keys.indexOf('alt') !== -1 ? true : false),\n ctrlKey: (keys.indexOf('ctrl') !== -1 ? true : false),\n shiftKey: (keys.indexOf('shift') !== -1 ? true : false),\n keyCode: null\n };\n if (keys[keys.length - 1].length > 1 && !!Number(keys[keys.length - 1])) {\n keyData.keyCode = Number(keys[keys.length - 1]);\n }\n else {\n keyData.keyCode = KeyboardEvents_1.getKeyCode(keys[keys.length - 1]);\n }\n KeyboardEvents_1.configCache[\"\" + config] = keyData;\n return keyData;\n };\n // Return the keycode value as string\n KeyboardEvents.getKeyCode = function (keyVal) {\n return keyCode[\"\" + keyVal] || keyVal.toUpperCase().charCodeAt(0);\n };\n var KeyboardEvents_1;\n KeyboardEvents.configCache = {};\n __decorate([\n Property({})\n ], KeyboardEvents.prototype, \"keyConfigs\", void 0);\n __decorate([\n Property('keyup')\n ], KeyboardEvents.prototype, \"eventName\", void 0);\n __decorate([\n Event()\n ], KeyboardEvents.prototype, \"keyAction\", void 0);\n KeyboardEvents = KeyboardEvents_1 = __decorate([\n NotifyPropertyChanges\n ], KeyboardEvents);\n return KeyboardEvents;\n}(Base));\nexport { KeyboardEvents };\n","import { removeClass, selectAll, isNullOrUndefined, EventHandler } from '@syncfusion/ej2-base';\nimport * as events from '../base/constant';\nimport { CLS_EXPAND_OPEN, CLS_TB_ITEM, CLS_ACTIVE } from '../base/classes';\nimport * as CONSTANT from '../../common/constant';\nimport { RenderType } from '../base/enum';\nimport { KeyboardEvents } from '../actions/keyboard';\n/**\n * Content module is used to render Rich Text Editor content\n *\n * @hidden\n\n */\nvar ViewSource = /** @class */ (function () {\n /**\n * Constructor for view source module\n *\n * @param {IRichTextEditor} parent - specifies the parent element.\n * @param {ServiceLocator} locator - specifies the locator.\n * @returns {void}\n */\n function ViewSource(parent, locator) {\n this.parent = parent;\n var serviceLocator = locator;\n this.rendererFactory = serviceLocator.getService('rendererFactory');\n this.addEventListener();\n }\n ViewSource.prototype.addEventListener = function () {\n this.parent.on(events.sourceCode, this.sourceCode, this);\n this.parent.on(events.initialEnd, this.onInitialEnd, this);\n this.parent.on(events.updateSource, this.updateSourceCode, this);\n this.parent.on(events.destroy, this.destroy, this);\n this.parent.on(events.moduleDestroy, this.moduleDestroy, this);\n };\n ViewSource.prototype.onInitialEnd = function () {\n this.parent.formatter.editorManager.observer.on(CONSTANT.KEY_DOWN_HANDLER, this.onKeyDown, this);\n };\n ViewSource.prototype.removeEventListener = function () {\n this.unWireEvent();\n this.parent.off(events.sourceCode, this.sourceCode);\n this.parent.off(events.updateSource, this.updateSourceCode);\n this.parent.off(events.initialEnd, this.onInitialEnd);\n this.parent.off(events.destroy, this.destroy);\n this.parent.off(events.moduleDestroy, this.moduleDestroy);\n this.parent.formatter.editorManager.observer.off(CONSTANT.KEY_DOWN_HANDLER, this.onKeyDown);\n };\n ViewSource.prototype.getSourceCode = function () {\n return this.parent.createElement('textarea', { className: 'e-rte-srctextarea' + ' ' + this.parent.cssClass });\n };\n ViewSource.prototype.wireEvent = function (element) {\n this.keyboardModule = new KeyboardEvents(element, {\n keyAction: this.previewKeyDown.bind(this), keyConfigs: this.parent.formatter.keyConfig, eventName: 'keydown'\n });\n EventHandler.add(this.previewElement, 'mousedown', this.mouseDownHandler, this);\n };\n ViewSource.prototype.unWireEvent = function () {\n if (this.keyboardModule) {\n this.keyboardModule.destroy();\n }\n if (this.previewElement) {\n EventHandler.remove(this.previewElement, 'mousedown', this.mouseDownHandler);\n }\n };\n ViewSource.prototype.wireBaseKeyDown = function () {\n this.parent.keyboardModule = new KeyboardEvents(this.contentModule.getEditPanel(), {\n keyAction: this.parent.keyDown.bind(this.parent), keyConfigs: this.parent.formatter.keyConfig, eventName: 'keydown'\n });\n };\n ViewSource.prototype.unWireBaseKeyDown = function () {\n this.parent.keyboardModule.destroy();\n };\n ViewSource.prototype.mouseDownHandler = function (e) {\n this.parent.notify(events.sourceCodeMouseDown, { args: e });\n };\n ViewSource.prototype.previewKeyDown = function (event) {\n switch (event.action) {\n case 'html-source':\n this.updateSourceCode(event);\n event.preventDefault();\n break;\n case 'toolbar-focus':\n if (this.parent.toolbarSettings.enable) {\n var selector = '.e-toolbar-item[title] [tabindex]';\n this.parent.toolbarModule.baseToolbar.toolbarObj.element.querySelector(selector).focus();\n }\n break;\n }\n };\n ViewSource.prototype.onKeyDown = function (e) {\n switch (e.event.action) {\n case 'html-source':\n e.event.preventDefault();\n this.sourceCode(e);\n e.callBack({\n requestType: 'SourceCode',\n editorMode: 'HTML',\n event: e.event\n });\n break;\n }\n };\n /**\n * sourceCode method\n *\n * @param {ClickEventArgs} args - specifies the click event.\n * @returns {void}\n * @hidden\n\n */\n ViewSource.prototype.sourceCode = function (args) {\n this.parent.isBlur = false;\n this.parent.trigger(events.actionBegin, { requestType: 'SourceCode', targetItem: 'SourceCode', args: args });\n var tbItems = selectAll('.' + CLS_TB_ITEM, this.parent.element);\n this.contentModule = this.rendererFactory.getRenderer(RenderType.Content);\n this.parent.notify(events.updateToolbarItem, {\n targetItem: 'SourceCode', updateItem: 'Preview',\n baseToolbar: this.parent.getBaseToolbarObject()\n });\n if (isNullOrUndefined(this.previewElement)) {\n this.previewElement = this.getSourceCode();\n }\n this.parent.updateValueData();\n if (this.parent.iframeSettings.enable) {\n var rteContent = void 0;\n if (isNullOrUndefined(this.parent.element.querySelector('#' + this.parent.element.id + '_source-view'))) {\n rteContent = this.parent.createElement('div', {\n className: 'e-source-content', id: this.parent.element.id + '_source-view'\n });\n }\n else {\n rteContent = this.parent.element.querySelector('#' + this.parent.element.id + '_source-view');\n }\n rteContent.appendChild(this.previewElement);\n this.parent.element.appendChild(rteContent);\n rteContent.style.height = this.contentModule.getPanel().style.height;\n rteContent.style.marginTop = this.contentModule.getPanel().style.marginTop;\n this.getPanel().value = this.getTextAreaValue();\n this.contentModule.getPanel().style.display = 'none';\n rteContent.style.display = 'block';\n this.getPanel().style.display = 'block';\n }\n else {\n this.contentModule.getPanel().appendChild(this.previewElement);\n this.getPanel().value = this.getTextAreaValue();\n this.contentModule.getEditPanel().style.display = 'none';\n this.previewElement.style.display = 'block';\n }\n this.parent.isBlur = false;\n this.parent.disableToolbarItem(this.parent.toolbarSettings.items);\n this.parent.enableToolbarItem('SourceCode');\n if (this.parent.getToolbar()) {\n removeClass([this.parent.getToolbar()], [CLS_EXPAND_OPEN]);\n }\n removeClass(tbItems, [CLS_ACTIVE]);\n this.parent.setContentHeight('sourceCode', true);\n this.wireEvent(this.previewElement);\n this.unWireBaseKeyDown();\n this.previewElement.focus();\n this.parent.updateValue();\n if (!isNullOrUndefined(this.parent.placeholder) && !this.parent.iframeSettings.enable) {\n var placeHolderWrapper = this.parent.element.querySelector('.rte-placeholder.e-rte-placeholder');\n placeHolderWrapper.style.display = 'none';\n }\n this.parent.trigger(events.actionComplete, { requestType: 'SourceCode', targetItem: 'SourceCode', args: args });\n this.parent.invokeChangeEvent();\n };\n /**\n * updateSourceCode method\n *\n * @param {ClickEventArgs} args - specifies the click event.\n * @returns {void}\n * @hidden\n\n */\n ViewSource.prototype.updateSourceCode = function (args) {\n this.parent.isBlur = false;\n this.parent.trigger(events.actionBegin, { requestType: 'Preview', targetItem: 'Preview', args: args });\n var editHTML = this.getPanel();\n this.parent.notify(events.updateToolbarItem, {\n targetItem: 'Preview', updateItem: 'SourceCode',\n baseToolbar: this.parent.getBaseToolbarObject()\n });\n var serializeValue = this.parent.serializeValue(editHTML.value);\n var value;\n if (serializeValue === null || serializeValue === '') {\n if (this.parent.enterKey === 'DIV') {\n value = '

';\n }\n else if (this.parent.enterKey === 'BR') {\n value = '
';\n }\n else {\n value = '


';\n }\n }\n else {\n value = serializeValue;\n }\n if (this.parent.iframeSettings.enable) {\n editHTML.parentElement.style.display = 'none';\n editHTML.style.display = 'none';\n this.contentModule.getPanel().style.display = 'block';\n this.contentModule.getEditPanel().innerHTML = value;\n }\n else {\n editHTML.style.display = 'none';\n this.contentModule.getEditPanel().style.display = 'block';\n this.contentModule.getEditPanel().innerHTML = value;\n }\n this.parent.isBlur = false;\n this.parent.enableToolbarItem(this.parent.toolbarSettings.items);\n if (this.parent.getToolbar()) {\n removeClass([this.parent.getToolbar()], [CLS_EXPAND_OPEN]);\n }\n this.parent.setContentHeight('preview', true);\n this.unWireEvent();\n this.wireBaseKeyDown();\n this.contentModule.getEditPanel().focus();\n this.parent.updateValue();\n if (!isNullOrUndefined(this.parent.placeholder) && this.contentModule.getEditPanel().innerText.length === 0) {\n var placeHolderWrapper = this.parent.element.querySelector('.rte-placeholder.e-rte-placeholder');\n placeHolderWrapper.style.display = 'block';\n }\n this.parent.trigger(events.actionComplete, { requestType: 'Preview', targetItem: 'Preview', args: args });\n this.parent.formatter.enableUndo(this.parent);\n this.parent.addAudioVideoWrapper();\n this.parent.invokeChangeEvent();\n this.parent.notify(events.tableclass, {});\n };\n ViewSource.prototype.getTextAreaValue = function () {\n return (this.contentModule.getEditPanel().innerHTML === '


') ||\n (this.contentModule.getEditPanel().innerHTML === '

') ||\n (this.contentModule.getEditPanel().innerHTML === '
') ||\n (this.contentModule.getEditPanel().childNodes.length === 1 &&\n (this.contentModule.getEditPanel().childNodes[0].tagName === 'P' &&\n this.contentModule.getEditPanel().innerHTML.length === 7) ||\n (this.contentModule.getEditPanel().childNodes[0].tagName === 'DIV' &&\n this.contentModule.getEditPanel().innerHTML.length === 11)) ? '' : this.parent.value;\n };\n /**\n * getPanel method\n *\n * @returns {void}\n * @hidden\n\n */\n ViewSource.prototype.getPanel = function () {\n return this.parent.element && this.parent.element.querySelector('.e-rte-srctextarea');\n };\n /**\n * getViewPanel method\n *\n * @returns {void}\n * @hidden\n\n */\n ViewSource.prototype.getViewPanel = function () {\n return (this.parent.iframeSettings.enable && this.getPanel()) ? this.getPanel().parentElement : this.getPanel();\n };\n /**\n * Destroy the entire RichTextEditor.\n *\n * @returns {void}\n * @hidden\n\n */\n ViewSource.prototype.destroy = function () {\n this.removeEventListener();\n };\n ViewSource.prototype.moduleDestroy = function () {\n this.parent = null;\n };\n return ViewSource;\n}());\nexport { ViewSource };\n","/**\n * @hidden\n\n */\nexport var executeGroup = {\n 'bold': {\n command: 'Style',\n subCommand: 'Bold',\n value: 'strong'\n },\n 'italic': {\n command: 'Style',\n subCommand: 'Italic',\n value: 'em'\n },\n 'underline': {\n command: 'Style',\n subCommand: 'Underline',\n value: 'span'\n },\n 'strikeThrough': {\n command: 'Style',\n subCommand: 'StrikeThrough',\n value: 'span'\n },\n 'insertCode': {\n command: 'Formats',\n subCommand: 'Pre',\n value: 'pre'\n },\n 'superscript': {\n command: 'Effects',\n subCommand: 'SuperScript',\n value: 'sup'\n },\n 'subscript': {\n command: 'Effects',\n subCommand: 'SubScript',\n value: 'sub'\n },\n 'uppercase': {\n command: 'Casing',\n subCommand: 'UpperCase'\n },\n 'lowercase': {\n command: 'Casing',\n subCommand: 'LowerCase'\n },\n 'fontColor': {\n command: 'font',\n subCommand: 'fontcolor',\n value: '#ff0000'\n },\n 'fontName': {\n command: 'font',\n subCommand: 'fontname',\n value: 'Segoe UI'\n },\n 'fontSize': {\n command: 'font',\n subCommand: 'fontsize',\n value: '10pt'\n },\n 'backColor': {\n command: 'font',\n subCommand: 'backgroundcolor',\n value: '#ffff00'\n },\n 'justifyCenter': {\n command: 'Alignments',\n subCommand: 'JustifyCenter'\n },\n 'justifyFull': {\n command: 'Alignments',\n subCommand: 'JustifyFull'\n },\n 'justifyLeft': {\n command: 'Alignments',\n subCommand: 'JustifyLeft'\n },\n 'justifyRight': {\n command: 'Alignments',\n subCommand: 'JustifyRight'\n },\n 'undo': {\n command: 'Actions',\n subCommand: 'Undo'\n },\n 'redo': {\n command: 'Actions',\n subCommand: 'Redo'\n },\n 'createLink': {\n command: 'Links',\n subCommand: 'createLink'\n },\n 'editLink': {\n command: 'Links',\n subCommand: 'createLink'\n },\n 'createImage': {\n command: 'Images',\n subCommand: 'Images'\n },\n 'formatBlock': {\n command: 'Formats',\n value: 'P'\n },\n 'heading': {\n command: 'Formats',\n value: 'H1'\n },\n 'indent': {\n command: 'Indents',\n subCommand: 'Indent'\n },\n 'outdent': {\n command: 'Indents',\n subCommand: 'Outdent'\n },\n 'insertHTML': {\n command: 'InsertHTML',\n subCommand: 'InsertHTML',\n value: ''\n },\n 'insertText': {\n command: 'InsertText',\n subCommand: 'InsertText',\n value: ''\n },\n 'insertHorizontalRule': {\n command: 'InsertHTML',\n subCommand: 'InsertHTML',\n value: '
'\n },\n 'insertImage': {\n command: 'Images',\n subCommand: 'Image'\n },\n 'insertAudio': {\n command: 'Audios',\n subCommand: 'Audio'\n },\n 'insertVideo': {\n command: 'Videos',\n subCommand: 'Video'\n },\n 'editImage': {\n command: 'Images',\n subCommand: 'Image'\n },\n 'insertTable': {\n command: 'Table',\n subCommand: 'CreateTable'\n },\n 'insertBrOnReturn': {\n command: 'InsertHTML',\n subCommand: 'InsertHTML',\n value: '
'\n },\n 'insertOrderedList': {\n command: 'Lists',\n value: 'OL'\n },\n 'insertUnorderedList': {\n command: 'Lists',\n value: 'UL'\n },\n 'insertParagraph': {\n command: 'Formats',\n value: 'P'\n },\n 'removeFormat': {\n command: 'Clear',\n subCommand: 'ClearFormat'\n },\n 'copyFormatPainter': {\n command: 'FormatPainter',\n value: 'format-copy'\n },\n 'applyFormatPainter': {\n command: 'FormatPainter',\n value: 'format-paste'\n },\n 'escapeFormatPainter': {\n command: 'FormatPainter',\n value: 'escape'\n }\n};\n","import { isNullOrUndefined } from '@syncfusion/ej2-base';\n/**\n * ServiceLocator\n *\n * @hidden\n\n */\nvar ServiceLocator = /** @class */ (function () {\n function ServiceLocator() {\n this.services = {};\n }\n /* eslint-disable */\n /**\n * register method\n *\n * @param {string} name - specifies the name.\n * @param {T} type - specifies the type.\n * @returns {void}\n * @hidden\n\n */\n /* eslint-enable */\n ServiceLocator.prototype.register = function (name, type) {\n if (isNullOrUndefined(this.services[\"\" + name])) {\n this.services[\"\" + name] = type;\n }\n };\n /**\n * getService method\n *\n * @param {string} name - specifies the name.\n * @returns {void}\n * @hidden\n\n */\n ServiceLocator.prototype.getService = function (name) {\n if (isNullOrUndefined(this.services[\"\" + name])) {\n // eslint-disable-next-line\n throw \"The service \" + name + \" is not registered\";\n }\n return this.services[\"\" + name];\n };\n return ServiceLocator;\n}());\nexport { ServiceLocator };\n","import { isNullOrUndefined, getEnumValue } from '@syncfusion/ej2-base';\nimport { RenderType } from '../base/enum';\n/**\n * RendererFactory\n *\n * @hidden\n\n */\nvar RendererFactory = /** @class */ (function () {\n function RendererFactory() {\n this.rendererMap = {};\n }\n /**\n * addRenderer method\n *\n * @param {RenderType} name - specifies the render type\n * @param {IRenderer} type - specifies the renderer.\n * @returns {void}\n * @hidden\n\n */\n RendererFactory.prototype.addRenderer = function (name, type) {\n var rName = getEnumValue(RenderType, name);\n if (isNullOrUndefined(this.rendererMap[\"\" + rName])) {\n this.rendererMap[\"\" + rName] = type;\n }\n };\n /**\n * getRenderer method\n *\n * @param {RenderType} name - specifies the render type\n * @returns {void}\n * @hidden\n\n */\n RendererFactory.prototype.getRenderer = function (name) {\n var rName = getEnumValue(RenderType, name);\n if (isNullOrUndefined(this.rendererMap[\"\" + rName])) {\n // eslint-disable-next-line\n throw \"The renderer \" + rName + \" is not found\";\n }\n else {\n return this.rendererMap[\"\" + rName];\n }\n };\n return RendererFactory;\n}());\nexport { RendererFactory };\n","import * as events from '../base/constant';\n/**\n * `ExecCommandCallBack` module is used to run the editor manager command\n */\nvar ExecCommandCallBack = /** @class */ (function () {\n function ExecCommandCallBack(parent) {\n this.parent = parent;\n this.addEventListener();\n }\n ExecCommandCallBack.prototype.addEventListener = function () {\n this.parent.on(events.execCommandCallBack, this.commandCallBack, this);\n this.parent.on(events.destroy, this.removeEventListener, this);\n };\n ExecCommandCallBack.prototype.commandCallBack = function (args) {\n if (args.requestType !== 'Undo' && args.requestType !== 'Redo') {\n this.parent.formatter.saveData();\n }\n this.parent.notify(events.toolbarRefresh, { args: args });\n this.parent.notify(events.count, {});\n };\n ExecCommandCallBack.prototype.removeEventListener = function () {\n this.parent.off(events.execCommandCallBack, this.commandCallBack);\n this.parent.off(events.destroy, this.removeEventListener);\n };\n return ExecCommandCallBack;\n}());\nexport { ExecCommandCallBack };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, ChildProperty } from '@syncfusion/ej2-base';\n/**\n * Specifies the Ajax settings of the File Manager.\n */\nvar AjaxSettings = /** @class */ (function (_super) {\n __extends(AjaxSettings, _super);\n function AjaxSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(null)\n ], AjaxSettings.prototype, \"downloadUrl\", void 0);\n __decorate([\n Property(null)\n ], AjaxSettings.prototype, \"getImageUrl\", void 0);\n __decorate([\n Property(null)\n ], AjaxSettings.prototype, \"uploadUrl\", void 0);\n __decorate([\n Property(null)\n ], AjaxSettings.prototype, \"url\", void 0);\n return AjaxSettings;\n}(ChildProperty));\nexport { AjaxSettings };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, ChildProperty } from '@syncfusion/ej2-base';\nexport var fileItems = ['Open', '|', 'Cut', 'Copy', '|', 'Delete', 'Download', 'Rename', '|', 'Details'];\nexport var folderItems = ['Open', '|', 'Cut', 'Copy', 'Paste', '|', 'Delete', 'Rename', 'Download', '|', 'Details'];\nexport var layoutItems = [\n 'SortBy', 'View', 'Refresh', '|', 'Paste', '|', 'NewFolder', 'Upload', '|', 'Details', '|', 'SelectAll'\n];\n/**\n * Specifies the ContextMenu settings of the File Manager.\n */\nvar ContextMenuSettings = /** @class */ (function (_super) {\n __extends(ContextMenuSettings, _super);\n function ContextMenuSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(fileItems)\n ], ContextMenuSettings.prototype, \"file\", void 0);\n __decorate([\n Property(folderItems)\n ], ContextMenuSettings.prototype, \"folder\", void 0);\n __decorate([\n Property(layoutItems)\n ], ContextMenuSettings.prototype, \"layout\", void 0);\n __decorate([\n Property(true)\n ], ContextMenuSettings.prototype, \"visible\", void 0);\n return ContextMenuSettings;\n}(ChildProperty));\nexport { ContextMenuSettings };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, ChildProperty } from '@syncfusion/ej2-base';\n/**\n * Specifies the columns in the details view of the file manager.\n */\nexport var columnArray = [\n {\n field: 'name', headerText: 'Name', minWidth: 120, isPrimaryKey: true,\n template: '${name}', customAttributes: { class: 'e-fe-grid-name' }\n },\n {\n field: '_fm_modified', headerText: 'DateModified', type: 'dateTime',\n format: 'MMMM dd, yyyy HH:mm', minWidth: 120, width: '190'\n },\n {\n field: 'size', headerText: 'Size', minWidth: 90, width: '110', template: '${size}', format: 'n2'\n }\n];\n/**\n * Specifies the grid settings of the File Manager.\n */\nvar DetailsViewSettings = /** @class */ (function (_super) {\n __extends(DetailsViewSettings, _super);\n function DetailsViewSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(true)\n ], DetailsViewSettings.prototype, \"columnResizing\", void 0);\n __decorate([\n Property(columnArray)\n ], DetailsViewSettings.prototype, \"columns\", void 0);\n return DetailsViewSettings;\n}(ChildProperty));\nexport { DetailsViewSettings };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, ChildProperty } from '@syncfusion/ej2-base';\n/**\n * Specifies the navigationpane settings of the File Manager.\n */\nvar NavigationPaneSettings = /** @class */ (function (_super) {\n __extends(NavigationPaneSettings, _super);\n function NavigationPaneSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('650px')\n ], NavigationPaneSettings.prototype, \"maxWidth\", void 0);\n __decorate([\n Property('240px')\n ], NavigationPaneSettings.prototype, \"minWidth\", void 0);\n __decorate([\n Property(true)\n ], NavigationPaneSettings.prototype, \"visible\", void 0);\n __decorate([\n Property('None')\n ], NavigationPaneSettings.prototype, \"sortOrder\", void 0);\n return NavigationPaneSettings;\n}(ChildProperty));\nexport { NavigationPaneSettings };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, ChildProperty } from '@syncfusion/ej2-base';\n/**\n * Specifies the Search settings of the File Manager.\n */\nvar SearchSettings = /** @class */ (function (_super) {\n __extends(SearchSettings, _super);\n function SearchSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(true)\n ], SearchSettings.prototype, \"allowSearchOnTyping\", void 0);\n __decorate([\n Property('contains')\n ], SearchSettings.prototype, \"filterType\", void 0);\n __decorate([\n Property(true)\n ], SearchSettings.prototype, \"ignoreCase\", void 0);\n __decorate([\n Property(null)\n ], SearchSettings.prototype, \"placeholder\", void 0);\n return SearchSettings;\n}(ChildProperty));\nexport { SearchSettings };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, ChildProperty } from '@syncfusion/ej2-base';\nexport var toolbarItems = ['NewFolder', 'Upload', 'Cut', 'Copy', 'Paste', 'Delete', 'Download', 'Rename',\n 'SortBy', 'Refresh', 'Selection', 'View', 'Details'];\n/**\n * Specifies the Toolbar settings of the FileManager.\n */\nvar ToolbarSettings = /** @class */ (function (_super) {\n __extends(ToolbarSettings, _super);\n function ToolbarSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(toolbarItems)\n ], ToolbarSettings.prototype, \"items\", void 0);\n __decorate([\n Property(true)\n ], ToolbarSettings.prototype, \"visible\", void 0);\n return ToolbarSettings;\n}(ChildProperty));\nexport { ToolbarSettings };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, ChildProperty } from '@syncfusion/ej2-base';\n/**\n * Specifies the Ajax settings of the File Manager.\n */\nvar UploadSettings = /** @class */ (function (_super) {\n __extends(UploadSettings, _super);\n function UploadSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], UploadSettings.prototype, \"allowedExtensions\", void 0);\n __decorate([\n Property(true)\n ], UploadSettings.prototype, \"autoUpload\", void 0);\n __decorate([\n Property(false)\n ], UploadSettings.prototype, \"autoClose\", void 0);\n __decorate([\n Property(false)\n ], UploadSettings.prototype, \"directoryUpload\", void 0);\n __decorate([\n Property(0)\n ], UploadSettings.prototype, \"minFileSize\", void 0);\n __decorate([\n Property(30000000)\n ], UploadSettings.prototype, \"maxFileSize\", void 0);\n return UploadSettings;\n}(ChildProperty));\nexport { UploadSettings };\n","/* eslint-disable */\n/**\n * Export items model\n */\nexport var templateItems = ['alignments', 'formats', 'fontname', 'fontsize', 'fontcolor', 'backgroundcolor', 'align', 'display', 'audiolayoutoption', 'videolayoutoption', 'videoalign', 'tablerows', 'tablecolumns', 'tablecell', 'tablecellhorizontalalign', 'tablecellverticalalign', 'styles', 'numberformatlist', 'bulletformatlist'];\nexport var tools = {\n 'alignments': {\n 'id': 'Alignments',\n 'icon': 'e-alignments',\n 'tooltip': 'Alignments',\n 'command': 'Alignments',\n 'subCommand': 'Alignments'\n },\n 'justifyleft': {\n 'id': 'JustifyLeft',\n 'icon': 'e-justify-left',\n 'tooltip': 'JustifyLeft',\n 'command': 'Alignments',\n 'subCommand': 'JustifyLeft'\n },\n 'justifycenter': {\n 'id': 'JustifyCenter',\n 'icon': 'e-justify-center',\n 'tooltip': 'JustifyCenter',\n 'command': 'Alignments',\n 'subCommand': 'JustifyCenter'\n },\n 'justifyright': {\n 'id': 'JustifyRight',\n 'icon': 'e-justify-right',\n 'tooltip': 'JustifyRight',\n 'command': 'Alignments',\n 'subCommand': 'JustifyRight'\n },\n 'justifyfull': {\n 'id': 'JustifyFull',\n 'icon': 'e-justify-full',\n 'tooltip': 'JustifyFull',\n 'command': 'Alignments',\n 'subCommand': 'JustifyFull'\n },\n 'fontname': {\n 'id': 'FontName',\n 'icon': 'e-font-name',\n 'tooltip': 'Font Name',\n 'command': 'Font',\n 'subCommand': 'FontName'\n },\n 'fontsize': {\n 'id': 'FontSize',\n 'icon': 'e-font-size',\n 'tooltip': 'Font Size',\n 'command': 'Font',\n 'subCommand': 'FontSize'\n },\n 'fontcolor': {\n 'id': 'FontColor',\n 'icon': 'e-rte-font-color',\n 'tooltip': 'Font Color',\n 'command': 'Font',\n 'subCommand': 'FontColor',\n 'value': '#ff0000ff'\n },\n 'backgroundcolor': {\n 'id': 'BackgroundColor',\n 'icon': 'e-background-color',\n 'tooltip': 'Background Color',\n 'command': 'Font',\n 'subCommand': 'BackgroundColor',\n 'value': '#ffff00ff'\n },\n 'bold': {\n 'id': 'Bold',\n 'icon': 'e-bold',\n 'tooltip': 'Bold',\n 'command': 'Style',\n 'subCommand': 'Bold'\n },\n 'italic': {\n 'id': 'Italic',\n 'icon': 'e-italic',\n 'tooltip': 'Italic',\n 'command': 'Style',\n 'subCommand': 'Italic'\n },\n 'underline': {\n 'id': 'Underline',\n 'icon': 'e-underline',\n 'tooltip': 'Underline',\n 'command': 'Style',\n 'subCommand': 'Underline'\n },\n 'strikethrough': {\n 'id': 'StrikeThrough',\n 'icon': 'e-strike-through',\n 'tooltip': 'StrikeThrough',\n 'command': 'Style',\n 'subCommand': 'StrikeThrough'\n },\n 'clearformat': {\n 'id': 'ClearFormat',\n 'icon': 'e-clear-format',\n 'tooltip': 'Clear Format',\n 'command': 'Clear',\n 'subCommand': 'ClearFormat'\n },\n 'clearall': {\n 'id': 'ClearAll',\n 'icon': 'e-clear-all',\n 'tooltip': 'Clear All',\n 'command': 'Clear',\n 'subCommand': 'ClearAll'\n },\n 'cut': {\n 'id': 'Cut',\n 'icon': 'e-cut',\n 'tooltip': 'Cut',\n 'command': 'ClipBoard',\n 'subCommand': 'Cut'\n },\n 'copy': {\n 'id': 'Copy',\n 'icon': 'e-copy',\n 'tooltip': 'Copy',\n 'command': 'ClipBoard',\n 'subCommand': 'Copy'\n },\n 'paste': {\n 'id': 'Paste',\n 'icon': 'e-paste',\n 'tooltip': 'Paste',\n 'command': 'ClipBoard',\n 'subCommand': 'Paste'\n },\n 'unorderedlist': {\n 'id': 'UnorderedList',\n 'icon': 'e-unorder-list',\n 'tooltip': 'Bulleted List',\n 'command': 'Lists',\n 'subCommand': 'UL'\n },\n 'orderedlist': {\n 'id': 'OrderedList',\n 'icon': 'e-order-list',\n 'tooltip': 'Numbered List',\n 'command': 'Lists',\n 'subCommand': 'OL'\n },\n 'numberformatlist': {\n 'id': 'NumberFormatList',\n 'icon': 'e-order-list',\n 'tooltip': 'Number Format List',\n 'command': 'NumberFormatList',\n 'subCommand': 'NumberFormatList'\n },\n 'bulletformatlist': {\n 'id': 'BulletFormatList',\n 'icon': 'e-unorder-list',\n 'tooltip': 'Bullet Format List',\n 'command': 'BulletFormatList',\n 'subCommand': 'BulletFormatList'\n },\n 'indent': {\n 'id': 'Indent',\n 'icon': 'e-indent',\n 'tooltip': 'Increase Indent',\n 'command': 'Indents',\n 'subCommand': 'Indent'\n },\n 'outdent': {\n 'id': 'Outdent',\n 'icon': 'e-outdent',\n 'tooltip': 'Decrease Indent',\n 'command': 'Indents',\n 'subCommand': 'Outdent'\n },\n 'undo': {\n 'id': 'Undo',\n 'icon': 'e-undo',\n 'tooltip': 'Undo',\n 'command': 'Actions',\n 'subCommand': 'Undo'\n },\n 'redo': {\n 'id': 'Redo',\n 'icon': 'e-redo',\n 'tooltip': 'Redo',\n 'command': 'Actions',\n 'subCommand': 'Redo'\n },\n 'superscript': {\n 'id': 'SuperScript',\n 'icon': 'e-super-script',\n 'tooltip': 'Superscript',\n 'command': 'Effects',\n 'subCommand': 'SuperScript'\n },\n 'subscript': {\n 'id': 'SubScript',\n 'icon': 'e-sub-script',\n 'tooltip': 'Subscript',\n 'command': 'Effects',\n 'subCommand': 'SubScript'\n },\n 'createlink': {\n 'id': 'CreateLink',\n 'icon': 'e-create-link',\n 'tooltip': 'Insert Hyperlink',\n 'command': 'Links',\n 'subCommand': 'CreateLink'\n },\n 'openlink': {\n 'id': 'OpenLink',\n 'icon': 'e-open-link',\n 'tooltip': 'Open Link',\n 'command': 'Links',\n 'subCommand': 'OpenLink'\n },\n 'editlink': {\n 'id': 'EditLink',\n 'icon': 'e-edit-link',\n 'tooltip': 'Edit Link',\n 'command': 'Links',\n 'subCommand': 'EditLink'\n },\n 'removelink': {\n 'id': 'RemoveLink',\n 'icon': 'e-remove-link',\n 'tooltip': 'Remove Link',\n 'command': 'Links',\n 'subCommand': 'RemoveLink'\n },\n 'image': {\n 'id': 'Image',\n 'icon': 'e-image',\n 'tooltip': 'Insert Image',\n 'command': 'Images',\n 'subCommand': 'Image'\n },\n 'audio': {\n 'id': 'Audio',\n 'icon': 'e-audio',\n 'tooltip': 'Insert Audio',\n 'command': 'Audios',\n 'subCommand': 'Audio'\n },\n 'video': {\n 'id': 'Video',\n 'icon': 'e-video',\n 'tooltip': 'Insert Video',\n 'command': 'Videos',\n 'subCommand': 'Video'\n },\n 'filemanager': {\n 'id': 'FileManager',\n 'icon': 'e-rte-file-manager',\n 'tooltip': 'File Manager',\n 'command': 'Files',\n 'subCommand': 'File'\n },\n 'createtable': {\n 'id': 'CreateTable',\n 'icon': 'e-create-table',\n 'tooltip': 'Create Table',\n 'command': 'Table',\n 'subCommand': 'CreateTable'\n },\n 'removetable': {\n 'id': 'removeTable',\n 'icon': 'e-remove-table',\n 'tooltip': 'Remove Table',\n 'command': 'removeTable',\n 'subCommand': 'removeTable'\n },\n 'replace': {\n 'id': 'Replace',\n 'icon': 'e-replace',\n 'tooltip': 'Replace',\n 'command': 'Images',\n 'subCommand': 'Replace'\n },\n 'audioreplace': {\n 'id': 'AudioReplace',\n 'icon': 'e-audio-replace',\n 'tooltip': 'Audio Replace',\n 'command': 'Audios',\n 'subCommand': 'AudioReplace'\n },\n 'audioremove': {\n 'id': 'AudioRemove',\n 'icon': 'e-audio-remove',\n 'tooltip': 'Audio Remove',\n 'command': 'Audios',\n 'subCommand': 'AudioRemove'\n },\n 'audiolayoutoption': {\n 'id': 'AudioLayoutOption',\n 'icon': 'e-audio-display',\n 'tooltip': 'Audio LayoutOption',\n 'command': 'Audios',\n 'subCommand': 'AudioLayoutOption'\n },\n 'videoreplace': {\n 'id': 'VideoReplace',\n 'icon': 'e-video-replace',\n 'tooltip': 'Video Replace',\n 'command': 'Videos',\n 'subCommand': 'VideoReplace'\n },\n 'videoalign': {\n 'id': 'VideoAlign',\n 'icon': 'e-video-align',\n 'tooltip': 'Video Align',\n 'command': 'Videos',\n 'subCommand': 'VideoAlign'\n },\n 'videoremove': {\n 'id': 'VideoRemove',\n 'icon': 'e-video-remove',\n 'tooltip': 'Video Remove',\n 'command': 'Videos',\n 'subCommand': 'VideoRemove'\n },\n 'videolayoutoption': {\n 'id': 'VideoLayoutOption',\n 'icon': 'e-video-display',\n 'tooltip': 'Video LayoutOption',\n 'command': 'Videos',\n 'subCommand': 'VideoLayoutOption'\n },\n 'videodimension': {\n 'id': 'VideoDimension',\n 'icon': 'e-video-dimension',\n 'tooltip': 'Video Dimension',\n 'command': 'Videos',\n 'subCommand': 'VideoDimension'\n },\n 'align': {\n 'id': 'Align',\n 'icon': 'e-align',\n 'tooltip': 'Align',\n 'command': 'Images',\n 'subCommand': 'Align'\n },\n 'caption': {\n 'id': 'Caption',\n 'icon': 'e-caption',\n 'tooltip': 'Image Caption',\n 'command': 'Images',\n 'subCommand': 'Caption'\n },\n 'remove': {\n 'id': 'Remove',\n 'icon': 'e-remove',\n 'tooltip': 'Remove',\n 'command': 'Images',\n 'subCommand': 'Remove'\n },\n 'openimagelink': {\n 'id': 'OpenImageLink',\n 'icon': 'e-open-link',\n 'tooltip': 'Open Link',\n 'command': 'Images',\n 'subCommand': 'OpenImageLink'\n },\n 'editimagelink': {\n 'id': 'EditImageLink',\n 'icon': 'e-edit-link',\n 'tooltip': 'Edit Link',\n 'command': 'Images',\n 'subCommand': 'EditImageLink'\n },\n 'removeimagelink': {\n 'id': 'RemoveImageLink',\n 'icon': 'e-remove-link',\n 'tooltip': 'Remove Link',\n 'command': 'Images',\n 'subCommand': 'RemoveImageLink'\n },\n 'insertlink': {\n 'id': 'InsertLink',\n 'icon': 'e-insert-link',\n 'tooltip': 'Insert Link',\n 'command': 'Images',\n 'subCommand': 'InsertLink'\n },\n 'display': {\n 'id': 'Display',\n 'icon': 'e-display',\n 'tooltip': 'Display',\n 'command': 'Images',\n 'subCommand': 'Display'\n },\n 'alttext': {\n 'id': 'AltText',\n 'icon': 'e-alt-text',\n 'tooltip': 'Alternative Text',\n 'command': 'Images',\n 'subCommand': 'AltText'\n },\n 'dimension': {\n 'id': 'Dimension',\n 'icon': 'e-img-dimension',\n 'tooltip': 'Change Size',\n 'command': 'Images',\n 'subCommand': 'Dimension'\n },\n 'fullscreen': {\n 'id': 'Maximize',\n 'icon': 'e-maximize',\n 'tooltip': 'Maximize',\n 'command': 'View',\n 'subCommand': 'Maximize'\n },\n 'maximize': {\n 'id': 'Maximize',\n 'icon': 'e-maximize',\n 'tooltip': 'Maximize',\n 'command': 'FullScreen',\n 'subCommand': 'Maximize'\n },\n 'minimize': {\n 'id': 'Minimize',\n 'icon': 'e-minimize',\n 'tooltip': 'Minimize',\n 'command': 'FullScreen',\n 'subCommand': 'Minimize'\n },\n 'lowercase': {\n 'id': 'LowerCase',\n 'icon': 'e-lower-case',\n 'tooltip': 'Lower Case',\n 'command': 'Casing',\n 'subCommand': 'LowerCase'\n },\n 'uppercase': {\n 'id': 'UpperCase',\n 'icon': 'e-upper-case',\n 'tooltip': 'Upper Case',\n 'command': 'Casing',\n 'subCommand': 'UpperCase'\n },\n 'print': {\n 'id': 'Print',\n 'icon': 'e-print',\n 'tooltip': 'Print',\n 'command': 'Print',\n 'subCommand': 'Print'\n },\n 'formats': {\n 'id': 'Formats',\n 'icon': 'e-formats',\n 'tooltip': 'Formats',\n 'command': 'Formats',\n 'subCommand': 'Formats'\n },\n 'sourcecode': {\n 'id': 'SourceCode',\n 'icon': 'e-source-code',\n 'tooltip': 'Source Code',\n 'command': 'SourceCode',\n 'subCommand': 'SourceCode'\n },\n 'preview': {\n 'id': 'Preview',\n 'icon': 'e-preview',\n 'tooltip': 'Preview',\n 'command': 'Preview',\n 'subCommand': 'Preview'\n },\n 'viewside': {\n 'id': 'ViewSide',\n 'icon': 'e-view-side',\n 'tooltip': 'ViewSide',\n 'command': 'ViewSide',\n 'subCommand': 'ViewSide'\n },\n 'insertcode': {\n 'id': 'InsertCode',\n 'icon': 'e-insert-code',\n 'tooltip': 'Insert Code',\n 'command': 'Formats',\n 'subCommand': 'Pre'\n },\n 'tableheader': {\n 'id': 'TableHeader',\n 'icon': 'e-table-header',\n 'tooltip': 'Table Header',\n 'command': 'Table',\n 'subCommand': 'TableHeader'\n },\n 'tableremove': {\n 'id': 'TableRemove',\n 'icon': 'e-table-remove',\n 'tooltip': 'Table Remove',\n 'command': 'Table',\n 'subCommand': 'TableRemove'\n },\n 'tablerows': {\n 'id': 'TableRows',\n 'icon': 'e-table-rows',\n 'tooltip': 'Table Rows',\n 'command': 'Table',\n 'subCommand': 'TableRows'\n },\n 'tablecolumns': {\n 'id': 'TableColumns',\n 'icon': 'e-table-columns',\n 'tooltip': 'Table Columns',\n 'command': 'Table',\n 'subCommand': 'TableColumns'\n },\n 'tablecell': {\n 'id': 'TableCell',\n 'icon': 'e-table-cell',\n 'tooltip': 'Table Cell',\n 'command': 'Table',\n 'subCommand': 'TableCell'\n },\n 'tablecellbackground': {\n 'id': 'TableCellBackground',\n 'icon': 'e-table-cell-background',\n 'tooltip': 'Table Cell Background',\n 'command': 'Table',\n 'subCommand': 'TableCellBackground'\n },\n 'tablecellhorizontalalign': {\n 'id': 'TableCellHorizontalAlign',\n 'icon': 'e-table-cell-horizontalAlign',\n 'tooltip': 'Table Cell HorizontalAlign',\n 'command': 'Table',\n 'subCommand': 'TableCellHorizontalAlign'\n },\n 'tablecellverticalalign': {\n 'id': 'TableCellVerticalAlign',\n 'icon': 'e-table-cell-verticalAlign',\n 'tooltip': 'Table Cell VerticalAlign',\n 'command': 'Table',\n 'subCommand': 'TableCellVerticalAlign'\n },\n 'tableeditproperties': {\n 'id': 'TableEditProperties',\n 'icon': 'e-table-edit-properties',\n 'tooltip': 'Table Edit Properties',\n 'command': 'Table',\n 'subCommand': 'TableEditProperties'\n },\n 'styles': {\n 'id': 'Styles',\n 'icon': 'e-table-styles',\n 'tooltip': 'Styles',\n 'command': 'Table',\n 'subCommand': 'Styles'\n },\n 'formatpainter': {\n 'id': 'FormatPainter',\n 'icon': 'e-rte-format-painter',\n 'tooltip': 'Format Painter',\n 'command': 'FormatPainter',\n 'subCommand': 'FormatPainter'\n }\n};\nvar alignmentLocale = [\n { locale: 'alignmentsDropDownLeft', value: 'JustifyLeft' },\n { locale: 'alignmentsDropDownCenter', value: 'JustifyCenter' },\n { locale: 'alignmentsDropDownRight', value: 'JustifyRight' },\n { locale: 'alignmentsDropDownJustify', value: 'JustifyFull' }\n];\nexport var alignmentItems = [\n { iconCss: 'e-icons e-justify-left', text: 'Align Left', command: 'Alignments', subCommand: 'JustifyLeft' },\n { iconCss: 'e-icons e-justify-center', text: 'Align Center', command: 'Alignments', subCommand: 'JustifyCenter' },\n { iconCss: 'e-icons e-justify-right', text: 'Align Right', command: 'Alignments', subCommand: 'JustifyRight' },\n { iconCss: 'e-icons e-justify-full', text: 'Align Justify', command: 'Alignments', subCommand: 'JustifyFull' }\n];\nexport var imageAlignItems = [\n { iconCss: 'e-icons e-justify-left', command: 'Images', subCommand: 'JustifyLeft' },\n { iconCss: 'e-icons e-justify-center', command: 'Images', subCommand: 'JustifyCenter' },\n { iconCss: 'e-icons e-justify-right', command: 'Images', subCommand: 'JustifyRight' },\n];\nexport var videoAlignItems = [\n { iconCss: 'e-icons e-justify-left', command: 'Videos', subCommand: 'JustifyLeft' },\n { iconCss: 'e-icons e-justify-center', command: 'Videos', subCommand: 'JustifyCenter' },\n { iconCss: 'e-icons e-justify-right', command: 'Videos', subCommand: 'JustifyRight' },\n];\nvar displayLocale = [\n { locale: 'imageDisplayDropDownInline', value: 'Inline' },\n { locale: 'imageDisplayDropDownBreak', value: 'Break' }\n];\nvar audioLayoutOptionLocale = [\n { locale: 'audioLayoutOptionDropDownInline', value: 'Inline' },\n { locale: 'audioLayoutOptionDropDownBreak', value: 'Break' }\n];\nvar videoLayoutOptionLocale = [\n { locale: 'videoLayoutOptionDropDownInline', value: 'Inline' },\n { locale: 'videoLayoutOptionDropDownBreak', value: 'Break' }\n];\nexport var imageDisplayItems = [\n { text: 'Inline', cssClass: 'e-inline', command: 'Images', subCommand: 'Inline' },\n { text: 'Break', cssClass: 'e-break', command: 'Images', subCommand: 'Break' },\n];\nexport var audioLayoutOptionItems = [\n { text: 'Inline', cssClass: 'e-audio-inline', command: 'Audios', subCommand: 'Inline' },\n { text: 'Break', cssClass: 'e-audio-break', command: 'Audios', subCommand: 'Break' },\n];\nexport var videoLayoutOptionItems = [\n { text: 'Inline', cssClass: 'e-video-inline', command: 'Videos', subCommand: 'Inline' },\n { text: 'Break', cssClass: 'e-video-break', command: 'Videos', subCommand: 'Break' },\n];\nexport var tableCellItems = [\n { iconCss: 'e-icons e-cell-merge', text: 'Merge cells', command: 'Table', subCommand: 'Merge' },\n { iconCss: 'e-icons e-cell-horizontal-split', text: 'Horizontal split', command: 'Table', subCommand: 'HorizontalSplit' },\n { iconCss: 'e-icons e-cell-vertical-split', text: 'Vertical split', command: 'Table', subCommand: 'VerticalSplit' },\n];\nvar tableRowLocale = [\n { locale: 'tableInsertRowDropDownBefore', value: 'InsertRowBefore' },\n { locale: 'tableInsertRowDropDownAfter', value: 'InsertRowAfter' },\n { locale: 'tableInsertRowDropDownDelete', value: 'DeleteRow' }\n];\nexport var tableRowsItems = [\n { iconCss: 'e-icons e-insert-row-before', text: 'Insert row before', command: 'Table', subCommand: 'InsertRowBefore' },\n { iconCss: 'e-icons e-insert-row-after', text: 'Insert row after', command: 'Table', subCommand: 'InsertRowAfter' },\n { iconCss: 'e-icons e-delete-row', text: 'Delete row', command: 'Table', subCommand: 'DeleteRow' },\n];\nvar tableColumnLocale = [\n { locale: 'tableInsertColumnDropDownLeft', value: 'InsertColumnLeft' },\n { locale: 'tableInsertColumnDropDownRight', value: 'InsertColumnRight' },\n { locale: 'tableInsertColumnDropDownDelete', value: 'DeleteColumn' }\n];\nexport var tableColumnsItems = [\n { iconCss: 'e-icons e-insert-column-left', text: 'Insert column left', command: 'Table', subCommand: 'InsertColumnLeft' },\n { iconCss: 'e-icons e-insert-column-right', text: 'Insert column right', command: 'Table', subCommand: 'InsertColumnRight' },\n { iconCss: 'e-icons e-delete-column', text: 'Delete column', command: 'Table', subCommand: 'DeleteColumn' },\n];\nvar tableVerticalLocale = [\n { locale: 'tableVerticalAlignDropDownTop', value: 'AlignTop' },\n { locale: 'tableVerticalAlignDropDownMiddle', value: 'AlignMiddle' },\n { locale: 'tableVerticalAlignDropDownBottom', value: 'AlignBottom' }\n];\nexport var TableCellVerticalAlignItems = [\n { iconCss: 'e-icons e-align-top', text: 'Align Top', command: 'Table', subCommand: 'AlignTop' },\n { iconCss: 'e-icons e-align-middle', text: 'Align Middle', command: 'Table', subCommand: 'AlignMiddle' },\n { iconCss: 'e-icons e-align-bottom', text: 'Align Bottom', command: 'Table', subCommand: 'AlignBottom' },\n];\nvar tableStyleLocale = [\n { locale: 'tableStylesDropDownDashedBorder', value: 'Dashed' },\n { locale: 'tableStylesDropDownAlternateRows', value: 'Alternate' }\n];\nexport var TableStyleItems = [\n { text: 'Dashed Borders', cssClass: 'e-dashed-borders', command: 'Table', subCommand: 'Dashed' },\n { text: 'Alternate Rows', cssClass: 'e-alternate-rows', command: 'Table', subCommand: 'Alternate' }\n];\nexport var predefinedItems = ['Bold', 'Italic', 'Underline', '|', 'Formats', 'Alignments',\n 'OrderedList', 'UnorderedList', '|', 'CreateLink', 'Image', '|', 'SourceCode', 'Undo', 'Redo'];\nexport var fontFamily = [\n { cssClass: 'e-segoe-ui', text: 'Segoe UI', command: 'Font', subCommand: 'FontName', value: 'Segoe UI' },\n { cssClass: 'e-arial', text: 'Arial', command: 'Font', subCommand: 'FontName', value: 'Arial,Helvetica,sans-serif' },\n { cssClass: 'e-georgia', text: 'Georgia', command: 'Font', subCommand: 'FontName', value: 'Georgia,serif' },\n { cssClass: 'e-impact', text: 'Impact', command: 'Font', subCommand: 'FontName', value: 'Impact,Charcoal,sans-serif' },\n { cssClass: 'e-tahoma', text: 'Tahoma', command: 'Font', subCommand: 'FontName', value: 'Tahoma,Geneva,sans-serif' },\n { cssClass: 'e-times-new-roman', text: 'Times New Roman', command: 'Font', subCommand: 'FontName', value: 'Times New Roman,Times,serif' },\n { cssClass: 'e-verdana', text: 'Verdana', command: 'Font', subCommand: 'FontName', value: 'Verdana,Geneva,sans-serif' }\n];\nexport var fontSize = [\n { text: '8 pt', value: '8pt' },\n { text: '10 pt', value: '10pt' },\n { text: '12 pt', value: '12pt' },\n { text: '14 pt', value: '14pt' },\n { text: '18 pt', value: '18pt' },\n { text: '24 pt', value: '24pt' },\n { text: '36 pt', value: '36pt' }\n];\nexport var formatItems = [\n { cssClass: 'e-paragraph', text: 'Paragraph', command: 'Formats', subCommand: 'P', value: 'P' },\n { cssClass: 'e-code', text: 'Code', command: 'Formats', subCommand: 'Pre', value: 'Pre' },\n { cssClass: 'e-quote', text: 'Quotation', command: 'Formats', subCommand: 'BlockQuote', value: 'BlockQuote' },\n { cssClass: 'e-h1', text: 'Heading 1', command: 'Formats', subCommand: 'H1', value: 'H1' },\n { cssClass: 'e-h2', text: 'Heading 2', command: 'Formats', subCommand: 'H2', value: 'H2' },\n { cssClass: 'e-h3', text: 'Heading 3', command: 'Formats', subCommand: 'H3', value: 'H3' },\n { cssClass: 'e-h4', text: 'Heading 4', command: 'Formats', subCommand: 'H4', value: 'H4' }\n];\nexport var fontColor = {\n 'Custom': [\n '', '#000000', '#e7e6e6', '#44546a', '#4472c4', '#ed7d31', '#a5a5a5', '#ffc000', '#70ad47', '#ff0000',\n '#f2f2f2', '#808080', '#cfcdcd', '#d5dce4', '#d9e2f3', '#fbe4d5', '#ededed', '#fff2cc', '#e2efd9', '#ffcccc',\n '#d9d9d9', '#595959', '#aeaaaa', '#acb9ca', '#b4c6e7', '#f7caac', '#dbdbdb', '#ffe599', '#c5e0b3', '#ff8080',\n '#bfbfbf', '#404040', '#747070', '#8496b0', '#8eaadb', '#f4b083', '#c9c9c9', '#ffd966', '#a8d08d', '#ff3333',\n '#a6a6a6', '#262626', '#3b3838', '#323e4f', '#2f5496', '#c45911', '#7b7b7b', '#bf8f00', '#538135', '#b30000',\n '#7f7f7f', '#0d0d0d', '#161616', '#212934', '#1f3763', '#823b0b', '#525252', '#7f5f00', '#375623', '#660000'\n ]\n};\nexport var backgroundColor = {\n 'Custom': [\n '', '#000000', '#ffff00', '#00ff00', '#00ffff', '#0000ff', '#ff0000', '#000080', '#800080', '#996633',\n '#f2f2f2', '#808080', '#ffffcc', '#b3ffb3', '#ccffff', '#ccccff', '#ffcccc', '#ccccff', '#ff80ff', '#f2e6d9',\n '#d9d9d9', '#595959', '#ffff80', '#80ff80', '#b3ffff', '#8080ff', '#ff8080', '#8080ff', '#ff00ff', '#dfbf9f',\n '#bfbfbf', '#404040', '#ffff33', '#33ff33', '#33ffff', '#3333ff', '#ff3333', '#0000b3', '#b300b3', '#c68c53',\n '#a6a6a6', '#262626', '#e6e600', '#00b300', '#009999', '#000099', '#b30000', '#000066', '#660066', '#86592d',\n '#7f7f7f', '#0d0d0d', '#999900', '#006600', '#006666', '#000066', '#660000', '#00004d', '#4d004d', '#734d26'\n ]\n};\nexport var numberFormatList = [\n { text: 'None', command: 'Lists', subCommand: 'NumberFormatList', value: 'none' },\n { text: 'Number', command: 'Lists', subCommand: 'NumberFormatList', value: 'decimal' },\n { text: 'Lower Greek', command: 'Lists', subCommand: 'NumberFormatList', value: 'lowerGreek' },\n { text: 'Lower Roman', command: 'Lists', subCommand: 'NumberFormatList', value: 'lowerRoman' },\n { text: 'Upper Alpha', command: 'Lists', subCommand: 'NumberFormatList', value: 'upperAlpha' },\n { text: 'Lower Alpha', command: 'Lists', subCommand: 'NumberFormatList', value: 'lowerAlpha' },\n { text: 'Upper Roman', command: 'Lists', subCommand: 'NumberFormatList', value: 'upperRoman' },\n];\nexport var bulletFormatList = [\n { text: 'None', command: 'Lists', subCommand: 'BulletFormatList', value: 'none' },\n { text: 'Disc', command: 'Lists', subCommand: 'BulletFormatList', value: 'disc' },\n { text: 'Circle', command: 'Lists', subCommand: 'BulletFormatList', value: 'circle' },\n { text: 'Square', command: 'Lists', subCommand: 'BulletFormatList', value: 'square' },\n];\nfunction getLocale(self, localeItems, item) {\n for (var i = 0; localeItems.length > i; i++) {\n if (localeItems[i].value === item.subCommand) {\n return self.localeObj.getConstant(localeItems[i].locale);\n }\n }\n return item.text;\n}\nexport function updateDropDownLocale(self) {\n alignmentItems.forEach(function (item, i) {\n alignmentItems[i].text = getLocale(self, alignmentLocale, alignmentItems[i]);\n });\n imageDisplayItems.forEach(function (item, i) {\n imageDisplayItems[i].text = getLocale(self, displayLocale, imageDisplayItems[i]);\n });\n audioLayoutOptionItems.forEach(function (item, i) {\n audioLayoutOptionItems[i].text = getLocale(self, audioLayoutOptionLocale, audioLayoutOptionItems[i]);\n });\n videoLayoutOptionItems.forEach(function (item, i) {\n videoLayoutOptionItems[i].text = getLocale(self, videoLayoutOptionLocale, videoLayoutOptionItems[i]);\n });\n tableRowsItems.forEach(function (item, i) {\n tableRowsItems[i].text = getLocale(self, tableRowLocale, tableRowsItems[i]);\n });\n tableColumnsItems.forEach(function (item, i) {\n tableColumnsItems[i].text = getLocale(self, tableColumnLocale, tableColumnsItems[i]);\n });\n TableCellVerticalAlignItems.forEach(function (item, i) {\n TableCellVerticalAlignItems[i].text = getLocale(self, tableVerticalLocale, TableCellVerticalAlignItems[i]);\n });\n TableStyleItems.forEach(function (item, i) {\n TableStyleItems[i].text = getLocale(self, tableStyleLocale, TableStyleItems[i]);\n });\n}\nexport var windowKeys = {\n 'Insert Link': 'Ctrl + K',\n 'Insert Image': 'Ctrl + Shift + I',\n 'Create Table': 'Ctrl + Shift + E',\n 'Undo': 'Ctrl + Z',\n 'Redo': 'Ctrl + Y',\n 'Copy': 'Ctrl + C',\n 'Cut': 'Ctrl + X',\n 'Paste': 'Ctrl + V',\n 'Bold': 'Ctrl + B',\n 'Italic': 'Ctrl + I',\n 'Underline': 'Ctrl + U',\n 'Strikethrough': 'Ctrl + Shift + S',\n 'Upper Case': 'Ctrl + Shift + U',\n 'Lower Case': 'Ctrl + Shift + L',\n 'Superscript': 'Ctrl + Shift + =',\n 'Subscript': 'Ctrl + =',\n 'Source Code': 'Ctrl + Shift + H',\n 'Maximize': 'Ctrl + Shift + F',\n 'Minimize': 'Esc',\n 'Clear Format': 'Ctrl + Shift + R',\n 'Numbered List': 'Ctrl + Shift + O',\n 'Bulleted List': 'Ctrl + Alt + O',\n 'Format Painter': 'Ctrl + Shift + C, Ctrl + Shift + V'\n};\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, ChildProperty, Complex } from '@syncfusion/ej2-base';\nimport { AjaxSettings, ContextMenuSettings } from '@syncfusion/ej2-filemanager';\nimport { DetailsViewSettings, NavigationPaneSettings } from '@syncfusion/ej2-filemanager';\nimport { SearchSettings } from '@syncfusion/ej2-filemanager';\nimport { ToolbarSettings as FileToolbarSettings } from '@syncfusion/ej2-filemanager';\nimport { UploadSettings } from '@syncfusion/ej2-filemanager';\nimport { ToolbarType } from '../base/enum';\nimport { backgroundColor, fontColor, fontFamily, fontSize, formatItems, predefinedItems, TableStyleItems, numberFormatList, bulletFormatList } from './items';\n/**\n * Configures the toolbar settings of the RichTextEditor.\n */\nvar ToolbarSettings = /** @class */ (function (_super) {\n __extends(ToolbarSettings, _super);\n function ToolbarSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(true)\n ], ToolbarSettings.prototype, \"enable\", void 0);\n __decorate([\n Property(true)\n ], ToolbarSettings.prototype, \"enableFloating\", void 0);\n __decorate([\n Property(ToolbarType.Expand)\n ], ToolbarSettings.prototype, \"type\", void 0);\n __decorate([\n Property(predefinedItems)\n ], ToolbarSettings.prototype, \"items\", void 0);\n __decorate([\n Property({})\n ], ToolbarSettings.prototype, \"itemConfigs\", void 0);\n return ToolbarSettings;\n}(ChildProperty));\nexport { ToolbarSettings };\n/**\n * Configures the image settings of the RichTextEditor.\n */\nvar ImageSettings = /** @class */ (function (_super) {\n __extends(ImageSettings, _super);\n function ImageSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(['.jpeg', '.jpg', '.png'])\n ], ImageSettings.prototype, \"allowedTypes\", void 0);\n __decorate([\n Property('inline')\n ], ImageSettings.prototype, \"display\", void 0);\n __decorate([\n Property('Blob')\n ], ImageSettings.prototype, \"saveFormat\", void 0);\n __decorate([\n Property('auto')\n ], ImageSettings.prototype, \"width\", void 0);\n __decorate([\n Property('auto')\n ], ImageSettings.prototype, \"height\", void 0);\n __decorate([\n Property(null)\n ], ImageSettings.prototype, \"saveUrl\", void 0);\n __decorate([\n Property(null)\n ], ImageSettings.prototype, \"path\", void 0);\n __decorate([\n Property(true)\n ], ImageSettings.prototype, \"resize\", void 0);\n __decorate([\n Property(null)\n ], ImageSettings.prototype, \"removeUrl\", void 0);\n __decorate([\n Property(0)\n ], ImageSettings.prototype, \"minWidth\", void 0);\n __decorate([\n Property(null)\n ], ImageSettings.prototype, \"maxWidth\", void 0);\n __decorate([\n Property(0)\n ], ImageSettings.prototype, \"minHeight\", void 0);\n __decorate([\n Property(null)\n ], ImageSettings.prototype, \"maxHeight\", void 0);\n __decorate([\n Property(false)\n ], ImageSettings.prototype, \"resizeByPercent\", void 0);\n return ImageSettings;\n}(ChildProperty));\nexport { ImageSettings };\n/**\n * Configures the audio settings of the RichTextEditor.\n */\nvar AudioSettings = /** @class */ (function (_super) {\n __extends(AudioSettings, _super);\n function AudioSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(['.wav', '.mp3', '.m4a', '.wma'])\n ], AudioSettings.prototype, \"allowedTypes\", void 0);\n __decorate([\n Property('Inline')\n ], AudioSettings.prototype, \"layoutOption\", void 0);\n __decorate([\n Property('Blob')\n ], AudioSettings.prototype, \"saveFormat\", void 0);\n __decorate([\n Property(null)\n ], AudioSettings.prototype, \"saveUrl\", void 0);\n __decorate([\n Property(null)\n ], AudioSettings.prototype, \"removeUrl\", void 0);\n __decorate([\n Property(null)\n ], AudioSettings.prototype, \"path\", void 0);\n return AudioSettings;\n}(ChildProperty));\nexport { AudioSettings };\n/**\n * Configures the video settings of the RichTextEditor.\n */\nvar VideoSettings = /** @class */ (function (_super) {\n __extends(VideoSettings, _super);\n function VideoSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(['.mp4', '.mov', '.wmv', '.avi'])\n ], VideoSettings.prototype, \"allowedTypes\", void 0);\n __decorate([\n Property('Inline')\n ], VideoSettings.prototype, \"layoutOption\", void 0);\n __decorate([\n Property('Blob')\n ], VideoSettings.prototype, \"saveFormat\", void 0);\n __decorate([\n Property('auto')\n ], VideoSettings.prototype, \"width\", void 0);\n __decorate([\n Property('auto')\n ], VideoSettings.prototype, \"height\", void 0);\n __decorate([\n Property(null)\n ], VideoSettings.prototype, \"saveUrl\", void 0);\n __decorate([\n Property(null)\n ], VideoSettings.prototype, \"path\", void 0);\n __decorate([\n Property(true)\n ], VideoSettings.prototype, \"resize\", void 0);\n __decorate([\n Property(null)\n ], VideoSettings.prototype, \"removeUrl\", void 0);\n __decorate([\n Property(0)\n ], VideoSettings.prototype, \"minWidth\", void 0);\n __decorate([\n Property(null)\n ], VideoSettings.prototype, \"maxWidth\", void 0);\n __decorate([\n Property(0)\n ], VideoSettings.prototype, \"minHeight\", void 0);\n __decorate([\n Property(null)\n ], VideoSettings.prototype, \"maxHeight\", void 0);\n __decorate([\n Property(false)\n ], VideoSettings.prototype, \"resizeByPercent\", void 0);\n return VideoSettings;\n}(ChildProperty));\nexport { VideoSettings };\n/**\n * Configures the file manager settings of the RichTextEditor.\n */\nvar FileManagerSettings = /** @class */ (function (_super) {\n __extends(FileManagerSettings, _super);\n function FileManagerSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Complex({ getImageUrl: null, url: null, uploadUrl: null }, AjaxSettings)\n ], FileManagerSettings.prototype, \"ajaxSettings\", void 0);\n __decorate([\n Property(false)\n ], FileManagerSettings.prototype, \"allowDragAndDrop\", void 0);\n __decorate([\n Complex({ visible: true, file: ['Open', '|', 'Cut', 'Copy', '|', 'Delete', 'Rename', '|', 'Details'], folder: ['Open', '|', 'Cut', 'Copy', 'Paste', '|', 'Delete', 'Rename', '|', 'Details'], layout: ['SortBy', 'View', 'Refresh', '|', 'Paste', '|', 'NewFolder', 'Upload', '|', 'Details', '|', 'SelectAll'] }, ContextMenuSettings)\n ], FileManagerSettings.prototype, \"contextMenuSettings\", void 0);\n __decorate([\n Property('')\n ], FileManagerSettings.prototype, \"cssClass\", void 0);\n __decorate([\n Complex({}, DetailsViewSettings)\n ], FileManagerSettings.prototype, \"detailsViewSettings\", void 0);\n __decorate([\n Property(false)\n ], FileManagerSettings.prototype, \"enable\", void 0);\n __decorate([\n Complex({ maxWidth: '650px', minWidth: '240px', visible: true }, NavigationPaneSettings)\n ], FileManagerSettings.prototype, \"navigationPaneSettings\", void 0);\n __decorate([\n Property('/')\n ], FileManagerSettings.prototype, \"path\", void 0);\n __decorate([\n Property(null)\n ], FileManagerSettings.prototype, \"rootAliasName\", void 0);\n __decorate([\n Complex({}, SearchSettings)\n ], FileManagerSettings.prototype, \"searchSettings\", void 0);\n __decorate([\n Property(true)\n ], FileManagerSettings.prototype, \"showFileExtension\", void 0);\n __decorate([\n Property(false)\n ], FileManagerSettings.prototype, \"showHiddenItems\", void 0);\n __decorate([\n Property(true)\n ], FileManagerSettings.prototype, \"showThumbnail\", void 0);\n __decorate([\n Property('Ascending')\n ], FileManagerSettings.prototype, \"sortOrder\", void 0);\n __decorate([\n Complex({ visible: true, items: ['NewFolder', 'Upload', 'Cut', 'Copy', 'Paste', 'Delete', 'Download', 'Rename', 'SortBy', 'Refresh', 'Selection', 'View', 'Details'] }, FileToolbarSettings)\n ], FileManagerSettings.prototype, \"toolbarSettings\", void 0);\n __decorate([\n Complex({ autoUpload: true, minFileSize: 0, maxFileSize: 30000000, allowedExtensions: '', autoClose: false }, UploadSettings)\n ], FileManagerSettings.prototype, \"uploadSettings\", void 0);\n __decorate([\n Property('LargeIcons')\n ], FileManagerSettings.prototype, \"view\", void 0);\n return FileManagerSettings;\n}(ChildProperty));\nexport { FileManagerSettings };\nvar TableSettings = /** @class */ (function (_super) {\n __extends(TableSettings, _super);\n function TableSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('100%')\n ], TableSettings.prototype, \"width\", void 0);\n __decorate([\n Property(TableStyleItems)\n ], TableSettings.prototype, \"styles\", void 0);\n __decorate([\n Property(true)\n ], TableSettings.prototype, \"resize\", void 0);\n __decorate([\n Property(0)\n ], TableSettings.prototype, \"minWidth\", void 0);\n __decorate([\n Property(null)\n ], TableSettings.prototype, \"maxWidth\", void 0);\n return TableSettings;\n}(ChildProperty));\nexport { TableSettings };\n/**\n * Configures the quick toolbar settings of the RichTextEditor.\n */\nvar QuickToolbarSettings = /** @class */ (function (_super) {\n __extends(QuickToolbarSettings, _super);\n function QuickToolbarSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(true)\n ], QuickToolbarSettings.prototype, \"enable\", void 0);\n __decorate([\n Property(false)\n ], QuickToolbarSettings.prototype, \"showOnRightClick\", void 0);\n __decorate([\n Property('hide')\n ], QuickToolbarSettings.prototype, \"actionOnScroll\", void 0);\n __decorate([\n Property(['Open', 'Edit', 'UnLink'])\n ], QuickToolbarSettings.prototype, \"link\", void 0);\n __decorate([\n Property(['Replace', 'Align', 'Caption', 'Remove', '-', 'InsertLink', 'OpenImageLink', 'EditImageLink', 'RemoveImageLink', 'Display', 'AltText', 'Dimension'])\n ], QuickToolbarSettings.prototype, \"image\", void 0);\n __decorate([\n Property(['AudioReplace', 'AudioRemove', 'AudioLayoutOption'])\n ], QuickToolbarSettings.prototype, \"audio\", void 0);\n __decorate([\n Property(['VideoReplace', 'VideoAlign', 'VideoRemove', 'VideoLayoutOption', 'VideoDimension'])\n ], QuickToolbarSettings.prototype, \"video\", void 0);\n __decorate([\n Property(['Cut', 'Copy', 'Paste'])\n ], QuickToolbarSettings.prototype, \"text\", void 0);\n __decorate([\n Property(['TableHeader', 'TableRows', 'TableColumns', 'BackgroundColor', '-', 'TableRemove', 'Alignments', 'TableCellVerticalAlign', 'Styles'])\n ], QuickToolbarSettings.prototype, \"table\", void 0);\n return QuickToolbarSettings;\n}(ChildProperty));\nexport { QuickToolbarSettings };\n/**\n * Configure the format painter settings of the Rich Text Editor.\n */\nvar FormatPainterSettings = /** @class */ (function (_super) {\n __extends(FormatPainterSettings, _super);\n function FormatPainterSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(['Text', 'List', 'Table'])\n ], FormatPainterSettings.prototype, \"allowedContext\", void 0);\n __decorate([\n Property('b; em; font; sub; sup; kbd; i; s; u; code; strong; span; p; div; h1; h2; h3; h4; h5; h6; blockquote; table; thead; tbody; tr; td; th; ol; ul; li; pre;')\n ], FormatPainterSettings.prototype, \"allowedFormats\", void 0);\n __decorate([\n Property(null)\n ], FormatPainterSettings.prototype, \"deniedFormats\", void 0);\n return FormatPainterSettings;\n}(ChildProperty));\nexport { FormatPainterSettings };\n/**\n * Configures the Paste Cleanup settings of the RichTextEditor.\n */\nvar PasteCleanupSettings = /** @class */ (function (_super) {\n __extends(PasteCleanupSettings, _super);\n function PasteCleanupSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(false)\n ], PasteCleanupSettings.prototype, \"prompt\", void 0);\n __decorate([\n Property(null)\n ], PasteCleanupSettings.prototype, \"deniedAttrs\", void 0);\n __decorate([\n Property(['background', 'background-color', 'border', 'border-bottom', 'border-left', 'border-radius', 'border-right', 'border-style', 'border-top', 'border-width', 'clear', 'color', 'cursor', 'direction', 'display', 'float', 'font', 'font-family', 'font-size', 'font-weight', 'font-style', 'height', 'left', 'line-height', 'list-style-type', 'margin', 'margin-top', 'margin-left', 'margin-right', 'margin-bottom', 'max-height', 'max-width', 'min-height', 'min-width', 'overflow', 'overflow-x', 'overflow-y', 'padding', 'padding-bottom', 'padding-left', 'padding-right', 'padding-top', 'position', 'right', 'table-layout', 'text-align', 'text-decoration', 'text-indent', 'top', 'vertical-align', 'visibility', 'white-space', 'width'])\n ], PasteCleanupSettings.prototype, \"allowedStyleProps\", void 0);\n __decorate([\n Property(null)\n ], PasteCleanupSettings.prototype, \"deniedTags\", void 0);\n __decorate([\n Property(true)\n ], PasteCleanupSettings.prototype, \"keepFormat\", void 0);\n __decorate([\n Property(false)\n ], PasteCleanupSettings.prototype, \"plainText\", void 0);\n return PasteCleanupSettings;\n}(ChildProperty));\nexport { PasteCleanupSettings };\n/**\n * Configures the font family settings of the RichTextEditor.\n */\nvar FontFamily = /** @class */ (function (_super) {\n __extends(FontFamily, _super);\n function FontFamily() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(null)\n ], FontFamily.prototype, \"default\", void 0);\n __decorate([\n Property('65px')\n ], FontFamily.prototype, \"width\", void 0);\n __decorate([\n Property(fontFamily)\n ], FontFamily.prototype, \"items\", void 0);\n return FontFamily;\n}(ChildProperty));\nexport { FontFamily };\n/**\n * Configures the font size settings of the RichTextEditor.\n */\nvar FontSize = /** @class */ (function (_super) {\n __extends(FontSize, _super);\n function FontSize() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(null)\n ], FontSize.prototype, \"default\", void 0);\n __decorate([\n Property('35px')\n ], FontSize.prototype, \"width\", void 0);\n __decorate([\n Property(fontSize)\n ], FontSize.prototype, \"items\", void 0);\n return FontSize;\n}(ChildProperty));\nexport { FontSize };\n/**\n * Configures the format settings of the RichTextEditor.\n */\nvar Format = /** @class */ (function (_super) {\n __extends(Format, _super);\n function Format() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(null)\n ], Format.prototype, \"default\", void 0);\n __decorate([\n Property('65px')\n ], Format.prototype, \"width\", void 0);\n __decorate([\n Property(formatItems)\n ], Format.prototype, \"types\", void 0);\n return Format;\n}(ChildProperty));\nexport { Format };\n/**\n * Configures the font Color settings of the RichTextEditor.\n */\nvar FontColor = /** @class */ (function (_super) {\n __extends(FontColor, _super);\n function FontColor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('#ff0000')\n ], FontColor.prototype, \"default\", void 0);\n __decorate([\n Property('Palette')\n ], FontColor.prototype, \"mode\", void 0);\n __decorate([\n Property(10)\n ], FontColor.prototype, \"columns\", void 0);\n __decorate([\n Property(fontColor)\n ], FontColor.prototype, \"colorCode\", void 0);\n __decorate([\n Property(false)\n ], FontColor.prototype, \"modeSwitcher\", void 0);\n return FontColor;\n}(ChildProperty));\nexport { FontColor };\n/**\n * Configures the background Color settings of the RichTextEditor.\n */\nvar BackgroundColor = /** @class */ (function (_super) {\n __extends(BackgroundColor, _super);\n function BackgroundColor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('#ffff00')\n ], BackgroundColor.prototype, \"default\", void 0);\n __decorate([\n Property('Palette')\n ], BackgroundColor.prototype, \"mode\", void 0);\n __decorate([\n Property(10)\n ], BackgroundColor.prototype, \"columns\", void 0);\n __decorate([\n Property(backgroundColor)\n ], BackgroundColor.prototype, \"colorCode\", void 0);\n __decorate([\n Property(false)\n ], BackgroundColor.prototype, \"modeSwitcher\", void 0);\n return BackgroundColor;\n}(ChildProperty));\nexport { BackgroundColor };\n/**\n * Configures the numberFormatList settings of the RichTextEditor.\n */\nvar NumberFormatList = /** @class */ (function (_super) {\n __extends(NumberFormatList, _super);\n function NumberFormatList() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(numberFormatList)\n ], NumberFormatList.prototype, \"types\", void 0);\n return NumberFormatList;\n}(ChildProperty));\nexport { NumberFormatList };\n/**\n * Configures the bulletFormatList settings of the RichTextEditor.\n */\nvar BulletFormatList = /** @class */ (function (_super) {\n __extends(BulletFormatList, _super);\n function BulletFormatList() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(bulletFormatList)\n ], BulletFormatList.prototype, \"types\", void 0);\n return BulletFormatList;\n}(ChildProperty));\nexport { BulletFormatList };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, ChildProperty, Complex } from '@syncfusion/ej2-base';\n/**\n * Objects used for configuring the iframe resources properties.\n */\nvar Resources = /** @class */ (function (_super) {\n __extends(Resources, _super);\n function Resources() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property([])\n ], Resources.prototype, \"styles\", void 0);\n __decorate([\n Property([])\n ], Resources.prototype, \"scripts\", void 0);\n return Resources;\n}(ChildProperty));\nexport { Resources };\n/**\n * Configures the iframe settings of the RTE.\n */\nvar IFrameSettings = /** @class */ (function (_super) {\n __extends(IFrameSettings, _super);\n function IFrameSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(false)\n ], IFrameSettings.prototype, \"enable\", void 0);\n __decorate([\n Property(null)\n ], IFrameSettings.prototype, \"attributes\", void 0);\n __decorate([\n Complex({}, Resources)\n ], IFrameSettings.prototype, \"resources\", void 0);\n return IFrameSettings;\n}(ChildProperty));\nexport { IFrameSettings };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, ChildProperty } from '@syncfusion/ej2-base';\n/**\n * Configures the inlineMode property of the RTE.\n */\nvar InlineMode = /** @class */ (function (_super) {\n __extends(InlineMode, _super);\n function InlineMode() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(false)\n ], InlineMode.prototype, \"enable\", void 0);\n __decorate([\n Property(true)\n ], InlineMode.prototype, \"onSelection\", void 0);\n return InlineMode;\n}(ChildProperty));\nexport { InlineMode };\n","/* eslint-disable */\n/**\n * Export default locale\n */\nexport var defaultLocale = {\n 'alignments': 'Alignments',\n 'justifyLeft': 'Align Left',\n 'justifyCenter': 'Align Center',\n 'justifyRight': 'Align Right',\n 'justifyFull': 'Align Justify',\n 'fontName': 'Font Name',\n 'fontSize': 'Font Size',\n 'fontColor': 'Font Color',\n 'backgroundColor': 'Background Color',\n 'bold': 'Bold',\n 'italic': 'Italic',\n 'underline': 'Underline',\n 'strikethrough': 'Strikethrough',\n 'clearFormat': 'Clear Format',\n 'clearAll': 'Clear All',\n 'cut': 'Cut',\n 'copy': 'Copy',\n 'paste': 'Paste',\n 'unorderedList': 'Bulleted List',\n 'orderedList': 'Numbered List',\n 'indent': 'Increase Indent',\n 'outdent': 'Decrease Indent',\n 'undo': 'Undo',\n 'redo': 'Redo',\n 'superscript': 'Superscript',\n 'subscript': 'Subscript',\n 'createLink': 'Insert Link',\n 'openLink': 'Open Link',\n 'editLink': 'Edit Link',\n 'removeLink': 'Remove Link',\n 'image': 'Insert Image',\n 'audio': 'Insert Audio',\n 'video': 'Insert Video',\n 'replace': 'Replace',\n 'numberFormatList': 'Number Format List',\n 'bulletFormatList': 'Bullet Format List',\n 'audioReplace': 'Replace',\n 'videoReplace': 'Replace',\n 'videoAlign': 'Align',\n 'videoDimension': 'Dimension',\n 'audioRemove': 'Remove',\n 'videoRemove': 'Remove',\n 'audioLayoutOption': 'Layout option',\n 'videoLayoutOption': 'Layout option',\n 'align': 'Align',\n 'caption': 'Image Caption',\n 'remove': 'Remove',\n 'insertLink': 'Insert Link',\n 'display': 'Display',\n 'altText': 'Alternative Text',\n 'dimension': 'Change Size',\n 'fullscreen': 'Maximize',\n 'maximize': 'Maximize',\n 'minimize': 'Minimize',\n 'lowerCase': 'Lower Case',\n 'upperCase': 'Upper Case',\n 'print': 'Print',\n 'formats': 'Formats',\n 'sourcecode': 'Code View',\n 'preview': 'Preview',\n 'viewside': 'ViewSide',\n 'insertCode': 'Insert Code',\n 'linkText': 'Display Text',\n 'linkTooltipLabel': 'Title',\n 'linkWebUrl': 'Web Address',\n 'linkTitle': 'Enter a title',\n 'linkurl': 'http://example.com',\n 'linkOpenInNewWindow': 'Open Link in New Window',\n 'linkHeader': 'Insert Link',\n 'dialogInsert': 'Insert',\n 'dialogCancel': 'Cancel',\n 'dialogUpdate': 'Update',\n 'imageHeader': 'Insert Image',\n 'audioHeader': 'Insert Audio',\n 'videoHeader': 'Insert Video',\n 'imageLinkHeader': 'You can also provide a link from the web',\n 'audioLinkHeader': 'You can also provide a link from the web',\n 'videoLinkHeader': 'Web URL',\n 'embedVideoLinkHeader': 'Media Embed URL',\n 'mdimageLink': 'Please provide a URL for your image',\n 'imageUploadMessage': 'Drop image here or browse to upload',\n 'audioUploadMessage': 'Drop an audio file or browse to upload',\n 'videoUploadMessage': 'Drop a video file or browse to upload',\n 'imageDeviceUploadMessage': 'Click here to upload',\n 'audioDeviceUploadMessage': 'Click here to upload',\n 'videoDeviceUploadMessage': 'Click here to upload',\n 'imageAlternateText': 'Alternate Text',\n 'alternateHeader': 'Alternative Text',\n 'browse': 'Browse',\n 'imageUrl': 'http://example.com/image.png',\n 'audioUrl': 'http://example.com/audio.mp3',\n 'videoUrl': 'http://example.com/video.mp3',\n 'webUrl': 'Web URL',\n 'embedUrl': 'Embed Code',\n 'imageCaption': 'Caption',\n 'imageSizeHeader': 'Image Size',\n 'videoSizeHeader': 'Video Size',\n 'imageHeight': 'Height',\n 'imageWidth': 'Width',\n 'videoHeight': 'Height',\n 'videoWidth': 'Width',\n 'textPlaceholder': 'Enter Text',\n 'inserttablebtn': 'Insert Table',\n 'tabledialogHeader': 'Insert Table',\n 'tableWidth': 'Width',\n 'cellpadding': 'Cell Padding',\n 'cellspacing': 'Cell Spacing',\n 'columns': 'Number of columns',\n 'rows': 'Number of rows',\n 'tableRows': 'Table Rows',\n 'tableColumns': 'Table Columns',\n 'tableCellHorizontalAlign': 'Table Cell Horizontal Align',\n 'tableCellVerticalAlign': 'Table Cell Vertical Align',\n 'createTable': 'Create Table',\n 'removeTable': 'Remove Table',\n 'tableHeader': 'Table Header',\n 'tableRemove': 'Table Remove',\n 'tableCellBackground': 'Table Cell Background',\n 'tableEditProperties': 'Table Edit Properties',\n 'styles': 'Styles',\n 'insertColumnLeft': 'Insert Column Left',\n 'insertColumnRight': 'Insert Column Right',\n 'deleteColumn': 'Delete Column',\n 'insertRowBefore': 'Insert Row Before',\n 'insertRowAfter': 'Insert Row After',\n 'deleteRow': 'Delete Row',\n 'tableEditHeader': 'Edit Table',\n 'TableHeadingText': 'Heading',\n 'TableColText': 'Col',\n 'imageInsertLinkHeader': 'Insert Link',\n 'editImageHeader': 'Edit Image',\n 'editAudioHeader': 'Edit Audio',\n 'editVideoHeader': 'Edit Video',\n \"alignmentsDropDownLeft\": 'Align Left',\n \"alignmentsDropDownCenter\": 'Align Center',\n \"alignmentsDropDownRight\": 'Align Right',\n \"alignmentsDropDownJustify\": 'Align Justify',\n \"imageDisplayDropDownInline\": 'Inline',\n \"imageDisplayDropDownBreak\": 'Break',\n \"audioLayoutOptionDropDownInline\": 'Inline',\n \"audioLayoutOptionDropDownBreak\": 'Break',\n \"videoLayoutOptionDropDownInline\": 'Inline',\n \"videoLayoutOptionDropDownBreak\": 'Break',\n \"tableInsertRowDropDownBefore\": 'Insert row before',\n \"tableInsertRowDropDownAfter\": 'Insert row after',\n \"tableInsertRowDropDownDelete\": 'Delete row',\n \"tableInsertColumnDropDownLeft\": 'Insert column left',\n \"tableInsertColumnDropDownRight\": 'Insert column right',\n \"tableInsertColumnDropDownDelete\": 'Delete column',\n \"tableVerticalAlignDropDownTop\": 'Align Top',\n \"tableVerticalAlignDropDownMiddle\": 'Align Middle',\n \"tableVerticalAlignDropDownBottom\": 'Align Bottom',\n \"tableStylesDropDownDashedBorder\": 'Dashed Borders',\n \"tableStylesDropDownAlternateRows\": 'Alternate Rows',\n 'pasteFormat': 'Paste Format',\n 'pasteFormatContent': 'Choose the formatting action',\n 'plainText': 'Plain Text',\n 'cleanFormat': 'Clean',\n 'keepFormat': 'Keep',\n 'pasteDialogOk': 'OK',\n 'pasteDialogCancel': 'Cancel',\n 'fileManager': 'File Manager',\n 'fileDialogHeader': 'File Browser',\n \"formatsDropDownParagraph\": 'Paragraph',\n 'formatsDropDownCode': 'Code',\n 'formatsDropDownQuotation': 'Quotation',\n 'formatsDropDownHeading1': 'Heading 1',\n 'formatsDropDownHeading2': 'Heading 2',\n 'formatsDropDownHeading3': 'Heading 3',\n 'formatsDropDownHeading4': 'Heading 4',\n 'fontNameSegoeUI': 'Segoe UI',\n 'fontNameArial': 'Arial',\n 'fontNameGeorgia': 'Georgia',\n 'fontNameImpact': 'Impact',\n 'fontNameTahoma': 'Tahoma',\n 'fontNameTimesNewRoman': 'Times New Roman',\n 'fontNameVerdana': 'Verdana',\n 'numberFormatListNumber': 'Number',\n 'numberFormatListLowerAlpha': 'LowerAlpha',\n 'numberFormatListUpperAlpha': 'UpperAlpha',\n 'numberFormatListLowerRoman': 'LowerRoman',\n 'numberFormatListUpperRoman': 'UpperRoman',\n 'numberFormatListLowerGreek': 'LowerGreek',\n 'bulletFormatListDisc': 'Disc',\n 'bulletFormatListCircle': 'Circle',\n 'bulletFormatListSquare': 'Square',\n 'numberFormatListNone': 'None',\n 'bulletFormatListNone': 'None',\n 'formatPainter': 'Format Painter'\n};\nexport var toolsLocale = {\n 'alignments': 'alignments',\n 'justifyleft': 'justifyLeft',\n 'justifycenter': 'justifyCenter',\n 'justifyright': 'justifyRight',\n 'justifyfull': 'justifyFull',\n 'fontname': 'fontName',\n 'fontsize': 'fontSize',\n 'fontcolor': 'fontColor',\n 'backgroundcolor': 'backgroundColor',\n 'bold': 'bold',\n 'italic': 'italic',\n 'underline': 'underline',\n 'strikethrough': 'strikethrough',\n 'clearformat': 'clearFormat',\n 'clearall': 'clearAll',\n 'cut': 'cut',\n 'copy': 'copy',\n 'paste': 'paste',\n 'unorderedlist': 'unorderedList',\n 'orderedlist': 'orderedList',\n 'indent': 'indent',\n 'outdent': 'outdent',\n 'numberformatlist': 'numberFormatList',\n 'bulletformatlist': 'bulletFormatList',\n 'undo': 'undo',\n 'redo': 'redo',\n 'superscript': 'superscript',\n 'subscript': 'subscript',\n 'createlink': 'createLink',\n 'openlink': 'openLink',\n 'editlink': 'editLink',\n 'removelink': 'removeLink',\n 'openimagelink': 'openLink',\n 'editimagelink': 'editLink',\n 'removeimagelink': 'removeLink',\n 'image': 'image',\n 'audio': 'audio',\n 'video': 'video',\n 'replace': 'replace',\n 'audioreplace': 'audioReplace',\n 'videoreplace': 'videoReplace',\n 'videoalign': 'videoAlign',\n 'videodimension': 'videoDimension',\n 'audioremove': 'audioRemove',\n 'videoremove': 'videoRemove',\n 'audiolayoutoption': 'audioLayoutOption',\n 'videolayoutoption': 'videoLayoutOption',\n 'align': 'align',\n 'caption': 'caption',\n 'remove': 'remove',\n 'insertlink': 'insertLink',\n 'display': 'display',\n 'alttext': 'altText',\n 'dimension': 'dimension',\n 'fullscreen': 'fullscreen',\n 'maximize': 'maximize',\n 'minimize': 'minimize',\n 'lowercase': 'lowerCase',\n 'uppercase': 'upperCase',\n 'print': 'print',\n 'formats': 'formats',\n 'sourcecode': 'sourcecode',\n 'preview': 'preview',\n 'viewside': 'viewside',\n 'insertcode': 'insertCode',\n 'tablerows': 'tableRows',\n 'tablecolumns': 'tableColumns',\n 'tablecellhorizontalalign': 'tableCellHorizontalAlign',\n 'tablecellverticalalign': 'tableCellVerticalAlign',\n 'createtable': 'createTable',\n 'removetable': 'removeTable',\n 'tableheader': 'tableHeader',\n 'tableremove': 'tableRemove',\n 'tablecellbackground': 'tableCellBackground',\n 'tableeditproperties': 'tableEditProperties',\n 'styles': 'styles',\n 'insertcolumnleft': 'insertColumnLeft',\n 'insertcolumnright': 'insertColumnRight',\n 'deletecolumn': 'deleteColumn',\n 'aligntop': 'AlignTop',\n 'alignmiddle': 'AlignMiddle',\n 'alignbottom': 'AlignBottom',\n 'insertrowbefore': 'insertRowBefore',\n 'insertrowafter': 'insertRowAfter',\n 'deleterow': 'deleteRow',\n 'formatpainter': 'formatPainter'\n};\nexport var fontNameLocale = [\n { locale: 'fontNameSegoeUI', value: 'Segoe UI' },\n { locale: 'fontNameArial', value: 'Arial,Helvetica,sans-serif' },\n { locale: 'fontNameGeorgia', value: 'Georgia,serif' },\n { locale: 'fontNameImpact', value: 'Impact,Charcoal,sans-serif' },\n { locale: 'fontNameTahoma', value: 'Tahoma,Geneva,sans-serif' },\n { locale: 'fontNameTimesNewRoman', value: 'Times New Roman,Times,serif' },\n { locale: 'fontNameVerdana', value: 'Verdana,Geneva,sans-serif' }\n];\nexport var formatsLocale = [\n { locale: 'formatsDropDownParagraph', value: 'P' },\n { locale: 'formatsDropDownCode', value: 'Pre' },\n { locale: 'formatsDropDownQuotation', value: 'BlockQuote' },\n { locale: 'formatsDropDownHeading1', value: 'H1' },\n { locale: 'formatsDropDownHeading2', value: 'H2' },\n { locale: 'formatsDropDownHeading3', value: 'H3' },\n { locale: 'formatsDropDownHeading4', value: 'H4' }\n];\nexport var numberFormatListLocale = [\n { locale: 'numberFormatListNone', value: 'none' },\n { locale: 'numberFormatListNumber', value: 'decimal' },\n { locale: 'numberFormatListLowerAlpha', value: 'lower-alpha' },\n { locale: 'numberFormatListUpperAlpha', value: 'upper-alpha' },\n { locale: 'numberFormatListLowerRoman', value: 'lower-roman' },\n { locale: 'numberFormatListUpperRoman', value: 'upper-roman' },\n { locale: 'numberFormatListLowerGreek', value: 'lower-greek' }\n];\nexport var bulletFormatListLocale = [\n { locale: 'bulletFormatListNone', value: 'none' },\n { locale: 'bulletFormatListDisc', value: 'disc' },\n { locale: 'bulletFormatListCircle', value: 'circle' },\n { locale: 'bulletFormatListSquare', value: 'square' },\n];\n","/**\n * @param {string} htmlAttributes - specifies the string value\n * @param {IRichTextEditor} rte - specifies the rte value\n * @param {boolean} isFrame - specifies the boolean value\n * @param {boolean} initial - specifies the boolean value\n * @returns {void}\n * @hidden\n */\nexport function setAttributes(htmlAttributes, rte, isFrame, initial) {\n var target;\n if (isFrame) {\n var iFrame = rte.contentModule.getDocument();\n target = iFrame.querySelector('body');\n }\n else {\n target = rte.element;\n }\n if (Object.keys(htmlAttributes).length) {\n for (var _i = 0, _a = Object.keys(htmlAttributes); _i < _a.length; _i++) {\n var htmlAttr = _a[_i];\n if (htmlAttr === 'class') {\n target.classList.add(htmlAttributes[\"\" + htmlAttr]);\n }\n else if (htmlAttr === 'disabled' && htmlAttributes[\"\" + htmlAttr] === 'disabled') {\n rte.enabled = false;\n rte.setEnable();\n }\n else if (htmlAttr === 'readonly' && htmlAttributes[\"\" + htmlAttr] === 'readonly') {\n rte.readonly = true;\n rte.setReadOnly(initial);\n }\n else if (htmlAttr === 'style') {\n target.setAttribute('style', htmlAttributes[\"\" + htmlAttr]);\n }\n else if (htmlAttr === 'tabindex') {\n rte.inputElement.setAttribute('tabindex', htmlAttributes[\"\" + htmlAttr]);\n }\n else if (htmlAttr === 'placeholder') {\n rte.placeholder = htmlAttributes[\"\" + htmlAttr];\n rte.setPlaceHolder();\n }\n else {\n var validateAttr = ['name', 'required'];\n if (validateAttr.indexOf(htmlAttr) > -1) {\n rte.valueContainer.setAttribute(htmlAttr, htmlAttributes[\"\" + htmlAttr]);\n }\n else {\n target.setAttribute(htmlAttr, htmlAttributes[\"\" + htmlAttr]);\n }\n }\n }\n }\n}\n","import { Browser, isNullOrUndefined as isNOU } from '@syncfusion/ej2-base';\nimport { getScrollableParent } from '@syncfusion/ej2-popups';\nimport * as events from '../base/constant';\nimport * as classes from '../base/classes';\nimport { addClass, removeClass } from '@syncfusion/ej2-base';\n/**\n * `FullScreen` module is used to maximize and minimize screen\n */\nvar FullScreen = /** @class */ (function () {\n function FullScreen(parent) {\n this.parent = parent;\n this.addEventListener();\n }\n /**\n * showFullScreen method\n *\n * @param {MouseEvent} event - specifies the mouse event\n * @returns {void}\n * @hidden\n\n */\n FullScreen.prototype.showFullScreen = function (event) {\n var _this = this;\n if (this.parent.toolbarSettings.enable === true && this.parent.editorMode !== 'Markdown'\n && !isNOU(this.parent.quickToolbarModule)) {\n this.parent.quickToolbarModule.hideQuickToolbars();\n }\n this.scrollableParent = getScrollableParent(this.parent.element);\n if (!this.parent.element.classList.contains(classes.CLS_FULL_SCREEN)) {\n var evenArgs = {\n cancel: false,\n requestType: 'Maximize',\n targetItem: 'Maximize',\n args: event\n };\n this.parent.trigger(events.actionBegin, evenArgs, function (beginEventArgs) {\n if (!beginEventArgs.cancel) {\n if (_this.parent.toolbarSettings.enableFloating &&\n !_this.parent.inlineMode.enable && _this.parent.toolbarSettings.enable) {\n _this.parent.getToolbarElement().style.width = '100%';\n _this.parent.getToolbarElement().style.top = '0px';\n }\n _this.parent.element.classList.add(classes.CLS_FULL_SCREEN);\n _this.toggleParentOverflow(true);\n var isExpand = _this.parent.element.querySelectorAll('.e-toolbar-extended.e-popup-open').length > 0 ? true : false;\n _this.parent.setContentHeight(null, isExpand);\n if (_this.parent.toolbarModule) {\n if (!_this.parent.getBaseToolbarObject().toolbarObj.items[0].properties) {\n _this.parent.getBaseToolbarObject().toolbarObj.removeItems(0);\n }\n if (Browser.isDevice) {\n _this.parent.toolbarModule.removeFixedTBarClass();\n }\n _this.parent.toolbarModule.updateItem({\n targetItem: 'Maximize',\n updateItem: 'Minimize',\n baseToolbar: _this.parent.getBaseToolbarObject()\n });\n }\n _this.parent.refreshUI();\n _this.parent.trigger(events.actionComplete, { requestType: 'Maximize', targetItem: 'Maximize', args: event });\n }\n });\n }\n };\n /**\n * hideFullScreen method\n *\n * @param {MouseEvent} event - specifies the mouse event\n * @returns {void}\n * @hidden\n\n */\n FullScreen.prototype.hideFullScreen = function (event) {\n var _this = this;\n if (this.parent.toolbarSettings.enable === true && this.parent.editorMode !== 'Markdown'\n && !isNOU(this.parent.quickToolbarModule)) {\n this.parent.quickToolbarModule.hideQuickToolbars();\n }\n if (this.parent.element.classList.contains(classes.CLS_FULL_SCREEN)) {\n var evenArgs = {\n cancel: false,\n requestType: 'Minimize',\n targetItem: 'Minimize',\n args: event\n };\n this.parent.trigger(events.actionBegin, evenArgs, function (beginEventArgs) {\n if (!beginEventArgs.cancel) {\n _this.parent.element.classList.remove(classes.CLS_FULL_SCREEN);\n var elem = document.querySelectorAll('.e-rte-overflow');\n for (var i = 0; i < elem.length; i++) {\n removeClass([elem[i]], ['e-rte-overflow']);\n }\n var isExpand = _this.parent.element.querySelectorAll('.e-toolbar-extended.e-popup-open').length > 0 ? true : false;\n _this.parent.setContentHeight(null, isExpand);\n if (_this.parent.toolbarModule) {\n if (!_this.parent.getBaseToolbarObject().toolbarObj.items[0].properties) {\n _this.parent.getBaseToolbarObject().toolbarObj.removeItems(0);\n }\n _this.parent.toolbarModule.updateItem({\n targetItem: 'Minimize',\n updateItem: 'Maximize',\n baseToolbar: _this.parent.getBaseToolbarObject()\n });\n if (Browser.isDevice && _this.parent.inlineMode.enable) {\n _this.parent.toolbarModule.addFixedTBarClass();\n }\n }\n _this.parent.trigger(events.actionComplete, { requestType: 'Minimize', targetItem: 'Minimize', args: event });\n }\n });\n }\n };\n // eslint-disable-next-line\n FullScreen.prototype.toggleParentOverflow = function (isAdd) {\n if (isNOU(this.scrollableParent)) {\n return;\n }\n for (var i = 0; i < this.scrollableParent.length; i++) {\n if (this.scrollableParent[i].nodeName === '#document') {\n var elem = document.querySelector('body');\n addClass([elem], ['e-rte-overflow']);\n }\n else {\n var elem = this.scrollableParent[i];\n addClass([elem], ['e-rte-overflow']);\n }\n }\n };\n FullScreen.prototype.onKeyDown = function (event) {\n var originalEvent = event.args;\n switch (originalEvent.action) {\n case 'full-screen':\n this.showFullScreen(event.args);\n originalEvent.preventDefault();\n break;\n case 'escape':\n this.hideFullScreen(event.args);\n originalEvent.preventDefault();\n break;\n }\n };\n FullScreen.prototype.addEventListener = function () {\n this.parent.on(events.keyDown, this.onKeyDown, this);\n this.parent.on(events.destroy, this.destroy, this);\n this.parent.on(events.moduleDestroy, this.moduleDestroy, this);\n };\n FullScreen.prototype.removeEventListener = function () {\n this.parent.off(events.keyDown, this.onKeyDown);\n this.parent.off(events.destroy, this.destroy);\n this.parent.off(events.moduleDestroy, this.moduleDestroy);\n };\n /**\n * destroy method\n *\n * @returns {void}\n * @hidden\n\n */\n FullScreen.prototype.destroy = function () {\n if (this.parent.element.classList.contains(classes.CLS_FULL_SCREEN)) {\n this.toggleParentOverflow(false);\n }\n var elem = document.querySelectorAll('.e-rte-overflow');\n for (var i = 0; i < elem.length; i++) {\n removeClass([elem[i]], ['e-rte-overflow']);\n }\n this.removeEventListener();\n };\n FullScreen.prototype.moduleDestroy = function () {\n this.parent = null;\n };\n return FullScreen;\n}());\nexport { FullScreen };\n","import { isNullOrUndefined as isNOU, detach, Browser } from '@syncfusion/ej2-base';\nimport * as events from '../base/constant';\n/**\n * `EnterKey` module is used to handle enter key press actions.\n */\nvar EnterKeyAction = /** @class */ (function () {\n function EnterKeyAction(parent) {\n this.parent = parent;\n this.addEventListener();\n }\n EnterKeyAction.prototype.addEventListener = function () {\n this.parent.on(events.enterHandler, this.enterHandler, this);\n this.parent.on(events.destroy, this.destroy, this);\n this.parent.on(events.moduleDestroy, this.moduleDestroy, this);\n };\n EnterKeyAction.prototype.destroy = function () {\n this.removeEventListener();\n };\n EnterKeyAction.prototype.moduleDestroy = function () {\n this.parent = null;\n };\n EnterKeyAction.prototype.removeEventListener = function () {\n this.parent.off(events.enterHandler, this.enterHandler);\n this.parent.off(events.destroy, this.destroy);\n this.parent.off(events.moduleDestroy, this.moduleDestroy);\n };\n EnterKeyAction.prototype.getRangeNode = function () {\n this.range = this.parent.getRange();\n this.startNode = this.range.startContainer.nodeName === '#text' ? this.range.startContainer.parentElement :\n this.range.startContainer;\n this.endNode = this.range.endContainer.nodeName === '#text' ? this.range.endContainer.parentElement :\n this.range.endContainer;\n };\n EnterKeyAction.prototype.enterHandler = function (e) {\n var _this = this;\n this.getRangeNode();\n var isTableEnter = true;\n this.formatTags = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'blockquote'];\n if (!isNOU(this.startNode.closest('TABLE')) && !isNOU(this.endNode.closest('TABLE'))) {\n isTableEnter = false;\n var curElement = this.startNode;\n var blockElement = curElement;\n while (!this.parent.formatter.editorManager.domNode.isBlockNode(curElement)) {\n curElement = curElement.parentElement;\n blockElement = curElement;\n }\n isTableEnter = blockElement.tagName === 'TD' || blockElement.tagName === 'TBODY' ? false : true;\n }\n if (e.args.which === 13 && e.args.code === 'Enter') {\n if (isNOU(this.startNode.closest('LI, UL, OL')) && isNOU(this.endNode.closest('LI, UL, OL')) && isTableEnter &&\n isNOU(this.startNode.closest('PRE')) && isNOU(this.endNode.closest('PRE'))) {\n var shiftKey_1 = e.args.shiftKey;\n var actionBeginArgs = {\n cancel: false,\n name: events.actionBegin,\n requestType: shiftKey_1 ? 'ShiftEnterAction' : 'EnterAction',\n originalEvent: e.args\n };\n this.parent.trigger(events.actionBegin, actionBeginArgs, function (actionBeginArgs) {\n if (!actionBeginArgs.cancel) {\n if (!(_this.range.startOffset === _this.range.endOffset && _this.range.startContainer === _this.range.endContainer)) {\n if (!(_this.range.startContainer.nodeName === 'SPAN' && (_this.range.startContainer.classList.contains('e-video-wrap') ||\n _this.range.startContainer.classList.contains('e-audio-wrap')))) {\n _this.range.deleteContents();\n }\n if (_this.range.startContainer.nodeName === '#text' && _this.range.startContainer.textContent.length === 0 &&\n _this.range.startContainer.parentElement !== _this.parent.inputElement) {\n if (_this.parent.enterKey === 'BR') {\n _this.range.startContainer.parentElement.innerHTML = '​';\n }\n else {\n _this.range.startContainer.parentElement.innerHTML = '
';\n }\n }\n else if (_this.range.startContainer === _this.parent.inputElement && _this.range.startContainer.innerHTML === '') {\n _this.range.startContainer.innerHTML = '
';\n var focusElem = _this.range.startContainer.childNodes[_this.range.startOffset];\n _this.parent.formatter.editorManager.nodeSelection.setCursorPoint(_this.parent.contentModule.getDocument(), focusElem, 0);\n }\n else if (_this.parent.inputElement === _this.range.startContainer) {\n var focusElem = _this.range.startContainer.childNodes[_this.range.startOffset];\n if (focusElem.nodeName === '#text' && focusElem.textContent.length === 0) {\n _this.parent.formatter.editorManager.nodeSelection.setCursorPoint(_this.parent.contentModule.getDocument(), focusElem, focusElem.textContent.length === 0 ? 0 : focusElem.previousSibling.textContent.length);\n }\n else {\n _this.parent.formatter.editorManager.nodeSelection.setCursorPoint(_this.parent.contentModule.getDocument(), focusElem, focusElem.textContent.length >= 0 ? 0 : 1);\n if (focusElem.previousSibling.textContent.length === 0) {\n detach(focusElem.previousSibling);\n if (!shiftKey_1) {\n var currentFocusElem = !isNOU(focusElem.lastChild) ? focusElem.lastChild : focusElem;\n while (!isNOU(currentFocusElem) && currentFocusElem.nodeName !== '#text' && currentFocusElem.nodeName !== 'BR') {\n currentFocusElem = currentFocusElem.lastChild;\n }\n if (currentFocusElem.nodeName !== 'BR' && currentFocusElem.parentElement.textContent.length === 0 && currentFocusElem.parentElement.innerHTML.length === 0 &&\n currentFocusElem.parentElement.nodeName !== 'BR') {\n currentFocusElem.parentElement.appendChild(_this.parent.createElement('BR'));\n }\n _this.parent.formatter.editorManager.nodeSelection.setCursorPoint(_this.parent.contentModule.getDocument(), currentFocusElem.nodeName === 'BR' ? currentFocusElem : currentFocusElem.parentElement, currentFocusElem.parentElement.textContent.length >= 0 || currentFocusElem.nodeName === 'BR' ? 0 : 1);\n }\n }\n else if (focusElem.textContent.length === 0) {\n var currentFocusElem = focusElem.previousSibling.nodeName === '#text' ? focusElem.previousSibling : focusElem.previousSibling.lastChild;\n while (!isNOU(currentFocusElem) && currentFocusElem.nodeName !== '#text') {\n currentFocusElem = currentFocusElem.lastChild;\n }\n _this.parent.formatter.editorManager.nodeSelection.setCursorPoint(_this.parent.contentModule.getDocument(), currentFocusElem, currentFocusElem.textContent.length);\n detach(focusElem);\n }\n else if (_this.parent.enterKey !== 'BR' &&\n focusElem.previousSibling.textContent.length !== 0 && focusElem.textContent.length !== 0) {\n e.args.preventDefault();\n return;\n }\n }\n _this.getRangeNode();\n }\n }\n if (_this.range.startContainer === _this.range.endContainer &&\n _this.range.startOffset === _this.range.endOffset && _this.range.startContainer === _this.parent.inputElement) {\n if (!(_this.parent.inputElement.childNodes.length === 1 && _this.parent.inputElement.childNodes[0].nodeName === 'TABLE')) {\n if (isNOU(_this.range.startContainer.childNodes[_this.range.startOffset])) {\n var currentLastElem = _this.range.startContainer.childNodes[_this.range.startOffset - 1];\n while (currentLastElem.lastChild !== null && currentLastElem.nodeName !== '#text') {\n currentLastElem = currentLastElem.lastChild;\n }\n _this.parent.formatter.editorManager.nodeSelection.setCursorPoint(_this.parent.contentModule.getDocument(), currentLastElem, (currentLastElem.nodeName === 'BR' ? 0 : currentLastElem.textContent.length));\n }\n else {\n _this.parent.formatter.editorManager.nodeSelection.setCursorPoint(_this.parent.contentModule.getDocument(), _this.range.startContainer.childNodes[_this.range.startOffset], 0);\n }\n }\n _this.getRangeNode();\n }\n if ((_this.parent.enterKey === 'P' && !shiftKey_1) || (_this.parent.enterKey === 'DIV' && !shiftKey_1) ||\n (_this.parent.shiftEnterKey === 'P' && shiftKey_1) ||\n (_this.parent.shiftEnterKey === 'DIV' && shiftKey_1)) {\n if (_this.range.startOffset === 1 && _this.parent.inputElement.childNodes.length === 1 && _this.parent.inputElement.childNodes[0].nodeName === 'TABLE') {\n var newElem = _this.createInsertElement(shiftKey_1);\n newElem.appendChild(_this.parent.createElement('BR'));\n _this.parent.inputElement.appendChild(newElem);\n _this.parent.formatter.editorManager.nodeSelection.setCursorPoint(_this.parent.contentModule.getDocument(), newElem, 0);\n }\n else {\n var nearBlockNode = void 0;\n if (isTableEnter && _this.parent.formatter.editorManager.domNode.isBlockNode(_this.startNode)) {\n nearBlockNode = _this.startNode;\n }\n else {\n nearBlockNode = _this.parent.formatter.editorManager.domNode.blockParentNode(_this.startNode);\n }\n var isMediaNode = false; // To check the image audio and video node cases\n var isFocusedFirst = false;\n if (_this.range.startOffset !== 0 && _this.range.endOffset !== 0 &&\n _this.range.startContainer === _this.range.endContainer && !(!isNOU(nearBlockNode.childNodes[0])\n && nearBlockNode.childNodes[0].nodeName === 'IMG' && nearBlockNode.querySelectorAll('img, audio, video').length > 0)) {\n var startNodeText = _this.range.startContainer.textContent;\n var splitFirstText = startNodeText.substring(0, _this.range.startOffset);\n // eslint-disable-next-line max-len\n if (splitFirstText.charCodeAt(_this.range.startOffset - 1) !== 160 && splitFirstText.trim().length === 0) {\n isFocusedFirst = true;\n }\n }\n else if (_this.range.startOffset === 0 && _this.range.endOffset === 0) {\n isFocusedFirst = true;\n }\n _this.removeBRElement(nearBlockNode);\n var fireFoxEnterAtMiddle = Browser.userAgent.indexOf('Firefox') !== -1 && _this.range.startOffset === 0 && _this.range.startContainer === _this.range.endContainer &&\n _this.range.startContainer.nodeName === '#text' && !_this.parent.formatter.editorManager.domNode.isBlockNode(_this.range.startContainer.previousSibling) &&\n _this.range.startContainer.parentElement === _this.range.startContainer.previousSibling.parentElement;\n // eslint-disable-next-line max-len\n if (!fireFoxEnterAtMiddle && ((_this.range.startOffset === 0 && _this.range.endOffset === 0) || isFocusedFirst) &&\n !(!isNOU(_this.range.startContainer.previousSibling) &&\n (_this.range.startContainer.previousSibling.nodeName === 'IMG' || _this.range.startContainer.previousSibling.nodeName === 'BR'))) {\n var isNearBlockLengthZero = void 0;\n var newElem = void 0;\n if (!isNOU(_this.range.startContainer.childNodes) && _this.range.startContainer.textContent.length === 0\n && (_this.range.startContainer.querySelectorAll('img, audio, video').length > 0 ||\n _this.range.startContainer.nodeName === 'IMG' || _this.range.startContainer.nodeName === 'TABLE')) {\n newElem = _this.createInsertElement(shiftKey_1);\n isMediaNode = true;\n isNearBlockLengthZero = false;\n }\n else {\n if ((nearBlockNode.textContent.trim().length !== 0 ||\n nearBlockNode.childNodes[0].nodeName === 'IMG' ||\n (nearBlockNode.textContent.trim() === '' && nearBlockNode.querySelectorAll('img, audio, video').length > 0))) {\n if ((_this.range.startOffset === _this.range.endOffset && _this.range.startOffset !== 0)) {\n newElem = _this.parent.formatter.editorManager.nodeCutter.SplitNode(_this.range, nearBlockNode, false).cloneNode(true);\n }\n else {\n newElem = _this.parent.formatter.editorManager.nodeCutter.SplitNode(_this.range, nearBlockNode, true).cloneNode(true);\n isMediaNode = true;\n }\n isNearBlockLengthZero = false;\n }\n else {\n newElem = _this.parent.formatter.editorManager.nodeCutter.SplitNode(_this.range, nearBlockNode, true).cloneNode(true);\n isNearBlockLengthZero = true;\n }\n }\n var insertElem = void 0;\n if (_this.formatTags.indexOf(newElem.nodeName.toLocaleLowerCase()) < 0) {\n insertElem = _this.createInsertElement(shiftKey_1);\n }\n else {\n insertElem = _this.parent.createElement(newElem.nodeName);\n }\n while (newElem.firstChild) {\n insertElem.appendChild(newElem.firstChild);\n }\n nearBlockNode.parentElement.insertBefore(insertElem, nearBlockNode);\n if (!isNearBlockLengthZero) {\n var currentFocusElem = insertElem;\n var finalFocusElem = void 0;\n if (_this.range.startOffset === _this.range.endOffset && _this.range.startOffset !== 0) {\n while (!isNOU(currentFocusElem) && currentFocusElem.nodeName !== '#text' &&\n currentFocusElem.nodeName !== 'BR') {\n finalFocusElem = currentFocusElem;\n currentFocusElem = currentFocusElem.lastChild;\n }\n }\n else {\n finalFocusElem = currentFocusElem;\n }\n finalFocusElem.innerHTML = '
';\n if (!isMediaNode) {\n detach(nearBlockNode);\n }\n }\n _this.parent.formatter.editorManager.nodeSelection.setCursorPoint(_this.parent.contentModule.getDocument(), insertElem.nextElementSibling, 0);\n }\n else if (nearBlockNode.textContent.length === 0 && !(!isNOU(nearBlockNode.childNodes[0]) && nearBlockNode.childNodes[0].nodeName === 'IMG')) {\n if (!isNOU(nearBlockNode.children[0]) && nearBlockNode.children[0].tagName !== 'BR') {\n var newElem = _this.parent.formatter.editorManager.nodeCutter.SplitNode(_this.range, nearBlockNode, false).cloneNode(true);\n _this.parent.formatter.editorManager.domNode.insertAfter(newElem, nearBlockNode);\n _this.parent.formatter.editorManager.nodeSelection.setCursorPoint(_this.parent.contentModule.getDocument(), newElem, newElem.textContent.length >= 0 ? 0 : 1);\n }\n else {\n var insertElem = _this.createInsertElement(shiftKey_1);\n insertElem.innerHTML = '
';\n _this.parent.formatter.editorManager.domNode.insertAfter(insertElem, nearBlockNode);\n _this.parent.formatter.editorManager.nodeSelection.setCursorPoint(_this.parent.contentModule.getDocument(), insertElem, 0);\n }\n }\n else if (_this.range.startContainer === _this.range.endContainer && _this.range.startContainer.nodeName === 'SPAN' &&\n (_this.range.startContainer.classList.contains('e-video-wrap') ||\n _this.range.startContainer.classList.contains('e-audio-wrap'))) {\n if (nearBlockNode.textContent.trim().length > 0) {\n var newElem = _this.parent.formatter.editorManager.nodeCutter.SplitNode(_this.range, nearBlockNode, true);\n var audioVideoElem = !isNOU(newElem.previousSibling.querySelector('.e-video-wrap')) ?\n newElem.previousSibling.querySelector('.e-video-wrap') : newElem.previousSibling.querySelector('.e-audio-wrap');\n var isBRInserted = false;\n var lastNode = audioVideoElem.previousSibling;\n while (!isNOU(lastNode) && lastNode.nodeName !== '#text') {\n lastNode = lastNode.lastChild;\n }\n if (isNOU(lastNode)) {\n var brElm = _this.parent.createElement('br');\n audioVideoElem.parentElement.appendChild(brElm);\n isBRInserted = true;\n }\n if (isBRInserted) {\n _this.parent.formatter.editorManager.nodeSelection.setCursorPoint(_this.parent.contentModule.getDocument(), audioVideoElem.parentElement, 0);\n }\n else {\n _this.parent.formatter.editorManager.nodeSelection.setCursorPoint(_this.parent.contentModule.getDocument(), lastNode, lastNode.textContent.length);\n }\n detach(audioVideoElem);\n }\n else {\n var newElem = _this.parent.formatter.editorManager.nodeCutter.SplitNode(_this.range, nearBlockNode, true);\n var focusElem = newElem.previousSibling;\n while (!isNOU(focusElem.firstChild)) {\n detach(focusElem.firstChild);\n }\n var brElm = _this.parent.createElement('br');\n focusElem.appendChild(brElm);\n _this.parent.formatter.editorManager.nodeSelection.setCursorPoint(_this.parent.contentModule.getDocument(), focusElem, 0);\n }\n if (!isNOU(_this.parent.audioModule)) {\n _this.parent.audioModule.hideAudioQuickToolbar();\n }\n if (!isNOU(_this.parent.videoModule)) {\n _this.parent.videoModule.hideVideoQuickToolbar();\n }\n }\n else {\n var newElem = _this.parent.formatter.editorManager.nodeCutter.SplitNode(_this.range, nearBlockNode, true);\n if (!isNOU(newElem.childNodes[0]) && newElem.childNodes[0].nodeName === '#text' &&\n newElem.childNodes[0].textContent.length === 0) {\n detach(newElem.childNodes[0]);\n }\n if (newElem.textContent.trim().length === 0) {\n var brElm = _this.parent.createElement('br');\n if (_this.startNode.nodeName === 'A') {\n var startParentElem = _this.startNode.parentElement;\n _this.startNode.parentElement.insertBefore(brElm, _this.startNode);\n detach(_this.startNode);\n _this.startNode = startParentElem;\n }\n else {\n if (_this.startNode.nodeName !== 'BR') {\n _this.startNode.appendChild(brElm);\n }\n }\n if (newElem.childNodes[0].textContent === '\\n') {\n detach(newElem.childNodes[0]);\n }\n _this.parent.formatter.editorManager.nodeSelection.setCursorPoint(_this.parent.contentModule.getDocument(), _this.startNode, 0);\n }\n if (((_this.parent.enterKey === 'P' || _this.parent.enterKey === 'DIV') && !shiftKey_1) || ((_this.parent.shiftEnterKey === 'DIV' ||\n _this.parent.shiftEnterKey === 'P') && shiftKey_1)) {\n var isHeadingTag = _this.formatTags.indexOf(newElem.nodeName.toLocaleLowerCase());\n if ((isHeadingTag < 0) || (isHeadingTag >= 0 && newElem.textContent.trim().length === 0)) {\n var insertElm = _this.createInsertElement(shiftKey_1);\n while (newElem.firstChild) {\n insertElm.appendChild(newElem.firstChild);\n }\n _this.parent.formatter.editorManager.domNode.insertAfter(insertElm, newElem);\n detach(newElem);\n _this.parent.formatter.editorManager.nodeSelection.setCursorPoint(_this.parent.contentModule.getDocument(), _this.parent.formatter.editorManager.domNode.isBlockNode(_this.startNode) ?\n insertElm : _this.startNode, 0);\n }\n }\n }\n }\n e.args.preventDefault();\n }\n if ((_this.parent.enterKey === 'BR' && !shiftKey_1) || (_this.parent.shiftEnterKey === 'BR' && shiftKey_1)) {\n var currentParent = void 0;\n if (!_this.parent.formatter.editorManager.domNode.isBlockNode(_this.startNode)) {\n var currentNode = _this.startNode;\n var previousNode = currentNode;\n while (!_this.parent.formatter.editorManager.domNode.isBlockNode(currentNode)) {\n previousNode = currentNode;\n currentNode = currentNode.parentElement;\n }\n currentParent = currentNode === _this.parent.inputElement ?\n previousNode : currentNode;\n }\n else {\n currentParent = _this.startNode;\n }\n _this.removeBRElement(currentParent);\n var isEmptyBrInserted = false;\n var currentParentLastChild = currentParent.lastChild;\n while (!isNOU(currentParentLastChild) && !(currentParentLastChild.nodeName === '#text' || currentParentLastChild.nodeName === 'BR'\n || currentParentLastChild.nodeName === 'IMG')) {\n currentParentLastChild = currentParentLastChild.lastChild;\n }\n var isLastNodeLength = _this.range.startContainer === currentParentLastChild ?\n _this.range.startContainer.textContent.length : currentParent.textContent.length;\n var isImageElement = (_this.range.startContainer.nodeName === 'IMG' || (_this.range.startContainer.childNodes.length > 0\n && _this.range.startContainer.childNodes[_this.range.startOffset].nodeName === 'IMG'));\n if (currentParent !== _this.parent.inputElement &&\n _this.parent.formatter.editorManager.domNode.isBlockNode(currentParent) &&\n _this.range.startOffset === _this.range.endOffset &&\n (_this.range.startOffset === isLastNodeLength ||\n (currentParent.textContent.trim().length === 0 && isImageElement))) {\n var focusBRElem = _this.parent.createElement('br');\n if (_this.range.startOffset === 0 && _this.range.startContainer.nodeName === 'TABLE') {\n _this.range.startContainer.parentElement.insertBefore(focusBRElem, _this.range.startContainer);\n }\n else {\n if (currentParentLastChild.nodeName === 'BR' && currentParent.textContent.length === 0) {\n _this.parent.formatter.editorManager.domNode.insertAfter(focusBRElem, currentParentLastChild);\n }\n else if (_this.range.startOffset === 0 && _this.range.endOffset === 0 && isImageElement) {\n var imageElement = _this.range.startContainer.nodeName === 'IMG' ? _this.range.startContainer :\n _this.range.startContainer.childNodes[_this.range.startOffset];\n currentParent.insertBefore(focusBRElem, imageElement);\n focusBRElem = imageElement;\n }\n else {\n var lineBreakBRElem = _this.parent.createElement('br');\n _this.parent.formatter.editorManager.domNode.insertAfter(focusBRElem, _this.range.startContainer);\n _this.parent.formatter.editorManager.domNode.insertAfter(lineBreakBRElem, _this.range.startContainer);\n }\n }\n _this.parent.formatter.editorManager.nodeSelection.setCursorPoint(_this.parent.contentModule.getDocument(), focusBRElem, 0);\n }\n else if (!isNOU(currentParent) && currentParent !== _this.parent.inputElement && currentParent.nodeName !== 'BR') {\n if (currentParent.textContent.trim().length === 0 || (currentParent.textContent.trim().length === 1 &&\n currentParent.textContent.charCodeAt(0) === 8203)) {\n var newElem = _this.parent.formatter.editorManager.nodeCutter.SplitNode(_this.range, currentParent, true).cloneNode(true);\n _this.parent.formatter.editorManager.domNode.insertAfter(newElem, currentParent);\n var outerBRElem = _this.parent.createElement('br');\n newElem.parentElement.insertBefore(outerBRElem, newElem);\n _this.parent.formatter.editorManager.nodeSelection.setCursorPoint(_this.parent.contentModule.getDocument(), newElem, 0);\n }\n else {\n var newElem = void 0;\n var outerBRElem = _this.parent.createElement('br');\n if (_this.range.startOffset === 0 && _this.range.endOffset === 0 &&\n !isNOU(currentParent.previousSibling) && currentParent.previousSibling.nodeName === 'BR') {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n newElem = _this.parent.formatter.editorManager.nodeCutter.SplitNode(_this.range, currentParent, false).cloneNode(true);\n _this.parent.formatter.editorManager.domNode.insertAfter(outerBRElem, currentParent);\n _this.insertFocusContent();\n var currentFocusElem = outerBRElem.nextSibling;\n while (!isNOU(currentFocusElem) && currentFocusElem.nodeName !== '#text') {\n currentFocusElem = currentFocusElem.lastChild;\n }\n _this.parent.formatter.editorManager.nodeSelection.setCursorPoint(_this.parent.contentModule.getDocument(), currentFocusElem, 0);\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n isEmptyBrInserted = true;\n }\n else {\n _this.insertBRElement();\n }\n }\n }\n else {\n _this.insertBRElement();\n }\n e.args.preventDefault();\n }\n _this.parent.trigger(events.actionComplete, { requestType: shiftKey_1 ? 'ShiftEnterAction' : 'EnterAction', args: e.args });\n }\n });\n }\n }\n };\n EnterKeyAction.prototype.removeBRElement = function (currentElement) {\n if (Browser.userAgent.indexOf('Firefox') !== -1 &&\n this.range.endOffset === currentElement.textContent.length && (currentElement.textContent.length !== 0 ||\n currentElement.querySelectorAll('BR').length > 1) &&\n !isNOU(currentElement.lastChild) && currentElement.lastChild.nodeName === 'BR') {\n detach(currentElement.lastChild);\n }\n };\n EnterKeyAction.prototype.insertBRElement = function () {\n var isEmptyBrInserted = false;\n var isFocusTextNode = true;\n if (this.range.endContainer.textContent.length === 0 && this.range.startContainer.nodeName === 'BR') {\n isFocusTextNode = false;\n }\n var brElm = this.parent.createElement('br');\n if (this.startNode.nodeName === 'BR' && this.endNode.nodeName === 'BR' && this.range.startOffset === 0 && this.range.startOffset === this.range.endOffset) {\n this.parent.formatter.editorManager.domNode.insertAfter(brElm, this.startNode);\n isEmptyBrInserted = true;\n }\n else {\n if (this.startNode === this.parent.inputElement && !isNOU(this.range.startContainer.previousSibling) &&\n this.range.startContainer.previousSibling.nodeName === 'BR' && this.range.startContainer.textContent.length === 0) {\n isEmptyBrInserted = true;\n }\n this.range.insertNode(brElm);\n }\n if (isEmptyBrInserted || (!isNOU(brElm.nextElementSibling) && brElm.nextElementSibling.tagName === 'BR') || (!isNOU(brElm.nextSibling) && brElm.nextSibling.textContent.length > 0)) {\n this.parent.formatter.editorManager.nodeSelection.setCursorPoint(this.parent.contentModule.getDocument(), !isNOU(brElm.nextSibling) && isFocusTextNode ? brElm.nextSibling : brElm, 0);\n isEmptyBrInserted = false;\n }\n else {\n var brElm2 = this.parent.createElement('br');\n this.range.insertNode(brElm2);\n this.parent.formatter.editorManager.nodeSelection.setCursorPoint(this.parent.contentModule.getDocument(), brElm, 0);\n }\n };\n EnterKeyAction.prototype.insertFocusContent = function () {\n if (this.range.startContainer.textContent.length === 0) {\n if (this.range.startContainer.nodeName === '#text') {\n this.range.startContainer.parentElement.innerHTML = '​';\n }\n else {\n this.range.startContainer.innerHTML = '​';\n }\n }\n };\n EnterKeyAction.prototype.createInsertElement = function (shiftKey) {\n var insertElem;\n if ((this.parent.enterKey === 'DIV' && !shiftKey) || (this.parent.shiftEnterKey === 'DIV' && shiftKey)) {\n insertElem = this.parent.createElement('div');\n }\n else if ((this.parent.enterKey === 'P' && !shiftKey) || (this.parent.shiftEnterKey === 'P' && shiftKey)) {\n insertElem = this.parent.createElement('p');\n }\n return insertElem;\n };\n return EnterKeyAction;\n}());\nexport { EnterKeyAction };\n","/**\n * Defines util methods used by Rich Text Editor.\n */\nimport { isNullOrUndefined as isNOU, addClass, removeClass, selectAll, createElement } from '@syncfusion/ej2-base';\nimport { Browser, detach, SanitizeHtmlHelper, extend } from '@syncfusion/ej2-base';\nimport * as classes from '../base/classes';\nimport * as CONSTANT from '../base/constant';\nimport * as model from '../models/items';\nimport { toolsLocale, fontNameLocale, formatsLocale, numberFormatListLocale, bulletFormatListLocale } from '../models/default-locale';\nvar undoRedoItems = ['Undo', 'Redo'];\nvar inlineNode = ['a', 'abbr', 'acronym', 'audio', 'b', 'bdi', 'bdo', 'big', 'br', 'button',\n 'canvas', 'cite', 'code', 'data', 'datalist', 'del', 'dfn', 'em', 'embed', 'font', 'i', 'iframe', 'img', 'input',\n 'ins', 'kbd', 'label', 'map', 'mark', 'meter', 'noscript', 'object', 'output', 'picture', 'progress',\n 'q', 'ruby', 's', 'samp', 'script', 'select', 'slot', 'small', 'span', 'strong', 'strike', 'sub', 'sup', 'svg',\n 'template', 'textarea', 'time', 'u', 'tt', 'var', 'video', 'wbr'];\n/**\n * @param {string} val - specifies the string value\n * @param {string} items - specifies the value\n * @returns {number} - returns the number value\n * @hidden\n */\nexport function getIndex(val, items) {\n var index = -1;\n items.some(function (item, i) {\n if (typeof item === 'string' && val === item.toLocaleLowerCase()) {\n index = i;\n return true;\n }\n return false;\n });\n return index;\n}\n/**\n * @param {Element} element - specifies the element\n * @param {string} className - specifies the string value\n * @returns {boolean} - returns the boolean value\n * @hidden\n */\nexport function hasClass(element, className) {\n var hasClass = false;\n if (element.classList.contains(className)) {\n hasClass = true;\n }\n return hasClass;\n}\n/**\n * @param {IDropDownItemModel} items - specifies the item model\n * @param {string} value - specifies the string value\n * @param {string} type - specifies the string value\n * @param {string} returnType - specifies the return type\n * @returns {string} - returns the string value\n * @hidden\n */\nexport function getDropDownValue(items, value, type, returnType) {\n var data;\n var result;\n for (var k = 0; k < items.length; k++) {\n if (type === 'value' && items[k].value.toLocaleLowerCase() === value.toLocaleLowerCase()) {\n data = items[k];\n break;\n }\n else if (type === 'text' && items[k].text.toLocaleLowerCase() === value.toLocaleLowerCase()) {\n data = items[k];\n break;\n }\n else if (type === 'subCommand' && items[k].subCommand.toLocaleLowerCase() === value.toLocaleLowerCase()) {\n data = items[k];\n break;\n }\n }\n if (!isNOU(data)) {\n switch (returnType) {\n case 'text':\n result = data.text;\n break;\n case 'value':\n result = data.value;\n break;\n case 'iconCss':\n result = data.iconCss;\n break;\n }\n }\n return result;\n}\n/**\n * @returns {boolean} - returns the boolean value\n * @hidden\n */\nexport function isIDevice() {\n var result = false;\n if (Browser.isDevice && Browser.isIos) {\n result = true;\n }\n return result;\n}\n/**\n * @param {string} value - specifies the value\n * @returns {string} - returns the string value\n * @hidden\n */\nexport function getFormattedFontSize(value) {\n if (isNOU(value)) {\n return '';\n }\n return value;\n}\n/**\n * @param {MouseEvent} e - specifies the mouse event\n * @param {HTMLElement} parentElement - specifies the parent element\n * @param {boolean} isIFrame - specifies the boolean value\n * @returns {number} - returns the number\n * @hidden\n */\nexport function pageYOffset(e, parentElement, isIFrame) {\n var y = 0;\n if (isIFrame) {\n y = window.pageYOffset + parentElement.getBoundingClientRect().top + e.clientY;\n }\n else {\n y = e.pageY;\n }\n return y;\n}\n/**\n * @param {string} item - specifies the string\n * @param {ServiceLocator} serviceLocator - specifies the service locator\n * @returns {string} - returns the string\n * @hidden\n */\nexport function getTooltipText(item, serviceLocator) {\n var i10n = serviceLocator.getService('rteLocale');\n var itemLocale = toolsLocale[\"\" + item];\n var tooltipText = i10n.getConstant(itemLocale);\n return tooltipText;\n}\n/**\n * @param {ISetToolbarStatusArgs} e - specifies the e element\n * @param {boolean} isPopToolbar - specifies the boolean value\n * @param {IRichTextEditor} self - specifies the parent element\n * @returns {void}\n * @hidden\n */\nexport function setToolbarStatus(e, isPopToolbar, self) {\n updateDropDownFontFormatLocale(self);\n var dropDown = e.dropDownModule;\n var data = e.args;\n var keys = Object.keys(e.args);\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n for (var j = 0; j < e.tbItems.length; j++) {\n var item = e.tbItems[j].subCommand;\n var itemStr = item && item.toLocaleLowerCase();\n if (item && (itemStr === key) || (item === 'UL' && key === 'unorderedlist') || (item === 'OL' && key === 'orderedlist') ||\n (itemStr === 'pre' && key === 'insertcode')) {\n if (typeof data[\"\" + key] === 'boolean') {\n if (data[\"\" + key] === true) {\n addClass([e.tbElements[j]], [classes.CLS_ACTIVE]);\n }\n else {\n removeClass([e.tbElements[j]], [classes.CLS_ACTIVE]);\n }\n }\n else if ((typeof data[\"\" + key] === 'string' || data[\"\" + key] === null) &&\n getIndex(key, e.parent.toolbarSettings.items) > -1) {\n var value = ((data[\"\" + key]) ? data[\"\" + key] : '');\n var result = '';\n switch (key) {\n case 'formats': {\n if (isNOU(dropDown.formatDropDown) || isPopToolbar ||\n (!isNOU(dropDown.formatDropDown) && dropDown.formatDropDown.isDestroyed)) {\n break;\n }\n var formatItems = e.parent.format.types;\n var formatContent = isNOU(e.parent.format.default) ? formatItems[0].text :\n e.parent.format.default;\n result = getDropDownValue(formatItems, value, 'subCommand', 'text');\n dropDown.formatDropDown.content = ('' +\n ''\n + (isNOU(result) ? formatContent : result) +\n '');\n dropDown.formatDropDown.dataBind();\n break;\n }\n case 'alignments': {\n if (isNOU(dropDown.alignDropDown) ||\n (!isNOU(dropDown.alignDropDown) && dropDown.alignDropDown.isDestroyed)) {\n break;\n }\n var alignItems = model.alignmentItems;\n result = getDropDownValue(alignItems, value, 'subCommand', 'iconCss');\n dropDown.alignDropDown.iconCss = isNOU(result) ? 'e-icons e-justify-left' : result;\n dropDown.alignDropDown.dataBind();\n break;\n }\n case 'fontname': {\n if (isNOU(dropDown.fontNameDropDown) || isPopToolbar ||\n (!isNOU(dropDown.fontNameDropDown) && dropDown.fontNameDropDown.isDestroyed)) {\n break;\n }\n var fontNameItems = e.parent.fontFamily.items;\n result = getDropDownValue(fontNameItems, value, 'value', 'text');\n var fontNameContent = isNOU(e.parent.fontFamily.default) ? fontNameItems[0].text :\n e.parent.fontFamily.default;\n var name_1 = (isNOU(result) ? fontNameContent : result);\n e.tbElements[j].title = name_1;\n dropDown.fontNameDropDown.content = ('' +\n ''\n + name_1 + '');\n dropDown.fontNameDropDown.dataBind();\n break;\n }\n case 'fontsize': {\n if (isNOU(dropDown.fontSizeDropDown) ||\n (!isNOU(dropDown.fontSizeDropDown) && dropDown.fontSizeDropDown.isDestroyed)) {\n break;\n }\n var fontSizeItems = e.parent.fontSize.items;\n var fontSizeContent = isNOU(e.parent.fontSize.default) ? fontSizeItems[1].text :\n e.parent.fontSize.default;\n result = getDropDownValue(fontSizeItems, (value === '' ? fontSizeContent.replace(/\\s/g, '') : value), 'value', 'text');\n dropDown.fontSizeDropDown.content = ('' +\n ''\n + getFormattedFontSize(result) + '');\n dropDown.fontSizeDropDown.dataBind();\n break;\n }\n }\n }\n }\n }\n }\n}\n/**\n * @param {string} items - specifies the string value\n * @returns {string[]} - returns the array value\n * @hidden\n */\nexport function getCollection(items) {\n if (typeof items === 'object') {\n return items;\n }\n else {\n return [items];\n }\n}\n/**\n * @param {string[]} items - specifies the array of string value\n * @param {IToolbarItemModel} toolbarItems - specifies the tool bar model\n * @returns {number} - returns the number\n * @hidden\n */\nexport function getTBarItemsIndex(items, toolbarItems) {\n var itemsIndex = [];\n for (var i = 0; i < items.length; i++) {\n for (var j = 0; j < toolbarItems.length; j++) {\n if (toolbarItems[j].type === 'Separator') {\n continue;\n }\n else {\n if (items[i] === 'OrderedList' && toolbarItems[j].subCommand === 'OL') {\n itemsIndex.push(j);\n break;\n }\n else if (items[i] === 'UnorderedList' && toolbarItems[j].subCommand === 'UL') {\n itemsIndex.push(j);\n break;\n }\n else if (items[i] === 'InsertCode' && toolbarItems[j].subCommand === 'Pre') {\n itemsIndex.push(j);\n break;\n }\n else if (items[i] === 'FileManager' && toolbarItems[j].subCommand === 'File') {\n itemsIndex.push(j);\n break;\n }\n else if (typeof (items[i]) === 'object' && items[i].command === 'Custom') {\n itemsIndex.push(i);\n break;\n }\n else if (items[i] === toolbarItems[j].subCommand) {\n itemsIndex.push(j);\n break;\n }\n }\n }\n }\n return itemsIndex;\n}\n/**\n * @param {BaseToolbar} baseToolbar - specifies the base\n * @param {boolean} undoRedoStatus - specifies the boolean value\n * @returns {void}\n * @hidden\n */\nexport function updateUndoRedoStatus(baseToolbar, undoRedoStatus) {\n var i = 0;\n var trgItems = getTBarItemsIndex(getCollection(undoRedoItems), baseToolbar.toolbarObj.items);\n var tbItems = selectAll('.' + classes.CLS_TB_ITEM, baseToolbar.toolbarObj.element);\n var keys = Object.keys(undoRedoStatus);\n for (var _i = 0, keys_2 = keys; _i < keys_2.length; _i++) {\n var key = keys_2[_i];\n var target = tbItems[trgItems[i]];\n if (target) {\n baseToolbar.toolbarObj.enableItems(target, undoRedoStatus[\"\" + key]);\n }\n i++;\n }\n}\n/**\n * To dispatch the event manually\n *\n * @param {Element} element - specifies the element.\n * @param {string} type - specifies the string type.\n * @returns {void}\n * @hidden\n\n */\nexport function dispatchEvent(element, type) {\n var evt = document.createEvent('HTMLEvents');\n evt.initEvent(type, false, true);\n element.dispatchEvent(evt);\n}\n/**\n * To parse the HTML\n *\n * @param {string} value - specifies the string value\n * @returns {DocumentFragment} - returns the document\n * @hidden\n */\nexport function parseHtml(value) {\n var tempNode = createElement('template');\n tempNode.innerHTML = value;\n if (tempNode.content instanceof DocumentFragment) {\n return tempNode.content;\n }\n else {\n return document.createRange().createContextualFragment(value);\n }\n}\n/**\n * @param {Document} docElement - specifies the document element\n * @param {Element} node - specifies the node\n * @returns {Node[]} - returns the node array\n * @hidden\n */\nexport function getTextNodesUnder(docElement, node) {\n var nodes = [];\n for (node = node.firstChild; node; node = node.nextSibling) {\n if (node.nodeType === 3) {\n nodes.push(node);\n }\n else {\n nodes = nodes.concat(getTextNodesUnder(docElement, node));\n }\n }\n return nodes;\n}\n/**\n * @param {IToolsItemConfigs} obj - specifies the configuration\n * @returns {void}\n * @hidden\n */\nexport function toObjectLowerCase(obj) {\n var convertedValue = {};\n var keys = Object.keys(obj);\n for (var i = 0; i < Object.keys(obj).length; i++) {\n convertedValue[keys[i].toLocaleLowerCase()] = obj[keys[i]];\n }\n return convertedValue;\n}\n/**\n * @param {string} value - specifies the string value\n * @param {IRichTextEditor} rteObj - specifies the rte object\n * @returns {string} - returns the string\n * @hidden\n */\nexport function getEditValue(value, rteObj) {\n var val;\n if (value !== null && value !== '') {\n val = rteObj.enableHtmlEncode ? updateTextNode(decode(value), rteObj) : updateTextNode(value, rteObj);\n rteObj.setProperties({ value: val }, true);\n }\n else {\n if (rteObj.enterKey === 'DIV') {\n val = rteObj.enableHtmlEncode ? '<div><br/></div>' : '

';\n }\n else if (rteObj.enterKey === 'BR') {\n val = rteObj.enableHtmlEncode ? '<br/>' : '
';\n }\n else {\n val = rteObj.enableHtmlEncode ? '<p><br/></p>' : '


';\n }\n }\n return val;\n}\n/**\n * @param {string} value - specifies the value\n * @param {IRichTextEditor} rteObj - specifies the rich text editor instance.\n * @returns {string} - returns the string\n * @hidden\n */\nexport function updateTextNode(value, rteObj) {\n var tempNode = document.createElement('div');\n var resultElm = document.createElement('div');\n var childNodes = tempNode.childNodes;\n tempNode.innerHTML = value;\n tempNode.setAttribute('class', 'tempDiv');\n if (childNodes.length > 0) {\n var isPreviousInlineElem = void 0;\n var previousParent = void 0;\n var insertElem = void 0;\n while (tempNode.firstChild) {\n var emptyBlockElem = tempNode.querySelectorAll(CONSTANT.blockEmptyNodes);\n for (var i = 0; i < emptyBlockElem.length; i++) {\n emptyBlockElem[i].innerHTML = '
';\n }\n var emptyInlineElem = tempNode.querySelectorAll(CONSTANT.inlineEmptyNodes);\n for (var i = 0; i < emptyInlineElem.length; i++) {\n emptyInlineElem[i].innerHTML = '​';\n }\n if (rteObj.enterKey !== 'BR' && ((tempNode.firstChild.nodeName === '#text' &&\n (tempNode.firstChild.textContent.indexOf('\\n') < 0 || tempNode.firstChild.textContent.trim() !== '')) ||\n inlineNode.indexOf(tempNode.firstChild.nodeName.toLocaleLowerCase()) >= 0)) {\n if (!isPreviousInlineElem) {\n if (rteObj.enterKey === 'DIV') {\n insertElem = createElement('div');\n }\n else {\n insertElem = createElement('p');\n }\n resultElm.appendChild(insertElem);\n insertElem.appendChild(tempNode.firstChild);\n }\n else {\n previousParent.appendChild(tempNode.firstChild);\n }\n previousParent = insertElem;\n isPreviousInlineElem = true;\n }\n else if (tempNode.firstChild.nodeName === '#text' && (tempNode.firstChild.textContent === '\\n' ||\n (tempNode.firstChild.textContent.indexOf('\\n') >= 0 && tempNode.firstChild.textContent.trim() === ''))) {\n detach(tempNode.firstChild);\n }\n else {\n resultElm.appendChild(tempNode.firstChild);\n isPreviousInlineElem = false;\n }\n }\n var imageElm = resultElm.querySelectorAll('img');\n for (var i = 0; i < imageElm.length; i++) {\n if (!imageElm[i].classList.contains(classes.CLS_RTE_IMAGE)) {\n imageElm[i].classList.add(classes.CLS_RTE_IMAGE);\n }\n if (!(imageElm[i].classList.contains(classes.CLS_IMGINLINE) ||\n imageElm[i].classList.contains(classes.CLS_IMGBREAK))) {\n imageElm[i].classList.add(classes.CLS_IMGINLINE);\n }\n }\n }\n return resultElm.innerHTML;\n}\n/**\n * @param {IRichTextEditor} rteObj - specifies the rte object\n * @returns {string} - returns the value based on enter configuration.\n * @hidden\n */\nexport function getDefaultValue(rteObj) {\n var currentVal;\n if (rteObj.enterKey === 'DIV') {\n currentVal = rteObj.enableHtmlEncode ? '<div><br/></div>' : '

';\n }\n else if (rteObj.enterKey === 'BR') {\n currentVal = rteObj.enableHtmlEncode ? '<br/>' : '
';\n }\n else {\n currentVal = rteObj.enableHtmlEncode ? '<p><br/></p>' : '


';\n }\n return currentVal;\n}\n/**\n * @param {string} value - specifies the value\n * @returns {boolean} - returns the boolean value\n * @hidden\n */\nexport function isEditableValueEmpty(value) {\n return (value === '


' || value === '<p><br></p>'\n || value === '

' || value === '<div><br></div>'\n || value === '
' || value === '<br>'\n || value === '') ? true : false;\n}\n/**\n * @param {string} value - specifies the string value\n * @returns {string} - returns the string\n * @hidden\n */\nexport function decode(value) {\n return value.replace(/&/g, '&').replace(/&lt;/g, '<')\n .replace(/</g, '<').replace(/&gt;/g, '>')\n .replace(/>/g, '>').replace(/ /g, ' ')\n .replace(/&nbsp;/g, ' ').replace(/"/g, '');\n}\n/**\n * @param {string} value - specifies the string value\n * @param {IRichTextEditor} parent - specifies the rte\n * @returns {string} - returns the string value\n * @hidden\n */\nexport function sanitizeHelper(value, parent) {\n if (parent.enableHtmlSanitizer) {\n var item = SanitizeHtmlHelper.beforeSanitize();\n if (item.selectors.tags[2] && item.selectors.tags[2].indexOf('iframe') > -1) {\n item.selectors.tags[2] = 'iframe:not(.e-rte-embed-url)';\n }\n var beforeEvent = {\n cancel: false,\n helper: null\n };\n extend(item, item, beforeEvent);\n parent.trigger('beforeSanitizeHtml', item);\n if (item.cancel && !isNOU(item.helper)) {\n value = item.helper(value);\n }\n else if (!item.cancel) {\n value = SanitizeHtmlHelper.serializeValue(item, value);\n }\n }\n return value;\n}\n/**\n * @param {string} dataUrl - specifies the string value\n * @returns {BaseToolbar} - returns the value\n * @hidden\n */\n//Converting the base64 url to blob\nexport function convertToBlob(dataUrl) {\n var arr = dataUrl.split(',');\n var mime = arr[0].match(/:(.*?);/)[1];\n var bstr = atob(arr[1]);\n var n = bstr.length;\n var u8arr = new Uint8Array(n);\n while (n--) {\n u8arr[n] = bstr.charCodeAt(n);\n }\n return new Blob([u8arr], { type: mime });\n}\n/**\n * @param {IRichTextEditor} self - specifies the rte\n * @param {string} localeItems - specifies the locale items\n * @param {IDropDownItemModel} item - specifies the dropdown item\n * @returns {string} - returns the value\n * @hidden\n */\nexport function getLocaleFontFormat(self, localeItems, item) {\n for (var i = 0; localeItems.length > i; i++) {\n if (localeItems[i].value === item.value || localeItems[i].value === item.subCommand) {\n return self.localeObj.getConstant(localeItems[i].locale);\n }\n }\n return item.text;\n}\n/**\n * @param {IRichTextEditor} self - specifies the rte\n * @returns {void}\n * @hidden\n */\nexport function updateDropDownFontFormatLocale(self) {\n model.fontFamily.forEach(function (item, i) {\n model.fontFamily[i].text = getLocaleFontFormat(self, fontNameLocale, model.fontFamily[i]);\n });\n model.formatItems.forEach(function (item, i) {\n model.formatItems[i].text = getLocaleFontFormat(self, formatsLocale, model.formatItems[i]);\n });\n model.numberFormatList.forEach(function (item, i) {\n model.numberFormatList[i].text = getLocaleFontFormat(self, numberFormatListLocale, model.numberFormatList[i]);\n });\n model.bulletFormatList.forEach(function (item, i) {\n model.bulletFormatList[i].text = getLocaleFontFormat(self, bulletFormatListLocale, model.bulletFormatList[i]);\n });\n}\n","/**\n * Resize library\n */\nimport { isNullOrUndefined as isNOU, createElement, EventHandler, detach, Browser } from '@syncfusion/ej2-base';\n/* eslint-disable */\nvar elementClass = ['north-west', 'north', 'north-east', 'west', 'east', 'south-west', 'south', 'south-east'];\nvar RESIZE_HANDLER = 'e-resize-handle';\nvar FOCUSED_HANDLER = 'e-focused-handle';\nvar DIALOG_RESIZABLE = 'e-dlg-resizable';\nvar RESTRICT_LEFT = ['e-restrict-left'];\nvar RESIZE_WITHIN_VIEWPORT = 'e-resize-viewport';\nvar dialogBorderResize = ['north', 'west', 'east', 'south'];\nvar targetElement;\nvar selectedHandler;\nvar originalWidth = 0;\nvar originalHeight = 0;\nvar originalX = 0;\nvar originalY = 0;\nvar originalMouseX = 0;\nvar originalMouseY = 0;\nvar minHeight;\nvar maxHeight;\nvar minWidth;\nvar maxWidth;\nvar containerElement;\nvar resizeStart = null;\nvar resize = null;\nvar resizeEnd = null;\n/* eslint-enable */\nvar resizeWestWidth;\nvar setLeft = true;\nvar previousWidth = 0;\nvar setWidth = true;\n// eslint-disable-next-line\nvar proxy;\n/**\n *\n * @param {ResizeArgs} args - specifies the resize args\n * @returns {void}\n */\nexport function createResize(args) {\n resizeStart = args.resizeBegin;\n resize = args.resizing;\n resizeEnd = args.resizeComplete;\n targetElement = getDOMElement(args.element);\n containerElement = getDOMElement(args.boundary);\n var directions = args.direction.split(' ');\n for (var i = 0; i < directions.length; i++) {\n if (dialogBorderResize.indexOf(directions[i]) >= 0 && directions[i]) {\n setBorderResizeElm(directions[i]);\n }\n else if (directions[i].trim() !== '') {\n var resizeHandler = createElement('div', { className: 'e-icons ' + RESIZE_HANDLER + ' ' + 'e-' + directions[i] });\n targetElement.appendChild(resizeHandler);\n }\n }\n minHeight = args.minHeight;\n minWidth = args.minWidth;\n maxWidth = args.maxWidth;\n maxHeight = args.maxHeight;\n if (args.proxy && args.proxy.element && args.proxy.element.classList.contains('e-dialog')) {\n wireEvents(args.proxy);\n }\n else {\n wireEvents();\n }\n}\n/**\n *\n * @param {string} direction - specifies the string\n * @returns {void}\n */\nfunction setBorderResizeElm(direction) {\n calculateValues();\n var borderBottom = createElement('span', {\n attrs: {\n 'unselectable': 'on', 'contenteditable': 'false'\n }\n });\n borderBottom.setAttribute('class', 'e-dialog-border-resize e-' + direction);\n if (direction === 'south') {\n borderBottom.style.height = '2px';\n borderBottom.style.width = '100%';\n borderBottom.style.bottom = '0px';\n borderBottom.style.left = '0px';\n }\n if (direction === 'north') {\n borderBottom.style.height = '2px';\n borderBottom.style.width = '100%';\n borderBottom.style.top = '0px';\n borderBottom.style.left = '0px';\n }\n if (direction === 'east') {\n borderBottom.style.height = '100%';\n borderBottom.style.width = '2px';\n borderBottom.style.right = '0px';\n borderBottom.style.top = '0px';\n }\n if (direction === 'west') {\n borderBottom.style.height = '100%';\n borderBottom.style.width = '2px';\n borderBottom.style.left = '0px';\n borderBottom.style.top = '0px';\n }\n targetElement.appendChild(borderBottom);\n}\n/**\n *\n * @param {string} element - specifies the element\n * @returns {HTMLElement} - returns the element\n */\nfunction getDOMElement(element) {\n var domElement;\n if (!isNOU(element)) {\n if (typeof (element) === 'string') {\n domElement = document.querySelector(element);\n }\n else {\n domElement = element;\n }\n }\n return domElement;\n}\n// eslint-disable-next-line\nfunction wireEvents(args) {\n if (isNOU(args)) {\n args = this;\n }\n var resizers = targetElement.querySelectorAll('.' + RESIZE_HANDLER);\n for (var i = 0; i < resizers.length; i++) {\n selectedHandler = resizers[i];\n EventHandler.add(selectedHandler, 'mousedown', onMouseDown, args);\n var eventName = (Browser.info.name === 'msie') ? 'pointerdown' : 'touchstart';\n EventHandler.add(selectedHandler, eventName, onTouchStart, args);\n }\n var borderResizers = targetElement.querySelectorAll('.e-dialog-border-resize');\n if (!isNOU(borderResizers)) {\n for (var i = 0; i < borderResizers.length; i++) {\n selectedHandler = borderResizers[i];\n EventHandler.add(selectedHandler, 'mousedown', onMouseDown, args);\n var eventName = (Browser.info.name === 'msie') ? 'pointerdown' : 'touchstart';\n EventHandler.add(selectedHandler, eventName, onTouchStart, args);\n }\n }\n}\n/* istanbul ignore next */\n/**\n *\n * @param {string} e - specifies the string\n * @returns {string} - returns the string\n */\nfunction getEventType(e) {\n return (e.indexOf('mouse') > -1) ? 'mouse' : 'touch';\n}\n/* istanbul ignore next */\n/**\n *\n * @param {MouseEvent} e - specifies the mouse event\n * @returns {void}\n */\nfunction onMouseDown(e) {\n e.preventDefault();\n targetElement = e.target.parentElement;\n calculateValues();\n originalMouseX = e.pageX;\n originalMouseY = e.pageY;\n e.target.classList.add(FOCUSED_HANDLER);\n if (!isNOU(resizeStart)) {\n proxy = this;\n if (resizeStart(e, proxy) === true) {\n return;\n }\n }\n if (this.targetEle && targetElement && targetElement.querySelector('.' + DIALOG_RESIZABLE)) {\n containerElement = this.target === ('body' || 'document.body' || document.body) ? null : this.targetEle;\n maxWidth = this.targetEle.clientWidth;\n maxHeight = this.targetEle.clientHeight;\n }\n var target = (isNOU(containerElement)) ? document : containerElement;\n EventHandler.add(target, 'mousemove', onMouseMove, this);\n EventHandler.add(document, 'mouseup', onMouseUp, this);\n for (var i = 0; i < RESTRICT_LEFT.length; i++) {\n if (targetElement.classList.contains(RESTRICT_LEFT[i])) {\n setLeft = false;\n }\n else {\n setLeft = true;\n }\n }\n}\n/* istanbul ignore next */\n/**\n *\n * @param {MouseEvent} e - specifies the event\n * @returns {void}\n */\nfunction onMouseUp(e) {\n var touchMoveEvent = (Browser.info.name === 'msie') ? 'pointermove' : 'touchmove';\n var touchEndEvent = (Browser.info.name === 'msie') ? 'pointerup' : 'touchend';\n var target = (isNOU(containerElement)) ? document : containerElement;\n var eventName = (Browser.info.name === 'msie') ? 'pointerdown' : 'touchstart';\n EventHandler.remove(target, 'mousemove', onMouseMove);\n EventHandler.remove(target, touchMoveEvent, onMouseMove);\n EventHandler.remove(target, eventName, onMouseMove);\n if (!isNOU(document.body.querySelector('.' + FOCUSED_HANDLER))) {\n document.body.querySelector('.' + FOCUSED_HANDLER).classList.remove(FOCUSED_HANDLER);\n }\n if (!isNOU(resizeEnd)) {\n proxy = this;\n resizeEnd(e, proxy);\n }\n EventHandler.remove(document, 'mouseup', onMouseUp);\n EventHandler.remove(document, touchEndEvent, onMouseUp);\n}\n/* istanbul ignore next */\n/**\n * @returns {void}\n */\nfunction calculateValues() {\n originalWidth = parseFloat(getComputedStyle(targetElement, null).getPropertyValue('width').replace('px', ''));\n originalHeight = parseFloat(getComputedStyle(targetElement, null).getPropertyValue('height').replace('px', ''));\n originalX = targetElement.getBoundingClientRect().left;\n originalY = targetElement.getBoundingClientRect().top;\n}\n/* istanbul ignore next */\n/**\n *\n * @param {MouseEvent} e - specifies the event\n * @returns {void}\n */\nfunction onTouchStart(e) {\n targetElement = e.target.parentElement;\n calculateValues();\n var dialogResizeElement = targetElement.classList.contains('e-dialog');\n if ((e.target.classList.contains(RESIZE_HANDLER) || e.target.classList.contains('e-dialog-border-resize')) && dialogResizeElement) {\n e.target.classList.add(FOCUSED_HANDLER);\n }\n var coordinates = e.touches ? e.changedTouches[0] : e;\n originalMouseX = coordinates.pageX;\n originalMouseY = coordinates.pageY;\n if (!isNOU(resizeStart)) {\n proxy = this;\n if (resizeStart(e, proxy) === true) {\n return;\n }\n }\n var touchMoveEvent = (Browser.info.name === 'msie') ? 'pointermove' : 'touchmove';\n var touchEndEvent = (Browser.info.name === 'msie') ? 'pointerup' : 'touchend';\n var target = (isNOU(containerElement)) ? document : containerElement;\n EventHandler.add(target, touchMoveEvent, onMouseMove, this);\n EventHandler.add(document, touchEndEvent, onMouseUp, this);\n}\n/* istanbul ignore next */\n/**\n *\n * @param {MouseEvent} e - specifies the event\n * @returns {void}\n */\nfunction onMouseMove(e) {\n if (e.target.classList.contains(RESIZE_HANDLER) && e.target.classList.contains(FOCUSED_HANDLER)) {\n selectedHandler = e.target;\n }\n else if (!isNOU(document.body.querySelector('.' + FOCUSED_HANDLER))) {\n selectedHandler = document.body.querySelector('.' + FOCUSED_HANDLER);\n }\n if (!isNOU(selectedHandler)) {\n var resizeTowards = '';\n for (var i = 0; i < elementClass.length; i++) {\n if (selectedHandler.classList.contains('e-' + elementClass[i])) {\n resizeTowards = elementClass[i];\n }\n }\n if (!isNOU(resize)) {\n proxy = this;\n resize(e, proxy);\n }\n switch (resizeTowards) {\n case 'south':\n resizeSouth(e);\n break;\n case 'north':\n resizeNorth(e);\n break;\n case 'west':\n resizeWest(e);\n break;\n case 'east':\n resizeEast(e);\n break;\n case 'south-east':\n resizeSouth(e);\n resizeEast(e);\n break;\n case 'south-west':\n resizeSouth(e);\n resizeWest(e);\n break;\n case 'north-east':\n resizeNorth(e);\n resizeEast(e);\n break;\n case 'north-west':\n resizeNorth(e);\n resizeWest(e);\n break;\n default: break;\n }\n }\n}\n/* istanbul ignore next */\n/**\n *\n * @param {HTMLElement} element - specifies the eleemnt\n * @returns {ClientRect} - returns the client\n */\nfunction getClientRectValues(element) {\n return element.getBoundingClientRect();\n}\n/* istanbul ignore next */\n// eslint-disable-next-line\nfunction resizeSouth(e) {\n var documentHeight = document.documentElement.clientHeight;\n var calculateValue = false;\n var coordinates = e.touches ? e.changedTouches[0] : e;\n var currentpageY = coordinates.pageY;\n var targetRectValues = getClientRectValues(targetElement);\n var containerRectValues;\n if (!isNOU(containerElement)) {\n containerRectValues = getClientRectValues(containerElement);\n }\n if (!isNOU(containerElement)) {\n calculateValue = true;\n }\n else if (isNOU(containerElement) && ((documentHeight - currentpageY) >= 0 || (targetRectValues.top < 0))) {\n calculateValue = true;\n }\n var calculatedHeight = originalHeight + (currentpageY - originalMouseY);\n calculatedHeight = (calculatedHeight > minHeight) ? calculatedHeight : minHeight;\n var containerTop = 0;\n if (!isNOU(containerElement)) {\n containerTop = containerRectValues.top;\n }\n var borderValue = isNOU(containerElement) ? 0 : containerElement.offsetHeight - containerElement.clientHeight;\n var topWithoutborder = (targetRectValues.top - containerTop) - (borderValue / 2);\n topWithoutborder = (topWithoutborder < 0) ? 0 : topWithoutborder;\n if (targetRectValues.top > 0 && (topWithoutborder + calculatedHeight) > maxHeight) {\n calculateValue = false;\n if (targetElement.classList.contains(RESIZE_WITHIN_VIEWPORT)) {\n return;\n }\n targetElement.style.height = (maxHeight - parseInt(topWithoutborder.toString(), 10)) + 'px';\n return;\n }\n var targetTop = 0;\n if (calculateValue) {\n if (targetRectValues.top < 0 && (documentHeight + (targetRectValues.height + targetRectValues.top) > 0)) {\n targetTop = targetRectValues.top;\n if ((calculatedHeight + targetTop) <= 30) {\n calculatedHeight = (targetRectValues.height - (targetRectValues.height + targetRectValues.top)) + 30;\n }\n }\n if (((calculatedHeight + targetRectValues.top) >= maxHeight)) {\n targetElement.style.height = targetRectValues.height +\n (documentHeight - (targetRectValues.height + targetRectValues.top)) + 'px';\n }\n var calculatedTop = (isNOU(containerElement)) ? targetTop : topWithoutborder;\n if (calculatedHeight >= minHeight && ((calculatedHeight + calculatedTop) <= maxHeight)) {\n targetElement.style.height = calculatedHeight + 'px';\n }\n }\n}\n/* istanbul ignore next */\n// eslint-disable-next-line\nfunction resizeNorth(e) {\n var calculateValue = false;\n var boundaryRectValues;\n var pageY = (getEventType(e.type) === 'mouse') ? e.pageY : e.touches[0].pageY;\n var targetRectValues = getClientRectValues(targetElement);\n if (!isNOU(containerElement)) {\n boundaryRectValues = getClientRectValues(containerElement);\n }\n if (!isNOU(containerElement) && (targetRectValues.top - boundaryRectValues.top) > 0) {\n calculateValue = true;\n }\n else if (isNOU(containerElement) && pageY > 0) {\n calculateValue = true;\n }\n var currentHeight = originalHeight - (pageY - originalMouseY);\n if (calculateValue) {\n if (currentHeight >= minHeight && currentHeight <= maxHeight) {\n var containerTop = 0;\n if (!isNOU(containerElement)) {\n containerTop = boundaryRectValues.top;\n }\n var top_1 = (originalY - containerTop) + (pageY - originalMouseY);\n top_1 = top_1 > 0 ? top_1 : 1;\n targetElement.style.height = currentHeight + 'px';\n targetElement.style.top = top_1 + 'px';\n }\n }\n}\n/* istanbul ignore next */\n// eslint-disable-next-line\nfunction resizeWest(e) {\n var documentWidth = document.documentElement.clientWidth;\n var calculateValue = false;\n var rectValues;\n if (!isNOU(containerElement)) {\n rectValues = getClientRectValues(containerElement);\n }\n var pageX = (getEventType(e.type) === 'mouse') ? e.pageX : e.touches[0].pageX;\n var targetRectValues = getClientRectValues(targetElement);\n var borderValue = isNOU(containerElement) ? 0 : containerElement.offsetWidth - containerElement.clientWidth;\n /* eslint-disable */\n var left = isNOU(containerElement) ? 0 : rectValues.left;\n var containerWidth = isNOU(containerElement) ? 0 : rectValues.width;\n /* eslint-enable */\n if (isNOU(resizeWestWidth)) {\n if (!isNOU(containerElement)) {\n resizeWestWidth = (((targetRectValues.left - left) - borderValue / 2)) + targetRectValues.width;\n resizeWestWidth = resizeWestWidth + (containerWidth - borderValue - resizeWestWidth);\n }\n else {\n resizeWestWidth = documentWidth;\n }\n }\n if (!isNOU(containerElement) &&\n (Math.floor((targetRectValues.left - rectValues.left) + targetRectValues.width +\n (rectValues.right - targetRectValues.right)) - borderValue) <= maxWidth) {\n calculateValue = true;\n }\n else if (isNOU(containerElement) && pageX >= 0) {\n calculateValue = true;\n }\n var calculatedWidth = originalWidth - (pageX - originalMouseX);\n if (setLeft) {\n calculatedWidth = (calculatedWidth > resizeWestWidth) ? resizeWestWidth : calculatedWidth;\n }\n if (calculateValue) {\n if (calculatedWidth >= minWidth && calculatedWidth <= maxWidth) {\n var containerLeft = 0;\n if (!isNOU(containerElement)) {\n containerLeft = rectValues.left;\n }\n var left_1 = (originalX - containerLeft) + (pageX - originalMouseX);\n left_1 = (left_1 > 0) ? left_1 : 1;\n if (calculatedWidth !== previousWidth && setWidth) {\n targetElement.style.width = calculatedWidth + 'px';\n }\n if (setLeft) {\n targetElement.style.left = left_1 + 'px';\n if (left_1 === 1) {\n setWidth = false;\n }\n else {\n setWidth = true;\n }\n }\n }\n }\n previousWidth = calculatedWidth;\n}\n/* istanbul ignore next */\n// eslint-disable-next-line\nfunction resizeEast(e) {\n var documentWidth = document.documentElement.clientWidth;\n var calculateValue = false;\n var containerRectValues;\n if (!isNOU(containerElement)) {\n containerRectValues = getClientRectValues(containerElement);\n }\n var coordinates = e.touches ? e.changedTouches[0] : e;\n var pageX = coordinates.pageX;\n var targetRectValues = getClientRectValues(targetElement);\n if (!isNOU(containerElement) && (((targetRectValues.left - containerRectValues.left) + targetRectValues.width) <= maxWidth\n || (targetRectValues.right - containerRectValues.left) >= targetRectValues.width)) {\n calculateValue = true;\n }\n else if (isNOU(containerElement) && (documentWidth - pageX) > 0) {\n calculateValue = true;\n }\n var calculatedWidth = originalWidth + (pageX - originalMouseX);\n var containerLeft = 0;\n if (!isNOU(containerElement)) {\n containerLeft = containerRectValues.left;\n }\n if (((targetRectValues.left - containerLeft) + calculatedWidth) > maxWidth) {\n calculateValue = false;\n if (targetElement.classList.contains(RESIZE_WITHIN_VIEWPORT)) {\n return;\n }\n targetElement.style.width = maxWidth - (targetRectValues.left - containerLeft) + 'px';\n }\n if (calculateValue) {\n if (calculatedWidth >= minWidth && calculatedWidth <= maxWidth) {\n targetElement.style.width = calculatedWidth + 'px';\n }\n }\n}\n/* istanbul ignore next */\n/**\n *\n * @param {number} minimumHeight - specifies the number\n * @returns {void}\n */\nexport function setMinHeight(minimumHeight) {\n minHeight = minimumHeight;\n}\n/**\n *\n * @param {number} value - specifies the number value\n * @returns {void}\n */\nexport function setMaxWidth(value) {\n maxWidth = value;\n}\n/**\n *\n * @param {number} value - specifies the number value\n * @returns {void}\n */\nexport function setMaxHeight(value) {\n maxHeight = value;\n}\n/**\n * @returns {void}\n */\nexport function removeResize() {\n var handlers = targetElement.querySelectorAll('.' + RESIZE_HANDLER);\n for (var i = 0; i < handlers.length; i++) {\n detach(handlers[i]);\n }\n var borderResizers = targetElement.querySelectorAll('.e-dialog-border-resize');\n if (!isNOU(borderResizers)) {\n for (var i = 0; i < borderResizers.length; i++) {\n detach(borderResizers[i]);\n }\n }\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component, Property, Event, Collection, L10n, Complex, compile, createElement } from '@syncfusion/ej2-base';\nimport { addClass, removeClass, detach, attributes, prepend, setStyleAttribute } from '@syncfusion/ej2-base';\nimport { NotifyPropertyChanges, ChildProperty, isBlazor } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined, formatUnit, append, EventHandler, Draggable, extend } from '@syncfusion/ej2-base';\nimport { SanitizeHtmlHelper, Browser } from '@syncfusion/ej2-base';\nimport { Button } from '@syncfusion/ej2-buttons';\nimport { Popup, PositionData, getZindexPartial } from '../popup/popup';\nimport { createResize, removeResize, setMinHeight, setMaxWidth, setMaxHeight } from '../common/resize';\nvar ButtonProps = /** @class */ (function (_super) {\n __extends(ButtonProps, _super);\n function ButtonProps() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(true)\n ], ButtonProps.prototype, \"isFlat\", void 0);\n __decorate([\n Property()\n ], ButtonProps.prototype, \"buttonModel\", void 0);\n __decorate([\n Property('Button')\n ], ButtonProps.prototype, \"type\", void 0);\n __decorate([\n Event()\n ], ButtonProps.prototype, \"click\", void 0);\n return ButtonProps;\n}(ChildProperty));\nexport { ButtonProps };\n/**\n * Configures the animation properties for both open and close the dialog.\n */\nvar AnimationSettings = /** @class */ (function (_super) {\n __extends(AnimationSettings, _super);\n function AnimationSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('Fade')\n ], AnimationSettings.prototype, \"effect\", void 0);\n __decorate([\n Property(400)\n ], AnimationSettings.prototype, \"duration\", void 0);\n __decorate([\n Property(0)\n ], AnimationSettings.prototype, \"delay\", void 0);\n return AnimationSettings;\n}(ChildProperty));\nexport { AnimationSettings };\nvar ROOT = 'e-dialog';\nvar RTL = 'e-rtl';\nvar DLG_HEADER_CONTENT = 'e-dlg-header-content';\nvar DLG_HEADER = 'e-dlg-header';\nvar DLG_FOOTER_CONTENT = 'e-footer-content';\nvar MODAL_DLG = 'e-dlg-modal';\nvar DLG_CONTENT = 'e-dlg-content';\nvar DLG_CLOSE_ICON = 'e-icon-dlg-close';\nvar DLG_OVERLAY = 'e-dlg-overlay';\nvar DLG_TARGET = 'e-dlg-target';\nvar DLG_CONTAINER = 'e-dlg-container';\nvar SCROLL_DISABLED = 'e-scroll-disabled';\nvar DLG_PRIMARY_BUTTON = 'e-primary';\nvar ICON = 'e-icons';\nvar POPUP_ROOT = 'e-popup';\nvar DEVICE = 'e-device';\nvar FULLSCREEN = 'e-dlg-fullscreen';\nvar DLG_CLOSE_ICON_BTN = 'e-dlg-closeicon-btn';\nvar DLG_HIDE = 'e-popup-close';\nvar DLG_SHOW = 'e-popup-open';\nvar DLG_UTIL_DEFAULT_TITLE = 'Information';\nvar DLG_UTIL_ROOT = 'e-scroll-disabled';\nvar DLG_UTIL_ALERT = 'e-alert-dialog';\nvar DLG_UTIL_CONFIRM = 'e-confirm-dialog';\nvar DLG_RESIZABLE = 'e-dlg-resizable';\nvar DLG_RESTRICT_LEFT_VALUE = 'e-restrict-left';\nvar DLG_RESTRICT_WIDTH_VALUE = 'e-resize-viewport';\nvar DLG_REF_ELEMENT = 'e-dlg-ref-element';\nvar DLG_USER_ACTION_CLOSED = 'user action';\nvar DLG_CLOSE_ICON_CLOSED = 'close icon';\nvar DLG_ESCAPE_CLOSED = 'escape';\nvar DLG_OVERLAYCLICK_CLOSED = 'overlayClick';\nvar DLG_DRAG = 'e-draggable';\n/**\n * Represents the dialog component that displays the information and get input from the user.\n * Two types of dialog components are `Modal and Modeless (non-modal)` depending on its interaction with parent application.\n * ```html\n *
\n * ```\n * ```typescript\n * \n * ```\n */\nvar Dialog = /** @class */ (function (_super) {\n __extends(Dialog, _super);\n /*\n * * Constructor for creating the widget\n *\n * @param\n * @param\n * @hidden\n */\n function Dialog(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.needsID = true;\n return _this;\n }\n /**\n *Initialize the control rendering\n *\n * @returns {void}\n * @private\n */\n Dialog.prototype.render = function () {\n this.initialize();\n this.initRender();\n this.wireEvents();\n if (this.width === '100%') {\n this.element.style.width = '';\n }\n if (this.minHeight !== '') {\n this.element.style.minHeight = formatUnit(this.minHeight);\n }\n if (this.enableResize) {\n this.setResize();\n if (this.animationSettings.effect === 'None') {\n this.getMinHeight();\n }\n }\n this.renderComplete();\n };\n Dialog.prototype.initializeValue = function () {\n this.dlgClosedBy = DLG_USER_ACTION_CLOSED;\n };\n /**\n *Initialize the event handler\n *\n * @returns {void}\n * @private\n */\n Dialog.prototype.preRender = function () {\n var _this = this;\n this.initializeValue();\n this.headerContent = null;\n this.allowMaxHeight = true;\n this.preventVisibility = true;\n this.clonedEle = this.element.cloneNode(true);\n this.closeIconClickEventHandler = function (event) {\n _this.dlgClosedBy = DLG_CLOSE_ICON_CLOSED;\n _this.hide(event);\n };\n this.dlgOverlayClickEventHandler = function (event) {\n _this.dlgClosedBy = DLG_OVERLAYCLICK_CLOSED;\n event.preventFocus = false;\n _this.trigger('overlayClick', event, function (overlayClickEventArgs) {\n if (!overlayClickEventArgs.preventFocus) {\n _this.focusContent();\n }\n _this.dlgClosedBy = DLG_USER_ACTION_CLOSED;\n });\n };\n var localeText = { close: 'Close' };\n this.l10n = new L10n('dialog', localeText, this.locale);\n this.checkPositionData();\n if (isNullOrUndefined(this.target)) {\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.target = document.body;\n this.isProtectedOnChange = prevOnChange;\n }\n };\n Dialog.prototype.updatePersistData = function () {\n if (this.enablePersistence) {\n this.setProperties({ width: parseFloat(this.element.style.width), height: parseFloat(this.element.style.height),\n position: { X: parseFloat(this.dragObj.element.style.left), Y: parseFloat(this.dragObj.element.style.top) } }, true);\n }\n };\n Dialog.prototype.isNumberValue = function (value) {\n var isNumber = /^[-+]?\\d*\\.?\\d+$/.test(value);\n return isNumber;\n };\n Dialog.prototype.checkPositionData = function () {\n if (!isNullOrUndefined(this.position)) {\n if (!isNullOrUndefined(this.position.X) && (typeof (this.position.X) !== 'number')) {\n var isNumber = this.isNumberValue(this.position.X);\n if (isNumber) {\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.position.X = parseFloat(this.position.X);\n this.isProtectedOnChange = prevOnChange;\n }\n }\n if (!isNullOrUndefined(this.position.Y) && (typeof (this.position.Y) !== 'number')) {\n var isNumber = this.isNumberValue(this.position.Y);\n if (isNumber) {\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.position.Y = parseFloat(this.position.Y);\n this.isProtectedOnChange = prevOnChange;\n }\n }\n }\n };\n Dialog.prototype.getEle = function (list, selector) {\n var element = undefined;\n for (var i = 0; i < list.length; i++) {\n if (list[i].classList.contains(selector)) {\n element = list[i];\n break;\n }\n }\n return element;\n };\n /* istanbul ignore next */\n Dialog.prototype.getMinHeight = function () {\n var computedHeaderHeight = '0px';\n var computedFooterHeight = '0px';\n if (!isNullOrUndefined(this.element.querySelector('.' + DLG_HEADER_CONTENT))) {\n computedHeaderHeight = getComputedStyle(this.headerContent).height;\n }\n var footerEle = this.getEle(this.element.children, DLG_FOOTER_CONTENT);\n if (!isNullOrUndefined(footerEle)) {\n computedFooterHeight = getComputedStyle(footerEle).height;\n }\n var headerHeight = parseInt(computedHeaderHeight.slice(0, computedHeaderHeight.indexOf('p')), 10);\n var footerHeight = parseInt(computedFooterHeight.slice(0, computedFooterHeight.indexOf('p')), 10);\n setMinHeight(headerHeight + 30 + (isNaN(footerHeight) ? 0 : footerHeight));\n return (headerHeight + 30 + footerHeight);\n };\n Dialog.prototype.onResizeStart = function (args, dialogObj) {\n dialogObj.trigger('resizeStart', args);\n return args.cancel;\n };\n Dialog.prototype.onResizing = function (args, dialogObj) {\n dialogObj.trigger('resizing', args);\n };\n Dialog.prototype.onResizeComplete = function (args, dialogObj) {\n dialogObj.trigger('resizeStop', args);\n this.updatePersistData();\n };\n Dialog.prototype.setResize = function () {\n if (this.enableResize) {\n if (this.isBlazorServerRender() && !isNullOrUndefined(this.element.querySelector('.e-icons.e-resize-handle'))) {\n return;\n }\n this.element.classList.add(DLG_RESIZABLE);\n var computedHeight = getComputedStyle(this.element).minHeight;\n var computedWidth = getComputedStyle(this.element).minWidth;\n var direction = '';\n for (var i = 0; i < this.resizeHandles.length; i++) {\n if (this.resizeHandles[i] === 'All') {\n direction = 'south north east west north-east north-west south-east south-west';\n break;\n }\n else {\n var directionValue = '';\n switch (this.resizeHandles[i].toString()) {\n case 'SouthEast':\n directionValue = 'south-east';\n break;\n case 'SouthWest':\n directionValue = 'south-west';\n break;\n case 'NorthEast':\n directionValue = 'north-east';\n break;\n case 'NorthWest':\n directionValue = 'north-west';\n break;\n default:\n directionValue = this.resizeHandles[i].toString();\n break;\n }\n direction += directionValue.toLocaleLowerCase() + ' ';\n }\n }\n if (this.enableRtl && direction.trim() === 'south-east') {\n direction = 'south-west';\n }\n else if (this.enableRtl && direction.trim() === 'south-west') {\n direction = 'south-east';\n }\n if (this.isModal && this.enableRtl) {\n this.element.classList.add(DLG_RESTRICT_LEFT_VALUE);\n }\n else if (this.isModal && this.target === document.body) {\n this.element.classList.add(DLG_RESTRICT_WIDTH_VALUE);\n }\n createResize({\n element: this.element,\n direction: direction,\n minHeight: parseInt(computedHeight.slice(0, computedWidth.indexOf('p')), 10),\n maxHeight: this.targetEle.clientHeight,\n minWidth: parseInt(computedWidth.slice(0, computedWidth.indexOf('p')), 10),\n maxWidth: this.targetEle.clientWidth,\n boundary: this.target === document.body ? null : this.targetEle,\n resizeBegin: this.onResizeStart.bind(this),\n resizeComplete: this.onResizeComplete.bind(this),\n resizing: this.onResizing.bind(this),\n proxy: this\n });\n this.wireWindowResizeEvent();\n }\n else {\n removeResize();\n this.unWireWindowResizeEvent();\n if (this.isModal) {\n this.element.classList.remove(DLG_RESTRICT_LEFT_VALUE);\n }\n else {\n this.element.classList.remove(DLG_RESTRICT_WIDTH_VALUE);\n }\n this.element.classList.remove(DLG_RESIZABLE);\n }\n };\n Dialog.prototype.getFocusElement = function (target) {\n var value = 'input,select,textarea,button:enabled,a,[contenteditable=\"true\"],[tabindex]';\n var items = target.querySelectorAll(value);\n return { element: items[items.length - 1] };\n };\n /* istanbul ignore next */\n Dialog.prototype.keyDown = function (event) {\n var _this = this;\n if (event.keyCode === 9) {\n if (this.isModal) {\n var buttonObj = void 0;\n if (!isNullOrUndefined(this.btnObj)) {\n buttonObj = this.btnObj[this.btnObj.length - 1];\n }\n if ((isNullOrUndefined(this.btnObj)) && (!isNullOrUndefined(this.ftrTemplateContent))) {\n buttonObj = this.getFocusElement(this.ftrTemplateContent);\n }\n if (isNullOrUndefined(this.btnObj) && isNullOrUndefined(this.ftrTemplateContent) && !isNullOrUndefined(this.contentEle)) {\n buttonObj = this.getFocusElement(this.contentEle);\n }\n if (!isNullOrUndefined(buttonObj) && document.activeElement === buttonObj.element && !event.shiftKey) {\n event.preventDefault();\n this.focusableElements(this.element).focus();\n }\n if (document.activeElement === this.focusableElements(this.element) && event.shiftKey) {\n event.preventDefault();\n if (!isNullOrUndefined(buttonObj)) {\n buttonObj.element.focus();\n }\n }\n }\n }\n var element = document.activeElement;\n var isTagName = (['input', 'textarea'].indexOf(element.tagName.toLowerCase()) > -1);\n var isContentEdit = false;\n if (!isTagName) {\n isContentEdit = element.hasAttribute('contenteditable') && element.getAttribute('contenteditable') === 'true';\n }\n if (event.keyCode === 27 && this.closeOnEscape) {\n this.dlgClosedBy = DLG_ESCAPE_CLOSED;\n var query = document.querySelector('.e-popup-open:not(.e-dialog)');\n // 'document.querySelector' is used to find the elements rendered based on body\n if (!(!isNullOrUndefined(query) && !query.classList.contains('e-toolbar-pop'))) {\n this.hide(event);\n }\n }\n if ((event.keyCode === 13 && !event.ctrlKey && element.tagName.toLowerCase() !== 'textarea' &&\n isTagName && !isNullOrUndefined(this.primaryButtonEle)) ||\n (event.keyCode === 13 && event.ctrlKey && (element.tagName.toLowerCase() === 'textarea' ||\n isContentEdit)) && !isNullOrUndefined(this.primaryButtonEle)) {\n var buttonIndex_1;\n var firstPrimary = this.buttons.some(function (data, index) {\n buttonIndex_1 = index;\n // eslint-disable-next-line\n var buttonModel = data.buttonModel;\n return !isNullOrUndefined(buttonModel) && buttonModel.isPrimary === true;\n });\n if (firstPrimary && typeof (this.buttons[buttonIndex_1].click) === 'function') {\n setTimeout(function () {\n _this.buttons[buttonIndex_1].click.call(_this, event);\n });\n }\n }\n };\n /**\n * Initialize the control rendering\n *\n * @returns {void}\n * @private\n */\n Dialog.prototype.initialize = function () {\n if (!isNullOrUndefined(this.target)) {\n this.targetEle = ((typeof this.target) === 'string') ?\n document.querySelector(this.target) : this.target;\n }\n if (!this.isBlazorServerRender()) {\n addClass([this.element], ROOT);\n }\n if (Browser.isDevice) {\n addClass([this.element], DEVICE);\n }\n if (!this.isBlazorServerRender()) {\n this.setCSSClass();\n }\n this.setMaxHeight();\n };\n /**\n * Initialize the rendering\n *\n * @returns {void}\n * @private\n */\n Dialog.prototype.initRender = function () {\n var _this = this;\n this.initialRender = true;\n if (!this.isBlazorServerRender()) {\n attributes(this.element, { role: 'dialog' });\n }\n if (this.zIndex === 1000) {\n this.setzIndex(this.element, false);\n this.calculatezIndex = true;\n }\n else {\n this.calculatezIndex = false;\n }\n if (this.isBlazorServerRender() && isNullOrUndefined(this.headerContent)) {\n this.headerContent = this.element.getElementsByClassName('e-dlg-header-content')[0];\n }\n if (this.isBlazorServerRender() && isNullOrUndefined(this.contentEle)) {\n this.contentEle = this.element.querySelector('#' + this.element.id + '_dialog-content');\n }\n if (!this.isBlazorServerRender()) {\n this.setTargetContent();\n if (this.header !== '' && !isNullOrUndefined(this.header)) {\n this.setHeader();\n }\n this.renderCloseIcon();\n this.setContent();\n if (this.footerTemplate !== '' && !isNullOrUndefined(this.footerTemplate)) {\n this.setFooterTemplate();\n }\n else if (!isNullOrUndefined(this.buttons[0].buttonModel)) {\n this.setButton();\n }\n }\n if (this.isBlazorServerRender()) {\n if (!isNullOrUndefined(this.buttons[0].buttonModel) && this.footerTemplate === '') {\n this.setButton();\n }\n }\n if (this.allowDragging && (!isNullOrUndefined(this.headerContent))) {\n this.setAllowDragging();\n }\n if (!this.isBlazorServerRender()) {\n attributes(this.element, { 'aria-modal': (this.isModal ? 'true' : 'false') });\n if (this.isModal) {\n this.setIsModal();\n }\n }\n if (this.isBlazorServerRender() && isNullOrUndefined(this.dlgContainer)) {\n this.dlgContainer = this.element.parentElement;\n for (var i = 0, childNodes = this.dlgContainer.children; i < childNodes.length; i++) {\n if (childNodes[i].classList.contains('e-dlg-overlay')) {\n this.dlgOverlay = childNodes[i];\n }\n }\n }\n if (this.element.classList.contains(DLG_UTIL_ALERT) !== true && this.element.classList.contains(DLG_UTIL_CONFIRM) !== true\n && !isNullOrUndefined(this.element.parentElement)) {\n var parentEle = this.isModal ? this.dlgContainer.parentElement : this.element.parentElement;\n this.refElement = this.createElement('div', { className: DLG_REF_ELEMENT });\n parentEle.insertBefore(this.refElement, (this.isModal ? this.dlgContainer : this.element));\n }\n if (!isNullOrUndefined(this.targetEle)) {\n // eslint-disable-next-line\n this.isModal ? this.targetEle.appendChild(this.dlgContainer) : this.targetEle.appendChild(this.element);\n }\n this.popupObj = new Popup(this.element, {\n height: this.height,\n width: this.width,\n zIndex: this.zIndex,\n relateTo: this.target,\n actionOnScroll: 'none',\n enableRtl: this.enableRtl,\n // eslint-disable-next-line\n open: function (event) {\n var eventArgs = {\n container: _this.isModal ? _this.dlgContainer : _this.element,\n element: _this.element,\n target: _this.target,\n preventFocus: false\n };\n if (_this.enableResize) {\n _this.resetResizeIcon();\n }\n _this.trigger('open', eventArgs, function (openEventArgs) {\n if (!openEventArgs.preventFocus) {\n _this.focusContent();\n }\n });\n },\n // eslint-disable-next-line\n close: function (event) {\n if (_this.isModal) {\n addClass([_this.dlgOverlay], 'e-fade');\n }\n _this.unBindEvent(_this.element);\n if (_this.isModal) {\n _this.dlgContainer.style.display = 'none';\n }\n _this.trigger('close', _this.closeArgs);\n var activeEle = document.activeElement;\n if (!isNullOrUndefined(activeEle) && !isNullOrUndefined((activeEle).blur)) {\n activeEle.blur();\n }\n if (!isNullOrUndefined(_this.storeActiveElement) && !isNullOrUndefined(_this.storeActiveElement.focus)) {\n _this.storeActiveElement.focus();\n }\n }\n });\n this.positionChange();\n this.setEnableRTL();\n if (!this.isBlazorServerRender()) {\n addClass([this.element], DLG_HIDE);\n if (this.isModal) {\n this.setOverlayZindex();\n }\n }\n if (this.visible) {\n this.show();\n }\n else {\n if (this.isModal) {\n this.dlgOverlay.style.display = 'none';\n }\n }\n this.initialRender = false;\n };\n Dialog.prototype.resetResizeIcon = function () {\n var dialogConHeight = this.getMinHeight();\n if (this.targetEle.offsetHeight < dialogConHeight) {\n var className = this.enableRtl ? 'e-south-west' : 'e-south-east';\n var resizeIcon = this.element.querySelector('.' + className);\n if (!isNullOrUndefined(resizeIcon)) {\n resizeIcon.style.bottom = '-' + dialogConHeight.toString() + 'px';\n }\n }\n };\n Dialog.prototype.setOverlayZindex = function (zIndexValue) {\n var zIndex;\n if (isNullOrUndefined(zIndexValue)) {\n zIndex = parseInt(this.element.style.zIndex, 10) ? parseInt(this.element.style.zIndex, 10) : this.zIndex;\n }\n else {\n zIndex = zIndexValue;\n }\n this.dlgOverlay.style.zIndex = (zIndex - 1).toString();\n this.dlgContainer.style.zIndex = zIndex.toString();\n };\n Dialog.prototype.positionChange = function () {\n if (this.isModal) {\n if (!isNaN(parseFloat(this.position.X)) && !isNaN(parseFloat(this.position.Y))) {\n this.setPopupPosition();\n }\n else if ((!isNaN(parseFloat(this.position.X)) && isNaN(parseFloat(this.position.Y)))\n || (isNaN(parseFloat(this.position.X)) && !isNaN(parseFloat(this.position.Y)))) {\n this.setPopupPosition();\n }\n else {\n this.element.style.top = '0px';\n this.element.style.left = '0px';\n this.dlgContainer.classList.add('e-dlg-' + this.position.X + '-' + this.position.Y);\n }\n }\n else {\n this.setPopupPosition();\n }\n };\n Dialog.prototype.setPopupPosition = function () {\n this.popupObj.setProperties({\n position: {\n X: this.position.X, Y: this.position.Y\n }\n });\n };\n Dialog.prototype.setAllowDragging = function () {\n var _this = this;\n var handleContent = '.' + DLG_HEADER_CONTENT;\n if (!this.element.classList.contains(DLG_DRAG)) {\n this.dragObj = new Draggable(this.element, {\n clone: false,\n isDragScroll: true,\n abort: '.e-dlg-closeicon-btn',\n handle: handleContent,\n dragStart: function (event) {\n _this.trigger('dragStart', event, function (dragEventArgs) {\n if (isBlazor()) {\n dragEventArgs.bindEvents(event.dragElement);\n }\n });\n },\n dragStop: function (event) {\n if (_this.isModal) {\n if (!isNullOrUndefined(_this.position)) {\n _this.dlgContainer.classList.remove('e-dlg-' + _this.position.X + '-' + _this.position.Y);\n }\n // Reset the dialog position after drag completion.\n _this.element.style.position = 'relative';\n }\n _this.trigger('dragStop', event);\n _this.element.classList.remove(DLG_RESTRICT_LEFT_VALUE);\n _this.updatePersistData();\n },\n drag: function (event) {\n _this.trigger('drag', event);\n }\n });\n if (!isNullOrUndefined(this.targetEle)) {\n this.dragObj.dragArea = this.targetEle;\n }\n }\n };\n Dialog.prototype.setButton = function () {\n if (!this.isBlazorServerRender()) {\n this.buttonContent = [];\n this.btnObj = [];\n // eslint-disable-next-line\n var primaryBtnFlag = true;\n for (var i = 0; i < this.buttons.length; i++) {\n var buttonType = !isNullOrUndefined(this.buttons[i].type) ? this.buttons[i].type.toLowerCase() : 'button';\n var btn = this.createElement('button', { className: this.cssClass, attrs: { type: buttonType } });\n this.buttonContent.push(btn.outerHTML);\n }\n this.setFooterTemplate();\n }\n var footerBtn;\n for (var i = 0, childNodes = this.element.children; i < childNodes.length; i++) {\n if (childNodes[i].classList.contains(DLG_FOOTER_CONTENT)) {\n footerBtn = childNodes[i].querySelectorAll('button');\n }\n }\n for (var i = 0; i < this.buttons.length; i++) {\n if (!this.isBlazorServerRender()) {\n this.btnObj[i] = new Button(this.buttons[i].buttonModel);\n }\n if (this.isBlazorServerRender()) {\n this.ftrTemplateContent = this.element.querySelector('.' + DLG_FOOTER_CONTENT);\n }\n if (!isNullOrUndefined(this.ftrTemplateContent) && footerBtn.length > 0) {\n if (typeof (this.buttons[i].click) === 'function') {\n EventHandler.add(footerBtn[i], 'click', this.buttons[i].click, this);\n }\n if (typeof (this.buttons[i].click) === 'object') {\n EventHandler.add(footerBtn[i], 'click', this.buttonClickHandler.bind(this, i), this);\n }\n }\n if (!this.isBlazorServerRender() && !isNullOrUndefined(this.ftrTemplateContent)) {\n this.btnObj[i].appendTo(this.ftrTemplateContent.children[i]);\n if (this.buttons[i].isFlat) {\n this.btnObj[i].element.classList.add('e-flat');\n }\n this.primaryButtonEle = this.element.getElementsByClassName('e-primary')[0];\n }\n }\n };\n Dialog.prototype.buttonClickHandler = function (index) {\n this.trigger('buttons[' + index + '].click', {});\n };\n Dialog.prototype.setContent = function () {\n this.contentEle = this.createElement('div', { className: DLG_CONTENT, id: this.element.id + '_dialog-content' });\n if (this.innerContentElement) {\n this.contentEle.appendChild(this.innerContentElement);\n }\n else if (!isNullOrUndefined(this.content) && this.content !== '' || !this.initialRender) {\n // eslint-disable-next-line\n var blazorContain = Object.keys(window);\n if (typeof (this.content) === 'string' && !isBlazor()) {\n this.setTemplate(this.content, this.contentEle, 'content');\n }\n else if (this.content instanceof HTMLElement) {\n this.contentEle.appendChild(this.content);\n }\n else {\n this.setTemplate(this.content, this.contentEle, 'content');\n }\n }\n if (!isNullOrUndefined(this.headerContent)) {\n this.element.insertBefore(this.contentEle, this.element.children[1]);\n }\n else {\n this.element.insertBefore(this.contentEle, this.element.children[0]);\n }\n if (this.height === 'auto') {\n if (!this.isBlazorServerRender() && Browser.isIE && this.element.style.width === '' && !isNullOrUndefined(this.width)) {\n this.element.style.width = formatUnit(this.width);\n }\n this.setMaxHeight();\n }\n };\n Dialog.prototype.setTemplate = function (template, toElement, prop) {\n var templateFn;\n var templateProps;\n // eslint-disable-next-line\n var blazorContain = Object.keys(window);\n if (toElement.classList.contains(DLG_HEADER)) {\n templateProps = this.element.id + 'header';\n }\n else if (toElement.classList.contains(DLG_FOOTER_CONTENT)) {\n templateProps = this.element.id + 'footerTemplate';\n }\n else {\n templateProps = this.element.id + 'content';\n }\n var templateValue;\n if (!isNullOrUndefined(template.outerHTML)) {\n toElement.appendChild(template);\n }\n else if ((typeof template === 'string') || (typeof template !== 'string') || (isBlazor() && !this.isStringTemplate)) {\n if ((typeof template === 'string')) {\n template = this.sanitizeHelper(template);\n }\n if (this.isVue || typeof template !== 'string') {\n templateFn = compile(template);\n templateValue = template;\n }\n else {\n toElement.innerHTML = template;\n }\n }\n var fromElements = [];\n if (!isNullOrUndefined(templateFn)) {\n var isString = (isBlazor() &&\n !this.isStringTemplate && (templateValue).indexOf('
Blazor') === 0) ?\n this.isStringTemplate : true;\n for (var _i = 0, _a = templateFn({}, this, prop, templateProps, isString); _i < _a.length; _i++) {\n var item = _a[_i];\n fromElements.push(item);\n }\n append([].slice.call(fromElements), toElement);\n }\n };\n /*\n * @returns {void}\n * @hidden\n * @value\n */\n Dialog.prototype.sanitizeHelper = function (value) {\n if (this.enableHtmlSanitizer) {\n var dialogItem = SanitizeHtmlHelper.beforeSanitize();\n var beforeEvent = {\n cancel: false,\n helper: null\n };\n extend(dialogItem, dialogItem, beforeEvent);\n this.trigger('beforeSanitizeHtml', dialogItem);\n if (dialogItem.cancel && !isNullOrUndefined(dialogItem.helper)) {\n value = dialogItem.helper(value);\n }\n else if (!dialogItem.cancel) {\n value = SanitizeHtmlHelper.serializeValue(dialogItem, value);\n }\n }\n return value;\n };\n Dialog.prototype.setMaxHeight = function () {\n if (!this.allowMaxHeight) {\n return;\n }\n var display = this.element.style.display;\n this.element.style.display = 'none';\n this.element.style.maxHeight = (!isNullOrUndefined(this.target)) && (this.targetEle.offsetHeight < window.innerHeight) ?\n (this.targetEle.offsetHeight - 20) + 'px' : (window.innerHeight - 20) + 'px';\n this.element.style.display = display;\n if (Browser.isIE && this.height === 'auto' && !isNullOrUndefined(this.contentEle)\n && this.element.offsetHeight < this.contentEle.offsetHeight) {\n this.element.style.height = 'inherit';\n }\n };\n Dialog.prototype.setEnableRTL = function () {\n if (!this.isBlazorServerRender()) {\n // eslint-disable-next-line\n this.enableRtl ? addClass([this.element], RTL) : removeClass([this.element], RTL);\n }\n if (!isNullOrUndefined(this.element.querySelector('.e-resize-handle'))) {\n removeResize();\n this.setResize();\n }\n };\n Dialog.prototype.setTargetContent = function () {\n var _this = this;\n if (isNullOrUndefined(this.content) || this.content === '') {\n var isContent = this.element.innerHTML.replace(/\\s|<(\\/?|\\/?)(!--!--)>/g, '') !== '';\n if (this.element.children.length > 0 || isContent) {\n this.innerContentElement = document.createDocumentFragment();\n [].slice.call(this.element.childNodes).forEach(function (el) {\n if (el.nodeType !== 8) {\n _this.innerContentElement.appendChild(el);\n }\n });\n }\n }\n };\n Dialog.prototype.setHeader = function () {\n if (this.headerEle) {\n this.headerEle.innerHTML = '';\n }\n else {\n this.headerEle = this.createElement('div', { id: this.element.id + '_title', className: DLG_HEADER });\n }\n this.createHeaderContent();\n this.headerContent.appendChild(this.headerEle);\n this.setTemplate(this.header, this.headerEle, 'header');\n attributes(this.element, { 'aria-labelledby': this.element.id + '_title' });\n this.element.insertBefore(this.headerContent, this.element.children[0]);\n if (this.allowDragging && (!isNullOrUndefined(this.headerContent))) {\n this.setAllowDragging();\n }\n };\n Dialog.prototype.setFooterTemplate = function () {\n if (this.ftrTemplateContent) {\n this.ftrTemplateContent.innerHTML = '';\n }\n else {\n this.ftrTemplateContent = this.createElement('div', {\n className: DLG_FOOTER_CONTENT\n });\n }\n if (this.footerTemplate !== '' && !isNullOrUndefined(this.footerTemplate)) {\n this.setTemplate(this.footerTemplate, this.ftrTemplateContent, 'footerTemplate');\n }\n else {\n this.ftrTemplateContent.innerHTML = this.buttonContent.join('');\n }\n this.element.appendChild(this.ftrTemplateContent);\n };\n Dialog.prototype.createHeaderContent = function () {\n if (isNullOrUndefined(this.headerContent)) {\n this.headerContent = this.createElement('div', { id: this.element.id + '_dialog-header', className: DLG_HEADER_CONTENT });\n }\n };\n Dialog.prototype.renderCloseIcon = function () {\n if (this.showCloseIcon) {\n this.closeIcon = this.createElement('button', { className: DLG_CLOSE_ICON_BTN, attrs: { type: 'button' } });\n this.closeIconBtnObj = new Button({ cssClass: 'e-flat', iconCss: DLG_CLOSE_ICON + ' ' + ICON });\n this.closeIconTitle();\n if (!isNullOrUndefined(this.headerContent)) {\n prepend([this.closeIcon], this.headerContent);\n }\n else {\n this.createHeaderContent();\n prepend([this.closeIcon], this.headerContent);\n this.element.insertBefore(this.headerContent, this.element.children[0]);\n }\n this.closeIconBtnObj.appendTo(this.closeIcon);\n }\n };\n Dialog.prototype.closeIconTitle = function () {\n this.l10n.setLocale(this.locale);\n var closeIconTitle = this.l10n.getConstant('close');\n this.closeIcon.setAttribute('title', closeIconTitle);\n this.closeIcon.setAttribute('aria-label', closeIconTitle);\n };\n Dialog.prototype.setCSSClass = function (oldCSSClass) {\n if (oldCSSClass) {\n removeClass([this.element], oldCSSClass.split(' '));\n if (this.isModal && !isNullOrUndefined(this.dlgContainer)) {\n removeClass([this.dlgContainer], oldCSSClass.split(' '));\n }\n }\n if (this.cssClass) {\n addClass([this.element], this.cssClass.split(' '));\n if (this.isModal && !isNullOrUndefined(this.dlgContainer)) {\n addClass([this.dlgContainer], this.cssClass.split(' '));\n }\n }\n };\n Dialog.prototype.setIsModal = function () {\n this.dlgContainer = this.createElement('div', { className: DLG_CONTAINER });\n this.setCSSClass();\n this.element.classList.remove(DLG_SHOW);\n this.element.parentNode.insertBefore(this.dlgContainer, this.element);\n this.dlgContainer.appendChild(this.element);\n addClass([this.element], MODAL_DLG);\n this.dlgOverlay = this.createElement('div', { className: DLG_OVERLAY });\n this.dlgOverlay.style.zIndex = (this.zIndex - 1).toString();\n this.dlgContainer.appendChild(this.dlgOverlay);\n };\n Dialog.prototype.getValidFocusNode = function (items) {\n var node;\n for (var u = 0; u < items.length; u++) {\n node = items[u];\n if ((node.clientHeight > 0 || (node.tagName.toLowerCase() === 'a' && node.hasAttribute('href'))) && node.tabIndex > -1 &&\n !node.disabled && !this.disableElement(node, '[disabled],[aria-disabled=\"true\"],[type=\"hidden\"]')) {\n return node;\n }\n else {\n node = null;\n }\n }\n return node;\n };\n Dialog.prototype.focusableElements = function (content) {\n if (!isNullOrUndefined(content)) {\n var value = 'input,select,textarea,button,a,[contenteditable=\"true\"],[tabindex]';\n var items = content.querySelectorAll(value);\n return this.getValidFocusNode(items);\n }\n return null;\n };\n Dialog.prototype.getAutoFocusNode = function (container) {\n var node = container.querySelector('.' + DLG_CLOSE_ICON_BTN);\n var value = '[autofocus]';\n var items = container.querySelectorAll(value);\n var validNode = this.getValidFocusNode(items);\n if (isBlazor()) {\n this.primaryButtonEle = this.element.getElementsByClassName('e-primary')[0];\n }\n if (!isNullOrUndefined(validNode)) {\n node = validNode;\n }\n else {\n validNode = this.focusableElements(this.contentEle);\n if (!isNullOrUndefined(validNode)) {\n return node = validNode;\n }\n else if (!isNullOrUndefined(this.primaryButtonEle)) {\n return this.element.querySelector('.' + DLG_PRIMARY_BUTTON);\n }\n }\n return node;\n };\n Dialog.prototype.disableElement = function (element, t) {\n var elementMatch = element ? element.matches || element.webkitMatchesSelector || element.msGetRegionContent : null;\n if (elementMatch) {\n for (; element; element = element.parentNode) {\n if (element instanceof Element && elementMatch.call(element, t)) {\n /* istanbul ignore next */\n return element;\n }\n }\n }\n return null;\n };\n Dialog.prototype.focusContent = function () {\n var element = this.getAutoFocusNode(this.element);\n var node = !isNullOrUndefined(element) ? element : this.element;\n var userAgent = Browser.userAgent;\n if (userAgent.indexOf('MSIE ') > 0 || userAgent.indexOf('Trident/') > 0) {\n this.element.focus();\n }\n node.focus();\n this.unBindEvent(this.element);\n this.bindEvent(this.element);\n };\n Dialog.prototype.bindEvent = function (element) {\n EventHandler.add(element, 'keydown', this.keyDown, this);\n };\n Dialog.prototype.unBindEvent = function (element) {\n EventHandler.remove(element, 'keydown', this.keyDown);\n };\n Dialog.prototype.updateSanitizeContent = function () {\n if (!this.isBlazorServerRender()) {\n this.contentEle.innerHTML = this.sanitizeHelper(this.content);\n }\n };\n Dialog.prototype.isBlazorServerRender = function () {\n return isBlazor() && this.isServerRendered;\n };\n /**\n * Module required function\n *\n * @returns {void}\n * @private\n */\n Dialog.prototype.getModuleName = function () {\n return 'dialog';\n };\n /**\n * Called internally if any of the property value changed\n *\n * @param {DialogModel} newProp - specifies the new property\n * @param {DialogModel} oldProp - specifies the old property\n * @private\n * @returns {void}\n */\n Dialog.prototype.onPropertyChanged = function (newProp, oldProp) {\n if (!this.element.classList.contains(ROOT)) {\n return;\n }\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'content':\n if (!isNullOrUndefined(this.content) && this.content !== '') {\n if (this.isBlazorServerRender()) {\n this.contentEle = this.element.querySelector('.e-dlg-content');\n }\n if (!isNullOrUndefined(this.contentEle) && this.contentEle.getAttribute('role') !== 'dialog') {\n if (!this.isBlazorServerRender()) {\n this.contentEle.innerHTML = '';\n }\n if (typeof (this.content) === 'function') {\n this.clearTemplate(['content']);\n detach(this.contentEle);\n this.contentEle = null;\n this.setContent();\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n typeof (this.content) === 'string' ? (this.isBlazorServerRender() && (this.contentEle.innerText === '')) ?\n this.contentEle.insertAdjacentHTML('beforeend', this.sanitizeHelper(this.content)) :\n this.updateSanitizeContent() : this.contentEle.appendChild(this.content);\n }\n this.setMaxHeight();\n }\n else {\n if (!this.isBlazorServerRender() ||\n isNullOrUndefined(this.element.querySelector('.e-dlg-content'))) {\n this.setContent();\n }\n }\n }\n else if (!isNullOrUndefined(this.contentEle)) {\n detach(this.contentEle);\n this.contentEle = null;\n }\n break;\n case 'header':\n if (this.header === '' || isNullOrUndefined(this.header)) {\n if (this.headerEle) {\n detach(this.headerEle);\n this.headerEle = null;\n }\n }\n else {\n if (!this.isBlazorServerRender() ||\n isNullOrUndefined(this.element.querySelector('.e-dlg-header-content'))) {\n this.setHeader();\n }\n }\n break;\n case 'footerTemplate':\n if (this.footerTemplate === '' || isNullOrUndefined(this.footerTemplate)) {\n if (!this.ftrTemplateContent) {\n return;\n }\n detach(this.ftrTemplateContent);\n this.ftrTemplateContent = null;\n this.buttons = [{}];\n }\n else {\n if (!this.isBlazorServerRender() ||\n isNullOrUndefined(this.element.querySelector('.e-footer-content'))) {\n this.setFooterTemplate();\n }\n this.buttons = [{}];\n }\n break;\n case 'showCloseIcon':\n if (this.element.getElementsByClassName(DLG_CLOSE_ICON).length > 0) {\n if (!this.showCloseIcon && (this.header === '' || isNullOrUndefined(this.header))) {\n detach(this.headerContent);\n this.headerContent = null;\n }\n else if (!this.showCloseIcon) {\n detach(this.closeIcon);\n }\n else {\n if (this.isBlazorServerRender()) {\n this.wireEvents();\n }\n }\n }\n else {\n if (!this.isBlazorServerRender()) {\n this.renderCloseIcon();\n }\n this.wireEvents();\n }\n break;\n case 'locale':\n if (this.showCloseIcon) {\n this.closeIconTitle();\n }\n break;\n case 'visible':\n // eslint-disable-next-line\n this.visible ? this.show() : this.hide();\n break;\n case 'isModal':\n this.updateIsModal();\n break;\n case 'height':\n setStyleAttribute(this.element, { 'height': formatUnit(newProp.height) });\n this.updatePersistData();\n break;\n case 'width':\n setStyleAttribute(this.element, { 'width': formatUnit(newProp.width) });\n this.updatePersistData();\n break;\n case 'zIndex':\n this.popupObj.zIndex = this.zIndex;\n if (this.isModal) {\n this.setOverlayZindex(this.zIndex);\n }\n if (this.element.style.zIndex !== this.zIndex.toString()) {\n this.calculatezIndex = false;\n }\n break;\n case 'cssClass':\n this.setCSSClass(oldProp.cssClass);\n break;\n case 'buttons': {\n var buttonCount = this.buttons.length;\n if (!isNullOrUndefined(this.ftrTemplateContent) && !this.isBlazorServerRender()) {\n detach(this.ftrTemplateContent);\n this.ftrTemplateContent = null;\n }\n for (var i = 0; i < buttonCount; i++) {\n if (!isNullOrUndefined(this.buttons[i].buttonModel)) {\n this.footerTemplate = '';\n this.setButton();\n }\n }\n break;\n }\n case 'allowDragging':\n if (this.allowDragging && (!isNullOrUndefined(this.headerContent))) {\n this.setAllowDragging();\n }\n else {\n this.dragObj.destroy();\n }\n break;\n case 'target':\n this.setTarget(newProp.target);\n break;\n case 'position':\n this.checkPositionData();\n if (this.isModal) {\n var positionX = !isNullOrUndefined(oldProp.position) && !isNullOrUndefined(oldProp.position.X) ? oldProp.position.X : this.position.X;\n var positionY = !isNullOrUndefined(oldProp.position) && !isNullOrUndefined(oldProp.position.Y) ? oldProp.position.Y : this.position.Y;\n if (this.dlgContainer.classList.contains('e-dlg-' + positionX + '-' + positionY)) {\n this.dlgContainer.classList.remove('e-dlg-' + positionX + '-' + positionY);\n }\n }\n this.positionChange();\n this.updatePersistData();\n break;\n case 'enableRtl':\n this.setEnableRTL();\n break;\n case 'enableResize':\n this.setResize();\n break;\n case 'minHeight':\n if (this.minHeight !== '') {\n this.element.style.minHeight = formatUnit(this.minHeight);\n }\n break;\n }\n }\n };\n Dialog.prototype.setTarget = function (target) {\n this.popupObj.relateTo = target;\n this.target = target;\n this.targetEle = ((typeof this.target) === 'string') ?\n document.querySelector(this.target) : this.target;\n if (this.dragObj) {\n this.dragObj.dragArea = this.targetEle;\n }\n this.setMaxHeight();\n if (this.isModal) {\n this.updateIsModal();\n }\n if (this.enableResize) {\n this.setResize();\n }\n };\n Dialog.prototype.updateIsModal = function () {\n this.element.setAttribute('aria-modal', this.isModal ? 'true' : 'false');\n if (this.isModal) {\n if (isNullOrUndefined(this.dlgOverlay)) {\n this.setIsModal();\n this.element.style.top = '0px';\n this.element.style.left = '0px';\n if (!isNullOrUndefined(this.targetEle)) {\n this.targetEle.appendChild(this.dlgContainer);\n }\n }\n }\n else {\n removeClass([this.element], MODAL_DLG);\n removeClass([document.body], [DLG_TARGET, SCROLL_DISABLED]);\n detach(this.dlgOverlay);\n while (this.dlgContainer.firstChild) {\n this.dlgContainer.parentElement.insertBefore(this.dlgContainer.firstChild, this.dlgContainer);\n }\n this.dlgContainer.parentElement.removeChild(this.dlgContainer);\n }\n if (this.visible) {\n this.show();\n }\n this.positionChange();\n if (this.isModal && this.dlgOverlay) {\n EventHandler.add(this.dlgOverlay, 'click', this.dlgOverlayClickEventHandler, this);\n }\n };\n Dialog.prototype.setzIndex = function (zIndexElement, setPopupZindex) {\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n var currentzIndex = getZindexPartial(zIndexElement);\n this.zIndex = currentzIndex > this.zIndex ? currentzIndex : this.zIndex;\n this.isProtectedOnChange = prevOnChange;\n if (setPopupZindex) {\n this.popupObj.zIndex = this.zIndex;\n }\n };\n Dialog.prototype.windowResizeHandler = function () {\n setMaxWidth(this.targetEle.clientWidth);\n setMaxHeight(this.targetEle.clientHeight);\n this.setMaxHeight();\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @returns {void}\n * @private\n */\n Dialog.prototype.getPersistData = function () {\n return this.addOnPersist(['width', 'height', 'position']);\n };\n /**\n * To destroy the widget\n *\n * @returns {void}\n */\n Dialog.prototype.destroy = function () {\n if (this.isDestroyed) {\n return;\n }\n var classArray = [RTL, MODAL_DLG, DLG_RESIZABLE, DLG_RESTRICT_LEFT_VALUE, FULLSCREEN, DEVICE];\n var attrs = ['role', 'aria-modal', 'aria-labelledby', 'aria-describedby', 'aria-grabbed', 'tabindex', 'style'];\n removeClass([this.targetEle], [DLG_TARGET, SCROLL_DISABLED]);\n if (!isNullOrUndefined(this.element) && this.element.classList.contains(FULLSCREEN)) {\n removeClass([document.body], [DLG_TARGET, SCROLL_DISABLED]);\n }\n if (this.isModal) {\n removeClass([(!isNullOrUndefined(this.targetEle) ? this.targetEle : document.body)], SCROLL_DISABLED);\n }\n this.unWireEvents();\n if (!isNullOrUndefined(this.btnObj)) {\n for (var i = 0; i < this.btnObj.length; i++) {\n this.btnObj[i].destroy();\n }\n }\n if (!isNullOrUndefined(this.closeIconBtnObj)) {\n this.closeIconBtnObj.destroy();\n }\n if (!isNullOrUndefined(this.dragObj)) {\n this.dragObj.destroy();\n }\n if (!isNullOrUndefined(this.popupObj.element) && this.popupObj.element.classList.contains(POPUP_ROOT)) {\n this.popupObj.destroy();\n }\n removeClass([this.element], classArray);\n if (!isNullOrUndefined(this.cssClass) && this.cssClass !== '') {\n removeClass([this.element], this.cssClass.split(' '));\n }\n if (!isNullOrUndefined(this.refElement) && !isNullOrUndefined(this.refElement.parentElement)) {\n this.refElement.parentElement.insertBefore((this.isModal ? this.dlgContainer : this.element), this.refElement);\n detach(this.refElement);\n this.refElement = undefined;\n }\n if (this.isModal && !this.isBlazorServerRender()) {\n detach(this.dlgOverlay);\n this.dlgContainer.parentNode.insertBefore(this.element, this.dlgContainer);\n detach(this.dlgContainer);\n }\n if (!this.isBlazorServerRender()) {\n this.element.innerHTML = this.clonedEle.innerHTML;\n }\n if (this.isBlazorServerRender()) {\n if (!isNullOrUndefined(this.element.children)) {\n for (var i = 0; i <= this.element.children.length; i++) {\n i = i - i;\n detach(this.element.children[i]);\n }\n }\n }\n for (var i = 0; i < attrs.length; i++) {\n this.element.removeAttribute(attrs[i]);\n }\n if (!this.isBlazorServerRender()) {\n _super.prototype.destroy.call(this);\n }\n else {\n this.isDestroyed = true;\n }\n // eslint-disable-next-line\n if (this.isReact) {\n this.clearTemplate();\n }\n };\n Dialog.prototype.wireWindowResizeEvent = function () {\n window.addEventListener('resize', this.windowResizeHandler.bind(this));\n };\n Dialog.prototype.unWireWindowResizeEvent = function () {\n window.removeEventListener('resize', this.windowResizeHandler.bind(this));\n };\n /**\n * Binding event to the element while widget creation\n *\n * @returns {void}\n * @hidden\n */\n Dialog.prototype.wireEvents = function () {\n if (this.isBlazorServerRender() && this.showCloseIcon) {\n this.closeIcon = this.element.getElementsByClassName('e-dlg-closeicon-btn')[0];\n }\n if (this.showCloseIcon) {\n EventHandler.add(this.closeIcon, 'click', this.closeIconClickEventHandler, this);\n }\n if (this.isModal && this.dlgOverlay) {\n EventHandler.add(this.dlgOverlay, 'click', this.dlgOverlayClickEventHandler, this);\n }\n };\n /**\n * Unbinding event to the element while widget destroy\n *\n * @returns {void}\n * @hidden\n */\n Dialog.prototype.unWireEvents = function () {\n if (this.showCloseIcon) {\n EventHandler.remove(this.closeIcon, 'click', this.closeIconClickEventHandler);\n }\n if (this.isModal) {\n EventHandler.remove(this.dlgOverlay, 'click', this.dlgOverlayClickEventHandler);\n }\n if (this.buttons.length > 0 && !isNullOrUndefined(this.buttons[0].buttonModel) && this.footerTemplate === '') {\n for (var i = 0; i < this.buttons.length; i++) {\n if (typeof (this.buttons[i].click) === 'function') {\n EventHandler.remove(this.ftrTemplateContent.children[i], 'click', this.buttons[i].click);\n }\n }\n }\n };\n /**\n * Refreshes the dialog's position when the user changes its header and footer height/width dynamically.\n *\n * @returns {void}\n */\n Dialog.prototype.refreshPosition = function () {\n this.popupObj.refreshPosition();\n };\n /**\n * Returns the current width and height of the Dialog\n *\n * @returns {DialogDimension}- returns the dialog element Dimension.\n * @public\n */\n Dialog.prototype.getDimension = function () {\n var dialogWidth = this.element.offsetWidth;\n var dialogHeight = this.element.offsetHeight;\n return { width: dialogWidth, height: dialogHeight };\n };\n /**\n * Opens the dialog if it is in hidden state.\n * To open the dialog with full screen width, set the parameter to true.\n *\n * @param { boolean } isFullScreen - Enable the fullScreen Dialog.\n * @returns {void}\n */\n Dialog.prototype.show = function (isFullScreen) {\n var _this = this;\n if (!this.element.classList.contains(ROOT)) {\n return;\n }\n if (!this.element.classList.contains(DLG_SHOW) || (!isNullOrUndefined(isFullScreen))) {\n if (!isNullOrUndefined(isFullScreen)) {\n this.fullScreen(isFullScreen);\n }\n var eventArgs_1 = isBlazor() ? {\n cancel: false,\n element: this.element,\n container: this.isModal ? this.dlgContainer : this.element,\n maxHeight: this.element.style.maxHeight\n } : {\n cancel: false,\n element: this.element,\n container: this.isModal ? this.dlgContainer : this.element,\n target: this.target,\n maxHeight: this.element.style.maxHeight\n };\n this.trigger('beforeOpen', eventArgs_1, function (beforeOpenArgs) {\n if (!beforeOpenArgs.cancel) {\n if (_this.element.style.maxHeight !== eventArgs_1.maxHeight) {\n _this.allowMaxHeight = false;\n _this.element.style.maxHeight = eventArgs_1.maxHeight;\n }\n _this.storeActiveElement = document.activeElement;\n _this.element.tabIndex = -1;\n if (_this.isModal && (!isNullOrUndefined(_this.dlgOverlay))) {\n _this.dlgOverlay.style.display = 'block';\n _this.dlgContainer.style.display = 'flex';\n removeClass([_this.dlgOverlay], 'e-fade');\n if (!isNullOrUndefined(_this.targetEle)) {\n if (_this.targetEle === document.body) {\n _this.dlgContainer.style.position = 'fixed';\n }\n else {\n _this.dlgContainer.style.position = 'absolute';\n }\n _this.dlgOverlay.style.position = 'absolute';\n _this.element.style.position = 'relative';\n addClass([_this.targetEle], [DLG_TARGET, SCROLL_DISABLED]);\n }\n else {\n addClass([document.body], [DLG_TARGET, SCROLL_DISABLED]);\n }\n }\n var openAnimation = {\n name: _this.animationSettings.effect + 'In',\n duration: _this.animationSettings.duration,\n delay: _this.animationSettings.delay\n };\n var zIndexElement = (_this.isModal) ? _this.element.parentElement : _this.element;\n if (_this.calculatezIndex) {\n _this.setzIndex(zIndexElement, true);\n setStyleAttribute(_this.element, { 'zIndex': _this.zIndex });\n if (_this.isModal) {\n _this.setOverlayZindex(_this.zIndex);\n }\n }\n // eslint-disable-next-line\n _this.animationSettings.effect === 'None' ? _this.popupObj.show() : _this.popupObj.show(openAnimation);\n _this.dialogOpen = true;\n var prevOnChange = _this.isProtectedOnChange;\n _this.isProtectedOnChange = true;\n _this.visible = true;\n _this.preventVisibility = true;\n _this.isProtectedOnChange = prevOnChange;\n }\n });\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n /**\n * Closes the dialog if it is in visible state.\n *\n * @param { Event } event - specifies the event\n * @returns {void}\n */\n Dialog.prototype.hide = function (event) {\n var _this = this;\n if (!this.element.classList.contains(ROOT)) {\n return;\n }\n if (this.preventVisibility) {\n var eventArgs = isBlazor() ? {\n cancel: false,\n isInteracted: event ? true : false,\n element: this.element,\n container: this.isModal ? this.dlgContainer : this.element,\n event: event\n } : {\n cancel: false,\n isInteracted: event ? true : false,\n element: this.element,\n target: this.target,\n container: this.isModal ? this.dlgContainer : this.element,\n event: event,\n closedBy: this.dlgClosedBy\n };\n this.closeArgs = eventArgs;\n this.trigger('beforeClose', eventArgs, function (beforeCloseArgs) {\n if (!beforeCloseArgs.cancel) {\n if (_this.isModal) {\n if (!isNullOrUndefined(_this.targetEle)) {\n removeClass([_this.targetEle], [DLG_TARGET, SCROLL_DISABLED]);\n }\n }\n if (document.body.classList.contains(DLG_TARGET) &&\n document.body.classList.contains(SCROLL_DISABLED)) {\n removeClass([document.body], [DLG_TARGET, SCROLL_DISABLED]);\n }\n var closeAnimation = {\n name: _this.animationSettings.effect + 'Out',\n duration: _this.animationSettings.duration,\n delay: _this.animationSettings.delay\n };\n // eslint-disable-next-line\n _this.animationSettings.effect === 'None' ? _this.popupObj.hide() : _this.popupObj.hide(closeAnimation);\n _this.dialogOpen = false;\n var prevOnChange = _this.isProtectedOnChange;\n _this.isProtectedOnChange = true;\n _this.visible = false;\n _this.preventVisibility = false;\n _this.isProtectedOnChange = prevOnChange;\n }\n _this.dlgClosedBy = DLG_USER_ACTION_CLOSED;\n });\n }\n };\n // eslint-disable-next-line\n /**\n * Specifies to view the Full screen Dialog.\n *\n * @returns {void}\n * @private\n */\n Dialog.prototype.fullScreen = function (args) {\n /* eslint-disable */\n var top = this.element.offsetTop;\n var left = this.element.offsetLeft;\n /* eslint-enable */\n if (args) {\n this.element.style.top = document.scrollingElement.scrollTop + 'px';\n addClass([this.element], FULLSCREEN);\n var display = this.element.style.display;\n this.element.style.display = 'none';\n this.element.style.maxHeight = (!isNullOrUndefined(this.target)) ?\n (this.targetEle.offsetHeight) + 'px' : (window.innerHeight) + 'px';\n this.element.style.display = display;\n addClass([document.body], [DLG_TARGET, SCROLL_DISABLED]);\n if (this.allowDragging && !isNullOrUndefined(this.dragObj)) {\n this.dragObj.destroy();\n }\n }\n else {\n removeClass([this.element], FULLSCREEN);\n removeClass([document.body], [DLG_TARGET, SCROLL_DISABLED]);\n if (this.allowDragging && (!isNullOrUndefined(this.headerContent))) {\n this.setAllowDragging();\n }\n }\n return args;\n };\n /**\n * Returns the dialog button instances.\n * Based on that, you can dynamically change the button states.\n *\n * @param { number } index - Index of the button.\n * @returns {Button} - returns the button element\n */\n Dialog.prototype.getButtons = function (index) {\n if (!isNullOrUndefined(index)) {\n return this.btnObj[index];\n }\n return this.btnObj;\n };\n __decorate([\n Property('')\n ], Dialog.prototype, \"content\", void 0);\n __decorate([\n Property(true)\n ], Dialog.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Property(false)\n ], Dialog.prototype, \"enablePersistence\", void 0);\n __decorate([\n Property(false)\n ], Dialog.prototype, \"showCloseIcon\", void 0);\n __decorate([\n Property(false)\n ], Dialog.prototype, \"isModal\", void 0);\n __decorate([\n Property('')\n ], Dialog.prototype, \"header\", void 0);\n __decorate([\n Property(true)\n ], Dialog.prototype, \"visible\", void 0);\n __decorate([\n Property(false)\n ], Dialog.prototype, \"enableResize\", void 0);\n __decorate([\n Property(['South-East'])\n ], Dialog.prototype, \"resizeHandles\", void 0);\n __decorate([\n Property('auto')\n ], Dialog.prototype, \"height\", void 0);\n __decorate([\n Property('')\n ], Dialog.prototype, \"minHeight\", void 0);\n __decorate([\n Property('100%')\n ], Dialog.prototype, \"width\", void 0);\n __decorate([\n Property('')\n ], Dialog.prototype, \"cssClass\", void 0);\n __decorate([\n Property(1000)\n ], Dialog.prototype, \"zIndex\", void 0);\n __decorate([\n Property(null)\n ], Dialog.prototype, \"target\", void 0);\n __decorate([\n Property('')\n ], Dialog.prototype, \"footerTemplate\", void 0);\n __decorate([\n Property(false)\n ], Dialog.prototype, \"allowDragging\", void 0);\n __decorate([\n Collection([{}], ButtonProps)\n ], Dialog.prototype, \"buttons\", void 0);\n __decorate([\n Property(true)\n ], Dialog.prototype, \"closeOnEscape\", void 0);\n __decorate([\n Complex({}, AnimationSettings)\n ], Dialog.prototype, \"animationSettings\", void 0);\n __decorate([\n Complex({ X: 'center', Y: 'center' }, PositionData)\n ], Dialog.prototype, \"position\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"open\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"beforeSanitizeHtml\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"beforeOpen\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"close\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"beforeClose\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"dragStart\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"dragStop\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"drag\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"overlayClick\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"resizeStart\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"resizing\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"resizeStop\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"destroyed\", void 0);\n Dialog = __decorate([\n NotifyPropertyChanges\n ], Dialog);\n return Dialog;\n}(Component));\nexport { Dialog };\n/**\n * Base for creating Alert and Confirmation Dialog through util method.\n */\n// eslint-disable-next-line\nexport var DialogUtility;\n(function (DialogUtility) {\n /**\n * An alert dialog box is used to display warning like messages to the users.\n * ```\n * Eg : DialogUtility.alert('Alert message');\n *\n * ```\n */\n /* istanbul ignore next */\n /**\n *\n * @param {AlertDialogArgs} args - specifies the string\n * @returns {Dialog} - returns the dialog element.\n */\n function alert(args) {\n // eslint-disable-next-line\n var dialogComponent;\n var dialogElement = createElement('div', { 'className': DLG_UTIL_ALERT });\n document.body.appendChild(dialogElement);\n var alertDialogObj;\n var okButtonModel = [{\n buttonModel: { isPrimary: true, content: 'OK' },\n click: function () {\n this.hide();\n }\n }];\n if (typeof (args) === 'string') {\n alertDialogObj = createDialog({ content: args,\n position: { X: 'center', Y: 'top' },\n isModal: true, header: DLG_UTIL_DEFAULT_TITLE,\n buttons: okButtonModel }, dialogElement);\n }\n else {\n alertDialogObj = createDialog(alertOptions(args), dialogElement);\n }\n alertDialogObj.close = function () {\n if (args && args.close) {\n args.close.apply(alertDialogObj);\n }\n alertDialogObj.destroy();\n if (alertDialogObj.element.classList.contains('e-dlg-modal')) {\n alertDialogObj.element.parentElement.remove();\n alertDialogObj.target.classList.remove(DLG_UTIL_ROOT);\n }\n else {\n alertDialogObj.element.remove();\n }\n };\n return alertDialogObj;\n }\n DialogUtility.alert = alert;\n /**\n * A confirm dialog displays a specified message along with ‘OK’ and ‘Cancel’ button.\n * ```\n * Eg : DialogUtility.confirm('Confirm dialog message');\n *\n * ```\n */\n /* istanbul ignore next */\n /**\n *\n * @param {ConfirmDialogArgs} args - specifies the args\n * @returns {Dialog} - returns te element\n */\n function confirm(args) {\n // eslint-disable-next-line\n var dialogComponent;\n var dialogElement = createElement('div', { 'className': DLG_UTIL_CONFIRM });\n document.body.appendChild(dialogElement);\n var confirmDialogObj;\n var okCancelButtonModel = [{\n buttonModel: { isPrimary: true, content: 'OK' },\n click: function () {\n this.hide();\n }\n }, {\n buttonModel: { content: 'Cancel' },\n click: function () {\n this.hide();\n }\n }];\n if (typeof (args) === 'string') {\n confirmDialogObj = createDialog({ position: { X: 'center', Y: 'top' }, content: args, isModal: true,\n header: DLG_UTIL_DEFAULT_TITLE, buttons: okCancelButtonModel\n }, dialogElement);\n }\n else {\n confirmDialogObj = createDialog(confirmOptions(args), dialogElement);\n }\n confirmDialogObj.close = function () {\n if (args && args.close) {\n args.close.apply(confirmDialogObj);\n }\n confirmDialogObj.destroy();\n if (confirmDialogObj.element.classList.contains('e-dlg-modal')) {\n confirmDialogObj.element.parentElement.remove();\n confirmDialogObj.target.classList.remove(DLG_UTIL_ROOT);\n }\n else {\n confirmDialogObj.element.remove();\n }\n };\n return confirmDialogObj;\n }\n DialogUtility.confirm = confirm;\n // eslint-disable-next-line\n function createDialog(options, element) {\n var dialogObject = new Dialog(options);\n dialogObject.appendTo(element);\n return dialogObject;\n }\n // eslint-disable-next-line\n function alertOptions(option) {\n var options = {};\n options.buttons = [];\n options = formOptions(options, option);\n options = setAlertButtonModel(options, option);\n return options;\n }\n // eslint-disable-next-line\n function confirmOptions(option) {\n var options = {};\n options.buttons = [];\n options = formOptions(options, option);\n options = setConfirmButtonModel(options, option);\n return options;\n }\n // eslint-disable-next-line\n function formOptions(options, option) {\n options.header = !isNullOrUndefined(option.title) ? option.title : DLG_UTIL_DEFAULT_TITLE;\n options.content = !isNullOrUndefined(option.content) ? option.content : '';\n options.isModal = !isNullOrUndefined(option.isModal) ? option.isModal : true;\n options.showCloseIcon = !isNullOrUndefined(option.showCloseIcon) ? option.showCloseIcon : false;\n options.allowDragging = !isNullOrUndefined(option.isDraggable) ? option.isDraggable : false;\n options.closeOnEscape = !isNullOrUndefined(option.closeOnEscape) ? option.closeOnEscape : false;\n options.position = !isNullOrUndefined(option.position) ? option.position : { X: 'center', Y: 'top' };\n options.animationSettings = !isNullOrUndefined(option.animationSettings) ? option.animationSettings :\n { effect: 'Fade', duration: 400, delay: 0 };\n options.cssClass = !isNullOrUndefined(option.cssClass) ? option.cssClass : '';\n options.zIndex = !isNullOrUndefined(option.zIndex) ? option.zIndex : 1000;\n options.open = !isNullOrUndefined(option.open) ? option.open : null;\n options.width = !isNullOrUndefined(option.width) ? option.width : 'auto';\n options.height = !isNullOrUndefined(option.height) ? option.height : 'auto';\n return options;\n }\n // eslint-disable-next-line\n function setAlertButtonModel(options, option) {\n var alertButtonModel = [{\n buttonModel: { isPrimary: true, content: 'OK' },\n click: function () {\n this.hide();\n }\n }];\n if (!isNullOrUndefined(option.okButton)) {\n options.buttons[0] = formButtonModel(options.buttons[0], option.okButton, alertButtonModel[0]);\n }\n else {\n options.buttons = alertButtonModel;\n }\n return options;\n }\n // eslint-disable-next-line\n function setConfirmButtonModel(options, option) {\n var okButtonModel = {\n buttonModel: { isPrimary: true, content: 'OK' },\n click: function () {\n this.hide();\n }\n };\n var cancelButtonModel = {\n buttonModel: { content: 'Cancel' },\n click: function () {\n this.hide();\n }\n };\n if (!isNullOrUndefined(option.okButton)) {\n options.buttons[0] = formButtonModel(options.buttons[0], option.okButton, okButtonModel);\n }\n else {\n options.buttons[0] = okButtonModel;\n }\n if (!isNullOrUndefined(option.cancelButton)) {\n options.buttons[1] = formButtonModel(options.buttons[1], option.cancelButton, cancelButtonModel);\n }\n else {\n options.buttons[1] = cancelButtonModel;\n }\n return options;\n }\n // eslint-disable-next-line\n function formButtonModel(buttonModel, option, buttonPropModel) {\n var buttonProps = buttonPropModel;\n if (!isNullOrUndefined(option.text)) {\n buttonProps.buttonModel.content = option.text;\n }\n if (!isNullOrUndefined(option.icon)) {\n buttonProps.buttonModel.iconCss = option.icon;\n }\n if (!isNullOrUndefined(option.cssClass)) {\n buttonProps.buttonModel.cssClass = option.cssClass;\n }\n if (!isNullOrUndefined(option.click)) {\n buttonProps.click = option.click;\n }\n return buttonProps;\n }\n})(DialogUtility || (DialogUtility = {}));\n","import { Dialog } from '@syncfusion/ej2-popups';\nimport { isNullOrUndefined as isNOU } from '@syncfusion/ej2-base';\nimport * as events from '../base/constant';\n/**\n * Dialog Renderer\n */\nvar DialogRenderer = /** @class */ (function () {\n function DialogRenderer(parent) {\n this.parent = parent;\n this.addEventListener();\n }\n DialogRenderer.prototype.addEventListener = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n this.parent.on(events.moduleDestroy, this.moduleDestroy, this);\n this.parent.on(events.destroy, this.removeEventListener, this);\n };\n DialogRenderer.prototype.removeEventListener = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n this.parent.off(events.destroy, this.removeEventListener);\n this.parent.off(events.moduleDestroy, this.moduleDestroy);\n };\n /**\n * dialog render method\n *\n * @param {DialogModel} e - specifies the dialog model.\n * @returns {void}\n * @hidden\n\n */\n DialogRenderer.prototype.render = function (e) {\n var dlgObj;\n e.beforeOpen = this.beforeOpen.bind(this);\n e.open = this.open.bind(this);\n if (isNOU(e.close)) {\n e.close = this.close.bind(this);\n }\n e.beforeClose = this.beforeClose.bind(this);\n // eslint-disable-next-line\n dlgObj = new Dialog(e);\n dlgObj.isStringTemplate = true;\n return dlgObj;\n };\n DialogRenderer.prototype.beforeOpen = function (args) {\n this.parent.trigger(events.beforeDialogOpen, args, this.beforeOpenCallback.bind(this, args));\n };\n DialogRenderer.prototype.beforeOpenCallback = function (args) {\n if (args.cancel) {\n this.parent.notify(events.clearDialogObj, null);\n }\n };\n DialogRenderer.prototype.open = function (args) {\n this.parent.trigger(events.dialogOpen, args);\n };\n DialogRenderer.prototype.beforeClose = function (args) {\n this.parent.trigger(events.beforeDialogClose, args, function (closeArgs) {\n if (!closeArgs.cancel) {\n if (closeArgs.container.classList.contains('e-popup-close')) {\n closeArgs.cancel = true;\n }\n }\n });\n };\n /**\n * dialog close method\n *\n * @param {Object} args - specifies the arguments.\n * @returns {void}\n * @hidden\n\n */\n DialogRenderer.prototype.close = function (args) {\n this.parent.trigger(events.dialogClose, args);\n };\n DialogRenderer.prototype.moduleDestroy = function () {\n this.parent = null;\n };\n return DialogRenderer;\n}());\nexport { DialogRenderer };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component, EventHandler, Complex, Browser, addClass, select, detach } from '@syncfusion/ej2-base';\nimport { Property, NotifyPropertyChanges, formatUnit, L10n, closest } from '@syncfusion/ej2-base';\nimport { setStyleAttribute, Event, removeClass, print as printWindow, attributes } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined as isNOU, compile, append, extend, debounce } from '@syncfusion/ej2-base';\nimport { Touch as EJ2Touch } from '@syncfusion/ej2-base';\nimport { getScrollableParent } from '@syncfusion/ej2-popups';\nimport * as events from '../base/constant';\nimport * as classes from '../base/classes';\nimport { Render } from '../renderer/render';\nimport { ViewSource } from '../renderer/view-source';\nimport { executeGroup } from './interface';\nimport { ServiceLocator } from '../services/service-locator';\nimport { RendererFactory } from '../services/renderer-factory';\nimport { RenderType, ToolbarType, DialogType } from './enum';\nimport { ExecCommandCallBack } from '../actions/execute-command-callback';\nimport { KeyboardEvents } from '../actions/keyboard';\nimport { ToolbarSettings, ImageSettings, AudioSettings, VideoSettings, QuickToolbarSettings, FontFamily, FontSize, Format, NumberFormatList, BulletFormatList, FormatPainterSettings } from '../models/toolbar-settings';\nimport { FileManagerSettings } from '../models/toolbar-settings';\nimport { TableSettings, PasteCleanupSettings } from '../models/toolbar-settings';\nimport { FontColor, BackgroundColor } from '../models/toolbar-settings';\nimport { IFrameSettings } from '../models/iframe-settings';\nimport { InlineMode } from '../models/inline-mode';\nimport { defaultLocale } from '../models/default-locale';\nimport { setAttributes } from '../actions/html-attributes';\nimport { FullScreen } from '../actions/full-screen';\nimport { EnterKeyAction } from '../actions/enter-key';\nimport * as CONSTANT from '../../common/constant';\nimport { dispatchEvent, getEditValue, isIDevice, decode, isEditableValueEmpty, getDefaultValue } from '../base/util';\nimport { DialogRenderer } from '../renderer/dialog-renderer';\n/**\n * Represents the Rich Text Editor component.\n * ```html\n * \n * \n * ```\n */\nvar RichTextEditor = /** @class */ (function (_super) {\n __extends(RichTextEditor, _super);\n function RichTextEditor(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.needsID = true;\n return _this;\n }\n /**\n * To provide the array of modules needed for component rendering\n *\n * @returns {ModuleDeclaration[]} - specifies the declaration.\n * @hidden\n\n */\n RichTextEditor.prototype.requiredModules = function () {\n var modules = [];\n if (this.toolbarSettings.enable) {\n modules.push({ member: 'toolbar', args: [this, this.serviceLocator] });\n modules.push({\n member: 'link',\n args: [this, this.serviceLocator]\n });\n modules.push({\n member: 'table',\n args: [this, this.serviceLocator]\n });\n modules.push({\n member: 'image',\n args: [this, this.serviceLocator]\n });\n if (this.quickToolbarSettings.enable) {\n modules.push({ member: 'quickToolbar', args: [this, this.serviceLocator] });\n }\n }\n if (this.showCharCount) {\n modules.push({ member: 'count', args: [this, this.serviceLocator] });\n }\n if (this.editorMode === 'Markdown') {\n modules.push({ member: 'markdownEditor', args: [this, this.serviceLocator] });\n }\n if (this.editorMode === 'HTML') {\n modules.push({ member: 'htmlEditor', args: [this, this.serviceLocator] });\n modules.push({ member: 'pasteCleanup', args: [this, this.serviceLocator] });\n modules.push({\n member: 'audio',\n args: [this, this.serviceLocator]\n });\n modules.push({\n member: 'video',\n args: [this, this.serviceLocator]\n });\n modules.push({\n member: 'formatPainter',\n args: [this]\n });\n }\n if (this.fileManagerSettings.enable) {\n modules.push({ member: 'fileManager', args: [this, this.serviceLocator] });\n }\n if (this.enableResize) {\n modules.push({ member: 'resize', args: [this] });\n }\n return modules;\n };\n RichTextEditor.prototype.updateEnable = function () {\n if (this.enabled) {\n removeClass([this.element], classes.CLS_DISABLED);\n this.element.setAttribute('aria-disabled', 'false');\n if (!isNOU(this.htmlAttributes.tabindex)) {\n this.inputElement.setAttribute('tabindex', this.htmlAttributes.tabindex);\n }\n else {\n this.inputElement.setAttribute('tabindex', '0');\n }\n }\n else {\n if (this.getToolbar()) {\n removeClass(this.getToolbar().querySelectorAll('.' + classes.CLS_ACTIVE), classes.CLS_ACTIVE);\n removeClass([this.getToolbar()], [classes.CLS_TB_FLOAT, classes.CLS_TB_ABS_FLOAT]);\n }\n addClass([this.element], classes.CLS_DISABLED);\n this.element.tabIndex = -1;\n this.element.setAttribute('aria-disabled', 'true');\n this.inputElement.setAttribute('tabindex', '-1');\n }\n };\n /**\n * setEnable method\n *\n * @returns {void}\n * @hidden\n\n */\n RichTextEditor.prototype.setEnable = function () {\n this.updateEnable();\n // eslint-disable-next-line\n (this.enabled) ? this.eventInitializer() : this.unWireEvents();\n };\n RichTextEditor.prototype.initializeValue = function () {\n this.isFocusOut = false;\n this.isRTE = false;\n this.isBlur = true;\n this.defaultResetValue = null;\n this.isResizeInitialized = false;\n };\n /**\n * For internal use only - Initialize the event handler;\n *\n * @returns {void}\n * @hidden\n * @private\n */\n RichTextEditor.prototype.preRender = function () {\n this.initializeValue();\n this.onBlurHandler = this.blurHandler.bind(this);\n this.onFocusHandler = this.focusHandler.bind(this);\n this.onResizeHandler = this.resizeHandler.bind(this);\n this.clickPoints = { clientX: 0, clientY: 0 };\n this.initialValue = this.value;\n this.serviceLocator = new ServiceLocator;\n this.initializeServices();\n this.setContainer();\n this.persistData();\n setStyleAttribute(this.element, { 'width': formatUnit(this.width) });\n attributes(this.element, { role: 'application', 'aria-label': 'Rich Text Editor' });\n };\n RichTextEditor.prototype.persistData = function () {\n if (this.enablePersistence && this.originalElement.tagName === 'TEXTAREA') {\n this.element.id = this.originalElement.id + '_wrapper';\n var data = window.localStorage.getItem(this.getModuleName() + this.element.id);\n if (!(isNOU(data) || (data === ''))) {\n this.setProperties(JSON.parse(data), true);\n }\n }\n };\n RichTextEditor.prototype.setContainer = function () {\n this.originalElement = this.element.cloneNode(true);\n if (this.value === null || this.valueTemplate !== null) {\n this.setValue();\n }\n if (this.element.hasAttribute('tabindex')) {\n this.htmlAttributes = { 'tabindex': this.element.getAttribute('tabindex') };\n this.element.removeAttribute('tabindex');\n }\n this.element.innerHTML = '';\n var invalidAttr = ['class', 'style', 'id', 'ejs-for'];\n var htmlAttr = {};\n for (var a = 0; a < this.element.attributes.length; a++) {\n if (invalidAttr.indexOf(this.element.attributes[a].name) === -1 &&\n !(/^data-val/.test(this.element.attributes[a].name))) { // data-val for asp.net core data annotation validation.\n htmlAttr[this.element.attributes[a].name] = this.element.getAttribute(this.element.attributes[a].name);\n }\n }\n extend(htmlAttr, this.htmlAttributes, htmlAttr);\n this.setProperties({ htmlAttributes: htmlAttr }, true);\n if (!isNOU(this.htmlAttributes.id)) {\n this.element.id = this.htmlAttributes.id;\n }\n if (this.element.tagName === 'TEXTAREA') {\n var rteOuterWrapper = this.createElement('div', {\n className: this.element.getAttribute('class')\n });\n this.element.innerHTML = '';\n this.element.parentElement.insertBefore(rteOuterWrapper, this.element);\n this.valueContainer = this.element;\n removeClass([this.valueContainer], this.element.getAttribute('class').split(' '));\n this.element = rteOuterWrapper;\n }\n else {\n this.valueContainer = this.createElement('textarea', {\n id: this.getID() + '-value',\n attrs: { 'aria-labelledby': this.getID() }\n });\n }\n this.valueContainer.name = this.getID();\n addClass([this.valueContainer], classes.CLS_RTE_HIDDEN);\n if (!isNOU(this.cssClass)) {\n var currentClassList = this.cssClass.split(' ');\n for (var i = 0; i < currentClassList.length; i++) {\n addClass([this.valueContainer], currentClassList[i]);\n }\n }\n this.element.appendChild(this.valueContainer);\n };\n /**\n * getPersistData method\n *\n * @returns {void}\n * @hidden\n\n */\n RichTextEditor.prototype.getPersistData = function () {\n return this.addOnPersist(['value']);\n };\n /**\n * Focuses the Rich Text Editor component\n *\n * @returns {void}\n * @public\n */\n RichTextEditor.prototype.focusIn = function () {\n if (this.enabled) {\n this.inputElement.focus();\n this.focusHandler({});\n }\n };\n /**\n * Blurs the Rich Text Editor component\n *\n * @returns {void}\n * @public\n */\n RichTextEditor.prototype.focusOut = function () {\n if (this.enabled) {\n this.inputElement.blur();\n this.blurHandler({});\n }\n };\n /**\n * Selects all the content in RichTextEditor\n *\n * @returns {void}\n * @public\n */\n RichTextEditor.prototype.selectAll = function () {\n this.notify(events.selectAll, {});\n };\n /**\n * Selects a content range or an element\n *\n * @param {Range} range - Specify the range which you want to select within the content.\n * The method used to select a particular sentence or word or entire document.\n *\n * @returns {void}\n * @public\n */\n RichTextEditor.prototype.selectRange = function (range) {\n this.notify(events.selectRange, { range: range });\n };\n /**\n * Retrieves the HTML markup content from currently selected content of RichTextEditor.\n *\n * @returns {void}\n * @public\n */\n RichTextEditor.prototype.getSelection = function () {\n var str = '';\n this.notify(events.getSelectedHtml, {\n callBack: function (txt) {\n str = txt;\n }\n });\n return str;\n };\n /**\n * Executes the commands\n *\n * @returns {void}\n * @param {CommandName} commandName - Specifies the name of the command to be executed.\n * @param {string | HTMLElement | ILinkCommandsArgs | IImageCommandsArgs} value - Specifies the value that you want to execute.\n * @param {ExecuteCommandOption} option - specifies the command option\n * @public\n */\n RichTextEditor.prototype.executeCommand = function (commandName, value, option) {\n value = this.htmlPurifier(commandName, value);\n var internalValue;\n if (this.editorMode === 'HTML') {\n var range = this.getRange();\n if (this.iframeSettings.enable) {\n this.formatter.editorManager.nodeSelection.Clear(this.element.ownerDocument);\n }\n var toFocus = (this.iframeSettings.enable &&\n range.startContainer === this.inputElement) ? true : !this.inputElement.contains(range.startContainer);\n if (toFocus) {\n this.focusIn();\n }\n }\n var tool = executeGroup[\"\" + commandName];\n if (option && option.undo) {\n if (option.undo && this.formatter.getUndoRedoStack().length === 0) {\n this.formatter.saveData();\n }\n }\n if (this.maxLength !== -1 && !isNOU(tool.command)) {\n var currentInsertContentLength = 0;\n if (tool.command === 'Links') {\n currentInsertContentLength = value.text.length === 0 ?\n value.url.length : value.text.length;\n }\n if (tool.command === 'Images' || tool.command === 'Table' || tool.command === 'Files') {\n currentInsertContentLength = 1;\n }\n if (tool.command === 'InsertHTML') {\n if (!isNOU(value)) {\n var tempElem = this.createElement('div');\n tempElem.innerHTML = value;\n currentInsertContentLength = tempElem.textContent.length;\n }\n else if (!isNOU(tool.value) && (tool.value === '
' || tool.value === '
')) {\n currentInsertContentLength = 1;\n }\n }\n if (tool.command === 'InsertText') {\n currentInsertContentLength = value.length;\n }\n var currentLength = this.getText().trim().length;\n var selectionLength = this.getSelection().length;\n var totalLength = (currentLength - selectionLength) + currentInsertContentLength;\n if (!(this.maxLength === -1 || totalLength <= this.maxLength)) {\n return;\n }\n }\n internalValue = value;\n if (tool.command === 'FormatPainter') {\n if (!isNOU(value)) {\n this.formatPainterSettings = value;\n }\n internalValue = {\n formatPainterAction: tool.value\n };\n }\n this.formatter.editorManager.execCommand(tool.command, tool.subCommand ? tool.subCommand : (internalValue ? internalValue : tool.value), null, null, (internalValue ? internalValue : tool.value), (internalValue ? internalValue : tool.value));\n if (option && option.undo) {\n this.formatter.saveData();\n this.formatter.enableUndo(this);\n }\n this.setPlaceHolder();\n this.notify(events.contentChanged, {});\n };\n RichTextEditor.prototype.htmlPurifier = function (command, value) {\n if (this.editorMode === 'HTML') {\n switch (command) {\n case 'insertHTML':\n if (this.enableHtmlSanitizer) {\n if (typeof value === 'string') {\n value = this.htmlEditorModule.sanitizeHelper(value);\n }\n else {\n value = this.htmlEditorModule.sanitizeHelper(value.outerHTML);\n }\n }\n break;\n case 'insertTable':\n if (isNOU(value.width)) {\n value.width = { minWidth: this.tableSettings.minWidth,\n maxWidth: this.tableSettings.maxWidth, width: this.tableSettings.width };\n }\n break;\n case 'insertImage': {\n var temp = this.createElement('img', {\n attrs: {\n src: value.url\n }\n });\n var imageValue = temp.outerHTML;\n if (this.enableHtmlSanitizer) {\n imageValue = this.htmlEditorModule.sanitizeHelper(temp.outerHTML);\n }\n var url = (imageValue !== '' && (this.createElement('div', {\n innerHTML: imageValue\n }).firstElementChild).getAttribute('src')) || null;\n url = !isNOU(url) ? url : '';\n value.url = url;\n if (isNOU(value.width)) {\n value.width = { minWidth: this.insertImageSettings.minWidth,\n maxWidth: this.insertImageSettings.maxWidth, width: this.insertImageSettings.width };\n }\n if (isNOU(value.height)) {\n value.height = { minHeight: this.insertImageSettings.minHeight,\n maxHeight: this.insertImageSettings.maxHeight, height: this.insertImageSettings.height };\n }\n break;\n }\n case 'insertAudio': {\n var wrapTemp = this.createElement('audio', {\n attrs: {\n controls: ''\n }\n });\n var temp = this.createElement('source', {\n attrs: {\n src: value.url,\n type: value.url && value.url.split('.').length > 0\n ? 'audio/' + value.url.split('.')[value.url.split('.').length - 1] : ''\n }\n });\n wrapTemp.appendChild(temp);\n var audioValue = wrapTemp.outerHTML;\n if (this.enableHtmlSanitizer) {\n audioValue = this.htmlEditorModule.sanitizeHelper(wrapTemp.outerHTML);\n }\n var url = (audioValue !== '' && (this.createElement('div', {\n innerHTML: audioValue\n }).firstElementChild.firstElementChild).getAttribute('src')) || null;\n url = !isNOU(url) ? url : '';\n value.url = url;\n break;\n }\n case 'insertVideo': {\n var wrapTemp = this.createElement('video', {\n attrs: {\n controls: ''\n }\n });\n var temp = this.createElement('source', {\n attrs: {\n src: value.url,\n type: value.url && value.url.split('.').length > 0\n ? 'video/' + value.url.split('.')[value.url.split('.').length - 1] : ''\n }\n });\n wrapTemp.appendChild(temp);\n var audioValue = wrapTemp.outerHTML;\n if (this.enableHtmlSanitizer) {\n audioValue = this.htmlEditorModule.sanitizeHelper(temp.outerHTML);\n }\n var url = (audioValue !== '' && (this.createElement('div', {\n innerHTML: audioValue\n }).firstElementChild).getAttribute('src')) || null;\n url = !isNOU(url) ? url : '';\n value.url = url;\n if (isNOU(value.width)) {\n value.width = { minWidth: this.insertVideoSettings.minWidth,\n maxWidth: this.insertVideoSettings.maxWidth, width: this.insertVideoSettings.width };\n }\n if (isNOU(value.height)) {\n value.height = { minHeight: this.insertVideoSettings.minHeight,\n maxHeight: this.insertVideoSettings.maxHeight, height: this.insertVideoSettings.height };\n }\n break;\n }\n case 'createLink': {\n var tempNode = this.createElement('a', {\n attrs: {\n href: value.url\n }\n });\n var linkValue = tempNode.outerHTML;\n if (this.enableHtmlSanitizer) {\n linkValue = this.htmlEditorModule.sanitizeHelper(tempNode.outerHTML);\n }\n var href = (linkValue !== '' && (this.createElement('div', {\n innerHTML: linkValue\n }).firstElementChild).getAttribute('href')) || null;\n href = !isNOU(href) ? href : '';\n value.url = href;\n break;\n }\n }\n }\n return value;\n };\n RichTextEditor.prototype.encode = function (value) {\n var divNode = this.createElement('div');\n divNode.innerText = value.trim();\n // eslint-disable-next-line\n return divNode.innerHTML.replace(//gi, '\\n');\n };\n /**\n * For internal use only - To Initialize the component rendering.\n *\n * @returns {void}\n * @private\n\n */\n RichTextEditor.prototype.render = function () {\n if (this.value && !this.valueTemplate) {\n this.setProperties({ value: this.serializeValue(this.value) }, true);\n }\n this.renderModule = new Render(this, this.serviceLocator);\n this.sourceCodeModule = new ViewSource(this, this.serviceLocator);\n this.notify(events.initialLoad, {});\n this.trigger(events.load);\n this.RTERender();\n // eslint-disable-next-line\n var execCommandCallBack = new ExecCommandCallBack(this);\n this.notify(events.initialEnd, {});\n if (this.enableXhtml) {\n this.setProperties({ value: this.getXhtml() }, true);\n }\n if (this.toolbarSettings.enable && this.toolbarSettings.type === 'Expand' && !isNOU(this.getToolbar()) &&\n (this.toolbarSettings.items.indexOf('Undo') > -1 && this.toolbarSettings.items.indexOf('Redo') > -1)) {\n this.disableToolbarItem(['Undo', 'Redo']);\n }\n this.setContentHeight();\n if (this.value !== null) {\n this.valueContainer.defaultValue = this.value;\n }\n // eslint-disable-next-line\n (!this.enabled) ? this.unWireEvents() : this.eventInitializer();\n this.notify(events.bindCssClass, { cssClass: this.cssClass });\n this.addAudioVideoWrapper();\n this.notify(events.tableclass, {});\n this.renderComplete();\n };\n /**\n * addAudioVideoWrapper method\n *\n * @returns {void}\n * @hidden\n\n */\n RichTextEditor.prototype.addAudioVideoWrapper = function () {\n var _this = this;\n var insertElem;\n var audioElm = this.element.querySelectorAll('audio');\n for (var i = 0; i < audioElm.length; i++) {\n if (!audioElm[i].classList.contains('e-rte-audio')) {\n audioElm[i].classList.add('e-rte-audio');\n audioElm[i].classList.add(classes.CLS_AUDIOINLINE);\n }\n // eslint-disable-next-line max-len\n if (!audioElm[i].parentElement.classList.contains(classes.CLS_CLICKELEM) && !audioElm[i].parentElement.classList.contains(classes.CLS_AUDIOWRAP)) {\n var audioWrapElem = this.createElement('span', { className: classes.CLS_AUDIOWRAP });\n audioWrapElem.setAttribute('style', 'width:300px; margin:0 auto;');\n audioWrapElem.contentEditable = 'false';\n var audioInnerWrapElem = this.createElement('span', { className: classes.CLS_CLICKELEM });\n audioWrapElem.appendChild(audioInnerWrapElem);\n audioElm[i].parentNode.insertBefore(audioWrapElem, audioElm[i].nextSibling);\n audioInnerWrapElem.appendChild(audioElm[i]);\n if (audioWrapElem.nextElementSibling === null) {\n insertElem = this.createElement('br');\n audioWrapElem.parentNode.insertBefore(insertElem, audioWrapElem.nextSibling);\n }\n }\n }\n var videoElm = this.element.querySelectorAll('video');\n for (var i = 0; i < videoElm.length; i++) {\n if (!videoElm[i].classList.contains('e-rte-video')) {\n videoElm[i].classList.add('e-rte-video');\n videoElm[i].classList.add(classes.CLS_VIDEOINLINE);\n }\n // eslint-disable-next-line max-len\n if (!videoElm[i].parentElement.classList.contains(classes.CLS_CLICKELEM) && !videoElm[i].parentElement.classList.contains(classes.CLS_VIDEOWRAP)) {\n var videoWrapElem = this.createElement('span', { className: classes.CLS_VIDEOWRAP });\n videoWrapElem.contentEditable = 'false';\n videoElm[i].parentNode.insertBefore(videoWrapElem, videoElm[i].nextSibling);\n videoWrapElem.appendChild(videoElm[i]);\n if (videoWrapElem.nextElementSibling === null) {\n insertElem = this.createElement('br');\n videoWrapElem.parentNode.insertBefore(insertElem, videoWrapElem.nextSibling);\n }\n }\n if (Browser.userAgent.indexOf('Firefox') !== -1) {\n // eslint-disable-next-line\n videoElm[i].addEventListener('play', function (args) {\n _this.notify(events.mouseDown, { args: args });\n _this.notify('editAreaClick', { args: args });\n });\n // eslint-disable-next-line\n videoElm[i].addEventListener('pause', function (args) {\n _this.notify(events.mouseDown, { args: args });\n _this.notify('editAreaClick', { args: args });\n });\n }\n }\n };\n /**\n * For internal use only - Initialize the event handler\n *\n * @returns {void}\n * @private\n\n * @hidden\n */\n RichTextEditor.prototype.eventInitializer = function () {\n this.wireEvents();\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n RichTextEditor.prototype.cleanList = function (e) {\n var range = this.getRange();\n var currentStartContainer = range.startContainer;\n var currentEndContainer = range.endContainer;\n var currentStartOffset = range.startOffset;\n var isSameContainer = currentStartContainer === currentEndContainer ? true : false;\n var currentEndOffset = currentEndContainer.textContent.length;\n var endNode = range.endContainer.nodeName === '#text' ? range.endContainer.parentElement :\n range.endContainer;\n var closestLI = closest(endNode, 'LI');\n var isDetached = false;\n if (!isNOU(closestLI) && endNode.textContent.length === range.endOffset &&\n !range.collapsed && isNOU(endNode.nextElementSibling)) {\n for (var i = 0; i < closestLI.childNodes.length; i++) {\n if (closestLI.childNodes[i].nodeName === '#text' && closestLI.childNodes[i].textContent.trim().length === 0) {\n detach(closestLI.childNodes[i]);\n isDetached = true;\n i--;\n }\n }\n var currentLastElem = closestLI;\n while (currentLastElem.lastChild !== null && currentLastElem.nodeName !== '#text') {\n currentLastElem = currentLastElem.lastChild;\n }\n if (isDetached) {\n var currentLast = currentLastElem.nodeName === 'BR' && !isNOU(currentLastElem.previousSibling) ?\n currentLastElem.previousSibling : currentLastElem;\n this.formatter.editorManager.nodeSelection.setSelectionText(this.contentModule.getDocument(), isSameContainer ? currentLast : currentStartContainer, currentLast, currentStartOffset, (currentLast.nodeName === 'BR' ? 0 : currentLast.textContent.length));\n }\n }\n };\n /**\n * For internal use only - keydown the event handler;\n *\n * @param {KeyboardEvent} e - specifies the event.\n * @returns {void}\n * @private\n\n * @hidden\n */\n RichTextEditor.prototype.keyDown = function (e) {\n this.notify(events.keyDown, { member: 'keydown', args: e });\n this.restrict(e);\n if (this.editorMode === 'HTML') {\n this.cleanList(e);\n }\n if (this.editorMode === 'HTML' && ((e.which === 8 && e.code === 'Backspace') || (e.which === 46 && e.code === 'Delete'))) {\n var range = this.getRange();\n var startNode = range.startContainer.nodeName === '#text' ? range.startContainer.parentElement :\n range.startContainer;\n if (closest(startNode, 'pre') &&\n (e.which === 8 && range.startContainer.textContent.charCodeAt(range.startOffset - 1) === 8203) ||\n (e.which === 46 && range.startContainer.textContent.charCodeAt(range.startOffset) === 8203)) {\n // eslint-disable-next-line\n var regEx = new RegExp(String.fromCharCode(8203), 'g');\n var pointer = e.which === 8 ? range.startOffset - 1 : range.startOffset;\n range.startContainer.textContent = range.startContainer.textContent.replace(regEx, '');\n this.formatter.editorManager.nodeSelection.setCursorPoint(this.contentModule.getDocument(), range.startContainer, pointer);\n }\n else if ((e.code === 'Backspace' && e.which === 8) &&\n range.startContainer.textContent.charCodeAt(0) === 8203 && range.collapsed) {\n var parentEle = range.startContainer.parentElement;\n var index = void 0;\n var i = void 0;\n for (i = 0; i < parentEle.childNodes.length; i++) {\n if (parentEle.childNodes[i] === range.startContainer) {\n index = i;\n }\n }\n var bool = true;\n var removeNodeArray = [];\n for (i = index; i >= 0; i--) {\n // eslint-disable-next-line max-len\n if (parentEle.childNodes[i].nodeType === 3 && parentEle.childNodes[i].textContent.charCodeAt(0) === 8203 && bool) {\n removeNodeArray.push(i);\n }\n else {\n bool = false;\n }\n }\n if (removeNodeArray.length > 0) {\n for (i = removeNodeArray.length - 1; i > 0; i--) {\n parentEle.childNodes[removeNodeArray[i]].textContent = '';\n }\n }\n this.formatter.editorManager.nodeSelection.setCursorPoint(this.contentModule.getDocument(), range.startContainer, range.startOffset);\n }\n }\n if (this.formatter.getUndoRedoStack().length === 0) {\n this.formatter.saveData();\n }\n if (e.action !== 'insert-link' &&\n e.action !== 'format-copy' && e.action !== 'format-paste' &&\n (!e.target || !e.target.classList.contains('e-mention')) &&\n (e.action && e.action !== 'paste' && e.action !== 'space'\n || e.which === 9 || (e.code === 'Backspace' && e.which === 8))) {\n var FormatPainterEscapeAction = false;\n if (!isNOU(this.formatPainterModule)) {\n FormatPainterEscapeAction = this.formatPainterModule.previousAction === 'escape';\n }\n if (!FormatPainterEscapeAction) {\n this.formatter.process(this, null, e);\n }\n switch (e.action) {\n case 'toolbar-focus':\n if (this.toolbarSettings.enable) {\n // eslint-disable-next-line\n var selector = '.e-toolbar-item[title] [tabindex]';\n this.toolbarModule.baseToolbar.toolbarObj.element.querySelector(selector).focus();\n }\n break;\n case 'escape':\n this.contentModule.getEditPanel().focus();\n break;\n }\n }\n if (!isNOU(this.placeholder)) {\n if ((!isNOU(this.placeHolderWrapper)) && (this.inputElement.textContent.length !== 1)) {\n this.placeHolderWrapper.style.display = 'none';\n }\n else if (this.iframeSettings.enable && this.inputElement.classList.contains(\"e-rte-placeholder\")) {\n removeClass([this.inputElement], \"e-rte-placeholder\");\n }\n else {\n this.setPlaceHolder();\n }\n }\n this.autoResize();\n };\n RichTextEditor.prototype.keyUp = function (e) {\n if (this.editorMode === 'HTML') {\n var range = this.getRange();\n if (Browser.userAgent.indexOf('Firefox') !== -1 && range.startContainer.nodeName === '#text' &&\n range.startContainer.parentElement === this.inputElement && this.enterKey !== 'BR') {\n var range_1 = this.getRange();\n var tempElem = this.createElement(this.enterKey);\n range_1.startContainer.parentElement.insertBefore(tempElem, range_1.startContainer);\n tempElem.appendChild(range_1.startContainer);\n this.formatter.editorManager.nodeSelection.setSelectionText(this.contentModule.getDocument(), tempElem.childNodes[0], tempElem.childNodes[0], tempElem.childNodes[0].textContent.length, tempElem.childNodes[0].textContent.length);\n }\n }\n this.notify(events.keyUp, { member: 'keyup', args: e });\n if (e.keyCode === 39 || e.keyCode === 37) {\n this.notify(events.tableModulekeyUp, { member: 'tableModulekeyUp', args: e });\n }\n if (e.code === 'KeyX' && e.which === 88 && e.keyCode === 88 && e.ctrlKey && (this.inputElement.innerHTML === '' ||\n this.inputElement.innerHTML === '
')) {\n this.inputElement.innerHTML = getEditValue(getDefaultValue(this), this);\n }\n var allowedKeys = e.which === 32 || e.which === 13 || e.which === 8 || e.which === 46;\n if (((e.key !== 'shift' && !e.ctrlKey) && e.key && e.key.length === 1 || allowedKeys) || (this.editorMode === 'Markdown'\n && ((e.key !== 'shift' && !e.ctrlKey) && e.key && e.key.length === 1 || allowedKeys)) && !this.inlineMode.enable) {\n this.formatter.onKeyHandler(this, e);\n }\n if (this.inputElement && this.inputElement.textContent.length !== 0\n || this.element.querySelectorAll('.e-toolbar-item.e-active').length > 0) {\n this.notify(events.toolbarRefresh, { args: e });\n }\n if (!isNOU(this.placeholder)) {\n if (!(e.key === 'Enter' && e.keyCode === 13) && (this.inputElement.innerHTML === '


' || this.inputElement.innerHTML === '

' ||\n this.inputElement.innerHTML === '
')) {\n this.setPlaceHolder();\n }\n }\n };\n /**\n * @param {string} value - specifies the value.\n * @returns {void}\n * @hidden\n\n */\n RichTextEditor.prototype.serializeValue = function (value) {\n if (this.editorMode === 'HTML' && !isNOU(value)) {\n if (this.enableHtmlEncode) {\n value = this.htmlEditorModule.sanitizeHelper(decode(value));\n value = this.encode(value);\n }\n else {\n value = this.htmlEditorModule.sanitizeHelper(value);\n value = this.enableXhtml ? this.htmlEditorModule.xhtmlValidation.selfEncloseValidation(value) : value;\n }\n }\n return value;\n };\n /**\n * This method will clean up the HTML against cross-site scripting attack and return the HTML as string.\n * It's only applicable to editorMode as `HTML`.\n *\n * @param {string} value - Specifies the value that you want to sanitize.\n * @returns {string} - specifies the the string value\n */\n RichTextEditor.prototype.sanitizeHtml = function (value) {\n return this.serializeValue(value);\n };\n /**\n * updateValue method\n *\n * @param {string} value - specifies the string value.\n * @returns {void}\n * @hidden\n\n */\n RichTextEditor.prototype.updateValue = function (value) {\n if (isNOU(value)) {\n var inputVal = this.inputElement.innerHTML;\n this.setProperties({ value: isEditableValueEmpty(inputVal) ? null : inputVal });\n }\n else {\n this.setProperties({ value: value });\n }\n };\n RichTextEditor.prototype.triggerEditArea = function (e) {\n if (!isIDevice()) {\n this.notify(events.editAreaClick, { member: 'editAreaClick', args: e });\n }\n else {\n var touch = (e.touches ? e.changedTouches[0] : e);\n if (this.clickPoints.clientX === touch.clientX && this.clickPoints.clientY === touch.clientY) {\n this.notify(events.editAreaClick, { member: 'editAreaClick', args: e });\n }\n }\n };\n RichTextEditor.prototype.notifyMouseUp = function (e) {\n var touch = (e.touches ? e.changedTouches[0] : e);\n this.notify(events.mouseUp, { member: 'mouseUp', args: e,\n touchData: { prevClientX: this.clickPoints.clientX, prevClientY: this.clickPoints.clientY,\n clientX: touch.clientX, clientY: touch.clientY }\n });\n if (this.inputElement && ((this.editorMode === 'HTML' && this.inputElement.textContent.length !== 0) ||\n (this.editorMode === 'Markdown' && this.inputElement.value.length !== 0)) || (e.target && (e.target.nodeName === 'VIDEO'\n || e.target.querySelectorAll('.' + classes.CLS_VIDEOWRAP).length > 0) || (e.target && e.target.nodeName !== 'BR' &&\n (e.target.classList.contains(classes.CLS_AUDIOWRAP) ||\n e.target.classList.contains(classes.CLS_CLICKELEM) ||\n e.target.classList.contains(classes.CLS_VID_CLICK_ELEM))))) {\n this.notify(events.toolbarRefresh, { args: e });\n }\n this.triggerEditArea(e);\n };\n RichTextEditor.prototype.mouseUp = function (e) {\n if (this.quickToolbarSettings.showOnRightClick && Browser.isDevice) {\n var target = e.target;\n var closestTable = closest(target, 'table');\n if (target && target.nodeName === 'A' || target.nodeName === 'IMG' || (target.nodeName === 'TD' || target.nodeName === 'TH' ||\n target.nodeName === 'TABLE' || (closestTable && this.contentModule.getEditPanel().contains(closestTable)))) {\n return;\n }\n }\n this.notifyMouseUp(e);\n if (e.detail === 3) {\n var range = this.getRange();\n var selection = this.formatter.editorManager.domNode.getSelection();\n if (/\\s+$/.test(selection.toString())) {\n if (!isNOU(range.startContainer.parentElement) && (!isNOU(range.startContainer.parentElement.nextSibling) &&\n (range.startContainer.parentElement.nextSibling.nodeType !== 3 ||\n /\\s+$/.test(range.startContainer.parentElement.nextSibling.textContent)) || range.startOffset === range.endOffset)\n || range.startContainer.parentElement.tagName.toLocaleLowerCase() === 'li') {\n range.setStart(range.startContainer, range.startOffset);\n range.setEnd(range.startContainer, range.startContainer.textContent.length);\n }\n }\n }\n };\n /**\n * @param {Function} module - specifies the module function.\n * @returns {void}\n * @hidden\n\n */\n RichTextEditor.prototype.ensureModuleInjected = function (module) {\n return this.getInjectedModules().indexOf(module) >= 0;\n };\n /**\n * @returns {void}\n * @hidden\n\n */\n RichTextEditor.prototype.onCopy = function () {\n this.contentModule.getDocument().execCommand('copy', false, null);\n };\n /**\n * @returns {void}\n * @hidden\n\n */\n RichTextEditor.prototype.onCut = function () {\n this.contentModule.getDocument().execCommand('cut', false, null);\n };\n /**\n * @param {KeyboardEvent} e - specifies the keyboard event.\n * @returns {void}\n * @hidden\n\n */\n RichTextEditor.prototype.onPaste = function (e) {\n var _this = this;\n var evenArgs = {\n originalEvent: e,\n cancel: false,\n requestType: 'Paste'\n };\n this.trigger(events.actionBegin, evenArgs, function (pasteArgs) {\n var currentLength = _this.inputElement.textContent.length;\n var selectionLength = _this.getSelection().length;\n var pastedContentLength = (isNOU(e) || isNOU(e.clipboardData))\n ? 0 : e.clipboardData.getData('text/plain').length;\n var totalLength = (currentLength - selectionLength) + pastedContentLength;\n if (_this.editorMode === 'Markdown') {\n var args_1 = { requestType: 'Paste', editorMode: _this.editorMode, event: e };\n setTimeout(function () {\n _this.formatter.onSuccess(_this, args_1);\n }, 0);\n if (!(_this.maxLength === -1 || totalLength <= _this.maxLength)) {\n e.preventDefault();\n }\n return;\n }\n if (!pasteArgs.cancel && _this.inputElement.contentEditable === 'true' &&\n (_this.maxLength === -1 || totalLength <= _this.maxLength)) {\n if (!isNOU(_this.pasteCleanupModule)) {\n _this.notify(events.pasteClean, { args: e });\n }\n else {\n var args_2 = { requestType: 'Paste', editorMode: _this.editorMode, event: e };\n var value = null;\n var htmlValue = false;\n if (e && !isNOU(e.clipboardData)) {\n value = e.clipboardData.getData('text/plain');\n htmlValue = e.clipboardData.getData('text/html').indexOf('MsoNormal') > 0;\n }\n var file = e && e.clipboardData && e.clipboardData.items.length > 0 ?\n e.clipboardData.items[0].getAsFile() : null;\n if (value !== null) {\n _this.notify(events.paste, {\n file: file,\n args: e,\n text: value,\n isWordPaste: htmlValue\n });\n }\n setTimeout(function () {\n _this.formatter.onSuccess(_this, args_2);\n }, 0);\n }\n }\n else {\n e.preventDefault();\n }\n });\n };\n /**\n * @param {string} action - specifies the string value.\n * @param {MouseEvent} event - specifies the event.\n * @returns {void}\n * @hidden\n\n */\n RichTextEditor.prototype.clipboardAction = function (action, event) {\n switch (action.toLowerCase()) {\n case 'cut':\n this.onCut();\n this.formatter.onSuccess(this, {\n requestType: 'Cut',\n editorMode: this.editorMode,\n event: event\n });\n break;\n case 'copy':\n this.onCopy();\n this.formatter.onSuccess(this, {\n requestType: 'Copy',\n editorMode: this.editorMode,\n event: event\n });\n break;\n case 'paste':\n this.onPaste(event);\n break;\n }\n };\n /**\n * Destroys the component (detaches/removes all event handlers, attributes, classes, and empties the component element).\n *\n * @returns {void}\n */\n RichTextEditor.prototype.destroy = function () {\n if (this.isDestroyed || !this.isRendered) {\n return;\n }\n if (!isNOU(this.timeInterval)) {\n clearInterval(this.timeInterval);\n this.timeInterval = null;\n }\n if (this.element.offsetParent === null) {\n if (!isNOU(this.toolbarModule)) {\n this.toolbarModule.destroy();\n }\n this.notify(events.moduleDestroy, {});\n return;\n }\n this.notify(events.destroy, {});\n this.destroyDependentModules();\n this.unWireEvents();\n if (this.originalElement.tagName === 'TEXTAREA') {\n this.element.parentElement.insertBefore(this.valueContainer, this.element);\n this.valueContainer.id = this.getID();\n this.valueContainer.removeAttribute('name');\n detach(this.element);\n if (this.originalElement.innerHTML.trim() !== '') {\n this.valueContainer.value = this.originalElement.innerHTML.trim();\n this.setProperties({ value: (!isNOU(this.initialValue) ? this.initialValue : null) }, true);\n }\n else {\n this.valueContainer.value = this.valueContainer.defaultValue;\n }\n this.element = this.valueContainer;\n for (var i = 0; i < this.originalElement.classList.length; i++) {\n addClass([this.element], this.originalElement.classList[i]);\n }\n if (!isNOU(this.cssClass)) {\n var currentClassList = this.cssClass.split(' ');\n for (var i = 0; i < currentClassList.length; i++) {\n addClass([this.element], currentClassList[i]);\n }\n }\n removeClass([this.element], classes.CLS_RTE_HIDDEN);\n }\n else {\n if (this.originalElement.innerHTML.trim() !== '') {\n this.element.innerHTML = this.originalElement.innerHTML.trim();\n this.setProperties({ value: (!isNOU(this.initialValue) ? this.initialValue : null) }, true);\n }\n else {\n this.element.innerHTML = '';\n }\n }\n if (this.placeholder && this.placeHolderWrapper) {\n this.placeHolderWrapper = null;\n }\n if (!isNOU(this.cssClass)) {\n var allClassName = this.cssClass.split(' ');\n for (var i = 0; i < allClassName.length; i++) {\n if (allClassName[i].trim() !== '') {\n removeClass([this.element], allClassName[i]);\n }\n }\n }\n this.removeHtmlAttributes();\n this.removeAttributes();\n _super.prototype.destroy.call(this);\n this.isRendered = false;\n if (this.enablePersistence) {\n window.localStorage.removeItem(this.getModuleName() + this.element.id);\n }\n };\n RichTextEditor.prototype.removeHtmlAttributes = function () {\n if (this.htmlAttributes) {\n var keys = Object.keys(this.htmlAttributes);\n for (var i = 0; i < keys.length && this.element.hasAttribute(keys[i]); i++) {\n this.element.removeAttribute(keys[i]);\n }\n }\n };\n RichTextEditor.prototype.removeAttributes = function () {\n if (!this.enabled) {\n removeClass([this.element], classes.CLS_DISABLED);\n }\n if (this.enableRtl) {\n removeClass([this.element], classes.CLS_RTL);\n }\n if (this.readonly) {\n removeClass([this.element], classes.CLS_RTE_READONLY);\n }\n if (this.element.style.width !== '' && this.originalElement.style.width === '') {\n this.element.style.removeProperty('width');\n }\n if (this.element.style.height !== '' && this.originalElement.style.height === '') {\n this.element.style.removeProperty('height');\n }\n this.element.removeAttribute('aria-disabled');\n this.element.removeAttribute('role');\n this.element.removeAttribute('tabindex');\n };\n RichTextEditor.prototype.destroyDependentModules = function () {\n /* destroy dependent modules */\n this.renderModule.destroy();\n this.formatter.editorManager.undoRedoManager.destroy();\n this.sourceCodeModule.destroy();\n };\n /**\n * Returns the HTML or Text inside the RichTextEditor.\n *\n * @returns {Element} - specifies the element.\n */\n RichTextEditor.prototype.getContent = function () {\n return this.contentModule.getPanel();\n };\n /**\n * Returns the text content as string.\n *\n * @returns {string} - specifies the string value.\n */\n RichTextEditor.prototype.getText = function () {\n return this.contentModule.getText();\n };\n /**\n * Returns the html value of the selected content as string.\n *\n * @returns {string} - specifies the string value.\n */\n RichTextEditor.prototype.getSelectedHtml = function () {\n var range;\n var wrapperElm = this.createElement('div');\n var selection = this.contentModule.getDocument().getSelection();\n if (selection.rangeCount > 0) {\n range = selection.getRangeAt(0);\n var selectedHtml = range.cloneContents();\n wrapperElm.appendChild(selectedHtml);\n }\n return wrapperElm.innerHTML;\n };\n /**\n * It shows the inline quick toolbar\n *\n * @returns {void}\n */\n RichTextEditor.prototype.showInlineToolbar = function () {\n if (this.inlineMode.enable) {\n var currentRange = this.getRange();\n var targetElm = currentRange.endContainer.nodeName === '#text' ?\n currentRange.endContainer.parentElement : currentRange.endContainer;\n var x = currentRange.getClientRects()[0].left;\n var y = currentRange.getClientRects()[0].top;\n this.quickToolbarModule.showInlineQTBar(x, y, targetElm);\n }\n };\n /**\n * It hides the inline quick toolbar\n *\n * @returns {void}\n */\n RichTextEditor.prototype.hideInlineToolbar = function () {\n this.quickToolbarModule.hideInlineQTBar();\n };\n /**\n * For internal use only - Get the module name.\n *\n * @returns {void}\n * @private\n\n */\n RichTextEditor.prototype.getModuleName = function () {\n return 'richtexteditor';\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {RichTextEditorModel} newProp - specifies the the property.\n * @param {RichTextEditorModel} oldProp - specifies the old property.\n * @returns {void}\n * @hidden\n\n */\n /* eslint-disable */\n RichTextEditor.prototype.onPropertyChanged = function (newProp, oldProp) {\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'enterKey':\n case 'value': {\n var nVal = void 0;\n if (prop === 'enterKey') {\n if (this.value === null || this.value === '

' || this.value === '


' ||\n this.value === '
') {\n nVal = null;\n }\n else {\n nVal = this.value;\n }\n }\n else {\n nVal = newProp[prop];\n }\n var val = this.editorMode === 'HTML' ? getEditValue(nVal, this) : nVal;\n if ((!isNOU(nVal) && nVal !== '') || prop === 'enterKey') {\n this.value = this.serializeValue(((this.enableHtmlEncode) ? this.encode(decode(val)) : val));\n }\n this.updatePanelValue();\n if (this.inputElement) {\n this.notify(events.tableclass, {});\n }\n this.setPlaceHolder();\n this.notify(events.xhtmlValidation, { module: 'XhtmlValidation', newProp: newProp, oldProp: oldProp });\n if (this.enableXhtml) {\n this.setProperties({ value: this.getXhtml() }, true);\n }\n if (this.showCharCount) {\n this.countModule.refresh();\n }\n this.addAudioVideoWrapper();\n break;\n }\n case 'valueTemplate':\n this.setValue(true);\n if (this.showCharCount) {\n this.countModule.refresh();\n }\n break;\n case 'width':\n this.setWidth(newProp[prop]);\n if (this.toolbarSettings.enable && !this.inlineMode.enable) {\n this.toolbarModule.refreshToolbarOverflow();\n this.resizeHandler();\n }\n break;\n case 'height':\n this.setHeight(newProp[prop]);\n this.setContentHeight();\n this.autoResize();\n break;\n case 'readonly':\n this.setReadOnly(false);\n break;\n case 'cssClass':\n this.element.classList.remove(oldProp[prop]);\n this.setCssClass(newProp[prop]);\n this.notify(events.bindCssClass, { cssClass: newProp[prop], oldCssClass: oldProp[prop] });\n break;\n case 'enabled':\n this.setEnable();\n break;\n case 'enableRtl':\n this.updateRTL();\n break;\n case 'placeholder':\n this.placeholder = newProp[prop];\n this.setPlaceHolder();\n break;\n case 'htmlAttributes':\n setAttributes(this.htmlAttributes, this, false, false);\n break;\n case 'iframeSettings': {\n var frameSetting = oldProp[prop];\n if (frameSetting.resources) {\n var iframe = this.contentModule.getDocument();\n var header = iframe.querySelector('head');\n var files = void 0;\n if (frameSetting.resources.scripts) {\n files = header.querySelectorAll('.' + classes.CLS_SCRIPT_SHEET);\n this.removeSheets(files);\n }\n if (frameSetting.resources.styles) {\n files = header.querySelectorAll('.' + classes.CLS_STYLE_SHEET);\n this.removeSheets(files);\n }\n }\n this.setIframeSettings();\n break;\n }\n case 'locale':\n _super.prototype.refresh.call(this);\n break;\n case 'inlineMode':\n this.notify(events.modelChanged, { module: 'quickToolbar', newProp: newProp, oldProp: oldProp });\n this.setContentHeight();\n break;\n case 'toolbarSettings':\n this.notify(events.modelChanged, { module: 'toolbar', newProp: newProp, oldProp: oldProp });\n this.setContentHeight();\n break;\n case 'maxLength':\n if (this.showCharCount) {\n this.countModule.refresh();\n }\n break;\n case 'showCharCount':\n if (newProp[prop] && this.countModule) {\n this.countModule.renderCount();\n }\n else if (newProp[prop] === false && this.countModule) {\n this.countModule.destroy();\n }\n break;\n case 'enableHtmlEncode':\n this.updateValueData();\n this.updatePanelValue();\n this.setPlaceHolder();\n if (this.showCharCount) {\n this.countModule.refresh();\n }\n break;\n case 'undoRedoSteps':\n case 'undoRedoTimer':\n this.formatter.editorManager.observer.notify(CONSTANT.MODEL_CHANGED, { newProp: newProp, oldProp: oldProp });\n break;\n case 'enableXhtml':\n this.notify(events.xhtmlValidation, { module: 'XhtmlValidation', newProp: newProp, oldProp: oldProp });\n break;\n case 'quickToolbarSettings':\n newProp.quickToolbarSettings.showOnRightClick ? this.wireContextEvent() : this.unWireContextEvent();\n this.notify(events.modelChanged, { newProp: newProp, oldProp: oldProp });\n break;\n default:\n this.notify(events.modelChanged, { newProp: newProp, oldProp: oldProp });\n break;\n }\n }\n };\n /* eslint-enable */\n /**\n * @hidden\n * @returns {void}\n\n */\n RichTextEditor.prototype.updateValueData = function () {\n if (this.enableHtmlEncode) {\n this.setProperties({ value: this.encode(decode(this.inputElement.innerHTML)) }, true);\n }\n else {\n this.setProperties({\n value: /<[a-z][\\s\\S]*>/i.test(this.inputElement.innerHTML) ? this.inputElement.innerHTML :\n decode(this.inputElement.innerHTML)\n });\n }\n };\n RichTextEditor.prototype.removeSheets = function (srcList) {\n var i;\n for (i = 0; i < srcList.length; i++) {\n detach(srcList[i]);\n }\n };\n RichTextEditor.prototype.updatePanelValue = function () {\n var value = this.value;\n value = (this.enableHtmlEncode && this.value) ? decode(value) : value;\n var getTextArea = this.element.querySelector('.e-rte-srctextarea');\n if (value) {\n if (getTextArea && getTextArea.style.display === 'block') {\n getTextArea.value = this.value;\n }\n if (this.valueContainer) {\n this.valueContainer.value = (this.enableHtmlEncode) ? this.value : value;\n }\n if (this.editorMode === 'HTML' && this.inputElement && this.inputElement.innerHTML.replace('&', '&').trim() !== value.trim()) {\n this.inputElement.innerHTML = value;\n }\n else if (this.editorMode === 'Markdown' && this.inputElement\n && this.inputElement.value.trim() !== value.trim()) {\n this.inputElement.value = value;\n }\n }\n else {\n if (getTextArea && getTextArea.style.display === 'block') {\n getTextArea.value = '';\n }\n if (this.editorMode === 'HTML') {\n if (this.enterKey === 'DIV') {\n this.inputElement.innerHTML = '

';\n }\n else if (this.enterKey === 'BR') {\n this.inputElement.innerHTML = '
';\n }\n else {\n this.inputElement.innerHTML = '


';\n if (value === '' && this.formatter && this.inputElement) {\n this.formatter.editorManager.nodeSelection.setCursorPoint(this.contentModule.getDocument(), this.inputElement.firstElementChild, this.inputElement.firstElementChild.childElementCount);\n }\n }\n }\n else {\n this.inputElement.value = '';\n }\n if (this.valueContainer) {\n this.valueContainer.value = '';\n }\n }\n if (this.showCharCount) {\n this.countModule.refresh();\n }\n };\n RichTextEditor.prototype.setHeight = function (height) {\n if (height !== 'auto') {\n this.element.style.height = formatUnit(height);\n }\n else {\n this.element.style.height = 'auto';\n }\n if (this.toolbarSettings.type === 'Expand' && (typeof (this.height) === 'string' &&\n this.height.indexOf('px') > -1 || typeof (this.height) === 'number')) {\n this.element.classList.add(classes.CLS_RTE_FIXED_TB_EXPAND);\n }\n else {\n this.element.classList.remove(classes.CLS_RTE_FIXED_TB_EXPAND);\n }\n };\n /**\n * setPlaceHolder method\n *\n * @returns {void}\n * @hidden\n\n */\n RichTextEditor.prototype.setPlaceHolder = function () {\n if (this.inputElement && this.placeholder && this.iframeSettings.enable !== true) {\n if (this.editorMode !== 'Markdown') {\n if (!this.placeHolderWrapper) {\n this.placeHolderWrapper = this.createElement('span', { className: 'rte-placeholder e-rte-placeholder' + ' ' + this.cssClass });\n if (this.inputElement) {\n this.inputElement.parentElement.insertBefore(this.placeHolderWrapper, this.inputElement);\n }\n attributes(this.placeHolderWrapper, {\n 'style': 'font-size: 14px; margin-left: 0px; margin-right: 0px;'\n });\n }\n this.placeHolderWrapper.innerHTML = this.placeholder;\n if (this.inputElement.textContent.length === 0 && this.inputElement.childNodes.length < 2 && !isNOU(this.inputElement.firstChild) && (this.inputElement.firstChild.nodeName === 'BR' ||\n ((this.inputElement.firstChild.nodeName === 'P' || this.inputElement.firstChild.nodeName === 'DIV') && !isNOU(this.inputElement.firstChild.firstChild) &&\n this.inputElement.firstChild.firstChild.nodeName === 'BR'))) {\n this.placeHolderWrapper.style.display = 'block';\n }\n else {\n this.placeHolderWrapper.style.display = 'none';\n }\n }\n else {\n this.inputElement.setAttribute('placeholder', this.placeholder);\n }\n }\n if (this.placeholder && this.iframeSettings.enable) {\n if (this.inputElement.textContent.length === 0 && this.inputElement.childNodes.length < 2 && !isNOU(this.inputElement.firstChild) && (this.inputElement.firstChild.nodeName === 'BR' ||\n ((this.inputElement.firstChild.nodeName === 'P' || this.inputElement.firstChild.nodeName === 'DIV') && !isNOU(this.inputElement.firstChild.firstChild) &&\n this.inputElement.firstChild.firstChild.nodeName === 'BR'))) {\n addClass([this.inputElement], \"e-rte-placeholder\");\n this.inputElement.setAttribute('placeholder', this.placeholder);\n }\n else {\n removeClass([this.inputElement], \"e-rte-placeholder\");\n }\n }\n };\n RichTextEditor.prototype.setWidth = function (width) {\n if (width !== 'auto') {\n setStyleAttribute(this.element, { 'width': formatUnit(this.width) });\n }\n else {\n this.element.style.width = 'auto';\n }\n };\n RichTextEditor.prototype.setCssClass = function (cssClass) {\n if (!isNOU(cssClass)) {\n var allClassName = cssClass.split(' ');\n for (var i = 0; i < allClassName.length; i++) {\n if (allClassName[i].trim() !== '') {\n this.element.classList.add(allClassName[i]);\n }\n }\n }\n };\n RichTextEditor.prototype.updateRTL = function () {\n this.notify(events.rtlMode, { enableRtl: this.enableRtl });\n if (this.enableRtl) {\n this.element.classList.add(classes.CLS_RTL);\n this.inputElement.classList.add(classes.CLS_RTL);\n }\n else {\n this.element.classList.remove(classes.CLS_RTL);\n this.inputElement.classList.remove(classes.CLS_RTL);\n }\n };\n RichTextEditor.prototype.updateReadOnly = function () {\n this.notify(events.readOnlyMode, { editPanel: this.inputElement, mode: this.readonly });\n };\n /**\n * setReadOnly method\n *\n * @param {boolean} initial - specifies the boolean value\n * @returns {void}\n * @hidden\n\n */\n RichTextEditor.prototype.setReadOnly = function (initial) {\n this.updateReadOnly();\n if (!initial) {\n if (this.readonly && this.enabled) {\n this.unbindEvents();\n }\n else if (this.enabled) {\n this.bindEvents();\n }\n }\n };\n /**\n * By default, prints all the pages of the RichTextEditor.\n *\n * @returns {void}\n */\n RichTextEditor.prototype.print = function () {\n var _this = this;\n var printWind;\n var printArgs = {\n element: this.inputElement,\n requestType: 'print',\n cancel: false\n };\n this.trigger(events.actionBegin, printArgs, function (printingArgs) {\n printWind = window.open('', 'print', 'height=' + window.outerHeight + ',width=' + window.outerWidth);\n if (Browser.info.name === 'msie') {\n printWind.resizeTo(screen.availWidth, screen.availHeight);\n }\n printWind = printWindow(_this.inputElement, printWind);\n if (!printingArgs.cancel) {\n var actionArgs = {\n requestType: 'print'\n };\n _this.trigger(events.actionComplete, actionArgs);\n }\n });\n };\n /**\n * Refresh the view of the editor.\n *\n * @returns {void}\n * @public\n */\n RichTextEditor.prototype.refreshUI = function () {\n this.renderModule.refresh();\n };\n /**\n * Shows the Rich Text Editor component in full-screen mode.\n *\n * @returns {void}\n */\n RichTextEditor.prototype.showFullScreen = function () {\n this.fullScreenModule.showFullScreen();\n };\n /**\n * Enables the give toolbar items in the Rich Text Editor component.\n *\n * @returns {void}\n * @param {string | string[]} items - Specifies the single or collection of items\n * @param {boolean} muteToolbarUpdate enable/disables the toolbar item status in RichTextEditor.\n * that you want to be enable in Rich Text Editor’s Toolbar.\n *\n * @public\n */\n RichTextEditor.prototype.enableToolbarItem = function (items, muteToolbarUpdate) {\n this.toolbarModule.enableTBarItems(this.getBaseToolbarObject(), items, true, muteToolbarUpdate);\n };\n /**\n * Disables the given toolbar items in the Rich Text Editor component.\n *\n * @returns {void}\n * @param {string | string[]} items - Specifies the single or collection of items\n * @param {boolean} muteToolbarUpdate enable/disables the toolbar item status in RichTextEditor.\n * that you want to be disable in Rich Text Editor’s Toolbar.\n *\n * @public\n */\n RichTextEditor.prototype.disableToolbarItem = function (items, muteToolbarUpdate) {\n this.toolbarModule.enableTBarItems(this.getBaseToolbarObject(), items, false, muteToolbarUpdate);\n };\n /**\n * Removes the give toolbar items from the Rich Text Editor component.\n *\n * @returns {void}\n * @param {string | string[]} items - Specifies the single or collection of items\n * that you want to be remove from Rich Text Editor’s Toolbar.\n *\n * @public\n */\n RichTextEditor.prototype.removeToolbarItem = function (items) {\n this.toolbarModule.removeTBarItems(items);\n };\n /**\n * Get the selected range from the RichTextEditor's content.\n *\n * @returns {void}\n * @public\n\n */\n RichTextEditor.prototype.getRange = function () {\n return this.formatter.editorManager.nodeSelection.getRange(this.contentModule.getDocument());\n };\n RichTextEditor.prototype.initializeServices = function () {\n this.serviceLocator.register('rendererFactory', new RendererFactory);\n this.serviceLocator.register('rteLocale', this.localeObj = new L10n(this.getModuleName(), defaultLocale, this.locale));\n this.serviceLocator.register('dialogRenderObject', new DialogRenderer(this));\n };\n RichTextEditor.prototype.RTERender = function () {\n var rendererFactory = this.serviceLocator.getService('rendererFactory');\n this.contentModule = rendererFactory.getRenderer(RenderType.Content);\n this.fullScreenModule = new FullScreen(this);\n this.enterKeyModule = new EnterKeyAction(this);\n this.renderModule.render();\n this.inputElement = this.contentModule.getEditPanel();\n this.setHeight(this.height);\n setAttributes(this.htmlAttributes, this, false, true);\n if (this.iframeSettings) {\n this.setIframeSettings();\n }\n this.setCssClass(this.cssClass);\n this.updateEnable();\n this.setPlaceHolder();\n this.updateRTL();\n this.updateReadOnly();\n this.updatePanelValue();\n if (this.enableHtmlEncode && !isNOU(this.value)) {\n this.setProperties({ value: this.encode(decode(this.value)) });\n }\n };\n RichTextEditor.prototype.setIframeSettings = function () {\n if (this.iframeSettings.resources) {\n var styleSrc = this.iframeSettings.resources.styles;\n var scriptSrc = this.iframeSettings.resources.scripts;\n if (this.iframeSettings.resources.scripts.length > 0) {\n this.InjectSheet(true, scriptSrc);\n }\n if (this.iframeSettings.resources.styles.length > 0) {\n this.InjectSheet(false, styleSrc);\n }\n }\n if (this.iframeSettings.attributes) {\n setAttributes(this.iframeSettings.attributes, this, true, false);\n }\n };\n RichTextEditor.prototype.InjectSheet = function (scriptSheet, srcList) {\n try {\n if (srcList && srcList.length > 0) {\n var iFrame = this.contentModule.getDocument();\n var target = iFrame.querySelector('head');\n for (var i = 0; i < srcList.length; i++) {\n if (scriptSheet) {\n var scriptEle = this.createScriptElement();\n scriptEle.src = srcList[i];\n target.appendChild(scriptEle);\n }\n else {\n var styleEle = this.createStyleElement();\n styleEle.href = srcList[i];\n target.appendChild(styleEle);\n }\n }\n }\n }\n catch (e) {\n return;\n }\n };\n RichTextEditor.prototype.createScriptElement = function () {\n var scriptEle = this.createElement('script', {\n className: classes.CLS_SCRIPT_SHEET\n });\n scriptEle.type = 'text/javascript';\n return scriptEle;\n };\n RichTextEditor.prototype.createStyleElement = function () {\n var styleEle = this.createElement('link', {\n className: classes.CLS_STYLE_SHEET\n });\n styleEle.rel = 'stylesheet';\n return styleEle;\n };\n RichTextEditor.prototype.setValue = function (isPropertyChange) {\n var _this = this;\n if (this.valueTemplate) {\n var regEx = new RegExp(/<(?=.*? .*?\\/ ?>|br|hr|input|!--|wbr)[a-z]+.*?>|<([a-z]+).*?<\\/\\1>/i);\n if (regEx.test(this.valueTemplate)) {\n this.setProperties({ value: this.valueTemplate });\n }\n else {\n var compiledTemplate = compile(this.valueTemplate)('', this, 'valueTemplate');\n // eslint-disable-next-line\n if (typeof this.valueTemplate !== 'string' && this.isReact) {\n this.displayTempElem = this.createElement('div');\n for (var i = 0; i < compiledTemplate.length; i++) {\n var item = compiledTemplate[i];\n append([item], this.displayTempElem);\n }\n this.renderTemplates(function () {\n _this.inputElement.innerHTML = _this.displayTempElem.childNodes[0].innerHTML;\n _this.setProperties({ value: _this.inputElement.innerHTML.trim() });\n });\n }\n else {\n var appendElem = this.element;\n if (isPropertyChange) {\n this.inputElement.innerHTML = '';\n appendElem = this.inputElement;\n }\n for (var i = 0; i < compiledTemplate.length; i++) {\n var item = compiledTemplate[i];\n append([item], appendElem);\n }\n this.setProperties({ value: appendElem.innerHTML.trim() });\n this.renderReactTemplates();\n }\n }\n }\n else {\n // eslint-disable-next-line\n var innerHtml = !isNOU(this.element.innerHTML) && this.element.innerHTML.replace(/<(\\/?|\\!?)(!--!--)>/g, '').trim();\n if (innerHtml !== '') {\n if (this.element.tagName === 'TEXTAREA') {\n this.setProperties({ value: decode(innerHtml) });\n }\n else {\n this.setProperties({ value: innerHtml });\n }\n }\n }\n };\n // eslint-disable-next-line\n RichTextEditor.prototype.renderTemplates = function (callBack) {\n this.renderReactTemplates(callBack);\n };\n RichTextEditor.prototype.updateResizeFlag = function () {\n this.isResizeInitialized = true;\n };\n /**\n * Image max width calculation method\n *\n * @returns {void}\n * @hidden\n\n */\n RichTextEditor.prototype.getInsertImgMaxWidth = function () {\n var maxWidth = this.insertImageSettings.maxWidth;\n // eslint-disable-next-line\n var imgPadding = 12;\n var imgResizeBorder = 2;\n var editEle = this.contentModule.getEditPanel();\n var eleStyle = window.getComputedStyle(editEle);\n var editEleMaxWidth = editEle.offsetWidth - (imgPadding + imgResizeBorder +\n parseFloat(eleStyle.paddingLeft.split('px')[0]) + parseFloat(eleStyle.paddingRight.split('px')[0]) +\n parseFloat(eleStyle.marginLeft.split('px')[0]) + parseFloat(eleStyle.marginRight.split('px')[0]));\n return isNOU(maxWidth) ? editEleMaxWidth : maxWidth;\n };\n /**\n * Video max width calculation method\n *\n * @returns {void}\n * @hidden\n\n */\n RichTextEditor.prototype.getInsertVidMaxWidth = function () {\n var maxWidth = this.insertVideoSettings.maxWidth;\n // eslint-disable-next-line\n var vidPadding = 12;\n var vidResizeBorder = 2;\n var editEle = this.contentModule.getEditPanel();\n var eleStyle = window.getComputedStyle(editEle);\n var editEleMaxWidth = editEle.offsetWidth - (vidPadding + vidResizeBorder +\n parseFloat(eleStyle.paddingLeft.split('px')[0]) + parseFloat(eleStyle.paddingRight.split('px')[0]) +\n parseFloat(eleStyle.marginLeft.split('px')[0]) + parseFloat(eleStyle.marginRight.split('px')[0]));\n return isNOU(maxWidth) ? editEleMaxWidth : maxWidth;\n };\n /**\n * setContentHeight method\n *\n * @param {string} target - specifies the target value.\n * @param {boolean} isExpand - specifies the bollean value.\n * @returns {void}\n * @hidden\n\n */\n RichTextEditor.prototype.setContentHeight = function (target, isExpand) {\n var heightValue;\n var topValue = 0;\n var rteHeightPercent;\n var heightPercent = typeof (this.height) === 'string' && this.height.indexOf('%') > -1;\n var cntEle = (this.sourceCodeModule.getPanel() &&\n this.sourceCodeModule.getPanel().parentElement.style.display === 'block') ? this.sourceCodeModule.getPanel().parentElement :\n this.contentModule.getPanel();\n var rteHeight = this.element.offsetHeight;\n if (rteHeight === 0 && this.height !== 'auto' && !this.getToolbar()) {\n rteHeight = parseInt(this.height, 10);\n if (heightPercent) {\n rteHeightPercent = this.height;\n }\n }\n var tbHeight = this.getToolbar() ? this.toolbarModule.getToolbarHeight() : 0;\n var rzHandle = this.element.querySelector('.' + classes.CLS_RTE_RES_HANDLE);\n var rzHeight = this.enableResize ? (!isNOU(rzHandle) ? (rzHandle.offsetHeight + 8) : 0) : 0;\n var expandPopHeight = this.getToolbar() ? this.toolbarModule.getExpandTBarPopHeight() : 0;\n if (this.toolbarSettings.type === ToolbarType.Expand && isExpand) {\n heightValue = (this.height === 'auto' && rzHeight === 0) ? 'auto' : rteHeight - (tbHeight + expandPopHeight + rzHeight) + 'px';\n topValue = (!this.toolbarSettings.enableFloating) ? expandPopHeight : 0;\n }\n else {\n if (this.height === 'auto' && !(this.element.classList.contains('e-rte-full-screen')) && !this.isResizeInitialized) {\n heightValue = 'auto';\n }\n else {\n heightValue = heightPercent && rteHeightPercent ? rteHeightPercent : rteHeight - (tbHeight + rzHeight) + 'px';\n }\n }\n if (target !== 'windowResize') {\n if (this.iframeSettings.enable) {\n if (heightValue !== 'auto') {\n setStyleAttribute(cntEle, { height: heightValue, marginTop: topValue + 'px' });\n }\n }\n else {\n setStyleAttribute(cntEle, { height: heightValue, marginTop: topValue + 'px' });\n }\n }\n if (this.iframeSettings.enable && target === 'sourceCode') {\n var codeElement = select('.' + classes.CLS_RTE_CONTENT, this.element);\n setStyleAttribute(codeElement, { height: heightValue, marginTop: topValue + 'px' });\n }\n if (this.toolbarSettings.enableFloating && this.getToolbar() && !this.inlineMode.enable) {\n var tbWrapHeight = (isExpand ? (tbHeight + expandPopHeight) : tbHeight) + 'px';\n setStyleAttribute(this.getToolbar().parentElement, { height: tbWrapHeight });\n }\n if (rzHeight === 0) {\n this.autoResize();\n }\n };\n /**\n * Retrieves the HTML from RichTextEditor.\n *\n * @returns {void}\n * @public\n */\n RichTextEditor.prototype.getHtml = function () {\n var htmlValue = this.contentModule.getEditPanel().innerHTML;\n return (this.enableXhtml && (htmlValue === '


' || htmlValue === '

' ||\n htmlValue === '
') ? null : this.serializeValue(htmlValue));\n };\n /**\n * Retrieves the Rich Text Editor's XHTML validated HTML content when `enableXhtml` property is enabled.\n *\n * @returns {void}\n * @public\n */\n RichTextEditor.prototype.getXhtml = function () {\n var currentValue = this.value;\n if (!isNOU(currentValue) && this.enableXhtml) {\n currentValue = this.htmlEditorModule.xhtmlValidation.selfEncloseValidation(currentValue);\n }\n return currentValue;\n };\n /**\n * Shows the source HTML/MD markup.\n *\n * @returns {void}\n * @public\n */\n RichTextEditor.prototype.showSourceCode = function () {\n if (this.readonly) {\n return;\n }\n this.notify(events.sourceCode, {});\n };\n /**\n * Returns the maximum number of characters in the Rich Text Editor.\n *\n * @returns {void}\n * @public\n */\n RichTextEditor.prototype.getCharCount = function () {\n var htmlText = this.editorMode === 'Markdown' ? this.inputElement.value.trim() :\n this.inputElement.textContent.trim();\n var htmlLength;\n if (this.editorMode !== 'Markdown' && htmlText.indexOf('\\u200B') !== -1) {\n htmlLength = htmlText.replace(/\\u200B/g, '').length;\n }\n else {\n htmlLength = htmlText.length;\n }\n return htmlLength;\n };\n /**\n * Show the dialog in the Rich Text Editor.\n *\n * @param {DialogType} type - specifies the dialog type.\n * @returns {void}\n * @public\n */\n RichTextEditor.prototype.showDialog = function (type) {\n if (type === DialogType.InsertLink) {\n this.notify(events.showLinkDialog, {});\n }\n else if (type === DialogType.InsertImage) {\n this.notify(events.showImageDialog, {});\n }\n else if (type === DialogType.InsertAudio) {\n this.notify(events.showAudioDialog, {});\n }\n else if (type === DialogType.InsertVideo) {\n this.notify(events.showVideoDialog, {});\n }\n else if (type === DialogType.InsertTable) {\n this.notify(events.showTableDialog, {});\n }\n };\n /**\n * Close the dialog in the Rich Text Editor.\n *\n * @param {DialogType} type - specifies the dialog type.\n * @returns {void}\n * @public\n */\n RichTextEditor.prototype.closeDialog = function (type) {\n if (type === DialogType.InsertLink) {\n this.notify(events.closeLinkDialog, {});\n }\n else if (type === DialogType.InsertImage) {\n this.notify(events.closeImageDialog, {});\n }\n else if (type === DialogType.InsertAudio) {\n this.notify(events.closeAudioDialog, {});\n }\n else if (type === DialogType.InsertVideo) {\n this.notify(events.closeVideoDialog, {});\n }\n else if (type === DialogType.InsertTable) {\n this.notify(events.closeTableDialog, {});\n }\n };\n /**\n * @returns {void}\n * @hidden\n\n */\n RichTextEditor.prototype.getBaseToolbarObject = function () {\n var tbObj;\n if (this.inlineMode.enable && (!Browser.isDevice || isIDevice())) {\n tbObj = this.quickToolbarModule && this.quickToolbarModule.getInlineBaseToolbar();\n }\n else {\n tbObj = this.toolbarModule && this.toolbarModule.getBaseToolbar();\n }\n return tbObj;\n };\n /**\n * @returns {void}\n * @hidden\n\n */\n RichTextEditor.prototype.getToolbar = function () {\n return this.toolbarModule ? this.toolbarModule.getToolbarElement() : null;\n };\n /**\n * @returns {void}\n * @hidden\n\n */\n RichTextEditor.prototype.getToolbarElement = function () {\n return this.toolbarModule && this.toolbarModule.getToolbarElement();\n };\n /**\n * @returns {void}\n * getID method\n *\n * @hidden\n\n */\n RichTextEditor.prototype.getID = function () {\n return (this.originalElement.tagName === 'TEXTAREA' ? this.valueContainer.id : this.element.id);\n };\n RichTextEditor.prototype.mouseDownHandler = function (e) {\n var touch = (e.touches ? e.changedTouches[0] : e);\n addClass([this.element], [classes.CLS_FOCUS]);\n this.preventDefaultResize(e);\n this.notify(events.mouseDown, { args: e });\n this.clickPoints = { clientX: touch.clientX, clientY: touch.clientY };\n };\n RichTextEditor.prototype.preventImgResize = function (e) {\n if (e.target.nodeName.toLocaleLowerCase() === 'img') {\n e.preventDefault();\n }\n };\n /**\n * preventDefaultResize method\n *\n * @param {FocusEvent} e - specifies the event.\n * @returns {void}\n * @hidden\n\n */\n // eslint-disable-next-line\n RichTextEditor.prototype.preventDefaultResize = function (e) {\n if (Browser.info.name === 'msie') {\n this.contentModule.getEditPanel().addEventListener('mscontrolselect', this.preventImgResize);\n }\n else if (Browser.info.name === 'mozilla') {\n this.contentModule.getDocument().execCommand('enableObjectResizing', false, 'false');\n this.contentModule.getDocument().execCommand('enableInlineTableEditing', false, 'false');\n }\n };\n // eslint-disable-next-line\n RichTextEditor.prototype.defaultResize = function (e) {\n if (Browser.info.name === 'msie') {\n this.contentModule.getEditPanel().removeEventListener('mscontrolselect', this.preventImgResize);\n }\n else if (Browser.info.name === 'mozilla') {\n this.contentModule.getDocument().execCommand('enableObjectResizing', true, 'true');\n this.contentModule.getDocument().execCommand('enableInlineTableEditing', true, 'true');\n }\n };\n RichTextEditor.prototype.resizeHandler = function () {\n var isExpand = false;\n if (!document.body.contains(this.element)) {\n document.defaultView.removeEventListener('resize', this.onResizeHandler, true);\n return;\n }\n if (this.toolbarSettings.enable && !this.inlineMode.enable) {\n this.toolbarModule.refreshToolbarOverflow();\n isExpand = this.toolbarModule.baseToolbar.toolbarObj.element.classList.contains(classes.CLS_EXPAND_OPEN);\n }\n this.setContentHeight('windowResize', isExpand);\n this.notify(events.windowResize, null);\n };\n RichTextEditor.prototype.scrollHandler = function (e) {\n if (this.element) {\n this.notify(events.scroll, { args: e });\n }\n };\n RichTextEditor.prototype.contentScrollHandler = function (e) {\n this.notify(events.contentscroll, { args: e });\n };\n RichTextEditor.prototype.focusHandler = function (e) {\n if ((!this.isRTE || this.isFocusOut)) {\n this.isRTE = this.isFocusOut ? false : true;\n this.isFocusOut = false;\n addClass([this.element], [classes.CLS_FOCUS]);\n if (this.editorMode === 'HTML') {\n this.cloneValue = (this.inputElement.innerHTML === '


' || this.inputElement.innerHTML === '

' ||\n this.inputElement.innerHTML === '
') ? null : this.enableHtmlEncode ?\n this.encode(decode(this.inputElement.innerHTML)) : this.inputElement.innerHTML;\n }\n else {\n this.cloneValue = this.inputElement.value === '' ? null :\n this.inputElement.value;\n }\n var active = document.activeElement;\n if (active === this.element || active === this.getToolbarElement() || active === this.contentModule.getEditPanel()\n || ((this.iframeSettings.enable && active === this.contentModule.getPanel()) &&\n e.target && !e.target.classList.contains('e-img-inner')\n && (e.target && e.target.parentElement\n && !e.target.parentElement.classList.contains('e-img-wrap')))\n || closest(active, '.e-rte-toolbar') === this.getToolbarElement()) {\n this.contentModule.getEditPanel().focus();\n if (!isNOU(this.getToolbarElement())) {\n this.getToolbarElement().setAttribute('tabindex', '-1');\n var items = this.getToolbarElement().querySelectorAll('[tabindex=\"0\"]');\n for (var i = 0; i < items.length; i++) {\n items[i].setAttribute('tabindex', '-1');\n }\n }\n }\n this.preventDefaultResize(e);\n this.trigger('focus', { event: e, isInteracted: Object.keys(e).length === 0 ? false : true });\n if (!isNOU(this.saveInterval) && this.saveInterval > 0 && !this.autoSaveOnIdle) {\n this.timeInterval = setInterval(this.updateValueOnIdle.bind(this), this.saveInterval);\n }\n EventHandler.add(document, 'mousedown', this.onDocumentClick, this);\n }\n if (!isNOU(this.getToolbarElement())) {\n var toolbarItem = this.getToolbarElement().querySelectorAll('input,select,button,a,[tabindex]');\n for (var i = 0; i < toolbarItem.length; i++) {\n if ((!toolbarItem[i].classList.contains('e-rte-dropdown-btn') &&\n !toolbarItem[i].classList.contains('e-insert-table-btn')) &&\n (!toolbarItem[i].hasAttribute('tabindex') ||\n toolbarItem[i].getAttribute('tabindex') !== '-1')) {\n toolbarItem[i].setAttribute('tabindex', '-1');\n }\n }\n }\n };\n RichTextEditor.prototype.getUpdatedValue = function () {\n var value;\n if (!isNOU(this.tableModule)) {\n this.tableModule.removeResizeElement();\n }\n var getTextArea = this.element.querySelector('.e-rte-srctextarea');\n if (this.editorMode === 'HTML') {\n value = (this.inputElement.innerHTML === '


' || this.inputElement.innerHTML === '

' ||\n this.inputElement.innerHTML === '
') ? null : this.enableHtmlEncode ?\n this.encode(decode(this.inputElement.innerHTML)) : this.inputElement.innerHTML;\n if (getTextArea && getTextArea.style.display === 'block') {\n value = getTextArea.value;\n }\n }\n else {\n value = this.inputElement.value === '' ? null :\n this.inputElement.value;\n }\n return value;\n };\n RichTextEditor.prototype.updateValueOnIdle = function () {\n if (!isNOU(this.tableModule) && !isNOU(this.inputElement.querySelector('.e-table-box.e-rbox-select'))) {\n return;\n }\n this.setProperties({ value: this.getUpdatedValue() }, true);\n this.valueContainer.value = this.value;\n this.isValueChangeBlurhandler = false;\n this.invokeChangeEvent();\n };\n RichTextEditor.prototype.updateIntervalValue = function () {\n clearTimeout(this.idleInterval);\n this.idleInterval = setTimeout(this.updateValueOnIdle.bind(this), 0);\n };\n RichTextEditor.prototype.updateStatus = function (e) {\n if (!isNOU(e.html) || !isNOU(e.markdown)) {\n var status_1 = this.formatter.editorManager.undoRedoManager.getUndoStatus();\n var eventArgs = {\n undo: status_1.undo,\n redo: status_1.redo,\n html: e.html,\n markdown: e.markdown\n };\n this.trigger(events.updatedToolbarStatus, eventArgs);\n }\n };\n RichTextEditor.prototype.onDocumentClick = function (e) {\n var target = e.target;\n var rteElement = closest(target, '.' + classes.CLS_RTE);\n if (!this.element.contains(e.target) && document !== e.target && rteElement !== this.element &&\n !closest(target, '[aria-owns=\"' + this.getID() + '\"]')) {\n this.isBlur = true;\n this.isRTE = false;\n }\n this.notify(events.docClick, { args: e });\n if (Browser.info.name !== 'msie' && e.detail > 3) {\n e.preventDefault();\n }\n };\n RichTextEditor.prototype.blurHandler = function (e) {\n var trg = e.relatedTarget;\n if (trg) {\n var rteElement = closest(trg, '.' + classes.CLS_RTE);\n if (rteElement && rteElement === this.element) {\n this.isBlur = false;\n if (trg === this.getToolbarElement()) {\n trg.setAttribute('tabindex', '-1');\n }\n }\n else if (closest(trg, '[aria-owns=\"' + this.getID() + '\"]')) {\n this.isBlur = false;\n }\n else {\n this.isBlur = true;\n trg = null;\n }\n }\n if (this.isBlur && isNOU(trg)) {\n removeClass([this.element], [classes.CLS_FOCUS]);\n this.notify(events.focusChange, {});\n var value = this.getUpdatedValue();\n this.setProperties({ value: value });\n this.notify(events.toolbarRefresh, { args: e, documentNode: document });\n this.isValueChangeBlurhandler = true;\n this.invokeChangeEvent();\n this.isFocusOut = true;\n this.isBlur = false;\n dispatchEvent(this.valueContainer, 'focusout');\n this.defaultResize(e);\n this.trigger('blur', { event: e, isInteracted: Object.keys(e).length === 0 ? false : true });\n if (!isNOU(this.timeInterval)) {\n clearInterval(this.timeInterval);\n this.timeInterval = null;\n }\n if (!isNOU(this.placeHolderWrapper) && this.element.querySelector('[title = Preview]')) {\n this.placeHolderWrapper.style.display = \"none\";\n }\n EventHandler.remove(document, 'mousedown', this.onDocumentClick);\n }\n else {\n this.isRTE = true;\n }\n };\n /**\n * invokeChangeEvent method\n *\n * @returns {void}\n * @hidden\n\n */\n RichTextEditor.prototype.contentChanged = function () {\n if (this.autoSaveOnIdle) {\n if (!isNOU(this.saveInterval)) {\n clearTimeout(this.timeInterval);\n this.timeInterval = setTimeout(this.updateIntervalValue.bind(this), this.saveInterval);\n }\n }\n };\n /**\n * invokeChangeEvent method\n *\n * @returns {void}\n * @hidden\n\n */\n RichTextEditor.prototype.invokeChangeEvent = function () {\n var currentValue;\n if (this.enableXhtml) {\n currentValue = this.getXhtml();\n }\n else {\n currentValue = this.value;\n }\n var eventArgs = {\n value: currentValue,\n isInteracted: this.isValueChangeBlurhandler\n };\n if (this.value !== this.cloneValue) {\n this.trigger('change', eventArgs);\n this.cloneValue = this.value;\n }\n };\n /**\n * @returns {void}\n * @hidden\n\n */\n RichTextEditor.prototype.wireScrollElementsEvents = function () {\n this.scrollParentElements = getScrollableParent(this.element);\n for (var _i = 0, _a = this.scrollParentElements; _i < _a.length; _i++) {\n var element = _a[_i];\n EventHandler.add(element, 'scroll', this.scrollHandler, this);\n }\n if (!this.iframeSettings.enable) {\n EventHandler.add(this.contentModule.getPanel(), 'scroll', this.contentScrollHandler, this);\n }\n };\n RichTextEditor.prototype.wireContextEvent = function () {\n if (this.quickToolbarSettings.showOnRightClick) {\n EventHandler.add(this.inputElement, 'contextmenu', this.contextHandler, this);\n if (Browser.isDevice) {\n this.touchModule = new EJ2Touch(this.inputElement, { tapHold: this.touchHandler.bind(this), tapHoldThreshold: 500 });\n }\n }\n };\n RichTextEditor.prototype.unWireContextEvent = function () {\n EventHandler.remove(this.inputElement, 'contextmenu', this.contextHandler);\n if (Browser.isDevice && this.touchModule) {\n this.touchModule.destroy();\n }\n };\n /**\n * @returns {void}\n * @hidden\n\n */\n RichTextEditor.prototype.unWireScrollElementsEvents = function () {\n this.scrollParentElements = getScrollableParent(this.element);\n for (var _i = 0, _a = this.scrollParentElements; _i < _a.length; _i++) {\n var element = _a[_i];\n EventHandler.remove(element, 'scroll', this.scrollHandler);\n }\n if (!this.iframeSettings.enable) {\n EventHandler.remove(this.contentModule.getPanel(), 'scroll', this.contentScrollHandler);\n }\n };\n RichTextEditor.prototype.touchHandler = function (e) {\n this.notifyMouseUp(e.originalEvent);\n this.triggerEditArea(e.originalEvent);\n };\n RichTextEditor.prototype.contextHandler = function (e) {\n var closestElem = closest(e.target, 'a, table, img');\n if (this.inlineMode.onSelection === false || (!isNOU(closestElem) && this.inputElement.contains(closestElem)\n && (closestElem.tagName === 'IMG' || closestElem.tagName === 'TABLE' || closestElem.tagName === 'A'))) {\n e.preventDefault();\n }\n };\n RichTextEditor.prototype.resetHandler = function () {\n var defaultValue = this.valueContainer.defaultValue.trim();\n this.setProperties({ value: defaultValue === '' ? null : defaultValue });\n };\n /**\n * @returns {void}\n * @hidden\n\n */\n RichTextEditor.prototype.autoResize = function () {\n var _this = this;\n if (this.height === 'auto') {\n if (this.editorMode === 'Markdown') {\n setTimeout(function () {\n _this.setAutoHeight(_this.inputElement);\n }, 0);\n }\n else if (this.iframeSettings.enable) {\n var iframeElement_1 = this.element.querySelector('#' + this.getID() + '_rte-view');\n setTimeout(function () {\n _this.setAutoHeight(iframeElement_1);\n }, 100);\n this.inputElement.style.overflow = 'hidden';\n }\n }\n else {\n this.inputElement.style.overflow = null;\n }\n };\n RichTextEditor.prototype.setAutoHeight = function (element) {\n if (!isNOU(element)) {\n element.style.height = this.inputElement.scrollHeight + 'px';\n element.style.overflow = 'hidden';\n }\n };\n RichTextEditor.prototype.wireEvents = function () {\n this.element.addEventListener('focusin', this.onFocusHandler, true);\n this.element.addEventListener('focusout', this.onBlurHandler, true);\n this.on(events.contentChanged, this.contentChanged, this);\n this.on(events.resizeInitialized, this.updateResizeFlag, this);\n this.on(events.updateTbItemsStatus, this.updateStatus, this);\n if (this.readonly && this.enabled) {\n return;\n }\n this.bindEvents();\n };\n RichTextEditor.prototype.restrict = function (e) {\n if (this.maxLength >= 0) {\n var element = this.editorMode === 'Markdown' ? this.contentModule.getText() :\n (e && e.currentTarget.textContent);\n if (!element) {\n return;\n }\n var array = [8, 16, 17, 37, 38, 39, 40, 46, 65];\n var arrayKey = void 0;\n for (var i = 0; i <= array.length - 1; i++) {\n if (e.which === array[i]) {\n if (e.ctrlKey && e.which === 65) {\n return;\n }\n else if (e.which !== 65) {\n arrayKey = array[i];\n return;\n }\n }\n }\n if ((element.length >= this.maxLength && this.maxLength !== -1) && e.which !== arrayKey) {\n e.preventDefault();\n }\n }\n };\n RichTextEditor.prototype.bindEvents = function () {\n this.keyboardModule = new KeyboardEvents(this.inputElement, {\n keyAction: this.keyDown.bind(this), keyConfigs: __assign({}, this.formatter.keyConfig, this.keyConfig), eventName: 'keydown'\n });\n var formElement = closest(this.valueContainer, 'form');\n if (formElement) {\n EventHandler.add(formElement, 'reset', this.resetHandler, this);\n }\n EventHandler.add(this.inputElement, 'keyup', this.keyUp, this);\n EventHandler.add(this.inputElement, 'paste', this.onPaste, this);\n EventHandler.add(this.inputElement, Browser.touchEndEvent, debounce(this.mouseUp, 30), this);\n EventHandler.add(this.inputElement, Browser.touchStartEvent, this.mouseDownHandler, this);\n this.wireContextEvent();\n this.formatter.editorManager.observer.on(CONSTANT.KEY_DOWN_HANDLER, this.editorKeyDown, this);\n this.element.ownerDocument.defaultView.addEventListener('resize', this.onResizeHandler, true);\n if (this.iframeSettings.enable) {\n EventHandler.add(this.inputElement, 'focusin', this.focusHandler, this);\n EventHandler.add(this.inputElement, 'focusout', this.blurHandler, this);\n EventHandler.add(this.inputElement.ownerDocument, 'scroll', this.contentScrollHandler, this);\n EventHandler.add(this.inputElement.ownerDocument, Browser.touchStartEvent, this.onIframeMouseDown, this);\n }\n this.wireScrollElementsEvents();\n };\n RichTextEditor.prototype.onIframeMouseDown = function (e) {\n this.isBlur = false;\n this.currentTarget = e.target;\n this.notify(events.iframeMouseDown, e);\n };\n RichTextEditor.prototype.editorKeyDown = function (e) {\n switch (e.event.action) {\n case 'copy':\n this.onCopy();\n break;\n case 'cut':\n this.onCut();\n break;\n case 'tab':\n if (this.iframeSettings.enable) {\n this.isBlur = true;\n }\n break;\n }\n if (e.callBack && (e.event.action === 'copy' || e.event.action === 'cut' || e.event.action === 'delete')) {\n e.callBack({\n requestType: e.event.action,\n editorMode: 'HTML',\n event: e.event\n });\n }\n };\n RichTextEditor.prototype.unWireEvents = function () {\n this.element.removeEventListener('focusin', this.onFocusHandler, true);\n this.element.removeEventListener('focusout', this.onBlurHandler, true);\n this.off(events.contentChanged, this.contentChanged);\n this.off(events.resizeInitialized, this.updateResizeFlag);\n this.off(events.updateTbItemsStatus, this.updateStatus);\n if (this.readonly && this.enabled) {\n return;\n }\n this.unbindEvents();\n };\n RichTextEditor.prototype.unbindEvents = function () {\n if (this.keyboardModule) {\n this.keyboardModule.destroy();\n }\n var formElement = closest(this.valueContainer, 'form');\n if (formElement) {\n EventHandler.remove(formElement, 'reset', this.resetHandler);\n }\n EventHandler.remove(this.inputElement, 'keyup', this.keyUp);\n EventHandler.remove(this.inputElement, 'paste', this.onPaste);\n EventHandler.remove(this.inputElement, Browser.touchEndEvent, debounce(this.mouseUp, 30));\n EventHandler.remove(this.inputElement, Browser.touchStartEvent, this.mouseDownHandler);\n this.unWireContextEvent();\n if (this.formatter) {\n this.formatter.editorManager.observer.off(CONSTANT.KEY_DOWN_HANDLER, this.editorKeyDown);\n }\n this.element.ownerDocument.defaultView.removeEventListener('resize', this.onResizeHandler, true);\n if (this.iframeSettings.enable) {\n EventHandler.remove(this.inputElement, 'focusin', this.focusHandler);\n EventHandler.remove(this.inputElement, 'focusout', this.blurHandler);\n EventHandler.remove(this.inputElement.ownerDocument, 'scroll', this.contentScrollHandler);\n EventHandler.remove(this.inputElement.ownerDocument, Browser.touchStartEvent, this.onIframeMouseDown);\n }\n this.unWireScrollElementsEvents();\n };\n __decorate([\n Complex({}, ToolbarSettings)\n ], RichTextEditor.prototype, \"toolbarSettings\", void 0);\n __decorate([\n Complex({}, QuickToolbarSettings)\n ], RichTextEditor.prototype, \"quickToolbarSettings\", void 0);\n __decorate([\n Complex({}, PasteCleanupSettings)\n ], RichTextEditor.prototype, \"pasteCleanupSettings\", void 0);\n __decorate([\n Complex({}, FormatPainterSettings)\n ], RichTextEditor.prototype, \"formatPainterSettings\", void 0);\n __decorate([\n Complex({}, IFrameSettings)\n ], RichTextEditor.prototype, \"iframeSettings\", void 0);\n __decorate([\n Complex({}, ImageSettings)\n ], RichTextEditor.prototype, \"insertImageSettings\", void 0);\n __decorate([\n Complex({}, AudioSettings)\n ], RichTextEditor.prototype, \"insertAudioSettings\", void 0);\n __decorate([\n Complex({}, VideoSettings)\n ], RichTextEditor.prototype, \"insertVideoSettings\", void 0);\n __decorate([\n Complex({}, TableSettings)\n ], RichTextEditor.prototype, \"tableSettings\", void 0);\n __decorate([\n Property(0)\n ], RichTextEditor.prototype, \"floatingToolbarOffset\", void 0);\n __decorate([\n Complex({}, InlineMode)\n ], RichTextEditor.prototype, \"inlineMode\", void 0);\n __decorate([\n Complex({}, FileManagerSettings)\n ], RichTextEditor.prototype, \"fileManagerSettings\", void 0);\n __decorate([\n Property('100%')\n ], RichTextEditor.prototype, \"width\", void 0);\n __decorate([\n Property(false)\n ], RichTextEditor.prototype, \"enablePersistence\", void 0);\n __decorate([\n Property(true)\n ], RichTextEditor.prototype, \"showTooltip\", void 0);\n __decorate([\n Property(false)\n ], RichTextEditor.prototype, \"enableResize\", void 0);\n __decorate([\n Property({})\n ], RichTextEditor.prototype, \"htmlAttributes\", void 0);\n __decorate([\n Property(null)\n ], RichTextEditor.prototype, \"placeholder\", void 0);\n __decorate([\n Property(false)\n ], RichTextEditor.prototype, \"autoSaveOnIdle\", void 0);\n __decorate([\n Property(false)\n ], RichTextEditor.prototype, \"readonly\", void 0);\n __decorate([\n Property(true)\n ], RichTextEditor.prototype, \"enabled\", void 0);\n __decorate([\n Property(true)\n ], RichTextEditor.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Property(false)\n ], RichTextEditor.prototype, \"enableHtmlEncode\", void 0);\n __decorate([\n Property(false)\n ], RichTextEditor.prototype, \"enableXhtml\", void 0);\n __decorate([\n Property('auto')\n ], RichTextEditor.prototype, \"height\", void 0);\n __decorate([\n Property(null)\n ], RichTextEditor.prototype, \"cssClass\", void 0);\n __decorate([\n Property(null)\n ], RichTextEditor.prototype, \"value\", void 0);\n __decorate([\n Property('P')\n ], RichTextEditor.prototype, \"enterKey\", void 0);\n __decorate([\n Property('BR')\n ], RichTextEditor.prototype, \"shiftEnterKey\", void 0);\n __decorate([\n Property(30)\n ], RichTextEditor.prototype, \"undoRedoSteps\", void 0);\n __decorate([\n Property(300)\n ], RichTextEditor.prototype, \"undoRedoTimer\", void 0);\n __decorate([\n Property('HTML')\n ], RichTextEditor.prototype, \"editorMode\", void 0);\n __decorate([\n Property(null)\n ], RichTextEditor.prototype, \"keyConfig\", void 0);\n __decorate([\n Property(false)\n ], RichTextEditor.prototype, \"showCharCount\", void 0);\n __decorate([\n Property(false)\n ], RichTextEditor.prototype, \"enableTabKey\", void 0);\n __decorate([\n Property(false)\n ], RichTextEditor.prototype, \"enableAutoUrl\", void 0);\n __decorate([\n Property(-1)\n ], RichTextEditor.prototype, \"maxLength\", void 0);\n __decorate([\n Complex({}, Format)\n ], RichTextEditor.prototype, \"format\", void 0);\n __decorate([\n Complex({}, NumberFormatList)\n ], RichTextEditor.prototype, \"numberFormatList\", void 0);\n __decorate([\n Complex({}, BulletFormatList)\n ], RichTextEditor.prototype, \"bulletFormatList\", void 0);\n __decorate([\n Complex({}, FontFamily)\n ], RichTextEditor.prototype, \"fontFamily\", void 0);\n __decorate([\n Complex({}, FontSize)\n ], RichTextEditor.prototype, \"fontSize\", void 0);\n __decorate([\n Complex({}, FontColor)\n ], RichTextEditor.prototype, \"fontColor\", void 0);\n __decorate([\n Complex({}, BackgroundColor)\n ], RichTextEditor.prototype, \"backgroundColor\", void 0);\n __decorate([\n Property(null)\n ], RichTextEditor.prototype, \"valueTemplate\", void 0);\n __decorate([\n Property(10000)\n ], RichTextEditor.prototype, \"saveInterval\", void 0);\n __decorate([\n Event()\n ], RichTextEditor.prototype, \"actionBegin\", void 0);\n __decorate([\n Event()\n ], RichTextEditor.prototype, \"actionComplete\", void 0);\n __decorate([\n Event()\n ], RichTextEditor.prototype, \"beforeDialogOpen\", void 0);\n __decorate([\n Event()\n ], RichTextEditor.prototype, \"dialogOpen\", void 0);\n __decorate([\n Event()\n ], RichTextEditor.prototype, \"beforeDialogClose\", void 0);\n __decorate([\n Event()\n ], RichTextEditor.prototype, \"dialogClose\", void 0);\n __decorate([\n Event()\n ], RichTextEditor.prototype, \"beforeQuickToolbarOpen\", void 0);\n __decorate([\n Event()\n ], RichTextEditor.prototype, \"quickToolbarOpen\", void 0);\n __decorate([\n Event()\n ], RichTextEditor.prototype, \"quickToolbarClose\", void 0);\n __decorate([\n Event()\n ], RichTextEditor.prototype, \"toolbarStatusUpdate\", void 0);\n __decorate([\n Event()\n ], RichTextEditor.prototype, \"updatedToolbarStatus\", void 0);\n __decorate([\n Event()\n ], RichTextEditor.prototype, \"imageSelected\", void 0);\n __decorate([\n Event()\n ], RichTextEditor.prototype, \"beforeImageUpload\", void 0);\n __decorate([\n Event()\n ], RichTextEditor.prototype, \"imageUploading\", void 0);\n __decorate([\n Event()\n ], RichTextEditor.prototype, \"imageUploadSuccess\", void 0);\n __decorate([\n Event()\n ], RichTextEditor.prototype, \"imageUploadFailed\", void 0);\n __decorate([\n Event()\n ], RichTextEditor.prototype, \"imageRemoving\", void 0);\n __decorate([\n Event()\n ], RichTextEditor.prototype, \"afterImageDelete\", void 0);\n __decorate([\n Event()\n ], RichTextEditor.prototype, \"fileSelected\", void 0);\n __decorate([\n Event()\n ], RichTextEditor.prototype, \"beforeFileUpload\", void 0);\n __decorate([\n Event()\n ], RichTextEditor.prototype, \"fileUploading\", void 0);\n __decorate([\n Event()\n ], RichTextEditor.prototype, \"fileUploadSuccess\", void 0);\n __decorate([\n Event()\n ], RichTextEditor.prototype, \"fileUploadFailed\", void 0);\n __decorate([\n Event()\n ], RichTextEditor.prototype, \"fileRemoving\", void 0);\n __decorate([\n Event()\n ], RichTextEditor.prototype, \"afterMediaDelete\", void 0);\n __decorate([\n Event()\n ], RichTextEditor.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], RichTextEditor.prototype, \"destroyed\", void 0);\n __decorate([\n Event()\n ], RichTextEditor.prototype, \"beforeSanitizeHtml\", void 0);\n __decorate([\n Event()\n ], RichTextEditor.prototype, \"blur\", void 0);\n __decorate([\n Event()\n ], RichTextEditor.prototype, \"toolbarClick\", void 0);\n __decorate([\n Event()\n ], RichTextEditor.prototype, \"focus\", void 0);\n __decorate([\n Event()\n ], RichTextEditor.prototype, \"change\", void 0);\n __decorate([\n Event()\n ], RichTextEditor.prototype, \"resizing\", void 0);\n __decorate([\n Event()\n ], RichTextEditor.prototype, \"resizeStart\", void 0);\n __decorate([\n Event()\n ], RichTextEditor.prototype, \"resizeStop\", void 0);\n __decorate([\n Event()\n ], RichTextEditor.prototype, \"beforePasteCleanup\", void 0);\n __decorate([\n Event()\n ], RichTextEditor.prototype, \"afterPasteCleanup\", void 0);\n __decorate([\n Event()\n ], RichTextEditor.prototype, \"beforeImageDrop\", void 0);\n __decorate([\n Property(null)\n ], RichTextEditor.prototype, \"formatter\", void 0);\n RichTextEditor = __decorate([\n NotifyPropertyChanges\n ], RichTextEditor);\n return RichTextEditor;\n}(Component));\nexport { RichTextEditor };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { RichTextEditor } from '@syncfusion/ej2-richtexteditor';\nimport { ComponentBase, applyMixins } from '@syncfusion/ej2-react-base';\n/**\n * `RichTextEditor` represents the react RichTextEditor.\n * ```tsx\n * \n * ```\n */\nvar RichTextEditorComponent = /** @class */ (function (_super) {\n __extends(RichTextEditorComponent, _super);\n function RichTextEditorComponent(props) {\n var _this = _super.call(this, props) || this;\n _this.initRenderCalled = false;\n _this.checkInjectedModules = true;\n _this.statelessTemplateProps = [\"valueTemplate\"];\n _this.templateProps = null;\n _this.immediateRender = false;\n _this.portals = [];\n return _this;\n }\n RichTextEditorComponent.prototype.render = function () {\n if (((this.element && !this.initRenderCalled) || this.refreshing) && !this.isReactForeceUpdate) {\n _super.prototype.render.call(this);\n this.initRenderCalled = true;\n }\n else {\n return React.createElement('div', this.getDefaultAttributes(), [].concat(this.props.children, this.portals));\n }\n };\n return RichTextEditorComponent;\n}(RichTextEditor));\nexport { RichTextEditorComponent };\napplyMixins(RichTextEditorComponent, [ComponentBase, React.Component]);\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Touch, Component, EventHandler, selectAll, getUniqueID } from '@syncfusion/ej2-base';\nimport { NotifyPropertyChanges, Property, Browser, detach } from '@syncfusion/ej2-base';\nimport { classList, isNullOrUndefined } from '@syncfusion/ej2-base';\nvar CLS_ROOT = 'e-hscroll';\nvar CLS_RTL = 'e-rtl';\nvar CLS_DISABLE = 'e-overlay';\nvar CLS_HSCROLLBAR = 'e-hscroll-bar';\nvar CLS_HSCROLLCON = 'e-hscroll-content';\nvar CLS_NAVARROW = 'e-nav-arrow';\nvar CLS_NAVRIGHTARROW = 'e-nav-right-arrow';\nvar CLS_NAVLEFTARROW = 'e-nav-left-arrow';\nvar CLS_HSCROLLNAV = 'e-scroll-nav';\nvar CLS_HSCROLLNAVRIGHT = 'e-scroll-right-nav';\nvar CLS_HSCROLLNAVLEFT = 'e-scroll-left-nav';\nvar CLS_DEVICE = 'e-scroll-device';\nvar CLS_OVERLAY = 'e-scroll-overlay';\nvar CLS_RIGHTOVERLAY = 'e-scroll-right-overlay';\nvar CLS_LEFTOVERLAY = 'e-scroll-left-overlay';\nvar OVERLAY_MAXWID = 40;\n/**\n * HScroll module is introduces horizontal scroller when content exceeds the current viewing area.\n * It can be useful for the components like Toolbar, Tab which needs horizontal scrolling alone.\n * Hidden content can be view by touch moving or icon click.\n * ```html\n *
\n * \n * ```\n */\nvar HScroll = /** @class */ (function (_super) {\n __extends(HScroll, _super);\n /**\n * Initializes a new instance of the HScroll class.\n *\n * @param {HScrollModel} options - Specifies HScroll model properties as options.\n * @param {string | HTMLElement} element - Specifies the element for which horizontal scrolling applies.\n */\n function HScroll(options, element) {\n return _super.call(this, options, element) || this;\n }\n /**\n * Initialize the event handler\n *\n * @private\n * @returns {void}\n */\n HScroll.prototype.preRender = function () {\n this.browser = Browser.info.name;\n this.browserCheck = this.browser === 'mozilla';\n this.isDevice = Browser.isDevice;\n this.customStep = true;\n var element = this.element;\n this.ieCheck = this.browser === 'edge' || this.browser === 'msie';\n this.initialize();\n if (element.id === '') {\n element.id = getUniqueID('hscroll');\n this.uniqueId = true;\n }\n element.style.display = 'block';\n if (this.enableRtl) {\n element.classList.add(CLS_RTL);\n }\n };\n /**\n * To Initialize the horizontal scroll rendering\n *\n * @private\n * @returns {void}\n */\n HScroll.prototype.render = function () {\n this.touchModule = new Touch(this.element, { scroll: this.touchHandler.bind(this), swipe: this.swipeHandler.bind(this) });\n EventHandler.add(this.scrollEle, 'scroll', this.scrollHandler, this);\n if (!this.isDevice) {\n this.createNavIcon(this.element);\n }\n else {\n this.element.classList.add(CLS_DEVICE);\n this.createOverlay(this.element);\n }\n this.setScrollState();\n };\n HScroll.prototype.setScrollState = function () {\n if (isNullOrUndefined(this.scrollStep) || this.scrollStep < 0) {\n this.scrollStep = this.scrollEle.offsetWidth;\n this.customStep = false;\n }\n else {\n this.customStep = true;\n }\n };\n HScroll.prototype.initialize = function () {\n var scrollEle = this.createElement('div', { className: CLS_HSCROLLCON });\n var scrollDiv = this.createElement('div', { className: CLS_HSCROLLBAR });\n scrollDiv.setAttribute('tabindex', '-1');\n var ele = this.element;\n var innerEle = [].slice.call(ele.children);\n for (var _i = 0, innerEle_1 = innerEle; _i < innerEle_1.length; _i++) {\n var ele_1 = innerEle_1[_i];\n scrollEle.appendChild(ele_1);\n }\n scrollDiv.appendChild(scrollEle);\n ele.appendChild(scrollDiv);\n scrollDiv.style.overflowX = 'hidden';\n this.scrollEle = scrollDiv;\n this.scrollItems = scrollEle;\n };\n HScroll.prototype.getPersistData = function () {\n var keyEntity = ['scrollStep'];\n return this.addOnPersist(keyEntity);\n };\n /**\n * Returns the current module name.\n *\n * @returns {string} - It returns the current module name.\n * @private\n */\n HScroll.prototype.getModuleName = function () {\n return 'hScroll';\n };\n /**\n * Removes the control from the DOM and also removes all its related events.\n *\n * @returns {void}\n */\n HScroll.prototype.destroy = function () {\n var ele = this.element;\n ele.style.display = '';\n ele.classList.remove(CLS_ROOT);\n ele.classList.remove(CLS_DEVICE);\n ele.classList.remove(CLS_RTL);\n var nav = selectAll('.e-' + ele.id + '_nav.' + CLS_HSCROLLNAV, ele);\n var overlay = selectAll('.' + CLS_OVERLAY, ele);\n [].slice.call(overlay).forEach(function (ele) {\n detach(ele);\n });\n for (var _i = 0, _a = [].slice.call(this.scrollItems.children); _i < _a.length; _i++) {\n var elem = _a[_i];\n ele.appendChild(elem);\n }\n if (this.uniqueId) {\n this.element.removeAttribute('id');\n }\n detach(this.scrollEle);\n if (nav.length > 0) {\n detach(nav[0]);\n if (!isNullOrUndefined(nav[1])) {\n detach(nav[1]);\n }\n }\n EventHandler.remove(this.scrollEle, 'scroll', this.scrollHandler);\n this.touchModule.destroy();\n this.touchModule = null;\n _super.prototype.destroy.call(this);\n };\n /**\n * Specifies the value to disable/enable the HScroll component.\n * When set to `true` , the component will be disabled.\n *\n * @param {boolean} value - Based on this Boolean value, HScroll will be enabled (false) or disabled (true).\n * @returns {void}.\n */\n HScroll.prototype.disable = function (value) {\n var navEles = selectAll('.e-scroll-nav:not(.' + CLS_DISABLE + ')', this.element);\n if (value) {\n this.element.classList.add(CLS_DISABLE);\n }\n else {\n this.element.classList.remove(CLS_DISABLE);\n }\n [].slice.call(navEles).forEach(function (el) {\n el.setAttribute('tabindex', !value ? '0' : '-1');\n });\n };\n HScroll.prototype.createOverlay = function (element) {\n var id = element.id.concat('_nav');\n var rightOverlayEle = this.createElement('div', { className: CLS_OVERLAY + ' ' + CLS_RIGHTOVERLAY });\n var clsRight = 'e-' + element.id.concat('_nav ' + CLS_HSCROLLNAV + ' ' + CLS_HSCROLLNAVRIGHT);\n var rightEle = this.createElement('div', { id: id.concat('_right'), className: clsRight });\n var navItem = this.createElement('div', { className: CLS_NAVRIGHTARROW + ' ' + CLS_NAVARROW + ' e-icons' });\n rightEle.appendChild(navItem);\n var leftEle = this.createElement('div', { className: CLS_OVERLAY + ' ' + CLS_LEFTOVERLAY });\n if (this.ieCheck) {\n rightEle.classList.add('e-ie-align');\n }\n element.appendChild(rightOverlayEle);\n element.appendChild(rightEle);\n element.insertBefore(leftEle, element.firstChild);\n this.eventBinding([rightEle]);\n };\n HScroll.prototype.createNavIcon = function (element) {\n var id = element.id.concat('_nav');\n var clsRight = 'e-' + element.id.concat('_nav ' + CLS_HSCROLLNAV + ' ' + CLS_HSCROLLNAVRIGHT);\n var rightAttributes = { 'role': 'button', 'id': id.concat('_right'), 'aria-label': 'Scroll right' };\n var nav = this.createElement('div', { className: clsRight, attrs: rightAttributes });\n nav.setAttribute('aria-disabled', 'false');\n var navItem = this.createElement('div', { className: CLS_NAVRIGHTARROW + ' ' + CLS_NAVARROW + ' e-icons' });\n var clsLeft = 'e-' + element.id.concat('_nav ' + CLS_HSCROLLNAV + ' ' + CLS_HSCROLLNAVLEFT);\n var leftAttributes = { 'role': 'button', 'id': id.concat('_left'), 'aria-label': 'Scroll left' };\n var navEle = this.createElement('div', { className: clsLeft + ' ' + CLS_DISABLE, attrs: leftAttributes });\n navEle.setAttribute('aria-disabled', 'true');\n var navLeftItem = this.createElement('div', { className: CLS_NAVLEFTARROW + ' ' + CLS_NAVARROW + ' e-icons' });\n navEle.appendChild(navLeftItem);\n nav.appendChild(navItem);\n element.appendChild(nav);\n element.insertBefore(navEle, element.firstChild);\n if (this.ieCheck) {\n nav.classList.add('e-ie-align');\n navEle.classList.add('e-ie-align');\n }\n this.eventBinding([nav, navEle]);\n };\n HScroll.prototype.onKeyPress = function (e) {\n var _this = this;\n if (e.key === 'Enter') {\n var timeoutFun_1 = function () {\n _this.keyTimeout = true;\n _this.eleScrolling(10, e.target, true);\n };\n this.keyTimer = window.setTimeout(function () {\n timeoutFun_1();\n }, 100);\n }\n };\n HScroll.prototype.onKeyUp = function (e) {\n if (e.key !== 'Enter') {\n return;\n }\n if (this.keyTimeout) {\n this.keyTimeout = false;\n }\n else {\n e.target.click();\n }\n clearTimeout(this.keyTimer);\n };\n HScroll.prototype.eventBinding = function (ele) {\n var _this = this;\n [].slice.call(ele).forEach(function (el) {\n new Touch(el, { tapHold: _this.tabHoldHandler.bind(_this), tapHoldThreshold: 500 });\n el.addEventListener('keydown', _this.onKeyPress.bind(_this));\n el.addEventListener('keyup', _this.onKeyUp.bind(_this));\n el.addEventListener('mouseup', _this.repeatScroll.bind(_this));\n el.addEventListener('touchend', _this.repeatScroll.bind(_this));\n el.addEventListener('contextmenu', function (e) {\n e.preventDefault();\n });\n EventHandler.add(el, 'click', _this.clickEventHandler, _this);\n });\n };\n HScroll.prototype.repeatScroll = function () {\n clearInterval(this.timeout);\n };\n HScroll.prototype.tabHoldHandler = function (e) {\n var _this = this;\n var trgt = e.originalEvent.target;\n trgt = this.contains(trgt, CLS_HSCROLLNAV) ? trgt.firstElementChild : trgt;\n var scrollDis = 10;\n var timeoutFun = function () {\n _this.eleScrolling(scrollDis, trgt, true);\n };\n this.timeout = window.setInterval(function () {\n timeoutFun();\n }, 50);\n };\n HScroll.prototype.contains = function (ele, className) {\n return ele.classList.contains(className);\n };\n HScroll.prototype.eleScrolling = function (scrollDis, trgt, isContinuous) {\n var rootEle = this.element;\n var classList = trgt.classList;\n if (classList.contains(CLS_HSCROLLNAV)) {\n classList = trgt.querySelector('.' + CLS_NAVARROW).classList;\n }\n if (this.contains(rootEle, CLS_RTL) && this.browserCheck) {\n scrollDis = -scrollDis;\n }\n if ((!this.contains(rootEle, CLS_RTL) || this.browserCheck) || this.ieCheck) {\n if (classList.contains(CLS_NAVRIGHTARROW)) {\n this.frameScrollRequest(scrollDis, 'add', isContinuous);\n }\n else {\n this.frameScrollRequest(scrollDis, '', isContinuous);\n }\n }\n else {\n if (classList.contains(CLS_NAVLEFTARROW)) {\n this.frameScrollRequest(scrollDis, 'add', isContinuous);\n }\n else {\n this.frameScrollRequest(scrollDis, '', isContinuous);\n }\n }\n };\n HScroll.prototype.clickEventHandler = function (e) {\n this.eleScrolling(this.scrollStep, e.target, false);\n };\n HScroll.prototype.swipeHandler = function (e) {\n var swipeEle = this.scrollEle;\n var distance;\n if (e.velocity <= 1) {\n distance = e.distanceX / (e.velocity * 10);\n }\n else {\n distance = e.distanceX / e.velocity;\n }\n var start = 0.5;\n var animate = function () {\n var step = Math.sin(start);\n if (step <= 0) {\n window.cancelAnimationFrame(step);\n }\n else {\n if (e.swipeDirection === 'Left') {\n swipeEle.scrollLeft += distance * step;\n }\n else if (e.swipeDirection === 'Right') {\n swipeEle.scrollLeft -= distance * step;\n }\n start -= 0.5;\n window.requestAnimationFrame(animate);\n }\n };\n animate();\n };\n HScroll.prototype.scrollUpdating = function (scrollVal, action) {\n if (action === 'add') {\n this.scrollEle.scrollLeft += scrollVal;\n }\n else {\n this.scrollEle.scrollLeft -= scrollVal;\n }\n if (this.enableRtl && this.scrollEle.scrollLeft > 0) {\n this.scrollEle.scrollLeft = 0;\n }\n };\n HScroll.prototype.frameScrollRequest = function (scrollVal, action, isContinuous) {\n var _this = this;\n var step = 10;\n if (isContinuous) {\n this.scrollUpdating(scrollVal, action);\n return;\n }\n if (!this.customStep) {\n [].slice.call(selectAll('.' + CLS_OVERLAY, this.element)).forEach(function (el) {\n scrollVal -= el.offsetWidth;\n });\n }\n var animate = function () {\n var scrollValue;\n var scrollStep;\n if (_this.contains(_this.element, CLS_RTL) && _this.browserCheck) {\n scrollValue = -scrollVal;\n scrollStep = -step;\n }\n else {\n scrollValue = scrollVal;\n scrollStep = step;\n }\n if (scrollValue < step) {\n window.cancelAnimationFrame(scrollStep);\n }\n else {\n _this.scrollUpdating(scrollStep, action);\n scrollVal -= scrollStep;\n window.requestAnimationFrame(animate);\n }\n };\n animate();\n };\n HScroll.prototype.touchHandler = function (e) {\n var ele = this.scrollEle;\n var distance = e.distanceX;\n if ((this.ieCheck) && this.contains(this.element, CLS_RTL)) {\n distance = -distance;\n }\n if (e.scrollDirection === 'Left') {\n ele.scrollLeft = ele.scrollLeft + distance;\n }\n else if (e.scrollDirection === 'Right') {\n ele.scrollLeft = ele.scrollLeft - distance;\n }\n };\n HScroll.prototype.arrowDisabling = function (addDisable, removeDisable) {\n if (this.isDevice) {\n var arrowEle = isNullOrUndefined(addDisable) ? removeDisable : addDisable;\n var arrowIcon = arrowEle.querySelector('.' + CLS_NAVARROW);\n if (isNullOrUndefined(addDisable)) {\n classList(arrowIcon, [CLS_NAVRIGHTARROW], [CLS_NAVLEFTARROW]);\n }\n else {\n classList(arrowIcon, [CLS_NAVLEFTARROW], [CLS_NAVRIGHTARROW]);\n }\n }\n else if (addDisable && removeDisable) {\n addDisable.classList.add(CLS_DISABLE);\n addDisable.setAttribute('aria-disabled', 'true');\n addDisable.removeAttribute('tabindex');\n removeDisable.classList.remove(CLS_DISABLE);\n removeDisable.setAttribute('aria-disabled', 'false');\n removeDisable.setAttribute('tabindex', '0');\n }\n this.repeatScroll();\n };\n HScroll.prototype.scrollHandler = function (e) {\n var target = e.target;\n var width = target.offsetWidth;\n var rootEle = this.element;\n var navLeftEle = this.element.querySelector('.' + CLS_HSCROLLNAVLEFT);\n var navRightEle = this.element.querySelector('.' + CLS_HSCROLLNAVRIGHT);\n var leftOverlay = this.element.querySelector('.' + CLS_LEFTOVERLAY);\n var rightOverlay = this.element.querySelector('.' + CLS_RIGHTOVERLAY);\n var scrollLeft = target.scrollLeft;\n if (scrollLeft <= 0) {\n scrollLeft = -scrollLeft;\n }\n if (this.isDevice) {\n if (this.enableRtl && !(this.browserCheck || this.ieCheck)) {\n leftOverlay = this.element.querySelector('.' + CLS_RIGHTOVERLAY);\n rightOverlay = this.element.querySelector('.' + CLS_LEFTOVERLAY);\n }\n if (scrollLeft < OVERLAY_MAXWID) {\n leftOverlay.style.width = scrollLeft + 'px';\n }\n else {\n leftOverlay.style.width = '40px';\n }\n if ((target.scrollWidth - Math.ceil(width + scrollLeft)) < OVERLAY_MAXWID) {\n rightOverlay.style.width = (target.scrollWidth - Math.ceil(width + scrollLeft)) + 'px';\n }\n else {\n rightOverlay.style.width = '40px';\n }\n }\n if (scrollLeft === 0) {\n this.arrowDisabling(navLeftEle, navRightEle);\n }\n else if (Math.ceil(width + scrollLeft + .1) >= target.scrollWidth) {\n this.arrowDisabling(navRightEle, navLeftEle);\n }\n else {\n var disEle = this.element.querySelector('.' + CLS_HSCROLLNAV + '.' + CLS_DISABLE);\n if (disEle) {\n disEle.classList.remove(CLS_DISABLE);\n disEle.setAttribute('aria-disabled', 'false');\n disEle.setAttribute('tabindex', '0');\n }\n }\n };\n /**\n * Gets called when the model property changes.The data that describes the old and new values of property that changed.\n *\n * @param {HScrollModel} newProp - It contains the new value of data.\n * @param {HScrollModel} oldProp - It contains the old value of data.\n * @returns {void}\n * @private\n */\n HScroll.prototype.onPropertyChanged = function (newProp, oldProp) {\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'scrollStep':\n this.setScrollState();\n break;\n case 'enableRtl':\n newProp.enableRtl ? this.element.classList.add(CLS_RTL) : this.element.classList.remove(CLS_RTL);\n break;\n }\n }\n };\n __decorate([\n Property(null)\n ], HScroll.prototype, \"scrollStep\", void 0);\n HScroll = __decorate([\n NotifyPropertyChanges\n ], HScroll);\n return HScroll;\n}(Component));\nexport { HScroll };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Touch, Component, EventHandler, selectAll, getUniqueID, removeClass } from '@syncfusion/ej2-base';\nimport { NotifyPropertyChanges, Property, Browser, detach, createElement as buildTag } from '@syncfusion/ej2-base';\nimport { classList, isNullOrUndefined } from '@syncfusion/ej2-base';\nvar CLS_ROOT = 'e-vscroll';\nvar CLS_RTL = 'e-rtl';\nvar CLS_DISABLE = 'e-overlay';\nvar CLS_VSCROLLBAR = 'e-vscroll-bar';\nvar CLS_VSCROLLCON = 'e-vscroll-content';\nvar CLS_NAVARROW = 'e-nav-arrow';\nvar CLS_NAVUPARROW = 'e-nav-up-arrow';\nvar CLS_NAVDOWNARROW = 'e-nav-down-arrow';\nvar CLS_VSCROLLNAV = 'e-scroll-nav';\nvar CLS_VSCROLLNAVUP = 'e-scroll-up-nav';\nvar CLS_VSCROLLNAVDOWN = 'e-scroll-down-nav';\nvar CLS_DEVICE = 'e-scroll-device';\nvar CLS_OVERLAY = 'e-scroll-overlay';\nvar CLS_UPOVERLAY = 'e-scroll-up-overlay';\nvar CLS_DOWNOVERLAY = 'e-scroll-down-overlay';\nvar OVERLAY_MAXWID = 40;\n/**\n * VScroll module is introduces vertical scroller when content exceeds the current viewing area.\n * It can be useful for the components like Toolbar, Tab which needs vertical scrolling alone.\n * Hidden content can be view by touch moving or icon click.\n * ```html\n *
\n * \n * ```\n */\nvar VScroll = /** @class */ (function (_super) {\n __extends(VScroll, _super);\n /**\n * Initializes a new instance of the VScroll class.\n *\n * @param {VScrollModel} options - Specifies VScroll model properties as options.\n * @param {string | HTMLElement} element - Specifies the element for which vertical scrolling applies.\n */\n function VScroll(options, element) {\n return _super.call(this, options, element) || this;\n }\n /**\n * Initialize the event handler\n *\n * @private\n * @returns {void}\n */\n VScroll.prototype.preRender = function () {\n this.browser = Browser.info.name;\n this.browserCheck = this.browser === 'mozilla';\n this.isDevice = Browser.isDevice;\n this.customStep = true;\n var ele = this.element;\n this.ieCheck = this.browser === 'edge' || this.browser === 'msie';\n this.initialize();\n if (ele.id === '') {\n ele.id = getUniqueID('vscroll');\n this.uniqueId = true;\n }\n ele.style.display = 'block';\n if (this.enableRtl) {\n ele.classList.add(CLS_RTL);\n }\n };\n /**\n * To Initialize the vertical scroll rendering\n *\n * @private\n * @returns {void}\n */\n VScroll.prototype.render = function () {\n this.touchModule = new Touch(this.element, { scroll: this.touchHandler.bind(this), swipe: this.swipeHandler.bind(this) });\n EventHandler.add(this.scrollEle, 'scroll', this.scrollEventHandler, this);\n if (!this.isDevice) {\n this.createNavIcon(this.element);\n }\n else {\n this.element.classList.add(CLS_DEVICE);\n this.createOverlayElement(this.element);\n }\n this.setScrollState();\n EventHandler.add(this.element, 'wheel', this.wheelEventHandler, this);\n };\n VScroll.prototype.setScrollState = function () {\n if (isNullOrUndefined(this.scrollStep) || this.scrollStep < 0) {\n this.scrollStep = this.scrollEle.offsetHeight;\n this.customStep = false;\n }\n else {\n this.customStep = true;\n }\n };\n VScroll.prototype.initialize = function () {\n var scrollCnt = buildTag('div', { className: CLS_VSCROLLCON });\n var scrollBar = buildTag('div', { className: CLS_VSCROLLBAR });\n scrollBar.setAttribute('tabindex', '-1');\n var ele = this.element;\n var innerEle = [].slice.call(ele.children);\n for (var _i = 0, innerEle_1 = innerEle; _i < innerEle_1.length; _i++) {\n var ele_1 = innerEle_1[_i];\n scrollCnt.appendChild(ele_1);\n }\n scrollBar.appendChild(scrollCnt);\n ele.appendChild(scrollBar);\n scrollBar.style.overflow = 'hidden';\n this.scrollEle = scrollBar;\n this.scrollItems = scrollCnt;\n };\n VScroll.prototype.getPersistData = function () {\n var keyEntity = ['scrollStep'];\n return this.addOnPersist(keyEntity);\n };\n /**\n * Returns the current module name.\n *\n * @returns {string} - It returns the current module name.\n * @private\n */\n VScroll.prototype.getModuleName = function () {\n return 'vScroll';\n };\n /**\n * Removes the control from the DOM and also removes all its related events.\n *\n * @returns {void}\n */\n VScroll.prototype.destroy = function () {\n var el = this.element;\n el.style.display = '';\n removeClass([this.element], [CLS_ROOT, CLS_DEVICE, CLS_RTL]);\n var navs = selectAll('.e-' + el.id + '_nav.' + CLS_VSCROLLNAV, el);\n var overlays = selectAll('.' + CLS_OVERLAY, el);\n [].slice.call(overlays).forEach(function (ele) {\n detach(ele);\n });\n for (var _i = 0, _a = [].slice.call(this.scrollItems.children); _i < _a.length; _i++) {\n var elem = _a[_i];\n el.appendChild(elem);\n }\n if (this.uniqueId) {\n this.element.removeAttribute('id');\n }\n detach(this.scrollEle);\n if (navs.length > 0) {\n detach(navs[0]);\n if (!isNullOrUndefined(navs[1])) {\n detach(navs[1]);\n }\n }\n EventHandler.remove(this.scrollEle, 'scroll', this.scrollEventHandler);\n this.touchModule.destroy();\n this.touchModule = null;\n _super.prototype.destroy.call(this);\n };\n /**\n * Specifies the value to disable/enable the VScroll component.\n * When set to `true` , the component will be disabled.\n *\n * @param {boolean} value - Based on this Boolean value, VScroll will be enabled (false) or disabled (true).\n * @returns {void}.\n */\n VScroll.prototype.disable = function (value) {\n var navEle = selectAll('.e-scroll-nav:not(.' + CLS_DISABLE + ')', this.element);\n if (value) {\n this.element.classList.add(CLS_DISABLE);\n }\n else {\n this.element.classList.remove(CLS_DISABLE);\n }\n [].slice.call(navEle).forEach(function (el) {\n el.setAttribute('tabindex', !value ? '0' : '-1');\n });\n };\n VScroll.prototype.createOverlayElement = function (element) {\n var id = element.id.concat('_nav');\n var downOverlayEle = buildTag('div', { className: CLS_OVERLAY + ' ' + CLS_DOWNOVERLAY });\n var clsDown = 'e-' + element.id.concat('_nav ' + CLS_VSCROLLNAV + ' ' + CLS_VSCROLLNAVDOWN);\n var downEle = buildTag('div', { id: id.concat('down'), className: clsDown });\n var navItem = buildTag('div', { className: CLS_NAVDOWNARROW + ' ' + CLS_NAVARROW + ' e-icons' });\n downEle.appendChild(navItem);\n var upEle = buildTag('div', { className: CLS_OVERLAY + ' ' + CLS_UPOVERLAY });\n if (this.ieCheck) {\n downEle.classList.add('e-ie-align');\n }\n element.appendChild(downOverlayEle);\n element.appendChild(downEle);\n element.insertBefore(upEle, element.firstChild);\n this.eventBinding([downEle]);\n };\n VScroll.prototype.createNavIcon = function (element) {\n var id = element.id.concat('_nav');\n var clsDown = 'e-' + element.id.concat('_nav ' + CLS_VSCROLLNAV + ' ' + CLS_VSCROLLNAVDOWN);\n var nav = buildTag('div', { id: id.concat('_down'), className: clsDown });\n nav.setAttribute('aria-disabled', 'false');\n var navItem = buildTag('div', { className: CLS_NAVDOWNARROW + ' ' + CLS_NAVARROW + ' e-icons' });\n var clsUp = 'e-' + element.id.concat('_nav ' + CLS_VSCROLLNAV + ' ' + CLS_VSCROLLNAVUP);\n var navElement = buildTag('div', { id: id.concat('_up'), className: clsUp + ' ' + CLS_DISABLE });\n navElement.setAttribute('aria-disabled', 'true');\n var navUpItem = buildTag('div', { className: CLS_NAVUPARROW + ' ' + CLS_NAVARROW + ' e-icons' });\n navElement.appendChild(navUpItem);\n nav.appendChild(navItem);\n nav.setAttribute('tabindex', '0');\n element.appendChild(nav);\n element.insertBefore(navElement, element.firstChild);\n if (this.ieCheck) {\n nav.classList.add('e-ie-align');\n navElement.classList.add('e-ie-align');\n }\n this.eventBinding([nav, navElement]);\n };\n VScroll.prototype.onKeyPress = function (ev) {\n var _this = this;\n if (ev.key === 'Enter') {\n var timeoutFun_1 = function () {\n _this.keyTimeout = true;\n _this.eleScrolling(10, ev.target, true);\n };\n this.keyTimer = window.setTimeout(function () {\n timeoutFun_1();\n }, 100);\n }\n };\n VScroll.prototype.onKeyUp = function (ev) {\n if (ev.key !== 'Enter') {\n return;\n }\n if (this.keyTimeout) {\n this.keyTimeout = false;\n }\n else {\n ev.target.click();\n }\n clearTimeout(this.keyTimer);\n };\n VScroll.prototype.eventBinding = function (element) {\n var _this = this;\n [].slice.call(element).forEach(function (ele) {\n new Touch(ele, { tapHold: _this.tabHoldHandler.bind(_this), tapHoldThreshold: 500 });\n ele.addEventListener('keydown', _this.onKeyPress.bind(_this));\n ele.addEventListener('keyup', _this.onKeyUp.bind(_this));\n ele.addEventListener('mouseup', _this.repeatScroll.bind(_this));\n ele.addEventListener('touchend', _this.repeatScroll.bind(_this));\n ele.addEventListener('contextmenu', function (e) {\n e.preventDefault();\n });\n EventHandler.add(ele, 'click', _this.clickEventHandler, _this);\n });\n };\n VScroll.prototype.repeatScroll = function () {\n clearInterval(this.timeout);\n };\n VScroll.prototype.tabHoldHandler = function (ev) {\n var _this = this;\n var trgt = ev.originalEvent.target;\n trgt = this.contains(trgt, CLS_VSCROLLNAV) ? trgt.firstElementChild : trgt;\n var scrollDistance = 10;\n var timeoutFun = function () {\n _this.eleScrolling(scrollDistance, trgt, true);\n };\n this.timeout = window.setInterval(function () {\n timeoutFun();\n }, 50);\n };\n VScroll.prototype.contains = function (element, className) {\n return element.classList.contains(className);\n };\n VScroll.prototype.eleScrolling = function (scrollDis, trgt, isContinuous) {\n var classList = trgt.classList;\n if (classList.contains(CLS_VSCROLLNAV)) {\n classList = trgt.querySelector('.' + CLS_NAVARROW).classList;\n }\n if (classList.contains(CLS_NAVDOWNARROW)) {\n this.frameScrollRequest(scrollDis, 'add', isContinuous);\n }\n else if (classList.contains(CLS_NAVUPARROW)) {\n this.frameScrollRequest(scrollDis, '', isContinuous);\n }\n };\n VScroll.prototype.clickEventHandler = function (event) {\n this.eleScrolling(this.scrollStep, event.target, false);\n };\n VScroll.prototype.wheelEventHandler = function (e) {\n e.preventDefault();\n this.frameScrollRequest(this.scrollStep, (e.deltaY > 0 ? 'add' : ''), false);\n };\n VScroll.prototype.swipeHandler = function (e) {\n var swipeElement = this.scrollEle;\n var distance;\n if (e.velocity <= 1) {\n distance = e.distanceY / (e.velocity * 10);\n }\n else {\n distance = e.distanceY / e.velocity;\n }\n var start = 0.5;\n var animate = function () {\n var step = Math.sin(start);\n if (step <= 0) {\n window.cancelAnimationFrame(step);\n }\n else {\n if (e.swipeDirection === 'Up') {\n swipeElement.scrollTop += distance * step;\n }\n else if (e.swipeDirection === 'Down') {\n swipeElement.scrollTop -= distance * step;\n }\n start -= 0.02;\n window.requestAnimationFrame(animate);\n }\n };\n animate();\n };\n VScroll.prototype.scrollUpdating = function (scrollVal, action) {\n if (action === 'add') {\n this.scrollEle.scrollTop += scrollVal;\n }\n else {\n this.scrollEle.scrollTop -= scrollVal;\n }\n };\n VScroll.prototype.frameScrollRequest = function (scrollValue, action, isContinuous) {\n var _this = this;\n var step = 10;\n if (isContinuous) {\n this.scrollUpdating(scrollValue, action);\n return;\n }\n if (!this.customStep) {\n [].slice.call(selectAll('.' + CLS_OVERLAY, this.element)).forEach(function (el) {\n scrollValue -= el.offsetHeight;\n });\n }\n var animate = function () {\n if (scrollValue < step) {\n window.cancelAnimationFrame(step);\n }\n else {\n _this.scrollUpdating(step, action);\n scrollValue -= step;\n window.requestAnimationFrame(animate);\n }\n };\n animate();\n };\n VScroll.prototype.touchHandler = function (e) {\n var el = this.scrollEle;\n var distance = e.distanceY;\n if (e.scrollDirection === 'Up') {\n el.scrollTop = el.scrollTop + distance;\n }\n else if (e.scrollDirection === 'Down') {\n el.scrollTop = el.scrollTop - distance;\n }\n };\n VScroll.prototype.arrowDisabling = function (addDisableCls, removeDisableCls) {\n if (this.isDevice) {\n var arrowEle = isNullOrUndefined(addDisableCls) ? removeDisableCls : addDisableCls;\n var arrowIcon = arrowEle.querySelector('.' + CLS_NAVARROW);\n if (isNullOrUndefined(addDisableCls)) {\n classList(arrowIcon, [CLS_NAVDOWNARROW], [CLS_NAVUPARROW]);\n }\n else {\n classList(arrowIcon, [CLS_NAVUPARROW], [CLS_NAVDOWNARROW]);\n }\n }\n else {\n addDisableCls.classList.add(CLS_DISABLE);\n addDisableCls.setAttribute('aria-disabled', 'true');\n addDisableCls.removeAttribute('tabindex');\n removeDisableCls.classList.remove(CLS_DISABLE);\n removeDisableCls.setAttribute('aria-disabled', 'false');\n removeDisableCls.setAttribute('tabindex', '0');\n }\n this.repeatScroll();\n };\n VScroll.prototype.scrollEventHandler = function (e) {\n var target = e.target;\n var height = target.offsetHeight;\n var navUpEle = this.element.querySelector('.' + CLS_VSCROLLNAVUP);\n var navDownEle = this.element.querySelector('.' + CLS_VSCROLLNAVDOWN);\n var upOverlay = this.element.querySelector('.' + CLS_UPOVERLAY);\n var downOverlay = this.element.querySelector('.' + CLS_DOWNOVERLAY);\n var scrollTop = target.scrollTop;\n if (scrollTop <= 0) {\n scrollTop = -scrollTop;\n }\n if (this.isDevice) {\n if (scrollTop < OVERLAY_MAXWID) {\n upOverlay.style.height = scrollTop + 'px';\n }\n else {\n upOverlay.style.height = '40px';\n }\n if ((target.scrollHeight - Math.ceil(height + scrollTop)) < OVERLAY_MAXWID) {\n downOverlay.style.height = (target.scrollHeight - Math.ceil(height + scrollTop)) + 'px';\n }\n else {\n downOverlay.style.height = '40px';\n }\n }\n if (scrollTop === 0) {\n this.arrowDisabling(navUpEle, navDownEle);\n }\n else if (Math.ceil(height + scrollTop + .1) >= target.scrollHeight) {\n this.arrowDisabling(navDownEle, navUpEle);\n }\n else {\n var disEle = this.element.querySelector('.' + CLS_VSCROLLNAV + '.' + CLS_DISABLE);\n if (disEle) {\n disEle.classList.remove(CLS_DISABLE);\n disEle.setAttribute('aria-disabled', 'false');\n disEle.setAttribute('tabindex', '0');\n }\n }\n };\n /**\n * Gets called when the model property changes.The data that describes the old and new values of property that changed.\n *\n * @param {VScrollModel} newProp - It contains the new value of data.\n * @param {VScrollModel} oldProp - It contains the old value of data.\n * @returns {void}\n * @private\n */\n VScroll.prototype.onPropertyChanged = function (newProp, oldProp) {\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'scrollStep':\n this.setScrollState();\n break;\n case 'enableRtl':\n if (newProp.enableRtl) {\n this.element.classList.add(CLS_RTL);\n }\n else {\n this.element.classList.remove(CLS_RTL);\n }\n break;\n }\n }\n };\n __decorate([\n Property(null)\n ], VScroll.prototype, \"scrollStep\", void 0);\n VScroll = __decorate([\n NotifyPropertyChanges\n ], VScroll);\n return VScroll;\n}(Component));\nexport { VScroll };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, EventHandler, Property, Event } from '@syncfusion/ej2-base';\nimport { addClass, removeClass, isVisible, closest, attributes, detach, classList, KeyboardEvents } from '@syncfusion/ej2-base';\nimport { selectAll, setStyleAttribute as setStyle, select } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined as isNOU, getUniqueID, formatUnit, Collection, compile as templateCompiler } from '@syncfusion/ej2-base';\nimport { NotifyPropertyChanges, ChildProperty, Browser, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\nimport { Popup } from '@syncfusion/ej2-popups';\nimport { calculatePosition } from '@syncfusion/ej2-popups';\nimport { Button } from '@syncfusion/ej2-buttons';\nimport { HScroll } from '../common/h-scroll';\nimport { VScroll } from '../common/v-scroll';\nvar CLS_VERTICAL = 'e-vertical';\nvar CLS_ITEMS = 'e-toolbar-items';\nvar CLS_ITEM = 'e-toolbar-item';\nvar CLS_RTL = 'e-rtl';\nvar CLS_SEPARATOR = 'e-separator';\nvar CLS_POPUPICON = 'e-popup-up-icon';\nvar CLS_POPUPDOWN = 'e-popup-down-icon';\nvar CLS_POPUPOPEN = 'e-popup-open';\nvar CLS_TEMPLATE = 'e-template';\nvar CLS_DISABLE = 'e-overlay';\nvar CLS_POPUPTEXT = 'e-toolbar-text';\nvar CLS_TBARTEXT = 'e-popup-text';\nvar CLS_TBAROVERFLOW = 'e-overflow-show';\nvar CLS_POPOVERFLOW = 'e-overflow-hide';\nvar CLS_TBARBTN = 'e-tbar-btn';\nvar CLS_TBARNAV = 'e-hor-nav';\nvar CLS_TBARSCRLNAV = 'e-scroll-nav';\nvar CLS_TBARRIGHT = 'e-toolbar-right';\nvar CLS_TBARLEFT = 'e-toolbar-left';\nvar CLS_TBARCENTER = 'e-toolbar-center';\nvar CLS_TBARPOS = 'e-tbar-pos';\nvar CLS_HSCROLLCNT = 'e-hscroll-content';\nvar CLS_VSCROLLCNT = 'e-vscroll-content';\nvar CLS_HSCROLLBAR = 'e-hscroll-bar';\nvar CLS_POPUPNAV = 'e-hor-nav';\nvar CLS_POPUPCLASS = 'e-toolbar-pop';\nvar CLS_POPUP = 'e-toolbar-popup';\nvar CLS_TBARBTNTEXT = 'e-tbar-btn-text';\nvar CLS_TBARNAVACT = 'e-nav-active';\nvar CLS_TBARIGNORE = 'e-ignore';\nvar CLS_POPPRI = 'e-popup-alone';\nvar CLS_HIDDEN = 'e-hidden';\nvar CLS_MULTIROW = 'e-toolbar-multirow';\nvar CLS_MULTIROWPOS = 'e-multirow-pos';\nvar CLS_MULTIROW_SEPARATOR = 'e-multirow-separator';\nvar CLS_EXTENDABLE_SEPARATOR = 'e-extended-separator';\nvar CLS_EXTEANDABLE_TOOLBAR = 'e-extended-toolbar';\nvar CLS_EXTENDABLECLASS = 'e-toolbar-extended';\nvar CLS_EXTENDPOPUP = 'e-expended-nav';\nvar CLS_EXTENDEDPOPOPEN = 'e-tbar-extended';\n/**\n * An item object that is used to configure Toolbar commands.\n */\nvar Item = /** @class */ (function (_super) {\n __extends(Item, _super);\n function Item() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], Item.prototype, \"id\", void 0);\n __decorate([\n Property('')\n ], Item.prototype, \"text\", void 0);\n __decorate([\n Property('auto')\n ], Item.prototype, \"width\", void 0);\n __decorate([\n Property('')\n ], Item.prototype, \"cssClass\", void 0);\n __decorate([\n Property(false)\n ], Item.prototype, \"showAlwaysInPopup\", void 0);\n __decorate([\n Property(false)\n ], Item.prototype, \"disabled\", void 0);\n __decorate([\n Property('')\n ], Item.prototype, \"prefixIcon\", void 0);\n __decorate([\n Property('')\n ], Item.prototype, \"suffixIcon\", void 0);\n __decorate([\n Property(true)\n ], Item.prototype, \"visible\", void 0);\n __decorate([\n Property('None')\n ], Item.prototype, \"overflow\", void 0);\n __decorate([\n Property('')\n ], Item.prototype, \"template\", void 0);\n __decorate([\n Property('Button')\n ], Item.prototype, \"type\", void 0);\n __decorate([\n Property('Both')\n ], Item.prototype, \"showTextOn\", void 0);\n __decorate([\n Property(null)\n ], Item.prototype, \"htmlAttributes\", void 0);\n __decorate([\n Property('')\n ], Item.prototype, \"tooltipText\", void 0);\n __decorate([\n Property('Left')\n ], Item.prototype, \"align\", void 0);\n __decorate([\n Event()\n ], Item.prototype, \"click\", void 0);\n __decorate([\n Property(-1)\n ], Item.prototype, \"tabIndex\", void 0);\n return Item;\n}(ChildProperty));\nexport { Item };\n/**\n * The Toolbar control contains a group of commands that are aligned horizontally.\n * ```html\n *
\n * \n * ```\n */\nvar Toolbar = /** @class */ (function (_super) {\n __extends(Toolbar, _super);\n /**\n * Initializes a new instance of the Toolbar class.\n *\n * @param {ToolbarModel} options - Specifies Toolbar model properties as options.\n * @param { string | HTMLElement} element - Specifies the element that is rendered as a Toolbar.\n */\n function Toolbar(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.resizeContext = _this.resize.bind(_this);\n /**\n * Contains the keyboard configuration of the Toolbar.\n */\n _this.keyConfigs = {\n moveLeft: 'leftarrow',\n moveRight: 'rightarrow',\n moveUp: 'uparrow',\n moveDown: 'downarrow',\n popupOpen: 'enter',\n popupClose: 'escape',\n tab: 'tab',\n home: 'home',\n end: 'end'\n };\n return _this;\n }\n /**\n * Removes the control from the DOM and also removes all its related events.\n *\n * @returns {void}.\n */\n Toolbar.prototype.destroy = function () {\n var _this = this;\n if (this.isReact || this.isAngular) {\n this.clearTemplate();\n }\n var btnItems = this.element.querySelectorAll('.e-control.e-btn');\n [].slice.call(btnItems).forEach(function (el) {\n if (!isNOU(el) && !isNOU(el.ej2_instances) && !isNOU(el.ej2_instances[0]) && !(el.ej2_instances[0].isDestroyed)) {\n el.ej2_instances[0].destroy();\n }\n });\n this.unwireEvents();\n this.tempId.forEach(function (ele) {\n if (!isNOU(_this.element.querySelector(ele))) {\n document.body.appendChild(_this.element.querySelector(ele)).style.display = 'none';\n }\n });\n this.destroyItems();\n while (this.element.lastElementChild) {\n this.element.removeChild(this.element.lastElementChild);\n }\n if (this.trgtEle) {\n this.element.appendChild(this.ctrlTem);\n this.trgtEle = null;\n this.ctrlTem = null;\n }\n if (this.popObj) {\n this.popObj.destroy();\n detach(this.popObj.element);\n }\n if (this.activeEle) {\n this.activeEle = null;\n }\n this.popObj = null;\n this.tbarAlign = null;\n this.tbarItemsCol = [];\n this.remove(this.element, 'e-toolpop');\n if (this.cssClass) {\n removeClass([this.element], this.cssClass.split(' '));\n }\n this.element.removeAttribute('style');\n ['aria-disabled', 'aria-orientation', 'role'].forEach(function (attrb) {\n return _this.element.removeAttribute(attrb);\n });\n _super.prototype.destroy.call(this);\n };\n /**\n * Initialize the event handler\n *\n * @private\n * @returns {void}\n */\n Toolbar.prototype.preRender = function () {\n var eventArgs = { enableCollision: this.enableCollision, scrollStep: this.scrollStep };\n this.trigger('beforeCreate', eventArgs);\n this.enableCollision = eventArgs.enableCollision;\n this.scrollStep = eventArgs.scrollStep;\n this.scrollModule = null;\n this.popObj = null;\n this.tempId = [];\n this.tbarItemsCol = this.items;\n this.isVertical = this.element.classList.contains(CLS_VERTICAL) ? true : false;\n this.isExtendedOpen = false;\n this.popupPriCount = 0;\n if (this.enableRtl) {\n this.add(this.element, CLS_RTL);\n }\n };\n Toolbar.prototype.wireEvents = function () {\n EventHandler.add(this.element, 'click', this.clickHandler, this);\n window.addEventListener('resize', this.resizeContext);\n if (this.allowKeyboard) {\n this.wireKeyboardEvent();\n }\n };\n Toolbar.prototype.wireKeyboardEvent = function () {\n this.keyModule = new KeyboardEvents(this.element, {\n keyAction: this.keyActionHandler.bind(this),\n keyConfigs: this.keyConfigs\n });\n EventHandler.add(this.element, 'keydown', this.docKeyDown, this);\n this.updateTabIndex('0');\n };\n Toolbar.prototype.updateTabIndex = function (tabIndex) {\n var ele = this.element.querySelector('.' + CLS_ITEM + ':not(.' + CLS_DISABLE + ' ):not(.' + CLS_SEPARATOR + ' ):not(.' + CLS_HIDDEN + ' )');\n if (!isNOU(ele) && !isNOU(ele.firstElementChild)) {\n var dataTabIndex = ele.firstElementChild.getAttribute('data-tabindex');\n if (dataTabIndex && dataTabIndex === '-1' && ele.firstElementChild.tagName !== 'INPUT') {\n ele.firstElementChild.setAttribute('tabindex', tabIndex);\n }\n }\n };\n Toolbar.prototype.unwireKeyboardEvent = function () {\n if (this.keyModule) {\n EventHandler.remove(this.element, 'keydown', this.docKeyDown);\n this.keyModule.destroy();\n this.keyModule = null;\n }\n };\n Toolbar.prototype.docKeyDown = function (e) {\n if (e.target.tagName === 'INPUT') {\n return;\n }\n var popCheck = !isNOU(this.popObj) && isVisible(this.popObj.element) && this.overflowMode !== 'Extended';\n if (e.keyCode === 9 && e.target.classList.contains('e-hor-nav') === true && popCheck) {\n this.popObj.hide({ name: 'FadeOut', duration: 100 });\n }\n var keyCheck = (e.keyCode === 40 || e.keyCode === 38 || e.keyCode === 35 || e.keyCode === 36);\n if (keyCheck) {\n e.preventDefault();\n }\n };\n Toolbar.prototype.unwireEvents = function () {\n EventHandler.remove(this.element, 'click', this.clickHandler);\n this.destroyScroll();\n this.unwireKeyboardEvent();\n window.removeEventListener('resize', this.resizeContext);\n EventHandler.remove(document, 'scroll', this.docEvent);\n EventHandler.remove(document, 'click', this.docEvent);\n };\n Toolbar.prototype.clearProperty = function () {\n this.tbarEle = [];\n this.tbarAlgEle = { lefts: [], centers: [], rights: [] };\n };\n Toolbar.prototype.docEvent = function (e) {\n var popEle = closest(e.target, '.e-popup');\n if (this.popObj && isVisible(this.popObj.element) && !popEle && this.overflowMode === 'Popup') {\n this.popObj.hide({ name: 'FadeOut', duration: 100 });\n }\n };\n Toolbar.prototype.destroyScroll = function () {\n if (this.scrollModule) {\n if (this.tbarAlign) {\n this.add(this.scrollModule.element, CLS_TBARPOS);\n }\n this.scrollModule.destroy();\n this.scrollModule = null;\n }\n };\n Toolbar.prototype.destroyItems = function () {\n if (this.element) {\n [].slice.call(this.element.querySelectorAll('.' + CLS_ITEM)).forEach(function (el) { detach(el); });\n }\n if (this.tbarAlign) {\n var tbarItems = this.element.querySelector('.' + CLS_ITEMS);\n [].slice.call(tbarItems.children).forEach(function (el) {\n detach(el);\n });\n this.tbarAlign = false;\n this.remove(tbarItems, CLS_TBARPOS);\n }\n this.clearProperty();\n };\n Toolbar.prototype.destroyMode = function () {\n if (this.scrollModule) {\n this.remove(this.scrollModule.element, CLS_RTL);\n this.destroyScroll();\n }\n this.remove(this.element, CLS_EXTENDEDPOPOPEN);\n this.remove(this.element, CLS_EXTEANDABLE_TOOLBAR);\n var tempEle = this.element.querySelector('.e-toolbar-multirow');\n if (tempEle) {\n this.remove(tempEle, CLS_MULTIROW);\n }\n if (this.popObj) {\n this.popupRefresh(this.popObj.element, true);\n }\n };\n Toolbar.prototype.add = function (ele, val) {\n ele.classList.add(val);\n };\n Toolbar.prototype.remove = function (ele, val) {\n ele.classList.remove(val);\n };\n Toolbar.prototype.elementFocus = function (ele) {\n var fChild = ele.firstElementChild;\n if (fChild) {\n fChild.focus();\n this.activeEleSwitch(ele);\n }\n else {\n ele.focus();\n }\n };\n Toolbar.prototype.clstElement = function (tbrNavChk, trgt) {\n var clst;\n if (tbrNavChk && this.popObj && isVisible(this.popObj.element)) {\n clst = this.popObj.element.querySelector('.' + CLS_ITEM);\n }\n else if (this.element === trgt || tbrNavChk) {\n clst = this.element.querySelector('.' + CLS_ITEM + ':not(.' + CLS_DISABLE + ' ):not(.' + CLS_SEPARATOR + ' ):not(.' + CLS_HIDDEN + ' )');\n }\n else {\n clst = closest(trgt, '.' + CLS_ITEM);\n }\n return clst;\n };\n Toolbar.prototype.keyHandling = function (clst, e, trgt, navChk, scrollChk) {\n var popObj = this.popObj;\n var rootEle = this.element;\n var popAnimate = { name: 'FadeOut', duration: 100 };\n var value = e.action === 'moveUp' ? 'previous' : 'next';\n var ele;\n var nodes;\n switch (e.action) {\n case 'moveRight':\n if (this.isVertical) {\n return;\n }\n if (rootEle === trgt) {\n this.elementFocus(clst);\n }\n else if (!navChk) {\n this.eleFocus(clst, 'next');\n }\n break;\n case 'moveLeft':\n if (this.isVertical) {\n return;\n }\n if (!navChk) {\n this.eleFocus(clst, 'previous');\n }\n break;\n case 'home':\n case 'end':\n if (clst) {\n var popupCheck = closest(clst, '.e-popup');\n var extendedPopup = this.element.querySelector('.' + CLS_EXTENDABLECLASS);\n if (this.overflowMode === 'Extended' && extendedPopup && extendedPopup.classList.contains('e-popup-open')) {\n popupCheck = e.action === 'end' ? extendedPopup : null;\n }\n if (popupCheck) {\n if (isVisible(this.popObj.element)) {\n nodes = [].slice.call(popupCheck.children);\n if (e.action === 'home') {\n ele = this.focusFirstVisibleEle(nodes);\n }\n else {\n ele = this.focusLastVisibleEle(nodes);\n }\n }\n }\n else {\n nodes = this.element.querySelectorAll('.' + CLS_ITEMS + ' .' + CLS_ITEM + ':not(.' + CLS_SEPARATOR + ')');\n if (e.action === 'home') {\n ele = this.focusFirstVisibleEle(nodes);\n }\n else {\n ele = this.focusLastVisibleEle(nodes);\n }\n }\n if (ele) {\n this.elementFocus(ele);\n }\n }\n break;\n case 'moveUp':\n case 'moveDown':\n if (!this.isVertical) {\n if (popObj && closest(trgt, '.e-popup')) {\n var popEle = popObj.element;\n var popFrstEle = popEle.firstElementChild;\n if ((value === 'previous' && popFrstEle === clst)) {\n popEle.lastElementChild.firstChild.focus();\n }\n else if (value === 'next' && popEle.lastElementChild === clst) {\n popFrstEle.firstChild.focus();\n }\n else {\n this.eleFocus(clst, value);\n }\n }\n else if (e.action === 'moveDown' && popObj && isVisible(popObj.element)) {\n this.elementFocus(clst);\n }\n }\n else {\n if (e.action === 'moveUp') {\n this.eleFocus(clst, 'previous');\n }\n else {\n this.eleFocus(clst, 'next');\n }\n }\n break;\n case 'tab':\n if (!scrollChk && !navChk) {\n var ele_1 = clst.firstElementChild;\n if (rootEle === trgt) {\n if (this.activeEle) {\n this.activeEle.focus();\n }\n else {\n this.activeEleRemove(ele_1);\n ele_1.focus();\n }\n }\n }\n break;\n case 'popupClose':\n if (popObj && this.overflowMode !== 'Extended') {\n popObj.hide(popAnimate);\n }\n break;\n case 'popupOpen':\n if (!navChk) {\n return;\n }\n if (popObj && !isVisible(popObj.element)) {\n popObj.element.style.top = rootEle.offsetHeight + 'px';\n popObj.show({ name: 'FadeIn', duration: 100 });\n }\n else {\n popObj.hide(popAnimate);\n }\n break;\n }\n };\n Toolbar.prototype.keyActionHandler = function (e) {\n var trgt = e.target;\n if (trgt.tagName === 'INPUT' || trgt.tagName === 'TEXTAREA' || this.element.classList.contains(CLS_DISABLE)) {\n return;\n }\n e.preventDefault();\n var tbrNavChk = trgt.classList.contains(CLS_TBARNAV);\n var tbarScrollChk = trgt.classList.contains(CLS_TBARSCRLNAV);\n var clst = this.clstElement(tbrNavChk, trgt);\n if (clst || tbarScrollChk) {\n this.keyHandling(clst, e, trgt, tbrNavChk, tbarScrollChk);\n }\n };\n /**\n * Specifies the value to disable/enable the Toolbar component.\n * When set to `true`, the component will be disabled.\n *\n * @param {boolean} value - Based on this Boolean value, Toolbar will be enabled (false) or disabled (true).\n * @returns {void}.\n */\n Toolbar.prototype.disable = function (value) {\n var rootEle = this.element;\n if (value) {\n rootEle.classList.add(CLS_DISABLE);\n }\n else {\n rootEle.classList.remove(CLS_DISABLE);\n }\n if (this.activeEle) {\n this.activeEle.setAttribute('tabindex', this.activeEle.getAttribute('data-tabindex'));\n }\n if (this.scrollModule) {\n this.scrollModule.disable(value);\n }\n if (this.popObj) {\n if (isVisible(this.popObj.element) && this.overflowMode !== 'Extended') {\n this.popObj.hide();\n }\n rootEle.querySelector('#' + rootEle.id + '_nav').setAttribute('tabindex', !value ? '0' : '-1');\n }\n };\n Toolbar.prototype.eleContains = function (el) {\n return el.classList.contains(CLS_SEPARATOR) || el.classList.contains(CLS_DISABLE) || el.getAttribute('disabled') || el.classList.contains(CLS_HIDDEN) || !isVisible(el) || !el.classList.contains(CLS_ITEM);\n };\n Toolbar.prototype.focusFirstVisibleEle = function (nodes) {\n var element;\n var index = 0;\n while (index < nodes.length) {\n var ele = nodes[parseInt(index.toString(), 10)];\n if (!ele.classList.contains(CLS_HIDDEN) && !ele.classList.contains(CLS_DISABLE)) {\n return ele;\n }\n index++;\n }\n return element;\n };\n Toolbar.prototype.focusLastVisibleEle = function (nodes) {\n var element;\n var index = nodes.length - 1;\n while (index >= 0) {\n var ele = nodes[parseInt(index.toString(), 10)];\n if (!ele.classList.contains(CLS_HIDDEN) && !ele.classList.contains(CLS_DISABLE)) {\n return ele;\n }\n index--;\n }\n return element;\n };\n Toolbar.prototype.eleFocus = function (closest, pos) {\n var sib = Object(closest)[pos + 'ElementSibling'];\n if (sib) {\n var skipEle = this.eleContains(sib);\n if (skipEle) {\n this.eleFocus(sib, pos);\n return;\n }\n this.elementFocus(sib);\n }\n else if (this.tbarAlign) {\n var elem = Object(closest.parentElement)[pos + 'ElementSibling'];\n if (!isNOU(elem) && elem.children.length === 0) {\n elem = Object(elem)[pos + 'ElementSibling'];\n }\n if (!isNOU(elem) && elem.children.length > 0) {\n if (pos === 'next') {\n var el = elem.querySelector('.' + CLS_ITEM);\n if (this.eleContains(el)) {\n this.eleFocus(el, pos);\n }\n else {\n el.firstElementChild.focus();\n this.activeEleSwitch(el);\n }\n }\n else {\n var el = elem.lastElementChild;\n if (this.eleContains(el)) {\n this.eleFocus(el, pos);\n }\n else {\n this.elementFocus(el);\n }\n }\n }\n }\n else if (!isNOU(closest)) {\n var tbrItems = this.element.querySelectorAll('.' + CLS_ITEMS + ' .' + CLS_ITEM + ':not(.' + CLS_SEPARATOR + ')' + ':not(.' + CLS_DISABLE + ')' + ':not(.' + CLS_HIDDEN + ')');\n if (pos === 'next' && tbrItems) {\n this.elementFocus(tbrItems[0]);\n }\n else if (pos === 'previous' && tbrItems) {\n this.elementFocus(tbrItems[tbrItems.length - 1]);\n }\n }\n };\n Toolbar.prototype.clickHandler = function (e) {\n var _this = this;\n var trgt = e.target;\n var ele = this.element;\n var isPopupElement = !isNOU(closest(trgt, '.' + CLS_POPUPCLASS));\n var clsList = trgt.classList;\n var popupNav = closest(trgt, ('.' + CLS_TBARNAV));\n if (!popupNav) {\n popupNav = trgt;\n }\n if (!ele.children[0].classList.contains('e-hscroll') && !ele.children[0].classList.contains('e-vscroll')\n && (clsList.contains(CLS_TBARNAV))) {\n clsList = trgt.querySelector('.e-icons').classList;\n }\n if (clsList.contains(CLS_POPUPICON) || clsList.contains(CLS_POPUPDOWN)) {\n this.popupClickHandler(ele, popupNav, CLS_RTL);\n }\n var itemObj;\n var clst = closest(e.target, '.' + CLS_ITEM);\n if ((isNOU(clst) || clst.classList.contains(CLS_DISABLE)) && !popupNav.classList.contains(CLS_TBARNAV)) {\n return;\n }\n if (clst) {\n var tempItem = this.items[this.tbarEle.indexOf(clst)];\n itemObj = tempItem;\n }\n var eventArgs = { originalEvent: e, item: itemObj };\n if (itemObj && !isNOU(itemObj.click)) {\n this.trigger('items[' + this.tbarEle.indexOf(clst) + '].click', eventArgs);\n }\n if (!eventArgs.cancel) {\n this.trigger('clicked', eventArgs, function (clickedArgs) {\n if (!isNOU(_this.popObj) && isPopupElement && !clickedArgs.cancel && _this.overflowMode === 'Popup' &&\n clickedArgs.item && clickedArgs.item.type !== 'Input') {\n _this.popObj.hide({ name: 'FadeOut', duration: 100 });\n }\n });\n }\n };\n Toolbar.prototype.popupClickHandler = function (ele, popupNav, CLS_RTL) {\n var popObj = this.popObj;\n if (isVisible(popObj.element)) {\n popupNav.classList.remove(CLS_TBARNAVACT);\n popObj.hide({ name: 'FadeOut', duration: 100 });\n }\n else {\n if (ele.classList.contains(CLS_RTL)) {\n popObj.enableRtl = true;\n popObj.position = { X: 'left', Y: 'top' };\n }\n if (popObj.offsetX === 0 && !ele.classList.contains(CLS_RTL)) {\n popObj.enableRtl = false;\n popObj.position = { X: 'right', Y: 'top' };\n }\n popObj.dataBind();\n popObj.refreshPosition();\n popObj.element.style.top = this.getElementOffsetY() + 'px';\n if (this.overflowMode === 'Extended') {\n popObj.element.style.minHeight = '0px';\n }\n popupNav.classList.add(CLS_TBARNAVACT);\n popObj.show({ name: 'FadeIn', duration: 100 });\n }\n };\n /**\n * To Initialize the control rendering\n *\n * @private\n * @returns {void}\n */\n Toolbar.prototype.render = function () {\n this.initialize();\n this.renderControl();\n this.wireEvents();\n this.renderComplete();\n };\n Toolbar.prototype.initialize = function () {\n var width = formatUnit(this.width);\n var height = formatUnit(this.height);\n if (Browser.info.name !== 'msie' || this.height !== 'auto' || this.overflowMode === 'MultiRow') {\n setStyle(this.element, { 'height': height });\n }\n setStyle(this.element, { 'width': width });\n var ariaAttr = {\n 'role': 'toolbar', 'aria-disabled': 'false',\n 'aria-orientation': !this.isVertical ? 'horizontal' : 'vertical'\n };\n attributes(this.element, ariaAttr);\n if (this.cssClass) {\n addClass([this.element], this.cssClass.split(' '));\n }\n };\n Toolbar.prototype.renderControl = function () {\n var ele = this.element;\n this.trgtEle = (ele.children.length > 0) ? ele.querySelector('div') : null;\n this.tbarAlgEle = { lefts: [], centers: [], rights: [] };\n this.renderItems();\n this.renderLayout();\n };\n Toolbar.prototype.renderLayout = function () {\n this.renderOverflowMode();\n if (this.tbarAlign) {\n this.itemPositioning();\n }\n if (this.popObj && this.popObj.element.childElementCount > 1 && this.checkPopupRefresh(this.element, this.popObj.element)) {\n this.popupRefresh(this.popObj.element, false);\n }\n this.separator();\n };\n Toolbar.prototype.itemsAlign = function (items, itemEleDom) {\n var innerItem;\n var innerPos;\n if (!this.tbarEle) {\n this.tbarEle = [];\n }\n for (var i = 0; i < items.length; i++) {\n innerItem = this.renderSubComponent(items[parseInt(i.toString(), 10)], i);\n if (this.tbarEle.indexOf(innerItem) === -1) {\n this.tbarEle.push(innerItem);\n }\n if (!this.tbarAlign) {\n this.tbarItemAlign(items[parseInt(i.toString(), 10)], itemEleDom, i);\n }\n innerPos = itemEleDom.querySelector('.e-toolbar-' + items[parseInt(i.toString(), 10)].align.toLowerCase());\n if (innerPos) {\n if (!(items[parseInt(i.toString(), 10)].showAlwaysInPopup && items[parseInt(i.toString(), 10)].overflow !== 'Show')) {\n this.tbarAlgEle[(items[parseInt(i.toString(), 10)].align + 's').toLowerCase()].push(innerItem);\n }\n innerPos.appendChild(innerItem);\n }\n else {\n itemEleDom.appendChild(innerItem);\n }\n }\n if (this.isReact) {\n var portals = 'portals';\n this.notify('render-react-toolbar-template', this[\"\" + portals]);\n this.renderReactTemplates();\n }\n };\n /**\n * @hidden\n * @returns {void}\n */\n Toolbar.prototype.changeOrientation = function () {\n var ele = this.element;\n if (this.isVertical) {\n ele.classList.remove(CLS_VERTICAL);\n this.isVertical = false;\n if (this.height === 'auto' || this.height === '100%') {\n ele.style.height = this.height;\n }\n ele.setAttribute('aria-orientation', 'horizontal');\n }\n else {\n ele.classList.add(CLS_VERTICAL);\n this.isVertical = true;\n ele.setAttribute('aria-orientation', 'vertical');\n setStyle(this.element, { 'height': formatUnit(this.height), 'width': formatUnit(this.width) });\n }\n this.destroyMode();\n this.refreshOverflow();\n };\n Toolbar.prototype.initScroll = function (element, innerItems) {\n if (!this.scrollModule && this.checkOverflow(element, innerItems[0])) {\n if (this.tbarAlign) {\n this.element.querySelector('.' + CLS_ITEMS + ' .' + CLS_TBARCENTER).removeAttribute('style');\n }\n if (this.isVertical) {\n this.scrollModule = new VScroll({ scrollStep: this.scrollStep, enableRtl: this.enableRtl }, innerItems[0]);\n }\n else {\n this.scrollModule = new HScroll({ scrollStep: this.scrollStep, enableRtl: this.enableRtl }, innerItems[0]);\n }\n if (this.cssClass) {\n addClass([innerItems[0]], this.cssClass.split(' '));\n }\n this.remove(this.scrollModule.element, CLS_TBARPOS);\n setStyle(this.element, { overflow: 'hidden' });\n }\n };\n Toolbar.prototype.itemWidthCal = function (items) {\n var _this = this;\n var width = 0;\n var style;\n [].slice.call(selectAll('.' + CLS_ITEM, items)).forEach(function (el) {\n if (isVisible(el)) {\n style = window.getComputedStyle(el);\n width += _this.isVertical ? el.offsetHeight : el.offsetWidth;\n width += parseFloat(_this.isVertical ? style.marginTop : style.marginRight);\n width += parseFloat(_this.isVertical ? style.marginBottom : style.marginLeft);\n }\n });\n return width;\n };\n Toolbar.prototype.getScrollCntEle = function (innerItem) {\n var trgClass = (this.isVertical) ? '.e-vscroll-content' : '.e-hscroll-content';\n return innerItem.querySelector(trgClass);\n };\n Toolbar.prototype.checkOverflow = function (element, innerItem) {\n if (isNOU(element) || isNOU(innerItem) || !isVisible(element)) {\n return false;\n }\n var eleWidth = this.isVertical ? element.offsetHeight : element.offsetWidth;\n var itemWidth = this.isVertical ? innerItem.offsetHeight : innerItem.offsetWidth;\n if (this.tbarAlign || this.scrollModule || (eleWidth === itemWidth)) {\n itemWidth = this.itemWidthCal(this.scrollModule ? this.getScrollCntEle(innerItem) : innerItem);\n }\n var popNav = element.querySelector('.' + CLS_TBARNAV);\n var scrollNav = element.querySelector('.' + CLS_TBARSCRLNAV);\n var navEleWidth = 0;\n if (popNav) {\n navEleWidth = this.isVertical ? popNav.offsetHeight : popNav.offsetWidth;\n }\n else if (scrollNav) {\n navEleWidth = this.isVertical ? (scrollNav.offsetHeight * (2)) : (scrollNav.offsetWidth * 2);\n }\n if (itemWidth > eleWidth - navEleWidth) {\n return true;\n }\n else {\n return false;\n }\n };\n /**\n * Refresh the whole Toolbar component without re-rendering.\n * - It is used to manually refresh the Toolbar overflow modes such as scrollable, popup, multi row, and extended.\n * - It will refresh the Toolbar component after loading items dynamically.\n *\n * @returns {void}.\n */\n Toolbar.prototype.refreshOverflow = function () {\n this.resize();\n };\n Toolbar.prototype.toolbarAlign = function (innerItems) {\n if (this.tbarAlign) {\n this.add(innerItems, CLS_TBARPOS);\n this.itemPositioning();\n }\n };\n Toolbar.prototype.renderOverflowMode = function () {\n var ele = this.element;\n var innerItems = ele.querySelector('.' + CLS_ITEMS);\n var priorityCheck = this.popupPriCount > 0;\n if (ele && ele.children.length > 0) {\n this.offsetWid = ele.offsetWidth;\n this.remove(this.element, 'e-toolpop');\n if (Browser.info.name === 'msie' && this.height === 'auto') {\n ele.style.height = '';\n }\n switch (this.overflowMode) {\n case 'Scrollable':\n if (isNOU(this.scrollModule)) {\n this.initScroll(ele, [].slice.call(ele.getElementsByClassName(CLS_ITEMS)));\n }\n break;\n case 'Popup':\n this.add(this.element, 'e-toolpop');\n if (this.tbarAlign) {\n this.removePositioning();\n }\n if (this.checkOverflow(ele, innerItems) || priorityCheck) {\n this.setOverflowAttributes(ele);\n }\n this.toolbarAlign(innerItems);\n break;\n case 'MultiRow':\n this.add(innerItems, CLS_MULTIROW);\n if (this.checkOverflow(ele, innerItems) && this.tbarAlign) {\n this.removePositioning();\n this.add(innerItems, CLS_MULTIROWPOS);\n }\n if (ele.style.overflow === 'hidden') {\n ele.style.overflow = '';\n }\n if (Browser.info.name === 'msie' || ele.style.height !== 'auto') {\n ele.style.height = 'auto';\n }\n break;\n case 'Extended':\n this.add(this.element, CLS_EXTEANDABLE_TOOLBAR);\n if (this.checkOverflow(ele, innerItems) || priorityCheck) {\n if (this.tbarAlign) {\n this.removePositioning();\n }\n this.setOverflowAttributes(ele);\n }\n this.toolbarAlign(innerItems);\n }\n }\n };\n Toolbar.prototype.setOverflowAttributes = function (ele) {\n this.createPopupEle(ele, [].slice.call(selectAll('.' + CLS_ITEMS + ' .' + CLS_ITEM, ele)));\n var ariaAttr = {\n 'tabindex': '0', 'role': 'button', 'aria-haspopup': 'true',\n 'aria-label': 'overflow'\n };\n attributes(this.element.querySelector('.' + CLS_TBARNAV), ariaAttr);\n };\n Toolbar.prototype.separator = function () {\n var element = this.element;\n var eleItem = [].slice.call(element.querySelectorAll('.' + CLS_SEPARATOR));\n var multiVar = element.querySelector('.' + CLS_MULTIROW_SEPARATOR);\n var extendVar = element.querySelector('.' + CLS_EXTENDABLE_SEPARATOR);\n var eleInlineItem = this.overflowMode === 'MultiRow' ? multiVar : extendVar;\n if (eleInlineItem !== null) {\n if (this.overflowMode === 'MultiRow') {\n eleInlineItem.classList.remove(CLS_MULTIROW_SEPARATOR);\n }\n else if (this.overflowMode === 'Extended') {\n eleInlineItem.classList.remove(CLS_EXTENDABLE_SEPARATOR);\n }\n }\n for (var i = 0; i <= eleItem.length - 1; i++) {\n if (eleItem[parseInt(i.toString(), 10)].offsetLeft < 30 && eleItem[parseInt(i.toString(), 10)].offsetLeft !== 0) {\n if (this.overflowMode === 'MultiRow') {\n eleItem[parseInt(i.toString(), 10)].classList.add(CLS_MULTIROW_SEPARATOR);\n }\n else if (this.overflowMode === 'Extended') {\n eleItem[parseInt(i.toString(), 10)].classList.add(CLS_EXTENDABLE_SEPARATOR);\n }\n }\n }\n };\n Toolbar.prototype.createPopupEle = function (ele, innerEle) {\n var innerNav = ele.querySelector('.' + CLS_TBARNAV);\n var vertical = this.isVertical;\n if (!innerNav) {\n this.createPopupIcon(ele);\n }\n innerNav = ele.querySelector('.' + CLS_TBARNAV);\n var innerNavDom = (vertical ? innerNav.offsetHeight : innerNav.offsetWidth);\n var eleWidth = ((vertical ? ele.offsetHeight : ele.offsetWidth) - (innerNavDom));\n this.element.classList.remove('e-rtl');\n setStyle(this.element, { direction: 'initial' });\n this.checkPriority(ele, innerEle, eleWidth, true);\n if (this.enableRtl) {\n this.element.classList.add('e-rtl');\n }\n this.element.style.removeProperty('direction');\n this.createPopup();\n };\n Toolbar.prototype.pushingPoppedEle = function (tbarObj, popupPri, ele, eleHeight, sepHeight) {\n var element = tbarObj.element;\n var poppedEle = [].slice.call(selectAll('.' + CLS_POPUP, element.querySelector('.' + CLS_ITEMS)));\n var nodes = selectAll('.' + CLS_TBAROVERFLOW, ele);\n var nodeIndex = 0;\n var nodePri = 0;\n poppedEle.forEach(function (el, index) {\n nodes = selectAll('.' + CLS_TBAROVERFLOW, ele);\n if (el.classList.contains(CLS_TBAROVERFLOW) && nodes.length > 0) {\n if (tbarObj.tbResize && nodes.length > index) {\n ele.insertBefore(el, nodes[parseInt(index.toString(), 10)]);\n ++nodePri;\n }\n else {\n ele.insertBefore(el, ele.children[nodes.length]);\n ++nodePri;\n }\n }\n else if (el.classList.contains(CLS_TBAROVERFLOW)) {\n ele.insertBefore(el, ele.firstChild);\n ++nodePri;\n }\n else if (tbarObj.tbResize && el.classList.contains(CLS_POPOVERFLOW) && ele.children.length > 0 && nodes.length === 0) {\n ele.insertBefore(el, ele.firstChild);\n ++nodePri;\n }\n else if (el.classList.contains(CLS_POPOVERFLOW)) {\n popupPri.push(el);\n }\n else if (tbarObj.tbResize) {\n ele.insertBefore(el, ele.childNodes[nodeIndex + nodePri]);\n ++nodeIndex;\n }\n else {\n ele.appendChild(el);\n }\n if (el.classList.contains(CLS_SEPARATOR)) {\n setStyle(el, { display: '', height: sepHeight + 'px' });\n }\n else {\n setStyle(el, { display: '', height: eleHeight + 'px' });\n }\n });\n popupPri.forEach(function (el) {\n ele.appendChild(el);\n });\n var tbarEle = selectAll('.' + CLS_ITEM, element.querySelector('.' + CLS_ITEMS));\n for (var i = tbarEle.length - 1; i >= 0; i--) {\n var tbarElement = tbarEle[parseInt(i.toString(), 10)];\n if (tbarElement.classList.contains(CLS_SEPARATOR) && this.overflowMode !== 'Extended') {\n setStyle(tbarElement, { display: 'none' });\n }\n else {\n break;\n }\n }\n };\n Toolbar.prototype.createPopup = function () {\n var element = this.element;\n var sepHeight;\n var sepItem;\n if (this.overflowMode === 'Extended') {\n sepItem = element.querySelector('.' + CLS_SEPARATOR + ':not(.' + CLS_POPUP + ')');\n sepHeight = (element.style.height === 'auto' || element.style.height === '') ? null : sepItem.offsetHeight;\n }\n var eleItem = element.querySelector('.' + CLS_ITEM + ':not(.' + CLS_SEPARATOR + '):not(.' + CLS_POPUP + ')');\n var eleHeight = (element.style.height === 'auto' || element.style.height === '') ? null : (eleItem && eleItem.offsetHeight);\n var ele;\n var popupPri = [];\n if (select('#' + element.id + '_popup.' + CLS_POPUPCLASS, element)) {\n ele = select('#' + element.id + '_popup.' + CLS_POPUPCLASS, element);\n }\n else {\n var extendEle = this.createElement('div', {\n id: element.id + '_popup', className: CLS_POPUPCLASS + ' ' + CLS_EXTENDABLECLASS\n });\n var popupEle = this.createElement('div', { id: element.id + '_popup', className: CLS_POPUPCLASS });\n ele = this.overflowMode === 'Extended' ? extendEle : popupEle;\n }\n this.pushingPoppedEle(this, popupPri, ele, eleHeight, sepHeight);\n this.popupInit(element, ele);\n };\n Toolbar.prototype.getElementOffsetY = function () {\n return (this.overflowMode === 'Extended' && window.getComputedStyle(this.element).getPropertyValue('box-sizing') === 'border-box' ?\n this.element.clientHeight : this.element.offsetHeight);\n };\n Toolbar.prototype.popupInit = function (element, ele) {\n if (!this.popObj) {\n element.appendChild(ele);\n if (this.cssClass) {\n addClass([ele], this.cssClass.split(' '));\n }\n setStyle(this.element, { overflow: '' });\n var eleStyles = window.getComputedStyle(this.element);\n var popup = new Popup(null, {\n relateTo: this.element,\n offsetY: (this.isVertical) ? 0 : this.getElementOffsetY(),\n enableRtl: this.enableRtl,\n open: this.popupOpen.bind(this),\n close: this.popupClose.bind(this),\n collision: { Y: this.enableCollision ? 'flip' : 'none' },\n position: this.enableRtl ? { X: 'left', Y: 'top' } : { X: 'right', Y: 'top' }\n });\n if (this.overflowMode === 'Extended') {\n popup.width = parseFloat(eleStyles.width) + ((parseFloat(eleStyles.borderRightWidth)) * 2);\n popup.offsetX = 0;\n }\n popup.appendTo(ele);\n EventHandler.add(document, 'scroll', this.docEvent.bind(this));\n EventHandler.add(document, 'click ', this.docEvent.bind(this));\n popup.element.style.maxHeight = popup.element.offsetHeight + 'px';\n if (this.isVertical) {\n popup.element.style.visibility = 'hidden';\n }\n if (this.isExtendedOpen) {\n var popupNav = this.element.querySelector('.' + CLS_TBARNAV);\n popupNav.classList.add(CLS_TBARNAVACT);\n classList(popupNav.firstElementChild, [CLS_POPUPICON], [CLS_POPUPDOWN]);\n this.element.querySelector('.' + CLS_EXTENDABLECLASS).classList.add(CLS_POPUPOPEN);\n }\n else {\n popup.hide();\n }\n this.popObj = popup;\n }\n else {\n var popupEle = this.popObj.element;\n setStyle(popupEle, { maxHeight: '', display: 'block' });\n setStyle(popupEle, { maxHeight: popupEle.offsetHeight + 'px', display: '' });\n }\n };\n Toolbar.prototype.tbarPopupHandler = function (isOpen) {\n if (this.overflowMode === 'Extended') {\n if (isOpen) {\n this.add(this.element, CLS_EXTENDEDPOPOPEN);\n }\n else {\n this.remove(this.element, CLS_EXTENDEDPOPOPEN);\n }\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n Toolbar.prototype.popupOpen = function (e) {\n var popObj = this.popObj;\n if (!this.isVertical) {\n popObj.offsetY = this.getElementOffsetY();\n popObj.dataBind();\n }\n var popupEle = this.popObj.element;\n var toolEle = this.popObj.element.parentElement;\n var popupNav = toolEle.querySelector('.' + CLS_TBARNAV);\n popupNav.setAttribute('aria-expanded', 'true');\n setStyle(popObj.element, { height: 'auto', maxHeight: '' });\n popObj.element.style.maxHeight = popObj.element.offsetHeight + 'px';\n if (this.overflowMode === 'Extended') {\n popObj.element.style.minHeight = '';\n }\n var popupElePos = popupEle.offsetTop + popupEle.offsetHeight + calculatePosition(toolEle).top;\n var popIcon = popupNav.firstElementChild;\n popupNav.classList.add(CLS_TBARNAVACT);\n classList(popIcon, [CLS_POPUPICON], [CLS_POPUPDOWN]);\n this.tbarPopupHandler(true);\n var scrollVal = isNOU(window.scrollY) ? 0 : window.scrollY;\n if (!this.isVertical && ((window.innerHeight + scrollVal) < popupElePos) && (this.element.offsetTop < popupEle.offsetHeight)) {\n var overflowHeight = (popupEle.offsetHeight - ((popupElePos - window.innerHeight - scrollVal) + 5));\n popObj.height = overflowHeight + 'px';\n for (var i = 0; i <= popupEle.childElementCount; i++) {\n var ele = popupEle.children[parseInt(i.toString(), 10)];\n if (ele.offsetTop + ele.offsetHeight > overflowHeight) {\n overflowHeight = ele.offsetTop;\n break;\n }\n }\n setStyle(popObj.element, { maxHeight: overflowHeight + 'px' });\n }\n else if (this.isVertical) {\n var tbEleData = this.element.getBoundingClientRect();\n setStyle(popObj.element, { maxHeight: (tbEleData.top + this.element.offsetHeight) + 'px', bottom: 0, visibility: '' });\n }\n if (popObj) {\n var popupOffset = popupEle.getBoundingClientRect();\n if (popupOffset.right > document.documentElement.clientWidth && popupOffset.width > toolEle.getBoundingClientRect().width) {\n popObj.collision = { Y: 'none' };\n popObj.dataBind();\n }\n popObj.refreshPosition();\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n Toolbar.prototype.popupClose = function (e) {\n var element = this.element;\n var popupNav = element.querySelector('.' + CLS_TBARNAV);\n popupNav.setAttribute('aria-expanded', 'false');\n var popIcon = popupNav.firstElementChild;\n popupNav.classList.remove(CLS_TBARNAVACT);\n classList(popIcon, [CLS_POPUPDOWN], [CLS_POPUPICON]);\n this.tbarPopupHandler(false);\n };\n Toolbar.prototype.checkPriority = function (ele, inEle, eleWidth, pre) {\n var popPriority = this.popupPriCount > 0;\n var len = inEle.length;\n var eleWid = eleWidth;\n var eleOffset;\n var checkoffset;\n var sepCheck = 0;\n var itemCount = 0;\n var itemPopCount = 0;\n var checkClass = function (ele, val) {\n var rVal = false;\n val.forEach(function (cls) {\n if (ele.classList.contains(cls)) {\n rVal = true;\n }\n });\n return rVal;\n };\n for (var i = len - 1; i >= 0; i--) {\n var mrgn = void 0;\n var compuStyle = window.getComputedStyle(inEle[parseInt(i.toString(), 10)]);\n if (this.isVertical) {\n mrgn = parseFloat((compuStyle).marginTop);\n mrgn += parseFloat((compuStyle).marginBottom);\n }\n else {\n mrgn = parseFloat((compuStyle).marginRight);\n mrgn += parseFloat((compuStyle).marginLeft);\n }\n var fstEleCheck = inEle[parseInt(i.toString(), 10)] === this.tbarEle[0];\n if (fstEleCheck) {\n this.tbarEleMrgn = mrgn;\n }\n eleOffset = this.isVertical ? inEle[parseInt(i.toString(), 10)].offsetHeight : inEle[parseInt(i.toString(), 10)].offsetWidth;\n var eleWid_1 = fstEleCheck ? (eleOffset + mrgn) : eleOffset;\n if (checkClass(inEle[parseInt(i.toString(), 10)], [CLS_POPPRI]) && popPriority) {\n inEle[parseInt(i.toString(), 10)].classList.add(CLS_POPUP);\n if (this.isVertical) {\n setStyle(inEle[parseInt(i.toString(), 10)], { display: 'none', minHeight: eleWid_1 + 'px' });\n }\n else {\n setStyle(inEle[parseInt(i.toString(), 10)], { display: 'none', minWidth: eleWid_1 + 'px' });\n }\n itemPopCount++;\n }\n if (this.isVertical) {\n checkoffset =\n (inEle[parseInt(i.toString(), 10)].offsetTop + inEle[parseInt(i.toString(), 10)].offsetHeight + mrgn) > eleWidth;\n }\n else {\n checkoffset =\n (inEle[parseInt(i.toString(), 10)].offsetLeft + inEle[parseInt(i.toString(), 10)].offsetWidth + mrgn) > eleWidth;\n }\n if (checkoffset) {\n if (inEle[parseInt(i.toString(), 10)].classList.contains(CLS_SEPARATOR)) {\n if (this.overflowMode === 'Extended') {\n var sepEle = inEle[parseInt(i.toString(), 10)];\n if (checkClass(sepEle, [CLS_SEPARATOR, CLS_TBARIGNORE])) {\n inEle[parseInt(i.toString(), 10)].classList.add(CLS_POPUP);\n itemPopCount++;\n }\n itemCount++;\n }\n else if (this.overflowMode === 'Popup') {\n if (sepCheck > 0 && itemCount === itemPopCount) {\n var sepEle = inEle[i + itemCount + (sepCheck - 1)];\n if (checkClass(sepEle, [CLS_SEPARATOR, CLS_TBARIGNORE])) {\n setStyle(sepEle, { display: 'none' });\n }\n }\n sepCheck++;\n itemCount = 0;\n itemPopCount = 0;\n }\n }\n else {\n itemCount++;\n }\n if (inEle[parseInt(i.toString(), 10)].classList.contains(CLS_TBAROVERFLOW) && pre) {\n eleWidth -= ((this.isVertical ? inEle[parseInt(i.toString(), 10)].offsetHeight :\n inEle[parseInt(i.toString(), 10)].offsetWidth) + (mrgn));\n }\n else if (!checkClass(inEle[parseInt(i.toString(), 10)], [CLS_SEPARATOR, CLS_TBARIGNORE])) {\n inEle[parseInt(i.toString(), 10)].classList.add(CLS_POPUP);\n if (this.isVertical) {\n setStyle(inEle[parseInt(i.toString(), 10)], { display: 'none', minHeight: eleWid_1 + 'px' });\n }\n else {\n setStyle(inEle[parseInt(i.toString(), 10)], { display: 'none', minWidth: eleWid_1 + 'px' });\n }\n itemPopCount++;\n }\n else {\n eleWidth -= ((this.isVertical ? inEle[parseInt(i.toString(), 10)].offsetHeight :\n inEle[parseInt(i.toString(), 10)].offsetWidth) + (mrgn));\n }\n }\n }\n if (pre) {\n var popedEle = selectAll('.' + CLS_ITEM + ':not(.' + CLS_POPUP + ')', this.element);\n this.checkPriority(ele, popedEle, eleWid, false);\n }\n };\n Toolbar.prototype.createPopupIcon = function (element) {\n var id = element.id.concat('_nav');\n var className = 'e-' + element.id.concat('_nav ' + CLS_POPUPNAV);\n className = this.overflowMode === 'Extended' ? className + ' ' + CLS_EXTENDPOPUP : className;\n var nav = this.createElement('div', { id: id, className: className });\n if (Browser.info.name === 'msie' || Browser.info.name === 'edge') {\n nav.classList.add('e-ie-align');\n }\n var navItem = this.createElement('div', { className: CLS_POPUPDOWN + ' e-icons' });\n nav.appendChild(navItem);\n nav.setAttribute('tabindex', '0');\n nav.setAttribute('role', 'button');\n element.appendChild(nav);\n };\n Toolbar.prototype.tbarPriRef = function (inEle, indx, sepPri, el, des, elWid, wid, ig) {\n var ignoreCount = ig;\n var popEle = this.popObj.element;\n var query = '.' + CLS_ITEM + ':not(.' + CLS_SEPARATOR + '):not(.' + CLS_TBAROVERFLOW + ')';\n var priEleCnt = selectAll('.' + CLS_POPUP + ':not(.' + CLS_TBAROVERFLOW + ')', popEle).length;\n var checkClass = function (ele, val) {\n return ele.classList.contains(val);\n };\n if (selectAll(query, inEle).length === 0) {\n var eleSep = inEle.children[indx - (indx - sepPri) - 1];\n var ignoreCheck = (!isNOU(eleSep) && checkClass(eleSep, CLS_TBARIGNORE));\n if ((!isNOU(eleSep) && checkClass(eleSep, CLS_SEPARATOR) && !isVisible(eleSep)) || ignoreCheck) {\n var sepDisplay = 'none';\n eleSep.style.display = 'inherit';\n var eleSepWidth = eleSep.offsetWidth + (parseFloat(window.getComputedStyle(eleSep).marginRight) * 2);\n var prevSep = eleSep.previousElementSibling;\n if ((elWid + eleSepWidth) < wid || des) {\n inEle.insertBefore(el, inEle.children[(indx + ignoreCount) - (indx - sepPri)]);\n if (!isNOU(prevSep)) {\n prevSep.style.display = '';\n }\n }\n else {\n if (prevSep.classList.contains(CLS_SEPARATOR)) {\n prevSep.style.display = sepDisplay;\n }\n }\n eleSep.style.display = '';\n }\n else {\n inEle.insertBefore(el, inEle.children[(indx + ignoreCount) - (indx - sepPri)]);\n }\n }\n else {\n inEle.insertBefore(el, inEle.children[(indx + ignoreCount) - priEleCnt]);\n }\n };\n Toolbar.prototype.popupRefresh = function (popupEle, destroy) {\n var _this = this;\n var ele = this.element;\n var isVer = this.isVertical;\n var innerEle = ele.querySelector('.' + CLS_ITEMS);\n var popNav = ele.querySelector('.' + CLS_TBARNAV);\n if (isNOU(popNav)) {\n return;\n }\n innerEle.removeAttribute('style');\n popupEle.style.display = 'block';\n var dimension;\n if (isVer) {\n dimension = ele.offsetHeight - (popNav.offsetHeight + innerEle.offsetHeight);\n }\n else {\n dimension = ele.offsetWidth - (popNav.offsetWidth + innerEle.offsetWidth);\n }\n var popupEleWidth = 0;\n [].slice.call(popupEle.children).forEach(function (el) {\n popupEleWidth += _this.popupEleWidth(el);\n setStyle(el, { 'position': '' });\n });\n if ((dimension + (isVer ? popNav.offsetHeight : popNav.offsetWidth)) > (popupEleWidth) && this.popupPriCount === 0) {\n destroy = true;\n }\n this.popupEleRefresh(dimension, popupEle, destroy);\n popupEle.style.display = '';\n if (popupEle.children.length === 0 && popNav && this.popObj) {\n detach(popNav);\n popNav = null;\n this.popObj.destroy();\n detach(this.popObj.element);\n this.popObj = null;\n }\n };\n Toolbar.prototype.ignoreEleFetch = function (index, innerEle) {\n var ignoreEle = [].slice.call(innerEle.querySelectorAll('.' + CLS_TBARIGNORE));\n var ignoreInx = [];\n var count = 0;\n if (ignoreEle.length > 0) {\n ignoreEle.forEach(function (ele) {\n ignoreInx.push([].slice.call(innerEle.children).indexOf(ele));\n });\n }\n else {\n return 0;\n }\n ignoreInx.forEach(function (val) {\n if (val <= index) {\n count++;\n }\n });\n return count;\n };\n Toolbar.prototype.checkPopupRefresh = function (root, popEle) {\n popEle.style.display = 'block';\n var elWid = this.popupEleWidth(popEle.firstElementChild);\n popEle.firstElementChild.style.removeProperty('Position');\n var tbarWidth = root.offsetWidth - root.querySelector('.' + CLS_TBARNAV).offsetWidth;\n var tbarItemsWid = root.querySelector('.' + CLS_ITEMS).offsetWidth;\n popEle.style.removeProperty('display');\n if (tbarWidth > (elWid + tbarItemsWid)) {\n return true;\n }\n return false;\n };\n Toolbar.prototype.popupEleWidth = function (el) {\n el.style.position = 'absolute';\n var elWidth = this.isVertical ? el.offsetHeight : el.offsetWidth;\n var btnText = el.querySelector('.' + CLS_TBARBTNTEXT);\n if (el.classList.contains('e-tbtn-align') || el.classList.contains(CLS_TBARTEXT)) {\n var btn = el.children[0];\n if (!isNOU(btnText) && el.classList.contains(CLS_TBARTEXT)) {\n btnText.style.display = 'none';\n }\n else if (!isNOU(btnText) && el.classList.contains(CLS_POPUPTEXT)) {\n btnText.style.display = 'block';\n }\n btn.style.minWidth = '0%';\n elWidth = parseFloat(!this.isVertical ? el.style.minWidth : el.style.minHeight);\n btn.style.minWidth = '';\n btn.style.minHeight = '';\n if (!isNOU(btnText)) {\n btnText.style.display = '';\n }\n }\n return elWidth;\n };\n Toolbar.prototype.popupEleRefresh = function (width, popupEle, destroy) {\n var popPriority = this.popupPriCount > 0;\n var eleSplice = this.tbarEle;\n var priEleCnt;\n var index;\n var innerEle = this.element.querySelector('.' + CLS_ITEMS);\n var ignoreCount = 0;\n var _loop_1 = function (el) {\n if (el.classList.contains(CLS_POPPRI) && popPriority && !destroy) {\n return \"continue\";\n }\n var elWidth = this_1.popupEleWidth(el);\n if (el === this_1.tbarEle[0]) {\n elWidth += this_1.tbarEleMrgn;\n }\n el.style.position = '';\n if (elWidth < width || destroy) {\n setStyle(el, { minWidth: '', height: '', minHeight: '' });\n if (!el.classList.contains(CLS_POPOVERFLOW)) {\n el.classList.remove(CLS_POPUP);\n }\n index = this_1.tbarEle.indexOf(el);\n if (this_1.tbarAlign) {\n var pos = this_1.items[parseInt(index.toString(), 10)].align;\n index = this_1.tbarAlgEle[(pos + 's').toLowerCase()].indexOf(el);\n eleSplice = this_1.tbarAlgEle[(pos + 's').toLowerCase()];\n innerEle = this_1.element.querySelector('.' + CLS_ITEMS + ' .' + 'e-toolbar-' + pos.toLowerCase());\n }\n var sepBeforePri_1 = 0;\n if (this_1.overflowMode !== 'Extended') {\n eleSplice.slice(0, index).forEach(function (el) {\n if (el.classList.contains(CLS_TBAROVERFLOW) || el.classList.contains(CLS_SEPARATOR)) {\n if (el.classList.contains(CLS_SEPARATOR)) {\n el.style.display = '';\n width -= el.offsetWidth;\n }\n sepBeforePri_1++;\n }\n });\n }\n ignoreCount = this_1.ignoreEleFetch(index, innerEle);\n if (el.classList.contains(CLS_TBAROVERFLOW)) {\n this_1.tbarPriRef(innerEle, index, sepBeforePri_1, el, destroy, elWidth, width, ignoreCount);\n width -= el.offsetWidth;\n }\n else if (index === 0) {\n innerEle.insertBefore(el, innerEle.firstChild);\n width -= el.offsetWidth;\n }\n else {\n priEleCnt = selectAll('.' + CLS_TBAROVERFLOW, this_1.popObj.element).length;\n innerEle.insertBefore(el, innerEle.children[(index + ignoreCount) - priEleCnt]);\n width -= el.offsetWidth;\n }\n el.style.height = '';\n }\n else {\n return \"break\";\n }\n };\n var this_1 = this;\n for (var _i = 0, _a = [].slice.call(popupEle.children); _i < _a.length; _i++) {\n var el = _a[_i];\n var state_1 = _loop_1(el);\n if (state_1 === \"break\")\n break;\n }\n var checkOverflow = this.checkOverflow(this.element, this.element.getElementsByClassName(CLS_ITEMS)[0]);\n if (checkOverflow && !destroy) {\n this.renderOverflowMode();\n }\n };\n Toolbar.prototype.removePositioning = function () {\n var item = this.element.querySelector('.' + CLS_ITEMS);\n if (isNOU(item) || !item.classList.contains(CLS_TBARPOS)) {\n return;\n }\n this.remove(item, CLS_TBARPOS);\n var innerItem = [].slice.call(item.childNodes);\n innerItem[1].removeAttribute('style');\n innerItem[2].removeAttribute('style');\n };\n Toolbar.prototype.refreshPositioning = function () {\n var item = this.element.querySelector('.' + CLS_ITEMS);\n this.add(item, CLS_TBARPOS);\n this.itemPositioning();\n };\n Toolbar.prototype.itemPositioning = function () {\n var item = this.element.querySelector('.' + CLS_ITEMS);\n var margin;\n if (isNOU(item) || !item.classList.contains(CLS_TBARPOS)) {\n return;\n }\n var popupNav = this.element.querySelector('.' + CLS_TBARNAV);\n var innerItem;\n if (this.scrollModule) {\n var trgClass = (this.isVertical) ? CLS_VSCROLLCNT : CLS_HSCROLLCNT;\n innerItem = [].slice.call(item.querySelector('.' + trgClass).children);\n }\n else {\n innerItem = [].slice.call(item.childNodes);\n }\n if (this.isVertical) {\n margin = innerItem[0].offsetHeight + innerItem[2].offsetHeight;\n }\n else {\n margin = innerItem[0].offsetWidth + innerItem[2].offsetWidth;\n }\n var tbarWid = this.isVertical ? this.element.offsetHeight : this.element.offsetWidth;\n if (popupNav) {\n tbarWid -= (this.isVertical ? popupNav.offsetHeight : popupNav.offsetWidth);\n var popWid = (this.isVertical ? popupNav.offsetHeight : popupNav.offsetWidth) + 'px';\n innerItem[2].removeAttribute('style');\n if (this.isVertical) {\n if (this.enableRtl) {\n innerItem[2].style.top = popWid;\n }\n else {\n innerItem[2].style.bottom = popWid;\n }\n }\n else {\n if (this.enableRtl) {\n innerItem[2].style.left = popWid;\n }\n else {\n innerItem[2].style.right = popWid;\n }\n }\n }\n if (tbarWid <= margin) {\n return;\n }\n var value = (((tbarWid - margin)) - (!this.isVertical ? innerItem[1].offsetWidth : innerItem[1].offsetHeight)) / 2;\n innerItem[1].removeAttribute('style');\n var mrgn = ((!this.isVertical ? innerItem[0].offsetWidth : innerItem[0].offsetHeight) + value) + 'px';\n if (this.isVertical) {\n if (this.enableRtl) {\n innerItem[1].style.marginBottom = mrgn;\n }\n else {\n innerItem[1].style.marginTop = mrgn;\n }\n }\n else {\n if (this.enableRtl) {\n innerItem[1].style.marginRight = mrgn;\n }\n else {\n innerItem[1].style.marginLeft = mrgn;\n }\n }\n };\n Toolbar.prototype.tbarItemAlign = function (item, itemEle, pos) {\n var _this = this;\n if (item.showAlwaysInPopup && item.overflow !== 'Show') {\n return;\n }\n var alignDiv = [];\n alignDiv.push(this.createElement('div', { className: CLS_TBARLEFT }));\n alignDiv.push(this.createElement('div', { className: CLS_TBARCENTER }));\n alignDiv.push(this.createElement('div', { className: CLS_TBARRIGHT }));\n if (pos === 0 && item.align !== 'Left') {\n alignDiv.forEach(function (ele) {\n itemEle.appendChild(ele);\n });\n this.tbarAlign = true;\n this.add(itemEle, CLS_TBARPOS);\n }\n else if (item.align !== 'Left') {\n var alignEle = itemEle.childNodes;\n var leftAlign_1 = alignDiv[0];\n [].slice.call(alignEle).forEach(function (el) {\n _this.tbarAlgEle.lefts.push(el);\n leftAlign_1.appendChild(el);\n });\n itemEle.appendChild(leftAlign_1);\n itemEle.appendChild(alignDiv[1]);\n itemEle.appendChild(alignDiv[2]);\n this.tbarAlign = true;\n this.add(itemEle, CLS_TBARPOS);\n }\n };\n Toolbar.prototype.ctrlTemplate = function () {\n var _this = this;\n this.ctrlTem = this.trgtEle.cloneNode(true);\n this.add(this.trgtEle, CLS_ITEMS);\n this.tbarEle = [];\n var innerEle = [].slice.call(this.trgtEle.children);\n innerEle.forEach(function (ele) {\n if (ele.tagName === 'DIV') {\n _this.tbarEle.push(ele);\n if (!isNOU(ele.firstElementChild)) {\n ele.firstElementChild.setAttribute('aria-disabled', 'false');\n }\n _this.add(ele, CLS_ITEM);\n }\n });\n };\n Toolbar.prototype.renderItems = function () {\n var ele = this.element;\n var items = this.items;\n if (this.trgtEle != null) {\n this.ctrlTemplate();\n }\n else if (ele && items.length > 0) {\n var itemEleDom = void 0;\n if (ele && ele.children.length > 0) {\n itemEleDom = ele.querySelector('.' + CLS_ITEMS);\n }\n if (!itemEleDom) {\n itemEleDom = this.createElement('div', { className: CLS_ITEMS });\n }\n this.itemsAlign(items, itemEleDom);\n ele.appendChild(itemEleDom);\n }\n };\n Toolbar.prototype.setAttr = function (attr, element) {\n var key = Object.keys(attr);\n var keyVal;\n for (var i = 0; i < key.length; i++) {\n keyVal = key[parseInt(i.toString(), 10)];\n if (keyVal === 'class') {\n this.add(element, attr[\"\" + keyVal]);\n }\n else {\n element.setAttribute(keyVal, attr[\"\" + keyVal]);\n }\n }\n };\n /**\n * Enables or disables the specified Toolbar item.\n *\n * @param {number|HTMLElement|NodeList} items - DOM element or an array of items to be enabled or disabled.\n * @param {boolean} isEnable - Boolean value that determines whether the command should be enabled or disabled.\n * By default, `isEnable` is set to true.\n * @returns {void}.\n */\n Toolbar.prototype.enableItems = function (items, isEnable) {\n var elements = items;\n var len = elements.length;\n var ele;\n if (isNOU(isEnable)) {\n isEnable = true;\n }\n var enable = function (isEnable, ele) {\n if (isEnable) {\n ele.classList.remove(CLS_DISABLE);\n if (!isNOU(ele.firstElementChild)) {\n ele.firstElementChild.setAttribute('aria-disabled', 'false');\n }\n }\n else {\n ele.classList.add(CLS_DISABLE);\n if (!isNOU(ele.firstElementChild)) {\n ele.firstElementChild.setAttribute('aria-disabled', 'true');\n }\n }\n };\n if (!isNOU(len) && len >= 1) {\n for (var a = 0, element = [].slice.call(elements); a < len; a++) {\n var itemElement = element[parseInt(a.toString(), 10)];\n if (typeof (itemElement) === 'number') {\n ele = this.getElementByIndex(itemElement);\n if (isNOU(ele)) {\n return;\n }\n else {\n elements[parseInt(a.toString(), 10)] = ele;\n }\n }\n else {\n ele = itemElement;\n }\n enable(isEnable, ele);\n }\n if (isEnable) {\n removeClass(elements, CLS_DISABLE);\n }\n else {\n addClass(elements, CLS_DISABLE);\n }\n }\n else {\n if (typeof (elements) === 'number') {\n ele = this.getElementByIndex(elements);\n if (isNOU(ele)) {\n return;\n }\n }\n else {\n ele = items;\n }\n enable(isEnable, ele);\n }\n };\n Toolbar.prototype.getElementByIndex = function (index) {\n if (this.tbarEle[parseInt(index.toString(), 10)]) {\n return this.tbarEle[parseInt(index.toString(), 10)];\n }\n return null;\n };\n /**\n * Adds new items to the Toolbar that accepts an array as Toolbar items.\n *\n * @param {ItemModel[]} items - DOM element or an array of items to be added to the Toolbar.\n * @param {number} index - Number value that determines where the command is to be added. By default, index is 0.\n * @returns {void}.\n */\n Toolbar.prototype.addItems = function (items, index) {\n var innerItems;\n this.extendedOpen();\n var itemsDiv = this.element.querySelector('.' + CLS_ITEMS);\n if (isNOU(itemsDiv)) {\n this.itemsRerender(items);\n return;\n }\n var innerEle;\n var itemAgn = 'Left';\n if (isNOU(index)) {\n index = 0;\n }\n items.forEach(function (e) {\n if (!isNOU(e.align) && e.align !== 'Left' && itemAgn === 'Left') {\n itemAgn = e.align;\n }\n });\n for (var _i = 0, items_1 = items; _i < items_1.length; _i++) {\n var item = items_1[_i];\n if (isNOU(item.type)) {\n item.type = 'Button';\n }\n innerItems = selectAll('.' + CLS_ITEM, this.element);\n item.align = itemAgn;\n innerEle = this.renderSubComponent(item, index);\n if (this.tbarEle.length >= index && innerItems.length >= 0) {\n if (isNOU(this.scrollModule)) {\n this.destroyMode();\n }\n var algIndex = item.align[0] === 'L' ? 0 : item.align[0] === 'C' ? 1 : 2;\n var ele = void 0;\n if (!this.tbarAlign && itemAgn !== 'Left') {\n this.tbarItemAlign(item, itemsDiv, 1);\n this.tbarAlign = true;\n ele = closest(innerItems[0], '.' + CLS_ITEMS).children[parseInt(algIndex.toString(), 10)];\n ele.appendChild(innerEle);\n this.tbarAlgEle[(item.align + 's').toLowerCase()].push(innerEle);\n this.refreshPositioning();\n }\n else if (this.tbarAlign) {\n ele = closest(innerItems[0], '.' + CLS_ITEMS).children[parseInt(algIndex.toString(), 10)];\n ele.insertBefore(innerEle, ele.children[parseInt(index.toString(), 10)]);\n this.tbarAlgEle[(item.align + 's').toLowerCase()].splice(index, 0, innerEle);\n this.refreshPositioning();\n }\n else if (innerItems.length === 0) {\n innerItems = selectAll('.' + CLS_ITEMS, this.element);\n innerItems[0].appendChild(innerEle);\n }\n else {\n innerItems[0].parentNode.insertBefore(innerEle, innerItems[parseInt(index.toString(), 10)]);\n }\n this.items.splice(index, 0, item);\n if (item.template) {\n this.tbarEle.splice(this.tbarEle.length - 1, 1);\n }\n this.tbarEle.splice(index, 0, innerEle);\n index++;\n this.offsetWid = itemsDiv.offsetWidth;\n }\n }\n itemsDiv.style.width = '';\n this.renderOverflowMode();\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n /**\n * Removes the items from the Toolbar. Acceptable arguments are index of item/HTMLElement/node list.\n *\n * @param {number|HTMLElement|NodeList|HTMLElement[]} args\n * Index or DOM element or an Array of item which is to be removed from the Toolbar.\n * @returns {void}.\n */\n Toolbar.prototype.removeItems = function (args) {\n var elements = args;\n var index;\n var innerItems = [].slice.call(selectAll('.' + CLS_ITEM, this.element));\n if (typeof (elements) === 'number') {\n index = parseInt(args.toString(), 10);\n this.removeItemByIndex(index, innerItems);\n }\n else {\n if (elements && elements.length > 1) {\n for (var _i = 0, _a = [].slice.call(elements); _i < _a.length; _i++) {\n var ele = _a[_i];\n index = this.tbarEle.indexOf(ele);\n this.removeItemByIndex(index, innerItems);\n innerItems = selectAll('.' + CLS_ITEM, this.element);\n }\n }\n else {\n var ele = (elements && elements.length && elements.length === 1) ? elements[0] : args;\n index = innerItems.indexOf(ele);\n this.removeItemByIndex(index, innerItems);\n }\n }\n this.resize();\n };\n Toolbar.prototype.removeItemByIndex = function (index, innerItems) {\n if (this.tbarEle[parseInt(index.toString(), 10)] && innerItems[parseInt(index.toString(), 10)]) {\n var eleIdx = this.tbarEle.indexOf(innerItems[parseInt(index.toString(), 10)]);\n if (this.tbarAlign) {\n var indexAgn = this.tbarAlgEle[(this.items[parseInt(eleIdx.toString(), 10)].align + 's').toLowerCase()].indexOf(this.tbarEle[parseInt(eleIdx.toString(), 10)]);\n this.tbarAlgEle[(this.items[parseInt(eleIdx.toString(), 10)].align + 's').toLowerCase()].splice(parseInt(indexAgn.toString(), 10), 1);\n }\n if (this.isReact) {\n this.clearTemplate();\n }\n var btnItem = innerItems[parseInt(index.toString(), 10)].querySelector('.e-control.e-btn');\n if (!isNOU(btnItem) && !isNOU(btnItem.ej2_instances[0]) && !(btnItem.ej2_instances[0].isDestroyed)) {\n btnItem.ej2_instances[0].destroy();\n }\n detach(innerItems[parseInt(index.toString(), 10)]);\n this.items.splice(eleIdx, 1);\n this.tbarEle.splice(eleIdx, 1);\n }\n };\n Toolbar.prototype.templateRender = function (templateProp, innerEle, item, index) {\n var itemType = item.type;\n var eleObj = templateProp;\n var isComponent;\n if (typeof (templateProp) === 'object') {\n isComponent = typeof (eleObj.appendTo) === 'function';\n }\n if (typeof (templateProp) === 'string' || !isComponent) {\n var templateFn = void 0;\n var val = templateProp;\n var regEx = new RegExp(/<(?=.*? .*?\\/ ?>|br|hr|input|!--|wbr)[a-z]+.*?>|<([a-z]+).*?<\\/\\1>/i);\n val = (typeof (templateProp) === 'string') ? templateProp.trim() : templateProp;\n try {\n if (typeof (templateProp) === 'object' && !isNOU(templateProp.tagName)) {\n innerEle.appendChild(templateProp);\n }\n else if (typeof (templateProp) === 'string' && regEx.test(val)) {\n innerEle.innerHTML = val;\n }\n else if (document.querySelectorAll(val).length) {\n var ele = document.querySelector(val);\n var tempStr = ele.outerHTML.trim();\n innerEle.appendChild(ele);\n ele.style.display = '';\n if (!isNOU(tempStr)) {\n this.tempId.push(val);\n }\n }\n else {\n templateFn = templateCompiler(val);\n }\n }\n catch (e) {\n templateFn = templateCompiler(val);\n }\n var tempArray = void 0;\n if (!isNOU(templateFn)) {\n var toolbarTemplateID = this.element.id + index + '_template';\n tempArray = templateFn({}, this, 'template', toolbarTemplateID, this.isStringTemplate);\n }\n if (!isNOU(tempArray) && tempArray.length > 0) {\n [].slice.call(tempArray).forEach(function (ele) {\n if (!isNOU(ele.tagName)) {\n ele.style.display = '';\n }\n innerEle.appendChild(ele);\n });\n }\n }\n else if (itemType === 'Input') {\n var ele = this.createElement('input');\n if (item.id) {\n ele.id = item.id;\n }\n else {\n ele.id = getUniqueID('tbr-ipt');\n }\n innerEle.appendChild(ele);\n eleObj.appendTo(ele);\n }\n this.add(innerEle, CLS_TEMPLATE);\n this.tbarEle.push(innerEle);\n };\n Toolbar.prototype.buttonRendering = function (item, innerEle) {\n var dom = this.createElement('button', { className: CLS_TBARBTN });\n dom.setAttribute('type', 'button');\n var textStr = item.text;\n var iconCss;\n var iconPos;\n if (item.id) {\n dom.id = item.id;\n }\n else {\n dom.id = getUniqueID('e-tbr-btn');\n }\n var btnTxt = this.createElement('span', { className: 'e-tbar-btn-text' });\n if (textStr) {\n btnTxt.innerHTML = this.enableHtmlSanitizer ? SanitizeHtmlHelper.sanitize(textStr) : textStr;\n dom.appendChild(btnTxt);\n dom.classList.add('e-tbtn-txt');\n }\n else {\n this.add(innerEle, 'e-tbtn-align');\n }\n if (item.prefixIcon || item.suffixIcon) {\n if ((item.prefixIcon && item.suffixIcon) || item.prefixIcon) {\n iconCss = item.prefixIcon + ' e-icons';\n iconPos = 'Left';\n }\n else {\n iconCss = item.suffixIcon + ' e-icons';\n iconPos = 'Right';\n }\n }\n var btnObj = new Button({ iconCss: iconCss, iconPosition: iconPos });\n btnObj.createElement = this.createElement;\n btnObj.appendTo(dom);\n if (item.width) {\n setStyle(dom, { 'width': formatUnit(item.width) });\n }\n return dom;\n };\n Toolbar.prototype.renderSubComponent = function (item, index) {\n var dom;\n var innerEle = this.createElement('div', { className: CLS_ITEM });\n var tempDom = this.createElement('div', {\n innerHTML: this.enableHtmlSanitizer ? SanitizeHtmlHelper.sanitize(item.tooltipText) : item.tooltipText\n });\n if (!this.tbarEle) {\n this.tbarEle = [];\n }\n if (item.htmlAttributes) {\n this.setAttr(item.htmlAttributes, innerEle);\n }\n if (item.tooltipText) {\n innerEle.setAttribute('title', tempDom.textContent);\n }\n if (item.cssClass) {\n innerEle.className = innerEle.className + ' ' + item.cssClass;\n }\n if (item.template) {\n this.templateRender(item.template, innerEle, item, index);\n }\n else {\n switch (item.type) {\n case 'Button':\n dom = this.buttonRendering(item, innerEle);\n dom.setAttribute('tabindex', isNOU(item.tabIndex) ? '-1' : item.tabIndex.toString());\n dom.setAttribute('data-tabindex', isNOU(item.tabIndex) ? '-1' : item.tabIndex.toString());\n dom.setAttribute('aria-label', (item.text || item.tooltipText));\n dom.setAttribute('aria-disabled', 'false');\n innerEle.appendChild(dom);\n innerEle.addEventListener('click', this.itemClick.bind(this));\n break;\n case 'Separator':\n this.add(innerEle, CLS_SEPARATOR);\n break;\n }\n }\n if (item.showTextOn) {\n var sTxt = item.showTextOn;\n if (sTxt === 'Toolbar') {\n this.add(innerEle, CLS_POPUPTEXT);\n this.add(innerEle, 'e-tbtn-align');\n }\n else if (sTxt === 'Overflow') {\n this.add(innerEle, CLS_TBARTEXT);\n }\n }\n if (item.overflow) {\n var overflow = item.overflow;\n if (overflow === 'Show') {\n this.add(innerEle, CLS_TBAROVERFLOW);\n }\n else if (overflow === 'Hide') {\n if (!innerEle.classList.contains(CLS_SEPARATOR)) {\n this.add(innerEle, CLS_POPOVERFLOW);\n }\n }\n }\n if (item.overflow !== 'Show' && item.showAlwaysInPopup && !innerEle.classList.contains(CLS_SEPARATOR)) {\n this.add(innerEle, CLS_POPPRI);\n this.popupPriCount++;\n }\n if (item.disabled) {\n this.add(innerEle, CLS_DISABLE);\n }\n if (item.visible === false) {\n this.add(innerEle, CLS_HIDDEN);\n }\n return innerEle;\n };\n Toolbar.prototype.getDataTabindex = function (ele) {\n return isNOU(ele.getAttribute('data-tabindex')) ? '-1' : ele.getAttribute('data-tabindex');\n };\n Toolbar.prototype.itemClick = function (e) {\n this.activeEleSwitch(e.currentTarget);\n };\n Toolbar.prototype.activeEleSwitch = function (ele) {\n this.activeEleRemove(ele.firstElementChild);\n this.activeEle.focus();\n };\n Toolbar.prototype.activeEleRemove = function (curEle) {\n if (!isNOU(this.activeEle)) {\n this.activeEle.setAttribute('tabindex', this.getDataTabindex(this.activeEle));\n }\n this.activeEle = curEle;\n if (this.getDataTabindex(this.activeEle) === '-1') {\n if (isNOU(this.trgtEle) && !curEle.parentElement.classList.contains(CLS_TEMPLATE)) {\n this.updateTabIndex('-1');\n curEle.removeAttribute('tabindex');\n }\n else {\n this.activeEle.setAttribute('tabindex', this.getDataTabindex(this.activeEle));\n }\n }\n };\n Toolbar.prototype.getPersistData = function () {\n return this.addOnPersist([]);\n };\n /**\n * Returns the current module name.\n *\n * @returns {string} - Returns the module name as string.\n * @private\n */\n Toolbar.prototype.getModuleName = function () {\n return 'toolbar';\n };\n Toolbar.prototype.itemsRerender = function (newProp) {\n this.items = this.tbarItemsCol;\n if (this.isReact || this.isAngular) {\n this.clearTemplate();\n }\n this.destroyMode();\n this.destroyItems();\n this.items = newProp;\n this.tbarItemsCol = this.items;\n this.renderItems();\n this.renderOverflowMode();\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n Toolbar.prototype.resize = function () {\n var ele = this.element;\n this.tbResize = true;\n if (this.tbarAlign) {\n this.itemPositioning();\n }\n if (this.popObj && this.overflowMode === 'Popup') {\n this.popObj.hide();\n }\n var checkOverflow = this.checkOverflow(ele, ele.getElementsByClassName(CLS_ITEMS)[0]);\n if (!checkOverflow) {\n this.destroyScroll();\n var multirowele = ele.querySelector('.' + CLS_ITEMS);\n if (!isNOU(multirowele)) {\n this.remove(multirowele, CLS_MULTIROWPOS);\n if (this.tbarAlign) {\n this.add(multirowele, CLS_TBARPOS);\n }\n }\n }\n if (checkOverflow && this.scrollModule && (this.offsetWid === ele.offsetWidth)) {\n return;\n }\n if (this.offsetWid > ele.offsetWidth || checkOverflow) {\n this.renderOverflowMode();\n }\n if (this.popObj) {\n if (this.overflowMode === 'Extended') {\n var eleStyles = window.getComputedStyle(this.element);\n this.popObj.width = parseFloat(eleStyles.width) + ((parseFloat(eleStyles.borderRightWidth)) * 2);\n }\n if (this.tbarAlign) {\n this.removePositioning();\n }\n this.popupRefresh(this.popObj.element, false);\n if (this.tbarAlign) {\n this.refreshPositioning();\n }\n }\n if (this.element.querySelector('.' + CLS_HSCROLLBAR)) {\n this.scrollStep = this.element.querySelector('.' + CLS_HSCROLLBAR).offsetWidth;\n }\n this.offsetWid = ele.offsetWidth;\n this.tbResize = false;\n this.separator();\n };\n Toolbar.prototype.extendedOpen = function () {\n var sib = this.element.querySelector('.' + CLS_EXTENDABLECLASS);\n if (this.overflowMode === 'Extended' && sib) {\n this.isExtendedOpen = sib.classList.contains(CLS_POPUPOPEN);\n }\n };\n Toolbar.prototype.updateHideEleTabIndex = function (ele, isHidden, isElement, eleIndex, innerItems) {\n if (isElement) {\n eleIndex = innerItems.indexOf(ele);\n }\n var nextEle = innerItems[++eleIndex];\n while (nextEle) {\n var skipEle = this.eleContains(nextEle);\n if (!skipEle) {\n var dataTabIndex = nextEle.firstElementChild.getAttribute('data-tabindex');\n if (isHidden && dataTabIndex === '-1') {\n nextEle.firstElementChild.setAttribute('tabindex', '0');\n }\n else if (dataTabIndex !== nextEle.firstElementChild.getAttribute('tabindex')) {\n nextEle.firstElementChild.setAttribute('tabindex', dataTabIndex);\n }\n break;\n }\n nextEle = innerItems[++eleIndex];\n }\n };\n /**\n * Gets called when the model property changes.The data that describes the old and new values of the property that changed.\n *\n * @param {ToolbarModel} newProp - It contains new value of the data.\n * @param {ToolbarModel} oldProp - It contains old value of the data.\n * @returns {void}\n * @private\n */\n Toolbar.prototype.onPropertyChanged = function (newProp, oldProp) {\n var tEle = this.element;\n var wid = tEle.offsetWidth;\n this.extendedOpen();\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'items':\n if (!(newProp.items instanceof Array && oldProp.items instanceof Array)) {\n var changedProb = Object.keys(newProp.items);\n for (var i = 0; i < changedProb.length; i++) {\n var index = parseInt(Object.keys(newProp.items)[parseInt(i.toString(), 10)], 10);\n var property = Object.keys(newProp.items[parseInt(index.toString(), 10)])[0];\n var newProperty = Object(newProp.items[parseInt(index.toString(), 10)])[\"\" + property];\n if (typeof newProperty !== 'function') {\n if (this.tbarAlign || property === 'align') {\n this.refresh();\n this.trigger('created');\n break;\n }\n var popupPriCheck = property === 'showAlwaysInPopup' && !newProperty;\n var booleanCheck = property === 'overflow' && this.popupPriCount !== 0;\n if ((popupPriCheck) || (this.items[parseInt(index.toString(), 10)].showAlwaysInPopup) && booleanCheck) {\n --this.popupPriCount;\n }\n if (isNOU(this.scrollModule)) {\n this.destroyMode();\n }\n var itemCol = [].slice.call(selectAll('.' + CLS_ITEMS + ' .' + CLS_ITEM, tEle));\n if (this.isReact && this.items[parseInt(index.toString(), 10)].template) {\n this.clearTemplate();\n }\n detach(itemCol[parseInt(index.toString(), 10)]);\n this.tbarEle.splice(index, 1);\n this.addItems([this.items[parseInt(index.toString(), 10)]], index);\n this.items.splice(index, 1);\n if (this.items[parseInt(index.toString(), 10)].template) {\n this.tbarEle.splice(this.items.length, 1);\n }\n }\n }\n }\n else {\n this.itemsRerender(newProp.items);\n }\n break;\n case 'width':\n setStyle(tEle, { 'width': formatUnit(newProp.width) });\n this.refreshOverflow();\n break;\n case 'height':\n setStyle(this.element, { 'height': formatUnit(newProp.height) });\n break;\n case 'overflowMode':\n this.destroyMode();\n this.renderOverflowMode();\n if (this.enableRtl) {\n this.add(tEle, CLS_RTL);\n }\n this.refreshOverflow();\n break;\n case 'enableRtl':\n if (newProp.enableRtl) {\n this.add(tEle, CLS_RTL);\n }\n else {\n this.remove(tEle, CLS_RTL);\n }\n if (!isNOU(this.scrollModule)) {\n if (newProp.enableRtl) {\n this.add(this.scrollModule.element, CLS_RTL);\n }\n else {\n this.remove(this.scrollModule.element, CLS_RTL);\n }\n }\n if (!isNOU(this.popObj)) {\n if (newProp.enableRtl) {\n this.add(this.popObj.element, CLS_RTL);\n }\n else {\n this.remove(this.popObj.element, CLS_RTL);\n }\n }\n if (this.tbarAlign) {\n this.itemPositioning();\n }\n break;\n case 'scrollStep':\n if (this.scrollModule) {\n this.scrollModule.scrollStep = this.scrollStep;\n }\n break;\n case 'enableCollision':\n if (this.popObj) {\n this.popObj.collision = { Y: this.enableCollision ? 'flip' : 'none' };\n }\n break;\n case 'cssClass':\n if (oldProp.cssClass) {\n removeClass([this.element], oldProp.cssClass.split(' '));\n }\n if (newProp.cssClass) {\n addClass([this.element], newProp.cssClass.split(' '));\n }\n break;\n case 'allowKeyboard':\n this.unwireKeyboardEvent();\n if (newProp.allowKeyboard) {\n this.wireKeyboardEvent();\n }\n break;\n }\n }\n };\n /**\n * Shows or hides the Toolbar item that is in the specified index.\n *\n * @param {number | HTMLElement} index - Index value of target item or DOM element of items to be hidden or shown.\n * @param {boolean} value - Based on this Boolean value, item will be hide (true) or show (false). By default, value is false.\n * @returns {void}.\n */\n Toolbar.prototype.hideItem = function (index, value) {\n var isElement = (typeof (index) === 'object') ? true : false;\n var eleIndex = index;\n var ele;\n if (!isElement && isNOU(eleIndex)) {\n return;\n }\n var innerItems = [].slice.call(selectAll('.' + CLS_ITEM, this.element));\n if (isElement) {\n ele = index;\n }\n else if (this.tbarEle[parseInt(eleIndex.toString(), 10)]) {\n var innerItems_1 = [].slice.call(selectAll('.' + CLS_ITEM, this.element));\n ele = innerItems_1[parseInt(eleIndex.toString(), 10)];\n }\n if (ele) {\n if (value) {\n ele.classList.add(CLS_HIDDEN);\n if (!ele.classList.contains(CLS_SEPARATOR)) {\n if (isNOU(ele.firstElementChild.getAttribute('tabindex')) ||\n ele.firstElementChild.getAttribute('tabindex') !== '-1') {\n this.updateHideEleTabIndex(ele, value, isElement, eleIndex, innerItems);\n }\n }\n }\n else {\n ele.classList.remove(CLS_HIDDEN);\n if (!ele.classList.contains(CLS_SEPARATOR)) {\n this.updateHideEleTabIndex(ele, value, isElement, eleIndex, innerItems);\n }\n }\n this.refreshOverflow();\n }\n };\n __decorate([\n Collection([], Item)\n ], Toolbar.prototype, \"items\", void 0);\n __decorate([\n Property('auto')\n ], Toolbar.prototype, \"width\", void 0);\n __decorate([\n Property('auto')\n ], Toolbar.prototype, \"height\", void 0);\n __decorate([\n Property('')\n ], Toolbar.prototype, \"cssClass\", void 0);\n __decorate([\n Property('Scrollable')\n ], Toolbar.prototype, \"overflowMode\", void 0);\n __decorate([\n Property()\n ], Toolbar.prototype, \"scrollStep\", void 0);\n __decorate([\n Property(true)\n ], Toolbar.prototype, \"enableCollision\", void 0);\n __decorate([\n Property(true)\n ], Toolbar.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Property(true)\n ], Toolbar.prototype, \"allowKeyboard\", void 0);\n __decorate([\n Event()\n ], Toolbar.prototype, \"clicked\", void 0);\n __decorate([\n Event()\n ], Toolbar.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], Toolbar.prototype, \"destroyed\", void 0);\n __decorate([\n Event()\n ], Toolbar.prototype, \"beforeCreate\", void 0);\n Toolbar = __decorate([\n NotifyPropertyChanges\n ], Toolbar);\n return Toolbar;\n}(Component));\nexport { Toolbar };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { ChildProperty, extend, deleteObject, Property, addClass, isNullOrUndefined } from '@syncfusion/ej2-base';\n/**\n * @param {Object} props - Specifies the properties\n * @param {string[]} model - Specifies the model\n * @returns {Object} Component Model\n */\nexport function getModel(props, model) {\n var obj = extend({}, props);\n for (var _i = 0, _a = Object.keys(obj); _i < _a.length; _i++) {\n var prop = _a[_i];\n if ((model).indexOf(prop) < 0) {\n deleteObject(obj, prop);\n }\n }\n return obj;\n}\n/** @hidden\n * @param {HTMLElement} ul - Specifies the UL element\n * @param {number} keyCode - Specifies the keycode\n * @returns {void}\n */\nexport function upDownKeyHandler(ul, keyCode) {\n var defaultIdx = keyCode === 40 ? 0 : ul.childElementCount - 1;\n var liIdx = defaultIdx;\n var li;\n var selectedLi = ul.querySelector('.e-selected');\n if (selectedLi) {\n selectedLi.classList.remove('e-selected');\n }\n for (var i = 0, len = ul.children.length; i < len; i++) {\n if (ul.children[i].classList.contains('e-focused')) {\n li = ul.children[i];\n liIdx = i;\n li.classList.remove('e-focused');\n if (keyCode === 40) {\n liIdx++;\n }\n else {\n liIdx--;\n }\n if (liIdx === (keyCode === 40 ? ul.childElementCount : -1)) {\n liIdx = defaultIdx;\n }\n }\n }\n li = ul.children[liIdx];\n liIdx = isValidLI(ul, li, liIdx, keyCode);\n if (liIdx !== -1) {\n addClass([ul.children[liIdx]], 'e-focused');\n ul.children[liIdx].focus();\n }\n}\n/**\n * Get Valid LI element\n *\n * @param {HTMLElement} ul - Specifies the UL element\n * @param {Element} li - Specifies the LI element\n * @param {number} index - Specifies the index\n * @param {number} keyCode - Specifies the keycode\n * @param {number} count - Specifies the count\n * @returns {number} - Index\n */\nfunction isValidLI(ul, li, index, keyCode, count) {\n if (count === void 0) { count = 0; }\n if (li.classList.contains('e-separator') || li.classList.contains('e-disabled')) {\n if (index === (keyCode === 40 ? ul.childElementCount - 1 : 0)) {\n index = keyCode === 40 ? 0 : ul.childElementCount - 1;\n }\n else {\n if (keyCode === 40) {\n index++;\n }\n else {\n index--;\n }\n }\n }\n li = ul.children[index];\n if (li.classList.contains('e-separator') || li.classList.contains('e-disabled')) {\n count++;\n if (count === ul.childElementCount) {\n return index = -1;\n }\n index = isValidLI(ul, li, index, keyCode, count);\n }\n return index;\n}\n/** @hidden\n * @param {HTMLElement} popup - Specifies the popup element.\n * @returns {void}\n */\nexport function setBlankIconStyle(popup, blankIcon) {\n var blankIconList = [].slice.call(popup.getElementsByClassName('e-blank-icon'));\n if (blankIcon) {\n var menuItem = [].slice.call(popup.getElementsByClassName('e-item'));\n menuItem.forEach(function (li) {\n if (li.style.paddingLeft || li.style.paddingRight) {\n li.removeAttribute('style');\n }\n });\n }\n if (!blankIconList.length) {\n return;\n }\n var iconLi = popup.querySelector('.e-item:not(.e-blank-icon):not(.e-separator)');\n if (isNullOrUndefined(iconLi)) {\n return;\n }\n if (iconLi.classList.contains('e-url')) {\n iconLi = iconLi.querySelector('.e-menu-url');\n }\n var icon = iconLi.querySelector('.e-menu-icon');\n var cssProp;\n var enableRtl = popup.classList.contains('e-rtl');\n if (enableRtl) {\n cssProp = { padding: 'paddingRight', margin: 'marginLeft' };\n }\n else {\n cssProp = { padding: 'paddingLeft', margin: 'marginRight' };\n }\n /* eslint-disable */\n var size = parseInt(getComputedStyle(icon).fontSize, 10) + parseInt((enableRtl ? getComputedStyle(icon)[cssProp.margin] : getComputedStyle(icon)[cssProp.margin]), 10)\n + parseInt(getComputedStyle(iconLi).paddingLeft, 10) + \"px\";\n blankIconList.forEach(function (li) {\n if (li.classList.contains('e-url')) {\n li.querySelector('.e-menu-url').style[cssProp.padding] = size;\n }\n else {\n li.style[cssProp.padding] = size;\n }\n });\n /* eslint-enable */\n}\n/**\n * Defines the items of Split Button/DropDownButton.\n */\nvar Item = /** @class */ (function (_super) {\n __extends(Item, _super);\n function Item() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], Item.prototype, \"iconCss\", void 0);\n __decorate([\n Property('')\n ], Item.prototype, \"id\", void 0);\n __decorate([\n Property(false)\n ], Item.prototype, \"separator\", void 0);\n __decorate([\n Property('')\n ], Item.prototype, \"text\", void 0);\n __decorate([\n Property('')\n ], Item.prototype, \"url\", void 0);\n __decorate([\n Property(false)\n ], Item.prototype, \"disabled\", void 0);\n return Item;\n}(ChildProperty));\nexport { Item };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Collection, Event, NotifyPropertyChanges, detach, Property, EventHandler, isRippleEnabled } from '@syncfusion/ej2-base';\nimport { addClass, getUniqueID, rippleEffect, getComponent } from '@syncfusion/ej2-base';\nimport { attributes, Component, closest, select, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\nimport { classList, removeClass } from '@syncfusion/ej2-base';\nimport { Button } from '@syncfusion/ej2-buttons';\nimport { Popup } from '@syncfusion/ej2-popups';\nimport { upDownKeyHandler } from './../common/common';\nimport { getModel, Item, setBlankIconStyle } from './../common/common';\nvar classNames = {\n DISABLED: 'e-disabled',\n FOCUS: 'e-focused',\n ICON: 'e-menu-icon',\n ITEM: 'e-item',\n POPUP: 'e-dropdown-popup',\n RTL: 'e-rtl',\n SEPARATOR: 'e-separator',\n VERTICAL: 'e-vertical'\n};\n/**\n * DropDownButton component is used to toggle contextual overlays for displaying list of action items.\n * It can contain both text and images.\n * ```html\n * \n * ```\n * ```typescript\n * \n * ```\n */\nvar DropDownButton = /** @class */ (function (_super) {\n __extends(DropDownButton, _super);\n /**\n * Constructor for creating the widget\n *\n * @param {DropDownButtonModel} options - Specifies dropdown button model\n * @param {string|HTMLButtonElement} element - Specifies element\n * @hidden\n */\n function DropDownButton(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.isPopupCreated = true;\n return _this;\n }\n DropDownButton.prototype.preRender = function () {\n /** */\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @returns {string} - Persist data\n */\n DropDownButton.prototype.getPersistData = function () {\n return this.addOnPersist([]);\n };\n /**\n * To open/close DropDownButton popup based on current state of the DropDownButton.\n *\n * @returns {void}\n */\n DropDownButton.prototype.toggle = function () {\n if (this.canOpen()) {\n this.openPopUp();\n }\n else {\n this.closePopup();\n }\n };\n /**\n * Initialize the Component rendering\n *\n * @returns {void}\n * @private\n */\n DropDownButton.prototype.render = function () {\n this.initialize();\n if (!this.disabled) {\n this.wireEvents();\n }\n this.renderComplete();\n };\n /**\n * Adds a new item to the menu. By default, new item appends to the list as the last item,\n * but you can insert based on the text parameter.\n *\n * @param { ItemModel[] } items - Specifies an array of JSON data.\n * @param { string } text - Specifies the text to insert the newly added item in the menu.\n * @returns {void}.\n */\n DropDownButton.prototype.addItems = function (items, text) {\n var newItem;\n var idx = this.items.length;\n for (var j = 0, len = this.items.length; j < len; j++) {\n if (text === this.items[j].text) {\n idx = j;\n break;\n }\n }\n for (var i = items.length - 1; i >= 0; i--) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n newItem = new Item(this, 'items', items[i], true);\n this.items.splice(idx, 0, newItem);\n }\n if (!this.canOpen()) {\n this.createItems();\n }\n };\n /**\n * Removes the items from the menu.\n *\n * @param { string[] } items - Specifies an array of string to remove the items.\n * @param { string } isUniqueId - Set `true` if specified items is a collection of unique id.\n * @returns {void}.\n */\n DropDownButton.prototype.removeItems = function (items, isUniqueId) {\n var refresh = false;\n for (var i = 0, len = items.length; i < len; i++) {\n for (var j = 0, len_1 = this.items.length; j < len_1; j++) {\n if (items[i] === (isUniqueId ? this.items[j].id : this.items[j].text)) {\n this.items.splice(j, 1);\n refresh = true;\n break;\n }\n }\n }\n if (refresh && this.getULElement()) {\n this.createItems();\n }\n };\n DropDownButton.prototype.createPopup = function () {\n var _a;\n var div = this.createElement('div', {\n className: classNames.POPUP,\n id: this.element.id + '-popup'\n });\n document.body.appendChild(div);\n this.dropDown = new Popup(div, {\n relateTo: this.element,\n collision: { X: 'fit', Y: 'flip' },\n position: { X: 'left', Y: 'bottom' },\n targetType: 'relative',\n content: this.target ? this.getTargetElement() : '',\n enableRtl: this.enableRtl\n });\n if (this.dropDown.element.style.position === 'fixed') {\n this.dropDown.refreshPosition(this.element);\n }\n this.dropDown.hide();\n attributes(this.element, (_a = {},\n _a['aria-haspopup'] = this.items.length || this.target ? 'true' : 'false',\n _a['aria-expanded'] = 'false',\n _a['type'] = 'button',\n _a['aria-label'] = this.element.textContent ? this.element.textContent : 'dropdownbutton',\n _a));\n if (this.cssClass) {\n addClass([div], this.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n this.isPopupCreated = true;\n };\n DropDownButton.prototype.getTargetElement = function () {\n return typeof (this.target) === 'string' ? select(this.target) : this.target;\n };\n DropDownButton.prototype.createItems = function (appendItems) {\n var items = this.items;\n var showIcon = this.hasIcon(this.items, 'iconCss');\n var span;\n var item;\n var li;\n var eventArgs;\n var ul = this.getULElement();\n if (ul) {\n ul.innerHTML = '';\n }\n else {\n ul = this.createElement('ul', {\n attrs: { 'role': 'menu', 'tabindex': '0' }\n });\n }\n for (var i = 0; i < items.length; i++) {\n item = items[i];\n var tempItem = item.text;\n li = this.createElement('li', {\n innerHTML: item.url ? '' : tempItem,\n className: item.separator ? classNames.ITEM + ' ' + classNames.SEPARATOR : classNames.ITEM,\n attrs: item.separator ? { 'role': 'separator', 'tabindex': '-1' } : { 'role': 'menuitem', 'tabindex': '-1', 'aria-label': tempItem },\n id: item.id ? item.id : getUniqueID('e-' + this.getModuleName() + '-item')\n });\n if (this.enableHtmlSanitizer) {\n li.textContent = item.url ? '' : tempItem;\n }\n else {\n li.innerHTML = item.url ? '' : tempItem;\n }\n if (item.url) {\n li.appendChild(this.createAnchor(item));\n li.classList.add('e-url');\n }\n if (item.iconCss) {\n span = this.createElement('span', { className: classNames.ICON + ' ' + item.iconCss });\n if (item.url) {\n li.childNodes[0].appendChild(span);\n }\n else {\n li.insertBefore(span, li.childNodes[0]);\n }\n }\n else {\n if (showIcon && !item.separator) {\n li.classList.add('e-blank-icon');\n }\n }\n if (item.disabled) {\n li.classList.add('e-disabled');\n }\n eventArgs = { item: item, element: li };\n this.trigger('beforeItemRender', eventArgs);\n ul.appendChild(li);\n }\n if (appendItems) {\n this.getPopUpElement().appendChild(ul);\n }\n if (showIcon) {\n setBlankIconStyle(this.getPopUpElement());\n }\n };\n DropDownButton.prototype.hasIcon = function (items, field) {\n for (var i = 0, len = items.length; i < len; i++) {\n if (items[i][\"\" + field]) {\n return true;\n }\n }\n return false;\n };\n DropDownButton.prototype.createAnchor = function (item) {\n var tempItem = (this.enableHtmlSanitizer) ? SanitizeHtmlHelper.sanitize(item.text) : item.text;\n return this.createElement('a', { className: 'e-menu-text e-menu-url', innerHTML: tempItem, attrs: { 'href': item.url } });\n };\n DropDownButton.prototype.initialize = function () {\n this.button = new Button({\n iconCss: this.iconCss, iconPosition: this.iconPosition, cssClass: this.cssClass, content: this.content,\n disabled: this.disabled, enableRtl: this.enableRtl, enablePersistence: this.enablePersistence\n });\n this.button.createElement = this.createElement;\n this.button.appendTo(this.element);\n if (!this.element.id) {\n this.element.id = getUniqueID('e-' + this.getModuleName());\n }\n this.appendArrowSpan();\n this.setActiveElem([this.element]);\n if ((this.target && !this.isColorPicker()) || !this.createPopupOnClick) {\n this.createPopup();\n }\n else {\n this.isPopupCreated = false;\n }\n };\n DropDownButton.prototype.isColorPicker = function () {\n if (!this.element) {\n return false;\n }\n var prevElem = this.element.previousSibling;\n if (prevElem && prevElem.classList && prevElem.classList.contains('e-split-colorpicker')) {\n return true;\n }\n return false;\n };\n DropDownButton.prototype.appendArrowSpan = function () {\n this.element.appendChild(this.createElement('span', {\n className: 'e-btn-icon e-icons ' + 'e-icon-' + (this.cssClass.indexOf(classNames.VERTICAL) > -1\n ? 'bottom' : 'right') + ' e-caret'\n }));\n };\n DropDownButton.prototype.setActiveElem = function (elem) {\n this.activeElem = elem;\n };\n /**\n * Get component name.\n *\n * @returns {string} - Module Name\n * @private\n */\n DropDownButton.prototype.getModuleName = function () {\n return 'dropdown-btn';\n };\n DropDownButton.prototype.canOpen = function () {\n var val = false;\n if (this.isPopupCreated) {\n val = this.getPopUpElement().classList.contains('e-popup-close');\n }\n return val;\n };\n /**\n * Destroys the widget.\n *\n * @returns {void}\n */\n DropDownButton.prototype.destroy = function () {\n var _this = this;\n _super.prototype.destroy.call(this);\n if (this.getModuleName() === 'dropdown-btn') {\n var classList_1;\n if (this.element.querySelector('span.e-caret')) {\n detach(this.element.querySelector('span.e-caret'));\n }\n if (this.cssClass) {\n classList_1 = this.cssClass.split(' ');\n }\n this.button.destroy();\n if (classList_1) {\n removeClass([this.element], classList_1);\n }\n removeClass(this.activeElem, ['e-active']);\n var attrList = this.element.getAttribute('class') ? ['aria-haspopup', 'aria-expanded', 'aria-owns', 'type']\n : ['aria-haspopup', 'aria-expanded', 'aria-owns', 'type', 'class'];\n attrList.forEach(function (key) {\n _this.element.removeAttribute(key);\n });\n this.popupUnWireEvents();\n this.destroyPopup();\n this.isPopupCreated = false;\n if (!this.disabled) {\n this.unWireEvents();\n }\n }\n };\n DropDownButton.prototype.destroyPopup = function () {\n if (this.isPopupCreated) {\n this.dropDown.destroy();\n if (this.getPopUpElement()) {\n var popupEle = document.getElementById(this.getPopUpElement().id);\n if (popupEle) {\n removeClass([popupEle], ['e-popup-open', 'e-popup-close']);\n detach(popupEle);\n }\n }\n EventHandler.remove(this.getPopUpElement(), 'click', this.clickHandler);\n EventHandler.remove(this.getPopUpElement(), 'keydown', this.keyBoardHandler);\n if (this.isPopupCreated && this.dropDown) {\n this.dropDown.element = null;\n this.dropDown = undefined;\n }\n }\n this.isPopupCreated = false;\n };\n DropDownButton.prototype.getPopUpElement = function () {\n var val = null;\n if (this.dropDown) {\n val = this.dropDown.element;\n }\n return val;\n };\n DropDownButton.prototype.getULElement = function () {\n var val = null;\n if (this.getPopUpElement()) {\n val = this.getPopUpElement().children[0];\n }\n return val;\n };\n DropDownButton.prototype.wireEvents = function () {\n this.delegateMousedownHandler = this.mousedownHandler.bind(this);\n if (!this.createPopupOnClick) {\n EventHandler.add(document, 'mousedown touchstart', this.delegateMousedownHandler, this);\n }\n EventHandler.add(this.element, 'click', this.clickHandler, this);\n EventHandler.add(this.element, 'keydown', this.keyBoardHandler, this);\n };\n DropDownButton.prototype.popupWireEvents = function () {\n var popupElement = this.getPopUpElement();\n if (this.createPopupOnClick) {\n EventHandler.add(document, 'mousedown touchstart', this.delegateMousedownHandler, this);\n }\n if (popupElement) {\n EventHandler.add(popupElement, 'click', this.clickHandler, this);\n EventHandler.add(popupElement, 'keydown', this.keyBoardHandler, this);\n if (this.closeActionEvents) {\n EventHandler.add(popupElement, this.closeActionEvents, this.focusoutHandler, this);\n }\n }\n this.rippleFn = rippleEffect(popupElement, { selector: '.' + classNames.ITEM });\n };\n DropDownButton.prototype.popupUnWireEvents = function () {\n var popupElement = this.getPopUpElement();\n if (this.createPopupOnClick) {\n EventHandler.remove(document, 'mousedown touchstart', this.delegateMousedownHandler);\n }\n if (popupElement && popupElement.parentElement) {\n EventHandler.remove(popupElement, 'click', this.clickHandler);\n EventHandler.remove(popupElement, 'keydown', this.keyBoardHandler);\n if (this.closeActionEvents) {\n EventHandler.remove(popupElement, this.closeActionEvents, this.focusoutHandler);\n }\n }\n if (isRippleEnabled && this.rippleFn) {\n this.rippleFn();\n }\n };\n /**\n * Handles the keyboard interactions.\n *\n * @param {KeyboardEventArgs} e - Specifies keyboard event args.\n * @returns {void}\n * @hidden\n */\n DropDownButton.prototype.keyBoardHandler = function (e) {\n if (e.target === this.element && (e.keyCode === 9 || (!e.altKey && e.keyCode === 40) || e.keyCode === 38)) {\n return;\n }\n switch (e.keyCode) {\n case 38:\n case 40:\n if (e.altKey && (e.keyCode === 38 || e.keyCode === 40)) {\n this.keyEventHandler(e);\n }\n else {\n this.upDownKeyHandler(e);\n }\n break;\n case 9:\n case 13:\n case 27:\n case 32:\n this.keyEventHandler(e);\n break;\n }\n };\n DropDownButton.prototype.upDownKeyHandler = function (e) {\n if (this.target && (e.keyCode === 38 || e.keyCode === 40)) {\n return;\n }\n e.preventDefault();\n upDownKeyHandler(this.getULElement(), e.keyCode);\n };\n DropDownButton.prototype.keyEventHandler = function (e) {\n if (this.target && (e.keyCode === 13 || e.keyCode === 9)) {\n return;\n }\n if (e.keyCode === 13 && this.activeElem[0].classList.contains('e-split-btn')) {\n this.activeElem[0].focus();\n return;\n }\n if (e.target && e.target.className.indexOf('e-edit-template') > -1 && e.keyCode === 32) {\n return;\n }\n if (e.keyCode !== 9) {\n e.preventDefault();\n }\n if (e.keyCode === 27 || e.keyCode === 38 || e.keyCode === 9) {\n if (!this.canOpen()) {\n this.closePopup(e, this.element);\n }\n }\n else {\n this.clickHandler(e);\n }\n };\n DropDownButton.prototype.getLI = function (elem) {\n return elem.tagName === 'LI' ? elem : closest(elem, 'li');\n };\n DropDownButton.prototype.mousedownHandler = function (e) {\n var trgt = e.target;\n if (this.dropDown && !this.canOpen() && !(closest(trgt, '[id=\"' + this.getPopUpElement().id + '\"]')\n || closest(trgt, '[id=\"' + this.element.id + '\"]'))) {\n this.closePopup(e);\n }\n };\n DropDownButton.prototype.focusoutHandler = function (e) {\n if (this.isPopupCreated && !this.canOpen()) {\n var liTarget = e.relatedTarget;\n if (liTarget && liTarget.className.indexOf('e-item') > -1) {\n var li = this.getLI(liTarget);\n if (li) {\n var liIdx = Array.prototype.indexOf.call(this.getULElement().children, li);\n var item = this.items[liIdx];\n if (item) {\n var selectEventArgs = { element: li, item: item };\n this.trigger('select', selectEventArgs);\n }\n }\n }\n this.closePopup(e);\n }\n };\n DropDownButton.prototype.clickHandler = function (e) {\n var trgt = e.target;\n if (closest(trgt, '[id=\"' + this.element.id + '\"]')) {\n if (!this.createPopupOnClick || (this.target && !this.isColorPicker())) {\n if (this.getPopUpElement().classList.contains('e-popup-close')) {\n this.openPopUp(e);\n }\n else {\n this.closePopup(e);\n }\n }\n else if (this.isPopupCreated) {\n this.closePopup(e, this.activeElem[0]);\n }\n else {\n this.createPopup();\n this.openPopUp(e);\n }\n }\n else {\n if (closest(trgt, '[id=\"' + this.getPopUpElement().id + '\"]')) {\n var eventArgs = void 0;\n var liIdx = void 0;\n var item = void 0;\n var li = this.getLI(trgt);\n if (li) {\n liIdx = Array.prototype.indexOf.call(this.getULElement().children, li);\n item = this.items[liIdx];\n if (item) {\n eventArgs = { element: li, item: item };\n this.trigger('select', eventArgs);\n }\n this.closePopup(e, this.activeElem[0]);\n }\n }\n }\n };\n DropDownButton.prototype.openPopUp = function (e) {\n var _this = this;\n if (e === void 0) { e = null; }\n var isReact = false;\n var popupElem = this.getPopUpElement();\n if (!this.target) {\n this.createItems(true);\n }\n else {\n if (this.activeElem.length > 1) {\n var splitButton = getComponent(this.activeElem[0], 'split-btn');\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (splitButton.isReact && popupElem.childNodes.length < 1) {\n isReact = true;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n splitButton.appendReactElement(this.getTargetElement(), this.getPopUpElement());\n this.renderReactTemplates();\n }\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact && popupElem.childNodes.length < 1) {\n isReact = true;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.appendReactElement(this.getTargetElement(), this.getPopUpElement());\n this.renderReactTemplates();\n }\n }\n }\n var ul = this.getULElement();\n this.popupWireEvents();\n var beforeOpenArgs = { element: ul, items: this.items, event: e, cancel: false };\n this.trigger('beforeOpen', beforeOpenArgs, function (observedArgs) {\n if (!observedArgs.cancel) {\n var ul_1 = _this.getULElement();\n _this.dropDown.show(null, _this.element);\n addClass([_this.element], 'e-active');\n _this.element.setAttribute('aria-expanded', 'true');\n _this.element.setAttribute('aria-owns', _this.getPopUpElement().id);\n if (ul_1) {\n ul_1.focus();\n }\n var openArgs = { element: ul_1, items: _this.items };\n _this.trigger('open', openArgs);\n }\n });\n };\n DropDownButton.prototype.closePopup = function (e, focusEle) {\n var _this = this;\n if (e === void 0) { e = null; }\n var ul = this.getULElement();\n var beforeCloseArgs = { element: ul, items: this.items, event: e, cancel: false };\n this.trigger('beforeClose', beforeCloseArgs, function (observedArgs) {\n if (!observedArgs.cancel) {\n var popupElement = _this.getPopUpElement();\n if (popupElement) {\n EventHandler.remove(popupElement, 'keydown', _this.keyBoardHandler);\n }\n _this.popupUnWireEvents();\n var ul_2 = _this.getULElement();\n var selectedLi = void 0;\n if (ul_2) {\n selectedLi = ul_2.querySelector('.e-selected');\n }\n if (selectedLi) {\n selectedLi.classList.remove('e-selected');\n }\n _this.dropDown.hide();\n removeClass(_this.activeElem, 'e-active');\n _this.element.setAttribute('aria-expanded', 'false');\n _this.element.removeAttribute('aria-owns');\n if (focusEle) {\n focusEle.focus();\n }\n var closeArgs = { element: ul_2, items: _this.items };\n _this.trigger('close', closeArgs);\n if (!_this.target && ul_2) {\n detach(ul_2);\n }\n if (!_this.target || _this.isColorPicker()) {\n if (_this.createPopupOnClick) {\n _this.destroyPopup();\n }\n }\n if (_this.target) {\n _this.isPopupCreated = _this.createPopupOnClick ? false : true;\n }\n }\n else {\n if (ul) {\n ul.focus();\n }\n }\n });\n };\n DropDownButton.prototype.unWireEvents = function () {\n if (!this.createPopupOnClick) {\n EventHandler.remove(document, 'mousedown touchstart', this.delegateMousedownHandler);\n }\n EventHandler.remove(this.element, 'click', this.clickHandler);\n EventHandler.remove(this.element, 'keydown', this.keyBoardHandler);\n if (this.isPopupCreated) {\n EventHandler.remove(this.getPopUpElement(), 'click', this.clickHandler);\n EventHandler.remove(this.getPopUpElement(), 'keydown', this.keyBoardHandler);\n }\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {DropDownButtonModel} newProp - Specifies new properties\n * @param {DropDownButtonModel} oldProp - Specifies old properties\n * @returns {void}\n * @private\n */\n DropDownButton.prototype.onPropertyChanged = function (newProp, oldProp) {\n var btnModel = ['content', 'cssClass', 'iconCss', 'iconPosition', 'disabled', 'enableRtl'];\n this.button.setProperties(getModel(newProp, btnModel));\n var popupElement;\n if (this.isPopupCreated) {\n popupElement = this.getPopUpElement();\n this.dropDown.setProperties(getModel(newProp, ['enableRtl']));\n }\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'content':\n if (!this.element.querySelector('span.e-caret')) {\n this.appendArrowSpan();\n }\n break;\n case 'disabled':\n if (newProp.disabled) {\n this.unWireEvents();\n if (this.isPopupCreated && !this.canOpen()) {\n this.closePopup();\n }\n }\n else {\n this.wireEvents();\n }\n break;\n case 'cssClass':\n if (newProp.cssClass.indexOf(classNames.VERTICAL) > -1 || oldProp.cssClass.indexOf(classNames.VERTICAL) > -1) {\n if (!this.element.querySelector('span.e-caret')) {\n this.appendArrowSpan();\n }\n var arrowSpan = this.element.querySelector('span.e-caret');\n newProp.cssClass.indexOf(classNames.VERTICAL) > -1 ? classList(arrowSpan, ['e-icon-bottom'], ['e-icon-right'])\n : classList(arrowSpan, ['e-icon-right'], ['e-icon-bottom']);\n }\n if (this.isPopupCreated) {\n if (oldProp.cssClass) {\n removeClass([popupElement], oldProp.cssClass.split(' '));\n }\n if (newProp.cssClass) {\n addClass([popupElement], newProp.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n }\n break;\n case 'target':\n this.dropDown.content = this.getTargetElement();\n this.dropDown.dataBind();\n break;\n case 'items':\n if (this.isPopupCreated && this.getULElement()) {\n this.createItems();\n }\n break;\n case 'createPopupOnClick':\n if (newProp.createPopupOnClick) {\n this.destroyPopup();\n }\n else {\n this.createPopup();\n }\n break;\n }\n }\n };\n /**\n * Sets the focus to DropDownButton\n * its native method\n *\n * @public\n * @returns {void}\n */\n DropDownButton.prototype.focusIn = function () {\n this.element.focus();\n };\n __decorate([\n Property('')\n ], DropDownButton.prototype, \"content\", void 0);\n __decorate([\n Property('')\n ], DropDownButton.prototype, \"cssClass\", void 0);\n __decorate([\n Property(false)\n ], DropDownButton.prototype, \"disabled\", void 0);\n __decorate([\n Property('')\n ], DropDownButton.prototype, \"iconCss\", void 0);\n __decorate([\n Property('Left')\n ], DropDownButton.prototype, \"iconPosition\", void 0);\n __decorate([\n Property(false)\n ], DropDownButton.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Collection([], Item)\n ], DropDownButton.prototype, \"items\", void 0);\n __decorate([\n Property(false)\n ], DropDownButton.prototype, \"createPopupOnClick\", void 0);\n __decorate([\n Property('')\n ], DropDownButton.prototype, \"target\", void 0);\n __decorate([\n Property('')\n ], DropDownButton.prototype, \"closeActionEvents\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"beforeItemRender\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"beforeOpen\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"beforeClose\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"close\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"open\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"select\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"created\", void 0);\n DropDownButton = __decorate([\n NotifyPropertyChanges\n ], DropDownButton);\n return DropDownButton;\n}(Component));\nexport { DropDownButton };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component, Property, ChildProperty, Event, append, compile } from '@syncfusion/ej2-base';\nimport { EventHandler, Touch, Browser, Animation as PopupAnimation } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined, getUniqueID, formatUnit, select, selectAll } from '@syncfusion/ej2-base';\nimport { attributes, closest, removeClass, addClass, remove } from '@syncfusion/ej2-base';\nimport { NotifyPropertyChanges, Complex, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\nimport { Popup } from '../popup/popup';\nimport { calculatePosition } from '../common/position';\nimport { isCollide, fit } from '../common/collision';\nvar TOUCHEND_HIDE_DELAY = 1500;\nvar TAPHOLD_THRESHOLD = 500;\nvar SHOW_POINTER_TIP_GAP = 0;\nvar HIDE_POINTER_TIP_GAP = 8;\nvar MOUSE_TRAIL_GAP = 2;\nvar POINTER_ADJUST = 2;\nvar ROOT = 'e-tooltip';\nvar RTL = 'e-rtl';\nvar DEVICE = 'e-bigger';\nvar ICON = 'e-icons';\nvar CLOSE = 'e-tooltip-close';\nvar TOOLTIP_WRAP = 'e-tooltip-wrap';\nvar CONTENT = 'e-tip-content';\nvar ARROW_TIP = 'e-arrow-tip';\nvar ARROW_TIP_OUTER = 'e-arrow-tip-outer';\nvar ARROW_TIP_INNER = 'e-arrow-tip-inner';\nvar TIP_BOTTOM = 'e-tip-bottom';\nvar TIP_TOP = 'e-tip-top';\nvar TIP_LEFT = 'e-tip-left';\nvar TIP_RIGHT = 'e-tip-right';\nvar POPUP_ROOT = 'e-popup';\nvar POPUP_OPEN = 'e-popup-open';\nvar POPUP_CLOSE = 'e-popup-close';\nvar POPUP_LIB = 'e-lib';\nvar HIDE_POPUP = 'e-hidden';\nvar POPUP_CONTAINER = 'e-tooltip-popup-container';\nvar Animation = /** @class */ (function (_super) {\n __extends(Animation, _super);\n function Animation() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ effect: 'FadeIn', duration: 150, delay: 0 })\n ], Animation.prototype, \"open\", void 0);\n __decorate([\n Property({ effect: 'FadeOut', duration: 150, delay: 0 })\n ], Animation.prototype, \"close\", void 0);\n return Animation;\n}(ChildProperty));\nexport { Animation };\n/**\n * Represents the Tooltip component that displays a piece of information about the target element on mouse hover.\n * ```html\n *
Show Tooltip
\n * ```\n * ```typescript\n * \n * ```\n */\nvar Tooltip = /** @class */ (function (_super) {\n __extends(Tooltip, _super);\n /* eslint-enable */\n /**\n * Constructor for creating the Tooltip Component\n *\n * @param {TooltipModel} options - specifies the options for the constructor\n * @param {string| HTMLElement} element - specifies the element for the constructor\n *\n */\n function Tooltip(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.mouseMoveEvent = null;\n _this.mouseMoveTarget = null;\n _this.containerElement = null;\n _this.isBodyContainer = true;\n return _this;\n }\n Tooltip.prototype.initialize = function () {\n this.formatPosition();\n addClass([this.element], ROOT);\n };\n Tooltip.prototype.formatPosition = function () {\n var _a, _b;\n if (this.position.indexOf('Top') === 0 || this.position.indexOf('Bottom') === 0) {\n _a = this.position.split(/(?=[A-Z])/), this.tooltipPositionY = _a[0], this.tooltipPositionX = _a[1];\n }\n else {\n _b = this.position.split(/(?=[A-Z])/), this.tooltipPositionX = _b[0], this.tooltipPositionY = _b[1];\n }\n };\n Tooltip.prototype.renderArrow = function () {\n this.setTipClass(this.position);\n var tip = this.createElement('div', { className: ARROW_TIP + ' ' + this.tipClass });\n tip.appendChild(this.createElement('div', { className: ARROW_TIP_OUTER + ' ' + this.tipClass }));\n tip.appendChild(this.createElement('div', { className: ARROW_TIP_INNER + ' ' + this.tipClass }));\n this.tooltipEle.appendChild(tip);\n };\n Tooltip.prototype.setTipClass = function (position) {\n if (position.indexOf('Right') === 0) {\n this.tipClass = TIP_LEFT;\n }\n else if (position.indexOf('Bottom') === 0) {\n this.tipClass = TIP_TOP;\n }\n else if (position.indexOf('Left') === 0) {\n this.tipClass = TIP_RIGHT;\n }\n else {\n this.tipClass = TIP_BOTTOM;\n }\n };\n Tooltip.prototype.renderPopup = function (target) {\n var elePos = this.mouseTrail ? { top: 0, left: 0 } : this.getTooltipPosition(target);\n this.tooltipEle.classList.remove(POPUP_LIB);\n this.popupObj = new Popup(this.tooltipEle, {\n height: this.height,\n width: this.width,\n position: { X: elePos.left, Y: elePos.top },\n enableRtl: this.enableRtl,\n open: this.openPopupHandler.bind(this),\n close: this.closePopupHandler.bind(this)\n });\n };\n Tooltip.prototype.getTooltipPosition = function (target) {\n this.tooltipEle.style.display = 'block';\n var pos = calculatePosition(target, this.tooltipPositionX, this.tooltipPositionY, !this.isBodyContainer, this.isBodyContainer ? null : this.containerElement.getBoundingClientRect());\n var offsetPos = this.calculateTooltipOffset(this.position);\n var collisionPosition = this.calculateElementPosition(pos, offsetPos);\n var collisionLeft = collisionPosition[0];\n var collisionTop = collisionPosition[1];\n var elePos = this.collisionFlipFit(target, collisionLeft, collisionTop);\n this.tooltipEle.style.display = '';\n return elePos;\n };\n Tooltip.prototype.windowResize = function () {\n this.reposition(this.findTarget());\n };\n Tooltip.prototype.reposition = function (target) {\n if (this.popupObj && target) {\n var elePos = this.getTooltipPosition(target);\n this.popupObj.position = { X: elePos.left, Y: elePos.top };\n this.popupObj.dataBind();\n }\n };\n Tooltip.prototype.openPopupHandler = function () {\n if (!this.mouseTrail && this.needTemplateReposition()) {\n this.reposition(this.findTarget());\n }\n this.trigger('afterOpen', this.tooltipEventArgs);\n this.tooltipEventArgs = null;\n };\n Tooltip.prototype.closePopupHandler = function () {\n if (this.isReact && !(this.opensOn === 'Click' && typeof (this.content) === 'function')) {\n this.clearTemplate(['content']);\n }\n this.clear();\n this.trigger('afterClose', this.tooltipEventArgs);\n this.tooltipEventArgs = null;\n };\n Tooltip.prototype.calculateTooltipOffset = function (position) {\n var pos = { top: 0, left: 0 };\n var tooltipEleWidth = this.tooltipEle.offsetWidth;\n var tooltipEleHeight = this.tooltipEle.offsetHeight;\n var arrowEle = select('.' + ARROW_TIP, this.tooltipEle);\n var tipWidth = arrowEle ? arrowEle.offsetWidth : 0;\n var tipHeight = arrowEle ? arrowEle.offsetHeight : 0;\n var tipAdjust = (this.showTipPointer ? SHOW_POINTER_TIP_GAP : HIDE_POINTER_TIP_GAP);\n var tipHeightAdjust = (tipHeight / 2) + POINTER_ADJUST + (this.tooltipEle.offsetHeight - this.tooltipEle.clientHeight);\n var tipWidthAdjust = (tipWidth / 2) + POINTER_ADJUST + (this.tooltipEle.offsetWidth - this.tooltipEle.clientWidth);\n if (this.mouseTrail) {\n tipAdjust += MOUSE_TRAIL_GAP;\n }\n switch (position) {\n case 'RightTop':\n pos.left += tipWidth + tipAdjust;\n pos.top -= tooltipEleHeight - tipHeightAdjust;\n break;\n case 'RightCenter':\n pos.left += tipWidth + tipAdjust;\n pos.top -= (tooltipEleHeight / 2);\n break;\n case 'RightBottom':\n pos.left += tipWidth + tipAdjust;\n pos.top -= (tipHeightAdjust);\n break;\n case 'BottomRight':\n pos.top += (tipHeight + tipAdjust);\n pos.left -= (tipWidthAdjust);\n break;\n case 'BottomCenter':\n pos.top += (tipHeight + tipAdjust);\n pos.left -= (tooltipEleWidth / 2);\n break;\n case 'BottomLeft':\n pos.top += (tipHeight + tipAdjust);\n pos.left -= (tooltipEleWidth - tipWidthAdjust);\n break;\n case 'LeftBottom':\n pos.left -= (tipWidth + tooltipEleWidth + tipAdjust);\n pos.top -= (tipHeightAdjust);\n break;\n case 'LeftCenter':\n pos.left -= (tipWidth + tooltipEleWidth + tipAdjust);\n pos.top -= (tooltipEleHeight / 2);\n break;\n case 'LeftTop':\n pos.left -= (tipWidth + tooltipEleWidth + tipAdjust);\n pos.top -= (tooltipEleHeight - tipHeightAdjust);\n break;\n case 'TopLeft':\n pos.top -= (tooltipEleHeight + tipHeight + tipAdjust);\n pos.left -= (tooltipEleWidth - tipWidthAdjust);\n break;\n case 'TopRight':\n pos.top -= (tooltipEleHeight + tipHeight + tipAdjust);\n pos.left -= (tipWidthAdjust);\n break;\n default:\n pos.top -= (tooltipEleHeight + tipHeight + tipAdjust);\n pos.left -= (tooltipEleWidth / 2);\n break;\n }\n pos.left += this.offsetX;\n pos.top += this.offsetY;\n return pos;\n };\n Tooltip.prototype.updateTipPosition = function (position) {\n var selEle = selectAll('.' + ARROW_TIP + ',.' + ARROW_TIP_OUTER + ',.' + ARROW_TIP_INNER, this.tooltipEle);\n var removeList = [TIP_BOTTOM, TIP_TOP, TIP_LEFT, TIP_RIGHT];\n removeClass(selEle, removeList);\n this.setTipClass(position);\n addClass(selEle, this.tipClass);\n };\n Tooltip.prototype.adjustArrow = function (target, position, tooltipPositionX, tooltipPositionY) {\n if (this.showTipPointer === false) {\n return;\n }\n this.updateTipPosition(position);\n var leftValue;\n var topValue;\n this.tooltipEle.style.display = 'block';\n var tooltipWidth = this.tooltipEle.clientWidth;\n var tooltipHeight = this.tooltipEle.clientHeight;\n var arrowEle = select('.' + ARROW_TIP, this.tooltipEle);\n var arrowInnerELe = select('.' + ARROW_TIP_INNER, this.tooltipEle);\n var tipWidth = arrowEle.offsetWidth;\n var tipHeight = arrowEle.offsetHeight;\n this.tooltipEle.style.display = '';\n if (this.tipClass === TIP_BOTTOM || this.tipClass === TIP_TOP) {\n if (this.tipClass === TIP_BOTTOM) {\n topValue = '99.9%';\n // Arrow icon aligned -2px height from ArrowOuterTip div\n arrowInnerELe.style.top = '-' + (tipHeight - 2) + 'px';\n }\n else {\n topValue = -(tipHeight - 1) + 'px';\n // Arrow icon aligned -6px height from ArrowOuterTip div\n arrowInnerELe.style.top = '-' + (tipHeight - 6) + 'px';\n }\n if (target) {\n var tipPosExclude = tooltipPositionX !== 'Center' || (tooltipWidth > target.offsetWidth) || this.mouseTrail;\n if ((tipPosExclude && tooltipPositionX === 'Left') || (!tipPosExclude && this.tipPointerPosition === 'End')) {\n leftValue = (tooltipWidth - tipWidth - POINTER_ADJUST) + 'px';\n }\n else if ((tipPosExclude && tooltipPositionX === 'Right') || (!tipPosExclude && this.tipPointerPosition === 'Start')) {\n leftValue = POINTER_ADJUST + 'px';\n }\n else if ((tipPosExclude) && (this.tipPointerPosition === 'End' || this.tipPointerPosition === 'Start')) {\n leftValue = (this.tipPointerPosition === 'End') ? ((target.offsetWidth + ((this.tooltipEle.offsetWidth - target.offsetWidth) / 2)) - (tipWidth / 2)) - POINTER_ADJUST + 'px'\n : ((this.tooltipEle.offsetWidth - target.offsetWidth) / 2) - (tipWidth / 2) + POINTER_ADJUST + 'px';\n }\n else {\n leftValue = ((tooltipWidth / 2) - (tipWidth / 2)) + 'px';\n }\n }\n }\n else {\n if (this.tipClass === TIP_RIGHT) {\n leftValue = '99.9%';\n // Arrow icon aligned -2px left from ArrowOuterTip div\n arrowInnerELe.style.left = '-' + (tipWidth - 2) + 'px';\n }\n else {\n leftValue = -(tipWidth - 1) + 'px';\n // Arrow icon aligned -2px from ArrowOuterTip width\n arrowInnerELe.style.left = (-(tipWidth) + (tipWidth - 2)) + 'px';\n }\n var tipPosExclude = tooltipPositionY !== 'Center' || (tooltipHeight > target.offsetHeight) || this.mouseTrail;\n if ((tipPosExclude && tooltipPositionY === 'Top') || (!tipPosExclude && this.tipPointerPosition === 'End')) {\n topValue = (tooltipHeight - tipHeight - POINTER_ADJUST) + 'px';\n }\n else if ((tipPosExclude && tooltipPositionY === 'Bottom') || (!tipPosExclude && this.tipPointerPosition === 'Start')) {\n topValue = POINTER_ADJUST + 'px';\n }\n else {\n topValue = ((tooltipHeight / 2) - (tipHeight / 2)) + 'px';\n }\n }\n arrowEle.style.top = topValue;\n arrowEle.style.left = leftValue;\n };\n Tooltip.prototype.renderContent = function (target) {\n var tooltipContent = select('.' + CONTENT, this.tooltipEle);\n if (this.cssClass) {\n addClass([this.tooltipEle], this.cssClass.split(' '));\n }\n if (target && !isNullOrUndefined(target.getAttribute('title'))) {\n target.setAttribute('data-content', target.getAttribute('title'));\n target.removeAttribute('title');\n }\n if (!isNullOrUndefined(this.content)) {\n tooltipContent.innerHTML = '';\n if (this.content instanceof HTMLElement) {\n tooltipContent.appendChild(this.content);\n }\n else if (typeof this.content === 'string') {\n if (this.enableHtmlSanitizer) {\n this.setProperties({ content: SanitizeHtmlHelper.sanitize(this.content) }, true);\n }\n var tempFunction = compile(this.content);\n var tempArr = tempFunction({}, this, 'content', this.element.id + 'content', undefined, undefined, tooltipContent);\n if (tempArr) {\n if (this.enableHtmlParse) {\n var nodeList = tempArr.length;\n for (var i = 0; i < nodeList; i++) {\n tooltipContent[append(tempArr, tooltipContent), 'innerHTML'] = this.content;\n }\n }\n else {\n tooltipContent['textContent'] = this.content;\n }\n }\n }\n else {\n var templateFunction = compile(this.content);\n var tempArr = templateFunction({}, this, 'content', this.element.id + 'content', undefined, undefined, tooltipContent);\n if (tempArr) {\n append(tempArr, tooltipContent);\n }\n this.renderReactTemplates();\n }\n }\n else {\n if (target && !isNullOrUndefined(target.getAttribute('data-content'))) {\n tooltipContent.innerHTML = target.getAttribute('data-content');\n }\n }\n };\n Tooltip.prototype.renderCloseIcon = function () {\n if (!this.isSticky) {\n return;\n }\n var tipClose = this.createElement('div', { className: ICON + ' ' + CLOSE });\n this.tooltipEle.appendChild(tipClose);\n EventHandler.add(tipClose, Browser.touchStartEvent, this.onStickyClose, this);\n };\n Tooltip.prototype.addDataTooltipId = function (target, id) {\n attributes(target, { 'data-tooltip-id': id });\n };\n Tooltip.prototype.removeDataTooltipId = function (target) {\n target.removeAttribute('data-tooltip-id');\n };\n Tooltip.prototype.tapHoldHandler = function (evt) {\n clearTimeout(this.autoCloseTimer);\n this.targetHover(evt.originalEvent);\n };\n Tooltip.prototype.touchEndHandler = function (e) {\n var _this = this;\n if (this.isSticky) {\n return;\n }\n var close = function () {\n _this.close();\n };\n this.autoCloseTimer = setTimeout(close, TOUCHEND_HIDE_DELAY);\n };\n Tooltip.prototype.targetClick = function (e) {\n var target;\n if (this.target) {\n target = closest(e.target, this.target);\n }\n else {\n target = this.element;\n }\n if (isNullOrUndefined(target)) {\n return;\n }\n if (target.getAttribute('data-tooltip-id') === null) {\n this.targetHover(e);\n }\n else if (!this.isSticky) {\n this.hideTooltip(this.animation.close, e, target);\n }\n };\n Tooltip.prototype.targetHover = function (e) {\n var target;\n if (this.target) {\n target = closest(e.target, this.target);\n }\n else {\n target = this.element;\n }\n if (isNullOrUndefined(target) || (target.getAttribute('data-tooltip-id') !== null && this.closeDelay === 0)) {\n return;\n }\n var targetList = [].slice.call(selectAll('[data-tooltip-id= \"' + this.ctrlId + '_content\"]', document));\n for (var _i = 0, targetList_1 = targetList; _i < targetList_1.length; _i++) {\n var target_1 = targetList_1[_i];\n this.restoreElement(target_1);\n }\n this.showTooltip(target, this.animation.open, e);\n };\n Tooltip.prototype.mouseMoveBeforeOpen = function (e) {\n this.mouseMoveEvent = e;\n };\n Tooltip.prototype.mouseMoveBeforeRemove = function () {\n if (this.mouseMoveTarget) {\n EventHandler.remove(this.mouseMoveTarget, 'mousemove touchstart', this.mouseMoveBeforeOpen);\n }\n };\n Tooltip.prototype.showTooltip = function (target, showAnimation, e) {\n var _this = this;\n clearTimeout(this.showTimer);\n clearTimeout(this.hideTimer);\n if (this.openDelay && this.mouseTrail) {\n this.mouseMoveBeforeRemove();\n this.mouseMoveTarget = target;\n EventHandler.add(this.mouseMoveTarget, 'mousemove touchstart', this.mouseMoveBeforeOpen, this);\n }\n this.tooltipEventArgs = {\n type: e ? e.type : null, cancel: false, target: target, event: e ? e : null,\n element: this.tooltipEle, isInteracted: !isNullOrUndefined(e)\n };\n var observeCallback = function (beforeRenderArgs) {\n _this.beforeRenderCallback(beforeRenderArgs, target, e, showAnimation);\n };\n this.trigger('beforeRender', this.tooltipEventArgs, observeCallback.bind(this));\n };\n Tooltip.prototype.beforeRenderCallback = function (beforeRenderArgs, target, e, showAnimation) {\n if (beforeRenderArgs.cancel) {\n this.isHidden = true;\n this.clear();\n this.mouseMoveBeforeRemove();\n }\n else {\n this.isHidden = false;\n if (isNullOrUndefined(this.tooltipEle)) {\n this.ctrlId = this.element.getAttribute('id') ?\n getUniqueID(this.element.getAttribute('id')) : getUniqueID('tooltip');\n this.tooltipEle = this.createElement('div', {\n className: TOOLTIP_WRAP + ' ' + POPUP_ROOT + ' ' + POPUP_LIB, attrs: {\n role: 'tooltip', 'aria-hidden': 'false', 'id': this.ctrlId + '_content'\n }, styles: 'width:' +\n formatUnit(this.width) + ';height:' + formatUnit(this.height) + ';position:absolute;'\n });\n if (Object.keys(this.htmlAttributes).length !== 0) {\n for (var attr in this.htmlAttributes) {\n if (attr === \"class\") {\n this.tooltipEle.classList.add(this.htmlAttributes[\"\" + attr]);\n }\n else {\n this.tooltipEle.setAttribute(attr, this.htmlAttributes[\"\" + attr]);\n }\n }\n }\n this.tooltipBeforeRender(target, this);\n this.tooltipAfterRender(target, e, showAnimation, this);\n }\n else {\n if (target) {\n this.adjustArrow(target, this.position, this.tooltipPositionX, this.tooltipPositionY);\n this.addDataTooltipId(target, this.ctrlId + '_content');\n this.renderContent(target);\n PopupAnimation.stop(this.tooltipEle);\n this.reposition(target);\n this.tooltipAfterRender(target, e, showAnimation, this);\n }\n }\n }\n };\n Tooltip.prototype.appendContainer = function (ctrlObj) {\n if (typeof this.container == 'string') {\n if (this.container === 'body') {\n this.containerElement = document.body;\n }\n else {\n this.isBodyContainer = false;\n this.containerElement = select(this.container, document);\n }\n }\n else if (this.container instanceof HTMLElement) {\n this.containerElement = this.container;\n this.isBodyContainer = this.containerElement.tagName === 'BODY';\n }\n if (!this.isBodyContainer) {\n addClass([this.containerElement], POPUP_CONTAINER);\n }\n this.containerElement.appendChild(ctrlObj.tooltipEle);\n };\n Tooltip.prototype.tooltipBeforeRender = function (target, ctrlObj) {\n if (target) {\n if (Browser.isDevice) {\n addClass([ctrlObj.tooltipEle], DEVICE);\n }\n if (ctrlObj.width !== 'auto') {\n ctrlObj.tooltipEle.style.maxWidth = formatUnit(ctrlObj.width);\n }\n ctrlObj.tooltipEle.appendChild(ctrlObj.createElement('div', { className: CONTENT }));\n this.appendContainer(ctrlObj);\n removeClass([ctrlObj.tooltipEle], HIDE_POPUP);\n ctrlObj.addDataTooltipId(target, ctrlObj.ctrlId + '_content');\n ctrlObj.renderContent(target);\n addClass([ctrlObj.tooltipEle], POPUP_OPEN);\n if (ctrlObj.showTipPointer) {\n ctrlObj.renderArrow();\n }\n ctrlObj.renderCloseIcon();\n ctrlObj.renderPopup(target);\n ctrlObj.adjustArrow(target, ctrlObj.position, ctrlObj.tooltipPositionX, ctrlObj.tooltipPositionY);\n PopupAnimation.stop(ctrlObj.tooltipEle);\n ctrlObj.reposition(target);\n }\n };\n Tooltip.prototype.tooltipAfterRender = function (target, e, showAnimation, ctrlObj) {\n if (target) {\n removeClass([ctrlObj.tooltipEle], POPUP_OPEN);\n addClass([ctrlObj.tooltipEle], POPUP_CLOSE);\n ctrlObj.tooltipEventArgs = {\n type: e ? e.type : null, cancel: false, target: target, event: e ? e : null,\n element: ctrlObj.tooltipEle, isInteracted: !isNullOrUndefined(e)\n };\n if (ctrlObj.needTemplateReposition() && !ctrlObj.mouseTrail) {\n ctrlObj.tooltipEle.style.display = 'none';\n }\n var observeCallback = function (observedArgs) {\n ctrlObj.beforeOpenCallback(observedArgs, target, showAnimation, e);\n };\n ctrlObj.trigger('beforeOpen', ctrlObj.tooltipEventArgs, observeCallback.bind(ctrlObj));\n }\n };\n Tooltip.prototype.beforeOpenCallback = function (observedArgs, target, showAnimation, e) {\n var _this = this;\n if (observedArgs.cancel) {\n this.isHidden = true;\n this.clear();\n this.mouseMoveBeforeRemove();\n this.restoreElement(target);\n }\n else {\n var openAnimation_1 = {\n name: showAnimation.effect,\n duration: showAnimation.duration,\n delay: showAnimation.delay,\n timingFunction: 'easeOut'\n };\n if (showAnimation.effect === 'None') {\n openAnimation_1 = undefined;\n }\n if (this.openDelay > 0) {\n var show = function () {\n if (_this.mouseTrail) {\n EventHandler.add(target, 'mousemove touchstart mouseenter', _this.onMouseMove, _this);\n }\n if (_this.popupObj) {\n _this.popupObj.show(openAnimation_1, target);\n if (_this.mouseMoveEvent && _this.mouseTrail) {\n _this.onMouseMove(_this.mouseMoveEvent);\n }\n }\n };\n this.showTimer = setTimeout(show, this.openDelay);\n }\n else {\n if (this.popupObj) {\n this.popupObj.show(openAnimation_1, target);\n }\n }\n }\n if (e) {\n this.wireMouseEvents(e, target);\n }\n };\n Tooltip.prototype.needTemplateReposition = function () {\n // eslint-disable-next-line\n var tooltip = this;\n return !isNullOrUndefined(tooltip.viewContainerRef)\n && typeof tooltip.viewContainerRef !== 'string';\n };\n Tooltip.prototype.checkCollision = function (target, x, y) {\n var elePos = {\n left: x, top: y, position: this.position,\n horizontal: this.tooltipPositionX, vertical: this.tooltipPositionY\n };\n var affectedPos = isCollide(this.tooltipEle, this.checkCollideTarget(), x, y);\n if (affectedPos.length > 0) {\n elePos.horizontal = affectedPos.indexOf('left') >= 0 ? 'Right' : affectedPos.indexOf('right') >= 0 ? 'Left' :\n this.tooltipPositionX;\n elePos.vertical = affectedPos.indexOf('top') >= 0 ? 'Bottom' : affectedPos.indexOf('bottom') >= 0 ? 'Top' :\n this.tooltipPositionY;\n }\n return elePos;\n };\n Tooltip.prototype.calculateElementPosition = function (pos, offsetPos) {\n return [this.isBodyContainer ? pos.left + offsetPos.left :\n (pos.left - this.containerElement.offsetLeft) + offsetPos.left + window.pageXOffset + this.containerElement.scrollLeft,\n this.isBodyContainer ? pos.top + offsetPos.top :\n (pos.top - this.containerElement.offsetTop) + offsetPos.top + window.pageYOffset + this.containerElement.scrollTop];\n };\n Tooltip.prototype.collisionFlipFit = function (target, x, y) {\n var elePos = this.checkCollision(target, x, y);\n var newpos = elePos.position;\n if (this.tooltipPositionY !== elePos.vertical) {\n newpos = ((this.position.indexOf('Bottom') === 0 || this.position.indexOf('Top') === 0) ?\n elePos.vertical + this.tooltipPositionX : this.tooltipPositionX + elePos.vertical);\n }\n if (this.tooltipPositionX !== elePos.horizontal) {\n if (newpos.indexOf('Left') === 0) {\n elePos.vertical = (newpos === 'LeftTop' || newpos === 'LeftCenter') ? 'Top' : 'Bottom';\n newpos = (elePos.vertical + 'Left');\n }\n if (newpos.indexOf('Right') === 0) {\n elePos.vertical = (newpos === 'RightTop' || newpos === 'RightCenter') ? 'Top' : 'Bottom';\n newpos = (elePos.vertical + 'Right');\n }\n elePos.horizontal = this.tooltipPositionX;\n }\n this.tooltipEventArgs = {\n type: null, cancel: false, target: target, event: null,\n element: this.tooltipEle, collidedPosition: newpos\n };\n this.trigger('beforeCollision', this.tooltipEventArgs);\n if (this.tooltipEventArgs.cancel) {\n newpos = this.position;\n }\n else {\n var elePosVertical = elePos.vertical;\n var elePosHorizontal = elePos.horizontal;\n if (elePos.position !== newpos) {\n var pos = calculatePosition(target, elePosHorizontal, elePosVertical, !this.isBodyContainer, this.isBodyContainer ? null : this.containerElement.getBoundingClientRect());\n this.adjustArrow(target, newpos, elePosHorizontal, elePosVertical);\n var offsetPos = this.calculateTooltipOffset(newpos);\n offsetPos.top -= this.getOffSetPosition('TopBottom', newpos, this.offsetY);\n offsetPos.left -= this.getOffSetPosition('RightLeft', newpos, this.offsetX);\n elePos.position = newpos;\n var elePosition = this.calculateElementPosition(pos, offsetPos);\n elePos.left = elePosition[0];\n elePos.top = elePosition[1];\n }\n else {\n this.adjustArrow(target, newpos, elePosHorizontal, elePosVertical);\n }\n }\n var eleOffset = { left: elePos.left, top: elePos.top };\n var left = this.isBodyContainer ?\n fit(this.tooltipEle, this.checkCollideTarget(), { X: true, Y: false }, eleOffset).left : eleOffset.left;\n this.tooltipEle.style.display = 'block';\n if (this.showTipPointer && (newpos.indexOf('Bottom') === 0 || newpos.indexOf('Top') === 0)) {\n var arrowEle = select('.' + ARROW_TIP, this.tooltipEle);\n var arrowleft = parseInt(arrowEle.style.left, 10) - (left - elePos.left);\n if (arrowleft < 0) {\n arrowleft = 0;\n }\n else if ((arrowleft + arrowEle.offsetWidth) > this.tooltipEle.clientWidth) {\n arrowleft = this.tooltipEle.clientWidth - arrowEle.offsetWidth;\n }\n arrowEle.style.left = arrowleft.toString() + 'px';\n }\n this.tooltipEle.style.display = '';\n eleOffset.left = left;\n return eleOffset;\n };\n Tooltip.prototype.getOffSetPosition = function (positionString, newPos, offsetType) {\n return ((positionString.indexOf(this.position.split(/(?=[A-Z])/)[0]) !== -1) &&\n (positionString.indexOf(newPos.split(/(?=[A-Z])/)[0]) !== -1)) ? (2 * offsetType) : 0;\n };\n Tooltip.prototype.checkCollideTarget = function () {\n return !this.windowCollision && this.target ? this.element : null;\n };\n Tooltip.prototype.hideTooltip = function (hideAnimation, e, targetElement) {\n var _this = this;\n if (this.closeDelay > 0) {\n clearTimeout(this.hideTimer);\n clearTimeout(this.showTimer);\n var hide = function () {\n if (_this.closeDelay && _this.tooltipEle && _this.isTooltipOpen) {\n return;\n }\n _this.tooltipHide(hideAnimation, e, targetElement);\n };\n this.hideTimer = setTimeout(hide, this.closeDelay);\n }\n else {\n this.tooltipHide(hideAnimation, e, targetElement);\n }\n };\n Tooltip.prototype.tooltipHide = function (hideAnimation, e, targetElement) {\n var _this = this;\n var target;\n if (e) {\n target = this.target ? (targetElement || e.target) : this.element;\n }\n else {\n target = select('[data-tooltip-id= \"' + this.ctrlId + '_content\"]', document);\n }\n this.tooltipEventArgs = {\n type: e ? e.type : null, cancel: false, target: target, event: e ? e : null,\n element: this.tooltipEle, isInteracted: !isNullOrUndefined(e)\n };\n // this line commented for close the tooltip popup element even the target element destroyed in a page.\n //if (isNullOrUndefined(target)) { return; }\n this.trigger('beforeClose', this.tooltipEventArgs, function (observedArgs) {\n if (!observedArgs.cancel) {\n _this.mouseMoveBeforeRemove();\n _this.popupHide(hideAnimation, target);\n }\n else {\n _this.isHidden = false;\n }\n });\n this.tooltipEventArgs = null;\n };\n Tooltip.prototype.popupHide = function (hideAnimation, target) {\n if (target) {\n this.restoreElement(target);\n }\n this.isHidden = true;\n var closeAnimation = {\n name: hideAnimation.effect,\n duration: hideAnimation.duration,\n delay: hideAnimation.delay,\n timingFunction: 'easeIn'\n };\n if (hideAnimation.effect === 'None') {\n closeAnimation = undefined;\n }\n if (this.popupObj) {\n this.popupObj.hide(closeAnimation);\n }\n };\n Tooltip.prototype.restoreElement = function (target) {\n this.unwireMouseEvents(target);\n if (!isNullOrUndefined(target.getAttribute('data-content'))) {\n target.setAttribute('title', target.getAttribute('data-content'));\n target.removeAttribute('data-content');\n }\n this.removeDataTooltipId(target);\n };\n Tooltip.prototype.clear = function () {\n if (this.tooltipEle) {\n removeClass([this.tooltipEle], POPUP_CLOSE);\n addClass([this.tooltipEle], POPUP_OPEN);\n }\n if (this.isHidden) {\n if (this.popupObj) {\n this.popupObj.destroy();\n }\n if (this.tooltipEle) {\n remove(this.tooltipEle);\n }\n this.tooltipEle = null;\n this.popupObj = null;\n }\n };\n Tooltip.prototype.tooltipHover = function (e) {\n if (this.tooltipEle) {\n this.isTooltipOpen = true;\n }\n };\n Tooltip.prototype.tooltipMouseOut = function (e) {\n this.isTooltipOpen = false;\n this.hideTooltip(this.animation.close, e, this.findTarget());\n };\n Tooltip.prototype.onMouseOut = function (e) {\n var enteredElement = e.relatedTarget;\n // don't close the tooltip only if it is tooltip content element\n if (enteredElement && !this.mouseTrail) {\n var checkForTooltipElement = closest(enteredElement, \".\" + TOOLTIP_WRAP + \".\" + POPUP_LIB + \".\" + POPUP_ROOT);\n if (checkForTooltipElement) {\n EventHandler.add(checkForTooltipElement, 'mouseleave', this.tooltipElementMouseOut, this);\n }\n else {\n this.hideTooltip(this.animation.close, e, this.findTarget());\n if (this.closeDelay === 0) {\n this.clear();\n }\n }\n }\n else {\n this.hideTooltip(this.animation.close, e, this.findTarget());\n this.clear();\n }\n };\n Tooltip.prototype.tooltipElementMouseOut = function (e) {\n this.hideTooltip(this.animation.close, e, this.findTarget());\n EventHandler.remove(this.element, 'mouseleave', this.tooltipElementMouseOut);\n this.clear();\n };\n Tooltip.prototype.onStickyClose = function (e) {\n this.close();\n };\n Tooltip.prototype.onMouseMove = function (event) {\n var eventPageX = 0;\n var eventPageY = 0;\n if (event.type.indexOf('touch') > -1) {\n event.preventDefault();\n eventPageX = event.touches[0].pageX;\n eventPageY = event.touches[0].pageY;\n }\n else {\n eventPageX = event.pageX;\n eventPageY = event.pageY;\n }\n PopupAnimation.stop(this.tooltipEle);\n removeClass([this.tooltipEle], POPUP_CLOSE);\n addClass([this.tooltipEle], POPUP_OPEN);\n this.adjustArrow(event.target, this.position, this.tooltipPositionX, this.tooltipPositionY);\n var pos = this.calculateTooltipOffset(this.position);\n var x = eventPageX + pos.left + this.offsetX;\n var y = eventPageY + pos.top + this.offsetY;\n var elePos = this.checkCollision(event.target, x, y);\n if (this.tooltipPositionX !== elePos.horizontal || this.tooltipPositionY !== elePos.vertical) {\n var newpos = (this.position.indexOf('Bottom') === 0 || this.position.indexOf('Top') === 0) ?\n elePos.vertical + elePos.horizontal : elePos.horizontal + elePos.vertical;\n elePos.position = newpos;\n this.adjustArrow(event.target, elePos.position, elePos.horizontal, elePos.vertical);\n var colpos = this.calculateTooltipOffset(elePos.position);\n elePos.left = eventPageX + colpos.left - this.offsetX;\n elePos.top = eventPageY + colpos.top - this.offsetY;\n }\n this.tooltipEle.style.left = elePos.left + 'px';\n this.tooltipEle.style.top = elePos.top + 'px';\n };\n Tooltip.prototype.keyDown = function (event) {\n if (!isNullOrUndefined(this.targetsList) && !isNullOrUndefined(this.target)) {\n var target = [].slice.call(selectAll(this.target, this.element));\n if (target.length !== this.targetsList.length) {\n this.unwireEvents(this.opensOn);\n this.wireEvents(this.opensOn);\n }\n }\n if (this.tooltipEle && event.keyCode === 27) {\n this.close();\n }\n };\n Tooltip.prototype.touchEnd = function (e) {\n if (this.tooltipEle && closest(e.target, '.' + ROOT) === null && !this.isSticky) {\n this.close();\n }\n };\n Tooltip.prototype.scrollHandler = function (e) {\n if (this.tooltipEle) {\n if (!(closest(e.target, \".\" + TOOLTIP_WRAP + \".\" + POPUP_LIB + \".\" + POPUP_ROOT))) {\n this.close();\n }\n }\n };\n /**\n * Core method that initializes the control rendering.\n *\n * @private\n * @returns {void}\n */\n Tooltip.prototype.render = function () {\n this.initialize();\n this.wireEvents(this.opensOn);\n this.renderComplete();\n };\n /**\n * Initializes the values of private members.\n *\n * @private\n * @returns {void}\n */\n Tooltip.prototype.preRender = function () {\n this.tipClass = TIP_BOTTOM;\n this.tooltipPositionX = 'Center';\n this.tooltipPositionY = 'Top';\n this.isHidden = true;\n };\n /**\n * Binding events to the Tooltip element.\n *\n * @hidden\n * @param {string} trigger - specify the trigger string to the function\n * @returns {void}\n *\n */\n Tooltip.prototype.wireEvents = function (trigger) {\n var triggerList = this.getTriggerList(trigger);\n for (var _i = 0, triggerList_1 = triggerList; _i < triggerList_1.length; _i++) {\n var opensOn = triggerList_1[_i];\n if (opensOn === 'Custom') {\n return;\n }\n if (opensOn === 'Focus') {\n this.wireFocusEvents();\n }\n if (opensOn === 'Click') {\n EventHandler.add(this.element, Browser.touchStartEvent, this.targetClick, this);\n }\n if (opensOn === 'Hover') {\n if (Browser.isDevice) {\n this.touchModule = new Touch(this.element, {\n tapHoldThreshold: TAPHOLD_THRESHOLD,\n tapHold: this.tapHoldHandler.bind(this)\n });\n EventHandler.add(this.element, Browser.touchEndEvent, this.touchEndHandler, this);\n }\n else {\n EventHandler.add(this.element, 'mouseover', this.targetHover, this);\n }\n }\n }\n EventHandler.add(document, 'touchend', this.touchEnd, this);\n EventHandler.add(document, 'scroll wheel', this.scrollHandler, this);\n EventHandler.add(window, 'resize', this.windowResize, this);\n EventHandler.add(document, 'keydown', this.keyDown, this);\n };\n Tooltip.prototype.getTriggerList = function (trigger) {\n if (trigger === 'Auto') {\n trigger = (Browser.isDevice) ? 'Hover' : 'Hover Focus';\n }\n return trigger.split(' ');\n };\n Tooltip.prototype.wireFocusEvents = function () {\n if (!isNullOrUndefined(this.target)) {\n if (this.element.nodeName !== \"BODY\") {\n EventHandler.add(this.element, 'focusin', this.targetHover, this);\n }\n else {\n var targetList = [].slice.call(selectAll(this.target, this.element));\n this.targetsList = targetList;\n for (var _i = 0, targetList_2 = targetList; _i < targetList_2.length; _i++) {\n var target = targetList_2[_i];\n EventHandler.add(target, 'focus', this.targetHover, this);\n }\n }\n }\n else {\n EventHandler.add(this.element, 'focus', this.targetHover, this);\n }\n };\n Tooltip.prototype.wireMouseEvents = function (e, target) {\n if (this.tooltipEle) {\n if (!this.isSticky) {\n if (e.type === 'focus') {\n EventHandler.add(target, 'blur', this.onMouseOut, this);\n }\n if (e.type === 'focusin') {\n EventHandler.add(target, 'focusout', this.onMouseOut, this);\n }\n if (e.type === 'mouseover') {\n EventHandler.add(target, 'mouseleave', this.onMouseOut, this);\n }\n if (this.closeDelay) {\n EventHandler.add(this.tooltipEle, 'mouseenter', this.tooltipHover, this);\n EventHandler.add(this.tooltipEle, 'mouseleave', this.tooltipMouseOut, this);\n }\n }\n if (this.mouseTrail && this.openDelay === 0) {\n EventHandler.add(target, 'mousemove touchstart mouseenter', this.onMouseMove, this);\n }\n }\n };\n /**\n * Unbinding events from the element on widget destroy.\n *\n * @hidden\n *\n * @param {string} trigger - specify the trigger string to the function\n * @returns {void}\n *\n */\n Tooltip.prototype.unwireEvents = function (trigger) {\n var triggerList = this.getTriggerList(trigger);\n for (var _i = 0, triggerList_2 = triggerList; _i < triggerList_2.length; _i++) {\n var opensOn = triggerList_2[_i];\n if (opensOn === 'Custom') {\n return;\n }\n if (opensOn === 'Focus') {\n this.unwireFocusEvents();\n }\n if (opensOn === 'Click') {\n EventHandler.remove(this.element, Browser.touchStartEvent, this.targetClick);\n }\n if (opensOn === 'Hover') {\n if (Browser.isDevice) {\n if (this.touchModule) {\n this.touchModule.destroy();\n }\n EventHandler.remove(this.element, Browser.touchEndEvent, this.touchEndHandler);\n }\n else {\n EventHandler.remove(this.element, 'mouseover', this.targetHover);\n }\n }\n }\n EventHandler.remove(document, 'touchend', this.touchEnd);\n EventHandler.remove(document, 'scroll wheel', this.scrollHandler);\n EventHandler.remove(window, 'resize', this.windowResize);\n EventHandler.remove(document, 'keydown', this.keyDown);\n };\n Tooltip.prototype.unwireFocusEvents = function () {\n if (!isNullOrUndefined(this.target)) {\n if (this.element.nodeName === 'BODY') {\n EventHandler.remove(this.element, 'focusin', this.targetHover);\n }\n else {\n var targetList = [].slice.call(selectAll(this.target, this.element));\n for (var _i = 0, targetList_3 = targetList; _i < targetList_3.length; _i++) {\n var target = targetList_3[_i];\n EventHandler.remove(target, 'focus', this.targetHover);\n }\n }\n }\n else {\n EventHandler.remove(this.element, 'focus', this.targetHover);\n }\n };\n Tooltip.prototype.unwireMouseEvents = function (target) {\n if (!this.isSticky) {\n var triggerList = this.getTriggerList(this.opensOn);\n for (var _i = 0, triggerList_3 = triggerList; _i < triggerList_3.length; _i++) {\n var opensOn = triggerList_3[_i];\n if (opensOn === 'Focus') {\n EventHandler.remove(target, 'blur', this.onMouseOut);\n EventHandler.remove(target, 'focusout', this.onMouseOut);\n }\n if (opensOn === 'Hover' && !Browser.isDevice) {\n EventHandler.remove(target, 'mouseleave', this.onMouseOut);\n }\n }\n if (this.closeDelay) {\n EventHandler.remove(target, 'mouseenter', this.tooltipHover);\n EventHandler.remove(target, 'mouseleave', this.tooltipMouseOut);\n }\n }\n if (this.mouseTrail) {\n EventHandler.remove(target, 'mousemove touchstart mouseenter', this.onMouseMove);\n }\n };\n Tooltip.prototype.findTarget = function () {\n var target = select('[data-tooltip-id= \"' + this.ctrlId + '_content\"]', document);\n return target;\n };\n /**\n * Core method to return the component name.\n *\n * @private\n *\n * @returns {string} - this method returns module name.\n */\n Tooltip.prototype.getModuleName = function () {\n return 'tooltip';\n };\n /**\n * Returns the properties to be maintained in the persisted state.\n *\n * @private\n *\n * @returns {string} - this method returns persisted data.\n */\n Tooltip.prototype.getPersistData = function () {\n return this.addOnPersist([]);\n };\n /**\n * Called internally, if any of the property value changed.\n *\n * @private\n *\n * @param {TooltipModel} newProp - this param gives new property values to the method\n * @param {TooltipModel} oldProp - this param gives old property values to the method\n * @returns {void}\n *\n */\n Tooltip.prototype.onPropertyChanged = function (newProp, oldProp) {\n var targetElement = this.findTarget();\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'width':\n if (this.tooltipEle && targetElement) {\n this.tooltipEle.style.width = this.tooltipEle.style.maxWidth = formatUnit(newProp.width);\n this.reposition(targetElement);\n }\n break;\n case 'height':\n if (this.tooltipEle && targetElement) {\n this.tooltipEle.style.height = formatUnit(newProp.height);\n this.reposition(targetElement);\n }\n break;\n case 'content':\n if (this.tooltipEle) {\n this.renderContent();\n }\n break;\n case 'opensOn':\n this.unwireEvents(oldProp.opensOn);\n this.wireEvents(newProp.opensOn);\n break;\n case 'position':\n this.formatPosition();\n if (this.tooltipEle && targetElement) {\n var arrowInnerELe = select('.' + ARROW_TIP_INNER, this.tooltipEle);\n arrowInnerELe.style.top = arrowInnerELe.style.left = null;\n this.reposition(targetElement);\n }\n break;\n case 'tipPointerPosition':\n if (this.tooltipEle && targetElement) {\n this.reposition(targetElement);\n }\n break;\n case 'offsetX':\n if (this.tooltipEle) {\n var x = newProp.offsetX - oldProp.offsetX;\n this.tooltipEle.style.left = (parseInt(this.tooltipEle.style.left, 10) + (x)).toString() + 'px';\n }\n break;\n case 'offsetY':\n if (this.tooltipEle) {\n var y = newProp.offsetY - oldProp.offsetY;\n this.tooltipEle.style.top = (parseInt(this.tooltipEle.style.top, 10) + (y)).toString() + 'px';\n }\n break;\n case 'cssClass':\n if (this.tooltipEle) {\n if (oldProp.cssClass) {\n removeClass([this.tooltipEle], oldProp.cssClass.split(' '));\n }\n if (newProp.cssClass) {\n addClass([this.tooltipEle], newProp.cssClass.split(' '));\n }\n }\n break;\n case 'enableRtl':\n if (this.tooltipEle) {\n if (this.enableRtl) {\n addClass([this.tooltipEle], RTL);\n }\n else {\n removeClass([this.tooltipEle], RTL);\n }\n }\n break;\n case 'container':\n if (!isNullOrUndefined(this.containerElement)) {\n removeClass([this.containerElement], POPUP_CONTAINER);\n }\n this.container = newProp.container;\n if (this.tooltipEle && targetElement) {\n this.appendContainer(this);\n this.reposition(targetElement);\n }\n }\n }\n };\n /**\n * It is used to show the Tooltip on the specified target with specific animation settings.\n *\n * @param {HTMLElement} element - Target element where the Tooltip is to be displayed. (It is an optional parameter)\n * @param {TooltipAnimationSettings} animation - Sets the specific animation, while showing the Tooltip on the screen. (It is an optional parameter)\n * @returns {void}\n */\n Tooltip.prototype.open = function (element, animation) {\n if (isNullOrUndefined(animation)) {\n animation = this.animation.open;\n }\n if (isNullOrUndefined(element)) {\n element = this.element;\n }\n if (element.style.display === 'none') {\n return;\n }\n this.showTooltip(element, animation);\n };\n /**\n * It is used to hide the Tooltip with specific animation effect.\n *\n * @param {TooltipAnimationSettings} animation - Sets the specific animation when hiding Tooltip from the screen. (It is an optional parameter)\n * @returns {void}\n */\n Tooltip.prototype.close = function (animation) {\n if (!animation) {\n animation = this.animation.close;\n }\n this.hideTooltip(animation);\n };\n /**\n * It is used to refresh the Tooltip content and its position.\n *\n * @param {HTMLElement} target - Target element where the Tooltip content or position needs to be refreshed.\n * @returns {void}\n */\n Tooltip.prototype.refresh = function (target) {\n if (this.tooltipEle) {\n this.renderContent(target);\n }\n if (this.popupObj && target) {\n this.reposition(target);\n }\n };\n /**\n * It is used to destroy the Tooltip component.\n * @method destroy\n * @returns {void}\n * @memberof Tooltip\n */\n Tooltip.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n if (this.tooltipEle) {\n remove(this.tooltipEle);\n }\n if (this.popupObj) {\n this.popupObj.destroy();\n }\n removeClass([this.element], ROOT);\n this.unwireEvents(this.opensOn);\n this.unwireMouseEvents(this.element);\n this.tooltipEle = null;\n this.popupObj = null;\n var currentTarget = selectAll('[data-tooltip-id= \"' + this.ctrlId + '_content\"]', this.element);\n for (var _i = 0, currentTarget_1 = currentTarget; _i < currentTarget_1.length; _i++) {\n var target = currentTarget_1[_i];\n this.restoreElement(target);\n }\n };\n __decorate([\n Property('auto')\n ], Tooltip.prototype, \"width\", void 0);\n __decorate([\n Property('auto')\n ], Tooltip.prototype, \"height\", void 0);\n __decorate([\n Property()\n ], Tooltip.prototype, \"content\", void 0);\n __decorate([\n Property('body')\n ], Tooltip.prototype, \"container\", void 0);\n __decorate([\n Property()\n ], Tooltip.prototype, \"target\", void 0);\n __decorate([\n Property('TopCenter')\n ], Tooltip.prototype, \"position\", void 0);\n __decorate([\n Property(0)\n ], Tooltip.prototype, \"offsetX\", void 0);\n __decorate([\n Property(0)\n ], Tooltip.prototype, \"offsetY\", void 0);\n __decorate([\n Property(true)\n ], Tooltip.prototype, \"showTipPointer\", void 0);\n __decorate([\n Property(true)\n ], Tooltip.prototype, \"enableHtmlParse\", void 0);\n __decorate([\n Property(false)\n ], Tooltip.prototype, \"windowCollision\", void 0);\n __decorate([\n Property('Auto')\n ], Tooltip.prototype, \"tipPointerPosition\", void 0);\n __decorate([\n Property('Auto')\n ], Tooltip.prototype, \"opensOn\", void 0);\n __decorate([\n Property(false)\n ], Tooltip.prototype, \"mouseTrail\", void 0);\n __decorate([\n Property(false)\n ], Tooltip.prototype, \"isSticky\", void 0);\n __decorate([\n Complex({}, Animation)\n ], Tooltip.prototype, \"animation\", void 0);\n __decorate([\n Property(0)\n ], Tooltip.prototype, \"openDelay\", void 0);\n __decorate([\n Property(0)\n ], Tooltip.prototype, \"closeDelay\", void 0);\n __decorate([\n Property()\n ], Tooltip.prototype, \"cssClass\", void 0);\n __decorate([\n Property(false)\n ], Tooltip.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Property('')\n ], Tooltip.prototype, \"htmlAttributes\", void 0);\n __decorate([\n Event()\n ], Tooltip.prototype, \"beforeRender\", void 0);\n __decorate([\n Event()\n ], Tooltip.prototype, \"beforeOpen\", void 0);\n __decorate([\n Event()\n ], Tooltip.prototype, \"afterOpen\", void 0);\n __decorate([\n Event()\n ], Tooltip.prototype, \"beforeClose\", void 0);\n __decorate([\n Event()\n ], Tooltip.prototype, \"afterClose\", void 0);\n __decorate([\n Event()\n ], Tooltip.prototype, \"beforeCollision\", void 0);\n __decorate([\n Event()\n ], Tooltip.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], Tooltip.prototype, \"destroyed\", void 0);\n Tooltip = __decorate([\n NotifyPropertyChanges\n ], Tooltip);\n return Tooltip;\n}(Component));\nexport { Tooltip };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n// eslint-disable-next-line @typescript-eslint/triple-slash-reference\n/// \nimport { Event, remove, addClass, removeClass, detach, getValue, setValue } from '@syncfusion/ej2-base';\nimport { EventHandler, Collection, NotifyPropertyChanges, Property } from '@syncfusion/ej2-base';\nimport { attributes, getUniqueID, getInstance, KeyboardEvents } from '@syncfusion/ej2-base';\nimport { Button } from '@syncfusion/ej2-buttons';\nimport { getModel, Item } from './../common/common';\nimport { DropDownButton } from '../drop-down-button/drop-down-button';\nvar RTL = 'e-rtl';\nvar TAGNAME = 'EJS-SPLITBUTTON';\n/**\n * SplitButton component has primary and secondary button. Primary button is used to select\n * default action and secondary button is used to toggle contextual overlays for displaying list of\n * action items. It can contain both text and images.\n * ```html\n * \n * ```\n * ```typescript\n * \n * ```\n */\nvar SplitButton = /** @class */ (function (_super) {\n __extends(SplitButton, _super);\n /**\n * Constructor for creating the widget\n *\n * @param {SplitButtonModel} options - Specifies the splitbutton model\n * @param {string|HTMLButtonElement} element - Specifies the element\n * @hidden\n */\n function SplitButton(options, element) {\n return _super.call(this, options, element) || this;\n }\n /**\n * Initialize Angular support.\n *\n * @private\n * @returns {void}\n */\n SplitButton.prototype.preRender = function () {\n var ele = this.element;\n if (ele.tagName === TAGNAME) {\n var ejInstance = getValue('ej2_instances', ele);\n var btn = this.createElement('button', { attrs: { 'type': 'button' } });\n var wrapper = this.createElement(TAGNAME, { className: 'e-' + this.getModuleName() + '-wrapper' });\n for (var idx = 0, len = ele.attributes.length; idx < len; idx++) {\n btn.setAttribute(ele.attributes[idx].nodeName, ele.attributes[idx].nodeValue);\n }\n ele.parentNode.insertBefore(wrapper, ele);\n detach(ele);\n ele = btn;\n wrapper.appendChild(ele);\n setValue('ej2_instances', ejInstance, ele);\n this.wrapper = wrapper;\n this.element = ele;\n }\n if (!this.element.id) {\n this.element.id = getUniqueID('e-' + this.getModuleName());\n }\n };\n /**\n * Initialize the Component rendering.\n *\n * @returns {void}\n * @private\n */\n SplitButton.prototype.render = function () {\n this.initWrapper();\n this.createPrimaryButton();\n this.renderControl();\n };\n SplitButton.prototype.renderControl = function () {\n this.createSecondaryButton();\n this.setActiveElem([this.element, this.secondaryBtnObj.element]);\n this.setAria();\n this.wireEvents();\n this.renderComplete();\n };\n /**\n * Adds a new item to the menu. By default, new item appends to the list as the last item,\n * but you can insert based on the text parameter.\n *\n * @param { ItemModel[] } items - Specifies an array of JSON data.\n * @param { string } text - Specifies the text to insert the newly added item in the menu.\n * @returns {void}.\n */\n SplitButton.prototype.addItems = function (items, text) {\n _super.prototype.addItems.call(this, items, text);\n this.secondaryBtnObj.items = this.items;\n };\n /**\n * Removes the items from the menu.\n *\n * @param { string[] } items - Specifies an array of string to remove the items.\n * @param { string } isUniqueId - Set `true` if specified items is a collection of unique id.\n * @returns {void}.\n */\n SplitButton.prototype.removeItems = function (items, isUniqueId) {\n _super.prototype.removeItems.call(this, items, isUniqueId);\n this.secondaryBtnObj.items = this.items;\n };\n SplitButton.prototype.initWrapper = function () {\n if (!this.wrapper) {\n this.wrapper = this.createElement('div', { className: 'e-' + this.getModuleName() + '-wrapper' });\n this.element.parentNode.insertBefore(this.wrapper, this.element);\n }\n this.element.classList.remove('e-' + this.getModuleName());\n if (this.enableRtl) {\n this.wrapper.classList.add(RTL);\n }\n if (this.cssClass) {\n addClass([this.wrapper], this.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n };\n SplitButton.prototype.createPrimaryButton = function () {\n var btnModel = {\n cssClass: this.cssClass,\n enableRtl: this.enableRtl,\n iconCss: this.iconCss,\n iconPosition: this.iconPosition,\n content: this.content,\n disabled: this.disabled\n };\n this.primaryBtnObj = new Button(btnModel);\n this.primaryBtnObj.createElement = this.createElement;\n this.primaryBtnObj.appendTo(this.element);\n this.element.classList.add('e-' + this.getModuleName());\n this.element.type = 'button';\n this.wrapper.appendChild(this.element);\n };\n SplitButton.prototype.createSecondaryButton = function () {\n var _this = this;\n var btnElem = this.createElement('button', {\n className: 'e-icon-btn',\n attrs: { 'tabindex': '-1' },\n id: this.element.id + '_dropdownbtn'\n });\n this.wrapper.appendChild(btnElem);\n var dropDownBtnModel = {\n cssClass: this.cssClass,\n disabled: this.disabled,\n enableRtl: this.enableRtl,\n items: this.items,\n target: this.target,\n createPopupOnClick: this.createPopupOnClick\n };\n dropDownBtnModel.beforeItemRender = function (args) {\n if (_this.createPopupOnClick) {\n _this.secondaryBtnObj.dropDown.relateTo = _this.wrapper;\n _this.dropDown = _this.secondaryBtnObj.dropDown;\n }\n _this.trigger('beforeItemRender', args);\n };\n dropDownBtnModel.open = function (args) {\n _this.trigger('open', args);\n };\n dropDownBtnModel.close = function (args) {\n _this.trigger('close', args);\n };\n dropDownBtnModel.select = function (args) {\n _this.trigger('select', args);\n };\n dropDownBtnModel.beforeOpen = function (args) {\n if (_this.createPopupOnClick && _this.items.length == 0) {\n _this.secondaryBtnObj.dropDown.relateTo = _this.wrapper;\n _this.dropDown = _this.secondaryBtnObj.dropDown;\n }\n var callBackPromise = new Deferred();\n _this.trigger('beforeOpen', args, function (observedArgs) {\n callBackPromise.resolve(observedArgs);\n });\n return callBackPromise;\n };\n dropDownBtnModel.beforeClose = function (args) {\n var callBackPromise = new Deferred();\n _this.trigger('beforeClose', args, function (observedArgs) {\n callBackPromise.resolve(observedArgs);\n });\n return callBackPromise;\n };\n this.secondaryBtnObj = new DropDownButton(dropDownBtnModel);\n this.secondaryBtnObj.createElement = this.createElement;\n this.secondaryBtnObj.appendTo(btnElem);\n if (!this.createPopupOnClick) {\n this.secondaryBtnObj.dropDown.relateTo = this.wrapper;\n this.dropDown = this.secondaryBtnObj.dropDown;\n }\n this.secondaryBtnObj.activeElem = [this.element, this.secondaryBtnObj.element];\n this.secondaryBtnObj.element.querySelector('.e-btn-icon').classList.remove('e-icon-right');\n };\n SplitButton.prototype.setAria = function () {\n attributes(this.element, {\n 'aria-expanded': 'false', 'aria-haspopup': 'true',\n 'aria-label': this.element.textContent + ' splitbutton', 'aria-owns': this.element.id + '_dropdownbtn-popup'\n });\n };\n /**\n * Get component name.\n *\n * @returns {string} - Module Name\n * @private\n */\n SplitButton.prototype.getModuleName = function () {\n return 'split-btn';\n };\n /**\n * To open/close SplitButton popup based on current state of the SplitButton.\n *\n * @returns {void}\n */\n SplitButton.prototype.toggle = function () {\n this.secondaryBtnObj.toggle();\n };\n SplitButton.prototype.destroy = function () {\n var _this = this;\n var classList = [RTL];\n if (this.cssClass) {\n classList = classList.concat(this.cssClass.split(' '));\n }\n if (this.element) {\n var element = document.getElementById(this.element.id);\n if (element && element.parentElement === this.wrapper) {\n if (this.wrapper.tagName === TAGNAME) {\n this.wrapper.innerHTML = '';\n removeClass([this.wrapper], ['e-rtl', 'e-' + this.getModuleName() + '-wrapper']);\n removeClass([this.wrapper], this.cssClass.split(' '));\n }\n else {\n removeClass([this.element], classList);\n ['aria-label', 'aria-haspopup', 'aria-expanded', 'aria-owns', 'type'].forEach(function (key) {\n _this.element.removeAttribute(key);\n });\n this.wrapper.parentNode.insertBefore(this.element, this.wrapper);\n remove(this.wrapper);\n }\n this.unWireEvents();\n }\n }\n this.primaryBtnObj.destroy();\n this.secondaryBtnObj.destroy();\n _super.prototype.destroy.call(this);\n if (!this.element.getAttribute('class')) {\n this.element.removeAttribute('class');\n }\n };\n SplitButton.prototype.wireEvents = function () {\n EventHandler.add(this.element, 'click', this.primaryBtnClickHandler, this);\n new KeyboardEvents(this.element, {\n keyAction: this.btnKeyBoardHandler.bind(this),\n keyConfigs: {\n altdownarrow: 'alt+downarrow',\n enter: 'enter'\n }\n });\n };\n SplitButton.prototype.unWireEvents = function () {\n EventHandler.remove(this.element, 'click', this.primaryBtnClickHandler);\n getInstance(this.element, KeyboardEvents).destroy();\n };\n SplitButton.prototype.primaryBtnClickHandler = function () {\n this.trigger('click', { element: this.element });\n };\n SplitButton.prototype.btnKeyBoardHandler = function (e) {\n switch (e.action) {\n case 'altdownarrow':\n this.clickHandler(e);\n break;\n case 'enter':\n this.clickHandler(e);\n if (!this.getPopUpElement().classList.contains('e-popup-close')) {\n this.element.classList.remove('e-active');\n this.secondaryBtnObj.element.classList.add('e-active');\n }\n else {\n this.secondaryBtnObj.element.classList.remove('e-active');\n }\n break;\n }\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {SplitButtonModel} newProp - Specifies new properties\n * @param {SplitButtonModel} oldProp - Specifies old properties\n * @returns {void}\n */\n SplitButton.prototype.onPropertyChanged = function (newProp, oldProp) {\n var model = ['content', 'iconCss', 'iconPosition', 'cssClass', 'disabled', 'enableRtl'];\n this.primaryBtnObj.setProperties(getModel(newProp, model));\n model = ['beforeOpen', 'beforeItemRender', 'select', 'open',\n 'close', 'cssClass', 'disabled', 'enableRtl', 'createPopupOnClick'];\n if (Object.keys(newProp).indexOf('items') > -1) {\n this.secondaryBtnObj.items = newProp.items;\n this.secondaryBtnObj.dataBind();\n }\n this.secondaryBtnObj.setProperties(getModel(newProp, model));\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'cssClass':\n if (oldProp.cssClass) {\n removeClass([this.wrapper], oldProp.cssClass.split(' '));\n }\n addClass([this.wrapper], newProp.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n break;\n case 'enableRtl':\n if (newProp.enableRtl) {\n addClass([this.wrapper], RTL);\n }\n else {\n removeClass([this.wrapper], RTL);\n }\n break;\n }\n }\n };\n /**\n * Sets the focus to SplitButton\n * its native method\n *\n * @public\n * @returns {void}\n */\n SplitButton.prototype.focusIn = function () {\n this.element.focus();\n };\n __decorate([\n Property('')\n ], SplitButton.prototype, \"content\", void 0);\n __decorate([\n Property('')\n ], SplitButton.prototype, \"cssClass\", void 0);\n __decorate([\n Property(false)\n ], SplitButton.prototype, \"disabled\", void 0);\n __decorate([\n Property('')\n ], SplitButton.prototype, \"iconCss\", void 0);\n __decorate([\n Property('Left')\n ], SplitButton.prototype, \"iconPosition\", void 0);\n __decorate([\n Property(false)\n ], SplitButton.prototype, \"createPopupOnClick\", void 0);\n __decorate([\n Collection([], Item)\n ], SplitButton.prototype, \"items\", void 0);\n __decorate([\n Property('')\n ], SplitButton.prototype, \"target\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"beforeItemRender\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"beforeOpen\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"beforeClose\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"click\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"close\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"open\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"select\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"created\", void 0);\n SplitButton = __decorate([\n NotifyPropertyChanges\n ], SplitButton);\n return SplitButton;\n}(DropDownButton));\nexport { SplitButton };\n/**\n * Deferred is used to handle asynchronous operation.\n */\nvar Deferred = /** @class */ (function () {\n function Deferred() {\n var _this = this;\n /**\n * Promise is an object that represents a value that may not be available yet, but will be resolved at some point in the future.\n */\n this.promise = new Promise(function (resolve, reject) {\n _this.resolve = resolve;\n _this.reject = reject;\n });\n /**\n * Defines the callback function triggers when the Deferred object is rejected.\n */\n this.catch = this.promise.catch.bind(this.promise);\n /**\n * Defines the callback function triggers when the Deferred object is resolved.\n */\n this.then = this.promise.then.bind(this.promise);\n }\n return Deferred;\n}());\nexport { Deferred };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component, EventHandler, Property, Event, Complex, Collection } from '@syncfusion/ej2-base';\nimport { L10n, Internationalization } from '@syncfusion/ej2-base';\nimport { NotifyPropertyChanges, ChildProperty } from '@syncfusion/ej2-base';\nimport { attributes, addClass, removeClass, setStyleAttribute, detach, closest } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined, formatUnit, Browser, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\nimport { Tooltip, getZindexPartial } from '@syncfusion/ej2-popups';\n/**\n * Configures the ticks data of the Slider.\n */\nvar TicksData = /** @class */ (function (_super) {\n __extends(TicksData, _super);\n function TicksData() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('None')\n ], TicksData.prototype, \"placement\", void 0);\n __decorate([\n Property(10)\n ], TicksData.prototype, \"largeStep\", void 0);\n __decorate([\n Property(1)\n ], TicksData.prototype, \"smallStep\", void 0);\n __decorate([\n Property(false)\n ], TicksData.prototype, \"showSmallTicks\", void 0);\n __decorate([\n Property(null)\n ], TicksData.prototype, \"format\", void 0);\n return TicksData;\n}(ChildProperty));\nexport { TicksData };\n/**\n * It illustrates the color track data in slider.\n * {% codeBlock src='slider/colorrange/index.md' %}{% endcodeBlock %}\n */\nvar ColorRangeData = /** @class */ (function (_super) {\n __extends(ColorRangeData, _super);\n function ColorRangeData() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(null)\n ], ColorRangeData.prototype, \"color\", void 0);\n __decorate([\n Property(null)\n ], ColorRangeData.prototype, \"start\", void 0);\n __decorate([\n Property(null)\n ], ColorRangeData.prototype, \"end\", void 0);\n return ColorRangeData;\n}(ChildProperty));\nexport { ColorRangeData };\n/**\n * It illustrates the limit data in slider.\n * {% codeBlock src='slider/limits/index.md' %}{% endcodeBlock %}\n */\nvar LimitData = /** @class */ (function (_super) {\n __extends(LimitData, _super);\n function LimitData() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(false)\n ], LimitData.prototype, \"enabled\", void 0);\n __decorate([\n Property(null)\n ], LimitData.prototype, \"minStart\", void 0);\n __decorate([\n Property(null)\n ], LimitData.prototype, \"minEnd\", void 0);\n __decorate([\n Property(null)\n ], LimitData.prototype, \"maxStart\", void 0);\n __decorate([\n Property(null)\n ], LimitData.prototype, \"maxEnd\", void 0);\n __decorate([\n Property(false)\n ], LimitData.prototype, \"startHandleFixed\", void 0);\n __decorate([\n Property(false)\n ], LimitData.prototype, \"endHandleFixed\", void 0);\n return LimitData;\n}(ChildProperty));\nexport { LimitData };\n/**\n * It illustrates the tooltip data in slider.\n */\nvar TooltipData = /** @class */ (function (_super) {\n __extends(TooltipData, _super);\n function TooltipData() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], TooltipData.prototype, \"cssClass\", void 0);\n __decorate([\n Property('Before')\n ], TooltipData.prototype, \"placement\", void 0);\n __decorate([\n Property('Focus')\n ], TooltipData.prototype, \"showOn\", void 0);\n __decorate([\n Property(false)\n ], TooltipData.prototype, \"isVisible\", void 0);\n __decorate([\n Property(null)\n ], TooltipData.prototype, \"format\", void 0);\n return TooltipData;\n}(ChildProperty));\nexport { TooltipData };\nvar bootstrapTooltipOffset = 6;\nvar bootstrap4TooltipOffset = 3;\nvar classNames = {\n root: 'e-slider',\n rtl: 'e-rtl',\n sliderHiddenInput: 'e-slider-input',\n controlWrapper: 'e-control-wrapper',\n sliderHandle: 'e-handle',\n rangeBar: 'e-range',\n sliderButton: 'e-slider-button',\n firstButton: 'e-first-button',\n secondButton: 'e-second-button',\n scale: 'e-scale',\n tick: 'e-tick',\n large: 'e-large',\n tickValue: 'e-tick-value',\n sliderTooltip: 'e-slider-tooltip',\n sliderHover: 'e-slider-hover',\n sliderFirstHandle: 'e-handle-first',\n sliderSecondHandle: 'e-handle-second',\n sliderDisabled: 'e-disabled',\n sliderContainer: 'e-slider-container',\n horizontalTooltipBefore: 'e-slider-horizontal-before',\n horizontalTooltipAfter: 'e-slider-horizontal-after',\n verticalTooltipBefore: 'e-slider-vertical-before',\n verticalTooltipAfter: 'e-slider-vertical-after',\n materialTooltip: 'e-material-tooltip',\n materialTooltipOpen: 'e-material-tooltip-open',\n materialTooltipActive: 'e-tooltip-active',\n materialSlider: 'e-material-slider',\n sliderTrack: 'e-slider-track',\n sliderHorizantalColor: 'e-slider-horizantal-color',\n sliderVerticalColor: 'e-slider-vertical-color',\n sliderHandleFocused: 'e-handle-focused',\n verticalSlider: 'e-vertical',\n horizontalSlider: 'e-horizontal',\n sliderHandleStart: 'e-handle-start',\n sliderTooltipStart: 'e-material-tooltip-start',\n sliderTabHandle: 'e-tab-handle',\n sliderButtonIcon: 'e-button-icon',\n sliderSmallSize: 'e-small-size',\n sliderTickPosition: 'e-tick-pos',\n sliderFirstTick: 'e-first-tick',\n sliderLastTick: 'e-last-tick',\n sliderButtonClass: 'e-slider-btn',\n sliderTooltipWrapper: 'e-tooltip-wrap',\n sliderTabTrack: 'e-tab-track',\n sliderTabRange: 'e-tab-range',\n sliderActiveHandle: 'e-handle-active',\n sliderMaterialHandle: 'e-material-handle',\n sliderMaterialRange: 'e-material-range',\n sliderMaterialDefault: 'e-material-default',\n materialTooltipShow: 'e-material-tooltip-show',\n materialTooltipHide: 'e-material-tooltip-hide',\n readonly: 'e-read-only',\n limits: 'e-limits',\n limitBarDefault: 'e-limit-bar',\n limitBarFirst: 'e-limit-first',\n limitBarSecond: 'e-limit-second',\n dragHorizontal: 'e-drag-horizontal',\n dragVertical: 'e-drag-vertical'\n};\n/**\n * The Slider component allows the user to select a value or range\n * of values in-between a min and max range, by dragging the handle over the slider bar.\n * ```html\n *
\n * ```\n * ```typescript\n * \n * ```\n */\nvar Slider = /** @class */ (function (_super) {\n __extends(Slider, _super);\n function Slider(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.horDir = 'left';\n _this.verDir = 'bottom';\n _this.transition = {\n handle: 'left .4s cubic-bezier(.25, .8, .25, 1), right .4s cubic-bezier(.25, .8, .25, 1), ' +\n 'top .4s cubic-bezier(.25, .8, .25, 1) , bottom .4s cubic-bezier(.25, .8, .25, 1)',\n rangeBar: 'all .4s cubic-bezier(.25, .8, .25, 1)'\n };\n _this.transitionOnMaterialTooltip = {\n handle: 'left 1ms ease-out, right 1ms ease-out, bottom 1ms ease-out, top 1ms ease-out',\n rangeBar: 'left 1ms ease-out, right 1ms ease-out, bottom 1ms ease-out, width 1ms ease-out, height 1ms ease-out'\n };\n _this.scaleTransform = 'transform .4s cubic-bezier(.25, .8, .25, 1)';\n _this.customAriaText = null;\n _this.drag = true;\n _this.isDragComplete = false;\n _this.initialTooltip = true;\n return _this;\n }\n Slider.prototype.preRender = function () {\n // eslint-disable-next-line\n var localeText = { incrementTitle: 'Increase', decrementTitle: 'Decrease' };\n this.l10n = new L10n('slider', localeText, this.locale);\n this.isElementFocused = false;\n this.tickElementCollection = [];\n this.tooltipFormatInfo = {};\n this.ticksFormatInfo = {};\n this.initCultureInfo();\n this.initCultureFunc();\n this.formChecker();\n };\n Slider.prototype.formChecker = function () {\n var formElement = closest(this.element, 'form');\n if (formElement) {\n this.isForm = true;\n // this condition needs to be checked, if the slider is going to be refreshed by `refresh()`\n // then we need to revert the slider `value` back to `formResetValue` to preserve the initial value\n if (!isNullOrUndefined(this.formResetValue)) {\n this.setProperties({ 'value': this.formResetValue }, true);\n }\n this.formResetValue = this.value;\n if (this.type === 'Range' &&\n (isNullOrUndefined(this.formResetValue) || typeof (this.formResetValue) !== 'object')) {\n this.formResetValue = [parseFloat(formatUnit(this.min)), parseFloat(formatUnit(this.max))];\n }\n else if (isNullOrUndefined(this.formResetValue)) {\n this.formResetValue = parseFloat(formatUnit(this.min));\n }\n this.formElement = formElement;\n }\n else {\n this.isForm = false;\n }\n };\n Slider.prototype.initCultureFunc = function () {\n this.internationalization = new Internationalization(this.locale);\n };\n Slider.prototype.initCultureInfo = function () {\n this.tooltipFormatInfo.format = (!isNullOrUndefined(this.tooltip.format)) ? this.tooltip.format : null;\n this.ticksFormatInfo.format = (!isNullOrUndefined(this.ticks.format)) ? this.ticks.format : null;\n };\n Slider.prototype.formatString = function (value, formatInfo) {\n var formatValue = null;\n var formatString = null;\n if ((value || value === 0)) {\n formatValue = this.formatNumber(value);\n var numberOfDecimals = this.numberOfDecimals(value);\n formatString = this.internationalization.getNumberFormat(formatInfo)(this.makeRoundNumber(value, numberOfDecimals));\n }\n return { elementVal: formatValue, formatString: formatString };\n };\n Slider.prototype.formatNumber = function (value) {\n var numberOfDecimals = this.numberOfDecimals(value);\n return this.internationalization.getNumberFormat({\n maximumFractionDigits: numberOfDecimals,\n minimumFractionDigits: numberOfDecimals, useGrouping: false\n })(value);\n };\n Slider.prototype.numberOfDecimals = function (value) {\n var decimalPart = value.toString().split('.')[1];\n var numberOfDecimals = !decimalPart || !decimalPart.length ? 0 : decimalPart.length;\n return numberOfDecimals;\n };\n Slider.prototype.makeRoundNumber = function (value, precision) {\n var decimals = precision || 0;\n return Number(value.toFixed(decimals));\n };\n Slider.prototype.fractionalToInteger = function (value) {\n value = (this.numberOfDecimals(value) === 0) ? Number(value).toFixed(this.noOfDecimals) : value;\n var tens = 1;\n for (var i = 0; i < this.noOfDecimals; i++) {\n tens *= 10;\n }\n value = Number((value * tens).toFixed(0));\n return value;\n };\n /**\n * To Initialize the control rendering\n *\n * @private\n */\n Slider.prototype.render = function () {\n var _this = this;\n this.initialize();\n this.initRender();\n this.wireEvents();\n this.setZindex();\n this.renderComplete();\n if (this.element.tagName === 'EJS-SLIDER') {\n if (this.getTheme(this.sliderContainer) == 'none') {\n setTimeout(function () {\n _this.refresh();\n }, 0);\n }\n }\n };\n Slider.prototype.initialize = function () {\n addClass([this.element], classNames.root);\n this.setCSSClass();\n };\n Slider.prototype.setElementWidth = function (width) {\n if (!isNullOrUndefined(width)) {\n if (typeof width === 'number') {\n this.sliderContainer.style.width = formatUnit(width);\n }\n else if (typeof width === 'string') {\n this.sliderContainer.style.width = (width.match(/px|%|em/)) ? (width) : (formatUnit(width));\n }\n }\n };\n Slider.prototype.setCSSClass = function (oldCSSClass) {\n if (oldCSSClass) {\n removeClass([this.element], oldCSSClass.split(' '));\n }\n if (this.cssClass) {\n addClass([this.element], this.cssClass.split(' '));\n }\n };\n Slider.prototype.setEnabled = function () {\n if (!this.enabled) {\n addClass([this.sliderContainer], [classNames.sliderDisabled]);\n if (this.tooltip.isVisible && this.tooltipElement && this.tooltip.showOn === 'Always') {\n this.tooltipElement.classList.add(classNames.sliderDisabled);\n }\n this.unwireEvents();\n }\n else {\n removeClass([this.sliderContainer], [classNames.sliderDisabled]);\n if (this.tooltip.isVisible && this.tooltipElement && this.tooltip.showOn === 'Always') {\n this.tooltipElement.classList.remove(classNames.sliderDisabled);\n }\n this.wireEvents();\n }\n };\n Slider.prototype.getTheme = function (container) {\n var theme = window.getComputedStyle(container, ':after').getPropertyValue('content');\n return theme.replace(/['\"]+/g, '');\n };\n /**\n * Initialize the rendering\n *\n * @private\n */\n Slider.prototype.initRender = function () {\n this.sliderContainer = this.createElement('div', { className: classNames.sliderContainer + ' ' + classNames.controlWrapper });\n this.element.parentNode.insertBefore(this.sliderContainer, this.element);\n this.sliderContainer.appendChild(this.element);\n this.sliderTrack = this.createElement('div', { className: classNames.sliderTrack });\n this.element.appendChild(this.sliderTrack);\n this.setElementWidth(this.width);\n this.element.tabIndex = -1;\n this.getThemeInitialization();\n this.setHandler();\n this.createRangeBar();\n if (this.limits.enabled) {\n this.createLimitBar();\n }\n this.setOrientClass();\n this.hiddenInput = (this.createElement('input', {\n attrs: {\n type: 'hidden', value: (isNullOrUndefined(this.value) ? this.min.toString() : this.value.toString()),\n name: this.element.getAttribute('name') || this.element.getAttribute('id') ||\n '_' + (Math.random() * 1000).toFixed(0) + 'slider', class: classNames.sliderHiddenInput\n }\n }));\n this.hiddenInput.tabIndex = -1;\n this.sliderContainer.appendChild(this.hiddenInput);\n if (this.showButtons) {\n this.setButtons();\n }\n this.setEnableRTL();\n if (this.type === 'Range') {\n this.rangeValueUpdate();\n }\n else {\n this.value = isNullOrUndefined(this.value) ? parseFloat(formatUnit(this.min.toString())) : this.value;\n }\n this.previousVal = this.type !== 'Range' ? this.checkHandleValue(parseFloat(formatUnit(this.value.toString()))) :\n [this.checkHandleValue(parseFloat(formatUnit(this.value[0].toString()))),\n this.checkHandleValue(parseFloat(formatUnit(this.value[1].toString())))];\n this.previousChanged = this.previousVal;\n if (!isNullOrUndefined(this.element.hasAttribute('name'))) {\n this.element.removeAttribute('name');\n }\n this.setValue();\n if (this.limits.enabled) {\n this.setLimitBar();\n }\n if (this.ticks.placement !== 'None') {\n this.renderScale();\n }\n if (this.tooltip.isVisible) {\n this.renderTooltip();\n }\n if (!this.enabled) {\n addClass([this.sliderContainer], [classNames.sliderDisabled]);\n }\n else {\n removeClass([this.sliderContainer], [classNames.sliderDisabled]);\n }\n if (this.readonly) {\n addClass([this.sliderContainer], [classNames.readonly]);\n }\n else {\n removeClass([this.sliderContainer], [classNames.readonly]);\n }\n };\n Slider.prototype.getThemeInitialization = function () {\n this.isMaterial = this.getTheme(this.sliderContainer) === 'material'\n || this.getTheme(this.sliderContainer) === 'material-dark';\n this.isBootstrap = this.getTheme(this.sliderContainer) === 'bootstrap'\n || this.getTheme(this.sliderContainer) === 'bootstrap-dark';\n this.isBootstrap4 = this.getTheme(this.sliderContainer) === 'bootstrap4';\n this.isTailwind = this.getTheme(this.sliderContainer) === 'tailwind' || this.getTheme(this.sliderContainer) === 'tailwind-dark';\n this.isBootstrap5 = this.getTheme(this.sliderContainer) === 'bootstrap5';\n this.isFluent = this.getTheme(this.sliderContainer) === 'FluentUI';\n this.isMaterialTooltip = this.isMaterial && this.type !== 'Range' && this.tooltip.isVisible;\n };\n Slider.prototype.createRangeBar = function () {\n if (this.type !== 'Default') {\n this.rangeBar = (this.createElement('div', { attrs: { class: classNames.rangeBar } }));\n this.element.appendChild(this.rangeBar);\n if (this.drag && this.type === 'Range') {\n if (this.orientation === 'Horizontal') {\n this.rangeBar.classList.add(classNames.dragHorizontal);\n }\n else {\n this.rangeBar.classList.add(classNames.dragVertical);\n }\n }\n }\n };\n Slider.prototype.createLimitBar = function () {\n var firstElementClassName = this.type !== 'Range' ? classNames.limitBarDefault :\n classNames.limitBarFirst;\n firstElementClassName += ' ' + classNames.limits;\n this.limitBarFirst = (this.createElement('div', {\n attrs: { class: firstElementClassName }\n }));\n this.element.appendChild(this.limitBarFirst);\n if (this.type === 'Range') {\n this.limitBarSecond = (this.createElement('div', {\n attrs: {\n class: classNames.limitBarSecond + ' ' + classNames.limits\n }\n }));\n this.element.appendChild(this.limitBarSecond);\n }\n };\n Slider.prototype.setOrientClass = function () {\n if (this.orientation !== 'Vertical') {\n this.sliderContainer.classList.remove(classNames.verticalSlider);\n this.sliderContainer.classList.add(classNames.horizontalSlider);\n this.firstHandle.setAttribute('aria-orientation', 'horizontal');\n if (this.type === 'Range') {\n this.secondHandle.setAttribute('aria-orientation', 'horizontal');\n }\n }\n else {\n this.sliderContainer.classList.remove(classNames.horizontalSlider);\n this.sliderContainer.classList.add(classNames.verticalSlider);\n this.firstHandle.setAttribute('aria-orientation', 'vertical');\n if (this.type === 'Range') {\n this.secondHandle.setAttribute('aria-orientation', 'vertical');\n }\n }\n };\n Slider.prototype.setAriaAttributes = function (element) {\n var _this = this;\n var min = this.min;\n var max = this.max;\n if (!isNullOrUndefined(this.customValues) && this.customValues.length > 0) {\n min = this.customValues[0];\n max = this.customValues[this.customValues.length - 1];\n }\n if (this.type !== 'Range') {\n attributes(element, {\n 'aria-valuemin': min.toString(), 'aria-valuemax': max.toString()\n });\n }\n else {\n var range = !isNullOrUndefined(this.customValues) && this.customValues.length > 0 ?\n [[min.toString(), (this.customValues[this.value[1]]).toString()],\n [(this.customValues[this.value[0]]).toString(), max.toString()]] :\n [[min.toString(), this.value[1].toString()], [this.value[0].toString(), max.toString()]];\n range.forEach(function (range, index) {\n var element = index === 0 ? _this.firstHandle : _this.secondHandle;\n if (element) {\n attributes(element, {\n 'aria-valuemin': range[0], 'aria-valuemax': range[1]\n });\n }\n });\n }\n };\n Slider.prototype.createSecondHandle = function () {\n this.secondHandle = this.createElement('div', {\n attrs: {\n class: classNames.sliderHandle, 'role': 'slider', tabIndex: '0', 'aria-label': 'slider'\n }\n });\n this.secondHandle.classList.add(classNames.sliderSecondHandle);\n this.element.appendChild(this.secondHandle);\n };\n Slider.prototype.createFirstHandle = function () {\n this.firstHandle = this.createElement('div', {\n attrs: {\n class: classNames.sliderHandle, 'role': 'slider', tabIndex: '0', 'aria-label': 'slider'\n }\n });\n this.firstHandle.classList.add(classNames.sliderFirstHandle);\n this.element.appendChild(this.firstHandle);\n if (this.isMaterialTooltip) {\n this.materialHandle = this.createElement('div', {\n attrs: {\n class: classNames.sliderHandle + ' ' +\n classNames.sliderMaterialHandle\n }\n });\n this.element.appendChild(this.materialHandle);\n }\n };\n Slider.prototype.wireFirstHandleEvt = function (destroy) {\n if (!destroy) {\n EventHandler.add(this.firstHandle, 'mousedown touchstart', this.handleFocus, this);\n EventHandler.add(this.firstHandle, 'transitionend', this.transitionEnd, this);\n EventHandler.add(this.firstHandle, 'mouseenter touchenter', this.handleOver, this);\n EventHandler.add(this.firstHandle, 'mouseleave touchend', this.handleLeave, this);\n }\n else {\n EventHandler.remove(this.firstHandle, 'mousedown touchstart', this.handleFocus);\n EventHandler.remove(this.firstHandle, 'transitionend', this.transitionEnd);\n EventHandler.remove(this.firstHandle, 'mouseenter touchenter', this.handleOver);\n EventHandler.remove(this.firstHandle, 'mouseleave touchend', this.handleLeave);\n }\n };\n Slider.prototype.wireSecondHandleEvt = function (destroy) {\n if (!destroy) {\n EventHandler.add(this.secondHandle, 'mousedown touchstart', this.handleFocus, this);\n EventHandler.add(this.secondHandle, 'transitionend', this.transitionEnd, this);\n EventHandler.add(this.secondHandle, 'mouseenter touchenter', this.handleOver, this);\n EventHandler.add(this.secondHandle, 'mouseleave touchend', this.handleLeave, this);\n }\n else {\n EventHandler.remove(this.secondHandle, 'mousedown touchstart', this.handleFocus);\n EventHandler.remove(this.secondHandle, 'transitionend', this.transitionEnd);\n EventHandler.remove(this.secondHandle, 'mouseenter touchenter', this.handleOver);\n EventHandler.remove(this.secondHandle, 'mouseleave touchend', this.handleLeave);\n }\n };\n Slider.prototype.handleStart = function () {\n if (this.type !== 'Range') {\n this.firstHandle.classList[this.handlePos1 === 0 ? 'add' : 'remove'](classNames.sliderHandleStart);\n if (this.isMaterialTooltip) {\n this.materialHandle.classList[this.handlePos1 === 0 ? 'add' : 'remove'](classNames.sliderHandleStart);\n if (this.tooltipElement) {\n this.tooltipElement.classList[this.handlePos1 === 0 ? 'add' : 'remove'](classNames.sliderTooltipStart);\n }\n }\n }\n };\n Slider.prototype.transitionEnd = function (e) {\n if (e.propertyName !== 'transform') {\n this.handleStart();\n if (!this.enableAnimation) {\n this.getHandle().style.transition = 'none';\n }\n if (this.type !== 'Default') {\n this.rangeBar.style.transition = 'none';\n }\n if (this.isMaterial && this.tooltip.isVisible && this.type === 'Default') {\n this.tooltipElement.style.transition = this.transition.handle;\n }\n this.tooltipToggle(this.getHandle());\n this.closeTooltip();\n }\n };\n Slider.prototype.handleFocusOut = function () {\n if (this.firstHandle.classList.contains(classNames.sliderHandleFocused)) {\n this.firstHandle.classList.remove(classNames.sliderHandleFocused);\n }\n if (this.type === 'Range') {\n if (this.secondHandle.classList.contains(classNames.sliderHandleFocused)) {\n this.secondHandle.classList.remove(classNames.sliderHandleFocused);\n }\n }\n };\n Slider.prototype.handleFocus = function (e) {\n this.focusSliderElement();\n this.sliderBarClick(e);\n if (e.currentTarget === this.firstHandle) {\n this.firstHandle.classList.add(classNames.sliderHandleFocused);\n this.firstHandle.classList.add(classNames.sliderTabHandle);\n }\n else {\n this.secondHandle.classList.add(classNames.sliderHandleFocused);\n this.secondHandle.classList.add(classNames.sliderTabHandle);\n }\n EventHandler.add(document, 'mousemove touchmove', this.sliderBarMove, this);\n EventHandler.add(document, 'mouseup touchend', this.sliderBarUp, this);\n };\n Slider.prototype.handleOver = function (e) {\n if (this.tooltip.isVisible && this.tooltip.showOn === 'Hover') {\n this.tooltipToggle(e.currentTarget);\n }\n if (this.type === 'Default') {\n this.tooltipToggle(this.getHandle());\n }\n };\n Slider.prototype.handleLeave = function (e) {\n if (this.tooltip.isVisible && this.tooltip.showOn === 'Hover' &&\n !e.currentTarget.classList.contains(classNames.sliderHandleFocused) &&\n !e.currentTarget.classList.contains(classNames.sliderTabHandle)) {\n this.closeTooltip();\n }\n };\n Slider.prototype.setHandler = function () {\n if (this.min > this.max) {\n this.min = this.max;\n }\n this.createFirstHandle();\n if (this.type === 'Range') {\n this.createSecondHandle();\n }\n };\n Slider.prototype.setEnableRTL = function () {\n this.enableRtl && this.orientation !== 'Vertical' ? addClass([this.sliderContainer], classNames.rtl) :\n removeClass([this.sliderContainer], classNames.rtl);\n var preDir = (this.orientation !== 'Vertical') ? this.horDir : this.verDir;\n if (this.enableRtl) {\n this.horDir = 'right';\n this.verDir = 'bottom';\n }\n else {\n this.horDir = 'left';\n this.verDir = 'bottom';\n }\n var currDir = (this.orientation !== 'Vertical') ? this.horDir : this.verDir;\n if (preDir !== currDir) {\n if (this.orientation === 'Horizontal') {\n setStyleAttribute(this.firstHandle, { 'right': '', 'left': 'auto' });\n if (this.type === 'Range') {\n setStyleAttribute(this.secondHandle, { 'top': '', 'left': 'auto' });\n }\n }\n }\n this.setBarColor();\n };\n Slider.prototype.tooltipValue = function () {\n var _this = this;\n var text;\n var args = {\n value: this.value,\n text: ''\n };\n if (this.initialTooltip) {\n this.initialTooltip = false;\n this.setTooltipContent();\n args.text = text = this.tooltipObj.content;\n this.trigger('tooltipChange', args, function (observedArgs) {\n _this.addTooltipClass(observedArgs.text);\n if (text !== observedArgs.text) {\n _this.customAriaText = observedArgs.text;\n _this.tooltipObj.content = observedArgs.text;\n _this.setAriaAttrValue(_this.firstHandle);\n if (_this.type === 'Range') {\n _this.setAriaAttrValue(_this.secondHandle);\n }\n }\n });\n if (this.isMaterialTooltip) {\n this.setPreviousVal('change', this.value);\n }\n }\n };\n Slider.prototype.setTooltipContent = function () {\n var content;\n content = this.formatContent(this.tooltipFormatInfo, false);\n this.tooltipObj.content = content;\n };\n Slider.prototype.formatContent = function (formatInfo, ariaContent) {\n var content = '';\n var handle1 = this.handleVal1;\n var handle2 = this.handleVal2;\n if (!isNullOrUndefined(this.customValues) && this.customValues.length > 0) {\n handle1 = this.customValues[this.handleVal1];\n handle2 = this.customValues[this.handleVal2];\n }\n if (!ariaContent) {\n if (this.type === 'Range') {\n if (this.enableRtl && this.orientation !== 'Vertical') {\n content = (!isNullOrUndefined(formatInfo.format)) ? (this.formatString(handle2, formatInfo)\n .formatString + ' - ' + this.formatString(handle1, formatInfo).formatString) :\n (handle2.toString() + ' - ' + handle1.toString());\n }\n else {\n content = (!isNullOrUndefined(formatInfo.format)) ? (this.formatString(handle1, formatInfo)\n .formatString + ' - ' + this.formatString(handle2, formatInfo).formatString) :\n (handle1.toString() + ' - ' + handle2.toString());\n }\n }\n else {\n if (!isNullOrUndefined(handle1)) {\n content = (!isNullOrUndefined(formatInfo.format)) ?\n this.formatString(handle1, formatInfo).formatString : handle1.toString();\n }\n }\n return content;\n }\n else {\n if (this.type === 'Range') {\n if (this.enableRtl && this.orientation !== 'Vertical') {\n content = (!isNullOrUndefined(this.tooltip) && !isNullOrUndefined(this.tooltip.format)) ?\n (this.formatString(handle2, formatInfo).elementVal + ' - ' +\n this.formatString(handle1, formatInfo).elementVal) :\n (handle2.toString() + ' - ' + handle1.toString());\n }\n else {\n content = (!isNullOrUndefined(this.tooltip) && !isNullOrUndefined(this.tooltip.format)) ?\n (this.formatString(handle1, formatInfo).elementVal + ' - ' +\n this.formatString(handle2, formatInfo).elementVal) :\n (handle1.toString() + ' - ' + handle2.toString());\n }\n }\n else {\n if (!isNullOrUndefined(handle1)) {\n content = (!isNullOrUndefined(this.tooltip) && !isNullOrUndefined(this.tooltip.format)) ?\n this.formatString(handle1, formatInfo).elementVal : handle1.toString();\n }\n }\n return content;\n }\n };\n Slider.prototype.addTooltipClass = function (content) {\n if (this.isMaterialTooltip) {\n var count = content.toString().length;\n if (!this.tooltipElement) {\n var cssClass = count > 4 ? classNames.sliderMaterialRange : classNames.sliderMaterialDefault;\n this.tooltipObj.cssClass = classNames.sliderTooltip + ' ' + cssClass;\n }\n else {\n var cssClass = count > 4 ?\n { oldCss: classNames.sliderMaterialDefault, newCss: classNames.sliderMaterialRange } :\n { oldCss: classNames.sliderMaterialRange, newCss: classNames.sliderMaterialDefault };\n this.tooltipElement.classList.remove(cssClass.oldCss);\n if (!this.tooltipElement.classList.contains(cssClass.newCss)) {\n this.tooltipElement.classList.add(cssClass.newCss);\n this.tooltipElement.style.transform = count > 4 ? 'scale(1)' :\n this.getTooltipTransformProperties(this.previousTooltipClass).rotate;\n }\n }\n }\n };\n Slider.prototype.tooltipPlacement = function () {\n return this.orientation === 'Horizontal' ? (this.tooltip.placement === 'Before' ? 'TopCenter' : 'BottomCenter') :\n (this.tooltip.placement === 'Before' ? 'LeftCenter' : 'RightCenter');\n };\n Slider.prototype.tooltipBeforeOpen = function (args) {\n this.tooltipElement = args.element;\n if (this.tooltip.cssClass) {\n addClass([this.tooltipElement], this.tooltip.cssClass.split(' ').filter(function (css) { return css; }));\n }\n args.target.removeAttribute('aria-describedby');\n if (this.isMaterialTooltip) {\n this.tooltipElement.firstElementChild.classList.add(classNames.materialTooltipHide);\n this.handleStart();\n this.setTooltipTransform();\n }\n };\n Slider.prototype.tooltipCollision = function (position) {\n if (this.isBootstrap || this.isBootstrap4 || (this.isMaterial && !this.isMaterialTooltip)) {\n var tooltipOffsetValue = this.isBootstrap4 ? bootstrap4TooltipOffset : bootstrapTooltipOffset;\n switch (position) {\n case 'TopCenter':\n this.tooltipObj.setProperties({ 'offsetY': -(tooltipOffsetValue) }, false);\n break;\n case 'BottomCenter':\n this.tooltipObj.setProperties({ 'offsetY': tooltipOffsetValue }, false);\n break;\n case 'LeftCenter':\n this.tooltipObj.setProperties({ 'offsetX': -(tooltipOffsetValue) }, false);\n break;\n case 'RightCenter':\n this.tooltipObj.setProperties({ 'offsetX': tooltipOffsetValue }, false);\n break;\n }\n }\n };\n Slider.prototype.materialTooltipEventCallBack = function (event) {\n this.sliderBarClick(event);\n EventHandler.add(document, 'mousemove touchmove', this.sliderBarMove, this);\n EventHandler.add(document, 'mouseup touchend', this.sliderBarUp, this);\n };\n Slider.prototype.wireMaterialTooltipEvent = function (destroy) {\n if (this.isMaterialTooltip) {\n if (!destroy) {\n EventHandler.add(this.tooltipElement, 'mousedown touchstart', this.materialTooltipEventCallBack, this);\n }\n else {\n EventHandler.remove(this.tooltipElement, 'mousedown touchstart', this.materialTooltipEventCallBack);\n }\n }\n };\n Slider.prototype.tooltipPositionCalculation = function (position) {\n var cssClass;\n switch (position) {\n case 'TopCenter':\n cssClass = classNames.horizontalTooltipBefore;\n break;\n case 'BottomCenter':\n cssClass = classNames.horizontalTooltipAfter;\n break;\n case 'LeftCenter':\n cssClass = classNames.verticalTooltipBefore;\n break;\n case 'RightCenter':\n cssClass = classNames.verticalTooltipAfter;\n break;\n }\n return cssClass;\n };\n Slider.prototype.getTooltipTransformProperties = function (className) {\n var transformProperties;\n if (this.tooltipElement) {\n var position = this.orientation === 'Horizontal' ?\n ((this.tooltipElement.clientHeight + 14) - (this.tooltipElement.clientHeight / 2)) :\n ((this.tooltipElement.clientWidth + 14) - (this.tooltipElement.clientWidth / 2));\n transformProperties = this.orientation === 'Horizontal' ?\n (className === classNames.horizontalTooltipBefore ? { rotate: 'rotate(45deg)', translate: \"translateY(\" + position + \"px)\" } :\n { rotate: 'rotate(225deg)', translate: \"translateY(\" + -(position) + \"px)\" }) :\n (className === classNames.verticalTooltipBefore ? { rotate: 'rotate(-45deg)', translate: \"translateX(\" + position + \"px)\" } :\n { rotate: 'rotate(-225deg)', translate: \"translateX(\" + (-position) + \"px)\" });\n }\n return transformProperties;\n };\n Slider.prototype.openMaterialTooltip = function () {\n var _this = this;\n if (this.isMaterialTooltip) {\n this.refreshTooltip(this.firstHandle);\n var tooltipContentElement = this.tooltipElement.firstElementChild;\n tooltipContentElement.classList.remove(classNames.materialTooltipHide);\n tooltipContentElement.classList.add(classNames.materialTooltipShow);\n this.firstHandle.style.cursor = 'default';\n this.tooltipElement.style.transition = this.scaleTransform;\n this.tooltipElement.classList.add(classNames.materialTooltipOpen);\n this.materialHandle.style.transform = 'scale(0)';\n if (tooltipContentElement.innerText.length > 4) {\n this.tooltipElement.style.transform = 'scale(1)';\n }\n else {\n this.tooltipElement.style.transform = this.getTooltipTransformProperties(this.previousTooltipClass).rotate;\n }\n if (this.type === 'Default') {\n setTimeout(function () { _this.tooltipElement.style.transition = _this.transition.handle; }, 2500);\n }\n else {\n setTimeout(function () { _this.tooltipElement.style.transition = 'none'; }, 2500);\n }\n }\n };\n Slider.prototype.closeMaterialTooltip = function () {\n var _this = this;\n if (this.isMaterialTooltip) {\n var tooltipContentElement = this.tooltipElement.firstElementChild;\n this.tooltipElement.style.transition = this.scaleTransform;\n tooltipContentElement.classList.remove(classNames.materialTooltipShow);\n tooltipContentElement.classList.add(classNames.materialTooltipHide);\n this.firstHandle.style.cursor = '-webkit-grab';\n this.firstHandle.style.cursor = 'grab';\n if (this.materialHandle) {\n this.materialHandle.style.transform = 'scale(1)';\n }\n this.tooltipElement.classList.remove(classNames.materialTooltipOpen);\n this.setTooltipTransform();\n this.tooltipTarget = undefined;\n setTimeout(function () { _this.tooltipElement.style.transition = 'none'; }, 2500);\n }\n };\n Slider.prototype.checkTooltipPosition = function (args) {\n var tooltipClass = this.tooltipPositionCalculation(args.collidedPosition);\n if (this.tooltipCollidedPosition === undefined ||\n this.tooltipCollidedPosition !== args.collidedPosition || !args.element.classList.contains(tooltipClass)) {\n if (this.isMaterialTooltip) {\n if (tooltipClass !== undefined) {\n args.element.classList.remove(this.previousTooltipClass);\n args.element.classList.add(tooltipClass);\n this.previousTooltipClass = tooltipClass;\n }\n if (args.element.style.transform && args.element.classList.contains(classNames.materialTooltipOpen) &&\n args.element.firstElementChild.innerText.length <= 4) {\n args.element.style.transform = this.getTooltipTransformProperties(this.previousTooltipClass).rotate;\n }\n }\n this.tooltipCollidedPosition = args.collidedPosition;\n }\n if (this.isMaterialTooltip && this.tooltipElement && this.tooltipElement.style.transform.indexOf('translate') !== -1) {\n this.setTooltipTransform();\n }\n };\n Slider.prototype.setTooltipTransform = function () {\n var transformProperties = this.getTooltipTransformProperties(this.previousTooltipClass);\n if (this.tooltipElement.firstElementChild.innerText.length > 4) {\n this.tooltipElement.style.transform = transformProperties.translate + \" scale(0.01)\";\n }\n else {\n this.tooltipElement.style.transform = transformProperties.translate + \" \" + transformProperties.rotate + \" scale(0.01)\";\n }\n };\n Slider.prototype.renderTooltip = function () {\n this.tooltipObj = new Tooltip({\n showTipPointer: this.isBootstrap || this.isMaterial || this.isBootstrap4 || this.isTailwind || this.isBootstrap5 || this.isFluent,\n cssClass: classNames.sliderTooltip,\n height: this.isMaterial ? 30 : 'auto',\n animation: { open: { effect: 'None' }, close: { effect: 'FadeOut', duration: 500 } },\n opensOn: 'Custom',\n beforeOpen: this.tooltipBeforeOpen.bind(this),\n beforeCollision: this.checkTooltipPosition.bind(this),\n beforeClose: this.tooltipBeforeClose.bind(this),\n enableHtmlSanitizer: this.enableHtmlSanitizer\n });\n this.tooltipObj.appendTo(this.firstHandle);\n this.initializeTooltipProps();\n };\n Slider.prototype.initializeTooltipProps = function () {\n var tooltipShowOn = (this.tooltip.showOn === 'Auto' ? 'Hover' : this.tooltip.showOn);\n this.setProperties({ tooltip: { showOn: tooltipShowOn } }, true);\n this.tooltipObj.position = this.tooltipPlacement();\n this.tooltipCollision(this.tooltipObj.position);\n [this.firstHandle, this.rangeBar, this.secondHandle].forEach(function (handle) {\n if (!isNullOrUndefined(handle)) {\n handle.style.transition = 'none';\n }\n });\n if (this.isMaterialTooltip) {\n this.sliderContainer.classList.add(classNames.materialSlider);\n this.tooltipValue();\n this.tooltipObj.animation.close.effect = 'None';\n this.tooltipObj.open(this.firstHandle);\n }\n };\n Slider.prototype.tooltipBeforeClose = function () {\n this.tooltipElement = undefined;\n this.tooltipCollidedPosition = undefined;\n };\n Slider.prototype.setButtons = function () {\n this.firstBtn = this.createElement('div', { className: classNames.sliderButton + ' ' + classNames.firstButton });\n this.firstBtn.appendChild(this.createElement('span', { className: classNames.sliderButtonIcon }));\n if (this.isTailwind) {\n this.firstBtn.querySelector('span').classList.add('e-icons');\n }\n this.firstBtn.tabIndex = -1;\n this.secondBtn = this.createElement('div', { className: classNames.sliderButton + ' ' + classNames.secondButton });\n this.secondBtn.appendChild(this.createElement('span', { className: classNames.sliderButtonIcon }));\n if (this.isTailwind) {\n this.secondBtn.querySelector('span').classList.add('e-icons');\n }\n this.secondBtn.tabIndex = -1;\n this.sliderContainer.classList.add(classNames.sliderButtonClass);\n this.sliderContainer.appendChild(this.firstBtn);\n this.sliderContainer.appendChild(this.secondBtn);\n this.sliderContainer.appendChild(this.element);\n this.buttonTitle();\n };\n Slider.prototype.buttonTitle = function () {\n var enabledRTL = this.enableRtl && this.orientation !== 'Vertical';\n this.l10n.setLocale(this.locale);\n var decrementTitle = this.l10n.getConstant('decrementTitle');\n var incrementTitle = this.l10n.getConstant('incrementTitle');\n attributes(enabledRTL ? this.secondBtn : this.firstBtn, { 'aria-label': decrementTitle, title: decrementTitle });\n attributes(enabledRTL ? this.firstBtn : this.secondBtn, { 'aria-label': incrementTitle, title: incrementTitle });\n };\n Slider.prototype.buttonFocusOut = function () {\n if (this.isMaterial) {\n this.getHandle().classList.remove('e-large-thumb-size');\n }\n };\n Slider.prototype.repeatButton = function (args) {\n var hVal = this.handleValueUpdate();\n var enabledRTL = this.enableRtl && this.orientation !== 'Vertical';\n var value;\n if (args.target.parentElement.classList.contains(classNames.firstButton)\n || args.target.classList.contains(classNames.firstButton)) {\n enabledRTL ? (value = this.add(hVal, parseFloat(this.step.toString()), true)) :\n (value = this.add(hVal, parseFloat(this.step.toString()), false));\n }\n else if (args.target.parentElement.classList.contains(classNames.secondButton)\n || (args.target.classList.contains(classNames.secondButton))) {\n enabledRTL ? (value = this.add(hVal, parseFloat(this.step.toString()), false)) :\n (value = this.add(hVal, parseFloat(this.step.toString()), true));\n }\n if (this.limits.enabled) {\n value = this.getLimitCorrectedValues(value);\n }\n if (value >= this.min && value <= this.max) {\n this.changeHandleValue(value);\n this.tooltipToggle(this.getHandle());\n }\n };\n Slider.prototype.repeatHandlerMouse = function (args) {\n args.preventDefault();\n if (args.type === ('mousedown') || args.type === ('touchstart')) {\n this.buttonClick(args);\n this.repeatInterval = setInterval(this.repeatButton.bind(this), 180, args);\n }\n };\n Slider.prototype.materialChange = function () {\n if (!this.getHandle().classList.contains('e-large-thumb-size')) {\n this.getHandle().classList.add('e-large-thumb-size');\n }\n };\n Slider.prototype.focusHandle = function () {\n if (!this.getHandle().classList.contains(classNames.sliderTabHandle)) {\n this.getHandle().classList.add(classNames.sliderTabHandle);\n }\n };\n Slider.prototype.repeatHandlerUp = function (e) {\n this.changeEvent('changed', e);\n this.closeTooltip();\n clearInterval(this.repeatInterval);\n this.getHandle().focus();\n };\n Slider.prototype.customTickCounter = function (bigNum) {\n var tickCount = 4;\n if (!isNullOrUndefined(this.customValues) && this.customValues.length > 0) {\n if (bigNum > 4) {\n tickCount = 3;\n }\n if (bigNum > 7) {\n tickCount = 2;\n }\n if (bigNum > 14) {\n tickCount = 1;\n }\n if (bigNum > 28) {\n tickCount = 0;\n }\n }\n return tickCount;\n };\n // tslint:disable-next-line:max-func-body-length\n Slider.prototype.renderScale = function () {\n var liElementPosition = 0;\n var orien = this.orientation === 'Vertical' ? 'v' : 'h';\n var spanText;\n this.noOfDecimals = this.numberOfDecimals(this.step);\n this.ul = this.createElement('ul', {\n className: classNames.scale + ' ' + 'e-' + orien + '-scale ' + classNames.tick + '-' + this.ticks.placement.toLowerCase(),\n attrs: { role: 'presentation', tabIndex: '-1', 'aria-hidden': 'true' }\n });\n this.ul.style.zIndex = '-1';\n if (Browser.isAndroid && orien === 'h') {\n this.ul.classList.add(classNames.sliderTickPosition);\n }\n var smallStep = this.ticks.smallStep;\n if (!this.ticks.showSmallTicks) {\n this.ticks.largeStep > 0 ? (smallStep = this.ticks.largeStep) :\n (smallStep = (parseFloat(formatUnit(this.max))) - (parseFloat(formatUnit(this.min))));\n }\n else if (smallStep <= 0) {\n smallStep = parseFloat(formatUnit(this.step));\n }\n var min = this.fractionalToInteger(this.min);\n var max = this.fractionalToInteger(this.max);\n var steps = this.fractionalToInteger(smallStep);\n var bigNum = !isNullOrUndefined(this.customValues) && this.customValues.length > 0 && this.customValues.length - 1;\n var customStep = this.customTickCounter(bigNum);\n var count = !isNullOrUndefined(this.customValues) && this.customValues.length > 0 ?\n (bigNum * customStep) + bigNum : Math.abs((max - min) / steps);\n this.element.appendChild(this.ul);\n var li;\n var start = parseFloat(this.min.toString());\n if (orien === 'v') {\n start = parseFloat(this.max.toString());\n }\n var left = 0;\n var islargeTick;\n var tickWidth = 100 / count;\n if (tickWidth === Infinity) {\n tickWidth = 5;\n }\n for (var i = 0, y = !isNullOrUndefined(this.customValues) && this.customValues.length > 0 ?\n this.customValues.length - 1 : 0, k = 0; i <= count; i++) {\n li = (this.createElement('li', {\n attrs: {\n class: classNames.tick, role: 'presentation', tabIndex: '-1',\n 'aria-hidden': 'true'\n }\n }));\n if (!isNullOrUndefined(this.customValues) && this.customValues.length > 0) {\n islargeTick = i % (customStep + 1) === 0;\n if (islargeTick) {\n if (orien === 'h') {\n start = this.customValues[k];\n k++;\n }\n else {\n start = this.customValues[y];\n y--;\n }\n li.setAttribute('title', start.toString());\n }\n }\n else {\n li.setAttribute('title', start.toString());\n if (this.numberOfDecimals(this.max) === 0 && this.numberOfDecimals(this.min) === 0 &&\n this.numberOfDecimals(this.step) === 0) {\n if (orien === 'h') {\n islargeTick = ((start - parseFloat(this.min.toString())) % this.ticks.largeStep === 0) ? true : false;\n }\n else {\n islargeTick = (Math.abs(start - parseFloat(this.max.toString())) % this.ticks.largeStep === 0) ? true : false;\n }\n }\n else {\n var largestep = this.fractionalToInteger(this.ticks.largeStep);\n var startValue = this.fractionalToInteger(start);\n if (orien === 'h') {\n islargeTick = ((startValue - min) % largestep === 0) ? true : false;\n }\n else {\n islargeTick = (Math.abs(startValue - parseFloat(max.toString())) % largestep === 0) ? true : false;\n }\n }\n }\n if (islargeTick) {\n li.classList.add(classNames.large);\n }\n (orien === 'h') ? (li.style.width = tickWidth + '%') : (li.style.height = tickWidth + '%');\n var repeat = islargeTick ? (this.ticks.placement === 'Both' ? 2 : 1) : 0;\n if (islargeTick) {\n for (var j = 0; j < repeat; j++) {\n this.createTick(li, start, tickWidth);\n }\n }\n else if (isNullOrUndefined(this.customValues)) {\n this.formatTicksValue(li, start);\n }\n this.ul.appendChild(li);\n this.tickElementCollection.push(li);\n var decimalPoints = void 0;\n if (isNullOrUndefined(this.customValues)) {\n if (this.numberOfDecimals(smallStep) > this.numberOfDecimals(start)) {\n decimalPoints = this.numberOfDecimals(smallStep);\n }\n else {\n decimalPoints = this.numberOfDecimals(start);\n }\n if (orien === 'h') {\n start = this.makeRoundNumber(start + smallStep, decimalPoints);\n }\n else {\n start = this.makeRoundNumber(start - smallStep, decimalPoints);\n }\n left = this.makeRoundNumber(left + smallStep, decimalPoints);\n }\n }\n this.ticksAlignment(orien, tickWidth);\n };\n Slider.prototype.ticksAlignment = function (orien, tickWidth, triggerEvent) {\n if (triggerEvent === void 0) { triggerEvent = true; }\n this.firstChild = this.ul.firstElementChild;\n this.lastChild = this.ul.lastElementChild;\n this.firstChild.classList.add(classNames.sliderFirstTick);\n this.lastChild.classList.add(classNames.sliderLastTick);\n this.sliderContainer.classList.add(classNames.scale + '-' + this.ticks.placement.toLowerCase());\n if (orien === 'h') {\n this.firstChild.style.width = tickWidth / 2 + '%';\n this.lastChild.style.width = tickWidth / 2 + '%';\n }\n else {\n this.firstChild.style.height = tickWidth / 2 + '%';\n this.lastChild.style.height = tickWidth / 2 + '%';\n }\n var eventArgs = { ticksWrapper: this.ul, tickElements: this.tickElementCollection };\n if (triggerEvent) {\n this.trigger('renderedTicks', eventArgs);\n }\n this.scaleAlignment();\n };\n Slider.prototype.createTick = function (li, start, tickWidth) {\n var span = this.createElement('span', {\n className: classNames.tickValue + ' ' + classNames.tick + '-' + this.ticks.placement.toLowerCase(),\n attrs: { role: 'presentation', tabIndex: '-1', 'aria-hidden': 'true' }\n });\n li.appendChild(span);\n if (isNullOrUndefined(this.customValues)) {\n this.formatTicksValue(li, start, span, tickWidth);\n }\n else {\n if (this.enableHtmlSanitizer) {\n span.innerHTML = SanitizeHtmlHelper.sanitize(start.toString());\n }\n else {\n span.innerHTML = start.toString();\n }\n }\n };\n Slider.prototype.formatTicksValue = function (li, start, spanElement, tickWidth) {\n var _this = this;\n var tickText = this.formatNumber(start);\n var text = !isNullOrUndefined(this.ticks) && !isNullOrUndefined(this.ticks.format) ?\n this.formatString(start, this.ticksFormatInfo).formatString : tickText;\n var eventArgs = { value: start, text: text, tickElement: li };\n this.trigger('renderingTicks', eventArgs, function (observedArgs) {\n li.setAttribute('title', observedArgs.text.toString());\n if (spanElement) {\n if (_this.enableHtmlSanitizer) {\n spanElement.innerHTML = SanitizeHtmlHelper.sanitize(observedArgs.text.toString());\n }\n else {\n spanElement.innerHTML = observedArgs.text.toString();\n }\n }\n });\n };\n Slider.prototype.scaleAlignment = function () {\n this.tickValuePosition();\n var smallTick = 12;\n var largeTick = 20;\n var half = largeTick / 2;\n var orien = this.orientation === 'Vertical' ? 'v' : 'h';\n if (this.orientation === 'Vertical') {\n (this.element.getBoundingClientRect().width <= 15) ?\n this.sliderContainer.classList.add(classNames.sliderSmallSize) :\n this.sliderContainer.classList.remove(classNames.sliderSmallSize);\n }\n else {\n (this.element.getBoundingClientRect().height <= 15) ?\n this.sliderContainer.classList.add(classNames.sliderSmallSize) :\n this.sliderContainer.classList.remove(classNames.sliderSmallSize);\n }\n };\n Slider.prototype.tickValuePosition = function () {\n this.firstChild = this.element.querySelector('ul').children[0];\n var first = this.firstChild.getBoundingClientRect();\n var firstChild;\n var otherChild;\n var smallStep = this.ticks.smallStep;\n var count = Math.abs((parseFloat(formatUnit(this.max))) - (parseFloat(formatUnit(this.min)))) / smallStep;\n if (this.firstChild.children.length > 0) {\n firstChild = this.firstChild.children[0].getBoundingClientRect();\n }\n var tickElements = [this.sliderContainer.querySelectorAll('.' + classNames.tick + '.' +\n classNames.large + ' .' + classNames.tickValue)];\n var other;\n if (this.ticks.placement === 'Both') {\n other = [].slice.call(tickElements[0], 2);\n }\n else {\n other = [].slice.call(tickElements[0], 1);\n }\n var tickWidth = this.orientation === 'Vertical' ?\n (first.height * 2) : (first.width * 2);\n for (var i = 0; i < this.firstChild.children.length; i++) {\n if (this.orientation === 'Vertical') {\n this.firstChild.children[i].style.top = -(firstChild.height / 2) + 'px';\n }\n else {\n if (!this.enableRtl) {\n this.firstChild.children[i].style.left = -(firstChild.width / 2) + 'px';\n }\n else {\n this.firstChild.children[i].style.left = (tickWidth -\n this.firstChild.children[i].getBoundingClientRect().width) / 2 + 'px';\n }\n }\n }\n for (var i = 0; i < other.length; i++) {\n otherChild = other[i].getBoundingClientRect();\n if (this.orientation === 'Vertical') {\n setStyleAttribute(other[i], { top: (tickWidth - otherChild.height) / 2 + 'px' });\n }\n else {\n setStyleAttribute(other[i], { left: (tickWidth - otherChild.width) / 2 + 'px' });\n }\n }\n if (this.enableRtl && this.lastChild.children.length && count !== 0) {\n this.lastChild.children[0].style.left = -(this.lastChild.getBoundingClientRect().width / 2) + 'px';\n if (this.ticks.placement === 'Both') {\n this.lastChild.children[1].style.left = -(this.lastChild.getBoundingClientRect().width / 2) + 'px';\n }\n }\n if (count === 0) {\n if (this.orientation === 'Horizontal') {\n if (!this.enableRtl) {\n this.firstChild.classList.remove(classNames.sliderLastTick);\n this.firstChild.style.left = this.firstHandle.style.left;\n }\n else {\n this.firstChild.classList.remove(classNames.sliderLastTick);\n this.firstChild.style.right = this.firstHandle.style.right;\n this.firstChild.children[0].style.left =\n (this.firstChild.getBoundingClientRect().width / 2) + 2 + 'px';\n if (this.ticks.placement === 'Both') {\n this.firstChild.children[1].style.left =\n (this.firstChild.getBoundingClientRect().width / 2) + 2 + 'px';\n }\n }\n }\n if (this.orientation === 'Vertical') {\n this.firstChild.classList.remove(classNames.sliderLastTick);\n }\n }\n };\n Slider.prototype.setAriaAttrValue = function (element) {\n var ariaValueText;\n var isTickFormatted = ((!isNullOrUndefined(this.ticks) && !isNullOrUndefined(this.ticks.format))) ? true : false;\n var text = !isTickFormatted ?\n this.formatContent(this.ticksFormatInfo, false) : this.formatContent(this.tooltipFormatInfo, false);\n var valuenow = isTickFormatted ? this.formatContent(this.ticksFormatInfo, true) :\n this.formatContent(this.tooltipFormatInfo, true);\n text = (!this.customAriaText) ? (text) : (this.customAriaText);\n if (text.split(' - ').length === 2) {\n ariaValueText = text.split(' - ');\n }\n else {\n ariaValueText = [text, text];\n }\n this.setAriaAttributes(element);\n if (this.type !== 'Range') {\n attributes(element, { 'aria-valuenow': valuenow, 'aria-valuetext': text });\n }\n else {\n // eslint-disable-next-line\n (!this.enableRtl) ? ((element === this.firstHandle) ?\n attributes(element, { 'aria-valuenow': valuenow.split(' - ')[0], 'aria-valuetext': ariaValueText[0] }) :\n attributes(element, { 'aria-valuenow': valuenow.split(' - ')[1], 'aria-valuetext': ariaValueText[1] })) :\n ((element === this.firstHandle) ?\n attributes(element, { 'aria-valuenow': valuenow.split(' - ')[1], 'aria-valuetext': ariaValueText[1] }) :\n attributes(element, { 'aria-valuenow': valuenow.split(' - ')[0], 'aria-valuetext': ariaValueText[0] }));\n }\n };\n Slider.prototype.handleValueUpdate = function () {\n var hVal;\n if (this.type === 'Range') {\n if (this.activeHandle === 1) {\n hVal = this.handleVal1;\n }\n else {\n hVal = this.handleVal2;\n }\n }\n else {\n hVal = this.handleVal1;\n }\n return hVal;\n };\n Slider.prototype.getLimitCorrectedValues = function (value) {\n if (this.type === 'MinRange' || this.type === 'Default') {\n value = (this.getLimitValueAndPosition(value, this.limits.minStart, this.limits.minEnd))[0];\n }\n else {\n if (this.activeHandle === 1) {\n value = (this.getLimitValueAndPosition(value, this.limits.minStart, this.limits.minEnd))[0];\n }\n else {\n value = (this.getLimitValueAndPosition(value, this.limits.maxStart, this.limits.maxEnd))[0];\n }\n }\n return value;\n };\n Slider.prototype.focusSliderElement = function () {\n if (!this.isElementFocused) {\n this.element.focus();\n this.isElementFocused = true;\n }\n };\n Slider.prototype.buttonClick = function (args) {\n this.focusSliderElement();\n var value;\n var enabledRTL = this.enableRtl && this.orientation !== 'Vertical';\n var hVal = this.handleValueUpdate();\n if ((args.keyCode === 40) || (args.keyCode === 37)\n || args.currentTarget.classList.contains(classNames.firstButton)) {\n // eslint-disable-next-line\n enabledRTL ? (value = this.add(hVal, parseFloat(this.step.toString()), true)) :\n (value = this.add(hVal, parseFloat(this.step.toString()), false));\n }\n else if ((args.keyCode === 38) || (args.keyCode === 39) ||\n args.currentTarget.classList.contains(classNames.secondButton)) {\n // eslint-disable-next-line\n enabledRTL ? (value = this.add(hVal, parseFloat(this.step.toString()), false)) :\n (value = this.add(hVal, parseFloat(this.step.toString()), true));\n }\n else if ((args.keyCode === 33\n || args.currentTarget.classList.contains(classNames.firstButton))) {\n // eslint-disable-next-line\n enabledRTL ? (value = this.add(hVal, parseFloat(this.ticks.largeStep.toString()), false)) :\n (value = this.add(hVal, parseFloat(this.ticks.largeStep.toString()), true));\n }\n else if ((args.keyCode === 34) ||\n args.currentTarget.classList.contains(classNames.secondButton)) {\n // eslint-disable-next-line\n enabledRTL ? (value = this.add(hVal, parseFloat(this.ticks.largeStep.toString()), true)) :\n (value = this.add(hVal, parseFloat(this.ticks.largeStep.toString()), false));\n }\n else if ((args.keyCode === 36)) {\n value = parseFloat(this.min.toString());\n }\n else if ((args.keyCode === 35)) {\n value = parseFloat(this.max.toString());\n }\n if (this.limits.enabled) {\n value = this.getLimitCorrectedValues(value);\n }\n this.changeHandleValue(value);\n if (this.isMaterial && !this.tooltip.isVisible &&\n !this.getHandle().classList.contains(classNames.sliderTabHandle)) {\n this.materialChange();\n }\n this.tooltipToggle(this.getHandle());\n this.getHandle().focus();\n this.focusHandle();\n if (args.currentTarget.classList.contains(classNames.firstButton)) {\n EventHandler.add(this.firstBtn, 'mouseup touchend', this.buttonUp, this);\n }\n if (args.currentTarget.classList.contains(classNames.secondButton)) {\n EventHandler.add(this.secondBtn, 'mouseup touchend', this.buttonUp, this);\n }\n };\n Slider.prototype.tooltipToggle = function (target) {\n if (this.isMaterialTooltip) {\n // eslint-disable-next-line\n !this.tooltipElement.classList.contains(classNames.materialTooltipOpen) ?\n this.openMaterialTooltip() : this.refreshTooltip(this.firstHandle);\n }\n else {\n // eslint-disable-next-line\n !this.tooltipElement ? this.openTooltip(target) : this.refreshTooltip(target);\n }\n };\n Slider.prototype.buttonUp = function (args) {\n if (args.currentTarget.classList.contains(classNames.firstButton)) {\n EventHandler.remove(this.firstBtn, 'mouseup touchend', this.buttonUp);\n }\n if (args.currentTarget.classList.contains(classNames.secondButton)) {\n EventHandler.remove(this.secondBtn, 'mouseup touchend', this.buttonUp);\n }\n };\n Slider.prototype.setRangeBar = function () {\n if (this.orientation === 'Horizontal') {\n if (this.type === 'MinRange') {\n // eslint-disable-next-line\n this.enableRtl ? (this.rangeBar.style.right = '0px') : (this.rangeBar.style.left = '0px');\n setStyleAttribute(this.rangeBar, { 'width': isNullOrUndefined(this.handlePos1) ? 0 : this.handlePos1 + 'px' });\n }\n else {\n // eslint-disable-next-line\n this.enableRtl ? (this.rangeBar.style.right =\n this.handlePos1 + 'px') : (this.rangeBar.style.left = this.handlePos1 + 'px');\n setStyleAttribute(this.rangeBar, { 'width': this.handlePos2 - this.handlePos1 + 'px' });\n }\n }\n else {\n if (this.type === 'MinRange') {\n this.rangeBar.style.bottom = '0px';\n setStyleAttribute(this.rangeBar, { 'height': isNullOrUndefined(this.handlePos1) ? 0 : this.handlePos1 + 'px' });\n }\n else {\n this.rangeBar.style.bottom = this.handlePos1 + 'px';\n setStyleAttribute(this.rangeBar, { 'height': this.handlePos2 - this.handlePos1 + 'px' });\n }\n }\n };\n Slider.prototype.checkValidValueAndPos = function (value) {\n value = this.checkHandleValue(value);\n value = this.checkHandlePosition(value);\n return value;\n };\n Slider.prototype.setLimitBarPositions = function (fromMinPostion, fromMaxpostion, toMinPostion, toMaxpostion) {\n if (this.orientation === 'Horizontal') {\n if (!this.enableRtl) {\n this.limitBarFirst.style.left = fromMinPostion + 'px';\n this.limitBarFirst.style.width = (fromMaxpostion - fromMinPostion) + 'px';\n }\n else {\n this.limitBarFirst.style.right = fromMinPostion + 'px';\n this.limitBarFirst.style.width = (fromMaxpostion - fromMinPostion) + 'px';\n }\n }\n else {\n this.limitBarFirst.style.bottom = fromMinPostion + 'px';\n this.limitBarFirst.style.height = (fromMaxpostion - fromMinPostion) + 'px';\n }\n if (this.type === 'Range') {\n if (this.orientation === 'Horizontal') {\n if (!this.enableRtl) {\n this.limitBarSecond.style.left = toMinPostion + 'px';\n this.limitBarSecond.style.width = (toMaxpostion - toMinPostion) + 'px';\n }\n else {\n this.limitBarSecond.style.right = toMinPostion + 'px';\n this.limitBarSecond.style.width = (toMaxpostion - toMinPostion) + 'px';\n }\n }\n else {\n this.limitBarSecond.style.bottom = toMinPostion + 'px';\n this.limitBarSecond.style.height = (toMaxpostion - toMinPostion) + 'px';\n }\n }\n };\n Slider.prototype.setLimitBar = function () {\n if (this.type === 'Default' || this.type === 'MinRange') {\n var fromPosition = (this.getLimitValueAndPosition(this.limits.minStart, this.limits.minStart, this.limits.minEnd, true))[0];\n fromPosition = this.checkValidValueAndPos(fromPosition);\n var toPosition = (this.getLimitValueAndPosition(this.limits.minEnd, this.limits.minStart, this.limits.minEnd, true))[0];\n toPosition = this.checkValidValueAndPos(toPosition);\n this.setLimitBarPositions(fromPosition, toPosition);\n }\n else if (this.type === 'Range') {\n var fromMinPostion = (this.getLimitValueAndPosition(this.limits.minStart, this.limits.minStart, this.limits.minEnd, true))[0];\n fromMinPostion = this.checkValidValueAndPos(fromMinPostion);\n var fromMaxpostion = (this.getLimitValueAndPosition(this.limits.minEnd, this.limits.minStart, this.limits.minEnd, true))[0];\n fromMaxpostion = this.checkValidValueAndPos(fromMaxpostion);\n var toMinPostion = (this.getLimitValueAndPosition(this.limits.maxStart, this.limits.maxStart, this.limits.maxEnd, true))[0];\n toMinPostion = this.checkValidValueAndPos(toMinPostion);\n var toMaxpostion = (this.getLimitValueAndPosition(this.limits.maxEnd, this.limits.maxStart, this.limits.maxEnd, true))[0];\n toMaxpostion = this.checkValidValueAndPos(toMaxpostion);\n this.setLimitBarPositions(fromMinPostion, fromMaxpostion, toMinPostion, toMaxpostion);\n }\n };\n Slider.prototype.getLimitValueAndPosition = function (currentValue, minValue, maxValue, limitBar) {\n if (isNullOrUndefined(minValue)) {\n minValue = this.min;\n if (isNullOrUndefined(currentValue) && limitBar) {\n currentValue = minValue;\n }\n }\n if (isNullOrUndefined(maxValue)) {\n maxValue = this.max;\n if (isNullOrUndefined(currentValue) && limitBar) {\n currentValue = maxValue;\n }\n }\n if (currentValue < minValue) {\n currentValue = minValue;\n }\n if (currentValue > maxValue) {\n currentValue = maxValue;\n }\n return [currentValue, this.checkHandlePosition(currentValue)];\n };\n Slider.prototype.setValue = function () {\n if (!isNullOrUndefined(this.customValues) && this.customValues.length > 0) {\n this.min = 0;\n this.max = this.customValues.length - 1;\n this.setBarColor();\n }\n this.setAriaAttributes(this.firstHandle);\n this.handleVal1 = isNullOrUndefined(this.value) ? this.checkHandleValue(parseFloat(this.min.toString())) :\n this.checkHandleValue(parseFloat(this.value.toString()));\n this.handlePos1 = this.checkHandlePosition(this.handleVal1);\n this.preHandlePos1 = this.handlePos1;\n // eslint-disable-next-line\n isNullOrUndefined(this.activeHandle) ? (this.type === 'Range' ? this.activeHandle = 2 : this.activeHandle = 1) :\n // eslint-disable-next-line no-self-assign\n this.activeHandle = this.activeHandle;\n if (this.type === 'Default' || this.type === 'MinRange') {\n if (this.limits.enabled) {\n var values = this.getLimitValueAndPosition(this.handleVal1, this.limits.minStart, this.limits.minEnd);\n this.handleVal1 = values[0];\n this.handlePos1 = values[1];\n this.preHandlePos1 = this.handlePos1;\n }\n this.setHandlePosition(null);\n this.handleStart();\n this.value = this.handleVal1;\n this.setAriaAttrValue(this.firstHandle);\n this.changeEvent('changed', null);\n }\n else {\n this.validateRangeValue();\n }\n if (this.type !== 'Default') {\n this.setRangeBar();\n }\n if (this.limits.enabled) {\n this.setLimitBar();\n }\n };\n Slider.prototype.rangeValueUpdate = function () {\n if (this.value === null || typeof (this.value) !== 'object') {\n this.value = [parseFloat(formatUnit(this.min)), parseFloat(formatUnit(this.max))];\n }\n };\n Slider.prototype.validateRangeValue = function () {\n this.rangeValueUpdate();\n this.setRangeValue();\n };\n Slider.prototype.modifyZindex = function () {\n if (this.type === 'Range') {\n if (this.activeHandle === 1) {\n this.firstHandle.style.zIndex = (this.zIndex + 4) + '';\n this.secondHandle.style.zIndex = (this.zIndex + 3) + '';\n }\n else {\n this.firstHandle.style.zIndex = (this.zIndex + 3) + '';\n this.secondHandle.style.zIndex = (this.zIndex + 4) + '';\n }\n }\n else if (this.isMaterialTooltip && this.tooltipElement) {\n this.tooltipElement.style.zIndex = getZindexPartial(this.element) + '';\n }\n };\n Slider.prototype.setHandlePosition = function (event) {\n var _this = this;\n var handle;\n var pos = (this.activeHandle === 1) ? this.handlePos1 : this.handlePos2;\n if (this.isMaterialTooltip) {\n handle = [this.firstHandle, this.materialHandle];\n }\n else {\n handle = [this.getHandle()];\n }\n this.handleStart();\n handle.forEach(function (handle) {\n if (_this.orientation === 'Horizontal') {\n // eslint-disable-next-line\n _this.enableRtl ? (handle.style.right =\n pos + \"px\") : (handle.style.left = pos + \"px\");\n }\n else {\n handle.style.bottom = pos + \"px\";\n }\n });\n this.changeEvent('change', event);\n };\n Slider.prototype.getHandle = function () {\n return (this.activeHandle === 1) ? this.firstHandle : this.secondHandle;\n };\n Slider.prototype.setRangeValue = function () {\n this.updateRangeValue();\n this.activeHandle = 1;\n this.setHandlePosition(null);\n this.activeHandle = 2;\n this.setHandlePosition(null);\n this.activeHandle = 1;\n };\n Slider.prototype.changeEvent = function (eventName, e) {\n var previous = eventName === 'change' ? this.previousVal : this.previousChanged;\n if (this.type !== 'Range') {\n this.setProperties({ 'value': this.handleVal1 }, true);\n if (previous !== this.value && (!this.isMaterialTooltip || !this.initialTooltip)) {\n this.trigger(eventName, this.changeEventArgs(eventName, e));\n this.initialTooltip = true;\n this.setPreviousVal(eventName, this.value);\n }\n this.setAriaAttrValue(this.firstHandle);\n }\n else {\n var value = this.value = [this.handleVal1, this.handleVal2];\n this.setProperties({ 'value': value }, true);\n if (previous.length === this.value.length\n && this.value[0] !== previous[0] || this.value[1] !== previous[1]) {\n this.initialTooltip = false;\n this.trigger(eventName, this.changeEventArgs(eventName, e));\n this.initialTooltip = true;\n this.setPreviousVal(eventName, this.value);\n }\n this.setAriaAttrValue(this.getHandle());\n }\n this.hiddenInput.value = this.value.toString();\n };\n Slider.prototype.changeEventArgs = function (eventName, e) {\n var eventArgs;\n if (this.tooltip.isVisible && this.tooltipObj && this.initialTooltip) {\n this.tooltipValue();\n eventArgs = {\n value: this.value,\n previousValue: eventName === 'change' ? this.previousVal : this.previousChanged,\n action: eventName, text: this.tooltipObj.content, isInteracted: isNullOrUndefined(e) ? false : true\n };\n }\n else {\n eventArgs = {\n value: this.value,\n previousValue: eventName === 'change' ? this.previousVal : this.previousChanged,\n action: eventName, text: isNullOrUndefined(this.ticksFormatInfo.format) ? this.value.toString() :\n (this.type !== 'Range' ? this.formatString(this.value, this.ticksFormatInfo).formatString :\n (this.formatString(this.value[0], this.ticksFormatInfo).formatString + ' - ' +\n this.formatString(this.value[1], this.ticksFormatInfo).formatString)),\n isInteracted: isNullOrUndefined(e) ? false : true\n };\n }\n return eventArgs;\n };\n Slider.prototype.setPreviousVal = function (eventName, value) {\n if (eventName === 'change') {\n this.previousVal = value;\n }\n else {\n this.previousChanged = value;\n }\n };\n Slider.prototype.updateRangeValue = function () {\n var values = this.value.toString().split(',').map(Number);\n if ((this.enableRtl && this.orientation !== 'Vertical') || this.rtl) {\n this.value = [values[1], values[0]];\n }\n else {\n this.value = [values[0], values[1]];\n }\n if (this.enableRtl && this.orientation !== 'Vertical') {\n this.handleVal1 = this.checkHandleValue(this.value[1]);\n this.handleVal2 = this.checkHandleValue(this.value[0]);\n }\n else {\n this.handleVal1 = this.checkHandleValue(this.value[0]);\n this.handleVal2 = this.checkHandleValue(this.value[1]);\n }\n this.handlePos1 = this.checkHandlePosition(this.handleVal1);\n this.handlePos2 = this.checkHandlePosition(this.handleVal2);\n if (this.handlePos1 > this.handlePos2) {\n this.handlePos1 = this.handlePos2;\n this.handleVal1 = this.handleVal2;\n }\n this.preHandlePos1 = this.handlePos1;\n this.preHandlePos2 = this.handlePos2;\n if (this.limits.enabled) {\n this.activeHandle = 1;\n var values_1 = this.getLimitValueAndPosition(this.handleVal1, this.limits.minStart, this.limits.minEnd);\n this.handleVal1 = values_1[0];\n this.handlePos1 = values_1[1];\n this.preHandlePos1 = this.handlePos1;\n this.activeHandle = 2;\n values_1 = this.getLimitValueAndPosition(this.handleVal2, this.limits.maxStart, this.limits.maxEnd);\n this.handleVal2 = values_1[0];\n this.handlePos2 = values_1[1];\n this.preHandlePos2 = this.handlePos2;\n }\n };\n Slider.prototype.checkHandlePosition = function (value) {\n var pos;\n value = (100 *\n (value - (parseFloat(formatUnit(this.min))))) / ((parseFloat(formatUnit(this.max))) - (parseFloat(formatUnit(this.min))));\n if (this.orientation === 'Horizontal') {\n pos = this.element.getBoundingClientRect().width * (value / 100);\n }\n else {\n pos = this.element.getBoundingClientRect().height * (value / 100);\n }\n if (((parseFloat(formatUnit(this.max))) === (parseFloat(formatUnit(this.min))))) {\n if (this.orientation === 'Horizontal') {\n pos = this.element.getBoundingClientRect().width;\n }\n else {\n pos = this.element.getBoundingClientRect().height;\n }\n }\n return pos;\n };\n Slider.prototype.checkHandleValue = function (value) {\n if (this.min > this.max) {\n this.min = this.max;\n }\n if (this.min === this.max) {\n return (parseFloat(formatUnit(this.max)));\n }\n var handle = this.tempStartEnd();\n if (value < handle.start) {\n value = handle.start;\n }\n else if (value > handle.end) {\n value = handle.end;\n }\n return value;\n };\n /**\n * It is used to reposition slider.\n *\n * @returns void\n */\n Slider.prototype.reposition = function () {\n var _this = this;\n this.firstHandle.style.transition = 'none';\n if (this.type !== 'Default') {\n this.rangeBar.style.transition = 'none';\n }\n if (this.type === 'Range') {\n this.secondHandle.style.transition = 'none';\n }\n this.handlePos1 = this.checkHandlePosition(this.handleVal1);\n if (this.handleVal2) {\n this.handlePos2 = this.checkHandlePosition(this.handleVal2);\n }\n if (this.orientation === 'Horizontal') {\n // eslint-disable-next-line\n this.enableRtl ? this.firstHandle.style.right =\n this.handlePos1 + \"px\" : this.firstHandle.style.left = this.handlePos1 + \"px\";\n if (this.isMaterialTooltip) {\n // eslint-disable-next-line\n this.enableRtl ? this.materialHandle.style.right =\n this.handlePos1 + \"px\" : this.materialHandle.style.left = this.handlePos1 + \"px\";\n }\n if (this.type === 'MinRange') {\n // eslint-disable-next-line\n this.enableRtl ? (this.rangeBar.style.right = '0px') : (this.rangeBar.style.left = '0px');\n setStyleAttribute(this.rangeBar, { 'width': isNullOrUndefined(this.handlePos1) ? 0 : this.handlePos1 + 'px' });\n }\n else if (this.type === 'Range') {\n // eslint-disable-next-line\n this.enableRtl ? this.secondHandle.style.right =\n this.handlePos2 + \"px\" : this.secondHandle.style.left = this.handlePos2 + \"px\";\n // eslint-disable-next-line\n this.enableRtl ? (this.rangeBar.style.right =\n this.handlePos1 + 'px') : (this.rangeBar.style.left = this.handlePos1 + 'px');\n setStyleAttribute(this.rangeBar, { 'width': this.handlePos2 - this.handlePos1 + 'px' });\n }\n }\n else {\n this.firstHandle.style.bottom = this.handlePos1 + \"px\";\n if (this.isMaterialTooltip) {\n this.materialHandle.style.bottom = this.handlePos1 + \"px\";\n }\n if (this.type === 'MinRange') {\n this.rangeBar.style.bottom = '0px';\n setStyleAttribute(this.rangeBar, { 'height': isNullOrUndefined(this.handlePos1) ? 0 : this.handlePos1 + 'px' });\n }\n else if (this.type === 'Range') {\n this.secondHandle.style.bottom = this.handlePos2 + \"px\";\n this.rangeBar.style.bottom = this.handlePos1 + 'px';\n setStyleAttribute(this.rangeBar, { 'height': this.handlePos2 - this.handlePos1 + 'px' });\n }\n }\n if (this.limits.enabled) {\n this.setLimitBar();\n }\n if (this.ticks.placement !== 'None' && this.ul) {\n this.removeElement(this.ul);\n this.ul = undefined;\n this.renderScale();\n }\n this.handleStart();\n if (!this.tooltip.isVisible) {\n setTimeout(function () {\n _this.firstHandle.style.transition = _this.scaleTransform;\n if (_this.type === 'Range') {\n _this.secondHandle.style.transition = _this.scaleTransform;\n }\n });\n }\n this.refreshTooltip(this.tooltipTarget);\n this.setBarColor();\n };\n Slider.prototype.changeHandleValue = function (value) {\n var position = null;\n if (this.activeHandle === 1) {\n if (!(this.limits.enabled && this.limits.startHandleFixed)) {\n this.handleVal1 = this.checkHandleValue(value);\n this.handlePos1 = this.checkHandlePosition(this.handleVal1);\n if (this.type === 'Range' && this.handlePos1 > this.handlePos2) {\n this.handlePos1 = this.handlePos2;\n this.handleVal1 = this.handleVal2;\n }\n if (this.handlePos1 !== this.preHandlePos1) {\n position = this.preHandlePos1 = this.handlePos1;\n }\n }\n this.modifyZindex();\n }\n else {\n if (!(this.limits.enabled && this.limits.endHandleFixed)) {\n this.handleVal2 = this.checkHandleValue(value);\n this.handlePos2 = this.checkHandlePosition(this.handleVal2);\n if (this.type === 'Range' && this.handlePos2 < this.handlePos1) {\n this.handlePos2 = this.handlePos1;\n this.handleVal2 = this.handleVal1;\n }\n if (this.handlePos2 !== this.preHandlePos2) {\n position = this.preHandlePos2 = this.handlePos2;\n }\n }\n this.modifyZindex();\n }\n if (position !== null) {\n if (this.type !== 'Default') {\n this.setRangeBar();\n }\n this.setHandlePosition(null);\n }\n };\n // eslint-disable-next-line\n Slider.prototype.tempStartEnd = function () {\n if (this.min > this.max) {\n return {\n start: this.max,\n end: this.min\n };\n }\n else {\n return {\n start: this.min,\n end: this.max\n };\n }\n };\n // eslint-disable-next-line\n Slider.prototype.xyToPosition = function (position) {\n var pos;\n if (this.min === this.max) {\n return 100;\n }\n if (this.orientation === 'Horizontal') {\n var left = position.x - this.element.getBoundingClientRect().left;\n var num = this.element.offsetWidth / 100;\n this.val = (left / num);\n }\n else {\n var top_1 = position.y - this.element.getBoundingClientRect().top;\n var num = this.element.offsetHeight / 100;\n this.val = 100 - (top_1 / num);\n }\n var val = this.stepValueCalculation(this.val);\n if (val < 0) {\n val = 0;\n }\n else if (val > 100) {\n val = 100;\n }\n if (this.enableRtl && this.orientation !== 'Vertical') {\n val = 100 - val;\n }\n if (this.orientation === 'Horizontal') {\n pos = this.element.getBoundingClientRect().width * (val / 100);\n }\n else {\n pos = this.element.getBoundingClientRect().height * (val / 100);\n }\n return pos;\n };\n Slider.prototype.stepValueCalculation = function (value) {\n if (this.step === 0) {\n this.step = 1;\n }\n var percentStep = (parseFloat(formatUnit(this.step))) / ((parseFloat(formatUnit(this.max)) - parseFloat(formatUnit(this.min))) / 100);\n var remain = value % Math.abs(percentStep);\n if (remain !== 0) {\n if ((percentStep / 2) > remain) {\n value -= remain;\n }\n else {\n value += Math.abs(percentStep) - remain;\n }\n }\n return value;\n };\n Slider.prototype.add = function (a, b, addition) {\n var precision;\n var x = Math.pow(10, precision || 3);\n var val;\n if (addition) {\n val = (Math.round(a * x) + Math.round(b * x)) / x;\n }\n else {\n val = (Math.round(a * x) - Math.round(b * x)) / x;\n }\n return val;\n };\n Slider.prototype.positionToValue = function (pos) {\n var val;\n var diff = parseFloat(formatUnit(this.max)) - parseFloat(formatUnit(this.min));\n if (this.orientation === 'Horizontal') {\n val = (pos / this.element.getBoundingClientRect().width) * diff;\n }\n else {\n val = (pos / this.element.getBoundingClientRect().height) * diff;\n }\n var total = this.add(val, parseFloat(this.min.toString()), true);\n return (total);\n };\n Slider.prototype.sliderBarClick = function (evt) {\n evt.preventDefault();\n // eslint-disable-next-line\n var pos;\n if (evt.type === 'mousedown' || evt.type === 'mouseup' || evt.type === 'click') {\n pos = { x: evt.clientX, y: evt.clientY };\n }\n else if (evt.type === 'touchend' || evt.type === 'touchstart') {\n pos = { x: evt.changedTouches[0].clientX, y: evt.changedTouches[0].clientY };\n }\n var handlepos = this.xyToPosition(pos);\n var handleVal = this.positionToValue(handlepos);\n if (this.type === 'Range' && (this.handlePos2 - handlepos) < (handlepos - this.handlePos1)) {\n this.activeHandle = 2;\n if (!(this.limits.enabled && this.limits.endHandleFixed)) {\n if (this.limits.enabled) {\n var value = this.getLimitValueAndPosition(handleVal, this.limits.maxStart, this.limits.maxEnd);\n handleVal = value[0];\n handlepos = value[1];\n }\n this.secondHandle.classList.add(classNames.sliderActiveHandle);\n this.handlePos2 = this.preHandlePos2 = handlepos;\n this.handleVal2 = handleVal;\n }\n this.modifyZindex();\n this.secondHandle.focus();\n }\n else {\n this.activeHandle = 1;\n if (!(this.limits.enabled && this.limits.startHandleFixed)) {\n if (this.limits.enabled) {\n var value = this.getLimitValueAndPosition(handleVal, this.limits.minStart, this.limits.minEnd);\n handleVal = value[0];\n handlepos = value[1];\n }\n this.firstHandle.classList.add(classNames.sliderActiveHandle);\n this.handlePos1 = this.preHandlePos1 = handlepos;\n this.handleVal1 = handleVal;\n }\n this.modifyZindex();\n this.firstHandle.focus();\n }\n if (this.isMaterialTooltip) {\n this.tooltipElement.classList.add(classNames.materialTooltipActive);\n }\n var focusedElement = this.element.querySelector('.' + classNames.sliderTabHandle);\n if (focusedElement && this.getHandle() !== focusedElement) {\n focusedElement.classList.remove(classNames.sliderTabHandle);\n }\n var handle = this.activeHandle === 1 ? this.firstHandle : this.secondHandle;\n var behindElement;\n if ((evt.type === 'click' || evt.type === 'mousedown') && evt.target === handle) {\n var eventX = evt.clientX, eventY = evt.clientY;\n behindElement = document.elementFromPoint(eventX, eventY);\n }\n if (evt.target === handle && behindElement != handle) {\n if (this.isMaterial && !this.tooltip.isVisible &&\n !this.getHandle().classList.contains(classNames.sliderTabHandle)) {\n this.materialChange();\n }\n this.sliderBarUp(evt);\n this.tooltipToggle(this.getHandle());\n return;\n }\n if (!this.checkRepeatedValue(handleVal)) {\n return;\n }\n var transition = this.isMaterial && this.tooltip.isVisible ?\n this.transitionOnMaterialTooltip : this.transition;\n this.getHandle().style.transition = transition.handle;\n if (this.type !== 'Default') {\n this.rangeBar.style.transition = transition.rangeBar;\n }\n this.setHandlePosition(evt);\n if (this.isMaterialTooltip) {\n this.initialTooltip = false;\n }\n this.changeEvent('changed', evt);\n if (this.type !== 'Default') {\n this.setRangeBar();\n }\n };\n Slider.prototype.handleValueAdjust = function (handleValue, assignValue, handleNumber) {\n if (handleNumber === 1) {\n this.handleVal1 = assignValue;\n this.handleVal2 = this.handleVal1 + this.minDiff;\n }\n else if (handleNumber === 2) {\n this.handleVal2 = assignValue;\n this.handleVal1 = this.handleVal2 - this.minDiff;\n }\n this.handlePos1 = this.checkHandlePosition(this.handleVal1);\n this.handlePos2 = this.checkHandlePosition(this.handleVal2);\n };\n Slider.prototype.dragRangeBarMove = function (event) {\n var _a, _b;\n if (event.type !== 'touchmove') {\n event.preventDefault();\n }\n this.rangeBarDragged = true;\n var pos;\n this.rangeBar.style.transition = 'none';\n this.firstHandle.style.transition = 'none';\n this.secondHandle.style.transition = 'none';\n var xPostion;\n var yPostion;\n if (event.type === 'mousemove') {\n _a = [event.clientX, event.clientY], xPostion = _a[0], yPostion = _a[1];\n }\n else {\n _b = [event.changedTouches[0].clientX, event.changedTouches[0].clientY], xPostion = _b[0], yPostion = _b[1];\n }\n if (!(this.limits.enabled && this.limits.startHandleFixed) && !(this.limits.enabled && this.limits.endHandleFixed)) {\n if (!this.enableRtl) {\n pos = { x: xPostion - this.firstPartRemain, y: yPostion + this.secondPartRemain };\n }\n else {\n pos = { x: xPostion + this.secondPartRemain, y: yPostion + this.secondPartRemain };\n }\n this.handlePos1 = this.xyToPosition(pos);\n this.handleVal1 = this.positionToValue(this.handlePos1);\n if (!this.enableRtl) {\n pos = { x: xPostion + this.secondPartRemain, y: yPostion - this.firstPartRemain };\n }\n else {\n pos = { x: xPostion - this.firstPartRemain, y: yPostion - this.firstPartRemain };\n }\n this.handlePos2 = this.xyToPosition(pos);\n this.handleVal2 = this.positionToValue(this.handlePos2);\n if (this.limits.enabled) {\n var value = this.getLimitValueAndPosition(this.handleVal1, this.limits.minStart, this.limits.minEnd);\n this.handleVal1 = value[0];\n this.handlePos1 = value[1];\n if (this.handleVal1 === this.limits.minEnd) {\n this.handleValueAdjust(this.handleVal1, this.limits.minEnd, 1);\n }\n if (this.handleVal1 === this.limits.minStart) {\n this.handleValueAdjust(this.handleVal1, this.limits.minStart, 1);\n }\n value = this.getLimitValueAndPosition(this.handleVal2, this.limits.maxStart, this.limits.maxEnd);\n this.handleVal2 = value[0];\n this.handlePos2 = value[1];\n if (this.handleVal2 === this.limits.maxStart) {\n this.handleValueAdjust(this.handleVal2, this.limits.maxStart, 2);\n }\n if (this.handleVal2 === this.limits.maxEnd) {\n this.handleValueAdjust(this.handleVal2, this.limits.maxEnd, 2);\n }\n }\n if (this.handleVal2 === this.max) {\n this.handleValueAdjust(this.handleVal2, this.max, 2);\n }\n if (this.handleVal1 === this.min) {\n this.handleValueAdjust(this.handleVal1, this.min, 1);\n }\n }\n this.activeHandle = 1;\n this.setHandlePosition(event);\n this.activeHandle = 2;\n this.setHandlePosition(event);\n this.tooltipToggle(this.rangeBar);\n this.setRangeBar();\n };\n Slider.prototype.sliderBarUp = function (event) {\n this.changeEvent('changed', event);\n this.handleFocusOut();\n this.firstHandle.classList.remove(classNames.sliderActiveHandle);\n if (this.type === 'Range') {\n this.initialTooltip = false;\n this.secondHandle.classList.remove(classNames.sliderActiveHandle);\n }\n this.closeTooltip();\n if (this.isMaterial) {\n this.getHandle().classList.remove('e-large-thumb-size');\n if (this.isMaterialTooltip) {\n this.tooltipElement.classList.remove(classNames.materialTooltipActive);\n }\n }\n EventHandler.remove(document, 'mousemove touchmove', this.sliderBarMove);\n EventHandler.remove(document, 'mouseup touchend', this.sliderBarUp);\n };\n Slider.prototype.sliderBarMove = function (evt) {\n if (evt.type !== 'touchmove') {\n evt.preventDefault();\n }\n var pos;\n if (evt.type === 'mousemove') {\n pos = { x: evt.clientX, y: evt.clientY };\n }\n else {\n pos = { x: evt.changedTouches[0].clientX, y: evt.changedTouches[0].clientY };\n }\n var handlepos = this.xyToPosition(pos);\n var handleVal = this.positionToValue(handlepos);\n handlepos = Math.round(handlepos);\n if (this.type !== 'Range' && this.activeHandle === 1) {\n if (!(this.limits.enabled && this.limits.startHandleFixed)) {\n if (this.limits.enabled) {\n var valueAndPostion = this.getLimitValueAndPosition(handleVal, this.limits.minStart, this.limits.minEnd);\n handlepos = valueAndPostion[1];\n handleVal = valueAndPostion[0];\n }\n this.handlePos1 = handlepos;\n this.handleVal1 = handleVal;\n }\n this.firstHandle.classList.add(classNames.sliderActiveHandle);\n }\n if (this.type === 'Range') {\n if (this.activeHandle === 1) {\n this.firstHandle.classList.add(classNames.sliderActiveHandle);\n if (!(this.limits.enabled && this.limits.startHandleFixed)) {\n if (handlepos > this.handlePos2) {\n handlepos = this.handlePos2;\n handleVal = this.handleVal2;\n }\n if (handlepos !== this.preHandlePos1) {\n if (this.limits.enabled) {\n var value = this.getLimitValueAndPosition(handleVal, this.limits.minStart, this.limits.minEnd);\n handleVal = value[0];\n handlepos = value[1];\n }\n this.handlePos1 = this.preHandlePos1 = handlepos;\n this.handleVal1 = handleVal;\n this.activeHandle = 1;\n }\n }\n }\n else if (this.activeHandle === 2) {\n this.secondHandle.classList.add(classNames.sliderActiveHandle);\n if (!(this.limits.enabled && this.limits.endHandleFixed)) {\n if (handlepos < this.handlePos1) {\n handlepos = this.handlePos1;\n handleVal = this.handleVal1;\n }\n if (handlepos !== this.preHandlePos2) {\n if (this.limits.enabled) {\n var value = this.getLimitValueAndPosition(handleVal, this.limits.maxStart, this.limits.maxEnd);\n handleVal = value[0];\n handlepos = value[1];\n }\n this.handlePos2 = this.preHandlePos2 = handlepos;\n this.handleVal2 = handleVal;\n this.activeHandle = 2;\n }\n }\n }\n }\n if (!this.checkRepeatedValue(handleVal)) {\n return;\n }\n this.getHandle().style.transition = this.scaleTransform;\n if (this.type !== 'Default') {\n this.rangeBar.style.transition = 'none';\n }\n this.setHandlePosition(evt);\n if (this.isMaterial && !this.tooltip.isVisible &&\n !this.getHandle().classList.contains(classNames.sliderTabHandle)) {\n this.materialChange();\n }\n this.tooltipToggle(this.getHandle());\n if (this.type !== 'Default') {\n this.setRangeBar();\n }\n };\n Slider.prototype.dragRangeBarUp = function (event) {\n if (!this.rangeBarDragged) {\n this.focusSliderElement();\n this.sliderBarClick(event);\n }\n else {\n this.isDragComplete = true;\n }\n this.changeEvent('changed', event);\n this.closeTooltip();\n EventHandler.remove(document, 'mousemove touchmove', this.dragRangeBarMove);\n EventHandler.remove(document, 'mouseup touchend', this.dragRangeBarUp);\n this.rangeBarDragged = false;\n };\n Slider.prototype.checkRepeatedValue = function (currentValue) {\n if (this.type === 'Range') {\n var previousVal = this.enableRtl && this.orientation !== 'Vertical' ? (this.activeHandle === 1 ?\n this.previousVal[1] : this.previousVal[0]) :\n (this.activeHandle === 1 ? this.previousVal[0] : this.previousVal[1]);\n if (currentValue === previousVal) {\n return 0;\n }\n }\n else {\n if (currentValue === this.previousVal) {\n return 0;\n }\n }\n return 1;\n };\n Slider.prototype.refreshTooltip = function (target) {\n if (this.tooltip.isVisible && this.tooltipObj) {\n this.tooltipValue();\n if (target) {\n this.tooltipObj.refresh(target);\n this.tooltipTarget = target;\n }\n }\n };\n Slider.prototype.openTooltip = function (target) {\n if (this.tooltip.isVisible && this.tooltipObj && !this.isMaterialTooltip) {\n this.tooltipValue();\n this.tooltipObj.open(target);\n this.tooltipTarget = target;\n }\n };\n Slider.prototype.closeTooltip = function () {\n if (this.tooltip.isVisible && this.tooltipObj && this.tooltip.showOn !== 'Always' && !this.isMaterialTooltip) {\n this.tooltipValue();\n this.tooltipObj.close();\n this.tooltipTarget = undefined;\n }\n };\n Slider.prototype.keyDown = function (event) {\n switch (event.keyCode) {\n case 37:\n case 38:\n case 39:\n case 40:\n case 33:\n case 34:\n case 36:\n case 35:\n event.preventDefault();\n this.buttonClick(event);\n break;\n }\n };\n Slider.prototype.wireButtonEvt = function (destroy) {\n if (!destroy) {\n EventHandler.add(this.firstBtn, 'mouseleave touchleave', this.buttonFocusOut, this);\n EventHandler.add(this.secondBtn, 'mouseleave touchleave', this.buttonFocusOut, this);\n EventHandler.add(this.firstBtn, 'mousedown touchstart', this.repeatHandlerMouse, this);\n EventHandler.add(this.firstBtn, 'mouseup mouseleave touchup touchend', this.repeatHandlerUp, this);\n EventHandler.add(this.secondBtn, 'mousedown touchstart', this.repeatHandlerMouse, this);\n EventHandler.add(this.secondBtn, 'mouseup mouseleave touchup touchend', this.repeatHandlerUp, this);\n EventHandler.add(this.firstBtn, 'focusout', this.sliderFocusOut, this);\n EventHandler.add(this.secondBtn, 'focusout', this.sliderFocusOut, this);\n }\n else {\n EventHandler.remove(this.firstBtn, 'mouseleave touchleave', this.buttonFocusOut);\n EventHandler.remove(this.secondBtn, 'mouseleave touchleave', this.buttonFocusOut);\n EventHandler.remove(this.firstBtn, 'mousedown touchstart', this.repeatHandlerMouse);\n EventHandler.remove(this.firstBtn, 'mouseup mouseleave touchup touchend', this.repeatHandlerUp);\n EventHandler.remove(this.secondBtn, 'mousedown touchstart', this.repeatHandlerMouse);\n EventHandler.remove(this.secondBtn, 'mouseup mouseleave touchup touchend', this.repeatHandlerUp);\n EventHandler.remove(this.firstBtn, 'focusout', this.sliderFocusOut);\n EventHandler.remove(this.secondBtn, 'focusout', this.sliderFocusOut);\n }\n };\n Slider.prototype.rangeBarMousedown = function (event) {\n var _a, _b;\n event.preventDefault();\n this.focusSliderElement();\n if (this.type === 'Range' && this.drag && event.target === this.rangeBar) {\n var xPostion = void 0;\n var yPostion = void 0;\n if (event.type === 'mousedown') {\n _a = [event.clientX, event.clientY], xPostion = _a[0], yPostion = _a[1];\n }\n else if (event.type === 'touchstart') {\n _b = [event.changedTouches[0].clientX, event.changedTouches[0].clientY], xPostion = _b[0], yPostion = _b[1];\n }\n if (this.orientation === 'Horizontal') {\n this.firstPartRemain = xPostion - this.rangeBar.getBoundingClientRect().left;\n this.secondPartRemain = this.rangeBar.getBoundingClientRect().right - xPostion;\n }\n else {\n this.firstPartRemain = yPostion - this.rangeBar.getBoundingClientRect().top;\n this.secondPartRemain = this.rangeBar.getBoundingClientRect().bottom - yPostion;\n }\n this.minDiff = this.handleVal2 - this.handleVal1;\n this.tooltipToggle(this.rangeBar);\n var focusedElement = this.element.querySelector('.' + classNames.sliderTabHandle);\n if (focusedElement) {\n focusedElement.classList.remove(classNames.sliderTabHandle);\n }\n EventHandler.add(document, 'mousemove touchmove', this.dragRangeBarMove, this);\n EventHandler.add(document, 'mouseup touchend', this.dragRangeBarUp, this);\n }\n };\n Slider.prototype.elementClick = function (event) {\n if (this.isDragComplete) {\n this.isDragComplete = false;\n return;\n }\n event.preventDefault();\n this.focusSliderElement();\n this.sliderBarClick(event);\n this.focusHandle();\n };\n Slider.prototype.wireEvents = function () {\n this.onresize = this.reposition.bind(this);\n window.addEventListener('resize', this.onresize);\n if (this.enabled && !this.readonly) {\n EventHandler.add(this.element, 'click', this.elementClick, this);\n if (this.type === 'Range' && this.drag) {\n EventHandler.add(this.rangeBar, 'mousedown touchstart', this.rangeBarMousedown, this);\n }\n EventHandler.add(this.sliderContainer, 'keydown', this.keyDown, this);\n EventHandler.add(this.sliderContainer, 'keyup', this.keyUp, this);\n EventHandler.add(this.element, 'focusout', this.sliderFocusOut, this);\n EventHandler.add(this.sliderContainer, 'mouseover mouseout touchstart touchend', this.hover, this);\n this.wireFirstHandleEvt(false);\n if (this.type === 'Range') {\n this.wireSecondHandleEvt(false);\n }\n if (this.showButtons) {\n this.wireButtonEvt(false);\n }\n this.wireMaterialTooltipEvent(false);\n if (this.isForm) {\n EventHandler.add(this.formElement, 'reset', this.formResetHandler, this);\n }\n }\n };\n Slider.prototype.unwireEvents = function () {\n EventHandler.remove(this.element, 'click', this.elementClick);\n if (this.type === 'Range' && this.drag) {\n EventHandler.remove(this.rangeBar, 'mousedown touchstart', this.rangeBarMousedown);\n }\n EventHandler.remove(this.sliderContainer, 'keydown', this.keyDown);\n EventHandler.remove(this.sliderContainer, 'keyup', this.keyUp);\n EventHandler.remove(this.element, 'focusout', this.sliderFocusOut);\n EventHandler.remove(this.sliderContainer, 'mouseover mouseout touchstart touchend', this.hover);\n this.wireFirstHandleEvt(true);\n if (this.type === 'Range') {\n this.wireSecondHandleEvt(true);\n }\n if (this.showButtons) {\n this.wireButtonEvt(true);\n }\n this.wireMaterialTooltipEvent(true);\n EventHandler.remove(this.element, 'reset', this.formResetHandler);\n };\n Slider.prototype.formResetHandler = function () {\n this.setProperties({ 'value': this.formResetValue }, true);\n this.setValue();\n };\n Slider.prototype.keyUp = function (event) {\n if (event.keyCode === 9 && event.target.classList.contains(classNames.sliderHandle)) {\n this.focusSliderElement();\n if (!event.target.classList.contains(classNames.sliderTabHandle)) {\n if (this.element.querySelector('.' + classNames.sliderTabHandle)) {\n this.element.querySelector('.' + classNames.sliderTabHandle).classList.remove(classNames.sliderTabHandle);\n }\n event.target.classList.add(classNames.sliderTabHandle);\n var parentElement = event.target.parentElement;\n if (parentElement === this.element) {\n parentElement.querySelector('.' + classNames.sliderTrack).classList.add(classNames.sliderTabTrack);\n if (this.type === 'Range' || this.type === 'MinRange') {\n parentElement.querySelector('.' + classNames.rangeBar).classList.add(classNames.sliderTabRange);\n }\n }\n if (this.type === 'Range') {\n (event.target.previousSibling).classList.contains(classNames.sliderHandle) ?\n this.activeHandle = 2 : this.activeHandle = 1;\n }\n this.getHandle().focus();\n this.tooltipToggle(this.getHandle());\n }\n }\n this.closeTooltip();\n this.changeEvent('changed', event);\n };\n Slider.prototype.hover = function (event) {\n if (!isNullOrUndefined(event)) {\n if (event.type === 'mouseover' || event.type === 'touchmove' || event.type === 'mousemove' ||\n event.type === 'pointermove' || event.type === 'touchstart') {\n this.sliderContainer.classList.add(classNames.sliderHover);\n }\n else {\n this.sliderContainer.classList.remove(classNames.sliderHover);\n var curTarget = event.currentTarget;\n if (this.tooltip.isVisible && this.tooltip.showOn !== 'Always' && this.tooltipObj && this.isMaterialTooltip &&\n !curTarget.classList.contains(classNames.sliderHandleFocused) &&\n !curTarget.classList.contains(classNames.sliderTabHandle)) {\n this.closeMaterialTooltip();\n }\n }\n }\n };\n Slider.prototype.sliderFocusOut = function (event) {\n if (event.relatedTarget !== this.secondHandle && event.relatedTarget !== this.firstHandle &&\n event.relatedTarget !== this.element && event.relatedTarget !== this.firstBtn && event.relatedTarget !== this.secondBtn) {\n this.closeMaterialTooltip();\n this.closeTooltip();\n if (this.element.querySelector('.' + classNames.sliderTabHandle)) {\n this.element.querySelector('.' + classNames.sliderTabHandle).classList.remove(classNames.sliderTabHandle);\n }\n if (this.element.querySelector('.' + classNames.sliderTabTrack)) {\n this.element.querySelector('.' + classNames.sliderTabTrack).classList.remove(classNames.sliderTabTrack);\n if ((this.type === 'Range' || this.type === 'MinRange') &&\n this.element.querySelector('.' + classNames.sliderTabRange)) {\n this.element.querySelector('.' + classNames.sliderTabRange).classList.remove(classNames.sliderTabRange);\n }\n }\n this.hiddenInput.focus();\n this.hiddenInput.blur();\n this.isElementFocused = false;\n }\n };\n Slider.prototype.removeElement = function (element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element);\n }\n };\n Slider.prototype.changeSliderType = function (type, args) {\n if (this.isMaterialTooltip && this.materialHandle) {\n this.sliderContainer.classList.remove(classNames.materialSlider);\n this.removeElement(this.materialHandle);\n this.materialHandle = undefined;\n }\n this.removeElement(this.firstHandle);\n this.firstHandle = undefined;\n if (type !== 'Default') {\n if (type === 'Range') {\n this.removeElement(this.secondHandle);\n this.secondHandle = undefined;\n }\n this.removeElement(this.rangeBar);\n this.rangeBar = undefined;\n }\n if (this.tooltip.isVisible && !isNullOrUndefined(this.tooltipObj)) {\n this.tooltipObj.destroy();\n this.tooltipElement = undefined;\n this.tooltipCollidedPosition = undefined;\n }\n if (this.limits.enabled) {\n if (type === 'MinRange' || type === 'Default') {\n if (!isNullOrUndefined(this.limitBarFirst)) {\n this.removeElement(this.limitBarFirst);\n this.limitBarFirst = undefined;\n }\n }\n else {\n if (!isNullOrUndefined(this.limitBarSecond)) {\n this.removeElement(this.limitBarSecond);\n this.limitBarSecond = undefined;\n }\n }\n }\n this.activeHandle = 1;\n this.getThemeInitialization();\n if (this.type === 'Range') {\n this.rangeValueUpdate();\n }\n this.createRangeBar();\n if (this.limits.enabled) {\n this.createLimitBar();\n }\n this.setHandler();\n this.setOrientClass();\n this.wireFirstHandleEvt(false);\n if (this.type === 'Range') {\n this.wireSecondHandleEvt(false);\n }\n this.setValue();\n if (this.tooltip.isVisible) {\n this.renderTooltip();\n this.wireMaterialTooltipEvent(false);\n }\n this.setBarColor();\n if (args !== 'tooltip') {\n this.updateConfig();\n }\n };\n Slider.prototype.changeRtl = function () {\n if (!this.enableRtl && this.type === 'Range') {\n this.value = [this.handleVal2, this.handleVal1];\n }\n this.updateConfig();\n if (this.tooltip.isVisible) {\n this.tooltipObj.refresh(this.firstHandle);\n }\n if (this.showButtons) {\n var enabledRTL = this.enableRtl && this.orientation !== 'Vertical';\n attributes(enabledRTL ? this.secondBtn : this.firstBtn, { 'aria-label': 'Decrease', title: 'Decrease' });\n attributes(enabledRTL ? this.firstBtn : this.secondBtn, { 'aria-label': 'Increase', title: 'Increase' });\n }\n };\n Slider.prototype.changeOrientation = function () {\n this.changeSliderType(this.type, 'null');\n };\n Slider.prototype.updateConfig = function () {\n this.setEnableRTL();\n this.setValue();\n if (this.tooltip.isVisible) {\n this.refreshTooltip(this.tooltipTarget);\n }\n if (this.ticks.placement !== 'None') {\n if (this.ul) {\n this.removeElement(this.ul);\n this.ul = undefined;\n this.renderScale();\n }\n }\n this.limitsPropertyChange();\n };\n Slider.prototype.limitsPropertyChange = function () {\n if (this.limits.enabled) {\n if (isNullOrUndefined(this.limitBarFirst) && this.type !== 'Range') {\n this.createLimitBar();\n }\n if (isNullOrUndefined(this.limitBarFirst) && isNullOrUndefined(this.limitBarSecond) && this.type === 'Range') {\n this.createLimitBar();\n }\n this.setLimitBar();\n this.setValue();\n }\n else {\n if (!isNullOrUndefined(this.limitBarFirst)) {\n detach(this.limitBarFirst);\n }\n if (!isNullOrUndefined(this.limitBarSecond)) {\n detach(this.limitBarSecond);\n }\n }\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @private\n */\n Slider.prototype.getPersistData = function () {\n var keyEntity = ['value'];\n return this.addOnPersist(keyEntity);\n };\n /**\n * Removes the component from the DOM and detaches all its related event handlers.\n * Also it removes the attributes and classes.\n *\n * @method destroy\n * @return {void}\n */\n Slider.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n this.unwireEvents();\n window.removeEventListener('resize', this.onresize);\n removeClass([this.sliderContainer], [classNames.sliderDisabled]);\n this.firstHandle.removeAttribute('aria-orientation');\n if (this.type === 'Range') {\n this.secondHandle.removeAttribute('aria-orientation');\n }\n this.sliderContainer.parentNode.insertBefore(this.element, this.sliderContainer);\n detach(this.sliderContainer);\n if (this.tooltip.isVisible) {\n this.tooltipObj.destroy();\n }\n this.element.innerHTML = '';\n };\n /**\n * Calls internally if any of the property value is changed.\n *\n * @private\n */\n // tslint:disable-next-line\n Slider.prototype.onPropertyChanged = function (newProp, oldProp) {\n var _this = this;\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'cssClass':\n this.setCSSClass(oldProp.cssClass);\n break;\n case 'value':\n if (newProp && oldProp) {\n var value = isNullOrUndefined(newProp.value) ?\n (this.type === 'Range' ? [this.min, this.max] : this.min) : newProp.value;\n this.setProperties({ 'value': value }, true);\n if (!isNullOrUndefined(oldProp.value) && oldProp.value.toString() !== value.toString()) {\n this.setValue();\n this.refreshTooltip(this.tooltipTarget);\n if (this.type === 'Range') {\n if (isNullOrUndefined(newProp.value) || oldProp.value[1] === value[1]) {\n this.activeHandle = 1;\n }\n else {\n this.activeHandle = 2;\n }\n }\n }\n }\n break;\n case 'min':\n case 'step':\n case 'max':\n this.setMinMaxValue();\n break;\n case 'tooltip':\n if (!isNullOrUndefined(newProp.tooltip) && !isNullOrUndefined(oldProp.tooltip)) {\n this.setTooltip(prop);\n this.wireEvents();\n }\n break;\n case 'type':\n if (!isNullOrUndefined(oldProp) && Object.keys(oldProp).length\n && !isNullOrUndefined(oldProp.type)) {\n this.changeSliderType(oldProp.type, prop);\n this.setZindex();\n }\n break;\n case 'enableRtl':\n if (oldProp.enableRtl !== newProp.enableRtl && this.orientation !== 'Vertical') {\n this.rtl = oldProp.enableRtl;\n this.changeRtl();\n }\n break;\n case 'limits':\n this.limitsPropertyChange();\n break;\n case 'orientation':\n this.changeOrientation();\n break;\n case 'ticks':\n if (!isNullOrUndefined(this.sliderContainer.querySelector('.' + classNames.scale))) {\n detach(this.ul);\n Array.prototype.forEach.call(this.sliderContainer.classList, function (className) {\n if (className.match(/e-scale-/)) {\n _this.sliderContainer.classList.remove(className);\n }\n });\n }\n if (this.ticks.placement !== 'None') {\n this.renderScale();\n this.setZindex();\n }\n break;\n case 'locale':\n if (this.showButtons) {\n this.buttonTitle();\n }\n break;\n case 'showButtons':\n if (newProp.showButtons) {\n this.setButtons();\n this.reposition();\n if (this.enabled && !this.readonly) {\n this.wireButtonEvt(false);\n }\n }\n else {\n if (this.firstBtn && this.secondBtn) {\n this.sliderContainer.removeChild(this.firstBtn);\n this.sliderContainer.removeChild(this.secondBtn);\n this.sliderContainer.classList.remove(classNames.sliderButtonClass);\n this.firstBtn = undefined;\n this.secondBtn = undefined;\n this.reposition();\n }\n }\n break;\n case 'enabled':\n this.setEnabled();\n break;\n case 'readonly':\n this.setReadOnly();\n break;\n case 'customValues':\n this.setValue();\n this.reposition();\n break;\n case 'colorRange':\n this.reposition();\n break;\n case 'width':\n this.setElementWidth(newProp.width);\n this.setMinMaxValue();\n if (this.limits) {\n this.limitsPropertyChange();\n }\n break;\n }\n }\n };\n Slider.prototype.setReadOnly = function () {\n if (this.readonly) {\n this.unwireEvents();\n this.sliderContainer.classList.add(classNames.readonly);\n }\n else {\n this.wireEvents();\n this.sliderContainer.classList.remove(classNames.readonly);\n }\n };\n Slider.prototype.setMinMaxValue = function () {\n var _this = this;\n this.setValue();\n this.refreshTooltip(this.tooltipTarget);\n if (!isNullOrUndefined(this.sliderContainer.querySelector('.' + classNames.scale))) {\n if (this.ul) {\n detach(this.ul);\n Array.prototype.forEach.call(this.sliderContainer.classList, function (className) {\n if (className.match(/e-scale-/)) {\n _this.sliderContainer.classList.remove(className);\n }\n });\n }\n }\n if (this.ticks.placement !== 'None') {\n this.renderScale();\n this.setZindex();\n }\n };\n Slider.prototype.setZindex = function () {\n this.zIndex = 6;\n if (!isNullOrUndefined(this.ticks) && this.ticks.placement !== 'None') {\n this.ul.style.zIndex = (this.zIndex + -7) + '';\n this.element.style.zIndex = (this.zIndex + 2) + '';\n }\n if (!this.isMaterial && !isNullOrUndefined(this.ticks) && this.ticks.placement === 'Both') {\n this.element.style.zIndex = (this.zIndex + 2) + '';\n }\n this.firstHandle.style.zIndex = (this.zIndex + 3) + '';\n if (this.type === 'Range') {\n this.secondHandle.style.zIndex = (this.zIndex + 4) + '';\n }\n };\n Slider.prototype.setTooltip = function (args) {\n this.changeSliderType(this.type, args);\n };\n Slider.prototype.setBarColor = function () {\n var trackPosition;\n var trackClassName;\n var child = this.sliderTrack.lastElementChild;\n while (child) {\n this.sliderTrack.removeChild(child);\n child = this.sliderTrack.lastElementChild;\n }\n for (var i = 0; i < this.colorRange.length; i++) {\n if (!isNullOrUndefined(this.colorRange[i].start) && !isNullOrUndefined(this.colorRange[i].end)) {\n if (this.colorRange[i].end > this.colorRange[i].start) {\n if (this.colorRange[i].start < this.min) {\n this.colorRange[i].start = this.min;\n }\n if (this.colorRange[i].end > this.max) {\n this.colorRange[i].end = this.max;\n }\n var startingPosition = this.checkHandlePosition(this.colorRange[i].start);\n var endPosition = this.checkHandlePosition(this.colorRange[i].end);\n var trackContainer = this.createElement('div');\n trackContainer.style.backgroundColor = this.colorRange[i].color;\n trackContainer.style.border = '1px solid ' + this.colorRange[i].color;\n if (this.orientation === 'Horizontal') {\n trackClassName = classNames.sliderHorizantalColor;\n if (this.enableRtl) {\n if (isNullOrUndefined(this.customValues)) {\n trackPosition = this.checkHandlePosition(this.max) - this.checkHandlePosition(this.colorRange[i].end);\n }\n else {\n trackPosition = this.checkHandlePosition(this.customValues.length - this.colorRange[i].end - 1);\n }\n }\n else {\n trackPosition = this.checkHandlePosition(this.colorRange[i].start);\n }\n trackContainer.style.width = endPosition - startingPosition + 'px';\n trackContainer.style.left = trackPosition + 'px';\n }\n else {\n trackClassName = classNames.sliderVerticalColor;\n trackPosition = this.checkHandlePosition(this.colorRange[i].start);\n trackContainer.style.height = endPosition - startingPosition + 'px';\n trackContainer.style.bottom = trackPosition + 'px';\n }\n trackContainer.classList.add(trackClassName);\n this.sliderTrack.appendChild(trackContainer);\n }\n }\n }\n };\n /**\n * Gets the component name\n *\n * @private\n */\n Slider.prototype.getModuleName = function () {\n return 'slider';\n };\n __decorate([\n Property(null)\n ], Slider.prototype, \"value\", void 0);\n __decorate([\n Property(null)\n ], Slider.prototype, \"customValues\", void 0);\n __decorate([\n Property(1)\n ], Slider.prototype, \"step\", void 0);\n __decorate([\n Property(null)\n ], Slider.prototype, \"width\", void 0);\n __decorate([\n Property(0)\n ], Slider.prototype, \"min\", void 0);\n __decorate([\n Property(100)\n ], Slider.prototype, \"max\", void 0);\n __decorate([\n Property(false)\n ], Slider.prototype, \"readonly\", void 0);\n __decorate([\n Property('Default')\n ], Slider.prototype, \"type\", void 0);\n __decorate([\n Collection([{}], ColorRangeData)\n ], Slider.prototype, \"colorRange\", void 0);\n __decorate([\n Complex({}, TicksData)\n ], Slider.prototype, \"ticks\", void 0);\n __decorate([\n Complex({}, LimitData)\n ], Slider.prototype, \"limits\", void 0);\n __decorate([\n Property(true)\n ], Slider.prototype, \"enabled\", void 0);\n __decorate([\n Complex({}, TooltipData)\n ], Slider.prototype, \"tooltip\", void 0);\n __decorate([\n Property(false)\n ], Slider.prototype, \"showButtons\", void 0);\n __decorate([\n Property(true)\n ], Slider.prototype, \"enableAnimation\", void 0);\n __decorate([\n Property('Horizontal')\n ], Slider.prototype, \"orientation\", void 0);\n __decorate([\n Property('')\n ], Slider.prototype, \"cssClass\", void 0);\n __decorate([\n Property(false)\n ], Slider.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Event()\n ], Slider.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], Slider.prototype, \"change\", void 0);\n __decorate([\n Event()\n ], Slider.prototype, \"changed\", void 0);\n __decorate([\n Event()\n ], Slider.prototype, \"renderingTicks\", void 0);\n __decorate([\n Event()\n ], Slider.prototype, \"renderedTicks\", void 0);\n __decorate([\n Event()\n ], Slider.prototype, \"tooltipChange\", void 0);\n Slider = __decorate([\n NotifyPropertyChanges\n ], Slider);\n return Slider;\n}(Component));\nexport { Slider };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/* eslint-disable prefer-spread */\nimport { Component, Event, NotifyPropertyChanges, Property } from '@syncfusion/ej2-base';\nimport { Browser, closest, detach, EventHandler, getInstance, select, selectAll, formatUnit } from '@syncfusion/ej2-base';\nimport { addClass, attributes, classList, isNullOrUndefined, L10n } from '@syncfusion/ej2-base';\nimport { remove, removeClass, rippleEffect } from '@syncfusion/ej2-base';\nimport { SplitButton, getModel } from '@syncfusion/ej2-splitbuttons';\nimport { Deferred } from '@syncfusion/ej2-splitbuttons';\nimport { Tooltip, getZindexPartial, Popup } from '@syncfusion/ej2-popups';\nimport { Input } from './../input/index';\nimport { NumericTextBox } from './../numerictextbox/index';\nimport { Slider } from './../slider/slider';\nvar APPLY = 'e-apply';\nvar CANCEL = 'e-cancel';\nvar CURRENT = 'e-current';\nvar CONTAINER = 'e-container';\nvar CTRLBTN = 'e-ctrl-btn';\nvar CTRLSWITCH = 'e-switch-ctrl-btn';\nvar DISABLED = 'e-disabled';\nvar FORMATSWITCH = 'e-value-switch-btn';\nvar HANDLER = 'e-handler';\nvar HEX = 'e-hex';\nvar HIDEHEX = 'e-hide-hex-value';\nvar HIDEOPACITY = 'e-hide-opacity';\nvar HIDERGBA = 'e-hide-switchable-value';\nvar HIDEVALUE = 'e-hide-value';\nvar HIDEVALUESWITCH = 'e-hide-valueswitcher';\nvar HSVAREA = 'e-hsv-color';\nvar HSVCONTAINER = 'e-hsv-container';\nvar INPUTWRAPPER = 'e-selected-value';\nvar MODESWITCH = 'e-mode-switch-btn';\nvar NOCOLOR = 'e-nocolor-item';\nvar OPACITY = 'e-opacity-value';\nvar PALETTES = 'e-palette';\nvar PALETTECONTENT = 'e-color-palette';\nvar PICKERCONTENT = 'e-color-picker';\nvar PREVIEW = 'e-preview-container';\nvar PREVIOUS = 'e-previous';\nvar RTL = 'e-rtl';\nvar SHOWVALUE = 'e-show-value';\nvar SELECT = 'e-selected';\nvar SPLITPREVIEW = 'e-split-preview';\nvar TILE = 'e-tile';\nvar presets = {\n default: ['#000000', '#f44336', '#e91e63', '#9c27b0', '#673ab7', '#2196f3', '#03a9f4', '#00bcd4', '#009688', '#ffeb3b',\n '#ffffff', '#ffebee', '#fce4ec', '#f3e5f5', '#ede7f6', '#e3f2fd', '#e1f5fe', '#e0f7fa', '#e0f2f1', '#fffde7',\n '#f2f2f2', '#ffcdd2', '#f8bbd0', '#e1bee7', '#d1c4e9', '#bbdefb', '#b3e5fc', '#b2ebf2', '#b2dfdb', '#fff9c4',\n '#e6e6e6', '#ef9a9a', '#f48fb1', '#ce93d8', '#b39ddb', '#90caf9', '#81d4fa', '#80deea', '#80cbc4', '#fff59d',\n '#cccccc', '#e57373', '#f06292', '#ba68c8', '#9575cd', '#64b5f6', '#4fc3f7', '#4dd0e1', '#4db6ac', '#fff176',\n '#b3b3b3', '#ef5350', '#ec407a', '#ab47bc', '#7e57c2', '#42a5f5', '#29b6f6', '#26c6da', '#26a69a', '#ffee58',\n '#999999', '#e53935', '#d81b60', '#8e24aa', '#5e35b1', '#1e88e5', '#039be5', '#00acc1', '#00897b', '#fdd835',\n '#808080', '#d32f2f', '#c2185b', '#7b1fa2', '#512da8', '#1976d2', '#0288d1', '#0097a7', '#00796b', '#fbc02d',\n '#666666', '#c62828', '#ad1457', '#6a1b9a', '#4527a0', '#1565c0', '#0277bd', '#00838f', '#00695c', '#f9a825',\n '#4d4d4d', '#b71c1c', '#880e4f', '#4a148c', '#311b92', '#0d47a1', '#01579b', '#006064', '#004d40', '#f57f17']\n};\n/**\n * ColorPicker component is a user interface to select and adjust color values. It provides supports for various\n * color specification like Red Green Blue, Hue Saturation Value and Hex codes.\n * ```html\n * \n * ```\n * ```typescript\n * \n * ```\n */\nvar ColorPicker = /** @class */ (function (_super) {\n __extends(ColorPicker, _super);\n function ColorPicker(options, element) {\n return _super.call(this, options, element) || this;\n }\n ColorPicker.prototype.preRender = function () {\n var ele = this.element;\n this.formElement = closest(this.element, 'form');\n if (this.formElement) {\n EventHandler.add(this.formElement, 'reset', this.formResetHandler, this);\n }\n var localeText = { Apply: 'Apply', Cancel: 'Cancel', ModeSwitcher: 'Switch Mode' };\n this.l10n = new L10n('colorpicker', localeText, this.locale);\n if (ele.getAttribute('ejs-for') && !ele.getAttribute('name')) {\n ele.setAttribute('name', ele.id);\n }\n };\n /**\n * To Initialize the component rendering\n *\n * @private\n * @returns {void}\n */\n ColorPicker.prototype.render = function () {\n this.initWrapper();\n if (this.inline) {\n this.createWidget();\n }\n else {\n this.createSplitBtn();\n }\n if (!this.enableOpacity) {\n addClass([this.container.parentElement], HIDEOPACITY);\n }\n this.renderComplete();\n };\n ColorPicker.prototype.initWrapper = function () {\n var wrapper = this.createElement('div', { className: 'e-' + this.getModuleName() + '-wrapper' });\n this.element.parentNode.insertBefore(wrapper, this.element);\n wrapper.appendChild(this.element);\n attributes(this.element, { 'tabindex': '-1', 'spellcheck': 'false', 'aria-label': 'colorpicker' });\n this.container = this.createElement('div', { className: CONTAINER });\n this.getWrapper().appendChild(this.container);\n var value = this.value ? this.roundValue(this.value).toLowerCase() : '#008000ff';\n if (this.noColor && this.mode === 'Palette' && this.value === '') {\n value = '';\n }\n var slicedValue = value.slice(0, 7);\n if (isNullOrUndefined(this.initialInputValue)) {\n this.initialInputValue = slicedValue;\n }\n this.element.value = slicedValue;\n if (this.enableOpacity) {\n this.setProperties({ 'value': value }, true);\n }\n else {\n this.setProperties({ 'value': slicedValue }, true);\n }\n if (this.enableRtl) {\n wrapper.classList.add(RTL);\n }\n if (this.cssClass) {\n addClass([wrapper], this.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n this.tileRipple = rippleEffect(this.container, { selector: '.' + TILE });\n this.ctrlBtnRipple = rippleEffect(this.container, { selector: '.e-btn' });\n };\n ColorPicker.prototype.getWrapper = function () {\n return this.element.parentElement;\n };\n ColorPicker.prototype.createWidget = function () {\n if (this.mode === 'Palette') {\n this.createPalette();\n if (!this.inline) {\n this.firstPaletteFocus();\n }\n }\n else {\n this.createPicker();\n if (!this.inline) {\n this.getDragHandler().focus();\n }\n }\n this.isRgb = true;\n this.createInput();\n this.createCtrlBtn();\n if (!this.disabled) {\n this.wireEvents();\n }\n if (this.inline && this.disabled) {\n this.toggleDisabled(true);\n }\n if (Browser.isDevice) {\n this.refreshPopupPos();\n }\n };\n ColorPicker.prototype.createSplitBtn = function () {\n var _this = this;\n var splitButton = this.createElement('button', { className: 'e-split-colorpicker' });\n this.getWrapper().appendChild(splitButton);\n this.splitBtn = new SplitButton({\n iconCss: 'e-selected-color',\n target: this.container,\n disabled: this.disabled,\n enableRtl: this.enableRtl,\n createPopupOnClick: this.createPopupOnClick,\n open: this.onOpen.bind(this),\n click: function () {\n _this.trigger('change', {\n currentValue: { hex: _this.value.slice(0, 7), rgba: _this.convertToRgbString(_this.hexToRgb(_this.value)) },\n previousValue: { hex: null, rgba: null }, value: _this.value\n });\n }\n });\n this.splitBtn.createElement = this.createElement;\n this.splitBtn.appendTo(splitButton);\n var preview = this.createElement('span', { className: SPLITPREVIEW });\n select('.e-selected-color', splitButton).appendChild(preview);\n preview.style.backgroundColor = this.convertToRgbString(this.hexToRgb(this.value));\n var popupEle = this.getPopupEle();\n addClass([popupEle], 'e-colorpicker-popup');\n if (this.cssClass) {\n addClass([popupEle], this.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n if (Browser.isDevice) {\n var popupInst = this.getPopupInst();\n popupInst.relateTo = document.body;\n popupInst.position = { X: 'center', Y: 'center' };\n popupInst.targetType = 'container';\n popupInst.collision = { X: 'fit', Y: 'fit' };\n popupInst.offsetY = 4;\n popupEle.style.zIndex = getZindexPartial(this.splitBtn.element).toString();\n }\n this.bindCallBackEvent();\n };\n ColorPicker.prototype.onOpen = function () {\n this.trigger('open', { element: this.container });\n };\n ColorPicker.prototype.getPopupInst = function () {\n return getInstance(this.getPopupEle(), Popup);\n };\n ColorPicker.prototype.bindCallBackEvent = function () {\n var _this = this;\n this.splitBtn.beforeOpen = function (args) {\n var callBackPromise = new Deferred();\n _this.trigger('beforeOpen', args, function (observeOpenArgs) {\n if (!observeOpenArgs.cancel) {\n var popupEle = _this.getPopupEle();\n popupEle.style.top = formatUnit(0 + pageYOffset);\n popupEle.style.left = formatUnit(0 + pageXOffset);\n popupEle.style.display = 'block';\n _this.createWidget();\n popupEle.style.display = '';\n if (Browser.isDevice) {\n _this.modal = _this.createElement('div');\n _this.modal.className = 'e-' + _this.getModuleName() + ' e-modal';\n _this.modal.style.display = 'none';\n document.body.insertBefore(_this.modal, popupEle);\n document.body.className += ' e-colorpicker-overflow';\n _this.modal.style.display = 'block';\n _this.modal.style.zIndex = (Number(popupEle.style.zIndex) - 1).toString();\n }\n }\n args.cancel = observeOpenArgs.cancel;\n callBackPromise.resolve(observeOpenArgs);\n });\n return callBackPromise;\n };\n this.splitBtn.beforeClose = function (args) {\n var callBackPromise = new Deferred();\n if (!isNullOrUndefined(args.event)) {\n var beforeCloseArgs = { element: _this.container, event: args.event, cancel: false };\n _this.trigger('beforeClose', beforeCloseArgs, function (observedCloseArgs) {\n if (Browser.isDevice && args.event.target === _this.modal) {\n observedCloseArgs.cancel = true;\n }\n if (!observedCloseArgs.cancel) {\n _this.onPopupClose();\n }\n args.cancel = observedCloseArgs.cancel;\n callBackPromise.resolve(observedCloseArgs);\n });\n }\n else {\n callBackPromise.resolve(args);\n }\n return callBackPromise;\n };\n };\n ColorPicker.prototype.onPopupClose = function () {\n this.unWireEvents();\n this.destroyOtherComp();\n this.container.style.width = '';\n select('.' + SPLITPREVIEW, this.splitBtn.element).style.backgroundColor\n = this.convertToRgbString(this.hexToRgb(this.value));\n this.container.innerHTML = '';\n removeClass([this.container], [PICKERCONTENT, PALETTECONTENT]);\n if (Browser.isDevice && this.modal) {\n removeClass([document.body], 'e-colorpicker-overflow');\n this.modal.style.display = 'none';\n this.modal.outerHTML = '';\n this.modal = null;\n }\n };\n ColorPicker.prototype.createPalette = function () {\n classList(this.container, [PALETTECONTENT], [PICKERCONTENT]);\n if (this.presetColors) {\n var paletteGroup = this.createElement('div', { className: 'e-custom-palette' });\n this.appendElement(paletteGroup);\n var keys = Object.keys(this.presetColors);\n if (keys.length === 1) {\n this.appendPalette(this.presetColors[keys[0]], keys[0], paletteGroup);\n }\n else {\n for (var i = 0, len = keys.length; i < len; i++) {\n this.appendPalette(this.presetColors[keys[i]], keys[i], paletteGroup);\n }\n }\n if (selectAll('.e-row', paletteGroup).length > 10) {\n addClass([paletteGroup], 'e-palette-group');\n }\n }\n else {\n this.appendPalette(presets.default, 'default');\n }\n if (this.mode === 'Palette' && !this.modeSwitcher && this.noColor) {\n this.setNoColor();\n }\n var width = parseInt(getComputedStyle(this.container).borderBottomWidth, 10);\n this.container.style.width = formatUnit(this.container.children[0].offsetWidth + width + width);\n this.rgb = this.hexToRgb(this.roundValue(this.value));\n this.hsv = this.rgbToHsv.apply(this, this.rgb);\n };\n ColorPicker.prototype.firstPaletteFocus = function () {\n if (!select('.' + SELECT, this.container.children[0])) {\n selectAll('.' + PALETTES, this.container)[0].focus();\n }\n };\n ColorPicker.prototype.appendPalette = function (colors, key, refEle) {\n var palette = this.createElement('div', { className: PALETTES, attrs: { 'tabindex': '0', 'role': 'grid' } });\n if (refEle) {\n refEle.appendChild(palette);\n }\n else {\n this.appendElement(palette);\n }\n var row;\n var tile;\n var roundedColor;\n for (var i = 0, len = colors.length; i < len; i++) {\n if (i === 0 || i % this.columns === 0) {\n row = this.createElement('div', {\n className: 'e-row', attrs: { 'role': 'row' }\n });\n palette.appendChild(row);\n }\n roundedColor = this.roundValue(colors[i]).toLowerCase();\n tile = this.createElement('span', {\n className: TILE, attrs: { 'role': 'gridcell', 'aria-label': roundedColor, 'aria-selected': 'false', 'tabindex': '0' }\n });\n this.trigger('beforeTileRender', { element: tile, presetName: key, value: colors[i] });\n row.appendChild(tile);\n if (this.value === roundedColor) {\n this.addTileSelection(tile);\n palette.focus();\n }\n tile.style.backgroundColor = this.convertToRgbString(this.hexToRgb(roundedColor));\n }\n };\n ColorPicker.prototype.setNoColor = function () {\n var noColorEle = this.container.querySelector('.e-row').children[0];\n noColorEle.classList.add(NOCOLOR);\n if (!this.value) {\n noColorEle.classList.add(SELECT);\n closest(noColorEle, '.' + PALETTES).focus();\n }\n ['aria-selected', 'aria-label'].forEach(function (attr) { noColorEle.removeAttribute(attr); });\n noColorEle.style.backgroundColor = '';\n };\n ColorPicker.prototype.appendElement = function (ele, insertPos) {\n if (insertPos === void 0) { insertPos = 0; }\n var refEle = this.container.children[insertPos];\n if (refEle) {\n this.container.insertBefore(ele, refEle);\n }\n else {\n this.container.appendChild(ele);\n }\n };\n ColorPicker.prototype.addTileSelection = function (ele) {\n ele.classList.add(SELECT);\n ele.setAttribute('aria-selected', 'true');\n };\n ColorPicker.prototype.createPicker = function () {\n classList(this.container, [PICKERCONTENT], [PALETTECONTENT]);\n var hsvContainer = this.createElement('div', { className: HSVCONTAINER });\n this.appendElement(hsvContainer);\n hsvContainer.appendChild(this.createElement('div', { className: HSVAREA }));\n var dragHandler = this.createElement('span', { className: HANDLER, attrs: { 'tabindex': '0' } });\n hsvContainer.appendChild(dragHandler);\n if (this.value === null || this.value === '') {\n this.value = '#008000ff';\n }\n this.rgb = this.hexToRgb(this.value);\n this.hsv = this.rgbToHsv.apply(this, this.rgb);\n this.setHsvContainerBg();\n this.setHandlerPosition();\n this.createSlider();\n this.createDragTooltip();\n };\n ColorPicker.prototype.setHsvContainerBg = function (h) {\n if (h === void 0) { h = this.hsv[0]; }\n this.getHsvContainer().style.backgroundColor = this.convertToRgbString(this.hsvToRgb(h, 100, 100, 1));\n };\n ColorPicker.prototype.getHsvContainer = function () {\n return select('.' + HSVCONTAINER, this.container);\n };\n ColorPicker.prototype.setHandlerPosition = function () {\n var dragHandler = this.getDragHandler();\n var hsvArea = select('.' + HSVAREA, this.container);\n if (this.enableRtl) {\n dragHandler.style.left = formatUnit(hsvArea.offsetWidth * Math.abs(100 - this.hsv[1]) / 100);\n }\n else {\n dragHandler.style.left = formatUnit(hsvArea.offsetWidth * this.hsv[1] / 100);\n }\n dragHandler.style.top = formatUnit(hsvArea.offsetHeight * (100 - this.hsv[2]) / 100);\n };\n ColorPicker.prototype.createSlider = function () {\n var sliderPreviewWrapper = this.createElement('div', { className: 'e-slider-preview' });\n this.appendElement(sliderPreviewWrapper, 1);\n this.createPreview(sliderPreviewWrapper);\n var sliderWrapper = this.createElement('div', { className: 'e-colorpicker-slider' });\n sliderPreviewWrapper.insertBefore(sliderWrapper, sliderPreviewWrapper.children[0]);\n var slider = this.createElement('div', { className: 'e-hue-slider' });\n sliderWrapper.appendChild(slider);\n this.hueSlider = new Slider({\n value: this.hsv[0],\n min: 0,\n max: 359,\n enableRtl: this.enableRtl,\n enabled: !this.disabled,\n change: this.hueChange.bind(this)\n });\n this.hueSlider.createElement = this.createElement;\n this.hueSlider.appendTo(slider);\n if (this.enableOpacity) {\n slider = this.createElement('div', { className: 'e-opacity-slider' });\n sliderWrapper.appendChild(slider);\n this.createOpacitySlider(slider);\n }\n };\n ColorPicker.prototype.createOpacitySlider = function (slider) {\n this.opacitySlider = new Slider({\n value: this.rgb[3] * 100,\n min: 0,\n max: 100,\n enableRtl: this.enableRtl,\n enabled: !this.disabled,\n change: this.opacityChange.bind(this)\n });\n this.opacitySlider.createElement = this.createElement;\n this.opacitySlider.appendTo(slider);\n var opacityBgTrack = this.createElement('div', { className: 'e-opacity-empty-track' });\n slider.appendChild(opacityBgTrack);\n this.updateOpacitySliderBg();\n };\n ColorPicker.prototype.updateOpacitySliderBg = function () {\n var direction = this.enableRtl ? 'to left' : 'to right';\n var opacityEle = select('.e-opacity-empty-track', this.opacitySlider.element);\n if (opacityEle) {\n opacityEle.style.background =\n 'linear-gradient(' + direction + ', rgba(' + this.rgb.slice(0, 3) + ', 0) 0%, ' +\n this.convertToRgbString(this.rgb.slice(0, 3)) + ' 100%)';\n }\n };\n ColorPicker.prototype.hueChange = function (args) {\n this.hsv[0] = args.value;\n this.setHsvContainerBg();\n this.convertToOtherFormat();\n };\n ColorPicker.prototype.opacityChange = function (args) {\n var value = args.value;\n var pValue = this.rgbToHex(this.rgb);\n this.hsv[3] = value / 100;\n this.rgb[3] = value / 100;\n var cValue = this.rgbToHex(this.rgb);\n this.updateOpacityInput(value);\n var rgb = this.convertToRgbString(this.rgb);\n this.updatePreview(rgb);\n this.triggerEvent(cValue, pValue, rgb);\n };\n ColorPicker.prototype.updateOpacityInput = function (value) {\n if (this.enableOpacity && !this.getWrapper().classList.contains(HIDEVALUE)) {\n var opacityTextBoxInst = getInstance(select('.' + OPACITY, this.container), NumericTextBox);\n opacityTextBoxInst.value = value;\n opacityTextBoxInst.dataBind();\n }\n };\n ColorPicker.prototype.createPreview = function (parentEle) {\n var previewContainer = this.createElement('div', { className: PREVIEW });\n parentEle.appendChild(previewContainer);\n var preview = this.createElement('span', { className: 'e-preview ' + CURRENT });\n previewContainer.appendChild(preview);\n var colorValue = this.convertToRgbString(this.rgb);\n preview.style.backgroundColor = colorValue;\n preview = this.createElement('span', { className: 'e-preview ' + PREVIOUS });\n previewContainer.appendChild(preview);\n preview.style.backgroundColor = colorValue;\n };\n ColorPicker.prototype.isPicker = function () {\n return !this.container.classList.contains(PALETTECONTENT);\n };\n ColorPicker.prototype.getPopupEle = function () {\n return this.container.parentElement;\n };\n ColorPicker.prototype.createNumericInput = function (element, value, label, max) {\n var _this = this;\n var numericInput = new NumericTextBox({\n value: value,\n placeholder: label,\n min: 0,\n max: max,\n format: '###.##',\n showSpinButton: false,\n floatLabelType: 'Always',\n enableRtl: this.enableRtl,\n enabled: !this.disabled,\n readonly: this.isPicker() ? false : true,\n change: function (args) {\n if (args.event) {\n _this.inputHandler(args.event);\n }\n }\n });\n numericInput.createElement = this.createElement;\n numericInput.appendTo(element);\n };\n ColorPicker.prototype.createInput = function () {\n var isPicker = this.isPicker();\n var wrapper = this.getWrapper();\n if ((isPicker && !wrapper.classList.contains(HIDEVALUE)) || (!isPicker && wrapper.classList.contains(SHOWVALUE))) {\n var inputWrap = this.createElement('div', { className: INPUTWRAPPER });\n if (isPicker) {\n this.appendElement(inputWrap, 2);\n }\n else {\n this.appendElement(inputWrap, 1);\n }\n var container = this.createElement('div', { className: 'e-input-container' });\n inputWrap.appendChild(container);\n if (!wrapper.classList.contains(HIDEVALUESWITCH)) {\n this.appendValueSwitchBtn(inputWrap);\n }\n if (!wrapper.classList.contains(HIDEHEX)) {\n var hexInput = this.createElement('input', {\n className: HEX,\n attrs: { 'maxlength': '7', 'spellcheck': 'false', 'aria-label': 'HEX' }\n });\n container.appendChild(hexInput);\n Input.createInput({\n element: hexInput,\n floatLabelType: 'Always',\n properties: {\n placeholder: 'HEX',\n enableRtl: this.enableRtl,\n enabled: !this.disabled,\n readonly: this.isPicker() ? false : true\n }\n }, this.createElement);\n Input.setValue(this.value.slice(0, 7), hexInput);\n hexInput.addEventListener('input', this.inputHandler.bind(this));\n }\n if (!wrapper.classList.contains(HIDERGBA)) {\n var label = void 0;\n var value = void 0;\n if (this.isRgb) {\n label = 'RGB';\n value = this.rgb;\n }\n else {\n label = 'HSV';\n value = this.hsv;\n }\n var clsName = ['rh', 'gs', 'bv'];\n for (var i = 0; i < 3; i++) {\n this.createNumericInput(container.appendChild(this.createElement('input', { className: 'e-' + clsName[i] + '-value' })), value[i], label[i], 255);\n }\n if (this.enableOpacity) {\n this.appendOpacityValue(container);\n }\n }\n }\n };\n ColorPicker.prototype.appendOpacityValue = function (container) {\n this.createNumericInput(container.appendChild(this.createElement('input', { className: OPACITY })), this.rgb[3] * 100, 'A', 100);\n };\n ColorPicker.prototype.appendValueSwitchBtn = function (targetEle) {\n var valueSwitchBtn = this.createElement('button', {\n className: 'e-icons e-css e-btn e-flat e-icon-btn ' + FORMATSWITCH,\n attrs: { 'title': 'Toggle format' }\n });\n targetEle.appendChild(valueSwitchBtn);\n if (this.isPicker() && !this.getWrapper().classList.contains(HIDERGBA)) {\n valueSwitchBtn.addEventListener('click', this.formatSwitchHandler.bind(this));\n }\n };\n ColorPicker.prototype.createCtrlBtn = function () {\n if (this.modeSwitcher || this.showButtons) {\n this.l10n.setLocale(this.locale);\n var btnWrapper = this.createElement('div', { className: CTRLSWITCH });\n this.container.appendChild(btnWrapper);\n if (this.showButtons) {\n var controlBtnWrapper = this.createElement('div', { className: CTRLBTN });\n btnWrapper.appendChild(controlBtnWrapper);\n var apply = this.l10n.getConstant('Apply');\n controlBtnWrapper.appendChild(this.createElement('button', {\n innerHTML: apply,\n className: 'e-btn e-css e-flat e-primary e-small ' + APPLY,\n attrs: { 'title': apply }\n }));\n var cancel = this.l10n.getConstant('Cancel');\n controlBtnWrapper.appendChild(this.createElement('button', {\n innerHTML: cancel,\n className: 'e-btn e-css e-flat e-small ' + CANCEL,\n attrs: { 'title': cancel }\n }));\n }\n if (this.modeSwitcher) {\n this.appendModeSwitchBtn();\n }\n }\n };\n ColorPicker.prototype.appendModeSwitchBtn = function () {\n var modeSwitcher = this.createElement('button', {\n className: 'e-icons e-btn e-flat e-icon-btn ' + MODESWITCH, attrs: { title: this.l10n.getConstant('ModeSwitcher') }\n });\n select('.' + CTRLSWITCH, this.container).insertBefore(modeSwitcher, select('.' + CTRLBTN, this.container));\n };\n ColorPicker.prototype.createDragTooltip = function () {\n var _this = this;\n var tooltip = new Tooltip({\n opensOn: 'Custom',\n showTipPointer: false,\n cssClass: 'e-color-picker-tooltip',\n beforeOpen: function (args) {\n _this.tooltipEle = args.element;\n },\n animation: { open: { effect: 'None' }, close: { effect: 'None' } }\n });\n tooltip.createElement = this.createElement;\n tooltip.appendTo(this.container);\n // eslint-disable-next-line\n tooltip.open(this.container);\n this.tooltipEle.style.zIndex = getZindexPartial(this.tooltipEle).toString();\n select('.e-tip-content', this.tooltipEle).appendChild(this.createElement('div', { className: 'e-tip-transparent' }));\n };\n ColorPicker.prototype.getTooltipInst = function () {\n return getInstance(this.container, Tooltip);\n };\n ColorPicker.prototype.setTooltipOffset = function (value) {\n this.getTooltipInst().offsetY = value;\n };\n ColorPicker.prototype.toggleDisabled = function (enable) {\n if (enable) {\n this.getWrapper().classList.add(DISABLED);\n }\n else {\n this.getWrapper().classList.remove(DISABLED);\n }\n if (this.showButtons) {\n ([].slice.call(selectAll('.e-btn', this.container))).forEach(function (ele) {\n if (enable) {\n attributes(ele, { 'disabled': '' });\n }\n else {\n ele.removeAttribute('disabled');\n }\n });\n }\n };\n ColorPicker.prototype.convertToRgbString = function (rgb) {\n return rgb.length ? rgb.length === 4 ? 'rgba(' + rgb.join() + ')' : 'rgb(' + rgb.join() + ')' : '';\n };\n ColorPicker.prototype.convertToHsvString = function (hsv) {\n return hsv.length === 4 ? 'hsva(' + hsv.join() + ')' : 'hsv(' + hsv.join() + ')';\n };\n ColorPicker.prototype.updateHsv = function () {\n this.hsv[1] = this.hsv[1] > 100 ? 100 : this.hsv[1];\n this.hsv[2] = this.hsv[2] > 100 ? 100 : this.hsv[2];\n this.setHandlerPosition();\n };\n ColorPicker.prototype.convertToOtherFormat = function (isKey) {\n if (isKey === void 0) { isKey = false; }\n var pValue = this.rgbToHex(this.rgb);\n this.rgb = this.hsvToRgb.apply(this, this.hsv);\n var cValue = this.rgbToHex(this.rgb);\n var rgba = this.convertToRgbString(this.rgb);\n this.updatePreview(rgba);\n this.updateInput(cValue);\n this.triggerEvent(cValue, pValue, rgba, isKey);\n };\n ColorPicker.prototype.updateInput = function (value) {\n var wrapper = this.getWrapper();\n if (!wrapper.classList.contains(HIDEVALUE)) {\n if (!wrapper.classList.contains(HIDEHEX)) {\n Input.setValue(value.substr(0, 7), select('.' + HEX, this.container));\n }\n if (!wrapper.classList.contains(HIDERGBA)) {\n if (this.isRgb) {\n this.updateValue(this.rgb, false);\n }\n else {\n this.updateValue(this.hsv, false);\n }\n }\n }\n };\n ColorPicker.prototype.updatePreview = function (value) {\n if (this.enableOpacity) {\n this.updateOpacitySliderBg();\n }\n select('.e-tip-transparent', this.tooltipEle).style.backgroundColor = value;\n select('.' + PREVIEW + ' .' + CURRENT, this.container).style.backgroundColor = value;\n select('.' + PREVIEW + ' .' + PREVIOUS, this.container).style.backgroundColor\n = this.convertToRgbString(this.hexToRgb(this.value));\n };\n ColorPicker.prototype.getDragHandler = function () {\n return select('.' + HANDLER, this.container);\n };\n ColorPicker.prototype.removeTileSelection = function () {\n var selectedEle = [].slice.call(selectAll('.' + SELECT, this.container.children[0]));\n selectedEle.forEach(function (ele) {\n ele.classList.remove(SELECT);\n ele.setAttribute('aria-selected', 'false');\n });\n };\n ColorPicker.prototype.convertRgbToNumberArray = function (value) {\n return (value.slice(value.indexOf('(') + 1, value.indexOf(')'))).split(',').map(function (n, i) {\n return (i !== 3) ? parseInt(n, 10) : parseFloat(n);\n });\n };\n /**\n * To get color value in specified type.\n *\n * @param {string} value - Specify the color value.\n * @param {string} type - Specify the type to which the specified color needs to be converted.\n * @method getValue\n * @returns {string} - Color value\n */\n ColorPicker.prototype.getValue = function (value, type) {\n if (!value) {\n value = this.value;\n }\n type = !type ? 'hex' : type.toLowerCase();\n if (value[0] === 'r') {\n var cValue = this.convertRgbToNumberArray(value);\n if (type === 'hex' || type === 'hexa') {\n var hex = this.rgbToHex(cValue);\n return type === 'hex' ? hex.slice(0, 7) : hex;\n }\n else {\n if (type === 'hsv') {\n return this.convertToHsvString(this.rgbToHsv.apply(this, cValue.slice(0, 3)));\n }\n else {\n if (type === 'hsva') {\n return this.convertToHsvString(this.rgbToHsv.apply(this, cValue));\n }\n else {\n return 'null';\n }\n }\n }\n }\n else {\n if (value[0] === 'h') {\n var cValue = this.hsvToRgb.apply(this, this.convertRgbToNumberArray(value));\n if (type === 'rgba') {\n return this.convertToRgbString(cValue);\n }\n else {\n if (type === 'hex' || type === 'hexa') {\n var hex = this.rgbToHex(cValue);\n return type === 'hex' ? hex.slice(0, 7) : hex;\n }\n else {\n if (type === 'rgb') {\n return this.convertToRgbString(cValue.slice(0, 3));\n }\n else {\n return 'null';\n }\n }\n }\n }\n else {\n value = this.roundValue(value);\n var rgb = this.hexToRgb(value);\n if (type === 'rgb' || type === 'hsv') {\n rgb = rgb.slice(0, 3);\n }\n if (type === 'rgba' || type === 'rgb') {\n return this.convertToRgbString(rgb);\n }\n else {\n if (type === 'hsva' || type === 'hsv') {\n return this.convertToHsvString(this.rgbToHsv.apply(this, rgb));\n }\n else {\n if (type === 'hex') {\n return value.slice(0, 7);\n }\n else {\n if (type === 'a') {\n return rgb[3].toString();\n }\n else {\n return 'null';\n }\n }\n }\n }\n }\n }\n };\n /**\n * To show/hide ColorPicker popup based on current state of the SplitButton.\n *\n * @method toggle\n * @returns {void}\n */\n ColorPicker.prototype.toggle = function () {\n if (this.container.parentElement.classList.contains('e-popup-close')) {\n this.splitBtn.toggle();\n }\n else {\n this.closePopup(null);\n }\n };\n /**\n * Get component name.\n *\n * @returns {string} - Module Name\n * @private\n */\n ColorPicker.prototype.getModuleName = function () {\n return 'colorpicker';\n };\n /**\n * Gets the properties to be maintained in the persisted state.\n *\n * @returns {string} - Persist data\n */\n ColorPicker.prototype.getPersistData = function () {\n return this.addOnPersist(['value']);\n };\n ColorPicker.prototype.wireEvents = function () {\n if (this.isPicker()) {\n var dragHandler = this.getDragHandler();\n EventHandler.add(dragHandler, 'keydown', this.pickerKeyDown, this);\n var ctrlBtn = select('.' + CTRLBTN, this.container);\n if (ctrlBtn) {\n EventHandler.add(ctrlBtn, 'keydown', this.ctrlBtnKeyDown, this);\n }\n EventHandler.add(this.getHsvContainer(), 'mousedown touchstart', this.handlerDown, this);\n if (this.modeSwitcher || this.showButtons) {\n this.addCtrlSwitchEvent();\n }\n EventHandler.add(select('.' + PREVIOUS, this.container), 'click', this.previewHandler, this);\n }\n else {\n EventHandler.add(this.container, 'click', this.paletteClickHandler, this);\n EventHandler.add(this.container, 'keydown', this.paletteKeyDown, this);\n }\n };\n ColorPicker.prototype.formResetHandler = function () {\n this.value = this.initialInputValue;\n attributes(this.element, { 'value': this.initialInputValue });\n };\n ColorPicker.prototype.addCtrlSwitchEvent = function () {\n var ctrlSwitchBtn = select('.' + CTRLSWITCH, this.container);\n if (ctrlSwitchBtn) {\n EventHandler.add(ctrlSwitchBtn, 'click', this.btnClickHandler, this);\n }\n };\n ColorPicker.prototype.ctrlBtnKeyDown = function (e) {\n if (e.keyCode === 13) {\n var applyBtn = select('.' + APPLY, this.container);\n if (applyBtn) {\n var cValue = this.rgbToHex(this.rgb);\n this.triggerChangeEvent(cValue);\n }\n this.splitBtn.element.focus();\n }\n };\n ColorPicker.prototype.pickerKeyDown = function (e) {\n switch (e.keyCode) {\n case 39:\n this.handlerDragPosition(1, this.enableRtl ? -1 : 1, e);\n break;\n case 37:\n this.handlerDragPosition(1, this.enableRtl ? 1 : -1, e);\n break;\n case 38:\n this.handlerDragPosition(2, 1, e);\n break;\n case 40:\n this.handlerDragPosition(2, -1, e);\n break;\n case 13: {\n e.preventDefault();\n var cValue = this.rgbToHex(this.rgb);\n this.enterKeyHandler(cValue, e);\n }\n }\n };\n ColorPicker.prototype.enterKeyHandler = function (value, e) {\n this.triggerChangeEvent(value);\n if (!this.inline) {\n this.splitBtn.element.focus();\n }\n };\n ColorPicker.prototype.closePopup = function (e) {\n var _this = this;\n var beforeCloseArgs = { element: this.container, event: e, cancel: false };\n this.trigger('beforeClose', beforeCloseArgs, function (observedcloseArgs) {\n if (!observedcloseArgs.cancel) {\n _this.splitBtn.toggle();\n _this.onPopupClose();\n }\n });\n };\n ColorPicker.prototype.triggerChangeEvent = function (value) {\n var hex = value.slice(0, 7);\n this.trigger('change', {\n currentValue: { hex: hex, rgba: this.convertToRgbString(this.rgb) },\n previousValue: { hex: this.value.slice(0, 7), rgba: this.convertToRgbString(this.hexToRgb(this.value)) },\n value: this.enableOpacity ? value : hex\n });\n if (this.enableOpacity) {\n this.setProperties({ 'value': value }, true);\n }\n else {\n this.setProperties({ 'value': hex }, true);\n }\n this.element.value = hex ? hex : '#000000';\n };\n ColorPicker.prototype.handlerDragPosition = function (prob, value, e) {\n e.preventDefault();\n this.hsv[prob] += value * (e.ctrlKey ? 1 : 3);\n if (this.hsv[prob] < 0) {\n this.hsv[prob] = 0;\n }\n this.updateHsv();\n this.convertToOtherFormat(true);\n };\n ColorPicker.prototype.handlerDown = function (e) {\n e.preventDefault();\n if (e.type === 'mousedown') {\n this.clientX = Math.abs(e.pageX - pageXOffset);\n this.clientY = Math.abs(e.pageY - pageYOffset);\n this.setTooltipOffset(8);\n }\n else {\n this.clientX = Math.abs(e.changedTouches[0].pageX - pageXOffset);\n this.clientY = Math.abs(e.changedTouches[0].pageY - pageYOffset);\n this.setTooltipOffset(-8);\n }\n this.setHsv(this.clientX, this.clientY);\n this.getDragHandler().style.transition = 'left .4s cubic-bezier(.25, .8, .25, 1), top .4s cubic-bezier(.25, .8, .25, 1)';\n this.updateHsv();\n this.convertToOtherFormat();\n this.getDragHandler().focus();\n EventHandler.add(document, 'mousemove touchmove', this.handlerMove, this);\n EventHandler.add(document, 'mouseup touchend', this.handlerEnd, this);\n };\n ColorPicker.prototype.handlerMove = function (e) {\n if (e.type !== 'touchmove') {\n e.preventDefault();\n }\n var x;\n var y;\n if (e.type === 'mousemove') {\n x = Math.abs(e.pageX - pageXOffset);\n y = Math.abs(e.pageY - pageYOffset);\n }\n else {\n x = Math.abs(e.changedTouches[0].pageX - pageXOffset);\n y = Math.abs(e.changedTouches[0].pageY - pageYOffset);\n }\n this.setHsv(x, y);\n var dragHandler = this.getDragHandler();\n this.updateHsv();\n this.convertToOtherFormat();\n this.getTooltipInst().refresh(dragHandler);\n if (!this.tooltipEle.style.transform) {\n if (Math.abs(this.clientX - x) > 8 || Math.abs(this.clientY - y) > 8) {\n select('.' + HSVAREA, this.container).style.cursor = 'pointer';\n dragHandler.style.transition = 'none';\n if (!this.inline) {\n this.tooltipEle.style.zIndex = (parseInt(this.getPopupEle().style.zIndex, 10) + 1).toString();\n }\n this.tooltipEle.style.transform = 'rotate(45deg)';\n dragHandler.classList.add('e-hide-handler');\n }\n }\n };\n ColorPicker.prototype.setHsv = function (clientX, clientY) {\n var ele = select('.' + HSVAREA, this.container);\n var position = ele.getBoundingClientRect();\n if (this.enableRtl) {\n clientX = clientX > position.right ? 0 : Math.abs(clientX - position.right);\n }\n else {\n clientX = clientX > position.left ? Math.abs(clientX - position.left) : 0;\n }\n clientY = clientY > position.top ? Math.abs(clientY - position.top) : 0;\n this.hsv[2] = Math.round(Number(100 * (ele.offsetHeight -\n Math.max(0, Math.min(ele.offsetHeight, (clientY - ele.offsetTop)))) / ele.offsetHeight) * 10) / 10;\n this.hsv[1] =\n Math.round(Number(100 * (Math.max(0, Math.min(ele.offsetWidth, (clientX - ele.offsetLeft)))) / ele.offsetWidth) * 10) / 10;\n };\n ColorPicker.prototype.handlerEnd = function (e) {\n if (e.type !== 'touchend') {\n e.preventDefault();\n }\n EventHandler.remove(document, 'mousemove touchmove', this.handlerMove);\n EventHandler.remove(document, 'mouseup touchend', this.handlerEnd);\n var dragHandler = this.getDragHandler();\n select('.' + HSVAREA, this.container).style.cursor = '';\n if (this.tooltipEle.style.transform) {\n this.tooltipEle.style.transform = '';\n dragHandler.classList.remove('e-hide-handler');\n }\n if (!this.inline && !this.showButtons) {\n this.closePopup(e);\n }\n };\n ColorPicker.prototype.btnClickHandler = function (e) {\n var target = e.target;\n if (closest(target, '.' + MODESWITCH)) {\n e.stopPropagation();\n this.switchToPalette();\n }\n else {\n if (target.classList.contains(APPLY) || target.classList.contains(CANCEL)) {\n this.ctrlBtnClick(target, e);\n }\n }\n };\n ColorPicker.prototype.switchToPalette = function () {\n this.trigger('beforeModeSwitch', { element: this.container, mode: 'Palette' });\n this.unWireEvents();\n this.destroyOtherComp();\n detach(select('.e-slider-preview', this.container));\n if (!this.getWrapper().classList.contains(HIDEVALUE)) {\n remove(select('.' + INPUTWRAPPER, this.container));\n }\n detach(this.getHsvContainer());\n this.createPalette();\n this.firstPaletteFocus();\n this.createInput();\n this.refreshPopupPos();\n this.wireEvents();\n this.trigger('onModeSwitch', { element: this.container, mode: 'Palette' });\n };\n ColorPicker.prototype.refreshPopupPos = function () {\n if (!this.inline) {\n var popupEle = this.getPopupEle();\n popupEle.style.left = formatUnit(0 + pageXOffset);\n popupEle.style.top = formatUnit(0 + pageYOffset);\n this.getPopupInst().refreshPosition(this.splitBtn.element.parentElement);\n }\n };\n ColorPicker.prototype.formatSwitchHandler = function () {\n if (this.isRgb) {\n this.updateValue(this.hsv, true, 3, [360, 100, 100]);\n this.isRgb = false;\n }\n else {\n this.updateValue(this.rgb, true, 2);\n this.isRgb = true;\n }\n };\n ColorPicker.prototype.updateValue = function (value, format, idx, max) {\n var clsName = ['e-rh-value', 'e-gs-value', 'e-bv-value'];\n var inst;\n for (var i = 0, len = clsName.length; i < len; i++) {\n inst = getInstance(select('.' + clsName[i], this.container), NumericTextBox);\n inst.value = Math.round(value[i]);\n if (format) {\n inst.placeholder = clsName[i].substr(idx, 1).toUpperCase();\n inst.max = max ? max[i] : 255;\n }\n inst.dataBind();\n }\n };\n ColorPicker.prototype.previewHandler = function (e) {\n var target = e.target;\n var pValue = this.rgbToHex(this.rgb);\n this.rgb = this.convertRgbToNumberArray(target.style.backgroundColor);\n if (!this.rgb[3]) {\n this.rgb[3] = 1;\n }\n var cValue = this.rgbToHex(this.rgb);\n var hsv = this.rgbToHsv.apply(this, this.rgb);\n if (hsv[0] !== this.hsv[0]) {\n this.hueSlider.setProperties({ 'value': hsv[0] }, true);\n this.hueSlider.refresh();\n }\n this.setHsvContainerBg(hsv[0]);\n if (this.enableOpacity && hsv[3] !== this.hsv[3]) {\n this.opacitySlider.setProperties({ 'value': hsv[3] * 100 }, true);\n this.opacitySlider.refresh();\n this.updateOpacitySliderBg();\n }\n this.hsv = hsv;\n this.setHandlerPosition();\n this.updateInput(cValue);\n select('.' + PREVIEW + ' .' + CURRENT, this.container).style.backgroundColor = this.convertToRgbString(this.rgb);\n this.triggerEvent(cValue, pValue, this.convertToRgbString(this.rgb));\n };\n ColorPicker.prototype.paletteClickHandler = function (e) {\n e.preventDefault();\n var target = e.target;\n if (target.classList.contains(TILE)) {\n this.removeTileSelection();\n this.addTileSelection(target);\n if (target.classList.contains(NOCOLOR)) {\n this.noColorTile();\n }\n else {\n var cValue = target.getAttribute('aria-label');\n var pValue = this.rgbToHex(this.rgb);\n this.rgb = this.hexToRgb(this.roundValue(cValue));\n this.hsv = this.rgbToHsv.apply(this, this.rgb);\n if (this.getWrapper().classList.contains(SHOWVALUE)) {\n this.updateInput(cValue);\n }\n this.triggerEvent(cValue, pValue, this.convertToRgbString(this.rgb));\n }\n if (!this.inline && !this.showButtons) {\n this.closePopup(e);\n }\n }\n else {\n if (closest(target, '.' + MODESWITCH)) {\n this.switchToPicker();\n }\n else {\n if (target.classList.contains(APPLY) || target.classList.contains(CANCEL)) {\n this.ctrlBtnClick(target, e);\n }\n else {\n if (this.getWrapper().classList.contains(SHOWVALUE) && closest(target, '.' + FORMATSWITCH)) {\n this.formatSwitchHandler();\n }\n }\n }\n }\n };\n ColorPicker.prototype.noColorTile = function (isKey) {\n if (isKey === void 0) { isKey = false; }\n var pValue = this.rgbToHex(this.rgb);\n this.rgb = [];\n this.hsv = [];\n this.triggerEvent('', pValue, '', isKey);\n };\n ColorPicker.prototype.switchToPicker = function () {\n var wrapper = this.getWrapper();\n this.trigger('beforeModeSwitch', { element: this.container, mode: 'Picker' });\n this.unWireEvents();\n ([].slice.call(selectAll('.' + PALETTES, this.container))).forEach(function (ele) {\n detach(ele);\n });\n if (wrapper.classList.contains(SHOWVALUE)) {\n detach(select('.' + INPUTWRAPPER, this.container));\n }\n this.container.style.width = '';\n var grpEle = select('.e-custom-palette', this.container);\n if (this.presetColors) {\n remove(grpEle);\n }\n this.createPicker();\n this.getDragHandler().focus();\n this.createInput();\n this.refreshPopupPos();\n this.wireEvents();\n this.trigger('onModeSwitch', { element: this.container, mode: 'Picker' });\n };\n ColorPicker.prototype.ctrlBtnClick = function (ele, e) {\n if (ele.classList.contains(APPLY)) {\n var cValue = this.rgbToHex(this.rgb);\n this.triggerChangeEvent(cValue);\n }\n if (!this.inline) {\n this.closePopup(e);\n this.splitBtn.element.focus();\n }\n };\n ColorPicker.prototype.paletteKeyDown = function (e) {\n var target = e.target;\n var selectedEle;\n var idx;\n var tiles = [].slice.call(selectAll('.' + TILE, target));\n if ((target.classList.contains('e-palette') || target.classList.contains('e-tile')) && (e.keyCode === 9 && !e.shiftKey)) {\n if (this.modeSwitcher || this.showButtons) {\n this.getPopupEle().querySelector('.e-btn').focus();\n e.preventDefault();\n e.stopPropagation();\n }\n }\n else if ((target.classList.contains('e-palette') || target.classList.contains('e-tile')) && (e.keyCode === 9 && e.shiftKey)) {\n if (this.splitBtn) {\n this.splitBtn.element.focus();\n e.preventDefault();\n e.stopPropagation();\n }\n }\n var prevSelectedEle = (tiles.filter(function (tile) { return tile.classList.contains('e-selected'); })).pop();\n switch (!e.altKey && e.keyCode) {\n case 39:\n e.preventDefault();\n selectedEle = prevSelectedEle ? tiles[this.tilePosition(tiles, prevSelectedEle, this.enableRtl ? -1 : 1)]\n : tiles[this.enableRtl ? tiles.length - 1 : 0];\n this.keySelectionChanges(selectedEle);\n break;\n case 37:\n e.preventDefault();\n selectedEle = prevSelectedEle ? tiles[this.tilePosition(tiles, prevSelectedEle, this.enableRtl ? 1 : -1)]\n : tiles[this.enableRtl ? 0 : tiles.length - 1];\n this.keySelectionChanges(selectedEle);\n break;\n case 38:\n e.preventDefault();\n idx = prevSelectedEle ? this.tilePosition(tiles, prevSelectedEle, -this.columns) : 0;\n selectedEle = tiles[idx] ? tiles[idx] : tiles[idx - this.columns];\n this.keySelectionChanges(selectedEle);\n break;\n case 40:\n e.preventDefault();\n idx = prevSelectedEle ? this.tilePosition(tiles, prevSelectedEle, this.columns) : tiles.length - 1;\n if (tiles[idx]) {\n selectedEle = tiles[idx];\n }\n else {\n idx %= tiles.length;\n idx += tiles[tiles.length - 1].parentElement.childElementCount;\n selectedEle = tiles[idx];\n }\n this.keySelectionChanges(selectedEle);\n break;\n case 13:\n e.preventDefault();\n if (prevSelectedEle) {\n var cValue = prevSelectedEle.getAttribute('aria-label');\n this.enterKeyHandler(cValue ? cValue : '', e);\n }\n }\n };\n ColorPicker.prototype.keySelectionChanges = function (newEle) {\n this.removeTileSelection();\n this.addTileSelection(newEle);\n if (newEle.classList.contains(NOCOLOR)) {\n this.noColorTile(true);\n }\n else {\n var cValue = newEle.getAttribute('aria-label');\n var pValue = this.rgbToHex(this.rgb);\n this.rgb = this.hexToRgb(cValue);\n this.hsv = this.rgbToHsv.apply(this, this.rgb);\n if (this.getWrapper().classList.contains(SHOWVALUE)) {\n this.updateInput(cValue);\n }\n this.triggerEvent(cValue, pValue, this.convertToRgbString(this.rgb), true);\n }\n };\n ColorPicker.prototype.tilePosition = function (items, element, cIdx) {\n items = Array.prototype.slice.call(items);\n var n = items.length;\n var emptyCount = this.columns - items[n - 1].parentElement.childElementCount;\n var idx = items.indexOf(element);\n idx += cIdx;\n if (idx < 0) {\n idx += n + emptyCount;\n }\n else {\n idx %= n + emptyCount;\n }\n return idx;\n };\n ColorPicker.prototype.inputHandler = function (e) {\n var target = e.target;\n if (!target.value.length) {\n return;\n }\n var hsv;\n var pValue;\n var label = select('.e-float-text', target.parentElement).textContent;\n switch (label) {\n case 'HEX': {\n var value = '';\n if ((target.value[0] === '#' && target.value.length !== 5) || (target.value[0] !== '#' && target.value.length !== 4)) {\n value = this.roundValue(target.value);\n }\n if (value.length === 9) {\n pValue = this.rgbToHex(this.rgb);\n this.rgb = this.hexToRgb(value + value.substr(-2));\n this.inputValueChange(this.rgbToHsv.apply(this, this.rgb), pValue, target.value);\n }\n else {\n return;\n }\n break;\n }\n case 'R':\n if (this.rgb[0] !== Number(target.value)) {\n pValue = this.rgbToHex(this.rgb);\n this.rgb[0] = Number(target.value);\n hsv = this.rgbToHsv.apply(this, this.rgb);\n this.inputValueChange(hsv, pValue);\n }\n break;\n case 'G':\n if (this.rgb[1] !== Number(target.value)) {\n pValue = this.rgbToHex(this.rgb);\n this.rgb[1] = Number(target.value);\n hsv = this.rgbToHsv.apply(this, this.rgb);\n this.inputValueChange(hsv, pValue);\n }\n break;\n case 'B':\n if (this.rgb[2] !== Number(target.value)) {\n pValue = this.rgbToHex(this.rgb);\n this.rgb[2] = Number(target.value);\n hsv = this.rgbToHsv.apply(this, this.rgb);\n this.inputValueChange(hsv, pValue);\n }\n break;\n case 'H':\n this.hueSlider.value = Number(target.value);\n break;\n case 'S':\n if (this.hsv[1] !== Number(target.value)) {\n this.hsv[1] = Number(target.value);\n this.updateHsv();\n this.convertToOtherFormat();\n }\n break;\n case 'V':\n if (this.hsv[2] !== Number(target.value)) {\n this.hsv[2] = Number(target.value);\n this.updateHsv();\n this.convertToOtherFormat();\n }\n break;\n case 'A':\n this.opacitySlider.value = Number(target.value);\n break;\n }\n };\n ColorPicker.prototype.inputValueChange = function (hsv, pValue, value) {\n if (hsv[0] !== this.hsv[0]) {\n this.hueSlider.setProperties({ 'value': hsv[0] }, true);\n this.hueSlider.refresh();\n this.setHsvContainerBg(hsv[0]);\n }\n this.hsv = hsv;\n var cValue = this.rgbToHex(this.rgb);\n this.setHandlerPosition();\n this.updateInput(value ? value : cValue);\n var rgba = this.convertToRgbString(this.rgb);\n this.updatePreview(rgba);\n this.triggerEvent(cValue, pValue, rgba);\n };\n ColorPicker.prototype.triggerEvent = function (cValue, pValue, rgba, isKey) {\n if (isKey === void 0) { isKey = false; }\n var hex = cValue.slice(0, 7);\n if (!this.showButtons && !isKey) {\n this.trigger('change', { currentValue: { hex: hex, rgba: rgba },\n previousValue: { hex: this.value.slice(0, 7), rgba: this.convertToRgbString(this.hexToRgb(this.value)) }, value: cValue });\n if (this.enableOpacity) {\n this.setProperties({ 'value': cValue }, true);\n }\n else {\n this.setProperties({ 'value': hex }, true);\n }\n this.element.value = hex ? hex : '#000000';\n }\n else {\n this.trigger('select', {\n currentValue: { hex: hex, rgba: rgba },\n previousValue: { hex: pValue.slice(0, 7), rgba: this.convertToRgbString(this.hexToRgb(pValue)) }\n });\n }\n };\n /**\n * Removes the component from the DOM and detaches all its related event handlers.\n * Also it maintains the initial input element from the DOM.\n *\n * @method destroy\n * @returns {void}\n */\n ColorPicker.prototype.destroy = function () {\n var _this = this;\n var wrapper = this.getWrapper();\n _super.prototype.destroy.call(this);\n ['tabindex', 'spellcheck'].forEach(function (attr) { _this.element.removeAttribute(attr); });\n if (this.inline) {\n this.unWireEvents();\n this.destroyOtherComp();\n }\n else {\n if (this.isPopupOpen()) {\n this.unWireEvents();\n this.destroyOtherComp();\n }\n this.splitBtn.destroy();\n this.splitBtn = null;\n }\n this.tileRipple();\n this.tileRipple = null;\n this.ctrlBtnRipple();\n this.ctrlBtnRipple = null;\n if (this.element.nextElementSibling) {\n detach(this.element.nextElementSibling);\n }\n if (wrapper) {\n wrapper.parentElement.insertBefore(this.element, wrapper);\n detach(wrapper);\n }\n this.container = null;\n if (this.formElement) {\n EventHandler.remove(this.formElement, 'reset', this.formResetHandler);\n }\n };\n ColorPicker.prototype.destroyOtherComp = function () {\n if (this.isPicker()) {\n var popup = closest(this.hueSlider.element, '.e-color-picker');\n var numericElemColl = popup.querySelectorAll('.e-numerictextbox');\n for (var i = 0; i < numericElemColl.length; i++) {\n getInstance(numericElemColl[i], NumericTextBox).destroy();\n }\n this.hueSlider.destroy();\n if (this.enableOpacity) {\n this.opacitySlider.destroy();\n this.opacitySlider = null;\n }\n this.hueSlider = null;\n var tooltipInst = this.getTooltipInst();\n tooltipInst.close();\n tooltipInst.destroy();\n this.tooltipEle = null;\n }\n };\n ColorPicker.prototype.isPopupOpen = function () {\n return this.getPopupEle().classList.contains('e-popup-open');\n };\n ColorPicker.prototype.unWireEvents = function () {\n if (this.isPicker()) {\n var dragHandler = this.getDragHandler();\n EventHandler.remove(dragHandler, 'keydown', this.pickerKeyDown);\n var ctrlBtn = select('.' + CTRLBTN, this.container);\n if (ctrlBtn) {\n EventHandler.remove(ctrlBtn, 'keydown', this.ctrlBtnKeyDown);\n }\n EventHandler.remove(this.getHsvContainer(), 'mousedown touchstart', this.handlerDown);\n if (this.modeSwitcher || this.showButtons) {\n EventHandler.remove(select('.' + CTRLSWITCH, this.container), 'click', this.btnClickHandler);\n }\n EventHandler.remove(select('.' + PREVIOUS, this.container), 'click', this.previewHandler);\n }\n else {\n EventHandler.remove(this.container, 'click', this.paletteClickHandler);\n EventHandler.remove(this.container, 'keydown', this.paletteKeyDown);\n }\n };\n ColorPicker.prototype.roundValue = function (value) {\n if (!value) {\n return '';\n }\n if (value[0] !== '#') {\n value = '#' + value;\n }\n var len = value.length;\n if (len === 4) {\n value += 'f';\n len = 5;\n }\n if (len === 5) {\n var tempValue = '';\n for (var i = 1, len_1 = value.length; i < len_1; i++) {\n tempValue += (value.charAt(i) + value.charAt(i));\n }\n value = '#' + tempValue;\n len = 9;\n }\n if (len === 7) {\n value += 'ff';\n }\n return value;\n };\n ColorPicker.prototype.hexToRgb = function (hex) {\n if (!hex) {\n return [];\n }\n hex = hex.trim();\n if (hex.length !== 9) {\n hex = this.roundValue(hex);\n }\n var opacity = Number((parseInt(hex.slice(-2), 16) / 255).toFixed(2));\n hex = hex.slice(1, 7);\n var bigInt = parseInt(hex, 16);\n var h = [];\n h.push((bigInt >> 16) & 255);\n h.push((bigInt >> 8) & 255);\n h.push(bigInt & 255);\n h.push(opacity);\n return h;\n };\n ColorPicker.prototype.rgbToHsv = function (r, g, b, opacity) {\n if (this.rgb && !this.rgb.length) {\n return [];\n }\n r /= 255;\n g /= 255;\n b /= 255;\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h;\n var v = max;\n var d = max - min;\n var s = max === 0 ? 0 : d / max;\n if (max === min) {\n h = 0;\n }\n else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n var hsv = [Math.round(h * 360), Math.round(s * 1000) / 10, Math.round(v * 1000) / 10];\n if (!isNullOrUndefined(opacity)) {\n hsv.push(opacity);\n }\n return hsv;\n };\n ColorPicker.prototype.hsvToRgb = function (h, s, v, opacity) {\n var r;\n var g;\n var b;\n s /= 100;\n v /= 100;\n if (s === 0) {\n r = g = b = v;\n return [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255), opacity];\n }\n h /= 60;\n var i = Math.floor(h);\n var f = h - i;\n var p = v * (1 - s);\n var q = v * (1 - s * f);\n var t = v * (1 - s * (1 - f));\n switch (i) {\n case 0:\n r = v;\n g = t;\n b = p;\n break;\n case 1:\n r = q;\n g = v;\n b = p;\n break;\n case 2:\n r = p;\n g = v;\n b = t;\n break;\n case 3:\n r = p;\n g = q;\n b = v;\n break;\n case 4:\n r = t;\n g = p;\n b = v;\n break;\n default:\n r = v;\n g = p;\n b = q;\n }\n var rgb = [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255)];\n if (!isNullOrUndefined(opacity)) {\n rgb.push(opacity);\n }\n return rgb;\n };\n ColorPicker.prototype.rgbToHex = function (rgb) {\n return rgb.length ? ('#' + this.hex(rgb[0]) + this.hex(rgb[1]) + this.hex(rgb[2]) +\n (!isNullOrUndefined(rgb[3]) ? (rgb[3] !== 0 ? (Math.round(rgb[3] * 255) + 0x10000).toString(16).substr(-2) : '00') : '')) : '';\n };\n ColorPicker.prototype.hex = function (x) {\n return ('0' + x.toString(16)).slice(-2);\n };\n ColorPicker.prototype.changeModeSwitcherProp = function (prop) {\n var ctrlSwitchWrapper = select('.' + CTRLSWITCH, this.container);\n if (prop) {\n if (ctrlSwitchWrapper) {\n this.appendModeSwitchBtn();\n }\n else {\n this.createCtrlBtn();\n if (this.isPicker() && !this.disabled) {\n this.addCtrlSwitchEvent();\n }\n }\n }\n else {\n if (ctrlSwitchWrapper) {\n if (this.showButtons) {\n detach(select('.' + MODESWITCH, ctrlSwitchWrapper));\n }\n else {\n remove(ctrlSwitchWrapper);\n }\n }\n }\n };\n ColorPicker.prototype.changeShowBtnProps = function (prop) {\n var ctrlBtnWrapper = select('.' + CTRLSWITCH, this.container);\n if (prop) {\n if (ctrlBtnWrapper) {\n remove(ctrlBtnWrapper);\n }\n this.createCtrlBtn();\n if (this.isPicker() && !this.disabled) {\n this.addCtrlSwitchEvent();\n }\n }\n else {\n if (this.modeSwitcher) {\n detach(select('.' + CTRLBTN, ctrlBtnWrapper));\n }\n else {\n remove(ctrlBtnWrapper);\n }\n }\n };\n ColorPicker.prototype.changeValueProp = function (newProp) {\n if (this.isPicker()) {\n this.rgb = this.hexToRgb(newProp);\n this.hsv = this.rgbToHsv.apply(this, this.rgb);\n this.setHandlerPosition();\n detach(closest(this.hueSlider.element, '.e-slider-preview'));\n this.createSlider();\n this.setHsvContainerBg();\n this.updateInput(newProp);\n if (this.rgb.length === 4) {\n this.updateOpacityInput(this.rgb[3] * 100);\n }\n }\n else {\n this.removeTileSelection();\n var ele = this.container.querySelector('span[aria-label=\"' + this.roundValue(newProp) + '\"]');\n if (ele) {\n this.addTileSelection(ele);\n }\n }\n };\n ColorPicker.prototype.setInputEleProps = function () {\n remove(select('.' + INPUTWRAPPER, this.container));\n this.createInput();\n };\n ColorPicker.prototype.changeDisabledProp = function (newProp) {\n if (this.isPicker()) {\n this.hueSlider.enabled = !newProp;\n this.opacitySlider.enabled = !newProp;\n this.setInputEleProps();\n }\n if (newProp) {\n this.toggleDisabled(true);\n this.unWireEvents();\n }\n else {\n this.toggleDisabled(false);\n this.wireEvents();\n }\n };\n ColorPicker.prototype.changeCssClassProps = function (newProp, oldProp) {\n var wrapper = this.getWrapper();\n var popupWrapper = this.getPopupEle();\n if (oldProp) {\n removeClass([wrapper, popupWrapper], oldProp.split(' '));\n }\n if (newProp) {\n addClass([wrapper, popupWrapper], newProp.replace(/\\s+/g, ' ').trim().split(' '));\n }\n };\n ColorPicker.prototype.changeRtlProps = function (newProp) {\n if (newProp) {\n addClass([this.getWrapper()], 'e-rtl');\n }\n else {\n removeClass([this.getWrapper()], 'e-rtl');\n }\n };\n ColorPicker.prototype.changePaletteProps = function () {\n detach(this.container.children[0]);\n this.container.style.width = '';\n this.createPalette();\n };\n ColorPicker.prototype.changeOpacityProps = function (newProp) {\n var wrapper = this.getWrapper();\n if (newProp) {\n removeClass([this.container.parentElement], HIDEOPACITY);\n this.createOpacitySlider(select('.e-colorpicker-slider', this.container).appendChild(this.createElement('div', { className: 'e-opacity-slider' })));\n if (!wrapper.classList.contains(HIDEVALUE) && !wrapper.classList.contains(HIDERGBA)) {\n this.appendOpacityValue(select('.e-input-container', this.container));\n }\n }\n else {\n addClass([this.container.parentElement], HIDEOPACITY);\n this.opacitySlider.destroy();\n remove(this.opacitySlider.element);\n this.opacitySlider = null;\n if (!wrapper.classList.contains(HIDEVALUE) && !wrapper.classList.contains(HIDERGBA)) {\n remove(select('.' + OPACITY, this.container).parentElement);\n }\n }\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {ColorPickerModel} newProp - Specifies new properties\n * @param {ColorPickerModel} oldProp - Specifies old properties\n * @returns {void}\n * @private\n */\n ColorPicker.prototype.onPropertyChanged = function (newProp, oldProp) {\n var _this = this;\n if (!isNullOrUndefined(newProp.value)) {\n var value = this.roundValue(newProp.value);\n if (value.length === 9) {\n this.element.value = this.roundValue(value).slice(0, 7);\n var preview = this.splitBtn && select('.' + SPLITPREVIEW, this.splitBtn.element);\n if (preview) {\n preview.style.backgroundColor = this.convertToRgbString(this.hexToRgb(newProp.value));\n }\n }\n else if (this.noColor && this.mode === 'Palette' && this.value === '') {\n var preview = this.splitBtn && select('.' + SPLITPREVIEW, this.splitBtn.element);\n preview.style.backgroundColor = '';\n }\n else {\n this.value = oldProp.value;\n }\n }\n if (!this.inline && isNullOrUndefined(newProp.inline)) {\n var otherCompModel = ['disabled', 'enableRtl'];\n this.splitBtn.setProperties(getModel(newProp, otherCompModel));\n if (!this.isPopupOpen()) {\n this.changeCssClassProps(newProp.cssClass, oldProp.cssClass);\n this.changeRtlProps(newProp.enableRtl);\n return;\n }\n }\n var _loop_1 = function (prop) {\n switch (prop) {\n case 'inline':\n if (newProp.inline) {\n this_1.getWrapper().appendChild(this_1.container);\n this_1.splitBtn.destroy();\n detach(this_1.element.nextElementSibling);\n if (!this_1.container.children.length) {\n this_1.createWidget();\n }\n }\n else {\n this_1.destroyOtherComp();\n this_1.unWireEvents();\n this_1.container.innerHTML = '';\n this_1.createSplitBtn();\n }\n break;\n case 'cssClass': {\n this_1.changeCssClassProps(newProp.cssClass, oldProp.cssClass);\n var props = newProp.cssClass.split(' ').concat(oldProp.cssClass.split(' '));\n props = props.reduce(function (a, b) { if (a.indexOf(b) < 0) {\n a.push(b);\n } return a; }, []);\n var count_1 = 0;\n props.forEach(function (cls) {\n if (count_1 === 0 &&\n (cls === HIDEVALUE || cls === HIDEVALUESWITCH || cls === SHOWVALUE || cls === HIDEHEX || cls === HIDERGBA)) {\n var inputWrap = select('.' + INPUTWRAPPER, _this.container);\n if (inputWrap) {\n remove(select('.' + INPUTWRAPPER, _this.container));\n }\n _this.createInput();\n count_1++;\n }\n });\n break;\n }\n case 'enableRtl':\n if (this_1.isPicker()) {\n this_1.hueSlider.enableRtl = newProp.enableRtl;\n if (this_1.enableOpacity) {\n this_1.opacitySlider.enableRtl = newProp.enableRtl;\n }\n this_1.setInputEleProps();\n }\n this_1.changeRtlProps(newProp.enableRtl);\n break;\n case 'disabled':\n this_1.changeDisabledProp(newProp.disabled);\n break;\n case 'value':\n if (this_1.value !== oldProp.value) {\n this_1.changeValueProp(newProp.value);\n }\n break;\n case 'showButtons':\n this_1.changeShowBtnProps(newProp.showButtons);\n break;\n case 'mode':\n if (newProp.mode === 'Picker') {\n this_1.switchToPicker();\n }\n else {\n this_1.switchToPalette();\n }\n break;\n case 'modeSwitcher':\n this_1.changeModeSwitcherProp(newProp.modeSwitcher);\n break;\n case 'columns':\n case 'presetColors':\n if (!this_1.isPicker()) {\n this_1.changePaletteProps();\n }\n break;\n case 'noColor':\n if (newProp.noColor) {\n if (this_1.mode === 'Palette' && !this_1.modeSwitcher) {\n this_1.setNoColor();\n }\n }\n else {\n this_1.changePaletteProps();\n }\n break;\n case 'enableOpacity':\n this_1.changeOpacityProps(newProp.enableOpacity);\n break;\n }\n };\n var this_1 = this;\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n _loop_1(prop);\n }\n };\n /**\n * Sets the focus to Colorpicker\n * its native method\n *\n * @public\n * @returns {void}\n */\n ColorPicker.prototype.focusIn = function () {\n this.element.parentElement.focus();\n };\n __decorate([\n Property('#008000ff')\n ], ColorPicker.prototype, \"value\", void 0);\n __decorate([\n Property('')\n ], ColorPicker.prototype, \"cssClass\", void 0);\n __decorate([\n Property(false)\n ], ColorPicker.prototype, \"disabled\", void 0);\n __decorate([\n Property('Picker')\n ], ColorPicker.prototype, \"mode\", void 0);\n __decorate([\n Property(true)\n ], ColorPicker.prototype, \"modeSwitcher\", void 0);\n __decorate([\n Property(null)\n ], ColorPicker.prototype, \"presetColors\", void 0);\n __decorate([\n Property(true)\n ], ColorPicker.prototype, \"showButtons\", void 0);\n __decorate([\n Property(10)\n ], ColorPicker.prototype, \"columns\", void 0);\n __decorate([\n Property(false)\n ], ColorPicker.prototype, \"inline\", void 0);\n __decorate([\n Property(false)\n ], ColorPicker.prototype, \"noColor\", void 0);\n __decorate([\n Property(false)\n ], ColorPicker.prototype, \"enablePersistence\", void 0);\n __decorate([\n Property(true)\n ], ColorPicker.prototype, \"enableOpacity\", void 0);\n __decorate([\n Property(false)\n ], ColorPicker.prototype, \"createPopupOnClick\", void 0);\n __decorate([\n Event()\n ], ColorPicker.prototype, \"select\", void 0);\n __decorate([\n Event()\n ], ColorPicker.prototype, \"change\", void 0);\n __decorate([\n Event()\n ], ColorPicker.prototype, \"beforeTileRender\", void 0);\n __decorate([\n Event()\n ], ColorPicker.prototype, \"beforeOpen\", void 0);\n __decorate([\n Event()\n ], ColorPicker.prototype, \"open\", void 0);\n __decorate([\n Event()\n ], ColorPicker.prototype, \"beforeClose\", void 0);\n __decorate([\n Event()\n ], ColorPicker.prototype, \"beforeModeSwitch\", void 0);\n __decorate([\n Event()\n ], ColorPicker.prototype, \"onModeSwitch\", void 0);\n __decorate([\n Event()\n ], ColorPicker.prototype, \"created\", void 0);\n ColorPicker = __decorate([\n NotifyPropertyChanges\n ], ColorPicker);\n return ColorPicker;\n}(Component));\nexport { ColorPicker };\n","import { addClass, Browser, removeClass, EventHandler, formatUnit, isNullOrUndefined, isNullOrUndefined as isNOU } from '@syncfusion/ej2-base';\nimport { getInstance, closest, selectAll, detach } from '@syncfusion/ej2-base';\nimport { Toolbar } from '@syncfusion/ej2-navigations';\nimport { DropDownButton } from '@syncfusion/ej2-splitbuttons';\nimport { Popup, Tooltip } from '@syncfusion/ej2-popups';\nimport * as classes from '../base/classes';\nimport * as events from '../base/constant';\nimport { CLS_TOOLBAR, CLS_DROPDOWN_BTN, CLS_RTE_ELEMENTS, CLS_TB_BTN, CLS_INLINE_DROPDOWN, CLS_COLOR_CONTENT, CLS_FONT_COLOR_DROPDOWN, CLS_BACKGROUND_COLOR_DROPDOWN, CLS_COLOR_PALETTE, CLS_FONT_COLOR_PICKER, CLS_BACKGROUND_COLOR_PICKER, CLS_CUSTOM_TILE, CLS_NOCOLOR_ITEM, CLS_BULLETFORMATLIST_TB_BTN, CLS_NUMBERFORMATLIST_TB_BTN, CLS_LIST_PRIMARY_CONTENT } from '../base/classes';\nimport { ColorPicker } from '@syncfusion/ej2-inputs';\nimport { hasClass } from '../base/util';\n/**\n * `Toolbar renderer` module is used to render toolbar in RichTextEditor.\n *\n * @hidden\n\n */\nvar ToolbarRenderer = /** @class */ (function () {\n /**\n * Constructor for toolbar renderer module\n *\n * @param {IRichTextEditor} parent - specifies the parent element.\n */\n function ToolbarRenderer(parent) {\n this.parent = parent;\n this.wireEvent();\n }\n ToolbarRenderer.prototype.wireEvent = function () {\n this.parent.on(events.destroy, this.unWireEvent, this);\n };\n ToolbarRenderer.prototype.unWireEvent = function () {\n this.parent.off(events.destroy, this.unWireEvent);\n if (this.popupOverlay) {\n EventHandler.remove(this.popupOverlay, 'click touchmove', this.onPopupOverlay);\n }\n this.removePopupContainer();\n };\n ToolbarRenderer.prototype.toolbarBeforeCreate = function (e) {\n if (this.mode === 'Extended') {\n e.enableCollision = false;\n }\n };\n ToolbarRenderer.prototype.toolbarCreated = function () {\n this.parent.notify(events.toolbarCreated, this);\n };\n ToolbarRenderer.prototype.toolbarClicked = function (args) {\n if (!this.parent.enabled) {\n return;\n }\n if (!this.parent.readonly || isNullOrUndefined(args.item)) {\n this.parent.notify(events.toolbarClick, args);\n }\n this.parent.trigger('toolbarClick', args);\n };\n ToolbarRenderer.prototype.dropDownSelected = function (args) {\n this.parent.notify(events.dropDownSelect, args);\n this.onPopupOverlay();\n };\n ToolbarRenderer.prototype.beforeDropDownItemRender = function (args) {\n if (this.parent.readonly || !this.parent.enabled) {\n return;\n }\n this.parent.notify(events.beforeDropDownItemRender, args);\n };\n ToolbarRenderer.prototype.dropDownOpen = function (args) {\n if (args.element.parentElement.getAttribute('id').indexOf('TableCell') > -1 && !isNOU(args.element.parentElement.querySelector('.e-cell-merge')) &&\n (!isNOU(args.element.parentElement.querySelector('.e-cell-horizontal-split')) || !isNOU(args.element.parentElement.querySelector('.e-cell-vertical-split')))) {\n var listEle = args.element.querySelectorAll('li');\n if (this.parent.inputElement.querySelectorAll('.e-cell-select').length === 1) {\n addClass([listEle[0]], 'e-disabled');\n removeClass([listEle[1], listEle[2]], 'e-disabled');\n }\n else if (this.parent.inputElement.querySelectorAll('.e-cell-select').length > 1) {\n removeClass([listEle[0]], 'e-disabled');\n addClass([listEle[1], listEle[2]], 'e-disabled');\n }\n }\n if (Browser.isDevice && !args.element.parentElement.classList.contains(classes.CLS_QUICK_DROPDOWN)) {\n this.popupModal(args.element.parentElement);\n }\n this.parent.notify(events.selectionSave, args);\n };\n ToolbarRenderer.prototype.dropDownClose = function (args) {\n this.removePopupContainer();\n this.parent.notify(events.selectionRestore, args);\n };\n ToolbarRenderer.prototype.removePopupContainer = function () {\n if (Browser.isDevice && !isNullOrUndefined(this.popupContainer)) {\n var popupEle = this.popupContainer.querySelector('.e-dropdown-popup.e-tbar-btn.e-control');\n if (popupEle) {\n this.popupContainer.parentNode.insertBefore(popupEle, this.popupContainer.nextSibling);\n popupEle.style.removeProperty('position');\n removeClass([popupEle], 'e-popup-modal');\n }\n detach(this.popupContainer);\n this.popupContainer = undefined;\n }\n };\n /**\n * renderToolbar method\n *\n * @param {IToolbarOptions} args - specifies the arguments.\n * @returns {void}\n * @hidden\n\n */\n ToolbarRenderer.prototype.renderToolbar = function (args) {\n this.setPanel(args.target);\n this.renderPanel();\n this.mode = args.overflowMode;\n args.rteToolbarObj.toolbarObj = new Toolbar({\n items: args.items,\n width: '100%',\n overflowMode: args.overflowMode,\n beforeCreate: this.toolbarBeforeCreate.bind(this),\n created: this.toolbarCreated.bind(this),\n clicked: this.toolbarClicked.bind(this),\n enablePersistence: args.enablePersistence,\n enableRtl: args.enableRtl,\n cssClass: args.cssClass\n });\n args.rteToolbarObj.toolbarObj.isStringTemplate = true;\n args.rteToolbarObj.toolbarObj.createElement = this.parent.createElement;\n args.rteToolbarObj.toolbarObj.appendTo(args.target);\n if (this.parent.showTooltip) {\n var tooltip = new Tooltip({\n target: '#' + this.parent.getID() + '_toolbar_wrapper [title]',\n showTipPointer: true,\n cssClass: this.parent.cssClass\n });\n tooltip.appendTo(args.target);\n }\n };\n /**\n * renderDropDownButton method\n *\n * @param {IDropDownModel} args - specifies the the arguments.\n * @returns {void}\n * @hidden\n\n */\n ToolbarRenderer.prototype.renderDropDownButton = function (args) {\n var _this = this;\n var css;\n args.element.classList.add(CLS_DROPDOWN_BTN);\n css = args.cssClass + ' ' + CLS_RTE_ELEMENTS + ' ' + CLS_TB_BTN;\n if (this.parent.inlineMode.enable && Browser.isDevice) {\n css = css + ' ' + CLS_INLINE_DROPDOWN;\n }\n // eslint-disable-next-line\n var proxy = this;\n var dropDown = new DropDownButton({\n items: args.items,\n iconCss: args.iconCss,\n cssClass: css,\n content: args.content,\n enablePersistence: this.parent.enablePersistence,\n enableRtl: this.parent.enableRtl,\n select: this.dropDownSelected.bind(this),\n beforeOpen: function (args) {\n if (proxy.parent.readonly || !proxy.parent.enabled) {\n args.cancel = true;\n return;\n }\n // eslint-disable-next-line\n for (var index = 0; index < args.element.childNodes.length; index++) {\n var divNode = _this.parent.createElement('div');\n divNode.innerHTML = dropDown.content.trim();\n if (divNode.textContent.trim() !== ''\n && args.element.childNodes[index].textContent.trim() === divNode.textContent.trim()) {\n if (!args.element.childNodes[index].classList.contains('e-active')) {\n addClass([args.element.childNodes[index]], 'e-active');\n }\n }\n else {\n removeClass([args.element.childNodes[index]], 'e-active');\n }\n }\n proxy.parent.notify(events.beforeDropDownOpen, args);\n },\n close: this.dropDownClose.bind(this),\n open: this.dropDownOpen.bind(this),\n beforeItemRender: this.beforeDropDownItemRender.bind(this)\n });\n dropDown.isStringTemplate = true;\n dropDown.createElement = proxy.parent.createElement;\n dropDown.appendTo(args.element);\n args.element.tabIndex = -1;\n var popupElement = document.getElementById(dropDown.element.id + '-popup');\n popupElement.setAttribute('aria-owns', this.parent.getID());\n return dropDown;\n };\n /**\n * renderListDropDown method\n *\n * @param {IDropDownModel} args - specifies the the arguments.\n * @returns {void}\n * @hidden\n\n */\n ToolbarRenderer.prototype.renderListDropDown = function (args) {\n // eslint-disable-next-line\n var proxy = this;\n var css = CLS_RTE_ELEMENTS + ' ' + CLS_TB_BTN + ((this.parent.inlineMode) ? (' ' + CLS_INLINE_DROPDOWN) : '');\n css += (' ' + ((args.itemName === 'NumberFormatList') ? CLS_NUMBERFORMATLIST_TB_BTN : CLS_BULLETFORMATLIST_TB_BTN));\n var content = proxy.parent.createElement('span', { className: CLS_LIST_PRIMARY_CONTENT });\n var inlineEle = proxy.parent.createElement('span', { className: args.cssClass });\n content.appendChild(inlineEle);\n var dropDown = new DropDownButton({\n items: args.items,\n cssClass: css,\n content: args.content,\n enablePersistence: this.parent.enablePersistence,\n enableRtl: this.parent.enableRtl,\n select: this.dropDownSelected.bind(this),\n beforeOpen: function (args) {\n if (proxy.parent.readonly || !proxy.parent.enabled) {\n args.cancel = true;\n return;\n }\n var element = (args.event) ? args.event.target : null;\n proxy.currentElement = dropDown.element;\n proxy.currentDropdown = dropDown;\n if (args.event && args.event.type === 'click' && (element.classList.contains(CLS_LIST_PRIMARY_CONTENT)\n || element.parentElement.classList.contains(CLS_LIST_PRIMARY_CONTENT))) {\n args.cancel = true;\n return;\n }\n proxy.parent.notify(events.beforeDropDownOpen, args);\n },\n close: this.dropDownClose.bind(this),\n open: this.dropDownOpen.bind(this),\n beforeItemRender: this.beforeDropDownItemRender.bind(this)\n });\n dropDown.isStringTemplate = true;\n dropDown.createElement = proxy.parent.createElement;\n dropDown.appendTo(args.element);\n args.element.tabIndex = -1;\n args.element.setAttribute('role', 'button');\n var popupElement = document.getElementById(dropDown.element.id + '-popup');\n popupElement.setAttribute('aria-owns', this.parent.getID());\n if (args.element.childElementCount === 1) {\n dropDown.element.insertBefore(content, dropDown.element.querySelector('.e-caret'));\n }\n args.element.tabIndex = -1;\n dropDown.element.removeAttribute('type');\n return dropDown;\n };\n // eslint-disable-next-line\n ToolbarRenderer.prototype.onPopupOverlay = function (args) {\n if (!isNullOrUndefined(this.popupOverlay)) {\n closest(this.popupOverlay, '.e-popup-container').style.display = 'none';\n this.popupOverlay.style.display = 'none';\n removeClass([this.popupOverlay], 'e-popup-overlay');\n }\n };\n ToolbarRenderer.prototype.setIsModel = function (element) {\n if (!closest(element, '.e-popup-container')) {\n this.popupContainer = this.parent.createElement('div', {\n className: 'e-rte-modal-popup e-popup-container e-center'\n });\n element.parentNode.insertBefore(this.popupContainer, element);\n this.popupContainer.appendChild(element);\n this.popupContainer.style.zIndex = element.style.zIndex;\n this.popupContainer.style.display = 'flex';\n element.style.position = 'relative';\n addClass([element], 'e-popup-modal');\n this.popupOverlay = this.parent.createElement('div', { className: 'e-popup-overlay' });\n // eslint-disable-next-line\n this.popupOverlay.style.zIndex = (parseInt(element.style.zIndex, null) - 1).toString();\n this.popupOverlay.style.display = 'block';\n this.popupContainer.appendChild(this.popupOverlay);\n EventHandler.add(this.popupOverlay, 'click touchmove', this.onPopupOverlay, this);\n }\n else {\n element.parentElement.style.display = 'flex';\n this.popupOverlay = element.nextElementSibling;\n this.popupOverlay.style.display = 'block';\n addClass([this.popupOverlay], 'e-popup-overlay');\n }\n };\n ToolbarRenderer.prototype.paletteSelection = function (dropDownArgs, currentElement) {\n var ele = dropDownArgs.element.querySelector('.e-control.e-colorpicker');\n var colorbox = [].slice.call(selectAll('.e-tile', ele.parentElement));\n removeClass(colorbox, 'e-selected');\n var style = currentElement.querySelector('.' + CLS_RTE_ELEMENTS).style.borderBottomColor;\n (colorbox.filter(function (colorbox) {\n if (colorbox.style.backgroundColor === style) {\n addClass([colorbox], 'e-selected');\n }\n }));\n };\n /**\n * renderColorPickerDropDown method\n *\n * @param {IColorPickerModel} args - specifies the arguments.\n * @param {string} item - specifies the item.\n * @param {ColorPicker} colorPicker - specifies the colorpicker.\n * @param {string} defaultColor -specifies the defaultColor.\n * @returns {void}\n * @hidden\n\n */\n ToolbarRenderer.prototype.renderColorPickerDropDown = function (args, item, colorPicker, defaultColor) {\n var _this = this;\n // eslint-disable-next-line\n var proxy = this;\n var css = CLS_RTE_ELEMENTS + ' ' + CLS_TB_BTN + ((this.parent.inlineMode) ? (' ' + CLS_INLINE_DROPDOWN) : '');\n css += (' ' + ((item === 'backgroundcolor') ? CLS_BACKGROUND_COLOR_DROPDOWN : CLS_FONT_COLOR_DROPDOWN));\n css += ' ' + this.parent.cssClass;\n var content = proxy.parent.createElement('span', { className: CLS_COLOR_CONTENT });\n var inlineEle = proxy.parent.createElement('span', { className: args.cssClass });\n var range;\n var initialBackgroundColor = (isNullOrUndefined(defaultColor)) ? proxy.parent.backgroundColor.default : defaultColor;\n inlineEle.style.borderBottomColor = (item === 'backgroundcolor') ?\n initialBackgroundColor : proxy.parent.fontColor.default;\n content.appendChild(inlineEle);\n var dropDown = new DropDownButton({\n target: colorPicker.element.parentElement, cssClass: css,\n enablePersistence: this.parent.enablePersistence, enableRtl: this.parent.enableRtl,\n beforeOpen: function (dropDownArgs) {\n colorPicker.inline = true;\n colorPicker.dataBind();\n if (proxy.parent.readonly || !proxy.parent.enabled) {\n dropDownArgs.cancel = true;\n return;\n }\n var element = (dropDownArgs.event) ? dropDownArgs.event.target : null;\n proxy.currentElement = dropDown.element;\n proxy.currentDropdown = dropDown;\n proxy.paletteSelection(dropDownArgs, proxy.currentElement);\n if (dropDownArgs.event && dropDownArgs.event.type === 'click' && (element.classList.contains(CLS_COLOR_CONTENT)\n || element.parentElement.classList.contains(CLS_COLOR_CONTENT))) {\n dropDownArgs.cancel = true;\n var colorpickerValue = element.classList.contains(CLS_RTE_ELEMENTS) ? element.style.borderBottomColor :\n element.querySelector('.' + CLS_RTE_ELEMENTS).style.borderBottomColor;\n proxy.parent.notify(events.selectionRestore, {});\n range = proxy.parent.formatter.editorManager.nodeSelection.getRange(proxy.parent.contentModule.getDocument());\n var parentNode = range.startContainer.parentNode;\n var closestElement = closest(range.startContainer.parentNode, 'table');\n if ((range.startContainer.nodeName === 'TD' || range.startContainer.nodeName === 'TH' ||\n (closest(range.startContainer.parentNode, 'td,th')) ||\n (proxy.parent.iframeSettings.enable && !hasClass(parentNode.ownerDocument.querySelector('body'), 'e-lib')))\n && range.collapsed && args.subCommand === 'BackgroundColor' && closest(closestElement, '.' + classes.CLS_RTE)) {\n proxy.parent.notify(events.tableColorPickerChanged, {\n item: { command: args.command, subCommand: args.subCommand,\n value: colorpickerValue }\n });\n }\n else {\n proxy.parent.notify(events.colorPickerChanged, { item: { command: args.command, subCommand: args.subCommand,\n value: colorpickerValue }\n });\n }\n return;\n }\n else {\n var ele = dropDownArgs.element.querySelector('.e-control.e-colorpicker');\n var inst = getInstance(ele, ColorPicker);\n inst.showButtons = (dropDownArgs.element.querySelector('.e-color-palette')) ? false : true;\n inst.dataBind();\n }\n dropDownArgs.element.onclick = function (args) {\n if (args.target.classList.contains('e-cancel')) {\n dropDown.toggle();\n }\n };\n },\n open: function (dropDownArgs) {\n _this.setColorPickerContentWidth(colorPicker);\n var focusEle;\n var ele = dropDownArgs.element.querySelector('.e-control.e-colorpicker');\n if (dropDownArgs.element.querySelector('.e-color-palette')) {\n focusEle = ele.parentElement.querySelector('.e-palette');\n }\n else {\n focusEle = ele.parentElement.querySelector('e-handler');\n }\n if (focusEle) {\n focusEle.focus();\n }\n if (Browser.isDevice) {\n _this.popupModal(dropDownArgs.element.parentElement);\n }\n _this.pickerRefresh(dropDownArgs);\n },\n beforeClose: function (dropDownArgs) {\n var element = (dropDownArgs.event) ? dropDownArgs.event.target : null;\n if (dropDownArgs.event && dropDownArgs.event.type === 'click' && (element.classList.contains(CLS_COLOR_CONTENT)\n || element.parentElement.classList.contains(CLS_COLOR_CONTENT))) {\n var colorpickerValue = element.classList.contains(CLS_RTE_ELEMENTS) ? element.style.borderBottomColor :\n element.querySelector('.' + CLS_RTE_ELEMENTS).style.borderBottomColor;\n range = proxy.parent.formatter.editorManager.nodeSelection.getRange(proxy.parent.contentModule.getDocument());\n if ((range.startContainer.nodeName === 'TD' || range.startContainer.nodeName === 'TH' ||\n closest(range.startContainer.parentNode, 'td,th')) && range.collapsed) {\n proxy.parent.notify(events.tableColorPickerChanged, { item: {\n command: args.command, subCommand: args.subCommand,\n value: colorpickerValue\n }\n });\n }\n else {\n proxy.parent.notify(events.colorPickerChanged, { item: { command: args.command, subCommand: args.subCommand,\n value: colorpickerValue }\n });\n }\n return;\n }\n },\n close: function (dropDownArgs) {\n proxy.parent.notify(events.selectionRestore, {});\n var dropElement = closest(dropDownArgs.element.parentElement, '.e-popup-container');\n if (dropElement) {\n dropElement.style.display = 'none';\n dropElement.lastElementChild.style.display = 'none';\n removeClass([dropElement.lastElementChild], 'e-popup-overlay');\n }\n if (Browser.isDevice && !isNullOrUndefined(dropElement)) {\n var popupEle = dropElement.querySelector('.e-dropdown-popup.e-tbar-btn.e-control');\n if (popupEle) {\n dropElement.parentNode.insertBefore(popupEle, dropElement.nextSibling);\n popupEle.style.removeProperty('position');\n removeClass([popupEle], 'e-popup-modal');\n }\n detach(dropElement);\n proxy.popupContainer = undefined;\n }\n }\n });\n dropDown.isStringTemplate = true;\n dropDown.createElement = proxy.parent.createElement;\n args.element.setAttribute('role', 'button');\n dropDown.appendTo(args.element);\n var popupElement = document.getElementById(dropDown.element.id + '-popup');\n popupElement.setAttribute('aria-owns', this.parent.getID());\n dropDown.element.insertBefore(content, dropDown.element.querySelector('.e-caret'));\n args.element.tabIndex = -1;\n dropDown.element.removeAttribute('type');\n dropDown.element.onmousedown = function () {\n proxy.parent.notify(events.selectionSave, {});\n };\n dropDown.element.onkeydown = function () {\n proxy.parent.notify(events.selectionSave, {});\n };\n return dropDown;\n };\n ToolbarRenderer.prototype.pickerRefresh = function (dropDownArgs) {\n if (this.parent.backgroundColor.mode === 'Picker') {\n var popupElem = dropDownArgs.element.parentElement;\n popupElem.style.width = (popupElem.offsetWidth + 5).toString() + 'px';\n getInstance(popupElem, Popup).refreshPosition(popupElem);\n popupElem.style.width = (popupElem.offsetWidth - 5).toString() + 'px';\n }\n };\n ToolbarRenderer.prototype.popupModal = function (element) {\n var popupInst = getInstance(element, Popup);\n popupInst.relateTo = document.body;\n popupInst.position = { X: 0, Y: 0 };\n popupInst.targetType = 'container';\n popupInst.collision = { X: 'fit', Y: 'fit' };\n popupInst.offsetY = 4;\n popupInst.dataBind();\n this.setIsModel(element);\n };\n ToolbarRenderer.prototype.setColorPickerContentWidth = function (colorPicker) {\n var colorPickerContent = colorPicker.element.nextSibling;\n if (colorPickerContent.style.width === '0px') {\n colorPickerContent.style.width = '';\n var borderWidth = parseInt(getComputedStyle(colorPickerContent).borderBottomWidth, 10);\n colorPickerContent.style.width = formatUnit(colorPickerContent.children[0].offsetWidth\n + borderWidth + borderWidth);\n }\n };\n /**\n * renderColorPicker method\n *\n * @param {IColorPickerModel} args - specifies the arguments\n * @param {string} item - specifies the string values\n * @returns {void}\n * @hidden\n\n */\n ToolbarRenderer.prototype.renderColorPicker = function (args, item) {\n var _this = this;\n // eslint-disable-next-line\n var proxy = this;\n var value;\n var colorPicker = new ColorPicker({\n enablePersistence: this.parent.enablePersistence,\n enableRtl: this.parent.enableRtl,\n inline: false,\n value: '#fff',\n created: function () {\n var value = (item === 'backgroundcolor') ? proxy.parent.backgroundColor.default : proxy.parent.fontColor.default;\n colorPicker.setProperties({ value: value });\n },\n mode: ((item === 'backgroundcolor') ? proxy.parent.backgroundColor.mode : proxy.parent.fontColor.mode),\n modeSwitcher: ((item === 'backgroundcolor') ? proxy.parent.backgroundColor.modeSwitcher : proxy.parent.fontColor.modeSwitcher),\n beforeTileRender: function (args) {\n args.element.classList.add(CLS_COLOR_PALETTE);\n args.element.classList.add(CLS_CUSTOM_TILE);\n if (!isNullOrUndefined(_this.parent.cssClass)) {\n var allClassName = _this.parent.cssClass.split(' ');\n for (var i = 0; i < allClassName.length; i++) {\n if (allClassName[i].trim() !== '') {\n args.element.classList.add(allClassName[i]);\n }\n }\n }\n if (args.value === '') {\n args.element.classList.add(CLS_NOCOLOR_ITEM);\n }\n },\n change: function (colorPickerArgs) {\n var colorpickerValue = colorPickerArgs.currentValue.rgba;\n colorPickerArgs.item = {\n command: args.command,\n subCommand: args.subCommand,\n value: colorpickerValue\n };\n proxy.parent.notify(events.selectionRestore, {});\n proxy.currentElement.querySelector('.' + CLS_RTE_ELEMENTS).style.borderBottomColor = colorpickerValue;\n var range = proxy.parent.formatter.editorManager.nodeSelection.getRange(proxy.parent.contentModule.getDocument());\n var closestElement = closest(range.startContainer.parentNode, 'table');\n if ((range.startContainer.nodeName === 'TD' || range.startContainer.nodeName === 'TH' || range.startContainer.nodeName === 'BODY' ||\n closest(range.startContainer.parentNode, 'td,th')) && range.collapsed && args.subCommand === 'BackgroundColor' && closest(closestElement, '.' + classes.CLS_RTE)) {\n proxy.parent.notify(events.tableColorPickerChanged, colorPickerArgs);\n }\n else {\n proxy.parent.notify(events.colorPickerChanged, colorPickerArgs);\n }\n proxy.currentDropdown.toggle();\n },\n beforeModeSwitch: function (args) {\n value = colorPicker.value;\n if (value === '') {\n colorPicker.setProperties({ value: ((args.mode === 'Picker') ? '#008000ff' : '') }, true);\n }\n colorPicker.showButtons = args.mode === 'Palette' ? false : true;\n }\n });\n colorPicker.isStringTemplate = true;\n colorPicker.columns = (item === 'backgroundcolor') ? this.parent.backgroundColor.columns : this.parent.fontColor.columns;\n colorPicker.presetColors = (item === 'backgroundcolor') ? this.parent.backgroundColor.colorCode :\n this.parent.fontColor.colorCode;\n colorPicker.cssClass = ((item === 'backgroundcolor') ? CLS_BACKGROUND_COLOR_PICKER : CLS_FONT_COLOR_PICKER) + ' ' + args.cssClass;\n colorPicker.createElement = this.parent.createElement;\n colorPicker.appendTo(document.getElementById(args.target));\n return colorPicker;\n };\n /**\n * The function is used to render Rich Text Editor toolbar\n *\n * @returns {void}\n * @hidden\n\n */\n ToolbarRenderer.prototype.renderPanel = function () {\n this.getPanel().classList.add(CLS_TOOLBAR);\n };\n /**\n * Get the toolbar element of RichTextEditor\n *\n * @returns {Element} - specifies the element.\n * @hidden\n\n */\n ToolbarRenderer.prototype.getPanel = function () {\n return this.toolbarPanel;\n };\n /**\n * Set the toolbar element of RichTextEditor\n *\n * @returns {void}\n * @param {Element} panel - specifies the element.\n * @hidden\n\n */\n ToolbarRenderer.prototype.setPanel = function (panel) {\n this.toolbarPanel = panel;\n };\n return ToolbarRenderer;\n}());\nexport { ToolbarRenderer };\n","import { RenderType } from '../base/enum';\nimport { CLS_HR_SEPARATOR } from '../base/classes';\nimport * as events from '../base/constant';\nimport { getTooltipText, isIDevice, toObjectLowerCase } from '../base/util';\nimport { tools, templateItems, windowKeys } from '../models/items';\nimport { isNullOrUndefined, extend, Browser } from '@syncfusion/ej2-base';\n/**\n * `Toolbar` module is used to handle Toolbar actions.\n */\nvar BaseToolbar = /** @class */ (function () {\n function BaseToolbar(parent, serviceLocator) {\n this.tools = {};\n this.parent = parent;\n this.locator = serviceLocator;\n this.renderFactory = this.locator.getService('rendererFactory');\n this.addEventListener();\n if (this.parent.toolbarSettings && Object.keys(this.parent.toolbarSettings.itemConfigs).length > 0) {\n extend(this.tools, tools, toObjectLowerCase(this.parent.toolbarSettings.itemConfigs), true);\n }\n else {\n this.tools = tools;\n }\n }\n BaseToolbar.prototype.addEventListener = function () {\n this.parent.on(events.rtlMode, this.setRtl, this);\n this.parent.on(events.bindCssClass, this.setCssClass, this);\n this.parent.on(events.destroy, this.removeEventListener, this);\n };\n BaseToolbar.prototype.removeEventListener = function () {\n this.parent.off(events.rtlMode, this.setRtl);\n this.parent.off(events.bindCssClass, this.setCssClass);\n this.parent.off(events.destroy, this.removeEventListener);\n };\n BaseToolbar.prototype.setCssClass = function (e) {\n if (!isNullOrUndefined(this.toolbarObj)) {\n if (isNullOrUndefined(e.oldCssClass)) {\n this.toolbarObj.setProperties({ cssClass: (this.toolbarObj.cssClass + ' ' + e.cssClass).trim() });\n }\n else {\n this.toolbarObj.setProperties({ cssClass: (this.toolbarObj.cssClass.replace(e.oldCssClass, '').trim() + ' ' + e.cssClass).trim() });\n }\n }\n };\n BaseToolbar.prototype.setRtl = function (args) {\n if (!isNullOrUndefined(this.toolbarObj)) {\n this.toolbarObj.setProperties({ enableRtl: args.enableRtl });\n }\n };\n BaseToolbar.prototype.getClass = function (item) {\n var classes;\n switch (item) {\n case 'fontsize':\n classes = 'e-rte-inline-size-template';\n break;\n case 'fontcolor':\n case 'backgroundcolor':\n classes = 'e-rte-inline-color-template';\n break;\n default:\n classes = 'e-rte-inline-template';\n break;\n }\n return classes;\n };\n BaseToolbar.prototype.getTemplateObject = function (itemStr, container) {\n var tagName;\n switch (itemStr) {\n case 'fontcolor':\n case 'backgroundcolor':\n case 'numberformatlist':\n case 'bulletformatlist':\n tagName = 'span';\n break;\n default:\n tagName = 'button';\n break;\n }\n return {\n command: this.tools[itemStr.toLocaleLowerCase()].command,\n subCommand: this.tools[itemStr.toLocaleLowerCase()].subCommand,\n template: this.parent.createElement(tagName, {\n id: this.parent.getID() + '_' + container\n + '_' + this.tools[itemStr.toLocaleLowerCase()].id\n }).outerHTML,\n cssClass: this.parent.inlineMode.enable ? this.getClass(itemStr) : '',\n tooltipText: getTooltipText(itemStr, this.locator)\n };\n };\n /**\n * getObject method\n *\n * @param {string} item - specifies the string value\n * @param {string} container - specifies the value of string\n * @returns {IToolbarItemModel} - returns the model element\n * @hidden\n\n */\n BaseToolbar.prototype.getObject = function (item, container) {\n var itemStr = item.toLowerCase();\n if (templateItems.indexOf(itemStr) !== -1) {\n return this.getTemplateObject(itemStr, container);\n }\n else {\n switch (itemStr) {\n case '|':\n return { type: 'Separator' };\n case '-':\n return { type: 'Separator', cssClass: CLS_HR_SEPARATOR };\n default:\n if (this.parent.showTooltip) {\n return {\n id: this.parent.getID() + '_' + container + '_' + this.tools[itemStr.toLocaleLowerCase()].id,\n prefixIcon: this.tools[itemStr.toLocaleLowerCase()].icon,\n tooltipText: getTooltipText(itemStr, this.locator),\n command: this.tools[itemStr.toLocaleLowerCase()].command,\n subCommand: this.tools[itemStr.toLocaleLowerCase()].subCommand\n };\n }\n else {\n return {\n id: this.parent.getID() + '_' + container + '_' + this.tools[itemStr.toLocaleLowerCase()].id,\n prefixIcon: this.tools[itemStr.toLocaleLowerCase()].icon,\n command: this.tools[itemStr.toLocaleLowerCase()].command,\n subCommand: this.tools[itemStr.toLocaleLowerCase()].subCommand\n };\n }\n }\n }\n };\n /**\n * @param {string} tbItems - specifies the string value\n * @param {string} container - specifies the container value\n * @returns {ItemModel} - retunrs the model element\n * @hidden\n\n */\n BaseToolbar.prototype.getItems = function (tbItems, container) {\n var _this = this;\n if (this.parent.toolbarSettings.items.length < 1) {\n return [];\n }\n var items = [];\n var _loop_1 = function (item) {\n switch (typeof item) {\n case 'string':\n items.push(this_1.getObject(item, container));\n break;\n default:\n if (!isNullOrUndefined(item.click)) {\n var proxy_1 = item;\n var callback_1 = proxy_1.click;\n proxy_1.click = function () {\n if (proxy_1.undo && _this.parent.formatter.getUndoRedoStack().length === 0) {\n _this.parent.formatter.saveData();\n }\n callback_1.call(_this);\n if ((_this.parent.formatter.getUndoRedoStack()[_this.parent.formatter.getUndoRedoStack().length - 1].text.trim()\n === _this.parent.inputElement.innerHTML.trim())) {\n return;\n }\n if (proxy_1.undo) {\n _this.parent.formatter.saveData();\n }\n };\n }\n items.push(item);\n }\n };\n var this_1 = this;\n for (var _i = 0, tbItems_1 = tbItems; _i < tbItems_1.length; _i++) {\n var item = tbItems_1[_i];\n _loop_1(item);\n }\n for (var num = 0; num < items.length; num++) {\n var tooltipText = items[num].tooltipText;\n var shortCutKey = void 0;\n if (windowKeys[\"\" + tooltipText]) {\n shortCutKey = Browser.isDevice && isIDevice() ? windowKeys[\"\" + tooltipText].replace('Ctrl', 'Cmd') : windowKeys[\"\" + tooltipText];\n }\n else {\n shortCutKey = tooltipText;\n }\n if (shortCutKey) {\n items[num].tooltipText = (tooltipText !== shortCutKey) ? tooltipText + ' (' + shortCutKey + ')' : tooltipText;\n }\n }\n return items;\n };\n BaseToolbar.prototype.getToolbarOptions = function (args) {\n return {\n target: args.target,\n rteToolbarObj: this,\n items: this.getItems(args.items, args.container),\n overflowMode: args.mode,\n enablePersistence: this.parent.enablePersistence,\n enableRtl: this.parent.enableRtl,\n cssClass: args.cssClass\n };\n };\n /**\n * render method\n *\n * @param {IToolbarRenderOptions} args - specifies the toolbar options\n * @returns {void}\n * @hidden\n\n */\n BaseToolbar.prototype.render = function (args) {\n this.toolbarRenderer = this.renderFactory.getRenderer(RenderType.Toolbar);\n this.toolbarRenderer.renderToolbar(this.getToolbarOptions(args));\n };\n return BaseToolbar;\n}());\nexport { BaseToolbar };\n","import { addClass, isNullOrUndefined, removeClass, select, closest } from '@syncfusion/ej2-base';\nimport { RenderType } from '../base/enum';\nimport { getIndex } from '../base/util';\nimport * as events from '../base/constant';\nimport * as classes from '../base/classes';\nimport { getDropDownValue, getFormattedFontSize, getTooltipText } from '../base/util';\nimport * as model from '../models/items';\nimport { dispatchEvent } from '../base/util';\n/**\n * `Toolbar` module is used to handle Toolbar actions.\n */\nvar DropDownButtons = /** @class */ (function () {\n function DropDownButtons(parent, serviceLocator) {\n this.parent = parent;\n this.locator = serviceLocator;\n this.renderFactory = this.locator.getService('rendererFactory');\n this.addEventListener();\n }\n DropDownButtons.prototype.initializeInstance = function () {\n this.toolbarRenderer = this.renderFactory.getRenderer(RenderType.Toolbar);\n };\n DropDownButtons.prototype.beforeRender = function (args) {\n var item = args.item;\n if (item.cssClass) {\n addClass([args.element], item.cssClass);\n }\n if (item.command === 'Alignments' || item.subCommand === 'JustifyLeft'\n || item.subCommand === 'JustifyRight' || item.subCommand === 'JustifyCenter') {\n args.element.setAttribute('title', getTooltipText(item.subCommand.toLocaleLowerCase(), this.locator));\n }\n };\n DropDownButtons.prototype.dropdownContent = function (width, type, content) {\n return ('' +\n '' + content + '');\n };\n /**\n * renderDropDowns method\n *\n * @param {IDropDownRenderArgs} args - specifies the arguments\n * @returns {void}\n * @hidden\n\n */\n DropDownButtons.prototype.renderDropDowns = function (args) {\n var _this = this;\n this.initializeInstance();\n var type = args.containerType;\n var tbElement = args.container;\n model.templateItems.forEach(function (item) {\n var targetElement = undefined;\n if (getIndex(item, args.items) !== -1) {\n switch (item) {\n case 'numberformatlist': {\n targetElement = select('#' + _this.parent.getID() + '_' + type + '_NumberFormatList', tbElement);\n if (isNullOrUndefined(targetElement) || targetElement.classList.contains(classes.CLS_DROPDOWN_BTN)) {\n return;\n }\n var formatOLItem = _this.parent.numberFormatList.types.slice();\n formatOLItem.forEach(function (item) {\n Object.defineProperties(item, {\n command: { value: 'Lists', enumerable: true }, subCommand: { value: 'NumberFormatList', enumerable: true }\n });\n });\n _this.numberFormatListDropDown = _this.toolbarRenderer.renderListDropDown({\n cssClass: 'e-order-list' + ' ' + classes.CLS_RTE_ELEMENTS + ' ' + classes.CLS_ICONS,\n itemName: 'NumberFormatList', items: formatOLItem, element: targetElement\n });\n break;\n }\n case 'bulletformatlist': {\n targetElement = select('#' + _this.parent.getID() + '_' + type + '_BulletFormatList', tbElement);\n if (isNullOrUndefined(targetElement) || targetElement.classList.contains(classes.CLS_DROPDOWN_BTN)) {\n return;\n }\n var formatULItem = _this.parent.bulletFormatList.types.slice();\n formatULItem.forEach(function (item) {\n Object.defineProperties(item, {\n command: { value: 'Lists', enumerable: true }, subCommand: { value: 'BulletFormatList', enumerable: true }\n });\n });\n _this.bulletFormatListDropDown = _this.toolbarRenderer.renderListDropDown({\n cssClass: 'e-unorder-list' + ' ' + classes.CLS_RTE_ELEMENTS + ' ' + classes.CLS_ICONS,\n itemName: 'BulletFormatList', items: formatULItem, element: targetElement\n });\n break;\n }\n case 'formats': {\n targetElement = select('#' + _this.parent.getID() + '_' + type + '_Formats', tbElement);\n if (isNullOrUndefined(targetElement) || targetElement.classList.contains(classes.CLS_DROPDOWN_BTN)) {\n return;\n }\n var formatItem = _this.parent.format.types.slice();\n formatItem.forEach(function (item) {\n Object.defineProperties(item, {\n command: { value: 'Formats', enumerable: true }, subCommand: { value: item.value, enumerable: true }\n });\n });\n var formatContent = isNullOrUndefined(_this.parent.format.default) ? formatItem[0].text :\n _this.parent.format.default;\n _this.formatDropDown = _this.toolbarRenderer.renderDropDownButton({\n iconCss: ((type === 'quick') ? 'e-formats e-icons' : ''),\n content: _this.dropdownContent(_this.parent.format.width, type, ((type === 'quick') ? '' : getDropDownValue(formatItem, formatContent, 'text', 'text'))),\n cssClass: classes.CLS_DROPDOWN_POPUP + ' ' + classes.CLS_DROPDOWN_ITEMS + ' ' + classes.CLS_FORMATS_TB_BTN,\n itemName: 'Formats', items: formatItem, element: targetElement\n });\n break;\n }\n case 'fontname': {\n targetElement = select('#' + _this.parent.getID() + '_' + type + '_FontName', tbElement);\n if (isNullOrUndefined(targetElement) || targetElement.classList.contains(classes.CLS_DROPDOWN_BTN)) {\n return;\n }\n var fontItem = _this.parent.fontFamily.items.slice();\n fontItem.forEach(function (item) {\n Object.defineProperties(item, {\n command: { value: 'Font', enumerable: true }, subCommand: { value: 'FontName', enumerable: true }\n });\n });\n var fontNameContent = isNullOrUndefined(_this.parent.fontFamily.default) ? fontItem[0].text :\n _this.parent.fontFamily.default;\n _this.fontNameDropDown = _this.toolbarRenderer.renderDropDownButton({\n iconCss: ((type === 'quick') ? 'e-font-name e-icons' : ''),\n content: _this.dropdownContent(_this.parent.fontFamily.width, type, ((type === 'quick') ? '' : getDropDownValue(fontItem, fontNameContent, 'text', 'text'))),\n cssClass: classes.CLS_DROPDOWN_POPUP + ' ' + classes.CLS_DROPDOWN_ITEMS + ' ' + classes.CLS_FONT_NAME_TB_BTN,\n itemName: 'FontName', items: fontItem, element: targetElement\n });\n if (!isNullOrUndefined(_this.parent.fontFamily.default)) {\n _this.getEditNode().style.fontFamily = _this.parent.fontFamily.default;\n }\n break;\n }\n case 'fontsize': {\n targetElement = select('#' + _this.parent.getID() + '_' + type + '_FontSize', tbElement);\n if (isNullOrUndefined(targetElement) || targetElement.classList.contains(classes.CLS_DROPDOWN_BTN)) {\n return;\n }\n var fontsize = _this.parent.fontSize.items.slice();\n fontsize.forEach(function (item) {\n Object.defineProperties(item, {\n command: { value: 'Font', enumerable: true }, subCommand: { value: 'FontSize', enumerable: true }\n });\n });\n var fontSizeContent = isNullOrUndefined(_this.parent.fontSize.default) ? fontsize[1].text :\n _this.parent.fontSize.default;\n _this.fontSizeDropDown = _this.toolbarRenderer.renderDropDownButton({\n content: _this.dropdownContent(_this.parent.fontSize.width, type, getFormattedFontSize(getDropDownValue(fontsize, fontSizeContent.replace(/\\s/g, ''), 'value', 'text'))),\n cssClass: classes.CLS_DROPDOWN_POPUP + ' ' + classes.CLS_DROPDOWN_ITEMS + ' ' + classes.CLS_FONT_SIZE_TB_BTN,\n itemName: 'FontSize', items: fontsize, element: targetElement\n });\n if (!isNullOrUndefined(_this.parent.fontSize.default)) {\n _this.getEditNode().style.fontSize = _this.parent.fontSize.default;\n }\n break;\n }\n case 'alignments':\n targetElement = select('#' + _this.parent.getID() + '_' + type + '_Alignments', tbElement);\n if (isNullOrUndefined(targetElement) || targetElement.classList.contains(classes.CLS_DROPDOWN_BTN)) {\n return;\n }\n _this.alignDropDown = _this.toolbarRenderer.renderDropDownButton({\n iconCss: 'e-justify-left e-icons',\n cssClass: classes.CLS_DROPDOWN_POPUP + ' ' + classes.CLS_DROPDOWN_ITEMS + ' ' + classes.CLS_ALIGN_TB_BTN,\n itemName: 'Alignments', items: model.alignmentItems, element: targetElement\n });\n break;\n case 'align':\n case 'videoalign':\n _this.renderAlignmentDropDown(type, tbElement, targetElement, item);\n break;\n case 'display':\n case 'audiolayoutoption':\n case 'videolayoutoption':\n _this.renderDisplayDropDown(type, tbElement, targetElement, item);\n break;\n case 'tablerows':\n _this.rowDropDown(type, tbElement, targetElement);\n break;\n case 'tablecolumns':\n _this.columnDropDown(type, tbElement, targetElement);\n break;\n case 'tablecell':\n _this.cellDropDown(type, tbElement, targetElement);\n break;\n case 'tablecellverticalalign':\n _this.verticalAlignDropDown(type, tbElement, targetElement);\n break;\n case 'styles':\n _this.tableStylesDropDown(type, tbElement, targetElement);\n break;\n }\n }\n });\n if (this.parent.inlineMode.enable) {\n this.setCssClass({ cssClass: this.parent.cssClass });\n }\n };\n DropDownButtons.prototype.getUpdateItems = function (items, value) {\n var dropDownItems = items.slice();\n dropDownItems.forEach(function (item) {\n Object.defineProperties(item, {\n command: { value: (value === 'Format' ? 'Formats' : 'Font'), enumerable: true },\n subCommand: { value: (value === 'Format' ? item.value : value), enumerable: true }\n });\n });\n return dropDownItems;\n };\n DropDownButtons.prototype.onPropertyChanged = function (model) {\n var newProp = model.newProp;\n var type;\n var content;\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'fontFamily':\n if (this.fontNameDropDown) {\n for (var _b = 0, _c = Object.keys(newProp.fontFamily); _b < _c.length; _b++) {\n var fontFamily = _c[_b];\n switch (fontFamily) {\n case 'default':\n case 'width': {\n var fontItems = this.fontNameDropDown.items;\n type = !isNullOrUndefined(closest(this.fontNameDropDown.element, '.' + classes.CLS_QUICK_TB)) ?\n 'quick' : 'toolbar';\n var fontNameContent = isNullOrUndefined(this.parent.fontFamily.default) ? fontItems[0].text :\n this.parent.fontFamily.default;\n content = this.dropdownContent(this.parent.fontFamily.width, type, ((type === 'quick') ? '' : getDropDownValue(fontItems, fontNameContent, 'text', 'text')));\n this.fontNameDropDown.setProperties({ content: content });\n if (!isNullOrUndefined(this.parent.fontFamily.default)) {\n this.getEditNode().style.fontFamily = this.parent.fontFamily.default;\n }\n else {\n this.getEditNode().style.removeProperty('font-family');\n }\n break;\n }\n case 'items':\n this.fontNameDropDown.setProperties({\n items: this.getUpdateItems(newProp.fontFamily.items, 'FontName')\n });\n break;\n }\n }\n }\n break;\n case 'fontSize':\n if (this.fontSizeDropDown) {\n for (var _d = 0, _e = Object.keys(newProp.fontSize); _d < _e.length; _d++) {\n var fontSize = _e[_d];\n switch (fontSize) {\n case 'default':\n case 'width': {\n var fontsize = this.fontSizeDropDown.items;\n type = !isNullOrUndefined(closest(this.fontSizeDropDown.element, '.' + classes.CLS_QUICK_TB)) ? 'quick' : 'toolbar';\n var fontSizeContent = isNullOrUndefined(this.parent.fontSize.default) ? fontsize[1].text :\n this.parent.fontSize.default;\n content = this.dropdownContent(this.parent.fontSize.width, type, getFormattedFontSize(getDropDownValue(fontsize, fontSizeContent.replace(/\\s/g, ''), 'value', 'text')));\n this.fontSizeDropDown.setProperties({ content: content });\n if (!isNullOrUndefined(this.parent.fontSize.default)) {\n this.getEditNode().style.fontSize = this.parent.fontSize.default;\n }\n else {\n this.getEditNode().style.removeProperty('font-size');\n }\n break;\n }\n case 'items':\n this.fontSizeDropDown.setProperties({\n items: this.getUpdateItems(newProp.fontSize.items, 'FontSize')\n });\n break;\n }\n }\n }\n break;\n case 'format':\n if (this.formatDropDown) {\n for (var _f = 0, _g = Object.keys(newProp.format); _f < _g.length; _f++) {\n var format = _g[_f];\n switch (format) {\n case 'default':\n case 'width': {\n var formatItems = this.formatDropDown.items;\n type = !isNullOrUndefined(closest(this.formatDropDown.element, '.' + classes.CLS_QUICK_TB)) ? 'quick' : 'toolbar';\n var formatContent = isNullOrUndefined(this.parent.format.default) ? formatItems[0].text :\n this.parent.format.default;\n content = this.dropdownContent(this.parent.format.width, type, ((type === 'quick') ? '' : getDropDownValue(formatItems, formatContent, 'text', 'text')));\n this.formatDropDown.setProperties({ content: content });\n break;\n }\n case 'types':\n this.formatDropDown.setProperties({\n items: this.getUpdateItems(newProp.format.types, 'Format')\n });\n break;\n }\n }\n }\n break;\n }\n }\n };\n DropDownButtons.prototype.getEditNode = function () {\n return this.parent.contentModule.getEditPanel();\n };\n DropDownButtons.prototype.rowDropDown = function (type, tbElement, targetElement) {\n targetElement = select('#' + this.parent.getID() + '_' + type + '_TableRows', tbElement);\n if (targetElement.classList.contains(classes.CLS_DROPDOWN_BTN)) {\n return;\n }\n this.tableRowsDropDown = this.toolbarRenderer.renderDropDownButton({\n iconCss: 'e-table-rows e-icons',\n cssClass: classes.CLS_DROPDOWN_POPUP + ' ' + classes.CLS_DROPDOWN_ITEMS + ' ' + classes.CLS_QUICK_DROPDOWN,\n itemName: 'TableRows',\n items: model.tableRowsItems,\n element: targetElement\n });\n };\n DropDownButtons.prototype.columnDropDown = function (type, tbElement, targetElement) {\n targetElement = select('#' + this.parent.getID() + '_' + type + '_TableColumns', tbElement);\n if (targetElement.classList.contains(classes.CLS_DROPDOWN_BTN)) {\n return;\n }\n this.tableColumnsDropDown = this.toolbarRenderer.renderDropDownButton({\n iconCss: 'e-table-columns e-icons',\n cssClass: classes.CLS_DROPDOWN_POPUP + ' ' + classes.CLS_DROPDOWN_ITEMS + ' ' + classes.CLS_QUICK_DROPDOWN,\n itemName: 'TableColumns',\n items: model.tableColumnsItems,\n element: targetElement\n });\n };\n DropDownButtons.prototype.cellDropDown = function (type, tbElement, targetElement) {\n targetElement = select('#' + this.parent.getID() + '_' + type + '_TableCell', tbElement);\n if (targetElement.classList.contains(classes.CLS_DROPDOWN_BTN)) {\n return;\n }\n this.tableRowsDropDown = this.toolbarRenderer.renderDropDownButton({\n iconCss: 'e-table-cell e-icons',\n cssClass: classes.CLS_DROPDOWN_POPUP + ' ' + classes.CLS_DROPDOWN_ITEMS + ' ' + classes.CLS_QUICK_DROPDOWN,\n itemName: 'TableCell',\n items: model.tableCellItems,\n element: targetElement\n });\n };\n DropDownButtons.prototype.verticalAlignDropDown = function (type, tbElement, targetElement) {\n targetElement = select('#' + this.parent.getID() + '_' + type + '_TableCellVerticalAlign', tbElement);\n if (targetElement.classList.contains(classes.CLS_DROPDOWN_BTN)) {\n return;\n }\n this.tableCellVerticalAlignDropDown = this.toolbarRenderer.renderDropDownButton({\n iconCss: 'e-table-cell-ver-align e-icons',\n cssClass: classes.CLS_DROPDOWN_POPUP + ' ' + classes.CLS_DROPDOWN_ITEMS + ' ' + classes.CLS_QUICK_DROPDOWN,\n itemName: 'TableCellVerticalAlign',\n items: model.TableCellVerticalAlignItems,\n element: targetElement\n });\n };\n DropDownButtons.prototype.renderDisplayDropDown = function (type, tbElement, targetElement, item) {\n targetElement = select('#' + this.parent.getID() + '_' + type + (item === 'display' ? '_Display' : item === 'videolayoutoption' ? '_VideoLayoutOption' : '_AudioLayoutOption'), tbElement);\n if (targetElement.classList.contains(classes.CLS_DROPDOWN_BTN)) {\n return;\n }\n this.displayDropDown = this.toolbarRenderer.renderDropDownButton({\n iconCss: item === 'display' ? 'e-display e-icons' : item === 'videolayoutoption' ? 'e-video-display e-icons' : 'e-audio-display e-icons',\n cssClass: classes.CLS_DROPDOWN_POPUP + ' ' + classes.CLS_DROPDOWN_ITEMS + ' ' + classes.CLS_QUICK_DROPDOWN,\n itemName: item === 'display' ? 'Display' : item === 'videolayoutoption' ? 'VideoLayoutOption' : 'AudioLayoutOption',\n items: item === 'display' ? model.imageDisplayItems : item === 'videolayoutoption' ? model.videoLayoutOptionItems : model.audioLayoutOptionItems,\n element: targetElement\n });\n };\n DropDownButtons.prototype.renderAlignmentDropDown = function (type, tbElement, targetElement, item) {\n targetElement = select('#' + this.parent.getID() + '_' + type + (item === 'align' ? '_Align' : '_VideoAlign'), tbElement);\n if (targetElement.classList.contains(classes.CLS_DROPDOWN_BTN)) {\n return;\n }\n this.imageAlignDropDown = this.toolbarRenderer.renderDropDownButton({\n iconCss: 'e-justify-left e-icons',\n cssClass: classes.CLS_DROPDOWN_POPUP + ' ' + classes.CLS_DROPDOWN_ICONS + ' ' + classes.CLS_QUICK_DROPDOWN,\n itemName: item === 'align' ? 'Align' : 'VideoAlign',\n items: item === 'align' ? model.imageAlignItems : model.videoAlignItems,\n element: targetElement\n });\n };\n DropDownButtons.prototype.tableStylesDropDown = function (type, tbElement, targetElement) {\n targetElement = select('#' + this.parent.getID() + '_' + type + '_Styles', tbElement);\n if (targetElement.classList.contains(classes.CLS_DROPDOWN_BTN)) {\n return;\n }\n this.imageAlignDropDown = this.toolbarRenderer.renderDropDownButton({\n iconCss: 'e-style e-icons',\n cssClass: classes.CLS_DROPDOWN_POPUP + ' ' + classes.CLS_DROPDOWN_ICONS + ' ' + classes.CLS_QUICK_DROPDOWN,\n itemName: 'Styles',\n items: this.parent.tableSettings.styles,\n element: targetElement\n });\n };\n DropDownButtons.prototype.removeDropDownClasses = function (target) {\n removeClass([target], [\n classes.CLS_DROPDOWN_BTN,\n classes.CLS_DROPDOWN_POPUP,\n classes.CLS_DROPDOWN_ICONS,\n classes.CLS_DROPDOWN_ITEMS\n ]);\n };\n /**\n * destroyDropDowns method\n *\n * @returns {void}\n * @hidden\n\n */\n DropDownButtons.prototype.destroyDropDowns = function () {\n if (this.formatDropDown) {\n this.removeDropDownClasses(this.formatDropDown.element);\n this.formatDropDown.destroy();\n }\n if (this.fontNameDropDown) {\n this.removeDropDownClasses(this.fontNameDropDown.element);\n this.fontNameDropDown.destroy();\n }\n if (this.fontSizeDropDown) {\n this.removeDropDownClasses(this.fontSizeDropDown.element);\n this.fontSizeDropDown.destroy();\n }\n if (this.alignDropDown) {\n this.removeDropDownClasses(this.alignDropDown.element);\n this.alignDropDown.destroy();\n }\n if (this.imageAlignDropDown) {\n this.removeDropDownClasses(this.imageAlignDropDown.element);\n this.imageAlignDropDown.destroy();\n }\n if (this.displayDropDown) {\n this.removeDropDownClasses(this.displayDropDown.element);\n this.displayDropDown.destroy();\n }\n if (this.tableRowsDropDown) {\n this.removeDropDownClasses(this.tableRowsDropDown.element);\n this.tableRowsDropDown.destroy();\n }\n if (this.tableColumnsDropDown) {\n this.removeDropDownClasses(this.tableColumnsDropDown.element);\n this.tableColumnsDropDown.destroy();\n }\n if (this.tableCellVerticalAlignDropDown) {\n this.removeDropDownClasses(this.tableCellVerticalAlignDropDown.element);\n this.tableCellVerticalAlignDropDown.destroy();\n }\n if (this.numberFormatListDropDown) {\n this.removeDropDownClasses(this.numberFormatListDropDown.element);\n this.numberFormatListDropDown.destroy();\n }\n if (this.bulletFormatListDropDown) {\n this.removeDropDownClasses(this.bulletFormatListDropDown.element);\n this.bulletFormatListDropDown.destroy();\n }\n };\n DropDownButtons.prototype.setRtl = function (args) {\n if (this.formatDropDown) {\n this.formatDropDown.setProperties({ enableRtl: args.enableRtl });\n }\n if (this.fontNameDropDown) {\n this.fontNameDropDown.setProperties({ enableRtl: args.enableRtl });\n }\n if (this.fontSizeDropDown) {\n this.fontSizeDropDown.setProperties({ enableRtl: args.enableRtl });\n }\n if (this.alignDropDown) {\n this.alignDropDown.setProperties({ enableRtl: args.enableRtl });\n }\n if (this.imageAlignDropDown) {\n this.imageAlignDropDown.setProperties({ enableRtl: args.enableRtl });\n }\n if (this.displayDropDown) {\n this.displayDropDown.setProperties({ enableRtl: args.enableRtl });\n }\n if (this.numberFormatListDropDown) {\n this.numberFormatListDropDown.setProperties({ enableRtl: args.enableRtl });\n }\n if (this.bulletFormatListDropDown) {\n this.bulletFormatListDropDown.setProperties({ enableRtl: args.enableRtl });\n }\n };\n DropDownButtons.prototype.updateCss = function (dropDownObj, e) {\n if (dropDownObj && e.cssClass) {\n if (isNullOrUndefined(e.oldCssClass)) {\n dropDownObj.setProperties({ cssClass: (dropDownObj.cssClass + ' ' + e.cssClass).trim() });\n }\n else {\n dropDownObj.setProperties({ cssClass: (dropDownObj.cssClass.replace(e.oldCssClass, '').trim() + ' ' + e.cssClass).trim() });\n }\n }\n };\n DropDownButtons.prototype.setCssClass = function (e) {\n var dropDownObj = [\n this.formatDropDown, this.fontNameDropDown, this.fontSizeDropDown, this.alignDropDown, this.imageAlignDropDown,\n this.displayDropDown, this.numberFormatListDropDown, this.bulletFormatListDropDown, this.tableRowsDropDown,\n this.tableColumnsDropDown, this.tableCellVerticalAlignDropDown\n ];\n for (var i = 0; i < dropDownObj.length; i++) {\n this.updateCss(dropDownObj[i], e);\n }\n };\n DropDownButtons.prototype.addEventListener = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n this.parent.on(events.beforeDropDownItemRender, this.beforeRender, this);\n this.parent.on(events.iframeMouseDown, this.onIframeMouseDown, this);\n this.parent.on(events.rtlMode, this.setRtl, this);\n this.parent.on(events.destroy, this.removeEventListener, this);\n this.parent.on(events.modelChanged, this.onPropertyChanged, this);\n this.parent.on(events.bindCssClass, this.setCssClass, this);\n };\n DropDownButtons.prototype.onIframeMouseDown = function () {\n dispatchEvent(document, 'mousedown');\n };\n DropDownButtons.prototype.removeEventListener = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n this.parent.off(events.iframeMouseDown, this.onIframeMouseDown);\n this.parent.off(events.rtlMode, this.setRtl);\n this.parent.off(events.beforeDropDownItemRender, this.beforeRender);\n this.parent.off(events.destroy, this.removeEventListener);\n this.parent.off(events.modelChanged, this.onPropertyChanged);\n this.parent.off(events.bindCssClass, this.setCssClass);\n };\n return DropDownButtons;\n}());\nexport { DropDownButtons };\n","import { isNullOrUndefined as isNOU } from '@syncfusion/ej2-base';\nimport * as events from '../base/constant';\nimport { ServiceLocator } from '../services/service-locator';\nimport { RendererFactory } from '../services/renderer-factory';\n/**\n * `ToolbarAction` module is used to toolbar click action\n */\nvar ToolbarAction = /** @class */ (function () {\n function ToolbarAction(parent) {\n this.parent = parent;\n this.addEventListener();\n this.serviceLocator = new ServiceLocator;\n this.serviceLocator.register('rendererFactory', new RendererFactory);\n }\n ToolbarAction.prototype.addEventListener = function () {\n this.parent.on(events.toolbarClick, this.toolbarClick, this);\n this.parent.on(events.dropDownSelect, this.dropDownSelect, this);\n this.parent.on(events.colorPickerChanged, this.renderSelection, this);\n this.parent.on(events.destroy, this.removeEventListener, this);\n };\n ToolbarAction.prototype.toolbarClick = function (args) {\n if (isNOU(args.item)) {\n return;\n }\n if (!isNOU(args.item.controlParent)) {\n // eslint-disable-next-line\n var activeEle = args.item.controlParent\n .activeEle;\n if (activeEle) {\n activeEle.tabIndex = -1;\n }\n }\n if (args.item.command === 'NumberFormatList' || args.item.command === 'BulletFormatList') {\n if (args.originalEvent.target.classList.contains('e-order-list') || args.originalEvent.target.classList.contains('e-unorder-list')) {\n args.item.command = 'Lists';\n args.item.subCommand = args.item.subCommand === 'NumberFormatList' ? 'OL' : 'UL';\n }\n }\n if (args.item.command === 'Lists') {\n if (args.originalEvent.target.classList.contains('e-caret') &&\n (args.originalEvent.target.parentElement.classList.contains('e-rte-bulletformatlist-dropdown') || args.originalEvent.target.parentElement.classList.contains('e-rte-numberformatlist-dropdown'))) {\n args.item.command = args.item.subCommand = null;\n }\n }\n this.parent.notify(events.htmlToolbarClick, args);\n this.parent.notify(events.markdownToolbarClick, args);\n };\n ToolbarAction.prototype.dropDownSelect = function (e) {\n this.parent.notify(events.selectionRestore, {});\n if (!(document.body.contains(document.body.querySelector('.e-rte-quick-toolbar'))\n && e.item && (e.item.command === 'Images' || e.item.command === 'Audios' || e.item.command === 'Videos' ||\n e.item.command === 'VideoLayoutOption' || e.item.command === 'Display' || e.item.command === 'Table'))) {\n var value = e.item.controlParent && this.parent.quickToolbarModule && this.parent.quickToolbarModule.tableQTBar\n && this.parent.quickToolbarModule.tableQTBar.element.contains(e.item.controlParent.element) ? 'Table' : null;\n if (e.item.command === 'Lists') {\n var listItem = { listStyle: e.item.value, listImage: e.item.listImage, type: e.item.subCommand };\n this.parent.formatter.process(this.parent, e, e.originalEvent, listItem);\n }\n else {\n this.parent.formatter.process(this.parent, e, e.originalEvent, value);\n }\n }\n this.parent.notify(events.selectionSave, {});\n };\n ToolbarAction.prototype.renderSelection = function (args) {\n this.parent.notify(events.selectionRestore, {});\n this.parent.formatter.process(this.parent, args, args.originalEvent, null);\n this.parent.notify(events.selectionSave, {});\n };\n ToolbarAction.prototype.removeEventListener = function () {\n this.parent.off(events.toolbarClick, this.toolbarClick);\n this.parent.off(events.dropDownSelect, this.dropDownSelect);\n this.parent.off(events.colorPickerChanged, this.renderSelection);\n this.parent.off(events.destroy, this.removeEventListener);\n };\n return ToolbarAction;\n}());\nexport { ToolbarAction };\n","import { addClass, Browser, EventHandler, detach, removeClass, select, selectAll, KeyboardEvents } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined as isNOU, closest, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { setStyleAttribute, extend } from '@syncfusion/ej2-base';\nimport * as events from '../base/constant';\nimport * as classes from '../base/classes';\nimport { RenderType, ToolbarType } from '../base/enum';\nimport { setToolbarStatus, updateUndoRedoStatus, getTBarItemsIndex, getCollection, toObjectLowerCase, isIDevice, getTooltipText } from '../base/util';\nimport { updateDropDownFontFormatLocale } from '../base/util';\nimport * as model from '../models/items';\nimport { ToolbarRenderer } from '../renderer/toolbar-renderer';\nimport { BaseToolbar } from './base-toolbar';\nimport { DropDownButtons } from './dropdown-buttons';\nimport { ToolbarAction } from './toolbar-action';\n/**\n * `Toolbar` module is used to handle Toolbar actions.\n */\nvar Toolbar = /** @class */ (function () {\n function Toolbar(parent, serviceLocator) {\n this.parent = parent;\n this.isToolbar = false;\n this.locator = serviceLocator;\n this.isTransformChild = false;\n this.renderFactory = this.locator.getService('rendererFactory');\n model.updateDropDownLocale(this.parent);\n updateDropDownFontFormatLocale(this.parent);\n this.renderFactory.addRenderer(RenderType.Toolbar, new ToolbarRenderer(this.parent));\n this.toolbarRenderer = this.renderFactory.getRenderer(RenderType.Toolbar);\n this.baseToolbar = new BaseToolbar(this.parent, this.locator);\n this.addEventListener();\n if (this.parent.toolbarSettings && Object.keys(this.parent.toolbarSettings.itemConfigs).length > 0) {\n extend(this.tools, model.tools, toObjectLowerCase(this.parent.toolbarSettings.itemConfigs), true);\n }\n else {\n this.tools = model.tools;\n }\n }\n Toolbar.prototype.initializeInstance = function () {\n this.contentRenderer = this.renderFactory.getRenderer(RenderType.Content);\n this.editableElement = this.contentRenderer.getEditPanel();\n this.editPanel = this.contentRenderer.getPanel();\n };\n Toolbar.prototype.toolbarBindEvent = function () {\n if (!this.parent.inlineMode.enable) {\n this.keyBoardModule = new KeyboardEvents(this.getToolbarElement(), {\n keyAction: this.toolBarKeyDown.bind(this), keyConfigs: this.parent.formatter.keyConfig, eventName: 'keydown'\n });\n }\n };\n Toolbar.prototype.toolBarKeyDown = function (e) {\n switch (e.action) {\n case 'escape':\n this.parent.contentModule.getEditPanel().focus();\n break;\n }\n };\n Toolbar.prototype.createToolbarElement = function () {\n this.tbElement = this.parent.createElement('div', { id: this.parent.getID() + '_toolbar' });\n if (!Browser.isDevice && this.parent.inlineMode.enable && isIDevice()) {\n return;\n }\n else {\n if (this.parent.toolbarSettings.enableFloating && !this.parent.inlineMode.enable) {\n this.tbWrapper = this.parent.createElement('div', {\n id: this.parent.getID() + '_toolbar_wrapper',\n innerHTML: this.tbElement.outerHTML,\n className: classes.CLS_TB_WRAP\n });\n this.tbElement = this.tbWrapper.firstElementChild;\n this.parent.element.insertBefore(this.tbWrapper, this.editPanel);\n }\n else {\n this.parent.element.insertBefore(this.tbElement, this.editPanel);\n }\n }\n };\n Toolbar.prototype.getToolbarMode = function () {\n var tbMode;\n switch (this.parent.toolbarSettings.type) {\n case ToolbarType.Expand:\n tbMode = 'Extended';\n break;\n case ToolbarType.Scrollable:\n tbMode = 'Scrollable';\n break;\n default:\n tbMode = 'MultiRow';\n }\n if (isIDevice() && this.parent.toolbarSettings.type === ToolbarType.Expand) {\n tbMode = ToolbarType.Scrollable;\n }\n return tbMode;\n };\n Toolbar.prototype.checkToolbarResponsive = function (ele) {\n if (!Browser.isDevice || isIDevice()) {\n return false;\n }\n var tBarMode;\n if (this.parent.toolbarSettings.type === ToolbarType.Expand) {\n tBarMode = ToolbarType.MultiRow;\n }\n else {\n tBarMode = this.parent.toolbarSettings.type;\n }\n this.baseToolbar.render({\n container: ((this.parent.inlineMode.enable) ? 'quick' : 'toolbar'),\n items: this.parent.toolbarSettings.items,\n mode: tBarMode,\n target: ele,\n cssClass: this.parent.cssClass\n });\n if (this.parent.toolbarSettings.type === ToolbarType.Expand) {\n addClass([ele], ['e-rte-tb-mobile']);\n if (this.parent.inlineMode.enable) {\n this.addFixedTBarClass();\n }\n else {\n addClass([ele], [classes.CLS_TB_STATIC]);\n }\n }\n this.wireEvents();\n this.dropDownModule.renderDropDowns({\n container: ele,\n containerType: ((this.parent.inlineMode.enable) ? 'quick' : 'toolbar'),\n items: this.parent.toolbarSettings.items\n });\n this.parent.notify(events.renderColorPicker, {\n container: this.tbElement,\n containerType: ((this.parent.inlineMode.enable) ? 'quick' : 'toolbar'),\n items: this.parent.toolbarSettings.items\n });\n return true;\n };\n Toolbar.prototype.checkIsTransformChild = function () {\n this.isTransformChild = false;\n var transformElements = selectAll('[style*=\"transform\"]', document);\n for (var i = 0; i < transformElements.length; i++) {\n // eslint-disable-next-line max-len\n if (!isNullOrUndefined(transformElements[i].contains) && transformElements[i].contains(this.parent.element)) {\n this.isTransformChild = true;\n break;\n }\n }\n };\n Toolbar.prototype.toggleFloatClass = function (e) {\n var topValue;\n var isBody = false;\n var isFloat = false;\n var scrollParent;\n var floatOffset = this.parent.floatingToolbarOffset;\n if (e && this.parent.iframeSettings.enable && this.parent.inputElement.ownerDocument === e.target) {\n scrollParent = e.target.body;\n }\n else if (e && e.target !== document) {\n scrollParent = e.target;\n }\n else {\n isBody = true;\n scrollParent = document.body;\n }\n var tbHeight = this.getToolbarHeight() + this.getExpandTBarPopHeight();\n if (this.isTransformChild) {\n topValue = 0;\n var scrollParentRelativeTop = 0;\n var trgHeight = this.parent.element.offsetHeight;\n if (isBody) {\n var bodyStyle = window.getComputedStyle(scrollParent);\n scrollParentRelativeTop = parseFloat(bodyStyle.marginTop.split('px')[0]) + parseFloat(bodyStyle.paddingTop.split('px')[0]);\n }\n var targetTop = this.parent.element.getBoundingClientRect().top;\n var scrollParentYOffset = (Browser.isMSPointer && isBody) ? window.pageYOffset : scrollParent.parentElement.scrollTop;\n var scrollParentRect = scrollParent.getBoundingClientRect();\n var scrollParentTop = (!isBody) ? scrollParentRect.top : (scrollParentRect.top + scrollParentYOffset);\n var outOfRange = ((targetTop - ((!isBody) ? scrollParentTop : 0))\n + trgHeight > tbHeight + floatOffset) ? false : true;\n if (targetTop > (scrollParentTop + floatOffset) || targetTop < -trgHeight || ((targetTop < 0) ? outOfRange : false)) {\n isFloat = false;\n removeClass([this.tbElement], [classes.CLS_TB_ABS_FLOAT]);\n }\n else if (targetTop < (scrollParentTop + floatOffset)) {\n if (targetTop < 0) {\n topValue = (-targetTop) + scrollParentTop;\n }\n else {\n topValue = scrollParentTop - targetTop;\n }\n topValue = (isBody) ? topValue - scrollParentRelativeTop : topValue;\n addClass([this.tbElement], [classes.CLS_TB_ABS_FLOAT]);\n isFloat = true;\n }\n }\n else {\n var parent_1 = this.parent.element.getBoundingClientRect();\n if (window.innerHeight < parent_1.top) {\n return;\n }\n topValue = (e && e.target !== document) ? scrollParent.getBoundingClientRect().top : 0;\n if ((parent_1.bottom < (floatOffset + tbHeight + topValue)) || parent_1.bottom < 0 || parent_1.top > floatOffset + topValue) {\n isFloat = false;\n }\n else if (parent_1.top < floatOffset || parent_1.top < floatOffset + topValue) {\n isFloat = true;\n }\n }\n if (!isFloat) {\n removeClass([this.tbElement], [classes.CLS_TB_FLOAT]);\n setStyleAttribute(this.tbElement, { top: 0 + 'px', width: '100%' });\n }\n else {\n addClass([this.tbElement], [classes.CLS_TB_FLOAT]);\n setStyleAttribute(this.tbElement, { width: this.parent.element.offsetWidth + 'px', top: (floatOffset + topValue) + 'px' });\n }\n };\n Toolbar.prototype.renderToolbar = function () {\n this.initializeInstance();\n this.createToolbarElement();\n if (this.checkToolbarResponsive(this.tbElement)) {\n return;\n }\n if (this.parent.inlineMode.enable) {\n this.parent.notify(events.renderInlineToolbar, {});\n }\n else {\n this.baseToolbar.render({\n container: 'toolbar',\n items: this.parent.toolbarSettings.items,\n mode: this.getToolbarMode(),\n target: this.tbElement,\n cssClass: this.parent.cssClass\n });\n if (!this.parent.inlineMode.enable) {\n if (this.parent.toolbarSettings.enableFloating) {\n this.checkIsTransformChild();\n this.toggleFloatClass();\n }\n addClass([this.parent.element], [classes.CLS_RTE_TB_ENABLED]);\n if (this.parent.toolbarSettings.type === ToolbarType.Expand) {\n addClass([this.parent.element], [classes.CLS_RTE_EXPAND_TB]);\n }\n }\n }\n this.wireEvents();\n if (this.parent.inlineMode.enable && !isIDevice()) {\n this.addFixedTBarClass();\n }\n if (!this.parent.inlineMode.enable) {\n this.dropDownModule.renderDropDowns({\n container: this.tbElement,\n containerType: 'toolbar',\n items: this.parent.toolbarSettings.items\n });\n this.parent.notify(events.renderColorPicker, {\n container: this.tbElement,\n containerType: 'toolbar',\n items: this.parent.toolbarSettings.items\n });\n this.refreshToolbarOverflow();\n }\n var divEle = this.parent.element.querySelector('.e-rte-srctextarea');\n var iframeEle = this.parent.element.querySelector('.e-source-content');\n if ((!this.parent.iframeSettings.enable && (!isNOU(divEle) && divEle.style.display === 'block')) ||\n (this.parent.iframeSettings.enable && (!isNOU(iframeEle) && iframeEle.style.display === 'block'))) {\n this.parent.notify(events.updateToolbarItem, {\n targetItem: 'SourceCode', updateItem: 'Preview',\n baseToolbar: this.parent.getBaseToolbarObject()\n });\n this.parent.disableToolbarItem(this.parent.toolbarSettings.items);\n }\n };\n /**\n * addFixedTBarClass method\n *\n * @returns {void}\n * @hidden\n\n */\n Toolbar.prototype.addFixedTBarClass = function () {\n addClass([this.tbElement], [classes.CLS_TB_FIXED]);\n };\n /**\n * removeFixedTBarClass method\n *\n * @returns {void}\n * @hidden\n\n */\n Toolbar.prototype.removeFixedTBarClass = function () {\n removeClass([this.tbElement], [classes.CLS_TB_FIXED]);\n };\n Toolbar.prototype.showFixedTBar = function () {\n addClass([this.tbElement], [classes.CLS_SHOW]);\n if (Browser.isIos) {\n addClass([this.tbElement], [classes.CLS_TB_IOS_FIX]);\n }\n };\n Toolbar.prototype.hideFixedTBar = function () {\n // eslint-disable-next-line\n (!this.isToolbar) ? removeClass([this.tbElement], [classes.CLS_SHOW, classes.CLS_TB_IOS_FIX]) : this.isToolbar = false;\n };\n /**\n * updateItem method\n *\n * @param {IUpdateItemsModel} args - specifies the arguments.\n * @returns {void}\n * @hidden\n\n */\n Toolbar.prototype.updateItem = function (args) {\n var item = this.tools[args.updateItem.toLocaleLowerCase()];\n if (this.parent.locale !== 'en-US') {\n item.tooltip = getTooltipText(args.updateItem.toLocaleLowerCase(), this.locator);\n }\n var trgItem = this.tools[args.targetItem.toLocaleLowerCase()];\n var index = getTBarItemsIndex(getCollection(trgItem.subCommand), args.baseToolbar.toolbarObj.items)[0];\n if (!isNOU(index)) {\n var prefixId = this.parent.inlineMode.enable ? '_quick_' : '_toolbar_';\n args.baseToolbar.toolbarObj.items[index].id = this.parent.getID() + prefixId + item.id;\n args.baseToolbar.toolbarObj.items[index].prefixIcon = item.icon;\n args.baseToolbar.toolbarObj.items[index].tooltipText = item.tooltip;\n args.baseToolbar.toolbarObj.items[index].subCommand = item.subCommand;\n args.baseToolbar.toolbarObj.dataBind();\n args.baseToolbar.toolbarObj.refreshOverflow();\n }\n else {\n this.addTBarItem(args, 0);\n }\n };\n Toolbar.prototype.updateToolbarStatus = function (args) {\n if (!this.tbElement || (this.parent.inlineMode.enable && (isIDevice() || !Browser.isDevice))) {\n return;\n }\n var options = {\n args: args,\n dropDownModule: this.dropDownModule,\n parent: this.parent,\n tbElements: selectAll('.' + classes.CLS_TB_ITEM, this.tbElement),\n tbItems: this.baseToolbar.toolbarObj.items\n };\n setToolbarStatus(options, (this.parent.inlineMode.enable ? true : false), this.parent);\n };\n Toolbar.prototype.fullScreen = function (e) {\n this.parent.fullScreenModule.showFullScreen(e);\n };\n Toolbar.prototype.hideScreen = function (e) {\n this.parent.fullScreenModule.hideFullScreen(e);\n };\n /**\n * getBaseToolbar method\n *\n * @returns {void}\n * @hidden\n\n */\n Toolbar.prototype.getBaseToolbar = function () {\n return this.baseToolbar;\n };\n /**\n * addTBarItem method\n *\n * @param {IUpdateItemsModel} args - specifies the arguments.\n * @param {number} index - specifies the index value.\n * @returns {void}\n * @hidden\n\n */\n Toolbar.prototype.addTBarItem = function (args, index) {\n args.baseToolbar.toolbarObj.addItems([args.baseToolbar.getObject(args.updateItem, 'toolbar')], index);\n };\n /**\n * enableTBarItems method\n *\n * @param {BaseToolbar} baseToolbar - specifies the toolbar.\n * @param {string} items - specifies the string value.\n * @param {boolean} isEnable - specifies the boolean value.\n * @param {boolean} muteToolbarUpdate - specifies the toolbar.\n * @returns {void}\n * @hidden\n\n */\n Toolbar.prototype.enableTBarItems = function (baseToolbar, items, isEnable, muteToolbarUpdate) {\n var trgItems = getTBarItemsIndex(getCollection(items), baseToolbar.toolbarObj.items);\n this.tbItems = selectAll('.' + classes.CLS_TB_ITEM, baseToolbar.toolbarObj.element);\n for (var i = 0; i < trgItems.length; i++) {\n var item = this.tbItems[trgItems[i]];\n if (item) {\n baseToolbar.toolbarObj.enableItems(item, isEnable);\n }\n }\n if (!select('.e-rte-srctextarea', this.parent.element) && !muteToolbarUpdate) {\n updateUndoRedoStatus(baseToolbar, this.parent.formatter.editorManager.undoRedoManager.getUndoStatus());\n }\n };\n /**\n * removeTBarItems method\n *\n * @param {string} items - specifies the string value.\n * @returns {void}\n * @hidden\n\n */\n Toolbar.prototype.removeTBarItems = function (items) {\n if (isNullOrUndefined(this.baseToolbar.toolbarObj)) {\n this.baseToolbar = this.parent.getBaseToolbarObject();\n }\n var trgItems = getTBarItemsIndex(getCollection(items), this.baseToolbar.toolbarObj.items);\n this.tbItems = (this.parent.inlineMode.enable) ? selectAll('.' + classes.CLS_TB_ITEM, this.baseToolbar.toolbarObj.element)\n : selectAll('.' + classes.CLS_TB_ITEM, this.parent.element);\n for (var i = 0; i < trgItems.length; i++) {\n this.baseToolbar.toolbarObj.removeItems(this.tbItems[trgItems[i]]);\n }\n };\n /**\n * getExpandTBarPopHeight method\n *\n * @returns {void}\n * @hidden\n\n */\n Toolbar.prototype.getExpandTBarPopHeight = function () {\n var popHeight = 0;\n if (this.parent.toolbarSettings.type === ToolbarType.Expand && this.tbElement.classList.contains('e-extended-toolbar')) {\n var expandPopup = select('.e-toolbar-extended', this.tbElement);\n if (expandPopup && this.tbElement.classList.contains('e-expand-open')\n || expandPopup && expandPopup.classList.contains('e-popup-open')) {\n addClass([expandPopup], [classes.CLS_VISIBLE]);\n popHeight = popHeight + expandPopup.offsetHeight;\n removeClass([expandPopup], [classes.CLS_VISIBLE]);\n }\n else {\n removeClass([this.tbElement], [classes.CLS_EXPAND_OPEN]);\n }\n }\n return popHeight;\n };\n /**\n * getToolbarHeight method\n *\n * @returns {void}\n * @hidden\n\n */\n Toolbar.prototype.getToolbarHeight = function () {\n return this.tbElement.offsetHeight;\n };\n /**\n * getToolbarElement method\n *\n * @returns {void}\n * @hidden\n\n */\n Toolbar.prototype.getToolbarElement = function () {\n return select('.' + classes.CLS_TOOLBAR, this.parent.element);\n };\n /**\n * refreshToolbarOverflow method\n *\n * @returns {void}\n * @hidden\n\n */\n Toolbar.prototype.refreshToolbarOverflow = function () {\n this.parent.element.classList.remove(classes.CLS_RTL);\n this.baseToolbar.toolbarObj.refreshOverflow();\n if (this.parent.enableRtl) {\n this.parent.element.classList.add(classes.CLS_RTL);\n }\n };\n Toolbar.prototype.isToolbarDestroyed = function () {\n return this.baseToolbar.toolbarObj && !this.baseToolbar.toolbarObj.isDestroyed;\n };\n Toolbar.prototype.destroyToolbar = function () {\n if (this.isToolbarDestroyed()) {\n this.parent.unWireScrollElementsEvents();\n this.unWireEvents();\n this.parent.notify(events.destroyColorPicker, {});\n this.dropDownModule.destroyDropDowns();\n this.baseToolbar.toolbarObj.destroy();\n this.removeEventListener();\n removeClass([this.parent.element], [classes.CLS_RTE_TB_ENABLED]);\n removeClass([this.parent.element], [classes.CLS_RTE_EXPAND_TB]);\n var tbWrapper = select('.' + classes.CLS_TB_WRAP, this.parent.element);\n var tbElement = select('.' + classes.CLS_TOOLBAR, this.parent.element);\n if (!isNullOrUndefined(tbWrapper)) {\n detach(tbWrapper);\n }\n else if (!isNullOrUndefined(tbElement)) {\n detach(tbElement);\n }\n }\n };\n /**\n * Destroys the ToolBar.\n *\n * @function destroy\n * @returns {void}\n * @hidden\n\n */\n Toolbar.prototype.destroy = function () {\n if (this.isToolbarDestroyed()) {\n this.destroyToolbar();\n if (this.keyBoardModule) {\n this.keyBoardModule.destroy();\n }\n }\n };\n Toolbar.prototype.moduleDestroy = function () {\n this.parent = null;\n this.baseToolbar.parent = null;\n this.toolbarActionModule.parent = null;\n this.dropDownModule.parent = null;\n };\n Toolbar.prototype.scrollHandler = function (e) {\n if (!this.parent.inlineMode.enable) {\n if (this.parent.toolbarSettings.enableFloating && this.getDOMVisibility(this.tbElement)) {\n this.toggleFloatClass(e.args);\n }\n }\n };\n Toolbar.prototype.getDOMVisibility = function (el) {\n if (!el.offsetParent && el.offsetWidth === 0 && el.offsetHeight === 0) {\n return false;\n }\n return true;\n };\n Toolbar.prototype.mouseDownHandler = function () {\n if (Browser.isDevice && this.parent.inlineMode.enable && !isIDevice()) {\n this.showFixedTBar();\n }\n };\n Toolbar.prototype.focusChangeHandler = function () {\n if (Browser.isDevice && this.parent.inlineMode.enable && !isIDevice()) {\n this.isToolbar = false;\n this.hideFixedTBar();\n }\n };\n Toolbar.prototype.dropDownBeforeOpenHandler = function () {\n this.isToolbar = true;\n };\n // eslint-disable-next-line\n Toolbar.prototype.tbFocusHandler = function (e) {\n var activeElm = document.activeElement;\n var isToolbaractive = closest(activeElm, '.e-rte-toolbar');\n if (activeElm === this.parent.getToolbarElement() || isToolbaractive === this.parent.getToolbarElement()) {\n var toolbarItem = this.parent.getToolbarElement().querySelectorAll('.e-expended-nav');\n for (var i = 0; i < toolbarItem.length; i++) {\n if (isNOU(this.parent.getToolbarElement().querySelector('.e-insert-table-btn'))) {\n toolbarItem[i].setAttribute('tabindex', '0');\n }\n else {\n toolbarItem[i].setAttribute('tabindex', '1');\n }\n }\n }\n };\n Toolbar.prototype.tbKeydownHandler = function (e) {\n if (e.target.classList.contains('e-dropdown-btn') ||\n e.target.getAttribute('id') === this.parent.getID() + '_toolbar_CreateTable') {\n e.target.setAttribute('tabindex', '0');\n }\n };\n Toolbar.prototype.toolbarClickHandler = function (e) {\n var trg = closest(e.originalEvent.target, '.e-hor-nav');\n if (trg && this.parent.toolbarSettings.type === ToolbarType.Expand && !isNOU(trg)) {\n var extendedTbar = this.tbElement.querySelector('.e-toolbar-extended');\n if (!isNOU(extendedTbar)) {\n setStyleAttribute(extendedTbar, { maxHeight: '', display: 'block' });\n setStyleAttribute(extendedTbar, { maxHeight: extendedTbar.offsetHeight + 'px', display: '' });\n }\n if (!trg.classList.contains('e-nav-active')) {\n removeClass([this.tbElement], [classes.CLS_EXPAND_OPEN]);\n this.parent.setContentHeight('toolbar', false);\n }\n else {\n addClass([this.tbElement], [classes.CLS_EXPAND_OPEN]);\n this.parent.setContentHeight('toolbar', true);\n }\n }\n else if (Browser.isDevice || this.parent.inlineMode.enable) {\n this.isToolbar = true;\n }\n if (isNOU(trg) && this.parent.toolbarSettings.type === ToolbarType.Expand) {\n removeClass([this.tbElement], [classes.CLS_EXPAND_OPEN]);\n }\n };\n Toolbar.prototype.wireEvents = function () {\n if (this.parent.inlineMode.enable && isIDevice()) {\n return;\n }\n EventHandler.add(this.tbElement, 'focusin', this.tbFocusHandler, this);\n EventHandler.add(this.tbElement, 'keydown', this.tbKeydownHandler, this);\n };\n Toolbar.prototype.unWireEvents = function () {\n EventHandler.remove(this.tbElement, 'focusin', this.tbFocusHandler);\n EventHandler.remove(this.tbElement, 'keydown', this.tbKeydownHandler);\n };\n Toolbar.prototype.addEventListener = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n this.dropDownModule = new DropDownButtons(this.parent, this.locator);\n this.toolbarActionModule = new ToolbarAction(this.parent);\n this.parent.on(events.initialEnd, this.renderToolbar, this);\n this.parent.on(events.scroll, this.scrollHandler, this);\n this.parent.on(events.bindOnEnd, this.toolbarBindEvent, this);\n this.parent.on(events.toolbarUpdated, this.updateToolbarStatus, this);\n this.parent.on(events.modelChanged, this.onPropertyChanged, this);\n this.parent.on(events.refreshBegin, this.onRefresh, this);\n this.parent.on(events.destroy, this.destroy, this);\n this.parent.on(events.enableFullScreen, this.fullScreen, this);\n this.parent.on(events.disableFullScreen, this.hideScreen, this);\n this.parent.on(events.updateToolbarItem, this.updateItem, this);\n this.parent.on(events.beforeDropDownOpen, this.dropDownBeforeOpenHandler, this);\n this.parent.on(events.expandPopupClick, this.parent.setContentHeight, this.parent);\n this.parent.on(events.focusChange, this.focusChangeHandler, this);\n this.parent.on(events.mouseDown, this.mouseDownHandler, this);\n this.parent.on(events.sourceCodeMouseDown, this.mouseDownHandler, this);\n this.parent.on(events.bindCssClass, this.setCssClass, this);\n this.parent.on(events.moduleDestroy, this.moduleDestroy, this);\n if (!this.parent.inlineMode.enable && !isIDevice()) {\n this.parent.on(events.toolbarClick, this.toolbarClickHandler, this);\n }\n };\n Toolbar.prototype.removeEventListener = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n this.parent.off(events.initialEnd, this.renderToolbar);\n this.parent.off(events.scroll, this.scrollHandler);\n this.parent.off(events.bindOnEnd, this.toolbarBindEvent);\n this.parent.off(events.toolbarUpdated, this.updateToolbarStatus);\n this.parent.off(events.modelChanged, this.onPropertyChanged);\n this.parent.off(events.refreshBegin, this.onRefresh);\n this.parent.off(events.destroy, this.destroy);\n this.parent.off(events.enableFullScreen, this.parent.fullScreenModule.showFullScreen);\n this.parent.off(events.disableFullScreen, this.parent.fullScreenModule.hideFullScreen);\n this.parent.off(events.updateToolbarItem, this.updateItem);\n this.parent.off(events.beforeDropDownOpen, this.dropDownBeforeOpenHandler);\n this.parent.off(events.expandPopupClick, this.parent.setContentHeight);\n this.parent.off(events.focusChange, this.focusChangeHandler);\n this.parent.off(events.mouseDown, this.mouseDownHandler);\n this.parent.off(events.sourceCodeMouseDown, this.mouseDownHandler);\n this.parent.off(events.bindCssClass, this.setCssClass);\n this.parent.off(events.moduleDestroy, this.moduleDestroy);\n if (!this.parent.inlineMode.enable && !isIDevice()) {\n this.parent.off(events.toolbarClick, this.toolbarClickHandler);\n }\n };\n // eslint-disable-next-line @typescript-eslint/tslint/config\n Toolbar.prototype.setCssClass = function (e) {\n if (this.toolbarObj && e.cssClass) {\n if (isNullOrUndefined(e.oldCssClass)) {\n this.toolbarObj.setProperties({ cssClass: (this.toolbarObj.cssClass + ' ' + e.cssClass).trim() });\n }\n else {\n this.toolbarObj.setProperties({ cssClass: (this.toolbarObj.cssClass.replace(e.oldCssClass, '').trim() + ' ' + e.cssClass).trim() });\n }\n }\n };\n Toolbar.prototype.onRefresh = function () {\n if (!this.parent.inlineMode.enable) {\n this.refreshToolbarOverflow();\n }\n this.parent.setContentHeight('', true);\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {RichTextEditorModel} e - specifies the string value\n * @returns {void}\n * @hidden\n\n */\n Toolbar.prototype.onPropertyChanged = function (e) {\n if (!isNullOrUndefined(e.newProp.inlineMode)) {\n for (var _i = 0, _a = Object.keys(e.newProp.inlineMode); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'enable':\n this.refreshToolbar();\n break;\n }\n }\n }\n if (e.module !== this.getModuleName()) {\n return;\n }\n this.refreshToolbar();\n };\n Toolbar.prototype.refreshToolbar = function () {\n if (isNullOrUndefined(this.baseToolbar.toolbarObj)) {\n this.baseToolbar = this.parent.getBaseToolbarObject();\n }\n var tbWrapper = select('.' + classes.CLS_TB_WRAP, this.parent.element);\n var tbElement = select('.' + classes.CLS_TOOLBAR, this.parent.element);\n if (tbElement || tbWrapper) {\n this.destroyToolbar();\n }\n if (this.parent.toolbarSettings.enable) {\n this.addEventListener();\n this.renderToolbar();\n this.parent.wireScrollElementsEvents();\n if (!select('.e-rte-srctextarea', this.parent.element)) {\n updateUndoRedoStatus(this.baseToolbar, this.parent.formatter.editorManager.undoRedoManager.getUndoStatus());\n }\n this.parent.notify(events.dynamicModule, {});\n }\n };\n /**\n * For internal use only - Get the module name.\n *\n * @returns {void}\n * @hidden\n */\n Toolbar.prototype.getModuleName = function () {\n return 'toolbar';\n };\n return Toolbar;\n}());\nexport { Toolbar };\n","import { extend, isNullOrUndefined as isNOU, Browser } from '@syncfusion/ej2-base';\nimport * as CONSTANT from '../base/constant';\nimport { updateUndoRedoStatus, isIDevice } from '../base/util';\nimport { KEY_DOWN, KEY_UP } from './../../common/constant';\n/**\n * Formatter\n *\n * @hidden\n\n */\nvar Formatter = /** @class */ (function () {\n function Formatter() {\n }\n /**\n * To execute the command\n *\n * @param {IRichTextEditor} self - specifies the self element.\n * @param {ActionBeginEventArgs} args - specifies the event arguments.\n * @param {MouseEvent|KeyboardEvent} event - specifies the keyboard event.\n * @param {IItemCollectionArgs} value - specifies the collection arguments\n * @returns {void}\n * @hidden\n\n */\n Formatter.prototype.process = function (self, args, event, value) {\n var _this = this;\n var selection = self.contentModule.getDocument().getSelection();\n var range = (selection.rangeCount > 0) ? selection.getRangeAt(selection.rangeCount - 1) : null;\n var saveSelection;\n var isKeyboardVideoInsert = (!isNOU(value) && !isNOU(value.cssClass) &&\n value.cssClass !== 'e-video-inline');\n if (self.editorMode === 'HTML') {\n if (!isNOU(args) && !isKeyboardVideoInsert) {\n if (isNOU(args.name) || (!isNOU(args.name) && args.name !== 'showDialog')) {\n saveSelection = this.editorManager.nodeSelection.save(range, self.contentModule.getDocument());\n }\n }\n }\n if (!isNOU(args)\n && args.item.command\n && args.item.command !== 'Table'\n && args.item.command !== 'Actions'\n && args.item.command !== 'Links'\n && args.item.command !== 'Images'\n && args.item.command !== 'Files'\n && args.item.command !== 'Audios'\n && args.item.command !== 'Videos'\n && range\n && !(self.contentModule.getEditPanel().contains(this.getAncestorNode(range.commonAncestorContainer))\n || self.contentModule.getEditPanel() === range.commonAncestorContainer\n || self.contentModule.getPanel() === range.commonAncestorContainer)) {\n return;\n }\n if (!isNOU(args) && self.maxLength !== -1 && !isNOU(args.item.command)) {\n var currentInsertContentLength = 0;\n if (args.item.command === 'Links') {\n currentInsertContentLength = value.text.length === 0 ? value.url.length : value.text.length;\n }\n if (args.item.command === 'Images' || args.item.command === 'Videos' || args.item.command === 'Table' || args.item.command === 'Files') {\n currentInsertContentLength = 1;\n }\n var currentLength = self.getText().trim().length;\n var selectionLength = self.getSelection().length;\n var totalLength = (currentLength - selectionLength) + currentInsertContentLength;\n if (!(self.maxLength === -1 || totalLength <= self.maxLength)) {\n return;\n }\n }\n if (isNOU(args)) {\n var action_1 = event.action;\n if (action_1 !== 'tab' && action_1 !== 'enter' && action_1 !== 'space' && action_1 !== 'escape') {\n args = {};\n if (self.editorMode === 'Markdown' && action_1 === 'insert-table') {\n value = {\n 'headingText': self.localeObj.getConstant('TableHeadingText'),\n 'colText': self.localeObj.getConstant('TableColText')\n };\n }\n var items = {\n originalEvent: event, cancel: false,\n requestType: action_1 || (event.key + 'Key'),\n itemCollection: value\n };\n extend(args, args, items, true);\n self.trigger(CONSTANT.actionBegin, args, function (actionBeginArgs) {\n if (actionBeginArgs.cancel) {\n if (action_1 === 'paste' || action_1 === 'cut' || action_1 === 'copy') {\n event.preventDefault();\n }\n }\n });\n }\n var isTableModule = isNOU(self.tableModule) ? true : self.tableModule ?\n self.tableModule.ensureInsideTableList : false;\n if ((event.which === 9 && isTableModule) || event.which !== 9) {\n if (event.which === 13 && self.editorMode === 'HTML') {\n value = {\n 'enterAction': self.enterKey\n };\n }\n this.editorManager.observer.notify((event.type === 'keydown' ? KEY_DOWN : KEY_UP), {\n event: event,\n callBack: this.onSuccess.bind(this, self),\n value: value,\n enterAction: self.enterKey\n });\n }\n }\n else if (!isNOU(args) && args.item.command && args.item.subCommand && ((args.item.command !== args.item.subCommand\n && args.item.command !== 'Font')\n || ((args.item.subCommand === 'FontName' || args.item.subCommand === 'FontSize') && args.name === 'dropDownSelect')\n || ((args.item.subCommand === 'BackgroundColor' || args.item.subCommand === 'FontColor')\n && args.name === 'colorPickerChanged') || args.item.subCommand === 'FormatPainter')) {\n extend(args, args, { requestType: args.item.subCommand, cancel: false, itemCollection: value, selectType: args.name }, true);\n self.trigger(CONSTANT.actionBegin, args, function (actionBeginArgs) {\n if (!actionBeginArgs.cancel) {\n var formatPainterCopyAction = !isNOU(actionBeginArgs.name) && actionBeginArgs.name === 'format-copy';\n if (_this.getUndoRedoStack().length === 0 && actionBeginArgs.item.command !== 'Links'\n && actionBeginArgs.item.command !== 'Images' && !formatPainterCopyAction) {\n _this.saveData();\n }\n self.isBlur = false;\n self.contentModule.getEditPanel().focus();\n if (self.editorMode === 'HTML' && !isKeyboardVideoInsert) {\n if (isNOU(args.selectType) || (!isNOU(args.selectType) && args.selectType !== 'showDialog')) {\n saveSelection.restore();\n }\n }\n var command = actionBeginArgs.item.subCommand.toLocaleLowerCase();\n if (command === 'paste' || command === 'cut' || command === 'copy') {\n self.clipboardAction(command, event);\n }\n else {\n _this.editorManager.observer.notify(CONSTANT.checkUndo, { subCommand: actionBeginArgs.item.subCommand });\n _this.editorManager.execCommand(actionBeginArgs.item.command, actionBeginArgs.item.subCommand, event, _this.onSuccess.bind(_this, self), actionBeginArgs.item.value, actionBeginArgs.item.subCommand === 'Pre' && actionBeginArgs.selectType === 'dropDownSelect' ?\n { name: actionBeginArgs.selectType } : value, ('#' + self.getID() + ' iframe'), self.enterKey);\n }\n }\n });\n }\n if (isNOU(event) || event && event.action !== 'copy') {\n this.enableUndo(self);\n }\n };\n Formatter.prototype.getAncestorNode = function (node) {\n node = node.nodeType === 3 ? node.parentNode : node;\n return node;\n };\n /**\n * onKeyHandler method\n *\n * @param {IRichTextEditor} self - specifies the self element.\n * @param {KeyboardEvent} e - specifies the keyboard event.\n * @returns {void}\n * @hidden\n\n */\n Formatter.prototype.onKeyHandler = function (self, e) {\n var _this = this;\n this.editorManager.observer.notify(KEY_UP, {\n event: e, callBack: function () {\n self.notify(CONSTANT.contentChanged, {});\n _this.enableUndo(self);\n }\n });\n };\n /**\n * onSuccess method\n *\n * @param {IRichTextEditor} self - specifies the self element.\n * @param {IMarkdownFormatterCallBack} events - specifies the event call back\n * @returns {void}\n * @hidden\n\n */\n Formatter.prototype.onSuccess = function (self, events) {\n self.notify(CONSTANT.contentChanged, {});\n if (events && (isNOU(events.event) || events.event.action !== 'copy')) {\n this.enableUndo(self);\n self.notify(CONSTANT.execCommandCallBack, events);\n }\n self.trigger(CONSTANT.actionComplete, events, function (callbackArgs) {\n self.setPlaceHolder();\n if ((callbackArgs.requestType === 'Images' || callbackArgs.requestType === 'Links' || callbackArgs.requestType === 'Audios' || callbackArgs.requestType === 'Videos') && self.editorMode === 'HTML') {\n var args = callbackArgs;\n if (callbackArgs.requestType === 'Links' && callbackArgs.event &&\n callbackArgs.event.type === 'keydown' &&\n callbackArgs.event.keyCode === 32) {\n return;\n }\n self.notify(CONSTANT.insertCompleted, {\n args: args.event, type: callbackArgs.requestType, isNotify: true,\n elements: args.elements\n });\n }\n if (callbackArgs.requestType === 'VideosPlayPause') {\n self.notify('editAreaClick', { args: event });\n }\n self.autoResize();\n });\n };\n /**\n * Save the data for undo and redo action.\n *\n * @param {KeyboardEvent} e - specifies the keyboard event.\n * @returns {void}\n * @hidden\n\n */\n Formatter.prototype.saveData = function (e) {\n this.editorManager.undoRedoManager.saveData(e);\n };\n /**\n * getUndoStatus method\n *\n * @returns {void}\n * @hidden\n\n */\n Formatter.prototype.getUndoStatus = function () {\n return this.editorManager.undoRedoManager.getUndoStatus();\n };\n /* eslint-disable */\n /**\n * getUndoRedoStack method\n *\n * @param {IHtmlUndoRedoData} - specifies the redo data.\n * @returns {void}\n * @hidden\n\n */\n /* eslint-enable */\n Formatter.prototype.getUndoRedoStack = function () {\n return this.editorManager.undoRedoManager.undoRedoStack;\n };\n /**\n * enableUndo method\n *\n * @param {IRichTextEditor} self - specifies the self element.\n * @returns {void}\n * @hidden\n\n */\n Formatter.prototype.enableUndo = function (self) {\n var status = this.getUndoStatus();\n if (self.inlineMode.enable && (!Browser.isDevice || isIDevice())) {\n updateUndoRedoStatus(self.quickToolbarModule.inlineQTBar.quickTBarObj, status);\n }\n else {\n if (self.toolbarModule) {\n updateUndoRedoStatus(self.toolbarModule.baseToolbar, status);\n }\n }\n };\n return Formatter;\n}());\nexport { Formatter };\n","/**\n * Constant values for EditorManager\n */\n/**\n * Image plugin events\n *\n * @hidden\n */\nexport var IMAGE = 'INSERT-IMAGE';\nexport var AUDIO = 'INSERT-AUDIO';\nexport var VIDEO = 'INSERT-VIDEO';\nexport var TABLE = 'INSERT-TABLE';\nexport var LINK = 'INSERT-LINK';\nexport var INSERT_ROW = 'INSERT-ROW';\nexport var INSERT_COLUMN = 'INSERT-COLUMN';\nexport var DELETEROW = 'DELETE-ROW';\nexport var DELETECOLUMN = 'DELETE-COLUMN';\nexport var REMOVETABLE = 'REMOVE-TABLE';\nexport var TABLEHEADER = 'TABLE-HEADER';\nexport var TABLE_VERTICAL_ALIGN = 'TABLE_VERTICAL_ALIGN';\nexport var TABLE_MERGE = 'TABLE_MERGE';\nexport var TABLE_VERTICAL_SPLIT = 'TABLE_VERTICAL_SPLIT';\nexport var TABLE_HORIZONTAL_SPLIT = 'TABLE_HORIZONTAL_SPLIT';\nexport var TABLE_MOVE = 'TABLE_MOVE';\n/**\n * Alignments plugin events\n *\n * @hidden\n */\nexport var ALIGNMENT_TYPE = 'alignment-type';\n/**\n * Indents plugin events\n *\n * @hidden\n */\nexport var INDENT_TYPE = 'indent-type';\n/**\n * Constant tag names\n *\n * @hidden\n */\nexport var DEFAULT_TAG = 'p';\n/**\n * @hidden\n */\nexport var BLOCK_TAGS = ['address', 'article', 'aside', 'audio', 'blockquote',\n 'canvas', 'details', 'dd', 'div', 'dl', 'dt', 'fieldset', 'figcaption', 'figure', 'footer',\n 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header', 'hgroup', 'hr', 'li', 'main', 'nav',\n 'noscript', 'ol', 'output', 'p', 'pre', 'section', 'table', 'tbody', 'td', 'tfoot', 'th',\n 'thead', 'tr', 'ul', 'video', 'body'];\n/**\n * @hidden\n */\nexport var IGNORE_BLOCK_TAGS = ['td', 'th'];\n/**\n * @hidden\n */\nexport var TABLE_BLOCK_TAGS = ['table', 'tbody', 'td', 'tfoot', 'th',\n 'thead', 'tr'];\n/**\n * Selection plugin events\n *\n * @hidden\n */\nexport var SELECTION_TYPE = 'selection-type';\n/**\n * Insert HTML plugin events\n *\n * @hidden\n */\nexport var INSERTHTML_TYPE = 'inserthtml-type';\n/**\n * Insert Text plugin events\n *\n * @hidden\n */\nexport var INSERT_TEXT_TYPE = 'insert-text-type';\n/**\n * Clear Format HTML plugin events\n *\n * @hidden\n */\nexport var CLEAR_TYPE = 'clear-type';\n/**\n * Self closing tags\n *\n * @hidden\n */\nexport var SELF_CLOSING_TAGS = ['area', 'base', 'br', 'embed', 'hr', 'img', 'input', 'param', 'source', 'track', 'wbr', 'iframe', 'td'];\n","import { isNullOrUndefined } from '@syncfusion/ej2-base';\n/**\n * `Selection` module is used to handle RTE Selections.\n */\nvar NodeSelection = /** @class */ (function () {\n function NodeSelection() {\n this.startNodeName = [];\n this.endNodeName = [];\n }\n NodeSelection.prototype.saveInstance = function (range, body) {\n this.range = range.cloneRange();\n this.rootNode = this.documentFromRange(range);\n this.body = body;\n this.startContainer = this.getNodeArray(range.startContainer, true);\n this.endContainer = this.getNodeArray(range.endContainer, false);\n this.startOffset = range.startOffset;\n this.endOffset = range.endOffset;\n this.html = this.body.innerHTML;\n return this;\n };\n NodeSelection.prototype.documentFromRange = function (range) {\n return (9 === range.startContainer.nodeType) ? range.startContainer : range.startContainer.ownerDocument;\n };\n NodeSelection.prototype.getRange = function (docElement) {\n var select = this.get(docElement);\n var range = select && select.rangeCount > 0 ? select.getRangeAt(select.rangeCount - 1) : docElement.createRange();\n return (range.startContainer !== docElement || range.endContainer !== docElement\n || range.startOffset || range.endOffset || (range.setStart(docElement.body, 0),\n range.collapse(!0)),\n range);\n };\n /**\n * get method\n *\n * @param {Document} docElement - specifies the get function\n * @returns {void}\n * @hidden\n\n */\n NodeSelection.prototype.get = function (docElement) {\n return docElement.defaultView.getSelection();\n };\n /**\n * save method\n *\n * @param {Range} range - range value.\n * @param {Document} docElement - specifies the document.\n * @returns {void}\n * @hidden\n\n */\n NodeSelection.prototype.save = function (range, docElement) {\n range = (range) ? range.cloneRange() : this.getRange(docElement);\n return this.saveInstance(range, docElement.body);\n };\n /**\n * getIndex method\n *\n * @param {Node} node - specifies the node value.\n * @returns {void}\n * @hidden\n\n */\n NodeSelection.prototype.getIndex = function (node) {\n var index;\n var num = 0;\n node = !node.previousSibling && node.tagName === 'BR' ? node : node.previousSibling;\n if (node) {\n for (var type = node.nodeType; node; null) {\n index = node.nodeType;\n num++;\n //eslint-disable-next-line\n type = index;\n node = node.previousSibling;\n }\n }\n return num;\n };\n NodeSelection.prototype.isChildNode = function (nodeCollection, parentNode) {\n for (var index = 0; index < parentNode.childNodes.length; index++) {\n if (nodeCollection.indexOf(parentNode.childNodes[index]) > -1) {\n return true;\n }\n }\n return false;\n };\n NodeSelection.prototype.getNode = function (startNode, endNode, nodeCollection) {\n if (endNode === startNode &&\n (startNode.nodeType === 3 || !startNode.firstChild || nodeCollection.indexOf(startNode.firstChild) !== -1\n || this.isChildNode(nodeCollection, startNode))) {\n return null;\n }\n if (nodeCollection.indexOf(startNode.firstChild) === -1 && startNode.firstChild && !this.isChildNode(nodeCollection, startNode)) {\n return startNode.firstChild;\n }\n if (startNode.nextSibling) {\n return startNode.nextSibling;\n }\n if (!startNode.parentNode) {\n return null;\n }\n else {\n return startNode.parentNode;\n }\n };\n /**\n * getNodeCollection method\n *\n * @param {Range} range -specifies the range.\n * @returns {void}\n * @hidden\n\n */\n NodeSelection.prototype.getNodeCollection = function (range) {\n var startNode = range.startContainer.childNodes[range.startOffset]\n || range.startContainer;\n var endNode = range.endContainer.childNodes[(range.endOffset > 0) ? (range.endOffset - 1) : range.endOffset]\n || range.endContainer;\n if ((startNode === endNode || (startNode.nodeName === 'BR' && startNode === range.endContainer.childNodes[range.endOffset])) &&\n startNode.childNodes.length === 0) {\n return [startNode];\n }\n if (range.startOffset === range.endOffset && range.startOffset !== 0 && range.startContainer.nodeName === 'PRE') {\n return [startNode.nodeName === 'BR' || startNode.nodeName === '#text' ? startNode : startNode.childNodes[0]];\n }\n var nodeCollection = [];\n do {\n if (nodeCollection.indexOf(startNode) === -1) {\n nodeCollection.push(startNode);\n }\n startNode = this.getNode(startNode, endNode, nodeCollection);\n } while (startNode);\n return nodeCollection;\n };\n /**\n * getParentNodeCollection method\n *\n * @param {Range} range - specifies the range value.\n * @returns {void}\n * @hidden\n\n */\n NodeSelection.prototype.getParentNodeCollection = function (range) {\n return this.getParentNodes(this.getNodeCollection(range), range);\n };\n /**\n * getParentNodes method\n *\n * @param {Node[]} nodeCollection - specifies the collection of nodes.\n * @param {Range} range - specifies the range values.\n * @returns {void}\n * @hidden\n\n */\n NodeSelection.prototype.getParentNodes = function (nodeCollection, range) {\n nodeCollection = nodeCollection.reverse();\n for (var index = 0; index < nodeCollection.length; index++) {\n if ((nodeCollection.indexOf(nodeCollection[index].parentNode) !== -1)\n || (nodeCollection[index].nodeType === 3 &&\n range.startContainer !== range.endContainer &&\n range.startContainer.parentNode !== range.endContainer.parentNode)) {\n nodeCollection.splice(index, 1);\n index--;\n }\n else if (nodeCollection[index].nodeType === 3) {\n nodeCollection[index] = nodeCollection[index].parentNode;\n }\n }\n return nodeCollection;\n };\n /**\n * getSelectionNodeCollection method\n *\n * @param {Range} range - specifies the range value.\n * @returns {void}\n * @hidden\n\n */\n NodeSelection.prototype.getSelectionNodeCollection = function (range) {\n return this.getSelectionNodes(this.getNodeCollection(range));\n };\n /**\n * getSelectionNodeCollection along with BR node method\n *\n * @param {Range} range - specifies the range value.\n * @returns {void}\n * @hidden\n\n */\n NodeSelection.prototype.getSelectionNodeCollectionBr = function (range) {\n return this.getSelectionNodesBr(this.getNodeCollection(range));\n };\n /**\n * getParentNodes method\n *\n * @param {Node[]} nodeCollection - specifies the collection of nodes.\n * @returns {void}\n * @hidden\n\n */\n NodeSelection.prototype.getSelectionNodes = function (nodeCollection) {\n nodeCollection = nodeCollection.reverse();\n // eslint-disable-next-line\n var regEx = new RegExp(String.fromCharCode(8203), 'g');\n for (var index = 0; index < nodeCollection.length; index++) {\n if (nodeCollection[index].nodeType !== 3 || (nodeCollection[index].textContent.trim() === '' ||\n (nodeCollection[index].textContent.length === 1 && nodeCollection[index].textContent.match(regEx)))) {\n nodeCollection.splice(index, 1);\n index--;\n }\n }\n return nodeCollection.reverse();\n };\n /**\n * Get selection text nodes with br method.\n *\n * @param {Node[]} nodeCollection - specifies the collection of nodes.\n * @returns {void}\n * @hidden\n\n */\n NodeSelection.prototype.getSelectionNodesBr = function (nodeCollection) {\n nodeCollection = nodeCollection.reverse();\n // eslint-disable-next-line\n var regEx = new RegExp(String.fromCharCode(8203), 'g');\n for (var index = 0; index < nodeCollection.length; index++) {\n if (nodeCollection[index].nodeName !== 'BR' &&\n (nodeCollection[index].nodeType !== 3 || (nodeCollection[index].textContent.trim() === '' ||\n (nodeCollection[index].textContent.length === 1 && nodeCollection[index].textContent.match(regEx))))) {\n nodeCollection.splice(index, 1);\n index--;\n }\n }\n return nodeCollection.reverse();\n };\n /**\n * getInsertNodeCollection method\n *\n * @param {Range} range - specifies the range value.\n * @returns {void}\n * @hidden\n\n */\n NodeSelection.prototype.getInsertNodeCollection = function (range) {\n return this.getInsertNodes(this.getNodeCollection(range));\n };\n /**\n * getInsertNodes method\n *\n * @param {Node[]} nodeCollection - specifies the collection of nodes.\n * @returns {void}\n * @hidden\n\n */\n NodeSelection.prototype.getInsertNodes = function (nodeCollection) {\n nodeCollection = nodeCollection.reverse();\n for (var index = 0; index < nodeCollection.length; index++) {\n if ((nodeCollection[index].childNodes.length !== 0 &&\n nodeCollection[index].nodeType !== 3) ||\n (nodeCollection[index].nodeType === 3 &&\n nodeCollection[index].textContent === '')) {\n nodeCollection.splice(index, 1);\n index--;\n }\n }\n return nodeCollection.reverse();\n };\n /**\n * getNodeArray method\n *\n * @param {Node} node - specifies the node content.\n * @param {boolean} isStart - specifies the boolean value.\n * @param {Document} root - specifies the root document.\n * @returns {void}\n * @hidden\n\n */\n NodeSelection.prototype.getNodeArray = function (node, isStart, root) {\n var array = [];\n // eslint-disable-next-line\n ((isStart) ? (this.startNodeName = []) : (this.endNodeName = []));\n for (; node !== (root ? root : this.rootNode); null) {\n if (isNullOrUndefined(node)) {\n break;\n }\n // eslint-disable-next-line\n (isStart) ? this.startNodeName.push(node.nodeName.toLowerCase()) : this.endNodeName.push(node.nodeName.toLowerCase());\n array.push(this.getIndex(node));\n node = node.parentNode;\n }\n return array;\n };\n NodeSelection.prototype.setRangePoint = function (range, isvalid, num, size) {\n var node = this.rootNode;\n var index = num.length;\n var constant = size;\n for (; index--; null) {\n node = node && node.childNodes[num[index]];\n }\n if (node && constant >= 0 && node.nodeName !== 'html') {\n if (node.nodeType === 3 && node.nodeValue.replace(/\\u00a0/g, ' ') === ' ') {\n constant = node.textContent.length;\n }\n range[isvalid ? 'setStart' : 'setEnd'](node, constant);\n }\n return range;\n };\n /**\n * restore method\n *\n * @returns {void}\n * @hidden\n\n */\n NodeSelection.prototype.restore = function () {\n var range = this.range.cloneRange();\n range = this.setRangePoint(range, true, this.startContainer, this.startOffset);\n range = this.setRangePoint(range, false, this.endContainer, this.endOffset);\n this.selectRange(this.rootNode, range);\n return range;\n };\n NodeSelection.prototype.selectRange = function (docElement, range) {\n this.setRange(docElement, range);\n this.save(range, docElement);\n };\n /**\n * setRange method\n *\n * @param {Document} docElement - specifies the document.\n * @param {Range} range - specifies the range.\n * @returns {void}\n * @hidden\n\n */\n NodeSelection.prototype.setRange = function (docElement, range) {\n var selection = this.get(docElement);\n selection.removeAllRanges();\n selection.addRange(range);\n };\n /**\n * setSelectionText method\n *\n * @param {Document} docElement - specifies the documrent\n * @param {Node} startNode - specifies the starting node.\n * @param {Node} endNode - specifies the the end node.\n * @param {number} startIndex - specifies the starting index.\n * @param {number} endIndex - specifies the end index.\n * @returns {void}\n * @hidden\n\n */\n NodeSelection.prototype.setSelectionText = function (docElement, startNode, endNode, startIndex, endIndex) {\n var range = docElement.createRange();\n range.setStart(startNode, startIndex);\n range.setEnd(endNode, endIndex);\n this.setRange(docElement, range);\n };\n /**\n * setSelectionContents method\n *\n * @param {Document} docElement - specifies the document.\n * @param {Node} element - specifies the node.\n * @returns {void}\n * @hidden\n\n */\n NodeSelection.prototype.setSelectionContents = function (docElement, element) {\n var range = docElement.createRange();\n range.selectNode(element);\n this.setRange(docElement, range);\n };\n /**\n * setSelectionNode method\n *\n * @param {Document} docElement - specifies the document.\n * @param {Node} element - specifies the node.\n * @returns {void}\n * @hidden\n\n */\n NodeSelection.prototype.setSelectionNode = function (docElement, element) {\n var range = docElement.createRange();\n range.selectNodeContents(element);\n this.setRange(docElement, range);\n };\n /**\n * getSelectedNodes method\n *\n * @param {Document} docElement - specifies the document.\n * @returns {void}\n * @hidden\n\n */\n NodeSelection.prototype.getSelectedNodes = function (docElement) {\n return this.getNodeCollection(this.getRange(docElement));\n };\n /**\n * Clear method\n *\n * @param {Document} docElement - specifies the document.\n * @returns {void}\n * @hidden\n\n */\n NodeSelection.prototype.Clear = function (docElement) {\n this.get(docElement).removeAllRanges();\n };\n /**\n * insertParentNode method\n *\n * @param {Document} docElement - specifies the document.\n * @param {Node} newNode - specicfies the new node.\n * @param {Range} range - specifies the range.\n * @returns {void}\n * @hidden\n\n */\n NodeSelection.prototype.insertParentNode = function (docElement, newNode, range) {\n range.surroundContents(newNode);\n this.selectRange(docElement, range);\n };\n /**\n * setCursorPoint method\n *\n * @param {Document} docElement - specifies the document.\n * @param {Element} element - specifies the element.\n * @param {number} point - specifies the point.\n * @returns {void}\n * @hidden\n\n */\n NodeSelection.prototype.setCursorPoint = function (docElement, element, point) {\n var range = docElement.createRange();\n var selection = docElement.defaultView.getSelection();\n range.setStart(element, point);\n range.collapse(true);\n selection.removeAllRanges();\n selection.addRange(range);\n };\n return NodeSelection;\n}());\nexport { NodeSelection };\n","/**\n * Default Markdown formats config for adapter\n */\nexport var markdownFormatTags = {\n 'h6': '###### ',\n 'h5': '##### ',\n 'h4': '#### ',\n 'h3': '### ',\n 'h2': '## ',\n 'h1': '# ',\n 'blockquote': '> ',\n 'pre': '```\\n',\n 'p': ''\n};\n/**\n * Default selection formats config for adapter\n */\nexport var markdownSelectionTags = {\n 'Bold': '**',\n 'Italic': '*',\n 'StrikeThrough': '~~',\n 'InlineCode': '`',\n 'SubScript': '',\n 'SuperScript': '',\n 'UpperCase': 'A-Z',\n 'LowerCase': 'a-z'\n};\n/**\n * Default Markdown lists config for adapter\n */\nexport var markdownListsTags = {\n 'OL': '1. ',\n 'UL': '- '\n};\n/**\n * Default html key config for adapter\n */\nexport var htmlKeyConfig = {\n 'toolbar-focus': 'alt+f10',\n 'escape': '27',\n 'insert-link': 'ctrl+k',\n 'insert-image': 'ctrl+shift+i',\n 'insert-audio': 'ctrl+shift+a',\n 'insert-video': 'ctrl+shift+v',\n 'insert-table': 'ctrl+shift+e',\n 'undo': 'ctrl+z',\n 'redo': 'ctrl+y',\n 'copy': 'ctrl+c',\n 'cut': 'ctrl+x',\n 'paste': 'ctrl+v',\n 'bold': 'ctrl+b',\n 'italic': 'ctrl+i',\n 'underline': 'ctrl+u',\n 'strikethrough': 'ctrl+shift+s',\n 'uppercase': 'ctrl+shift+u',\n 'lowercase': 'ctrl+shift+l',\n 'superscript': 'ctrl+shift+=',\n 'subscript': 'ctrl+=',\n 'indents': 'ctrl+]',\n 'outdents': 'ctrl+[',\n 'html-source': 'ctrl+shift+h',\n 'full-screen': 'ctrl+shift+f',\n 'decrease-fontsize': 'ctrl+shift+<',\n 'increase-fontsize': 'ctrl+shift+>',\n 'justify-center': 'ctrl+e',\n 'justify-full': 'ctrl+j',\n 'justify-left': 'ctrl+l',\n 'justify-right': 'ctrl+r',\n 'clear-format': 'ctrl+shift+r',\n 'ordered-list': 'ctrl+shift+o',\n 'unordered-list': 'ctrl+alt+o',\n 'space': '32',\n 'enter': '13',\n 'tab': 'tab',\n 'delete': '46',\n 'format-copy': 'ctrl+shift+c',\n 'format-paste': 'ctrl+shift+v'\n};\n/**\n * Default markdown key config for adapter\n */\nexport var markdownKeyConfig = {\n 'toolbar-focus': 'alt+f10',\n 'escape': '27',\n 'insert-link': 'ctrl+k',\n 'insert-image': 'ctrl+shift+i',\n 'insert-table': 'ctrl+shift+e',\n 'undo': 'ctrl+z',\n 'redo': 'ctrl+y',\n 'copy': 'ctrl+c',\n 'cut': 'ctrl+x',\n 'paste': 'ctrl+v',\n 'bold': 'ctrl+b',\n 'italic': 'ctrl+i',\n 'strikethrough': 'ctrl+shift+s',\n 'uppercase': 'ctrl+shift+u',\n 'lowercase': 'ctrl+shift+l',\n 'superscript': 'ctrl+shift+=',\n 'subscript': 'ctrl+=',\n 'full-screen': 'ctrl+shift+f',\n 'ordered-list': 'ctrl+shift+o',\n 'unordered-list': 'ctrl+alt+o'\n};\n/**\n * PasteCleanup Grouping of similar functionality tags\n */\nexport var pasteCleanupGroupingTags = {\n 'b': ['strong'],\n 'strong': ['b'],\n 'i': ['emp', 'cite'],\n 'emp': ['i', 'cite'],\n 'cite': ['i', 'emp']\n};\n/**\n * PasteCleanup Grouping of similar functionality tags\n */\nexport var listConversionFilters = {\n 'first': 'MsoListParagraphCxSpFirst',\n 'middle': 'MsoListParagraphCxSpMiddle',\n 'last': 'MsoListParagraphCxSpLast'\n};\n/**\n * Dom-Node Grouping of self closing tags\n *\n * @hidden\n */\nexport var selfClosingTags = [\n 'BR',\n 'IMG'\n];\n","/**\n * Defines common util methods used by Rich Text Editor.\n */\nimport { isNullOrUndefined, Browser, createElement, detach } from '@syncfusion/ej2-base';\nvar inlineNode = ['a', 'abbr', 'acronym', 'audio', 'b', 'bdi', 'bdo', 'big', 'br', 'button',\n 'canvas', 'cite', 'code', 'data', 'datalist', 'del', 'dfn', 'em', 'embed', 'font', 'i', 'iframe', 'img', 'input',\n 'ins', 'kbd', 'label', 'map', 'mark', 'meter', 'noscript', 'object', 'output', 'picture', 'progress',\n 'q', 'ruby', 's', 'samp', 'script', 'select', 'slot', 'small', 'span', 'strong', 'strike', 'sub', 'sup', 'svg',\n 'template', 'textarea', 'time', 'u', 'tt', 'var', 'video', 'wbr'];\n/**\n * @returns {void}\n * @hidden\n */\nexport function isIDevice() {\n var result = false;\n if (Browser.isDevice && Browser.isIos) {\n result = true;\n }\n return result;\n}\n/**\n * @param {Element} editableElement - specifies the editable element.\n * @param {string} selector - specifies the string values.\n * @returns {void}\n * @hidden\n */\nexport function setEditFrameFocus(editableElement, selector) {\n if (editableElement.nodeName === 'BODY' && !isNullOrUndefined(selector)) {\n var iframe = top.window.document.querySelector(selector);\n if (!isNullOrUndefined(iframe)) {\n iframe.contentWindow.focus();\n }\n }\n}\n/**\n * @param {string} value - specifies the string value\n * @param {string} enterAction - specifies the enter key action API\n * @returns {void}\n * @hidden\n */\nexport function updateTextNode(value, enterAction) {\n var tempNode = document.createElement('div');\n tempNode.innerHTML = value;\n tempNode.setAttribute('class', 'tempDiv');\n var resultElm = document.createElement('div');\n var childNodes = tempNode.childNodes;\n if (childNodes.length > 0) {\n var isPreviousInlineElem = void 0;\n var previousParent = void 0;\n var paraElm = void 0;\n while (tempNode.firstChild) {\n if ((tempNode.firstChild.nodeName === '#text' &&\n (tempNode.firstChild.textContent.indexOf('\\n') < 0 || tempNode.firstChild.textContent.trim() !== '')) ||\n inlineNode.indexOf(tempNode.firstChild.nodeName.toLocaleLowerCase()) >= 0) {\n if (!isPreviousInlineElem) {\n if (enterAction === 'BR') {\n resultElm.appendChild(tempNode.firstChild);\n previousParent = resultElm;\n }\n else {\n paraElm = createElement('p');\n resultElm.appendChild(paraElm);\n paraElm.appendChild(tempNode.firstChild);\n previousParent = paraElm;\n isPreviousInlineElem = true;\n }\n }\n else {\n previousParent.appendChild(tempNode.firstChild);\n previousParent = paraElm;\n isPreviousInlineElem = true;\n }\n }\n else if (tempNode.firstChild.nodeName === '#text' && (tempNode.firstChild.textContent === '\\n' ||\n (tempNode.firstChild.textContent.indexOf('\\n') >= 0 && tempNode.firstChild.textContent.trim() === ''))) {\n detach(tempNode.firstChild);\n }\n else {\n resultElm.appendChild(tempNode.firstChild);\n isPreviousInlineElem = false;\n }\n }\n var tableElm = resultElm.querySelectorAll('table');\n for (var i = 0; i < tableElm.length; i++) {\n if (tableElm[i].getAttribute('border') === '0') {\n tableElm[i].removeAttribute('border');\n }\n var tdElm = tableElm[i].querySelectorAll('td');\n for (var j = 0; j < tdElm.length; j++) {\n if (tdElm[j].style.borderLeft === 'none') {\n tdElm[j].style.removeProperty('border-left');\n }\n if (tdElm[j].style.borderRight === 'none') {\n tdElm[j].style.removeProperty('border-right');\n }\n if (tdElm[j].style.borderBottom === 'none') {\n tdElm[j].style.removeProperty('border-bottom');\n }\n if (tdElm[j].style.borderTop === 'none') {\n tdElm[j].style.removeProperty('border-top');\n }\n if (tdElm[j].style.border === 'none') {\n tdElm[j].style.removeProperty('border');\n }\n }\n if (!tableElm[i].classList.contains('e-rte-table')) {\n tableElm[i].classList.add('e-rte-table');\n }\n }\n var imageElm = resultElm.querySelectorAll('img');\n for (var i = 0; i < imageElm.length; i++) {\n if (!imageElm[i].classList.contains('e-rte-image')) {\n imageElm[i].classList.add('e-rte-image');\n }\n if (!(imageElm[i].classList.contains('e-imginline') ||\n imageElm[i].classList.contains('e-imgbreak'))) {\n imageElm[i].classList.add('e-imginline');\n }\n }\n }\n return resultElm.innerHTML;\n}\n/**\n * @param {Node} startChildNodes - specifies the node\n * @returns {void}\n * @hidden\n */\nexport function getLastTextNode(startChildNodes) {\n var finalNode = startChildNodes;\n do {\n if (finalNode.childNodes.length > 0) {\n finalNode = finalNode.childNodes[0];\n }\n } while (finalNode.childNodes.length > 0);\n return finalNode;\n}\n/**\n * @returns {void}\n * @hidden\n */\nexport function getDefaultHtmlTbStatus() {\n return {\n bold: false,\n italic: false,\n subscript: false,\n superscript: false,\n strikethrough: false,\n orderedlist: false,\n unorderedlist: false,\n underline: false,\n alignments: null,\n backgroundcolor: null,\n fontcolor: null,\n fontname: null,\n fontsize: null,\n formats: null,\n createlink: false,\n insertcode: false\n };\n}\n/**\n * @returns {void}\n * @hidden\n */\nexport function getDefaultMDTbStatus() {\n return {\n bold: false,\n italic: false,\n subscript: false,\n superscript: false,\n strikethrough: false,\n orderedlist: false,\n uppercase: false,\n lowercase: false,\n inlinecode: false,\n unorderedlist: false,\n formats: null\n };\n}\n","import * as CONSTANT from './../base/constant';\nimport { append, detach, createElement, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { NodeSelection } from './../../selection/index';\nimport { selfClosingTags } from '../../common/config';\nimport { getLastTextNode } from '../../common/util';\nexport var markerClassName = {\n startSelection: 'e-editor-select-start',\n endSelection: 'e-editor-select-end'\n};\n/**\n * DOMNode internal plugin\n *\n * @hidden\n\n */\nvar DOMNode = /** @class */ (function () {\n /**\n * Constructor for creating the DOMNode plugin\n *\n * @param {Element} parent - specifies the parent element\n * @param {Document} currentDocument - specifies the current document.\n * @hidden\n\n */\n function DOMNode(parent, currentDocument) {\n this.parent = parent;\n this.nodeSelection = new NodeSelection();\n this.currentDocument = currentDocument;\n }\n /**\n * contents method\n *\n * @param {Element} element - specifies the element.\n * @returns {void}\n * @hidden\n\n */\n DOMNode.prototype.contents = function (element) {\n return (element && 'IFRAME' !== element.tagName ? Array.prototype.slice.call(element.childNodes || []) : []);\n };\n /**\n * isBlockNode method\n *\n * @param {Element} element - specifies the node element.\n * @returns {boolean} - sepcifies the boolean value\n * @hidden\n\n */\n DOMNode.prototype.isBlockNode = function (element) {\n return (!!element && (element.nodeType === Node.ELEMENT_NODE && CONSTANT.BLOCK_TAGS.indexOf(element.tagName.toLowerCase()) >= 0));\n };\n /**\n * isLink method\n *\n * @param {Element} element - specifies the element\n * @returns {boolean} - specifies the boolean value\n * @hidden\n\n */\n DOMNode.prototype.isLink = function (element) {\n return (!!element && (element.nodeType === Node.ELEMENT_NODE && 'a' === element.tagName.toLowerCase()));\n };\n /**\n * blockParentNode method\n *\n * @param {Element} element - specifies the element\n * @returns {Element} - returns the element value\n * @hidden\n\n */\n DOMNode.prototype.blockParentNode = function (element) {\n for (; element && element.parentNode !== this.parent && ((!element.parentNode ||\n !this.hasClass(element.parentNode, 'e-node-inner'))); null) {\n element = element.parentNode;\n if (this.isBlockNode(element)) {\n return element;\n }\n }\n return element;\n };\n /**\n * rawAttributes method\n *\n * @param {Element} element - specifies the element\n * @returns {string} - returns the string value\n * @hidden\n\n */\n DOMNode.prototype.rawAttributes = function (element) {\n var rawAttr = {};\n var attributes = element.attributes;\n if (attributes.length > 0) {\n for (var d = 0; d < attributes.length; d++) {\n var e = attributes[d];\n rawAttr[e.nodeName] = e.value;\n }\n }\n return rawAttr;\n };\n /**\n * attributes method\n *\n * @param {Element} element - sepcifies the element.\n * @returns {string} - returns the string value.\n * @hidden\n\n */\n DOMNode.prototype.attributes = function (element) {\n if (!element) {\n return '';\n }\n var attr = '';\n var rawAttr = this.rawAttributes(element);\n var orderRawAttr = Object.keys(rawAttr).sort();\n for (var e = 0; e < orderRawAttr.length; e++) {\n var attrKey = orderRawAttr[e];\n var attrValue = rawAttr[\"\" + attrKey];\n /* eslint-disable */\n if (attrValue.indexOf(\"'\") < 0 && attrValue.indexOf('\"') >= 0) {\n attr += ' ' + attrKey + \"='\" + attrValue + \"'\";\n }\n else if (attrValue.indexOf('\"') >= 0 && attrValue.indexOf(\"'\") >= 0) {\n /* eslint-enable */\n attrValue = attrValue.replace(/\"/g, '"');\n attr += ' ' + attrKey + '=\"' + attrValue + '\"';\n }\n else {\n attr += ' ' + attrKey + '=\"' + attrValue + '\"';\n }\n }\n return attr;\n };\n /**\n * clearAttributes method\n *\n * @param {Element} element - specifies the element\n * @returns {void}\n * @hidden\n\n */\n DOMNode.prototype.clearAttributes = function (element) {\n for (var attr = element.attributes, c = attr.length - 1; c >= 0; c--) {\n var key = attr[c];\n element.removeAttribute(key.nodeName);\n }\n };\n /**\n * openTagString method\n *\n * @param {Element} element - specifies the element.\n * @returns {string} - returns the string\n * @hidden\n\n */\n DOMNode.prototype.openTagString = function (element) {\n return '<' + element.tagName.toLowerCase() + this.attributes(element) + '>';\n };\n /**\n * closeTagString method\n *\n * @param {Element} element - specifies the element\n * @returns {string} - returns the string value\n * @hidden\n\n */\n DOMNode.prototype.closeTagString = function (element) {\n return '';\n };\n /**\n * createTagString method\n *\n * @param {string} tagName - specifies the tag name\n * @param {Element} relativeElement - specifies the relative element\n * @param {string} innerHTML - specifies the string value\n * @returns {string} - returns the string value.\n * @hidden\n\n */\n DOMNode.prototype.createTagString = function (tagName, relativeElement, innerHTML) {\n return '<' + tagName.toLowerCase() + this.attributes(relativeElement) + '>' + innerHTML + '';\n };\n /**\n * isList method\n *\n * @param {Element} element - specifes the element.\n * @returns {boolean} - returns the boolean value\n * @hidden\n\n */\n DOMNode.prototype.isList = function (element) {\n return !!element && ['UL', 'OL'].indexOf(element.tagName) >= 0;\n };\n /**\n * isElement method\n *\n * @param {Element} element - specifes the element.\n * @returns {boolean} - returns the boolean value\n * @hidden\n\n */\n DOMNode.prototype.isElement = function (element) {\n return element === this.parent;\n };\n /**\n * isEditable method\n *\n * @param {Element} element - specifes the element.\n * @returns {boolean} - returns the boolean value\n * @hidden\n\n */\n DOMNode.prototype.isEditable = function (element) {\n return ((!element.getAttribute || element.getAttribute('contenteditable') === 'true')\n && ['STYLE', 'SCRIPT'].indexOf(element.tagName) < 0);\n };\n /**\n * hasClass method\n *\n * @param {Element} element - specifes the element.\n * @param {string} className - specifies the class name value\n * @returns {boolean} - returns the boolean value\n * @hidden\n\n */\n DOMNode.prototype.hasClass = function (element, className) {\n return element && element.classList && element.classList.contains(className);\n };\n /**\n * replaceWith method\n *\n * @param {Element} element - specifes the element.\n * @param {string} value - specifies the string value\n * @returns {void}\n * @hidden\n\n */\n DOMNode.prototype.replaceWith = function (element, value) {\n var parentNode = element.parentNode;\n parentNode.insertBefore(this.parseHTMLFragment(value), element);\n detach(element);\n };\n /**\n * parseHTMLFragment method\n *\n * @param {string} value - specifies the string value\n * @returns {Element} - returns the element\n * @hidden\n\n */\n DOMNode.prototype.parseHTMLFragment = function (value) {\n /* eslint-disable */\n var temp = createElement('template');\n temp.innerHTML = value;\n if (temp.content instanceof DocumentFragment) {\n return temp.content;\n }\n else {\n return document.createRange().createContextualFragment(value);\n }\n /* eslint-enable */\n };\n /**\n * wrap method\n *\n * @param {Element} element - specifies the element\n * @param {Element} wrapper - specifies the element.\n * @returns {Element} - returns the element\n * @hidden\n\n */\n DOMNode.prototype.wrap = function (element, wrapper) {\n element.parentNode.insertBefore(wrapper, element);\n wrapper = element.previousSibling;\n wrapper.appendChild(element);\n return wrapper;\n };\n /**\n * insertAfter method\n *\n * @param {Element} newNode - specifies the new node element\n * @param {Element} referenceNode - specifies the referenece node\n * @returns {void}\n * @hidden\n\n */\n DOMNode.prototype.insertAfter = function (newNode, referenceNode) {\n referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling);\n };\n /**\n * wrapInner method\n *\n * @param {Element} parent - specifies the parent element.\n * @param {Element} wrapper - specifies the wrapper element.\n * @returns {Element} - returns the element\n * @hidden\n\n */\n DOMNode.prototype.wrapInner = function (parent, wrapper) {\n parent.appendChild(wrapper);\n wrapper = parent.querySelector('.e-rte-wrap-inner');\n wrapper.classList.remove('e-rte-wrap-inner');\n if (wrapper.classList.length === 0) {\n wrapper.removeAttribute('class');\n }\n while (parent.firstChild !== wrapper) {\n wrapper.appendChild(parent.firstChild);\n }\n return wrapper;\n };\n /**\n * unWrap method\n *\n * @param {Element} element - specifies the element.\n * @returns {Element} - returns the element.\n * @hidden\n\n */\n DOMNode.prototype.unWrap = function (element) {\n var parent = element.parentNode;\n var unWrapNode = [];\n while (element.firstChild) {\n unWrapNode.push(element.firstChild);\n parent.insertBefore(element.firstChild, element);\n }\n unWrapNode = unWrapNode.length > 0 ? unWrapNode : [element.parentNode];\n parent.removeChild(element);\n return unWrapNode;\n };\n /**\n * getSelectedNode method\n *\n * @param {Element} element - specifies the element\n * @param {number} index - specifies the index value.\n * @returns {Element} - returns the element\n * @hidden\n\n */\n DOMNode.prototype.getSelectedNode = function (element, index) {\n if (element.nodeType === Node.ELEMENT_NODE && element.childNodes.length > 0 &&\n element.childNodes[index - 1] && element.childNodes[index - 1].nodeType === Node.ELEMENT_NODE &&\n (element.childNodes[index - 1].classList.contains(markerClassName.startSelection) ||\n element.childNodes[index - 1].classList.contains(markerClassName.endSelection))) {\n element = element.childNodes[index - 1];\n }\n else if (element.nodeType === Node.ELEMENT_NODE && element.childNodes.length > 0 && element.childNodes[index]) {\n element = element.childNodes[index];\n }\n if (element.nodeType === Node.TEXT_NODE) {\n element = element.parentNode;\n }\n return element;\n };\n /**\n * nodeFinds method\n *\n * @param {Element} element - specifies the element.\n * @param {Element[]} elements - specifies the array of elements\n * @returns {Element[]} - returnts the array elements\n * @hidden\n\n */\n DOMNode.prototype.nodeFinds = function (element, elements) {\n var existNodes = [];\n for (var i = 0; i < elements.length; i++) {\n if (element.contains(elements[i]) && element !== elements[i]) {\n existNodes.push(elements[i]);\n }\n }\n return existNodes;\n };\n /**\n * isEditorArea method\n *\n * @returns {boolean} - returns the boolean value\n * @hidden\n\n */\n DOMNode.prototype.isEditorArea = function () {\n var range = this.getRangePoint(0);\n var element;\n for (element = range.commonAncestorContainer; element && !this.isElement(element); null) {\n element = element.parentNode;\n }\n return !!this.isElement(element);\n };\n /**\n * getRangePoint method\n *\n * @param {number} point - specifies the number value.\n * @returns {Range} - returns the range.\n * @hidden\n\n */\n DOMNode.prototype.getRangePoint = function (point) {\n var selection = this.getSelection();\n var ranges = [];\n if (selection && selection.getRangeAt && selection.rangeCount) {\n ranges = [];\n for (var f = 0; f < selection.rangeCount; f++) {\n ranges.push(selection.getRangeAt(f));\n }\n }\n else {\n ranges = [this.currentDocument.createRange()];\n }\n return 'undefined' !== typeof point ? ranges[point] : ranges;\n };\n DOMNode.prototype.getSelection = function () {\n return this.nodeSelection.get(this.currentDocument);\n };\n /**\n * getPreviousNode method\n *\n * @param {Element} element - specifies the element\n * @returns {Element} - returns the element\n * @hidden\n\n */\n DOMNode.prototype.getPreviousNode = function (element) {\n element = element.previousElementSibling;\n for (; element && element.textContent === '\\n'; null) {\n element = element.previousElementSibling;\n }\n return element;\n };\n /**\n * encode method\n *\n * @param {string} value - specifies the string value\n * @returns {string} - specifies the string value\n * @hidden\n\n */\n DOMNode.prototype.encode = function (value) {\n var divNode = document.createElement('div');\n divNode.innerText = value;\n // eslint-disable-next-line\n return divNode.innerHTML.replace(//gi, '\\n');\n };\n /**\n * saveMarker method\n *\n * @param {NodeSelection} save - specifies the node selection,\n * @param {string} action - specifies the action value.\n * @returns {NodeSelection} - returns the value\n * @hidden\n\n */\n DOMNode.prototype.saveMarker = function (save, action) {\n var start = this.parent.querySelector('.' + markerClassName.startSelection);\n var end = this.parent.querySelector('.' + markerClassName.endSelection);\n var startTextNode;\n var endTextNode;\n if (start.textContent === '' && isNullOrUndefined(end) && action !== 'tab') {\n if (start.childNodes.length === 1 && start.childNodes[0].nodeName === 'BR') {\n start.innerHTML = '
';\n }\n else {\n start.innerHTML = '';\n }\n }\n if (this.hasClass(start, markerClassName.startSelection) && start.classList.length > 1) {\n var replace = this.createTagString(CONSTANT.DEFAULT_TAG, start, this.encode(start.textContent));\n this.replaceWith(start, replace);\n start = this.parent.querySelector('.' + markerClassName.startSelection);\n start.classList.remove(markerClassName.startSelection);\n startTextNode = start.childNodes[0];\n }\n else {\n startTextNode = this.unWrap(start)[0];\n }\n if (this.hasClass(end, markerClassName.endSelection) && end.classList.length > 1) {\n var replace = this.createTagString(CONSTANT.DEFAULT_TAG, end, this.encode(end.textContent));\n this.replaceWith(end, replace);\n end = this.parent.querySelector('.' + markerClassName.endSelection);\n end.classList.remove(markerClassName.endSelection);\n endTextNode = end.childNodes[0];\n }\n else {\n endTextNode = end ? this.unWrap(end)[0] : startTextNode;\n }\n save.startContainer = save.getNodeArray(startTextNode, true);\n save.endContainer = save.getNodeArray(endTextNode, false);\n return save;\n };\n DOMNode.prototype.marker = function (className, textContent) {\n return '' + textContent + '';\n };\n /**\n * setMarker method\n *\n * @param {NodeSelection} save - specifies the node selection.\n * @returns {void}\n * @hidden\n\n */\n DOMNode.prototype.setMarker = function (save) {\n var range = save.range;\n var startChildNodes = range.startContainer.childNodes;\n var isTableStart = startChildNodes.length > 1 && startChildNodes[0].nodeName === 'TABLE';\n var start = ((isTableStart ? getLastTextNode(startChildNodes[range.startOffset + 1]) :\n startChildNodes[(range.startOffset > 0) ? (range.startOffset - 1) : range.startOffset]) || range.startContainer);\n var end = (range.endContainer.childNodes[(range.endOffset > 0) ? (range.endOffset - 1) : range.endOffset]\n || range.endContainer);\n if ((start.nodeType === Node.ELEMENT_NODE && end.nodeType === Node.ELEMENT_NODE) && (start.contains(end) || end.contains(start))) {\n var existNode = start.contains(end) ? start : end;\n var isElement = existNode.nodeType !== Node.TEXT_NODE;\n if (isElement) {\n var nodes = [];\n var textNodes = [];\n for (var node = existNode; existNode.contains(node); null) {\n if (nodes.indexOf(node) < 0 && node.childNodes && node.childNodes.length) {\n nodes.push(node);\n node = node.childNodes[0];\n }\n else if (node.nextSibling) {\n node = node.nextSibling;\n }\n else if (node.parentNode) {\n node = node.parentNode;\n nodes.push(node);\n }\n if (textNodes.indexOf(node) < 0 && (node.nodeType === Node.TEXT_NODE ||\n (CONSTANT.IGNORE_BLOCK_TAGS.indexOf(node.parentNode.tagName.toLocaleLowerCase()) >= 0\n && (node.tagName === 'BR' || node.tagName === 'IMG')))) {\n textNodes.push(node);\n }\n }\n if (textNodes.length) {\n start = start.contains(end) ? textNodes[0] : start;\n end = textNodes[textNodes.length - 1];\n }\n }\n }\n if (start !== end) {\n if (start.nodeType !== Node.TEXT_NODE && ((start.tagName === 'BR' &&\n CONSTANT.IGNORE_BLOCK_TAGS.indexOf(start.parentNode.tagName.toLocaleLowerCase()) >= 0) ||\n start.tagName === 'IMG')) {\n this.replaceWith(start, this.marker(markerClassName.startSelection, this.encode(start.textContent)));\n var markerStart = range.startContainer.querySelector('.' + markerClassName.startSelection);\n markerStart.appendChild(start);\n }\n else {\n if (start.nodeType !== 3 && start.nodeName !== '#text') {\n var marker = this.marker(markerClassName.startSelection, '');\n append([this.parseHTMLFragment(marker)], start);\n }\n else {\n this.replaceWith(start, this.marker(markerClassName.startSelection, this.encode(start.textContent)));\n }\n }\n if (end.nodeType !== Node.TEXT_NODE && end.tagName === 'BR' &&\n CONSTANT.IGNORE_BLOCK_TAGS.indexOf(end.parentNode.tagName.toLocaleLowerCase()) >= 0) {\n this.replaceWith(end, this.marker(markerClassName.endSelection, this.encode(end.textContent)));\n var markerEnd = range.endContainer.querySelector('.' + markerClassName.endSelection);\n markerEnd.appendChild(end);\n }\n else {\n this.ensureSelfClosingTag(end, markerClassName.endSelection, range);\n }\n }\n else {\n this.ensureSelfClosingTag(start, markerClassName.startSelection, range);\n }\n };\n /**\n * ensureSelfClosingTag method\n *\n * @param {Element} start - specifies the element.\n * @param {string} className - specifes the class name string value\n * @param {Range} range - specifies the range value\n * @returns {void}\n * @hidden\n\n */\n DOMNode.prototype.ensureSelfClosingTag = function (start, className, range) {\n var isTable = false;\n if (start.nodeType === 3) {\n this.replaceWith(start, this.marker(className, this.encode(start.textContent)));\n }\n else if (start.tagName === 'BR') {\n this.replaceWith(start, this.marker(className, this.encode(start.textContent)));\n var markerStart = range.startContainer.querySelector('.' + className);\n markerStart.appendChild(start);\n }\n else {\n if (start.tagName === 'IMG') {\n var parNode = document.createElement('p');\n start.parentElement.insertBefore(parNode, start);\n parNode.appendChild(start);\n start = parNode.children[0];\n }\n if (start.tagName === 'TABLE') {\n isTable = true;\n if (start.textContent === '') {\n var tdNode = start.querySelectorAll('td');\n start = tdNode[tdNode.length - 1];\n start = !isNullOrUndefined(start.childNodes[0]) ? start.childNodes[0] : start;\n }\n else {\n var lastNode = start.lastChild;\n while (lastNode.nodeType !== 3 && lastNode.nodeName !== '#text' &&\n lastNode.nodeName !== 'BR') {\n lastNode = lastNode.lastChild;\n }\n start = lastNode;\n }\n }\n for (var i = 0; i < selfClosingTags.length; i++) {\n start = (start.tagName === selfClosingTags[i] && !isTable) ? start.parentNode : start;\n }\n if (start.nodeType === 3 && start.nodeName === '#text') {\n this.replaceWith(start, this.marker(className, this.encode(start.textContent)));\n }\n else if (start.nodeName === 'BR') {\n this.replaceWith(start, this.marker(markerClassName.endSelection, this.encode(start.textContent)));\n var markerEnd = range.endContainer.querySelector('.' + markerClassName.endSelection);\n markerEnd.appendChild(start);\n }\n else {\n var marker = this.marker(className, '');\n append([this.parseHTMLFragment(marker)], start);\n }\n }\n };\n /**\n * createTempNode method\n *\n * @param {Element} element - specifies the element.\n * @returns {Element} - returns the element\n * @hidden\n\n */\n DOMNode.prototype.createTempNode = function (element) {\n var textContent = element.textContent;\n if (element.tagName === 'BR') {\n var wrapper = '<' + CONSTANT.DEFAULT_TAG + '>';\n var node = element.parentNode;\n if (CONSTANT.IGNORE_BLOCK_TAGS.indexOf(node.tagName.toLocaleLowerCase()) >= 0) {\n element = this.wrap(element, this.parseHTMLFragment(wrapper));\n }\n }\n else if (((element.nodeType !== Node.TEXT_NODE &&\n (element.classList.contains(markerClassName.startSelection) ||\n element.classList.contains(markerClassName.endSelection))) ||\n textContent.replace(/\\n/g, '').replace(/(^ *)|( *$)/g, '').length > 0 ||\n textContent.length && textContent.indexOf('\\n') < 0)) {\n var wrapper = '<' + CONSTANT.DEFAULT_TAG + '>';\n var target = element;\n element = this.wrap(element, this.parseHTMLFragment(wrapper));\n var ignoreBr = target.nodeType === Node.ELEMENT_NODE && target.firstChild && target.firstChild.nodeName === 'BR'\n && (target.classList.contains(markerClassName.startSelection) ||\n target.classList.contains(markerClassName.endSelection));\n if (!ignoreBr && element.nextElementSibling && element.nextElementSibling.tagName === 'BR') {\n element.appendChild(element.nextElementSibling);\n }\n }\n return element;\n };\n /**\n * getImageTagInSelection method\n *\n * @returns {void}\n * @hidden\n\n */\n DOMNode.prototype.getImageTagInSelection = function () {\n var selection = this.getSelection();\n if (this.isEditorArea() && selection.rangeCount) {\n return selection.focusNode.querySelectorAll('img');\n }\n return null;\n };\n /**\n * blockNodes method\n *\n * @returns {Node[]} - returns the node array values\n * @hidden\n\n */\n DOMNode.prototype.blockNodes = function () {\n var collectionNodes = [];\n var selection = this.getSelection();\n if (this.isEditorArea() && selection.rangeCount) {\n var ranges = this.getRangePoint();\n for (var j = 0; j < ranges.length; j++) {\n var parentNode = void 0;\n var range = ranges[j];\n var startNode = this.getSelectedNode(range.startContainer, range.startOffset);\n var endNode = this.getSelectedNode(range.endContainer, range.endOffset);\n if (this.isBlockNode(startNode) && collectionNodes.indexOf(startNode) < 0) {\n collectionNodes.push(startNode);\n }\n parentNode = this.blockParentNode(startNode);\n if (parentNode && collectionNodes.indexOf(parentNode) < 0) {\n if (CONSTANT.IGNORE_BLOCK_TAGS.indexOf(parentNode.tagName.toLocaleLowerCase()) >= 0 && (startNode.tagName === 'BR' ||\n startNode.nodeType === Node.TEXT_NODE ||\n startNode.classList.contains(markerClassName.startSelection) ||\n startNode.classList.contains(markerClassName.endSelection))) {\n var tempNode = startNode.previousSibling &&\n startNode.previousSibling.nodeType === Node.TEXT_NODE ?\n startNode.previousSibling : startNode;\n if (!startNode.nextSibling && !startNode.previousSibling && startNode.tagName === 'BR') {\n collectionNodes.push(tempNode);\n }\n else {\n collectionNodes.push(this.createTempNode(tempNode));\n }\n }\n else {\n collectionNodes.push(parentNode);\n }\n }\n var nodes = [];\n for (var node = startNode; node !== endNode && node !== this.parent; null) {\n if (nodes.indexOf(node) < 0 && node.childNodes && node.childNodes.length) {\n nodes.push(node);\n node = node.childNodes[0];\n }\n else if (node && node.nodeType !== 8 && (node.tagName === 'BR' || (node.nodeType === Node.TEXT_NODE &&\n node.textContent.trim() !== '') || (node.nodeType !== Node.TEXT_NODE &&\n (node.classList.contains(markerClassName.startSelection) ||\n node.classList.contains(markerClassName.endSelection)))) &&\n CONSTANT.IGNORE_BLOCK_TAGS.indexOf(node.parentNode.tagName.toLocaleLowerCase()) >= 0) {\n node = this.createTempNode(node);\n }\n else if (node.nextSibling && node.nextSibling.nodeType !== 8 &&\n (node.nextSibling.tagName === 'BR' ||\n node.nextSibling.nodeType === Node.TEXT_NODE ||\n node.nextSibling.classList.contains(markerClassName.startSelection) ||\n node.nextSibling.classList.contains(markerClassName.endSelection)) &&\n CONSTANT.IGNORE_BLOCK_TAGS.indexOf(node.nextSibling.parentNode.tagName.toLocaleLowerCase()) >= 0) {\n node = this.createTempNode(node.nextSibling);\n }\n else if (node.nextSibling) {\n node = node.nextSibling;\n }\n else if (node.parentNode) {\n node = node.parentNode;\n nodes.push(node);\n }\n if (collectionNodes.indexOf(node) < 0 && node.nodeType === Node.ELEMENT_NODE &&\n CONSTANT.IGNORE_BLOCK_TAGS.indexOf(node.parentNode.tagName.toLocaleLowerCase()) >= 0 &&\n (node.classList.contains(markerClassName.startSelection) ||\n node.classList.contains(markerClassName.endSelection))) {\n collectionNodes.push(this.createTempNode(node));\n }\n if (this.isBlockNode(node) && this.ignoreTableTag(node) && nodes.indexOf(node) < 0 &&\n collectionNodes.indexOf(node) < 0 && (node !== endNode || range.endOffset > 0)) {\n collectionNodes.push(node);\n }\n if (node.nodeName === 'IMG' && node.parentElement.contentEditable === 'true') {\n collectionNodes.push(node);\n }\n }\n parentNode = this.blockParentNode(endNode);\n if (parentNode && this.ignoreTableTag(parentNode) && collectionNodes.indexOf(parentNode) < 0 &&\n (!isNullOrUndefined(parentNode.previousElementSibling) && parentNode.previousElementSibling.tagName !== 'IMG')) {\n collectionNodes.push(parentNode);\n }\n }\n }\n for (var i = collectionNodes.length - 1; i > 0; i--) {\n var nodes = this.nodeFinds(collectionNodes[i], collectionNodes);\n if (nodes.length) {\n var listNodes = collectionNodes[i].querySelectorAll('ul, ol');\n if (collectionNodes[i].tagName === 'LI' && listNodes.length > 0) {\n continue;\n }\n else {\n collectionNodes.splice(i, 1);\n }\n }\n }\n return collectionNodes;\n };\n DOMNode.prototype.ignoreTableTag = function (element) {\n return !(CONSTANT.TABLE_BLOCK_TAGS.indexOf(element.tagName.toLocaleLowerCase()) >= 0);\n };\n return DOMNode;\n}());\nexport { DOMNode };\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useRichTextEditorField } from \"./useRichTextEditorField\";\nimport { HtmlEditor, Inject, PasteCleanup, QuickToolbar, RichTextEditorComponent, Toolbar, } from \"@syncfusion/ej2-react-richtexteditor\";\nimport { FormGroup } from \"@blueprintjs/core\";\nimport classNames from \"classnames\";\nimport { FieldLabel } from \"../../CoreFields/FieldLabel/FieldLabel\";\nimport { FormFieldErrorContainer } from \"../../CoreFields/FieldError/FormFieldErrorContainer\";\nexport var RichTextEditorValueType;\n(function (RichTextEditorValueType) {\n RichTextEditorValueType[RichTextEditorValueType[\"html\"] = 0] = \"html\";\n RichTextEditorValueType[RichTextEditorValueType[\"base64\"] = 1] = \"base64\";\n})(RichTextEditorValueType || (RichTextEditorValueType = {}));\nvar RichTextEditorField = function (props) {\n var _a = useRichTextEditorField(props), richTextEditorRef = _a.richTextEditorRef, localValue = _a.localValue, richTextEditorSettings = _a.richTextEditorSettings, ready = _a.ready;\n return (_jsxs(FormGroup, { className: classNames(\"ucl-base-input-rich-text-editor-field\", {\n \"has-required-background\": props.isRequired && !localValue,\n }), children: [props.label && (_jsx(FieldLabel, __assign({ labelName: props.label, tooltipDescription: props.description, fieldProps: __assign(__assign({}, props), { value: localValue }) }, props.labelProps))), _jsx(\"div\", { className: \"ucl-base-input-rich-text-editor-field-container\", children: ready && (_jsx(RichTextEditorComponent, __assign({ ref: richTextEditorRef, value: localValue, enabled: !props.disabled }, richTextEditorSettings, { children: _jsx(Inject, { services: [Toolbar, HtmlEditor, QuickToolbar, PasteCleanup] }) }))) }), props.errorMessages && (_jsx(FormFieldErrorContainer, { errorMessages: props.errorMessages }))] }));\n};\nexport default RichTextEditorField;\n","import * as CONSTANT from './../base/constant';\nimport { createElement, detach, prepend, append, attributes, Browser } from '@syncfusion/ej2-base';\nimport { markerClassName } from './dom-node';\nimport * as EVENTS from './../../common/constant';\nimport { setStyleAttribute } from '@syncfusion/ej2-base';\nimport { isIDevice, setEditFrameFocus } from '../../common/util';\nimport { isNullOrUndefined, isNullOrUndefined as isNOU, closest } from '@syncfusion/ej2-base';\n/**\n * Lists internal component\n *\n * @hidden\n\n */\nvar Lists = /** @class */ (function () {\n /**\n * Constructor for creating the Lists plugin\n *\n * @param {EditorManager} parent - specifies the parent element\n * @hidden\n\n */\n function Lists(parent) {\n this.parent = parent;\n this.domNode = this.parent.domNode;\n this.addEventListener();\n }\n Lists.prototype.addEventListener = function () {\n this.parent.observer.on(EVENTS.LIST_TYPE, this.applyListsHandler, this);\n this.parent.observer.on(EVENTS.KEY_UP_HANDLER, this.onKeyUp, this);\n this.parent.observer.on(EVENTS.KEY_DOWN_HANDLER, this.keyDownHandler, this);\n this.parent.observer.on(EVENTS.SPACE_ACTION, this.spaceKeyAction, this);\n };\n Lists.prototype.testList = function (elem) {\n var olListRegex = [/^[\\d]+[.]+$/,\n /^(?=[MDCLXVI])M*(C[MD]|D?C{0,3})(X[CL]|L?X{0,3})(I[XV]|V?I{0,3})[.]$/gi,\n /^[a-zA-Z][.]+$/];\n var elementStart = !isNullOrUndefined(elem) ? elem.innerText.trim().split('.')[0] + '.' : null;\n if (!isNullOrUndefined(elementStart)) {\n for (var i = 0; i < olListRegex.length; i++) {\n if (olListRegex[i].test(elementStart)) {\n return true;\n }\n }\n }\n return false;\n };\n Lists.prototype.testCurrentList = function (range) {\n var olListStartRegex = [/^[1]+[.]+$/, /^[i]+[.]+$/, /^[a]+[.]+$/];\n if (!isNullOrUndefined(range.startContainer.textContent.slice(0, range.startOffset))) {\n var currentContent = range.startContainer.textContent.replace(/\\u200B/g, '').slice(0, range.startOffset).trim();\n for (var i = 0; i < olListStartRegex.length; i++) {\n if (olListStartRegex[i].test(currentContent) && currentContent.length === 2) {\n return true;\n }\n }\n }\n return false;\n };\n Lists.prototype.spaceList = function (e) {\n var range = this.parent.nodeSelection.getRange(this.parent.currentDocument);\n this.saveSelection = this.parent.nodeSelection.save(range, this.parent.currentDocument);\n var startNode = this.parent.domNode.getSelectedNode(range.startContainer, range.startOffset);\n // eslint-disable-next-line\n var endNode = this.parent.domNode.getSelectedNode(range.endContainer, range.endOffset);\n var preElement = startNode.previousElementSibling;\n var nextElement = startNode.nextElementSibling;\n var preElemULStart = !isNullOrUndefined(preElement) ?\n preElement.innerText.trim().substring(0, 1) : null;\n var nextElemULStart = !isNullOrUndefined(nextElement) ?\n nextElement.innerText.trim().substring(0, 1) : null;\n var startElementOLTest = this.testCurrentList(range);\n var preElementOLTest = this.testList(preElement);\n var nextElementOLTest = this.testList(nextElement);\n if (!preElementOLTest && !nextElementOLTest && preElemULStart !== '*' && nextElemULStart !== '*') {\n if (startElementOLTest) {\n range.startContainer.textContent = range.startContainer.textContent.slice(range.startOffset, range.startContainer.textContent.length);\n this.applyListsHandler({ subCommand: 'OL', callBack: e.callBack });\n e.event.preventDefault();\n }\n else if (range.startContainer.textContent.replace(/\\u200B/g, '').slice(0, range.startOffset).trim() === '*' ||\n range.startContainer.textContent.replace(/\\u200B/g, '').slice(0, range.startOffset).trim() === '-') {\n range.startContainer.textContent = range.startContainer.textContent.slice(range.startOffset, range.startContainer.textContent.length);\n this.applyListsHandler({ subCommand: 'UL', callBack: e.callBack });\n e.event.preventDefault();\n }\n }\n };\n Lists.prototype.enterList = function (e) {\n var range = this.parent.nodeSelection.getRange(this.parent.currentDocument);\n var startNode = range.startContainer.nodeName === 'LI' ? range.startContainer :\n range.startContainer.parentElement.closest('LI');\n var endNode = range.endContainer.nodeName === 'LI' ? range.endContainer :\n range.endContainer.parentElement.closest('LI');\n // Checks for Image, Audio , Video Element inside List Element\n var hasMediaElem = false;\n if (!isNOU(startNode)) {\n var videoElemList = startNode.querySelectorAll('.e-video-clickelem');\n var embedVideoElem = videoElemList.length > 0 && videoElemList[0].childNodes[0].nodeName === 'IFRAME';\n hasMediaElem = startNode.querySelectorAll('IMG').length > 0 || startNode.querySelectorAll('AUDIO').length > 0 || startNode.querySelectorAll('VIDEO').length > 0 || embedVideoElem;\n }\n if (!isNOU(startNode) && !isNOU(endNode) && startNode === endNode && startNode.tagName === 'LI' &&\n startNode.textContent.trim() === '' && !hasMediaElem) {\n if (startNode.innerHTML.indexOf(' ') >= 0) {\n return;\n }\n if (startNode.textContent.charCodeAt(0) === 65279) {\n startNode.textContent = '';\n }\n var startNodeParent = startNode.parentElement;\n if (isNOU(startNodeParent.parentElement.closest('UL')) && isNOU(startNodeParent.parentElement.closest('OL'))) {\n if (!isNOU(startNode.nextElementSibling)) {\n var nearBlockNode = this.parent.domNode.blockParentNode(startNode);\n this.parent.nodeCutter.GetSpliceNode(range, nearBlockNode);\n }\n var insertTag = void 0;\n if (e.enterAction === 'DIV') {\n insertTag = createElement('div');\n insertTag.innerHTML = '
';\n }\n else if (e.enterAction === 'P') {\n insertTag = createElement('p');\n insertTag.innerHTML = '
';\n }\n else {\n insertTag = createElement('br');\n }\n this.parent.domNode.insertAfter(insertTag, startNodeParent);\n e.event.preventDefault();\n this.parent.nodeSelection.setCursorPoint(this.parent.currentDocument, insertTag, 0);\n if (startNodeParent.textContent === '' && (startNodeParent.querySelectorAll('audio,video').length === 0)) {\n detach(startNodeParent);\n }\n else {\n detach(startNode);\n }\n }\n }\n };\n Lists.prototype.backspaceList = function (e) {\n var range = this.parent.nodeSelection.getRange(this.parent.currentDocument);\n var startNode = this.parent.domNode.getSelectedNode(range.startContainer, range.startOffset);\n var endNode = this.parent.domNode.getSelectedNode(range.endContainer, range.endOffset);\n startNode = startNode.nodeName === 'BR' ? startNode.parentElement : startNode;\n endNode = endNode.nodeName === 'BR' ? endNode.parentElement : endNode;\n if (startNode === endNode && !isNullOrUndefined(closest(startNode, 'li')) &&\n ((startNode.textContent.trim() === '' && startNode.textContent.charCodeAt(0) === 65279) ||\n (startNode.textContent.length === 1 && startNode.textContent.charCodeAt(0) === 8203))) {\n startNode.textContent = '';\n }\n if (startNode === endNode && startNode.tagName === 'LI' && startNode.textContent.length === 0 &&\n isNOU(startNode.previousElementSibling)) {\n startNode.removeAttribute('style');\n }\n if (startNode === endNode && startNode.textContent === '') {\n if (startNode.parentElement.tagName === 'LI' && endNode.parentElement.tagName === 'LI') {\n detach(startNode);\n }\n else if (startNode.closest('ul') || startNode.closest('ol')) {\n var parentList = !isNOU(startNode.closest('ul')) ? startNode.closest('ul') : startNode.closest('ol');\n if (parentList.firstElementChild === startNode && !isNOU(parentList.children[1]) &&\n (parentList.children[1].tagName === 'OL' || parentList.children[1].tagName === 'UL')) {\n if (parentList.tagName === parentList.children[1].tagName) {\n while (parentList.children[1].lastChild) {\n this.parent.domNode.insertAfter(parentList.children[1].lastChild, parentList.children[1]);\n }\n detach(parentList.children[1]);\n }\n else {\n parentList.parentElement.insertBefore(parentList.children[1], parentList);\n }\n }\n }\n }\n else if (!isNOU(startNode.firstChild) && startNode.firstChild.nodeName === 'BR' &&\n (!isNullOrUndefined(startNode.childNodes[1]) && (startNode.childNodes[1].nodeName === 'UL' ||\n startNode.childNodes[1].nodeName === 'OL'))) {\n var parentList = !isNOU(startNode.closest('ul')) ? startNode.closest('ul') : startNode.closest('ol');\n if (parentList.tagName === startNode.childNodes[1].nodeName) {\n while (startNode.childNodes[1].lastChild) {\n this.parent.domNode.insertAfter(startNode.children[1].lastChild, startNode);\n }\n detach(startNode.childNodes[1]);\n }\n else {\n parentList.parentElement.insertBefore(startNode.children[1], parentList);\n }\n }\n this.removeList(range, e);\n this.firstListBackSpace(range, e);\n };\n Lists.prototype.removeList = function (range, e) {\n var startNode = this.parent.domNode.getSelectedNode(range.startContainer, range.startOffset);\n var endNode = this.parent.domNode.getSelectedNode(range.endContainer, range.endOffset);\n startNode = startNode.nodeName === 'BR' ? startNode.parentElement : startNode;\n endNode = endNode.nodeName === 'BR' ? endNode.parentElement : endNode;\n startNode = startNode.nodeName !== 'LI' && !isNOU(startNode.closest('LI')) ? startNode.closest('LI') : startNode;\n endNode = endNode.nodeName !== 'LI' && !isNOU(endNode.closest('LI')) ? endNode.closest('LI') : endNode;\n if (((range.commonAncestorContainer.nodeName === 'OL' || range.commonAncestorContainer.nodeName === 'UL' || range.commonAncestorContainer.nodeName === 'LI') &&\n isNOU(endNode.nextElementSibling) && endNode.textContent.length === range.endOffset &&\n isNOU(startNode.previousElementSibling) && range.startOffset === 0) ||\n (Browser.userAgent.indexOf('Firefox') !== -1 && range.startContainer === range.endContainer && range.startContainer === this.parent.editableElement &&\n range.startOffset === 0 && range.endOffset === 1)) {\n if (Browser.userAgent.indexOf('Firefox') !== -1) {\n detach(range.commonAncestorContainer.childNodes[0]);\n }\n else if (range.commonAncestorContainer.nodeName === 'LI') {\n detach(range.commonAncestorContainer.parentElement);\n }\n else {\n detach(range.commonAncestorContainer);\n }\n e.event.preventDefault();\n }\n };\n Lists.prototype.onKeyUp = function () {\n if (!isNOU(this.commonLIParent) && !isNOU(this.commonLIParent.querySelector('.removeList'))) {\n var currentLIElem = this.commonLIParent.querySelector('.removeList');\n while (!isNOU(currentLIElem.firstChild)) {\n this.parent.domNode.insertAfter(currentLIElem.firstChild, currentLIElem);\n }\n detach(currentLIElem);\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n Lists.prototype.firstListBackSpace = function (range, _e) {\n var startNode = this.parent.domNode.getSelectedNode(range.startContainer, range.startOffset);\n if (!isNOU(startNode.closest('OL'))) {\n this.commonLIParent = startNode.closest('OL');\n }\n else if (!isNOU(startNode.closest('UL'))) {\n this.commonLIParent = startNode.closest('UL');\n }\n if (startNode.nodeName === 'LI' && range.startOffset === 0 && range.endOffset === 0 &&\n isNOU(startNode.previousSibling) && !isNOU(this.commonLIParent) && isNOU(this.commonLIParent.previousSibling) &&\n (isNOU(this.commonLIParent.parentElement.closest('OL')) && isNOU(this.commonLIParent.parentElement.closest('UL')) &&\n isNOU(this.commonLIParent.parentElement.closest('LI')))) {\n var currentElem = createElement('P');\n currentElem.innerHTML = '​';\n startNode.classList.add('removeList');\n this.commonLIParent.parentElement.insertBefore(currentElem, this.commonLIParent);\n }\n };\n Lists.prototype.keyDownHandler = function (e) {\n if (e.event.which === 13) {\n this.enterList(e);\n }\n if (e.event.which === 32) {\n this.spaceList(e);\n }\n if (e.event.which === 8) {\n this.backspaceList(e);\n }\n if (e.event.which === 46 && e.event.action === 'delete') {\n var range = this.parent.nodeSelection.getRange(this.parent.currentDocument);\n var commonAncestor = range.commonAncestorContainer;\n var startEle = range.startContainer;\n var endEle = range.endContainer;\n var startNode = startEle.nodeType === 3 ? startEle.parentElement : startEle;\n var endNode = endEle.nodeType === 3 ? endEle.parentElement : endEle;\n if ((commonAncestor.nodeName === 'UL' || commonAncestor.nodeName === 'OL') && startNode !== endNode\n && (!isNullOrUndefined(closest(startNode, 'ul')) || !isNullOrUndefined(closest(startNode, 'ol')))\n && (!isNullOrUndefined(closest(endNode, 'ul')) || !isNullOrUndefined(closest(endNode, 'ol')))\n && (commonAncestor.lastElementChild === closest(endNode, 'li')) && !range.collapsed) {\n detach(commonAncestor);\n }\n this.removeList(range, e);\n }\n if (e.event.which === 9) {\n var range = this.parent.nodeSelection.getRange(this.parent.currentDocument);\n if (!(e.event.action && e.event.action === 'indent')) {\n this.saveSelection = this.parent.nodeSelection.save(range, this.parent.currentDocument);\n }\n var blockNodes = void 0;\n var startOffset = range.startOffset;\n var endOffset = range.endOffset;\n var startNode = this.parent.domNode.getSelectedNode(range.startContainer, range.startOffset);\n var endNode = this.parent.domNode.getSelectedNode(range.endContainer, range.endOffset);\n if ((startNode === endNode && (startNode.nodeName === 'BR' || startNode.nodeName === '#text') &&\n CONSTANT.IGNORE_BLOCK_TAGS.indexOf(startNode.parentNode.tagName.toLocaleLowerCase()) >= 0)) {\n return;\n }\n else {\n if (!(e.event.action && e.event.action === 'indent')) {\n this.domNode.setMarker(this.saveSelection);\n }\n blockNodes = this.domNode.blockNodes();\n }\n var nodes = [];\n var isNested = true;\n for (var i = 0; i < blockNodes.length; i++) {\n if (blockNodes[i].parentNode.tagName === 'LI') {\n nodes.push(blockNodes[i].parentNode);\n }\n else if (blockNodes[i].tagName === 'LI' && blockNodes[i].childNodes[0].tagName !== 'P' &&\n (blockNodes[i].childNodes[0].tagName !== 'OL' &&\n blockNodes[i].childNodes[0].tagName !== 'UL')) {\n nodes.push(blockNodes[i]);\n }\n }\n if (nodes.length > 1 || nodes.length && ((startOffset === 0 && endOffset === 0) || e.ignoreDefault)) {\n e.event.preventDefault();\n e.event.stopPropagation();\n this.currentAction = this.getAction(nodes[0]);\n if (e.event.shiftKey) {\n this.revertList(nodes, e);\n this.revertClean();\n }\n else {\n isNested = this.nestedList(nodes);\n }\n if (isNested) {\n this.cleanNode();\n this.parent.editableElement.focus();\n }\n if (!(e.event.action && e.event.action === 'indent')) {\n this.saveSelection = this.domNode.saveMarker(this.saveSelection);\n this.saveSelection.restore();\n if (e.callBack) {\n e.callBack({\n requestType: this.currentAction,\n editorMode: 'HTML',\n range: this.parent.nodeSelection.getRange(this.parent.currentDocument),\n elements: this.parent.domNode.blockNodes(),\n event: e.event\n });\n }\n }\n }\n else {\n if (!(e.event.action && e.event.action === 'indent')) {\n if (e.event && e.event.shiftKey && e.event.key === 'Tab') {\n e.event.action = 'tab';\n }\n this.saveSelection = this.domNode.saveMarker(this.saveSelection, e.event.action);\n this.saveSelection.restore();\n }\n }\n }\n else {\n switch (e.event.action) {\n case 'ordered-list':\n this.applyListsHandler({ subCommand: 'OL', callBack: e.callBack });\n e.event.preventDefault();\n break;\n case 'unordered-list':\n this.applyListsHandler({ subCommand: 'UL', callBack: e.callBack });\n e.event.preventDefault();\n break;\n }\n }\n };\n Lists.prototype.spaceKeyAction = function (e) {\n if (e.event.which === 32) {\n this.spaceList(e);\n }\n };\n Lists.prototype.getAction = function (element) {\n var parentNode = element.parentNode;\n return (parentNode.nodeName === 'OL' ? 'OL' : 'UL');\n };\n Lists.prototype.revertClean = function () {\n var collectionNodes = this.parent.editableElement.querySelectorAll('ul, ol');\n for (var i = 0; i < collectionNodes.length; i++) {\n var listNodes = collectionNodes[i].querySelectorAll('ul, ol');\n if (listNodes.length > 0) {\n for (var j = 0; j < listNodes.length; j++) {\n var prevSibling = listNodes[j].previousSibling;\n if (prevSibling && prevSibling.tagName === 'LI') {\n prevSibling.appendChild(listNodes[j]);\n }\n }\n }\n }\n };\n Lists.prototype.noPreviousElement = function (elements) {\n var firstNode;\n var firstNodeOL;\n var siblingListOL = elements.querySelectorAll('ol, ul');\n var siblingListLI = elements\n .querySelectorAll('li');\n var siblingListLIFirst = this.domNode.contents(siblingListLI[0])[0];\n if (siblingListLI.length > 0 && (siblingListLIFirst.nodeName === 'OL' || siblingListLIFirst.nodeName === 'UL')) {\n firstNode = siblingListLI[0];\n }\n else {\n firstNodeOL = siblingListOL[0];\n }\n if (firstNode) {\n for (var h = this.domNode.contents(elements)[0]; h && !this.domNode.isList(h); null) {\n var nextSibling = h.nextSibling;\n prepend([h], firstNode);\n setStyleAttribute(elements, { 'list-style-type': 'none' });\n setStyleAttribute(firstNode, { 'list-style-type': '' });\n h = nextSibling;\n }\n }\n else if (firstNodeOL) {\n var nestedElement = createElement('li');\n prepend([nestedElement], firstNodeOL);\n for (var h = this.domNode.contents(elements)[0]; h && !this.domNode.isList(h); null) {\n var nextSibling = h.nextSibling;\n nestedElement.appendChild(h);\n h = nextSibling;\n }\n prepend([firstNodeOL], elements.parentNode);\n detach(elements);\n var nestedElementLI = createElement('li', { styles: 'list-style-type: none;' });\n prepend([nestedElementLI], firstNodeOL.parentNode);\n append([firstNodeOL], nestedElementLI);\n }\n else {\n var nestedElementLI = createElement('li', { styles: 'list-style-type: none;' });\n prepend([nestedElementLI], elements.parentNode);\n var nestedElement = createElement(elements.parentNode.tagName);\n prepend([nestedElement], nestedElementLI);\n append([elements], nestedElement);\n }\n };\n Lists.prototype.nestedList = function (elements) {\n var isNested = false;\n for (var i = 0; i < elements.length; i++) {\n var prevSibling = this.domNode.getPreviousNode(elements[i]);\n if (prevSibling) {\n isNested = true;\n var firstNode = void 0;\n var firstNodeLI = void 0;\n var siblingListOL = elements[i].querySelectorAll('ol, ul');\n var siblingListLI = elements[i]\n .querySelectorAll('li');\n var siblingListLIFirst = this.domNode.contents(siblingListLI[0])[0];\n if (siblingListLI.length > 0 && (siblingListLIFirst.nodeName === 'OL' || siblingListLIFirst.nodeName === 'UL')) {\n firstNodeLI = siblingListLI[0];\n }\n else {\n firstNode = siblingListOL[0];\n }\n if (firstNode) {\n var nestedElement = createElement('li');\n prepend([nestedElement], firstNode);\n for (var h = this.domNode.contents(elements[i])[0]; h && !this.domNode.isList(h); null) {\n var nextSibling = h.nextSibling;\n nestedElement.appendChild(h);\n h = nextSibling;\n }\n append([firstNode], prevSibling);\n detach(elements[i]);\n }\n else if (firstNodeLI) {\n if (prevSibling.tagName === 'LI') {\n for (var h = this.domNode.contents(elements[i])[0]; h && !this.domNode.isList(h); null) {\n var nextSibling = h.nextSibling;\n prepend([h], firstNodeLI);\n setStyleAttribute(elements[i], { 'list-style-type': 'none' });\n setStyleAttribute(firstNodeLI, { 'list-style-type': '' });\n h = nextSibling;\n }\n append([firstNodeLI.parentNode], prevSibling);\n detach(elements[i]);\n }\n }\n else {\n if (prevSibling.tagName === 'LI') {\n var nestedElement = createElement(elements[i].parentNode.tagName);\n append([nestedElement], prevSibling);\n append([elements[i]], nestedElement);\n }\n else if (prevSibling.tagName === 'OL' || prevSibling.tagName === 'UL') {\n append([elements[i]], prevSibling);\n }\n }\n }\n else {\n var element = elements[i];\n isNested = true;\n this.noPreviousElement(element);\n }\n }\n return isNested;\n };\n Lists.prototype.applyListsHandler = function (e) {\n var range = this.parent.nodeSelection.getRange(this.parent.currentDocument);\n if (Browser.userAgent.indexOf('Firefox') !== -1 && range.startContainer === range.endContainer && range.startContainer === this.parent.editableElement) {\n var startChildNodes = range.startContainer.childNodes;\n var startNode = ((startChildNodes[(range.startOffset > 0) ? (range.startOffset - 1) :\n range.startOffset]) || range.startContainer);\n var endNode = (range.endContainer.childNodes[(range.endOffset > 0) ? (range.endOffset - 1) :\n range.endOffset] || range.endContainer);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var lastSelectionNode = endNode.lastChild.nodeName === 'BR' ? (isNOU(endNode.lastChild.previousSibling) ? endNode\n : endNode.lastChild.previousSibling) : endNode.lastChild;\n while (!isNOU(lastSelectionNode) && lastSelectionNode.nodeName !== '#text' && lastSelectionNode.nodeName !== 'IMG' &&\n lastSelectionNode.nodeName !== 'BR' && lastSelectionNode.nodeName !== 'HR') {\n lastSelectionNode = lastSelectionNode.lastChild;\n }\n this.parent.nodeSelection.setSelectionText(this.parent.currentDocument, startNode, lastSelectionNode, 0, lastSelectionNode.textContent.length);\n range = this.parent.nodeSelection.getRange(this.parent.currentDocument);\n }\n if (range.startContainer === range.endContainer && range.startContainer === this.parent.editableElement &&\n range.startOffset === range.endOffset && range.startOffset === 0 &&\n this.parent.editableElement.textContent.length === 0 && (this.parent.editableElement.childNodes[0].nodeName !== 'TABLE' &&\n this.parent.editableElement.childNodes[0].nodeName !== 'IMG')) {\n var focusNode = range.startContainer.childNodes[0];\n this.parent.nodeSelection.setSelectionText(this.parent.currentDocument, focusNode, focusNode, 0, 0);\n range = this.parent.nodeSelection.getRange(this.parent.currentDocument);\n }\n this.saveSelection = this.parent.nodeSelection.save(range, this.parent.currentDocument);\n this.currentAction = e.subCommand;\n this.currentAction = e.subCommand = this.currentAction === 'NumberFormatList' ? 'OL' : this.currentAction === 'BulletFormatList' ? 'UL' : this.currentAction;\n this.domNode.setMarker(this.saveSelection);\n var listsNodes = this.domNode.blockNodes();\n if (e.enterAction === 'BR') {\n this.setSelectionBRConfig();\n var allSelectedNode = this.parent.nodeSelection.getSelectedNodes(this.parent.currentDocument);\n var selectedNodes = this.parent.nodeSelection.getSelectionNodes(allSelectedNode);\n var currentFormatNodes = [];\n if (selectedNodes.length === 0) {\n selectedNodes.push(listsNodes[0]);\n }\n for (var i = 0; i < selectedNodes.length; i++) {\n var currentNode = selectedNodes[i];\n var previousCurrentNode = void 0;\n while (!this.parent.domNode.isBlockNode(currentNode) && currentNode !== this.parent.editableElement) {\n previousCurrentNode = currentNode;\n currentNode = currentNode.parentElement;\n }\n if (this.parent.domNode.isBlockNode(currentNode) && currentNode === this.parent.editableElement) {\n currentFormatNodes.push(previousCurrentNode);\n }\n }\n for (var i = 0; i < currentFormatNodes.length; i++) {\n if (!this.parent.domNode.isBlockNode(currentFormatNodes[i])) {\n var currentNode = currentFormatNodes[i];\n var previousNode = currentNode;\n while (currentNode === this.parent.editableElement) {\n previousNode = currentNode;\n currentNode = currentNode.parentElement;\n }\n var tempElem = void 0;\n if (this.parent.domNode.isBlockNode(previousNode.parentElement) &&\n previousNode.parentElement === this.parent.editableElement) {\n tempElem = createElement('p');\n previousNode.parentElement.insertBefore(tempElem, previousNode);\n tempElem.appendChild(previousNode);\n }\n else {\n tempElem = previousNode;\n }\n var preNode = tempElem.previousSibling;\n while (!isNOU(preNode) && preNode.nodeName !== 'BR' &&\n !this.parent.domNode.isBlockNode(preNode)) {\n tempElem.firstChild.parentElement.insertBefore(preNode, tempElem.firstChild);\n preNode = tempElem.previousSibling;\n }\n if (!isNOU(preNode) && preNode.nodeName === 'BR') {\n detach(preNode);\n }\n var postNode = tempElem.nextSibling;\n while (!isNOU(postNode) && postNode.nodeName !== 'BR' &&\n !this.parent.domNode.isBlockNode(postNode)) {\n tempElem.appendChild(postNode);\n postNode = tempElem.nextSibling;\n }\n if (!isNOU(postNode) && postNode.nodeName === 'BR') {\n detach(postNode);\n }\n }\n }\n this.setSelectionBRConfig();\n listsNodes = this.parent.domNode.blockNodes();\n }\n for (var i = 0; i < listsNodes.length; i++) {\n if (listsNodes[i].tagName === 'TABLE' && !range.collapsed) {\n listsNodes.splice(i, 1);\n }\n if (listsNodes.length > 0 && listsNodes[i].tagName !== 'LI'\n && 'LI' === listsNodes[i].parentNode.tagName) {\n listsNodes[i] = listsNodes[i].parentNode;\n }\n }\n this.applyLists(listsNodes, this.currentAction, e.selector, e.item, e);\n if (e.callBack) {\n e.callBack({\n requestType: this.currentAction,\n event: e.event,\n editorMode: 'HTML',\n range: this.parent.nodeSelection.getRange(this.parent.currentDocument),\n elements: this.parent.domNode.blockNodes()\n });\n }\n };\n Lists.prototype.setSelectionBRConfig = function () {\n var startElem = this.parent.editableElement.querySelector('.' + markerClassName.startSelection);\n var endElem = this.parent.editableElement.querySelector('.' + markerClassName.endSelection);\n if (isNOU(endElem)) {\n this.parent.nodeSelection.setCursorPoint(this.parent.currentDocument, startElem, 0);\n }\n else {\n this.parent.nodeSelection.setSelectionText(this.parent.currentDocument, startElem, endElem, 0, 0);\n }\n };\n Lists.prototype.applyLists = function (elements, type, selector, item, e) {\n var isReverse = true;\n if (this.isRevert(elements, type, item) && isNOU(item)) {\n this.revertList(elements, e);\n this.removeEmptyListElements();\n }\n else {\n this.checkLists(elements, type, item);\n for (var i = 0; i < elements.length; i++) {\n if (!isNOU(item) && !isNOU(item.listStyle)) {\n if (item.listStyle === 'listImage') {\n setStyleAttribute(elements[i], { 'list-style-image': item.listImage });\n }\n else {\n setStyleAttribute(elements[i], { 'list-style-image': 'none' });\n setStyleAttribute(elements[i], { 'list-style-type': item.listStyle.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase() });\n }\n }\n if (elements[i].getAttribute('contenteditable') === 'true'\n && elements[i].childNodes.length === 1 && elements[i].childNodes[0].nodeName === 'TABLE') {\n var listEle = document.createElement(type);\n listEle.innerHTML = '

  • ';\n elements[i].appendChild(listEle);\n }\n else if ('LI' !== elements[i].tagName && isNOU(item)) {\n isReverse = false;\n var elemAtt = elements[i].tagName === 'IMG' ? '' : this.domNode.attributes(elements[i]);\n var openTag = '<' + type + '>';\n var closeTag = '';\n var newTag = 'li' + elemAtt;\n var replaceHTML = (elements[i].tagName.toLowerCase() === CONSTANT.DEFAULT_TAG ?\n elements[i].innerHTML : elements[i].outerHTML);\n var innerHTML = this.domNode.createTagString(newTag, null, replaceHTML);\n var collectionString = openTag + innerHTML + closeTag;\n this.domNode.replaceWith(elements[i], collectionString);\n }\n else if (!isNOU(item) && 'LI' !== elements[i].tagName) {\n // eslint-disable-next-line\n isReverse = false;\n var elemAtt = elements[i].tagName === 'IMG' ? '' : this.domNode.attributes(elements[i]);\n var openTag = '<' + type + elemAtt + '>';\n var closeTag = '';\n var newTag = 'li';\n var replaceHTML = (elements[i].tagName.toLowerCase() === CONSTANT.DEFAULT_TAG ?\n elements[i].innerHTML : elements[i].outerHTML);\n var innerHTML = this.domNode.createTagString(newTag, null, replaceHTML);\n var collectionString = openTag + innerHTML + closeTag;\n this.domNode.replaceWith(elements[i], collectionString);\n }\n }\n }\n this.cleanNode();\n this.parent.editableElement.focus();\n if (isIDevice()) {\n setEditFrameFocus(this.parent.editableElement, selector);\n }\n this.saveSelection = this.domNode.saveMarker(this.saveSelection);\n this.saveSelection.restore();\n };\n Lists.prototype.removeEmptyListElements = function () {\n var listElem = this.parent.editableElement.querySelectorAll('ol, ul');\n for (var i = 0; i < listElem.length; i++) {\n if (listElem[i].textContent.trim() === '') {\n detach(listElem[i]);\n }\n }\n };\n Lists.prototype.isRevert = function (nodes, tagName, item) {\n var isRevert = true;\n for (var i = 0; i < nodes.length; i++) {\n if (nodes[i].tagName !== 'LI') {\n return false;\n }\n if (nodes[i].parentNode.tagName !== tagName ||\n isNOU(item) && nodes[i].parentNode.style.listStyleType !== '') {\n isRevert = false;\n }\n }\n return isRevert;\n };\n Lists.prototype.checkLists = function (nodes, tagName, item) {\n var nodesTemp = [];\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[i].parentNode;\n if (!isNOU(item) && 'LI' === nodes[i].tagName && !isNOU(item.listStyle)) {\n if (item.listStyle === 'listImage') {\n setStyleAttribute(node, { 'list-style-image': item.listImage });\n }\n else {\n setStyleAttribute(node, { 'list-style-image': 'none' });\n setStyleAttribute(node, { 'list-style-type': item.listStyle.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase() });\n }\n }\n if ((nodes[i].tagName === 'LI' && node.tagName !== tagName && nodesTemp.indexOf(node) < 0) ||\n (nodes[i].tagName === 'LI' && node.tagName === tagName && nodesTemp.indexOf(node) < 0 && item !== null)) {\n nodesTemp.push(node);\n }\n if (isNOU(item) && (node.tagName === tagName ||\n ((node.tagName === 'UL' || node.tagName === 'OL') && node.hasAttribute('style')))) {\n if (node.hasAttribute('style')) {\n node.removeAttribute('style');\n }\n }\n }\n for (var j = nodesTemp.length - 1; j >= 0; j--) {\n var h = nodesTemp[j];\n var replace = '<' + tagName.toLowerCase() + ' '\n + this.domNode.attributes(h) + '>' + h.innerHTML + '';\n this.domNode.replaceWith(nodesTemp[j], replace);\n }\n };\n Lists.prototype.cleanNode = function () {\n var liParents = this.parent.editableElement.querySelectorAll('ol + ol, ul + ul');\n for (var c = 0; c < liParents.length; c++) {\n var node = liParents[c];\n if (this.domNode.isList(node.previousElementSibling) &&\n this.domNode.openTagString(node) === this.domNode.openTagString(node.previousElementSibling)) {\n var contentNodes = this.domNode.contents(node);\n for (var f = 0; f < contentNodes.length; f++) {\n node.previousElementSibling.appendChild(contentNodes[f]);\n }\n node.parentNode.removeChild(node);\n }\n else if (!isNOU(node.getAttribute('level'))) {\n if (node.tagName === node.previousElementSibling.tagName) {\n node.previousElementSibling.lastChild.append(node);\n }\n }\n }\n };\n Lists.prototype.findUnSelected = function (temp, elements) {\n temp = temp.slice().reverse();\n if (temp.length > 0) {\n var rightIndent = [];\n var indentElements = [];\n var lastElement = elements[elements.length - 1];\n var lastElementChild = [];\n var childElements = [];\n lastElementChild = (lastElement.childNodes);\n for (var z = 0; z < lastElementChild.length; z++) {\n if (lastElementChild[z].tagName === 'OL' || lastElementChild[z].tagName === 'UL') {\n var childLI = lastElementChild[z]\n .querySelectorAll('li');\n if (childLI.length > 0) {\n for (var y = 0; y < childLI.length; y++) {\n childElements.push(childLI[y]);\n }\n }\n }\n }\n for (var i = 0; i < childElements.length; i++) {\n var count = 0;\n for (var j = 0; j < temp.length; j++) {\n if (!childElements[i].contains((temp[j]))) {\n count = count + 1;\n }\n }\n if (count === temp.length) {\n indentElements.push(childElements[i]);\n }\n }\n if (indentElements.length > 0) {\n for (var x = 0; x < indentElements.length; x++) {\n if (this.domNode.contents(indentElements[x])[0].nodeName !== 'OL' &&\n this.domNode.contents(indentElements[x])[0].nodeName !== 'UL') {\n rightIndent.push(indentElements[x]);\n }\n }\n }\n if (rightIndent.length > 0) {\n this.nestedList(rightIndent);\n }\n }\n };\n Lists.prototype.revertList = function (elements, e) {\n var temp = [];\n for (var i = elements.length - 1; i >= 0; i--) {\n for (var j = i - 1; j >= 0; j--) {\n if (elements[j].contains((elements[i])) || elements[j] === elements[i]) {\n temp.push(elements[i]);\n elements.splice(i, 1);\n break;\n }\n }\n }\n this.findUnSelected(temp, elements);\n var viewNode = [];\n for (var i = 0; i < elements.length; i++) {\n var element = elements[i];\n if (this.domNode.contents(element)[0].nodeType === 3 && this.domNode.contents(element)[0].textContent.trim().length === 0) {\n detach(this.domNode.contents(element)[0]);\n }\n var parentNode = elements[i].parentNode;\n var className = element.getAttribute('class');\n if (temp.length === 0) {\n var siblingList = elements[i].querySelectorAll('ul, ol');\n var firstNode = siblingList[0];\n if (firstNode) {\n var child = firstNode\n .querySelectorAll('li');\n if (child) {\n var nestedElement = createElement(firstNode.tagName);\n append([nestedElement], firstNode.parentNode);\n var nestedElementLI = createElement('li', { styles: 'list-style-type: none;' });\n append([nestedElementLI], nestedElement);\n append([firstNode], nestedElementLI);\n }\n }\n }\n if (element.parentNode.insertBefore(this.closeTag(parentNode.tagName), element),\n 'LI' === parentNode.parentNode.tagName || 'OL' === parentNode.parentNode.tagName ||\n 'UL' === parentNode.parentNode.tagName) {\n element.parentNode.insertBefore(this.closeTag('LI'), element);\n }\n else {\n var classAttr = '';\n if (className) {\n // eslint-disable-next-line\n classAttr += ' class=\"' + className + '\"';\n }\n if (CONSTANT.DEFAULT_TAG && 0 === element.querySelectorAll(CONSTANT.BLOCK_TAGS.join(', ')).length) {\n var wrapperclass = isNullOrUndefined(className) ? ' class=\"e-rte-wrap-inner\"' :\n ' class=\"' + className + ' e-rte-wrap-inner\"';\n var wrapper = '<' + CONSTANT.DEFAULT_TAG + wrapperclass +\n this.domNode.attributes(parentNode) + '>';\n if (e.enterAction !== 'BR') {\n this.domNode.wrapInner(element, this.domNode.parseHTMLFragment(wrapper));\n }\n }\n else if (this.domNode.contents(element)[0].nodeType === 3) {\n var replace = this.domNode.createTagString(CONSTANT.DEFAULT_TAG, parentNode, this.parent.domNode.encode(this.domNode.contents(element)[0].textContent));\n this.domNode.replaceWith(this.domNode.contents(element)[0], replace);\n }\n else if (this.domNode.contents(element)[0].classList.contains(markerClassName.startSelection) ||\n this.domNode.contents(element)[0].classList.contains(markerClassName.endSelection)) {\n var replace = this.domNode.createTagString(CONSTANT.DEFAULT_TAG, parentNode, this.domNode.contents(element)[0].outerHTML);\n this.domNode.replaceWith(this.domNode.contents(element)[0], replace);\n }\n else {\n var childNode = element.firstChild;\n className = childNode.getAttribute('class');\n attributes(childNode, this.domNode.rawAttributes(parentNode));\n if (className && childNode.getAttribute('class')) {\n attributes(childNode, { 'class': className + ' ' + childNode.getAttribute('class') });\n }\n }\n append([this.openTag('LI')], element);\n prepend([this.closeTag('LI')], element);\n }\n this.domNode.insertAfter(this.openTag(parentNode.tagName), element);\n if (parentNode.parentNode.tagName === 'LI') {\n parentNode = parentNode.parentNode.parentNode;\n }\n if (viewNode.indexOf(parentNode) < 0) {\n viewNode.push(parentNode);\n }\n }\n for (var i = 0; i < viewNode.length; i++) {\n var node = viewNode[i];\n var nodeInnerHtml = node.innerHTML;\n var closeTag = /<\\/span>/g;\n var openTag = /<\\/span>/g;\n nodeInnerHtml = nodeInnerHtml.replace(closeTag, '');\n nodeInnerHtml = nodeInnerHtml.replace(openTag, '<$1 ' + this.domNode.attributes(node) + '>');\n this.domNode.replaceWith(node, this.domNode.openTagString(node) + nodeInnerHtml.trim() + this.domNode.closeTagString(node));\n }\n var emptyUl = this.parent.editableElement.querySelectorAll('ul:empty, ol:empty');\n for (var i = 0; i < emptyUl.length; i++) {\n detach(emptyUl[i]);\n }\n var emptyLi = this.parent.editableElement.querySelectorAll('li:empty');\n for (var i = 0; i < emptyLi.length; i++) {\n detach(emptyLi[i]);\n }\n };\n Lists.prototype.openTag = function (type) {\n return this.domNode.parseHTMLFragment('');\n };\n Lists.prototype.closeTag = function (type) {\n return this.domNode.parseHTMLFragment('');\n };\n return Lists;\n}());\nexport { Lists };\n","/**\n * Node appending methods.\n *\n * @hidden\n */\nvar InsertMethods = /** @class */ (function () {\n function InsertMethods() {\n }\n /**\n * WrapBefore method\n *\n * @param {Text} textNode - specifies the text node\n * @param {HTMLElement} parentNode - specifies the parent node\n * @param {boolean} isAfter - specifies the boolean value\n * @returns {Text} - returns the text value\n * @hidden\n\n */\n InsertMethods.WrapBefore = function (textNode, parentNode, isAfter) {\n parentNode.innerText = textNode.textContent;\n //eslint-disable-next-line\n (!isAfter) ? this.AppendBefore(parentNode, textNode) : this.AppendBefore(parentNode, textNode, true);\n if (textNode.parentNode) {\n textNode.parentNode.removeChild(textNode);\n }\n return parentNode.childNodes[0];\n };\n /**\n * Wrap method\n *\n * @param {HTMLElement} childNode - specifies the child node\n * @param {HTMLElement} parentNode - specifies the parent node.\n * @returns {HTMLElement} - returns the element\n * @hidden\n\n */\n InsertMethods.Wrap = function (childNode, parentNode) {\n this.AppendBefore(parentNode, childNode);\n parentNode.appendChild(childNode);\n return childNode;\n };\n /**\n * unwrap method\n *\n * @param {Node} node - specifies the node element.\n * @returns {Node[]} - returns the array of value\n * @hidden\n\n */\n InsertMethods.unwrap = function (node) {\n var parent = node.parentNode;\n var child = [];\n for (; node.firstChild; null) {\n child.push(parent.insertBefore(node.firstChild, node));\n }\n parent.removeChild(node);\n return child;\n };\n /**\n * AppendBefore method\n *\n * @param {HTMLElement} textNode - specifies the element\n * @param {HTMLElement} parentNode - specifies the parent node\n * @param {boolean} isAfter - specifies the boolean value\n * @returns {void}\n * @hidden\n\n */\n InsertMethods.AppendBefore = function (textNode, parentNode, isAfter) {\n return (parentNode.parentNode) ? ((!isAfter) ? parentNode.parentNode.insertBefore(textNode, parentNode)\n : parentNode.parentNode.insertBefore(textNode, parentNode.nextSibling)) :\n parentNode;\n };\n return InsertMethods;\n}());\nexport { InsertMethods };\n","import { NodeSelection } from './../../selection/index';\nimport { isNullOrUndefined as isNOU } from '@syncfusion/ej2-base';\nimport { InsertMethods } from './insert-methods';\n/**\n * Split the Node based on selection\n *\n * @hidden\n\n */\nvar NodeCutter = /** @class */ (function () {\n function NodeCutter() {\n this.enterAction = 'P';\n this.position = -1;\n this.nodeSelection = new NodeSelection();\n }\n // Split Selection Node\n /**\n * GetSpliceNode method\n *\n * @param {Range} range - specifies the range\n * @param {HTMLElement} node - specifies the node element.\n * @returns {Node} - returns the node value\n * @hidden\n\n */\n NodeCutter.prototype.GetSpliceNode = function (range, node) {\n node = this.SplitNode(range, node, true);\n node = this.SplitNode(range, node, false);\n return node;\n };\n /**\n * @param {Range} range - specifies the range\n * @param {HTMLElement} node - specifies the node element.\n * @param {boolean} isCollapsed - specifies the boolean value\n * @returns {HTMLElement} - returns the element\n * @hidden\n\n */\n NodeCutter.prototype.SplitNode = function (range, node, isCollapsed) {\n if (node) {\n var clone = range.cloneRange();\n var parent_1 = node.parentNode;\n var index = this.nodeSelection.getIndex(node);\n clone.collapse(isCollapsed);\n // eslint-disable-next-line\n (isCollapsed) ? clone.setStartBefore(node) : clone.setEndAfter(node);\n var fragment = clone.extractContents();\n if (isCollapsed) {\n node = parent_1.childNodes[index];\n fragment = this.spliceEmptyNode(fragment, false);\n if (fragment && fragment.childNodes.length > 0) {\n var isEmpty = (fragment.childNodes.length === 1 && fragment.childNodes[0].nodeName !== 'IMG'\n && this.isRteElm(fragment) && fragment.textContent === '') ? true : false;\n if (!isEmpty) {\n if (node) {\n InsertMethods.AppendBefore(fragment, node);\n }\n else {\n parent_1.appendChild(fragment);\n var divNode = document.createElement('div');\n divNode.innerHTML = '';\n node = divNode.firstChild;\n parent_1.appendChild(node);\n }\n }\n }\n }\n else {\n node = parent_1.childNodes.length > 1 ? parent_1.childNodes[index] :\n parent_1.childNodes[0];\n fragment = this.spliceEmptyNode(fragment, true);\n if (fragment && fragment.childNodes.length > 0) {\n var isEmpty = (fragment.childNodes.length === 1 && fragment.childNodes[0].nodeName !== 'IMG'\n && this.isRteElm(fragment) && fragment.textContent === '') ? true : false;\n if (!isEmpty) {\n if (node) {\n InsertMethods.AppendBefore(fragment, node, true);\n }\n else {\n parent_1.appendChild(fragment);\n var divNode = document.createElement('div');\n divNode.innerHTML = '';\n parent_1.insertBefore(divNode.firstChild, parent_1.firstChild);\n node = parent_1.firstChild;\n }\n }\n }\n }\n return node;\n }\n else {\n return null;\n }\n };\n NodeCutter.prototype.isRteElm = function (fragment) {\n var result = true;\n if (fragment.childNodes.length === 1 && fragment.childNodes[0].nodeName !== 'IMG') {\n var firstChild = fragment.childNodes[0];\n for (var i = 0; !isNOU(firstChild.childNodes) && i < firstChild.childNodes.length; i++) {\n if (firstChild.childNodes[i].nodeName === 'IMG' || (firstChild.childNodes[i].nodeName === 'SPAN' &&\n (firstChild.childNodes[i].classList.contains('e-video-wrap') ||\n firstChild.childNodes[i].classList.contains('e-embed-video-wrap') ||\n firstChild.childNodes[i].classList.contains('e-audio-wrap')))) {\n result = false;\n }\n }\n }\n else {\n result = true;\n }\n return result;\n };\n NodeCutter.prototype.spliceEmptyNode = function (fragment, isStart) {\n var len;\n if (fragment.childNodes.length === 1 && fragment.childNodes[0].nodeName === '#text' &&\n fragment.childNodes[0].textContent === '' || fragment.textContent === '') {\n len = -1;\n }\n else {\n len = fragment.childNodes.length - 1;\n }\n if (len > -1 && !isStart) {\n this.spliceEmptyNode(fragment.childNodes[len], isStart);\n }\n else if (len > -1) {\n this.spliceEmptyNode(fragment.childNodes[0], isStart);\n }\n else if (fragment.nodeType !== 3 && fragment.nodeType !== 11 && fragment.nodeName !== 'IMG' && !(fragment.classList.contains('e-video-wrap')) && !(fragment.classList.contains('e-audio-wrap'))) {\n fragment.parentNode.removeChild(fragment);\n }\n return fragment;\n };\n // Cursor Position split\n NodeCutter.prototype.GetCursorStart = function (indexes, index, isStart) {\n indexes = (isStart) ? indexes : indexes.reverse();\n var position = indexes[0];\n for (var num = 0; num < indexes.length && ((isStart) ? (indexes[num] < index) : (indexes[num] >= index)); num++) {\n position = indexes[num];\n }\n return position;\n };\n /**\n * GetCursorRange method\n *\n * @param {Document} docElement - specifies the document\n * @param {Range} range - specifies the range\n * @param {Node} node - specifies the node.\n * @returns {Range} - returns the range value\n * @hidden\n\n */\n NodeCutter.prototype.GetCursorRange = function (docElement, range, node) {\n var cursorRange = docElement.createRange();\n var indexes = [];\n indexes.push(0);\n var str = this.TrimLineBreak(node.data);\n var index = str.indexOf(' ', 0);\n while (index !== -1) {\n if (indexes.indexOf(index) < 0) {\n indexes.push(index);\n }\n if (new RegExp('\\\\s').test(str[index - 1]) && (indexes.indexOf(index - 1) < 0)) {\n indexes.push(index - 1);\n }\n if (new RegExp('\\\\s').test(str[index + 1])) {\n indexes.push(index + 1);\n }\n index = str.indexOf(' ', (index + 1));\n }\n indexes.push(str.length);\n if ((indexes.indexOf(range.startOffset) >= 0)\n || ((indexes.indexOf(range.startOffset - 1) >= 0) && (range.startOffset !== 1\n || (range.startOffset === 1 && new RegExp('\\\\s').test(str[0])))\n || ((indexes[indexes.length - 1] - 1) === range.startOffset))) {\n cursorRange = range;\n this.position = 1;\n }\n else {\n var startOffset = this.GetCursorStart(indexes, range.startOffset, true);\n this.position = range.startOffset - startOffset;\n cursorRange.setStart(range.startContainer, startOffset);\n cursorRange.setEnd(range.startContainer, this.GetCursorStart(indexes, range.startOffset, false));\n }\n return cursorRange;\n };\n /**\n * GetCursorNode method\n *\n * @param {Document} docElement - specifies the document\n * @param {Range} range - specifies the range\n * @param {Node} node - specifies the node.\n * @returns {Node} - returns the node value\n * @hidden\n\n */\n NodeCutter.prototype.GetCursorNode = function (docElement, range, node) {\n return this.GetSpliceNode(this.GetCursorRange(docElement, range, node), node);\n };\n /**\n * TrimLineBreak method\n *\n * @param {string} line - specifies the string value.\n * @returns {string} - returns the string\n * @hidden\n\n */\n NodeCutter.prototype.TrimLineBreak = function (line) {\n return line.replace(/(\\r\\n\\t|\\n|\\r\\t)/gm, ' ');\n };\n return NodeCutter;\n}());\nexport { NodeCutter };\n","import * as EVENTS from './../../common/constant';\nimport { isNullOrUndefined as isNOU, detach, createElement, closest } from '@syncfusion/ej2-base';\nimport { isIDevice, setEditFrameFocus } from '../../common/util';\nimport { markerClassName } from './dom-node';\nimport { NodeCutter } from './nodecutter';\n/**\n * Formats internal component\n *\n * @hidden\n\n */\nvar Formats = /** @class */ (function () {\n /**\n * Constructor for creating the Formats plugin\n *\n * @param {EditorManager} parent - specifies the parent element.\n * @hidden\n\n */\n function Formats(parent) {\n this.parent = parent;\n this.addEventListener();\n }\n Formats.prototype.addEventListener = function () {\n this.parent.observer.on(EVENTS.FORMAT_TYPE, this.applyFormats, this);\n this.parent.observer.on(EVENTS.KEY_UP_HANDLER, this.onKeyUp, this);\n this.parent.observer.on(EVENTS.KEY_DOWN_HANDLER, this.onKeyDown, this);\n };\n Formats.prototype.getParentNode = function (node) {\n for (; node.parentNode && node.parentNode !== this.parent.editableElement; null) {\n node = node.parentNode;\n }\n return node;\n };\n Formats.prototype.onKeyUp = function (e) {\n var range = this.parent.nodeSelection.getRange(this.parent.currentDocument);\n var endCon = range.endContainer;\n var lastChild = endCon.lastChild;\n if (e.event.which === 13 && range.startContainer === endCon && endCon.nodeType !== 3) {\n var pTag = createElement('p');\n pTag.innerHTML = '
    ';\n if (!isNOU(lastChild) && lastChild && lastChild.nodeName === 'BR' && (lastChild.previousSibling && lastChild.previousSibling.nodeName === 'TABLE')) {\n endCon.replaceChild(pTag, lastChild);\n this.parent.nodeSelection.setCursorPoint(this.parent.currentDocument, pTag, 0);\n }\n else {\n var brNode = this.parent.nodeSelection.getSelectionNodeCollectionBr(range)[0];\n if (!isNOU(brNode) && brNode.nodeName === 'BR' && (brNode.previousSibling && brNode.previousSibling.nodeName === 'TABLE')) {\n endCon.replaceChild(pTag, brNode);\n this.parent.nodeSelection.setCursorPoint(this.parent.currentDocument, pTag, 0);\n }\n }\n }\n };\n Formats.prototype.onKeyDown = function (e) {\n if (e.event.which === 13) {\n var range = this.parent.nodeSelection.getRange(this.parent.currentDocument);\n var startCon = (range.startContainer.textContent.length === 0 || range.startContainer.nodeName === 'PRE')\n ? range.startContainer : range.startContainer.parentElement;\n var endCon = (range.endContainer.textContent.length === 0 || range.endContainer.nodeName === 'PRE')\n ? range.endContainer : range.endContainer.parentElement;\n var preElem = closest(startCon, 'pre');\n var endPreElem = closest(endCon, 'pre');\n var liParent = !isNOU(preElem) && !isNOU(preElem.parentElement) && preElem.parentElement.tagName === 'LI';\n if (liParent) {\n return;\n }\n if (((isNOU(preElem) && !isNOU(endPreElem)) || (!isNOU(preElem) && isNOU(endPreElem)))) {\n e.event.preventDefault();\n this.deleteContent(range);\n this.removeCodeContent(range);\n range = this.parent.nodeSelection.getRange(this.parent.currentDocument);\n this.parent.nodeSelection.setCursorPoint(this.parent.currentDocument, endCon, 0);\n }\n if (e.event.which === 13 && !isNOU(preElem) && !isNOU(endPreElem)) {\n e.event.preventDefault();\n this.deleteContent(range);\n this.removeCodeContent(range);\n range = this.parent.nodeSelection.getRange(this.parent.currentDocument);\n var lastEmpty = range.startContainer.childNodes[range.endOffset];\n var lastBeforeBr = range.startContainer.childNodes[range.endOffset - 1];\n var startParent = range.startContainer;\n if (!isNOU(lastEmpty) && !isNOU(lastBeforeBr) && isNOU(lastEmpty.nextSibling) &&\n lastEmpty.nodeName === 'BR' && lastBeforeBr.nodeName === 'BR') {\n this.paraFocus(range.startContainer, e.enterAction);\n }\n else if ((startParent.textContent.charCodeAt(0) === 8203 &&\n startParent.textContent.length === 1) || startParent.textContent.length === 0) {\n //Double enter with any parent tag for the node\n while (startParent.parentElement.nodeName !== 'PRE' &&\n (startParent.textContent.length === 1 || startParent.textContent.length === 0)) {\n startParent = startParent.parentElement;\n }\n if (!isNOU(startParent.previousSibling) && startParent.previousSibling.nodeName === 'BR' &&\n isNOU(startParent.nextSibling)) {\n this.paraFocus(startParent.parentElement);\n }\n else {\n this.isNotEndCursor(preElem, range);\n }\n }\n else {\n //Cursor at start and middle\n this.isNotEndCursor(preElem, range);\n }\n }\n }\n };\n Formats.prototype.removeCodeContent = function (range) {\n // eslint-disable-next-line\n var regEx = new RegExp(String.fromCharCode(65279), 'g');\n if (!isNOU(range.endContainer.textContent.match(regEx))) {\n var pointer = range.endContainer.textContent.charCodeAt(range.endOffset - 1) === 65279 ?\n range.endOffset - 2 : range.endOffset;\n range.endContainer.textContent = range.endContainer.textContent.replace(regEx, '');\n if (range.endContainer.textContent === '') {\n this.parent.nodeSelection.setCursorPoint(this.parent.currentDocument, range.endContainer.parentElement, 0);\n }\n else {\n this.parent.nodeSelection.setCursorPoint(this.parent.currentDocument, range.endContainer, pointer);\n }\n }\n };\n Formats.prototype.deleteContent = function (range) {\n if (range.startContainer !== range.endContainer || range.startOffset !== range.endOffset) {\n range.deleteContents();\n }\n };\n Formats.prototype.paraFocus = function (referNode, enterAction) {\n var insertTag;\n if (enterAction === 'DIV') {\n insertTag = createElement('div');\n insertTag.innerHTML = '
    ';\n }\n else if (enterAction === 'BR') {\n insertTag = createElement('br');\n }\n else {\n insertTag = createElement('p');\n insertTag.innerHTML = '
    ';\n }\n this.parent.domNode.insertAfter(insertTag, referNode);\n this.parent.nodeSelection.setCursorPoint(this.parent.currentDocument, insertTag, 0);\n detach(referNode.lastChild);\n };\n Formats.prototype.isNotEndCursor = function (preElem, range) {\n var nodeCutter = new NodeCutter();\n var isEnd = range.startOffset === preElem.lastChild.textContent.length &&\n preElem.lastChild.textContent === range.startContainer.textContent;\n //Cursor at start point\n if (preElem.textContent.indexOf(range.startContainer.textContent) === 0 &&\n ((range.startOffset === 0 && range.endOffset === 0) || range.startContainer.nodeName === 'PRE')) {\n this.insertMarker(preElem, range);\n var brTag = createElement('br');\n preElem.childNodes[range.endOffset].parentElement.insertBefore(brTag, preElem.childNodes[range.endOffset]);\n }\n else {\n //Cursor at middle\n var cloneNode = nodeCutter.SplitNode(range, preElem, true);\n this.insertMarker(preElem, range);\n var previousSib = preElem.previousElementSibling;\n if (previousSib.tagName === 'PRE') {\n previousSib.insertAdjacentHTML('beforeend', '
    ' + cloneNode.innerHTML);\n detach(preElem);\n }\n }\n //To place the cursor position\n this.setCursorPosition(isEnd, preElem);\n };\n Formats.prototype.setCursorPosition = function (isEnd, preElem) {\n var isEmpty = false;\n var markerElem = this.parent.editableElement.querySelector('.tempSpan');\n var mrkParentElem = markerElem.parentElement;\n // eslint-disable-next-line\n markerElem.parentNode.textContent === '' ? isEmpty = true :\n this.parent.nodeSelection.setCursorPoint(this.parent.currentDocument, markerElem, 0);\n if (isEnd) {\n if (isEmpty) {\n //Enter press when pre element is empty\n if (mrkParentElem === preElem) {\n this.parent.nodeSelection.setCursorPoint(this.parent.currentDocument, markerElem, 0);\n detach(markerElem);\n }\n else {\n this.focusSelectionParent(markerElem, mrkParentElem);\n }\n }\n else {\n var brElm = createElement('br');\n this.parent.domNode.insertAfter(brElm, markerElem);\n this.parent.nodeSelection.setCursorPoint(this.parent.currentDocument, markerElem, 0);\n detach(markerElem);\n }\n }\n else {\n // eslint-disable-next-line\n isEmpty ? this.focusSelectionParent(markerElem, mrkParentElem) : detach(markerElem);\n }\n };\n Formats.prototype.focusSelectionParent = function (markerElem, tempSpanPElem) {\n detach(markerElem);\n tempSpanPElem.innerHTML = '\\u200B';\n this.parent.nodeSelection.setCursorPoint(this.parent.currentDocument, tempSpanPElem, 0);\n };\n Formats.prototype.insertMarker = function (preElem, range) {\n var tempSpan = createElement('span', { className: 'tempSpan' });\n if (range.startContainer.nodeName === 'PRE') {\n preElem.childNodes[range.endOffset].parentElement.insertBefore(tempSpan, preElem.childNodes[range.endOffset]);\n }\n else {\n range.startContainer.parentElement.insertBefore(tempSpan, range.startContainer);\n }\n };\n Formats.prototype.applyFormats = function (e) {\n var range = this.parent.nodeSelection.getRange(this.parent.currentDocument);\n var isSelectAll = false;\n if (this.parent.editableElement === range.endContainer &&\n !isNOU(this.parent.editableElement.children[range.endOffset - 1]) &&\n this.parent.editableElement.children[range.endOffset - 1].tagName === 'TABLE' && !range.collapsed) {\n isSelectAll = true;\n }\n var save = this.parent.nodeSelection.save(range, this.parent.currentDocument);\n this.parent.domNode.setMarker(save);\n var formatsNodes = this.parent.domNode.blockNodes();\n if (e.enterAction === 'BR') {\n this.setSelectionBRConfig();\n var allSelectedNode = this.parent.nodeSelection.getSelectedNodes(this.parent.currentDocument);\n var selectedNodes = this.parent.nodeSelection.getSelectionNodes(allSelectedNode);\n var currentFormatNodes = [];\n if (selectedNodes.length === 0) {\n selectedNodes.push(formatsNodes[0]);\n }\n for (var i = 0; i < selectedNodes.length; i++) {\n var currentNode = selectedNodes[i];\n var previousCurrentNode = void 0;\n while (!this.parent.domNode.isBlockNode(currentNode) && currentNode !== this.parent.editableElement) {\n previousCurrentNode = currentNode;\n currentNode = currentNode.parentElement;\n }\n if (this.parent.domNode.isBlockNode(currentNode) && currentNode === this.parent.editableElement) {\n currentFormatNodes.push(previousCurrentNode);\n }\n }\n for (var i = 0; i < currentFormatNodes.length; i++) {\n if (!this.parent.domNode.isBlockNode(currentFormatNodes[i])) {\n var currentNode = currentFormatNodes[i];\n var previousNode = currentNode;\n while (currentNode === this.parent.editableElement) {\n previousNode = currentNode;\n currentNode = currentNode.parentElement;\n }\n var tempElem = void 0;\n if (this.parent.domNode.isBlockNode(previousNode.parentElement) &&\n previousNode.parentElement === this.parent.editableElement) {\n tempElem = createElement('div');\n previousNode.parentElement.insertBefore(tempElem, previousNode);\n tempElem.appendChild(previousNode);\n }\n else {\n tempElem = previousNode;\n }\n var preNode = tempElem.previousSibling;\n while (!isNOU(preNode) && preNode.nodeName !== 'BR' &&\n !this.parent.domNode.isBlockNode(preNode)) {\n tempElem.firstChild.parentElement.insertBefore(preNode, tempElem.firstChild);\n preNode = tempElem.previousSibling;\n }\n if (!isNOU(preNode) && preNode.nodeName === 'BR') {\n detach(preNode);\n }\n var postNode = tempElem.nextSibling;\n while (!isNOU(postNode) && postNode.nodeName !== 'BR' &&\n !this.parent.domNode.isBlockNode(postNode)) {\n tempElem.appendChild(postNode);\n postNode = tempElem.nextSibling;\n }\n if (!isNOU(postNode) && postNode.nodeName === 'BR') {\n detach(postNode);\n }\n }\n }\n this.setSelectionBRConfig();\n formatsNodes = this.parent.domNode.blockNodes();\n }\n for (var i = 0; i < formatsNodes.length; i++) {\n var parentNode = void 0;\n var replaceHTML = void 0;\n if (e.subCommand.toLowerCase() === 'blockquote') {\n parentNode = this.getParentNode(formatsNodes[i]);\n replaceHTML = this.parent.domNode.isList(parentNode) ||\n parentNode.tagName === 'TABLE' ? parentNode.outerHTML : parentNode.innerHTML;\n }\n else {\n parentNode = formatsNodes[i];\n replaceHTML = parentNode.innerHTML;\n }\n if ((e.subCommand.toLowerCase() === parentNode.tagName.toLowerCase() &&\n (e.subCommand.toLowerCase() !== 'pre' ||\n (!isNOU(e.exeValue) && e.exeValue.name === 'dropDownSelect'))) ||\n isNOU(parentNode.parentNode) ||\n (parentNode.tagName === 'TABLE' && e.subCommand.toLowerCase() === 'pre')) {\n continue;\n }\n this.cleanFormats(parentNode, e.subCommand);\n var replaceNode = (e.subCommand.toLowerCase() === 'pre' && parentNode.tagName.toLowerCase() === 'pre') ?\n 'p' : e.subCommand;\n var replaceTag = this.parent.domNode.createTagString(replaceNode, parentNode, replaceHTML.replace(/>\\s+<'));\n if (parentNode.tagName === 'LI') {\n parentNode.innerHTML = '';\n parentNode.insertAdjacentHTML('beforeend', replaceTag);\n }\n else {\n this.parent.domNode.replaceWith(parentNode, replaceTag);\n }\n }\n this.preFormatMerge();\n var startNode = this.parent.editableElement.querySelector('.' + markerClassName.startSelection);\n var endNode = this.parent.editableElement.querySelector('.' + markerClassName.endSelection);\n if (!isNOU(startNode) && !isNOU(endNode)) {\n startNode = startNode.lastChild;\n endNode = endNode.lastChild;\n }\n save = this.parent.domNode.saveMarker(save, null);\n if (isIDevice()) {\n setEditFrameFocus(this.parent.editableElement, e.selector);\n }\n if (isSelectAll) {\n this.parent.nodeSelection.setSelectionText(this.parent.currentDocument, startNode, endNode, 0, endNode.textContent.length);\n }\n else {\n save.restore();\n }\n if (e.callBack) {\n e.callBack({\n requestType: e.subCommand,\n editorMode: 'HTML',\n event: e.event,\n range: this.parent.nodeSelection.getRange(this.parent.currentDocument),\n elements: this.parent.domNode.blockNodes()\n });\n }\n };\n Formats.prototype.setSelectionBRConfig = function () {\n var startElem = this.parent.editableElement.querySelector('.' + markerClassName.startSelection);\n var endElem = this.parent.editableElement.querySelector('.' + markerClassName.endSelection);\n if (isNOU(endElem)) {\n this.parent.nodeSelection.setCursorPoint(this.parent.currentDocument, startElem, 0);\n }\n else {\n this.parent.nodeSelection.setSelectionText(this.parent.currentDocument, startElem, endElem, 0, 0);\n }\n };\n Formats.prototype.preFormatMerge = function () {\n var preNodes = this.parent.editableElement.querySelectorAll('PRE');\n if (!isNOU(preNodes)) {\n for (var i = 0; i < preNodes.length; i++) {\n var previousSib = preNodes[i].previousElementSibling;\n if (!isNOU(previousSib) && previousSib.tagName === 'PRE') {\n previousSib.insertAdjacentHTML('beforeend', '
    ' + preNodes[i].innerHTML);\n detach(preNodes[i]);\n }\n }\n }\n };\n Formats.prototype.cleanFormats = function (element, tagName) {\n var ignoreAttr = ['display', 'font-size', 'margin-top', 'margin-bottom', 'margin-left', 'margin-right', 'font-weight'];\n tagName = tagName.toLowerCase();\n for (var i = 0; i < ignoreAttr.length && (tagName !== 'p' && tagName !== 'blockquote' && tagName !== 'pre'); i++) {\n element.style.removeProperty(ignoreAttr[i]);\n }\n };\n return Formats;\n}());\nexport { Formats };\n","import { NodeSelection } from './../../selection/index';\nimport { NodeCutter } from './nodecutter';\nimport * as CONSTANT from './../base/constant';\nimport { detach, Browser, isNullOrUndefined as isNOU, createElement, closest } from '@syncfusion/ej2-base';\nimport { InsertMethods } from './insert-methods';\nimport { updateTextNode } from './../../common/util';\n/**\n * Insert a HTML Node or Text\n *\n * @hidden\n\n */\nvar InsertHtml = /** @class */ (function () {\n function InsertHtml() {\n }\n InsertHtml.Insert = function (docElement, insertNode, editNode, isExternal, enterAction) {\n var node;\n if (typeof insertNode === 'string') {\n var divNode = document.createElement('div');\n divNode.innerHTML = insertNode;\n node = isExternal ? divNode : divNode.firstChild;\n }\n else {\n if (isExternal && !(!isNOU(insertNode) && !isNOU(insertNode.classList) &&\n insertNode.classList.contains('pasteContent'))) {\n var divNode = document.createElement('div');\n divNode.appendChild(insertNode);\n node = divNode;\n }\n else {\n node = insertNode;\n }\n }\n var nodeSelection = new NodeSelection();\n var nodeCutter = new NodeCutter();\n var range = nodeSelection.getRange(docElement);\n if (range.startContainer === editNode && range.startContainer === range.endContainer && range.startOffset === 0 &&\n range.startOffset === range.endOffset && editNode.textContent.length === 0 &&\n (editNode.children[0].tagName === 'P' || (editNode.children[0].tagName === 'BR'))) {\n nodeSelection.setSelectionText(docElement, range.startContainer.children[0], range.startContainer.children[0], 0, 0);\n range = nodeSelection.getRange(docElement);\n }\n if (range.startContainer.nodeName === 'BR' && range.startOffset === 0 && range.startOffset === range.endOffset &&\n range.startContainer === range.endContainer) {\n var currentIndex = Array.prototype.slice.call(range.startContainer.parentElement.childNodes).indexOf(range.startContainer);\n nodeSelection.setSelectionText(docElement, range.startContainer.parentElement, range.startContainer.parentElement, currentIndex, currentIndex);\n range = nodeSelection.getRange(docElement);\n }\n var isCursor = range.startOffset === range.endOffset && range.startOffset === 0 &&\n range.startContainer === range.endContainer;\n var isCollapsed = range.collapsed;\n var nodes = this.getNodeCollection(range, nodeSelection, node);\n var closestParentNode = (node.nodeName.toLowerCase() === 'table') ? this.closestEle(nodes[0].parentNode, editNode) : nodes[0];\n if (isExternal || (!isNOU(node) && !isNOU(node.classList) &&\n node.classList.contains('pasteContent'))) {\n this.pasteInsertHTML(nodes, node, range, nodeSelection, nodeCutter, docElement, isCollapsed, closestParentNode, editNode, enterAction);\n return;\n }\n if (editNode !== range.startContainer && ((!isCollapsed && !(closestParentNode.nodeType === Node.ELEMENT_NODE &&\n CONSTANT.TABLE_BLOCK_TAGS.indexOf(closestParentNode.tagName.toLocaleLowerCase()) !== -1))\n || (node.nodeName.toLowerCase() === 'table' && closestParentNode &&\n CONSTANT.TABLE_BLOCK_TAGS.indexOf(closestParentNode.tagName.toLocaleLowerCase()) === -1))) {\n var preNode = nodeCutter.GetSpliceNode(range, closestParentNode);\n var sibNode = preNode.previousSibling;\n var parentNode = preNode.parentNode;\n if (nodes.length === 1 || (node.nodeName.toLowerCase() === 'table' && preNode.childElementCount === 0)) {\n nodeSelection.setSelectionContents(docElement, preNode);\n range = nodeSelection.getRange(docElement);\n }\n else {\n var lasNode = nodeCutter.GetSpliceNode(range, nodes[nodes.length - 1].parentElement);\n lasNode = isNOU(lasNode) ? preNode : lasNode;\n nodeSelection.setSelectionText(docElement, preNode, lasNode, 0, (lasNode.nodeType === 3) ?\n lasNode.textContent.length : lasNode.childNodes.length);\n range = nodeSelection.getRange(docElement);\n }\n range.extractContents();\n if (insertNode.tagName === 'TABLE') {\n this.removeEmptyElements(editNode);\n }\n for (var index = 0; index < nodes.length; index++) {\n if (nodes[index].nodeType !== 3 && nodes[index].parentNode != null) {\n if (nodes[index].nodeName === 'IMG') {\n continue;\n }\n nodes[index].parentNode.removeChild(nodes[index]);\n }\n }\n if (sibNode) {\n InsertMethods.AppendBefore(node, sibNode, true);\n }\n else {\n var previousNode = null;\n while (parentNode !== editNode && parentNode.firstChild &&\n (parentNode.textContent.trim() === '')) {\n var parentNode1 = parentNode.parentNode;\n previousNode = parentNode;\n parentNode = parentNode1;\n }\n if (previousNode !== null) {\n parentNode = previousNode;\n }\n if (parentNode.firstChild && (parentNode !== editNode ||\n (node.nodeName === 'TABLE' && isCursor && parentNode === range.startContainer &&\n parentNode === range.endContainer))) {\n if (parentNode.textContent.trim() === '' && parentNode !== editNode) {\n InsertMethods.AppendBefore(node, parentNode, false);\n detach(parentNode);\n }\n else {\n InsertMethods.AppendBefore(node, parentNode.firstChild, false);\n }\n }\n else {\n parentNode.appendChild(node);\n }\n }\n if (node.nodeName === 'IMG') {\n this.imageFocus(node, nodeSelection, docElement);\n }\n else if (node.nodeType !== 3) {\n nodeSelection.setSelectionText(docElement, node, node, 0, node.childNodes.length);\n }\n else {\n nodeSelection.setSelectionText(docElement, node, node, 0, node.textContent.length);\n }\n }\n else {\n range.deleteContents();\n if (isCursor && range.startContainer.textContent === '' && range.startContainer.nodeName !== 'BR') {\n range.startContainer.innerHTML = '';\n }\n if (Browser.isIE) {\n var frag = docElement.createDocumentFragment();\n frag.appendChild(node);\n range.insertNode(frag);\n }\n else if (range.startContainer.nodeType === 1 && range.startContainer.nodeName.toLowerCase() === 'hr'\n && range.endContainer.nodeName.toLowerCase() === 'hr') {\n var paraElem = range.startContainer.nextElementSibling;\n if (paraElem) {\n if (paraElem.querySelector('br')) {\n detach(paraElem.querySelector('br'));\n }\n paraElem.appendChild(node);\n }\n }\n else {\n if (range.startContainer.nodeName === 'BR') {\n range.startContainer.parentElement.insertBefore(node, range.startContainer);\n }\n else {\n range.insertNode(node);\n }\n }\n if (node.nodeType !== 3 && node.childNodes.length > 0) {\n nodeSelection.setSelectionText(docElement, node, node, 1, 1);\n }\n else if (node.nodeName === 'IMG') {\n this.imageFocus(node, nodeSelection, docElement);\n }\n else if (node.nodeType !== 3) {\n nodeSelection.setSelectionContents(docElement, node);\n }\n else {\n nodeSelection.setSelectionText(docElement, node, node, node.textContent.length, node.textContent.length);\n }\n }\n };\n InsertHtml.pasteInsertHTML = function (nodes, node, range, nodeSelection, nodeCutter, docElement, isCollapsed, closestParentNode, editNode, enterAction) {\n var isCursor = range.startOffset === range.endOffset &&\n range.startContainer === range.endContainer;\n if (isCursor && range.startContainer === editNode && editNode.textContent === '') {\n var currentBlockNode = this.getImmediateBlockNode(nodes[nodes.length - 1], editNode);\n nodeSelection.setSelectionText(docElement, currentBlockNode, currentBlockNode, 0, 0);\n range = nodeSelection.getRange(docElement);\n }\n var lasNode;\n var sibNode;\n var isSingleNode;\n var preNode;\n if (editNode !== range.startContainer && ((!isCollapsed && !(closestParentNode.nodeType === Node.ELEMENT_NODE &&\n CONSTANT.TABLE_BLOCK_TAGS.indexOf(closestParentNode.tagName.toLocaleLowerCase()) !== -1))\n || (node.nodeName.toLowerCase() === 'table' && closestParentNode &&\n CONSTANT.TABLE_BLOCK_TAGS.indexOf(closestParentNode.tagName.toLocaleLowerCase()) === -1))) {\n preNode = nodeCutter.GetSpliceNode(range, closestParentNode);\n sibNode = isNOU(preNode.previousSibling) ? preNode.parentNode.previousSibling : preNode.previousSibling;\n if (nodes.length === 1) {\n nodeSelection.setSelectionContents(docElement, preNode);\n range = nodeSelection.getRange(docElement);\n isSingleNode = true;\n }\n else {\n lasNode = nodeCutter.GetSpliceNode(range, nodes[nodes.length - 1].parentElement);\n lasNode = isNOU(lasNode) ? preNode : lasNode;\n nodeSelection.setSelectionText(docElement, preNode, lasNode, 0, (lasNode.nodeType === 3) ?\n lasNode.textContent.length : lasNode.childNodes.length);\n range = nodeSelection.getRange(docElement);\n isSingleNode = false;\n }\n }\n var containsBlockNode = false;\n this.removingComments(node);\n var allChildNodes = node.childNodes;\n for (var i = 0; i < allChildNodes.length; i++) {\n if (CONSTANT.BLOCK_TAGS.indexOf(allChildNodes[i].nodeName.toLocaleLowerCase()) >= 0) {\n containsBlockNode = true;\n break;\n }\n }\n var lastSelectionNode;\n var fragment = document.createDocumentFragment();\n if (!containsBlockNode) {\n if (!isCursor) {\n while (node.firstChild) {\n lastSelectionNode = node.firstChild;\n fragment.appendChild(node.firstChild);\n }\n if (isSingleNode) {\n preNode.parentNode.replaceChild(fragment, preNode);\n }\n else {\n range.deleteContents();\n if (!isNOU(lasNode)) {\n detach(lasNode);\n }\n // eslint-disable-next-line\n !isNOU(sibNode) ? sibNode.parentNode.appendChild(fragment) : editNode.appendChild(fragment);\n }\n }\n else {\n var tempSpan = createElement('span', { className: 'tempSpan' });\n var nearestAnchor = closest(range.startContainer.parentElement, 'a');\n if (range.startContainer.nodeType === 3 && nearestAnchor && closest(nearestAnchor, 'span')) {\n var immediateBlockNode = this.getImmediateBlockNode(range.startContainer, editNode);\n if (immediateBlockNode.querySelectorAll('br').length > 0) {\n detach(immediateBlockNode.querySelector('br'));\n }\n var rangeElement = closest(nearestAnchor, 'span');\n rangeElement.appendChild(tempSpan);\n }\n else {\n range.insertNode(tempSpan);\n }\n while (node.firstChild) {\n lastSelectionNode = node.firstChild;\n fragment.appendChild(node.firstChild);\n }\n tempSpan.parentNode.replaceChild(fragment, tempSpan);\n }\n }\n else {\n var parentElem = range.startContainer;\n while (!isNOU(parentElem) && parentElem.nodeName !== 'PRE' && parentElem !== editNode) {\n parentElem = parentElem.parentElement;\n }\n if (!isNOU(node) && !isNOU(parentElem) && parentElem.nodeName === 'PRE') {\n range.insertNode(node);\n lastSelectionNode = node.lastChild;\n }\n else {\n this.insertTempNode(range, node, nodes, nodeCutter, editNode);\n var isFirstTextNode = true;\n var isPreviousInlineElem = void 0;\n var paraElm = void 0;\n var previousParent = void 0;\n if (!this.contentsDeleted) {\n range.deleteContents();\n }\n while (node.firstChild) {\n if (node.firstChild.nodeName === '#text' && node.firstChild.textContent.trim() === '') {\n detach(node.firstChild);\n continue;\n }\n if (node.firstChild.nodeName === '#text' && isFirstTextNode ||\n (this.inlineNode.indexOf(node.firstChild.nodeName.toLocaleLowerCase()) >= 0 && isFirstTextNode)) {\n lastSelectionNode = node.firstChild;\n if (isNOU(node.previousElementSibling)) {\n var firstParaElm = createElement('p');\n node.parentElement.insertBefore(firstParaElm, node);\n }\n if (node.previousElementSibling.nodeName === 'BR') {\n node.parentElement.insertBefore(node.firstChild, node);\n }\n else {\n node.previousElementSibling.appendChild(node.firstChild);\n }\n }\n else {\n lastSelectionNode = node.firstChild;\n if (node.firstChild.nodeName === '#text' ||\n (this.inlineNode.indexOf(node.firstChild.nodeName.toLocaleLowerCase()) >= 0)) {\n if (!isPreviousInlineElem) {\n paraElm = createElement('p');\n paraElm.appendChild(node.firstChild);\n fragment.appendChild(paraElm);\n }\n else {\n previousParent.appendChild(node.firstChild);\n fragment.appendChild(previousParent);\n }\n previousParent = paraElm;\n isPreviousInlineElem = true;\n }\n else {\n fragment.appendChild(node.firstChild);\n isPreviousInlineElem = false;\n }\n isFirstTextNode = false;\n }\n }\n node.parentNode.replaceChild(fragment, node);\n }\n }\n if (lastSelectionNode.nodeName === '#text') {\n this.placeCursorEnd(lastSelectionNode, node, nodeSelection, docElement, editNode);\n }\n else {\n this.cursorPos(lastSelectionNode, node, nodeSelection, docElement, editNode, enterAction);\n }\n };\n InsertHtml.placeCursorEnd = function (lastSelectionNode, node, nodeSelection, docElement, editNode) {\n lastSelectionNode = lastSelectionNode.nodeName === 'BR' ? (isNOU(lastSelectionNode.previousSibling) ? lastSelectionNode.parentNode\n : lastSelectionNode.previousSibling) : lastSelectionNode;\n while (!isNOU(lastSelectionNode) && lastSelectionNode.nodeName !== '#text' && lastSelectionNode.nodeName !== 'IMG' &&\n lastSelectionNode.nodeName !== 'BR' && lastSelectionNode.nodeName !== 'HR') {\n lastSelectionNode = lastSelectionNode.lastChild;\n }\n lastSelectionNode = isNOU(lastSelectionNode) ? node : lastSelectionNode;\n if (lastSelectionNode.nodeName === 'IMG') {\n this.imageFocus(lastSelectionNode, nodeSelection, docElement);\n }\n else {\n nodeSelection.setSelectionText(docElement, lastSelectionNode, lastSelectionNode, lastSelectionNode.textContent.length, lastSelectionNode.textContent.length);\n }\n this.removeEmptyElements(editNode);\n };\n InsertHtml.getNodeCollection = function (range, nodeSelection, node) {\n var nodes = [];\n if (range.startOffset === range.endOffset && range.startContainer === range.endContainer &&\n range.startContainer.nodeName !== 'BR' && range.startContainer.childNodes.length > 0 &&\n (range.startContainer.nodeName === 'TD' || (range.startContainer.nodeType !== 3 &&\n node.classList && node.classList.contains('pasteContent')))) {\n nodes.push(range.startContainer.childNodes[range.endOffset]);\n }\n else {\n nodes = nodeSelection.getInsertNodeCollection(range);\n }\n return nodes;\n };\n InsertHtml.insertTempNode = function (range, node, nodes, nodeCutter, editNode) {\n if (range.startContainer === editNode && !isNOU(range.startContainer.childNodes[range.endOffset - 1]) &&\n range.startContainer.childNodes[range.endOffset - 1].nodeName === 'TABLE') {\n if (isNOU(range.startContainer.childNodes[range.endOffset - 1].nextSibling)) {\n range.startContainer.appendChild(node);\n }\n else {\n range.startContainer.insertBefore(node, range.startContainer.childNodes[range.endOffset - 1].nextSibling);\n }\n }\n else if (range.startContainer === editNode && !isNOU(range.startContainer.childNodes[range.endOffset]) &&\n range.startContainer.childNodes[range.endOffset].nodeName === 'TABLE') {\n range.startContainer.insertBefore(node, range.startContainer.childNodes[range.endOffset]);\n }\n else if (range.startContainer === range.endContainer && range.startContainer.nodeType !== 3\n && node.firstChild.nodeName === 'HR') {\n if (range.startContainer.classList.contains('e-content') || range.startContainer.nodeName === 'BODY') {\n range.startContainer.appendChild(node);\n }\n else {\n range.startContainer.parentNode.insertBefore(node, range.startContainer);\n }\n }\n else {\n var blockNode = this.getImmediateBlockNode(nodes[nodes.length - 1], editNode);\n if ((isNOU(blockNode) || isNOU(blockNode.parentElement)) && range.endContainer.nodeType !== 3) {\n blockNode = range.endContainer;\n range.setEnd(blockNode, range.endContainer.textContent.length);\n }\n if (blockNode.nodeName === 'BODY' && range.startContainer === range.endContainer && range.startContainer.nodeType === 1) {\n blockNode = range.startContainer;\n }\n if (blockNode.closest('LI') && node && node.firstElementChild &&\n ((node).firstElementChild.tagName === 'OL' || node.firstElementChild.tagName === 'UL')) {\n var liNode = void 0;\n while (node.firstElementChild.lastElementChild && node.firstElementChild.lastElementChild.tagName === 'LI') {\n liNode = node.firstElementChild.lastElementChild;\n liNode.style.removeProperty('margin-left');\n liNode.style.removeProperty('margin-top');\n liNode.style.removeProperty('margin-bottom');\n node.firstElementChild.insertAdjacentElement('afterend', liNode);\n }\n }\n if (blockNode.nodeName === 'TD' || blockNode.nodeName === 'TH' || blockNode.nodeName === 'TR') {\n var tempSpan = createElement('span', { className: 'tempSpan' });\n range.insertNode(tempSpan);\n tempSpan.parentNode.replaceChild(node, tempSpan);\n }\n else {\n var nodeSelection = new NodeSelection();\n var currentNode = this.getNodeCollection(range, nodeSelection, node)[this.getNodeCollection(range, nodeSelection, node).length - 1];\n var splitedElm = void 0;\n if ((currentNode.nodeName === 'BR' || currentNode.nodeName === 'HR' ||\n (currentNode.nodeName === '#text' && !isNOU(currentNode.parentElement) && currentNode.parentElement.nodeName === 'LI')) &&\n (!isNOU(currentNode.parentElement) && currentNode.parentElement.textContent.trim().length === 0)) {\n splitedElm = currentNode;\n if (currentNode.parentElement.nodeName === 'LI' && !isNOU(currentNode.nextSibling) &&\n currentNode.nextSibling.nodeName === 'BR') {\n detach(currentNode.nextSibling);\n }\n }\n else if ((currentNode.nodeName === '#text' || currentNode.nodeName === 'BR') && !isNOU(currentNode.parentElement) &&\n (currentNode.parentElement.nodeName === 'LI' || (blockNode === editNode && currentNode.parentElement === blockNode)) &&\n currentNode.parentElement.textContent.trim().length > 0) {\n splitedElm = currentNode;\n if (currentNode.parentElement.nodeName === 'LI' && !isNOU(currentNode.nextSibling) &&\n currentNode.nextSibling.nodeName === 'BR') {\n detach(currentNode.nextSibling);\n }\n if (!range.collapsed) {\n range.deleteContents();\n }\n range.insertNode(node);\n this.contentsDeleted = true;\n return;\n }\n else {\n splitedElm = nodeCutter.GetSpliceNode(range, blockNode);\n }\n splitedElm.parentNode.replaceChild(node, splitedElm);\n }\n }\n };\n InsertHtml.cursorPos = function (lastSelectionNode, node, nodeSelection, docElement, editNode, enterAction) {\n lastSelectionNode.classList.add('lastNode');\n editNode.innerHTML = updateTextNode(editNode.innerHTML, enterAction);\n lastSelectionNode = editNode.querySelector('.lastNode');\n if (!isNOU(lastSelectionNode)) {\n this.placeCursorEnd(lastSelectionNode, node, nodeSelection, docElement, editNode);\n lastSelectionNode.classList.remove('lastNode');\n if (lastSelectionNode.classList.length === 0) {\n lastSelectionNode.removeAttribute('class');\n }\n }\n };\n InsertHtml.imageFocus = function (node, nodeSelection, docElement) {\n var focusNode = document.createTextNode(' ');\n node.parentNode.insertBefore(focusNode, node.nextSibling);\n nodeSelection.setSelectionText(docElement, node.nextSibling, node.nextSibling, 0, 0);\n };\n // eslint-disable-next-line\n InsertHtml.getImmediateBlockNode = function (node, editNode) {\n do {\n node = node.parentNode;\n } while (node && CONSTANT.BLOCK_TAGS.indexOf(node.nodeName.toLocaleLowerCase()) < 0);\n return node;\n };\n InsertHtml.removingComments = function (elm) {\n var innerElement = elm.innerHTML;\n innerElement = innerElement.replace(//g, '');\n elm.innerHTML = innerElement;\n };\n InsertHtml.findDetachEmptyElem = function (element) {\n var removableElement;\n if (!isNOU(element.parentElement)) {\n if (element.parentElement.textContent.trim() === '' && element.parentElement.contentEditable !== 'true') {\n removableElement = this.findDetachEmptyElem(element.parentElement);\n }\n else {\n removableElement = element;\n }\n }\n else {\n removableElement = null;\n }\n return removableElement;\n };\n InsertHtml.removeEmptyElements = function (element) {\n var emptyElements = element.querySelectorAll(':empty');\n for (var i = 0; i < emptyElements.length; i++) {\n if (CONSTANT.SELF_CLOSING_TAGS.indexOf(emptyElements[i].tagName.toLowerCase()) < 0) {\n var detachableElement = this.findDetachEmptyElem(emptyElements[i]);\n if (!isNOU(detachableElement)) {\n detach(detachableElement);\n }\n }\n }\n };\n InsertHtml.closestEle = function (element, editNode) {\n var el = element;\n while (el && el.nodeType === 1) {\n if (el.parentNode === editNode ||\n (!isNOU(el.parentNode.tagName) &&\n CONSTANT.IGNORE_BLOCK_TAGS.indexOf(el.parentNode.tagName.toLocaleLowerCase()) !== -1)) {\n return el;\n }\n el = el.parentNode;\n }\n return null;\n };\n /**\n * Insert method\n *\n * @hidden\n\n */\n InsertHtml.inlineNode = ['a', 'abbr', 'acronym', 'audio', 'b', 'bdi', 'bdo', 'big', 'br', 'button',\n 'canvas', 'cite', 'code', 'data', 'datalist', 'del', 'dfn', 'em', 'embed', 'font', 'i', 'iframe', 'img', 'input',\n 'ins', 'kbd', 'label', 'map', 'mark', 'meter', 'noscript', 'object', 'output', 'picture', 'progress',\n 'q', 'ruby', 's', 'samp', 'script', 'select', 'slot', 'small', 'span', 'strong', 'sub', 'sup', 'svg',\n 'template', 'textarea', 'time', 'u', 'tt', 'var', 'video', 'wbr'];\n InsertHtml.contentsDeleted = false;\n return InsertHtml;\n}());\nexport { InsertHtml };\n","import * as CONSTANT from './../base/constant';\nimport { NodeSelection } from '../../selection/selection';\nimport { NodeCutter } from './nodecutter';\nimport { InsertHtml } from './inserthtml';\nimport { createElement, isNullOrUndefined as isNOU, closest } from '@syncfusion/ej2-base';\n/**\n * Link internal component\n *\n * @hidden\n\n */\nvar LinkCommand = /** @class */ (function () {\n /**\n * Constructor for creating the Formats plugin\n *\n * @param {EditorManager} parent - specifies the editor manager\n * @hidden\n\n */\n function LinkCommand(parent) {\n this.parent = parent;\n this.addEventListener();\n }\n LinkCommand.prototype.addEventListener = function () {\n this.parent.observer.on(CONSTANT.LINK, this.linkCommand, this);\n };\n LinkCommand.prototype.linkCommand = function (e) {\n switch (e.value.toString().toLocaleLowerCase()) {\n case 'createlink':\n case 'editlink':\n this.createLink(e);\n break;\n case 'openlink':\n this.openLink(e);\n break;\n case 'removelink':\n this.removeLink(e);\n break;\n }\n };\n LinkCommand.prototype.createLink = function (e) {\n var closestAnchor = (!isNOU(e.item.selectParent) && e.item.selectParent.length > 0) &&\n closest(e.item.selectParent[0], 'a');\n closestAnchor = !isNOU(closestAnchor) ? closestAnchor :\n (!isNOU(e.item.selectParent) && e.item.selectParent.length > 0) ? (e.item.selectParent[0]) : null;\n if (!isNOU(closestAnchor) && closestAnchor.tagName === 'A') {\n var anchorEle = closestAnchor;\n var linkText = '';\n if (!isNOU(e.item.url)) {\n anchorEle.setAttribute('href', e.item.url);\n }\n if (!isNOU(e.item.title)) {\n anchorEle.setAttribute('title', e.item.title);\n }\n if (!isNOU(e.item.text) && e.item.text !== '') {\n linkText = anchorEle.innerText;\n anchorEle.innerText = e.item.text;\n }\n if (!isNOU(e.item.target)) {\n anchorEle.setAttribute('target', e.item.target);\n }\n else {\n anchorEle.removeAttribute('target');\n }\n if (linkText === e.item.text) {\n e.item.selection.setSelectionText(this.parent.currentDocument, anchorEle, anchorEle, 1, 1);\n e.item.selection.restore();\n }\n else {\n var startIndex = e.item.action === 'Paste' ? anchorEle.childNodes[0].textContent.length : 0;\n e.item.selection.setSelectionText(this.parent.currentDocument, anchorEle.childNodes[0], anchorEle.childNodes[0], startIndex, anchorEle.childNodes[0].textContent.length);\n }\n }\n else {\n var domSelection = new NodeSelection();\n var range = domSelection.getRange(this.parent.currentDocument);\n if (range.endContainer.nodeName === '#text' && range.startContainer.textContent.length === (range.endOffset + 1) &&\n range.endContainer.textContent.charAt(range.endOffset) === ' ' && range.endContainer.nextSibling.nodeName === 'A') {\n domSelection.setSelectionText(this.parent.currentDocument, range.startContainer, range.endContainer, range.startOffset, range.endOffset + 1);\n range = domSelection.getRange(this.parent.currentDocument);\n }\n var text = isNOU(e.item.text) ? true : e.item.text.replace(/ /g, '').localeCompare(range.toString()\n .replace(/\\n/g, ' ').replace(/ /g, '')) < 0;\n if (e.event && e.event.type === 'keydown' && (e.event.keyCode === 32\n || e.event.keyCode === 13) || e.item.action === 'Paste' || range.collapsed || text) {\n var anchor = this.createAchorNode(e);\n anchor.innerText = e.item.text === '' ? e.item.url : e.item.text;\n e.item.selection.restore();\n InsertHtml.Insert(this.parent.currentDocument, anchor, this.parent.editableElement);\n if (e.event && e.event.type === 'keydown' && (e.event.keyCode === 32\n || e.event.keyCode === 13)) {\n var startContainer = e.item.selection.range.startContainer;\n startContainer.textContent = this.removeText(startContainer.textContent, e.item.text);\n }\n else {\n var startIndex = e.item.action === 'Paste' ? anchor.childNodes[0].textContent.length : 0;\n e.item.selection.setSelectionText(this.parent.currentDocument, anchor.childNodes[0], anchor.childNodes[0], startIndex, anchor.childNodes[0].textContent.length);\n }\n }\n else {\n this.createLinkNode(e);\n }\n }\n if (e.callBack) {\n e.callBack({\n requestType: 'Links',\n editorMode: 'HTML',\n event: e.event,\n range: this.parent.nodeSelection.getRange(this.parent.currentDocument),\n elements: this.parent.nodeSelection.getSelectedNodes(this.parent.currentDocument)\n });\n }\n };\n LinkCommand.prototype.createLinkNode = function (e) {\n var domSelection = new NodeSelection();\n var nodeCutter = new NodeCutter();\n var range = domSelection.getRange(this.parent.currentDocument);\n var nodes = this.getSelectionNodes(domSelection.getNodeCollection(range));\n var save = domSelection.save(range, this.parent.currentDocument);\n var txtArray = [];\n var inlineNodes = [];\n var currentNode;\n var removeNodes = [];\n var anchorNodes = [];\n var finalinlineNodes = [];\n var cloneNode;\n for (var index = 0; index < nodes.length; index++) {\n nodes[index] = nodeCutter.GetSpliceNode(range, nodes[index]);\n txtArray[index] = nodes[index];\n }\n for (var i = 0; i < txtArray.length; i++) {\n var check = true;\n currentNode = txtArray[i];\n while (check === true) {\n if (currentNode.parentNode.nodeName === 'A') {\n var anchorEle = currentNode.parentNode;\n currentNode.parentNode.parentNode.insertBefore(anchorEle.firstChild, anchorEle);\n currentNode.parentNode.removeChild(anchorEle);\n }\n if (this.isBlockNode(currentNode.parentNode) || txtArray.length === 0 || i === 0 || i === txtArray.length - 1\n || range.startContainer.nodeType === 3) {\n inlineNodes[i] = currentNode;\n check = false;\n }\n else {\n currentNode = currentNode.parentNode;\n }\n }\n }\n for (var i = 0, j_1 = 0; i < inlineNodes.length; i++) {\n if (i === 0) {\n finalinlineNodes[j_1] = inlineNodes[i];\n }\n if (inlineNodes.length > 1 && i < inlineNodes.length - 1) {\n if ((inlineNodes[i].parentElement === inlineNodes[i + 1].parentElement) &&\n (inlineNodes[i] === inlineNodes[i + 1])) {\n continue;\n }\n else {\n finalinlineNodes[j_1 + 1] = inlineNodes[i + 1];\n j_1++;\n }\n }\n }\n var j = 0;\n anchorNodes[j] = this.createAchorNode(e);\n for (var i = 0; i < finalinlineNodes.length; i++) {\n if (i === 0) {\n cloneNode = finalinlineNodes[i].cloneNode(true);\n anchorNodes[i].appendChild(cloneNode);\n }\n if (i < finalinlineNodes.length - 1) {\n if (finalinlineNodes[i].parentNode === finalinlineNodes[i + 1].parentNode) {\n var cln = finalinlineNodes[i + 1].cloneNode(true);\n anchorNodes[j].appendChild(cln);\n }\n else {\n j = j + 1;\n anchorNodes[j] = this.createAchorNode(e);\n cloneNode = finalinlineNodes[i + 1].cloneNode(true);\n anchorNodes[j].appendChild(cloneNode);\n }\n }\n }\n this.parent.nodeSelection.setRange(document, save.range);\n for (var i = 0, j_2 = 0, k = 0; i <= finalinlineNodes.length; i++) {\n if (i === 0) {\n finalinlineNodes[i].parentNode.insertBefore(anchorNodes[j_2], finalinlineNodes[i].nextSibling);\n if (this.parent.domNode.blockNodes().length === 1) {\n this.parent.nodeSelection.setSelectionNode(this.parent.currentDocument, anchorNodes[j_2]);\n }\n removeNodes[k] = finalinlineNodes[i];\n k++;\n }\n if (i < finalinlineNodes.length - 1) {\n if (finalinlineNodes[i].parentNode === finalinlineNodes[i + 1].parentNode) {\n removeNodes[k] = finalinlineNodes[i + 1];\n k++;\n }\n else {\n j_2 = j_2 + 1;\n finalinlineNodes[i + 1].parentNode.insertBefore(anchorNodes[j_2], finalinlineNodes[i + 1]);\n removeNodes[k] = finalinlineNodes[i + 1];\n k++;\n }\n }\n }\n for (var i = 0; i < removeNodes.length; i++) {\n if (removeNodes[i].parentNode) {\n removeNodes[i].parentNode.removeChild(removeNodes[i]);\n }\n }\n };\n LinkCommand.prototype.createAchorNode = function (e) {\n var anchorEle = createElement('a', {\n className: 'e-rte-anchor',\n attrs: {\n href: e.item.url,\n title: isNOU(e.item.title) || e.item.title === '' ? e.item.url : e.item.title\n }\n });\n if (!isNOU(e.item.target)) {\n anchorEle.setAttribute('target', e.item.target);\n }\n return anchorEle;\n };\n LinkCommand.prototype.getSelectionNodes = function (nodeCollection) {\n nodeCollection = nodeCollection.reverse();\n for (var index = 0; index < nodeCollection.length; index++) {\n if (nodeCollection[index].nodeType !== 3 || nodeCollection[index].textContent.trim() === '') {\n if (nodeCollection[index].nodeName !== 'IMG') {\n nodeCollection.splice(index, 1);\n index--;\n }\n }\n }\n return nodeCollection.reverse();\n };\n LinkCommand.prototype.isBlockNode = function (element) {\n return (!!element && (element.nodeType === Node.ELEMENT_NODE && CONSTANT.BLOCK_TAGS.indexOf(element.tagName.toLowerCase()) >= 0));\n };\n LinkCommand.prototype.removeText = function (text, val) {\n var arr = text.split(' ');\n for (var i = 0; i < arr.length; i++) {\n if (arr[i] === val) {\n arr.splice(i, 1);\n i--;\n }\n }\n return arr.join(' ') + ' ';\n };\n LinkCommand.prototype.openLink = function (e) {\n document.defaultView.open(e.item.url, e.item.target);\n this.callBack(e);\n };\n LinkCommand.prototype.removeLink = function (e) {\n var blockNodes = this.parent.domNode.blockNodes();\n if (blockNodes.length < 2) {\n this.parent.domNode.setMarker(e.item.selection);\n var closestAnchor = closest(e.item.selectParent[0], 'a');\n var selectParent = closestAnchor ? closestAnchor : e.item.selectParent[0];\n var parent_1 = selectParent.parentNode;\n var child = [];\n for (; selectParent.firstChild; null) {\n child.push(parent_1.insertBefore(selectParent.firstChild, selectParent));\n }\n parent_1.removeChild(selectParent);\n if (child && child.length === 1) {\n e.item.selection.startContainer = e.item.selection.getNodeArray(child[child.length - 1], true);\n e.item.selection.endContainer = e.item.selection.startContainer;\n }\n e.item.selection = this.parent.domNode.saveMarker(e.item.selection);\n }\n else {\n for (var i = 0; i < blockNodes.length; i++) {\n var linkNode = blockNodes[i].querySelectorAll('a');\n for (var j = 0; j < linkNode.length; j++) {\n if (document.getSelection().containsNode(linkNode[j], true)) {\n linkNode[j].outerHTML = linkNode[j].innerHTML;\n }\n }\n }\n }\n e.item.selection.restore();\n this.callBack(e);\n };\n LinkCommand.prototype.callBack = function (e) {\n if (e.callBack) {\n e.callBack({\n requestType: e.item.subCommand,\n editorMode: 'HTML',\n event: e.event,\n range: this.parent.nodeSelection.getRange(this.parent.currentDocument),\n elements: this.parent.nodeSelection.getSelectedNodes(this.parent.currentDocument)\n });\n }\n };\n return LinkCommand;\n}());\nexport { LinkCommand };\n","import * as CONSTANT from './../base/constant';\nimport { setStyleAttribute, closest } from '@syncfusion/ej2-base';\nimport * as EVENTS from './../../common/constant';\nimport { isIDevice, setEditFrameFocus } from '../../common/util';\n/**\n * Formats internal component\n *\n * @hidden\n\n */\nvar Alignments = /** @class */ (function () {\n /**\n * Constructor for creating the Formats plugin\n *\n * @param {EditorManager} parent - specifies the parent element.\n * @returns {void}\n * @hidden\n\n */\n function Alignments(parent) {\n this.alignments = {\n 'JustifyLeft': 'left',\n 'JustifyCenter': 'center',\n 'JustifyRight': 'right',\n 'JustifyFull': 'justify'\n };\n this.parent = parent;\n this.addEventListener();\n }\n Alignments.prototype.addEventListener = function () {\n this.parent.observer.on(CONSTANT.ALIGNMENT_TYPE, this.applyAlignment, this);\n this.parent.observer.on(EVENTS.KEY_DOWN_HANDLER, this.onKeyDown, this);\n };\n Alignments.prototype.onKeyDown = function (e) {\n switch (e.event.action) {\n case 'justify-center':\n this.applyAlignment({ subCommand: 'JustifyCenter', callBack: e.callBack });\n e.event.preventDefault();\n break;\n case 'justify-full':\n this.applyAlignment({ subCommand: 'JustifyFull', callBack: e.callBack });\n e.event.preventDefault();\n break;\n case 'justify-left':\n this.applyAlignment({ subCommand: 'JustifyLeft', callBack: e.callBack });\n e.event.preventDefault();\n break;\n case 'justify-right':\n this.applyAlignment({ subCommand: 'JustifyRight', callBack: e.callBack });\n e.event.preventDefault();\n break;\n }\n };\n Alignments.prototype.getTableNode = function (range) {\n var startNode = range.startContainer.nodeType === Node.ELEMENT_NODE\n ? range.startContainer : range.startContainer.parentNode;\n var cellNode = closest(startNode, 'td,th');\n return [cellNode];\n };\n Alignments.prototype.applyAlignment = function (e) {\n var isTableAlign = e.value === 'Table' ? true : false;\n var range = this.parent.nodeSelection.getRange(this.parent.currentDocument);\n var save = this.parent.nodeSelection.save(range, this.parent.currentDocument);\n if (!isTableAlign) {\n this.parent.domNode.setMarker(save);\n var alignmentNodes = this.parent.domNode.blockNodes();\n for (var i = 0; i < alignmentNodes.length; i++) {\n var parentNode = alignmentNodes[i];\n setStyleAttribute(parentNode, { 'text-align': this.alignments[e.subCommand] });\n }\n var imageTags = this.parent.domNode.getImageTagInSelection();\n for (var i = 0; i < imageTags.length; i++) {\n var elementNode = [];\n elementNode.push(imageTags[i]);\n this.parent.imgObj.imageCommand({\n item: {\n selectNode: elementNode\n },\n subCommand: e.subCommand,\n value: e.subCommand,\n callBack: e.callBack,\n selector: e.selector\n });\n }\n this.parent.editableElement.focus();\n save = this.parent.domNode.saveMarker(save);\n if (isIDevice()) {\n setEditFrameFocus(this.parent.editableElement, e.selector);\n }\n save.restore();\n }\n else {\n setStyleAttribute(this.getTableNode(range)[0], { 'text-align': this.alignments[e.subCommand] });\n }\n if (e.callBack) {\n e.callBack({\n requestType: e.subCommand,\n editorMode: 'HTML',\n event: e.event,\n range: this.parent.nodeSelection.getRange(this.parent.currentDocument),\n elements: (isTableAlign ? this.getTableNode(range) : this.parent.domNode.blockNodes())\n });\n }\n };\n return Alignments;\n}());\nexport { Alignments };\n","import * as CONSTANT from './../base/constant';\nimport * as EVENTS from './../../common/constant';\nimport { isIDevice, setEditFrameFocus } from '../../common/util';\n/**\n * Indents internal component\n *\n * @hidden\n\n */\nvar Indents = /** @class */ (function () {\n /**\n * Constructor for creating the Formats plugin\n *\n * @param {EditorManager} parent - specifies the parent element\n * @hidden\n\n */\n function Indents(parent) {\n this.indentValue = 20;\n this.parent = parent;\n this.addEventListener();\n }\n Indents.prototype.addEventListener = function () {\n this.parent.observer.on(CONSTANT.INDENT_TYPE, this.applyIndents, this);\n this.parent.observer.on(EVENTS.KEY_DOWN_HANDLER, this.onKeyDown, this);\n };\n Indents.prototype.onKeyDown = function (e) {\n switch (e.event.action) {\n case 'indents':\n this.applyIndents({ subCommand: 'Indent', callBack: e.callBack });\n e.event.preventDefault();\n break;\n case 'outdents':\n this.applyIndents({ subCommand: 'Outdent', callBack: e.callBack });\n e.event.preventDefault();\n break;\n }\n };\n Indents.prototype.applyIndents = function (e) {\n var editEle = this.parent.editableElement;\n var isRtl = editEle.classList.contains('e-rtl');\n var range = this.parent.nodeSelection.getRange(this.parent.currentDocument);\n var save = this.parent.nodeSelection.save(range, this.parent.currentDocument);\n this.parent.domNode.setMarker(save);\n var indentsNodes = this.parent.domNode.blockNodes();\n var parentNodes = indentsNodes.slice();\n var listsNodes = [];\n for (var i = 0; i < parentNodes.length; i++) {\n if (parentNodes[i].tagName !== 'LI' && 'LI' === parentNodes[i].parentNode.tagName) {\n indentsNodes.splice(indentsNodes.indexOf(parentNodes[i]), 1);\n listsNodes.push(parentNodes[i].parentNode);\n }\n else if (parentNodes[i].tagName === 'LI') {\n indentsNodes.splice(indentsNodes.indexOf(parentNodes[i]), 1);\n listsNodes.push(parentNodes[i]);\n }\n }\n if (listsNodes.length > 0) {\n this.parent.observer.notify(EVENTS.KEY_DOWN_HANDLER, {\n event: {\n preventDefault: function () {\n return;\n },\n stopPropagation: function () {\n return;\n },\n shiftKey: (e.subCommand === 'Indent' ? false : true),\n which: 9,\n action: 'indent'\n },\n ignoreDefault: true\n });\n }\n for (var i = 0; i < indentsNodes.length; i++) {\n var parentNode = indentsNodes[i];\n var marginLeftOrRight = isRtl ? parentNode.style.marginRight : parentNode.style.marginLeft;\n var indentsValue = void 0;\n if (e.subCommand === 'Indent') {\n /* eslint-disable */\n indentsValue = marginLeftOrRight === '' ? this.indentValue + 'px' : parseInt(marginLeftOrRight, null) + this.indentValue + 'px';\n isRtl ? (parentNode.style.marginRight = indentsValue) : (parentNode.style.marginLeft = indentsValue);\n }\n else {\n indentsValue = (marginLeftOrRight === '' || marginLeftOrRight === '0px') ? '' : parseInt(marginLeftOrRight, null) - this.indentValue + 'px';\n isRtl ? (parentNode.style.marginRight = indentsValue) : (parentNode.style.marginLeft = indentsValue);\n /* eslint-enable */\n }\n }\n editEle.focus();\n if (isIDevice()) {\n setEditFrameFocus(editEle, e.selector);\n }\n save = this.parent.domNode.saveMarker(save);\n save.restore();\n if (e.callBack) {\n e.callBack({\n requestType: e.subCommand,\n editorMode: 'HTML',\n event: e.event,\n range: this.parent.nodeSelection.getRange(this.parent.currentDocument),\n elements: this.parent.domNode.blockNodes()\n });\n }\n };\n return Indents;\n}());\nexport { Indents };\n","/**\n * Rich Text Editor classes defined here.\n */\n/**\n * @hidden\n\n */\nexport var CLASS_IMAGE_RIGHT = 'e-imgright';\nexport var CLASS_IMAGE_LEFT = 'e-imgleft';\nexport var CLASS_IMAGE_CENTER = 'e-imgcenter';\nexport var CLASS_VIDEO_RIGHT = 'e-video-right';\nexport var CLASS_VIDEO_LEFT = 'e-video-left';\nexport var CLASS_VIDEO_CENTER = 'e-video-center';\nexport var CLASS_IMAGE_BREAK = 'e-imgbreak';\nexport var CLASS_AUDIO_BREAK = 'e-audio-break';\nexport var CLASS_VIDEO_BREAK = 'e-video-break';\nexport var CLASS_CAPTION = 'e-img-caption';\nexport var CLASS_RTE_CAPTION = 'e-rte-img-caption';\nexport var CLASS_CAPTION_INLINE = 'e-caption-inline';\nexport var CLASS_IMAGE_INLINE = 'e-imginline';\nexport var CLASS_AUDIO_INLINE = 'e-audio-inline';\nexport var CLASS_CLICK_ELEM = 'e-clickelem';\nexport var CLASS_VIDEO_CLICK_ELEM = 'e-video-clickelem';\nexport var CLASS_AUDIO = 'e-rte-audio';\nexport var CLASS_VIDEO = 'e-rte-video';\nexport var CLASS_AUDIO_WRAP = 'e-audio-wrap';\nexport var CLASS_VIDEO_WRAP = 'e-video-wrap';\nexport var CLASS_EMBED_VIDEO_WRAP = 'e-embed-video-wrap';\nexport var CLASS_AUDIO_FOCUS = 'e-audio-focus';\nexport var CLASS_VIDEO_FOCUS = 'e-video-focus';\nexport var CLASS_VIDEO_INLINE = 'e-video-inline';\n","import { createElement, isNullOrUndefined as isNOU, detach, closest, addClass, removeClass, select, Browser, formatUnit } from '@syncfusion/ej2-base';\nimport * as CONSTANT from './../base/constant';\nimport * as classes from './../base/classes';\nimport { InsertHtml } from './inserthtml';\n/**\n * Link internal component\n *\n * @hidden\n\n */\nvar ImageCommand = /** @class */ (function () {\n /**\n * Constructor for creating the Formats plugin\n *\n * @param {EditorManager} parent - specifies the parent element\n * @hidden\n\n */\n function ImageCommand(parent) {\n this.parent = parent;\n this.addEventListener();\n }\n ImageCommand.prototype.addEventListener = function () {\n this.parent.observer.on(CONSTANT.IMAGE, this.imageCommand, this);\n };\n /**\n * imageCommand method\n *\n * @param {IHtmlItem} e - specifies the element\n * @returns {void}\n * @hidden\n\n */\n ImageCommand.prototype.imageCommand = function (e) {\n switch (e.value.toString().toLowerCase()) {\n case 'image':\n case 'replace':\n this.createImage(e);\n break;\n case 'insertlink':\n this.insertImageLink(e);\n break;\n case 'openimagelink':\n this.openImageLink(e);\n break;\n case 'editimagelink':\n this.editImageLink(e);\n break;\n case 'removeimagelink':\n this.removeImageLink(e);\n break;\n case 'remove':\n this.removeImage(e);\n break;\n case 'alttext':\n this.insertAltTextImage(e);\n break;\n case 'dimension':\n this.imageDimension(e);\n break;\n case 'caption':\n this.imageCaption(e);\n break;\n case 'justifyleft':\n this.imageJustifyLeft(e);\n break;\n case 'justifycenter':\n this.imageJustifyCenter(e);\n break;\n case 'justifyright':\n this.imageJustifyRight(e);\n break;\n case 'inline':\n this.imageInline(e);\n break;\n case 'break':\n this.imageBreak(e);\n break;\n }\n };\n ImageCommand.prototype.createImage = function (e) {\n var _this = this;\n var isReplaced = false;\n e.item.url = isNOU(e.item.url) || e.item.url === 'undefined' ? e.item.src : e.item.url;\n if (!isNOU(e.item.selectParent) && e.item.selectParent[0].tagName === 'IMG') {\n var imgEle = e.item.selectParent[0];\n this.setStyle(imgEle, e);\n isReplaced = true;\n }\n else {\n var imgElement = createElement('img');\n this.setStyle(imgElement, e);\n if (!isNOU(e.item.selection)) {\n e.item.selection.restore();\n }\n if (!isNOU(e.selector) && e.selector === 'pasteCleanupModule') {\n e.callBack({ requestType: 'Images',\n editorMode: 'HTML',\n event: e.event,\n range: this.parent.nodeSelection.getRange(this.parent.currentDocument),\n elements: [imgElement]\n });\n }\n else {\n InsertHtml.Insert(this.parent.currentDocument, imgElement, this.parent.editableElement);\n }\n }\n if (e.callBack && (isNOU(e.selector) || !isNOU(e.selector) && e.selector !== 'pasteCleanupModule')) {\n var selectedNode = this.parent.nodeSelection.getSelectedNodes(this.parent.currentDocument)[0];\n var imgElm_1 = (e.value === 'Replace' || isReplaced) ? e.item.selectParent[0] :\n (Browser.isIE ? selectedNode.previousSibling : selectedNode.previousElementSibling);\n imgElm_1.addEventListener('load', function () {\n if (e.value !== 'Replace' || !isReplaced) {\n e.callBack({\n requestType: 'Images',\n editorMode: 'HTML',\n event: e.event,\n range: _this.parent.nodeSelection.getRange(_this.parent.currentDocument),\n elements: [imgElm_1]\n });\n }\n });\n }\n };\n ImageCommand.prototype.setStyle = function (imgElement, e) {\n if (!isNOU(e.item.url)) {\n imgElement.setAttribute('src', e.item.url);\n }\n imgElement.setAttribute('class', 'e-rte-image' + (isNOU(e.item.cssClass) ? '' : ' ' + e.item.cssClass));\n if (!isNOU(e.item.altText)) {\n imgElement.setAttribute('alt', e.item.altText);\n }\n if (!isNOU(e.item.width) && !isNOU(e.item.width.width)) {\n imgElement.setAttribute('width', this.calculateStyleValue(e.item.width.width));\n }\n if (!isNOU(e.item.height) && !isNOU(e.item.height.height)) {\n imgElement.setAttribute('height', this.calculateStyleValue(e.item.height.height));\n }\n if (!isNOU(e.item.width) && !isNOU(e.item.width.minWidth)) {\n imgElement.style.minWidth = this.calculateStyleValue(e.item.width.minWidth);\n }\n if (!isNOU(e.item.width) && !isNOU(e.item.width.maxWidth)) {\n imgElement.style.maxWidth = this.calculateStyleValue(e.item.width.maxWidth);\n }\n if (!isNOU(e.item.height) && !isNOU(e.item.height.minHeight)) {\n imgElement.style.minHeight = this.calculateStyleValue(e.item.height.minHeight);\n }\n if (!isNOU(e.item.height) && !isNOU(e.item.height.maxHeight)) {\n imgElement.style.maxHeight = this.calculateStyleValue(e.item.height.maxHeight);\n }\n };\n ImageCommand.prototype.calculateStyleValue = function (value) {\n var styleValue;\n if (typeof (value) === 'string') {\n if (value.indexOf('px') || value.indexOf('%') || value.indexOf('auto')) {\n styleValue = value;\n }\n else {\n styleValue = value + 'px';\n }\n }\n else {\n styleValue = value + 'px';\n }\n return styleValue;\n };\n ImageCommand.prototype.insertImageLink = function (e) {\n var anchor = createElement('a', {\n attrs: {\n href: e.item.url\n }\n });\n if (e.item.selectNode[0].parentElement.classList.contains('e-img-wrap')) {\n e.item.selection.restore();\n anchor.setAttribute('contenteditable', 'true');\n }\n anchor.appendChild(e.item.selectNode[0]);\n if (!isNOU(e.item.target)) {\n anchor.setAttribute('target', e.item.target);\n }\n InsertHtml.Insert(this.parent.currentDocument, anchor, this.parent.editableElement);\n this.callBack(e);\n };\n ImageCommand.prototype.openImageLink = function (e) {\n document.defaultView.open(e.item.url, e.item.target);\n this.callBack(e);\n };\n ImageCommand.prototype.removeImageLink = function (e) {\n var selectParent = e.item.selectParent[0];\n if (selectParent.classList.contains('e-img-caption')) {\n var capImgWrap = select('.e-img-wrap', selectParent);\n var textEle = select('.e-img-inner', selectParent);\n var newTextEle = textEle.cloneNode(true);\n detach(select('a', selectParent));\n detach(textEle);\n capImgWrap.appendChild(e.item.insertElement);\n capImgWrap.appendChild(newTextEle);\n }\n else {\n detach(selectParent);\n if (Browser.isIE && e.item.selection) {\n e.item.selection.restore();\n }\n InsertHtml.Insert(this.parent.currentDocument, e.item.insertElement, this.parent.editableElement);\n }\n this.callBack(e);\n };\n ImageCommand.prototype.editImageLink = function (e) {\n e.item.selectNode[0].parentElement.href = e.item.url;\n if (isNOU(e.item.target)) {\n e.item.selectNode[0].parentElement.removeAttribute('target');\n }\n else {\n e.item.selectNode[0].parentElement.target = e.item.target;\n }\n this.callBack(e);\n };\n ImageCommand.prototype.removeImage = function (e) {\n if (closest(e.item.selectNode[0], 'a')) {\n if (e.item.selectNode[0].parentElement.nodeName === 'A' && !isNOU(e.item.selectNode[0].parentElement.innerText)) {\n if (!isNOU(closest(e.item.selectNode[0], '.' + classes.CLASS_CAPTION))) {\n detach(closest(e.item.selectNode[0], '.' + classes.CLASS_CAPTION));\n }\n else {\n detach(e.item.selectNode[0]);\n }\n }\n else {\n detach(closest(e.item.selectNode[0], 'a'));\n }\n }\n else if (!isNOU(closest(e.item.selectNode[0], '.' + classes.CLASS_CAPTION))) {\n detach(closest(e.item.selectNode[0], '.' + classes.CLASS_CAPTION));\n }\n else {\n detach(e.item.selectNode[0]);\n }\n this.callBack(e);\n };\n ImageCommand.prototype.insertAltTextImage = function (e) {\n e.item.selectNode[0].setAttribute('alt', e.item.altText);\n this.callBack(e);\n };\n ImageCommand.prototype.imageDimension = function (e) {\n var selectNode = e.item.selectNode[0];\n selectNode.style.height = '';\n selectNode.style.width = '';\n if (e.item.width !== 'auto') {\n selectNode.style.width = formatUnit(e.item.width);\n }\n else {\n selectNode.removeAttribute('width');\n }\n if (e.item.height !== 'auto') {\n selectNode.style.height = formatUnit(e.item.height);\n }\n else {\n selectNode.removeAttribute('height');\n }\n this.callBack(e);\n };\n ImageCommand.prototype.imageCaption = function (e) {\n InsertHtml.Insert(this.parent.currentDocument, e.item.insertElement, this.parent.editableElement);\n this.callBack(e);\n };\n ImageCommand.prototype.imageJustifyLeft = function (e) {\n var selectNode = e.item.selectNode[0];\n if (!isNOU(selectNode)) {\n selectNode.removeAttribute('class');\n addClass([selectNode], 'e-rte-image');\n if (!isNOU(closest(selectNode, '.' + classes.CLASS_CAPTION))) {\n removeClass([closest(selectNode, '.' + classes.CLASS_CAPTION)], classes.CLASS_IMAGE_RIGHT);\n addClass([closest(selectNode, '.' + classes.CLASS_CAPTION)], classes.CLASS_IMAGE_LEFT);\n }\n if (selectNode.parentElement.nodeName === 'A') {\n removeClass([selectNode.parentElement], classes.CLASS_IMAGE_RIGHT);\n addClass([selectNode.parentElement], classes.CLASS_IMAGE_LEFT);\n addClass([selectNode], classes.CLASS_IMAGE_LEFT);\n }\n else {\n addClass([selectNode], classes.CLASS_IMAGE_LEFT);\n }\n this.callBack(e);\n }\n };\n ImageCommand.prototype.imageJustifyCenter = function (e) {\n var selectNode = e.item.selectNode[0];\n if (!isNOU(selectNode)) {\n selectNode.removeAttribute('class');\n addClass([selectNode], 'e-rte-image');\n if (!isNOU(closest(selectNode, '.' + classes.CLASS_CAPTION))) {\n removeClass([closest(selectNode, '.' + classes.CLASS_CAPTION)], classes.CLASS_IMAGE_LEFT);\n removeClass([closest(selectNode, '.' + classes.CLASS_CAPTION)], classes.CLASS_IMAGE_RIGHT);\n addClass([closest(selectNode, '.' + classes.CLASS_CAPTION)], classes.CLASS_IMAGE_CENTER);\n }\n if (selectNode.parentElement.nodeName === 'A') {\n removeClass([selectNode.parentElement], classes.CLASS_IMAGE_LEFT);\n removeClass([selectNode.parentElement], classes.CLASS_IMAGE_RIGHT);\n addClass([selectNode.parentElement], classes.CLASS_IMAGE_CENTER);\n addClass([selectNode], classes.CLASS_IMAGE_CENTER);\n }\n else {\n addClass([selectNode], classes.CLASS_IMAGE_CENTER);\n }\n this.callBack(e);\n }\n };\n ImageCommand.prototype.imageJustifyRight = function (e) {\n var selectNode = e.item.selectNode[0];\n if (!isNOU(selectNode)) {\n selectNode.removeAttribute('class');\n addClass([selectNode], 'e-rte-image');\n if (!isNOU(closest(selectNode, '.' + classes.CLASS_CAPTION))) {\n removeClass([closest(selectNode, '.' + classes.CLASS_CAPTION)], classes.CLASS_IMAGE_LEFT);\n addClass([closest(selectNode, '.' + classes.CLASS_CAPTION)], classes.CLASS_IMAGE_RIGHT);\n }\n if (selectNode.parentElement.nodeName === 'A') {\n removeClass([selectNode.parentElement], classes.CLASS_IMAGE_LEFT);\n addClass([selectNode.parentElement], classes.CLASS_IMAGE_RIGHT);\n addClass([selectNode], classes.CLASS_IMAGE_RIGHT);\n }\n else {\n addClass([selectNode], classes.CLASS_IMAGE_RIGHT);\n }\n this.callBack(e);\n }\n };\n ImageCommand.prototype.imageInline = function (e) {\n var selectNode = e.item.selectNode[0];\n selectNode.removeAttribute('class');\n addClass([selectNode], 'e-rte-image');\n addClass([selectNode], classes.CLASS_IMAGE_INLINE);\n if (!isNOU(closest(selectNode, '.' + classes.CLASS_CAPTION))) {\n removeClass([closest(selectNode, '.' + classes.CLASS_CAPTION)], classes.CLASS_IMAGE_BREAK);\n removeClass([closest(selectNode, '.' + classes.CLASS_CAPTION)], classes.CLASS_IMAGE_CENTER);\n removeClass([closest(selectNode, '.' + classes.CLASS_CAPTION)], classes.CLASS_IMAGE_LEFT);\n removeClass([closest(selectNode, '.' + classes.CLASS_CAPTION)], classes.CLASS_IMAGE_RIGHT);\n addClass([closest(selectNode, '.' + classes.CLASS_CAPTION)], classes.CLASS_CAPTION_INLINE);\n }\n this.callBack(e);\n };\n ImageCommand.prototype.imageBreak = function (e) {\n var selectNode = e.item.selectNode[0];\n selectNode.removeAttribute('class');\n addClass([selectNode], classes.CLASS_IMAGE_BREAK);\n addClass([selectNode], 'e-rte-image');\n if (!isNOU(closest(selectNode, '.' + classes.CLASS_CAPTION))) {\n removeClass([closest(selectNode, '.' + classes.CLASS_CAPTION)], classes.CLASS_CAPTION_INLINE);\n removeClass([closest(selectNode, '.' + classes.CLASS_CAPTION)], classes.CLASS_IMAGE_CENTER);\n removeClass([closest(selectNode, '.' + classes.CLASS_CAPTION)], classes.CLASS_IMAGE_LEFT);\n removeClass([closest(selectNode, '.' + classes.CLASS_CAPTION)], classes.CLASS_IMAGE_RIGHT);\n addClass([closest(selectNode, '.' + classes.CLASS_CAPTION)], classes.CLASS_IMAGE_BREAK);\n }\n this.callBack(e);\n };\n ImageCommand.prototype.callBack = function (e) {\n if (e.callBack) {\n e.callBack({\n requestType: e.item.subCommand,\n editorMode: 'HTML',\n event: e.event,\n range: this.parent.nodeSelection.getRange(this.parent.currentDocument),\n elements: this.parent.nodeSelection.getSelectedNodes(this.parent.currentDocument)\n });\n }\n };\n return ImageCommand;\n}());\nexport { ImageCommand };\n","import { createElement, isNullOrUndefined as isNOU, detach, addClass, Browser } from '@syncfusion/ej2-base';\nimport * as CONSTANT from './../base/constant';\nimport * as classes from './../base/classes';\nimport { InsertHtml } from './inserthtml';\n/**\n * Audio internal component\n *\n * @hidden\n\n */\nvar AudioCommand = /** @class */ (function () {\n /**\n * Constructor for creating the Audio plugin\n *\n * @param {EditorManager} parent - specifies the parent element\n * @hidden\n\n */\n function AudioCommand(parent) {\n this.parent = parent;\n this.addEventListener();\n }\n AudioCommand.prototype.addEventListener = function () {\n this.parent.observer.on(CONSTANT.AUDIO, this.audioCommand, this);\n };\n /**\n * audioCommand method\n *\n * @param {IHtmlItem} e - specifies the element\n * @returns {void}\n * @hidden\n\n */\n AudioCommand.prototype.audioCommand = function (e) {\n var selectNode;\n var value = e.value.toString().toLowerCase();\n if (value === 'inline' || value === 'break' || value === 'audioremove') {\n selectNode = e.item.selectNode[0];\n }\n switch (value) {\n case 'audio':\n case 'audioreplace':\n this.createAudio(e);\n break;\n case 'inline':\n selectNode.removeAttribute('class');\n selectNode.closest('.' + classes.CLASS_AUDIO_WRAP).style.display = 'inline-block';\n addClass([selectNode], [classes.CLASS_AUDIO, classes.CLASS_AUDIO_INLINE, classes.CLASS_AUDIO_FOCUS]);\n this.callBack(e);\n break;\n case 'break':\n selectNode.removeAttribute('class');\n selectNode.closest('.' + classes.CLASS_AUDIO_WRAP).style.display = 'block';\n addClass([selectNode], [classes.CLASS_AUDIO_BREAK, classes.CLASS_AUDIO, classes.CLASS_AUDIO_FOCUS]);\n this.callBack(e);\n break;\n case 'audioremove':\n detach(selectNode);\n this.callBack(e);\n break;\n }\n };\n AudioCommand.prototype.createAudio = function (e) {\n var _this = this;\n var isReplaced = false;\n var wrapElement;\n if (!isNOU(e.item.selectParent) && e.item.selectParent[0].classList &&\n (e.item.selectParent[0].classList.contains(classes.CLASS_CLICK_ELEM) ||\n e.item.selectParent[0].classList.contains(classes.CLASS_AUDIO_WRAP))) {\n var audioEle = e.item.selectParent[0].querySelector('source');\n this.setStyle(audioEle, e);\n isReplaced = true;\n }\n else {\n wrapElement = createElement('span', { className: classes.CLASS_AUDIO_WRAP, attrs: { contentEditable: 'false', title: e.item.fileName } });\n var audElement = createElement('audio', { className: classes.CLASS_AUDIO + ' ' + classes.CLASS_AUDIO_INLINE, attrs: { controls: '' } });\n var sourceElement = createElement('source');\n var clickElement = createElement('span', { className: classes.CLASS_CLICK_ELEM });\n this.setStyle(sourceElement, e);\n audElement.appendChild(sourceElement);\n clickElement.appendChild(audElement);\n wrapElement.appendChild(clickElement);\n if (!isNOU(e.item.selection)) {\n e.item.selection.restore();\n }\n InsertHtml.Insert(this.parent.currentDocument, wrapElement, this.parent.editableElement);\n if (wrapElement.nextElementSibling === null) {\n var insertElem = createElement('br');\n wrapElement.parentNode.insertBefore(insertElem, wrapElement.nextSibling);\n }\n }\n if (e.callBack && (isNOU(e.selector) || !isNOU(e.selector) && e.selector !== 'pasteCleanupModule')) {\n var selectedNode = this.parent.nodeSelection.getSelectedNodes(this.parent.currentDocument)[0];\n var audioElm_1 = (e.value === 'AudioReplace' || isReplaced) ? e.item.selectParent[0].querySelector('audio')\n : (Browser.isIE ? selectedNode : selectedNode.querySelector('audio'));\n audioElm_1.addEventListener('loadeddata', function () {\n if (e.value !== 'AudioReplace' || !isReplaced) {\n e.callBack({\n requestType: 'Audios',\n editorMode: 'HTML',\n event: e.event,\n range: _this.parent.nodeSelection.getRange(_this.parent.currentDocument),\n elements: [audioElm_1]\n });\n }\n });\n if (isReplaced) {\n audioElm_1.load();\n }\n }\n };\n AudioCommand.prototype.setStyle = function (sourceElement, e) {\n if (!isNOU(e.item.url)) {\n sourceElement.setAttribute('src', e.item.url);\n }\n sourceElement.type = e.item.fileName && e.item.fileName.split('.').length > 0 ?\n 'audio/' + e.item.fileName.split('.')[e.item.fileName.split('.').length - 1] :\n e.item.url && e.item.url.split('.').length > 0 ? 'audio/' + e.item.url.split('.')[e.item.url.split('.').length - 1] : '';\n };\n AudioCommand.prototype.callBack = function (e) {\n if (e.callBack) {\n e.callBack({\n requestType: e.item.subCommand,\n editorMode: 'HTML',\n event: e.event,\n range: this.parent.nodeSelection.getRange(this.parent.currentDocument),\n elements: this.parent.nodeSelection.getSelectedNodes(this.parent.currentDocument)\n });\n }\n };\n return AudioCommand;\n}());\nexport { AudioCommand };\n","import { createElement, isNullOrUndefined as isNOU, detach, addClass, Browser, formatUnit } from '@syncfusion/ej2-base';\nimport * as CONSTANT from './../base/constant';\nimport * as classes from './../base/classes';\nimport { InsertHtml } from './inserthtml';\n/**\n * Video internal component\n *\n * @hidden\n\n */\nvar VideoCommand = /** @class */ (function () {\n /**\n * Constructor for creating the Video plugin\n *\n * @param {EditorManager} parent - specifies the parent element\n * @hidden\n\n */\n function VideoCommand(parent) {\n this.parent = parent;\n this.addEventListener();\n }\n VideoCommand.prototype.addEventListener = function () {\n this.parent.observer.on(CONSTANT.VIDEO, this.videoCommand, this);\n };\n /**\n * videoCommand method\n *\n * @param {IHtmlItem} e - specifies the element\n * @returns {void}\n * @hidden\n\n */\n VideoCommand.prototype.videoCommand = function (e) {\n var selectNode;\n var videoWrapNode;\n var videoClickElem;\n var value = e.value.toString().toLowerCase();\n if (value !== 'video' && value !== 'videoreplace') {\n selectNode = e.item.selectNode[0];\n videoWrapNode = selectNode.closest('.' + classes.CLASS_EMBED_VIDEO_WRAP);\n videoClickElem = selectNode.closest('.' + classes.CLASS_VIDEO_CLICK_ELEM);\n }\n switch (value) {\n case 'video':\n case 'videoreplace':\n this.createVideo(e);\n break;\n case 'videodimension':\n this.videoDimension(e);\n break;\n case 'inline':\n selectNode.removeAttribute('class');\n if (videoWrapNode) {\n videoWrapNode.style.display = 'inline-block';\n }\n if (videoClickElem) {\n selectNode.parentElement.style.cssFloat = '';\n }\n addClass([selectNode], [classes.CLASS_VIDEO, classes.CLASS_VIDEO_INLINE, classes.CLASS_VIDEO_FOCUS]);\n this.callBack(e);\n break;\n case 'break':\n selectNode.removeAttribute('class');\n if (videoWrapNode) {\n videoWrapNode.style.display = 'block';\n }\n if (videoClickElem) {\n selectNode.parentElement.style.cssFloat = '';\n }\n addClass([selectNode], [classes.CLASS_VIDEO_BREAK, classes.CLASS_VIDEO, classes.CLASS_VIDEO_FOCUS]);\n this.callBack(e);\n break;\n case 'justifyleft':\n selectNode.removeAttribute('class');\n if (videoWrapNode) {\n videoWrapNode.style.display = 'block';\n }\n if (videoClickElem) {\n selectNode.parentElement.style.cssFloat = 'left';\n }\n addClass([selectNode], [classes.CLASS_VIDEO, classes.CLASS_VIDEO_LEFT]);\n this.callBack(e);\n break;\n case 'justifycenter':\n selectNode.removeAttribute('class');\n if (videoWrapNode) {\n videoWrapNode.style.display = 'block';\n }\n if (videoClickElem) {\n selectNode.parentElement.style.cssFloat = '';\n }\n addClass([selectNode], [classes.CLASS_VIDEO, classes.CLASS_VIDEO_CENTER]);\n this.callBack(e);\n break;\n case 'justifyright':\n selectNode.removeAttribute('class');\n if (videoWrapNode) {\n videoWrapNode.style.display = 'block';\n }\n if (videoClickElem) {\n selectNode.parentElement.style.cssFloat = 'right';\n }\n addClass([selectNode], [classes.CLASS_VIDEO, classes.CLASS_VIDEO_RIGHT]);\n this.callBack(e);\n break;\n case 'videoremove':\n detach(selectNode.parentElement);\n this.callBack(e);\n break;\n }\n };\n VideoCommand.prototype.createVideo = function (e) {\n var _this = this;\n var isReplaced = false;\n var wrapElement;\n var vidElement;\n var sourceElement;\n if (e.value === 'VideoReplace' && !isNOU(e.item.selectParent) && (e.item.selectParent[0].tagName === 'VIDEO')) {\n var videoEle = e.item.selectParent[0].querySelector('source');\n this.setStyle(videoEle, e, videoEle);\n isReplaced = true;\n }\n else if (e.value === 'VideoReplace' && !isNOU(e.item.selectParent) &&\n e.item.selectParent[0].classList &&\n e.item.selectParent[0].classList.contains(classes.CLASS_VIDEO_CLICK_ELEM)) {\n e.item.selectParent[0].innerHTML = e.item.fileName;\n this.setStyle(e.item.selectParent[0].firstElementChild, e, e.item.selectParent[0].firstElementChild);\n }\n else {\n if (!e.item.isEmbedUrl) {\n wrapElement = createElement('span', { className: classes.CLASS_VIDEO_WRAP, attrs: { contentEditable: 'false', title: e.item.fileName } });\n vidElement = createElement('video', { className: classes.CLASS_VIDEO + ' ' + classes.CLASS_VIDEO_INLINE, attrs: { controls: '' } });\n sourceElement = createElement('source');\n this.setStyle(sourceElement, e, vidElement);\n vidElement.appendChild(sourceElement);\n wrapElement.appendChild(vidElement);\n }\n else {\n wrapElement = createElement('span', { className: classes.CLASS_EMBED_VIDEO_WRAP, attrs: { contentEditable: 'false' } });\n var clickElement = createElement('span', { className: classes.CLASS_VIDEO_CLICK_ELEM });\n var temp = createElement('template');\n temp.innerHTML = e.item.fileName;\n clickElement.appendChild(temp.content);\n vidElement = sourceElement = clickElement.firstElementChild;\n this.setStyle(sourceElement, e, vidElement);\n wrapElement.appendChild(clickElement);\n }\n if (!isNOU(e.item.selection)) {\n e.item.selection.restore();\n }\n InsertHtml.Insert(this.parent.currentDocument, wrapElement, this.parent.editableElement);\n if (wrapElement.nextElementSibling === null) {\n var insertElem = createElement('br');\n wrapElement.parentNode.insertBefore(insertElem, wrapElement.nextSibling);\n }\n }\n if (e.callBack && (isNOU(e.selector) || !isNOU(e.selector) && e.selector !== 'pasteCleanupModule')) {\n var selectedNode = this.parent.nodeSelection.getSelectedNodes(this.parent.currentDocument)[0];\n var videoElm_1 = (e.value === 'VideoReplace' || isReplaced) ? !e.item.isEmbedUrl ? e.item.selectParent[0] : e.item.selectParent[0].querySelector('iframe')\n : (Browser.isIE ? selectedNode : !e.item.isEmbedUrl ? selectedNode.lastElementChild : selectedNode.querySelector('iframe'));\n videoElm_1.addEventListener(videoElm_1.tagName !== 'IFRAME' ? 'loadeddata' : 'load', function () {\n if (e.value !== 'VideoReplace' || !isReplaced) {\n if (e.item.isEmbedUrl && videoElm_1) {\n videoElm_1.classList.add('e-rte-embed-url');\n }\n e.callBack({\n requestType: 'Videos',\n editorMode: 'HTML',\n event: e.event,\n range: _this.parent.nodeSelection.getRange(_this.parent.currentDocument),\n elements: [videoElm_1]\n });\n }\n });\n if (isReplaced) {\n videoElm_1.load();\n }\n if (Browser.userAgent.indexOf('Firefox') !== -1) {\n vidElement.addEventListener('play', function () { _this.editAreaVideoClick(e); });\n vidElement.addEventListener('pause', function () { _this.editAreaVideoClick(e); });\n }\n }\n };\n VideoCommand.prototype.editAreaVideoClick = function (e) {\n e.callBack({\n requestType: 'VideosPlayPause',\n editorMode: 'HTML',\n event: e.event\n });\n };\n VideoCommand.prototype.setStyle = function (sourceElement, e, videoEle) {\n if (e.item.url !== '' && !isNOU(e.item.url)) {\n sourceElement.setAttribute('src', e.item.url);\n }\n if (!e.item.isEmbedUrl) {\n sourceElement.type = e.item.fileName && e.item.fileName.split('.').length > 0 ?\n 'video/' + e.item.fileName.split('.')[e.item.fileName.split('.').length - 1] :\n e.item.url && e.item.url.split('.').length > 0 ? 'video/' + e.item.url.split('.')[e.item.url.split('.').length - 1] : '';\n }\n if (!isNOU(e.item.width) && !isNOU(e.item.width.width)) {\n videoEle.setAttribute('width', formatUnit(e.item.width.width));\n }\n if (!isNOU(e.item.height) && !isNOU(e.item.height.height)) {\n videoEle.setAttribute('height', formatUnit(e.item.height.height));\n }\n if (!isNOU(e.item.width) && !isNOU(e.item.width.minWidth)) {\n videoEle.style.minWidth = formatUnit(e.item.width.minWidth);\n }\n if (!isNOU(e.item.width) && !isNOU(e.item.width.maxWidth)) {\n videoEle.style.maxWidth = formatUnit(e.item.width.maxWidth);\n }\n if (!isNOU(e.item.height) && !isNOU(e.item.height.minHeight)) {\n videoEle.style.minHeight = formatUnit(e.item.height.minHeight);\n }\n if (!isNOU(e.item.height) && !isNOU(e.item.height.maxHeight)) {\n videoEle.style.maxHeight = formatUnit(e.item.height.maxHeight);\n }\n };\n VideoCommand.prototype.videoDimension = function (e) {\n var selectNode = !(e.item.selectNode[0].classList.contains(classes.CLASS_VIDEO_CLICK_ELEM)) ? e.item.selectNode[0] :\n e.item.selectNode[0].querySelector('iframe');\n selectNode.style.height = '';\n selectNode.style.width = '';\n if (e.item.width !== 'auto') {\n selectNode.style.width = formatUnit(e.item.width);\n }\n else {\n selectNode.removeAttribute('width');\n }\n if (e.item.height !== 'auto') {\n selectNode.style.height = formatUnit(e.item.height);\n }\n else {\n selectNode.removeAttribute('height');\n }\n this.callBack(e);\n };\n VideoCommand.prototype.callBack = function (e) {\n if (e.callBack) {\n e.callBack({\n requestType: e.item.subCommand,\n editorMode: 'HTML',\n event: e.event,\n range: this.parent.nodeSelection.getRange(this.parent.currentDocument),\n elements: this.parent.nodeSelection.getSelectedNodes(this.parent.currentDocument)\n });\n }\n };\n return VideoCommand;\n}());\nexport { VideoCommand };\n","import { createElement, closest, detach, Browser, isNullOrUndefined as isNOU } from '@syncfusion/ej2-base';\nimport * as CONSTANT from './../base/constant';\nimport { InsertHtml } from './inserthtml';\n/**\n * Link internal component\n *\n * @hidden\n\n */\nvar TableCommand = /** @class */ (function () {\n /**\n * Constructor for creating the Formats plugin\n *\n * @param {EditorManager} parent - specifies the parent element\n * @hidden\n\n */\n function TableCommand(parent) {\n this.parent = parent;\n this.addEventListener();\n }\n TableCommand.prototype.addEventListener = function () {\n this.parent.observer.on(CONSTANT.TABLE, this.createTable, this);\n this.parent.observer.on(CONSTANT.INSERT_ROW, this.insertRow, this);\n this.parent.observer.on(CONSTANT.INSERT_COLUMN, this.insertColumn, this);\n this.parent.observer.on(CONSTANT.DELETEROW, this.deleteRow, this);\n this.parent.observer.on(CONSTANT.DELETECOLUMN, this.deleteColumn, this);\n this.parent.observer.on(CONSTANT.REMOVETABLE, this.removeTable, this);\n this.parent.observer.on(CONSTANT.TABLEHEADER, this.tableHeader, this);\n this.parent.observer.on(CONSTANT.TABLE_VERTICAL_ALIGN, this.tableVerticalAlign, this);\n this.parent.observer.on(CONSTANT.TABLE_MERGE, this.cellMerge, this);\n this.parent.observer.on(CONSTANT.TABLE_HORIZONTAL_SPLIT, this.HorizontalSplit, this);\n this.parent.observer.on(CONSTANT.TABLE_VERTICAL_SPLIT, this.VerticalSplit, this);\n this.parent.observer.on(CONSTANT.TABLE_MOVE, this.tableMove, this);\n };\n TableCommand.prototype.createTable = function (e) {\n var table = createElement('table', { className: 'e-rte-table' });\n var tblBody = createElement('tbody');\n if (!isNOU(e.item.width.width)) {\n table.style.width = this.calculateStyleValue(e.item.width.width);\n }\n if (!isNOU(e.item.width.minWidth)) {\n table.style.minWidth = this.calculateStyleValue(e.item.width.minWidth);\n }\n if (!isNOU(e.item.width.maxWidth)) {\n table.style.maxWidth = this.calculateStyleValue(e.item.width.maxWidth);\n }\n var tdWid = parseInt(e.item.width.width, 10) > 100 ?\n 100 / e.item.columns : parseInt(e.item.width.width, 10) / e.item.columns;\n for (var i = 0; i < e.item.rows; i++) {\n var row = createElement('tr');\n for (var j = 0; j < e.item.columns; j++) {\n var cell = createElement('td');\n cell.appendChild(createElement('br'));\n cell.style.width = tdWid + '%';\n row.appendChild(cell);\n }\n tblBody.appendChild(row);\n }\n table.appendChild(tblBody);\n e.item.selection.restore();\n InsertHtml.Insert(this.parent.currentDocument, table, this.parent.editableElement);\n this.removeEmptyNode();\n e.item.selection.setSelectionText(this.parent.currentDocument, table.querySelector('td'), table.querySelector('td'), 0, 0);\n if (table.nextElementSibling === null) {\n var insertElem = void 0;\n if (e.enterAction === 'DIV') {\n insertElem = createElement('div');\n insertElem.appendChild(createElement('br'));\n }\n else if (e.enterAction === 'BR') {\n insertElem = createElement('br');\n }\n else {\n insertElem = createElement('p');\n insertElem.appendChild(createElement('br'));\n }\n this.insertAfter(insertElem, table);\n }\n table.querySelector('td').classList.add('e-cell-select');\n if (e.callBack) {\n e.callBack({\n requestType: 'Table',\n editorMode: 'HTML',\n event: e.event,\n range: this.parent.nodeSelection.getRange(this.parent.currentDocument),\n elements: [table]\n });\n }\n return table;\n };\n TableCommand.prototype.calculateStyleValue = function (value) {\n var styleValue;\n if (typeof (value) === 'string') {\n if (value.indexOf('px') || value.indexOf('%') || value.indexOf('auto')) {\n styleValue = value;\n }\n else {\n styleValue = value + 'px';\n }\n }\n else {\n styleValue = value + 'px';\n }\n return styleValue;\n };\n TableCommand.prototype.removeEmptyNode = function () {\n var emptyUl = this.parent.editableElement.querySelectorAll('ul:empty, ol:empty');\n for (var i = 0; i < emptyUl.length; i++) {\n detach(emptyUl[i]);\n }\n var emptyLiChild = this.parent.editableElement.querySelectorAll('li *:empty:not(img)');\n for (var i = 0; i < emptyLiChild.length; i++) {\n detach(emptyLiChild[i]);\n if (emptyLiChild.length === i + 1) {\n emptyLiChild = this.parent.editableElement.querySelectorAll('li *:empty:not(img)');\n i = -1;\n }\n }\n var emptyLi = this.parent.editableElement.querySelectorAll('li:empty');\n for (var i = 0; i < emptyLi.length; i++) {\n detach(emptyLi[i]);\n }\n };\n TableCommand.prototype.insertAfter = function (newNode, referenceNode) {\n referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling);\n };\n TableCommand.prototype.getSelectedCellMinMaxIndex = function (e) {\n var selectedCells = this.curTable.querySelectorAll('.e-cell-select');\n var a = 0;\n var minI = e.length;\n var maxI = 0;\n var minJ = e[0].length;\n var maxJ = 0;\n //eslint-disable-next-line\n for (var i = 0; a < selectedCells.length; a++) {\n var selectedCellIndex = this.getCorrespondingIndex(selectedCells[a], e);\n var minMaxIndex = this.FindIndex(selectedCellIndex[0], selectedCellIndex[1], e);\n //eslint-disable-next-line\n minI = Math.min(selectedCellIndex[0], minI),\n maxI = Math.max(minMaxIndex[0], maxI),\n minJ = Math.min(selectedCellIndex[1], minJ),\n maxJ = Math.max(minMaxIndex[1], maxJ);\n }\n return {\n startRow: minI,\n endRow: maxI,\n startColumn: minJ,\n endColumn: maxJ\n };\n };\n TableCommand.prototype.insertRow = function (e) {\n var isBelow = e.item.subCommand === 'InsertRowBefore' ? false : true;\n var selectedCell = e.item.selection.range.startContainer;\n if (!(selectedCell.nodeName === 'TH' || selectedCell.nodeName === 'TD')) {\n selectedCell = closest(selectedCell.parentElement, 'td,th');\n }\n if (selectedCell.nodeName.toLowerCase() === 'th' && e.item.subCommand === 'InsertRowBefore') {\n return;\n }\n this.curTable = closest(this.parent.nodeSelection.range.startContainer.parentElement, 'table');\n if (this.curTable.querySelectorAll('.e-cell-select').length === 0) {\n var lastRow = this.curTable.rows[this.curTable.rows.length - 1];\n var cloneRow = lastRow.cloneNode(true);\n cloneRow.removeAttribute('rowspan');\n this.insertAfter(cloneRow, lastRow);\n }\n else {\n var allCells = this.getCorrespondingColumns();\n var minMaxIndex = this.getSelectedCellMinMaxIndex(allCells);\n var minVal = isBelow ? minMaxIndex.endRow : minMaxIndex.startRow;\n var newRow = createElement('tr');\n var isHeaderSelect = this.curTable.querySelectorAll('th.e-cell-select').length > 0;\n for (var i = 0; i < allCells[minVal].length; i++) {\n // eslint-disable-next-line max-len\n if (isBelow && minVal < allCells.length - 1 && allCells[minVal][i] === allCells[minVal + 1][i] ||\n !isBelow && 0 < minVal && allCells[minVal][i] === allCells[minVal - 1][i]) {\n if (0 === i || 0 < i && allCells[minVal][i] !== allCells[minVal][i - 1]) {\n allCells[minVal][i].setAttribute('rowspan', (parseInt(allCells[minVal][i].getAttribute('rowspan'), 10) + 1).toString());\n }\n }\n else {\n var tdElement = createElement('td');\n tdElement.appendChild(createElement('br'));\n newRow.appendChild(tdElement);\n tdElement.setAttribute('style', allCells[(isHeaderSelect && isBelow) ? allCells[(minVal + 1)] ? (minVal + 1) : minVal : minVal][i].getAttribute('style'));\n }\n }\n // eslint-disable-next-line\n var selectedRow = void 0;\n if (isHeaderSelect && isBelow) {\n selectedRow = this.curTable.querySelector('tbody').childNodes[0];\n }\n else {\n selectedRow = this.curTable.rows[minVal];\n }\n // eslint-disable-next-line\n (e.item.subCommand === 'InsertRowBefore') ? selectedRow.parentElement.insertBefore(newRow, selectedRow) :\n (isHeaderSelect ? selectedRow.parentElement.insertBefore(newRow, selectedRow) :\n this.insertAfter(newRow, selectedRow));\n }\n e.item.selection.setSelectionText(this.parent.currentDocument, e.item.selection.range.startContainer, e.item.selection.range.startContainer, 0, 0);\n if (e.callBack) {\n e.callBack({\n requestType: e.item.subCommand,\n editorMode: 'HTML',\n event: e.event,\n range: this.parent.nodeSelection.getRange(this.parent.currentDocument),\n elements: this.parent.nodeSelection.getSelectedNodes(this.parent.currentDocument)\n });\n }\n };\n TableCommand.prototype.insertColumn = function (e) {\n var selectedCell = e.item.selection.range.startContainer;\n if (!(selectedCell.nodeName === 'TH' || selectedCell.nodeName === 'TD')) {\n selectedCell = closest(selectedCell.parentElement, 'td,th');\n }\n var curRow = closest(selectedCell, 'tr');\n var curCell;\n var allRows = closest((curRow), 'table').rows;\n var colIndex = Array.prototype.slice.call(curRow.querySelectorAll(':scope > td, :scope > th')).indexOf(selectedCell);\n var previousWidth = parseInt(e.item.width, 10) / (curRow.querySelectorAll(':scope > td, :scope > th').length);\n var currentWidth = parseInt(e.item.width, 10) / (curRow.querySelectorAll(':scope > td, :scope > th').length + 1);\n var currentTabElm = closest(curRow, 'table');\n var thTdElm = closest(curRow, 'table').querySelectorAll('th,td');\n for (var i = 0; i < thTdElm.length; i++) {\n thTdElm[i].dataset.oldWidth = (thTdElm[i].offsetWidth / currentTabElm.offsetWidth * 100) + '%';\n }\n for (var i = 0; i < allRows.length; i++) {\n curCell = allRows[i].querySelectorAll(':scope > td, :scope > th')[colIndex];\n var colTemplate = curCell.cloneNode(true);\n colTemplate.innerHTML = '';\n colTemplate.appendChild(createElement('br'));\n colTemplate.removeAttribute('class');\n colTemplate.removeAttribute('colspan');\n colTemplate.removeAttribute('rowspan');\n // eslint-disable-next-line\n (e.item.subCommand === 'InsertColumnLeft') ? curCell.parentElement.insertBefore(colTemplate, curCell) :\n this.insertAfter(colTemplate, curCell);\n colTemplate.style.width = currentWidth.toFixed(4) + '%';\n delete colTemplate.dataset.oldWidth;\n }\n for (var i = 0; i < thTdElm.length; i++) {\n thTdElm[i].style.width = (Number(thTdElm[i].dataset.oldWidth.split('%')[0]) * currentWidth / previousWidth).toFixed(4) + '%';\n delete thTdElm[i].dataset.oldWidth;\n }\n e.item.selection.setSelectionText(this.parent.currentDocument, selectedCell, selectedCell, 0, 0);\n if (e.callBack) {\n e.callBack({\n requestType: e.item.subCommand,\n editorMode: 'HTML',\n event: e.event,\n range: this.parent.nodeSelection.getRange(this.parent.currentDocument),\n elements: this.parent.nodeSelection.getSelectedNodes(this.parent.currentDocument)\n });\n }\n };\n TableCommand.prototype.deleteColumn = function (e) {\n var selectedCell = e.item.selection.range.startContainer;\n if (selectedCell.nodeType === 3) {\n selectedCell = closest(selectedCell.parentElement, 'td,th');\n }\n var tBodyHeadEle = closest(selectedCell, selectedCell.tagName === 'TH' ? 'thead' : 'tbody');\n var rowIndex = tBodyHeadEle && Array.prototype.indexOf.call(tBodyHeadEle.childNodes, selectedCell.parentNode);\n this.curTable = closest(selectedCell, 'table');\n var curRow = closest(selectedCell, 'tr');\n if (curRow.querySelectorAll('th,td').length === 1) {\n e.item.selection.restore();\n detach(closest(selectedCell.parentElement, 'table'));\n }\n else {\n var deleteIndex = void 0;\n var allCells = this.getCorrespondingColumns();\n //eslint-disable-next-line\n var selectedMinMaxIndex = this.getSelectedCellMinMaxIndex(allCells);\n var minCol = selectedMinMaxIndex.startColumn;\n var maxCol = selectedMinMaxIndex.endColumn;\n for (var i = 0; i < allCells.length; i++) {\n var currentRow = allCells[i];\n for (var j = 0; j < currentRow.length; j++) {\n var currentCell = currentRow[j];\n //eslint-disable-next-line\n var currentCellIndex = this.getCorrespondingIndex(currentCell, allCells);\n var colSpanVal = parseInt(currentCell.getAttribute('colspan'), 10) || 1;\n if (currentCellIndex[1] + (colSpanVal - 1) >= minCol && currentCellIndex[1] <= maxCol) {\n if (colSpanVal > 1) {\n currentCell.setAttribute('colspan', (colSpanVal - 1).toString());\n }\n else {\n detach(currentCell);\n deleteIndex = j;\n if (Browser.isIE) {\n e.item.selection.setSelectionText(this.parent.currentDocument, this.curTable.querySelector('td'), this.curTable.querySelector('td'), 0, 0);\n this.curTable.querySelector('td, th').classList.add('e-cell-select');\n }\n }\n }\n }\n }\n if (deleteIndex > -1) {\n var rowHeadEle = tBodyHeadEle.children[rowIndex];\n var nextFocusCell = rowHeadEle &&\n rowHeadEle.children[(deleteIndex <= rowHeadEle.children.length - 1 ? deleteIndex : deleteIndex - 1)];\n if (nextFocusCell) {\n e.item.selection.setSelectionText(this.parent.currentDocument, nextFocusCell, nextFocusCell, 0, 0);\n nextFocusCell.classList.add('e-cell-select');\n }\n }\n }\n if (e.callBack) {\n var sContainer = this.parent.nodeSelection.getRange(this.parent.currentDocument).startContainer;\n if (sContainer.nodeName !== 'TD') {\n var startChildLength = this.parent.nodeSelection.getRange(this.parent.currentDocument).startOffset;\n var focusNode = sContainer.children[startChildLength];\n if (focusNode) {\n this.parent.nodeSelection.setCursorPoint(this.parent.currentDocument, focusNode, 0);\n }\n }\n e.callBack({\n requestType: e.item.subCommand,\n editorMode: 'HTML',\n event: e.event,\n range: this.parent.nodeSelection.getRange(this.parent.currentDocument),\n elements: this.parent.nodeSelection.getSelectedNodes(this.parent.currentDocument)\n });\n }\n };\n TableCommand.prototype.deleteRow = function (e) {\n var selectedCell = e.item.selection.range.startContainer;\n if (selectedCell.nodeType === 3) {\n selectedCell = closest(selectedCell.parentElement, 'td,th');\n }\n var colIndex = Array.prototype.indexOf.call(selectedCell.parentNode.childNodes, selectedCell);\n this.curTable = closest(selectedCell, 'table');\n var currentRow;\n var allCells = this.getCorrespondingColumns();\n var minMaxIndex = this.getSelectedCellMinMaxIndex(allCells);\n var maxI;\n var j;\n if (this.curTable.rows.length === 1) {\n e.item.selection.restore();\n detach(closest(selectedCell.parentElement, 'table'));\n }\n else {\n for (maxI = minMaxIndex.endRow; maxI >= minMaxIndex.startRow; maxI--) {\n currentRow = this.curTable.rows[maxI];\n for (j = 0; j < allCells[maxI].length; j++) {\n if (j === 0 || allCells[maxI][j] !== allCells[maxI][j - 1]) {\n if (1 < parseInt(allCells[maxI][j].getAttribute('rowspan'), 10)) {\n var rowSpanVal = parseInt(allCells[maxI][j].getAttribute('rowspan'), 10) - 1;\n /* eslint-disable */\n if (1 === rowSpanVal) {\n allCells[maxI][j].removeAttribute('rowspan');\n var cell = this.getMergedRow(this.getCorrespondingColumns())[j];\n if (cell) {\n var cloneNode = cell.cloneNode(true);\n cloneNode.innerHTML = '
    ';\n if (cell.parentElement) {\n cell.parentElement.insertBefore(cloneNode, cell);\n }\n }\n }\n else {\n allCells[maxI][j].setAttribute('rowspan', rowSpanVal.toString());\n }\n /* eslint-enable */\n }\n }\n // eslint-disable-next-line max-len\n if (maxI < allCells.length - 1 && allCells[maxI][j] === allCells[maxI + 1][j] && (0 === maxI ||\n allCells[maxI][j] !== allCells[maxI - 1][j])) {\n var element = allCells[maxI][j];\n var index = void 0;\n // eslint-disable-next-line max-len\n for (index = j; 0 < index && allCells[maxI][index] === allCells[maxI][index - 1]; index--) {\n if (index === 0) {\n this.curTable.rows[maxI + 1].prepend(element);\n }\n else {\n allCells[maxI + 1][index - 1].insertAdjacentElement('afterend', element);\n }\n }\n }\n }\n var deleteIndex = currentRow.rowIndex;\n this.curTable.deleteRow(deleteIndex);\n var focusTrEle = !isNOU(this.curTable.rows[deleteIndex]) ? this.curTable.querySelectorAll('tbody tr')[deleteIndex]\n : this.curTable.querySelectorAll('tbody tr')[deleteIndex - 1];\n var nextFocusCell = focusTrEle && focusTrEle.querySelectorAll('td')[colIndex];\n if (nextFocusCell) {\n e.item.selection.setSelectionText(this.parent.currentDocument, nextFocusCell, nextFocusCell, 0, 0);\n nextFocusCell.classList.add('e-cell-select');\n }\n else {\n e.item.selection.setSelectionText(this.parent.currentDocument, this.curTable.querySelector('td'), this.curTable.querySelector('td'), 0, 0);\n this.curTable.querySelector('td, th').classList.add('e-cell-select');\n }\n }\n }\n if (e.callBack) {\n e.callBack({\n requestType: e.item.subCommand,\n editorMode: 'HTML',\n event: e.event,\n range: this.parent.nodeSelection.getRange(this.parent.currentDocument),\n elements: this.parent.nodeSelection.getSelectedNodes(this.parent.currentDocument)\n });\n }\n };\n TableCommand.prototype.getMergedRow = function (cells) {\n var mergedRow;\n for (var i = 0; i < cells.length; i++) {\n if (cells[i].length !== this.curTable.rows[0].childNodes.length) {\n mergedRow = cells[i];\n }\n }\n return mergedRow;\n };\n TableCommand.prototype.removeTable = function (e) {\n var selectedCell = e.item.selection.range.startContainer;\n selectedCell = (selectedCell.nodeType === 3) ? selectedCell.parentNode : selectedCell;\n var selectedTable = closest(selectedCell.parentElement, 'table');\n if (selectedTable) {\n e.item.selection.restore();\n detach(selectedTable);\n }\n if (e.callBack) {\n e.callBack({\n requestType: e.item.subCommand,\n editorMode: 'HTML',\n event: e.event,\n range: this.parent.nodeSelection.getRange(this.parent.currentDocument),\n elements: this.parent.nodeSelection.getSelectedNodes(this.parent.currentDocument)\n });\n }\n };\n TableCommand.prototype.tableHeader = function (e) {\n var headerExit = false;\n var selectedCell = e.item.selection.range.startContainer;\n selectedCell = (selectedCell.nodeType === 3) ? selectedCell.parentNode : selectedCell;\n var table = closest(selectedCell.parentElement, 'table');\n [].slice.call(table.childNodes).forEach(function (el) {\n if (el.nodeName === 'THEAD') {\n headerExit = true;\n }\n });\n if (table && !headerExit) {\n var cellCount = table.querySelector('tr').childElementCount;\n var colSpanCount = 0;\n for (var i = 0; i < cellCount; i++) {\n colSpanCount = colSpanCount + (parseInt(table.querySelector('tr').children[i].getAttribute('colspan'), 10) || 1);\n }\n var header = table.createTHead();\n var row = header.insertRow(0);\n for (var j = 0; j < colSpanCount; j++) {\n var th = createElement('th');\n th.appendChild(createElement('br'));\n row.appendChild(th);\n }\n }\n else {\n table.deleteTHead();\n }\n if (e.callBack) {\n e.callBack({\n requestType: e.item.subCommand,\n editorMode: 'HTML',\n event: e.event,\n range: this.parent.nodeSelection.getRange(this.parent.currentDocument),\n elements: this.parent.nodeSelection.getSelectedNodes(this.parent.currentDocument)\n });\n }\n };\n TableCommand.prototype.tableVerticalAlign = function (e) {\n if (e.item.subCommand === 'AlignTop') {\n e.item.tableCell.style.verticalAlign = 'top';\n }\n else if (e.item.subCommand === 'AlignMiddle') {\n e.item.tableCell.style.verticalAlign = 'middle';\n }\n else {\n e.item.tableCell.style.verticalAlign = 'bottom';\n }\n if (e.callBack) {\n e.callBack({\n requestType: e.item.subCommand,\n editorMode: 'HTML',\n event: e.event,\n range: this.parent.nodeSelection.getRange(this.parent.currentDocument),\n elements: this.parent.nodeSelection.getSelectedNodes(this.parent.currentDocument)\n });\n }\n };\n TableCommand.prototype.cellMerge = function (e) {\n if (isNOU(this.curTable)) {\n this.curTable = closest(this.parent.nodeSelection.range.startContainer.parentElement, 'table');\n }\n var selectedCells = this.curTable.querySelectorAll('.e-cell-select');\n if (selectedCells.length < 2) {\n return;\n }\n this.mergeCellContent();\n var minMaxIndexes = this.getSelectedMinMaxIndexes(this.getCorrespondingColumns());\n var firstCell = selectedCells[0];\n var rowSelectedCells = firstCell.parentElement.querySelectorAll('.e-cell-select');\n if (minMaxIndexes.startColumn < minMaxIndexes.endColumn) {\n firstCell.setAttribute('colspan', (minMaxIndexes.endColumn - minMaxIndexes.startColumn + 1).toString());\n }\n if (minMaxIndexes.startRow < minMaxIndexes.endRow) {\n firstCell.setAttribute('rowspan', (minMaxIndexes.endRow - minMaxIndexes.startRow + 1).toString());\n }\n var totalWidth = 0;\n for (var j = rowSelectedCells.length - 1; j >= 0; j--) {\n totalWidth = totalWidth + parseFloat(rowSelectedCells[j].style.width);\n }\n firstCell.style.width = totalWidth + '%';\n for (var i = 1; i <= selectedCells.length - 1; i++) {\n detach(selectedCells[i]);\n }\n for (var i = 0; i < this.curTable.rows.length; i++) {\n if (this.curTable.rows[i].innerHTML === '') {\n detach(this.curTable.rows[i]);\n }\n }\n this.updateRowSpanStyle(minMaxIndexes.startRow, minMaxIndexes.endRow, this.getCorrespondingColumns());\n this.updateColSpanStyle(minMaxIndexes.startColumn, minMaxIndexes.endColumn, this.getCorrespondingColumns());\n e.item.selection.setSelectionText(this.parent.currentDocument, e.item.selection.range.startContainer, e.item.selection.range.startContainer, 0, 0);\n if (this.parent.nodeSelection.range) {\n this.parent.nodeSelection.setCursorPoint(this.parent.currentDocument, \n // eslint-disable-next-line\n this.parent.nodeSelection.range.endContainer, 0);\n }\n if (e.callBack) {\n e.callBack({\n requestType: e.item.subCommand,\n editorMode: 'HTML',\n event: e.event,\n range: this.parent.nodeSelection.getRange(this.parent.currentDocument),\n elements: this.parent.nodeSelection.getSelectedNodes(this.parent.currentDocument)\n });\n }\n };\n TableCommand.prototype.updateColSpanStyle = function (min, max, elements) {\n var colValue;\n var colIndex;\n var colMin;\n var index = 0;\n var attrValue;\n var count = 0;\n var eleArray = elements;\n //eslint-disable-next-line\n if (min < (max = Math.min(max, eleArray[0].length - 1))) {\n for (colIndex === min; colIndex <= max; colIndex++) {\n // eslint-disable-next-line\n if (!(min < colIndex && eleArray[0][colIndex] === eleArray[0][colIndex - 1]) && 1 < (index =\n Math.min(parseInt(eleArray[0][colIndex].getAttribute('colspan'), 10) || 1, max - min + 1)) &&\n eleArray[0][colIndex] === eleArray[0][colIndex + 1]) {\n for (count = index - 1, colValue = 1; colValue < eleArray.length; colValue++) {\n if (eleArray[colValue][colIndex] !== eleArray[colValue - 1][colIndex]) {\n /* eslint-disable */\n for (colMin = colIndex; colMin < colIndex + index; colMin++) {\n if (1 < (attrValue = parseInt(eleArray[colValue][colMin].getAttribute('colspan'), 10) || 1) &&\n eleArray[colValue][colMin] === eleArray[colValue][colMin + 1]) {\n colMin += count = Math.min(count, attrValue - 1);\n }\n else if (!(count = Math.max(0, count - 1))) {\n break;\n }\n /* eslint-enable */\n }\n }\n if (!count) {\n break;\n }\n }\n }\n }\n if (count) {\n this.updateCellAttribute(eleArray, count, 'colspan', 0, eleArray.length - 1, min, max);\n }\n }\n };\n TableCommand.prototype.updateRowSpanStyle = function (min, max, ele) {\n var rowValue;\n var colIndex;\n var rowMin;\n var index = 0;\n var attrValue;\n var count = 0;\n var eleArray = ele;\n // eslint-disable-next-line\n if (min < (max = Math.min(max, eleArray.length - 1))) {\n for (rowValue = min; rowValue <= max; rowValue++) {\n // eslint-disable-next-line\n if (!(min < rowValue && eleArray[rowValue][0] === eleArray[rowValue - 1][0])\n // eslint-disable-next-line no-cond-assign\n && eleArray[rowValue][0] && 1 < (index = Math.min(parseInt(eleArray[rowValue][0].getAttribute('rowspan'), 10) ||\n 1, max - min + 1)) && eleArray[rowValue][0] === eleArray[rowValue + 1][0]) {\n for (count = index - 1, colIndex = 1; colIndex < eleArray[0].length; colIndex++) {\n if (eleArray[rowValue][colIndex] !== eleArray[rowValue][colIndex - 1]) {\n for (rowMin = rowValue; rowMin < rowValue + index; rowMin++) {\n // eslint-disable-next-line\n if (1 < (attrValue = parseInt(eleArray[rowMin][colIndex].getAttribute('rowspan'), 10) || 1) && eleArray[rowMin][colIndex] === eleArray[rowMin + 1][colIndex]) {\n rowMin += count = Math.min(count, attrValue - 1);\n }\n // eslint-disable-next-line\n else if (!(count = Math.max(0, count - 1))) {\n break;\n }\n }\n if (!count) {\n break;\n }\n }\n }\n }\n }\n if (count) {\n this.updateCellAttribute(eleArray, count, 'rowspan', min, max, 0, eleArray[0].length - 1);\n }\n }\n };\n TableCommand.prototype.updateCellAttribute = function (elements, index, attr, min, max, firstIndex, length) {\n var rowIndex;\n var colIndex;\n var spanCount;\n for (rowIndex = min; rowIndex <= max; rowIndex++) {\n for (colIndex = firstIndex; colIndex <= length; colIndex++) {\n // eslint-disable-next-line\n min < rowIndex && elements[rowIndex][colIndex] === elements[rowIndex - 1][colIndex] ||\n firstIndex < colIndex && elements[rowIndex][colIndex] === elements[rowIndex][colIndex - 1] ||\n 1 < (spanCount = parseInt(elements[rowIndex][colIndex].getAttribute(attr), 10) || 1) &&\n // eslint-disable-next-line max-len\n (1 < spanCount - index ? elements[rowIndex][colIndex].setAttribute(attr, (spanCount - index).toString()) :\n elements[rowIndex][colIndex].removeAttribute(attr));\n }\n }\n };\n TableCommand.prototype.mergeCellContent = function () {\n var selectedCells = this.curTable.querySelectorAll('.e-cell-select');\n var innerHtml = selectedCells[0].innerHTML === '
    ' ? '' : selectedCells[0].innerHTML;\n for (var i = 1; i < selectedCells.length; i++) {\n if ('
    ' !== selectedCells[i].innerHTML) {\n innerHtml = innerHtml ? innerHtml + '
    ' + selectedCells[i].innerHTML : innerHtml + selectedCells[i].innerHTML;\n }\n }\n selectedCells[0].innerHTML = innerHtml;\n };\n TableCommand.prototype.getSelectedMinMaxIndexes = function (correspondingCells) {\n var selectedCells = this.curTable.querySelectorAll('.e-cell-select');\n if (0 < selectedCells.length) {\n var minRow = correspondingCells.length;\n var maxRow = 0;\n var minCol = correspondingCells[0].length;\n var maxCol = 0;\n for (var i = 0; i < selectedCells.length; i++) {\n var currentRowCol = this.getCorrespondingIndex(selectedCells[i], correspondingCells);\n var targetRowCol = this.FindIndex(currentRowCol[0], currentRowCol[1], correspondingCells);\n minRow = Math.min(currentRowCol[0], minRow);\n maxRow = Math.max(targetRowCol[0], maxRow);\n minCol = Math.min(currentRowCol[1], minCol);\n maxCol = Math.max(targetRowCol[1], maxCol);\n }\n return {\n startRow: minRow,\n endRow: maxRow,\n startColumn: minCol,\n endColumn: maxCol\n };\n }\n return null;\n };\n TableCommand.prototype.HorizontalSplit = function (e) {\n var selectedCell = e.item.selection.range.startContainer;\n this.curTable = closest(selectedCell.parentElement, 'table');\n if (this.curTable.querySelectorAll('.e-cell-select').length > 1) {\n return;\n }\n this.activeCell = this.curTable.querySelector('.e-cell-select');\n var newCell = this.activeCell.cloneNode(true);\n newCell.removeAttribute('class');\n newCell.innerHTML = '
    ';\n var activeCellIndex = this.getCorrespondingIndex(this.activeCell, this.getCorrespondingColumns());\n var correspondingCells = this.getCorrespondingColumns();\n var activeCellRowSpan = this.activeCell.getAttribute('rowspan') ? parseInt(this.activeCell.getAttribute('rowspan'), 10) : 1;\n if (activeCellRowSpan > 1) {\n var avgCount = Math.ceil(activeCellRowSpan / 2);\n // eslint-disable-next-line\n 1 < avgCount ? this.activeCell.setAttribute('rowspan', avgCount.toString()) :\n this.activeCell.removeAttribute('rowspan');\n // eslint-disable-next-line\n 1 < (activeCellRowSpan - avgCount) ? newCell.setAttribute('rowspan', (activeCellRowSpan - avgCount).toString()) : newCell.removeAttribute('rowspan');\n var avgRowIndex = void 0;\n var colIndex = void 0;\n for (avgRowIndex = activeCellIndex[0] + Math.ceil(activeCellRowSpan / 2),\n colIndex = 0 === activeCellIndex[1] ? activeCellIndex[1]\n : activeCellIndex[1] - 1; 0 <= colIndex && (correspondingCells[avgRowIndex][colIndex] ===\n // eslint-disable-next-line max-len\n correspondingCells[avgRowIndex][colIndex - 1] || 0 < avgRowIndex && correspondingCells[avgRowIndex][colIndex]\n === correspondingCells[avgRowIndex - 1][colIndex]);) {\n colIndex--;\n }\n if (colIndex === -1) {\n // eslint-disable-next-line\n this.curTable.rows[avgRowIndex].firstChild ? this.curTable.rows[avgRowIndex].prepend(newCell) : this.curTable.appendChild(newCell);\n }\n else {\n correspondingCells[avgRowIndex][colIndex].insertAdjacentElement('afterend', newCell);\n }\n }\n else {\n var newTrEle = createElement('tr');\n newTrEle.appendChild(newCell);\n var selectedRow = correspondingCells[activeCellIndex[0]];\n for (var j = 0; j <= selectedRow.length - 1; j++) {\n if (selectedRow[j] !== selectedRow[j - 1] && selectedRow[j] !== this.activeCell) {\n selectedRow[j].setAttribute('rowspan', ((parseInt(selectedRow[j].getAttribute('rowspan'), 10) ?\n parseInt(selectedRow[j].getAttribute('rowspan'), 10) : 1) + 1).toString());\n }\n }\n this.activeCell.parentNode.insertAdjacentElement('afterend', newTrEle);\n }\n if (e.callBack) {\n e.callBack({\n requestType: e.item.subCommand,\n editorMode: 'HTML',\n event: e.event,\n range: this.parent.nodeSelection.getRange(this.parent.currentDocument),\n elements: this.parent.nodeSelection.getSelectedNodes(this.parent.currentDocument)\n });\n }\n };\n TableCommand.prototype.VerticalSplit = function (e) {\n var selectedCell = e.item.selection.range.startContainer;\n this.curTable = closest(selectedCell.parentElement, 'table');\n if (this.curTable.querySelectorAll('.e-cell-select').length > 1) {\n return;\n }\n this.activeCell = this.curTable.querySelector('.e-cell-select');\n var allRows = this.curTable.rows;\n var newCell = this.activeCell.cloneNode(true);\n newCell.removeAttribute('class');\n newCell.innerHTML = '
    ';\n var avgWidth = parseFloat(this.activeCell.style.width) / 2;\n if (this.activeCell.tagName === 'TH' && isNaN(avgWidth)) {\n var cellCount = this.curTable.querySelector('tr').childElementCount;\n var colSpanCount = 0;\n for (var i = 0; i < cellCount; i++) {\n colSpanCount = colSpanCount + (parseInt(this.curTable.querySelector('tr').children[i].getAttribute('colspan'), 10) || 1);\n }\n avgWidth = parseFloat((((this.activeCell.offsetWidth / 2) / this.curTable.offsetWidth) * 100).toFixed(1));\n }\n var activeCellIndex = this.getCorrespondingIndex(this.activeCell, this.getCorrespondingColumns());\n var correspondingColumns = this.getCorrespondingColumns();\n var activeCellcolSpan = parseInt(this.activeCell.getAttribute('colspan'), 10);\n if (activeCellcolSpan > 1) {\n // eslint-disable-next-line\n 1 < Math.ceil(activeCellcolSpan / 2) ? this.activeCell.setAttribute('colspan', (activeCellcolSpan / 2).toString())\n : this.activeCell.removeAttribute('colspan');\n // eslint-disable-next-line\n 1 < (activeCellcolSpan - activeCellcolSpan / 2) ? newCell.setAttribute('colspan', \n // eslint-disable-next-line\n (activeCellcolSpan - activeCellcolSpan / 2).toString()) : newCell.removeAttribute('colspan');\n }\n else {\n for (var i = 0; i <= allRows.length - 1; i++) {\n if (0 === i || correspondingColumns[i][activeCellIndex[1]] !== correspondingColumns[i - 1][activeCellIndex[1]]) {\n var currentCell = correspondingColumns[i][activeCellIndex[1]];\n if (currentCell !== this.activeCell) {\n currentCell.setAttribute('colspan', ((parseInt(currentCell.getAttribute('colspan'), 10) ?\n parseInt(currentCell.getAttribute('colspan'), 10) : 1) + 1).toString());\n }\n }\n }\n }\n this.activeCell.style.width = avgWidth + '%';\n newCell.style.width = avgWidth + '%';\n this.activeCell.parentNode.insertBefore(newCell, this.activeCell.nextSibling);\n if (e.callBack) {\n e.callBack({\n requestType: e.item.subCommand,\n editorMode: 'HTML',\n event: e.event,\n range: this.parent.nodeSelection.getRange(this.parent.currentDocument),\n elements: this.parent.nodeSelection.getSelectedNodes(this.parent.currentDocument)\n });\n }\n };\n TableCommand.prototype.getCorrespondingColumns = function () {\n var elementArray = [];\n // eslint-disable-next-line\n var _this = this;\n var colspan = 0;\n var allRows = _this.curTable.rows;\n for (var i = 0; i <= allRows.length - 1; i++) {\n var ele = allRows[i];\n var index = 0;\n for (var j = 0; j <= ele.children.length - 1; j++) {\n /* eslint-disable */\n var colEle = ele.children[j];\n for (var ele_1 = colEle, colspan_1 = parseInt(ele_1.getAttribute('colspan'), 10) || 1, rowSpan = parseInt(ele_1.getAttribute('rowspan'), 10) || 1, rowIndex = i; rowIndex < i + rowSpan; rowIndex++) {\n for (var colIndex = index; colIndex < index + colspan_1; colIndex++) {\n elementArray[rowIndex] || (elementArray[rowIndex] = []);\n elementArray[rowIndex][colIndex] ? index++ : elementArray[rowIndex][colIndex] = colEle;\n }\n }\n index += colspan;\n }\n /* eslint-enable */\n }\n return elementArray;\n };\n // eslint-disable-next-line\n TableCommand.prototype.FindIndex = function (rowIndex, columnIndex, cells) {\n var nextIndex;\n var nextCol;\n for (nextIndex = rowIndex + 1, nextCol = columnIndex + 1; nextIndex < cells.length;) {\n if (cells[nextIndex][columnIndex] !== cells[rowIndex][columnIndex]) {\n nextIndex--;\n break;\n }\n nextIndex++;\n }\n for (nextIndex === cells.length && nextIndex--; nextCol < cells[rowIndex].length;) {\n if (cells[rowIndex][nextCol] !== cells[rowIndex][columnIndex]) {\n nextCol--;\n break;\n }\n nextCol++;\n }\n return nextCol === cells[rowIndex].length && nextCol--,\n [\n nextIndex,\n nextCol\n ];\n };\n TableCommand.prototype.getCorrespondingIndex = function (cell, allCells) {\n //let value: RowCol = new RowCol();\n for (var i = 0; i < allCells.length; i++) {\n for (var j = 0; j < allCells[i].length; j++) {\n if (allCells[i][j] === cell) {\n return [i, j];\n }\n }\n }\n return [];\n };\n TableCommand.prototype.highlightCells = function (minRow, maxRow, minCol, maxCol, eleArray) {\n var j;\n var k;\n var startCell;\n var endCell;\n var minRowIndex = minRow;\n var maxRowIndex = maxRow;\n var minColIndex = minCol;\n var maxColIndex = maxCol;\n var minMaxValues = new MinMax();\n for (j = minRowIndex; j <= maxRowIndex; j++) {\n /* eslint-disable */\n if ((1 < (parseInt(eleArray[j][minColIndex].getAttribute('rowspan'), 10) || 1) ||\n 1 < (parseInt(eleArray[j][minColIndex].getAttribute('colspan'), 10) || 1)) &&\n (endCell = this.FindIndex((startCell = this.getCorrespondingIndex(eleArray[j][minColIndex], eleArray))[0], startCell[1], eleArray))) {\n minRowIndex = Math.min(startCell[0], minRowIndex);\n maxRowIndex = Math.max(endCell[0], maxRowIndex);\n minColIndex = Math.min(startCell[1], minColIndex);\n maxColIndex = Math.max(endCell[1], maxColIndex);\n }\n else if ((1 < (parseInt(eleArray[j][maxColIndex].getAttribute('rowspan'), 10) || 1) ||\n 1 < (parseInt(eleArray[j][maxColIndex].getAttribute('colspan'), 10) || 1)) &&\n (endCell = this.FindIndex((startCell = this.getCorrespondingIndex(eleArray[j][maxColIndex], eleArray))[0], startCell[1], eleArray))) {\n minRowIndex = Math.min(startCell[0], minRowIndex);\n maxRowIndex = Math.max(endCell[0], maxRowIndex);\n minColIndex = Math.min(startCell[1], minColIndex);\n maxColIndex = Math.max(endCell[1], maxColIndex);\n }\n for (k = minColIndex; k <= maxColIndex; k++) {\n if ((1 < (parseInt(eleArray[minRowIndex][k].getAttribute('rowspan'), 10) || 1) ||\n 1 < (parseInt(eleArray[minRowIndex][k].getAttribute('colspan'), 10) || 1)) &&\n (endCell = this.FindIndex((startCell = this.getCorrespondingIndex(eleArray[minRowIndex][k], eleArray))[0], startCell[1], eleArray))) {\n minRowIndex = Math.min(startCell[0], minRowIndex);\n maxRowIndex = Math.max(endCell[0], maxRowIndex);\n minColIndex = Math.min(startCell[1], minColIndex);\n maxColIndex = Math.max(endCell[1], maxColIndex);\n }\n else if ((1 < (parseInt(eleArray[maxRowIndex][k].getAttribute('rowspan'), 10) || 1) ||\n 1 < (parseInt(eleArray[maxRowIndex][k].getAttribute('colspan'), 10) || 1)) &&\n (endCell = this.FindIndex((startCell = this.getCorrespondingIndex(eleArray[maxRowIndex][k], eleArray))[0], startCell[1], eleArray))) {\n minRowIndex = Math.min(startCell[0], minRowIndex);\n maxRowIndex = Math.max(endCell[0], maxRowIndex);\n minColIndex = Math.min(startCell[1], minColIndex);\n maxColIndex = Math.max(endCell[1], maxColIndex);\n }\n }\n minMaxValues = minRowIndex === minRow && maxRowIndex === maxRow && minColIndex === minCol && maxColIndex === maxCol ? {\n startRow: minRow,\n endRow: maxRow,\n startColumn: minCol,\n endColumn: maxCol\n } : this.highlightCells(minRowIndex, maxRowIndex, minColIndex, maxColIndex, eleArray);\n }\n return minMaxValues;\n /* eslint-enable */\n };\n TableCommand.prototype.tableMove = function (e) {\n this.activeCell = e.selectNode[0];\n var target = e.event.target;\n var activeCellTag = this.activeCell.tagName;\n var targetCellTag = target.tagName;\n this.curTable = closest(target, 'table');\n if (this.curTable.querySelectorAll('.e-cell-select').length > 1) {\n this.parent.nodeSelection.Clear(this.parent.currentDocument);\n }\n if ((target.tagName !== 'TD' && target.tagName !== 'TH') && activeCellTag !== targetCellTag) {\n return;\n }\n var activeRowIndex = Array.prototype.slice.call((this.activeCell).parentElement.parentElement.children)\n .indexOf((this.activeCell).parentElement);\n var activeColumnIndex = Array.prototype.slice.call((this.activeCell).parentElement.children).indexOf(this.activeCell);\n var targetRowIndex = Array.prototype.slice.call(target.parentElement.parentElement.children)\n .indexOf(target.parentElement);\n var targetColumnIndex = Array.prototype.slice.call(target.parentElement.children).indexOf(target);\n var activeCellList = this.curTable.querySelectorAll('.e-cell-select');\n for (var i = activeCellList.length - 1; i >= 0; i--) {\n if (this.activeCell !== activeCellList[i]) {\n activeCellList[i].classList.remove('e-cell-select');\n }\n }\n if (activeRowIndex === targetRowIndex && activeColumnIndex === targetColumnIndex) {\n return;\n }\n var correspondingCells = this.getCorrespondingColumns();\n var activeIndexes = this.getCorrespondingIndex(this.activeCell, correspondingCells);\n var targetIndexes = this.getCorrespondingIndex(target, correspondingCells);\n var minMaxIndexes = this.highlightCells(Math.min(activeIndexes[0], targetIndexes[0]), Math.max(activeIndexes[0], \n /* eslint-disable */\n targetIndexes[0]), Math.min(activeIndexes[1], targetIndexes[1]), Math.max(activeIndexes[1], targetIndexes[1]), correspondingCells);\n for (var rowIndex = minMaxIndexes.startRow; rowIndex <= minMaxIndexes.endRow; rowIndex++) {\n for (var colIndex = minMaxIndexes.startColumn; colIndex <= minMaxIndexes.endColumn; colIndex++) {\n correspondingCells[rowIndex][colIndex].classList.add('e-cell-select');\n }\n }\n if (this.parent.nodeSelection.range) {\n this.parent.nodeSelection.setSelectionText(this.parent.currentDocument, this.parent.nodeSelection.range.endContainer, this.parent.nodeSelection.range.endContainer, 0, 0);\n this.parent.nodeSelection.setCursorPoint(this.parent.currentDocument, this.parent.nodeSelection.range.endContainer, 0);\n }\n };\n ;\n return TableCommand;\n}());\nexport { TableCommand };\nvar MinMax = /** @class */ (function () {\n function MinMax() {\n }\n return MinMax;\n}());\n","/**\n * Is formatted or not.\n *\n * @hidden\n\n */\nvar IsFormatted = /** @class */ (function () {\n function IsFormatted() {\n }\n /**\n * getFormattedNode method\n *\n * @param {Node} node - specifies the node.\n * @param {string} format - specifies the string value.\n * @param {Node} endNode - specifies the end node\n * @returns {Node} - returns the node\n * @hidden\n\n */\n IsFormatted.prototype.getFormattedNode = function (node, format, endNode) {\n var parentNode = this.getFormatParent(node, format, endNode);\n if (parentNode !== null && parentNode !== endNode) {\n return parentNode;\n }\n return null;\n };\n IsFormatted.prototype.getFormatParent = function (node, format, endNode) {\n do {\n node = node.parentNode;\n } while (node && (node !== endNode) && !this.isFormattedNode(node, format));\n return node;\n };\n IsFormatted.prototype.isFormattedNode = function (node, format) {\n switch (format) {\n case 'bold':\n return IsFormatted.isBold(node);\n case 'italic':\n return IsFormatted.isItalic(node);\n case 'underline':\n return IsFormatted.isUnderline(node);\n case 'strikethrough':\n return IsFormatted.isStrikethrough(node);\n case 'superscript':\n return IsFormatted.isSuperscript(node);\n case 'subscript':\n return IsFormatted.isSubscript(node);\n case 'fontcolor':\n return this.isFontColor(node);\n case 'fontname':\n return this.isFontName(node);\n case 'fontsize':\n return this.isFontSize(node);\n case 'backgroundcolor':\n return this.isBackgroundColor(node);\n default:\n return false;\n }\n };\n /**\n * isBold method\n *\n * @param {Node} node - specifies the node value\n * @returns {boolean} - returns the boolean value\n * @hidden\n\n */\n IsFormatted.isBold = function (node) {\n var validTags = ['strong', 'b'];\n if (validTags.indexOf(node.nodeName.toLowerCase()) !== -1) {\n return true;\n }\n else if (this.inlineTags.indexOf(node.nodeName.toLowerCase()) !== -1 &&\n node.style && node.style.fontWeight === 'bold') {\n return true;\n }\n else {\n return false;\n }\n };\n /**\n * isItalic method\n *\n * @param {Node} node - specifies the node value\n * @returns {boolean} - returns the boolean value\n * @hidden\n\n */\n IsFormatted.isItalic = function (node) {\n var validTags = ['em', 'i'];\n if (validTags.indexOf(node.nodeName.toLowerCase()) !== -1) {\n return true;\n }\n else if (this.inlineTags.indexOf(node.nodeName.toLowerCase()) !== -1 &&\n node.style && node.style.fontStyle === 'italic') {\n return true;\n }\n else {\n return false;\n }\n };\n /**\n * isUnderline method\n *\n * @param {Node} node - specifies the node value\n * @returns {boolean} - returns the boolean value\n * @hidden\n\n */\n IsFormatted.isUnderline = function (node) {\n var validTags = ['u'];\n if (validTags.indexOf(node.nodeName.toLowerCase()) !== -1) {\n return true;\n /* eslint-disable */\n }\n else if (this.inlineTags.indexOf(node.nodeName.toLowerCase()) !== -1 &&\n node.style && (node.style.textDecoration === 'underline' ||\n node.style.textDecorationLine === 'underline')) {\n /* eslint-enable */\n return true;\n }\n else {\n return false;\n }\n };\n /**\n * isStrikethrough method\n *\n * @param {Node} node - specifies the node value\n * @returns {boolean} - returns the boolean value\n * @hidden\n\n */\n IsFormatted.isStrikethrough = function (node) {\n var validTags = ['del', 'strike'];\n if (validTags.indexOf(node.nodeName.toLowerCase()) !== -1) {\n return true;\n /* eslint-disable */\n }\n else if (this.inlineTags.indexOf(node.nodeName.toLowerCase()) !== -1 &&\n node.style && (node.style.textDecoration === 'line-through' ||\n node.style.textDecorationLine === 'line-through')) {\n /* eslint-enable */\n return true;\n }\n else {\n return false;\n }\n };\n /**\n * isSuperscript method\n *\n * @param {Node} node - specifies the node value\n * @returns {boolean} - returns the boolean value\n * @hidden\n\n */\n IsFormatted.isSuperscript = function (node) {\n var validTags = ['sup'];\n if (validTags.indexOf(node.nodeName.toLowerCase()) !== -1) {\n return true;\n }\n else {\n return false;\n }\n };\n /**\n * isSubscript method\n *\n * @param {Node} node - specifies the node value\n * @returns {boolean} - returns the boolean value\n * @hidden\n\n */\n IsFormatted.isSubscript = function (node) {\n var validTags = ['sub'];\n if (validTags.indexOf(node.nodeName.toLowerCase()) !== -1) {\n return true;\n }\n else {\n return false;\n }\n };\n IsFormatted.prototype.isFontColor = function (node) {\n var color = node.style && node.style.color;\n if (IsFormatted.inlineTags.indexOf(node.nodeName.toLowerCase()) !== -1 &&\n color !== null && color !== '' && color !== undefined) {\n return true;\n }\n else {\n return false;\n }\n };\n IsFormatted.prototype.isBackgroundColor = function (node) {\n var backColor = node.style && node.style.backgroundColor;\n if (IsFormatted.inlineTags.indexOf(node.nodeName.toLowerCase()) !== -1 &&\n backColor !== null && backColor !== '' && backColor !== undefined) {\n return true;\n }\n else {\n return false;\n }\n };\n IsFormatted.prototype.isFontSize = function (node) {\n var size = node.style && node.style.fontSize;\n if (IsFormatted.inlineTags.indexOf(node.nodeName.toLowerCase()) !== -1 &&\n size !== null && size !== '' && size !== undefined) {\n return true;\n }\n else {\n return false;\n }\n };\n IsFormatted.prototype.isFontName = function (node) {\n var name = node.style && node.style.fontFamily;\n if (IsFormatted.inlineTags.indexOf(node.nodeName.toLowerCase()) !== -1 &&\n name !== null && name !== '' && name !== undefined) {\n return true;\n }\n else {\n return false;\n }\n };\n // Get Formatted Node\n IsFormatted.inlineTags = [\n 'a',\n 'abbr',\n 'acronym',\n 'b',\n 'bdo',\n 'big',\n 'cite',\n 'code',\n 'dfn',\n 'em',\n 'font',\n 'i',\n 'kbd',\n 'label',\n 'q',\n 'samp',\n 'small',\n 'span',\n 'strong',\n 'sub',\n 'sup',\n 'tt',\n 'u',\n 'var',\n 'del'\n ];\n return IsFormatted;\n}());\nexport { IsFormatted };\n","/**\n * `Selection` module is used to handle RTE Selections.\n */\nimport { NodeSelection } from './../../selection/index';\nimport { NodeCutter } from './nodecutter';\nimport { InsertMethods } from './insert-methods';\nimport { IsFormatted } from './isformatted';\nimport { isIDevice, setEditFrameFocus } from '../../common/util';\nimport { isNullOrUndefined as isNOU, Browser, closest, detach } from '@syncfusion/ej2-base';\nimport { DOMNode } from './dom-node';\nvar SelectionCommands = /** @class */ (function () {\n function SelectionCommands() {\n }\n /**\n * applyFormat method\n *\n * @param {Document} docElement - specifies the document\n * @param {string} format - specifies the string value\n * @param {Node} endNode - specifies the end node\n * @param {string} enterAction - specifies the enter key action\n * @param {string} value - specifies the string value\n * @param {string} selector - specifies the string\n * @param {FormatPainterValue} painterValues specifies the element created and last child\n * @returns {void}\n * @hidden\n\n */\n SelectionCommands.applyFormat = function (docElement, format, endNode, enterAction, value, selector, painterValues) {\n this.enterAction = enterAction;\n var validFormats = ['bold', 'italic', 'underline', 'strikethrough', 'superscript',\n 'subscript', 'uppercase', 'lowercase', 'fontcolor', 'fontname', 'fontsize', 'backgroundcolor'];\n if (validFormats.indexOf(format) > -1 || value === 'formatPainter') {\n if (format === 'backgroundcolor' && value === '') {\n value = 'transparent';\n }\n var domSelection = new NodeSelection();\n var domNode = new DOMNode(endNode, docElement);\n var nodeCutter = new NodeCutter();\n var isFormatted = new IsFormatted();\n var range = domSelection.getRange(docElement);\n var save = domSelection.save(range, docElement);\n var nodes = range.collapsed ? domSelection.getSelectionNodeCollection(range) :\n domSelection.getSelectionNodeCollectionBr(range);\n var isCollapsed = false;\n var isFormat = false;\n var isCursor = false;\n var preventRestore = false;\n var isFontStyle = (['fontcolor', 'fontname', 'fontsize', 'backgroundcolor'].indexOf(format) > -1);\n if (range.collapsed) {\n var currentFormatNode = isFormatted.getFormattedNode(range.startContainer, format, endNode);\n var currentSelector = !isNOU(currentFormatNode) ?\n (currentFormatNode.getAttribute('style') === null ? currentFormatNode.nodeName :\n currentFormatNode.nodeName + '[style=\\'' + currentFormatNode.getAttribute('style') + '\\']') : null;\n if (nodes.length > 0) {\n isCollapsed = true;\n range = nodeCutter.GetCursorRange(docElement, range, nodes[0]);\n }\n else if (range.startContainer.nodeType === 3 && ((range.startContainer.parentElement.childElementCount > 0 &&\n range.startOffset > 0 && range.startContainer.parentElement.firstElementChild.tagName.toLowerCase() !== 'br') ||\n !isNOU(currentFormatNode) && currentFormatNode ===\n (range.startContainer.parentElement.closest(currentSelector)) &&\n ((range.startContainer.parentElement.closest(currentSelector)).textContent.replace(\n // eslint-disable-next-line\n new RegExp(String.fromCharCode(8203), 'g'), '').trim().length !== 0))) {\n isCollapsed = true;\n range = nodeCutter.GetCursorRange(docElement, range, range.startContainer);\n nodes.push(range.startContainer);\n }\n else {\n var cursorNode = this.insertCursorNode(docElement, domSelection, range, isFormatted, nodeCutter, format, value, endNode);\n domSelection.endContainer = domSelection.startContainer = domSelection.getNodeArray(cursorNode, true);\n var childNodes = cursorNode.nodeName === 'BR' && cursorNode.parentNode.childNodes;\n if (!isNOU(childNodes) && childNodes.length === 1 && childNodes[0].nodeName === 'BR' && nodes.length === 0) {\n domSelection.setSelectionText(docElement, range.startContainer, range.endContainer, 0, 0);\n preventRestore = true;\n }\n else {\n domSelection.endOffset = domSelection.startOffset = 1;\n }\n if (cursorNode.nodeName === 'BR' && cursorNode.parentNode.textContent.length === 0) {\n preventRestore = true;\n }\n }\n }\n isCursor = range.collapsed;\n var isSubSup = false;\n for (var index = 0; index < nodes.length; index++) {\n var formatNode = isFormatted.getFormattedNode(nodes[index], format, endNode);\n if (formatNode === null) {\n if (format === 'subscript') {\n formatNode = isFormatted.getFormattedNode(nodes[index], 'superscript', endNode);\n isSubSup = formatNode === null ? false : true;\n }\n else if (format === 'superscript') {\n formatNode = isFormatted.getFormattedNode(nodes[index], 'subscript', endNode);\n isSubSup = formatNode === null ? false : true;\n }\n }\n if (index === 0 && formatNode === null) {\n isFormat = true;\n }\n if (formatNode !== null && (!isFormat || isFontStyle)) {\n nodes[index] = this.removeFormat(nodes, index, formatNode, isCursor, isFormat, isFontStyle, range, nodeCutter, format, value, domSelection, endNode, domNode);\n }\n else {\n nodes[index] = this.insertFormat(docElement, nodes, index, formatNode, isCursor, isFormat, isFontStyle, range, nodeCutter, format, value, painterValues, domNode, endNode);\n }\n domSelection = this.applySelection(nodes, domSelection, nodeCutter, index, isCollapsed);\n }\n if (isIDevice()) {\n setEditFrameFocus(endNode, selector);\n }\n if (!preventRestore) {\n save.restore();\n }\n if (isSubSup) {\n this.applyFormat(docElement, format, endNode, enterAction);\n }\n }\n };\n SelectionCommands.insertCursorNode = function (docElement, domSelection, range, isFormatted, nodeCutter, format, value, endNode) {\n var cursorNodes = domSelection.getNodeCollection(range);\n var domNode = new DOMNode(endNode, docElement);\n var cursorFormat = (cursorNodes.length > 0) ?\n (cursorNodes.length > 1 && range.startContainer === range.endContainer) ?\n this.getCursorFormat(isFormatted, cursorNodes, format, endNode) :\n isFormatted.getFormattedNode(cursorNodes[0], format, endNode) : null;\n var cursorNode = null;\n if (cursorFormat) {\n cursorNode = cursorNodes[0];\n if (cursorFormat.firstChild.textContent.charCodeAt(0) === 8203 && cursorFormat.firstChild.nodeType === 3) {\n // eslint-disable-next-line\n var regEx = new RegExp(String.fromCharCode(8203), 'g');\n var emptySpaceNode = void 0;\n if (cursorFormat.firstChild === cursorNode) {\n cursorNode.textContent = (cursorFormat.parentElement && (domNode.isBlockNode(cursorFormat.parentElement) &&\n cursorFormat.parentElement.textContent.length <= 1 ? cursorFormat.parentElement.childElementCount > 1 :\n cursorFormat.childElementCount === 0) &&\n (cursorFormat.parentElement.textContent.length > 1 ||\n cursorFormat.parentElement.firstChild && cursorFormat.parentElement.firstChild.nodeType === 1) ?\n cursorNode.textContent : cursorNode.textContent.replace(regEx, ''));\n emptySpaceNode = cursorNode;\n }\n else {\n cursorFormat.firstChild.textContent = cursorFormat.firstChild.textContent.replace(regEx, '');\n emptySpaceNode = cursorFormat.firstChild;\n }\n var pointer = void 0;\n if (emptySpaceNode.textContent.length === 0) {\n if (!isNOU(emptySpaceNode.previousSibling)) {\n cursorNode = emptySpaceNode.previousSibling;\n pointer = emptySpaceNode.textContent.length - 1;\n domSelection.setCursorPoint(docElement, emptySpaceNode, pointer);\n }\n else if (!isNOU(emptySpaceNode.parentElement) && emptySpaceNode.parentElement.textContent.length === 0) {\n var brElem = document.createElement('BR');\n emptySpaceNode.parentElement.appendChild(brElem);\n detach(emptySpaceNode);\n cursorNode = brElem;\n domSelection.setCursorPoint(docElement, cursorNode.parentElement, 0);\n }\n }\n }\n if ((['fontcolor', 'fontname', 'fontsize', 'backgroundcolor'].indexOf(format) > -1)) {\n if (format === 'fontcolor') {\n cursorFormat.style.color = value;\n }\n else if (format === 'fontname') {\n cursorFormat.style.fontFamily = value;\n }\n else if (format === 'fontsize') {\n cursorFormat.style.fontSize = value;\n }\n else {\n cursorFormat.style.backgroundColor = value;\n }\n cursorNode = cursorFormat;\n }\n else {\n InsertMethods.unwrap(cursorFormat);\n }\n }\n else {\n if (cursorNodes.length > 1 && range.startOffset > 0 && (cursorNodes[0].firstElementChild &&\n cursorNodes[0].firstElementChild.tagName.toLowerCase() === 'br')) {\n cursorNodes[0].innerHTML = '';\n }\n if (cursorNodes.length === 1 && range.startOffset === 0 && (cursorNodes[0].nodeName === 'BR' ||\n cursorNodes[0].nextSibling.nodeName === 'BR')) {\n detach(cursorNodes[0].nodeName === '#text' ? cursorNodes[0].nextSibling : cursorNodes[0]);\n }\n cursorNode = this.getInsertNode(docElement, range, format, value).firstChild;\n }\n return cursorNode;\n };\n SelectionCommands.getCursorFormat = function (isFormatted, cursorNodes, format, endNode) {\n var currentNode;\n for (var index = 0; index < cursorNodes.length; index++) {\n currentNode = cursorNodes[index].lastElementChild ?\n cursorNodes[index].lastElementChild : cursorNodes[index];\n }\n return isFormatted.getFormattedNode(currentNode, format, endNode);\n };\n SelectionCommands.removeFormat = function (nodes, index, formatNode, isCursor, isFormat, isFontStyle, range, nodeCutter, format, value, domSelection, endNode, domNode) {\n var splitNode = null;\n var startText = range.startContainer.nodeName === '#text' ?\n range.startContainer.textContent.substring(range.startOffset, range.startContainer.textContent.length) :\n range.startContainer.textContent;\n var nodeText = nodes[index].textContent;\n if (!(range.startContainer === range.endContainer && range.startOffset === 0\n && range.endOffset === range.startContainer.length)) {\n var nodeIndex = [];\n var cloneNode = nodes[index];\n do {\n nodeIndex.push(domSelection.getIndex(cloneNode));\n cloneNode = cloneNode.parentNode;\n } while (cloneNode && (cloneNode !== formatNode));\n if (nodes[index].nodeName !== 'BR') {\n cloneNode = splitNode = (isCursor && (formatNode.textContent.length - 1) === range.startOffset) ?\n nodeCutter.SplitNode(range, formatNode, true)\n : nodeCutter.GetSpliceNode(range, formatNode);\n }\n if (!isCursor) {\n while (cloneNode && cloneNode.childNodes.length > 0 && ((nodeIndex.length - 1) >= 0)\n && (cloneNode.childNodes.length > nodeIndex[nodeIndex.length - 1])) {\n cloneNode = cloneNode.childNodes[nodeIndex[nodeIndex.length - 1]];\n nodeIndex.pop();\n }\n if (nodes[index].nodeName !== 'BR') {\n if (cloneNode.nodeType === 3 && !(isCursor && cloneNode.nodeValue === '')) {\n nodes[index] = cloneNode;\n }\n else {\n var divNode = document.createElement('div');\n divNode.innerHTML = '​';\n if (cloneNode.nodeType !== 3) {\n cloneNode.insertBefore(divNode.firstChild, cloneNode.firstChild);\n nodes[index] = cloneNode.firstChild;\n }\n else {\n cloneNode.parentNode.insertBefore(divNode.firstChild, cloneNode);\n nodes[index] = cloneNode.previousSibling;\n cloneNode.parentNode.removeChild(cloneNode);\n }\n }\n }\n }\n else {\n var lastNode = splitNode;\n for (; lastNode.firstChild !== null && lastNode.firstChild.nodeType !== 3; null) {\n lastNode = lastNode.firstChild;\n }\n lastNode.innerHTML = '​';\n nodes[index] = lastNode.firstChild;\n }\n }\n else if (isFontStyle && !nodes[index].contains(formatNode) && nodes[index].nodeType === 3 &&\n nodes[index].textContent !== formatNode.textContent) {\n // If the selection is within the format node .\n var isFullNodeSelected = nodes[index].textContent === nodes[index].wholeText;\n var nodeTraverse = nodes[index];\n var styleElement = this.GetFormatNode(format, value);\n // while loop and traverse back until text content does not match with parent text content\n while (nodeTraverse && nodeTraverse.textContent === nodeTraverse.parentElement.textContent) {\n nodeTraverse = nodeTraverse.parentElement;\n }\n if (isFullNodeSelected && formatNode.textContent !== nodeTraverse.textContent) {\n var nodeArray = [];\n var priorityNode = this.getPriorityFormatNode(nodeTraverse, endNode);\n if (priorityNode && priorityNode.textContent === nodeTraverse.textContent) {\n nodeTraverse = priorityNode;\n }\n nodeArray.push(nodeTraverse);\n this.applyStyles(nodeArray, 0, styleElement);\n return nodes[index];\n }\n }\n var fontStyle;\n if (format === 'backgroundcolor') {\n fontStyle = formatNode.style.fontSize;\n }\n var bgStyle;\n if (format === 'fontsize') {\n var bg = closest(nodes[index].parentElement, 'span[style*=' + 'background-color' + ']');\n if (!isNOU(bg)) {\n bgStyle = bg.style.backgroundColor;\n }\n }\n var formatNodeStyles = formatNode.getAttribute('style');\n var formatNodeTagName = formatNode.tagName;\n var child = InsertMethods.unwrap(formatNode);\n if (child[0] && !isFontStyle) {\n var nodeTraverse = child[index] ? child[index] : child[0];\n var textNode = nodeTraverse;\n for (; nodeTraverse && nodeTraverse.parentElement && nodeTraverse.parentElement !== endNode; \n // eslint-disable-next-line\n nodeTraverse = nodeTraverse) {\n var nodeTraverseCondition = void 0;\n if (formatNode.nodeName === 'SPAN') {\n nodeTraverseCondition = nodeTraverse.parentElement.tagName.toLocaleLowerCase()\n === formatNode.tagName.toLocaleLowerCase() && nodeTraverse.parentElement.getAttribute('style') === formatNodeStyles;\n }\n else {\n nodeTraverseCondition = nodeTraverse.parentElement.tagName.toLocaleLowerCase()\n === formatNode.tagName.toLocaleLowerCase();\n }\n if (nodeTraverse.parentElement && nodeTraverseCondition &&\n (nodeTraverse.parentElement.childElementCount > 1 || range.startOffset > 1)) {\n if (textNode.parentElement && textNode.parentElement.tagName.toLocaleLowerCase()\n === formatNode.tagName.toLocaleLowerCase()) {\n if ((range.startOffset === range.endOffset) && textNode.nodeType !== 1 &&\n !isNOU(textNode.textContent) && textNode.parentElement.childElementCount > 1) {\n range.setStart(textNode, 0);\n range.setEnd(textNode, textNode.textContent.length);\n nodeCutter.SplitNode(range, textNode.parentElement, false);\n }\n }\n if (nodeTraverse.parentElement.tagName.toLocaleLowerCase() === 'span') {\n if (formatNode.style.textDecoration === 'underline' &&\n nodeTraverse.parentElement.style.textDecoration !== 'underline') {\n nodeTraverse = nodeTraverse.parentElement;\n continue;\n }\n }\n InsertMethods.unwrap(nodeTraverse.parentElement);\n nodeTraverse = !isNOU(nodeTraverse.parentElement) && !domNode.isBlockNode(nodeTraverse.parentElement) ? textNode :\n nodeTraverse.parentElement;\n }\n else {\n nodeTraverse = nodeTraverse.parentElement;\n }\n }\n }\n if (child.length > 0 && isFontStyle) {\n for (var num = 0; num < child.length; num++) {\n if (child[num].nodeType !== 3 || (child[num].textContent &&\n child[num].textContent.trim().length > 0)) {\n child[num] = InsertMethods.Wrap(child[num], this.GetFormatNode(format, value, formatNodeTagName, formatNodeStyles));\n if (child[num].textContent === startText) {\n if (num === 0) {\n range.setStartBefore(child[num]);\n }\n else if (num === child.length - 1) {\n range.setEndAfter(child[num]);\n }\n }\n }\n }\n var currentNodeElem = nodes[index].parentElement;\n if (!isNOU(fontStyle) && fontStyle !== '') {\n currentNodeElem.style.fontSize = fontStyle;\n }\n if (!isNOU(bgStyle) && bgStyle !== '') {\n currentNodeElem.style.backgroundColor = bgStyle;\n }\n if ((format === 'backgroundcolor' && !isNOU(fontStyle) && fontStyle !== '') &&\n currentNodeElem.parentElement.innerHTML === currentNodeElem.outerHTML) {\n var curParentElem = currentNodeElem.parentElement;\n curParentElem.parentElement.insertBefore(currentNodeElem, curParentElem);\n detach(curParentElem);\n }\n if (format === 'fontsize' || format === 'fontcolor') {\n var liElement = nodes[index].parentElement;\n var parentElement = nodes[index].parentElement;\n while (!isNOU(parentElement) && parentElement.tagName.toLowerCase() !== 'li') {\n parentElement = parentElement.parentElement;\n liElement = parentElement;\n }\n var num = index;\n var liChildContent = '';\n while (num >= 0 && !isNOU(liElement) && liElement.tagName.toLowerCase() === 'li' && liElement.textContent.replace('/\\u200B/g', '').trim().includes(nodes[num].textContent.trim())) {\n liChildContent = ' ' + nodes[num].textContent.trim() + liChildContent;\n num--;\n }\n var isNestedList = false;\n var nestedListCount = 0;\n var isNestedListItem = false;\n if (!isNOU(liElement) && liElement.childNodes) {\n for (var num_1 = 0; num_1 < liElement.childNodes.length; num_1++) {\n if (liElement.childNodes[num_1].nodeName === ('OL' || 'UL')) {\n nestedListCount++;\n isNestedList = true;\n }\n }\n }\n if (!isNOU(liElement) && liElement.tagName.toLowerCase() === 'li' &&\n liElement.textContent.split('\\u200B').join('').trim() === liChildContent.split('\\u200B').join('').trim()) {\n if (format === 'fontsize') {\n liElement.style.fontSize = value;\n }\n else {\n liElement.style.color = value;\n liElement.style.textDecoration = 'inherit';\n }\n }\n else if (!isNOU(liElement) && liElement.tagName.toLowerCase() === 'li' && isNestedList) {\n if (isNestedList && nestedListCount > 0) {\n for (var num_2 = 0; num_2 < liElement.childNodes.length; num_2++) {\n if (nodes[index].textContent === liElement.childNodes[num_2].textContent && nodes[index].textContent === nodeText && liElement.textContent.replace('/\\u200B/g', '').trim().includes(liChildContent.split('\\u200B').join('').trim())) {\n isNestedListItem = true;\n }\n }\n }\n if (isNestedListItem) {\n for (var num_3 = 0; num_3 < liElement.childNodes.length; num_3++) {\n if (liElement.childNodes[num_3].nodeName === ('OL' || 'UL')) {\n liElement.childNodes[num_3].style.fontSize = 'initial';\n }\n }\n if (format === 'fontsize') {\n liElement.style.fontSize = value;\n }\n else {\n liElement.style.color = value;\n liElement.style.textDecoration = 'inherit';\n }\n }\n }\n }\n }\n return nodes[index];\n };\n SelectionCommands.insertFormat = function (docElement, nodes, index, formatNode, isCursor, isFormat, isFontStyle, range, nodeCutter, format, value, painterValues, domNode, endNode) {\n if (!isCursor) {\n if ((formatNode === null && isFormat) || isFontStyle) {\n if (nodes[index].nodeName !== 'BR') {\n nodes[index] = nodeCutter.GetSpliceNode(range, nodes[index]);\n nodes[index].textContent = nodeCutter.TrimLineBreak(nodes[index].textContent);\n }\n if (format === 'uppercase' || format === 'lowercase') {\n nodes[index].textContent = (format === 'uppercase') ? nodes[index].textContent.toLocaleUpperCase()\n : nodes[index].textContent.toLocaleLowerCase();\n }\n else if (!(isFontStyle === true && value === '')) {\n var element = this.GetFormatNode(format, value);\n if (value === 'formatPainter' || isFontStyle) {\n var liElement = nodes[index].parentElement;\n var parentElement = nodes[index].parentElement;\n while (!isNOU(parentElement) && parentElement.tagName.toLowerCase() !== 'li') {\n parentElement = parentElement.parentElement;\n liElement = parentElement;\n }\n if (!isNOU(liElement) && liElement.tagName.toLowerCase() === 'li' &&\n liElement.textContent.trim() === nodes[index].textContent.trim()) {\n if (format === 'fontsize') {\n liElement.style.fontSize = value;\n }\n else if (format === 'fontcolor') {\n liElement.style.color = value;\n liElement.style.textDecoration = 'inherit';\n }\n }\n if (value === 'formatPainter') {\n return this.insertFormatPainterElem(nodes, index, range, nodeCutter, painterValues, domNode);\n }\n var currentNode = nodes[index];\n var priorityNode = this.getPriorityFormatNode(currentNode, endNode);\n // 1. Checking is there any priority node present in the selection range. (Use case for nested styles);\n // 2 Or font style is applied. (Use case not a nested style)\n if (!isNOU(priorityNode) || isFontStyle) {\n var currentFormatNode = isNOU(priorityNode) ? currentNode : priorityNode;\n currentFormatNode = !isNOU(priorityNode) && priorityNode.style.fontSize !== '' ?\n currentFormatNode.firstChild : currentFormatNode;\n if (isNOU(priorityNode) || format === 'fontsize') {\n while (currentFormatNode) {\n var isSameTextContent = currentFormatNode.parentElement.textContent.trim()\n === nodes[index].textContent.trim();\n if (!domNode.isBlockNode(currentFormatNode.parentElement) && isSameTextContent) {\n currentFormatNode = currentFormatNode.parentElement;\n }\n else {\n break;\n }\n }\n }\n var nodeList = [];\n // Since color is different for different themnes, we need to wrap the fontColor over the text node.\n if (format === 'fontcolor') {\n var closestAnchor = closest(nodes[index].parentElement, 'A');\n if (!isNOU(closestAnchor) && closestAnchor.firstChild.textContent.trim()\n === nodes[index].textContent.trim()) {\n currentFormatNode = nodes[index];\n }\n }\n if (nodes[index].textContent.trim() !== currentFormatNode.textContent.trim()) {\n currentFormatNode = nodes[index];\n }\n nodeList[0] = currentFormatNode;\n this.applyStyles(nodeList, 0, element);\n }\n else {\n nodes[index] = this.applyStyles(nodes, index, element);\n }\n }\n else {\n nodes[index] = this.applyStyles(nodes, index, element);\n }\n }\n }\n else {\n nodes[index] = nodeCutter.GetSpliceNode(range, nodes[index]);\n }\n }\n else {\n if (format !== 'uppercase' && format !== 'lowercase') {\n var element = this.getInsertNode(docElement, range, format, value);\n nodes[index] = element.firstChild;\n nodeCutter.position = 1;\n }\n else {\n nodeCutter.position = range.startOffset;\n }\n }\n return nodes[index];\n };\n SelectionCommands.applyStyles = function (nodes, index, element) {\n if (!(nodes[index].nodeName === 'BR' && this.enterAction === 'BR')) {\n nodes[index] = (index === (nodes.length - 1)) || nodes[index].nodeName === 'BR' ?\n InsertMethods.Wrap(nodes[index], element)\n : InsertMethods.WrapBefore(nodes[index], element, true);\n nodes[index] = this.getChildNode(nodes[index], element);\n }\n return nodes[index];\n };\n SelectionCommands.getPriorityFormatNode = function (node, endNode) {\n var isFormatted = new IsFormatted();\n var fontSizeNode = isFormatted.getFormattedNode(node, 'fontsize', endNode);\n var fontColorNode;\n var backgroundColorNode;\n var fontNameNode;\n if (isNOU(fontSizeNode)) {\n backgroundColorNode = isFormatted.getFormattedNode(node, 'backgroundcolor', endNode);\n if (isNOU(backgroundColorNode)) {\n fontNameNode = isFormatted.getFormattedNode(node, 'fontname', endNode);\n if (isNOU(fontNameNode)) {\n fontColorNode = isFormatted.getFormattedNode(node, 'fontcolor', endNode);\n if (isNOU(fontColorNode)) {\n return null;\n }\n else {\n return fontColorNode;\n }\n }\n else {\n return fontNameNode;\n }\n }\n else {\n return backgroundColorNode;\n }\n }\n else {\n return fontSizeNode;\n }\n };\n SelectionCommands.getInsertNode = function (docElement, range, format, value) {\n var element = this.GetFormatNode(format, value);\n element.innerHTML = '​';\n if (Browser.isIE) {\n var frag = docElement.createDocumentFragment();\n frag.appendChild(element);\n range.insertNode(frag);\n }\n else {\n range.insertNode(element);\n }\n return element;\n };\n SelectionCommands.getChildNode = function (node, element) {\n if (node === undefined || node === null) {\n element.innerHTML = '​';\n node = element.firstChild;\n }\n return node;\n };\n SelectionCommands.applySelection = function (nodes, domSelection, nodeCutter, index, isCollapsed) {\n if (nodes.length === 1 && !isCollapsed) {\n domSelection.startContainer = domSelection.getNodeArray(nodes[index], true);\n domSelection.endContainer = domSelection.startContainer;\n domSelection.startOffset = 0;\n domSelection.endOffset = nodes[index].textContent.length;\n }\n else if (nodes.length === 1 && isCollapsed) {\n domSelection.startContainer = domSelection.getNodeArray(nodes[index], true);\n domSelection.endContainer = domSelection.startContainer;\n domSelection.startOffset = nodeCutter.position;\n domSelection.endOffset = nodeCutter.position;\n }\n else if (index === 0) {\n domSelection.startContainer = domSelection.getNodeArray(nodes[index], true);\n domSelection.startOffset = 0;\n }\n else if (index === nodes.length - 1) {\n domSelection.endContainer = domSelection.getNodeArray(nodes[index], false);\n domSelection.endOffset = nodes[index].textContent.length;\n }\n return domSelection;\n };\n SelectionCommands.GetFormatNode = function (format, value, tagName, styles) {\n var node;\n switch (format) {\n case 'bold':\n return document.createElement('strong');\n case 'italic':\n return document.createElement('em');\n case 'underline':\n node = document.createElement('span');\n this.updateStyles(node, tagName, styles);\n node.style.textDecoration = 'underline';\n return node;\n case 'strikethrough':\n node = document.createElement('span');\n this.updateStyles(node, tagName, styles);\n node.style.textDecoration = 'line-through';\n return node;\n case 'superscript':\n return document.createElement('sup');\n case 'subscript':\n return document.createElement('sub');\n case 'fontcolor':\n node = document.createElement('span');\n this.updateStyles(node, tagName, styles);\n node.style.color = value;\n node.style.textDecoration = 'inherit';\n return node;\n case 'fontname':\n node = document.createElement('span');\n this.updateStyles(node, tagName, styles);\n node.style.fontFamily = value;\n return node;\n case 'fontsize':\n node = document.createElement('span');\n this.updateStyles(node, tagName, styles);\n node.style.fontSize = value;\n return node;\n default:\n node = document.createElement('span');\n this.updateStyles(node, tagName, styles);\n node.style.backgroundColor = value;\n return node;\n }\n };\n SelectionCommands.updateStyles = function (ele, tag, styles) {\n if (styles !== null && tag === 'SPAN') {\n ele.setAttribute('style', styles);\n }\n };\n // Below function is used to insert the element created by the format painter plugin.\n SelectionCommands.insertFormatPainterElem = function (nodes, index, range, nodeCutter, painterValues, domNode) {\n var parent = nodes[index].parentElement;\n if (!domNode.isBlockNode(parent)) {\n // The below code is used to remove the already present inline style from the text node.\n while (parent.textContent.trim() === parent.parentElement.textContent.trim() && !domNode.isBlockNode(parent.parentElement)) {\n parent = parent.parentElement;\n }\n if (parent.textContent.trim() !== nodes[index].textContent.trim()) {\n nodeCutter.SplitNode(range, parent, true);\n var childELemList = nodes[index].parentElement.childNodes;\n for (var i = 0; i < childELemList.length; i++) {\n if (childELemList[i].textContent.trim() === nodes[i].textContent.trim()) {\n parent.parentNode.insertBefore(childELemList[i], parent);\n break;\n }\n }\n var blockChildNodes = parent.parentElement.childNodes;\n for (var k = 0; k < blockChildNodes.length; k++) {\n if (blockChildNodes[k].textContent.trim() === '' || blockChildNodes[k].textContent.length === 0) {\n detach(blockChildNodes[k]);\n }\n }\n }\n else {\n InsertMethods.unwrap(parent);\n }\n }\n var elem = painterValues.element;\n if (!isNOU(elem)) {\n // Step 1: Cloning the element that is created by format painter.\n // Step 2: Finding the last child of the nested elememt using the paintervalues.lastchild nodename\n // Step 3: Assigning the nodes[index] text content to the last child element.\n // Step 4: Wrapping the cloned element with the nodes[index]\n var clonedElement = elem.cloneNode(true);\n var elemList = clonedElement.querySelectorAll(painterValues.lastChild.nodeName);\n var lastElement = void 0;\n if (elemList.length > 0) {\n lastElement = elemList[elemList.length - 1];\n }\n else {\n if (!isNOU(clonedElement) && clonedElement.nodeName === painterValues.lastChild.nodeName) {\n lastElement = clonedElement;\n }\n }\n lastElement.textContent = nodes[index].textContent;\n var lastChild = lastElement.childNodes[0];\n nodes[index] = InsertMethods.Wrap(nodes[index], clonedElement);\n nodes[index].textContent = '';\n nodes[index] = lastChild;\n }\n return nodes[index];\n };\n SelectionCommands.enterAction = 'P';\n return SelectionCommands;\n}());\nexport { SelectionCommands };\n","import * as CONSTANT from './../base/constant';\nimport { SelectionCommands } from './selection-commands';\nimport * as EVENTS from './../../common/constant';\n/**\n * Selection EXEC internal component\n *\n * @hidden\n\n */\nvar SelectionBasedExec = /** @class */ (function () {\n /**\n * Constructor for creating the Formats plugin\n *\n * @param {EditorManager} parent - specifies the parent element\n * @hidden\n\n */\n function SelectionBasedExec(parent) {\n this.parent = parent;\n this.addEventListener();\n }\n SelectionBasedExec.prototype.addEventListener = function () {\n this.parent.observer.on(CONSTANT.SELECTION_TYPE, this.applySelection, this);\n this.parent.observer.on(EVENTS.KEY_DOWN_HANDLER, this.keyDownHandler, this);\n };\n SelectionBasedExec.prototype.keyDownHandler = function (e) {\n var validFormats = ['bold', 'italic', 'underline', 'strikethrough', 'superscript',\n 'subscript', 'uppercase', 'lowercase'];\n if (e.event.ctrlKey && validFormats.indexOf(e.event.action) > -1) {\n e.event.preventDefault();\n SelectionCommands.applyFormat(this.parent.currentDocument, e.event.action, this.parent.editableElement, e.enterAction);\n this.callBack(e, e.event.action);\n }\n };\n SelectionBasedExec.prototype.applySelection = function (e) {\n SelectionCommands.applyFormat(this.parent.currentDocument, e.subCommand.toLocaleLowerCase(), this.parent.editableElement, e.enterAction, e.value, e.selector);\n this.callBack(e, e.subCommand);\n };\n SelectionBasedExec.prototype.callBack = function (event, action) {\n if (event.callBack) {\n event.callBack({\n requestType: action,\n event: event.event,\n editorMode: 'HTML',\n range: this.parent.nodeSelection.getRange(this.parent.currentDocument),\n elements: this.parent.nodeSelection.getSelectedNodes(this.parent.currentDocument)\n });\n }\n };\n return SelectionBasedExec;\n}());\nexport { SelectionBasedExec };\n","import * as CONSTANT from './../base/constant';\nimport { InsertHtml } from './inserthtml';\n/**\n * Selection EXEC internal component\n *\n * @hidden\n\n */\nvar InsertHtmlExec = /** @class */ (function () {\n /**\n * Constructor for creating the Formats plugin\n *\n * @param {EditorManager} parent - sepcifies the parent element\n * @hidden\n\n */\n function InsertHtmlExec(parent) {\n this.parent = parent;\n this.addEventListener();\n }\n InsertHtmlExec.prototype.addEventListener = function () {\n this.parent.observer.on(CONSTANT.INSERTHTML_TYPE, this.applyHtml, this);\n };\n InsertHtmlExec.prototype.applyHtml = function (e) {\n InsertHtml.Insert(this.parent.currentDocument, e.value, this.parent.editableElement, true, e.enterAction);\n if (e.subCommand === 'pasteCleanup') {\n var pastedElements = this.parent.editableElement.querySelectorAll('.pasteContent_RTE');\n var allPastedElements = [].slice.call(pastedElements);\n var imgElements = this.parent.editableElement.querySelectorAll('.pasteContent_Img');\n var allImgElm = [].slice.call(imgElements);\n e.callBack({\n requestType: e.subCommand,\n editorMode: 'HTML',\n elements: allPastedElements,\n imgElem: allImgElm\n });\n }\n else {\n if (e.callBack) {\n e.callBack({\n requestType: e.subCommand,\n editorMode: 'HTML',\n event: e.event,\n range: this.parent.nodeSelection.getRange(this.parent.currentDocument),\n elements: this.parent.nodeSelection.getSelectedNodes(this.parent.currentDocument)\n });\n }\n }\n };\n return InsertHtmlExec;\n}());\nexport { InsertHtmlExec };\n","/**\n * `Clear Format` module is used to handle Clear Format.\n */\nimport { closest } from '@syncfusion/ej2-base';\nimport { NodeSelection } from './../../selection/index';\nimport { NodeCutter } from './nodecutter';\nimport { DOMNode } from './dom-node';\nimport { InsertMethods } from './insert-methods';\nimport { IsFormatted } from './isformatted';\nimport { isIDevice, setEditFrameFocus } from '../../common/util';\nvar ClearFormat = /** @class */ (function () {\n function ClearFormat() {\n }\n /**\n * clear method\n *\n * @param {Document} docElement - specifies the document element.\n * @param {Node} endNode - specifies the end node\n * @param {string} enterAction - specifies the enter key action\n * @param {string} selector - specifies the string value\n * @returns {void}\n * @hidden\n\n */\n ClearFormat.clear = function (docElement, endNode, enterAction, selector, command) {\n this.domNode = new DOMNode(endNode, docElement);\n this.defaultTag = enterAction === 'P' ? this.defaultTag : 'div';\n var nodeSelection = new NodeSelection();\n var nodeCutter = new NodeCutter();\n var range = nodeSelection.getRange(docElement);\n var nodes = range.collapsed ? nodeSelection.getSelectionNodeCollection(range) :\n nodeSelection.getSelectionNodeCollectionBr(range);\n var save = nodeSelection.save(range, docElement);\n var cursorRange = false;\n if (range.collapsed && command !== 'ClearFormat') {\n cursorRange = true;\n range = nodeCutter.GetCursorRange(docElement, range, nodes[0]);\n }\n var isCollapsed = range.collapsed;\n if (!isCollapsed) {\n var preNode = void 0;\n if (nodes.length > 0 && nodes[0].nodeName === 'BR' && closest(nodes[0], 'table')) {\n preNode = nodeCutter.GetSpliceNode(range, closest(nodes[0], 'table'));\n }\n else {\n preNode = nodeCutter.GetSpliceNode(range, nodes[nodes.length > 1 && nodes[0].nodeName === 'IMG' ? 1 : 0]);\n }\n if (nodes.length === 1) {\n nodeSelection.setSelectionContents(docElement, preNode);\n range = nodeSelection.getRange(docElement);\n }\n else if (nodes.length > 1) {\n var i = 1;\n var lastText = nodes[nodes.length - i];\n while (nodes.length <= i && nodes[nodes.length - i].nodeName === 'BR') {\n i++;\n lastText = nodes[nodes.length - i];\n }\n var lasNode = nodeCutter.GetSpliceNode(range, lastText);\n nodeSelection.setSelectionText(docElement, preNode, lasNode, 0, (lasNode.nodeType === 3) ?\n lasNode.textContent.length : lasNode.childNodes.length);\n range = nodeSelection.getRange(docElement);\n }\n var exactNodes = nodeSelection.getNodeCollection(range);\n var cloneSelectNodes = exactNodes.slice();\n this.clearInlines(nodeSelection.getSelectionNodes(cloneSelectNodes), cloneSelectNodes, nodeSelection.getRange(docElement), nodeCutter, endNode);\n this.reSelection(docElement, save, exactNodes);\n range = nodeSelection.getRange(docElement);\n exactNodes = nodeSelection.getNodeCollection(range);\n var cloneParentNodes = exactNodes.slice();\n this.clearBlocks(docElement, cloneParentNodes, endNode, nodeCutter, nodeSelection);\n if (isIDevice()) {\n setEditFrameFocus(endNode, selector);\n }\n this.reSelection(docElement, save, exactNodes);\n }\n if (cursorRange) {\n nodeSelection.setCursorPoint(docElement, range.endContainer, range.endOffset);\n }\n };\n ClearFormat.reSelection = function (docElement, save, exactNodes) {\n var selectionNodes = save.getInsertNodes(exactNodes);\n save.startContainer = save.getNodeArray(selectionNodes[0], true, docElement);\n save.startOffset = 0;\n save.endContainer = save.getNodeArray(selectionNodes[selectionNodes.length - 1], false, docElement);\n var endIndexNode = selectionNodes[selectionNodes.length - 1];\n save.endOffset = (endIndexNode.nodeType === 3) ? endIndexNode.textContent.length\n : endIndexNode.childNodes.length;\n save.restore();\n };\n ClearFormat.clearBlocks = function (docElement, nodes, endNode, nodeCutter, nodeSelection) {\n var parentNodes = [];\n for (var index = 0; index < nodes.length; index++) {\n if (this.BLOCK_TAGS.indexOf(nodes[index].nodeName.toLocaleLowerCase()) > -1\n && parentNodes.indexOf(nodes[index]) === -1) {\n parentNodes.push(nodes[index]);\n }\n else if ((this.BLOCK_TAGS.indexOf(nodes[index].parentNode.nodeName.toLocaleLowerCase()) > -1)\n && parentNodes.indexOf(nodes[index].parentNode) === -1\n && endNode !== nodes[index].parentNode) {\n parentNodes.push(nodes[index].parentNode);\n }\n }\n parentNodes = this.spliceParent(parentNodes, nodes)[0];\n parentNodes = this.removeParent(parentNodes);\n this.unWrap(docElement, parentNodes, nodeCutter, nodeSelection);\n };\n ClearFormat.spliceParent = function (parentNodes, nodes) {\n for (var index1 = 0; index1 < parentNodes.length; index1++) {\n var len = parentNodes[index1].childNodes.length;\n for (var index2 = 0; index2 < len; index2++) {\n if ((nodes.indexOf(parentNodes[index1].childNodes[index2]) > 0)\n && (parentNodes[index1].childNodes[index2].childNodes.length > 0)) {\n nodes = this.spliceParent([parentNodes[index1].childNodes[index2]], nodes)[1];\n }\n if ((nodes.indexOf(parentNodes[index1].childNodes[index2]) <= -1) &&\n (parentNodes[index1].childNodes[index2].textContent.trim() !== '')) {\n for (var index3 = 0; index3 < len; index3++) {\n if (nodes.indexOf(parentNodes[index1].childNodes[index3]) > -1) {\n nodes.splice(nodes.indexOf(parentNodes[index1].childNodes[index3]), 1);\n }\n }\n index2 = parentNodes[index1].childNodes.length;\n var parentIndex = parentNodes.indexOf(parentNodes[index1].parentNode);\n var nodeIndex = nodes.indexOf(parentNodes[index1].parentNode);\n if (parentIndex > -1) {\n parentNodes.splice(parentIndex, 1);\n }\n if (nodeIndex > -1) {\n nodes.splice(nodeIndex, 1);\n }\n var elementIndex = nodes.indexOf(parentNodes[index1]);\n if (elementIndex > -1) {\n nodes.splice(elementIndex, 1);\n }\n parentNodes.splice(index1, 1);\n index1--;\n }\n }\n }\n return [parentNodes, nodes];\n };\n ClearFormat.removeChild = function (parentNodes, parentNode) {\n var count = parentNode.childNodes.length;\n if (count > 0) {\n for (var index = 0; index < count; index++) {\n if (parentNodes.indexOf(parentNode.childNodes[index]) > -1) {\n parentNodes = this.removeChild(parentNodes, parentNode.childNodes[index]);\n parentNodes.splice(parentNodes.indexOf(parentNode.childNodes[index]), 1);\n }\n }\n }\n return parentNodes;\n };\n ClearFormat.removeParent = function (parentNodes) {\n for (var index = 0; index < parentNodes.length; index++) {\n if (parentNodes.indexOf(parentNodes[index].parentNode) > -1) {\n parentNodes = this.removeChild(parentNodes, parentNodes[index]);\n parentNodes.splice(index, 1);\n index--;\n }\n }\n return parentNodes;\n };\n ClearFormat.unWrap = function (docElement, parentNodes, nodeCutter, nodeSelection) {\n for (var index1 = 0; index1 < parentNodes.length; index1++) {\n if (this.NONVALID_TAGS.indexOf(parentNodes[index1].nodeName.toLowerCase()) > -1\n && parentNodes[index1].parentNode\n && this.NONVALID_PARENT_TAGS.indexOf(parentNodes[index1].parentNode.nodeName.toLowerCase()) > -1) {\n nodeSelection.setSelectionText(docElement, parentNodes[index1], parentNodes[index1], 0, parentNodes[index1].childNodes.length);\n InsertMethods.unwrap(nodeCutter.GetSpliceNode(nodeSelection.getRange(docElement), parentNodes[index1].parentNode));\n }\n if (parentNodes[index1].nodeName.toLocaleLowerCase() !== 'p') {\n if (this.NONVALID_PARENT_TAGS.indexOf(parentNodes[index1].nodeName.toLowerCase()) < 0\n && parentNodes[index1].parentNode.nodeName.toLocaleLowerCase() !== 'p'\n && !((parentNodes[index1].nodeName.toLocaleLowerCase() === 'blockquote'\n || parentNodes[index1].nodeName.toLocaleLowerCase() === 'li')\n && this.IGNORE_PARENT_TAGS.indexOf(parentNodes[index1].childNodes[0].nodeName.toLocaleLowerCase()) > -1)\n && !(parentNodes[index1].childNodes.length === 1\n && parentNodes[index1].childNodes[0].nodeName.toLocaleLowerCase() === 'p')) {\n InsertMethods.Wrap(parentNodes[index1], docElement.createElement(this.defaultTag));\n }\n var childNodes = InsertMethods.unwrap(parentNodes[index1]);\n if (childNodes.length === 1\n && childNodes[0].parentNode.nodeName.toLocaleLowerCase() === 'p') {\n InsertMethods.Wrap(parentNodes[index1], docElement.createElement(this.defaultTag));\n InsertMethods.unwrap(parentNodes[index1]);\n }\n for (var index2 = 0; index2 < childNodes.length; index2++) {\n if (this.NONVALID_TAGS.indexOf(childNodes[index2].nodeName.toLowerCase()) > -1) {\n this.unWrap(docElement, [childNodes[index2]], nodeCutter, nodeSelection);\n }\n else if (this.BLOCK_TAGS.indexOf(childNodes[index2].nodeName.toLocaleLowerCase()) > -1 &&\n childNodes[index2].nodeName.toLocaleLowerCase() !== 'p') {\n var blockNodes = this.removeParent([childNodes[index2]]);\n this.unWrap(docElement, blockNodes, nodeCutter, nodeSelection);\n }\n else if (this.BLOCK_TAGS.indexOf(childNodes[index2].nodeName.toLocaleLowerCase()) > -1 &&\n childNodes[index2].parentNode.nodeName.toLocaleLowerCase() ===\n childNodes[index2].nodeName.toLocaleLowerCase()) {\n InsertMethods.unwrap(childNodes[index2]);\n }\n else if (this.BLOCK_TAGS.indexOf(childNodes[index2].nodeName.toLocaleLowerCase()) > -1 &&\n childNodes[index2].nodeName.toLocaleLowerCase() === 'p') {\n InsertMethods.Wrap(childNodes[index2], docElement.createElement(this.defaultTag));\n InsertMethods.unwrap(childNodes[index2]);\n }\n }\n }\n else {\n InsertMethods.Wrap(parentNodes[index1], docElement.createElement(this.defaultTag));\n InsertMethods.unwrap(parentNodes[index1]);\n }\n }\n };\n ClearFormat.clearInlines = function (textNodes, nodes, range, nodeCutter, \n // eslint-disable-next-line\n endNode) {\n for (var index = 0; index < textNodes.length; index++) {\n var currentInlineNode = textNodes[index];\n var currentNode = void 0;\n while (!this.domNode.isBlockNode(currentInlineNode) &&\n (currentInlineNode.parentElement && !currentInlineNode.parentElement.classList.contains('e-img-inner'))) {\n currentNode = currentInlineNode;\n currentInlineNode = currentInlineNode.parentElement;\n }\n if (currentNode &&\n IsFormatted.inlineTags.indexOf(currentNode.nodeName.toLocaleLowerCase()) > -1) {\n nodeCutter.GetSpliceNode(range, currentNode);\n this.removeInlineParent(currentNode);\n }\n }\n };\n ClearFormat.removeInlineParent = function (textNodes) {\n var nodes = InsertMethods.unwrap(textNodes);\n for (var index = 0; index < nodes.length; index++) {\n if (nodes[index].parentNode.childNodes.length === 1 && !nodes[index].parentNode.classList.contains('e-img-inner')\n && IsFormatted.inlineTags.indexOf(nodes[index].parentNode.nodeName.toLocaleLowerCase()) > -1) {\n this.removeInlineParent(nodes[index].parentNode);\n }\n else if (IsFormatted.inlineTags.indexOf(nodes[index].nodeName.toLocaleLowerCase()) > -1) {\n this.removeInlineParent(nodes[index]);\n }\n }\n };\n ClearFormat.BLOCK_TAGS = ['address', 'article', 'aside', 'blockquote',\n 'details', 'dd', 'div', 'dl', 'dt', 'fieldset', 'figcaption', 'figure', 'footer',\n 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header', 'hgroup', 'li', 'main', 'nav',\n 'noscript', 'ol', 'p', 'pre', 'section', 'ul'];\n ClearFormat.NONVALID_PARENT_TAGS = ['thead', 'tbody', 'ul', 'ol', 'table', 'tfoot', 'tr'];\n ClearFormat.IGNORE_PARENT_TAGS = ['ul', 'ol', 'table'];\n ClearFormat.NONVALID_TAGS = ['thead', 'tbody', 'figcaption', 'td', 'tr', 'th', 'tfoot', 'figcaption', 'li'];\n ClearFormat.defaultTag = 'p';\n return ClearFormat;\n}());\nexport { ClearFormat };\n","import * as CONSTANT from './../base/constant';\nimport { ClearFormat } from './clearformat';\nimport * as EVENTS from './../../common/constant';\n/**\n * Clear Format EXEC internal component\n *\n * @hidden\n\n */\nvar ClearFormatExec = /** @class */ (function () {\n /**\n * Constructor for creating the Formats plugin\n *\n * @param {EditorManager} parent - specifies the parent element.\n * @returns {void}\n * @hidden\n\n */\n function ClearFormatExec(parent) {\n this.parent = parent;\n this.addEventListener();\n }\n ClearFormatExec.prototype.addEventListener = function () {\n this.parent.observer.on(CONSTANT.CLEAR_TYPE, this.applyClear, this);\n this.parent.observer.on(EVENTS.KEY_DOWN_HANDLER, this.onKeyDown, this);\n };\n ClearFormatExec.prototype.onKeyDown = function (e) {\n switch (e.event.action) {\n case 'clear-format':\n this.applyClear({ subCommand: 'ClearFormat', callBack: e.callBack, enterAction: e.enterAction });\n e.event.preventDefault();\n break;\n }\n };\n ClearFormatExec.prototype.applyClear = function (e) {\n if (e.subCommand === 'ClearFormat') {\n ClearFormat.clear(this.parent.currentDocument, this.parent.editableElement, e.enterAction, e.selector, e.subCommand);\n if (e.callBack) {\n e.callBack({\n requestType: e.subCommand,\n event: e.event,\n editorMode: 'HTML',\n range: this.parent.nodeSelection.getRange(this.parent.currentDocument),\n elements: this.parent.nodeSelection.getSelectedNodes(this.parent.currentDocument)\n });\n }\n }\n };\n return ClearFormatExec;\n}());\nexport { ClearFormatExec };\n","import { debounce, isNullOrUndefined, detach } from '@syncfusion/ej2-base';\nimport { NodeSelection } from './../../selection/selection';\nimport * as EVENTS from './../../common/constant';\nimport { isIDevice, setEditFrameFocus } from '../../common/util';\n/**\n * `Undo` module is used to handle undo actions.\n */\nvar UndoRedoManager = /** @class */ (function () {\n function UndoRedoManager(parent, options) {\n this.undoRedoStack = [];\n this.parent = parent;\n this.undoRedoSteps = !isNullOrUndefined(options) ? options.undoRedoSteps : 30;\n this.undoRedoTimer = !isNullOrUndefined(options) ? options.undoRedoTimer : 300;\n this.addEventListener();\n }\n UndoRedoManager.prototype.addEventListener = function () {\n var debounceListener = debounce(this.keyUp, this.undoRedoTimer);\n this.parent.observer.on(EVENTS.KEY_UP_HANDLER, debounceListener, this);\n this.parent.observer.on(EVENTS.KEY_DOWN_HANDLER, this.keyDown, this);\n this.parent.observer.on(EVENTS.ACTION, this.onAction, this);\n this.parent.observer.on(EVENTS.MODEL_CHANGED_PLUGIN, this.onPropertyChanged, this);\n };\n UndoRedoManager.prototype.onPropertyChanged = function (props) {\n for (var _i = 0, _a = Object.keys(props.newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'undoRedoSteps':\n this.undoRedoSteps = props.newProp.undoRedoSteps;\n break;\n case 'undoRedoTimer':\n this.undoRedoTimer = props.newProp.undoRedoTimer;\n break;\n }\n }\n };\n UndoRedoManager.prototype.removeEventListener = function () {\n this.parent.observer.off(EVENTS.KEY_UP_HANDLER, this.keyUp);\n this.parent.observer.off(EVENTS.KEY_DOWN_HANDLER, this.keyDown);\n this.parent.observer.off(EVENTS.ACTION, this.onAction);\n };\n /**\n * onAction method\n *\n * @param {IHtmlSubCommands} e - specifies the sub command\n * @returns {void}\n * @hidden\n\n */\n UndoRedoManager.prototype.onAction = function (e) {\n if (e.subCommand === 'Undo') {\n this.undo(e);\n }\n else {\n this.redo(e);\n }\n };\n /**\n * Destroys the ToolBar.\n *\n * @function destroy\n * @returns {void}\n * @hidden\n\n */\n UndoRedoManager.prototype.destroy = function () {\n this.removeEventListener();\n };\n UndoRedoManager.prototype.keyDown = function (e) {\n var event = e.event;\n // eslint-disable-next-line\n var proxy = this;\n switch (event.action) {\n case 'undo':\n event.preventDefault();\n proxy.undo(e);\n break;\n case 'redo':\n event.preventDefault();\n proxy.redo(e);\n break;\n }\n };\n UndoRedoManager.prototype.keyUp = function (e) {\n if (e.event.keyCode !== 17 && !e.event.ctrlKey) {\n this.saveData(e);\n }\n };\n /**\n * RTE collection stored html format.\n *\n * @function saveData\n * @param {KeyboardEvent} e - specifies the keyboard event\n * @returns {void}\n * @hidden\n\n */\n UndoRedoManager.prototype.saveData = function (e) {\n var range = new NodeSelection().getRange(this.parent.currentDocument);\n var currentContainer = this.parent.editableElement === range.startContainer.parentElement ?\n range.startContainer.parentElement : range.startContainer;\n for (var i = currentContainer.childNodes.length - 1; i >= 0; i--) {\n if (!isNullOrUndefined(currentContainer.childNodes[i]) && currentContainer.childNodes[i].nodeName === '#text' &&\n currentContainer.childNodes[i].textContent.length === 0 && currentContainer.childNodes[i].nodeName !== 'IMG' &&\n currentContainer.childNodes[i].nodeName !== 'BR' && currentContainer.childNodes[i].nodeName && 'HR') {\n detach(currentContainer.childNodes[i]);\n }\n }\n range = new NodeSelection().getRange(this.parent.currentDocument);\n var save = new NodeSelection().save(range, this.parent.currentDocument);\n var htmlText = this.parent.editableElement.innerHTML;\n var changEle = { text: htmlText, range: save };\n if (this.undoRedoStack.length >= this.steps) {\n this.undoRedoStack = this.undoRedoStack.slice(0, this.steps + 1);\n }\n if (this.undoRedoStack.length > 1 && (this.undoRedoStack[this.undoRedoStack.length - 1].range.range.collapsed === range.collapsed)\n && (this.undoRedoStack[this.undoRedoStack.length - 1].range.startOffset === save.range.startOffset) &&\n (this.undoRedoStack[this.undoRedoStack.length - 1].range.endOffset === save.range.endOffset) &&\n (this.undoRedoStack[this.undoRedoStack.length - 1].range.range.startContainer === save.range.startContainer) &&\n (this.undoRedoStack[this.undoRedoStack.length - 1].text.trim() === changEle.text.trim())) {\n return;\n }\n this.undoRedoStack.push(changEle);\n this.steps = this.undoRedoStack.length - 1;\n if (this.steps > this.undoRedoSteps) {\n this.undoRedoStack.shift();\n this.steps--;\n }\n if (e && e.callBack) {\n e.callBack();\n }\n };\n /**\n * Undo the editable text.\n *\n * @function undo\n * @param {IHtmlSubCommands} e - specifies the sub commands\n * @returns {void}\n * @hidden\n\n */\n UndoRedoManager.prototype.undo = function (e) {\n if (this.steps > 0) {\n var range = this.undoRedoStack[this.steps - 1].range;\n var removedContent = this.undoRedoStack[this.steps - 1].text;\n this.parent.editableElement.innerHTML = removedContent;\n this.parent.editableElement.focus();\n if (isIDevice()) {\n setEditFrameFocus(this.parent.editableElement, e.selector);\n }\n range.restore();\n this.steps--;\n if (e.callBack) {\n e.callBack({\n requestType: 'Undo',\n editorMode: 'HTML',\n range: range,\n elements: this.parent.nodeSelection.getSelectedNodes(this.parent.currentDocument),\n event: e.event\n });\n }\n }\n };\n /**\n * Redo the editable text.\n *\n * @param {IHtmlSubCommands} e - specifies the sub commands\n * @function redo\n * @returns {void}\n * @hidden\n\n */\n UndoRedoManager.prototype.redo = function (e) {\n if (this.undoRedoStack[this.steps + 1] != null) {\n var range = this.undoRedoStack[this.steps + 1].range;\n this.parent.editableElement.innerHTML = this.undoRedoStack[this.steps + 1].text;\n this.parent.editableElement.focus();\n if (isIDevice()) {\n setEditFrameFocus(this.parent.editableElement, e.selector);\n }\n range.restore();\n this.steps++;\n if (e.callBack) {\n e.callBack({\n requestType: 'Redo',\n editorMode: 'HTML',\n range: range,\n elements: this.parent.nodeSelection.getSelectedNodes(this.parent.currentDocument),\n event: e.event\n });\n }\n }\n };\n /**\n * getUndoStatus method\n *\n * @returns {boolean} - returns the boolean value\n * @hidden\n\n */\n UndoRedoManager.prototype.getUndoStatus = function () {\n var status = { undo: false, redo: false };\n if (this.steps > 0) {\n status.undo = true;\n }\n if (this.undoRedoStack[this.steps + 1] != null) {\n status.redo = true;\n }\n return status;\n };\n return UndoRedoManager;\n}());\nexport { UndoRedoManager };\n","import * as EVENTS from '../../common/constant';\nimport { createElement, isNullOrUndefined as isNOU, detach } from '@syncfusion/ej2-base';\n/**\n * PasteCleanup for MsWord content\n *\n * @hidden\n\n */\nvar MsWordPaste = /** @class */ (function () {\n function MsWordPaste(parent) {\n this.olData = [\n 'decimal',\n 'lower-alpha',\n 'lower-roman',\n 'upper-alpha',\n 'upper-roman',\n 'lower-greek'\n ];\n this.ulData = [\n 'disc',\n 'square',\n 'circle',\n 'disc',\n 'square',\n 'circle'\n ];\n this.ignorableNodes = ['A', 'APPLET', 'B', 'BLOCKQUOTE', 'BR',\n 'BUTTON', 'CENTER', 'CODE', 'COL', 'COLGROUP', 'DD', 'DEL', 'DFN', 'DIR', 'DIV',\n 'DL', 'DT', 'EM', 'FIELDSET', 'FONT', 'FORM', 'FRAME', 'FRAMESET', 'H1', 'H2',\n 'H3', 'H4', 'H5', 'H6', 'HR', 'I', 'IMG', 'IFRAME', 'INPUT', 'INS', 'LABEL',\n 'LI', 'OL', 'OPTION', 'P', 'PARAM', 'PRE', 'Q', 'S', 'SELECT', 'SPAN', 'STRIKE',\n 'STRONG', 'SUB', 'SUP', 'TABLE', 'TBODY', 'TD', 'TEXTAREA', 'TFOOT', 'TH',\n 'THEAD', 'TITLE', 'TR', 'TT', 'U', 'UL'];\n this.blockNode = ['div', 'p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6',\n 'address', 'blockquote', 'button', 'center', 'dd', 'dir', 'dl', 'dt', 'fieldset',\n 'frameset', 'hr', 'iframe', 'isindex', 'li', 'map', 'menu', 'noframes', 'noscript',\n 'object', 'ol', 'pre', 'table', 'tbody', 'td', 'tfoot', 'th', 'thead', 'tr', 'ul',\n 'header', 'article', 'nav', 'footer', 'section', 'aside', 'main', 'figure', 'figcaption'];\n this.borderStyle = ['border-top', 'border-right', 'border-bottom', 'border-left'];\n this.upperRomanNumber = ['I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX',\n 'X', 'XI', 'XII', 'XIII', 'XIV', 'XV', 'XVI', 'XVII', 'XVIII', 'XIX', 'XX'];\n this.lowerRomanNumber = ['i', 'ii', 'iii', 'iv', 'v', 'vi', 'vii', 'viii', 'ix',\n 'x', 'xi', 'xii', 'xiii', 'xiv', 'xv', 'xvi', 'xvii', 'xviii', 'xix', 'xx'];\n this.lowerGreekNumber = ['α', 'β', 'γ', 'δ', 'ε', 'ζ', 'η', 'θ', 'ι', 'κ', 'λ',\n 'μ', 'ν', 'ξ', 'ο', 'π', 'ρ', 'σ', 'τ', 'υ', 'φ', 'χ', 'ψ', 'ω'];\n this.removableElements = ['o:p', 'style'];\n this.listContents = [];\n this.parent = parent;\n this.addEventListener();\n }\n MsWordPaste.prototype.addEventListener = function () {\n this.parent.observer.on(EVENTS.MS_WORD_CLEANUP_PLUGIN, this.wordCleanup, this);\n };\n MsWordPaste.prototype.wordCleanup = function (e) {\n var wordPasteStyleConfig = !isNOU(e.allowedStylePropertiesArray) ? e.allowedStylePropertiesArray : [];\n var listNodes = [];\n var tempHTMLContent = e.args.clipboardData.getData('text/HTML');\n var rtfData = e.args.clipboardData.getData('text/rtf');\n var elm = createElement('p');\n elm.setAttribute('id', 'MSWord-Content');\n elm.innerHTML = tempHTMLContent;\n var patern = /class='?Mso|style='[^ ]*\\bmso-/i;\n var patern2 = /class=\"?Mso|style=\"[^ ]*\\bmso-/i;\n var patern3 = /(class=\"?Mso|class='?Mso|class=\"?Xl|class='?Xl|class=Xl|style=\"[^\"]*\\bmso-|style='[^']*\\bmso-|w:WordDocument)/gi;\n var pattern4 = /style='mso-width-source:/i;\n if (patern.test(tempHTMLContent) || patern2.test(tempHTMLContent) || patern3.test(tempHTMLContent) ||\n pattern4.test(tempHTMLContent)) {\n this.imageConversion(elm, rtfData);\n tempHTMLContent = tempHTMLContent.replace(/]+>/i, '');\n this.addListClass(elm);\n listNodes = this.cleanUp(elm, listNodes);\n if (!isNOU(listNodes[0]) && listNodes[0].parentElement.tagName !== 'UL' &&\n listNodes[0].parentElement.tagName !== 'OL') {\n this.listConverter(listNodes);\n }\n this.styleCorrection(elm, wordPasteStyleConfig);\n this.removingComments(elm);\n this.removeUnwantedElements(elm);\n this.removeEmptyElements(elm);\n this.removeEmptyAnchorTag(elm);\n this.breakLineAddition(elm);\n this.removeClassName(elm);\n if (pattern4.test(tempHTMLContent)) {\n this.addTableBorderClass(elm);\n }\n // Removing the margin for list items\n var liChildren = elm.querySelectorAll('li');\n if (liChildren.length > 0) {\n for (var i = 0; i < liChildren.length; i++) {\n if (!isNOU(liChildren[i].style.marginLeft)) {\n liChildren[i].style.marginLeft = '';\n }\n }\n }\n e.callBack(elm.innerHTML);\n }\n else {\n e.callBack(elm.innerHTML);\n }\n };\n MsWordPaste.prototype.addListClass = function (elm) {\n var allNodes = elm.querySelectorAll('*');\n for (var index = 0; index < allNodes.length; index++) {\n if (!isNOU(allNodes[index].getAttribute('style')) && allNodes[index].getAttribute('style').replace(/ /g, '').replace('\\n', '').indexOf('mso-list:l') >= 0 &&\n allNodes[index].className.toLowerCase().indexOf('msolistparagraph') === -1 && allNodes[index].tagName.charAt(0) !== 'H') {\n allNodes[index].classList.add('msolistparagraph');\n }\n }\n };\n MsWordPaste.prototype.addTableBorderClass = function (elm) {\n var allTableElm = elm.querySelectorAll('table');\n var hasTableBorder = false;\n for (var i = 0; i < allTableElm.length; i++) {\n for (var j = 0; j < this.borderStyle.length; j++) {\n if (allTableElm[i].innerHTML.indexOf(this.borderStyle[j]) >= 0) {\n hasTableBorder = true;\n break;\n }\n }\n if (hasTableBorder) {\n allTableElm[i].classList.add('e-rte-table-border');\n hasTableBorder = false;\n }\n }\n };\n MsWordPaste.prototype.imageConversion = function (elm, rtfData) {\n this.checkVShape(elm);\n var imgElem = elm.querySelectorAll('img');\n for (var i = 0; i < imgElem.length; i++) {\n if (!isNOU(imgElem[i].getAttribute('v:shapes')) &&\n imgElem[i].getAttribute('v:shapes').indexOf('Picture') < 0 &&\n imgElem[i].getAttribute('v:shapes').indexOf('圖片') < 0 &&\n imgElem[i].getAttribute('v:shapes').indexOf('Grafik') < 0 &&\n imgElem[i].getAttribute('v:shapes').toLowerCase().indexOf('image') < 0 &&\n imgElem[i].getAttribute('v:shapes').indexOf('Graphic') < 0) {\n detach(imgElem[i]);\n }\n }\n imgElem = elm.querySelectorAll('img');\n var imgSrc = [];\n var base64Src = [];\n var imgName = [];\n // eslint-disable-next-line\n var linkRegex = new RegExp(/([^\\S]|^)(((https?\\:\\/\\/)|(www\\.))(\\S+))/gi);\n if (imgElem.length > 0) {\n for (var i = 0; i < imgElem.length; i++) {\n imgSrc.push(imgElem[i].getAttribute('src'));\n imgName.push(imgElem[i].getAttribute('src').split('/')[imgElem[i].getAttribute('src').split('/').length - 1].split('.')[0]);\n }\n var hexValue = this.hexConversion(rtfData);\n for (var i = 0; i < hexValue.length; i++) {\n base64Src.push(this.convertToBase64(hexValue[i]));\n }\n for (var i = 0; i < imgElem.length; i++) {\n if (imgSrc[i].match(linkRegex)) {\n imgElem[i].setAttribute('src', imgSrc[i]);\n }\n else {\n imgElem[i].setAttribute('src', base64Src[i]);\n }\n imgElem[i].setAttribute('id', 'msWordImg-' + imgName[i]);\n }\n }\n };\n MsWordPaste.prototype.checkVShape = function (elm) {\n var allNodes = elm.querySelectorAll('*');\n for (var i = 0; i < allNodes.length; i++) {\n switch (allNodes[i].nodeName) {\n case 'V:SHAPETYPE':\n detach(allNodes[i]);\n break;\n case 'V:SHAPE':\n if (allNodes[i].firstElementChild.nodeName === 'V:IMAGEDATA') {\n var src = allNodes[i].firstElementChild.getAttribute('src');\n var imgElement = createElement('img');\n imgElement.setAttribute('src', src);\n allNodes[i].parentElement.insertBefore(imgElement, allNodes[i]);\n detach(allNodes[i]);\n }\n break;\n }\n }\n };\n MsWordPaste.prototype.convertToBase64 = function (hexValue) {\n var byteArr = this.conHexStringToBytes(hexValue.hex);\n var base64String = this.conBytesToBase64(byteArr);\n var base64 = hexValue.type ? 'data:' + hexValue.type + ';base64,' + base64String : null;\n return base64;\n };\n MsWordPaste.prototype.conBytesToBase64 = function (byteArr) {\n var base64Str = '';\n var base64Char = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n var byteArrLen = byteArr.length;\n for (var i = 0; i < byteArrLen; i += 3) {\n var array3 = byteArr.slice(i, i + 3);\n var array3length = array3.length;\n var array4 = [];\n if (array3length < 3) {\n for (var j = array3length; j < 3; j++) {\n array3[j] = 0;\n }\n }\n array4[0] = (array3[0] & 0xFC) >> 2;\n array4[1] = ((array3[0] & 0x03) << 4) | (array3[1] >> 4);\n array4[2] = ((array3[1] & 0x0F) << 2) | ((array3[2] & 0xC0) >> 6);\n array4[3] = array3[2] & 0x3F;\n for (var j = 0; j < 4; j++) {\n if (j <= array3length) {\n base64Str += base64Char.charAt(array4[j]);\n }\n else {\n base64Str += '=';\n }\n }\n }\n return base64Str;\n };\n MsWordPaste.prototype.conHexStringToBytes = function (hex) {\n var byteArr = [];\n var byteArrLen = hex.length / 2;\n for (var i = 0; i < byteArrLen; i++) {\n byteArr.push(parseInt(hex.substr(i * 2, 2), 16));\n }\n return byteArr;\n };\n MsWordPaste.prototype.hexConversion = function (rtfData) {\n // eslint-disable-next-line\n var picHead = /\\{\\\\pict[\\s\\S]+?\\\\bliptag\\-?\\d+(\\\\blipupi\\-?\\d+)?(\\{\\\\\\*\\\\blipuid\\s?[\\da-fA-F]+)?[\\s\\}]*?/;\n // eslint-disable-next-line\n var pic = new RegExp('(?:(' + picHead.source + '))([\\\\da-fA-F\\\\s]+)\\\\}', 'g');\n var fullImg = rtfData.match(pic);\n var imgType;\n var result = [];\n if (!isNOU(fullImg)) {\n for (var i = 0; i < fullImg.length; i++) {\n if (picHead.test(fullImg[i])) {\n if (fullImg[i].indexOf('\\\\pngblip') !== -1) {\n imgType = 'image/png';\n }\n else if (fullImg[i].indexOf('\\\\jpegblip') !== -1) {\n imgType = 'image/jpeg';\n }\n else {\n continue;\n }\n result.push({\n hex: imgType ? fullImg[i].replace(picHead, '').replace(/[^\\da-fA-F]/g, '') : null,\n type: imgType\n });\n }\n }\n }\n return result;\n };\n MsWordPaste.prototype.removeClassName = function (elm) {\n var elmWithClass = elm.querySelectorAll('*[class]');\n for (var i = 0; i < elmWithClass.length; i++) {\n elmWithClass[i].removeAttribute('class');\n }\n };\n MsWordPaste.prototype.breakLineAddition = function (elm) {\n var allElements = elm.querySelectorAll('*');\n for (var i = 0; i < allElements.length; i++) {\n if (allElements[i].children.length === 0 && allElements[i].innerHTML === ' ' &&\n (allElements[i].innerHTML === ' ' && !allElements[i].closest('li')) &&\n !allElements[i].closest('td') && (allElements[i].nodeName !== 'SPAN' ||\n allElements[i].nodeName === 'SPAN' && (isNOU(allElements[i].previousElementSibling) &&\n isNOU(allElements[i].nextElementSibling)))) {\n var detachableElement = this.findDetachElem(allElements[i]);\n var brElement = createElement('br');\n if (!isNOU(detachableElement.parentElement)) {\n detachableElement.parentElement.insertBefore(brElement, detachableElement);\n detach(detachableElement);\n }\n }\n }\n };\n MsWordPaste.prototype.findDetachElem = function (element) {\n var removableElement;\n if (!isNOU(element.parentElement) &&\n element.parentElement.textContent.trim() === '' && element.parentElement.tagName !== 'TD' &&\n isNOU(element.parentElement.querySelector('img'))) {\n removableElement = this.findDetachElem(element.parentElement);\n }\n else {\n removableElement = element;\n }\n return removableElement;\n };\n MsWordPaste.prototype.removeUnwantedElements = function (elm) {\n var innerElement = elm.innerHTML;\n for (var i = 0; i < this.removableElements.length; i++) {\n // eslint-disable-next-line\n var regExpStartElem = new RegExp('<' + this.removableElements[i] + '>', 'g');\n // eslint-disable-next-line\n var regExpEndElem = new RegExp('', 'g');\n innerElement = innerElement.replace(regExpStartElem, '');\n innerElement = innerElement.replace(regExpEndElem, '');\n }\n elm.innerHTML = innerElement;\n elm.querySelectorAll(':empty');\n };\n MsWordPaste.prototype.findDetachEmptyElem = function (element) {\n var removableElement;\n if (!isNOU(element.parentElement)) {\n if (element.parentElement.textContent.trim() === '' &&\n element.parentElement.getAttribute('id') !== 'MSWord-Content' &&\n !(this.hasParentWithClass(element, 'MsoListParagraph')) &&\n isNOU(element.parentElement.querySelector('img'))) {\n removableElement = this.findDetachEmptyElem(element.parentElement);\n }\n else {\n removableElement = element;\n }\n }\n else {\n removableElement = null;\n }\n return removableElement;\n };\n MsWordPaste.prototype.hasParentWithClass = function (element, className) {\n var currentParentElem = element.parentElement;\n while (!isNOU(currentParentElem)) {\n if (currentParentElem.classList.contains(className)) {\n return true;\n }\n currentParentElem = currentParentElem.parentElement;\n }\n return false;\n };\n MsWordPaste.prototype.removeEmptyElements = function (element) {\n var emptyElements = element.querySelectorAll(':empty');\n for (var i = 0; i < emptyElements.length; i++) {\n if (!isNOU(emptyElements[i].closest('td')) &&\n !isNOU(emptyElements[i].closest('td').querySelector('.MsoNormal'))) {\n emptyElements[i].innerHTML = '-';\n }\n if (emptyElements[i].tagName !== 'IMG' && emptyElements[i].tagName !== 'BR' &&\n emptyElements[i].tagName !== 'IFRAME' && emptyElements[i].tagName !== 'TD' &&\n emptyElements[i].tagName !== 'HR') {\n var detachableElement = this.findDetachEmptyElem(emptyElements[i]);\n if (!isNOU(detachableElement)) {\n detach(detachableElement);\n }\n }\n }\n };\n MsWordPaste.prototype.styleCorrection = function (elm, wordPasteStyleConfig) {\n var styleElement = elm.querySelectorAll('style');\n if (styleElement.length > 0) {\n var styles = styleElement[0].innerHTML.match(/[\\S ]+\\s+{[\\s\\S]+?}/gi);\n var styleClassObject_1 = !isNOU(styles) ? this.findStyleObject(styles) : null;\n var keys = Object.keys(styleClassObject_1);\n var values = keys.map(function (key) {\n return styleClassObject_1[\"\" + key];\n });\n values = this.removeUnwantedStyle(values, wordPasteStyleConfig);\n this.filterStyles(elm, wordPasteStyleConfig);\n var resultElem = void 0;\n var fromClass = false;\n for (var i = 0; i < keys.length; i++) {\n if (keys[i].split('.')[0] === '') {\n resultElem = elm.getElementsByClassName(keys[i].split('.')[1]);\n fromClass = true;\n }\n else if (keys[i].split('.').length === 1 && keys[i].split('.')[0].indexOf('@') >= 0) {\n continue;\n }\n else if (keys[i].split('.').length === 1 && keys[i].split('.')[0].indexOf('@') < 0) {\n resultElem = elm.getElementsByTagName(keys[i]);\n }\n else {\n resultElem = elm.querySelectorAll(keys[i]);\n }\n for (var j = 0; j < resultElem.length; j++) {\n var styleProperty = resultElem[j].getAttribute('style');\n if (!isNOU(styleProperty) && styleProperty.trim() !== '') {\n var valueSplit = values[i].split(';');\n if (!fromClass) {\n for (var k = 0; k < valueSplit.length; k++) {\n if (styleProperty.indexOf(valueSplit[k].split(':')[0]) >= 0) {\n valueSplit.splice(k, 1);\n k--;\n }\n }\n }\n var changedValue = styleProperty + valueSplit.join(';') + ';';\n resultElem[j].setAttribute('style', changedValue);\n }\n else {\n values[i] = values[i].replace(/text-indent:-(.*?)(?=;|$)/gm, '');\n resultElem[j].setAttribute('style', values[i]);\n }\n }\n fromClass = false;\n }\n var listClass = ['MsoListParagraphCxSpFirst', 'MsoListParagraphCxSpMiddle', 'MsoListParagraphCxSpLast'];\n for (var i = 0; i < listClass.length; i++) {\n if (keys.indexOf('li.' + listClass[i]) > -1) {\n var olULElems = elm.querySelectorAll('ol.' + listClass[i] + ', ul.' + listClass[i]);\n for (var j = 0; j < olULElems.length; j++) {\n var styleProperty = olULElems[j].getAttribute('style');\n if (!isNOU(styleProperty) && styleProperty.trim() !== '' && olULElems[j].style.marginLeft !== '') {\n var valueSplit = values[keys.indexOf('li.' + listClass[i])].split(';');\n for (var k = 0; k < valueSplit.length; k++) {\n if ('margin-left'.indexOf(valueSplit[k].split(':')[0]) >= 0) {\n if (!isNOU(valueSplit[k].split(':')[1]) &&\n valueSplit[k].split(':')[1].indexOf('in') >= 0 &&\n olULElems[j].style.marginLeft.indexOf('in') >= 0) {\n var classStyle = parseFloat(valueSplit[k].split(':')[1].split('in')[0]);\n var inlineStyle = parseFloat(olULElems[j].style.marginLeft.split('in')[0]);\n olULElems[j].style.marginLeft = (inlineStyle - classStyle) + 'in';\n }\n }\n }\n }\n }\n }\n }\n }\n };\n MsWordPaste.prototype.filterStyles = function (elm, wordPasteStyleConfig) {\n var elmWithStyles = elm.querySelectorAll('*[style]');\n for (var i = 0; i < elmWithStyles.length; i++) {\n var elemStyleProperty = elmWithStyles[i].getAttribute('style').split(';');\n var styleValue = '';\n for (var j = 0; j < elemStyleProperty.length; j++) {\n if (wordPasteStyleConfig.indexOf(elemStyleProperty[j].split(':')[0].trim()) >= 0) {\n styleValue += elemStyleProperty[j] + ';';\n }\n }\n elmWithStyles[i].setAttribute('style', styleValue);\n }\n };\n MsWordPaste.prototype.removeUnwantedStyle = function (values, wordPasteStyleConfig) {\n for (var i = 0; i < values.length; i++) {\n var styleValues = values[i].split(';');\n values[i] = '';\n for (var j = 0; j < styleValues.length; j++) {\n if (wordPasteStyleConfig.indexOf(styleValues[j].split(':')[0]) >= 0) {\n values[i] += styleValues[j] + ';';\n }\n }\n }\n return values;\n };\n MsWordPaste.prototype.findStyleObject = function (styles) {\n var styleClassObject = {};\n for (var i = 0; i < styles.length; i++) {\n var tempStyle = styles[i];\n var classNameCollection = tempStyle.replace(/([\\S ]+\\s+){[\\s\\S]+?}/gi, '$1');\n var stylesCollection = tempStyle.replace(/[\\S ]+\\s+{([\\s\\S]+?)}/gi, '$1');\n classNameCollection = classNameCollection.replace(/^[\\s]|[\\s]$/gm, '');\n stylesCollection = stylesCollection.replace(/^[\\s]|[\\s]$/gm, '');\n classNameCollection = classNameCollection.replace(/\\n|\\r|\\n\\r/g, '');\n stylesCollection = stylesCollection.replace(/\\n|\\r|\\n\\r/g, '');\n for (var classNames = classNameCollection.split(', '), j = 0; j < classNames.length; j++) {\n styleClassObject[classNames[j]] = stylesCollection;\n }\n }\n return styleClassObject;\n };\n MsWordPaste.prototype.removingComments = function (elm) {\n var innerElement = elm.innerHTML;\n innerElement = innerElement.replace(//g, '');\n elm.innerHTML = innerElement;\n };\n MsWordPaste.prototype.cleanUp = function (node, listNodes) {\n // eslint-disable-next-line\n var tempCleaner = [];\n var prevflagState;\n var allNodes = node.querySelectorAll('*');\n for (var index = 0; index < allNodes.length; index++) {\n if (this.ignorableNodes.indexOf(allNodes[index].nodeName) === -1 ||\n (allNodes[index].nodeType === 3 && allNodes[index].textContent.trim() === '')) {\n tempCleaner.push(allNodes[index]);\n continue;\n }\n else if (allNodes[index].className &&\n allNodes[index].className.toLowerCase().indexOf('msolistparagraph') !== -1 &&\n !isNOU(allNodes[index].getAttribute('style')) &&\n allNodes[index].getAttribute('style').indexOf('mso-list:') >= 0) {\n if (allNodes[index].className.indexOf('MsoListParagraphCxSpFirst') >= 0 && listNodes.length > 0 &&\n listNodes[listNodes.length - 1] !== null) {\n listNodes.push(null);\n }\n listNodes.push(allNodes[index]);\n }\n if (prevflagState && (this.blockNode.indexOf(allNodes[index].nodeName.toLowerCase()) !== -1) &&\n !(allNodes[index].className &&\n allNodes[index].className.toLowerCase().indexOf('msolistparagraph') !== -1 && !isNOU(allNodes[index].getAttribute('style')) &&\n allNodes[index].getAttribute('style').indexOf('mso-list:') >= 0)) {\n listNodes.push(null);\n }\n if (this.blockNode.indexOf(allNodes[index].nodeName.toLowerCase()) !== -1) {\n if (allNodes[index].className &&\n allNodes[index].className.toLowerCase().indexOf('msolistparagraph') !== -1 && !isNOU(allNodes[index].getAttribute('style')) &&\n allNodes[index].getAttribute('style').indexOf('mso-list:') >= 0) {\n prevflagState = true;\n }\n else {\n prevflagState = false;\n }\n }\n }\n if (listNodes.length && (listNodes[listNodes.length - 1] !== null)) {\n listNodes.push(null);\n }\n return listNodes;\n };\n MsWordPaste.prototype.listConverter = function (listNodes) {\n var level;\n var data = [];\n var collection = [];\n var content = '';\n var stNode;\n var currentListStyle = '';\n for (var i = 0; i < listNodes.length; i++) {\n if (listNodes[i] === null) {\n data.push({ content: this.makeConversion(collection), node: listNodes[i - 1] });\n collection = [];\n continue;\n }\n if (listNodes[i].getAttribute('style') && listNodes[i].getAttribute('style').indexOf('mso-outline-level') !== -1) {\n listNodes[i].setAttribute('style', listNodes[i].getAttribute('style').replace('mso-outline-level', 'mso-outline'));\n }\n content = listNodes[i].getAttribute('style');\n if (content && content.indexOf('level') !== -1) {\n // eslint-disable-next-line\n level = parseInt(content.charAt(content.indexOf('level') + 5), null);\n }\n else {\n level = 1;\n }\n this.listContents = [];\n this.getListContent(listNodes[i]);\n var type = void 0;\n var listStyleType = void 0;\n var startAttr = void 0;\n var styleMarginLeft = void 0;\n if (!isNOU(this.listContents[0])) {\n type = this.listContents[0].trim().length > 1 ? 'ol' : 'ul';\n listStyleType = this.getlistStyleType(this.listContents[0], type);\n if (type === 'ol' && (i === 0 || listNodes[i - 1] === null)) {\n var startString = this.listContents[0].split('.')[0];\n var listTypes = ['A', 'a', 'I', 'i', 'α', '1', '1-']; // Add '1-' for rare list type.\n if (listTypes.indexOf(startString) === -1) {\n if (listStyleType === 'decimal') {\n // Bug in getlistStyleType() list style stype is returned as decimal for nested list with start attribute\n if (!isNaN(parseInt(startString, 10))) {\n startAttr = parseInt(startString, 10);\n }\n }\n else if (listStyleType === 'upper-alpha') {\n startAttr = (startString.split('.')[0].charCodeAt(0) - 64);\n }\n else if (listStyleType === 'lower-alpha') {\n startAttr = (startString.split('.')[0].charCodeAt(0) - 96);\n }\n else if (listStyleType === 'upper-roman') {\n startAttr = this.upperRomanNumber.indexOf(this.listContents[0].split('.')[0]) + 1;\n }\n else if (listStyleType === 'lower-roman') {\n startAttr = this.lowerRomanNumber.indexOf(this.listContents[0].split('.')[0]) + 1;\n }\n else if (listStyleType === 'lower-greek') {\n startAttr = this.lowerGreekNumber.indexOf(this.listContents[0].split('.')[0]) + 1;\n }\n }\n if (listNodes[i].style.marginLeft !== '') {\n styleMarginLeft = listNodes[i].style.marginLeft;\n }\n }\n var tempNode = [];\n for (var j = 1; j < this.listContents.length; j++) {\n tempNode.push(this.listContents[j]);\n }\n var currentClassName = void 0;\n if (!isNOU(listNodes[i].className)) {\n currentClassName = listNodes[i].className;\n }\n if (!isNOU(listNodes[i].getAttribute('style'))) {\n listNodes[i].setAttribute('style', listNodes[i].getAttribute('style').replace('text-align:start;', ''));\n if (listNodes[i].style.textAlign !== '') {\n listNodes[i].setAttribute('style', 'text-align:' + listNodes[i].style.textAlign);\n currentListStyle = listNodes[i].getAttribute('style');\n }\n }\n collection.push({ listType: type, content: tempNode, nestedLevel: level, class: currentClassName,\n listStyle: currentListStyle, listStyleTypeName: listStyleType, start: startAttr, styleMarginLeft: styleMarginLeft });\n }\n }\n stNode = listNodes.shift();\n while (stNode) {\n var elemColl = [];\n for (var temp1 = 0; temp1 < data.length; temp1++) {\n if (data[temp1].node === stNode) {\n for (var index = 0; index < data[temp1].content.childNodes.length; index++) {\n elemColl.push(data[temp1].content.childNodes[index]);\n }\n for (var index = 0; index < elemColl.length; index++) {\n stNode.parentElement.insertBefore(elemColl[index], stNode);\n }\n break;\n }\n }\n stNode.remove();\n stNode = listNodes.shift();\n if (!stNode) {\n stNode = listNodes.shift();\n }\n }\n };\n MsWordPaste.prototype.getlistStyleType = function (listContent, type) {\n var currentListClass;\n if (type === 'ol') {\n var charCode = listContent.split('.')[0].charCodeAt(0);\n switch (true) {\n case this.upperRomanNumber.indexOf(listContent.split('.')[0]) > -1:\n currentListClass = 'upper-roman';\n break;\n case this.lowerRomanNumber.indexOf(listContent.split('.')[0]) > -1:\n currentListClass = 'lower-roman';\n break;\n case this.lowerGreekNumber.indexOf(listContent.split('.')[0]) > -1:\n currentListClass = 'lower-greek';\n break;\n case (charCode > 64 && charCode < 91):\n currentListClass = 'upper-alpha';\n break;\n case (charCode > 96 && charCode < 123):\n currentListClass = 'lower-alpha';\n break;\n default:\n currentListClass = 'decimal';\n break;\n }\n }\n else {\n switch (listContent.split('.')[0]) {\n case 'o':\n currentListClass = 'circle';\n break;\n case '§':\n currentListClass = 'square';\n break;\n default:\n currentListClass = 'disc';\n break;\n }\n }\n return currentListClass;\n };\n MsWordPaste.prototype.makeConversion = function (collection) {\n var root = createElement('div');\n var temp;\n var pLevel = 1;\n var prevList;\n var listCount = 0;\n var elem;\n for (var index = 0; index < collection.length; index++) {\n var listClass = ['MsoListParagraphCxSpFirst', 'MsoListParagraphCxSpMiddle', 'MsoListParagraphCxSpLast'];\n var isNormalList = false;\n for (var i = 0; i < listClass.length; i++) {\n if (listClass[i].indexOf(collection[index].class) >= 0) {\n isNormalList = true;\n break;\n }\n }\n if (!isNOU(prevList) && index != 0 &&\n collection[index - 1].listType !== collection[index].listType &&\n !isNormalList) {\n prevList = null;\n }\n var pElement = createElement('p');\n pElement.innerHTML = collection[index].content.join(' ');\n if ((collection[index].nestedLevel === 1) && listCount === 0 && collection[index].content) {\n root.appendChild(temp = createElement(collection[index].listType, { className: collection[index].class }));\n prevList = createElement('li');\n prevList.appendChild(pElement);\n temp.appendChild(prevList);\n temp.setAttribute('level', collection[index].nestedLevel.toString());\n temp.style.marginLeft = collection[index].styleMarginLeft;\n temp.style.listStyleType = collection[index].listStyleTypeName;\n }\n else if (collection[index].nestedLevel === pLevel) {\n if (prevList.parentElement.tagName.toLowerCase() === collection[index].listType) {\n prevList.parentElement.appendChild(prevList = createElement('li'));\n prevList.appendChild(pElement);\n }\n else {\n temp = createElement(collection[index].listType);\n temp.style.listStyleType = collection[index].listStyleTypeName;\n prevList.parentElement.parentElement.appendChild(temp);\n prevList = createElement('li');\n prevList.appendChild(pElement);\n temp.appendChild(prevList);\n temp.setAttribute('level', collection[index].nestedLevel.toString());\n }\n }\n else if (collection[index].nestedLevel > pLevel) {\n if (!isNOU(prevList)) {\n for (var j = 0; j < collection[index].nestedLevel - pLevel; j++) {\n prevList.appendChild(temp = createElement(collection[index].listType));\n prevList = createElement('li');\n if (j !== collection[index].nestedLevel - pLevel - 1 &&\n collection[index].nestedLevel - pLevel > 1) {\n prevList.style.listStyleType = 'none';\n }\n temp.appendChild(prevList);\n }\n prevList.appendChild(pElement);\n temp.setAttribute('level', collection[index].nestedLevel.toString());\n temp.style.listStyleType = collection[index].listStyleTypeName;\n }\n else {\n if (collection[index].nestedLevel > pLevel && isNormalList) {\n var initialNode = void 0;\n initialNode = createElement(collection[index].listType);\n prevList = createElement('li');\n initialNode.appendChild(prevList);\n initialNode.style.listStyleType = 'none';\n for (var j = 0; j < collection[index].nestedLevel - 1; j++) {\n prevList.appendChild(temp = createElement(collection[index].listType));\n prevList = createElement('li');\n temp.appendChild(prevList);\n temp.style.listStyleType = 'none';\n }\n prevList.appendChild(pElement);\n root.appendChild(initialNode);\n temp.setAttribute('level', collection[index].nestedLevel.toString());\n temp.style.listStyleType = collection[index].listStyleTypeName;\n }\n else {\n root.appendChild(temp = createElement(collection[index].listType));\n prevList = createElement('li');\n prevList.appendChild(pElement);\n temp.appendChild(prevList);\n temp.setAttribute('level', collection[index].nestedLevel.toString());\n temp.style.listStyleType = collection[index].listStyleTypeName;\n }\n }\n }\n else if (collection[index].nestedLevel === 1) {\n if (root.lastChild.tagName.toLowerCase() === collection[index].listType) {\n temp = root.lastChild;\n }\n else {\n root.appendChild(temp = createElement(collection[index].listType));\n temp.style.listStyleType = collection[index].listStyleTypeName;\n }\n prevList = createElement('li');\n prevList.appendChild(pElement);\n temp.appendChild(prevList);\n temp.setAttribute('level', collection[index].nestedLevel.toString());\n }\n else {\n elem = prevList;\n while (elem.parentElement) {\n elem = elem.parentElement;\n if (elem.attributes.getNamedItem('level')) {\n // eslint-disable-next-line\n if (parseInt(elem.attributes.getNamedItem('level').textContent, null) === collection[index].nestedLevel) {\n prevList = createElement('li');\n prevList.appendChild(pElement);\n elem.appendChild(prevList);\n break;\n // eslint-disable-next-line\n }\n else if (collection[index].nestedLevel > parseInt(elem.attributes.getNamedItem('level').textContent, null)) {\n elem.appendChild(temp = createElement(collection[index].listType));\n prevList = createElement('li');\n prevList.appendChild(pElement);\n temp.appendChild(prevList);\n temp.setAttribute('level', collection[index].nestedLevel.toString());\n temp.style.listStyleType = collection[index].listStyleTypeName;\n break;\n }\n }\n continue;\n }\n }\n prevList.setAttribute('class', collection[index].class);\n var currentStyle = prevList.getAttribute('style');\n prevList.setAttribute('style', (!isNOU(currentStyle) ? currentStyle : ''));\n pLevel = collection[index].nestedLevel;\n listCount++;\n if (!isNOU(collection[index].start)) {\n temp.setAttribute('start', collection[index].start.toString());\n }\n }\n return root;\n };\n MsWordPaste.prototype.getListContent = function (elem) {\n var pushContent = '';\n var firstChild = elem.firstElementChild;\n if (firstChild.textContent.trim() === '' && !isNOU(firstChild.firstElementChild) &&\n firstChild.firstElementChild.nodeName === 'IMG') {\n pushContent = elem.innerHTML.trim();\n this.listContents.push('');\n this.listContents.push(pushContent);\n }\n else {\n //Add to support separate list which looks like same list and also to add all tags as it is inside list\n if (firstChild.childNodes.length > 0) {\n var listOrder = firstChild.querySelector('span[style=\"mso-list:Ignore\"]');\n if (!isNOU(listOrder)) {\n this.listContents.push(listOrder.textContent.trim());\n detach(listOrder);\n this.removingComments(elem);\n this.removeUnwantedElements(elem);\n }\n }\n }\n this.listContents.push(elem.innerHTML);\n };\n MsWordPaste.prototype.removeEmptyAnchorTag = function (element) {\n var removableElement = element.querySelectorAll('a:not([href])');\n for (var j = removableElement.length - 1; j >= 0; j--) {\n var parentElem = removableElement[j].parentNode;\n while (removableElement[j].firstChild) {\n parentElem.insertBefore(removableElement[j].firstChild, removableElement[j]);\n }\n parentElem.removeChild(removableElement[j]);\n }\n };\n return MsWordPaste;\n}());\nexport { MsWordPaste };\n","import * as CONSTANT from '../base/constant';\nimport { InsertHtml } from './inserthtml';\n/**\n * Insert a Text Node or Text\n *\n * @hidden\n\n */\nvar InsertTextExec = /** @class */ (function () {\n /**\n * Constructor for creating the InsertText plugin\n *\n * @param {EditorManager} parent - specifies the parent element\n * @hidden\n\n */\n function InsertTextExec(parent) {\n this.parent = parent;\n this.addEventListener();\n }\n InsertTextExec.prototype.addEventListener = function () {\n this.parent.observer.on(CONSTANT.INSERT_TEXT_TYPE, this.insertText, this);\n };\n InsertTextExec.prototype.insertText = function (e) {\n var node = document.createTextNode(e.value);\n InsertHtml.Insert(this.parent.currentDocument, node, this.parent.editableElement);\n if (e.callBack) {\n e.callBack({\n requestType: e.subCommand,\n editorMode: 'HTML',\n event: e.event,\n range: this.parent.nodeSelection.getRange(this.parent.currentDocument),\n elements: this.parent.nodeSelection.getSelectedNodes(this.parent.currentDocument)\n });\n }\n };\n return InsertTextExec;\n}());\nexport { InsertTextExec };\n","import { closest, createElement, detach, isNullOrUndefined as isNOU, removeClass } from '@syncfusion/ej2-base';\nimport * as EVENTS from '../../common/constant';\nimport { SelectionCommands } from '../plugin';\nvar FormatPainterActions = /** @class */ (function () {\n function FormatPainterActions(parent, options) {\n this.parent = parent;\n this.settings = options;\n this.addEventListener();\n this.setDeniedFormats();\n }\n FormatPainterActions.prototype.addEventListener = function () {\n this.parent.observer.on(EVENTS.FORMAT_PAINTER_ACTIONS, this.actionHandler, this);\n };\n FormatPainterActions.prototype.actionHandler = function (args) {\n if (!isNOU(args) && !isNOU(args.item) && !isNOU(args.item.formatPainterAction)) {\n switch (args.item.formatPainterAction) {\n case 'format-copy':\n this.copyAction();\n break;\n case 'format-paste':\n this.pasteAction();\n break;\n case 'escape':\n this.escapeAction();\n break;\n }\n }\n };\n FormatPainterActions.prototype.generateElement = function () {\n var copyCollection = this.copyCollection.slice(); // To clone without reversing the collcection array\n copyCollection.reverse();\n var length = copyCollection.length;\n var elemCollection = createElement('div', { className: 'e-format-paste-wrapper' });\n var lastAppendChild;\n for (var i = 0; i < length; i++) {\n var _a = copyCollection[i], attrs = _a.attrs, className = _a.className, styles = _a.styles, tagName = _a.tagName;\n var elem = createElement(tagName);\n if (className !== '') {\n elem.className = className;\n }\n for (var i_1 = 0; i_1 < attrs.length; i_1++) {\n var property = attrs[i_1].name;\n var value = attrs[i_1].value;\n elem.setAttribute(property, value);\n }\n for (var i_2 = 0; i_2 < styles.length; i_2++) {\n var property = styles[i_2].property;\n var value = styles[i_2].value;\n var priority = styles[i_2].priority;\n elem.style.setProperty(property, value, priority);\n }\n if (elemCollection.childElementCount === 0) {\n elemCollection.append(elem);\n lastAppendChild = elem;\n }\n else {\n lastAppendChild.append(elem);\n lastAppendChild = elem;\n }\n }\n var elemChild = this.removeDeniedFormats(elemCollection);\n var currentElem = elemChild;\n while (currentElem) {\n if (currentElem.firstChild === null) {\n lastAppendChild = currentElem;\n currentElem = undefined;\n }\n else {\n currentElem = currentElem.firstChild;\n }\n }\n this.newElem = elemChild;\n this.newElemLastChild = lastAppendChild;\n };\n FormatPainterActions.prototype.pasteAction = function () {\n if (isNOU(this.copyCollection) || this.copyCollection.length === 0) {\n this.paintPlainTextFormat();\n return;\n }\n this.insertFormatNode(this.newElem, this.newElemLastChild);\n this.parent.undoRedoManager.saveData();\n };\n FormatPainterActions.prototype.removeDeniedFormats = function (parentElement) {\n if (!isNOU(this.deniedFormatsCollection) && this.deniedFormatsCollection.length > 0) {\n var deniedPropArray = this.deniedFormatsCollection;\n var length_1 = deniedPropArray.length;\n for (var i = 0; i < length_1; i++) {\n var tag = deniedPropArray[i].tag;\n if (deniedPropArray[i].tag) {\n var elementsList = parentElement.querySelectorAll(tag);\n for (var j = 0; j < elementsList.length; j++) {\n if (deniedPropArray[i].classes.length > 0) {\n var classes = deniedPropArray[i].classes;\n var classLength = classes.length;\n for (var k = 0; k < classLength; k++) {\n if (elementsList[j].classList.contains(classes[k])) {\n removeClass([elementsList[j]], classes[k]);\n }\n }\n if (elementsList[j].classList.length === 0) {\n elementsList[j].removeAttribute('class');\n }\n }\n if (deniedPropArray[i].styles.length > 0) {\n var styles = deniedPropArray[i].styles;\n var styleLength = styles.length;\n for (var k = 0; k < styleLength; k++) {\n elementsList[j].style.removeProperty(styles[k]);\n }\n if (elementsList[j].style.length === 0) {\n elementsList[j].removeAttribute('style');\n }\n }\n if (deniedPropArray[i].attributes.length > 0) {\n var attributes = deniedPropArray[i].attributes;\n var attributeLength = attributes.length;\n for (var k = 0; k < attributeLength; k++) {\n elementsList[j].removeAttribute(attributes[k]);\n }\n }\n }\n }\n }\n }\n return parentElement.firstElementChild;\n };\n FormatPainterActions.prototype.copyAction = function () {\n var copyCollection = [];\n var range = this.parent.nodeSelection.getRange(document);\n var parentElem = range.startContainer.parentElement;\n var currentContext = this.findCurrentContext(parentElem);\n var allowedRulesArray = this.settings.allowedFormats.split(';');\n for (var i = 0; i < allowedRulesArray.length; i++) {\n allowedRulesArray[i] = allowedRulesArray[i].trim();\n }\n var _a = this.getRangeParentElem(currentContext, range), rangeParentElem = _a[0], context = _a[1];\n if (currentContext === null) {\n currentContext = context;\n }\n if (!isNOU(currentContext) && this.settings.allowedContext.indexOf(currentContext) > -1) {\n if (range.startContainer.nodeName === '#text') {\n parentElem = range.startContainer.parentElement;\n }\n var lastElement = parentElem;\n do {\n if (allowedRulesArray.indexOf(parentElem.nodeName.toLowerCase()) > -1) {\n var allAttributes = parentElem.attributes;\n var attribute = [];\n for (var i = 0; i < allAttributes.length; i++) {\n if (allAttributes[i].name !== 'class' && allAttributes[i].name !== 'style') {\n attribute.push(allAttributes[i]);\n }\n }\n var classes = parentElem.className;\n var allStyles = parentElem.style;\n var styleProp = [];\n for (var i = 0; i < allStyles.length; i++) {\n var property = allStyles[i];\n var value = allStyles.getPropertyValue(property);\n var priority = allStyles.getPropertyPriority(property);\n styleProp.push({ property: property, value: value, priority: priority });\n }\n copyCollection.push({\n attrs: attribute, className: classes, styles: styleProp, tagName: parentElem.nodeName\n });\n }\n if (rangeParentElem === parentElem) {\n parentElem = undefined;\n }\n else if (!isNOU(parentElem.parentElement)) {\n parentElem = parentElem.parentElement;\n }\n if (lastElement === parentElem) {\n break;\n }\n } while (!isNOU(parentElem) || parentElem === this.parent.editableElement);\n this.copyCollection = copyCollection;\n }\n this.generateElement();\n };\n FormatPainterActions.prototype.getRangeParentElem = function (currentContext, range) {\n var startContainer = range.startContainer;\n var rangeParentELem;\n if (startContainer.nodeType === 3) {\n startContainer = startContainer.parentElement;\n }\n switch (currentContext) {\n case 'Table':\n rangeParentELem = closest(startContainer, 'td');\n if (isNOU(rangeParentELem)) {\n rangeParentELem = closest(startContainer, 'th');\n }\n break;\n case 'List':\n rangeParentELem = closest(startContainer, 'li');\n break;\n case 'Text':\n rangeParentELem = closest(startContainer, 'p');\n break;\n }\n if (isNOU(rangeParentELem)) {\n var nearBlockParentName = this.getNearestBlockParentElement(range);\n if (!isNOU(nearBlockParentName) && nearBlockParentName !== 'UL' &&\n nearBlockParentName !== 'OL' && nearBlockParentName !== 'LI') {\n rangeParentELem = closest(startContainer, nearBlockParentName);\n currentContext = 'Text';\n }\n }\n if (currentContext === 'List') {\n rangeParentELem = rangeParentELem.parentElement;\n }\n return [rangeParentELem, currentContext];\n };\n FormatPainterActions.prototype.getNearestBlockParentElement = function (range) {\n var node = range.commonAncestorContainer;\n if (node.nodeType === 3) {\n node = node.parentNode;\n }\n // iterate untill the content editable div\n while (node && node !== this.parent.editableElement) {\n // If true return the block node name.\n if (!isNOU(node) && this.isBlockElement(node)) {\n return node.nodeName;\n }\n // if false re assign node to parent node\n node = node.parentNode;\n }\n return null;\n };\n FormatPainterActions.prototype.isBlockElement = function (node) {\n var blockTags = ['P', 'DIV', 'UL', 'OL', 'LI', 'H1', 'H2', 'H3', 'H4', 'H5', 'H6',\n 'ADDRESS', 'ARTICLE', 'ASIDE', 'BLOCKQUOTE', 'FIGCAPTION', 'FIGURE', 'FOOTER', 'HEADER',\n 'HR', 'MAIN', 'NAV', 'SECTION', 'SUMMARY', 'PRE'];\n return blockTags.indexOf(node.nodeName) > -1;\n };\n FormatPainterActions.prototype.escapeAction = function () {\n this.copyCollection = [];\n };\n FormatPainterActions.prototype.paintPlainTextFormat = function () {\n var range = this.parent.nodeSelection.getRange(this.parent.currentDocument);\n var domSelection = this.parent.nodeSelection;\n var nodes = range.collapsed ? domSelection.getSelectionNodeCollection(range) :\n domSelection.getSelectionNodeCollectionBr(range);\n var isInValid;\n if (nodes.length > 1) {\n for (var i = 0; i < nodes.length; i++) {\n isInValid = this.validateELementTag(nodes[i]);\n }\n }\n else {\n isInValid = this.validateELementTag(range.startContainer) && this.validateELementTag(range.endContainer);\n }\n if (!isInValid) {\n this.parent.execCommand('Clear', 'ClearFormat', null, null);\n }\n };\n FormatPainterActions.prototype.validateELementTag = function (node) {\n var INVALID_TAGS = ['A', 'AUDIO', 'IMG', 'VIDEO', 'IFRAME'];\n if (node.nodeType === 3) {\n node = node.parentElement;\n }\n return INVALID_TAGS.indexOf(node.tagName) > -1;\n };\n FormatPainterActions.prototype.findCurrentContext = function (parentElem) {\n if (closest(parentElem, 'td') || closest(parentElem, 'tr') || closest(parentElem, 'tbody')) {\n return 'Table';\n }\n else if (closest(parentElem, 'li')) {\n return 'List';\n }\n else if (closest(parentElem, 'p')) {\n return 'Text';\n }\n return null;\n };\n FormatPainterActions.prototype.insertFormatNode = function (elem, lastChild) {\n var endNode = this.parent.editableElement;\n var docElement = this.parent.currentDocument;\n var domSelection = this.parent.nodeSelection;\n var clonedElem = elem.cloneNode(true);\n var childElem = clonedElem.firstChild;\n var inlineElement;\n while (childElem) {\n if (this.isBlockElement(childElem)) {\n childElem = childElem.firstChild;\n }\n else {\n inlineElement = childElem.parentNode.removeChild(childElem);\n break;\n }\n }\n var formatValues = {\n element: inlineElement,\n lastChild: lastChild\n };\n SelectionCommands.applyFormat(docElement, null, endNode, 'P', 'formatPainter', null, formatValues);\n var isFullNodeSelected;\n var range = this.parent.nodeSelection.getRange(docElement);\n var isCollapsed = range.collapsed;\n var nodes = range.collapsed ? domSelection.getSelectionNodeCollection(range) :\n domSelection.getSelectionNodeCollectionBr(range);\n if (nodes.length === 1) {\n while (!this.isBlockElement(nodes[0])) {\n nodes[0] = nodes[0].parentElement;\n }\n isFullNodeSelected = nodes[0].textContent.trim() === range.commonAncestorContainer.wholeText.trim();\n }\n if (this.isBlockElement(elem) && isCollapsed || nodes.length > 1 || isFullNodeSelected) {\n this.insertBlockNode(elem, range, docElement, endNode, nodes);\n }\n };\n FormatPainterActions.prototype.insertBlockNode = function (element, range, docElement, endNode, nodes) {\n var domSelection = this.parent.nodeSelection;\n var listElement; // To clone to multiple list elements\n var cloneListParentNode;\n if (element.nodeName === 'UL' || element.nodeName === 'OL') {\n cloneListParentNode = element.cloneNode(true);\n listElement = cloneListParentNode.firstChild;\n }\n var textNode = range.startContainer; // To set cursor position\n for (var index = 0; index < nodes.length; index++) {\n var lastTextNode = nodes[index];\n if (nodes[index].nodeType === 3) {\n nodes[index] = nodes[index].parentElement;\n }\n while (!this.isBlockElement(nodes[index])) {\n nodes[index] = nodes[index].parentElement;\n }\n var cloneParentNode = void 0;\n if (!isNOU(cloneListParentNode)) {\n cloneParentNode = listElement.cloneNode(true);\n }\n else {\n cloneParentNode = element.cloneNode(true);\n }\n // Appending all the child elements\n while (nodes[index].firstChild) {\n if (cloneParentNode.nodeName === 'LI') {\n cloneParentNode.appendChild(nodes[index].firstChild);\n }\n else {\n // Except list nodes other block nodes replaced here\n if (nodes[index].nodeType === 3) {\n cloneParentNode.appendChild(nodes[index].firstChild);\n }\n else {\n cloneParentNode.innerHTML = nodes[index].innerHTML;\n nodes[index].innerHTML = '';\n }\n nodes[index] = nodes[index].parentNode.replaceChild(cloneParentNode, nodes[index]);\n }\n }\n if (cloneParentNode.nodeName === 'LI') {\n // Appending the li nodes to the ol or ul node\n cloneListParentNode.append(cloneParentNode);\n if (index === 0) {\n var nodeName = nodes[index].nodeName;\n nodes[index] = nodes[index].parentNode.replaceChild(cloneListParentNode, nodes[index]);\n var parent_1 = nodeName === 'LI' ? cloneListParentNode.parentElement\n : cloneListParentNode;\n // Splicing and then inserting the node to previous element sibling of the Listparent.parent\n this.parent.nodeCutter.SplitNode(range, parent_1, true);\n if (!isNOU(parent_1.previousElementSibling)) {\n parent_1.parentNode.insertBefore(cloneListParentNode, parent_1.nextElementSibling);\n }\n else {\n parent_1.parentElement.insertBefore(cloneListParentNode, parent_1);\n }\n }\n detach(nodes[index]);\n }\n /**Removing the inserted block node in list and appending to previous element sibling */\n if (cloneParentNode.nodeName !== 'LI' && (cloneParentNode.parentElement.nodeName === 'OL' ||\n cloneParentNode.parentElement.nodeName === 'UL')) {\n var parent_2 = cloneParentNode.parentElement;\n // Cutting single ul or ol to two ul or ol based on the range\n this.parent.nodeCutter.SplitNode(range, parent_2, true);\n if (!isNOU(parent_2.previousElementSibling)) {\n parent_2.previousElementSibling.after(cloneParentNode);\n }\n else {\n parent_2.parentElement.prepend(cloneParentNode);\n }\n }\n nodes[index] = lastTextNode;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n !isNOU(listElement) ? detach(listElement) : false;\n this.cleanEmptyLists();\n if (nodes.length > 1) {\n var startSelectNode = nodes[0];\n var endSelectNode = nodes[nodes.length - 1];\n domSelection.setSelectionText(docElement, startSelectNode, endSelectNode, 0, endSelectNode.textContent.length);\n }\n else {\n domSelection.setCursorPoint(docElement, textNode, textNode.textContent.length);\n }\n };\n FormatPainterActions.prototype.cleanEmptyLists = function () {\n var listElem = this.parent.editableElement.querySelectorAll('ol, ul');\n for (var i = 0; i < listElem.length; i++) {\n if (listElem[i].textContent.trim() === '') {\n detach(listElem[i]);\n }\n }\n };\n FormatPainterActions.prototype.setDeniedFormats = function () {\n var deniedFormatsCollection = [];\n if (isNOU(this.settings) || isNOU(this.settings.deniedFormats)) {\n return;\n }\n var deniedFormats = this.settings.deniedFormats.split(';');\n var length = deniedFormats.length;\n for (var i = 0; i < length; i++) {\n var formatString = deniedFormats[i];\n if (formatString !== '') {\n formatString.trim();\n var collection = this.makeDeniedFormatsCollection(formatString);\n if (!isNOU(collection)) {\n deniedFormatsCollection.push(collection);\n }\n }\n }\n this.deniedFormatsCollection = deniedFormatsCollection;\n };\n FormatPainterActions.prototype.makeDeniedFormatsCollection = function (value) {\n var openParenIndex = value.indexOf('(');\n var closeParenIndex = value.indexOf(')');\n var openBracketIndex = value.indexOf('[');\n var closeBracketIndex = value.indexOf(']');\n var openBraceIndex = value.indexOf('{');\n var closeBraceIndex = value.indexOf('}');\n var classes = [];\n var attributes = '';\n var styles = '';\n var tagName = '';\n var classList = [];\n var attributesList = [];\n var stylesList = [];\n if (openParenIndex > -1 && closeParenIndex > -1) {\n classes = value.substring(openParenIndex + 1, closeParenIndex).split(' ');\n classList = classes[0].split(')')[0].split(',');\n }\n if (openBracketIndex > -1 && closeBracketIndex > -1) {\n attributes = value.substring(openBracketIndex + 1, closeBracketIndex);\n attributesList = attributes.split(',');\n }\n if (openBraceIndex > -1 && closeBraceIndex > -1) {\n styles = value.substring(openBraceIndex + 1, closeBraceIndex);\n stylesList = styles.split(',');\n }\n var openIndexArray = [openParenIndex, openBracketIndex, openBraceIndex];\n openIndexArray = openIndexArray.filter(function (index) { return index > -1; });\n var len = openIndexArray.length;\n var min;\n if (len === 1) {\n min = openIndexArray[0];\n }\n else if (len === 2) {\n min = Math.min(openIndexArray[0], openIndexArray[1]);\n }\n else if (len === 3) {\n min = Math.min(openIndexArray[0], openIndexArray[1], openIndexArray[2]);\n }\n tagName = value.substring(0, min);\n tagName.trim();\n return ({\n tag: tagName, styles: stylesList, classes: classList,\n attributes: attributesList\n });\n };\n return FormatPainterActions;\n}());\nexport { FormatPainterActions };\n","import { Observer } from '@syncfusion/ej2-base';\nimport * as CONSTANT from './constant';\nimport { Lists } from './../plugin/lists';\nimport { NodeSelection } from './../../selection/index';\nimport { DOMNode } from './../plugin/dom-node';\nimport { Formats } from './../plugin/formats';\nimport { LinkCommand } from './../plugin/link';\nimport { Alignments } from './../plugin/alignments';\nimport { Indents } from './../plugin/indents';\nimport { ImageCommand } from './../plugin/image';\nimport { AudioCommand } from './../plugin/audio';\nimport { VideoCommand } from './../plugin/video';\nimport { TableCommand } from './../plugin/table';\nimport { SelectionBasedExec } from './../plugin/selection-exec';\nimport { InsertHtmlExec } from './../plugin/inserthtml-exec';\nimport { ClearFormatExec } from './../plugin/clearformat-exec';\nimport { UndoRedoManager } from './../plugin/undo';\nimport { MsWordPaste } from '../plugin/ms-word-clean-up';\nimport * as EVENTS from './../../common/constant';\nimport { InsertTextExec } from '../plugin/insert-text';\nimport { NodeCutter } from '../plugin/nodecutter';\nimport { FormatPainterActions } from '../plugin/format-painter-actions';\n/**\n * EditorManager internal component\n *\n * @hidden\n\n */\nvar EditorManager = /** @class */ (function () {\n /**\n * Constructor for creating the component\n *\n * @hidden\n\n * @param {ICommandModel} options - specifies the command Model\n */\n function EditorManager(options) {\n this.currentDocument = options.document;\n this.editableElement = options.editableElement;\n this.nodeSelection = new NodeSelection();\n this.nodeCutter = new NodeCutter();\n this.domNode = new DOMNode(this.editableElement, this.currentDocument);\n this.observer = new Observer(this);\n this.listObj = new Lists(this);\n this.formatObj = new Formats(this);\n this.alignmentObj = new Alignments(this);\n this.indentsObj = new Indents(this);\n this.linkObj = new LinkCommand(this);\n this.imgObj = new ImageCommand(this);\n this.audioObj = new AudioCommand(this);\n this.videoObj = new VideoCommand(this);\n this.selectionObj = new SelectionBasedExec(this);\n this.inserthtmlObj = new InsertHtmlExec(this);\n this.insertTextObj = new InsertTextExec(this);\n this.clearObj = new ClearFormatExec(this);\n this.tableObj = new TableCommand(this);\n this.undoRedoManager = new UndoRedoManager(this, options.options);\n this.msWordPaste = new MsWordPaste(this);\n this.formatPaintetrObj = new FormatPainterActions(this, options.formatPainterSettings);\n this.wireEvents();\n }\n EditorManager.prototype.wireEvents = function () {\n this.observer.on(EVENTS.KEY_DOWN, this.editorKeyDown, this);\n this.observer.on(EVENTS.KEY_UP, this.editorKeyUp, this);\n this.observer.on(EVENTS.KEY_UP, this.editorKeyUp, this);\n this.observer.on(EVENTS.MODEL_CHANGED, this.onPropertyChanged, this);\n this.observer.on(EVENTS.MS_WORD_CLEANUP, this.onWordPaste, this);\n this.observer.on(EVENTS.ON_BEGIN, this.onBegin, this);\n };\n EditorManager.prototype.onWordPaste = function (e) {\n this.observer.notify(EVENTS.MS_WORD_CLEANUP_PLUGIN, e);\n };\n EditorManager.prototype.onPropertyChanged = function (props) {\n this.observer.notify(EVENTS.MODEL_CHANGED_PLUGIN, props);\n };\n EditorManager.prototype.editorKeyDown = function (e) {\n this.observer.notify(EVENTS.KEY_DOWN_HANDLER, e);\n };\n EditorManager.prototype.editorKeyUp = function (e) {\n this.observer.notify(EVENTS.KEY_UP_HANDLER, e);\n };\n EditorManager.prototype.onBegin = function (e) {\n this.observer.notify(EVENTS.SPACE_ACTION, e);\n };\n /* eslint-disable */\n /**\n * execCommand\n *\n * @param {ExecCommand} command - specifies the execution command\n * @param {T} value - specifes the value.\n * @param {Event} event - specifies the call back event\n * @param {Function} callBack - specifies the function\n * @param {string} text - specifies the string value\n * @param {T} exeValue - specifies the values to be executed\n * @param {string} selector - specifies the selector values\n * @returns {void}\n * @hidden\n\n */\n /* eslint-enable */\n EditorManager.prototype.execCommand = function (command, value, event, callBack, text, exeValue, selector, enterAction) {\n switch (command.toLowerCase()) {\n case 'lists':\n this.observer.notify(EVENTS.LIST_TYPE, { subCommand: value, event: event, callBack: callBack,\n selector: selector, item: exeValue, enterAction: enterAction });\n break;\n case 'formats':\n this.observer.notify(EVENTS.FORMAT_TYPE, { subCommand: value, event: event, callBack: callBack,\n selector: selector, exeValue: exeValue, enterAction: enterAction\n });\n break;\n case 'alignments':\n this.observer.notify(CONSTANT.ALIGNMENT_TYPE, {\n subCommand: value, event: event, callBack: callBack,\n selector: selector,\n value: exeValue\n });\n break;\n case 'indents':\n this.observer.notify(CONSTANT.INDENT_TYPE, { subCommand: value, event: event, callBack: callBack, selector: selector });\n break;\n case 'links':\n this.observer.notify(CONSTANT.LINK, { command: command, value: value, item: exeValue, event: event, callBack: callBack });\n break;\n case 'files':\n this.observer.notify(CONSTANT.IMAGE, {\n command: command, value: 'Image', item: exeValue, event: event, callBack: callBack, selector: selector\n });\n break;\n case 'images':\n this.observer.notify(CONSTANT.IMAGE, {\n command: command, value: value, item: exeValue, event: event, callBack: callBack, selector: selector\n });\n break;\n case 'audios':\n this.observer.notify(CONSTANT.AUDIO, {\n command: command, value: value, item: exeValue, event: event, callBack: callBack, selector: selector\n });\n break;\n case 'videos':\n this.observer.notify(CONSTANT.VIDEO, {\n command: command, value: value, item: exeValue, event: event, callBack: callBack, selector: selector\n });\n break;\n case 'table':\n switch (value.toString().toLocaleLowerCase()) {\n case 'createtable':\n this.observer.notify(CONSTANT.TABLE, { item: exeValue, event: event, callBack: callBack, enterAction: enterAction });\n break;\n case 'insertrowbefore':\n case 'insertrowafter':\n this.observer.notify(CONSTANT.INSERT_ROW, { item: exeValue, event: event, callBack: callBack });\n break;\n case 'insertcolumnleft':\n case 'insertcolumnright':\n this.observer.notify(CONSTANT.INSERT_COLUMN, { item: exeValue, event: event, callBack: callBack });\n break;\n case 'deleterow':\n this.observer.notify(CONSTANT.DELETEROW, { item: exeValue, event: event, callBack: callBack });\n break;\n case 'deletecolumn':\n this.observer.notify(CONSTANT.DELETECOLUMN, { item: exeValue, event: event, callBack: callBack });\n break;\n case 'tableremove':\n this.observer.notify(CONSTANT.REMOVETABLE, { item: exeValue, event: event, callBack: callBack });\n break;\n case 'tableheader':\n this.observer.notify(CONSTANT.TABLEHEADER, { item: exeValue, event: event, callBack: callBack });\n break;\n case 'aligntop':\n case 'alignmiddle':\n case 'alignbottom':\n this.observer.notify(CONSTANT.TABLE_VERTICAL_ALIGN, { item: exeValue, event: event, callBack: callBack });\n break;\n case 'merge':\n this.observer.notify(CONSTANT.TABLE_MERGE, { item: exeValue, event: event, callBack: callBack });\n break;\n case 'horizontalsplit':\n this.observer.notify(CONSTANT.TABLE_HORIZONTAL_SPLIT, { item: exeValue, event: event, callBack: callBack });\n break;\n case 'verticalsplit':\n this.observer.notify(CONSTANT.TABLE_VERTICAL_SPLIT, { item: exeValue, event: event, callBack: callBack });\n break;\n }\n break;\n case 'font':\n case 'style':\n case 'effects':\n case 'casing':\n this.observer.notify(CONSTANT.SELECTION_TYPE, { subCommand: value, event: event, callBack: callBack, value: text, selector: selector, enterAction: enterAction });\n break;\n case 'inserthtml':\n this.observer.notify(CONSTANT.INSERTHTML_TYPE, { subCommand: value, callBack: callBack, value: text, enterAction: enterAction });\n break;\n case 'inserttext':\n this.observer.notify(CONSTANT.INSERT_TEXT_TYPE, { subCommand: value, callBack: callBack, value: text });\n break;\n case 'clear':\n this.observer.notify(CONSTANT.CLEAR_TYPE, { subCommand: value, event: event, callBack: callBack, selector: selector, enterAction: enterAction });\n break;\n case 'actions':\n this.observer.notify(EVENTS.ACTION, { subCommand: value, event: event, callBack: callBack, selector: selector });\n break;\n case 'formatpainter':\n this.observer.notify(EVENTS.FORMAT_PAINTER_ACTIONS, { item: exeValue, subCommand: value, event: event, callBack: callBack });\n break;\n }\n };\n return EditorManager;\n}());\nexport { EditorManager };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { Formatter } from './formatter';\nimport { EditorManager } from './../../editor-manager/base/editor-manager';\nimport { extend } from '@syncfusion/ej2-base';\nimport { htmlKeyConfig } from './../../common/config';\n/**\n * HTML adapter\n *\n * @hidden\n\n */\nvar HTMLFormatter = /** @class */ (function (_super) {\n __extends(HTMLFormatter, _super);\n function HTMLFormatter(options) {\n var _this = _super.call(this) || this;\n _this.initialize();\n extend(_this, _this, options, true);\n if (_this.currentDocument && _this.element) {\n _this.updateFormatter(_this.element, _this.currentDocument, options.options, options.formatPainterSettings);\n }\n return _this;\n }\n HTMLFormatter.prototype.initialize = function () {\n this.keyConfig = htmlKeyConfig;\n };\n /**\n * Update the formatter of RichTextEditor\n *\n * @param {Element} editElement - specifies the edit element.\n * @param {Document} doc - specifies the doucment\n * @param {number} options - specifies the options\n * @param {FormatPainterSettingsModel} formatPainterSettings - specifies the format painter settings\n * @returns {void}\n * @hidden\n\n */\n HTMLFormatter.prototype.updateFormatter = function (editElement, doc, options, formatPainterSettings) {\n if (editElement && doc) {\n this.editorManager = new EditorManager({\n document: doc,\n editableElement: editElement,\n options: options,\n formatPainterSettings: formatPainterSettings\n });\n }\n };\n return HTMLFormatter;\n}(Formatter));\nexport { HTMLFormatter };\n","import { IsFormatted } from './isformatted';\nimport * as CONSTANT from './../base/constant';\nimport { NodeSelection } from './../../selection/index';\nimport { getDefaultHtmlTbStatus } from './../../common/util';\n/**\n * Update Toolbar Status\n *\n * @hidden\n\n */\nexport var statusCollection = getDefaultHtmlTbStatus();\nvar ToolbarStatus = /** @class */ (function () {\n function ToolbarStatus() {\n }\n /**\n * get method\n *\n * @param {Document} docElement - specifies the document element\n * @param {Node} targetNode - specifies the target node\n * @param {string[]} formatNode - specifies the format node\n * @param {string[]} fontSize - specifies the font size\n * @param {string[]} fontName - specifies the font name.\n * @param {Node} documentNode - specifies the document node.\n * @returns {IToolbarStatus} - returns the toolbar status\n * @hidden\n\n */\n ToolbarStatus.get = function (docElement, targetNode, formatNode, fontSize, fontName, documentNode) {\n var formatCollection = JSON.parse(JSON.stringify(statusCollection));\n var nodeCollection = JSON.parse(JSON.stringify(statusCollection));\n var nodeSelection = new NodeSelection();\n var range = nodeSelection.getRange(docElement);\n var nodes = documentNode ? [documentNode] : range.collapsed ? nodeSelection.getNodeCollection(range) :\n nodeSelection.getSelectionNodeCollectionBr(range);\n var nodesLength = nodes.length;\n var isNodeChanged = false;\n for (var index = 0; index < nodes.length; index++) {\n while (nodes[index].nodeType === 3 && range.startContainer.nodeType === 3 && nodes[index].parentNode &&\n nodes[index].parentNode.lastElementChild && nodes[index].parentNode.lastElementChild.nodeName !== 'BR' &&\n (this.getImmediateBlockNode(nodes[index].parentNode)).textContent.replace(/\\u200B/g, '').length === 0 &&\n range.startContainer.textContent.replace(/\\u200B/g, '').length === 0 &&\n nodeSelection.get(docElement).toString().replace(/\\u200B/g, '').length === 0) {\n nodes[index] = nodes[index].parentNode.lastElementChild.firstChild;\n isNodeChanged = true;\n }\n if (isNodeChanged && nodes[index]) {\n nodeSelection.setCursorPoint(docElement, nodes[index], nodes[index].textContent.length);\n isNodeChanged = false;\n }\n if ((nodes[index].nodeName !== 'BR' && nodes[index].nodeType !== 3) ||\n (nodesLength > 1 && nodes[index].nodeType === 3 && nodes[index].textContent.trim() === '')) {\n nodes.splice(index, 1);\n index--;\n }\n }\n for (var index = 0; index < nodes.length; index++) {\n // eslint-disable-next-line max-len\n formatCollection = this.getFormatParent(docElement, formatCollection, nodes[index], targetNode, formatNode, fontSize, fontName);\n if ((index === 0 && formatCollection.bold) || !formatCollection.bold) {\n nodeCollection.bold = formatCollection.bold;\n }\n if ((index === 0 && formatCollection.insertcode) || !formatCollection.insertcode) {\n nodeCollection.insertcode = formatCollection.insertcode;\n }\n if ((index === 0 && formatCollection.italic) || !formatCollection.italic) {\n nodeCollection.italic = formatCollection.italic;\n }\n if ((index === 0 && formatCollection.underline) || !formatCollection.underline) {\n nodeCollection.underline = formatCollection.underline;\n }\n if ((index === 0 && formatCollection.strikethrough) || !formatCollection.strikethrough) {\n nodeCollection.strikethrough = formatCollection.strikethrough;\n }\n if ((index === 0 && formatCollection.superscript) || !formatCollection.superscript) {\n nodeCollection.superscript = formatCollection.superscript;\n }\n if ((index === 0 && formatCollection.subscript) || !formatCollection.subscript) {\n nodeCollection.subscript = formatCollection.subscript;\n }\n if ((index === 0 && formatCollection.fontcolor) || !formatCollection.fontcolor) {\n nodeCollection.fontcolor = formatCollection.fontcolor;\n }\n if ((index === 0 && formatCollection.fontname) || !formatCollection.fontname) {\n nodeCollection.fontname = formatCollection.fontname;\n }\n if ((index === 0 && formatCollection.fontsize) || !formatCollection.fontsize) {\n nodeCollection.fontsize = formatCollection.fontsize;\n }\n if ((index === 0 && formatCollection.backgroundcolor) || !formatCollection.backgroundcolor) {\n nodeCollection.backgroundcolor = formatCollection.backgroundcolor;\n }\n if ((index === 0 && formatCollection.orderedlist) || !formatCollection.orderedlist) {\n nodeCollection.orderedlist = formatCollection.orderedlist;\n }\n if ((index === 0 && formatCollection.unorderedlist) || !formatCollection.unorderedlist) {\n nodeCollection.unorderedlist = formatCollection.unorderedlist;\n }\n if ((index === 0 && formatCollection.alignments) || !formatCollection.alignments) {\n nodeCollection.alignments = formatCollection.alignments;\n }\n if ((index === 0 && formatCollection.formats) || !formatCollection.formats) {\n nodeCollection.formats = formatCollection.formats;\n }\n if ((index === 0 && formatCollection.createlink) || !formatCollection.createlink) {\n nodeCollection.createlink = formatCollection.createlink;\n }\n if ((index === 0 && formatCollection.numberFormatList) || !formatCollection.numberFormatList) {\n nodeCollection.numberFormatList = formatCollection.numberFormatList;\n }\n if ((index === 0 && formatCollection.bulletFormatList) || !formatCollection.bulletFormatList) {\n nodeCollection.bulletFormatList = formatCollection.bulletFormatList;\n }\n formatCollection = JSON.parse(JSON.stringify(statusCollection));\n }\n return nodeCollection;\n };\n ToolbarStatus.getImmediateBlockNode = function (node) {\n do {\n node = node.parentNode;\n } while (node && CONSTANT.BLOCK_TAGS.indexOf(node.nodeName.toLocaleLowerCase()) < 0);\n return node;\n };\n ToolbarStatus.getFormatParent = function (docElement, formatCollection, node, targetNode, formatNode, fontSize, fontName) {\n if (targetNode.contains(node) ||\n (node.nodeType === 3 && targetNode.nodeType !== 3 && targetNode.contains(node.parentNode))) {\n do {\n formatCollection = this.isFormattedNode(docElement, formatCollection, node, formatNode, fontSize, fontName);\n node = node.parentNode;\n } while (node && (node !== targetNode));\n }\n return formatCollection;\n };\n ToolbarStatus.isFormattedNode = function (docElement, formatCollection, node, formatNode, fontSize, fontName) {\n if (!formatCollection.bold) {\n formatCollection.bold = IsFormatted.isBold(node);\n }\n if (!formatCollection.italic) {\n formatCollection.italic = IsFormatted.isItalic(node);\n }\n if (!formatCollection.underline) {\n formatCollection.underline = IsFormatted.isUnderline(node);\n }\n if (!formatCollection.strikethrough) {\n formatCollection.strikethrough = IsFormatted.isStrikethrough(node);\n }\n if (!formatCollection.superscript) {\n formatCollection.superscript = IsFormatted.isSuperscript(node);\n }\n if (!formatCollection.subscript) {\n formatCollection.subscript = IsFormatted.isSubscript(node);\n }\n if (!formatCollection.fontcolor) {\n formatCollection.fontcolor = this.isFontColor(docElement, node);\n }\n if (!formatCollection.fontname) {\n formatCollection.fontname = this.isFontName(docElement, node, fontName);\n }\n if (!formatCollection.fontsize) {\n formatCollection.fontsize = this.isFontSize(docElement, node, fontSize);\n }\n if (!formatCollection.backgroundcolor) {\n formatCollection.backgroundcolor = this.isBackgroundColor(node);\n }\n if (!formatCollection.orderedlist) {\n formatCollection.orderedlist = this.isOrderedList(node);\n }\n if (!formatCollection.unorderedlist) {\n formatCollection.unorderedlist = this.isUnorderedList(node);\n }\n if (!formatCollection.alignments) {\n formatCollection.alignments = this.isAlignment(node);\n }\n if (!formatCollection.formats) {\n formatCollection.formats = this.isFormats(node, formatNode);\n if (formatCollection.formats === 'pre') {\n formatCollection.insertcode = true;\n }\n }\n if (!formatCollection.createlink) {\n formatCollection.createlink = this.isLink(node);\n }\n if (!formatCollection.numberFormatList) {\n formatCollection.numberFormatList = this.isNumberFormatList(node);\n }\n if (!formatCollection.bulletFormatList) {\n formatCollection.bulletFormatList = this.isBulletFormatList(node);\n }\n return formatCollection;\n };\n ToolbarStatus.isFontColor = function (docElement, node) {\n var color = node.style && node.style.color;\n if ((color === null || color === undefined || color === '') && node.nodeType !== 3) {\n color = this.getComputedStyle(docElement, node, 'color');\n }\n if (color !== null && color !== '' && color !== undefined) {\n return color;\n }\n else {\n return null;\n }\n };\n ToolbarStatus.isLink = function (node) {\n if (node.nodeName.toLocaleLowerCase() === 'a') {\n return true;\n }\n else {\n return false;\n }\n };\n ToolbarStatus.isBackgroundColor = function (node) {\n var backColor = node.style && node.style.backgroundColor;\n if (backColor !== null && backColor !== '' && backColor !== undefined) {\n return backColor;\n }\n else {\n return null;\n }\n };\n ToolbarStatus.isFontSize = function (docElement, node, fontSize) {\n var size = node.style && node.style.fontSize;\n if ((size === null || size === undefined || size === '') && node.nodeType !== 3 &&\n node.parentElement.classList.contains('e-content')) {\n size = this.getComputedStyle(docElement, node, 'font-size');\n }\n if ((size !== null && size !== '' && size !== undefined)\n && (fontSize === null || fontSize === undefined || (fontSize.indexOf(size) > -1))) {\n return size;\n }\n else {\n return null;\n }\n };\n ToolbarStatus.isFontName = function (docElement, node, fontName) {\n var name = node.style && node.style.fontFamily;\n if ((name === null || name === undefined || name === '') && node.nodeType !== 3) {\n name = this.getComputedStyle(docElement, node, 'font-family');\n }\n var index = null;\n if ((name !== null && name !== '' && name !== undefined)\n && (fontName === null || fontName === undefined || (fontName.filter(function (value, pos) {\n // eslint-disable-next-line\n var pattern = new RegExp(name, 'i');\n if ((value.replace(/\"/g, '').replace(/ /g, '').toLowerCase() === name.replace(/\"/g, '').replace(/ /g, '').toLowerCase()) ||\n (value.split(',')[0] && value.split(',')[0].search(pattern) > -1)) {\n index = pos;\n }\n }) && (index !== null)))) {\n // eslint-disable-next-line\n return (index !== null) ? fontName[index] : name.replace(/\"/g, '');\n }\n else {\n return null;\n }\n };\n ToolbarStatus.isOrderedList = function (node) {\n if (node.nodeName.toLocaleLowerCase() === 'ol') {\n return true;\n }\n else {\n return false;\n }\n };\n ToolbarStatus.isUnorderedList = function (node) {\n if (node.nodeName.toLocaleLowerCase() === 'ul') {\n return true;\n }\n else {\n return false;\n }\n };\n ToolbarStatus.isAlignment = function (node) {\n var align = node.style && node.style.textAlign;\n if (align === 'left') {\n return 'justifyleft';\n }\n else if (align === 'center') {\n return 'justifycenter';\n }\n else if (align === 'right') {\n return 'justifyright';\n }\n else if (align === 'justify') {\n return 'justifyfull';\n }\n else {\n return null;\n }\n };\n ToolbarStatus.isFormats = function (node, formatNode) {\n if (((formatNode === undefined || formatNode === null)\n && CONSTANT.BLOCK_TAGS.indexOf(node.nodeName.toLocaleLowerCase()) > -1)\n || (formatNode !== null && formatNode !== undefined\n && formatNode.indexOf(node.nodeName.toLocaleLowerCase()) > -1)) {\n return node.nodeName.toLocaleLowerCase();\n }\n else {\n return null;\n }\n };\n ToolbarStatus.getComputedStyle = function (docElement, node, prop) {\n return docElement.defaultView.getComputedStyle(node, null).getPropertyValue(prop);\n };\n ToolbarStatus.isNumberFormatList = function (node) {\n var list = node.style && node.style.listStyleType;\n if (list === 'lower-alpha') {\n return 'Lower Alpha';\n }\n else if (list === 'number') {\n return 'Number';\n }\n else if (list === 'upper-alpha') {\n return 'Upper Alpha';\n }\n else if (list === 'lower-roman') {\n return 'Lower Roman';\n }\n else if (list === 'upper-roman') {\n return 'Upper Roman';\n }\n else if (list === 'lower-greek') {\n return 'Lower Greek';\n }\n else if (list === 'none') {\n return 'None';\n }\n else {\n return null;\n }\n };\n ToolbarStatus.isBulletFormatList = function (node) {\n var list = node.style && node.style.listStyleType;\n if (list === 'circle') {\n return 'Circle';\n }\n else if (list === 'square') {\n return 'Square';\n }\n else if (list === 'none') {\n return 'None';\n }\n else if (list === 'disc') {\n return 'Disc';\n }\n else {\n return null;\n }\n };\n return ToolbarStatus;\n}());\nexport { ToolbarStatus };\n","import * as events from '../base/constant';\nimport { ToolbarStatus } from '../../editor-manager/plugin/toolbar-status';\nimport { getDefaultHtmlTbStatus } from '../../common/util';\n/**\n * HtmlToolbarStatus module for refresh the toolbar status\n */\nvar HtmlToolbarStatus = /** @class */ (function () {\n function HtmlToolbarStatus(parent) {\n this.parent = parent;\n this.toolbarStatus = this.prevToolbarStatus = getDefaultHtmlTbStatus();\n this.addEventListener();\n }\n HtmlToolbarStatus.prototype.addEventListener = function () {\n this.parent.on(events.toolbarRefresh, this.onRefreshHandler, this);\n this.parent.on(events.destroy, this.removeEventListener, this);\n };\n HtmlToolbarStatus.prototype.removeEventListener = function () {\n this.parent.off(events.toolbarRefresh, this.onRefreshHandler);\n this.parent.off(events.destroy, this.removeEventListener);\n };\n HtmlToolbarStatus.prototype.onRefreshHandler = function (args) {\n if (this.parent.readonly) {\n return;\n }\n var fontsize = [];\n var fontName = [];\n var formats = [];\n this.parent.fontSize.items.forEach(function (item) {\n fontsize.push(item.value);\n });\n this.parent.fontFamily.items.forEach(function (item) {\n fontName.push(item.value);\n });\n this.parent.format.types.forEach(function (item) {\n formats.push(item.value.toLocaleLowerCase());\n });\n this.toolbarStatus = ToolbarStatus.get(this.parent.contentModule.getDocument(), this.parent.contentModule.getEditPanel(), formats, fontsize, fontName, args.documentNode);\n var tbStatusString = JSON.stringify(this.toolbarStatus);\n this.parent.notify(events.toolbarUpdated, this.toolbarStatus);\n if (JSON.stringify(this.prevToolbarStatus) !== tbStatusString) {\n this.parent.notify(events.updateTbItemsStatus, { html: JSON.parse(tbStatusString), markdown: null });\n this.prevToolbarStatus = JSON.parse(tbStatusString);\n }\n };\n return HtmlToolbarStatus;\n}());\nexport { HtmlToolbarStatus };\n","import { getEditValue } from '../base/util';\n/**\n * Content module is used to render Rich Text Editor content\n *\n * @hidden\n\n */\nvar ContentRender = /** @class */ (function () {\n /**\n * Constructor for content renderer module\n *\n * @param {IRichTextEditor} parent - specifies the parent element.\n * @param {ServiceLocator} serviceLocator - specifies the service.\n * @returns {void}\n */\n function ContentRender(parent, serviceLocator) {\n this.parent = parent;\n this.serviceLocator = serviceLocator;\n }\n /**\n * The function is used to render Rich Text Editor content div\n *\n * @returns {void}\n * @hidden\n\n */\n ContentRender.prototype.renderPanel = function () {\n var rteObj = this.parent;\n var div = this.parent.createElement('div', { className: 'e-rte-content', id: this.parent.getID() + 'rte-view' });\n var rteContent = getEditValue(rteObj.value, rteObj);\n this.editableElement = this.parent.createElement('div', {\n className: 'e-content',\n id: this.parent.getID() + '_rte-edit-view',\n attrs: {\n 'contenteditable': 'true'\n },\n innerHTML: rteContent\n });\n div.appendChild(this.editableElement);\n this.setPanel(div);\n rteObj.element.appendChild(div);\n };\n /**\n * Get the content div element of RichTextEditor\n *\n * @returns {Element} - specifies the element.\n * @hidden\n\n */\n ContentRender.prototype.getPanel = function () {\n return this.contentPanel;\n };\n /**\n * Get the editable element of RichTextEditor\n *\n * @returns {Element} - specifies the return element.\n * @hidden\n\n */\n ContentRender.prototype.getEditPanel = function () {\n return this.editableElement;\n };\n /**\n * Returns the text content as string.\n *\n * @returns {string} - specifies the string element.\n */\n ContentRender.prototype.getText = function () {\n var textString = this.getEditPanel().innerText;\n return textString === '\\n' ? '' : textString;\n };\n /**\n * Set the content div element of RichTextEditor\n *\n * @param {Element} panel - specifies the panel element.\n * @returns {void}\n * @hidden\n\n */\n ContentRender.prototype.setPanel = function (panel) {\n this.contentPanel = panel;\n };\n /**\n * Get the document of RichTextEditor\n *\n * @returns {Document} - specifies the document.\n * @hidden\n\n */\n ContentRender.prototype.getDocument = function () {\n return this.getEditPanel().ownerDocument;\n };\n return ContentRender;\n}());\nexport { ContentRender };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { ContentRender } from '../renderer/content-renderer';\nimport { isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { getEditValue } from '../base/util';\nvar IFRAMEHEADER = \"\\n \\n \\n \\n \\n \\n \";\n/**\n * Content module is used to render Rich Text Editor content\n *\n * @hidden\n\n */\nvar IframeContentRender = /** @class */ (function (_super) {\n __extends(IframeContentRender, _super);\n function IframeContentRender() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * The function is used to render Rich Text Editor iframe\n *\n * @hidden\n\n */\n IframeContentRender.prototype.renderPanel = function () {\n var rteObj = this.parent;\n var rteContent = getEditValue(rteObj.value, rteObj);\n var iFrameBodyContent = '' +\n rteContent + '';\n var iFrameContent = IFRAMEHEADER + iFrameBodyContent;\n var iframe = this.parent.createElement('iframe', {\n id: this.parent.getID() + '_rte-view',\n className: 'e-rte-content',\n styles: 'display:block;',\n attrs: { 'srcdoc': iFrameContent }\n });\n this.setPanel(iframe);\n rteObj.element.appendChild(iframe);\n iframe.contentDocument.body.id = this.parent.getID() + '_rte-edit-view';\n iframe.contentDocument.body.setAttribute('aria-owns', this.parent.getID());\n iframe.contentDocument.open();\n iFrameContent = this.setThemeColor(iFrameContent, { color: '#333' });\n iframe.contentDocument.write(iFrameContent);\n iframe.contentDocument.close();\n if (rteObj.enableRtl) {\n this.contentPanel.contentDocument.body.setAttribute('class', 'e-rtl');\n }\n };\n IframeContentRender.prototype.setThemeColor = function (content, styles) {\n var fontColor = getComputedStyle(this.parent.element, '.e-richtexteditor').getPropertyValue('color');\n return content.replace(styles.color, fontColor);\n };\n /**\n * Get the editable element of RichTextEditor\n *\n * @returns {Element} - specifies the element.\n * @hidden\n\n */\n IframeContentRender.prototype.getEditPanel = function () {\n var editNode;\n if (!isNullOrUndefined(this.contentPanel.contentDocument)) {\n editNode = this.contentPanel.contentDocument.body;\n }\n else {\n editNode = this.parent.inputElement;\n }\n return editNode;\n };\n /**\n * Get the document of RichTextEditor\n *\n * @returns {void}\n * @hidden\n\n */\n IframeContentRender.prototype.getDocument = function () {\n return this.getEditPanel().ownerDocument;\n };\n return IframeContentRender;\n}(ContentRender));\nexport { IframeContentRender };\n","import { select, detach, extend, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { RenderType } from '../base/enum';\nimport * as events from '../base/constant';\nimport * as classes from '../base/classes';\nimport { getIndex, toObjectLowerCase } from '../base/util';\nimport { templateItems, tools } from '../models/items';\n/**\n * `Color Picker` module is used to handle ColorPicker actions.\n */\nvar ColorPickerInput = /** @class */ (function () {\n function ColorPickerInput(parent, serviceLocator) {\n this.tools = {};\n this.parent = parent;\n this.locator = serviceLocator;\n this.renderFactory = this.locator.getService('rendererFactory');\n this.addEventListener();\n if (this.parent.toolbarSettings && Object.keys(this.parent.toolbarSettings.itemConfigs).length > 0) {\n extend(this.tools, tools, toObjectLowerCase(this.parent.toolbarSettings.itemConfigs), true);\n }\n else {\n this.tools = tools;\n }\n }\n ColorPickerInput.prototype.initializeInstance = function () {\n this.toolbarRenderer = this.renderFactory.getRenderer(RenderType.Toolbar);\n };\n /**\n * renderColorPickerInput method\n *\n * @param {IColorPickerRenderArgs} args - specify the arguments.\n * @returns {void}\n * @hidden\n\n */\n ColorPickerInput.prototype.renderColorPickerInput = function (args) {\n var _this = this;\n this.initializeInstance();\n var suffixID = args.containerType;\n var tbElement = args.container;\n var targetID;\n var options;\n templateItems.forEach(function (item) {\n if (getIndex(item, args.items) !== -1) {\n switch (item) {\n case 'fontcolor': {\n targetID = _this.parent.getID() + '_' + suffixID + '_FontColor_Target';\n var fontNode = _this.parent.createElement('input');\n fontNode.id = targetID;\n fontNode.classList.add(classes.CLS_FONT_COLOR_TARGET);\n if (!isNullOrUndefined(_this.parent.cssClass)) {\n var allClassName = _this.parent.cssClass.split(' ');\n for (var i = 0; i < allClassName.length; i++) {\n if (allClassName[i].trim() !== '') {\n fontNode.classList.add(allClassName[i]);\n }\n }\n }\n document.body.appendChild(fontNode);\n options = {\n cssClass: _this.tools[item.toLocaleLowerCase()].icon\n + ' ' + classes.CLS_RTE_ELEMENTS + ' ' + classes.CLS_ICONS + ' ' + _this.parent.cssClass,\n value: _this.tools[item.toLocaleLowerCase()].value,\n command: _this.tools[item.toLocaleLowerCase()].command,\n subCommand: _this.tools[item.toLocaleLowerCase()].subCommand,\n element: select('#' + _this.parent.getID() + '_' + suffixID + '_FontColor', tbElement),\n target: (targetID)\n };\n _this.fontColorPicker = _this.toolbarRenderer.renderColorPicker(options, 'fontcolor');\n _this.fontColorDropDown = _this.toolbarRenderer.renderColorPickerDropDown(options, 'fontcolor', _this.fontColorPicker);\n break;\n }\n case 'backgroundcolor': {\n targetID = _this.parent.getID() + '_' + suffixID + '_BackgroundColor_Target';\n var backNode = _this.parent.createElement('input');\n backNode.id = targetID;\n backNode.classList.add(classes.CLS_BACKGROUND_COLOR_TARGET);\n if (!isNullOrUndefined(_this.parent.cssClass)) {\n var allClassName = _this.parent.cssClass.split(' ');\n for (var i = 0; i < allClassName.length; i++) {\n if (allClassName[i].trim() !== '') {\n backNode.classList.add(allClassName[i]);\n }\n }\n }\n document.body.appendChild(backNode);\n options = {\n cssClass: _this.tools[item.toLocaleLowerCase()].icon\n + ' ' + classes.CLS_RTE_ELEMENTS + ' ' + classes.CLS_ICONS + ' ' + _this.parent.cssClass,\n value: _this.tools[item.toLocaleLowerCase()].value,\n command: _this.tools[item.toLocaleLowerCase()].command,\n subCommand: _this.tools[item.toLocaleLowerCase()].subCommand,\n element: select('#' + _this.parent.getID() + '_' + suffixID + '_BackgroundColor', tbElement),\n target: (targetID)\n };\n _this.backgroundColorPicker = _this.toolbarRenderer.renderColorPicker(options, 'backgroundcolor');\n _this.backgroundColorDropDown = _this.toolbarRenderer.renderColorPickerDropDown(options, 'backgroundcolor', _this.backgroundColorPicker, _this.defaultColorPicker);\n break;\n }\n }\n }\n });\n if (this.parent.inlineMode.enable) {\n this.setCssClass({ cssClass: this.parent.cssClass });\n }\n };\n ColorPickerInput.prototype.destroy = function () {\n this.removeEventListener();\n this.destroyColorPicker();\n };\n /**\n * destroyColorPicker method\n *\n * @returns {void}\n * @hidden\n\n */\n ColorPickerInput.prototype.destroyColorPicker = function () {\n if (this.fontColorPicker && !this.fontColorPicker.isDestroyed) {\n this.fontColorPicker.destroy();\n }\n if (this.backgroundColorPicker && !this.backgroundColorPicker.isDestroyed) {\n this.backgroundColorPicker.destroy();\n }\n if (this.fontColorDropDown && !this.fontColorDropDown.isDestroyed) {\n var innerEle = this.fontColorDropDown.element.querySelector('.e-rte-color-content');\n if (innerEle) {\n detach(innerEle);\n }\n this.fontColorDropDown.destroy();\n }\n if (this.backgroundColorDropDown && !this.backgroundColorDropDown.isDestroyed) {\n var innerEle = this.backgroundColorDropDown.element.querySelector('.e-rte-color-content');\n if (innerEle) {\n this.defaultColorPicker = innerEle.children[0].style.borderBottomColor;\n detach(innerEle);\n }\n this.backgroundColorDropDown.destroy();\n }\n };\n ColorPickerInput.prototype.setRtl = function (args) {\n if (this.fontColorPicker) {\n this.fontColorPicker.setProperties({ enableRtl: args.enableRtl });\n this.fontColorDropDown.setProperties({ enableRtl: args.enableRtl });\n }\n if (this.backgroundColorPicker) {\n this.backgroundColorPicker.setProperties({ enableRtl: args.enableRtl });\n this.backgroundColorDropDown.setProperties({ enableRtl: args.enableRtl });\n }\n };\n ColorPickerInput.prototype.setCssClass = function (e) {\n this.updateCss(this.fontColorPicker, this.fontColorDropDown, e);\n this.updateCss(this.backgroundColorPicker, this.backgroundColorDropDown, e);\n };\n ColorPickerInput.prototype.updateCss = function (colorPickerObj, dropDownObj, e) {\n if (colorPickerObj && e.cssClass) {\n if (isNullOrUndefined(e.oldCssClass)) {\n colorPickerObj.setProperties({ cssClass: (colorPickerObj.cssClass + ' ' + e.cssClass).trim() });\n dropDownObj.setProperties({ cssClass: (dropDownObj.cssClass + ' ' + e.cssClass).trim() });\n }\n else {\n colorPickerObj.setProperties({ cssClass: (colorPickerObj.cssClass.replace(e.oldCssClass, '').replace(' ', ' ').trim() + ' ' + e.cssClass).trim() });\n dropDownObj.setProperties({ cssClass: (dropDownObj.cssClass.replace(e.oldCssClass, '').replace(' ', ' ').trim() + ' ' + e.cssClass).trim() });\n }\n }\n };\n ColorPickerInput.prototype.addEventListener = function () {\n this.parent.on(events.toolbarRenderComplete, this.renderColorPickerInput, this);\n this.parent.on(events.rtlMode, this.setRtl, this);\n this.parent.on(events.destroy, this.destroy, this);\n this.parent.on(events.destroyColorPicker, this.destroyColorPicker, this);\n this.parent.on(events.modelChanged, this.onPropertyChanged, this);\n this.parent.on(events.bindCssClass, this.setCssClass, this);\n };\n ColorPickerInput.prototype.onPropertyChanged = function (model) {\n var newProp = model.newProp;\n var element;\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'fontColor':\n if (this.fontColorPicker) {\n for (var _b = 0, _c = Object.keys(newProp.fontColor); _b < _c.length; _b++) {\n var font = _c[_b];\n switch (font) {\n case 'default': {\n this.fontColorPicker.setProperties({ value: newProp.fontColor.default });\n element = this.fontColorDropDown.element;\n var fontBorder = element.querySelector('.' + this.tools['fontcolor'].icon);\n fontBorder.style.borderBottomColor = newProp.fontColor.default;\n break;\n }\n case 'mode':\n this.fontColorPicker.setProperties({ mode: newProp.fontColor.mode });\n break;\n case 'columns':\n this.fontColorPicker.setProperties({ columns: newProp.fontColor.columns });\n break;\n case 'colorCode':\n this.fontColorPicker.setProperties({ presetColors: newProp.fontColor.colorCode });\n break;\n case 'modeSwitcher':\n this.fontColorPicker.setProperties({ modeSwitcher: newProp.fontColor.modeSwitcher });\n break;\n }\n }\n }\n break;\n case 'backgroundColor':\n if (this.backgroundColorPicker) {\n for (var _d = 0, _e = Object.keys(newProp.backgroundColor); _d < _e.length; _d++) {\n var background = _e[_d];\n switch (background) {\n case 'default': {\n this.backgroundColorPicker.setProperties({ value: newProp.backgroundColor.default });\n element = this.backgroundColorDropDown.element;\n var backgroundBorder = element.querySelector('.' + this.tools['backgroundcolor'].icon);\n backgroundBorder.style.borderBottomColor = newProp.backgroundColor.default;\n break;\n }\n case 'mode':\n this.backgroundColorPicker.setProperties({ mode: newProp.backgroundColor.mode });\n break;\n case 'columns':\n this.backgroundColorPicker.setProperties({ columns: newProp.backgroundColor.columns });\n break;\n case 'colorCode':\n this.backgroundColorPicker.setProperties({ presetColors: newProp.backgroundColor.colorCode });\n break;\n case 'modeSwitcher':\n this.backgroundColorPicker.setProperties({ modeSwitcher: newProp.backgroundColor.modeSwitcher });\n break;\n }\n }\n }\n break;\n }\n }\n };\n ColorPickerInput.prototype.removeEventListener = function () {\n this.parent.off(events.toolbarRenderComplete, this.renderColorPickerInput);\n this.parent.off(events.destroy, this.destroy);\n this.parent.off(events.rtlMode, this.setRtl);\n this.parent.off(events.destroyColorPicker, this.destroyColorPicker);\n this.parent.off(events.modelChanged, this.onPropertyChanged);\n this.parent.off(events.bindCssClass, this.setCssClass);\n };\n return ColorPickerInput;\n}());\nexport { ColorPickerInput };\n","import * as events from '../base/constant';\nimport { detach, isNullOrUndefined } from '@syncfusion/ej2-base';\n/**\n * XhtmlValidation module called when set enableXhtml as true\n */\nvar XhtmlValidation = /** @class */ (function () {\n function XhtmlValidation(parent) {\n this.parent = parent;\n this.addEventListener();\n }\n XhtmlValidation.prototype.addEventListener = function () {\n this.parent.on(events.xhtmlValidation, this.enableXhtmlValidation, this);\n this.parent.on(events.destroy, this.removeEventListener, this);\n };\n XhtmlValidation.prototype.removeEventListener = function () {\n this.parent.off(events.xhtmlValidation, this.enableXhtmlValidation);\n this.parent.off(events.destroy, this.removeEventListener);\n };\n XhtmlValidation.prototype.enableXhtmlValidation = function () {\n if (this.parent.enableXhtml) {\n if (isNullOrUndefined(this.parent.inputElement)) {\n this.currentElement = this.parent.element;\n }\n else {\n this.currentElement = this.parent.inputElement;\n }\n this.clean(this.currentElement);\n this.ImageTags();\n this.removeTags();\n this.RemoveUnsupported();\n this.currentElement.innerHTML = this.selfEncloseValidation(this.currentElement.innerHTML, this.currentElement.innerText === '\\n' ?\n this.currentElement.innerText.length : this.currentElement.innerText.trim().length);\n this.parent.setProperties({ value: this.currentElement.innerHTML }, true);\n }\n };\n /**\n * @param {string} currentValue - specifies the string value.\n * @param {number} valueLength - specifies the length of the current value.\n * @returns {void}\n\n */\n XhtmlValidation.prototype.selfEncloseValidation = function (currentValue, valueLength) {\n if (valueLength === 0 && currentValue.indexOf('table') < 0 && currentValue.indexOf('img') < 0) {\n var arrayValue = currentValue.split(' ');\n arrayValue[arrayValue.length - 1] = '​' + arrayValue[arrayValue.length - 1];\n currentValue = arrayValue.join('');\n }\n currentValue = currentValue.replace(/
    /g, '
    ').replace(/
    /g, '
    ').replace(/ /g, ' ');\n var valueTemp;\n var valueDupe = [];\n var valueOriginal = [];\n var imgRegexp = [//gi, //gi, //gi, /
    /gi, //gi,\n //gi, //gi, //gi, //gi, //gi,\n //gi, //gi];\n for (var j = 0; j < imgRegexp.length; j++) {\n valueTemp = imgRegexp[j].exec(currentValue);\n while ((valueTemp) !== null) {\n valueDupe.push(valueTemp[0].toString());\n valueTemp = imgRegexp[j].exec(currentValue);\n }\n valueOriginal = valueDupe.slice(0);\n for (var i = 0; i < valueDupe.length; i++) {\n if (valueDupe[i].indexOf('/') === -1 || valueDupe[i].lastIndexOf('/') !== valueDupe[i].length - 2) {\n valueDupe[i] = valueDupe[i].substr(0, valueDupe[i].length - 1) + ' /' +\n valueDupe[i].substr(valueDupe[i].length - 1, valueDupe[i].length);\n }\n }\n for (var g = 0; g <= valueDupe.length - 1; g++) {\n currentValue = currentValue.replace(valueOriginal[g], valueDupe[g]);\n }\n }\n return currentValue;\n };\n XhtmlValidation.prototype.clean = function (node) {\n for (var n = 0; n < node.childNodes.length; n++) {\n var child = node.childNodes[n];\n if (child.nodeType === 8 || child.nodeName === 'V:IMAGE') {\n node.removeChild(child);\n n--;\n }\n else if (child.nodeType === 1) {\n this.clean(child);\n }\n }\n return this.currentElement.innerHTML;\n };\n XhtmlValidation.prototype.ImageTags = function () {\n var imgNodes = this.currentElement.querySelectorAll('IMG');\n for (var i = imgNodes.length - 1; i >= 0; i--) {\n if (!imgNodes[i].hasAttribute('alt')) {\n var img = imgNodes[i];\n img.setAttribute('alt', '');\n }\n }\n };\n XhtmlValidation.prototype.removeTags = function () {\n var removeAttribute = [['br', 'ul'], ['br', 'ol'], ['table', 'span'], ['div', 'span'], ['p', 'span']];\n for (var i = 0; i < removeAttribute.length; i++) {\n this.RemoveElementNode(removeAttribute[i][0], removeAttribute[i][1]);\n }\n };\n XhtmlValidation.prototype.RemoveElementNode = function (rmvNode, parentNode) {\n var parentArray = this.currentElement.querySelectorAll(parentNode);\n for (var i = 0; i < parentArray.length; i++) {\n var rmvArray = parentArray[i].querySelectorAll(rmvNode);\n for (var j = rmvArray.length; j > 0; j--) {\n detach(rmvArray[j - 1]);\n }\n }\n };\n XhtmlValidation.prototype.RemoveUnsupported = function () {\n var underlineEle = this.currentElement.querySelectorAll('u');\n for (var i = underlineEle.length - 1; i >= 0; i--) {\n var spanEle = this.parent.createElement('span');\n spanEle.style.textDecoration = 'underline';\n spanEle.innerHTML = underlineEle[i].innerHTML;\n underlineEle[i].parentNode.insertBefore(spanEle, underlineEle[i]);\n detach(underlineEle[i]);\n }\n var strongEle = this.currentElement.querySelectorAll('strong');\n for (var i = strongEle.length - 1; i >= 0; i--) {\n var boldEle = this.parent.createElement('b');\n boldEle.innerHTML = strongEle[i].innerHTML;\n strongEle[i].parentNode.insertBefore(boldEle, strongEle[i]);\n detach(strongEle[i]);\n }\n var attrArray = ['language', 'role', 'target', 'contenteditable', 'cellspacing',\n 'cellpadding', 'border', 'valign', 'colspan'];\n for (var i = 0; i <= attrArray.length; i++) {\n this.RemoveAttributeByName(attrArray[i]);\n }\n };\n XhtmlValidation.prototype.RemoveAttributeByName = function (attrName) {\n if (this.currentElement.firstChild !== null) {\n if (this.currentElement.firstChild.nodeType !== 3) {\n for (var i = 0; i < this.currentElement.childNodes.length; i++) {\n var ele = this.currentElement.childNodes[i];\n if (ele.nodeType !== 3 && ele.nodeName !== 'TABLE' && ele.nodeName !== 'TBODY' && ele.nodeName !== 'THEAD' &&\n ele.nodeName !== 'TH' && ele.nodeName !== 'TR' && ele.nodeName !== 'TD') {\n if (ele.hasAttribute(attrName)) {\n ele.removeAttribute(attrName);\n }\n if (ele.hasChildNodes()) {\n for (var j = 0; j < ele.childNodes.length; j++) {\n var childEle = ele.childNodes[j];\n if (childEle.nodeType !== 3 && childEle.nodeName !== 'TABLE' && childEle.nodeName !== 'TBODY' &&\n childEle.nodeName !== 'THEAD' && childEle.nodeName !== 'TH' && childEle.nodeName !== 'TR' &&\n childEle.nodeName !== 'TD' && childEle.hasAttribute(attrName) &&\n !childEle.classList.contains('e-mention-chip')) {\n childEle.removeAttribute(attrName);\n }\n if (childEle.hasChildNodes()) {\n for (var k = 0; k < childEle.childNodes.length; k++) {\n if (childEle.childNodes[k].nodeType !== 3 && childEle.childNodes[k].nodeName !== 'TABLE' &&\n childEle.childNodes[k].nodeName !== 'TBODY' && childEle.childNodes[k].nodeName !== 'THEAD' &&\n childEle.childNodes[k].nodeName !== 'TH' && childEle.childNodes[k].nodeName !== 'TR'\n && childEle.childNodes[k].nodeName !== 'TD'\n && childEle.childNodes[k].hasAttribute(attrName)) {\n childEle.childNodes[k].removeAttribute(attrName);\n }\n }\n }\n }\n }\n }\n }\n }\n }\n };\n return XhtmlValidation;\n}());\nexport { XhtmlValidation };\n","import * as events from '../base/constant';\nimport { isNullOrUndefined, closest, attributes, removeClass, addClass, Browser, detach } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined as isNOU } from '@syncfusion/ej2-base';\nimport { HTMLFormatter } from '../formatter/html-formatter';\nimport { RenderType } from '../base/enum';\nimport * as classes from '../base/classes';\nimport { HtmlToolbarStatus } from './html-toolbar-status';\nimport { IframeContentRender } from '../renderer/iframe-content-renderer';\nimport { ContentRender } from '../renderer/content-renderer';\nimport { ColorPickerInput } from './color-picker';\nimport { NodeSelection } from '../../selection/selection';\nimport { InsertHtml } from '../../editor-manager/plugin/inserthtml';\nimport { getTextNodesUnder, sanitizeHelper, getDefaultValue } from '../base/util';\nimport { isIDevice } from '../../common/util';\nimport { XhtmlValidation } from './xhtml-validation';\nimport { ON_BEGIN } from './../../common/constant';\n/**\n * `HtmlEditor` module is used to HTML editor\n */\nvar HtmlEditor = /** @class */ (function () {\n function HtmlEditor(parent, serviceLocator) {\n this.rangeCollection = [];\n this.isImageDelete = false;\n this.parent = parent;\n this.locator = serviceLocator;\n this.renderFactory = this.locator.getService('rendererFactory');\n this.xhtmlValidation = new XhtmlValidation(parent);\n this.addEventListener();\n }\n /**\n * Destroys the Markdown.\n *\n * @function destroy\n * @returns {void}\n * @hidden\n\n */\n HtmlEditor.prototype.destroy = function () {\n this.removeEventListener();\n };\n /**\n * @param {string} value - specifies the string value\n * @returns {void}\n * @hidden\n\n */\n HtmlEditor.prototype.sanitizeHelper = function (value) {\n value = sanitizeHelper(value, this.parent);\n return value;\n };\n HtmlEditor.prototype.addEventListener = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n this.nodeSelectionObj = new NodeSelection();\n this.colorPickerModule = new ColorPickerInput(this.parent, this.locator);\n this.parent.on(events.initialLoad, this.instantiateRenderer, this);\n this.parent.on(events.htmlToolbarClick, this.onToolbarClick, this);\n this.parent.on(events.keyDown, this.onKeyDown, this);\n this.parent.on(events.keyUp, this.onKeyUp, this);\n this.parent.on(events.renderColorPicker, this.renderColorPicker, this);\n this.parent.on(events.initialEnd, this.render, this);\n this.parent.on(events.modelChanged, this.onPropertyChanged, this);\n this.parent.on(events.destroy, this.destroy, this);\n this.parent.on(events.selectAll, this.selectAll, this);\n this.parent.on(events.selectRange, this.selectRange, this);\n this.parent.on(events.getSelectedHtml, this.getSelectedHtml, this);\n this.parent.on(events.selectionSave, this.onSelectionSave, this);\n this.parent.on(events.selectionRestore, this.onSelectionRestore, this);\n this.parent.on(events.readOnlyMode, this.updateReadOnly, this);\n this.parent.on(events.paste, this.onPaste, this);\n this.parent.on(events.tableclass, this.isTableClassAdded, this);\n };\n HtmlEditor.prototype.updateReadOnly = function () {\n if (this.parent.readonly) {\n attributes(this.parent.contentModule.getEditPanel(), { contenteditable: 'false' });\n addClass([this.parent.element], classes.CLS_RTE_READONLY);\n }\n else {\n attributes(this.parent.contentModule.getEditPanel(), { contenteditable: 'true' });\n removeClass([this.parent.element], classes.CLS_RTE_READONLY);\n }\n };\n HtmlEditor.prototype.onSelectionSave = function () {\n var currentDocument = this.contentRenderer.getDocument();\n var range = this.nodeSelectionObj.getRange(currentDocument);\n this.saveSelection = this.nodeSelectionObj.save(range, currentDocument);\n };\n HtmlEditor.prototype.onSelectionRestore = function (e) {\n this.parent.isBlur = false;\n this.contentRenderer.getEditPanel().focus();\n if (isNullOrUndefined(e.items) || e.items) {\n this.saveSelection.restore();\n }\n };\n HtmlEditor.prototype.isTableClassAdded = function () {\n var tableElement = this.parent.inputElement.querySelectorAll('table');\n for (var i = 0; i < tableElement.length; i++) {\n if (!tableElement[i].classList.contains('e-rte-table')) {\n tableElement[i].classList.add('e-rte-table');\n }\n }\n };\n HtmlEditor.prototype.onKeyUp = function (e) {\n var args = e.args;\n var restrictKeys = [8, 9, 13, 16, 17, 18, 20, 27, 37, 38, 39, 40, 44, 45, 46, 91,\n 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123];\n var range = this.parent.getRange();\n // eslint-disable-next-line\n var regEx = new RegExp(String.fromCharCode(8203), 'g');\n var pointer;\n var isRootParent = false;\n if (restrictKeys.indexOf(args.keyCode) < 0 && !args.shiftKey && !args.ctrlKey && !args.altKey) {\n pointer = range.startOffset;\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n range.startContainer.nodeName === '#text' ? range.startContainer.parentElement !== this.parent.inputElement ? range.startContainer.parentElement.classList.add('currentStartMark')\n : isRootParent = true : range.startContainer.classList.add('currentStartMark');\n if (range.startContainer.textContent.charCodeAt(0) === 8203) {\n var previousLength_1 = range.startContainer.textContent.length;\n var previousRange = range.startOffset;\n range.startContainer.textContent = range.startContainer.textContent.replace(regEx, '');\n pointer = previousRange === 0 ? previousRange : previousRange - (previousLength_1 - range.startContainer.textContent.length);\n this.parent.formatter.editorManager.nodeSelection.setCursorPoint(this.parent.contentModule.getDocument(), range.startContainer, pointer);\n }\n var previousLength = this.parent.inputElement.innerHTML.length;\n var currentLength = this.parent.inputElement.innerHTML.replace(regEx, '').length;\n var focusNode = range.startContainer;\n if (previousLength > currentLength && !isRootParent) {\n var currentChild = this.parent.inputElement.firstChild;\n while (!isNOU(currentChild) && currentChild.textContent.replace(regEx, '').trim().length > 0) {\n currentChild.innerHTML = currentChild.innerHTML.replace(regEx, '');\n currentChild = currentChild.nextElementSibling;\n }\n var currentChildNode = this.parent.inputElement.querySelector('.currentStartMark').childNodes;\n if (currentChildNode.length > 1) {\n for (var i = 0; i < currentChildNode.length; i++) {\n if (currentChildNode[i].nodeName === '#text' && currentChildNode[i].textContent.length === 0) {\n detach(currentChildNode[i]);\n i--;\n }\n if (focusNode.textContent.replace(regEx, '') === currentChildNode[i].textContent) {\n pointer = focusNode.textContent.length > 1 ?\n (focusNode.textContent === currentChildNode[i].textContent ? pointer :\n pointer - (focusNode.textContent.length - focusNode.textContent.replace(regEx, '').length)) :\n focusNode.textContent.length;\n focusNode = currentChildNode[i];\n }\n }\n }\n else if (currentChildNode.length === 1) {\n if (focusNode.textContent.replace(regEx, '') === currentChildNode[0].textContent) {\n focusNode = currentChildNode[0];\n }\n }\n this.parent.formatter.editorManager.nodeSelection.setCursorPoint(this.parent.contentModule.getDocument(), focusNode, pointer);\n }\n var currentElem = this.parent.inputElement.querySelector('.currentStartMark');\n if (!isNOU(currentElem)) {\n currentElem.classList.remove('currentStartMark');\n if (currentElem.getAttribute('class').trim() === '') {\n currentElem.removeAttribute('class');\n }\n }\n if (!isNOU(range.startContainer.previousSibling) && !isNOU(range.startContainer.previousSibling.parentElement) &&\n range.startContainer.parentElement === range.startContainer.previousSibling.parentElement &&\n range.startContainer.previousSibling.textContent.charCodeAt(0) === 8203 &&\n range.startContainer.previousSibling.textContent.length <= 1) {\n range.startContainer.previousSibling.textContent = range.startContainer.previousSibling.textContent.replace(regEx, '');\n }\n if (range.endContainer.textContent.charCodeAt(range.endOffset) === 8203) {\n pointer = range.startOffset;\n range.endContainer.textContent = range.endContainer.textContent.replace(regEx, '');\n this.parent.formatter.editorManager.nodeSelection.setCursorPoint(this.parent.contentModule.getDocument(), range.startContainer, pointer);\n }\n }\n };\n HtmlEditor.prototype.onKeyDown = function (e) {\n var _this = this;\n var currentRange;\n var args = e.args;\n if (Browser.info.name === 'chrome') {\n currentRange = this.parent.getRange();\n this.backSpaceCleanup(e, currentRange);\n this.deleteCleanup(e, currentRange);\n }\n if (args.keyCode === 9 && this.parent.enableTabKey) {\n if (!isNOU(args.target) && isNullOrUndefined(closest(args.target, '.e-rte-toolbar'))) {\n var range = this.nodeSelectionObj.getRange(this.contentRenderer.getDocument());\n var parentNode = this.nodeSelectionObj.getParentNodeCollection(range);\n if (!((parentNode[0].nodeName === 'LI' || closest(parentNode[0], 'li') ||\n closest(parentNode[0], 'table')) && range.startOffset === 0)) {\n args.preventDefault();\n if (!args.shiftKey) {\n InsertHtml.Insert(this.contentRenderer.getDocument(), '    ');\n this.rangeCollection.push(this.nodeSelectionObj.getRange(this.contentRenderer.getDocument()));\n }\n else if (this.rangeCollection.length > 0 &&\n this.rangeCollection[this.rangeCollection.length - 1].startContainer.textContent.length === 4) {\n var textCont = this.rangeCollection[this.rangeCollection.length - 1].startContainer;\n this.nodeSelectionObj.setSelectionText(this.contentRenderer.getDocument(), textCont, textCont, 0, textCont.textContent.length);\n InsertHtml.Insert(this.contentRenderer.getDocument(), document.createTextNode(''));\n this.rangeCollection.pop();\n }\n }\n }\n }\n if (e.args.action === 'space' ||\n e.args.action === 'enter' ||\n e.args.keyCode === 13) {\n this.spaceLink(e.args);\n if (this.parent.editorMode === 'HTML' && !this.parent.readonly) {\n var currentLength = this.parent.getText().trim().length;\n var selectionLength = this.parent.getSelection().length;\n var totalLength = (currentLength - selectionLength) + 1;\n if (!(this.parent.maxLength === -1 || totalLength <= this.parent.maxLength) &&\n e.args.keyCode === 13) {\n e.args.preventDefault();\n return;\n }\n else {\n this.parent.notify(events.enterHandler, { args: e.args });\n }\n }\n }\n if (e.args.action === 'space') {\n var currentRange_1 = this.parent.getRange();\n var editorValue = currentRange_1.startContainer.textContent.slice(0, currentRange_1.startOffset);\n var orderedList_1 = this.isOrderedList(editorValue);\n var unOrderedList = this.isUnOrderedList(editorValue);\n if (orderedList_1 && !unOrderedList || unOrderedList && !orderedList_1) {\n var eventArgs_1 = {\n callBack: null,\n event: e.args,\n name: 'keydown-handler'\n };\n var actionBeginArgs = {\n cancel: false,\n item: { command: 'Lists', subCommand: orderedList_1 ? 'OL' : 'UL' },\n name: 'actionBegin',\n originalEvent: e.args,\n requestType: orderedList_1 ? 'OL' : 'UL'\n };\n this.parent.trigger(events.actionBegin, actionBeginArgs, function (actionBeginArgs) {\n if (!actionBeginArgs.cancel) {\n _this.parent.formatter.editorManager.observer.notify(ON_BEGIN, eventArgs_1);\n _this.parent.trigger(events.actionComplete, {\n editorMode: _this.parent.editorMode,\n elements: _this.parent.formatter.editorManager.domNode.blockNodes(),\n event: e.args,\n name: events.actionComplete,\n range: _this.parent.getRange(),\n requestType: orderedList_1 ? 'OL' : 'UL'\n });\n }\n });\n }\n }\n if (Browser.info.name === 'chrome' && (!isNullOrUndefined(this.rangeElement) && !isNullOrUndefined(this.oldRangeElement) ||\n !isNullOrUndefined(this.deleteRangeElement) && !isNullOrUndefined(this.deleteOldRangeElement)) &&\n currentRange.startContainer.parentElement.tagName !== 'TD' && currentRange.startContainer.parentElement.tagName !== 'TH') {\n this.rangeElement = null;\n this.oldRangeElement = null;\n this.deleteRangeElement = null;\n this.deleteOldRangeElement = null;\n if (!this.isImageDelete) {\n args.preventDefault();\n }\n args.preventDefault();\n }\n };\n HtmlEditor.prototype.isOrderedList = function (editorValue) {\n editorValue = editorValue.replace(/\\u200B/g, '');\n var olListStartRegex = [/^[1]+[.]+$/, /^[i]+[.]+$/, /^[a]+[.]+$/];\n if (!isNullOrUndefined(editorValue)) {\n for (var i = 0; i < olListStartRegex.length; i++) {\n if (olListStartRegex[i].test(editorValue)) {\n return true;\n }\n }\n }\n return false;\n };\n HtmlEditor.prototype.isUnOrderedList = function (editorValue) {\n editorValue = editorValue.replace(/\\u200B/g, '');\n var ulListStartRegex = [/^[*]$/, /^[-]$/];\n if (!isNullOrUndefined(editorValue)) {\n for (var i = 0; i < ulListStartRegex.length; i++) {\n if (ulListStartRegex[i].test(editorValue)) {\n return true;\n }\n }\n }\n return false;\n };\n HtmlEditor.prototype.backSpaceCleanup = function (e, currentRange) {\n var isLiElement = false;\n if (e.args.code === 'Backspace' && e.args.keyCode === 8 && currentRange.startOffset === 0 &&\n currentRange.endOffset === 0 && this.parent.getSelection().length === 0 && currentRange.startContainer.textContent.length > 0 &&\n currentRange.startContainer.parentElement.tagName !== 'TD' && currentRange.startContainer.parentElement.tagName !== 'TH') {\n var checkNode = currentRange.startContainer.nodeName === '#text' ? currentRange.startContainer.parentElement : currentRange.startContainer;\n if (!this.parent.formatter.editorManager.domNode.isBlockNode(checkNode) &&\n !isNOU(checkNode.previousSibling) && checkNode.previousSibling.nodeName === 'BR') {\n return;\n }\n this.rangeElement = this.getRootBlockNode(currentRange.startContainer);\n if (this.rangeElement.tagName === 'OL' || this.rangeElement.tagName === 'UL') {\n var liElement = this.getRangeLiNode(currentRange.startContainer);\n if (liElement.previousElementSibling && liElement.previousElementSibling.childElementCount > 0) {\n this.oldRangeElement = liElement.previousElementSibling.lastElementChild.nodeName === 'BR' ?\n liElement.previousElementSibling : liElement.previousElementSibling.lastElementChild;\n if (!isNullOrUndefined(liElement.lastElementChild) && liElement.lastElementChild.nodeName !== 'BR') {\n this.rangeElement = liElement.lastElementChild;\n isLiElement = true;\n }\n else {\n this.rangeElement = liElement;\n }\n }\n }\n else if (this.rangeElement === this.parent.inputElement || this.rangeElement.tagName === 'TABLE' ||\n (!isNullOrUndefined(this.rangeElement.previousElementSibling) && this.rangeElement.previousElementSibling.tagName === 'TABLE')) {\n return;\n }\n else {\n this.oldRangeElement = this.rangeElement.previousElementSibling;\n }\n if (isNullOrUndefined(this.oldRangeElement)) {\n return;\n }\n else {\n if (this.oldRangeElement.tagName === 'OL' || this.oldRangeElement.tagName === 'UL') {\n this.oldRangeElement = this.oldRangeElement.lastElementChild.lastElementChild\n ? this.oldRangeElement.lastElementChild.lastElementChild :\n this.oldRangeElement.lastElementChild;\n }\n var lastNode = this.oldRangeElement.lastChild;\n while (lastNode.nodeType !== 3 && lastNode.nodeName !== '#text' &&\n lastNode.nodeName !== 'BR') {\n lastNode = lastNode.lastChild;\n }\n this.parent.formatter.editorManager.nodeSelection.setCursorPoint(this.parent.contentModule.getDocument(), \n // eslint-disable-next-line\n lastNode, lastNode.textContent.length);\n if (this.oldRangeElement.querySelectorAll('BR').length === 1) {\n detach(this.oldRangeElement.querySelector('BR'));\n }\n if (!isNullOrUndefined(this.rangeElement) && this.oldRangeElement !== this.rangeElement) {\n while (this.rangeElement.firstChild) {\n this.oldRangeElement.appendChild(this.rangeElement.childNodes[0]);\n }\n // eslint-disable-next-line\n !isLiElement ? detach(this.rangeElement) : detach(this.rangeElement.parentElement);\n this.oldRangeElement.normalize();\n }\n }\n }\n };\n HtmlEditor.prototype.deleteCleanup = function (e, currentRange) {\n var isLiElement = false;\n var liElement;\n var rootElement;\n if (e.args.code === 'Delete' && e.args.keyCode === 46 &&\n this.parent.contentModule.getText().trim().length !== 0 && this.parent.getSelection().length === 0 && currentRange.startContainer.parentElement.tagName !== 'TD' &&\n currentRange.startContainer.parentElement.tagName !== 'TH') {\n this.deleteRangeElement = rootElement = this.getRootBlockNode(currentRange.startContainer);\n if (this.deleteRangeElement.tagName === 'OL' || this.deleteRangeElement.tagName === 'UL') {\n liElement = this.getRangeLiNode(currentRange.startContainer);\n if (liElement.nextElementSibling && liElement.nextElementSibling.childElementCount > 0\n && !liElement.nextElementSibling.querySelector('BR')) {\n if (!isNullOrUndefined(liElement.lastElementChild)) {\n this.deleteRangeElement = liElement.lastElementChild;\n isLiElement = true;\n }\n else {\n this.deleteRangeElement = liElement;\n }\n }\n else {\n this.deleteRangeElement = this.getRangeElement(liElement);\n }\n }\n else if (this.deleteRangeElement.nodeType === 3 || (this.deleteRangeElement.tagName === 'TABLE' ||\n (!isNullOrUndefined(this.deleteRangeElement.nextElementSibling) && this.deleteRangeElement.nextElementSibling.tagName === 'TABLE'))) {\n return;\n }\n if (this.getCaretIndex(currentRange, this.deleteRangeElement) === this.deleteRangeElement.textContent.length) {\n if (!isNullOrUndefined(liElement)) {\n if (isLiElement || !isNullOrUndefined(liElement.nextElementSibling)) {\n this.deleteOldRangeElement = this.getRangeElement(liElement.nextElementSibling);\n }\n else {\n this.deleteOldRangeElement = rootElement.nextElementSibling;\n }\n }\n else {\n this.deleteOldRangeElement = this.deleteRangeElement.nextElementSibling;\n }\n if (isNullOrUndefined(this.deleteOldRangeElement)) {\n return;\n }\n else {\n if (currentRange.startOffset === 0 && currentRange.endOffset === 1 &&\n this.deleteRangeElement.childNodes[0].nodeName === 'IMG') {\n this.parent.formatter.editorManager.nodeSelection.setSelectionText(this.parent.contentModule.getDocument(), this.deleteRangeElement, this.deleteRangeElement, 0, 1);\n this.isImageDelete = true;\n }\n else {\n this.parent.formatter.editorManager.nodeSelection.setCursorPoint(this.parent.contentModule.getDocument(), this.deleteRangeElement, this.deleteRangeElement.childNodes.length);\n this.isImageDelete = false;\n }\n if (this.deleteRangeElement.querySelector('BR')) {\n detach(this.deleteRangeElement.querySelector('BR'));\n }\n if (!isNullOrUndefined(this.deleteRangeElement) && (this.deleteOldRangeElement.tagName !== 'OL' && this.deleteOldRangeElement.tagName !== 'UL')\n && this.deleteOldRangeElement !== this.deleteRangeElement) {\n while (this.deleteOldRangeElement.firstChild) {\n this.deleteRangeElement.appendChild(this.deleteOldRangeElement.childNodes[0]);\n }\n if (!isLiElement) {\n detach(this.deleteOldRangeElement);\n }\n else {\n detach(this.deleteOldRangeElement.parentElement);\n }\n this.deleteRangeElement.normalize();\n }\n else {\n this.deleteRangeElement = null;\n this.deleteOldRangeElement = null;\n }\n }\n }\n else {\n this.deleteRangeElement = null;\n }\n }\n };\n HtmlEditor.prototype.getCaretIndex = function (currentRange, element) {\n var position = 0;\n if (this.parent.contentModule.getDocument().getSelection().rangeCount !== 0) {\n var preCaretRange = currentRange.cloneRange();\n preCaretRange.selectNodeContents(element);\n preCaretRange.setEnd(currentRange.endContainer, currentRange.endOffset);\n position = preCaretRange.toString().length;\n }\n return position;\n };\n HtmlEditor.prototype.getRangeElement = function (element) {\n var rangeElement = element.lastElementChild ? element.lastElementChild.tagName === 'BR' ?\n element.lastElementChild.previousElementSibling ? element.lastElementChild.previousElementSibling\n : element : element.lastElementChild : element;\n return rangeElement;\n };\n HtmlEditor.prototype.getRootBlockNode = function (rangeBlockNode) {\n // eslint-disable-next-line\n for (; rangeBlockNode && this.parent && this.parent.inputElement !== rangeBlockNode; rangeBlockNode = rangeBlockNode) {\n if (rangeBlockNode.parentElement === this.parent.inputElement) {\n break;\n }\n else {\n rangeBlockNode = rangeBlockNode.parentElement;\n }\n }\n return rangeBlockNode;\n };\n HtmlEditor.prototype.getRangeLiNode = function (rangeLiNode) {\n var node = rangeLiNode.parentElement;\n while (node !== this.parent.inputElement) {\n if (node.nodeType === 1 && node.tagName === 'LI') {\n break;\n }\n node = node.parentElement;\n }\n return node;\n };\n HtmlEditor.prototype.onPaste = function (e) {\n // eslint-disable-next-line\n var regex = new RegExp(/([^\\S]|^)(((https?\\:\\/\\/)|(www\\.))(\\S+))/gi);\n if (e.text.match(regex)) {\n if (e.isWordPaste) {\n return;\n }\n e.args.preventDefault();\n var range = this.parent.formatter.editorManager.nodeSelection.getRange(this.parent.contentModule.getDocument());\n // eslint-disable-next-line\n var saveSelection = this.parent.formatter.editorManager.nodeSelection.save(range, this.parent.contentModule.getDocument());\n // eslint-disable-next-line\n var httpRegex = new RegExp(/([^\\S]|^)(((https?\\:\\/\\/)))/gi);\n var wwwRegex = new RegExp(/([^\\S]|^)(((www\\.))(\\S+))/gi);\n var enterSplitText = e.text.split('\\n');\n var contentInnerElem = '';\n for (var i = 0; i < enterSplitText.length; i++) {\n if (enterSplitText[i].trim() === '') {\n contentInnerElem += getDefaultValue(this.parent);\n }\n else {\n var contentWithSpace = '';\n var spaceBetweenContent = true;\n var spaceSplit = enterSplitText[i].split(' ');\n for (var j = 0; j < spaceSplit.length; j++) {\n if (spaceSplit[j].trim() === '') {\n contentWithSpace += spaceBetweenContent ? ' ' : ' ';\n }\n else {\n spaceBetweenContent = false;\n contentWithSpace += spaceSplit[j] + ' ';\n }\n }\n if (i === 0) {\n contentInnerElem += '' + contentWithSpace.trim() + '';\n }\n else {\n contentInnerElem += '

    ' + contentWithSpace.trim() + '

    ';\n }\n }\n }\n var divElement = this.parent.createElement('div');\n divElement.setAttribute('class', 'pasteContent');\n divElement.style.display = 'inline';\n divElement.innerHTML = contentInnerElem.replace('¶', '&para');\n var paraElem = divElement.querySelectorAll('span, p');\n for (var i = 0; i < paraElem.length; i++) {\n var splitTextContent = paraElem[i].innerHTML.split(' ');\n var resultSplitContent = '';\n for (var j = 0; j < splitTextContent.length; j++) {\n if (splitTextContent[j].match(httpRegex) || splitTextContent[j].match(wwwRegex)) {\n resultSplitContent += '' + splitTextContent[j] + ' ';\n }\n else {\n resultSplitContent += splitTextContent[j] + ' ';\n }\n }\n paraElem[i].innerHTML = resultSplitContent.trim();\n }\n if (!isNullOrUndefined(this.parent.pasteCleanupModule)) {\n e.callBack(divElement.innerHTML);\n }\n else {\n this.parent.formatter.editorManager.execCommand('insertHTML', null, null, null, divElement);\n }\n }\n };\n HtmlEditor.prototype.spaceLink = function (e) {\n var range = this.nodeSelectionObj.getRange(this.contentRenderer.getDocument());\n var selectNodeEle = this.nodeSelectionObj.getParentNodeCollection(range);\n var text = range.startContainer.textContent.substr(0, range.endOffset);\n var splitText = text.split(' ');\n var urlText = splitText[splitText.length - 1];\n var urlTextRange = range.startOffset - (text.length - splitText[splitText.length - 1].length);\n urlText = urlText.slice(0, urlTextRange);\n // eslint-disable-next-line\n var regex = new RegExp(/([^\\S]|^)(((https?\\:\\/\\/)|(www\\.))(\\S+))/gi);\n if (selectNodeEle[0].nodeName !== 'A' && urlText.match(regex)) {\n var selection = this.nodeSelectionObj.save(range, this.parent.contentModule.getDocument());\n var url = urlText.indexOf('http') > -1 ? urlText : 'http://' + urlText;\n var selectParent = this.parent.formatter.editorManager.nodeSelection.getParentNodeCollection(range);\n var value = {\n url: url,\n selection: selection, selectParent: selectParent,\n text: urlText,\n title: '',\n target: '_blank'\n };\n this.parent.formatter.process(this.parent, {\n item: {\n 'command': 'Links',\n 'subCommand': 'CreateLink'\n }\n }, e, value);\n }\n };\n HtmlEditor.prototype.onToolbarClick = function (args) {\n var _this = this;\n var save;\n var selectNodeEle;\n var selectParentEle;\n var item = args.item;\n var closestElement = closest(args.originalEvent.target, '.e-rte-quick-popup');\n if (item.command !== 'FormatPainter') {\n if (closestElement && !closestElement.classList.contains('e-rte-inline-popup')) {\n if (!(item.subCommand === 'SourceCode' || item.subCommand === 'Preview' ||\n item.subCommand === 'FontColor' || item.subCommand === 'BackgroundColor')) {\n if (isIDevice() && item.command === 'Images') {\n this.nodeSelectionObj.restore();\n }\n var range = this.nodeSelectionObj.getRange(this.parent.contentModule.getDocument());\n save = this.nodeSelectionObj.save(range, this.parent.contentModule.getDocument());\n selectNodeEle = this.nodeSelectionObj.getNodeCollection(range);\n selectParentEle = this.nodeSelectionObj.getParentNodeCollection(range);\n }\n if (item.command === 'Images') {\n this.parent.notify(events.imageToolbarAction, {\n member: 'image', args: args, selectNode: selectNodeEle, selection: save, selectParent: selectParentEle\n });\n }\n if (item.command === 'Audios') {\n this.parent.notify(events.audioToolbarAction, {\n member: 'audio', args: args, selectNode: selectNodeEle, selection: save, selectParent: selectParentEle\n });\n }\n if (item.command === 'Videos') {\n this.parent.notify(events.videoToolbarAction, {\n member: 'video', args: args, selectNode: selectNodeEle, selection: save, selectParent: selectParentEle\n });\n }\n if (item.command === 'Links') {\n this.parent.notify(events.linkToolbarAction, {\n member: 'link', args: args, selectNode: selectNodeEle, selection: save, selectParent: selectParentEle\n });\n }\n if (item.command === 'Table') {\n this.parent.notify(events.tableToolbarAction, {\n member: 'table', args: args, selectNode: selectNodeEle, selection: save, selectParent: selectParentEle\n });\n }\n }\n else {\n var linkDialog = document.getElementById(this.parent.getID() + '_rtelink');\n var imageDialog = document.getElementById(this.parent.getID() + '_image');\n if (!(item.subCommand === 'SourceCode' || item.subCommand === 'Preview' ||\n item.subCommand === 'FontColor' || item.subCommand === 'BackgroundColor')) {\n var range = this.nodeSelectionObj.getRange(this.parent.contentModule.getDocument());\n if (isNullOrUndefined(linkDialog) && isNullOrUndefined(imageDialog)) {\n save = this.nodeSelectionObj.save(range, this.parent.contentModule.getDocument());\n }\n selectNodeEle = this.nodeSelectionObj.getNodeCollection(range);\n selectParentEle = this.nodeSelectionObj.getParentNodeCollection(range);\n }\n switch (item.subCommand) {\n case 'Maximize':\n this.parent.notify(events.enableFullScreen, { args: args });\n break;\n case 'Minimize':\n this.parent.notify(events.disableFullScreen, { args: args });\n break;\n case 'CreateLink':\n this.parent.notify(events.insertLink, {\n member: 'link', args: args, selectNode: selectNodeEle, selection: save, selectParent: selectParentEle\n });\n break;\n case 'RemoveLink':\n this.parent.notify(events.unLink, {\n member: 'link', args: args, selectNode: selectNodeEle, selection: save, selectParent: selectParentEle\n });\n break;\n case 'Print':\n this.parent.print();\n break;\n case 'Image':\n this.parent.notify(events.insertImage, {\n member: 'image', args: args, selectNode: selectNodeEle, selection: save, selectParent: selectParentEle\n });\n break;\n case 'Audio':\n this.parent.notify(events.insertAudio, {\n member: 'audio', args: args, selectNode: selectNodeEle, selection: save, selectParent: selectParentEle\n });\n break;\n case 'Video':\n this.parent.notify(events.insertVideo, {\n member: 'video', args: args, selectNode: selectNodeEle, selection: save, selectParent: selectParentEle\n });\n break;\n case 'CreateTable':\n this.parent.notify(events.createTable, {\n member: 'table', args: args, selection: save\n });\n break;\n case 'SourceCode':\n this.parent.notify(events.sourceCode, { member: 'viewSource', args: args });\n break;\n case 'Preview':\n this.parent.notify(events.updateSource, { member: 'updateSource', args: args });\n break;\n case 'FontColor':\n case 'BackgroundColor':\n break;\n case 'File':\n this.parent.notify(events.renderFileManager, {\n member: 'fileManager', args: args, selectNode: selectNodeEle, selection: save, selectParent: selectParentEle\n });\n break;\n default:\n this.parent.formatter.process(this.parent, args, args.originalEvent, null);\n break;\n }\n }\n }\n else {\n if (args.originalEvent.detail === 1) {\n clearTimeout(this.clickTimeout);\n this.clickTimeout = setTimeout(function () {\n _this.parent.notify(events.formatPainterClick, {\n member: 'formatPainter', args: args\n });\n }, 200);\n }\n else {\n clearTimeout(this.clickTimeout);\n this.parent.notify(events.formatPainterDoubleClick, {\n member: 'formatPainter', args: args\n });\n }\n }\n };\n HtmlEditor.prototype.renderColorPicker = function (args) {\n this.colorPickerModule.renderColorPickerInput(args);\n };\n HtmlEditor.prototype.instantiateRenderer = function () {\n if (this.parent.iframeSettings.enable) {\n this.renderFactory.addRenderer(RenderType.Content, new IframeContentRender(this.parent, this.locator));\n }\n else {\n this.renderFactory.addRenderer(RenderType.Content, new ContentRender(this.parent, this.locator));\n }\n };\n HtmlEditor.prototype.removeEventListener = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n this.parent.off(events.initialEnd, this.render);\n this.parent.off(events.modelChanged, this.onPropertyChanged);\n this.parent.off(events.htmlToolbarClick, this.onToolbarClick);\n this.parent.off(events.renderColorPicker, this.renderColorPicker);\n this.parent.off(events.destroy, this.destroy);\n this.parent.off(events.keyDown, this.onKeyDown);\n this.parent.off(events.initialLoad, this.instantiateRenderer);\n this.parent.off(events.selectAll, this.selectAll);\n this.parent.off(events.selectRange, this.selectRange);\n this.parent.off(events.getSelectedHtml, this.getSelectedHtml);\n this.parent.off(events.selectionSave, this.onSelectionSave);\n this.parent.off(events.selectionRestore, this.onSelectionRestore);\n this.parent.off(events.readOnlyMode, this.updateReadOnly);\n this.parent.off(events.paste, this.onPaste);\n this.parent.off(events.tableclass, this.isTableClassAdded);\n };\n HtmlEditor.prototype.render = function () {\n this.contentRenderer = this.renderFactory.getRenderer(RenderType.Content);\n var editElement = this.contentRenderer.getEditPanel();\n var option = { undoRedoSteps: this.parent.undoRedoSteps, undoRedoTimer: this.parent.undoRedoTimer };\n if (isNullOrUndefined(this.parent.formatter)) {\n var formatterClass = new HTMLFormatter({\n currentDocument: this.contentRenderer.getDocument(),\n element: editElement,\n options: option,\n formatPainterSettings: this.parent.formatPainterSettings\n });\n this.parent.setProperties({ formatter: formatterClass }, true);\n }\n else {\n this.parent.formatter.updateFormatter(editElement, this.contentRenderer.getDocument(), option);\n }\n if (this.parent.enableXhtml) {\n this.parent.notify(events.xhtmlValidation, {});\n }\n if (this.parent.toolbarSettings.enable) {\n this.toolbarUpdate = new HtmlToolbarStatus(this.parent);\n }\n if (this.parent.inlineMode.enable) {\n if (!isNullOrUndefined(this.parent.fontFamily.default)) {\n editElement.style.fontFamily = this.parent.fontFamily.default;\n }\n if (!isNullOrUndefined(this.parent.fontSize.default)) {\n editElement.style.fontSize = this.parent.fontSize.default;\n }\n }\n this.parent.notify(events.bindOnEnd, {});\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {RichTextEditorModel} e - specifies the editor model\n * @returns {void}\n * @hidden\n\n */\n HtmlEditor.prototype.onPropertyChanged = function (e) {\n // On property code change here\n if (!isNullOrUndefined(e.newProp.formatter)) {\n var editElement = this.contentRenderer.getEditPanel();\n var option = { undoRedoSteps: this.parent.undoRedoSteps,\n undoRedoTimer: this.parent.undoRedoTimer };\n this.parent.formatter.updateFormatter(editElement, this.contentRenderer.getDocument(), option);\n }\n };\n /**\n * For internal use only - Get the module name.\n *\n * @returns {string} - returns the string value\n * @hidden\n */\n HtmlEditor.prototype.getModuleName = function () {\n return 'htmlEditor';\n };\n /**\n * For selecting all content in RTE\n *\n * @returns {void}\n * @private\n * @hidden\n */\n HtmlEditor.prototype.selectAll = function () {\n var nodes = getTextNodesUnder(this.parent.contentModule.getDocument(), this.parent.contentModule.getEditPanel());\n if (nodes.length > 0) {\n this.parent.formatter.editorManager.nodeSelection.setSelectionText(this.parent.contentModule.getDocument(), nodes[0], nodes[nodes.length - 1], 0, nodes[nodes.length - 1].textContent.length);\n }\n };\n /**\n * For selecting all content in RTE\n *\n * @param {NotifyArgs} e - specifies the notified arguments\n * @returns {void}\n * @private\n * @hidden\n */\n HtmlEditor.prototype.selectRange = function (e) {\n this.parent.formatter.editorManager.nodeSelection.setRange(this.parent.contentModule.getDocument(), e.range);\n };\n /**\n * For get a selected text in RTE\n *\n * @param {NotifyArgs} e - specifies the notified arguments\n * @returns {void}\n * @hidden\n */\n HtmlEditor.prototype.getSelectedHtml = function (e) {\n e.callBack(this.parent.formatter.editorManager.nodeSelection.getRange(this.parent.contentModule.getDocument()).toString());\n };\n return HtmlEditor;\n}());\nexport { HtmlEditor };\n","import { detach, getUniqueID, append, closest, selectAll, select, isNullOrUndefined as isNOU } from '@syncfusion/ej2-base';\nimport { addClass, removeClass, Browser, isNullOrUndefined, setStyleAttribute } from '@syncfusion/ej2-base';\nimport { isCollide, Tooltip } from '@syncfusion/ej2-popups';\nimport * as events from '../base/constant';\nimport * as classes from '../base/classes';\nimport { RenderType } from '../base/enum';\nimport { setToolbarStatus, updateUndoRedoStatus, isIDevice } from '../base/util';\nimport { BaseToolbar } from './base-toolbar';\nimport { DropDownButtons } from './dropdown-buttons';\nimport { ColorPickerInput } from './color-picker';\n/**\n * `Quick toolbar` module is used to handle Quick toolbar actions.\n */\nvar BaseQuickToolbar = /** @class */ (function () {\n function BaseQuickToolbar(parent, locator) {\n this.parent = parent;\n this.locator = locator;\n this.isDOMElement = false;\n this.renderFactory = this.locator.getService('rendererFactory');\n this.contentRenderer = this.renderFactory.getRenderer(RenderType.Content);\n this.popupRenderer = this.renderFactory.getRenderer(RenderType.Popup);\n this.dropDownButtons = new DropDownButtons(this.parent, this.locator);\n this.colorPickerObj = new ColorPickerInput(this.parent, this.locator);\n }\n BaseQuickToolbar.prototype.appendPopupContent = function () {\n this.toolbarElement = this.parent.createElement('div', { className: classes.CLS_QUICK_TB });\n this.element.appendChild(this.toolbarElement);\n };\n /**\n * render method\n *\n * @param {IQuickToolbarOptions} args - specifies the arguments\n * @returns {void}\n * @hidden\n\n */\n BaseQuickToolbar.prototype.render = function (args) {\n var className;\n if (args.popupType === 'Image') {\n className = classes.CLS_IMAGE_POP;\n }\n else if (args.popupType === 'Inline') {\n className = classes.CLS_INLINE_POP;\n }\n else {\n className = '';\n }\n var popupId = getUniqueID(args.popupType + '_Quick_Popup');\n this.stringItems = args.toolbarItems;\n this.element = this.parent.createElement('div', { id: popupId, className: className + ' ' + classes.CLS_RTE_ELEMENTS });\n this.element.setAttribute('aria-owns', this.parent.getID());\n this.appendPopupContent();\n this.createToolbar(args.toolbarItems, args.mode, args.cssClass);\n this.popupRenderer.renderPopup(this);\n this.addEventListener();\n };\n BaseQuickToolbar.prototype.createToolbar = function (items, mode, cssClass) {\n this.quickTBarObj = new BaseToolbar(this.parent, this.locator);\n this.quickTBarObj.render({\n container: 'quick',\n target: this.toolbarElement,\n items: items,\n mode: mode,\n cssClass: cssClass\n });\n this.quickTBarObj.toolbarObj.refresh();\n };\n BaseQuickToolbar.prototype.setPosition = function (e) {\n var x;\n var y;\n var imgWrapper = closest(e.target, '.e-img-caption');\n var isAligned = (e.target.classList.contains('e-imginline') ||\n e.target.classList.contains('e-imgbreak')) ? false : true;\n var target = !isNOU(imgWrapper) ? imgWrapper : e.target;\n addClass([this.toolbarElement], [classes.CLS_RM_WHITE_SPACE]);\n var targetOffsetTop = target.offsetTop;\n var parentOffsetTop = window.pageYOffset + e.parentData.top;\n if ((targetOffsetTop - e.editTop) > e.popHeight) {\n y = parentOffsetTop + e.tBarElementHeight + (targetOffsetTop - e.editTop) - e.popHeight - 5;\n }\n else if (((e.editTop + e.editHeight) - (targetOffsetTop + target.offsetHeight)) > e.popHeight) {\n y = parentOffsetTop + e.tBarElementHeight + (targetOffsetTop - e.editTop) + target.offsetHeight + 5;\n }\n else {\n y = e.y;\n }\n target = isAligned ? e.target : target;\n if (target.offsetWidth > e.popWidth) {\n x = (target.offsetWidth / 2) - (e.popWidth / 2) + e.parentData.left + target.offsetLeft;\n }\n else {\n x = e.parentData.left + target.offsetLeft;\n }\n this.popupObj.position.X = ((x + e.popWidth) > e.parentData.right) ? e.parentData.right - e.popWidth : x;\n this.popupObj.position.Y = (y >= 0) ? y : e.y + 5;\n this.popupObj.dataBind();\n removeClass([this.toolbarElement], [classes.CLS_RM_WHITE_SPACE]);\n };\n BaseQuickToolbar.prototype.checkCollision = function (e, viewPort, type) {\n var x;\n var y;\n var parentTop = e.parentData.top;\n var contentTop = e.windowY + parentTop + e.tBarElementHeight;\n var collision = [];\n if (viewPort === 'document') {\n collision = isCollide(e.popup);\n }\n else {\n collision = isCollide(e.popup, e.parentElement);\n }\n for (var i = 0; i < collision.length; i++) {\n switch (collision[i]) {\n case 'top':\n if (viewPort === 'document') {\n y = e.windowY;\n }\n else {\n y = (window.pageYOffset + parentTop) + e.tBarElementHeight;\n }\n break;\n case 'bottom': {\n var posY = void 0;\n if (viewPort === 'document') {\n if (type === 'inline') {\n posY = (e.y - e.popHeight - 10);\n }\n else {\n if ((e.windowHeight - (parentTop + e.tBarElementHeight)) > e.popHeight) {\n if ((contentTop - e.windowHeight) > e.popHeight) {\n posY = (contentTop + (e.windowHeight - parentTop)) - e.popHeight;\n }\n else {\n posY = contentTop;\n }\n }\n else {\n posY = e.windowY + (parentTop + e.tBarElementHeight);\n }\n }\n }\n else {\n if (e.target.tagName !== 'IMG') {\n posY = (e.parentData.bottom + window.pageYOffset) - e.popHeight - 10;\n }\n else {\n posY = (e.parentData.bottom + window.pageYOffset) - e.popHeight - 5;\n }\n }\n y = posY;\n break;\n }\n case 'right':\n if (type === 'inline') {\n x = window.pageXOffset + (e.windowWidth - (e.popWidth + e.bodyRightSpace + 10));\n }\n else {\n x = e.x - e.popWidth;\n }\n break;\n case 'left':\n if (type === 'inline') {\n x = 0;\n }\n else {\n x = e.parentData.left;\n }\n break;\n }\n }\n this.popupObj.position.X = (x) ? x : this.popupObj.position.X;\n this.popupObj.position.Y = (y) ? y : this.popupObj.position.Y;\n this.popupObj.dataBind();\n };\n /**\n * showPopup method\n *\n * @param {number} x - specifies the x value\n * @param {number} y - specifies the y value\n * @param {Element} target - specifies the element\n * @returns {void}\n * @hidden\n\n */\n BaseQuickToolbar.prototype.showPopup = function (x, y, target) {\n var _this = this;\n var eventArgs = { popup: this.popupObj, cancel: false, targetElement: target, positionX: x, positionY: y };\n this.parent.trigger(events.beforeQuickToolbarOpen, eventArgs, function (beforeQuickToolbarArgs) {\n if (!beforeQuickToolbarArgs.cancel) {\n var editPanelTop = void 0;\n var editPanelHeight = void 0;\n var bodyStyle = window.getComputedStyle(document.body);\n var bodyRight = parseFloat(bodyStyle.marginRight.split('px')[0]) + parseFloat(bodyStyle.paddingRight.split('px')[0]);\n var windowHeight = window.innerHeight;\n var windowWidth = window.innerWidth;\n var parent_1 = _this.parent.element;\n var toolbarAvail = !isNullOrUndefined(_this.parent.getToolbar());\n var tbHeight = toolbarAvail && _this.parent.toolbarModule.getToolbarHeight();\n var expTBHeight = toolbarAvail && _this.parent.toolbarModule.getExpandTBarPopHeight();\n var tBarHeight = (toolbarAvail) ? (tbHeight + expTBHeight) : 0;\n addClass([_this.element], [classes.CLS_HIDE]);\n if (Browser.isDevice && !isIDevice()) {\n addClass([_this.parent.getToolbar()], [classes.CLS_HIDE]);\n }\n if (_this.parent.iframeSettings.enable) {\n var cntEle = _this.contentRenderer.getPanel().contentWindow;\n editPanelTop = cntEle.pageYOffset;\n editPanelHeight = cntEle.innerHeight;\n }\n else {\n var cntEle = closest(target, '.' + classes.CLS_RTE_CONTENT);\n editPanelTop = (cntEle) ? cntEle.scrollTop : 0;\n editPanelHeight = (cntEle) ? cntEle.offsetHeight : 0;\n }\n if (!_this.parent.inlineMode.enable && !closest(target, 'table')) {\n _this.parent.disableToolbarItem(_this.parent.toolbarSettings.items);\n _this.parent.enableToolbarItem(['Undo', 'Redo']);\n }\n append([_this.element], document.body);\n if (_this.parent.showTooltip) {\n _this.tooltip = new Tooltip({\n target: '#' + _this.element.id + ' [title]',\n showTipPointer: true\n });\n _this.tooltip.appendTo(_this.element);\n }\n _this.popupObj.position.X = beforeQuickToolbarArgs.positionX + 20;\n _this.popupObj.position.Y = beforeQuickToolbarArgs.positionY + 20;\n _this.popupObj.dataBind();\n _this.popupObj.element.classList.add('e-popup-open');\n _this.dropDownButtons.renderDropDowns({\n container: _this.toolbarElement,\n containerType: 'quick',\n items: _this.stringItems\n });\n _this.colorPickerObj.renderColorPickerInput({\n container: _this.toolbarElement,\n containerType: 'quick',\n items: _this.stringItems\n });\n var showPopupData = {\n x: x, y: y,\n target: target,\n editTop: editPanelTop,\n editHeight: editPanelHeight,\n popup: _this.popupObj.element,\n popHeight: _this.popupObj.element.offsetHeight,\n popWidth: _this.popupObj.element.offsetWidth,\n parentElement: parent_1,\n bodyRightSpace: bodyRight,\n windowY: window.pageYOffset,\n windowHeight: windowHeight,\n windowWidth: windowWidth,\n parentData: parent_1.getBoundingClientRect(),\n tBarElementHeight: tBarHeight\n };\n if (target.tagName === 'IMG' || target.tagName === 'AUDIO' || target.tagName === 'VIDEO' || target.tagName === 'IFRAME' || (target.classList &&\n (target.classList.contains(classes.CLS_AUDIOWRAP) || target.classList.contains(classes.CLS_CLICKELEM) ||\n target.classList.contains(classes.CLS_VID_CLICK_ELEM)))) {\n _this.setPosition(showPopupData);\n }\n if (!_this.parent.inlineMode.enable) {\n _this.checkCollision(showPopupData, 'parent', '');\n }\n _this.checkCollision(showPopupData, 'document', ((_this.parent.inlineMode.enable) ? 'inline' : ''));\n _this.popupObj.element.classList.remove('e-popup-open');\n removeClass([_this.element], [classes.CLS_HIDE]);\n _this.popupObj.show({ name: 'ZoomIn', duration: (Browser.isIE ? 250 : 400) });\n if (_this.popupObj && _this.parent.cssClass) {\n removeClass([_this.popupObj.element], _this.parent.cssClass);\n addClass([_this.popupObj.element], _this.parent.cssClass);\n }\n setStyleAttribute(_this.element, {\n maxWidth: window.outerWidth + 'px'\n });\n addClass([_this.element], [classes.CLS_POP]);\n _this.isDOMElement = true;\n }\n });\n };\n /**\n * hidePopup method\n *\n * @returns {void}\n * @hidden\n\n */\n BaseQuickToolbar.prototype.hidePopup = function () {\n var viewSourcePanel = this.parent.sourceCodeModule.getViewPanel();\n if (Browser.isDevice && !isIDevice()) {\n removeClass([this.parent.getToolbar()], [classes.CLS_HIDE]);\n }\n if (!isNullOrUndefined(document.querySelector('.e-tooltip-wrap'))) {\n if (!isNullOrUndefined(document.querySelector('#' + this.element.id + ' [data-tooltip-id]'))) {\n var tooltipTargetEle = document.querySelector('#' + this.element.id + ' [data-tooltip-id]');\n var dataContent = tooltipTargetEle.getAttribute('data-content');\n tooltipTargetEle.removeAttribute('data-content');\n tooltipTargetEle.setAttribute('title', dataContent);\n tooltipTargetEle.removeAttribute('data-tooltip-id');\n }\n this.tooltip.destroy();\n }\n if (!isNullOrUndefined(this.parent.getToolbar()) && !this.parent.inlineMode.enable) {\n if (isNullOrUndefined(viewSourcePanel) || viewSourcePanel.style.display === 'none') {\n this.parent.enableToolbarItem(this.parent.toolbarSettings.items);\n }\n }\n this.removeEleFromDOM();\n this.isDOMElement = false;\n };\n /**\n * @param {string} item - specifies the string value\n * @param {number} index - specifies the index value\n * @returns {void}\n * @hidden\n\n */\n BaseQuickToolbar.prototype.addQTBarItem = function (item, index) {\n this.quickTBarObj.toolbarObj.addItems(this.quickTBarObj.getItems(item, 'toolbar'), index);\n };\n /**\n * @param {number} index - specifies the index value\n * @returns {void}\n * @hidden\n\n */\n BaseQuickToolbar.prototype.removeQTBarItem = function (index) {\n this.quickTBarObj.toolbarObj.removeItems(index);\n };\n BaseQuickToolbar.prototype.removeEleFromDOM = function () {\n var element = this.popupObj.element;\n if (this.isDOMElement) {\n this.dropDownButtons.destroyDropDowns();\n this.colorPickerObj.destroyColorPicker();\n removeClass([this.element], [classes.CLS_POP]);\n detach(element);\n var args = this.popupObj;\n this.parent.trigger(events.quickToolbarClose, args);\n }\n };\n BaseQuickToolbar.prototype.updateStatus = function (args) {\n var options = {\n args: args,\n dropDownModule: this.dropDownButtons,\n parent: this.parent,\n tbElements: selectAll('.' + classes.CLS_TB_ITEM, this.element),\n tbItems: this.quickTBarObj.toolbarObj.items\n };\n setToolbarStatus(options, true, this.parent);\n if (!select('.e-rte-srctextarea', this.parent.element)) {\n updateUndoRedoStatus(this.parent.getBaseToolbarObject(), this.parent.formatter.editorManager.undoRedoManager.getUndoStatus());\n }\n };\n /**\n * Destroys the Quick toolbar.\n *\n * @function destroy\n * @returns {void}\n * @hidden\n\n */\n BaseQuickToolbar.prototype.destroy = function () {\n if (this.popupObj && !this.popupObj.isDestroyed) {\n this.popupObj.destroy();\n this.removeEleFromDOM();\n }\n this.removeEventListener();\n };\n /**\n * addEventListener method\n *\n * @returns {void}\n * @hidden\n\n */\n BaseQuickToolbar.prototype.addEventListener = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n this.parent.on(events.destroy, this.destroy, this);\n this.parent.on(events.modelChanged, this.onPropertyChanged, this);\n if (this.parent.inlineMode.enable) {\n this.parent.on(events.toolbarUpdated, this.updateStatus, this);\n }\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {RichTextEditorModel} e - specifies the model element\n * @returns {void}\n * @hidden\n\n */\n BaseQuickToolbar.prototype.onPropertyChanged = function (e) {\n if (!isNullOrUndefined(e.newProp.inlineMode)) {\n for (var _i = 0, _a = Object.keys(e.newProp.inlineMode); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'enable':\n if (e.newProp.inlineMode.enable) {\n this.parent.on(events.toolbarUpdated, this.updateStatus, this);\n }\n else {\n this.parent.off(events.toolbarUpdated, this.updateStatus);\n }\n break;\n }\n }\n }\n };\n /**\n * removeEventListener method\n *\n * @returns {void}\n * @hidden\n\n */\n BaseQuickToolbar.prototype.removeEventListener = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n this.parent.off(events.destroy, this.destroy);\n this.parent.off(events.modelChanged, this.onPropertyChanged);\n if (this.parent.inlineMode.enable) {\n this.parent.off(events.toolbarUpdated, this.updateStatus);\n }\n };\n return BaseQuickToolbar;\n}());\nexport { BaseQuickToolbar };\n","import { Popup } from '@syncfusion/ej2-popups';\nimport { CLS_QUICK_POP } from '../base/classes';\nimport * as events from '../base/constant';\n/**\n * `Popup renderer` module is used to render popup in RichTextEditor.\n *\n * @hidden\n\n */\nvar PopupRenderer = /** @class */ (function () {\n /**\n * Constructor for popup renderer module\n *\n * @param {IRichTextEditor} parent - specifies the parent.\n */\n function PopupRenderer(parent) {\n this.parent = parent;\n }\n PopupRenderer.prototype.quickToolbarOpen = function () {\n var args = this.popupObj;\n this.parent.trigger(events.quickToolbarOpen, args);\n };\n /**\n * renderPopup method\n *\n * @param {BaseQuickToolbar} args - specifies the arguments.\n * @returns {void}\n * @hidden\n\n */\n PopupRenderer.prototype.renderPopup = function (args) {\n this.setPanel(args.element);\n this.renderPanel();\n args.popupObj = new Popup(args.element, {\n targetType: 'relative',\n relateTo: this.parent.element,\n open: this.quickToolbarOpen.bind(this)\n });\n this.popupObj = args.popupObj;\n args.popupObj.hide();\n };\n /**\n * The function is used to add popup class in Quick Toolbar\n *\n * @returns {void}\n * @hidden\n\n */\n PopupRenderer.prototype.renderPanel = function () {\n this.getPanel().classList.add(CLS_QUICK_POP);\n };\n /**\n * Get the popup element of RichTextEditor\n *\n * @returns {Element} - specifies the element\n * @hidden\n\n */\n PopupRenderer.prototype.getPanel = function () {\n return this.popupPanel;\n };\n /**\n * Set the popup element of RichTextEditor\n *\n * @returns {void}\n * @param {Element} panel - specifies the element\n * @hidden\n\n */\n PopupRenderer.prototype.setPanel = function (panel) {\n this.popupPanel = panel;\n };\n return PopupRenderer;\n}());\nexport { PopupRenderer };\n","import { select, isNullOrUndefined, Browser, addClass, removeClass, EventHandler, closest, isNullOrUndefined as isNOU } from '@syncfusion/ej2-base';\nimport { RenderType } from '../base/enum';\nimport * as events from '../base/constant';\nimport { pageYOffset, hasClass, isIDevice } from '../base/util';\nimport { BaseQuickToolbar } from './base-quick-toolbar';\nimport { PopupRenderer } from '../renderer/popup-renderer';\nimport { CLS_INLINE_POP, CLS_INLINE } from '../base/classes';\n/**\n * `Quick toolbar` module is used to handle Quick toolbar actions.\n */\nvar QuickToolbar = /** @class */ (function () {\n function QuickToolbar(parent, locator) {\n this.parent = parent;\n this.locator = locator;\n this.renderFactory = this.locator.getService('rendererFactory');\n this.renderFactory.addRenderer(RenderType.Popup, new PopupRenderer(this.parent));\n this.addEventListener();\n }\n QuickToolbar.prototype.formatItems = function (items) {\n var formattedItems = [];\n items.forEach(function (item) {\n if (typeof item === 'string') {\n switch (item.toLocaleLowerCase()) {\n case 'open':\n formattedItems.push('openLink');\n break;\n case 'edit':\n formattedItems.push('editLink');\n break;\n case 'unlink':\n formattedItems.push('removeLink');\n break;\n default:\n formattedItems.push(item);\n break;\n }\n }\n else {\n formattedItems.push(item);\n }\n });\n return formattedItems;\n };\n QuickToolbar.prototype.getQTBarOptions = function (popType, mode, items, type) {\n return {\n popupType: popType,\n toolbarItems: items,\n mode: mode,\n renderType: type,\n cssClass: this.parent.cssClass\n };\n };\n /**\n * createQTBar method\n *\n * @param {string} popupType - specifies the string value\n * @param {string} mode - specifies the string value.\n * @param {string} items - specifies the string.\n * @param {RenderType} type - specifies the render type.\n * @returns {BaseQuickToolbar} - specifies the quick toolbar\n * @hidden\n\n */\n QuickToolbar.prototype.createQTBar = function (popupType, mode, items, type) {\n if (items.length < 1) {\n return null;\n }\n var qTBar = new BaseQuickToolbar(this.parent, this.locator);\n qTBar.render(this.getQTBarOptions(popupType, mode, this.formatItems(items), type));\n return qTBar;\n };\n QuickToolbar.prototype.initializeQuickToolbars = function () {\n this.parent.quickToolbarModule = this;\n this.contentRenderer = this.renderFactory.getRenderer(RenderType.Content);\n if (this.parent.inlineMode.enable && this.parent.inlineMode.onSelection && isIDevice()) {\n EventHandler.add(this.contentRenderer.getDocument(), 'selectionchange', this.selectionChangeHandler, this);\n }\n };\n // eslint-disable-next-line\n QuickToolbar.prototype.onMouseDown = function (e) {\n this.parent.isBlur = false;\n this.parent.isRTE = true;\n };\n QuickToolbar.prototype.keyUpQT = function (e) {\n if (e.which === 27) {\n this.hideQuickToolbars();\n }\n };\n QuickToolbar.prototype.renderQuickToolbars = function () {\n if (this.linkQTBar || this.imageQTBar || this.audioQTBar || this.videoQTBar || this.textQTBar || this.tableQTBar) {\n return;\n }\n this.linkQTBar = this.createQTBar('Link', 'Scrollable', this.parent.quickToolbarSettings.link, RenderType.LinkToolbar);\n this.renderFactory.addRenderer(RenderType.LinkToolbar, this.linkQTBar);\n this.textQTBar = this.createQTBar('Text', 'Scrollable', this.parent.quickToolbarSettings.text, RenderType.TextToolbar);\n this.renderFactory.addRenderer(RenderType.TextToolbar, this.textQTBar);\n this.imageQTBar = this.createQTBar('Image', 'MultiRow', this.parent.quickToolbarSettings.image, RenderType.ImageToolbar);\n this.renderFactory.addRenderer(RenderType.ImageToolbar, this.imageQTBar);\n this.audioQTBar = this.createQTBar('Audio', 'MultiRow', this.parent.quickToolbarSettings.audio, RenderType.AudioToolbar);\n this.renderFactory.addRenderer(RenderType.AudioToolbar, this.audioQTBar);\n this.videoQTBar = this.createQTBar('Video', 'MultiRow', this.parent.quickToolbarSettings.video, RenderType.VideoToolbar);\n this.renderFactory.addRenderer(RenderType.VideoToolbar, this.videoQTBar);\n this.tableQTBar = this.createQTBar('Table', 'MultiRow', this.parent.quickToolbarSettings.table, RenderType.TableToolbar);\n this.renderFactory.addRenderer(RenderType.TableToolbar, this.tableQTBar);\n if (this.linkQTBar) {\n EventHandler.add(this.linkQTBar.element, 'mousedown', this.onMouseDown, this);\n EventHandler.add(this.linkQTBar.element, 'keyup', this.keyUpQT, this);\n }\n if (this.imageQTBar) {\n EventHandler.add(this.imageQTBar.element, 'mousedown', this.onMouseDown, this);\n EventHandler.add(this.imageQTBar.element, 'keyup', this.keyUpQT, this);\n }\n if (this.audioQTBar) {\n EventHandler.add(this.audioQTBar.element, 'mousedown', this.onMouseDown, this);\n EventHandler.add(this.audioQTBar.element, 'keyup', this.keyUpQT, this);\n }\n if (this.videoQTBar) {\n EventHandler.add(this.videoQTBar.element, 'mousedown', this.onMouseDown, this);\n EventHandler.add(this.videoQTBar.element, 'keyup', this.keyUpQT, this);\n }\n if (this.textQTBar) {\n EventHandler.add(this.textQTBar.element, 'mousedown', this.onMouseDown, this);\n EventHandler.add(this.textQTBar.element, 'keyup', this.keyUpQT, this);\n }\n if (this.tableQTBar) {\n EventHandler.add(this.tableQTBar.element, 'mousedown', this.onMouseDown, this);\n EventHandler.add(this.tableQTBar.element, 'keyup', this.keyUpQT, this);\n }\n };\n QuickToolbar.prototype.renderInlineQuickToolbar = function () {\n if (this.parent.inlineMode.enable && (!Browser.isDevice || isIDevice())) {\n addClass([this.parent.element], [CLS_INLINE]);\n this.inlineQTBar = this.createQTBar('Inline', 'MultiRow', this.parent.toolbarSettings.items, RenderType.InlineToolbar);\n this.renderFactory.addRenderer(RenderType.InlineToolbar, this.inlineQTBar);\n EventHandler.add(this.inlineQTBar.element, 'mousedown', this.onMouseDown, this);\n EventHandler.add(this.inlineQTBar.element, 'keyup', this.keyUpQT, this);\n }\n };\n /**\n * Method for showing the inline quick toolbar\n *\n * @param {number} x -specifies the value of x.\n * @param {number} y - specifies the y valu.\n * @param {HTMLElement} target - specifies the target element.\n * @returns {void}\n * @hidden\n\n */\n QuickToolbar.prototype.showInlineQTBar = function (x, y, target) {\n if (this.parent.readonly || target.tagName.toLowerCase() === 'img') {\n return;\n }\n this.inlineQTBar.showPopup(x, y, target);\n };\n /**\n * Method for hidding the inline quick toolbar\n *\n * @returns {void}\n * @hidden\n\n */\n QuickToolbar.prototype.hideInlineQTBar = function () {\n if (this.inlineQTBar && !hasClass(this.inlineQTBar.element, 'e-popup-close')) {\n this.inlineQTBar.hidePopup();\n }\n };\n /**\n * Method for hidding the quick toolbar\n *\n * @returns {void}\n * @hidden\n\n */\n QuickToolbar.prototype.hideQuickToolbars = function () {\n if (this.linkQTBar && !hasClass(this.linkQTBar.element, 'e-popup-close') && document.body.contains(this.linkQTBar.element)) {\n this.linkQTBar.hidePopup();\n }\n if (this.textQTBar && !hasClass(this.textQTBar.element, 'e-popup-close') && document.body.contains(this.textQTBar.element)) {\n this.textQTBar.hidePopup();\n }\n if (this.imageQTBar && !hasClass(this.imageQTBar.element, 'e-popup-close') && document.body.contains(this.imageQTBar.element)) {\n this.imageQTBar.hidePopup();\n }\n if (this.audioQTBar && !hasClass(this.audioQTBar.element, 'e-popup-close') && document.body.contains(this.audioQTBar.element)) {\n this.audioQTBar.hidePopup();\n }\n if (this.videoQTBar && !hasClass(this.videoQTBar.element, 'e-popup-close') && document.body.contains(this.videoQTBar.element)) {\n this.videoQTBar.hidePopup();\n }\n if (this.tableQTBar && !hasClass(this.tableQTBar.element, 'e-popup-close') && document.body.contains(this.tableQTBar.element)) {\n this.tableQTBar.hidePopup();\n }\n if (!isNOU(this.parent) && this.parent.inlineMode.enable && (!Browser.isDevice || isIDevice())) {\n this.hideInlineQTBar();\n }\n };\n QuickToolbar.prototype.deBounce = function (x, y, target) {\n var _this = this;\n clearTimeout(this.deBouncer);\n this.deBouncer = window.setTimeout(function () {\n _this.showInlineQTBar(x, y, target);\n }, 1000);\n };\n QuickToolbar.prototype.mouseUpHandler = function (e) {\n if (this.parent.inlineMode.enable && (!Browser.isDevice || isIDevice())) {\n var args = e.args.touches ?\n e.args.changedTouches[0] : e.args;\n var range = this.parent.getRange();\n var target = e.args.target;\n if (isNullOrUndefined(select('.' + CLS_INLINE_POP, document.body))) {\n if (isIDevice() && e.touchData && e.touchData.prevClientX !== e.touchData.clientX\n && e.touchData.prevClientY !== e.touchData.clientY) {\n return;\n }\n this.hideInlineQTBar();\n var parentLeft = this.parent.element.getBoundingClientRect().left;\n this.offsetX = this.parent.iframeSettings.enable ? window.pageXOffset + parentLeft + args.clientX : args.pageX;\n this.offsetY = pageYOffset(args, this.parent.element, this.parent.iframeSettings.enable);\n if (target.nodeName === 'TEXTAREA') {\n this.showInlineQTBar(this.offsetX, this.offsetY, target);\n }\n else {\n var closestAnchor = closest(target, 'a');\n target = closestAnchor ? closestAnchor : target;\n var startNode = this.parent.getRange().startContainer.parentElement;\n var endNode = this.parent.getRange().endContainer.parentElement;\n if ((isNOU(closest(startNode, 'A')) || isNOU(closest(endNode, 'A'))) && (!closest(target, 'td,th') || !range.collapsed) &&\n (target.tagName !== 'IMG' || this.parent.getRange().startOffset !== this.parent.getRange().endOffset)) {\n if (this.parent.inlineMode.onSelection && range.collapsed) {\n return;\n }\n this.target = target;\n this.showInlineQTBar(this.offsetX, this.offsetY, target);\n }\n }\n }\n }\n };\n QuickToolbar.prototype.keyDownHandler = function () {\n if ((this.parent.inlineMode.enable && (!Browser.isDevice || isIDevice()))\n && !isNullOrUndefined(select('.' + CLS_INLINE_POP, document))) {\n this.hideInlineQTBar();\n }\n };\n QuickToolbar.prototype.inlineQTBarMouseDownHandler = function () {\n if ((this.parent.inlineMode.enable && (!Browser.isDevice || isIDevice()))\n && !isNullOrUndefined(select('.' + CLS_INLINE_POP, document))) {\n this.hideInlineQTBar();\n }\n };\n QuickToolbar.prototype.keyUpHandler = function (e) {\n if (this.parent.inlineMode.enable && !Browser.isDevice) {\n var args = e.args;\n if (this.parent.inlineMode.onSelection) {\n if (this.parent.getSelection().length > 0) {\n if ((args.ctrlKey && args.keyCode === 65) || (args.shiftKey && (args.keyCode === 33 || args.keyCode === 34 ||\n args.keyCode === 35 || args.keyCode === 36 || args.keyCode === 37 || args.keyCode === 38 ||\n args.keyCode === 39 || args.keyCode === 40))) {\n this.showInlineQTBar(this.offsetX, this.offsetY, args.target);\n }\n }\n return;\n }\n this.deBounce(this.offsetX, this.offsetY, args.target);\n }\n };\n QuickToolbar.prototype.selectionChangeHandler = function (e) {\n var _this = this;\n clearTimeout(this.deBouncer);\n this.deBouncer = window.setTimeout(function () {\n _this.onSelectionChange(e);\n }, 1000);\n };\n QuickToolbar.prototype.onSelectionChange = function (e) {\n if (!isNullOrUndefined(select('.' + CLS_INLINE_POP, document.body))) {\n return;\n }\n var selection = this.contentRenderer.getDocument().getSelection();\n if (!selection.isCollapsed) {\n this.mouseUpHandler({ args: e });\n }\n };\n /**\n * getInlineBaseToolbar method\n *\n * @returns {void}\n * @hidden\n\n */\n QuickToolbar.prototype.getInlineBaseToolbar = function () {\n return this.inlineQTBar && this.inlineQTBar.quickTBarObj;\n };\n /**\n * Destroys the ToolBar.\n *\n * @function destroy\n * @returns {void}\n * @hidden\n\n */\n QuickToolbar.prototype.destroy = function () {\n if (this.linkQTBar) {\n EventHandler.remove(this.linkQTBar.element, 'mousedown', this.onMouseDown);\n EventHandler.remove(this.linkQTBar.element, 'keyup', this.keyUpQT);\n this.linkQTBar.destroy();\n }\n if (this.textQTBar) {\n EventHandler.remove(this.textQTBar.element, 'mousedown', this.onMouseDown);\n EventHandler.remove(this.textQTBar.element, 'keyup', this.keyUpQT);\n this.textQTBar.destroy();\n }\n if (this.imageQTBar) {\n EventHandler.remove(this.imageQTBar.element, 'mousedown', this.onMouseDown);\n EventHandler.remove(this.imageQTBar.element, 'keyup', this.keyUpQT);\n this.imageQTBar.destroy();\n }\n if (this.audioQTBar) {\n EventHandler.remove(this.audioQTBar.element, 'mousedown', this.onMouseDown);\n EventHandler.remove(this.audioQTBar.element, 'keyup', this.keyUpQT);\n this.audioQTBar.destroy();\n }\n if (this.videoQTBar) {\n EventHandler.remove(this.videoQTBar.element, 'mousedown', this.onMouseDown);\n EventHandler.remove(this.videoQTBar.element, 'keyup', this.keyUpQT);\n this.videoQTBar.destroy();\n }\n if (this.tableQTBar) {\n EventHandler.remove(this.tableQTBar.element, 'mousedown', this.onMouseDown);\n EventHandler.remove(this.tableQTBar.element, 'keyup', this.keyUpQT);\n this.tableQTBar.destroy();\n }\n if (this.inlineQTBar) {\n EventHandler.remove(this.inlineQTBar.element, 'mousedown', this.onMouseDown);\n EventHandler.remove(this.inlineQTBar.element, 'keyup', this.keyUpQT);\n if (isIDevice()) {\n EventHandler.remove(document, 'selectionchange', this.selectionChangeHandler);\n }\n this.inlineQTBar.destroy();\n }\n this.removeEventListener();\n };\n QuickToolbar.prototype.moduleDestroy = function () {\n this.parent = null;\n };\n QuickToolbar.prototype.wireInlineQTBarEvents = function () {\n this.parent.on(events.mouseUp, this.mouseUpHandler, this);\n this.parent.on(events.mouseDown, this.inlineQTBarMouseDownHandler, this);\n this.parent.on(events.keyDown, this.keyDownHandler, this);\n this.parent.on(events.keyUp, this.keyUpHandler, this);\n this.parent.on(events.sourceCodeMouseDown, this.mouseUpHandler, this);\n this.parent.on(events.renderInlineToolbar, this.renderInlineQuickToolbar, this);\n this.parent.on(events.moduleDestroy, this.moduleDestroy, this);\n };\n QuickToolbar.prototype.unWireInlineQTBarEvents = function () {\n this.parent.off(events.mouseUp, this.mouseUpHandler);\n this.parent.off(events.mouseDown, this.inlineQTBarMouseDownHandler);\n this.parent.off(events.keyDown, this.keyDownHandler);\n this.parent.off(events.keyUp, this.keyUpHandler);\n this.parent.off(events.sourceCodeMouseDown, this.mouseUpHandler);\n this.parent.off(events.renderInlineToolbar, this.renderInlineQuickToolbar);\n this.parent.off(events.moduleDestroy, this.moduleDestroy);\n };\n // eslint-disable-next-line\n QuickToolbar.prototype.toolbarUpdated = function (args) {\n if (this.linkQTBar && !hasClass(this.linkQTBar.element, 'e-popup-close')) {\n this.linkQTBar.hidePopup();\n }\n if (this.imageQTBar && !hasClass(this.imageQTBar.element, 'e-popup-close')) {\n this.imageQTBar.hidePopup();\n }\n if (this.audioQTBar && !hasClass(this.audioQTBar.element, 'e-popup-close')) {\n this.audioQTBar.hidePopup();\n }\n if (this.videoQTBar && !hasClass(this.videoQTBar.element, 'e-popup-close')) {\n this.videoQTBar.hidePopup();\n }\n if (this.tableQTBar && !hasClass(this.tableQTBar.element, 'e-popup-close')) {\n this.tableQTBar.hidePopup();\n }\n };\n /**\n * addEventListener\n *\n * @returns {void}\n * @hidden\n\n */\n QuickToolbar.prototype.addEventListener = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n this.parent.on(events.initialEnd, this.initializeQuickToolbars, this);\n this.parent.on(events.mouseDown, this.renderQuickToolbars, this);\n this.parent.on(events.toolbarUpdated, this.toolbarUpdated, this);\n this.parent.on(events.drop, this.renderQuickToolbars, this);\n this.wireInlineQTBarEvents();\n this.parent.on(events.modelChanged, this.onPropertyChanged, this);\n if (this.parent.quickToolbarSettings.actionOnScroll === 'hide') {\n this.parent.on(events.scroll, this.hideQuickToolbars, this);\n this.parent.on(events.contentscroll, this.hideQuickToolbars, this);\n }\n this.parent.on(events.focusChange, this.hideQuickToolbars, this);\n this.parent.on(events.iframeMouseDown, this.onIframeMouseDown, this);\n this.parent.on(events.destroy, this.destroy, this);\n this.parent.on(events.keyDown, this.onKeyDown, this);\n this.parent.on(events.rtlMode, this.setRtl, this);\n this.parent.on(events.bindCssClass, this.setCssClass, this);\n };\n QuickToolbar.prototype.onKeyDown = function (e) {\n var args = e.args;\n if (args.which === 8 || args.which === 46) {\n if (this.imageQTBar && !hasClass(this.imageQTBar.element, 'e-popup-close')) {\n this.imageQTBar.hidePopup();\n }\n if (this.audioQTBar && !hasClass(this.audioQTBar.element, 'e-popup-close')) {\n this.audioQTBar.hidePopup();\n }\n if (this.videoQTBar && !hasClass(this.videoQTBar.element, 'e-popup-close')) {\n this.videoQTBar.hidePopup();\n }\n }\n };\n QuickToolbar.prototype.onIframeMouseDown = function () {\n this.hideQuickToolbars();\n this.hideInlineQTBar();\n };\n QuickToolbar.prototype.updateCss = function (baseQTObj, e) {\n if (baseQTObj && e.cssClass) {\n if (isNullOrUndefined(e.oldCssClass && baseQTObj.quickTBarObj.toolbarObj.cssClass !== e.cssClass)) {\n baseQTObj.quickTBarObj.toolbarObj.setProperties({ cssClass: (baseQTObj.quickTBarObj.toolbarObj.cssClass + ' ' + e.cssClass).trim() });\n }\n else {\n baseQTObj.quickTBarObj.toolbarObj.setProperties({ cssClass: (baseQTObj.quickTBarObj.toolbarObj.cssClass.replace(e.oldCssClass, '').trim() + ' ' + e.cssClass).trim() });\n }\n }\n };\n QuickToolbar.prototype.setCssClass = function (e) {\n var baseQuickToolbarObj = [\n this.inlineQTBar, this.imageQTBar, this.linkQTBar, this.textQTBar, this.tableQTBar\n ];\n for (var i = 0; i < baseQuickToolbarObj.length; i++) {\n this.updateCss(baseQuickToolbarObj[i], e);\n }\n };\n QuickToolbar.prototype.setRtl = function (args) {\n if (this.inlineQTBar) {\n this.inlineQTBar.quickTBarObj.toolbarObj.setProperties({ enableRtl: args.enableRtl });\n }\n if (this.imageQTBar) {\n this.imageQTBar.quickTBarObj.toolbarObj.setProperties({ enableRtl: args.enableRtl });\n }\n if (this.audioQTBar) {\n this.audioQTBar.quickTBarObj.toolbarObj.setProperties({ enableRtl: args.enableRtl });\n }\n if (this.videoQTBar) {\n this.videoQTBar.quickTBarObj.toolbarObj.setProperties({ enableRtl: args.enableRtl });\n }\n if (this.linkQTBar) {\n this.linkQTBar.quickTBarObj.toolbarObj.setProperties({ enableRtl: args.enableRtl });\n }\n };\n /**\n * removeEventListener\n *\n * @returns {void}\n * @hidden\n\n */\n QuickToolbar.prototype.removeEventListener = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n this.parent.off(events.initialEnd, this.initializeQuickToolbars);\n this.parent.off(events.mouseDown, this.renderQuickToolbars);\n this.parent.off(events.toolbarUpdated, this.toolbarUpdated);\n this.parent.off(events.drop, this.renderQuickToolbars);\n this.unWireInlineQTBarEvents();\n this.parent.off(events.modelChanged, this.onPropertyChanged);\n if (this.parent.quickToolbarSettings.actionOnScroll === 'hide') {\n this.parent.off(events.scroll, this.hideQuickToolbars);\n this.parent.off(events.contentscroll, this.hideQuickToolbars);\n }\n this.parent.off(events.focusChange, this.hideQuickToolbars);\n this.parent.off(events.destroy, this.destroy);\n this.parent.off(events.iframeMouseDown, this.onIframeMouseDown);\n this.parent.off(events.keyDown, this.onKeyDown);\n this.parent.off(events.rtlMode, this.setRtl);\n this.parent.off(events.bindCssClass, this.setCssClass);\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {RichTextEditorModel} e - specifies the element.\n * @returns {void}\n * @hidden\n\n */\n QuickToolbar.prototype.onPropertyChanged = function (e) {\n if (!isNullOrUndefined(e.newProp.quickToolbarSettings)) {\n for (var _i = 0, _a = Object.keys(e.newProp.quickToolbarSettings); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'actionOnScroll':\n if (e.newProp.quickToolbarSettings.actionOnScroll === 'none') {\n this.parent.off(events.scroll, this.hideQuickToolbars);\n this.parent.off(events.contentscroll, this.hideQuickToolbars);\n }\n else {\n this.parent.on(events.scroll, this.hideQuickToolbars, this);\n this.parent.on(events.contentscroll, this.hideQuickToolbars, this);\n }\n break;\n }\n }\n }\n if (e.module !== this.getModuleName()) {\n return;\n }\n if (this.inlineQTBar) {\n removeClass([this.parent.element], [CLS_INLINE]);\n this.unWireInlineQTBarEvents();\n this.hideInlineQTBar();\n }\n if (this.parent.inlineMode.enable && (!Browser.isDevice || isIDevice())) {\n addClass([this.parent.element], [CLS_INLINE]);\n this.wireInlineQTBarEvents();\n }\n };\n /**\n * For internal use only - Get the module name.\n *\n * @returns {void}\n * @hidden\n */\n QuickToolbar.prototype.getModuleName = function () {\n return 'quickToolbar';\n };\n return QuickToolbar;\n}());\nexport { QuickToolbar };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component, rippleEffect, NotifyPropertyChanges, Property, closest } from '@syncfusion/ej2-base';\nimport { addClass, getInstance, getUniqueID, isRippleEnabled, removeClass, attributes, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { detach, Event, EventHandler, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\nimport { wrapperInitialize, rippleMouseHandler } from './../common/common';\nvar LABEL = 'e-label';\nvar RIPPLE = 'e-ripple-container';\nvar RTL = 'e-rtl';\nvar WRAPPER = 'e-radio-wrapper';\nvar ATTRIBUTES = ['title', 'class', 'style', 'disabled', 'readonly', 'name', 'value'];\n/**\n * The RadioButton is a graphical user interface element that allows you to select one option from the choices.\n * It contains checked and unchecked states.\n * ```html\n * \n * \n * ```\n */\nvar RadioButton = /** @class */ (function (_super) {\n __extends(RadioButton, _super);\n /**\n * Constructor for creating the widget\n *\n * @private\n * @param {RadioButtonModel} options - Specifies Radio button model\n * @param {string | HTMLInputElement} element - Specifies target element\n */\n function RadioButton(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.isFocused = false;\n return _this;\n }\n RadioButton_1 = RadioButton;\n RadioButton.prototype.changeHandler = function (event) {\n this.checked = true;\n this.dataBind();\n var value = this.element.getAttribute('value');\n value = this.isVue && value ? this.element.value : this.value;\n var type = typeof this.value;\n if (this.isVue && type === 'boolean') {\n value = value === 'true' ? true : false;\n }\n this.trigger('change', { value: value, event: event });\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isAngular) {\n event.stopPropagation();\n }\n };\n RadioButton.prototype.updateChange = function () {\n var input;\n var instance;\n var radioGrp = this.getRadioGroup();\n for (var i = 0; i < radioGrp.length; i++) {\n input = radioGrp[i];\n if (input !== this.element) {\n instance = getInstance(input, RadioButton_1);\n instance.checked = false;\n if (this.tagName === 'EJS-RADIOBUTTON') {\n instance.angularValue = this.value;\n }\n }\n }\n };\n /**\n * Destroys the widget.\n *\n * @returns {void}\n */\n RadioButton.prototype.destroy = function () {\n var _this = this;\n var radioWrap = this.wrapper;\n _super.prototype.destroy.call(this);\n if (radioWrap) {\n if (!this.disabled) {\n this.unWireEvents();\n }\n if (this.tagName === 'INPUT') {\n if (radioWrap.parentNode) {\n radioWrap.parentNode.insertBefore(this.element, radioWrap);\n }\n detach(radioWrap);\n this.element.checked = false;\n ['name', 'value', 'disabled'].forEach(function (key) {\n _this.element.removeAttribute(key);\n });\n }\n else {\n ['role', 'aria-checked', 'class'].forEach(function (key) {\n radioWrap.removeAttribute(key);\n });\n radioWrap.innerHTML = '';\n }\n }\n };\n RadioButton.prototype.focusHandler = function () {\n this.isFocused = true;\n };\n RadioButton.prototype.focusOutHandler = function () {\n var label = this.getLabel();\n if (label) {\n label.classList.remove('e-focus');\n }\n };\n RadioButton.prototype.getModuleName = function () {\n return 'radio';\n };\n /**\n * To get the value of selected radio button in a group.\n *\n * @method getSelectedValue\n * @returns {string} - Selected Value\n */\n RadioButton.prototype.getSelectedValue = function () {\n var input;\n var radioGrp = this.getRadioGroup();\n for (var i = 0, len = radioGrp.length; i < len; i++) {\n input = radioGrp[i];\n if (input.checked) {\n return input.value;\n }\n }\n return '';\n };\n RadioButton.prototype.getRadioGroup = function () {\n return document.querySelectorAll('input.e-radio[name=\"' + this.element.getAttribute('name') + '\"]');\n };\n /**\n * Gets the properties to be maintained in the persistence state.\n *\n * @private\n * @returns {string} - Persist Data\n */\n RadioButton.prototype.getPersistData = function () {\n return this.addOnPersist(['checked']);\n };\n RadioButton.prototype.getWrapper = function () {\n if (this.element) {\n return this.element.parentElement;\n }\n else {\n return null;\n }\n };\n RadioButton.prototype.getLabel = function () {\n if (this.element) {\n return this.element.nextElementSibling;\n }\n else {\n return null;\n }\n };\n RadioButton.prototype.initialize = function () {\n if (isNullOrUndefined(this.initialCheckedValue)) {\n this.initialCheckedValue = this.checked;\n }\n this.initWrapper();\n this.updateHtmlAttribute();\n if (this.name) {\n this.element.setAttribute('name', this.name);\n }\n var value = this.element.getAttribute('value');\n var type = typeof this.value;\n if (this.isVue && type === 'boolean') {\n value = value === 'true' ? true : false;\n }\n if (this.isVue && value && value === this.value) {\n this.checked = true;\n }\n if (this.isVue ? this.value && type !== 'boolean' && !value : this.value) {\n this.element.setAttribute('value', this.value);\n }\n if (this.checked) {\n this.element.checked = true;\n }\n if (this.disabled) {\n this.setDisabled();\n }\n };\n RadioButton.prototype.initWrapper = function () {\n var rippleSpan;\n var wrapper = this.element.parentElement;\n if (!wrapper.classList.contains(WRAPPER)) {\n wrapper = this.createElement('div', { className: WRAPPER });\n this.element.parentNode.insertBefore(wrapper, this.element);\n }\n var label = this.createElement('label', { attrs: { for: this.element.id } });\n wrapper.appendChild(this.element);\n wrapper.appendChild(label);\n if (isRippleEnabled) {\n rippleSpan = this.createElement('span', { className: (RIPPLE) });\n label.appendChild(rippleSpan);\n rippleEffect(rippleSpan, {\n duration: 400,\n isCenterRipple: true\n });\n }\n wrapper.classList.add('e-wrapper');\n if (this.enableRtl) {\n label.classList.add(RTL);\n }\n if (this.cssClass) {\n addClass([wrapper], this.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n if (this.label) {\n this.setText(this.label);\n }\n };\n RadioButton.prototype.keyUpHandler = function () {\n if (this.isFocused) {\n this.getLabel().classList.add('e-focus');\n }\n };\n RadioButton.prototype.labelMouseDownHandler = function (e) {\n var rippleSpan = this.getLabel().getElementsByClassName(RIPPLE)[0];\n rippleMouseHandler(e, rippleSpan);\n };\n RadioButton.prototype.labelMouseLeaveHandler = function (e) {\n var rippleSpan = this.getLabel().getElementsByClassName(RIPPLE)[0];\n if (rippleSpan) {\n var rippleElem = rippleSpan.querySelectorAll('.e-ripple-element');\n for (var i = rippleElem.length - 1; i > 0; i--) {\n rippleSpan.removeChild(rippleSpan.childNodes[i]);\n }\n rippleMouseHandler(e, rippleSpan);\n }\n };\n RadioButton.prototype.labelMouseUpHandler = function (e) {\n var rippleSpan = this.getLabel().getElementsByClassName(RIPPLE)[0];\n if (rippleSpan) {\n var rippleElem = rippleSpan.querySelectorAll('.e-ripple-element');\n for (var i = rippleElem.length - 1; i > 0; i--) {\n rippleSpan.removeChild(rippleSpan.childNodes[i]);\n }\n rippleMouseHandler(e, rippleSpan);\n }\n };\n RadioButton.prototype.formResetHandler = function () {\n this.checked = this.initialCheckedValue;\n if (this.initialCheckedValue) {\n attributes(this.element, { 'checked': 'true' });\n }\n };\n /**\n * Called internally if any of the property value changes.\n *\n * @private\n * @param {RadioButtonModel} newProp - Specifies New Properties\n * @param {RadioButtonModel} oldProp - Specifies Old Properties\n * @returns {void}\n */\n RadioButton.prototype.onPropertyChanged = function (newProp, oldProp) {\n var wrap = this.getWrapper();\n var label = this.getLabel();\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'checked':\n if (newProp.checked) {\n this.updateChange();\n }\n this.element.checked = newProp.checked;\n break;\n case 'disabled':\n if (newProp.disabled) {\n this.setDisabled();\n this.unWireEvents();\n }\n else {\n this.element.disabled = false;\n this.wireEvents();\n }\n break;\n case 'cssClass':\n if (oldProp.cssClass) {\n removeClass([wrap], oldProp.cssClass.split(' '));\n }\n if (newProp.cssClass) {\n addClass([wrap], newProp.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n break;\n case 'enableRtl':\n if (newProp.enableRtl) {\n label.classList.add(RTL);\n }\n else {\n label.classList.remove(RTL);\n }\n break;\n case 'label':\n this.setText(newProp.label);\n break;\n case 'labelPosition':\n if (newProp.labelPosition === 'Before') {\n label.classList.add('e-right');\n }\n else {\n label.classList.remove('e-right');\n }\n break;\n case 'name':\n this.element.setAttribute('name', newProp.name);\n break;\n case 'value':\n var type = typeof this.htmlAttributes.value;\n if (!isNullOrUndefined(this.htmlAttributes) && (this.htmlAttributes.value || type === 'boolean' && !this.htmlAttributes.value)) {\n break;\n }\n this.element.setAttribute('value', newProp.value);\n break;\n case 'htmlAttributes':\n this.updateHtmlAttribute();\n break;\n }\n }\n };\n /**\n * Initialize checked Property, Angular and React and Unique ID support.\n *\n * @private\n * @returns {void}\n */\n RadioButton.prototype.preRender = function () {\n var element = this.element;\n this.formElement = closest(this.element, 'form');\n this.tagName = this.element.tagName;\n element = wrapperInitialize(this.createElement, 'EJS-RADIOBUTTON', 'radio', element, WRAPPER, 'radio');\n this.element = element;\n if (this.element.getAttribute('type') !== 'radio') {\n this.element.setAttribute('type', 'radio');\n }\n if (!this.element.id) {\n this.element.id = getUniqueID('e-' + this.getModuleName());\n }\n if (this.tagName === 'EJS-RADIOBUTTON') {\n var formControlName = this.element.getAttribute('formcontrolname');\n if (formControlName) {\n this.setProperties({ 'name': formControlName }, true);\n this.element.setAttribute('name', formControlName);\n }\n }\n };\n /**\n * Initialize the control rendering\n *\n * @private\n * @returns {void}\n */\n RadioButton.prototype.render = function () {\n this.initialize();\n if (!this.disabled) {\n this.wireEvents();\n }\n this.renderComplete();\n this.wrapper = this.getWrapper();\n };\n RadioButton.prototype.setDisabled = function () {\n this.element.disabled = true;\n };\n RadioButton.prototype.setText = function (text) {\n var label = this.getLabel();\n var textLabel = label.getElementsByClassName(LABEL)[0];\n if (textLabel) {\n textLabel.textContent = text;\n }\n else {\n text = (this.enableHtmlSanitizer) ? SanitizeHtmlHelper.sanitize(text) : text;\n textLabel = this.createElement('span', { className: LABEL, innerHTML: text });\n label.appendChild(textLabel);\n }\n if (this.labelPosition === 'Before') {\n this.getLabel().classList.add('e-right');\n }\n else {\n this.getLabel().classList.remove('e-right');\n }\n };\n RadioButton.prototype.updateHtmlAttribute = function () {\n if (!isNullOrUndefined(this.htmlAttributes)) {\n for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) {\n var key = _a[_i];\n if (ATTRIBUTES.indexOf(key) > -1) {\n var wrapper = this.element.parentElement;\n if (key === 'class') {\n addClass([wrapper], this.htmlAttributes[\"\" + key].replace(/\\s+/g, ' ').trim().split(' '));\n }\n else if (key === 'title' || key === 'style') {\n wrapper.setAttribute(key, this.htmlAttributes[\"\" + key]);\n }\n else {\n this.element.setAttribute(key, this.htmlAttributes[\"\" + key]);\n }\n }\n }\n }\n };\n RadioButton.prototype.unWireEvents = function () {\n var label = this.wrapper;\n EventHandler.remove(this.element, 'change', this.changeHandler);\n EventHandler.remove(this.element, 'focus', this.focusHandler);\n EventHandler.remove(this.element, 'focusout', this.focusOutHandler);\n EventHandler.remove(this.element, 'keyup', this.keyUpHandler);\n var rippleLabel = label.getElementsByTagName('label')[0];\n if (rippleLabel) {\n EventHandler.remove(rippleLabel, 'mousedown', this.labelMouseDownHandler);\n EventHandler.remove(rippleLabel, 'mouseup', this.labelMouseUpHandler);\n EventHandler.remove(rippleLabel, 'mouseleave', this.labelMouseLeaveHandler);\n }\n if (this.formElement) {\n EventHandler.remove(this.formElement, 'reset', this.formResetHandler);\n }\n };\n RadioButton.prototype.wireEvents = function () {\n var label = this.getLabel();\n EventHandler.add(this.element, 'change', this.changeHandler, this);\n EventHandler.add(this.element, 'keyup', this.keyUpHandler, this);\n EventHandler.add(this.element, 'focus', this.focusHandler, this);\n EventHandler.add(this.element, 'focusout', this.focusOutHandler, this);\n var rippleLabel = label.getElementsByClassName(LABEL)[0];\n if (rippleLabel) {\n EventHandler.add(rippleLabel, 'mousedown', this.labelMouseDownHandler, this);\n EventHandler.add(rippleLabel, 'mouseup', this.labelMouseUpHandler, this);\n EventHandler.add(rippleLabel, 'mouseleave', this.labelMouseLeaveHandler, this);\n }\n if (this.formElement) {\n EventHandler.add(this.formElement, 'reset', this.formResetHandler, this);\n }\n };\n /**\n * Click the RadioButton element\n * its native method\n *\n * @public\n * @returns {void}\n */\n RadioButton.prototype.click = function () {\n this.element.click();\n };\n /**\n * Sets the focus to RadioButton\n * its native method\n *\n * @public\n * @returns {void}\n */\n RadioButton.prototype.focusIn = function () {\n this.element.focus();\n };\n var RadioButton_1;\n __decorate([\n Event()\n ], RadioButton.prototype, \"change\", void 0);\n __decorate([\n Event()\n ], RadioButton.prototype, \"created\", void 0);\n __decorate([\n Property(false)\n ], RadioButton.prototype, \"checked\", void 0);\n __decorate([\n Property('')\n ], RadioButton.prototype, \"cssClass\", void 0);\n __decorate([\n Property(false)\n ], RadioButton.prototype, \"disabled\", void 0);\n __decorate([\n Property('')\n ], RadioButton.prototype, \"label\", void 0);\n __decorate([\n Property('After')\n ], RadioButton.prototype, \"labelPosition\", void 0);\n __decorate([\n Property('')\n ], RadioButton.prototype, \"name\", void 0);\n __decorate([\n Property('')\n ], RadioButton.prototype, \"value\", void 0);\n __decorate([\n Property(false)\n ], RadioButton.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Property({})\n ], RadioButton.prototype, \"htmlAttributes\", void 0);\n RadioButton = RadioButton_1 = __decorate([\n NotifyPropertyChanges\n ], RadioButton);\n return RadioButton;\n}(Component));\nexport { RadioButton };\n","import * as events from '../base/constant';\nimport { Popup } from '@syncfusion/ej2-popups';\nimport { RadioButton } from '@syncfusion/ej2-buttons';\nimport { isNullOrUndefined as isNOU, isNullOrUndefined, detach, extend, addClass, removeClass } from '@syncfusion/ej2-base';\nimport { getUniqueID, Browser } from '@syncfusion/ej2-base';\nimport { CLS_RTE_PASTE_KEEP_FORMAT, CLS_RTE_PASTE_REMOVE_FORMAT, CLS_RTE_PASTE_PLAIN_FORMAT } from '../base/classes';\nimport { CLS_RTE_PASTE_OK, CLS_RTE_PASTE_CANCEL, CLS_RTE_DIALOG_MIN_HEIGHT } from '../base/classes';\nimport { CLS_RTE_IMAGE, CLS_IMGINLINE, CLS_IMGBREAK } from '../base/classes';\nimport { pasteCleanupGroupingTags } from '../../common/config';\nimport { NodeSelection } from '../../selection/selection';\nimport * as EVENTS from './../../common/constant';\nimport { RenderType } from '../base/enum';\nimport { Uploader } from '@syncfusion/ej2-inputs';\nimport * as classes from '../base/classes';\nimport { sanitizeHelper, convertToBlob, getDefaultValue } from '../base/util';\n/**\n * PasteCleanup module called when pasting content in RichTextEditor\n */\nvar PasteCleanup = /** @class */ (function () {\n function PasteCleanup(parent, serviceLocator) {\n this.inlineNode = ['a', 'abbr', 'acronym', 'audio', 'b', 'bdi', 'bdo', 'big', 'br', 'button',\n 'canvas', 'cite', 'code', 'data', 'datalist', 'del', 'dfn', 'em', 'embed', 'font', 'i', 'iframe', 'img', 'input',\n 'ins', 'kbd', 'label', 'map', 'mark', 'meter', 'noscript', 'object', 'output', 'picture', 'progress',\n 'q', 'ruby', 's', 'samp', 'script', 'select', 'slot', 'small', 'span', 'strong', 'sub', 'sup', 'svg',\n 'template', 'textarea', 'time', 'u', 'tt', 'var', 'video', 'wbr'];\n this.blockNode = ['div', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6',\n 'address', 'blockquote', 'button', 'center', 'dd', 'dir', 'dl', 'dt', 'fieldset',\n 'frameset', 'hr', 'iframe', 'isindex', 'li', 'map', 'menu', 'noframes', 'noscript',\n 'object', 'ol', 'pre', 'td', 'tr', 'th', 'tbody', 'tfoot', 'thead', 'table', 'ul',\n 'header', 'article', 'nav', 'footer', 'section', 'aside', 'main', 'figure', 'figcaption'];\n this.isNotFromHtml = false;\n this.containsHtml = false;\n this.parent = parent;\n this.locator = serviceLocator;\n this.renderFactory = this.locator.getService('rendererFactory');\n this.i10n = serviceLocator.getService('rteLocale');\n this.dialogRenderObj = serviceLocator.getService('dialogRenderObject');\n this.addEventListener();\n }\n PasteCleanup.prototype.addEventListener = function () {\n this.nodeSelectionObj = new NodeSelection();\n if (this.parent.isDestroyed) {\n return;\n }\n this.parent.on(events.pasteClean, this.pasteClean, this);\n this.parent.on(events.bindCssClass, this.setCssClass, this);\n this.parent.on(events.destroy, this.destroy, this);\n };\n PasteCleanup.prototype.destroy = function () {\n this.removeEventListener();\n };\n PasteCleanup.prototype.removeEventListener = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n this.parent.off(events.pasteClean, this.pasteClean);\n this.parent.off(events.bindCssClass, this.setCssClass);\n this.parent.off(events.destroy, this.destroy);\n };\n PasteCleanup.prototype.pasteClean = function (e) {\n var _this = this;\n var args = {\n requestType: 'Paste',\n editorMode: this.parent.editorMode,\n event: e\n };\n var value = null;\n var imageproperties;\n if (e.args && !isNOU(e.args.clipboardData)) {\n value = e.args.clipboardData.getData('text/html');\n }\n this.parent.trigger(events.beforePasteCleanup, { value: value });\n if (e.args && value !== null && this.parent.editorMode === 'HTML') {\n var file = void 0;\n if (value.length === 0) {\n var htmlRegex = new RegExp(/<\\/[a-z][\\s\\S]*>/i);\n value = e.args.clipboardData.getData('text/plain');\n this.isNotFromHtml = value !== '' ? true : false;\n value = value.replace(//g, '>');\n this.containsHtml = htmlRegex.test(value);\n file = e && e.args.clipboardData &&\n e.args.clipboardData.items.length > 0 ?\n (e.args.clipboardData.items[0].getAsFile() === null ?\n (!isNOU(e.args.clipboardData.items[1]) ?\n e.args.clipboardData.items[1].getAsFile() : null) :\n e.args.clipboardData.items[0].getAsFile()) : null;\n this.parent.notify(events.paste, {\n file: file,\n args: e.args,\n text: value,\n callBack: function (b) {\n imageproperties = b;\n if (typeof (imageproperties) === 'object') {\n _this.parent.formatter.editorManager.execCommand('Images', 'Image', e.args, _this.imageFormatting.bind(_this, args), 'pasteCleanup', imageproperties, 'pasteCleanupModule');\n }\n else {\n value = imageproperties;\n }\n }\n });\n if (!htmlRegex.test(value)) {\n var divElement = this.parent.createElement('div');\n divElement.innerHTML = this.splitBreakLine(value);\n value = divElement.innerHTML;\n }\n }\n else if (value.length > 0) {\n this.parent.formatter.editorManager.observer.notify(EVENTS.MS_WORD_CLEANUP, {\n args: e.args,\n text: e.text,\n allowedStylePropertiesArray: this.parent.pasteCleanupSettings.allowedStyleProps,\n callBack: function (a) {\n value = a.trim();\n }\n });\n }\n this.contentRenderer = this.renderFactory.getRenderer(RenderType.Content);\n var currentDocument = this.contentRenderer.getDocument();\n var range = this.nodeSelectionObj.getRange(currentDocument);\n this.saveSelection = this.nodeSelectionObj.save(range, currentDocument);\n var tempDivElem = this.parent.createElement('div');\n tempDivElem.innerHTML = value;\n var isValueNotEmpty = tempDivElem.textContent !== '' || !isNOU(tempDivElem.querySelector('img')) ||\n !isNOU(tempDivElem.querySelector('table'));\n if (this.parent.pasteCleanupSettings.prompt) {\n if (isValueNotEmpty) {\n e.args.preventDefault();\n this.pasteDialog(value, args);\n }\n else if (Browser.userAgent.indexOf('Firefox') !== -1 && isNOU(file)) {\n this.fireFoxImageUpload();\n }\n }\n else if (!isValueNotEmpty && !this.parent.pasteCleanupSettings.plainText &&\n Browser.userAgent.indexOf('Firefox') !== -1) {\n this.fireFoxImageUpload();\n }\n else if (this.parent.pasteCleanupSettings.plainText) {\n e.args.preventDefault();\n this.plainFormatting(value, args);\n }\n else if (this.parent.pasteCleanupSettings.keepFormat) {\n e.args.preventDefault();\n this.formatting(value, false, args);\n }\n else {\n e.args.preventDefault();\n this.formatting(value, true, args);\n }\n }\n };\n PasteCleanup.prototype.fireFoxImageUpload = function () {\n var _this = this;\n setTimeout(function () {\n if (Browser.userAgent.indexOf('Firefox') !== -1) {\n var currentFocusNode = _this.nodeSelectionObj.getRange(_this.contentRenderer.getDocument()).startContainer;\n if (currentFocusNode.nodeName !== '#text') {\n currentFocusNode = currentFocusNode.childNodes[_this.nodeSelectionObj.getRange(_this.contentRenderer.getDocument()).startOffset];\n }\n if (currentFocusNode.previousSibling.nodeName === 'IMG') {\n currentFocusNode.previousSibling.classList.add('pasteContent_Img');\n currentFocusNode.previousSibling.classList.add(CLS_RTE_IMAGE);\n if (_this.parent.insertImageSettings.display === 'inline') {\n currentFocusNode.previousSibling.classList.add(CLS_IMGINLINE);\n }\n else {\n currentFocusNode.previousSibling.classList.add(CLS_IMGBREAK);\n }\n currentFocusNode.previousSibling.classList.add();\n _this.setImageProperties(currentFocusNode.previousSibling);\n }\n }\n _this.imgUploading(_this.parent.inputElement);\n }, 500);\n };\n PasteCleanup.prototype.splitBreakLine = function (value) {\n var enterSplitText = value.split('\\n');\n var contentInnerElem = '';\n for (var i = 0; i < enterSplitText.length; i++) {\n if (enterSplitText[i].trim() === '') {\n contentInnerElem += getDefaultValue(this.parent);\n }\n else {\n var contentWithSpace = this.makeSpace(enterSplitText[i]);\n contentInnerElem += '

    ' + contentWithSpace.trim() + '

    ';\n }\n }\n return contentInnerElem;\n };\n PasteCleanup.prototype.makeSpace = function (enterSplitText) {\n var contentWithSpace = '';\n var spaceBetweenContent = true;\n var spaceSplit = enterSplitText.split(' ');\n for (var j = 0; j < spaceSplit.length; j++) {\n if (spaceSplit[j].trim() === '') {\n contentWithSpace += spaceBetweenContent ? ' ' : ' ';\n }\n else {\n spaceBetweenContent = false;\n contentWithSpace += spaceSplit[j] + ' ';\n }\n }\n return contentWithSpace;\n };\n PasteCleanup.prototype.imgUploading = function (elm) {\n var allImgElm = elm.querySelectorAll('.pasteContent_Img');\n if (this.parent.insertImageSettings.saveUrl && allImgElm.length > 0) {\n var base64Src = [];\n var imgName = [];\n var uploadImg = [];\n for (var i = 0; i < allImgElm.length; i++) {\n if (allImgElm[i].getAttribute('src').split(',')[0].indexOf('base64') >= 0) {\n base64Src.push(allImgElm[i].getAttribute('src'));\n imgName.push(getUniqueID('rte_image'));\n uploadImg.push(allImgElm[i]);\n }\n }\n var fileList = [];\n for (var i = 0; i < base64Src.length; i++) {\n fileList.push(this.base64ToFile(base64Src[i], imgName[i]));\n }\n for (var i = 0; i < fileList.length; i++) {\n this.uploadMethod(fileList[i], uploadImg[i]);\n }\n if (isNOU(this.parent.insertImageSettings.path) &&\n this.parent.insertImageSettings.saveFormat === 'Blob') {\n this.getBlob(allImgElm);\n }\n }\n else if (this.parent.insertImageSettings.saveFormat === 'Blob') {\n this.getBlob(allImgElm);\n }\n var allImgElmId = elm.querySelectorAll('.pasteContent_Img');\n for (var i = 0; i < allImgElmId.length; i++) {\n allImgElmId[i].classList.remove('pasteContent_Img');\n if (allImgElmId[i].getAttribute('class').trim() === '') {\n allImgElm[i].removeAttribute('class');\n }\n }\n };\n PasteCleanup.prototype.getBlob = function (allImgElm) {\n for (var i = 0; i < allImgElm.length; i++) {\n if (!isNOU(allImgElm[i].getAttribute('src')) &&\n allImgElm[i].getAttribute('src').split(',')[0].indexOf('base64') >= 0) {\n var blopUrl = URL.createObjectURL(convertToBlob(allImgElm[i].getAttribute('src')));\n allImgElm[i].setAttribute('src', blopUrl);\n }\n }\n };\n PasteCleanup.prototype.toolbarEnableDisable = function (state) {\n if (!this.parent.inlineMode.enable) {\n this.parent.toolbarModule.baseToolbar.toolbarObj.disable(state);\n }\n };\n PasteCleanup.prototype.uploadMethod = function (fileList, imgElem) {\n var _this = this;\n var uploadEle = document.createElement('div');\n document.body.appendChild(uploadEle);\n uploadEle.setAttribute('display', 'none');\n imgElem.style.opacity = '0.5';\n var popupEle = this.parent.createElement('div');\n this.parent.element.appendChild(popupEle);\n var contentEle = this.parent.createElement('input', {\n id: this.parent.element.id + '_upload', attrs: { type: 'File', name: 'UploadFiles' }\n });\n var offsetY = this.parent.iframeSettings.enable ? -50 : -90;\n this.popupObj = new Popup(popupEle, {\n relateTo: imgElem,\n height: '85px',\n width: '300px',\n offsetY: offsetY,\n content: contentEle,\n viewPortElement: this.parent.element,\n position: { X: 'center', Y: 'top' },\n enableRtl: this.parent.enableRtl,\n zIndex: 10001,\n // eslint-disable-next-line\n close: function (event) {\n _this.parent.isBlur = false;\n _this.popupObj.destroy();\n detach(_this.popupObj.element);\n }\n });\n this.popupObj.element.style.display = 'none';\n addClass([this.popupObj.element], [classes.CLS_POPUP_OPEN, classes.CLS_RTE_UPLOAD_POPUP]);\n if (!isNOU(this.parent.cssClass)) {\n addClass([this.popupObj.element], this.parent.cssClass);\n }\n var timeOut = fileList.size > 1000000 ? 300 : 100;\n setTimeout(function () {\n _this.refreshPopup(imgElem, _this.popupObj);\n }, timeOut);\n var rawFile;\n var beforeUploadArgs;\n this.uploadObj = new Uploader({\n asyncSettings: {\n saveUrl: this.parent.insertImageSettings.saveUrl,\n removeUrl: this.parent.insertImageSettings.removeUrl\n },\n cssClass: classes.CLS_RTE_DIALOG_UPLOAD,\n dropArea: this.parent.inputElement,\n allowedExtensions: this.parent.insertImageSettings.allowedTypes.toString(),\n success: function (e) {\n setTimeout(function () {\n _this.popupClose(_this.popupObj, _this.uploadObj, imgElem, e);\n }, 900);\n },\n uploading: function (e) {\n if (!_this.parent.isServerRendered) {\n _this.parent.trigger(events.imageUploading, e, function (imageUploadingArgs) {\n if (imageUploadingArgs.cancel) {\n if (!isNullOrUndefined(imgElem)) {\n detach(imgElem);\n }\n if (!isNullOrUndefined(_this.popupObj.element)) {\n detach(_this.popupObj.element);\n }\n }\n else {\n _this.parent.inputElement.contentEditable = 'false';\n }\n });\n }\n },\n beforeUpload: function (args) {\n if (_this.parent.isServerRendered) {\n beforeUploadArgs = JSON.parse(JSON.stringify(args));\n beforeUploadArgs.filesData = rawFile;\n args.cancel = true;\n _this.parent.trigger(events.imageUploading, beforeUploadArgs, function (beforeUploadArgs) {\n if (beforeUploadArgs.cancel) {\n return;\n }\n _this.toolbarEnableDisable(true);\n /* eslint-disable */\n _this.uploadObj.currentRequestHeader = beforeUploadArgs.currentRequest ?\n beforeUploadArgs.currentRequest : _this.uploadObj.currentRequestHeader;\n _this.uploadObj.customFormDatas = beforeUploadArgs.customFormData && beforeUploadArgs.customFormData.length > 0 ?\n beforeUploadArgs.customFormData : _this.uploadObj.customFormDatas;\n _this.uploadObj.uploadFiles(rawFile, null);\n /* eslint-enable */\n });\n }\n else {\n _this.parent.trigger(events.beforeImageUpload, args);\n _this.toolbarEnableDisable(true);\n }\n },\n // eslint-disable-next-line\n failure: function (e) {\n setTimeout(function () {\n _this.uploadFailure(imgElem, _this.uploadObj, _this.popupObj, e);\n }, 900);\n },\n canceling: function () {\n _this.parent.inputElement.contentEditable = 'true';\n if (imgElem.nextSibling.textContent === ' ') {\n detach(imgElem.nextSibling);\n }\n detach(imgElem);\n _this.popupObj.close();\n },\n selected: function (e) {\n e.cancel = true;\n if (_this.parent.isServerRendered) {\n rawFile = e.filesData;\n }\n },\n removing: function () {\n _this.parent.inputElement.contentEditable = 'true';\n if (imgElem.nextSibling.textContent === ' ') {\n detach(imgElem.nextSibling);\n }\n detach(imgElem);\n _this.popupObj.close();\n }\n });\n this.uploadObj.appendTo(this.popupObj.element.childNodes[0]);\n /* eslint-disable */\n var fileData = [{\n name: fileList.name,\n rawFile: fileList,\n size: fileList.size,\n type: fileList.type,\n validationMessages: { minSize: \"\", maxSize: \"\" },\n statusCode: '1'\n }];\n this.uploadObj.createFileList(fileData);\n /* eslint-enable */\n rawFile = fileData;\n this.uploadObj.upload(fileData);\n this.popupObj.element.getElementsByClassName('e-file-select-wrap')[0].style.display = 'none';\n detach(this.popupObj.element.querySelector('.e-rte-dialog-upload .e-file-select-wrap'));\n };\n PasteCleanup.prototype.uploadFailure = function (imgElem, uploadObj, popupObj, e) {\n this.parent.inputElement.contentEditable = 'true';\n detach(imgElem);\n if (popupObj) {\n popupObj.close();\n }\n this.parent.trigger(events.imageUploadFailed, e);\n uploadObj.destroy();\n };\n PasteCleanup.prototype.popupClose = function (popupObj, uploadObj, imgElem, e) {\n var _this = this;\n this.parent.inputElement.contentEditable = 'true';\n e.element = imgElem;\n this.parent.trigger(events.imageUploadSuccess, e, function (e) {\n if (!isNullOrUndefined(_this.parent.insertImageSettings.path)) {\n var url = _this.parent.insertImageSettings.path + e.file.name;\n imgElem.src = url;\n imgElem.setAttribute('alt', e.file.name);\n }\n });\n popupObj.close();\n imgElem.style.opacity = '1';\n uploadObj.destroy();\n this.toolbarEnableDisable(false);\n };\n PasteCleanup.prototype.refreshPopup = function (imageElement, popupObj) {\n var imgPosition = this.parent.iframeSettings.enable ? this.parent.element.offsetTop +\n imageElement.offsetTop : imageElement.offsetTop;\n var rtePosition = this.parent.element.offsetTop + this.parent.element.offsetHeight;\n if (imgPosition > rtePosition) {\n popupObj.relateTo = this.parent.inputElement;\n popupObj.offsetY = this.parent.iframeSettings.enable ? -30 : -65;\n popupObj.element.style.display = 'block';\n }\n else {\n if (popupObj) {\n popupObj.refreshPosition(imageElement);\n popupObj.element.style.display = 'block';\n }\n }\n };\n PasteCleanup.prototype.base64ToFile = function (base64, filename) {\n var baseStr = base64.split(',');\n var typeStr = baseStr[0].match(/:(.*?);/)[1];\n var extension = typeStr.split('/')[1];\n var decodeStr = atob(baseStr[1]);\n var strLen = decodeStr.length;\n var decodeArr = new Uint8Array(strLen);\n while (strLen--) {\n decodeArr[strLen] = decodeStr.charCodeAt(strLen);\n }\n if (Browser.isIE || navigator.appVersion.indexOf('Edge') > -1) {\n var blob = new Blob([decodeArr], { type: extension });\n extend(blob, { name: filename + '.' + (!isNOU(extension) ? extension : '') });\n return blob;\n }\n else {\n return new File([decodeArr], filename + '.' + (!isNOU(extension) ? extension : ''), { type: extension });\n }\n };\n /**\n * Method for image formatting when pasting\n *\n * @param {Object} pasteArgs - specifies the paste arguments.\n * @param {Element []} imgElement - specifies the array elements.\n * @returns {void}\n * @hidden\n\n */\n PasteCleanup.prototype.imageFormatting = function (pasteArgs, imgElement) {\n imgElement.elements[0].classList.add('pasteContent_Img');\n var imageElement = this.parent.createElement('span');\n imageElement.appendChild(imgElement.elements[0]);\n var imageValue = imageElement.innerHTML;\n this.contentRenderer = this.renderFactory.getRenderer(RenderType.Content);\n var currentDocument = this.contentRenderer.getDocument();\n var range = this.nodeSelectionObj.getRange(currentDocument);\n this.saveSelection = this.nodeSelectionObj.save(range, currentDocument);\n if (this.parent.pasteCleanupSettings.prompt) {\n this.pasteDialog(imageValue, pasteArgs);\n }\n else if (this.parent.pasteCleanupSettings.plainText) {\n this.plainFormatting(imageValue, pasteArgs);\n }\n else if (this.parent.pasteCleanupSettings.keepFormat) {\n this.formatting(imageValue, false, pasteArgs);\n }\n else {\n this.formatting(imageValue, true, pasteArgs);\n }\n };\n PasteCleanup.prototype.radioRender = function () {\n this.keepRadioButton = new RadioButton({ label: this.i10n.getConstant('keepFormat'),\n name: 'pasteOption', checked: true });\n this.keepRadioButton.isStringTemplate = true;\n var keepFormatElement = this.parent.element.querySelector('#keepFormating');\n this.keepRadioButton.appendTo(keepFormatElement);\n this.cleanRadioButton = new RadioButton({ label: this.i10n.getConstant('cleanFormat'), name: 'pasteOption' });\n this.cleanRadioButton.isStringTemplate = true;\n var cleanFormatElement = this.parent.element.querySelector('#cleanFormat');\n this.cleanRadioButton.appendTo(cleanFormatElement);\n this.plainTextRadioButton = new RadioButton({ label: this.i10n.getConstant('plainText'), name: 'pasteOption' });\n this.plainTextRadioButton.isStringTemplate = true;\n var plainTextElement = this.parent.element.querySelector('#plainTextFormat');\n this.plainTextRadioButton.appendTo(plainTextElement);\n };\n PasteCleanup.prototype.selectFormatting = function (value, args, keepChecked, cleanChecked) {\n if (keepChecked) {\n this.formatting(value, false, args);\n }\n else if (cleanChecked) {\n this.formatting(value, true, args);\n }\n else {\n this.plainFormatting(value, args);\n }\n };\n PasteCleanup.prototype.pasteDialog = function (value, args) {\n var _this = this;\n var isHeight = false;\n var preRTEHeight = this.parent.height;\n var dialogModel = {\n buttons: [\n {\n click: function () {\n if (!_this.dialogObj.isDestroyed) {\n var keepChecked = _this.parent.element.querySelector('#keepFormating').checked;\n var cleanChecked = _this.parent.element.querySelector('#cleanFormat').checked;\n _this.dialogObj.hide();\n _this.parent.height = isHeight ? preRTEHeight : _this.parent.height;\n isHeight = false;\n var argument = _this.dialogObj;\n _this.dialogRenderObj.close(argument);\n _this.dialogObj.destroy();\n _this.selectFormatting(value, args, keepChecked, cleanChecked);\n }\n },\n buttonModel: {\n isPrimary: true,\n cssClass: 'e-flat ' + CLS_RTE_PASTE_OK,\n content: this.i10n.getConstant('pasteDialogOk')\n }\n },\n {\n click: function () {\n if (!_this.dialogObj.isDestroyed) {\n _this.dialogObj.hide();\n _this.parent.height = isHeight ? preRTEHeight : _this.parent.height;\n isHeight = false;\n var args_1 = _this.dialogObj;\n _this.dialogRenderObj.close(args_1);\n _this.dialogObj.destroy();\n }\n },\n buttonModel: {\n cssClass: 'e-flat ' + CLS_RTE_PASTE_CANCEL,\n content: this.i10n.getConstant('pasteDialogCancel')\n }\n }\n ],\n header: this.i10n.getConstant('pasteFormat'),\n content: this.i10n.getConstant('pasteFormatContent') + '
    ' +\n '' +\n '
    ' +\n '
    ',\n target: this.parent.element,\n width: '300px',\n height: '265px',\n cssClass: CLS_RTE_DIALOG_MIN_HEIGHT,\n isModal: true,\n visible: false\n };\n this.dialogObj = this.dialogRenderObj.render(dialogModel);\n var rteDialogWrapper = this.parent.element.querySelector('#' + this.parent.getID()\n + '_pasteCleanupDialog');\n if (rteDialogWrapper !== null && rteDialogWrapper.innerHTML !== '') {\n this.destroyDialog(rteDialogWrapper);\n }\n if (rteDialogWrapper === null) {\n rteDialogWrapper = this.parent.createElement('div', {\n id: this.parent.getID() + '_pasteCleanupDialog'\n });\n this.parent.element.appendChild(rteDialogWrapper);\n }\n this.dialogObj.appendTo(rteDialogWrapper);\n this.radioRender();\n /* eslint-disable */\n if (this.parent.element.offsetHeight < parseInt(this.dialogObj.height.split('px')[0], null)) {\n this.parent.setProperties({ height: parseInt(this.dialogObj.height.split('px')[0], null) + 40 });\n /* eslint-enable */\n isHeight = true;\n }\n this.dialogObj.show();\n this.setCssClass({ cssClass: this.parent.cssClass });\n };\n PasteCleanup.prototype.updateCss = function (currentObj, e) {\n if (currentObj && e.cssClass) {\n if (isNullOrUndefined(e.oldCssClass)) {\n currentObj.setProperties({ cssClass: (currentObj.cssClass + ' ' + e.cssClass).trim() });\n }\n else {\n currentObj.setProperties({ cssClass: (currentObj.cssClass.replace(e.oldCssClass, '').trim() + ' ' + e.cssClass).trim() });\n }\n }\n };\n // eslint-disable-next-line @typescript-eslint/tslint/config\n PasteCleanup.prototype.setCssClass = function (e) {\n if (this.popupObj && e.cssClass) {\n if (isNullOrUndefined(e.oldCssClass)) {\n addClass([this.popupObj.element], e.cssClass);\n }\n else {\n removeClass([this.popupObj.element], e.oldCssClass);\n addClass([this.popupObj.element], e.cssClass);\n }\n }\n this.updateCss(this.dialogObj, e);\n this.updateCss(this.uploadObj, e);\n this.updateCss(this.plainTextRadioButton, e);\n this.updateCss(this.cleanRadioButton, e);\n this.updateCss(this.keepRadioButton, e);\n };\n PasteCleanup.prototype.destroyDialog = function (rteDialogWrapper) {\n var rteDialogContainer = this.parent.element.querySelector('.e-dlg-container');\n detach(rteDialogContainer);\n var rteDialogWrapperChildLength = rteDialogWrapper.children.length;\n for (var i = 0; i < rteDialogWrapperChildLength; i++) {\n detach(rteDialogWrapper.children[0]);\n }\n };\n PasteCleanup.prototype.cleanAppleClass = function (elem) {\n var appleClassElem = elem.querySelectorAll('br.Apple-interchange-newline');\n for (var i = 0; i < appleClassElem.length; i++) {\n detach(appleClassElem[i]);\n }\n return elem;\n };\n PasteCleanup.prototype.formatting = function (value, clean, args) {\n var _this = this;\n var clipBoardElem = this.parent.createElement('div', { className: 'pasteContent', styles: 'display:inline;' });\n if (this.isNotFromHtml && this.containsHtml) {\n value = this.splitBreakLine(value);\n }\n clipBoardElem.innerHTML = value;\n clipBoardElem = this.cleanAppleClass(clipBoardElem);\n if (this.parent.pasteCleanupSettings.deniedTags !== null) {\n clipBoardElem = this.deniedTags(clipBoardElem);\n }\n if (clean) {\n clipBoardElem = this.deniedAttributes(clipBoardElem, clean);\n }\n else if (this.parent.pasteCleanupSettings.deniedAttrs !== null) {\n clipBoardElem = this.deniedAttributes(clipBoardElem, clean);\n }\n if (this.parent.pasteCleanupSettings.allowedStyleProps !== null) {\n clipBoardElem = this.allowedStyle(clipBoardElem);\n }\n this.saveSelection.restore();\n clipBoardElem.innerHTML = this.sanitizeHelper(clipBoardElem.innerHTML);\n var allImg = clipBoardElem.querySelectorAll('img');\n for (var i = 0; i < allImg.length; i++) {\n allImg[i].classList.add('pasteContent_Img');\n this.setImageProperties(allImg[i]);\n }\n this.addTempClass(clipBoardElem);\n if (clipBoardElem.textContent !== '' || !isNOU(clipBoardElem.querySelector('img')) ||\n !isNOU(clipBoardElem.querySelector('table'))) {\n var tempWrapperElem = this.parent.createElement('div');\n tempWrapperElem.innerHTML = value;\n var filesData = [];\n if (!isNOU(tempWrapperElem.querySelector('img'))) {\n var imgElem = tempWrapperElem.querySelectorAll('img');\n var base64Src = [];\n var imgName = [];\n var uploadImg = [];\n for (var i = 0; i < imgElem.length; i++) {\n if (imgElem[i].getAttribute('src') &&\n imgElem[i].getAttribute('src').split(',')[0].indexOf('base64') >= 0) {\n base64Src.push(imgElem[i].getAttribute('src'));\n imgName.push(getUniqueID('rte_image'));\n uploadImg.push(imgElem[i]);\n }\n }\n var fileList = [];\n var currentData = void 0;\n for (var i = 0; i < base64Src.length; i++) {\n fileList.push(this.base64ToFile(base64Src[i], imgName[i]));\n currentData = {\n name: fileList[i].name, rawFile: fileList[i],\n size: fileList[i].size, type: fileList[i].type,\n status: '', validationMessages: { minSize: '', maxSize: '' }, statusCode: '1'\n };\n filesData.push(currentData);\n }\n }\n this.parent.trigger(events.afterPasteCleanup, { value: clipBoardElem.innerHTML, filesData: filesData }, function (updatedArgs) { value = updatedArgs.value; });\n clipBoardElem.innerHTML = value;\n this.parent.formatter.editorManager.execCommand('inserthtml', 'pasteCleanup', args, function (returnArgs) {\n extend(args, { elements: returnArgs.elements, imageElements: returnArgs.imgElem }, true);\n _this.parent.formatter.onSuccess(_this.parent, args);\n }, clipBoardElem, null, null, this.parent.enterKey);\n this.removeTempClass();\n this.parent.notify(events.toolbarRefresh, {});\n this.imgUploading(this.parent.inputElement);\n if (this.parent.iframeSettings.enable) {\n this.parent.updateValue();\n }\n }\n };\n PasteCleanup.prototype.setImageProperties = function (allImg) {\n if (this.parent.insertImageSettings.width !== 'auto') {\n allImg.setAttribute('width', this.parent.insertImageSettings.width);\n }\n if (this.parent.insertImageSettings.minWidth !== '0' && this.parent.insertImageSettings.minWidth !== 0) {\n allImg.style.minWidth = this.parent.insertImageSettings.minWidth.toString();\n }\n if (this.parent.insertImageSettings.maxWidth !== null) {\n allImg.style.maxWidth = this.parent.getInsertImgMaxWidth().toString();\n }\n if (this.parent.insertImageSettings.height !== 'auto') {\n allImg.setAttribute('height', this.parent.insertImageSettings.height);\n }\n if (this.parent.insertImageSettings.minHeight !== '0' && this.parent.insertImageSettings.minHeight !== 0) {\n allImg.style.minHeight = this.parent.insertImageSettings.minHeight.toString();\n }\n if (this.parent.insertImageSettings.maxHeight !== null) {\n allImg.style.maxHeight = this.parent.insertImageSettings.maxHeight.toString();\n }\n };\n PasteCleanup.prototype.addTempClass = function (clipBoardElem) {\n var allChild = clipBoardElem.children;\n for (var i = 0; i < allChild.length; i++) {\n allChild[i].classList.add('pasteContent_RTE');\n }\n };\n PasteCleanup.prototype.removeTempClass = function () {\n var classElm = this.parent.inputElement.querySelectorAll('.pasteContent_RTE');\n for (var i = 0; i < classElm.length; i++) {\n classElm[i].classList.remove('pasteContent_RTE');\n if (classElm[i].getAttribute('class') === '') {\n classElm[i].removeAttribute('class');\n }\n }\n };\n PasteCleanup.prototype.sanitizeHelper = function (value) {\n value = sanitizeHelper(value, this.parent);\n return value;\n };\n //Plain Formatting\n PasteCleanup.prototype.plainFormatting = function (value, args) {\n var _this = this;\n var clipBoardElem = this.parent.createElement('div', { className: 'pasteContent', styles: 'display:inline;' });\n clipBoardElem.innerHTML = value;\n this.detachInlineElements(clipBoardElem);\n this.getTextContent(clipBoardElem);\n if (clipBoardElem.textContent.trim() !== '') {\n if (!isNOU(clipBoardElem.firstElementChild) && clipBoardElem.firstElementChild.tagName !== 'BR') {\n var firstElm = clipBoardElem.firstElementChild;\n if (!isNOU(clipBoardElem.firstElementChild)) {\n var spanElm = this.parent.createElement('span');\n for (var i = 0, j = 0; i < firstElm.childNodes.length; i++, j++) {\n if (firstElm.childNodes[i].nodeName === '#text') {\n spanElm.appendChild(firstElm.childNodes[i]);\n clipBoardElem.insertBefore(spanElm, clipBoardElem.firstElementChild);\n i--;\n }\n else if (firstElm.childNodes[i].nodeName !== '#text' && j === 0) {\n for (var k = 0; k < firstElm.childNodes[i].childNodes.length; k++) {\n spanElm.appendChild(firstElm.childNodes[i].childNodes[k]);\n clipBoardElem.insertBefore(spanElm, clipBoardElem.firstElementChild);\n k--;\n }\n i--;\n }\n else {\n break;\n }\n }\n if (!firstElm.hasChildNodes()) {\n detach(firstElm);\n }\n }\n }\n this.removeEmptyElements(clipBoardElem);\n this.saveSelection.restore();\n clipBoardElem.innerHTML = this.sanitizeHelper(clipBoardElem.innerHTML);\n this.addTempClass(clipBoardElem);\n this.parent.trigger(events.afterPasteCleanup, { value: clipBoardElem.innerHTML, filesData: null }, function (updatedArgs) { value = updatedArgs.value; });\n clipBoardElem.innerHTML = value;\n this.parent.formatter.editorManager.execCommand('inserthtml', 'pasteCleanup', args, function (returnArgs) {\n extend(args, { elements: returnArgs.elements, imageElements: returnArgs.imgElem }, true);\n _this.parent.formatter.onSuccess(_this.parent, args);\n }, clipBoardElem, null, null, this.parent.enterKey);\n this.removeTempClass();\n }\n else {\n this.saveSelection.restore();\n extend(args, { elements: [] }, true);\n this.parent.formatter.onSuccess(this.parent, args);\n }\n };\n PasteCleanup.prototype.getTextContent = function (clipBoardElem) {\n for (var i = 0; i < this.blockNode.length; i++) {\n var inElem = clipBoardElem.querySelectorAll(this.blockNode[i]);\n for (var j = 0; j < inElem.length; j++) {\n var parElem = void 0;\n for (var k = 0, l = 0, preNode = void 0; k < inElem[j].childNodes.length; k++, l++) {\n if (inElem[j].childNodes[k].nodeName === 'DIV' || inElem[j].childNodes[k].nodeName === 'P' ||\n (inElem[j].childNodes[k].nodeName === '#text' &&\n (inElem[j].childNodes[k].nodeValue.replace(/\\u00a0/g, ' ') !== ' ') &&\n inElem[j].childNodes[k].textContent.trim() === '')) {\n parElem = inElem[j].childNodes[k].parentElement;\n inElem[j].childNodes[k].parentElement.parentElement.insertBefore(inElem[j].childNodes[k], inElem[j].childNodes[k].parentElement);\n k--;\n }\n else {\n parElem = inElem[j].childNodes[k].parentElement;\n if (preNode === 'text') {\n var previousElem = parElem.previousElementSibling;\n previousElem.appendChild(inElem[j].childNodes[k]);\n }\n else {\n var divElement = this.parent.createElement('div', { id: 'newDiv' });\n divElement.appendChild(inElem[j].childNodes[k]);\n parElem.parentElement.insertBefore(divElement, parElem);\n }\n k--;\n preNode = 'text';\n }\n }\n if (!isNOU(parElem)) {\n detach(parElem);\n }\n }\n }\n var allElems = clipBoardElem.querySelectorAll('*');\n for (var i = 0; i < allElems.length; i++) {\n var allAtr = allElems[i].attributes;\n for (var j = 0; j < allAtr.length; j++) {\n allElems[i].removeAttribute(allAtr[j].name);\n j--;\n }\n }\n };\n PasteCleanup.prototype.detachInlineElements = function (clipBoardElem) {\n for (var i = 0; i < this.inlineNode.length; i++) {\n var inElem = clipBoardElem.querySelectorAll(this.inlineNode[i]);\n for (var j = 0; j < inElem.length; j++) {\n var parElem = void 0;\n for (var k = 0; k < inElem[j].childNodes.length; k++) {\n parElem = inElem[j].childNodes[k].parentElement;\n inElem[j].childNodes[k].parentElement.parentElement.insertBefore(inElem[j].childNodes[k], inElem[j].childNodes[k].parentElement);\n k--;\n }\n if (!isNOU(parElem)) {\n detach(parElem);\n }\n }\n }\n };\n PasteCleanup.prototype.findDetachEmptyElem = function (element) {\n var removableElement;\n if (!isNOU(element.parentElement)) {\n if (element.parentElement.textContent.trim() === '' &&\n element.parentElement.getAttribute('class') !== 'pasteContent') {\n removableElement = this.findDetachEmptyElem(element.parentElement);\n }\n else {\n removableElement = element;\n }\n }\n else {\n removableElement = null;\n }\n return removableElement;\n };\n PasteCleanup.prototype.removeEmptyElements = function (element) {\n var emptyElements = element.querySelectorAll(':empty');\n for (var i = 0; i < emptyElements.length; i++) {\n if (emptyElements[i].tagName !== 'BR') {\n var detachableElement = this.findDetachEmptyElem(emptyElements[i]);\n if (!isNOU(detachableElement)) {\n detach(detachableElement);\n }\n }\n }\n };\n //GroupingTags\n PasteCleanup.prototype.tagGrouping = function (deniedTags) {\n var groupingTags = deniedTags.slice();\n var keys = Object.keys(pasteCleanupGroupingTags);\n var values = keys.map(function (key) {\n return pasteCleanupGroupingTags[\"\" + key];\n });\n var addTags = [];\n for (var i = 0; i < groupingTags.length; i++) {\n //The value split using '[' because to retrieve the tag name from the user given format which may contain tag with attributes\n if (groupingTags[i].split('[').length > 1) {\n groupingTags[i] = groupingTags[i].split('[')[0].trim();\n }\n if (keys.indexOf(groupingTags[i]) > -1) {\n for (var j = 0; j < values[keys.indexOf(groupingTags[i])].length; j++) {\n if (groupingTags.indexOf(values[keys.indexOf(groupingTags[i])][j]) < 0 &&\n addTags.indexOf(values[keys.indexOf(groupingTags[i])][j]) < 0) {\n addTags.push(values[keys.indexOf(groupingTags[i])][j]);\n }\n }\n }\n }\n return deniedTags = deniedTags.concat(addTags);\n };\n //Filter Attributes in Denied Tags\n PasteCleanup.prototype.attributesfilter = function (deniedTags) {\n for (var i = 0; i < deniedTags.length; i++) {\n if (deniedTags[i].split('[').length > 1) {\n var userAttributes = deniedTags[i].split('[')[1].split(']')[0].split(',');\n var allowedAttributeArray = [];\n var deniedAttributeArray = [];\n for (var j = 0; j < userAttributes.length; j++) {\n // eslint-disable-next-line\n userAttributes[j].indexOf('!') < 0 ? allowedAttributeArray.push(userAttributes[j].trim())\n : deniedAttributeArray.push(userAttributes[j].split('!')[1].trim());\n }\n var allowedAttribute = allowedAttributeArray.length > 1 ?\n (allowedAttributeArray.join('][')) : (allowedAttributeArray.join());\n var deniedAttribute = deniedAttributeArray.length > 1 ?\n deniedAttributeArray.join('][') : (deniedAttributeArray.join());\n if (deniedAttribute.length > 0) {\n var select = allowedAttribute !== '' ? deniedTags[i].split('[')[0] +\n '[' + allowedAttribute + ']' : deniedTags[i].split('[')[0];\n deniedTags[i] = select + ':not([' + deniedAttribute + '])';\n }\n else {\n deniedTags[i] = deniedTags[i].split('[')[0] + '[' + allowedAttribute + ']';\n }\n }\n }\n return deniedTags;\n };\n //Denied Tags\n PasteCleanup.prototype.deniedTags = function (clipBoardElem) {\n var deniedTags = isNullOrUndefined(this.parent.pasteCleanupSettings.deniedTags) ? [] : this.parent.pasteCleanupSettings.deniedTags.slice();\n deniedTags = this.attributesfilter(deniedTags);\n deniedTags = this.tagGrouping(deniedTags);\n for (var i = 0; i < deniedTags.length; i++) {\n var removableElement = clipBoardElem.querySelectorAll(deniedTags[i]);\n for (var j = removableElement.length - 1; j >= 0; j--) {\n var parentElem = removableElement[j].parentNode;\n while (removableElement[j].firstChild) {\n parentElem.insertBefore(removableElement[j].firstChild, removableElement[j]);\n }\n parentElem.removeChild(removableElement[j]);\n }\n }\n return clipBoardElem;\n };\n //Denied Attributes\n PasteCleanup.prototype.deniedAttributes = function (clipBoardElem, clean) {\n var deniedAttrs = isNullOrUndefined(this.parent.pasteCleanupSettings.deniedAttrs) ? [] : this.parent.pasteCleanupSettings.deniedAttrs.slice();\n if (clean) {\n deniedAttrs.push('style');\n }\n for (var i = 0; i < deniedAttrs.length; i++) {\n var removableAttrElement = clipBoardElem.\n querySelectorAll('[' + deniedAttrs[i] + ']');\n for (var j = 0; j < removableAttrElement.length; j++) {\n removableAttrElement[j].removeAttribute(deniedAttrs[i]);\n }\n }\n return clipBoardElem;\n };\n //Allowed Style Properties\n PasteCleanup.prototype.allowedStyle = function (clipBoardElem) {\n var allowedStyleProps = isNullOrUndefined(this.parent.pasteCleanupSettings.allowedStyleProps) ? [] : this.parent.pasteCleanupSettings.allowedStyleProps.slice();\n allowedStyleProps.push('list-style-type', 'list-style');\n var styleElement = clipBoardElem.querySelectorAll('[style]');\n for (var i = 0; i < styleElement.length; i++) {\n var allowedStyleValue = '';\n var allowedStyleValueArray = [];\n var styleValue = styleElement[i].getAttribute('style').split(';');\n for (var k = 0; k < styleValue.length; k++) {\n if (allowedStyleProps.indexOf(styleValue[k].split(':')[0].trim()) >= 0) {\n allowedStyleValueArray.push(styleValue[k]);\n }\n }\n styleElement[i].removeAttribute('style');\n allowedStyleValue = allowedStyleValueArray.join(';').trim() === '' ?\n allowedStyleValueArray.join(';') : allowedStyleValueArray.join(';') + ';';\n if (allowedStyleValue) {\n styleElement[i].setAttribute('style', allowedStyleValue);\n }\n }\n return clipBoardElem;\n };\n /**\n * For internal use only - Get the module name.\n *\n * @returns {void}\n * @hidden\n */\n PasteCleanup.prototype.getModuleName = function () {\n return 'pasteCleanup';\n };\n return PasteCleanup;\n}());\nexport { PasteCleanup };\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { useState } from \"react\";\nimport { Predicate, Query } from \"@syncfusion/ej2-data\";\nimport React from \"react\";\nimport { useOData } from \"../../../../stores/useOData\";\nexport var useAsyncMultiselectField = function (props) {\n var _a = useOData({ getAuthRequestHeader: props.getAuthRequestHeader }, function () {\n setInitialized(true);\n }), authRequestHeader = _a.authRequestHeader, setupAsyncMultiselectODataSource = _a.setupAsyncMultiselectODataSource, baseActionCompleteEvent = _a.baseActionCompleteEvent, baseActionFailureEvent = _a.baseActionFailureEvent;\n var multiSelectRef = React.useRef(null);\n var _b = React.useState(false), initialized = _b[0], setInitialized = _b[1];\n var _c = useState(), dataSource = _c[0], setDataSource = _c[1];\n var _d = useState([]), localOptions = _d[0], setLocalOptions = _d[1];\n var _e = React.useState(), queryKey = _e[0], setQueryKey = _e[1];\n var _f = React.useState(), multiselectSettings = _f[0], setMultiselectSettings = _f[1];\n var _g = React.useState(props.value), localValue = _g[0], setLocalValue = _g[1];\n React.useEffect(function () {\n setQueryKey(\"initial-key\");\n }, []);\n /** Observe and Save Filter Settings */\n React.useEffect(function () {\n if (initialized) {\n setup();\n }\n }, [queryKey]);\n var handleValueChange = function (newValue) {\n if (initialized && multiSelectRef.current) {\n /**\n * Setting local value to detect change faster than rerendering,\n * allowing the UI to adjust styles like require as it occurs.\n */\n setLocalValue(newValue);\n multiSelectRef.current.value = newValue;\n }\n };\n var getQuery = function (queryString) {\n var predicates = __spreadArray([], (props.conditions || []), true);\n if (queryString) {\n predicates.push(new Predicate(\"label\", \"contains\", queryString, true));\n }\n var where;\n if (predicates) {\n predicates.forEach(function (predicate) {\n where = where ? where.and(predicate) : predicate;\n });\n }\n var query = new Query().select(__spreadArray([\n \"label\",\n \"value\"\n ], (props.optionFields || []), true));\n if (where) {\n query = query.where(where);\n }\n query = query.sortBy(\"label\");\n return query;\n };\n var showSearchPopup = function () {\n if (!!multiSelectRef.current) {\n multiSelectRef.current.showPopup();\n }\n };\n var setNoRecordsTemplate = function () {\n if (!!multiSelectRef.current && !!props.noRecordsTemplate) {\n multiSelectRef.current.noRecordsTemplate = props.noRecordsTemplate(multiSelectRef.current);\n }\n };\n /**\n *\n * SyncFusion async select component has a terrible habit of direct\n * update the value of the input prop and set it to something like [null], ['']\n * in the process\n *\n */\n var sanitizeValue = function (values) {\n return values === null || values === void 0 ? void 0 : values.filter(function (value) { return value != null && value != \"\"; });\n };\n var defaultMultiselectSettings = {\n showClearButton: true,\n fields: { text: \"label\", value: \"value\" },\n itemTemplate: \"
    ${label}
    \",\n /** Inmutable */\n focus: showSearchPopup,\n onClick: showSearchPopup,\n actionFailure: baseActionFailureEvent,\n actionComplete: baseActionCompleteEvent,\n placeholder: \"Type to search...\",\n disabled: props.disabled,\n dataSource: dataSource,\n allowFiltering: true,\n ignoreCase: true,\n sortOrder: \"Ascending\",\n maximumSelectionLength: !!props.allowableSelectionCount\n ? props.allowableSelectionCount\n : 10,\n };\n var setup = function () { return __awaiter(void 0, void 0, void 0, function () {\n var settings, dm;\n return __generator(this, function (_a) {\n if (!queryKey) {\n return [2 /*return*/];\n }\n if (!!authRequestHeader) {\n settings = __assign(__assign({}, defaultMultiselectSettings), {});\n /** Set Item Template Wrapper */\n settings.itemTemplate =\n \"\" +\n String(settings.itemTemplate) +\n \"\";\n /** System not allows groupby if not in list option is set up */\n if (settings.fields && !!props.groupByActiveStatus) {\n settings.fields.groupBy = \"category\";\n }\n dm = setupAsyncMultiselectODataSource(props.odataUrl, props.groupByActiveStatus);\n settings.dataSource = dm;\n setDataSource(dm);\n settings.value = props.value;\n setMultiselectSettings(settings);\n }\n return [2 /*return*/];\n });\n }); };\n return {\n getQuery: getQuery,\n dataSource: dataSource,\n showSearchPopup: showSearchPopup,\n setNoRecordsTemplate: setNoRecordsTemplate,\n localOptions: localOptions,\n setLocalOptions: setLocalOptions,\n multiSelectRef: multiSelectRef,\n sanitizeValue: sanitizeValue,\n multiselectSettings: multiselectSettings,\n localValue: localValue,\n handleValueChange: handleValueChange,\n };\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { FormGroup } from \"@blueprintjs/core\";\nimport { MultiSelectComponent, } from \"@syncfusion/ej2-react-dropdowns\";\nimport { FieldLabel } from \"../../CoreFields/FieldLabel/FieldLabel\";\nimport { FormFieldErrorContainer } from \"../../CoreFields/FieldError/FormFieldErrorContainer\";\nimport { useAsyncMultiselectField } from \"./useAsyncMultiselectField\";\nvar AsyncMultiselectField = function (props) {\n var _a = useAsyncMultiselectField(props), getQuery = _a.getQuery, dataSource = _a.dataSource, setNoRecordsTemplate = _a.setNoRecordsTemplate, localOptions = _a.localOptions, setLocalOptions = _a.setLocalOptions, multiSelectRef = _a.multiSelectRef, sanitizeValue = _a.sanitizeValue, multiselectSettings = _a.multiselectSettings, localValue = _a.localValue, handleValueChange = _a.handleValueChange;\n // // only render when data source is ready\n if (!dataSource) {\n return null;\n }\n setNoRecordsTemplate();\n return (_jsxs(FormGroup, { className: \"\".concat((props.isRequired && !localValue) ||\n (props.isRequired && !!localValue && localValue.length === 0) ||\n (props.isRequired &&\n !!props.value &&\n props.value.filter(function (x) { return x !== null && x !== undefined; }).length === 0)\n ? \"has-required-background\"\n : \"ucl-async-multiselect-field\"), children: [props.label && (_jsx(FieldLabel, __assign({ labelName: props.label, tooltipDescription: props.description, fieldProps: __assign(__assign({}, props), { value: localValue }) }, props.labelProps))), _jsx(\"div\", { className: \"ucl-async-multiselect-toolbar\", children: _jsx(\"div\", { className: \"ucl-async-multiselect-input-container\", children: _jsx(MultiSelectComponent, __assign({ className: \"ucl-async-multiselect-input\", ref: multiSelectRef, value: sanitizeValue(props.value), actionBegin: function (e) {\n if (props.conditions && localOptions.length === 0) {\n e.query = getQuery();\n }\n }, dataBound: function (event) {\n setLocalOptions(event.items);\n }, onChange: function (e) {\n handleValueChange(e.value);\n }, change: function (e) { return __awaiter(void 0, void 0, void 0, function () {\n var defaultOpt_1;\n return __generator(this, function (_a) {\n // Syncfusion emits a change event on load of the initial data.\n // We only want to update the form state if the change was user-intiated.\n if (e.isInteracted) {\n defaultOpt_1 = { label: \"\", value: \"\" };\n props.onSubmit &&\n props.onSubmit(e.value.length === 0\n ? [defaultOpt_1]\n : e.value.map(function (value) {\n // Syncfusion returns a list of the currently selected option values,\n // but we want more metadata.\n return localOptions.find(function (opt) { return opt.value === value; }) ||\n defaultOpt_1;\n }));\n }\n return [2 /*return*/];\n });\n }); }, filtering: function (e) {\n if (e) {\n e.preventDefaultAction = true;\n var query = getQuery(e.text);\n if (dataSource) {\n e.updateData(dataSource, query);\n }\n }\n } }, multiselectSettings)) }) }), props.errorMessages && (_jsx(FormFieldErrorContainer, { errorMessages: props.errorMessages }))] }));\n};\nexport default AsyncMultiselectField;\n","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport var PrimaryCardHeader = function (props) {\n return (_jsxs(\"div\", { className: \"ucl-card-header\", children: [_jsx(\"h4\", { className: \"bp4-heading\", children: props.label }), props.children] }));\n};\nexport default PrimaryCardHeader;\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Card, Collapse } from \"@blueprintjs/core\";\nimport { PrimaryCardHeader } from \"./PrimaryCardHeader\";\n/**\n * `PrimaryCard` is a wrapper around @blueprintjs/core's `Card` component.\n *\n * This wrapper adds header & body capabilities.\n */\nvar PrimaryCard = function (_a) {\n var headerContent = _a.headerContent, hideBody = _a.hideBody, columns = _a.columns, children = _a.children, cardProps = __rest(_a, [\"headerContent\", \"hideBody\", \"columns\", \"children\"]);\n return (_jsx(\"div\", { className: \"ucl-card\", children: _jsxs(Card, __assign({}, cardProps, { children: [!!headerContent &&\n (typeof headerContent === \"string\" ||\n headerContent instanceof String) && (_jsx(PrimaryCardHeader, { label: headerContent })), !!headerContent &&\n !(typeof headerContent === \"string\" || headerContent instanceof String) && _jsx(\"section\", { className: \"ucl-card__header\", children: headerContent }), _jsx(Collapse, { isOpen: !hideBody, children: _jsx(\"div\", { className: \"ucl-card__body \".concat(columns ? \"ucl-grid ucl-grid-\" + columns : \"\"), children: children }) })] })) }));\n};\nexport default PrimaryCard;\n","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport var SecondaryCardHeader = function (props) {\n return (_jsxs(\"div\", { className: \"relativity-subcard-header\", children: [_jsx(\"h4\", { className: \"bp4-heading\", children: props.label }), props.children] }));\n};\nexport default SecondaryCardHeader;\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Button, Card, Collapse } from \"@blueprintjs/core\";\nimport { useState } from \"react\";\nimport { SecondaryCardHeader } from \"./SecondaryCardHeader\";\nimport classNames from \"classnames\";\n/**\n * Used Only As A Nested Child of Relativity Card\n * `RelativitySubCard` is a wrapper around @blueprintjs/core's `Card` component.\n *\n * This wrapper adds header & body capabilities.\n */\nvar SecondaryCard = function (_a) {\n var headerContent = _a.headerContent, hideBody = _a.hideBody, isCollapsible = _a.isCollapsible, columns = _a.columns, children = _a.children, cardProps = __rest(_a, [\"headerContent\", \"hideBody\", \"isCollapsible\", \"columns\", \"children\"]);\n var _b = useState(!hideBody), isOpen = _b[0], setIsOpen = _b[1];\n return (_jsx(\"div\", { className: classNames(\"ucl-subcard\", {\n \"is-collapsible\": isCollapsible,\n }), children: _jsxs(Card, __assign({}, cardProps, { children: [_jsxs(\"div\", { className: \"ucl-subcard__header-container\", children: [isCollapsible && (_jsx(Button, { className: \"collapse-toggle\", icon: isOpen ? \"chevron-up\" : \"chevron-down\", minimal: true, onClick: function () { return setIsOpen(function (open) { return !open; }); } })), !!headerContent &&\n (typeof headerContent === \"string\" ||\n headerContent instanceof String) && (_jsx(SecondaryCardHeader, { label: headerContent })), !!headerContent &&\n !(typeof headerContent === \"string\" ||\n headerContent instanceof String) && (_jsx(\"section\", { className: \"ucl-subcard__header\", children: headerContent }))] }), _jsx(Collapse, { isOpen: isOpen, children: _jsx(\"div\", { className: \"ucl-card__body \".concat(columns ? \"ucl-grid ucl-grid-\" + columns : \"\"), children: children }) })] })) }));\n};\nexport default SecondaryCard;\n","import { isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { Internationalization, setCulture } from '@syncfusion/ej2-base';\n/**\n * ValueFormatter class to globalize the value.\n *\n * @hidden\n */\nvar ValueFormatter = /** @class */ (function () {\n function ValueFormatter(cultureName) {\n this.intl = new Internationalization();\n if (!isNullOrUndefined(cultureName)) {\n this.intl.culture = cultureName;\n }\n }\n ValueFormatter.prototype.getFormatFunction = function (format) {\n if (format.type) {\n return this.intl.getDateFormat(format);\n }\n else {\n return this.intl.getNumberFormat(format);\n }\n };\n ValueFormatter.prototype.getParserFunction = function (format) {\n if (format.type) {\n return this.intl.getDateParser(format);\n }\n else {\n return this.intl.getNumberParser(format);\n }\n };\n ValueFormatter.prototype.fromView = function (value, format, type) {\n if ((type === 'date' || type === 'datetime' || type === 'number') && (!isNullOrUndefined(format))) {\n return format(value);\n }\n else {\n return value;\n }\n };\n ValueFormatter.prototype.toView = function (value, format) {\n var result = value;\n if (!isNullOrUndefined(format) && !isNullOrUndefined(value)) {\n result = format(value);\n }\n return result;\n };\n ValueFormatter.prototype.setCulture = function (cultureName) {\n if (!isNullOrUndefined(cultureName)) {\n setCulture(cultureName);\n }\n };\n return ValueFormatter;\n}());\nexport { ValueFormatter };\n","/**\n * Defines types of Cell\n *\n * @hidden\n */\nexport var CellType;\n(function (CellType) {\n /** Defines CellType as Data */\n CellType[CellType[\"Data\"] = 0] = \"Data\";\n /** Defines CellType as Header */\n CellType[CellType[\"Header\"] = 1] = \"Header\";\n /** Defines CellType as Summary */\n CellType[CellType[\"Summary\"] = 2] = \"Summary\";\n /** Defines CellType as GroupSummary */\n CellType[CellType[\"GroupSummary\"] = 3] = \"GroupSummary\";\n /** Defines CellType as CaptionSummary */\n CellType[CellType[\"CaptionSummary\"] = 4] = \"CaptionSummary\";\n /** Defines CellType as Filter */\n CellType[CellType[\"Filter\"] = 5] = \"Filter\";\n /** Defines CellType as Indent */\n CellType[CellType[\"Indent\"] = 6] = \"Indent\";\n /** Defines CellType as GroupCaption */\n CellType[CellType[\"GroupCaption\"] = 7] = \"GroupCaption\";\n /** Defines CellType as GroupCaptionEmpty */\n CellType[CellType[\"GroupCaptionEmpty\"] = 8] = \"GroupCaptionEmpty\";\n /** Defines CellType as Expand */\n CellType[CellType[\"Expand\"] = 9] = \"Expand\";\n /** Defines CellType as HeaderIndent */\n CellType[CellType[\"HeaderIndent\"] = 10] = \"HeaderIndent\";\n /** Defines CellType as StackedHeader */\n CellType[CellType[\"StackedHeader\"] = 11] = \"StackedHeader\";\n /** Defines CellType as DetailHeader */\n CellType[CellType[\"DetailHeader\"] = 12] = \"DetailHeader\";\n /** Defines CellType as DetailExpand */\n CellType[CellType[\"DetailExpand\"] = 13] = \"DetailExpand\";\n /** Defines CellType as CommandColumn */\n CellType[CellType[\"CommandColumn\"] = 14] = \"CommandColumn\";\n /** Defines CellType as DetailFooterIntent */\n CellType[CellType[\"DetailFooterIntent\"] = 15] = \"DetailFooterIntent\";\n /** Defines CellType as RowDrag */\n CellType[CellType[\"RowDragIcon\"] = 16] = \"RowDragIcon\";\n /** Defines CellType as RowDragHeader */\n CellType[CellType[\"RowDragHIcon\"] = 17] = \"RowDragHIcon\";\n})(CellType || (CellType = {}));\n/**\n * Defines types of Render\n *\n * @hidden\n */\nexport var RenderType;\n(function (RenderType) {\n /** Defines RenderType as Header */\n RenderType[RenderType[\"Header\"] = 0] = \"Header\";\n /** Defines RenderType as Content */\n RenderType[RenderType[\"Content\"] = 1] = \"Content\";\n /** Defines RenderType as Summary */\n RenderType[RenderType[\"Summary\"] = 2] = \"Summary\";\n})(RenderType || (RenderType = {}));\n/**\n * Defines Predefined toolbar items.\n *\n * @hidden\n */\nexport var ToolbarItem;\n(function (ToolbarItem) {\n ToolbarItem[ToolbarItem[\"Add\"] = 0] = \"Add\";\n ToolbarItem[ToolbarItem[\"Edit\"] = 1] = \"Edit\";\n ToolbarItem[ToolbarItem[\"Update\"] = 2] = \"Update\";\n ToolbarItem[ToolbarItem[\"Delete\"] = 3] = \"Delete\";\n ToolbarItem[ToolbarItem[\"Cancel\"] = 4] = \"Cancel\";\n ToolbarItem[ToolbarItem[\"Print\"] = 5] = \"Print\";\n ToolbarItem[ToolbarItem[\"Search\"] = 6] = \"Search\";\n ToolbarItem[ToolbarItem[\"ColumnChooser\"] = 7] = \"ColumnChooser\";\n ToolbarItem[ToolbarItem[\"PdfExport\"] = 8] = \"PdfExport\";\n ToolbarItem[ToolbarItem[\"ExcelExport\"] = 9] = \"ExcelExport\";\n ToolbarItem[ToolbarItem[\"CsvExport\"] = 10] = \"CsvExport\";\n ToolbarItem[ToolbarItem[\"WordExport\"] = 11] = \"WordExport\";\n})(ToolbarItem || (ToolbarItem = {}));\n/**\n * Defines types of responsive dialogs\n *\n * @hidden\n */\nexport var ResponsiveDialogAction;\n(function (ResponsiveDialogAction) {\n /** Defines dialog type as Edit */\n ResponsiveDialogAction[ResponsiveDialogAction[\"isEdit\"] = 0] = \"isEdit\";\n /** Defines dialog type as Add */\n ResponsiveDialogAction[ResponsiveDialogAction[\"isAdd\"] = 1] = \"isAdd\";\n /** Defines dialog type as Sort */\n ResponsiveDialogAction[ResponsiveDialogAction[\"isSort\"] = 2] = \"isSort\";\n /** Defines dialog type as Filter */\n ResponsiveDialogAction[ResponsiveDialogAction[\"isFilter\"] = 3] = \"isFilter\";\n})(ResponsiveDialogAction || (ResponsiveDialogAction = {}));\n/**\n * Defines responsive toolbar actions\n *\n * @hidden\n */\nexport var ResponsiveToolbarAction;\n(function (ResponsiveToolbarAction) {\n /** Defines initial responsive toolbar buttons */\n ResponsiveToolbarAction[ResponsiveToolbarAction[\"isInitial\"] = 0] = \"isInitial\";\n /** Defines responsive toolbar search */\n ResponsiveToolbarAction[ResponsiveToolbarAction[\"isSearch\"] = 1] = \"isSearch\";\n})(ResponsiveToolbarAction || (ResponsiveToolbarAction = {}));\n","/** @hidden */\nexport var created = 'create';\n/** @hidden */\nexport var destroyed = 'destroy';\n/** @hidden */\nexport var load = 'load';\n/** @hidden */\nexport var rowDataBound = 'rowDataBound';\n/** @hidden */\nexport var queryCellInfo = 'queryCellInfo';\n/** @hidden */\nexport var headerCellInfo = 'headerCellInfo';\n/** @hidden */\nexport var actionBegin = 'actionBegin';\n/** @hidden */\nexport var actionComplete = 'actionComplete';\n/** @hidden */\nexport var actionFailure = 'actionFailure';\n/** @hidden */\nexport var dataBound = 'dataBound';\n/** @hidden */\nexport var rowSelecting = 'rowSelecting';\n/** @hidden */\nexport var rowSelected = 'rowSelected';\n/** @hidden */\nexport var rowDeselecting = 'rowDeselecting';\n/** @hidden */\nexport var rowDeselected = 'rowDeselected';\n/** @hidden */\nexport var cellSelecting = 'cellSelecting';\n/** @hidden */\nexport var cellSelected = 'cellSelected';\n/** @hidden */\nexport var cellDeselecting = 'cellDeselecting';\n/** @hidden */\nexport var cellDeselected = 'cellDeselected';\n/** @hidden */\nexport var columnSelecting = 'columnSelecting';\n/** @hidden */\nexport var columnSelected = 'columnSelected';\n/** @hidden */\nexport var columnDeselecting = 'columnDeselecting';\n/** @hidden */\nexport var columnDeselected = 'columnDeselected';\n/** @hidden */\nexport var columnDragStart = 'columnDragStart';\n/** @hidden */\nexport var columnDrag = 'columnDrag';\n/** @hidden */\nexport var columnDrop = 'columnDrop';\n/** @hidden */\nexport var rowDragStartHelper = 'rowDragStartHelper';\n/** @hidden */\nexport var rowDragStart = 'rowDragStart';\n/** @hidden */\nexport var rowDrag = 'rowDrag';\n/** @hidden */\nexport var rowDrop = 'rowDrop';\n/** @hidden */\nexport var beforePrint = 'beforePrint';\n/** @hidden */\nexport var printComplete = 'printComplete';\n/** @hidden */\nexport var detailDataBound = 'detailDataBound';\n/** @hidden */\nexport var toolbarClick = 'toolbarClick';\n/** @hidden */\nexport var batchAdd = 'batchAdd';\n/** @hidden */\nexport var batchCancel = 'batchCancel';\n/** @hidden */\nexport var batchDelete = 'batchDelete';\n/** @hidden */\nexport var beforeBatchAdd = 'beforeBatchAdd';\n/** @hidden */\nexport var beforeBatchDelete = 'beforeBatchDelete';\n/** @hidden */\nexport var beforeBatchSave = 'beforeBatchSave';\n/** @hidden */\nexport var beginEdit = 'beginEdit';\n/** @hidden */\nexport var cellEdit = 'cellEdit';\n/** @hidden */\nexport var cellSave = 'cellSave';\n/** @hidden */\nexport var cellSaved = 'cellSaved';\n/** @hidden */\nexport var endAdd = 'endAdd';\n/** @hidden */\nexport var endDelete = 'endDelete';\n/** @hidden */\nexport var endEdit = 'endEdit';\n/** @hidden */\nexport var recordDoubleClick = 'recordDoubleClick';\n/** @hidden */\nexport var recordClick = 'recordClick';\n/** @hidden */\nexport var beforeDataBound = 'beforeDataBound';\n/** @hidden */\nexport var beforeOpenColumnChooser = 'beforeOpenColumnChooser';\n/** @hidden */\nexport var beforeOpenAdaptiveDialog = 'beforeOpenAdaptiveDialog';\n/** @hidden */\nexport var resizeStart = 'resizeStart';\n/** @hidden */\nexport var onResize = 'resizing';\n/** @hidden */\nexport var resizeStop = 'resizeStop';\n/** @hidden */\nexport var checkBoxChange = 'checkBoxChange';\n/** @hidden */\nexport var beforeCopy = 'beforeCopy';\n/** @hidden */\nexport var beforePaste = 'beforePaste';\n/** @hidden */\nexport var beforeAutoFill = 'beforeAutoFill';\n/** @hidden */\nexport var filterChoiceRequest = 'filterchoicerequest';\n/** @hidden */\nexport var filterAfterOpen = 'filterafteropen';\n/** @hidden */\nexport var filterBeforeOpen = 'filterbeforeopen';\n/** @hidden */\nexport var filterSearchBegin = 'filtersearchbegin';\n/** @hidden */\nexport var commandClick = 'commandClick';\n/** @hidden */\nexport var exportGroupCaption = 'exportGroupCaption';\n/** @hidden */\nexport var lazyLoadGroupExpand = 'lazyLoadGroupExpand';\n/** @hidden */\nexport var lazyLoadGroupCollapse = 'lazyLoadGroupCollapse';\n/**\n * Specifies grid internal events\n */\n/** @hidden */\nexport var initialLoad = 'initial-load';\n/** @hidden */\nexport var initialEnd = 'initial-end';\n/** @hidden */\nexport var dataReady = 'data-ready';\n/** @hidden */\nexport var contentReady = 'content-ready';\n/** @hidden */\nexport var uiUpdate = 'ui-update';\n/** @hidden */\nexport var onEmpty = 'on-empty';\n/** @hidden */\nexport var inBoundModelChanged = 'inbound-model-changed';\n/** @hidden */\nexport var modelChanged = 'model-changed';\n/** @hidden */\nexport var colGroupRefresh = 'colgroup-refresh';\n/** @hidden */\nexport var headerRefreshed = 'header-refreshed';\n/** @hidden */\nexport var pageBegin = 'paging-begin';\n/** @hidden */\nexport var pageComplete = 'paging-complete';\n/** @hidden */\nexport var sortBegin = 'sorting-begin';\n/** @hidden */\nexport var sortComplete = 'sorting-complete';\n/** @hidden */\nexport var filterBegin = 'filtering-begin';\n/** @hidden */\nexport var filterComplete = 'filtering-complete';\n/** @hidden */\nexport var searchBegin = 'searching-begin';\n/** @hidden */\nexport var searchComplete = 'searching-complete';\n/** @hidden */\nexport var reorderBegin = 'reorder-begin';\n/** @hidden */\nexport var reorderComplete = 'reorder-complete';\n/** @hidden */\nexport var rowDragAndDropBegin = 'rowdraganddrop-begin';\n/** @hidden */\nexport var rowDragAndDropComplete = 'rowdraganddrop-complete';\n/** @hidden */\nexport var groupBegin = 'grouping-begin';\n/** @hidden */\nexport var groupComplete = 'grouping-complete';\n/** @hidden */\nexport var ungroupBegin = 'ungrouping-begin';\n/** @hidden */\nexport var ungroupComplete = 'ungrouping-complete';\n/** @hidden */\nexport var groupAggregates = 'group-aggregates';\n/** @hidden */\nexport var refreshFooterRenderer = 'refresh-footer-rendered';\n/** @hidden */\nexport var refreshAggregateCell = 'refresh-aggregate-cell';\n/** @hidden */\nexport var refreshAggregates = 'refresh-aggregates';\n/** @hidden */\nexport var rowSelectionBegin = 'rowselecting';\n/** @hidden */\nexport var rowSelectionComplete = 'rowselected';\n/** @hidden */\nexport var columnSelectionBegin = 'columnselecting';\n/** @hidden */\nexport var columnSelectionComplete = 'columnselected';\n/** @hidden */\nexport var cellSelectionBegin = 'cellselecting';\n/** @hidden */\nexport var cellSelectionComplete = 'cellselected';\n/** @hidden */\nexport var beforeCellFocused = 'beforecellfocused';\n/** @hidden */\nexport var cellFocused = 'cellfocused';\n/** @hidden */\nexport var keyPressed = 'key-pressed';\n/** @hidden */\nexport var click = 'click';\n/** @hidden */\nexport var destroy = 'destroy';\n/** @hidden */\nexport var columnVisibilityChanged = 'column-visible-changed';\n/** @hidden */\nexport var scroll = 'scroll';\n/** @hidden */\nexport var columnWidthChanged = 'column-width-changed';\n/** @hidden */\nexport var columnPositionChanged = 'column-position-changed';\n/** @hidden */\nexport var rowDragAndDrop = 'row-drag-and-drop';\n/** @hidden */\nexport var rowsAdded = 'rows-added';\n/** @hidden */\nexport var rowsRemoved = 'rows-removed';\n/** @hidden */\nexport var columnDragStop = 'column-drag-stop';\n/** @hidden */\nexport var headerDrop = 'header-drop';\n/** @hidden */\nexport var dataSourceModified = 'datasource-modified';\n/** @hidden */\nexport var refreshComplete = 'refresh-complete';\n/** @hidden */\nexport var refreshVirtualBlock = 'refresh-virtual-block';\n/** @hidden */\nexport var dblclick = 'dblclick';\n/** @hidden */\nexport var toolbarRefresh = 'toolbar-refresh';\n/** @hidden */\nexport var bulkSave = 'bulk-save';\n/** @hidden */\nexport var autoCol = 'auto-col';\n/** @hidden */\nexport var tooltipDestroy = 'tooltip-destroy';\n/** @hidden */\nexport var updateData = 'update-data';\n/** @hidden */\nexport var editBegin = 'edit-begin';\n/** @hidden */\nexport var editComplete = 'edit-complete';\n/** @hidden */\nexport var addBegin = 'add-begin';\n/** @hidden */\nexport var addComplete = 'add-complete';\n/** @hidden */\nexport var saveComplete = 'save-complete';\n/** @hidden */\nexport var deleteBegin = 'delete-begin';\n/** @hidden */\nexport var deleteComplete = 'delete-complete';\n/** @hidden */\nexport var preventBatch = 'prevent-batch';\n/** @hidden */\nexport var dialogDestroy = 'dialog-destroy';\n/** @hidden */\nexport var crudAction = 'crud-Action';\n/** @hidden */\nexport var addDeleteAction = 'add-delete-Action';\n/** @hidden */\nexport var destroyForm = 'destroy-form';\n/** @hidden */\nexport var doubleTap = 'double-tap';\n/** @hidden */\nexport var beforeExcelExport = 'beforeExcelExport';\n/** @hidden */\nexport var excelExportComplete = 'excelExportComplete';\n/** @hidden */\nexport var excelQueryCellInfo = 'excelQueryCellInfo';\n/** @hidden */\nexport var excelHeaderQueryCellInfo = 'excelHeaderQueryCellInfo';\n/** @hidden */\nexport var exportDetailDataBound = 'exportDetailDataBound';\n/** @hidden */\nexport var beforePdfExport = 'beforePdfExport';\n/** @hidden */\nexport var pdfExportComplete = 'pdfExportComplete';\n/** @hidden */\nexport var pdfQueryCellInfo = 'pdfQueryCellInfo';\n/** @hidden */\nexport var pdfHeaderQueryCellInfo = 'pdfHeaderQueryCellInfo';\n/** @hidden */\nexport var accessPredicate = 'access-predicate';\n/** @hidden */\nexport var contextMenuClick = 'contextMenuClick';\n/** @hidden */\nexport var freezeRender = 'freezerender';\n/** @hidden */\nexport var freezeRefresh = 'freezerefresh';\n/** @hidden */\nexport var contextMenuOpen = 'contextMenuOpen';\n/** @hidden */\nexport var columnMenuClick = 'columnMenuClick';\n/** @hidden */\nexport var columnMenuOpen = 'columnMenuOpen';\n/** @hidden */\nexport var filterOpen = 'filterOpen';\n/** @hidden */\nexport var filterDialogCreated = 'filterDialogCreated';\n/** @hidden */\nexport var filterMenuClose = 'filter-menu-close';\n/** @hidden */\nexport var initForeignKeyColumn = 'initForeignKeyColumn';\n/** @hidden */\nexport var getForeignKeyData = 'getForeignKeyData';\n/** @hidden */\nexport var generateQuery = 'generateQuery';\n/** @hidden */\nexport var showEmptyGrid = 'showEmptyGrid';\n/** @hidden */\nexport var foreignKeyData = 'foreignKeyData';\n/** @hidden */\nexport var columnDataStateChange = 'columnDataStateChange';\n/** @hidden */\nexport var dataStateChange = 'dataStateChange';\n/** @hidden */\nexport var dataSourceChanged = 'dataSourceChanged';\n/** @hidden */\nexport var rtlUpdated = 'rtl-updated';\n/** @hidden */\nexport var beforeFragAppend = 'beforeFragAppend';\n/** @hidden */\nexport var frozenHeight = 'frozenHeight';\n/** @hidden */\nexport var textWrapRefresh = 'textWrapRefresh';\n/** @hidden */\nexport var recordAdded = 'recordAdded';\n/** @hidden */\nexport var cancelBegin = 'cancel-Begin';\n/** @hidden */\nexport var editNextValCell = 'editNextValCell';\n/** @hidden */\nexport var hierarchyPrint = 'hierarchyprint';\n/** @hidden */\nexport var expandChildGrid = 'expandchildgrid';\n/** @hidden */\nexport var printGridInit = 'printGrid-Init';\n/** @hidden */\nexport var exportRowDataBound = 'export-RowDataBound';\n/** @hidden */\nexport var exportDataBound = 'export-DataBound';\n/** @hidden */\nexport var rowPositionChanged = 'row-position-changed';\n/** @hidden */\nexport var columnChooserOpened = 'columnChooserOpened';\n/** @hidden */\nexport var batchForm = 'batchedit-form';\n/** @hidden */\nexport var beforeStartEdit = 'edit-form';\n/** @hidden */\nexport var beforeBatchCancel = 'before-batch-cancel';\n/** @hidden */\nexport var batchEditFormRendered = 'batcheditform-rendered';\n/** @hidden */\nexport var partialRefresh = 'partial-refresh';\n/** @hidden */\nexport var beforeCustomFilterOpen = 'beforeCustomFilterOpen';\n/** @hidden */\nexport var selectVirtualRow = 'select-virtual-Row';\n/** @hidden */\nexport var columnsPrepared = 'columns-prepared';\n/** @hidden */\nexport var cBoxFltrBegin = 'cbox-filter-begin';\n/** @hidden */\nexport var cBoxFltrComplete = 'cbox-filter-complete';\n/** @hidden */\nexport var fltrPrevent = 'filter-Prevent';\n/** @hidden */\nexport var beforeFltrcMenuOpen = 'before-filter-cmenu-open';\n/** @hidden */\nexport var valCustomPlacement = 'validation-custom-placement';\n/** @hidden */\nexport var filterCboxValue = 'filter-cbox-value';\n/** @hidden */\nexport var componentRendered = 'component-rendered';\n/** @hidden */\nexport var restoreFocus = 'restore-Focus';\n/** @hidden */\nexport var detailStateChange = 'detail-state-change';\n/** @hidden */\nexport var detailIndentCellInfo = 'detail-indentcell-info';\n/** @hidden */\nexport var virtaulKeyHandler = 'virtaul-key-handler';\n/** @hidden */\nexport var virtaulCellFocus = 'virtaul-cell-focus';\n/** @hidden */\nexport var virtualScrollEditActionBegin = 'virtual-scroll-edit-action-begin';\n/** @hidden */\nexport var virtualScrollEditSuccess = 'virtual-scroll-edit-success';\n/** @hidden */\nexport var virtualScrollEditCancel = 'virtual-scroll-edit-cancel';\n/** @hidden */\nexport var virtualScrollEdit = 'virtual-scroll-edit';\n/** @hidden */\nexport var refreshVirtualCache = 'refresh-virtual-cache';\n/** @hidden */\nexport var editReset = 'edit-reset';\n/** @hidden */\nexport var virtualScrollAddActionBegin = 'virtual-scroll-add-action-begin';\n/** @hidden */\nexport var getVirtualData = 'get-virtual-data';\n/** @hidden */\nexport var refreshInfiniteModeBlocks = 'refresh-infinite-mode-blocks';\n/** @hidden */\nexport var resetInfiniteBlocks = 'reset-infinite-blocks';\n/** @hidden */\nexport var infiniteScrollHandler = 'infinite-scroll-handler';\n/** @hidden */\nexport var infinitePageQuery = 'infinite-page-query';\n/** @hidden */\nexport var infiniteShowHide = 'infinite-show-hide';\n/** @hidden */\nexport var appendInfiniteContent = 'append-infinite-content';\n/** @hidden */\nexport var removeInfiniteRows = 'remove-infinite-rows';\n/** @hidden */\nexport var setInfiniteCache = 'set-infinite-cache';\n/** @hidden */\nexport var infiniteEditHandler = 'infinite-edit-handler';\n/** @hidden */\nexport var initialCollapse = 'initial-collapse';\n/** @hidden */\nexport var getAggregateQuery = 'get-aggregate-query';\n/** @hidden */\nexport var closeFilterDialog = 'close-filter-dialog';\n/** @hidden */\nexport var columnChooserCancelBtnClick = 'columnChooserCancelBtnClick';\n/** @hidden */\nexport var getFilterBarOperator = 'get-filterbar-operator';\n/** @hidden */\nexport var resetColumns = 'reset-columns';\n/** @hidden */\nexport var pdfAggregateQueryCellInfo = 'pdfAggregateQueryCellInfo';\n/** @hidden */\nexport var excelAggregateQueryCellInfo = 'excelAggregateQueryCellInfo';\n/** @hidden */\nexport var setGroupCache = 'group-cache';\n/** @hidden */\nexport var lazyLoadScrollHandler = 'lazy-load-scroll-handler';\n/** @hidden */\nexport var groupCollapse = 'group-collapse';\n/** @hidden */\nexport var beforeCheckboxRenderer = 'beforeCheckboxRenderer';\n/** @hidden */\nexport var refreshHandlers = 'refreshResizeHandlers';\n/** @hidden */\nexport var refreshFrozenColumns = 'refresh-frozen-columns';\n/** @hidden */\nexport var setReorderDestinationElement = 'set-reorder-destination-element';\n/** @hidden */\nexport var refreshVirtualFrozenHeight = 'refresh-virtual-frozen-height';\n/** @hidden */\nexport var setFreezeSelection = 'set-freeze-selection';\n/** @hidden */\nexport var setInfiniteFrozenHeight = 'set-infinite-frozen-height';\n/** @hidden */\nexport var setInfiniteColFrozenHeight = 'set-infinite-col-frozen-height';\n/** @hidden */\nexport var beforeRefreshOnDataChange = 'before-refresh-on-data-change';\n/** @hidden */\nexport var immutableBatchCancel = 'immutable-batch-cancel';\n/** @hidden */\nexport var refreshVirtualFrozenRows = 'refresh-virtual-frozenrows';\n/** @hidden */\nexport var checkScrollReset = 'check-scroll-reset';\n/** @hidden */\nexport var refreshFrozenHeight = 'refresh-frozen-height';\n/** @hidden */\nexport var setHeightToFrozenElement = 'set-height-to-frozen-element';\n/** @hidden */\nexport var preventFrozenScrollRefresh = 'prevent-frozen-scroll-refresh';\n/** @hidden */\nexport var nextCellIndex = 'next-cell-index';\n/** @hidden */\nexport var refreshInfiniteCurrentViewData = 'refresh-infinite-current-view-data';\n/** @hidden */\nexport var infiniteCrudCancel = 'infinite-crud-cancel';\n/** @hidden */\nexport var filterDialogClose = 'filter-dialog-close';\n/** @hidden */\nexport var refreshCustomFilterOkBtn = 'refresh-cutsom-filter-ok-button';\n/** @hidden */\nexport var refreshCustomFilterClearBtn = 'refresh-cutsom-filter-clear-button';\n/** @hidden */\nexport var renderResponsiveCmenu = 'render-responsive-cmenu';\n/** @hidden */\nexport var filterCmenuSelect = 'filter-cmenu-select';\n/** @hidden */\nexport var customFilterClose = 'custom-filter-close';\n/** @hidden */\nexport var setFullScreenDialog = 'set-fullscreen-dialog';\n/** @hidden */\nexport var refreshExpandandCollapse = 'refresh-Expand-and-Collapse';\n/** @hidden */\nexport var rowModeChange = 'row-mode-change';\n/** @hidden */\nexport var enterKeyHandler = 'enter-key-handler';\n/** @hidden */\nexport var refreshVirtualMaxPage = 'refresh-virtual-max-page';\n/** @hidden */\nexport var setVirtualPageQuery = 'set-virtual-page-query';\n/** @hidden */\nexport var selectRowOnContextOpen = 'select-row-on-context-open';\n/** @hidden */\nexport var pagerRefresh = 'pager-refresh';\n/** @hidden */\nexport var closeInline = 'closeinline';\n/** @hidden */\nexport var closeBatch = 'closebatch';\n/** @hidden */\nexport var closeEdit = 'close-edit';\n/** @hidden */\nexport var resetVirtualFocus = 'reset-virtual-focus';\n/** @hidden */\nexport var afterContentRender = 'after-content-renderer';\n/** @hidden */\nexport var refreshVirtualEditFormCells = 'refresh-virtual-editform-cells';\n/** @hidden */\nexport var scrollToEdit = 'scroll-to-edit';\n/** @hidden */\nexport var beforeCheckboxRendererQuery = 'before-checkbox-renderer-query';\n/** @hidden */\nexport var createVirtualValidationForm = 'create-virtual-validation-form';\n/** @hidden */\nexport var validateVirtualForm = 'validate-virtual-form';\n/** @hidden */\nexport var destroyChildGrid = 'destroy-child-grid';\n/** @hidden */\nexport var stickyScrollComplete = 'sticky-scroll-complete';\n/** @hidden */\nexport var captionActionComplete = 'infinite-group-collapse';\n/** @hidden */\nexport var refreshInfinitePersistSelection = 'refresh-infinite-persist-selection';\n/** @hidden */\nexport var refreshInfiniteEditrowindex = 'refresh-infinite-editrowindex';\n/** @hidden */\nexport var afterFilterColumnMenuClose = 'after-filter-column-menu-close';\n/** @hidden */\nexport var beforeCheckboxfilterRenderer = 'beforeCheckboxfilterRenderer';\n/** @hidden */\nexport var commandColumnDestroy = 'commandColumnDestroy';\n/** @hidden */\nexport var batchCnfrmDlgCancel = 'cancelcnfrmDlg';\n/** @hidden */\nexport var refreshVirtualLazyLoadCache = 'refresh-Virtual-LazyLoad-Cache';\n","/* tslint:disable-next-line:max-line-length */\nimport { EventHandler, isNullOrUndefined, extend, classList, addClass, removeClass, Browser, getValue, setValue } from '@syncfusion/ej2-base';\nimport { parentsUntil, getUid, appendChildren, getDatePredicate, getObject, extendObjWithFn, eventPromise, setChecked, clearReactVueTemplates } from '../base/util';\nimport { remove, debounce, Internationalization, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\nimport { DataUtil, Query, DataManager, Predicate } from '@syncfusion/ej2-data';\nimport { createCheckBox } from '@syncfusion/ej2-buttons';\nimport * as events from '../base/constant';\nimport { ValueFormatter } from '../services/value-formatter';\nimport { getForeignData } from '../base/util';\nimport { Dialog } from '@syncfusion/ej2-popups';\nimport { Input } from '@syncfusion/ej2-inputs';\nimport { createSpinner, hideSpinner, showSpinner } from '@syncfusion/ej2-popups';\nimport { getFilterMenuPostion, toogleCheckbox, createCboxWithWrap, removeAddCboxClasses, getColumnByForeignKeyValue } from '../base/util';\n/**\n * @hidden\n * `CheckBoxFilterBase` module is used to handle filtering action.\n */\nvar CheckBoxFilterBase = /** @class */ (function () {\n /**\n * Constructor for checkbox filtering module\n *\n * @param {IXLFilter} parent - specifies the IXLFilter\n * @hidden\n */\n function CheckBoxFilterBase(parent) {\n this.existingPredicate = {};\n this.foreignKeyQuery = new Query();\n /** @hidden */\n this.filterState = true;\n this.values = {};\n this.renderEmpty = false;\n this.isCheckboxFilterTemplate = false;\n this.parent = parent;\n this.id = this.parent.element.id;\n this.valueFormatter = new ValueFormatter(this.parent.locale);\n this.cBoxTrue = createCheckBox(this.parent.createElement, false, { checked: true, label: ' ' });\n this.cBoxFalse = createCheckBox(this.parent.createElement, false, { checked: false, label: ' ' });\n this.cBoxTrue.insertBefore(this.parent.createElement('input', {\n className: 'e-chk-hidden', attrs: { type: 'checkbox' }\n }), this.cBoxTrue.firstChild);\n this.cBoxFalse.insertBefore(this.parent.createElement('input', {\n className: 'e-chk-hidden', attrs: { 'type': 'checkbox' }\n }), this.cBoxFalse.firstChild);\n this.cBoxFalse.querySelector('.e-frame').classList.add('e-uncheck');\n if (this.parent.enableRtl) {\n addClass([this.cBoxTrue, this.cBoxFalse], ['e-rtl']);\n }\n if (this.parent.cssClass) {\n addClass([this.cBoxTrue, this.cBoxFalse], [this.parent.cssClass]);\n }\n }\n /**\n * @returns {void}\n * @hidden\n */\n CheckBoxFilterBase.prototype.destroy = function () {\n this.closeDialog();\n };\n CheckBoxFilterBase.prototype.wireEvents = function () {\n EventHandler.add(this.dlg, 'click', this.clickHandler, this);\n EventHandler.add(this.dlg, 'keyup', this.keyupHandler, this);\n this.searchHandler = debounce(this.searchBoxKeyUp, 200);\n var elem = this.dialogObj.element.querySelector('.e-searchinput');\n if (elem) {\n EventHandler.add(elem, 'keyup', this.searchHandler, this);\n }\n };\n CheckBoxFilterBase.prototype.unWireEvents = function () {\n EventHandler.remove(this.dlg, 'click', this.clickHandler);\n EventHandler.remove(this.dlg, 'keyup', this.keyupHandler);\n var elem = this.dialogObj.element.querySelector('.e-searchinput');\n if (elem) {\n EventHandler.remove(elem, 'keyup', this.searchHandler);\n }\n };\n CheckBoxFilterBase.prototype.foreignKeyFilter = function (args, fColl, mPredicate) {\n var _this = this;\n var fPredicate = {};\n var filterCollection = [];\n var query = this.foreignKeyQuery.clone();\n this.options.column.dataSource.\n executeQuery(query.where(mPredicate)).then(function (e) {\n _this.options.column.columnData = e.result;\n _this.parent.notify(events.generateQuery, { predicate: fPredicate, column: _this.options.column });\n args.ejpredicate = fPredicate.predicate.predicates;\n var fpred = fPredicate.predicate.predicates;\n for (var i = 0; i < fpred.length; i++) {\n filterCollection.push({\n field: fpred[parseInt(i.toString(), 10)].field,\n predicate: 'or',\n matchCase: fpred[parseInt(i.toString(), 10)].ignoreCase,\n ignoreAccent: fpred[parseInt(i.toString(), 10)].ignoreAccent,\n operator: fpred[parseInt(i.toString(), 10)].operator,\n value: fpred[parseInt(i.toString(), 10)].value,\n type: _this.options.type\n });\n }\n args.filterCollection = filterCollection.length ? filterCollection :\n fColl.filter(function (col) { return col.field = _this.options.field; });\n _this.options.handler(args);\n });\n };\n CheckBoxFilterBase.prototype.foreignFilter = function (args, value) {\n var operator = this.options.isRemote ?\n (this.options.column.type === 'string' ? 'contains' : 'equal') : (this.options.column.type ? 'contains' : 'equal');\n var initalPredicate = new Predicate(this.options.column.foreignKeyValue, operator, value, true, this.options.ignoreAccent);\n this.foreignKeyFilter(args, [args.filterCollection], initalPredicate);\n };\n CheckBoxFilterBase.prototype.searchBoxClick = function (e) {\n var target = e.target;\n if (target.classList.contains('e-searchclear')) {\n this.sInput.value = target.classList.contains('e-chkcancel-icon') ? '' : this.sInput.value;\n if (this.isCheckboxFilterTemplate) {\n this.parent.notify('refreshCheckbox', { event: e });\n }\n else {\n this.refreshCheckboxes();\n }\n this.updateSearchIcon();\n this.sInput.focus();\n }\n };\n CheckBoxFilterBase.prototype.searchBoxKeyUp = function (e) {\n if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === 'Shimmer') {\n this.parent.showMaskRow(undefined, this.dialogObj.element);\n }\n if (this.isCheckboxFilterTemplate) {\n this.parent.notify('refreshCheckbox', { event: e });\n }\n else {\n this.refreshCheckboxes();\n }\n this.updateSearchIcon();\n };\n CheckBoxFilterBase.prototype.updateSearchIcon = function () {\n if (this.sInput.value.length) {\n classList(this.sIcon, ['e-chkcancel-icon'], ['e-search-icon']);\n document.body.querySelector('.e-chkcancel-icon').setAttribute('title', this.localeObj.getConstant('Clear'));\n }\n else {\n classList(this.sIcon, ['e-search-icon'], ['e-chkcancel-icon']);\n document.body.querySelector('.e-search-icon').setAttribute('title', this.localeObj.getConstant('Search'));\n }\n };\n /**\n * Gets the localized label by locale keyword.\n *\n * @param {string} key - Defines localization key\n * @returns {string} - returns localization label\n */\n CheckBoxFilterBase.prototype.getLocalizedLabel = function (key) {\n return this.localeObj.getConstant(key);\n };\n CheckBoxFilterBase.prototype.updateDataSource = function () {\n var dataSource = this.options.dataSource;\n var str = 'object';\n if (!(dataSource instanceof DataManager)) {\n for (var i = 0; i < dataSource.length; i++) {\n // eslint-disable-next-line valid-typeof\n if (typeof dataSource !== str) {\n var obj = {};\n obj[this.options.field] = dataSource[parseInt(i.toString(), 10)];\n dataSource[parseInt(i.toString(), 10)] = obj;\n }\n }\n }\n };\n CheckBoxFilterBase.prototype.updateModel = function (options) {\n this.options = options;\n this.existingPredicate = options.actualPredicate || {};\n this.options.dataSource = options.dataSource;\n this.options.dataManager = options.dataManager ? options.dataManager : options.dataSource;\n this.updateDataSource();\n this.options.type = options.type;\n this.options.format = options.format || '';\n this.options.ignoreAccent = options.ignoreAccent || false;\n this.options.filteredColumns = options.filteredColumns || this.parent.filterSettings.columns;\n this.options.query = options.query || new Query();\n this.options.allowCaseSensitive = options.allowCaseSensitive || false;\n this.options.uid = options.column.uid;\n this.options.disableHtmlEncode = options.column.disableHtmlEncode || false;\n this.values = {};\n this.localeObj = options.localeObj;\n this.isFiltered = options.filteredColumns.length;\n };\n CheckBoxFilterBase.prototype.getAndSetChkElem = function (options) {\n this.dlg = this.parent.createElement('div', {\n id: this.id + this.options.type + '_excelDlg',\n attrs: { uid: this.options.column.uid },\n className: 'e-checkboxfilter e-filter-popup'\n });\n this.sBox = this.parent.createElement('div', { className: 'e-searchcontainer' });\n if (!options.hideSearchbox) {\n this.sInput = this.parent.createElement('input', {\n id: this.id + '_SearchBox',\n className: 'e-searchinput'\n });\n this.sIcon = this.parent.createElement('span', {\n className: 'e-searchclear e-search-icon e-icons e-input-group-icon', attrs: {\n type: 'text', title: this.getLocalizedLabel('Search')\n }\n });\n this.searchBox = this.parent.createElement('span', { className: 'e-searchbox e-fields' });\n this.searchBox.appendChild(this.sInput);\n this.sBox.appendChild(this.searchBox);\n var inputargs = {\n element: this.sInput, floatLabelType: 'Never', properties: {\n placeholder: this.getLocalizedLabel('Search'),\n cssClass: this.parent.cssClass\n }\n };\n Input.createInput(inputargs, this.parent.createElement);\n this.searchBox.querySelector('.e-input-group').appendChild(this.sIcon);\n }\n this.spinner = this.parent.createElement('div', { className: 'e-spinner' }); //for spinner\n this.cBox = this.parent.createElement('div', {\n id: this.id + this.options.type + '_CheckBoxList',\n className: 'e-checkboxlist e-fields'\n });\n this.spinner.appendChild(this.cBox);\n this.sBox.appendChild(this.spinner);\n return this.sBox;\n };\n CheckBoxFilterBase.prototype.showDialog = function (options) {\n var args = {\n requestType: events.filterBeforeOpen,\n columnName: this.options.field, columnType: this.options.type, cancel: false\n };\n var filterModel = 'filterModel';\n args[\"\" + filterModel] = this;\n this.parent.notify(events.cBoxFltrBegin, args);\n if (args.cancel) {\n options.cancel = args.cancel;\n return;\n }\n this.dialogObj = new Dialog({\n visible: false, content: this.sBox,\n close: this.closeDialog.bind(this),\n enableRtl: this.parent.enableRtl,\n width: (!isNullOrUndefined(parentsUntil(options.target, 'e-bigger')))\n || this.parent.element.classList.contains('e-device') ? 260 : 255,\n target: this.parent.element, animationSettings: { effect: 'None' },\n buttons: [{\n click: this.btnClick.bind(this),\n buttonModel: {\n content: this.getLocalizedLabel(this.isExcel ? 'OKButton' : 'FilterButton'),\n cssClass: this.parent.cssClass ? 'e-primary' + ' ' + this.parent.cssClass : 'e-primary',\n isPrimary: true\n }\n },\n {\n click: this.btnClick.bind(this),\n buttonModel: { cssClass: this.parent.cssClass ? 'e-flat' + ' ' + this.parent.cssClass : 'e-flat',\n content: this.getLocalizedLabel(this.isExcel ? 'CancelButton' : 'ClearButton') }\n }],\n created: this.dialogCreated.bind(this),\n open: this.dialogOpen.bind(this),\n cssClass: this.parent.cssClass ? this.parent.cssClass : ''\n });\n var isStringTemplate = 'isStringTemplate';\n this.dialogObj[\"\" + isStringTemplate] = true;\n this.renderResponsiveFilter(options);\n this.dlg.setAttribute('aria-label', this.getLocalizedLabel('ExcelFilterDialogARIA'));\n if (options.isResponsiveFilter) {\n var responsiveCnt = document.querySelector('.e-responsive-dialog > .e-dlg-content > .e-mainfilterdiv');\n responsiveCnt.appendChild(this.dlg);\n }\n else {\n this.parent.element.appendChild(this.dlg);\n }\n this.dialogObj.appendTo(this.dlg);\n this.dialogObj.element.style.maxHeight = options.isResponsiveFilter ? 'none' : this.options.height + 'px';\n this.dialogObj.show();\n var content = this.dialogObj.element.querySelector('.e-dlg-content');\n content.appendChild(this.sBox);\n this.wireEvents();\n if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === 'Shimmer') {\n this.parent.showMaskRow(undefined, this.dialogObj.element);\n }\n else {\n createSpinner({ target: this.spinner, cssClass: this.parent.cssClass ? this.parent.cssClass : null }, this.parent.createElement);\n showSpinner(this.spinner);\n }\n this.getAllData();\n };\n CheckBoxFilterBase.prototype.renderResponsiveFilter = function (options) {\n if (options.isResponsiveFilter) {\n this.dialogObj.buttons = [{}];\n this.dialogObj.position = { X: '', Y: '' };\n this.dialogObj.target = document.querySelector('.e-resfilter > .e-dlg-content > .e-mainfilterdiv');\n this.dialogObj.width = '100%';\n }\n };\n CheckBoxFilterBase.prototype.dialogCreated = function (e) {\n if (this.options.isResponsiveFilter) {\n this.dialogObj.element.style.left = '0px';\n }\n else {\n if (!Browser.isDevice) {\n getFilterMenuPostion(this.options.target, this.dialogObj);\n }\n else {\n this.dialogObj.position = { X: 'center', Y: 'center' };\n }\n }\n if (this.options.column.showColumnMenu) {\n this.parent.notify(events.filterDialogCreated, e);\n }\n };\n CheckBoxFilterBase.prototype.openDialog = function (options) {\n this.updateModel(options);\n this.getAndSetChkElem(options);\n this.showDialog(options);\n };\n CheckBoxFilterBase.prototype.closeDialog = function () {\n if (this.dialogObj && !this.dialogObj.isDestroyed) {\n this.isBlanks = false;\n var filterTemplateCol = this.options.columns.filter(function (col) { return col.getFilterItemTemplate(); });\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var registeredTemplate = this.parent.registeredTemplate;\n if (filterTemplateCol.length && !isNullOrUndefined(registeredTemplate) && registeredTemplate.filterItemTemplate) {\n this.parent.destroyTemplate(['filterItemTemplate']);\n }\n if ((this.parent.isReact || this.parent.isVue) && this.parent.destroyTemplate !== undefined) {\n clearReactVueTemplates(this.parent, ['filterItemTemplate']);\n }\n this.parent.notify(events.filterMenuClose, { field: this.options.field });\n this.dialogObj.destroy();\n this.unWireEvents();\n remove(this.dlg);\n this.dlg = null;\n this.parent.notify(events.filterDialogClose, {});\n }\n };\n /**\n * @param {Column} col - Defines column details\n * @returns {void}\n * @hidden\n */\n CheckBoxFilterBase.prototype.clearFilter = function (col) {\n // eslint-disable-next-line max-len\n var args = { instance: this, handler: this.clearFilter, cancel: false };\n this.parent.notify(events.fltrPrevent, args);\n if (args.cancel) {\n return;\n }\n this.options.handler({ action: 'clear-filter', field: col ? col.field : this.options.field });\n };\n CheckBoxFilterBase.prototype.btnClick = function (e) {\n if (this.filterState) {\n if ((e.target.tagName.toLowerCase() === 'input' && e.target.classList.contains('e-searchinput')) ||\n e.keyCode === 13) {\n if (!this.isCheckboxFilterTemplate) {\n this.fltrBtnHandler();\n }\n }\n else {\n var text = e.target.firstChild.textContent.toLowerCase();\n if (this.getLocalizedLabel(this.isExcel ? 'OKButton' : 'FilterButton').toLowerCase() === text) {\n if (!this.isCheckboxFilterTemplate) {\n this.fltrBtnHandler();\n }\n }\n else if (this.getLocalizedLabel('ClearButton').toLowerCase() === text) {\n this.clearFilter();\n }\n }\n this.closeDialog();\n }\n else if (!(e.target.tagName.toLowerCase() === 'input')) {\n this.clearFilter();\n this.closeDialog();\n }\n if (this.options.column.showColumnMenu) {\n this.parent.notify(events.afterFilterColumnMenuClose, {});\n }\n };\n /**\n * @returns {void}\n * @hidden\n */\n CheckBoxFilterBase.prototype.fltrBtnHandler = function () {\n var _this = this;\n var checked = [].slice.call(this.cBox.querySelectorAll('.e-check:not(.e-selectall):not(.e-add-current)'));\n var check = checked;\n var optr = 'equal';\n var ddlValue = this.dialogObj.element.querySelector('.e-dropdownlist');\n if (ddlValue) {\n this.options.operator = optr = ddlValue.ej2_instances[0].value;\n }\n this.isMenuNotEqual = this.options.operator === 'notequal';\n var searchInput;\n if (!this.options.hideSearchbox) {\n searchInput = this.searchBox.querySelector('.e-searchinput');\n }\n var caseSen = this.options.allowCaseSensitive;\n var defaults = {\n field: this.options.field, predicate: this.isMenuNotEqual ? 'and' : 'or', uid: this.options.uid,\n operator: optr, type: this.options.type, matchCase: caseSen, ignoreAccent: this.options.ignoreAccent\n };\n var isNotEqual = this.itemsCnt !== checked.length && this.itemsCnt - checked.length < checked.length;\n if (isNotEqual && searchInput && searchInput.value === '') {\n optr = this.isMenuNotEqual ? 'equal' : 'notequal';\n checked = [].slice.call(this.cBox.querySelectorAll('.e-uncheck:not(.e-selectall)'));\n defaults.predicate = this.isMenuNotEqual ? 'or' : 'and';\n defaults.operator = optr;\n }\n var value;\n var val;\n var length;\n var fObj;\n var coll = [];\n if (checked.length !== this.itemsCnt || (searchInput && searchInput.value && searchInput.value !== '')) {\n for (var i = 0; i < checked.length; i++) {\n value = this.values[parentsUntil(checked[parseInt(i.toString(), 10)], 'e-ftrchk').getAttribute('uid')];\n fObj = extend({}, { value: value }, defaults);\n if (value && !value.toString().length) {\n fObj.operator = isNotEqual ? 'notequal' : 'equal';\n }\n if (value === '' || isNullOrUndefined(value)) {\n coll = coll.concat(CheckBoxFilterBase.generateNullValuePredicates(defaults));\n }\n else {\n coll.push(fObj);\n }\n var args = {\n instance: this, handler: this.fltrBtnHandler, arg1: fObj.field, arg2: fObj.predicate, arg3: fObj.operator,\n arg4: fObj.matchCase, arg5: fObj.ignoreAccent, arg6: fObj.value, cancel: false\n };\n this.parent.notify(events.fltrPrevent, args);\n if (args.cancel) {\n return;\n }\n }\n if ((this.options.type === 'date' || this.options.type === 'datetime') && check.length) {\n length = check.length - 1;\n val = this.values[parentsUntil(check[parseInt(length.toString(), 10)], 'e-ftrchk').getAttribute('uid')];\n if (isNullOrUndefined(val) && isNotEqual) {\n coll.push({\n field: defaults.field, matchCase: defaults.matchCase, operator: 'equal',\n predicate: 'and', value: null\n });\n }\n }\n if (this.cBox.querySelector('.e-add-current') && this.cBox.querySelector('.e-add-current').classList.contains('e-check')) {\n var existingPredicate_1 = this.existingPredicate[this.options.field];\n if (existingPredicate_1) {\n var _loop_1 = function (j) {\n if (!coll.some(function (data) {\n return data\n .value === existingPredicate_1[parseInt(j.toString(), 10)].value;\n })) {\n coll.push(existingPredicate_1[parseInt(j.toString(), 10)]);\n }\n };\n for (var j = 0; j < existingPredicate_1.length; j++) {\n _loop_1(j);\n }\n }\n else {\n return;\n }\n }\n this.initiateFilter(coll);\n }\n else {\n var isClearFilter = this.options.filteredColumns.some(function (value) {\n return _this.options.field === value.field;\n });\n if (isClearFilter) {\n this.clearFilter();\n }\n }\n };\n // eslint-disable-next-line\n /** @hidden */\n CheckBoxFilterBase.generateNullValuePredicates = function (defaults) {\n var coll = [];\n if (defaults.type === 'string') {\n coll.push({\n field: defaults.field, ignoreAccent: defaults.ignoreAccent, matchCase: defaults.matchCase,\n operator: defaults.operator, predicate: defaults.predicate, value: ''\n });\n }\n coll.push({\n field: defaults.field,\n matchCase: defaults.matchCase, operator: defaults.operator, predicate: defaults.predicate, value: null\n });\n coll.push({\n field: defaults.field, matchCase: defaults.matchCase, operator: defaults.operator,\n predicate: defaults.predicate, value: undefined\n });\n return coll;\n };\n // eslint-disable-next-line\n /** @hidden */\n CheckBoxFilterBase.prototype.initiateFilter = function (fColl) {\n var firstVal = fColl[0];\n var predicate;\n if (!isNullOrUndefined(firstVal)) {\n predicate = firstVal.ejpredicate ? firstVal.ejpredicate :\n new Predicate(firstVal.field, firstVal.operator, firstVal.value, !firstVal.matchCase, firstVal.ignoreAccent);\n for (var j = 1; j < fColl.length; j++) {\n predicate = fColl[parseInt(j.toString(), 10)].ejpredicate !== undefined ?\n predicate[fColl[parseInt(j.toString(), 10)].predicate](fColl[parseInt(j.toString(), 10)].ejpredicate) :\n predicate[fColl[parseInt(j.toString(), 10)].predicate](fColl[parseInt(j.toString(), 10)].field, fColl[parseInt(j.toString(), 10)].operator, fColl[parseInt(j.toString(), 10)].value, !fColl[parseInt(j.toString(), 10)].matchCase, fColl[parseInt(j.toString(), 10)].ignoreAccent);\n }\n var args = {\n action: 'filtering', filterCollection: fColl, field: this.options.field,\n ejpredicate: Predicate.or(predicate)\n };\n this.options.handler(args);\n }\n };\n CheckBoxFilterBase.prototype.isForeignColumn = function (col) {\n return col.isForeignColumn ? col.isForeignColumn() : false;\n };\n CheckBoxFilterBase.prototype.refreshCheckboxes = function () {\n var _this = this;\n var val = this.sInput.value;\n var column = this.options.column;\n var query = this.isForeignColumn(column) ? this.foreignKeyQuery.clone() : this.options.query.clone();\n var foreignQuery = this.options.query.clone();\n var pred = query.queries.filter(function (e) { return e && e.fn === 'onWhere'; })[0];\n query.queries = [];\n foreignQuery.queries = [];\n var parsed = (this.options.type !== 'string' && parseFloat(val)) ? parseFloat(val) : val;\n var operator = this.options.isRemote ?\n (this.options.type === 'string' ? 'wildcard' : 'equal') : (this.options.type ? 'wildcard' : 'equal');\n var matchCase = true;\n var ignoreAccent = this.options.ignoreAccent;\n var field = this.isForeignColumn(column) ? column.foreignKeyValue : column.field;\n parsed = (parsed === '' || parsed === undefined) ? undefined : parsed;\n var coll = [];\n var defaults = {\n field: field, predicate: 'or', uid: this.options.uid,\n operator: 'equal', type: this.options.type, matchCase: matchCase, ignoreAccent: ignoreAccent\n };\n var predicte;\n var moduleName = this.options.dataManager.adaptor.getModuleName;\n if (this.options.type === 'boolean') {\n if (parsed !== undefined &&\n this.getLocalizedLabel('FilterTrue').toLowerCase().indexOf(parsed.toLowerCase()) !== -1) {\n parsed = 'true';\n }\n else if (parsed !== undefined &&\n this.getLocalizedLabel('FilterFalse').toLowerCase().indexOf(parsed.toLowerCase()) !== -1) {\n parsed = 'false';\n }\n if (parsed !== undefined &&\n this.getLocalizedLabel('FilterTrue').toLowerCase().indexOf(parsed.toLowerCase()) !== -1 && moduleName) {\n // eslint-disable-next-line no-constant-condition\n parsed = (moduleName() === 'ODataAdaptor' || 'ODataV4Adaptor') ? true : 'true';\n }\n else if (parsed !== undefined &&\n this.getLocalizedLabel('FilterFalse').toLowerCase().indexOf(parsed.toLowerCase()) !== -1 && moduleName) {\n // eslint-disable-next-line no-constant-condition\n parsed = (moduleName() === 'ODataAdaptor' || 'ODataV4Adaptor') ? false : 'false';\n }\n operator = 'equal';\n }\n if ((this.options.type === 'date' || this.options.type === 'datetime') && this.options.format) {\n var intl = new Internationalization();\n var format = typeof (this.options.format) === 'string' ? this.options.format :\n this.options.format.format;\n if (format) {\n parsed = intl.parseDate(val, { format: format }) || new Date(val);\n }\n else {\n parsed = new Date(val);\n }\n }\n this.addDistinct(query);\n var args = {\n requestType: events.filterSearchBegin,\n filterModel: this, columnName: field, column: column,\n operator: operator, matchCase: matchCase, ignoreAccent: ignoreAccent, filterChoiceCount: null,\n query: query, value: parsed\n };\n this.parent.trigger(events.actionBegin, args, function (filterargs) {\n // eslint-disable-next-line no-self-assign\n filterargs.operator = filterargs.operator;\n predicte = new Predicate(field, filterargs.operator, args.value, filterargs.matchCase, filterargs.ignoreAccent);\n if (_this.options.type === 'date' || _this.options.type === 'datetime') {\n operator = 'equal';\n var filterObj = {\n field: field, operator: operator, value: parsed, matchCase: matchCase,\n ignoreAccent: ignoreAccent\n };\n if (!isNullOrUndefined(parsed)) {\n predicte = getDatePredicate(filterObj, _this.options.type);\n }\n }\n if (val && typeof val === 'string' && _this.isBlanks &&\n _this.getLocalizedLabel('Blanks').toLowerCase().indexOf(val.toLowerCase()) >= 0) {\n coll = coll.concat(CheckBoxFilterBase.generateNullValuePredicates(defaults));\n var emptyValPredicte = CheckBoxFilterBase.generatePredicate(coll);\n emptyValPredicte.predicates.push(predicte);\n query.where(emptyValPredicte);\n }\n else if (val.length) {\n predicte = !isNullOrUndefined(pred) ? predicte.and(pred.e) : predicte;\n query.where(predicte);\n }\n else if (!isNullOrUndefined(pred)) {\n query.where(pred.e);\n }\n filterargs.filterChoiceCount = !isNullOrUndefined(filterargs.filterChoiceCount) ? filterargs.filterChoiceCount : 1000;\n var fPredicate = {};\n showSpinner(_this.spinner);\n _this.renderEmpty = false;\n if (_this.isForeignColumn(column) && val.length) {\n var colData = ('result' in column.dataSource) ? new DataManager(column.dataSource.result) :\n column.dataSource;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n colData.executeQuery(query).then(function (e) {\n var columnData = _this.options.column.columnData;\n _this.options.column.columnData = e.result;\n _this.parent.notify(events.generateQuery, { predicate: fPredicate, column: column });\n if (fPredicate.predicate.predicates.length) {\n foreignQuery.where(fPredicate.predicate);\n }\n else {\n _this.renderEmpty = true;\n }\n _this.options.column.columnData = columnData;\n foreignQuery.take(filterargs.filterChoiceCount);\n _this.search(filterargs, foreignQuery);\n });\n }\n else {\n query.take(filterargs.filterChoiceCount);\n _this.search(filterargs, query);\n }\n });\n };\n CheckBoxFilterBase.prototype.search = function (args, query) {\n if (this.parent.dataSource && 'result' in this.parent.dataSource) {\n this.filterEvent(args, query);\n }\n else {\n this.processSearch(query);\n }\n };\n CheckBoxFilterBase.prototype.getPredicateFromCols = function (columns) {\n var predicates = CheckBoxFilterBase.getPredicate(columns);\n var predicateList = [];\n var fPredicate = {};\n var isGrid = this.parent.getForeignKeyColumns !== undefined;\n var foreignColumn = isGrid ? this.parent.getForeignKeyColumns() : [];\n for (var _i = 0, _a = Object.keys(predicates); _i < _a.length; _i++) {\n var prop = _a[_i];\n var col = void 0;\n if (isGrid && !this.parent.getColumnByField(prop)) {\n col = getColumnByForeignKeyValue(prop, foreignColumn);\n }\n if (col) {\n this.parent.notify(events.generateQuery, { predicate: fPredicate, column: col });\n if (fPredicate.predicate.predicates.length) {\n predicateList.push(Predicate.or(fPredicate.predicate.predicates));\n }\n }\n else {\n predicateList.push(predicates[\"\" + prop]);\n }\n }\n return predicateList.length && Predicate.and(predicateList);\n };\n CheckBoxFilterBase.prototype.getQuery = function () {\n return this.parent.getQuery ? this.parent.getQuery().clone() : new Query();\n };\n CheckBoxFilterBase.prototype.getAllData = function () {\n var _this = this;\n this.customQuery = false;\n var query = this.getQuery();\n query.requiresCount(); //consider take query\n this.addDistinct(query);\n var args = {\n requestType: events.filterChoiceRequest, query: query, filterChoiceCount: null\n };\n var filterModel = 'filterModel';\n args[\"\" + filterModel] = this;\n this.parent.trigger(events.actionBegin, args, function (args) {\n args.filterChoiceCount = !isNullOrUndefined(args.filterChoiceCount) ? args.filterChoiceCount : 1000;\n query.take(args.filterChoiceCount);\n if (!args.query.distincts.length) {\n _this.customQuery = true;\n _this.queryGenerate(query);\n }\n if (_this.parent.dataSource && 'result' in _this.parent.dataSource) {\n _this.filterEvent(args, query);\n }\n else {\n _this.processDataOperation(query, true);\n }\n });\n };\n CheckBoxFilterBase.prototype.addDistinct = function (query) {\n var filteredColumn = DataUtil.distinct(this.options.filteredColumns, 'field');\n if (filteredColumn.indexOf(this.options.column.field) <= -1) {\n filteredColumn = filteredColumn.concat(this.options.column.field);\n }\n query.distinct(filteredColumn);\n return query;\n };\n CheckBoxFilterBase.prototype.filterEvent = function (args, query) {\n var _this = this;\n var defObj = eventPromise(args, query);\n this.parent.trigger(events.dataStateChange, defObj.state);\n var def = defObj.deffered;\n def.promise.then(function (e) {\n _this.dataSuccess(e);\n });\n };\n CheckBoxFilterBase.prototype.processDataOperation = function (query, isInitial) {\n var _this = this;\n this.options.dataSource = this.options.dataSource instanceof DataManager ?\n this.options.dataSource : new DataManager(this.options.dataSource);\n var allPromise = [];\n var runArray = [];\n if (this.isForeignColumn(this.options.column) && isInitial) {\n var colData = ('result' in this.options.column.dataSource) ?\n new DataManager(this.options.column.dataSource.result) :\n this.options.column.dataSource;\n this.foreignKeyQuery.params = query.params;\n allPromise.push(colData.executeQuery(this.foreignKeyQuery));\n runArray.push(function (data) { return _this.foreignKeyData = data; });\n }\n allPromise.push(this.options.dataSource.executeQuery(query));\n runArray.push(this.dataSuccess.bind(this));\n var i = 0;\n Promise.all(allPromise).then(function (e) {\n for (var j = 0; j < e.length; j++) {\n runArray[i++](e[parseInt(j.toString(), 10)].result);\n }\n });\n };\n CheckBoxFilterBase.prototype.dataSuccess = function (e) {\n this.fullData = e;\n var args1 = { dataSource: this.fullData, executeQuery: true, field: this.options.field };\n this.parent.notify(events.beforeCheckboxRenderer, args1);\n if (args1.executeQuery) {\n var query = new Query();\n if (!this.customQuery) {\n this.queryGenerate(query);\n }\n // query.select(this.options.field);\n var result = new DataManager(args1.dataSource).executeLocal(query);\n var col = this.options.column;\n this.filteredData = CheckBoxFilterBase.getDistinct(result, this.options.field, col, this.foreignKeyData).records || [];\n }\n var data = args1.executeQuery ? this.filteredData : args1.dataSource;\n this.processDataSource(null, true, data, args1);\n if (this.sInput) {\n this.sInput.focus();\n }\n var args = {\n requestType: events.filterAfterOpen,\n columnName: this.options.field, columnType: this.options.type\n };\n var filterModel = 'filterModel';\n args[\"\" + filterModel] = this;\n this.parent.notify(events.cBoxFltrComplete, args);\n if (this.isCheckboxFilterTemplate) {\n hideSpinner(this.spinner);\n }\n };\n CheckBoxFilterBase.prototype.queryGenerate = function (query) {\n if (this.parent.searchSettings && this.parent.searchSettings.key.length) {\n var sSettings = this.parent.searchSettings;\n var fields = sSettings.fields.length ? sSettings.fields : this.options.columns.map(function (f) { return f.field; });\n query.search(sSettings.key, fields, sSettings.operator, sSettings.ignoreCase, sSettings.ignoreAccent);\n }\n if ((this.options.filteredColumns.length)) {\n var cols = [];\n for (var i = 0; i < this.options.filteredColumns.length; i++) {\n var filterColumn = this.options.filteredColumns[parseInt(i.toString(), 10)];\n if (this.options.uid) {\n filterColumn.uid = filterColumn.uid || this.parent.getColumnByField(filterColumn.field).uid;\n if (filterColumn.uid !== this.options.uid) {\n cols.push(this.options.filteredColumns[parseInt(i.toString(), 10)]);\n }\n }\n else {\n if (filterColumn.field !== this.options.field) {\n cols.push(this.options.filteredColumns[parseInt(i.toString(), 10)]);\n }\n }\n }\n var predicate = this.getPredicateFromCols(cols);\n if (predicate) {\n query.where(predicate);\n }\n }\n };\n CheckBoxFilterBase.prototype.processDataSource = function (query, isInitial, dataSource, args) {\n showSpinner(this.spinner);\n // query = query ? query : this.options.query.clone();\n // query.requiresCount();\n // let result: Object = new DataManager(dataSource as JSON[]).executeLocal(query);\n // let res: { result: Object[] } = result as { result: Object[] };\n this.updateResult();\n var args1 = { dataSource: this.fullData, isCheckboxFilterTemplate: false, column: this.options.column,\n element: this.cBox, type: this.options.type, format: this.options.type, btnObj: this.options.isResponsiveFilter ? null :\n this.dialogObj.btnObj[0], searchBox: this.searchBox };\n this.parent.notify(events.beforeCheckboxfilterRenderer, args1);\n this.isCheckboxFilterTemplate = args1.isCheckboxFilterTemplate;\n if (!this.isCheckboxFilterTemplate) {\n this.createFilterItems(dataSource, isInitial, args);\n }\n };\n CheckBoxFilterBase.prototype.processSearch = function (query) {\n this.processDataOperation(query);\n };\n CheckBoxFilterBase.prototype.updateResult = function () {\n this.result = {};\n var predicate = this.getPredicateFromCols(this.options.filteredColumns);\n var query = new Query();\n if (predicate) {\n query.where(predicate);\n }\n this.parent.notify(events.beforeCheckboxRendererQuery, { query: query });\n var result = new DataManager(this.fullData).executeLocal(query);\n for (var _i = 0, result_1 = result; _i < result_1.length; _i++) {\n var res = result_1[_i];\n this.result[getObject(this.options.field, res)] = true;\n }\n };\n CheckBoxFilterBase.prototype.clickHandler = function (e) {\n var target = e.target;\n if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === 'Shimmer'\n && parentsUntil(target, 'e-mask-ftrchk')) {\n return;\n }\n var elem = parentsUntil(target, 'e-checkbox-wrapper');\n if (parentsUntil(target, 'e-searchbox')) {\n this.searchBoxClick(e);\n }\n if (elem && !this.isCheckboxFilterTemplate) {\n var selectAll = elem.querySelector('.e-selectall');\n if (selectAll) {\n this.updateAllCBoxes(!selectAll.classList.contains('e-check'));\n }\n else {\n toogleCheckbox(elem.parentElement);\n }\n this.updateIndeterminatenBtn();\n elem.querySelector('.e-chk-hidden').focus();\n }\n this.setFocus(parentsUntil(elem, 'e-ftrchk'));\n };\n CheckBoxFilterBase.prototype.keyupHandler = function (e) {\n this.setFocus(parentsUntil(e.target, 'e-ftrchk'));\n };\n CheckBoxFilterBase.prototype.setFocus = function (elem) {\n var prevElem = this.dlg.querySelector('.e-chkfocus');\n if (prevElem) {\n prevElem.classList.remove('e-chkfocus');\n }\n if (elem) {\n elem.classList.add('e-chkfocus');\n }\n };\n CheckBoxFilterBase.prototype.updateAllCBoxes = function (checked) {\n var cBoxes = [].slice.call(this.cBox.querySelectorAll('.e-frame:not(.e-add-current)'));\n for (var _i = 0, cBoxes_1 = cBoxes; _i < cBoxes_1.length; _i++) {\n var cBox = cBoxes_1[_i];\n removeAddCboxClasses(cBox, checked);\n setChecked(cBox.previousSibling, checked);\n }\n };\n CheckBoxFilterBase.prototype.dialogOpen = function () {\n if (this.parent.element.classList.contains('e-device')) {\n this.dialogObj.element.querySelector('.e-input-group').classList.remove('e-input-focus');\n if (!this.options.isResponsiveFilter) {\n this.dialogObj.element.querySelector('.e-btn').focus();\n }\n }\n };\n CheckBoxFilterBase.prototype.createCheckbox = function (value, checked, data) {\n var elem = checked ? this.cBoxTrue.cloneNode(true) :\n this.cBoxFalse.cloneNode(true);\n setChecked(elem.querySelector('input'), checked);\n var label = elem.querySelector('.e-label');\n var dummyData = extendObjWithFn({}, data, { column: this.options.column, parent: this.parent });\n var innerText = this.options.disableHtmlEncode ? 'textContent' : 'innerHTML';\n label[\"\" + innerText] = !isNullOrUndefined(value) && value.toString().length ?\n this.parent.enableHtmlSanitizer ? SanitizeHtmlHelper.sanitize(value) : value : this.getLocalizedLabel('Blanks');\n if (label.innerHTML === this.getLocalizedLabel('Blanks')) {\n this.isBlanks = true;\n }\n if (typeof value === 'boolean') {\n label.innerHTML = value === true ? this.getLocalizedLabel('FilterTrue') : this.getLocalizedLabel('FilterFalse');\n }\n addClass([label], ['e-checkboxfiltertext']);\n if (this.options.template && data[this.options.column.field] !== this.getLocalizedLabel('SelectAll')\n && data[this.options.column.field] !== this.getLocalizedLabel('AddCurrentSelection')) {\n label.innerHTML = '';\n var isReactCompiler = this.parent.isReact && this.options.column.filter\n && typeof (this.options.column.filter.itemTemplate) !== 'string';\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var isReactChild = this.parent.parentDetails && this.parent.parentDetails.parentInstObj &&\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.parent.parentDetails.parentInstObj.isReact;\n if (isReactCompiler || isReactChild) {\n this.options.template(dummyData, this.parent, 'filterItemTemplate', null, null, null, label);\n this.parent.renderTemplates();\n }\n else {\n appendChildren(label, this.options.template(dummyData, this.parent, 'filterItemTemplate'));\n }\n }\n return elem;\n };\n CheckBoxFilterBase.prototype.updateIndeterminatenBtn = function () {\n var cnt = this.cBox.children.length - 1;\n var className = [];\n var disabled = false;\n var elem = this.cBox.querySelector('.e-selectall');\n var selected = this.cBox.querySelectorAll('.e-check:not(.e-selectall):not(.e-add-current)').length;\n if (this.cBox.querySelector('.e-add-current')) {\n cnt -= 1;\n }\n var btn;\n if (!this.options.isResponsiveFilter) {\n btn = this.dialogObj.btnObj[0];\n btn.disabled = false;\n }\n var input = elem.previousSibling;\n setChecked(input, false);\n input.indeterminate = false;\n if (cnt === selected) {\n className = ['e-check'];\n setChecked(input, true);\n }\n else if (selected) {\n className = ['e-stop'];\n input.indeterminate = true;\n }\n else {\n className = ['e-uncheck'];\n disabled = true;\n if (btn) {\n btn.disabled = true;\n }\n }\n if (btn) {\n this.filterState = !btn.disabled;\n btn.dataBind();\n }\n removeClass([elem], ['e-check', 'e-stop', 'e-uncheck']);\n addClass([elem], className);\n this.parent.notify(events.refreshCustomFilterOkBtn, { disabled: disabled });\n };\n CheckBoxFilterBase.prototype.createFilterItems = function (data, isInitial, args1) {\n var _a, _b;\n var cBoxes = this.parent.createElement('div');\n var btn;\n var disabled = false;\n if (!this.options.isResponsiveFilter) {\n btn = this.dialogObj.btnObj[0];\n }\n var nullCounter = -1;\n var key = 'ejValue';\n if (!args1.executeQuery) {\n key = args1.field;\n }\n for (var i = 0; i < data.length; i++) {\n var val = getValue(key, data[parseInt(i.toString(), 10)]);\n if (val === '' || isNullOrUndefined(val)) {\n nullCounter = nullCounter + 1;\n }\n }\n this.itemsCnt = nullCounter !== -1 ? data.length - nullCounter : data.length;\n if (data.length && !this.renderEmpty) {\n var selectAllValue = this.getLocalizedLabel('SelectAll');\n var innerDiv = this.cBox.querySelector('.e-checkfltrnmdiv');\n if (innerDiv) {\n innerDiv.classList.remove('e-checkfltrnmdiv');\n }\n var checkBox = this.createCheckbox(selectAllValue, false, (_a = {}, _a[this.options.field] = selectAllValue, _a));\n if (this.parent.cssClass) {\n addClass([checkBox], [this.parent.cssClass]);\n }\n var selectAll = createCboxWithWrap(getUid('cbox'), checkBox, 'e-ftrchk');\n selectAll.querySelector('.e-frame').classList.add('e-selectall');\n cBoxes.appendChild(selectAll);\n var predicate = new Predicate('field', 'equal', this.options.field);\n if (this.options.foreignKeyValue) {\n predicate = predicate.or('field', 'equal', this.options.foreignKeyValue);\n }\n var isColFiltered = new DataManager(this.options.filteredColumns).executeLocal(new Query().where(predicate)).length;\n if (this.sInput.value) {\n var predicateCheckBox = this.createCheckbox(this.getLocalizedLabel('AddCurrentSelection'), false, (_b = {},\n _b[this.options.field] = this.getLocalizedLabel('AddCurrentSelection'),\n _b));\n if (this.parent.cssClass) {\n addClass([predicateCheckBox], [this.parent.cssClass]);\n }\n var predicateElement = createCboxWithWrap(getUid('cbox'), predicateCheckBox, 'e-ftrchk');\n predicateElement.querySelector('.e-frame').classList.add('e-add-current');\n cBoxes.appendChild(predicateElement);\n }\n var isRndere = void 0;\n for (var i = 0; i < data.length; i++) {\n var uid = getUid('cbox');\n this.values[\"\" + uid] = getValue(key, data[parseInt(i.toString(), 10)]);\n var value = getValue(this.options.field, data[parseInt(i.toString(), 10)]);\n if (this.options.formatFn) {\n value = this.valueFormatter.toView(value, this.options.formatFn);\n }\n var args_1 = { value: value, column: this.options.column, data: data[parseInt(i.toString(), 10)] };\n this.parent.notify(events.filterCboxValue, args_1);\n value = args_1.value;\n if ((value === '' || isNullOrUndefined(value))) {\n if (isRndere) {\n continue;\n }\n isRndere = true;\n }\n var checkbox = this.createCheckbox(value, this.getCheckedState(isColFiltered, this.values[\"\" + uid]), getValue('dataObj', data[parseInt(i.toString(), 10)]));\n cBoxes.appendChild(createCboxWithWrap(uid, checkbox, 'e-ftrchk'));\n }\n this.cBox.innerHTML = '';\n appendChildren(this.cBox, [].slice.call(cBoxes.children));\n this.updateIndeterminatenBtn();\n if (btn) {\n btn.disabled = false;\n }\n disabled = false;\n }\n else {\n cBoxes.appendChild(this.parent.createElement('span', { innerHTML: this.getLocalizedLabel('NoResult') }));\n this.cBox.innerHTML = '';\n this.cBox.appendChild(this.parent.createElement('div', { className: 'e-checkfltrnmdiv' }));\n appendChildren(this.cBox.children[0], [].slice.call(cBoxes.children));\n if (btn) {\n btn.disabled = true;\n }\n disabled = true;\n }\n if (btn && data.length) {\n this.filterState = !btn.disabled;\n btn.dataBind();\n }\n var args = { requestType: events.filterChoiceRequest, dataSource: this.renderEmpty ? [] : data };\n var filterModel = 'filterModel';\n args[\"\" + filterModel] = this;\n this.parent.notify(events.cBoxFltrComplete, args);\n this.parent.notify(events.refreshCustomFilterOkBtn, { disabled: disabled });\n hideSpinner(this.spinner);\n };\n CheckBoxFilterBase.prototype.getCheckedState = function (isColFiltered, value) {\n if (!this.isFiltered || !isColFiltered) {\n return true;\n }\n else {\n var checkState = this.sInput.value ? true : this.result[\"\" + value];\n return this.options.operator === 'notequal' ? !checkState : checkState;\n }\n };\n CheckBoxFilterBase.getDistinct = function (json, field, column, foreignKeyData) {\n var len = json.length;\n var result = [];\n var value;\n var ejValue = 'ejValue';\n var lookup = {};\n var isForeignKey = column && column.isForeignColumn ? column.isForeignColumn() : false;\n while (len--) {\n value = json[parseInt(len.toString(), 10)];\n value = getObject(field, value); //local remote diff, check with mdu\n if (!(value in lookup)) {\n var obj = {};\n obj[\"\" + ejValue] = value;\n lookup[\"\" + value] = true;\n if (isForeignKey) {\n var foreignDataObj = getForeignData(column, {}, value, foreignKeyData)[0];\n setValue(events.foreignKeyData, foreignDataObj, json[parseInt(len.toString(), 10)]);\n value = getValue(column.foreignKeyValue, foreignDataObj);\n }\n setValue(field, isNullOrUndefined(value) ? null : value, obj);\n setValue('dataObj', json[parseInt(len.toString(), 10)], obj);\n result.push(obj);\n }\n }\n return DataUtil.group(DataUtil.sort(result, field, DataUtil.fnAscending), 'ejValue');\n };\n CheckBoxFilterBase.getPredicate = function (columns) {\n var cols = DataUtil.distinct(columns, 'field', true) || [];\n var collection = [];\n var pred = {};\n for (var i = 0; i < cols.length; i++) {\n collection = new DataManager(columns).executeLocal(new Query().where('field', 'equal', cols[parseInt(i.toString(), 10)].field));\n if (collection.length !== 0) {\n pred[cols[parseInt(i.toString(), 10)].field] = CheckBoxFilterBase.generatePredicate(collection);\n }\n }\n return pred;\n };\n CheckBoxFilterBase.generatePredicate = function (cols) {\n var len = cols ? cols.length : 0;\n var predicate;\n var operate = 'or';\n var first = CheckBoxFilterBase.updateDateFilter(cols[0]);\n first.ignoreAccent = !isNullOrUndefined(first.ignoreAccent) ? first.ignoreAccent : false;\n if (first.type === 'date' || first.type === 'datetime') {\n predicate = getDatePredicate(first, first.type);\n }\n else {\n predicate = first.ejpredicate ? first.ejpredicate :\n new Predicate(first.field, first.operator, first.value, !CheckBoxFilterBase.getCaseValue(first), first.ignoreAccent);\n }\n for (var p = 1; p < len; p++) {\n cols[parseInt(p.toString(), 10)] = CheckBoxFilterBase.updateDateFilter(cols[parseInt(p.toString(), 10)]);\n if (len > 2 && p > 1 && cols[parseInt(p.toString(), 10)].predicate === 'or') {\n if (cols[parseInt(p.toString(), 10)].type === 'date' || cols[parseInt(p.toString(), 10)].type === 'datetime') {\n predicate.predicates.push(getDatePredicate(cols[parseInt(p.toString(), 10)], cols[parseInt(p.toString(), 10)].type));\n }\n else {\n predicate.predicates.push(new Predicate(cols[parseInt(p.toString(), 10)].field, cols[parseInt(p.toString(), 10)].operator, cols[parseInt(p.toString(), 10)].value, !CheckBoxFilterBase.getCaseValue(cols[parseInt(p.toString(), 10)]), cols[parseInt(p.toString(), 10)].ignoreAccent));\n }\n }\n else {\n if (cols[parseInt(p.toString(), 10)].type === 'date' || cols[parseInt(p.toString(), 10)].type === 'datetime') {\n if (cols[parseInt(p.toString(), 10)].predicate === 'and' && cols[parseInt(p.toString(), 10)].operator === 'equal') {\n predicate = predicate[\"\" + operate](getDatePredicate(cols[parseInt(p.toString(), 10)], cols[parseInt(p.toString(), 10)].type), cols[parseInt(p.toString(), 10)].type, cols[parseInt(p.toString(), 10)].ignoreAccent);\n }\n else {\n predicate = predicate[(cols[parseInt(p.toString(), 10)].predicate)](getDatePredicate(cols[parseInt(p.toString(), 10)], cols[parseInt(p.toString(), 10)].type), cols[parseInt(p.toString(), 10)].type, cols[parseInt(p.toString(), 10)].ignoreAccent);\n }\n }\n else {\n predicate = cols[parseInt(p.toString(), 10)].ejpredicate ?\n predicate[cols[parseInt(p.toString(), 10)]\n .predicate](cols[parseInt(p.toString(), 10)].ejpredicate) :\n predicate[(cols[parseInt(p.toString(), 10)].predicate)](cols[parseInt(p.toString(), 10)].field, cols[parseInt(p.toString(), 10)].operator, cols[parseInt(p.toString(), 10)].value, !CheckBoxFilterBase.getCaseValue(cols[parseInt(p.toString(), 10)]), cols[parseInt(p.toString(), 10)].ignoreAccent);\n }\n }\n }\n return predicate || null;\n };\n CheckBoxFilterBase.getCaseValue = function (filter) {\n if (isNullOrUndefined(filter.matchCase)) {\n if (filter.type === 'string' || isNullOrUndefined(filter.type) && typeof (filter.value) === 'string') {\n return false;\n }\n else {\n return true;\n }\n }\n else {\n return filter.matchCase;\n }\n };\n CheckBoxFilterBase.updateDateFilter = function (filter) {\n if ((filter.type === 'date' || filter.type === 'datetime' || filter.value instanceof Date)) {\n filter.type = filter.type || 'date';\n }\n return filter;\n };\n return CheckBoxFilterBase;\n}());\nexport { CheckBoxFilterBase };\n","import { ChildProperty, compile as baseTemplateComplier, setValue, Internationalization, isUndefined, closest } from '@syncfusion/ej2-base';\nimport { extend as baseExtend, isNullOrUndefined, getValue, classList } from '@syncfusion/ej2-base';\nimport { setStyleAttribute, addClass, attributes, remove, createElement, removeClass } from '@syncfusion/ej2-base';\nimport { isObject, select, selectAll } from '@syncfusion/ej2-base';\nimport { DataUtil, Query, DataManager, Predicate, UrlAdaptor, Deferred } from '@syncfusion/ej2-data';\nimport { Column } from '../models/column';\nimport { calculateRelativeBasedPosition } from '@syncfusion/ej2-popups';\nimport { Print } from '../actions/print';\nimport { CheckBoxFilterBase } from '../common/checkbox-filter-base';\nimport * as literals from '../base/string-literals';\n//https://typescript.codeplex.com/discussions/401501\n/**\n * Function to check whether target object implement specific interface\n *\n * @param {Object} target - specifies the target\n * @param {string} checkFor - specifies the checkfors\n * @returns {boolean} returns the boolean\n * @hidden\n */\nexport function doesImplementInterface(target, checkFor) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return target.prototype && checkFor in target.prototype;\n}\n/**\n * Function to get value from provided data\n *\n * @param {string} field - specifies the field\n * @param {Object} data - specifies the data\n * @param {ColumnModel} column - specifies the column\n * @returns {Object} returns the object\n * @hidden\n */\n// eslint-disable-next-line\nexport function valueAccessor(field, data, column) {\n return (isNullOrUndefined(field) || field === '') ? '' : DataUtil.getObject(field, data);\n}\n/**\n * Defines the method used to apply custom header cell values from external function and display this on each header cell rendered.\n *\n * @param {string} field - specifies the field\n * @param {ColumnModel} column - specifies the column\n * @returns {object} headerValueAccessor\n * @hidden\n */\nexport function headerValueAccessor(field, column) {\n return (isNullOrUndefined(field) || field === '') ? '' : DataUtil.getObject(field, column);\n}\n/**\n * The function used to update Dom using requestAnimationFrame.\n *\n * @param {Function} updateFunction - Function that contains the actual action\n * @param {object} callBack - defines the callback\n * @returns {void}\n * @hidden\n */\n// eslint-disable-next-line\nexport function getUpdateUsingRaf(updateFunction, callBack) {\n requestAnimationFrame(function () {\n try {\n callBack(null, updateFunction());\n }\n catch (e) {\n callBack(e);\n }\n });\n}\n/**\n * @hidden\n * @param {PdfExportProperties | ExcelExportProperties} exportProperties - Defines the export properties\n * @returns {boolean} Returns isExportColumns\n */\nexport function isExportColumns(exportProperties) {\n return !isNullOrUndefined(exportProperties) &&\n !isNullOrUndefined(exportProperties.columns) && exportProperties.columns.length > 0;\n}\n/**\n * @param {PdfExportProperties | ExcelExportProperties} exportProperties - Defines the export properties\n * @param {IGrid} gObj - Defines the grid object\n * @returns {void}\n * @hidden\n */\nexport function updateColumnTypeForExportColumns(exportProperties, gObj) {\n var exportColumns = exportProperties.columns;\n var gridColumns = gObj.columns;\n for (var i = 0; i < exportColumns.length; i++) {\n if (gridColumns.length - 1 >= i) {\n if (gridColumns[parseInt(i.toString(), 10)].columns) {\n for (var j = 0; j < gridColumns[parseInt(i.toString(), 10)].columns.length; j++) {\n exportColumns[parseInt(i.toString(), 10)].columns[parseInt(j.toString(), 10)]\n .type = gridColumns[parseInt(i.toString(), 10)].columns[parseInt(j.toString(), 10)].type;\n }\n }\n else {\n exportColumns[parseInt(i.toString(), 10)].type = gridColumns[parseInt(i.toString(), 10)].type;\n }\n }\n }\n}\n/**\n * @hidden\n * @param {IGrid} grid - Defines the grid\n * @returns {void}\n */\nexport function updatecloneRow(grid) {\n var nRows = [];\n var actualRows = grid.vRows;\n for (var i = 0; i < actualRows.length; i++) {\n if (actualRows[parseInt(i.toString(), 10)].isDataRow) {\n nRows.push(actualRows[parseInt(i.toString(), 10)]);\n }\n else if (!actualRows[parseInt(i.toString(), 10)].isDataRow) {\n nRows.push(actualRows[parseInt(i.toString(), 10)]);\n if (!actualRows[parseInt(i.toString(), 10)].isExpand && actualRows[parseInt(i.toString(), 10)].isCaptionRow) {\n i += getCollapsedRowsCount(actualRows[parseInt(i.toString(), 10)], grid);\n }\n }\n }\n grid.vcRows = nRows;\n}\nvar count = 0;\n/**\n * @hidden\n * @param {Row} val - Defines the value\n * @param {IGrid} grid - Defines the grid\n * @returns {number} Returns the collapsed row count\n */\nexport function getCollapsedRowsCount(val, grid) {\n count = 0;\n var gSummary = 'gSummary';\n var total = 'count';\n var gLen = grid.groupSettings.columns.length;\n var records = 'records';\n var items = 'items';\n var value = val[\"\" + gSummary];\n var dataRowCnt = 0;\n var agrCnt = 'aggregatesCount';\n if (value === val.data[\"\" + total]) {\n if (grid.groupSettings.columns.length && !isNullOrUndefined(val[\"\" + agrCnt]) && val[\"\" + agrCnt]) {\n if (grid.groupSettings.columns.length !== 1) {\n count += (val.indent !== 0 && (value) < 2) ? (val[\"\" + gSummary] * ((gLen - val.indent) + (gLen - val.indent) * val[\"\" + agrCnt])) :\n (val[\"\" + gSummary] * ((gLen - val.indent) + (gLen - val.indent - 1) * val[\"\" + agrCnt])) + val[\"\" + agrCnt];\n }\n else if (grid.groupSettings.columns.length === 1) {\n count += (val[\"\" + gSummary] * (gLen - val.indent)) + val[\"\" + agrCnt];\n }\n }\n else if (grid.groupSettings.columns.length) {\n if (grid.groupSettings.columns.length !== 1) {\n count += val[\"\" + gSummary] * (grid.groupSettings.columns.length - val.indent);\n }\n else {\n count += val[\"\" + gSummary];\n }\n }\n return count;\n }\n else {\n for (var i = 0, len = val.data[\"\" + items].length; i < len; i++) {\n var gLevel = val.data[\"\" + items][parseInt(i.toString(), 10)];\n count += gLevel[\"\" + items].length + ((gLen !== grid.columns.length) &&\n !isNullOrUndefined(gLevel[\"\" + items][\"\" + records]) ? gLevel[\"\" + items][\"\" + records].length : 0);\n dataRowCnt += (!isNullOrUndefined(gLevel[\"\" + items][\"\" + records]) && !isNullOrUndefined(val[\"\" + agrCnt])) ? gLevel[\"\" + items][\"\" + records].length :\n gLevel[\"\" + items].length;\n if (gLevel[\"\" + items].GroupGuid && gLevel[\"\" + items].childLevels !== 0) {\n recursive(gLevel);\n }\n }\n count += val.data[\"\" + items].length;\n if (!isNullOrUndefined(val[\"\" + agrCnt])) {\n if (val[\"\" + agrCnt] && count && dataRowCnt !== 0) {\n count += ((count - dataRowCnt) * val[\"\" + agrCnt]) + val[\"\" + agrCnt];\n }\n }\n }\n return count;\n}\n/**\n * @param {Object[]} row - Defines the row\n * @returns {void}\n * @hidden\n */\nexport function recursive(row) {\n var items = 'items';\n var rCount = 'count';\n for (var j = 0, length_1 = row[\"\" + items].length; j < length_1; j++) {\n var nLevel = row[\"\" + items][parseInt(j.toString(), 10)];\n count += nLevel[\"\" + rCount];\n if (nLevel[\"\" + items].childLevels !== 0) {\n recursive(nLevel);\n }\n }\n}\n/**\n * @param {Object[]} collection - Defines the array\n * @param {Object} predicate - Defines the predicate\n * @returns {Object} Returns the object\n * @hidden\n */\nexport function iterateArrayOrObject(collection, predicate) {\n var result = [];\n for (var i = 0, len = collection.length; i < len; i++) {\n var pred = predicate(collection[parseInt(i.toString(), 10)], i);\n if (!isNullOrUndefined(pred)) {\n result.push(pred);\n }\n }\n return result;\n}\n/**\n * @param {Object[]} array - Defines the array\n * @returns {Object} Returns the object\n * @hidden\n */\nexport function iterateExtend(array) {\n var obj = [];\n for (var i = 0; i < array.length; i++) {\n obj.push(baseExtend({}, getActualProperties(array[parseInt(i.toString(), 10)]), {}, true));\n }\n return obj;\n}\n/**\n * @param {string} template - Defines the template\n * @returns {Function} Returns the function\n * @hidden\n */\nexport function templateCompiler(template) {\n if (template) {\n try {\n var validSelector = template[0] !== '<';\n if (validSelector && document.querySelectorAll(template).length) {\n return baseTemplateComplier(document.querySelector(template).innerHTML.trim());\n }\n else {\n return baseTemplateComplier(template);\n }\n }\n catch (e) {\n return baseTemplateComplier(template);\n }\n }\n return undefined;\n}\n/**\n * @param {Element} node - Defines the column\n * @param {Object} customAttributes - Defines the index\n * @returns {void}\n * @hidden\n */\nexport function setStyleAndAttributes(node, customAttributes) {\n var copyAttr = {};\n var literals = ['style', 'class'];\n //Dont touch the original object - make a copy\n baseExtend(copyAttr, customAttributes, {});\n if ('style' in copyAttr) {\n setStyleAttribute(node, copyAttr[literals[0]]);\n delete copyAttr[literals[0]];\n }\n if ('class' in copyAttr) {\n addClass([node], copyAttr[literals[1]]);\n delete copyAttr[literals[1]];\n }\n attributes(node, copyAttr);\n}\n/**\n * @param {Object} copied - Defines the column\n * @param {Object} first - Defines the inndex\n * @param {Object} second - Defines the second object\n * @param {string[]} exclude - Defines the exclude\n * @returns {Object} Returns the object\n * @hidden\n */\nexport function extend(copied, first, second, exclude) {\n var moved = baseExtend(copied, first, second);\n var values = Object.keys(moved);\n for (var i = 0; i < values.length; i++) {\n if (exclude && exclude.indexOf(values[parseInt(i.toString(), 10)]) !== -1) {\n delete moved[values[parseInt(i.toString(), 10)]];\n }\n }\n return moved;\n}\n/**\n * @param {Column[]} columnModel - Defines the column\n * @param {number} ind - Defines the inndex\n * @returns {number} - Returns the columnindex\n * @hidden\n */\nexport function setColumnIndex(columnModel, ind) {\n if (ind === void 0) { ind = 0; }\n for (var i = 0, len = columnModel.length; i < len; i++) {\n if (columnModel[parseInt(i.toString(), 10)].columns) {\n columnModel[parseInt(i.toString(), 10)].index = isNullOrUndefined(columnModel[parseInt(i.toString(), 10)].index) ? ind\n : columnModel[parseInt(i.toString(), 10)].index;\n ind++;\n ind = setColumnIndex(columnModel[parseInt(i.toString(), 10)].columns, ind);\n }\n else {\n columnModel[parseInt(i.toString(), 10)].index = isNullOrUndefined(columnModel[parseInt(i.toString(), 10)].index) ? ind\n : columnModel[parseInt(i.toString(), 10)].index;\n ind++;\n }\n }\n return ind;\n}\n/**\n * @param {Column[] | string[] | ColumnModel[]} columns - Defines the column\n * @param {boolean} autoWidth - Defines the autowidth\n * @param {IGrid} gObj - Defines the class name\n * @returns {Column} - Returns the columns\n * @hidden\n */\nexport function prepareColumns(columns, autoWidth, gObj) {\n for (var c = 0, len = columns.length; c < len; c++) {\n var column = void 0;\n if (typeof columns[parseInt(c.toString(), 10)] === 'string') {\n column = new Column({ field: columns[parseInt(c.toString(), 10)] }, gObj);\n }\n else if (!(columns[parseInt(c.toString(), 10)] instanceof Column) || columns[parseInt(c.toString(), 10)].columns) {\n if (!columns[parseInt(c.toString(), 10)].columns) {\n column = new Column(columns[parseInt(c.toString(), 10)], gObj);\n }\n else {\n columns[parseInt(c.toString(), 10)].columns = prepareColumns(columns[parseInt(c.toString(), 10)].columns, null, gObj);\n column = new Column(columns[parseInt(c.toString(), 10)], gObj);\n }\n }\n else {\n column = columns[parseInt(c.toString(), 10)];\n }\n if (column.type && column.type.toLowerCase() === 'checkbox') {\n column.allowReordering = false;\n }\n column.headerText = isNullOrUndefined(column.headerText) ? column.foreignKeyValue || column.field || '' : column.headerText;\n column.foreignKeyField = column.foreignKeyField || column.field;\n column.valueAccessor = (typeof column.valueAccessor === 'string' ? getValue(column.valueAccessor, window)\n : column.valueAccessor) || valueAccessor;\n column.width = autoWidth && isNullOrUndefined(column.width) ? 200 : column.width;\n if (isNullOrUndefined(column.visible)) {\n column.visible = true;\n }\n columns[parseInt(c.toString(), 10)] = column;\n }\n return columns;\n}\n/**\n * @param {HTMLElement} popUp - Defines the popup element\n * @param {MouseEvent | TouchEvent} e - Defines the moouse event\n * @param {string} className - Defines the class name\n * @returns {void}\n * @hidden\n */\nexport function setCssInGridPopUp(popUp, e, className) {\n var popUpSpan = popUp.querySelector('span');\n var position = popUp.parentElement.getBoundingClientRect();\n var targetPosition = e.target.getBoundingClientRect();\n popUpSpan.className = className;\n popUp.style.display = '';\n var isBottomTail = (isNullOrUndefined(e.clientY) ? e.changedTouches[0].clientY :\n e.clientY) > popUp.offsetHeight + 10;\n popUp.style.top = targetPosition.top - position.top +\n (isBottomTail ? -(popUp.offsetHeight + 10) : popUp.offsetHeight + 10) + 'px'; //10px for tail element\n popUp.style.left = getPopupLeftPosition(popUp, e, targetPosition, position.left) + 'px';\n if (isBottomTail) {\n popUp.querySelector('.e-downtail').style.display = '';\n popUp.querySelector('.e-uptail').style.display = 'none';\n }\n else {\n popUp.querySelector('.e-downtail').style.display = 'none';\n popUp.querySelector('.e-uptail').style.display = '';\n }\n}\n/**\n * @param {HTMLElement} popup - Defines the popup element\n * @param {MouseEvent | TouchEvent} e - Defines the mouse event\n * @param {Object} targetPosition - Defines the target position\n * @param {number} targetPosition.top - Defines the top position\n * @param {number} targetPosition.left - Defines the left position\n * @param {number} targetPosition.right - Defines the right position\n * @param {number} left - Defines the left position\n * @returns {number} Returns the popup left position\n * @hidden\n */\nfunction getPopupLeftPosition(popup, e, targetPosition, left) {\n var width = popup.offsetWidth / 2;\n var x = getPosition(e).x;\n if (x - targetPosition.left < width) {\n return targetPosition.left - left;\n }\n else if (targetPosition.right - x < width) {\n return targetPosition.right - left - width * 2;\n }\n else {\n return x - left - width;\n }\n}\n/**\n * @param {Object} obj - Defines the object\n * @returns {Object} Returns the Properties\n * @hidden\n */\nexport function getActualProperties(obj) {\n if (obj instanceof ChildProperty) {\n return getValue('properties', obj);\n }\n else {\n return obj;\n }\n}\n/**\n * @param {Element} elem - Defines the element\n * @param {string} selector - Defines the string selector\n * @param {boolean} isID - Defines the isID\n * @returns {Element} Returns the element\n * @hidden\n */\nexport function parentsUntil(elem, selector, isID) {\n var parent = elem;\n while (parent) {\n if (isID ? parent.id === selector : parent.classList.contains(selector)) {\n break;\n }\n parent = parent.parentElement;\n }\n return parent;\n}\n/**\n * @param {Element} element - Defines the element\n * @param {Element} elements - Defines the element\n * @returns {number} Returns the element index\n * @hidden\n */\nexport function getElementIndex(element, elements) {\n var index = -1;\n for (var i = 0, len = elements.length; i < len; i++) {\n if (elements[parseInt(i.toString(), 10)].isEqualNode(element)) {\n index = i;\n break;\n }\n }\n return index;\n}\n/**\n * @param {Object} value - Defines the value\n * @param {Object} collection - defines the collection\n * @returns {number} Returns the array\n * @hidden\n */\nexport function inArray(value, collection) {\n for (var i = 0, len = collection.length; i < len; i++) {\n if (collection[parseInt(i.toString(), 10)] === value) {\n return i;\n }\n }\n return -1;\n}\n/**\n * @param {Object} collection - Defines the collection\n * @returns {Object} Returns the object\n * @hidden\n */\nexport function getActualPropFromColl(collection) {\n var coll = [];\n for (var i = 0, len = collection.length; i < len; i++) {\n // eslint-disable-next-line no-prototype-builtins\n if (collection[parseInt(i.toString(), 10)].hasOwnProperty('properties')) {\n coll.push(collection[parseInt(i.toString(), 10)].properties);\n }\n else {\n coll.push(collection[parseInt(i.toString(), 10)]);\n }\n }\n return coll;\n}\n/**\n * @param {Element} target - Defines the target element\n * @param {string} selector - Defines the selector\n * @returns {void}\n * @hidden\n */\nexport function removeElement(target, selector) {\n var elements = [].slice.call(target.querySelectorAll(selector));\n for (var i = 0; i < elements.length; i++) {\n remove(elements[parseInt(i.toString(), 10)]);\n }\n}\n/**\n * @param {MouseEvent | TouchEvent} e Defines the mouse event\n * @returns {IPosition} Returns the position\n * @hidden\n */\nexport function getPosition(e) {\n var position = {};\n position.x = (isNullOrUndefined(e.clientX) ? e.changedTouches[0].clientX :\n e.clientX);\n position.y = (isNullOrUndefined(e.clientY) ? e.changedTouches[0].clientY :\n e.clientY);\n return position;\n}\nvar uid = 0;\n/**\n * @param {string} prefix - Defines the prefix string\n * @returns {string} Returns the uid\n * @hidden\n */\nexport function getUid(prefix) {\n return prefix + uid++;\n}\n/**\n * @param {Element | DocumentFragment} elem - Defines the element\n * @param {Element[] | NodeList} children - Defines the Element\n * @returns {Element} Returns the element\n * @hidden\n */\nexport function appendChildren(elem, children) {\n for (var i = 0, len = children.length; i < len; i++) {\n if (len === children.length) {\n elem.appendChild(children[parseInt(i.toString(), 10)]);\n }\n else {\n elem.appendChild(children[0]);\n }\n }\n return elem;\n}\n/**\n * @param {Element} elem - Defines the element\n * @param {string} selector - Defines the selector\n * @param {boolean} isID - Defines isID\n * @returns {Element} Return the element\n * @hidden\n */\nexport function parents(elem, selector, isID) {\n var parent = elem;\n var parents = [];\n while (parent) {\n if (isID ? parent.id === selector : parent.classList.contains(selector)) {\n parents.push(parent);\n }\n parent = parent.parentElement;\n }\n return parents;\n}\n/**\n * @param {AggregateType | string} type - Defines the type\n * @param {Object} data - Defines the data\n * @param {AggregateColumnModel} column - Defines the column\n * @param {Object} context - Defines the context\n * @returns {Object} Returns the calculated aggragate\n * @hidden\n */\nexport function calculateAggregate(type, data, column, context) {\n if (type === 'Custom') {\n var temp = column.customAggregate;\n if (typeof temp === 'string') {\n temp = getValue(temp, window);\n }\n return temp ? temp.call(context, data, column) : '';\n }\n return (column.field in data || data instanceof Array) ? DataUtil.aggregates[type.toLowerCase()](data, column.field) : null;\n}\n/** @hidden */\nvar scrollWidth = null;\n/** @hidden\n * @returns {number} - Returns the scrollbarwidth\n */\nexport function getScrollBarWidth() {\n if (scrollWidth !== null) {\n return scrollWidth;\n }\n var divNode = document.createElement('div');\n var value = 0;\n divNode.style.cssText = 'width:100px;height: 100px;overflow: scroll;position: absolute;top: -9999px;';\n document.body.appendChild(divNode);\n value = (divNode.offsetWidth - divNode.clientWidth) | 0;\n document.body.removeChild(divNode);\n return scrollWidth = value;\n}\n/** @hidden */\nvar rowHeight;\n/**\n * @param {HTMLElement} element - Defines the element\n * @returns {number} Returns the roww height\n * @hidden\n */\nexport function getRowHeight(element) {\n if (rowHeight !== undefined) {\n return rowHeight;\n }\n var table = createElement('table', { className: literals.table, styles: 'visibility: hidden', attrs: { role: 'grid' } });\n table.innerHTML = '';\n element.appendChild(table);\n var rect = table.querySelector('td').getBoundingClientRect();\n element.removeChild(table);\n rowHeight = Math.ceil(rect.height);\n return rowHeight;\n}\n/** @hidden */\nvar actualRowHeight;\n/**\n * @param {HTMLElement} element - Defines the HTMl element\n * @returns {number} Returns the row height\n * @hidden\n */\nexport function getActualRowHeight(element) {\n if (actualRowHeight !== undefined) {\n return rowHeight;\n }\n var table = createElement('table', { className: literals.table, styles: 'visibility: hidden', attrs: { role: 'grid' } });\n table.innerHTML = '';\n element.appendChild(table);\n var rect = table.querySelector('tr').getBoundingClientRect();\n element.removeChild(table);\n return rect.height;\n}\n/**\n * @param {string} field - Defines the field\n * @returns {boolean} - Returns is complex field\n * @hidden\n */\nexport function isComplexField(field) {\n return field.split('.').length > 1;\n}\n/**\n * @param {string} field - Defines the field\n * @returns {string} - Returns the get complex field ID\n * @hidden\n */\nexport function getComplexFieldID(field) {\n if (field === void 0) { field = ''; }\n return field.replace(/\\./g, '___');\n}\n/**\n * @param {string} field - Defines the field\n * @returns {string} - Returns the set complex field ID\n * @hidden\n */\nexport function setComplexFieldID(field) {\n if (field === void 0) { field = ''; }\n return field.replace(/___/g, '.');\n}\n/**\n * @param {Column} col - Defines the column\n * @param {string} type - Defines the type\n * @param {Element} elem - Defines th element\n * @returns {boolean} Returns is Editable\n * @hidden\n */\nexport function isEditable(col, type, elem) {\n var row = parentsUntil(elem, literals.row);\n var isOldRow = !row ? true : row && !row.classList.contains('e-insertedrow');\n if (type === 'beginEdit' && isOldRow) {\n if (col.isIdentity || col.isPrimaryKey || !col.allowEditing) {\n return false;\n }\n return true;\n }\n else if (type === 'add' && col.isIdentity) {\n return false;\n }\n else {\n if (isOldRow && !col.allowEditing && !col.isIdentity && !col.isPrimaryKey) {\n return false;\n }\n return true;\n }\n}\n/**\n * @param {IGrid} inst - Defines the IGrid\n * @returns {boolean} Returns is action prevent in boolean\n * @hidden\n */\nexport function isActionPrevent(inst) {\n var dlg = select('#' + inst.element.id + 'EditConfirm', inst.element);\n return inst.editSettings.mode === 'Batch' &&\n (selectAll('.e-updatedtd', inst.element).length) && inst.editSettings.showConfirmDialog &&\n (dlg ? dlg.classList.contains('e-popup-close') : true);\n}\n/**\n * @param {any} elem - Defines the element\n * @param {boolean} action - Defines the boolean for action\n * @returns {void}\n * @hidden\n */\n// eslint-disable-next-line\nexport function wrap(elem, action) {\n var clName = 'e-wrap';\n elem = elem instanceof Array ? elem : [elem];\n for (var i = 0; i < elem.length; i++) {\n if (action) {\n elem[parseInt(i.toString(), 10)].classList.add(clName);\n }\n else {\n elem[parseInt(i.toString(), 10)].classList.remove(clName);\n }\n }\n}\n/**\n * @param {ServiceLocator} serviceLocator - Defines the service locator\n * @param {Column} column - Defines the column\n * @returns {void}\n * @hidden\n */\nexport function setFormatter(serviceLocator, column) {\n var fmtr = serviceLocator.getService('valueFormatter');\n var format = 'format';\n var args;\n if (column.type === 'date' || column.type === 'datetime') {\n args = { type: column.type, skeleton: column.format };\n if ((typeof (column.format) === 'string') && column.format !== 'yMd') {\n args[\"\" + format] = column.format;\n }\n }\n switch (column.type) {\n case 'date':\n column.setFormatter(fmtr.getFormatFunction(args));\n column.setParser(fmtr.getParserFunction(args));\n break;\n case 'datetime':\n column.setFormatter(fmtr.getFormatFunction(args));\n column.setParser(fmtr.getParserFunction(args));\n break;\n case 'number':\n column.setFormatter(fmtr.getFormatFunction({ format: column.format }));\n column.setParser(fmtr.getParserFunction({ format: column.format }));\n break;\n }\n}\n/**\n * @param {Element} cells - Defines the cell element\n * @param {boolean} add - Defines the add\n * @param {string} args - Defines the args\n * @returns {void}\n * @hidden\n */\nexport function addRemoveActiveClasses(cells, add) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n for (var i = 0, len = cells.length; i < len; i++) {\n if (add) {\n classList(cells[parseInt(i.toString(), 10)], args.slice(), []);\n cells[parseInt(i.toString(), 10)].setAttribute('aria-selected', 'true');\n }\n else {\n classList(cells[parseInt(i.toString(), 10)], [], args.slice());\n cells[parseInt(i.toString(), 10)].removeAttribute('aria-selected');\n }\n }\n}\n/**\n * @param {string} result - Defines th string\n * @returns {string} Returns the distinct staing values\n * @hidden\n */\nexport function distinctStringValues(result) {\n var temp = {};\n var res = [];\n for (var i = 0; i < result.length; i++) {\n if (!(result[parseInt(i.toString(), 10)] in temp)) {\n res.push(result[parseInt(i.toString(), 10)].toString());\n temp[result[parseInt(i.toString(), 10)]] = 1;\n }\n }\n return res;\n}\n/**\n * @param {Element} target - Defines the target\n * @param {Dialog} dialogObj - Defines the dialog\n * @returns {void}\n * @hidden\n */\nexport function getFilterMenuPostion(target, dialogObj) {\n var elementVisible = dialogObj.element.style.display;\n dialogObj.element.style.display = 'block';\n var dlgWidth = dialogObj.width;\n var newpos = calculateRelativeBasedPosition(target, dialogObj.element);\n dialogObj.element.style.display = elementVisible;\n dialogObj.element.style.top = (newpos.top + target.getBoundingClientRect().height) - 5 + 'px';\n var leftPos = ((newpos.left - dlgWidth) + target.clientWidth);\n if (leftPos < 1) {\n dialogObj.element.style.left = (dlgWidth + leftPos) - 16 + 'px'; // right calculation\n }\n else {\n dialogObj.element.style.left = leftPos + -4 + 'px';\n }\n}\n/**\n * @param {Object} args - Defines the args\n * @param {Popup} args.popup - Defines the args for popup\n * @param {Dialog} dialogObj - Defines the dialog obj\n * @returns {void}\n * @hidden\n */\nexport function getZIndexCalcualtion(args, dialogObj) {\n args.popup.element.style.zIndex = (dialogObj.zIndex + 1).toString();\n}\n/**\n * @param {Element} elem - Defines the element\n * @returns {void}\n * @hidden\n */\nexport function toogleCheckbox(elem) {\n var span = elem.querySelector('.e-frame');\n var input = span.previousSibling;\n if (span.classList.contains('e-check')) {\n input.checked = false;\n classList(span, ['e-uncheck'], ['e-check']);\n }\n else {\n input.checked = true;\n classList(span, ['e-check'], ['e-uncheck']);\n }\n}\n/**\n * @param {HTMLInputElement} elem - Defines the element\n * @param {boolean} checked - Defines is checked\n * @returns {void}\n * @hidden\n */\nexport function setChecked(elem, checked) {\n elem.checked = checked;\n}\n/**\n * @param {string} uid - Defines the string\n * @param {Element} elem - Defines the Element\n * @param {string} className - Defines the classname\n * @returns {Element} Returns the box wrap\n * @hidden\n */\nexport function createCboxWithWrap(uid, elem, className) {\n var div = createElement('div', { className: className });\n div.appendChild(elem);\n div.setAttribute('uid', uid);\n return div;\n}\n/**\n * @param {Element} elem - Defines the element\n * @param {boolean} checked - Defines is checked\n * @returns {void}\n * @hidden\n */\nexport function removeAddCboxClasses(elem, checked) {\n removeClass([elem], ['e-check', 'e-stop', 'e-uncheck']);\n if (checked) {\n elem.classList.add('e-check');\n }\n else {\n elem.classList.add('e-uncheck');\n }\n}\n/**\n * Refresh the Row model's foreign data.\n *\n * @param {IRow} row - Grid Row model object.\n * @param {Column[]} columns - Foreign columns array.\n * @param {Object} data - Updated Row data.\n * @returns {void}\n * @hidden\n */\nexport function refreshForeignData(row, columns, data) {\n for (var i = 0; i < columns.length; i++) {\n setValue(columns[parseInt(i.toString(), 10)].field, getForeignData(columns[parseInt(i.toString(), 10)], data), row.foreignKeyData);\n }\n var cells = row.cells;\n for (var i = 0; i < cells.length; i++) {\n if (cells[parseInt(i.toString(), 10)].isForeignKey) {\n setValue('foreignKeyData', getValue(cells[parseInt(i.toString(), 10)].column.field, row.foreignKeyData), cells[parseInt(i.toString(), 10)]);\n }\n }\n}\n/**\n * Get the foreign data for the corresponding cell value.\n *\n * @param {Column} column - Foreign Key column\n * @param {Object} data - Row data.\n * @param {string | number} lValue - cell value.\n * @param {Object} foreignKeyData - foreign data source.\n * @returns {Object} Returns the object\n * @hidden\n */\nexport function getForeignData(column, data, lValue, foreignKeyData) {\n var fField = column.foreignKeyField;\n var key = (!isNullOrUndefined(lValue) ? lValue : valueAccessor(column.field, data, column));\n key = isNullOrUndefined(key) ? '' : key;\n var query = new Query();\n var fdata = foreignKeyData || ((column.dataSource instanceof DataManager) && column.dataSource.dataSource.json.length ?\n column.dataSource.dataSource.json : column.columnData);\n if (key.getDay) {\n query.where(getDatePredicate({ field: fField, operator: 'equal', value: key, matchCase: false }));\n }\n else {\n query.where(fField, '==', key, false);\n }\n return new DataManager(fdata).executeLocal(query);\n}\n/**\n * To use to get the column's object by the foreign key value.\n *\n * @param {string} foreignKeyValue - Defines ForeignKeyValue.\n * @param {Column[]} columns - Array of column object.\n * @returns {Column} Returns the element\n * @hidden\n */\nexport function getColumnByForeignKeyValue(foreignKeyValue, columns) {\n var column;\n return columns.some(function (col) {\n column = col;\n return col.foreignKeyValue === foreignKeyValue;\n }) && column;\n}\n/**\n * @param {PredicateModel} filterObject - Defines the filterObject\n * @param {string} type - Defines the type\n * @returns {Predicate} Returns the Predicate\n * @hidden\n */\nexport function getDatePredicate(filterObject, type) {\n var datePredicate;\n var prevDate;\n var nextDate;\n var prevObj = baseExtend({}, getActualProperties(filterObject));\n var nextObj = baseExtend({}, getActualProperties(filterObject));\n if (isNullOrUndefined(filterObject.value) || filterObject.value === '') {\n datePredicate = new Predicate(prevObj.field, prevObj.operator, prevObj.value, false);\n return datePredicate;\n }\n var value = new Date(filterObject.value);\n if (filterObject.operator === 'equal' || filterObject.operator === 'notequal') {\n if (type === 'datetime') {\n prevDate = new Date(value.setSeconds(value.getSeconds() - 1));\n nextDate = new Date(value.setSeconds(value.getSeconds() + 2));\n filterObject.value = new Date(value.setSeconds(nextDate.getSeconds() - 1));\n }\n else {\n prevDate = new Date(value.setHours(0) - 1);\n nextDate = new Date(value.setHours(24));\n }\n prevObj.value = prevDate;\n nextObj.value = nextDate;\n if (filterObject.operator === 'equal') {\n prevObj.operator = 'greaterthan';\n nextObj.operator = 'lessthan';\n }\n else if (filterObject.operator === 'notequal') {\n prevObj.operator = 'lessthanorequal';\n nextObj.operator = 'greaterthanorequal';\n }\n var predicateSt = new Predicate(prevObj.field, prevObj.operator, prevObj.value, false);\n var predicateEnd = new Predicate(nextObj.field, nextObj.operator, nextObj.value, false);\n datePredicate = filterObject.operator === 'equal' ? predicateSt.and(predicateEnd) : predicateSt.or(predicateEnd);\n }\n else {\n if (type === 'date' && (filterObject.operator === 'lessthanorequal' || filterObject.operator === 'greaterthan')) {\n prevObj.value = new Date(value.setHours(24) - 1);\n }\n if (typeof (prevObj.value) === 'string') {\n prevObj.value = new Date(prevObj.value);\n }\n var predicates = new Predicate(prevObj.field, prevObj.operator, prevObj.value, false);\n datePredicate = predicates;\n }\n if (filterObject.setProperties) {\n filterObject.setProperties({ ejpredicate: datePredicate }, true);\n }\n else {\n filterObject.ejpredicate = datePredicate;\n }\n return datePredicate;\n}\n/**\n * @param {Element} ele - Defines the element\n * @param {number} frzCols - Defines the frozen columns\n * @param {IGrid} gObj - Defines the IGrid\n * @returns {Element} Returns the element\n * @hidden\n */\nexport function renderMovable(ele, frzCols, gObj) {\n frzCols = frzCols && gObj && gObj.isRowDragable() ? frzCols + 1 : frzCols;\n var mEle = ele.cloneNode(true);\n for (var i = 0; i < frzCols; i++) {\n mEle.removeChild(mEle.children[0]);\n }\n for (var i = frzCols, len = ele.childElementCount; i < len; i++) {\n ele.removeChild(ele.children[ele.childElementCount - 1]);\n }\n return mEle;\n}\n/**\n * @param {IGrid} grid - Defines the IGrid\n * @returns {boolean} Returns true if group adaptive is true\n * @hidden\n */\nexport function isGroupAdaptive(grid) {\n return grid.enableVirtualization && grid.groupSettings.columns.length > 0 && grid.isVirtualAdaptive &&\n !grid.groupSettings.enableLazyLoading;\n}\n/**\n * @param {string} field - Defines the Field\n * @param {Object} object - Defines the objec\n * @returns {any} Returns the object\n * @hidden\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function getObject(field, object) {\n if (field === void 0) { field = ''; }\n if (field) {\n var value = object;\n var splits = field.split('.');\n for (var i = 0; i < splits.length && !isNullOrUndefined(value); i++) {\n value = value[splits[parseInt(i.toString(), 10)]];\n if (isUndefined(value)) {\n var newCase = splits[parseInt(i.toString(), 10)].charAt(0).toUpperCase()\n + splits[parseInt(i.toString(), 10)].slice(1);\n value = object[\"\" + newCase] || object[(\"\" + newCase).charAt(0).toLowerCase() + (\"\" + newCase).slice(1)];\n }\n }\n return value;\n }\n}\n/**\n * @param {string | Object} format - defines the format\n * @param {string} colType - Defines the coltype\n * @returns {string} Returns the custom Data format\n * @hidden\n */\nexport function getCustomDateFormat(format, colType) {\n var intl = new Internationalization();\n var formatvalue;\n var formatter = 'format';\n var type = 'type';\n if (colType === 'date') {\n formatvalue = typeof (format) === 'object' ?\n intl.getDatePattern({ type: format[\"\" + type] ? format[\"\" + type] : 'date', format: format[\"\" + formatter] }, false) :\n intl.getDatePattern({ type: 'dateTime', skeleton: format }, false);\n }\n else {\n formatvalue = typeof (format) === 'object' ?\n intl.getDatePattern({ type: format[\"\" + type] ? format[\"\" + type] : 'dateTime', format: format[\"\" + formatter] }, false) :\n intl.getDatePattern({ type: 'dateTime', skeleton: format }, false);\n }\n return formatvalue;\n}\n/**\n * @param {IGrid} gObj - Defines the IGrid\n * @param {HierarchyGridPrintMode} hierarchyPrintMode - Defines the hierarchyPrintMode\n * @returns {Object} Returns the object\n * @hidden\n */\nexport function getExpandedState(gObj, hierarchyPrintMode) {\n var rows = gObj.getRowsObject();\n var obj = {};\n for (var _i = 0, rows_1 = rows; _i < rows_1.length; _i++) {\n var row = rows_1[_i];\n if (row.isExpand && !row.isDetailRow) {\n var index = gObj.allowPaging && gObj.printMode === 'AllPages' ? row.index +\n (gObj.pageSettings.currentPage * gObj.pageSettings.pageSize) - gObj.pageSettings.pageSize : row.index;\n obj[parseInt(index.toString(), 10)] = {};\n obj[parseInt(index.toString(), 10)].isExpand = true;\n obj[parseInt(index.toString(), 10)].gridModel = getPrintGridModel(row.childGrid, hierarchyPrintMode);\n obj[parseInt(index.toString(), 10)].gridModel.query = gObj.childGrid.query;\n }\n }\n return obj;\n}\n/**\n * @param {IGrid} gObj - Defines the grid objct\n * @param {HierarchyGridPrintMode} hierarchyPrintMode - Defines the hierarchyPrintMode\n * @returns {IGrid} Returns the IGrid\n * @hidden\n */\nexport function getPrintGridModel(gObj, hierarchyPrintMode) {\n if (hierarchyPrintMode === void 0) { hierarchyPrintMode = 'Expanded'; }\n var printGridModel = {};\n if (!gObj) {\n return printGridModel;\n }\n var isFrozen = gObj.isFrozenGrid() && !gObj.getFrozenColumns();\n for (var _i = 0, _a = Print.printGridProp; _i < _a.length; _i++) {\n var key = _a[_i];\n if (key === 'columns') {\n printGridModel[\"\" + key] = getActualPropFromColl(isFrozen ? gObj.getColumns() : gObj[\"\" + key]);\n }\n else if (key === 'allowPaging') {\n printGridModel[\"\" + key] = gObj.printMode === 'CurrentPage';\n }\n else {\n printGridModel[\"\" + key] = getActualProperties(gObj[\"\" + key]);\n }\n }\n printGridModel['enableHover'] = false;\n if (gObj.childGrid && hierarchyPrintMode !== 'None') {\n printGridModel.expandedRows = getExpandedState(gObj, hierarchyPrintMode);\n }\n return printGridModel;\n}\n/**\n * @param {Object} copied - Defines the copied object\n * @param {Object} first - Defines the first object\n * @param {Object} second - Defines the second object\n * @param {boolean} deep - Defines the deep\n * @returns {Object} Returns the extended object\n * @hidden\n */\nexport function extendObjWithFn(copied, first, second, deep) {\n var res = copied || {};\n var len = arguments.length;\n if (deep) {\n len = len - 1;\n }\n for (var i = 1; i < len; i++) {\n // eslint-disable-next-line prefer-rest-params\n if (!arguments[parseInt(i.toString(), 10)]) {\n continue;\n }\n // eslint-disable-next-line prefer-rest-params\n var obj1 = arguments[parseInt(i.toString(), 10)];\n var keys = Object.keys(Object.getPrototypeOf(obj1)).length ?\n Object.keys(obj1).concat(getPrototypesOfObj(obj1)) : Object.keys(obj1);\n for (var i_1 = 0; i_1 < keys.length; i_1++) {\n var source = res[keys[parseInt(i_1.toString(), 10)]];\n var cpy = obj1[keys[parseInt(i_1.toString(), 10)]];\n var cln = void 0;\n if (deep && (isObject(cpy) || Array.isArray(cpy))) {\n if (isObject(cpy)) {\n cln = source ? source : {};\n res[keys[parseInt(i_1.toString(), 10)]] = baseExtend({}, cln, cpy, deep);\n }\n else {\n cln = source ? source : [];\n res[keys[parseInt(i_1.toString(), 10)]] = baseExtend([], cln, cpy, deep);\n }\n }\n else {\n res[keys[parseInt(i_1.toString(), 10)]] = cpy;\n }\n }\n }\n return res;\n}\n/**\n * @param {Object} obj - Defines the obj\n * @returns {string[]} Returns the string\n * @hidden\n */\nfunction getPrototypesOfObj(obj) {\n var keys = [];\n while (Object.getPrototypeOf(obj) && Object.keys(Object.getPrototypeOf(obj)).length) {\n keys = keys.concat(Object.keys(Object.getPrototypeOf(obj)));\n obj = Object.getPrototypeOf(obj);\n }\n return keys;\n}\n/**\n * @param {Column[]} column - Defines the Column\n * @returns {number} Returns the column Depth\n * @hidden\n */\nexport function measureColumnDepth(column) {\n var max = 0;\n for (var i = 0; i < column.length; i++) {\n var depth = checkDepth(column[parseInt(i.toString(), 10)], 0);\n if (max < depth) {\n max = depth;\n }\n }\n return max + 1;\n}\n/**\n * @param {Column} col - Defines the Column\n * @param {number} index - Defines the index\n * @returns {number} Returns the depth\n * @hidden\n */\nexport function checkDepth(col, index) {\n var max = index;\n var indices = [];\n if (col.columns) {\n index++;\n for (var i = 0; i < col.columns.length; i++) {\n indices[parseInt(i.toString(), 10)] = checkDepth(col.columns[parseInt(i.toString(), 10)], index);\n }\n for (var j = 0; j < indices.length; j++) {\n if (max < indices[parseInt(j.toString(), 10)]) {\n max = indices[parseInt(j.toString(), 10)];\n }\n }\n index = max;\n }\n return index;\n}\n/**\n * @param {IGrid} gObj - Defines the IGrid\n * @param {PredicateModel[]} filteredCols - Defines the PredicateModel\n * @returns {void}\n * @hidden\n */\nexport function refreshFilteredColsUid(gObj, filteredCols) {\n for (var i = 0; i < filteredCols.length; i++) {\n filteredCols[parseInt(i.toString(), 10)].uid = filteredCols[parseInt(i.toString(), 10)].isForeignKey ?\n getColumnByForeignKeyValue(filteredCols[parseInt(i.toString(), 10)].field, gObj.getForeignKeyColumns()).uid\n : gObj.enableColumnVirtualization ? getColumnModelByFieldName(gObj, filteredCols[parseInt(i.toString(), 10)].field).uid\n : gObj.getColumnByField(filteredCols[parseInt(i.toString(), 10)].field).uid;\n }\n}\n/** @hidden */\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport var Global;\n(function (Global) {\n // eslint-disable-next-line prefer-const\n Global.timer = null;\n})(Global || (Global = {}));\n/**\n * @param {Element} element - Defines the element\n * @returns {Object} Returns the transform values\n * @hidden\n */\nexport function getTransformValues(element) {\n var style = document.defaultView.getComputedStyle(element, null);\n var transformV = style.getPropertyValue('transform');\n var replacedTv = transformV.replace(/,/g, '');\n var translateX = parseFloat((replacedTv).split(' ')[4]);\n var translateY = parseFloat((replacedTv).split(' ')[5]);\n return { width: translateX, height: translateY };\n}\n/**\n * @param {Element} rootElement - Defines the root Element\n * @param {Element} element - Defines the element\n * @returns {void}\n * @hidden\n */\nexport function applyBiggerTheme(rootElement, element) {\n if (rootElement.classList.contains('e-bigger')) {\n element.classList.add('e-bigger');\n }\n}\n/**\n * @param {HTMLElement} mTD - Defines the movable TD\n * @param {HTMLElement} fTD - Defines the Frozen TD\n * @returns {void}\n * @hidden\n */\nexport function alignFrozenEditForm(mTD, fTD) {\n if (mTD && fTD) {\n var mHeight = closest(mTD, '.' + literals.row).getBoundingClientRect().height;\n var fHeight = closest(fTD, '.' + literals.row).getBoundingClientRect().height;\n if (mHeight > fHeight) {\n fTD.style.height = mHeight + 'px';\n }\n else {\n mTD.style.height = fHeight + 'px';\n }\n }\n}\n/**\n * @param {Element} row - Defines row element\n * @param {IGrid} gridObj - Defines grid object\n * @returns {boolean} Returns isRowEnteredInGrid\n * @hidden\n */\nexport function ensureLastRow(row, gridObj) {\n var cntOffset = gridObj.getContent().firstElementChild.offsetHeight;\n return row && row.getBoundingClientRect().top > cntOffset;\n}\n/**\n * @param {Element} row - Defines row element\n * @param {number} rowTop - Defines row top number\n * @returns {boolean} Returns first row is true\n * @hidden\n */\nexport function ensureFirstRow(row, rowTop) {\n return row && row.getBoundingClientRect().top < rowTop;\n}\n/**\n * @param {number} index - Defines index\n * @param {IGrid} gObj - Defines grid object\n * @returns {boolean} Returns isRowEnteredInGrid\n * @hidden\n */\nexport function isRowEnteredInGrid(index, gObj) {\n var rowHeight = gObj.getRowHeight();\n var startIndex = gObj.getContent().firstElementChild.scrollTop / rowHeight;\n var endIndex = startIndex + (gObj.getContent().firstElementChild.offsetHeight / rowHeight);\n return index < endIndex && index > startIndex;\n}\n/**\n * @param {IGrid} gObj - Defines the grid object\n * @param {Object} data - Defines the query\n * @returns {number} Returns the edited data index\n * @hidden\n */\nexport function getEditedDataIndex(gObj, data) {\n var keyField = gObj.getPrimaryKeyFieldNames()[0];\n var dataIndex;\n gObj.getCurrentViewRecords().filter(function (e, index) {\n if (keyField.includes('.')) {\n var currentValue = getObject(keyField, e);\n var originalValue = getObject(keyField, data);\n if (currentValue === originalValue) {\n dataIndex = index;\n }\n }\n else {\n if (e[\"\" + keyField] === data[\"\" + keyField]) {\n dataIndex = index;\n }\n }\n });\n return dataIndex;\n}\n/**\n * @param {Object} args - Defines the argument\n * @param {Query} query - Defines the query\n * @returns {FilterStateObj} Returns the filter state object\n * @hidden\n */\nexport function eventPromise(args, query) {\n var state = getStateEventArgument(query);\n var def = new Deferred();\n state.dataSource = def.resolve;\n state.action = args;\n return { state: state, deffered: def };\n}\n/**\n * @param {Query} query - Defines the query\n * @returns {Object} Returns the state event argument\n * @hidden\n */\nexport function getStateEventArgument(query) {\n var adaptr = new UrlAdaptor();\n var dm = new DataManager({ url: '', adaptor: new UrlAdaptor });\n var state = adaptr.processQuery(dm, query);\n var data = JSON.parse(state.data);\n return data;\n}\n/**\n * @param {IGrid} gObj - Defines the Igrid\n * @returns {boolean} Returns the ispercentageWidth\n * @hidden\n */\nexport function ispercentageWidth(gObj) {\n var columns = gObj.getVisibleColumns();\n var percentageCol = 0;\n var undefinedWidthCol = 0;\n for (var i = 0; i < columns.length; i++) {\n if (isUndefined(columns[parseInt(i.toString(), 10)].width)) {\n undefinedWidthCol++;\n }\n else if (columns[parseInt(i.toString(), 10)].width.toString().indexOf('%') !== -1) {\n percentageCol++;\n }\n }\n return (gObj.width === 'auto' || typeof (gObj.width) === 'string' && gObj.width.indexOf('%') !== -1) &&\n !gObj.groupSettings.showGroupedColumn && gObj.groupSettings.columns.length\n && percentageCol && !undefinedWidthCol;\n}\n/**\n * @param {IGrid} gObj - Defines the IGrid\n * @param {Row[]} rows - Defines the row\n * @param {HTMLTableRowElement[]} rowElms - Row elements\n * @param {number} index - Row index\n * @param {number} startRowIndex - Start Row Index\n * @returns {void}\n * @hidden\n */\nexport function resetRowIndex(gObj, rows, rowElms, index, startRowIndex) {\n var startIndex = index ? index : 0;\n for (var i = startRowIndex ? startRowIndex : 0; i < rows.length; i++) {\n if (rows[parseInt(i.toString(), 10)].isDataRow) {\n rows[parseInt(i.toString(), 10)].index = startIndex;\n rows[parseInt(i.toString(), 10)].isAltRow = gObj.enableAltRow ? startIndex % 2 !== 0 : false;\n rowElms[parseInt(i.toString(), 10)].setAttribute(literals.dataRowIndex, startIndex.toString());\n rowElms[parseInt(i.toString(), 10)].setAttribute(literals.ariaRowIndex, (startIndex + 1).toString());\n if (rows[parseInt(i.toString(), 10)].isAltRow) {\n rowElms[parseInt(i.toString(), 10)].classList.add('e-altrow');\n }\n else {\n rowElms[parseInt(i.toString(), 10)].classList.remove('e-altrow');\n }\n for (var j = 0; j < rowElms[parseInt(i.toString(), 10)].cells.length; j++) {\n rowElms[parseInt(i.toString(), 10)].cells[parseInt(j.toString(), 10)].setAttribute('index', startIndex.toString());\n }\n startIndex++;\n }\n }\n if (!rows.length) {\n gObj.renderModule.emptyRow(true);\n }\n}\n/**\n * @param {IGrid} gObj - Defines the grid object\n * @param {Object} changes - Defines the changes\n * @param {string} type - Defines the type\n * @param {string} keyField - Defines the keyfield\n * @returns {void}\n * @hidden\n */\nexport function compareChanges(gObj, changes, type, keyField) {\n var newArray = gObj.dataToBeUpdated[\"\" + type].concat(changes[\"\" + type]).reduce(function (r, o) {\n r[o[\"\" + keyField]] = r[o[\"\" + keyField]] === undefined ? o : Object.assign(r[o[\"\" + keyField]], o);\n return r;\n }, {});\n gObj.dataToBeUpdated[\"\" + type] = Object.keys(newArray).map(function (k) { return newArray[\"\" + k]; });\n}\n/**\n * @param {IGrid} gObj - Defines the grid object\n * @returns {void}\n * @hidden\n */\nexport function setRowElements(gObj) {\n if (gObj.isFrozenGrid()) {\n (gObj).contentModule.rowElements =\n [].slice.call(gObj.element.querySelectorAll('.e-movableheader .e-row, .e-movablecontent .e-row'));\n var cls = gObj.getFrozenMode() === literals.leftRight ? '.e-frozen-left-header .e-row, .e-frozen-left-content .e-row'\n : '.e-frozenheader .e-row, .e-frozencontent .e-row';\n (gObj).contentModule.freezeRowElements =\n [].slice.call(gObj.element.querySelectorAll(cls));\n if (gObj.getFrozenMode() === literals.leftRight) {\n gObj.contentModule.frozenRightRowElements =\n [].slice.call(gObj.element.querySelectorAll('.e-frozen-right-header .e-row, .e-frozen-right-content .e-row'));\n }\n }\n else {\n (gObj).contentModule.rowElements =\n [].slice.call(gObj.element.querySelectorAll('.e-row:not(.e-addedrow)'));\n }\n}\n/**\n * @param {IGrid} gObj - Defines the grid object\n * @param {Cell} cells - Defines the callback function\n * @param {freezeTable} tableName - Defines the row\n * @returns {Cell[]} Returns the cell\n * @hidden\n */\nexport function splitFrozenRowObjectCells(gObj, cells, tableName) {\n var left = gObj.getFrozenLeftCount();\n var movable = gObj.getMovableColumnsCount();\n var right = gObj.getFrozenRightColumnsCount();\n var frozenMode = gObj.getFrozenMode();\n var drag = gObj.isRowDragable() ? 1 : 0;\n var rightIndex = frozenMode === 'Right' ? left + movable : left + movable + drag;\n var mvblIndex = frozenMode === 'Right' ? left : left + drag;\n var mvblEndIdx = frozenMode === 'Right' ? cells.length - right - drag\n : right ? cells.length - right : cells.length;\n if (tableName === literals.frozenLeft) {\n cells = cells.slice(0, left ? left + drag : cells.length);\n }\n else if (tableName === literals.frozenRight) {\n cells = cells.slice(rightIndex, cells.length);\n }\n else if (tableName === 'movable') {\n cells = cells.slice(mvblIndex, mvblEndIdx);\n }\n return cells;\n}\n/**\n * @param {IGrid} gObj - Defines the grid object.\n * @param {boolean} visibleOnly - Defines to return only visible columns.\n * @returns {{frozenLeft: Column[], movable: Column[], frozenRight: Column[]}} - Returns all frozenLeft, movable and frozenRight Columns as object.\n * @hidden\n */\nexport function getExactFrozenMovableColumn(gObj, visibleOnly) {\n var columnModel = gObj.getColumns();\n var movableColumns = [];\n var frozenLeftColumns = [];\n var frozenRightColumns = [];\n for (var i = 0; i < columnModel.length; i++) {\n if (isNullOrUndefined(visibleOnly) || !visibleOnly || visibleOnly === columnModel[parseInt(i.toString(), 10)].visible) {\n if (columnModel[parseInt(i.toString(), 10)].freeze === 'Left' || columnModel[parseInt(i.toString(), 10)].freezeTable === 'frozen-left') {\n frozenLeftColumns.push(columnModel[parseInt(i.toString(), 10)]);\n }\n else if (columnModel[parseInt(i.toString(), 10)].freeze === 'Right' || columnModel[parseInt(i.toString(), 10)].freezeTable === 'frozen-right') {\n frozenRightColumns.push(columnModel[parseInt(i.toString(), 10)]);\n }\n else {\n movableColumns.push(columnModel[parseInt(i.toString(), 10)]);\n }\n }\n }\n return { frozenLeft: frozenLeftColumns, movable: movableColumns, frozenRight: frozenRightColumns };\n}\n// eslint-disable-next-line\n/** @hidden */\nexport function gridActionHandler(gObj, callBack, rows, force, rowObj) {\n if (rows[0].length || force) {\n if (rowObj) {\n callBack(literals.frozenLeft, rows[0], rowObj[0]);\n }\n else {\n callBack(literals.frozenLeft, rows[0]);\n }\n }\n if (gObj.isFrozenGrid() && (rows[1].length || force)) {\n if (rowObj) {\n callBack('movable', rows[1], rowObj[1]);\n }\n else {\n callBack('movable', rows[1]);\n }\n }\n if ((gObj.getFrozenMode() === literals.leftRight || gObj.getFrozenMode() === 'Right') && (rows[2].length || force)) {\n if (rowObj) {\n callBack(literals.frozenRight, rows[2], rowObj[2]);\n }\n else {\n callBack(literals.frozenRight, rows[2]);\n }\n }\n}\n/**\n * @param {IGrid} gObj - Defines the grid\n * @returns {Row} Returns the row\n * @hidden\n */\nexport function getGridRowObjects(gObj) {\n return [gObj.getFrozenMode() !== 'Right' ? gObj.getRowsObject() : [], gObj.getMovableRowsObject(), gObj.getFrozenRightRowsObject()];\n}\n/**\n * @param {IGrid} gObj - Defines the grid\n * @returns {Element} Returns the element\n * @hidden\n */\nexport function getGridRowElements(gObj) {\n return [\n gObj.getFrozenMode() !== 'Right' ? gObj.getAllDataRows(true) : [],\n gObj.getAllMovableDataRows(true), gObj.getAllFrozenRightDataRows(true)\n ];\n}\n/**\n * @param {Element} row - Defines the row\n * @param {number} start - Defines the start index\n * @param {number} end - Defines the end index\n * @returns {void}\n * @hidden\n */\nexport function sliceElements(row, start, end) {\n var cells = row.children;\n var len = cells.length;\n var k = 0;\n for (var i = 0; i < len; i++, k++) {\n if (i >= start && i < end) {\n continue;\n }\n row.removeChild(row.children[parseInt(k.toString(), 10)]);\n k--;\n }\n}\n/**\n * @param {IGrid} gObj - Defines the grid Object\n * @param {Column} col - Defines the column\n * @param {number} rowIndex - Defines the rowindex\n * @returns {Element} Returns the element\n * @hidden\n */\nexport function getCellsByTableName(gObj, col, rowIndex) {\n if (col.getFreezeTableName() === 'movable') {\n return [].slice.call(gObj.getMovableDataRows()[parseInt(rowIndex.toString(), 10)].getElementsByClassName(literals.rowCell));\n }\n else if (col.getFreezeTableName() === literals.frozenRight) {\n return [].slice.call(gObj.getFrozenRightDataRows()[parseInt(rowIndex.toString(), 10)].getElementsByClassName(literals.rowCell));\n }\n else {\n return [].slice.call(gObj.getDataRows()[parseInt(rowIndex.toString(), 10)].getElementsByClassName(literals.rowCell));\n }\n}\n/**\n * @param {IGrid} gObj - Defines the column\n * @param {Column} col - Defines the index\n * @param {number} rowIndex - Defines the rules\n * @param {number} index - Defines the movable column rules\n * @returns {Element} Returns the Element\n * @hidden\n */\nexport function getCellByColAndRowIndex(gObj, col, rowIndex, index) {\n var left = gObj.getFrozenLeftCount();\n var movable = gObj.getMovableColumnsCount();\n index = col.getFreezeTableName() === 'movable' ? index - left : col.getFreezeTableName() === literals.frozenRight\n ? index - (left + movable) : index;\n return getCellsByTableName(gObj, col, rowIndex)[parseInt(index.toString(), 10)];\n}\n/**\n * @param {Column} col - Defines the column\n * @param {number} index - Defines the index\n * @param {Object} rules - Defines the rules\n * @param {Object} mRules - Defines the movable column rules\n * @param {Object} frRules - Defines the Frozen rules\n * @param {number} len - Defines the length\n * @param {boolean} isCustom - Defines custom form validation\n * @returns {void}\n * @hidden\n */\nexport function setValidationRuels(col, index, rules, mRules, frRules, len, isCustom) {\n if (isCustom) {\n rules[getComplexFieldID(col.field)] = col.validationRules;\n }\n else {\n if (col.getFreezeTableName() === literals.frozenLeft\n || (!index && col.getFreezeTableName() === literals.frozenRight) || len === 1) {\n rules[getComplexFieldID(col.field)] = col.validationRules;\n }\n else if (col.getFreezeTableName() === 'movable' || !col.getFreezeTableName()) {\n mRules[getComplexFieldID(col.field)] = col.validationRules;\n }\n else if (col.getFreezeTableName() === literals.frozenRight) {\n frRules[getComplexFieldID(col.field)] = col.validationRules;\n }\n }\n}\n/**\n * @param {IGrid} gObj - Defines the grid object\n * @returns {Element} Returns the Element\n * @hidden\n */\nexport function getMovableTbody(gObj) {\n var tbody;\n if (gObj.isFrozenGrid()) {\n tbody = gObj.frozenRows && gObj.editSettings.newRowPosition === 'Top' ? gObj.getMovableHeaderTbody()\n : gObj.getMovableContentTbody();\n }\n return tbody;\n}\n/**\n * @param {IGrid} gObj - Defines the grid object\n * @returns {Element} Returns the Element\n * @hidden\n */\nexport function getFrozenRightTbody(gObj) {\n var tbody;\n if (gObj.getFrozenMode() === literals.leftRight) {\n tbody = gObj.frozenRows && gObj.editSettings.newRowPosition === 'Top' ? gObj.getFrozenRightHeaderTbody()\n : gObj.getFrozenRightContentTbody();\n }\n return tbody;\n}\n/**\n * @param {Element} tbody - Table body\n * @param {Element} mTbody - Movanle table body\n * @param {Element} frTbody - Frozen right table body\n * @param {Element[]} tr - Table rows\n * @param {Element[]} mTr - Movable table rows\n * @param {Element[]} frTr - Frozen right table rows\n * @param {Function} callBack - Callback function\n * @returns {void}\n * @hidden\n */\nexport function setRowsInTbody(tbody, mTbody, frTbody, tr, mTr, frTr, callBack) {\n if (tbody && tr) {\n callBack(tbody, tr);\n }\n if (mTbody && mTr) {\n callBack(mTbody, mTr);\n }\n if (frTbody && frTr) {\n callBack(frTbody, frTr);\n }\n}\n/**\n * @param {string} numberFormat - Format\n * @param {string} type - Value type\n * @param {boolean} isExcel - Boolean property\n * @returns {string} returns formated value\n * @hidden\n */\nexport function getNumberFormat(numberFormat, type, isExcel, currencyCode) {\n var format;\n var intl = new Internationalization();\n if (type === 'number') {\n try {\n format = intl.getNumberPattern({ format: numberFormat, currency: currencyCode, useGrouping: true }, true);\n }\n catch (error) {\n format = numberFormat;\n }\n }\n else if (type === 'date' || type === 'time' || type === 'datetime') {\n try {\n format = intl.getDatePattern({ skeleton: numberFormat, type: type }, isExcel);\n if (isNullOrUndefined(format)) {\n // eslint-disable-next-line\n throw 'error';\n }\n }\n catch (error) {\n try {\n format = intl.getDatePattern({ format: numberFormat, type: type }, isExcel);\n }\n catch (error) {\n format = numberFormat;\n }\n }\n }\n else {\n format = numberFormat;\n }\n if (type !== 'number') {\n var patternRegex = /G|H|c|'| a|yy|y|EEEE|E/g;\n var mtch_1 = { 'G': '', 'H': 'h', 'c': 'd', '\\'': '\"', ' a': ' AM/PM', 'yy': 'yy', 'y': 'yyyy', 'EEEE': 'dddd', 'E': 'ddd' };\n format = format.replace(patternRegex, function (pattern) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return mtch_1[\"\" + pattern];\n });\n }\n return format;\n}\n/**\n * @param {IGrid} gObj - Grid instance\n * @returns {void}\n * @hidden\n */\nexport function addBiggerDialog(gObj) {\n if (gObj.enableAdaptiveUI) {\n var dialogs = document.getElementsByClassName('e-responsive-dialog');\n for (var i = 0; i < dialogs.length; i++) {\n dialogs[parseInt(i.toString(), 10)].classList.add('e-bigger');\n }\n }\n}\n/**\n * @param {string} value - specifies the trr\n * @param {Object} mapObject - specifies the idx\n * @returns {Object | string} returns object or string\n * @hidden\n */\nexport function performComplexDataOperation(value, mapObject) {\n var returnObj;\n var length = value.split('.').length;\n var splits = value.split('.');\n var duplicateMap = mapObject;\n for (var i = 0; i < length; i++) {\n returnObj = duplicateMap[splits[parseInt(i.toString(), 10)]];\n duplicateMap = returnObj;\n }\n return returnObj;\n}\n/**\n * @param {Object} tr - specifies the trr\n * @param {number} idx - specifies the idx\n * @param {string} displayVal - specifies the displayval\n * @param {Row} rows - specifies the rows\n * @param {IGrid} parent - Grid instance\n * @param {boolean} isContent - check for content renderer\n * @returns {void}\n * @hidden\n */\nexport function setDisplayValue(tr, idx, displayVal, rows, parent, isContent) {\n var trs = Object.keys(tr);\n for (var i = 0; i < trs.length; i++) {\n var td = tr[trs[parseInt(i.toString(), 10)]].querySelectorAll('td.e-rowcell')[parseInt(idx.toString(), 10)];\n if (tr[trs[parseInt(i.toString(), 10)]].querySelectorAll('td.e-rowcell').length && td) {\n setStyleAttribute(tr[trs[parseInt(i.toString(), 10)]].querySelectorAll('td.e-rowcell')[parseInt(idx.toString(), 10)], { 'display': displayVal });\n if (tr[trs[parseInt(i.toString(), 10)]].querySelectorAll('td.e-rowcell')[parseInt(idx.toString(), 10)].classList.contains('e-hide')) {\n removeClass([tr[trs[parseInt(i.toString(), 10)]].querySelectorAll('td.e-rowcell')[parseInt(idx.toString(), 10)]], ['e-hide']);\n }\n if (isContent && parent.isRowDragable()) {\n var index = parent.getFrozenColumns() ? idx : idx + 1;\n rows[trs[parseInt(i.toString(), 10)]].cells[parseInt(index.toString(), 10)].visible = displayVal === '' ? true : false;\n }\n else {\n rows[trs[parseInt(i.toString(), 10)]].cells[parseInt(idx.toString(), 10)].visible = displayVal === '' ? true : false;\n if (rows[trs[parseInt(i.toString(), 10)]].cells[parseInt(idx.toString(), 10)].visible === false) {\n tr[trs[parseInt(i.toString(), 10)]].querySelectorAll('td.e-rowcell')[parseInt(idx.toString(), 10)].classList.add('e-hide');\n }\n }\n }\n }\n}\n// eslint-disable-next-line\n/** @hidden */\nexport function addRemoveEventListener(parent, evt, isOn, module) {\n for (var _i = 0, evt_1 = evt; _i < evt_1.length; _i++) {\n var inst = evt_1[_i];\n if (isOn) {\n parent.on(inst.event, inst.handler, module);\n }\n else {\n parent.off(inst.event, inst.handler);\n }\n }\n}\n// eslint-disable-next-line\n/** @hidden */\nexport function createEditElement(parent, column, classNames, attr) {\n var complexFieldName = getComplexFieldID(column.field);\n attr = Object.assign(attr, {\n id: parent.element.id + complexFieldName,\n name: complexFieldName, 'e-mappinguid': column.uid\n });\n return parent.createElement('input', {\n className: classNames, attrs: attr\n });\n}\n/**\n * @param {IGrid} gObj - Grid instance\n * @param {string} uid - Defines column's uid\n * @returns {Column} returns column model\n * @hidden\n */\nexport function getColumnModelByUid(gObj, uid) {\n var column;\n for (var _i = 0, _a = (gObj.columnModel); _i < _a.length; _i++) {\n var col = _a[_i];\n if (col.uid === uid) {\n column = col;\n break;\n }\n }\n return column;\n}\n/**\n * @param {IGrid} gObj - Grid instance\n * @param {string} field - Defines column's uid\n * @returns {Column} returns column model\n * @hidden\n */\nexport function getColumnModelByFieldName(gObj, field) {\n var column;\n if (!gObj.columnModel) {\n gObj.getColumns();\n }\n for (var _i = 0, _a = (gObj.columnModel); _i < _a.length; _i++) {\n var col = _a[_i];\n if (col.field === field) {\n column = col;\n break;\n }\n }\n return column;\n}\n/**\n * @param {string} id - Defines component id\n * @param {string[]} evts - Defines events\n * @param {object} handlers - Defines event handlers\n * @param {any} instance - Defines class instance\n * @returns {void}\n * @hidden\n */\n// eslint-disable-next-line\nexport function registerEventHandlers(id, evts, handlers, instance) {\n instance.eventHandlers[\"\" + id] = {};\n for (var i = 0; i < evts.length; i++) {\n instance.eventHandlers[\"\" + id][evts[parseInt(i.toString(), 10)]] = handlers[evts[parseInt(i.toString(), 10)]];\n }\n}\n/**\n * @param {any} component - Defines component instance\n * @param {string[]} evts - Defines events\n * @param {any} instance - Defines class instance\n * @returns {void}\n * @hidden\n */\n// eslint-disable-next-line\nexport function removeEventHandlers(component, evts, instance) {\n for (var i = 0; i < evts.length; i++) {\n if (component.isDestroyed) {\n break;\n }\n component.removeEventListener(evts[parseInt(i.toString(), 10)], instance.eventHandlers[component.element.id][evts[parseInt(i.toString(), 10)]]);\n }\n}\n/**\n * @param {IGrid | IXLFilter} parent - Defines parent instance\n * @param {string[]} templates - Defines the templates name which are needs to clear\n * @returns {void}\n * @hidden\n */\nexport function clearReactVueTemplates(parent, templates) {\n parent.destroyTemplate(templates);\n if (parent.isReact) {\n parent.renderTemplates();\n }\n}\n/**\n *\n * @param { Element } row - Defines row element\n * @returns { number } row index\n */\nexport function getRowIndexFromElement(row) {\n return parseInt(row.getAttribute(literals.dataRowIndex), 10);\n}\n/**\n *\n * @param { string[] } fields - Defines grouped fields\n * @param { values } values - Defines caption keys\n * @param { any } instance - Defines dynamic class instance\n * @returns { Predicate } returns filter predicate\n */\n// eslint-disable-next-line\nexport function generateExpandPredicates(fields, values, instance) {\n var filterCols = [];\n for (var i = 0; i < fields.length; i++) {\n var column = instance.parent.getColumnByField(fields[parseInt(i.toString(), 10)]);\n var value = values[parseInt(i.toString(), 10)] === 'null' ? null : values[parseInt(i.toString(), 10)];\n var pred = {\n field: fields[parseInt(i.toString(), 10)], predicate: 'or', uid: column.uid, operator: 'equal', type: column.type,\n matchCase: instance.allowCaseSensitive, ignoreAccent: instance.parent.filterSettings.ignoreAccent\n };\n if (value === '' || isNullOrUndefined(value)) {\n filterCols = filterCols.concat(CheckBoxFilterBase.generateNullValuePredicates(pred));\n }\n else {\n filterCols.push(extend({}, { value: value }, pred));\n }\n }\n return CheckBoxFilterBase.getPredicate(filterCols);\n}\n/**\n *\n * @param { Predicate } pred - Defines filter predicate\n * @returns { Predicate[] } Returns formed predicate\n */\nexport function getPredicates(pred) {\n var predicateList = [];\n for (var _i = 0, _a = Object.keys(pred); _i < _a.length; _i++) {\n var prop = _a[_i];\n predicateList.push(pred[\"\" + prop]);\n }\n return predicateList;\n}\n/**\n *\n * @param { number } index - Defines group caption indent\n * @param { Row[] } rowsObject - Defines rows object\n * @returns { { fields: string[], keys: string[] } } Returns grouped keys and values\n */\nexport function getGroupKeysAndFields(index, rowsObject) {\n var fields = [];\n var keys = [];\n for (var i = index; i >= 0; i--) {\n if (rowsObject[parseInt(i.toString(), 10)].isCaptionRow\n && fields.indexOf(rowsObject[parseInt(i.toString(), 10)].data.field) === -1\n && (rowsObject[parseInt(i.toString(), 10)].indent < rowsObject[parseInt(index.toString(), 10)].indent || i === index)) {\n fields.push(rowsObject[parseInt(i.toString(), 10)].data.field);\n keys.push(rowsObject[parseInt(i.toString(), 10)].data.key);\n if (rowsObject[parseInt(i.toString(), 10)].indent === 0) {\n break;\n }\n }\n }\n return { fields: fields, keys: keys };\n}\n// eslint-disable-next-line\n/**\n *\n * @param { number[][] } checkActiveMatrix - Defines matrix to check\n * @param { number[] } checkCellIndex - Defines index to check\n * @param { boolean } next - Defines select next or previous index\n * @returns { number[] } - Returns next active current index\n */\nexport function findCellIndex(checkActiveMatrix, checkCellIndex, next) {\n var activeMatrix = checkActiveMatrix;\n var cellIndex = checkCellIndex;\n var currentCellIndexPass = false;\n if (next) {\n for (var i = cellIndex[0]; i < activeMatrix.length; i++) {\n var rowCell = activeMatrix[parseInt(i.toString(), 10)];\n for (var j = 0; j < rowCell.length; j++) {\n if (currentCellIndexPass && activeMatrix[parseInt(i.toString(), 10)][parseInt(j.toString(), 10)] === 1) {\n cellIndex = [i, j];\n return cellIndex;\n }\n if (!currentCellIndexPass && cellIndex.toString() === [i, j].toString()) {\n currentCellIndexPass = true;\n }\n }\n }\n }\n else {\n for (var i = cellIndex[0]; i >= 0; i--) {\n var rowCell = activeMatrix[parseInt(i.toString(), 10)];\n for (var j = rowCell.length - 1; j >= 0; j--) {\n if (currentCellIndexPass && activeMatrix[parseInt(i.toString(), 10)][parseInt(j.toString(), 10)] === 1) {\n cellIndex = [i, j];\n return cellIndex;\n }\n if (!currentCellIndexPass && cellIndex.toString() === [i, j].toString()) {\n currentCellIndexPass = true;\n }\n }\n }\n }\n return cellIndex;\n}\n/**\n *\n * @param { string } string - Defines string need to capitalized first letter\n * @returns { string } - Returns capitalized first letter string\n */\nexport function capitalizeFirstLetter(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n","import { isNullOrUndefined, extend } from '@syncfusion/ej2-base';\nimport { Query, DataManager, Predicate, Deferred, UrlAdaptor, RemoteSaveAdaptor } from '@syncfusion/ej2-data';\nimport { setFormatter, isGroupAdaptive, getColumnByForeignKeyValue, refreshFilteredColsUid } from '../base/util';\nimport * as events from '../base/constant';\nimport { ValueFormatter } from '../services/value-formatter';\nimport { CheckBoxFilterBase } from '../common/checkbox-filter-base';\n/**\n * Grid data module is used to generate query and data source.\n *\n * @hidden\n */\nvar Data = /** @class */ (function () {\n /**\n * Constructor for data module.\n *\n * @param {IGrid} parent - specifies the IGrid\n * @param {ServiceLocator} serviceLocator - specifies the service locator\n * @hidden\n */\n function Data(parent, serviceLocator) {\n this.dataState = { isPending: false, resolver: null, group: [] };\n this.foreignKeyDataState = { isPending: false, resolver: null };\n this.parent = parent;\n this.serviceLocator = serviceLocator;\n this.initDataManager();\n if (this.parent.isDestroyed || this.getModuleName() === 'foreignKey') {\n return;\n }\n this.parent.on(events.rowsAdded, this.addRows, this);\n this.parent.on(events.rowPositionChanged, this.reorderRows, this);\n this.parent.on(events.rowsRemoved, this.removeRows, this);\n this.parent.on(events.dataSourceModified, this.initDataManager, this);\n this.parent.on(events.destroy, this.destroy, this);\n this.parent.on(events.updateData, this.crudActions, this);\n this.parent.on(events.addDeleteAction, this.getData, this);\n this.parent.on(events.autoCol, this.refreshFilteredCols, this);\n this.parent.on(events.columnsPrepared, this.refreshFilteredCols, this);\n }\n Data.prototype.reorderRows = function (e) {\n this.dataManager.dataSource.json.splice(e.toIndex, 0, this.dataManager.dataSource.json.splice(e.fromIndex, 1)[0]);\n };\n Data.prototype.getModuleName = function () {\n return 'data';\n };\n /**\n * The function used to initialize dataManager and external query\n *\n * @returns {void}\n */\n Data.prototype.initDataManager = function () {\n var gObj = this.parent;\n this.dataManager = gObj.dataSource instanceof DataManager ? gObj.dataSource :\n (isNullOrUndefined(gObj.dataSource) ? new DataManager() : new DataManager(gObj.dataSource));\n if (gObj.isAngular && !(gObj.query instanceof Query)) {\n gObj.setProperties({ query: new Query() }, true);\n }\n else {\n this.isQueryInvokedFromData = true;\n gObj.query = gObj.query instanceof Query ? gObj.query : new Query();\n }\n };\n /**\n * The function is used to generate updated Query from Grid model.\n *\n * @param {boolean} skipPage - specifies the boolean to skip the page\n * @param {boolean} isAutoCompleteCall - specifies for auto complete call\n * @returns {Query} returns the Query\n * @hidden\n */\n Data.prototype.generateQuery = function (skipPage, isAutoCompleteCall) {\n var gObj = this.parent;\n var query = gObj.getQuery().clone();\n if (this.parent.columnQueryMode === 'ExcludeHidden') {\n query.select(this.parent.getColumns().filter(function (column) { return !(column.isPrimaryKey !== true && column.visible === false || column.field === undefined); }).map(function (column) { return column.field; }));\n }\n else if (this.parent.columnQueryMode === 'Schema') {\n var selectQueryFields = [];\n var columns = this.parent.columns;\n for (var i = 0; i < columns.length; i++) {\n selectQueryFields.push(columns[parseInt(i.toString(), 10)].field);\n }\n query.select(selectQueryFields);\n }\n this.filterQuery(query);\n this.searchQuery(query);\n this.aggregateQuery(query);\n this.sortQuery(query);\n if (isGroupAdaptive(this.parent)) {\n this.virtualGroupPageQuery(query);\n }\n else {\n this.pageQuery(query, skipPage);\n }\n if (isNullOrUndefined(isAutoCompleteCall) || !isAutoCompleteCall) {\n this.groupQuery(query);\n }\n return query;\n };\n /**\n * @param {Query} query - specifies the query\n * @returns {Query} - returns the query\n * @hidden\n */\n Data.prototype.aggregateQuery = function (query) {\n var rows = this.parent.aggregates;\n for (var i = 0; i < rows.length; i++) {\n var row = rows[parseInt(i.toString(), 10)];\n for (var j = 0; j < row.columns.length; j++) {\n var cols = row.columns[parseInt(j.toString(), 10)];\n var types = cols.type instanceof Array ? cols.type : [cols.type];\n for (var k = 0; k < types.length; k++) {\n query.aggregate(types[parseInt(k.toString(), 10)].toLowerCase(), cols.field);\n }\n }\n }\n return query;\n };\n Data.prototype.virtualGroupPageQuery = function (query) {\n var fName = 'fn';\n if (query.queries.length) {\n for (var i = 0; i < query.queries.length; i++) {\n if (query.queries[parseInt(i.toString(), 10)][\"\" + fName] === 'onPage') {\n query.queries.splice(i, 1);\n }\n }\n }\n return query;\n };\n Data.prototype.pageQuery = function (query, skipPage) {\n var gObj = this.parent;\n var fName = 'fn';\n var args = { query: query, skipPage: false };\n gObj.notify(events.setVirtualPageQuery, args);\n if (args.skipPage) {\n return query;\n }\n if ((gObj.allowPaging || gObj.enableVirtualization || gObj.enableInfiniteScrolling) && skipPage !== true) {\n gObj.pageSettings.currentPage = Math.max(1, gObj.pageSettings.currentPage);\n if (gObj.pageSettings.pageCount <= 0) {\n gObj.pageSettings.pageCount = 8;\n }\n if (gObj.pageSettings.pageSize <= 0) {\n gObj.pageSettings.pageSize = 12;\n }\n if (query.queries.length) {\n for (var i = 0; i < query.queries.length; i++) {\n if (query.queries[parseInt(i.toString(), 10)][\"\" + fName] === 'onPage') {\n query.queries.splice(i, 1);\n }\n }\n }\n if (!isNullOrUndefined(gObj.infiniteScrollModule) && gObj.enableInfiniteScrolling) {\n this.parent.notify(events.infinitePageQuery, query);\n }\n else {\n query.page(gObj.pageSettings.currentPage, gObj.allowPaging && gObj.pagerModule &&\n gObj.pagerModule.pagerObj.isAllPage && (!this.dataManager.dataSource.offline &&\n !(this.dataManager.adaptor instanceof RemoteSaveAdaptor)) ? null : gObj.pageSettings.pageSize);\n }\n }\n return query;\n };\n Data.prototype.groupQuery = function (query) {\n var gObj = this.parent;\n if (gObj.allowGrouping && gObj.groupSettings.columns.length) {\n if (this.parent.groupSettings.enableLazyLoading) {\n query.lazyLoad.push({ key: 'isLazyLoad', value: this.parent.groupSettings.enableLazyLoading });\n }\n var columns = gObj.groupSettings.columns;\n for (var i = 0, len = columns.length; i < len; i++) {\n var column = this.getColumnByField(columns[parseInt(i.toString(), 10)]);\n if (!column) {\n this.parent.log('initial_action', { moduleName: 'group', columnName: columns[parseInt(i.toString(), 10)] });\n }\n var isGrpFmt = column.enableGroupByFormat;\n var format = column.format;\n if (isGrpFmt) {\n query.group(columns[parseInt(i.toString(), 10)], this.formatGroupColumn.bind(this), format);\n }\n else {\n query.group(columns[parseInt(i.toString(), 10)], null);\n }\n }\n }\n return query;\n };\n Data.prototype.sortQuery = function (query) {\n var gObj = this.parent;\n if ((gObj.allowSorting || gObj.allowGrouping) && gObj.sortSettings.columns.length) {\n var columns = gObj.sortSettings.columns;\n var sortGrp = [];\n for (var i = columns.length - 1; i > -1; i--) {\n var col = this.getColumnByField(columns[parseInt(i.toString(), 10)].field);\n if (col) {\n col.setSortDirection(columns[parseInt(i.toString(), 10)].direction);\n }\n else {\n this.parent.log('initial_action', { moduleName: 'sort', columnName: columns[parseInt(i.toString(), 10)].field });\n return query;\n }\n var fn = columns[parseInt(i.toString(), 10)].direction;\n if (col.sortComparer) {\n this.parent.log('grid_sort_comparer');\n fn = !this.isRemote() ? col.sortComparer.bind(col) : columns[parseInt(i.toString(), 10)].direction;\n }\n if (gObj.groupSettings.columns.indexOf(columns[parseInt(i.toString(), 10)].field) === -1) {\n if (col.isForeignColumn() || col.sortComparer) {\n query.sortByForeignKey(col.field, fn, undefined, columns[parseInt(i.toString(), 10)].direction.toLowerCase());\n }\n else {\n query.sortBy(col.field, fn);\n }\n }\n else {\n sortGrp.push({ direction: fn, field: col.field });\n }\n }\n for (var i = 0, len = sortGrp.length; i < len; i++) {\n if (typeof sortGrp[parseInt(i.toString(), 10)].direction === 'string') {\n query.sortBy(sortGrp[parseInt(i.toString(), 10)].field, sortGrp[parseInt(i.toString(), 10)].direction);\n }\n else {\n var col = this.getColumnByField(sortGrp[parseInt(i.toString(), 10)].field);\n query.sortByForeignKey(sortGrp[parseInt(i.toString(), 10)].field, sortGrp[parseInt(i.toString(), 10)].direction, undefined, col.getSortDirection().toLowerCase());\n }\n }\n }\n return query;\n };\n Data.prototype.searchQuery = function (query, fcolumn, isForeignKey) {\n var sSettings = this.parent.searchSettings;\n var fields = sSettings.fields.length ? sSettings.fields : this.getSearchColumnFieldNames();\n var predicateList = [];\n var needForeignKeySearch = false;\n if (this.parent.searchSettings.key.length) {\n needForeignKeySearch = this.parent.getForeignKeyColumns().some(function (col) { return fields.indexOf(col.field) > -1; });\n var adaptor = !isForeignKey ? this.dataManager.adaptor : fcolumn.dataSource.adaptor;\n if (needForeignKeySearch || (adaptor.getModuleName &&\n adaptor.getModuleName() === 'ODataV4Adaptor')) {\n fields = isForeignKey ? [fcolumn.foreignKeyValue] : fields;\n for (var i = 0; i < fields.length; i++) {\n var column = isForeignKey ? fcolumn : this.getColumnByField(fields[parseInt(i.toString(), 10)]);\n if (column.isForeignColumn() && !isForeignKey) {\n predicateList = this.fGeneratePredicate(column, predicateList);\n }\n else {\n predicateList.push(new Predicate(fields[parseInt(i.toString(), 10)], sSettings.operator, sSettings.key, sSettings.ignoreCase, sSettings.ignoreAccent));\n }\n }\n var predList = Predicate.or(predicateList);\n predList.key = sSettings.key;\n query.where(predList);\n }\n else {\n query.search(sSettings.key, fields, sSettings.operator, sSettings.ignoreCase, sSettings.ignoreAccent);\n }\n }\n return query;\n };\n Data.prototype.filterQuery = function (query, column, skipFoerign) {\n var gObj = this.parent;\n var predicateList = [];\n var actualFilter = [];\n var foreignColumn = this.parent.getForeignKeyColumns();\n var foreignColEmpty;\n if (gObj.allowFiltering && gObj.filterSettings.columns.length) {\n var columns = column ? column : gObj.filterSettings.columns;\n var colType = {};\n for (var _i = 0, _a = gObj.getColumns(); _i < _a.length; _i++) {\n var col = _a[_i];\n colType[col.field] = col.filter.type ? col.filter.type : gObj.filterSettings.type;\n }\n var foreignCols = [];\n var defaultFltrCols = [];\n for (var _b = 0, columns_1 = columns; _b < columns_1.length; _b++) {\n var col = columns_1[_b];\n var gridColumn = col.isForeignKey ? gObj.getColumnByUid(col.uid) : gObj.getColumnByField(col.field);\n if (isNullOrUndefined(col.type) && gridColumn && (gridColumn.type === 'date' || gridColumn.type === 'datetime')) {\n col.type = col.isForeignKey ? gObj.getColumnByUid(col.uid).type : gObj.getColumnByField(col.field).type;\n }\n if (col.isForeignKey) {\n foreignCols.push(col);\n }\n else {\n defaultFltrCols.push(col);\n }\n }\n if (defaultFltrCols.length) {\n for (var i = 0, len = defaultFltrCols.length; i < len; i++) {\n defaultFltrCols[parseInt(i.toString(), 10)].uid = defaultFltrCols[parseInt(i.toString(), 10)].uid ||\n this.parent.grabColumnByFieldFromAllCols(defaultFltrCols[parseInt(i.toString(), 10)].field).uid;\n }\n var excelPredicate = CheckBoxFilterBase.getPredicate(defaultFltrCols);\n for (var _c = 0, _d = Object.keys(excelPredicate); _c < _d.length; _c++) {\n var prop = _d[_c];\n predicateList.push(excelPredicate[\"\" + prop]);\n }\n }\n if (foreignCols.length) {\n for (var _e = 0, foreignCols_1 = foreignCols; _e < foreignCols_1.length; _e++) {\n var col = foreignCols_1[_e];\n col.uid = col.uid || this.parent.grabColumnByFieldFromAllCols(col.field).uid;\n var column_1 = this.parent.grabColumnByUidFromAllCols(col.uid);\n if (!column_1) {\n this.parent.log('initial_action', { moduleName: 'filter', columnName: col.field });\n }\n if (column_1.isForeignColumn() && getColumnByForeignKeyValue(col.field, foreignColumn) && !skipFoerign) {\n actualFilter.push(col);\n if (!column_1.columnData.length) {\n foreignColEmpty = true;\n }\n predicateList = this.fGeneratePredicate(column_1, predicateList);\n }\n else {\n var excelPredicate = CheckBoxFilterBase.getPredicate(columns);\n for (var _f = 0, _g = Object.keys(excelPredicate); _f < _g.length; _f++) {\n var prop = _g[_f];\n predicateList.push(excelPredicate[\"\" + prop]);\n }\n }\n }\n }\n if (predicateList.length && !foreignColEmpty) {\n query.where(Predicate.and(predicateList));\n }\n else {\n this.parent.notify(events.showEmptyGrid, {});\n }\n }\n return query;\n };\n Data.prototype.fGeneratePredicate = function (col, predicateList) {\n var fPredicate = {};\n if (col) {\n this.parent.notify(events.generateQuery, { predicate: fPredicate, column: col });\n if (fPredicate.predicate.predicates.length) {\n predicateList.push(fPredicate.predicate);\n }\n }\n return predicateList;\n };\n /**\n * The function is used to get dataManager promise by executing given Query.\n *\n * @param {object} args - specifies the object\n * @param {string} args.requestType - Defines the request type\n * @param {string[]} args.foreignKeyData - Defines the foreignKeyData.string\n * @param {Object} args.data - Defines the data.\n * @param {number} args.index - Defines the index .\n * @param {Query} query - Defines the query which will execute along with data processing.\n * @returns {Promise} - returns the object\n * @hidden\n */\n Data.prototype.getData = function (args, query) {\n var _this = this;\n if (args === void 0) { args = { requestType: '' }; }\n var key = this.getKey(args.foreignKeyData &&\n Object.keys(args.foreignKeyData).length ?\n args.foreignKeyData : this.parent.getPrimaryKeyFieldNames());\n this.parent.log('datasource_syntax_mismatch', { dataState: this.parent });\n if (this.parent.dataSource && 'result' in this.parent.dataSource) {\n var def = this.eventPromise(args, query, key);\n return def.promise;\n }\n else {\n var crud = void 0;\n switch (args.requestType) {\n case 'delete':\n query = query ? query : this.generateQuery();\n // eslint-disable-next-line no-case-declarations\n var len = Object.keys(args.data).length;\n if (len === 1) {\n crud = this.dataManager.remove(key, args.data[0], query.fromTable, query);\n }\n else {\n var changes = {\n addedRecords: [],\n deletedRecords: [],\n changedRecords: []\n };\n changes.deletedRecords = args.data;\n crud = this.dataManager.saveChanges(changes, key, query.fromTable, query.requiresCount());\n }\n break;\n case 'save':\n query = query ? query : this.generateQuery();\n args.index = isNullOrUndefined(args.index) ? 0 : args.index;\n crud = this.dataManager.insert(args.data, query.fromTable, query, args.index);\n break;\n }\n var promise = 'promise';\n args[\"\" + promise] = crud;\n // eslint-disable-next-line no-prototype-builtins\n if (crud && !Array.isArray(crud) && !crud.hasOwnProperty('deletedRecords')) {\n return crud.then(function () {\n return _this.insert(query, args);\n });\n }\n else {\n return this.insert(query, args);\n }\n }\n };\n Data.prototype.insert = function (query, args) {\n if (args.requestType === 'save') {\n this.parent.notify(events.recordAdded, args);\n }\n return this.executeQuery(query);\n };\n Data.prototype.executeQuery = function (query) {\n var _this = this;\n if (this.dataManager.ready) {\n var deferred_1 = new Deferred();\n var ready = this.dataManager.ready;\n ready.then(function () {\n _this.dataManager.executeQuery(query).then(function (result) {\n deferred_1.resolve(result);\n });\n }).catch(function (e) {\n deferred_1.reject(e);\n });\n return deferred_1.promise;\n }\n else {\n return this.dataManager.executeQuery(query);\n }\n };\n Data.prototype.formatGroupColumn = function (value, field) {\n var serviceLocator = this.serviceLocator;\n var column = this.getColumnByField(field);\n var date = value;\n if (!column.type) {\n column.type = date.getDay ? (date.getHours() > 0 || date.getMinutes() > 0 ||\n date.getSeconds() > 0 || date.getMilliseconds() > 0 ? 'datetime' : 'date') : typeof (value);\n }\n if (isNullOrUndefined(column.getFormatter())) {\n setFormatter(serviceLocator, column);\n }\n var formatVal = ValueFormatter.prototype.toView(value, column.getFormatter());\n return formatVal;\n };\n Data.prototype.crudActions = function (args) {\n var query = this.generateQuery();\n var promise = null;\n var pr = 'promise';\n var key = this.getKey(args.foreignKeyData &&\n Object.keys(args.foreignKeyData).length ? args.foreignKeyData :\n this.parent.getPrimaryKeyFieldNames());\n if (this.parent.dataSource && 'result' in this.parent.dataSource) {\n this.eventPromise(args, query, key);\n }\n switch (args.requestType) {\n case 'save':\n promise = this.dataManager.update(key, args.data, query.fromTable, query, args.previousData);\n break;\n }\n args[\"\" + pr] = promise ? promise : args[\"\" + pr];\n this.parent.notify(events.crudAction, args);\n };\n /**\n * @param {object} changes - specifies the changes\n * @param {string} key - specifies the key\n * @param {object} original - specifies the original data\n * @param {Query} query - specifies the query\n * @returns {Promise} returns the object\n * @hidden\n */\n Data.prototype.saveChanges = function (changes, key, original, query) {\n if (query === void 0) { query = this.generateQuery(); }\n query.requiresCount();\n if ('result' in this.parent.dataSource) {\n var deff = new Deferred();\n var args = {\n requestType: 'batchsave', changes: changes, key: key, query: query,\n endEdit: deff.resolve\n };\n this.setState({ isPending: true, resolver: deff.resolve });\n this.parent.trigger(events.dataSourceChanged, args);\n return deff.promise;\n }\n else {\n var promise = this.dataManager.saveChanges(changes, key, query.fromTable, query, original);\n return promise;\n }\n };\n Data.prototype.getKey = function (keys) {\n if (keys && keys.length) {\n return keys[0];\n }\n return undefined;\n };\n /**\n * @returns {boolean} returns whether its remote data\n * @hidden\n */\n Data.prototype.isRemote = function () {\n return this.dataManager.dataSource.offline !== true && this.dataManager.dataSource.url !== undefined &&\n this.dataManager.dataSource.url !== '';\n };\n Data.prototype.addRows = function (e) {\n for (var i = e.records.length; i > 0; i--) {\n this.dataManager.dataSource.json.splice(e.toIndex, 0, e.records[i - 1]);\n }\n };\n Data.prototype.removeRows = function (e) {\n var json = this.dataManager.dataSource.json;\n this.dataManager.dataSource.json = json.filter(function (value) { return e.records.indexOf(value) === -1; });\n };\n Data.prototype.getColumnByField = function (field) {\n var col;\n return (this.parent.columnModel).some(function (column) {\n col = column;\n return column.field === field;\n }) && col;\n };\n Data.prototype.destroy = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n this.parent.off(events.rowsAdded, this.addRows);\n this.parent.off(events.rowsRemoved, this.removeRows);\n this.parent.off(events.dataSourceModified, this.initDataManager);\n this.parent.off(events.destroy, this.destroy);\n this.parent.off(events.updateData, this.crudActions);\n this.parent.off(events.addDeleteAction, this.getData);\n this.parent.off(events.autoCol, this.refreshFilteredCols);\n this.parent.off(events.columnsPrepared, this.refreshFilteredCols);\n };\n Data.prototype.getState = function () {\n return this.dataState;\n };\n Data.prototype.setState = function (state) {\n return this.dataState = state;\n };\n Data.prototype.getForeignKeyDataState = function () {\n return this.foreignKeyDataState;\n };\n Data.prototype.setForeignKeyDataState = function (state) {\n this.foreignKeyDataState = state;\n };\n Data.prototype.getStateEventArgument = function (query) {\n var adaptr = new UrlAdaptor();\n var dm = new DataManager({ url: '', adaptor: new UrlAdaptor });\n var state = adaptr.processQuery(dm, query);\n var data = JSON.parse(state.data);\n return extend(data, state.pvtData);\n };\n Data.prototype.eventPromise = function (args, query, key) {\n var _this = this;\n var dataArgs = args;\n var state = this.getStateEventArgument(query);\n var def = new Deferred();\n var deff = new Deferred();\n if (args.requestType !== undefined && this.dataState.isDataChanged !== false) {\n state.action = args;\n if (args.requestType === 'save' || args.requestType === 'delete') {\n var editArgs_1 = args;\n editArgs_1.key = key;\n var promise = 'promise';\n editArgs_1[\"\" + promise] = deff.promise;\n editArgs_1.state = state;\n this.setState({ isPending: true, resolver: deff.resolve });\n dataArgs.endEdit = deff.resolve;\n dataArgs.cancelEdit = deff.reject;\n this.parent.trigger(events.dataSourceChanged, editArgs_1);\n deff.promise.then(function () {\n _this.setState({ isPending: true, resolver: def.resolve, group: state.group, aggregates: state.aggregates });\n if (editArgs_1.requestType === 'save') {\n _this.parent.notify(events.recordAdded, editArgs_1);\n }\n _this.parent.trigger(events.dataStateChange, state);\n })\n .catch(function () { return void 0; });\n }\n else {\n this.setState({ isPending: true, resolver: def.resolve, group: state.group, aggregates: state.aggregates });\n this.parent.trigger(events.dataStateChange, state);\n }\n }\n else {\n this.setState({});\n def.resolve(this.parent.dataSource);\n }\n return def;\n };\n /**\n * Gets the columns where searching needs to be performed from the Grid.\n *\n * @returns {string[]} returns the searched column field names\n */\n Data.prototype.getSearchColumnFieldNames = function () {\n var colFieldNames = [];\n var columns = this.parent.getColumns();\n for (var _i = 0, columns_2 = columns; _i < columns_2.length; _i++) {\n var col = columns_2[_i];\n if (col.allowSearching && !isNullOrUndefined(col.field)) {\n colFieldNames.push(col.field);\n }\n }\n return colFieldNames;\n };\n Data.prototype.refreshFilteredCols = function () {\n if (this.parent.allowFiltering && this.parent.filterSettings.columns.length) {\n refreshFilteredColsUid(this.parent, this.parent.filterSettings.columns);\n }\n };\n return Data;\n}());\nexport { Data };\n","import { merge } from '@syncfusion/ej2-base';\n/**\n * Row\n *\n * @hidden\n */\nvar Row = /** @class */ (function () {\n function Row(options, parent) {\n merge(this, options);\n this.parent = parent;\n }\n Row.prototype.clone = function () {\n var row = new Row({});\n merge(row, this);\n row.cells = this.cells.map(function (cell) { return cell.clone(); });\n return row;\n };\n /**\n * Replaces the row data and grid refresh the particular row element only.\n *\n * @param {Object} data - To update new data for the particular row.\n * @returns {void}\n */\n Row.prototype.setRowValue = function (data) {\n if (!this.parent) {\n return;\n }\n var key = this.data[this.parent.getPrimaryKeyFieldNames()[0]];\n this.parent.setRowData(key, data);\n };\n /**\n * Replaces the given field value and refresh the particular cell element only.\n *\n * @param {string} field - Specifies the field name which you want to update.\n * @param {string | number | boolean | Date} value - To update new value for the particular cell.\n * @returns {void}\n */\n Row.prototype.setCellValue = function (field, value) {\n if (!this.parent) {\n return;\n }\n var isValDiff = !(this.data[\"\" + field].toString() === value.toString());\n if (isValDiff) {\n var pKeyField = this.parent.getPrimaryKeyFieldNames()[0];\n var key = this.data[\"\" + pKeyField];\n this.parent.setCellValue(key, field, value);\n this.makechanges(pKeyField, this.data);\n }\n else {\n return;\n }\n };\n Row.prototype.makechanges = function (key, data) {\n if (!this.parent) {\n return;\n }\n var gObj = this.parent;\n var dataManager = gObj.getDataModule().dataManager;\n dataManager.update(key, data);\n };\n return Row;\n}());\nexport { Row };\n","import { merge } from '@syncfusion/ej2-base';\n/**\n * Cell\n *\n * @hidden\n */\nvar Cell = /** @class */ (function () {\n function Cell(options) {\n this.isSpanned = false;\n this.isRowSpanned = false;\n merge(this, options);\n }\n Cell.prototype.clone = function () {\n var cell = new Cell({});\n merge(cell, this);\n return cell;\n };\n return Cell;\n}());\nexport { Cell };\n","import { isNullOrUndefined, attributes } from '@syncfusion/ej2-base';\nimport { iterateArrayOrObject } from '../base/util';\nimport { CellType } from '../base/enum';\n/**\n * `CellMergeRender` module.\n *\n * @hidden\n */\nvar CellMergeRender = /** @class */ (function () {\n function CellMergeRender(serviceLocator, parent) {\n this.serviceLocator = serviceLocator;\n this.parent = parent;\n }\n CellMergeRender.prototype.render = function (cellArgs, row, i, td) {\n var cellRendererFact = this.serviceLocator.getService('cellRendererFactory');\n var cellRenderer = cellRendererFact.getCellRenderer(row.cells[parseInt(i.toString(), 10)].cellType\n || CellType.Data);\n var colSpan = row.cells[parseInt(i.toString(), 10)].cellSpan ? row.cells[parseInt(i.toString(), 10)].cellSpan :\n (cellArgs.colSpan + i) <= row.cells.length ? cellArgs.colSpan : row.cells.length - i;\n var rowSpan = cellArgs.rowSpan;\n var visible = 0;\n var spannedCell;\n if (row.index > 0) {\n var rowsObject = this.parent.isFrozenGrid() ?\n this.parent.contentModule.tempFreezeRows : this.parent.getRowsObject();\n var cells = this.parent.groupSettings.columns.length > 0 &&\n !rowsObject[row.index - 1].isDataRow ? rowsObject[row.index].cells : rowsObject[row.index - 1].cells;\n var targetCell_1 = row.cells[parseInt(i.toString(), 10)];\n var uid_1 = 'uid';\n spannedCell = cells.filter(function (cell) { return cell.column.uid === targetCell_1.column[\"\" + uid_1]; })[0];\n }\n var colSpanLen = spannedCell && spannedCell.colSpanRange > 1 && spannedCell.rowSpanRange > 1 ?\n spannedCell.colSpanRange : colSpan;\n for (var j = i + 1; j < i + colSpanLen && j < row.cells.length; j++) {\n if (row.cells[parseInt(j.toString(), 10)].visible === false) {\n visible++;\n }\n else {\n row.cells[parseInt(j.toString(), 10)].isSpanned = true;\n }\n }\n if (visible > 0) {\n for (var j = i + colSpan; j < i + colSpan + visible && j < row.cells.length; j++) {\n row.cells[parseInt(j.toString(), 10)].isSpanned = true;\n }\n if (i + colSpan + visible >= row.cells.length) {\n colSpan -= (i + colSpan + visible) - row.cells.length;\n }\n }\n if (row.cells[parseInt(i.toString(), 10)].cellSpan) {\n row.data[cellArgs.column.field] = row.cells[parseInt(i.toString(), 10)].spanText;\n td = cellRenderer.render(row.cells[parseInt(i.toString(), 10)], row.data, { 'index': !isNullOrUndefined(row.index) ? row.index.toString() : '' });\n }\n if (colSpan > 1) {\n attributes(td, { 'colSpan': colSpan.toString(), 'aria-colSpan': colSpan.toString() });\n }\n if (rowSpan > 1) {\n attributes(td, { 'rowspan': rowSpan.toString(), 'aria-rowspan': rowSpan.toString() });\n row.cells[parseInt(i.toString(), 10)].isRowSpanned = true;\n row.cells[parseInt(i.toString(), 10)].rowSpanRange = Number(rowSpan);\n if (colSpan > 1) {\n row.cells[parseInt(i.toString(), 10)].colSpanRange = Number(colSpan);\n }\n }\n if (row.index > 0 && (spannedCell.rowSpanRange > 1)) {\n row.cells[parseInt(i.toString(), 10)].isSpanned = true;\n row.cells[parseInt(i.toString(), 10)].rowSpanRange = Number(spannedCell.rowSpanRange - 1);\n row.cells[parseInt(i.toString(), 10)].colSpanRange = spannedCell.rowSpanRange > 0 ? spannedCell.colSpanRange : 1;\n }\n if (this.parent.enableColumnVirtualization && !row.cells[parseInt(i.toString(), 10)].cellSpan &&\n !this.containsKey(cellArgs.column.field, cellArgs.data[cellArgs.column.field])) {\n this.backupMergeCells(cellArgs.column.field, cellArgs.data[cellArgs.column.field], cellArgs.colSpan);\n }\n return td;\n };\n CellMergeRender.prototype.backupMergeCells = function (fName, data, span) {\n this.setMergeCells(this.generteKey(fName, data), span);\n };\n CellMergeRender.prototype.generteKey = function (fname, data) {\n return fname + '__' + data.toString();\n };\n CellMergeRender.prototype.splitKey = function (key) {\n return key.split('__');\n };\n CellMergeRender.prototype.containsKey = function (fname, data) {\n // eslint-disable-next-line no-prototype-builtins\n return this.getMergeCells().hasOwnProperty(this.generteKey(fname, data));\n };\n CellMergeRender.prototype.getMergeCells = function () {\n return this.parent.mergeCells;\n };\n CellMergeRender.prototype.setMergeCells = function (key, span) {\n this.parent.mergeCells[\"\" + key] = span;\n };\n CellMergeRender.prototype.updateVirtualCells = function (rows) {\n var mCells = this.getMergeCells();\n for (var _i = 0, _a = Object.keys(mCells); _i < _a.length; _i++) {\n var key = _a[_i];\n var value = mCells[\"\" + key];\n var merge = this.splitKey(key);\n var columnIndex = this.getIndexFromAllColumns(merge[0]);\n var vColumnIndices = this.parent.getColumnIndexesInView();\n var span = value - (vColumnIndices[0] - columnIndex);\n if (columnIndex < vColumnIndices[0] && span > 1) {\n for (var _b = 0, rows_1 = rows; _b < rows_1.length; _b++) {\n var row = rows_1[_b];\n if (row.data[merge[0]].toString() === merge[1].toString()) {\n row.cells[0].cellSpan = span;\n row.cells[0].spanText = merge[1];\n break;\n }\n }\n }\n }\n return rows;\n };\n CellMergeRender.prototype.getIndexFromAllColumns = function (field) {\n var index = iterateArrayOrObject(this.parent.getVisibleColumns(), function (item, index) {\n if (item.field === field) {\n return index;\n }\n return undefined;\n })[0];\n return index;\n };\n return CellMergeRender;\n}());\nexport { CellMergeRender };\n","/**\n * Specifies class names\n */\n/** @hidden */\nexport var rowCell = 'e-rowcell';\n/** @hidden */\nexport var gridHeader = 'e-gridheader';\n/** @hidden */\nexport var gridContent = 'e-gridcontent';\n/** @hidden */\nexport var gridFooter = 'e-gridfooter';\n/** @hidden */\nexport var headerContent = 'e-headercontent';\n/** @hidden */\nexport var movableContent = 'e-movablecontent';\n/** @hidden */\nexport var movableHeader = 'e-movableheader';\n/** @hidden */\nexport var frozenContent = 'e-frozencontent';\n/** @hidden */\nexport var frozenHeader = 'e-frozenheader';\n/** @hidden */\nexport var content = 'e-content';\n/** @hidden */\nexport var table = 'e-table';\n/** @hidden */\nexport var row = 'e-row';\n/** @hidden */\nexport var gridChkBox = 'e-gridchkbox';\n/** @hidden */\nexport var editedRow = 'e-editedrow';\n/** @hidden */\nexport var addedRow = 'e-addedrow';\n/**\n * Specifies repeated strings\n */\n/** @hidden */\nexport var changedRecords = 'changedRecords';\n/** @hidden */\nexport var addedRecords = 'addedRecords';\n/** @hidden */\nexport var deletedRecords = 'deletedRecords';\n/** @hidden */\nexport var leftRight = 'Left-Right';\n/** @hidden */\nexport var frozenRight = 'frozen-right';\n/** @hidden */\nexport var frozenLeft = 'frozen-left';\n/** @hidden */\nexport var dataColIndex = 'data-colindex';\n/** @hidden */\nexport var ariaColIndex = 'aria-colindex';\n/** @hidden */\nexport var dataRowIndex = 'data-rowindex';\n/** @hidden */\nexport var ariaRowIndex = 'aria-rowindex';\n/** @hidden */\nexport var tbody = 'tbody';\n/** @hidden */\nexport var colGroup = 'colgroup';\n/** @hidden */\nexport var open = 'open';\n/** @hidden */\nexport var change = 'change';\n/** @hidden */\nexport var focus = 'focus';\n/** @hidden */\nexport var create = 'created';\n/** @hidden */\nexport var beforeOpen = 'beforeOpen';\n/** @hidden */\nexport var downArrow = 'downArrow';\n/** @hidden */\nexport var upArrow = 'upArrow';\n/** @hidden */\nexport var pageUp = 'PageUp';\n/** @hidden */\nexport var pageDown = 'PageDown';\n/** @hidden */\nexport var enter = 'enter';\n/** @hidden */\nexport var shiftEnter = 'shiftEnter';\n/** @hidden */\nexport var tab = 'tab';\n/** @hidden */\nexport var shiftTab = 'shiftTab';\n","import { isNullOrUndefined, extend, addClass, removeClass } from '@syncfusion/ej2-base';\nimport { attributes as addAttributes } from '@syncfusion/ej2-base';\nimport { rowDataBound, queryCellInfo } from '../base/constant';\nimport { setStyleAndAttributes, getObject, extendObjWithFn } from '../base/util';\nimport { CellType } from '../base/enum';\nimport { CellMergeRender } from './cell-merge-renderer';\nimport * as literals from '../base/string-literals';\n/**\n * RowRenderer class which responsible for building row content.\n *\n * @hidden\n */\nvar RowRenderer = /** @class */ (function () {\n function RowRenderer(serviceLocator, cellType, parent) {\n this.isSpan = false;\n this.cellType = cellType;\n this.serviceLocator = serviceLocator;\n this.parent = parent;\n this.element = this.parent.createElement('tr');\n }\n /* eslint-disable */\n /**\n * Function to render the row content based on Column[] and data.\n *\n * @param {Row} row - specifies the row\n * @param {Column[]} columns - specifies the columns\n * @param {Object} attributes - specifies the attributes\n * @param {string} rowTemplate - specifies the rowTemplate\n * @param {Element} cloneNode - specifies the cloneNode\n * @returns {Element} returns the element\n */\n /* eslint-enable */\n RowRenderer.prototype.render = function (row, columns, attributes, rowTemplate, cloneNode) {\n return this.refreshRow(row, columns, attributes, rowTemplate, cloneNode);\n };\n /* eslint-disable */\n /**\n * Function to refresh the row content based on Column[] and data.\n *\n * @param {Row} row - specifies the row\n * @param {Column[]} columns - specifies the column\n * @param {boolean} isChanged - specifies isChanged\n * @param {Object} attributes - specifies the attributes\n * @param {string} rowTemplate - specifies the rowTemplate\n * @returns {void}\n */\n /* eslint-enable */\n RowRenderer.prototype.refresh = function (row, columns, isChanged, attributes, rowTemplate) {\n var _this = this;\n if (isChanged) {\n row.data = extendObjWithFn({}, row.changes);\n this.refreshMergeCells(row);\n }\n var node = this.parent.element.querySelector('[data-uid=' + row.uid + ']');\n var tr = this.refreshRow(row, columns, attributes, rowTemplate, null, isChanged);\n var cells = [].slice.call(tr.cells);\n var tempCells = [].slice.call(node.querySelectorAll('.e-templatecell'));\n if (this.parent.isReact && tempCells.length) {\n var _loop_1 = function (col) {\n if (col.template) {\n setTimeout(function () {\n _this.parent.refreshReactColumnTemplateByUid(col.uid, true);\n }, 0);\n return \"break\";\n }\n };\n for (var _i = 0, columns_1 = columns; _i < columns_1.length; _i++) {\n var col = columns_1[_i];\n var state_1 = _loop_1(col);\n if (state_1 === \"break\")\n break;\n }\n }\n var attr = [].slice.call(tr.attributes);\n attr.map(function (item) {\n node.setAttribute(item['name'], item['value']);\n });\n node.innerHTML = '';\n for (var _a = 0, cells_1 = cells; _a < cells_1.length; _a++) {\n var cell = cells_1[_a];\n node.appendChild(cell);\n }\n };\n // tslint:disable-next-line:max-func-body-length\n RowRenderer.prototype.refreshRow = function (row, columns, attributes, rowTemplate, cloneNode, isEdit) {\n var tr = !isNullOrUndefined(cloneNode) ? cloneNode : this.element.cloneNode();\n var rowArgs = { data: row.data };\n var cellArgs = { data: row.data };\n var chekBoxEnable = this.parent.getColumns().filter(function (col) { return col.type === 'checkbox' && col.field; })[0];\n var value = false;\n if (chekBoxEnable) {\n value = getObject(chekBoxEnable.field, rowArgs.data);\n }\n var selIndex = this.parent.getSelectedRowIndexes();\n if (row.isDataRow) {\n row.isSelected = selIndex.indexOf(row.index) > -1 || value;\n }\n if (row.isDataRow && this.parent.isCheckBoxSelection\n && this.parent.checkAllRows === 'Check' && this.parent.enableVirtualization) {\n row.isSelected = true;\n if (selIndex.indexOf(row.index) === -1) {\n selIndex.push(row.index);\n }\n }\n this.buildAttributeFromRow(tr, row);\n addAttributes(tr, extend({}, attributes, {}));\n setStyleAndAttributes(tr, row.attributes);\n var cellRendererFact = this.serviceLocator.getService('cellRendererFactory');\n var _loop_2 = function (i, len) {\n var cell = row.cells[parseInt(i.toString(), 10)];\n cell.isSelected = row.isSelected;\n cell.isColumnSelected = cell.column.isSelected;\n var cellRenderer = cellRendererFact.getCellRenderer(row.cells[parseInt(i.toString(), 10)].cellType\n || CellType.Data);\n var attrs = { 'index': !isNullOrUndefined(row.index) ? row.index.toString() : '' };\n if (row.isExpand && row.cells[parseInt(i.toString(), 10)].cellType === CellType.DetailExpand) {\n attrs['class'] = this_1.parent.isPrinting ? 'e-detailrowcollapse' : 'e-detailrowexpand';\n }\n var td = cellRenderer.render(row.cells[parseInt(i.toString(), 10)], row.data, attrs, row.isExpand, isEdit);\n if (row.cells[parseInt(i.toString(), 10)].cellType !== CellType.Filter) {\n if (row.cells[parseInt(i.toString(), 10)].cellType === CellType.Data\n || row.cells[parseInt(i.toString(), 10)].cellType === CellType.CommandColumn) {\n var isReactChild = this_1.parent.parentDetails && this_1.parent.parentDetails.parentInstObj &&\n this_1.parent.parentDetails.parentInstObj.isReact;\n if (((this_1.parent.isReact && this_1.parent.requireTemplateRef) || (isReactChild &&\n this_1.parent.parentDetails.parentInstObj.requireTemplateRef)) && cell.isTemplate) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var thisRef_1 = this_1;\n thisRef_1.parent.renderTemplates(function () {\n var ariaAttr = td.getAttribute('aria-label');\n td.setAttribute('aria-label', td.innerText + ariaAttr);\n thisRef_1.parent.trigger(queryCellInfo, extend(cellArgs, {\n cell: td, column: cell.column, colSpan: 1,\n rowSpan: 1, foreignKeyData: row.cells[parseInt(i.toString(), 10)].foreignKeyData,\n requestType: thisRef_1.parent.requestTypeAction\n }));\n });\n }\n else {\n this_1.parent.trigger(queryCellInfo, extend(cellArgs, {\n cell: td, column: cell.column, colSpan: 1,\n rowSpan: 1, foreignKeyData: row.cells[parseInt(i.toString(), 10)].foreignKeyData,\n requestType: this_1.parent.requestTypeAction\n }));\n }\n var isRowSpanned = false;\n if (row.index > 0 && this_1.isSpan) {\n var rowsObject = this_1.parent.isFrozenGrid() ?\n this_1.parent.contentModule.tempFreezeRows : this_1.parent.getRowsObject();\n var prevRowCells = this_1.parent.groupSettings.columns.length > 0 &&\n !rowsObject[row.index - 1].isDataRow ? rowsObject[row.index].cells : rowsObject[row.index - 1].cells;\n var uid_1 = 'uid';\n var prevRowCell = prevRowCells.filter(function (cell) {\n return cell.column.uid === row.cells[parseInt(i.toString(), 10)].column[\"\" + uid_1];\n })[0];\n isRowSpanned = prevRowCell.isRowSpanned ? prevRowCell.isRowSpanned : prevRowCell.rowSpanRange > 1;\n }\n if (cellArgs.colSpan > 1 || row.cells[parseInt(i.toString(), 10)].cellSpan > 1 || cellArgs.rowSpan > 1\n || isRowSpanned) {\n this_1.isSpan = true;\n var cellMerge = new CellMergeRender(this_1.serviceLocator, this_1.parent);\n td = cellMerge.render(cellArgs, row, i, td);\n }\n }\n if (!row.cells[parseInt(i.toString(), 10)].isSpanned) {\n tr.appendChild(td);\n }\n }\n };\n var this_1 = this;\n for (var i = 0, len = row.cells.length; i < len; i++) {\n _loop_2(i, len);\n }\n var args = { row: tr, rowHeight: this.parent.rowHeight };\n if (row.isDataRow) {\n var eventArg_1 = extend(rowArgs, args);\n eventArg_1.isSelectable = true;\n var isReactChild = this.parent.parentDetails && this.parent.parentDetails.parentInstObj &&\n this.parent.parentDetails.parentInstObj.isReact;\n var cellTemplate = eventArg_1.row.querySelectorAll('.e-templatecell');\n if (((this.parent.isReact && this.parent.requireTemplateRef) || (isReactChild &&\n this.parent.parentDetails.parentInstObj.requireTemplateRef)) && cellTemplate.length) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var thisRef_2 = this;\n thisRef_2.parent.renderTemplates(function () {\n thisRef_2.parent.trigger(rowDataBound, eventArg_1);\n });\n }\n else {\n this.parent.trigger(rowDataBound, eventArg_1);\n }\n row.isSelectable = eventArg_1.isSelectable;\n var isDraggable = this.parent.isRowDragable();\n if (this.parent.allowPaging && this.parent.selectionSettings.persistSelection) {\n var primaryKey_1 = this.parent.getPrimaryKeyFieldNames()[0];\n var pKey_1 = row.data ? row.data[\"\" + primaryKey_1] : null;\n var SelectedRecords = eventArg_1.isSelectable ? this.parent.partialSelectedRecords :\n this.parent.disableSelectedRecords;\n if (!SelectedRecords.some(function (data) { return data[\"\" + primaryKey_1] === pKey_1; })) {\n SelectedRecords.push(row.data);\n }\n }\n if (!eventArg_1.isSelectable) {\n this.parent.selectionModule.isPartialSelection = true;\n row.isSelected = false;\n var chkBox = args.row.querySelectorAll('.e-rowcell.e-gridchkbox');\n var isDrag = eventArg_1.row.querySelector('.e-rowdragdrop');\n var cellIdx = this.parent.groupSettings.columns.length + (isDrag || this.parent.isDetail() ? 1 : 0);\n for (var i = 0; i < chkBox.length; i++) {\n chkBox[parseInt(i.toString(), 10)].firstElementChild.classList.add('e-checkbox-disabled');\n chkBox[parseInt(i.toString(), 10)].querySelector('.e-frame').classList.remove('e-check');\n }\n if (row.cells.length) {\n for (var i = cellIdx; i < row.cells.length; i++) {\n var cell = eventArg_1.row.querySelector('.e-rowcell[data-colindex=\"' + row.cells[parseInt(i.toString(), 10)].index + '\"]');\n if (cell) {\n removeClass([cell], ['e-selectionbackground', 'e-active']);\n }\n }\n }\n if (isDrag) {\n removeClass([isDrag], ['e-selectionbackground', 'e-active']);\n }\n }\n if (this.parent.childGrid || isDraggable || this.parent.detailTemplate) {\n var td = tr.querySelectorAll('.e-rowcell:not(.e-hide)')[0];\n if (td) {\n td.classList.add('e-detailrowvisible');\n }\n }\n }\n if (this.parent.enableVirtualization) {\n rowArgs.rowHeight = this.parent.rowHeight;\n }\n if (rowArgs.rowHeight) {\n tr.style.height = rowArgs.rowHeight + 'px';\n }\n else if (this.parent.rowHeight && (tr.querySelector('.e-headercell') || tr.querySelector('.e-groupcaption'))) {\n tr.style.height = this.parent.rowHeight + 'px';\n }\n if (row.cssClass) {\n tr.classList.add(row.cssClass);\n }\n if (row.lazyLoadCssClass) {\n tr.classList.add(row.lazyLoadCssClass);\n }\n if (this.parent.rowRenderingMode === 'Vertical' && this.parent.allowTextWrap && (this.parent.textWrapSettings.wrapMode === 'Header'\n || this.parent.textWrapSettings.wrapMode === 'Both')) {\n tr.classList.add('e-verticalwrap');\n }\n var vFTable = this.parent.enableColumnVirtualization && this.parent.frozenColumns !== 0;\n if (!vFTable && this.parent.aggregates.length && this.parent.element.scrollHeight > this.parent.height) {\n for (var i = 0; i < this.parent.aggregates.length; i++) {\n var property = 'properties';\n var column = 'columns';\n if (this.parent.aggregates[parseInt(i.toString(), 10)][\"\" + property][\"\" + column][0].footerTemplate) {\n var summarycell = [].slice.call(tr.getElementsByClassName('e-summarycell'));\n if (summarycell.length) {\n var lastSummaryCell = (summarycell[summarycell.length - 1]);\n addClass([lastSummaryCell], ['e-lastsummarycell']);\n var firstSummaryCell = (summarycell[0]);\n addClass([firstSummaryCell], ['e-firstsummarycell']);\n }\n }\n }\n }\n return tr;\n };\n RowRenderer.prototype.refreshMergeCells = function (row) {\n for (var _i = 0, _a = row.cells; _i < _a.length; _i++) {\n var cell = _a[_i];\n cell.isSpanned = false;\n }\n return row;\n };\n /* eslint-disable */\n /**\n * Function to check and add alternative row css class.\n *\n * @param {Element} tr - specifies the tr element\n * @param {Row} row - specifies the row\n * @returns {void}\n */\n /* eslint-enable */\n RowRenderer.prototype.buildAttributeFromRow = function (tr, row) {\n var attr = {};\n var prop = { 'rowindex': literals.dataRowIndex, 'dataUID': 'data-uid', 'ariaSelected': 'aria-selected' };\n var classes = [];\n if (row.isDataRow) {\n classes.push(literals.row);\n }\n if (row.isAltRow) {\n classes.push('e-altrow');\n }\n if (row.isCaptionRow) {\n classes.push('e-groupcaptionrow');\n }\n if (row.isAggregateRow && row.parentUid) {\n classes.push('e-groupfooterrow');\n }\n if (!isNullOrUndefined(row.index)) {\n attr[literals.ariaRowIndex] = row.index + 1;\n attr[prop.rowindex] = row.index;\n }\n if (row.rowSpan) {\n attr.rowSpan = row.rowSpan;\n }\n if (row.uid) {\n attr[prop.dataUID] = row.uid;\n }\n if (row.isSelected) {\n attr[prop.ariaSelected] = true;\n }\n if (row.visible === false) {\n classes.push('e-hide');\n }\n attr.class = classes;\n setStyleAndAttributes(tr, attr);\n };\n return RowRenderer;\n}());\nexport { RowRenderer };\n","import { isNullOrUndefined, getValue, setValue } from '@syncfusion/ej2-base';\nimport { Row } from '../models/row';\nimport { CellType } from '../base/enum';\nimport { Cell } from '../models/cell';\nimport { getUid } from '../base/util';\nimport { getForeignData } from '../../grid/base/util';\nimport * as events from '../base/constant';\n/**\n * RowModelGenerator is used to generate grid data rows.\n *\n * @hidden\n */\nvar RowModelGenerator = /** @class */ (function () {\n /**\n * Constructor for header renderer module\n *\n * @param {IGrid} parent - specifies the IGrid\n */\n function RowModelGenerator(parent) {\n this.parent = parent;\n }\n RowModelGenerator.prototype.generateRows = function (data, args) {\n var rows = [];\n var startIndex = this.parent.enableVirtualization && args ? args.startIndex : 0;\n startIndex = this.parent.enableInfiniteScrolling && args ? this.getInfiniteIndex(args) : startIndex;\n if (this.parent.enableImmutableMode && args && args.startIndex) {\n startIndex = args.startIndex;\n }\n for (var i = 0, len = Object.keys(data).length; i < len; i++, startIndex++) {\n rows[parseInt(i.toString(), 10)] = this.generateRow(data[parseInt(i.toString(), 10)], startIndex);\n }\n return rows;\n };\n RowModelGenerator.prototype.ensureColumns = function () {\n //TODO: generate dummy column for group, detail here;\n var cols = [];\n if (this.parent.detailTemplate || this.parent.childGrid) {\n var args = {};\n this.parent.notify(events.detailIndentCellInfo, args);\n cols.push(this.generateCell(args, null, CellType.DetailExpand));\n }\n if (this.parent.isRowDragable()) {\n cols.push(this.generateCell({}, null, CellType.RowDragIcon));\n }\n return cols;\n };\n RowModelGenerator.prototype.generateRow = function (data, index, cssClass, indent, pid, tIndex, parentUid) {\n var options = {};\n options.foreignKeyData = {};\n options.uid = getUid('grid-row');\n options.data = data;\n options.index = index;\n options.indent = indent;\n options.tIndex = tIndex;\n options.isDataRow = true;\n options.parentGid = pid;\n options.parentUid = parentUid;\n if (this.parent.isPrinting) {\n if (this.parent.hierarchyPrintMode === 'All') {\n options.isExpand = true;\n }\n else if (this.parent.hierarchyPrintMode === 'Expanded' && this.parent.expandedRows && this.parent.expandedRows[parseInt(index.toString(), 10)]) {\n options.isExpand = this.parent.expandedRows[parseInt(index.toString(), 10)].isExpand;\n }\n }\n options.cssClass = cssClass;\n options.isAltRow = this.parent.enableAltRow ? index % 2 !== 0 : false;\n options.isAltRow = this.parent.enableAltRow ? index % 2 !== 0 : false;\n options.isSelected = this.parent.getSelectedRowIndexes().indexOf(index) > -1;\n this.refreshForeignKeyRow(options);\n var cells = this.ensureColumns();\n var row = new Row(options, this.parent);\n row.cells = this.parent.getFrozenMode() === 'Right' ? this.generateCells(options).concat(cells)\n : cells.concat(this.generateCells(options));\n return row;\n };\n RowModelGenerator.prototype.refreshForeignKeyRow = function (options) {\n var foreignKeyColumns = this.parent.getForeignKeyColumns();\n for (var i = 0; i < foreignKeyColumns.length; i++) {\n setValue(foreignKeyColumns[parseInt(i.toString(), 10)].field, getForeignData(foreignKeyColumns[parseInt(i.toString(), 10)], options.data), options.foreignKeyData);\n }\n };\n RowModelGenerator.prototype.generateCells = function (options) {\n var dummies = this.parent.getColumns();\n var tmp = [];\n for (var i = 0; i < dummies.length; i++) {\n tmp.push(this.generateCell(dummies[parseInt(i.toString(), 10)], options.uid, isNullOrUndefined(dummies[parseInt(i.toString(), 10)].commands) ? undefined : CellType.CommandColumn, null, i, options.foreignKeyData));\n }\n return tmp;\n };\n /**\n *\n * @param {Column} column - Defines column details\n * @param {string} rowId - Defines row id\n * @param {CellType} cellType - Defines cell type\n * @param {number} colSpan - Defines colSpan\n * @param {number} oIndex - Defines index\n * @param {Object} foreignKeyData - Defines foreign key data\n * @returns {Cell} returns cell model\n * @hidden\n */\n RowModelGenerator.prototype.generateCell = function (column, rowId, cellType, colSpan, oIndex, foreignKeyData) {\n var opt = {\n 'visible': column.visible,\n 'isDataCell': !isNullOrUndefined(column.field || column.template),\n 'isTemplate': !isNullOrUndefined(column.template),\n 'rowID': rowId,\n 'column': column,\n 'cellType': !isNullOrUndefined(cellType) ? cellType : CellType.Data,\n 'colSpan': colSpan,\n 'commands': column.commands,\n 'isForeignKey': column.isForeignColumn && column.isForeignColumn(),\n 'foreignKeyData': column.isForeignColumn && column.isForeignColumn() && getValue(column.field, foreignKeyData)\n };\n if (opt.isDataCell || opt.column.type === 'checkbox' || opt.commands) {\n opt.index = oIndex;\n }\n return new Cell(opt);\n };\n RowModelGenerator.prototype.refreshRows = function (input) {\n for (var i = 0; i < input.length; i++) {\n this.refreshForeignKeyRow(input[parseInt(i.toString(), 10)]);\n input[parseInt(i.toString(), 10)].cells = this.generateCells(input[parseInt(i.toString(), 10)]);\n }\n return input;\n };\n RowModelGenerator.prototype.getInfiniteIndex = function (args) {\n return args.requestType === 'infiniteScroll' || args.requestType === 'delete' || args.action === 'add'\n ? (isNullOrUndefined(args.startIndex) ? args['index'] : args.startIndex) : 0;\n };\n return RowModelGenerator;\n}());\nexport { RowModelGenerator };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { Row } from '../models/row';\nimport { Column } from '../models/column';\nimport { isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { calculateAggregate, getUid } from '../base/util';\nimport { CellType } from '../base/enum';\nimport { Cell } from '../models/cell';\n/**\n * Summary row model generator\n *\n * @hidden\n */\nvar SummaryModelGenerator = /** @class */ (function () {\n /**\n * Constructor for Summary row model generator\n *\n * @param {IGrid} parent - specifies the IGrid\n */\n function SummaryModelGenerator(parent) {\n this.parent = parent;\n }\n SummaryModelGenerator.prototype.getData = function () {\n var _this = this;\n var rows = [];\n var row = this.parent.aggregates.slice();\n for (var i = 0; i < row.length; i++) {\n var columns = row[parseInt(i.toString(), 10)].columns.filter(function (column) {\n return !(column.footerTemplate || column.groupFooterTemplate || column.groupCaptionTemplate)\n || _this.columnSelector(column);\n });\n if (columns.length) {\n rows.push({ columns: columns });\n }\n }\n return rows;\n };\n SummaryModelGenerator.prototype.columnSelector = function (column) {\n return column.footerTemplate !== undefined;\n };\n SummaryModelGenerator.prototype.getColumns = function (start, end) {\n var columns = [];\n if (this.parent.detailTemplate || !isNullOrUndefined(this.parent.childGrid)) {\n columns.push(new Column({}));\n }\n if (this.parent.allowGrouping) {\n for (var i = 0; i < this.parent.groupSettings.columns.length; i++) {\n columns.push(new Column({}));\n }\n }\n if (this.parent.isRowDragable() && !start) {\n columns.push(new Column({}));\n }\n columns.push.apply(columns, this.parent.getColumns());\n end = end && !start ? end + this.parent.getIndentCount() : end;\n return isNullOrUndefined(start) ? columns : columns.slice(start, end);\n };\n SummaryModelGenerator.prototype.generateRows = function (input, args, start, end, columns) {\n if (input.length === 0) {\n if (args === undefined || !args.count) {\n return [];\n }\n }\n var data = this.buildSummaryData(input, args);\n var rows = [];\n var row = this.getData();\n for (var i = 0; i < row.length; i++) {\n rows.push(this.getGeneratedRow(row[parseInt(i.toString(), 10)], data[parseInt(i.toString(), 10)], args ? args.level : undefined, start, end, args ? args.parentUid : undefined, columns));\n }\n return rows;\n };\n SummaryModelGenerator.prototype.getGeneratedRow = function (summaryRow, data, raw, start, end, parentUid, columns) {\n var tmp = [];\n var indents = this.getIndentByLevel();\n var isDetailGridAlone = !isNullOrUndefined(this.parent.childGrid);\n var indentLength = !start ? this.parent.getIndentCount() : 0;\n if (this.parent.isRowDragable() && !start) {\n indents = ['e-indentcelltop'];\n }\n var values = columns ? columns : this.getColumns(start, end);\n for (var i = 0; i < values.length; i++) {\n tmp.push(this.getGeneratedCell(values[parseInt(i.toString(), 10)], summaryRow, i >= indentLength ? this.getCellType() :\n i === 0 && this.parent.childGrid ? CellType.DetailFooterIntent : CellType.Indent, indents[parseInt(i.toString(), 10)], isDetailGridAlone));\n }\n var row = new Row({ data: data, attributes: { class: 'e-summaryrow' } });\n row.cells = tmp;\n row.uid = getUid('grid-row');\n row.parentUid = parentUid;\n row.isAggregateRow = true;\n row.visible = tmp.some(function (cell) { return cell.isDataCell && cell.visible; });\n return row;\n };\n SummaryModelGenerator.prototype.getGeneratedCell = function (column, summaryRow, cellType, indent, isDetailGridAlone) {\n //Get the summary column by display\n var sColumn = summaryRow.columns.filter(function (scolumn) { return scolumn.columnName === column.field; })[0];\n var attrs = {\n 'style': { 'textAlign': column.textAlign },\n 'e-mappinguid': column.uid, index: column.index\n };\n if (indent) {\n attrs.class = indent;\n }\n if (isNullOrUndefined(indent) && isDetailGridAlone) {\n attrs.class = 'e-detailindentcelltop';\n }\n var opt = {\n 'visible': column.visible,\n 'isDataCell': !isNullOrUndefined(sColumn),\n 'isTemplate': sColumn && !isNullOrUndefined(sColumn.footerTemplate\n || sColumn.groupFooterTemplate || sColumn.groupCaptionTemplate),\n 'column': sColumn || {},\n 'attributes': attrs,\n 'cellType': cellType\n };\n opt.column.headerText = column.headerText;\n return new Cell(opt);\n };\n SummaryModelGenerator.prototype.buildSummaryData = function (data, args) {\n var dummy = [];\n var summaryRows = this.getData();\n var single = {};\n for (var i = 0; i < summaryRows.length; i++) {\n single = {};\n var column = summaryRows[parseInt(i.toString(), 10)].columns;\n for (var j = 0; j < column.length; j++) {\n single = this.setTemplate(column[parseInt(j.toString(), 10)], (args && args.aggregates) ? args : data, single);\n }\n dummy.push(single);\n }\n return dummy;\n };\n SummaryModelGenerator.prototype.getIndentByLevel = function () {\n return this.parent.groupSettings.columns.map(function () { return 'e-indentcelltop'; });\n };\n SummaryModelGenerator.prototype.setTemplate = function (column, data, single) {\n var types = column.type;\n var helper = {};\n var formatFn = column.getFormatter() || (function () { return function (a) { return a; }; })();\n var group = data;\n if (!(types instanceof Array)) {\n types = [column.type];\n }\n for (var i = 0; i < types.length; i++) {\n var key = column.field + ' - ' + types[parseInt(i.toString(), 10)].toLowerCase();\n var disp = column.columnName;\n var val = types[parseInt(i.toString(), 10)] !== 'Custom' && group.aggregates && key in group.aggregates ? group.aggregates[\"\" + key] :\n calculateAggregate(types[parseInt(i.toString(), 10)], group.aggregates ? group : data, column, this.parent);\n single[\"\" + disp] = single[\"\" + disp] || {};\n single[\"\" + disp][\"\" + key] = val;\n single[\"\" + disp][types[parseInt(i.toString(), 10)]] = !isNullOrUndefined(val) ? formatFn(val) : ' ';\n if (group.field) {\n single[\"\" + disp].field = group.field;\n single[\"\" + disp].key = group.key;\n }\n }\n helper.format = column.getFormatter();\n column.setTemplate(helper);\n return single;\n };\n SummaryModelGenerator.prototype.getCellType = function () {\n return CellType.Summary;\n };\n return SummaryModelGenerator;\n}());\nexport { SummaryModelGenerator };\nvar GroupSummaryModelGenerator = /** @class */ (function (_super) {\n __extends(GroupSummaryModelGenerator, _super);\n function GroupSummaryModelGenerator() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n GroupSummaryModelGenerator.prototype.columnSelector = function (column) {\n return column.groupFooterTemplate !== undefined;\n };\n GroupSummaryModelGenerator.prototype.getIndentByLevel = function (level) {\n if (level === void 0) { level = this.parent.groupSettings.columns.length; }\n return this.parent.groupSettings.columns.map(function (v, indx) { return indx <= level - 1 ? '' : 'e-indentcelltop'; });\n };\n GroupSummaryModelGenerator.prototype.getCellType = function () {\n return CellType.GroupSummary;\n };\n return GroupSummaryModelGenerator;\n}(SummaryModelGenerator));\nexport { GroupSummaryModelGenerator };\nvar CaptionSummaryModelGenerator = /** @class */ (function (_super) {\n __extends(CaptionSummaryModelGenerator, _super);\n function CaptionSummaryModelGenerator() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CaptionSummaryModelGenerator.prototype.columnSelector = function (column) {\n return column.groupCaptionTemplate !== undefined;\n };\n CaptionSummaryModelGenerator.prototype.getData = function () {\n var initVal = { columns: [] };\n return [_super.prototype.getData.call(this).reduce(function (prev, cur) {\n prev.columns = prev.columns.concat(cur.columns);\n return prev;\n }, initVal)];\n };\n CaptionSummaryModelGenerator.prototype.isEmpty = function () {\n return (this.getData()[0].columns || []).length === 0;\n };\n CaptionSummaryModelGenerator.prototype.getCellType = function () {\n return CellType.CaptionSummary;\n };\n return CaptionSummaryModelGenerator;\n}(SummaryModelGenerator));\nexport { CaptionSummaryModelGenerator };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { Row } from '../models/row';\nimport { isNullOrUndefined, extend, setValue } from '@syncfusion/ej2-base';\nimport { CellType } from '../base/enum';\nimport { RowModelGenerator } from '../services/row-model-generator';\nimport { GroupSummaryModelGenerator, CaptionSummaryModelGenerator } from '../services/summary-model-generator';\nimport { getForeignData, getUid } from '../../grid/base/util';\n/**\n * GroupModelGenerator is used to generate group caption rows and data rows.\n *\n * @hidden\n */\nvar GroupModelGenerator = /** @class */ (function (_super) {\n __extends(GroupModelGenerator, _super);\n function GroupModelGenerator(parent) {\n var _this = _super.call(this, parent) || this;\n _this.rows = [];\n /** @hidden */\n _this.index = 0;\n _this.infiniteChildCount = 0;\n _this.renderInfiniteAgg = true;\n _this.parent = parent;\n _this.summaryModelGen = new GroupSummaryModelGenerator(parent);\n _this.captionModelGen = new CaptionSummaryModelGenerator(parent);\n return _this;\n }\n GroupModelGenerator.prototype.generateRows = function (data, args) {\n if (this.parent.groupSettings.columns.length === 0) {\n return _super.prototype.generateRows.call(this, data, args);\n }\n this.isInfiniteScroll = (args.requestType === 'infiniteScroll');\n this.rows = [];\n this.index = this.parent.enableVirtualization || this.isInfiniteScroll ? args.startIndex : 0;\n for (var i = 0, len = data.length; i < len; i++) {\n this.infiniteChildCount = 0;\n this.renderInfiniteAgg = true;\n this.getGroupedRecords(0, data[parseInt(i.toString(), 10)], data.level, i, undefined, this.rows.length);\n }\n this.index = 0;\n if (this.parent.isCollapseStateEnabled()) {\n this.ensureRowVisibility();\n }\n return this.rows;\n };\n GroupModelGenerator.prototype.getGroupedRecords = function (index, data, raw, parentid, childId, tIndex, parentUid) {\n var _a;\n var level = raw;\n if (isNullOrUndefined(data.items)) {\n if (isNullOrUndefined(data.GroupGuid)) {\n this.rows = this.rows.concat(this.generateDataRows(data, index, parentid, this.rows.length, parentUid));\n }\n else {\n for (var j = 0, len = data.length; j < len; j++) {\n this.getGroupedRecords(index, data[parseInt(j.toString(), 10)], data.level, parentid, index, this.rows.length, parentUid);\n }\n }\n }\n else {\n var preCaption = void 0;\n var captionRow = this.generateCaptionRow(data, index, parentid, childId, tIndex, parentUid);\n if (this.isInfiniteScroll) {\n preCaption = this.getPreCaption(index, captionRow.data.key);\n }\n if (!preCaption) {\n this.rows = this.rows.concat(captionRow);\n }\n else {\n captionRow.uid = preCaption.uid;\n }\n if (data.items && data.items.length) {\n this.getGroupedRecords(index + 1, data.items, data.items.level, parentid, index + 1, this.rows.length, captionRow.uid);\n }\n if (this.parent.aggregates.length && this.isRenderAggregate(captionRow)) {\n var rowCnt = this.rows.length;\n (_a = this.rows).push.apply(_a, this.summaryModelGen.generateRows(data, { level: level, parentUid: captionRow.uid }));\n for (var i = rowCnt - 1; i >= 0; i--) {\n if (this.rows[parseInt(i.toString(), 10)].isCaptionRow) {\n this.rows[parseInt(i.toString(), 10)].aggregatesCount = this.rows.length - rowCnt;\n }\n else if (!this.rows[parseInt(i.toString(), 10)].isCaptionRow && !this.rows[parseInt(i.toString(), 10)].isDataRow) {\n break;\n }\n }\n }\n if (preCaption) {\n this.setInfiniteRowVisibility(preCaption);\n }\n }\n };\n GroupModelGenerator.prototype.isRenderAggregate = function (data) {\n if (this.parent.enableInfiniteScrolling) {\n if (!this.renderInfiniteAgg) {\n return false;\n }\n this.getPreCaption(data.indent, data.data.key);\n this.renderInfiniteAgg = data.data.count === this.infiniteChildCount;\n return this.renderInfiniteAgg;\n }\n return !this.parent.enableInfiniteScrolling;\n };\n GroupModelGenerator.prototype.getPreCaption = function (indent, key) {\n var rowObj = this.parent.getRowsObject().concat(this.rows);\n var preCap;\n this.infiniteChildCount = 0;\n var i = rowObj.length;\n while (i--) {\n if (rowObj[parseInt(i.toString(), 10)].isCaptionRow && rowObj[parseInt(i.toString(), 10)].indent === indent\n && rowObj[parseInt(i.toString(), 10)].data.key === key) {\n preCap = rowObj[parseInt(i.toString(), 10)];\n }\n if (rowObj[parseInt(i.toString(), 10)].indent === indent || rowObj[parseInt(i.toString(), 10)].indent < indent) {\n break;\n }\n if (rowObj[parseInt(i.toString(), 10)].indent === indent + 1) {\n this.infiniteChildCount++;\n }\n }\n return preCap;\n };\n GroupModelGenerator.prototype.getCaptionRowCells = function (field, indent, data) {\n var cells = [];\n var visibles = [];\n var column = this.parent.getColumnByField(field);\n var indexes = this.parent.getColumnIndexesInView();\n if (this.parent.enableColumnVirtualization) {\n column = this.parent.columns.filter(function (c) { return c.field === field; })[0];\n }\n var groupedLen = this.parent.groupSettings.columns.length;\n var gObj = this.parent;\n if (!this.parent.enableColumnVirtualization || indexes.indexOf(indent) !== -1) {\n for (var i = 0; i < indent; i++) {\n cells.push(this.generateIndentCell());\n }\n cells.push(this.generateCell({}, null, CellType.Expand));\n }\n indent = this.parent.enableColumnVirtualization ? 1 :\n (this.parent.getVisibleColumns().length + groupedLen + (gObj.detailTemplate || gObj.childGrid ? 1 : 0) -\n indent + (this.parent.getVisibleColumns().length ? -1 : 0));\n //Captionsummary cells will be added here.\n if (this.parent.aggregates.length && !this.captionModelGen.isEmpty()) {\n var captionCells = this.captionModelGen.generateRows(data)[0];\n extend(data, captionCells.data);\n var cIndex_1 = 0;\n captionCells.cells.some(function (cell, index) { cIndex_1 = index; return cell.visible && cell.isDataCell; });\n visibles = captionCells.cells.slice(cIndex_1).filter(function (cell) { return cell.visible; });\n if (captionCells.visible && visibles[0].column.field === this.parent.getVisibleColumns()[0].field) {\n visibles = visibles.slice(1);\n }\n if (this.parent.getVisibleColumns().length === 1) {\n visibles = [];\n }\n indent = indent - visibles.length;\n }\n var cols = (!this.parent.enableColumnVirtualization ? [column] : this.parent.getColumns());\n var wFlag = true;\n for (var j = 0; j < cols.length; j++) {\n var tmpFlag = wFlag && indexes.indexOf(indent) !== -1;\n if (tmpFlag) {\n wFlag = false;\n }\n var cellType = !this.parent.enableColumnVirtualization || tmpFlag ?\n CellType.GroupCaption : CellType.GroupCaptionEmpty;\n indent = this.parent.enableColumnVirtualization && cellType === CellType.GroupCaption ? indent + groupedLen : indent;\n if (gObj.isRowDragable()) {\n indent++;\n }\n cells.push(this.generateCell(column, null, cellType, indent));\n }\n cells.push.apply(cells, visibles);\n return cells;\n };\n /**\n * @param {GroupedData} data - specifies the data\n * @param {number} indent - specifies the indent\n * @param {number} parentID - specifies the parentID\n * @param {number} childID - specifies the childID\n * @param {number} tIndex - specifies the TIndex\n * @param {string} parentUid - specifies the ParentUid\n * @returns {Row} returns the Row object\n * @hidden\n */\n GroupModelGenerator.prototype.generateCaptionRow = function (data, indent, parentID, childID, tIndex, parentUid) {\n var options = {};\n var records = 'records';\n var col = this.parent.getColumnByField(data.field);\n options.data = extend({}, data);\n if (col) {\n options.data.field = data.field;\n }\n options.isDataRow = false;\n options.isExpand = !this.parent.groupSettings.enableLazyLoading && !this.parent.isCollapseStateEnabled();\n options.parentGid = parentID;\n options.childGid = childID;\n options.tIndex = tIndex;\n options.isCaptionRow = true;\n options.parentUid = parentUid;\n options.gSummary = !isNullOrUndefined(data.items[\"\" + records]) ? data.items[\"\" + records].length : data.items.length;\n options.uid = getUid('grid-row');\n var row = new Row(options);\n row.indent = indent;\n this.getForeignKeyData(row);\n row.cells = this.getCaptionRowCells(data.field, indent, row.data);\n return row;\n };\n GroupModelGenerator.prototype.getForeignKeyData = function (row) {\n var data = row.data;\n var col = this.parent.getColumnByField(data.field);\n if (col && col.isForeignColumn && col.isForeignColumn()) {\n var fkValue = (isNullOrUndefined(data.key) ? '' : col.valueAccessor(col.foreignKeyValue, getForeignData(col, {}, data.key)[0], col));\n setValue('foreignKey', fkValue, row.data);\n }\n };\n /**\n * @param {Object[]} data - specifies the data\n * @param {number} indent - specifies the indent\n * @param {number} childID - specifies the childID\n * @param {number} tIndex - specifies the tIndex\n * @param {string} parentUid - specifies the ParentUid\n * @returns {Row[]} returns the row object\n * @hidden\n */\n GroupModelGenerator.prototype.generateDataRows = function (data, indent, childID, tIndex, parentUid) {\n var rows = [];\n var indexes = this.parent.getColumnIndexesInView();\n for (var i = 0, len = data.length; i < len; i++, tIndex++) {\n rows[parseInt(i.toString(), 10)] = this.generateRow(data[parseInt(i.toString(), 10)], this.index, i ? undefined : 'e-firstchildrow', indent, childID, tIndex, parentUid);\n for (var j = 0; j < indent; j++) {\n if (this.parent.enableColumnVirtualization && indexes.indexOf(indent) === -1) {\n continue;\n }\n rows[parseInt(i.toString(), 10)].cells.unshift(this.generateIndentCell());\n }\n this.index++;\n }\n return rows;\n };\n GroupModelGenerator.prototype.generateIndentCell = function () {\n return this.generateCell({}, null, CellType.Indent);\n };\n GroupModelGenerator.prototype.refreshRows = function (input) {\n var indexes = this.parent.getColumnIndexesInView();\n for (var i = 0; i < input.length; i++) {\n if (input[parseInt(i.toString(), 10)].isDataRow) {\n input[parseInt(i.toString(), 10)].cells = this.generateCells(input[parseInt(i.toString(), 10)]);\n for (var j = 0; j < input[parseInt(i.toString(), 10)].indent; j++) {\n if (this.parent.enableColumnVirtualization\n && indexes.indexOf(input[parseInt(i.toString(), 10)].indent) === -1) {\n continue;\n }\n input[parseInt(i.toString(), 10)].cells.unshift(this.generateIndentCell());\n }\n }\n else {\n var cRow = this.generateCaptionRow(input[parseInt(i.toString(), 10)].data, input[parseInt(i.toString(), 10)].indent);\n input[parseInt(i.toString(), 10)].cells = cRow.cells;\n }\n }\n return input;\n };\n GroupModelGenerator.prototype.setInfiniteRowVisibility = function (caption) {\n if (!caption.isExpand || caption.visible === false) {\n for (var _i = 0, _a = this.rows; _i < _a.length; _i++) {\n var row = _a[_i];\n if (row.parentUid === caption.uid) {\n row.visible = false;\n if (row.isCaptionRow) {\n this.setInfiniteRowVisibility(row);\n }\n }\n }\n }\n };\n GroupModelGenerator.prototype.ensureRowVisibility = function () {\n for (var i = 0; i < this.rows.length; i++) {\n var row = this.rows[parseInt(i.toString(), 10)];\n if (!row.isCaptionRow) {\n continue;\n }\n for (var j = i + 1; j < this.rows.length; j++) {\n var childRow = this.rows[parseInt(j.toString(), 10)];\n if (row.uid === childRow.parentUid) {\n this.rows[parseInt(j.toString(), 10)].visible = row.isExpand;\n }\n }\n }\n };\n return GroupModelGenerator;\n}(RowModelGenerator));\nexport { GroupModelGenerator };\n","import { Droppable } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined, extend } from '@syncfusion/ej2-base';\nimport { setStyleAttribute, remove, updateBlazorTemplate } from '@syncfusion/ej2-base';\nimport { getUpdateUsingRaf, appendChildren, setDisplayValue, clearReactVueTemplates } from '../base/util';\nimport * as events from '../base/constant';\nimport { RowRenderer } from './row-renderer';\nimport { CellMergeRender } from './cell-merge-renderer';\nimport { RowModelGenerator } from '../services/row-model-generator';\nimport { GroupModelGenerator } from '../services/group-model-generator';\nimport { isGroupAdaptive } from '../base/util';\nimport * as literals from '../base/string-literals';\n// eslint-disable-next-line valid-jsdoc\n/**\n * Content module is used to render grid content\n *\n * @hidden\n */\nvar ContentRender = /** @class */ (function () {\n /**\n * Constructor for content renderer module\n *\n * @param {IGrid} parent - specifies the Igrid\n * @param {ServiceLocator} serviceLocator - specifies the service locator\n */\n function ContentRender(parent, serviceLocator) {\n var _this = this;\n this.rows = [];\n this.freezeRows = [];\n this.movableRows = [];\n this.freezeRowElements = [];\n /** @hidden */\n this.currentInfo = {};\n /** @hidden */\n this.prevCurrentView = [];\n this.isLoaded = true;\n this.viewColIndexes = [];\n this.drop = function (e) {\n _this.parent.notify(events.columnDrop, { target: e.target, droppedElement: e.droppedElement });\n remove(e.droppedElement);\n };\n this.infiniteCache = {};\n this.isRemove = false;\n /** @hidden */\n this.visibleRows = [];\n this.visibleFrozenRows = [];\n this.rightFreezeRows = [];\n this.isAddRows = false;\n this.isInfiniteFreeze = false;\n this.useGroupCache = false;\n /** @hidden */\n this.tempFreezeRows = [];\n this.rafCallback = function (args) {\n var arg = args;\n return function () {\n if (_this.parent.isFrozenGrid() && (_this.parent.enableVirtualization || _this.parent.enableInfiniteScrolling)) {\n var tableName = args.tableName;\n _this.isLoaded = _this.parent.getFrozenMode() === literals.leftRight ? tableName === 'frozen-right' : tableName === 'movable';\n if (_this.parent.enableColumnVirtualization && args.requestType === 'virtualscroll' && _this.isLoaded) {\n var mHdr = [].slice.call(_this.parent.getMovableVirtualHeader().getElementsByClassName(literals.row));\n var fHdr = [].slice.call(_this.parent.getFrozenVirtualHeader().getElementsByClassName(literals.row));\n _this.isLoaded = mHdr.length === fHdr.length;\n }\n }\n _this.ariaService.setBusy(_this.getPanel().querySelector('.' + literals.content), false);\n if (_this.parent.isDestroyed) {\n return;\n }\n var rows = _this.rows.slice(0);\n if (_this.parent.enableInfiniteScrolling) {\n if (_this.parent.groupSettings.enableLazyLoading) {\n for (var i = 0; i < _this.visibleRows.length; i++) {\n _this.setRowsInLazyGroup(_this.visibleRows[parseInt(i.toString(), 10)], i);\n }\n }\n rows = _this.parent.getRowsObject();\n var prevPage = arg.prevPage;\n if (_this.parent.infiniteScrollSettings.enableCache && prevPage) {\n var maxBlock = _this.parent.infiniteScrollSettings.maxBlocks;\n rows = [];\n var rowIdx = (parseInt(_this.rowElements[0].getAttribute('data-rowindex'), 10) + 1);\n var startIdx = Math.ceil(rowIdx / _this.parent.pageSettings.pageSize);\n for (var i = 0, count = startIdx; i < maxBlock; i++, count++) {\n if (_this.infiniteCache[parseInt(count.toString(), 10)]) {\n rows = rows.concat(_this.infiniteCache[parseInt(count.toString(), 10)]);\n }\n }\n }\n }\n if (_this.parent.isFrozenGrid()) {\n rows = args.isFrozen ? _this.freezeRows : args.renderFrozenRightContent ? _this.parent.getFrozenRightRowsObject()\n : _this.movableRows;\n }\n _this.parent.notify(events.contentReady, { rows: rows, args: arg });\n if (_this.parent.autoFit) {\n _this.parent.preventAdjustColumns();\n }\n if (!_this.parent.isInitialLoad) {\n _this.parent.focusModule.setFirstFocusableTabIndex();\n }\n if (_this.isLoaded) {\n _this.parent.isManualRefresh = false;\n if (_this.parent.enableInfiniteScrolling && _this.parent.groupSettings.enableLazyLoading && args.requestType === 'sorting') {\n _this.parent.infiniteScrollModule['groupCaptionAction'] = undefined;\n }\n var isReactChild = _this.parent.parentDetails && _this.parent.parentDetails.parentInstObj &&\n _this.parent.parentDetails.parentInstObj.isReact;\n if ((_this.parent.isReact || isReactChild) && _this.parent.element.querySelectorAll('.e-templatecell').length) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var thisRef_1 = _this;\n thisRef_1.parent.renderTemplates(function () {\n thisRef_1.parent.trigger(events.dataBound, {}, function () {\n if (thisRef_1.parent.allowTextWrap) {\n thisRef_1.parent.notify(events.freezeRender, { case: 'textwrap' });\n }\n });\n });\n }\n else {\n _this.parent.trigger(events.dataBound, {}, function () {\n if (_this.parent.allowTextWrap) {\n _this.parent.notify(events.freezeRender, { case: 'textwrap' });\n }\n });\n }\n if (_this.parent.allowTextWrap && _this.parent.height === 'auto') {\n if (_this.parent.getContentTable().scrollHeight > _this.parent.getContent().clientHeight) {\n _this.parent.scrollModule.setPadding();\n }\n else {\n _this.parent.scrollModule.removePadding();\n }\n }\n }\n if (arg) {\n var action = (arg.requestType || '').toLowerCase() + '-complete';\n _this.parent.notify(action, arg);\n if (args.requestType === 'batchsave') {\n args.cancel = false;\n _this.parent.trigger(events.actionComplete, args);\n }\n }\n if (_this.isLoaded) {\n _this.parent.hideSpinner();\n }\n };\n };\n this.parent = parent;\n this.serviceLocator = serviceLocator;\n this.ariaService = this.serviceLocator.getService('ariaService');\n this.parent.enableDeepCompare = this.parent.getDataModule().isRemote();\n this.generator = this.getModelGenerator();\n if (this.parent.isDestroyed) {\n return;\n }\n if (!this.parent.enableColumnVirtualization && !this.parent.enableVirtualization\n && !this.parent.groupSettings.enableLazyLoading) {\n this.parent.on(events.columnVisibilityChanged, this.setVisible, this);\n }\n this.parent.on(events.colGroupRefresh, this.colGroupRefresh, this);\n this.parent.on(events.uiUpdate, this.enableAfterRender, this);\n this.parent.on(events.refreshInfiniteModeBlocks, this.refreshContentRows, this);\n this.parent.on(events.beforeCellFocused, this.beforeCellFocused, this);\n this.parent.on(events.destroy, this.droppableDestroy, this);\n }\n ContentRender.prototype.beforeCellFocused = function (e) {\n if (e.byKey && (e.keyArgs.action === 'upArrow' || e.keyArgs.action === 'downArrow')) {\n this.pressedKey = e.keyArgs.action;\n }\n else {\n this.pressedKey = undefined;\n }\n };\n /**\n * The function is used to render grid content div\n *\n * @returns {void}\n */\n ContentRender.prototype.renderPanel = function () {\n var gObj = this.parent;\n var div = this.parent.element.querySelector('.' + literals.gridContent);\n if (div) {\n this.ariaService.setOptions(this.parent.element.querySelector('.' + literals.content), { busy: false });\n this.setPanel(div);\n return;\n }\n div = this.parent.createElement('div', { className: literals.gridContent });\n var innerDiv = this.parent.createElement('div', {\n className: literals.content\n });\n this.ariaService.setOptions(innerDiv, { busy: false });\n div.appendChild(innerDiv);\n this.setPanel(div);\n gObj.element.appendChild(div);\n };\n /**\n * The function is used to render grid content table\n *\n * @returns {void}\n */\n ContentRender.prototype.renderTable = function () {\n var contentDiv = this.getPanel();\n var virtualTable = contentDiv.querySelector('.e-virtualtable');\n var virtualTrack = contentDiv.querySelector('.e-virtualtrack');\n if (this.parent.enableVirtualization && !isNullOrUndefined(virtualTable) && !isNullOrUndefined(virtualTrack)) {\n remove(virtualTable);\n remove(virtualTrack);\n }\n contentDiv.appendChild(this.createContentTable('_content_table'));\n this.setTable(contentDiv.querySelector('.' + literals.table));\n this.ariaService.setOptions(this.getTable(), {\n multiselectable: this.parent.selectionSettings.type === 'Multiple'\n });\n this.initializeContentDrop();\n if (this.parent.frozenRows) {\n this.parent.getHeaderContent().classList.add('e-frozenhdrcont');\n }\n };\n /**\n * The function is used to create content table elements\n *\n * @param {string} id - specifies the id\n * @returns {Element} returns the element\n * @hidden\n */\n ContentRender.prototype.createContentTable = function (id) {\n var innerDiv = this.getPanel().firstElementChild;\n if (this.getTable()) {\n remove(this.getTable());\n }\n var table = innerDiv.querySelector('.' + literals.table) ? innerDiv.querySelector('.' + literals.table) :\n this.parent.createElement('table', {\n className: literals.table, attrs: {\n cellspacing: '0.25px', role: 'grid',\n id: this.parent.element.id + id\n }\n });\n this.setColGroup(this.parent.getHeaderTable().querySelector(literals.colGroup).cloneNode(true));\n table.appendChild(this.getColGroup());\n table.appendChild(this.parent.createElement(literals.tbody, { attrs: { role: 'rowgroup' } }));\n innerDiv.appendChild(table);\n return innerDiv;\n };\n /**\n * Refresh the content of the Grid.\n *\n * @param {NotifyArgs} args - specifies the args\n * @returns {void}\n */\n // tslint:disable-next-line:max-func-body-length\n ContentRender.prototype.refreshContentRows = function (args) {\n var _this = this;\n if (args === void 0) { args = {}; }\n var gObj = this.parent;\n if (gObj.currentViewData.length === 0) {\n return;\n }\n var dataSource = this.currentMovableRows || gObj.currentViewData;\n var contentModule = this.parent.contentModule;\n var isReact = gObj.isReact && !isNullOrUndefined(gObj.rowTemplate);\n var frag = isReact ? gObj.createElement(literals.tbody, { attrs: { role: 'rowgroup' } }) : document.createDocumentFragment();\n if (!this.initialPageRecords) {\n this.initialPageRecords = extend([], dataSource);\n }\n var hdrfrag = isReact ? gObj.createElement(literals.tbody, { attrs: { role: 'rowgroup' } }) : document.createDocumentFragment();\n var refFrag;\n var refHdrfrag;\n if (gObj.isReact && gObj.rowTemplate) {\n refFrag = frag;\n refHdrfrag = hdrfrag;\n }\n var columns = gObj.getColumns();\n var tr;\n var hdrTbody;\n var frzCols = gObj.getFrozenColumns();\n var isFrozenGrid = this.parent.isFrozenGrid();\n var trElement;\n var row = new RowRenderer(this.serviceLocator, null, this.parent);\n var isInfiniteScroll = this.parent.enableInfiniteScrolling\n && args.requestType === 'infiniteScroll';\n gObj.notify(events.destroyChildGrid, {});\n this.rowElements = [];\n this.rows = [];\n this.tempFreezeRows = [];\n var fCont = this.getPanel().querySelector('.' + literals.frozenContent);\n var mCont = this.getPanel().querySelector('.' + literals.movableContent);\n var cont = this.getPanel().querySelector('.' + literals.content);\n var tbdy;\n var tableName;\n if (isGroupAdaptive(gObj)) {\n if (['sorting', 'filtering', 'searching', 'grouping', 'ungrouping', 'reorder', 'save', 'delete']\n .some(function (value) { return args.requestType === value; })) {\n this.emptyVcRows();\n }\n }\n var modelData;\n if (this.parent.enableVirtualization && this.parent.isFrozenGrid()) {\n if (this.parent.enableColumnVirtualization && args.requestType === 'virtualscroll'\n && args.virtualInfo.sentinelInfo.axis === 'X') {\n modelData = this.parent.contentModule.generateRows(dataSource, args);\n args.renderMovableContent = true;\n }\n modelData = this.parent.contentModule.generateRows(dataSource, args);\n }\n else {\n modelData = this.checkCache(modelData, args);\n if (!this.isAddRows && !this.useGroupCache) {\n modelData = this.generator.generateRows(dataSource, args);\n }\n }\n this.setGroupCache(modelData, args);\n this.parent.notify(events.setInfiniteCache, { isInfiniteScroll: isInfiniteScroll, modelData: modelData, args: args });\n var idx = modelData[0].cells[0].index;\n if (isFrozenGrid) {\n tableName = contentModule.setTbody(modelData, args);\n tbdy = contentModule.getTbody(tableName);\n }\n var isFrozenLeft = this.parent.getFrozenMode() === literals.leftRight && tableName === literals.frozenRight;\n /* eslint-disable */\n if (!(args.requestType === 'infiniteScroll' && !this.parent.infiniteScrollSettings.enableCache) && this.parent.registeredTemplate\n && this.parent.registeredTemplate.template && !args.isFrozen && !isFrozenLeft) {\n var templatetoclear = [];\n for (var i = 0; i < this.parent.registeredTemplate.template.length; i++) {\n for (var j = 0; j < this.parent.registeredTemplate.template[i].rootNodes.length; j++) {\n if (isNullOrUndefined(this.parent.registeredTemplate.template[i].rootNodes[j].parentNode)) {\n templatetoclear.push(this.parent.registeredTemplate.template[i]);\n /* eslint-enable */\n }\n }\n }\n this.parent.destroyTemplate(['template'], templatetoclear);\n }\n if ((this.parent.isReact || this.parent.isVue) && !(args.requestType === 'infiniteScroll' && !this.parent.infiniteScrollSettings.enableCache) && !args.isFrozen) {\n var templates = [\n this.parent.isVue ? 'template' : 'columnTemplate', 'rowTemplate', 'detailTemplate',\n 'captionTemplate', 'commandsTemplate', 'groupFooterTemplate', 'groupCaptionTemplate'\n ];\n if (args.requestType === 'infiniteScroll' && this.parent.infiniteScrollSettings.enableCache) {\n templates = [\n this.parent.isVue ? 'template' : 'columnTemplate', 'commandsTemplate'\n ];\n }\n clearReactVueTemplates(this.parent, templates);\n }\n if (this.parent.enableColumnVirtualization) {\n var cellMerge = new CellMergeRender(this.serviceLocator, this.parent);\n cellMerge.updateVirtualCells(modelData);\n }\n if (!isFrozenGrid) {\n this.tbody = this.getTable().querySelector(literals.tbody);\n }\n var startIndex = 0;\n var blockLoad = true;\n if (isGroupAdaptive(gObj) && gObj.vcRows.length) {\n var top_1 = 'top';\n var scrollTop = !isNullOrUndefined(args.virtualInfo.offsets) ? args.virtualInfo.offsets.top :\n (!isNullOrUndefined(args.scrollTop) ? args.scrollTop[\"\" + top_1] : 0);\n if (scrollTop !== 0) {\n var offsets_1 = gObj.vGroupOffsets;\n var bSize = gObj.pageSettings.pageSize / 2;\n var values = Object.keys(offsets_1).map(function (key) { return offsets_1[\"\" + key]; });\n for (var m = 0; m < values.length; m++) {\n if (scrollTop < values[parseInt(m.toString(), 10)]) {\n if (!isNullOrUndefined(args.virtualInfo) && args.virtualInfo.direction === 'up') {\n startIndex = m > 0 ? ((m - 1) * bSize) : (m * bSize);\n break;\n }\n else {\n startIndex = m * bSize;\n if (this.parent.contentModule.isEndBlock(m) || this.parent.contentModule.isEndBlock(m + 1)) {\n args.virtualInfo.blockIndexes = [m, m + 1];\n }\n break;\n }\n }\n }\n if (Math.round(scrollTop + this.contentPanel.firstElementChild.offsetHeight) >=\n this.contentPanel.firstElementChild.scrollHeight && !args.rowObject) {\n blockLoad = false;\n }\n }\n }\n var isVFFrozenOnly = gObj.frozenRows && !gObj.isFrozenGrid() && this.parent.enableVirtualization\n && args.requestType === 'reorder';\n if ((gObj.frozenRows && args.requestType === 'virtualscroll' && args.virtualInfo.sentinelInfo.axis === 'X') || isVFFrozenOnly) {\n var bIndex = args.virtualInfo.blockIndexes;\n var page = args.virtualInfo.page;\n args.virtualInfo.blockIndexes = [1, 2];\n if (isVFFrozenOnly) {\n args.virtualInfo.page = 1;\n }\n var data = isVFFrozenOnly ? this.initialPageRecords : dataSource;\n var mhdrData = this.vgenerator\n .generateRows(data, args);\n mhdrData.splice(this.parent.frozenRows);\n for (var i = 0; i < this.parent.frozenRows; i++) {\n mhdrData[parseInt(i.toString(), 10)].cells.splice(0, this.parent.getFrozenColumns());\n tr = row.render(mhdrData[parseInt(i.toString(), 10)], columns);\n hdrfrag.appendChild(tr);\n }\n args.virtualInfo.blockIndexes = bIndex;\n args.virtualInfo.page = page;\n if (isVFFrozenOnly && args.virtualInfo.page === 1) {\n modelData.splice(0, this.parent.frozenRows);\n }\n }\n this.virtualFrozenHdrRefresh(hdrfrag, modelData, row, args, dataSource, columns);\n if (this.parent.groupSettings.enableLazyLoading && !this.useGroupCache && this.parent.groupSettings.columns.length) {\n (this.parent.enableVirtualization ? this.parent.lazyLoadRender :\n this.parent.contentModule).refRowsObj[this.parent.pageSettings.currentPage] = [];\n }\n if (this.parent.enableInfiniteScrolling && this.parent.groupSettings.enableLazyLoading && args.requestType === 'delete') { // || (this.parent.infiniteScrollSettings && this.parent.infiniteScrollSettings.enableCache))\n this.visibleRows = [];\n }\n var _loop_1 = function (i, len) {\n this_1.rows.push(modelData[parseInt(i.toString(), 10)]);\n if (isFrozenGrid) {\n this_1.tempFreezeRows.push(modelData[parseInt(i.toString(), 10)]);\n }\n if (this_1.parent.groupSettings.enableLazyLoading && !this_1.useGroupCache && this_1.parent.groupSettings.columns.length) {\n (this_1.parent.enableVirtualization ? this_1.parent.lazyLoadRender :\n this_1.parent.contentModule).refRowsObj[this_1.parent.pageSettings.currentPage].push(modelData[parseInt(i.toString(), 10)]);\n this_1.setRowsInLazyGroup(modelData[parseInt(i.toString(), 10)], i);\n if (isNullOrUndefined(modelData[parseInt(i.toString(), 10)].indent)) {\n return \"continue\";\n }\n }\n this_1.setInfiniteVisibleRows(args, modelData[parseInt(i.toString(), 10)], tableName);\n if (isGroupAdaptive(gObj) && args.virtualInfo && args.virtualInfo.blockIndexes\n && (this_1.rowElements.length >= (args.virtualInfo.blockIndexes.length * this_1.parent.contentModule.getBlockSize()))\n && blockLoad) {\n this_1.parent.currentViewData['records'] = this_1.rows.map(function (m) { return m.data; });\n return \"break\";\n }\n if (!gObj.rowTemplate) {\n tr = row.render(modelData[parseInt(i.toString(), 10)], columns);\n var isVFreorder = this_1.ensureFrozenHeaderRender(args);\n if (gObj.frozenRows && i < gObj.frozenRows && !isInfiniteScroll && args.requestType !== 'virtualscroll' && isVFreorder\n && this_1.ensureVirtualFrozenHeaderRender(args)) {\n hdrfrag.appendChild(tr);\n }\n else {\n frag.appendChild(tr);\n }\n if (modelData[parseInt(i.toString(), 10)].isExpand) {\n gObj.notify(events.expandChildGrid, tr.cells[gObj.groupSettings.columns.length]);\n }\n }\n else {\n var rowTemplateID = gObj.element.id + 'rowTemplate';\n var elements = void 0;\n if (gObj.isReact) {\n var isHeader = gObj.frozenRows && i < gObj.frozenRows;\n var copied = extend({ index: i }, dataSource[parseInt(i.toString(), 10)]);\n gObj.getRowTemplate()(copied, gObj, 'rowTemplate', rowTemplateID, null, null, isHeader ? hdrfrag : frag);\n if (gObj.requireTemplateRef) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var thisRef_2 = this_1;\n thisRef_2.parent.renderTemplates(function () {\n if (gObj.frozenRows && i < gObj.frozenRows) {\n tr = refHdrfrag.childNodes[parseInt(i.toString(), 10)];\n }\n else {\n trElement = refFrag.childNodes[parseInt(i.toString(), 10)];\n }\n var arg = { data: modelData[parseInt(i.toString(), 10)].data,\n row: trElement ? trElement : tr };\n thisRef_2.parent.trigger(events.rowDataBound, arg);\n if (modelData[parseInt(i.toString(), 10)].isDataRow || (thisRef_2.parent.enableVirtualization &&\n thisRef_2.parent.groupSettings.enableLazyLoading)) {\n thisRef_2.rowElements.push(tr);\n }\n thisRef_2.ariaService.setOptions(thisRef_2.getTable(), {\n colcount: gObj.getColumns().length.toString()\n });\n if (i === modelData.length - 1) {\n refFrag = null;\n refHdrfrag = null;\n }\n });\n return \"continue\";\n }\n }\n else {\n elements = gObj.getRowTemplate()(extend({ index: i }, dataSource[parseInt(i.toString(), 10)]), gObj, 'rowTemplate', rowTemplateID, undefined, undefined, undefined, this_1.parent['root']);\n }\n if (!gObj.isReact && elements[0].tagName === 'TBODY') {\n for (var j = 0; j < elements.length; j++) {\n var isTR = elements[parseInt(j.toString(), 10)].nodeName.toLowerCase() === 'tr';\n if (isTR || (elements[parseInt(j.toString(), 10)].querySelectorAll && elements[parseInt(j.toString(), 10)].querySelectorAll('tr').length)) {\n tr = isTR ? elements[parseInt(j.toString(), 10)] : elements[parseInt(j.toString(), 10)].querySelector('tr');\n }\n }\n if (gObj.frozenRows && i < gObj.frozenRows) {\n hdrfrag.appendChild(tr);\n }\n else {\n frag.appendChild(tr);\n }\n }\n else {\n if (gObj.frozenRows && i < gObj.frozenRows) {\n tr = !gObj.isReact ? appendChildren(hdrfrag, elements) : hdrfrag.lastElementChild;\n }\n else {\n // frag.appendChild(tr);\n if (!gObj.isReact) {\n tr = appendChildren(frag, elements);\n }\n trElement = gObj.isReact ? frag.lastElementChild : tr.lastElementChild;\n }\n }\n var arg = { data: modelData[parseInt(i.toString(), 10)].data, row: trElement ? trElement : tr };\n this_1.parent.trigger(events.rowDataBound, arg);\n }\n if (modelData[parseInt(i.toString(), 10)].isDataRow || (this_1.parent.enableVirtualization &&\n this_1.parent.groupSettings.enableLazyLoading)) {\n this_1.rowElements.push(tr);\n }\n this_1.ariaService.setOptions(this_1.getTable(), { colcount: gObj.getColumns().length.toString() });\n };\n var this_1 = this;\n for (var i = startIndex, len = modelData.length; i < len; i++) {\n var state_1 = _loop_1(i, len);\n if (state_1 === \"break\")\n break;\n }\n var isReactChild = gObj.parentDetails && gObj.parentDetails.parentInstObj && gObj.parentDetails.parentInstObj.isReact;\n if ((gObj.isReact || isReactChild) && !gObj.requireTemplateRef) {\n gObj.renderTemplates();\n }\n if (this.parent.enableInfiniteScrolling && this.parent.groupSettings.enableLazyLoading) {\n this.parent.contentModule.refRowsObj[this.parent.pageSettings.currentPage] =\n this.parent.contentModule['groupCache'][this.parent.pageSettings.currentPage];\n }\n if (this.parent.groupSettings.enableLazyLoading && !this.useGroupCache && this.parent.groupSettings.columns.length) {\n this.parent.notify(events.refreshExpandandCollapse, {\n rows: (this.parent.enableVirtualization ? this.parent.lazyLoadRender :\n this.parent.contentModule).refRowsObj[this.parent.pageSettings.currentPage]\n });\n }\n if (isFrozenGrid) {\n contentModule.splitRows(tableName);\n }\n gObj.removeMaskRow();\n this.parent.notify('removeGanttShimmer', { requestType: 'hideShimmer' });\n if ((gObj.frozenRows && args.requestType !== 'virtualscroll' && !isInfiniteScroll && this.ensureVirtualFrozenHeaderRender(args))\n || (args.requestType === 'virtualscroll' && args.virtualInfo.sentinelInfo && args.virtualInfo.sentinelInfo.axis === 'X')) {\n hdrTbody = isFrozenGrid ? contentModule.getFrozenHeader(tableName) : gObj.getHeaderTable().querySelector(literals.tbody);\n if (isReact) {\n var parentTable = hdrTbody.parentElement;\n remove(hdrTbody);\n parentTable.appendChild(hdrfrag);\n }\n else {\n hdrTbody.innerHTML = '';\n hdrTbody.appendChild(hdrfrag);\n }\n }\n if (!gObj.enableVirtualization && gObj.frozenRows && idx === 0 && cont.offsetHeight === Number(gObj.height)) {\n cont.style.height = (cont.offsetHeight - hdrTbody.offsetHeight) + 'px';\n }\n args.rows = this.rows.slice(0);\n if (isFrozenGrid) {\n contentModule.setIsFrozen(args, tableName);\n }\n this.index = idx;\n getUpdateUsingRaf(function () {\n _this.parent.notify(events.beforeFragAppend, args);\n var isVFTable = _this.parent.enableVirtualization && _this.parent.isFrozenGrid();\n if (!_this.parent.enableVirtualization && !isInfiniteScroll) {\n if (_this.parent.isFrozenGrid()) {\n remove(contentModule.getTbody(tableName));\n tbdy = _this.parent.createElement(literals.tbody, { attrs: { role: 'rowgroup' } });\n }\n else {\n if (!gObj.isReact) {\n _this.tbody.innerHTML = '';\n }\n if (!isNullOrUndefined(_this.tbody.parentElement)) {\n remove(_this.tbody);\n }\n else {\n remove(gObj.getContentTable().querySelector(literals.tbody));\n }\n _this.tbody = _this.parent.createElement(literals.tbody, { attrs: { role: 'rowgroup' } });\n }\n }\n if (isFrozenGrid && !isVFTable && !_this.parent.enableInfiniteScrolling) {\n _this.appendContent(tbdy, frag, args, tableName);\n }\n else {\n if (gObj.rowTemplate) {\n updateBlazorTemplate(gObj.element.id + 'rowTemplate', 'RowTemplate', gObj);\n }\n if (isVFTable) {\n if (args.renderFrozenRightContent) {\n var frCont = gObj.getContent().querySelector('.e-frozen-right-content').querySelector(literals.tbody);\n _this.appendContent(frCont, frag, args);\n }\n else if (!args.renderMovableContent) {\n _this.appendContent(fCont.querySelector(literals.tbody), frag, args);\n }\n else {\n _this.appendContent(mCont.querySelector(literals.tbody), frag, args);\n args.renderMovableContent = false;\n }\n if (!_this.parent.getFrozenColumns()) {\n contentModule.renderNextFrozentPart(args, tableName);\n }\n }\n else {\n if (!isNullOrUndefined(_this.parent.infiniteScrollModule) && _this.parent.enableInfiniteScrolling) {\n _this.isAddRows = false;\n _this.parent.notify(events.removeInfiniteRows, { args: args });\n _this.parent.notify(events.appendInfiniteContent, {\n tbody: tbdy ? tbdy : _this.tbody, frag: frag, args: args, rows: _this.rows,\n rowElements: _this.rowElements, visibleRows: _this.visibleRows,\n tableName: tableName\n });\n if (!frzCols && isFrozenGrid) {\n if ((gObj.getFrozenMode() !== literals.leftRight\n && (tableName === literals.frozenLeft || tableName === literals.frozenRight))\n || (gObj.getFrozenMode() === literals.leftRight\n && (tableName === literals.frozenLeft || tableName === 'movable'))) {\n _this.refreshContentRows(extend({}, args));\n }\n }\n }\n else {\n _this.useGroupCache = false;\n _this.appendContent(_this.tbody, frag, args);\n }\n }\n }\n if (frzCols) {\n contentModule.renderNextFrozentPart(args, tableName);\n }\n frag = null;\n }, this.rafCallback(extend({}, args)));\n };\n ContentRender.prototype.emptyVcRows = function () {\n this.parent.vcRows = [];\n this.parent.vRows = [];\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n ContentRender.prototype.appendContent = function (tbody, frag, args, tableName) {\n var isReact = this.parent.isReact && !isNullOrUndefined(this.parent.rowTemplate);\n if (isReact) {\n this.getTable().appendChild(frag);\n }\n else {\n tbody.appendChild(frag);\n this.getTable().appendChild(tbody);\n }\n if (this.parent.rowRenderingMode === 'Vertical' && this.parent.allowTextWrap && (this.parent.textWrapSettings.wrapMode === 'Header'\n || this.parent.textWrapSettings.wrapMode === 'Both')) {\n var cells = tbody.querySelectorAll('td');\n for (var i = 0; i < cells.length; i++) {\n var headerCellHeight = parseFloat(document.defaultView.getComputedStyle(cells[parseInt(i.toString(), 10)], '::before').getPropertyValue('height'));\n var cellHeight = cells[parseInt(i.toString(), 10)].offsetHeight;\n if (headerCellHeight > cellHeight) {\n cells[parseInt(i.toString(), 10)].style.height = headerCellHeight + 'px';\n cells[parseInt(i.toString(), 10)].style.boxSizing = 'content-box';\n }\n }\n }\n };\n ContentRender.prototype.setRowsInLazyGroup = function (row, index) {\n if (this.parent.groupSettings.enableLazyLoading && !this.useGroupCache && this.parent.groupSettings.columns.length) {\n (this.parent.enableVirtualization ? this.parent.lazyLoadRender :\n this.parent.contentModule).maintainRows(row, index);\n }\n };\n ContentRender.prototype.setGroupCache = function (data, args) {\n if (!this.useGroupCache && this.parent.groupSettings.enableLazyLoading) {\n this.parent.notify(events.setGroupCache, { args: args, data: data });\n }\n };\n ContentRender.prototype.ensureFrozenHeaderRender = function (args) {\n return !((this.parent.enableVirtualization\n && (args.requestType === 'reorder' || args.requestType === 'refresh')) || (this.parent.infiniteScrollSettings.enableCache\n && this.parent.frozenRows && this.parent.infiniteScrollModule.requestType === 'delete'\n && this.parent.pageSettings.currentPage !== 1));\n };\n ContentRender.prototype.ensureVirtualFrozenHeaderRender = function (args) {\n return !(this.parent.enableVirtualization && args.requestType === 'delete');\n };\n ContentRender.prototype.checkCache = function (modelData, args) {\n if (this.parent.infiniteScrollSettings.enableCache && args.requestType === 'infiniteScroll') {\n var index = args.isFrozen ? 1 : 0;\n var frozenCols = this.parent.isFrozenGrid();\n this.isAddRows = !isNullOrUndefined(this.infiniteCache[this.parent.pageSettings.currentPage]);\n if (frozenCols && !isNullOrUndefined(this.infiniteCache[this.parent.pageSettings.currentPage])) {\n this.isAddRows = this.infiniteCache[this.parent.pageSettings\n .currentPage][parseInt(index.toString(), 10)].length !== 0;\n }\n if (this.isAddRows) {\n var data = !frozenCols ? this.infiniteCache[this.parent.pageSettings.currentPage]\n : this.infiniteCache[this.parent.pageSettings.currentPage][parseInt(index.toString(), 10)];\n modelData = this.parent.pageSettings.currentPage === 1 ? data.slice(this.parent.frozenRows) : data;\n }\n return modelData;\n }\n if (this.parent.groupSettings.enableLazyLoading && this.parent.groupSettings.columns.length && (args.requestType === 'paging'\n || args.requestType === 'columnstate' || args.requestType === 'reorder' || args.requestType === 'virtualscroll')\n && (this.parent.enableVirtualization ? this.parent.lazyLoadRender :\n this.parent.contentModule).getGroupCache()[this.parent.pageSettings.currentPage]) {\n if (!this.parent.enableVirtualization) {\n this.useGroupCache = true;\n }\n return this.parent.enableVirtualization ? this.parent.getRowsObject() :\n this.parent.contentModule.initialGroupRows(args.requestType === 'reorder');\n }\n return null;\n };\n ContentRender.prototype.setInfiniteVisibleRows = function (args, data, tableName) {\n var frozenCols = this.parent.isFrozenGrid();\n if (this.parent.enableInfiniteScrolling && !this.parent.infiniteScrollSettings.enableCache) {\n if (frozenCols) {\n if (tableName === literals.frozenLeft || (this.parent.getFrozenMode() === 'Right' && tableName === literals.frozenRight)) {\n this.visibleFrozenRows.push(data);\n }\n else if (tableName === 'movable') {\n this.visibleRows.push(data);\n }\n else {\n this.rightFreezeRows.push(data);\n }\n }\n else if (!this.parent.infiniteScrollSettings.enableCache) {\n this.visibleRows.push(data);\n }\n }\n };\n ContentRender.prototype.getCurrentBlockInfiniteRecords = function (isFreeze) {\n var data = [];\n if (this.parent.infiniteScrollSettings.enableCache) {\n if (!Object.keys(this.infiniteCache).length) {\n return [];\n }\n var frozenCols = this.parent.isFrozenGrid();\n var rows = this.parent.getRows();\n var index = parseInt(rows[this.parent.frozenRows].getAttribute(literals.dataRowIndex), 10);\n var first = Math.ceil((index + 1) / this.parent.pageSettings.pageSize);\n index = parseInt(rows[rows.length - 1].getAttribute(literals.dataRowIndex), 10);\n var last = Math.ceil((index + (rows.length ? 1 : 0)) / this.parent.pageSettings.pageSize);\n if (frozenCols) {\n var idx = isFreeze ? 0 : 1;\n for (var i = first; i <= last; i++) {\n data = !data.length ? this.infiniteCache[parseInt(i.toString(), 10)][parseInt(idx.toString(), 10)]\n : data.concat(this.infiniteCache[parseInt(i.toString(), 10)][parseInt(idx.toString(), 10)]);\n }\n if (this.parent.frozenRows && this.parent.pageSettings.currentPage > 1) {\n data = this.infiniteCache[1][parseInt(idx.toString(), 10)]\n .slice(0, this.parent.frozenRows).concat(data);\n }\n }\n else {\n for (var i = first; i <= last; i++) {\n data = !data.length ? this.infiniteCache[parseInt(i.toString(), 10)]\n : data.concat(this.infiniteCache[parseInt(i.toString(), 10)]);\n }\n if (this.parent.frozenRows && this.parent.pageSettings.currentPage > 1) {\n data = this.infiniteCache[1].slice(0, this.parent.frozenRows).concat(data);\n }\n }\n }\n return data;\n };\n ContentRender.prototype.getReorderedVFRows = function (args) {\n return this.parent.contentModule.getReorderedFrozenRows(args);\n };\n ContentRender.prototype.getReorderedRows = function (args) {\n return this.parent.contentModule.getReorderedFrozenRows(args);\n };\n ContentRender.prototype.virtualFrozenHdrRefresh = function (hdrfrag, modelData, row, args, dataSource, columns) {\n if (this.parent.frozenRows && this.parent.enableVirtualization\n && (args.requestType === 'reorder' || args.requestType === 'refresh')) {\n var tr = void 0;\n var fhdrData = [];\n if (this.parent.isFrozenGrid()) {\n this.currentMovableRows = dataSource;\n fhdrData = this.getReorderedVFRows(args);\n }\n else {\n fhdrData = this.getReorderedRows(args);\n }\n for (var i = 0; i < fhdrData.length; i++) {\n tr = row.render(fhdrData[parseInt(i.toString(), 10)], columns);\n hdrfrag.appendChild(tr);\n }\n if (args.virtualInfo.page === 1) {\n modelData.splice(0, this.parent.frozenRows);\n }\n if (args.renderMovableContent) {\n this.parent.currentViewData = this.currentMovableRows;\n this.currentMovableRows = null;\n }\n }\n };\n ContentRender.prototype.getInfiniteRows = function () {\n var rows = [];\n var frozenCols = this.parent.isFrozenGrid();\n if (this.parent.enableInfiniteScrolling) {\n if (this.parent.infiniteScrollSettings.enableCache) {\n var keys = Object.keys(this.infiniteCache);\n for (var i = 0; i < keys.length; i++) {\n rows = !frozenCols ? rows.concat(this.infiniteCache[keys[parseInt(i.toString(), 10)]]) : rows.concat(this.infiniteCache[keys[parseInt(i.toString(), 10)]][0]);\n }\n }\n else {\n rows = frozenCols ? this.visibleFrozenRows : this.visibleRows;\n }\n }\n return rows;\n };\n ContentRender.prototype.getInfiniteMovableRows = function () {\n var infiniteCacheRows = this.getCurrentBlockInfiniteRecords();\n var infiniteRows = this.parent.enableInfiniteScrolling ? infiniteCacheRows.length ? infiniteCacheRows\n : this.visibleRows : [];\n return infiniteRows;\n };\n /**\n * Get the content div element of grid\n *\n * @returns {Element} returns the element\n */\n ContentRender.prototype.getPanel = function () {\n return this.contentPanel;\n };\n /**\n * Set the content div element of grid\n *\n * @param {Element} panel - specifies the panel\n * @returns {void}\n */\n ContentRender.prototype.setPanel = function (panel) {\n this.contentPanel = panel;\n };\n /**\n * Get the content table element of grid\n *\n * @returns {Element} returns the element\n */\n ContentRender.prototype.getTable = function () {\n return this.contentTable;\n };\n /**\n * Set the content table element of grid\n *\n * @param {Element} table - specifies the table\n * @returns {void}\n */\n ContentRender.prototype.setTable = function (table) {\n this.contentTable = table;\n };\n /**\n * Get the Movable Row collection in the Freeze pane Grid.\n *\n * @returns {Row[] | HTMLCollectionOf} returns the row\n */\n ContentRender.prototype.getRows = function () {\n var infiniteRows = this.getInfiniteRows();\n return infiniteRows.length ? infiniteRows : this.parent.getFrozenColumns() ? this.freezeRows : this.rows;\n };\n /**\n * Get the Movable Row collection in the Freeze pane Grid.\n *\n * @returns {Row[] | HTMLCollectionOf} returns the row\n */\n ContentRender.prototype.getMovableRows = function () {\n var infiniteRows = this.getInfiniteMovableRows();\n return infiniteRows.length ? infiniteRows : this.movableRows;\n };\n /**\n * Get the content table data row elements\n *\n * @returns {Element} returns the element\n */\n ContentRender.prototype.getRowElements = function () {\n return this.parent.getFrozenColumns() ? this.freezeRowElements : this.rowElements;\n };\n /**\n * Get the Freeze pane movable content table data row elements\n *\n * @returns {Element} returns the element\n */\n ContentRender.prototype.getMovableRowElements = function () {\n return this.rowElements;\n };\n /**\n * Get the content table data row elements\n *\n * @param {Element[]} elements - specifies the elements\n * @returns {void}\n */\n ContentRender.prototype.setRowElements = function (elements) {\n this.rowElements = elements;\n };\n /**\n * Get the header colgroup element\n *\n * @returns {Element} returns the element\n */\n ContentRender.prototype.getColGroup = function () {\n return this.colgroup;\n };\n /**\n * Set the header colgroup element\n *\n * @param {Element} colGroup - specifies the colgroup\n * @returns {Element} returns the element\n */\n ContentRender.prototype.setColGroup = function (colGroup) {\n if (!isNullOrUndefined(colGroup)) {\n colGroup.id = 'content-' + colGroup.id;\n }\n return this.colgroup = colGroup;\n };\n /**\n * Function to hide content table column based on visible property\n *\n * @param {Column[]} columns - specifies the column\n * @returns {void}\n */\n ContentRender.prototype.setVisible = function (columns) {\n var gObj = this.parent;\n var isFrozenGrid = this.parent.isFrozenGrid();\n var frzCols = gObj.getFrozenColumns();\n var rows = [];\n if (isFrozenGrid) {\n var fRows = this.freezeRows;\n var mRows = this.movableRows;\n var rowLen = fRows.length;\n var cellLen = void 0;\n var rightRows = [];\n if (gObj.getFrozenMode() === literals.leftRight) {\n rightRows = gObj.getFrozenRightRowsObject();\n }\n for (var i = 0, row = void 0; i < rowLen; i++) {\n cellLen = mRows[parseInt(i.toString(), 10)].cells.length;\n var rightLen = rightRows.length ? rightRows[parseInt(i.toString(), 10)].cells.length : 0;\n row = fRows[parseInt(i.toString(), 10)].clone();\n for (var j = 0; j < cellLen; j++) {\n row.cells.push(mRows[parseInt(i.toString(), 10)].cells[parseInt(j.toString(), 10)]);\n }\n for (var k = 0; k < rightLen; k++) {\n row.cells.push(rightRows[parseInt(i.toString(), 10)].cells[parseInt(k.toString(), 10)]);\n }\n rows.push(row);\n }\n }\n else {\n rows = this.getRows();\n }\n var testRow;\n rows.some(function (r) { if (r.isDataRow) {\n testRow = r;\n } return r.isDataRow; });\n var needFullRefresh = true;\n if (!gObj.groupSettings.columns.length && testRow) {\n needFullRefresh = false;\n }\n var tr = gObj.getDataRows();\n var args = {};\n var infiniteData = this.infiniteRowVisibility();\n var contentrows = infiniteData ? infiniteData\n : this.rows.filter(function (row) { return !row.isDetailRow; });\n for (var c = 0, clen = columns.length; c < clen; c++) {\n var column = columns[parseInt(c.toString(), 10)];\n var idx = this.parent.getNormalizedColumnIndex(column.uid);\n var colIdx = this.parent.getColumnIndexByUid(column.uid);\n var displayVal = column.visible === true ? '' : 'none';\n if (idx !== -1 && testRow && idx < testRow.cells.length) {\n if (isFrozenGrid) {\n if (column.getFreezeTableName() !== 'movable') {\n if (column.getFreezeTableName() === literals.frozenRight) {\n var left = this.parent.getFrozenLeftColumnsCount();\n var movable = this.parent.getMovableColumnsCount();\n colIdx = idx = idx - (left + movable);\n var colG = this.parent.getContent().querySelector('.e-frozen-right-content').querySelector(literals.colGroup);\n setStyleAttribute(colG.childNodes[parseInt(idx.toString(), 10)], { 'display': displayVal });\n contentrows = gObj.getFrozenRightRowsObject();\n tr = gObj.getFrozenRightDataRows();\n }\n else {\n setStyleAttribute(this.getColGroup().childNodes[parseInt(idx.toString(), 10)], { 'display': displayVal });\n var infiniteFreezeData = this.infiniteRowVisibility(true);\n contentrows = infiniteFreezeData ? infiniteFreezeData : this.freezeRows;\n tr = gObj.getDataRows();\n }\n }\n else {\n var mTable = gObj.getContent().querySelector('.' + literals.movableContent).querySelector(literals.colGroup);\n colIdx = idx = idx - frzCols - this.parent.getFrozenLeftColumnsCount();\n setStyleAttribute(mTable.childNodes[parseInt(idx.toString(), 10)], { 'display': displayVal });\n tr = gObj.getMovableDataRows();\n var infiniteMovableData = this.infiniteRowVisibility();\n contentrows = infiniteMovableData ? infiniteMovableData : this.movableRows;\n }\n }\n else {\n setStyleAttribute(this.getColGroup().childNodes[parseInt(idx.toString(), 10)], { 'display': displayVal });\n }\n }\n if (!needFullRefresh) {\n this.setDisplayNone(tr, colIdx, displayVal, contentrows);\n if (isFrozenGrid) {\n this.parent.notify(events.freezeRender, { case: 'refreshHeight', isModeChg: true });\n }\n }\n if (!this.parent.invokedFromMedia && column.hideAtMedia) {\n this.parent.updateMediaColumns(column);\n }\n this.parent.invokedFromMedia = false;\n }\n if (needFullRefresh) {\n this.refreshContentRows({ requestType: 'refresh' });\n }\n else {\n if (!this.parent.getFrozenColumns()) {\n this.parent.notify(events.partialRefresh, { rows: contentrows, args: args });\n }\n else {\n this.parent.notify(events.partialRefresh, { rows: this.freezeRows, args: { isFrozen: true, rows: this.freezeRows } });\n this.parent.notify(events.partialRefresh, { rows: this.movableRows, args: { isFrozen: false, rows: this.movableRows } });\n }\n }\n };\n /**\n * @param {Object} tr - specifies the trr\n * @param {number} idx - specifies the idx\n * @param {string} displayVal - specifies the displayval\n * @param {Row} rows - specifies the rows\n * @returns {void}\n * @hidden\n */\n ContentRender.prototype.setDisplayNone = function (tr, idx, displayVal, rows) {\n setDisplayValue(tr, idx, displayVal, rows, this.parent, this.parent.isRowDragable());\n this.parent.notify(events.infiniteShowHide, { visible: displayVal, index: idx, isFreeze: this.isInfiniteFreeze });\n };\n ContentRender.prototype.infiniteRowVisibility = function (isFreeze) {\n var infiniteData;\n if (this.parent.enableInfiniteScrolling) {\n this.isInfiniteFreeze = isFreeze;\n if (this.parent.infiniteScrollSettings.enableCache) {\n infiniteData = isFreeze ? this.getCurrentBlockInfiniteRecords(true) : this.getCurrentBlockInfiniteRecords();\n }\n else {\n infiniteData = isFreeze ? this.visibleFrozenRows : this.visibleRows;\n }\n }\n return infiniteData;\n };\n ContentRender.prototype.colGroupRefresh = function () {\n if (this.getColGroup()) {\n var colGroup = void 0;\n if (this.parent.enableColumnVirtualization && this.parent.getFrozenColumns()\n && this.parent.contentModule.isXaxis()) {\n colGroup = this.parent.getMovableVirtualHeader()\n .querySelector(literals.colGroup + ':not(.e-masked-colgroup)').cloneNode(true);\n }\n else {\n colGroup = this.getHeaderColGroup();\n }\n this.getTable().replaceChild(colGroup, this.getColGroup());\n this.setColGroup(colGroup);\n }\n };\n ContentRender.prototype.getHeaderColGroup = function () {\n return this.parent.element.querySelector('.' + literals.gridHeader)\n .querySelector(literals.colGroup + ':not(.e-masked-colgroup)').cloneNode(true);\n };\n ContentRender.prototype.initializeContentDrop = function () {\n var gObj = this.parent;\n this.droppable = new Droppable(gObj.element, {\n accept: '.e-dragclone',\n drop: this.drop\n });\n };\n ContentRender.prototype.droppableDestroy = function () {\n if (this.droppable && !this.droppable.isDestroyed) {\n this.droppable.destroy();\n }\n };\n ContentRender.prototype.canSkip = function (column, row, index) {\n /**\n * Skip the toggle visiblity operation when one of the following success\n * 1. Grid has empty records\n * 2. column visible property is unchanged\n * 3. cell`s isVisible property is same as column`s visible property.\n */\n return isNullOrUndefined(row) || //(1)\n isNullOrUndefined(column.visible) || //(2)\n row.cells[parseInt(index.toString(), 10)].visible === column.visible; //(3)\n };\n ContentRender.prototype.getModelGenerator = function () {\n return this.generator = this.parent.allowGrouping ? new GroupModelGenerator(this.parent) : new RowModelGenerator(this.parent);\n };\n ContentRender.prototype.renderEmpty = function (tbody) {\n this.getTable().appendChild(tbody);\n if (this.parent.frozenRows) {\n this.parent.getHeaderContent().querySelector(literals.tbody).innerHTML = '';\n }\n };\n ContentRender.prototype.setSelection = function (uid, set, clearAll) {\n this.parent.notify(events.setFreezeSelection, { uid: uid, set: set, clearAll: clearAll });\n var isFrozen = this.parent.isFrozenGrid();\n if (isFrozen && this.parent.enableVirtualization) {\n return;\n }\n if (isFrozen) {\n var rows = this.getMovableRows().filter(function (row) { return clearAll || uid === row.uid; });\n for (var i = 0; i < rows.length; i++) {\n rows[parseInt(i.toString(), 10)].isSelected = set;\n }\n }\n var row = this.getRows().filter(function (row) { return clearAll || uid === row.uid; });\n for (var j = 0; j < row.length; j++) {\n row[parseInt(j.toString(), 10)].isSelected = set;\n var cells = row[parseInt(j.toString(), 10)].cells;\n for (var k = 0; k < cells.length; k++) {\n cells[parseInt(k.toString(), 10)].isSelected = set;\n }\n }\n };\n ContentRender.prototype.getRowByIndex = function (index) {\n index = this.getInfiniteRowIndex(index);\n return !isNullOrUndefined(index) ? this.parent.getDataRows()[parseInt(index.toString(), 10)] : undefined;\n };\n ContentRender.prototype.getInfiniteRowIndex = function (index) {\n if (this.parent.infiniteScrollSettings.enableCache) {\n var fRows = this.parent.frozenRows;\n var idx = fRows > index ? 0 : fRows;\n var firstRowIndex = parseInt(this.parent.getRows()[parseInt(idx.toString(), 10)]\n .getAttribute(literals.dataRowIndex), 10);\n index = fRows > index ? index : (index - firstRowIndex) + fRows;\n }\n return index;\n };\n ContentRender.prototype.getVirtualRowIndex = function (index) {\n return index;\n };\n ContentRender.prototype.getMovableRowByIndex = function (index) {\n index = this.getInfiniteRowIndex(index);\n return !isNullOrUndefined(index) ? this.parent.getMovableDataRows()[parseInt(index.toString(), 10)] : undefined;\n };\n ContentRender.prototype.enableAfterRender = function (e) {\n if (e.module === 'group' && e.enable) {\n this.generator = this.getModelGenerator();\n }\n };\n ContentRender.prototype.setRowObjects = function (rows) {\n this.rows = rows;\n };\n /**\n * @param {NotifyArgs} args - specifies the args\n * @returns {void}\n * @hidden\n */\n ContentRender.prototype.immutableModeRendering = function (args) {\n var _this = this;\n if (args === void 0) { args = {}; }\n var gObj = this.parent;\n gObj.hideSpinner();\n var key = gObj.getPrimaryKeyFieldNames()[0];\n var oldKeys = {};\n var newKeys = {};\n var newRowObjs = [];\n var oldIndexes = {};\n var oldRowObjs = gObj.getRowsObject().slice();\n var batchChangeKeys = this.getBatchEditedRecords(key, oldRowObjs);\n var newIndexes = {};\n var hasBatch = Object.keys(batchChangeKeys).length !== 0;\n if (gObj.getContent().querySelector('.e-emptyrow') || args.requestType === 'reorder'\n || this.parent.groupSettings.columns.length) {\n this.refreshContentRows(args);\n }\n else {\n if (gObj.currentViewData.length === 0) {\n return;\n }\n var oldRowElements = {};\n var tbody = gObj.createElement(literals.tbody, { attrs: { role: 'rowgroup' } });\n var dataSource = gObj.currentViewData;\n var trs = [].slice.call(this.getTable().querySelector(literals.tbody).children);\n if (this.prevCurrentView.length) {\n var prevLen = this.prevCurrentView.length;\n var currentLen = dataSource.length;\n if (prevLen === currentLen) {\n for (var i = 0; i < currentLen; i++) {\n if (this.parent.editSettings.mode === 'Batch'\n && trs[parseInt(i.toString(), 10)].classList.contains('e-insertedrow')) {\n trs.splice(i, 1);\n --i;\n continue;\n }\n newKeys[dataSource[parseInt(i.toString(), 10)][\"\" + key]] = oldKeys[this.prevCurrentView[parseInt(i.toString(), 10)][\"\" + key]] = i;\n newIndexes[parseInt(i.toString(), 10)] = dataSource[parseInt(i.toString(), 10)][\"\" + key];\n oldRowElements[oldRowObjs[parseInt(i.toString(), 10)].uid] = trs[parseInt(i.toString(), 10)];\n oldIndexes[parseInt(i.toString(), 10)] = this.prevCurrentView[parseInt(i.toString(), 10)][\"\" + key];\n }\n }\n else {\n for (var i = 0; i < currentLen; i++) {\n newKeys[dataSource[parseInt(i.toString(), 10)][\"\" + key]] = i;\n newIndexes[parseInt(i.toString(), 10)] = dataSource[parseInt(i.toString(), 10)][\"\" + key];\n }\n for (var i = 0; i < prevLen; i++) {\n if (this.parent.editSettings.mode === 'Batch'\n && trs[parseInt(i.toString(), 10)].classList.contains('e-insertedrow')) {\n trs.splice(i, 1);\n --i;\n continue;\n }\n oldRowElements[oldRowObjs[parseInt(i.toString(), 10)].uid] = trs[parseInt(i.toString(), 10)];\n oldKeys[this.prevCurrentView[parseInt(i.toString(), 10)][\"\" + key]] = i;\n oldIndexes[parseInt(i.toString(), 10)] = this.prevCurrentView[parseInt(i.toString(), 10)][\"\" + key];\n }\n }\n }\n for (var i = 0; i < dataSource.length; i++) {\n var oldIndex = oldKeys[dataSource[parseInt(i.toString(), 10)][\"\" + key]];\n if (!isNullOrUndefined(oldIndex)) {\n var isEqual = false;\n if (this.parent.enableDeepCompare) {\n isEqual = this.objectEqualityChecker(this.prevCurrentView[parseInt(oldIndex.toString(), 10)], dataSource[parseInt(i.toString(), 10)]);\n }\n var tr = oldRowElements[oldRowObjs[parseInt(oldIndex.toString(), 10)]\n .uid];\n newRowObjs.push(oldRowObjs[parseInt(oldIndex.toString(), 10)]);\n if (this.rowElements[parseInt(oldIndex.toString(), 10)] && this.rowElements[parseInt(oldIndex.toString(), 10)].getAttribute('data-uid') === newRowObjs[parseInt(i.toString(), 10)].uid\n && ((hasBatch && isNullOrUndefined(batchChangeKeys[newIndexes[parseInt(i.toString(), 10)]]))\n || (!hasBatch && (isEqual\n || this.prevCurrentView[parseInt(oldIndex.toString(), 10)] === dataSource[parseInt(i.toString(), 10)])))) {\n if (oldIndex !== i) {\n this.refreshImmutableContent(i, tr, newRowObjs[parseInt(i.toString(), 10)]);\n }\n tbody.appendChild(tr);\n continue;\n }\n if ((hasBatch && !isNullOrUndefined(batchChangeKeys[newIndexes[parseInt(i.toString(), 10)]]))\n || (!this.parent.enableDeepCompare\n && dataSource[parseInt(i.toString(), 10)] !== this.prevCurrentView[parseInt(oldIndex.toString(), 10)])\n || (this.parent.enableDeepCompare && !isEqual)) {\n oldRowObjs[parseInt(oldIndex.toString(), 10)].setRowValue(dataSource[parseInt(i.toString(), 10)]);\n }\n tbody.appendChild(tr);\n this.refreshImmutableContent(i, tr, newRowObjs[parseInt(i.toString(), 10)]);\n }\n else {\n var row = new RowRenderer(this.serviceLocator, null, gObj);\n var args_1 = { startIndex: i };\n var modelData = this.generator.generateRows([dataSource[parseInt(i.toString(), 10)]], args_1);\n newRowObjs.push(modelData[0]);\n var tr = row.render(modelData[0], gObj.getColumns());\n tbody.appendChild(tr);\n this.refreshImmutableContent(i, tr, newRowObjs[parseInt(i.toString(), 10)]);\n }\n }\n this.rows = newRowObjs;\n this.rowElements = [].slice.call(tbody.children);\n remove(this.getTable().querySelector(literals.tbody));\n this.getTable().appendChild(tbody);\n this.parent.trigger(events.dataBound, {}, function () {\n if (_this.parent.allowTextWrap) {\n _this.parent.notify(events.freezeRender, { case: 'textwrap' });\n }\n });\n if (args) {\n var action = (args.requestType || '').toLowerCase() + '-complete';\n this.parent.notify(action, args);\n }\n }\n };\n ContentRender.prototype.objectEqualityChecker = function (old, next) {\n var keys = Object.keys(old);\n var isEqual = true;\n for (var i = 0; i < keys.length; i++) {\n if (old[keys[parseInt(i.toString(), 10)]] !== next[keys[parseInt(i.toString(), 10)]]) {\n var isDate = old[keys[parseInt(i.toString(), 10)]] instanceof Date\n && next[keys[parseInt(i.toString(), 10)]] instanceof Date;\n if (!isDate || (old[keys[parseInt(i.toString(), 10)]]\n .getTime() !== next[keys[parseInt(i.toString(), 10)]].getTime())) {\n isEqual = false;\n break;\n }\n }\n }\n return isEqual;\n };\n ContentRender.prototype.getBatchEditedRecords = function (primaryKey, rows) {\n var keys = {};\n var changes = this.parent.getBatchChanges();\n var changedRecords = [];\n var addedRecords = [];\n if (Object.keys(changes).length) {\n changedRecords = changes.changedRecords;\n addedRecords = changes.addedRecords;\n }\n var args = { cancel: false };\n this.parent.notify(events.immutableBatchCancel, { rows: rows, args: args });\n if (addedRecords.length) {\n if (this.parent.editSettings.newRowPosition === 'Bottom') {\n rows.splice(rows.length - 1, addedRecords.length);\n }\n else {\n if (!args.cancel) {\n rows.splice(0, addedRecords.length);\n }\n }\n }\n for (var i = 0; i < changedRecords.length; i++) {\n keys[changedRecords[parseInt(i.toString(), 10)][\"\" + primaryKey]] = i;\n }\n return keys;\n };\n ContentRender.prototype.refreshImmutableContent = function (index, tr, row) {\n row.isAltRow = this.parent.enableAltRow ? index % 2 !== 0 : false;\n if (row.isAltRow) {\n tr.classList.add('e-altrow');\n }\n else {\n tr.classList.remove('e-altrow');\n }\n row.index = index;\n row.edit = undefined;\n row.isDirty = false;\n tr.setAttribute(literals.dataRowIndex, index.toString());\n tr.setAttribute(literals.ariaRowIndex, (index + 1).toString());\n this.updateCellIndex(tr, index);\n };\n ContentRender.prototype.updateCellIndex = function (rowEle, index) {\n for (var i = 0; i < rowEle.cells.length; i++) {\n rowEle.cells[parseInt(i.toString(), 10)].setAttribute('index', index.toString());\n }\n };\n return ContentRender;\n}());\nexport { ContentRender };\n","import { isNullOrUndefined, extend } from '@syncfusion/ej2-base';\nimport { setStyleAttribute, closest as getClosest, remove } from '@syncfusion/ej2-base';\nimport { classList } from '@syncfusion/ej2-base';\nimport { CellType } from '../base/enum';\nimport { RowRenderer } from './row-renderer';\nimport { Cell } from '../models/cell';\nimport { Row } from '../models/row';\nimport * as events from '../base/constant';\nimport { Draggable, Droppable } from '@syncfusion/ej2-base';\nimport { Button } from '@syncfusion/ej2-buttons';\nimport { parentsUntil, wrap, measureColumnDepth, appendChildren } from '../base/util';\nimport * as literals from '../base/string-literals';\n// eslint-disable-next-line valid-jsdoc\n/**\n * Content module is used to render grid content\n *\n * @hidden\n */\nvar HeaderRender = /** @class */ (function () {\n /**\n * Constructor for header renderer module\n *\n * @param {IGrid} parent - specifies the IGrid\n * @param {ServiceLocator} serviceLocator - specifies the serviceLocator\n */\n function HeaderRender(parent, serviceLocator) {\n var _this = this;\n this.frzIdx = 0;\n this.notfrzIdx = 0;\n this.isFirstCol = false;\n this.isReplaceDragEle = true;\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n this.helper = function (e) {\n var gObj = _this.parent;\n var target = _this.draggable.currentStateTarget;\n var parentEle = parentsUntil(target, 'e-headercell');\n if (!(gObj.allowReordering || gObj.allowGrouping) || (!isNullOrUndefined(parentEle)\n && parentEle.getElementsByClassName('e-checkselectall').length > 0)) {\n return false;\n }\n var visualElement = _this.parent.createElement('div', { className: 'e-cloneproperties e-dragclone e-headerclone' });\n var element = target.classList.contains('e-headercell') ? target : parentEle;\n if (!element || (!gObj.allowReordering && element.classList.contains('e-stackedheadercell'))) {\n return false;\n }\n var height = element.offsetHeight;\n var headercelldiv = element.querySelector('.e-headercelldiv') || element.querySelector('.e-stackedheadercelldiv');\n var col;\n if (headercelldiv) {\n if (element.querySelector('.e-stackedheadercelldiv')) {\n col = gObj.getStackedHeaderColumnByHeaderText(headercelldiv.innerText.trim(), gObj.columns);\n }\n else {\n col = gObj.getColumnByUid(headercelldiv.getAttribute('e-mappinguid'));\n }\n _this.column = col;\n if (_this.column.lockColumn) {\n return false;\n }\n visualElement.setAttribute('e-mappinguid', _this.column.uid);\n }\n if (col && !isNullOrUndefined(col.headerTemplate)) {\n if (!isNullOrUndefined(col.headerTemplate)) {\n var colIndex = gObj.getColumnIndexByField(col.field);\n var result = col.getHeaderTemplate()(extend({ 'index': colIndex }, col), gObj, 'headerTemplate');\n appendChildren(visualElement, result);\n }\n else {\n visualElement.innerHTML = col.headerTemplate;\n }\n }\n else {\n visualElement.innerHTML = headercelldiv ?\n col.headerText : element.firstElementChild.innerHTML;\n }\n visualElement.style.width = element.offsetWidth + 'px';\n visualElement.style.height = element.offsetHeight + 'px';\n visualElement.style.lineHeight = (height - 6).toString() + 'px';\n gObj.element.appendChild(visualElement);\n return visualElement;\n };\n this.dragStart = function (e) {\n var gObj = _this.parent;\n gObj.element.querySelector('.e-gridpopup').style.display = 'none';\n gObj.notify(events.columnDragStart, { target: _this.draggable.currentStateTarget, column: _this.column, event: e.event });\n };\n this.drag = function (e) {\n var gObj = _this.parent;\n var target = e.target;\n if (target) {\n var closest = getClosest(target, '.e-grid');\n var cloneElement = _this.parent.element.querySelector('.e-cloneproperties');\n if (!closest || closest.getAttribute('id') !== gObj.element.getAttribute('id')) {\n classList(cloneElement, ['e-notallowedcur'], ['e-defaultcur']);\n if (gObj.allowReordering) {\n gObj.element.querySelector('.e-reorderuparrow').style.display = 'none';\n gObj.element.querySelector('.e-reorderdownarrow').style.display = 'none';\n }\n if (!gObj.groupSettings.allowReordering) {\n return;\n }\n }\n gObj.notify(events.columnDrag, { target: e.target, column: _this.column, event: e.event });\n }\n };\n this.dragStop = function (e) {\n var gObj = _this.parent;\n var cancel;\n gObj.element.querySelector('.e-gridpopup').style.display = 'none';\n if ((!parentsUntil(e.target, 'e-headercell') && !parentsUntil(e.target, 'e-groupdroparea')) ||\n (!gObj.allowReordering && parentsUntil(e.target, 'e-headercell')) ||\n (!e.helper.getAttribute('e-mappinguid') && parentsUntil(e.target, 'e-groupdroparea'))) {\n remove(e.helper);\n cancel = true;\n }\n gObj.notify(events.columnDragStop, { target: e.target, event: e.event, column: _this.column, cancel: cancel });\n };\n this.drop = function (e) {\n var gObj = _this.parent;\n var uid = e.droppedElement.getAttribute('e-mappinguid');\n var closest = getClosest(e.target, '.e-grid');\n remove(e.droppedElement);\n if (closest && closest.getAttribute('id') !== gObj.element.getAttribute('id') ||\n !(gObj.allowReordering || gObj.allowGrouping)) {\n return;\n }\n gObj.notify(events.headerDrop, { target: e.target, uid: uid, droppedElement: e.droppedElement });\n };\n this.parent = parent;\n this.serviceLocator = serviceLocator;\n this.ariaService = this.serviceLocator.getService('ariaService');\n this.widthService = this.serviceLocator.getService('widthService');\n if (this.parent.isDestroyed) {\n return;\n }\n if (!this.parent.enableColumnVirtualization\n && !this.parent.getFrozenLeftColumnsCount() && !this.parent.getFrozenRightColumnsCount()) {\n this.parent.on(events.columnVisibilityChanged, this.setVisible, this);\n }\n this.parent.on(events.columnPositionChanged, this.colPosRefresh, this);\n this.parent.on(events.initialEnd, this.renderCustomToolbar, this);\n if (this.parent.rowRenderingMode === 'Vertical') {\n this.parent.on(events.uiUpdate, this.updateCustomResponsiveToolbar, this);\n }\n }\n /**\n * The function is used to render grid header div\n *\n * @returns {void}\n */\n HeaderRender.prototype.renderPanel = function () {\n var div = this.parent.element.querySelector('.' + literals.gridHeader);\n var isRendered = (div != null);\n div = isRendered ? div : this.parent.createElement('div', { className: 'e-gridheader' });\n var innerDiv = isRendered ? div.querySelector('.' + literals.headerContent) :\n this.parent.createElement('div', { className: literals.headerContent });\n this.toggleStackClass(div);\n div.appendChild(innerDiv);\n this.setPanel(div);\n if (!isRendered) {\n this.parent.element.appendChild(div);\n }\n };\n /**\n * The function is used to render grid header div\n *\n * @returns {void}\n */\n HeaderRender.prototype.renderTable = function () {\n var headerDiv = this.getPanel();\n headerDiv.appendChild(this.createHeaderTable());\n this.setTable(headerDiv.querySelector('.' + literals.table));\n if (!this.parent.getFrozenColumns() && !this.parent.getFrozenRightColumnsCount() && !this.parent.getFrozenLeftColumnsCount()) {\n this.initializeHeaderDrag();\n this.initializeHeaderDrop();\n }\n this.parent.notify(events.headerRefreshed, { rows: this.rows, args: { isFrozen: this.parent.isFrozenGrid() } });\n };\n /**\n * Get the header content div element of grid\n *\n * @returns {Element} returns the element\n */\n HeaderRender.prototype.getPanel = function () {\n return this.headerPanel;\n };\n /**\n * Set the header content div element of grid\n *\n * @param {Element} panel - specifies the panel element\n * @returns {void}\n */\n HeaderRender.prototype.setPanel = function (panel) {\n this.headerPanel = panel;\n };\n /**\n * Get the header table element of grid\n *\n * @returns {Element} returns the element\n */\n HeaderRender.prototype.getTable = function () {\n return this.headerTable;\n };\n /**\n * Set the header table element of grid\n *\n * @param {Element} table - specifies the table element\n * @returns {void}\n */\n HeaderRender.prototype.setTable = function (table) {\n this.headerTable = table;\n };\n /**\n * Get the header colgroup element\n *\n * @returns {Element} returns the element\n */\n HeaderRender.prototype.getColGroup = function () {\n return this.colgroup;\n };\n /**\n * Set the header colgroup element\n *\n * @param {Element} colGroup - specifies the colgroup\n * @returns {Element} returns the element\n */\n HeaderRender.prototype.setColGroup = function (colGroup) {\n return this.colgroup = colGroup;\n };\n /**\n * Get the header row element collection.\n *\n * @returns {Element[]} returns the element\n */\n HeaderRender.prototype.getRows = function () {\n var table = this.getTable();\n return table.tHead.rows;\n };\n /**\n * The function is used to create header table elements\n *\n * @returns {Element} returns the element\n * @hidden\n */\n HeaderRender.prototype.createHeaderTable = function () {\n var table = this.createTable();\n var innerDiv = this.getPanel().querySelector('.' + literals.headerContent);\n innerDiv.appendChild(table);\n return innerDiv;\n };\n /**\n * The function is used to create header table elements\n *\n * @param {Element} tableEle - specifies the table Element\n * @param {freezeTable} tableName - specifies the table name\n * @returns {Element} returns the element\n * @hidden\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n HeaderRender.prototype.createHeader = function (tableEle, tableName) {\n if (tableEle === void 0) { tableEle = null; }\n var gObj = this.parent;\n var isFrozen = gObj.isFrozenGrid();\n if (this.getTable() && !isFrozen) {\n remove(this.getTable());\n }\n var table = this.parent.createElement('table', { className: literals.table, attrs: { cellspacing: '0.25px', role: 'grid' } });\n var tblName = tableName ? tableName : gObj.getFrozenLeftCount() ? 'frozen-left' : 'frozen-right';\n var findHeaderRow = this.createHeaderContent(tblName);\n var thead = findHeaderRow.thead;\n var tbody = this.parent.createElement(literals.tbody, { className: this.parent.frozenRows ? '' : 'e-hide', attrs: { role: 'rowgroup' } });\n this.caption = this.parent.createElement('caption', { innerHTML: this.parent.element.id + '_header_table', className: 'e-hide' });\n var colGroup = this.parent.createElement(literals.colGroup);\n var rowBody = this.parent.createElement('tr');\n var bodyCell;\n var rows = this.rows = findHeaderRow.rows;\n for (var i = 0, len = rows.length; i < len; i++) {\n for (var j = 0, len_1 = rows[parseInt(i.toString(), 10)].cells.length; j < len_1; j++) {\n bodyCell = this.parent.createElement('td');\n rowBody.appendChild(bodyCell);\n }\n }\n if (gObj.allowFiltering || gObj.allowSorting || gObj.allowGrouping) {\n table.classList.add('e-sortfilter');\n }\n if (isFrozen && gObj.allowResizing) {\n var movableContent = this.parent.getContent().querySelector('.' + literals.movableContent).querySelector('.' + literals.table);\n if (tableName === 'movable' && !isNullOrUndefined(movableContent)) {\n table.style.width = movableContent.style.width;\n }\n }\n this.updateColGroup(colGroup);\n tbody.appendChild(rowBody);\n table.appendChild(this.setColGroup(colGroup));\n table.appendChild(thead);\n table.appendChild(tbody);\n table.appendChild(this.caption);\n this.ariaService.setOptions(table, { colcount: gObj.getColumns().length.toString() });\n return table;\n };\n /**\n * @param {Element} tableEle - specifies the column\n * @returns {Element} returns the element\n * @hidden\n */\n HeaderRender.prototype.createTable = function (tableEle) {\n if (tableEle === void 0) { tableEle = null; }\n return this.createHeader(tableEle);\n };\n HeaderRender.prototype.createHeaderContent = function (tableName) {\n var gObj = this.parent;\n var index = 1;\n var frozenMode = gObj.getFrozenMode();\n var columns = gObj.getColumns();\n var thead = this.parent.createElement('thead', { attrs: { 'role': 'rowgroup' } });\n var colHeader = this.parent.createElement('tr', { className: 'e-columnheader' });\n var rowRenderer = new RowRenderer(this.serviceLocator, CellType.Header, gObj);\n rowRenderer.element = colHeader;\n var rows = [];\n var headerRow;\n this.colDepth = measureColumnDepth(gObj.columns);\n for (var i = 0, len = this.colDepth; i < len; i++) {\n rows[parseInt(i.toString(), 10)] = this.generateRow(i);\n rows[parseInt(i.toString(), 10)].cells = [];\n }\n if (frozenMode !== 'Right') {\n rows = this.ensureColumns(rows);\n }\n rows = this.getHeaderCells(rows, tableName);\n if (frozenMode === 'Right') {\n index = 0;\n rows = this.ensureColumns(rows);\n }\n var frzCols = this.parent.getFrozenColumns();\n if (this.parent.isRowDragable() && this.parent.isFrozenGrid() && rows[0].cells[parseInt(index.toString(), 10)]) {\n var colFreezeMode = rows[0].cells[parseInt(index.toString(), 10)].column.getFreezeTableName();\n if (tableName === 'movable' && this.getStackedLockColsCount.length) {\n for (var j = 0, len = rows.length; j < len; j++) {\n if (frozenMode === 'Right') {\n rows[parseInt(j.toString(), 10)].cells.pop();\n }\n else {\n rows[parseInt(j.toString(), 10)].cells.shift();\n }\n }\n }\n else if ((colFreezeMode === 'movable' || (frozenMode === literals.leftRight &&\n colFreezeMode === literals.frozenRight))) {\n if (frozenMode === 'Right') {\n rows[0].cells.pop();\n }\n else {\n rows[0].cells.shift();\n }\n }\n else if (!frzCols && colFreezeMode === literals.frozenLeft) {\n rows[0].cells[0].column.freeze = colFreezeMode === literals.frozenLeft ? 'Left' : 'Right';\n }\n else if (frozenMode === 'Right' && colFreezeMode === literals.frozenRight) {\n rows[0].cells[rows[0].cells.length - 1].column.freeze = 'Right';\n }\n }\n for (var i = 0, len = this.colDepth; i < len; i++) {\n headerRow = rowRenderer.render(rows[parseInt(i.toString(), 10)], columns);\n if (this.parent.rowHeight && headerRow.querySelector('.e-headercell')) {\n headerRow.style.height = this.parent.rowHeight + 'px';\n }\n thead.appendChild(headerRow);\n }\n var findHeaderRow = {\n thead: thead,\n rows: rows\n };\n return findHeaderRow;\n };\n HeaderRender.prototype.updateColGroup = function (colGroup) {\n var cols = this.parent.getColumns();\n var col;\n var indexes = this.parent.getColumnIndexesInView();\n if (this.parent.enableColumnVirtualization && this.parent.getFrozenColumns()\n && this.parent.contentModule.isXaxis()) {\n cols = extend([], this.parent.getColumns());\n cols.splice(0, this.parent.getFrozenColumns());\n }\n colGroup.id = this.parent.element.id + literals.colGroup;\n if (this.parent.allowGrouping) {\n for (var i = 0, len = this.parent.groupSettings.columns.length; i < len; i++) {\n if (this.parent.enableColumnVirtualization && indexes.indexOf(i) === -1) {\n continue;\n }\n col = this.parent.createElement('col', { className: 'e-group-intent' });\n colGroup.appendChild(col);\n }\n }\n if (this.parent.detailTemplate || this.parent.childGrid) {\n col = this.parent.createElement('col', { className: 'e-detail-intent' });\n colGroup.appendChild(col);\n }\n if (this.parent.isRowDragable() && this.parent.getFrozenMode() !== 'Right') {\n col = this.parent.createElement('col', { className: 'e-drag-intent' });\n colGroup.appendChild(col);\n }\n for (var i = 0, len = cols.length; i < len; i++) {\n col = this.parent.createElement('col');\n if (cols[parseInt(i.toString(), 10)].visible === false) {\n setStyleAttribute(col, { 'display': 'none' });\n }\n colGroup.appendChild(col);\n }\n if (this.parent.isRowDragable() && this.parent.getFrozenMode() === 'Right') {\n col = this.parent.createElement('col', { className: 'e-drag-intent' });\n colGroup.appendChild(col);\n }\n return colGroup;\n };\n HeaderRender.prototype.ensureColumns = function (rows) {\n //TODO: generate dummy column for group, detail, stacked row here; ensureColumns here\n var gObj = this.parent;\n var indexes = this.parent.getColumnIndexesInView();\n for (var i = 0, len = rows.length; i < len; i++) {\n if (gObj.allowGrouping) {\n for (var c = 0, len_2 = gObj.groupSettings.columns.length; c < len_2; c++) {\n if (this.parent.enableColumnVirtualization && indexes.indexOf(c) === -1) {\n continue;\n }\n rows[parseInt(i.toString(), 10)].cells.push(this.generateCell({}, CellType.HeaderIndent));\n }\n }\n if (gObj.detailTemplate || gObj.childGrid) {\n var args = {};\n this.parent.notify(events.detailIndentCellInfo, args);\n rows[parseInt(i.toString(), 10)].cells.push(this.generateCell(args, CellType.DetailHeader));\n }\n if (gObj.isRowDragable()) {\n rows[parseInt(i.toString(), 10)].cells.push(this.generateCell({}, CellType.RowDragHIcon));\n }\n }\n return rows;\n };\n HeaderRender.prototype.getHeaderCells = function (rows, tableName) {\n var thead = this.parent.getHeaderTable() && this.parent.getHeaderTable().querySelector('thead');\n var cols = this.parent.enableColumnVirtualization ?\n this.parent.getColumns(this.parent.enablePersistence) : this.parent.columns;\n this.frzIdx = 0;\n this.notfrzIdx = 0;\n if (this.parent.lockcolPositionCount) {\n for (var i = 0; i < cols.length; i++) {\n this.lockColsRendered = false;\n rows = this.appendCells(cols[parseInt(i.toString(), 10)], rows, 0, i === 0, false, i === (cols.length - 1), thead, tableName, false);\n }\n }\n for (var i = 0, len = cols.length; i < len; i++) {\n this.notfrzIdx = 0;\n this.lockColsRendered = true;\n rows = this.appendCells(cols[parseInt(i.toString(), 10)], rows, 0, i === 0, false, i === (len - 1), thead, tableName, false);\n }\n return rows;\n };\n HeaderRender.prototype.appendCells = function (cols, rows, index, isFirstObj, isFirstCol, isLastCol, isMovable, tableName, isStackLastCol) {\n var lastCol = isLastCol ? isStackLastCol ? 'e-laststackcell' : 'e-lastcell' : '';\n var isFrozen = this.parent.isFrozenGrid();\n var isLockColumn = !this.parent.lockcolPositionCount\n || (cols.lockColumn && !this.lockColsRendered) || (!cols.lockColumn && this.lockColsRendered);\n var isFrozenLockColumn = !this.parent.lockcolPositionCount || (cols.lockColumn && !this.lockColsRendered)\n || (!cols.lockColumn && this.lockColsRendered);\n var scrollbar = this.parent.getContent().querySelector('.e-movablescrollbar');\n var left;\n if (isFrozen && scrollbar && this.parent.enableColumnVirtualization) {\n left = scrollbar.scrollLeft;\n }\n if (!cols.columns) {\n if (left && left > 0 && this.parent.contentModule.isXaxis()\n && this.parent.inViewIndexes[0] !== 0 && cols.getFreezeTableName() === 'movable') {\n rows[parseInt(index.toString(), 10)].cells.push(this.generateCell(cols, CellType.Header, this.colDepth - index, (isFirstObj ? '' : (isFirstCol ? 'e-firstcell' : '')) + lastCol, index, this.parent.getColumnIndexByUid(cols.uid)));\n }\n else {\n if ((!isFrozen && isLockColumn) || (isFrozen && cols.getFreezeTableName() === tableName && isFrozenLockColumn)) {\n rows[parseInt(index.toString(), 10)].cells.push(this.generateCell(cols, CellType.Header, this.colDepth - index, (isFirstObj ? '' : (isFirstCol ? 'e-firstcell' : '')) + lastCol, index, this.parent.getColumnIndexByUid(cols.uid)));\n }\n }\n if (this.parent.lockcolPositionCount) {\n if ((this.frzIdx + this.notfrzIdx < this.parent.frozenColumns) &&\n ((cols.lockColumn && !this.lockColsRendered) || (!cols.lockColumn && this.lockColsRendered))) {\n this.frzIdx++;\n }\n else {\n this.notfrzIdx++;\n }\n }\n else {\n this.frzIdx++;\n }\n }\n else {\n this.isFirstCol = false;\n var colSpan = this.getCellCnt(cols, 0);\n if (colSpan) {\n var stackedLockColsCount = this.getStackedLockColsCount(cols, 0);\n var isStackedLockColumn = this.parent.lockcolPositionCount === 0\n || (!this.lockColsRendered && stackedLockColsCount !== 0)\n || (this.lockColsRendered && (colSpan - stackedLockColsCount) !== 0);\n var isFrozenStack = isFrozen && this.ensureStackedFrozen(cols.columns, tableName, false);\n if ((!isFrozen && isStackedLockColumn) || isFrozenStack) {\n rows[parseInt(index.toString(), 10)].cells.push(new Cell({\n cellType: CellType.StackedHeader, column: cols,\n colSpan: this.getColSpan(colSpan, stackedLockColsCount, cols.columns, tableName, isFrozen),\n className: isFirstObj ? '' : (isFirstCol ? 'e-firstcell' : '')\n }));\n }\n }\n if (this.parent.lockcolPositionCount && !this.lockColsRendered) {\n for (var i = 0; i < cols.columns.length; i++) {\n rows = this.appendCells(cols.columns[parseInt(i.toString(), 10)], rows, index + 1, isFirstObj, i === 0, i === (cols.columns.length - 1) && isLastCol, isMovable, tableName, false);\n }\n }\n if (this.lockColsRendered) {\n for (var i = 0, len = cols.columns.length; i < len; i++) {\n isFirstObj = isFirstObj && i === 0;\n var isFirstCol_1 = this.isFirstCol = cols.columns[parseInt(i.toString(), 10)].visible\n && !isFirstObj;\n var isLaststackedCol = i === (len - 1) && isLastCol;\n rows = this.appendCells(cols.columns[parseInt(i.toString(), 10)], rows, index + 1, isFirstObj, isFirstCol_1 && !isLaststackedCol, isLaststackedCol, isMovable, tableName, true);\n }\n }\n }\n return rows;\n };\n HeaderRender.prototype.ensureStackedFrozen = function (columns, tableName, isTrue) {\n var length = columns.length;\n for (var i = 0; i < length; i++) {\n if (columns[parseInt(i.toString(), 10)].columns) {\n isTrue = this.ensureStackedFrozen(columns[parseInt(i.toString(), 10)].columns, tableName, isTrue);\n }\n else if (columns[parseInt(i.toString(), 10)].getFreezeTableName() === tableName) {\n isTrue = true;\n break;\n }\n }\n return isTrue;\n };\n HeaderRender.prototype.getStackedLockColsCount = function (col, lockColsCount) {\n if (col.columns) {\n for (var i = 0; i < col.columns.length; i++) {\n lockColsCount = this.getStackedLockColsCount(col.columns[parseInt(i.toString(), 10)], lockColsCount);\n }\n }\n else if (col.lockColumn) {\n lockColsCount++;\n }\n return lockColsCount;\n };\n HeaderRender.prototype.getColSpan = function (colSpan, stackedLockColsCount, columns, tableName, isFrozen) {\n if (isFrozen) {\n colSpan = this.getFrozenColSpan(columns, tableName, 0);\n }\n else if (this.parent.lockcolPositionCount) {\n colSpan = !this.lockColsRendered ? stackedLockColsCount : colSpan - stackedLockColsCount;\n }\n return colSpan;\n };\n HeaderRender.prototype.getFrozenColSpan = function (columns, tableName, count) {\n var length = columns.length;\n for (var i = 0; i < length; i++) {\n if (columns[parseInt(i.toString(), 10)].columns) {\n count = this.getFrozenColSpan(columns[parseInt(i.toString(), 10)].columns, tableName, count);\n }\n else if (columns[parseInt(i.toString(), 10)].getFreezeTableName() === tableName\n && columns[parseInt(i.toString(), 10)].visible) {\n count++;\n }\n }\n return count;\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n HeaderRender.prototype.generateRow = function (index) {\n return new Row({});\n };\n HeaderRender.prototype.generateCell = function (column, cellType, rowSpan, className, rowIndex, colIndex) {\n var opt = {\n 'visible': column.visible,\n 'isDataCell': false,\n 'isTemplate': !isNullOrUndefined(column.headerTemplate),\n 'rowID': '',\n 'column': column,\n 'cellType': cellType,\n 'rowSpan': rowSpan,\n 'className': className,\n 'index': rowIndex,\n 'colIndex': colIndex\n };\n if (!opt.rowSpan || opt.rowSpan < 2) {\n delete opt.rowSpan;\n }\n return new Cell(opt);\n };\n /**\n * Function to hide header table column based on visible property\n *\n * @param {Column[]} columns - specifies the column\n * @returns {void}\n */\n HeaderRender.prototype.setVisible = function (columns) {\n var gObj = this.parent;\n var displayVal;\n var idx;\n var frzCols = gObj.getFrozenColumns();\n for (var c = 0, clen = columns.length; c < clen; c++) {\n var column = columns[parseInt(c.toString(), 10)];\n idx = gObj.getNormalizedColumnIndex(column.uid);\n displayVal = column.visible ? '' : 'none';\n if (frzCols) {\n var normalizedfrzCols = this.parent.isRowDragable() ? frzCols + 1 : frzCols;\n if (idx < normalizedfrzCols) {\n setStyleAttribute(this.getColGroup().children[parseInt(idx.toString(), 10)], { 'display': displayVal });\n }\n else {\n var mTblColGrp = gObj.getHeaderContent().querySelector('.' + literals.movableHeader).querySelector(literals.colGroup);\n setStyleAttribute(mTblColGrp.children[idx - normalizedfrzCols], { 'display': displayVal });\n }\n }\n else {\n setStyleAttribute(this.getColGroup().children[parseInt(idx.toString(), 10)], { 'display': displayVal });\n }\n }\n this.refreshUI();\n };\n HeaderRender.prototype.colPosRefresh = function () {\n this.refreshUI();\n };\n /**\n * Refresh the header of the Grid.\n *\n * @returns {void}\n */\n HeaderRender.prototype.refreshUI = function () {\n var frzCols = this.parent.isFrozenGrid();\n var isVFTable = this.parent.enableColumnVirtualization && frzCols;\n var headerDiv = this.getPanel();\n this.toggleStackClass(headerDiv);\n var table = this.freezeReorder ? this.headerPanel.querySelector('.' + literals.movableHeader).querySelector('.' + literals.table)\n : this.getTable();\n var tableName = this.parent.isFrozenGrid() ? this.parent.getFrozenLeftCount() ? 'frozen-left'\n : 'frozen-right' : undefined;\n if (isVFTable) {\n table = this.parent.contentModule.getVirtualFreezeHeader();\n tableName = this.parent.contentModule.isXaxis() ? 'movable' : tableName;\n }\n if (table) {\n remove(table);\n table.removeChild(table.firstChild);\n table.removeChild(table.childNodes[0]);\n var colGroup = this.parent.createElement(literals.colGroup);\n var findHeaderRow = this.createHeaderContent(tableName);\n this.rows = findHeaderRow.rows;\n table.insertBefore(findHeaderRow.thead, table.firstChild);\n this.updateColGroup(colGroup);\n table.insertBefore(this.setColGroup(colGroup), table.firstChild);\n if (!isVFTable) {\n this.setTable(table);\n }\n this.appendContent(table);\n this.parent.notify(events.colGroupRefresh, {});\n this.widthService.setWidthToColumns();\n this.parent.updateDefaultCursor();\n if (!frzCols || (this.parent.enableColumnVirtualization && frzCols)) {\n this.initializeHeaderDrag();\n }\n var rows = [].slice.call(headerDiv.querySelectorAll('tr.e-columnheader'));\n for (var _i = 0, rows_1 = rows; _i < rows_1.length; _i++) {\n var row = rows_1[_i];\n var gCells = [].slice.call(row.getElementsByClassName('e-grouptopleftcell'));\n if (gCells.length) {\n gCells[gCells.length - 1].classList.add('e-lastgrouptopleftcell');\n }\n }\n this.parent.notify(events.headerRefreshed, { rows: this.rows, args: { isFrozen: frzCols } });\n if (this.parent.enableColumnVirtualization && parentsUntil(table, literals.movableHeader)) {\n this.parent.notify(events.headerRefreshed, { rows: this.rows, args: { isFrozen: false, isXaxis: true } });\n }\n if (this.parent.allowTextWrap && this.parent.textWrapSettings.wrapMode === 'Header') {\n wrap(rows, true);\n }\n }\n };\n HeaderRender.prototype.toggleStackClass = function (div) {\n var column = this.parent.columns;\n var stackedHdr = column.some(function (column) { return !isNullOrUndefined(column.columns); });\n if (stackedHdr) {\n div.classList.add('e-stackedheader');\n }\n else {\n div.classList.remove('e-stackedheader');\n }\n };\n HeaderRender.prototype.appendContent = function (table) {\n this.getPanel().querySelector('.' + literals.headerContent).appendChild(table);\n };\n HeaderRender.prototype.getCellCnt = function (col, cnt) {\n if (col.columns) {\n for (var i = 0, len = col.columns.length; i < len; i++) {\n cnt = this.getCellCnt(col.columns[parseInt(i.toString(), 10)], cnt);\n }\n }\n else {\n if (col.visible) {\n cnt++;\n }\n }\n return cnt;\n };\n HeaderRender.prototype.initializeHeaderDrag = function () {\n var gObj = this.parent;\n if (!(this.parent.allowReordering || (this.parent.allowGrouping && this.parent.groupSettings.showDropArea))) {\n return;\n }\n this.draggable = new Draggable(gObj.getHeaderContent(), {\n dragTarget: '.e-headercell',\n distance: 5,\n helper: this.helper,\n dragStart: this.dragStart,\n drag: this.drag,\n dragStop: this.dragStop,\n abort: '.e-rhandler',\n isReplaceDragEle: this.isReplaceDragEle\n });\n this.parent.on(events.destroy, this.droppableDestroy, this);\n };\n HeaderRender.prototype.initializeHeaderDrop = function () {\n var gObj = this.parent;\n this.droppable = new Droppable(gObj.getHeaderContent(), {\n accept: '.e-dragclone',\n drop: this.drop\n });\n this.parent.on(events.destroy, this.droppableDestroy, this);\n };\n HeaderRender.prototype.droppableDestroy = function () {\n if (this.droppable && !this.droppable.isDestroyed) {\n this.droppable.destroy();\n }\n if (this.draggable && !this.draggable.isDestroyed) {\n this.draggable.destroy();\n }\n };\n HeaderRender.prototype.renderCustomToolbar = function () {\n var _this = this;\n var gObj = this.parent;\n if (gObj.rowRenderingMode === 'Vertical' && !gObj.toolbar\n && (gObj.allowSorting || (gObj.allowFiltering && gObj.filterSettings.type !== 'FilterBar'))) {\n var div = gObj.createElement('div', { className: 'e-res-toolbar e-toolbar' });\n var toolbarItems = gObj.createElement('div', { className: 'e-toolbar-items' });\n var toolbarLeft = gObj.createElement('div', { className: 'e-toolbar-left' });\n var count = this.parent.allowFiltering && this.parent.allowSorting ? 2 : 1;\n for (var i = 0; i < count; i++) {\n var toolbarItem = gObj.createElement('div', { className: 'e-toolbar-item e-gridresponsiveicons e-icons e-tbtn-align' });\n var cls = count === 1 ? this.parent.allowSorting ? 'sort'\n : 'filter' : i === 1 ? 'sort' : 'filter';\n var button = gObj.createElement('button', { className: 'e-tbar-btn e-control e-btn e-lib e-icon-btn' });\n var span = gObj.createElement('span', { className: 'e-btn-icon e-res' + cls + '-icon e-icons' });\n button.appendChild(span);\n var btnObj = new Button({\n cssClass: this.parent.cssClass ? this.parent.cssClass : ''\n });\n btnObj.appendTo(button);\n button.onclick = function (e) {\n if (e.target.classList.contains('e-ressort-btn')\n || e.target.classList.contains('e-ressort-icon')) {\n _this.parent.showResponsiveCustomSort();\n }\n else {\n _this.parent.showResponsiveCustomFilter();\n }\n };\n toolbarItem.appendChild(button);\n toolbarLeft.appendChild(toolbarItem);\n }\n toolbarItems.appendChild(toolbarLeft);\n div.appendChild(toolbarItems);\n gObj.element.insertBefore(div, this.parent.element.querySelector('.' + literals.gridHeader));\n }\n else {\n if (gObj.enableAdaptiveUI && !gObj.toolbar) {\n gObj.getContent().classList.add('e-responsive-header');\n }\n }\n };\n HeaderRender.prototype.updateCustomResponsiveToolbar = function (args) {\n var resToolbar = this.parent.element.querySelector('.e-responsive-toolbar');\n if (args.module === 'toolbar') {\n if (resToolbar) {\n remove(resToolbar);\n }\n else {\n this.renderCustomToolbar();\n }\n }\n };\n return HeaderRender;\n}());\nexport { HeaderRender };\n","import { remove, addClass } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined, extend } from '@syncfusion/ej2-base';\nimport { doesImplementInterface, setStyleAndAttributes, appendChildren, extendObjWithFn } from '../base/util';\nimport { createCheckBox } from '@syncfusion/ej2-buttons';\nimport { foreignKeyData } from '../base/constant';\nimport { CellType } from '../base/enum';\nimport * as literals from '../base/string-literals';\n/**\n * CellRenderer class which responsible for building cell content.\n *\n * @hidden\n */\nvar CellRenderer = /** @class */ (function () {\n function CellRenderer(parent, locator) {\n this.localizer = locator.getService('localization');\n this.formatter = locator.getService('valueFormatter');\n this.parent = parent;\n this.element = this.parent.createElement('TD', { className: literals.rowCell, attrs: { tabindex: '-1' } });\n this.rowChkBox = this.parent.createElement('input', { className: 'e-checkselect', attrs: { 'type': 'checkbox',\n 'aria-label': this.localizer.getConstant('CheckBoxLabel') } });\n }\n /**\n * Function to return the wrapper for the TD content\n *\n * @returns {string | Element} returns the string\n */\n CellRenderer.prototype.getGui = function () {\n return '';\n };\n /**\n * Function to format the cell value.\n *\n * @param {Column} column - specifies the column\n * @param {Object} value - specifies the value\n * @param {Object} data - specifies the data\n * @returns {string} returns the format\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n CellRenderer.prototype.format = function (column, value, data) {\n if (!isNullOrUndefined(column.format)) {\n if (column.type === 'number' && isNaN(parseInt(value, 10))) {\n value = null;\n }\n value = this.formatter.toView(value, column.getFormatter());\n }\n return isNullOrUndefined(value) ? '' : value.toString();\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n CellRenderer.prototype.evaluate = function (node, cell, data, attributes, fData, isEdit) {\n var _a;\n var result;\n if (cell.column.template) {\n var isReactCompiler = this.parent.isReact && typeof (cell.column.template) !== 'string';\n var isReactChild = this.parent.parentDetails && this.parent.parentDetails.parentInstObj &&\n this.parent.parentDetails.parentInstObj.isReact;\n var literals_1 = ['index'];\n var dummyData = extendObjWithFn({}, data, (_a = {}, _a[foreignKeyData] = fData, _a.column = cell.column, _a));\n var templateID = this.parent.element.id + cell.column.uid;\n var str = 'isStringTemplate';\n if (isReactCompiler || isReactChild) {\n var copied = { 'index': attributes[literals_1[0]] };\n cell.column.getColumnTemplate()(extend(copied, dummyData), this.parent, 'columnTemplate', templateID, this.parent[\"\" + str], null, node);\n }\n else {\n result = cell.column.getColumnTemplate()(extend({ 'index': attributes[literals_1[0]] }, dummyData), this.parent, 'template', templateID, this.parent[\"\" + str], undefined, undefined, this.parent['root']);\n }\n if (!isReactCompiler && !isReactChild) {\n appendChildren(node, result);\n }\n this.parent.notify('template-result', { template: result });\n result = null;\n node.setAttribute('aria-label', node.innerText + this.localizer.getConstant('TemplateCell') +\n this.localizer.getConstant('ColumnHeader') + cell.column.headerText);\n return false;\n }\n return true;\n };\n /**\n * Function to invoke the custom formatter available in the column object.\n *\n * @param {Column} column - specifies the column\n * @param {Object} value - specifies the value\n * @param {Object} data - specifies the data\n * @returns {Object} returns the object\n */\n CellRenderer.prototype.invokeFormatter = function (column, value, data) {\n if (!isNullOrUndefined(column.formatter)) {\n if (doesImplementInterface(column.formatter, 'getValue')) {\n var formatter = column.formatter;\n value = new formatter().getValue(column, data);\n }\n else if (typeof column.formatter === 'function') {\n value = column.formatter(column, data);\n }\n else {\n value = column.formatter.getValue(column, data);\n }\n }\n return value;\n };\n /**\n * Function to render the cell content based on Column object.\n *\n * @param {Cell} cell - specifies the cell\n * @param {Object} data - specifies the data\n * @param {Object} attributes - specifies the attributes\n * @param {boolean} isExpand - specifies the boolean for expand\n * @param {boolean} isEdit - specifies the boolean for edit\n * @returns {Element} returns the element\n */\n CellRenderer.prototype.render = function (cell, data, attributes, isExpand, isEdit) {\n return this.refreshCell(cell, data, attributes, isEdit);\n };\n /**\n * Function to refresh the cell content based on Column object.\n *\n * @param {Element} td - specifies the element\n * @param {Cell} cell - specifies the cell\n * @param {Object} data - specifies the data\n * @param {Object} attributes - specifies the attribute\n * @returns {void}\n */\n CellRenderer.prototype.refreshTD = function (td, cell, data, attributes) {\n var isEdit = this.parent.editSettings.mode === 'Batch' && td.classList.contains('e-editedbatchcell');\n if (this.parent.isReact) {\n td.innerHTML = '';\n var cellIndex = td.cellIndex;\n var parentRow = td.parentElement;\n remove(td);\n var newTD = this.refreshCell(cell, data, attributes, isEdit);\n this.cloneAttributes(newTD, td);\n if (parentRow.cells.length !== cellIndex - 1) {\n parentRow.insertBefore(newTD, parentRow.cells[parseInt(cellIndex.toString(), 10)]);\n }\n else {\n parentRow.appendChild(newTD);\n }\n }\n else {\n var node = this.refreshCell(cell, data, attributes, isEdit);\n td.innerHTML = '';\n td.setAttribute('aria-label', node.getAttribute('aria-label'));\n var elements = [].slice.call(node.childNodes);\n for (var _i = 0, elements_1 = elements; _i < elements_1.length; _i++) {\n var elem = elements_1[_i];\n td.appendChild(elem);\n }\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n CellRenderer.prototype.cloneAttributes = function (target, source) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var attrs = source.attributes;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var i = attrs.length;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var attr;\n while (i--) {\n attr = attrs[parseInt(i.toString(), 10)];\n target.setAttribute(attr.name, attr.value);\n }\n };\n CellRenderer.prototype.refreshCell = function (cell, data, attributes, isEdit) {\n var _a;\n var node = this.element.cloneNode();\n var column = cell.column;\n var fData;\n if (cell.isForeignKey) {\n fData = cell.foreignKeyData[0] || (_a = {}, _a[column.foreignKeyValue] = column.format ? null : '', _a);\n }\n //Prepare innerHtml\n var innerHtml = this.getGui();\n var value = cell.isForeignKey ? this.getValue(column.foreignKeyValue, fData, column) :\n this.getValue(column.field, data, column);\n if ((column.type === 'date' || column.type === 'datetime') && !isNullOrUndefined(value)) {\n value = new Date(value);\n }\n value = this.format(column, value, data);\n innerHtml = value.toString();\n if (column.type === 'boolean' && !column.displayAsCheckBox) {\n var localeStr = (value !== 'true' && value !== 'false') ? null : value === 'true' ? 'True' : 'False';\n innerHtml = localeStr ? this.localizer.getConstant(localeStr) : innerHtml;\n }\n var fromFormatter = this.invokeFormatter(column, value, data);\n innerHtml = !isNullOrUndefined(column.formatter) ? isNullOrUndefined(fromFormatter) ? '' : fromFormatter.toString() : innerHtml;\n node.setAttribute('aria-label', innerHtml + this.localizer.getConstant('ColumnHeader') + cell.column.headerText);\n if (this.evaluate(node, cell, data, attributes, fData, isEdit) && column.type !== 'checkbox') {\n this.appendHtml(node, this.parent.sanitize(innerHtml), column.getDomSetter ? column.getDomSetter() : 'innerHTML');\n }\n else if (column.type === 'checkbox') {\n node.classList.add(literals.gridChkBox);\n node.setAttribute('aria-label', this.localizer.getConstant('CheckBoxLabel'));\n if (this.parent.selectionSettings.persistSelection) {\n value = value === 'true';\n }\n else {\n value = false;\n }\n var checkWrap = createCheckBox(this.parent.createElement, false, { checked: value, label: ' ' });\n if (this.parent.cssClass) {\n addClass([checkWrap], [this.parent.cssClass]);\n }\n this.rowChkBox.id = 'checkbox-' + cell.rowID;\n checkWrap.insertBefore(this.rowChkBox.cloneNode(), checkWrap.firstChild);\n node.appendChild(checkWrap);\n }\n if (this.parent.checkAllRows === 'Check' && this.parent.enableVirtualization) {\n cell.isSelected = true;\n }\n this.setAttributes(node, cell, attributes);\n if (column.type === 'boolean' && column.displayAsCheckBox) {\n var checked = isNaN(parseInt(value.toString(), 10)) ? value === 'true' : parseInt(value.toString(), 10) > 0;\n var checkWrap = createCheckBox(this.parent.createElement, false, { checked: checked, label: ' ' });\n node.innerHTML = '';\n node.classList.add('e-gridchkbox-cell');\n checkWrap.classList.add('e-checkbox-disabled');\n if (this.parent.cssClass) {\n addClass([checkWrap], [this.parent.cssClass]);\n }\n node.appendChild(checkWrap);\n node.setAttribute('aria-label', checked + this.localizer.getConstant('ColumnHeader') + cell.column.headerText);\n }\n return node;\n };\n /**\n * Function to specifies how the result content to be placed in the cell.\n *\n * @param {Element} node - specifies the node\n * @param {string|Element} innerHtml - specifies the innerHTML\n * @param {string} property - specifies the element\n * @returns {Element} returns the element\n */\n CellRenderer.prototype.appendHtml = function (node, innerHtml, property) {\n if (property === void 0) { property = 'innerHTML'; }\n node[\"\" + property] = innerHtml;\n return node;\n };\n /**\n * @param {HTMLElement} node - specifies the node\n * @param {cell} cell - specifies the cell\n * @param {Object} attributes - specifies the attributes\n * @returns {void}\n * @hidden\n */\n CellRenderer.prototype.setAttributes = function (node, cell, attributes) {\n var column = cell.column;\n this.buildAttributeFromCell(node, cell, column.type === 'checkbox');\n setStyleAndAttributes(node, attributes);\n setStyleAndAttributes(node, cell.attributes);\n if (column.customAttributes) {\n setStyleAndAttributes(node, column.customAttributes);\n }\n if (this.parent.rowRenderingMode === 'Vertical') {\n setStyleAndAttributes(node, { 'data-cell': column.headerText });\n }\n if (column.textAlign) {\n node.style.textAlign = column.textAlign;\n }\n if (column.clipMode === 'Clip' || (!column.clipMode && this.parent.clipMode === 'Clip')) {\n node.classList.add('e-gridclip');\n }\n else if (column.clipMode === 'EllipsisWithTooltip' || (!column.clipMode && this.parent.clipMode === 'EllipsisWithTooltip')\n && !(this.parent.allowTextWrap && (this.parent.textWrapSettings.wrapMode === 'Content'\n || this.parent.textWrapSettings.wrapMode === 'Both'))) {\n if (column.type !== 'checkbox') {\n node.classList.add('e-ellipsistooltip');\n }\n }\n };\n CellRenderer.prototype.buildAttributeFromCell = function (node, cell, isCheckBoxType) {\n var attr = {};\n var prop = { 'colindex': literals.dataColIndex };\n var classes = [];\n if (cell.colSpan) {\n attr.colSpan = cell.colSpan;\n }\n if (cell.rowSpan) {\n attr.rowSpan = cell.rowSpan;\n }\n if (cell.isTemplate) {\n classes.push('e-templatecell');\n }\n if (cell.isSelected) {\n classes.push.apply(classes, ['e-selectionbackground', 'e-active']);\n if (isCheckBoxType) {\n node.querySelector('.e-frame').classList.add('e-check');\n }\n }\n if (cell.isColumnSelected) {\n classes.push.apply(classes, ['e-columnselection']);\n }\n if (cell.cellType === CellType.Header) {\n attr[prop.colindex] = cell.colIndex;\n attr[literals.ariaColIndex] = cell.colIndex + 1;\n }\n else if (!isNullOrUndefined(cell.index)) {\n attr[prop.colindex] = cell.index;\n attr[literals.ariaColIndex] = cell.index + 1;\n }\n if (!cell.visible) {\n classes.push('e-hide');\n }\n attr.class = classes;\n setStyleAndAttributes(node, attr);\n };\n CellRenderer.prototype.getValue = function (field, data, column) {\n return column.valueAccessor(field, data, column);\n };\n return CellRenderer;\n}());\nexport { CellRenderer };\n","/**\n * AriaService\n *\n * @hidden\n */\nvar AriaService = /** @class */ (function () {\n function AriaService() {\n }\n AriaService.prototype.setOptions = function (target, options) {\n var props = Object.keys(options);\n for (var i = 0; i < props.length; i++) {\n setStateAndProperties(target, config[props[parseInt(i.toString(), 10)]], options[props[parseInt(i.toString(), 10)]]);\n }\n };\n AriaService.prototype.setExpand = function (target, expand) {\n setStateAndProperties(target, config.expand, expand);\n };\n AriaService.prototype.setSort = function (target, direction) {\n setStateAndProperties(target, config.sort, direction, typeof direction === 'boolean');\n };\n AriaService.prototype.setBusy = function (target, isBusy) {\n setStateAndProperties(target, config.busy, isBusy);\n setStateAndProperties(target, config.invalid, null, true);\n };\n AriaService.prototype.setGrabbed = function (target, isGrabbed, remove) {\n setStateAndProperties(target, config.grabbed, isGrabbed, remove);\n };\n AriaService.prototype.setDropTarget = function (target, isTarget) {\n setStateAndProperties(target, config.dropeffect, 'copy', !isTarget);\n };\n return AriaService;\n}());\nexport { AriaService };\n/**\n * @param {HTMLElement} target - specifies the target\n * @param {string} attribute - specifies the attribute\n * @param {ValueType} value - specifies the value\n * @param {boolean} remove - specifies the boolean for remove\n * @returns {void}\n * @hidden\n */\nfunction setStateAndProperties(target, attribute, value, remove) {\n if (remove && target) {\n target.removeAttribute(attribute);\n return;\n }\n if (target) {\n target.setAttribute(attribute, value);\n }\n}\nvar config = {\n expand: 'aria-expanded',\n role: 'role',\n datarole: 'data-role',\n selected: 'aria-selected',\n multiselectable: 'aria-multiselectable',\n sort: 'aria-sort',\n busy: 'aria-busy',\n invalid: 'aria-invalid',\n grabbed: 'aria-grabbed',\n dropeffect: 'aria-dropeffect',\n haspopup: 'aria-haspopup',\n level: 'aria-level',\n colcount: 'aria-colcount',\n rowcount: 'aria-rowcount'\n};\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { isNullOrUndefined, extend, addClass } from '@syncfusion/ej2-base';\nimport { attributes } from '@syncfusion/ej2-base';\nimport { setStyleAndAttributes, appendChildren } from '../base/util';\nimport { CellRenderer } from './cell-renderer';\nimport { AriaService } from '../services/aria-service';\nimport { createCheckBox } from '@syncfusion/ej2-buttons';\nimport { headerCellInfo } from '../base/constant';\n/**\n * HeaderCellRenderer class which responsible for building header cell content.\n *\n * @hidden\n */\nvar HeaderCellRenderer = /** @class */ (function (_super) {\n __extends(HeaderCellRenderer, _super);\n function HeaderCellRenderer() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.element = _this.parent\n .createElement('TH', { className: 'e-headercell', attrs: { tabindex: '-1' } });\n _this.ariaService = new AriaService();\n _this.hTxtEle = _this.parent.createElement('span', { className: 'e-headertext' });\n _this.sortEle = _this.parent.createElement('div', { className: 'e-sortfilterdiv e-icons', attrs: { 'aria-hidden': 'true' } });\n _this.gui = _this.parent.createElement('div');\n _this.chkAllBox = _this.parent.createElement('input', { className: 'e-checkselectall', attrs: { 'type': 'checkbox', 'aria-label': _this.localizer.getConstant('CheckBoxLabel') } });\n return _this;\n }\n /**\n * Function to return the wrapper for the TH content.\n *\n * @returns {string | Element} returns the element\n */\n HeaderCellRenderer.prototype.getGui = function () {\n return this.gui.cloneNode();\n };\n /**\n * Function to render the cell content based on Column object.\n *\n * @param {Cell} cell - specifies the column\n * @param {Object} data - specifies the data\n * @param {object} attributes - specifies the aattributes\n * @returns {Element} returns the element\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n HeaderCellRenderer.prototype.render = function (cell, data, attributes) {\n var node = this.element.cloneNode();\n var fltrMenuEle = this.parent.createElement('div', { className: 'e-filtermenudiv e-icons e-icon-filter', attrs: { 'aria-hidden': 'true' } });\n return this.prepareHeader(cell, node, fltrMenuEle);\n };\n /**\n * Function to refresh the cell content based on Column object.\n *\n * @param {Cell} cell - specifies the cell\n * @param {Element} node - specifies the noe\n * @returns {Element} returns the element\n */\n HeaderCellRenderer.prototype.refresh = function (cell, node) {\n this.clean(node);\n var fltrMenuEle = this.parent.createElement('div', { className: 'e-filtermenudiv e-icons e-icon-filter', attrs: { 'aria-hidden': 'true' } });\n return this.prepareHeader(cell, node, fltrMenuEle);\n };\n HeaderCellRenderer.prototype.clean = function (node) {\n node.innerHTML = '';\n };\n /* tslint:disable-next-line:max-func-body-length */\n HeaderCellRenderer.prototype.prepareHeader = function (cell, node, fltrMenuEle) {\n var column = cell.column;\n var ariaAttr = {};\n var elementDesc = '';\n //Prepare innerHtml\n var innerDIV = this.getGui();\n var hValueAccer;\n attributes(innerDIV, {\n 'e-mappinguid': column.uid,\n 'class': 'e-headercelldiv'\n });\n if (!isNullOrUndefined(column.headerValueAccessor)) {\n hValueAccer = this.getValue(column.headerText, column);\n }\n if (column.type !== 'checkbox') {\n var value = column.headerText;\n if (!isNullOrUndefined(hValueAccer)) {\n value = hValueAccer;\n }\n var headerText = this.hTxtEle.cloneNode();\n headerText[column.getDomSetter()] = this.parent.sanitize(value);\n innerDIV.appendChild(headerText);\n }\n else {\n column.editType = 'booleanedit';\n var checkAllWrap = createCheckBox(this.parent.createElement, false, { checked: false, label: ' ' });\n this.chkAllBox.id = 'checkbox-' + column.uid;\n checkAllWrap.insertBefore(this.chkAllBox.cloneNode(), checkAllWrap.firstChild);\n if (this.parent.cssClass) {\n addClass([checkAllWrap], [this.parent.cssClass]);\n }\n innerDIV.appendChild(checkAllWrap);\n innerDIV.classList.add('e-headerchkcelldiv');\n }\n this.buildAttributeFromCell(node, cell);\n this.appendHtml(node, innerDIV);\n node.appendChild(this.sortEle.cloneNode());\n if ((this.parent.allowFiltering && this.parent.filterSettings.type !== 'FilterBar') &&\n (column.allowFiltering && !isNullOrUndefined(column.field)) &&\n !(this.parent.showColumnMenu && column.showColumnMenu)) {\n attributes(fltrMenuEle, {\n 'e-mappinguid': 'e-flmenu-' + column.uid\n });\n elementDesc = elementDesc.length ? elementDesc + '. ' + this.localizer.getConstant('FilterDescription') : this.localizer.getConstant('FilterDescription');\n node.classList.add('e-fltr-icon');\n var matchFlColumns = [];\n if (this.parent.filterSettings.columns.length && this.parent.filterSettings.columns.length !== matchFlColumns.length) {\n var foreignColumn = this.parent.getForeignKeyColumns();\n for (var index = 0; index < this.parent.columns.length; index++) {\n for (var count = 0; count < this.parent.filterSettings.columns.length; count++) {\n if (this.parent.filterSettings.columns[parseInt(count.toString(), 10)].field === column.field\n || (foreignColumn.length\n && column.foreignKeyValue === this.parent.filterSettings.columns[parseInt(count.toString(), 10)].field)) {\n fltrMenuEle.classList.add('e-filtered');\n matchFlColumns.push(column.field);\n break;\n }\n }\n }\n }\n node.appendChild(fltrMenuEle.cloneNode());\n }\n if (cell.className) {\n node.classList.add(cell.className);\n }\n if (column.customAttributes) {\n setStyleAndAttributes(node, column.customAttributes);\n }\n if (this.parent.allowSorting && column.allowSorting) {\n ariaAttr.sort = 'none';\n elementDesc = elementDesc.length ? elementDesc + '. ' + this.localizer.getConstant('SortDescription') : this.localizer.getConstant('SortDescription');\n }\n if ((this.parent.allowGrouping && column.allowGrouping) || this.parent.allowReordering && column.allowReordering) {\n ariaAttr.grabbed = false;\n elementDesc = elementDesc.length ? elementDesc + '. ' + this.localizer.getConstant('GroupDescription') : this.localizer.getConstant('GroupDescription');\n }\n if (this.parent.showColumnMenu) {\n elementDesc = elementDesc.length ? elementDesc + '. ' + this.localizer.getConstant('ColumnMenuDescription') : this.localizer.getConstant('ColumnMenuDescription');\n }\n node = this.extendPrepareHeader(column, node);\n var result;\n var gridObj = this.parent;\n var colIndex = gridObj.getColumnIndexByField(column.field);\n if (!isNullOrUndefined(column.headerTemplate)) {\n //need to pass the template id for blazor headertemplate\n var headerTempID = gridObj.element.id + column.uid + 'headerTemplate';\n var str = 'isStringTemplate';\n var col = column;\n var isReactCompiler = this.parent.isReact && typeof (column.headerTemplate) !== 'string';\n var isReactChild_1 = this.parent.parentDetails && this.parent.parentDetails.parentInstObj &&\n this.parent.parentDetails.parentInstObj.isReact;\n if (isReactCompiler || isReactChild_1) {\n var copied = { 'index': colIndex };\n node.firstElementChild.innerHTML = '';\n column.getHeaderTemplate()(extend(copied, col), gridObj, 'headerTemplate', headerTempID, this.parent[\"\" + str], null, node.firstElementChild);\n this.parent.renderTemplates();\n }\n else {\n result = column.getHeaderTemplate()(extend({ 'index': colIndex }, col), gridObj, 'headerTemplate', headerTempID, this.parent[\"\" + str], undefined, undefined, this.parent['root']);\n node.firstElementChild.innerHTML = '';\n appendChildren(node.firstElementChild, result);\n }\n }\n this.ariaService.setOptions(node, ariaAttr);\n if (!isNullOrUndefined(column.headerTextAlign) || !isNullOrUndefined(column.textAlign)) {\n var alignment = column.headerTextAlign || column.textAlign;\n innerDIV.style.textAlign = alignment;\n if (alignment === 'Right' || alignment === 'Left') {\n node.classList.add(alignment === 'Right' ? 'e-rightalign' : 'e-leftalign');\n }\n else if (alignment === 'Center') {\n node.classList.add('e-centeralign');\n }\n }\n if (column.clipMode === 'Clip' || (!column.clipMode && this.parent.clipMode === 'Clip')) {\n node.classList.add('e-gridclip');\n }\n else if ((column.clipMode === 'EllipsisWithTooltip' || (!column.clipMode && this.parent.clipMode === 'EllipsisWithTooltip'))\n && !(gridObj.allowTextWrap && (gridObj.textWrapSettings.wrapMode === 'Header'\n || gridObj.textWrapSettings.wrapMode === 'Both'))) {\n if (column.type !== 'checkbox') {\n node.classList.add('e-ellipsistooltip');\n }\n }\n if (elementDesc) {\n node.setAttribute('aria-description', elementDesc);\n }\n node.setAttribute('aria-rowspan', (!isNullOrUndefined(cell.rowSpan) ? cell.rowSpan : 1).toString());\n node.setAttribute('aria-colspan', '1');\n var isReactChild = this.parent.parentDetails && this.parent.parentDetails.parentInstObj &&\n this.parent.parentDetails.parentInstObj.isReact;\n if (((this.parent.isReact && this.parent.requireTemplateRef)\n || (isReactChild && this.parent.parentDetails.parentInstObj.requireTemplateRef))\n && !isNullOrUndefined(column.headerTemplate)) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var thisRef_1 = this;\n thisRef_1.parent.renderTemplates(function () {\n thisRef_1.parent.trigger(headerCellInfo, { cell: cell, node: node });\n });\n }\n else {\n this.parent.trigger(headerCellInfo, { cell: cell, node: node });\n }\n return node;\n };\n HeaderCellRenderer.prototype.getValue = function (field, column) {\n return column.headerValueAccessor(field, column);\n };\n HeaderCellRenderer.prototype.extendPrepareHeader = function (column, node) {\n if (this.parent.showColumnMenu && column.showColumnMenu && !isNullOrUndefined(column.field)) {\n var element = (this.parent.createElement('div', { className: 'e-icons e-columnmenu', attrs: { 'aria-hidden': 'true' } }));\n var matchFilteredColumns = [];\n if (this.parent.filterSettings.columns.length && this.parent.filterSettings.columns.length !== matchFilteredColumns.length) {\n for (var i = 0; i < this.parent.columns.length; i++) {\n for (var j = 0; j < this.parent.filterSettings.columns.length; j++) {\n if (this.parent.filterSettings.columns[parseInt(j.toString(), 10)].field === column.field) {\n element.classList.add('e-filtered');\n matchFilteredColumns.push(column.field);\n break;\n }\n }\n }\n }\n node.classList.add('e-fltr-icon');\n node.appendChild(element);\n }\n if (this.parent.allowResizing) {\n var handler = this.parent.createElement('div');\n handler.className = column.allowResizing ? 'e-rhandler e-rcursor' : 'e-rsuppress';\n node.appendChild(handler);\n }\n return node;\n };\n /**\n * Function to specifies how the result content to be placed in the cell.\n *\n * @param {Element} node - specifies the node\n * @param {string|Element} innerHtml - specifies the innerHtml\n * @returns {Element} returns the element\n */\n HeaderCellRenderer.prototype.appendHtml = function (node, innerHtml) {\n node.appendChild(innerHtml);\n return node;\n };\n return HeaderCellRenderer;\n}(CellRenderer));\nexport { HeaderCellRenderer };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { CellRenderer } from './cell-renderer';\nimport { headerCellInfo } from '../base/constant';\nimport { setStyleAndAttributes, appendChildren } from '../base/util';\n/**\n * StackedHeaderCellRenderer class which responsible for building stacked header cell content.\n *\n * @hidden\n */\nvar StackedHeaderCellRenderer = /** @class */ (function (_super) {\n __extends(StackedHeaderCellRenderer, _super);\n function StackedHeaderCellRenderer() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.element = _this.parent.createElement('TH', {\n className: 'e-headercell e-stackedheadercell', attrs: {\n tabindex: '-1'\n }\n });\n return _this;\n }\n /**\n * Function to render the cell content based on Column object.\n *\n * @param {Cell} cell - specifies the cell\n * @param {Object} data - specifies the data\n * @param {object} attributes - specifies the attributes\n * @returns {Element} returns the element\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n StackedHeaderCellRenderer.prototype.render = function (cell, data, attributes) {\n var node = this.element.cloneNode();\n var div = this.parent.createElement('div', {\n className: 'e-stackedheadercelldiv',\n attrs: { 'e-mappinguid': cell.column.uid }\n });\n var column = cell.column;\n node.appendChild(div);\n if (!isNullOrUndefined(column.headerTemplate)) {\n appendChildren(div, column.getHeaderTemplate()(column, this.parent, 'headerTemplate'));\n }\n else {\n this.appendHtml(div, this.parent.sanitize(column.headerText), column.getDomSetter());\n }\n if (cell.column.toolTip) {\n node.setAttribute('title', cell.column.toolTip);\n }\n if (column.clipMode === 'Clip' || (!column.clipMode && this.parent.clipMode === 'Clip')) {\n node.classList.add('e-gridclip');\n }\n else if (column.clipMode === 'EllipsisWithTooltip' || (!column.clipMode && this.parent.clipMode === 'EllipsisWithTooltip')) {\n node.classList.add('e-ellipsistooltip');\n }\n if (!isNullOrUndefined(cell.column.textAlign)) {\n div.style.textAlign = cell.column.textAlign;\n }\n if (cell.column.customAttributes) {\n setStyleAndAttributes(node, cell.column.customAttributes);\n }\n node.setAttribute('colspan', cell.colSpan.toString());\n node.setAttribute('aria-colspan', cell.colSpan.toString());\n node.setAttribute('aria-rowspan', '1');\n if (this.parent.allowResizing) {\n var handler = this.parent.createElement('div');\n handler.className = cell.column.allowResizing ? 'e-rhandler e-rcursor' : 'e-rsuppress';\n node.appendChild(handler);\n }\n if (cell.className) {\n node.classList.add(cell.className);\n }\n this.parent.trigger(headerCellInfo, { cell: cell, node: node });\n return node;\n };\n return StackedHeaderCellRenderer;\n}(CellRenderer));\nexport { StackedHeaderCellRenderer };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { setStyleAndAttributes } from '../base/util';\nimport { CellRenderer } from './cell-renderer';\n/**\n * IndentCellRenderer class which responsible for building group indent cell.\n *\n * @hidden\n */\nvar IndentCellRenderer = /** @class */ (function (_super) {\n __extends(IndentCellRenderer, _super);\n function IndentCellRenderer() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.element = _this.parent.createElement('TD', { className: 'e-indentcell' });\n return _this;\n }\n /**\n * Function to render the indent cell\n *\n * @param {Cell} cell - specifies the cell\n * @param {Object} data - specifies the data\n * @returns {Element} returns the element\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n IndentCellRenderer.prototype.render = function (cell, data) {\n var node = this.element.cloneNode();\n setStyleAndAttributes(node, cell.attributes);\n return node;\n };\n return IndentCellRenderer;\n}(CellRenderer));\nexport { IndentCellRenderer };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { CellRenderer } from './cell-renderer';\nimport { appendChildren, templateCompiler } from '../base/util';\n/**\n * GroupCaptionCellRenderer class which responsible for building group caption cell.\n *\n * @hidden\n */\nvar GroupCaptionCellRenderer = /** @class */ (function (_super) {\n __extends(GroupCaptionCellRenderer, _super);\n function GroupCaptionCellRenderer() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.cellUid = 0;\n _this.element = _this.parent\n .createElement('TD', { className: 'e-groupcaption',\n attrs: { id: _this.parent.element.id + 'captioncell', tabindex: '-1' } });\n return _this;\n }\n /**\n * Function to render the cell content based on Column object.\n *\n * @param {Cell} cell - specifies the cell\n * @param {Object} data - specifies the GroupedData\n * @returns {Element} returns the element\n */\n GroupCaptionCellRenderer.prototype.render = function (cell, data) {\n this.element.id = this.parent.element.id + 'captioncell' + this.cellUid++;\n var node = this.element.cloneNode();\n var gObj = this.parent;\n var column = cell.column;\n var domSetter = column.getDomSetter ? column.getDomSetter() : 'innerHTML';\n var result;\n var fKeyValue;\n var gTemplateValue;\n data.headerText = cell.column.headerText;\n if (cell.isForeignKey) {\n fKeyValue = this.format(cell.column, cell.column.valueAccessor('foreignKey', data, cell.column));\n }\n var value = cell.isForeignKey ? fKeyValue : cell.column.enableGroupByFormat ? data.key :\n this.format(cell.column, cell.column.valueAccessor('key', data, cell.column));\n for (var j = 0; j < gObj.aggregates.length; j++) {\n for (var i = 0; i < gObj.aggregates[parseInt(j.toString(), 10)].columns.length; i++) {\n if (gObj.getVisibleColumns()[0].field === gObj.aggregates[parseInt(j.toString(), 10)].columns[parseInt(i.toString(), 10)]\n .field && gObj.aggregates[parseInt(j.toString(), 10)].columns[parseInt(i.toString(), 10)].groupCaptionTemplate) {\n if (gObj.aggregates[parseInt(j.toString(), 10)].columns[parseInt(i.toString(), 10)].groupCaptionTemplate.includes('$')) {\n gTemplateValue = gObj.aggregates[parseInt(j.toString(), 10)].columns[parseInt(i.toString(), 10)]\n .groupCaptionTemplate.split('$')[0] + data[gObj.getVisibleColumns()[0].field][gObj\n .aggregates[parseInt(j.toString(), 10)].columns[parseInt(i.toString(), 10)].type] +\n gObj.aggregates[parseInt(j.toString(), 10)].columns[parseInt(i.toString(), 10)].groupCaptionTemplate.split('}')[1];\n }\n else {\n gTemplateValue = gObj.aggregates[parseInt(j.toString(), 10)]\n .columns[parseInt(i.toString(), 10)].groupCaptionTemplate;\n }\n break;\n }\n }\n }\n if (!isNullOrUndefined(gObj.groupSettings.captionTemplate)) {\n var isReactCompiler = this.parent.isReact && typeof (gObj.groupSettings.captionTemplate) !== 'string';\n var isReactChild = this.parent.parentDetails && this.parent.parentDetails.parentInstObj &&\n this.parent.parentDetails.parentInstObj.isReact;\n if (isReactCompiler || isReactChild) {\n var tempID = gObj.element.id + 'captionTemplate';\n templateCompiler(gObj.groupSettings.captionTemplate)(data, this.parent, 'captionTemplate', tempID, null, null, node);\n this.parent.renderTemplates();\n }\n else if (this.parent.isVue) {\n result = templateCompiler(gObj.groupSettings.captionTemplate)(data, this.parent);\n }\n else {\n result = templateCompiler(gObj.groupSettings.captionTemplate)(data);\n }\n if (!isReactCompiler && !isReactChild) {\n appendChildren(node, result);\n }\n }\n else {\n if (gObj.groupSettings.enableLazyLoading) {\n node[\"\" + domSetter] = this.parent.sanitize(cell.column.headerText) + ': ' + this.parent.sanitize(value) +\n (gTemplateValue ? ' ' + gTemplateValue : '');\n }\n else {\n node[\"\" + domSetter] = this.parent.sanitize(cell.column.headerText) + ': ' + this.parent.sanitize(value) +\n ' - ' + data.count + ' ' + (data.count < 2 ? this.localizer.getConstant('Item') : this.localizer.getConstant('Items'))\n + (gTemplateValue ? ' ' + gTemplateValue : '');\n }\n }\n node.setAttribute('colspan', cell.colSpan.toString());\n node.setAttribute('aria-label', node.innerHTML + this.localizer.getConstant('GroupCaption'));\n node.setAttribute('title', node.textContent);\n return node;\n };\n return GroupCaptionCellRenderer;\n}(CellRenderer));\nexport { GroupCaptionCellRenderer };\n/**\n * GroupCaptionEmptyCellRenderer class which responsible for building group caption empty cell.\n *\n * @hidden\n */\nvar GroupCaptionEmptyCellRenderer = /** @class */ (function (_super) {\n __extends(GroupCaptionEmptyCellRenderer, _super);\n function GroupCaptionEmptyCellRenderer() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.element = _this.parent.createElement('TD', { className: 'e-groupcaption' });\n return _this;\n }\n /**\n * Function to render the cell content based on Column object.\n *\n * @param {Cell} cell - specifies the cell\n * @param {Object} data - specifies the Object\n * @param {string} data.field - Defines the field\n * @param {string} data.key - Defines the key\n * @param {number} data.count - Defines the count\n * @returns {Element} returns the element\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n GroupCaptionEmptyCellRenderer.prototype.render = function (cell, data) {\n var node = this.element.cloneNode();\n node.innerHTML = ' ';\n node.setAttribute('colspan', cell.colSpan.toString());\n return node;\n };\n return GroupCaptionEmptyCellRenderer;\n}(CellRenderer));\nexport { GroupCaptionEmptyCellRenderer };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { IndentCellRenderer } from './indent-cell-renderer';\nimport { CellType } from '../base/enum';\n/**\n * ExpandCellRenderer class which responsible for building group expand cell.\n *\n * @hidden\n */\nvar ExpandCellRenderer = /** @class */ (function (_super) {\n __extends(ExpandCellRenderer, _super);\n function ExpandCellRenderer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Function to render the expand cell\n *\n * @param {Cell} cell - specifies the cell\n * @param {Object} data - specifies the data\n * @param {string} data.field - Defines the field\n * @param {string} data.key - Defines the key\n * @param {Object} attr - specifies the attribute\n * @param {boolean} isExpand - specifies isexpand\n * @returns {Element} returns the element\n */\n ExpandCellRenderer.prototype.render = function (cell, data, attr, isExpand) {\n var node = this.element.cloneNode();\n node.setAttribute('ej-mappingname', data.field);\n node.setAttribute('ej-mappingvalue', data.key);\n node.setAttribute('aria-expanded', isExpand ? 'true' : 'false');\n node.setAttribute('tabindex', '-1');\n if (this.parent.infiniteScrollSettings && this.parent.infiniteScrollSettings.enableCache) {\n cell.cellType = CellType.Indent;\n node.className = isExpand ? 'e-recordplusexpand e-disablepointer' : 'e-recordpluscollapse e-disablepointer';\n }\n else {\n node.className = isExpand ? 'e-recordplusexpand' : 'e-recordpluscollapse';\n node.appendChild(this.parent.createElement('a', {\n className: isExpand ? 'e-icons e-gdiagonaldown e-icon-gdownarrow' : 'e-icons e-gnextforward e-icon-grightarrow',\n attrs: { href: '#', 'title': isExpand ? 'expanded' : 'collapsed' }\n }));\n }\n return node;\n };\n return ExpandCellRenderer;\n}(IndentCellRenderer));\nexport { ExpandCellRenderer };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { CellRenderer } from './cell-renderer';\n/**\n * HeaderIndentCellRenderer class which responsible for building header indent cell.\n *\n * @hidden\n */\nvar HeaderIndentCellRenderer = /** @class */ (function (_super) {\n __extends(HeaderIndentCellRenderer, _super);\n function HeaderIndentCellRenderer() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.element = _this.parent.createElement('TH', { className: 'e-grouptopleftcell' });\n return _this;\n }\n /**\n * Function to render the indent cell\n *\n * @param {Cell} cell - specifies the cell\n * @param {Object} data - specifies the data\n * @returns {Element} returns the element\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n HeaderIndentCellRenderer.prototype.render = function (cell, data) {\n var node = this.element.cloneNode();\n node.appendChild(this.parent.createElement('div', { className: 'e-headercelldiv e-emptycell', innerHTML: '' }));\n return node;\n };\n return HeaderIndentCellRenderer;\n}(CellRenderer));\nexport { HeaderIndentCellRenderer };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { CellRenderer } from './cell-renderer';\n/**\n * DetailHeaderIndentCellRenderer class which responsible for building detail header indent cell.\n *\n * @hidden\n */\nvar DetailHeaderIndentCellRenderer = /** @class */ (function (_super) {\n __extends(DetailHeaderIndentCellRenderer, _super);\n function DetailHeaderIndentCellRenderer() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.element = _this.parent.createElement('TH', { className: 'e-detailheadercell' });\n return _this;\n }\n /**\n * Function to render the detail indent cell\n *\n * @param {Cell} cell - specifies the cell\n * @param {Object} data - specifies the data\n * @returns {Element} returns the element\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n DetailHeaderIndentCellRenderer.prototype.render = function (cell, data) {\n var node = this.element.cloneNode();\n node.appendChild(this.parent.createElement('div', { className: 'e-emptycell' }));\n return node;\n };\n return DetailHeaderIndentCellRenderer;\n}(CellRenderer));\nexport { DetailHeaderIndentCellRenderer };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { CellRenderer } from './cell-renderer';\n/**\n * ExpandCellRenderer class which responsible for building group expand cell.\n *\n * @hidden\n */\nvar DetailExpandCellRenderer = /** @class */ (function (_super) {\n __extends(DetailExpandCellRenderer, _super);\n function DetailExpandCellRenderer() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.element = _this.parent.createElement('TD', {\n className: 'e-detailrowcollapse',\n attrs: { 'aria-expanded': 'false', tabindex: '-1' }\n });\n return _this;\n }\n /**\n * Function to render the detail expand cell\n *\n * @param {Cell} cell - specifies the cell\n * @param {Object} data - specifies the data\n * @param {Object} attributes - specifies the attributes\n * @returns {Element} returns the element\n */\n DetailExpandCellRenderer.prototype.render = function (cell, data, attributes) {\n var node = this.element.cloneNode();\n if (attributes && !isNullOrUndefined(attributes['class'])) {\n node.className = '';\n node.className = attributes['class'];\n node.appendChild(this.parent.createElement('a', { className: 'e-icons e-dtdiagonaldown e-icon-gdownarrow', attrs: {\n href: '#', 'title': this.localizer.getConstant('Expanded')\n } }));\n }\n else {\n node.appendChild(this.parent.createElement('a', { className: 'e-icons e-dtdiagonalright e-icon-grightarrow', attrs: {\n href: '#', 'title': this.localizer.getConstant('Collapsed')\n } }));\n }\n return node;\n };\n return DetailExpandCellRenderer;\n}(CellRenderer));\nexport { DetailExpandCellRenderer };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { CellRenderer } from './cell-renderer';\n/**\n * ExpandCellRenderer class which responsible for building group expand cell.\n *\n * @hidden\n */\nvar RowDragDropRenderer = /** @class */ (function (_super) {\n __extends(RowDragDropRenderer, _super);\n function RowDragDropRenderer() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.element = _this.parent.createElement('TD', {\n className: 'e-rowdragdrop e-rowdragdropcell',\n attrs: { tabindex: '-1' }\n });\n return _this;\n }\n /**\n * Function to render the detail expand cell\n *\n * @param {Cell} cell - specifies the cell\n * @param {Object} data - specifies the data\n * @returns {Element} returns the element\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n RowDragDropRenderer.prototype.render = function (cell, data) {\n var nodeElement = this.element.cloneNode();\n nodeElement.appendChild(this.parent.createElement('div', {\n className: 'e-icons e-rowcelldrag e-dtdiagonalright e-icon-rowdragicon',\n attrs: { 'aria-hidden': 'true' }\n }));\n if (cell.isSelected) {\n nodeElement.classList.add('e-selectionbackground');\n nodeElement.classList.add('e-active');\n }\n return nodeElement;\n };\n return RowDragDropRenderer;\n}(CellRenderer));\nexport { RowDragDropRenderer };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { createElement } from '@syncfusion/ej2-base';\nimport { CellRenderer } from './cell-renderer';\n/**\n * DetailHeaderIndentCellRenderer class which responsible for building detail header indent cell.\n *\n * @hidden\n */\nvar RowDragDropHeaderRenderer = /** @class */ (function (_super) {\n __extends(RowDragDropHeaderRenderer, _super);\n function RowDragDropHeaderRenderer() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.element = _this.parent.createElement('TH', { className: 'e-rowdragheader' });\n return _this;\n }\n /**\n * Function to render the detail indent cell\n *\n * @param {Cell} cell - specifies the cell\n * @param {Object} data - specifies the data\n * @returns {Element} returns the element\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n RowDragDropHeaderRenderer.prototype.render = function (cell, data) {\n var node = this.element.cloneNode();\n node.appendChild(createElement('div', { className: 'e-emptycell' }));\n return node;\n };\n return RowDragDropHeaderRenderer;\n}(CellRenderer));\nexport { RowDragDropHeaderRenderer };\n","import { remove, resetBlazorTemplate, blazorTemplates, getValue } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined, extend } from '@syncfusion/ej2-base';\nimport { DataManager, Query, Deferred, Predicate, DataUtil } from '@syncfusion/ej2-data';\nimport { ValueFormatter } from '../services/value-formatter';\nimport { RenderType, CellType } from '../base/enum';\nimport { Data } from '../actions/data';\nimport { Column } from '../models/column';\nimport { Row } from '../models/row';\nimport { Cell } from '../models/cell';\nimport * as events from '../base/constant';\nimport { prepareColumns, setFormatter, isGroupAdaptive, getDatePredicate, getObject, clearReactVueTemplates } from '../base/util';\nimport { ContentRender } from '../renderer/content-renderer';\nimport { HeaderRender } from '../renderer/header-renderer';\nimport { CellRenderer } from '../renderer/cell-renderer';\nimport { HeaderCellRenderer } from '../renderer/header-cell-renderer';\nimport { StackedHeaderCellRenderer } from '../renderer/stacked-cell-renderer';\nimport { IndentCellRenderer } from '../renderer/indent-cell-renderer';\nimport { GroupCaptionCellRenderer, GroupCaptionEmptyCellRenderer } from '../renderer/caption-cell-renderer';\nimport { ExpandCellRenderer } from '../renderer/expand-cell-renderer';\nimport { HeaderIndentCellRenderer } from '../renderer/header-indent-renderer';\nimport { DetailHeaderIndentCellRenderer } from '../renderer/detail-header-indent-renderer';\nimport { DetailExpandCellRenderer } from '../renderer/detail-expand-cell-renderer';\nimport { RowDragDropRenderer } from './row-drag-drop-renderer';\nimport { RowDragDropHeaderRenderer } from '../renderer/row-drag-header-indent-render';\nimport * as literals from '../base/string-literals';\n/**\n * Content module is used to render grid content\n *\n * @hidden\n */\nvar Render = /** @class */ (function () {\n /**\n * Constructor for render module\n *\n * @param {IGrid} parent - specifies the IGrid\n * @param {ServiceLocator} locator - specifies the serviceLocator\n */\n function Render(parent, locator) {\n this.emptyGrid = false;\n this.counter = 0;\n this.parent = parent;\n this.locator = locator;\n this.data = new Data(parent, locator);\n this.l10n = locator.getService('localization');\n this.ariaService = this.locator.getService('ariaService');\n this.renderer = this.locator.getService('rendererFactory');\n this.addEventListener();\n }\n /**\n * To initialize grid header, content and footer rendering\n *\n * @returns {void}\n */\n Render.prototype.render = function () {\n var gObj = this.parent;\n this.headerRenderer = this.renderer.getRenderer(RenderType.Header);\n this.contentRenderer = this.renderer.getRenderer(RenderType.Content);\n this.headerRenderer.renderPanel();\n this.contentRenderer.renderPanel();\n if (gObj.getColumns().length) {\n this.isLayoutRendered = true;\n this.headerRenderer.renderTable();\n this.contentRenderer.renderTable();\n this.emptyRow(false);\n }\n this.parent.scrollModule.setWidth();\n this.parent.scrollModule.setHeight();\n if (this.parent.height !== 'auto') {\n this.parent.scrollModule.setPadding();\n }\n this.refreshDataManager();\n };\n /**\n * Refresh the entire Grid.\n *\n * @param {NotifyArgs} e - specifies the NotifyArgs\n * @returns {void}\n */\n Render.prototype.refresh = function (e) {\n var _this = this;\n if (e === void 0) { e = { requestType: 'refresh' }; }\n var gObj = this.parent;\n gObj.notify(e.requestType + \"-begin\", e);\n gObj.trigger(events.actionBegin, e, function (args) {\n if (args === void 0) { args = { requestType: 'refresh' }; }\n if (args.cancel) {\n gObj.notify(events.cancelBegin, args);\n return;\n }\n if (gObj.allowPaging && gObj.pageSettings.pageSizes && gObj.pagerModule.pagerObj.isAllPage &&\n (args.action === 'add' && args.requestType === 'save') && gObj.pagerModule.pagerObj.checkAll) {\n gObj.setProperties({ pageSettings: { pageSize: gObj.pageSettings.pageSize + 1 } }, true);\n }\n if (args.requestType === 'delete' && gObj.allowPaging) {\n var dataLength = args.data.length;\n var count = gObj.pageSettings.totalRecordsCount - dataLength;\n var currentViewData = gObj.getCurrentViewRecords().length;\n // eslint-disable-next-line max-len\n if (!(currentViewData - dataLength) && count && ((gObj.pageSettings.currentPage - 1) * gObj.pageSettings.pageSize) === count) {\n gObj.prevPageMoving = true;\n gObj.setProperties({\n pageSettings: {\n totalRecordsCount: count, currentPage: Math.ceil(count / gObj.pageSettings.pageSize)\n }\n }, true);\n gObj.pagerModule.pagerObj.totalRecordsCount = count;\n }\n }\n if (args.requestType === 'reorder' && _this.parent.dataSource && 'result' in _this.parent.dataSource) {\n _this.contentRenderer.refreshContentRows(args);\n }\n else if ((args.requestType === 'paging' || args.requestType === 'columnstate' || args.requestType === 'reorder')\n && _this.parent.groupSettings.enableLazyLoading && _this.parent.groupSettings.columns.length\n && (_this.parent.enableVirtualization ? _this.parent.lazyLoadRender :\n _this.parent.contentModule).getGroupCache()[_this.parent.pageSettings.currentPage]) {\n _this.contentRenderer.refreshContentRows(args);\n }\n else {\n _this.refreshDataManager(args);\n }\n });\n };\n /**\n * @returns {void}\n * @hidden\n */\n Render.prototype.resetTemplates = function () {\n var gObj = this.parent;\n var gridColumns = gObj.getColumns();\n if (gObj.detailTemplate) {\n var detailTemplateID = gObj.element.id + 'detailTemplate';\n blazorTemplates[\"\" + detailTemplateID] = [];\n resetBlazorTemplate(detailTemplateID, 'DetailTemplate');\n }\n if (gObj.groupSettings.captionTemplate) {\n resetBlazorTemplate(gObj.element.id + 'captionTemplate', 'CaptionTemplate');\n }\n if (gObj.rowTemplate) {\n resetBlazorTemplate(gObj.element.id + 'rowTemplate', 'RowTemplate');\n }\n if (gObj.toolbarTemplate) {\n resetBlazorTemplate(gObj.element.id + 'toolbarTemplate', 'ToolbarTemplate');\n }\n if (gObj.pageSettings.template) {\n resetBlazorTemplate(gObj.element.id + '_template', 'pageSettings');\n }\n for (var i = 0; i < gridColumns.length; i++) {\n if (gridColumns[parseInt(i.toString(), 10)].template) {\n blazorTemplates[gObj.element.id + gridColumns[parseInt(i.toString(), 10)].uid] = [];\n resetBlazorTemplate(gObj.element.id + gridColumns[parseInt(i.toString(), 10)].uid, 'Template');\n }\n if (gridColumns[parseInt(i.toString(), 10)].headerTemplate) {\n resetBlazorTemplate(gObj.element.id + gridColumns[parseInt(i.toString(), 10)].uid + 'headerTemplate', 'HeaderTemplate');\n }\n if (gridColumns[parseInt(i.toString(), 10)].filterTemplate) {\n resetBlazorTemplate(gObj.element.id + gridColumns[parseInt(i.toString(), 10)].uid + 'filterTemplate', 'FilterTemplate');\n }\n }\n var guid = 'guid';\n for (var k = 0; k < gObj.aggregates.length; k++) {\n for (var j = 0; j < gObj.aggregates[parseInt(k.toString(), 10)].columns.length; j++) {\n if (gObj.aggregates[parseInt(k.toString(), 10)].columns[parseInt(j.toString(), 10)].footerTemplate) {\n var tempID = gObj.element.id + gObj.aggregates[parseInt(k.toString(), 10)].columns[parseInt(j.toString(), 10)][\"\" + guid] + 'footerTemplate';\n resetBlazorTemplate(tempID, 'FooterTemplate');\n }\n if (gObj.aggregates[parseInt(k.toString(), 10)].columns[parseInt(j.toString(), 10)].groupFooterTemplate) {\n var tempID = gObj.element.id + gObj.aggregates[parseInt(k.toString(), 10)].columns[parseInt(j.toString(), 10)][\"\" + guid] + 'groupFooterTemplate';\n resetBlazorTemplate(tempID, 'GroupFooterTemplate');\n }\n if (gObj.aggregates[parseInt(k.toString(), 10)].columns[parseInt(j.toString(), 10)].groupCaptionTemplate) {\n var tempID = gObj.element.id + gObj.aggregates[parseInt(k.toString(), 10)].columns[parseInt(j.toString(), 10)][\"\" + guid] + 'groupCaptionTemplate';\n resetBlazorTemplate(tempID, 'GroupCaptionTemplate');\n }\n }\n }\n };\n Render.prototype.refreshComplete = function (e) {\n this.parent.trigger(events.actionComplete, e);\n };\n /**\n * The function is used to refresh the dataManager\n *\n * @param {NotifyArgs} args - specifies the args\n * @returns {void}\n */\n Render.prototype.refreshDataManager = function (args) {\n var _this = this;\n if (args === void 0) { args = {}; }\n var gObj = this.parent;\n var maskRow = (gObj.loadingIndicator.indicatorType === 'Shimmer' && args.requestType !== 'virtualscroll'\n && args.requestType !== 'infiniteScroll') || ((args.requestType === 'virtualscroll' || args.requestType === 'infiniteScroll')\n && gObj.enableVirtualMaskRow);\n if (args.requestType !== 'virtualscroll' && !args.isCaptionCollapse && !maskRow) {\n this.parent.showSpinner();\n }\n if (maskRow) {\n gObj.showMaskRow(args.requestType === 'virtualscroll' ? args.virtualInfo.sentinelInfo.axis\n : args.requestType === 'infiniteScroll' ? args.direction : undefined);\n }\n this.parent.notify(events.resetInfiniteBlocks, args);\n this.emptyGrid = false;\n var dataManager;\n var isFActon = this.isNeedForeignAction();\n this.ariaService.setBusy(this.parent.getContent().querySelector('.' + literals.content), true);\n if (isFActon) {\n var deffered = new Deferred();\n dataManager = this.getFData(deffered, args);\n }\n if (!dataManager) {\n dataManager = this.data.getData(args, this.data.generateQuery().requiresCount());\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n dataManager = dataManager.then(function (e) {\n var query = _this.data.generateQuery().requiresCount();\n if (_this.emptyGrid) {\n var def = new Deferred();\n def.resolve({ result: [], count: 0 });\n return def.promise;\n }\n return _this.data.getData(args, query);\n });\n }\n if (this.parent.getForeignKeyColumns().length && (!isFActon || this.parent.searchSettings.key.length)) {\n var deffered_1 = new Deferred();\n dataManager = dataManager.then(function (e) {\n _this.parent.notify(events.getForeignKeyData, { dataManager: dataManager, result: e, promise: deffered_1, action: args });\n return deffered_1.promise;\n });\n }\n if (this.parent.groupSettings.disablePageWiseAggregates && this.parent.groupSettings.columns.length) {\n dataManager = dataManager.then(function (e) { return _this.validateGroupRecords(e); });\n }\n dataManager.then(function (e) { return _this.dataManagerSuccess(e, args); })\n .catch(function (e) { return _this.dataManagerFailure(e, args); });\n };\n Render.prototype.getFData = function (deferred, args) {\n this.parent.notify(events.getForeignKeyData, { isComplex: true, promise: deferred, action: args });\n return deferred.promise;\n };\n Render.prototype.isNeedForeignAction = function () {\n var gObj = this.parent;\n return !!((gObj.allowFiltering && gObj.filterSettings.columns.length) ||\n (gObj.searchSettings.key.length)) && this.foreignKey(this.parent.getForeignKeyColumns());\n };\n Render.prototype.foreignKey = function (columns) {\n var _this = this;\n return columns.some(function (col) {\n var fbool = false;\n fbool = _this.parent.filterSettings.columns.some(function (value) {\n return col.uid === value.uid;\n });\n return !!(fbool || _this.parent.searchSettings.key.length);\n });\n };\n Render.prototype.sendBulkRequest = function (args) {\n var _this = this;\n args.requestType = 'batchsave';\n var gObj = this.parent;\n if (gObj.allowPaging && gObj.pageSettings.pageSizes && gObj.pagerModule.pagerObj.isAllPage && gObj.pagerModule.pagerObj.checkAll) {\n var dataLength = args['changes'].addedRecords.length;\n if (dataLength) {\n gObj.setProperties({ pageSettings: { pageSize: gObj.pageSettings.pageSize + dataLength } }, true);\n }\n }\n var promise = this.data.saveChanges(args.changes, this.parent.getPrimaryKeyFieldNames()[0], args.original);\n var query = this.data.generateQuery().requiresCount();\n if (this.data.dataManager.dataSource.offline) {\n this.refreshDataManager({ requestType: 'batchsave' });\n return;\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n promise.then(function (e) {\n _this.data.getData(args, query)\n .then(function (e) { return _this.dmSuccess(e, args); })\n .catch(function (e) { return _this.dmFailure(e, args); });\n })\n .catch(function (e) { return _this.dmFailure(e, args); });\n }\n };\n Render.prototype.dmSuccess = function (e, args) {\n this.dataManagerSuccess(e, args);\n };\n Render.prototype.dmFailure = function (e, args) {\n this.dataManagerFailure(e, args);\n };\n /**\n * Render empty row to Grid which is used at the time to represent to no records.\n *\n * @returns {void}\n * @hidden\n */\n Render.prototype.renderEmptyRow = function () {\n this.emptyRow(true);\n };\n Render.prototype.emptyRow = function (isTrigger) {\n var gObj = this.parent;\n var tbody = this.contentRenderer.getTable().querySelector(literals.tbody);\n if (!isNullOrUndefined(tbody)) {\n remove(tbody);\n }\n tbody = this.parent.createElement(literals.tbody, { attrs: { role: 'rowgroup' } });\n var spanCount = 0;\n if (gObj.detailTemplate || gObj.childGrid) {\n ++spanCount;\n }\n var tr = this.parent.createElement('tr', { className: 'e-emptyrow' });\n tr.appendChild(this.parent.createElement('td', {\n innerHTML: this.l10n.getConstant('EmptyRecord'),\n attrs: { colspan: (gObj.getVisibleColumns().length + spanCount + gObj.groupSettings.columns.length).toString() }\n }));\n tbody.appendChild(tr);\n this.contentRenderer.renderEmpty(tbody);\n if (isTrigger) {\n this.parent.trigger(events.dataBound, {});\n this.parent.notify(events.onEmpty, { rows: [new Row({ isDataRow: true, cells: [new Cell({ isDataCell: true, visible: true })] })] });\n }\n };\n Render.prototype.dynamicColumnChange = function () {\n if (this.parent.getCurrentViewRecords().length) {\n this.updateColumnType(this.parent.getCurrentViewRecords()[0]);\n }\n };\n Render.prototype.updateColumnType = function (record) {\n var columns = this.parent.getColumns();\n var value;\n var cFormat = 'customFormat';\n var equalTo = 'equalTo';\n var data = record && record.items ? record.items[0] : record;\n var fmtr = this.locator.getService('valueFormatter');\n for (var i = 0, len = columns.length; i < len; i++) {\n value = getObject(columns[parseInt(i.toString(), 10)].field || '', data);\n if (!isNullOrUndefined(columns[parseInt(i.toString(), 10)][\"\" + cFormat])) {\n columns[parseInt(i.toString(), 10)].format = columns[parseInt(i.toString(), 10)][\"\" + cFormat];\n }\n if (!isNullOrUndefined(columns[parseInt(i.toString(), 10)].validationRules)\n && !isNullOrUndefined(columns[parseInt(i.toString(), 10)].validationRules[\"\" + equalTo])) {\n columns[parseInt(i.toString(), 10)].validationRules[\"\" + equalTo][0] = this.parent.element.id + columns[parseInt(i.toString(), 10)].validationRules[\"\" + equalTo][0];\n }\n if (columns[parseInt(i.toString(), 10)].isForeignColumn() && columns[parseInt(i.toString(), 10)].columnData) {\n value = getObject(columns[parseInt(i.toString(), 10)].foreignKeyValue || '', columns[parseInt(i.toString(), 10)].columnData[0]);\n }\n if (!isNullOrUndefined(value)) {\n this.isColTypeDef = true;\n if (!columns[parseInt(i.toString(), 10)].type) {\n columns[parseInt(i.toString(), 10)].type = value.getDay ? (value.getHours() > 0 || value.getMinutes() > 0 ||\n value.getSeconds() > 0 || value.getMilliseconds() > 0 ? 'datetime' : 'date') : typeof (value);\n }\n }\n else {\n columns[parseInt(i.toString(), 10)].type = columns[parseInt(i.toString(), 10)].type || null;\n }\n var valueFormatter = new ValueFormatter();\n if (columns[parseInt(i.toString(), 10)].format && (columns[parseInt(i.toString(), 10)].format.skeleton\n || (columns[parseInt(i.toString(), 10)].format.format &&\n typeof columns[parseInt(i.toString(), 10)].format.format === 'string'))) {\n columns[parseInt(i.toString(), 10)].setFormatter(valueFormatter.getFormatFunction(extend({}, columns[parseInt(i.toString(), 10)].format)));\n columns[parseInt(i.toString(), 10)].setParser(valueFormatter.getParserFunction(columns[parseInt(i.toString(), 10)].format));\n }\n if (typeof (columns[parseInt(i.toString(), 10)].format) === 'string') {\n setFormatter(this.locator, columns[parseInt(i.toString(), 10)]);\n }\n else if (!columns[parseInt(i.toString(), 10)].format && columns[parseInt(i.toString(), 10)].type === 'number') {\n columns[parseInt(i.toString(), 10)].setParser(fmtr.getParserFunction({ format: 'n2' }));\n }\n }\n };\n /**\n * @param {ReturnType} e - specifies the return type\n * @param {NotifyArgs} args - specifies the Notifyargs\n * @returns {void}\n * @hidden\n */\n // tslint:disable-next-line:max-func-body-length\n Render.prototype.dataManagerSuccess = function (e, args) {\n var _this = this;\n var gObj = this.parent;\n this.contentRenderer = this.renderer.getRenderer(RenderType.Content);\n this.headerRenderer = this.renderer.getRenderer(RenderType.Header);\n e.actionArgs = args;\n var isInfiniteDelete = this.parent.enableInfiniteScrolling && !this.parent.infiniteScrollSettings.enableCache &&\n !gObj.groupSettings.enableLazyLoading && (args.requestType === 'delete' || (args.requestType === 'save' &&\n this.parent.infiniteScrollModule.requestType === 'add' && !(gObj.sortSettings.columns.length ||\n gObj.filterSettings.columns.length || this.parent.groupSettings.columns.length || gObj.searchSettings.key)));\n // tslint:disable-next-line:max-func-body-length\n gObj.trigger(events.beforeDataBound, e, function (dataArgs) {\n if (dataArgs.cancel) {\n return;\n }\n dataArgs.result = isNullOrUndefined(dataArgs.result) ? [] : dataArgs.result;\n var len = Object.keys(dataArgs.result).length;\n if (_this.parent.isDestroyed) {\n return;\n }\n if ((!gObj.getColumns().length && !len) && !(gObj.columns.length && gObj.columns[0] instanceof Column)) {\n gObj.hideSpinner();\n return;\n }\n if (_this.isInfiniteEnd(args) && !len) {\n _this.parent.notify(events.infiniteEditHandler, { e: args, result: e.result, count: e.count, agg: e.aggregates });\n return;\n }\n _this.parent.isEdit = false;\n _this.parent.notify(events.editReset, {});\n _this.parent.notify(events.tooltipDestroy, {});\n if (args && args.requestType !== 'infiniteScroll') {\n _this.parent.notify(events.commandColumnDestroy, { type: 'refreshCommandColumn' });\n }\n _this.contentRenderer.prevCurrentView = _this.parent.currentViewData.slice();\n gObj.currentViewData = dataArgs.result;\n gObj.notify(events.refreshInfiniteCurrentViewData, { args: args, data: dataArgs.result });\n if (dataArgs.count && !gObj.allowPaging && (gObj.enableVirtualization || gObj.enableInfiniteScrolling)) {\n gObj.totalDataRecordsCount = dataArgs.count;\n }\n if (!len && dataArgs.count && gObj.allowPaging && args && args.requestType !== 'delete') {\n if (_this.parent.groupSettings.enableLazyLoading\n && (args.requestType === 'grouping' || args.requestType === 'ungrouping')) {\n _this.parent.notify(events.groupComplete, args);\n }\n gObj.prevPageMoving = true;\n gObj.pageSettings.totalRecordsCount = dataArgs.count;\n if (args.requestType !== 'paging') {\n gObj.pageSettings.currentPage = Math.ceil(dataArgs.count / gObj.pageSettings.pageSize);\n }\n gObj.dataBind();\n return;\n }\n if ((!gObj.getColumns().length && len || !_this.isLayoutRendered) && !isGroupAdaptive(gObj)) {\n gObj.removeMaskRow();\n _this.updatesOnInitialRender(dataArgs);\n }\n if (!_this.isColTypeDef && gObj.getCurrentViewRecords()) {\n if (_this.data.dataManager.dataSource.offline && gObj.dataSource && gObj.dataSource.length) {\n _this.updateColumnType(gObj.dataSource[0]);\n }\n else {\n _this.updateColumnType(gObj.getCurrentViewRecords()[0]);\n }\n }\n if (!_this.parent.isInitialLoad && _this.parent.groupSettings.disablePageWiseAggregates &&\n !_this.parent.groupSettings.columns.length) {\n dataArgs.result = _this.parent.dataSource instanceof Array ? _this.parent.dataSource : _this.parent.currentViewData;\n }\n if ((_this.parent.isReact || _this.parent.isVue) && !isNullOrUndefined(args) && args.requestType !== 'infiniteScroll' && !args.isFrozen) {\n clearReactVueTemplates(_this.parent, ['footerTemplate']);\n }\n if (_this.parent.isAngular && _this.parent.allowGrouping && _this.parent.groupSettings.captionTemplate\n && !(!isNullOrUndefined(args) && args.requestType === 'infiniteScroll')) {\n _this.parent.destroyTemplate(['groupSettings_captionTemplate']);\n }\n _this.parent.notify(events.dataReady, extend({ count: dataArgs.count, result: dataArgs.result, aggregates: dataArgs.aggregates }, args));\n if ((gObj.groupSettings.columns.length || (args && args.requestType === 'ungrouping'))\n && (args && args.requestType !== 'filtering')) {\n _this.headerRenderer.refreshUI();\n }\n if (len) {\n if (isGroupAdaptive(gObj)) {\n var content = 'content';\n args.scrollTop = { top: _this.contentRenderer[\"\" + content].scrollTop };\n }\n if (!isInfiniteDelete) {\n if (_this.parent.enableImmutableMode) {\n _this.contentRenderer.immutableModeRendering(args);\n }\n else {\n _this.contentRenderer.refreshContentRows(args);\n }\n }\n else {\n _this.parent.notify(events.infiniteEditHandler, { e: args, result: e.result, count: e.count, agg: e.aggregates });\n }\n }\n else {\n if (args && args.isCaptionCollapse) {\n return;\n }\n if (!gObj.getColumns().length) {\n gObj.element.innerHTML = '';\n alert(_this.l10n.getConstant('EmptyDataSourceError')); //ToDO: change this alert as dialog\n return;\n }\n _this.contentRenderer.setRowElements([]);\n _this.contentRenderer.setRowObjects([]);\n _this.ariaService.setBusy(_this.parent.getContent().querySelector('.' + literals.content), false);\n gObj.removeMaskRow();\n _this.renderEmptyRow();\n if (gObj.enableColumnVirtualization && !len) {\n _this.parent.notify(events.contentReady, { rows: gObj.getRowsObject(), args: {} });\n }\n if (args) {\n var action = (args.requestType || '').toLowerCase() + '-complete';\n _this.parent.notify(action, args);\n if (args.requestType === 'batchsave') {\n args.cancel = false;\n args.rows = [];\n args.isFrozen = _this.parent.getFrozenColumns() !== 0 && !args.isFrozen;\n _this.parent.trigger(events.actionComplete, args);\n }\n }\n if (_this.parent.autoFit) {\n _this.parent.preventAdjustColumns();\n }\n _this.parent.hideSpinner();\n }\n _this.parent.notify(events.toolbarRefresh, {});\n _this.setRowCount(_this.parent.getCurrentViewRecords().length);\n if ('query' in e) {\n _this.parent.getDataModule().isQueryInvokedFromData = false;\n }\n });\n };\n /**\n * @param {object} e - specifies the object\n * @param {Object[]} e.result - specifies the result\n * @param {NotifyArgs} args - specifies the args\n * @returns {void}\n * @hidden\n */\n Render.prototype.dataManagerFailure = function (e, args) {\n this.ariaService.setOptions(this.parent.getContent().querySelector('.' + literals.content), { busy: false, invalid: true });\n this.setRowCount(1);\n this.parent.trigger(events.actionFailure, { error: e });\n this.parent.hideSpinner();\n this.parent.removeMaskRow();\n if (args.requestType === 'save' || args.requestType === 'delete'\n || args.name === 'bulk-save') {\n return;\n }\n this.parent.currentViewData = [];\n this.renderEmptyRow();\n if (!this.parent.isInitialLoad) {\n this.parent.focusModule.setFirstFocusableTabIndex();\n }\n this.parent.log('actionfailure', { error: e });\n };\n Render.prototype.setRowCount = function (dataRowCount) {\n this.ariaService.setOptions(this.parent.getHeaderTable(), {\n rowcount: dataRowCount ? dataRowCount.toString() : '1'\n });\n };\n Render.prototype.isInfiniteEnd = function (args) {\n return this.parent.enableInfiniteScrolling && !this.parent.infiniteScrollSettings.enableCache && args.requestType === 'delete';\n };\n Render.prototype.updatesOnInitialRender = function (e) {\n this.isLayoutRendered = true;\n if (this.parent.columns.length < 1) {\n this.buildColumns(e.result[0]);\n }\n prepareColumns(this.parent.columns, null, this.parent);\n this.headerRenderer.renderTable();\n this.contentRenderer.renderTable();\n this.parent.isAutoGen = true;\n this.parent.notify(events.autoCol, {});\n };\n Render.prototype.iterateComplexColumns = function (obj, field, split) {\n var keys = Object.keys(obj);\n for (var i = 0; i < keys.length; i++) {\n var childKeys = typeof obj[keys[parseInt(i.toString(), 10)]] === 'object'\n && obj[keys[parseInt(i.toString(), 10)]] && !(obj[keys[parseInt(i.toString(), 10)]] instanceof Date) ?\n Object.keys(obj[keys[parseInt(i.toString(), 10)]]) : [];\n if (childKeys.length) {\n this.iterateComplexColumns(obj[keys[parseInt(i.toString(), 10)]], field + (keys[parseInt(i.toString(), 10)] + '.'), split);\n }\n else {\n split[this.counter] = field + keys[parseInt(i.toString(), 10)];\n this.counter++;\n }\n }\n };\n Render.prototype.buildColumns = function (record) {\n var cols = [];\n var complexCols = {};\n this.iterateComplexColumns(record, '', complexCols);\n var columns = Object.keys(complexCols).filter(function (e) { return complexCols[\"\" + e] !== 'BlazId'; }).\n map(function (field) { return complexCols[\"\" + field]; });\n for (var i = 0, len = columns.length; i < len; i++) {\n cols[parseInt(i.toString(), 10)] = { 'field': columns[parseInt(i.toString(), 10)] };\n if (this.parent.enableColumnVirtualization) {\n cols[parseInt(i.toString(), 10)].width = !isNullOrUndefined(cols[parseInt(i.toString(), 10)].width) ?\n cols[parseInt(i.toString(), 10)].width : 200;\n }\n }\n this.parent.setProperties({ 'columns': cols }, true);\n };\n Render.prototype.instantiateRenderer = function () {\n this.renderer.addRenderer(RenderType.Header, new HeaderRender(this.parent, this.locator));\n this.renderer.addRenderer(RenderType.Content, new ContentRender(this.parent, this.locator));\n var cellrender = this.locator.getService('cellRendererFactory');\n cellrender.addCellRenderer(CellType.Header, new HeaderCellRenderer(this.parent, this.locator));\n cellrender.addCellRenderer(CellType.Data, new CellRenderer(this.parent, this.locator));\n cellrender.addCellRenderer(CellType.StackedHeader, new StackedHeaderCellRenderer(this.parent, this.locator));\n cellrender.addCellRenderer(CellType.Indent, new IndentCellRenderer(this.parent, this.locator));\n cellrender.addCellRenderer(CellType.GroupCaption, new GroupCaptionCellRenderer(this.parent, this.locator));\n cellrender.addCellRenderer(CellType.GroupCaptionEmpty, new GroupCaptionEmptyCellRenderer(this.parent, this.locator));\n cellrender.addCellRenderer(CellType.Expand, new ExpandCellRenderer(this.parent, this.locator));\n cellrender.addCellRenderer(CellType.HeaderIndent, new HeaderIndentCellRenderer(this.parent, this.locator));\n cellrender.addCellRenderer(CellType.StackedHeader, new StackedHeaderCellRenderer(this.parent, this.locator));\n cellrender.addCellRenderer(CellType.DetailHeader, new DetailHeaderIndentCellRenderer(this.parent, this.locator));\n cellrender.addCellRenderer(CellType.RowDragHIcon, new RowDragDropHeaderRenderer(this.parent, this.locator));\n cellrender.addCellRenderer(CellType.DetailExpand, new DetailExpandCellRenderer(this.parent, this.locator));\n cellrender.addCellRenderer(CellType.DetailFooterIntent, new IndentCellRenderer(this.parent, this.locator));\n cellrender.addCellRenderer(CellType.RowDragIcon, new RowDragDropRenderer(this.parent, this.locator));\n };\n Render.prototype.addEventListener = function () {\n var _this = this;\n if (this.parent.isDestroyed) {\n return;\n }\n this.parent.on(events.initialLoad, this.instantiateRenderer, this);\n this.parent.on('refreshdataSource', this.dataManagerSuccess, this);\n this.parent.on(events.modelChanged, this.refresh, this);\n this.parent.on(events.refreshComplete, this.refreshComplete, this);\n this.parent.on(events.bulkSave, this.sendBulkRequest, this);\n this.parent.on(events.showEmptyGrid, function () { _this.emptyGrid = true; }, this);\n this.parent.on(events.autoCol, this.dynamicColumnChange, this);\n };\n /**\n * @param {ReturnType} e - specifies the Return type\n * @returns {Promise} returns the object\n * @hidden\n */\n Render.prototype.validateGroupRecords = function (e) {\n var _this = this;\n var index = e.result.length - 1;\n if (index < 0) {\n return Promise.resolve(e);\n }\n var group0 = e.result[0];\n var groupN = e.result[parseInt(index.toString(), 10)];\n var predicate = [];\n var addWhere = function (input) {\n var groups = [group0, groupN];\n for (var i = 0; i < groups.length; i++) {\n predicate.push(new Predicate('field', '==', groups[parseInt(i.toString(), 10)].field).and(_this.getPredicate('key', 'equal', groups[parseInt(i.toString(), 10)].key)));\n }\n input.where(Predicate.or(predicate));\n };\n var query = new Query();\n addWhere(query);\n var curDm = new DataManager(e.result);\n var curFilter = curDm.executeLocal(query);\n var newQuery = this.data.generateQuery(true);\n var rPredicate = [];\n if (this.data.isRemote()) {\n var groups = [group0, groupN];\n for (var i = 0; i < groups.length; i++) {\n rPredicate.push(this.getPredicate(groups[parseInt(i.toString(), 10)].field, 'equal', groups[parseInt(i.toString(), 10)].key));\n }\n newQuery.where(Predicate.or(rPredicate));\n }\n else {\n addWhere(newQuery);\n }\n var deferred = new Deferred();\n this.data.getData({}, newQuery).then(function (r) {\n _this.updateGroupInfo(curFilter, r.result);\n deferred.resolve(e);\n }).catch(function (e) { return deferred.reject(e); });\n return deferred.promise;\n };\n Render.prototype.getPredicate = function (key, operator, value) {\n if (value instanceof Date) {\n return getDatePredicate({ field: key, operator: operator, value: value });\n }\n return new Predicate(key, operator, value);\n };\n Render.prototype.updateGroupInfo = function (current, untouched) {\n var dm = new DataManager(untouched);\n var elements = current;\n for (var i = 0; i < elements.length; i++) {\n var uGroup = dm.executeLocal(new Query()\n .where(new Predicate('field', '==', elements[parseInt(i.toString(), 10)].field).and(this.getPredicate('key', 'equal', elements[parseInt(i.toString(), 10)].key))))[0];\n elements[parseInt(i.toString(), 10)].count = uGroup.count;\n var itemGroup = elements[parseInt(i.toString(), 10)].items;\n var uGroupItem = uGroup.items;\n if (itemGroup.GroupGuid) {\n elements[parseInt(i.toString(), 10)].items =\n this.updateGroupInfo(elements[parseInt(i.toString(), 10)].items, uGroup.items);\n }\n var rows = this.parent.aggregates;\n for (var j = 0; j < rows.length; j++) {\n var row = rows[parseInt(j.toString(), 10)];\n for (var k = 0; k < row.columns.length; k++) {\n var types = row.columns[parseInt(k.toString(), 10)].type instanceof Array ?\n (row.columns[parseInt(k.toString(), 10)].type) :\n [(row.columns[parseInt(k.toString(), 10)].type)];\n for (var l = 0; l < types.length; l++) {\n var key = row.columns[parseInt(k.toString(), 10)].field + ' - ' + types[parseInt(l.toString(), 10)].toLowerCase();\n var data = itemGroup.level ? uGroupItem.records : uGroup.items;\n var context = this.parent;\n if (types[parseInt(l.toString(), 10)] === 'Custom') {\n var data_1 = itemGroup.level ? uGroupItem : uGroup;\n var temp = row.columns[parseInt(k.toString(), 10)]\n .customAggregate;\n if (typeof temp === 'string') {\n temp = getValue(temp, window);\n }\n elements[parseInt(i.toString(), 10)].aggregates[\"\" + key] = temp ? temp.call(context, data_1, row.columns[parseInt(k.toString(), 10)]) : '';\n }\n else {\n elements[parseInt(i.toString(), 10)].aggregates[\"\" + key] = DataUtil.aggregates[types[parseInt(l.toString(), 10)].toLowerCase()](data, row.columns[parseInt(k.toString(), 10)].field);\n }\n }\n }\n }\n }\n return current;\n };\n return Render;\n}());\nexport { Render };\n","import { isNullOrUndefined, getEnumValue } from '@syncfusion/ej2-base';\nimport { CellType } from '../base/enum';\n/**\n * CellRendererFactory\n *\n * @hidden\n */\nvar CellRendererFactory = /** @class */ (function () {\n function CellRendererFactory() {\n this.cellRenderMap = {};\n }\n CellRendererFactory.prototype.addCellRenderer = function (name, type) {\n name = typeof name === 'string' ? name : getEnumValue(CellType, name);\n if (isNullOrUndefined(this.cellRenderMap[\"\" + name])) {\n this.cellRenderMap[\"\" + name] = type;\n }\n };\n CellRendererFactory.prototype.getCellRenderer = function (name) {\n name = typeof name === 'string' ? name : getEnumValue(CellType, name);\n if (isNullOrUndefined(this.cellRenderMap[\"\" + name])) {\n // eslint-disable-next-line no-throw-literal\n throw \"The cellRenderer \" + name + \" is not found\";\n }\n else {\n return this.cellRenderMap[\"\" + name];\n }\n };\n return CellRendererFactory;\n}());\nexport { CellRendererFactory };\n","import { Dialog } from '@syncfusion/ej2-popups';\nimport { EventHandler, isNullOrUndefined, remove } from '@syncfusion/ej2-base';\nimport { parentsUntil, addBiggerDialog, addRemoveEventListener } from '../base/util';\nimport * as events from '../base/constant';\nimport { Button } from '@syncfusion/ej2-buttons';\nimport { ResponsiveDialogAction } from '../base/enum';\n/**\n *\n * The `ResponsiveDialogRenderer` module is used to render the responsive dialogs.\n */\nvar ResponsiveDialogRenderer = /** @class */ (function () {\n function ResponsiveDialogRenderer(parent, serviceLocator) {\n this.sortedCols = [];\n this.sortPredicate = [];\n /** @hidden */\n this.isCustomDialog = false;\n this.parent = parent;\n this.serviceLocator = serviceLocator;\n this.addEventListener();\n }\n ResponsiveDialogRenderer.prototype.addEventListener = function () {\n this.evtHandlers = [{ event: events.filterDialogClose, handler: this.closeCustomDialog },\n { event: events.refreshCustomFilterOkBtn, handler: this.refreshCustomFilterOkBtn },\n { event: events.renderResponsiveCmenu, handler: this.renderResponsiveContextMenu },\n { event: events.filterCmenuSelect, handler: this.renderCustomFilterDiv },\n { event: events.customFilterClose, handler: this.customExFilterClose },\n { event: events.refreshCustomFilterClearBtn, handler: this.refreshCustomFilterClearBtn }];\n addRemoveEventListener(this.parent, this.evtHandlers, true, this);\n this.onActionCompleteFn = this.editComplate.bind(this);\n this.parent.addEventListener(events.actionComplete, this.onActionCompleteFn);\n };\n ResponsiveDialogRenderer.prototype.customExFilterClose = function () {\n this.isCustomDlgRender = false;\n };\n ResponsiveDialogRenderer.prototype.renderCustomFilterDiv = function () {\n var header = this.customResponsiveDlg.element.querySelector('.e-dlg-header-content');\n var title = header.querySelector('.e-dlg-custom-header');\n var closeBtn = header.querySelector('.e-dlg-closeicon-btn');\n this.isCustomDlgRender = true;\n this.parent.filterModule.filterModule.closeDialog();\n this.saveBtn.element.style.display = '';\n this.refreshCustomFilterOkBtn({ disabled: false });\n this.backBtn.element.style.display = 'none';\n closeBtn.style.display = '';\n title.innerHTML = this.parent.localeObj.getConstant('CustomFilter');\n var content = this.customResponsiveDlg.element.querySelector('.e-dlg-content');\n this.customExcelFilterParent = this.parent.createElement('div', { className: 'e-xl-customfilterdiv e-default-filter' });\n content.appendChild(this.customExcelFilterParent);\n };\n ResponsiveDialogRenderer.prototype.renderResponsiveContextMenu = function (args) {\n if (this.action === ResponsiveDialogAction.isFilter) {\n var content = this.customResponsiveDlg.element.querySelector('.e-dlg-content');\n var header = this.customResponsiveDlg.element.querySelector('.e-dlg-header-content');\n var closeBtn = header.querySelector('.e-dlg-closeicon-btn');\n var text = header.querySelector('.e-dlg-custom-header');\n if (args.isOpen) {\n content.firstChild.style.display = 'none';\n content.appendChild(args.target);\n closeBtn.style.display = 'none';\n this.saveBtn.element.style.display = 'none';\n this.filterClearBtn.element.style.display = 'none';\n text.innerHTML = args.header;\n var backBtn = this.parent.createElement('button');\n var span = this.parent.createElement('span', { className: 'e-btn-icon e-resfilterback e-icons' });\n backBtn.appendChild(span);\n this.backBtn = new Button({\n cssClass: this.parent.cssClass ? 'e-res-back-btn' + ' ' + this.parent.cssClass : 'e-res-back-btn'\n });\n this.backBtn.appendTo(backBtn);\n text.parentElement.insertBefore(backBtn, text);\n }\n else if (this.backBtn && !this.isCustomDlgRender) {\n content.firstChild.style.display = '';\n remove(this.backBtn.element);\n closeBtn.style.display = '';\n this.saveBtn.element.style.display = '';\n if (this.isFiltered) {\n this.filterClearBtn.element.style.display = '';\n }\n text.innerHTML = this.getHeaderTitle({ action: ResponsiveDialogAction.isFilter }, args.col);\n }\n }\n };\n ResponsiveDialogRenderer.prototype.refreshCustomFilterClearBtn = function (args) {\n if (this.filterClearBtn) {\n this.isFiltered = args.isFiltered;\n this.filterClearBtn.element.style.display = args.isFiltered ? '' : 'none';\n }\n };\n ResponsiveDialogRenderer.prototype.refreshCustomFilterOkBtn = function (args) {\n if (this.saveBtn) {\n this.saveBtn.disabled = args.disabled;\n }\n };\n ResponsiveDialogRenderer.prototype.renderResponsiveContent = function (col) {\n var _this = this;\n var gObj = this.parent;\n if (col) {\n this.filterParent = this.parent.createElement('div', { className: 'e-mainfilterdiv e-default-filter', id: col.uid + '-main-filter' });\n return this.filterParent;\n }\n else {\n var cols = gObj.getColumns();\n this.customColumnDiv = gObj.createElement('div', { className: 'columndiv', styles: 'width: 100%' });\n var sortBtnParent = gObj.createElement('div', { className: 'e-ressortbutton-parent' });\n var filteredCols = [];\n var isSort = this.action === ResponsiveDialogAction.isSort;\n var isFilter = this.action === ResponsiveDialogAction.isFilter;\n if (isFilter) {\n for (var i = 0; i < gObj.filterSettings.columns.length; i++) {\n filteredCols.push(gObj.filterSettings.columns[parseInt(i.toString(), 10)].field);\n }\n }\n for (var i = 0; i < cols.length; i++) {\n if (!cols[parseInt(i.toString(), 10)].visible || (!cols[parseInt(i.toString(), 10)].allowSorting && isSort)\n || (!cols[parseInt(i.toString(), 10)].allowFiltering && isFilter)) {\n continue;\n }\n var cDiv = gObj.createElement('div', { className: 'e-responsivecoldiv' });\n cDiv.setAttribute('data-e-mappingname', cols[parseInt(i.toString(), 10)].field);\n cDiv.setAttribute('data-e-mappinguid', cols[parseInt(i.toString(), 10)].uid);\n var span = gObj.createElement('span', { innerHTML: cols[parseInt(i.toString(), 10)].headerText, className: 'e-res-header-text' });\n cDiv.appendChild(span);\n this.customColumnDiv.appendChild(cDiv);\n if (isSort) {\n var fields = this.getSortedFieldsAndDirections('field');\n var index = fields.indexOf(cols[parseInt(i.toString(), 10)].field);\n var button = gObj.createElement('button', { id: gObj.element.id + cols[parseInt(i.toString(), 10)].field + 'sortbutton' });\n var clone = sortBtnParent.cloneNode();\n clone.appendChild(button);\n cDiv.appendChild(clone);\n var btnObj = new Button({\n cssClass: this.parent.cssClass ? 'e-ressortbutton' + ' ' + this.parent.cssClass : 'e-ressortbutton'\n });\n btnObj.appendTo(button);\n var buttonInnerText = void 0;\n if ((!isNullOrUndefined(this.parent.sortSettings.columns[parseInt(index.toString(), 10)]))) {\n buttonInnerText = (this.parent.sortSettings.columns[parseInt(index.toString(), 10)].direction === 'Ascending') ?\n this.parent.localeObj.getConstant('AscendingText') : this.parent.localeObj.getConstant('DescendingText');\n }\n button.innerHTML = index > -1 ? buttonInnerText : this.parent.localeObj.getConstant('NoneText');\n button.onclick = function (e) {\n _this.sortButtonClickHandler(e.target);\n };\n }\n if (isFilter && filteredCols.indexOf(cols[parseInt(i.toString(), 10)].field) > -1) {\n var divIcon = gObj.createElement('div', { className: 'e-icons e-res-icon e-filtersetdiv' });\n var iconSpan = gObj.createElement('span', { className: 'e-icons e-res-icon e-filterset' });\n iconSpan.setAttribute('colType', cols[parseInt(i.toString(), 10)].type);\n divIcon.appendChild(iconSpan);\n cDiv.appendChild(divIcon);\n }\n }\n EventHandler.add(this.customColumnDiv, 'click', this.customFilterColumnClickHandler, this);\n return this.customColumnDiv;\n }\n };\n ResponsiveDialogRenderer.prototype.getSortedFieldsAndDirections = function (name) {\n var fields = [];\n for (var i = 0; i < this.parent.sortSettings.columns.length; i++) {\n fields.push(this.parent.sortSettings.columns[parseInt(i.toString(), 10)][\"\" + name]);\n }\n return fields;\n };\n ResponsiveDialogRenderer.prototype.sortButtonClickHandler = function (target) {\n if (target) {\n var columndiv = parentsUntil(target, 'e-responsivecoldiv');\n var field = columndiv.getAttribute('data-e-mappingname');\n if (!this.parent.allowMultiSorting) {\n this.sortPredicate = [];\n this.sortedCols = [];\n this.isSortApplied = false;\n this.resetSortButtons(target);\n }\n var txt = target.textContent;\n var directionTxt = txt === this.parent.localeObj.getConstant('NoneText') ? this.parent.localeObj.getConstant('AscendingText')\n : txt === this.parent.localeObj.getConstant('AscendingText') ? this.parent.localeObj.getConstant('DescendingText')\n : this.parent.localeObj.getConstant('NoneText');\n var direction = directionTxt === this.parent.localeObj.getConstant('AscendingText') ? 'Ascending'\n : directionTxt === this.parent.localeObj.getConstant('DescendingText') ? 'Descending' : 'None';\n target.innerHTML = directionTxt;\n this.setSortedCols(field, direction);\n }\n };\n ResponsiveDialogRenderer.prototype.resetSortButtons = function (target) {\n var buttons = [].slice.call(this.customColumnDiv.getElementsByClassName('e-ressortbutton'));\n for (var i = 0; i < buttons.length; i++) {\n if (buttons[parseInt(i.toString(), 10)] !== target) {\n buttons[parseInt(i.toString(), 10)].innerHTML = 'None';\n }\n }\n };\n ResponsiveDialogRenderer.prototype.setSortedCols = function (field, direction) {\n var fields = this.getCurrentSortedFields();\n var index = fields.indexOf(field);\n if (this.parent.allowMultiSorting && index > -1) {\n this.sortedCols.splice(index, 1);\n this.sortPredicate.splice(index, 1);\n }\n this.isSortApplied = true;\n if (direction !== 'None') {\n this.sortedCols.push(field);\n this.sortPredicate.push({ field: field, direction: direction });\n }\n };\n ResponsiveDialogRenderer.prototype.getCurrentSortedFields = function () {\n var fields = [];\n for (var i = 0; i < this.sortedCols.length; i++) {\n fields.push(this.sortedCols[parseInt(i.toString(), 10)]);\n }\n return fields;\n };\n ResponsiveDialogRenderer.prototype.customFilterColumnClickHandler = function (e) {\n if (this.action !== ResponsiveDialogAction.isFilter) {\n return;\n }\n var gObj = this.parent;\n var target = e.target;\n if (gObj.filterSettings.type !== 'FilterBar') {\n if (target.classList.contains('e-responsivecoldiv') || target.parentElement.classList.contains('e-responsivecoldiv')) {\n var field = target.getAttribute('data-e-mappingname');\n if (!field) {\n field = target.parentElement.getAttribute('data-e-mappingname');\n }\n if (field) {\n var col = gObj.getColumnByField(field);\n this.isRowResponsive = true;\n this.showResponsiveDialog(col);\n }\n }\n else if (target.classList.contains('e-filterset') || target.parentElement.classList.contains('e-filtersetdiv')) {\n var colDiv = parentsUntil(target, 'e-responsivecoldiv');\n if (colDiv) {\n var field = colDiv.getAttribute('data-e-mappingname');\n var col = gObj.getColumnByField(field);\n if (col.filter.type === 'Menu' || (!col.filter.type && gObj.filterSettings.type === 'Menu')) {\n this.isDialogClose = true;\n }\n this.parent.filterModule.filterModule.clearCustomFilter(col);\n this.removeCustomDlgFilterEle(target);\n }\n }\n }\n };\n /**\n * Function to show the responsive dialog\n *\n * @param {Column} col - specifies the column\n * @returns {void}\n */\n ResponsiveDialogRenderer.prototype.showResponsiveDialog = function (col) {\n if (this.isCustomDialog && this.action === ResponsiveDialogAction.isFilter && !this.isRowResponsive) {\n this.renderCustomFilterDialog();\n }\n else {\n this.filteredCol = col;\n this.renderResponsiveDialog(col);\n if (this.parent.enableAdaptiveUI && col) {\n this.parent.filterModule.setFilterModel(col);\n this.parent.filterModule.filterModule.openDialog(this.parent.filterModule.createOptions(col, undefined));\n }\n if (this.action === ResponsiveDialogAction.isSort) {\n var args = {\n cancel: false, dialogObj: this.customResponsiveDlg, requestType: 'beforeOpenAptiveSortDialog'\n };\n this.parent.trigger(events.beforeOpenAdaptiveDialog, args);\n if (args.cancel) {\n return;\n }\n }\n this.customResponsiveDlg.show(true);\n this.customResponsiveDlg.element.style.maxHeight = '100%';\n this.setTopToChildDialog(this.customResponsiveDlg.element);\n }\n };\n ResponsiveDialogRenderer.prototype.setTopToChildDialog = function (dialogEle) {\n var child = dialogEle.querySelector('.e-dialog');\n if (child) {\n var top_1 = dialogEle.querySelector('.e-dlg-header-content').getBoundingClientRect().height;\n child.style.top = top_1 + 'px';\n }\n };\n ResponsiveDialogRenderer.prototype.renderCustomFilterDialog = function (col) {\n var gObj = this.parent;\n if (this.action === ResponsiveDialogAction.isFilter && gObj.filterSettings.type === 'FilterBar') {\n return;\n }\n var outerDiv = this.parent.createElement('div', {\n id: gObj.element.id + 'customfilter',\n className: this.parent.cssClass ?\n 'e-customfilterdiv e-responsive-dialog ' + this.parent.cssClass : 'e-customfilterdiv e-responsive-dialog'\n });\n this.parent.element.appendChild(outerDiv);\n this.customFilterDlg = this.getDialogOptions(col, true);\n var args = {\n cancel: false, dialogObj: this.customFilterDlg, requestType: 'beforeOpenAptiveFilterDialog'\n };\n this.parent.trigger(events.beforeOpenAdaptiveDialog, args);\n if (args.cancel) {\n return;\n }\n this.customFilterDlg.appendTo(outerDiv);\n this.customFilterDlg.show(true);\n this.customFilterDlg.element.style.maxHeight = '100%';\n };\n ResponsiveDialogRenderer.prototype.getDialogOptions = function (col, isCustomFilter, id) {\n var options = new Dialog({\n isModal: true,\n showCloseIcon: true,\n closeOnEscape: false,\n locale: this.parent.locale,\n target: this.parent.adaptiveDlgTarget ? this.parent.adaptiveDlgTarget : document.body,\n visible: false,\n enableRtl: this.parent.enableRtl,\n content: this.renderResponsiveContent(col),\n open: this.dialogOpen.bind(this),\n created: this.dialogCreated.bind(this),\n close: this.beforeDialogClose.bind(this),\n width: '100%',\n height: '100%',\n animationSettings: { effect: 'None' },\n cssClass: this.parent.cssClass ? this.parent.cssClass : ''\n });\n var isStringTemplate = 'isStringTemplate';\n options[\"\" + isStringTemplate] = true;\n if (isCustomFilter) {\n options.header = this.renderResponsiveHeader(col, undefined, true);\n options.cssClass = 'e-customfilter';\n }\n else {\n options.header = this.renderResponsiveHeader(col);\n options.cssClass = this.parent.rowRenderingMode === 'Vertical' && this.action === ResponsiveDialogAction.isFilter\n ? 'e-res' + id + ' e-row-responsive-filter' : 'e-res' + id;\n }\n return options;\n };\n ResponsiveDialogRenderer.prototype.renderResponsiveDialog = function (col) {\n var gObj = this.parent;\n if (this.action === ResponsiveDialogAction.isFilter && gObj.filterSettings.type === 'FilterBar') {\n return;\n }\n var id = this.action === ResponsiveDialogAction.isFilter ? 'filter' : 'sort';\n var outerDiv = this.parent.createElement('div', {\n id: gObj.element.id + 'responsive' + id,\n className: this.parent.cssClass ?\n 'e-res' + id + 'div e-responsive-dialog ' + this.parent.cssClass : 'e-res' + id + 'div e-responsive-dialog'\n });\n this.parent.element.appendChild(outerDiv);\n this.customResponsiveDlg = this.getDialogOptions(col, false, id);\n this.customResponsiveDlg.appendTo(outerDiv);\n };\n ResponsiveDialogRenderer.prototype.dialogCreated = function () {\n addBiggerDialog(this.parent);\n };\n ResponsiveDialogRenderer.prototype.dialogOpen = function () {\n if (this.action === ResponsiveDialogAction.isSort && this.parent.allowMultiSorting) {\n for (var i = 0; i < this.parent.sortSettings.columns.length; i++) {\n this.sortedCols.push(this.parent.sortSettings.columns[parseInt(i.toString(), 10)].field);\n var sortField = this.parent.sortSettings.columns[parseInt(i.toString(), 10)].field;\n var sortDirection = this.parent.sortSettings.columns[parseInt(i.toString(), 10)].direction;\n this.sortPredicate.push({ field: sortField, direction: sortDirection });\n }\n }\n };\n ResponsiveDialogRenderer.prototype.beforeDialogClose = function (args) {\n this.isDialogClose = args.element && !args.element.querySelector('.e-xl-customfilterdiv')\n && args.element.classList.contains('e-resfilterdiv');\n if (this.action === ResponsiveDialogAction.isFilter) {\n if (args.element.classList.contains('e-resfilterdiv')) {\n this.parent.filterModule.filterModule.closeResponsiveDialog(this.isCustomDlgRender);\n }\n else if (args.element.classList.contains('e-customfilterdiv')) {\n this.closeCustomFilter();\n }\n }\n else if (this.action === ResponsiveDialogAction.isSort) {\n this.closeCustomDialog();\n }\n this.parent.off(events.enterKeyHandler, this.keyHandler);\n };\n ResponsiveDialogRenderer.prototype.sortColumn = function () {\n if (!this.isSortApplied) {\n this.closeCustomDialog();\n return;\n }\n if (this.sortPredicate.length) {\n this.parent.setProperties({ sortSettings: { columns: [] } }, true);\n }\n for (var i = 0; i < this.sortPredicate.length; i++) {\n this.parent.sortColumn(this.sortPredicate[parseInt(i.toString(), 10)].field, this.sortPredicate[parseInt(i.toString(), 10)].direction, this.parent.allowMultiSorting);\n }\n if (!this.sortPredicate.length) {\n this.parent.clearSorting();\n }\n this.closeCustomDialog();\n };\n ResponsiveDialogRenderer.prototype.getHeaderTitle = function (args, col) {\n var gObj = this.parent;\n var title;\n if (this.action === ResponsiveDialogAction.isEdit) {\n title = gObj.localeObj.getConstant('EditFormTitle') + args.primaryKeyValue[0];\n }\n else if (this.action === ResponsiveDialogAction.isAdd) {\n title = gObj.localeObj.getConstant('AddFormTitle');\n }\n else if (this.action === ResponsiveDialogAction.isFilter) {\n title = col ? col.headerText || col.field : gObj.localeObj.getConstant('FilterButton');\n }\n else if (this.action === ResponsiveDialogAction.isSort) {\n title = gObj.localeObj.getConstant('Sort');\n }\n return title;\n };\n ResponsiveDialogRenderer.prototype.getDialogName = function (action) {\n var name;\n if (action === ResponsiveDialogAction.isAdd || action === ResponsiveDialogAction.isEdit) {\n name = 'dialogEdit_wrapper_title';\n }\n else if (action === ResponsiveDialogAction.isFilter) {\n name = 'responsive_filter_dialog_wrapper';\n }\n return name;\n };\n ResponsiveDialogRenderer.prototype.getButtonText = function (action) {\n var text;\n if (action === ResponsiveDialogAction.isAdd || action === ResponsiveDialogAction.isEdit) {\n text = 'Save';\n }\n else if (action === ResponsiveDialogAction.isFilter || this.action === ResponsiveDialogAction.isSort) {\n text = 'OKButton';\n }\n return text;\n };\n /**\n * Function to render the responsive header\n *\n * @param {Column} col - specifies the column\n * @param {ResponsiveDialogArgs} args - specifies the responsive dialog arguments\n * @param {boolean} isCustomFilter - specifies whether it is custom filter or not\n * @returns {HTMLElement | string} returns the html element or string\n */\n ResponsiveDialogRenderer.prototype.renderResponsiveHeader = function (col, args, isCustomFilter) {\n var _this = this;\n var gObj = this.parent;\n gObj.on(events.enterKeyHandler, this.keyHandler, this);\n var id = gObj.element.id + this.getDialogName(this.action);\n var header = gObj.createElement('div', { className: 'e-res-custom-element' });\n var titleDiv = gObj.createElement('div', { className: 'e-dlg-custom-header', id: id });\n titleDiv.innerHTML = this.getHeaderTitle(args, col);\n header.appendChild(titleDiv);\n var saveBtn = gObj.createElement('button');\n if (!isCustomFilter) {\n this.saveBtn = new Button({\n cssClass: this.parent.cssClass ?\n 'e-primary e-flat e-res-apply-btn' + ' ' + this.parent.cssClass : 'e-primary e-flat e-res-apply-btn'\n });\n saveBtn.innerHTML = gObj.localeObj.getConstant(this.getButtonText(this.action));\n this.saveBtn.appendTo(saveBtn);\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n saveBtn.onclick = function (e) {\n _this.dialogHdrBtnClickHandler();\n };\n }\n var isSort = this.action === ResponsiveDialogAction.isSort;\n var isFilter = this.action === ResponsiveDialogAction.isFilter;\n if (isFilter || isSort) {\n var id_1 = isSort ? 'sort' : 'filter';\n var clearBtn = gObj.createElement('button');\n this.filterClearBtn = new Button({\n cssClass: this.parent.cssClass ? 'e-primary e-flat e-res-' + id_1 + '-clear-btn' + ' ' + this.parent.cssClass\n : 'e-primary e-flat e-res-' + id_1 + '-clear-btn'\n });\n if (isFilter) {\n var span = gObj.createElement('span', { className: 'e-btn-icon e-icon-filter-clear e-icons' });\n clearBtn.appendChild(span);\n }\n else {\n clearBtn.innerHTML = gObj.localeObj.getConstant('Clear');\n }\n header.appendChild(clearBtn);\n this.filterClearBtn.appendTo(clearBtn);\n clearBtn.onclick = function (e) {\n if ((parentsUntil(e.target, 'e-customfilter'))) {\n _this.parent.filterModule.clearFiltering();\n _this.removeCustomDlgFilterEle();\n }\n else {\n if (isFilter) {\n _this.filterClear();\n }\n else {\n _this.resetSortButtons();\n _this.sortedCols = [];\n _this.sortPredicate = [];\n _this.isSortApplied = true;\n }\n }\n };\n header.appendChild(clearBtn);\n }\n if (!isCustomFilter) {\n header.appendChild(saveBtn);\n }\n return header;\n };\n ResponsiveDialogRenderer.prototype.filterClear = function () {\n this.parent.filterModule.filterModule.clearCustomFilter(this.filteredCol);\n this.parent.filterModule.filterModule.closeResponsiveDialog();\n };\n ResponsiveDialogRenderer.prototype.dialogHdrBtnClickHandler = function () {\n if (this.action === ResponsiveDialogAction.isEdit || this.action === ResponsiveDialogAction.isAdd) {\n this.parent.endEdit();\n }\n else if (this.action === ResponsiveDialogAction.isFilter) {\n this.parent.filterModule.filterModule.applyCustomFilter({ col: this.filteredCol, isCustomFilter: this.isCustomDlgRender });\n }\n else if (this.action === ResponsiveDialogAction.isSort) {\n this.sortColumn();\n }\n };\n ResponsiveDialogRenderer.prototype.closeCustomDialog = function () {\n if (this.isCustomDlgRender) {\n var mainfilterdiv = this.customResponsiveDlg.element.querySelector('.e-mainfilterdiv');\n remove(mainfilterdiv);\n return;\n }\n this.isRowResponsive = false;\n this.isCustomDlgRender = false;\n this.destroyCustomFilterDialog();\n };\n ResponsiveDialogRenderer.prototype.destroyCustomFilterDialog = function () {\n if (!this.customResponsiveDlg) {\n return;\n }\n var elem = document.getElementById(this.customResponsiveDlg.element.id);\n if (this.customResponsiveDlg && !this.customResponsiveDlg.isDestroyed && elem) {\n this.customResponsiveDlg.destroy();\n remove(elem);\n }\n this.closeCustomFilter();\n if (this.action === ResponsiveDialogAction.isSort) {\n this.sortPredicate = [];\n this.sortedCols = [];\n this.isSortApplied = false;\n }\n };\n ResponsiveDialogRenderer.prototype.closeCustomFilter = function () {\n if (!this.isDialogClose && this.customFilterDlg) {\n var customEle = document.getElementById(this.customFilterDlg.element.id);\n if (this.customFilterDlg && !this.customFilterDlg.isDestroyed && customEle) {\n this.customFilterDlg.destroy();\n remove(customEle);\n }\n }\n this.isCustomDialog = false;\n this.isDialogClose = false;\n };\n ResponsiveDialogRenderer.prototype.removeCustomDlgFilterEle = function (target) {\n if (target) {\n if (target.parentElement.classList.contains('e-filtersetdiv')) {\n remove(target.parentElement);\n }\n else {\n remove(target);\n }\n }\n else {\n var child = this.customColumnDiv.children;\n for (var i = 0; i < child.length; i++) {\n target = child[parseInt(i.toString(), 10)].querySelector('.e-filtersetdiv');\n if (target) {\n remove(target);\n i--;\n }\n }\n }\n };\n ResponsiveDialogRenderer.prototype.keyHandler = function (e) {\n if (e.keyCode === 13 && ((this.action === ResponsiveDialogAction.isFilter\n && e.target.classList.contains('e-searchinput'))\n || (this.action === ResponsiveDialogAction.isEdit || this.action === ResponsiveDialogAction.isAdd))) {\n this.dialogHdrBtnClickHandler();\n }\n };\n ResponsiveDialogRenderer.prototype.editComplate = function (args) {\n if (args.requestType === 'save' || args.requestType === 'cancel') {\n this.parent.off(events.enterKeyHandler, this.keyHandler);\n }\n };\n ResponsiveDialogRenderer.prototype.removeEventListener = function () {\n if (this.customColumnDiv) {\n EventHandler.remove(this.customColumnDiv, 'click', this.customFilterColumnClickHandler);\n }\n addRemoveEventListener(this.parent, this.evtHandlers, true, this);\n this.parent.removeEventListener(events.actionComplete, this.onActionCompleteFn);\n };\n return ResponsiveDialogRenderer;\n}());\nexport { ResponsiveDialogRenderer };\n","import { isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { ResponsiveDialogRenderer } from '../renderer/responsive-dialog-renderer';\n/**\n * ServiceLocator\n *\n * @hidden\n */\nvar ServiceLocator = /** @class */ (function () {\n function ServiceLocator() {\n this.services = {};\n }\n ServiceLocator.prototype.register = function (name, type) {\n if (isNullOrUndefined(this.services[\"\" + name])) {\n this.services[\"\" + name] = type;\n }\n };\n ServiceLocator.prototype.getService = function (name) {\n if (isNullOrUndefined(this.services[\"\" + name])) {\n // eslint-disable-next-line no-throw-literal\n throw \"The service \" + name + \" is not registered\";\n }\n return this.services[\"\" + name];\n };\n ServiceLocator.prototype.registerAdaptiveService = function (type, isAdaptiveUI, action) {\n if (isAdaptiveUI) {\n type.responsiveDialogRenderer = new ResponsiveDialogRenderer(type.parent, type.serviceLocator);\n type.responsiveDialogRenderer.action = action;\n }\n else {\n if (type.responsiveDialogRenderer) {\n type.responsiveDialogRenderer.removeEventListener();\n type.responsiveDialogRenderer = undefined;\n }\n }\n };\n return ServiceLocator;\n}());\nexport { ServiceLocator };\n","import { isNullOrUndefined, getEnumValue } from '@syncfusion/ej2-base';\nimport { RenderType } from '../base/enum';\n/**\n * RendererFactory\n *\n * @hidden\n */\nvar RendererFactory = /** @class */ (function () {\n function RendererFactory() {\n this.rendererMap = {};\n }\n RendererFactory.prototype.addRenderer = function (name, type) {\n var rName = getEnumValue(RenderType, name);\n if (isNullOrUndefined(this.rendererMap[\"\" + rName])) {\n this.rendererMap[\"\" + rName] = type;\n }\n };\n RendererFactory.prototype.getRenderer = function (name) {\n var rName = getEnumValue(RenderType, name);\n if (isNullOrUndefined(this.rendererMap[\"\" + rName])) {\n // eslint-disable-next-line no-throw-literal\n throw \"The renderer \" + rName + \" is not found\";\n }\n else {\n return this.rendererMap[\"\" + rName];\n }\n };\n return RendererFactory;\n}());\nexport { RendererFactory };\n","import { isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { formatUnit } from '@syncfusion/ej2-base';\nimport { columnWidthChanged, preventFrozenScrollRefresh } from '../base/constant';\nimport { Column } from '../models/column';\nimport { parentsUntil, ispercentageWidth, getScrollBarWidth } from '../base/util';\nimport * as literals from '../base/string-literals';\n/**\n * ColumnWidthService\n *\n * @hidden\n */\nvar ColumnWidthService = /** @class */ (function () {\n function ColumnWidthService(parent) {\n this.parent = parent;\n }\n ColumnWidthService.prototype.setWidthToColumns = function () {\n var i = 0;\n var indexes = this.parent.getColumnIndexesInView();\n var wFlag = true;\n var totalColumnsWidth = 0;\n if (this.parent.allowGrouping) {\n for (var len = this.parent.groupSettings.columns.length; i < len; i++) {\n if (this.parent.enableColumnVirtualization && indexes.indexOf(i) === -1) {\n wFlag = false;\n continue;\n }\n this.setColumnWidth(new Column({ width: '30px' }), i);\n }\n }\n if (this.parent.detailTemplate || this.parent.childGrid) {\n this.setColumnWidth(new Column({ width: '30px' }), i);\n i++;\n }\n if (this.parent.isRowDragable() && this.parent.getFrozenMode() !== 'Right') {\n this.setColumnWidth(new Column({ width: '30px' }), i);\n i++;\n }\n var columns = this.parent.getColumns();\n for (var j = 0; j < columns.length; j++) {\n this.setColumnWidth(columns[parseInt(j.toString(), 10)], wFlag && this.parent.enableColumnVirtualization ? undefined : j + i);\n }\n if (this.parent.isRowDragable() && this.parent.getFrozenMode() === 'Right') {\n this.setColumnWidth(new Column({ width: '30px' }), columns.length);\n }\n totalColumnsWidth = this.getTableWidth(this.parent.getColumns());\n if (this.parent.width !== 'auto' && this.parent.width.toString().indexOf('%') === -1) {\n this.setMinwidthBycalculation(totalColumnsWidth);\n }\n };\n ColumnWidthService.prototype.setMinwidthBycalculation = function (tWidth) {\n var difference = 0;\n var collection = this.parent.getColumns().filter(function (a) {\n return isNullOrUndefined(a.width) || a.width === 'auto';\n });\n if (collection.length) {\n if (!isNullOrUndefined(this.parent.width) && this.parent.width !== 'auto' &&\n typeof (this.parent.width) === 'string' && this.parent.width.indexOf('%') === -1) {\n difference = (typeof this.parent.width === 'string' ? parseInt(this.parent.width, 10) : this.parent.width) - tWidth;\n }\n else {\n difference = this.parent.element.getBoundingClientRect().width - tWidth;\n }\n var tmWidth = 0;\n for (var _i = 0, collection_1 = collection; _i < collection_1.length; _i++) {\n var cols = collection_1[_i];\n tmWidth += !isNullOrUndefined(cols.minWidth) ?\n ((typeof cols.minWidth === 'string' ? parseInt(cols.minWidth, 10) : cols.minWidth)) : 0;\n }\n for (var i = 0; i < collection.length; i++) {\n if (tWidth === 0 && this.parent.allowResizing && this.isWidthUndefined() && (i !== collection.length - 1)) {\n this.setUndefinedColumnWidth(collection);\n }\n var index = this.parent.getColumnIndexByField(collection[parseInt(i.toString(), 10)].field) + this.parent.getIndentCount();\n if (tWidth !== 0 && difference < tmWidth) {\n this.setWidth(collection[parseInt(i.toString(), 10)].minWidth, index);\n }\n else if (tWidth !== 0 && difference > tmWidth) {\n this.setWidth('', index, true);\n }\n }\n }\n };\n ColumnWidthService.prototype.setUndefinedColumnWidth = function (collection) {\n for (var k = 0; k < collection.length; k++) {\n if (k !== collection.length - 1) {\n collection[parseInt(k.toString(), 10)].width = 200;\n this.setWidth(200, this.parent.getColumnIndexByField(collection[parseInt(k.toString(), 10)].field));\n }\n }\n };\n ColumnWidthService.prototype.setColumnWidth = function (column, index, module) {\n if (this.parent.getColumns().length < 1) {\n return;\n }\n var columnIndex = isNullOrUndefined(index) ? this.parent.getNormalizedColumnIndex(column.uid) : index;\n var cWidth = this.getWidth(column);\n var tgridWidth = this.getTableWidth(this.parent.getColumns());\n if (cWidth !== null) {\n this.setWidth(cWidth, columnIndex);\n if (this.parent.width !== 'auto' && this.parent.width.toString().indexOf('%') === -1) {\n this.setMinwidthBycalculation(tgridWidth);\n }\n if ((this.parent.allowResizing && module === 'resize') || (this.parent.getFrozenColumns() && this.parent.allowResizing)) {\n this.setWidthToTable();\n }\n this.parent.notify(columnWidthChanged, { index: columnIndex, width: cWidth, column: column, module: module });\n }\n };\n ColumnWidthService.prototype.setWidth = function (width, index, clear) {\n if (this.parent.groupSettings.columns.length > index && ispercentageWidth(this.parent)) {\n var elementWidth = this.parent.element.offsetWidth;\n width = (30 / elementWidth * 100).toFixed(1) + '%';\n }\n var header = this.parent.getHeaderTable();\n var content = this.parent.getContentTable();\n var fWidth = formatUnit(width);\n var headerCol;\n var frzCols = this.parent.getFrozenColumns();\n var isDraggable = this.parent.isRowDragable();\n frzCols = frzCols && isDraggable ? frzCols + 1 : frzCols;\n var mHdr = this.parent.getHeaderContent().querySelector('.' + literals.movableHeader);\n var mCont = this.parent.getContent().querySelector('.' + literals.movableContent);\n var freezeLeft = this.parent.getFrozenLeftColumnsCount();\n var freezeRight = this.parent.getFrozenRightColumnsCount();\n var movableCount = this.parent.getMovableColumnsCount();\n var isColFrozen = freezeLeft !== 0 || freezeRight !== 0;\n if (frzCols && index >= frzCols) {\n if (!mHdr || !mHdr.querySelector(literals.colGroup)) {\n return;\n }\n headerCol = mHdr\n .querySelector(literals.colGroup + ':not(.e-masked-colgroup)').children[index - frzCols];\n }\n else if (this.parent.enableColumnVirtualization && frzCols && this.parent.contentModule.isXaxis()\n && mHdr.scrollLeft > 0) {\n var colGroup = mHdr.querySelector(literals.colGroup);\n headerCol = colGroup.children[(colGroup.children.length - 1) - index];\n }\n else if (isColFrozen) {\n var target = void 0;\n if (freezeLeft && !freezeRight) {\n index = isDraggable ? index - 1 : index;\n target = index < freezeLeft ? header : mHdr;\n }\n else if (!freezeLeft && freezeRight) {\n target = index >= movableCount ? header : mHdr;\n }\n else if (freezeLeft && freezeRight) {\n index = isDraggable ? index - 1 : index;\n var frHdr = this.parent.getFrozenRightHeader();\n target = index < freezeLeft ? header : index < (freezeLeft + movableCount) ? mHdr : frHdr;\n }\n headerCol = this.getColumnLevelFrozenColgroup(index, freezeLeft, movableCount, target);\n if (!headerCol) {\n return;\n }\n }\n else {\n headerCol = header.querySelector(literals.colGroup).children[parseInt(index.toString(), 10)];\n }\n if (headerCol && !clear) {\n headerCol.style.width = fWidth;\n }\n else if (headerCol && clear) {\n headerCol.style.width = '';\n }\n var contentCol;\n if (frzCols && index >= frzCols) {\n contentCol = this.parent.getContent().querySelector('.' + literals.movableContent)\n .querySelector(literals.colGroup + ':not(.e-masked-colgroup)').children[index - frzCols];\n }\n else if (this.parent.enableColumnVirtualization && frzCols && this.parent.contentModule.isXaxis()\n && mCont.scrollLeft > 0) {\n var colGroup = this.parent.getContent().querySelector('.' + literals.movableContent)\n .querySelector(literals.colGroup);\n contentCol = colGroup.children[(colGroup.children.length - 1) - index];\n }\n else if (isColFrozen) {\n var target = void 0;\n if (freezeLeft && !freezeRight) {\n target = index < freezeLeft ? content : mCont;\n }\n if (!freezeLeft && freezeRight) {\n target = index >= movableCount ? content : mCont;\n }\n if (freezeLeft && freezeRight) {\n var frCont = this.parent.getContent().querySelector('.e-frozen-right-content');\n target = index < freezeLeft ? content : index < (freezeLeft + movableCount) ? mCont : frCont;\n }\n contentCol = this.getColumnLevelFrozenColgroup(index, freezeLeft, movableCount, target);\n }\n else {\n contentCol = content.querySelector(literals.colGroup).children[parseInt(index.toString(), 10)];\n }\n if (contentCol && !clear) {\n if (contentCol.style.width !== headerCol.style.width && this.parent.isFrozenGrid() && this.parent['reorderModule'] &&\n this.parent['reorderModule'].element && this.parent['reorderModule'].destElement) {\n contentCol.style.display = this.parent.getColumnByIndex(index).visible ? '' : 'none';\n }\n contentCol.style.width = fWidth;\n }\n else if (contentCol && clear) {\n contentCol.style.width = '';\n }\n if (!this.parent.enableColumnVirtualization) {\n var edit = this.parent.element.querySelectorAll('.e-table.e-inline-edit');\n var editTableCol = [];\n for (var i = 0; i < edit.length; i++) {\n if (parentsUntil(edit[parseInt(i.toString(), 10)], 'e-grid').id === this.parent.element.id) {\n for (var j = 0; j < edit[parseInt(i.toString(), 10)].querySelector('colgroup').children.length; j++) {\n editTableCol.push(edit[parseInt(i.toString(), 10)].querySelector('colgroup').children[parseInt(j.toString(), 10)]);\n }\n }\n }\n if (edit.length && editTableCol.length) {\n editTableCol[parseInt(index.toString(), 10)].style.width = fWidth;\n }\n }\n if (this.parent.isFrozenGrid()) {\n this.refreshFrozenScrollbar();\n }\n };\n ColumnWidthService.prototype.getColumnLevelFrozenColgroup = function (index, left, movable, ele) {\n if (!ele || !ele.querySelector(literals.colGroup)) {\n return null;\n }\n var columns = this.parent.getColumns();\n var isDrag = this.parent.isRowDragable();\n var frzMode = this.parent.getFrozenMode();\n var headerCol;\n var colGroup = [].slice.call(ele.querySelector(literals.colGroup + ':not(.e-masked-colgroup)').children);\n if (frzMode === 'Right' && isDrag && index === (movable + this.parent.getFrozenRightColumnsCount())) {\n headerCol = colGroup[colGroup.length - 1];\n }\n else if (isDrag && index === -1) {\n headerCol = colGroup[0];\n }\n else if (columns[parseInt(index.toString(), 10)].freeze === 'Left') {\n headerCol = colGroup[isDrag ? (index + 1) : index];\n }\n else if (columns[parseInt(index.toString(), 10)].freeze === 'Right') {\n headerCol = colGroup[index - (left + movable)];\n }\n else {\n headerCol = colGroup[index - left];\n }\n return headerCol;\n };\n /**\n * @returns {void}\n * @hidden\n */\n ColumnWidthService.prototype.refreshFrozenScrollbar = function () {\n var args = { cancel: false };\n this.parent.notify(preventFrozenScrollRefresh, args);\n if (args.cancel) {\n return;\n }\n var scrollWidth = getScrollBarWidth();\n var frozenScrollbar = this.parent.element.querySelector('.e-frozenscrollbar');\n var movableScrollbar = this.parent.element.querySelector('.e-movablescrollbar');\n var frozencontent = this.parent.getContent().querySelector('.' + literals.frozenContent);\n var movableContent = this.parent.getContent().querySelector('.' + literals.movableContent);\n var frozenWidth = frozencontent.firstElementChild.getBoundingClientRect().width;\n var movableWidth = movableContent.firstElementChild.getBoundingClientRect().width;\n if (this.parent.getFrozenMode() === 'Right') {\n frozenWidth = frozenWidth + scrollWidth;\n }\n frozenScrollbar.style.width = frozenWidth + 'px';\n if (this.parent.getFrozenMode() === literals.leftRight) {\n var frozenRightScrollbar = this.parent.element.querySelector('.e-frozen-right-scrollbar');\n var frozenRightWidth = this.parent.getContent().querySelector('.e-frozen-right-content')\n .firstElementChild.getBoundingClientRect().width;\n if (this.parent.height !== 'auto') {\n frozenRightWidth = frozenRightWidth + scrollWidth;\n }\n frozenRightScrollbar.style.width = frozenRightWidth + 'px';\n }\n else {\n if (this.parent.enableColumnVirtualization) {\n var placeHolder = this.parent.getMovableVirtualContent().querySelector('.e-virtualtrack');\n if (placeHolder) {\n movableWidth = placeHolder.scrollWidth;\n }\n }\n if (this.parent.getFrozenMode() !== 'Right' && this.parent.height !== 'auto') {\n movableWidth = movableWidth + scrollWidth;\n }\n }\n movableScrollbar.firstElementChild.style.width = movableWidth + 'px';\n };\n ColumnWidthService.prototype.getSiblingsHeight = function (element) {\n var previous = this.getHeightFromDirection(element, 'previous');\n var next = this.getHeightFromDirection(element, 'next');\n return previous + next;\n };\n ColumnWidthService.prototype.getHeightFromDirection = function (element, direction) {\n var sibling = element[direction + 'ElementSibling'];\n var result = 0;\n var classList = [literals.gridHeader, literals.gridFooter, 'e-groupdroparea', 'e-gridpager', 'e-toolbar', 'e-temp-toolbar'];\n while (sibling) {\n if (classList.some(function (value) { return sibling.classList.contains(value); })) {\n result += sibling.offsetHeight;\n }\n sibling = sibling[direction + 'ElementSibling'];\n }\n return result;\n };\n ColumnWidthService.prototype.isWidthUndefined = function () {\n var isWidUndefCount = this.parent.getColumns().filter(function (col) {\n return isNullOrUndefined(col.width) && isNullOrUndefined(col.minWidth);\n }).length;\n return (this.parent.getColumns().length === isWidUndefCount);\n };\n ColumnWidthService.prototype.getWidth = function (column) {\n if (isNullOrUndefined(column.width) && this.parent.allowResizing\n && isNullOrUndefined(column.minWidth) && !this.isWidthUndefined()) {\n column.width = 200;\n }\n if (this.parent.isFrozenGrid() && isNullOrUndefined(column.width) &&\n (column.getFreezeTableName() === literals.frozenLeft || column.getFreezeTableName() === literals.frozenRight)) {\n column.width = 200;\n }\n if (!column.width) {\n return null;\n }\n var width = parseInt(column.width.toString(), 10);\n if (column.minWidth && width < parseInt(column.minWidth.toString(), 10)) {\n return column.minWidth;\n }\n else if ((column.maxWidth && width > parseInt(column.maxWidth.toString(), 10))) {\n return column.maxWidth;\n }\n else {\n return column.width;\n }\n };\n ColumnWidthService.prototype.getTableWidth = function (columns) {\n var tWidth = 0;\n for (var _i = 0, columns_1 = columns; _i < columns_1.length; _i++) {\n var column = columns_1[_i];\n var cWidth = this.getWidth(column);\n if (column.width === 'auto') {\n cWidth = 0;\n }\n if (column.visible !== false && cWidth !== null) {\n tWidth += parseInt(cWidth.toString(), 10);\n }\n }\n return tWidth;\n };\n ColumnWidthService.prototype.calcMovableOrFreezeColWidth = function (tableType) {\n var columns = this.parent.getColumns().slice();\n var left = this.parent.getFrozenLeftColumnsCount() || this.parent.getFrozenColumns();\n var movable = this.parent.getMovableColumnsCount();\n var right = this.parent.getFrozenRightColumnsCount();\n if (tableType === 'movable') {\n if (right) {\n columns.splice(left + movable, columns.length);\n }\n if (left) {\n columns.splice(0, left);\n }\n }\n else if (tableType === 'freeze-left') {\n columns.splice(left, columns.length);\n }\n else if (tableType === 'freeze-right') {\n columns.splice(0, left + movable);\n }\n return formatUnit(this.getTableWidth(columns));\n };\n ColumnWidthService.prototype.setWidthToFrozenRightTable = function () {\n var freezeWidth = this.calcMovableOrFreezeColWidth('freeze-right');\n freezeWidth = this.isAutoResize() ? '100%' : freezeWidth;\n var headerTbl = this.parent.getHeaderContent().querySelector('.e-frozen-right-header')\n .querySelector('.' + literals.table + ':not(.e-masked-table)');\n var cntTbl = this.parent.getContent().querySelector('.e-frozen-right-content')\n .querySelector('.' + literals.table + ':not(.e-masked-table)');\n headerTbl.style.width = freezeWidth;\n cntTbl.style.width = freezeWidth;\n };\n ColumnWidthService.prototype.setWidthToFrozenLeftTable = function () {\n var freezeWidth = this.calcMovableOrFreezeColWidth('freeze-left');\n freezeWidth = this.isAutoResize() ? '100%' : freezeWidth;\n this.parent.getHeaderTable().style.width = freezeWidth;\n this.parent.getContentTable().style.width = freezeWidth;\n };\n ColumnWidthService.prototype.setWidthToMovableTable = function () {\n var movableWidth = '';\n var isColUndefined = this.parent.getColumns().filter(function (a) { return isNullOrUndefined(a.width); }).length >= 1;\n var isWidthAuto = this.parent.getColumns().filter(function (a) { return (a.width === 'auto'); }).length >= 1;\n var movableHeader = this.parent.getHeaderContent().querySelector('.' + literals.movableHeader);\n var movableContent = this.parent.getContent().querySelector('.' + literals.movableContent);\n if (typeof this.parent.width === 'number' && !isColUndefined && !isWidthAuto && !this.parent.resizeModule.resizeProcess) {\n movableWidth = formatUnit(this.parent.width - parseInt(this.calcMovableOrFreezeColWidth('freeze').split('px')[0], 10) - 5);\n }\n else if (!isColUndefined && !isWidthAuto) {\n movableWidth = this.calcMovableOrFreezeColWidth('movable');\n }\n movableWidth = this.isAutoResize() ? '100%' : movableWidth;\n if (movableHeader.firstElementChild) {\n if (movableHeader.firstElementChild.classList.contains('e-masked-table')) {\n movableHeader.childNodes[1].style.width = movableWidth;\n }\n else {\n movableHeader.firstElementChild.style.width = movableWidth;\n }\n }\n if (movableContent.firstElementChild.classList.contains('e-masked-table')) {\n movableContent.childNodes[1].style.width = movableWidth;\n }\n else {\n movableContent.firstElementChild.style.width = movableWidth;\n }\n };\n ColumnWidthService.prototype.setWidthToFrozenEditTable = function () {\n var freezeWidth = this.calcMovableOrFreezeColWidth('freeze');\n freezeWidth = this.isAutoResize() ? '100%' : freezeWidth;\n this.parent.element.querySelectorAll('.e-table.e-inline-edit')[0].style.width = freezeWidth;\n };\n ColumnWidthService.prototype.setWidthToMovableEditTable = function () {\n var movableWidth = this.calcMovableOrFreezeColWidth('movable');\n movableWidth = this.isAutoResize() ? '100%' : movableWidth;\n this.parent.element.querySelectorAll('.e-table.e-inline-edit')[1].style.width = movableWidth;\n };\n ColumnWidthService.prototype.setWidthToTable = function () {\n var tWidth = formatUnit(this.getTableWidth(this.parent.getColumns()));\n if (this.parent.isFrozenGrid()) {\n if (this.parent.getFrozenColumns() || this.parent.getFrozenLeftColumnsCount()) {\n this.setWidthToFrozenLeftTable();\n }\n this.setWidthToMovableTable();\n if (this.parent.getFrozenRightColumnsCount()) {\n this.setWidthToFrozenRightTable();\n }\n }\n else {\n if (this.parent.detailTemplate || this.parent.childGrid) {\n this.setColumnWidth(new Column({ width: '30px' }));\n }\n tWidth = this.isAutoResize() ? '100%' : tWidth;\n this.parent.getHeaderTable().style.width = tWidth;\n this.parent.getContentTable().style.width = tWidth;\n }\n var edit = this.parent.element.querySelector('.e-table.e-inline-edit');\n if (edit && this.parent.getFrozenColumns()) {\n this.setWidthToFrozenEditTable();\n this.setWidthToMovableEditTable();\n }\n else if (edit) {\n edit.style.width = tWidth;\n }\n };\n ColumnWidthService.prototype.isAutoResize = function () {\n return this.parent.allowResizing && this.parent.resizeSettings.mode === 'Auto';\n };\n return ColumnWidthService;\n}());\nexport { ColumnWidthService };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { EventHandler, getValue, closest, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { addClass, removeClass, extend, Browser } from '@syncfusion/ej2-base';\nimport { CellType } from '../base/enum';\nimport * as event from '../base/constant';\nimport { Row } from '../models/row';\nimport { RowModelGenerator } from './row-model-generator';\nimport { parentsUntil, addRemoveEventListener, findCellIndex } from '../base/util';\nimport * as literals from '../base/string-literals';\n/**\n * FocusStrategy class\n *\n * @hidden\n */\nvar FocusStrategy = /** @class */ (function () {\n function FocusStrategy(parent) {\n this.currentInfo = {};\n this.oneTime = true;\n this.swap = {};\n /** @hidden */\n this.isInfiniteScroll = false;\n this.forget = false;\n this.skipFocus = true;\n this.focusByClick = false;\n this.firstHeaderCellClick = false;\n this.prevIndexes = {};\n this.refMatrix = this.refreshMatrix(true);\n this.actions = ['downArrow', 'upArrow'];\n this.isVirtualScroll = false;\n this.parent = parent;\n this.rowModelGen = new RowModelGenerator(this.parent);\n this.addEventListener();\n }\n FocusStrategy.prototype.focusCheck = function (e) {\n var target = e.target;\n this.focusByClick = true;\n this.firstHeaderCellClick = true;\n this.skipFocus = target.classList.contains('e-grid');\n };\n FocusStrategy.prototype.onFocus = function (e) {\n if (this.parent.isDestroyed || Browser.isDevice || this.parent.enableVirtualization\n || this.parent.element.querySelector('.e-masked-table') || (!this.parent.isInitialLoad && e\n && e.target === this.parent.element && this.parent.element.querySelector('.e-spin-show'))) {\n return;\n }\n this.setActive(!this.parent.enableHeaderFocus && this.parent.frozenRows === 0, this.parent.isFrozenGrid());\n if (!this.parent.enableHeaderFocus && !this.parent.getCurrentViewRecords().length && ((this.parent.editSettings.mode !== 'Batch')\n || (this.parent.editSettings.mode === 'Batch' && this.parent.editModule && !this.parent.editModule.getBatchChanges()[literals.addedRecords].length))) {\n this.getContent().matrix.\n generate(this.rowModelGen.generateRows({ rows: [new Row({ isDataRow: true })] }), this.getContent().selector, false);\n }\n var current = this.getContent().matrix.get(0, -1, [0, 1], null, this.getContent().validator());\n this.getContent().matrix.select(current[0], current[1]);\n if (this.skipFocus && !(e && e.target === this.parent.element)) {\n this.focus(e);\n this.skipFocus = false;\n }\n };\n FocusStrategy.prototype.passiveFocus = function (e) {\n if (this.parent.isDestroyed) {\n return;\n }\n var firstHeaderCell = this.parent.getHeaderContent().querySelector('.e-headercell');\n if (e.target === firstHeaderCell && e.relatedTarget && !parentsUntil(e.relatedTarget, 'e-grid')\n && !this.firstHeaderCellClick) {\n this.currentInfo.element = e.target;\n this.currentInfo.elementToFocus = e.target;\n addClass([this.currentInfo.element], ['e-focused', 'e-focus']);\n }\n this.firstHeaderCellClick = false;\n if (e.target && e.target.classList.contains('e-detailcell')) {\n this.currentInfo.skipAction = false;\n addClass([this.currentInfo.element], ['e-focused', 'e-focus']);\n }\n };\n FocusStrategy.prototype.onBlur = function (e) {\n // The below boolean condition for gantt team focus fix.\n var isGantt = parentsUntil(e.target, 'e-gantt') && e.target.classList.contains('e-rowcell')\n && (!isNullOrUndefined(e.target.nextElementSibling)\n && e.target.nextElementSibling.classList.contains('e-rowcell')) ? true : false;\n if ((this.parent.isEdit || e && (!e.relatedTarget || closest(e.relatedTarget, '.e-grid'))\n && !(this.parent.element.classList.contains('e-childgrid') && !this.parent.element.matches(':focus-within')))\n && !(!isGantt && isNullOrUndefined(e.relatedTarget) && parseInt(e.target.getAttribute('data-colindex'), 10) === 0\n && parseInt(e.target.getAttribute('index'), 10) === 0) && !(!isGantt && isNullOrUndefined(e.relatedTarget)\n && !closest(document.activeElement, '.e-grid') && !isNullOrUndefined(e['sourceCapabilities']))) {\n return;\n }\n this.removeFocus();\n this.skipFocus = true;\n this.currentInfo.skipAction = false;\n this.setLastContentCellTabIndex();\n this.setFirstFocusableTabIndex();\n this.firstHeaderCellClick = false;\n };\n /**\n * @returns {void}\n * @hidden */\n FocusStrategy.prototype.setFirstFocusableTabIndex = function () {\n var gObj = this.parent;\n gObj.element.tabIndex = -1;\n if (gObj.allowGrouping && gObj.groupSettings.showDropArea) {\n var groupModule = gObj.groupModule;\n var focusableGroupedItems = groupModule.getFocusableGroupedItems();\n if (focusableGroupedItems.length > 0) {\n groupModule.element.tabIndex = -1;\n focusableGroupedItems[0].tabIndex = 0;\n }\n else {\n groupModule.element.tabIndex = 0;\n }\n return;\n }\n if (gObj.toolbar || gObj.toolbarTemplate) {\n var toolbarElement = gObj.toolbarModule.element;\n var focusableToolbarItems = this.parent.toolbarModule.getFocusableToolbarItems();\n if (focusableToolbarItems.length > 0 && focusableToolbarItems[0].querySelector('.e-toolbar-item-focus,.e-btn,.e-input')) {\n toolbarElement.tabIndex = -1;\n focusableToolbarItems[0].querySelector('.e-toolbar-item-focus,.e-btn,.e-input').tabIndex = 0;\n }\n else {\n toolbarElement.tabIndex = 0;\n }\n return;\n }\n if (gObj.getColumns().length) {\n var firstHeaderCell = gObj.getHeaderContent().querySelector('.e-headercell');\n firstHeaderCell.tabIndex = 0;\n if (this.parent.isFrozenGrid() && (this.parent.getFrozenMode() === 'Left'\n || this.parent.getFrozenMode() === literals.leftRight)) {\n this.setActive(false, true);\n }\n else {\n this.setActive(false);\n }\n if (!isNullOrUndefined(this.active)) {\n var firstHeaderCellIndex = [0, 0];\n if (this.active.matrix.matrix[firstHeaderCellIndex[0]][firstHeaderCellIndex[1]] === 0) {\n firstHeaderCellIndex = findCellIndex(this.active.matrix.matrix, firstHeaderCellIndex, true);\n }\n this.active.matrix.current = firstHeaderCellIndex;\n }\n return;\n }\n };\n FocusStrategy.prototype.setLastContentCellTabIndex = function () {\n var contentTable = this.parent.getContentTable();\n if (contentTable.rows[contentTable.rows.length - 1]) {\n var lastCell = contentTable.rows[contentTable.rows.length - 1].lastElementChild;\n lastCell.tabIndex = 0;\n }\n };\n FocusStrategy.prototype.onClick = function (e, force) {\n if (parentsUntil(e.target, 'e-filterbarcell') && (parentsUntil(e.target, 'e-multiselect') ||\n e.target.classList.contains('e-input-group-icon'))) {\n return;\n }\n var isContent = !isNullOrUndefined(closest(e.target, '.' + literals.gridContent));\n var isHeader = !isNullOrUndefined(closest(e.target, '.' + literals.gridHeader));\n isContent = isContent && isHeader ? !isContent : isContent;\n var isFrozen = !isNullOrUndefined(closest(e.target, '.' + literals.frozenContent)) ||\n !isNullOrUndefined(closest(e.target, '.' + literals.frozenHeader));\n var isFrozenRight = false;\n if (this.parent.getFrozenMode() === literals.leftRight) {\n isFrozenRight = !isNullOrUndefined(closest(e.target, '.e-frozen-right-content')) ||\n !isNullOrUndefined(closest(e.target, '.e-frozen-right-header'));\n isFrozen = isFrozen && !isFrozenRight;\n }\n if (!isContent && isNullOrUndefined(closest(e.target, '.' + literals.gridHeader)) ||\n e.target.classList.contains(literals.content) ||\n !isNullOrUndefined(closest(e.target, '.e-unboundcell'))) {\n return;\n }\n this.setActive(isContent, isFrozen, isFrozenRight);\n if (!isContent && isNullOrUndefined(closest(e.target, '.' + literals.gridHeader))) {\n this.clearOutline();\n return;\n }\n var beforeArgs = { cancel: false, byKey: false, byClick: !isNullOrUndefined(e.target), clickArgs: e };\n this.parent.notify(event.beforeCellFocused, beforeArgs);\n if (beforeArgs.cancel || closest(e.target, '.e-inline-edit')) {\n return;\n }\n this.setActive(isContent, isFrozen, isFrozenRight);\n if (this.getContent()) {\n var returnVal = this.getContent().onClick(e, force);\n if (returnVal === false) {\n return;\n }\n if (this.parent.isFrozenGrid() && isHeader && e.target === this.parent.getHeaderContent().firstChild\n && this.active.matrix.current[0] === -1 && this.active.matrix.current[1] === this.active.matrix.columns) {\n this.active.matrix.current = [0, 0];\n }\n this.focus();\n }\n };\n FocusStrategy.prototype.onKeyPress = function (e) {\n var isFrozenGrid = this.parent.isFrozenGrid();\n if (this.parent.allowPaging) {\n var pagerElement = this.parent.pagerModule.pagerObj.element;\n var focusablePagerElements = this.parent.pagerModule.pagerObj.getFocusablePagerElements(pagerElement, []);\n if (this.parent.childGrid && this.allowToPaging(e) && focusablePagerElements.length) {\n focusablePagerElements[0].tabIndex = 0;\n }\n if (this.parent.pagerModule.pagerObj.checkPagerHasFocus()) {\n if (e.action === 'shiftTab' && focusablePagerElements.length && focusablePagerElements[0] === e.target) {\n this.setActive(true);\n var lastHeaderCellIndex = [this.active.matrix.matrix.length - 1,\n this.active.matrix.matrix[this.active.matrix.matrix.length - 1].length - 1];\n if (this.active.matrix.matrix[lastHeaderCellIndex[0]][lastHeaderCellIndex[1]] === 0) {\n lastHeaderCellIndex = findCellIndex(this.active.matrix.matrix, lastHeaderCellIndex, false);\n }\n this.active.matrix.current = this.parent.editSettings.mode === 'Batch' ?\n this.isValidBatchEditCell(lastHeaderCellIndex) ? lastHeaderCellIndex :\n this.findBatchEditCell(lastHeaderCellIndex, false) : lastHeaderCellIndex;\n e.preventDefault();\n this.focus(e);\n return;\n }\n if (!(e.action === 'tab' && this.parent.element.classList.contains('e-childgrid')\n && ((!this.parent.pageSettings.pageSizes && focusablePagerElements.length\n && focusablePagerElements[focusablePagerElements.length - 1] === e.target)\n || (this.parent.pagerModule.pagerObj.getDropDownPage() === e.target)))) {\n this.parent.pagerModule.pagerObj.changePagerFocus(e);\n return;\n }\n else {\n var parentCell = parentsUntil(this.parent.element, 'e-detailcell');\n removeClass([this.parent.element], ['e-focus']);\n removeClass([parentCell], ['e-focused']);\n parentCell.tabIndex = -1;\n }\n }\n if (this.parent.pagerModule.pagerObj.element.tabIndex === 0 && (e.keyCode === 38 || (e.shiftKey && e.keyCode === 9))) {\n e.preventDefault();\n this.focus(e);\n return;\n }\n else if (this.parent.pagerModule.pagerObj.element.tabIndex === 0 && e.keyCode === 9) {\n e.preventDefault();\n this.parent.pagerModule.pagerObj.setPagerFocus();\n return;\n }\n if (this.parent.pagerModule.pagerObj.checkFirstPagerFocus()) {\n var lastRow = this.getContent().matrix.rows;\n var lastColumn = this.getContent().matrix.columns;\n this.getContent().matrix.current = [lastRow, lastColumn];\n }\n }\n if (this.skipOn(e)) {\n return;\n }\n if (e.target && parentsUntil(e.target, 'e-gridcontent') && !isFrozenGrid) {\n var rows = [].slice.call(this.parent.getContentTable().rows);\n var lastCell = rows[rows.length - 1].lastElementChild;\n if (e.target === lastCell) {\n this.setActive(true);\n this.setLastContentCellActive();\n }\n }\n if (e.action === 'shiftTab' && e.target && (e.target === this.parent.element || parentsUntil(e.target, 'e-toolbar')\n || parentsUntil(e.target, 'e-groupdroparea'))) {\n if (e.target === this.parent.element) {\n if (this.parent.element.classList.contains('e-childgrid')) {\n this.focusOutFromChildGrid(e);\n }\n return;\n }\n if (parentsUntil(e.target, 'e-groupdroparea')) {\n if (this.parent.element.classList.contains('e-childgrid')) {\n e.preventDefault();\n this.parent.element.focus();\n }\n return;\n }\n if (parentsUntil(e.target, 'e-toolbar')) {\n if (this.parent.allowGrouping && this.parent.groupSettings.showDropArea) {\n var groupModule = this.parent.groupModule;\n var focusableGroupedItems = groupModule.getFocusableGroupedItems();\n e.preventDefault();\n if (focusableGroupedItems.length > 0) {\n focusableGroupedItems[focusableGroupedItems.length - 1].focus();\n }\n else {\n groupModule.element.focus();\n }\n }\n else if (this.parent.element.classList.contains('e-childgrid')) {\n e.preventDefault();\n this.parent.element.focus();\n }\n return;\n }\n }\n var focusFirstHeaderCell = false;\n if (e.action === 'tab' && e.target && (e.target === this.parent.element || parentsUntil(e.target, 'e-toolbar')\n || parentsUntil(e.target, 'e-groupdroparea'))) {\n if (this.parent.allowGrouping && this.parent.groupSettings.showDropArea\n && (e.target === this.parent.element || e.target.classList.contains('e-groupdroparea'))) {\n var groupModule = this.parent.groupModule;\n var focusableGroupedItems = groupModule.getFocusableGroupedItems();\n if (focusableGroupedItems.length > 0) {\n e.preventDefault();\n focusableGroupedItems[0].focus();\n return;\n }\n if (!e.target.classList.contains('e-groupdroparea')) {\n e.preventDefault();\n groupModule.element.focus();\n return;\n }\n }\n if ((this.parent.toolbar || this.parent.toolbarTemplate) && (e.target === this.parent.element\n || parentsUntil(e.target, 'e-groupdroparea')\n || e.target.classList.contains('e-toolbar'))) {\n var toolbarElement = this.parent.toolbarModule.element;\n var focusableToolbarItems = this.parent.toolbarModule.getFocusableToolbarItems();\n if (focusableToolbarItems.length > 0) {\n e.preventDefault();\n focusableToolbarItems[0].querySelector('.e-toolbar-item-focus,.e-btn,.e-input').focus();\n return;\n }\n if (!e.target.classList.contains('e-toolbar')) {\n e.preventDefault();\n toolbarElement.focus();\n return;\n }\n }\n if (e.target === this.parent.element || parentsUntil(e.target, 'e-toolbar')\n || parentsUntil(e.target, 'e-groupdroparea')) {\n focusFirstHeaderCell = true;\n }\n }\n if (focusFirstHeaderCell) {\n if (isFrozenGrid && (this.parent.getFrozenMode() === 'Left'\n || this.parent.getFrozenMode() === literals.leftRight)) {\n this.setActive(false, true);\n }\n else if (this.parent.allowGrouping && this.parent.groupSettings.columns.length === this.parent.columns.length) {\n this.setActive(true);\n }\n else {\n this.setActive(false);\n }\n this.active.matrix.current = [0, -1];\n }\n this.activeKey = e.action;\n var beforeArgs = { cancel: false, byKey: true, byClick: false, keyArgs: e };\n this.parent.notify(event.beforeCellFocused, beforeArgs);\n if (beforeArgs.cancel) {\n return;\n }\n var bValue = this.getContent().matrix.current;\n var prevActiveName = this.getActiveName();\n var prevBatchValue = this.active && this.active.matrix.current ?\n [this.active.matrix.current[0], this.active.matrix.current[1]] : undefined;\n this.currentInfo.outline = true;\n var swapInfo = this.getContent().jump(e.action, bValue);\n this.swap = swapInfo;\n if (swapInfo.swap && !(isFrozenGrid && this.parent.editSettings.mode === 'Batch'\n && (e.action === 'tab' || e.action === 'shiftTab'))) {\n this.setActive(!swapInfo.toHeader, swapInfo.toFrozen, swapInfo.toFrozenRight);\n this.getContent().matrix.current = this.getContent().getNextCurrent(bValue, swapInfo, this.active, e.action);\n this.prevIndexes = {};\n }\n this.setActiveByKey(e.action, this.getContent());\n var returnVal = isFrozenGrid && this.parent.editSettings.mode === 'Batch' && e.target && (e.action === 'tab'\n || e.action === 'shiftTab') && (parentsUntil(e.target, 'e-gridheader')\n || parentsUntil(e.target, 'e-gridcontent')) ? undefined\n : this.content.lastIdxCell ? false : this.getContent().onKeyPress(e);\n if (e.target && parentsUntil(e.target, 'e-gridheader')) {\n if (!isFrozenGrid) {\n if (e.action === 'tab' && bValue.toString() === this.active.matrix.current.toString()) {\n var nextHeaderCellIndex = findCellIndex(this.active.matrix.matrix, this.active.matrix.current, true);\n var lastHeaderCellIndex = [this.active.matrix.matrix.length - 1,\n this.active.matrix.matrix[this.active.matrix.matrix.length - 1].length - 1];\n if (this.active.matrix.matrix[lastHeaderCellIndex[0]][lastHeaderCellIndex[1]] === 0) {\n lastHeaderCellIndex = findCellIndex(this.active.matrix.matrix, lastHeaderCellIndex, false);\n }\n if (this.active.matrix.current.toString() === lastHeaderCellIndex.toString()) {\n returnVal = true;\n this.setActive(true);\n var firstContentCellIndex = [0, 0];\n if (this.active.matrix.matrix[firstContentCellIndex[0]][firstContentCellIndex[1]] === 0) {\n firstContentCellIndex = findCellIndex(this.active.matrix.matrix, [0, 0], true);\n }\n this.active.matrix.current = this.parent.editSettings.mode === 'Batch' ?\n this.isValidBatchEditCell(firstContentCellIndex) ? firstContentCellIndex :\n this.findBatchEditCell(firstContentCellIndex, true) : firstContentCellIndex;\n }\n else if (this.active.matrix.current.toString() !== nextHeaderCellIndex.toString()) {\n this.active.matrix.current = nextHeaderCellIndex;\n }\n }\n if (e.action === 'shiftTab' && bValue.toString() === this.active.matrix.current.toString()) {\n var previousCellIndex = findCellIndex(this.active.matrix.matrix, this.active.matrix.current, false);\n if (previousCellIndex.toString() === this.active.matrix.current.toString()) {\n this.focusOutFromHeader(e);\n return;\n }\n if (this.active.matrix.current.toString() !== previousCellIndex.toString() && !returnVal) {\n returnVal = true;\n this.active.matrix.current = previousCellIndex;\n }\n }\n }\n else {\n if (this.parent.editSettings.mode === 'Batch' && (e.action === 'tab' || e.action === 'shiftTab')) {\n this.setFrozenBatchEditCell(prevActiveName, prevBatchValue, e.action === 'tab' ? true : false);\n }\n if (e.action === 'shiftTab' && bValue.toString() === this.active.matrix.current.toString() && !swapInfo.swap\n && !(this.parent.editSettings.mode === 'Batch' && !(this.getActiveName() === prevActiveName))) {\n this.focusOutFromHeader(e);\n return;\n }\n }\n }\n if (e.target && parentsUntil(e.target, 'e-gridcontent')) {\n if (!isFrozenGrid) {\n if (this.parent.editSettings.mode === 'Batch' && (e.action === 'tab' || e.action === 'shiftTab')) {\n this.active.matrix.current = this.findBatchEditCell(prevBatchValue, e.action === 'tab' ? true : false);\n if (e.action === 'tab' && prevBatchValue.toString() === this.active.matrix.current.toString()) {\n this.parent.editModule.editModule.addBatchRow = true;\n }\n }\n if (e.action === 'shiftTab' && bValue.toString() === this.active.matrix.current.toString()) {\n if (this.parent.allowGrouping && this.parent.groupSettings.columns.length === this.parent.columns.length) {\n this.focusOutFromHeader(e);\n return;\n }\n var firstContentCellIndex = [0, 0];\n if (this.active.matrix.matrix[firstContentCellIndex[0]][firstContentCellIndex[1]] === 0) {\n firstContentCellIndex = findCellIndex(this.active.matrix.matrix, [0, 0], true);\n }\n if (!returnVal && (firstContentCellIndex.toString() === this.active.matrix.current.toString()\n || (this.parent.editSettings.mode === 'Batch'\n && prevBatchValue.toString() === this.active.matrix.current.toString()))) {\n returnVal = true;\n this.setActive(false);\n this.setLastContentCellActive();\n }\n }\n }\n else {\n if (this.parent.editSettings.mode === 'Batch' && (e.action === 'tab' || e.action === 'shiftTab')) {\n this.setFrozenBatchEditCell(prevActiveName, prevBatchValue, e.action === 'tab' ? true : false);\n if (e.action === 'tab' && prevBatchValue.toString() === this.active.matrix.current.toString()\n && this.getActiveName() === prevActiveName) {\n this.parent.editModule.editModule.addBatchRow = true;\n }\n }\n }\n }\n if (returnVal === false) {\n this.clearIndicator();\n if (e.action === 'shiftTab' && bValue.toString() === [0, 0].toString()) {\n this.parent.element.tabIndex = -1;\n }\n if (this.parent.allowPaging && !this.parent.pagerModule.pagerObj.checkPagerHasFocus() && this.allowToPaging(e)\n && bValue.toString() !== [0, 0].toString()) {\n e.preventDefault();\n if (e.keyCode === 40) {\n this.parent.pagerModule.pagerObj.setPagerContainerFocus();\n return;\n }\n else if (e.keyCode === 9) {\n this.parent.pagerModule.pagerObj.setPagerFocus();\n return;\n }\n }\n if (this.parent.element.classList.contains('e-childgrid')) {\n this.focusOutFromChildGrid(e);\n }\n return;\n }\n e.preventDefault();\n this.focus(e);\n };\n FocusStrategy.prototype.isValidBatchEditCell = function (cellIndex) {\n var cell = this.active.getTable().rows[cellIndex[0]].cells[cellIndex[1]];\n var tr = closest(cell, 'tr');\n var cellColIndex = parseInt(cell.getAttribute('data-colindex'), 10);\n var cellCol = this.parent.getColumns()[parseInt(cellColIndex.toString(), 10)];\n if (this.active.matrix.matrix[cellIndex[0]][cellIndex[1]] === 1\n && (tr.classList.contains('e-insertedrow') || !tr.classList.contains('e-row')\n || (!cellCol.isPrimaryKey && cellCol.allowEditing))) {\n return true;\n }\n return false;\n };\n FocusStrategy.prototype.findBatchEditCell = function (currentCellIndex, next, limitRow) {\n var cellIndex = currentCellIndex;\n var tempCellIndex = currentCellIndex;\n var cellIndexObtain = false;\n while (!cellIndexObtain) {\n var prevTempCellIndex = tempCellIndex;\n tempCellIndex = findCellIndex(this.active.matrix.matrix, tempCellIndex, next);\n if ((prevTempCellIndex.toString() === tempCellIndex.toString())\n || (limitRow && prevTempCellIndex[0] !== tempCellIndex[0])) {\n cellIndexObtain = true;\n continue;\n }\n if (this.isValidBatchEditCell(tempCellIndex)) {\n cellIndex = tempCellIndex;\n cellIndexObtain = true;\n }\n }\n return cellIndex;\n };\n FocusStrategy.prototype.setFrozenBatchEditCell = function (currentActiveName, currentCellIndex, next, nextRow) {\n var gObj = this.parent;\n var nextCell;\n var nextSection = false;\n if (nextRow !== undefined) {\n nextCell = [nextRow, next ? 0 : this.active.matrix.matrix[parseInt(nextRow.toString(), 10)].length - 1];\n }\n else {\n nextCell = next ? [currentCellIndex[0], currentCellIndex[1] + 1] : [currentCellIndex[0], currentCellIndex[1] - 1];\n }\n if (this.active.matrix.matrix[nextCell[0]] && this.active.matrix.matrix[nextCell[0]][nextCell[1]]) {\n if (this.isValidBatchEditCell(nextCell)) {\n this.active.matrix.current = nextCell;\n }\n else {\n var prevNextCell = nextCell;\n nextCell = this.findBatchEditCell(nextCell, next, true);\n if (prevNextCell.toString() === nextCell.toString()) {\n nextSection = true;\n }\n else {\n this.active.matrix.current = nextCell;\n }\n }\n }\n else {\n nextSection = true;\n }\n if (nextSection) {\n var activeName = this.getActiveName();\n var frozenMode = gObj.getFrozenMode();\n var rowIndex = nextCell[0];\n var rowDec = rowIndex - 1;\n var rowInc = rowIndex + 1;\n var notPrev = !next && rowDec === -1;\n var notNext = next && rowInc > this.active.matrix.matrix.length - 1;\n var returnCurrentActiveName = ((activeName === 'FrozenLeftHeader' || (activeName === 'Movableheader'\n && frozenMode === 'Right')) && notPrev) || ((activeName === 'FrozenRightContent' || (activeName === 'MovableContent'\n && frozenMode === 'Left')) && notNext);\n if (returnCurrentActiveName) {\n this.setActiveByName(currentActiveName);\n this.active.matrix.current = currentCellIndex;\n }\n else {\n var frozenLeftRightPrev = frozenMode === 'Left-Right' && !next;\n var frozenLeftRightNext = frozenMode === 'Left-Right' && next;\n var frozenLeftNotNext = frozenMode === 'Left' && notNext;\n var frozenLeftNext = frozenMode === 'Left' && next;\n var frozenRightPrev = frozenMode === 'Right' && !next;\n var frozenRightNotPrev = frozenMode === 'Right' && notPrev;\n var content = (activeName === 'Movableheader' && frozenLeftNotNext) || (activeName === 'FrozenRightHeader'\n && notNext) || (activeName === 'FrozenLeftContent' && !notPrev) || (activeName === 'MovableContent'\n && !frozenRightNotPrev) || activeName === 'FrozenRightContent';\n var frozenContent = ((activeName === 'Movableheader' || activeName === 'MovableContent')\n && !frozenLeftRightNext) || ((activeName === 'FrozenRightHeader' || activeName === 'FrozenRightContent')\n && frozenLeftRightNext);\n var frozenRightContent = ((activeName === 'FrozenLeftHeader' || activeName === 'FrozenLeftContent')\n && frozenLeftRightPrev) || ((activeName === 'Movableheader' || activeName === 'MovableContent')\n && frozenLeftRightNext);\n this.setActive(content, frozenContent, frozenRightContent);\n var nextIndex = (activeName === 'Movableheader' && frozenLeftNotNext)\n || (activeName === 'FrozenRightHeader' && notNext) ? 0\n : ((activeName === 'Movableheader' || activeName === 'MovableContent') && frozenLeftNext)\n || ((activeName === 'FrozenRightHeader' || activeName === 'FrozenRightContent') && next) ? rowInc\n : (activeName === 'FrozenLeftContent' && notPrev)\n || (activeName === 'MovableContent' && frozenRightNotPrev) ? this.active.matrix.matrix.length - 1\n : ((activeName === 'FrozenLeftHeader' || activeName === 'FrozenLeftContent') && !next)\n || ((activeName === 'Movableheader' || activeName === 'MovableContent') && frozenRightPrev) ? rowDec\n : rowIndex;\n this.setFrozenBatchEditCell(currentActiveName, currentCellIndex, next, nextIndex);\n }\n }\n };\n FocusStrategy.prototype.getActiveName = function () {\n var activeName;\n if (this.active) {\n var activeTable = this.active.getTable();\n activeName = parentsUntil(activeTable, 'e-frozen-left-header') ? 'FrozenLeftHeader' :\n parentsUntil(activeTable, 'e-movableheader') ? 'Movableheader' :\n parentsUntil(activeTable, 'e-frozen-right-header') ? 'FrozenRightHeader' :\n parentsUntil(activeTable, 'e-frozen-left-content') ? 'FrozenLeftContent' :\n parentsUntil(activeTable, 'e-movablecontent') ? 'MovableContent' :\n parentsUntil(activeTable, 'e-frozen-right-content') ? 'FrozenRightContent' :\n undefined;\n }\n return activeName;\n };\n FocusStrategy.prototype.setActiveByName = function (activeName) {\n var frozenMode = this.parent.getFrozenMode();\n switch (activeName) {\n case 'FrozenLeftHeader':\n this.setActive(false, true);\n break;\n case 'Movableheader':\n this.setActive(false);\n break;\n case 'FrozenRightHeader':\n this.setActive(false, frozenMode === 'Right' ? true : false, frozenMode === 'Right' ? false : true);\n break;\n case 'FrozenLeftContent':\n this.setActive(true, true);\n break;\n case 'MovableContent':\n this.setActive(true);\n break;\n case 'FrozenRightContent':\n this.setActive(true, frozenMode === 'Right' ? true : false, frozenMode === 'Right' ? false : true);\n break;\n }\n };\n FocusStrategy.prototype.setLastContentCellActive = function () {\n var lastContentCellIndex = [this.active.matrix.matrix.length - 1,\n this.active.matrix.matrix[this.active.matrix.matrix.length - 1].length - 1];\n if (this.active.matrix.matrix[lastContentCellIndex[0]][lastContentCellIndex[1]] === 0) {\n lastContentCellIndex = findCellIndex(this.active.matrix.matrix, lastContentCellIndex, false);\n }\n this.active.matrix.current = lastContentCellIndex;\n };\n FocusStrategy.prototype.focusOutFromChildGrid = function (e) {\n var parentTable = parentsUntil(this.parent.element, 'e-table');\n var parentGrid = parentsUntil(parentTable, 'e-grid').ej2_instances[0];\n var parentCell = parentsUntil(this.parent.element, 'e-detailcell');\n var uid = parentsUntil(this.parent.element, 'e-detailrow').getAttribute('data-uid');\n var parentRows = [].slice.call(parentGrid.getContentTable().rows);\n var parentRowIndex = parentRows.map(function (m) { return m.getAttribute('data-uid'); }).indexOf(uid);\n if (e.action === 'tab' && parentRowIndex >= parentRows.length - 1) {\n return;\n }\n removeClass([this.parent.element], ['e-focus']);\n removeClass([parentCell], ['e-focused']);\n parentCell.tabIndex = -1;\n e.preventDefault();\n var nextFocusCell;\n parentGrid.focusModule.removeFocus();\n if (e.action === 'shiftTab') {\n var previousRow = parentRows[parentRowIndex - 1];\n var rowCells = previousRow.cells;\n for (var i = rowCells.length - 1; i >= 0; i--) {\n nextFocusCell = rowCells[parseInt(i.toString(), 10)];\n if (!nextFocusCell.classList.contains('e-hide')) {\n parentGrid.focusModule.active.matrix.current = [parentRowIndex - 1, i];\n break;\n }\n }\n }\n else {\n nextFocusCell = parentRows[parentRowIndex + 1].cells[0];\n parentGrid.focusModule.active.matrix.current = [parentRowIndex + 1, 0];\n }\n parentGrid.focusModule.currentInfo.element = nextFocusCell;\n parentGrid.focusModule.currentInfo.elementToFocus = nextFocusCell;\n addClass([nextFocusCell], ['e-focused', 'e-focus']);\n nextFocusCell.tabIndex = 0;\n nextFocusCell.focus();\n };\n FocusStrategy.prototype.focusOutFromHeader = function (e) {\n this.removeFocus();\n if (this.parent.toolbar || this.parent.toolbarTemplate) {\n var toolbarElement = this.parent.toolbarModule.element;\n var focusableToolbarItems = this.parent.toolbarModule.getFocusableToolbarItems();\n e.preventDefault();\n if (focusableToolbarItems.length > 0) {\n focusableToolbarItems[focusableToolbarItems.length - 1].querySelector('.e-toolbar-item-focus,.e-btn,.e-input').focus();\n }\n else {\n toolbarElement.focus();\n }\n return;\n }\n if (this.parent.allowGrouping && this.parent.groupSettings.showDropArea) {\n var groupModule = this.parent.groupModule;\n var focusableGroupedItems = groupModule.getFocusableGroupedItems();\n e.preventDefault();\n if (focusableGroupedItems.length > 0) {\n focusableGroupedItems[focusableGroupedItems.length - 1].focus();\n }\n else {\n groupModule.element.focus();\n }\n return;\n }\n if (this.parent.element.classList.contains('e-childgrid')) {\n e.preventDefault();\n this.parent.element.focus();\n }\n };\n FocusStrategy.prototype.allowToPaging = function (e) {\n if (this.parent.editSettings.mode === 'Batch' && this.parent.editSettings.allowAdding && e.keyCode !== 40) {\n return false;\n }\n return true;\n };\n FocusStrategy.prototype.skipOn = function (e) {\n var target = e.target;\n if (!target) {\n return false;\n }\n if (this.currentInfo.skipAction) {\n this.clearIndicator();\n return true;\n }\n if (['pageUp', 'pageDown', 'altDownArrow'].indexOf(e.action) > -1) {\n this.clearIndicator();\n return true;\n }\n if (this.parent.allowGrouping) {\n var focusableGroupedItems = this.parent.groupModule.getFocusableGroupedItems();\n if (parentsUntil(e.target, 'e-groupheadercell')\n && !((e.target === focusableGroupedItems[0] && e.action === 'shiftTab')\n || (e.target === focusableGroupedItems[focusableGroupedItems.length - 1] && e.action === 'tab'))) {\n return true;\n }\n }\n if (this.parent.toolbar || this.parent.toolbarTemplate) {\n var toolbarElement = this.parent.toolbarModule.element;\n var focusableToolbarItems = toolbarElement\n .querySelectorAll('.e-toolbar-item:not(.e-overlay):not(.e-hidden)');\n if (parentsUntil(e.target, 'e-toolbar-item')\n && !(focusableToolbarItems.length > 0 && ((parentsUntil(e.target, 'e-toolbar-item') === focusableToolbarItems[0] && e.action === 'shiftTab')\n || (parentsUntil(e.target, 'e-toolbar-item') === focusableToolbarItems[focusableToolbarItems.length - 1] && e.action === 'tab')))) {\n return true;\n }\n }\n var th = closest(target, 'th') && !closest(target, 'th').tabIndex;\n if (e.target.classList.contains('e-filterbaroperator') && (e.keyCode === 13 || e.keyCode === 27)) {\n var inputTarget = closest(e.target, '.e-filterbarcell');\n inputTarget.querySelector('input').focus();\n }\n if (th && closest(document.activeElement, '.e-filterbarcell') !== null) {\n this.removeFocus();\n }\n var filterCell = closest(document.activeElement, '.e-filterbarcell') !== null;\n if (this.parent.enableHeaderFocus && filterCell) {\n var matrix = this.active.matrix;\n var current = matrix.current;\n filterCell = matrix.matrix[current[0]].lastIndexOf(1) !== current[1];\n }\n return (e.action === 'delete'\n || (this.parent.editSettings.mode !== 'Batch' && (this.parent.isEdit || ['insert', 'f2'].indexOf(e.action) > -1))\n || ((filterCell && this.parent.enableHeaderFocus) || (filterCell && e.action !== 'tab' && e.action !== 'shiftTab') ||\n closest(document.activeElement, '#' + this.parent.element.id + '_searchbar') !== null\n && ['enter', 'leftArrow', 'rightArrow',\n 'shiftLeft', 'shiftRight', 'ctrlPlusA'].indexOf(e.action) > -1)\n || (closest(target, '.' + literals.gridContent) === null && closest(target, '.' + literals.gridHeader) === null\n && !(e.target === this.parent.element || parentsUntil(e.target, 'e-toolbar')\n || parentsUntil(e.target, 'e-groupdroparea')))\n || (e.action === 'space' && (!target.classList.contains(literals.gridChkBox) && closest(target, '.' + literals.gridChkBox) === null\n && closest(target, '.e-headerchkcelldiv') === null))) || closest(target, '.e-filter-popup') !== null;\n };\n FocusStrategy.prototype.focusVirtualElement = function (e) {\n var _this = this;\n if (this.parent.enableVirtualization || this.parent.enableInfiniteScrolling) {\n var data = { virtualData: {}, isAdd: false, isCancel: false };\n this.parent.notify(event.getVirtualData, data);\n var isKeyFocus = this.actions.some(function (value) { return value === _this.activeKey; });\n var isSelected = this.parent.contentModule ?\n this.parent.contentModule.selectedRowIndex > -1 : false;\n if (data.isAdd || Object.keys(data.virtualData).length || isKeyFocus || data.isCancel || isSelected) {\n this.parent.notify(event.resetVirtualFocus, { isCancel: false });\n data.isCancel = false;\n this.parent.contentModule.selectedRowIndex = -1;\n if (isKeyFocus) {\n this.activeKey = this.empty;\n this.parent.notify('virtaul-key-handler', e);\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.currentInfo.elementToFocus.focus({ preventScroll: true });\n }\n else {\n if (this.isVirtualScroll || this.isInfiniteScroll) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.currentInfo.elementToFocus.focus({ preventScroll: true });\n }\n else {\n this.currentInfo.elementToFocus.focus();\n }\n }\n }\n this.isVirtualScroll = this.isInfiniteScroll = false;\n };\n FocusStrategy.prototype.getFocusedElement = function () {\n return this.currentInfo.elementToFocus;\n };\n FocusStrategy.prototype.getContent = function () {\n return this.active || this.content;\n };\n FocusStrategy.prototype.setActive = function (content, isFrozen, isFrozenRight) {\n this.active = content ? isFrozen ? this.fContent : isFrozenRight ? this.frContent : this.content :\n isFrozen ? this.fHeader : isFrozenRight ? this.frHeader : this.header;\n };\n FocusStrategy.prototype.setFocusedElement = function (element, e) {\n var _this = this;\n this.currentInfo.elementToFocus = element;\n setTimeout(function () {\n if (!isNullOrUndefined(_this.currentInfo.elementToFocus)) {\n if (_this.parent.enableVirtualization || _this.parent.enableInfiniteScrolling) {\n _this.focusVirtualElement(e);\n }\n else {\n _this.currentInfo.elementToFocus.focus();\n }\n }\n }, 0);\n };\n FocusStrategy.prototype.focus = function (e) {\n this.parent.notify(event.virtaulCellFocus, e);\n this.removeFocus();\n this.addFocus(this.getContent().getFocusInfo(), e);\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n FocusStrategy.prototype.removeFocus = function (e) {\n if (!this.currentInfo.element) {\n return;\n }\n removeClass([this.currentInfo.element, this.currentInfo.elementToFocus], ['e-focused', 'e-focus']);\n this.currentInfo.element.tabIndex = -1;\n };\n /**\n * @returns {void}\n * @hidden */\n FocusStrategy.prototype.addOutline = function () {\n var info = this.getContent().getFocusInfo();\n if (info.element) {\n addClass([info.element], ['e-focused']);\n addClass([info.elementToFocus], ['e-focus']);\n }\n };\n /**\n * @returns {void}\n * @hidden */\n FocusStrategy.prototype.focusHeader = function () {\n this.setActive(false, this.parent.isFrozenGrid());\n this.resetFocus();\n };\n /**\n * @returns {void}\n * @hidden */\n FocusStrategy.prototype.focusContent = function () {\n this.setActive(true, this.parent.isFrozenGrid());\n this.resetFocus();\n };\n FocusStrategy.prototype.resetFocus = function () {\n var current = this.getContent().matrix.get(0, -1, [0, 1], null, this.getContent().validator());\n this.getContent().matrix.select(current[0], current[1]);\n this.focus();\n };\n FocusStrategy.prototype.addFocus = function (info, e) {\n this.currentInfo = info;\n this.currentInfo.outline = info.outline && !isNullOrUndefined(e);\n if (this.isInfiniteScroll) {\n this.currentInfo.outline = true;\n }\n if (!info.element) {\n return;\n }\n var isFocused = info.elementToFocus.classList.contains('e-focus');\n if (isFocused) {\n return;\n }\n if (this.currentInfo.outline) {\n addClass([info.element], ['e-focused']);\n }\n addClass([info.elementToFocus], ['e-focus']);\n info.element.tabIndex = 0;\n if (!isFocused) {\n this.setFocusedElement(info.elementToFocus, e);\n }\n this.parent.notify(event.cellFocused, {\n element: info.elementToFocus,\n parent: info.element,\n indexes: this.getContent().matrix.current,\n byKey: !isNullOrUndefined(e),\n byClick: isNullOrUndefined(e),\n keyArgs: e,\n isJump: this.swap.swap,\n container: this.getContent().getInfo(e),\n outline: !isNullOrUndefined(e),\n swapInfo: this.swap\n });\n var _a = this.getContent().matrix.current, rowIndex = _a[0], cellIndex = _a[1];\n this.prevIndexes = { rowIndex: rowIndex, cellIndex: cellIndex };\n this.focusedColumnUid = this.parent.getColumnByIndex(cellIndex).uid;\n this.focusByClick = false;\n };\n FocusStrategy.prototype.refreshMatrix = function (content) {\n var _this = this;\n return function (e) {\n if (content && (e.args && e.args.isFrozen) && !_this.fContent) {\n _this.fContent = new FixedContentFocus(_this.parent);\n }\n else if (content && !_this.frContent && (e.args && e.args.renderFrozenRightContent)) {\n _this.frContent = new FixedRightContentFocus(_this.parent);\n }\n else if (content && !_this.content) {\n _this.content = new ContentFocus(_this.parent);\n }\n if (!content && (e.args && e.args.isFrozen) && !_this.fHeader) {\n _this.fHeader = new FixedHeaderFocus(_this.parent);\n }\n else if (!content && (e.args && e.args.renderFrozenRightContent) && !_this.frHeader) {\n _this.frHeader = new FixedRightHeaderFocus(_this.parent);\n }\n else if (!content && !_this.header) {\n _this.header = new HeaderFocus(_this.parent);\n }\n var cFocus = content ? (e.args && e.args.isFrozen) ? _this.fContent : (e.args && e.args.renderFrozenRightContent)\n ? _this.frContent : _this.content : (e.args && e.args.isFrozen) ? _this.fHeader : (e.args && e.args.renderFrozenRightContent)\n ? _this.frHeader : _this.header;\n var rows = content ? e.rows.slice(_this.parent.frozenRows) : e.rows;\n var updateRow = content ? e.rows.slice(0, _this.parent.frozenRows) : e.rows;\n if (_this.parent.isCollapseStateEnabled() && content) {\n rows = rows.filter(function (x) { return x.visible !== false; });\n }\n var isRowTemplate = !isNullOrUndefined(_this.parent.rowTemplate);\n var matrix = cFocus.matrix.generate(updateRow, cFocus.selector, isRowTemplate);\n if (e.name === 'batchAdd' && _this.parent.isFrozenGrid()) {\n var mRows = _this.parent.getMovableRowsObject().slice(_this.parent.frozenRows);\n var newMovableRows = mRows.map(function (row) { return row.clone(); });\n var newFrozenRows = rows.map(function (row) { return row.clone(); });\n _this.fContent.matrix.generate(newFrozenRows, _this.fContent.selector, isRowTemplate);\n _this.content.matrix.generate(newMovableRows, _this.content.selector, isRowTemplate);\n if (_this.parent.getFrozenMode() === literals.leftRight) {\n var frRows = _this.parent.getFrozenRightRowsObject().slice(_this.parent.frozenRows);\n var newfrRows = frRows.map(function (row) { return row.clone(); });\n _this.frContent.matrix.generate(newfrRows, _this.frContent.selector, isRowTemplate);\n }\n }\n else {\n cFocus.matrix.generate(rows, cFocus.selector, isRowTemplate);\n }\n if (!(_this.parent.isFrozenGrid() && ((e.args && (e.args.requestType === 'sorting'\n || e.args.requestType === 'batchsave' || e.args.requestType === 'paging'))\n || e.name === 'batchAdd' || e.name === 'batchCancel'))) {\n cFocus.generateRows(updateRow, {\n matrix: matrix, handlerInstance: (e.args && e.args.isFrozen) ? _this.fHeader\n : (e.args && e.args.renderFrozenRightContent) ? _this.frHeader : _this.header\n });\n }\n if (!Browser.isDevice && e && e.args) {\n if (!_this.focusByClick && e.args.requestType === 'paging' && !_this.parent.pagerModule.pagerObj.checkPagerHasFocus()) {\n _this.skipFocus = false;\n _this.parent.element.focus();\n }\n if (e.args.requestType === 'grouping') {\n _this.skipFocus = true;\n }\n }\n if (e && e.args && e.args.requestType === 'virtualscroll') {\n if (_this.currentInfo.uid) {\n var index_1;\n var bool = e.rows.some(function (row, i) {\n index_1 = i;\n return row.uid === _this.currentInfo.uid;\n });\n if (bool) {\n _this.content.matrix.current[0] = index_1;\n _this.content.matrix.current[1] = _this.parent.getColumnIndexByUid(_this.focusedColumnUid) || 0;\n var focusElement = _this.getContent().getFocusInfo().elementToFocus;\n if (focusElement) {\n var cellPosition = focusElement.getBoundingClientRect();\n var gridPosition = _this.parent.element.getBoundingClientRect();\n if (cellPosition.top >= 0 && cellPosition.left >= 0 &&\n cellPosition.right <= Math.min(gridPosition.right, window.innerWidth ||\n document.documentElement.clientWidth) &&\n cellPosition.bottom <= Math.min(gridPosition.bottom, window.innerHeight ||\n document.documentElement.clientHeight)) {\n _this.isVirtualScroll = true;\n _this.focus();\n }\n }\n }\n }\n else if (e.args.focusElement && e.args.focusElement.classList.contains('e-filtertext')) {\n var focusElement = _this.parent.element.querySelector('#' + e.args.focusElement.id);\n if (focusElement) {\n focusElement.focus();\n }\n }\n }\n if (e && e.args && e.args.requestType === 'infiniteScroll') {\n _this.isInfiniteScroll = true;\n }\n };\n };\n FocusStrategy.prototype.addEventListener = function () {\n var _this = this;\n if (this.parent.isDestroyed) {\n return;\n }\n EventHandler.add(this.parent.element, 'mousedown', this.focusCheck, this);\n EventHandler.add(this.parent.element, 'touchstart', this.focusCheck, this);\n EventHandler.add(this.parent.element, 'focus', this.onFocus, this);\n this.parent.element.addEventListener('focus', this.passiveHandler = function (e) { return _this.passiveFocus(e); }, true);\n EventHandler.add(this.parent.element, 'focusout', this.onBlur, this);\n this.evtHandlers = [{ event: event.keyPressed, handler: this.onKeyPress },\n { event: event.click, handler: this.onClick },\n { event: event.contentReady, handler: this.refMatrix },\n { event: event.partialRefresh, handler: this.refMatrix },\n { event: event.refreshExpandandCollapse, handler: this.refMatrix },\n { event: event.headerRefreshed, handler: this.refreshMatrix() },\n { event: event.closeEdit, handler: this.restoreFocus },\n { event: event.restoreFocus, handler: this.restoreFocus },\n { event: 'start-edit', handler: this.clearIndicator },\n { event: 'start-add', handler: this.clearIndicator },\n { event: 'sorting-complete', handler: this.restoreFocus },\n { event: 'filtering-complete', handler: this.filterfocus },\n { event: 'grouping-complete', handler: this.restoreFocusWithAction },\n { event: 'ungrouping-complete', handler: this.restoreFocusWithAction },\n { event: event.batchAdd, handler: this.refMatrix },\n { event: event.batchCancel, handler: this.refMatrix },\n { event: event.batchDelete, handler: this.refMatrix },\n { event: event.detailDataBound, handler: this.refMatrix },\n { event: event.onEmpty, handler: this.refMatrix },\n { event: event.cellFocused, handler: this.internalCellFocus }];\n addRemoveEventListener(this.parent, this.evtHandlers, true, this);\n };\n FocusStrategy.prototype.filterfocus = function () {\n if (this.parent.filterSettings.type !== 'FilterBar') {\n this.restoreFocus();\n }\n };\n FocusStrategy.prototype.removeEventListener = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n EventHandler.remove(this.parent.element, 'mousedown', this.focusCheck);\n EventHandler.remove(this.parent.element, 'touchstart', this.focusCheck);\n EventHandler.remove(this.parent.element, 'focus', this.onFocus);\n EventHandler.remove(this.parent.element, 'focusout', this.onBlur);\n this.parent.element.removeEventListener('focus', this.passiveHandler, true);\n addRemoveEventListener(this.parent, this.evtHandlers, false);\n };\n FocusStrategy.prototype.destroy = function () {\n this.removeEventListener();\n };\n FocusStrategy.prototype.restoreFocus = function () {\n var groupModule = this.parent.groupModule;\n if (this.parent.allowGrouping && groupModule && (groupModule.groupSortFocus || groupModule.groupTextFocus)) {\n groupModule.groupSortFocus = false;\n groupModule.groupTextFocus = false;\n return;\n }\n this.firstHeaderCellClick = true;\n this.addFocus(this.getContent().getFocusInfo());\n };\n FocusStrategy.prototype.restoreFocusWithAction = function (e) {\n if (!this.parent.enableInfiniteScrolling) {\n var matrix = this.getContent().matrix;\n var current = matrix.current;\n switch (e.requestType) {\n case 'grouping':\n case 'ungrouping':\n current[1] = current.length &&\n !this.parent.groupSettings.showGroupedColumn && !isNullOrUndefined(matrix.matrix[current[0]]) ?\n matrix.matrix[current[0]].indexOf(1) : e.requestType === 'grouping' ? current[1] + 1 : current[1] - 1;\n break;\n }\n this.getContent().matrix.current = current;\n var groupModule = this.parent.groupModule;\n if (this.parent.allowGrouping && groupModule && groupModule.groupCancelFocus) {\n var focusableGroupedItems = groupModule.getFocusableGroupedItems();\n if (focusableGroupedItems.length) {\n if (focusableGroupedItems[0].parentElement.getAttribute('ej-mappingname') === e.columnName) {\n focusableGroupedItems[3].focus();\n }\n else {\n focusableGroupedItems[0].focus();\n }\n }\n else {\n groupModule.element.focus();\n }\n groupModule.groupCancelFocus = false;\n return;\n }\n this.addFocus(this.getContent().getFocusInfo());\n }\n };\n FocusStrategy.prototype.clearOutline = function () {\n this.getContent().matrix.current = this.getContent().matrix.get(0, -1, [0, 1], 'downArrow', this.getContent().validator());\n this.clearIndicator();\n };\n FocusStrategy.prototype.clearIndicator = function () {\n if (!this.currentInfo.element || !this.currentInfo.elementToFocus) {\n return;\n }\n removeClass([this.currentInfo.element, this.currentInfo.elementToFocus], ['e-focus', 'e-focused']);\n };\n FocusStrategy.prototype.getPrevIndexes = function () {\n var forget = this.forget;\n this.forget = false;\n return forget || !Object.keys(this.prevIndexes).length ? { rowIndex: null, cellIndex: null } : this.prevIndexes;\n };\n FocusStrategy.prototype.forgetPrevious = function () {\n this.forget = true;\n };\n FocusStrategy.prototype.setActiveByKey = function (action, active) {\n var _this = this;\n if (!this.parent.isFrozenGrid() && this.parent.frozenRows === 0) {\n return;\n }\n // eslint-disable-next-line prefer-const\n var info;\n var actions = {\n 'home': function () { return ({ toHeader: !info.isContent, toFrozen: true }); },\n 'end': function () { return ({ toHeader: !info.isContent, toFrozen: false }); },\n 'ctrlHome': function () { return ({ toHeader: true, toFrozen: _this.parent.isFrozenGrid() }); },\n 'ctrlEnd': function () { return ({ toHeader: false, toFrozen: false }); }\n };\n if (!(action in actions)) {\n return;\n }\n info = active.getInfo();\n var swap = actions[\"\" + action]();\n this.setActive(!swap.toHeader, swap.toFrozen);\n this.getContent().matrix.current = active.matrix.current;\n };\n FocusStrategy.prototype.internalCellFocus = function (e) {\n if (!(e.byKey && e.container.isContent && e.keyArgs.action === 'enter'\n && (e.parent.classList.contains('e-detailcell') ||\n e.parent.classList.contains('e-unboundcell')))) {\n return;\n }\n this.clearIndicator();\n var focusEle = this.getContent().getFocusable(this.getFocusedElement());\n this.setFocusedElement(focusEle);\n this.currentInfo.skipAction = true;\n };\n return FocusStrategy;\n}());\nexport { FocusStrategy };\n/**\n * Create matrix from row collection which act as mental model for cell navigation\n *\n * @hidden\n */\nvar Matrix = /** @class */ (function () {\n function Matrix() {\n this.matrix = [];\n this.current = [];\n }\n Matrix.prototype.set = function (rowIndex, columnIndex, allow) {\n rowIndex = Math.max(0, Math.min(rowIndex, this.rows));\n columnIndex = Math.max(0, Math.min(columnIndex, this.columns));\n this.matrix[parseInt(rowIndex.toString(), 10)] = this.matrix[parseInt(rowIndex.toString(), 10)] || [];\n this.matrix[parseInt(rowIndex.toString(), 10)][parseInt(columnIndex.toString(), 10)] = allow ? 1 : 0;\n };\n Matrix.prototype.get = function (rowIndex, columnIndex, navigator, action, validator) {\n var tmp = columnIndex;\n if (rowIndex + navigator[0] < 0) {\n return [rowIndex, columnIndex];\n }\n rowIndex = Math.max(0, Math.min(rowIndex + navigator[0], this.rows));\n var emptyTable = true;\n if (isNullOrUndefined(this.matrix[parseInt(rowIndex.toString(), 10)])) {\n return null;\n }\n columnIndex = Math.max(0, Math.min(columnIndex + navigator[1], this.matrix[parseInt(rowIndex.toString(), 10)].length - 1));\n if (tmp + navigator[1] > this.matrix[parseInt(rowIndex.toString(), 10)].length - 1\n && validator(rowIndex, columnIndex, action)) {\n return [rowIndex, tmp];\n }\n var first = this.first(this.matrix[parseInt(rowIndex.toString(), 10)], columnIndex, navigator, true, action);\n columnIndex = first === null ? tmp : first;\n var val = getValue(rowIndex + \".\" + columnIndex, this.matrix);\n if (rowIndex === this.rows && (action === 'downArrow' || action === 'enter')) {\n navigator[0] = -1;\n }\n if (first === null) {\n for (var i = 0; i < this.rows; i++) {\n if (this.matrix[parseInt(i.toString(), 10)].some(function (v) { return v === 1; })) {\n emptyTable = false;\n break;\n }\n }\n if (emptyTable) {\n rowIndex = this.current.length ? this.current[0] : 0;\n return [rowIndex, columnIndex];\n }\n }\n return this.inValid(val) || !validator(rowIndex, columnIndex, action) ?\n this.get(rowIndex, tmp, navigator, action, validator) : [rowIndex, columnIndex];\n };\n Matrix.prototype.first = function (vector, index, navigator, moveTo, action) {\n if (((index < 0 || index === vector.length) && this.inValid(vector[parseInt(index.toString(), 10)])\n && (action !== 'upArrow' && action !== 'downArrow')) || !vector.some(function (v) { return v === 1; })) {\n return null;\n }\n return !this.inValid(vector[parseInt(index.toString(), 10)]) ? index :\n this.first(vector, (['upArrow', 'downArrow', 'shiftUp', 'shiftDown'].indexOf(action) !== -1) ? moveTo ? 0 : ++index : index + navigator[1], navigator, false, action);\n };\n Matrix.prototype.select = function (rowIndex, columnIndex) {\n rowIndex = Math.max(0, Math.min(rowIndex, this.rows));\n columnIndex = Math.max(0, Math.min(columnIndex, this.matrix[parseInt(rowIndex.toString(), 10)].length - 1));\n this.current = [rowIndex, columnIndex];\n };\n Matrix.prototype.generate = function (rows, selector, isRowTemplate) {\n this.rows = rows.length - 1;\n this.matrix = [];\n for (var i = 0; i < rows.length; i++) {\n var cells = rows[parseInt(i.toString(), 10)].cells.filter(function (c) { return c.isSpanned !== true; });\n this.columns = Math.max(cells.length - 1, this.columns | 0);\n var incrementNumber = 0;\n for (var j = 0; j < cells.length; j++) {\n if (cells[parseInt(j.toString(), 10)].column && cells[parseInt(j.toString(), 10)].column.columns) {\n incrementNumber = this.columnsCount(cells[parseInt(j.toString(), 10)].column.columns, incrementNumber);\n }\n else {\n incrementNumber++;\n }\n this.set(i, j, rows[parseInt(i.toString(), 10)].visible === false ?\n false : selector(rows[parseInt(i.toString(), 10)], cells[parseInt(j.toString(), 10)], isRowTemplate));\n }\n this.columns = Math.max(incrementNumber - 1, this.columns | 0);\n }\n return this.matrix;\n };\n Matrix.prototype.columnsCount = function (rowColumns, currentColumnCount) {\n var columns = rowColumns;\n var incrementNumber = currentColumnCount;\n for (var i = 0; i < columns.length; i++) {\n if (columns[parseInt(i.toString(), 10)].columns) {\n incrementNumber = this.columnsCount(columns[parseInt(i.toString(), 10)].columns, incrementNumber);\n }\n else {\n incrementNumber++;\n }\n }\n return incrementNumber;\n };\n Matrix.prototype.inValid = function (value) {\n return value === 0 || value === undefined;\n };\n return Matrix;\n}());\nexport { Matrix };\n/**\n * @hidden\n */\nvar ContentFocus = /** @class */ (function () {\n function ContentFocus(parent) {\n var _this = this;\n this.matrix = new Matrix();\n this.lastIdxCell = false;\n this.parent = parent;\n this.keyActions = {\n 'rightArrow': [0, 1],\n 'tab': [0, 1],\n 'leftArrow': [0, -1],\n 'shiftTab': [0, -1],\n 'upArrow': [-1, 0],\n 'downArrow': [1, 0],\n 'shiftUp': [-1, 0],\n 'shiftDown': [1, 0],\n 'shiftRight': [0, 1],\n 'shiftLeft': [0, -1],\n 'enter': [1, 0],\n 'shiftEnter': [-1, 0]\n };\n this.indexesByKey = function (action) {\n var opt = {\n 'home': [_this.matrix.current[0], -1, 0, 1],\n 'end': [_this.matrix.current[0], _this.matrix.columns + 1, 0, -1],\n 'ctrlHome': [0, -1, 0, 1],\n 'ctrlEnd': [_this.matrix.rows, _this.matrix.columns + 1, 0, -1]\n };\n return opt[\"\" + action] || null;\n };\n }\n ContentFocus.prototype.getTable = function () {\n return (this.parent.isFrozenGrid() ?\n this.parent.getContent().querySelector('.e-movablecontent .e-table') :\n this.parent.getContentTable());\n };\n ContentFocus.prototype.onKeyPress = function (e) {\n var navigator = this.keyActions[e.action];\n var current = this.getCurrentFromAction(e.action, navigator, e.action in this.keyActions, e);\n if (!current) {\n return;\n }\n if (((['tab', 'shiftTab'].indexOf(e.action) > -1 && this.matrix.current || []).toString() === current.toString())\n || (this.parent.allowPaging && !this.parent.pagerModule.pagerObj.checkPagerHasFocus()\n && this.matrix.current[0] === this.matrix.rows && ((this.parent.editSettings.mode === 'Batch'\n && this.parent.editSettings.allowAdding && e.keyCode === 40) || (e.keyCode === 40)))) {\n if (current.toString() === [this.matrix.rows, this.matrix.columns].toString() ||\n current.toString() === [0, 0].toString() || (this.matrix.current[0] === this.matrix.rows &&\n this.matrix.current.toString() === current.toString()) || (this.parent.allowGrouping &&\n this.parent.infiniteScrollSettings.enableCache && current.toString() === [0, 1].toString())) {\n return false;\n }\n else {\n current = this.editNextRow(current[0], current[1], e.action);\n }\n }\n this.matrix.select(current[0], current[1]);\n };\n ContentFocus.prototype.editNextRow = function (rowIndex, cellIndex, action) {\n var gObj = this.parent;\n var editNextRow = gObj.editSettings.allowNextRowEdit && (gObj.isEdit || gObj.isLastCellPrimaryKey);\n var visibleIndex = gObj.getColumnIndexByField(gObj.getVisibleColumns()[0].field);\n var cell = this.getTable().rows[parseInt(rowIndex.toString(), 10)].cells[parseInt(cellIndex.toString(), 10)];\n if (action === 'tab' && editNextRow) {\n rowIndex++;\n var index = (this.getTable().rows[parseInt(rowIndex.toString(), 10)].getElementsByClassName('e-indentcell').length +\n this.getTable().rows[parseInt(rowIndex.toString(), 10)].getElementsByClassName('e-detailrowcollapse').length);\n cellIndex = visibleIndex + index;\n }\n if (action === 'shiftTab' && editNextRow) {\n rowIndex--;\n cellIndex = gObj.getColumnIndexByField(gObj.getVisibleColumns()[gObj.getVisibleColumns().length - 1].field);\n }\n return !cell.classList.contains(literals.rowCell) && !cell.classList.contains('e-headercell') &&\n !cell.classList.contains('e-groupcaption') && !cell.classList.contains('e-filterbarcell') ?\n this.editNextRow(rowIndex, cellIndex, action) : [rowIndex, cellIndex];\n };\n ContentFocus.prototype.getCurrentFromAction = function (action, navigator, isPresent, e) {\n if (navigator === void 0) { navigator = [0, 0]; }\n if (!isPresent && !this.indexesByKey(action) || (this.matrix.current.length === 0)) {\n return null;\n }\n if (!this.shouldFocusChange(e)) {\n return this.matrix.current;\n }\n // eslint-disable-next-line\n var _a = this.indexesByKey(action) || this.matrix.current.concat(navigator), rowIndex = _a[0], cellIndex = _a[1], rN = _a[2], cN = _a[3];\n if (this.parent.allowGrouping && this.parent.groupSettings.columns.length && this.parent.aggregates.length && action === 'enter') {\n for (var i = rowIndex; i < this.matrix.matrix.length; i++) {\n var row = this.getTable().rows[i + 1];\n if (row && row.cells[parseInt(cellIndex.toString(), 10)] && row.cells[parseInt(cellIndex.toString(), 10)].classList.contains('e-rowcell')) {\n return [i + 1, cellIndex];\n }\n if (i === this.matrix.matrix.length - 1) {\n return [rowIndex, cellIndex];\n }\n }\n }\n if (action === 'ctrlEnd' || action === 'end') {\n var lastContentCellIndex = [this.matrix.matrix.length - 1,\n this.matrix.matrix[this.matrix.matrix.length - 1].length - 1];\n if (action === 'end') {\n lastContentCellIndex = [rowIndex, this.matrix.matrix[parseInt(rowIndex.toString(), 10)].length - 1];\n }\n if (this.matrix.matrix[lastContentCellIndex[0]][lastContentCellIndex[1]] === 0) {\n lastContentCellIndex = findCellIndex(this.matrix.matrix, lastContentCellIndex, false);\n }\n rowIndex = lastContentCellIndex[0];\n cellIndex = lastContentCellIndex[1] + 1;\n }\n var current = this.matrix.get(rowIndex, cellIndex, [rN, cN], action, this.validator());\n return current;\n };\n ContentFocus.prototype.onClick = function (e, force) {\n var target = e.target;\n this.target = target;\n target = (target.classList.contains(literals.rowCell) ? target : closest(target, 'td'));\n target = target ? target : closest(e.target, 'td.e-detailrowcollapse')\n || closest(e.target, 'td.e-detailrowexpand');\n target = closest(e.target, 'td.e-detailcell') ?\n isNullOrUndefined(closest(closest(e.target, '.e-grid'), 'td.e-detailcell')) ? null : target : target;\n target = target && closest(target, 'table').classList.contains(literals.table) ? target : null;\n if (!target) {\n return false;\n }\n var _a = [target.parentElement.rowIndex, target.cellIndex], rowIndex = _a[0], cellIndex = _a[1];\n var _b = this.matrix.current, oRowIndex = _b[0], oCellIndex = _b[1];\n var val = getValue(rowIndex + \".\" + cellIndex, this.matrix.matrix);\n if (this.matrix.inValid(val) || (!force && oRowIndex === rowIndex && oCellIndex === cellIndex) ||\n (!parentsUntil(e.target, literals.rowCell) && !parentsUntil(e.target, 'e-groupcaption')\n && !parentsUntil(e.target, 'e-recordpluscollapse') && !parentsUntil(e.target, 'e-recordplusexpand')\n && !parentsUntil(e.target, 'e-detailrowcollapse') && !parentsUntil(e.target, 'e-detailrowexpand')\n && !parentsUntil(e.target, 'e-templatecell'))) {\n return false;\n }\n this.matrix.select(rowIndex, cellIndex);\n };\n ContentFocus.prototype.getFocusInfo = function () {\n var info = {};\n var _a = this.matrix.current, _b = _a[0], rowIndex = _b === void 0 ? 0 : _b, _c = _a[1], cellIndex = _c === void 0 ? 0 : _c;\n this.matrix.current = [rowIndex, cellIndex];\n info.element = !isNullOrUndefined(this.getTable().rows[parseInt(rowIndex.toString(), 10)]) ?\n this.getTable().rows[parseInt(rowIndex.toString(), 10)].cells[parseInt(cellIndex.toString(), 10)] : null;\n if (!info.element) {\n return info;\n }\n info.elementToFocus = !info.element.classList.contains('e-unboundcell') && !info.element.classList.contains('e-detailcell')\n ? this.getFocusable(info.element) : info.element;\n info.elementToFocus = info.element.classList.contains('e-detailcell') && info.element.querySelector('.e-childgrid')\n ? info.element.querySelector('.e-childgrid') : info.elementToFocus;\n info.outline = true;\n info.uid = info.element.parentElement.getAttribute('data-uid');\n return info;\n };\n ContentFocus.prototype.getFocusable = function (element) {\n var query = 'button, [href], input:not([type=\"hidden\"]), select, textarea, [tabindex]:not([tabindex=\"-1\"])';\n var isTemplate = !isNullOrUndefined(closest(element, '.e-templatecell'));\n if (this.parent.isEdit) {\n query = 'input:not([type=\"hidden\"]), select:not([aria-hidden=\"true\"]), textarea';\n }\n var child = [].slice.call(element.querySelectorAll(query));\n /* Select the first focusable child element\n * if no child found then select the cell itself.\n * if Grid is in editable state, check for editable control inside child.\n */\n return child.length ? isTemplate && child.length > 1 ? this.target ? this.target : element : child[0] : element;\n };\n ContentFocus.prototype.selector = function (row, cell, isRowTemplate) {\n var types = [CellType.Expand, CellType.GroupCaption, CellType.CaptionSummary, CellType.GroupSummary];\n return ((row.isDataRow && cell.visible && (cell.isDataCell || cell.isTemplate))\n || (row.isDataRow && cell.cellType === CellType.DetailExpand && isNullOrUndefined(cell.visible))\n || (!row.isDataRow && types.indexOf(cell.cellType) > -1\n && !((cell.cellType === CellType.GroupSummary || cell.cellType === CellType.CaptionSummary)\n && !(cell.isDataCell && cell.visible)))\n || (cell.column && cell.visible && cell.column.type === 'checkbox')\n || (cell.cellType === CellType.CommandColumn)\n || (row.isDataRow && isRowTemplate))\n && !(row.edit === 'delete' && row.isDirty);\n };\n ContentFocus.prototype.nextRowFocusValidate = function (index) {\n var lastIndex = index;\n for (var i = index, len = this.matrix.rows; i <= len; i++) {\n if (this.matrix.matrix[parseInt(index.toString(), 10)].indexOf(1) === -1) {\n index = index + 1;\n }\n else {\n return index;\n }\n }\n this.lastIdxCell = true;\n return lastIndex;\n };\n ContentFocus.prototype.previousRowFocusValidate = function (index) {\n var firstIndex = index;\n for (var i = index, len = 0; i >= len; i--) {\n if (this.matrix.matrix[parseInt(index.toString(), 10)].indexOf(1) === -1) {\n index = index - 1;\n if (index < 0) {\n this.lastIdxCell = true;\n return firstIndex;\n }\n }\n else {\n return index;\n }\n }\n return firstIndex;\n };\n ContentFocus.prototype.jump = function (action, current) {\n var frozenSwap = (this.parent.getFrozenLeftCount() &&\n ((action === 'leftArrow' || action === 'shiftTab') && current[1] === 0))\n || (current[0] < this.matrix.matrix.length - 1 && action === 'tab' && this.parent.getFrozenMode() === 'Left'\n && current[1] === this.matrix.matrix[current[0]].lastIndexOf(1));\n var right = ((action === 'rightArrow' || action === 'tab')\n && current[1] === this.matrix.matrix[current[0]].lastIndexOf(1))\n || (action === 'shiftTab' && this.parent.getFrozenMode() === 'Right'\n && current[1] === this.matrix.matrix[current[0]].indexOf(1));\n var frSwap = this.parent.getFrozenMode() === literals.leftRight && right;\n if (this.parent.getFrozenMode() === 'Right') {\n frozenSwap = right;\n }\n this.lastIdxCell = false;\n var enterFrozen = this.parent.frozenRows !== 0 && action === 'shiftEnter';\n var headerSwap = ((action === 'upArrow' || enterFrozen) && current[0] === 0)\n || (action === 'shiftTab' && this.parent.getFrozenMode() === 'Right' && current[0] === 0\n && current[1] === this.matrix.matrix[current[0]].indexOf(1));\n if (!this.parent.isFrozenGrid() && action === 'tab' &&\n current[1] === this.matrix.matrix[current[0]].lastIndexOf(1) && this.matrix.matrix.length - 1 !== current[0]) {\n this.matrix.current[0] = this.nextRowFocusValidate(this.matrix.current[0] + 1);\n this.matrix.current[1] = -1;\n frozenSwap = this.parent.isFrozenGrid();\n }\n if (!this.parent.isFrozenGrid() && action === 'shiftTab' &&\n current[0] !== 0 && this.matrix.matrix[current[0]].indexOf(1) === current[1]) {\n this.matrix.current[0] = this.previousRowFocusValidate(this.matrix.current[0] - 1);\n this.matrix.current[1] = this.matrix.matrix[current[0]].length;\n }\n var isHeaderFocus = false;\n var row = document.activeElement.parentElement;\n if ((this.parent.enableVirtualization || this.parent.infiniteScrollSettings.enableCache)\n && row.classList.contains(literals.row)) {\n var rowIndex = parseInt(row.getAttribute(literals.dataRowIndex), 10);\n isHeaderFocus = rowIndex > 0;\n }\n if (action === 'shiftTab' && this.parent.getFrozenMode() === 'Right' && current[0] === 0\n && current[1] === this.matrix.matrix[current[0]].indexOf(1)) {\n this.matrix.current[0] = -1;\n }\n var info = {\n swap: !isHeaderFocus ? ((action === 'upArrow' || enterFrozen) && current[0] === 0) || frozenSwap || frSwap : false,\n toHeader: headerSwap,\n toFrozen: frozenSwap,\n toFrozenRight: frSwap\n };\n return info;\n };\n ContentFocus.prototype.getNextCurrent = function (previous, swap, active, action) {\n if (previous === void 0) { previous = []; }\n var current = [];\n if (this.parent.getFrozenMode() === 'Right' || this.parent.getFrozenMode() === literals.leftRight) {\n if (action === 'leftArrow' || action === 'shiftTab') {\n current[0] = previous[0];\n current[1] = this.matrix.matrix[current[0]].length;\n }\n if (this.parent.getFrozenMode() === literals.leftRight && (action === 'rightArrow' || action === 'tab')) {\n current[0] = previous[0];\n current[1] = -1;\n }\n if (this.parent.getFrozenMode() === 'Right' && action === 'tab') {\n current[0] = previous[0] + 1;\n current[1] = -1;\n }\n }\n else if (action === 'rightArrow' || action === 'tab') {\n current[0] = previous[0];\n current[1] = -1;\n }\n if (action === 'downArrow' || action === 'enter') {\n current[0] = -1;\n current[1] = previous[1];\n }\n if (action === 'shiftTab' && this.parent.getFrozenMode() === 'Left') {\n current[0] = previous[0] - 1;\n current[1] = this.matrix.matrix[current[0]].length;\n }\n return current;\n };\n ContentFocus.prototype.generateRows = function (rows, optionals) {\n var _a;\n var matrix = optionals.matrix, handlerInstance = optionals.handlerInstance;\n var len = handlerInstance.matrix.matrix.length;\n var defaultLen = this.parent.allowFiltering && this.parent.filterSettings.type === 'FilterBar' ? len + 1 : len;\n handlerInstance.matrix.matrix = handlerInstance.matrix.matrix.slice(0, defaultLen); //Header matrix update.\n handlerInstance.matrix.rows = defaultLen;\n (_a = handlerInstance.matrix.matrix).push.apply(_a, matrix);\n handlerInstance.matrix.rows += matrix.length;\n };\n ContentFocus.prototype.getInfo = function (e) {\n var info = this.getFocusInfo();\n var _a = this.matrix.current, rIndex = _a[0], cIndex = _a[1];\n var isData = info.element.classList.contains(literals.rowCell);\n var isSelectable = isData || (e && e.action !== 'enter' && (info.element.classList.contains('e-detailrowcollapse')\n || info.element.classList.contains('e-detailrowexpand')));\n // eslint-disable-next-line\n var _b = [Math.min(parseInt(info.element.parentElement.getAttribute(literals.dataRowIndex), 10), rIndex),\n Math.min(parseInt(info.element.getAttribute(literals.dataColIndex), 10), cIndex)], rowIndex = _b[0], cellIndex = _b[1];\n if (this.parent.allowGrouping && this.parent.groupSettings.enableLazyLoading && isData) {\n rowIndex = this.parent.getDataRows().indexOf(info.element.parentElement);\n }\n return { isContent: true, isDataCell: isData, indexes: [rowIndex, cellIndex], isSelectable: isSelectable };\n };\n ContentFocus.prototype.validator = function () {\n var table = this.getTable();\n return function (rowIndex, cellIndex, action) {\n if (!isNullOrUndefined(table.rows[parseInt(rowIndex.toString(), 10)])) {\n var cell = void 0;\n cellIndex = table.querySelector('.e-emptyrow') ? 0 : cellIndex;\n if (table.rows[parseInt(rowIndex.toString(), 10)].cells[0].classList.contains('e-editcell')) {\n cell = table.rows[parseInt(rowIndex.toString(), 10)].cells[0].querySelectorAll('td')[parseInt(cellIndex.toString(), 10)];\n }\n else {\n cell = table.rows[parseInt(rowIndex.toString(), 10)].cells[parseInt(cellIndex.toString(), 10)];\n }\n var isCellWidth = cell.getBoundingClientRect().width !== 0;\n if (action === 'enter' || action === 'shiftEnter') {\n return isCellWidth && cell.classList.contains(literals.rowCell);\n }\n if ((action === 'shiftUp' || action === 'shiftDown') && cell.classList.contains(literals.rowCell)) {\n return isCellWidth;\n }\n else if (action !== 'shiftUp' && action !== 'shiftDown') {\n return isCellWidth;\n }\n }\n return false;\n };\n };\n ContentFocus.prototype.shouldFocusChange = function (e) {\n var _a = this.matrix.current, _b = _a[0], rIndex = _b === void 0 ? -1 : _b, _c = _a[1], cIndex = _c === void 0 ? -1 : _c;\n if (rIndex < 0 || cIndex < 0) {\n return true;\n }\n var cell = getValue(rIndex + \".cells.\" + cIndex, this.getTable().rows);\n if (!cell) {\n return true;\n }\n return e.action === 'enter' || e.action === 'shiftEnter' ?\n cell.classList.contains(literals.rowCell) && !cell.classList.contains('e-unboundcell')\n || cell.classList.contains('e-editedbatchcell') && !cell.classList.contains('e-detailcell') : true;\n };\n ContentFocus.prototype.getGridSeletion = function () {\n return this.parent.allowSelection && this.parent.selectionSettings.allowColumnSelection;\n };\n return ContentFocus;\n}());\nexport { ContentFocus };\n/**\n * @hidden\n */\nvar HeaderFocus = /** @class */ (function (_super) {\n __extends(HeaderFocus, _super);\n function HeaderFocus(parent) {\n return _super.call(this, parent) || this;\n }\n HeaderFocus.prototype.getTable = function () {\n return (this.parent.isFrozenGrid() ?\n this.parent.getHeaderContent().querySelector('.e-movableheader .e-table') :\n this.parent.getHeaderTable());\n };\n HeaderFocus.prototype.onClick = function (e) {\n var target = e.target;\n this.target = target;\n target = (target.classList.contains('e-headercell') ? target : closest(target, 'th'));\n if (!target && this.parent.frozenRows !== 0) {\n target = (e.target.classList.contains(literals.rowCell) ? e.target :\n closest(e.target, 'td'));\n }\n if (e.target.classList.contains('e-columnheader') ||\n e.target.querySelector('.e-stackedheadercell')) {\n return false;\n }\n if (!target) {\n return;\n }\n var _a = [target.parentElement.rowIndex, target.cellIndex], rowIndex = _a[0], cellIndex = _a[1];\n var val = getValue(rowIndex + \".\" + cellIndex, this.matrix.matrix);\n if (this.matrix.inValid(val)) {\n return false;\n }\n this.matrix.select(target.parentElement.rowIndex, target.cellIndex);\n };\n HeaderFocus.prototype.getFocusInfo = function () {\n var info = {};\n var _a = this.matrix.current, _b = _a[0], rowIndex = _b === void 0 ? 0 : _b, _c = _a[1], cellIndex = _c === void 0 ? 0 : _c;\n info.element = this.getTable().rows[parseInt(rowIndex.toString(), 10)].cells[parseInt(cellIndex.toString(), 10)];\n if (!isNullOrUndefined(info.element)) {\n info.elementToFocus = this.getFocusable(info.element);\n info.outline = !info.element.classList.contains('e-filterbarcell');\n }\n return info;\n };\n HeaderFocus.prototype.selector = function (row, cell) {\n return (cell.visible && (cell.column.field !== undefined || cell.isTemplate || !isNullOrUndefined(cell.column.template)\n || !isNullOrUndefined(cell.column.commands))) || cell.column.type === 'checkbox' || cell.cellType === CellType.StackedHeader;\n };\n HeaderFocus.prototype.jump = function (action, current) {\n var frozenSwap = (this.parent.getFrozenLeftCount() &&\n (action === 'leftArrow' || (action === 'shiftLeft' && this.getGridSeletion()) || action === 'shiftTab') && (current[1] === 0\n || current[1] === this.matrix.matrix[current[0]].indexOf(1))) || (this.parent.getFrozenMode() === 'Left' && action === 'tab'\n && current[1] === this.matrix.matrix[current[0]].lastIndexOf(1));\n var right = ((action === 'rightArrow' || (action === 'shiftRight' && this.getGridSeletion())\n || action === 'tab') && (current[1] === this.matrix.columns || current[1] === this.matrix.matrix[current[0]].lastIndexOf(1)))\n || (current[0] > 0 && action === 'shiftTab' && this.parent.getFrozenMode() === 'Right'\n && current[1] === this.matrix.matrix[current[0]].indexOf(1));\n var frSwap = this.parent.getFrozenMode() === literals.leftRight && right;\n if (this.parent.getFrozenMode() === 'Right') {\n frozenSwap = right;\n }\n var enterFrozen = this.parent.frozenRows !== 0 && action === 'enter';\n var isLastCell;\n var lastRow;\n var headerSwap = frozenSwap && !(this.parent.getFrozenMode() === 'Left' && action === 'tab'\n && current[0] === this.matrix.matrix.length - 1) || frSwap;\n var fMatrix = this.parent.focusModule.fHeader && this.parent.focusModule.fHeader.matrix.matrix;\n var isPresent = fMatrix && !isNullOrUndefined(fMatrix[current[0]]);\n if (this.parent.enableHeaderFocus && action === 'tab') {\n lastRow = this.matrix.matrix.length - 1 === current[0];\n isLastCell = current[1] === this.matrix.matrix[current[0]].lastIndexOf(1);\n if (isLastCell) {\n if (!lastRow) {\n this.matrix.current[0] = this.matrix.current[0] + 1;\n }\n else {\n this.matrix.current[0] = 0;\n }\n this.matrix.current[1] = -1;\n }\n if (this.parent.isFrozenGrid() && lastRow && isLastCell) {\n frozenSwap = true;\n headerSwap = false;\n }\n }\n if (action === 'tab' && this.parent.getFrozenMode() === 'Left' && current[0] === this.matrix.matrix.length - 1\n && current[1] === this.matrix.matrix[current[0]].lastIndexOf(1)) {\n this.matrix.current[0] = -1;\n }\n return {\n swap: ((action === 'downArrow' || enterFrozen) && current[0] === this.matrix.matrix.length - 1) ||\n (isPresent && (frozenSwap || frSwap)) || (action === 'tab' && lastRow && isLastCell),\n toHeader: headerSwap,\n toFrozen: frozenSwap,\n toFrozenRight: frSwap\n };\n };\n HeaderFocus.prototype.getNextCurrent = function (previous, swap, active, action) {\n if (previous === void 0) { previous = []; }\n var current1 = [];\n if (this.parent.getFrozenMode() === 'Right' || this.parent.getFrozenMode() === literals.leftRight) {\n if (action === 'leftArrow' || (action === 'shiftLeft' && this.getGridSeletion()) || action === 'shiftTab') {\n current1[0] = previous[0];\n current1[1] = this.matrix.matrix[current1[0]].length;\n }\n if (this.parent.getFrozenMode() === literals.leftRight\n && (action === 'rightArrow' || (action === 'shiftRight' && this.getGridSeletion()) || action === 'tab')) {\n current1[0] = previous[0];\n current1[1] = -1;\n }\n }\n else if (action === 'rightArrow' || (action === 'shiftRight' && this.getGridSeletion()) || action === 'tab') {\n current1[0] = previous[0];\n current1[1] = -1;\n }\n if (action === 'upArrow' || action === 'shiftEnter') {\n current1[0] = this.matrix.matrix.length;\n current1[1] = previous[1];\n }\n if (this.parent.getFrozenMode() === 'Left' && action === 'shiftTab') {\n current1[0] = previous[0] === -1 ? this.matrix.matrix.length - 1 : previous[0] - 1;\n current1[1] = this.matrix.matrix[current1[0]].length;\n }\n if (this.parent.getFrozenMode() === 'Right' && action === 'tab') {\n current1[0] = previous[0] + 1;\n current1[1] = -1;\n }\n return current1;\n };\n HeaderFocus.prototype.generateRows = function (rows) {\n var length = this.matrix.matrix.length;\n if (this.parent.allowFiltering && this.parent.filterSettings.type === 'FilterBar') {\n this.matrix.rows = ++this.matrix.rows;\n var cells = rows[0].cells;\n var incrementNumber = 0;\n var headerTable = this.getHeaderType() === 'FixedHeaderFocus' && this.parent.getFrozenMode() !== 'Right' ? literals.frozenLeft :\n this.getHeaderType() === 'FixedHeaderFocus' || this.getHeaderType() === 'FixedRightHeaderFocus' ? literals.frozenRight : 'movable';\n for (var i = 0; i < cells.length; i++) {\n if (cells[parseInt(i.toString(), 10)].column && cells[parseInt(i.toString(), 10)].column.columns) {\n incrementNumber = this.checkFilterColumn(cells[parseInt(i.toString(), 10)].column.columns, length, incrementNumber, headerTable);\n }\n else {\n if (!this.parent.isFrozenGrid() || (this.parent.isFrozenGrid()\n && cells[parseInt(i.toString(), 10)].column.freezeTable === headerTable)) {\n this.matrix.set(length, incrementNumber, cells[parseInt(i.toString(), 10)].visible && cells[parseInt(i.toString(), 10)].column.allowFiltering !== false);\n incrementNumber++;\n }\n }\n }\n }\n };\n HeaderFocus.prototype.checkFilterColumn = function (rowColumns, rowIndex, columnIndex, headerTable) {\n var columns = rowColumns;\n var incrementNumber = columnIndex;\n for (var i = 0; i < columns.length; i++) {\n if (columns[parseInt(i.toString(), 10)].columns) {\n incrementNumber = this.checkFilterColumn(columns[parseInt(i.toString(), 10)].columns, rowIndex, incrementNumber, headerTable);\n }\n else {\n if (!this.parent.isFrozenGrid() || (this.parent.isFrozenGrid()\n && columns[parseInt(i.toString(), 10)].freezeTable === headerTable)) {\n this.matrix.set(rowIndex, incrementNumber, columns[parseInt(i.toString(), 10)].visible && columns[parseInt(i.toString(), 10)].allowFiltering !== false);\n incrementNumber++;\n }\n }\n }\n return incrementNumber;\n };\n HeaderFocus.prototype.getInfo = function (e) {\n return extend(_super.prototype.getInfo.call(this, e), { isContent: false, isHeader: true });\n };\n HeaderFocus.prototype.validator = function () {\n return function () { return true; };\n };\n HeaderFocus.prototype.shouldFocusChange = function (e) {\n var _a = this.matrix.current, rowIndex = _a[0], columnIndex = _a[1];\n if (rowIndex < 0 || columnIndex < 0) {\n return true;\n }\n var cell = getValue(rowIndex + \".cells.\" + columnIndex, this.getTable().rows);\n if (!cell) {\n return true;\n }\n return e.action === 'enter' || e.action === 'altDownArrow' ? !cell.classList.contains('e-headercell') : true;\n };\n HeaderFocus.prototype.getHeaderType = function () {\n return 'HeaderFocus';\n };\n return HeaderFocus;\n}(ContentFocus));\nexport { HeaderFocus };\nvar FixedContentFocus = /** @class */ (function (_super) {\n __extends(FixedContentFocus, _super);\n function FixedContentFocus() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n FixedContentFocus.prototype.getTable = function () {\n return this.parent.getContent().querySelector('.e-frozencontent .e-table');\n };\n FixedContentFocus.prototype.jump = function (action, current) {\n var enterFrozen = this.parent.frozenRows !== 0 && action === 'shiftEnter';\n var toHeader = ((action === 'upArrow' || enterFrozen) && current[0] === 0)\n || (action === 'shiftTab' && this.parent.getFrozenMode() !== 'Right'\n && current[0] === 0 && current[1] === this.matrix.matrix[current[0]].indexOf(1));\n var fSwap = (action === 'upArrow' || enterFrozen) && current[0] === 0;\n var frSwap = action === 'shiftTab' && this.parent.getFrozenMode() === literals.leftRight\n && current[1] === this.matrix.matrix[current[0]].indexOf(1);\n if (this.parent.getFrozenMode() === 'Right') {\n var swap = toHeader || ((action === 'shiftTab' || action === 'leftArrow') && current[1] === 0)\n || (action === 'tab' && current[0] < this.matrix.matrix.length - 1\n && current[1] === this.matrix.matrix[current[0]].lastIndexOf(1));\n return { swap: swap, toHeader: toHeader, toFrozen: fSwap };\n }\n if (action === 'shiftTab' && current[0] === 0 && current[1] === this.matrix.matrix[current[0]].indexOf(1)) {\n this.matrix.current[0] = -1;\n }\n return {\n swap: toHeader || ((action === 'tab' || action === 'rightArrow')\n && current[1] === this.matrix.matrix[current[0]].lastIndexOf(1))\n || (action === 'shiftTab' && current[1] === this.matrix.matrix[current[0]].indexOf(1)),\n toHeader: toHeader,\n toFrozen: fSwap,\n toFrozenRight: frSwap\n };\n };\n FixedContentFocus.prototype.getNextCurrent = function (previous, swap, active, action) {\n if (previous === void 0) { previous = []; }\n var current2 = [];\n if (this.parent.getFrozenMode() === 'Right') {\n if (action === 'rightArrow' || action === 'tab') {\n current2[0] = previous[0];\n current2[1] = -1;\n }\n if (action === 'shiftTab') {\n current2[0] = previous[0] - 1;\n current2[1] = this.matrix.matrix[current2[0]].length;\n }\n }\n else {\n if (action === 'tab' && this.parent.enableHeaderFocus) {\n current2[0] = previous[0];\n current2[1] = -1;\n }\n if (action === 'leftArrow' || action === 'shiftTab') {\n current2[0] = previous[0];\n current2[1] = this.matrix.matrix[previous[0]].length;\n }\n }\n if (action === 'downArrow' || action === 'enter') {\n current2[0] = -1;\n current2[1] = previous[1];\n }\n if (action === 'tab' && this.parent.getFrozenMode() !== 'Right') {\n current2[0] = previous[0] + 1;\n current2[1] = -1;\n }\n return current2;\n };\n return FixedContentFocus;\n}(ContentFocus));\nexport { FixedContentFocus };\nvar FixedHeaderFocus = /** @class */ (function (_super) {\n __extends(FixedHeaderFocus, _super);\n function FixedHeaderFocus() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n FixedHeaderFocus.prototype.jump = function (action, current) {\n var enterFrozen = this.parent.frozenRows !== 0 && action === 'enter';\n var hMatrix = this.parent.focusModule.header && this.parent.focusModule.header.matrix.matrix;\n var isPresent = hMatrix && !isNullOrUndefined(hMatrix[current[0]]);\n if (this.parent.getFrozenMode() === 'Right') {\n var frSwap_1 = ((action === 'leftArrow' || (action === 'shiftLeft' && this.getGridSeletion())\n || action === 'shiftTab') && (current[1] === 0 || current[1] === this.matrix.matrix[current[0]].indexOf(1)))\n || (current[0] < this.matrix.matrix.length - 1 && action === 'tab'\n && current[1] === this.matrix.matrix[current[0]].lastIndexOf(1));\n var swap = ((action === 'downArrow' || enterFrozen || (action === 'tab'\n && current[1] === this.matrix.matrix[current[0]].lastIndexOf(1))) && current[0] === this.matrix.matrix.length - 1) ||\n (isPresent && frSwap_1);\n var toFrozen = (action === 'downArrow' || enterFrozen) && current[0] === this.matrix.matrix.length - 1;\n if (action === 'tab' && current[0] === this.matrix.matrix.length - 1\n && current[1] === this.matrix.matrix[current[0]].lastIndexOf(1)) {\n this.matrix.current[0] = -1;\n }\n return { swap: swap, toHeader: frSwap_1, toFrozen: toFrozen };\n }\n var frSwap = current[0] > 0 && action === 'shiftTab' && this.parent.getFrozenMode() === literals.leftRight\n && current[1] === this.matrix.matrix[current[0]].indexOf(1);\n return {\n swap: (action === 'downArrow' || enterFrozen) && current[0] === this.matrix.matrix.length - 1 || ((action === 'rightArrow' ||\n (action === 'shiftRight' && this.getGridSeletion()) || action === 'tab') &&\n (current[1] === this.matrix.columns || current[1] === this.matrix.matrix[current[0]].lastIndexOf(1)) && isPresent)\n || (action === 'tab' && current[1] === this.matrix.matrix[current[0]].lastIndexOf(1))\n || (action === 'shiftTab' && current[1] === this.matrix.matrix[current[0]].indexOf(1) && current[0] > 0),\n toHeader: (action === 'rightArrow' || (action === 'shiftRight' && this.getGridSeletion()) || action === 'tab') &&\n (current[1] === this.matrix.columns || current[1] === this.matrix.matrix[current[0]].lastIndexOf(1))\n || (action === 'tab' && current[1] === this.matrix.matrix[current[0]].lastIndexOf(1))\n || (action === 'shiftTab' && current[1] === this.matrix.matrix[current[0]].indexOf(1) && current[0] > 0),\n toFrozen: (action === 'downArrow' || enterFrozen) && current[0] === this.matrix.matrix.length - 1,\n toFrozenRight: frSwap\n };\n };\n FixedHeaderFocus.prototype.getTable = function () {\n return (this.parent.getHeaderContent().querySelector('.e-frozenheader .e-table'));\n };\n FixedHeaderFocus.prototype.getNextCurrent = function (previous, swap, active, action) {\n if (previous === void 0) { previous = []; }\n var current3 = [];\n if (this.parent.getFrozenMode() === 'Right') {\n if (action === 'rightArrow' || (action === 'shiftRight' && this.getGridSeletion()) || action === 'tab') {\n current3[0] = previous[0];\n current3[1] = -1;\n }\n if (action === 'shiftTab') {\n current3[0] = previous[0] === -1 ? this.matrix.matrix.length - 1 : previous[0] - 1;\n current3[1] = this.matrix.matrix[current3[0]].length;\n }\n }\n else {\n if (action === 'leftArrow' || (action === 'shiftLeft' && this.getGridSeletion()) || action === 'shiftTab') {\n current3[0] = previous[0];\n current3[1] = this.matrix.matrix[current3[0]].length;\n }\n }\n if (action === 'upArrow' || action === 'shiftEnter') {\n current3[0] = this.matrix.matrix.length;\n current3[1] = previous[1];\n }\n if (action === 'tab' && this.parent.getFrozenMode() !== 'Right') {\n current3[0] = previous[0] + 1;\n current3[1] = -1;\n }\n return current3;\n };\n FixedHeaderFocus.prototype.getHeaderType = function () {\n return 'FixedHeaderFocus';\n };\n return FixedHeaderFocus;\n}(HeaderFocus));\nexport { FixedHeaderFocus };\n/** @hidden */\nvar SearchBox = /** @class */ (function () {\n function SearchBox(searchBox) {\n this.searchBox = searchBox;\n }\n SearchBox.prototype.searchFocus = function (args) {\n args.target.parentElement.classList.add('e-input-focus');\n if (args.target.classList.contains('e-input') && args.target.classList.contains('e-search') && args.target.value) {\n var sIcon = args.target.parentElement.querySelector('.e-sicon');\n sIcon.classList.add('e-clear-icon');\n sIcon.setAttribute('title', 'Clear');\n (sIcon).style.cursor = 'pointer';\n }\n };\n SearchBox.prototype.searchBlur = function (args) {\n var relatedTarget = args.relatedTarget ? args.relatedTarget : null;\n if (relatedTarget && relatedTarget.classList.contains('e-sicon')) {\n if (relatedTarget.classList.contains('e-clear-icon')) {\n args.target.parentElement.classList.remove('e-input-focus');\n }\n }\n else {\n args.target.parentElement.classList.remove('e-input-focus');\n }\n if (args.target.classList.contains('e-search') && relatedTarget && !(relatedTarget.classList.contains('e-sicon e-clear-icon'))\n && !(relatedTarget.classList.contains('e-sicon'))) {\n var sIcon = args.target.parentElement.querySelector('.e-sicon');\n sIcon.classList.remove('e-clear-icon');\n sIcon.removeAttribute('title');\n sIcon.style.cursor = 'default';\n }\n };\n SearchBox.prototype.wireEvent = function () {\n if (this.searchBox) {\n EventHandler.add(this.searchBox, 'focus', this.searchFocus, this);\n EventHandler.add(this.searchBox, 'blur', this.searchBlur, this);\n }\n };\n SearchBox.prototype.unWireEvent = function () {\n if (this.searchBox) {\n EventHandler.remove(this.searchBox, 'focus', this.searchFocus);\n EventHandler.remove(this.searchBox, 'blur', this.searchBlur);\n }\n };\n return SearchBox;\n}());\nexport { SearchBox };\nvar FixedRightContentFocus = /** @class */ (function (_super) {\n __extends(FixedRightContentFocus, _super);\n function FixedRightContentFocus() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n FixedRightContentFocus.prototype.getTable = function () {\n return this.parent.getContent().querySelector('.e-frozen-right-content .e-table');\n };\n FixedRightContentFocus.prototype.jump = function (action, current) {\n var enterFrozen = this.parent.frozenRows !== 0 && action === 'shiftEnter';\n var toHeader = (action === 'upArrow' || enterFrozen) && current[0] === 0;\n var toFrozenSwap = this.parent.getFrozenMode() === literals.leftRight && action === 'tab'\n && current[1] === this.matrix.matrix[current[0]].lastIndexOf(1);\n return {\n swap: toHeader || ((action === 'shiftTab' || action === 'leftArrow') && current[1] === 0)\n || (action === 'tab' && current[0] < this.matrix.matrix.length - 1\n && current[1] === this.matrix.matrix[current[0]].lastIndexOf(1)),\n toHeader: toHeader,\n toFrozenRight: toHeader,\n toFrozen: toFrozenSwap\n };\n };\n FixedRightContentFocus.prototype.getNextCurrent = function (previous, swap, active, action) {\n if (previous === void 0) { previous = []; }\n var current2 = [];\n if (action === 'rightArrow' || action === 'tab') {\n current2[0] = previous[0];\n current2[1] = -1;\n }\n if (action === 'downArrow' || action === 'enter') {\n current2[0] = -1;\n current2[1] = previous[1];\n }\n if (action === 'shiftTab') {\n current2[0] = previous[0] - 1;\n current2[1] = this.matrix.matrix[current2[0]].length;\n }\n return current2;\n };\n return FixedRightContentFocus;\n}(ContentFocus));\nexport { FixedRightContentFocus };\nvar FixedRightHeaderFocus = /** @class */ (function (_super) {\n __extends(FixedRightHeaderFocus, _super);\n function FixedRightHeaderFocus() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n FixedRightHeaderFocus.prototype.jump = function (action, current) {\n var headerMat = this.parent.focusModule.header && this.parent.focusModule.header.matrix.matrix;\n var isPresent = headerMat && !isNullOrUndefined(headerMat[current[0]]);\n var enterFrozen = this.parent.frozenRows !== 0 && action === 'enter';\n var frozenSwap = (action === 'leftArrow' || (action === 'shiftLeft' && this.getGridSeletion())\n || action === 'shiftTab') && (current[1] === 0 || current[1] === this.matrix.matrix[current[0]].indexOf(1))\n || (current[0] < this.matrix.matrix.length - 1 && action === 'tab'\n && current[1] === this.matrix.matrix[current[0]].lastIndexOf(1));\n var swap = ((action === 'downArrow' || enterFrozen || (action === 'tab'\n && current[1] === this.matrix.matrix[current[0]].lastIndexOf(1))) && current[0] === this.matrix.matrix.length - 1) ||\n (isPresent && frozenSwap);\n var fSwap = action === 'tab' && current[1] === this.matrix.matrix[current[0]].lastIndexOf(1);\n var frSwap = (action === 'downArrow' || enterFrozen) && current[0] === this.matrix.matrix.length - 1;\n if (action === 'tab' && current[0] === this.matrix.matrix.length - 1\n && current[1] === this.matrix.matrix[current[0]].lastIndexOf(1)) {\n this.matrix.current[0] = -1;\n }\n return { swap: swap, toHeader: frozenSwap, toFrozen: fSwap, toFrozenRight: frSwap };\n };\n FixedRightHeaderFocus.prototype.getTable = function () {\n return (this.parent.getHeaderContent().querySelector('.e-frozen-right-header .e-table'));\n };\n FixedRightHeaderFocus.prototype.getNextCurrent = function (previous, swap, active, action) {\n if (previous === void 0) { previous = []; }\n var current3 = [];\n if (action === 'rightArrow' || (action === 'shiftRight' && this.getGridSeletion()) || action === 'tab') {\n current3[0] = previous[0];\n current3[1] = -1;\n }\n if (action === 'upArrow' || action === 'shiftEnter') {\n current3[0] = this.matrix.matrix.length;\n current3[1] = previous[1];\n }\n if (action === 'shiftTab') {\n current3[0] = previous[0] === -1 ? this.matrix.matrix.length - 1 : previous[0] - 1;\n current3[1] = this.matrix.matrix[current3[0]].length;\n }\n return current3;\n };\n FixedRightHeaderFocus.prototype.getHeaderType = function () {\n return 'FixedRightHeaderFocus';\n };\n return FixedRightHeaderFocus;\n}(HeaderFocus));\nexport { FixedRightHeaderFocus };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, ChildProperty } from '@syncfusion/ej2-base';\n/**\n * Configures the paging behavior of the Grid.\n */\nvar PageSettings = /** @class */ (function (_super) {\n __extends(PageSettings, _super);\n function PageSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(12)\n ], PageSettings.prototype, \"pageSize\", void 0);\n __decorate([\n Property(8)\n ], PageSettings.prototype, \"pageCount\", void 0);\n __decorate([\n Property(1)\n ], PageSettings.prototype, \"currentPage\", void 0);\n __decorate([\n Property()\n ], PageSettings.prototype, \"totalRecordsCount\", void 0);\n __decorate([\n Property(false)\n ], PageSettings.prototype, \"enableQueryString\", void 0);\n __decorate([\n Property(false)\n ], PageSettings.prototype, \"pageSizes\", void 0);\n __decorate([\n Property(null)\n ], PageSettings.prototype, \"template\", void 0);\n return PageSettings;\n}(ChildProperty));\nexport { PageSettings };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, ChildProperty } from '@syncfusion/ej2-base';\n/**\n * Configures the column chooser behavior of the Grid.\n */\nvar ColumnChooserSettings = /** @class */ (function (_super) {\n __extends(ColumnChooserSettings, _super);\n function ColumnChooserSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('startsWith')\n ], ColumnChooserSettings.prototype, \"operator\", void 0);\n __decorate([\n Property(false)\n ], ColumnChooserSettings.prototype, \"ignoreAccent\", void 0);\n return ColumnChooserSettings;\n}(ChildProperty));\nexport { ColumnChooserSettings };\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { Browser, EventHandler, createElement } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined, isUndefined, addClass, removeClass } from '@syncfusion/ej2-base';\nimport { remove, closest, select } from '@syncfusion/ej2-base';\nimport { Query } from '@syncfusion/ej2-data';\nimport { setCssInGridPopUp, getPosition, isGroupAdaptive, addRemoveActiveClasses, removeAddCboxClasses } from '../base/util';\nimport { getCellsByTableName, getCellByColAndRowIndex, parentsUntil, gridActionHandler } from '../base/util';\nimport * as events from '../base/constant';\nimport { RenderType } from '../base/enum';\nimport { iterateExtend, setChecked, isComplexField, getObject } from '../base/util';\nimport { addRemoveEventListener } from '../base/util';\nimport * as literals from '../base/string-literals';\n/**\n * The `Selection` module is used to handle cell and row selection.\n */\nvar Selection = /** @class */ (function () {\n /**\n * Constructor for the Grid selection module\n *\n * @param {IGrid} parent - specifies the IGrid\n * @param {SelectionSettings} selectionSettings - specifies the selectionsettings\n * @param {ServiceLocator} locator - specifies the ServiceLocator\n * @hidden\n */\n function Selection(parent, selectionSettings, locator) {\n //Internal letiables\n /**\n * @hidden\n */\n this.selectedRowIndexes = [];\n /**\n * @hidden\n */\n this.selectedRowCellIndexes = [];\n /**\n * @hidden\n */\n this.selectedRecords = [];\n /**\n * @hidden\n */\n this.preventFocus = false;\n /**\n * @hidden\n */\n this.selectedColumnsIndexes = [];\n this.checkBoxState = false;\n this.isMultiShiftRequest = false;\n this.isMultiCtrlRequest = false;\n this.enableSelectMultiTouch = false;\n this.clearRowCheck = false;\n this.selectRowCheck = false;\n this.selectedRowState = {};\n this.unSelectedRowState = {};\n this.totalRecordsCount = 0;\n this.chkAllCollec = [];\n this.isCheckedOnAdd = false;\n this.persistSelectedData = [];\n this.deSelectedData = [];\n this.isHdrSelectAllClicked = false;\n this.needColumnSelection = false;\n this.isCancelDeSelect = false;\n this.isPreventCellSelect = false;\n this.disableUI = false;\n this.isPersisted = false;\n this.cmdKeyPressed = false;\n this.cellselected = false;\n this.isMultiSelection = false;\n this.isAddRowsToSelection = false;\n this.initialRowSelection = false;\n this.isPrevRowSelection = false;\n this.isKeyAction = false;\n this.isRowDragSelected = false;\n this.isPartialSelection = false;\n this.rmtHdrChkbxClicked = false;\n this.isCheckboxReset = false;\n /**\n * @hidden\n */\n this.autoFillRLselection = true;\n this.bottom = '0 0 2px 0';\n this.top = '2px 0 0 0';\n /* eslint-disable */\n this.right_bottom = '0 2px 2px 0';\n this.bottom_left = '0 0 2px 2px';\n this.top_right = '2px 2px 0 0';\n this.top_left = '2px 0 0 2px';\n this.top_bottom = '2px 0 2px 0';\n this.top_right_bottom = '2px 2px 2px 0';\n this.top_bottom_left = '2px 0 2px 2px';\n this.top_right_left = '2px 2px 0 2px';\n this.right_bottom_left = '0 2px 2px 2px';\n this.all_border = '2px';\n this.parent = parent;\n this.selectionSettings = selectionSettings;\n this.factory = locator.getService('rendererFactory');\n this.focus = locator.getService('focus');\n this.addEventListener();\n this.wireEvents();\n }\n Selection.prototype.initializeSelection = function () {\n this.parent.log('selection_key_missing');\n this.render();\n };\n /**\n * The function used to trigger onActionBegin\n *\n * @param {Object} args - specifies the args\n * @param {string} type - specifies the type\n * @returns {void}\n * @hidden\n */\n Selection.prototype.onActionBegin = function (args, type) {\n this.parent.trigger(type, this.fDataUpdate(args));\n };\n Selection.prototype.fDataUpdate = function (args) {\n if (!this.isMultiSelection && (!isNullOrUndefined(args.cellIndex) || !isNullOrUndefined(args.rowIndex))) {\n var rowObj = this.getRowObj(isNullOrUndefined(args.rowIndex) ? isNullOrUndefined(args.cellIndex) ?\n this.currentIndex : args.cellIndex.rowIndex : args.rowIndex);\n args.foreignKeyData = rowObj.foreignKeyData;\n }\n return args;\n };\n /**\n * The function used to trigger onActionComplete\n *\n * @param {Object} args - specifies the args\n * @param {string} type - specifies the type\n * @returns {void}\n * @hidden\n */\n Selection.prototype.onActionComplete = function (args, type) {\n this.parent.trigger(type, this.fDataUpdate(args));\n this.isMultiSelection = false;\n };\n /**\n * For internal use only - Get the module name.\n *\n * @returns {string} returns the module name\n * @private\n */\n Selection.prototype.getModuleName = function () {\n return 'selection';\n };\n /**\n * To destroy the selection\n *\n * @returns {void}\n * @hidden\n */\n Selection.prototype.destroy = function () {\n var gridElement = this.parent.element;\n if (!gridElement || (!gridElement.querySelector('.' + literals.gridHeader) && !gridElement.querySelector('.' + literals.gridContent))) {\n return;\n }\n this.hidePopUp();\n this.clearSelection();\n this.removeEventListener();\n this.unWireEvents();\n EventHandler.remove(this.parent.getContent(), 'mousedown', this.mouseDownHandler);\n EventHandler.remove(this.parent.getHeaderContent(), 'mousedown', this.mouseDownHandler);\n };\n Selection.prototype.isEditing = function () {\n return (this.parent.editSettings.mode === 'Normal' || (this.parent.editSettings.mode === 'Batch' && this.parent.editModule &&\n this.parent.editModule.formObj && !this.parent.editModule.formObj.validate())) &&\n this.parent.isEdit && !this.parent.isPersistSelection;\n };\n Selection.prototype.getSelectedMovableRow = function (index) {\n var gObj = this.parent;\n if (gObj.isFrozenGrid() && this.parent.getContent().querySelector('.' + literals.movableContent)) {\n return gObj.getMovableRowByIndex(index);\n }\n return null;\n };\n Selection.prototype.getSelectedFrozenRightRow = function (index) {\n var gObj = this.parent;\n if (gObj.isFrozenGrid() && gObj.getFrozenMode() === literals.leftRight && gObj.getFrozenRightContent()) {\n return gObj.getFrozenRightRowByIndex(index);\n }\n return null;\n };\n Selection.prototype.getCurrentBatchRecordChanges = function () {\n var gObj = this.parent;\n if (gObj.editSettings.mode === 'Batch' && gObj.editModule) {\n var currentRecords = iterateExtend(this.parent.getCurrentViewRecords());\n currentRecords = gObj.editSettings.newRowPosition === 'Bottom' ?\n currentRecords.concat(this.parent.editModule.getBatchChanges()[literals.addedRecords]) :\n this.parent.editModule.getBatchChanges()[literals.addedRecords].concat(currentRecords);\n var deletedRecords = this.parent.editModule.getBatchChanges()[literals.deletedRecords];\n var primaryKey = this.parent.getPrimaryKeyFieldNames()[0];\n for (var i = 0; i < (deletedRecords.length); i++) {\n for (var j = 0; j < currentRecords.length; j++) {\n if (deletedRecords[parseInt(i.toString(), 10)][\"\" + primaryKey] === currentRecords[parseInt(j.toString(), 10)][\"\" + primaryKey]) {\n currentRecords.splice(j, 1);\n break;\n }\n }\n }\n return currentRecords;\n }\n else {\n return gObj.getCurrentViewRecords();\n }\n };\n /**\n * Selects a row by the given index.\n *\n * @param {number} index - Defines the row index.\n * @param {boolean} isToggle - If set to true, then it toggles the selection.\n * @returns {void}\n */\n Selection.prototype.selectRow = function (index, isToggle) {\n if (this.selectedRowIndexes.length && this.selectionSettings.enableSimpleMultiRowSelection) {\n this.addRowsToSelection([index]);\n return;\n }\n var gObj = this.parent;\n var selectedRow = gObj.getRowByIndex(index);\n var rowObj = selectedRow && gObj.getRowObjectFromUID(selectedRow.getAttribute('data-uid'));\n if (this.isPartialSelection && rowObj && rowObj.isDataRow && !rowObj.isSelectable) {\n return;\n }\n var selectedMovableRow = this.getSelectedMovableRow(index);\n var selectedFrozenRightRow = this.getSelectedFrozenRightRow(index);\n var selectData;\n var isRemoved = false;\n if (gObj.enableVirtualization && index > -1) {\n var e = { selectedIndex: index, isAvailable: true };\n this.parent.notify(events.selectVirtualRow, e);\n var frozenData = gObj.isFrozenGrid() ? gObj.contentModule.getRowObjectByIndex(index)\n : null;\n if (selectedRow && (gObj.getRowObjectFromUID(selectedRow.getAttribute('data-uid')) || frozenData)) {\n selectData = frozenData ? frozenData : gObj.getRowObjectFromUID(selectedRow.getAttribute('data-uid')).data;\n }\n else {\n if (e.isAvailable && !gObj.selectionSettings.persistSelection) {\n var prevSelectedData = this.parent.getSelectedRecords();\n if (prevSelectedData.length > 0) {\n this.clearRowSelection();\n }\n }\n return;\n }\n }\n else {\n selectData = this.getRowObj(index).data;\n }\n if (!this.isRowType() || !selectedRow || this.isEditing()) {\n // if (this.isEditing()) {\n // gObj.selectedRowIndex = index;\n // }\n return;\n }\n var isRowSelected = selectedRow.hasAttribute('aria-selected');\n this.activeTarget();\n isToggle = !isToggle ? isToggle :\n !this.selectedRowIndexes.length ? false :\n (this.selectedRowIndexes.length === 1 ? (this.isKeyAction && this.parent.isCheckBoxSelection ?\n false : index === this.selectedRowIndexes[0]) : false);\n this.isKeyAction = false;\n var args;\n var can = 'cancel';\n if (!isToggle) {\n args = {\n data: selectData, rowIndex: index, isCtrlPressed: this.isMultiCtrlRequest,\n isShiftPressed: this.isMultiShiftRequest, row: selectedRow,\n previousRow: gObj.getRowByIndex(this.prevRowIndex),\n previousRowIndex: this.prevRowIndex, target: this.actualTarget, cancel: false, isInteracted: this.isInteracted,\n isHeaderCheckboxClicked: this.isHeaderCheckboxClicked\n };\n args = this.addMovableArgs(args, selectedMovableRow, selectedFrozenRightRow);\n this.parent.trigger(events.rowSelecting, this.fDataUpdate(args), this.rowSelectingCallBack(args, isToggle, index, selectData, isRemoved, isRowSelected, can));\n }\n else {\n this.rowSelectingCallBack(args, isToggle, index, selectData, isRemoved, isRowSelected, can)(args);\n }\n };\n Selection.prototype.rowSelectingCallBack = function (args, isToggle, index, selectData, isRemoved, isRowSelected, can) {\n var _this = this;\n return function (args) {\n if (!isNullOrUndefined(args) && args[\"\" + can] === true) {\n _this.disableInteracted();\n return;\n }\n _this.index = index;\n _this.toggle = isToggle;\n _this.data = selectData;\n _this.removed = isRemoved;\n if (isRowSelected && _this.selectionSettings.persistSelection && !(_this.selectionSettings.checkboxMode === 'ResetOnRowClick')) {\n _this.clearSelectedRow(index);\n _this.selectRowCallBack();\n }\n else if (!isRowSelected && _this.selectionSettings.persistSelection &&\n _this.selectionSettings.checkboxMode !== 'ResetOnRowClick') {\n _this.selectRowCallBack();\n }\n if (_this.selectionSettings.checkboxMode === 'ResetOnRowClick') {\n _this.isCheckboxReset = true;\n _this.clearSelection();\n }\n if (!_this.selectionSettings.persistSelection || _this.selectionSettings.checkboxMode === 'ResetOnRowClick' ||\n (!_this.parent.isCheckBoxSelection && _this.selectionSettings.persistSelection)) {\n _this.selectRowCheck = true;\n _this.clearRow();\n }\n };\n };\n Selection.prototype.selectRowCallBack = function () {\n var gObj = this.parent;\n var args;\n var index = this.index;\n var isToggle = this.toggle;\n var selectData = this.data;\n var isRemoved = this.removed;\n var selectedRow = gObj.getRowByIndex(index);\n var selectedMovableRow = this.getSelectedMovableRow(index);\n var selectedFrozenRightRow = this.getSelectedFrozenRightRow(index);\n if (!isToggle && !isRemoved) {\n if (this.selectedRowIndexes.indexOf(index) <= -1) {\n this.updateRowSelection(selectedRow, index);\n this.selectMovableRow(selectedMovableRow, selectedFrozenRightRow, index);\n }\n this.selectRowIndex(index);\n }\n if (!isToggle) {\n args = {\n data: selectData, rowIndex: index,\n row: selectedRow, previousRow: gObj.getRowByIndex(this.prevRowIndex),\n previousRowIndex: this.prevRowIndex, target: this.actualTarget, isInteracted: this.isInteracted,\n isHeaderCheckBoxClicked: this.isHeaderCheckboxClicked, rowIndexes: index\n };\n args = this.addMovableArgs(args, selectedMovableRow, selectedFrozenRightRow);\n this.onActionComplete(args, events.rowSelected);\n }\n this.isInteracted = false;\n this.updateRowProps(index);\n };\n Selection.prototype.selectMovableRow = function (selectedMovableRow, selectedFrozenRightRow, index) {\n if (this.parent.isFrozenGrid()) {\n this.updateRowSelection(selectedMovableRow, index);\n if (this.parent.getFrozenMode() === literals.leftRight && selectedFrozenRightRow) {\n this.updateRowSelection(selectedFrozenRightRow, index);\n }\n }\n };\n Selection.prototype.addMovableArgs = function (targetObj, mRow, frRow) {\n if (this.parent.isFrozenGrid()) {\n var mObj = { mRow: mRow, previousMovRow: this.parent.getMovableRows()[this.prevRowIndex] };\n var frozenRightRow = 'frozenRightRow';\n var previousFrozenRightRow = 'previousFrozenRightRow';\n if (this.parent.getFrozenMode() === literals.leftRight && frRow) {\n mObj[\"\" + frozenRightRow] = frRow;\n mObj[\"\" + previousFrozenRightRow] = this.parent.getFrozenRightDataRows()[this.prevRowIndex];\n }\n targetObj = __assign({}, targetObj, mObj);\n }\n return targetObj;\n };\n /**\n * Selects a range of rows from start and end row indexes.\n *\n * @param {number} startIndex - Specifies the start row index.\n * @param {number} endIndex - Specifies the end row index.\n * @returns {void}\n */\n Selection.prototype.selectRowsByRange = function (startIndex, endIndex) {\n this.selectRows(this.getCollectionFromIndexes(startIndex, endIndex));\n this.selectRowIndex(endIndex);\n };\n Selection.prototype.selectedDataUpdate = function (selectedData, foreignKeyData, selectedRows, rowIndexes, selectableRowIndex) {\n for (var i = 0, len = rowIndexes.length; i < len; i++) {\n var currentRow = this.parent.getDataRows()[rowIndexes[parseInt(i.toString(), 10)]];\n if (this.parent.enableVirtualization) {\n currentRow = this.parent.getRowByIndex(rowIndexes[parseInt(i.toString(), 10)]);\n }\n var rowObj = this.getRowObj(currentRow);\n if (rowObj && rowObj.isDataRow && rowObj.isSelectable) {\n selectedData.push(rowObj.data);\n selectedRows.push(currentRow);\n foreignKeyData.push(rowObj.foreignKeyData);\n }\n else {\n if (this.isPartialSelection && selectableRowIndex) {\n selectableRowIndex.splice(selectableRowIndex.indexOf(rowIndexes[parseInt(i.toString(), 10)]), 1);\n }\n }\n }\n };\n /**\n * Selects a collection of rows by index.\n *\n * @param {number[]} rowIndexes - Specifies an array of row indexes.\n * @returns {void}\n */\n Selection.prototype.selectRows = function (rowIndexes) {\n var _this = this;\n var gObj = this.parent;\n var selectableRowIndex = rowIndexes.slice();\n var rowIndex = !this.isSingleSel() ? rowIndexes[0] : rowIndexes[rowIndexes.length - 1];\n this.isMultiSelection = true;\n var selectedRows = [];\n var foreignKeyData = [];\n var selectedMovableRow = this.getSelectedMovableRow(rowIndex);\n var selectedFrozenRightRow = this.getSelectedFrozenRightRow(rowIndex);\n var can = 'cancel';\n var selectedData = [];\n if (!this.isRowType() || this.isEditing()) {\n return;\n }\n this.selectedDataUpdate(selectedData, foreignKeyData, selectedRows, rowIndexes, selectableRowIndex);\n this.activeTarget();\n var args = {\n cancel: false,\n rowIndexes: selectableRowIndex, row: selectedRows, rowIndex: rowIndex, target: this.actualTarget,\n prevRow: gObj.getRows()[this.prevRowIndex], previousRowIndex: this.prevRowIndex,\n isInteracted: this.isInteracted, isCtrlPressed: this.isMultiCtrlRequest, isShiftPressed: this.isMultiShiftRequest,\n data: selectedData, isHeaderCheckboxClicked: this.isHeaderCheckboxClicked, foreignKeyData: foreignKeyData\n };\n args = this.addMovableArgs(args, selectedMovableRow, selectedFrozenRightRow);\n this.parent.trigger(events.rowSelecting, this.fDataUpdate(args), function (args) {\n if (!isNullOrUndefined(args) && args[\"\" + can] === true) {\n _this.disableInteracted();\n return;\n }\n _this.clearRow();\n _this.selectRowIndex(selectableRowIndex.slice(-1)[0]);\n var selectRowFn = function (index, preventFocus) {\n _this.updateRowSelection(gObj.getRowByIndex(index), index, preventFocus);\n if (gObj.isFrozenGrid()) {\n var rightEle = _this.parent.getFrozenMode() === literals.leftRight ? gObj.getFrozenRightRowByIndex(index)\n : undefined;\n _this.selectMovableRow(gObj.getMovableRowByIndex(index), rightEle, index);\n }\n _this.updateRowProps(rowIndex);\n };\n if (!_this.isSingleSel()) {\n for (var _i = 0, selectableRowIndex_1 = selectableRowIndex; _i < selectableRowIndex_1.length; _i++) {\n var rowIdx = selectableRowIndex_1[_i];\n selectRowFn(rowIdx, gObj.enableVirtualization ? true : false);\n }\n }\n else {\n selectRowFn(rowIndex);\n }\n args = {\n rowIndexes: selectableRowIndex, row: selectedRows, rowIndex: rowIndex, target: _this.actualTarget,\n prevRow: gObj.getRows()[_this.prevRowIndex], previousRowIndex: _this.prevRowIndex,\n data: _this.getSelectedRecords(), isInteracted: _this.isInteracted,\n isHeaderCheckboxClicked: _this.isHeaderCheckboxClicked, foreignKeyData: foreignKeyData\n };\n args = _this.addMovableArgs(args, selectedMovableRow, selectedFrozenRightRow);\n if (_this.isRowSelected) {\n _this.onActionComplete(args, events.rowSelected);\n }\n _this.isInteracted = false;\n });\n };\n /**\n * Select rows with existing row selection by passing row indexes.\n *\n * @param {number} rowIndexes - Specifies the row indexes.\n * @returns {void}\n * @hidden\n */\n Selection.prototype.addRowsToSelection = function (rowIndexes) {\n var gObj = this.parent;\n var can = 'cancel';\n var target = this.target;\n this.isMultiSelection = true;\n var selectedRows = [];\n var foreignKeyData = [];\n var selectedData = [];\n var indexes = gObj.getSelectedRowIndexes().concat(rowIndexes);\n var selectedRow = !this.isSingleSel() ? gObj.getRowByIndex(rowIndexes[0]) :\n gObj.getRowByIndex(rowIndexes[rowIndexes.length - 1]);\n var selectedMovableRow = !this.isSingleSel() ? this.getSelectedMovableRow(rowIndexes[0]) :\n this.getSelectedMovableRow(rowIndexes[rowIndexes.length - 1]);\n var selectedFrozenRightRow = !this.isSingleSel() ? this.getSelectedFrozenRightRow(rowIndexes[0]) :\n this.getSelectedFrozenRightRow(rowIndexes[rowIndexes.length - 1]);\n if ((!this.isRowType() || this.isEditing()) && !this.selectionSettings.checkboxOnly) {\n return;\n }\n var args;\n var checkboxColumn = this.parent.getColumns().filter(function (col) { return col.type === 'checkbox'; });\n if (this.isMultiCtrlRequest && !checkboxColumn.length) {\n this.selectedDataUpdate(selectedData, foreignKeyData, selectedRows, indexes);\n }\n for (var _i = 0, rowIndexes_1 = rowIndexes; _i < rowIndexes_1.length; _i++) {\n var rowIndex = rowIndexes_1[_i];\n var rowObj = this.getRowObj(rowIndex);\n var isUnSelected = this.selectedRowIndexes.indexOf(rowIndex) > -1;\n if (this.isPartialSelection && rowObj && rowObj.isDataRow && !rowObj.isSelectable) {\n continue;\n }\n this.selectRowIndex(rowIndex);\n if (isUnSelected && ((checkboxColumn.length ? true : this.selectionSettings.enableToggle) || this.isMultiCtrlRequest)) {\n this.isAddRowsToSelection = true;\n this.rowDeselect(events.rowDeselecting, [rowIndex], [rowObj.data], [selectedRow], [rowObj.foreignKeyData], target);\n if (this.isCancelDeSelect) {\n return;\n }\n this.selectedRowIndexes.splice(this.selectedRowIndexes.indexOf(rowIndex), 1);\n this.selectedRecords.splice(this.selectedRecords.indexOf(selectedRow), 1);\n this.selectRowIndex(this.selectedRowIndexes.length ? this.selectedRowIndexes[this.selectedRowIndexes.length - 1] : -1);\n selectedRow.removeAttribute('aria-selected');\n this.addRemoveClassesForRow(selectedRow, false, null, 'e-selectionbackground', 'e-active');\n if (selectedMovableRow) {\n this.selectedRecords.splice(this.selectedRecords.indexOf(selectedMovableRow), 1);\n selectedMovableRow.removeAttribute('aria-selected');\n this.addRemoveClassesForRow(selectedMovableRow, false, null, 'e-selectionbackground', 'e-active');\n }\n if (selectedFrozenRightRow) {\n this.selectedRecords.splice(this.selectedRecords.indexOf(selectedFrozenRightRow), 1);\n selectedFrozenRightRow.removeAttribute('aria-selected');\n this.addRemoveClassesForRow(selectedFrozenRightRow, false, null, 'e-selectionbackground', 'e-active');\n }\n this.rowDeselect(events.rowDeselected, [rowIndex], [rowObj.data], [selectedRow], [rowObj.foreignKeyData], target, [selectedMovableRow], undefined, [selectedFrozenRightRow]);\n this.isInteracted = false;\n this.isMultiSelection = false;\n this.isAddRowsToSelection = false;\n this.isHdrSelectAllClicked = false;\n }\n else {\n this.activeTarget();\n args = {\n cancel: false,\n data: selectedData.length ? selectedData : rowObj.data, rowIndex: rowIndex, row: selectedRows.length ? selectedRows :\n selectedRow, target: this.actualTarget, prevRow: gObj.getRows()[this.prevRowIndex],\n previousRowIndex: this.prevRowIndex, isCtrlPressed: this.isMultiCtrlRequest, isShiftPressed: this.isMultiShiftRequest,\n foreignKeyData: foreignKeyData.length ? foreignKeyData : rowObj.foreignKeyData, isInteracted: this.isInteracted,\n isHeaderCheckboxClicked: this.isHeaderCheckboxClicked, rowIndexes: indexes\n };\n args = this.addMovableArgs(args, selectedMovableRow, selectedFrozenRightRow);\n this.parent.trigger(events.rowSelecting, this.fDataUpdate(args));\n if (!isNullOrUndefined(args) && args[\"\" + can] === true) {\n this.disableInteracted();\n return;\n }\n if (this.isSingleSel()) {\n this.clearRow();\n }\n this.updateRowSelection(selectedRow, rowIndex);\n this.selectMovableRow(selectedMovableRow, selectedFrozenRightRow, rowIndex);\n }\n if (!isUnSelected) {\n args = {\n data: selectedData.length ? selectedData : rowObj.data, rowIndex: rowIndex, row: selectedRows.length ? selectedRows :\n selectedRow, target: this.actualTarget, prevRow: gObj.getRows()[this.prevRowIndex],\n previousRowIndex: this.prevRowIndex, foreignKeyData: foreignKeyData.length ? foreignKeyData : rowObj.foreignKeyData,\n isInteracted: this.isInteracted, isHeaderCheckboxClicked: this.isHeaderCheckboxClicked, rowIndexes: indexes\n };\n args = this.addMovableArgs(args, selectedMovableRow, selectedFrozenRightRow);\n this.onActionComplete(args, events.rowSelected);\n }\n this.isInteracted = false;\n this.updateRowProps(rowIndex);\n if (this.isSingleSel()) {\n break;\n }\n }\n };\n Selection.prototype.getCollectionFromIndexes = function (startIndex, endIndex) {\n var indexes = [];\n // eslint-disable-next-line prefer-const\n var _a = (startIndex <= endIndex) ?\n { i: startIndex, max: endIndex } : { i: endIndex, max: startIndex }, i = _a.i, max = _a.max;\n for (; i <= max; i++) {\n indexes.push(i);\n }\n if (startIndex > endIndex) {\n indexes.reverse();\n }\n return indexes;\n };\n Selection.prototype.clearRow = function () {\n this.clearRowCheck = true;\n this.clearRowSelection();\n };\n Selection.prototype.clearRowCallBack = function () {\n if (this.isCancelDeSelect && this.parent.checkAllRows !== 'Check') {\n return;\n }\n this.selectedRowIndexes = [];\n this.selectedRecords = [];\n this.selectRowIndex(-1);\n if (this.isSingleSel() && this.parent.isPersistSelection) {\n this.selectedRowState = {};\n }\n };\n Selection.prototype.clearSelectedRow = function (index) {\n if (this.toggle) {\n var selectedEle = this.parent.getRowByIndex(index);\n if (!this.disableUI) {\n selectedEle.removeAttribute('aria-selected');\n this.addRemoveClassesForRow(selectedEle, false, true, 'e-selectionbackground', 'e-active');\n }\n this.removed = true;\n this.updatePersistCollection(selectedEle, false);\n this.updateCheckBoxes(selectedEle);\n this.selectedRowIndexes.splice(this.selectedRowIndexes.indexOf(index), 1);\n this.selectedRecords.splice(this.selectedRecords.indexOf(this.parent.getRowByIndex(index)), 1);\n }\n };\n Selection.prototype.updateRowProps = function (startIndex) {\n this.prevRowIndex = startIndex;\n this.isRowSelected = this.selectedRowIndexes.length && true;\n };\n Selection.prototype.getPkValue = function (pkField, data) {\n return pkField ? isComplexField(pkField) ? getObject(pkField, data) : data[\"\" + pkField] : data[\"\" + pkField];\n };\n Selection.prototype.updatePersistCollection = function (selectedRow, chkState) {\n var _this = this;\n if ((this.parent.isPersistSelection || this.parent.selectionSettings.persistSelection &&\n this.parent.getPrimaryKeyFieldNames().length > 0) && !isNullOrUndefined(selectedRow)) {\n if (!this.parent.isPersistSelection) {\n this.ensureCheckboxFieldSelection();\n }\n var rowObj = this.getRowObj(selectedRow);\n var pKey_1 = rowObj.data ? this.getPkValue(this.primaryKey, rowObj.data) : null;\n if (pKey_1 === null) {\n return;\n }\n rowObj.isSelected = chkState;\n if ((chkState && !this.isPartialSelection) || (this.isPartialSelection && rowObj.isSelectable && rowObj.isSelected)) {\n this.selectedRowState[\"\" + pKey_1] = chkState;\n delete (this.unSelectedRowState[\"\" + pKey_1]);\n if (!this.persistSelectedData.some(function (data) { return _this.getPkValue(_this.primaryKey, data) === pKey_1; })) {\n this.persistSelectedData.push(rowObj.data);\n }\n }\n else {\n this.updatePersistDelete(pKey_1);\n }\n }\n };\n Selection.prototype.updatePersistDelete = function (pKey, isPartialSelection) {\n var _this = this;\n delete (this.selectedRowState[\"\" + pKey]);\n if (this.rmtHdrChkbxClicked) {\n this.unSelectedRowState[\"\" + pKey] = true;\n }\n var index;\n var isPresent = this.persistSelectedData.some(function (data, i) {\n index = i;\n return _this.getPkValue(_this.primaryKey, data) === pKey;\n });\n if (isPresent) {\n this.persistSelectedData.splice(index, 1);\n if (isPartialSelection) {\n this.parent.partialSelectedRecords.splice(index, 1);\n }\n }\n };\n Selection.prototype.updateCheckBoxes = function (row, chkState, rowIndex) {\n if (!isNullOrUndefined(row)) {\n var chkBox = row.querySelector('.e-checkselect');\n if (!isNullOrUndefined(chkBox)) {\n removeAddCboxClasses(chkBox.nextElementSibling, chkState);\n setChecked(chkBox, chkState);\n if (isNullOrUndefined(this.checkedTarget) || (!isNullOrUndefined(this.checkedTarget)\n && !this.checkedTarget.classList.contains('e-checkselectall'))) {\n this.setCheckAllState(rowIndex);\n }\n }\n }\n };\n Selection.prototype.updateRowSelection = function (selectedRow, startIndex, preventFocus) {\n if (!selectedRow) {\n return;\n }\n this.selectedRowIndexes.push(startIndex);\n var len = this.selectedRowIndexes.length;\n if (this.parent.isFrozenGrid() && len > 1) {\n if ((this.selectedRowIndexes[len - 2] === this.selectedRowIndexes[len - 1])) {\n this.selectedRowIndexes.pop();\n }\n }\n this.selectedRecords.push(selectedRow);\n selectedRow.setAttribute('aria-selected', 'true');\n this.updatePersistCollection(selectedRow, true);\n this.updateCheckBoxes(selectedRow, true);\n this.addRemoveClassesForRow(selectedRow, true, null, 'e-selectionbackground', 'e-active');\n if (!this.preventFocus) {\n var target = this.focus.getPrevIndexes().cellIndex ?\n selectedRow.cells[this.focus.getPrevIndexes().cellIndex] :\n selectedRow.querySelector('.e-selectionbackground:not(.e-hide):not(.e-detailrowcollapse):not(.e-detailrowexpand)');\n if (this.parent.contextMenuModule && this.mouseButton === 2) {\n target = this.parent.contextMenuModule.cell;\n }\n if (!target || preventFocus) {\n return;\n }\n this.focus.onClick({ target: target }, true);\n }\n };\n /**\n * Deselects the currently selected rows and cells.\n *\n * @returns {void}\n */\n Selection.prototype.clearSelection = function () {\n this.checkSelectAllClicked = true;\n if (this.selectionSettings.persistSelection && this.persistSelectedData.length) {\n this.deSelectedData = iterateExtend(this.persistSelectedData);\n }\n if (!this.parent.isPersistSelection || (this.parent.isPersistSelection && !this.parent.isEdit) ||\n (!isNullOrUndefined(this.checkedTarget) && this.checkedTarget.classList.contains('e-checkselectall'))) {\n var span = this.parent.element.querySelector('.e-gridpopup').querySelector('span');\n if (span.classList.contains('e-rowselect')) {\n span.classList.remove('e-spanclicked');\n }\n if (this.parent.isPersistSelection) {\n this.persistSelectedData = [];\n this.selectedRowState = {};\n }\n this.clearRowSelection();\n this.clearCellSelection();\n this.clearColumnSelection();\n this.prevRowIndex = undefined;\n this.prevCIdxs = undefined;\n this.prevECIdxs = undefined;\n this.enableSelectMultiTouch = false;\n this.isInteracted = false;\n this.checkSelectAllClicked = false;\n this.isHdrSelectAllClicked = false;\n }\n };\n /**\n * Deselects the currently selected rows.\n *\n * @returns {void}\n */\n Selection.prototype.clearRowSelection = function () {\n var _this = this;\n if (this.isRowSelected) {\n var gObj = this.parent;\n var rows_1 = this.parent.getDataRows();\n var data_1 = [];\n var row_1 = [];\n var mRow_1 = [];\n var fRightRow_1 = [];\n var rowIndex_1 = [];\n var foreignKeyData_1 = [];\n var target_1 = this.target;\n for (var i = 0, len = this.selectedRowIndexes.length; i < len; i++) {\n var currentRow = this.parent.editSettings.mode === 'Batch' ?\n this.parent.getRows()[this.selectedRowIndexes[parseInt(i.toString(), 10)]]\n : this.parent.getDataRows()[this.selectedRowIndexes[parseInt(i.toString(), 10)]];\n var rowObj = this.getRowObj(currentRow);\n if (rowObj) {\n data_1.push(rowObj.data);\n row_1.push(currentRow);\n rowIndex_1.push(this.selectedRowIndexes[parseInt(i.toString(), 10)]);\n foreignKeyData_1.push(rowObj.foreignKeyData);\n }\n if (gObj.isFrozenGrid()) {\n var mRows = gObj.getMovableRows();\n if (mRows && mRows.length) {\n mRow_1.push(mRows[this.selectedRowIndexes[parseInt(i.toString(), 10)]]);\n }\n if (gObj.getFrozenMode() === literals.leftRight) {\n var frRows = gObj.getFrozenRightRows();\n if (frRows && frRows.length) {\n fRightRow_1.push(frRows[this.selectedRowIndexes[parseInt(i.toString(), 10)]]);\n }\n }\n }\n }\n if (this.selectionSettings.persistSelection && this.selectionSettings.checkboxMode !== 'ResetOnRowClick') {\n this.isRowClicked = this.checkSelectAllClicked ? true : false;\n }\n this.rowDeselect(events.rowDeselecting, rowIndex_1, data_1, row_1, foreignKeyData_1, target_1, mRow_1, function () {\n if (_this.isCancelDeSelect && (_this.isRowClicked || _this.checkSelectAllClicked || (_this.isInteracted &&\n !_this.parent.isPersistSelection))) {\n if (_this.parent.isPersistSelection) {\n if (_this.getCheckAllStatus(_this.parent.element.querySelector('.e-checkselectall')) === 'Intermediate') {\n for (var i = 0; i < _this.selectedRecords.length; i++) {\n _this.updatePersistCollection(_this.selectedRecords[parseInt(i.toString(), 10)], true);\n }\n }\n else {\n _this.parent.checkAllRows = 'Check';\n _this.updatePersistSelectedData(true);\n }\n }\n if (_this.clearRowCheck) {\n _this.clearRowCallBack();\n _this.clearRowCheck = false;\n if (_this.selectRowCheck) {\n _this.selectRowCallBack();\n _this.selectRowCheck = false;\n }\n }\n return;\n }\n var element = [].slice.call(rows_1.filter(function (record) { return record.hasAttribute('aria-selected'); }));\n for (var j = 0; j < element.length; j++) {\n if (!_this.disableUI) {\n element[parseInt(j.toString(), 10)].removeAttribute('aria-selected');\n _this.addRemoveClassesForRow(element[parseInt(j.toString(), 10)], false, true, 'e-selectionbackground', 'e-active');\n }\n // tslint:disable-next-line:align\n if (!_this.isPrevRowSelection) {\n _this.updatePersistCollection(element[parseInt(j.toString(), 10)], false);\n }\n _this.updateCheckBoxes(element[parseInt(j.toString(), 10)]);\n }\n for (var i = 0, len = _this.selectedRowIndexes.length; i < len; i++) {\n var movableRow = _this.getSelectedMovableRow(_this.selectedRowIndexes[parseInt(i.toString(), 10)]);\n if (movableRow) {\n if (!_this.disableUI) {\n movableRow.removeAttribute('aria-selected');\n _this.addRemoveClassesForRow(movableRow, false, true, 'e-selectionbackground', 'e-active');\n }\n _this.updateCheckBoxes(movableRow);\n if (!_this.isPrevRowSelection) {\n _this.updatePersistCollection(movableRow, false);\n }\n }\n var frRow = _this.getSelectedFrozenRightRow(_this.selectedRowIndexes[parseInt(i.toString(), 10)]);\n if (frRow) {\n if (!_this.disableUI) {\n frRow.removeAttribute('aria-selected');\n _this.addRemoveClassesForRow(frRow, false, true, 'e-selectionbackground', 'e-active');\n }\n _this.updateCheckBoxes(frRow);\n if (!_this.isPrevRowSelection) {\n _this.updatePersistCollection(frRow, false);\n }\n }\n }\n _this.selectedRowIndexes = [];\n _this.selectedRecords = [];\n _this.isRowSelected = false;\n _this.selectRowIndex(-1);\n _this.isPrevRowSelection = false;\n _this.rowDeselect(events.rowDeselected, rowIndex_1, data_1, row_1, foreignKeyData_1, target_1, mRow_1, undefined, fRightRow_1);\n if (_this.clearRowCheck) {\n _this.clearRowCallBack();\n _this.clearRowCheck = false;\n if (_this.selectRowCheck) {\n _this.selectRowCallBack();\n _this.selectRowCheck = false;\n }\n }\n }, fRightRow_1);\n }\n else {\n if (this.clearRowCheck) {\n this.clearRowCallBack();\n this.clearRowCheck = false;\n if (this.selectRowCheck) {\n this.selectRowCallBack();\n this.selectRowCheck = false;\n }\n }\n }\n };\n Selection.prototype.rowDeselect = function (type, rowIndex, data, row, foreignKeyData, target, mRow, rowDeselectCallBack, frozenRightRow) {\n var _this = this;\n if ((this.selectionSettings.persistSelection && (this.isRowClicked || this.checkSelectAllClicked || (this.focus['activeKey'] &&\n this.focus.currentInfo.element.classList.contains('e-gridchkbox') && this.focus['activeKey'] === 'space'))) ||\n !this.selectionSettings.persistSelection) {\n var cancl_1 = 'cancel';\n var isSingleDeSel = rowIndex.length === 1 && this.deSelectedData.length === 1;\n var rowDeselectObj = {\n rowIndex: rowIndex[0], data: this.selectionSettings.persistSelection && (this.parent.checkAllRows === 'Uncheck' &&\n !isSingleDeSel) && this.selectionSettings.checkboxMode !== 'ResetOnRowClick' ? this.deSelectedData : data,\n foreignKeyData: foreignKeyData, cancel: false, isInteracted: this.isInteracted,\n isHeaderCheckboxClicked: this.isHeaderCheckboxClicked\n };\n if (type === 'rowDeselected') {\n delete rowDeselectObj.cancel;\n }\n var rowInString = 'row';\n var target_2 = 'target';\n var rowidx = 'rowIndex';\n var rowidxex = 'rowIndexes';\n var dataTxt = 'data';\n var foreignKey = 'foreignKeyData';\n rowDeselectObj[\"\" + rowInString] = row;\n rowDeselectObj[\"\" + target_2] = this.actualTarget;\n var isHeaderCheckBxClick = this.actualTarget && !isNullOrUndefined(closest(this.actualTarget, 'thead'));\n if (isHeaderCheckBxClick || rowIndex.length > 1) {\n rowDeselectObj[\"\" + rowidx] = rowIndex[0];\n rowDeselectObj[\"\" + rowidxex] = rowIndex;\n }\n else if (rowIndex.length === 1) {\n rowDeselectObj[\"\" + dataTxt] = rowDeselectObj[\"\" + dataTxt][0];\n rowDeselectObj[\"\" + rowInString] = rowDeselectObj[\"\" + rowInString][0];\n rowDeselectObj[\"\" + foreignKey] = rowDeselectObj[\"\" + foreignKey][0];\n if (this.isAddRowsToSelection) {\n rowDeselectObj[\"\" + rowidxex] = rowIndex;\n }\n }\n this.parent.trigger(type, this.parent.isFrozenGrid() ? __assign({}, rowDeselectObj, { mRow: mRow, frozenRightRow: frozenRightRow }) : rowDeselectObj, function (args) {\n _this.isCancelDeSelect = args[\"\" + cancl_1];\n if (!_this.isCancelDeSelect || (!_this.isRowClicked && !_this.isInteracted && !_this.checkSelectAllClicked)) {\n _this.updatePersistCollection(row[0], false);\n _this.updateCheckBoxes(row[0], undefined, rowIndex[0]);\n if (mRow) {\n _this.updateCheckBoxes(mRow[0], undefined, rowIndex[0]);\n }\n if (frozenRightRow) {\n _this.updateCheckBoxes(frozenRightRow[0], undefined, rowIndex[0]);\n }\n }\n if (rowDeselectCallBack !== undefined) {\n rowDeselectCallBack();\n }\n });\n }\n else if (this.selectionSettings.persistSelection && !this.isInteracted) {\n if (rowDeselectCallBack !== undefined) {\n rowDeselectCallBack();\n }\n }\n };\n Selection.prototype.getRowObj = function (row) {\n if (row === void 0) { row = this.currentIndex; }\n if (isNullOrUndefined(row)) {\n return {};\n }\n if (typeof row === 'number') {\n row = this.parent.getRowByIndex(row);\n }\n if (row) {\n return this.parent.getRowObjectFromUID(row.getAttribute('data-uid')) || {};\n }\n return {};\n };\n Selection.prototype.getSelectedMovableCell = function (cellIndex) {\n var gObj = this.parent;\n var col = gObj.getColumnByIndex(cellIndex.cellIndex);\n var frzCols = gObj.isFrozenGrid();\n if (frzCols) {\n if (col.getFreezeTableName() === 'movable') {\n return gObj.getMovableCellFromIndex(cellIndex.rowIndex, this.getColIndex(cellIndex.rowIndex, cellIndex.cellIndex));\n }\n return null;\n }\n return null;\n };\n /**\n * Selects a cell by the given index.\n *\n * @param {IIndex} cellIndex - Defines the row and column indexes.\n * @param {boolean} isToggle - If set to true, then it toggles the selection.\n * @returns {void}\n */\n Selection.prototype.selectCell = function (cellIndex, isToggle) {\n if (!this.isCellType()) {\n return;\n }\n var gObj = this.parent;\n var selectedCell = this.getSelectedMovableCell(cellIndex);\n var args;\n if (!selectedCell) {\n selectedCell = gObj.getCellFromIndex(cellIndex.rowIndex, this.getColIndex(cellIndex.rowIndex, cellIndex.cellIndex));\n }\n this.currentIndex = cellIndex.rowIndex;\n var selectedData = this.getCurrentBatchRecordChanges()[this.currentIndex];\n if (!this.isCellType() || !selectedCell || this.isEditing()) {\n return;\n }\n var isCellSelected = selectedCell.classList.contains('e-cellselectionbackground');\n isToggle = !isToggle ? isToggle : (!isUndefined(this.prevCIdxs) &&\n cellIndex.rowIndex === this.prevCIdxs.rowIndex && cellIndex.cellIndex === this.prevCIdxs.cellIndex &&\n isCellSelected);\n if (!isToggle) {\n args = {\n data: selectedData, cellIndex: cellIndex,\n isCtrlPressed: this.isMultiCtrlRequest, isShiftPressed: this.isMultiShiftRequest,\n previousRowCell: this.prevECIdxs ?\n this.getCellIndex(this.prevECIdxs.rowIndex, this.prevECIdxs.cellIndex) : undefined,\n cancel: false\n };\n var currentCell = 'currentCell';\n args[\"\" + currentCell] = selectedCell;\n var previousRowCellIndex = 'previousRowCellIndex';\n args[\"\" + previousRowCellIndex] = this.prevECIdxs;\n this.parent.trigger(events.cellSelecting, this.fDataUpdate(args), this.successCallBack(args, isToggle, cellIndex, selectedCell, selectedData));\n this.cellselected = true;\n }\n else {\n this.successCallBack(args, isToggle, cellIndex, selectedCell, selectedData)(args);\n }\n };\n Selection.prototype.successCallBack = function (cellSelectingArgs, isToggle, cellIndex, selectedCell, selectedData) {\n var _this = this;\n return function (cellSelectingArgs) {\n var cncl = 'cancel';\n var currentCell = 'currentCell';\n if (!isNullOrUndefined(cellSelectingArgs) && cellSelectingArgs[\"\" + cncl] === true) {\n return;\n }\n if (!isToggle) {\n cellSelectingArgs[\"\" + currentCell] = cellSelectingArgs[\"\" + currentCell] ? cellSelectingArgs[\"\" + currentCell] : selectedCell;\n }\n _this.clearCell();\n if (!isToggle) {\n _this.updateCellSelection(selectedCell, cellIndex.rowIndex, cellIndex.cellIndex);\n }\n if (!isToggle) {\n var args = {\n data: selectedData, cellIndex: cellIndex, currentCell: selectedCell,\n selectedRowCellIndex: _this.selectedRowCellIndexes,\n previousRowCell: _this.prevECIdxs ?\n _this.getCellIndex(_this.prevECIdxs.rowIndex, _this.prevECIdxs.cellIndex) : undefined\n };\n var previousRowCellIndex = 'previousRowCellIndex';\n args[\"\" + previousRowCellIndex] = _this.prevECIdxs;\n _this.updateCellProps(cellIndex, cellIndex);\n _this.onActionComplete(args, events.cellSelected);\n }\n };\n };\n Selection.prototype.getCellIndex = function (rIdx, cIdx) {\n return (this.parent.getFrozenColumns() ? (cIdx >= this.parent.getFrozenColumns() ? this.parent.getMovableCellFromIndex(rIdx, cIdx)\n : this.parent.getCellFromIndex(rIdx, cIdx)) : this.parent.getCellFromIndex(rIdx, cIdx));\n };\n /**\n * Selects a range of cells from start and end indexes.\n *\n * @param {IIndex} startIndex - Specifies the row and column's start index.\n * @param {IIndex} endIndex - Specifies the row and column's end index.\n * @returns {void}\n */\n Selection.prototype.selectCellsByRange = function (startIndex, endIndex) {\n var _this = this;\n if (!this.isCellType()) {\n return;\n }\n var gObj = this.parent;\n var selectedCell = this.getSelectedMovableCell(startIndex);\n var frzCols = gObj.getFrozenColumns();\n if (!selectedCell) {\n selectedCell = gObj.getCellFromIndex(startIndex.rowIndex, startIndex.cellIndex);\n }\n var min;\n var max;\n var stIndex = startIndex;\n var edIndex = endIndex = endIndex ? endIndex : startIndex;\n var cellIndexes;\n this.currentIndex = startIndex.rowIndex;\n var cncl = 'cancel';\n var selectedData = this.getCurrentBatchRecordChanges()[this.currentIndex];\n if (this.isSingleSel() || !this.isCellType() || this.isEditing()) {\n return;\n }\n var args = {\n data: selectedData, cellIndex: startIndex, currentCell: selectedCell,\n isCtrlPressed: this.isMultiCtrlRequest, isShiftPressed: this.isMultiShiftRequest,\n previousRowCell: this.prevECIdxs ? this.getCellIndex(this.prevECIdxs.rowIndex, this.prevECIdxs.cellIndex) : undefined\n };\n var previousRowCellIndex = 'previousRowCellIndex';\n args[\"\" + previousRowCellIndex] = this.prevECIdxs;\n this.parent.trigger(events.cellSelecting, this.fDataUpdate(args), function (cellSelectingArgs) {\n if (!isNullOrUndefined(cellSelectingArgs) && cellSelectingArgs[\"\" + cncl] === true) {\n return;\n }\n _this.clearCell();\n if (startIndex.rowIndex > endIndex.rowIndex) {\n var temp = startIndex;\n startIndex = endIndex;\n endIndex = temp;\n }\n for (var i = startIndex.rowIndex; i <= endIndex.rowIndex; i++) {\n if (_this.selectionSettings.cellSelectionMode.indexOf('Box') < 0) {\n min = i === startIndex.rowIndex ? (startIndex.cellIndex) : 0;\n max = i === endIndex.rowIndex ? (endIndex.cellIndex) : _this.getLastColIndex(i);\n }\n else {\n min = startIndex.cellIndex;\n max = endIndex.cellIndex;\n }\n cellIndexes = [];\n for (var j = min < max ? min : max, len = min > max ? min : max; j <= len; j++) {\n if (frzCols) {\n if (j < frzCols) {\n selectedCell = gObj.getCellFromIndex(i, j);\n }\n else {\n selectedCell = gObj.getMovableCellFromIndex(i, j);\n }\n }\n else {\n selectedCell = gObj.getCellFromIndex(i, j);\n }\n if (!selectedCell) {\n continue;\n }\n cellIndexes.push(j);\n _this.updateCellSelection(selectedCell);\n _this.addAttribute(selectedCell);\n }\n _this.selectedRowCellIndexes.push({ rowIndex: i, cellIndexes: cellIndexes });\n }\n var cellSelectedArgs = {\n data: selectedData, cellIndex: edIndex, currentCell: gObj.getCellFromIndex(edIndex.rowIndex, edIndex.cellIndex),\n selectedRowCellIndex: _this.selectedRowCellIndexes,\n previousRowCell: _this.prevECIdxs ? _this.getCellIndex(_this.prevECIdxs.rowIndex, _this.prevECIdxs.cellIndex) : undefined\n };\n var previousRowCellIndex = 'previousRowCellIndex';\n cellSelectedArgs[\"\" + previousRowCellIndex] = _this.prevECIdxs;\n if (!_this.isDragged) {\n _this.onActionComplete(cellSelectedArgs, events.cellSelected);\n _this.cellselected = true;\n }\n _this.updateCellProps(stIndex, edIndex);\n });\n };\n /**\n * Selects a collection of cells by row and column indexes.\n *\n * @param {ISelectedCell[]} rowCellIndexes - Specifies the row and column indexes.\n * @returns {void}\n */\n Selection.prototype.selectCells = function (rowCellIndexes) {\n if (!this.isCellType()) {\n return;\n }\n var gObj = this.parent;\n var selectedCell = this.getSelectedMovableCell(rowCellIndexes[0]);\n var frzCols = gObj.getFrozenColumns();\n if (!selectedCell) {\n selectedCell = gObj.getCellFromIndex(rowCellIndexes[0].rowIndex, rowCellIndexes[0].cellIndexes[0]);\n }\n this.currentIndex = rowCellIndexes[0].rowIndex;\n var selectedData = this.getCurrentBatchRecordChanges()[this.currentIndex];\n if (this.isSingleSel() || !this.isCellType() || this.isEditing()) {\n return;\n }\n var cellSelectArgs = {\n data: selectedData, cellIndex: rowCellIndexes[0].cellIndexes[0],\n currentCell: selectedCell, isCtrlPressed: this.isMultiCtrlRequest,\n isShiftPressed: this.isMultiShiftRequest,\n previousRowCell: this.prevECIdxs ? this.getCellIndex(this.prevECIdxs.rowIndex, this.prevECIdxs.cellIndex) : undefined\n };\n var previousRowCellIndex = 'previousRowCellIndex';\n cellSelectArgs[\"\" + previousRowCellIndex] = this.prevECIdxs;\n this.onActionBegin(cellSelectArgs, events.cellSelecting);\n for (var i = 0, len = rowCellIndexes.length; i < len; i++) {\n for (var j = 0, cellLen = rowCellIndexes[parseInt(i.toString(), 10)].cellIndexes.length; j < cellLen; j++) {\n if (frzCols) {\n if (rowCellIndexes[parseInt(i.toString(), 10)].cellIndexes[parseInt(j.toString(), 10)] < frzCols) {\n selectedCell = gObj.getCellFromIndex(rowCellIndexes[parseInt(i.toString(), 10)].rowIndex, rowCellIndexes[parseInt(i.toString(), 10)].cellIndexes[parseInt(j.toString(), 10)]);\n }\n else {\n selectedCell = gObj.getMovableCellFromIndex(rowCellIndexes[parseInt(i.toString(), 10)].rowIndex, rowCellIndexes[parseInt(i.toString(), 10)].cellIndexes[parseInt(j.toString(), 10)]);\n }\n }\n else {\n selectedCell = gObj.getCellFromIndex(rowCellIndexes[parseInt(i.toString(), 10)].rowIndex, rowCellIndexes[parseInt(i.toString(), 10)].cellIndexes[parseInt(j.toString(), 10)]);\n }\n if (!selectedCell) {\n continue;\n }\n this.updateCellSelection(selectedCell);\n this.addAttribute(selectedCell);\n this.addRowCellIndex({ rowIndex: rowCellIndexes[parseInt(i.toString(), 10)].rowIndex,\n cellIndex: rowCellIndexes[parseInt(i.toString(), 10)].cellIndexes[parseInt(j.toString(), 10)] });\n }\n }\n this.updateCellProps({ rowIndex: rowCellIndexes[0].rowIndex, cellIndex: rowCellIndexes[0].cellIndexes[0] }, { rowIndex: rowCellIndexes[0].rowIndex, cellIndex: rowCellIndexes[0].cellIndexes[0] });\n var cellSelectedArgs = {\n data: selectedData, cellIndex: rowCellIndexes[0].cellIndexes[0],\n currentCell: selectedCell, selectedRowCellIndex: this.selectedRowCellIndexes,\n previousRowCell: this.prevECIdxs ? this.getCellIndex(this.prevECIdxs.rowIndex, this.prevECIdxs.cellIndex) : undefined\n };\n var prvRowCellIndex = 'previousRowCellIndex';\n cellSelectedArgs[\"\" + prvRowCellIndex] = this.prevECIdxs;\n this.onActionComplete(cellSelectedArgs, events.cellSelected);\n };\n /**\n * Select cells with existing cell selection by passing row and column index.\n *\n * @param {IIndex} cellIndexes - Defines the collection of row and column index.\n * @returns {void}\n * @hidden\n */\n Selection.prototype.addCellsToSelection = function (cellIndexes) {\n if (!this.isCellType()) {\n return;\n }\n var gObj = this.parent;\n var selectedCell;\n var index;\n this.currentIndex = cellIndexes[0].rowIndex;\n var cncl = 'cancel';\n var selectedData = this.getCurrentBatchRecordChanges()[this.currentIndex];\n var left = gObj.getFrozenLeftCount();\n var movable = gObj.getMovableColumnsCount();\n if (this.isSingleSel() || !this.isCellType() || this.isEditing()) {\n return;\n }\n this.hideAutoFill();\n var col = gObj.getColumnByIndex(cellIndexes[0].cellIndex);\n var rowObj;\n gridActionHandler(this.parent, function (tableName, rows) {\n rowObj = rows[cellIndexes[0].rowIndex];\n }, [\n !col.getFreezeTableName() || col.getFreezeTableName() === literals.frozenLeft ? gObj.getRowsObject() : [],\n col.getFreezeTableName() === 'movable' ? gObj.getMovableRowsObject() : [],\n col.getFreezeTableName() === literals.frozenRight ? gObj.getFrozenRightRowsObject() : []\n ]);\n if (gObj.groupSettings.columns.length > 0) {\n rowObj = gObj.getRowObjectFromUID(this.target.parentElement.getAttribute('data-uid'));\n }\n var foreignKeyData = [];\n for (var _i = 0, cellIndexes_1 = cellIndexes; _i < cellIndexes_1.length; _i++) {\n var cellIndex = cellIndexes_1[_i];\n for (var i = 0, len = this.selectedRowCellIndexes.length; i < len; i++) {\n if (this.selectedRowCellIndexes[parseInt(i.toString(), 10)].rowIndex === cellIndex.rowIndex) {\n index = i;\n break;\n }\n }\n selectedCell = this.getSelectedMovableCell(cellIndex);\n if (!selectedCell) {\n selectedCell = gObj.getCellFromIndex(cellIndex.rowIndex, this.getColIndex(cellIndex.rowIndex, cellIndex.cellIndex));\n }\n var idx = col.getFreezeTableName() === 'movable' ? cellIndex.cellIndex - left\n : col.getFreezeTableName() === literals.frozenRight ? cellIndex.cellIndex - (left + movable) : cellIndex.cellIndex;\n if (gObj.groupSettings.columns.length > 0) {\n foreignKeyData.push(rowObj.cells[idx + gObj.groupSettings.columns.length].foreignKeyData);\n }\n else {\n foreignKeyData.push(rowObj.cells[parseInt(idx.toString(), 10)].foreignKeyData);\n }\n var args = {\n cancel: false, data: selectedData, cellIndex: cellIndexes[0],\n isShiftPressed: this.isMultiShiftRequest,\n currentCell: selectedCell, isCtrlPressed: this.isMultiCtrlRequest,\n previousRowCell: this.prevECIdxs ?\n gObj.getCellFromIndex(this.prevECIdxs.rowIndex, this.prevECIdxs.cellIndex) : undefined\n };\n var prvRowCellIndex = 'previousRowCellIndex';\n args[\"\" + prvRowCellIndex] = this.prevECIdxs;\n var isUnSelected = index > -1;\n if (isUnSelected) {\n var selectedCellIdx = this.selectedRowCellIndexes[parseInt(index.toString(), 10)].cellIndexes;\n if (selectedCellIdx.indexOf(cellIndex.cellIndex) > -1) {\n this.cellDeselect(events.cellDeselecting, [{ rowIndex: cellIndex.rowIndex, cellIndexes: [cellIndex.cellIndex] }], selectedData, [selectedCell], foreignKeyData);\n selectedCellIdx.splice(selectedCellIdx.indexOf(cellIndex.cellIndex), 1);\n if (selectedCellIdx.length === 0) {\n this.selectedRowCellIndexes.splice(index, 1);\n }\n selectedCell.classList.remove('e-cellselectionbackground');\n selectedCell.removeAttribute('aria-selected');\n this.cellDeselect(events.cellDeselected, [{ rowIndex: cellIndex.rowIndex, cellIndexes: [cellIndex.cellIndex] }], selectedData, [selectedCell], foreignKeyData);\n }\n else {\n isUnSelected = false;\n this.onActionBegin(args, events.cellSelecting);\n this.addRowCellIndex({ rowIndex: cellIndex.rowIndex, cellIndex: cellIndex.cellIndex });\n this.updateCellSelection(selectedCell);\n this.addAttribute(selectedCell);\n }\n }\n else {\n this.onActionBegin(args, events.cellSelecting);\n if (!isNullOrUndefined(args) && args[\"\" + cncl] === true) {\n return;\n }\n this.updateCellSelection(selectedCell, cellIndex.rowIndex, cellIndex.cellIndex);\n }\n if (!isUnSelected) {\n var cellSelectedArgs = {\n data: selectedData, cellIndex: cellIndexes[0], currentCell: selectedCell,\n previousRowCell: this.prevECIdxs ? this.getCellIndex(this.prevECIdxs.rowIndex, this.prevECIdxs.cellIndex) :\n undefined, selectedRowCellIndex: this.selectedRowCellIndexes\n };\n cellSelectedArgs[\"\" + prvRowCellIndex] = this.prevECIdxs;\n this.onActionComplete(cellSelectedArgs, events.cellSelected);\n this.cellselected = true;\n }\n this.updateCellProps(cellIndex, cellIndex);\n }\n };\n Selection.prototype.getColIndex = function (rowIndex, index) {\n var frzCols = this.parent.isFrozenGrid();\n var col = this.parent.getColumnByIndex(index);\n var cells = getCellsByTableName(this.parent, col, rowIndex);\n if (cells) {\n for (var m = 0; m < cells.length; m++) {\n var colIndex = parseInt(cells[parseInt(m.toString(), 10)].getAttribute(literals.dataColIndex), 10);\n if (colIndex === index) {\n if (frzCols) {\n if (col.getFreezeTableName() === 'movable') {\n m += this.parent.getFrozenLeftCount();\n }\n else if (col.getFreezeTableName() === literals.frozenRight) {\n m += (this.parent.getFrozenLeftColumnsCount() + this.parent.getMovableColumnsCount());\n }\n }\n return m;\n }\n }\n }\n return -1;\n };\n Selection.prototype.getLastColIndex = function (rowIndex) {\n var cells = this.parent.getFrozenColumns() ? this.parent.getMovableDataRows()[parseInt(rowIndex.toString(), 10)].querySelectorAll('td.e-rowcell')\n : this.parent.getDataRows()[parseInt(rowIndex.toString(), 10)].querySelectorAll('td.e-rowcell');\n return parseInt(cells[cells.length - 1].getAttribute(literals.dataColIndex), 10);\n };\n Selection.prototype.clearCell = function () {\n this.clearCellSelection();\n };\n Selection.prototype.cellDeselect = function (type, cellIndexes, data, cells, foreignKeyData) {\n var cancl = 'cancel';\n if (cells[0] && cells[0].classList.contains(literals.gridChkBox)) {\n this.updateCheckBoxes(closest(cells[0], 'tr'));\n }\n var args = {\n cells: cells, data: data, cellIndexes: cellIndexes, foreignKeyData: foreignKeyData, cancel: false\n };\n this.parent.trigger(type, args);\n this.isPreventCellSelect = args[\"\" + cancl];\n };\n Selection.prototype.updateCellSelection = function (selectedCell, rowIndex, cellIndex) {\n if (!isNullOrUndefined(rowIndex)) {\n this.addRowCellIndex({ rowIndex: rowIndex, cellIndex: cellIndex });\n }\n selectedCell.classList.add('e-cellselectionbackground');\n if (selectedCell.classList.contains(literals.gridChkBox)) {\n this.updateCheckBoxes(closest(selectedCell, 'tr'), true);\n }\n this.addAttribute(selectedCell);\n };\n Selection.prototype.addAttribute = function (cell) {\n this.target = cell;\n if (!isNullOrUndefined(cell)) {\n cell.setAttribute('aria-selected', 'true');\n if (!this.preventFocus) {\n this.focus.onClick({ target: cell }, true);\n }\n }\n };\n Selection.prototype.updateCellProps = function (startIndex, endIndex) {\n this.prevCIdxs = startIndex;\n this.prevECIdxs = endIndex;\n this.isCellSelected = this.selectedRowCellIndexes.length && true;\n };\n Selection.prototype.addRowCellIndex = function (rowCellIndex) {\n var isRowAvail;\n var index;\n for (var i = 0, len = this.selectedRowCellIndexes.length; i < len; i++) {\n if (this.selectedRowCellIndexes[parseInt(i.toString(), 10)].rowIndex === rowCellIndex.rowIndex) {\n isRowAvail = true;\n index = i;\n break;\n }\n }\n if (isRowAvail) {\n if (this.selectedRowCellIndexes[parseInt(index.toString(), 10)].cellIndexes.indexOf(rowCellIndex.cellIndex) < 0) {\n this.selectedRowCellIndexes[parseInt(index.toString(), 10)].cellIndexes.push(rowCellIndex.cellIndex);\n }\n }\n else {\n this.selectedRowCellIndexes.push({ rowIndex: rowCellIndex.rowIndex, cellIndexes: [rowCellIndex.cellIndex] });\n }\n };\n /**\n * Deselects the currently selected cells.\n *\n * @returns {void}\n */\n Selection.prototype.clearCellSelection = function () {\n if (this.isCellSelected) {\n var gObj = this.parent;\n var selectedCells = this.getSelectedCellsElement();\n var rowCell = this.selectedRowCellIndexes;\n var data = [];\n var cells = [];\n var foreignKeyData = [];\n var currentViewData = this.getCurrentBatchRecordChanges();\n var frzCols = gObj.isFrozenGrid();\n this.hideAutoFill();\n for (var i = 0, len = rowCell.length; i < len; i++) {\n data.push(currentViewData[rowCell[parseInt(i.toString(), 10)].rowIndex]);\n var rowObj = this.getRowObj(rowCell[parseInt(i.toString(), 10)].rowIndex);\n for (var j = 0, cLen = rowCell[parseInt(i.toString(), 10)].cellIndexes.length; j < cLen; j++) {\n if (frzCols) {\n var col = gObj.getColumnByIndex(rowCell[parseInt(i.toString(), 10)]\n .cellIndexes[parseInt(j.toString(), 10)]);\n cells.push(getCellByColAndRowIndex(this.parent, col, rowCell[parseInt(i.toString(), 10)].rowIndex, rowCell[parseInt(i.toString(), 10)].cellIndexes[parseInt(j.toString(), 10)]));\n }\n else {\n if (rowObj.cells) {\n foreignKeyData.push(rowObj.cells[rowCell[parseInt(i.toString(), 10)]\n .cellIndexes[parseInt(j.toString(), 10)]].foreignKeyData);\n }\n cells.push(gObj.getCellFromIndex(rowCell[parseInt(i.toString(), 10)].rowIndex, rowCell[parseInt(i.toString(), 10)].cellIndexes[parseInt(j.toString(), 10)]));\n }\n }\n }\n this.cellDeselect(events.cellDeselecting, rowCell, data, cells, foreignKeyData);\n if (this.isPreventCellSelect === true) {\n return;\n }\n for (var i = 0, len = selectedCells.length; i < len; i++) {\n selectedCells[parseInt(i.toString(), 10)].classList.remove('e-cellselectionbackground');\n selectedCells[parseInt(i.toString(), 10)].removeAttribute('aria-selected');\n }\n if (this.bdrElement) {\n this.showHideBorders('none');\n }\n this.selectedRowCellIndexes = [];\n this.isCellSelected = false;\n if (!this.isDragged && this.cellselected) {\n this.cellDeselect(events.cellDeselected, rowCell, data, cells, foreignKeyData);\n }\n }\n };\n Selection.prototype.getSelectedCellsElement = function () {\n var gObj = this.parent;\n var rows = gObj.getDataRows();\n var mRows;\n if (gObj.isFrozenGrid()) {\n mRows = gObj.getMovableDataRows();\n rows = gObj.addMovableRows(rows, mRows);\n if (gObj.getFrozenMode() === literals.leftRight) {\n rows = gObj.addMovableRows(rows, gObj.getFrozenRightDataRows());\n }\n }\n var cells = [];\n for (var i = 0, len = rows.length; i < len; i++) {\n cells = cells.concat([].slice.call(rows[parseInt(i.toString(), 10)].getElementsByClassName('e-cellselectionbackground')));\n }\n return cells;\n };\n Selection.prototype.mouseMoveHandler = function (e) {\n e.preventDefault();\n var gBRect = this.parent.element.getBoundingClientRect();\n var x1 = this.x;\n var y1 = this.y;\n var position = getPosition(e);\n var x2 = position.x - gBRect.left;\n var y2 = position.y - gBRect.top;\n var tmp;\n var target = closest(e.target, 'tr');\n this.isDragged = true;\n if (!this.isCellDrag) {\n if (!target) {\n target = closest(document.elementFromPoint(this.parent.element.offsetLeft + 2, e.clientY), 'tr');\n }\n if (x1 > x2) {\n tmp = x2;\n x2 = x1;\n x1 = tmp;\n }\n if (y1 > y2) {\n tmp = y2;\n y2 = y1;\n y1 = tmp;\n }\n this.element.style.left = x1 + 'px';\n this.element.style.top = y1 + 'px';\n this.element.style.width = x2 - x1 + 'px';\n this.element.style.height = y2 - y1 + 'px';\n }\n if (target && !e.ctrlKey && !e.shiftKey) {\n var rowIndex = parseInt(target.getAttribute(literals.dataRowIndex), 10);\n if (!this.isCellDrag) {\n this.hideAutoFill();\n this.selectRowsByRange(this.startDIndex, rowIndex);\n this.isRowDragSelected = true;\n }\n else {\n var td = parentsUntil(e.target, literals.rowCell);\n if (td) {\n this.startAFCell = this.startCell;\n this.endAFCell = parentsUntil(e.target, literals.rowCell);\n this.selectLikeExcel(e, rowIndex, parseInt(td.getAttribute(literals.dataColIndex), 10));\n }\n }\n }\n };\n Selection.prototype.selectLikeExcel = function (e, rowIndex, cellIndex) {\n if (!this.isAutoFillSel) {\n this.clearCellSelection();\n this.selectCellsByRange({ rowIndex: this.startDIndex, cellIndex: this.startDCellIndex }, { rowIndex: rowIndex, cellIndex: cellIndex });\n this.drawBorders();\n }\n else { //Autofill\n this.showAFBorders();\n this.selectLikeAutoFill(e);\n }\n };\n Selection.prototype.drawBorders = function () {\n if (this.selectionSettings.cellSelectionMode === 'BoxWithBorder' && this.selectedRowCellIndexes.length && !this.parent.isEdit) {\n this.parent.element.classList.add('e-enabledboxbdr');\n if (!this.bdrElement) {\n this.createBorders();\n }\n this.positionBorders();\n }\n else {\n this.showHideBorders('none');\n }\n };\n Selection.prototype.isLastCell = function (cell) {\n var cells = [].slice.call(cell.parentElement.querySelectorAll('.e-rowcell:not(.e-hide)'));\n return cells[cells.length - 1] === cell;\n };\n Selection.prototype.isLastRow = function (cell) {\n var rows = [].slice.call(closest(cell, literals.tbody).querySelectorAll('.e-row:not(.e-hiddenrow)'));\n return cell.parentElement === rows[rows.length - 1];\n };\n Selection.prototype.isFirstRow = function (cell) {\n var rows = [].slice.call(closest(cell, literals.tbody).querySelectorAll('.e-row:not(.e-hiddenrow)'));\n return cell.parentElement === rows[0];\n };\n Selection.prototype.isFirstCell = function (cell) {\n var cells = [].slice.call(cell.parentElement.querySelectorAll('.e-rowcell:not(.e-hide)'));\n return cells[0] === cell;\n };\n Selection.prototype.setBorders = function (parentEle, border, bdrStr) {\n var cells = [].slice.call(parentEle.getElementsByClassName('e-cellselectionbackground')).\n filter(function (ele) { return ele.style.display === ''; });\n if (cells.length) {\n var isFrozen = this.parent.isFrozenGrid();\n var start = cells[0];\n var end = cells[cells.length - 1];\n var stOff = start.getBoundingClientRect();\n var endOff = end.getBoundingClientRect();\n var parentOff = start.offsetParent.getBoundingClientRect();\n var rowHeight = this.isLastRow(end) && (bdrStr === '1' || bdrStr === '2' || bdrStr === '5') ? 2 : 0;\n var topOffSet = this.parent.frozenRows && (bdrStr === '1' || bdrStr === '2') &&\n this.isFirstRow(start) ? 1.5 : 0;\n var leftOffset = isFrozen && (bdrStr === '2' || bdrStr === '4') && this.isFirstCell(start) ? 1 : 0;\n var rightOffset = ((this.parent.getFrozenMode() === 'Right' && (bdrStr === '1' || bdrStr === '3'))\n || (this.parent.getFrozenMode() === literals.leftRight && (bdrStr === '5' || bdrStr === '6')))\n && this.isFirstCell(start) ? 1 : 0;\n if (this.parent.enableRtl) {\n border.style.right = parentOff.right - stOff.right - leftOffset + 'px';\n border.style.width = stOff.right - endOff.left + leftOffset + 1 + 'px';\n }\n else {\n border.style.left = stOff.left - parentOff.left - leftOffset - rightOffset + 'px';\n border.style.width = endOff.right - stOff.left + leftOffset - rightOffset + 1 + 'px';\n }\n border.style.top = stOff.top - parentOff.top - topOffSet + 'px';\n border.style.height = endOff.top - stOff.top > 0 ?\n (endOff.top - parentOff.top + endOff.height + 1) - (stOff.top - parentOff.top) - rowHeight + topOffSet + 'px' :\n endOff.height + topOffSet - rowHeight + 1 + 'px';\n this.selectDirection += bdrStr;\n }\n else {\n border.style.display = 'none';\n }\n };\n Selection.prototype.positionBorders = function () {\n this.updateStartEndCells();\n if (!this.startCell || !this.bdrElement || !this.selectedRowCellIndexes.length) {\n return;\n }\n this.selectDirection = '';\n this.showHideBorders('');\n this.setBorders(this.parent.getContentTable(), this.bdrElement, '1');\n if (this.parent.isFrozenGrid()) {\n this.setBorders(this.parent.contentModule.getMovableContent(), this.mcBdrElement, '2');\n if (this.parent.getFrozenMode() === literals.leftRight) {\n this.setBorders(this.parent.contentModule.getFrozenRightContent(), this.frcBdrElement, '5');\n }\n }\n if (this.parent.frozenRows) {\n this.setBorders(this.parent.getHeaderTable(), this.fhBdrElement, '3');\n if (this.parent.isFrozenGrid()) {\n this.setBorders(this.parent.headerModule.getMovableHeader(), this.mhBdrElement, '4');\n if (this.parent.getFrozenMode() === literals.leftRight) {\n this.setBorders(this.parent.headerModule.getFrozenRightHeader(), this.frhBdrElement, '6');\n }\n }\n }\n this.applyBorders(this.selectDirection);\n };\n /* eslint-enable */\n Selection.prototype.applyBothFrozenBorders = function (str) {\n var rtl = this.parent.enableRtl;\n switch (str.length) {\n case 6:\n {\n this.bdrElement.style.borderWidth = rtl ? this.right_bottom : this.bottom_left;\n this.mcBdrElement.style.borderWidth = this.bottom;\n this.fhBdrElement.style.borderWidth = rtl ? this.top_right : this.top_left;\n this.mhBdrElement.style.borderWidth = this.top;\n this.frcBdrElement.style.borderWidth = rtl ? this.bottom_left : this.right_bottom;\n this.frhBdrElement.style.borderWidth = rtl ? this.top_left : this.top_right;\n }\n break;\n case 4:\n {\n if (str.includes('1') && str.includes('2') && str.includes('3') && str.includes('4')) {\n this.fhBdrElement.style.borderWidth = rtl ? this.top_right : this.top_left;\n this.mhBdrElement.style.borderWidth = rtl ? this.top_left : this.top_right;\n this.bdrElement.style.borderWidth = rtl ? this.right_bottom : this.bottom_left;\n this.mcBdrElement.style.borderWidth = rtl ? this.bottom_left : this.right_bottom;\n }\n if (str.includes('2') && str.includes('4') && str.includes('5') && str.includes('6')) {\n this.mcBdrElement.style.borderWidth = rtl ? this.right_bottom : this.bottom_left;\n this.mhBdrElement.style.borderWidth = rtl ? this.top_right : this.top_left;\n this.frcBdrElement.style.borderWidth = rtl ? this.bottom_left : this.right_bottom;\n this.frhBdrElement.style.borderWidth = rtl ? this.top_left : this.top_right;\n }\n }\n break;\n case 3:\n {\n this.bdrElement.style.borderWidth = rtl ? this.top_right_bottom : this.top_bottom_left;\n this.mcBdrElement.style.borderWidth = this.top_bottom;\n this.frcBdrElement.style.borderWidth = rtl ? this.top_bottom_left : this.top_right_bottom;\n if (this.parent.frozenRows) {\n this.fhBdrElement.style.borderWidth = rtl ? this.top_right_bottom : this.top_bottom_left;\n this.mhBdrElement.style.borderWidth = this.top_bottom;\n this.frcBdrElement.style.borderWidth = rtl ? this.top_bottom_left : this.top_right_bottom;\n }\n }\n break;\n case 2:\n {\n if (str.includes('1')) {\n this.mcBdrElement.style.borderWidth = rtl ? this.top_bottom_left : this.top_right_bottom;\n if (this.parent.frozenRows) {\n this.fhBdrElement.style.borderWidth = this.top_right_left;\n }\n }\n if (str.includes('2')) {\n this.bdrElement.style.borderWidth = rtl ? this.top_right_bottom : this.top_bottom_left;\n this.frcBdrElement.style.borderWidth = rtl ? this.top_bottom_left : this.top_right_bottom;\n if (this.parent.frozenRows) {\n this.mhBdrElement.style.borderWidth = this.top_right_left;\n }\n }\n if (str.includes('3')) {\n this.mhBdrElement.style.borderWidth = rtl ? this.top_bottom_left : this.top_right_bottom;\n this.bdrElement.style.borderWidth = this.right_bottom_left;\n }\n if (str.includes('4')) {\n this.fhBdrElement.style.borderWidth = rtl ? this.top_right_bottom : this.top_bottom_left;\n this.frhBdrElement.style.borderWidth = rtl ? this.top_bottom_left : this.top_right_bottom;\n this.mcBdrElement.style.borderWidth = this.right_bottom_left;\n }\n if (str.includes('5')) {\n this.mcBdrElement.style.borderWidth = rtl ? this.top_right_bottom : this.top_bottom_left;\n if (this.parent.frozenRows) {\n this.frhBdrElement.style.borderWidth = this.top_right_left;\n }\n }\n if (str.includes('6')) {\n this.mhBdrElement.style.borderWidth = rtl ? this.top_right_bottom : this.top_bottom_left;\n this.frcBdrElement.style.borderWidth = this.right_bottom_left;\n }\n }\n break;\n default:\n this.bdrElement.style.borderWidth = this.all_border;\n this.mcBdrElement.style.borderWidth = this.all_border;\n this.frcBdrElement.style.borderWidth = this.all_border;\n if (this.parent.frozenRows) {\n this.fhBdrElement.style.borderWidth = this.all_border;\n this.mhBdrElement.style.borderWidth = this.all_border;\n this.frhBdrElement.style.borderWidth = this.all_border;\n }\n break;\n }\n };\n Selection.prototype.applyBorders = function (str) {\n var rtl = this.parent.enableRtl;\n if (this.parent.getFrozenMode() === literals.leftRight) {\n this.applyBothFrozenBorders(str);\n }\n else {\n switch (str.length) {\n case 4:\n {\n if (this.parent.getFrozenMode() === 'Right') {\n this.bdrElement.style.borderWidth = rtl ? this.bottom_left : this.right_bottom;\n this.mcBdrElement.style.borderWidth = rtl ? this.right_bottom : this.bottom_left;\n this.fhBdrElement.style.borderWidth = rtl ? this.top_left : this.top_right;\n this.mhBdrElement.style.borderWidth = rtl ? this.top_right : this.top_left;\n }\n else {\n this.bdrElement.style.borderWidth = rtl ? this.right_bottom : this.bottom_left;\n this.mcBdrElement.style.borderWidth = rtl ? this.bottom_left : this.right_bottom;\n this.fhBdrElement.style.borderWidth = rtl ? this.top_right : this.top_left;\n this.mhBdrElement.style.borderWidth = rtl ? this.top_left : this.top_right;\n }\n }\n break;\n case 2:\n {\n if (this.parent.getFrozenMode() === 'Right') {\n this.bdrElement.style.borderWidth = str.includes('2') ? rtl ? this.top_bottom_left\n : this.top_right_bottom : this.right_bottom_left;\n this.mcBdrElement.style.borderWidth = str.includes('1') ? rtl ? this.top_right_bottom\n : this.top_bottom_left : this.right_bottom_left;\n if (this.parent.frozenRows) {\n this.fhBdrElement.style.borderWidth = str.includes('1') ? this.top_right_left\n : rtl ? this.top_bottom_left : this.top_right_bottom;\n this.mhBdrElement.style.borderWidth = str.includes('2') ? this.top_right_left\n : rtl ? this.top_right_bottom : this.top_bottom_left;\n }\n }\n else {\n this.bdrElement.style.borderWidth = str.includes('2') ? rtl ? this.top_right_bottom\n : this.top_bottom_left : this.right_bottom_left;\n if (this.parent.isFrozenGrid()) {\n this.mcBdrElement.style.borderWidth = str.includes('1') ? rtl ? this.top_bottom_left\n : this.top_right_bottom : this.right_bottom_left;\n }\n if (this.parent.frozenRows) {\n this.fhBdrElement.style.borderWidth = str.includes('1') ? this.top_right_left\n : rtl ? this.top_right_bottom : this.top_bottom_left;\n if (this.parent.isFrozenGrid()) {\n this.mhBdrElement.style.borderWidth = str.includes('2') ? this.top_right_left\n : rtl ? this.top_bottom_left : this.top_right_bottom;\n }\n }\n }\n }\n break;\n default:\n this.bdrElement.style.borderWidth = this.all_border;\n if (this.parent.isFrozenGrid()) {\n this.mcBdrElement.style.borderWidth = this.all_border;\n }\n if (this.parent.frozenRows) {\n this.fhBdrElement.style.borderWidth = this.all_border;\n if (this.parent.isFrozenGrid()) {\n this.mhBdrElement.style.borderWidth = this.all_border;\n }\n }\n break;\n }\n }\n };\n Selection.prototype.createBorders = function () {\n if (!this.bdrElement) {\n this.bdrElement = this.parent.getContentTable().parentElement.appendChild(createElement('div', {\n className: 'e-xlsel', id: this.parent.element.id + '_bdr',\n styles: 'width: 2px; border-width: 0;'\n }));\n if (this.parent.isFrozenGrid()) {\n this.mcBdrElement = this.parent.contentModule.getMovableContent().appendChild(createElement('div', {\n className: 'e-xlsel', id: this.parent.element.id + '_mcbdr',\n styles: 'height: 2px; border-width: 0;'\n }));\n if (this.parent.getFrozenMode() === literals.leftRight) {\n this.frcBdrElement = this.parent.contentModule.getFrozenRightContent().appendChild(createElement('div', {\n className: 'e-xlsel', id: this.parent.element.id + '_frcbdr',\n styles: 'height: 2px; border-width: 0;'\n }));\n }\n }\n if (this.parent.frozenRows) {\n this.fhBdrElement = this.parent.getHeaderTable().parentElement.appendChild(createElement('div', { className: 'e-xlsel', id: this.parent.element.id + '_fhbdr', styles: 'height: 2px;' }));\n }\n if (this.parent.frozenRows && this.parent.isFrozenGrid()) {\n this.mhBdrElement = this.parent.headerModule.getMovableHeader().appendChild(createElement('div', { className: 'e-xlsel', id: this.parent.element.id + '_mhbdr', styles: 'height: 2px;' }));\n if (this.parent.getFrozenMode() === literals.leftRight) {\n this.frhBdrElement = this.parent.headerModule.getFrozenRightHeader().appendChild(createElement('div', { className: 'e-xlsel', id: this.parent.element.id + '_frhbdr', styles: 'height: 2px;' }));\n }\n }\n }\n };\n Selection.prototype.showHideBorders = function (display) {\n if (this.bdrElement) {\n this.bdrElement.style.display = display;\n if (this.parent.isFrozenGrid()) {\n this.mcBdrElement.style.display = display;\n if (this.parent.getFrozenMode() === literals.leftRight) {\n this.frcBdrElement.style.display = display;\n }\n }\n if (this.parent.frozenRows) {\n this.fhBdrElement.style.display = display;\n }\n if (this.parent.frozenRows && this.parent.isFrozenGrid()) {\n this.mhBdrElement.style.display = display;\n if (this.parent.getFrozenMode() === literals.leftRight) {\n this.frhBdrElement.style.display = display;\n }\n }\n }\n };\n Selection.prototype.drawAFBorders = function () {\n if (!this.bdrAFBottom) {\n this.createAFBorders();\n }\n this.positionAFBorders();\n };\n Selection.prototype.positionAFBorders = function () {\n if (!this.startCell || !this.bdrAFLeft) {\n return;\n }\n var stOff = this.startAFCell.getBoundingClientRect();\n var endOff = this.endAFCell.getBoundingClientRect();\n var top = endOff.top - stOff.top > 0 ? 1 : 0;\n var firstCellTop = endOff.top - stOff.top >= 0 && (parentsUntil(this.startAFCell, literals.movableContent) ||\n parentsUntil(this.startAFCell, 'e-frozencontent')) && this.isFirstRow(this.startAFCell) ? 1.5 : 0;\n var firstCellLeft = (parentsUntil(this.startAFCell, literals.movableContent) ||\n parentsUntil(this.startAFCell, literals.movableHeader)) && this.isFirstCell(this.startAFCell) ? 1 : 0;\n var rowHeight = this.isLastRow(this.endAFCell) && (parentsUntil(this.endAFCell, literals.movableContent) ||\n parentsUntil(this.endAFCell, 'e-frozencontent')) ? 2 : 0;\n var parentOff = this.startAFCell.offsetParent.getBoundingClientRect();\n var parentRect = this.parent.element.getBoundingClientRect();\n var sTop = this.startAFCell.offsetParent.parentElement.scrollTop;\n var sLeft = this.startAFCell.offsetParent.parentElement.scrollLeft;\n var scrollTop = sTop - this.startAFCell.offsetTop;\n var scrollLeft = sLeft - this.startAFCell.offsetLeft;\n var totalHeight = this.parent.element.clientHeight;\n var totalWidth = this.parent.element.clientWidth;\n scrollTop = scrollTop > 0 ? Math.floor(scrollTop) - 1 : 0;\n scrollLeft = scrollLeft > 0 ? scrollLeft : 0;\n var left = stOff.left - parentRect.left;\n if (!this.parent.enableRtl) {\n this.bdrAFLeft.style.left = left - firstCellLeft + scrollLeft - 1 + 'px';\n this.bdrAFRight.style.left = endOff.left - parentRect.left - 2 + endOff.width + 'px';\n this.bdrAFRight.style.width = totalWidth <= parseInt(this.bdrAFRight.style.left, 10) ? '0px' : '2px';\n this.bdrAFTop.style.left = left + scrollLeft - 0.5 + 'px';\n this.bdrAFTop.style.width = parseInt(this.bdrAFRight.style.left, 10) - parseInt(this.bdrAFLeft.style.left, 10)\n - firstCellLeft + 1 + 'px';\n if (totalWidth <= (parseInt(this.bdrAFTop.style.width, 10) + parseInt(this.bdrAFTop.style.left, 10))) {\n var leftRemove = (parseInt(this.bdrAFTop.style.width, 10) + parseInt(this.bdrAFTop.style.left, 10)) - totalWidth;\n this.bdrAFTop.style.width = parseInt(this.bdrAFTop.style.width, 10) - leftRemove + 'px';\n }\n }\n else {\n var scrolloffSet = (parentsUntil(this.startAFCell, literals.movableContent) ||\n parentsUntil(this.startAFCell, literals.movableHeader)) ? stOff.right -\n this.startAFCell.offsetParent.parentElement.getBoundingClientRect().width -\n parentRect.left : 0;\n this.bdrAFLeft.style.right = parentRect.right - endOff.right - 2 + endOff.width + 'px';\n this.bdrAFLeft.style.width = totalWidth <= parseInt(this.bdrAFLeft.style.right, 10) ? '0px' : '2px';\n this.bdrAFRight.style.right = parentRect.right - stOff.right - firstCellLeft + scrolloffSet - 1 + 'px';\n this.bdrAFTop.style.left = endOff.left - parentRect.left - 0.5 + 'px';\n this.bdrAFTop.style.width = parseInt(this.bdrAFLeft.style.right, 10) - parseInt(this.bdrAFRight.style.right, 10)\n - firstCellLeft + 1 + 'px';\n if (parseInt(this.bdrAFTop.style.left, 10) < 0) {\n this.bdrAFTop.style.width = parseInt(this.bdrAFTop.style.width, 10) + parseInt(this.bdrAFTop.style.left, 10) + 'px';\n this.bdrAFTop.style.left = '0px';\n }\n }\n this.bdrAFLeft.style.top = stOff.top - parentRect.top - firstCellTop + scrollTop + 'px';\n this.bdrAFLeft.style.height = endOff.top - stOff.top > 0 ?\n (endOff.top - parentOff.top + endOff.height + 1) - (stOff.top - parentOff.top) + firstCellTop - rowHeight - scrollTop + 'px' :\n endOff.height + firstCellTop - rowHeight - scrollTop + 'px';\n this.bdrAFRight.style.top = this.bdrAFLeft.style.top;\n this.bdrAFRight.style.height = parseInt(this.bdrAFLeft.style.height, 10) + 'px';\n this.bdrAFTop.style.top = this.bdrAFRight.style.top;\n this.bdrAFBottom.style.left = this.bdrAFTop.style.left;\n this.bdrAFBottom.style.top = parseFloat(this.bdrAFLeft.style.top) + parseFloat(this.bdrAFLeft.style.height) - top - 1 + 'px';\n this.bdrAFBottom.style.width = totalHeight <= parseFloat(this.bdrAFBottom.style.top) ? '0px' : this.bdrAFTop.style.width;\n if (totalHeight <= (parseInt(this.bdrAFLeft.style.height, 10) + parseInt(this.bdrAFLeft.style.top, 10))) {\n var topRemove = parseInt(this.bdrAFLeft.style.height, 10) + parseInt(this.bdrAFLeft.style.top, 10) - totalHeight;\n this.bdrAFLeft.style.height = parseInt(this.bdrAFLeft.style.height, 10) - topRemove + 'px';\n this.bdrAFRight.style.height = parseInt(this.bdrAFLeft.style.height, 10) + 'px';\n }\n };\n Selection.prototype.createAFBorders = function () {\n if (!this.bdrAFLeft) {\n this.bdrAFLeft = this.parent.element.appendChild(createElement('div', { className: 'e-xlselaf', id: this.parent.element.id + '_bdrafleft', styles: 'width: 2px;' }));\n this.bdrAFRight = this.parent.element.appendChild(createElement('div', { className: 'e-xlselaf', id: this.parent.element.id + '_bdrafright', styles: 'width: 2px;' }));\n this.bdrAFBottom = this.parent.element.appendChild(createElement('div', { className: 'e-xlselaf', id: this.parent.element.id + '_bdrafbottom', styles: 'height: 2px;' }));\n this.bdrAFTop = this.parent.element.appendChild(createElement('div', { className: 'e-xlselaf', id: this.parent.element.id + '_bdraftop', styles: 'height: 2px;' }));\n }\n };\n Selection.prototype.showAFBorders = function () {\n if (this.bdrAFLeft) {\n this.bdrAFLeft.style.display = '';\n this.bdrAFRight.style.display = '';\n this.bdrAFBottom.style.display = '';\n this.bdrAFTop.style.display = '';\n }\n };\n Selection.prototype.hideAFBorders = function () {\n if (this.bdrAFLeft) {\n this.bdrAFLeft.style.display = 'none';\n this.bdrAFRight.style.display = 'none';\n this.bdrAFBottom.style.display = 'none';\n this.bdrAFTop.style.display = 'none';\n }\n };\n Selection.prototype.updateValue = function (rIdx, cIdx, cell) {\n var args = this.createBeforeAutoFill(rIdx, cIdx, cell);\n if (!args.cancel) {\n var col = this.parent.getColumnByIndex(cIdx);\n if (this.parent.editModule && cell) {\n if (col.type === 'number') {\n this.parent.editModule.updateCell(rIdx, col.field, parseFloat(args.value));\n }\n else {\n this.parent.editModule.updateCell(rIdx, col.field, args.value);\n }\n }\n }\n };\n Selection.prototype.createBeforeAutoFill = function (rowIndex, colIndex, cell) {\n var col = this.parent.getColumnByIndex(colIndex);\n var args = {\n column: col,\n value: cell.innerText\n };\n this.parent.trigger(events.beforeAutoFill, args);\n return args;\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n Selection.prototype.getAutoFillCells = function (rowIndex, startCellIdx) {\n var cls = '.e-cellselectionbackground';\n var cells = [].slice.call(this.parent.getDataRows()[parseInt(rowIndex.toString(), 10)].querySelectorAll(cls));\n if (this.parent.isFrozenGrid()) {\n cells = cells.concat([].slice.call(this.parent.getMovableDataRows()[parseInt(rowIndex.toString(), 10)].querySelectorAll(cls)));\n if (this.parent.getFrozenMode() === literals.leftRight) {\n cells = cells.concat([].slice.call(this.parent.getFrozenRightDataRows()[parseInt(rowIndex.toString(), 10)]\n .querySelectorAll(cls)));\n }\n }\n return cells;\n };\n Selection.prototype.selectLikeAutoFill = function (e, isApply) {\n var startrowIdx = parseInt(parentsUntil(this.startAFCell, literals.row).getAttribute(literals.dataRowIndex), 10);\n var startCellIdx = parseInt(this.startAFCell.getAttribute(literals.dataColIndex), 10);\n var endrowIdx = parseInt(parentsUntil(this.endAFCell, literals.row).getAttribute(literals.dataRowIndex), 10);\n var endCellIdx = parseInt(this.endAFCell.getAttribute(literals.dataColIndex), 10);\n var rowLen = this.selectedRowCellIndexes.length - 1;\n var colLen = this.selectedRowCellIndexes[0].cellIndexes.length - 1;\n switch (true) { //direction\n case !isApply && this.endAFCell.classList.contains('e-cellselectionbackground') &&\n !!parentsUntil(e.target, literals.rowCell):\n this.startAFCell = this.parent.getCellFromIndex(startrowIdx, startCellIdx);\n this.endAFCell = this.parent.getCellFromIndex(startrowIdx + rowLen, startCellIdx + colLen);\n this.drawAFBorders();\n break;\n case this.autoFillRLselection && startCellIdx + colLen < endCellIdx && //right\n endCellIdx - startCellIdx - colLen + 1 > endrowIdx - startrowIdx - rowLen // right bottom\n && endCellIdx - startCellIdx - colLen + 1 > startrowIdx - endrowIdx: //right top\n this.endAFCell = this.parent.getCellFromIndex(startrowIdx + rowLen, endCellIdx);\n endrowIdx = parseInt(parentsUntil(this.endAFCell, literals.row).getAttribute(literals.dataRowIndex), 10);\n endCellIdx = parseInt(this.endAFCell.getAttribute(literals.dataColIndex), 10);\n if (!isApply) {\n this.drawAFBorders();\n }\n else {\n var cellIdx = parseInt(this.endCell.getAttribute(literals.dataColIndex), 10);\n for (var i = startrowIdx; i <= endrowIdx; i++) {\n var cells = this.getAutoFillCells(i, startCellIdx);\n var c = 0;\n for (var j = cellIdx + 1; j <= endCellIdx; j++) {\n if (c > colLen) {\n c = 0;\n }\n this.updateValue(i, j, cells[parseInt(c.toString(), 10)]);\n c++;\n }\n }\n this.selectCellsByRange({ rowIndex: startrowIdx, cellIndex: this.startCellIndex }, { rowIndex: endrowIdx, cellIndex: endCellIdx });\n }\n break;\n case this.autoFillRLselection && startCellIdx > endCellIdx && // left\n startCellIdx - endCellIdx + 1 > endrowIdx - startrowIdx - rowLen && //left top\n startCellIdx - endCellIdx + 1 > startrowIdx - endrowIdx: // left bottom\n this.startAFCell = this.parent.getCellFromIndex(startrowIdx, endCellIdx);\n this.endAFCell = this.endCell;\n if (!isApply) {\n this.drawAFBorders();\n }\n else {\n for (var i = startrowIdx; i <= startrowIdx + rowLen; i++) {\n var cells = this.getAutoFillCells(i, startCellIdx);\n cells.reverse();\n var c = 0;\n for (var j = this.startCellIndex - 1; j >= endCellIdx; j--) {\n if (c > colLen) {\n c = 0;\n }\n this.updateValue(i, j, cells[parseInt(c.toString(), 10)]);\n c++;\n }\n }\n this.selectCellsByRange({ rowIndex: startrowIdx, cellIndex: endCellIdx }, { rowIndex: startrowIdx + rowLen, cellIndex: this.startCellIndex + colLen });\n }\n break;\n case startrowIdx > endrowIdx: //up\n this.startAFCell = this.parent.getCellFromIndex(endrowIdx, startCellIdx);\n this.endAFCell = this.endCell;\n if (!isApply) {\n this.drawAFBorders();\n }\n else {\n var trIdx = parseInt(this.endCell.parentElement.getAttribute(literals.dataRowIndex), 10);\n var r = trIdx;\n for (var i = startrowIdx - 1; i >= endrowIdx; i--) {\n if (r === this.startIndex - 1) {\n r = trIdx;\n }\n var cells = this.getAutoFillCells(r, startCellIdx);\n var c = 0;\n r--;\n for (var j = this.startCellIndex; j <= this.startCellIndex + colLen; j++) {\n this.updateValue(i, j, cells[parseInt(c.toString(), 10)]);\n c++;\n }\n }\n this.selectCellsByRange({ rowIndex: endrowIdx, cellIndex: startCellIdx + colLen }, { rowIndex: startrowIdx + rowLen, cellIndex: startCellIdx });\n }\n break;\n default: //down\n this.endAFCell = this.parent.getCellFromIndex(endrowIdx, startCellIdx + colLen);\n if (!isApply) {\n this.drawAFBorders();\n }\n else {\n var trIdx = parseInt(this.endCell.parentElement.getAttribute(literals.dataRowIndex), 10);\n var r = this.startIndex;\n for (var i = trIdx + 1; i <= endrowIdx; i++) {\n if (r === trIdx + 1) {\n r = this.startIndex;\n }\n var cells = this.getAutoFillCells(r, startCellIdx);\n r++;\n var c = 0;\n for (var m = this.startCellIndex; m <= this.startCellIndex + colLen; m++) {\n this.updateValue(i, m, cells[parseInt(c.toString(), 10)]);\n c++;\n }\n }\n this.selectCellsByRange({ rowIndex: trIdx - rowLen, cellIndex: startCellIdx }, { rowIndex: endrowIdx, cellIndex: startCellIdx + colLen });\n }\n break;\n }\n };\n Selection.prototype.mouseUpHandler = function (e) {\n document.body.classList.remove('e-disableuserselect');\n if (this.element) {\n remove(this.element);\n }\n if (this.isDragged && this.selectedRowCellIndexes.length === 1 && this.selectedRowCellIndexes[0].cellIndexes.length === 1) {\n this.mUPTarget = parentsUntil(e.target, literals.rowCell);\n }\n else {\n this.mUPTarget = null;\n }\n var closeRowCell = closest(e.target, '.e-rowcell');\n if (this.isDragged && !this.isAutoFillSel && this.selectionSettings.mode === 'Cell' &&\n closeRowCell && closeRowCell.classList.contains(literals.rowCell)) {\n var rowIndex = parseInt(closeRowCell.parentElement.getAttribute(literals.dataRowIndex), 10);\n var cellIndex = parseInt(closeRowCell.getAttribute(literals.dataColIndex), 10);\n this.isDragged = false;\n this.clearCellSelection();\n this.selectCellsByRange({ rowIndex: this.startDIndex, cellIndex: this.startDCellIndex }, { rowIndex: rowIndex, cellIndex: cellIndex });\n }\n this.isDragged = false;\n this.updateAutoFillPosition();\n if (this.isAutoFillSel) {\n var lastCell = parentsUntil(e.target, literals.rowCell);\n this.endAFCell = lastCell ? lastCell : this.endCell === this.endAFCell ? this.startAFCell : this.endAFCell;\n this.startAFCell = this.startCell;\n this.updateStartCellsIndex();\n this.selectLikeAutoFill(e, true);\n this.updateAutoFillPosition();\n this.hideAFBorders();\n this.positionBorders();\n this.isAutoFillSel = false;\n }\n EventHandler.remove(this.parent.getContent(), 'mousemove', this.mouseMoveHandler);\n if (this.parent.frozenRows) {\n EventHandler.remove(this.parent.getHeaderContent(), 'mousemove', this.mouseMoveHandler);\n }\n EventHandler.remove(document, 'mouseup', this.mouseUpHandler);\n };\n Selection.prototype.hideAutoFill = function () {\n if (this.autofill) {\n this.autofill.style.display = 'none';\n }\n };\n /**\n * @returns {void}\n * @hidden\n */\n Selection.prototype.updateAutoFillPosition = function () {\n if (this.parent.enableAutoFill && !this.parent.isEdit &&\n this.selectionSettings.cellSelectionMode.indexOf('Box') > -1 && !this.isRowType() && !this.isSingleSel()\n && this.selectedRowCellIndexes.length) {\n var index = parseInt(this.target.getAttribute(literals.dataColIndex), 10);\n var rindex = parseInt(this.target.getAttribute('index'), 10);\n var rowIndex = this.selectedRowCellIndexes[this.selectedRowCellIndexes.length - 1].rowIndex;\n var cells = this.getAutoFillCells(rowIndex, index).filter(function (ele) { return ele.style.display === ''; });\n var col = this.parent.getColumnByIndex(index);\n var isFrozenCol = col.getFreezeTableName() === 'movable';\n var isFrozenRow = rindex < this.parent.frozenRows;\n var isFrozenRight = this.parent.getFrozenMode() === literals.leftRight\n && col.getFreezeTableName() === literals.frozenRight;\n if (!select('#' + this.parent.element.id + '_autofill', parentsUntil(this.target, literals.table))) {\n if (select('#' + this.parent.element.id + '_autofill', this.parent.element)) {\n select('#' + this.parent.element.id + '_autofill', this.parent.element).remove();\n }\n this.autofill = createElement('div', { className: 'e-autofill', id: this.parent.element.id + '_autofill' });\n this.autofill.style.display = 'none';\n if (!isFrozenRow) {\n if (!isFrozenCol) {\n this.parent.getContentTable().parentElement.appendChild(this.autofill);\n }\n else {\n this.parent.contentModule.getMovableContent().appendChild(this.autofill);\n }\n }\n else {\n if (!isFrozenCol) {\n this.parent.getHeaderTable().parentElement.appendChild(this.autofill);\n }\n else {\n this.parent.headerModule.getMovableHeader().appendChild(this.autofill);\n }\n }\n if (isFrozenRight) {\n if (isFrozenRow) {\n this.parent.getFrozenRightHeader().appendChild(this.autofill);\n }\n else {\n this.parent.getFrozenRightContent().appendChild(this.autofill);\n }\n }\n }\n var cell = cells[cells.length - 1];\n if (cell && cell.offsetParent) {\n var clientRect = cell.getBoundingClientRect();\n var parentOff = cell.offsetParent.getBoundingClientRect();\n var colWidth = this.isLastCell(cell) ? 4 : 0;\n var rowHeight = this.isLastRow(cell) ? 3 : 0;\n if (!this.parent.enableRtl) {\n this.autofill.style.left = clientRect.left - parentOff.left + clientRect.width - 4 - colWidth + 'px';\n }\n else {\n this.autofill.style.right = parentOff.right - clientRect.right + clientRect.width - 4 - colWidth + 'px';\n }\n this.autofill.style.top = clientRect.top - parentOff.top + clientRect.height - 5 - rowHeight + 'px';\n }\n this.autofill.style.display = '';\n }\n else {\n this.hideAutoFill();\n }\n };\n Selection.prototype.mouseDownHandler = function (e) {\n this.mouseButton = e.button;\n var target = e.target;\n var gObj = this.parent;\n var isDrag;\n var gridElement = parentsUntil(target, 'e-grid');\n if (gridElement && gridElement.id !== gObj.element.id || parentsUntil(target, literals.headerContent) && !this.parent.frozenRows ||\n parentsUntil(target, 'e-editedbatchcell') || parentsUntil(target, literals.editedRow)) {\n return;\n }\n if (e.shiftKey || e.ctrlKey) {\n e.preventDefault();\n }\n if (parentsUntil(target, literals.rowCell) && !e.shiftKey && !e.ctrlKey) {\n if (gObj.selectionSettings.cellSelectionMode.indexOf('Box') > -1 && !this.isRowType() && !this.isSingleSel()) {\n this.isCellDrag = true;\n isDrag = true;\n }\n else if (gObj.allowRowDragAndDrop && !gObj.isEdit && !this.parent.selectionSettings.checkboxOnly) {\n this.isRowDragSelected = false;\n if (!this.isRowType() || this.isSingleSel() || closest(target, 'td').classList.contains('e-selectionbackground')) {\n this.isDragged = false;\n return;\n }\n isDrag = true;\n this.element = this.parent.createElement('div', { className: 'e-griddragarea' });\n gObj.getContent().appendChild(this.element);\n }\n if (isDrag) {\n this.enableDrag(e, true);\n }\n }\n this.updateStartEndCells();\n if (target.classList.contains('e-autofill') || target.classList.contains('e-xlsel')) {\n this.isCellDrag = true;\n this.isAutoFillSel = true;\n this.enableDrag(e);\n }\n };\n Selection.prototype.updateStartEndCells = function () {\n var cells = [].slice.call(this.parent.element.getElementsByClassName('e-cellselectionbackground'));\n this.startCell = cells[0];\n this.endCell = cells[cells.length - 1];\n if (this.startCell) {\n this.startIndex = parseInt(this.startCell.parentElement.getAttribute(literals.dataRowIndex), 10);\n this.startCellIndex = parseInt(parentsUntil(this.startCell, literals.rowCell).getAttribute(literals.dataColIndex), 10);\n }\n };\n Selection.prototype.updateStartCellsIndex = function () {\n if (this.startCell) {\n this.startIndex = parseInt(this.startCell.parentElement.getAttribute(literals.dataRowIndex), 10);\n this.startCellIndex = parseInt(parentsUntil(this.startCell, literals.rowCell).getAttribute(literals.dataColIndex), 10);\n }\n };\n Selection.prototype.enableDrag = function (e, isUpdate) {\n var gObj = this.parent;\n if (isUpdate) {\n var tr = closest(e.target, 'tr');\n this.startDIndex = parseInt(tr.getAttribute(literals.dataRowIndex), 10);\n this.startDCellIndex = parseInt(parentsUntil(e.target, literals.rowCell).getAttribute(literals.dataColIndex), 10);\n }\n document.body.classList.add('e-disableuserselect');\n var gBRect = gObj.element.getBoundingClientRect();\n var postion = getPosition(e);\n this.x = postion.x - gBRect.left;\n this.y = postion.y - gBRect.top;\n EventHandler.add(gObj.getContent(), 'mousemove', this.mouseMoveHandler, this);\n if (this.parent.frozenRows) {\n EventHandler.add(gObj.getHeaderContent(), 'mousemove', this.mouseMoveHandler, this);\n }\n EventHandler.add(document, 'mouseup', this.mouseUpHandler, this);\n };\n Selection.prototype.clearSelAfterRefresh = function (e) {\n var isInfiniteScroll = this.parent.enableInfiniteScrolling && e.requestType === 'infiniteScroll';\n if (e.requestType !== 'virtualscroll' && !this.parent.isPersistSelection && !isInfiniteScroll) {\n this.clearSelection();\n }\n if ((e.requestType === 'virtualscroll' || isInfiniteScroll) && this.parent.isPersistSelection && this.isPartialSelection\n && this.isHdrSelectAllClicked) {\n var rowObj = this.parent.getRowsObject().filter(function (e) { return e.isSelectable; });\n var indexes = [];\n this.selectedRowState = {};\n this.persistSelectedData = [];\n for (var i = 0; i < rowObj.length; i++) {\n indexes.push(rowObj[parseInt(i.toString(), 10)].index);\n var pkValue = this.getPkValue(this.primaryKey, rowObj[parseInt(i.toString(), 10)].data);\n this.selectedRowState[\"\" + pkValue] = true;\n this.persistSelectedData.push(rowObj[parseInt(i.toString(), 10)].data);\n }\n this.selectedRowIndexes = indexes;\n }\n };\n /**\n * @returns {void}\n * @hidden\n */\n Selection.prototype.addEventListener = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n this.evtHandlers = [{ event: events.uiUpdate, handler: this.enableAfterRender },\n { event: events.initialEnd, handler: this.initializeSelection },\n { event: events.rowSelectionComplete, handler: this.onActionComplete },\n { event: events.cellSelectionComplete, handler: this.onActionComplete },\n { event: events.inBoundModelChanged, handler: this.onPropertyChanged },\n { event: events.cellFocused, handler: this.onCellFocused },\n { event: events.beforeFragAppend, handler: this.clearSelAfterRefresh },\n { event: events.columnPositionChanged, handler: this.columnPositionChanged },\n { event: events.contentReady, handler: this.initialEnd },\n { event: events.rowsRemoved, handler: this.rowsRemoved },\n { event: events.headerRefreshed, handler: this.refreshHeader },\n { event: events.destroy, handler: this.destroy }];\n addRemoveEventListener(this.parent, this.evtHandlers, true, this);\n this.actionBeginFunction = this.actionBegin.bind(this);\n this.actionCompleteFunction = this.actionComplete.bind(this);\n this.parent.addEventListener(events.actionBegin, this.actionBeginFunction);\n this.parent.addEventListener(events.actionComplete, this.actionCompleteFunction);\n this.addEventListener_checkbox();\n };\n /**\n * @returns {void}\n * @hidden\n */\n Selection.prototype.removeEventListener = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n addRemoveEventListener(this.parent, this.evtHandlers, false);\n this.parent.removeEventListener(events.actionBegin, this.actionBeginFunction);\n this.parent.removeEventListener(events.actionComplete, this.actionCompleteFunction);\n this.removeEventListener_checkbox();\n };\n Selection.prototype.wireEvents = function () {\n this.isMacOS = navigator.userAgent.indexOf('Mac OS') !== -1;\n if (this.isMacOS) {\n EventHandler.add(this.parent.element, 'keydown', this.keyDownHandler, this);\n EventHandler.add(this.parent.element, 'keyup', this.keyUpHandler, this);\n }\n else {\n if (!this.parent.allowKeyboard) {\n EventHandler.add(this.parent.element, 'keydown', this.keyDownHandler, this);\n }\n }\n };\n Selection.prototype.unWireEvents = function () {\n if (this.isMacOS) {\n EventHandler.remove(this.parent.element, 'keydown', this.keyDownHandler);\n EventHandler.remove(this.parent.element, 'keyup', this.keyUpHandler);\n }\n else {\n if (!this.parent.allowKeyboard) {\n EventHandler.remove(this.parent.element, 'keydown', this.keyDownHandler);\n }\n }\n };\n Selection.prototype.columnPositionChanged = function () {\n if (!this.parent.isPersistSelection) {\n this.clearSelection();\n }\n };\n Selection.prototype.refreshHeader = function () {\n this.setCheckAllState();\n };\n Selection.prototype.rowsRemoved = function (e) {\n for (var i = 0; i < e.records.length; i++) {\n var pkValue = this.getPkValue(this.primaryKey, e.records[parseInt(i.toString(), 10)]);\n delete (this.selectedRowState[\"\" + pkValue]);\n --this.totalRecordsCount;\n }\n this.setCheckAllState();\n };\n Selection.prototype.beforeFragAppend = function (e) {\n if (e.requestType !== 'virtualscroll' && !this.parent.isPersistSelection) {\n this.clearSelection();\n }\n };\n Selection.prototype.getCheckAllBox = function () {\n return this.parent.getHeaderContent().querySelector('.e-checkselectall');\n };\n Selection.prototype.enableAfterRender = function (e) {\n if (e.module === this.getModuleName() && e.enable) {\n this.render();\n this.initPerisistSelection();\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n Selection.prototype.render = function (e) {\n EventHandler.add(this.parent.getContent(), 'mousedown', this.mouseDownHandler, this);\n EventHandler.add(this.parent.getHeaderContent(), 'mousedown', this.mouseDownHandler, this);\n };\n Selection.prototype.onPropertyChanged = function (e) {\n if (e.module !== this.getModuleName()) {\n return;\n }\n var gObj = this.parent;\n if (!isNullOrUndefined(e.properties.type) && this.selectionSettings.type === 'Single') {\n if (this.selectedRowCellIndexes.length > 1) {\n this.clearCellSelection();\n this.prevCIdxs = undefined;\n }\n if (this.selectedRowIndexes.length > 1) {\n this.clearRowSelection();\n this.prevRowIndex = undefined;\n }\n if (this.selectedColumnsIndexes.length > 1) {\n this.clearColumnSelection();\n this.prevColIndex = undefined;\n }\n this.enableSelectMultiTouch = false;\n this.hidePopUp();\n }\n if (!isNullOrUndefined(e.properties.mode) ||\n !isNullOrUndefined(e.properties.cellSelectionMode)) {\n this.clearSelection();\n this.prevRowIndex = undefined;\n this.prevCIdxs = undefined;\n this.prevColIndex = undefined;\n }\n this.isPersisted = true;\n this.checkBoxSelectionChanged();\n this.isPersisted = false;\n if (!this.parent.isCheckBoxSelection) {\n this.initPerisistSelection();\n }\n var checkboxColumn = this.parent.getColumns().filter(function (col) { return col.type === 'checkbox'; });\n if (checkboxColumn.length) {\n gObj.isCheckBoxSelection = !(this.selectionSettings.checkboxMode === 'ResetOnRowClick');\n }\n this.drawBorders();\n };\n Selection.prototype.hidePopUp = function () {\n if (this.parent.element.querySelector('.e-gridpopup').getElementsByClassName('e-rowselect').length) {\n this.parent.element.querySelector('.e-gridpopup').style.display = 'none';\n }\n };\n Selection.prototype.initialEnd = function (e) {\n var isFrozen = this.parent.isFrozenGrid();\n var isLeftRightFrozen = this.parent.getFrozenMode() === literals.leftRight;\n if ((!isFrozen || (isFrozen && (!isLeftRightFrozen && !e.args.isFrozen)\n || (isLeftRightFrozen && e.args.renderFrozenRightContent))) && !this.selectedRowIndexes.length) {\n this.parent.off(events.contentReady, this.initialEnd);\n this.selectRow(this.parent.selectedRowIndex);\n }\n };\n Selection.prototype.checkBoxSelectionChanged = function () {\n var gobj = this.parent;\n gobj.off(events.contentReady, this.checkBoxSelectionChanged);\n var checkboxColumn = gobj.getColumns().filter(function (col) { return col.type === 'checkbox'; });\n if (checkboxColumn.length > 0) {\n gobj.isCheckBoxSelection = true;\n this.chkField = checkboxColumn[0].field;\n this.totalRecordsCount = this.parent.pageSettings.totalRecordsCount;\n if (isNullOrUndefined(this.totalRecordsCount)) {\n this.totalRecordsCount = this.getCurrentBatchRecordChanges().length;\n }\n if (this.isSingleSel()) {\n gobj.selectionSettings.type = 'Multiple';\n gobj.dataBind();\n }\n else {\n this.initPerisistSelection();\n }\n }\n if (!gobj.isCheckBoxSelection && !this.isPersisted) {\n this.chkField = null;\n this.initPerisistSelection();\n }\n };\n Selection.prototype.initPerisistSelection = function () {\n var gobj = this.parent;\n if (this.parent.selectionSettings.persistSelection && this.parent.getPrimaryKeyFieldNames().length > 0) {\n gobj.isPersistSelection = true;\n this.ensureCheckboxFieldSelection();\n }\n else if (this.parent.getPrimaryKeyFieldNames().length > 0) {\n gobj.isPersistSelection = false;\n this.ensureCheckboxFieldSelection();\n }\n else {\n gobj.isPersistSelection = false;\n this.selectedRowState = {};\n }\n };\n Selection.prototype.ensureCheckboxFieldSelection = function () {\n var gobj = this.parent;\n this.primaryKey = this.parent.getPrimaryKeyFieldNames()[0];\n if (!gobj.enableVirtualization && this.chkField\n && ((gobj.isPersistSelection && Object.keys(this.selectedRowState).length === 0) ||\n !gobj.isPersistSelection)) {\n var data = this.parent.getDataModule();\n var query = new Query().where(this.chkField, 'equal', true);\n if (!query.params) {\n query.params = this.parent.query.params;\n }\n var dataManager = data.getData({}, query);\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var proxy_1 = this;\n this.parent.showSpinner();\n dataManager.then(function (e) {\n proxy_1.dataSuccess(e.result);\n proxy_1.refreshPersistSelection();\n proxy_1.parent.hideSpinner();\n });\n }\n };\n Selection.prototype.dataSuccess = function (res) {\n for (var i = 0; i < res.length; i++) {\n var pkValue = this.getPkValue(this.primaryKey, res[parseInt(i.toString(), 10)]);\n if (isNullOrUndefined(this.selectedRowState[\"\" + pkValue]) && res[parseInt(i.toString(), 10)][this.chkField]) {\n this.selectedRowState[\"\" + pkValue] = res[parseInt(i.toString(), 10)][this.chkField];\n }\n }\n this.persistSelectedData = res;\n };\n Selection.prototype.setRowSelection = function (state) {\n if (!(this.parent.getDataModule().isRemote() || (!isNullOrUndefined(this.parent.dataSource)\n && this.parent.dataSource.result))) {\n if (state) {\n if (this.isPartialSelection && (this.parent.enableVirtualization || this.parent.enableInfiniteScrolling)) {\n var rowObj = this.parent.getRowsObject().filter(function (e) { return e.isSelectable; });\n for (var _i = 0, rowObj_1 = rowObj; _i < rowObj_1.length; _i++) {\n var row = rowObj_1[_i];\n this.selectedRowState[this.getPkValue(this.primaryKey, row.data)] = true;\n }\n }\n else {\n var selectedData = this.isPartialSelection ? this.parent.partialSelectedRecords : this.getData();\n if (this.parent.groupSettings.columns.length) {\n for (var _a = 0, _b = this.isPartialSelection ? selectedData : selectedData.records; _a < _b.length; _a++) {\n var data = _b[_a];\n this.selectedRowState[this.getPkValue(this.primaryKey, data)] = true;\n }\n }\n else {\n for (var _c = 0, selectedData_1 = selectedData; _c < selectedData_1.length; _c++) {\n var data = selectedData_1[_c];\n this.selectedRowState[this.getPkValue(this.primaryKey, data)] = true;\n }\n }\n }\n }\n else {\n this.selectedRowState = {};\n }\n // (this.getData()).forEach(function (data) {\n // this.selectedRowState[data[this.primaryKey]] = true;\n // })\n }\n else {\n if (state) {\n var selectedStateKeys = Object.keys(this.selectedRowState);\n var unSelectedRowStateKeys = Object.keys(this.unSelectedRowState);\n if (!this.isCheckboxReset) {\n for (var _d = 0, _e = this.parent.currentViewData; _d < _e.length; _d++) {\n var data = _e[_d];\n var key = data[this.primaryKey].toString();\n if (selectedStateKeys.indexOf(key) === -1 && unSelectedRowStateKeys.indexOf(key) === -1) {\n this.selectedRowState[data[this.primaryKey]] = true;\n }\n }\n }\n }\n else {\n this.selectedRowState = {};\n this.unSelectedRowState = {};\n this.rmtHdrChkbxClicked = false;\n }\n }\n };\n Selection.prototype.getData = function () {\n return this.parent.getDataModule().dataManager.executeLocal(this.parent.getDataModule().generateQuery(true));\n };\n Selection.prototype.refreshPersistSelection = function () {\n var rows = this.parent.getRows();\n if (this.parent.isCheckBoxSelection && this.parent.isFrozenGrid()) {\n var mtbody = this.parent.getMovableContentTbody();\n if (mtbody.querySelector('.e-checkselect')) {\n rows = this.parent.getMovableRows();\n }\n if (this.parent.getFrozenMode() === literals.leftRight) {\n var frtbody = this.parent.getFrozenRightContentTbody();\n if (frtbody.querySelector('.e-checkselect')) {\n rows = this.parent.getFrozenRightRows();\n }\n }\n }\n this.totalRecordsCount = this.parent.getCurrentViewRecords().length;\n if (this.parent.allowPaging) {\n this.totalRecordsCount = this.parent.pageSettings.totalRecordsCount;\n }\n if (!isNullOrUndefined(rows) && rows.length > 0 && (this.parent.isPersistSelection || this.chkField)) {\n var indexes = [];\n for (var j = 0; j < rows.length; j++) {\n var rowObj = this.getRowObj(rows[parseInt(j.toString(), 10)]);\n var pKey = rowObj ? rowObj.data ? this.getPkValue(this.primaryKey, rowObj.data) : null : null;\n if (pKey === null) {\n return;\n }\n if (this.isPartialSelection && !rowObj.isSelectable) {\n continue;\n }\n var checkState = void 0;\n var chkBox = rows[parseInt(j.toString(), 10)].querySelector('.e-checkselect');\n if (this.selectedRowState[\"\" + pKey] || (this.parent.checkAllRows === 'Check' && this.selectedRowState[\"\" + pKey] &&\n this.totalRecordsCount === Object.keys(this.selectedRowState).length && this.chkAllCollec.indexOf(pKey) < 0)\n || (this.parent.checkAllRows === 'Uncheck' && this.chkAllCollec.indexOf(pKey) > 0 && !this.parent.selectedRowIndex)\n || (this.parent.checkAllRows === 'Intermediate' && !isNullOrUndefined(this.chkField) && rowObj.data[this.chkField])) {\n indexes.push(parseInt(rows[parseInt(j.toString(), 10)].getAttribute(literals.dataRowIndex), 10));\n checkState = true;\n }\n else {\n checkState = false;\n if (this.checkedTarget !== chkBox && this.parent.isCheckBoxSelection && chkBox) {\n removeAddCboxClasses(chkBox.nextElementSibling, checkState);\n }\n }\n this.updatePersistCollection(rows[parseInt(j.toString(), 10)], checkState);\n }\n if (this.isSingleSel() && indexes.length > 0) {\n this.selectRow(indexes[0], true);\n }\n else {\n this.selectRows(indexes);\n }\n }\n if (this.parent.isCheckBoxSelection && this.getCurrentBatchRecordChanges().length > 0) {\n this.setCheckAllState();\n }\n };\n Selection.prototype.actionBegin = function (e) {\n if (e.requestType === 'save' && this.parent.isPersistSelection) {\n var editChkBox = this.parent.element.querySelector('.e-edit-checkselect');\n if (!isNullOrUndefined(editChkBox)) {\n var row = closest(editChkBox, '.' + literals.editedRow);\n if (row) {\n if (this.parent.editSettings.mode === 'Dialog') {\n row = this.parent.element.querySelector('.e-dlgeditrow');\n }\n var rowObj = this.getRowObj(row);\n if (!rowObj) {\n return;\n }\n this.selectedRowState[this.getPkValue(this.primaryKey, rowObj.data)] = rowObj.isSelected = editChkBox.checked;\n }\n else {\n this.isCheckedOnAdd = editChkBox.checked;\n }\n }\n }\n if (this.parent.isPersistSelection && this.isPartialSelection) {\n if (e.requestType === 'paging' && (this.parent.getDataModule().isRemote()\n || (!isNullOrUndefined(this.parent.dataSource) && this.parent.dataSource.result))) {\n this.selectedRowIndexes = [];\n }\n if (e.requestType === 'filtering' || e.requestType === 'searching') {\n this.parent.partialSelectedRecords = [];\n this.parent.disableSelectedRecords = [];\n }\n }\n };\n Selection.prototype.actionComplete = function (e) {\n if (e.requestType === 'save' && this.parent.isPersistSelection) {\n if (e.action === 'add') {\n if (this.isCheckedOnAdd) {\n var rowObj = this.parent.getRowObjectFromUID(this.parent.getRows()[e.selectedRow].getAttribute('data-uid'));\n this.selectedRowState[this.getPkValue(this.primaryKey, rowObj.data)] = rowObj.isSelected = this.isCheckedOnAdd;\n }\n this.isHdrSelectAllClicked = false;\n this.setCheckAllState();\n }\n this.refreshPersistSelection();\n }\n if (e.requestType === 'delete' && this.parent.isPersistSelection) {\n var records = e.data;\n var data = records.slice();\n for (var i = 0; i < data.length; i++) {\n var pkValue = this.getPkValue(this.primaryKey, data[parseInt(i.toString(), 10)]);\n if (!isNullOrUndefined(pkValue)) {\n this.updatePersistDelete(pkValue, this.isPartialSelection);\n }\n }\n this.isHdrSelectAllClicked = false;\n this.setCheckAllState();\n this.totalRecordsCount = this.parent.pageSettings.totalRecordsCount;\n }\n if (e.requestType === 'paging') {\n if (this.parent.isPersistSelection && this.isPartialSelection && this.isHdrSelectAllClicked) {\n var rows = this.parent.getRowsObject();\n var indexes = [];\n for (var i = 0; i < rows.length; i++) {\n if (rows[parseInt(i.toString(), 10)].isSelectable) {\n indexes.push(rows[parseInt(i.toString(), 10)].index);\n }\n }\n if (indexes.length) {\n this.selectRows(indexes);\n }\n }\n this.prevRowIndex = undefined;\n this.prevCIdxs = undefined;\n this.prevECIdxs = undefined;\n }\n };\n Selection.prototype.onDataBound = function () {\n if (!this.parent.enableVirtualization && this.parent.isPersistSelection) {\n if (this.selectedRecords.length) {\n this.isPrevRowSelection = true;\n }\n }\n if ((this.parent.getDataModule().isRemote() || (!isNullOrUndefined(this.parent.dataSource)\n && this.parent.dataSource.result)) && this.rmtHdrChkbxClicked) {\n if (this.parent.checkAllRows === 'Intermediate') {\n this.setRowSelection(true);\n }\n else if (this.parent.checkAllRows === 'Uncheck') {\n this.setRowSelection(false);\n }\n }\n if (this.parent.enableVirtualization) {\n this.setCheckAllState();\n }\n if (this.parent.isPersistSelection) {\n this.refreshPersistSelection();\n }\n this.initialRowSelection = this.isRowType() && this.parent.element.querySelectorAll('.e-selectionbackground') &&\n this.parent.getSelectedRows().length ? true : false;\n if (this.parent.isCheckBoxSelection && !this.initialRowSelection) {\n var totalRecords = this.parent.getRowsObject();\n var indexes = [];\n for (var i = 0; i < totalRecords.length; i++) {\n if (totalRecords[parseInt(i.toString(), 10)].isSelected) {\n indexes.push(i);\n }\n }\n if (indexes.length) {\n this.selectRows(indexes);\n }\n this.initialRowSelection = true;\n }\n };\n Selection.prototype.updatePersistSelectedData = function (checkState) {\n if (this.parent.isPersistSelection) {\n var rows = this.parent.getRows();\n for (var i = 0; i < rows.length; i++) {\n this.updatePersistCollection(rows[parseInt(i.toString(), 10)], checkState);\n }\n if (this.parent.checkAllRows === 'Uncheck') {\n this.setRowSelection(false);\n this.persistSelectedData = (this.parent.getDataModule().isRemote()\n || (!isNullOrUndefined(this.parent.dataSource) && this.parent.dataSource.result))\n ? this.persistSelectedData : [];\n }\n else if (this.parent.checkAllRows === 'Check') {\n this.setRowSelection(true);\n this.persistSelectedData = !(this.parent.getDataModule().isRemote()\n || (!isNullOrUndefined(this.parent.dataSource) && this.parent.dataSource.result))\n && !this.isPartialSelection ?\n this.parent.groupSettings.columns.length ? this.getData().records.slice() :\n this.getData().slice() : this.persistSelectedData;\n }\n }\n };\n Selection.prototype.checkSelectAllAction = function (checkState) {\n var cRenderer = this.getRenderer();\n var editForm = this.parent.element.querySelector('.e-gridform');\n this.checkedTarget = this.getCheckAllBox();\n if (checkState && this.getCurrentBatchRecordChanges().length) {\n this.parent.checkAllRows = 'Check';\n this.updatePersistSelectedData(checkState);\n this.selectRowsByRange(cRenderer.getVirtualRowIndex(0), cRenderer.getVirtualRowIndex(this.getCurrentBatchRecordChanges().length - 1));\n }\n else {\n this.parent.checkAllRows = 'Uncheck';\n this.updatePersistSelectedData(checkState);\n this.clearSelection();\n }\n this.chkAllCollec = [];\n if (!isNullOrUndefined(editForm)) {\n var editChkBox = editForm.querySelector('.e-edit-checkselect');\n if (!isNullOrUndefined(editChkBox)) {\n removeAddCboxClasses(editChkBox.nextElementSibling, checkState);\n }\n }\n };\n Selection.prototype.checkSelectAll = function (checkBox) {\n var _this = this;\n var stateStr = this.getCheckAllStatus(checkBox);\n var state = stateStr === 'Check';\n this.isHeaderCheckboxClicked = true;\n if ((this.parent.getDataModule().isRemote() || (!isNullOrUndefined(this.parent.dataSource)\n && this.parent.dataSource.result)) && (stateStr === 'Uncheck' || this.isCheckboxReset)) {\n this.rmtHdrChkbxClicked = true;\n }\n else {\n this.rmtHdrChkbxClicked = false;\n }\n if (this.rmtHdrChkbxClicked && this.isCheckboxReset) {\n this.unSelectedRowState = {};\n }\n this.isCheckboxReset = false;\n if (stateStr === 'Intermediate') {\n state = this.getCurrentBatchRecordChanges().some(function (data) {\n return _this.getPkValue(_this.primaryKey, data) in _this.selectedRowState;\n });\n }\n if (this.parent.isPersistSelection && this.parent.allowPaging) {\n this.totalRecordsCount = this.parent.pageSettings.totalRecordsCount;\n }\n this.checkSelectAllAction(!state);\n this.target = null;\n if (this.getCurrentBatchRecordChanges().length > 0) {\n this.setCheckAllState();\n this.updateSelectedRowIndexes();\n }\n this.triggerChkChangeEvent(checkBox, !state);\n };\n Selection.prototype.getCheckAllStatus = function (ele) {\n var classes = ele ? ele.nextElementSibling.classList :\n this.getCheckAllBox().nextElementSibling.classList;\n var status;\n if (classes.contains('e-check')) {\n status = 'Check';\n }\n else if (classes.contains('e-uncheck')) {\n status = 'Uncheck';\n }\n else if (classes.contains('e-stop')) {\n status = 'Intermediate';\n }\n else {\n status = 'None';\n }\n return status;\n };\n Selection.prototype.checkSelect = function (checkBox) {\n var target = closest(this.checkedTarget, '.' + literals.rowCell);\n var gObj = this.parent;\n this.isMultiCtrlRequest = true;\n var rIndex = 0;\n this.isHeaderCheckboxClicked = false;\n if (isGroupAdaptive(gObj)) {\n var uid = target.parentElement.getAttribute('data-uid');\n rIndex = gObj.getRows().map(function (m) { return m.getAttribute('data-uid'); }).indexOf(uid);\n }\n else {\n rIndex = parseInt(target.parentElement.getAttribute(literals.dataRowIndex), 10);\n }\n if (this.parent.isPersistSelection && this.parent.element.getElementsByClassName(literals.addedRow).length > 0 &&\n this.parent.editSettings.newRowPosition === 'Top') {\n ++rIndex;\n }\n this.rowCellSelectionHandler(rIndex, parseInt(target.getAttribute(literals.dataColIndex), 10));\n this.moveIntoUncheckCollection(closest(target, '.' + literals.row));\n this.setCheckAllState();\n this.isMultiCtrlRequest = false;\n this.triggerChkChangeEvent(checkBox, checkBox.nextElementSibling.classList.contains('e-check'));\n };\n Selection.prototype.moveIntoUncheckCollection = function (row) {\n if (this.parent.checkAllRows === 'Check' || this.parent.checkAllRows === 'Uncheck') {\n var rowObj = this.getRowObj(row);\n var pKey = rowObj && rowObj.data ? this.getPkValue(this.primaryKey, rowObj.data) : null;\n if (!pKey) {\n return;\n }\n if (this.chkAllCollec.indexOf(pKey) < 0) {\n this.chkAllCollec.push(pKey);\n }\n else {\n this.chkAllCollec.splice(this.chkAllCollec.indexOf(pKey), 1);\n }\n }\n };\n Selection.prototype.triggerChkChangeEvent = function (checkBox, checkState) {\n this.parent.trigger(events.checkBoxChange, {\n checked: checkState, selectedRowIndexes: this.parent.getSelectedRowIndexes(),\n target: checkBox\n });\n if (!this.parent.isEdit) {\n this.checkedTarget = null;\n }\n };\n Selection.prototype.updateSelectedRowIndexes = function () {\n if (this.parent.isCheckBoxSelection && (this.parent.enableVirtualization || this.parent.enableInfiniteScrolling) &&\n this.isPartialSelection && !(this.parent.getDataModule().isRemote() || (!isNullOrUndefined(this.parent.dataSource)\n && this.parent.dataSource.result))\n && this.parent.selectionSettings.persistSelection) {\n if (this.parent.checkAllRows !== 'Uncheck') {\n var rowObj = this.parent.getRowsObject().filter(function (e) { return e.isSelectable; });\n for (var _i = 0, rowObj_2 = rowObj; _i < rowObj_2.length; _i++) {\n var row = rowObj_2[_i];\n this.selectedRowIndexes.push(row.index);\n }\n }\n }\n };\n Selection.prototype.updateSelectedRowIndex = function (index) {\n if (this.parent.isCheckBoxSelection && (this.parent.enableVirtualization || this.parent.enableInfiniteScrolling)\n && !(this.parent.getDataModule().isRemote() || (!isNullOrUndefined(this.parent.dataSource)\n && this.parent.dataSource.result))\n && !this.isPartialSelection) {\n if (this.parent.checkAllRows === 'Check') {\n this.selectedRowIndexes = [];\n var dataLength = this.getData().length;\n for (var data = 0; data < dataLength; data++) {\n this.selectedRowIndexes.push(data);\n }\n }\n else if (this.parent.checkAllRows === 'Uncheck') {\n this.selectedRowIndexes = [];\n }\n else {\n var row = this.parent.getRowByIndex(index);\n if (index && row && row.getAttribute('aria-selected') === 'false') {\n var selectedVal = this.selectedRowIndexes.indexOf(index);\n this.selectedRowIndexes.splice(selectedVal, 1);\n }\n }\n }\n };\n Selection.prototype.isAllSelected = function (count) {\n if (this.isPartialSelection) {\n if (this.parent.allowPaging && this.parent.pageSettings.pageSize < this.parent.pageSettings.totalRecordsCount) {\n var data = this.parent.partialSelectedRecords;\n for (var i = 0; i < data.length; i++) {\n var pKey = this.getPkValue(this.primaryKey, data[parseInt(i.toString(), 10)]);\n if (!this.selectedRowState[\"\" + pKey]) {\n return false;\n }\n }\n return true;\n }\n else {\n return this.isSelectAllRowCount(count);\n }\n }\n else {\n var data = this.getData();\n for (var i = 0; i < data.length; i++) {\n var pKey = this.getPkValue(this.primaryKey, data[parseInt(i.toString(), 10)]);\n if (!this.selectedRowState[\"\" + pKey]) {\n return false;\n }\n }\n return true;\n }\n };\n Selection.prototype.someDataSelected = function () {\n var data = this.isPartialSelection ? this.parent.partialSelectedRecords : this.getData();\n for (var i = 0; i < data.length; i++) {\n var pKey = this.getPkValue(this.primaryKey, data[parseInt(i.toString(), 10)]);\n if (this.selectedRowState[\"\" + pKey]) {\n return false;\n }\n }\n return true;\n };\n Selection.prototype.setCheckAllState = function (index, isInteraction) {\n if (this.parent.isCheckBoxSelection || this.parent.selectionSettings.checkboxMode === 'ResetOnRowClick') {\n var checkToSelectAll = false;\n var isFiltered = false;\n var checkedLen = Object.keys(this.selectedRowState).length;\n if (!this.parent.isPersistSelection) {\n checkedLen = this.selectedRowIndexes.length;\n this.totalRecordsCount = this.getCurrentBatchRecordChanges().length;\n }\n if (this.parent.isPersistSelection && !(this.parent.getDataModule().isRemote()\n || (!isNullOrUndefined(this.parent.dataSource) && this.parent.dataSource.result))\n && (this.parent.searchSettings.key.length\n || this.parent.filterSettings.columns.length)) {\n isFiltered = true;\n checkToSelectAll = this.isAllSelected(checkedLen);\n }\n var input = this.getCheckAllBox();\n if (input) {\n var spanEle = input.nextElementSibling;\n removeClass([spanEle], ['e-check', 'e-stop', 'e-uncheck']);\n setChecked(input, false);\n input.indeterminate = false;\n if ((checkToSelectAll && isFiltered && this.getData().length) || (!isFiltered\n && ((checkedLen === this.totalRecordsCount && this.totalRecordsCount\n && !this.isPartialSelection && (!(this.parent.getDataModule().isRemote()\n || (!isNullOrUndefined(this.parent.dataSource) && this.parent.dataSource.result))\n || this.parent.allowPaging)) ||\n (!this.parent.enableVirtualization && !this.parent.enableInfiniteScrolling\n && this.isPartialSelection && (this.isSelectAllRowCount(checkedLen) || this.isHdrSelectAllClicked))\n || ((this.parent.enableVirtualization || this.parent.enableInfiniteScrolling)\n && !this.parent.allowPaging && ((!(this.parent.getDataModule().isRemote()\n || (!isNullOrUndefined(this.parent.dataSource) && this.parent.dataSource.result)) &&\n this.getData().length && checkedLen === this.getData().length) || ((this.parent.getDataModule().isRemote()\n || (!isNullOrUndefined(this.parent.dataSource) && this.parent.dataSource.result)) &&\n !this.isPartialSelection && (checkedLen === this.parent.totalDataRecordsCount)) ||\n (this.isPartialSelection && (this.isHdrSelectAllClicked || this.isSelectAllRowCount(checkedLen)))))))) {\n addClass([spanEle], ['e-check']);\n setChecked(input, true);\n if (isInteraction) {\n this.getRenderer().setSelection(null, true, true);\n }\n this.parent.checkAllRows = 'Check';\n }\n else if (((!this.selectedRowIndexes.length && (!this.parent.enableVirtualization ||\n (!this.persistSelectedData.length && !isFiltered) || (isFiltered && this.someDataSelected())) ||\n checkedLen === 0 && this.getCurrentBatchRecordChanges().length === 0) && !this.parent.allowPaging) ||\n (this.parent.allowPaging && (checkedLen === 0 || (checkedLen && isFiltered && this.someDataSelected())))) {\n addClass([spanEle], ['e-uncheck']);\n if (isInteraction) {\n this.getRenderer().setSelection(null, false, true);\n }\n this.parent.checkAllRows = 'Uncheck';\n if (checkedLen === 0 && this.getCurrentBatchRecordChanges().length === 0) {\n addClass([spanEle.parentElement], ['e-checkbox-disabled']);\n }\n else {\n removeClass([spanEle.parentElement], ['e-checkbox-disabled']);\n }\n }\n else {\n addClass([spanEle], ['e-stop']);\n this.parent.checkAllRows = 'Intermediate';\n input.indeterminate = true;\n }\n if (this.isPartialSelection) {\n var rowCount = this.parent.getRowsObject().filter(function (e) { return e.isSelectable; }).length;\n if (rowCount === 0 && spanEle.parentElement.querySelector('.e-frame').classList.contains('e-uncheck')) {\n addClass([spanEle.parentElement], ['e-checkbox-disabled']);\n }\n else {\n removeClass([spanEle.parentElement], ['e-checkbox-disabled']);\n }\n }\n if ((this.parent.enableVirtualization || this.parent.enableInfiniteScrolling)\n && !this.parent.allowPaging && !(this.parent.getDataModule().isRemote()\n || (!isNullOrUndefined(this.parent.dataSource) && this.parent.dataSource.result))) {\n this.updateSelectedRowIndex(index);\n }\n }\n }\n };\n Selection.prototype.isSelectAllRowCount = function (count) {\n var rowCount = 0;\n var rowObj = this.parent.getRowsObject();\n if (this.parent.selectionSettings.persistSelection && (this.parent.enableVirtualization || this.parent.enableInfiniteScrolling)) {\n var dataLen = (this.parent.getDataModule().isRemote() || (!isNullOrUndefined(this.parent.dataSource)\n && this.parent.dataSource.result)) ?\n this.parent.totalDataRecordsCount : this.getData() && this.getData().length;\n if (dataLen === rowObj.length) {\n rowCount = rowObj.filter(function (e) { return e.isSelectable; }).length;\n return rowCount && count === rowCount;\n }\n else {\n return false;\n }\n }\n else {\n if (this.parent.allowPaging && this.parent.selectionSettings.persistSelection) {\n rowCount = this.parent.partialSelectedRecords.length + this.parent.disableSelectedRecords.length;\n if (rowCount === this.totalRecordsCount) {\n return this.parent.partialSelectedRecords.length && count === this.parent.partialSelectedRecords.length;\n }\n else {\n return false;\n }\n }\n else {\n rowCount = rowObj.filter(function (e) { return e.isSelectable; }).length;\n return rowCount && count === rowCount;\n }\n }\n };\n Selection.prototype.keyDownHandler = function (e) {\n // Below are keyCode for command key in MAC OS. Safari/Chrome(91-Left command, 93-Right Command), Opera(17), FireFox(224)\n if ((((Browser.info.name === 'chrome') || (Browser.info.name === 'safari')) && (e.keyCode === 91 || e.keyCode === 93)) ||\n (Browser.info.name === 'opera' && e.keyCode === 17) || (Browser.info.name === 'mozilla' && e.keyCode === 224)) {\n this.cmdKeyPressed = true;\n }\n var targetHeadCell = parentsUntil(e.target, 'e-headercell');\n var targetRowCell = parentsUntil(e.target, literals.rowCell);\n var isCheckBox = targetHeadCell ? targetHeadCell.children[0].classList.contains('e-headerchkcelldiv') :\n targetRowCell ? targetRowCell.classList.contains('e-gridchkbox') : false;\n if (isCheckBox && !this.parent.allowKeyboard && e.keyCode === 32) {\n e.preventDefault();\n }\n };\n Selection.prototype.keyUpHandler = function (e) {\n if ((((Browser.info.name === 'chrome') || (Browser.info.name === 'safari')) && (e.keyCode === 91 || e.keyCode === 93)) ||\n (Browser.info.name === 'opera' && e.keyCode === 17) || (Browser.info.name === 'mozilla' && e.keyCode === 224)) {\n this.cmdKeyPressed = false;\n }\n };\n Selection.prototype.clickHandler = function (e) {\n var target = e.target;\n this.actualTarget = target;\n if (this.selectionSettings.persistSelection) {\n this.deSelectedData = iterateExtend(this.persistSelectedData);\n }\n if (parentsUntil(target, literals.row) || parentsUntil(target, 'e-headerchkcelldiv') ||\n (this.selectionSettings.allowColumnSelection && target.classList.contains('e-headercell'))) {\n this.isInteracted = true;\n }\n this.isMultiCtrlRequest = e.ctrlKey || this.enableSelectMultiTouch ||\n (this.isMacOS && this.cmdKeyPressed);\n if (!this.parent.allowKeyboard) {\n this.isMultiShiftRequest = false;\n this.isMultiCtrlRequest = false;\n }\n else {\n this.isMultiShiftRequest = e.shiftKey;\n }\n this.popUpClickHandler(e);\n var chkSelect = false;\n this.preventFocus = true;\n var checkBox;\n var checkWrap = parentsUntil(target, 'e-checkbox-wrapper');\n this.checkSelectAllClicked = checkWrap && checkWrap.getElementsByClassName('e-checkselectall') ||\n (this.selectionSettings.persistSelection && parentsUntil(target, literals.row)) ? true : false;\n if (this.selectionSettings.persistSelection && this.isPartialSelection && parentsUntil(target, 'e-headerchkcelldiv')\n && !target.querySelector('.e-checkbox-disabled')) {\n this.isHdrSelectAllClicked = true;\n }\n if (checkWrap && checkWrap.querySelectorAll('.e-checkselect,.e-checkselectall').length > 0) {\n checkBox = checkWrap.querySelector('input[type=\"checkbox\"]');\n chkSelect = true;\n }\n this.drawBorders();\n this.updateAutoFillPosition();\n target = parentsUntil(target, literals.rowCell);\n if (this.parent.isReact && (target && !target.parentElement && target.classList.contains('e-rowcell'))) {\n target = this.parent.getCellFromIndex(parseInt(target.getAttribute('index'), 10), parseInt(target.getAttribute('data-colindex'), 10));\n }\n if (((target && target.parentElement.classList.contains(literals.row) && !this.parent.selectionSettings.checkboxOnly) || chkSelect)\n && !this.isRowDragSelected) {\n if (this.parent.isCheckBoxSelection) {\n this.isMultiCtrlRequest = true;\n }\n this.target = target;\n if (!isNullOrUndefined(checkBox)) {\n this.checkedTarget = checkBox;\n if (checkBox.classList.contains('e-checkselectall')) {\n this.checkSelectAll(checkBox);\n }\n else {\n this.checkSelect(checkBox);\n }\n }\n else {\n var gObj = this.parent;\n var rIndex = 0;\n if (isGroupAdaptive(gObj)) {\n var uid = target.parentElement.getAttribute('data-uid');\n rIndex = gObj.getRows().map(function (m) { return m.getAttribute('data-uid'); }).indexOf(uid);\n }\n else {\n rIndex = parseInt(target.parentElement.getAttribute(literals.dataRowIndex), 10);\n }\n if (this.parent.isPersistSelection && this.parent.element.getElementsByClassName(literals.addedRow).length > 0) {\n ++rIndex;\n }\n if (!this.mUPTarget || !this.mUPTarget.isEqualNode(target)) {\n this.rowCellSelectionHandler(rIndex, parseInt(target.getAttribute(literals.dataColIndex), 10));\n }\n this.parent.hoverFrozenRows(e);\n if (this.parent.isCheckBoxSelection) {\n this.moveIntoUncheckCollection(closest(target, '.' + literals.row));\n this.setCheckAllState();\n }\n }\n if (!this.parent.isCheckBoxSelection && Browser.isDevice && !this.isSingleSel()) {\n this.showPopup(e);\n }\n }\n else if (e.target.classList.contains('e-headercell') &&\n !e.target.classList.contains('e-stackedheadercell')) {\n var uid = e.target.querySelector('.e-headercelldiv').getAttribute('e-mappinguid');\n this.headerSelectionHandler(this.parent.getColumnIndexByUid(uid));\n }\n this.isMultiCtrlRequest = false;\n this.isMultiShiftRequest = false;\n if (isNullOrUndefined(closest(e.target, '.e-unboundcell'))) {\n this.preventFocus = false;\n }\n };\n Selection.prototype.popUpClickHandler = function (e) {\n var target = e.target;\n if (closest(target, '.e-headercell') || e.target.classList.contains(literals.rowCell) ||\n closest(target, '.e-gridpopup')) {\n if (target.classList.contains('e-rowselect')) {\n if (!target.classList.contains('e-spanclicked')) {\n target.classList.add('e-spanclicked');\n this.enableSelectMultiTouch = true;\n }\n else {\n target.classList.remove('e-spanclicked');\n this.enableSelectMultiTouch = false;\n this.parent.element.querySelector('.e-gridpopup').style.display = 'none';\n }\n }\n }\n else {\n this.parent.element.querySelector('.e-gridpopup').style.display = 'none';\n }\n };\n Selection.prototype.showPopup = function (e) {\n if (!this.selectionSettings.enableSimpleMultiRowSelection) {\n setCssInGridPopUp(this.parent.element.querySelector('.e-gridpopup'), e, 'e-rowselect e-icons e-icon-rowselect' +\n (!this.isSingleSel() && (this.selectedRecords.length > (this.parent.getFrozenColumns() ? 2 : 1)\n || this.selectedRowCellIndexes.length > 1) ? ' e-spanclicked' : ''));\n }\n };\n Selection.prototype.rowCellSelectionHandler = function (rowIndex, cellIndex) {\n if ((!this.isMultiCtrlRequest && !this.isMultiShiftRequest) || this.isSingleSel()) {\n if (!this.isDragged) {\n this.selectRow(rowIndex, this.selectionSettings.enableToggle);\n }\n this.selectCell({ rowIndex: rowIndex, cellIndex: cellIndex }, this.selectionSettings.enableToggle);\n if (this.selectedRowCellIndexes.length) {\n this.updateAutoFillPosition();\n }\n this.drawBorders();\n }\n else if (this.isMultiShiftRequest) {\n if (this.parent.isCheckBoxSelection || (!this.parent.isCheckBoxSelection &&\n !closest(this.target, '.' + literals.rowCell).classList.contains(literals.gridChkBox))) {\n this.selectRowsByRange(isUndefined(this.prevRowIndex) ? rowIndex : this.prevRowIndex, rowIndex);\n }\n else {\n this.addRowsToSelection([rowIndex]);\n }\n this.selectCellsByRange(isUndefined(this.prevCIdxs) ? { rowIndex: rowIndex, cellIndex: cellIndex } : this.prevCIdxs, { rowIndex: rowIndex, cellIndex: cellIndex });\n this.updateAutoFillPosition();\n this.drawBorders();\n }\n else {\n this.addRowsToSelection([rowIndex]);\n this.addCellsToSelection([{ rowIndex: rowIndex, cellIndex: cellIndex }]);\n this.showHideBorders('none');\n }\n this.isDragged = false;\n };\n Selection.prototype.onCellFocused = function (e) {\n if (this.parent.frozenRows && e.container.isHeader && e.byKey) {\n if (e.keyArgs.action === 'upArrow') {\n if (this.parent.allowFiltering) {\n e.isJump = e.element.tagName === 'INPUT' ? true : false;\n }\n else {\n e.isJump = e.element.tagName === 'TH' ? true : false;\n }\n }\n else {\n if (e.keyArgs.action === 'downArrow') {\n var rIdx = Number(e.element.parentElement.getAttribute(literals.dataRowIndex));\n e.isJump = rIdx === 0 ? true : false;\n }\n else {\n if (e.keyArgs.action === 'ctrlHome') {\n e.isJump = true;\n }\n }\n }\n }\n var clear = this.parent.isFrozenGrid() ? (((e.container.isHeader && e.element.tagName !== 'TD' && e.isJump &&\n !this.selectionSettings.allowColumnSelection) ||\n ((e.container.isContent || e.element.tagName === 'TD') && !(e.container.isSelectable || e.element.tagName === 'TD')))\n && !(e.byKey && e.keyArgs.action === 'space')) : ((e.container.isHeader && e.isJump) ||\n (e.container.isContent && !e.container.isSelectable)) && !(e.byKey && e.keyArgs.action === 'space')\n && !(e.element.classList.contains('e-detailrowexpand') || e.element.classList.contains('e-detailrowcollapse'));\n var headerAction = (e.container.isHeader && e.element.tagName !== 'TD' && !closest(e.element, '.' + literals.rowCell))\n && !(e.byKey && e.keyArgs.action === 'space');\n if (!e.byKey || clear) {\n if (clear && !this.parent.isCheckBoxSelection) {\n this.clearSelection();\n }\n return;\n }\n var _a = e.container.isContent ? e.container.indexes : e.indexes, rowIndex = _a[0], cellIndex = _a[1];\n var prev = this.focus.getPrevIndexes();\n if (this.parent.frozenRows) {\n if (e.container.isHeader && (e.element.tagName === 'TD' || closest(e.element, '.' + literals.rowCell))) {\n var thLen = this.parent.getHeaderTable().querySelector('thead').childElementCount;\n rowIndex -= thLen;\n prev.rowIndex = !isNullOrUndefined(prev.rowIndex) ? prev.rowIndex - thLen : null;\n }\n else {\n rowIndex += this.parent.frozenRows;\n prev.rowIndex = prev.rowIndex === 0 || !isNullOrUndefined(prev.rowIndex) ? prev.rowIndex + this.parent.frozenRows : null;\n }\n }\n if (this.parent.isFrozenGrid()) {\n var cIdx = Number(e.element.getAttribute(literals.dataColIndex));\n var selectedIndexes = this.parent.getSelectedRowCellIndexes();\n if (selectedIndexes.length && prev.cellIndex === 0) {\n prev.cellIndex = selectedIndexes[selectedIndexes.length - 1].cellIndexes[0];\n }\n prev.cellIndex = !isNullOrUndefined(prev.cellIndex) ? (prev.cellIndex === cellIndex ? cIdx : cIdx - 1) : null;\n cellIndex = cIdx;\n }\n if (this.parent.enableInfiniteScrolling && this.parent.infiniteScrollSettings.enableCache) {\n rowIndex = parseInt(e.element.parentElement.getAttribute('data-rowindex'), 10);\n }\n if ((headerAction || (['ctrlPlusA', 'escape'].indexOf(e.keyArgs.action) === -1 &&\n e.keyArgs.action !== 'space' && rowIndex === prev.rowIndex && cellIndex === prev.cellIndex)) &&\n !this.selectionSettings.allowColumnSelection) {\n return;\n }\n this.preventFocus = true;\n var columnIndex = this.getKeyColIndex(e);\n if (this.needColumnSelection) {\n cellIndex = columnIndex;\n }\n if (this.parent.element.classList.contains('e-gridcell-read') && (e.keyArgs.action === 'tab' || e.keyArgs.action === 'shiftTab'\n || e.keyArgs.action === 'rightArrow' || e.keyArgs.action === 'leftArrow')) {\n var targetLabel = this.target.getAttribute('aria-label');\n targetLabel = this.target.innerHTML + ' column header ' + this.parent.getColumnByIndex(cellIndex).field;\n this.target.setAttribute('aria-label', targetLabel);\n }\n switch (e.keyArgs.action) {\n case 'downArrow':\n case 'upArrow':\n case 'enter':\n case 'shiftEnter':\n this.target = e.element;\n this.isKeyAction = true;\n this.applyDownUpKey(rowIndex, cellIndex);\n break;\n case 'rightArrow':\n case 'leftArrow':\n this.applyRightLeftKey(rowIndex, cellIndex);\n break;\n case 'shiftDown':\n case 'shiftUp':\n this.shiftDownKey(rowIndex, cellIndex);\n break;\n case 'shiftLeft':\n case 'shiftRight':\n this.applyShiftLeftRightKey(rowIndex, cellIndex);\n break;\n case 'home':\n case 'end':\n cellIndex = e.keyArgs.action === 'end' ? this.getLastColIndex(rowIndex) : 0;\n this.applyHomeEndKey(rowIndex, cellIndex);\n break;\n case 'ctrlHome':\n case 'ctrlEnd':\n this.applyCtrlHomeEndKey(rowIndex, cellIndex);\n break;\n case 'escape':\n this.clearSelection();\n break;\n case 'ctrlPlusA':\n this.ctrlPlusA();\n break;\n case 'space':\n this.applySpaceSelection(e.element);\n break;\n case 'tab':\n if (this.parent.editSettings.allowNextRowEdit) {\n this.selectRow(rowIndex);\n }\n break;\n }\n this.needColumnSelection = false;\n this.preventFocus = false;\n this.positionBorders();\n this.updateAutoFillPosition();\n };\n Selection.prototype.getKeyColIndex = function (e) {\n var uid;\n var index = null;\n var stackedHeader = e.element.querySelector('.e-stackedheadercelldiv');\n if (this.selectionSettings.allowColumnSelection && parentsUntil(e.element, 'e-columnheader')) {\n this.needColumnSelection = e.container.isHeader ? true : false;\n if (stackedHeader) {\n if (e.keyArgs.action === 'rightArrow' || e.keyArgs.action === 'leftArrow') {\n return index;\n }\n uid = stackedHeader.getAttribute('e-mappinguid');\n var innerColumn = this.getstackedColumns(this.parent.getColumnByUid(uid).columns);\n var lastIndex = this.parent.getColumnIndexByUid(innerColumn[innerColumn.length - 1].uid);\n var firstIndex = this.parent.getColumnIndexByUid(innerColumn[0].uid);\n index = this.prevColIndex >= lastIndex ? firstIndex : lastIndex;\n }\n else {\n index = this.parent.getColumnIndexByUid(e.element\n .querySelector('.e-headercelldiv').getAttribute('e-mappinguid'));\n }\n }\n return index;\n };\n /**\n * Apply ctrl + A key selection\n *\n * @returns {void}\n * @hidden\n */\n Selection.prototype.ctrlPlusA = function () {\n if (this.isRowType() && !this.isSingleSel()) {\n this.selectRowsByRange(0, this.getCurrentBatchRecordChanges().length - 1);\n }\n if (this.isCellType() && !this.isSingleSel()) {\n this.selectCellsByRange({ rowIndex: 0, cellIndex: 0 }, { rowIndex: this.parent.getRows().length - 1, cellIndex: this.parent.getColumns().length - 1 });\n }\n };\n Selection.prototype.applySpaceSelection = function (target) {\n if (target.classList.contains('e-checkselectall')) {\n this.checkedTarget = target;\n this.checkSelectAll(this.checkedTarget);\n }\n else {\n if (target.classList.contains('e-checkselect')) {\n this.checkedTarget = target;\n this.checkSelect(this.checkedTarget);\n }\n }\n };\n Selection.prototype.applyDownUpKey = function (rowIndex, cellIndex) {\n var gObj = this.parent;\n if (this.parent.isCheckBoxSelection && this.parent.checkAllRows === 'Check' && !this.selectionSettings.persistSelection &&\n !this.selectionSettings.checkboxOnly) {\n this.checkSelectAllAction(false);\n this.checkedTarget = null;\n }\n if (this.isRowType() && !this.selectionSettings.checkboxOnly) {\n if (this.parent.frozenRows) {\n this.selectRow(rowIndex, true);\n this.applyUpDown(gObj.selectedRowIndex);\n }\n else {\n this.selectRow(rowIndex, true);\n this.applyUpDown(gObj.selectedRowIndex);\n }\n }\n if (this.isCellType()) {\n this.selectCell({ rowIndex: rowIndex, cellIndex: cellIndex }, true);\n }\n if (this.selectionSettings.allowColumnSelection && this.needColumnSelection) {\n this.selectColumn(cellIndex);\n }\n };\n Selection.prototype.applyUpDown = function (rowIndex) {\n if (rowIndex < 0) {\n return;\n }\n if (!this.target) {\n this.target = this.parent.getRows()[0].children[this.parent.groupSettings.columns.length || 0];\n }\n var cIndex = parseInt(this.target.getAttribute(literals.dataColIndex), 10);\n var frzCols = this.parent.getFrozenColumns();\n if (frzCols) {\n if (cIndex >= frzCols) {\n this.target =\n this.contentRenderer.getMovableRowByIndex(rowIndex).getElementsByClassName(literals.rowCell)[cIndex - frzCols];\n }\n else {\n this.target = this.contentRenderer.getRowByIndex(rowIndex)\n .getElementsByClassName(literals.rowCell)[parseInt(cIndex.toString(), 10)];\n }\n }\n else {\n var row = this.contentRenderer.getRowByIndex(rowIndex);\n if (row) {\n this.target = row.getElementsByClassName(literals.rowCell)[parseInt(cIndex.toString(), 10)];\n }\n }\n this.addAttribute(this.target);\n if (this.parent.element.classList.contains('e-gridcell-read')) {\n var targetLabel = this.target.getAttribute('aria-label');\n targetLabel = this.target.innerHTML;\n this.target.setAttribute('aria-label', targetLabel);\n }\n };\n Selection.prototype.applyRightLeftKey = function (rowIndex, cellIndex) {\n if (this.selectionSettings.allowColumnSelection && this.needColumnSelection) {\n this.selectColumn(cellIndex);\n }\n else if (this.isCellType()) {\n this.selectCell({ rowIndex: rowIndex, cellIndex: cellIndex }, true);\n this.addAttribute(this.target);\n }\n };\n Selection.prototype.applyHomeEndKey = function (rowIndex, cellIndex) {\n if (this.isCellType()) {\n this.selectCell({ rowIndex: rowIndex, cellIndex: cellIndex }, true);\n }\n else {\n this.addAttribute(this.parent.getCellFromIndex(rowIndex, cellIndex));\n }\n };\n /**\n * Apply shift+down key selection\n *\n * @param {number} rowIndex - specfies the rowIndex\n * @param {number} cellIndex - specifies the CellIndex\n * @returns {void}\n * @hidden\n */\n Selection.prototype.shiftDownKey = function (rowIndex, cellIndex) {\n this.isMultiShiftRequest = true;\n if (this.isRowType() && !this.isSingleSel()) {\n if (!isUndefined(this.prevRowIndex)) {\n this.selectRowsByRange(this.prevRowIndex, rowIndex);\n this.applyUpDown(rowIndex);\n }\n else if (this.isPartialSelection) {\n this.selectRow(rowIndex, true);\n }\n else {\n this.selectRow(0, true);\n }\n }\n if (this.isCellType() && !this.isSingleSel()) {\n this.selectCellsByRange(this.prevCIdxs || { rowIndex: 0, cellIndex: 0 }, { rowIndex: rowIndex, cellIndex: cellIndex });\n }\n this.isMultiShiftRequest = false;\n };\n Selection.prototype.applyShiftLeftRightKey = function (rowIndex, cellIndex) {\n this.isMultiShiftRequest = true;\n if (this.selectionSettings.allowColumnSelection && this.needColumnSelection) {\n this.selectColumnsByRange(this.prevColIndex, cellIndex);\n }\n else {\n this.selectCellsByRange(this.prevCIdxs, { rowIndex: rowIndex, cellIndex: cellIndex });\n }\n this.isMultiShiftRequest = false;\n };\n Selection.prototype.getstackedColumns = function (column) {\n var innerColumnIndexes = [];\n for (var i = 0, len = column.length; i < len; i++) {\n if (column[parseInt(i.toString(), 10)].columns) {\n this.getstackedColumns(column[parseInt(i.toString(), 10)].columns);\n }\n else {\n innerColumnIndexes.push(column[parseInt(i.toString(), 10)]);\n }\n }\n return innerColumnIndexes;\n };\n Selection.prototype.applyCtrlHomeEndKey = function (rowIndex, cellIndex) {\n if (this.isRowType()) {\n this.selectRow(rowIndex, true);\n this.addAttribute(this.parent.getCellFromIndex(rowIndex, cellIndex));\n }\n if (this.isCellType()) {\n this.selectCell({ rowIndex: rowIndex, cellIndex: cellIndex }, true);\n }\n };\n Selection.prototype.addRemoveClassesForRow = function (row, isAdd, clearAll) {\n var args = [];\n for (var _i = 3; _i < arguments.length; _i++) {\n args[_i - 3] = arguments[_i];\n }\n if (row) {\n var cells = [].slice.call(row.getElementsByClassName(literals.rowCell));\n var detailIndentCell = row.querySelector('.e-detailrowcollapse') || row.querySelector('.e-detailrowexpand');\n var dragdropIndentCell = row.querySelector('.e-rowdragdrop');\n if (detailIndentCell) {\n cells.push(detailIndentCell);\n }\n if (dragdropIndentCell) {\n cells.push(dragdropIndentCell);\n }\n addRemoveActiveClasses.apply(void 0, [cells, isAdd].concat(args));\n }\n this.getRenderer().setSelection(row ? row.getAttribute('data-uid') : null, isAdd, clearAll);\n };\n Selection.prototype.isRowType = function () {\n return this.selectionSettings.mode === 'Row' || this.selectionSettings.mode === 'Both';\n };\n Selection.prototype.isCellType = function () {\n return this.selectionSettings.mode === 'Cell' || this.selectionSettings.mode === 'Both';\n };\n Selection.prototype.isSingleSel = function () {\n return this.selectionSettings.type === 'Single';\n };\n Selection.prototype.getRenderer = function () {\n if (isNullOrUndefined(this.contentRenderer)) {\n this.contentRenderer = this.factory.getRenderer(RenderType.Content);\n }\n return this.contentRenderer;\n };\n /**\n * Gets the collection of selected records.\n *\n * @returns {Object[]} returns the Object\n */\n Selection.prototype.getSelectedRecords = function () {\n var selectedData = [];\n if (!this.selectionSettings.persistSelection && this.selectedRecords.length) {\n selectedData = this.parent.getRowsObject().filter(function (row) { return row.isSelected; })\n .map(function (m) { return m.data; });\n }\n else {\n selectedData = this.persistSelectedData;\n }\n return selectedData;\n };\n /**\n * Select the column by passing start column index\n *\n * @param {number} index - specifies the index\n * @returns {void}\n */\n Selection.prototype.selectColumn = function (index) {\n var gObj = this.parent;\n if (isNullOrUndefined(gObj.getColumns()[parseInt(index.toString(), 10)])) {\n return;\n }\n var column = gObj.getColumnByIndex(index);\n var selectedCol = gObj.getColumnHeaderByUid(column.uid);\n var isColSelected = selectedCol.classList.contains('e-columnselection');\n if ((!gObj.selectionSettings.allowColumnSelection)) {\n return;\n }\n var isMultiColumns = this.selectedColumnsIndexes.length > 1 &&\n this.selectedColumnsIndexes.indexOf(index) > -1;\n this.clearColDependency();\n if (!isColSelected || !this.selectionSettings.enableToggle || isMultiColumns) {\n var args = {\n columnIndex: index, headerCell: selectedCol,\n column: column,\n cancel: false, target: this.actualTarget,\n isInteracted: this.isInteracted, previousColumnIndex: this.prevColIndex,\n isCtrlPressed: this.isMultiCtrlRequest, isShiftPressed: this.isMultiShiftRequest\n };\n this.onActionBegin(args, events.columnSelecting);\n if (args.cancel) {\n this.disableInteracted();\n return;\n }\n if (!(gObj.selectionSettings.enableToggle && index === this.prevColIndex && isColSelected) || isMultiColumns) {\n this.updateColSelection(selectedCol, index);\n }\n var selectedArgs = {\n columnIndex: index, headerCell: selectedCol,\n column: column,\n target: this.actualTarget,\n isInteracted: this.isInteracted, previousColumnIndex: this.prevColIndex\n };\n this.onActionComplete(selectedArgs, events.columnSelected);\n }\n this.updateColProps(index);\n };\n /**\n * Select the columns by passing start and end column index\n *\n * @param {number} startIndex - specifies the start index\n * @param {number} endIndex - specifies the end index\n * @returns {void}\n */\n Selection.prototype.selectColumnsByRange = function (startIndex, endIndex) {\n var gObj = this.parent;\n if (isNullOrUndefined(gObj.getColumns()[parseInt(startIndex.toString(), 10)])) {\n return;\n }\n var indexes = [];\n if (gObj.selectionSettings.type === 'Single' || isNullOrUndefined(endIndex)) {\n indexes[0] = startIndex;\n }\n else {\n var min = startIndex < endIndex;\n for (var i = startIndex; min ? i <= endIndex : i >= endIndex; min ? i++ : i--) {\n indexes.push(i);\n }\n }\n this.selectColumns(indexes);\n };\n /**\n * Select the columns by passing column indexes\n *\n * @param {number[]} columnIndexes - specifies the columnIndexes\n * @returns {void}\n */\n Selection.prototype.selectColumns = function (columnIndexes) {\n var gObj = this.parent;\n var selectedCol = this.getselectedCols();\n if (gObj.selectionSettings.type === 'Single') {\n columnIndexes = [columnIndexes[0]];\n }\n if (!gObj.selectionSettings.allowColumnSelection) {\n return;\n }\n this.clearColDependency();\n var selectingArgs = {\n columnIndex: columnIndexes[0], headerCell: selectedCol,\n columnIndexes: columnIndexes,\n column: gObj.getColumnByIndex(columnIndexes[0]),\n cancel: false, target: this.actualTarget,\n isInteracted: this.isInteracted, previousColumnIndex: this.prevColIndex,\n isCtrlPressed: this.isMultiCtrlRequest, isShiftPressed: this.isMultiShiftRequest\n };\n this.onActionBegin(selectingArgs, events.columnSelecting);\n if (selectingArgs.cancel) {\n this.disableInteracted();\n return;\n }\n for (var i = 0, len = columnIndexes.length; i < len; i++) {\n this.updateColSelection(gObj.getColumnHeaderByUid(gObj.getColumnByIndex(columnIndexes[parseInt(i.toString(), 10)]).uid), columnIndexes[parseInt(i.toString(), 10)]);\n }\n selectedCol = this.getselectedCols();\n var selectedArgs = {\n columnIndex: columnIndexes[0], headerCell: selectedCol,\n columnIndexes: columnIndexes,\n column: gObj.getColumnByIndex(columnIndexes[0]),\n target: this.actualTarget,\n isInteracted: this.isInteracted, previousColumnIndex: this.prevColIndex\n };\n this.onActionComplete(selectedArgs, events.columnSelected);\n this.updateColProps(columnIndexes[0]);\n };\n /**\n * Select the column with existing column by passing column index\n *\n * @param {number} startIndex - specifies the start index\n * @returns {void}\n */\n Selection.prototype.selectColumnWithExisting = function (startIndex) {\n var gObj = this.parent;\n if (isNullOrUndefined(gObj.getColumns()[parseInt(startIndex.toString(), 10)])) {\n return;\n }\n var newCol = gObj.getColumnHeaderByUid(gObj.getColumnByIndex(startIndex).uid);\n var selectedCol = this.getselectedCols();\n if (gObj.selectionSettings.type === 'Single') {\n this.clearColDependency();\n }\n if (!gObj.selectionSettings.allowColumnSelection) {\n return;\n }\n if (this.selectedColumnsIndexes.indexOf(startIndex) > -1) {\n this.clearColumnSelection(startIndex);\n }\n else {\n var selectingArgs = {\n columnIndex: startIndex, headerCell: selectedCol,\n columnIndexes: this.selectedColumnsIndexes,\n column: gObj.getColumnByIndex(startIndex),\n cancel: false, target: this.actualTarget,\n isInteracted: this.isInteracted, previousColumnIndex: this.prevColIndex,\n isCtrlPressed: this.isMultiCtrlRequest, isShiftPressed: this.isMultiShiftRequest\n };\n this.onActionBegin(selectingArgs, events.columnSelecting);\n if (selectingArgs.cancel) {\n this.disableInteracted();\n return;\n }\n this.updateColSelection(newCol, startIndex);\n selectedCol = this.getselectedCols();\n var selectedArgs = {\n columnIndex: startIndex, headerCell: selectedCol,\n column: gObj.getColumnByIndex(startIndex),\n columnIndexes: this.selectedColumnsIndexes,\n target: this.actualTarget,\n isInteracted: this.isInteracted, previousColumnIndex: this.prevColIndex\n };\n this.onActionComplete(selectedArgs, events.columnSelected);\n }\n this.updateColProps(startIndex);\n };\n /**\n * Clear the column selection\n *\n * @param {number} clearIndex - specifies the clearIndex\n * @returns {void}\n */\n Selection.prototype.clearColumnSelection = function (clearIndex) {\n if (this.isColumnSelected) {\n var gObj = this.parent;\n if (!isNullOrUndefined(clearIndex) && this.selectedColumnsIndexes.indexOf(clearIndex) === -1) {\n return;\n }\n var index = !isNullOrUndefined(clearIndex) ? clearIndex :\n this.selectedColumnsIndexes[this.selectedColumnsIndexes.length - 1];\n var col = gObj.getColumnByIndex(index);\n var selectedCol = void 0;\n var column = gObj.getColumnByIndex(index);\n if (col.getFreezeTableName() === literals.frozenRight) {\n selectedCol = gObj.getFrozenRightColumnHeaderByIndex(index);\n }\n else if (col.getFreezeTableName() === 'movable') {\n selectedCol = gObj.getMovableColumnHeaderByIndex(index);\n }\n else {\n selectedCol = gObj.getColumnHeaderByUid(column.uid);\n }\n var deselectedArgs = {\n columnIndex: index, headerCell: selectedCol,\n columnIndexes: this.selectedColumnsIndexes,\n column: column,\n cancel: false, target: this.actualTarget,\n isInteracted: this.isInteracted\n };\n var isCanceled = this.columnDeselect(deselectedArgs, events.columnDeselecting);\n if (isCanceled) {\n this.disableInteracted();\n return;\n }\n var selectedHeader = !isNullOrUndefined(clearIndex) ? [selectedCol] :\n [].slice.call(gObj.getHeaderContent().getElementsByClassName('e-columnselection'));\n var selectedCells = this.getSelectedColumnCells(clearIndex);\n for (var i = 0, len = selectedHeader.length; i < len; i++) {\n addRemoveActiveClasses([selectedHeader[parseInt(i.toString(), 10)]], false, 'e-columnselection');\n }\n for (var i = 0, len = selectedCells.length; i < len; i++) {\n addRemoveActiveClasses([selectedCells[parseInt(i.toString(), 10)]], false, 'e-columnselection');\n }\n if (!isNullOrUndefined(clearIndex)) {\n this.selectedColumnsIndexes.splice(this.selectedColumnsIndexes.indexOf(clearIndex), 1);\n this.parent.getColumns()[parseInt(clearIndex.toString(), 10)].isSelected = false;\n }\n else {\n this.columnDeselect(deselectedArgs, events.columnDeselected);\n this.selectedColumnsIndexes = [];\n this.isColumnSelected = false;\n this.parent.getColumns().filter(function (col) { return col.isSelected = false; });\n }\n }\n };\n Selection.prototype.getselectedCols = function () {\n var gObj = this.parent;\n var selectedCol;\n if (this.selectedColumnsIndexes.length > 1) {\n selectedCol = [];\n for (var i = 0; i < this.selectedColumnsIndexes.length; i++) {\n (selectedCol).push(gObj.getColumnHeaderByUid(gObj.getColumnByIndex(this.selectedColumnsIndexes[parseInt(i.toString(), 10)]).uid));\n }\n }\n else {\n selectedCol = gObj.getColumnHeaderByUid(gObj.getColumnByIndex(this.selectedColumnsIndexes[0]).uid);\n }\n return selectedCol;\n };\n Selection.prototype.getSelectedColumnCells = function (clearIndex) {\n var gObj = this.parent;\n var isRowTemplate = !isNullOrUndefined(this.parent.rowTemplate);\n var rows = isRowTemplate ? gObj.getRows() : gObj.getDataRows();\n var movableRows;\n var frRows;\n if (gObj.isFrozenGrid() && gObj.getContent().querySelector('.' + literals.movableContent)) {\n movableRows = isRowTemplate ? gObj.getMovableRows() : gObj.getMovableDataRows();\n rows = gObj.addMovableRows(rows, movableRows);\n if (gObj.getFrozenMode() === literals.leftRight) {\n frRows = isRowTemplate ? gObj.getFrozenRightRows() : gObj.getFrozenRightDataRows();\n rows = gObj.addMovableRows(rows, frRows);\n }\n }\n var seletedcells = [];\n var selectionString = !isNullOrUndefined(clearIndex) ? '[data-colindex=\"' + clearIndex + '\"]' : '.e-columnselection';\n for (var i = 0, len = rows.length; i < len; i++) {\n seletedcells = seletedcells.concat([].slice.call(rows[parseInt(i.toString(), 10)].querySelectorAll(selectionString)));\n }\n return seletedcells;\n };\n Selection.prototype.columnDeselect = function (args, event) {\n if (event === 'columnDeselected') {\n delete args.cancel;\n }\n this.onActionComplete(args, event);\n return args.cancel;\n };\n Selection.prototype.updateColProps = function (startIndex) {\n this.prevColIndex = startIndex;\n this.isColumnSelected = this.selectedColumnsIndexes.length && true;\n };\n Selection.prototype.clearColDependency = function () {\n this.clearColumnSelection();\n this.selectedColumnsIndexes = [];\n };\n Selection.prototype.updateColSelection = function (selectedCol, startIndex) {\n if (isNullOrUndefined(this.parent.getColumns()[parseInt(startIndex.toString(), 10)])) {\n return;\n }\n var left = this.parent.getFrozenLeftCount();\n var movable = this.parent.getMovableColumnsCount();\n var col = this.parent.getColumnByIndex(startIndex);\n var isRowTemplate = !isNullOrUndefined(this.parent.rowTemplate);\n var rows;\n this.selectedColumnsIndexes.push(startIndex);\n this.parent.getColumns()[parseInt(startIndex.toString(), 10)].isSelected = true;\n if (col.getFreezeTableName() === literals.frozenRight) {\n startIndex = startIndex - (left + movable);\n rows = isRowTemplate ? this.parent.getFrozenRightRows() : this.parent.getFrozenRightDataRows();\n }\n else if (col.getFreezeTableName() === 'movable') {\n startIndex = startIndex - left;\n rows = isRowTemplate ? this.parent.getMovableRows() : this.parent.getMovableDataRows();\n }\n else {\n startIndex = startIndex + this.parent.getIndentCount();\n rows = isRowTemplate ? this.parent.getRows() : this.parent.getDataRows();\n }\n addRemoveActiveClasses([selectedCol], true, 'e-columnselection');\n for (var j = 0, len = rows.length; j < len; j++) {\n if (rows[parseInt(j.toString(), 10)].classList.contains(literals.row)) {\n if ((rows[parseInt(j.toString(), 10)].classList.contains(literals.editedRow)\n || rows[parseInt(j.toString(), 10)].classList.contains(literals.addedRow))\n && this.parent.editSettings.mode === 'Normal'\n && !isNullOrUndefined(rows[parseInt(j.toString(), 10)].querySelector('tr').childNodes[parseInt(startIndex.toString(), 10)])) {\n addRemoveActiveClasses([rows[parseInt(j.toString(), 10)].querySelector('tr').childNodes[parseInt(startIndex.toString(), 10)]], true, 'e-columnselection');\n }\n else if (!isNullOrUndefined(rows[parseInt(j.toString(), 10)].childNodes[parseInt(startIndex.toString(), 10)])) {\n addRemoveActiveClasses([rows[parseInt(j.toString(), 10)].childNodes[parseInt(startIndex.toString(), 10)]], true, 'e-columnselection');\n }\n }\n }\n };\n Selection.prototype.headerSelectionHandler = function (colIndex) {\n if ((!this.isMultiCtrlRequest && !this.isMultiShiftRequest) || this.isSingleSel()) {\n this.selectColumn(colIndex);\n }\n else if (this.isMultiShiftRequest) {\n this.selectColumnsByRange(isUndefined(this.prevColIndex) ? colIndex : this.prevColIndex, colIndex);\n }\n else {\n this.selectColumnWithExisting(colIndex);\n }\n };\n // eslint-disable-next-line camelcase\n Selection.prototype.addEventListener_checkbox = function () {\n var _this = this;\n this.parent.on(events.dataReady, this.dataReady, this);\n this.onDataBoundFunction = this.onDataBound.bind(this);\n this.parent.addEventListener(events.dataBound, this.onDataBoundFunction);\n this.parent.on(events.refreshInfinitePersistSelection, this.onDataBoundFunction);\n this.parent.on(events.contentReady, this.checkBoxSelectionChanged, this);\n this.parent.on(events.beforeRefreshOnDataChange, this.initPerisistSelection, this);\n this.parent.on(events.onEmpty, this.setCheckAllForEmptyGrid, this);\n this.actionCompleteFunc = this.actionCompleteHandler.bind(this);\n this.parent.addEventListener(events.actionComplete, this.actionCompleteFunc);\n this.parent.on(events.click, this.clickHandler, this);\n this.resizeEndFn = function () {\n _this.updateAutoFillPosition();\n _this.drawBorders();\n };\n this.resizeEndFn.bind(this);\n this.parent.addEventListener(events.resizeStop, this.resizeEndFn);\n };\n // eslint-disable-next-line camelcase\n Selection.prototype.removeEventListener_checkbox = function () {\n this.parent.off(events.dataReady, this.dataReady);\n this.parent.removeEventListener(events.dataBound, this.onDataBoundFunction);\n this.parent.removeEventListener(events.actionComplete, this.actionCompleteFunc);\n this.parent.off(events.refreshInfinitePersistSelection, this.onDataBoundFunction);\n this.parent.off(events.onEmpty, this.setCheckAllForEmptyGrid);\n this.parent.off(events.click, this.clickHandler);\n this.parent.off(events.beforeRefreshOnDataChange, this.initPerisistSelection);\n };\n Selection.prototype.setCheckAllForEmptyGrid = function () {\n var checkAllBox = this.getCheckAllBox();\n if (checkAllBox) {\n this.parent.isCheckBoxSelection = true;\n var spanEle = checkAllBox.nextElementSibling;\n removeClass([spanEle], ['e-check', 'e-stop', 'e-uncheck']);\n }\n };\n Selection.prototype.dataReady = function (e) {\n this.isHeaderCheckboxClicked = false;\n var isInfinitecroll = this.parent.enableInfiniteScrolling && e.requestType === 'infiniteScroll';\n if (e.requestType !== 'virtualscroll' && !this.parent.isPersistSelection && !isInfinitecroll) {\n this.disableUI = !this.parent.enableImmutableMode;\n this.clearSelection();\n this.setCheckAllState();\n this.disableUI = false;\n }\n };\n Selection.prototype.actionCompleteHandler = function (e) {\n if (e.requestType === 'save' && this.parent.isPersistSelection) {\n this.refreshPersistSelection();\n }\n };\n Selection.prototype.selectRowIndex = function (index) {\n this.parent.isSelectedRowIndexUpdating = true;\n if (isNullOrUndefined(this.parent.selectedRowIndex) || this.parent.selectedRowIndex === -1) {\n this.parent.selectedRowIndex = index;\n }\n else {\n this.parent.selectedRowIndex = -1;\n }\n };\n Selection.prototype.disableInteracted = function () {\n this.isInteracted = false;\n };\n Selection.prototype.activeTarget = function () {\n this.actualTarget = this.isInteracted ? this.actualTarget : null;\n };\n return Selection;\n}());\nexport { Selection };\n","import { extend, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport * as events from '../base/constant';\nimport { isActionPrevent } from '../base/util';\n/**\n * The `Search` module is used to handle search action.\n */\nvar Search = /** @class */ (function () {\n /**\n * Constructor for Grid search module.\n *\n * @param {IGrid} parent - specifies the IGrid\n * @hidden\n */\n function Search(parent) {\n this.parent = parent;\n this.addEventListener();\n }\n /**\n * Searches Grid records by given key.\n *\n * > You can customize the default search action by using [`searchSettings`](./searchsettings/).\n *\n * @param {string} searchString - Defines the key.\n * @returns {void}\n */\n Search.prototype.search = function (searchString) {\n var gObj = this.parent;\n searchString = isNullOrUndefined(searchString) ? '' : searchString;\n if (isActionPrevent(gObj)) {\n gObj.notify(events.preventBatch, { instance: this, handler: this.search, arg1: searchString });\n return;\n }\n if (searchString !== gObj.searchSettings.key) {\n gObj.searchSettings.key = searchString.toString();\n gObj.dataBind();\n }\n else if (this.refreshSearch) {\n gObj.refresh();\n }\n };\n /**\n * @returns {void}\n * @hidden\n */\n Search.prototype.addEventListener = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n this.parent.on(events.inBoundModelChanged, this.onPropertyChanged, this);\n this.parent.on(events.searchComplete, this.onSearchComplete, this);\n this.parent.on(events.destroy, this.destroy, this);\n this.actionCompleteFunc = this.onActionComplete.bind(this);\n this.parent.addEventListener(events.actionComplete, this.actionCompleteFunc);\n this.parent.on(events.cancelBegin, this.cancelBeginEvent, this);\n };\n /**\n * @returns {void}\n * @hidden\n */\n Search.prototype.removeEventListener = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n this.parent.off(events.inBoundModelChanged, this.onPropertyChanged);\n this.parent.off(events.searchComplete, this.onSearchComplete);\n this.parent.off(events.destroy, this.destroy);\n this.parent.removeEventListener(events.actionComplete, this.actionCompleteFunc);\n this.parent.off(events.cancelBegin, this.cancelBeginEvent);\n };\n /**\n * To destroy the print\n *\n * @returns {void}\n * @hidden\n */\n Search.prototype.destroy = function () {\n this.removeEventListener();\n };\n /**\n * @param {NotifyArgs} e - specfies the NotifyArgs\n * @returns {void}\n * @hidden\n */\n Search.prototype.onPropertyChanged = function (e) {\n if (e.module !== this.getModuleName()) {\n return;\n }\n if (!isNullOrUndefined(e.properties.key)) {\n this.parent.notify(events.modelChanged, {\n requestType: 'searching', type: events.actionBegin, searchString: this.parent.searchSettings.key\n });\n }\n else {\n this.parent.notify(events.modelChanged, {\n requestType: 'searching', type: events.actionBegin\n });\n }\n };\n /**\n * The function used to trigger onActionComplete\n *\n * @param {NotifyArgs} e - specifies the NotifyArgs\n * @returns {void}\n * @hidden\n */\n Search.prototype.onSearchComplete = function (e) {\n this.parent.trigger(events.actionComplete, extend(e, {\n searchString: this.parent.searchSettings.key, requestType: 'searching', type: events.actionComplete\n }));\n };\n /**\n * The function used to store the requestType\n *\n * @param {NotifyArgs} e - specifies the NotifyArgs\n * @returns {void}\n * @hidden\n */\n Search.prototype.onActionComplete = function (e) {\n this.refreshSearch = e.requestType !== 'searching';\n };\n Search.prototype.cancelBeginEvent = function (e) {\n if (e.requestType === 'searching') {\n this.parent.setProperties({ searchSettings: { key: '' } }, true);\n }\n };\n /**\n * For internal use only - Get the module name.\n *\n * @returns {string} returns the module name\n * @private\n */\n Search.prototype.getModuleName = function () {\n return 'search';\n };\n return Search;\n}());\nexport { Search };\n","import { isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { iterateArrayOrObject, isGroupAdaptive, isActionPrevent, addRemoveEventListener } from '../base/util';\nimport * as events from '../base/constant';\n/**\n * The `ShowHide` module is used to control column visibility.\n */\nvar ShowHide = /** @class */ (function () {\n /**\n * Constructor for the show hide module.\n *\n * @param {IGrid} parent - specifies the IGrid\n * @hidden\n */\n function ShowHide(parent) {\n this.colName = [];\n this.isShowHide = false;\n this.parent = parent;\n this.addEventListener();\n }\n ShowHide.prototype.addEventListener = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n this.evtHandlers = [{ event: events.batchCancel, handler: this.batchChanges },\n { event: events.batchCnfrmDlgCancel, handler: this.resetColumnState }\n ];\n addRemoveEventListener(this.parent, this.evtHandlers, true, this);\n };\n /**\n * @returns {void}\n * @hidden\n */\n ShowHide.prototype.removeEventListener = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n addRemoveEventListener(this.parent, this.evtHandlers, false);\n };\n ShowHide.prototype.batchChanges = function () {\n if (this.isShowHide) {\n this.isShowHide = false;\n this.setVisible(this.colName, this.changedCol);\n this.changedCol = this.colName = [];\n }\n };\n /**\n * Shows a column by column name.\n *\n * @param {string|string[]} columnName - Defines a single or collection of column names to show.\n * @param {string} showBy - Defines the column key either as field name or header text.\n * @returns {void}\n */\n ShowHide.prototype.show = function (columnName, showBy) {\n var keys = this.getToggleFields(columnName);\n var columns = this.getColumns(keys, showBy);\n this.parent.notify(events.tooltipDestroy, { module: 'edit' });\n for (var i = 0; i < columns.length; i++) {\n columns[parseInt(i.toString(), 10)].visible = true;\n }\n this.setVisible(columns);\n };\n /**\n * Hides a column by column name.\n *\n * @param {string|string[]} columnName - Defines a single or collection of column names to hide.\n * @param {string} hideBy - Defines the column key either as field name or header text.\n * @returns {void}\n */\n ShowHide.prototype.hide = function (columnName, hideBy) {\n var keys = this.getToggleFields(columnName);\n var columns = this.getColumns(keys, hideBy);\n this.parent.notify(events.tooltipDestroy, { module: 'edit' });\n for (var i = 0; i < columns.length; i++) {\n columns[parseInt(i.toString(), 10)].visible = false;\n }\n this.setVisible(columns);\n };\n ShowHide.prototype.getToggleFields = function (key) {\n var finalized = [];\n if (typeof key === 'string') {\n finalized = [key];\n }\n else {\n finalized = key;\n }\n return finalized;\n };\n ShowHide.prototype.getColumns = function (keys, getKeyBy) {\n var _this = this;\n var columns = iterateArrayOrObject(keys, function (key) {\n return iterateArrayOrObject(_this.parent.columnModel, function (item) {\n if (item[\"\" + getKeyBy] === key) {\n return item;\n }\n return undefined;\n })[0];\n });\n return columns;\n };\n ShowHide.prototype.batchActionPrevent = function (columns, changedStateColumns) {\n if (changedStateColumns === void 0) { changedStateColumns = []; }\n if (isActionPrevent(this.parent)) {\n this.colName = columns;\n this.changedCol = changedStateColumns;\n this.parent.closeEdit();\n return false;\n }\n return true;\n };\n ShowHide.prototype.resetColumnState = function () {\n if (this.isShowHide) {\n for (var i = 0; i < this.colName.length; i++) {\n this.colName[parseInt(i.toString(), 10)].visible = !this.colName[parseInt(i.toString(), 10)].visible;\n }\n }\n };\n /**\n * Shows or hides columns by given column collection.\n *\n * @private\n * @param {Column[]} columns - Specifies the columns.\n * @param {Column[]} changedStateColumns - specifies the changedStateColumns\n * @returns {void}\n */\n ShowHide.prototype.setVisible = function (columns, changedStateColumns) {\n var _this = this;\n if (changedStateColumns === void 0) { changedStateColumns = []; }\n this.isShowHide = true;\n if (!this.batchActionPrevent(columns, changedStateColumns)) {\n return;\n }\n changedStateColumns = (changedStateColumns.length > 0) ? changedStateColumns : columns;\n var args = {\n requestType: 'columnstate',\n cancel: false,\n columns: changedStateColumns\n };\n var cancel = 'cancel';\n if (this.parent.enableInfiniteScrolling && this.parent.allowGrouping\n && this.parent.groupModule.groupSettings.columns.length > 0) {\n this.parent.contentModule.visibleRows = [];\n }\n this.parent.trigger(events.actionBegin, args, function (showHideArgs) {\n var currentViewCols = _this.parent.getColumns();\n columns = isNullOrUndefined(columns) ? currentViewCols : columns;\n if (showHideArgs[\"\" + cancel]) {\n _this.parent.notify(events.resetColumns, { showHideArgs: showHideArgs });\n if (columns.length > 0) {\n columns[0].visible = true;\n }\n return;\n }\n if (isGroupAdaptive(_this.parent)) {\n _this.parent.contentModule.emptyVcRows();\n }\n if (_this.parent.allowSelection && _this.parent.getSelectedRecords().length &&\n !_this.parent.selectionSettings.persistSelection) {\n _this.parent.clearSelection();\n }\n if (_this.parent.enableColumnVirtualization) {\n var colsInCurrentView = columns.filter(function (col1) { return (currentViewCols.some(function (col2) { return col1.field === col2.field; })); });\n if (colsInCurrentView.length) {\n _this.parent.notify(events.columnVisibilityChanged, columns);\n }\n }\n else {\n _this.parent.notify(events.columnVisibilityChanged, columns);\n }\n var params = {\n requestType: 'columnstate',\n columns: changedStateColumns\n };\n _this.parent.trigger(events.actionComplete, params);\n if (_this.parent.columnQueryMode !== 'All') {\n _this.parent.refresh();\n }\n });\n if (this.parent.autoFit && !this.parent.groupSettings.columns.length) {\n this.parent.preventAdjustColumns();\n }\n };\n return ShowHide;\n}());\nexport { ShowHide };\n","import { Browser, EventHandler } from '@syncfusion/ej2-base';\nimport { addClass, removeClass } from '@syncfusion/ej2-base';\nimport { formatUnit, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { getScrollBarWidth, getUpdateUsingRaf } from '../base/util';\nimport { scroll, contentReady, uiUpdate, onEmpty, headerRefreshed, textWrapRefresh, virtualScrollEdit, infiniteScrollHandler, closeFilterDialog } from '../base/constant';\nimport { lazyLoadScrollHandler, checkScrollReset } from '../base/constant';\nimport { ColumnWidthService } from '../services/width-controller';\nimport * as literals from '../base/string-literals';\nimport * as events from '../base/constant';\n/**\n * The `Scroll` module is used to handle scrolling behaviour.\n */\nvar Scroll = /** @class */ (function () {\n /**\n * Constructor for the Grid scrolling.\n *\n * @param {IGrid} parent - specifies the IGrid\n * @hidden\n */\n function Scroll(parent) {\n //To maintain scroll state on grid actions.\n this.previousValues = { top: 0, left: 0 };\n this.oneTimeReady = true;\n this.parent = parent;\n this.widthService = new ColumnWidthService(parent);\n this.addEventListener();\n }\n /**\n * For internal use only - Get the module name.\n *\n * @returns {string} returns the module name\n * @private\n */\n Scroll.prototype.getModuleName = function () {\n return 'scroll';\n };\n /**\n * @param {boolean} uiupdate - specifies the uiupdate\n * @returns {void}\n * @hidden\n */\n Scroll.prototype.setWidth = function (uiupdate) {\n this.parent.element.style.width = formatUnit(this.parent.width);\n if (uiupdate) {\n this.widthService.setWidthToColumns();\n }\n if (this.parent.toolbarModule && this.parent.toolbarModule.toolbar &&\n this.parent.toolbarModule.toolbar.element) {\n var tlbrElement = this.parent.toolbarModule.toolbar.element;\n var tlbrLeftElement = tlbrElement.querySelector('.e-toolbar-left');\n var tlbrCenterElement = tlbrElement.querySelector('.e-toolbar-center');\n var tlbrRightElement = tlbrElement.querySelector('.e-toolbar-right');\n var tlbrItems = tlbrElement.querySelector('.e-toolbar-items');\n var tlbrLeftWidth = tlbrLeftElement ? tlbrLeftElement.clientWidth : 0;\n var tlbrCenterWidth = tlbrCenterElement ? tlbrCenterElement.clientWidth : 0;\n var tlbrRightWidth = tlbrRightElement ? tlbrRightElement.clientWidth : 0;\n var tlbrItemsWidth = tlbrItems ? tlbrItems.clientWidth : 0;\n var tlbrWidth = tlbrElement ? tlbrElement.clientWidth : 0;\n if (!this.parent.enableAdaptiveUI || tlbrLeftWidth > tlbrWidth || tlbrCenterWidth > tlbrWidth || tlbrRightWidth > tlbrWidth ||\n tlbrItemsWidth > tlbrWidth) {\n this.parent.toolbarModule.toolbar.refreshOverflow();\n }\n }\n };\n /**\n * @returns {void}\n * @hidden\n */\n Scroll.prototype.setHeight = function () {\n var mHdrHeight = 0;\n var content = this.parent.getContent().querySelector('.' + literals.content);\n var height = this.parent.height;\n if (this.parent.isFrozenGrid() && this.parent.height !== 'auto' && this.parent.height.toString().indexOf('%') < 0) {\n height = parseInt(height, 10) - Scroll.getScrollBarWidth();\n }\n if (!this.parent.enableVirtualization && this.parent.frozenRows && this.parent.height !== 'auto') {\n var tbody = this.parent.getHeaderContent()\n .querySelector(literals.tbody + ':not(.e-masked-tbody)');\n mHdrHeight = tbody ? tbody.offsetHeight : 0;\n if (tbody && mHdrHeight) {\n var add = tbody.getElementsByClassName(literals.addedRow).length;\n var height_1 = add * this.parent.getRowHeight();\n mHdrHeight -= height_1;\n }\n else if (!this.parent.isInitialLoad && this.parent.loadingIndicator.indicatorType === 'Shimmer'\n && this.parent.getHeaderContent().querySelector('.e-masked-table')) {\n height = parseInt(height, 10) - (this.parent.frozenRows * this.parent.getRowHeight());\n }\n content.style.height = formatUnit(height - mHdrHeight);\n }\n else {\n content.style.height = formatUnit(height);\n }\n this.ensureOverflow(content);\n if (this.parent.isFrozenGrid()) {\n this.refresh();\n }\n };\n /**\n * @returns {void}\n * @hidden\n */\n Scroll.prototype.setPadding = function () {\n var content = this.parent.getHeaderContent();\n var scrollWidth = Scroll.getScrollBarWidth() - this.getThreshold();\n var cssProps = this.getCssProperties();\n var padding = this.parent.getFrozenMode() === 'Right' || this.parent.getFrozenMode() === literals.leftRight ? '0.5px' : '1px';\n content.querySelector('.' + literals.headerContent).style[cssProps.border] = scrollWidth > 0 ? padding : '0px';\n content.style[cssProps.padding] = scrollWidth > 0 ? scrollWidth + 'px' : '0px';\n };\n /**\n * @param {boolean} rtl - specifies the rtl\n * @returns {void}\n * @hidden\n */\n Scroll.prototype.removePadding = function (rtl) {\n var cssProps = this.getCssProperties(rtl);\n var hDiv = this.parent.getHeaderContent().querySelector('.' + literals.headerContent);\n hDiv.style[cssProps.border] = '';\n hDiv.parentElement.style[cssProps.padding] = '';\n var footerDiv = this.parent.getFooterContent();\n if (footerDiv && footerDiv.classList.contains('e-footerpadding')) {\n footerDiv.classList.remove('e-footerpadding');\n }\n };\n /**\n * Refresh makes the Grid adoptable with the height of parent container.\n *\n * > The [`height`](./#height) must be set to 100%.\n *\n * @returns {void}\n */\n Scroll.prototype.refresh = function () {\n if (this.parent.height !== '100%') {\n return;\n }\n var content = this.parent.getContent();\n this.parent.element.style.height = '100%';\n var height = this.widthService.getSiblingsHeight(content);\n content.style.height = 'calc(100% - ' + height + 'px)'; //Set the height to the '.' + literals.gridContent;\n if (this.parent.isFrozenGrid()) {\n content.firstElementChild.style.height = 'calc(100% - ' + getScrollBarWidth() + 'px)';\n }\n };\n Scroll.prototype.getThreshold = function () {\n /* Some browsers places the scroller outside the content,\n * hence the padding should be adjusted.*/\n var appName = Browser.info.name;\n if (appName === 'mozilla') {\n return 0.5;\n }\n return 1;\n };\n /**\n * @returns {void}\n * @hidden\n */\n Scroll.prototype.addEventListener = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n this.parent.on(onEmpty, this.wireEvents, this);\n this.parent.on(contentReady, this.wireEvents, this);\n this.parent.on(uiUpdate, this.onPropertyChanged, this);\n this.parent.on(textWrapRefresh, this.wireEvents, this);\n this.parent.on(headerRefreshed, this.setScrollLeft, this);\n };\n /**\n * @returns {void}\n * @hidden\n */\n Scroll.prototype.removeEventListener = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n this.parent.off(onEmpty, this.wireEvents);\n this.parent.off(contentReady, this.wireEvents);\n this.parent.off(uiUpdate, this.onPropertyChanged);\n this.parent.off(textWrapRefresh, this.wireEvents);\n this.parent.off(headerRefreshed, this.setScrollLeft);\n this.unwireEvents();\n };\n Scroll.prototype.unwireEvents = function () {\n var frzCols = this.parent.isFrozenGrid();\n var mCont;\n var mHdr;\n if (this.content) {\n mCont = this.content.querySelector('.' + literals.movableContent);\n }\n if (this.header) {\n mHdr = this.header.querySelector('.' + literals.movableHeader);\n }\n var mScrollBar = this.parent.getContent() ? this.parent.getContent().querySelector('.e-movablescrollbar') : null;\n if (this.parent.frozenRows && ((this.header && !frzCols) || (frzCols && mHdr))) {\n EventHandler.remove(frzCols ? mHdr : this.header, 'touchstart pointerdown', this.setPageXY);\n EventHandler.remove(frzCols ? mHdr : this.header, 'touchmove pointermove', this.onTouchScroll);\n }\n if (this.parent.isFrozenGrid()) {\n if (mScrollBar) {\n EventHandler.remove(mScrollBar, 'scroll', this.onCustomScrollbarScroll);\n }\n if (mCont) {\n EventHandler.remove(mCont, 'scroll', this.onCustomScrollbarScroll);\n EventHandler.remove(mCont, 'touchstart pointerdown', this.setPageXY);\n if (!(/macintosh|ipad/.test(Browser.userAgent.toLowerCase()) && Browser.isDevice)) {\n EventHandler.remove(mCont, 'touchmove pointermove', this.onTouchScroll);\n }\n }\n if (mHdr) {\n EventHandler.remove(mHdr, 'scroll', this.onCustomScrollbarScroll);\n EventHandler.remove(mHdr, 'touchstart pointerdown', this.setPageXY);\n EventHandler.remove(mHdr, 'touchmove pointermove', this.onTouchScroll);\n }\n if (this.content) {\n EventHandler.remove(this.content, 'scroll', this.onFrozenContentScroll);\n }\n }\n else {\n if (this.content) {\n EventHandler.remove(this.content, 'scroll', this.onContentScroll);\n }\n if (this.header) {\n EventHandler.remove(this.header, 'scroll', this.onContentScroll);\n }\n }\n if (this.parent.aggregates.length && this.parent.getFooterContent()) {\n EventHandler.remove(this.parent.getFooterContent().firstChild, 'scroll', this.onContentScroll);\n }\n };\n Scroll.prototype.setScrollLeft = function () {\n if (this.parent.isFrozenGrid()) {\n this.parent.headerModule.getMovableHeader().scrollLeft = this.previousValues.left;\n }\n else {\n this.parent.getHeaderContent().querySelector('.' + literals.headerContent).scrollLeft = this.previousValues.left;\n }\n };\n Scroll.prototype.onFrozenContentScroll = function () {\n var _this = this;\n return function (e) {\n if (_this.content.querySelector(literals.tbody) === null || _this.parent.isPreventScrollEvent) {\n return;\n }\n if (!isNullOrUndefined(_this.parent.infiniteScrollModule) && _this.parent.enableInfiniteScrolling) {\n _this.parent.notify(infiniteScrollHandler, e);\n }\n _this.previousValues.top = e.target.scrollTop;\n };\n };\n Scroll.prototype.onContentScroll = function (scrollTarget) {\n var _this = this;\n var element = scrollTarget;\n var isHeader = element.classList.contains(literals.headerContent);\n return function (e) {\n if (_this.content.querySelector(literals.tbody) === null || _this.parent.isPreventScrollEvent) {\n return;\n }\n var target = e.target;\n var left = target.scrollLeft;\n if (!isNullOrUndefined(_this.parent.infiniteScrollModule) && _this.parent.enableInfiniteScrolling) {\n _this.parent.notify(infiniteScrollHandler, { target: e.target, isLeft: _this.previousValues.left !== left });\n }\n if (_this.parent.groupSettings.columns.length && _this.parent.groupSettings.enableLazyLoading) {\n var isDown = _this.previousValues.top < _this.parent.getContent().firstElementChild.scrollTop;\n _this.parent.notify(lazyLoadScrollHandler, { scrollDown: isDown });\n }\n _this.parent.notify(virtualScrollEdit, {});\n var isFooter = target.classList.contains('e-summarycontent');\n if (_this.previousValues.left === left) {\n _this.previousValues.top = !isHeader ? _this.previousValues.top : target.scrollTop;\n return;\n }\n _this.parent.notify(closeFilterDialog, e);\n element.scrollLeft = left;\n if (isFooter) {\n _this.header.scrollLeft = left;\n }\n _this.previousValues.left = left;\n _this.parent.notify(scroll, { left: left });\n };\n };\n Scroll.prototype.onCustomScrollbarScroll = function (mCont, mHdr) {\n var _this = this;\n var content = mCont;\n var header = mHdr;\n return function (e) {\n if (_this.content.querySelector(literals.tbody) === null) {\n return;\n }\n var target = e.target;\n var left = target.scrollLeft;\n if (_this.previousValues.left === left) {\n return;\n }\n content.scrollLeft = left;\n header.scrollLeft = left;\n _this.previousValues.left = left;\n _this.parent.notify(scroll, { left: left });\n if (_this.parent.isDestroyed) {\n return;\n }\n };\n };\n Scroll.prototype.onTouchScroll = function (scrollTarget) {\n var _this = this;\n var element = scrollTarget;\n return function (e) {\n if (e.pointerType === 'mouse') {\n return;\n }\n var isFrozen = _this.parent.isFrozenGrid();\n var pageXY = _this.getPointXY(e);\n var left = element.scrollLeft + (_this.pageXY.x - pageXY.x);\n var mHdr = isFrozen ?\n _this.parent.getHeaderContent().querySelector('.' + literals.movableHeader) :\n _this.parent.getHeaderContent().querySelector('.' + literals.headerContent);\n var mCont = isFrozen ?\n _this.parent.getContent().querySelector('.' + literals.movableContent) :\n _this.parent.getContent().querySelector('.' + literals.content);\n if (_this.previousValues.left === left || (left < 0 || (mHdr.scrollWidth - mHdr.clientWidth) < left)) {\n return;\n }\n e.preventDefault();\n mHdr.scrollLeft = left;\n mCont.scrollLeft = left;\n if (isFrozen) {\n var scrollBar = _this.parent.getContent().querySelector('.e-movablescrollbar');\n scrollBar.scrollLeft = left;\n }\n _this.pageXY.x = pageXY.x;\n _this.previousValues.left = left;\n };\n };\n Scroll.prototype.setPageXY = function () {\n var _this = this;\n return function (e) {\n if (e.pointerType === 'mouse') {\n return;\n }\n _this.pageXY = _this.getPointXY(e);\n };\n };\n Scroll.prototype.getPointXY = function (e) {\n var pageXY = { x: 0, y: 0 };\n if (e.touches && e.touches.length) {\n pageXY.x = e.touches[0].pageX;\n pageXY.y = e.touches[0].pageY;\n }\n else {\n pageXY.x = e.pageX;\n pageXY.y = e.pageY;\n }\n return pageXY;\n };\n Scroll.prototype.getScrollbleParent = function (node) {\n if (node === null) {\n return null;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var parent = isNullOrUndefined(node.tagName) ? node.scrollingElement : node;\n var overflowY = document.defaultView.getComputedStyle(parent, null).overflowY;\n if (parent.scrollHeight > parent.clientHeight && overflowY !== 'hidden'\n && overflowY !== 'visible' || node.tagName === 'HTML' || node.tagName === 'BODY') {\n return node;\n }\n else {\n return this.getScrollbleParent(node.parentNode);\n }\n };\n /**\n * @param {boolean} isAdd - specifies whether adding/removing the event\n * @returns {void}\n * @hidden\n */\n Scroll.prototype.addStickyListener = function (isAdd) {\n this.parentElement = this.getScrollbleParent(this.parent.element.parentElement);\n if (isAdd && this.parentElement) {\n this.eventElement = this.parentElement.tagName === 'HTML' || this.parentElement.tagName === 'BODY' ? document :\n this.parentElement;\n EventHandler.add(this.eventElement, 'scroll', this.makeStickyHeader, this);\n }\n else if (this.eventElement) {\n EventHandler.remove(this.eventElement, 'scroll', this.makeStickyHeader);\n this.eventElement = null;\n }\n };\n Scroll.prototype.wireEvents = function () {\n var _this = this;\n if (this.oneTimeReady) {\n var frzCols = this.parent.isFrozenGrid();\n this.content = this.parent.getContent().querySelector('.' + literals.content);\n this.header = this.parent.getHeaderContent().querySelector('.' + literals.headerContent);\n var mCont = this.content.querySelector('.' + literals.movableContent);\n var mHdr = this.header.querySelector('.' + literals.movableHeader);\n var mScrollBar = this.parent.getContent().querySelector('.e-movablescrollbar');\n if (this.parent.frozenRows) {\n EventHandler.add(frzCols ? mHdr : this.header, 'touchstart pointerdown', this.setPageXY(), this);\n EventHandler.add(frzCols ? mHdr : this.header, 'touchmove pointermove', this.onTouchScroll(frzCols ? mCont : this.content), this);\n }\n if (this.parent.isFrozenGrid()) {\n EventHandler.add(mScrollBar, 'scroll', this.onCustomScrollbarScroll(mCont, mHdr), this);\n EventHandler.add(mCont, 'scroll', this.onCustomScrollbarScroll(mScrollBar, mHdr), this);\n EventHandler.add(mHdr, 'scroll', this.onCustomScrollbarScroll(mScrollBar, mCont), this);\n EventHandler.add(this.content, 'scroll', this.onFrozenContentScroll(), this);\n EventHandler.add(mHdr, 'touchstart pointerdown', this.setPageXY(), this);\n EventHandler.add(mHdr, 'touchmove pointermove', this.onTouchScroll(mCont), this);\n EventHandler.add(mCont, 'touchstart pointerdown', this.setPageXY(), this);\n if (!(/macintosh|ipad/.test(Browser.userAgent.toLowerCase()) && Browser.isDevice)) {\n EventHandler.add(mCont, 'touchmove pointermove', this.onTouchScroll(mHdr), this);\n }\n }\n else {\n EventHandler.add(this.content, 'scroll', this.onContentScroll(this.header), this);\n EventHandler.add(this.header, 'scroll', this.onContentScroll(this.content), this);\n }\n if (this.parent.aggregates.length) {\n EventHandler.add(this.parent.getFooterContent().firstChild, 'scroll', this.onContentScroll(this.content), this);\n }\n if (this.parent.enableStickyHeader) {\n this.addStickyListener(true);\n }\n this.refresh();\n this.oneTimeReady = false;\n }\n var table = this.parent.getContentTable();\n var sLeft;\n var sHeight;\n var clientHeight;\n getUpdateUsingRaf(function () {\n sLeft = _this.header.scrollLeft;\n sHeight = table.scrollHeight;\n clientHeight = _this.parent.getContent().clientHeight;\n }, function () {\n var args = { cancel: false };\n _this.parent.notify(checkScrollReset, args);\n if (sHeight < clientHeight) {\n _this.setLastRowCell();\n }\n if (!_this.parent.enableVirtualization && !_this.parent.enableInfiniteScrolling) {\n if (!args.cancel) {\n if ((_this.parent.frozenRows > 0 || _this.parent.isFrozenGrid()) && _this.header.querySelector('.' + literals.movableHeader)) {\n _this.header.querySelector('.' + literals.movableHeader).scrollLeft = _this.previousValues.left;\n }\n else {\n _this.header.scrollLeft = _this.previousValues.left;\n }\n _this.content.scrollLeft = _this.previousValues.left;\n _this.content.scrollTop = _this.previousValues.top;\n }\n }\n if (!_this.parent.enableColumnVirtualization) {\n _this.content.scrollLeft = sLeft;\n }\n if (_this.parent.isFrozenGrid() && _this.header.querySelector('.' + literals.movableHeader)) {\n _this.header.querySelector('.' + literals.movableHeader).scrollLeft =\n _this.content.querySelector('.' + literals.movableContent).scrollLeft;\n }\n });\n this.parent.isPreventScrollEvent = false;\n };\n /**\n * @returns {void} returns void\n * @hidden\n */\n Scroll.prototype.setLastRowCell = function () {\n var table = this.parent.getContentTable();\n if (table.querySelector('tr:nth-last-child(2)')) {\n removeClass(table.querySelector('tr:nth-last-child(2)').querySelectorAll('td'), 'e-lastrowcell');\n }\n addClass(table.querySelectorAll('tr:last-child td'), 'e-lastrowcell');\n if (this.parent.isFrozenGrid()) {\n var mTable = this.parent.getContent().querySelector('.' + literals.movableContent);\n if (mTable.querySelector('tr:nth-last-child(2)')) {\n removeClass(mTable.querySelector('tr:nth-last-child(2)').querySelectorAll('td'), 'e-lastrowcell');\n }\n addClass(mTable.querySelectorAll('tr:last-child td'), 'e-lastrowcell');\n if (this.parent.getFrozenRightColumnsCount()) {\n var frTable = this.parent.getContent().querySelector('.e-frozen-right-content');\n if (frTable.querySelector('tr:nth-last-child(2)')) {\n removeClass(frTable.querySelector('tr:nth-last-child(2)').querySelectorAll('td'), 'e-lastrowcell');\n }\n addClass(frTable.querySelectorAll('tr:last-child td'), 'e-lastrowcell');\n }\n }\n };\n /**\n * @param {boolean} rtl - specifies the rtl\n * @returns {ScrollCss} returns the ScrollCss\n * @hidden\n */\n Scroll.prototype.getCssProperties = function (rtl) {\n var css = {};\n var enableRtl = isNullOrUndefined(rtl) ? this.parent.enableRtl : rtl;\n css.border = enableRtl ? 'borderLeftWidth' : 'borderRightWidth';\n css.padding = enableRtl ? 'paddingLeft' : 'paddingRight';\n return css;\n };\n Scroll.prototype.ensureOverflow = function (content) {\n content.style.overflowY = this.parent.height === 'auto' ? 'auto' : 'scroll';\n };\n Scroll.prototype.onPropertyChanged = function (e) {\n if (e.module !== this.getModuleName()) {\n return;\n }\n this.setPadding();\n this.oneTimeReady = true;\n if (this.parent.height === 'auto') {\n this.removePadding();\n }\n this.wireEvents();\n this.setHeight();\n var width = 'width';\n this.setWidth(!isNullOrUndefined(e.properties[\"\" + width]));\n };\n Scroll.prototype.makeStickyHeader = function () {\n if (this.parent.enableStickyHeader && this.parent.element && this.parent.getContent()) {\n var contentRect = this.parent.getContent().getClientRects()[0];\n if (contentRect) {\n var headerEle = this.parent.getHeaderContent();\n var toolbarEle = this.parent.element.querySelector('.e-toolbar');\n var groupHeaderEle = this.parent.element.querySelector('.e-groupdroparea');\n var height = headerEle.offsetHeight + (toolbarEle ? toolbarEle.offsetHeight : 0) +\n (groupHeaderEle ? groupHeaderEle.offsetHeight : 0);\n var parentTop = this.parentElement.getClientRects()[0].top;\n var top_1 = contentRect.top - (parentTop < 0 ? 0 : parentTop);\n var left = contentRect.left;\n var colMenuEle = document.body.querySelector('#' + this.parent.element.id + '_columnmenu');\n if (top_1 < height && contentRect.bottom > 0) {\n headerEle.classList.add('e-sticky');\n var elemTop = 0;\n if (groupHeaderEle && this.parent.groupSettings.showDropArea) {\n this.setSticky(groupHeaderEle, elemTop, contentRect.width, left, true);\n elemTop += groupHeaderEle.getClientRects()[0].height;\n }\n if (toolbarEle) {\n this.setSticky(toolbarEle, elemTop, contentRect.width, left, true);\n elemTop += toolbarEle.getClientRects()[0].height;\n }\n this.setSticky(headerEle, elemTop, contentRect.width, left, true);\n if (!isNullOrUndefined(colMenuEle)) {\n colMenuEle.style.position = 'fixed';\n colMenuEle.style.top = height + 'px';\n }\n }\n else {\n if (headerEle.classList.contains('e-sticky')) {\n this.setSticky(headerEle, null, null, null, false);\n if (toolbarEle) {\n this.setSticky(toolbarEle, null, null, null, false);\n }\n if (groupHeaderEle) {\n this.setSticky(groupHeaderEle, null, null, null, false);\n }\n var ccDlg = this.parent.element.querySelector('.e-ccdlg');\n if (ccDlg) {\n ccDlg.classList.remove('e-sticky');\n }\n if (!isNullOrUndefined(colMenuEle)) {\n colMenuEle.style.position = 'absolute';\n var topStyle = contentRect.top - parentTop;\n colMenuEle.style.top = topStyle + 'px';\n }\n }\n }\n this.parent.notify(events.stickyScrollComplete, {});\n }\n }\n };\n Scroll.prototype.setSticky = function (ele, top, width, left, isAdd) {\n if (isAdd) {\n ele.style.width = width + 'px';\n ele.classList.add('e-sticky');\n }\n else {\n ele.classList.remove('e-sticky');\n }\n ele.style.top = top != null ? top + 'px' : '';\n ele.style.left = left !== null ? parseInt(ele.style.left, 10) !== left ? left + 'px' : ele.style.left : '';\n };\n /**\n * @returns {void}\n * @hidden\n */\n Scroll.prototype.destroy = function () {\n var gridElement = this.parent.element;\n if (!gridElement || (!gridElement.querySelector('.' + literals.gridHeader) && !gridElement.querySelector('.' + literals.gridContent))) {\n return;\n }\n this.removeEventListener();\n //Remove Dom event\n var cont = this.parent.getContent().querySelector('.' + literals.content);\n EventHandler.remove(cont, 'scroll', this.onContentScroll);\n if (this.parent.enableStickyHeader) {\n this.addStickyListener(false);\n }\n //Remove padding\n this.removePadding();\n removeClass([this.parent.getHeaderContent().querySelector('.' + literals.headerContent)], literals.headerContent);\n removeClass([cont], literals.content);\n //Remove height\n cont.style.height = '';\n //Remove width\n this.parent.element.style.width = '';\n };\n /**\n * Function to get the scrollbar width of the browser.\n *\n * @returns {number} return the width\n * @hidden\n */\n Scroll.getScrollBarWidth = function () {\n return getScrollBarWidth();\n };\n return Scroll;\n}());\nexport { Scroll };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { compile } from '@syncfusion/ej2-base';\nimport { getEnumValue } from '@syncfusion/ej2-base';\nimport { CellType } from '../base/enum';\nimport { Property, Collection, ChildProperty } from '@syncfusion/ej2-base';\n/**\n * Configures the Grid's aggregate column.\n */\nvar AggregateColumn = /** @class */ (function (_super) {\n __extends(AggregateColumn, _super);\n function AggregateColumn() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.templateFn = {};\n return _this;\n }\n /**\n * @param {Function} value - specifies the value\n * @returns {void}\n * @hidden\n */\n AggregateColumn.prototype.setFormatter = function (value) {\n this.formatFn = value;\n };\n /**\n * @returns {Function} returns the Function\n * @hidden\n */\n AggregateColumn.prototype.getFormatter = function () {\n return this.formatFn;\n };\n /**\n * @param {Object} helper - specifies the helper\n * @returns {void}\n * @hidden\n */\n AggregateColumn.prototype.setTemplate = function (helper) {\n if (helper === void 0) { helper = {}; }\n if (this.footerTemplate !== undefined) {\n this.templateFn[getEnumValue(CellType, CellType.Summary)] = { fn: compile(this.footerTemplate, helper),\n property: 'footerTemplate' };\n }\n if (this.groupFooterTemplate !== undefined) {\n this.templateFn[getEnumValue(CellType, CellType.GroupSummary)] = { fn: compile(this.groupFooterTemplate, helper),\n property: 'groupFooterTemplate' };\n }\n if (this.groupCaptionTemplate !== undefined) {\n this.templateFn[getEnumValue(CellType, CellType.CaptionSummary)] = { fn: compile(this.groupCaptionTemplate, helper),\n property: 'groupCaptionTemplate' };\n }\n };\n /**\n * @param {CellType} type - specifies the cell type\n * @returns {Object} returns the object\n * @hidden\n */\n AggregateColumn.prototype.getTemplate = function (type) {\n return this.templateFn[getEnumValue(CellType, type)];\n };\n /**\n * @param {Object} prop - returns the Object\n * @returns {void}\n * @hidden\n */\n AggregateColumn.prototype.setPropertiesSilent = function (prop) {\n this.setProperties(prop, true);\n };\n __decorate([\n Property()\n ], AggregateColumn.prototype, \"type\", void 0);\n __decorate([\n Property()\n ], AggregateColumn.prototype, \"field\", void 0);\n __decorate([\n Property()\n ], AggregateColumn.prototype, \"columnName\", void 0);\n __decorate([\n Property()\n ], AggregateColumn.prototype, \"format\", void 0);\n __decorate([\n Property()\n ], AggregateColumn.prototype, \"footerTemplate\", void 0);\n __decorate([\n Property()\n ], AggregateColumn.prototype, \"groupFooterTemplate\", void 0);\n __decorate([\n Property()\n ], AggregateColumn.prototype, \"groupCaptionTemplate\", void 0);\n __decorate([\n Property()\n ], AggregateColumn.prototype, \"customAggregate\", void 0);\n return AggregateColumn;\n}(ChildProperty));\nexport { AggregateColumn };\n/**\n * Configures the aggregate rows.\n */\nvar AggregateRow = /** @class */ (function (_super) {\n __extends(AggregateRow, _super);\n function AggregateRow() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Collection([], AggregateColumn)\n ], AggregateRow.prototype, \"columns\", void 0);\n return AggregateRow;\n}(ChildProperty));\nexport { AggregateRow };\n","import { Browser, remove, EventHandler, isUndefined, closest, classList } from '@syncfusion/ej2-base';\nimport { parentsUntil } from '../base/util';\nimport * as events from '../base/constant';\nimport * as literals from '../base/string-literals';\n/**\n * The `Clipboard` module is used to handle clipboard copy action.\n */\nvar Clipboard = /** @class */ (function () {\n /**\n * Constructor for the Grid clipboard module\n *\n * @param {IGrid} parent - specifies the IGrid\n * @param {ServiceLocator} serviceLocator - specifies the serviceLocator\n * @hidden\n */\n function Clipboard(parent, serviceLocator) {\n this.copyContent = '';\n this.isSelect = false;\n this.parent = parent;\n this.serviceLocator = serviceLocator;\n this.addEventListener();\n }\n /**\n * @returns {void}\n * @hidden\n */\n Clipboard.prototype.addEventListener = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n this.parent.on(events.contentReady, this.initialEnd, this);\n this.parent.on(events.keyPressed, this.keyDownHandler, this);\n this.parent.on(events.click, this.clickHandler, this);\n this.parent.on(events.onEmpty, this.initialEnd, this);\n EventHandler.add(this.parent.element, 'keydown', this.pasteHandler, this);\n };\n /**\n * @returns {void}\n * @hidden\n */\n Clipboard.prototype.removeEventListener = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n this.parent.off(events.keyPressed, this.keyDownHandler);\n this.parent.off(events.contentReady, this.initialEnd);\n this.parent.off(events.click, this.clickHandler);\n this.parent.off(events.onEmpty, this.initialEnd);\n EventHandler.remove(this.parent.element, 'keydown', this.pasteHandler);\n };\n Clipboard.prototype.clickHandler = function (e) {\n var target = e.target;\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n target = parentsUntil(target, 'e-rowcell');\n };\n Clipboard.prototype.pasteHandler = function (e) {\n var _this = this;\n var grid = this.parent;\n var isMacLike = /(Mac)/i.test(navigator.platform);\n if (e.keyCode === 67 && isMacLike && e.metaKey && !grid.isEdit) {\n this.copy();\n }\n if (e.keyCode === 86 && (e.ctrlKey || (isMacLike && e.metaKey)) && !grid.isEdit) {\n var target = closest(document.activeElement, '.' + literals.rowCell);\n if (!target || !grid.editSettings.allowEditing || grid.editSettings.mode !== 'Batch' ||\n grid.selectionSettings.mode !== 'Cell' || grid.selectionSettings.cellSelectionMode === 'Flow' || !this.clipBoardTextArea) {\n return;\n }\n this.activeElement = document.activeElement;\n this.clipBoardTextArea.value = '';\n var x_1 = window.scrollX;\n var y_1 = window.scrollY;\n this.clipBoardTextArea.focus();\n setTimeout(function () {\n _this.activeElement.focus();\n window.scrollTo(x_1, y_1);\n _this.paste(_this.clipBoardTextArea.value, _this.parent.getSelectedRowCellIndexes()[0].rowIndex, _this.parent.getSelectedRowCellIndexes()[0].cellIndexes[0]);\n }, 10);\n }\n };\n /**\n * Paste data from clipboard to selected cells.\n *\n * @param {boolean} data - Specifies the date for paste.\n * @param {boolean} rowIndex - Specifies the row index.\n * @param {boolean} colIndex - Specifies the column index.\n * @returns {void}\n */\n Clipboard.prototype.paste = function (data, rowIndex, colIndex) {\n var grid = this.parent;\n var cIdx = colIndex;\n var rIdx = rowIndex;\n var col;\n var value;\n var isAvail;\n if (!grid.editSettings.allowEditing || grid.editSettings.mode !== 'Batch' ||\n grid.selectionSettings.mode !== 'Cell' || grid.selectionSettings.cellSelectionMode === 'Flow') {\n return;\n }\n var rows = data.split('\\n');\n var cols;\n var dataRows = grid.getDataRows();\n var mRows;\n var frRows;\n var isFrozen = this.parent.isFrozenGrid();\n if (isFrozen) {\n mRows = grid.getMovableDataRows();\n if (grid.getFrozenRightColumnsCount()) {\n frRows = grid.getFrozenRightDataRows();\n }\n }\n for (var r = 0; r < rows.length; r++) {\n cols = rows[parseInt(r.toString(), 10)].split('\\t');\n cIdx = colIndex;\n if ((r === rows.length - 1 && rows[parseInt(r.toString(), 10)] === '') || isUndefined(grid.getRowByIndex(rIdx))) {\n cIdx++;\n break;\n }\n for (var c = 0; c < cols.length; c++) {\n isAvail = grid.getCellFromIndex(rIdx, cIdx);\n if (isFrozen) {\n var fTr = dataRows[parseInt(rIdx.toString(), 10)];\n var mTr = mRows[parseInt(rIdx.toString(), 10)];\n isAvail = !fTr.querySelector('[data-colindex=\"' + cIdx + '\"]') ?\n mTr.querySelector('[data-colindex=\"' + cIdx + '\"]') : true;\n if (frRows && !isAvail) {\n var frTr = frRows[parseInt(rIdx.toString(), 10)];\n isAvail = frTr.querySelector('[data-colindex=\"' + cIdx + '\"]');\n }\n }\n if (!isAvail) {\n cIdx++;\n break;\n }\n col = grid.getColumnByIndex(cIdx);\n value = col.getParser() ? col.getParser()(cols[parseInt(c.toString(), 10)]) : cols[parseInt(c.toString(), 10)];\n if (col.allowEditing && !col.isPrimaryKey && !col.template) {\n var args = {\n column: col,\n data: value,\n rowIndex: rIdx\n };\n this.parent.trigger(events.beforePaste, args);\n rIdx = args.rowIndex;\n if (!args.cancel) {\n if (grid.editModule) {\n if (col.type === 'number') {\n this.parent.editModule.updateCell(rIdx, col.field, parseFloat(args.data));\n }\n else {\n grid.editModule.updateCell(rIdx, col.field, args.data);\n }\n }\n }\n }\n cIdx++;\n }\n rIdx++;\n }\n grid.selectionModule.selectCellsByRange({ rowIndex: rowIndex, cellIndex: colIndex }, { rowIndex: rIdx - 1, cellIndex: cIdx - 1 });\n var cell = this.parent.getCellFromIndex(rIdx - 1, cIdx - 1);\n if (cell) {\n classList(cell, ['e-focus', 'e-focused'], []);\n }\n };\n Clipboard.prototype.initialEnd = function () {\n this.l10n = this.serviceLocator.getService('localization');\n this.parent.off(events.contentReady, this.initialEnd);\n this.clipBoardTextArea = this.parent.createElement('textarea', {\n className: 'e-clipboard',\n styles: 'opacity: 0',\n attrs: { tabindex: '-1', 'aria-label': this.l10n.getConstant('ClipBoard') }\n });\n this.parent.element.appendChild(this.clipBoardTextArea);\n };\n Clipboard.prototype.keyDownHandler = function (e) {\n if (e.action === 'ctrlPlusC') {\n this.copy();\n }\n else if (e.action === 'ctrlShiftPlusH') {\n this.copy(true);\n }\n };\n Clipboard.prototype.setCopyData = function (withHeader) {\n if (window.getSelection().toString() === '') {\n var isFrozen = this.parent.isFrozenGrid();\n this.clipBoardTextArea.value = this.copyContent = '';\n var mRows = void 0;\n var frRows = void 0;\n var rows = this.parent.getDataRows();\n if (isFrozen) {\n mRows = this.parent.getMovableDataRows();\n if (this.parent.getFrozenMode() === literals.leftRight || this.parent.getFrozenMode() === 'Right') {\n frRows = this.parent.getFrozenRightRows();\n }\n }\n if (this.parent.selectionSettings.mode !== 'Cell') {\n var selectedIndexes = this.parent.getSelectedRowIndexes().sort(function (a, b) { return a - b; });\n if (withHeader) {\n var headerTextArray = [];\n for (var i = 0; i < this.parent.getVisibleColumns().length; i++) {\n headerTextArray[parseInt(i.toString(), 10)] = this.parent\n .getVisibleColumns()[parseInt(i.toString(), 10)].headerText;\n }\n this.getCopyData(headerTextArray, false, '\\t', withHeader);\n this.copyContent += '\\n';\n }\n for (var i = 0; i < selectedIndexes.length; i++) {\n if (i > 0) {\n this.copyContent += '\\n';\n }\n var leftCols = [];\n var rightCols = [];\n var movableCols = [];\n if (isFrozen) {\n movableCols.push.apply(movableCols, [].slice.call(mRows[selectedIndexes[parseInt(i.toString(), 10)]].\n querySelectorAll('.e-rowcell:not(.e-hide)')));\n if (this.parent.getFrozenMode() === 'Right' || this.parent.getFrozenMode() === literals.leftRight) {\n rightCols.push.apply(rightCols, [].slice.call(frRows[selectedIndexes[parseInt(i.toString(), 10)]].\n querySelectorAll('.e-rowcell:not(.e-hide)')));\n }\n if (this.parent.getFrozenMode() === 'Left' || this.parent.getFrozenMode() === literals.leftRight ||\n (this.parent.isFrozenGrid() && !this.parent.getFrozenMode())) {\n leftCols.push.apply(leftCols, [].slice.call(rows[selectedIndexes[parseInt(i.toString(), 10)]].\n querySelectorAll('.e-rowcell:not(.e-hide)')));\n }\n }\n else {\n leftCols.push.apply(leftCols, [].slice.call(rows[selectedIndexes[parseInt(i.toString(), 10)]].\n querySelectorAll('.e-rowcell:not(.e-hide)')));\n }\n var cells = leftCols.concat(movableCols).concat(rightCols);\n this.getCopyData(cells, false, '\\t', withHeader);\n }\n }\n else {\n var obj = this.checkBoxSelection();\n if (obj.status) {\n if (withHeader) {\n var headers = [];\n for (var i = 0; i < obj.colIndexes.length; i++) {\n headers.push(this.parent.getColumnHeaderByIndex(obj.colIndexes[parseInt(i.toString(), 10)]));\n }\n this.getCopyData(headers, false, '\\t', withHeader);\n this.copyContent += '\\n';\n }\n for (var i = 0; i < obj.rowIndexes.length; i++) {\n if (i > 0) {\n this.copyContent += '\\n';\n }\n var cells = [].slice.call(rows[obj.rowIndexes[parseInt(i.toString(), 10)]].\n getElementsByClassName('e-cellselectionbackground'));\n if (isFrozen) {\n cells.push.apply(cells, [].slice.call(mRows[obj.rowIndexes[parseInt(i.toString(), 10)]]\n .getElementsByClassName('e-cellselectionbackground')));\n if (frRows) {\n cells.push.apply(cells, [].slice.call(frRows[obj.rowIndexes[parseInt(i.toString(), 10)]]\n .getElementsByClassName('e-cellselectionbackground')));\n }\n }\n this.getCopyData(cells, false, '\\t', withHeader);\n }\n }\n else {\n this.getCopyData([].slice.call(this.parent.element.getElementsByClassName('e-cellselectionbackground')), true, '\\n', withHeader);\n }\n }\n var args = {\n data: this.copyContent,\n cancel: false\n };\n this.parent.trigger(events.beforeCopy, args);\n if (args.cancel) {\n return;\n }\n this.clipBoardTextArea.value = this.copyContent = args.data;\n if (!Browser.userAgent.match(/ipad|ipod|iphone/i)) {\n this.clipBoardTextArea.select();\n }\n else {\n this.clipBoardTextArea.setSelectionRange(0, this.clipBoardTextArea.value.length);\n }\n this.isSelect = true;\n }\n };\n Clipboard.prototype.getCopyData = function (cells, isCell, splitKey, withHeader) {\n var isElement = typeof cells[0] !== 'string';\n for (var j = 0; j < cells.length; j++) {\n if (withHeader && isCell) {\n var colIdx = parseInt(cells[parseInt(j.toString(), 10)].getAttribute(literals.dataColIndex), 10);\n this.copyContent += this.parent.getColumns()[parseInt(colIdx.toString(), 10)].headerText + '\\n';\n }\n if (isElement) {\n if (!cells[parseInt(j.toString(), 10)].classList.contains('e-hide')) {\n this.copyContent += cells[parseInt(j.toString(), 10)].innerText;\n }\n }\n else {\n this.copyContent += cells[parseInt(j.toString(), 10)];\n }\n if (j < cells.length - 1) {\n this.copyContent += splitKey;\n }\n }\n };\n /**\n * Copy selected rows or cells data into clipboard.\n *\n * @returns {void}\n * @param {boolean} withHeader - Specifies whether the column header data need to be copied or not.\n */\n Clipboard.prototype.copy = function (withHeader) {\n if (document.queryCommandSupported('copy') && this.clipBoardTextArea) {\n this.setCopyData(withHeader);\n document.execCommand('copy');\n this.clipBoardTextArea.blur();\n }\n if (this.isSelect) {\n window.getSelection().removeAllRanges();\n this.isSelect = false;\n }\n };\n /**\n * For internal use only - Get the module name.\n *\n * @returns {string} returns the module name\n * @private\n */\n Clipboard.prototype.getModuleName = function () {\n return 'clipboard';\n };\n /**\n * To destroy the clipboard\n *\n * @returns {void}\n * @hidden\n */\n Clipboard.prototype.destroy = function () {\n this.removeEventListener();\n if (this.clipBoardTextArea) {\n remove(this.clipBoardTextArea);\n }\n };\n Clipboard.prototype.checkBoxSelection = function () {\n var gridObj = this.parent;\n var obj = { status: false };\n if (gridObj.selectionSettings.mode === 'Cell') {\n var rowCellIndxes = gridObj.getSelectedRowCellIndexes();\n var str = void 0;\n var rowIndexes = [];\n var i = void 0;\n for (i = 0; i < rowCellIndxes.length; i++) {\n if (rowCellIndxes[parseInt(i.toString(), 10)].cellIndexes.length) {\n rowIndexes.push(rowCellIndxes[parseInt(i.toString(), 10)].rowIndex);\n }\n if (rowCellIndxes[parseInt(i.toString(), 10)].cellIndexes.length) {\n if (!str) {\n str = JSON.stringify(rowCellIndxes[parseInt(i.toString(), 10)].cellIndexes.sort());\n }\n if (str !== JSON.stringify(rowCellIndxes[parseInt(i.toString(), 10)].cellIndexes.sort())) {\n break;\n }\n }\n }\n rowIndexes.sort(function (a, b) { return a - b; });\n if (i === rowCellIndxes.length) {\n obj = { status: true, rowIndexes: rowIndexes, colIndexes: rowCellIndxes[0].cellIndexes };\n }\n }\n return obj;\n };\n return Clipboard;\n}());\nexport { Clipboard };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { isNullOrUndefined, setValue, getValue } from '@syncfusion/ej2-base';\nimport { Component, ChildProperty, Browser, closest, extend } from '@syncfusion/ej2-base';\nimport { addClass, removeClass, append, remove, classList, setStyleAttribute } from '@syncfusion/ej2-base';\nimport { Property, Collection, Complex, Event, NotifyPropertyChanges, L10n } from '@syncfusion/ej2-base';\nimport { EventHandler, KeyboardEvents } from '@syncfusion/ej2-base';\nimport { DataManager, DataUtil, UrlAdaptor } from '@syncfusion/ej2-data';\nimport { createSpinner, hideSpinner, showSpinner, Tooltip } from '@syncfusion/ej2-popups';\nimport { iterateArrayOrObject, prepareColumns, parentsUntil, wrap, templateCompiler, isGroupAdaptive, refreshForeignData } from './util';\nimport { getRowHeight, setColumnIndex, Global, ispercentageWidth, renderMovable, getNumberFormat, getTransformValues } from './util';\nimport { setRowElements, resetRowIndex, compareChanges, getCellByColAndRowIndex, performComplexDataOperation } from './util';\nimport * as events from '../base/constant';\nimport { Render } from '../renderer/render';\nimport { RenderType } from './enum';\nimport { RowRenderer } from '../renderer/row-renderer';\nimport { CellRenderer } from '../renderer/cell-renderer';\nimport { CellRendererFactory } from '../services/cell-render-factory';\nimport { ServiceLocator } from '../services/service-locator';\nimport { ValueFormatter } from '../services/value-formatter';\nimport { RendererFactory } from '../services/renderer-factory';\nimport { ColumnWidthService } from '../services/width-controller';\nimport { AriaService } from '../services/aria-service';\nimport { FocusStrategy } from '../services/focus-strategy';\nimport { PageSettings } from '../models/page-settings';\nimport { ColumnChooserSettings } from '../models/column-chooser-settings';\nimport { Selection } from '../actions/selection';\nimport { Search } from '../actions/search';\nimport { ShowHide } from '../actions/show-hide';\nimport { Scroll } from '../actions/scroll';\nimport { Print } from '../actions/print';\nimport { AggregateRow } from '../models/aggregate';\nimport { Clipboard } from '../actions/clipboard';\nimport { RowModelGenerator } from '../services/row-model-generator';\nimport { SanitizeHtmlHelper } from '@syncfusion/ej2-base';\nimport * as literals from '../base/string-literals';\nimport { HeaderCellRenderer } from '../renderer/header-cell-renderer';\n/**\n * Represents the field name and direction of sort column.\n */\nvar SortDescriptor = /** @class */ (function (_super) {\n __extends(SortDescriptor, _super);\n function SortDescriptor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property()\n ], SortDescriptor.prototype, \"field\", void 0);\n __decorate([\n Property()\n ], SortDescriptor.prototype, \"direction\", void 0);\n __decorate([\n Property(false)\n ], SortDescriptor.prototype, \"isFromGroup\", void 0);\n return SortDescriptor;\n}(ChildProperty));\nexport { SortDescriptor };\n/**\n * Configures the sorting behavior of Grid.\n */\nvar SortSettings = /** @class */ (function (_super) {\n __extends(SortSettings, _super);\n function SortSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Collection([], SortDescriptor)\n ], SortSettings.prototype, \"columns\", void 0);\n __decorate([\n Property(true)\n ], SortSettings.prototype, \"allowUnsort\", void 0);\n return SortSettings;\n}(ChildProperty));\nexport { SortSettings };\n/**\n * Represents the predicate for the filter column.\n */\nvar Predicate = /** @class */ (function (_super) {\n __extends(Predicate, _super);\n function Predicate() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property()\n ], Predicate.prototype, \"field\", void 0);\n __decorate([\n Property()\n ], Predicate.prototype, \"operator\", void 0);\n __decorate([\n Property()\n ], Predicate.prototype, \"value\", void 0);\n __decorate([\n Property()\n ], Predicate.prototype, \"matchCase\", void 0);\n __decorate([\n Property(false)\n ], Predicate.prototype, \"ignoreAccent\", void 0);\n __decorate([\n Property()\n ], Predicate.prototype, \"predicate\", void 0);\n __decorate([\n Property({})\n ], Predicate.prototype, \"actualFilterValue\", void 0);\n __decorate([\n Property({})\n ], Predicate.prototype, \"actualOperator\", void 0);\n __decorate([\n Property()\n ], Predicate.prototype, \"type\", void 0);\n __decorate([\n Property()\n ], Predicate.prototype, \"ejpredicate\", void 0);\n __decorate([\n Property()\n ], Predicate.prototype, \"uid\", void 0);\n __decorate([\n Property()\n ], Predicate.prototype, \"isForeignKey\", void 0);\n __decorate([\n Property()\n ], Predicate.prototype, \"condition\", void 0);\n return Predicate;\n}(ChildProperty));\nexport { Predicate };\n/**\n * Configures the infinite scroll behavior of Grid.\n */\nvar InfiniteScrollSettings = /** @class */ (function (_super) {\n __extends(InfiniteScrollSettings, _super);\n function InfiniteScrollSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(false)\n ], InfiniteScrollSettings.prototype, \"enableCache\", void 0);\n __decorate([\n Property(3)\n ], InfiniteScrollSettings.prototype, \"maxBlocks\", void 0);\n __decorate([\n Property(3)\n ], InfiniteScrollSettings.prototype, \"initialBlocks\", void 0);\n return InfiniteScrollSettings;\n}(ChildProperty));\nexport { InfiniteScrollSettings };\n/**\n * Configures the filtering behavior of the Grid.\n */\nvar FilterSettings = /** @class */ (function (_super) {\n __extends(FilterSettings, _super);\n function FilterSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Collection([], Predicate)\n ], FilterSettings.prototype, \"columns\", void 0);\n __decorate([\n Property('FilterBar')\n ], FilterSettings.prototype, \"type\", void 0);\n __decorate([\n Property('OnEnter')\n ], FilterSettings.prototype, \"mode\", void 0);\n __decorate([\n Property(true)\n ], FilterSettings.prototype, \"showFilterBarStatus\", void 0);\n __decorate([\n Property(1500)\n ], FilterSettings.prototype, \"immediateModeDelay\", void 0);\n __decorate([\n Property()\n ], FilterSettings.prototype, \"operators\", void 0);\n __decorate([\n Property(false)\n ], FilterSettings.prototype, \"ignoreAccent\", void 0);\n __decorate([\n Property(false)\n ], FilterSettings.prototype, \"enableCaseSensitivity\", void 0);\n __decorate([\n Property(false)\n ], FilterSettings.prototype, \"showFilterBarOperator\", void 0);\n return FilterSettings;\n}(ChildProperty));\nexport { FilterSettings };\n/**\n * Configures the selection behavior of the Grid.\n */\nvar SelectionSettings = /** @class */ (function (_super) {\n __extends(SelectionSettings, _super);\n function SelectionSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('Row')\n ], SelectionSettings.prototype, \"mode\", void 0);\n __decorate([\n Property('Flow')\n ], SelectionSettings.prototype, \"cellSelectionMode\", void 0);\n __decorate([\n Property('Single')\n ], SelectionSettings.prototype, \"type\", void 0);\n __decorate([\n Property(false)\n ], SelectionSettings.prototype, \"checkboxOnly\", void 0);\n __decorate([\n Property(false)\n ], SelectionSettings.prototype, \"persistSelection\", void 0);\n __decorate([\n Property('Default')\n ], SelectionSettings.prototype, \"checkboxMode\", void 0);\n __decorate([\n Property(false)\n ], SelectionSettings.prototype, \"enableSimpleMultiRowSelection\", void 0);\n __decorate([\n Property(true)\n ], SelectionSettings.prototype, \"enableToggle\", void 0);\n __decorate([\n Property(false)\n ], SelectionSettings.prototype, \"allowColumnSelection\", void 0);\n return SelectionSettings;\n}(ChildProperty));\nexport { SelectionSettings };\n/**\n * Configures the search behavior of the Grid.\n */\nvar SearchSettings = /** @class */ (function (_super) {\n __extends(SearchSettings, _super);\n function SearchSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property([])\n ], SearchSettings.prototype, \"fields\", void 0);\n __decorate([\n Property('')\n ], SearchSettings.prototype, \"key\", void 0);\n __decorate([\n Property('wildcard')\n ], SearchSettings.prototype, \"operator\", void 0);\n __decorate([\n Property(true)\n ], SearchSettings.prototype, \"ignoreCase\", void 0);\n __decorate([\n Property(false)\n ], SearchSettings.prototype, \"ignoreAccent\", void 0);\n return SearchSettings;\n}(ChildProperty));\nexport { SearchSettings };\n/**\n * Configures the row drop settings of the Grid.\n */\nvar RowDropSettings = /** @class */ (function (_super) {\n __extends(RowDropSettings, _super);\n function RowDropSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property()\n ], RowDropSettings.prototype, \"targetID\", void 0);\n return RowDropSettings;\n}(ChildProperty));\nexport { RowDropSettings };\n/**\n * Configures the text wrap settings of the Grid.\n */\nvar TextWrapSettings = /** @class */ (function (_super) {\n __extends(TextWrapSettings, _super);\n function TextWrapSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('Both')\n ], TextWrapSettings.prototype, \"wrapMode\", void 0);\n return TextWrapSettings;\n}(ChildProperty));\nexport { TextWrapSettings };\n/**\n * Configures the resize behavior of the Grid.\n */\nvar ResizeSettings = /** @class */ (function (_super) {\n __extends(ResizeSettings, _super);\n function ResizeSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('Normal')\n ], ResizeSettings.prototype, \"mode\", void 0);\n return ResizeSettings;\n}(ChildProperty));\nexport { ResizeSettings };\n/**\n * Configures the group behavior of the Grid.\n */\nvar GroupSettings = /** @class */ (function (_super) {\n __extends(GroupSettings, _super);\n function GroupSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(true)\n ], GroupSettings.prototype, \"showDropArea\", void 0);\n __decorate([\n Property(false)\n ], GroupSettings.prototype, \"allowReordering\", void 0);\n __decorate([\n Property(false)\n ], GroupSettings.prototype, \"showToggleButton\", void 0);\n __decorate([\n Property(false)\n ], GroupSettings.prototype, \"showGroupedColumn\", void 0);\n __decorate([\n Property(true)\n ], GroupSettings.prototype, \"showUngroupButton\", void 0);\n __decorate([\n Property(false)\n ], GroupSettings.prototype, \"disablePageWiseAggregates\", void 0);\n __decorate([\n Property([])\n ], GroupSettings.prototype, \"columns\", void 0);\n __decorate([\n Property()\n ], GroupSettings.prototype, \"captionTemplate\", void 0);\n __decorate([\n Property(false)\n ], GroupSettings.prototype, \"enableLazyLoading\", void 0);\n return GroupSettings;\n}(ChildProperty));\nexport { GroupSettings };\n/**\n * Configures the edit behavior of the Grid.\n */\nvar EditSettings = /** @class */ (function (_super) {\n __extends(EditSettings, _super);\n function EditSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(false)\n ], EditSettings.prototype, \"allowAdding\", void 0);\n __decorate([\n Property(false)\n ], EditSettings.prototype, \"allowEditing\", void 0);\n __decorate([\n Property(false)\n ], EditSettings.prototype, \"allowDeleting\", void 0);\n __decorate([\n Property('Normal')\n ], EditSettings.prototype, \"mode\", void 0);\n __decorate([\n Property(true)\n ], EditSettings.prototype, \"allowEditOnDblClick\", void 0);\n __decorate([\n Property(true)\n ], EditSettings.prototype, \"showConfirmDialog\", void 0);\n __decorate([\n Property(false)\n ], EditSettings.prototype, \"showDeleteConfirmDialog\", void 0);\n __decorate([\n Property('')\n ], EditSettings.prototype, \"template\", void 0);\n __decorate([\n Property('')\n ], EditSettings.prototype, \"headerTemplate\", void 0);\n __decorate([\n Property('')\n ], EditSettings.prototype, \"footerTemplate\", void 0);\n __decorate([\n Property('Top')\n ], EditSettings.prototype, \"newRowPosition\", void 0);\n __decorate([\n Property({})\n ], EditSettings.prototype, \"dialog\", void 0);\n __decorate([\n Property(false)\n ], EditSettings.prototype, \"allowNextRowEdit\", void 0);\n return EditSettings;\n}(ChildProperty));\nexport { EditSettings };\n/**\n * Configures the Loading Indicator of the Grid.\n */\nvar LoadingIndicator = /** @class */ (function (_super) {\n __extends(LoadingIndicator, _super);\n function LoadingIndicator() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('Spinner')\n ], LoadingIndicator.prototype, \"indicatorType\", void 0);\n return LoadingIndicator;\n}(ChildProperty));\nexport { LoadingIndicator };\n/**\n * Represents the Grid component.\n * ```html\n *
    \n * \n * ```\n */\nvar Grid = /** @class */ (function (_super) {\n __extends(Grid, _super);\n /**\n * Constructor for creating the component\n *\n * @param {GridModel} options - specifies the options\n * @param {string | HTMLElement} element - specifies the element\n * @hidden\n */\n function Grid(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.isPreventScrollEvent = false;\n _this.inViewIndexes = [];\n _this.keyA = false;\n _this.frozenRightCount = 0;\n _this.frozenLeftCount = 0;\n _this.tablesCount = 1;\n _this.movableCount = 0;\n _this.visibleFrozenLeft = 0;\n _this.visibleFrozenRight = 0;\n _this.visibleMovable = 0;\n _this.frozenLeftColumns = [];\n _this.frozenRightColumns = [];\n _this.movableColumns = [];\n _this.media = {};\n _this.isFreezeRefresh = false;\n /** @hidden */\n _this.tableIndex = 0;\n _this.componentRefresh = Component.prototype.refresh;\n /** @hidden */\n _this.isVirtualAdaptive = false;\n /** @hidden */\n /**\n * * If `requireTemplateRef` is set to false in the load event, then the template element can't be accessed in grid queryCellInfo, and rowDataBound events.\n * * By default, React's grid queryCellInfo and rowDataBound events allow access to the template element.\n * * Avoid accessing the template elements in the grid queryCellInfo and rowDataBound events to improve rendering performance by setting this value as false.\n *\n * @default true\n */\n _this.requireTemplateRef = true;\n /** @hidden */\n _this.vRows = [];\n /** @hidden */\n _this.vcRows = [];\n /** @hidden */\n _this.vGroupOffsets = {};\n /** @hidden */\n _this.rowUid = 0;\n /** @hidden */\n _this.isManualRefresh = false;\n /** @hidden */\n _this.isAutoFitColumns = false;\n /** @hidden */\n _this.enableDeepCompare = false;\n /** @hidden */\n _this.totalDataRecordsCount = 0;\n /** @hidden */\n _this.disableSelectedRecords = [];\n /** @hidden */\n _this.partialSelectedRecords = [];\n /** @hidden */\n _this.islazyloadRequest = false;\n /** @hidden */\n _this.lockcolPositionCount = 0;\n /** @hidden */\n _this.prevPageMoving = false;\n /** @hidden */\n _this.pageTemplateChange = false;\n /** @hidden */\n _this.isAutoGen = false;\n _this.mediaBindInstance = {};\n /** @hidden */\n _this.commandDelIndex = undefined;\n /** @hidden */\n _this.asyncTimeOut = 50;\n /** @hidden */\n _this.isExportGrid = false;\n // enable/disable logger for MVC & Core\n _this.enableLogger = true;\n _this.needsID = true;\n Grid_1.Inject(Selection);\n setValue('mergePersistData', _this.mergePersistGridData, _this);\n return _this;\n }\n Grid_1 = Grid;\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @returns {string} returns the persist data\n */\n Grid.prototype.getPersistData = function () {\n var keyEntity = ['pageSettings', 'sortSettings',\n 'filterSettings', 'groupSettings', 'columns', 'searchSettings', 'selectedRowIndex', 'scrollPosition'];\n var ignoreOnPersist = {\n pageSettings: ['template', 'pageSizes', 'enableQueryString', 'totalRecordsCount', 'pageCount'],\n filterSettings: ['type', 'mode', 'showFilterBarStatus', 'immediateModeDelay', 'ignoreAccent'],\n groupSettings: ['showDropArea', 'showToggleButton', 'showGroupedColumn', 'showUngroupButton',\n 'disablePageWiseAggregates', 'hideCaptionCount'],\n searchSettings: ['fields', 'operator', 'ignoreCase'],\n sortSettings: [], columns: [], selectedRowIndex: [], scrollPosition: []\n };\n for (var i = 0; i < keyEntity.length; i++) {\n var currentObject = this[keyEntity[parseInt(i.toString(), 10)]];\n for (var _i = 0, _a = ignoreOnPersist[keyEntity[parseInt(i.toString(), 10)]]; _i < _a.length; _i++) {\n var val = _a[_i];\n delete currentObject[\"\" + val];\n }\n }\n var temp = this.pageSettings.template;\n var settings = Object.assign({ template: undefined }, this.pageSettings);\n this.setProperties({ pageSettings: settings }, true);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isAngular) {\n delete this.groupSettings['properties']['captionTemplate'];\n }\n this.pageTemplateChange = !isNullOrUndefined(this.pagerTemplate);\n var persistData = this.addOnPersist(keyEntity);\n settings.template = temp;\n this.setProperties({ pageSettings: settings }, true);\n return persistData;\n };\n /**\n * To provide the array of modules needed for component rendering\n *\n * @returns {ModuleDeclaration[]} Returns the module Declaration\n * @hidden\n */\n Grid.prototype.requiredModules = function () {\n this.setFrozenCount();\n this.enableInfiniteAggrgate();\n var modules = [];\n if (this.isDestroyed) {\n return modules;\n }\n if (this.allowFiltering) {\n modules.push({\n member: 'filter',\n args: [this, this.filterSettings, this.serviceLocator]\n });\n }\n if (this.allowExcelExport) {\n modules.push({\n member: 'ExcelExport',\n args: [this, this.serviceLocator]\n });\n }\n if (this.allowPdfExport) {\n modules.push({\n member: 'PdfExport',\n args: [this]\n });\n }\n if (this.allowSorting) {\n modules.push({\n member: 'sort',\n args: [this, this.sortSettings, this.sortedColumns, this.serviceLocator]\n });\n }\n if (this.allowPaging) {\n modules.push({\n member: 'pager',\n args: [this, this.pageSettings]\n });\n }\n if (this.allowSelection) {\n modules.push({\n member: 'selection',\n args: [this, this.selectionSettings, this.serviceLocator]\n });\n }\n modules.push({\n member: 'resize',\n args: [this]\n });\n if (this.allowReordering) {\n modules.push({\n member: 'reorder',\n args: [this]\n });\n }\n if (this.allowRowDragAndDrop) {\n modules.push({\n member: 'rowDragAndDrop',\n args: [this]\n });\n }\n if (this.allowGrouping) {\n modules.push({\n member: 'group',\n args: [this, this.groupSettings, this.sortedColumns, this.serviceLocator]\n });\n }\n if (this.aggregates.length) {\n modules.push({ member: 'aggregate', args: [this, this.serviceLocator] });\n }\n if (this.isDetail()) {\n modules.push({\n member: 'detailRow',\n args: [this, this.serviceLocator]\n });\n }\n if (this.toolbar || this.toolbarTemplate) {\n modules.push({\n member: 'toolbar',\n args: [this, this.serviceLocator]\n });\n }\n if (this.enableVirtualization || this.enableColumnVirtualization) {\n modules.push({\n member: 'virtualscroll',\n args: [this, this.serviceLocator]\n });\n }\n if (this.getFrozenColumns() || this.frozenRows || this.frozenRightCount || this.frozenLeftCount) {\n modules.push({ member: 'freeze', args: [this, this.serviceLocator] });\n }\n if (this.isCommandColumn(this.columns)) {\n modules.push({\n member: 'commandColumn',\n args: [this, this.serviceLocator]\n });\n }\n if (this.editSettings.allowAdding || this.editSettings.allowDeleting || this.editSettings.allowEditing) {\n modules.push({\n member: 'edit',\n args: [this, this.serviceLocator]\n });\n }\n this.extendRequiredModules(modules);\n return modules;\n };\n Grid.prototype.extendRequiredModules = function (modules) {\n if (this.enableInfiniteScrolling) {\n modules.push({\n member: 'infiniteScroll',\n args: [this, this.serviceLocator]\n });\n }\n if (this.groupSettings.enableLazyLoading) {\n modules.push({\n member: 'lazyLoadGroup',\n args: [this, this.serviceLocator]\n });\n }\n if (this.contextMenuItems) {\n modules.push({\n member: 'contextMenu',\n args: [this, this.serviceLocator]\n });\n }\n if (this.showColumnMenu) {\n modules.push({\n member: 'columnMenu',\n args: [this, this.serviceLocator]\n });\n }\n if (this.showColumnChooser) {\n modules.push({\n member: 'columnChooser',\n args: [this, this.serviceLocator]\n });\n }\n if (this.isForeignKeyEnabled(this.columns)) {\n modules.push({ member: 'foreignKey', args: [this, this.serviceLocator] });\n }\n if (this.enableLogger) {\n modules.push({ member: 'logger', args: [this] });\n }\n };\n /**\n * For internal use only - Initialize the event handler;\n *\n * @returns {void}\n * @private\n */\n Grid.prototype.preRender = function () {\n this.serviceLocator = new ServiceLocator;\n this.initProperties();\n this.initializeServices();\n };\n Grid.prototype.initProperties = function () {\n this.isInitial = true;\n this.sortedColumns = [];\n this.inViewIndexes = [];\n this.mediaCol = [];\n this.isInitialLoad = false;\n this.allowServerDataBinding = false;\n this.ignoreCollectionWatch = true;\n this.mergeCells = {};\n this.isEdit = false;\n this.checkAllRows = 'None';\n this.isCheckBoxSelection = false;\n this.isPersistSelection = false;\n this.componentRefresh = Component.prototype.refresh;\n this.filterOperators = {\n contains: 'contains', endsWith: 'endswith', equal: 'equal', greaterThan: 'greaterthan', greaterThanOrEqual: 'greaterthanorequal',\n lessThan: 'lessthan', lessThanOrEqual: 'lessthanorequal', notEqual: 'notequal', startsWith: 'startswith', wildCard: 'wildcard',\n isNull: 'isnull', notNull: 'notnull', like: 'like'\n };\n this.defaultLocale = {\n EmptyRecord: 'No records to display',\n True: 'true',\n False: 'false',\n InvalidFilterMessage: 'Invalid Filter Data',\n GroupDropArea: 'Drag a column header here to group its column',\n UnGroup: 'Click here to ungroup',\n UnGroupButton: 'Click here to ungroup',\n GroupDisable: 'Grouping is disabled for this column',\n FilterbarTitle: '\\'s filter bar cell',\n EmptyDataSourceError: 'DataSource must not be empty at initial load since columns are generated from dataSource in AutoGenerate Column Grid',\n // Toolbar Items\n Add: 'Add',\n Edit: 'Edit',\n Cancel: 'Cancel',\n Update: 'Update',\n Delete: 'Delete',\n Print: 'Print',\n Pdfexport: 'PDF Export',\n Excelexport: 'Excel Export',\n Wordexport: 'Word Export',\n Csvexport: 'CSV Export',\n Search: 'Search',\n Columnchooser: 'Columns',\n Save: 'Save',\n Item: 'item',\n Items: 'items',\n EditOperationAlert: 'No records selected for edit operation',\n DeleteOperationAlert: 'No records selected for delete operation',\n SaveButton: 'Save',\n OKButton: 'OK',\n CancelButton: 'Cancel',\n EditFormTitle: 'Details of ',\n AddFormTitle: 'Add New Record',\n BatchSaveConfirm: 'Are you sure you want to save changes?',\n BatchSaveLostChanges: 'Unsaved changes will be lost. Are you sure you want to continue?',\n ConfirmDelete: 'Are you sure you want to Delete Record?',\n CancelEdit: 'Are you sure you want to Cancel the changes?',\n ChooseColumns: 'Choose Column',\n SearchColumns: 'search columns',\n Matchs: 'No matches found',\n FilterButton: 'Filter',\n ClearButton: 'Clear',\n StartsWith: 'Starts With',\n NotStartsWith: 'Does Not Start With',\n Like: 'Like',\n EndsWith: 'Ends With',\n NotEndsWith: 'Does Not End With',\n Contains: 'Contains',\n NotContains: 'Does Not Contain',\n IsNull: 'Null',\n NotNull: 'Not Null',\n IsEmpty: 'Empty',\n IsNotEmpty: 'Not Empty',\n Equal: 'Equal',\n NotEqual: 'Not Equal',\n LessThan: 'Less Than',\n LessThanOrEqual: 'Less Than Or Equal',\n GreaterThan: 'Greater Than',\n GreaterThanOrEqual: 'Greater Than Or Equal',\n ChooseDate: 'Choose a Date',\n EnterValue: 'Enter the value',\n Copy: 'Copy',\n Group: 'Group by this column',\n Ungroup: 'Ungroup by this column',\n GroupButton: 'Group button',\n UnGroupAria: 'ungroup button',\n GroupSeperator: 'Separator for the grouped columns',\n UnGroupIcon: 'ungroup the grouped column ',\n GroupedSortIcon: 'sort the grouped column ',\n GroupedDrag: 'Drag the grouped column',\n GroupCaption: ' is groupcaption cell',\n CheckBoxLabel: 'checkbox',\n autoFitAll: 'Autofit all columns',\n autoFit: 'Autofit this column',\n AutoFitAll: 'Autofit all columns',\n AutoFit: 'Autofit this column',\n Export: 'Export',\n FirstPage: 'First Page',\n LastPage: 'Last Page',\n PreviousPage: 'Previous Page',\n NextPage: 'Next Page',\n SortAscending: 'Sort Ascending',\n SortDescending: 'Sort Descending',\n EditRecord: 'Edit Record',\n DeleteRecord: 'Delete Record',\n FilterMenu: 'Filter',\n SelectAll: 'Select All',\n AddCurrentSelection: 'Add current selection to filter',\n Blanks: 'Blanks',\n FilterTrue: 'True',\n FilterFalse: 'False',\n NoResult: 'No matches found',\n ClearFilter: 'Clear Filter',\n Clear: 'Clear',\n NumberFilter: 'Number Filters',\n TextFilter: 'Text Filters',\n DateFilter: 'Date Filters',\n DateTimeFilter: 'DateTime Filters',\n MatchCase: 'Match Case',\n Between: 'Between',\n CustomFilter: 'Custom Filter',\n CustomFilterPlaceHolder: 'Enter the value',\n CustomFilterDatePlaceHolder: 'Choose a date',\n AND: 'AND',\n OR: 'OR',\n ShowRowsWhere: 'Show rows where:',\n FilterMenuDialogARIA: 'Filter menu dialog',\n ExcelFilterDialogARIA: 'Excel filter dialog',\n DialogEditARIA: 'Edit dialog',\n ColumnChooserDialogARIA: 'Column chooser',\n ColumnMenuDialogARIA: 'Column menu dialog',\n CustomFilterDialogARIA: 'Customer filter dialog',\n SortAtoZ: 'Sort A to Z',\n SortZtoA: 'Sort Z to A',\n SortByOldest: 'Sort by Oldest',\n SortByNewest: 'Sort by Newest',\n SortSmallestToLargest: 'Sort Smallest to Largest',\n SortLargestToSmallest: 'Sort Largest to Smallest',\n Sort: 'Sort',\n FilterDescription: 'Press Alt Down to open filter Menu',\n SortDescription: 'Press Enter to sort',\n ColumnMenuDescription: 'Press Alt Down to open Column Menu',\n GroupDescription: 'Press Ctrl space to group',\n ColumnHeader: ' column header ',\n TemplateCell: ' is template cell',\n CommandColumnAria: 'is Command column column header ',\n DialogEdit: 'Dialog edit',\n ClipBoard: 'clipboard',\n AscendingText: 'Ascending',\n DescendingText: 'Descending',\n NoneText: 'None',\n Expanded: 'Expanded',\n Collapsed: 'Collapsed'\n };\n this.keyConfigs = {\n downArrow: 'downarrow',\n upArrow: 'uparrow',\n rightArrow: 'rightarrow',\n leftArrow: 'leftarrow',\n shiftDown: 'shift+downarrow',\n shiftUp: 'shift+uparrow',\n shiftRight: 'shift+rightarrow',\n shiftLeft: 'shift+leftarrow',\n home: 'home',\n end: 'end',\n escape: 'escape',\n ctrlHome: 'ctrl+home',\n ctrlEnd: 'ctrl+end',\n pageUp: 'pageup',\n pageDown: 'pagedown',\n ctrlAltPageUp: 'ctrl+alt+pageup',\n ctrlAltPageDown: 'ctrl+alt+pagedown',\n altPageUp: 'alt+pageup',\n altPageDown: 'alt+pagedown',\n altDownArrow: 'alt+downarrow',\n altUpArrow: 'alt+uparrow',\n ctrlDownArrow: 'ctrl+downarrow',\n ctrlUpArrow: 'ctrl+uparrow',\n ctrlPlusA: 'ctrl+A',\n ctrlPlusP: 'ctrl+P',\n insert: 'insert',\n delete: 'delete',\n f2: 'f2',\n enter: 'enter',\n ctrlEnter: 'ctrl+enter',\n shiftEnter: 'shift+enter',\n tab: 'tab',\n shiftTab: 'shift+tab',\n space: 'space',\n ctrlPlusC: 'ctrl+C',\n ctrlShiftPlusH: 'ctrl+shift+H',\n ctrlSpace: 'ctrl+space',\n ctrlLeftArrow: 'ctrl+leftarrow',\n ctrlRightArrow: 'ctrl+rightarrow'\n };\n };\n /**\n * For internal use only - To Initialize the component rendering.\n *\n * @returns {void}\n * @private\n */\n Grid.prototype.render = function () {\n this.log(['module_missing', 'promise_enabled', 'locale_missing', 'check_datasource_columns']);\n this.ariaService.setOptions(this.element, { datarole: 'grid' });\n createSpinner({ target: this.element, cssClass: this.cssClass ? this.cssClass : null }, this.createElement);\n this.renderModule = new Render(this, this.serviceLocator);\n this.searchModule = new Search(this);\n this.scrollModule = new Scroll(this);\n this.notify(events.initialLoad, {});\n if (this.getDataModule().dataManager.dataSource.offline === true || this.getDataModule().dataManager.dataSource.url === undefined) {\n this.isVirtualAdaptive = true;\n }\n if (this.isReact) {\n var args = { requireTemplateRef: this.requireTemplateRef };\n this.trigger(events.load, args);\n if (!args.requireTemplateRef) {\n this.requireTemplateRef = args.requireTemplateRef;\n }\n }\n else {\n this.trigger(events.load);\n }\n prepareColumns(this.columns, this.enableColumnVirtualization, this);\n if (this.enablePersistence) {\n this.notify(events.columnsPrepared, {});\n }\n this.getMediaColumns();\n setColumnIndex(this.columns);\n this.checkLockColumns(this.columns);\n this.getColumns();\n this.processModel();\n this.gridRender();\n this.wireEvents();\n this.addListener();\n this.updateDefaultCursor();\n this.updateStackedFilter();\n if (this.loadingIndicator.indicatorType === 'Spinner') {\n this.showSpinner();\n }\n this.notify(events.initialEnd, {});\n if (this.loadingIndicator.indicatorType === 'Shimmer') {\n this.refreshMaskRow();\n }\n if (this.refreshing) {\n this.trigger('created');\n }\n };\n /**\n * By default, grid shows the spinner for all its actions. You can use this method to show spinner at your needed time.\n *\n * @returns {void}\n */\n Grid.prototype.showSpinner = function () {\n if (!this.isExportGrid) {\n showSpinner(this.element);\n }\n };\n /**\n * By default, grid shows the spinner for all its actions. You can use this method to show spinner at your needed time.\n *\n * @returns {void}\n */\n Grid.prototype.hideSpinner = function () {\n if (!this.isExportGrid) {\n hideSpinner(this.element);\n }\n };\n Grid.prototype.showMaskRow = function (axisDirection, dialogElement) {\n if (isNullOrUndefined(this.headerModule) || isNullOrUndefined(this.contentModule)) {\n return;\n }\n var gridHeader = this.getHeaderContent().firstChild;\n var gridContent = this.getContent().firstChild;\n var gridFooter = this.getFooterContent();\n if (dialogElement) {\n var dialogHolder = dialogElement.querySelector('.e-checkboxlist');\n var maskRowCount = Math.floor(dialogHolder.getBoundingClientRect().height / this.getRowHeight());\n var maskTemplate = '
    '\n + '
    '\n + this.getShimmerTemplate() + this.getShimmerTemplate() + '
    ';\n dialogHolder.innerHTML = '';\n for (var i = 0; i < maskRowCount; i++) {\n dialogHolder.innerHTML += maskTemplate;\n var maskSpan = [].slice.call(dialogHolder\n .querySelectorAll('.e-mask:not(.e-mask-checkbox-filter-intent):not(.e-mask-checkbox-filter-span-intent)'));\n maskSpan[0].classList.add('e-mask-checkbox-filter-intent');\n maskSpan[1].classList.add('e-mask-checkbox-filter-span-intent');\n }\n return;\n }\n if ((!this.enableRtl && !this.getHeaderContent().style.paddingRight)\n || (this.enableRtl && !this.getHeaderContent().style.paddingLeft)) {\n gridContent.style.overflowY = 'hidden';\n }\n if (!this.isInitialLoad && !this.getColumns().length) {\n var contentHeight = gridContent.getBoundingClientRect().height;\n var maskTableHeight = contentHeight === 0 ? this.allowPaging ? this.pageSettings.pageSize * this.getRowHeight()\n : window.innerHeight : contentHeight;\n var contentRowCount = Math.ceil(maskTableHeight / this.getRowHeight());\n if (this.rowRenderingMode !== 'Vertical') {\n this.headerMaskTable = this.createEmptyMaskTable(gridHeader, 1);\n }\n this.contentMaskTable = this.createEmptyMaskTable(gridContent, contentRowCount);\n return;\n }\n this.maskRowContentScroll = this.enableVirtualization && axisDirection ? true : false;\n if (!this.contentMaskTable && !(this.isFrozenGrid() && this.enableColumnVirtualization && axisDirection === 'X')) {\n var content = gridContent;\n if (this.isFrozenGrid()) {\n if (!this.isInitialLoad && !this.enableVirtualization && this.frozenRows && this.height !== 'auto') {\n var contentHeight = content.getBoundingClientRect().height - (this.frozenRows * this.getRowHeight());\n content.style.height = contentHeight + 'px';\n }\n content = content.querySelector('.e-frozen-left-content, .e-frozen-right-content');\n }\n else if (this.enableVirtualization) {\n content = content.querySelector('.e-virtualtable');\n }\n if (!isNullOrUndefined(content.querySelector('tbody'))) {\n this.contentMaskTable = this.createMaskTable(content, this.getContentMaskColumns(), axisDirection);\n }\n }\n if (!this.headerMaskTable && (this.isFrozenGrid() || (this.enableColumnVirtualization && axisDirection === 'X'))\n && !((this.isFrozenGrid() && ((this.enableVirtualization && axisDirection === 'Y')\n || (this.enableColumnVirtualization && axisDirection === 'X')\n || (this.enableInfiniteScrolling && axisDirection === 'down'))))) {\n var content = gridHeader;\n if (this.isFrozenGrid()) {\n content = content.querySelector('.e-frozen-left-header, .e-frozen-right-header');\n }\n else if (this.enableColumnVirtualization && axisDirection === 'X') {\n content = content.querySelector('.e-virtualtable');\n }\n this.headerMaskTable = this.createMaskTable(content, this.getContentMaskColumns(), axisDirection);\n }\n if (!this.movableHeaderMaskTable && this.isFrozenGrid() && !((this.enableVirtualization && axisDirection === 'Y')\n || (this.enableInfiniteScrolling && axisDirection === 'down'))) {\n var content = gridHeader.querySelector('.e-movableheader');\n if (this.enableColumnVirtualization) {\n content = content.querySelector('.e-virtualtable');\n }\n this.movableHeaderMaskTable = this.createMaskTable(content, this.getMovableContentMaskColumns(), axisDirection);\n }\n if (!this.rightHeaderMaskTable && this.isFrozenGrid() && this.getFrozenMode() === 'Left-Right'\n && !((this.enableVirtualization && axisDirection === 'Y') || (this.enableInfiniteScrolling && axisDirection === 'down'))) {\n this.rightHeaderMaskTable = this.createMaskTable(gridHeader\n .querySelector('.e-frozen-right-header'), this.getRightContentMaskColumns(), axisDirection);\n }\n if (!this.movableContentMaskTable && this.isFrozenGrid()) {\n var content = gridContent.querySelector('.e-movablecontent');\n if (this.enableColumnVirtualization) {\n content = content.querySelector('.e-virtualtable');\n }\n if (!isNullOrUndefined(content.querySelector('tbody'))) {\n this.movableContentMaskTable = this.createMaskTable(content, this.getMovableContentMaskColumns(), axisDirection);\n }\n }\n if (!this.rightContentMaskTable && this.isFrozenGrid() && this.getFrozenMode() === 'Left-Right') {\n this.rightContentMaskTable = this.createMaskTable(gridContent\n .querySelector('.e-frozen-right-content'), this.getRightContentMaskColumns(), axisDirection);\n }\n if (gridFooter && gridFooter.querySelector('.e-summaryrow')) {\n var gridFooterContent = gridFooter.firstChild;\n if (!this.footerContentMaskTable) {\n var footerContent = gridFooterContent;\n if (this.isFrozenGrid()) {\n footerContent = footerContent.querySelector('.e-frozen-left-footercontent, .e-frozen-right-footercontent');\n }\n this.footerContentMaskTable = this.createMaskTable(footerContent);\n }\n if (this.isFrozenGrid()) {\n if (!this.movableFooterContentMaskTable) {\n this.movableFooterContentMaskTable = this.createMaskTable(gridFooterContent\n .querySelector('.e-movablefootercontent'));\n }\n if (this.getFrozenMode() === 'Left-Right' && !this.rightFooterContentMaskTable) {\n this.rightFooterContentMaskTable = this.createMaskTable(gridFooterContent\n .querySelector('.e-frozen-right-footercontent'));\n }\n }\n }\n if (!(this.enableVirtualization && axisDirection)) {\n EventHandler.add(gridContent, 'scroll', this.translateMaskRow, this);\n }\n };\n Grid.prototype.getContentMaskColumns = function () {\n var columns = this.getColumns();\n if (this.isFrozenGrid()) {\n if (this.getFrozenMode() === 'Left' || this.getFrozenMode() === 'Left-Right') {\n columns = this.frozenColumns ? columns.slice(0, this.frozenColumns) : this.getFrozenLeftColumns();\n }\n else if (this.getFrozenMode() === 'Right') {\n columns = this.getFrozenRightColumns();\n }\n }\n return columns;\n };\n Grid.prototype.getMovableContentMaskColumns = function () {\n var gridColumns = this.getColumns();\n var columns = this.frozenColumns ? gridColumns.slice(this.frozenColumns, gridColumns.length)\n : this.getMovableColumns();\n return columns;\n };\n Grid.prototype.getRightContentMaskColumns = function () {\n return this.getFrozenRightColumns();\n };\n Grid.prototype.createEmptyMaskTable = function (maskElement, rowCount) {\n var table = this.createElement('table', { className: 'e-table e-masked-table' });\n var tbody = this.createElement('tbody', { className: 'e-masked-tbody' });\n var row = this.createElement('tr', { className: 'e-masked-row e-row', attrs: {\n style: 'height: ' + this.getRowHeight() + 'px;'\n } });\n var cell = this.createElement('td', { className: 'e-masked-cell e-rowcell' });\n cell.innerHTML = this.getShimmerTemplate();\n row.appendChild(cell);\n for (var i = 0; i < rowCount; i++) {\n tbody.appendChild(row.cloneNode(true));\n }\n table.appendChild(tbody);\n maskElement.appendChild(table);\n return table;\n };\n Grid.prototype.createMaskTable = function (element, columns, axisDirection) {\n var parentElement = element;\n var header = closest(parentElement, '.e-gridheader') ? true : false;\n var content = closest(parentElement, '.e-gridcontent') ? true : false;\n var footer = closest(parentElement, '.e-gridfooter') ? true : false;\n var gridContent = this.getContent().firstChild;\n var gridContentScrollHeight = gridContent.scrollHeight;\n var table = parentElement.querySelector('table');\n if (this.isFrozenGrid()) {\n if (content) {\n parentElement.style.overflow = 'hidden';\n }\n parentElement.style.position = 'relative';\n }\n var maskTable = table.cloneNode();\n maskTable.removeAttribute('role');\n maskTable.removeAttribute('id');\n maskTable.removeAttribute('aria-multiselectable');\n maskTable.removeAttribute('aria-colcount');\n maskTable.removeAttribute('aria-rowcount');\n maskTable.style.position = 'absolute';\n maskTable.style.zIndex = '1';\n maskTable.style.width = table.getBoundingClientRect().width + 'px';\n if (header && !(this.enableColumnVirtualization && axisDirection === 'X')) {\n maskTable.style.transform = 'translate(0px,'\n + table.querySelector('thead').getBoundingClientRect().height + 'px)';\n }\n maskTable.setAttribute('class', 'e-table e-masked-table');\n var maskColgroup = table.querySelector('colgroup').cloneNode(true);\n maskColgroup.removeAttribute('id');\n maskColgroup.setAttribute('class', 'e-masked-colgroup');\n maskTable.appendChild(maskColgroup);\n if (header && this.enableColumnVirtualization && axisDirection === 'X') {\n var row = this.createMaskRow(maskColgroup, columns);\n var thead = table.querySelector('thead');\n var rows = [].slice.call(thead.querySelectorAll('tr'));\n var maskTHead = thead.cloneNode();\n maskTHead.removeAttribute('role');\n maskTHead.setAttribute('class', 'e-masked-thead');\n var rowCount = rows.length;\n for (var i = 0; i < rowCount; i++) {\n maskTHead.appendChild(row.cloneNode(true));\n maskTHead.childNodes[parseInt(i.toString(), 10)].style\n .height = rows[parseInt(i.toString(), 10)].getBoundingClientRect().height + 'px';\n }\n maskTable.appendChild(maskTHead);\n }\n var maskTBody = table.querySelector('tbody').cloneNode();\n maskTBody.removeAttribute('role');\n maskTBody.setAttribute('class', 'e-masked-tbody');\n var tbody = table.querySelector('tbody');\n if (content || (header && this.isFrozenGrid())) {\n var rowCountElement = gridContent;\n var rowCount = header && this.isFrozenGrid() ? this.frozenRows\n : Math.ceil(rowCountElement.getBoundingClientRect().height / this.getRowHeight());\n if (tbody.querySelector('.e-emptyrow') || !tbody.childNodes.length || (content && this.childGrid)) {\n var row = this.createMaskRow(maskColgroup, columns);\n var altRow = row.cloneNode(true);\n altRow.classList.add('e-altrow');\n for (var i = 0; i < rowCount; i++) {\n var altNumber = content && this.isFrozenGrid() && this.frozenRows ? this.frozenRows + 1 : 1;\n maskTBody.appendChild((i + altNumber) % 2 === 0 ? altRow.cloneNode(true) : row.cloneNode(true));\n }\n }\n else {\n var rowsQuery = 'tr:not([style*=\"display:none\"]):not([style*=\"display: none\"])';\n var rows = [].slice.call(tbody.querySelectorAll(rowsQuery));\n var addEditRow = tbody.querySelector('.e-addedrow, .e-editedrow');\n var addEditRowIndex = void 0;\n if (addEditRow) {\n addEditRowIndex = rows.indexOf(addEditRow);\n if (addEditRow.classList.contains('e-addedrow')) {\n rows.splice(addEditRowIndex, 2);\n }\n else {\n rows.splice(addEditRowIndex, 1);\n }\n }\n rowCount = (header && this.isFrozenGrid()) || (this.enableVirtualization && axisDirection) ? rows.length\n : rowCount <= rows.length ? rowCount : rows.length;\n for (var i = 0; i < rowCount; i++) {\n maskTBody.appendChild(this.applyMaskRow(rows[parseInt(i.toString(), 10)].cloneNode(true), rows[parseInt(i.toString(), 10)].getBoundingClientRect().height));\n }\n if (addEditRow && addEditRow.classList.contains('e-editedrow') && addEditRowIndex < rowCount) {\n var addEditMaskRow = maskTBody.childNodes[parseInt(addEditRowIndex.toString(), 10)];\n addEditMaskRow.style.height = this.getRowHeight() + 'px';\n addEditMaskRow.classList.add('e-row');\n if (addEditRow.classList.contains('e-altrow')) {\n addEditMaskRow.classList.add('e-altrow');\n }\n }\n }\n }\n maskTable.appendChild(maskTBody);\n if (footer) {\n var tfoot = table.querySelector('tfoot');\n var maskTFoot = tfoot.cloneNode();\n maskTFoot.setAttribute('class', 'e-masked-tfoot');\n var rows = [].slice.call(tfoot.querySelectorAll('tr'));\n for (var i = 0; i < rows.length; i++) {\n maskTFoot.appendChild(this.applyMaskRow(rows[parseInt(i.toString(), 10)].cloneNode(true), rows[parseInt(i.toString(), 10)].getBoundingClientRect().height));\n }\n maskTable.appendChild(maskTFoot);\n }\n parentElement.insertBefore(maskTable, parentElement.firstChild);\n if (header && this.isFrozenGrid() && tbody\n .getBoundingClientRect().height < maskTable.querySelector('tbody').getBoundingClientRect().height) {\n var maskTableHolderHeight = maskTable.querySelector('tbody')\n .getBoundingClientRect().height - tbody.getBoundingClientRect().height;\n var maskTableHolder = this.createElement('div', { className: 'e-masked-table-holder', attrs: {\n style: 'height: ' + maskTableHolderHeight + 'px;'\n } });\n parentElement.appendChild(maskTableHolder);\n }\n else if (header && this.isFrozenGrid() && !(this.enableColumnVirtualization && axisDirection === 'X')) {\n maskTable.style.height = parentElement\n .getBoundingClientRect().height - table.querySelector('thead').getBoundingClientRect().height + 'px';\n }\n if (content && !(this.enableVirtualization && axisDirection)) {\n var minScrollTop = gridContentScrollHeight - maskTable.getBoundingClientRect().height;\n minScrollTop = minScrollTop < 0 ? 0 : minScrollTop;\n var scrollTop = gridContent.scrollTop <= minScrollTop ? gridContent.scrollTop : minScrollTop;\n if (this.enableVirtualization) {\n scrollTop -= getTransformValues(closest(parentElement, '.e-virtualtable')).height;\n }\n maskTable.style.transform = 'translate(0px,' + scrollTop + 'px)';\n }\n return maskTable;\n };\n Grid.prototype.applyMaskRow = function (row, rowHeight) {\n var maskRow = row;\n maskRow.removeAttribute('role');\n maskRow.removeAttribute('aria-rowindex');\n maskRow.removeAttribute('data-rowindex');\n maskRow.removeAttribute('data-uid');\n maskRow.classList.add('e-masked-row');\n maskRow.style.height = rowHeight + 'px';\n var maskCells = [].slice.call(maskRow.childNodes);\n for (var i = 0; i < maskCells.length; i++) {\n var maskCell = maskCells[parseInt(i.toString(), 10)];\n var displayAsCheckBoxCell = maskCell.firstChild && maskCell.firstChild.classList\n && maskCell.firstChild.classList.contains('e-checkbox-wrapper');\n maskCell.removeAttribute('role');\n maskCell.removeAttribute('tabindex');\n maskCell.removeAttribute('aria-label');\n maskCell.removeAttribute('data-colindex');\n maskCell.removeAttribute('aria-colindex');\n maskCell.removeAttribute('index');\n maskCell.removeAttribute('ej-mappingname');\n maskCell.removeAttribute('ej-mappingvalue');\n maskCell.removeAttribute('e-mappinguid');\n maskCell.removeAttribute('aria-expanded');\n maskCell.classList.add('e-masked-cell');\n maskCell.innerHTML = this.getShimmerTemplate();\n if (maskCell.classList.contains('e-recordplusexpand') || maskCell.classList.contains('e-recordpluscollapse')) {\n maskCell.firstChild.classList.add('e-mask-group-intent');\n }\n else if (maskCell.classList.contains('e-gridchkbox') || displayAsCheckBoxCell) {\n maskCell.firstChild.classList.add('e-mask-checkbox-intent');\n }\n else if (maskCell.classList.contains('e-rowdragdrop')) {\n maskCell.firstChild.classList.add('e-mask-drag-intent');\n }\n else if (maskCell.classList.contains('e-indentcell')) {\n maskCell.innerHTML = '';\n }\n }\n return maskRow;\n };\n Grid.prototype.createMaskRow = function (refColgroup, refColumns) {\n var colgroup = refColgroup;\n var columns = refColumns;\n var row = this.createElement('tr', { className: 'e-masked-row e-row' });\n if (this.rowRenderingMode !== 'Vertical') {\n row.style.height = this.getRowHeight() + 'px';\n }\n var td = this.createElement('td', { className: 'e-masked-cell e-rowcell' });\n for (var i = 0, colIndex = 0; i < colgroup.childNodes.length; i++) {\n var col = colgroup.childNodes[parseInt(i.toString(), 10)];\n var localTD = td.cloneNode();\n localTD.innerHTML = this.getShimmerTemplate();\n if (!(col.classList.contains('e-group-intent') || col.classList.contains('e-detail-intent')\n || col.classList.contains('e-drag-intent'))) {\n if (this.rowRenderingMode === 'Vertical' && columns[parseInt(colIndex.toString(), 10)]) {\n localTD.setAttribute('data-cell', columns[parseInt(colIndex.toString(), 10)].headerText ?\n columns[parseInt(colIndex.toString(), 10)].headerText : columns[parseInt(colIndex.toString(), 10)].field);\n }\n if (col.style.display === 'none') {\n localTD.classList.add('e-hide');\n }\n else {\n localTD.style.textAlign = columns[parseInt(colIndex.toString(), 10)]\n && columns[parseInt(colIndex.toString(), 10)].textAlign ?\n columns[parseInt(colIndex.toString(), 10)].textAlign.toLowerCase()\n : this.enableRtl ? 'right' : 'left';\n if (columns[parseInt(colIndex.toString(), 10)] && (columns[parseInt(colIndex.toString(), 10)].type === 'checkbox'\n || columns[parseInt(colIndex.toString(), 10)].displayAsCheckBox)) {\n localTD.firstChild.classList.add('e-mask-checkbox-intent');\n }\n }\n colIndex++;\n }\n else {\n if (col.classList.contains('e-group-intent')) {\n localTD.firstChild.classList.add('e-mask-group-intent');\n }\n else if (col.classList.contains('e-detail-intent')) {\n localTD.firstChild.classList.add('e-mask-detail-intent');\n }\n else if (col.classList.contains('e-drag-intent')) {\n localTD.firstChild.classList.add('e-mask-drag-intent');\n }\n }\n row.appendChild(localTD);\n }\n return row;\n };\n Grid.prototype.getShimmerTemplate = function () {\n if (this.maskRowContentScroll) {\n return '';\n }\n return '';\n };\n Grid.prototype.addShimmerEffect = function () {\n this.maskRowContentScroll = false;\n var maskSpan = [].slice.call(this.element.querySelectorAll('.e-mask:not(.e-shimmer-wave)'));\n for (var i = 0; i < maskSpan.length; i++) {\n if (maskSpan[parseInt(i.toString(), 10)]) {\n maskSpan[parseInt(i.toString(), 10)].classList.add('e-shimmer-wave');\n }\n }\n };\n Grid.prototype.translateMaskRow = function (e) {\n var target = e.target;\n var maskTables = target.querySelectorAll('.e-masked-table');\n for (var i = 0; i < maskTables.length; i++) {\n var maskTable = maskTables[parseInt(i.toString(), 10)];\n if (maskTable) {\n var minScrollTop = target.scrollHeight - maskTable.getBoundingClientRect().height;\n minScrollTop = minScrollTop < 0 ? 0 : minScrollTop;\n var scrollTop = target.scrollTop <= minScrollTop ? target.scrollTop : minScrollTop;\n if (this.enableVirtualization) {\n scrollTop -= getTransformValues(closest(maskTable, '.e-virtualtable')).height;\n }\n maskTable.style.transform = 'translate(0px,' + scrollTop + 'px)';\n }\n }\n };\n Grid.prototype.removeMaskRow = function () {\n var gridContent = this.getContent().firstChild;\n EventHandler.remove(gridContent, 'scroll', this.translateMaskRow);\n var maskTables = [this.headerMaskTable, this.movableHeaderMaskTable, this.rightHeaderMaskTable,\n this.contentMaskTable, this.movableContentMaskTable, this.rightContentMaskTable, this.footerContentMaskTable,\n this.movableFooterContentMaskTable, this.rightFooterContentMaskTable];\n for (var i = 0; i < maskTables.length; i++) {\n var maskTable = maskTables[parseInt(i.toString(), 10)];\n if (maskTable) {\n if (this.isFrozenGrid() && !closest(maskTable, '.e-gridfooter')) {\n var parent_1 = maskTable.parentElement;\n parent_1.style.overflow = '';\n parent_1.style.position = '';\n if (closest(maskTable, '.e-frozen-left-header') || closest(maskTable, '.e-movableheader')\n || closest(maskTable, '.e-frozen-right-header')) {\n var maskTableHolder = parent_1.querySelector('.e-masked-table-holder');\n if (maskTableHolder) {\n remove(maskTableHolder);\n }\n }\n }\n remove(maskTable);\n }\n }\n this.headerMaskTable = null;\n this.movableHeaderMaskTable = null;\n this.rightHeaderMaskTable = null;\n this.contentMaskTable = null;\n this.movableContentMaskTable = null;\n this.rightContentMaskTable = null;\n this.footerContentMaskTable = null;\n this.movableFooterContentMaskTable = null;\n this.rightFooterContentMaskTable = null;\n };\n Grid.prototype.refreshMaskRow = function () {\n var gridHeader = this.getHeaderContent().firstChild;\n var gridContent = this.getContent().firstChild;\n if (!this.isInitialLoad && !this.getColumns().length) {\n return;\n }\n if (this.contentMaskTable) {\n var content = gridContent;\n if (this.isFrozenGrid()) {\n content = content.querySelector('.e-frozen-left-content, .e-frozen-right-content');\n }\n else if (this.enableVirtualization) {\n content = content.querySelector('.e-virtualtable');\n }\n this.refreshMaskRowColgroupWidth(content);\n }\n if (this.headerMaskTable && this.isFrozenGrid()) {\n this.refreshMaskRowColgroupWidth(gridHeader.querySelector('.e-frozen-left-header, .e-frozen-right-header'));\n }\n if (this.movableHeaderMaskTable && this.isFrozenGrid()) {\n var content = gridHeader.querySelector('.e-movableheader');\n if (this.enableColumnVirtualization) {\n content = content.querySelector('.e-virtualtable');\n }\n this.refreshMaskRowColgroupWidth(content);\n }\n if (this.rightHeaderMaskTable && this.isFrozenGrid() && this.getFrozenMode() === 'Left-Right') {\n this.refreshMaskRowColgroupWidth(gridHeader.querySelector('.e-frozen-right-header'));\n }\n if (this.movableContentMaskTable && this.isFrozenGrid()) {\n var content = gridContent.querySelector('.e-movablecontent');\n if (this.enableColumnVirtualization) {\n content = content.querySelector('.e-virtualtable');\n }\n this.refreshMaskRowColgroupWidth(content);\n }\n if (this.rightContentMaskTable && this.isFrozenGrid() && this.getFrozenMode() === 'Left-Right') {\n this.refreshMaskRowColgroupWidth(gridContent.querySelector('.e-frozen-right-content'));\n }\n };\n Grid.prototype.refreshMaskRowColgroupWidth = function (content) {\n var table = content.querySelector('table:not(.e-masked-table)');\n var colgroup = table.querySelector(literals.colGroup).cloneNode(true);\n var maskTable = content.querySelector('.e-masked-table');\n colgroup.removeAttribute('id');\n colgroup.setAttribute('class', 'e-masked-colgroup');\n for (var i = 0; i < colgroup.childNodes.length; i++) {\n colgroup.childNodes[parseInt(i.toString(), 10)].removeAttribute('class');\n }\n remove(maskTable.querySelector('.e-masked-colgroup'));\n maskTable.insertBefore(colgroup, maskTable.firstChild);\n maskTable.style.width = table.getBoundingClientRect().width + 'px';\n };\n Grid.prototype.updateStackedFilter = function () {\n if (this.allowFiltering && this.filterSettings.type === 'FilterBar' &&\n this.getHeaderContent().getElementsByClassName('e-stackedheadercell').length) {\n this.getHeaderContent().classList.add('e-stackedfilter');\n }\n else {\n this.getHeaderContent().classList.remove('e-stackedfilter');\n }\n };\n Grid.prototype.getMediaColumns = function () {\n if (!this.enableColumnVirtualization) {\n var gcol = this.getColumns();\n this.getShowHideService = this.serviceLocator.getService('showHideService');\n if (!isNullOrUndefined(gcol)) {\n for (var index = 0; index < gcol.length; index++) {\n if (!isNullOrUndefined(gcol[parseInt(index.toString(), 10)].hideAtMedia)\n && (isNullOrUndefined(gcol[parseInt(index.toString(), 10)].visible)\n || gcol[parseInt(index.toString(), 10)].visible)) {\n this.pushMediaColumn(gcol[parseInt(index.toString(), 10)], index);\n }\n }\n }\n }\n };\n Grid.prototype.pushMediaColumn = function (col, index) {\n this.mediaCol.push(col);\n this.media[col.uid] = window.matchMedia(col.hideAtMedia);\n this.mediaQueryUpdate(index, this.media[col.uid]);\n this.mediaBindInstance[parseInt(index.toString(), 10)] = this.mediaQueryUpdate.bind(this, index);\n this.media[col.uid].addListener(this.mediaBindInstance[parseInt(index.toString(), 10)]);\n };\n /**\n * @param {Column} col - specifies the column\n * @returns {void}\n * @hidden\n */\n Grid.prototype.updateMediaColumns = function (col) {\n if (!this.enableColumnVirtualization) {\n var index = this.getColumnIndexByUid(col.uid);\n for (var i = 0; i < this.mediaCol.length; i++) {\n if (col.uid === this.mediaCol[parseInt(i.toString(), 10)].uid) {\n this.mediaCol.splice(i, 1);\n return;\n }\n }\n this.pushMediaColumn(col, index);\n }\n };\n /**\n * @param {number} columnIndex - specifies the column index\n * @param {MediaQueryList} e - specifies the MediaQueryList\n * @returns {void}\n * @hidden\n */\n Grid.prototype.mediaQueryUpdate = function (columnIndex, e) {\n var col = this.getColumns()[parseInt(columnIndex.toString(), 10)];\n if (this.mediaCol.some(function (mediaColumn) { return mediaColumn.uid === col.uid; })) {\n col.visible = e.matches;\n if (this.isInitialLoad) {\n this.invokedFromMedia = true;\n if (col.visible) {\n this.showHider.show(col.headerText, 'headerText');\n }\n else {\n this.showHider.hide(col.headerText, 'headerText');\n }\n }\n }\n };\n Grid.prototype.refreshMediaCol = function () {\n this.isInitialLoad = true;\n var footerContent = this.element.querySelector('.' + literals.gridFooter);\n if (this.aggregates.length && this.element.scrollHeight > this.height && footerContent) {\n addClass([footerContent], ['e-footerpadding']);\n }\n var checkboxColumn = this.getColumns().filter(function (col) { return col.type === 'checkbox'; });\n if (checkboxColumn.length && this.selectionSettings.checkboxMode === 'ResetOnRowClick') {\n this.isCheckBoxSelection = false;\n }\n if (this.rowRenderingMode === 'Vertical') {\n if (this.enableHover) {\n this.setProperties({ enableAdaptiveUI: true, enableHover: false }, true);\n removeClass([this.element], 'e-gridhover');\n }\n }\n if (this.enableAdaptiveUI && this.scrollModule) {\n this.scrollModule.refresh();\n }\n };\n Grid.prototype.removeMediaListener = function () {\n for (var i = 0; i < this.mediaCol.length; i++) {\n this.media[this.mediaCol[parseInt(i.toString(), 10)].uid]\n .removeListener(this.mediaBindInstance[this.mediaCol[parseInt(i.toString(), 10)].index]);\n }\n };\n /**\n * For internal use only - Initialize the event handler\n *\n * @returns {void}\n * @private\n */\n Grid.prototype.eventInitializer = function () {\n //eventInitializer\n };\n /**\n * Destroys the component (detaches/removes all event handlers, attributes, classes, and empties the component element).\n *\n * @function destroy\n * @returns {void}\n */\n Grid.prototype.destroy = function () {\n var gridElement = this.element;\n if (!gridElement) {\n return;\n }\n var hasGridChild = gridElement.querySelector('.' + literals.gridHeader) &&\n gridElement.querySelector('.' + literals.gridContent) ? true : false;\n if (hasGridChild) {\n this.unwireEvents();\n }\n this.removeListener();\n this.removeMediaListener();\n this.notify(events.destroy, {});\n this.destroyDependentModules();\n if (this.isReact || this.isVue) {\n this.destroyTemplate(['template']);\n }\n if (hasGridChild) {\n _super.prototype.destroy.call(this);\n }\n this.toolTipObj.destroy();\n if (this.isReact && !Browser.isIE) {\n this.element.innerHTML = '';\n }\n var modules = ['renderModule', 'headerModule', 'contentModule', 'valueFormatterService',\n 'serviceLocator', 'ariaService', 'keyboardModule', 'widthService', 'searchModule', 'showHider',\n 'scrollModule', 'printModule', 'clipboardModule', 'focusModule'];\n for (var i = 0; i < modules.length; i++) {\n if (this[modules[parseInt(i.toString(), 10)]]) {\n this[modules[parseInt(i.toString(), 10)]] = null;\n }\n }\n this.element.innerHTML = '';\n classList(this.element, [], ['e-rtl', 'e-gridhover', 'e-responsive', 'e-default', 'e-device', 'e-grid-min-height']);\n this.isFreezeRefresh = false;\n };\n Grid.prototype.destroyDependentModules = function () {\n var gridElement = this.element;\n if (!gridElement || (!gridElement.querySelector('.' + literals.gridHeader) && !gridElement.querySelector('.' + literals.gridContent))) {\n return;\n }\n this.scrollModule.destroy();\n this.keyboardModule.destroy();\n this.focusModule.destroy();\n this.clipboardModule.destroy();\n this.printModule.destroy();\n };\n /**\n * For internal use only - Get the module name.\n *\n * @returns {string} returns the module name\n * @private\n */\n Grid.prototype.getModuleName = function () {\n return 'grid';\n };\n Grid.prototype.enableBoxSelection = function () {\n if (this.enableAutoFill) {\n this.selectionSettings.cellSelectionMode = 'BoxWithBorder';\n this.element.classList.add('e-afenabled');\n }\n else {\n this.element.classList.remove('e-afenabled');\n }\n };\n Grid.prototype.setCSSClass = function (oldCSSClass) {\n if (this.cssClass) {\n addClass([this.element], this.cssClass.split(' '));\n }\n if (oldCSSClass) {\n removeClass([this.element], oldCSSClass.split(' '));\n }\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {GridModel} newProp - Defines new properties\n * @param {GridModel} oldProp - Defines old properties\n * @returns {void}\n * @hidden\n */\n Grid.prototype.onPropertyChanged = function (newProp, oldProp) {\n var requireRefresh = false;\n var requireGridRefresh = false;\n var freezeRefresh = false;\n var checkCursor;\n var args = { requestType: 'refresh' };\n if (this.isDestroyed) {\n return;\n }\n this.log('module_missing');\n if (this.isEllipsisTooltip()) {\n this.toolTipObj.close();\n }\n var properties = Object.keys(newProp);\n if (properties.indexOf('columns') > -1) {\n if (this.enableColumnVirtualization) {\n this.columnModel = [];\n }\n this.updateColumnObject();\n requireGridRefresh = true;\n }\n for (var _i = 0, properties_1 = properties; _i < properties_1.length; _i++) {\n var prop = properties_1[_i];\n switch (prop) {\n case 'allowPaging':\n this.notify(events.uiUpdate, { module: 'pager', enable: this.allowPaging });\n requireRefresh = true;\n break;\n case 'pageSettings':\n if (this.pageTemplateChange) {\n this.pageTemplateChange = false;\n this.notify(events.inBoundModelChanged, { module: 'pager', properties: newProp.pageSettings });\n break;\n }\n this.notify(events.inBoundModelChanged, { module: 'pager', properties: newProp.pageSettings });\n if (isNullOrUndefined(newProp.pageSettings.currentPage) && isNullOrUndefined(newProp.pageSettings.pageSize)\n && isNullOrUndefined(newProp.pageSettings.totalRecordsCount)\n || !isNullOrUndefined(oldProp.pageSettings) &&\n ((newProp.pageSettings.currentPage !== oldProp.pageSettings.currentPage)\n && !this.enableColumnVirtualization && !this.enableVirtualization\n && this.pageSettings.totalRecordsCount <= this.pageSettings.pageSize)) {\n requireRefresh = true;\n }\n break;\n case 'allowSorting':\n this.notify(events.uiUpdate, { module: 'sort', enable: this.allowSorting });\n requireRefresh = true;\n checkCursor = true;\n break;\n case 'allowFiltering':\n this.updateStackedFilter();\n this.notify(events.uiUpdate, { module: 'filter', enable: this.allowFiltering });\n requireRefresh = true;\n if (this.filterSettings.type !== 'FilterBar') {\n this.refreshHeader();\n }\n break;\n case 'height':\n case 'width':\n this.notify(events.uiUpdate, { module: 'scroll', properties: { width: newProp.width, height: newProp.height } });\n break;\n case 'allowReordering':\n this.headerModule.refreshUI();\n checkCursor = true;\n break;\n case 'allowRowDragAndDrop':\n this.notify(events.uiUpdate, { module: 'rowDragAndDrop', enable: this.allowRowDragAndDrop });\n this.renderModule.refresh();\n this.headerModule.refreshUI();\n break;\n case 'allowSelection':\n this.notify(events.uiUpdate, { module: 'selection', enable: this.allowSelection });\n break;\n case 'cssClass':\n this.setCSSClass(oldProp.cssClass);\n break;\n case 'enableAutoFill':\n if (this.selectionModule) {\n this.enableBoxSelection();\n this.selectionModule.updateAutoFillPosition();\n }\n break;\n case 'rowTemplate':\n this.rowTemplateFn = templateCompiler(this.rowTemplate);\n requireRefresh = true;\n break;\n case 'detailTemplate':\n this.detailTemplateFn = templateCompiler(this.detailTemplate);\n requireRefresh = true;\n break;\n case 'allowGrouping':\n this.notify(events.uiUpdate, { module: 'group', enable: this.allowGrouping });\n this.headerModule.refreshUI();\n requireRefresh = true;\n checkCursor = true;\n break;\n case 'enableInfiniteScrolling':\n case 'childGrid':\n requireRefresh = true;\n break;\n case 'toolbar':\n this.notify(events.uiUpdate, { module: 'toolbar' });\n break;\n case 'groupSettings':\n this.notify(events.inBoundModelChanged, {\n module: 'group', properties: newProp.groupSettings,\n oldProperties: oldProp.groupSettings\n });\n break;\n case 'aggregates':\n if (!this.aggregates.length && this.allowGrouping && this.groupSettings.columns.length) {\n requireRefresh = true;\n }\n this.notify(events.uiUpdate, { module: 'aggregate', properties: newProp });\n break;\n case 'frozenColumns':\n case 'frozenRows':\n case 'enableVirtualization':\n case 'currencyCode':\n case 'locale':\n this.log('frozen_rows_columns');\n freezeRefresh = true;\n requireGridRefresh = true;\n break;\n case 'query':\n if (!this.getDataModule().isQueryInvokedFromData) {\n requireRefresh = true;\n }\n this.getDataModule().isQueryInvokedFromData = false;\n break;\n case 'autoFit':\n if (this.autoFit) {\n this.preventAdjustColumns();\n }\n else {\n this.restoreAdjustColumns();\n }\n break;\n default:\n this.extendedPropertyChange(prop, newProp, requireGridRefresh);\n }\n }\n if (checkCursor) {\n this.updateDefaultCursor();\n }\n if (requireGridRefresh) {\n if (freezeRefresh || this.getFrozenColumns() || this.frozenRows) {\n this.freezeRefresh();\n }\n else {\n this.refresh();\n }\n }\n else if (requireRefresh) {\n this.notify(events.modelChanged, args);\n requireRefresh = false;\n this.maintainSelection(newProp.selectedRowIndex);\n }\n };\n Grid.prototype.extendedPropertyChange = function (prop, newProp, requireGridRefresh) {\n switch (prop) {\n case 'enableRtl':\n this.updateRTL();\n if (this.allowPaging) {\n this.element.querySelector('.e-gridpager').ej2_instances[0].enableRtl = newProp.enableRtl;\n this.element.querySelector('.e-gridpager').ej2_instances[0].dataBind();\n }\n if (this.height !== 'auto') {\n this.scrollModule.removePadding(!newProp.enableRtl);\n this.scrollModule.setPadding();\n }\n if (this.toolbar && this.toolbarModule) {\n this.toolbarModule.getToolbar().ej2_instances[0].enableRtl = newProp.enableRtl;\n this.toolbarModule.getToolbar().ej2_instances[0].dataBind();\n }\n if (this.contextMenuItems && this.contextMenuModule) {\n this.contextMenuModule.getContextMenu().ej2_instances[0].enableRtl = newProp.enableRtl;\n this.contextMenuModule.getContextMenu().ej2_instances[0].dataBind();\n }\n if (this.showColumnMenu && this.columnMenuModule) {\n this.columnMenuModule.getColumnMenu().ej2_instances[0].enableRtl = newProp.enableRtl;\n this.columnMenuModule.getColumnMenu().ej2_instances[0].dataBind();\n }\n if (this.filterSettings.type === 'FilterBar' && this.filterSettings.showFilterBarOperator) {\n this.refreshHeader();\n }\n this.notify(events.rtlUpdated, {});\n break;\n case 'enableAltRow':\n this.renderModule.refresh();\n break;\n case 'allowResizing':\n this.headerModule.refreshUI();\n this.updateResizeLines();\n break;\n case 'rowHeight':\n if (this.rowHeight) {\n addClass([this.element], 'e-grid-min-height');\n }\n else {\n removeClass([this.element], 'e-grid-min-height');\n }\n this.renderModule.refresh();\n this.headerModule.refreshUI();\n break;\n case 'gridLines':\n this.updateGridLines();\n break;\n case 'showColumnMenu':\n this.headerModule.refreshUI();\n this.notify(events.uiUpdate, { module: 'columnMenu', enable: true });\n break;\n case 'columnMenuItems':\n this.notify(events.uiUpdate, { module: 'columnMenu', enable: this.columnMenuItems });\n break;\n case 'contextMenuItems':\n this.notify(events.uiUpdate, { module: 'contextMenu', enable: this.contextMenuItems });\n break;\n case 'showColumnChooser':\n this.notify(events.uiUpdate, { module: 'columnChooser', enable: this.showColumnChooser });\n break;\n case 'filterSettings':\n this.updateStackedFilter();\n this.notify(events.inBoundModelChanged, { module: 'filter', properties: newProp.filterSettings });\n break;\n case 'searchSettings':\n this.notify(events.inBoundModelChanged, { module: 'search', properties: newProp.searchSettings });\n break;\n case 'sortSettings':\n this.notify(events.inBoundModelChanged, { module: 'sort' });\n break;\n case 'selectionSettings':\n this.notify(events.inBoundModelChanged, { module: 'selection', properties: newProp.selectionSettings });\n break;\n case 'editSettings':\n this.notify(events.inBoundModelChanged, { module: 'edit', properties: newProp.editSettings });\n break;\n case 'allowTextWrap':\n case 'textWrapSettings':\n if (this.allowTextWrap) {\n this.applyTextWrap();\n }\n else {\n this.removeTextWrap();\n }\n this.notify(events.freezeRender, { case: 'textwrap', isModeChg: (prop === 'textWrapSettings') });\n break;\n case 'dataSource':\n // eslint-disable-next-line no-case-declarations\n var pending_1 = this.getDataModule().getState();\n if (Object.getPrototypeOf(newProp).deepWatch) {\n var pKeyField = this.getPrimaryKeyFieldNames()[0];\n for (var i = 0, props = Object.keys(newProp.dataSource); i < props.length; i++) {\n this.setRowData(getValue(pKeyField, this.dataSource[props[parseInt(i.toString(), 10)]]), this.dataSource[props[parseInt(i.toString(), 10)]]);\n }\n }\n else if (pending_1.isPending) {\n var gResult = !isNullOrUndefined(this.dataSource) ? this.dataSource.result : [];\n var names = (pending_1.group || []);\n for (var i = 0; i < names.length; i++) {\n gResult = DataUtil.group(gResult, names[parseInt(i.toString(), 10)], pending_1.aggregates || []);\n }\n this.dataSource = {\n result: gResult, count: this.dataSource.count,\n aggregates: this.dataSource.aggregates\n };\n this.getDataModule().setState({});\n pending_1.resolver(this.dataSource);\n }\n else {\n this.getDataModule().setState({ isDataChanged: false });\n this.notify(events.dataSourceModified, {});\n if (!requireGridRefresh) {\n this.renderModule.refresh();\n if (this.isCheckBoxSelection) {\n this.notify(events.beforeRefreshOnDataChange, {});\n }\n }\n }\n this.scrollRefresh();\n break;\n case 'enableHover':\n // eslint-disable-next-line no-case-declarations\n var action = newProp.enableHover ? addClass : removeClass;\n action([this.element], 'e-gridhover');\n break;\n case 'selectedRowIndex':\n if (!this.isSelectedRowIndexUpdating) {\n this.selectRow(newProp.selectedRowIndex);\n }\n this.isSelectedRowIndexUpdating = false;\n break;\n case 'resizeSettings':\n this.widthService.setWidthToTable();\n break;\n case 'enableAdaptiveUI':\n this.notify(events.setFullScreenDialog, {});\n break;\n case 'rowRenderingMode':\n this.enableVerticalRendering();\n this.notify(events.rowModeChange, {});\n this.refresh();\n break;\n case 'enableStickyHeader':\n this.scrollModule.addStickyListener(newProp.enableStickyHeader);\n break;\n }\n };\n Grid.prototype.maintainSelection = function (index) {\n var _this = this;\n if (index !== -1) {\n var fn_1 = function () {\n _this.selectRow(index);\n _this.off(events.contentReady, fn_1);\n };\n this.on(events.contentReady, fn_1, this);\n }\n };\n /**\n * @param {Object} prop - Defines the property\n * @param {boolean} muteOnChange - Defines the mute on change\n * @returns {void}\n * @private\n */\n Grid.prototype.setProperties = function (prop, muteOnChange) {\n _super.prototype.setProperties.call(this, prop, muteOnChange);\n var filterSettings = 'filterSettings';\n if (prop[\"\" + filterSettings] && this.filterModule && muteOnChange) {\n this.filterModule.refreshFilter();\n }\n };\n /**\n * @hidden\n * @returns {void}\n */\n Grid.prototype.setTablesCount = function () {\n var frozenCols = this.getFrozenColumns();\n var frozenLeft = this.getFrozenLeftColumnsCount();\n var frozenRight = this.getFrozenRightColumnsCount();\n if (frozenCols && !frozenLeft && !frozenRight) {\n this.tablesCount = 2;\n }\n else if (!frozenCols && (frozenLeft || frozenRight)) {\n if ((frozenLeft && !frozenRight) || (frozenRight && !frozenLeft)) {\n this.tablesCount = 2;\n }\n else if (frozenLeft && frozenRight) {\n this.tablesCount = 3;\n }\n }\n };\n /**\n * @hidden\n * @returns {number} - Returns the tables count\n */\n Grid.prototype.getTablesCount = function () {\n return this.tablesCount;\n };\n /**\n * @hidden\n * @returns {void}\n */\n Grid.prototype.updateDefaultCursor = function () {\n var headerCells = [].slice.call(this.getHeaderContent().querySelectorAll('.e-headercell:not(.e-stackedheadercell)'));\n var stdHdrCell = [].slice.call(this.getHeaderContent().getElementsByClassName('e-stackedheadercell'));\n var cols = this.getColumns();\n if (this.enableColumnVirtualization && this.getFrozenColumns()) {\n var cells = this.contentModule.getHeaderCells();\n headerCells = cells.length ? cells : headerCells;\n }\n for (var i = 0; i < headerCells.length; i++) {\n var cell = headerCells[parseInt(i.toString(), 10)];\n if (this.allowGrouping || this.allowReordering || this.allowSorting) {\n if (!cols[parseInt(i.toString(), 10)].allowReordering || !cols[parseInt(i.toString(), 10)].allowSorting\n || !cols[parseInt(i.toString(), 10)].allowGrouping) {\n cell.classList.add('e-defaultcursor');\n }\n else {\n cell.classList.add('e-mousepointer');\n }\n }\n }\n for (var count = 0; count < stdHdrCell.length; count++) {\n if (this.allowReordering) {\n stdHdrCell[parseInt(count.toString(), 10)].classList.add('e-mousepointer');\n }\n }\n };\n Grid.prototype.updateColumnModel = function (columns, isRecursion) {\n for (var i = 0, len = columns.length; i < len; i++) {\n if (columns[parseInt(i.toString(), 10)].columns) {\n this.updateColumnModel(columns[parseInt(i.toString(), 10)].columns, true);\n }\n else {\n this.columnModel.push(columns[parseInt(i.toString(), 10)]);\n }\n }\n if (isNullOrUndefined(isRecursion) || !isRecursion) {\n this.updateColumnLevelFrozen();\n this.updateFrozenColumns();\n this.updateLockableColumns();\n }\n };\n Grid.prototype.updateColumnLevelFrozen = function () {\n var cols = this.columnModel;\n var leftCols = [];\n var rightCols = [];\n var movableCols = [];\n if (this.frozenLeftCount || this.frozenRightCount) {\n for (var i = 0, len = cols.length; i < len; i++) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var col = cols[parseInt(i.toString(), 10)];\n if (col.freeze === 'Left') {\n col.freezeTable = literals.frozenLeft;\n leftCols.push(col);\n }\n else if (col.freeze === 'Right') {\n col.freezeTable = literals.frozenRight;\n rightCols.push(col);\n }\n else {\n col.freezeTable = 'movable';\n movableCols.push(col);\n }\n }\n this.columnModel = leftCols.concat(movableCols).concat(rightCols);\n }\n };\n Grid.prototype.updateFrozenColumns = function () {\n if (this.frozenLeftCount || this.frozenRightCount) {\n return;\n }\n var cols = this.columnModel;\n var directFrozenCount = this.frozenColumns;\n var totalFrozenCount = this.getFrozenColumns();\n var count = 0;\n for (var i = 0, len = cols.length; i < len; i++) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var col = cols[parseInt(i.toString(), 10)];\n if (directFrozenCount) {\n if (i < directFrozenCount) {\n col.freezeTable = literals.frozenLeft;\n }\n else {\n col.freezeTable = 'movable';\n }\n }\n if (col.isFrozen && i >= directFrozenCount) {\n col.freezeTable = literals.frozenLeft;\n cols.splice(this.frozenColumns + count, 0, cols.splice(i, 1)[0]);\n count++;\n }\n else if (totalFrozenCount && !directFrozenCount) {\n col.freezeTable = 'movable';\n }\n if (!totalFrozenCount && !directFrozenCount && !isNullOrUndefined(col.freezeTable)) {\n col.freezeTable = undefined;\n }\n }\n };\n Grid.prototype.getFrozenLeftCount = function () {\n return this.getFrozenColumns() || this.getFrozenLeftColumnsCount();\n };\n Grid.prototype.isFrozenGrid = function () {\n return this.getFrozenColumns() !== 0 || this.getFrozenLeftColumnsCount() !== 0 || this.getFrozenRightColumnsCount() !== 0;\n };\n Grid.prototype.getFrozenMode = function () {\n return this.frozenName;\n };\n Grid.prototype.updateLockableColumns = function () {\n var cols = this.columnModel;\n var frozenCount = 0;\n var movableCount = 0;\n var frozenColumns = this.getFrozenColumns();\n for (var i = 0; i < cols.length; i++) {\n if (cols[parseInt(i.toString(), 10)].lockColumn) {\n if (i < frozenColumns) {\n cols.splice(frozenCount, 0, cols.splice(i, 1)[0]);\n frozenCount++;\n }\n else {\n cols.splice(frozenColumns + movableCount, 0, cols.splice(i, 1)[0]);\n movableCount++;\n }\n }\n }\n };\n Grid.prototype.checkLockColumns = function (cols) {\n for (var i = 0; i < cols.length; i++) {\n if (cols[parseInt(i.toString(), 10)].columns) {\n this.checkLockColumns(cols[parseInt(i.toString(), 10)].columns);\n }\n else if (cols[parseInt(i.toString(), 10)].lockColumn) {\n this.lockcolPositionCount++;\n }\n }\n };\n /**\n * Gets the columns from the Grid.\n *\n * @param {boolean} isRefresh - Defines the boolean whether to refresh\n * @returns {Column[]} - returns the column\n */\n Grid.prototype.getColumns = function (isRefresh) {\n var _this = this;\n var inview = this.inViewIndexes.map(function (v) { return v - _this.groupSettings.columns.length; }).filter(function (v) { return v > -1; });\n var vLen = inview.length;\n if (!this.enableColumnVirtualization || isNullOrUndefined(this.columnModel) || this.columnModel.length === 0 || isRefresh) {\n this.columnModel = [];\n this.updateColumnModel(this.columns);\n }\n var columns = vLen === 0 ? this.columnModel :\n this.columnModel.slice(inview[0], inview[vLen - 1] + 1);\n if (this.contentModule && this.enableColumnVirtualization && this.isFrozenGrid() && inview.length\n && inview[0] > 0) {\n var frozenCols = this.contentModule.ensureFrozenCols(columns);\n columns = frozenCols;\n }\n return columns;\n };\n /**\n * @private\n * @param {string} stackedHeader - Defines the stacked header\n * @param {Column[]} col - Defines the column\n * @returns {Column} Returns the Column\n */\n Grid.prototype.getStackedHeaderColumnByHeaderText = function (stackedHeader, col) {\n for (var i = 0; i < col.length; i++) {\n var individualColumn = col[parseInt(i.toString(), 10)];\n if (individualColumn.field === stackedHeader || individualColumn.headerText === stackedHeader) {\n this.stackedColumn = individualColumn;\n break;\n }\n else if (individualColumn.columns) {\n this.getStackedHeaderColumnByHeaderText(stackedHeader, individualColumn.columns);\n }\n }\n return this.stackedColumn;\n };\n /**\n * @private\n * @returns {number[]} Returns the column indexes\n */\n Grid.prototype.getColumnIndexesInView = function () {\n return this.inViewIndexes;\n };\n /**\n * @private\n * @returns {Query} - returns the query\n */\n Grid.prototype.getQuery = function () {\n return this.query;\n };\n /**\n * @private\n * @returns {object} - returns the locale constants\n */\n Grid.prototype.getLocaleConstants = function () {\n return this.defaultLocale;\n };\n /**\n * @param {number[]} indexes - specifies the indexes\n * @returns {void}\n * @private\n */\n Grid.prototype.setColumnIndexesInView = function (indexes) {\n this.inViewIndexes = indexes;\n };\n /**\n * Gets the visible columns from the Grid.\n *\n * @returns {Column[]} returns the column\n */\n Grid.prototype.getVisibleColumns = function () {\n return this.getCurrentVisibleColumns();\n };\n /**\n * Gets the header div of the Grid.\n *\n * @returns {Element} - Returns the element\n */\n Grid.prototype.getHeaderContent = function () {\n return this.headerModule.getPanel();\n };\n /**\n * Sets the header div of the Grid to replace the old header.\n *\n * @param {Element} element - Specifies the Grid header.\n *\n * @returns {void}\n */\n Grid.prototype.setGridHeaderContent = function (element) {\n this.headerModule.setPanel(element);\n };\n /**\n * Gets the content table of the Grid.\n *\n * @returns {Element} - Returns the element\n */\n Grid.prototype.getContentTable = function () {\n return this.contentModule.getTable();\n };\n /**\n * Sets the content table of the Grid to replace the old content table.\n *\n * @param {Element} element - Specifies the Grid content table.\n *\n * @returns {void}\n */\n Grid.prototype.setGridContentTable = function (element) {\n this.contentModule.setTable(element);\n };\n /**\n * Gets the content div of the Grid.\n *\n * @returns {Element} Returns the element\n */\n Grid.prototype.getContent = function () {\n return this.contentModule.getPanel();\n };\n /**\n * Sets the content div of the Grid to replace the old Grid content.\n *\n * @param {Element} element - Specifies the Grid content.\n *\n * @returns {void}\n */\n Grid.prototype.setGridContent = function (element) {\n this.contentModule.setPanel(element);\n };\n /**\n * Gets the header table element of the Grid.\n *\n * @returns {Element} returns the element\n */\n Grid.prototype.getHeaderTable = function () {\n return this.headerModule.getTable();\n };\n /**\n * Sets the header table of the Grid to replace the old one.\n *\n * @param {Element} element - Specifies the Grid header table.\n *\n * @returns {void}\n */\n Grid.prototype.setGridHeaderTable = function (element) {\n this.headerModule.setTable(element);\n };\n /**\n * Gets the footer div of the Grid.\n *\n * @returns {Element} returns the element\n */\n Grid.prototype.getFooterContent = function () {\n this.footerElement = this.element.getElementsByClassName(literals.gridFooter)[0];\n return this.footerElement;\n };\n /**\n * Gets the footer table element of the Grid.\n *\n * @returns {Element} returns the element\n */\n Grid.prototype.getFooterContentTable = function () {\n this.footerElement = this.element.getElementsByClassName(literals.gridFooter)[0];\n return this.footerElement.firstChild.firstChild;\n };\n /**\n * Gets the pager of the Grid.\n *\n * @returns {Element} returns the element\n */\n Grid.prototype.getPager = function () {\n return this.gridPager; //get element from pager\n };\n /**\n * Sets the pager of the Grid to replace the old pager.\n *\n * @param {Element} element - Specifies the Grid pager.\n *\n * @returns {void}\n */\n Grid.prototype.setGridPager = function (element) {\n this.gridPager = element;\n };\n /**\n * Gets a row by index.\n *\n * @param {number} index - Specifies the row index.\n *\n * @returns {Element} returns the element\n */\n Grid.prototype.getRowByIndex = function (index) {\n if (this.enableVirtualization && this.groupSettings.enableLazyLoading) {\n return this.lazyLoadRender.getRowByIndex(index);\n }\n else {\n return this.contentModule.getRowByIndex(index);\n }\n };\n /**\n * Gets a movable tables row by index.\n *\n * @param {number} index - Specifies the row index.\n *\n * @returns {Element} returns the element\n */\n Grid.prototype.getMovableRowByIndex = function (index) {\n return this.contentModule.getMovableRowByIndex(index);\n };\n /**\n * Gets a frozen tables row by index.\n *\n * @param {number} index - Specifies the row index.\n * @returns {Element} returns the element\n */\n Grid.prototype.getFrozenRowByIndex = function (index) {\n return this.getFrozenDataRows()[parseInt(index.toString(), 10)];\n };\n /**\n * Gets all the data rows of the Grid.\n *\n * @returns {Element[]} returns the element\n */\n Grid.prototype.getRows = function () {\n return this.contentModule.getRowElements();\n };\n /**\n * Gets a frozen right tables row element by index.\n *\n * @param {number} index - Specifies the row index.\n * @returns {Element} returns the element\n */\n Grid.prototype.getFrozenRightRowByIndex = function (index) {\n return this.contentModule.getFrozenRightRowByIndex(index);\n };\n /**\n * Get a row information based on cell\n *\n * @param {Element | EventTarget} target - specifies the element\n *\n * @returns {RowInfo} returns the row info\n */\n Grid.prototype.getRowInfo = function (target) {\n var ele = target;\n var args = { target: target };\n if (!isNullOrUndefined(target) && isNullOrUndefined(parentsUntil(ele, 'e-detailrowcollapse')\n && isNullOrUndefined(parentsUntil(ele, 'e-recordplusexpand')))) {\n var cell = closest(ele, '.' + literals.rowCell);\n if (!cell) {\n var row = closest(ele, '.' + literals.row);\n if (!isNullOrUndefined(row) && !row.classList.contains('e-addedrow')) {\n var rowObj = this.getRowObjectFromUID(row.getAttribute('data-uid'));\n var rowIndex = parseInt(row.getAttribute(literals.dataRowIndex), 10);\n args = { row: row, rowData: rowObj.data, rowIndex: rowIndex };\n }\n return args;\n }\n var cellIndex = parseInt(cell.getAttribute(literals.dataColIndex), 10);\n if (!isNullOrUndefined(cell) && !isNaN(cellIndex)) {\n var row_1 = closest(cell, '.' + literals.row);\n var rowIndex = parseInt(row_1.getAttribute(literals.dataRowIndex), 10);\n var frzCols = this.getFrozenColumns();\n var tableName = this.columnModel[parseInt(cellIndex.toString(), 10)].getFreezeTableName();\n var rows = this.contentModule.getRows();\n var index = cellIndex + this.getIndentCount();\n if (this.isFrozenGrid()) {\n if (tableName === literals.frozenLeft) {\n rows = this.contentModule.getRows();\n }\n else if (tableName === 'movable') {\n index = cellIndex - frzCols - this.frozenLeftCount;\n rows = this.contentModule.getMovableRows();\n }\n else if (tableName === literals.frozenRight) {\n index = cellIndex - (this.frozenLeftCount + this.movableCount);\n rows = this.contentModule.getFrozenRightRows();\n }\n }\n var rowsObject = rows.filter(function (r) { return r.uid === row_1.getAttribute('data-uid'); });\n var rowData = {};\n var column = void 0;\n if (Object.keys(rowsObject).length) {\n rowData = rowsObject[0].data;\n column = rowsObject[0].cells[parseInt(index.toString(), 10)].column;\n }\n args = { cell: cell, cellIndex: cellIndex, row: row_1, rowIndex: rowIndex, rowData: rowData, column: column, target: target };\n }\n }\n return args;\n };\n /**\n * Gets the Grid's movable content rows from frozen grid.\n *\n * @returns {Element[]} returns the element\n */\n Grid.prototype.getMovableRows = function () {\n return this.contentModule.getMovableRowElements();\n };\n /**\n * Gets the Grid's frozen right content rows from frozen grid.\n *\n * @returns {Element[]} returns the element\n */\n Grid.prototype.getFrozenRightRows = function () {\n return this.contentModule.getFrozenRightRowElements();\n };\n /**\n * Gets all the Grid's data rows.\n *\n * @returns {Element[]} returns the element\n */\n Grid.prototype.getDataRows = function () {\n return this.getAllDataRows();\n };\n /**\n * @param {boolean} includeAdd - specifies includeAdd\n * @returns {Element[]} returns the element\n * @hidden\n */\n Grid.prototype.getAllDataRows = function (includeAdd) {\n if (isNullOrUndefined(this.getContentTable().querySelector(literals.tbody))) {\n return [];\n }\n var tbody = this.isFrozenGrid() ? this.getFrozenLeftContentTbody()\n : this.getContentTable().querySelector(literals.tbody);\n var rows = [].slice.call(tbody.children);\n if (this.frozenRows) {\n var hdrTbody = this.isFrozenGrid() ? this.getHeaderContent().querySelector('.' + literals.frozenHeader).querySelector(literals.tbody)\n : this.getHeaderTable().querySelector(literals.tbody);\n var freezeRows = [].slice.call(hdrTbody.children);\n rows = this.addMovableRows(freezeRows, rows);\n }\n var dataRows = this.generateDataRows(rows, includeAdd);\n return dataRows;\n };\n /**\n * @param {HTMLElement[]} fRows - Defines the frozen Rows\n * @param {HTMLElement[]} mrows - Defines the movable Rows\n * @returns {HTMLElement[]} Returns the element\n * @hidden\n */\n Grid.prototype.addMovableRows = function (fRows, mrows) {\n for (var i = 0, len = mrows.length; i < len; i++) {\n fRows.push(mrows[parseInt(i.toString(), 10)]);\n }\n return fRows;\n };\n Grid.prototype.generateDataRows = function (rows, includAdd) {\n var dRows = [];\n for (var i = 0, len = rows.length; i < len; i++) {\n if (rows[parseInt(i.toString(), 10)].classList.contains(literals.row)\n && (!rows[parseInt(i.toString(), 10)].classList.contains('e-hiddenrow') || includAdd)) {\n if (this.isCollapseStateEnabled()) {\n dRows[parseInt(rows[parseInt(i.toString(), 10)].getAttribute('data-rowindex'), 10)] = rows[parseInt(i.toString(), 10)];\n }\n else {\n dRows.push(rows[parseInt(i.toString(), 10)]);\n }\n }\n }\n return dRows;\n };\n /**\n * Gets all the Grid's movable table data rows.\n *\n * @returns {Element[]} Returns the element\n */\n Grid.prototype.getMovableDataRows = function () {\n return this.getAllMovableDataRows();\n };\n /**\n * @param {boolean} includeAdd Defines the include add in boolean\n * @returns {Element[]} Returns the element\n * @hidden\n */\n Grid.prototype.getAllMovableDataRows = function (includeAdd) {\n if (!this.isFrozenGrid()) {\n return [];\n }\n var rows = [].slice.call(this.getContent().querySelector('.' + literals.movableContent).querySelector(literals.tbody).children);\n if (this.frozenRows) {\n var freezeRows = [].slice.call(this.getHeaderContent().querySelector('.' + literals.movableHeader).querySelector(literals.tbody).children);\n rows = this.addMovableRows(freezeRows, rows);\n }\n var dataRows = this.generateDataRows(rows, includeAdd);\n return dataRows;\n };\n /**\n * Gets all the Grid's frozen table data rows.\n *\n * @returns {Element[]} returns the element\n */\n Grid.prototype.getFrozenDataRows = function () {\n return this.getAllFrozenDataRows();\n };\n /**\n * @param {boolean} includeAdd Defines the include add in boolean\n * @returns {Element[]} Returns the element\n * @hidden\n */\n Grid.prototype.getAllFrozenDataRows = function (includeAdd) {\n var rows = [].slice.call(this.getContent().querySelector('.' + literals.frozenContent).querySelector(literals.tbody).children);\n if (this.frozenRows) {\n var freezeRows = [].slice.call(this.getHeaderContent().querySelector('.' + literals.frozenHeader).querySelector(literals.tbody).children);\n rows = this.addMovableRows(freezeRows, rows);\n }\n var dataRows = this.generateDataRows(rows, includeAdd);\n return dataRows;\n };\n /**\n * Gets all the Grid's frozen right table data rows.\n *\n * @returns {Element[]} Returns the Element\n */\n Grid.prototype.getFrozenRightDataRows = function () {\n return this.getAllFrozenRightDataRows();\n };\n /**\n * @param {boolean} includeAdd Defines the include add in boolean\n * @returns {Element[]} Returns the element\n * @hidden\n */\n Grid.prototype.getAllFrozenRightDataRows = function (includeAdd) {\n if (this.getFrozenMode() !== 'Right' && this.getFrozenMode() !== 'Left-Right') {\n return [];\n }\n var rows = [].slice.call(this.getContent().querySelector('.e-frozen-right-content').querySelector(literals.tbody).children);\n if (this.frozenRows) {\n var freezeRows = [].slice.call(this.getHeaderContent().querySelector('.e-frozen-right-header').querySelector(literals.tbody).children);\n rows = this.addMovableRows(freezeRows, rows);\n }\n var dataRows = this.generateDataRows(rows, includeAdd);\n return dataRows;\n };\n /**\n * Updates particular cell value based on the given primary key value.\n * > Primary key column must be specified using `columns.isPrimaryKey` property.\n *\n * @param {string| number} key - Specifies the PrimaryKey value of dataSource.\n * @param {string } field - Specifies the field name which you want to update.\n * @param {string | number | boolean | Date} value - To update new value for the particular cell.\n *\n * @returns {void}\n */\n Grid.prototype.setCellValue = function (key, field, value) {\n var cells = 'cells';\n var rowData = 'data';\n var rowIdx = 'index';\n var rowuID = 'uid';\n var isRight = this.getFrozenMode() === 'Right';\n var pkName = this.getPrimaryKeyFieldNames()[0];\n var cell = new CellRenderer(this, this.serviceLocator);\n var fieldIdx = this.getColumnIndexByField(field);\n var col = this.getColumnByField(field);\n var rowObjects = col.getFreezeTableName() === 'movable' ? this.contentModule.getMovableRows() :\n col.getFreezeTableName() === 'frozen-right' ? this.getFrozenRightRowsObject() : this.contentModule.getRows();\n var selectedRow = rowObjects.filter(function (r) {\n return getValue(pkName, r.data) === key;\n })[0];\n var tr = selectedRow ? this.element.querySelector('[data-uid=' + selectedRow[\"\" + rowuID] + ']') : null;\n if (!isNullOrUndefined(tr)) {\n if (typeof value === 'string') {\n value = this.sanitize(value);\n }\n setValue(field, value, selectedRow[\"\" + rowData]);\n var left = this.getFrozenLeftColumnsCount() || this.getFrozenColumns();\n var movable = this.getMovableColumnsCount();\n if (this.isRowDragable() && !isRight) {\n left++;\n }\n var frIdx = left + movable;\n var td = this.enableVirtualization ? tr.children[parseInt(fieldIdx.toString(), 10)]\n : this.getCellFromIndex(selectedRow[\"\" + rowIdx], fieldIdx);\n if (!isNullOrUndefined(td)) {\n var Idx = col.getFreezeTableName() === 'movable' ? left : col.getFreezeTableName() === 'frozen-right' ? frIdx : 0;\n if (this.groupSettings.columns.length) {\n fieldIdx = fieldIdx + this.groupSettings.columns.length;\n }\n if (this.childGrid || this.detailTemplate) {\n fieldIdx++;\n }\n if (this.isRowDragable() && !isRight) {\n fieldIdx++;\n }\n var sRow = selectedRow[\"\" + cells][fieldIdx - Idx];\n cell.refreshTD(td, sRow, selectedRow[\"\" + rowData], { index: selectedRow[\"\" + rowIdx] });\n if (this.isReact) {\n td = this.enableVirtualization ? tr.children[parseInt(fieldIdx.toString(), 10)]\n : this.getCellFromIndex(selectedRow[\"\" + rowIdx], fieldIdx);\n }\n if (this.aggregates.length > 0) {\n this.notify(events.refreshFooterRenderer, {});\n if (this.groupSettings.columns.length > 0) {\n this.notify(events.groupAggregates, {});\n }\n }\n /* tslint:disable:no-string-literal */\n if (!isNullOrUndefined(selectedRow) && !isNullOrUndefined(selectedRow['changes'])) {\n selectedRow['changes'][\"\" + field] = value;\n }\n /* tslint:disable:no-string-literal */\n this.trigger(events.queryCellInfo, {\n cell: td, column: col, data: selectedRow[\"\" + rowData]\n });\n }\n }\n else {\n return;\n }\n };\n /**\n * @param {string} columnUid - Defines column uid\n * @param {boolean} renderTemplates - Defines renderTemplates need to invoke\n * @returns {void}\n * @hidden\n */\n Grid.prototype.refreshReactColumnTemplateByUid = function (columnUid, renderTemplates) {\n var _this = this;\n if (this.isReact) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.clearTemplate(['columnTemplate'], undefined, function () {\n var isChildGrid = _this.childGrid && _this.element.querySelectorAll('.e-childgrid').length ? true : false;\n var rows = isChildGrid ? _this.getContentTable().querySelectorAll('.e-row') :\n _this.getDataRows();\n _this.refreshReactTemplateTD(rows, isChildGrid);\n var mCont = _this.getContent().querySelector('.' + literals.movableContent);\n var frCont = _this.getContent().querySelector('.e-frozen-right-content');\n if (mCont && mCont.querySelectorAll('.e-templatecell').length) {\n _this.refreshReactTemplateTD(_this.getMovableDataRows(), isChildGrid, true);\n }\n if (frCont && frCont.querySelectorAll('.e-templatecell').length) {\n _this.refreshReactTemplateTD(_this.getFrozenRightDataRows(), isChildGrid, true);\n }\n if (renderTemplates) {\n _this.renderTemplates();\n }\n });\n }\n };\n /**\n * @param {Element[] | NodeListOf} rows - Defines the rows\n * @param {boolean} isChildGrid - Defines whether it is a Hierarchy Grid.\n * @param {boolean} isFrozen - Defines whether it is a Frozen Grid\n * @returns {void}\n * @hidden\n */\n Grid.prototype.refreshReactTemplateTD = function (rows, isChildGrid, isFrozen) {\n var cells = 'cells';\n var rowIdx = 'index';\n var indent = this.getIndentCount();\n var childIndent = 0;\n var isChildRow = false;\n for (var j = 0; j < rows.length; j++) {\n var rowsObj = this.getRowObjectFromUID(rows[parseInt(j.toString(), 10)].getAttribute('data-uid'));\n if (isChildGrid && !rowsObj && parentsUntil(rows[parseInt(j.toString(), 10)], 'e-childgrid')) {\n var gridObj = parentsUntil(rows[parseInt(j.toString(), 10)], 'e-childgrid').ej2_instances[0];\n rowsObj = gridObj.getRowObjectFromUID(rows[parseInt(j.toString(), 10)].getAttribute('data-uid'));\n childIndent = gridObj.getIndentCount();\n isChildRow = true;\n }\n if (rowsObj && rowsObj.isDataRow && !isNullOrUndefined(rowsObj.index) &&\n !rows[parseInt(j.toString(), 10)].classList.contains('e-editedrow')) {\n for (var i = 0; i < rowsObj[\"\" + cells].length; i++) {\n var cell = rowsObj[\"\" + cells][parseInt(i.toString(), 10)];\n if (cell.isTemplate) {\n var cellRenderer = new CellRenderer(this, this.serviceLocator);\n var td = isChildGrid ? rows[parseInt(j.toString(), 10)]\n .children[cell.index + (isChildRow ? childIndent : indent)] : this.getCellFromIndex(j, isFrozen ? cell.index : i - indent);\n cellRenderer.refreshTD(td, cell, rowsObj.data, { index: rowsObj[\"\" + rowIdx] });\n }\n }\n }\n isChildRow = false;\n }\n };\n /**\n * @returns {void}\n * @hidden\n */\n Grid.prototype.refreshGroupCaptionFooterTemplate = function () {\n var isChildGrid = this.childGrid && this.element.querySelectorAll('.e-childgrid').length ? true : false;\n var rows = this.getContentTable().querySelectorAll('.e-groupcaptionrow, .e-groupfooterrow');\n for (var i = 0; i < rows.length; i++) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var gridObj = this;\n var rowsObj = this.getRowObjectFromUID(rows[parseInt(i.toString(), 10)].getAttribute('data-uid'));\n if (isChildGrid && !rowsObj && parentsUntil(rows[parseInt(i.toString(), 10)], 'e-childgrid')) {\n gridObj = parentsUntil(rows[parseInt(i.toString(), 10)], 'e-childgrid').ej2_instances[0];\n rowsObj = gridObj.getRowObjectFromUID(rows[parseInt(i.toString(), 10)].getAttribute('data-uid'));\n }\n if (rowsObj) {\n var cells = rowsObj.cells.filter(function (cell) { return cell.isDataCell; });\n var args = { cells: cells, data: rowsObj.data, dataUid: rowsObj.uid };\n gridObj.notify(events.refreshAggregateCell, args);\n }\n }\n };\n /**\n * @param {string} columnUid - Defines column uid\n * @returns {void}\n * @hidden\n */\n Grid.prototype.refreshReactHeaderTemplateByUid = function (columnUid) {\n if (this.isReact) {\n var cells = 'cells';\n var rowsObj = this.headerModule.rows;\n var cellIndex = this.getNormalizedColumnIndex(columnUid);\n for (var j = 0; j < rowsObj.length; j++) {\n var cell = rowsObj[parseInt(j.toString(), 10)][\"\" + cells][parseInt(cellIndex.toString(), 10)];\n if (cell && cell.column.uid === columnUid) {\n var headerCellRenderer = new HeaderCellRenderer(this, this.serviceLocator);\n var td = parentsUntil(this.element.querySelectorAll('[e-mappinguid=' + columnUid + ']')[0], 'e-templatecell');\n headerCellRenderer.refresh(cell, td);\n }\n }\n }\n };\n /**\n * Updates and refresh the particular row values based on the given primary key value.\n * > Primary key column must be specified using `columns.isPrimaryKey` property.\n *\n * @param {string| number} key - Specifies the PrimaryKey value of dataSource.\n * @param {Object} rowData - To update new data for the particular row.\n *\n * @returns {void}\n */\n Grid.prototype.setRowData = function (key, rowData) {\n var rowuID = 'uid';\n var rowObjects = this.contentModule.getRows();\n var pkName = this.getPrimaryKeyFieldNames()[0];\n if (this.groupSettings.columns.length > 0 && this.aggregates.length > 0) {\n rowObjects = rowObjects.filter(function (row) { return row.isDataRow; });\n }\n var selectedRow = rowObjects.filter(function (r) {\n return getValue(pkName, r.data) === key;\n })[0];\n var selectRowEle = selectedRow ? [].slice.call(this.element.querySelectorAll('[data-uid=' + selectedRow[\"\" + rowuID] + ']')) : undefined;\n if (!isNullOrUndefined(selectedRow) && selectRowEle.length) {\n selectedRow.changes = rowData;\n if (this.isFrozenGrid()) {\n var currentTbl = parentsUntil(selectRowEle[0], 'e-table');\n var currentTblName = currentTbl.parentElement.matches('.e-frozen-left-header,.e-frozen-left-content') ? 'left'\n : currentTbl.parentElement.matches('.e-frozen-right-header,.e-frozen-right-content') ? 'right' : 'movable';\n var mTr = this.getMovableRowsObject()[selectedRow.index];\n this.setFrozenRowData(mTr, rowData);\n if (currentTblName === 'left') {\n var lTr = this.getRowsObject()[selectedRow.index];\n this.setFrozenRowData(lTr, rowData);\n }\n if (currentTblName === 'right' || this.frozenRightColumns.length > 0) {\n var rTr = this.getFrozenRightRowsObject()[selectedRow.index];\n this.setFrozenRowData(rTr, rowData);\n }\n }\n else if (this.frozenRows) {\n var fRowTr = this.getRowsObject()[selectedRow.index];\n this.setFrozenRowData(fRowTr, rowData);\n }\n else {\n this.setFrozenRowData(selectedRow, rowData);\n }\n if (this.aggregates.length > 0) {\n this.notify(events.refreshFooterRenderer, {});\n if (this.groupSettings.columns.length > 0) {\n this.notify(events.groupAggregates, {});\n }\n }\n }\n else {\n return;\n }\n };\n Grid.prototype.setFrozenRowData = function (fTr, rowData) {\n var rowRenderer = new RowRenderer(this.serviceLocator, null, this);\n fTr.changes = rowData;\n refreshForeignData(fTr, this.getForeignKeyColumns(), fTr.changes);\n rowRenderer.refresh(fTr, this.getColumns(), true);\n };\n /**\n * Gets a cell by row and column index.\n *\n * @param {number} rowIndex - Specifies the row index.\n * @param {number} columnIndex - Specifies the column index.\n *\n * @returns {Element} Returns the Element\n */\n Grid.prototype.getCellFromIndex = function (rowIndex, columnIndex) {\n var col = this.getColumnByIndex(columnIndex);\n return getCellByColAndRowIndex(this, col, rowIndex, columnIndex);\n };\n /**\n * Gets a movable table cell by row and column index.\n *\n * @param {number} rowIndex - Specifies the row index.\n * @param {number} columnIndex - Specifies the column index.\n *\n * @returns {Element} Returns the Element\n */\n Grid.prototype.getMovableCellFromIndex = function (rowIndex, columnIndex) {\n if (this.frozenName === 'Left-Right' && columnIndex >= this.movableCount) {\n return undefined;\n }\n var index = this.getFrozenColumns() || this.getFrozenLeftColumnsCount();\n return this.getMovableDataRows()[parseInt(rowIndex.toString(), 10)] &&\n this.getMovableDataRows()[parseInt(rowIndex.toString(), 10)].getElementsByClassName(literals.rowCell)[columnIndex - index];\n };\n /**\n * Gets a frozen right table cell by row and column index.\n *\n * @param {number} rowIndex - Specifies the row index.\n * @param {number} columnIndex - Specifies the column index.\n * @returns {Element} Returns the Element\n */\n Grid.prototype.getFrozenRightCellFromIndex = function (rowIndex, columnIndex) {\n var index = this.getFrozenLeftColumnsCount() + this.getMovableColumnsCount();\n var rows = this.getFrozenRightDataRows();\n return rows[parseInt(rowIndex.toString(), 10)] && rows[parseInt(rowIndex.toString(), 10)]\n .getElementsByClassName(literals.rowCell)[columnIndex - index];\n };\n /**\n * Gets a column header by column index.\n *\n * @param {number} index - Specifies the column index.\n *\n * @returns {Element} Returns the Element\n */\n Grid.prototype.getColumnHeaderByIndex = function (index) {\n return this.getHeaderTable().getElementsByClassName('e-headercell')[parseInt(index.toString(), 10)];\n };\n /**\n * Gets a movable column header by column index.\n *\n * @param {number} index - Specifies the column index.\n * @returns {Element} Returns the Element\n */\n Grid.prototype.getMovableColumnHeaderByIndex = function (index) {\n var left = this.getFrozenColumns() || this.getFrozenLeftColumnsCount();\n return this.getMovableVirtualHeader().getElementsByClassName('e-headercell')[index - left];\n };\n /**\n * Gets a frozen right column header by column index.\n *\n * @param {number} index - Specifies the column index.\n * @returns {Element} Returns the Element\n */\n Grid.prototype.getFrozenRightColumnHeaderByIndex = function (index) {\n var left = this.getFrozenLeftColumnsCount() + this.getMovableColumnsCount();\n return this.getFrozenRightHeader().getElementsByClassName('e-headercell')[index - left];\n };\n /**\n * Gets a frozen left column header by column index.\n *\n * @param {number} index - Specifies the column index.\n * @returns {Element} Returns the Element\n */\n Grid.prototype.getFrozenLeftColumnHeaderByIndex = function (index) {\n return this.getFrozenVirtualHeader().getElementsByClassName('e-headercell')[parseInt(index.toString(), 10)];\n };\n /**\n * @param {string} uid - Defines the uid\n * @param {boolean} isMovable - Defines isMovable\n * @param {boolean} isFrozenRight - Defines isFrozenRight\n * @returns {Row} Returns the row object\n * @hidden\n */\n Grid.prototype.getRowObjectFromUID = function (uid, isMovable, isFrozenRight) {\n var rows = this.contentModule.getRows();\n var row = this.rowObject(rows, uid);\n if (this.isFrozenGrid()) {\n if (!row || isMovable || isFrozenRight) {\n row = this.rowObject(this.contentModule.getMovableRows(), uid);\n if ((!row && this.getFrozenMode() === 'Left-Right') || isFrozenRight) {\n row = this.rowObject(this.contentModule.getFrozenRightRows(), uid);\n }\n return row;\n }\n }\n if (isNullOrUndefined(row) && this.enableVirtualization && this.groupSettings.columns.length > 0) {\n row = this.rowObject(this.vRows, uid);\n return row;\n }\n return row;\n };\n Grid.prototype.rowObject = function (rows, uid) {\n if (rows) {\n for (var _i = 0, rows_1 = rows; _i < rows_1.length; _i++) {\n var row = rows_1[_i];\n if (row.uid === uid) {\n return row;\n }\n }\n }\n return null;\n };\n /**\n * @hidden\n * @returns {Row[]} Returns the Row object\n */\n Grid.prototype.getRowsObject = function () {\n return this.contentModule.getRows();\n };\n /**\n * @hidden\n * @returns {Row[]} Returns the Row object\n */\n Grid.prototype.getMovableRowsObject = function () {\n var rows = [];\n if (this.isFrozenGrid()) {\n rows = this.contentModule.getMovableRows();\n }\n return rows;\n };\n /**\n * @hidden\n * @returns {Row[]} Returns the Row object\n */\n Grid.prototype.getFrozenRightRowsObject = function () {\n var rows = [];\n if (this.getFrozenMode() === 'Right' || this.getFrozenMode() === 'Left-Right') {\n rows = this.contentModule.getFrozenRightRows();\n }\n return rows;\n };\n /**\n * Gets a column header by column name.\n *\n * @param {string} field - Specifies the column name.\n *\n * @returns {Element} - Returns the element\n */\n Grid.prototype.getColumnHeaderByField = function (field) {\n var column = this.getColumnByField(field);\n return column ? this.getColumnHeaderByUid(column.uid) : undefined;\n };\n /**\n * Gets a column header by UID.\n *\n * @param {string} uid - Specifies the column uid.\n *\n * @returns {Element} - Returns the element\n */\n Grid.prototype.getColumnHeaderByUid = function (uid) {\n var element = this.getHeaderContent().querySelector('[e-mappinguid=' + uid + ']');\n return element ? element.parentElement : undefined;\n };\n /**\n * @hidden\n * @param {number} index - Defines the index\n * @returns {Column} Returns the column\n */\n Grid.prototype.getColumnByIndex = function (index) {\n var column;\n this.getColumns().some(function (col, i) {\n column = col;\n return i === index;\n });\n return column;\n };\n /**\n * Gets a Column by column name.\n *\n * @param {string} field - Specifies the column name.\n *\n * @returns {Column} Returns the column\n */\n Grid.prototype.getColumnByField = function (field) {\n return iterateArrayOrObject(this.getColumns(), function (item) {\n if (item.field === field) {\n return item;\n }\n return undefined;\n })[0];\n };\n /**\n * Gets a column index by column name.\n *\n * @param {string} field - Specifies the column name.\n *\n * @returns {number} Returns the index by field\n */\n Grid.prototype.getColumnIndexByField = function (field) {\n var cols = this.getColumns();\n for (var i = 0; i < cols.length; i++) {\n if (cols[parseInt(i.toString(), 10)].field === field) {\n return i;\n }\n }\n return -1;\n };\n /**\n * Gets a column by UID.\n *\n * @param {string} uid - Specifies the column UID.\n *\n * @returns {Column} Returns the column\n */\n Grid.prototype.getColumnByUid = function (uid) {\n return iterateArrayOrObject(this.getColumns().concat(this.getStackedColumns(this.columns)), function (item) {\n if (item.uid === uid) {\n return item;\n }\n return undefined;\n })[0];\n };\n /**\n * @param {Column[]} columns - Defines the columns\n * @param {Column[]} stackedColumn - Defines the stacked columns\n * @returns {Column[]} Returns the columns\n * @hidden\n */\n Grid.prototype.getStackedColumns = function (columns, stackedColumn) {\n if (stackedColumn === void 0) { stackedColumn = []; }\n for (var _i = 0, columns_1 = columns; _i < columns_1.length; _i++) {\n var column = columns_1[_i];\n if (column.columns) {\n stackedColumn.push(column);\n this.getStackedColumns(column.columns, stackedColumn);\n }\n }\n return stackedColumn;\n };\n /**\n * Gets a column index by UID.\n *\n * @param {string} uid - Specifies the column UID.\n *\n * @returns {number} Returns the column by index\n */\n Grid.prototype.getColumnIndexByUid = function (uid) {\n var index = iterateArrayOrObject(this.getColumns(), function (item, index) {\n if (item.uid === uid) {\n return index;\n }\n return undefined;\n })[0];\n return !isNullOrUndefined(index) ? index : -1;\n };\n /**\n * Gets UID by column name.\n *\n * @param {string} field - Specifies the column name.\n *\n * @returns {string} Returns the column by field\n */\n Grid.prototype.getUidByColumnField = function (field) {\n return iterateArrayOrObject(this.getColumns(), function (item) {\n if (item.field === field) {\n return item.uid;\n }\n return undefined;\n })[0];\n };\n /**\n * Gets column index by column uid value.\n *\n * @private\n * @param {string} uid - Specifies the column uid.\n * @returns {number} Returns the column by field\n */\n Grid.prototype.getNormalizedColumnIndex = function (uid) {\n var index = this.getColumnIndexByUid(uid);\n return index + this.getIndentCount();\n };\n /**\n * Gets indent cell count.\n *\n * @private\n * @returns {number} Returns the indent count\n */\n Grid.prototype.getIndentCount = function () {\n var index = 0;\n if (this.allowGrouping) {\n index += this.groupSettings.columns.length;\n }\n if (this.isDetail()) {\n index++;\n }\n if (this.isRowDragable() && isNullOrUndefined(this.rowDropSettings.targetID)) {\n index++;\n }\n /**\n * TODO: index normalization based on the stacked header, grouping and detailTemplate\n * and frozen should be handled here\n */\n return index;\n };\n /**\n * Gets the collection of column fields.\n *\n * @returns {string[]} Returns the Field names\n */\n Grid.prototype.getColumnFieldNames = function () {\n var columnNames = [];\n var column;\n for (var i = 0, len = this.getColumns().length; i < len; i++) {\n column = this.getColumns()[parseInt(i.toString(), 10)];\n if (column.visible) {\n columnNames.push(column.field);\n }\n }\n return columnNames;\n };\n /**\n * Gets a compiled row template.\n *\n * @returns {Function} Returns the row TEmplate\n * @private\n */\n Grid.prototype.getRowTemplate = function () {\n return this.rowTemplateFn;\n };\n /**\n * Gets a compiled detail row template.\n *\n * @private\n * @returns {Function} Returns the Detail template\n */\n Grid.prototype.getDetailTemplate = function () {\n return this.detailTemplateFn;\n };\n /**\n * Gets a compiled detail row template.\n *\n * @private\n * @returns {Function}Returns the Edit template\n */\n Grid.prototype.getEditTemplate = function () {\n return this.editTemplateFn;\n };\n /**\n * Gets a compiled dialog edit header template.\n *\n * @private\n * @returns {Function} returns template function\n */\n Grid.prototype.getEditHeaderTemplate = function () {\n return this.editHeaderTemplateFn;\n };\n /**\n * Gets a compiled dialog edit footer template.\n *\n * @private\n * @returns {Function} Returns the Footer template\n */\n Grid.prototype.getEditFooterTemplate = function () {\n return this.editFooterTemplateFn;\n };\n /**\n * Get the names of the primary key columns of the Grid.\n *\n * @returns {string[]} Returns the field names\n */\n Grid.prototype.getPrimaryKeyFieldNames = function () {\n var keys = [];\n for (var k = 0; k < this.columnModel.length; k++) {\n if (this.columnModel[parseInt(k.toString(), 10)].isPrimaryKey) {\n keys.push(this.columnModel[parseInt(k.toString(), 10)].field);\n }\n }\n return keys;\n };\n /**\n * Refreshes the Grid header and content.\n *\n * @returns {void}\n */\n Grid.prototype.refresh = function () {\n if (!this.isDestroyed) {\n this.isManualRefresh = true;\n this.headerModule.refreshUI();\n this.updateStackedFilter();\n this.renderModule.refresh();\n }\n };\n /**\n * Refreshes the Grid header.\n *\n * @returns {void}\n */\n Grid.prototype.refreshHeader = function () {\n this.headerModule.refreshUI();\n };\n /**\n * Gets the collection of selected rows.\n *\n * @returns {Element[]} Returns the element\n */\n Grid.prototype.getSelectedRows = function () {\n return this.selectionModule ? this.selectionModule.selectedRecords : [];\n };\n /**\n * Gets the collection of selected row indexes.\n *\n * @returns {number[]} Returns the Selected row indexes\n */\n Grid.prototype.getSelectedRowIndexes = function () {\n return this.selectionModule ? this.selectionModule.selectedRowIndexes : [];\n };\n /**\n * Gets the collection of selected row and cell indexes.\n *\n * @returns {number[]} Returns the Selected row cell indexes\n */\n Grid.prototype.getSelectedRowCellIndexes = function () {\n return this.selectionModule ? this.selectionModule.selectedRowCellIndexes : [];\n };\n /**\n * Gets the collection of selected records.\n *\n * @returns {Object[]} Returns the selected records\n * @isGenericType true\n */\n Grid.prototype.getSelectedRecords = function () {\n return this.selectionModule ? this.selectionModule.getSelectedRecords() : [];\n };\n /**\n * Gets the collection of selected columns uid.\n *\n * @returns {string[]} Returns the selected column uid\n * @isGenericType true\n */\n Grid.prototype.getSelectedColumnsUid = function () {\n var _this = this;\n var uid = [];\n if (this.selectionModule) {\n this.selectionModule.selectedColumnsIndexes.filter(function (i) { return uid.push(_this.getColumns()[parseInt(i.toString(), 10)].uid); });\n }\n return uid;\n };\n /**\n * Gets the data module.\n *\n * @returns {Data} Returns the data\n */\n Grid.prototype.getDataModule = function () {\n return this.renderModule.data;\n };\n /**\n * Shows a column by its column name.\n *\n * @param {string|string[]} keys - Defines a single or collection of column names.\n * @param {string} showBy - Defines the column key either as field name or header text.\n *\n * @returns {void}\n */\n Grid.prototype.showColumns = function (keys, showBy) {\n showBy = showBy ? showBy : 'headerText';\n this.showHider.show(keys, showBy);\n };\n /**\n * Hides a column by column name.\n *\n * @param {string|string[]} keys - Defines a single or collection of column names.\n * @param {string} hideBy - Defines the column key either as field name or header text.\n *\n * @returns {void}\n */\n Grid.prototype.hideColumns = function (keys, hideBy) {\n hideBy = hideBy ? hideBy : 'headerText';\n this.showHider.hide(keys, hideBy);\n };\n /**\n * @hidden\n * @returns {number} Returns the Frozen column\n */\n Grid.prototype.getFrozenColumns = function () {\n return this.frozenColumns + this.getFrozenCount(this.columns, 0, 0);\n };\n /**\n * @hidden\n * @returns {number} Returns the Frozen Right column count\n */\n Grid.prototype.getFrozenRightColumnsCount = function () {\n return this.frozenRightCount;\n };\n /**\n * @hidden\n * @returns {number} Returns the Frozen Left column\n */\n Grid.prototype.getFrozenLeftColumnsCount = function () {\n return this.frozenLeftCount;\n };\n /**\n * @hidden\n * @returns {number} Returns the movable column count\n */\n Grid.prototype.getMovableColumnsCount = function () {\n return this.movableCount;\n };\n /**\n * @hidden\n * @returns {void}\n */\n Grid.prototype.setFrozenCount = function () {\n this.frozenLeftCount = this.frozenRightCount = this.movableCount = 0;\n this.visibleFrozenLeft = this.visibleFrozenRight = this.visibleMovable = 0;\n this.frozenLeftColumns = [];\n this.frozenRightColumns = [];\n this.movableColumns = [];\n this.splitFrozenCount(this.columns);\n if (this.frozenColumns && (this.frozenLeftCount || this.frozenRightCount)) {\n this.setProperties({ frozenColumns: 0 }, true);\n }\n this.setTablesCount();\n if (this.frozenLeftCount && !this.frozenRightCount) {\n this.frozenName = 'Left';\n }\n else if (this.frozenRightCount && !this.frozenLeftCount) {\n this.frozenName = 'Right';\n }\n else if (this.frozenLeftCount && this.frozenRightCount) {\n this.frozenName = 'Left-Right';\n }\n else if (this.frozenColumns || this.frozenRows) {\n this.frozenName = 'Left';\n }\n else {\n this.frozenName = undefined;\n }\n };\n /**\n * @hidden\n * @returns {number} Returns the visible Frozen left count\n */\n Grid.prototype.getVisibleFrozenLeftCount = function () {\n return this.visibleFrozenLeft;\n };\n /**\n * @hidden\n * @returns {number} Returns the visible Frozen Right count\n */\n Grid.prototype.getVisibleFrozenRightCount = function () {\n return this.visibleFrozenRight;\n };\n /**\n * @hidden\n * @returns {number} Returns the visible movable count\n */\n Grid.prototype.getVisibleMovableCount = function () {\n return this.visibleMovable;\n };\n /**\n * @hidden\n * @returns {Column[]} Returns the column\n */\n Grid.prototype.getFrozenRightColumns = function () {\n return this.frozenRightColumns;\n };\n /**\n * @hidden\n * @returns {Column[]} Returns the column\n */\n Grid.prototype.getFrozenLeftColumns = function () {\n return this.frozenLeftColumns;\n };\n /**\n * @hidden\n * @returns {Column[]} Returns the column\n */\n Grid.prototype.getMovableColumns = function () {\n return this.movableColumns;\n };\n Grid.prototype.splitFrozenCount = function (columns) {\n for (var i = 0; i < columns.length; i++) {\n if (columns[parseInt(i.toString(), 10)].columns) {\n this.splitFrozenCount(columns[parseInt(i.toString(), 10)].columns);\n }\n else {\n if (columns[parseInt(i.toString(), 10)].freeze === 'Right') {\n if (columns[parseInt(i.toString(), 10)].visible !== false) {\n this.visibleFrozenRight++;\n }\n this.frozenRightColumns.push(columns[parseInt(i.toString(), 10)]);\n this.frozenRightCount++;\n }\n else if (columns[parseInt(i.toString(), 10)].freeze === 'Left') {\n if (columns[parseInt(i.toString(), 10)].visible !== false) {\n this.visibleFrozenLeft++;\n }\n this.frozenLeftColumns.push(columns[parseInt(i.toString(), 10)]);\n this.frozenLeftCount++;\n }\n else {\n if (columns[parseInt(i.toString(), 10)].visible !== false) {\n this.visibleMovable++;\n }\n this.movableColumns.push(columns[parseInt(i.toString(), 10)]);\n this.movableCount++;\n }\n }\n }\n };\n /**\n * @hidden\n * @returns {number} Returns the visible frozen columns count\n */\n Grid.prototype.getVisibleFrozenColumns = function () {\n return this.getVisibleFrozenColumnsCount() + this.getVisibleFrozenCount(this.columns, 0);\n };\n /**\n * Get the current Filter operator and field.\n *\n * @returns {FilterUI} Returns the filter UI\n */\n Grid.prototype.getFilterUIInfo = function () {\n return this.filterModule ? this.filterModule.getFilterUIInfo() : {};\n };\n Grid.prototype.getVisibleFrozenColumnsCount = function () {\n var visibleFrozenColumns = 0;\n var columns = this.columnModel;\n for (var i = 0; i < this.frozenColumns; i++) {\n if (columns[parseInt(i.toString(), 10)].visible) {\n visibleFrozenColumns++;\n }\n }\n if (this.frozenLeftCount || this.frozenRightCount) {\n for (var i = 0; i < columns.length; i++) {\n if (columns[parseInt(i.toString(), 10)].visible && (columns[parseInt(i.toString(), 10)].freeze === 'Left'\n || columns[parseInt(i.toString(), 10)].freeze === 'Right')) {\n visibleFrozenColumns++;\n }\n }\n }\n return visibleFrozenColumns;\n };\n Grid.prototype.getVisibleFrozenCount = function (cols, cnt) {\n if (!this.frozenLeftCount && !this.frozenRightCount) {\n for (var i = 0, len = cols.length; i < len; i++) {\n if (cols[parseInt(i.toString(), 10)].columns) {\n cnt = this.getVisibleFrozenCount(cols[parseInt(i.toString(), 10)].columns, cnt);\n }\n else {\n if (cols[parseInt(i.toString(), 10)].isFrozen && cols[parseInt(i.toString(), 10)].visible) {\n cnt++;\n }\n }\n }\n }\n return cnt;\n };\n Grid.prototype.getFrozenCount = function (cols, cnt, index) {\n for (var i = 0, len = cols.length; i < len; i++) {\n if (cols[parseInt(i.toString(), 10)].columns) {\n cnt = this.getFrozenCount(cols[parseInt(i.toString(), 10)].columns, cnt, index);\n }\n else {\n if (cols[parseInt(i.toString(), 10)].isFrozen && index > this.frozenColumns - 1) {\n cnt++;\n }\n index++;\n }\n }\n return cnt;\n };\n /**\n * Navigates to the specified target page.\n *\n * @param {number} pageNo - Defines the page number to navigate.\n *\n * @returns {void}\n */\n Grid.prototype.goToPage = function (pageNo) {\n if (this.pagerModule) {\n this.pagerModule.goToPage(pageNo);\n }\n };\n /**\n * Defines the text of external message.\n *\n * @param {string} message - Defines the message to update.\n *\n * @returns {void}\n */\n Grid.prototype.updateExternalMessage = function (message) {\n if (this.pagerModule) {\n this.pagerModule.updateExternalMessage(message);\n }\n };\n /**\n * Sorts a column with the given options.\n *\n * @param {string} columnName - Defines the column name to be sorted.\n * @param {SortDirection} direction - Defines the direction of sorting field.\n * @param {boolean} isMultiSort - Specifies whether the previous sorted columns are to be maintained.\n *\n * @returns {void}\n */\n Grid.prototype.sortColumn = function (columnName, direction, isMultiSort) {\n if (this.sortModule) {\n this.sortModule.sortColumn(columnName, direction, isMultiSort);\n }\n };\n /**\n * Remove the existing columns along with the grid actions like sorting, filtering, searching, grouping, aggregate, etc., and grid will refresh with new columns based on the updated new data source.\n * > * If no columns are specified while changing the data source, then the columns are auto generated in the Grid based on the list of columns in the updated data source.\n *\n * @param {Object | DataManager | DataResult} dataSource - Assign the new datasource.\n * @param {Column[] | string[] | ColumnModel[]} columns - Defines columns.\n * @returns {void}\n *\n *\n * ```typescript\n * \n *
    \n * \n * ```\n *\n */\n Grid.prototype.changeDataSource = function (dataSource, columns) {\n this.setProperties({ sortSettings: { columns: [] } }, true);\n this.setProperties({ filterSettings: { columns: [] } }, true);\n this.setProperties({ searchSettings: { key: '' } }, true);\n if (this.allowGrouping) {\n this.setProperties({ groupSettings: { columns: [] } }, true);\n }\n if (columns && columns.length) {\n this.setProperties({ columns: columns }, true);\n }\n if (dataSource) {\n if (isNullOrUndefined(columns)) {\n this.setProperties({ columns: [] }, true);\n }\n this.setProperties({ dataSource: dataSource }, true);\n }\n this.freezeRefresh();\n };\n /**\n * Clears all the sorted columns of the Grid.\n *\n * @returns {void}\n */\n Grid.prototype.clearSorting = function () {\n if (this.sortModule) {\n this.sortModule.clearSorting();\n }\n };\n /**\n * Remove sorted column by field name.\n *\n * @param {string} field - Defines the column field name to remove sort.\n * @returns {void}\n * @hidden\n */\n Grid.prototype.removeSortColumn = function (field) {\n if (this.sortModule) {\n this.sortModule.removeSortColumn(field);\n }\n };\n /**\n * @hidden\n * @returns {void}\n */\n Grid.prototype.clearGridActions = function () {\n this.setProperties({ sortSettings: { columns: [] } }, true);\n this.setProperties({ filterSettings: { columns: [] } }, true);\n this.setProperties({ searchSettings: { key: '' } }, true);\n if (this.allowGrouping) {\n this.setProperties({ groupSettings: { columns: [] } }, false);\n }\n else {\n this.freezeRefresh();\n }\n };\n /**\n * Filters grid row by column name with the given options.\n *\n * @param {string} fieldName - Defines the field name of the column.\n * @param {string} filterOperator - Defines the operator to filter records.\n * @param {string | number | Date | boolean} filterValue - Defines the value used to filter records.\n * @param {string} predicate - Defines the relationship between one filter query and another by using AND or OR predicate.\n * @param {boolean} matchCase - If match case is set to true, the grid filters the records with exact match. if false, it filters case\n * insensitive records (uppercase and lowercase letters treated the same).\n * @param {boolean} ignoreAccent - If ignoreAccent set to true,\n * then filter ignores the diacritic characters or accents while filtering.\n * @param {string} actualFilterValue - Defines the actual filter value for the filter column.\n * @param {string} actualOperator - Defines the actual filter operator for the filter column.\n *\n * @returns {void}\n */\n Grid.prototype.filterByColumn = function (fieldName, filterOperator, filterValue, predicate, matchCase, ignoreAccent, actualFilterValue, actualOperator) {\n if (this.filterModule) {\n this.filterModule.filterByColumn(fieldName, filterOperator, filterValue, predicate, matchCase, ignoreAccent, actualFilterValue, actualOperator);\n }\n };\n /**\n * Clears all the filtered rows of the Grid.\n *\n * @param {string[]} fields - Defines the Fields\n * @returns {void}\n */\n Grid.prototype.clearFiltering = function (fields) {\n if (this.filterModule) {\n this.filterModule.clearFiltering(fields);\n }\n };\n /**\n * Removes filtered column by field name.\n *\n * @param {string} field - Defines column field name to remove filter.\n * @param {boolean} isClearFilterBar - Specifies whether the filter bar value needs to be cleared.\n * @returns {void}\n * @hidden\n */\n Grid.prototype.removeFilteredColsByField = function (field, isClearFilterBar) {\n if (this.filterModule) {\n this.filterModule.removeFilteredColsByField(field, isClearFilterBar);\n }\n };\n /**\n * Selects a row by given index.\n *\n * @param {number} index - Defines the row index.\n * @param {boolean} isToggle - If set to true, then it toggles the selection.\n *\n * @returns {void}\n */\n Grid.prototype.selectRow = function (index, isToggle) {\n if (this.selectionModule) {\n this.selectionModule.selectRow(index, isToggle);\n }\n };\n /**\n * Selects a collection of rows by indexes.\n *\n * @param {number[]} rowIndexes - Specifies the row indexes.\n *\n * @returns {void}\n */\n Grid.prototype.selectRows = function (rowIndexes) {\n if (this.selectionModule) {\n this.selectionModule.selectRows(rowIndexes);\n }\n };\n /**\n * Deselects the current selected rows and cells.\n *\n * @returns {void}\n */\n Grid.prototype.clearSelection = function () {\n if (this.selectionModule) {\n this.selectionModule.clearSelection();\n }\n };\n /**\n * Selects a cell by the given index.\n *\n * @param {IIndex} cellIndex - Defines the row and column indexes.\n * @param {boolean} isToggle - If set to true, then it toggles the selection.\n *\n * @returns {void}\n */\n Grid.prototype.selectCell = function (cellIndex, isToggle) {\n if (this.selectionModule) {\n this.selectionModule.selectCell(cellIndex, isToggle);\n }\n };\n /**\n * Selects a range of cells from start and end indexes.\n *\n * @param {IIndex} startIndex - Specifies the row and column's start index.\n * @param {IIndex} endIndex - Specifies the row and column's end index.\n *\n * @returns {void}\n */\n Grid.prototype.selectCellsByRange = function (startIndex, endIndex) {\n this.selectionModule.selectCellsByRange(startIndex, endIndex);\n };\n /**\n * Searches Grid records using the given key.\n * You can customize the default search option by using the\n * [`searchSettings`](./#searchsettings/).\n *\n * @param {string} searchString - Defines the key.\n *\n * @returns {void}\n */\n Grid.prototype.search = function (searchString) {\n if (this.searchModule) {\n this.searchModule.search(searchString);\n }\n };\n /**\n * By default, prints all the pages of the Grid and hides the pager.\n * > You can customize print options using the\n * [`printMode`](./#printmode).\n *\n * @returns {void}\n */\n Grid.prototype.print = function () {\n if (this.printModule) {\n this.printModule.print();\n }\n };\n /**\n * Delete a record with Given options. If fieldname and data is not given then grid will delete the selected record.\n * > `editSettings.allowDeleting` should be true.\n *\n * @param {string} fieldname - Defines the primary key field, 'Name of the column'.\n * @param {Object} data - Defines the JSON data of the record to be deleted.\n * @returns {void}\n */\n Grid.prototype.deleteRecord = function (fieldname, data) {\n if (this.editModule) {\n this.editModule.deleteRecord(fieldname, data);\n }\n };\n /**\n * Starts edit the selected row. At least one row must be selected before invoking this method.\n * `editSettings.allowEditing` should be true.\n * {% codeBlock src='grid/startEdit/index.md' %}{% endcodeBlock %}\n *\n * @returns {void}\n */\n Grid.prototype.startEdit = function () {\n if (this.editModule) {\n this.editModule.startEdit();\n }\n };\n /**\n * If Grid is in editable state, you can save a record by invoking endEdit.\n *\n * @returns {void}\n */\n Grid.prototype.endEdit = function () {\n if (this.editModule) {\n this.editModule.endEdit();\n }\n };\n /**\n * Cancels edited state.\n *\n * @returns {void}\n */\n Grid.prototype.closeEdit = function () {\n if (this.editModule) {\n this.editModule.closeEdit();\n }\n };\n /**\n * Adds a new record to the Grid. Without passing parameters, it adds empty rows.\n * > `editSettings.allowEditing` should be true.\n *\n * @param {Object} data - Defines the new add record data.\n * @param {number} index - Defines the row index to be added\n * @returns {void}\n */\n Grid.prototype.addRecord = function (data, index) {\n if (this.editModule) {\n this.editModule.addRecord(data, index);\n }\n };\n /**\n * Delete any visible row by TR element.\n *\n * @param {HTMLTableRowElement} tr - Defines the table row element.\n * @returns {void}\n */\n Grid.prototype.deleteRow = function (tr) {\n if (this.editModule) {\n this.editModule.deleteRow(tr);\n }\n };\n /**\n * Changes a particular cell into edited state based on the row index and field name provided in the `batch` mode.\n *\n * @param {number} index - Defines row index to edit a particular cell.\n * @param {string} field - Defines the field name of the column to perform batch edit.\n *\n * @returns {void}\n */\n Grid.prototype.editCell = function (index, field) {\n if (this.editModule) {\n this.editModule.editCell(index, field);\n }\n };\n /**\n * Saves the cell that is currently edited. It does not save the value to the DataSource.\n *\n * @returns {void}\n * {% codeBlock src='grid/saveCell/index.md' %}{% endcodeBlock %}\n */\n Grid.prototype.saveCell = function () {\n if (this.editModule) {\n this.editModule.saveCell();\n }\n };\n /**\n * To update the specified cell by given value without changing into edited state.\n *\n * @param {number} rowIndex Defines the row index.\n * @param {string} field Defines the column field.\n * @param {string | number | boolean | Date} value - Defines the value to be changed.\n *\n * @returns {void}\n */\n Grid.prototype.updateCell = function (rowIndex, field, value) {\n if (this.editModule) {\n this.editModule.updateCell(rowIndex, field, value);\n }\n };\n /**\n * To update the specified row by given values without changing into edited state.\n *\n * {% codeBlock src='grid/updateRow/index.md' %}{% endcodeBlock %}\n *\n * @param {number} index Defines the row index.\n * @param {Object} data Defines the data object to be updated.\n *\n * @returns {void}\n */\n Grid.prototype.updateRow = function (index, data) {\n if (this.editModule) {\n this.editModule.updateRow(index, data);\n }\n };\n /**\n * Gets the added, edited,and deleted data before bulk save to the DataSource in batch mode.\n *\n * @returns {Object} Returns the batch changes\n */\n Grid.prototype.getBatchChanges = function () {\n if (this.editModule) {\n return this.editModule.getBatchChanges();\n }\n return {};\n };\n /**\n * Enables or disables ToolBar items.\n *\n * @param {string[]} items - Defines the collection of itemID of ToolBar items.\n * @param {boolean} isEnable - Defines the items to be enabled or disabled.\n *\n * @returns {void}\n */\n Grid.prototype.enableToolbarItems = function (items, isEnable) {\n if (this.toolbarModule) {\n this.toolbarModule.enableItems(items, isEnable);\n }\n };\n /**\n * Copy the selected rows or cells data into clipboard.\n *\n * @param {boolean} withHeader - Specifies whether the column header text needs to be copied along with rows or cells.\n * @returns {void}\n */\n Grid.prototype.copy = function (withHeader) {\n if (this.clipboardModule) {\n this.clipboardModule.copy(withHeader);\n }\n };\n /**\n * @hidden\n * @returns {void}\n */\n Grid.prototype.recalcIndentWidth = function () {\n var _this = this;\n if (!this.getHeaderTable().querySelector('.e-emptycell')) {\n return;\n }\n if ((!this.groupSettings.columns.length && !this.isDetail() && !this.isRowDragable()) ||\n this.getHeaderTable().querySelector('.e-emptycell').getAttribute('indentRefreshed') ||\n !this.getContentTable()) {\n return;\n }\n var indentWidth = this.getHeaderTable().querySelector('.e-emptycell').parentElement.offsetWidth;\n var headerCol = [].slice.call(this.getHeaderTable().querySelector(literals.colGroup).childNodes);\n var contentCol = [].slice.call(this.getContentTable().querySelector(literals.colGroup).childNodes);\n var perPixel = indentWidth / 30;\n var i = this.getFrozenMode() === 'Right' ? this.frozenRightCount : 0;\n var parentOffset = this.element.offsetWidth;\n var applyWidth = function (index, width) {\n if (ispercentageWidth(_this)) {\n var newWidth = (width / parentOffset * 100).toFixed(1) + '%';\n headerCol[parseInt(index.toString(), 10)].style.width = newWidth;\n contentCol[parseInt(index.toString(), 10)].style.width = newWidth;\n }\n else {\n headerCol[parseInt(index.toString(), 10)].style.width = width + 'px';\n contentCol[parseInt(index.toString(), 10)].style.width = width + 'px';\n }\n _this.notify(events.columnWidthChanged, { index: index, width: width });\n };\n if (perPixel >= 1) {\n indentWidth = (30 / perPixel);\n }\n if (indentWidth < 1) {\n indentWidth = 1;\n }\n if (this.enableColumnVirtualization || this.isAutoGen || (this.columns.length === this.groupSettings.columns.length)) {\n indentWidth = 30;\n }\n while (i < this.groupSettings.columns.length) {\n applyWidth(i, indentWidth);\n i++;\n }\n if (this.isDetail()) {\n applyWidth(i, indentWidth);\n i++;\n }\n if (this.isRowDragable()) {\n applyWidth(i, indentWidth);\n }\n this.isAutoGen = false;\n this.getHeaderTable().querySelector('.e-emptycell').setAttribute('indentRefreshed', 'true');\n };\n /**\n * @hidden\n * @returns {void}\n */\n Grid.prototype.resetIndentWidth = function () {\n if (ispercentageWidth(this)) {\n this.getHeaderTable().querySelector('.e-emptycell').removeAttribute('indentRefreshed');\n this.widthService.setWidthToColumns();\n this.recalcIndentWidth();\n if (this.autoFit) {\n this.preventAdjustColumns();\n }\n }\n if ((this.width === 'auto' || typeof (this.width) === 'string' && this.width.indexOf('%') !== -1)\n && this.getColumns().filter(function (col) { return (!col.width || col.width === 'auto') && col.minWidth; }).length > 0) {\n var tgridWidth = this.widthService.getTableWidth(this.getColumns());\n this.widthService.setMinwidthBycalculation(tgridWidth);\n }\n if (this.isFrozenGrid() && this.widthService) {\n this.widthService.refreshFrozenScrollbar();\n }\n if (this.allowTextWrap && this.textWrapSettings.wrapMode !== 'Content') {\n this.notify(events.refreshHandlers, {});\n }\n };\n /**\n * @hidden\n * @returns {boolean} Returns isRowDragable\n */\n Grid.prototype.isRowDragable = function () {\n return this.allowRowDragAndDrop && !this.rowDropSettings.targetID;\n };\n /**\n * Changes the Grid column positions by field names.\n *\n * @param {string} fromFName - Defines the origin field name.\n * @param {string} toFName - Defines the destination field name.\n *\n * @returns {void}\n */\n Grid.prototype.reorderColumns = function (fromFName, toFName) {\n if (this.reorderModule) {\n this.reorderModule.reorderColumns(fromFName, toFName);\n }\n };\n /**\n * Changes the Grid column positions by field index. If you invoke reorderColumnByIndex multiple times,\n * then you won't get the same results every time.\n *\n * @param {number} fromIndex - Defines the origin field index.\n * @param {number} toIndex - Defines the destination field index.\n *\n * @returns {void}\n */\n Grid.prototype.reorderColumnByIndex = function (fromIndex, toIndex) {\n if (this.reorderModule) {\n this.reorderModule.reorderColumnByIndex(fromIndex, toIndex);\n }\n };\n /**\n * Changes the Grid column positions by field index. If you invoke reorderColumnByTargetIndex multiple times,\n * then you will get the same results every time.\n *\n * @param {string} fieldName - Defines the field name.\n * @param {number} toIndex - Defines the destination field index.\n *\n * @returns {void}\n */\n Grid.prototype.reorderColumnByTargetIndex = function (fieldName, toIndex) {\n if (this.reorderModule) {\n this.reorderModule.reorderColumnByTargetIndex(fieldName, toIndex);\n }\n };\n /**\n * Changes the Grid Row position with given indexes.\n *\n * @param {number} fromIndexes - Defines the origin Indexes.\n * @param {number} toIndex - Defines the destination Index.\n *\n * @returns {void}\n */\n Grid.prototype.reorderRows = function (fromIndexes, toIndex) {\n if (this.rowDragAndDropModule) {\n this.rowDragAndDropModule.reorderRows(fromIndexes, toIndex);\n }\n };\n /**\n * @param {ReturnType} e - Defines the Return type\n * @returns {void}\n * @hidden\n */\n Grid.prototype.refreshDataSource = function (e) {\n this.notify('refreshdataSource', e);\n };\n /**\n * @param {boolean} enable -Defines the enable\n * @returns {void}\n * @hidden\n */\n Grid.prototype.disableRowDD = function (enable) {\n var headerTable = this.getHeaderTable();\n var contentTable = this.getContentTable();\n var headerRows = headerTable.querySelectorAll('th.e-rowdragheader, th.e-mastercell');\n var rows = this.getRows();\n var disValue = enable ? 'none' : '';\n setStyleAttribute(headerTable.querySelector(literals.colGroup).childNodes[0], { 'display': disValue });\n setStyleAttribute(contentTable.querySelector(literals.colGroup).childNodes[0], { 'display': disValue });\n for (var i = 0; i < this.getRows().length; i++) {\n var ele = rows[parseInt(i.toString(), 10)].firstElementChild;\n if (enable) {\n addClass([ele], 'e-hide');\n }\n else {\n removeClass([ele], ['e-hide']);\n }\n }\n for (var j = 0; j < headerTable.querySelectorAll('th.e-rowdragheader, th.e-mastercell').length; j++) {\n var ele = headerRows[parseInt(j.toString(), 10)];\n if (enable) {\n addClass([ele], 'e-hide');\n }\n else {\n removeClass([ele], ['e-hide']);\n }\n }\n };\n /**\n * Changes the column width to automatically fit its content to ensure that the width shows the content without wrapping/hiding.\n * > * This method ignores the hidden columns.\n * > * Uses the `autoFitColumns` method in the `dataBound` event to resize at initial rendering.\n *\n * @param {string |string[]} fieldNames - Defines the column names.\n * @returns {void}\n *\n *\n * ```typescript\n *
    \n * \n * ```\n *\n */\n Grid.prototype.autoFitColumns = function (fieldNames) {\n if (this.resizeModule) {\n this.resizeModule.autoFitColumns(fieldNames);\n }\n };\n /**\n * @returns {void}\n * @hidden\n */\n Grid.prototype.preventAdjustColumns = function () {\n if (this.isFrozenGrid() || (this.enableAdaptiveUI && this.rowRenderingMode === 'Vertical')\n || (this.allowResizing && this.resizeSettings.mode === 'Auto')) {\n return;\n }\n var columns = this.getColumns();\n var headerTable = this.getHeaderTable();\n var tableWidth = 0;\n for (var i = 0; i < columns.length; i++) {\n if (columns[parseInt(i.toString(), 10)].visible) {\n if (this.groupSettings.columns.length\n && this.groupSettings.columns.indexOf(columns[parseInt(i.toString(), 10)].field) > -1) {\n var headerCol = [].slice.call(headerTable.querySelector('colgroup')\n .querySelectorAll(':not(.e-group-intent):not(.e-detail-intent):not(.e-drag-intent)'));\n if (headerCol[parseInt(i.toString(), 10)].style.display === 'none') {\n continue;\n }\n }\n if (columns[parseInt(i.toString(), 10)].width) {\n tableWidth += parseFloat(columns[parseInt(i.toString(), 10)].width.toString());\n }\n else {\n tableWidth = 0;\n break;\n }\n }\n }\n if (tableWidth) {\n var percentageWidth = this.isPercentageWidthGrid();\n var unit = this.widthUnit(percentageWidth);\n var contentTable = this.getContentTable();\n if (this.groupSettings.columns.length || this.isDetail() || this.isRowDragable()) {\n var indentWidth = this.defaultIndentWidth(percentageWidth);\n var indentWidthUnitFormat = indentWidth.toString() + unit;\n var headerIndentCol = [].slice.call(headerTable.querySelector('colgroup')\n .querySelectorAll('.e-group-intent, .e-detail-intent, .e-drag-intent'));\n var contentIndentCol = [].slice.call(contentTable.querySelector('colgroup')\n .querySelectorAll('.e-group-intent, .e-detail-intent, .e-drag-intent'));\n for (var i = 0; i < headerIndentCol.length; i++) {\n headerIndentCol[parseInt(i.toString(), 10)].style.setProperty('width', indentWidthUnitFormat);\n contentIndentCol[parseInt(i.toString(), 10)].style.setProperty('width', indentWidthUnitFormat);\n tableWidth += indentWidth;\n }\n }\n if ((percentageWidth && tableWidth < 100)\n || (!percentageWidth && tableWidth < contentTable.parentElement.clientWidth)) {\n addClass([headerTable, contentTable], ['e-tableborder']);\n }\n var tableWidthUnitFormat = tableWidth.toString() + unit;\n headerTable.style.setProperty('width', tableWidthUnitFormat);\n contentTable.style.setProperty('width', tableWidthUnitFormat);\n }\n else {\n this.restoreAdjustColumns();\n }\n };\n Grid.prototype.restoreAdjustColumns = function () {\n if (this.isFrozenGrid() || (this.enableAdaptiveUI && this.rowRenderingMode === 'Vertical')\n || (this.allowResizing && this.resizeSettings.mode === 'Auto')) {\n return;\n }\n var headerTable = this.getHeaderTable();\n var contentTable = this.getContentTable();\n removeClass([headerTable, contentTable], ['e-tableborder']);\n headerTable.style.removeProperty('width');\n contentTable.style.removeProperty('width');\n if (this.groupSettings.columns.length || this.isDetail() || this.isRowDragable()) {\n var percentageWidth = this.isPercentageWidthGrid();\n var indentWidthUnitFormat_1 = this.defaultIndentWidth(percentageWidth).toString() + this.widthUnit(percentageWidth);\n var headerIndentCol = [].slice.call(headerTable.querySelector('colgroup')\n .querySelectorAll('.e-group-intent, .e-detail-intent, .e-drag-intent'));\n headerIndentCol.forEach(function (element) {\n element.style.setProperty('width', indentWidthUnitFormat_1);\n });\n headerTable.querySelector('.e-emptycell').removeAttribute('indentRefreshed');\n this.recalcIndentWidth();\n }\n };\n Grid.prototype.widthUnit = function (percentageWidth) {\n return percentageWidth ? '%' : 'px';\n };\n Grid.prototype.defaultIndentWidth = function (percentageWidth) {\n return percentageWidth ? parseFloat((30 / this.element.offsetWidth * 100).toFixed(1)) : 30;\n };\n Grid.prototype.isPercentageWidthGrid = function () {\n return this.getColumns()[0].width.toString().indexOf('%') > -1;\n };\n /**\n * @param {number} x - Defines the number\n * @param {number} y - Defines the number\n * @param {Element} target - Defines the Element\n * @returns {void}\n * @hidden\n */\n Grid.prototype.createColumnchooser = function (x, y, target) {\n if (this.columnChooserModule) {\n this.columnChooserModule.renderColumnChooser(x, y, target);\n }\n };\n Grid.prototype.initializeServices = function () {\n this.serviceLocator.register('widthService', this.widthService = new ColumnWidthService(this));\n this.serviceLocator.register('cellRendererFactory', new CellRendererFactory);\n this.serviceLocator.register('rendererFactory', new RendererFactory);\n this.serviceLocator.register('localization', this.localeObj = new L10n(this.getModuleName(), this.defaultLocale, this.locale));\n this.serviceLocator.register('valueFormatter', this.valueFormatterService = new ValueFormatter(this.locale));\n this.serviceLocator.register('showHideService', this.showHider = new ShowHide(this));\n this.serviceLocator.register('ariaService', this.ariaService = new AriaService());\n this.serviceLocator.register('focus', this.focusModule = new FocusStrategy(this));\n };\n Grid.prototype.processModel = function () {\n var gCols = this.groupSettings.columns;\n var sCols = this.sortSettings.columns;\n var flag;\n var j;\n if (this.allowGrouping) {\n var _loop_1 = function (i, len) {\n j = 0;\n for (var sLen = sCols.length; j < sLen; j++) {\n if (sCols[parseInt(j.toString(), 10)].field === gCols[parseInt(i.toString(), 10)]) {\n flag = true;\n break;\n }\n }\n if (!flag) {\n sCols.push({ field: gCols[parseInt(i.toString(), 10)], direction: 'Ascending', isFromGroup: true });\n }\n else {\n if (this_1.allowSorting) {\n this_1.sortedColumns.push(sCols[parseInt(j.toString(), 10)].field);\n }\n else {\n sCols[parseInt(j.toString(), 10)].direction = 'Ascending';\n }\n }\n if (!this_1.groupSettings.showGroupedColumn) {\n var column = this_1.enableColumnVirtualization ?\n this_1.columns.filter(function (c) { return c.field === gCols[parseInt(i.toString(), 10)]; })[0]\n : this_1.getColumnByField(gCols[parseInt(i.toString(), 10)]);\n if (column) {\n column.visible = false;\n }\n else {\n this_1.log('initial_action', { moduleName: 'group', columnName: gCols[parseInt(i.toString(), 10)] });\n }\n }\n };\n var this_1 = this;\n for (var i = 0, len = gCols.length; i < len; i++) {\n _loop_1(i, len);\n }\n }\n if (!gCols.length) {\n for (var i = 0; i < sCols.length; i++) {\n this.sortedColumns.push(sCols[parseInt(i.toString(), 10)].field);\n }\n }\n this.rowTemplateFn = templateCompiler(this.rowTemplate);\n this.detailTemplateFn = templateCompiler(this.detailTemplate);\n this.editTemplateFn = templateCompiler(this.editSettings.template);\n this.editHeaderTemplateFn = templateCompiler(this.editSettings.headerTemplate);\n this.editFooterTemplateFn = templateCompiler(this.editSettings.footerTemplate);\n if (!isNullOrUndefined(this.parentDetails)) {\n var value = isNullOrUndefined(this.parentDetails.parentKeyFieldValue) ? 'undefined' :\n this.parentDetails.parentKeyFieldValue;\n this.query.where(this.queryString, 'equal', value, true);\n }\n this.initForeignColumn();\n };\n Grid.prototype.initForeignColumn = function () {\n if (this.isForeignKeyEnabled(this.getColumns())) {\n this.notify(events.initForeignKeyColumn, this.getForeignKeyColumns());\n }\n };\n Grid.prototype.enableVerticalRendering = function () {\n if (this.rowRenderingMode === 'Vertical') {\n this.element.classList.add('e-row-responsive');\n }\n else {\n this.element.classList.remove('e-row-responsive');\n }\n };\n Grid.prototype.gridRender = function () {\n this.updateRTL();\n if (this.rowRenderingMode === 'Vertical') {\n this.element.classList.add('e-row-responsive');\n }\n if (this.enableHover) {\n this.element.classList.add('e-gridhover');\n }\n if (Browser.isDevice) {\n this.element.classList.add('e-device');\n }\n if (this.rowHeight) {\n this.element.classList.add('e-grid-min-height');\n }\n if (this.cssClass) {\n this.element.classList.add(this.cssClass);\n }\n // If the below if statement is removed, then drag and drop between grids will not work in firefox browser.\n if (this.allowRowDragAndDrop && this.rowDropSettings.targetID && Browser.info.name === 'mozilla') {\n this.element.classList.add('e-disableuserselect');\n }\n classList(this.element, ['e-responsive', 'e-default'], []);\n var rendererFactory = this.serviceLocator.getService('rendererFactory');\n this.headerModule = rendererFactory.getRenderer(RenderType.Header);\n this.contentModule = rendererFactory.getRenderer(RenderType.Content);\n this.printModule = new Print(this, this.scrollModule);\n this.clipboardModule = new Clipboard(this, this.serviceLocator);\n this.renderModule.render();\n this.eventInitializer();\n this.createGridPopUpElement();\n this.widthService.setWidthToColumns();\n this.updateGridLines();\n this.applyTextWrap();\n this.createTooltip(); //for clip mode ellipsis\n this.enableBoxSelection();\n };\n Grid.prototype.dataReady = function () {\n this.scrollModule.setWidth();\n this.scrollModule.setHeight();\n if (this.height !== 'auto') {\n this.scrollModule.setPadding();\n }\n };\n Grid.prototype.updateRTL = function () {\n if (this.enableRtl) {\n this.element.classList.add('e-rtl');\n }\n else {\n this.element.classList.remove('e-rtl');\n }\n };\n Grid.prototype.createGridPopUpElement = function () {\n var popup = this.createElement('div', { className: 'e-gridpopup', styles: 'display:none;' });\n var content = this.createElement('div', { className: literals.content, attrs: { tabIndex: '-1' } });\n append([content, this.createElement('div', { className: 'e-uptail e-tail' })], popup);\n content.appendChild(this.createElement('span'));\n append([content, this.createElement('div', { className: 'e-downtail e-tail' })], popup);\n this.element.appendChild(popup);\n };\n Grid.prototype.updateGridLines = function () {\n classList(this.element, [], ['e-verticallines', 'e-horizontallines', 'e-hidelines', 'e-bothlines']);\n switch (this.gridLines) {\n case 'Horizontal':\n this.element.classList.add('e-horizontallines');\n break;\n case 'Vertical':\n this.element.classList.add('e-verticallines');\n break;\n case 'None':\n this.element.classList.add('e-hidelines');\n break;\n case 'Both':\n this.element.classList.add('e-bothlines');\n break;\n }\n this.updateResizeLines();\n };\n Grid.prototype.updateResizeLines = function () {\n if (this.allowResizing &&\n !(this.gridLines === 'Vertical' || this.gridLines === 'Both')) {\n this.element.classList.add('e-resize-lines');\n }\n else {\n this.element.classList.remove('e-resize-lines');\n }\n };\n /**\n * The function is used to apply text wrap\n *\n * @returns {void}\n * @hidden\n */\n Grid.prototype.applyTextWrap = function () {\n if (this.allowTextWrap) {\n var headerRows = [].slice.call(this.element.getElementsByClassName('e-columnheader'));\n switch (this.textWrapSettings.wrapMode) {\n case 'Header':\n wrap(this.element, false);\n wrap(this.getContent(), false);\n wrap(headerRows, true);\n break;\n case 'Content':\n wrap(this.getContent(), true);\n wrap(this.element, false);\n wrap(headerRows, false);\n break;\n default:\n wrap(this.element, true);\n wrap(this.getContent(), false);\n wrap(headerRows, false);\n }\n if (this.textWrapSettings.wrapMode !== 'Content') {\n this.notify(events.refreshHandlers, {});\n }\n }\n };\n /**\n * The function is used to remove text wrap\n *\n * @returns {void}\n * @hidden\n */\n Grid.prototype.removeTextWrap = function () {\n wrap(this.element, false);\n var headerRows = [].slice.call(this.element.getElementsByClassName('e-columnheader'));\n wrap(headerRows, false);\n wrap(this.getContent(), false);\n if (this.textWrapSettings.wrapMode !== 'Content') {\n this.notify(events.refreshHandlers, {});\n }\n };\n /**\n * The function is used to add Tooltip to the grid cell that has ellipsiswithtooltip clip mode.\n *\n * @returns {void}\n * @hidden\n */\n Grid.prototype.createTooltip = function () {\n this.toolTipObj = new Tooltip({\n opensOn: 'custom',\n content: '',\n cssClass: this.cssClass ? this.cssClass : null\n }, this.element);\n };\n /** @hidden\n * @returns {void}\n */\n Grid.prototype.freezeRefresh = function () {\n this.isFreezeRefresh = true;\n if (this.enableVirtualization || this.enableInfiniteScrolling) {\n this.pageSettings.currentPage = 1;\n }\n this.componentRefresh();\n };\n Grid.prototype.getTooltipStatus = function (element) {\n var headerTable = this.getHeaderTable();\n var headerDivTag = 'e-gridheader';\n var htable = this.createTable(headerTable, headerDivTag, 'header');\n var ctable = this.createTable(headerTable, headerDivTag, 'content');\n var table = element.classList.contains('e-headercell') ? htable : ctable;\n var ele = element.classList.contains('e-headercell') ? 'th' : 'tr';\n table.querySelector(ele).className = element.className;\n table.querySelector(ele).innerHTML = element.innerHTML;\n var width = table.querySelector(ele).getBoundingClientRect().width;\n document.body.removeChild(htable);\n document.body.removeChild(ctable);\n if (width > element.getBoundingClientRect().width) {\n return true;\n }\n return false;\n };\n Grid.prototype.mouseMoveHandler = function (e) {\n if (this.isEllipsisTooltip()) {\n var element = parentsUntil(e.target, 'e-ellipsistooltip');\n if (this.prevElement !== element || e.type === 'mouseout') {\n this.toolTipObj.close();\n }\n var tagName = e.target.tagName;\n var elemNames = ['A', 'BUTTON', 'INPUT'];\n if (element && e.type !== 'mouseout' && !(Browser.isDevice && elemNames.indexOf(tagName) !== -1)) {\n if (element.getAttribute('aria-describedby')) {\n return;\n }\n if (this.getTooltipStatus(element)) {\n var col = this.getColumns()[parseInt(element.getAttribute(literals.dataColIndex), 10)];\n var domSetter = col.disableHtmlEncode ? 'innerText' : 'innerHTML';\n var contentDiv = this.createElement('div');\n if (element.getElementsByClassName('e-headertext').length) {\n var innerElement = element.getElementsByClassName('e-headertext')[0];\n contentDiv[\"\" + domSetter] = this.sanitize(innerElement.innerText);\n this.toolTipObj.content = contentDiv;\n }\n else {\n contentDiv[\"\" + domSetter] = this.sanitize(element.innerText);\n this.toolTipObj.content = contentDiv;\n }\n this.prevElement = element;\n if (this.enableHtmlSanitizer) {\n this.toolTipObj.enableHtmlSanitizer = true;\n }\n if (col.disableHtmlEncode) {\n this.toolTipObj.enableHtmlParse = false;\n }\n this.toolTipObj['open'](element);\n }\n }\n }\n this.hoverFrozenRows(e);\n };\n /**\n * @param {MouseEvent} e - Defines the mouse event\n * @returns {void}\n * @hidden\n */\n Grid.prototype.hoverFrozenRows = function (e) {\n if (this.isFrozenGrid()) {\n var row = parentsUntil(e.target, literals.row);\n if ([].slice.call(this.element.getElementsByClassName('e-frozenhover')).length && e.type === 'mouseout') {\n var rows = [].slice.call(this.element.getElementsByClassName('e-frozenhover'));\n for (var i = 0; i < rows.length; i++) {\n rows[parseInt(i.toString(), 10)].classList.remove('e-frozenhover');\n }\n }\n else if (row) {\n var rows = [].slice.call(this.element.querySelectorAll('tr[data-rowindex=\"' + row.getAttribute(literals.dataRowIndex) + '\"]'));\n rows.splice(rows.indexOf(row), 1);\n for (var i = 0; i < rows.length; i++) {\n if (row.getAttribute('aria-selected') !== 'true' && rows[parseInt(i.toString(), 10)]) {\n rows[parseInt(i.toString(), 10)].classList.add('e-frozenhover');\n }\n else if (rows[parseInt(i.toString(), 10)]) {\n rows[parseInt(i.toString(), 10)].classList.remove('e-frozenhover');\n }\n }\n }\n }\n };\n Grid.prototype.isEllipsisTooltip = function () {\n var cols = this.getColumns();\n if (this.clipMode === 'EllipsisWithTooltip') {\n return true;\n }\n for (var i = 0; i < cols.length; i++) {\n if (cols[parseInt(i.toString(), 10)].clipMode === 'EllipsisWithTooltip') {\n return true;\n }\n }\n return false;\n };\n Grid.prototype.scrollHandler = function () {\n if (this.isEllipsisTooltip()) {\n this.toolTipObj.close();\n }\n };\n /**\n * To create table for ellipsiswithtooltip\n *\n * @param {Element} table - Defines the table\n * @param {string} tag - Defines the tag\n * @param {string} type - Defines the type\n * @returns {HTMLDivElement} Returns the HTML div ELement\n * @hidden\n */\n Grid.prototype.createTable = function (table, tag, type) {\n var myTableDiv = this.createElement('div');\n myTableDiv.className = this.element.className;\n myTableDiv.style.cssText = 'display: inline-block;visibility:hidden;position:absolute';\n var mySubDiv = this.createElement('div');\n mySubDiv.className = tag;\n var myTable = this.createElement('table', { attrs: { role: 'grid' } });\n myTable.className = table.className;\n myTable.style.cssText = 'table-layout: auto;width: auto';\n var ele = (type === 'header') ? 'th' : 'td';\n var myTr = this.createElement('tr');\n var mytd = this.createElement(ele);\n myTr.appendChild(mytd);\n myTable.appendChild(myTr);\n mySubDiv.appendChild(myTable);\n myTableDiv.appendChild(mySubDiv);\n document.body.appendChild(myTableDiv);\n return myTableDiv;\n };\n Grid.prototype.onKeyPressed = function (e) {\n if (e.action === 'tab' || e.action === 'shiftTab') {\n this.toolTipObj.close();\n }\n };\n /**\n * Binding events to the element while component creation.\n *\n * @hidden\n * @returns {void}\n */\n Grid.prototype.wireEvents = function () {\n EventHandler.add(this.element, 'click', this.mouseClickHandler, this);\n EventHandler.add(this.element, 'touchend', this.mouseClickHandler, this);\n EventHandler.add(this.element, 'focusout', this.focusOutHandler, this);\n EventHandler.add(this.element, 'dblclick', this.dblClickHandler, this);\n EventHandler.add(this.element, 'keydown', this.keyPressHandler, this);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n EventHandler.add(window, 'resize', this.resetIndentWidth, this);\n if (this.allowKeyboard) {\n this.element.tabIndex = this.element.tabIndex === -1 ? 0 : this.element.tabIndex;\n }\n this.keyboardModule = new KeyboardEvents(this.element, {\n keyAction: this.keyActionHandler.bind(this),\n keyConfigs: this.keyConfigs,\n eventName: 'keydown'\n });\n EventHandler.add(this.getContent().firstElementChild, 'scroll', this.scrollHandler, this);\n EventHandler.add(this.element, 'mousemove', this.mouseMoveHandler, this);\n EventHandler.add(this.element, 'mouseout', this.mouseMoveHandler, this);\n EventHandler.add(this.getContent(), 'touchstart', this.tapEvent, this);\n EventHandler.add(document.body, 'keydown', this.keyDownHandler, this);\n };\n /**\n * Unbinding events from the element while component destroy.\n *\n * @hidden\n * @returns {void}\n */\n Grid.prototype.unwireEvents = function () {\n EventHandler.remove(this.element, 'click', this.mouseClickHandler);\n EventHandler.remove(this.element, 'touchend', this.mouseClickHandler);\n EventHandler.remove(this.element, 'focusout', this.focusOutHandler);\n EventHandler.remove(this.element, 'dblclick', this.dblClickHandler);\n EventHandler.remove(this.getContent().firstElementChild, 'scroll', this.scrollHandler);\n EventHandler.remove(this.element, 'mousemove', this.mouseMoveHandler);\n EventHandler.remove(this.element, 'mouseout', this.mouseMoveHandler);\n EventHandler.remove(this.element, 'keydown', this.keyPressHandler);\n EventHandler.remove(this.getContent(), 'touchstart', this.tapEvent);\n EventHandler.remove(document.body, 'keydown', this.keyDownHandler);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n EventHandler.remove(window, 'resize', this.resetIndentWidth);\n };\n /**\n * @hidden\n * @returns {void}\n */\n Grid.prototype.addListener = function () {\n if (this.isDestroyed) {\n return;\n }\n this.on(events.dataReady, this.dataReady, this);\n this.on(events.contentReady, this.recalcIndentWidth, this);\n this.on(events.headerRefreshed, this.recalcIndentWidth, this);\n this.dataBoundFunction = this.refreshMediaCol.bind(this);\n this.addEventListener(events.dataBound, this.dataBoundFunction);\n this.on(events.keyPressed, this.onKeyPressed, this);\n };\n /**\n * @hidden\n * @returns {void}\n */\n Grid.prototype.removeListener = function () {\n if (this.isDestroyed) {\n return;\n }\n this.off(events.dataReady, this.dataReady);\n this.off(events.contentReady, this.recalcIndentWidth);\n this.off(events.headerRefreshed, this.recalcIndentWidth);\n this.removeEventListener(events.dataBound, this.dataBoundFunction);\n this.off(events.keyPressed, this.onKeyPressed);\n };\n /**\n * Get current visible data of grid.\n *\n * @returns {Object[]} Returns the current view records\n *\n * @isGenericType true\n */\n Grid.prototype.getCurrentViewRecords = function () {\n if (isGroupAdaptive(this)) {\n return isNullOrUndefined(this.currentViewData.records) ?\n this.currentViewData : this.currentViewData.records;\n }\n if (this.groupSettings.enableLazyLoading) {\n return this.currentViewData;\n }\n return (this.allowGrouping && this.groupSettings.columns.length && this.currentViewData.length\n && this.currentViewData.records) ? this.currentViewData.records\n : this.currentViewData;\n };\n Grid.prototype.mouseClickHandler = function (e) {\n if (this.isChildGrid(e) || (parentsUntil(e.target, 'e-gridpopup') && e.touches) ||\n this.element.getElementsByClassName('e-cloneproperties').length || this.checkEdit(e)) {\n return;\n }\n if (((!this.allowRowDragAndDrop && (parentsUntil(e.target, literals.gridContent) ||\n e.target.tagName === 'TD')) || (!(this.allowGrouping || this.allowReordering) &&\n parentsUntil(e.target, 'e-gridheader'))) && e.touches) {\n return;\n }\n if (parentsUntil(e.target, 'e-gridheader') && this.allowRowDragAndDrop &&\n !(parentsUntil(e.target, 'e-filterbarcell')) && (e.target &&\n ['A', 'BUTTON', 'INPUT'].indexOf(e.target.tagName) === -1)) {\n e.preventDefault();\n }\n var args = this.getRowInfo(e.target);\n var cancel = 'cancel';\n args[\"\" + cancel] = false;\n var isDataRow = false;\n var tr = closest(e.target, 'tr');\n if (tr && tr.getAttribute('data-uid')) {\n var rowObj = this.getRowObjectFromUID(tr.getAttribute('data-uid'));\n isDataRow = rowObj ? rowObj.isDataRow : false;\n }\n if (isDataRow) {\n this.trigger(events.recordClick, args);\n }\n this.notify(events.click, e);\n };\n Grid.prototype.checkEdit = function (e) {\n var tr = parentsUntil(e.target, literals.row);\n var isEdit = this.editSettings.mode !== 'Batch' &&\n this.isEdit && tr && (tr.classList.contains(literals.editedRow) || tr.classList.contains(literals.addedRow));\n return !parentsUntil(e.target, 'e-unboundcelldiv') && (isEdit || (parentsUntil(e.target, literals.rowCell) &&\n parentsUntil(e.target, literals.rowCell).classList.contains('e-editedbatchcell')));\n };\n Grid.prototype.dblClickHandler = function (e) {\n var grid = parentsUntil(e.target, 'e-grid');\n if (isNullOrUndefined(grid) || grid.id !== this.element.id || closest(e.target, '.e-unboundcelldiv')) {\n return;\n }\n var dataRow = false;\n var tr = closest(e.target, 'tr');\n if (tr && tr.getAttribute('data-uid')) {\n var rowObj = this.getRowObjectFromUID(tr.getAttribute('data-uid'));\n dataRow = rowObj ? rowObj.isDataRow : false;\n }\n var args = this.getRowInfo(e.target);\n args.target = e.target;\n if (dataRow) {\n this.trigger(events.recordDoubleClick, args);\n }\n this.notify(events.dblclick, e);\n };\n Grid.prototype.focusOutHandler = function (e) {\n if (this.isChildGrid(e)) {\n return;\n }\n if (!parentsUntil(e.target, 'e-grid')) {\n this.element.querySelector('.e-gridpopup').style.display = 'None';\n }\n var filterClear = this.element.querySelector('.e-cancel:not(.e-hide)');\n if (filterClear && !filterClear.parentElement.classList.contains('e-tbar-btn')) {\n filterClear.classList.add('e-hide');\n }\n var relatedTarget = e.relatedTarget;\n var ariaOwns = relatedTarget ? relatedTarget.getAttribute('aria-owns') : null;\n if ((!relatedTarget || (!parentsUntil(relatedTarget, 'e-grid') &&\n (!isNullOrUndefined(ariaOwns) &&\n (ariaOwns)) !== e.target.getAttribute('aria-owns')))\n && !this.keyPress && this.isEdit && !Browser.isDevice) {\n if (this.editSettings.mode === 'Batch' && !((parentsUntil(relatedTarget, 'e-ddl') || parentsUntil(relatedTarget, 'e-ddt')) &&\n parentsUntil(relatedTarget, 'e-input-group')) && !isNullOrUndefined(parentsUntil(relatedTarget, 'e-input-group'))) {\n this.editModule.saveCell();\n this.notify(events.editNextValCell, {});\n }\n if (this.editSettings.mode === 'Normal') {\n this.editModule.editFormValidate();\n }\n }\n this.keyPress = false;\n };\n Grid.prototype.isChildGrid = function (e) {\n var gridElement = parentsUntil(e.target, 'e-grid');\n if ((gridElement && gridElement.id !== this.element.id) || (parentsUntil(e.target, 'e-unboundcelldiv') &&\n isNullOrUndefined(gridElement))) {\n return true;\n }\n return false;\n };\n /**\n * @param {Object} persistedData - Defines the persisted data\n * @returns {void}\n * @hidden\n */\n Grid.prototype.mergePersistGridData = function (persistedData) {\n var data = this.getLocalData();\n if (!(isNullOrUndefined(data) || (data === '')) || !isNullOrUndefined(persistedData)) {\n var dataObj = !isNullOrUndefined(persistedData) ? persistedData : JSON.parse(data);\n if (this.enableVirtualization && dataObj.pageSettings) {\n dataObj.pageSettings.currentPage = 1;\n }\n var keys = Object.keys(dataObj);\n this.isProtectedOnChange = true;\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n if ((typeof this[\"\" + key] === 'object') && !isNullOrUndefined(this[\"\" + key])) {\n if (Array.isArray(this[\"\" + key]) && key === 'columns') {\n setColumnIndex(this[\"\" + key]);\n this.mergeColumns(dataObj[\"\" + key], this[\"\" + key]);\n this[\"\" + key] = dataObj[\"\" + key];\n }\n else {\n extend(this[\"\" + key], dataObj[\"\" + key]);\n }\n }\n else {\n this[\"\" + key] = dataObj[\"\" + key];\n }\n }\n this.isProtectedOnChange = false;\n }\n };\n Grid.prototype.mergeColumns = function (storedColumn, columns) {\n var storedColumns = storedColumn;\n var _loop_2 = function (i) {\n var localCol = columns.filter(function (tCol) { return tCol.index === storedColumns[parseInt(i.toString(), 10)].index; })[0];\n if (!isNullOrUndefined(localCol)) {\n if (localCol.columns && localCol.columns.length) {\n this_2.mergeColumns(storedColumns[parseInt(i.toString(), 10)].columns, localCol.columns);\n storedColumns[parseInt(i.toString(), 10)] = extend(localCol, storedColumns[parseInt(i.toString(), 10)], {}, true);\n }\n else {\n storedColumns[parseInt(i.toString(), 10)] = extend(localCol, storedColumns[parseInt(i.toString(), 10)], {}, true);\n }\n }\n };\n var this_2 = this;\n for (var i = 0; i < storedColumns.length; i++) {\n _loop_2(i);\n }\n };\n /**\n * @hidden\n * @returns {boolean} Returns the isDetail\n */\n Grid.prototype.isDetail = function () {\n return !isNullOrUndefined(this.detailTemplate) || !isNullOrUndefined(this.childGrid);\n };\n Grid.prototype.isCommandColumn = function (columns) {\n var _this = this;\n return columns.some(function (col) {\n if (col.columns) {\n return _this.isCommandColumn(col.columns);\n }\n return !!(col.commands || col.commandsTemplate);\n });\n };\n Grid.prototype.isForeignKeyEnabled = function (columns) {\n var _this = this;\n return columns.some(function (col) {\n if (col.columns) {\n return _this.isForeignKeyEnabled(col.columns);\n }\n return !!(col.dataSource && col.foreignKeyValue);\n });\n };\n Grid.prototype.keyPressHandler = function (e) {\n var presskey = extend(e, { cancel: false });\n this.trigger('keyPressed', presskey);\n if (presskey.cancel === true) {\n e.stopImmediatePropagation();\n }\n };\n Grid.prototype.keyDownHandler = function (e) {\n if (e.altKey) {\n if (e.keyCode === 74) { //alt j\n if (this.keyA) { //alt A J\n this.notify(events.groupCollapse, { target: e.target, collapse: false });\n this.keyA = false;\n }\n else {\n if (this.focusModule && this.focusModule.currentInfo && this.focusModule.currentInfo.element) {\n removeClass([this.focusModule.currentInfo.element, this.focusModule.currentInfo.elementToFocus], ['e-focused', 'e-focus']);\n this.focusModule.currentInfo.element.tabIndex = -1;\n }\n if (!this.element.classList.contains('e-childgrid')) {\n this.element.focus();\n }\n }\n }\n if (e.keyCode === 87) { //alt w\n var focusModule = this.focusModule;\n if (focusModule) {\n if (!this.currentViewData.length) {\n return;\n }\n focusModule.focusContent();\n focusModule.addOutline();\n }\n }\n if (e.keyCode === 65) { //alt A\n this.keyA = true;\n }\n if (e.keyCode === 72 && this.keyA) { //alt A H\n this.notify(events.groupCollapse, { target: e.target, collapse: true });\n this.keyA = false;\n }\n }\n if (e.keyCode === 13) {\n this.notify(events.enterKeyHandler, e);\n }\n };\n Grid.prototype.keyActionHandler = function (e) {\n if (this.isChildGrid(e) ||\n (this.isEdit && e.action !== 'escape' && e.action !== 'enter' && e.action !== 'shiftEnter'\n && e.action !== 'tab' && e.action !== 'shiftTab')) {\n return;\n }\n else {\n this.keyPress = true;\n }\n if (this.allowKeyboard) {\n if (e.action === 'ctrlPlusP') {\n e.preventDefault();\n this.print();\n }\n this.notify(events.keyPressed, e);\n }\n };\n /**\n * @param {Function[]} modules - Defines the modules\n * @returns {void}\n * @hidden\n */\n Grid.prototype.setInjectedModules = function (modules) {\n this.injectedModules = modules;\n };\n Grid.prototype.updateColumnObject = function () {\n prepareColumns(this.columns, this.enableColumnVirtualization, this);\n setColumnIndex(this.columns);\n this.initForeignColumn();\n this.notify(events.autoCol, {});\n };\n /**\n * Gets the foreign columns from Grid.\n *\n * @returns {Column[]} Returns Foreign key column\n */\n Grid.prototype.getForeignKeyColumns = function () {\n return this.getColumns().filter(function (col) {\n return col.isForeignColumn();\n });\n };\n /**\n * @hidden\n * @returns {number} Returns row height\n */\n Grid.prototype.getRowHeight = function () {\n return this.rowHeight ? this.rowHeight : getRowHeight(this.element);\n };\n /**\n * Refreshes the Grid column changes.\n *\n * @returns {void}\n */\n Grid.prototype.refreshColumns = function () {\n this.setFrozenCount();\n var fCnt = this.getContent().querySelector('.e-frozen-left-content');\n var frCnt = this.getContent().querySelector('.e-frozen-right-content');\n var isColFrozen = !this.frozenRightCount && !this.frozenLeftCount;\n var isFrozen = this.getFrozenColumns() !== 0;\n if (!isFrozen && ((!fCnt && this.frozenLeftCount) || (!frCnt && this.frozenRightCount) || (fCnt && !this.frozenLeftCount)\n || (frCnt && !this.frozenRightCount))) {\n this.tableIndex = 0;\n this.tablesCount = 1;\n if (this.enableColumnVirtualization) {\n this.columnModel = [];\n this.updateColumnModel(this.columns);\n }\n this.freezeRefresh();\n }\n else if (isColFrozen && ((this.getFrozenColumns() === 1 && !fCnt) || (this.getFrozenColumns() === 0 && fCnt))) {\n this.tableIndex = 0;\n this.tablesCount = 1;\n if (this.enableColumnVirtualization) {\n this.columnModel = [];\n this.updateColumnModel(this.columns);\n }\n this.freezeRefresh();\n }\n else {\n this.isPreventScrollEvent = true;\n this.updateColumnObject();\n this.checkLockColumns(this.getColumns());\n this.refresh();\n if (this.isFrozenGrid()) {\n var mTbl = this.contentModule.getMovableContent().querySelector('.' + literals.table);\n remove(mTbl.querySelector(literals.colGroup));\n var colGroup = ((this.getHeaderContent()\n .querySelector('.' + literals.movableHeader).querySelector(literals.colGroup)).cloneNode(true));\n mTbl.insertBefore(colGroup, mTbl.querySelector(literals.tbody));\n if (this.getFrozenMode() === 'Left-Right') {\n var frTbl = this.contentModule.getFrozenRightContent().querySelector('.' + literals.table);\n remove(frTbl.querySelector(literals.colGroup));\n var colGrp = ((this.getHeaderContent()\n .querySelector('.e-frozen-right-header').querySelector(literals.colGroup)).cloneNode(true));\n frTbl.insertBefore(colGrp, frTbl.querySelector(literals.tbody));\n }\n }\n }\n if (this.isFrozenGrid()) {\n var left = this.getContent().querySelector('.e-movablescrollbar').scrollLeft;\n this.headerModule.getMovableHeader().scrollLeft = left;\n this.contentModule.getMovableContent().scrollLeft = left;\n }\n };\n /**\n * Export Grid data to Excel file(.xlsx).\n *\n * @param {ExcelExportProperties} excelExportProperties - Defines the export properties of the Grid.\n * @param {boolean} isMultipleExport - Define to enable multiple export.\n * @param {Workbook} workbook - Defines the Workbook if multiple export is enabled.\n * @param {boolean} isBlob - If 'isBlob' set to true, then it will be returned as blob data.\n * @returns {Promise} Returns the excelexport\n */\n Grid.prototype.excelExport = function (excelExportProperties, isMultipleExport, \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n workbook, isBlob) {\n return this.excelExportModule ?\n this.excelExportModule.Map(this, excelExportProperties, isMultipleExport, workbook, false, isBlob) : null;\n };\n /**\n * Export Grid data to CSV file.\n *\n * @param {ExcelExportProperties} excelExportProperties - Defines the export properties of the Grid.\n * @param {boolean} isMultipleExport - Define to enable multiple export.\n * @param {Workbook} workbook - Defines the Workbook if multiple export is enabled.\n * @param {boolean} isBlob - If 'isBlob' set to true, then it will be returned as blob data.\n * @returns {Promise} Returns csv export\n */\n Grid.prototype.csvExport = function (excelExportProperties, \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n isMultipleExport, workbook, isBlob) {\n return this.excelExportModule ?\n this.excelExportModule.Map(this, excelExportProperties, isMultipleExport, workbook, true, isBlob) : null;\n };\n /**\n * Export Grid data to PDF document.\n *\n * @param {pdfExportProperties} pdfExportProperties - Defines the export properties of the Grid.\n * @param {isMultipleExport} isMultipleExport - Define to enable multiple export.\n * @param {pdfDoc} pdfDoc - Defined the Pdf Document if multiple export is enabled.\n * @param {boolean} isBlob - If 'isBlob' set to true, then it will be returned as blob data.\n *\n * @returns {Promise} Returns pdfexport\n */\n Grid.prototype.pdfExport = function (pdfExportProperties, isMultipleExport, pdfDoc, isBlob) {\n return this.pdfExportModule ? this.pdfExportModule.Map(this, pdfExportProperties, isMultipleExport, pdfDoc, isBlob) : null;\n };\n /**\n * Groups a column by column name.\n *\n * @param {string} columnName - Defines the column name to group.\n *\n * @returns {void}\n */\n Grid.prototype.groupColumn = function (columnName) {\n if (this.groupModule) {\n this.groupModule.groupColumn(columnName);\n }\n };\n /**\n * Expands all the grouped rows of the Grid.\n *\n * @returns {void}\n */\n Grid.prototype.groupExpandAll = function () {\n if (this.groupModule) {\n this.groupModule.expandAll();\n }\n };\n /**\n * Collapses all the grouped rows of the Grid.\n *\n * @returns {void}\n */\n Grid.prototype.groupCollapseAll = function () {\n if (this.groupModule) {\n this.groupModule.collapseAll();\n }\n };\n /**\n * Expands or collapses grouped rows by target element.\n *\n * @param {Element} target - Defines the target element of the grouped row.\n * @returns {void}\n */\n // public expandCollapseRows(target: Element): void {\n // if (this.groupModule) {\n // this.groupModule.expandCollapseRows(target);\n // }\n // }\n /**\n * Clears all the grouped columns of the Grid.\n *\n * @returns {void}\n */\n Grid.prototype.clearGrouping = function () {\n if (this.groupModule) {\n this.groupModule.clearGrouping();\n }\n };\n /**\n * Ungroups a column by column name.\n *\n * {% codeBlock src='grid/ungroupColumn/index.md' %}{% endcodeBlock %}\n *\n * @param {string} columnName - Defines the column name to ungroup.\n *\n * @returns {void}\n */\n Grid.prototype.ungroupColumn = function (columnName) {\n if (this.groupModule) {\n this.groupModule.ungroupColumn(columnName);\n }\n };\n /**\n * Column chooser can be displayed on screen by given position(X and Y axis).\n *\n * @param {number} x - Defines the X axis.\n * @param {number} y - Defines the Y axis.\n *\n * @returns {void}\n */\n Grid.prototype.openColumnChooser = function (x, y) {\n if (this.columnChooserModule) {\n this.columnChooserModule.openColumnChooser(x, y);\n }\n };\n Grid.prototype.scrollRefresh = function () {\n var _this = this;\n var refresh = function () {\n _this.scrollModule.refresh();\n _this.off(events.contentReady, refresh);\n };\n this.on(events.contentReady, refresh, this);\n };\n /**\n * Collapses a detail row with the given target.\n *\n * @param {Element} target - Defines the expanded element to collapse.\n * @returns {void}\n */\n // public detailCollapse(target: number | Element): void {\n // if (this.detailRowModule) {\n // this.detailRowModule.collapse(target);\n // }\n // }\n /**\n * Collapses all the detail rows of the Grid.\n *\n * @returns {void}\n */\n Grid.prototype.detailCollapseAll = function () {\n if (this.detailRowModule) {\n this.detailRowModule.collapseAll();\n }\n };\n /**\n * Expands a detail row with the given target.\n *\n * @param {Element} target - Defines the collapsed element to expand.\n * @returns {void}\n */\n // public detailExpand(target: number | Element): void {\n // if (this.detailRowModule) {\n // this.detailRowModule.expand(target);\n // }\n // }\n /**\n * Expands all the detail rows of the Grid.\n *\n * @returns {void}\n */\n Grid.prototype.detailExpandAll = function () {\n if (this.detailRowModule) {\n this.detailRowModule.expandAll();\n }\n };\n /**\n * Deselects the currently selected cells.\n *\n * @returns {void}\n */\n Grid.prototype.clearCellSelection = function () {\n if (this.selectionModule) {\n this.selectionModule.clearCellSelection();\n }\n };\n /**\n * Deselects the currently selected rows.\n *\n * @returns {void}\n */\n Grid.prototype.clearRowSelection = function () {\n if (this.selectionModule) {\n this.selectionModule.clearRowSelection();\n }\n };\n /**\n * Selects a collection of cells by row and column indexes.\n *\n * @param {ISelectedCell[]} rowCellIndexes - Specifies the row and column indexes.\n *\n * @returns {void}\n */\n Grid.prototype.selectCells = function (rowCellIndexes) {\n if (this.selectionModule) {\n this.selectionModule.selectCells(rowCellIndexes);\n }\n };\n /**\n * Selects a range of rows from start and end row indexes.\n *\n * @param {number} startIndex - Specifies the start row index.\n * @param {number} endIndex - Specifies the end row index.\n *\n * @returns {void}\n */\n Grid.prototype.selectRowsByRange = function (startIndex, endIndex) {\n if (this.selectionModule) {\n this.selectionModule.selectRowsByRange(startIndex, endIndex);\n }\n };\n /**\n * @hidden\n * @returns {boolean} Returns whether context menu is open or not\n */\n Grid.prototype.isContextMenuOpen = function () {\n return this.contextMenuModule && this.contextMenuModule.isOpen;\n };\n /**\n * @param {Function} module - Defines the module\n * @returns {boolean} return the injected modules\n * @hidden\n */\n Grid.prototype.ensureModuleInjected = function (module) {\n return this.getInjectedModules().indexOf(module) >= 0;\n };\n /**\n * Destroys the given template reference.\n *\n * @param {string[]} propertyNames - Defines the collection of template name.\n * @param {any} index - specifies the index\n *\n * @returns {void}\n */\n // eslint-disable-next-line\n Grid.prototype.destroyTemplate = function (propertyNames, index) {\n this.clearTemplate(propertyNames, index);\n };\n /**\n * @param {string | string[]} type - Defines the type\n * @param {Object} args - Defines the arguments\n * @returns {void}\n * @hidden\n * @private\n */\n Grid.prototype.log = function (type, args) {\n // eslint-disable-next-line\n this.loggerModule ? this.loggerModule.log(type, args) : (function () { return 0; })();\n };\n /**\n * @param {Element} element - Defines the element\n * @returns {void}\n * @hidden\n */\n Grid.prototype.applyBiggerTheme = function (element) {\n if (this.element.classList.contains('e-bigger')) {\n element.classList.add('e-bigger');\n }\n };\n /**\n * @hidden\n * @returns {Object} Returns the previous row data\n */\n Grid.prototype.getPreviousRowData = function () {\n var previousRowData = this.getRowsObject()[this.getRows().length - 1].data;\n return previousRowData;\n };\n /**\n * Hides the scrollbar placeholder of Grid content when grid content is not overflown.\n *\n * @returns {void}\n */\n Grid.prototype.hideScroll = function () {\n var content = this.getContent().querySelector('.' + literals.content);\n var scrollBar = this.getContent().querySelector('.e-scrollbar');\n if (content.scrollHeight <= content.clientHeight) {\n this.scrollModule.removePadding();\n content.style.overflowY = 'auto';\n }\n if (this.isFrozenGrid() && scrollBar) {\n var mvblScrollBar = this.getContent().querySelector('.e-movablescrollbar');\n var mvblChild = this.getContent().querySelector('.e-movablechild');\n scrollBar.style.display = 'flex';\n if (mvblScrollBar.offsetWidth >= mvblChild.offsetWidth) {\n scrollBar.style.display = 'none';\n this.notify(events.frozenHeight, 0);\n }\n }\n };\n /**\n * Get row index by primary key or row data.\n *\n * @param {string | Object} value - Defines the primary key value.\n *\n * @returns {number} Returns the index\n */\n Grid.prototype.getRowIndexByPrimaryKey = function (value) {\n var pkName = this.getPrimaryKeyFieldNames()[0];\n value = typeof value === 'object' ? value[\"\" + pkName] : value;\n var rows = this.getRowsObject();\n for (var i = 0; i < rows.length; i++) {\n if (rows[parseInt(i.toString(), 10)].isDetailRow || rows[parseInt(i.toString(), 10)].isCaptionRow) {\n continue;\n }\n var pKvalue = rows[parseInt(i.toString(), 10)].data[\"\" + pkName];\n if (pkName.split('.').length > 1) {\n pKvalue = performComplexDataOperation(pkName, rows[parseInt(i.toString(), 10)].data);\n }\n if (pKvalue === value) {\n return rows[parseInt(i.toString(), 10)].index;\n }\n }\n return -1;\n };\n /**\n * @param {string} field - Defines the field name\n * @returns {Column} returns the column\n * @hidden\n */\n // Need to have all columns while filtering with ColumnVirtualization.\n Grid.prototype.grabColumnByFieldFromAllCols = function (field) {\n var column;\n this.columnModel = [];\n this.updateColumnModel(this.columns);\n var gCols = this.columnModel;\n for (var i = 0; i < gCols.length; i++) {\n if (field === gCols[parseInt(i.toString(), 10)].field || (gCols[parseInt(i.toString(), 10)].isForeignColumn() &&\n field === gCols[parseInt(i.toString(), 10)].foreignKeyValue)) {\n column = gCols[parseInt(i.toString(), 10)];\n }\n }\n return column;\n };\n /**\n * @param {string} uid - Defines the uid\n * @returns {Column} returns the column\n * @hidden\n */\n // Need to have all columns while filtering with ColumnVirtualization.\n Grid.prototype.grabColumnByUidFromAllCols = function (uid) {\n var column;\n this.columnModel = [];\n this.updateColumnModel(this.columns);\n var gCols = this.columnModel;\n for (var i = 0; i < gCols.length; i++) {\n if (uid === gCols[parseInt(i.toString(), 10)].uid) {\n column = gCols[parseInt(i.toString(), 10)];\n }\n }\n return column;\n };\n /**\n * Get all filtered records from the Grid and it returns array of objects for the local dataSource, returns a promise object if the Grid has remote data.\n *\n * @returns {Object[] | Promise} Returns the filtered records\n */\n Grid.prototype.getFilteredRecords = function () {\n if (this.allowFiltering && this.filterSettings.columns.length) {\n var query = this.renderModule.data.generateQuery(true);\n if (this.dataSource && this.renderModule.data.isRemote() && this.dataSource instanceof DataManager) {\n return this.renderModule.data.getData(this.dataSource, query);\n }\n else {\n if (this.dataSource instanceof DataManager) {\n return this.dataSource.executeLocal(query);\n }\n else {\n return new DataManager(this.dataSource, query).executeLocal(query);\n }\n }\n }\n return [];\n };\n Grid.prototype.getUserAgent = function () {\n var userAgent = Browser.userAgent.toLowerCase();\n return /iphone|ipod|ipad|macintosh/.test(userAgent);\n };\n /**\n * @param {TouchEventArgs} e - Defines the TouchEventArgs\n * @returns {void}\n * @hidden\n */\n // Need to have all columns while filtering with ColumnVirtualization.\n // eslint-disable-next-line\n Grid.prototype.tapEvent = function (e) {\n if (this.getUserAgent()) {\n if (!Global.timer) {\n Global.timer = setTimeout(function () {\n Global.timer = null;\n }, 300);\n }\n else {\n clearTimeout(Global.timer);\n Global.timer = null;\n this.dblClickHandler(e);\n this.notify(events.doubleTap, e);\n }\n }\n };\n /**\n * @param {string} prefix - specifies the prefix\n * @returns {string} returns the row uid\n * @hidden\n */\n Grid.prototype.getRowUid = function (prefix) {\n return \"\" + prefix + this.rowUid++;\n };\n /**\n * @hidden\n * @returns {Element} returns the element\n */\n Grid.prototype.getMovableVirtualContent = function () {\n return this.getContent().querySelector('.' + literals.movableContent);\n };\n /**\n * @hidden\n * @returns {Element} returns the element\n */\n Grid.prototype.getFrozenVirtualContent = function () {\n return this.getContent().querySelector('.' + literals.frozenContent);\n };\n /**\n * @hidden\n * @returns {Element} returns the element\n */\n Grid.prototype.getMovableVirtualHeader = function () {\n return this.getHeaderContent().querySelector('.' + literals.movableHeader);\n };\n /**\n * @hidden\n * @returns {Element} returns the element\n */\n Grid.prototype.getFrozenVirtualHeader = function () {\n return this.getHeaderContent().querySelector('.' + literals.frozenHeader);\n };\n /**\n * @param {string} uid - specifies the uid\n * @returns {Element} returns the element\n * @hidden\n */\n Grid.prototype.getRowElementByUID = function (uid) {\n var rowEle;\n var rows = [];\n if (this.isFrozenGrid()) {\n var fRows = [].slice.call(this.getFrozenVirtualContent().querySelector(literals.tbody).children);\n var mRows = [].slice.call(this.getMovableVirtualContent().querySelector(literals.tbody).children);\n var frozenRigtRows = [];\n if (this.tablesCount === 3) {\n frozenRigtRows = [].slice.call(this.getContent().querySelector('.e-frozen-right-content').querySelector(literals.tbody).children);\n }\n if (this.frozenRows) {\n rows = [].slice.call(this.getFrozenVirtualHeader().querySelector(literals.tbody).children);\n rows = rows.concat([].slice.call(this.getMovableVirtualHeader().querySelector(literals.tbody).children));\n if (this.tablesCount === 3) {\n var frHdr = this.getHeaderContent().querySelector('.e-frozen-right-header');\n rows = rows.concat([].slice.call(frHdr.querySelector(literals.tbody).children)).concat(frozenRigtRows);\n }\n rows = rows.concat(fRows).concat(mRows);\n }\n else {\n rows = fRows.concat(mRows).concat(frozenRigtRows);\n }\n }\n else {\n var cntRows = [].slice.call(this.getContent().querySelector(literals.tbody).children);\n if (this.frozenRows) {\n rows = [].slice.call(this.getHeaderContent().querySelector(literals.tbody).children);\n rows = rows.concat(cntRows);\n }\n else {\n rows = cntRows;\n }\n }\n for (var _i = 0, rows_2 = rows; _i < rows_2.length; _i++) {\n var row = rows_2[_i];\n if (row.getAttribute('data-uid') === uid) {\n rowEle = row;\n break;\n }\n }\n return rowEle;\n };\n /**\n * Gets the hidden columns from the Grid.\n *\n * @returns {Column[]} Returns the Column\n */\n Grid.prototype.getHiddenColumns = function () {\n var cols = [];\n for (var _i = 0, _a = this.columnModel; _i < _a.length; _i++) {\n var col = _a[_i];\n if (col.visible === false) {\n cols.push(col);\n }\n }\n return cols;\n };\n /**\n * Calculates the page size by parent element height\n *\n * @param {number | string } containerHeight - specifies the container height\n * @returns {number} returns the page size\n */\n Grid.prototype.calculatePageSizeByParentHeight = function (containerHeight) {\n if (this.allowPaging) {\n if ((this.allowTextWrap && this.textWrapSettings.wrapMode === 'Header') || (!this.allowTextWrap)) {\n var pagesize = 0;\n if (containerHeight.indexOf('%') !== -1) {\n containerHeight = parseInt(containerHeight, 10) / 100 * this.element.clientHeight;\n }\n var nonContentHeight = this.getNoncontentHeight() + this.getRowHeight();\n if (containerHeight > nonContentHeight) {\n var contentHeight = 0;\n contentHeight = containerHeight - this.getNoncontentHeight();\n pagesize = (contentHeight / this.getRowHeight());\n }\n if (pagesize > 0) {\n return Math.floor(pagesize);\n }\n }\n }\n return 0;\n };\n Grid.prototype.getNoncontentHeight = function () {\n var height = 0;\n if (!isNullOrUndefined(this.getHeaderContent().clientHeight)) {\n height += this.getHeaderContent().clientHeight;\n }\n if (this.toolbar && !isNullOrUndefined(this.element.querySelector('.e-toolbar').clientHeight)) {\n height += this.element.querySelector('.e-toolbar').clientHeight;\n }\n if (this.allowPaging && !isNullOrUndefined(this.element.querySelector('.e-gridpager').clientHeight)) {\n height += this.element.querySelector('.e-gridpager').clientHeight;\n }\n if (this.showColumnChooser && !isNullOrUndefined(this.element.querySelector('.e-columnheader').clientHeight)) {\n height += this.element.querySelector('.e-columnheader').clientHeight;\n }\n if (this.allowGrouping && this.groupSettings.showDropArea && !isNullOrUndefined(this.element.querySelector('.e-groupdroparea').clientHeight)) {\n height += this.element.querySelector('.e-groupdroparea').clientHeight;\n }\n if (this.aggregates.length > 0 && !isNullOrUndefined(this.element.querySelector('.e-summaryrow').clientHeight)) {\n for (var i = 0; i < this.element.getElementsByClassName('e-summaryrow').length; i++) {\n height += this.element.getElementsByClassName('e-summaryrow')[parseInt(i.toString(), 10)].clientHeight;\n }\n }\n return height;\n };\n /**\n *To perform aggregate operation on a column.\n *\n * @param {AggregateColumnModel} summaryCol - Pass Aggregate Column details.\n * @param {Object} summaryData - Pass JSON Array for which its field values to be calculated.\n *\n * @returns {number} returns the summary values\n */\n Grid.prototype.getSummaryValues = function (summaryCol, summaryData) {\n return DataUtil.aggregates[summaryCol.type.toLowerCase()](summaryData, summaryCol.field);\n };\n /**\n * Sends a Post request to export Grid to Excel file in server side.\n *\n * @param {string} url - Pass Url for server side excel export action.\n *\n * @returns {void}\n */\n Grid.prototype.serverExcelExport = function (url) {\n this.isExcel = true;\n this.exportGrid(url);\n };\n /**\n * Sends a Post request to export Grid to Pdf file in server side.\n *\n * @param {string} url - Pass Url for server side pdf export action.\n *\n * @returns {void}\n */\n Grid.prototype.serverPdfExport = function (url) {\n this.isExcel = false;\n this.exportGrid(url);\n };\n /**\n * Sends a Post request to export Grid to CSV file in server side.\n *\n * @param {string} url - Pass Url for server side pdf export action.\n *\n * @returns {void}\n */\n Grid.prototype.serverCsvExport = function (url) {\n this.isExcel = true;\n this.exportGrid(url);\n };\n /**\n * @param {string} url - Defines exporting url\n * @returns {void}\n * @hidden\n */\n Grid.prototype.exportGrid = function (url) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var grid = this;\n var query = grid.getDataModule().generateQuery(true);\n var state = new UrlAdaptor().processQuery(new DataManager({ url: '' }), query);\n var queries = JSON.parse(state.data);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var gridModel = JSON.parse(this.addOnPersist(['allowGrouping', 'allowPaging', 'pageSettings', 'sortSettings', 'allowPdfExport', 'allowExcelExport', 'aggregates',\n 'filterSettings', 'groupSettings', 'columns', 'locale', 'searchSettings']));\n var include = ['field', 'headerText', 'type', 'format', 'visible', 'foreignKeyValue', 'foreignKeyField',\n 'template', 'index', 'width', 'textAlign', 'headerTextAlign', 'columns'];\n gridModel.filterSettings.columns = queries.where;\n gridModel.searchSettings.fields = queries.search && queries.search[0]['fields'] || [];\n gridModel.sortSettings.columns = queries.sorted;\n gridModel.columns = this.setHeaderText(gridModel.columns, include);\n var form = this.createElement('form', { id: 'ExportForm', styles: 'display:none;' });\n var gridInput = this.createElement('input', { id: 'gridInput', attrs: { name: 'gridModel' } });\n gridInput.value = JSON.stringify(gridModel);\n form.method = 'POST';\n form.action = url;\n form.appendChild(gridInput);\n document.body.appendChild(form);\n form.submit();\n form.remove();\n };\n /**\n * @param {Column[]} columns - Defines array of columns\n * @param {string[]} include - Defines array of sting\n * @returns {Column[]} returns array of columns\n * @hidden\n */\n Grid.prototype.setHeaderText = function (columns, include) {\n for (var i = 0; i < columns.length; i++) {\n var column = this.getColumnByUid(columns[parseInt(i.toString(), 10)].uid);\n columns[parseInt(i.toString(), 10)].headerText = column.headerText;\n if (!isNullOrUndefined(column.template)) {\n columns[parseInt(i.toString(), 10)].template = 'true';\n }\n if (columns[parseInt(i.toString(), 10)].format) {\n columns[parseInt(i.toString(), 10)].format = getNumberFormat(this.getFormat(columns[parseInt(i.toString(), 10)].format), columns[parseInt(i.toString(), 10)].type, this.isExcel, this.currencyCode);\n }\n if (columns[parseInt(i.toString(), 10)].columns) {\n this.setHeaderText(columns[parseInt(i.toString(), 10)].columns, include);\n }\n var keys = Object.keys(columns[parseInt(i.toString(), 10)]);\n for (var j = 0; j < keys.length; j++) {\n if (include.indexOf(keys[parseInt(j.toString(), 10)]) < 0) {\n delete columns[parseInt(i.toString(), 10)][keys[parseInt(j.toString(), 10)]];\n }\n }\n }\n return columns;\n };\n Grid.prototype.getFormat = function (format) {\n return typeof (format) === 'object' ? !isNullOrUndefined(format.format) ?\n format.format : format.skeleton : format;\n };\n /**\n * @hidden\n * @returns {boolean} returns the isCollapseStateEnabled\n */\n Grid.prototype.isCollapseStateEnabled = function () {\n var isExpanded = 'isExpanded';\n return this[\"\" + isExpanded] === false;\n };\n /**\n * @param {number} key - Defines the primary key value.\n * @param {Object} rowData - Defines the rowData\n * @returns {void}\n */\n Grid.prototype.updateRowValue = function (key, rowData) {\n var args = {\n requestType: 'save', data: rowData\n };\n this.showSpinner();\n this.notify(events.updateData, args);\n this.refresh();\n };\n /**\n * @hidden\n * @returns {void}\n */\n Grid.prototype.setForeignKeyData = function () {\n this.dataBind();\n var colpending = this.getDataModule().getForeignKeyDataState();\n if (colpending.isPending) {\n this.getDataModule().setForeignKeyDataState({});\n colpending.resolver();\n }\n else {\n this.getDataModule().setForeignKeyDataState({ isDataChanged: false });\n if (this.contentModule || this.headerModule) {\n this.renderModule.render();\n }\n }\n };\n /**\n * @param {string} field - specifies the field\n * @returns {void}\n * @hidden\n */\n Grid.prototype.resetFilterDlgPosition = function (field) {\n var header = this.getColumnHeaderByField(field);\n if (header) {\n var target = header.querySelector('.e-filtermenudiv');\n var filterDlg = this.element.querySelector('.e-filter-popup');\n if (target && filterDlg) {\n var gClient = this.element.getBoundingClientRect();\n var fClient = target.getBoundingClientRect();\n if (filterDlg) {\n if ((filterDlg.offsetWidth + fClient.right) > gClient.right) {\n filterDlg.style.left = ((fClient.right - filterDlg.offsetWidth) - gClient.left).toString() + 'px';\n }\n else {\n filterDlg.style.left = (fClient.right - gClient.left).toString() + 'px';\n }\n }\n }\n }\n };\n /**\n * @param {any} callBack - specifies the callBack method\n * @returns {void}\n * @hidden\n */\n // eslint-disable-next-line\n Grid.prototype.renderTemplates = function (callBack) {\n var isReactChild = this.parentDetails && this.parentDetails.parentInstObj && this.parentDetails.parentInstObj.isReact;\n if (isReactChild && this['portals']) {\n this.parentDetails.parentInstObj['portals'] = this.parentDetails.parentInstObj['portals']\n .concat(this['portals']);\n this.parentDetails.parentInstObj.renderTemplates(callBack);\n this['portals'] = undefined;\n }\n else {\n var portals = 'portals';\n this.notify('reactTemplateRender', this[\"\" + portals]);\n this.renderReactTemplates(callBack);\n }\n };\n /**\n * Apply the changes to the Grid without refreshing the rows.\n *\n * @param {BatchChanges} changes - Defines changes to be updated.\n * @returns {void}\n */\n Grid.prototype.batchUpdate = function (changes) {\n this.processRowChanges(changes);\n };\n /**\n * Apply the changes to the Grid in one batch after 50ms without refreshing the rows.\n *\n * @param {BatchChanges} changes - Defines changes to be updated.\n * @returns {void}\n */\n Grid.prototype.batchAsyncUpdate = function (changes) {\n this.processBulkRowChanges(changes);\n };\n Grid.prototype.processBulkRowChanges = function (changes) {\n var _this = this;\n if (!this.dataToBeUpdated) {\n this.dataToBeUpdated = Object.assign({ addedRecords: [], changedRecords: [], deletedRecords: [] }, changes);\n setTimeout(function () {\n _this.processRowChanges(_this.dataToBeUpdated);\n _this.dataToBeUpdated = null;\n }, this.asyncTimeOut);\n }\n else {\n var loopstring = [literals.addedRecords, literals.changedRecords, literals.deletedRecords];\n var keyField = this.getPrimaryKeyFieldNames()[0];\n for (var i = 0; i < loopstring.length; i++) {\n if (changes[loopstring[parseInt(i.toString(), 10)]]) {\n compareChanges(this, changes, loopstring[parseInt(i.toString(), 10)], keyField);\n }\n }\n }\n };\n Grid.prototype.processRowChanges = function (changes) {\n var _this = this;\n var keyField = this.getPrimaryKeyFieldNames()[0];\n changes = Object.assign({ addedRecords: [], changedRecords: [], deletedRecords: [] }, changes);\n var promise = this.getDataModule().saveChanges(changes, keyField, {}, this.getDataModule().generateQuery().requiresCount());\n if (this.getDataModule().isRemote()) {\n promise.then(function () {\n _this.setNewData();\n });\n }\n else {\n this.setNewData();\n }\n };\n Grid.prototype.setNewData = function () {\n var _this = this;\n var oldValues = JSON.parse(JSON.stringify(this.getCurrentViewRecords()));\n var getData = this.getDataModule().getData({}, this.getDataModule().generateQuery().requiresCount());\n getData.then(function (e) {\n _this.bulkRefresh(e.result, oldValues, e.count);\n });\n };\n Grid.prototype.deleteRowElement = function (row) {\n var tr = this.getRowElementByUID(row.uid);\n var index = parseInt(tr.getAttribute(literals.dataRowIndex), 10);\n remove(tr);\n if (this.getFrozenColumns()) {\n var mtr = this.getMovableRows()[parseInt(index.toString(), 10)];\n remove(mtr);\n }\n };\n Grid.prototype.bulkRefresh = function (result, oldValues, count) {\n var _this = this;\n var rowObj = this.getRowsObject();\n var keyField = this.getPrimaryKeyFieldNames()[0];\n var _loop_3 = function (i) {\n if (!result.filter(function (e) { return e[\"\" + keyField] === rowObj[parseInt(i.toString(), 10)].data[\"\" + keyField]; }).length) {\n this_3.deleteRowElement(rowObj[parseInt(i.toString(), 10)]);\n rowObj.splice(i, 1);\n i--;\n }\n out_i_1 = i;\n };\n var this_3 = this, out_i_1;\n for (var i = 0; i < rowObj.length; i++) {\n _loop_3(i);\n i = out_i_1;\n }\n var _loop_4 = function (i) {\n var isRowExist;\n oldValues.filter(function (e) {\n if (e[\"\" + keyField] === result[parseInt(i.toString(), 10)][\"\" + keyField]) {\n if (e !== result[parseInt(i.toString(), 10)]) {\n _this.setRowData(result[parseInt(i.toString(), 10)][\"\" + keyField], result[parseInt(i.toString(), 10)]);\n }\n isRowExist = true;\n }\n });\n if (!isRowExist) {\n this_4.renderRowElement(result[parseInt(i.toString(), 10)], i);\n }\n };\n var this_4 = this;\n for (var i = 0; i < result.length; i++) {\n _loop_4(i);\n }\n this.currentViewData = result;\n var rows = [].slice.call(this.getContentTable().getElementsByClassName(literals.row));\n resetRowIndex(this, this.getRowsObject(), rows);\n setRowElements(this);\n if (this.allowPaging) {\n this.notify(events.inBoundModelChanged, { module: 'pager', properties: { totalRecordsCount: count } });\n }\n };\n Grid.prototype.renderRowElement = function (data, index) {\n var row = new RowRenderer(this.serviceLocator, null, this);\n var model = new RowModelGenerator(this);\n var modelData = model.generateRows([data]);\n var tr = row.render(modelData[0], this.getColumns());\n var mTr;\n var mTbody;\n this.addRowObject(modelData[0], index);\n var tbody = this.getContentTable().querySelector(literals.tbody);\n if (tbody.querySelector('.e-emptyrow')) {\n var emptyRow = tbody.querySelector('.e-emptyrow');\n emptyRow.parentNode.removeChild(emptyRow);\n if (this.getFrozenColumns()) {\n var moveTbody = this.getContent().querySelector('.' + literals.movableContent).querySelector(literals.tbody);\n (moveTbody.firstElementChild).parentNode.removeChild(moveTbody.firstElementChild);\n }\n }\n if (this.getFrozenColumns()) {\n mTr = renderMovable(tr, this.getFrozenColumns(), this);\n if (this.frozenRows && index < this.frozenRows) {\n mTbody = this.getHeaderContent().querySelector('.' + literals.movableHeader).querySelector(literals.tbody);\n }\n else {\n mTbody = this.getContent().querySelector('.' + literals.movableContent).querySelector(literals.tbody);\n }\n mTbody.appendChild(mTr);\n if (this.height === 'auto') {\n this.notify(events.frozenHeight, {});\n }\n }\n if (this.frozenRows && index < this.frozenRows) {\n tbody = this.getHeaderContent().querySelector(literals.tbody);\n }\n else {\n tbody = this.getContent().querySelector(literals.tbody);\n }\n tbody = this.getContent().querySelector(literals.tbody);\n tbody.appendChild(tr);\n };\n Grid.prototype.addRowObject = function (row, index) {\n var frzCols = this.getFrozenColumns();\n if (frzCols) {\n var mRows = this.getMovableRowsObject();\n var mRow = row.clone();\n mRow.cells = mRow.cells.slice(frzCols);\n row.cells = row.cells.slice(0, frzCols);\n mRows.splice(index, 1, mRow);\n }\n this.getRowsObject().splice(index, 1, row);\n };\n /**\n * @hidden\n * @returns {void}\n */\n Grid.prototype.updateVisibleExpandCollapseRows = function () {\n var rows = this.getRowsObject();\n for (var i = 0, len = rows.length; i < len; i++) {\n if ((rows[parseInt(i.toString(), 10)].isDataRow || rows[parseInt(i.toString(), 10)].isAggregateRow)\n && this.getRowElementByUID(rows[parseInt(i.toString(), 10)].uid).style.display === 'none') {\n rows[parseInt(i.toString(), 10)].visible = false;\n }\n else {\n rows[parseInt(i.toString(), 10)].visible = true;\n }\n }\n };\n /**\n * Method to sanitize any suspected untrusted strings and scripts before rendering them.\n *\n * @param {string} value - Specifies the html value to sanitize\n * @returns {string} Returns the sanitized html string\n * @hidden\n */\n Grid.prototype.sanitize = function (value) {\n if (this.enableHtmlSanitizer) {\n return SanitizeHtmlHelper.sanitize(value);\n }\n return value;\n };\n /**\n * @param {string | number} height - specifies the height\n * @returns {number | string} - specifies the height number\n * @hidden\n */\n Grid.prototype.getHeight = function (height) {\n if (!Number.isInteger(height) && height.indexOf('%') !== -1) {\n height = parseInt(height, 10) / 100 * this.element.clientHeight;\n }\n else if (!Number.isInteger(height) && this.height !== 'auto') {\n height = parseInt(height, 10);\n }\n else {\n height = this.height;\n }\n return height;\n };\n /**\n * @hidden\n * @returns {Element} - returns frozen right content\n */\n Grid.prototype.getFrozenRightContent = function () {\n return this.getContent().querySelector('.e-frozen-right-content');\n };\n /**\n * @hidden\n * @returns {Element} - returns frozen right header\n */\n Grid.prototype.getFrozenRightHeader = function () {\n return this.getHeaderContent().querySelector('.e-frozen-right-header');\n };\n /**\n * @hidden\n * @returns {Element} - returns movable header tbody\n */\n Grid.prototype.getMovableHeaderTbody = function () {\n return this.getMovableVirtualHeader().querySelector(literals.tbody);\n };\n /**\n * @hidden\n * @returns {Element} - returns movable content tbody\n */\n Grid.prototype.getMovableContentTbody = function () {\n return this.getMovableVirtualContent().querySelector(literals.tbody);\n };\n /**\n * @hidden\n * @returns {Element} - returns frozen header tbody\n */\n Grid.prototype.getFrozenHeaderTbody = function () {\n return this.getFrozenVirtualHeader().querySelector(literals.tbody);\n };\n /**\n * @hidden\n * @returns {Element} - returns frozen left content tbody\n */\n Grid.prototype.getFrozenLeftContentTbody = function () {\n return this.getFrozenVirtualContent().querySelector(literals.tbody);\n };\n /**\n * @hidden\n * @returns {Element} - returns frozen right header tbody\n */\n Grid.prototype.getFrozenRightHeaderTbody = function () {\n return this.getFrozenRightHeader().querySelector(literals.tbody);\n };\n /**\n * @returns {Element} returns frozen right content tbody\n * @hidden\n */\n Grid.prototype.getFrozenRightContentTbody = function () {\n var cnt = this.getFrozenRightContent();\n var tbody;\n if (cnt) {\n tbody = this.getFrozenRightContent().querySelector(literals.tbody);\n }\n return tbody;\n };\n /**\n * @param {boolean} isCustom - Defines custom filter dialog open\n * @returns {void}\n * @hidden\n */\n Grid.prototype.showResponsiveCustomFilter = function (isCustom) {\n if (this.filterModule) {\n this.filterModule.showCustomFilter(isCustom || this.rowRenderingMode === 'Vertical');\n }\n };\n /**\n * @param {boolean} isCustom - Defines custom sort dialog open\n * @returns {void}\n * @hidden\n */\n Grid.prototype.showResponsiveCustomSort = function (isCustom) {\n if (this.sortModule) {\n this.sortModule.showCustomSort(isCustom || this.rowRenderingMode === 'Vertical');\n }\n };\n /**\n * To manually show the vertical row mode filter dialog\n *\n * @returns {void}\n */\n Grid.prototype.showAdaptiveFilterDialog = function () {\n if (this.enableAdaptiveUI) {\n this.showResponsiveCustomFilter(true);\n }\n };\n /**\n * To manually show the vertical row sort filter dialog\n *\n * @returns {void}\n */\n Grid.prototype.showAdaptiveSortDialog = function () {\n if (this.enableAdaptiveUI) {\n this.showResponsiveCustomSort(true);\n }\n };\n /**\n * @param {boolean} isColVirtualization - Defines column virtualization\n * @returns {Column[]} returns array of column models\n * @hidden\n */\n Grid.prototype.getCurrentVisibleColumns = function (isColVirtualization) {\n var cols = [];\n var gridCols = isColVirtualization ? this.getColumns() : this.columnModel;\n for (var _i = 0, gridCols_1 = gridCols; _i < gridCols_1.length; _i++) {\n var col = gridCols_1[_i];\n if (col.visible) {\n cols.push(col);\n }\n }\n return cols;\n };\n Grid.prototype.enableInfiniteAggrgate = function () {\n if (this.enableInfiniteScrolling && this.groupSettings.columns.length && !this.groupSettings.disablePageWiseAggregates\n && !this.groupSettings.enableLazyLoading) {\n this.setProperties({ groupSettings: { disablePageWiseAggregates: true } }, true);\n }\n };\n var Grid_1;\n __decorate([\n Property([])\n ], Grid.prototype, \"currentViewData\", void 0);\n __decorate([\n Property()\n ], Grid.prototype, \"parentDetails\", void 0);\n __decorate([\n Property()\n ], Grid.prototype, \"showHider\", void 0);\n __decorate([\n Property([])\n ], Grid.prototype, \"columns\", void 0);\n __decorate([\n Property(true)\n ], Grid.prototype, \"enableAltRow\", void 0);\n __decorate([\n Property(true)\n ], Grid.prototype, \"enableHover\", void 0);\n __decorate([\n Property(false)\n ], Grid.prototype, \"enableAutoFill\", void 0);\n __decorate([\n Property(true)\n ], Grid.prototype, \"allowKeyboard\", void 0);\n __decorate([\n Property(false)\n ], Grid.prototype, \"enableStickyHeader\", void 0);\n __decorate([\n Property(false)\n ], Grid.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Property(false)\n ], Grid.prototype, \"allowTextWrap\", void 0);\n __decorate([\n Complex({}, TextWrapSettings)\n ], Grid.prototype, \"textWrapSettings\", void 0);\n __decorate([\n Complex({}, ResizeSettings)\n ], Grid.prototype, \"resizeSettings\", void 0);\n __decorate([\n Property(false)\n ], Grid.prototype, \"allowPaging\", void 0);\n __decorate([\n Complex({}, PageSettings)\n ], Grid.prototype, \"pageSettings\", void 0);\n __decorate([\n Complex({}, LoadingIndicator)\n ], Grid.prototype, \"loadingIndicator\", void 0);\n __decorate([\n Property(true)\n ], Grid.prototype, \"enableVirtualMaskRow\", void 0);\n __decorate([\n Property(false)\n ], Grid.prototype, \"enableVirtualization\", void 0);\n __decorate([\n Property(false)\n ], Grid.prototype, \"enableColumnVirtualization\", void 0);\n __decorate([\n Property(false)\n ], Grid.prototype, \"enableInfiniteScrolling\", void 0);\n __decorate([\n Complex({}, SearchSettings)\n ], Grid.prototype, \"searchSettings\", void 0);\n __decorate([\n Property(false)\n ], Grid.prototype, \"allowSorting\", void 0);\n __decorate([\n Property('Ellipsis')\n ], Grid.prototype, \"clipMode\", void 0);\n __decorate([\n Property(true)\n ], Grid.prototype, \"allowMultiSorting\", void 0);\n __decorate([\n Property(false)\n ], Grid.prototype, \"allowExcelExport\", void 0);\n __decorate([\n Property(false)\n ], Grid.prototype, \"allowPdfExport\", void 0);\n __decorate([\n Complex({}, SortSettings)\n ], Grid.prototype, \"sortSettings\", void 0);\n __decorate([\n Complex({}, InfiniteScrollSettings)\n ], Grid.prototype, \"infiniteScrollSettings\", void 0);\n __decorate([\n Property(true)\n ], Grid.prototype, \"allowSelection\", void 0);\n __decorate([\n Property(-1)\n ], Grid.prototype, \"selectedRowIndex\", void 0);\n __decorate([\n Complex({}, SelectionSettings)\n ], Grid.prototype, \"selectionSettings\", void 0);\n __decorate([\n Property(false)\n ], Grid.prototype, \"allowFiltering\", void 0);\n __decorate([\n Property('Horizontal')\n ], Grid.prototype, \"rowRenderingMode\", void 0);\n __decorate([\n Property(false)\n ], Grid.prototype, \"enableAdaptiveUI\", void 0);\n __decorate([\n Property(false)\n ], Grid.prototype, \"allowReordering\", void 0);\n __decorate([\n Property(false)\n ], Grid.prototype, \"allowResizing\", void 0);\n __decorate([\n Property(false)\n ], Grid.prototype, \"allowRowDragAndDrop\", void 0);\n __decorate([\n Complex({}, RowDropSettings)\n ], Grid.prototype, \"rowDropSettings\", void 0);\n __decorate([\n Complex({}, FilterSettings)\n ], Grid.prototype, \"filterSettings\", void 0);\n __decorate([\n Property(false)\n ], Grid.prototype, \"allowGrouping\", void 0);\n __decorate([\n Property(false)\n ], Grid.prototype, \"enableImmutableMode\", void 0);\n __decorate([\n Property(false)\n ], Grid.prototype, \"showColumnMenu\", void 0);\n __decorate([\n Property(false)\n ], Grid.prototype, \"autoFit\", void 0);\n __decorate([\n Complex({}, GroupSettings)\n ], Grid.prototype, \"groupSettings\", void 0);\n __decorate([\n Complex({}, EditSettings)\n ], Grid.prototype, \"editSettings\", void 0);\n __decorate([\n Collection([], AggregateRow)\n ], Grid.prototype, \"aggregates\", void 0);\n __decorate([\n Property(false)\n ], Grid.prototype, \"showColumnChooser\", void 0);\n __decorate([\n Complex({}, ColumnChooserSettings)\n ], Grid.prototype, \"columnChooserSettings\", void 0);\n __decorate([\n Property(false)\n ], Grid.prototype, \"enableHeaderFocus\", void 0);\n __decorate([\n Property('auto')\n ], Grid.prototype, \"height\", void 0);\n __decorate([\n Property('auto')\n ], Grid.prototype, \"width\", void 0);\n __decorate([\n Property('Default')\n ], Grid.prototype, \"gridLines\", void 0);\n __decorate([\n Property()\n ], Grid.prototype, \"rowTemplate\", void 0);\n __decorate([\n Property()\n ], Grid.prototype, \"detailTemplate\", void 0);\n __decorate([\n Property()\n ], Grid.prototype, \"childGrid\", void 0);\n __decorate([\n Property()\n ], Grid.prototype, \"queryString\", void 0);\n __decorate([\n Property('AllPages')\n ], Grid.prototype, \"printMode\", void 0);\n __decorate([\n Property('Expanded')\n ], Grid.prototype, \"hierarchyPrintMode\", void 0);\n __decorate([\n Property([])\n ], Grid.prototype, \"dataSource\", void 0);\n __decorate([\n Property(null)\n ], Grid.prototype, \"rowHeight\", void 0);\n __decorate([\n Property()\n ], Grid.prototype, \"query\", void 0);\n __decorate([\n Property('USD')\n ], Grid.prototype, \"currencyCode\", void 0);\n __decorate([\n Property()\n ], Grid.prototype, \"toolbar\", void 0);\n __decorate([\n Property()\n ], Grid.prototype, \"contextMenuItems\", void 0);\n __decorate([\n Property()\n ], Grid.prototype, \"columnMenuItems\", void 0);\n __decorate([\n Property()\n ], Grid.prototype, \"toolbarTemplate\", void 0);\n __decorate([\n Property()\n ], Grid.prototype, \"pagerTemplate\", void 0);\n __decorate([\n Property(0)\n ], Grid.prototype, \"frozenRows\", void 0);\n __decorate([\n Property(0)\n ], Grid.prototype, \"frozenColumns\", void 0);\n __decorate([\n Property('')\n ], Grid.prototype, \"cssClass\", void 0);\n __decorate([\n Property('All')\n ], Grid.prototype, \"columnQueryMode\", void 0);\n __decorate([\n Property({})\n ], Grid.prototype, \"currentAction\", void 0);\n __decorate([\n Property('21.2.10')\n ], Grid.prototype, \"ej2StatePersistenceVersion\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"destroyed\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"load\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"rowDataBound\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"queryCellInfo\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"headerCellInfo\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"actionBegin\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"actionComplete\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"actionFailure\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"dataBound\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"recordDoubleClick\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"recordClick\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"rowSelecting\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"rowSelected\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"rowDeselecting\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"rowDeselected\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"cellSelecting\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"cellSelected\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"cellDeselecting\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"cellDeselected\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"columnSelecting\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"columnSelected\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"columnDeselecting\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"columnDeselected\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"columnDragStart\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"columnDrag\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"columnDrop\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"printComplete\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"beforePrint\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"pdfQueryCellInfo\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"pdfHeaderQueryCellInfo\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"pdfAggregateQueryCellInfo\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"excelAggregateQueryCellInfo\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"exportDetailDataBound\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"excelQueryCellInfo\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"excelHeaderQueryCellInfo\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"beforeExcelExport\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"excelExportComplete\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"beforePdfExport\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"pdfExportComplete\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"rowDragStartHelper\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"detailDataBound\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"rowDragStart\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"rowDrag\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"rowDrop\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"toolbarClick\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"beforeOpenColumnChooser\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"beforeOpenAdaptiveDialog\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"batchAdd\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"batchDelete\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"batchCancel\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"beforeBatchAdd\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"beforeBatchDelete\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"beforeBatchSave\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"beginEdit\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"commandClick\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"cellEdit\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"cellSave\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"cellSaved\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"resizeStart\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"resizing\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"resizeStop\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"keyPressed\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"beforeDataBound\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"contextMenuOpen\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"contextMenuClick\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"columnMenuOpen\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"columnMenuClick\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"checkBoxChange\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"beforeCopy\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"beforePaste\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"beforeAutoFill\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"columnDataStateChange\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"dataStateChange\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"dataSourceChanged\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"exportGroupCaption\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"lazyLoadGroupExpand\", void 0);\n __decorate([\n Event()\n ], Grid.prototype, \"lazyLoadGroupCollapse\", void 0);\n Grid = Grid_1 = __decorate([\n NotifyPropertyChanges\n ], Grid);\n return Grid;\n}(Component));\nexport { Grid };\n","import { print as printWindow, createElement, detach, classList, selectAll, extend } from '@syncfusion/ej2-base';\nimport { getPrintGridModel } from '../base/util';\nimport { Grid } from '../base/grid';\nimport * as events from '../base/constant';\nimport { Deferred } from '@syncfusion/ej2-data';\nimport * as literals from '../base/string-literals';\n/**\n * @returns {string[]} returns the cloned property\n * @hidden\n */\nexport function getCloneProperties() {\n return ['aggregates', 'allowGrouping', 'allowFiltering', 'allowMultiSorting', 'allowReordering', 'allowSorting',\n 'allowTextWrap', 'childGrid', 'columns', 'currentViewData', 'dataSource', 'detailTemplate', 'enableAltRow',\n 'enableColumnVirtualization', 'filterSettings', 'gridLines',\n 'groupSettings', 'height', 'locale', 'pageSettings', 'printMode', 'query', 'queryString', 'enableRtl',\n 'rowHeight', 'rowTemplate', 'sortSettings', 'textWrapSettings', 'allowPaging', 'hierarchyPrintMode', 'searchSettings',\n 'queryCellInfo', 'beforeDataBound'];\n}\n/**\n *\n * The `Print` module is used to handle print action.\n */\nvar Print = /** @class */ (function () {\n /**\n * Constructor for the Grid print module\n *\n * @param {IGrid} parent - specifies the IGrid\n * @param {Scroll} scrollModule - specifies the scroll module\n * @hidden\n */\n function Print(parent, scrollModule) {\n this.isAsyncPrint = false;\n this.defered = new Deferred();\n this.parent = parent;\n if (this.parent.isDestroyed) {\n return;\n }\n this.parent.on(events.contentReady, this.isContentReady(), this);\n this.actionBeginFunction = this.actionBegin.bind(this);\n this.parent.addEventListener(events.actionBegin, this.actionBeginFunction);\n this.parent.on(events.onEmpty, this.onEmpty.bind(this));\n this.parent.on(events.hierarchyPrint, this.hierarchyPrint, this);\n this.scrollModule = scrollModule;\n }\n Print.prototype.isContentReady = function () {\n var _this = this;\n if (this.isPrintGrid() && (this.parent.hierarchyPrintMode === 'None' || !this.parent.childGrid)) {\n return this.contentReady;\n }\n return function () {\n _this.defered.promise.then(function () {\n _this.contentReady();\n });\n if (_this.isPrintGrid()) {\n _this.hierarchyPrint();\n }\n };\n };\n Print.prototype.hierarchyPrint = function () {\n this.removeColGroup(this.parent);\n var printGridObj = window.printGridObj;\n if (printGridObj && !printGridObj.element.querySelector('[aria-busy=true')) {\n printGridObj.printModule.defered.resolve();\n }\n };\n /**\n * By default, prints all the Grid pages and hides the pager.\n * > You can customize print options using the\n * [`printMode`](./printmode/).\n *\n * @returns {void}\n */\n Print.prototype.print = function () {\n this.renderPrintGrid();\n };\n Print.prototype.onEmpty = function () {\n if (this.isPrintGrid()) {\n this.contentReady();\n }\n };\n Print.prototype.actionBegin = function () {\n if (this.isPrintGrid()) {\n this.isAsyncPrint = true;\n }\n };\n Print.prototype.renderPrintGrid = function () {\n var gObj = this.parent;\n var element = createElement('div', {\n id: this.parent.element.id + '_print', className: gObj.element.className + ' e-print-grid'\n });\n element.classList.remove('e-gridhover');\n document.body.appendChild(element);\n var printGrid = new Grid(getPrintGridModel(gObj, gObj.hierarchyPrintMode));\n for (var i = 0; i < printGrid.columns.length; i++) {\n printGrid.columns[parseInt(i.toString(), 10)] = extend({}, printGrid.columns[parseInt(i.toString(), 10)]);\n if (gObj.isFrozenGrid() && !gObj.getFrozenColumns()) {\n printGrid.columns[parseInt(i.toString(), 10)].freeze = undefined;\n }\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.parent.isAngular) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n printGrid.viewContainerRef = this.parent.viewContainerRef;\n }\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n printGrid.load = function () { };\n printGrid.query = gObj.getQuery().clone();\n window.printGridObj = printGrid;\n printGrid.isPrinting = true;\n var modules = printGrid.getInjectedModules();\n var injectedModues = gObj.getInjectedModules();\n if (!modules || modules.length !== injectedModues.length) {\n printGrid.setInjectedModules(injectedModues);\n }\n gObj.notify(events.printGridInit, { element: element, printgrid: printGrid });\n this.parent.log('exporting_begin', this.getModuleName());\n printGrid.registeredTemplate = this.parent.registeredTemplate;\n printGrid.isVue = this.parent.isVue;\n printGrid.appendTo(element);\n if (!gObj.isVue3) {\n printGrid.trigger = gObj.trigger;\n }\n };\n Print.prototype.contentReady = function () {\n if (this.isPrintGrid()) {\n var gObj = this.parent;\n if (this.isAsyncPrint) {\n this.printGrid();\n return;\n }\n var args = {\n requestType: 'print',\n element: gObj.element,\n selectedRows: gObj.getContentTable().querySelectorAll('tr[aria-selected=\"true\"]'),\n cancel: false,\n hierarchyPrintMode: gObj.hierarchyPrintMode\n };\n if (!this.isAsyncPrint) {\n gObj.trigger(events.beforePrint, args);\n }\n if (args.cancel) {\n detach(gObj.element);\n return;\n }\n if (!this.isAsyncPrint) {\n this.printGrid();\n }\n }\n };\n Print.prototype.printGrid = function () {\n var gObj = this.parent;\n // Height adjustment on print grid\n if (gObj.height !== 'auto') { // if scroller enabled\n var cssProps = this.scrollModule.getCssProperties();\n var contentDiv = gObj.element.querySelector('.' + literals.content);\n var headerDiv = gObj.element.querySelector('.' + literals.gridHeader);\n contentDiv.style.height = 'auto';\n contentDiv.style.overflowY = 'auto';\n headerDiv.style[cssProps.padding] = '';\n headerDiv.firstElementChild.style[cssProps.border] = '';\n }\n // Grid alignment adjustment on grouping\n if (gObj.allowGrouping) {\n if (!gObj.groupSettings.columns.length) {\n gObj.element.querySelector('.e-groupdroparea').style.display = 'none';\n }\n else {\n this.removeColGroup(gObj);\n }\n }\n // hide horizontal scroll\n for (var _i = 0, _a = [].slice.call(gObj.element.getElementsByClassName(literals.content)); _i < _a.length; _i++) {\n var element = _a[_i];\n element.style.overflowX = 'hidden';\n }\n // Hide the waiting popup\n var waitingPop = [].slice.call(gObj.element.getElementsByClassName('e-spin-show'));\n for (var _b = 0, _c = [].slice.call(waitingPop); _b < _c.length; _b++) {\n var element = _c[_b];\n classList(element, ['e-spin-hide'], ['e-spin-show']);\n }\n this.printGridElement(gObj);\n gObj.isPrinting = false;\n delete window.printGridObj;\n var args = {\n element: gObj.element\n };\n gObj.trigger(events.printComplete, args);\n gObj.destroy();\n this.parent.log('exporting_complete', this.getModuleName());\n };\n Print.prototype.printGridElement = function (gObj) {\n classList(gObj.element, ['e-print-grid-layout'], ['e-print-grid']);\n if (gObj.isPrinting) {\n detach(gObj.element);\n }\n this.printWind = window.open('', 'print', 'height=' + window.outerHeight + ',width=' + window.outerWidth + ',tabbar=no');\n this.printWind.moveTo(0, 0);\n this.printWind.resizeTo(screen.availWidth, screen.availHeight);\n this.printWind = printWindow(gObj.element, this.printWind);\n };\n Print.prototype.removeColGroup = function (gObj) {\n var depth = gObj.groupSettings.columns.length;\n var element = gObj.element;\n var id = '#' + gObj.element.id;\n if (!depth) {\n return;\n }\n var groupCaption = selectAll('.e-groupcaption', element);\n var colSpan = groupCaption[depth - 1].getAttribute('colspan');\n for (var i = 0; i < groupCaption.length; i++) {\n groupCaption[parseInt(i.toString(), 10)].setAttribute('colspan', colSpan);\n }\n var colGroups = selectAll(\"colgroup\" + id + \"colgroup\", element);\n var contentColGroups = selectAll('.e-content colgroup', element);\n this.hideColGroup(colGroups, depth);\n this.hideColGroup(contentColGroups, depth);\n };\n Print.prototype.hideColGroup = function (colGroups, depth) {\n for (var i = 0; i < colGroups.length; i++) {\n for (var j = 0; j < depth; j++) {\n colGroups[parseInt(i.toString(), 10)].children[parseInt(j.toString(), 10)].style.display = 'none';\n }\n }\n };\n /**\n * To destroy the print\n *\n * @returns {boolean} returns the isPrintGrid or not\n * @hidden\n */\n Print.prototype.isPrintGrid = function () {\n return this.parent.element.id.indexOf('_print') > 0 && this.parent.isPrinting;\n };\n /**\n * To destroy the print\n *\n * @returns {void}\n * @hidden\n */\n Print.prototype.destroy = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n this.parent.off(events.contentReady, this.contentReady.bind(this));\n this.parent.removeEventListener(events.actionBegin, this.actionBeginFunction);\n this.parent.off(events.onEmpty, this.onEmpty.bind(this));\n this.parent.off(events.hierarchyPrint, this.hierarchyPrint);\n };\n /**\n * For internal use only - Get the module name.\n *\n * @returns {string} returns the module name\n * @private\n */\n Print.prototype.getModuleName = function () {\n return 'print';\n };\n Print.printGridProp = getCloneProperties().concat([events.beforePrint, events.printComplete, events.load]);\n return Print;\n}());\nexport { Print };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { merge, isNullOrUndefined, extend, Property } from '@syncfusion/ej2-base';\nimport { Query, DataUtil } from '@syncfusion/ej2-data';\nimport { ValueFormatter } from '../services/value-formatter';\nimport { getUid, templateCompiler, getForeignData, getObject } from '../base/util';\n/**\n * Represents Grid `Column` model class.\n */\nvar Column = /** @class */ (function () {\n function Column(options, parent) {\n var _this = this;\n /**\n * If `disableHtmlEncode` is set to true, it encodes the HTML of the header and content cells.\n *\n * @default true\n */\n this.disableHtmlEncode = true;\n /**\n * If `allowSorting` set to false, then it disables sorting option of a particular column.\n * By default all columns are sortable.\n *\n * @default true\n */\n this.allowSorting = true;\n /**\n * If `allowResizing` is set to false, it disables resize option of a particular column.\n * By default all the columns can be resized.\n *\n * @default true\n */\n this.allowResizing = true;\n /**\n * If `allowFiltering` set to false, then it disables filtering option and filter bar element of a particular column.\n * By default all columns are filterable.\n *\n * @default true\n */\n this.allowFiltering = true;\n /**\n * If `allowGrouping` set to false, then it disables grouping of a particular column.\n * By default all columns are groupable.\n *\n * @default true\n */\n this.allowGrouping = true;\n /**\n * If `allowReordering` set to false, then it disables reorder of a particular column.\n * By default all columns can be reorder.\n *\n * @default true\n */\n this.allowReordering = true;\n /**\n * If `showColumnMenu` set to false, then it disable the column menu of a particular column.\n * By default column menu will show for all columns\n *\n * @default true\n */\n this.showColumnMenu = true;\n /**\n * If `enableGroupByFormat` set to true, then it groups the particular column by formatted values.\n *\n * @default true\n */\n this.enableGroupByFormat = false;\n /**\n * If `allowEditing` set to false, then it disables editing of a particular column.\n * By default all columns are editable.\n *\n * @default true\n */\n this.allowEditing = true;\n /**\n * It is used to customize the default filter options for a specific columns.\n * * type - Specifies the filter type as menu or checkbox.\n * * ui - to render custom component for specific column it has following functions.\n * * ui.create – It is used for creating custom components.\n * * ui.read - It is used for read the value from the component.\n * * ui.write - It is used to apply component model as dynamically.\n * {% codeBlock src=\"grid/filter-menu-api/index.ts\" %}{% endcodeBlock %}\n *\n * > Check the [`Filter UI`](../../grid/filtering/filter-menu/#custom-component-in-filter-menu) for its customization.\n *\n * @default {}\n */\n this.filter = {};\n /**\n * If `showInColumnChooser` set to false, then hide the particular column in column chooser.\n * By default all columns are displayed in column Chooser.\n *\n * @default true\n */\n this.showInColumnChooser = true;\n /**\n * Defines the `IEditCell` object to customize default edit cell.\n *\n * @default {}\n */\n this.edit = {};\n /**\n * If `allowSearching` set to false, then it disables Searching of a particular column.\n * By default all columns allow Searching.\n *\n * @default true\n */\n this.allowSearching = true;\n /**\n * If `autoFit` set to true, then the particular column content width will be\n * adjusted based on its content in the initial rendering itself.\n * Setting this property as true is equivalent to calling `autoFitColumns` method in the `dataBound` event.\n *\n * @default false\n */\n this.autoFit = false;\n this.sortDirection = 'Descending';\n /**\n * @returns {Function} returns the edit template\n * @hidden */\n this.getEditTemplate = function () { return _this.editTemplateFn; };\n /**\n * @returns {Function} returns the filter template\n * @hidden */\n this.getFilterTemplate = function () { return _this.filterTemplateFn; };\n merge(this, options);\n this.parent = parent;\n if (this.type === 'none') {\n this.type = null;\n }\n else if (this.type) {\n this.type = typeof (this.type) === 'string' ? this.type.toLowerCase() : undefined;\n }\n if (this.editType) {\n this.editType = this.editType.toLowerCase();\n }\n if (isNullOrUndefined(this.uid)) {\n this.uid = getUid('grid-column');\n }\n var valueFormatter = new ValueFormatter();\n if (options.format && (options.format.skeleton || (options.format.format &&\n typeof options.format.format === 'string'))) {\n this.setFormatter(valueFormatter.getFormatFunction(extend({}, options.format)));\n this.setParser(valueFormatter.getParserFunction(options.format));\n }\n this.toJSON = function () {\n var col = {};\n var skip = ['filter', 'dataSource', 'headerText', 'template', 'headerTemplate', 'edit',\n 'editTemplate', 'filterTemplate', 'commandsTemplate', 'parent'];\n var keys = Object.keys(_this);\n for (var i = 0; i < keys.length; i++) {\n if (keys[parseInt(i.toString(), 10)] === 'columns') {\n col[keys[parseInt(i.toString(), 10)]] = [];\n for (var j = 0; j < _this[keys[parseInt(i.toString(), 10)]].length; j++) {\n col[keys[parseInt(i.toString(), 10)]].push(_this[keys[parseInt(i.toString(), 10)]][parseInt(j.toString(), 10)].toJSON());\n }\n }\n else if (skip.indexOf(keys[parseInt(i.toString(), 10)]) < 0) {\n col[keys[parseInt(i.toString(), 10)]] = _this[keys[parseInt(i.toString(), 10)]];\n }\n }\n return col;\n };\n if (!this.field) {\n this.allowFiltering = false;\n this.allowGrouping = false;\n this.allowSorting = false;\n if (this.columns) {\n this.allowResizing = this.columns.some(function (col) {\n return col.allowResizing;\n });\n }\n }\n if (this.commands && !this.textAlign) {\n this.textAlign = 'Right';\n }\n if (this.template || this.commandsTemplate) {\n this.templateFn = templateCompiler(this.template || this.commandsTemplate);\n }\n if (this.headerTemplate) {\n this.headerTemplateFn = templateCompiler(this.headerTemplate);\n }\n if (!isNullOrUndefined(this.filter) && this.filter.itemTemplate) {\n this.fltrTemplateFn = templateCompiler(this.filter.itemTemplate);\n }\n if (this.editTemplate) {\n this.editTemplateFn = templateCompiler(this.editTemplate);\n }\n if (this.filterTemplate) {\n this.filterTemplateFn = templateCompiler(this.filterTemplate);\n }\n if (this.isForeignColumn() &&\n (isNullOrUndefined(this.editType) || this.editType === 'dropdownedit' || this.editType === 'defaultedit')) {\n this.editType = 'dropdownedit';\n if (this.edit.params && this.edit.params.dataSource) {\n this.edit.params.ddEditedData = true;\n }\n this.edit.params = extend({\n dataSource: this.dataSource,\n query: new Query(), fields: { value: this.foreignKeyField || this.field, text: this.foreignKeyValue }\n }, this.edit.params);\n }\n if (this.sortComparer) {\n var a_1 = this.sortComparer;\n this.sortComparer = function (x, y, xObj, yObj) {\n if (typeof a_1 === 'string') {\n a_1 = getObject(a_1, window);\n }\n if (_this.sortDirection === 'Descending') {\n var z = x;\n x = y;\n y = z;\n var obj = xObj;\n xObj = yObj;\n yObj = obj;\n }\n return a_1(x, y, xObj, yObj);\n };\n }\n if (!this.sortComparer && this.isForeignColumn()) {\n this.sortComparer = function (x, y) {\n x = getObject(_this.foreignKeyValue, getForeignData(_this, {}, x)[0]);\n y = getObject(_this.foreignKeyValue, getForeignData(_this, {}, y)[0]);\n return _this.sortDirection === 'Descending' ? DataUtil.fnDescending(x, y) : DataUtil.fnAscending(x, y);\n };\n }\n }\n /**\n * @returns {string} returns the sort direction\n * @hidden */\n Column.prototype.getSortDirection = function () {\n return this.sortDirection;\n };\n /**\n * @param {string} direction - specifies the direction\n * @returns {void}\n * @hidden\n */\n Column.prototype.setSortDirection = function (direction) {\n this.sortDirection = direction;\n };\n /**\n * @returns {freezeTable} returns the FreezeTable\n * @hidden */\n Column.prototype.getFreezeTableName = function () {\n return this.freezeTable;\n };\n /**\n * @param {Column} column - specifies the column\n * @returns {void}\n * @hidden\n */\n Column.prototype.setProperties = function (column) {\n //Angular two way binding\n var keys = Object.keys(column);\n for (var i = 0; i < keys.length; i++) {\n this[keys[parseInt(i.toString(), 10)]] = column[keys[parseInt(i.toString(), 10)]];\n //Refresh the react columnTemplates on state change\n if (this.parent && this.parent.isReact) {\n if (keys[parseInt(i.toString(), 10)] === 'template') {\n this.templateFn = templateCompiler(column[keys[parseInt(i.toString(), 10)]]);\n this.parent.refreshReactColumnTemplateByUid(this.uid, true);\n }\n else if (keys[parseInt(i.toString(), 10)] === 'headerTemplate') {\n this.headerTemplateFn = templateCompiler(column[keys[parseInt(i.toString(), 10)]]);\n this.parent.refreshReactHeaderTemplateByUid(this.uid);\n }\n else if (keys[parseInt(i.toString(), 10)] === 'editTemplate') {\n this.editTemplateFn = templateCompiler(column[keys[parseInt(i.toString(), 10)]]);\n }\n }\n }\n };\n /**\n * @returns {boolean} returns true for foreign column\n * @hidden\n * It defines the column is foreign key column or not.\n */\n Column.prototype.isForeignColumn = function () {\n return !!(this.dataSource && this.foreignKeyValue);\n };\n /**\n * @returns {Function} returns the function\n * @hidden\n */\n Column.prototype.getFormatter = function () {\n return this.formatFn;\n };\n /**\n * @param {Function} value - specifies the value\n * @returns {void}\n * @hidden\n */\n Column.prototype.setFormatter = function (value) {\n this.formatFn = value;\n };\n /**\n * @returns {Function} returns the function\n * @hidden */\n Column.prototype.getParser = function () {\n return this.parserFn;\n };\n /**\n * @param {Function} value - specifies the value\n * @returns {void}\n * @hidden\n */\n Column.prototype.setParser = function (value) {\n this.parserFn = value;\n };\n /**\n * @returns {Function} returns the function\n * @hidden */\n Column.prototype.getColumnTemplate = function () {\n return this.templateFn;\n };\n /**\n * @returns {Function} returns the function\n * @hidden */\n Column.prototype.getHeaderTemplate = function () {\n return this.headerTemplateFn;\n };\n /**\n * @returns {Function} returns the function\n * @hidden */\n Column.prototype.getFilterItemTemplate = function () {\n return this.fltrTemplateFn;\n };\n /**\n * @returns {string} returns the string\n * @hidden */\n Column.prototype.getDomSetter = function () {\n return this.disableHtmlEncode ? 'textContent' : 'innerHTML';\n };\n return Column;\n}());\nexport { Column };\n/**\n * Define options for custom command buttons.\n */\nvar CommandColumnModel = /** @class */ (function () {\n function CommandColumnModel() {\n }\n __decorate([\n Property()\n ], CommandColumnModel.prototype, \"title\", void 0);\n __decorate([\n Property()\n ], CommandColumnModel.prototype, \"type\", void 0);\n __decorate([\n Property()\n ], CommandColumnModel.prototype, \"buttonOption\", void 0);\n return CommandColumnModel;\n}());\nexport { CommandColumnModel };\n/**\n * Defines Grid column\n */\nvar GridColumn = /** @class */ (function (_super) {\n __extends(GridColumn, _super);\n function GridColumn() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(null)\n ], GridColumn.prototype, \"columns\", void 0);\n return GridColumn;\n}(Column));\nexport { GridColumn };\n/**\n * Defines stacked grid column\n */\nvar StackedColumn = /** @class */ (function (_super) {\n __extends(StackedColumn, _super);\n function StackedColumn() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return StackedColumn;\n}(GridColumn));\nexport { StackedColumn };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { Column } from \"@syncfusion/ej2-react-grids\";\nvar GridColumn = /** @class */ (function (_super) {\n __extends(GridColumn, _super);\n function GridColumn() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return GridColumn;\n}(Column));\nexport default GridColumn;\nexport var GRID_COLUMN_DEFAULT_WIDTH = 200;\n","import moment from \"moment\";\nexport function useGridFiltersModule() {\n var filterPredicateText = {\n and: \"AND\",\n or: \"OR\",\n };\n var filterOperatorText = {\n startswith: \"Starts with\",\n endswith: \"Ends with\",\n contains: \"Contains\",\n equal: \"Equal to\",\n notequal: \"Not Equal to\",\n greaterthan: \"Greater than\",\n greaterthanorequal: \"Greater than or Equal To\",\n lessthan: \"Less than\",\n lessthanorequal: \"Less than or Equal To\",\n };\n var valueOrEmpty = function (value) {\n return [\"\", \"null\"].includes(value) ? \"empty\" : value;\n };\n // Sort\n var getSortDetails = function (columns, sorts) {\n var sortDetails = sorts === null || sorts === void 0 ? void 0 : sorts.map(function (x) { return ({\n field: String(x.field),\n details: getSortText(columns, x),\n direction: x.direction,\n }); });\n return sortDetails;\n };\n var getSortText = function (columns, sort) {\n var col = columns === null || columns === void 0 ? void 0 : columns.find(function (x) { return x.field === (sort === null || sort === void 0 ? void 0 : sort.field); });\n return \"Order: \".concat(col === null || col === void 0 ? void 0 : col.headerText);\n };\n // Filter\n var getFilterDetails = function (filters) {\n var distinctFields = filters === null || filters === void 0 ? void 0 : filters.map(function (item) { return item.field; }).filter(function (value, index, self) { return self.indexOf(value) === index; });\n var filterDetails = distinctFields === null || distinctFields === void 0 ? void 0 : distinctFields.map(function (field) { return ({\n field: String(field),\n details: getFilterText(filters, field),\n }); });\n return filterDetails;\n };\n var formatValue = function (value, type) {\n if (type === \"date\") {\n return moment(String(value)).format(\"L\");\n }\n return String(value);\n };\n var getFilterText = function (filters, field) {\n // Process Filter (Ex. [Equal to] [100] [OR] [Equal to] [1000])\n var details = \"\";\n var filterTextList = [];\n filters === null || filters === void 0 ? void 0 : filters.filter(function (x) { return x.field === field; }).forEach(function (col, idx) {\n var predicateText = idx > 0\n ? filterPredicateText[col.predicate]\n : \"\";\n var operatorText = filterOperatorText[col.operator];\n var filterText = \"\".concat(operatorText, \" \").concat(valueOrEmpty(formatValue(col.value, col.type)));\n // Remove any duplicate\n if (filterTextList.includes(filterText)) {\n return;\n }\n filterTextList.push(filterText);\n details += \" \".concat(predicateText, \" \").concat(filterText, \" \").trimStart();\n });\n return details;\n };\n return { getSortDetails: getSortDetails, getFilterDetails: getFilterDetails };\n}\n","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Button, Icon, Tag } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport { Classes, Popover2 } from \"@blueprintjs/popover2\";\nimport { useGridFiltersModule } from \"./useGridFiltersModule\";\nvar GridFiltersComponent = function (props) {\n var _a, _b, _c;\n var _d = useGridFiltersModule(), getSortDetails = _d.getSortDetails, getFilterDetails = _d.getFilterDetails;\n return (_jsx(\"div\", { className: \"grid-filters-module\", children: props.filtersCount > 0 && !!props.filterSettings && (_jsx(\"div\", { className: \"grid-filters\", children: _jsx(Popover2, { interactionKind: \"hover\", placement: \"left\", minimal: true, portalClassName: \"grid-filters-module\", popoverClassName: Classes.POPOVER2_CONTENT_SIZING, content: _jsxs(\"div\", { className: \"grid-filters-details\", children: [_jsxs(\"ul\", { className: \"grid-filters-details-list\", children: [(_a = getSortDetails(props.filterSettings.rawColumnSettings, props.filterSettings.rawSortSettings)) === null || _a === void 0 ? void 0 : _a.map(function (sort) { return (_jsx(\"li\", { children: _jsxs(Tag, { fill: false, onRemove: function () { return props.removeSort(sort.field); }, children: [sort.details, _jsx(Icon, { iconSize: 10, icon: sort.direction === \"Ascending\"\n ? IconNames.ARROW_UP\n : IconNames.ARROW_DOWN })] }) }, \"sort-\".concat(sort.field))); }), (_c = getFilterDetails((_b = props.filterSettings) === null || _b === void 0 ? void 0 : _b.rawFilterSettings)) === null || _c === void 0 ? void 0 : _c.map(function (filter) { return (_jsx(\"li\", { children: _jsx(Tag, { fill: false, onRemove: function () { return props.removeFilter(filter.field); }, children: filter.details }) }, \"filter-\".concat(filter.field))); })] }), _jsx(Button, { className: \"grid-filters-details-clear\", minimal: true, text: \"Clear All\", onClick: function () { return props.clearFilters(); } })] }), children: _jsx(\"div\", { className: \"grid-filters-count\", children: _jsxs(Button, { className: \"grid-filters-count-target\", title: \"Clear All\", children: [_jsx(Icon, { className: \"grid-filters-count-icon\", icon: IconNames.FILTER_LIST }), _jsx(\"span\", { className: \"grid-filters-count-text\", children: \"\".concat(props.filtersCount, \" Filter(s)\") }), _jsx(Icon, { className: \"grid-filters-count-clear\", icon: IconNames.CROSS, onClick: function () { return props.clearFilters(); } })] }) }) }) })) }));\n};\nexport var GridFilters = GridFiltersComponent;\nexport default GridFilters;\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar GridViewApiClient = /** @class */ (function () {\n function GridViewApiClient(apiClient) {\n var _this = this;\n this.fetchViews = function (gridId) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this._apiClient.get(\"usergridview/\".concat(gridId))];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n }); };\n this.createView = function (gridId, gridViewCreateDTO) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this._apiClient.post(\"usergridview/\".concat(gridId), gridViewCreateDTO)];\n });\n }); };\n this.updateViewFilterSettings = function (gridId, id, updateFilterSettingsDTO) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this._apiClient.put(\"usergridview/\".concat(gridId, \"/\").concat(id, \"/updatefiltersettings\"), updateFilterSettingsDTO)];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n }); };\n this.updateViewColumnSettings = function (gridId, id, columnSettings) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this._apiClient.put(\"usergridview/\".concat(gridId, \"/\").concat(id, \"/updatecolumnsettings\"), { columnSettings: columnSettings })];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n }); };\n this.setDefaultView = function (gridId, id) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this._apiClient.put(\"usergridview/\".concat(gridId, \"/\").concat(id, \"/setdefault\"))];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n }); };\n this._apiClient = apiClient;\n }\n return GridViewApiClient;\n}());\nexport default GridViewApiClient;\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { indexOf, sortBy } from \"lodash\";\n//import GridColumn from \"./GridColumn\";\n//import GridViewReadDTO from \"../../types/dtos/GridViewReadDTO\";\nvar GridView = /** @class */ (function () {\n function GridView(gridViewReadDTO, baseGridColumnsConfiguration) {\n this.id = gridViewReadDTO.id;\n this.gridId = gridViewReadDTO.gridId;\n this.title = gridViewReadDTO.title;\n this.columnSettings = gridViewReadDTO.columnSettings;\n this.filterSettings = gridViewReadDTO.filterSettings;\n this.sortSettings = gridViewReadDTO.sortSettings;\n // Compute\n this.columnConfiguration = this.getColumnConfiguration(this.columnSettings, baseGridColumnsConfiguration);\n this.filterConfiguration = this.getFilterConfiguration(this.columnConfiguration);\n this.sortConfiguration = this.getSortConfiguration(this.columnConfiguration);\n }\n GridView.prototype.getColumnConfiguration = function (columnSettings, baseGridColumnsConfiguration) {\n // Return default if corrupted\n if (!columnSettings || columnSettings.length <= 0) {\n return __assign({}, baseGridColumnsConfiguration);\n }\n var config = baseGridColumnsConfiguration.filter(function (x) {\n return columnSettings === null || columnSettings === void 0 ? void 0 : columnSettings.find(function (y) { return x.field === y; });\n });\n config = sortBy(config, function (col) {\n return indexOf(columnSettings, col.field);\n });\n return config;\n };\n GridView.prototype.getFilterConfiguration = function (establishedColumnsConfiguration) {\n if (!this.filterSettings) {\n return [];\n }\n var config = JSON.parse(this.filterSettings);\n config = config.filter(function (x) {\n return establishedColumnsConfiguration === null || establishedColumnsConfiguration === void 0 ? void 0 : establishedColumnsConfiguration.find(function (y) { return x.field === y.field; });\n });\n return config;\n };\n GridView.prototype.getSortConfiguration = function (establishedColumnsConfiguration) {\n if (!this.sortSettings) {\n return [];\n }\n var config = JSON.parse(this.sortSettings);\n config = config.filter(function (x) {\n return establishedColumnsConfiguration === null || establishedColumnsConfiguration === void 0 ? void 0 : establishedColumnsConfiguration.find(function (y) { return x.field === y.field; });\n });\n return config;\n };\n return GridView;\n}());\nexport default GridView;\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { first } from \"lodash\";\nimport { useEffect, useRef, useState } from \"react\";\nimport GridViewApiClient from \"./apiClients/gridViewApiClient\";\nimport GridView from \"./types/GridView\";\nimport { showSuccessAppToaster } from \"../../../../Toast/Toast\";\nexport function useGridViewModule(apiClient, gridAutoName, defaultGridViewTitle, shouldCreateAutoView) {\n var _this = this;\n var _a = useState(), currentGridView = _a[0], setCurrentGridView = _a[1];\n var _b = useState(\"-\"), currentGridViewKey = _b[0], setCurrentGridViewKey = _b[1];\n var _c = useState(), userGridViews = _c[0], setUserGridViews = _c[1];\n var _d = useState(), baseGridColumnsConfiguration = _d[0], setBaseGridColumnsConfiguration = _d[1];\n var _e = useState(), gridBaseSettings = _e[0], setGridBaseSettings = _e[1];\n var gridViewApiClient = useRef(new GridViewApiClient(apiClient));\n var loadViews = function (gridTitle, gridId, columnsConfiguration, getColumnsConfigurationForUser) { return __awaiter(_this, void 0, void 0, function () {\n var gridViewDTOs, current;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, gridViewApiClient.current.fetchViews(gridId)];\n case 1:\n gridViewDTOs = _a.sent();\n if (!((shouldCreateAutoView !== null && shouldCreateAutoView !== void 0 ? shouldCreateAutoView : true) && gridViewDTOs.length <= 0)) return [3 /*break*/, 3];\n return [4 /*yield*/, createAutoView(gridId, gridAutoName !== null && gridAutoName !== void 0 ? gridAutoName : \"Auto\", getColumnsConfigurationForUser)];\n case 2:\n gridViewDTOs = [\n _a.sent()\n ];\n _a.label = 3;\n case 3:\n // Setup observables\n setGridBaseSettings({ id: gridId, title: gridTitle });\n setBaseGridColumnsConfiguration(columnsConfiguration);\n setUserGridViews(gridViewDTOs);\n current = undefined;\n // Primary: defaultGridViewTitle property (if set)\n if (defaultGridViewTitle) {\n current = gridViewDTOs.find(function (x) { return x.title === defaultGridViewTitle; });\n }\n // Secondary: user default view from API\n if (!current) {\n current = gridViewDTOs.find(function (x) { return x.isDefault === true; });\n }\n // Fallback: first view in the list\n if (!current) {\n current = first(gridViewDTOs);\n }\n if (current) {\n assignCurrentGridView(current.id, columnsConfiguration, gridViewDTOs);\n }\n return [2 /*return*/];\n }\n });\n }); };\n var createAutoView = function (gridId, gridAutoName, getColumnsConfigurationForUser) { return __awaiter(_this, void 0, void 0, function () {\n var columnsConfiguration, newGridView;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n columnsConfiguration = getColumnsConfigurationForUser();\n return [4 /*yield*/, createView(gridId, {\n title: gridAutoName,\n columnSettings: __spreadArray([], columnsConfiguration, true).map(function (x) { return x.field; }).join(\",\"),\n isDefault: true,\n })];\n case 1:\n newGridView = _a.sent();\n return [2 /*return*/, newGridView];\n }\n });\n }); };\n var createView = function (gridId, gridViewCreateDTO) { return __awaiter(_this, void 0, void 0, function () {\n var newGridView;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, gridViewApiClient.current.createView(gridId, gridViewCreateDTO)];\n case 1:\n newGridView = _a.sent();\n return [2 /*return*/, newGridView];\n }\n });\n }); };\n var updateViewFilterSettings = function (gridId, gridFilterSettings) { return __awaiter(_this, void 0, void 0, function () {\n var columnSettingFields, updateFilterSettingsDTO, idx;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!userGridViews || !currentGridView) {\n return [2 /*return*/];\n }\n columnSettingFields = gridFilterSettings.rawColumnSettings.map(function (x) { return x.field; });\n updateFilterSettingsDTO = {\n columnSettings: columnSettingFields.join(\",\"),\n filterSettings: JSON.stringify(gridFilterSettings.rawFilterSettings),\n sortSettings: JSON.stringify(gridFilterSettings.rawSortSettings),\n };\n idx = userGridViews.findIndex(function (x) { return x.id === (currentGridView === null || currentGridView === void 0 ? void 0 : currentGridView.id); });\n if (idx < 0) {\n return [2 /*return*/];\n }\n userGridViews[idx].columnSettings = columnSettingFields;\n userGridViews[idx].filterSettings = updateFilterSettingsDTO.filterSettings;\n userGridViews[idx].sortSettings = updateFilterSettingsDTO.sortSettings;\n // Update\n return [4 /*yield*/, gridViewApiClient.current.updateViewFilterSettings(gridId, currentGridView.id, updateFilterSettingsDTO)];\n case 1:\n // Update\n _a.sent();\n return [2 /*return*/];\n }\n });\n }); };\n var updateViewColumnSettings = function (viewId, columnSettings) { return __awaiter(_this, void 0, void 0, function () {\n var idx;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!userGridViews || !currentGridView) {\n return [2 /*return*/];\n }\n idx = userGridViews.findIndex(function (x) { return x.id === (currentGridView === null || currentGridView === void 0 ? void 0 : currentGridView.id); });\n if (idx < 0) {\n return [2 /*return*/];\n }\n userGridViews[idx].columnSettings = columnSettings;\n // Update\n return [4 /*yield*/, gridViewApiClient.current.updateViewColumnSettings(userGridViews[idx].gridId, viewId, columnSettings.join(\",\"))];\n case 1:\n // Update\n _a.sent();\n if (currentGridView.id === viewId) {\n assignCurrentGridView(viewId, baseGridColumnsConfiguration, userGridViews);\n }\n return [2 /*return*/];\n }\n });\n }); };\n var setDefaultView = function (id) { return __awaiter(_this, void 0, void 0, function () {\n var idx, updatedGridViews;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!userGridViews) {\n return [2 /*return*/];\n }\n idx = userGridViews.findIndex(function (x) { return x.id === id; });\n if (idx < 0) {\n return [2 /*return*/];\n }\n return [4 /*yield*/, gridViewApiClient.current.setDefaultView(userGridViews[idx].gridId, id)];\n case 1:\n updatedGridViews = _a.sent();\n if (updatedGridViews) {\n setUserGridViews(updatedGridViews);\n showSuccessAppToaster(\"Default view set to \".concat(userGridViews[idx].title, \".\"));\n }\n return [2 /*return*/];\n }\n });\n }); };\n var assignCurrentGridView = function (id, gridColumnsConfiguration, gridViews) {\n var gridViewDto = gridViews.find(function (x) { return x.id === id; });\n if (gridColumnsConfiguration && gridViewDto) {\n var gridView = new GridView(gridViewDto, gridColumnsConfiguration);\n setCurrentGridView(gridView);\n }\n };\n var getGridView = function (id) {\n if (!userGridViews || !baseGridColumnsConfiguration) {\n throw \"No views data loaded.\";\n }\n var gridViewDto = userGridViews === null || userGridViews === void 0 ? void 0 : userGridViews.find(function (x) { return x.id === id; });\n if (!gridViewDto) {\n throw \"Grid View \".concat(id, \" could not be found.\");\n }\n var gridView = new GridView(gridViewDto, baseGridColumnsConfiguration);\n return gridView;\n };\n useEffect(function () {\n var _a, _b;\n setCurrentGridViewKey(\"\".concat((_a = currentGridView === null || currentGridView === void 0 ? void 0 : currentGridView.id) !== null && _a !== void 0 ? _a : \"-\", \"-\").concat((_b = currentGridView === null || currentGridView === void 0 ? void 0 : currentGridView.columnSettings.join(\"\")) !== null && _b !== void 0 ? _b : \"-\"));\n }, [currentGridView]);\n return {\n currentGridView: currentGridView,\n currentGridViewKey: currentGridViewKey,\n userGridViews: userGridViews,\n loadViews: loadViews,\n updateViewFilterSettings: updateViewFilterSettings,\n gridBaseSettings: gridBaseSettings,\n getGridView: getGridView,\n updateViewColumnSettings: updateViewColumnSettings,\n setDefaultView: setDefaultView,\n baseGridColumnsConfiguration: baseGridColumnsConfiguration,\n assignCurrentGridView: assignCurrentGridView,\n };\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport React, { useEffect, useRef } from \"react\";\nimport { Intent } from \"@blueprintjs/core\";\nimport { useGridViewModule } from \"./useGridViewModule\";\nimport { AppToaster } from \"../../../../Toast/Toast\";\nexport var useGridView = function (gridId, gridTitle, columnsConfiguration, getColumnsConfigurationForUser, apiClient, filterSettings, gridAutoName, defaultGridViewTitle, shouldCreateAutoView) {\n var _a = React.useState(), queryKey = _a[0], setQueryKey = _a[1];\n var ready = useRef(false);\n var _b = useGridViewModule(apiClient, gridAutoName, defaultGridViewTitle, shouldCreateAutoView), currentGridView = _b.currentGridView, currentGridViewKey = _b.currentGridViewKey, userGridViews = _b.userGridViews, loadViews = _b.loadViews, updateViewFilterSettings = _b.updateViewFilterSettings, gridBaseSettings = _b.gridBaseSettings, getGridView = _b.getGridView, updateViewColumnSettings = _b.updateViewColumnSettings, setDefaultView = _b.setDefaultView, baseGridColumnsConfiguration = _b.baseGridColumnsConfiguration, assignCurrentGridView = _b.assignCurrentGridView;\n useEffect(function () {\n if (!!(filterSettings === null || filterSettings === void 0 ? void 0 : filterSettings.rawQuery)) {\n var requestKey = JSON.stringify(filterSettings);\n if (requestKey !== queryKey) {\n setQueryKey(requestKey);\n }\n }\n }, [filterSettings === null || filterSettings === void 0 ? void 0 : filterSettings.rawQuery, filterSettings === null || filterSettings === void 0 ? void 0 : filterSettings.columnNames]);\n React.useEffect(function () {\n updateGridViewFilterSettings();\n }, [queryKey]);\n var updateGridViewFilterSettings = function () { return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!queryKey) {\n return [2 /*return*/];\n }\n return [4 /*yield*/, updateViewFilterSettings(gridId, JSON.parse(queryKey))];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n }); };\n // Load View\n var loadViewsAsync = function () { return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, loadViews(gridTitle, gridId, columnsConfiguration, getColumnsConfigurationForUser).catch(function () {\n AppToaster.show({\n message: \"An error ocurred loading the data.\",\n intent: Intent.DANGER,\n });\n })];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n }); };\n useEffect(function () {\n if (ready.current) {\n return;\n }\n ready.current = true;\n loadViewsAsync();\n }, []);\n return {\n currentGridView: currentGridView,\n currentGridViewKey: currentGridViewKey,\n userGridViews: userGridViews,\n gridBaseSettings: gridBaseSettings,\n getGridView: getGridView,\n updateViewColumnSettings: updateViewColumnSettings,\n setDefaultView: setDefaultView,\n baseGridColumnsConfiguration: baseGridColumnsConfiguration,\n assignCurrentGridView: assignCurrentGridView,\n };\n};\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { merge, formatUnit, isNullOrUndefined, append, detach, extend } from '@syncfusion/ej2-base';\nimport { attributes, addClass, removeClass, prepend, closest, remove } from '@syncfusion/ej2-base';\nimport { Component, EventHandler, Property, Complex, Event } from '@syncfusion/ej2-base';\nimport { NotifyPropertyChanges, ChildProperty } from '@syncfusion/ej2-base';\nimport { compile, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\nimport { Animation, rippleEffect, Touch } from '@syncfusion/ej2-base';\nimport { DataManager, Query } from '@syncfusion/ej2-data';\nimport { createCheckBox } from '@syncfusion/ej2-buttons';\nimport { ListBase, getFieldValues } from '../common/list-base';\n// Effect Configuration Effect[] = [fromViewBackward,fromViewForward,toViewBackward,toviewForward];\nvar effectsConfig = {\n 'None': [],\n 'SlideLeft': ['SlideRightOut', 'SlideLeftOut', 'SlideLeftIn', 'SlideRightIn'],\n 'SlideDown': ['SlideTopOut', 'SlideBottomOut', 'SlideBottomIn', 'SlideTopIn'],\n 'Zoom': ['FadeOut', 'FadeZoomOut', 'FadeZoomIn', 'FadeIn'],\n 'Fade': ['FadeOut', 'FadeOut', 'FadeIn', 'FadeIn']\n};\nvar effectsRTLConfig = {\n 'None': [],\n 'SlideLeft': ['SlideLeftOut', 'SlideRightOut', 'SlideRightIn', 'SlideLeftIn'],\n 'SlideDown': ['SlideBottomOut', 'SlideTopOut', 'SlideTopIn', 'SlideBottomIn'],\n 'Zoom': ['FadeZoomOut', 'FadeOut', 'FadeIn', 'FadeZoomIn'],\n 'Fade': ['FadeOut', 'FadeOut', 'FadeIn', 'FadeIn']\n};\n// don't use space in classnames.\nexport var classNames = {\n root: 'e-listview',\n hover: 'e-hover',\n selected: 'e-active',\n focused: 'e-focused',\n parentItem: 'e-list-parent',\n listItem: 'e-list-item',\n listIcon: 'e-list-icon',\n textContent: 'e-text-content',\n listItemText: 'e-list-text',\n groupListItem: 'e-list-group-item',\n hasChild: 'e-has-child',\n view: 'e-view',\n header: 'e-list-header',\n headerText: 'e-headertext',\n headerTemplateText: 'e-headertemplate-text',\n text: 'e-text',\n disable: 'e-disabled',\n content: 'e-content',\n icon: 'e-icons',\n backIcon: 'e-icon-back',\n backButton: 'e-back-button',\n checkboxWrapper: 'e-checkbox-wrapper',\n checkbox: 'e-checkbox',\n checked: 'e-check',\n checklist: 'e-checklist',\n checkboxIcon: 'e-frame',\n checkboxRight: 'e-checkbox-right',\n checkboxLeft: 'e-checkbox-left',\n listviewCheckbox: 'e-listview-checkbox',\n itemCheckList: 'e-checklist',\n virtualElementContainer: 'e-list-virtualcontainer'\n};\nvar LISTVIEW_TEMPLATE_PROPERTY = 'Template';\nvar LISTVIEW_GROUPTEMPLATE_PROPERTY = 'GroupTemplate';\nvar LISTVIEW_HEADERTEMPLATE_PROPERTY = 'HeaderTemplate';\nvar swipeVelocity = 0.5;\n/**\n * Represents the field settings of the ListView.\n */\nvar FieldSettings = /** @class */ (function (_super) {\n __extends(FieldSettings, _super);\n function FieldSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('id')\n ], FieldSettings.prototype, \"id\", void 0);\n __decorate([\n Property('text')\n ], FieldSettings.prototype, \"text\", void 0);\n __decorate([\n Property('isChecked')\n ], FieldSettings.prototype, \"isChecked\", void 0);\n __decorate([\n Property('isVisible')\n ], FieldSettings.prototype, \"isVisible\", void 0);\n __decorate([\n Property('enabled')\n ], FieldSettings.prototype, \"enabled\", void 0);\n __decorate([\n Property('iconCss')\n ], FieldSettings.prototype, \"iconCss\", void 0);\n __decorate([\n Property('child')\n ], FieldSettings.prototype, \"child\", void 0);\n __decorate([\n Property('tooltip')\n ], FieldSettings.prototype, \"tooltip\", void 0);\n __decorate([\n Property('groupBy')\n ], FieldSettings.prototype, \"groupBy\", void 0);\n __decorate([\n Property('text')\n ], FieldSettings.prototype, \"sortBy\", void 0);\n __decorate([\n Property('htmlAttributes')\n ], FieldSettings.prototype, \"htmlAttributes\", void 0);\n __decorate([\n Property('tableName')\n ], FieldSettings.prototype, \"tableName\", void 0);\n return FieldSettings;\n}(ChildProperty));\nexport { FieldSettings };\n/**\n * Represents the EJ2 ListView control.\n * ```html\n *
    \n *
      \n *
    • Favorite
    • \n *
    • Documents
    • \n *
    • Downloads
    • \n *
    \n *
    \n * ```\n * ```typescript\n * var listviewObject = new ListView({});\n * listviewObject.appendTo(\"#listview\");\n * ```\n */\nvar ListView = /** @class */ (function (_super) {\n __extends(ListView, _super);\n /**\n * Constructor for creating the widget\n *\n * @param options\n *\n * @param element\n */\n function ListView(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.previousSelectedItems = [];\n _this.hiddenItems = [];\n _this.enabledItems = [];\n _this.disabledItems = [];\n return _this;\n }\n /**\n * @param newProp\n *\n * @param oldProp\n *\n * @private\n */\n ListView.prototype.onPropertyChanged = function (newProp, oldProp) {\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'htmlAttributes':\n this.setHTMLAttribute();\n break;\n case 'cssClass':\n this.setCSSClass(oldProp.cssClass);\n break;\n case 'enable':\n this.setEnable();\n break;\n case 'width':\n case 'height':\n this.setSize();\n break;\n case 'enableRtl':\n this.setEnableRTL();\n break;\n case 'fields':\n // eslint-disable-next-line\n this.listBaseOption.fields = this.fields.properties;\n if (this.enableVirtualization) {\n this.virtualizationModule.reRenderUiVirtualization();\n }\n else {\n this.reRender();\n }\n break;\n case 'headerTitle':\n if (!this.curDSLevel.length) {\n this.header(this.headerTitle, false, 'header');\n }\n break;\n case 'query':\n if (this.enableVirtualization) {\n this.virtualizationModule.reRenderUiVirtualization();\n }\n else {\n this.reRender();\n }\n break;\n case 'showHeader':\n this.header(this.headerTitle, false, 'header');\n break;\n case 'enableVirtualization':\n if (!isNullOrUndefined(this.contentContainer)) {\n detach(this.contentContainer);\n }\n this.refresh();\n break;\n case 'showCheckBox':\n case 'checkBoxPosition':\n if (this.enableVirtualization) {\n this.virtualizationModule.reRenderUiVirtualization();\n }\n else {\n this.setCheckbox();\n }\n break;\n case 'dataSource':\n if (this.enableVirtualization) {\n this.virtualizationModule.reRenderUiVirtualization();\n }\n else {\n this.reRender();\n }\n break;\n case 'sortOrder':\n case 'template':\n if (!this.enableVirtualization) {\n this.refresh();\n }\n break;\n case 'showIcon':\n if (this.enableVirtualization) {\n this.virtualizationModule.reRenderUiVirtualization();\n }\n else {\n this.listBaseOption.showIcon = this.showIcon;\n this.curViewDS = this.getSubDS();\n this.resetCurrentList();\n }\n break;\n default:\n break;\n }\n }\n };\n // Model Changes\n ListView.prototype.setHTMLAttribute = function () {\n if (Object.keys(this.htmlAttributes).length) {\n attributes(this.element, this.htmlAttributes);\n }\n };\n ListView.prototype.setCSSClass = function (oldCSSClass) {\n if (this.cssClass) {\n addClass([this.element], this.cssClass.split(' ').filter(function (css) { return css; }));\n }\n if (oldCSSClass) {\n removeClass([this.element], oldCSSClass.split(' ').filter(function (css) { return css; }));\n }\n };\n ListView.prototype.setSize = function () {\n this.element.style.height = formatUnit(this.height);\n this.element.style.width = formatUnit(this.width);\n this.isWindow = this.element.clientHeight ? false : true;\n };\n ListView.prototype.setEnable = function () {\n this.enableElement(this.element, this.enable);\n };\n ListView.prototype.setEnableRTL = function () {\n if (this.enableRtl) {\n this.element.classList.add('e-rtl');\n }\n else {\n this.element.classList.remove('e-rtl');\n }\n };\n ListView.prototype.enableElement = function (element, isEnabled) {\n if (isEnabled) {\n element.classList.remove(classNames.disable);\n }\n else {\n element.classList.add(classNames.disable);\n }\n };\n // Support Component Functions\n ListView.prototype.header = function (text, showBack, prop) {\n if (this.headerEle === undefined && this.showHeader) {\n if (this.enableHtmlSanitizer) {\n this.setProperties({ headerTitle: SanitizeHtmlHelper.sanitize(this.headerTitle) }, true);\n }\n this.headerEle = this.createElement('div', { className: classNames.header });\n var innerHeaderEle = this.createElement('span', { className: classNames.headerText, innerHTML: this.headerTitle });\n var textEle = this.createElement('div', { className: classNames.text, innerHTML: innerHeaderEle.outerHTML });\n var hedBackButton = this.createElement('div', {\n className: classNames.icon + ' ' + classNames.backIcon + ' ' + classNames.backButton,\n attrs: { style: 'display:none;' }\n });\n this.headerEle.appendChild(hedBackButton);\n this.headerEle.appendChild(textEle);\n if (this.headerTemplate) {\n // eslint-disable-next-line\n var compiledString = compile(this.headerTemplate);\n var headerTemplateEle = this.createElement('div', { className: classNames.headerTemplateText });\n // eslint-disable-next-line\n var compiledElement = compiledString({}, this, prop, this.LISTVIEW_HEADERTEMPLATE_ID, null, null, this.headerEle);\n if (compiledElement) {\n append(compiledElement, headerTemplateEle);\n }\n append([headerTemplateEle], this.headerEle);\n // eslint-disable-next-line\n if (this.isReact) {\n this.renderReactTemplates();\n }\n }\n if (this.headerTemplate && this.headerTitle) {\n textEle.classList.add('header');\n }\n this.element.classList.add('e-has-header');\n prepend([this.headerEle], this.element);\n }\n else if (this.headerEle) {\n if (this.showHeader) {\n this.headerEle.style.display = '';\n var textEle = this.headerEle.querySelector('.' + classNames.headerText);\n var hedBackButton = this.headerEle.querySelector('.' + classNames.backIcon);\n if (this.enableHtmlSanitizer) {\n text = SanitizeHtmlHelper.sanitize(text);\n }\n textEle.innerHTML = text;\n if (this.headerTemplate && showBack) {\n textEle.parentElement.classList.remove('header');\n this.headerEle.querySelector('.' + classNames.headerTemplateText).classList.add('nested-header');\n }\n if (this.headerTemplate && !showBack) {\n textEle.parentElement.classList.add('header');\n this.headerEle.querySelector('.' + classNames.headerTemplateText).classList.remove('nested-header');\n this.headerEle.querySelector('.' + classNames.headerTemplateText).classList.add('header');\n }\n if (showBack === true) {\n hedBackButton.style.display = '';\n }\n else {\n hedBackButton.style.display = 'none';\n }\n }\n else {\n this.headerEle.style.display = 'none';\n }\n }\n };\n // Animation Related Functions\n ListView.prototype.switchView = function (fromView, toView, reverse) {\n var _this = this;\n if (fromView && toView) {\n var fPos_1 = fromView.style.position;\n var overflow_1 = (this.element.style.overflow !== 'hidden') ? this.element.style.overflow : '';\n fromView.style.position = 'absolute';\n fromView.classList.add('e-view');\n var anim = void 0;\n var duration = this.animation.duration;\n if (this.animation.effect) {\n anim = (this.enableRtl ? effectsRTLConfig[this.animation.effect] : effectsConfig[this.animation.effect]);\n }\n else {\n var slideLeft = 'SlideLeft';\n anim = effectsConfig[\"\" + slideLeft];\n reverse = this.enableRtl;\n duration = 0;\n }\n this.element.style.overflow = 'hidden';\n this.aniObj.animate(fromView, {\n name: (reverse === true ? anim[0] : anim[1]),\n duration: duration,\n timingFunction: this.animation.easing,\n // eslint-disable-next-line\n end: function (model) {\n fromView.style.display = 'none';\n _this.element.style.overflow = overflow_1;\n fromView.style.position = fPos_1;\n fromView.classList.remove('e-view');\n }\n });\n toView.style.display = '';\n this.aniObj.animate(toView, {\n name: (reverse === true ? anim[2] : anim[3]),\n duration: duration,\n timingFunction: this.animation.easing,\n end: function () {\n _this.trigger('actionComplete');\n }\n });\n this.curUL = toView;\n }\n };\n ListView.prototype.preRender = function () {\n if (this.template) {\n try {\n if (document.querySelectorAll(this.template).length) {\n this.setProperties({ template: document.querySelector(this.template).innerHTML.trim() }, true);\n }\n }\n catch (e) {\n compile(this.template);\n }\n }\n this.listBaseOption = {\n template: this.template,\n headerTemplate: this.headerTemplate,\n groupTemplate: this.groupTemplate, expandCollapse: true, listClass: '',\n ariaAttributes: {\n itemRole: 'listitem', listRole: 'group', itemText: '',\n groupItemRole: 'presentation', wrapperRole: 'presentation'\n },\n // eslint-disable-next-line\n fields: (this.fields.properties),\n sortOrder: this.sortOrder,\n showIcon: this.showIcon,\n itemCreated: this.renderCheckbox.bind(this),\n templateID: \"\" + this.element.id + LISTVIEW_TEMPLATE_PROPERTY,\n groupTemplateID: \"\" + this.element.id + LISTVIEW_GROUPTEMPLATE_PROPERTY,\n enableHtmlSanitizer: this.enableHtmlSanitizer,\n };\n this.initialization();\n };\n ListView.prototype.initialization = function () {\n this.curDSLevel = [];\n this.animateOptions = {};\n this.curViewDS = [];\n this.currentLiElements = [];\n this.isNestedList = false;\n this.selectedData = [];\n this.selectedId = this.enablePersistence ? this.selectedId : [];\n this.LISTVIEW_TEMPLATE_ID = \"\" + this.element.id + LISTVIEW_TEMPLATE_PROPERTY;\n this.LISTVIEW_GROUPTEMPLATE_ID = \"\" + this.element.id + LISTVIEW_GROUPTEMPLATE_PROPERTY;\n this.LISTVIEW_HEADERTEMPLATE_ID = \"\" + this.element.id + LISTVIEW_HEADERTEMPLATE_PROPERTY;\n this.aniObj = new Animation(this.animateOptions);\n this.removeElement(this.curUL);\n this.removeElement(this.ulElement);\n this.removeElement(this.headerEle);\n this.removeElement(this.contentContainer);\n this.curUL = this.ulElement = this.liCollection = this.headerEle = this.contentContainer = undefined;\n };\n ListView.prototype.renderCheckbox = function (args) {\n var _this = this;\n if (args.item.classList.contains(classNames.hasChild)) {\n this.isNestedList = true;\n }\n if (this.showCheckBox && this.isValidLI(args.item)) {\n var checkboxElement = void 0;\n var fieldData_1;\n // eslint-disable-next-line prefer-const\n checkboxElement = createCheckBox(this.createElement, false, {\n checked: false, enableRtl: this.enableRtl,\n cssClass: classNames.listviewCheckbox\n });\n checkboxElement.setAttribute('role', 'checkbox');\n var frameElement_1 = checkboxElement.querySelector('.' + classNames.checkboxIcon);\n args.item.classList.add(classNames.itemCheckList);\n args.item.firstElementChild.classList.add(classNames.checkbox);\n if (typeof this.dataSource[0] !== 'string' && typeof this.dataSource[0] !== 'number') {\n fieldData_1 = getFieldValues(args.curData, this.listBaseOption.fields);\n if (this.enablePersistence && !isNullOrUndefined(this.selectedId)) {\n var index = this.selectedId.findIndex(function (e) { return e == fieldData_1[_this.listBaseOption.fields.id].toString(); });\n if (index != -1) {\n this.checkInternally(args, checkboxElement);\n }\n }\n else if (fieldData_1[this.listBaseOption.fields.isChecked]) {\n this.checkInternally(args, checkboxElement);\n }\n }\n else if (((typeof this.dataSource[0] === 'string' ||\n typeof this.dataSource[0] === 'number') && this.selectedData.indexOf(args.text) !== -1)) {\n this.checkInternally(args, checkboxElement);\n }\n checkboxElement.setAttribute('aria-checked', frameElement_1.classList.contains(classNames.checked) ? 'true' : 'false');\n checkboxElement.setAttribute('aria-label', 'checkbox');\n if (this.checkBoxPosition === 'Left') {\n checkboxElement.classList.add(classNames.checkboxLeft);\n args.item.firstElementChild.classList.add(classNames.checkboxLeft);\n args.item.firstElementChild.insertBefore(checkboxElement, args.item.firstElementChild.childNodes[0]);\n }\n else {\n checkboxElement.classList.add(classNames.checkboxRight);\n args.item.firstElementChild.classList.add(classNames.checkboxRight);\n args.item.firstElementChild.appendChild(checkboxElement);\n }\n this.currentLiElements.push(args.item);\n if (this.checkBoxPosition === 'Left') {\n this.virtualCheckBox = args.item.firstElementChild.children[0];\n }\n else {\n this.virtualCheckBox = args.item.firstElementChild.lastElementChild;\n }\n }\n };\n ListView.prototype.checkInternally = function (args, checkboxElement) {\n args.item.classList.add(classNames.selected);\n checkboxElement.querySelector('.' + classNames.checkboxIcon).classList.add(classNames.checked);\n checkboxElement.setAttribute('aria-checked', 'true');\n };\n /**\n * Checks the specific list item by passing the unchecked fields as an argument to this method.\n *\n * @param {Fields | HTMLElement | Element} item - It accepts Fields or HTML list element as an argument.\n */\n ListView.prototype.checkItem = function (item) {\n this.toggleCheckBase(item, true);\n };\n ListView.prototype.toggleCheckBase = function (item, checked) {\n if (this.showCheckBox) {\n var liElement = item;\n if (item instanceof Object && item.constructor !== HTMLLIElement) {\n liElement = this.getLiFromObjOrElement(item);\n }\n if (!isNullOrUndefined(liElement)) {\n var checkboxIcon = liElement.querySelector('.' + classNames.checkboxIcon);\n if (checked === true) {\n liElement.classList.add(classNames.selected);\n }\n else {\n liElement.classList.remove(classNames.selected);\n }\n if (checked === true) {\n checkboxIcon.classList.add(classNames.checked);\n }\n else {\n checkboxIcon.classList.remove(classNames.checked);\n }\n checkboxIcon.parentElement.setAttribute('aria-checked', checked ? 'true' : 'false');\n }\n this.setSelectedItemData(liElement);\n this.updateSelectedId();\n }\n };\n /**\n * Uncheck the specific list item by passing the checked fields as an argument to this method.\n *\n * @param {Fields | HTMLElement | Element} item - It accepts Fields or HTML list element as an argument.\n */\n ListView.prototype.uncheckItem = function (item) {\n this.toggleCheckBase(item, false);\n };\n /**\n * Checks all the unchecked items in the ListView.\n */\n ListView.prototype.checkAllItems = function () {\n this.toggleAllCheckBase(true);\n };\n /**\n * Uncheck all the checked items in ListView.\n */\n ListView.prototype.uncheckAllItems = function () {\n this.toggleAllCheckBase(false);\n };\n ListView.prototype.toggleAllCheckBase = function (checked) {\n if (this.showCheckBox) {\n for (var i = 0; i < this.liCollection.length; i++) {\n var checkIcon = this.liCollection[i].querySelector('.' + classNames.checkboxIcon);\n if (checkIcon) {\n if (checked) {\n if (!checkIcon.classList.contains(classNames.checked)) {\n this.checkItem(this.liCollection[i]);\n }\n }\n else {\n if (checkIcon.classList.contains(classNames.checked)) {\n this.uncheckItem(this.liCollection[i]);\n }\n }\n }\n }\n if (this.enableVirtualization) {\n this.virtualizationModule.checkedItem(checked);\n }\n this.updateSelectedId();\n }\n };\n ListView.prototype.setCheckbox = function () {\n if (this.showCheckBox) {\n var liCollection = Array.prototype.slice.call(this.element.querySelectorAll('.' + classNames.listItem));\n var args = {\n item: undefined, curData: undefined, dataSource: undefined, fields: undefined,\n options: undefined, text: ''\n };\n for (var i = 0; i < liCollection.length; i++) {\n var element = liCollection[i];\n args.item = element;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n args.curData = this.getItemData(element);\n if (element.querySelector('.' + classNames.checkboxWrapper)) {\n this.removeElement(element.querySelector('.' + classNames.checkboxWrapper));\n }\n this.renderCheckbox(args);\n if (args.item.classList.contains(classNames.selected)) {\n this.checkInternally(args, args.item.querySelector('.' + classNames.checkboxWrapper));\n }\n }\n }\n else {\n var liCollection = Array.prototype.slice.call(this.element.querySelectorAll('.' + classNames.itemCheckList));\n for (var i = 0; i < liCollection.length; i++) {\n var element = liCollection[i];\n element.classList.remove(classNames.selected);\n element.firstElementChild.classList.remove(classNames.checkbox);\n this.removeElement(element.querySelector('.' + classNames.checkboxWrapper));\n }\n if (this.selectedItems) {\n this.selectedItems.item.classList.add(classNames.selected);\n }\n }\n };\n /**\n * Refresh the height of the list item only on enabling the virtualization property.\n */\n ListView.prototype.refreshItemHeight = function () {\n if (this.virtualizationModule) {\n this.virtualizationModule.refreshItemHeight();\n }\n };\n ListView.prototype.clickHandler = function (e) {\n var target = e.target;\n this.targetElement = target;\n var classList = target.classList;\n var closestElement;\n if (classList.contains(classNames.backIcon) || classList.contains(classNames.headerText)) {\n if (this.showCheckBox && this.curDSLevel[this.curDSLevel.length - 1]) {\n this.uncheckAllItems();\n }\n this.back();\n }\n else {\n var li = closest(target.parentNode, '.' + classNames.listItem);\n if (li === null) {\n li = target;\n }\n this.removeFocus();\n if (this.enable && this.showCheckBox && this.isValidLI(li)) {\n if (e.target.classList.contains(classNames.checkboxIcon)) {\n li.classList.add(classNames.focused);\n if (isNullOrUndefined(li.querySelector('.' + classNames.checked))) {\n var args = {\n curData: undefined, dataSource: undefined, fields: undefined, options: undefined,\n text: undefined, item: li\n };\n this.checkInternally(args, args.item.querySelector('.' + classNames.checkboxWrapper));\n }\n else {\n this.uncheckItem(li);\n li.classList.add(classNames.focused);\n }\n if (this.enableVirtualization) {\n this.virtualizationModule.setCheckboxLI(li, e);\n }\n if (e) {\n var eventArgs = this.selectEventData(li, e);\n var checkIcon = li.querySelector('.' + classNames.checkboxIcon);\n merge(eventArgs, { isChecked: checkIcon.classList.contains(classNames.checked) });\n this.trigger('select', eventArgs);\n }\n }\n else if (li.classList.contains(classNames.hasChild)) {\n this.removeHover();\n this.removeSelect();\n this.removeSelect(li);\n this.setSelectLI(li, e);\n li.classList.remove(classNames.selected);\n }\n else {\n this.setCheckboxLI(li, e);\n if ((target.nodeName == \"INPUT\") || (target.nodeName == \"TEXTAREA\")) {\n target.classList.add('e-focused');\n this.targetElement = target;\n }\n }\n }\n else {\n this.setSelectLI(li, e);\n if ((target.nodeName == \"INPUT\") || (target.nodeName == \"TEXTAREA\")) {\n target.classList.add('e-focused');\n this.targetElement = target;\n }\n }\n closestElement = closest(e.target, 'li');\n if (!isNullOrUndefined(closestElement)) {\n if (closestElement.classList.contains('e-has-child') &&\n !e.target.parentElement.classList.contains('e-listview-checkbox')) {\n closestElement.classList.add(classNames.disable);\n }\n }\n }\n this.updateSelectedId();\n };\n ListView.prototype.removeElement = function (element) {\n return element && element.parentNode && element.parentNode.removeChild(element);\n };\n ListView.prototype.hoverHandler = function (e) {\n var curLi = closest(e.target.parentNode, '.' + classNames.listItem);\n this.setHoverLI(curLi);\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n ListView.prototype.leaveHandler = function (e) {\n this.removeHover();\n };\n ListView.prototype.homeKeyHandler = function (e, end) {\n e.preventDefault();\n if (Object.keys(this.dataSource).length && this.curUL) {\n var li = this.curUL.querySelectorAll('.' + classNames.listItem);\n var focusedElement = this.curUL.querySelector('.' + classNames.focused) ||\n this.curUL.querySelector('.' + classNames.selected);\n if (focusedElement) {\n focusedElement.classList.remove(classNames.focused);\n if (!this.showCheckBox) {\n focusedElement.classList.remove(classNames.selected);\n }\n }\n var index = !end ? 0 : li.length - 1;\n if (li[index].classList.contains(classNames.hasChild) || this.showCheckBox) {\n li[index].classList.add(classNames.focused);\n }\n else {\n this.setSelectLI(li[index], e);\n }\n if (li[index]) {\n this.element.setAttribute('aria-activedescendant', li[index].id.toString());\n }\n else {\n this.element.removeAttribute('aria-activedescendant');\n }\n }\n };\n ListView.prototype.onArrowKeyDown = function (e, prev) {\n var siblingLI;\n var li;\n var hasChild = !isNullOrUndefined(this.curUL.querySelector('.' + classNames.hasChild)) ? true : false;\n if (hasChild || this.showCheckBox) {\n li = this.curUL.querySelector('.' + classNames.focused) || this.curUL.querySelector('.' + classNames.selected);\n siblingLI = ListBase.getSiblingLI(this.curUL.querySelectorAll('.' + classNames.listItem), li, prev);\n if (!isNullOrUndefined(siblingLI)) {\n if (li) {\n li.classList.remove(classNames.focused);\n if (!this.showCheckBox) {\n li.classList.remove(classNames.selected);\n }\n }\n if (siblingLI.classList.contains(classNames.hasChild) || this.showCheckBox) {\n siblingLI.classList.add(classNames.focused);\n }\n else {\n this.setSelectLI(siblingLI, e);\n }\n }\n }\n else {\n li = this.curUL.querySelector('.' + classNames.selected);\n siblingLI = ListBase.getSiblingLI(this.curUL.querySelectorAll('.' + classNames.listItem), li, prev);\n this.setSelectLI(siblingLI, e);\n }\n if (siblingLI) {\n this.element.setAttribute('aria-activedescendant', siblingLI.id.toString());\n }\n else {\n this.element.removeAttribute('aria-activedescendant');\n }\n return siblingLI;\n };\n ListView.prototype.arrowKeyHandler = function (e, prev) {\n var _this = this;\n e.preventDefault();\n if (Object.keys(this.dataSource).length && this.curUL) {\n var siblingLI = this.onArrowKeyDown(e, prev);\n var elementTop = this.element.getBoundingClientRect().top;\n var elementHeight = this.element.getBoundingClientRect().height;\n var firstItemBounds = this.curUL.querySelector('.' + classNames.listItem).getBoundingClientRect();\n var heightDiff = void 0;\n var groupItemBounds = void 0;\n if (this.fields.groupBy) {\n groupItemBounds = this.curUL.querySelector('.' + classNames.groupListItem).getBoundingClientRect();\n }\n if (siblingLI) {\n var siblingTop = siblingLI.getBoundingClientRect().top;\n var siblingHeight = siblingLI.getBoundingClientRect().height;\n if (!prev) {\n var height = this.isWindow ? window.innerHeight : elementHeight;\n heightDiff = this.isWindow ? (siblingTop + siblingHeight) :\n ((siblingTop - elementTop) + siblingHeight);\n if (heightDiff > height) {\n if (this.isWindow === true) {\n window.scroll(0, pageYOffset + (heightDiff - height));\n }\n else {\n this.element.scrollTop = this.element.scrollTop + (heightDiff - height);\n }\n }\n }\n else {\n heightDiff = this.isWindow ? siblingTop : (siblingTop - elementTop);\n if (heightDiff < 0) {\n if (this.isWindow === true) {\n window.scroll(0, pageYOffset + heightDiff);\n }\n else {\n this.element.scrollTop = this.element.scrollTop + heightDiff;\n }\n }\n }\n }\n else if (this.enableVirtualization && prev && this.virtualizationModule.uiFirstIndex) {\n this.onUIScrolled = function () {\n _this.onArrowKeyDown(e, prev);\n _this.onUIScrolled = undefined;\n };\n heightDiff = this.virtualizationModule.listItemHeight;\n if (this.isWindow === true) {\n window.scroll(0, pageYOffset - heightDiff);\n }\n else {\n this.element.scrollTop = this.element.scrollTop - heightDiff;\n }\n }\n else if (prev) {\n if (this.showHeader && this.headerEle) {\n var topHeight = groupItemBounds ? groupItemBounds.top : firstItemBounds.top;\n var headerBounds = this.headerEle.getBoundingClientRect();\n heightDiff = headerBounds.top < 0 ? (headerBounds.height - topHeight) : 0;\n if (this.isWindow === true) {\n window.scroll(0, pageYOffset - heightDiff);\n }\n else {\n this.element.scrollTop = 0;\n }\n }\n else if (this.fields.groupBy) {\n heightDiff = this.isWindow ? (groupItemBounds.top < 0 ? groupItemBounds.top : 0) :\n (elementTop - firstItemBounds.top) + groupItemBounds.height;\n if (this.isWindow === true) {\n window.scroll(0, pageYOffset + heightDiff);\n }\n else {\n this.element.scrollTop = this.element.scrollTop - heightDiff;\n }\n }\n }\n }\n };\n ListView.prototype.enterKeyHandler = function (e) {\n if (Object.keys(this.dataSource).length && this.curUL) {\n var hasChild = !isNullOrUndefined(this.curUL.querySelector('.' + classNames.hasChild)) ? true : false;\n var li = this.curUL.querySelector('.' + classNames.focused);\n if (hasChild && li) {\n li.classList.remove(classNames.focused);\n if (this.showCheckBox) {\n this.removeSelect();\n this.removeSelect(li);\n this.removeHover();\n }\n this.setSelectLI(li, e);\n }\n }\n };\n ListView.prototype.spaceKeyHandler = function (e) {\n e.preventDefault();\n if (this.enable && this.showCheckBox && Object.keys(this.dataSource).length && this.curUL) {\n var li = this.curUL.querySelector('.' + classNames.focused);\n var checkboxElement = void 0;\n var checkIcon = void 0;\n if (!isNullOrUndefined(li) && isNullOrUndefined(li.querySelector('.' + classNames.checked))) {\n var args = {\n curData: undefined, dataSource: undefined, fields: undefined, options: undefined,\n text: undefined, item: li\n };\n checkboxElement = args.item.querySelector('.' + classNames.checkboxWrapper);\n this.checkInternally(args, checkboxElement);\n checkIcon = checkboxElement.querySelector('.' + classNames.checkboxIcon + '.' + classNames.icon);\n }\n else {\n this.uncheckItem(li);\n }\n var eventArgs = this.selectEventData(li, e);\n merge(eventArgs, { isChecked: checkIcon ? checkIcon.classList.contains(classNames.checked) : false });\n this.trigger('select', eventArgs);\n this.updateSelectedId();\n }\n };\n ListView.prototype.keyActionHandler = function (e) {\n switch (e.keyCode) {\n case 36:\n this.homeKeyHandler(e);\n break;\n case 35:\n this.homeKeyHandler(e, true);\n break;\n case 40:\n this.arrowKeyHandler(e);\n break;\n case 38:\n this.arrowKeyHandler(e, true);\n break;\n case 13:\n this.enterKeyHandler(e);\n break;\n case 8:\n if (this.showCheckBox && this.curDSLevel[this.curDSLevel.length - 1]) {\n this.uncheckAllItems();\n }\n this.back();\n break;\n case 32:\n if (isNullOrUndefined(this.targetElement) || !(this.targetElement.classList.contains('e-focused'))) {\n this.spaceKeyHandler(e);\n }\n break;\n }\n };\n ListView.prototype.swipeActionHandler = function (e) {\n if (e.swipeDirection === 'Right' && e.velocity > swipeVelocity && e.originalEvent.type === 'touchend') {\n if (this.showCheckBox && this.curDSLevel[this.curDSLevel.length - 1]) {\n this.uncheckAllItems();\n }\n this.back();\n }\n };\n ListView.prototype.focusout = function () {\n if (Object.keys(this.dataSource).length && this.curUL) {\n var focusedElement = this.curUL.querySelector('.' + classNames.focused);\n if (focusedElement) {\n focusedElement.classList.remove(classNames.focused);\n if (!this.showCheckBox && !isNullOrUndefined(this.selectedLI)) {\n this.selectedLI.classList.add(classNames.selected);\n }\n }\n }\n };\n ListView.prototype.wireEvents = function () {\n EventHandler.add(this.element, 'keydown', this.keyActionHandler, this);\n EventHandler.add(this.element, 'click', this.clickHandler, this);\n EventHandler.add(this.element, 'mouseover', this.hoverHandler, this);\n EventHandler.add(this.element, 'mouseout', this.leaveHandler, this);\n EventHandler.add(this.element, 'focusout', this.focusout, this);\n this.touchModule = new Touch(this.element, { swipe: this.swipeActionHandler.bind(this) });\n };\n ListView.prototype.unWireEvents = function () {\n EventHandler.remove(this.element, 'click', this.clickHandler);\n EventHandler.remove(this.element, 'mouseover', this.hoverHandler);\n EventHandler.remove(this.element, 'mouseout', this.leaveHandler);\n EventHandler.remove(this.element, 'mouseover', this.hoverHandler);\n EventHandler.remove(this.element, 'mouseout', this.leaveHandler);\n this.touchModule.destroy();\n this.touchModule = null;\n };\n ListView.prototype.removeFocus = function () {\n var focusedLI = this.element.querySelectorAll('.' + classNames.focused);\n for (var _i = 0, focusedLI_1 = focusedLI; _i < focusedLI_1.length; _i++) {\n var ele = focusedLI_1[_i];\n ele.classList.remove(classNames.focused);\n }\n };\n ListView.prototype.removeHover = function () {\n var hoverLI = this.element.querySelector('.' + classNames.hover);\n if (hoverLI) {\n hoverLI.classList.remove(classNames.hover);\n }\n };\n ListView.prototype.removeSelect = function (li) {\n if (isNullOrUndefined(li)) {\n var selectedLI = this.element.querySelectorAll('.' + classNames.selected);\n for (var _i = 0, selectedLI_1 = selectedLI; _i < selectedLI_1.length; _i++) {\n var ele = selectedLI_1[_i];\n if (this.showCheckBox && ele.querySelector('.' + classNames.checked)) {\n continue;\n }\n else {\n ele.classList.remove(classNames.selected);\n }\n }\n }\n else {\n li.classList.remove(classNames.selected);\n }\n };\n ListView.prototype.isValidLI = function (li) {\n return (li && li.classList.contains(classNames.listItem)\n && !li.classList.contains(classNames.groupListItem)\n && !li.classList.contains(classNames.disable));\n };\n ListView.prototype.setCheckboxLI = function (li, e) {\n if (this.isValidLI(li) && this.enable && this.showCheckBox) {\n if (this.curUL.querySelector('.' + classNames.focused)) {\n this.curUL.querySelector('.' + classNames.focused).classList.remove(classNames.focused);\n }\n var textAreaFocus = li.querySelector('textarea') || li.querySelector('input');\n li.classList.add(classNames.focused);\n if (!isNullOrUndefined(e)) {\n if (e.target === textAreaFocus) {\n textAreaFocus.classList.add('e-focused');\n }\n }\n var checkboxElement = li.querySelector('.' + classNames.checkboxWrapper);\n var checkIcon = checkboxElement.querySelector('.' + classNames.checkboxIcon + '.' + classNames.icon);\n this.removeHover();\n if (!checkIcon.classList.contains(classNames.checked)) {\n checkIcon.classList.add(classNames.checked);\n li.classList.add(classNames.selected);\n }\n else {\n checkIcon.classList.remove(classNames.checked);\n li.classList.remove(classNames.selected);\n }\n checkboxElement.setAttribute('aria-checked', checkIcon.classList.contains(classNames.checked) ?\n 'true' : 'false');\n var eventArgs = this.selectEventData(li, e);\n merge(eventArgs, { isChecked: checkIcon.classList.contains(classNames.checked) });\n if (this.enableVirtualization) {\n this.virtualizationModule.setCheckboxLI(li, e);\n }\n this.trigger('select', eventArgs);\n this.setSelectedItemData(li);\n this.renderSubList(li);\n }\n };\n ListView.prototype.selectEventData = function (li, e) {\n var data = this.getItemData(li);\n var fieldData = getFieldValues(data, this.listBaseOption.fields);\n var selectedItem;\n if (!isNullOrUndefined(data)\n && typeof this.dataSource[0] === 'string' || typeof this.dataSource[0] === 'number') {\n selectedItem = { item: li, text: li && li.innerText.trim(), data: this.dataSource };\n }\n else {\n selectedItem =\n // eslint-disable-next-line\n {\n item: li, text: fieldData && fieldData[this.listBaseOption.fields.text],\n // eslint-disable-next-line\n data: data\n };\n }\n var eventArgs = {};\n merge(eventArgs, selectedItem);\n if (e) {\n merge(eventArgs, { isInteracted: true, event: e, cancel: false, index: this.curUL && Array.prototype.indexOf.call(this.curUL.children, li) });\n }\n return eventArgs;\n };\n ListView.prototype.setSelectedItemData = function (li) {\n var data = this.getItemData(li);\n // eslint-disable-next-line\n var fieldData = getFieldValues(data, this.listBaseOption.fields);\n if (!isNullOrUndefined(data) && ((typeof this.dataSource[0] === 'string') ||\n (typeof this.dataSource[0] === 'number'))) {\n this.selectedItems = {\n item: li,\n text: li && li.innerText.trim(),\n data: this.dataSource\n };\n }\n else {\n this.selectedItems = {\n item: li,\n // eslint-disable-next-line\n text: fieldData && fieldData[this.listBaseOption.fields.text],\n // eslint-disable-next-line\n data: data\n };\n }\n };\n ListView.prototype.setSelectLI = function (li, e) {\n var _this = this;\n if (this.isValidLI(li) && !li.classList.contains(classNames.selected) && this.enable) {\n if (!this.showCheckBox) {\n this.removeSelect();\n }\n li.classList.add(classNames.selected);\n this.removeHover();\n this.setSelectedItemData(li);\n if (this.enableVirtualization) {\n this.virtualizationModule.setSelectLI(li, e);\n }\n var eventArgs = this.selectEventData(li, e);\n this.trigger('select', eventArgs, function (observedArgs) {\n if (!observedArgs.cancel) {\n _this.selectedLI = li;\n _this.renderSubList(li);\n }\n });\n }\n };\n ListView.prototype.setHoverLI = function (li) {\n if (this.isValidLI(li) && !li.classList.contains(classNames.hover) && this.enable) {\n var lastLi = this.element.querySelectorAll('.' + classNames.hover);\n if (lastLi && lastLi.length) {\n removeClass(lastLi, classNames.hover);\n }\n if (!li.classList.contains(classNames.selected) || this.showCheckBox) {\n li.classList.add(classNames.hover);\n }\n }\n };\n //Data Source Related Functions\n ListView.prototype.getSubDS = function () {\n var levelKeys = this.curDSLevel;\n if (levelKeys.length) {\n var ds = this.localData;\n for (var _i = 0, levelKeys_1 = levelKeys; _i < levelKeys_1.length; _i++) {\n var key = levelKeys_1[_i];\n var field = {};\n // eslint-disable-next-line\n field[this.fields.id] = key;\n this.curDSJSON = this.findItemFromDS(ds, field);\n var fieldData = getFieldValues(this.curDSJSON, this.listBaseOption.fields);\n ds = this.curDSJSON ? fieldData[this.fields.child] : ds;\n }\n return ds;\n }\n return this.localData;\n };\n ListView.prototype.getItemData = function (li) {\n var dataSource = this.dataSource instanceof DataManager ?\n this.localData : this.dataSource;\n var fields = this.getElementUID(li);\n var curDS;\n if (isNullOrUndefined(this.element.querySelector('.' + classNames.hasChild)) && this.fields.groupBy) {\n curDS = this.curViewDS;\n }\n else {\n curDS = dataSource;\n }\n return this.findItemFromDS(curDS, fields);\n };\n ListView.prototype.findItemFromDS = function (dataSource, fields, parent) {\n var _this = this;\n var resultJSON;\n if (dataSource && dataSource.length && fields) {\n dataSource.some(function (data) {\n var fieldData = \n // eslint-disable-next-line\n getFieldValues(data, _this.listBaseOption.fields);\n //(!(fid) || id === fid) && (!(ftext) || text === ftext) && (!!fid || !!ftext)\n if ((fields[_this.fields.id] || fields[_this.fields.text]) &&\n (!fields[_this.fields.id] || (!isNullOrUndefined(fieldData[_this.fields.id]) &&\n fieldData[_this.fields.id].toString()) === fields[_this.fields.id].toString()) &&\n (!fields[_this.fields.text] || fieldData[_this.fields.text] === fields[_this.fields.text])) {\n resultJSON = (parent ? dataSource : data);\n }\n else if (typeof data !== 'object' && dataSource.indexOf(data) !== -1) {\n resultJSON = (parent ? dataSource : data);\n }\n else if (!isNullOrUndefined(fields[_this.fields.id]) && isNullOrUndefined(fieldData[_this.fields.id])) {\n var li = _this.element.querySelector('[data-uid=\"'\n + fields[_this.fields.id] + '\"]');\n // eslint-disable-next-line\n if (li && li.innerText.trim() === fieldData[_this.fields.text]) {\n resultJSON = data;\n }\n // eslint-disable-next-line\n }\n else if (fieldData.hasOwnProperty(_this.fields.child) && fieldData[_this.fields.child].length) {\n resultJSON = _this.findItemFromDS(fieldData[_this.fields.child], fields, parent);\n }\n return !!resultJSON;\n });\n }\n else {\n resultJSON = dataSource;\n }\n return resultJSON;\n };\n ListView.prototype.getQuery = function () {\n var columns = [];\n var query = (this.query ? this.query : new Query());\n if (!this.query) {\n // eslint-disable-next-line\n for (var _i = 0, _a = Object.keys(this.fields.properties); _i < _a.length; _i++) {\n var column = _a[_i];\n if (column !== 'tableName' && !!(this.fields[\"\" + column]) &&\n this.fields[\"\" + column] !==\n ListBase.defaultMappedFields[\"\" + column]\n && columns.indexOf(this.fields[\"\" + column]) === -1) {\n columns.push(this.fields[\"\" + column]);\n }\n }\n query.select(columns);\n // eslint-disable-next-line\n if (this.fields.properties.hasOwnProperty('tableName')) {\n query.from(this.fields.tableName);\n }\n }\n return query;\n };\n ListView.prototype.setViewDataSource = function (dataSource) {\n if (dataSource === void 0) { dataSource = this.localData; }\n // eslint-disable-next-line\n var fieldValue = (isNullOrUndefined(this.fields.sortBy)) ? this.fields.text : this.fields.sortBy;\n var query = ListBase.addSorting(this.sortOrder, fieldValue);\n if (dataSource && this.fields.groupBy) {\n if (this.sortOrder !== 'None') {\n this.curViewDS = ListBase.groupDataSource(ListBase.getDataSource(dataSource, query), this.listBaseOption.fields, this.sortOrder);\n }\n else {\n this.curViewDS = ListBase.groupDataSource(dataSource, this.listBaseOption.fields, this.sortOrder);\n }\n }\n else if (dataSource && this.sortOrder !== 'None') {\n this.curViewDS = ListBase.getDataSource(dataSource, query);\n }\n else {\n this.curViewDS = dataSource;\n }\n };\n ListView.prototype.isInAnimation = function () {\n return this.curUL.classList.contains('.e-animate');\n };\n ListView.prototype.renderRemoteLists = function (e, listViewComponent) {\n if (this.isDestroyed) {\n return;\n }\n this.localData = e.result;\n listViewComponent.removeElement(listViewComponent.contentContainer);\n this.renderList();\n this.trigger('actionComplete', e);\n };\n ListView.prototype.triggerActionFailure = function (e) {\n if (this.isDestroyed) {\n return;\n }\n this.trigger('actionFailure', e);\n };\n ListView.prototype.setLocalData = function () {\n var _this = this;\n this.trigger('actionBegin');\n // eslint-disable-next-line\n var listViewComponent = this;\n if (this.dataSource instanceof DataManager) {\n if (this.dataSource.ready) {\n this.dataSource.ready.then(function (e) {\n /* eslint-disable */\n _this.isOffline = _this.dataSource.dataSource.offline;\n if (_this.dataSource instanceof DataManager && _this.isOffline) {\n _this.renderRemoteLists(e, listViewComponent);\n }\n }).catch(function (e) {\n _this.triggerActionFailure(e);\n });\n }\n else {\n this.dataSource.executeQuery(this.getQuery()).then(function (e) {\n _this.renderRemoteLists(e, listViewComponent);\n }).catch(function (e) {\n _this.triggerActionFailure(e);\n });\n }\n }\n else if (!this.dataSource || !this.dataSource.length) {\n var ul = this.element.querySelector('ul');\n if (ul) {\n remove(ul);\n this.setProperties({ dataSource: ListBase.createJsonFromElement(ul) }, true);\n this.localData = this.dataSource;\n this.renderList();\n this.trigger('actionComplete', { data: this.localData });\n }\n }\n else {\n this.localData = this.dataSource;\n this.renderList();\n this.trigger('actionComplete', { data: this.localData });\n }\n };\n ListView.prototype.reRender = function () {\n this.removeElement(this.headerEle);\n this.removeElement(this.ulElement);\n this.removeElement(this.contentContainer);\n // eslint-disable-next-line\n if (this.isReact) {\n this.clearTemplate();\n }\n if (Object.keys(window).indexOf('ejsInterop') === -1) {\n this.element.innerHTML = '';\n }\n this.headerEle = this.ulElement = this.liCollection = undefined;\n this.header();\n this.setLocalData();\n };\n ListView.prototype.resetCurrentList = function () {\n this.setViewDataSource(this.curViewDS);\n this.contentContainer.innerHTML = '';\n this.createList();\n this.renderIntoDom(this.curUL);\n };\n ListView.prototype.setAttributes = function (liElements) {\n for (var i = 0; i < liElements.length; i++) {\n var element = liElements[i];\n if (element.classList.contains('e-list-item')) {\n element.setAttribute('id', this.element.id + '_' + element.getAttribute('data-uid'));\n element.setAttribute('tabindex', '-1');\n }\n }\n };\n ListView.prototype.createList = function () {\n this.currentLiElements = [];\n this.isNestedList = false;\n this.ulElement = this.curUL = ListBase.createList(this.createElement, this.curViewDS, this.listBaseOption, null, this);\n this.liCollection = this.curUL.querySelectorAll('.' + classNames.listItem);\n this.setAttributes(this.liCollection);\n };\n ListView.prototype.exceptionEvent = function (e) {\n this.trigger('actionFailure', e);\n };\n ListView.prototype.UpdateCurrentUL = function () {\n this.ulElement = this.curUL = this.element.querySelector('.' + classNames.parentItem);\n if (this.curUL) {\n // eslint-disable-next-line\n this.liCollection = this.curUL.querySelectorAll('.' + classNames.listItem);\n }\n };\n ListView.prototype.renderSubList = function (li) {\n this.liElement = li;\n var uID = li.getAttribute('data-uid');\n if (li.classList.contains(classNames.hasChild) && uID) {\n var ul = closest(li.parentNode, '.' + classNames.parentItem);\n var ele = this.element.querySelector('[pid=\\'' + uID + '\\']');\n this.curDSLevel.push(uID);\n this.setViewDataSource(this.getSubDS());\n if (!ele) {\n var data = this.curViewDS;\n ele = ListBase.createListFromJson(this.createElement, data, this.listBaseOption, this.curDSLevel.length, null, this);\n // eslint-disable-next-line\n if (this.isReact) {\n this.renderReactTemplates();\n }\n var lists = ele.querySelectorAll('.' + classNames.listItem);\n this.setAttributes(lists);\n ele.setAttribute('pID', uID);\n ele.style.display = 'none';\n this.renderIntoDom(ele);\n }\n this.switchView(ul, ele);\n this.liCollection = this.curUL.querySelectorAll('.' + classNames.listItem);\n if (this.selectedItems) {\n var fieldData = getFieldValues(this.selectedItems.data, this.listBaseOption.fields);\n // eslint-disable-next-line\n this.header((fieldData[this.listBaseOption.fields.text]), true, 'header');\n }\n this.selectedLI = undefined;\n }\n };\n ListView.prototype.renderIntoDom = function (ele) {\n this.contentContainer.appendChild(ele);\n };\n ListView.prototype.renderList = function (data) {\n this.setViewDataSource(data);\n if (this.enableVirtualization) {\n if (Object.keys(this.dataSource).length) {\n if ((this.template || this.groupTemplate) && !this.virtualizationModule.isNgTemplate()) {\n if (this.isReact || this.isVue) {\n if (typeof this.template == \"string\") {\n this.listBaseOption.template = null;\n }\n if (typeof this.groupTemplate == \"string\") {\n this.listBaseOption.groupTemplate = null;\n }\n }\n else {\n this.listBaseOption.template = null;\n this.listBaseOption.groupTemplate = null;\n }\n this.listBaseOption.itemCreated = this.virtualizationModule.createUIItem.bind(this.virtualizationModule);\n }\n }\n this.virtualizationModule.uiVirtualization();\n }\n else {\n this.createList();\n this.contentContainer = this.createElement('div', { className: classNames.content });\n this.element.appendChild(this.contentContainer);\n this.renderIntoDom(this.ulElement);\n // eslint-disable-next-line\n if (this.isReact) {\n this.renderReactTemplates();\n }\n }\n };\n ListView.prototype.getElementUID = function (obj) {\n var fields = {};\n if (obj instanceof Element) {\n // eslint-disable-next-line\n fields[this.fields.id] = obj.getAttribute('data-uid');\n }\n else {\n fields = obj;\n }\n return fields;\n };\n /**\n * Initializes the ListView component rendering.\n */\n ListView.prototype.render = function () {\n this.element.classList.add(classNames.root);\n attributes(this.element, { role: 'list', tabindex: '0' });\n this.setCSSClass();\n this.setEnableRTL();\n this.setEnable();\n this.setSize();\n this.wireEvents();\n this.header();\n this.setLocalData();\n this.setHTMLAttribute();\n this.rippleFn = rippleEffect(this.element, {\n selector: '.' + classNames.listItem\n });\n this.renderComplete();\n };\n /**\n * It is used to destroy the ListView component.\n */\n ListView.prototype.destroy = function () {\n // eslint-disable-next-line\n if (this.isReact) {\n this.clearTemplate();\n }\n this.unWireEvents();\n var classAr = [classNames.root, classNames.disable, 'e-rtl',\n 'e-has-header', 'e-lib'].concat(this.cssClass.split(' ').filter(function (css) { return css; }));\n removeClass([this.element], classAr);\n this.element.removeAttribute('role');\n this.element.removeAttribute('tabindex');\n this.curUL = this.ulElement = this.liCollection = this.headerEle = undefined;\n this.element.innerHTML = '';\n this.contentContainer = null;\n this.selectedItems = null;\n this.selectedLI = null;\n this.liElement = null;\n this.targetElement = null;\n this.currentLiElements = null;\n this.virtualCheckBox = null;\n _super.prototype.destroy.call(this);\n };\n /**\n * Switches back from the navigated sub list item.\n */\n ListView.prototype.back = function () {\n var pID = this.curDSLevel[this.curDSLevel.length - 1];\n if (pID === undefined || this.isInAnimation()) {\n return;\n }\n this.curDSLevel.pop();\n this.setViewDataSource(this.getSubDS());\n var toUL = this.element.querySelector('[data-uid=\\'' + pID + '\\']');\n var fromUL = this.curUL;\n if (!toUL) {\n this.createList();\n this.renderIntoDom(this.ulElement);\n toUL = this.curUL;\n }\n else {\n toUL = toUL.parentElement;\n }\n var fieldData = getFieldValues(this.curDSJSON, this.listBaseOption.fields);\n // eslint-disable-next-line\n var text = fieldData[this.fields.text];\n this.switchView(fromUL, toUL, true);\n this.removeFocus();\n var li = this.element.querySelector('[data-uid=\\'' + pID + '\\']');\n li.classList.remove(classNames.disable);\n li.classList.add(classNames.focused);\n if (!(this.showCheckBox && li.querySelector('.' + classNames.checkboxIcon).classList.contains(classNames.checked))) {\n li.classList.remove(classNames.selected);\n }\n this.liCollection = this.curUL.querySelectorAll('.' + classNames.listItem);\n if (this.enableHtmlSanitizer) {\n this.setProperties({ headerTitle: SanitizeHtmlHelper.sanitize(this.headerTitle) }, true);\n }\n this.header((this.curDSLevel.length ? text : this.headerTitle), (this.curDSLevel.length ? true : false), 'header');\n };\n /**\n * Selects the list item from the ListView by passing the elements or field object.\n *\n * @param {Fields | HTMLElement | Element} item - We can pass element Object or Fields as Object with ID and Text fields.\n */\n ListView.prototype.selectItem = function (item) {\n if (this.enableVirtualization) {\n this.virtualizationModule.selectItem(item);\n }\n else if (this.showCheckBox) {\n this.setCheckboxLI(this.getLiFromObjOrElement(item));\n }\n else {\n if (isNullOrUndefined(item) === true) {\n this.removeSelect();\n }\n else {\n this.setSelectLI(this.getLiFromObjOrElement(item));\n }\n }\n };\n ListView.prototype.getLiFromObjOrElement = function (obj) {\n var li;\n var dataSource = this.dataSource instanceof DataManager ?\n this.localData : this.dataSource;\n if (!isNullOrUndefined(obj)) {\n if (typeof dataSource[0] === 'string' || typeof dataSource[0] === 'number') {\n if (obj instanceof Element) {\n var uid = obj.getAttribute('data-uid').toString();\n for (var i = 0; i < this.liCollection.length; i++) {\n if (this.liCollection[i].getAttribute('data-uid').toString() === uid) {\n li = this.liCollection[i];\n break;\n }\n }\n }\n else {\n Array.prototype.some.call(this.curUL.querySelectorAll('.' + classNames.listItem), function (item) {\n if (item.innerText.trim() === obj.toString()) {\n li = item;\n return true;\n }\n else {\n return false;\n }\n });\n }\n }\n else {\n var resultJSON = this.getItemData(obj);\n var fieldData = getFieldValues(resultJSON, this.listBaseOption.fields);\n if (resultJSON) {\n li = this.element.querySelector('[data-uid=\"'\n + fieldData[this.fields.id] + '\"]');\n if (!this.enableVirtualization && isNullOrUndefined(li)) {\n var curLi = this.element.querySelectorAll('.' + classNames.listItem);\n for (var i = 0; i < curLi.length; i++) {\n // eslint-disable-next-line\n if (curLi[i].innerText.trim() === fieldData[this.fields.text]) {\n li = curLi[i];\n }\n }\n }\n }\n }\n }\n return li;\n };\n /**\n * Selects multiple list items from the ListView.\n *\n * @param {Fields[] | HTMLElement[] | Element[]} item - We can pass array of\n * elements or array of fields Object with ID and Text fields.\n */\n ListView.prototype.selectMultipleItems = function (item) {\n if (!isNullOrUndefined(item)) {\n for (var i = 0; i < item.length; i++) {\n if (!isNullOrUndefined(item[i])) {\n this.selectItem(item[i]);\n }\n }\n }\n };\n ListView.prototype.getParentId = function () {\n var parentId = [];\n if (this.isNestedList) {\n for (var i = this.curDSLevel.length - 1; i >= 0; i--) {\n parentId.push(this.curDSLevel[i]);\n }\n }\n return parentId;\n };\n ListView.prototype.updateSelectedId = function () {\n this.selectedId = [];\n var liCollection = this.curUL.getElementsByClassName(classNames.selected);\n for (var i = 0; i < liCollection.length; i++) {\n var tempData = this.getItemData(liCollection[i]);\n if (!isNullOrUndefined(tempData) && tempData[this.listBaseOption.fields.id]) {\n this.selectedId.push(tempData[this.listBaseOption.fields.id]);\n }\n }\n };\n /**\n * Gets the details of the currently selected item from the list items.\n *\n */\n ListView.prototype.getSelectedItems = function () {\n // eslint-disable-next-line\n var finalValue;\n var isCompleted = false;\n this.selectedId = [];\n var dataSource = this.dataSource instanceof DataManager ?\n this.localData : this.dataSource;\n if (this.enableVirtualization && !isCompleted) {\n finalValue = this.virtualizationModule.getSelectedItems();\n isCompleted = true;\n }\n else if (this.showCheckBox && !isCompleted) {\n // eslint-disable-next-line\n var liCollection = this.curUL.getElementsByClassName(classNames.selected);\n var liTextCollection = [];\n var liDataCollection = [];\n this.selectedId = [];\n var dataParent = [];\n for (var i = 0; i < liCollection.length; i++) {\n if (typeof dataSource[0] === 'string' || typeof dataSource[0] === 'number') {\n liTextCollection.push(liCollection[i].innerText.trim());\n }\n else {\n var tempData = this.getItemData(liCollection[i]);\n var fieldData = getFieldValues(tempData, this.listBaseOption.fields);\n if (this.isNestedList) {\n dataParent.push({ data: tempData, parentId: this.getParentId() });\n }\n else {\n liDataCollection.push(tempData);\n }\n if (fieldData) {\n // eslint-disable-next-line\n liTextCollection.push(fieldData[this.listBaseOption.fields.text]);\n // eslint-disable-next-line\n this.selectedId.push(fieldData[this.listBaseOption.fields.id]);\n }\n else {\n liTextCollection.push(undefined);\n this.selectedId.push(undefined);\n }\n }\n }\n if ((typeof dataSource[0] === 'string'\n || typeof dataSource[0] === 'number')\n && !isCompleted) {\n finalValue = { item: liCollection, data: dataSource, text: liTextCollection };\n isCompleted = true;\n }\n if (this.isNestedList && !isCompleted) {\n finalValue = { item: liCollection, data: dataParent, text: liTextCollection };\n isCompleted = true;\n }\n else if (!isCompleted) {\n finalValue = { item: liCollection, data: liDataCollection, text: liTextCollection };\n isCompleted = true;\n }\n }\n else if (!isCompleted) {\n var liElement = this.element.getElementsByClassName(classNames.selected)[0];\n var fieldData = getFieldValues(this.getItemData(liElement), this.listBaseOption.fields);\n if ((typeof dataSource[0] === 'string'\n || typeof dataSource[0] === 'number')\n && !isCompleted) {\n finalValue = (!isNullOrUndefined(liElement)) ? {\n item: liElement, data: dataSource,\n text: liElement.innerText.trim()\n } : undefined;\n isCompleted = true;\n }\n else if (!isCompleted) {\n if (isNullOrUndefined(fieldData) || isNullOrUndefined(liElement)) {\n finalValue = undefined;\n isCompleted = true;\n }\n else {\n // eslint-disable-next-line\n this.selectedId.push(fieldData[this.listBaseOption.fields.id]);\n finalValue = {\n text: fieldData[this.listBaseOption.fields.text], item: liElement,\n data: this.getItemData(liElement)\n };\n isCompleted = true;\n }\n }\n }\n return finalValue;\n };\n /**\n * Finds out an item details from the current list.\n *\n * @param {Fields | HTMLElement | Element} item - We can pass element Object or Fields as Object with ID and Text fields.\n */\n ListView.prototype.findItem = function (item) {\n return this.getItemData(item);\n };\n /**\n * Enables the disabled list items by passing the Id and text fields.\n *\n * @param {Fields | HTMLElement | Element} item - We can pass element Object or Fields as Object with ID and Text fields.\n */\n ListView.prototype.enableItem = function (item) {\n this.setItemState(item, true);\n if (this.enableVirtualization) {\n this.virtualizationModule.enableItem(item);\n }\n };\n /**\n * Disables the list items by passing the Id and text fields.\n *\n * @param {Fields | HTMLElement | Element} item - We can pass element Object or Fields as Object with ID and Text fields.\n */\n ListView.prototype.disableItem = function (item) {\n this.setItemState(item, false);\n if (this.enableVirtualization) {\n this.virtualizationModule.disableItem(item);\n }\n };\n //A function that used to set state of the list item like enable, disable.\n ListView.prototype.setItemState = function (item, isEnable) {\n var resultJSON = this.getItemData(item);\n var fieldData = getFieldValues(resultJSON, this.listBaseOption.fields);\n if (resultJSON) {\n var li = this.element.querySelector('[data-uid=\"' + fieldData[this.fields.id] + '\"]');\n if (isEnable) {\n if (li) {\n li.classList.remove(classNames.disable);\n }\n delete resultJSON[this.fields.enabled];\n }\n else if (!isEnable) {\n if (li) {\n li.classList.add(classNames.disable);\n }\n // eslint-disable-next-line\n resultJSON[this.fields.enabled] = false;\n }\n }\n };\n /**\n * Shows the hide list item from the ListView.\n *\n * @param {Fields | HTMLElement | Element} item - We can pass element Object or Fields as Object with ID and Text fields.\n */\n ListView.prototype.showItem = function (item) {\n this.showHideItem(item, false, '');\n if (this.enableVirtualization) {\n this.virtualizationModule.showItem(item);\n }\n };\n /**\n * Hides an list item from the ListView.\n *\n * @param {Fields | HTMLElement | Element} item - We can pass element Object or Fields as Object with ID and Text fields.\n */\n ListView.prototype.hideItem = function (item) {\n this.showHideItem(item, true, 'none');\n if (this.enableVirtualization) {\n this.virtualizationModule.hideItem(item);\n }\n };\n ListView.prototype.showHideItem = function (obj, isHide, display) {\n var resultJSON = this.getItemData(obj);\n var fieldData = getFieldValues(resultJSON, this.listBaseOption.fields);\n if (resultJSON) {\n var li = this.element.querySelector('[data-uid=\"' + fieldData[this.fields.id] + '\"]');\n if (li) {\n li.style.display = display;\n }\n if (isHide) {\n // eslint-disable-next-line\n resultJSON[this.fields.isVisible] = false;\n }\n else {\n delete resultJSON[this.fields.isVisible];\n }\n }\n };\n /**\n * Adds the new list item(s) to the current ListView.\n * To add a new list item(s) in the ListView, we need to pass the `data` as an array of items that need\n * to be added and `fields` as the target item to which we need to add the given item(s) as its children.\n * For example fields: { text: 'Name', tooltip: 'Name', id:'id'}\n *\n * @param {{Object}[]} data - JSON Array Data that need to add.\n *\n * @param {Fields} fields - Target item to add the given data as its children (can be null).\n *\n */\n ListView.prototype.addItem = function (data, fields) {\n if (fields === void 0) { fields = undefined; }\n var dataSource = this.dataSource instanceof DataManager\n ? this.localData : this.dataSource;\n this.addItemInternally(data, fields, dataSource);\n };\n ListView.prototype.addItemInternally = function (data, fields, dataSource) {\n if (data instanceof Array) {\n if (this.enableVirtualization) {\n this.virtualizationModule.addItem(data, fields, dataSource);\n }\n else {\n var ds = this.findItemFromDS(dataSource, fields);\n var child = void 0;\n if (ds) {\n var fieldData = getFieldValues(ds, this.listBaseOption.fields);\n child = fieldData[this.fields.child];\n if (!child) {\n child = [];\n }\n child = child.concat(data);\n }\n // check for whether target is nested level or top level in list\n if (ds instanceof Array) {\n for (var i = 0; i < data.length; i++) {\n dataSource.push(data[i]);\n this.setViewDataSource(dataSource);\n // since it is top level target, get the content container's first child\n // as it is always the top level UL\n var targetUL = this.contentContainer\n ? this.contentContainer.children[0]\n : null;\n // check for whether the list was previously empty or not, if it is\n // proceed to call initial render\n if (this.contentContainer && targetUL) {\n this.addItemIntoDom(data[i], targetUL, this.curViewDS);\n }\n else {\n this.reRender();\n }\n }\n this.liCollection = this.curUL.querySelectorAll('.' + classNames.listItem);\n }\n else {\n // proceed as target item is in nested level, only if it is a valid target ds\n if (ds) {\n ds[this.fields.child] = child;\n this.addItemInNestedList(ds, data);\n }\n }\n }\n }\n };\n ListView.prototype.addItemInNestedList = function (targetItemData, itemQueue) {\n // eslint-disable-next-line\n var targetItemId = targetItemData[this.fields.id];\n var targetChildDS = targetItemData[this.fields.child];\n var isAlreadyRenderedUL = this.element.querySelector('[pid=\\'' + targetItemId + '\\']');\n var targetLi = this.element.querySelector('[data-uid=\\'' + targetItemId + '\\']');\n var targetUL = isAlreadyRenderedUL\n ? isAlreadyRenderedUL\n : targetLi\n ? closest(targetLi, 'ul')\n : null;\n var targetDS = isAlreadyRenderedUL ? targetChildDS : [targetItemData];\n var isTargetEmptyChild = targetLi ? !targetLi.classList.contains(classNames.hasChild) : false;\n var isRefreshTemplateNeeded = false;\n // if li element is already rendered, that element needs to be refreshed so that\n // it becomes child viewable due to new child items are added now\n if (isTargetEmptyChild) {\n var targetRefreshedElement = ListBase.createListItemFromJson(this.createElement, targetDS, this.listBaseOption, null, null, this);\n this.setAttributes(targetRefreshedElement);\n targetUL.insertBefore(targetRefreshedElement[0], targetLi);\n detach(targetLi);\n isRefreshTemplateNeeded = true;\n }\n // if it is already rendered element, we need to create and append new elements\n if (isAlreadyRenderedUL && itemQueue) {\n for (var i = 0; i < itemQueue.length; i++) {\n targetDS.push(itemQueue[i]);\n this.addItemIntoDom(itemQueue[i], targetUL, targetDS);\n }\n isRefreshTemplateNeeded = true;\n }\n };\n ListView.prototype.addItemIntoDom = function (currentItem, targetUL, curViewDS) {\n var index = curViewDS.indexOf(currentItem);\n this.addListItem(currentItem, index, targetUL, curViewDS);\n var curItemDS = curViewDS[index - 1];\n if (curItemDS && curItemDS.isHeader && curItemDS.items.length === 1) {\n this.addListItem(curItemDS, (index - 1), targetUL, curViewDS);\n }\n };\n ListView.prototype.addListItem = function (dataSource, index, ulElement, curViewDS) {\n var target = this.getLiFromObjOrElement(curViewDS[index + 1]) ||\n this.getLiFromObjOrElement(curViewDS[index + 2]) || null;\n var li = ListBase.createListItemFromJson(this.createElement, [dataSource], this.listBaseOption, null, null, this);\n this.setAttributes(li);\n // eslint-disable-next-line\n if (this.template && this.isReact) {\n this.renderReactTemplates();\n }\n if (this.fields.groupBy && curViewDS[index + 1] && curViewDS[index + 1].isHeader) {\n var targetEle = this.getLiFromObjOrElement(curViewDS[index - 1]);\n if (targetEle) {\n target = targetEle.nextElementSibling;\n }\n }\n ulElement.insertBefore(li[0], target);\n };\n /**\n * Removes the list item from the data source based on a passed\n * element like fields: { text: 'Name', tooltip: 'Name', id:'id'}\n *\n * @param {Fields | HTMLElement | Element} item - We can pass element Object or Fields as Object with ID and Text fields.\n */\n ListView.prototype.removeItem = function (item) {\n var listDataSource = this.dataSource instanceof DataManager\n ? this.localData : this.dataSource;\n if (this.enableVirtualization) {\n this.virtualizationModule.removeItem(item);\n }\n else {\n this.removeItemFromList(item, listDataSource);\n }\n };\n ListView.prototype.removeItemFromList = function (obj, listDataSource) {\n var _this = this;\n var curViewDS = this.curViewDS;\n var fields = obj instanceof Element ? this.getElementUID(obj) : obj;\n var dataSource;\n // eslint-disable-next-line prefer-const\n dataSource = this.findItemFromDS(listDataSource, fields, true);\n if (dataSource) {\n var data_1;\n // eslint-disable-next-line prefer-const\n data_1 = this.findItemFromDS(dataSource, fields);\n var index = curViewDS.indexOf(data_1);\n var li = this.getLiFromObjOrElement(obj);\n var groupLi = void 0;\n this.validateNestedView(li);\n if (this.fields.groupBy && this.curViewDS[index - 1] &&\n curViewDS[index - 1].isHeader &&\n curViewDS[index - 1].items.length === 1) {\n if (li && li.previousElementSibling.classList.contains(classNames.groupListItem) &&\n (isNullOrUndefined(li.nextElementSibling) || (li.nextElementSibling &&\n li.nextElementSibling.classList.contains(classNames.groupListItem)))) {\n groupLi = li.previousElementSibling;\n }\n }\n if (li) {\n detach(li);\n }\n if (groupLi) {\n detach(groupLi);\n }\n // eslint-disable-next-line\n var foundData = (dataSource.length - 1) <= 0\n ? this.findParent(this.localData, this.fields.id, \n // eslint-disable-next-line\n function (value) { return value === data_1[_this.fields.id]; }, null) : null;\n var dsIndex = dataSource.indexOf(data_1);\n dataSource.splice(dsIndex, 1);\n this.setViewDataSource(listDataSource);\n if (foundData\n && foundData.parent\n && Array.isArray(foundData.parent[this.fields.child])\n && foundData.parent[this.fields.child].length <= 0) {\n var parentLi = this.getLiFromObjOrElement(foundData.parent);\n if (parentLi) {\n var li_1 = ListBase.createListItemFromJson(this.createElement, [foundData.parent], this.listBaseOption, null, null, this);\n this.setAttributes(li_1);\n parentLi.parentElement.insertBefore(li_1[0], parentLi);\n parentLi.parentElement.removeChild(parentLi);\n }\n }\n if (dataSource.length <= 0) {\n this.back();\n }\n this.liCollection = Array.prototype.slice.call(this.element.querySelectorAll('.' + classNames.listItem));\n }\n };\n // validate before removing an element whether the current view is inside target element's child view\n ListView.prototype.validateNestedView = function (li) {\n var liID = li ? li.getAttribute('data-uid').toString().toLowerCase() : null;\n if (liID && this.curDSLevel && this.curDSLevel.length > 0) {\n while (this.curDSLevel.some(function (id) { return id.toString().toLowerCase() === liID; })) {\n this.back();\n }\n }\n };\n /**\n * Removes multiple items from the ListView by passing the array of elements or array of field objects.\n *\n * @param {Fields[] | HTMLElement[] | Element[]} item - We can pass array of elements or array of field Object with ID and Text fields.\n */\n ListView.prototype.removeMultipleItems = function (item) {\n if (item.length) {\n for (var i = 0; i < item.length; i++) {\n this.removeItem(item[i]);\n }\n }\n };\n // eslint-disable-next-line\n ListView.prototype.findParent = function (dataSource, id, callback, parent) {\n // eslint-disable-next-line no-prototype-builtins\n if (dataSource.hasOwnProperty(id) && callback(dataSource[id]) === true) {\n return extend({}, dataSource);\n }\n for (var i = 0; i < Object.keys(dataSource).length; i++) {\n if (dataSource[Object.keys(dataSource)[i]]\n && typeof dataSource[Object.keys(dataSource)[i]] === 'object') {\n // eslint-disable-next-line\n var result = this.findParent(dataSource[Object.keys(dataSource)[i]], id, callback, dataSource);\n if (result != null) {\n if (!result.parent) {\n result.parent = parent;\n }\n return result;\n }\n }\n }\n return null;\n };\n // Module Required function\n ListView.prototype.getModuleName = function () {\n return 'listview';\n };\n ListView.prototype.requiredModules = function () {\n var modules = [];\n if (this.enableVirtualization) {\n modules.push({ args: [this], member: 'virtualization' });\n }\n return modules;\n };\n /**\n * Get the properties to be maintained in the persisted state.\n */\n ListView.prototype.getPersistData = function () {\n return this.addOnPersist(['cssClass', 'enableRtl', 'htmlAttributes',\n 'enable', 'fields', 'animation', 'headerTitle',\n 'sortOrder', 'showIcon', 'height', 'width', 'showCheckBox', 'checkBoxPosition', 'selectedId']);\n };\n __decorate([\n Property('')\n ], ListView.prototype, \"cssClass\", void 0);\n __decorate([\n Property(false)\n ], ListView.prototype, \"enableVirtualization\", void 0);\n __decorate([\n Property({})\n ], ListView.prototype, \"htmlAttributes\", void 0);\n __decorate([\n Property(true)\n ], ListView.prototype, \"enable\", void 0);\n __decorate([\n Property([])\n ], ListView.prototype, \"dataSource\", void 0);\n __decorate([\n Property()\n ], ListView.prototype, \"query\", void 0);\n __decorate([\n Complex(ListBase.defaultMappedFields, FieldSettings)\n ], ListView.prototype, \"fields\", void 0);\n __decorate([\n Property({ effect: 'SlideLeft', duration: 400, easing: 'ease' })\n ], ListView.prototype, \"animation\", void 0);\n __decorate([\n Property('None')\n ], ListView.prototype, \"sortOrder\", void 0);\n __decorate([\n Property(false)\n ], ListView.prototype, \"showIcon\", void 0);\n __decorate([\n Property(false)\n ], ListView.prototype, \"showCheckBox\", void 0);\n __decorate([\n Property('Left')\n ], ListView.prototype, \"checkBoxPosition\", void 0);\n __decorate([\n Property('')\n ], ListView.prototype, \"headerTitle\", void 0);\n __decorate([\n Property(false)\n ], ListView.prototype, \"showHeader\", void 0);\n __decorate([\n Property(false)\n ], ListView.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Property('')\n ], ListView.prototype, \"height\", void 0);\n __decorate([\n Property('')\n ], ListView.prototype, \"width\", void 0);\n __decorate([\n Property(null)\n ], ListView.prototype, \"template\", void 0);\n __decorate([\n Property(null)\n ], ListView.prototype, \"headerTemplate\", void 0);\n __decorate([\n Property(null)\n ], ListView.prototype, \"groupTemplate\", void 0);\n __decorate([\n Event()\n ], ListView.prototype, \"select\", void 0);\n __decorate([\n Event()\n ], ListView.prototype, \"actionBegin\", void 0);\n __decorate([\n Event()\n ], ListView.prototype, \"actionComplete\", void 0);\n __decorate([\n Event()\n ], ListView.prototype, \"actionFailure\", void 0);\n ListView = __decorate([\n NotifyPropertyChanges\n ], ListView);\n return ListView;\n}(Component));\nexport { ListView };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { ListView } from '@syncfusion/ej2-lists';\nimport { ComponentBase, applyMixins } from '@syncfusion/ej2-react-base';\n/**\n * Represents ListView component for React\n * ```\n * \n * ```\n */\nvar ListViewComponent = /** @class */ (function (_super) {\n __extends(ListViewComponent, _super);\n function ListViewComponent(props) {\n var _this = _super.call(this, props) || this;\n _this.initRenderCalled = false;\n _this.checkInjectedModules = true;\n _this.statelessTemplateProps = null;\n _this.templateProps = null;\n _this.immediateRender = false;\n _this.portals = [];\n return _this;\n }\n ListViewComponent.prototype.render = function () {\n if (((this.element && !this.initRenderCalled) || this.refreshing) && !this.isReactForeceUpdate) {\n _super.prototype.render.call(this);\n this.initRenderCalled = true;\n }\n else {\n return React.createElement('div', this.getDefaultAttributes(), [].concat(this.props.children, this.portals));\n }\n };\n return ListViewComponent;\n}(ListView));\nexport { ListViewComponent };\napplyMixins(ListViewComponent, [ComponentBase, React.Component]);\n","import { classNames } from './list-view';\nimport { EventHandler, append, isNullOrUndefined, detach, removeClass, addClass, compile, formatUnit } from '@syncfusion/ej2-base';\nimport { ListBase } from '../common/list-base';\nimport { DataManager } from '@syncfusion/ej2-data';\nvar listElementCount = 1.5;\nvar windowElementCount = 3;\nvar Virtualization = /** @class */ (function () {\n function Virtualization(instance) {\n this.elementDifference = 0;\n this.listViewInstance = instance;\n }\n /**\n * For internal use only.\n *\n * @private\n */\n Virtualization.prototype.isNgTemplate = function () {\n return !isNullOrUndefined(this.listViewInstance.templateRef) && typeof this.listViewInstance.templateRef !== 'string';\n };\n /**\n * Checks if the platform is a Vue and its template property is a function type.\n *\n * @returns {boolean} indicating the result of the check\n */\n Virtualization.prototype.isVueFunctionTemplate = function () {\n return this.listViewInstance.isVue && typeof this.listViewInstance.template === 'function';\n };\n /**\n * For internal use only.\n *\n * @private\n */\n Virtualization.prototype.uiVirtualization = function () {\n this.wireScrollEvent(false);\n var curViewDS = this.listViewInstance.curViewDS;\n var firstDs = curViewDS.slice(0, 1);\n this.listViewInstance.ulElement = this.listViewInstance.curUL = ListBase.createList(\n // eslint-disable-next-line\n this.listViewInstance.createElement, firstDs, this.listViewInstance.listBaseOption, null, this.listViewInstance);\n this.listViewInstance.contentContainer = this.listViewInstance.createElement('div', { className: classNames.content });\n this.listViewInstance.element.appendChild(this.listViewInstance.contentContainer);\n this.listViewInstance.contentContainer.appendChild(this.listViewInstance.ulElement);\n this.listItemHeight = this.listViewInstance.ulElement.firstElementChild.getBoundingClientRect().height;\n this.expectedDomItemCount = this.ValidateItemCount(10000);\n this.domItemCount = this.ValidateItemCount(Object.keys(this.listViewInstance.curViewDS).length);\n this.uiFirstIndex = 0;\n this.uiLastIndex = this.domItemCount - 1;\n var otherDs = curViewDS.slice(1, this.domItemCount);\n var listItems = ListBase.createListItemFromJson(\n // eslint-disable-next-line\n this.listViewInstance.createElement, otherDs, this.listViewInstance.listBaseOption, null, null, this.listViewInstance);\n append(listItems, this.listViewInstance.ulElement);\n this.listViewInstance.liCollection = this.listViewInstance.curUL.querySelectorAll('li');\n this.topElement = this.listViewInstance.createElement('div');\n this.listViewInstance.ulElement.insertBefore(this.topElement, this.listViewInstance.ulElement.firstElementChild);\n this.bottomElement = this.listViewInstance.createElement('div');\n this.listViewInstance.ulElement.insertBefore(this.bottomElement, null);\n this.totalHeight = (Object.keys(curViewDS).length * this.listItemHeight) - (this.domItemCount * this.listItemHeight);\n this.topElement.style.height = 0 + 'px';\n this.bottomElement.style.height = this.totalHeight + 'px';\n this.topElementHeight = 0;\n this.bottomElementHeight = this.totalHeight;\n this.listDiff = 0;\n this.uiIndicesInitialization();\n };\n Virtualization.prototype.wireScrollEvent = function (destroy) {\n if (!destroy) {\n if (this.listViewInstance.isWindow) {\n this.onVirtualScroll = this.onVirtualUiScroll.bind(this);\n window.addEventListener('scroll', this.onVirtualScroll);\n }\n else {\n EventHandler.add(this.listViewInstance.element, 'scroll', this.onVirtualUiScroll, this);\n }\n }\n else {\n if (this.listViewInstance.isWindow === true) {\n window.removeEventListener('scroll', this.onVirtualScroll);\n window.removeEventListener('scroll', this.updateUl);\n }\n else {\n EventHandler.remove(this.listViewInstance.element, 'scroll', this.onVirtualUiScroll);\n EventHandler.remove(this.listViewInstance.element, 'scroll', this.updateUlContainer);\n }\n }\n };\n Virtualization.prototype.updateUlContainer = function (e) {\n var listDiff;\n var virtualElementContainer = this.listViewInstance.ulElement.querySelector('.' + classNames.virtualElementContainer);\n if (isNullOrUndefined(this.listViewInstance.liElementHeight)) {\n this.listViewInstance.updateLiElementHeight();\n }\n if (this.listViewInstance.isWindow) {\n // eslint-disable-next-line\n listDiff = Math.round(e.target.documentElement.scrollTop / this.listViewInstance.liElementHeight) - 2;\n }\n else {\n // eslint-disable-next-line\n listDiff = Math.round(e.target.scrollTop / this.listViewInstance.liElementHeight) - 2;\n }\n if (((listDiff - 1) * this.listViewInstance.liElementHeight) < 0) {\n virtualElementContainer.style.top = '0px';\n }\n else {\n virtualElementContainer.style.top = (listDiff) * this.listViewInstance.liElementHeight + 'px';\n }\n };\n Virtualization.prototype.ValidateItemCount = function (dataSourceLength) {\n var height = parseFloat(formatUnit(this.listViewInstance.height));\n var itemCount;\n if (this.listViewInstance.isWindow) {\n itemCount = Math.round((window.innerHeight / this.listItemHeight) * windowElementCount);\n }\n else {\n if (typeof this.listViewInstance.height === 'string' && this.listViewInstance.height.indexOf('%') !== -1) {\n // eslint-disable-next-line max-len\n itemCount = Math.round((this.listViewInstance.element.getBoundingClientRect().height / this.listItemHeight) * listElementCount);\n }\n else {\n itemCount = Math.round((height / this.listItemHeight) * listElementCount);\n }\n }\n if (itemCount > dataSourceLength) {\n itemCount = dataSourceLength;\n }\n return itemCount;\n };\n Virtualization.prototype.uiIndicesInitialization = function () {\n this.uiIndices = { 'activeIndices': [], 'disabledItemIndices': [], 'hiddenItemIndices': [] };\n var data = this.listViewInstance.curViewDS;\n for (var i = 0; i < data.length; i++) {\n if (this.listViewInstance.showCheckBox && data[i][this.listViewInstance.fields.isChecked]) {\n this.uiIndices.activeIndices.push(i);\n }\n // eslint-disable-next-line\n if (!isNullOrUndefined(data[i][this.listViewInstance.fields.enabled]) &&\n !data[i][this.listViewInstance.fields.enabled]) {\n // eslint-disable-next-line\n (this.uiIndices.disabledItemIndices.push(i));\n }\n }\n if (this.isNgTemplate()) {\n var items = this.listViewInstance.element.querySelectorAll('.' + classNames.listItem);\n for (var index = 0; index < items.length; index++) {\n items[index].context = this.listViewInstance.viewContainerRef.get(index).context;\n }\n }\n };\n Virtualization.prototype.refreshItemHeight = function () {\n if (this.listViewInstance.curViewDS.length) {\n var curViewDS = this.listViewInstance.curViewDS;\n this.listItemHeight = this.topElement.nextSibling.getBoundingClientRect().height;\n this.totalHeight = (Object.keys(curViewDS).length * this.listItemHeight) - (this.domItemCount * this.listItemHeight);\n this.bottomElementHeight = this.totalHeight;\n this.bottomElement.style.height = this.totalHeight + 'px';\n }\n };\n Virtualization.prototype.getscrollerHeight = function (startingHeight) {\n return this.listViewInstance.isWindow ? (((pageYOffset - startingHeight) <= 0) ? 0 :\n (pageYOffset - startingHeight)) : ((this.listViewInstance.element.scrollTop - startingHeight) <= 0) ? 0 :\n (this.listViewInstance.element.scrollTop - startingHeight);\n };\n Virtualization.prototype.onVirtualUiScroll = function (e) {\n var _a;\n var startingHeight;\n if (this.listViewInstance.isWindow) {\n startingHeight = this.listViewInstance.ulElement.getBoundingClientRect().top -\n document.documentElement.getBoundingClientRect().top;\n }\n else {\n startingHeight = this.listViewInstance.headerEle ? this.listViewInstance.headerEle.getBoundingClientRect().height : 0;\n }\n this.scrollPosition = isNullOrUndefined(this.scrollPosition) ? 0 : this.scrollPosition;\n var scroll = this.getscrollerHeight(startingHeight);\n this.topElementHeight = this.listItemHeight * Math.floor(scroll / this.listItemHeight);\n this.bottomElementHeight = this.totalHeight - this.topElementHeight;\n _a = scroll <= this.totalHeight ?\n [this.topElementHeight, this.bottomElementHeight] : [this.totalHeight, 0], this.topElementHeight = _a[0], this.bottomElementHeight = _a[1];\n if (this.topElementHeight !== parseFloat(this.topElement.style.height)) {\n this.topElement.style.height = this.topElementHeight + 'px';\n this.bottomElement.style.height = this.bottomElementHeight + 'px';\n if (scroll > this.scrollPosition) {\n var listDiff = Math.round(((this.topElementHeight / this.listItemHeight) - this.listDiff));\n if (listDiff > (this.expectedDomItemCount + 5)) {\n this.onLongScroll(listDiff, true);\n }\n else {\n this.onNormalScroll(listDiff, true);\n }\n }\n else {\n var listDiff = Math.round((this.listDiff - (this.topElementHeight / this.listItemHeight)));\n if (listDiff > (this.expectedDomItemCount + 5)) {\n this.onLongScroll(listDiff, false);\n }\n else {\n this.onNormalScroll(listDiff, false);\n }\n }\n }\n this.listDiff = Math.round(this.topElementHeight / this.listItemHeight);\n if (typeof this.listViewInstance.onUIScrolled === 'function') {\n this.listViewInstance.onUIScrolled();\n }\n this.scrollPosition = scroll;\n };\n Virtualization.prototype.onLongScroll = function (listDiff, isScrollingDown) {\n var index = isScrollingDown ? (this.uiFirstIndex + listDiff) : (this.uiFirstIndex - listDiff);\n var elements = this.listViewInstance.ulElement.querySelectorAll('li');\n for (var i = 0; i < elements.length; i++) {\n this.updateUI(elements[i], index);\n index++;\n }\n this.uiLastIndex = isScrollingDown ? (this.uiLastIndex + listDiff) : (this.uiLastIndex - listDiff);\n this.uiFirstIndex = isScrollingDown ? (this.uiFirstIndex + listDiff) : (this.uiFirstIndex - listDiff);\n };\n Virtualization.prototype.onNormalScroll = function (listDiff, isScrollingDown) {\n if (isScrollingDown) {\n for (var i = 0; i < listDiff; i++) {\n var index = ++this.uiLastIndex;\n this.updateUI(this.topElement.nextElementSibling, index, this.bottomElement);\n this.uiFirstIndex++;\n }\n }\n else {\n for (var i = 0; i < listDiff; i++) {\n var index = --this.uiFirstIndex;\n var target = this.topElement.nextSibling;\n this.updateUI(this.bottomElement.previousElementSibling, index, target);\n this.uiLastIndex--;\n }\n }\n };\n Virtualization.prototype.updateUiContent = function (element, index) {\n // eslint-disable-next-line\n var curViewDs = this.listViewInstance.curViewDS;\n if (typeof this.listViewInstance.dataSource[0] === 'string' ||\n typeof this.listViewInstance.dataSource[0] === 'number') {\n element.dataset.uid = ListBase.generateId();\n element.getElementsByClassName(classNames.listItemText)[0].innerHTML =\n this.listViewInstance.curViewDS[index].toString();\n }\n else {\n // eslint-disable-next-line\n element.dataset.uid = (curViewDs[index][this.listViewInstance.fields.id]) ?\n // eslint-disable-next-line\n (curViewDs[index][this.listViewInstance.fields.id]) : ListBase.generateId();\n element.getElementsByClassName(classNames.listItemText)[0].innerHTML =\n // eslint-disable-next-line\n (curViewDs[index][this.listViewInstance.fields.text]);\n }\n if (this.listViewInstance.showIcon) {\n if (element.querySelector('.' + classNames.listIcon)) {\n detach(element.querySelector('.' + classNames.listIcon));\n }\n if (this.listViewInstance.curViewDS[index][this.listViewInstance.fields.iconCss]) {\n var textContent = element.querySelector('.' + classNames.textContent);\n var target = this.listViewInstance.createElement('div', {\n className: classNames.listIcon + ' ' +\n this.listViewInstance.curViewDS[index][this.listViewInstance.fields.iconCss]\n });\n textContent.insertBefore(target, element.querySelector('.' + classNames.listItemText));\n }\n }\n if (this.listViewInstance.showCheckBox && this.listViewInstance.fields.groupBy) {\n if (!this.checkListWrapper) {\n this.checkListWrapper = this.listViewInstance.curUL.querySelector('.' + classNames.checkboxWrapper).cloneNode(true);\n }\n var textContent = element.querySelector('.' + classNames.textContent);\n if (this.listViewInstance.curViewDS[index].isHeader) {\n if (element.querySelector('.' + classNames.checkboxWrapper)) {\n element.classList.remove(classNames.checklist);\n textContent.classList.remove(classNames.checkbox);\n detach(element.querySelector('.' + classNames.checkboxWrapper));\n }\n }\n else {\n if (!element.querySelector('.' + classNames.checkboxWrapper)) {\n element.classList.add(classNames.checklist);\n textContent.classList.add(classNames.checkbox);\n textContent.insertBefore(this.checkListWrapper.cloneNode(true), element.querySelector('.' + classNames.listItemText));\n }\n }\n }\n };\n Virtualization.prototype.changeElementAttributes = function (element, index) {\n element.classList.remove(classNames.disable);\n if (this.uiIndices.disabledItemIndices.length && this.uiIndices.disabledItemIndices.indexOf(index) !== -1) {\n element.classList.add(classNames.disable);\n }\n element.style.display = '';\n if (this.uiIndices.hiddenItemIndices.length && this.uiIndices.hiddenItemIndices.indexOf(index) !== -1) {\n element.style.display = 'none';\n }\n if (this.listViewInstance.showCheckBox) {\n var checklistElement = element.querySelector('.' + classNames.checkboxWrapper);\n element.classList.remove(classNames.selected);\n element.classList.remove(classNames.focused);\n if (checklistElement) {\n checklistElement.removeAttribute('aria-checked');\n checklistElement.firstElementChild.classList.remove(classNames.checked);\n }\n if (this.uiIndices.activeIndices.length && this.uiIndices.activeIndices.indexOf(index) !== -1 &&\n !this.listViewInstance.curUL.querySelector(classNames.selected)) {\n element.classList.add(classNames.selected);\n checklistElement.firstElementChild.classList.add(classNames.checked);\n checklistElement.setAttribute('aria-checked', 'true');\n if (this.activeIndex === index) {\n element.classList.add(classNames.focused);\n }\n }\n }\n else {\n element.classList.remove(classNames.selected);\n element.removeAttribute('aria-selected');\n if (!isNullOrUndefined(this.activeIndex) && this.activeIndex === index &&\n !this.listViewInstance.curUL.querySelector(classNames.selected)) {\n element.classList.add(classNames.selected);\n element.setAttribute('aria-selected', 'true');\n }\n }\n if (this.listViewInstance.fields.groupBy) {\n if (this.listViewInstance.curViewDS[index].isHeader) {\n if (element.classList.contains(classNames.listItem)) {\n element.classList.remove(classNames.listItem);\n element.setAttribute('role', 'group');\n element.classList.add(classNames.groupListItem);\n }\n }\n else {\n if (element.classList.contains(classNames.groupListItem)) {\n element.classList.remove(classNames.groupListItem);\n element.setAttribute('role', 'listitem');\n element.classList.add(classNames.listItem);\n }\n }\n }\n };\n Virtualization.prototype.findDSAndIndexFromId = function (ds, fields) {\n var _this = this;\n var resultJSON = {};\n fields = this.listViewInstance.getElementUID(fields);\n if (!isNullOrUndefined(fields)) {\n ds.some(function (data, index) {\n if ((fields[_this.listViewInstance.fields.id] &&\n // eslint-disable-next-line\n fields[_this.listViewInstance.fields.id]\n // eslint-disable-next-line\n === (data[_this.listViewInstance.fields.id] && data[_this.listViewInstance.fields.id]) || fields === data)) {\n resultJSON.index = index;\n resultJSON.data = data;\n return true;\n }\n else {\n return false;\n }\n });\n }\n return resultJSON;\n };\n Virtualization.prototype.getSelectedItems = function () {\n var _this = this;\n if (!isNullOrUndefined(this.activeIndex) || (this.listViewInstance.showCheckBox && this.uiIndices.activeIndices.length)) {\n var dataCollection = [];\n var textCollection = [];\n if (typeof this.listViewInstance.dataSource[0] === 'string' ||\n typeof this.listViewInstance.dataSource[0] === 'number') {\n var curViewDS_1 = this.listViewInstance.curViewDS;\n if (this.listViewInstance.showCheckBox) {\n var indices = this.uiIndices.activeIndices;\n for (var i = 0; i < indices.length; i++) {\n dataCollection.push(curViewDS_1[indices[i]]);\n }\n return {\n text: dataCollection,\n // eslint-disable-next-line\n data: dataCollection,\n index: this.uiIndices.activeIndices.map(function (index) {\n return _this.listViewInstance.dataSource.indexOf(curViewDS_1[index]);\n })\n };\n }\n else {\n return {\n text: curViewDS_1[this.activeIndex],\n data: curViewDS_1[this.activeIndex],\n index: this.listViewInstance.dataSource.indexOf(curViewDS_1[this.activeIndex])\n };\n }\n }\n else {\n var curViewDS_2 = this.listViewInstance.curViewDS;\n var text = this.listViewInstance.fields.text;\n if (this.listViewInstance.showCheckBox) {\n var indexArray = this.uiIndices.activeIndices;\n for (var i = 0; i < indexArray.length; i++) {\n textCollection.push(curViewDS_2[indexArray[i]][\"\" + text]);\n // eslint-disable-next-line\n dataCollection.push(curViewDS_2[indexArray[i]]);\n }\n // eslint-disable-next-line\n var dataSource_1 = this.listViewInstance.dataSource instanceof DataManager\n ? curViewDS_2 : this.listViewInstance.dataSource;\n return {\n text: textCollection,\n // eslint-disable-next-line\n data: dataCollection,\n index: this.uiIndices.activeIndices.map(function (index) {\n return dataSource_1.indexOf(curViewDS_2[index]);\n })\n };\n }\n else {\n // eslint-disable-next-line\n var dataSource = this.listViewInstance.dataSource instanceof DataManager\n ? curViewDS_2 : this.listViewInstance.dataSource;\n return {\n text: curViewDS_2[this.activeIndex][this.listViewInstance.fields.text],\n // eslint-disable-next-line\n data: curViewDS_2[this.activeIndex],\n index: dataSource.indexOf(curViewDS_2[this.activeIndex])\n };\n }\n }\n }\n else {\n return undefined;\n }\n };\n Virtualization.prototype.selectItem = function (obj) {\n // eslint-disable-next-line\n var resutJSON = this.findDSAndIndexFromId(this.listViewInstance.curViewDS, obj);\n if (Object.keys(resutJSON).length) {\n var isSelected = this.activeIndex === resutJSON.index;\n var isChecked = void 0;\n this.activeIndex = resutJSON.index;\n if (this.listViewInstance.showCheckBox) {\n if (this.uiIndices.activeIndices.indexOf(resutJSON.index) === -1) {\n isChecked = true;\n this.uiIndices.activeIndices.push(resutJSON.index);\n }\n else {\n isChecked = false;\n this.uiIndices.activeIndices.splice(this.uiIndices.activeIndices.indexOf(resutJSON.index), 1);\n }\n if (this.listViewInstance.curUL.querySelector('.' + classNames.focused)) {\n this.listViewInstance.curUL.querySelector('.' + classNames.focused).classList.remove(classNames.focused);\n }\n }\n if (this.listViewInstance.getLiFromObjOrElement(obj)) {\n if (this.listViewInstance.showCheckBox) {\n this.listViewInstance.setCheckboxLI(this.listViewInstance.getLiFromObjOrElement(obj));\n }\n else {\n this.listViewInstance.setSelectLI(this.listViewInstance.getLiFromObjOrElement(obj));\n }\n }\n else {\n // eslint-disable-next-line\n var eventArgs = void 0;\n if (typeof this.listViewInstance.dataSource[0] === 'string' ||\n typeof this.listViewInstance.dataSource[0] === 'number') {\n eventArgs = {\n text: this.listViewInstance.curViewDS[this.activeIndex],\n data: this.listViewInstance.curViewDS[this.activeIndex],\n index: this.activeIndex\n };\n }\n else {\n var curViewDS = this.listViewInstance.curViewDS;\n eventArgs = {\n text: curViewDS[this.activeIndex][this.listViewInstance.fields.text],\n data: curViewDS[this.activeIndex],\n index: this.activeIndex\n };\n }\n if (this.listViewInstance.showCheckBox) {\n eventArgs.isChecked = isChecked;\n this.listViewInstance.trigger('select', eventArgs);\n }\n else if (!isSelected) {\n this.listViewInstance.removeSelect();\n this.listViewInstance.trigger('select', eventArgs);\n }\n }\n }\n else if (isNullOrUndefined(obj) && !this.listViewInstance.showCheckBox) {\n this.listViewInstance.removeSelect();\n this.activeIndex = undefined;\n }\n };\n Virtualization.prototype.enableItem = function (obj) {\n // eslint-disable-next-line\n var resutJSON = this.findDSAndIndexFromId(this.listViewInstance.curViewDS, obj);\n if (Object.keys(resutJSON).length) {\n this.uiIndices.disabledItemIndices.splice(this.uiIndices.disabledItemIndices.indexOf(resutJSON.index), 1);\n }\n };\n Virtualization.prototype.disableItem = function (obj) {\n // eslint-disable-next-line\n var resutJSON = this.findDSAndIndexFromId(this.listViewInstance.curViewDS, obj);\n if (Object.keys(resutJSON).length && this.uiIndices.disabledItemIndices.indexOf(resutJSON.index) === -1) {\n this.uiIndices.disabledItemIndices.push(resutJSON.index);\n }\n };\n Virtualization.prototype.showItem = function (obj) {\n // eslint-disable-next-line\n var resutJSON = this.findDSAndIndexFromId(this.listViewInstance.curViewDS, obj);\n if (Object.keys(resutJSON).length) {\n this.uiIndices.hiddenItemIndices.splice(this.uiIndices.hiddenItemIndices.indexOf(resutJSON.index), 1);\n }\n };\n Virtualization.prototype.hideItem = function (obj) {\n // eslint-disable-next-line\n var resutJSON = this.findDSAndIndexFromId(this.listViewInstance.curViewDS, obj);\n if (Object.keys(resutJSON).length && this.uiIndices.hiddenItemIndices.indexOf(resutJSON.index) === -1) {\n this.uiIndices.hiddenItemIndices.push(resutJSON.index);\n }\n };\n Virtualization.prototype.removeItem = function (obj) {\n var dataSource;\n var curViewDS = this.listViewInstance.curViewDS;\n // eslint-disable-next-line\n var resutJSON = this.findDSAndIndexFromId(curViewDS, obj);\n // eslint-disable-next-line\n if (Object.keys(resutJSON).length) {\n dataSource = resutJSON.data;\n if (curViewDS[resutJSON.index - 1] &&\n curViewDS[resutJSON.index - 1].isHeader &&\n (curViewDS[resutJSON.index - 1])\n .items.length === 1) {\n this.removeUiItem(resutJSON.index - 1);\n this.removeUiItem(resutJSON.index - 1);\n }\n else {\n this.removeUiItem(resutJSON.index);\n }\n }\n var listDataSource = this.listViewInstance.dataSource instanceof DataManager\n ? this.listViewInstance.localData : this.listViewInstance.dataSource;\n var index = listDataSource.indexOf(dataSource);\n if (index !== -1) {\n listDataSource.splice(index, 1);\n this.listViewInstance.setViewDataSource(listDataSource);\n }\n // recollect all the list item into collection\n this.listViewInstance.liCollection =\n this.listViewInstance.curUL.querySelectorAll('li');\n };\n // eslint-disable-next-line\n Virtualization.prototype.setCheckboxLI = function (li, e) {\n var index = Array.prototype.indexOf.call(this.listViewInstance.curUL.querySelectorAll('li'), li) + this.uiFirstIndex;\n this.activeIndex = Array.prototype.indexOf.call(this.listViewInstance.curUL.querySelectorAll('li'), li) + this.uiFirstIndex;\n if (li.classList.contains(classNames.selected)) {\n if (this.uiIndices.activeIndices.indexOf(index) === -1) {\n this.uiIndices.activeIndices.push(index);\n }\n }\n else {\n this.uiIndices.activeIndices.splice(this.uiIndices.activeIndices.indexOf(index), 1);\n }\n };\n // eslint-disable-next-line\n Virtualization.prototype.setSelectLI = function (li, e) {\n this.activeIndex = Array.prototype.indexOf.call(this.listViewInstance.curUL.querySelectorAll('li'), li) + this.uiFirstIndex;\n };\n Virtualization.prototype.checkedItem = function (checked) {\n if (checked) {\n this.uiIndices.activeIndices = [];\n this.activeIndex = undefined;\n var data = this.listViewInstance.curViewDS;\n for (var index = 0; index < data.length; index++) {\n if (!data[index].isHeader) {\n this.uiIndices.activeIndices.push(index);\n }\n }\n }\n else {\n this.activeIndex = undefined;\n this.uiIndices.activeIndices = [];\n }\n };\n Virtualization.prototype.addUiItem = function (index) {\n // virtually new add list item based on the scollbar position\n // if the scroll bar is at the top, just pretend the new item has been added since no UI\n // change is required for the item that has been added at last but when scroll bar is at the bottom\n // just detach top and inject into bottom to mimic new item is added\n var curViewDs = this.listViewInstance.curViewDS;\n this.changeUiIndices(index, true);\n if (this.activeIndex && this.activeIndex >= index) {\n this.activeIndex++;\n }\n if (this.listViewInstance.showCheckBox &&\n curViewDs[index][this.listViewInstance.fields.isChecked]) {\n this.uiIndices.activeIndices.push(index);\n }\n if (!parseFloat(this.bottomElement.style.height) && !parseFloat(this.topElement.style.height)) {\n this.bottomElement.style.height = parseFloat(this.bottomElement.style.height) + this.listItemHeight + 'px';\n }\n if (parseFloat(this.bottomElement.style.height)) {\n var liItem = this.listViewInstance.curUL.lastElementChild.previousSibling;\n var target = this.listViewInstance.getLiFromObjOrElement(curViewDs[index + 1]) ||\n this.listViewInstance.getLiFromObjOrElement(curViewDs[index + 2]);\n if (target) {\n this.bottomElement.style.height = parseFloat(this.bottomElement.style.height) + this.listItemHeight + 'px';\n this.updateUI(liItem, index, target);\n }\n }\n else {\n var liItem = this.listViewInstance.curUL.firstElementChild.nextSibling;\n var target = void 0;\n if ((Object.keys(this.listViewInstance.curViewDS).length - 1) === index) {\n target = this.listViewInstance.curUL.lastElementChild;\n }\n else {\n target = this.listViewInstance.getLiFromObjOrElement(curViewDs[index + 1]) ||\n this.listViewInstance.getLiFromObjOrElement(curViewDs[index + 2]);\n }\n this.topElement.style.height = parseFloat(this.topElement.style.height) + this.listItemHeight + 'px';\n this.uiFirstIndex++;\n this.uiLastIndex++;\n if (target) {\n this.updateUI(liItem, index, target);\n if (this.listViewInstance.isWindow === true) {\n window.scrollTo(0, (pageYOffset + this.listItemHeight));\n }\n else {\n this.listViewInstance.element.scrollTop += this.listItemHeight;\n }\n }\n }\n this.totalHeight += this.listItemHeight;\n this.listDiff = Math.round(parseFloat(this.topElement.style.height) / this.listItemHeight);\n };\n Virtualization.prototype.removeUiItem = function (index) {\n this.totalHeight -= this.listItemHeight;\n var curViewDS = this.listViewInstance.curViewDS[index];\n var liItem = this.listViewInstance.getLiFromObjOrElement(curViewDS);\n this.listViewInstance.curViewDS.splice(index, 1);\n if (this.activeIndex && this.activeIndex >= index) {\n this.activeIndex--;\n }\n if (liItem) {\n if (this.domItemCount > Object.keys(this.listViewInstance.curViewDS).length) {\n detach(liItem);\n this.domItemCount--;\n this.uiLastIndex--;\n this.totalHeight = 0;\n }\n else {\n if (liItem.classList.contains(classNames.disable)) {\n liItem.classList.remove(classNames.disable);\n this.uiIndices.disabledItemIndices.splice(this.uiIndices.disabledItemIndices.indexOf(index), 1);\n }\n if (liItem.style.display === 'none') {\n liItem.style.display = '';\n this.uiIndices.hiddenItemIndices.splice(this.uiIndices.hiddenItemIndices.indexOf(index), 1);\n }\n if (this.listViewInstance.showCheckBox && liItem.classList.contains(classNames.selected)) {\n this.listViewInstance.removeSelect();\n this.uiIndices.activeIndices.splice(this.uiIndices.activeIndices.indexOf(index), 1);\n var checklistElement = liItem.querySelector('.' + classNames.checkboxWrapper);\n checklistElement.removeAttribute('aria-checked');\n checklistElement.firstElementChild.classList.remove(classNames.checked);\n if (liItem.classList.contains(classNames.focused)) {\n liItem.classList.remove(classNames.focused);\n this.activeIndex = undefined;\n }\n }\n else if (liItem.classList.contains(classNames.selected)) {\n this.listViewInstance.removeSelect();\n this.activeIndex = undefined;\n }\n if (!parseFloat(this.bottomElement.style.height) && !parseFloat(this.topElement.style.height)) {\n this.updateUI(liItem, this.uiLastIndex, this.bottomElement);\n }\n else if (parseFloat(this.bottomElement.style.height)) {\n this.bottomElement.style.height = parseFloat(this.bottomElement.style.height) - this.listItemHeight + 'px';\n this.updateUI(liItem, this.uiLastIndex, this.bottomElement);\n }\n else {\n this.topElement.style.height = parseFloat(this.topElement.style.height) - this.listItemHeight + 'px';\n this.updateUI(liItem, (this.uiFirstIndex - 1), this.topElement.nextSibling);\n this.uiLastIndex--;\n this.uiFirstIndex--;\n }\n }\n }\n this.changeUiIndices(index, false);\n this.listDiff = Math.round(parseFloat(this.topElement.style.height) / this.listItemHeight);\n };\n Virtualization.prototype.changeUiIndices = function (index, increment) {\n var keys = Object.keys(this.uiIndices);\n for (var ind = 0; ind < keys.length; ind++) {\n this.uiIndices[keys[ind]] = this.uiIndices[keys[ind]].map(function (i) {\n if (i >= index) {\n return increment ? ++i : --i;\n }\n else {\n return i;\n }\n });\n }\n };\n Virtualization.prototype.addItem = function (data, fields, dataSource) {\n for (var i = 0; i < data.length; i++) {\n var currentItem = data[i];\n // push the given data to main data array\n dataSource.push(currentItem);\n // recalculate all the group data or other datasource related things\n this.listViewInstance.setViewDataSource(dataSource);\n // render list items for first time due to no datasource present earlier\n if (!this.domItemCount) {\n // fresh rendering for first time\n if ((this.listViewInstance.template || this.listViewInstance.groupTemplate) && !this.isNgTemplate()) {\n this.listViewInstance.listBaseOption.template = null;\n this.listViewInstance.listBaseOption.groupTemplate = null;\n this.listViewInstance.listBaseOption.itemCreated = this.createUIItem.bind(this);\n }\n this.uiVirtualization();\n // when expected expected DOM count doesn't meet the condition we need to create and inject new item into DOM\n }\n else if (this.domItemCount < this.expectedDomItemCount) {\n var ds = this.listViewInstance.findItemFromDS(dataSource, fields);\n if (ds instanceof Array) {\n if (this.listViewInstance.ulElement) {\n var index = this.listViewInstance.curViewDS.indexOf(currentItem);\n // inject new list item into DOM\n this.createAndInjectNewItem(currentItem, index);\n // check for group header item\n var curViewDS = this.listViewInstance.curViewDS[index - 1];\n if (curViewDS && curViewDS.isHeader && curViewDS.items.length === 1) {\n // target group item index in datasource\n --index;\n // inject new group header into DOM for previously created list item\n this.createAndInjectNewItem(curViewDS, index);\n }\n }\n // recollect all the list item into collection\n this.listViewInstance.liCollection =\n this.listViewInstance.curUL.querySelectorAll('li');\n }\n }\n else {\n // eslint-disable-next-line\n var index = this.listViewInstance.curViewDS.indexOf(currentItem);\n // virtually new add list item based on the scollbar position\n this.addUiItem(index);\n // check for group header item needs to be added\n var curViewDS = this.listViewInstance.curViewDS[index - 1];\n if (curViewDS && curViewDS.isHeader && curViewDS.items.length === 1) {\n this.addUiItem(index - 1);\n }\n }\n }\n };\n Virtualization.prototype.createAndInjectNewItem = function (itemData, index) {\n // generate li item for given datasource\n var target;\n var li = ListBase.createListItemFromJson(this.listViewInstance.createElement, \n // eslint-disable-next-line\n [itemData], this.listViewInstance.listBaseOption, null, null, this.listViewInstance);\n // check for target element whether to insert before last item or group item\n if ((Object.keys(this.listViewInstance.curViewDS).length - 1) === index) {\n target = this.listViewInstance.curUL.lastElementChild;\n }\n else {\n // target group header's first child item to append its header\n target = this.listViewInstance.getLiFromObjOrElement(this.listViewInstance.curViewDS[index + 1]) ||\n this.listViewInstance.getLiFromObjOrElement(this.listViewInstance.curViewDS[index + 2]);\n }\n if (this.listViewInstance.fields.groupBy && this.listViewInstance.curViewDS[index + 1] && this.listViewInstance.curViewDS[index + 1].isHeader) {\n var targetEle = this.listViewInstance.getLiFromObjOrElement(this.listViewInstance.curViewDS[index - 1]);\n if (targetEle) {\n target = targetEle.nextElementSibling;\n }\n }\n // insert before the target element\n this.listViewInstance.ulElement.insertBefore(li[0], target);\n // increment internal DOM count, last index count for new element\n this.domItemCount++;\n if (this.bottomElementHeight <= 0) {\n this.uiLastIndex++;\n }\n // recalculate the current item height, to avoid jumpy scroller\n this.refreshItemHeight();\n };\n Virtualization.prototype.createUIItem = function (args) {\n var virtualTemplate = this.listViewInstance.template;\n var template = this.listViewInstance.createElement('div');\n var commonTemplate = '
    ' +\n ' ${' + this.listViewInstance.fields.text + '}
    ';\n if (this.listViewInstance.isReact) {\n commonTemplate = null;\n }\n if (this.listViewInstance.showCheckBox) {\n // eslint-disable-next-line\n this.listViewInstance.renderCheckbox(args);\n if ((!isNullOrUndefined(this.listViewInstance.virtualCheckBox)) &&\n (!isNullOrUndefined(this.listViewInstance.virtualCheckBox.outerHTML))) {\n var div = document.createElement('div');\n div.innerHTML = this.listViewInstance.template || commonTemplate;\n if (div.children && div.children[0]) {\n div.children[0].classList.add('e-checkbox');\n if (this.listViewInstance.checkBoxPosition === 'Left') {\n div.children[0].classList.add('e-checkbox-left');\n }\n else {\n div.children[0].classList.add('e-checkbox-right');\n }\n if (this.listViewInstance.checkBoxPosition === 'Left') {\n div.children[0].insertBefore(this.listViewInstance.virtualCheckBox, div.childNodes[0].children[0]);\n }\n else {\n div.children[0].appendChild(this.listViewInstance.virtualCheckBox);\n }\n this.listViewInstance.template = div.innerHTML;\n }\n }\n if (this.isVueFunctionTemplate())\n return;\n template.innerHTML = this.listViewInstance.template;\n this.listViewInstance.template = virtualTemplate;\n }\n else {\n if (this.isVueFunctionTemplate())\n return;\n template.innerHTML = this.listViewInstance.template || commonTemplate;\n }\n // eslint-disable-next-line\n var templateElements = template.getElementsByTagName('*');\n var groupTemplate = this.listViewInstance.createElement('div');\n if (this.listViewInstance.fields.groupBy) {\n groupTemplate.innerHTML = this.listViewInstance.groupTemplate || commonTemplate;\n }\n // eslint-disable-next-line\n var groupTemplateElements = groupTemplate.getElementsByTagName('*');\n if (args.curData.isHeader) {\n this.headerData = args.curData;\n }\n this.templateData = args.curData.isHeader ? args.curData.items[0] :\n args.curData;\n if (!this.listViewInstance.isReact || (typeof this.listViewInstance.template == \"string\" && !args.item.classList.contains(\"e-list-group-item\")) ||\n (typeof this.listViewInstance.groupTemplate == \"string\" && args.item.classList.contains(\"e-list-group-item\"))) {\n args.item.innerHTML = '';\n }\n args.item.context = { data: args.curData, nodes: { flatTemplateNodes: [], groupTemplateNodes: [] } };\n for (var i = 0; i < templateElements.length; i++) {\n this.compileTemplate(templateElements[i], args.item, false);\n }\n for (var i = 0; i < groupTemplateElements.length; i++) {\n this.compileTemplate(groupTemplateElements[i], args.item, true);\n }\n args.item.context.template = args.curData.isHeader ? template.firstElementChild :\n groupTemplate.firstElementChild;\n args.item.context.type = args.curData.isHeader ? 'flatList' : 'groupList';\n var element = args.curData.isHeader ? groupTemplate : template;\n if (element.firstElementChild) {\n args.item.insertBefore(element.firstElementChild, null);\n }\n };\n Virtualization.prototype.compileTemplate = function (element, item, isHeader) {\n this.textProperty(element, item, isHeader);\n this.classProperty(element, item, isHeader);\n this.attributeProperty(element, item, isHeader);\n };\n Virtualization.prototype.onChange = function (newData, listElement) {\n listElement.context.data = newData;\n // eslint-disable-next-line max-len\n var groupTemplateNodes = listElement.context.nodes.groupTemplateNodes;\n // eslint-disable-next-line max-len\n var flatTemplateNodes = listElement.context.nodes.flatTemplateNodes;\n // eslint-disable-next-line\n if (!isNullOrUndefined(newData.isHeader) && newData.isHeader && listElement.context.type === 'groupList') {\n // eslint-disable-next-line\n var element = listElement.firstElementChild;\n detach(listElement.firstElementChild);\n listElement.insertBefore(listElement.context.template, null);\n listElement.context.template = element;\n listElement.context.type = 'flatList';\n for (var i = 0; i < groupTemplateNodes.length; i++) {\n // eslint-disable-next-line\n groupTemplateNodes[i].onChange(newData);\n }\n }\n else if (!newData.isHeader && listElement.context.type === 'flatList') {\n var element = listElement.firstElementChild;\n detach(listElement.firstElementChild);\n listElement.insertBefore(listElement.context.template, null);\n listElement.context.template = element;\n listElement.context.type = 'groupList';\n for (var i = 0; i < flatTemplateNodes.length; i++) {\n // eslint-disable-next-line\n flatTemplateNodes[i].onChange(newData);\n }\n }\n else if (!newData.isHeader) {\n for (var i = 0; i < flatTemplateNodes.length; i++) {\n // eslint-disable-next-line\n flatTemplateNodes[i].onChange(newData);\n }\n }\n else {\n for (var i = 0; i < groupTemplateNodes.length; i++) {\n // eslint-disable-next-line\n groupTemplateNodes[i].onChange(newData);\n }\n }\n };\n // eslint-disable-next-line\n Virtualization.prototype.updateContextData = function (listElement, node, isHeader) {\n if (isHeader) {\n listElement.context.nodes.groupTemplateNodes.push(node);\n }\n else {\n listElement.context.nodes.flatTemplateNodes.push(node);\n }\n };\n Virtualization.prototype.classProperty = function (element, listElement, isHeader) {\n var regex = new RegExp('\\\\${([^}]*)}', 'g');\n var resultantOutput = [];\n var regexMatch;\n while (regexMatch !== null) {\n var match = regex.exec(element.className);\n resultantOutput.push(match);\n regexMatch = match;\n if (regexMatch === null) {\n resultantOutput.pop();\n }\n }\n if (resultantOutput && resultantOutput.length) {\n var _loop_1 = function (i) {\n var classNameMatch = resultantOutput[i];\n // eslint-disable-next-line\n var classFunction;\n if (classNameMatch[1].indexOf('?') !== -1 && classNameMatch[1].indexOf(':') !== -1) {\n // tslint:disable-next-line:no-function-constructor-with-string-args\n classFunction = new Function('data', 'return ' + classNameMatch[1].replace(/\\$/g, 'data.'));\n }\n else {\n // tslint:disable-next-line:no-function-constructor-with-string-args\n classFunction = new Function('data', 'return ' + 'data.' + classNameMatch[1]);\n }\n // eslint-disable-next-line\n var subNode = {};\n if (isHeader) {\n subNode.bindedvalue = classFunction(this_1.headerData);\n }\n else {\n subNode.bindedvalue = classFunction(this_1.templateData);\n }\n subNode.onChange = function (value) {\n if (subNode.bindedvalue) {\n removeClass([element], subNode.bindedvalue.split(' ').filter(function (css) { return css; }));\n }\n var newCss = classFunction(value);\n if (newCss) {\n addClass([element], (newCss).split(' ').filter(function (css) { return css; }));\n }\n subNode.bindedvalue = newCss;\n };\n var className = classNameMatch[0].split(' ');\n for (var i_1 = 0; i_1 < className.length; i_1++) {\n element.classList.remove(className[i_1]);\n }\n if (subNode.bindedvalue) {\n addClass([element], subNode.bindedvalue.split(' ').filter(function (css) { return css; }));\n }\n this_1.updateContextData(listElement, subNode, isHeader);\n };\n var this_1 = this;\n for (var i = 0; i < resultantOutput.length; i++) {\n _loop_1(i);\n }\n }\n };\n Virtualization.prototype.attributeProperty = function (element, listElement, isHeader) {\n var attributeNames = [];\n for (var i = 0; i < element.attributes.length; i++) {\n attributeNames.push(element.attributes[i].nodeName);\n }\n if (attributeNames.indexOf('class') !== -1) {\n attributeNames.splice(attributeNames.indexOf('class'), 1);\n }\n var _loop_2 = function (i) {\n var attributeName = attributeNames[i];\n var attrNameMatch = new RegExp('\\\\${([^}]*)}', 'g').exec(attributeName) || [];\n var attrValueMatch = new RegExp('\\\\${([^}]*)}', 'g').exec(element.getAttribute(attributeName))\n || [];\n // eslint-disable-next-line\n var attributeNameFunction;\n // eslint-disable-next-line\n var attributeValueFunction;\n if (attrNameMatch.length || attrValueMatch.length) {\n if (attrNameMatch[1]) {\n // tslint:disable-next-line:no-function-constructor-with-string-args\n attributeNameFunction = new Function('data', 'return ' + 'data.' + attrNameMatch[1]);\n }\n if (attrValueMatch[1]) {\n if (attrValueMatch[1].indexOf('?') !== -1 && attrValueMatch[1].indexOf(':') !== -1) {\n // tslint:disable-next-line:no-function-constructor-with-string-args\n attributeValueFunction = new Function('data', 'return ' + attrValueMatch[1].replace(/\\$/g, 'data.'));\n }\n else {\n // tslint:disable-next-line:no-function-constructor-with-string-args\n attributeValueFunction = new Function('data', 'return ' + 'data.' + attrValueMatch[1]);\n }\n }\n // eslint-disable-next-line @typescript-eslint/ban-types\n var subNode_1 = {};\n if (isHeader) {\n subNode_1.bindedvalue = [attrNameMatch[1] === undefined ? undefined : attributeNameFunction(this_2.headerData),\n attrValueMatch[1] === undefined ? undefined : attributeValueFunction(this_2.headerData)];\n }\n else {\n subNode_1.bindedvalue = [attrNameMatch[1] === undefined ? undefined : attributeNameFunction(this_2.templateData),\n attrValueMatch[1] === undefined ? undefined : attributeValueFunction(this_2.templateData)];\n }\n subNode_1.attrName = subNode_1.bindedvalue[0] === undefined ?\n attributeName : subNode_1.bindedvalue[0];\n subNode_1.onChange = function (value) {\n var bindedvalue = subNode_1.bindedvalue[1] === undefined ?\n element.getAttribute(subNode_1.attrName) : attributeValueFunction(value);\n element.removeAttribute(subNode_1.attrName);\n subNode_1.attrName = subNode_1.bindedvalue[0] === undefined ? subNode_1.attrName : attributeNameFunction(value);\n element.setAttribute(subNode_1.attrName, bindedvalue);\n subNode_1.bindedvalue = [subNode_1.bindedvalue[0] === undefined ? undefined : attributeNameFunction(value),\n subNode_1.bindedvalue[1] === undefined ? undefined : attributeValueFunction(value)];\n };\n var attributeValue = subNode_1.bindedvalue[1] === undefined ? element.getAttribute(attributeName) :\n subNode_1.bindedvalue[1];\n element.removeAttribute(attributeName);\n element.setAttribute(subNode_1.attrName, attributeValue);\n this_2.updateContextData(listElement, subNode_1, isHeader);\n }\n };\n var this_2 = this;\n for (var i = 0; i < attributeNames.length; i++) {\n _loop_2(i);\n }\n };\n Virtualization.prototype.textProperty = function (element, listElement, isHeader) {\n var regex = new RegExp('\\\\${([^}]*)}', 'g');\n var resultantOutput = [];\n var regexMatch;\n while (regexMatch !== null) {\n var match = regex.exec(element.innerText);\n resultantOutput.push(match);\n regexMatch = match;\n if (regexMatch === null) {\n resultantOutput.pop();\n }\n }\n var isChildHasTextContent = Array.prototype.some.call(element.children, function (element) {\n if (new RegExp('\\\\${([^}]*)}', 'g').exec(element.innerText)) {\n return true;\n }\n else {\n return false;\n }\n });\n if (resultantOutput && resultantOutput.length && !isChildHasTextContent) {\n var _loop_3 = function (i) {\n var textPropertyMatch = resultantOutput[i];\n // eslint-disable-next-line\n var subNode = {};\n // eslint-disable-next-line\n var textFunction;\n if (textPropertyMatch[1].indexOf('?') !== -1 && textPropertyMatch[1].indexOf(':') !== -1) {\n // tslint:disable-next-line:no-function-constructor-with-string-args\n textFunction = new Function('data', 'return ' + textPropertyMatch[1].replace(/\\$/g, 'data.'));\n }\n else {\n // tslint:disable-next-line:no-function-constructor-with-string-args\n textFunction = new Function('data', 'return ' + 'data.' + textPropertyMatch[1]);\n }\n if (isHeader) {\n subNode.bindedvalue = textFunction(this_3.headerData);\n }\n else {\n subNode.bindedvalue = textFunction(this_3.templateData);\n }\n subNode.onChange = function (value) {\n element.innerText = element.innerText.replace(subNode.bindedvalue, textFunction(value));\n subNode.bindedvalue = textFunction(value);\n };\n element.innerText = element.innerText.replace(textPropertyMatch[0], subNode.bindedvalue);\n this_3.updateContextData(listElement, subNode, isHeader);\n };\n var this_3 = this;\n for (var i = 0; i < resultantOutput.length; i++) {\n _loop_3(i);\n }\n }\n };\n Virtualization.prototype.reRenderUiVirtualization = function () {\n this.wireScrollEvent(true);\n if (this.listViewInstance.contentContainer) {\n detach(this.listViewInstance.contentContainer);\n }\n this.listViewInstance.preRender();\n // resetting the dom count to 0, to avoid edge case of dataSource suddenly becoming zero\n // and then manually adding item using addItem API\n this.domItemCount = 0;\n this.listViewInstance.header();\n this.listViewInstance.setLocalData();\n };\n Virtualization.prototype.updateUI = function (element, index, targetElement) {\n // eslint-disable-next-line @typescript-eslint/ban-types\n var onChange = this.isNgTemplate() ? this.onNgChange : (this.isVueFunctionTemplate()) ? this.onVueChange : this.onChange;\n if (this.listViewInstance.template || this.listViewInstance.groupTemplate) {\n var curViewDS = this.listViewInstance.curViewDS[index];\n // eslint-disable-next-line\n element.dataset.uid = (curViewDS[this.listViewInstance.fields.id]) ?\n // eslint-disable-next-line\n (curViewDS[this.listViewInstance.fields.id]) : ListBase.generateId();\n onChange(curViewDS, element, this);\n }\n else {\n this.updateUiContent(element, index);\n }\n this.changeElementAttributes(element, index);\n if (targetElement) {\n this.listViewInstance.ulElement.insertBefore(element, targetElement);\n }\n };\n /**\n * Handles the UI change in vue for the list view.\n *\n * @param {DataSource} newData - The new data source for the list view.\n * @param {ElementContext} listElement - The HTML element context for the list view.\n * @param {Virtualization} virtualThis - The virtualization context for the list view.\n */\n Virtualization.prototype.onVueChange = function (newData, listElement, virtualThis) {\n var liItem = ListBase.createListItemFromJson(virtualThis.listViewInstance.createElement, \n // eslint-disable-next-line\n [newData], virtualThis.listViewInstance.listBaseOption, null, null, virtualThis.listViewInstance);\n while (listElement.lastChild) {\n listElement.removeChild(listElement.lastChild);\n }\n listElement.appendChild(liItem[0].firstChild);\n };\n Virtualization.prototype.onNgChange = function (newData, listElement, virtualThis) {\n // compile given target element with template for new data\n // eslint-disable-next-line\n var templateCompiler = compile(virtualThis.listViewInstance.template);\n var resultElement = templateCompiler(newData);\n while (listElement.lastChild) {\n listElement.removeChild(listElement.lastChild);\n }\n listElement.appendChild(resultElement[0]);\n };\n Virtualization.prototype.getModuleName = function () {\n return 'virtualization';\n };\n Virtualization.prototype.destroy = function () {\n this.wireScrollEvent(true);\n this.topElement = null;\n this.bottomElement = null;\n };\n return Virtualization;\n}());\nexport { Virtualization };\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport React from \"react\";\nimport { AutoCompleteComponent, } from \"@syncfusion/ej2-react-dropdowns\";\nimport { Button, Classes, Intent } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport { Tooltip2 } from \"@blueprintjs/popover2\";\nimport { AppToaster } from \"../../../../Toast/Toast\";\nimport { Inject, ListViewComponent, Virtualization, } from \"@syncfusion/ej2-react-lists\";\n// System will use the preload views on store to improve performance as this is the design that is visualized to stay.\nvar GridViewConfigurationComponent = function (props) {\n var searchRef = React.useRef(null);\n var gridView = props.getGridView(props.viewId);\n var _a = React.useState(__spreadArray([], gridView.columnConfiguration, true)), ogColumnConfiguration = _a[0], setOgColumnConfiguration = _a[1];\n var _b = React.useState(__spreadArray([], gridView.columnConfiguration, true)), localColumnConfiguration = _b[0], setLocalColumnConfiguration = _b[1];\n var _c = React.useState(false), disableForm = _c[0], setDisableForm = _c[1];\n var addColumn = function (field) {\n // Validate\n if (!(props.baseGridColumnsConfiguration &&\n !localColumnConfiguration.map(function (x) { return x.field; }).includes(field))) {\n throw \"Cannot add \".concat(field, \" since its already on the list.\");\n }\n // Get configuration\n var col = props.baseGridColumnsConfiguration.find(function (x) { return x.field === field; });\n if (!col) {\n throw \"Cannot add \".concat(field, \" sinc eits already on the list.\");\n }\n // Add\n localColumnConfiguration.push(col);\n setLocalColumnConfiguration(__spreadArray([], localColumnConfiguration, true));\n };\n var removeColumn = function (field) {\n setLocalColumnConfiguration(localColumnConfiguration.filter(function (x) { return x.field !== field; }));\n };\n var columnTemplate = function (data) {\n return (_jsxs(\"div\", { className: \"view-column\", children: [_jsx(\"span\", { children: data.text }), _jsx(Button, { title: \"Remove\", className: \"view-column-remove\", minimal: true, icon: IconNames.BAN_CIRCLE, disabled: disableForm, onClick: function () {\n removeColumn(data.id);\n } })] }));\n };\n var onSearchSelect = function (args) {\n if (!!searchRef.current) {\n var data = args.itemData;\n addColumn(data.field);\n }\n };\n var onSearchActionBegin = function (args) {\n args.data = getSearchColumns();\n };\n var showSearchPopup = function () {\n if (!!searchRef.current) {\n searchRef.current.showPopup();\n }\n };\n var clearSearch = function () {\n if (!!searchRef.current) {\n searchRef.current.clear();\n }\n };\n var getSearchColumns = function () {\n var colsNotSelected = props.baseGridColumnsConfiguration.filter(function (x) {\n return !localColumnConfiguration.map(function (y) { return y.field; }).includes(x.field) &&\n x.visible !== false;\n });\n return colsNotSelected.map(function (x) {\n return { headerText: x.headerText, field: x.field };\n });\n };\n var getListColumns = function () {\n return localColumnConfiguration.map(function (x) {\n return { text: x.headerText, id: x.field };\n });\n };\n var cancelChanges = function () {\n setLocalColumnConfiguration(__spreadArray([], ogColumnConfiguration, true));\n // Delegate\n if (props.onCancel) {\n props.onCancel();\n }\n };\n var canSave = function () {\n return localColumnConfiguration.length > 0;\n };\n var saveView = function () { return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!canSave()) {\n return [2 /*return*/];\n }\n // Disable\n setDisableForm(true);\n // Validate\n if (ogColumnConfiguration.map(function (x) { return x.field; }).join(\"\") ===\n localColumnConfiguration.map(function (x) { return x.field; }).join(\"\")) {\n if (props.onCancel) {\n props.onCancel();\n }\n return [2 /*return*/];\n }\n // Save\n return [4 /*yield*/, props\n .updateViewColumnSettings(props.viewId, localColumnConfiguration.map(function (x) { return x.field; }))\n .then(function () {\n // Default\n setOgColumnConfiguration(__spreadArray([], localColumnConfiguration, true));\n AppToaster.show({\n message: \"View Configuration Saved\",\n intent: Intent.SUCCESS,\n });\n // Delegate\n if (props.onSubmit) {\n props.onSubmit();\n }\n })\n .catch(function () {\n setDisableForm(false);\n AppToaster.show({\n message: \"An error ocurred executing the current action.\",\n intent: Intent.DANGER,\n });\n })];\n case 1:\n // Save\n _a.sent();\n return [2 /*return*/];\n }\n });\n }); };\n return (_jsxs(\"section\", { className: \"ucl-grid-view-configuration\", children: [_jsxs(\"div\", { className: \"ucl-grid-view-configuration-search\", children: [_jsx(\"label\", { children: \"Search for the fields you would like to add to this view.\" }), _jsx(AutoCompleteComponent, { ref: searchRef, id: \"ucl-grid-view-configuration-search-list\", className: Classes.INPUT, fields: { value: \"headerText\" }, minLength: 0, autofill: true, showClearButton: false, highlight: true, placeholder: \"Type to search...\", actionBegin: onSearchActionBegin, select: onSearchSelect, focus: showSearchPopup, onClick: showSearchPopup, blur: clearSearch, change: clearSearch, dataSource: getSearchColumns(), disabled: disableForm })] }), _jsxs(\"div\", { className: \"ucl-grid-view-configuration-columns\", children: [_jsx(\"label\", { children: \"Added Fields\" }), _jsx(ListViewComponent, { id: \"ucl-grid-view-configuration-columns-list\", enableVirtualization: true, template: columnTemplate, dataSource: getListColumns(), enable: !disableForm, children: _jsx(Inject, { services: [Virtualization] }) })] }), _jsxs(\"div\", { className: \"ucl-grid-view-configuration-footer\", children: [_jsx(Button, { minimal: true, intent: Intent.NONE, text: \"Cancel\", disabled: disableForm, onClick: cancelChanges }), _jsx(Tooltip2, { content: _jsxs(_Fragment, { children: [\"Add one or more fields to \", _jsx(\"b\", { children: \"Save\" })] }), isOpen: !canSave(), position: \"top\", children: _jsx(Button, { intent: Intent.PRIMARY, text: \"Save\", disabled: disableForm || !canSave(), loading: disableForm, onClick: saveView }) })] })] }));\n};\nvar GridViewConfiguration = GridViewConfigurationComponent;\nexport default GridViewConfiguration;\n","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useEffect, useState } from \"react\";\nimport { EnumSingleSelectFieldV2 } from \"../../Fields/\";\nimport classNames from \"classnames\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faStar } from \"@fortawesome/free-solid-svg-icons\";\nvar GridViewsSingleSelect = function (props) {\n var _a = useState(props.value), localValue = _a[0], setLocalValue = _a[1];\n useEffect(function () {\n setLocalValue(props.value);\n }, [props.value]);\n var itemTemplate = function (option) {\n var isDefault = props.gridViewOptions.some(function (o) { return o.value === option.value && o.isDefault; });\n return (_jsxs(\"div\", { className: \"ucl-grid-view-option\", children: [_jsx(\"span\", { children: option.label }), props.showUserDefaultView && (_jsx(FontAwesomeIcon, { className: classNames(\"ucl-grid-view-favorite-icon\", {\n \"ucl-grid-view-favorite-icon-selected\": isDefault,\n }), icon: faStar, onClick: function () {\n if (!isDefault) {\n props.setDefaultView && props.setDefaultView(option.value);\n }\n } }))] }));\n };\n return (_jsx(\"div\", { className: \"ucl-grid-views-single-select\", children: _jsx(EnumSingleSelectFieldV2, { type: \"EnumSingleSelect\", label: props.label || \"Views\", showClearButton: false, allowFiltering: false, optionValues: props.gridViewOptions, itemTemplate: itemTemplate, value: localValue, onSubmit: function (value) {\n setLocalValue(value);\n props.onSubmit(value);\n } }, JSON.stringify(props.gridViewOptions)) }));\n};\nexport default GridViewsSingleSelect;\n","import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { Button, Classes, Dialog } from \"@blueprintjs/core\";\nimport { IconNames } from \"@blueprintjs/icons\";\nimport classNames from \"classnames\";\nimport { Observer } from \"mobx-react\";\nimport React from \"react\";\nimport GridViewConfiguration from \"./GridViewConfiguration\";\nimport GridViewsSingleSelect from \"../../../GridViewsSingleSelect/GridViewsSingleSelect\";\nvar GridViewPickerComponent = function (props) {\n var _a = React.useState(false), isPickerDialogOpen = _a[0], setIsPickerDialogOpen = _a[1];\n var closeDialog = function () {\n setIsPickerDialogOpen(false);\n };\n return (_jsx(Observer, { children: function () {\n var _a, _b, _c;\n return (_jsx(\"section\", { className: classNames(\"ucl-grid-views-picker\", {\n ready: props.currentGridView,\n }), children: _jsxs(_Fragment, { children: [_jsxs(\"div\", { className: \"ucl-grid-views-picker-config\", children: [props.userGridViews && (_jsx(GridViewsSingleSelect, { gridViewOptions: props.userGridViews.map(function (view) { return ({\n label: view.title,\n value: view.id,\n isDefault: view.isDefault,\n }); }), value: props.currentGridView.id, showUserDefaultView: props.showUserDefaultView, setDefaultView: props.setDefaultView, onSubmit: function (value) {\n return props.assignCurrentGridView &&\n value &&\n props.userGridViews &&\n props.assignCurrentGridView(value, props.baseGridColumnsConfiguration, props.userGridViews);\n } })), _jsx(Button, { title: \"Board View Configuration\", minimal: true, icon: IconNames.COG, disabled: !props.currentGridView, onClick: function () {\n !!props.currentGridView && setIsPickerDialogOpen(true);\n }, children: _jsx(\"span\", { className: classNames({\n \"bp4-skeleton\": !props.currentGridView,\n }), children: \"\".concat((_b = (_a = props.gridBaseSettings) === null || _a === void 0 ? void 0 : _a.title) !== null && _b !== void 0 ? _b : \"\", \" View Configuration\") }) })] }), props.currentGridView && (_jsx(\"div\", { className: \"ucl-grid-views-picker-dialog\", children: _jsx(Dialog, { isOpen: isPickerDialogOpen, canEscapeKeyClose: false, canOutsideClickClose: false, hasBackdrop: false, portalClassName: \"ucl-grid-views-picker-dialog\", title: \"\".concat((_c = props.gridBaseSettings) === null || _c === void 0 ? void 0 : _c.title, \" View Configuration\"), isCloseButtonShown: true, onClose: function () { return closeDialog(); }, children: _jsx(\"div\", { className: Classes.DIALOG_BODY, children: _jsx(GridViewConfiguration, { viewId: props.currentGridView.id, getGridView: props.getGridView, updateViewColumnSettings: props.updateViewColumnSettings, baseGridColumnsConfiguration: props.baseGridColumnsConfiguration, onCancel: closeDialog, onSubmit: closeDialog }) }) }) }))] }) }));\n } }));\n};\nvar GridViewPicker = GridViewPickerComponent;\nexport default GridViewPicker;\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar GridMetricsApiClient = /** @class */ (function () {\n function GridMetricsApiClient(apiClient) {\n var _this = this;\n this.fetchMetrics = function (url, qry) { return __awaiter(_this, void 0, void 0, function () {\n var gridMetricRequestDTO;\n return __generator(this, function (_a) {\n gridMetricRequestDTO = {\n query: qry,\n };\n return [2 /*return*/, this._apiClient.post(url, gridMetricRequestDTO)];\n });\n }); };\n this._apiClient = apiClient;\n }\n return GridMetricsApiClient;\n}());\nexport default GridMetricsApiClient;\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Intent } from \"@blueprintjs/core\";\nimport classNames from \"classnames\";\nimport { Observer } from \"mobx-react\";\nimport React, { useEffect, useRef } from \"react\";\nimport { SkeletonComponent } from \"@syncfusion/ej2-react-notifications\";\nimport GridMetricsApiClient from \"./apiClients/gridMetricsApiClient\";\nimport { AppToaster } from \"../../../../Toast/Toast\";\nimport { PrimaryCard, SecondaryCard } from \"../../../../Cards/\";\nimport { ReadOnlyField } from \"../../../../Fields/\";\nimport { get } from \"lodash\";\nexport var GridMetrics = function (props) {\n var _a;\n var _b = React.useState(true), loading = _b[0], setLoading = _b[1];\n var _c = React.useState(), metrics = _c[0], setMetrics = _c[1];\n var _d = React.useState(), queryKey = _d[0], setQueryKey = _d[1];\n var gridMetricsApiClient = useRef(new GridMetricsApiClient(props.apiClient));\n useEffect(function () {\n var _a, _b;\n if (!!((_a = props.filterSettings) === null || _a === void 0 ? void 0 : _a.rawQuery)) {\n var requestKey = (_b = props.filterSettings) === null || _b === void 0 ? void 0 : _b.rawQuery;\n if (requestKey !== queryKey) {\n setQueryKey(requestKey);\n }\n }\n }, [(_a = props.filterSettings) === null || _a === void 0 ? void 0 : _a.rawQuery]);\n useEffect(function () {\n fetchMetrics();\n }, [queryKey]);\n var fetchMetrics = function () { return __awaiter(void 0, void 0, void 0, function () {\n var newMetrics;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!queryKey) {\n return [2 /*return*/];\n }\n setLoading(true);\n return [4 /*yield*/, gridMetricsApiClient.current\n .fetchMetrics(\"\".concat(props.url, \"/\").concat(props.gridKey, \"/\").concat(props.gridViewTitle, \"/metrics\"), queryKey)\n .catch(function () {\n AppToaster.show({\n message: \"An error ocurred loading the metrics data.\",\n intent: Intent.DANGER,\n });\n })];\n case 1:\n newMetrics = _a.sent();\n setMetrics(newMetrics || undefined);\n setLoading(false);\n return [2 /*return*/];\n }\n });\n }); };\n return (_jsx(Observer, { children: function () {\n var _a;\n return (_jsx(\"section\", { className: classNames(\"grid-metrics\", {\n \"grid-metrics-minimal\": props.minimal,\n \"grid-metrics-loading\": loading,\n }), children: _jsx(PrimaryCard, { children: _jsxs(SecondaryCard, { columns: props.columns ||\n (metrics && ((_a = Array.from(Object.entries(metrics))) === null || _a === void 0 ? void 0 : _a.length)), children: [loading &&\n Array.from(Array(props.columns)).map(function (_x, idx) {\n return (_jsx(\"div\", { className: \"bp4-form-group\", children: _jsx(\"div\", { className: \"bp4-form-content\", children: _jsx(SkeletonComponent, { id: \"skeletonText\", shape: \"Rectangle\" }) }) }, idx));\n }), !loading &&\n metrics &&\n Array.from(Object.entries(metrics)).map(function (metric, idx) {\n return (_jsx(ReadOnlyField, __assign({}, { value: metric[1] }, { minimal: true, label: get(props.languageMapping, metric[0]) }), idx));\n })] }) }) }));\n } }));\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { forwardRef, useEffect, useImperativeHandle, } from \"react\";\nimport { GridFilters, GridMetrics, SecondaryGrid, useGrid, } from \"../../../\";\nvar PrimaryGridTableComponent = forwardRef(function (props, ref) {\n useImperativeHandle(ref, function () {\n return ({\n getGridRef: function () {\n return gridRef.current;\n },\n });\n });\n var _a = useGrid({\n gridKey: props.gridKey,\n gridViewTitle: props.gridViewTitle,\n columnsConfiguration: props.columnsConfiguration || [],\n filterConfiguration: props.filterConfiguration,\n sortConfiguration: props.sortConfiguration,\n dataSource: props.odataUrl,\n dataParams: props.odataParams,\n getAuthRequestHeader: props.getAuthRequestHeader,\n gridConfiguration: props.gridConfiguration,\n allowSearch: props.allowSearch,\n }), ready = _a.ready, gridRef = _a.gridRef, gridSettings = _a.gridSettings, filtersCount = _a.filtersCount, filterSettings = _a.filterSettings, removeFilter = _a.removeFilter, clearFilters = _a.clearFilters, removeSort = _a.removeSort;\n useEffect(function () {\n props.onFilterSettingsChanged &&\n props.onFilterSettingsChanged(filterSettings ? __assign({}, filterSettings) : undefined);\n }, [filterSettings]);\n return (_jsxs(\"div\", { className: \"ucl-main-grid-views-picker-grid\", children: [props.showGridFilters && (_jsx(GridFilters, { gridKey: props.gridKey, filtersCount: filtersCount, filterSettings: filterSettings, removeFilter: removeFilter, clearFilters: clearFilters, removeSort: removeSort })), _jsx(SecondaryGrid, { ready: ready, gridRef: gridRef, gridSettings: gridSettings, className: \"ucl-main-grid\" }), props.metricsSettings && (_jsx(GridMetrics, { gridKey: props.gridKey, url: props.metricsSettings.url, columns: props.metricsSettings.columns, minimal: true, languageMapping: props.metricsSettings.languageMapping, apiClient: props.metricsSettings.apiClient, filterSettings: filterSettings, gridViewTitle: props.gridViewTitle }))] }));\n});\nexport var PrimaryGridTable = PrimaryGridTableComponent;\nexport default PrimaryGridTable;\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { SkeletonComponent } from \"@syncfusion/ej2-react-notifications\";\nimport { forwardRef, useImperativeHandle, useRef, useState, } from \"react\";\nimport PrimaryGridTable from \"./PrimaryGridTable\";\nimport { GridViewPicker, useGridView, } from \"../../../\";\nvar PrimaryGridComponent = forwardRef(function (props, ref) {\n var _a, _b;\n useImperativeHandle(ref, function () {\n return ({\n getGridModule: function () {\n return primaryGridTableModule.current;\n },\n });\n });\n var _c = useState(null), filterSettings = _c[0], setFilterSetttings = _c[1];\n var _d = useGridView(props.gridKey, props.viewsSettings.gridTitle, props.columnsConfiguration, props.getColumnsConfigurationForUser\n ? props.getColumnsConfigurationForUser\n : function () { return props.columnsConfiguration; }, props.apiClient, filterSettings, props.viewsSettings.gridAutoName, props.viewsSettings.defaultGridViewTitle, props.viewsSettings.shouldCreateAutoView), currentGridView = _d.currentGridView, currentGridViewKey = _d.currentGridViewKey, gridBaseSettings = _d.gridBaseSettings, getGridView = _d.getGridView, updateViewColumnSettings = _d.updateViewColumnSettings, setDefaultView = _d.setDefaultView, baseGridColumnsConfiguration = _d.baseGridColumnsConfiguration, assignCurrentGridView = _d.assignCurrentGridView, userGridViews = _d.userGridViews;\n var primaryGridTableModule = useRef(null);\n return (_jsxs(\"div\", { className: \"primary-grid\", children: [!currentGridView && (_jsxs(\"div\", { children: [_jsx(\"br\", {}), _jsx(SkeletonComponent, { height: \"15px\" })] })), currentGridView && (_jsxs(_Fragment, { children: [!gridBaseSettings && (_jsxs(\"div\", { children: [_jsx(\"br\", {}), _jsx(SkeletonComponent, { height: \"15px\" })] })), gridBaseSettings &&\n props.viewsSettings.showGridViewPicker !== false && (_jsx(GridViewPicker, { currentGridView: currentGridView, gridBaseSettings: gridBaseSettings, getGridView: getGridView, updateViewColumnSettings: updateViewColumnSettings, showUserDefaultView: props.viewsSettings.showUserDefaultView, setDefaultView: setDefaultView, baseGridColumnsConfiguration: baseGridColumnsConfiguration, odataUrl: props.viewsSettings.odataUrl, getAuthRequestHeader: props.getAuthRequestHeader, assignCurrentGridView: assignCurrentGridView, userGridViews: userGridViews })), gridBaseSettings && (_jsx(PrimaryGridTable, { gridKey: props.gridKey, gridViewTitle: currentGridView.title, ref: primaryGridTableModule, odataUrl: props.odataUrl, odataParams: props.odataParams, getAuthRequestHeader: props.getAuthRequestHeader, metricsSettings: props.metricsSettings && __assign(__assign({}, props.metricsSettings), { apiClient: props.apiClient }), columnsConfiguration: currentGridView.columnConfiguration, filterConfiguration: currentGridView.filterConfiguration, sortConfiguration: currentGridView.sortConfiguration, onFilterSettingsChanged: function (settings) {\n return setFilterSetttings(settings || null);\n }, gridConfiguration: props.gridConfiguration, showGridFilters: (_a = props.showGridFilters) !== null && _a !== void 0 ? _a : true, allowSearch: (_b = props.allowSearch) !== null && _b !== void 0 ? _b : true }, currentGridViewKey))] }))] }));\n});\nexport var PrimaryGrid = PrimaryGridComponent;\nexport default PrimaryGrid;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { Grid } from '@syncfusion/ej2-grids';\nimport { ComponentBase, applyMixins } from '@syncfusion/ej2-react-base';\n/**\n * `GridComponent` represents the react Grid.\n * ```tsx\n * \n * ```\n */\nvar GridComponent = /** @class */ (function (_super) {\n __extends(GridComponent, _super);\n function GridComponent(props) {\n var _this = _super.call(this, props) || this;\n _this.initRenderCalled = false;\n _this.checkInjectedModules = true;\n _this.directivekeys = { 'columns': { 'column': { 'stackedColumns': 'stackedColumn' } }, 'aggregates': { 'aggregate': { 'aggregateColumns': 'aggregateColumn' } } };\n _this.statelessTemplateProps = null;\n _this.templateProps = [\"template\", \"headerTemplate\", \"commandsTemplate\", \"filter.itemTemplate\", \"editTemplate\", \"filterTemplate\"];\n _this.immediateRender = false;\n _this.portals = [];\n return _this;\n }\n GridComponent.prototype.render = function () {\n if (((this.element && !this.initRenderCalled) || this.refreshing) && !this.isReactForeceUpdate) {\n _super.prototype.render.call(this);\n this.initRenderCalled = true;\n }\n else {\n return React.createElement('div', this.getDefaultAttributes(), [].concat(this.props.children, this.portals));\n }\n };\n return GridComponent;\n}(Grid));\nexport { GridComponent };\napplyMixins(GridComponent, [ComponentBase, React.Component]);\n","import { isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { EventHandler } from '@syncfusion/ej2-base';\nimport { attributes, createElement, classList, append } from '@syncfusion/ej2-base';\n/**\n * `NumericContainer` module handles rendering and refreshing numeric container.\n */\nvar NumericContainer = /** @class */ (function () {\n /**\n * Constructor for numericContainer module\n *\n * @param {Pager} pagerModule - specifies the pagerModule\n * @hidden\n */\n function NumericContainer(pagerModule) {\n this.pagerModule = pagerModule;\n }\n /**\n * The function is used to render numericContainer\n *\n * @returns {void}\n * @hidden\n */\n NumericContainer.prototype.render = function () {\n this.pagerElement = this.pagerModule.element;\n this.renderNumericContainer();\n this.refreshNumericLinks();\n this.wireEvents();\n };\n /**\n * Refreshes the numeric container of Pager.\n *\n * @returns {void}\n */\n NumericContainer.prototype.refresh = function () {\n this.pagerModule.updateTotalPages();\n if (this.links.length) {\n this.updateLinksHtml();\n }\n this.refreshAriaAttrLabel();\n this.updateStyles();\n };\n /**\n * The function is used to refresh refreshNumericLinks\n *\n * @returns {void}\n * @hidden\n */\n NumericContainer.prototype.refreshNumericLinks = function () {\n var link;\n var pagerObj = this.pagerModule;\n var div = pagerObj.element.querySelector('.e-numericcontainer');\n var frag = document.createDocumentFragment();\n div.innerHTML = '';\n for (var i = 1; i <= pagerObj.pageCount; i++) {\n link = createElement('a', {\n className: 'e-link e-numericitem e-spacing e-pager-default',\n attrs: { role: 'link', tabindex: '-1', 'aria-label': pagerObj.getLocalizedLabel('Page') + i + pagerObj.getLocalizedLabel('Of') +\n pagerObj.totalPages + pagerObj.getLocalizedLabel('Pages'), href: '#', name: 'Goto page' + i }\n });\n if (pagerObj.currentPage === i) {\n classList(link, ['e-currentitem', 'e-active'], ['e-pager-default']);\n link.setAttribute('aria-selected', 'true');\n link.setAttribute('aria-current', 'page');\n }\n frag.appendChild(link);\n }\n div.appendChild(frag);\n this.links = [].slice.call(div.childNodes);\n };\n /**\n * Binding events to the element while component creation\n *\n * @returns {void}\n * @hidden\n */\n NumericContainer.prototype.wireEvents = function () {\n EventHandler.add(this.pagerElement, 'click', this.clickHandler, this);\n };\n /**\n * Unbinding events from the element while component destroy\n *\n * @returns {void}\n * @hidden\n */\n NumericContainer.prototype.unwireEvents = function () {\n EventHandler.remove(this.pagerModule.element, 'click', this.clickHandler);\n };\n /**\n * To destroy the PagerMessage\n *\n * @function destroy\n * @returns {void}\n * @hidden\n */\n NumericContainer.prototype.destroy = function () {\n this.unwireEvents();\n };\n NumericContainer.prototype.refreshAriaAttrLabel = function () {\n var pagerObj = this.pagerModule;\n var numericContainer = pagerObj.element.querySelector('.e-numericcontainer');\n var links = numericContainer.querySelectorAll('a');\n for (var i = 0; i < links.length; i++) {\n if (links[parseInt(i.toString(), 10)].hasAttribute('aria-label') && links[parseInt(i.toString(), 10)].hasAttribute('index')) {\n links[parseInt(i.toString(), 10)].setAttribute('aria-label', pagerObj.getLocalizedLabel('Page') + links[parseInt(i.toString(), 10)].getAttribute('index')\n + pagerObj.getLocalizedLabel('Of') + pagerObj.totalPages + pagerObj.getLocalizedLabel('Pages'));\n }\n }\n };\n NumericContainer.prototype.renderNumericContainer = function () {\n this.element = createElement('div', {\n className: 'e-pagercontainer', attrs: { 'role': 'navigation' }\n });\n this.renderFirstNPrev(this.element);\n this.renderPrevPagerSet(this.element);\n this.element.appendChild(createElement('div', { className: 'e-numericcontainer' }));\n this.renderNextPagerSet(this.element);\n this.renderNextNLast(this.element);\n this.pagerModule.element.appendChild(this.element);\n };\n NumericContainer.prototype.renderFirstNPrev = function (pagerContainer) {\n this.first = createElement('div', {\n className: 'e-first e-icons e-icon-first',\n attrs: {\n title: this.pagerModule.getLocalizedLabel('firstPageTooltip'),\n 'aria-label': this.pagerModule.getLocalizedLabel('firstPageTooltip'),\n tabindex: '-1', role: 'button'\n }\n });\n this.prev = createElement('div', {\n className: 'e-prev e-icons e-icon-prev',\n attrs: {\n title: this.pagerModule.getLocalizedLabel('previousPageTooltip'),\n 'aria-label': this.pagerModule.getLocalizedLabel('previousPageTooltip'),\n tabindex: '-1', role: 'button'\n }\n });\n append([this.first, this.prev], pagerContainer);\n };\n NumericContainer.prototype.renderPrevPagerSet = function (pagerContainer) {\n var prevPager = createElement('div');\n this.PP = createElement('a', {\n className: 'e-link e-pp e-spacing', innerHTML: '...',\n attrs: {\n title: this.pagerModule.getLocalizedLabel('previousPagerTooltip'), role: 'link',\n 'aria-label': this.pagerModule.getLocalizedLabel('previousPagerTooltip'),\n tabindex: '-1',\n name: this.pagerModule.getLocalizedLabel('previousPagerTooltip'),\n href: '#'\n }\n });\n prevPager.appendChild(this.PP);\n pagerContainer.appendChild(prevPager);\n };\n NumericContainer.prototype.renderNextPagerSet = function (pagerContainer) {\n var nextPager = createElement('div');\n this.NP = createElement('a', {\n className: 'e-link e-np e-spacing',\n innerHTML: '...', attrs: {\n title: this.pagerModule.getLocalizedLabel('nextPagerTooltip'), role: 'link',\n 'aria-label': this.pagerModule.getLocalizedLabel('nextPagerTooltip'),\n tabindex: '-1',\n name: this.pagerModule.getLocalizedLabel('nextPagerTooltip'),\n href: '#'\n }\n });\n nextPager.appendChild(this.NP);\n pagerContainer.appendChild(nextPager);\n };\n NumericContainer.prototype.renderNextNLast = function (pagerContainer) {\n this.next = createElement('div', {\n className: 'e-next e-icons e-icon-next',\n attrs: {\n title: this.pagerModule.getLocalizedLabel('nextPageTooltip'),\n 'aria-label': this.pagerModule.getLocalizedLabel('nextPageTooltip'),\n tabindex: '-1', role: 'button'\n }\n });\n this.last = createElement('div', {\n className: 'e-last e-icons e-icon-last',\n attrs: {\n title: this.pagerModule.getLocalizedLabel('lastPageTooltip'),\n 'aria-label': this.pagerModule.getLocalizedLabel('lastPageTooltip'),\n tabindex: '-1', role: 'button'\n }\n });\n append([this.next, this.last], pagerContainer);\n };\n NumericContainer.prototype.clickHandler = function (e) {\n var pagerObj = this.pagerModule;\n var target = e.target;\n if (target.classList.contains('e-numericitem')) {\n e.preventDefault();\n }\n pagerObj.previousPageNo = pagerObj.currentPage;\n if (!target.classList.contains('e-disable') && !isNullOrUndefined(target.getAttribute('index'))) {\n pagerObj.currentPage = parseInt(target.getAttribute('index'), 10);\n pagerObj.dataBind();\n }\n return false;\n };\n NumericContainer.prototype.updateLinksHtml = function () {\n var pagerObj = this.pagerModule;\n var currentPageSet;\n var pageNo;\n pagerObj.currentPage = pagerObj.totalPages === 1 ? 1 : pagerObj.currentPage;\n if (pagerObj.currentPage > pagerObj.totalPages && pagerObj.totalPages) {\n pagerObj.currentPage = pagerObj.totalPages;\n }\n currentPageSet = parseInt((pagerObj.currentPage / pagerObj.pageCount).toString(), 10);\n if (pagerObj.currentPage % pagerObj.pageCount === 0 && currentPageSet > 0) {\n currentPageSet = currentPageSet - 1;\n }\n for (var i = 0; i < pagerObj.pageCount; i++) {\n pageNo = (currentPageSet * pagerObj.pageCount) + 1 + i;\n if (pageNo <= pagerObj.totalPages) {\n this.links[parseInt(i.toString(), 10)].style.display = '';\n this.links[parseInt(i.toString(), 10)].setAttribute('index', pageNo.toString());\n this.links[parseInt(i.toString(), 10)].innerHTML = !pagerObj.customText ? pageNo.toString() : pagerObj.customText + pageNo;\n if (pagerObj.currentPage !== pageNo) {\n this.links[parseInt(i.toString(), 10)].classList.add('e-pager-default');\n }\n else {\n this.links[parseInt(i.toString(), 10)].classList.remove('e-pager-default');\n }\n }\n else {\n this.links[parseInt(i.toString(), 10)].innerHTML = !pagerObj.customText ? pageNo.toString() : pagerObj.customText + pageNo;\n this.links[parseInt(i.toString(), 10)].style.display = 'none';\n }\n classList(this.links[parseInt(i.toString(), 10)], [], ['e-currentitem', 'e-active']);\n this.links[parseInt(i.toString(), 10)].removeAttribute('aria-selected');\n this.links[parseInt(i.toString(), 10)].removeAttribute('aria-current');\n this.links[parseInt(i.toString(), 10)].setAttribute('role', 'link');\n }\n attributes(this.first, {\n 'index': '1',\n 'title': this.pagerModule.getLocalizedLabel('firstPageTooltip'),\n 'aria-label': this.pagerModule.getLocalizedLabel('firstPageTooltip')\n });\n attributes(this.pagerElement.querySelector('.e-mfirst'), {\n 'index': '1',\n 'title': this.pagerModule.getLocalizedLabel('firstPageTooltip'),\n 'aria-label': this.pagerModule.getLocalizedLabel('firstPageTooltip')\n });\n attributes(this.last, {\n 'index': pagerObj.totalPages.toString(),\n 'title': this.pagerModule.getLocalizedLabel('lastPageTooltip'),\n 'aria-label': this.pagerModule.getLocalizedLabel('lastPageTooltip')\n });\n attributes(this.pagerElement.querySelector('.e-mlast'), {\n 'index': pagerObj.totalPages.toString(),\n 'title': this.pagerModule.getLocalizedLabel('lastPageTooltip'),\n 'aria-label': this.pagerModule.getLocalizedLabel('lastPageTooltip')\n });\n attributes(this.prev, {\n 'index': (pagerObj.currentPage - 1).toString(),\n 'title': this.pagerModule.getLocalizedLabel('previousPageTooltip'),\n 'aria-label': this.pagerModule.getLocalizedLabel('previousPageTooltip')\n });\n attributes(this.pagerElement.querySelector('.e-mprev'), {\n 'index': (pagerObj.currentPage - 1).toString(),\n 'title': this.pagerModule.getLocalizedLabel('previousPageTooltip'),\n 'aria-label': this.pagerModule.getLocalizedLabel('previousPageTooltip')\n });\n attributes(this.next, {\n 'index': (pagerObj.currentPage + 1).toString(),\n 'title': this.pagerModule.getLocalizedLabel('nextPageTooltip'),\n 'aria-label': this.pagerModule.getLocalizedLabel('nextPageTooltip')\n });\n attributes(this.pagerElement.querySelector('.e-mnext'), {\n 'index': (pagerObj.currentPage + 1).toString(),\n 'title': this.pagerModule.getLocalizedLabel('nextPageTooltip'),\n 'aria-label': this.pagerModule.getLocalizedLabel('nextPageTooltip')\n });\n attributes(this.PP, {\n 'index': (parseInt(this.links[0].getAttribute('index'), 10) - pagerObj.pageCount).toString(),\n 'title': this.pagerModule.getLocalizedLabel('previousPagerTooltip'),\n 'aria-label': this.pagerModule.getLocalizedLabel('previousPagerTooltip')\n });\n attributes(this.NP, {\n 'index': (parseInt(this.links[this.links.length - 1].getAttribute('index'), 10) + 1).toString(),\n 'title': this.pagerModule.getLocalizedLabel('nextPagerTooltip'),\n 'aria-label': this.pagerModule.getLocalizedLabel('nextPagerTooltip')\n });\n };\n NumericContainer.prototype.updateStyles = function () {\n this.updateFirstNPrevStyles();\n this.updatePrevPagerSetStyles();\n this.updateNextPagerSetStyles();\n this.updateNextNLastStyles();\n if (this.links.length) {\n classList(this.links[(this.pagerModule.currentPage - 1) % this.pagerModule.pageCount], ['e-currentitem', 'e-active'], []);\n this.links[(this.pagerModule.currentPage - 1) % this.pagerModule.pageCount].setAttribute('aria-selected', 'true');\n this.links[(this.pagerModule.currentPage - 1) % this.pagerModule.pageCount].setAttribute('aria-current', 'page');\n this.links[(this.pagerModule.currentPage - 1) % this.pagerModule.pageCount].removeAttribute('role');\n }\n };\n NumericContainer.prototype.updateFirstNPrevStyles = function () {\n var firstPage = ['e-firstpage', 'e-pager-default'];\n var firstPageDisabled = ['e-firstpagedisabled', 'e-disable'];\n var prevPage = ['e-prevpage', 'e-pager-default'];\n var prevPageDisabled = ['e-prevpagedisabled', 'e-disable'];\n if (this.pagerModule.totalPages > 0 && this.pagerModule.currentPage > 1) {\n classList(this.prev, prevPage, prevPageDisabled);\n classList(this.first, firstPage, firstPageDisabled);\n classList(this.pagerElement.querySelector('.e-mfirst'), firstPage, firstPageDisabled);\n classList(this.pagerElement.querySelector('.e-mprev'), prevPage, prevPageDisabled);\n }\n else {\n classList(this.prev, prevPageDisabled, prevPage);\n classList(this.first, firstPageDisabled, firstPage);\n classList(this.pagerElement.querySelector('.e-mprev'), prevPageDisabled, prevPage);\n classList(this.pagerElement.querySelector('.e-mfirst'), firstPageDisabled, firstPage);\n }\n };\n NumericContainer.prototype.updatePrevPagerSetStyles = function () {\n if (this.pagerModule.currentPage > this.pagerModule.pageCount) {\n classList(this.PP, ['e-numericitem', 'e-pager-default'], ['e-nextprevitemdisabled', 'e-disable']);\n }\n else {\n classList(this.PP, ['e-nextprevitemdisabled', 'e-disable'], ['e-numericitem', 'e-pager-default']);\n }\n };\n NumericContainer.prototype.updateNextPagerSetStyles = function () {\n var pagerObj = this.pagerModule;\n var firstPage = this.links[0].innerHTML.replace(pagerObj.customText, '');\n if (!firstPage.length || !this.links.length || (parseInt(firstPage, 10) + pagerObj.pageCount > pagerObj.totalPages)) {\n classList(this.NP, ['e-nextprevitemdisabled', 'e-disable'], ['e-numericitem', 'e-pager-default']);\n }\n else {\n classList(this.NP, ['e-numericitem', 'e-pager-default'], ['e-nextprevitemdisabled', 'e-disable']);\n }\n };\n NumericContainer.prototype.updateNextNLastStyles = function () {\n var lastPage = ['e-lastpage', 'e-pager-default'];\n var lastPageDisabled = ['e-lastpagedisabled', 'e-disable'];\n var nextPage = ['e-nextpage', 'e-pager-default'];\n var nextPageDisabled = ['e-nextpagedisabled', 'e-disable'];\n var pagerObj = this.pagerModule;\n if (pagerObj.currentPage === pagerObj.totalPages || pagerObj.totalRecordsCount === 0) {\n classList(this.last, lastPageDisabled, lastPage);\n classList(this.next, nextPageDisabled, nextPage);\n classList(this.pagerElement.querySelector('.e-mlast'), lastPageDisabled, lastPage);\n classList(this.pagerElement.querySelector('.e-mnext'), nextPageDisabled, nextPage);\n }\n else {\n classList(this.last, lastPage, lastPageDisabled);\n classList(this.next, nextPage, nextPageDisabled);\n classList(this.pagerElement.querySelector('.e-mlast'), lastPage, lastPageDisabled);\n classList(this.pagerElement.querySelector('.e-mnext'), nextPage, nextPageDisabled);\n }\n };\n return NumericContainer;\n}());\nexport { NumericContainer };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { EventHandler, Property, Internationalization, NotifyPropertyChanges } from '@syncfusion/ej2-base';\nimport { KeyboardEvents, Animation, Browser } from '@syncfusion/ej2-base';\nimport { cldrData, L10n, Component, getDefaultDateObject, rippleEffect, Event } from '@syncfusion/ej2-base';\nimport { remove, addClass, detach, removeClass, closest, append, attributes, setStyleAttribute } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined, formatUnit, getValue, extend, getUniqueID, ChildProperty } from '@syncfusion/ej2-base';\nimport { Popup } from '@syncfusion/ej2-popups';\nimport { Input } from '@syncfusion/ej2-inputs';\nimport { ListBase } from '@syncfusion/ej2-lists';\nvar WRAPPERCLASS = 'e-time-wrapper';\nvar POPUP = 'e-popup';\nvar ERROR = 'e-error';\nvar POPUPDIMENSION = '240px';\nvar DAY = new Date().getDate();\nvar MONTH = new Date().getMonth();\nvar YEAR = new Date().getFullYear();\nvar ROOT = 'e-timepicker';\nvar LIBRARY = 'e-lib';\nvar CONTROL = 'e-control';\nvar CONTENT = 'e-content';\nvar SELECTED = 'e-active';\nvar HOVER = 'e-hover';\nvar NAVIGATION = 'e-navigation';\nvar DISABLED = 'e-disabled';\nvar ICONANIMATION = 'e-icon-anim';\nvar TIMEICON = 'e-time-icon';\nvar CLEARICON = 'e-clear-icon';\nvar FOCUS = 'e-input-focus';\nvar LISTCLASS = 'e-list-item';\nvar HALFPOSITION = 2;\nvar ANIMATIONDURATION = 50;\nvar OVERFLOW = 'e-time-overflow';\nvar OFFSETVAL = 4;\nvar EDITABLE = 'e-non-edit';\nvar wrapperAttributes = ['title', 'class', 'style'];\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport var TimePickerBase;\n(function (TimePickerBase) {\n // eslint-disable-next-line max-len, jsdoc/require-jsdoc\n function createListItems(createdEl, min, max, globalize, timeFormat, step) {\n var formatOptions;\n if (this.calendarMode === 'Gregorian') {\n formatOptions = { format: timeFormat, type: 'time' };\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n formatOptions = { format: timeFormat, type: 'time', calendar: 'islamic' };\n }\n var start;\n var interval = step * 60000;\n var listItems = [];\n var timeCollections = [];\n start = +(min.setMilliseconds(0));\n var end = +(max.setMilliseconds(0));\n while (end >= start) {\n timeCollections.push(start);\n listItems.push(globalize.formatDate(new Date(start), { format: timeFormat, type: 'time' }));\n start += interval;\n }\n var listTag = ListBase.createList(createdEl, listItems, null, true);\n return { collection: timeCollections, list: listTag };\n }\n TimePickerBase.createListItems = createListItems;\n})(TimePickerBase || (TimePickerBase = {}));\nvar TimeMaskPlaceholder = /** @class */ (function (_super) {\n __extends(TimeMaskPlaceholder, _super);\n function TimeMaskPlaceholder() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('day')\n ], TimeMaskPlaceholder.prototype, \"day\", void 0);\n __decorate([\n Property('month')\n ], TimeMaskPlaceholder.prototype, \"month\", void 0);\n __decorate([\n Property('year')\n ], TimeMaskPlaceholder.prototype, \"year\", void 0);\n __decorate([\n Property('day of the week')\n ], TimeMaskPlaceholder.prototype, \"dayOfTheWeek\", void 0);\n __decorate([\n Property('hour')\n ], TimeMaskPlaceholder.prototype, \"hour\", void 0);\n __decorate([\n Property('minute')\n ], TimeMaskPlaceholder.prototype, \"minute\", void 0);\n __decorate([\n Property('second')\n ], TimeMaskPlaceholder.prototype, \"second\", void 0);\n return TimeMaskPlaceholder;\n}(ChildProperty));\nexport { TimeMaskPlaceholder };\n/**\n * TimePicker is an intuitive interface component which provides an options to select a time value\n * from popup list or to set a desired time value.\n * ```\n * \n * \n * ```\n */\nvar TimePicker = /** @class */ (function (_super) {\n __extends(TimePicker, _super);\n /**\n * Constructor for creating the widget\n *\n * @param {TimePickerModel} options - Specifies the TimePicker model.\n * @param {string | HTMLInputElement} element - Specifies the element to render as component.\n * @private\n */\n function TimePicker(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.liCollections = [];\n _this.timeCollections = [];\n _this.disableItemCollection = [];\n _this.invalidValueString = null;\n _this.isAngular = false;\n _this.preventChange = false;\n _this.maskedDateValue = '';\n _this.moduleName = _this.getModuleName();\n _this.timeOptions = options;\n return _this;\n }\n /**\n * Initialize the event handler\n *\n * @returns {void}\n * @private\n */\n TimePicker.prototype.preRender = function () {\n this.keyConfigure = {\n enter: 'enter',\n escape: 'escape',\n end: 'end',\n tab: 'tab',\n home: 'home',\n down: 'downarrow',\n up: 'uparrow',\n left: 'leftarrow',\n right: 'rightarrow',\n open: 'alt+downarrow',\n close: 'alt+uparrow'\n };\n this.cloneElement = this.element.cloneNode(true);\n removeClass([this.cloneElement], [ROOT, CONTROL, LIBRARY]);\n this.inputElement = this.element;\n this.angularTag = null;\n this.formElement = closest(this.element, 'form');\n if (this.element.tagName === 'EJS-TIMEPICKER') {\n this.angularTag = this.element.tagName;\n this.inputElement = this.createElement('input');\n this.element.appendChild(this.inputElement);\n }\n this.tabIndex = this.element.hasAttribute('tabindex') ? this.element.getAttribute('tabindex') : '0';\n this.element.removeAttribute('tabindex');\n this.openPopupEventArgs = {\n appendTo: document.body\n };\n };\n // element creation\n TimePicker.prototype.render = function () {\n this.initialize();\n this.createInputElement();\n this.updateHtmlAttributeToWrapper();\n this.setTimeAllowEdit();\n this.setEnable();\n this.validateInterval();\n this.bindEvents();\n this.validateDisable();\n this.setValue(this.getFormattedValue(this.value));\n if (this.enableMask && !this.value && this.maskedDateValue && (this.floatLabelType === 'Always' || !this.floatLabelType || !this.placeholder)) {\n this.updateInputValue(this.maskedDateValue);\n this.checkErrorState(this.maskedDateValue);\n }\n this.anchor = this.inputElement;\n this.inputElement.setAttribute('value', this.inputElement.value);\n this.inputEleValue = this.getDateObject(this.inputElement.value);\n if (!isNullOrUndefined(this.inputWrapper.buttons[0]) && !isNullOrUndefined(this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0]) && this.floatLabelType !== 'Never') {\n this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0].classList.add('e-icon');\n }\n if (!isNullOrUndefined(closest(this.element, 'fieldset')) && closest(this.element, 'fieldset').disabled) {\n this.enabled = false;\n }\n this.renderComplete();\n };\n TimePicker.prototype.setTimeAllowEdit = function () {\n if (this.allowEdit) {\n if (!this.readonly) {\n this.inputElement.removeAttribute('readonly');\n }\n }\n else {\n attributes(this.inputElement, { 'readonly': '' });\n }\n this.clearIconState();\n };\n TimePicker.prototype.clearIconState = function () {\n if (!this.allowEdit && this.inputWrapper && !this.readonly) {\n if (this.inputElement.value === '') {\n removeClass([this.inputWrapper.container], [EDITABLE]);\n }\n else {\n addClass([this.inputWrapper.container], [EDITABLE]);\n }\n }\n else if (this.inputWrapper) {\n removeClass([this.inputWrapper.container], [EDITABLE]);\n }\n };\n TimePicker.prototype.validateDisable = function () {\n this.setMinMax(this.initMin, this.initMax);\n if (!isNullOrUndefined(this.value)) {\n this.popupCreation();\n this.popupObj.destroy();\n this.popupWrapper = this.popupObj = null;\n }\n if ((!isNaN(+this.value) && this.value !== null)) {\n if (!this.valueIsDisable(this.value)) {\n //disable value given in value property so reset the date based on current date\n if (this.strictMode) {\n this.resetState();\n }\n this.initValue = null;\n this.initMax = this.getDateObject(this.initMax);\n this.initMin = this.getDateObject(this.initMin);\n this.timeCollections = this.liCollections = [];\n this.setMinMax(this.initMin, this.initMax);\n }\n }\n };\n TimePicker.prototype.validationAttribute = function (target, input) {\n var name = target.getAttribute('name') ? target.getAttribute('name') : target.getAttribute('id');\n input.setAttribute('name', name);\n target.removeAttribute('name');\n var attributes = ['required', 'aria-required', 'form'];\n for (var i = 0; i < attributes.length; i++) {\n if (isNullOrUndefined(target.getAttribute(attributes[i]))) {\n continue;\n }\n var attr = target.getAttribute(attributes[i]);\n input.setAttribute(attributes[i], attr);\n target.removeAttribute(attributes[i]);\n }\n };\n TimePicker.prototype.initialize = function () {\n this.globalize = new Internationalization(this.locale);\n this.defaultCulture = new Internationalization('en');\n this.checkTimeFormat();\n this.checkInvalidValue(this.value);\n // persist the value property.\n this.setProperties({ value: this.checkDateValue(new Date(this.checkInValue(this.value))) }, true);\n this.setProperties({ min: this.checkDateValue(new Date(this.checkInValue(this.min))) }, true);\n this.setProperties({ max: this.checkDateValue(new Date(this.checkInValue(this.max))) }, true);\n this.setProperties({ scrollTo: this.checkDateValue(new Date(this.checkInValue(this.scrollTo))) }, true);\n if (this.angularTag !== null) {\n this.validationAttribute(this.element, this.inputElement);\n }\n this.updateHtmlAttributeToElement();\n this.checkAttributes(false); //check the input element attributes\n var localeText = { placeholder: this.placeholder };\n this.l10n = new L10n('timepicker', localeText, this.locale);\n this.setProperties({ placeholder: this.placeholder || this.l10n.getConstant('placeholder') }, true);\n this.initValue = this.checkDateValue(this.value);\n this.initMin = this.checkDateValue(this.min);\n this.initMax = this.checkDateValue(this.max);\n this.isNavigate = this.isPreventBlur = this.isTextSelected = false;\n this.activeIndex = this.valueWithMinutes = this.prevDate = null;\n if (!isNullOrUndefined(this.element.getAttribute('id'))) {\n if (this.angularTag !== null) {\n this.inputElement.id = this.element.getAttribute('id') + '_input';\n }\n }\n else {\n //for angular case\n this.element.id = getUniqueID('ej2_timepicker');\n if (this.angularTag !== null) {\n attributes(this.inputElement, { 'id': this.element.id + '_input' });\n }\n }\n if (isNullOrUndefined(this.inputElement.getAttribute('name'))) {\n attributes(this.inputElement, { 'name': this.element.id });\n }\n if (this.enableMask) {\n this.notify('createMask', {\n module: 'MaskedDateTime'\n });\n }\n };\n TimePicker.prototype.checkTimeFormat = function () {\n if (this.format) {\n if (typeof this.format === 'string') {\n this.formatString = this.format;\n }\n else if (!isNullOrUndefined(this.format.skeleton) && this.format.skeleton !== '') {\n var skeletonString = this.format.skeleton;\n this.formatString = this.globalize.getDatePattern({ type: 'time', skeleton: skeletonString });\n }\n else {\n this.formatString = this.globalize.getDatePattern({ type: 'time', skeleton: 'short' });\n }\n }\n else {\n this.formatString = null;\n }\n };\n TimePicker.prototype.checkDateValue = function (value) {\n return (!isNullOrUndefined(value) && value instanceof Date && !isNaN(+value)) ? value : null;\n };\n TimePicker.prototype.createInputElement = function () {\n var updatedCssClassesValue = this.cssClass;\n var isBindClearAction = this.enableMask ? false : true;\n if (!isNullOrUndefined(this.cssClass) && this.cssClass !== '') {\n updatedCssClassesValue = (this.cssClass.replace(/\\s+/g, ' ')).trim();\n }\n this.inputWrapper = Input.createInput({\n element: this.inputElement,\n bindClearAction: isBindClearAction,\n floatLabelType: this.floatLabelType,\n properties: {\n readonly: this.readonly,\n placeholder: this.placeholder,\n cssClass: updatedCssClassesValue,\n enabled: this.enabled,\n enableRtl: this.enableRtl,\n showClearButton: this.showClearButton\n },\n buttons: [' e-input-group-icon e-time-icon e-icons']\n }, this.createElement);\n this.inputWrapper.container.style.width = this.setWidth(this.width);\n attributes(this.inputElement, {\n 'aria-autocomplete': 'list', 'tabindex': '0',\n 'aria-expanded': 'false', 'role': 'combobox', 'autocomplete': 'off',\n 'autocorrect': 'off', 'autocapitalize': 'off', 'spellcheck': 'false',\n 'aria-disabled': 'false', 'aria-invalid': 'false'\n });\n if (!this.isNullOrEmpty(this.inputStyle)) {\n Input.addAttributes({ 'style': this.inputStyle }, this.inputElement);\n }\n addClass([this.inputWrapper.container], WRAPPERCLASS);\n };\n TimePicker.prototype.getCldrDateTimeFormat = function () {\n var culture = new Internationalization(this.locale);\n var cldrTime;\n var dateFormat = culture.getDatePattern({ skeleton: 'yMd' });\n if (this.isNullOrEmpty(this.formatString)) {\n cldrTime = dateFormat + ' ' + this.cldrFormat('time');\n }\n else {\n cldrTime = this.formatString;\n }\n return cldrTime;\n };\n TimePicker.prototype.checkInvalidValue = function (value) {\n var isInvalid = false;\n if (typeof value !== 'object' && !isNullOrUndefined(value)) {\n var valueString = value;\n if (typeof valueString === 'string') {\n valueString = valueString.trim();\n }\n var valueExpression = null;\n var valueExp = null;\n if (typeof value === 'number') {\n valueString = value.toString();\n }\n else if (typeof value === 'string') {\n if (!(/^[a-zA-Z0-9- ]*$/).test(value)) {\n valueExpression = this.setCurrentDate(this.getDateObject(value));\n if (isNullOrUndefined(valueExpression)) {\n valueExpression = this.checkDateValue(this.globalize.parseDate(valueString, {\n format: this.getCldrDateTimeFormat(), type: 'datetime'\n }));\n if (isNullOrUndefined(valueExpression)) {\n valueExpression = this.checkDateValue(this.globalize.parseDate(valueString, {\n format: this.formatString, type: 'dateTime', skeleton: 'yMd'\n }));\n }\n }\n }\n }\n valueExp = this.globalize.parseDate(valueString, {\n format: this.getCldrDateTimeFormat(), type: 'datetime'\n });\n valueExpression = (!isNullOrUndefined(valueExp) && valueExp instanceof Date && !isNaN(+valueExp)) ? valueExp : null;\n if (isNullOrUndefined(valueExpression) && valueString.replace(/\\s/g, '').length) {\n var extISOString = null;\n var basicISOString = null;\n // eslint-disable-next-line\n extISOString = /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?/;\n // eslint-disable-next-line\n basicISOString = /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?/;\n if ((!extISOString.test(valueString) && !basicISOString.test(valueString))\n || ((/^[a-zA-Z0-9- ]*$/).test(value)) || isNaN(+new Date('' + valueString))) {\n isInvalid = true;\n }\n else {\n valueExpression = new Date('' + valueString);\n }\n }\n if (isInvalid) {\n if (!this.strictMode) {\n this.invalidValueString = valueString;\n }\n this.setProperties({ value: null }, true);\n this.initValue = null;\n }\n else {\n this.setProperties({ value: valueExpression }, true);\n this.initValue = this.value;\n }\n }\n };\n TimePicker.prototype.requiredModules = function () {\n var modules = [];\n if (this.enableMask) {\n modules.push({ args: [this], member: 'MaskedDateTime' });\n }\n return modules;\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n TimePicker.prototype.cldrFormat = function (type) {\n var cldrDateTimeString;\n if (this.locale === 'en' || this.locale === 'en-US') {\n cldrDateTimeString = (getValue('timeFormats.short', getDefaultDateObject()));\n }\n else {\n cldrDateTimeString = (this.getCultureTimeObject(cldrData, '' + this.locale));\n }\n return cldrDateTimeString;\n };\n // destroy function\n TimePicker.prototype.destroy = function () {\n this.hide();\n this.unBindEvents();\n var ariaAttribute = {\n 'aria-autocomplete': 'list', 'tabindex': '0',\n 'aria-expanded': 'false', 'role': 'combobox', 'autocomplete': 'off',\n 'autocorrect': 'off', 'autocapitalize': 'off', 'spellcheck': 'false',\n 'aria-disabled': 'true', 'aria-invalid': 'false'\n };\n if (this.inputElement) {\n Input.removeAttributes(ariaAttribute, this.inputElement);\n if (this.angularTag === null) {\n this.inputWrapper.container.parentElement.appendChild(this.inputElement);\n }\n if (!isNullOrUndefined(this.cloneElement.getAttribute('tabindex'))) {\n this.inputElement.setAttribute('tabindex', this.tabIndex);\n }\n else {\n this.inputElement.removeAttribute('tabindex');\n }\n this.ensureInputAttribute();\n this.enableElement([this.inputElement]);\n this.inputElement.classList.remove('e-input');\n if (isNullOrUndefined(this.cloneElement.getAttribute('disabled'))) {\n Input.setEnabled(true, this.inputElement, this.floatLabelType);\n }\n }\n if (this.inputWrapper.container) {\n detach(this.inputWrapper.container);\n }\n this.inputWrapper = this.popupWrapper = this.cloneElement = undefined;\n this.liCollections = this.timeCollections = this.disableItemCollection = [];\n if (!isNullOrUndefined(this.rippleFn)) {\n this.rippleFn();\n }\n _super.prototype.destroy.call(this);\n if (this.formElement) {\n EventHandler.remove(this.formElement, 'reset', this.formResetHandler);\n }\n this.rippleFn = null;\n this.openPopupEventArgs = null;\n this.selectedElement = null;\n this.listTag = null;\n this.liCollections = null;\n };\n TimePicker.prototype.ensureInputAttribute = function () {\n var propertyList = [];\n for (var i = 0; i < this.inputElement.attributes.length; i++) {\n propertyList[i] = this.inputElement.attributes[i].name;\n }\n for (var i = 0; i < propertyList.length; i++) {\n if (!isNullOrUndefined(this.cloneElement.getAttribute(propertyList[i]))) {\n this.inputElement.setAttribute(propertyList[i], this.cloneElement.getAttribute(propertyList[i]));\n if (propertyList[i].toLowerCase() === 'value') {\n this.inputElement.value = this.cloneElement.getAttribute(propertyList[i]);\n }\n }\n else {\n this.inputElement.removeAttribute(propertyList[i]);\n if (propertyList[i].toLowerCase() === 'value') {\n this.inputElement.value = '';\n }\n }\n }\n };\n //popup creation\n TimePicker.prototype.popupCreation = function () {\n this.popupWrapper = this.createElement('div', {\n className: ROOT + ' ' + POPUP,\n attrs: { 'id': this.element.id + '_popup', 'style': 'visibility:hidden' }\n });\n if (!isNullOrUndefined(this.cssClass)) {\n this.popupWrapper.className += ' ' + this.cssClass;\n }\n if (!isNullOrUndefined(this.step) && this.step > 0) {\n this.generateList();\n append([this.listWrapper], this.popupWrapper);\n }\n this.addSelection();\n this.renderPopup();\n detach(this.popupWrapper);\n };\n TimePicker.prototype.getPopupHeight = function () {\n var height = parseInt(POPUPDIMENSION, 10);\n var popupHeight = this.popupWrapper.getBoundingClientRect().height;\n return popupHeight > height ? height : popupHeight;\n };\n TimePicker.prototype.generateList = function () {\n this.createListItems();\n this.wireListEvents();\n var rippleModel = { duration: 300, selector: '.' + LISTCLASS };\n this.rippleFn = rippleEffect(this.listWrapper, rippleModel);\n this.liCollections = this.listWrapper.querySelectorAll('.' + LISTCLASS);\n };\n TimePicker.prototype.renderPopup = function () {\n var _this = this;\n this.containerStyle = this.inputWrapper.container.getBoundingClientRect();\n this.popupObj = new Popup(this.popupWrapper, {\n width: this.setPopupWidth(this.width),\n zIndex: this.zIndex,\n targetType: 'relative',\n position: Browser.isDevice ? { X: 'center', Y: 'center' } : { X: 'left', Y: 'bottom' },\n collision: Browser.isDevice ? { X: 'fit', Y: 'fit' } : { X: 'flip', Y: 'flip' },\n enableRtl: this.enableRtl,\n relateTo: Browser.isDevice ? document.body : this.inputWrapper.container,\n offsetY: OFFSETVAL,\n open: function () {\n _this.popupWrapper.style.visibility = 'visible';\n addClass([_this.inputWrapper.buttons[0]], SELECTED);\n }, close: function () {\n removeClass([_this.inputWrapper.buttons[0]], SELECTED);\n _this.unWireListEvents();\n _this.inputElement.removeAttribute('aria-activedescendant');\n remove(_this.popupObj.element);\n _this.popupObj.destroy();\n _this.popupWrapper.innerHTML = '';\n _this.listWrapper = _this.popupWrapper = _this.listTag = undefined;\n }, targetExitViewport: function () {\n if (!Browser.isDevice) {\n _this.hide();\n }\n }\n });\n if (!Browser.isDevice) {\n this.popupObj.collision = { X: 'none', Y: 'flip' };\n }\n this.popupObj.element.style.maxHeight = POPUPDIMENSION;\n };\n //util function\n TimePicker.prototype.getFormattedValue = function (value) {\n if (isNullOrUndefined(this.checkDateValue(value))) {\n return null;\n }\n else {\n return this.globalize.formatDate(value, { skeleton: 'medium', type: 'time' });\n }\n };\n TimePicker.prototype.getDateObject = function (text) {\n if (!this.isNullOrEmpty(text)) {\n var dateValue = this.createDateObj(text);\n var value = !this.isNullOrEmpty(this.initValue);\n if (this.checkDateValue(dateValue)) {\n var date = value ? this.initValue.getDate() : DAY;\n var month = value ? this.initValue.getMonth() : MONTH;\n var year = value ? this.initValue.getFullYear() : YEAR;\n return new Date(year, month, date, dateValue.getHours(), dateValue.getMinutes(), dateValue.getSeconds());\n }\n }\n return null;\n };\n TimePicker.prototype.updateHtmlAttributeToWrapper = function () {\n if (!isNullOrUndefined(this.htmlAttributes)) {\n for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) {\n var key = _a[_i];\n if (wrapperAttributes.indexOf(key) > -1) {\n if (key === 'class') {\n var updatedClassesValue = (this.htmlAttributes[\"\" + key].replace(/\\s+/g, ' ')).trim();\n if (updatedClassesValue !== '') {\n addClass([this.inputWrapper.container], updatedClassesValue.split(' '));\n }\n }\n else if (key === 'style') {\n var timeStyle = this.inputWrapper.container.getAttribute(key);\n timeStyle = !isNullOrUndefined(timeStyle) ? (timeStyle + this.htmlAttributes[\"\" + key]) :\n this.htmlAttributes[\"\" + key];\n this.inputWrapper.container.setAttribute(key, timeStyle);\n }\n else {\n this.inputWrapper.container.setAttribute(key, this.htmlAttributes[\"\" + key]);\n }\n }\n }\n }\n };\n TimePicker.prototype.updateHtmlAttributeToElement = function () {\n if (!isNullOrUndefined(this.htmlAttributes)) {\n for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) {\n var key = _a[_i];\n if (wrapperAttributes.indexOf(key) < 0) {\n this.inputElement.setAttribute(key, this.htmlAttributes[\"\" + key]);\n }\n }\n }\n };\n TimePicker.prototype.updateCssClass = function (cssClassNew, cssClassOld) {\n if (!isNullOrUndefined(cssClassOld)) {\n cssClassOld = (cssClassOld.replace(/\\s+/g, ' ')).trim();\n }\n if (!isNullOrUndefined(cssClassNew)) {\n cssClassNew = (cssClassNew.replace(/\\s+/g, ' ')).trim();\n }\n Input.setCssClass(cssClassNew, [this.inputWrapper.container], cssClassOld);\n if (this.popupWrapper) {\n Input.setCssClass(cssClassNew, [this.popupWrapper], cssClassOld);\n }\n };\n TimePicker.prototype.removeErrorClass = function () {\n removeClass([this.inputWrapper.container], ERROR);\n attributes(this.inputElement, { 'aria-invalid': 'false' });\n };\n TimePicker.prototype.checkErrorState = function (val) {\n var value = this.getDateObject(val);\n if ((this.validateState(value) && !this.invalidValueString) ||\n (this.enableMask && this.inputElement.value === this.maskedDateValue)) {\n this.removeErrorClass();\n }\n else {\n addClass([this.inputWrapper.container], ERROR);\n attributes(this.inputElement, { 'aria-invalid': 'true' });\n }\n };\n TimePicker.prototype.validateInterval = function () {\n if (!isNullOrUndefined(this.step) && this.step > 0) {\n this.enableElement([this.inputWrapper.buttons[0]]);\n }\n else {\n this.disableTimeIcon();\n }\n };\n TimePicker.prototype.disableTimeIcon = function () {\n this.disableElement([this.inputWrapper.buttons[0]]);\n this.hide();\n };\n TimePicker.prototype.disableElement = function (element) {\n addClass(element, DISABLED);\n };\n TimePicker.prototype.enableElement = function (element) {\n removeClass(element, DISABLED);\n };\n TimePicker.prototype.selectInputText = function () {\n this.inputElement.setSelectionRange(0, (this.inputElement).value.length);\n };\n TimePicker.prototype.setCursorToEnd = function () {\n this.inputElement.setSelectionRange((this.inputElement).value.length, (this.inputElement).value.length);\n };\n TimePicker.prototype.getMeridianText = function () {\n var meridian;\n if (this.locale === 'en' || this.locale === 'en-US') {\n meridian = getValue('dayPeriods.format.wide', getDefaultDateObject());\n }\n else {\n var gregorianFormat = '.dates.calendars.gregorian.dayPeriods.format.abbreviated';\n var mainVal = 'main.';\n meridian = getValue(mainVal + '' + this.locale + gregorianFormat, cldrData);\n }\n return meridian;\n };\n TimePicker.prototype.getCursorSelection = function () {\n var input = (this.inputElement);\n var start = 0;\n var end = 0;\n if (!isNaN(input.selectionStart)) {\n start = input.selectionStart;\n end = input.selectionEnd;\n }\n return { start: Math.abs(start), end: Math.abs(end) };\n };\n TimePicker.prototype.getActiveElement = function () {\n if (!isNullOrUndefined(this.popupWrapper)) {\n return this.popupWrapper.querySelectorAll('.' + SELECTED);\n }\n else {\n return null;\n }\n };\n TimePicker.prototype.isNullOrEmpty = function (value) {\n if (isNullOrUndefined(value) || (typeof value === 'string' && value.trim() === '')) {\n return true;\n }\n else {\n return false;\n }\n };\n TimePicker.prototype.setWidth = function (width) {\n if (typeof width === 'number') {\n width = formatUnit(width);\n }\n else if (typeof width === 'string') {\n width = (width.match(/px|%|em/)) ? width : formatUnit(width);\n }\n else {\n width = '100%';\n }\n return width;\n };\n TimePicker.prototype.setPopupWidth = function (width) {\n width = this.setWidth(width);\n if (width.indexOf('%') > -1) {\n var inputWidth = this.containerStyle.width * parseFloat(width) / 100;\n width = inputWidth.toString() + 'px';\n }\n return width;\n };\n TimePicker.prototype.setScrollPosition = function () {\n var element = this.selectedElement;\n if (!isNullOrUndefined(element)) {\n this.findScrollTop(element);\n }\n else if (this.popupWrapper && this.checkDateValue(this.scrollTo)) {\n this.setScrollTo();\n }\n };\n TimePicker.prototype.findScrollTop = function (element) {\n var listHeight = this.getPopupHeight();\n var nextEle = element.nextElementSibling;\n var height = nextEle ? nextEle.offsetTop : element.offsetTop;\n var liHeight = element.getBoundingClientRect().height;\n if ((height + element.offsetTop) > listHeight) {\n this.popupWrapper.scrollTop = nextEle ? (height - (listHeight / HALFPOSITION + liHeight / HALFPOSITION)) : height;\n }\n else {\n this.popupWrapper.scrollTop = 0;\n }\n };\n TimePicker.prototype.setScrollTo = function () {\n var element;\n if (!isNullOrUndefined(this.popupWrapper)) {\n var items = this.popupWrapper.querySelectorAll('.' + LISTCLASS);\n if (items.length) {\n var initialTime = this.timeCollections[0];\n var scrollTime = this.getDateObject(this.checkDateValue(this.scrollTo)).getTime();\n element = items[Math.round((scrollTime - initialTime) / (this.step * 60000))];\n }\n }\n else {\n this.popupWrapper.scrollTop = 0;\n }\n if (!isNullOrUndefined(element)) {\n this.findScrollTop(element);\n }\n else {\n this.popupWrapper.scrollTop = 0;\n }\n };\n TimePicker.prototype.getText = function () {\n return (isNullOrUndefined(this.checkDateValue(this.value))) ? '' : this.getValue(this.value);\n };\n TimePicker.prototype.getValue = function (value) {\n return (isNullOrUndefined(this.checkDateValue(value))) ? null : this.globalize.formatDate(value, {\n format: this.cldrTimeFormat(), type: 'time'\n });\n };\n TimePicker.prototype.cldrDateFormat = function () {\n var cldrDate;\n if (this.locale === 'en' || this.locale === 'en-US') {\n cldrDate = (getValue('dateFormats.short', getDefaultDateObject()));\n }\n else {\n cldrDate = (this.getCultureDateObject(cldrData, '' + this.locale));\n }\n return cldrDate;\n };\n TimePicker.prototype.cldrTimeFormat = function () {\n var cldrTime;\n if (this.isNullOrEmpty(this.formatString)) {\n if (this.locale === 'en' || this.locale === 'en-US') {\n cldrTime = (getValue('timeFormats.short', getDefaultDateObject()));\n }\n else {\n cldrTime = (this.getCultureTimeObject(cldrData, '' + this.locale));\n }\n }\n else {\n cldrTime = this.formatString;\n }\n return cldrTime;\n };\n TimePicker.prototype.dateToNumeric = function () {\n var cldrTime;\n if (this.locale === 'en' || this.locale === 'en-US') {\n cldrTime = (getValue('timeFormats.medium', getDefaultDateObject()));\n }\n else {\n cldrTime = (getValue('main.' + '' + this.locale + '.dates.calendars.gregorian.timeFormats.medium', cldrData));\n }\n return cldrTime;\n };\n TimePicker.prototype.getExactDateTime = function (value) {\n if (isNullOrUndefined(this.checkDateValue(value))) {\n return null;\n }\n else {\n return this.globalize.formatDate(value, { format: this.dateToNumeric(), type: 'time' });\n }\n };\n TimePicker.prototype.setValue = function (value) {\n var time = this.checkValue(value);\n if (!this.strictMode && !this.validateState(time)) {\n if (this.checkDateValue(this.valueWithMinutes) === null) {\n this.initValue = this.valueWithMinutes = null;\n }\n this.validateMinMax(this.value, this.min, this.max);\n }\n else {\n if (this.isNullOrEmpty(time)) {\n this.initValue = null;\n this.validateMinMax(this.value, this.min, this.max);\n }\n else {\n this.initValue = this.compareFormatChange(time);\n }\n }\n this.updateInput(true, this.initValue);\n };\n TimePicker.prototype.compareFormatChange = function (value) {\n if (isNullOrUndefined(value)) {\n return null;\n }\n return (value !== this.getText()) ? this.getDateObject(value) : this.getDateObject(this.value);\n };\n TimePicker.prototype.updatePlaceHolder = function () {\n Input.setPlaceholder(this.l10n.getConstant('placeholder'), this.inputElement);\n };\n //event related functions\n TimePicker.prototype.updateInputValue = function (value) {\n Input.setValue(value, this.inputElement, this.floatLabelType, this.showClearButton);\n };\n TimePicker.prototype.preventEventBubbling = function (e) {\n e.preventDefault();\n this.interopAdaptor.invokeMethodAsync('OnTimeIconClick');\n };\n TimePicker.prototype.popupHandler = function (e) {\n if (!this.enabled) {\n return;\n }\n if (Browser.isDevice) {\n this.inputElement.setAttribute('readonly', '');\n }\n e.preventDefault();\n if (this.isPopupOpen()) {\n this.closePopup(0, e);\n }\n else {\n this.inputElement.focus();\n this.show(e);\n }\n };\n TimePicker.prototype.mouseDownHandler = function () {\n if (!this.enabled) {\n return;\n }\n if (!this.readonly) {\n this.inputElement.setSelectionRange(0, 0);\n EventHandler.add(this.inputElement, 'mouseup', this.mouseUpHandler, this);\n }\n };\n TimePicker.prototype.mouseUpHandler = function (event) {\n if (!this.readonly) {\n event.preventDefault();\n if (this.enableMask) {\n event.preventDefault();\n this.notify('setMaskSelection', {\n module: 'MaskedDateTime'\n });\n return;\n }\n else {\n EventHandler.remove(this.inputElement, 'mouseup', this.mouseUpHandler);\n var curPos = this.getCursorSelection();\n if (!(curPos.start === 0 && curPos.end === this.inputElement.value.length)) {\n if (this.inputElement.value.length > 0) {\n this.cursorDetails = this.focusSelection();\n }\n this.inputElement.setSelectionRange(this.cursorDetails.start, this.cursorDetails.end);\n }\n }\n }\n };\n TimePicker.prototype.focusSelection = function () {\n var regex = new RegExp('^[a-zA-Z0-9]+$');\n var split = this.inputElement.value.split('');\n split.push(' ');\n var curPos = this.getCursorSelection();\n var start = 0;\n var end = 0;\n var isSeparator = false;\n if (!this.isTextSelected) {\n for (var i = 0; i < split.length; i++) {\n if (!regex.test(split[i])) {\n end = i;\n isSeparator = true;\n }\n if (isSeparator) {\n if (curPos.start >= start && curPos.end <= end) {\n // eslint-disable-next-line no-self-assign\n end = end;\n this.isTextSelected = true;\n break;\n }\n else {\n start = i + 1;\n isSeparator = false;\n }\n }\n }\n }\n else {\n start = curPos.start;\n end = curPos.end;\n this.isTextSelected = false;\n }\n return { start: start, end: end };\n };\n TimePicker.prototype.inputHandler = function (event) {\n if (!this.readonly && this.enabled) {\n if (event.action !== 'right' && event.action !== 'left' && event.action !== 'tab') {\n event.preventDefault();\n }\n switch (event.action) {\n case 'home':\n case 'end':\n case 'up':\n case 'down':\n if (!this.isPopupOpen()) {\n this.popupCreation();\n this.popupObj.destroy();\n this.popupObj = this.popupWrapper = null;\n }\n if (this.enableMask && !this.readonly && !this.isPopupOpen()) {\n event.preventDefault();\n this.notify('keyDownHandler', {\n module: 'MaskedDateTime',\n e: event\n });\n }\n if (!this.enableMask || this.isPopupOpen()) {\n this.keyHandler(event);\n }\n break;\n case 'enter':\n if (this.isNavigate) {\n this.selectedElement = this.liCollections[this.activeIndex];\n this.valueWithMinutes = new Date(this.timeCollections[this.activeIndex]);\n this.updateValue(this.valueWithMinutes, event);\n }\n else {\n this.updateValue(this.inputElement.value, event);\n }\n this.hide();\n this.isNavigate = false;\n if (this.isPopupOpen()) {\n event.stopPropagation();\n }\n break;\n case 'open':\n this.show(event);\n break;\n case 'escape':\n this.updateInputValue(this.objToString(this.value));\n if (this.enableMask) {\n if (!this.value) {\n this.updateInputValue(this.maskedDateValue);\n }\n this.createMask();\n }\n this.previousState(this.value);\n this.hide();\n break;\n case 'close':\n this.hide();\n break;\n case 'right':\n case 'left':\n case 'tab':\n case 'shiftTab':\n if (!this.isPopupOpen() && this.enableMask && !this.readonly) {\n if ((this.inputElement.selectionStart === 0 && this.inputElement.selectionEnd === this.inputElement.value.length) ||\n (this.inputElement.selectionEnd !== this.inputElement.value.length && event.action === 'tab') ||\n (this.inputElement.selectionStart !== 0 && event.action === 'shiftTab') || (event.action === 'left' || event.action === 'right')) {\n event.preventDefault();\n }\n this.notify('keyDownHandler', { module: 'MaskedDateTime',\n e: event\n });\n }\n break;\n default:\n this.isNavigate = false;\n break;\n }\n }\n };\n TimePicker.prototype.onMouseClick = function (event) {\n var target = event.target;\n var li = this.selectedElement = closest(target, '.' + LISTCLASS);\n this.setSelection(li, event);\n if (li && li.classList.contains(LISTCLASS)) {\n this.hide();\n }\n };\n TimePicker.prototype.closePopup = function (delay, e) {\n var _this = this;\n if (this.isPopupOpen() && this.popupWrapper) {\n var args = {\n popup: this.popupObj,\n event: e || null,\n cancel: false,\n name: 'open'\n };\n removeClass([document.body], OVERFLOW);\n this.trigger('close', args, function (args) {\n if (!args.cancel) {\n var animModel = {\n name: 'FadeOut',\n duration: ANIMATIONDURATION,\n delay: delay ? delay : 0\n };\n _this.popupObj.hide(new Animation(animModel));\n removeClass([_this.inputWrapper.container], [ICONANIMATION]);\n attributes(_this.inputElement, { 'aria-expanded': 'false' });\n _this.inputElement.removeAttribute('aria-owns');\n _this.inputElement.removeAttribute('aria-activedescendant');\n EventHandler.remove(document, 'mousedown touchstart', _this.documentClickHandler);\n }\n if (Browser.isDevice && _this.modal) {\n _this.modal.style.display = 'none';\n _this.modal.outerHTML = '';\n _this.modal = null;\n }\n if (Browser.isDevice) {\n if (!isNullOrUndefined(_this.mobileTimePopupWrap)) {\n _this.mobileTimePopupWrap.remove();\n _this.mobileTimePopupWrap = null;\n }\n }\n if (Browser.isDevice && _this.allowEdit && !_this.readonly) {\n _this.inputElement.removeAttribute('readonly');\n }\n });\n }\n else {\n if (Browser.isDevice && this.allowEdit && !this.readonly) {\n this.inputElement.removeAttribute('readonly');\n }\n }\n };\n TimePicker.prototype.disposeServerPopup = function () {\n if (this.popupWrapper) {\n this.popupWrapper.style.visibility = 'hidden';\n this.popupWrapper.style.top = '-9999px';\n this.popupWrapper.style.left = '-9999px';\n this.popupWrapper.style.width = '0px';\n this.popupWrapper.style.height = '0px';\n }\n };\n TimePicker.prototype.checkValueChange = function (event, isNavigation) {\n if (!this.strictMode && !this.validateState(this.valueWithMinutes)) {\n if (this.checkDateValue(this.valueWithMinutes) === null) {\n this.initValue = this.valueWithMinutes = null;\n }\n this.setProperties({ value: this.compareFormatChange(this.inputElement.value) }, true);\n this.initValue = this.valueWithMinutes = this.compareFormatChange(this.inputElement.value);\n this.prevValue = this.inputElement.value;\n if (+this.prevDate !== +this.value) {\n this.changeEvent(event);\n }\n }\n else {\n if (!isNavigation) {\n if ((this.prevValue !== this.inputElement.value) || isNullOrUndefined(this.checkDateValue(this.value))) {\n this.valueProcess(event, this.compareFormatChange(this.inputElement.value));\n }\n }\n else {\n var value = this.getDateObject(new Date(this.timeCollections[this.activeIndex]));\n if (+this.prevDate !== +value) {\n this.valueProcess(event, value);\n }\n }\n }\n };\n TimePicker.prototype.onMouseOver = function (event) {\n var currentLi = closest(event.target, '.' + LISTCLASS);\n this.setHover(currentLi, HOVER);\n };\n TimePicker.prototype.setHover = function (li, className) {\n if (this.enabled && this.isValidLI(li) && !li.classList.contains(className)) {\n this.removeHover(className);\n addClass([li], className);\n if (className === NAVIGATION) {\n li.setAttribute('aria-selected', 'true');\n }\n }\n };\n TimePicker.prototype.setSelection = function (li, event) {\n if (this.isValidLI(li)) {\n this.checkValue(li.getAttribute('data-value'));\n if (this.enableMask) {\n this.createMask();\n }\n this.selectedElement = li;\n this.activeIndex = Array.prototype.slice.call(this.liCollections).indexOf(li);\n this.valueWithMinutes = new Date(this.timeCollections[this.activeIndex]);\n addClass([this.selectedElement], SELECTED);\n this.selectedElement.setAttribute('aria-selected', 'true');\n this.checkValueChange(event, true);\n }\n };\n TimePicker.prototype.onMouseLeave = function () {\n this.removeHover(HOVER);\n };\n TimePicker.prototype.scrollHandler = function () {\n if (this.getModuleName() === 'timepicker' && Browser.isDevice) {\n return;\n }\n else {\n this.hide();\n }\n };\n TimePicker.prototype.setMinMax = function (minVal, maxVal) {\n if (isNullOrUndefined(this.checkDateValue(minVal))) {\n this.initMin = this.getDateObject('12:00:00 AM');\n }\n if (isNullOrUndefined(this.checkDateValue(maxVal))) {\n this.initMax = this.getDateObject('11:59:59 PM');\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n TimePicker.prototype.validateMinMax = function (dateVal, minVal, maxVal) {\n var value = dateVal instanceof Date ? dateVal : this.getDateObject(dateVal);\n if (!isNullOrUndefined(this.checkDateValue(value))) {\n dateVal = this.strictOperation(this.initMin, this.initMax, dateVal, value);\n }\n else if (+(this.createDateObj(this.getFormattedValue(this.initMin))) >\n +(this.createDateObj(this.getFormattedValue(this.initMax)))) {\n this.disableTimeIcon();\n }\n if (this.strictMode) {\n dateVal = this.valueIsDisable(dateVal) ? dateVal : null;\n }\n this.checkErrorState(dateVal);\n return dateVal;\n };\n TimePicker.prototype.valueIsDisable = function (value) {\n if (this.disableItemCollection.length > 0) {\n if (this.disableItemCollection.length === this.timeCollections.length) {\n return false;\n }\n var time = value instanceof Date ? this.objToString(value) : value;\n for (var index = 0; index < this.disableItemCollection.length; index++) {\n if (time === this.disableItemCollection[index]) {\n return false;\n }\n }\n }\n return true;\n };\n TimePicker.prototype.validateState = function (val) {\n if (!this.strictMode) {\n if (this.valueIsDisable(val)) {\n var value = typeof val === 'string' ? this.setCurrentDate(this.getDateObject(val)) :\n this.setCurrentDate(this.getDateObject(val));\n var maxValue = this.setCurrentDate(this.getDateObject(this.initMax));\n var minValue = this.setCurrentDate(this.getDateObject(this.initMin));\n if (!isNullOrUndefined(this.checkDateValue(value))) {\n if ((+(value) > +(maxValue)) || (+(value) < +(minValue))) {\n return false;\n }\n }\n else {\n if ((+(maxValue) < +(minValue)) || this.inputElement.value !== '') {\n return false;\n }\n }\n }\n else {\n return false;\n }\n }\n return true;\n };\n TimePicker.prototype.strictOperation = function (minimum, maximum, dateVal, val) {\n var maxValue = this.createDateObj(this.getFormattedValue(maximum));\n var minValue = this.createDateObj(this.getFormattedValue(minimum));\n var value = this.createDateObj(this.getFormattedValue(val));\n if (this.strictMode) {\n if (+minValue > +maxValue) {\n this.disableTimeIcon();\n this.initValue = this.getDateObject(maxValue);\n this.updateInputValue(this.getValue(this.initValue));\n if (this.enableMask) {\n this.createMask();\n }\n return this.inputElement.value;\n }\n else if (+minValue >= +value) {\n return this.getDateObject(minValue);\n }\n else if (+value >= +maxValue || +minValue === +maxValue) {\n return this.getDateObject(maxValue);\n }\n }\n else {\n if (+minValue > +maxValue) {\n this.disableTimeIcon();\n if (!isNaN(+this.createDateObj(dateVal))) {\n return dateVal;\n }\n }\n }\n return dateVal;\n };\n TimePicker.prototype.bindEvents = function () {\n EventHandler.add(this.inputWrapper.buttons[0], 'mousedown', this.popupHandler, this);\n EventHandler.add(this.inputElement, 'blur', this.inputBlurHandler, this);\n EventHandler.add(this.inputElement, 'focus', this.inputFocusHandler, this);\n EventHandler.add(this.inputElement, 'change', this.inputChangeHandler, this);\n EventHandler.add(this.inputElement, 'input', this.inputEventHandler, this);\n if (this.enableMask) {\n EventHandler.add(this.inputElement, 'keydown', this.keydownHandler, this);\n }\n if (this.showClearButton && this.inputWrapper.clearButton) {\n EventHandler.add(this.inputWrapper.clearButton, 'mousedown', this.clearHandler, this);\n }\n if (this.formElement) {\n EventHandler.add(this.formElement, 'reset', this.formResetHandler, this);\n }\n if (!Browser.isDevice) {\n this.keyConfigure = extend(this.keyConfigure, this.keyConfigs);\n this.inputEvent = new KeyboardEvents(this.inputWrapper.container, {\n keyAction: this.inputHandler.bind(this),\n keyConfigs: this.keyConfigure,\n eventName: 'keydown'\n });\n if (this.showClearButton && this.inputElement) {\n EventHandler.add(this.inputElement, 'mousedown', this.mouseDownHandler, this);\n }\n }\n };\n TimePicker.prototype.keydownHandler = function (e) {\n switch (e.code) {\n case 'Delete':\n if (this.enableMask && !this.popupObj && !this.readonly) {\n this.notify('keyDownHandler', {\n module: 'MaskedDateTime',\n e: e\n });\n }\n break;\n default:\n break;\n }\n };\n TimePicker.prototype.formResetHandler = function () {\n if (!this.enabled) {\n return;\n }\n if (!this.inputElement.disabled) {\n var timeValue = this.inputElement.getAttribute('value');\n var val = this.checkDateValue(this.inputEleValue);\n if (this.element.tagName === 'EJS-TIMEPICKER') {\n val = null;\n timeValue = '';\n this.inputElement.setAttribute('value', '');\n }\n this.setProperties({ value: val }, true);\n this.prevDate = this.value;\n this.valueWithMinutes = this.value;\n this.initValue = this.value;\n if (this.inputElement) {\n this.updateInputValue(timeValue);\n if (this.enableMask) {\n if (!timeValue) {\n this.updateInputValue(this.maskedDateValue);\n }\n this.createMask();\n }\n this.checkErrorState(timeValue);\n this.prevValue = this.inputElement.value;\n }\n }\n };\n TimePicker.prototype.inputChangeHandler = function (e) {\n if (!this.enabled) {\n return;\n }\n e.stopPropagation();\n };\n TimePicker.prototype.inputEventHandler = function () {\n if (this.enableMask) {\n this.notify('inputHandler', {\n module: 'MaskedDateTime'\n });\n }\n };\n TimePicker.prototype.unBindEvents = function () {\n if (this.inputWrapper) {\n EventHandler.remove(this.inputWrapper.buttons[0], 'mousedown touchstart', this.popupHandler);\n }\n EventHandler.remove(this.inputElement, 'blur', this.inputBlurHandler);\n EventHandler.remove(this.inputElement, 'focus', this.inputFocusHandler);\n EventHandler.remove(this.inputElement, 'change', this.inputChangeHandler);\n EventHandler.remove(this.inputElement, 'input', this.inputEventHandler);\n if (this.inputEvent) {\n this.inputEvent.destroy();\n }\n EventHandler.remove(this.inputElement, 'mousedown touchstart', this.mouseDownHandler);\n if (this.showClearButton && !isNullOrUndefined(this.inputWrapper) && !isNullOrUndefined(this.inputWrapper.clearButton)) {\n EventHandler.remove(this.inputWrapper.clearButton, 'mousedown touchstart', this.clearHandler);\n }\n if (this.formElement) {\n EventHandler.remove(this.formElement, 'reset', this.formResetHandler);\n }\n };\n TimePicker.prototype.bindClearEvent = function () {\n if (this.showClearButton && this.inputWrapper.clearButton) {\n EventHandler.add(this.inputWrapper.clearButton, 'mousedown', this.clearHandler, this);\n }\n };\n TimePicker.prototype.raiseClearedEvent = function (e) {\n var clearedArgs = {\n event: e\n };\n this.trigger('cleared', clearedArgs);\n };\n TimePicker.prototype.clearHandler = function (e) {\n if (!this.enabled) {\n return;\n }\n e.preventDefault();\n if (!isNullOrUndefined(this.value)) {\n this.clear(e);\n }\n else {\n this.resetState();\n this.raiseClearedEvent(e);\n }\n if (this.popupWrapper) {\n this.popupWrapper.scrollTop = 0;\n }\n if (this.enableMask) {\n this.notify('clearHandler', {\n module: 'MaskedDateTime'\n });\n }\n if (closest(this.element, 'form')) {\n var element = this.element;\n var keyupEvent = document.createEvent('KeyboardEvent');\n keyupEvent.initEvent('keyup', false, true);\n element.dispatchEvent(keyupEvent);\n }\n };\n TimePicker.prototype.clear = function (event) {\n this.setProperties({ value: null }, true);\n this.initValue = null;\n this.resetState();\n this.raiseClearedEvent(event);\n this.changeEvent(event);\n };\n TimePicker.prototype.setZIndex = function () {\n if (this.popupObj) {\n this.popupObj.zIndex = this.zIndex;\n this.popupObj.dataBind();\n }\n };\n TimePicker.prototype.checkAttributes = function (isDynamic) {\n var attributes = isDynamic ? isNullOrUndefined(this.htmlAttributes) ? [] : Object.keys(this.htmlAttributes) :\n ['step', 'disabled', 'readonly', 'style', 'name', 'value', 'min', 'max', 'placeholder'];\n var value;\n for (var _i = 0, attributes_1 = attributes; _i < attributes_1.length; _i++) {\n var prop = attributes_1[_i];\n if (!isNullOrUndefined(this.inputElement.getAttribute(prop))) {\n switch (prop) {\n case 'disabled':\n if ((isNullOrUndefined(this.timeOptions) || (this.timeOptions['enabled'] === undefined)) || isDynamic) {\n var enabled = this.inputElement.getAttribute(prop) === 'disabled' ||\n this.inputElement.getAttribute(prop) === '' || this.inputElement.getAttribute(prop) === 'true' ? false : true;\n this.setProperties({ enabled: enabled }, !isDynamic);\n }\n break;\n case 'style':\n this.inputStyle = this.inputElement.getAttribute(prop);\n break;\n case 'readonly':\n if ((isNullOrUndefined(this.timeOptions) || (this.timeOptions['readonly'] === undefined)) || isDynamic) {\n var readonly = this.inputElement.getAttribute(prop) === 'readonly' ||\n this.inputElement.getAttribute(prop) === '' || this.inputElement.getAttribute(prop) === 'true' ? true : false;\n this.setProperties({ readonly: readonly }, !isDynamic);\n }\n break;\n case 'name':\n this.inputElement.setAttribute('name', this.inputElement.getAttribute(prop));\n break;\n case 'step':\n this.step = parseInt(this.inputElement.getAttribute(prop), 10);\n break;\n case 'placeholder':\n if ((isNullOrUndefined(this.timeOptions) || (this.timeOptions['placeholder'] === undefined)) || isDynamic) {\n this.setProperties({ placeholder: this.inputElement.getAttribute(prop) }, !isDynamic);\n }\n break;\n case 'min':\n if ((isNullOrUndefined(this.timeOptions) || (this.timeOptions['min'] === undefined)) || isDynamic) {\n value = new Date(this.inputElement.getAttribute(prop));\n if (!isNullOrUndefined(this.checkDateValue(value))) {\n this.setProperties({ min: value }, !isDynamic);\n }\n }\n break;\n case 'max':\n if ((isNullOrUndefined(this.timeOptions) || (this.timeOptions['max'] === undefined)) || isDynamic) {\n value = new Date(this.inputElement.getAttribute(prop));\n if (!isNullOrUndefined(this.checkDateValue(value))) {\n this.setProperties({ max: value }, !isDynamic);\n }\n }\n break;\n case 'value':\n if ((isNullOrUndefined(this.timeOptions) || (this.timeOptions['value'] === undefined)) || isDynamic) {\n value = new Date(this.inputElement.getAttribute(prop));\n if (!isNullOrUndefined(this.checkDateValue(value))) {\n this.initValue = value;\n this.updateInput(false, this.initValue);\n this.setProperties({ value: value }, !isDynamic);\n }\n }\n break;\n }\n }\n }\n };\n TimePicker.prototype.setCurrentDate = function (value) {\n if (isNullOrUndefined(this.checkDateValue(value))) {\n return null;\n }\n return new Date(YEAR, MONTH, DAY, value.getHours(), value.getMinutes(), value.getSeconds());\n };\n TimePicker.prototype.getTextFormat = function () {\n var time = 0;\n if (this.cldrTimeFormat().split(' ')[0] === 'a' || this.cldrTimeFormat().indexOf('a') === 0) {\n time = 1;\n }\n else if (this.cldrTimeFormat().indexOf('a') < 0) {\n var strArray = this.cldrTimeFormat().split(' ');\n for (var i = 0; i < strArray.length; i++) {\n if (strArray[i].toLowerCase().indexOf('h') >= 0) {\n time = i;\n break;\n }\n }\n }\n return time;\n };\n TimePicker.prototype.updateValue = function (value, event) {\n var val;\n if (this.isNullOrEmpty(value)) {\n this.resetState();\n }\n else {\n val = this.checkValue(value);\n if (this.strictMode) {\n // this case set previous value to the text box when set invalid date\n var inputVal = (val === null && value.trim().length > 0) ?\n this.previousState(this.prevDate) : this.inputElement.value;\n this.updateInputValue(inputVal);\n if (this.enableMask) {\n if (!inputVal) {\n this.updateInputValue(this.maskedDateValue);\n }\n if (isNullOrUndefined(val) && value !== this.maskedDateValue) {\n this.createMask();\n }\n if (isNullOrUndefined(val) && value === this.maskedDateValue) {\n this.updateInputValue(this.maskedDateValue);\n }\n }\n }\n }\n this.checkValueChange(event, typeof value === 'string' ? false : true);\n };\n TimePicker.prototype.previousState = function (date) {\n var value = this.getDateObject(date);\n for (var i = 0; i < this.timeCollections.length; i++) {\n if (+value === this.timeCollections[i]) {\n this.activeIndex = i;\n this.selectedElement = this.liCollections[i];\n this.valueWithMinutes = new Date(this.timeCollections[i]);\n break;\n }\n }\n return this.prevValue;\n };\n TimePicker.prototype.resetState = function () {\n this.removeSelection();\n Input.setValue('', this.inputElement, this.floatLabelType, false);\n this.valueWithMinutes = this.activeIndex = null;\n if (!this.strictMode) {\n this.checkErrorState(null);\n }\n };\n TimePicker.prototype.objToString = function (val) {\n if (isNullOrUndefined(this.checkDateValue(val))) {\n return null;\n }\n else {\n return this.globalize.formatDate(val, { format: this.cldrTimeFormat(), type: 'time' });\n }\n };\n TimePicker.prototype.checkValue = function (value) {\n if (!this.isNullOrEmpty(value)) {\n var date = value instanceof Date ? value : this.getDateObject(value);\n return this.validateValue(date, value);\n }\n this.resetState();\n return this.valueWithMinutes = null;\n };\n TimePicker.prototype.validateValue = function (date, value) {\n var time;\n var val = this.validateMinMax(value, this.min, this.max);\n var newval = this.createDateObj(val);\n if (this.getFormattedValue(newval) !== this.getFormattedValue(this.value)) {\n this.valueWithMinutes = isNullOrUndefined(newval) ? null : newval;\n time = this.objToString(this.valueWithMinutes);\n }\n else {\n if (this.strictMode) {\n //for strict mode case, when value not present within a range. Reset the nearest range value.\n date = newval;\n }\n this.valueWithMinutes = this.checkDateValue(date);\n time = this.objToString(this.valueWithMinutes);\n }\n if (!this.strictMode && isNullOrUndefined(time)) {\n var value_1 = val.trim().length > 0 ? val : '';\n this.updateInputValue(value_1);\n if (this.enableMask) {\n if (!value_1) {\n this.updateInputValue(this.maskedDateValue);\n }\n }\n }\n else {\n this.updateInputValue(time);\n if (this.enableMask) {\n if (time === '') {\n this.updateInputValue(this.maskedDateValue);\n }\n if (isNullOrUndefined(time) && value !== this.maskedDateValue) {\n this.createMask();\n }\n if (isNullOrUndefined(time) && value === this.maskedDateValue) {\n this.updateInputValue(this.maskedDateValue);\n }\n }\n }\n return time;\n };\n TimePicker.prototype.createMask = function () {\n this.notify('createMask', {\n module: 'MaskedDateTime'\n });\n };\n TimePicker.prototype.findNextElement = function (event) {\n var textVal = (this.inputElement).value;\n var value = isNullOrUndefined(this.valueWithMinutes) ? this.createDateObj(textVal) :\n this.getDateObject(this.valueWithMinutes);\n var timeVal = null;\n var count = this.liCollections.length;\n var collections = this.timeCollections;\n if (!isNullOrUndefined(this.checkDateValue(value)) || !isNullOrUndefined(this.activeIndex)) {\n if (event.action === 'home') {\n var index = this.validLiElement(0);\n timeVal = +(this.createDateObj(new Date(this.timeCollections[index])));\n this.activeIndex = index;\n }\n else if (event.action === 'end') {\n var index = this.validLiElement(collections.length - 1, true);\n timeVal = +(this.createDateObj(new Date(this.timeCollections[index])));\n this.activeIndex = index;\n }\n else {\n if (event.action === 'down') {\n for (var i = 0; i < count; i++) {\n if (+value < this.timeCollections[i]) {\n var index = this.validLiElement(i);\n timeVal = +(this.createDateObj(new Date(this.timeCollections[index])));\n this.activeIndex = index;\n break;\n }\n else if (i === count - 1) {\n var index = this.validLiElement(0);\n timeVal = +(this.createDateObj(new Date(this.timeCollections[index])));\n this.activeIndex = index;\n break;\n }\n }\n }\n else {\n for (var i = count - 1; i >= 0; i--) {\n if (+value > this.timeCollections[i]) {\n var index = this.validLiElement(i, true);\n timeVal = +(this.createDateObj(new Date(this.timeCollections[index])));\n this.activeIndex = index;\n break;\n }\n else if (i === 0) {\n var index = this.validLiElement(count - 1);\n timeVal = +(this.createDateObj(new Date(this.timeCollections[index])));\n this.activeIndex = index;\n break;\n }\n }\n }\n }\n this.selectedElement = this.liCollections[this.activeIndex];\n this.elementValue(isNullOrUndefined(timeVal) ? null : new Date(timeVal));\n }\n else {\n this.selectNextItem(event);\n }\n };\n TimePicker.prototype.selectNextItem = function (event) {\n var index = this.validLiElement(0, event.action === 'down' ? false : true);\n this.activeIndex = index;\n this.selectedElement = this.liCollections[index];\n this.elementValue(new Date(this.timeCollections[index]));\n };\n TimePicker.prototype.elementValue = function (value) {\n if (!isNullOrUndefined(this.checkDateValue(value))) {\n this.checkValue(value);\n }\n };\n TimePicker.prototype.validLiElement = function (index, backward) {\n var elementIndex = null;\n var items = isNullOrUndefined(this.popupWrapper) ? this.liCollections :\n this.popupWrapper.querySelectorAll('.' + LISTCLASS);\n var isCheck = true;\n if (items.length) {\n if (backward) {\n for (var i = index; i >= 0; i--) {\n if (!items[i].classList.contains(DISABLED)) {\n elementIndex = i;\n break;\n }\n else if (i === 0) {\n if (isCheck) {\n index = i = items.length;\n isCheck = false;\n }\n }\n }\n }\n else {\n for (var i = index; i <= items.length - 1; i++) {\n if (!items[i].classList.contains(DISABLED)) {\n elementIndex = i;\n break;\n }\n else if (i === items.length - 1) {\n if (isCheck) {\n index = i = -1;\n isCheck = false;\n }\n }\n }\n }\n }\n return elementIndex;\n };\n TimePicker.prototype.keyHandler = function (event) {\n if (isNullOrUndefined(this.step) || this.step <= 0 || !isNullOrUndefined(this.inputWrapper)\n && this.inputWrapper.buttons[0].classList.contains(DISABLED)) {\n return;\n }\n var count = this.timeCollections.length;\n if (isNullOrUndefined(this.getActiveElement()) || this.getActiveElement().length === 0) {\n if (this.liCollections.length > 0) {\n if (isNullOrUndefined(this.value) && isNullOrUndefined(this.activeIndex)) {\n var index = this.validLiElement(0, event.action === 'down' ? false : true);\n this.activeIndex = index;\n this.selectedElement = this.liCollections[index];\n this.elementValue(new Date(this.timeCollections[index]));\n }\n else {\n this.findNextElement(event);\n }\n }\n else {\n this.findNextElement(event);\n }\n }\n else {\n var nextItem = void 0;\n if ((event.keyCode >= 37) && (event.keyCode <= 40)) {\n var index = (event.keyCode === 40 || event.keyCode === 39) ? ++this.activeIndex : --this.activeIndex;\n this.activeIndex = index = this.activeIndex === (count) ? 0 : this.activeIndex;\n this.activeIndex = index = this.activeIndex < 0 ? (count - 1) : this.activeIndex;\n this.activeIndex = index = this.validLiElement(this.activeIndex, (event.keyCode === 40 || event.keyCode === 39) ?\n false : true);\n nextItem = isNullOrUndefined(this.timeCollections[index]) ?\n this.timeCollections[0] : this.timeCollections[index];\n }\n else if (event.action === 'home') {\n var index = this.validLiElement(0);\n this.activeIndex = index;\n nextItem = this.timeCollections[index];\n }\n else if (event.action === 'end') {\n var index = this.validLiElement(count - 1, true);\n this.activeIndex = index;\n nextItem = this.timeCollections[index];\n }\n this.selectedElement = this.liCollections[this.activeIndex];\n this.elementValue(new Date(nextItem));\n }\n this.isNavigate = true;\n this.setHover(this.selectedElement, NAVIGATION);\n this.setActiveDescendant();\n this.selectInputText();\n if (this.isPopupOpen() && this.selectedElement !== null && (!event || event.type !== 'click')) {\n this.setScrollPosition();\n }\n };\n TimePicker.prototype.getCultureTimeObject = function (ld, c) {\n return getValue('main.' + c + '.dates.calendars.gregorian.timeFormats.short', ld);\n };\n TimePicker.prototype.getCultureDateObject = function (ld, c) {\n return getValue('main.' + c + '.dates.calendars.gregorian.dateFormats.short', ld);\n };\n TimePicker.prototype.wireListEvents = function () {\n EventHandler.add(this.listWrapper, 'click', this.onMouseClick, this);\n if (!Browser.isDevice) {\n EventHandler.add(this.listWrapper, 'mouseover', this.onMouseOver, this);\n EventHandler.add(this.listWrapper, 'mouseout', this.onMouseLeave, this);\n }\n };\n TimePicker.prototype.unWireListEvents = function () {\n if (this.listWrapper) {\n EventHandler.remove(this.listWrapper, 'click', this.onMouseClick);\n if (!Browser.isDevice) {\n EventHandler.remove(this.listWrapper, 'mouseover', this.onMouseOver);\n EventHandler.remove(this.listWrapper, 'mouseout', this.onMouseLeave);\n }\n }\n };\n TimePicker.prototype.valueProcess = function (event, value) {\n var result = (isNullOrUndefined(this.checkDateValue(value))) ? null : value;\n if (+this.prevDate !== +result) {\n this.initValue = result;\n this.changeEvent(event);\n }\n };\n TimePicker.prototype.changeEvent = function (e) {\n this.addSelection();\n this.updateInput(true, this.initValue);\n var eventArgs = {\n event: (e || null),\n value: this.value,\n text: (this.inputElement).value,\n isInteracted: !isNullOrUndefined(e),\n element: this.element\n };\n eventArgs.value = this.valueWithMinutes || this.getDateObject(this.inputElement.value);\n this.prevDate = this.valueWithMinutes || this.getDateObject(this.inputElement.value);\n if (this.isAngular && this.preventChange) {\n this.preventChange = false;\n }\n else {\n this.trigger('change', eventArgs);\n }\n this.invalidValueString = null;\n this.checkErrorState(this.value);\n };\n TimePicker.prototype.updateInput = function (isUpdate, date) {\n if (isUpdate) {\n this.prevValue = this.getValue(date);\n }\n this.prevDate = this.valueWithMinutes = date;\n if ((typeof date !== 'number') || (this.value && +new Date(+this.value).setMilliseconds(0)) !== +date) {\n this.setProperties({ value: date }, true);\n if (this.enableMask) {\n this.createMask();\n }\n }\n if (!this.strictMode && isNullOrUndefined(this.value) && this.invalidValueString) {\n this.checkErrorState(this.invalidValueString);\n this.updateInputValue(this.invalidValueString);\n }\n this.clearIconState();\n };\n TimePicker.prototype.setActiveDescendant = function () {\n if (!isNullOrUndefined(this.selectedElement) && this.value) {\n attributes(this.inputElement, { 'aria-activedescendant': this.selectedElement.getAttribute('id') });\n }\n else {\n this.inputElement.removeAttribute('aria-activedescendant');\n }\n };\n TimePicker.prototype.removeSelection = function () {\n this.removeHover(HOVER);\n if (!isNullOrUndefined(this.popupWrapper)) {\n var items = this.popupWrapper.querySelectorAll('.' + SELECTED);\n if (items.length) {\n removeClass(items, SELECTED);\n items[0].removeAttribute('aria-selected');\n }\n }\n };\n TimePicker.prototype.removeHover = function (className) {\n var hoveredItem = this.getHoverItem(className);\n if (hoveredItem && hoveredItem.length) {\n removeClass(hoveredItem, className);\n if (className === NAVIGATION) {\n hoveredItem[0].removeAttribute('aria-selected');\n }\n }\n };\n TimePicker.prototype.getHoverItem = function (className) {\n var hoveredItem;\n if (!isNullOrUndefined(this.popupWrapper)) {\n hoveredItem = this.popupWrapper.querySelectorAll('.' + className);\n }\n return hoveredItem;\n };\n TimePicker.prototype.setActiveClass = function () {\n if (!isNullOrUndefined(this.popupWrapper)) {\n var items = this.popupWrapper.querySelectorAll('.' + LISTCLASS);\n if (items.length) {\n for (var i = 0; i < items.length; i++) {\n if ((this.timeCollections[i] === +this.getDateObject(this.valueWithMinutes))) {\n items[i].setAttribute('aria-selected', 'true');\n this.selectedElement = items[i];\n this.activeIndex = i;\n break;\n }\n }\n }\n }\n };\n TimePicker.prototype.addSelection = function () {\n this.selectedElement = null;\n this.removeSelection();\n this.setActiveClass();\n if (!isNullOrUndefined(this.selectedElement)) {\n addClass([this.selectedElement], SELECTED);\n this.selectedElement.setAttribute('aria-selected', 'true');\n }\n };\n TimePicker.prototype.isValidLI = function (li) {\n return (li && li.classList.contains(LISTCLASS) && !li.classList.contains(DISABLED));\n };\n TimePicker.prototype.createDateObj = function (val) {\n var formatStr = null;\n var today = this.globalize.formatDate(new Date(), { format: formatStr, skeleton: 'short', type: 'date' });\n var value = null;\n if (typeof val === 'string') {\n if (val.toUpperCase().indexOf('AM') > -1 || val.toUpperCase().indexOf('PM') > -1) {\n today = this.defaultCulture.formatDate(new Date(), { format: formatStr, skeleton: 'short', type: 'date' });\n value = isNaN(+new Date(today + ' ' + val)) ? null : new Date(new Date(today + ' ' + val).setMilliseconds(0));\n if (isNullOrUndefined(value)) {\n value = this.timeParse(today, val);\n }\n }\n else {\n value = this.timeParse(today, val);\n }\n }\n else if (val instanceof Date) {\n value = val;\n }\n return value;\n };\n TimePicker.prototype.timeParse = function (today, val) {\n var value;\n value = this.globalize.parseDate(today + ' ' + val, {\n format: this.cldrDateFormat() + ' ' + this.cldrTimeFormat(), type: 'datetime'\n });\n value = isNullOrUndefined(value) ? this.globalize.parseDate(today + ' ' + val, {\n format: this.cldrDateFormat() + ' ' + this.dateToNumeric(), type: 'datetime'\n }) : value;\n value = isNullOrUndefined(value) ? value : new Date(value.setMilliseconds(0));\n return value;\n };\n TimePicker.prototype.createListItems = function () {\n var _this = this;\n this.listWrapper = this.createElement('div', { className: CONTENT, attrs: { 'tabindex': '-1' } });\n var start;\n var interval = this.step * 60000;\n var listItems = [];\n this.timeCollections = [];\n this.disableItemCollection = [];\n start = +(this.getDateObject(this.initMin).setMilliseconds(0));\n var end = +(this.getDateObject(this.initMax).setMilliseconds(0));\n while (end >= start) {\n this.timeCollections.push(start);\n listItems.push(this.globalize.formatDate(new Date(start), { format: this.cldrTimeFormat(), type: 'time' }));\n start += interval;\n }\n var listBaseOptions = {\n itemCreated: function (args) {\n var eventArgs = {\n element: args.item,\n text: args.text, value: _this.getDateObject(args.text), isDisabled: false\n };\n _this.trigger('itemRender', eventArgs, function (eventArgs) {\n if (eventArgs.isDisabled) {\n eventArgs.element.classList.add(DISABLED);\n }\n if (eventArgs.element.classList.contains(DISABLED)) {\n _this.disableItemCollection.push(eventArgs.element.getAttribute('data-value'));\n }\n });\n }\n };\n this.listTag = ListBase.createList(this.createElement, listItems, listBaseOptions, true);\n attributes(this.listTag, { 'role': 'listbox', 'aria-hidden': 'false', 'id': this.element.id + '_options', 'tabindex': '0' });\n append([this.listTag], this.listWrapper);\n };\n TimePicker.prototype.documentClickHandler = function (event) {\n var target = event.target;\n if ((!isNullOrUndefined(this.popupObj) && !isNullOrUndefined(this.inputWrapper) && (this.inputWrapper.container.contains(target) && event.type !== 'mousedown' ||\n (this.popupObj.element && this.popupObj.element.contains(target)))) && event.type !== 'touchstart') {\n event.preventDefault();\n }\n if (!(closest(target, '[id=\"' + this.popupObj.element.id + '\"]')) && target !== this.inputElement\n && target !== (this.inputWrapper && this.inputWrapper.buttons[0]) &&\n target !== (this.inputWrapper && this.inputWrapper.clearButton) &&\n target !== (this.inputWrapper && this.inputWrapper.container)) {\n if (this.isPopupOpen()) {\n this.hide();\n this.focusOut();\n }\n }\n else if (target !== this.inputElement) {\n if (!Browser.isDevice) {\n this.isPreventBlur = (Browser.isIE || Browser.info.name === 'edge') && (document.activeElement === this.inputElement)\n && (target === this.popupWrapper);\n }\n }\n };\n TimePicker.prototype.setEnableRtl = function () {\n Input.setEnableRtl(this.enableRtl, [this.inputWrapper.container]);\n if (this.popupObj) {\n this.popupObj.enableRtl = this.enableRtl;\n this.popupObj.dataBind();\n }\n };\n TimePicker.prototype.setEnable = function () {\n Input.setEnabled(this.enabled, this.inputElement, this.floatLabelType);\n if (this.enabled) {\n removeClass([this.inputWrapper.container], DISABLED);\n attributes(this.inputElement, { 'aria-disabled': 'false' });\n this.inputElement.setAttribute('tabindex', this.tabIndex);\n }\n else {\n this.hide();\n addClass([this.inputWrapper.container], DISABLED);\n attributes(this.inputElement, { 'aria-disabled': 'true' });\n this.inputElement.tabIndex = -1;\n }\n };\n TimePicker.prototype.getProperty = function (date, val) {\n if (val === 'min') {\n this.initMin = this.checkDateValue(new Date(this.checkInValue(date.min)));\n this.setProperties({ min: this.initMin }, true);\n }\n else {\n this.initMax = this.checkDateValue(new Date(this.checkInValue(date.max)));\n this.setProperties({ max: this.initMax }, true);\n }\n if (this.inputElement.value === '') {\n this.validateMinMax(this.value, this.min, this.max);\n }\n else {\n this.checkValue(this.inputElement.value);\n }\n this.checkValueChange(null, false);\n };\n TimePicker.prototype.inputBlurHandler = function (e) {\n if (!this.enabled) {\n return;\n }\n // IE popup closing issue when click over the scrollbar\n if (this.isPreventBlur && this.isPopupOpen()) {\n this.inputElement.focus();\n return;\n }\n this.closePopup(0, e);\n if (this.enableMask && this.maskedDateValue && this.placeholder && this.floatLabelType !== 'Always') {\n if (this.inputElement.value === this.maskedDateValue && !this.value && (this.floatLabelType === 'Auto' || this.floatLabelType === 'Never' || this.placeholder)) {\n this.updateInputValue('');\n }\n }\n removeClass([this.inputWrapper.container], [FOCUS]);\n var blurArguments = {\n model: this\n };\n this.trigger('blur', blurArguments);\n if (this.getText() !== this.inputElement.value) {\n this.updateValue((this.inputElement).value, e);\n }\n else if (this.inputElement.value.trim().length === 0) {\n this.resetState();\n }\n this.cursorDetails = null;\n this.isNavigate = false;\n if (this.inputElement.value === '') {\n this.invalidValueString = null;\n }\n };\n /**\n * Focuses out the TimePicker textbox element.\n *\n * @returns {void}\n */\n TimePicker.prototype.focusOut = function () {\n if (document.activeElement === this.inputElement) {\n this.inputElement.blur();\n removeClass([this.inputWrapper.container], [FOCUS]);\n var blurArguments = {\n model: this\n };\n this.trigger('blur', blurArguments);\n }\n };\n TimePicker.prototype.isPopupOpen = function () {\n if (this.popupWrapper && this.popupWrapper.classList.contains('' + ROOT)) {\n return true;\n }\n return false;\n };\n TimePicker.prototype.inputFocusHandler = function () {\n if (!this.enabled) {\n return;\n }\n var focusArguments = {\n model: this\n };\n if (!this.readonly && !Browser.isDevice && !this.enableMask) {\n this.selectInputText();\n }\n if (this.enableMask && !this.inputElement.value && this.placeholder) {\n if (this.maskedDateValue && !this.value && (this.floatLabelType === 'Auto' || this.floatLabelType === 'Never' || this.placeholder)) {\n this.updateInputValue(this.maskedDateValue);\n this.inputElement.selectionStart = 0;\n this.inputElement.selectionEnd = this.inputElement.value.length;\n }\n }\n this.trigger('focus', focusArguments);\n this.clearIconState();\n if (this.openOnFocus) {\n this.show();\n }\n };\n /**\n * Focused the TimePicker textbox element.\n *\n * @returns {void}\n */\n TimePicker.prototype.focusIn = function () {\n if (document.activeElement !== this.inputElement && this.enabled) {\n this.inputElement.focus();\n }\n };\n /**\n * Hides the TimePicker popup.\n *\n * @returns {void}\n\n */\n TimePicker.prototype.hide = function () {\n this.closePopup(100, null);\n this.clearIconState();\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-param */\n /**\n * Opens the popup to show the list items.\n *\n * @returns {void}\n\n */\n TimePicker.prototype.show = function (event) {\n var _this = this;\n if ((this.enabled && this.readonly) || !this.enabled || this.popupWrapper) {\n return;\n }\n else {\n this.popupCreation();\n if (Browser.isDevice && this.listWrapper) {\n this.modal = this.createElement('div');\n this.modal.className = '' + ROOT + ' e-time-modal';\n document.body.className += ' ' + OVERFLOW;\n document.body.appendChild(this.modal);\n }\n if (Browser.isDevice) {\n this.mobileTimePopupWrap = this.createElement('div', { className: 'e-timepicker-mob-popup-wrap' });\n document.body.appendChild(this.mobileTimePopupWrap);\n }\n this.openPopupEventArgs = {\n popup: this.popupObj || null,\n cancel: false,\n event: event || null,\n name: 'open',\n appendTo: Browser.isDevice ? this.mobileTimePopupWrap : document.body\n };\n var eventArgs = this.openPopupEventArgs;\n this.trigger('open', eventArgs, function (eventArgs) {\n _this.openPopupEventArgs = eventArgs;\n if (!_this.openPopupEventArgs.cancel && !_this.inputWrapper.buttons[0].classList.contains(DISABLED)) {\n _this.openPopupEventArgs.appendTo.appendChild(_this.popupWrapper);\n _this.popupAlignment(_this.openPopupEventArgs);\n _this.setScrollPosition();\n if (!Browser.isDevice) {\n _this.inputElement.focus();\n }\n var openAnimation = {\n name: 'FadeIn',\n duration: ANIMATIONDURATION\n };\n _this.popupObj.refreshPosition(_this.anchor);\n if (_this.zIndex === 1000) {\n _this.popupObj.show(new Animation(openAnimation), _this.element);\n }\n else {\n _this.popupObj.show(new Animation(openAnimation), null);\n }\n _this.setActiveDescendant();\n attributes(_this.inputElement, { 'aria-expanded': 'true' });\n attributes(_this.inputElement, { 'aria-owns': _this.inputElement.id + '_options' });\n addClass([_this.inputWrapper.container], FOCUS);\n EventHandler.add(document, 'mousedown touchstart', _this.documentClickHandler, _this);\n _this.setOverlayIndex(_this.mobileTimePopupWrap, _this.popupObj.element, _this.modal, Browser.isDevice);\n }\n else {\n _this.popupObj.destroy();\n _this.popupWrapper = _this.listTag = undefined;\n _this.liCollections = _this.timeCollections = _this.disableItemCollection = [];\n _this.popupObj = null;\n }\n });\n }\n };\n /* eslint-enable valid-jsdoc, jsdoc/require-param */\n TimePicker.prototype.setOverlayIndex = function (popupWrapper, timePopupElement, modal, isDevice) {\n if (isDevice && !isNullOrUndefined(timePopupElement) && !isNullOrUndefined(modal) && !isNullOrUndefined(popupWrapper)) {\n var index = parseInt(timePopupElement.style.zIndex, 10) ? parseInt(timePopupElement.style.zIndex, 10) : 1000;\n modal.style.zIndex = (index - 1).toString();\n popupWrapper.style.zIndex = index.toString();\n }\n };\n TimePicker.prototype.formatValues = function (type) {\n var value;\n if (typeof type === 'number') {\n value = formatUnit(type);\n }\n else if (typeof type === 'string') {\n value = (type.match(/px|%|em/)) ? type : isNaN(parseInt(type, 10)) ? type : formatUnit(type);\n }\n return value;\n };\n TimePicker.prototype.popupAlignment = function (args) {\n args.popup.position.X = this.formatValues(args.popup.position.X);\n args.popup.position.Y = this.formatValues(args.popup.position.Y);\n if (!isNaN(parseFloat(args.popup.position.X)) || !isNaN(parseFloat(args.popup.position.Y))) {\n this.popupObj.relateTo = this.anchor = document.body;\n this.popupObj.targetType = 'container';\n }\n if (!isNaN(parseFloat(args.popup.position.X))) {\n this.popupObj.offsetX = parseFloat(args.popup.position.X);\n }\n if (!isNaN(parseFloat(args.popup.position.Y))) {\n this.popupObj.offsetY = parseFloat(args.popup.position.Y);\n }\n if (!Browser.isDevice) {\n switch (args.popup.position.X) {\n case 'left':\n break;\n case 'right':\n args.popup.offsetX = this.containerStyle.width;\n break;\n case 'center':\n args.popup.offsetX = -(this.containerStyle.width / 2);\n break;\n }\n switch (args.popup.position.Y) {\n case 'top':\n break;\n case 'bottom':\n break;\n case 'center':\n args.popup.offsetY = -(this.containerStyle.height / 2);\n break;\n }\n if (args.popup.position.X === 'center' && args.popup.position.Y === 'center') {\n this.popupObj.relateTo = this.inputWrapper.container;\n this.anchor = this.inputElement;\n this.popupObj.targetType = 'relative';\n }\n }\n else {\n if (args.popup.position.X === 'center' && args.popup.position.Y === 'center') {\n this.popupObj.relateTo = this.anchor = document.body;\n this.popupObj.offsetY = 0;\n this.popupObj.targetType = 'container';\n this.popupObj.collision = { X: 'fit', Y: 'fit' };\n }\n }\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Gets the properties to be maintained upon browser refresh.\n *\n * @returns {string}\n */\n TimePicker.prototype.getPersistData = function () {\n var keyEntity = ['value'];\n return this.addOnPersist(keyEntity);\n };\n /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * To get component name\n *\n * @returns {string} Returns the component name.\n * @private\n */\n TimePicker.prototype.getModuleName = function () {\n return 'timepicker';\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {TimePickerModel} newProp - Returns the dynamic property value of the component.\n * @param {TimePickerModel} oldProp - Returns the previous property value of the component.\n * @returns {void}\n * @private\n */\n TimePicker.prototype.onPropertyChanged = function (newProp, oldProp) {\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'placeholder':\n Input.setPlaceholder(newProp.placeholder, this.inputElement);\n break;\n case 'readonly':\n Input.setReadonly(this.readonly, this.inputElement, this.floatLabelType);\n if (this.readonly) {\n this.hide();\n }\n this.setTimeAllowEdit();\n break;\n case 'enabled':\n this.setProperties({ enabled: newProp.enabled }, true);\n this.setEnable();\n break;\n case 'allowEdit':\n this.setTimeAllowEdit();\n break;\n case 'enableRtl':\n this.setProperties({ enableRtl: newProp.enableRtl }, true);\n this.setEnableRtl();\n break;\n case 'cssClass':\n this.updateCssClass(newProp.cssClass, oldProp.cssClass);\n break;\n case 'zIndex':\n this.setProperties({ zIndex: newProp.zIndex }, true);\n this.setZIndex();\n break;\n case 'htmlAttributes':\n this.updateHtmlAttributeToElement();\n this.updateHtmlAttributeToWrapper();\n this.checkAttributes(true);\n break;\n case 'min':\n case 'max':\n this.getProperty(newProp, prop);\n break;\n case 'showClearButton':\n Input.setClearButton(this.showClearButton, this.inputElement, this.inputWrapper);\n this.bindClearEvent();\n break;\n case 'locale':\n this.setProperties({ locale: newProp.locale }, true);\n this.globalize = new Internationalization(this.locale);\n this.l10n.setLocale(this.locale);\n this.updatePlaceHolder();\n this.setValue(this.value);\n if (this.enableMask) {\n this.notify('createMask', {\n module: 'MaskedDateTime'\n });\n }\n break;\n case 'width':\n setStyleAttribute(this.inputWrapper.container, { 'width': this.setWidth(newProp.width) });\n this.containerStyle = this.inputWrapper.container.getBoundingClientRect();\n Input.calculateWidth(this.inputElement, this.inputWrapper.container);\n if (!isNullOrUndefined(this.inputWrapper.buttons[0]) && !isNullOrUndefined(this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0]) && this.floatLabelType !== 'Never') {\n this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0].classList.add('e-icon');\n }\n break;\n case 'format':\n this.setProperties({ format: newProp.format }, true);\n this.checkTimeFormat();\n this.setValue(this.value);\n if (this.enableMask) {\n this.createMask();\n if (!this.value) {\n this.updateInputValue(this.maskedDateValue);\n }\n }\n break;\n case 'value':\n this.invalidValueString = null;\n this.checkInvalidValue(newProp.value);\n newProp.value = this.value;\n if (!this.invalidValueString) {\n if (typeof newProp.value === 'string') {\n this.setProperties({ value: this.checkDateValue(new Date(newProp.value)) }, true);\n newProp.value = this.value;\n }\n else {\n if ((newProp.value && +new Date(+newProp.value).setMilliseconds(0)) !== +this.value) {\n newProp.value = this.checkDateValue(new Date('' + newProp.value));\n }\n }\n this.initValue = newProp.value;\n newProp.value = this.compareFormatChange(this.checkValue(newProp.value));\n }\n else {\n this.updateInputValue(this.invalidValueString);\n this.checkErrorState(this.invalidValueString);\n }\n if (this.enableMask && isNullOrUndefined(newProp.value)) {\n this.updateInputValue(this.maskedDateValue);\n this.checkErrorState(this.maskedDateValue);\n }\n this.checkValueChange(null, false);\n if (this.isPopupOpen()) {\n this.setScrollPosition();\n }\n if (this.isAngular && this.preventChange) {\n this.preventChange = false;\n }\n if (this.enableMask) {\n this.notify('createMask', {\n module: 'MaskedDateTime'\n });\n }\n break;\n case 'floatLabelType':\n this.floatLabelType = newProp.floatLabelType;\n Input.removeFloating(this.inputWrapper);\n Input.addFloating(this.inputElement, this.floatLabelType, this.placeholder);\n if (!isNullOrUndefined(this.inputWrapper.buttons[0]) && !isNullOrUndefined(this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0]) && this.floatLabelType !== 'Never') {\n this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0].classList.add('e-icon');\n }\n break;\n case 'strictMode':\n this.invalidValueString = null;\n if (newProp.strictMode) {\n this.checkErrorState(null);\n }\n this.setProperties({ strictMode: newProp.strictMode }, true);\n this.checkValue((this.inputElement).value);\n this.checkValueChange(null, false);\n break;\n case 'scrollTo':\n if (this.checkDateValue(new Date(this.checkInValue(newProp.scrollTo)))) {\n if (this.popupWrapper) {\n this.setScrollTo();\n }\n this.setProperties({ scrollTo: this.checkDateValue(new Date(this.checkInValue(newProp.scrollTo))) }, true);\n }\n else {\n this.setProperties({ scrollTo: null }, true);\n }\n break;\n case 'enableMask':\n if (this.enableMask) {\n this.notify('createMask', {\n module: 'MaskedDateTime'\n });\n this.updateInputValue(this.maskedDateValue);\n }\n else {\n if (this.inputElement.value === this.maskedDateValue) {\n this.updateInputValue('');\n }\n }\n break;\n }\n }\n };\n TimePicker.prototype.checkInValue = function (inValue) {\n if (inValue instanceof Date) {\n return (inValue.toUTCString());\n }\n else {\n return ('' + inValue);\n }\n };\n __decorate([\n Property(null)\n ], TimePicker.prototype, \"width\", void 0);\n __decorate([\n Property(null)\n ], TimePicker.prototype, \"cssClass\", void 0);\n __decorate([\n Property(false)\n ], TimePicker.prototype, \"strictMode\", void 0);\n __decorate([\n Property(null)\n ], TimePicker.prototype, \"keyConfigs\", void 0);\n __decorate([\n Property(null)\n ], TimePicker.prototype, \"format\", void 0);\n __decorate([\n Property(true)\n ], TimePicker.prototype, \"enabled\", void 0);\n __decorate([\n Property(false)\n ], TimePicker.prototype, \"readonly\", void 0);\n __decorate([\n Property({})\n ], TimePicker.prototype, \"htmlAttributes\", void 0);\n __decorate([\n Property('Never')\n ], TimePicker.prototype, \"floatLabelType\", void 0);\n __decorate([\n Property(null)\n ], TimePicker.prototype, \"placeholder\", void 0);\n __decorate([\n Property(1000)\n ], TimePicker.prototype, \"zIndex\", void 0);\n __decorate([\n Property(false)\n ], TimePicker.prototype, \"enablePersistence\", void 0);\n __decorate([\n Property(true)\n ], TimePicker.prototype, \"showClearButton\", void 0);\n __decorate([\n Property(30)\n ], TimePicker.prototype, \"step\", void 0);\n __decorate([\n Property(null)\n ], TimePicker.prototype, \"scrollTo\", void 0);\n __decorate([\n Property(null)\n ], TimePicker.prototype, \"value\", void 0);\n __decorate([\n Property(null)\n ], TimePicker.prototype, \"min\", void 0);\n __decorate([\n Property(null)\n ], TimePicker.prototype, \"max\", void 0);\n __decorate([\n Property(true)\n ], TimePicker.prototype, \"allowEdit\", void 0);\n __decorate([\n Property(false)\n ], TimePicker.prototype, \"openOnFocus\", void 0);\n __decorate([\n Property(false)\n ], TimePicker.prototype, \"enableMask\", void 0);\n __decorate([\n Property({ day: 'day', month: 'month', year: 'year', hour: 'hour', minute: 'minute', second: 'second', dayOfTheWeek: 'day of the week' })\n ], TimePicker.prototype, \"maskPlaceholder\", void 0);\n __decorate([\n Event()\n ], TimePicker.prototype, \"change\", void 0);\n __decorate([\n Event()\n ], TimePicker.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], TimePicker.prototype, \"destroyed\", void 0);\n __decorate([\n Event()\n ], TimePicker.prototype, \"open\", void 0);\n __decorate([\n Event()\n ], TimePicker.prototype, \"itemRender\", void 0);\n __decorate([\n Event()\n ], TimePicker.prototype, \"close\", void 0);\n __decorate([\n Event()\n ], TimePicker.prototype, \"cleared\", void 0);\n __decorate([\n Event()\n ], TimePicker.prototype, \"blur\", void 0);\n __decorate([\n Event()\n ], TimePicker.prototype, \"focus\", void 0);\n TimePicker = __decorate([\n NotifyPropertyChanges\n ], TimePicker);\n return TimePicker;\n}(Component));\nexport { TimePicker };\n/* eslint-enable @typescript-eslint/no-explicit-any */\n","import { createElement, append } from '@syncfusion/ej2-base';\n/**\n * `PagerMessage` module is used to display pager information.\n */\nvar PagerMessage = /** @class */ (function () {\n /**\n * Constructor for externalMessage module\n *\n * @param {Pager} pagerModule - specifies the pager Module\n * @hidden\n */\n function PagerMessage(pagerModule) {\n this.pagerModule = pagerModule;\n }\n /**\n * The function is used to render pager message\n *\n * @returns {void}\n * @hidden\n */\n PagerMessage.prototype.render = function () {\n var div = createElement('div', { className: 'e-parentmsgbar', attrs: { 'aria-label': this.pagerModule.getLocalizedLabel('Information') } });\n this.pageNoMsgElem = createElement('span', { className: 'e-pagenomsg', styles: 'textalign:right' });\n this.pageCountMsgElem = createElement('span', { className: 'e-pagecountmsg', styles: 'textalign:right' });\n append([this.pageNoMsgElem, this.pageCountMsgElem], div);\n this.pagerModule.element.appendChild(div);\n this.refresh();\n };\n /**\n * Refreshes the pager information.\n *\n * @returns {void}\n */\n PagerMessage.prototype.refresh = function () {\n var pagerObj = this.pagerModule;\n this.pageNoMsgElem.textContent = this.format(pagerObj.getLocalizedLabel('currentPageInfo'), [pagerObj.totalRecordsCount === 0 ? 0 :\n pagerObj.currentPage, pagerObj.totalPages || 0, pagerObj.totalRecordsCount || 0]) + ' ';\n this.pageCountMsgElem.textContent = this.format(pagerObj.getLocalizedLabel(pagerObj.totalRecordsCount <= 1 ? 'totalItemInfo' : 'totalItemsInfo'), [pagerObj.totalRecordsCount || 0, pagerObj.totalRecordsCount ? (pagerObj.pageSize * (pagerObj.currentPage - 1)) + 1 : 0,\n pagerObj.pageSize * pagerObj.currentPage > pagerObj.totalRecordsCount ? pagerObj.totalRecordsCount :\n pagerObj.pageSize * pagerObj.currentPage]);\n this.pageNoMsgElem.parentElement.setAttribute('aria-label', this.pageNoMsgElem.textContent + this.pageCountMsgElem.textContent);\n };\n /**\n * Hides the Pager information.\n *\n * @returns {void}\n */\n PagerMessage.prototype.hideMessage = function () {\n if (this.pageNoMsgElem) {\n this.pageNoMsgElem.style.display = 'none';\n }\n if (this.pageCountMsgElem) {\n this.pageCountMsgElem.style.display = 'none';\n }\n };\n /**\n * Shows the Pager information.\n *\n * @returns {void}\n */\n PagerMessage.prototype.showMessage = function () {\n if (!this.pageNoMsgElem) {\n this.render();\n }\n this.pageNoMsgElem.style.display = '';\n this.pageCountMsgElem.style.display = '';\n };\n /**\n * To destroy the PagerMessage\n *\n * @function destroy\n * @returns {void}\n * @hidden\n */\n PagerMessage.prototype.destroy = function () {\n //destroy\n };\n PagerMessage.prototype.format = function (str, args) {\n var regx;\n for (var i = 0; i < args.length; i++) {\n // eslint-disable-next-line security/detect-non-literal-regexp\n regx = new RegExp('\\\\{' + (i) + '\\\\}', 'gm');\n str = str.replace(regx, args[parseInt(i.toString(), 10)].toString());\n }\n return str;\n };\n return PagerMessage;\n}());\nexport { PagerMessage };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component, L10n, Browser, addClass, removeClass } from '@syncfusion/ej2-base';\nimport { createElement, compile as templateCompiler, EventHandler, extend } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { Property, Event, NotifyPropertyChanges } from '@syncfusion/ej2-base';\nimport { NumericContainer } from './numeric-container';\nimport { PagerMessage } from './pager-message';\nimport { appendChildren } from '../grid/base/util';\nimport * as events from '../grid/base/constant';\n/**\n * Represents the `Pager` component.\n * ```html\n *
    \n * ```\n * ```typescript\n * \n * ```\n */\nvar Pager = /** @class */ (function (_super) {\n __extends(Pager, _super);\n /**\n * Constructor for creating the component.\n *\n * @param {PagerModel} options - specifies the options\n * @param {string} element - specifies the element\n * @param {string} parent - specifies the pager parent\n * @hidden\n */\n function Pager(options, element, parent) {\n var _this = _super.call(this, options, element) || this;\n /** @hidden */\n _this.hasParent = false;\n _this.checkAll = true;\n _this.pageRefresh = 'pager-refresh';\n _this.firstPagerFocus = false;\n _this.parent = parent;\n return _this;\n }\n /**\n * To provide the array of modules needed for component rendering\n *\n * @returns {ModuleDeclaration[]} returns the modules declaration\n * @hidden\n */\n Pager.prototype.requiredModules = function () {\n var modules = [];\n if (this.enableExternalMessage) {\n modules.push({\n member: 'externalMessage',\n args: [this]\n });\n }\n if (this.checkpagesizes()) {\n modules.push({\n member: 'pagerdropdown',\n args: [this]\n });\n }\n return modules;\n };\n /**\n * Initialize the event handler\n *\n * @returns {void}\n * @hidden\n */\n Pager.prototype.preRender = function () {\n //preRender\n this.defaultConstants = {\n currentPageInfo: '{0} of {1} pages',\n totalItemsInfo: '({0} items)',\n totalItemInfo: '({0} item)',\n firstPageTooltip: 'Go to first page',\n lastPageTooltip: 'Go to last page',\n nextPageTooltip: 'Go to next page',\n previousPageTooltip: 'Go to previous page',\n nextPagerTooltip: 'Go to next pager items',\n previousPagerTooltip: 'Go to previous pager items',\n pagerDropDown: 'Items per page',\n pagerAllDropDown: 'Items',\n CurrentPageInfo: '{0} of {1} pages',\n TotalItemsInfo: '({0} items)',\n FirstPageTooltip: 'Go to first page',\n LastPageTooltip: 'Go to last page',\n NextPageTooltip: 'Go to next page',\n PreviousPageTooltip: 'Go to previous page',\n NextPagerTooltip: 'Go to next pager items',\n PreviousPagerTooltip: 'Go to previous pager items',\n PagerDropDown: 'Items per page',\n PagerAllDropDown: 'Items',\n All: 'All',\n Container: 'Pager Container',\n Information: 'Pager Information',\n ExternalMsg: 'Pager external message',\n Page: 'Page ',\n Of: ' of ',\n Pages: ' Pages'\n };\n this.containerModule = new NumericContainer(this);\n this.pagerMessageModule = new PagerMessage(this);\n };\n /**\n * To Initialize the component rendering\n *\n * @returns {void}\n */\n Pager.prototype.render = function () {\n this.element.setAttribute('data-role', 'pager');\n this.element.setAttribute('tabindex', '-1');\n this.initLocalization();\n this.element.setAttribute('aria-label', this.getLocalizedLabel('Container'));\n if (this.cssClass) {\n addClass([this.element], [this.cssClass]);\n }\n if (!this.hasParent) {\n this.element.setAttribute('tabindex', '0');\n }\n if (this.template) {\n if (this.isReactTemplate()) {\n this.on(this.pageRefresh, this.pagerTemplate, this);\n this.notify(this.pageRefresh, {});\n }\n else {\n this.pagerTemplate();\n }\n }\n else {\n this.updateRTL();\n this.totalRecordsCount = this.totalRecordsCount || 0;\n this.renderFirstPrevDivForDevice();\n this.containerModule.render();\n if (this.enablePagerMessage) {\n this.pagerMessageModule.render();\n }\n this.renderNextLastDivForDevice();\n if (this.checkpagesizes() && this.pagerdropdownModule) {\n this.pagerdropdownModule.render();\n }\n this.addAriaLabel();\n if (this.enableExternalMessage && this.externalMessageModule) {\n this.externalMessageModule.render();\n }\n this.refresh();\n this.trigger('created', { 'currentPage': this.currentPage, 'totalRecordsCount': this.totalRecordsCount });\n }\n this.wireEvents();\n this.addListener();\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @returns {string} returns the persist data\n * @hidden\n */\n Pager.prototype.getPersistData = function () {\n var keyEntity = ['currentPage', 'pageSize'];\n return this.addOnPersist(keyEntity);\n };\n /**\n * To destroy the Pager component.\n *\n * @method destroy\n * @returns {void}\n */\n Pager.prototype.destroy = function () {\n if (this.isDestroyed) {\n return;\n }\n if (this.isReactTemplate()) {\n this.off(this.pageRefresh, this.pagerTemplate);\n if (!this.hasParent) {\n this.destroyTemplate(['template']);\n }\n }\n this.removeListener();\n this.unwireEvents();\n _super.prototype.destroy.call(this);\n this.containerModule.destroy();\n this.pagerMessageModule.destroy();\n if (!this.isReactTemplate()) {\n this.element.innerHTML = '';\n }\n };\n /**\n * Destroys the given template reference.\n *\n * @param {string[]} propertyNames - Defines the collection of template name.\n * @param {any} index - Defines the index\n */\n // eslint-disable-next-line\n Pager.prototype.destroyTemplate = function (propertyNames, index) {\n this.clearTemplate(propertyNames, index);\n };\n /**\n * For internal use only - Get the module name.\n *\n * @returns {string} returns the module name\n * @private\n */\n Pager.prototype.getModuleName = function () {\n return 'pager';\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {PagerModel} newProp - specifies the new property\n * @param {PagerModel} oldProp - specifies the old propety\n * @returns {void}\n * @hidden\n */\n Pager.prototype.onPropertyChanged = function (newProp, oldProp) {\n if (this.isDestroyed) {\n return;\n }\n if ((newProp.pageSize === this.getLocalizedLabel('All')) && oldProp.pageSize === this.totalRecordsCount) {\n this.pageSize = this.totalRecordsCount;\n return;\n }\n if (newProp.pageCount !== oldProp.pageCount) {\n this.containerModule.refreshNumericLinks();\n this.containerModule.refresh();\n }\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'currentPage':\n if (this.checkGoToPage(newProp.currentPage, oldProp.currentPage)) {\n this.currentPageChanged(newProp, oldProp);\n }\n break;\n case 'pageSize':\n case 'totalRecordsCount':\n case 'customText':\n if (this.checkpagesizes() && this.pagerdropdownModule) {\n if (oldProp.pageSize !== newProp.pageSize) {\n this.currentPage = 1;\n }\n this.pagerdropdownModule.setDropDownValue('value', this.pageSize);\n }\n if (newProp.pageSize !== oldProp.pageSize) {\n this.pageSize = newProp.pageSize;\n this.currentPageChanged(newProp, oldProp);\n }\n else {\n this.refresh();\n }\n break;\n case 'pageSizes':\n if (this.checkpagesizes() && this.pagerdropdownModule) {\n this.pagerdropdownModule.destroy();\n this.pagerdropdownModule.render();\n }\n this.refresh();\n break;\n case 'template':\n this.templateFn = this.compile(this.template);\n this.refresh();\n break;\n case 'locale':\n this.initLocalization();\n this.refresh();\n break;\n case 'enableExternalMessage':\n if (this.enableExternalMessage && this.externalMessageModule) {\n this.externalMessageModule.render();\n }\n break;\n case 'externalMessage':\n if (this.externalMessageModule) {\n this.externalMessageModule.refresh();\n }\n break;\n case 'enableRtl':\n this.updateRTL();\n break;\n case 'enablePagerMessage':\n if (this.enablePagerMessage) {\n this.pagerMessageModule.showMessage();\n }\n else {\n this.pagerMessageModule.hideMessage();\n }\n break;\n }\n }\n };\n Pager.prototype.wireEvents = function () {\n if (!this.hasParent) {\n EventHandler.add(this.element, 'keydown', this.keyPressHandler, this);\n EventHandler.add(document.body, 'keydown', this.keyDownHandler, this);\n }\n EventHandler.add(this.element, 'focusin', this.onFocusIn, this);\n EventHandler.add(this.element, 'focusout', this.onFocusOut, this);\n };\n Pager.prototype.unwireEvents = function () {\n if (!this.hasParent) {\n EventHandler.remove(this.element, 'keydown', this.keyPressHandler);\n EventHandler.remove(document.body, 'keydown', this.keyDownHandler);\n }\n EventHandler.remove(this.element, 'focusin', this.onFocusIn);\n EventHandler.remove(this.element, 'focusout', this.onFocusOut);\n };\n Pager.prototype.onFocusIn = function (e) {\n var focusedTabIndexElement = this.getFocusedTabindexElement();\n if (isNullOrUndefined(focusedTabIndexElement)) {\n var target = e.target;\n var dropDownPage = this.getDropDownPage();\n if (!this.hasParent) {\n this.element.tabIndex = -1;\n }\n if (target === this.element && !this.hasParent) {\n var focusablePagerElements = this.getFocusablePagerElements(this.element, []);\n this.addFocus(focusablePagerElements[0], true);\n return;\n }\n if (target === this.element) {\n this.element.tabIndex = 0;\n return;\n }\n if (target !== dropDownPage && !target.classList.contains('e-disable')) {\n this.addFocus(target, true);\n }\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n Pager.prototype.onFocusOut = function (e) {\n var focusedElement = this.getFocusedElement();\n var dropDownPage = this.getDropDownPage();\n if (!isNullOrUndefined(focusedElement)) {\n this.removeFocus(focusedElement, true);\n }\n if (this.pageSizes && dropDownPage && dropDownPage.classList.contains('e-input-focus')) {\n this.removeFocus(dropDownPage, true);\n }\n this.setTabIndexForFocusLastElement();\n if (!this.hasParent) {\n this.element.tabIndex = 0;\n }\n if (this.hasParent) {\n this.element.tabIndex = -1;\n }\n };\n Pager.prototype.keyDownHandler = function (e) {\n if (e.altKey) {\n if (e.keyCode === 74) {\n var focusablePagerElements = this.getFocusablePagerElements(this.element, []);\n if (focusablePagerElements.length > 0) {\n focusablePagerElements[0].focus();\n }\n }\n }\n };\n Pager.prototype.keyPressHandler = function (e) {\n var presskey = extend(e, { cancel: false });\n this.notify(events.keyPressed, presskey);\n if (presskey.cancel === true) {\n e.stopImmediatePropagation();\n }\n };\n Pager.prototype.addListener = function () {\n if (this.isDestroyed) {\n return;\n }\n if (!this.hasParent) {\n this.on(events.keyPressed, this.onKeyPress, this);\n }\n };\n Pager.prototype.removeListener = function () {\n if (this.isDestroyed) {\n return;\n }\n if (!this.hasParent) {\n this.off(events.keyPressed, this.onKeyPress);\n }\n };\n Pager.prototype.onKeyPress = function (e) {\n if (!this.hasParent) {\n if (this.checkPagerHasFocus()) {\n this.changePagerFocus(e);\n }\n else {\n e.preventDefault();\n this.setPagerFocus();\n }\n }\n };\n /**\n * @returns {boolean} - Return the true value if pager has focus\n * @hidden */\n Pager.prototype.checkPagerHasFocus = function () {\n return this.getFocusedTabindexElement() ? true : false;\n };\n /**\n * @returns {void}\n * @hidden */\n Pager.prototype.setPagerContainerFocus = function () {\n this.element.focus();\n };\n /**\n * @returns {void}\n * @hidden */\n Pager.prototype.setPagerFocus = function () {\n var focusablePagerElements = this.getFocusablePagerElements(this.element, []);\n if (focusablePagerElements.length > 0) {\n focusablePagerElements[0].focus();\n }\n };\n Pager.prototype.setPagerFocusForActiveElement = function () {\n var currentActivePage = this.getActiveElement();\n if (currentActivePage) {\n currentActivePage.focus();\n }\n };\n Pager.prototype.setTabIndexForFocusLastElement = function () {\n var focusablePagerElements = this.getFocusablePagerElements(this.element, []);\n var dropDownPage = this.getDropDownPage();\n if (this.pageSizes && dropDownPage && !isNullOrUndefined(dropDownPage.offsetParent)) {\n dropDownPage.tabIndex = 0;\n }\n else if (focusablePagerElements.length > 0) {\n focusablePagerElements[focusablePagerElements.length - 1].tabIndex = 0;\n }\n };\n /**\n * @param {KeyboardEventArgs} e - Keyboard Event Args\n * @returns {void}\n * @hidden */\n Pager.prototype.changePagerFocus = function (e) {\n if (e.shiftKey && e.keyCode === 9) {\n this.changeFocusByShiftTab(e);\n }\n else if (e.keyCode === 9) {\n this.changeFocusByTab(e);\n }\n else if (e.keyCode === 13 || e.keyCode === 32) {\n this.navigateToPageByEnterOrSpace(e);\n }\n else if (e.keyCode === 37 || e.keyCode === 39 || e.keyCode === 35 || e.keyCode === 36) {\n this.navigateToPageByKey(e);\n }\n };\n Pager.prototype.getFocusedTabindexElement = function () {\n var focusedTabIndexElement;\n var tabindexElements = this.element.querySelectorAll('[tabindex]:not([tabindex=\"-1\"])');\n for (var i = 0; i < tabindexElements.length; i++) {\n var element = tabindexElements[parseInt(i.toString(), 10)];\n if (element && (element.classList.contains('e-focused') || element.classList.contains('e-input-focus'))) {\n focusedTabIndexElement = element;\n break;\n }\n }\n return focusedTabIndexElement;\n };\n Pager.prototype.changeFocusByTab = function (e) {\n var currentItemPagerFocus = this.getFocusedTabindexElement();\n var focusablePagerElements = this.getFocusablePagerElements(this.element, []);\n var dropDownPage = this.getDropDownPage();\n if (focusablePagerElements.length > 0) {\n if (this.pageSizes && dropDownPage && currentItemPagerFocus === focusablePagerElements[focusablePagerElements.length - 1]) {\n dropDownPage.tabIndex = 0;\n }\n else {\n for (var i = 0; i < focusablePagerElements.length; i++) {\n if (currentItemPagerFocus === focusablePagerElements[parseInt(i.toString(), 10)]) {\n var incrementNumber = i + 1;\n if (incrementNumber < focusablePagerElements.length) {\n e.preventDefault();\n focusablePagerElements[parseInt(incrementNumber.toString(), 10)].focus();\n }\n break;\n }\n }\n }\n }\n };\n Pager.prototype.changeFocusByShiftTab = function (e) {\n var currentItemPagerFocus = this.getFocusedTabindexElement();\n var focusablePagerElements = this.getFocusablePagerElements(this.element, []);\n var dropDownPage = this.getDropDownPage();\n if (this.pageSizes && dropDownPage && dropDownPage.classList.contains('e-input-focus')) {\n dropDownPage.tabIndex = -1;\n this.addFocus(focusablePagerElements[focusablePagerElements.length - 1], true);\n }\n else if (focusablePagerElements.length > 0) {\n for (var i = 0; i < focusablePagerElements.length; i++) {\n if (currentItemPagerFocus === focusablePagerElements[parseInt(i.toString(), 10)]) {\n var decrementNumber = i - 1;\n if (decrementNumber >= 0) {\n e.preventDefault();\n focusablePagerElements[parseInt(decrementNumber.toString(), 10)].focus();\n }\n else if (this.hasParent) {\n var rows = this.parent.getRows();\n var lastRow = rows[rows.length - 1];\n var lastCell = lastRow.lastChild;\n e.preventDefault();\n lastCell.focus();\n this.firstPagerFocus = true;\n }\n break;\n }\n }\n }\n };\n /**\n * @returns {void}\n * @hidden */\n Pager.prototype.checkFirstPagerFocus = function () {\n if (this.firstPagerFocus) {\n this.firstPagerFocus = false;\n return true;\n }\n return false;\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n Pager.prototype.navigateToPageByEnterOrSpace = function (e) {\n var currentItemPagerFocus = this.getFocusedElement();\n if (currentItemPagerFocus) {\n this.goToPage(parseInt(currentItemPagerFocus.getAttribute('index'), 10));\n var currentActivePage = this.getActiveElement();\n var selectedClass = this.getClass(currentItemPagerFocus);\n var classElement = this.getElementByClass(selectedClass);\n if ((selectedClass === 'e-first' || selectedClass === 'e-prev' || selectedClass === 'e-next'\n || selectedClass === 'e-last' || selectedClass === 'e-pp' || selectedClass === 'e-np')\n && classElement && !classElement.classList.contains('e-disable')) {\n classElement.focus();\n }\n else if (this.checkFocusInAdaptiveMode(currentItemPagerFocus)) {\n this.changeFocusInAdaptiveMode(currentItemPagerFocus);\n }\n else {\n if (currentActivePage) {\n currentActivePage.focus();\n }\n }\n }\n };\n Pager.prototype.navigateToPageByKey = function (e) {\n var actionClass = e.keyCode === 37 ? '.e-prev' : e.keyCode === 39 ? '.e-next'\n : e.keyCode === 35 ? '.e-last' : e.keyCode === 36 ? '.e-first' : '';\n var pagingItem = this.element.querySelector(actionClass);\n var currentItemPagerFocus = this.getFocusedElement();\n if (!isNullOrUndefined(pagingItem) && pagingItem.hasAttribute('index')\n && !isNaN(parseInt(pagingItem.getAttribute('index'), 10))) {\n this.goToPage(parseInt(pagingItem.getAttribute('index'), 10));\n var currentActivePage = this.getActiveElement();\n if (this.checkFocusInAdaptiveMode(currentItemPagerFocus)) {\n this.changeFocusInAdaptiveMode(currentItemPagerFocus);\n }\n else {\n if (currentActivePage) {\n currentActivePage.focus();\n }\n }\n }\n };\n Pager.prototype.checkFocusInAdaptiveMode = function (element) {\n var selectedClass = this.getClass(element);\n return selectedClass === 'e-mfirst' || selectedClass === 'e-mprev' || selectedClass === 'e-mnext'\n || selectedClass === 'e-mlast' ? true : false;\n };\n Pager.prototype.changeFocusInAdaptiveMode = function (element) {\n var selectedClass = this.getClass(element);\n var classElement = this.getElementByClass(selectedClass);\n if (classElement && classElement.classList.contains('e-disable')) {\n if (selectedClass === 'e-mnext' || selectedClass === 'e-mlast') {\n var mPrev = this.element.querySelector('.e-mprev');\n mPrev.focus();\n }\n else {\n this.setPagerFocus();\n }\n }\n };\n Pager.prototype.removeTabindexLastElements = function () {\n var tabIndexElements = this.element.querySelectorAll('[tabindex]:not([tabindex=\"-1\"])');\n if (tabIndexElements.length > 1) {\n for (var i = 1; i < tabIndexElements.length; i++) {\n var element = tabIndexElements[parseInt(i.toString(), 10)];\n if (element) {\n element.tabIndex = -1;\n }\n }\n }\n };\n Pager.prototype.getActiveElement = function () {\n return this.element.querySelector('.e-active');\n };\n /**\n * @returns {Element} - Returns DropDown Page\n * @hidden */\n Pager.prototype.getDropDownPage = function () {\n var dropDownPageHolder = this.element.querySelector('.e-pagerdropdown');\n var dropDownPage;\n if (dropDownPageHolder) {\n dropDownPage = dropDownPageHolder.children[0];\n }\n return dropDownPage;\n };\n Pager.prototype.getFocusedElement = function () {\n return this.element.querySelector('.e-focused');\n };\n Pager.prototype.getClass = function (element) {\n var currentClass;\n var classList = ['e-mfirst', 'e-mprev', 'e-first', 'e-prev', 'e-pp',\n 'e-np', 'e-next', 'e-last', 'e-mnext', 'e-mlast'];\n for (var i = 0; i < classList.length; i++) {\n if (element && element.classList.contains(classList[parseInt(i.toString(), 10)])) {\n currentClass = classList[parseInt(i.toString(), 10)];\n return currentClass;\n }\n }\n return currentClass;\n };\n Pager.prototype.getElementByClass = function (className) {\n return this.element.querySelector('.' + className);\n };\n /**\n * @param {Element} element - Pager element\n * @param {Element[]} previousElements - Iterating pager element\n * @returns {Element[]} - Returns focusable pager element\n * @hidden */\n Pager.prototype.getFocusablePagerElements = function (element, previousElements) {\n var target = element;\n var targetChildrens = target.children;\n var pagerElements = previousElements;\n for (var i = 0; i < targetChildrens.length; i++) {\n var element_1 = targetChildrens[parseInt(i.toString(), 10)];\n if (element_1.children.length > 0 && !element_1.classList.contains('e-pagesizes')) {\n pagerElements = this.getFocusablePagerElements(element_1, pagerElements);\n }\n else {\n var tabindexElement = targetChildrens[parseInt(i.toString(), 10)];\n if (tabindexElement.hasAttribute('tabindex') && !element_1.classList.contains('e-disable')\n && element_1.style.display !== 'none'\n && !isNullOrUndefined(element_1.offsetParent)) {\n pagerElements.push(tabindexElement);\n }\n }\n }\n return pagerElements;\n };\n Pager.prototype.addFocus = function (element, addFocusClass) {\n if (addFocusClass) {\n addClass([element], ['e-focused', 'e-focus']);\n }\n element.tabIndex = 0;\n };\n Pager.prototype.removeFocus = function (element, removeFocusClass) {\n if (removeFocusClass) {\n removeClass([element], ['e-focused', 'e-focus']);\n }\n element.tabIndex = -1;\n };\n /**\n * Gets the localized label by locale keyword.\n *\n * @param {string} key - specifies the key\n * @returns {string} returns the localized label\n */\n Pager.prototype.getLocalizedLabel = function (key) {\n return this.localeObj.getConstant(key);\n };\n /**\n * Navigate to target page by given number.\n *\n * @param {number} pageNo - Defines page number.\n * @returns {void}\n */\n Pager.prototype.goToPage = function (pageNo) {\n if (this.checkGoToPage(pageNo)) {\n this.currentPage = pageNo;\n this.dataBind();\n }\n };\n /**\n * @param {number} pageSize - specifies the pagesize\n * @returns {void}\n * @hidden\n */\n Pager.prototype.setPageSize = function (pageSize) {\n this.pageSize = pageSize;\n this.dataBind();\n };\n Pager.prototype.checkpagesizes = function () {\n if (this.pageSizes === true || this.pageSizes.length) {\n return true;\n }\n return false;\n };\n Pager.prototype.checkGoToPage = function (newPageNo, oldPageNo) {\n if (newPageNo !== this.currentPage) {\n this.previousPageNo = this.currentPage;\n }\n if (!isNullOrUndefined(oldPageNo)) {\n this.previousPageNo = oldPageNo;\n }\n if (this.previousPageNo !== newPageNo && (newPageNo >= 1 && newPageNo <= this.totalPages)) {\n return true;\n }\n return false;\n };\n Pager.prototype.currentPageChanged = function (newProp, oldProp) {\n if (this.enableQueryString) {\n this.updateQueryString(this.currentPage);\n }\n if (newProp.currentPage !== oldProp.currentPage || newProp.pageSize !== oldProp.pageSize) {\n var args = {\n currentPage: this.currentPage,\n newProp: newProp, oldProp: oldProp, cancel: false\n };\n this.trigger('click', args);\n if (!args.cancel) {\n this.refresh();\n }\n }\n };\n Pager.prototype.pagerTemplate = function () {\n if (this.isReactTemplate() && this.hasParent) {\n return;\n }\n var result;\n this.element.classList.add('e-pagertemplate');\n this.compile(this.template);\n var data = {\n currentPage: this.currentPage, pageSize: this.pageSize, pageCount: this.pageCount,\n totalRecordsCount: this.totalRecordsCount, totalPages: this.totalPages\n };\n var tempId = this.element.parentElement.id + '_template';\n if (this.isReactTemplate() && !this.isVue) {\n this.getPagerTemplate()(data, this, 'template', tempId, null, null, this.element);\n this.renderReactTemplates();\n }\n else {\n result = this.isVue ? this.getPagerTemplate()(data, this, 'template') : this.getPagerTemplate()(data);\n appendChildren(this.element, result);\n }\n };\n /**\n * @returns {void}\n * @hidden\n */\n Pager.prototype.updateTotalPages = function () {\n this.totalPages = this.isAllPage ? 1 : (this.totalRecordsCount % this.pageSize === 0) ? (this.totalRecordsCount / this.pageSize) :\n (parseInt((this.totalRecordsCount / this.pageSize).toString(), 10) + 1);\n };\n /**\n * @returns {Function} returns the function\n * @hidden\n */\n Pager.prototype.getPagerTemplate = function () {\n return this.templateFn;\n };\n /**\n * @param {string} template - specifies the template\n * @returns {Function} returns the function\n * @hidden\n */\n Pager.prototype.compile = function (template) {\n if (template) {\n try {\n if (document.querySelectorAll(template).length) {\n this.templateFn = templateCompiler(document.querySelector(template).innerHTML.trim());\n }\n }\n catch (e) {\n this.templateFn = templateCompiler(template);\n }\n }\n return undefined;\n };\n /**\n * Refreshes page count, pager information and external message.\n *\n * @returns {void}\n */\n Pager.prototype.refresh = function () {\n if (this.template) {\n if (this.isReactTemplate()) {\n this.updateTotalPages();\n this.notify(this.pageRefresh, {});\n }\n else {\n this.element.innerHTML = '';\n this.updateTotalPages();\n this.pagerTemplate();\n }\n }\n else {\n this.updateRTL();\n var focusedTabIndexElement = this.getFocusedTabindexElement();\n this.containerModule.refresh();\n this.removeTabindexLastElements();\n if (focusedTabIndexElement && focusedTabIndexElement.classList.contains('e-disable')) {\n if (this.checkFocusInAdaptiveMode(focusedTabIndexElement)) {\n this.changeFocusInAdaptiveMode(focusedTabIndexElement);\n }\n else {\n this.setPagerFocusForActiveElement();\n }\n }\n if (this.enablePagerMessage) {\n this.pagerMessageModule.refresh();\n }\n if (this.pagerdropdownModule) {\n this.pagerdropdownModule.refresh();\n }\n if (this.enableExternalMessage && this.externalMessageModule) {\n this.externalMessageModule.refresh();\n }\n this.setTabIndexForFocusLastElement();\n }\n };\n Pager.prototype.updateRTL = function () {\n if (this.enableRtl) {\n this.element.classList.add('e-rtl');\n }\n else {\n this.element.classList.remove('e-rtl');\n }\n };\n Pager.prototype.initLocalization = function () {\n this.localeObj = new L10n(this.getModuleName(), this.defaultConstants, this.locale);\n };\n Pager.prototype.updateQueryString = function (value) {\n var updatedUrl = this.getUpdatedURL(window.location.href, 'page', value.toString());\n window.history.pushState({ path: updatedUrl }, '', updatedUrl);\n };\n Pager.prototype.getUpdatedURL = function (uri, key, value) {\n // eslint-disable-next-line security/detect-non-literal-regexp\n var regx = new RegExp('([?|&])' + key + '=.*?(&|#|$)', 'i');\n if (uri.match(regx)) {\n return uri.replace(regx, '$1' + key + '=' + value + '$2');\n }\n else {\n var hash = '';\n if (uri.indexOf('#') !== -1) {\n hash = uri.replace(/.*#/, '#');\n uri = uri.replace(/#.*/, '');\n }\n return uri + (uri.indexOf('?') !== -1 ? '&' : '?') + key + '=' + value + hash;\n }\n };\n Pager.prototype.renderFirstPrevDivForDevice = function () {\n this.element.appendChild(createElement('div', {\n className: 'e-mfirst e-icons e-icon-first',\n attrs: { title: this.getLocalizedLabel('firstPageTooltip'), tabindex: '-1' }\n }));\n this.element.appendChild(createElement('div', {\n className: 'e-mprev e-icons e-icon-prev',\n attrs: { title: this.getLocalizedLabel('previousPageTooltip'), tabindex: '-1' }\n }));\n };\n Pager.prototype.renderNextLastDivForDevice = function () {\n this.element.appendChild(createElement('div', {\n className: 'e-mnext e-icons e-icon-next',\n attrs: { title: this.getLocalizedLabel('nextPageTooltip'), tabindex: '-1' }\n }));\n this.element.appendChild(createElement('div', {\n className: 'e-mlast e-icons e-icon-last',\n attrs: { title: this.getLocalizedLabel('lastPageTooltip'), tabindex: '-1' }\n }));\n };\n Pager.prototype.addAriaLabel = function () {\n var classList = ['.e-mfirst', '.e-mprev', '.e-mnext', '.e-mlast'];\n if (!Browser.isDevice) {\n for (var i = 0; i < classList.length; i++) {\n var element = this.element.querySelector(classList[parseInt(i.toString(), 10)]);\n element.setAttribute('aria-label', element.getAttribute('title'));\n }\n }\n };\n Pager.prototype.isReactTemplate = function () {\n return (this.isReact || this.isVue) && this.template && typeof (this.template) !== 'string';\n };\n __decorate([\n Property(false)\n ], Pager.prototype, \"enableQueryString\", void 0);\n __decorate([\n Property(false)\n ], Pager.prototype, \"enableExternalMessage\", void 0);\n __decorate([\n Property(true)\n ], Pager.prototype, \"enablePagerMessage\", void 0);\n __decorate([\n Property(12)\n ], Pager.prototype, \"pageSize\", void 0);\n __decorate([\n Property(10)\n ], Pager.prototype, \"pageCount\", void 0);\n __decorate([\n Property(1)\n ], Pager.prototype, \"currentPage\", void 0);\n __decorate([\n Property()\n ], Pager.prototype, \"totalRecordsCount\", void 0);\n __decorate([\n Property()\n ], Pager.prototype, \"externalMessage\", void 0);\n __decorate([\n Property(false)\n ], Pager.prototype, \"pageSizes\", void 0);\n __decorate([\n Property()\n ], Pager.prototype, \"template\", void 0);\n __decorate([\n Property('')\n ], Pager.prototype, \"customText\", void 0);\n __decorate([\n Event()\n ], Pager.prototype, \"click\", void 0);\n __decorate([\n Property('')\n ], Pager.prototype, \"cssClass\", void 0);\n __decorate([\n Event()\n ], Pager.prototype, \"dropDownChanged\", void 0);\n __decorate([\n Event()\n ], Pager.prototype, \"created\", void 0);\n Pager = __decorate([\n NotifyPropertyChanges\n ], Pager);\n return Pager;\n}(Component));\nexport { Pager };\n","import { createElement, remove } from '@syncfusion/ej2-base';\nimport { DropDownList } from '@syncfusion/ej2-dropdowns';\n/**\n * `PagerDropDown` module handles selected pageSize from DropDownList.\n */\nvar PagerDropDown = /** @class */ (function () {\n /**\n * Constructor for pager module\n *\n * @param {Pager} pagerModule - specifies the pagermodule\n * @hidden\n */\n function PagerDropDown(pagerModule) {\n this.pagerModule = pagerModule;\n }\n /**\n * For internal use only - Get the module name.\n *\n * @returns {string} returns the module name\n * @private\n * @hidden\n */\n PagerDropDown.prototype.getModuleName = function () {\n return 'pagerdropdown';\n };\n /**\n * The function is used to render pager dropdown\n *\n * @returns {void}\n * @hidden\n */\n PagerDropDown.prototype.render = function () {\n var pagerObj = this.pagerModule;\n this.pagerDropDownDiv = createElement('div', { className: 'e-pagesizes' });\n var dropDownDiv = createElement('div', { className: 'e-pagerdropdown' });\n var defaultTextDiv = createElement('div', { className: 'e-pagerconstant' });\n var input = createElement('input', { attrs: { type: 'text', tabindex: '-1' } });\n this.pagerCons = createElement('span', {\n className: 'e-constant', innerHTML: this.pagerModule.getLocalizedLabel('pagerDropDown')\n });\n dropDownDiv.appendChild(input);\n defaultTextDiv.appendChild(this.pagerCons);\n this.pagerDropDownDiv.appendChild(dropDownDiv);\n this.pagerDropDownDiv.appendChild(defaultTextDiv);\n this.pagerModule.element.appendChild(this.pagerDropDownDiv);\n var pageSizesModule = this.pagerModule.pageSizes;\n var pageSizesArray = (pageSizesModule.length ? this.convertValue(pageSizesModule) :\n [this.pagerModule.getLocalizedLabel('All'), '5', '10', '12', '20']);\n var defaultValue = this.pagerModule.pageSize;\n this.dropDownListObject = new DropDownList({\n dataSource: pageSizesArray,\n value: defaultValue.toString(),\n change: this.onChange.bind(this),\n placeholder: this.pagerModule.getLocalizedLabel('pagerDropDown'),\n cssClass: this.pagerModule.cssClass ? 'e-alldrop' + ' ' + this.pagerModule.cssClass : 'e-alldrop'\n });\n this.dropDownListObject.appendTo(input);\n if (pageSizesModule.length) {\n this.dropDownListObject.element.value = this.pagerModule.pageSize.toString();\n }\n pagerObj.pageSize = defaultValue;\n pagerObj.dataBind();\n pagerObj.trigger('dropDownChanged', { pageSize: defaultValue });\n this.addEventListener();\n };\n /**\n * For internal use only - Get the pagesize.\n *\n * @param {ChangeEventArgs} e - specifies the changeeventargs\n * @returns {void}\n * @private\n * @hidden\n */\n PagerDropDown.prototype.onChange = function (e) {\n if (this.dropDownListObject.value === this.pagerModule.getLocalizedLabel('All')) {\n this.pagerModule.pageSize = this.pagerModule.totalRecordsCount;\n this.pagerModule.isAllPage = true;\n this.refresh();\n e.value = this.pagerModule.pageSize;\n if (document.getElementsByClassName('e-popup-open e-alldrop').length) {\n document.getElementsByClassName('e-popup-open e-alldrop')[0].style.display = 'none';\n }\n }\n else {\n this.pagerModule.pageSize = parseInt(this.dropDownListObject.value, 10);\n this.pagerModule.isAllPage = false;\n if (this.pagerCons.innerHTML !== this.pagerModule.getLocalizedLabel('pagerDropDown')) {\n this.refresh();\n }\n }\n this.pagerModule.dataBind();\n this.pagerModule.trigger('dropDownChanged', { pageSize: this.pagerModule.isAllPage ? this.pagerModule.totalRecordsCount :\n parseInt(this.dropDownListObject.value, 10) });\n };\n PagerDropDown.prototype.refresh = function () {\n if (this.pagerCons) {\n if (this.isPageSizeAll(this.pagerModule.pageSize)) {\n this.pagerCons.innerHTML = this.pagerModule.getLocalizedLabel('pagerAllDropDown');\n }\n else {\n this.pagerCons.innerHTML = this.pagerModule.getLocalizedLabel('pagerDropDown');\n }\n }\n };\n PagerDropDown.prototype.beforeValueChange = function (prop) {\n if (typeof prop.newProp.value === 'number') {\n var val = prop.newProp.value.toString();\n prop.newProp.value = val;\n }\n };\n PagerDropDown.prototype.convertValue = function (pageSizeValue) {\n var item = pageSizeValue;\n for (var i = 0; i < item.length; i++) {\n item[parseInt(i.toString(), 10)] = parseInt(item[parseInt(i.toString(), 10)], 10) ?\n item[parseInt(i.toString(), 10)].toString() : (this.pagerModule.getLocalizedLabel(item[parseInt(i.toString(), 10)]) !== '')\n ? this.pagerModule.getLocalizedLabel(item[parseInt(i.toString(), 10)]) : item[parseInt(i.toString(), 10)];\n }\n return item;\n };\n PagerDropDown.prototype.isPageSizeAll = function (value) {\n var pageSizeNum = typeof (value) === 'string' && value !== this.pagerModule.getLocalizedLabel('All') ?\n parseInt(value, 10) : value;\n if (pageSizeNum === this.pagerModule.totalRecordsCount || value === this.pagerModule.getLocalizedLabel('All')) {\n return true;\n }\n else {\n return false;\n }\n };\n PagerDropDown.prototype.setDropDownValue = function (prop, value) {\n if (this.dropDownListObject) {\n var isbeforeAll = this.pagerModule.isAllPage;\n this.pagerModule.isAllPage = this.isPageSizeAll(value);\n this.pagerModule.checkAll = (isbeforeAll && this.pagerModule.isAllPage) ? true : false;\n this.dropDownListObject[\"\" + prop] = this.pagerModule.isAllPage ? this.pagerModule.getLocalizedLabel('All') : value;\n }\n };\n PagerDropDown.prototype.addEventListener = function () {\n this.dropDownListObject.on('beforeValueChange', this.beforeValueChange, this);\n };\n PagerDropDown.prototype.removeEventListener = function () {\n this.dropDownListObject.off('beforeValueChange', this.beforeValueChange);\n };\n /**\n * To destroy the Pagerdropdown\n *\n * @param {string} args - specifies the arguments\n * @param {string} args.requestType - specfies the request type\n * @returns {void}\n * @hidden\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n PagerDropDown.prototype.destroy = function (args) {\n if (this.dropDownListObject && !this.dropDownListObject.isDestroyed) {\n this.removeEventListener();\n this.dropDownListObject.destroy();\n remove(this.pagerDropDownDiv);\n }\n };\n return PagerDropDown;\n}());\nexport { PagerDropDown };\n","import { createElement, remove, isNullOrUndefined } from '@syncfusion/ej2-base';\n/**\n * `ExternalMessage` module is used to display user provided message.\n */\nvar ExternalMessage = /** @class */ (function () {\n /**\n * Constructor for externalMessage module\n *\n * @param {Pager} pagerModule - specifies the pagermodule\n * @hidden\n */\n function ExternalMessage(pagerModule) {\n this.pagerModule = pagerModule;\n }\n /**\n * For internal use only - Get the module name.\n *\n * @returns {string} returns the module name\n * @private\n */\n ExternalMessage.prototype.getModuleName = function () {\n return 'externalMessage';\n };\n /**\n * The function is used to render pager externalMessage\n *\n * @returns {void}\n * @hidden\n */\n ExternalMessage.prototype.render = function () {\n this.element = createElement('div', { className: 'e-pagerexternalmsg', attrs: { 'aria-label': this.pagerModule.getLocalizedLabel('ExternalMsg') } });\n this.pagerModule.element.appendChild(this.element);\n this.refresh();\n };\n /**\n * Refreshes the external message of Pager.\n *\n * @returns {void}\n */\n ExternalMessage.prototype.refresh = function () {\n if (this.pagerModule.externalMessage && this.pagerModule.externalMessage.toString().length) {\n this.showMessage();\n this.element.innerHTML = this.pagerModule.externalMessage;\n }\n else {\n this.hideMessage();\n }\n };\n /**\n * Hides the external message of Pager.\n *\n * @returns {void}\n */\n ExternalMessage.prototype.hideMessage = function () {\n if (!isNullOrUndefined(this.element)) {\n this.element.style.display = 'none';\n }\n };\n /**\n * Shows the external message of the Pager.\n *\n * @returns {void}s\n */\n ExternalMessage.prototype.showMessage = function () {\n this.element.style.display = '';\n };\n /**\n * To destroy the PagerMessage\n *\n * @function destroy\n * @returns {void}\n * @hidden\n */\n ExternalMessage.prototype.destroy = function () {\n remove(this.element);\n };\n return ExternalMessage;\n}());\nexport { ExternalMessage };\n","import { extend } from '@syncfusion/ej2-base';\nimport { remove, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { Pager } from '../../pager/pager';\nimport { PagerDropDown } from '../../pager/pager-dropdown';\nimport { ExternalMessage } from '../../pager/external-message';\nimport { extend as gridExtend, getActualProperties, isActionPrevent, addRemoveEventListener, appendChildren } from '../base/util';\nimport * as events from '../base/constant';\nimport * as literals from '../base/string-literals';\n/**\n * The `Page` module is used to render pager and handle paging action.\n */\nvar Page = /** @class */ (function () {\n /**\n * Constructor for the Grid paging module\n *\n * @param {IGrid} parent - specifies the IGrid\n * @param {PageSettingsModel} pageSettings - specifies the PageSettingsModel\n * @hidden\n */\n function Page(parent, pageSettings) {\n this.isInitialRender = true;\n this.isCancel = false;\n Pager.Inject(ExternalMessage, PagerDropDown);\n this.parent = parent;\n this.pageSettings = pageSettings;\n this.addEventListener();\n }\n /**\n * For internal use only - Get the module name.\n *\n * @returns {string} returns the module name\n * @private\n */\n Page.prototype.getModuleName = function () {\n return 'pager';\n };\n /**\n * The function used to render pager from grid pageSettings\n *\n * @returns {void}\n * @hidden\n */\n Page.prototype.render = function () {\n var gObj = this.parent;\n this.pagerDestroy();\n if (!isNullOrUndefined(this.parent.pagerTemplate)) {\n this.pageSettings.template = this.parent.pagerTemplate;\n this.parent.pageTemplateChange = true;\n }\n this.element = this.parent.createElement('div', { className: 'e-gridpager' });\n var pagerObj = gridExtend({}, extend({}, getActualProperties(this.pageSettings)), {\n click: this.clickHandler.bind(this),\n dropDownChanged: this.onSelect.bind(this),\n enableRtl: gObj.enableRtl, locale: gObj.locale,\n created: this.addAriaAttr.bind(this)\n }, ['parentObj', 'propName']);\n pagerObj.cssClass = this.parent.cssClass ? this.parent.cssClass : '';\n this.pagerObj = new Pager(pagerObj, undefined, this.parent);\n this.pagerObj.hasParent = true;\n this.pagerObj.on(events.pagerRefresh, this.renderReactPagerTemplate, this);\n this.pagerObj.allowServerDataBinding = false;\n };\n Page.prototype.onSelect = function (e) {\n this.pageSettings.pageSize = e.pageSize;\n if (!this.isInitialLoad) {\n this.pageSettings.currentPage = 1;\n }\n };\n Page.prototype.addAriaAttr = function () {\n if (!(this.pageSettings.template)) {\n var numericContainerNew = this.parent.createElement('div', { className: 'e-numericcontainer' });\n var pagerContainer = this.element.querySelector('.e-pagercontainer');\n var frag = document.createDocumentFragment();\n var numericContainer = this.element.querySelector('.e-numericcontainer');\n var links = numericContainer.querySelectorAll('a');\n for (var i = 0; i < links.length; i++) {\n if (this.parent.getContentTable()) {\n links[parseInt(i.toString(), 10)].setAttribute('aria-owns', this.parent.getContentTable().id);\n }\n else {\n links[parseInt(i.toString(), 10)].setAttribute('aria-owns', this.parent.element.getAttribute('id') + '_content_table');\n }\n var numericContainerDiv = this.parent.createElement('div');\n numericContainerDiv.appendChild(links[parseInt(i.toString(), 10)]);\n frag.appendChild(numericContainerDiv);\n }\n numericContainerNew.appendChild(frag);\n pagerContainer.replaceChild(numericContainerNew, numericContainer);\n var classList = ['.e-mfirst', '.e-mprev', '.e-first', '.e-prev', '.e-next', '.e-last', '.e-mnext', '.e-mlast'];\n for (var j = 0; j < classList.length; j++) {\n var element = this.element.querySelector(classList[parseInt(j.toString(), 10)]);\n if (this.parent.getContentTable()) {\n element.setAttribute('aria-owns', this.parent.getContentTable().id);\n }\n }\n }\n };\n Page.prototype.dataReady = function (e) {\n this.updateModel(e);\n };\n /**\n * Refreshes the page count, pager information, and external message.\n *\n * @returns {void}\n */\n Page.prototype.refresh = function () {\n this.pagerObj.refresh();\n };\n /**\n * Navigates to the target page according to the given number.\n *\n * @param {number} pageNo - Defines the page number to navigate.\n * @returns {void}\n */\n Page.prototype.goToPage = function (pageNo) {\n this.pagerObj.goToPage(pageNo);\n };\n /**\n * @param {number} pageSize - specifies the page size\n * @returns {void}\n * @hidden\n */\n Page.prototype.setPageSize = function (pageSize) {\n this.pagerObj.setPageSize(pageSize);\n };\n /**\n * The function used to update pageSettings model\n *\n * @param {NotifyArgs} e - specfies the NotifyArgs\n * @returns {void}\n * @hidden\n */\n Page.prototype.updateModel = function (e) {\n this.parent.pageSettings.totalRecordsCount = e.count;\n if ((e.action === 'add' && e.requestType === 'save') || (e.requestType === 'batchsave')) {\n if (this.pagerObj.isAllPage && (e.count === this.pageSettings.pageSize)) {\n this.pagerObj.setProperties({ pageSize: e.count }, true);\n }\n }\n this.parent.dataBind();\n };\n /**\n * The function used to trigger onActionComplete\n *\n * @param {NotifyArgs} e - specifies the NotifyArgs\n * @returns {void}\n * @hidden\n */\n Page.prototype.onActionComplete = function (e) {\n this.parent.trigger(events.actionComplete, extend(e, {\n currentPage: this.parent.pageSettings.currentPage, requestType: 'paging',\n type: events.actionComplete\n }));\n };\n /**\n * @param {NotifyArgs} e - specifies the NotifyArgs\n * @returns {void}\n * @hidden\n */\n Page.prototype.onPropertyChanged = function (e) {\n if (e.module !== this.getModuleName()) {\n return;\n }\n var newProp = e.properties;\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n this.pagerObj[\"\" + prop] = newProp[\"\" + prop];\n }\n this.pagerObj.dataBind();\n };\n Page.prototype.clickHandler = function (e) {\n var gObj = this.parent;\n if (this.isForceCancel || isActionPrevent(gObj) && !gObj.prevPageMoving && !this.isCancel) {\n if (!this.isForceCancel) {\n if (!isNullOrUndefined(e.newProp) && !isNullOrUndefined(e.newProp.pageSize)) {\n gObj.notify(events.preventBatch, { instance: this, handler: this.setPageSize, arg1: e.newProp.pageSize });\n this.pagerObj.pageSize = e.oldProp.pageSize;\n gObj.pageSettings.pageSize = e.newProp.pageSize;\n }\n else if (e.currentPage) {\n gObj.notify(events.preventBatch, { instance: this, handler: this.goToPage, arg1: e.currentPage });\n this.pagerObj.currentPage = gObj.pageSettings.currentPage === this.pagerObj.currentPage ?\n this.pagerObj.previousPageNo : gObj.pageSettings.currentPage;\n }\n this.isForceCancel = true;\n this.pagerObj.dataBind();\n }\n else {\n this.isForceCancel = false;\n }\n e.cancel = true;\n return;\n }\n gObj.pageSettings.pageSize = this.pagerObj.pageSize;\n gObj.prevPageMoving = false;\n var prevPage = this.pageSettings.currentPage;\n var args = {\n cancel: false, requestType: 'paging', previousPage: prevPage,\n currentPage: e.currentPage, pageSize: gObj.pageSettings.pageSize, type: events.actionBegin\n };\n if (!this.isCancel) {\n this.pageSettings.currentPage = e.currentPage;\n this.parent.notify(events.modelChanged, args);\n }\n if (args.cancel) {\n e.cancel = true;\n this.pageSettings.currentPage = prevPage;\n this.pagerObj.currentPage = prevPage;\n this.isCancel = true;\n return;\n }\n this.isCancel = false;\n this.parent.requestTypeAction = 'paging';\n };\n Page.prototype.keyPressHandler = function (e) {\n if (e.action in keyActions) {\n e.preventDefault();\n this.element.querySelector(keyActions[e.action]).click();\n }\n };\n /**\n * Defines the text of the external message.\n *\n * @param {string} message - Defines the message to update.\n * @returns {void}\n */\n Page.prototype.updateExternalMessage = function (message) {\n if (!this.pagerObj.enableExternalMessage) {\n this.pagerObj.enableExternalMessage = true;\n this.pagerObj.dataBind();\n }\n this.pagerObj.externalMessage = message;\n this.pagerObj.dataBind();\n };\n Page.prototype.appendToElement = function () {\n this.isInitialLoad = true;\n this.parent.element.appendChild(this.element);\n this.parent.setGridPager(this.element);\n this.pagerObj.isReact = this.parent.isReact;\n this.pagerObj.isVue = this.parent.isVue;\n this.pagerObj.appendTo(this.element);\n this.isInitialLoad = false;\n };\n Page.prototype.enableAfterRender = function (e) {\n if (e.module === this.getModuleName() && e.enable) {\n this.render();\n this.appendToElement();\n if (this.isReactTemplate()) {\n this.pagerObj.updateTotalPages();\n this.created();\n }\n }\n };\n /**\n * @returns {void}\n * @hidden\n */\n Page.prototype.addEventListener = function () {\n this.handlers = {\n load: this.render,\n end: this.appendToElement,\n ready: this.dataReady,\n complete: this.onActionComplete,\n updateLayout: this.enableAfterRender,\n inboundChange: this.onPropertyChanged,\n keyPress: this.keyPressHandler,\n created: this.created\n };\n if (this.parent.isDestroyed) {\n return;\n }\n if (this.parent.isReact || this.parent.isVue) {\n this.parent.addEventListener(literals.create, this.handlers.created.bind(this));\n }\n this.evtHandlers = [{ event: events.initialLoad, handler: this.handlers.load },\n { event: events.initialEnd, handler: this.handlers.end },\n { event: events.dataReady, handler: this.handlers.ready },\n { event: events.pageComplete, handler: this.handlers.complete },\n { event: events.uiUpdate, handler: this.handlers.updateLayout },\n { event: events.inBoundModelChanged, handler: this.handlers.inboundChange },\n { event: events.keyPressed, handler: this.handlers.keyPress },\n { event: events.destroy, handler: this.destroy }];\n addRemoveEventListener(this.parent, this.evtHandlers, true, this);\n };\n Page.prototype.created = function () {\n if (this.isInitialRender && this.isReactTemplate()) {\n this.isInitialRender = false;\n this.renderReactPagerTemplate();\n }\n };\n Page.prototype.isReactTemplate = function () {\n return (this.parent.isReact || this.parent.isVue) && this.pagerObj.template && typeof (this.pagerObj.template) !== 'string';\n };\n Page.prototype.renderReactPagerTemplate = function () {\n if (!this.isInitialRender && this.isReactTemplate()) {\n var result = void 0;\n this.parent.destroyTemplate(['pagerTemplate']);\n this.element.classList.add('e-pagertemplate');\n this.pagerObj.compile(this.pagerObj.template);\n var page = this.parent.pageSettings;\n var data = {\n currentPage: page.currentPage, pageSize: page.pageSize, pageCount: page.pageCount,\n totalRecordsCount: page.totalRecordsCount, totalPages: this.pagerObj.totalPages\n };\n var tempId = this.parent.id + '_pagertemplate';\n if (this.parent.isReact) {\n this.pagerObj.templateFn(data, this.parent, 'pagerTemplate', tempId, null, null, this.pagerObj.element);\n this.parent.renderTemplates();\n }\n else {\n result = this.pagerObj.templateFn(data, this.parent, 'pagerTemplate');\n appendChildren(this.pagerObj.element, result);\n }\n }\n };\n /**\n * @returns {void}\n * @hidden\n */\n Page.prototype.removeEventListener = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n if (this.parent.isReact || this.parent.isVue) {\n this.parent.removeEventListener(literals.create, this.handlers.created);\n }\n this.parent.off(events.pagerRefresh, this.renderReactPagerTemplate);\n addRemoveEventListener(this.parent, this.evtHandlers, false);\n };\n /**\n * To destroy the pager\n *\n * @returns {void}\n * @hidden\n */\n Page.prototype.destroy = function () {\n this.removeEventListener();\n if (this.isReactTemplate()) {\n this.parent.destroyTemplate(['pagerTemplate']);\n }\n this.pagerObj.destroy();\n };\n Page.prototype.pagerDestroy = function () {\n if (this.pagerObj && !this.pagerObj.isDestroyed) {\n this.pagerObj.destroy();\n remove(this.element);\n }\n };\n return Page;\n}());\nexport { Page };\n/**\n * @hidden\n */\nvar keyActions = {\n pageUp: '.e-prev',\n pageDown: '.e-next',\n ctrlAltPageDown: '.e-last',\n ctrlAltPageUp: '.e-first',\n altPageUp: '.e-pp',\n altPageDown: '.e-np'\n};\n","import { Browser } from '@syncfusion/ej2-base';\nimport { extend, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { closest, classList } from '@syncfusion/ej2-base';\nimport { ResponsiveDialogAction } from '../base/enum';\nimport { setCssInGridPopUp, getActualPropFromColl, isActionPrevent, iterateExtend, parentsUntil } from '../base/util';\nimport { addRemoveEventListener } from '../base/util';\nimport * as events from '../base/constant';\nimport { AriaService } from '../services/aria-service';\nimport * as literals from '../base/string-literals';\n/**\n *\n * The `Sort` module is used to handle sorting action.\n */\nvar Sort = /** @class */ (function () {\n /**\n * Constructor for Grid sorting module\n *\n * @param {IGrid} parent - specifies the IGrid\n * @param {SortSettings} sortSettings - specifies the SortSettings\n * @param {string[]} sortedColumns - specifies the string\n * @param {ServiceLocator} locator - specifies the ServiceLocator\n * @hidden\n */\n function Sort(parent, sortSettings, sortedColumns, locator) {\n this.contentRefresh = true;\n this.isModelChanged = true;\n this.aria = new AriaService();\n this.currentTarget = null;\n this.parent = parent;\n this.sortSettings = sortSettings;\n this.sortedColumns = sortedColumns;\n this.serviceLocator = locator;\n this.focus = locator.getService('focus');\n this.addEventListener();\n this.setFullScreenDialog();\n }\n /**\n * The function used to update sortSettings\n *\n * @returns {void}\n * @hidden\n */\n Sort.prototype.updateModel = function () {\n var sortedColumn = { field: this.columnName, direction: this.direction };\n var index;\n var gCols = this.parent.groupSettings.columns;\n var flag = false;\n if (!this.isMultiSort) {\n if (!gCols.length) {\n this.sortSettings.columns = [sortedColumn];\n }\n else {\n var sortedCols = [];\n for (var i = 0, len = gCols.length; i < len; i++) {\n index = this.getSortedColsIndexByField(gCols[parseInt(i.toString(), 10)], sortedCols);\n if (this.columnName === gCols[parseInt(i.toString(), 10)]) {\n flag = true;\n sortedCols.push(sortedColumn);\n }\n else {\n var sCol = this.getSortColumnFromField(gCols[parseInt(i.toString(), 10)]);\n sortedCols.push({ field: sCol.field, direction: sCol.direction, isFromGroup: sCol.isFromGroup });\n }\n }\n if (!flag) {\n sortedCols.push(sortedColumn);\n }\n this.sortSettings.columns = sortedCols;\n }\n }\n else {\n index = this.getSortedColsIndexByField(this.columnName);\n if (index > -1) {\n this.sortSettings.columns.splice(index, 1);\n }\n this.sortSettings.columns.push(sortedColumn);\n // eslint-disable-next-line no-self-assign\n this.sortSettings.columns = this.sortSettings.columns;\n }\n this.parent.dataBind();\n this.lastSortedCol = this.columnName;\n };\n /**\n * The function used to trigger onActionComplete\n *\n * @param {NotifyArgs} e - specifies the NotifyArgs\n * @returns {void}\n * @hidden\n */\n Sort.prototype.onActionComplete = function (e) {\n var args = !this.isRemove ? {\n columnName: this.columnName, direction: this.direction, requestType: 'sorting', type: events.actionComplete\n } : { requestType: 'sorting', type: events.actionComplete };\n this.isRemove = false;\n this.parent.trigger(events.actionComplete, extend(e, args));\n };\n /**\n * Sorts a column with the given options.\n *\n * @param {string} columnName - Defines the column name to sort.\n * @param {SortDirection} direction - Defines the direction of sorting field.\n * @param {boolean} isMultiSort - Specifies whether the previously sorted columns are to be maintained.\n * @returns {void}\n */\n Sort.prototype.sortColumn = function (columnName, direction, isMultiSort) {\n var gObj = this.parent;\n if (this.parent.getColumnByField(columnName).allowSorting === false || this.parent.isContextMenuOpen()) {\n this.parent.log('action_disabled_column', { moduleName: this.getModuleName(), columnName: columnName });\n return;\n }\n if (!gObj.allowMultiSorting) {\n isMultiSort = gObj.allowMultiSorting;\n }\n if (this.isActionPrevent()) {\n gObj.notify(events.preventBatch, {\n instance: this, handler: this.sortColumn,\n arg1: columnName, arg2: direction, arg3: isMultiSort\n });\n return;\n }\n this.backupSettings();\n this.columnName = columnName;\n this.direction = direction;\n this.isMultiSort = isMultiSort;\n this.removeSortIcons();\n this.updateSortedCols(columnName, isMultiSort);\n this.updateModel();\n };\n Sort.prototype.setFullScreenDialog = function () {\n if (this.serviceLocator) {\n this.serviceLocator.registerAdaptiveService(this, this.parent.enableAdaptiveUI, ResponsiveDialogAction.isSort);\n }\n };\n Sort.prototype.backupSettings = function () {\n this.lastSortedCols = iterateExtend(this.sortSettings.columns);\n this.lastCols = this.sortedColumns;\n };\n Sort.prototype.restoreSettings = function () {\n this.isModelChanged = false;\n this.isMultiSort = true;\n this.parent.setProperties({ sortSettings: { columns: this.lastSortedCols } }, true);\n //this.parent.sortSettings.columns = this.lastSortedCols;\n this.sortedColumns = this.lastCols;\n this.isModelChanged = true;\n };\n Sort.prototype.updateSortedCols = function (columnName, isMultiSort) {\n if (!isMultiSort) {\n if (this.parent.allowGrouping) {\n for (var i = 0, len = this.sortedColumns.length; i < len; i++) {\n if (this.parent.groupSettings.columns.indexOf(this.sortedColumns[parseInt(i.toString(), 10)]) < 0) {\n this.sortedColumns.splice(i, 1);\n len--;\n i--;\n }\n }\n }\n else {\n this.sortedColumns.splice(0, this.sortedColumns.length);\n }\n }\n if (this.sortedColumns.indexOf(columnName) < 0) {\n this.sortedColumns.push(columnName);\n }\n };\n /**\n * @param {NotifyArgs} e - specifies the NotifyArgs\n * @returns {void}\n * @hidden\n */\n Sort.prototype.onPropertyChanged = function (e) {\n if (e.module !== this.getModuleName()) {\n return;\n }\n if (this.contentRefresh) {\n var args = this.sortSettings.columns.length ? {\n columnName: this.columnName, direction: this.direction, requestType: 'sorting',\n type: events.actionBegin, target: this.currentTarget, cancel: false\n } : {\n requestType: 'sorting', type: events.actionBegin, cancel: false,\n target: this.currentTarget\n };\n this.parent.notify(events.modelChanged, args);\n }\n this.refreshSortSettings();\n this.removeSortIcons();\n this.addSortIcons();\n };\n Sort.prototype.refreshSortSettings = function () {\n this.sortedColumns.length = 0;\n var sortColumns = this.sortSettings.columns;\n for (var i = 0; i < sortColumns.length; i++) {\n if (!sortColumns[parseInt(i.toString(), 10)].isFromGroup) {\n this.sortedColumns.push(sortColumns[parseInt(i.toString(), 10)].field);\n }\n }\n };\n /**\n * Clears all the sorted columns of the Grid.\n *\n * @returns {void}\n */\n Sort.prototype.clearSorting = function () {\n var cols = getActualPropFromColl(this.sortSettings.columns);\n if (this.isActionPrevent()) {\n this.parent.notify(events.preventBatch, { instance: this, handler: this.clearSorting });\n return;\n }\n for (var i = 0, len = cols.length; i < len; i++) {\n this.removeSortColumn(cols[parseInt(i.toString(), 10)].field);\n }\n };\n Sort.prototype.isActionPrevent = function () {\n return isActionPrevent(this.parent);\n };\n /**\n * Remove sorted column by field name.\n *\n * @param {string} field - Defines the column field name to remove sort.\n * @returns {void}\n * @hidden\n */\n Sort.prototype.removeSortColumn = function (field) {\n var gObj = this.parent;\n var cols = this.sortSettings.columns;\n if (cols.length === 0 && this.sortedColumns.indexOf(field) < 0) {\n return;\n }\n if (this.isActionPrevent()) {\n this.parent.notify(events.preventBatch, { instance: this, handler: this.removeSortColumn, arg1: field });\n return;\n }\n this.backupSettings();\n this.removeSortIcons();\n var args = { requestType: 'sorting', type: events.actionBegin, target: this.currentTarget };\n for (var i = 0, len = cols.length; i < len; i++) {\n if (cols[parseInt(i.toString(), 10)].field === field) {\n if (gObj.allowGrouping && gObj.groupSettings.columns.indexOf(cols[parseInt(i.toString(), 10)].field) > -1) {\n continue;\n }\n this.sortedColumns.splice(this.sortedColumns.indexOf(cols[parseInt(i.toString(), 10)].field), 1);\n cols.splice(i, 1);\n this.isRemove = true;\n if (this.isModelChanged) {\n this.parent.notify(events.modelChanged, args);\n }\n break;\n }\n }\n if (!args.cancel) {\n this.addSortIcons();\n }\n };\n Sort.prototype.getSortedColsIndexByField = function (field, sortedColumns) {\n var cols = sortedColumns ? sortedColumns : this.sortSettings.columns;\n for (var i = 0, len = cols.length; i < len; i++) {\n if (cols[parseInt(i.toString(), 10)].field === field) {\n return i;\n }\n }\n return -1;\n };\n /**\n * For internal use only - Get the module name.\n *\n * @returns {string} returns the module name\n * @private\n */\n Sort.prototype.getModuleName = function () {\n return 'sort';\n };\n Sort.prototype.initialEnd = function () {\n this.parent.off(events.contentReady, this.initialEnd);\n if (this.parent.getColumns().length && this.sortSettings.columns.length) {\n var gObj = this.parent;\n this.contentRefresh = false;\n this.isMultiSort = this.sortSettings.columns.length > 1;\n for (var _i = 0, _a = gObj.sortSettings.columns.slice(); _i < _a.length; _i++) {\n var col = _a[_i];\n if (this.sortedColumns.indexOf(col.field) > -1) {\n this.sortColumn(col.field, col.direction, true);\n }\n }\n this.isMultiSort = false;\n this.contentRefresh = true;\n }\n };\n /**\n * @returns {void}\n * @hidden\n */\n Sort.prototype.addEventListener = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n this.evtHandlers = [{ event: events.setFullScreenDialog, handler: this.setFullScreenDialog },\n { event: events.contentReady, handler: this.initialEnd },\n { event: events.sortComplete, handler: this.onActionComplete },\n { event: events.inBoundModelChanged, handler: this.onPropertyChanged },\n { event: events.click, handler: this.clickHandler },\n { event: events.headerRefreshed, handler: this.refreshSortIcons },\n { event: events.keyPressed, handler: this.keyPressed },\n { event: events.cancelBegin, handler: this.cancelBeginEvent },\n { event: events.destroy, handler: this.destroy }];\n addRemoveEventListener(this.parent, this.evtHandlers, true, this);\n };\n /**\n * @returns {void}\n * @hidden\n */\n Sort.prototype.removeEventListener = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n addRemoveEventListener(this.parent, this.evtHandlers, false);\n };\n /**\n * To destroy the sorting\n *\n * @returns {void}\n * @hidden\n */\n Sort.prototype.destroy = function () {\n this.isModelChanged = false;\n var gridElement = this.parent.element;\n if (!gridElement || (!gridElement.querySelector('.' + literals.gridHeader) && !gridElement.querySelector('.' + literals.gridContent))) {\n return;\n }\n if (this.parent.element.querySelector('.e-gridpopup').getElementsByClassName('e-sortdirect').length) {\n this.parent.element.querySelector('.e-gridpopup').style.display = 'none';\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (!this.parent.refreshing && (this.parent.isDestroyed || !this.parent.allowSorting)) {\n this.clearSorting();\n }\n this.isModelChanged = true;\n this.removeEventListener();\n };\n Sort.prototype.cancelBeginEvent = function (e) {\n if (e.requestType === 'sorting') {\n this.restoreSettings();\n this.refreshSortIcons();\n this.isMultiSort = true;\n }\n };\n Sort.prototype.clickHandler = function (e) {\n var gObj = this.parent;\n this.currentTarget = null;\n this.popUpClickHandler(e);\n var target = closest(e.target, '.e-headercell');\n if (target && !e.target.classList.contains('e-grptogglebtn') &&\n !(target.classList.contains('e-resized')) &&\n !e.target.classList.contains('e-rhandler') &&\n !e.target.classList.contains('e-columnmenu') &&\n !e.target.classList.contains('e-filtermenudiv') &&\n !parentsUntil(e.target, 'e-stackedheadercell') &&\n !(gObj.allowSelection && gObj.selectionSettings.allowColumnSelection &&\n e.target.classList.contains('e-headercell'))) {\n var gObj_1 = this.parent;\n var colObj = gObj_1.getColumnByUid(target.querySelector('.e-headercelldiv').getAttribute('e-mappinguid'));\n if (colObj.type !== 'checkbox') {\n this.initiateSort(target, e, colObj);\n if (Browser.isDevice) {\n this.showPopUp(e);\n }\n }\n }\n if (target) {\n target.classList.remove('e-resized');\n }\n if (parentsUntil(e.target, 'e-excel-ascending') ||\n parentsUntil(e.target, 'e-excel-descending')) {\n var colUid = closest(e.target, '.e-filter-popup').getAttribute('uid');\n var direction = isNullOrUndefined(parentsUntil(e.target, 'e-excel-descending')) ?\n 'Ascending' : 'Descending';\n this.sortColumn(gObj.getColumnByUid(colUid).field, direction, false);\n }\n };\n Sort.prototype.keyPressed = function (e) {\n var ele = e.target;\n if (!this.parent.isEdit && (e.action === 'enter' || e.action === 'ctrlEnter' || e.action === 'shiftEnter')\n && closest(ele, '.e-headercell')) {\n var target = this.focus.getFocusedElement();\n if (isNullOrUndefined(target) || !target.classList.contains('e-headercell')\n || !target.querySelector('.e-headercelldiv')) {\n return;\n }\n var col = this.parent.getColumnByUid(target.querySelector('.e-headercelldiv').getAttribute('e-mappinguid'));\n this.initiateSort(target, e, col);\n }\n };\n Sort.prototype.initiateSort = function (target, e, column) {\n var gObj = this.parent;\n var field = column.field;\n this.currentTarget = e.target;\n var direction = !target.getElementsByClassName('e-ascending').length ? 'Ascending' :\n 'Descending';\n this.isMultiSort = e.ctrlKey || this.enableSortMultiTouch ||\n (navigator.userAgent.indexOf('Mac OS') !== -1 && e.metaKey);\n if (e.shiftKey || (this.sortSettings.allowUnsort && target.getElementsByClassName('e-descending').length)\n && !(gObj.groupSettings.columns.indexOf(field) > -1)) {\n this.removeSortColumn(field);\n }\n else {\n this.sortColumn(field, direction, this.isMultiSort);\n }\n };\n Sort.prototype.showPopUp = function (e) {\n var target = closest(e.target, '.e-headercell');\n if (this.parent.allowMultiSorting && (!isNullOrUndefined(target) || this.parent.isContextMenuOpen())) {\n setCssInGridPopUp(this.parent.element.querySelector('.e-gridpopup'), e, 'e-sortdirect e-icons e-icon-sortdirect' + (this.sortedColumns.length > 1 ? ' e-spanclicked' : ''));\n }\n };\n Sort.prototype.popUpClickHandler = function (e) {\n var target = e.target;\n if (closest(target, '.e-headercell') || e.target.classList.contains(literals.rowCell) ||\n closest(target, '.e-gridpopup')) {\n if (target.classList.contains('e-sortdirect')) {\n if (!target.classList.contains('e-spanclicked')) {\n target.classList.add('e-spanclicked');\n this.enableSortMultiTouch = true;\n }\n else {\n target.classList.remove('e-spanclicked');\n this.enableSortMultiTouch = false;\n this.parent.element.querySelector('.e-gridpopup').style.display = 'none';\n }\n }\n }\n else {\n this.parent.element.querySelector('.e-gridpopup').style.display = 'none';\n }\n };\n Sort.prototype.addSortIcons = function () {\n var gObj = this.parent;\n var header;\n var filterElement;\n var cols = this.sortSettings.columns;\n var fieldNames = this.parent.getColumns().map(function (c) { return c.field; });\n for (var i = 0, len = cols.length; i < len; i++) {\n header = gObj.getColumnHeaderByField(cols[parseInt(i.toString(), 10)].field);\n if (fieldNames.indexOf(cols[parseInt(i.toString(), 10)].field) === -1 || isNullOrUndefined(header)) {\n continue;\n }\n this.aria.setSort(header, (cols[parseInt(i.toString(), 10)].direction).toLowerCase());\n if (cols.length > 1) {\n header.querySelector('.e-headercelldiv').insertBefore(this.parent.createElement('span', { className: 'e-sortnumber', innerHTML: (i + 1).toString() }), header.querySelector('.e-headertext'));\n }\n filterElement = header.querySelector('.e-sortfilterdiv');\n if (cols[parseInt(i.toString(), 10)].direction === 'Ascending') {\n classList(filterElement, ['e-ascending', 'e-icon-ascending'], []);\n }\n else {\n classList(filterElement, ['e-descending', 'e-icon-descending'], []);\n }\n }\n };\n Sort.prototype.removeSortIcons = function (position) {\n var gObj = this.parent;\n var header;\n var cols = this.sortSettings.columns;\n var fieldNames = this.parent.getColumns().map(function (c) { return c.field; });\n for (var i = position ? position : 0, len = !isNullOrUndefined(position) ? position + 1 : cols.length; i < len; i++) {\n header = gObj.getColumnHeaderByField(cols[parseInt(i.toString(), 10)].field);\n if (isNullOrUndefined(header) || (gObj.allowGrouping\n && gObj.groupSettings.columns.indexOf(cols[parseInt(i.toString(), 10)].field) > -1\n && !header.querySelector('.e-sortfilterdiv'))) {\n continue;\n }\n if (fieldNames.indexOf(cols[parseInt(i.toString(), 10)].field) === -1) {\n continue;\n }\n this.aria.setSort(header, 'none');\n classList(header.querySelector('.e-sortfilterdiv'), [], ['e-descending', 'e-icon-descending', 'e-ascending', 'e-icon-ascending']);\n if (header.querySelector('.e-sortnumber')) {\n header.querySelector('.e-headercelldiv').removeChild(header.querySelector('.e-sortnumber'));\n }\n }\n };\n Sort.prototype.getSortColumnFromField = function (field) {\n for (var i = 0, len = this.sortSettings.columns.length; i < len; i++) {\n if (this.sortSettings.columns[parseInt(i.toString(), 10)].field === field) {\n return this.sortSettings.columns[parseInt(i.toString(), 10)];\n }\n }\n return false;\n };\n Sort.prototype.updateAriaAttr = function () {\n var fieldNames = this.parent.getColumns().map(function (c) { return c.field; });\n for (var _i = 0, _a = this.sortedColumns; _i < _a.length; _i++) {\n var col = _a[_i];\n if (fieldNames.indexOf(col) === -1) {\n continue;\n }\n var header = this.parent.getColumnHeaderByField(col);\n this.aria.setSort(header, this.getSortColumnFromField(col).direction);\n }\n };\n Sort.prototype.refreshSortIcons = function (params) {\n if (params === void 0) { params = { args: { isFrozen: false } }; }\n if (!params.args.isFrozen) {\n this.removeSortIcons();\n this.isMultiSort = true;\n this.removeSortIcons();\n this.addSortIcons();\n this.isMultiSort = false;\n this.updateAriaAttr();\n }\n };\n /**\n * To show the responsive custom sort dialog\n *\n * @param {boolean} enable - specifes dialog open\n * @returns {void}\n * @hidden\n */\n Sort.prototype.showCustomSort = function (enable) {\n this.responsiveDialogRenderer.isCustomDialog = enable;\n this.responsiveDialogRenderer.showResponsiveDialog();\n };\n return Sort;\n}());\nexport { Sort };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { isNullOrUndefined, getValue, closest } from '@syncfusion/ej2-base';\nimport { attributes } from '@syncfusion/ej2-base';\nimport { CellRenderer } from './cell-renderer';\nimport { Input } from '@syncfusion/ej2-inputs';\nimport { appendChildren } from '../base/util';\nimport { DropDownList } from '@syncfusion/ej2-dropdowns';\nimport * as events from '../base/constant';\n/**\n * FilterCellRenderer class which responsible for building filter cell.\n *\n * @hidden\n */\nvar FilterCellRenderer = /** @class */ (function (_super) {\n __extends(FilterCellRenderer, _super);\n function FilterCellRenderer() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.element = _this.parent.createElement('TH', { className: 'e-filterbarcell' });\n return _this;\n }\n /**\n * Function to return the wrapper for the TH content.\n *\n * @returns {string} returns the gui\n */\n FilterCellRenderer.prototype.getGui = function () {\n return this.parent.createElement('div');\n };\n /**\n * Function to render the cell content based on Column object.\n *\n * @param {Cell} cell\n * @param {Object} data\n */\n /* tslint:disable-next-line:max-func-body-length */\n FilterCellRenderer.prototype.render = function (cell, data) {\n var tr = this.parent.element.querySelector('.e-filterbar');\n var node = this.element.cloneNode();\n var innerDIV = this.getGui();\n var input;\n var column = cell.column;\n tr.appendChild(node);\n node.setAttribute('e-mappinguid', column.uid);\n if (column.filterTemplate) {\n var fltrData = {};\n if (data) {\n fltrData[column.field] = data[column.field];\n }\n var col = 'column';\n fltrData[\"\" + col] = column;\n if (column.visible) {\n var isReactCompiler = this.parent.isReact && typeof (column.filterTemplate) !== 'string';\n var isReactChild = this.parent.parentDetails && this.parent.parentDetails.parentInstObj &&\n this.parent.parentDetails.parentInstObj.isReact;\n var tempID = this.parent.element.id + column.uid + 'filterTemplate';\n if (isReactCompiler || isReactChild) {\n column.getFilterTemplate()(fltrData, this.parent, 'filterTemplate', tempID, null, null, node);\n this.parent.renderTemplates();\n }\n else {\n var element = column.getFilterTemplate()(fltrData, this.parent, 'filterTemplate', tempID);\n appendChildren(node, element);\n }\n }\n else {\n node.classList.add('e-hide');\n }\n }\n else {\n if (column.type !== 'checkbox') {\n if ((isNullOrUndefined(column.allowFiltering) || column.allowFiltering) && !isNullOrUndefined(column.filterBarTemplate)) {\n node.classList.add('e-fltrtemp');\n attributes(innerDIV, {\n 'class': 'e-fltrtempdiv'\n });\n if (isNullOrUndefined(column.filterBarTemplate.create)) {\n input = this.parent.createElement('input', {\n id: column.field + '_filterBarcell', className: 'e-filterUi_input e-filtertext e-fltrTemp',\n attrs: { type: 'search', title: column.headerText }\n });\n innerDIV.appendChild(input);\n }\n else {\n var args = { column: column, node: Element };\n var temp = column.filterBarTemplate.create;\n if (typeof temp === 'string') {\n temp = getValue(temp, window);\n }\n input = temp(args);\n if (typeof input === 'string') {\n var div = this.parent.createElement('div');\n div.innerHTML = input;\n input = div.firstChild;\n }\n attributes(innerDIV, {\n class: 'e-filterUi_input e-filtertext e-fltrTemp',\n title: column.headerText,\n id: column.field + '_filterBarcell'\n });\n innerDIV.appendChild(input);\n }\n }\n else {\n attributes(innerDIV, {\n 'class': 'e-filterdiv e-fltrinputdiv'\n });\n input = this.parent.createElement('input', {\n id: column.field + '_filterBarcell', className: 'e-filtertext',\n attrs: {\n type: 'search', title: column.headerText + cell.attributes.title,\n value: data[cell.column.field] ? data[cell.column.field] : '', role: 'search'\n }\n });\n innerDIV.appendChild(input);\n var args = {\n element: input, floatLabelType: 'Never',\n properties: {\n enableRtl: this.parent.enableRtl, showClearButton: true, cssClass: this.parent.cssClass\n }\n };\n Input.createInput(args, this.parent.createElement);\n }\n //TODO: apply intial filtering\n if (column.allowFiltering === false || column.field === '' || isNullOrUndefined(column.field)) {\n input.setAttribute('disabled', 'true');\n input.classList.add('e-disable');\n }\n var clearIconElem = innerDIV.querySelector('.e-clear-icon');\n if (clearIconElem) {\n clearIconElem.setAttribute('title', this.parent.localeObj.getConstant('ClearButton'));\n }\n if (!column.visible) {\n node.classList.add('e-hide');\n }\n this.appendHtml(node, innerDIV);\n // render's the dropdownlist component if showFilterBarOperator sets to true\n if (this.parent.filterSettings.showFilterBarOperator && this.parent.filterSettings.type === 'FilterBar' &&\n !this.parent.isPrinting && isNullOrUndefined(column.filterTemplate) && isNullOrUndefined(column.filterBarTemplate)) {\n this.operatorIconRender(innerDIV, column, cell);\n }\n if ((isNullOrUndefined(column.allowFiltering) || column.allowFiltering) && !isNullOrUndefined(column.filterBarTemplate)) {\n var templateWrite = column.filterBarTemplate.write;\n var args = { element: input, column: column };\n if (typeof templateWrite === 'string') {\n templateWrite = getValue(templateWrite, window);\n }\n templateWrite.call(this, args);\n }\n }\n }\n return node;\n };\n /**\n * Function to specifies how the result content to be placed in the cell.\n *\n * @param {Element} node - specifies the node\n * @param {string|Element} innerHtml - specifies the innerHTML\n * @returns {Element} retruns the element\n */\n FilterCellRenderer.prototype.appendHtml = function (node, innerHtml) {\n node.appendChild(innerHtml);\n return node;\n };\n FilterCellRenderer.prototype.operatorIconRender = function (innerDIV, column, cell) {\n var gObj = this.parent;\n var operators;\n var fbicon = this.parent.createElement('input', {\n className: ' e-filterbaroperator e-icons e-icon-filter',\n id: cell.column.uid\n });\n innerDIV.querySelector('span').appendChild(fbicon);\n if (column.filter && column.filter.operator) {\n operators = column.filter.operator;\n }\n else if (gObj.filterSettings.columns.length) {\n for (var i = 0, a = gObj.filterSettings.columns; i < a.length; i++) {\n var col = a[parseInt(i.toString(), 10)];\n if (col.field === column.field) {\n operators = col.operator;\n }\n else {\n operators = 'equal';\n }\n }\n }\n else {\n operators = 'equal';\n }\n if (!isNullOrUndefined(gObj.filterModule.operators[column.field])) {\n operators = gObj.filterModule.operators[column.field];\n }\n this.dropOptr = new DropDownList({\n fields: { text: 'text', value: 'value' },\n popupHeight: 'auto',\n value: operators,\n width: '0px',\n enabled: column.allowFiltering,\n popupWidth: 'auto',\n enableRtl: this.parent.enableRtl,\n change: this.internalEvent.bind(this),\n beforeOpen: function () {\n var operator = gObj.filterModule.customOperators;\n this.dataSource = operator[gObj.getColumnByUid(this.element.id).type + 'Operator'];\n for (var i = 0; i < this.dataSource.length; i++) {\n if (column.filter && column.filter.operator && isNullOrUndefined(gObj.filterModule.operators[column.field]) &&\n this.dataSource[parseInt(i.toString(), 10)].value === column.filter.operator) {\n this.value = column.filter.operator;\n }\n }\n },\n cssClass: this.parent.cssClass ? 'e-popup-flbar' + ' ' + this.parent.cssClass : 'e-popup-flbar'\n });\n this.dropOptr.appendTo(fbicon);\n var spanElmt = closest(this.dropOptr.element, 'span');\n spanElmt.classList.add('e-filterbardropdown');\n spanElmt.removeAttribute('tabindex');\n };\n FilterCellRenderer.prototype.internalEvent = function (e) {\n var gObj = this.parent;\n var col = gObj.getColumnByUid(e.element.getAttribute('id'));\n e.column = col;\n gObj.filterModule.operators[col.field] = e.value;\n gObj.notify(events.getFilterBarOperator, e);\n };\n return FilterCellRenderer;\n}(CellRenderer));\nexport { FilterCellRenderer };\n","import { DropDownList } from '@syncfusion/ej2-dropdowns';\nimport { isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { Query, DataManager } from '@syncfusion/ej2-data';\nimport * as events from '../base/constant';\nimport * as literals from '../base/string-literals';\n/**\n * `filter operators` render boolean column.\n *\n * @hidden\n */\nvar FlMenuOptrUI = /** @class */ (function () {\n function FlMenuOptrUI(parent, customFltrOperators, serviceLocator, filterSettings) {\n this.ddOpen = this.dropDownOpen.bind(this);\n this.parent = parent;\n this.serviceLocator = serviceLocator;\n this.filterSettings = filterSettings;\n this.customFilterOperators = customFltrOperators;\n if (this.parent) {\n this.parent.on(events.filterMenuClose, this.destroyDropDownList, this);\n this.parent.on(events.destroy, this.destroyDropDownList, this);\n }\n }\n /**\n * @param {Element} dlgConetntEle - specifies the content element\n * @param {Element} target - specifies the target\n * @param {Column} column - specifies the column\n * @param {Dialog} dlgObj - specifies the dialog\n * @param {Object[]} operator - specifies the operator list\n * @returns {void}\n * @hidden\n */\n // eslint-disable-next-line max-len\n FlMenuOptrUI.prototype.renderOperatorUI = function (dlgConetntEle, target, column, dlgObj, operator) {\n this.dialogObj = dlgObj;\n var optr = column.type + 'Operator';\n this.optrData = this.customOptr = !isNullOrUndefined(operator) ? operator :\n (!isNullOrUndefined(this.parent.filterSettings.operators) && !isNullOrUndefined(this.parent.filterSettings.operators[\"\" + optr])) ?\n this.parent.filterSettings.operators[\"\" + optr] : this.customFilterOperators[\"\" + optr];\n var dropDatasource = this.customOptr;\n var selectedValue = this.dropSelectedVal(column, optr);\n var optrDiv = this.parent.createElement('div', { className: 'e-flm_optrdiv' });\n dlgConetntEle.appendChild(optrDiv);\n var optrInput = this.parent.createElement('input', { id: column.uid + '-floptr' });\n optrDiv.appendChild(optrInput);\n this.dropOptr = new DropDownList({\n dataSource: dropDatasource,\n fields: { text: 'text', value: 'value' },\n cssClass: this.parent.cssClass ? 'e-popup-flmenu' + ' ' + this.parent.cssClass : 'e-popup-flmenu',\n enableRtl: this.parent.enableRtl,\n text: selectedValue,\n // eslint-disable-next-line @typescript-eslint/tslint/config\n change: function () {\n var valInput = document.querySelector('.e-flmenu-valuediv').querySelector('input');\n if (this.value === 'isempty' || this.value === 'isnotempty' ||\n this.value === 'isnull' || this.value === 'isnotnull') {\n valInput.setAttribute('disabled', '');\n }\n else if (!isNullOrUndefined(valInput.getAttribute('disabled'))) {\n valInput.removeAttribute('disabled');\n }\n }\n });\n this.dropOptr.addEventListener(literals['open'], this.ddOpen);\n this.dropOptr.appendTo('#' + column.uid + '-floptr');\n };\n FlMenuOptrUI.prototype.renderResponsiveDropDownList = function (args) {\n args.popup.element.style.width = '100%';\n };\n FlMenuOptrUI.prototype.dropDownOpen = function (args) {\n args.popup.element.style.zIndex = (this.dialogObj.zIndex + 1).toString();\n if (this.parent.enableAdaptiveUI) {\n this.renderResponsiveDropDownList(args);\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n FlMenuOptrUI.prototype.dropSelectedVal = function (col, optr) {\n var selValue = '';\n var columns = this.parent.filterSettings.columns;\n for (var _i = 0, columns_1 = columns; _i < columns_1.length; _i++) {\n var column = columns_1[_i];\n if (col.field === column.field || (col.isForeignColumn() && col.foreignKeyValue === column.field)) {\n var selectedField = new DataManager(this.optrData).executeLocal(new Query().where('value', 'equal', column.operator));\n selValue = !isNullOrUndefined(selectedField[0]) ? selectedField[0].text : '';\n }\n }\n if (selValue === '') { // rewuired or not\n if (col.filter.operator) {\n var optrLen = Object.keys(this.optrData).length;\n for (var i = 0; i < optrLen; i++) {\n if (this.optrData[parseInt(i.toString(), 10)].value === col.filter.operator) {\n selValue = this.optrData[parseInt(i.toString(), 10)].text;\n }\n }\n }\n else {\n selValue = this.optrData[0].text;\n }\n }\n return selValue;\n };\n /**\n * @returns {string} returns the operator\n * @hidden\n */\n FlMenuOptrUI.prototype.getFlOperator = function () {\n return this.dropOptr.value;\n };\n FlMenuOptrUI.prototype.destroyDropDownList = function () {\n if (this.dropOptr.isDestroyed) {\n return;\n }\n this.dropOptr.removeEventListener(literals['open'], this.ddOpen);\n this.dropOptr.destroy();\n this.parent.off(events.filterMenuClose, this.destroyDropDownList);\n this.parent.off(events.destroy, this.destroyDropDownList);\n };\n return FlMenuOptrUI;\n}());\nexport { FlMenuOptrUI };\n","import { AutoComplete } from '@syncfusion/ej2-dropdowns';\nimport { DataManager, Query, Predicate } from '@syncfusion/ej2-data';\nimport { Browser, isNullOrUndefined, extend, getValue } from '@syncfusion/ej2-base';\nimport { getZIndexCalcualtion, eventPromise } from '../base/util';\nimport * as events from '../base/constant';\nimport * as literals from '../base/string-literals';\nimport { CheckBoxFilterBase } from '../common/checkbox-filter-base';\n/**\n * `string filterui` render string column.\n *\n * @hidden\n */\nvar StringFilterUI = /** @class */ (function () {\n function StringFilterUI(parent, serviceLocator, filterSettings) {\n this.parent = parent;\n this.serLocator = serviceLocator;\n this.filterSettings = filterSettings;\n if (this.parent) {\n this.parent.on(events.filterMenuClose, this.destroy, this);\n this.parent.on(events.destroy, this.destroy, this);\n }\n }\n StringFilterUI.prototype.create = function (args) {\n this.instance = this.parent.createElement('input', { className: 'e-flmenu-input', id: 'strui-' + args.column.uid });\n args.target.appendChild(this.instance);\n this.dialogObj = args.dialogObj;\n this.processDataOperation(args);\n };\n StringFilterUI.prototype.processDataOperation = function (args) {\n var _this = this;\n if (args.column.isForeignColumn()) {\n this.parent.getDataModule().dataManager.executeQuery(this.parent.getDataModule().generateQuery(true))\n .then(function (result) { _this.getAutoCompleteOptions(args, result); });\n return;\n }\n this.getAutoCompleteOptions(args);\n };\n StringFilterUI.prototype.getAutoCompleteOptions = function (args, result) {\n var isForeignColumn = args.column.isForeignColumn();\n var foreignColumnQuery;\n if (isForeignColumn) {\n var filteredData = CheckBoxFilterBase.getDistinct(result.result, args.column.field)\n .records || [];\n var filterQuery = void 0;\n for (var i = 0; i < filteredData.length; i++) {\n if (filterQuery) {\n filterQuery = filterQuery.or(args.column.field, 'contains', filteredData[parseInt(i.toString(), 10)][args.column.field], this.parent\n .filterSettings.enableCaseSensitivity, this.parent.filterSettings.ignoreAccent);\n }\n else {\n filterQuery = new Predicate(args.column.field, 'contains', filteredData[parseInt(i.toString(), 10)][args.column.field], this.parent\n .filterSettings.enableCaseSensitivity, this.parent.filterSettings.ignoreAccent);\n }\n }\n foreignColumnQuery = new Query().where(filterQuery);\n foreignColumnQuery.params = this.parent.query.params;\n }\n var dataSource = isForeignColumn ? args.column.dataSource : this.parent.dataSource;\n var fields = { value: isForeignColumn ? args.column.foreignKeyValue : args.column.field };\n var autoComplete = new AutoComplete(extend({\n dataSource: dataSource instanceof DataManager ? dataSource : new DataManager(dataSource),\n fields: fields,\n locale: this.parent.locale,\n enableRtl: this.parent.enableRtl,\n query: isForeignColumn ? foreignColumnQuery : this.parent.getDataModule().generateQuery(true, true),\n sortOrder: 'Ascending',\n cssClass: this.parent.cssClass ? 'e-popup-flmenu' + ' ' + this.parent.cssClass : 'e-popup-flmenu',\n autofill: true,\n placeholder: args.localizeText.getConstant('EnterValue'),\n actionBegin: function () {\n if (this.query.queries.length && this.query.queries[0].fn === 'onWhere' && this.query.queries[0].e\n && this.query.queries[0].e.predicates) {\n for (var i = 0; i < this.query.queries[0].e.predicates.length; i++) {\n if (this.properties.fields.value === this.query.queries[0].e.predicates[\"\" + i].field) {\n this.query.queries[0].e.predicates.splice(i, 1);\n i = i - 1;\n }\n }\n if (!this.query.queries[0].e.predicates.length) {\n this.query.queries.splice(0, 1);\n }\n }\n }\n }, args.column.filter.params));\n this.acFocus = this.focus(autoComplete, args);\n this.acComplete = this.actionComplete(autoComplete);\n this.acOpen = this.openPopup.bind(this);\n autoComplete.addEventListener(literals.focus, this.acFocus);\n autoComplete.addEventListener(literals['open'], this.acOpen);\n autoComplete.addEventListener(events.actionComplete, this.acComplete);\n if (dataSource && 'result' in dataSource) {\n var query = this.parent.getQuery ? this.parent.getQuery().clone() : new Query();\n var defObj = eventPromise({ requestType: 'stringfilterrequest' }, query);\n this.parent.trigger(events.dataStateChange, defObj.state);\n var def = defObj.deffered;\n def.promise.then(function (e) {\n autoComplete.dataSource = new DataManager(e);\n });\n }\n this.actObj = autoComplete;\n this.actObj.appendTo(this.instance);\n if (isForeignColumn) {\n this.parent.filterModule.filterModule.afterRenderFilterUI();\n }\n };\n StringFilterUI.prototype.write = function (args) {\n if (args.filteredValue !== '' && !isNullOrUndefined(args.filteredValue)) {\n var struiObj = document.querySelector('#strui-' + args.column.uid).ej2_instances[0];\n struiObj.value = args.filteredValue;\n }\n };\n StringFilterUI.prototype.read = function (element, column, filterOptr, filterObj) {\n var actuiObj = document.querySelector('#strui-' + column.uid).ej2_instances[0];\n if (Browser.isDevice) {\n actuiObj.hidePopup();\n actuiObj.focusOut();\n }\n var filterValue = actuiObj.value;\n if (isNullOrUndefined(filterValue) || filterValue === '') {\n filterValue = null;\n }\n filterObj.filterByColumn(column.field, filterOptr, filterValue, 'and', this.parent.filterSettings.enableCaseSensitivity);\n };\n StringFilterUI.prototype.openPopup = function (args) {\n getZIndexCalcualtion(args, this.dialogObj);\n };\n StringFilterUI.prototype.focus = function (actObj, args) {\n return function () {\n actObj.filterType = args.getOptrInstance.getFlOperator();\n };\n };\n StringFilterUI.prototype.actionComplete = function (actObj) {\n return function (e) {\n e.result = e.result.filter(function (obj, index, arr) {\n return arr.map(function (mapObj) {\n return (getValue(actObj.fields.value, mapObj));\n }).indexOf(getValue((actObj.fields.value), obj)) === index;\n });\n };\n };\n StringFilterUI.prototype.destroy = function () {\n if (!this.actObj || this.actObj.isDestroyed) {\n return;\n }\n this.actObj.removeEventListener(literals.focus, this.acFocus);\n this.actObj.removeEventListener(literals['open'], this.acOpen);\n this.actObj.removeEventListener(events.actionComplete, this.acComplete);\n this.actObj.destroy();\n this.parent.off(events.filterMenuClose, this.destroy);\n this.parent.off(events.destroy, this.destroy);\n };\n return StringFilterUI;\n}());\nexport { StringFilterUI };\n","import { NumericTextBox } from '@syncfusion/ej2-inputs';\nimport { extend, isUndefined } from '@syncfusion/ej2-base';\nimport * as events from '../base/constant';\n/**\n * `numberfilterui` render number column.\n *\n * @hidden\n */\nvar NumberFilterUI = /** @class */ (function () {\n function NumberFilterUI(parent, serviceLocator, filterSettings) {\n this.filterSettings = filterSettings;\n this.parent = parent;\n this.serviceLocator = serviceLocator;\n if (this.parent) {\n this.parent.on(events.filterMenuClose, this.destroy, this);\n this.parent.on(events.destroy, this.destroy, this);\n }\n }\n NumberFilterUI.prototype.keyEventHandler = function (args) {\n if (args.keyCode === 13 || args.keyCode === 9) {\n var evt = document.createEvent('HTMLEvents');\n evt.initEvent('change', false, true);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.dispatchEvent(evt);\n }\n };\n NumberFilterUI.prototype.create = function (args) {\n this.instance = this.parent.createElement('input', { className: 'e-flmenu-input', id: 'numberui-' + args.column.uid });\n args.target.appendChild(this.instance);\n this.numericTxtObj = new NumericTextBox(extend({\n format: typeof (args.column.format) === 'string' || isUndefined(args.column.format) ? args.column.format :\n args.column.format.format,\n locale: this.parent.locale,\n cssClass: this.parent.cssClass ? 'e-popup-flmenu' + ' ' + this.parent.cssClass : 'e-popup-flmenu',\n placeholder: args.localizeText.getConstant('EnterValue'),\n enableRtl: this.parent.enableRtl\n }, args.column.filter.params));\n this.numericTxtObj.appendTo(this.instance);\n };\n NumberFilterUI.prototype.write = function (args) {\n var numberuiObj = document.querySelector('#numberui-' + args.column.uid).ej2_instances[0];\n numberuiObj.element.addEventListener('keydown', this.keyEventHandler);\n numberuiObj.value = args.filteredValue;\n };\n NumberFilterUI.prototype.read = function (element, column, filterOptr, filterObj) {\n var numberuiObj = document.querySelector('#numberui-' + column.uid).ej2_instances[0];\n var filterValue = numberuiObj.value;\n filterObj.filterByColumn(column.field, filterOptr, filterValue, 'and', true);\n };\n NumberFilterUI.prototype.destroy = function () {\n if (!this.numericTxtObj || this.numericTxtObj.isDestroyed) {\n return;\n }\n this.numericTxtObj.destroy();\n this.parent.off(events.filterMenuClose, this.destroy);\n this.parent.off(events.destroy, this.destroy);\n };\n return NumberFilterUI;\n}());\nexport { NumberFilterUI };\n","import { getZIndexCalcualtion } from '../base/util';\nimport { Query, DataManager, DataUtil } from '@syncfusion/ej2-data';\nimport { DropDownList } from '@syncfusion/ej2-dropdowns';\nimport { isNullOrUndefined, extend } from '@syncfusion/ej2-base';\nimport * as events from '../base/constant';\nimport * as literals from '../base/string-literals';\n/**\n * `boolfilterui` render boolean column.\n *\n * @hidden\n */\nvar BooleanFilterUI = /** @class */ (function () {\n function BooleanFilterUI(parent, serviceLocator, filterSettings) {\n this.parent = parent;\n this.serviceLocator = serviceLocator;\n this.filterSettings = filterSettings;\n if (this.parent) {\n this.parent.on(events.filterMenuClose, this.destroy, this);\n this.parent.on(events.destroy, this.destroy, this);\n }\n }\n BooleanFilterUI.prototype.create = function (args) {\n var isForeignColumn = args.column.isForeignColumn();\n var dataSource = isForeignColumn ? args.column.dataSource : this.parent.dataSource;\n var fields = isForeignColumn ? args.column.foreignKeyValue : args.column.field;\n this.elem = this.parent.createElement('input', { className: 'e-flmenu-input', id: 'bool-ui-' + args.column.uid });\n args.target.appendChild(this.elem);\n this.dialogObj = args.dialogObj;\n this.dropInstance = new DropDownList(extend({\n dataSource: dataSource instanceof DataManager ?\n dataSource : new DataManager(dataSource),\n query: new Query().select(fields),\n fields: { text: fields, value: fields },\n placeholder: args.localizeText.getConstant('SelectValue'),\n cssClass: this.parent.cssClass ? 'e-popup-flmenu' + ' ' + this.parent.cssClass : 'e-popup-flmenu',\n locale: this.parent.locale,\n enableRtl: this.parent.enableRtl\n }, args.column.filter.params));\n this.ddOpen = this.openPopup.bind(this);\n this.ddComplete = this.actionComplete(fields);\n this.dropInstance.addEventListener(literals['open'], this.ddOpen);\n this.dropInstance.addEventListener(events.actionComplete, this.ddComplete);\n this.dropInstance.appendTo(this.elem);\n };\n BooleanFilterUI.prototype.write = function (args) {\n var drpuiObj = document.querySelector('#bool-ui-' + args.column.uid).ej2_instances[0];\n if (!isNullOrUndefined(args.filteredValue)) {\n drpuiObj.value = args.filteredValue;\n }\n };\n BooleanFilterUI.prototype.read = function (element, column, filterOptr, filterObj) {\n var drpuiObj = document.querySelector('#bool-ui-' + column.uid).ej2_instances[0];\n var filterValue = drpuiObj.value;\n filterObj.filterByColumn(column.field, filterOptr, filterValue, 'and', false);\n };\n BooleanFilterUI.prototype.openPopup = function (args) {\n getZIndexCalcualtion(args, this.dialogObj);\n };\n BooleanFilterUI.prototype.actionComplete = function (fields) {\n return function (e) {\n e.result = DataUtil.distinct(e.result, fields, true);\n };\n };\n BooleanFilterUI.prototype.destroy = function () {\n if (!this.dropInstance || this.dropInstance.isDestroyed) {\n return;\n }\n this.dropInstance.removeEventListener(literals['open'], this.ddOpen);\n this.dropInstance.removeEventListener(events.actionComplete, this.ddComplete);\n this.dropInstance.destroy();\n this.parent.off(events.filterMenuClose, this.destroy);\n this.parent.off(events.destroy, this.destroy);\n };\n return BooleanFilterUI;\n}());\nexport { BooleanFilterUI };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n// eslint-disable-next-line @typescript-eslint/triple-slash-reference\n///\nimport { EventHandler, Internationalization, Property, NotifyPropertyChanges, Browser } from '@syncfusion/ej2-base';\nimport { Animation, Event, cldrData, getDefaultDateObject, detach } from '@syncfusion/ej2-base';\nimport { createElement, remove, addClass, L10n, removeClass, closest, append, attributes } from '@syncfusion/ej2-base';\nimport { KeyboardEvents, isNullOrUndefined, formatUnit, getValue, rippleEffect } from '@syncfusion/ej2-base';\nimport { extend } from '@syncfusion/ej2-base';\nimport { Popup } from '@syncfusion/ej2-popups';\nimport { Input } from '@syncfusion/ej2-inputs';\nimport { DatePicker } from '../datepicker/datepicker';\nimport { TimePickerBase } from '../timepicker/timepicker';\n//class constant defination\nvar DATEWRAPPER = 'e-date-wrapper';\nvar DATEPICKERROOT = 'e-datepicker';\nvar DATETIMEWRAPPER = 'e-datetime-wrapper';\nvar DAY = new Date().getDate();\nvar MONTH = new Date().getMonth();\nvar YEAR = new Date().getFullYear();\nvar HOUR = new Date().getHours();\nvar MINUTE = new Date().getMinutes();\nvar SECOND = new Date().getSeconds();\nvar MILLISECOND = new Date().getMilliseconds();\nvar ROOT = 'e-datetimepicker';\nvar DATETIMEPOPUPWRAPPER = 'e-datetimepopup-wrapper';\nvar INPUTWRAPPER = 'e-input-group-icon';\nvar POPUP = 'e-popup';\nvar TIMEICON = 'e-time-icon';\nvar INPUTFOCUS = 'e-input-focus';\nvar POPUPDIMENSION = '250px';\nvar ICONANIMATION = 'e-icon-anim';\nvar DISABLED = 'e-disabled';\nvar ERROR = 'e-error';\nvar CONTENT = 'e-content';\nvar NAVIGATION = 'e-navigation';\nvar ACTIVE = 'e-active';\nvar HOVER = 'e-hover';\nvar ICONS = 'e-icons';\nvar HALFPOSITION = 2;\nvar LISTCLASS = 'e-list-item';\nvar ANIMATIONDURATION = 100;\nvar OVERFLOW = 'e-time-overflow';\n/**\n * Represents the DateTimePicker component that allows user to select\n * or enter a date time value.\n * ```html\n * \n * ```\n * ```typescript\n * \n * ```\n */\nvar DateTimePicker = /** @class */ (function (_super) {\n __extends(DateTimePicker, _super);\n /**\n * Constructor for creating the widget\n *\n * @param {DateTimePickerModel} options - Specifies the DateTimePicker model.\n * @param {string | HTMLInputElement} element - Specifies the element to render as component.\n * @private\n */\n function DateTimePicker(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.valueWithMinutes = null;\n _this.scrollInvoked = false;\n _this.moduleName = _this.getModuleName();\n _this.dateTimeOptions = options;\n return _this;\n }\n DateTimePicker.prototype.focusHandler = function () {\n if (!this.enabled) {\n return;\n }\n addClass([this.inputWrapper.container], INPUTFOCUS);\n };\n /**\n * Sets the focus to widget for interaction.\n *\n * @returns {void}\n */\n DateTimePicker.prototype.focusIn = function () {\n _super.prototype.focusIn.call(this);\n };\n /**\n * Remove the focus from widget, if the widget is in focus state.\n *\n * @returns {void}\n */\n DateTimePicker.prototype.focusOut = function () {\n if (document.activeElement === this.inputElement) {\n this.inputElement.blur();\n removeClass([this.inputWrapper.container], [INPUTFOCUS]);\n }\n };\n DateTimePicker.prototype.blurHandler = function (e) {\n if (!this.enabled) {\n return;\n }\n // IE popup closing issue when click over the scrollbar\n if (this.isTimePopupOpen() && this.isPreventBlur) {\n this.inputElement.focus();\n return;\n }\n removeClass([this.inputWrapper.container], INPUTFOCUS);\n var blurArguments = {\n model: this\n };\n if (this.isTimePopupOpen()) {\n this.hide(e);\n }\n this.trigger('blur', blurArguments);\n };\n /**\n * To destroy the widget.\n *\n * @returns {void}\n */\n DateTimePicker.prototype.destroy = function () {\n if (this.popupObject && this.popupObject.element.classList.contains(POPUP)) {\n this.popupObject.destroy();\n detach(this.dateTimeWrapper);\n this.dateTimeWrapper = undefined;\n this.liCollections = this.timeCollections = [];\n if (!isNullOrUndefined(this.rippleFn)) {\n this.rippleFn();\n }\n }\n var ariaAttribute = {\n 'aria-live': 'assertive', 'aria-atomic': 'true', 'aria-invalid': 'false',\n 'autocorrect': 'off', 'autocapitalize': 'off', 'spellcheck': 'false',\n 'aria-expanded': 'false', 'role': 'combobox', 'autocomplete': 'off'\n };\n if (this.inputElement) {\n Input.removeAttributes(ariaAttribute, this.inputElement);\n }\n if (this.isCalendar()) {\n if (this.popupWrapper) {\n detach(this.popupWrapper);\n }\n this.popupObject = this.popupWrapper = null;\n this.keyboardHandler.destroy();\n }\n this.unBindInputEvents();\n this.liCollections = null;\n this.rippleFn = null;\n this.selectedElement = null;\n this.listTag = null;\n this.timeIcon = null;\n this.popupObject = null;\n this.preventArgs = null;\n this.keyboardModule = null;\n _super.prototype.destroy.call(this);\n };\n /**\n * To Initialize the control rendering.\n *\n * @returns {void}\n * @private\n */\n DateTimePicker.prototype.render = function () {\n this.timekeyConfigure = {\n enter: 'enter',\n escape: 'escape',\n end: 'end',\n tab: 'tab',\n home: 'home',\n down: 'downarrow',\n up: 'uparrow',\n left: 'leftarrow',\n right: 'rightarrow',\n open: 'alt+downarrow',\n close: 'alt+uparrow'\n };\n this.valueWithMinutes = null;\n this.previousDateTime = null;\n this.isPreventBlur = false;\n this.cloneElement = this.element.cloneNode(true);\n this.dateTimeFormat = this.cldrDateTimeFormat();\n this.initValue = this.value;\n if (!isNullOrUndefined(closest(this.element, 'fieldset')) && closest(this.element, 'fieldset').disabled) {\n this.enabled = false;\n }\n _super.prototype.updateHtmlAttributeToElement.call(this);\n this.checkAttributes(false);\n var localeText = { placeholder: this.placeholder };\n this.l10n = new L10n('datetimepicker', localeText, this.locale);\n this.setProperties({ placeholder: this.placeholder || this.l10n.getConstant('placeholder') }, true);\n _super.prototype.render.call(this);\n this.createInputElement();\n _super.prototype.updateHtmlAttributeToWrapper.call(this);\n this.bindInputEvents();\n if (this.enableMask) {\n this.notify('createMask', {\n module: 'MaskedDateTime'\n });\n }\n this.setValue(true);\n if (this.enableMask && !this.value && this.maskedDateValue && (this.floatLabelType === 'Always' || !this.floatLabelType || !this.placeholder)) {\n Input.setValue(this.maskedDateValue, this.inputElement, this.floatLabelType, this.showClearButton);\n }\n this.setProperties({ scrollTo: this.checkDateValue(new Date(this.checkValue(this.scrollTo))) }, true);\n this.previousDateTime = this.value && new Date(+this.value);\n if (this.element.tagName === 'EJS-DATETIMEPICKER') {\n this.tabIndex = this.element.hasAttribute('tabindex') ? this.element.getAttribute('tabindex') : '0';\n this.element.removeAttribute('tabindex');\n if (!this.enabled) {\n this.inputElement.tabIndex = -1;\n }\n }\n Input.calculateWidth(this.inputElement, this.inputWrapper.container);\n if (!isNullOrUndefined(this.inputWrapper.buttons[0]) && !isNullOrUndefined(this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0]) && this.floatLabelType !== 'Never') {\n this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0].classList.add('e-date-time-icon');\n }\n this.renderComplete();\n };\n DateTimePicker.prototype.setValue = function (isDynamic) {\n if (isDynamic === void 0) { isDynamic = false; }\n this.initValue = this.validateMinMaxRange(this.value);\n if (!this.strictMode && this.isDateObject(this.initValue)) {\n var value = this.validateMinMaxRange(this.initValue);\n Input.setValue(this.getFormattedValue(value), this.inputElement, this.floatLabelType, this.showClearButton);\n this.setProperties({ value: value }, true);\n }\n else {\n if (isNullOrUndefined(this.value)) {\n this.initValue = null;\n this.setProperties({ value: null }, true);\n }\n }\n this.valueWithMinutes = this.value;\n _super.prototype.updateInput.call(this, isDynamic);\n };\n DateTimePicker.prototype.validateMinMaxRange = function (value) {\n var result = value;\n if (this.isDateObject(value)) {\n result = this.validateValue(value);\n }\n else {\n if (+this.min > +this.max) {\n this.disablePopupButton(true);\n }\n }\n this.checkValidState(result);\n return result;\n };\n DateTimePicker.prototype.checkValidState = function (value) {\n this.isValidState = true;\n if (!this.strictMode) {\n if ((+(value) > +(this.max)) || (+(value) < +(this.min))) {\n this.isValidState = false;\n }\n }\n this.checkErrorState();\n };\n DateTimePicker.prototype.checkErrorState = function () {\n if (this.isValidState) {\n removeClass([this.inputWrapper.container], ERROR);\n }\n else {\n addClass([this.inputWrapper.container], ERROR);\n }\n attributes(this.inputElement, { 'aria-invalid': this.isValidState ? 'false' : 'true' });\n };\n DateTimePicker.prototype.validateValue = function (value) {\n var dateVal = value;\n if (this.strictMode) {\n if (+this.min > +this.max) {\n this.disablePopupButton(true);\n dateVal = this.max;\n }\n else if (+value < +this.min) {\n dateVal = this.min;\n }\n else if (+value > +this.max) {\n dateVal = this.max;\n }\n }\n else {\n if (+this.min > +this.max) {\n this.disablePopupButton(true);\n dateVal = value;\n }\n }\n return dateVal;\n };\n DateTimePicker.prototype.disablePopupButton = function (isDisable) {\n if (isDisable) {\n addClass([this.inputWrapper.buttons[0], this.timeIcon], DISABLED);\n this.hide();\n }\n else {\n removeClass([this.inputWrapper.buttons[0], this.timeIcon], DISABLED);\n }\n };\n DateTimePicker.prototype.getFormattedValue = function (value) {\n var dateOptions;\n if (!isNullOrUndefined(value)) {\n if (this.calendarMode === 'Gregorian') {\n dateOptions = { format: this.cldrDateTimeFormat(), type: 'dateTime', skeleton: 'yMd' };\n }\n else {\n dateOptions = { format: this.cldrDateTimeFormat(), type: 'dateTime', skeleton: 'yMd', calendar: 'islamic' };\n }\n return this.globalize.formatDate(value, dateOptions);\n }\n else {\n return null;\n }\n };\n DateTimePicker.prototype.isDateObject = function (value) {\n return (!isNullOrUndefined(value) && !isNaN(+value)) ? true : false;\n };\n DateTimePicker.prototype.createInputElement = function () {\n removeClass([this.inputElement], DATEPICKERROOT);\n removeClass([this.inputWrapper.container], DATEWRAPPER);\n addClass([this.inputWrapper.container], DATETIMEWRAPPER);\n addClass([this.inputElement], ROOT);\n this.renderTimeIcon();\n };\n DateTimePicker.prototype.renderTimeIcon = function () {\n this.timeIcon = Input.appendSpan(INPUTWRAPPER + ' ' + TIMEICON + ' ' + ICONS, this.inputWrapper.container);\n };\n DateTimePicker.prototype.bindInputEvents = function () {\n EventHandler.add(this.timeIcon, 'mousedown', this.timeHandler, this);\n EventHandler.add(this.inputWrapper.buttons[0], 'mousedown', this.dateHandler, this);\n EventHandler.add(this.inputElement, 'blur', this.blurHandler, this);\n EventHandler.add(this.inputElement, 'focus', this.focusHandler, this);\n this.defaultKeyConfigs = extend(this.defaultKeyConfigs, this.keyConfigs);\n this.keyboardHandler = new KeyboardEvents(this.inputElement, {\n eventName: 'keydown',\n keyAction: this.inputKeyAction.bind(this),\n keyConfigs: this.defaultKeyConfigs\n });\n };\n DateTimePicker.prototype.unBindInputEvents = function () {\n EventHandler.remove(this.timeIcon, 'mousedown touchstart', this.timeHandler);\n EventHandler.remove(this.inputWrapper.buttons[0], 'mousedown touchstart', this.dateHandler);\n if (this.inputElement) {\n EventHandler.remove(this.inputElement, 'blur', this.blurHandler);\n EventHandler.remove(this.inputElement, 'focus', this.focusHandler);\n }\n if (this.keyboardHandler) {\n this.keyboardHandler.destroy();\n }\n };\n DateTimePicker.prototype.cldrTimeFormat = function () {\n var cldrTime;\n if (this.isNullOrEmpty(this.timeFormat)) {\n if (this.locale === 'en' || this.locale === 'en-US') {\n cldrTime = (getValue('timeFormats.short', getDefaultDateObject()));\n }\n else {\n cldrTime = (this.getCultureTimeObject(cldrData, '' + this.locale));\n }\n }\n else {\n cldrTime = this.timeFormat;\n }\n return cldrTime;\n };\n DateTimePicker.prototype.cldrDateTimeFormat = function () {\n var cldrTime;\n var culture = new Internationalization(this.locale);\n var dateFormat = culture.getDatePattern({ skeleton: 'yMd' });\n if (this.isNullOrEmpty(this.formatString)) {\n cldrTime = dateFormat + ' ' + this.getCldrFormat('time');\n }\n else {\n cldrTime = this.formatString;\n }\n return cldrTime;\n };\n DateTimePicker.prototype.getCldrFormat = function (type) {\n var cldrDateTime;\n if (this.locale === 'en' || this.locale === 'en-US') {\n cldrDateTime = (getValue('timeFormats.short', getDefaultDateObject()));\n }\n else {\n cldrDateTime = (this.getCultureTimeObject(cldrData, '' + this.locale));\n }\n return cldrDateTime;\n };\n DateTimePicker.prototype.isNullOrEmpty = function (value) {\n if (isNullOrUndefined(value) || (typeof value === 'string' && value.trim() === '')) {\n return true;\n }\n else {\n return false;\n }\n };\n DateTimePicker.prototype.getCultureTimeObject = function (ld, c) {\n if (this.calendarMode === 'Gregorian') {\n return getValue('main.' + '' + this.locale + '.dates.calendars.gregorian.timeFormats.short', ld);\n }\n else {\n return getValue('main.' + '' + this.locale + '.dates.calendars.islamic.timeFormats.short', ld);\n }\n };\n DateTimePicker.prototype.timeHandler = function (e) {\n if (!this.enabled) {\n return;\n }\n this.isIconClicked = true;\n if (Browser.isDevice) {\n this.inputElement.setAttribute('readonly', '');\n }\n if (e.currentTarget === this.timeIcon) {\n e.preventDefault();\n }\n if (this.enabled && !this.readonly) {\n if (this.isDatePopupOpen()) {\n _super.prototype.hide.call(this, e);\n }\n if (this.isTimePopupOpen()) {\n this.closePopup(e);\n }\n else {\n this.inputElement.focus();\n this.popupCreation('time', e);\n addClass([this.inputWrapper.container], [INPUTFOCUS]);\n }\n }\n this.isIconClicked = false;\n };\n DateTimePicker.prototype.dateHandler = function (e) {\n if (!this.enabled) {\n return;\n }\n if (e.currentTarget === this.inputWrapper.buttons[0]) {\n e.preventDefault();\n }\n if (this.enabled && !this.readonly) {\n if (this.isTimePopupOpen()) {\n this.closePopup(e);\n }\n if (!isNullOrUndefined(this.popupWrapper)) {\n this.popupCreation('date', e);\n }\n }\n };\n DateTimePicker.prototype.show = function (type, e) {\n if ((this.enabled && this.readonly) || !this.enabled) {\n return;\n }\n else {\n if (type === 'time' && !this.dateTimeWrapper) {\n if (this.isDatePopupOpen()) {\n this.hide(e);\n }\n this.popupCreation('time', e);\n }\n else if (!this.popupObj) {\n if (this.isTimePopupOpen()) {\n this.hide(e);\n }\n _super.prototype.show.call(this);\n this.popupCreation('date', e);\n }\n }\n };\n DateTimePicker.prototype.toggle = function (e) {\n if (this.isDatePopupOpen()) {\n _super.prototype.hide.call(this, e);\n this.show('time', null);\n }\n else if (this.isTimePopupOpen()) {\n this.hide(e);\n _super.prototype.show.call(this, null, e);\n this.popupCreation('date', null);\n }\n else {\n this.show(null, e);\n }\n };\n DateTimePicker.prototype.listCreation = function () {\n var dateObject;\n if (this.calendarMode === 'Gregorian') {\n dateObject = this.globalize.parseDate(this.inputElement.value, {\n format: this.cldrDateTimeFormat(), type: 'datetime'\n });\n }\n else {\n dateObject = this.globalize.parseDate(this.inputElement.value, {\n format: this.cldrDateTimeFormat(), type: 'datetime', calendar: 'islamic'\n });\n }\n var value = isNullOrUndefined(this.value) ? this.inputElement.value !== '' ?\n dateObject : new Date() : this.value;\n this.valueWithMinutes = value;\n this.listWrapper = createElement('div', { className: CONTENT, attrs: { 'tabindex': '0' } });\n var min = this.startTime(value);\n var max = this.endTime(value);\n var listDetails = TimePickerBase.createListItems(this.createElement, min, max, this.globalize, this.cldrTimeFormat(), this.step);\n this.timeCollections = listDetails.collection;\n this.listTag = listDetails.list;\n attributes(this.listTag, { 'role': 'listbox', 'aria-hidden': 'false', 'id': this.element.id + '_options' });\n append([listDetails.list], this.listWrapper);\n this.wireTimeListEvents();\n var rippleModel = { duration: 300, selector: '.' + LISTCLASS };\n this.rippleFn = rippleEffect(this.listWrapper, rippleModel);\n this.liCollections = this.listWrapper.querySelectorAll('.' + LISTCLASS);\n };\n DateTimePicker.prototype.popupCreation = function (type, e) {\n if (Browser.isDevice) {\n this.element.setAttribute('readonly', 'readonly');\n }\n if (type === 'date') {\n if (!this.readonly && this.popupWrapper) {\n addClass([this.popupWrapper], DATETIMEPOPUPWRAPPER);\n attributes(this.popupWrapper, { 'id': this.element.id + '_datepopup' });\n }\n }\n else {\n if (!this.readonly) {\n this.dateTimeWrapper = createElement('div', {\n className: ROOT + ' ' + POPUP,\n attrs: { 'id': this.element.id + '_timepopup', 'style': 'visibility:hidden ; display:block' }\n });\n if (!isNullOrUndefined(this.cssClass)) {\n this.dateTimeWrapper.className += ' ' + this.cssClass;\n }\n if (!isNullOrUndefined(this.step) && this.step > 0) {\n this.listCreation();\n append([this.listWrapper], this.dateTimeWrapper);\n }\n document.body.appendChild(this.dateTimeWrapper);\n this.addTimeSelection();\n this.renderPopup();\n this.setTimeScrollPosition();\n this.openPopup(e);\n this.popupObject.refreshPosition(this.inputElement);\n }\n }\n };\n DateTimePicker.prototype.openPopup = function (e) {\n var _this = this;\n this.preventArgs = {\n cancel: false,\n popup: this.popupObject,\n event: e || null\n };\n var eventArgs = this.preventArgs;\n this.trigger('open', eventArgs, function (eventArgs) {\n _this.preventArgs = eventArgs;\n if (!_this.preventArgs.cancel && !_this.readonly) {\n var openAnimation = {\n name: 'FadeIn',\n duration: ANIMATIONDURATION\n };\n if (_this.zIndex === 1000) {\n _this.popupObject.show(new Animation(openAnimation), _this.element);\n }\n else {\n _this.popupObject.show(new Animation(openAnimation), null);\n }\n addClass([_this.inputWrapper.container], [ICONANIMATION]);\n attributes(_this.inputElement, { 'aria-expanded': 'true' });\n attributes(_this.inputElement, { 'aria-owns': _this.inputElement.id + '_options' });\n EventHandler.add(document, 'mousedown touchstart', _this.documentClickHandler, _this);\n }\n });\n };\n DateTimePicker.prototype.documentClickHandler = function (event) {\n var target = event.target;\n if ((!isNullOrUndefined(this.popupObject) && (this.inputWrapper.container.contains(target) && event.type !== 'mousedown' ||\n (this.popupObject.element && this.popupObject.element.contains(target)))) && event.type !== 'touchstart') {\n event.preventDefault();\n }\n if (!(closest(target, '[id=\"' + (this.popupObject && this.popupObject.element.id + '\"]'))) && target !== this.inputElement\n && target !== this.timeIcon && !isNullOrUndefined(this.inputWrapper) && target !== this.inputWrapper.container) {\n if (this.isTimePopupOpen()) {\n this.hide(event);\n this.focusOut();\n }\n }\n else if (target !== this.inputElement) {\n if (!Browser.isDevice) {\n this.isPreventBlur = ((document.activeElement === this.inputElement) && (Browser.isIE || Browser.info.name === 'edge')\n && target === this.popupObject.element);\n }\n }\n };\n DateTimePicker.prototype.isTimePopupOpen = function () {\n return (this.dateTimeWrapper && this.dateTimeWrapper.classList.contains('' + ROOT)) ? true : false;\n };\n DateTimePicker.prototype.isDatePopupOpen = function () {\n return (this.popupWrapper && this.popupWrapper.classList.contains('' + DATETIMEPOPUPWRAPPER)) ? true : false;\n };\n DateTimePicker.prototype.renderPopup = function () {\n var _this = this;\n this.containerStyle = this.inputWrapper.container.getBoundingClientRect();\n if (Browser.isDevice) {\n this.timeModal = createElement('div');\n this.timeModal.className = '' + ROOT + ' e-time-modal';\n document.body.className += ' ' + OVERFLOW;\n this.timeModal.style.display = 'block';\n document.body.appendChild(this.timeModal);\n }\n var offset = 4;\n this.popupObject = new Popup(this.dateTimeWrapper, {\n width: this.setPopupWidth(),\n zIndex: this.zIndex,\n targetType: 'container',\n collision: Browser.isDevice ? { X: 'fit', Y: 'fit' } : { X: 'flip', Y: 'flip' },\n relateTo: Browser.isDevice ? document.body : this.inputWrapper.container,\n position: Browser.isDevice ? { X: 'center', Y: 'center' } : { X: 'left', Y: 'bottom' },\n enableRtl: this.enableRtl,\n offsetY: offset,\n open: function () {\n _this.dateTimeWrapper.style.visibility = 'visible';\n addClass([_this.timeIcon], ACTIVE);\n if (!Browser.isDevice) {\n _this.timekeyConfigure = extend(_this.timekeyConfigure, _this.keyConfigs);\n _this.inputEvent = new KeyboardEvents(_this.inputWrapper.container, {\n keyAction: _this.timeKeyActionHandle.bind(_this),\n keyConfigs: _this.timekeyConfigure,\n eventName: 'keydown'\n });\n }\n }, close: function () {\n removeClass([_this.timeIcon], ACTIVE);\n _this.unWireTimeListEvents();\n _this.inputElement.removeAttribute('aria-activedescendant');\n remove(_this.popupObject.element);\n _this.popupObject.destroy();\n _this.dateTimeWrapper.innerHTML = '';\n _this.listWrapper = _this.dateTimeWrapper = undefined;\n if (_this.inputEvent) {\n _this.inputEvent.destroy();\n }\n }, targetExitViewport: function () {\n if (!Browser.isDevice) {\n _this.hide();\n }\n }\n });\n this.popupObject.element.style.maxHeight = POPUPDIMENSION;\n };\n DateTimePicker.prototype.setDimension = function (width) {\n if (typeof width === 'number') {\n width = formatUnit(width);\n }\n else if (typeof width === 'string') {\n // eslint-disable-next-line no-self-assign\n width = width;\n }\n else {\n width = '100%';\n }\n return width;\n };\n DateTimePicker.prototype.setPopupWidth = function () {\n var width = this.setDimension(this.width);\n if (width.indexOf('%') > -1) {\n var inputWidth = this.containerStyle.width * parseFloat(width) / 100;\n width = inputWidth.toString() + 'px';\n }\n return width;\n };\n DateTimePicker.prototype.wireTimeListEvents = function () {\n EventHandler.add(this.listWrapper, 'click', this.onMouseClick, this);\n if (!Browser.isDevice) {\n EventHandler.add(this.listWrapper, 'mouseover', this.onMouseOver, this);\n EventHandler.add(this.listWrapper, 'mouseout', this.onMouseLeave, this);\n }\n };\n DateTimePicker.prototype.unWireTimeListEvents = function () {\n if (this.listWrapper) {\n EventHandler.remove(this.listWrapper, 'click', this.onMouseClick);\n EventHandler.remove(document, 'mousedown touchstart', this.documentClickHandler);\n if (!Browser.isDevice) {\n EventHandler.add(this.listWrapper, 'mouseover', this.onMouseOver, this);\n EventHandler.add(this.listWrapper, 'mouseout', this.onMouseLeave, this);\n }\n }\n };\n DateTimePicker.prototype.onMouseOver = function (event) {\n var currentLi = closest(event.target, '.' + LISTCLASS);\n this.setTimeHover(currentLi, HOVER);\n };\n DateTimePicker.prototype.onMouseLeave = function () {\n this.removeTimeHover(HOVER);\n };\n DateTimePicker.prototype.setTimeHover = function (li, className) {\n if (this.enabled && this.isValidLI(li) && !li.classList.contains(className)) {\n this.removeTimeHover(className);\n addClass([li], className);\n }\n };\n DateTimePicker.prototype.getPopupHeight = function () {\n var height = parseInt(POPUPDIMENSION, 10);\n var popupHeight = this.dateTimeWrapper.getBoundingClientRect().height;\n return popupHeight > height ? height : popupHeight;\n };\n DateTimePicker.prototype.changeEvent = function (e) {\n _super.prototype.changeEvent.call(this, e);\n if ((this.value && this.value.valueOf()) !== (this.previousDateTime && +this.previousDateTime.valueOf())) {\n this.valueWithMinutes = this.value;\n this.setInputValue('date');\n this.previousDateTime = this.value && new Date(+this.value);\n }\n };\n DateTimePicker.prototype.updateValue = function (e) {\n this.setInputValue('time');\n if (+this.previousDateTime !== +this.value) {\n this.changedArgs = {\n value: this.value, event: e || null,\n isInteracted: !isNullOrUndefined(e),\n element: this.element\n };\n this.addTimeSelection();\n this.trigger('change', this.changedArgs);\n this.previousDateTime = this.previousDate = this.value;\n }\n };\n DateTimePicker.prototype.setTimeScrollPosition = function () {\n var popupElement = this.selectedElement;\n if (!isNullOrUndefined(popupElement)) {\n this.findScrollTop(popupElement);\n }\n else if (this.dateTimeWrapper && this.checkDateValue(this.scrollTo)) {\n this.setScrollTo();\n }\n };\n DateTimePicker.prototype.findScrollTop = function (element) {\n var listHeight = this.getPopupHeight();\n var nextElement = element.nextElementSibling;\n var height = nextElement ? nextElement.offsetTop : element.offsetTop;\n var lineHeight = element.getBoundingClientRect().height;\n if ((height + element.offsetTop) > listHeight) {\n this.dateTimeWrapper.scrollTop = nextElement ? (height - (listHeight / HALFPOSITION + lineHeight / HALFPOSITION)) : height;\n }\n else {\n this.dateTimeWrapper.scrollTop = 0;\n }\n };\n DateTimePicker.prototype.setScrollTo = function () {\n var element;\n var items = this.dateTimeWrapper.querySelectorAll('.' + LISTCLASS);\n if (items.length >= 0) {\n this.scrollInvoked = true;\n var initialTime = this.timeCollections[0];\n var scrollTime = this.getDateObject(this.checkDateValue(this.scrollTo)).getTime();\n element = items[Math.round((scrollTime - initialTime) / (this.step * 60000))];\n }\n else {\n this.dateTimeWrapper.scrollTop = 0;\n }\n if (!isNullOrUndefined(element)) {\n this.findScrollTop(element);\n }\n else {\n this.dateTimeWrapper.scrollTop = 0;\n }\n };\n DateTimePicker.prototype.setInputValue = function (type) {\n if (type === 'date') {\n this.inputElement.value = this.previousElementValue = this.getFormattedValue(this.getFullDateTime());\n this.setProperties({ value: this.getFullDateTime() }, true);\n }\n else {\n var tempVal = this.getFormattedValue(new Date(this.timeCollections[this.activeIndex]));\n Input.setValue(tempVal, this.inputElement, this.floatLabelType, this.showClearButton);\n this.previousElementValue = this.inputElement.value;\n this.setProperties({ value: new Date(this.timeCollections[this.activeIndex]) }, true);\n if (this.enableMask) {\n this.createMask();\n }\n }\n this.updateIconState();\n };\n DateTimePicker.prototype.getFullDateTime = function () {\n var value = null;\n if (this.isDateObject(this.valueWithMinutes)) {\n value = this.combineDateTime(this.valueWithMinutes);\n }\n else {\n value = this.previousDate;\n }\n return this.validateMinMaxRange(value);\n };\n DateTimePicker.prototype.createMask = function () {\n this.notify('createMask', {\n module: 'MaskedDateTime'\n });\n };\n DateTimePicker.prototype.combineDateTime = function (value) {\n if (this.isDateObject(value)) {\n var day = this.previousDate.getDate();\n var month = this.previousDate.getMonth();\n var year = this.previousDate.getFullYear();\n var hour = value.getHours();\n var minutes = value.getMinutes();\n var seconds = value.getSeconds();\n return new Date(year, month, day, hour, minutes, seconds);\n }\n else {\n return this.previousDate;\n }\n };\n DateTimePicker.prototype.onMouseClick = function (event) {\n var target = event.target;\n var li = this.selectedElement = closest(target, '.' + LISTCLASS);\n if (li && li.classList.contains(LISTCLASS)) {\n this.timeValue = li.getAttribute('data-value');\n this.hide(event);\n }\n this.setSelection(li, event);\n };\n DateTimePicker.prototype.setSelection = function (li, event) {\n if (this.isValidLI(li) && !li.classList.contains(ACTIVE)) {\n this.selectedElement = li;\n var index = Array.prototype.slice.call(this.liCollections).indexOf(li);\n this.activeIndex = index;\n this.valueWithMinutes = new Date(this.timeCollections[this.activeIndex]);\n addClass([this.selectedElement], ACTIVE);\n this.selectedElement.setAttribute('aria-selected', 'true');\n this.updateValue(event);\n }\n };\n DateTimePicker.prototype.setTimeActiveClass = function () {\n var collections = isNullOrUndefined(this.dateTimeWrapper) ? this.listWrapper : this.dateTimeWrapper;\n if (!isNullOrUndefined(collections)) {\n var items = collections.querySelectorAll('.' + LISTCLASS);\n if (items.length) {\n for (var i = 0; i < items.length; i++) {\n if (this.timeCollections[i] === +(this.valueWithMinutes)) {\n items[i].setAttribute('aria-selected', 'true');\n this.selectedElement = items[i];\n this.activeIndex = i;\n this.setTimeActiveDescendant();\n break;\n }\n }\n }\n }\n };\n DateTimePicker.prototype.setTimeActiveDescendant = function () {\n if (!isNullOrUndefined(this.selectedElement) && this.value) {\n attributes(this.inputElement, { 'aria-activedescendant': this.selectedElement.getAttribute('id') });\n }\n else {\n this.inputElement.removeAttribute('aria-activedescendant');\n }\n };\n DateTimePicker.prototype.addTimeSelection = function () {\n this.selectedElement = null;\n this.removeTimeSelection();\n this.setTimeActiveClass();\n if (!isNullOrUndefined(this.selectedElement)) {\n addClass([this.selectedElement], ACTIVE);\n this.selectedElement.setAttribute('aria-selected', 'true');\n }\n };\n DateTimePicker.prototype.removeTimeSelection = function () {\n this.removeTimeHover(HOVER);\n if (!isNullOrUndefined(this.dateTimeWrapper)) {\n var items = this.dateTimeWrapper.querySelectorAll('.' + ACTIVE);\n if (items.length) {\n removeClass(items, ACTIVE);\n items[0].removeAttribute('aria-selected');\n }\n }\n };\n DateTimePicker.prototype.removeTimeHover = function (className) {\n var hoveredItem = this.getTimeHoverItem(className);\n if (hoveredItem && hoveredItem.length) {\n removeClass(hoveredItem, className);\n }\n };\n DateTimePicker.prototype.getTimeHoverItem = function (className) {\n var collections = isNullOrUndefined(this.dateTimeWrapper) ? this.listWrapper : this.dateTimeWrapper;\n var hoveredItem;\n if (!isNullOrUndefined(collections)) {\n hoveredItem = collections.querySelectorAll('.' + className);\n }\n return hoveredItem;\n };\n DateTimePicker.prototype.isValidLI = function (li) {\n return (li && li.classList.contains(LISTCLASS) && !li.classList.contains(DISABLED));\n };\n DateTimePicker.prototype.calculateStartEnd = function (value, range, method) {\n var day = value.getDate();\n var month = value.getMonth();\n var year = value.getFullYear();\n var hours = value.getHours();\n var minutes = value.getMinutes();\n var seconds = value.getSeconds();\n var milliseconds = value.getMilliseconds();\n if (range) {\n if (method === 'starttime') {\n return new Date(year, month, day, 0, 0, 0);\n }\n else {\n return new Date(year, month, day, 23, 59, 59);\n }\n }\n else {\n return new Date(year, month, day, hours, minutes, seconds, milliseconds);\n }\n };\n DateTimePicker.prototype.startTime = function (date) {\n var tempStartValue;\n var start;\n var tempMin = this.min;\n var value = date === null ? new Date() : date;\n if ((+value.getDate() === +tempMin.getDate() && +value.getMonth() === +tempMin.getMonth() &&\n +value.getFullYear() === +tempMin.getFullYear()) || ((+new Date(value.getFullYear(), value.getMonth(), value.getDate())) <=\n +new Date(tempMin.getFullYear(), tempMin.getMonth(), tempMin.getDate()))) {\n start = false;\n tempStartValue = this.min;\n }\n else if (+value < +this.max && +value > +this.min) {\n start = true;\n tempStartValue = value;\n }\n else if (+value >= +this.max) {\n start = true;\n tempStartValue = this.max;\n }\n return this.calculateStartEnd(tempStartValue, start, 'starttime');\n };\n DateTimePicker.prototype.endTime = function (date) {\n var tempEndValue;\n var end;\n var tempMax = this.max;\n var value = date === null ? new Date() : date;\n if ((+value.getDate() === +tempMax.getDate() && +value.getMonth() === +tempMax.getMonth() &&\n +value.getFullYear() === +tempMax.getFullYear()) || (+new Date(value.getUTCFullYear(), value.getMonth(), value.getDate()) >=\n +new Date(tempMax.getFullYear(), tempMax.getMonth(), tempMax.getDate()))) {\n end = false;\n tempEndValue = this.max;\n }\n else if (+value < +this.max && +value > +this.min) {\n end = true;\n tempEndValue = value;\n }\n else if (+value <= +this.min) {\n end = true;\n tempEndValue = this.min;\n }\n return this.calculateStartEnd(tempEndValue, end, 'endtime');\n };\n DateTimePicker.prototype.hide = function (e) {\n var _this = this;\n if (this.popupObj || this.dateTimeWrapper) {\n this.preventArgs = {\n cancel: false,\n popup: this.popupObj || this.popupObject,\n event: e || null\n };\n var eventArgs = this.preventArgs;\n if (isNullOrUndefined(this.popupObj)) {\n this.trigger('close', eventArgs, function (eventArgs) {\n _this.dateTimeCloseEventCallback(e, eventArgs);\n });\n }\n else {\n this.dateTimeCloseEventCallback(e, eventArgs);\n }\n }\n else {\n if (Browser.isDevice && this.allowEdit && !this.readonly) {\n this.inputElement.removeAttribute('readonly');\n }\n this.setAllowEdit();\n }\n };\n DateTimePicker.prototype.dateTimeCloseEventCallback = function (e, eventArgs) {\n this.preventArgs = eventArgs;\n if (!this.preventArgs.cancel) {\n if (this.isDatePopupOpen()) {\n _super.prototype.hide.call(this, e);\n }\n else if (this.isTimePopupOpen()) {\n this.closePopup(e);\n removeClass([document.body], OVERFLOW);\n if (Browser.isDevice && this.timeModal) {\n this.timeModal.style.display = 'none';\n this.timeModal.outerHTML = '';\n this.timeModal = null;\n }\n this.setTimeActiveDescendant();\n }\n }\n if (Browser.isDevice && this.allowEdit && !this.readonly) {\n this.inputElement.removeAttribute('readonly');\n }\n this.setAllowEdit();\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n DateTimePicker.prototype.closePopup = function (e) {\n if (this.isTimePopupOpen() && this.popupObject) {\n var animModel = {\n name: 'FadeOut',\n duration: ANIMATIONDURATION,\n delay: 0\n };\n this.popupObject.hide(new Animation(animModel));\n this.inputWrapper.container.classList.remove(ICONANIMATION);\n attributes(this.inputElement, { 'aria-expanded': 'false' });\n this.inputElement.removeAttribute('aria-owns');\n EventHandler.remove(document, 'mousedown touchstart', this.documentClickHandler);\n }\n };\n DateTimePicker.prototype.preRender = function () {\n this.checkFormat();\n this.dateTimeFormat = this.cldrDateTimeFormat();\n _super.prototype.preRender.call(this);\n removeClass([this.inputElementCopy], [ROOT]);\n };\n DateTimePicker.prototype.getProperty = function (date, val) {\n if (val === 'min') {\n this.setProperties({ min: this.validateValue(date.min) }, true);\n }\n else {\n this.setProperties({ max: this.validateValue(date.max) }, true);\n }\n };\n DateTimePicker.prototype.checkAttributes = function (isDynamic) {\n var attributes = isDynamic ? isNullOrUndefined(this.htmlAttributes) ? [] : Object.keys(this.htmlAttributes) :\n ['style', 'name', 'step', 'disabled', 'readonly', 'value', 'min', 'max', 'placeholder', 'type'];\n var value;\n for (var _i = 0, attributes_1 = attributes; _i < attributes_1.length; _i++) {\n var prop = attributes_1[_i];\n if (!isNullOrUndefined(this.inputElement.getAttribute(prop))) {\n switch (prop) {\n case 'name':\n this.inputElement.setAttribute('name', this.inputElement.getAttribute(prop));\n break;\n case 'step':\n this.step = parseInt(this.inputElement.getAttribute(prop), 10);\n break;\n case 'readonly':\n if ((isNullOrUndefined(this.dateTimeOptions) || (this.dateTimeOptions['readonly'] === undefined)) || isDynamic) {\n var readonly = this.inputElement.getAttribute(prop) === 'disabled' ||\n this.inputElement.getAttribute(prop) === '' ||\n this.inputElement.getAttribute(prop) === 'true' ? true : false;\n this.setProperties({ readonly: readonly }, !isDynamic);\n }\n break;\n case 'placeholder':\n if ((isNullOrUndefined(this.dateTimeOptions) || (this.dateTimeOptions['placeholder'] === undefined)) || isDynamic) {\n this.setProperties({ placeholder: this.inputElement.getAttribute(prop) }, !isDynamic);\n }\n break;\n case 'min':\n if ((isNullOrUndefined(this.dateTimeOptions) || (this.dateTimeOptions['min'] === undefined)) || isDynamic) {\n value = new Date(this.inputElement.getAttribute(prop));\n if (!this.isNullOrEmpty(value) && !isNaN(+value)) {\n this.setProperties({ min: value }, !isDynamic);\n }\n }\n break;\n case 'disabled':\n if ((isNullOrUndefined(this.dateTimeOptions) || (this.dateTimeOptions['enabled'] === undefined)) || isDynamic) {\n var enabled = this.inputElement.getAttribute(prop) === 'disabled' ||\n this.inputElement.getAttribute(prop) === 'true' ||\n this.inputElement.getAttribute(prop) === '' ? false : true;\n this.setProperties({ enabled: enabled }, !isDynamic);\n }\n break;\n case 'value':\n if ((isNullOrUndefined(this.dateTimeOptions) || (this.dateTimeOptions['value'] === undefined)) || isDynamic) {\n value = new Date(this.inputElement.getAttribute(prop));\n if (!this.isNullOrEmpty(value) && !isNaN(+value)) {\n this.setProperties({ value: value }, !isDynamic);\n }\n }\n break;\n case 'max':\n if ((isNullOrUndefined(this.dateTimeOptions) || (this.dateTimeOptions['max'] === undefined)) || isDynamic) {\n value = new Date(this.inputElement.getAttribute(prop));\n if (!this.isNullOrEmpty(value) && !isNaN(+value)) {\n this.setProperties({ max: value }, !isDynamic);\n }\n }\n break;\n }\n }\n }\n };\n DateTimePicker.prototype.requiredModules = function () {\n var modules = [];\n if (this) {\n modules.push({ args: [this], member: 'islamic' });\n }\n if (this.enableMask) {\n modules.push(this.maskedDateModule());\n }\n return modules;\n };\n DateTimePicker.prototype.maskedDateModule = function () {\n var modules = { args: [this], member: 'MaskedDateTime' };\n return modules;\n };\n DateTimePicker.prototype.getTimeActiveElement = function () {\n if (!isNullOrUndefined(this.dateTimeWrapper)) {\n return this.dateTimeWrapper.querySelectorAll('.' + ACTIVE);\n }\n else {\n return null;\n }\n };\n DateTimePicker.prototype.createDateObj = function (val) {\n return val instanceof Date ? val : null;\n };\n DateTimePicker.prototype.getDateObject = function (text) {\n if (!this.isNullOrEmpty(text)) {\n var dateValue = this.createDateObj(text);\n var value = this.valueWithMinutes;\n var status_1 = !isNullOrUndefined(value);\n if (this.checkDateValue(dateValue)) {\n var date = status_1 ? value.getDate() : DAY;\n var month = status_1 ? value.getMonth() : MONTH;\n var year = status_1 ? value.getFullYear() : YEAR;\n var hour = status_1 ? value.getHours() : HOUR;\n var minute = status_1 ? value.getMinutes() : MINUTE;\n var second = status_1 ? value.getSeconds() : SECOND;\n var millisecond = status_1 ? value.getMilliseconds() : MILLISECOND;\n if (!this.scrollInvoked) {\n return new Date(year, month, date, hour, minute, second, millisecond);\n }\n else {\n this.scrollInvoked = false;\n return new Date(year, month, date, dateValue.getHours(), dateValue.getMinutes(), dateValue.getSeconds(), dateValue.getMilliseconds());\n }\n }\n }\n return null;\n };\n DateTimePicker.prototype.findNextTimeElement = function (event) {\n var textVal = (this.inputElement).value;\n var value = isNullOrUndefined(this.valueWithMinutes) ? this.createDateObj(textVal) :\n this.getDateObject(this.valueWithMinutes);\n var dateTimeVal = null;\n var listCount = this.liCollections.length;\n if (!isNullOrUndefined(this.activeIndex) || !isNullOrUndefined(this.checkDateValue(value))) {\n if (event.action === 'home') {\n dateTimeVal = +(this.createDateObj(new Date(this.timeCollections[0])));\n this.activeIndex = 0;\n }\n else if (event.action === 'end') {\n dateTimeVal = +(this.createDateObj(new Date(this.timeCollections[this.timeCollections.length - 1])));\n this.activeIndex = this.timeCollections.length - 1;\n }\n else {\n if (event.action === 'down') {\n for (var i = 0; i < listCount; i++) {\n if (+value < this.timeCollections[i]) {\n dateTimeVal = +(this.createDateObj(new Date(this.timeCollections[i])));\n this.activeIndex = i;\n break;\n }\n }\n }\n else {\n for (var i = listCount - 1; i >= 0; i--) {\n if (+value > this.timeCollections[i]) {\n dateTimeVal = +(this.createDateObj(new Date(this.timeCollections[i])));\n this.activeIndex = i;\n break;\n }\n }\n }\n }\n this.selectedElement = this.liCollections[this.activeIndex];\n this.timeElementValue(isNullOrUndefined(dateTimeVal) ? null : new Date(dateTimeVal));\n }\n };\n DateTimePicker.prototype.setTimeValue = function (date, value) {\n var dateString;\n var time;\n var val = this.validateMinMaxRange(value);\n var newval = this.createDateObj(val);\n if (this.getFormattedValue(newval) !== (!isNullOrUndefined(this.value) ? this.getFormattedValue(this.value) : null)) {\n this.valueWithMinutes = isNullOrUndefined(newval) ? null : newval;\n time = new Date(+this.valueWithMinutes);\n }\n else {\n if (this.strictMode) {\n //for strict mode case, when value not present within a range. Reset the nearest range value.\n date = newval;\n }\n this.valueWithMinutes = this.checkDateValue(date);\n time = new Date(+this.valueWithMinutes);\n }\n if (this.calendarMode === 'Gregorian') {\n dateString = this.globalize.formatDate(time, {\n format: !isNullOrUndefined(this.formatString) ? this.formatString : this.cldrDateTimeFormat(),\n type: 'dateTime', skeleton: 'yMd'\n });\n }\n else {\n dateString = this.globalize.formatDate(time, {\n format: !isNullOrUndefined(this.formatString) ? this.formatString : this.cldrDateTimeFormat(),\n type: 'dateTime', skeleton: 'yMd', calendar: 'islamic'\n });\n }\n if (!this.strictMode && isNullOrUndefined(time)) {\n Input.setValue(dateString, this.inputElement, this.floatLabelType, this.showClearButton);\n }\n else {\n Input.setValue(dateString, this.inputElement, this.floatLabelType, this.showClearButton);\n }\n return time;\n };\n DateTimePicker.prototype.timeElementValue = function (value) {\n if (!isNullOrUndefined(this.checkDateValue(value)) && !this.isNullOrEmpty(value)) {\n var date = value instanceof Date ? value : this.getDateObject(value);\n return this.setTimeValue(date, value);\n }\n return null;\n };\n DateTimePicker.prototype.timeKeyHandler = function (event) {\n if (isNullOrUndefined(this.step) || this.step <= 0) {\n return;\n }\n var listCount = this.timeCollections.length;\n if (isNullOrUndefined(this.getTimeActiveElement()) || this.getTimeActiveElement().length === 0) {\n if (this.liCollections.length > 0) {\n if (isNullOrUndefined(this.value) && isNullOrUndefined(this.activeIndex)) {\n this.activeIndex = 0;\n this.selectedElement = this.liCollections[0];\n this.timeElementValue(new Date(this.timeCollections[0]));\n }\n else {\n this.findNextTimeElement(event);\n }\n }\n }\n else {\n var nextItemValue = void 0;\n if ((event.keyCode >= 37) && (event.keyCode <= 40)) {\n var index = (event.keyCode === 40 || event.keyCode === 39) ? ++this.activeIndex : --this.activeIndex;\n this.activeIndex = index = this.activeIndex === (listCount) ? 0 : this.activeIndex;\n this.activeIndex = index = this.activeIndex < 0 ? (listCount - 1) : this.activeIndex;\n nextItemValue = isNullOrUndefined(this.timeCollections[index]) ?\n this.timeCollections[0] : this.timeCollections[index];\n }\n else if (event.action === 'home') {\n this.activeIndex = 0;\n nextItemValue = this.timeCollections[0];\n }\n else if (event.action === 'end') {\n this.activeIndex = listCount - 1;\n nextItemValue = this.timeCollections[listCount - 1];\n }\n this.selectedElement = this.liCollections[this.activeIndex];\n this.timeElementValue(new Date(nextItemValue));\n }\n this.isNavigate = true;\n this.setTimeHover(this.selectedElement, NAVIGATION);\n this.setTimeActiveDescendant();\n if (this.isTimePopupOpen() && this.selectedElement !== null && (!event || event.type !== 'click')) {\n this.setTimeScrollPosition();\n }\n };\n DateTimePicker.prototype.timeKeyActionHandle = function (event) {\n if (this.enabled) {\n if (event.action !== 'right' && event.action !== 'left' && event.action !== 'tab') {\n event.preventDefault();\n }\n switch (event.action) {\n case 'up':\n case 'down':\n case 'home':\n case 'end':\n this.timeKeyHandler(event);\n break;\n case 'enter':\n if (this.isNavigate) {\n this.selectedElement = this.liCollections[this.activeIndex];\n this.valueWithMinutes = new Date(this.timeCollections[this.activeIndex]);\n this.setInputValue('time');\n if (+this.previousDateTime !== +this.value) {\n this.changedArgs.value = this.value;\n this.addTimeSelection();\n this.previousDateTime = this.value;\n }\n }\n else {\n this.updateValue(event);\n }\n this.hide(event);\n addClass([this.inputWrapper.container], INPUTFOCUS);\n this.isNavigate = false;\n event.stopPropagation();\n break;\n case 'escape':\n this.hide(event);\n break;\n default:\n this.isNavigate = false;\n break;\n }\n }\n };\n DateTimePicker.prototype.inputKeyAction = function (event) {\n switch (event.action) {\n case 'altDownArrow':\n this.strictModeUpdate();\n this.updateInput();\n this.toggle(event);\n break;\n }\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {DateTimePickerModel} newProp - Returns the dynamic property value of the component.\n * @param {DateTimePickerModel} oldProp - Returns the previous property value of the component.\n * @returns {void}\n\n */\n DateTimePicker.prototype.onPropertyChanged = function (newProp, oldProp) {\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'value':\n this.isDynamicValueChanged = true;\n this.invalidValueString = null;\n this.checkInvalidValue(newProp.value);\n newProp.value = this.value;\n newProp.value = this.validateValue(newProp.value);\n if (this.enableMask) {\n Input.setValue(this.maskedDateValue, this.inputElement, this.floatLabelType, this.showClearButton);\n }\n else {\n Input.setValue(this.getFormattedValue(newProp.value), this.inputElement, this.floatLabelType, this.showClearButton);\n }\n this.valueWithMinutes = newProp.value;\n this.setProperties({ value: newProp.value }, true);\n if (this.popupObj) {\n this.popupUpdate();\n }\n this.previousDateTime = new Date(this.inputElement.value);\n this.updateInput();\n this.changeTrigger(null);\n this.preventChange = this.isAngular && this.preventChange ? !this.preventChange : this.preventChange;\n if (this.enableMask && this.value) {\n this.notify('createMask', {\n module: 'MaskedDateTime'\n });\n }\n break;\n case 'min':\n case 'max':\n this.getProperty(newProp, prop);\n this.updateInput();\n break;\n case 'enableRtl':\n Input.setEnableRtl(this.enableRtl, [this.inputWrapper.container]);\n break;\n case 'cssClass':\n if (!isNullOrUndefined(oldProp.cssClass)) {\n oldProp.cssClass = (oldProp.cssClass.replace(/\\s+/g, ' ')).trim();\n }\n if (!isNullOrUndefined(newProp.cssClass)) {\n newProp.cssClass = (newProp.cssClass.replace(/\\s+/g, ' ')).trim();\n }\n Input.setCssClass(newProp.cssClass, [this.inputWrapper.container], oldProp.cssClass);\n if (this.dateTimeWrapper) {\n Input.setCssClass(newProp.cssClass, [this.dateTimeWrapper], oldProp.cssClass);\n }\n break;\n case 'locale':\n this.globalize = new Internationalization(this.locale);\n this.l10n.setLocale(this.locale);\n this.setProperties({ placeholder: this.l10n.getConstant('placeholder') }, true);\n Input.setPlaceholder(this.l10n.getConstant('placeholder'), this.inputElement);\n this.dateTimeFormat = this.cldrDateTimeFormat();\n _super.prototype.updateInput.call(this);\n break;\n case 'htmlAttributes':\n this.updateHtmlAttributeToElement();\n this.updateHtmlAttributeToWrapper();\n this.checkAttributes(true);\n break;\n case 'format':\n this.setProperties({ format: newProp.format }, true);\n this.checkFormat();\n this.dateTimeFormat = this.formatString;\n this.setValue();\n if (this.enableMask) {\n this.notify('createMask', {\n module: 'MaskedDateTime'\n });\n if (!this.value) {\n Input.setValue(this.maskedDateValue, this.inputElement, this.floatLabelType, this.showClearButton);\n }\n }\n break;\n case 'placeholder':\n Input.setPlaceholder(newProp.placeholder, this.inputElement);\n break;\n case 'enabled':\n Input.setEnabled(this.enabled, this.inputElement);\n if (!this.enabled) {\n this.inputElement.tabIndex = -1;\n }\n break;\n case 'strictMode':\n this.invalidValueString = null;\n this.updateInput();\n break;\n case 'width':\n this.setWidth(newProp.width);\n Input.calculateWidth(this.inputElement, this.inputWrapper.container);\n if (!isNullOrUndefined(this.inputWrapper.buttons[0]) && !isNullOrUndefined(this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0]) && this.floatLabelType !== 'Never') {\n this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0].classList.add('e-date-time-icon');\n }\n break;\n case 'readonly':\n Input.setReadonly(this.readonly, this.inputElement);\n break;\n case 'floatLabelType':\n this.floatLabelType = newProp.floatLabelType;\n Input.removeFloating(this.inputWrapper);\n Input.addFloating(this.inputElement, this.floatLabelType, this.placeholder);\n if (!isNullOrUndefined(this.inputWrapper.buttons[0]) && !isNullOrUndefined(this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0]) && this.floatLabelType !== 'Never') {\n this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0].classList.add('e-date-time-icon');\n }\n break;\n case 'scrollTo':\n if (this.checkDateValue(new Date(this.checkValue(newProp.scrollTo)))) {\n if (this.dateTimeWrapper) {\n this.setScrollTo();\n }\n this.setProperties({ scrollTo: this.checkDateValue(new Date(this.checkValue(newProp.scrollTo))) }, true);\n }\n else {\n this.setProperties({ scrollTo: null }, true);\n }\n break;\n case 'enableMask':\n if (this.enableMask) {\n this.notify('createMask', {\n module: 'MaskedDateTime'\n });\n Input.setValue(this.maskedDateValue, this.inputElement, this.floatLabelType, this.showClearButton);\n }\n else {\n if (this.inputElement.value === this.maskedDateValue) {\n this.maskedDateValue = '';\n Input.setValue(this.maskedDateValue, this.inputElement, this.floatLabelType, this.showClearButton);\n }\n }\n break;\n default:\n _super.prototype.onPropertyChanged.call(this, newProp, oldProp);\n break;\n }\n if (!this.isDynamicValueChanged) {\n this.hide(null);\n }\n this.isDynamicValueChanged = false;\n }\n };\n /**\n * To get component name.\n *\n * @returns {string} Returns the component name.\n * @private\n */\n DateTimePicker.prototype.getModuleName = function () {\n return 'datetimepicker';\n };\n DateTimePicker.prototype.restoreValue = function () {\n this.previousDateTime = this.previousDate;\n this.currentDate = this.value ? this.value : new Date();\n this.valueWithMinutes = this.value;\n this.previousDate = this.value;\n this.previousElementValue = this.previousElementValue = (isNullOrUndefined(this.inputValueCopy)) ? '' :\n this.getFormattedValue(this.inputValueCopy);\n };\n __decorate([\n Property(null)\n ], DateTimePicker.prototype, \"timeFormat\", void 0);\n __decorate([\n Property(30)\n ], DateTimePicker.prototype, \"step\", void 0);\n __decorate([\n Property(null)\n ], DateTimePicker.prototype, \"scrollTo\", void 0);\n __decorate([\n Property(1000)\n ], DateTimePicker.prototype, \"zIndex\", void 0);\n __decorate([\n Property(null)\n ], DateTimePicker.prototype, \"value\", void 0);\n __decorate([\n Property(null)\n ], DateTimePicker.prototype, \"keyConfigs\", void 0);\n __decorate([\n Property({})\n ], DateTimePicker.prototype, \"htmlAttributes\", void 0);\n __decorate([\n Property(false)\n ], DateTimePicker.prototype, \"enablePersistence\", void 0);\n __decorate([\n Property(true)\n ], DateTimePicker.prototype, \"allowEdit\", void 0);\n __decorate([\n Property(false)\n ], DateTimePicker.prototype, \"isMultiSelection\", void 0);\n __decorate([\n Property(null)\n ], DateTimePicker.prototype, \"values\", void 0);\n __decorate([\n Property(true)\n ], DateTimePicker.prototype, \"showClearButton\", void 0);\n __decorate([\n Property(null)\n ], DateTimePicker.prototype, \"placeholder\", void 0);\n __decorate([\n Property(false)\n ], DateTimePicker.prototype, \"strictMode\", void 0);\n __decorate([\n Property(null)\n ], DateTimePicker.prototype, \"serverTimezoneOffset\", void 0);\n __decorate([\n Property(new Date(1900, 0, 1))\n ], DateTimePicker.prototype, \"min\", void 0);\n __decorate([\n Property(new Date(2099, 11, 31))\n ], DateTimePicker.prototype, \"max\", void 0);\n __decorate([\n Property(null)\n ], DateTimePicker.prototype, \"firstDayOfWeek\", void 0);\n __decorate([\n Property('Gregorian')\n ], DateTimePicker.prototype, \"calendarMode\", void 0);\n __decorate([\n Property('Month')\n ], DateTimePicker.prototype, \"start\", void 0);\n __decorate([\n Property('Month')\n ], DateTimePicker.prototype, \"depth\", void 0);\n __decorate([\n Property(false)\n ], DateTimePicker.prototype, \"weekNumber\", void 0);\n __decorate([\n Property(true)\n ], DateTimePicker.prototype, \"showTodayButton\", void 0);\n __decorate([\n Property('Short')\n ], DateTimePicker.prototype, \"dayHeaderFormat\", void 0);\n __decorate([\n Property(false)\n ], DateTimePicker.prototype, \"openOnFocus\", void 0);\n __decorate([\n Property(false)\n ], DateTimePicker.prototype, \"enableMask\", void 0);\n __decorate([\n Property({ day: 'day', month: 'month', year: 'year', hour: 'hour', minute: 'minute', second: 'second', dayOfTheWeek: 'day of the week' })\n ], DateTimePicker.prototype, \"maskPlaceholder\", void 0);\n __decorate([\n Event()\n ], DateTimePicker.prototype, \"open\", void 0);\n __decorate([\n Event()\n ], DateTimePicker.prototype, \"close\", void 0);\n __decorate([\n Event()\n ], DateTimePicker.prototype, \"cleared\", void 0);\n __decorate([\n Event()\n ], DateTimePicker.prototype, \"blur\", void 0);\n __decorate([\n Event()\n ], DateTimePicker.prototype, \"focus\", void 0);\n __decorate([\n Event()\n ], DateTimePicker.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], DateTimePicker.prototype, \"destroyed\", void 0);\n DateTimePicker = __decorate([\n NotifyPropertyChanges\n ], DateTimePicker);\n return DateTimePicker;\n}(DatePicker));\nexport { DateTimePicker };\n","import { DatePicker, DateTimePicker } from '@syncfusion/ej2-calendars';\nimport { isNullOrUndefined, extend } from '@syncfusion/ej2-base';\nimport { getCustomDateFormat } from '../base/util';\nimport * as events from '../base/constant';\nimport * as literals from '../base/string-literals';\n/**\n * `datefilterui` render date column.\n *\n * @hidden\n */\nvar DateFilterUI = /** @class */ (function () {\n function DateFilterUI(parent, serviceLocator, filterSettings) {\n this.dpOpen = this.openPopup.bind(this);\n this.parent = parent;\n this.locator = serviceLocator;\n this.fltrSettings = filterSettings;\n if (this.parent) {\n this.parent.on(events.filterMenuClose, this.destroy, this);\n this.parent.on(events.destroy, this.destroy, this);\n }\n }\n DateFilterUI.prototype.create = function (args) {\n var format = getCustomDateFormat(args.column.format, args.column.type);\n this.dialogObj = args.dialogObj;\n this.inputElem = this.parent.createElement('input', { className: 'e-flmenu-input', id: 'dateui-' + args.column.uid });\n args.target.appendChild(this.inputElem);\n if (args.column.type === 'date') {\n this.datePickerObj = new DatePicker(extend({\n format: format,\n cssClass: this.parent.cssClass ? 'e-popup-flmenu' + ' ' + this.parent.cssClass : 'e-popup-flmenu',\n placeholder: args.localizeText.getConstant('ChooseDate'),\n width: '100%',\n locale: this.parent.locale,\n enableRtl: this.parent.enableRtl\n }, args.column.filter.params));\n }\n else if (args.column.type === 'datetime') {\n this.datePickerObj = new DateTimePicker(extend({\n format: format,\n cssClass: this.parent.cssClass ? 'e-popup-flmenu' + ' ' + this.parent.cssClass : 'e-popup-flmenu',\n placeholder: args.localizeText.getConstant('ChooseDate'),\n width: '100%',\n locale: this.parent.locale,\n enableRtl: this.parent.enableRtl\n }, args.column.filter.params));\n }\n this.datePickerObj.addEventListener(literals['open'], this.dpOpen);\n this.datePickerObj.appendTo(this.inputElem);\n };\n DateFilterUI.prototype.write = function (args) {\n var dateuiObj = document.querySelector('#dateui-' + args.column.uid).ej2_instances[0];\n dateuiObj.value = !isNullOrUndefined(args.filteredValue) ? new Date(args.filteredValue) : null;\n };\n DateFilterUI.prototype.read = function (element, column, filterOptr, filterObj) {\n var dateuiObj = document.querySelector('#dateui-' + column.uid).ej2_instances[0];\n var filterValue = dateuiObj.value;\n filterValue = isNullOrUndefined(filterValue) ? null : filterValue;\n filterObj.filterByColumn(column.field, filterOptr, filterValue, 'and', true);\n };\n DateFilterUI.prototype.openPopup = function (args) {\n args.popup.element.style.zIndex = (this.dialogObj.zIndex + 1).toString();\n };\n DateFilterUI.prototype.destroy = function () {\n this.parent.off(events.filterMenuClose, this.destroy);\n this.parent.off(events.destroy, this.destroy);\n if (isNullOrUndefined(this.datePickerObj) || this.datePickerObj.isDestroyed) {\n return;\n }\n this.datePickerObj.removeEventListener(literals['open'], this.dpOpen);\n this.datePickerObj.destroy();\n };\n return DateFilterUI;\n}());\nexport { DateFilterUI };\n","import { isNullOrUndefined, getValue, remove } from '@syncfusion/ej2-base';\nimport { Browser } from '@syncfusion/ej2-base';\nimport { Dialog } from '@syncfusion/ej2-popups';\nimport { FlMenuOptrUI } from './filter-menu-operator';\nimport { StringFilterUI } from './string-filter-ui';\nimport { NumberFilterUI } from './number-filter-ui';\nimport { BooleanFilterUI } from './boolean-filter-ui';\nimport { DateFilterUI } from './date-filter-ui';\nimport { getFilterMenuPostion, parentsUntil, appendChildren, clearReactVueTemplates } from '../base/util';\nimport * as events from '../base/constant';\nimport { CheckBoxFilterBase } from '../common/checkbox-filter-base';\n/**\n * `filter menu` render boolean column.\n *\n * @hidden\n */\nvar FilterMenuRenderer = /** @class */ (function () {\n function FilterMenuRenderer(parent, filterSettings, serviceLocator, customFltrOperators, fltrObj) {\n this.isDialogOpen = false;\n this.maxHeight = '350px';\n this.isMenuCheck = false;\n this.colTypes = {\n 'string': StringFilterUI, 'number': NumberFilterUI, 'date': DateFilterUI, 'boolean': BooleanFilterUI, 'datetime': DateFilterUI\n };\n this.parent = parent;\n this.filterSettings = filterSettings;\n this.serviceLocator = serviceLocator;\n this.customFilterOperators = customFltrOperators;\n this.filterObj = fltrObj;\n this.flMuiObj = new FlMenuOptrUI(this.parent, this.customFilterOperators, this.serviceLocator);\n this.l10n = this.serviceLocator.getService('localization');\n this.menuFilterBase = new CheckBoxFilterBase(parent);\n }\n FilterMenuRenderer.prototype.clearCustomFilter = function (col) {\n this.clearBtnClick(col);\n };\n FilterMenuRenderer.prototype.applyCustomFilter = function (args) {\n this.filterBtnClick(args.col);\n };\n FilterMenuRenderer.prototype.openDialog = function (args) {\n this.options = args;\n this.col = this.parent.getColumnByField(args.field);\n if (isNullOrUndefined(this.col.filter) || (isNullOrUndefined(this.col.filter.type) || this.col.filter.type === 'Menu')) { ///\n this.renderDlgContent(args.target, this.col);\n }\n };\n FilterMenuRenderer.prototype.closeDialog = function (target) {\n if (!this.dlgObj) {\n return;\n }\n if (this.parent.isReact || this.parent.isVue) {\n clearReactVueTemplates(this.parent, ['filterTemplate']);\n }\n var elem = document.getElementById(this.dlgObj.element.id);\n if (this.dlgObj && !this.dlgObj.isDestroyed && elem) {\n var argument = { cancel: false, column: this.col, target: target, element: elem };\n this.parent.notify(events.filterMenuClose, argument);\n if (argument.cancel) {\n return;\n }\n this.isDialogOpen = false;\n if (this.isMenuCheck) {\n this.menuFilterBase.unWireEvents();\n this.parent.off(events.cBoxFltrComplete, this.actionComplete);\n this.isMenuCheck = false;\n }\n this.dlgObj.destroy();\n remove(elem);\n }\n this.parent.notify(events.filterDialogClose, {});\n };\n FilterMenuRenderer.prototype.renderDlgContent = function (target, column) {\n var args = {\n requestType: events.filterBeforeOpen,\n columnName: column.field, columnType: column.type\n };\n var filterModel = 'filterModel';\n args[\"\" + filterModel] = this;\n this.parent.trigger(events.actionBegin, args);\n var mainDiv = this.parent.createElement('div', { className: 'e-flmenu-maindiv', id: column.uid + '-flmenu' });\n this.dlgDiv = this.parent.createElement('div', { className: 'e-flmenu', id: column.uid + '-flmdlg' });\n this.dlgDiv.setAttribute('aria-label', this.l10n.getConstant('FilterMenuDialogARIA'));\n if (this.parent.enableAdaptiveUI) {\n var responsiveCnt = document.querySelector('.e-resfilter > .e-dlg-content > .e-mainfilterdiv');\n responsiveCnt.appendChild(this.dlgDiv);\n }\n else {\n this.parent.element.appendChild(this.dlgDiv);\n }\n this.dlgObj = new Dialog({\n showCloseIcon: false,\n closeOnEscape: false,\n locale: this.parent.locale,\n visible: false,\n enableRtl: this.parent.enableRtl,\n created: this.dialogCreated.bind(this, target, column),\n position: this.parent.element.classList.contains('e-device') ? { X: 'center', Y: 'center' } : { X: '', Y: '' },\n target: this.parent.element.classList.contains('e-device') ? document.body : this.parent.element,\n buttons: [{\n click: this.filterBtnClick.bind(this, column),\n buttonModel: {\n content: this.l10n.getConstant('FilterButton'), isPrimary: true,\n cssClass: this.parent.cssClass ? 'e-flmenu-okbtn' + ' ' + this.parent.cssClass : 'e-flmenu-okbtn'\n }\n },\n {\n click: this.clearBtnClick.bind(this, column),\n buttonModel: { content: this.l10n.getConstant('ClearButton'),\n cssClass: this.parent.cssClass ? 'e-flmenu-cancelbtn' + ' ' + this.parent.cssClass : 'e-flmenu-cancelbtn' }\n }],\n content: mainDiv,\n width: (!isNullOrUndefined(parentsUntil(target, 'e-bigger'))) || this.parent.element.classList.contains('e-device') ? 260 : 250,\n animationSettings: { effect: 'None' },\n cssClass: this.parent.cssClass ? 'e-filter-popup' + ' ' + this.parent.cssClass : 'e-filter-popup'\n });\n var isStringTemplate = 'isStringTemplate';\n this.dlgObj[\"\" + isStringTemplate] = true;\n this.renderResponsiveDialog();\n this.dlgObj.appendTo(this.dlgDiv);\n };\n FilterMenuRenderer.prototype.renderResponsiveDialog = function () {\n var gObj = this.parent;\n if (gObj.enableAdaptiveUI) {\n this.dlgObj.position = { X: '', Y: '' };\n this.dlgObj.target = document.querySelector('.e-resfilter > .e-dlg-content > .e-mainfilterdiv');\n this.dlgObj.width = '100%';\n this.dlgObj.isModal = false;\n this.dlgObj.buttons = [{}];\n }\n };\n FilterMenuRenderer.prototype.dialogCreated = function (target, column) {\n if (!Browser.isDevice && target) {\n getFilterMenuPostion(target, this.dlgObj);\n }\n this.currentDialogCreatedColumn = column;\n this.renderFilterUI(target, column);\n if (!(column.isForeignColumn() && !(!isNullOrUndefined(column.filter) && !isNullOrUndefined(column.filter.ui)\n && !isNullOrUndefined(column.filter.ui.create)))) {\n this.afterRenderFilterUI();\n }\n };\n /**\n * Function to notify filterDialogCreated and trigger actionComplete\n *\n * @returns {void}\n * @hidden\n */\n FilterMenuRenderer.prototype.afterRenderFilterUI = function () {\n var column = this.currentDialogCreatedColumn;\n if (column.showColumnMenu) {\n this.parent.notify(events.filterDialogCreated, {});\n }\n if (this.parent.enableAdaptiveUI) {\n this.dlgObj.element.style.left = '0px';\n this.dlgObj.element.style.maxHeight = 'none';\n }\n else {\n this.dlgObj.element.style.maxHeight = this.maxHeight;\n }\n this.dlgObj.show();\n var optrInput = this.dlgObj.element.querySelector('.e-flm_optrdiv').querySelector('input');\n var valInput = this.dlgObj.element.querySelector('.e-flmenu-valuediv').querySelector('input');\n if (optrInput.value === 'Empty' || optrInput.value === 'Not Empty' ||\n optrInput.value === 'Null' || optrInput.value === 'Not Null') {\n valInput.setAttribute('disabled', '');\n }\n else if (!isNullOrUndefined(valInput && valInput.getAttribute('disabled'))) {\n valInput.removeAttribute('disabled');\n }\n if (!column.filterTemplate) {\n this.writeMethod(column, this.dlgObj.element.querySelector('#' + column.uid + '-flmenu'));\n }\n var args = {\n requestType: events.filterAfterOpen,\n columnName: column.field, columnType: column.type\n };\n var filterModel = 'filterModel';\n args[\"\" + filterModel] = this;\n this.isDialogOpen = true;\n if (!this.isMenuCheck) {\n this.parent.trigger(events.actionComplete, args);\n }\n };\n FilterMenuRenderer.prototype.renderFilterUI = function (target, col) {\n var dlgConetntEle = this.dlgObj.element.querySelector('.e-flmenu-maindiv');\n this.parent.log('column_type_missing', { column: col });\n this.renderOperatorUI(dlgConetntEle, target, col);\n this.renderFlValueUI(dlgConetntEle, target, col);\n };\n FilterMenuRenderer.prototype.renderOperatorUI = function (dlgConetntEle, target, column) {\n this.flMuiObj.renderOperatorUI(dlgConetntEle, target, column, this.dlgObj, this.filterObj.menuOperator);\n };\n FilterMenuRenderer.prototype.renderFlValueUI = function (dlgConetntEle, target, column) {\n var valueDiv = this.parent.createElement('div', { className: 'e-flmenu-valuediv' });\n var fObj = this.filterObj;\n dlgConetntEle.appendChild(valueDiv);\n var instanceofFilterUI = new this.colTypes[column.type](this.parent, this.serviceLocator, this.parent.filterSettings);\n if (column.filterTemplate) {\n var fltrData = {};\n var valueInString = 'value';\n fltrData[column.field] = fltrData[\"\" + valueInString] = fObj.values[column.field];\n if (column.foreignKeyValue) {\n fltrData[column.foreignKeyValue] = fObj.values[column.field];\n fltrData[column.field] = undefined;\n }\n var col = 'column';\n fltrData[\"\" + col] = column;\n var isReactCompiler = this.parent.isReact && typeof (column.filterTemplate) !== 'string';\n var isReactChild = this.parent.parentDetails && this.parent.parentDetails.parentInstObj &&\n this.parent.parentDetails.parentInstObj.isReact;\n var tempID = this.parent.element.id + column.uid + 'filterTemplate';\n if (isReactCompiler || isReactChild) {\n column.getFilterTemplate()(fltrData, this.parent, 'filterTemplate', tempID, null, null, valueDiv);\n this.parent.renderTemplates();\n }\n else {\n var compElement = column.getFilterTemplate()(fltrData, this.parent, 'filterTemplate', tempID);\n appendChildren(valueDiv, compElement);\n }\n if (this.isMenuCheck) {\n this.menuFilterBase.cBox = this.dlgObj.element.querySelector('.e-checkboxlist.e-fields');\n this.menuFilterBase.wireEvents();\n this.parent.on(events.cBoxFltrComplete, this.actionComplete, this);\n this.menuFilterBase.getAllData();\n }\n }\n else {\n if (!isNullOrUndefined(column.filter) && !isNullOrUndefined(column.filter.ui)\n && !isNullOrUndefined(column.filter.ui.create)) {\n var temp = column.filter.ui.create;\n if (typeof temp === 'string') {\n temp = getValue(temp, window);\n }\n temp({\n column: column, target: valueDiv,\n getOptrInstance: this.flMuiObj, dialogObj: this.dlgObj\n });\n }\n else {\n instanceofFilterUI.create({\n column: column, target: valueDiv,\n getOptrInstance: this.flMuiObj, localizeText: this.l10n, dialogObj: this.dlgObj\n });\n }\n }\n };\n FilterMenuRenderer.prototype.writeMethod = function (col, dlgContentEle) {\n var flValue;\n var target = dlgContentEle.querySelector('.e-flmenu-valinput');\n var instanceofFilterUI = new this.colTypes[col.type](this.parent, this.serviceLocator, this.parent.filterSettings);\n var columns = this.filterSettings.columns;\n for (var _i = 0, columns_1 = columns; _i < columns_1.length; _i++) {\n var column = columns_1[_i];\n if (col.uid === column.uid) {\n flValue = column.value;\n }\n }\n if (!isNullOrUndefined(col.filter) && !isNullOrUndefined(col.filter.ui)\n && !isNullOrUndefined(col.filter.ui.write)) {\n var temp = col.filter.ui.write;\n if (typeof temp === 'string') {\n temp = getValue(temp, window);\n }\n temp({ column: col, target: target, parent: this.parent, filteredValue: flValue });\n }\n else {\n instanceofFilterUI.write({ column: col, target: target, parent: this.parent, filteredValue: flValue });\n }\n };\n FilterMenuRenderer.prototype.filterBtnClick = function (col) {\n var flValue;\n var targ = this.dlgObj.element.querySelector('.e-flmenu-valuediv input');\n var flOptrValue = this.flMuiObj.getFlOperator();\n var instanceofFilterUI = new this.colTypes[col.type](this.parent, this.serviceLocator, this.parent.filterSettings);\n if (col.filterTemplate) {\n var element = this.dlgDiv.querySelector('.e-flmenu-valuediv');\n var fltrValue = void 0;\n if (element.children[0].value) {\n fltrValue = element.children[0].value;\n }\n else {\n if (!isNullOrUndefined(element.children[0].ej2_instances)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fltrValue = (this.parent.isAngular ? element.children[0] :\n element.querySelector('input')).ej2_instances[0].value;\n }\n else {\n var eControl = element.querySelector('.e-control');\n fltrValue = col.type === 'boolean' ? eControl.checked :\n !isNullOrUndefined(eControl.ej2_instances) ?\n eControl.ej2_instances[0].value :\n eControl.value;\n }\n }\n this.filterObj.filterByColumn(col.field, flOptrValue, fltrValue);\n }\n else {\n if (!isNullOrUndefined(col.filter) &&\n !isNullOrUndefined(col.filter.ui) && !isNullOrUndefined(col.filter.ui.read)) {\n var temp = col.filter.ui.read;\n if (typeof temp === 'string') {\n temp = getValue(temp, window);\n }\n // eslint-disable-next-line\n flValue = temp({ element: targ, column: col, operator: flOptrValue, fltrObj: this.filterObj });\n }\n else {\n instanceofFilterUI.read(targ, col, flOptrValue, this.filterObj);\n }\n }\n this.closeDialog();\n if (this.parent.showColumnMenu) {\n this.parent.notify(events.afterFilterColumnMenuClose, {});\n }\n };\n FilterMenuRenderer.prototype.closeResponsiveDialog = function () {\n this.closeDialog();\n };\n FilterMenuRenderer.prototype.clearBtnClick = function (column) {\n this.filterObj.removeFilteredColsByField(column.field);\n this.closeDialog();\n var iconClass = this.parent.showColumnMenu && column.showColumnMenu ? '.e-columnmenu' : '.e-icon-filter';\n var col = this.parent.element.querySelector('[e-mappinguid=\"' + column.uid + '\"]').parentElement;\n var flIcon = col.querySelector(iconClass);\n if (flIcon) {\n flIcon.classList.remove('e-filtered');\n }\n };\n FilterMenuRenderer.prototype.destroy = function () {\n this.closeDialog();\n };\n /**\n * @returns {FilterUI} returns the filterUI\n * @hidden\n */\n FilterMenuRenderer.prototype.getFilterUIInfo = function () {\n return { field: this.col.field, operator: this.flMuiObj.getFlOperator() };\n };\n FilterMenuRenderer.prototype.renderCheckBoxMenu = function () {\n this.isMenuCheck = true;\n this.menuFilterBase.updateModel(this.options);\n this.menuFilterBase.getAndSetChkElem(this.options);\n this.dlgObj.buttons = [{\n click: this.menuFilterBase.btnClick.bind(this.menuFilterBase),\n buttonModel: {\n content: this.menuFilterBase.getLocalizedLabel('FilterButton'),\n cssClass: 'e-primary', isPrimary: true\n }\n },\n {\n click: this.menuFilterBase.btnClick.bind(this.menuFilterBase),\n buttonModel: { cssClass: 'e-flat', content: this.menuFilterBase.getLocalizedLabel('ClearButton') }\n }];\n this.menuFilterBase.dialogObj = this.dlgObj;\n this.menuFilterBase.dlg = this.dlgObj.element;\n this.menuFilterBase.dlg.classList.add('e-menucheckbox');\n this.menuFilterBase.dlg.classList.remove('e-checkboxfilter');\n this.maxHeight = '800px';\n return this.menuFilterBase.sBox.innerHTML;\n };\n FilterMenuRenderer.prototype.actionComplete = function (args) {\n if (this.isMenuCheck) {\n this.parent.trigger(events.actionComplete, args);\n }\n };\n return FilterMenuRenderer;\n}());\nexport { FilterMenuRenderer };\n","import * as events from '../base/constant';\nimport { isActionPrevent } from '../base/util';\nimport { CheckBoxFilterBase } from '../common/checkbox-filter-base';\n/**\n * @hidden\n * `CheckBoxFilter` module is used to handle filtering action.\n */\nvar CheckBoxFilter = /** @class */ (function () {\n /**\n * Constructor for checkbox filtering module\n *\n * @param {IGrid} parent - specifies the IGrid\n * @param {FilterSettings} filterSettings - specifies the filtersettings\n * @param {ServiceLocator} serviceLocator - specifies the ServiceLocator\n * @hidden\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n function CheckBoxFilter(parent, filterSettings, serviceLocator) {\n this.parent = parent;\n this.isresetFocus = true;\n this.checkBoxBase = new CheckBoxFilterBase(parent);\n this.addEventListener();\n }\n /**\n * To destroy the check box filter.\n *\n * @returns {void}\n * @hidden\n */\n CheckBoxFilter.prototype.destroy = function () {\n this.removeEventListener();\n this.checkBoxBase.closeDialog();\n };\n CheckBoxFilter.prototype.openDialog = function (options) {\n this.checkBoxBase.openDialog(options);\n this.parent.log('column_type_missing', { column: options.column });\n };\n CheckBoxFilter.prototype.closeDialog = function () {\n this.destroy();\n if (this.isresetFocus) {\n this.parent.notify(events.restoreFocus, {});\n }\n };\n CheckBoxFilter.prototype.closeResponsiveDialog = function () {\n this.checkBoxBase.closeDialog();\n };\n /**\n * For internal use only - Get the module name.\n *\n * @returns {string} - returns the module name\n * @private\n */\n CheckBoxFilter.prototype.getModuleName = function () {\n return 'checkboxFilter';\n };\n CheckBoxFilter.prototype.actionBegin = function (args) {\n this.parent.trigger(events.actionBegin, args);\n };\n CheckBoxFilter.prototype.actionComplete = function (args) {\n this.parent.trigger(events.actionComplete, args);\n };\n CheckBoxFilter.prototype.actionPrevent = function (args) {\n if (isActionPrevent(this.parent)) {\n this.parent.notify(events.preventBatch, args);\n args.cancel = true;\n }\n };\n CheckBoxFilter.prototype.clearCustomFilter = function (col) {\n this.checkBoxBase.clearFilter(col);\n };\n CheckBoxFilter.prototype.applyCustomFilter = function () {\n this.checkBoxBase.fltrBtnHandler();\n this.checkBoxBase.closeDialog();\n };\n CheckBoxFilter.prototype.addEventListener = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n this.parent.on(events.cBoxFltrBegin, this.actionBegin, this);\n this.parent.on(events.cBoxFltrComplete, this.actionComplete, this);\n this.parent.on(events.fltrPrevent, this.actionPrevent, this);\n };\n CheckBoxFilter.prototype.removeEventListener = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n this.parent.off(events.cBoxFltrBegin, this.actionBegin);\n this.parent.off(events.cBoxFltrComplete, this.actionComplete);\n this.parent.off(events.fltrPrevent, this.actionPrevent);\n };\n return CheckBoxFilter;\n}());\nexport { CheckBoxFilter };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component, NotifyPropertyChanges, Property } from '@syncfusion/ej2-base';\nimport { Event, EventHandler, isNullOrUndefined, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\nimport { addClass, detach, getUniqueID, isRippleEnabled, removeClass, rippleEffect, closest } from '@syncfusion/ej2-base';\nimport { wrapperInitialize, rippleMouseHandler, setHiddenInput } from './../common/common';\nvar CHECK = 'e-check';\nvar DISABLED = 'e-checkbox-disabled';\nvar FRAME = 'e-frame';\nvar INDETERMINATE = 'e-stop';\nvar LABEL = 'e-label';\nvar RIPPLE = 'e-ripple-container';\nvar RIPPLECHECK = 'e-ripple-check';\nvar RIPPLEINDETERMINATE = 'e-ripple-stop';\nvar RTL = 'e-rtl';\nvar WRAPPER = 'e-checkbox-wrapper';\nvar containerAttr = ['title', 'class', 'style', 'disabled', 'readonly', 'name', 'value'];\n/**\n * The CheckBox is a graphical user interface element that allows you to select one or more options from the choices.\n * It contains checked, unchecked, and indeterminate states.\n * ```html\n * \n * \n * ```\n */\nvar CheckBox = /** @class */ (function (_super) {\n __extends(CheckBox, _super);\n /**\n * Constructor for creating the widget\n *\n * @private\n * @param {CheckBoxModel} options - Specifies checkbox model\n * @param {string | HTMLInputElement} element - Specifies target element\n */\n function CheckBox(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.isFocused = false;\n _this.isMouseClick = false;\n _this.clickTriggered = false;\n _this.validCheck = true;\n return _this;\n }\n CheckBox.prototype.changeState = function (state, isInitialize) {\n var ariaState;\n var rippleSpan;\n var frameSpan = this.getWrapper().getElementsByClassName(FRAME)[0];\n if (isRippleEnabled) {\n rippleSpan = this.getWrapper().getElementsByClassName(RIPPLE)[0];\n }\n if (state === 'check') {\n frameSpan.classList.remove(INDETERMINATE);\n frameSpan.classList.add(CHECK);\n if (rippleSpan) {\n rippleSpan.classList.remove(RIPPLEINDETERMINATE);\n rippleSpan.classList.add(RIPPLECHECK);\n }\n ariaState = 'true';\n this.element.checked = true;\n if ((this.element.required || this.element.closest('form') && this.element.closest('form').classList.contains('e-formvalidator')) && this.validCheck && !isInitialize) {\n this.element.checked = false;\n this.validCheck = false;\n }\n else if (this.element.required || this.element.closest('form') && this.element.closest('form').classList.contains('e-formvalidator')) {\n this.validCheck = true;\n }\n }\n else if (state === 'uncheck') {\n removeClass([frameSpan], [CHECK, INDETERMINATE]);\n if (rippleSpan) {\n removeClass([rippleSpan], [RIPPLECHECK, RIPPLEINDETERMINATE]);\n }\n ariaState = 'false';\n this.element.checked = false;\n if ((this.element.required || this.element.closest('form') && this.element.closest('form').classList.contains('e-formvalidator')) && this.validCheck && !isInitialize) {\n this.element.checked = true;\n this.validCheck = false;\n }\n else if (this.element.required || this.element.closest('form') && this.element.closest('form').classList.contains('e-formvalidator')) {\n this.validCheck = true;\n }\n }\n else {\n frameSpan.classList.remove(CHECK);\n frameSpan.classList.add(INDETERMINATE);\n if (rippleSpan) {\n rippleSpan.classList.remove(RIPPLECHECK);\n rippleSpan.classList.add(RIPPLEINDETERMINATE);\n }\n ariaState = 'mixed';\n this.element.indeterminate = true;\n this.indeterminate = true;\n }\n };\n CheckBox.prototype.clickHandler = function (event) {\n if (event.target.tagName === 'INPUT' && this.clickTriggered) {\n if (this.isVue) {\n this.changeState(this.checked ? 'check' : 'uncheck');\n }\n this.clickTriggered = false;\n return;\n }\n if (event.target.tagName === 'SPAN' || event.target.tagName === 'LABEL') {\n this.clickTriggered = true;\n }\n if (this.isMouseClick) {\n this.focusOutHandler();\n this.isMouseClick = false;\n }\n if (this.indeterminate) {\n this.changeState(this.checked ? 'check' : 'uncheck');\n this.indeterminate = false;\n this.element.indeterminate = false;\n }\n else if (this.checked) {\n this.changeState('uncheck');\n this.checked = false;\n }\n else {\n this.changeState('check');\n this.checked = true;\n }\n var changeEventArgs = { checked: this.updateVueArrayModel(false), event: event };\n this.trigger('change', changeEventArgs);\n event.stopPropagation();\n };\n /**\n * Destroys the widget.\n *\n * @returns {void}\n */\n CheckBox.prototype.destroy = function () {\n var _this = this;\n var wrapper = this.getWrapper();\n _super.prototype.destroy.call(this);\n if (this.wrapper) {\n wrapper = this.wrapper;\n if (!this.disabled) {\n this.unWireEvents();\n }\n if (this.tagName === 'INPUT') {\n if (this.getWrapper() && wrapper.parentNode) {\n wrapper.parentNode.insertBefore(this.element, wrapper);\n }\n detach(wrapper);\n this.element.checked = false;\n if (this.indeterminate) {\n this.element.indeterminate = false;\n }\n ['name', 'value', 'disabled'].forEach(function (key) {\n _this.element.removeAttribute(key);\n });\n }\n else {\n ['class'].forEach(function (key) {\n wrapper.removeAttribute(key);\n });\n wrapper.innerHTML = '';\n }\n }\n };\n CheckBox.prototype.focusHandler = function () {\n this.isFocused = true;\n };\n CheckBox.prototype.focusOutHandler = function () {\n var wrapper = this.getWrapper();\n if (wrapper) {\n wrapper.classList.remove('e-focus');\n }\n this.isFocused = false;\n };\n /**\n * Gets the module name.\n *\n * @private\n * @returns {string} - Module Name\n */\n CheckBox.prototype.getModuleName = function () {\n return 'checkbox';\n };\n /**\n * Gets the properties to be maintained in the persistence state.\n *\n * @private\n * @returns {string} - Persist Data\n */\n CheckBox.prototype.getPersistData = function () {\n return this.addOnPersist(['checked', 'indeterminate']);\n };\n CheckBox.prototype.getWrapper = function () {\n if (this.element && this.element.parentElement) {\n return this.element.parentElement.parentElement;\n }\n else {\n return null;\n }\n };\n CheckBox.prototype.initialize = function () {\n if (isNullOrUndefined(this.initialCheckedValue)) {\n this.initialCheckedValue = this.checked;\n }\n if (this.name) {\n this.element.setAttribute('name', this.name);\n }\n if (this.value) {\n this.element.setAttribute('value', this.value);\n if (this.isVue && typeof this.value === 'boolean' && this.value === true) {\n this.setProperties({ 'checked': true }, true);\n }\n }\n if (this.checked) {\n this.changeState('check', true);\n }\n if (this.indeterminate) {\n this.changeState();\n }\n if (this.disabled) {\n this.setDisabled();\n }\n };\n CheckBox.prototype.initWrapper = function () {\n var wrapper = this.element.parentElement;\n if (!wrapper.classList.contains(WRAPPER)) {\n wrapper = this.createElement('div', {\n className: WRAPPER\n });\n this.element.parentNode.insertBefore(wrapper, this.element);\n }\n var label = this.createElement('label', { attrs: { for: this.element.id } });\n var frameSpan = this.createElement('span', { className: 'e-icons ' + FRAME });\n wrapper.classList.add('e-wrapper');\n if (this.enableRtl) {\n wrapper.classList.add(RTL);\n }\n if (this.cssClass) {\n addClass([wrapper], this.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n wrapper.appendChild(label);\n label.appendChild(this.element);\n setHiddenInput(this, label);\n label.appendChild(frameSpan);\n if (isRippleEnabled) {\n var rippleSpan = this.createElement('span', { className: RIPPLE });\n if (this.labelPosition === 'Before') {\n label.appendChild(rippleSpan);\n }\n else {\n label.insertBefore(rippleSpan, frameSpan);\n }\n rippleEffect(rippleSpan, { duration: 400, isCenterRipple: true });\n }\n if (this.label) {\n this.setText(this.label);\n }\n };\n CheckBox.prototype.keyUpHandler = function () {\n if (this.isFocused) {\n this.getWrapper().classList.add('e-focus');\n }\n };\n CheckBox.prototype.labelMouseDownHandler = function (e) {\n this.isMouseClick = true;\n var rippleSpan = this.getWrapper().getElementsByClassName(RIPPLE)[0];\n rippleMouseHandler(e, rippleSpan);\n };\n CheckBox.prototype.labelMouseUpHandler = function (e) {\n this.isMouseClick = true;\n var rippleSpan = this.getWrapper().getElementsByClassName(RIPPLE)[0];\n if (rippleSpan) {\n var rippleElem = rippleSpan.querySelectorAll('.e-ripple-element');\n for (var i = 0; i < rippleElem.length - 1; i++) {\n rippleSpan.removeChild(rippleSpan.childNodes[i]);\n }\n rippleMouseHandler(e, rippleSpan);\n }\n };\n /**\n * Called internally if any of the property value changes.\n *\n * @private\n * @param {CheckBoxModel} newProp - Specifies new Properties\n * @param {CheckBoxModel} oldProp - Specifies old Properties\n *\n * @returns {void}\n */\n CheckBox.prototype.onPropertyChanged = function (newProp, oldProp) {\n var wrapper = this.getWrapper();\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'checked':\n this.indeterminate = false;\n this.element.indeterminate = false;\n this.changeState(newProp.checked ? 'check' : 'uncheck');\n break;\n case 'indeterminate':\n if (newProp.indeterminate) {\n this.changeState();\n }\n else {\n this.element.indeterminate = false;\n this.changeState(this.checked ? 'check' : 'uncheck');\n }\n break;\n case 'disabled':\n if (newProp.disabled) {\n this.setDisabled();\n this.wrapper = this.getWrapper();\n this.unWireEvents();\n }\n else {\n this.element.disabled = false;\n wrapper.classList.remove(DISABLED);\n wrapper.setAttribute('aria-disabled', 'false');\n this.wireEvents();\n }\n break;\n case 'cssClass':\n if (oldProp.cssClass) {\n removeClass([wrapper], oldProp.cssClass.split(' '));\n }\n if (newProp.cssClass) {\n addClass([wrapper], newProp.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n break;\n case 'enableRtl':\n if (newProp.enableRtl) {\n wrapper.classList.add(RTL);\n }\n else {\n wrapper.classList.remove(RTL);\n }\n break;\n case 'label':\n this.setText(newProp.label);\n break;\n case 'labelPosition': {\n var label = wrapper.getElementsByClassName(LABEL)[0];\n var labelWrap = wrapper.getElementsByTagName('label')[0];\n detach(label);\n if (newProp.labelPosition === 'After') {\n labelWrap.appendChild(label);\n }\n else {\n labelWrap.insertBefore(label, wrapper.getElementsByClassName(FRAME)[0]);\n }\n break;\n }\n case 'name':\n this.element.setAttribute('name', newProp.name);\n break;\n case 'value':\n if (this.isVue && typeof newProp.value === 'object') {\n break;\n }\n this.element.setAttribute('value', newProp.value);\n break;\n case 'htmlAttributes':\n this.updateHtmlAttributeToWrapper();\n break;\n }\n }\n };\n /**\n * Initialize Angular, React and Unique ID support.\n *\n * @private\n * @returns {void}\n */\n CheckBox.prototype.preRender = function () {\n var element = this.element;\n this.tagName = this.element.tagName;\n element = wrapperInitialize(this.createElement, 'EJS-CHECKBOX', 'checkbox', element, WRAPPER, 'checkbox');\n this.element = element;\n if (this.element.getAttribute('type') !== 'checkbox') {\n this.element.setAttribute('type', 'checkbox');\n }\n if (!this.element.id) {\n this.element.id = getUniqueID('e-' + this.getModuleName());\n }\n };\n /**\n * Initialize the control rendering.\n *\n * @private\n * @returns {void}\n */\n CheckBox.prototype.render = function () {\n this.initWrapper();\n this.initialize();\n if (!this.disabled) {\n this.wireEvents();\n }\n this.updateHtmlAttributeToWrapper();\n this.updateVueArrayModel(true);\n this.renderComplete();\n this.wrapper = this.getWrapper();\n };\n CheckBox.prototype.setDisabled = function () {\n var wrapper = this.getWrapper();\n this.element.disabled = true;\n wrapper.classList.add(DISABLED);\n wrapper.setAttribute('aria-disabled', 'true');\n };\n CheckBox.prototype.setText = function (text) {\n var wrapper = this.getWrapper();\n if (!wrapper) {\n return;\n }\n var label = wrapper.getElementsByClassName(LABEL)[0];\n if (label) {\n label.textContent = text;\n }\n else {\n text = (this.enableHtmlSanitizer) ? SanitizeHtmlHelper.sanitize(text) : text;\n label = this.createElement('span', { className: LABEL, innerHTML: text });\n var labelWrap = wrapper.getElementsByTagName('label')[0];\n if (this.labelPosition === 'Before') {\n labelWrap.insertBefore(label, wrapper.getElementsByClassName(FRAME)[0]);\n }\n else {\n labelWrap.appendChild(label);\n }\n }\n };\n CheckBox.prototype.changeHandler = function (e) {\n e.stopPropagation();\n };\n CheckBox.prototype.formResetHandler = function () {\n this.checked = this.initialCheckedValue;\n this.element.checked = this.initialCheckedValue;\n };\n CheckBox.prototype.unWireEvents = function () {\n var wrapper = this.wrapper;\n EventHandler.remove(wrapper, 'click', this.clickHandler);\n EventHandler.remove(this.element, 'keyup', this.keyUpHandler);\n EventHandler.remove(this.element, 'focus', this.focusHandler);\n EventHandler.remove(this.element, 'focusout', this.focusOutHandler);\n var label = wrapper.getElementsByTagName('label')[0];\n EventHandler.remove(label, 'mousedown', this.labelMouseDownHandler);\n EventHandler.remove(label, 'mouseup', this.labelMouseUpHandler);\n var formElem = closest(this.element, 'form');\n if (formElem) {\n EventHandler.remove(formElem, 'reset', this.formResetHandler);\n }\n if (this.tagName === 'EJS-CHECKBOX') {\n EventHandler.remove(this.element, 'change', this.changeHandler);\n }\n };\n CheckBox.prototype.wireEvents = function () {\n var wrapper = this.getWrapper();\n EventHandler.add(wrapper, 'click', this.clickHandler, this);\n EventHandler.add(this.element, 'keyup', this.keyUpHandler, this);\n EventHandler.add(this.element, 'focus', this.focusHandler, this);\n EventHandler.add(this.element, 'focusout', this.focusOutHandler, this);\n var label = wrapper.getElementsByTagName('label')[0];\n EventHandler.add(label, 'mousedown', this.labelMouseDownHandler, this);\n EventHandler.add(label, 'mouseup', this.labelMouseUpHandler, this);\n var formElem = closest(this.element, 'form');\n if (formElem) {\n EventHandler.add(formElem, 'reset', this.formResetHandler, this);\n }\n if (this.tagName === 'EJS-CHECKBOX') {\n EventHandler.add(this.element, 'change', this.changeHandler, this);\n }\n };\n CheckBox.prototype.updateVueArrayModel = function (init) {\n if (this.isVue && typeof this.value === 'object') {\n var value = this.element.value;\n if (value && this.value) {\n if (init) {\n for (var i = 0; i < this.value.length; i++) {\n if (value === this.value[i]) {\n this.changeState('check');\n this.setProperties({ 'checked': true }, true);\n }\n }\n }\n else {\n var index = this.value.indexOf(value);\n if (this.checked) {\n if (index < 0) {\n this.value.push(value);\n }\n }\n else {\n if (index > -1) {\n this.value.splice(index, 1);\n }\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return this.value;\n }\n }\n }\n return this.validCheck ? this.element.checked : !this.element.checked;\n };\n CheckBox.prototype.updateHtmlAttributeToWrapper = function () {\n if (!isNullOrUndefined(this.htmlAttributes)) {\n for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) {\n var key = _a[_i];\n if (containerAttr.indexOf(key) > -1) {\n var wrapper = this.getWrapper();\n if (key === 'class') {\n addClass([wrapper], this.htmlAttributes[\"\" + key].split(' '));\n }\n else if (key === 'title') {\n wrapper.setAttribute(key, this.htmlAttributes[\"\" + key]);\n }\n else if (key === 'style') {\n var frameSpan = this.getWrapper().getElementsByClassName(FRAME)[0];\n frameSpan.setAttribute(key, this.htmlAttributes[\"\" + key]);\n }\n else if (key === 'disabled') {\n if (this.htmlAttributes[\"\" + key] === 'true') {\n this.setDisabled();\n }\n this.element.setAttribute(key, this.htmlAttributes[\"\" + key]);\n }\n else {\n this.element.setAttribute(key, this.htmlAttributes[\"\" + key]);\n }\n }\n }\n }\n };\n /**\n * Click the CheckBox element\n * its native method\n *\n * @public\n * @returns {void}\n */\n CheckBox.prototype.click = function () {\n this.element.click();\n };\n /**\n * Sets the focus to CheckBox\n * its native method\n *\n * @public\n * @returns {void}\n */\n CheckBox.prototype.focusIn = function () {\n this.element.focus();\n };\n __decorate([\n Event()\n ], CheckBox.prototype, \"change\", void 0);\n __decorate([\n Event()\n ], CheckBox.prototype, \"created\", void 0);\n __decorate([\n Property(false)\n ], CheckBox.prototype, \"checked\", void 0);\n __decorate([\n Property('')\n ], CheckBox.prototype, \"cssClass\", void 0);\n __decorate([\n Property(false)\n ], CheckBox.prototype, \"disabled\", void 0);\n __decorate([\n Property(false)\n ], CheckBox.prototype, \"indeterminate\", void 0);\n __decorate([\n Property('')\n ], CheckBox.prototype, \"label\", void 0);\n __decorate([\n Property('After')\n ], CheckBox.prototype, \"labelPosition\", void 0);\n __decorate([\n Property('')\n ], CheckBox.prototype, \"name\", void 0);\n __decorate([\n Property('')\n ], CheckBox.prototype, \"value\", void 0);\n __decorate([\n Property(false)\n ], CheckBox.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Property({})\n ], CheckBox.prototype, \"htmlAttributes\", void 0);\n CheckBox = __decorate([\n NotifyPropertyChanges\n ], CheckBox);\n return CheckBox;\n}(Component));\nexport { CheckBox };\n","import { select, detach } from '@syncfusion/ej2-base';\nimport { VScroll } from './v-scroll';\nimport { HScroll } from './h-scroll';\n/**\n * Used to add scroll in menu.\n *\n * @param {createElementType} createElement - Specifies the create element model\n * @param {HTMLElement} container - Specifies the element container\n * @param {HTMLElement} content - Specifies the content element\n * @param {string} scrollType - Specifies the scroll type\n * @param {boolean} enableRtl - Specifies the enable RTL property\n * @param {boolean} offset - Specifies the offset value\n * @returns {HTMLElement} - Element\n * @hidden\n */\nexport function addScrolling(createElement, container, content, scrollType, enableRtl, offset) {\n var containerOffset;\n var contentOffset;\n var parentElem = container.parentElement;\n if (scrollType === 'vscroll') {\n containerOffset = offset || container.getBoundingClientRect().height;\n contentOffset = content.getBoundingClientRect().height;\n }\n else {\n containerOffset = container.getBoundingClientRect().width;\n contentOffset = content.getBoundingClientRect().width;\n }\n if (containerOffset < contentOffset) {\n return createScrollbar(createElement, container, content, scrollType, enableRtl, offset);\n }\n else if (parentElem) {\n var width = parentElem.getBoundingClientRect().width;\n if (width < containerOffset && scrollType === 'hscroll') {\n contentOffset = width;\n container.style.maxWidth = width + 'px';\n return createScrollbar(createElement, container, content, scrollType, enableRtl, offset);\n }\n return content;\n }\n else {\n return content;\n }\n}\n/**\n * Used to create scroll bar in menu.\n *\n * @param {createElementType} createElement - Specifies the create element model\n * @param {HTMLElement} container - Specifies the element container\n * @param {HTMLElement} content - Specifies the content element\n * @param {string} scrollType - Specifies the scroll type\n * @param {boolean} enableRtl - Specifies the enable RTL property\n * @param {boolean} offset - Specifies the offset value\n * @returns {HTMLElement} - Element\n * @hidden\n */\nfunction createScrollbar(createElement, container, content, scrollType, enableRtl, offset) {\n var scrollEle = createElement('div', { className: 'e-menu-' + scrollType });\n container.appendChild(scrollEle);\n scrollEle.appendChild(content);\n if (offset) {\n scrollEle.style.overflow = 'hidden';\n scrollEle.style.height = offset + 'px';\n }\n else {\n scrollEle.style.maxHeight = container.style.maxHeight;\n container.style.overflow = 'hidden';\n }\n var scrollObj;\n if (scrollType === 'vscroll') {\n scrollObj = new VScroll({ enableRtl: enableRtl }, scrollEle);\n scrollObj.scrollStep = select('.e-' + scrollType + '-bar', container).offsetHeight / 2;\n }\n else {\n scrollObj = new HScroll({ enableRtl: enableRtl }, scrollEle);\n scrollObj.scrollStep = select('.e-' + scrollType + '-bar', container).offsetWidth;\n }\n return scrollEle;\n}\n/**\n * Used to destroy the scroll option.\n *\n * @param {VScroll | HScroll} scrollObj - Specifies the scroller object\n * @param {Element} element - Specifies the element\n * @param {HTMLElement} skipEle - Specifies the skip element\n * @returns {void}\n * @hidden\n */\nexport function destroyScroll(scrollObj, element, skipEle) {\n if (scrollObj) {\n var menu = select('.e-menu-parent', element);\n if (menu) {\n if (!skipEle || skipEle === menu) {\n scrollObj.destroy();\n element.parentElement.appendChild(menu);\n detach(element);\n }\n }\n else {\n scrollObj.destroy();\n detach(element);\n }\n }\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component, Property, ChildProperty, NotifyPropertyChanges, isBlazor } from '@syncfusion/ej2-base';\nimport { Event, EventHandler, KeyboardEvents, Touch } from '@syncfusion/ej2-base';\nimport { Animation } from '@syncfusion/ej2-base';\nimport { Browser, Collection, setValue, getValue, getUniqueID, getInstance, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { select, selectAll, closest, detach, append, rippleEffect, isVisible, Complex, addClass, removeClass } from '@syncfusion/ej2-base';\nimport { ListBase } from '@syncfusion/ej2-lists';\nimport { getZindexPartial, calculatePosition, isCollide, fit, Popup } from '@syncfusion/ej2-popups';\nimport { SanitizeHtmlHelper } from '@syncfusion/ej2-base';\nimport { getScrollableParent } from '@syncfusion/ej2-popups';\nimport { HScroll } from '../common/h-scroll';\nimport { VScroll } from '../common/v-scroll';\nimport { addScrolling, destroyScroll } from '../common/menu-scroll';\nvar ENTER = 'enter';\nvar ESCAPE = 'escape';\nvar FOCUSED = 'e-focused';\nvar HEADER = 'e-menu-header';\nvar SELECTED = 'e-selected';\nvar SEPARATOR = 'e-separator';\nvar UPARROW = 'uparrow';\nvar DOWNARROW = 'downarrow';\nvar LEFTARROW = 'leftarrow';\nvar RIGHTARROW = 'rightarrow';\nvar HOME = 'home';\nvar END = 'end';\nvar TAB = 'tab';\nvar CARET = 'e-caret';\nvar ITEM = 'e-menu-item';\nvar DISABLED = 'e-disabled';\nvar HIDE = 'e-menu-hide';\nvar ICONS = 'e-icons';\nvar RTL = 'e-rtl';\nvar POPUP = 'e-menu-popup';\nvar TEMPLATE_PROPERTY = 'Template';\n/**\n * Configures the field options of the Menu.\n */\nvar FieldSettings = /** @class */ (function (_super) {\n __extends(FieldSettings, _super);\n function FieldSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('id')\n ], FieldSettings.prototype, \"itemId\", void 0);\n __decorate([\n Property('parentId')\n ], FieldSettings.prototype, \"parentId\", void 0);\n __decorate([\n Property('text')\n ], FieldSettings.prototype, \"text\", void 0);\n __decorate([\n Property('iconCss')\n ], FieldSettings.prototype, \"iconCss\", void 0);\n __decorate([\n Property('url')\n ], FieldSettings.prototype, \"url\", void 0);\n __decorate([\n Property('separator')\n ], FieldSettings.prototype, \"separator\", void 0);\n __decorate([\n Property('items')\n ], FieldSettings.prototype, \"children\", void 0);\n return FieldSettings;\n}(ChildProperty));\nexport { FieldSettings };\n/**\n * Specifies menu items.\n */\nvar MenuItem = /** @class */ (function (_super) {\n __extends(MenuItem, _super);\n function MenuItem() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(null)\n ], MenuItem.prototype, \"iconCss\", void 0);\n __decorate([\n Property('')\n ], MenuItem.prototype, \"id\", void 0);\n __decorate([\n Property(false)\n ], MenuItem.prototype, \"separator\", void 0);\n __decorate([\n Collection([], MenuItem)\n ], MenuItem.prototype, \"items\", void 0);\n __decorate([\n Property('')\n ], MenuItem.prototype, \"text\", void 0);\n __decorate([\n Property('')\n ], MenuItem.prototype, \"url\", void 0);\n return MenuItem;\n}(ChildProperty));\nexport { MenuItem };\n/**\n * Animation configuration settings.\n */\nvar MenuAnimationSettings = /** @class */ (function (_super) {\n __extends(MenuAnimationSettings, _super);\n function MenuAnimationSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('SlideDown')\n ], MenuAnimationSettings.prototype, \"effect\", void 0);\n __decorate([\n Property(400)\n ], MenuAnimationSettings.prototype, \"duration\", void 0);\n __decorate([\n Property('ease')\n ], MenuAnimationSettings.prototype, \"easing\", void 0);\n return MenuAnimationSettings;\n}(ChildProperty));\nexport { MenuAnimationSettings };\n/**\n * Base class for Menu and ContextMenu components.\n *\n * @private\n */\nvar MenuBase = /** @class */ (function (_super) {\n __extends(MenuBase, _super);\n /**\n * Constructor for creating the widget.\n *\n * @private\n * @param {MenuBaseModel} options - Specifies the menu base model\n * @param {string | HTMLUListElement} element - Specifies the element\n */\n function MenuBase(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.navIdx = [];\n _this.animation = new Animation({});\n _this.isTapHold = false;\n _this.tempItem = [];\n _this.showSubMenuOn = 'Auto';\n return _this;\n }\n /**\n * Initialized third party configuration settings.\n *\n * @private\n * @returns {void}\n */\n MenuBase.prototype.preRender = function () {\n if (!this.isMenu) {\n var ul = void 0;\n if (this.element.tagName === 'EJS-CONTEXTMENU') {\n ul = this.createElement('ul', {\n id: getUniqueID(this.getModuleName()), className: 'e-control e-lib e-' + this.getModuleName()\n });\n var ejInst = getValue('ej2_instances', this.element);\n removeClass([this.element], ['e-control', 'e-lib', 'e-' + this.getModuleName()]);\n this.clonedElement = this.element;\n this.element = ul;\n setValue('ej2_instances', ejInst, this.element);\n }\n else {\n ul = this.createElement('ul', { id: getUniqueID(this.getModuleName()) });\n append([].slice.call(this.element.cloneNode(true).children), ul);\n var refEle = this.element.nextElementSibling;\n if (refEle) {\n this.element.parentElement.insertBefore(ul, refEle);\n }\n else {\n this.element.parentElement.appendChild(ul);\n }\n this.clonedElement = ul;\n }\n this.clonedElement.style.display = 'none';\n }\n if (this.element.tagName === 'EJS-MENU') {\n var ele = this.element;\n var ejInstance = getValue('ej2_instances', ele);\n var ul = this.createElement('ul');\n var wrapper = this.createElement('EJS-MENU', { className: 'e-' + this.getModuleName() + '-wrapper' });\n for (var idx = 0, len = ele.attributes.length; idx < len; idx++) {\n ul.setAttribute(ele.attributes[idx].nodeName, ele.attributes[idx].nodeValue);\n }\n ele.parentNode.insertBefore(wrapper, ele);\n detach(ele);\n ele = ul;\n wrapper.appendChild(ele);\n setValue('ej2_instances', ejInstance, ele);\n this.clonedElement = wrapper;\n this.element = ele;\n if (!this.element.id) {\n this.element.id = getUniqueID(this.getModuleName());\n }\n }\n };\n /**\n * Initialize the control rendering.\n *\n * @private\n * @returns {void}\n */\n MenuBase.prototype.render = function () {\n var _this = this;\n this.initialize();\n this.renderItems();\n this.wireEvents();\n this.renderComplete();\n var wrapper = this.getWrapper();\n // eslint-disable-next-line\n if (this.template && this.enableScrolling && (this.isReact || this.isAngular)) {\n requestAnimationFrame(function () {\n addScrolling(_this.createElement, wrapper, _this.element, 'hscroll', _this.enableRtl);\n });\n }\n };\n MenuBase.prototype.initialize = function () {\n var wrapper = this.getWrapper();\n if (!wrapper) {\n wrapper = this.createElement('div', { className: 'e-' + this.getModuleName() + '-wrapper' });\n if (this.isMenu) {\n this.element.parentElement.insertBefore(wrapper, this.element);\n }\n else {\n document.body.appendChild(wrapper);\n }\n }\n if (this.cssClass) {\n addClass([wrapper], this.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n if (this.enableRtl) {\n wrapper.classList.add(RTL);\n }\n wrapper.appendChild(this.element);\n if (this.isMenu && this.hamburgerMode) {\n if (!this.target) {\n this.createHeaderContainer(wrapper);\n }\n }\n this.defaultOption = this.showItemOnClick;\n };\n MenuBase.prototype.renderItems = function () {\n if (!this.items.length) {\n var items = ListBase.createJsonFromElement(this.element, { fields: { child: 'items' } });\n this.setProperties({ items: items }, true);\n if (isBlazor() && !this.isMenu) {\n this.element = this.removeChildElement(this.element);\n }\n else {\n this.element.innerHTML = '';\n }\n }\n var ul = this.createItems(this.items);\n append(Array.prototype.slice.call(ul.children), this.element);\n this.element.classList.add('e-menu-parent');\n if (this.isMenu) {\n if (!this.hamburgerMode && this.element.classList.contains('e-vertical')) {\n this.setBlankIconStyle(this.element);\n }\n if (this.enableScrolling) {\n var wrapper = this.getWrapper();\n if (this.element.classList.contains('e-vertical')) {\n addScrolling(this.createElement, wrapper, this.element, 'vscroll', this.enableRtl);\n }\n else {\n addScrolling(this.createElement, wrapper, this.element, 'hscroll', this.enableRtl);\n }\n }\n }\n };\n MenuBase.prototype.wireEvents = function () {\n var wrapper = this.getWrapper();\n if (this.target) {\n var target = void 0;\n var targetElems = selectAll(this.target);\n for (var i = 0, len = targetElems.length; i < len; i++) {\n target = targetElems[i];\n if (this.isMenu) {\n EventHandler.add(target, 'click', this.menuHeaderClickHandler, this);\n }\n else {\n if (Browser.isIos) {\n new Touch(target, { tapHold: this.touchHandler.bind(this) });\n }\n else {\n EventHandler.add(target, 'contextmenu', this.cmenuHandler, this);\n }\n }\n }\n this.targetElement = target;\n if (!this.isMenu) {\n EventHandler.add(this.targetElement, 'mousewheel DOMMouseScroll', this.scrollHandler, this);\n for (var _i = 0, _a = getScrollableParent(this.targetElement); _i < _a.length; _i++) {\n var parent_1 = _a[_i];\n EventHandler.add(parent_1, 'mousewheel DOMMouseScroll', this.scrollHandler, this);\n }\n }\n }\n if (!Browser.isDevice) {\n this.delegateMoverHandler = this.moverHandler.bind(this);\n this.delegateMouseDownHandler = this.mouseDownHandler.bind(this);\n EventHandler.add(this.isMenu ? document : wrapper, 'mouseover', this.delegateMoverHandler, this);\n EventHandler.add(document, 'mousedown', this.delegateMouseDownHandler, this);\n }\n this.delegateClickHandler = this.clickHandler.bind(this);\n EventHandler.add(document, 'click', this.delegateClickHandler, this);\n this.wireKeyboardEvent(wrapper);\n this.rippleFn = rippleEffect(wrapper, { selector: '.' + ITEM });\n };\n MenuBase.prototype.wireKeyboardEvent = function (element) {\n var keyConfigs = {\n downarrow: DOWNARROW,\n uparrow: UPARROW,\n enter: ENTER,\n leftarrow: LEFTARROW,\n rightarrow: RIGHTARROW,\n escape: ESCAPE\n };\n if (this.isMenu) {\n keyConfigs.home = HOME;\n keyConfigs.end = END;\n keyConfigs.tab = TAB;\n }\n new KeyboardEvents(element, {\n keyAction: this.keyBoardHandler.bind(this),\n keyConfigs: keyConfigs\n });\n };\n MenuBase.prototype.mouseDownHandler = function (e) {\n if (closest(e.target, '.e-' + this.getModuleName() + '-wrapper') !== this.getWrapper()\n && (!closest(e.target, '.e-' + this.getModuleName() + '-popup'))) {\n this.closeMenu(this.isMenu ? null : this.navIdx.length, e);\n }\n };\n MenuBase.prototype.keyHandler = function (e) {\n if (e.keyCode === 38 || e.keyCode === 40) {\n if (e.target && (e.target.classList.contains('e-contextmenu') || e.target.classList.contains('e-menu-item'))) {\n e.preventDefault();\n }\n }\n };\n MenuBase.prototype.keyBoardHandler = function (e) {\n var actionName = '';\n var trgt = e.target;\n var actionNeeded = this.isMenu && !this.hamburgerMode && !this.element.classList.contains('e-vertical')\n && this.navIdx.length < 1;\n e.preventDefault();\n if (this.enableScrolling && e.keyCode === 13 && trgt.classList.contains('e-scroll-nav')) {\n this.removeLIStateByClass([FOCUSED, SELECTED], [closest(trgt, '.e-' + this.getModuleName() + '-wrapper')]);\n }\n if (actionNeeded) {\n switch (e.action) {\n case RIGHTARROW:\n actionName = RIGHTARROW;\n e.action = DOWNARROW;\n break;\n case LEFTARROW:\n actionName = LEFTARROW;\n e.action = UPARROW;\n break;\n case DOWNARROW:\n actionName = DOWNARROW;\n e.action = RIGHTARROW;\n break;\n case UPARROW:\n actionName = UPARROW;\n e.action = '';\n break;\n }\n }\n else if (this.enableRtl) {\n switch (e.action) {\n case LEFTARROW:\n actionNeeded = true;\n actionName = LEFTARROW;\n e.action = RIGHTARROW;\n break;\n case RIGHTARROW:\n actionNeeded = true;\n actionName = RIGHTARROW;\n e.action = LEFTARROW;\n break;\n }\n }\n switch (e.action) {\n case DOWNARROW:\n case UPARROW:\n case END:\n case HOME:\n case TAB:\n this.upDownKeyHandler(e);\n break;\n case RIGHTARROW:\n this.rightEnterKeyHandler(e);\n break;\n case LEFTARROW:\n this.leftEscKeyHandler(e);\n break;\n case ENTER:\n if (this.hamburgerMode && trgt.tagName === 'SPAN' && trgt.classList.contains('e-menu-icon')) {\n this.menuHeaderClickHandler(e);\n }\n else {\n this.rightEnterKeyHandler(e);\n }\n break;\n case ESCAPE:\n this.leftEscKeyHandler(e);\n break;\n }\n if (actionNeeded) {\n e.action = actionName;\n }\n };\n MenuBase.prototype.upDownKeyHandler = function (e) {\n var cul = this.getUlByNavIdx();\n var defaultIdx = (e.action === DOWNARROW || e.action === HOME || e.action === TAB) ? 0 : cul.childElementCount - 1;\n var fliIdx = defaultIdx;\n var fli = this.getLIByClass(cul, FOCUSED);\n if (fli) {\n if (e.action !== END && e.action !== HOME) {\n fliIdx = this.getIdx(cul, fli);\n }\n fli.classList.remove(FOCUSED);\n if (e.action !== END && e.action !== HOME) {\n if (e.action === DOWNARROW) {\n fliIdx++;\n }\n else {\n fliIdx--;\n }\n if (fliIdx === (e.action === DOWNARROW ? cul.childElementCount : -1)) {\n fliIdx = defaultIdx;\n }\n }\n }\n var cli = cul.children[fliIdx];\n fliIdx = this.isValidLI(cli, fliIdx, e.action);\n cul.children[fliIdx].classList.add(FOCUSED);\n cul.children[fliIdx].focus();\n };\n MenuBase.prototype.isValidLI = function (cli, index, action) {\n var cul = this.getUlByNavIdx();\n var defaultIdx = (action === DOWNARROW || action === HOME || action === TAB) ? 0 : cul.childElementCount - 1;\n if (cli.classList.contains(SEPARATOR) || cli.classList.contains(DISABLED) || cli.classList.contains(HIDE)) {\n if (action === DOWNARROW && index === cul.childElementCount - 1) {\n index = defaultIdx;\n }\n else if (action === UPARROW && index === 0) {\n index = defaultIdx;\n }\n else if ((action === DOWNARROW) || (action === RIGHTARROW)) {\n index++;\n }\n else {\n index--;\n }\n }\n cli = cul.children[index];\n if (cli.classList.contains(SEPARATOR) || cli.classList.contains(DISABLED) || cli.classList.contains(HIDE)) {\n index = this.isValidLI(cli, index, action);\n }\n return index;\n };\n MenuBase.prototype.getUlByNavIdx = function (navIdxLen) {\n var _this = this;\n if (navIdxLen === void 0) { navIdxLen = this.navIdx.length; }\n if (this.isMenu) {\n var popups_1 = [];\n var allPopup = selectAll('.' + POPUP);\n allPopup.forEach(function (elem) {\n if (_this.element.id === elem.id.split('-')[2]) {\n popups_1.push(elem);\n }\n });\n var popup = [this.getWrapper()].concat([].slice.call(popups_1))[navIdxLen];\n return isNullOrUndefined(popup) ? null : select('.e-menu-parent', popup);\n }\n else {\n return this.getWrapper().children[navIdxLen];\n }\n };\n MenuBase.prototype.rightEnterKeyHandler = function (e) {\n var eventArgs;\n var cul = this.getUlByNavIdx();\n var fli = this.getLIByClass(cul, FOCUSED);\n if (fli) {\n var fliIdx = this.getIdx(cul, fli);\n var navIdx = this.navIdx.concat(fliIdx);\n var item = this.getItem(navIdx);\n if (item.items.length) {\n this.navIdx.push(fliIdx);\n this.keyType = 'right';\n this.action = e.action;\n this.openMenu(fli, item, -1, -1, e);\n }\n else {\n if (e.action === ENTER) {\n if (this.isMenu && this.navIdx.length === 0) {\n this.removeLIStateByClass([SELECTED], [this.getWrapper()]);\n }\n else {\n fli.classList.remove(FOCUSED);\n }\n fli.classList.add(SELECTED);\n eventArgs = { element: fli, item: item, event: e };\n this.trigger('select', eventArgs);\n this.closeMenu(null, e);\n }\n }\n }\n };\n MenuBase.prototype.leftEscKeyHandler = function (e) {\n if (this.navIdx.length) {\n this.keyType = 'left';\n this.closeMenu(this.navIdx.length, e);\n }\n else {\n if (e.action === ESCAPE) {\n this.closeMenu(null, e);\n }\n }\n };\n MenuBase.prototype.scrollHandler = function (e) {\n this.closeMenu(null, e);\n };\n MenuBase.prototype.touchHandler = function (e) {\n this.isTapHold = true;\n this.cmenuHandler(e.originalEvent);\n };\n MenuBase.prototype.cmenuHandler = function (e) {\n e.preventDefault();\n this.currentTarget = e.target;\n this.isCMenu = true;\n this.pageX = e.changedTouches ? e.changedTouches[0].pageX + 1 : e.pageX + 1;\n this.pageY = e.changedTouches ? e.changedTouches[0].pageY + 1 : e.pageY + 1;\n this.closeMenu(null, e);\n if (this.isCMenu) {\n if (this.canOpen(e.target)) {\n this.openMenu(null, null, this.pageY, this.pageX, e);\n }\n this.isCMenu = false;\n }\n };\n // eslint:disable-next-line:max-func-body-length\n MenuBase.prototype.closeMenu = function (ulIndex, e, isIterated) {\n var _this = this;\n if (ulIndex === void 0) { ulIndex = 0; }\n if (e === void 0) { e = null; }\n if (this.isMenuVisible()) {\n var sli = void 0;\n var item_1;\n var wrapper_1 = this.getWrapper();\n var beforeCloseArgs = void 0;\n var items_1;\n var popups = this.getPopups();\n var isClose = false;\n var cnt = this.isMenu ? popups.length + 1 : wrapper_1.childElementCount;\n var ul_1 = this.isMenu && cnt !== 1 ? select('.e-ul', popups[cnt - 2])\n : selectAll('.e-menu-parent', wrapper_1)[cnt - 1];\n if (this.isMenu && ul_1.classList.contains('e-menu')) {\n sli = this.getLIByClass(ul_1, SELECTED);\n if (sli) {\n sli.classList.remove(SELECTED);\n }\n isClose = true;\n }\n if (!isClose) {\n var liElem_1 = e && e.target && this.getLI(e.target);\n if (liElem_1) {\n this.cli = liElem_1;\n }\n else {\n this.cli = ul_1.children[0];\n }\n item_1 = this.navIdx.length ? this.getItem(this.navIdx) : null;\n items_1 = item_1 ? item_1.items : this.items;\n beforeCloseArgs = { element: ul_1, parentItem: item_1, items: items_1, event: e, cancel: false, isFocused: true };\n this.trigger('beforeClose', beforeCloseArgs, function (observedCloseArgs) {\n var popupEle;\n var closeArgs;\n var popupId = '';\n var popupObj;\n var isOpen = !observedCloseArgs.cancel;\n if (isOpen || _this.isCMenu) {\n if (_this.isMenu) {\n popupEle = closest(ul_1, '.' + POPUP);\n if (_this.hamburgerMode) {\n popupEle.parentElement.style.minHeight = '';\n closest(ul_1, '.e-menu-item').setAttribute('aria-expanded', 'false');\n }\n _this.unWireKeyboardEvent(popupEle);\n destroyScroll(getInstance(popupEle.children[0], VScroll), popupEle.children[0]);\n popupObj = getInstance(popupEle, Popup);\n popupObj.hide();\n popupId = popupEle.id;\n popupObj.destroy();\n detach(popupEle);\n }\n else {\n _this.toggleAnimation(ul_1, false);\n }\n closeArgs = { element: ul_1, parentItem: item_1, items: items_1 };\n _this.trigger('onClose', closeArgs);\n _this.navIdx.pop();\n if (!_this.isMenu) {\n EventHandler.remove(ul_1, 'keydown', _this.keyHandler);\n if (_this.keyType === 'right') {\n _this.keyType = '';\n }\n }\n }\n _this.updateReactTemplate();\n var trgtliId;\n var closedLi;\n var trgtLi;\n var trgtpopUp = _this.getWrapper() && _this.getUlByNavIdx();\n if (_this.isCMenu) {\n if (_this.canOpen(e.target)) {\n _this.openMenu(null, null, _this.pageY, _this.pageX, e);\n }\n _this.isCMenu = false;\n }\n if (_this.isMenu && trgtpopUp && popupId.length) {\n // eslint-disable-next-line\n trgtliId = new RegExp('(.*)-ej2menu-' + _this.element.id + '-popup').exec(popupId)[1];\n closedLi = trgtpopUp.querySelector('[id=\"' + trgtliId + '\"]');\n trgtLi = (liElem_1 && trgtpopUp.querySelector('[id=\"' + liElem_1.id + '\"]'));\n }\n else if (trgtpopUp) {\n closedLi = trgtpopUp.querySelector('.e-menu-item.e-selected');\n trgtLi = (liElem_1 && trgtpopUp.querySelector('[id=\"' + liElem_1.id + '\"]'));\n }\n var submenus = liElem_1 && liElem_1.querySelectorAll('.e-menu-item');\n if (isOpen && _this.hamburgerMode && ulIndex && !(submenus.length)) {\n _this.afterCloseMenu(e);\n }\n else if (isOpen && !_this.hamburgerMode && closedLi && !trgtLi && _this.keyType !== 'left' && (_this.navIdx.length || !_this.isMenu && _this.navIdx.length === 0)) {\n var ele = (e && e.target.classList.contains('e-vscroll'))\n ? closest(e.target, '.e-menu-wrapper') : null;\n if (ele) {\n ele = ele.querySelector('.e-menu-item');\n if (_this.showItemOnClick || (ele && _this.getIndex(ele.id, true).length <= _this.navIdx.length)) {\n _this.closeMenu(_this.navIdx[_this.navIdx.length - 1], e, true);\n }\n }\n else {\n _this.closeMenu(_this.navIdx[_this.navIdx.length - 1], e);\n }\n }\n else if (isOpen && !isIterated && !ulIndex && ((_this.hamburgerMode && _this.navIdx.length) ||\n _this.navIdx.length === 1 && liElem_1 && trgtpopUp !== liElem_1.parentElement)) {\n _this.closeMenu(null, e);\n }\n else if (isOpen && isNullOrUndefined(ulIndex) && _this.navIdx.length) {\n _this.closeMenu(null, e);\n }\n else if (isOpen && !_this.isMenu && !ulIndex && _this.navIdx.length === 0 && !_this.isMenusClosed) {\n _this.isMenusClosed = true;\n _this.closeMenu(0, e);\n }\n else if (isOpen && _this.isMenu && e && e.target &&\n _this.navIdx.length !== 0 && closest(e.target, '.e-menu-parent.e-control')) {\n _this.closeMenu(0, e);\n }\n else if (isOpen && !_this.isMenu && selectAll('.e-menu-parent', wrapper_1)[ulIndex - 1] && e.which === 3) {\n _this.closeMenu(null, e);\n }\n else {\n if (isOpen && (_this.keyType === 'right' || _this.keyType === 'click')) {\n _this.afterCloseMenu(e);\n }\n else {\n var cul = _this.getUlByNavIdx();\n var sli_1 = _this.getLIByClass(cul, SELECTED);\n if (sli_1) {\n sli_1.setAttribute('aria-expanded', 'false');\n sli_1.classList.remove(SELECTED);\n if (observedCloseArgs.isFocused && liElem_1 || _this.keyType === 'left') {\n sli_1.classList.add(FOCUSED);\n if (!e.target || !e.target.classList.contains('e-edit-template')) {\n sli_1.focus();\n }\n }\n }\n if (!isOpen && _this.hamburgerMode && liElem_1 && liElem_1.getAttribute('aria-expanded') === 'false' &&\n liElem_1.getAttribute('aria-haspopup') === 'true') {\n if (closest(liElem_1, '.e-menu-parent.e-control')) {\n _this.navIdx = [];\n }\n else {\n _this.navIdx.pop();\n }\n _this.navIdx.push(_this.cliIdx);\n var item_2 = _this.getItem(_this.navIdx);\n liElem_1.setAttribute('aria-expanded', 'true');\n _this.openMenu(liElem_1, item_2, -1, -1, e);\n }\n }\n if (_this.navIdx.length < 1) {\n if (_this.showSubMenuOn === 'Hover' || _this.showSubMenuOn === 'Click') {\n _this.showItemOnClick = _this.defaultOption;\n _this.showSubMenuOn = 'Auto';\n }\n }\n }\n _this.removeStateWrapper();\n });\n }\n }\n };\n MenuBase.prototype.updateReactTemplate = function () {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact && this.template && this.navIdx.length === 0) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var portals = this.portals.splice(0, this.items.length);\n this.clearTemplate(['template']);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.portals = portals;\n this.renderReactTemplates();\n }\n };\n MenuBase.prototype.getMenuItemModel = function (item, level) {\n if (isNullOrUndefined(item)) {\n return null;\n }\n if (isNullOrUndefined(level)) {\n level = 0;\n }\n var fields = this.getFields(level);\n return { text: item[fields.text], id: item[fields.id], items: item[fields.child], separator: item[fields.separator],\n iconCss: item[fields.iconCss], url: item[fields.url] };\n };\n MenuBase.prototype.getPopups = function () {\n var _this = this;\n var popups = [];\n [].slice.call(document.querySelectorAll('.' + POPUP)).forEach(function (elem) {\n if (!isNullOrUndefined(elem.querySelector('.' + ITEM)) && _this.getIndex(elem.querySelector('.' + ITEM).id, true).length) {\n popups.push(elem);\n }\n });\n return popups;\n };\n MenuBase.prototype.isMenuVisible = function () {\n return (this.navIdx.length > 0 || (this.element.classList.contains('e-contextmenu') && isVisible(this.element).valueOf()));\n };\n MenuBase.prototype.canOpen = function (target) {\n var canOpen = true;\n if (this.filter) {\n canOpen = false;\n var filter = this.filter.split(' ');\n for (var i = 0, len = filter.length; i < len; i++) {\n if (closest(target, '.' + filter[i])) {\n canOpen = true;\n break;\n }\n }\n }\n return canOpen;\n };\n MenuBase.prototype.openMenu = function (li, item, top, left, e, target) {\n var _this = this;\n if (top === void 0) { top = 0; }\n if (left === void 0) { left = 0; }\n if (e === void 0) { e = null; }\n if (target === void 0) { target = this.targetElement; }\n var wrapper = this.getWrapper();\n this.lItem = li;\n var elemId = this.element.id !== '' ? this.element.id : 'menu';\n this.isMenusClosed = false;\n if (isNullOrUndefined(top)) {\n top = -1;\n }\n if (isNullOrUndefined(left)) {\n left = -1;\n }\n if (li) {\n this.uList = this.createItems(item[this.getField('children', this.navIdx.length - 1)]);\n if (!this.isMenu && Browser.isDevice) {\n wrapper.lastChild.style.display = 'none';\n var data = {\n text: item[this.getField('text')].toString(), iconCss: ICONS + ' e-previous'\n };\n var hdata = new MenuItem(this.items[0], 'items', data, true);\n var hli = this.createItems([hdata]).children[0];\n hli.classList.add(HEADER);\n this.uList.insertBefore(hli, this.uList.children[0]);\n }\n if (this.isMenu) {\n this.popupWrapper = this.createElement('div', {\n className: 'e-' + this.getModuleName() + '-wrapper ' + POPUP, id: li.id + '-ej2menu-' + elemId + '-popup'\n });\n if (this.hamburgerMode) {\n top = li.offsetHeight;\n li.appendChild(this.popupWrapper);\n }\n else {\n document.body.appendChild(this.popupWrapper);\n }\n this.isNestedOrVertical = this.element.classList.contains('e-vertical') || this.navIdx.length !== 1;\n this.popupObj = this.generatePopup(this.popupWrapper, this.uList, li, this.isNestedOrVertical);\n if (this.template) {\n this.renderReactTemplates();\n }\n if (this.hamburgerMode) {\n this.calculateIndentSize(this.uList, li);\n }\n else {\n if (this.cssClass) {\n addClass([this.popupWrapper], this.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n this.popupObj.hide();\n }\n if (!this.hamburgerMode && !this.showItemOnClick && this.hoverDelay) {\n window.clearInterval(this.timer);\n this.timer = window.setTimeout(function () { _this.triggerBeforeOpen(li, _this.uList, item, e, 0, 0, 'menu'); }, this.hoverDelay);\n }\n else {\n this.triggerBeforeOpen(li, this.uList, item, e, 0, 0, 'menu');\n }\n }\n else {\n this.uList.style.zIndex = this.element.style.zIndex;\n wrapper.appendChild(this.uList);\n if (!this.showItemOnClick && this.hoverDelay) {\n window.clearInterval(this.timer);\n this.timer = window.setTimeout(function () { _this.triggerBeforeOpen(li, _this.uList, item, e, top, left, 'none'); }, this.hoverDelay);\n }\n else {\n this.triggerBeforeOpen(li, this.uList, item, e, top, left, 'none');\n }\n }\n }\n else {\n this.uList = this.element;\n this.uList.style.zIndex = getZindexPartial(target ? target : this.element).toString();\n if (isNullOrUndefined(e)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var ev = document.createEvent('MouseEvents');\n ev.initEvent(\"click\", true, false);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var targetEvent = this.copyObject(ev, {});\n targetEvent.target = targetEvent.srcElement = target;\n targetEvent.currentTarget = target;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.triggerBeforeOpen(li, this.uList, item, targetEvent, top, left, 'none');\n }\n else {\n this.triggerBeforeOpen(li, this.uList, item, e, top, left, 'none');\n }\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n MenuBase.prototype.copyObject = function (source, destination) {\n for (var prop in source) {\n destination[\"\" + prop] = source[\"\" + prop];\n }\n return destination;\n };\n MenuBase.prototype.calculateIndentSize = function (ul, li) {\n var liStyle = getComputedStyle(li);\n var liIndent = parseInt(liStyle.textIndent, 10);\n if (this.navIdx.length < 2 && !li.classList.contains('e-blankicon')) {\n liIndent *= 2;\n }\n else {\n liIndent += (liIndent / 4);\n }\n ul.style.textIndent = liIndent + 'px';\n var blankIconElem = ul.querySelectorAll('.e-blankicon');\n if (blankIconElem && blankIconElem.length) {\n var menuIconElem = ul.querySelector('.e-menu-icon');\n var menuIconElemStyle = getComputedStyle(menuIconElem);\n var blankIconIndent = (parseInt(menuIconElemStyle.marginRight, 10) + menuIconElem.offsetWidth + liIndent);\n for (var i = 0; i < blankIconElem.length; i++) {\n blankIconElem[i].style.textIndent = blankIconIndent + 'px';\n }\n }\n };\n MenuBase.prototype.generatePopup = function (popupWrapper, ul, li, isNestedOrVertical) {\n var _this = this;\n var popupObj = new Popup(popupWrapper, {\n actionOnScroll: this.hamburgerMode ? 'none' : 'reposition',\n relateTo: li,\n collision: this.hamburgerMode ? { X: 'none', Y: 'none' } : { X: isNestedOrVertical ||\n this.enableRtl ? 'none' : 'flip', Y: 'fit' },\n position: (isNestedOrVertical && !this.hamburgerMode) ? { X: 'right', Y: 'top' } : { X: 'left', Y: 'bottom' },\n targetType: 'relative',\n enableRtl: this.enableRtl,\n content: ul,\n open: function () {\n var scrollEle = select('.e-menu-vscroll', popupObj.element);\n if (scrollEle) {\n scrollEle.style.height = 'inherit';\n scrollEle.style.maxHeight = '';\n }\n var ul = select('.e-ul', popupObj.element);\n popupObj.element.style.maxHeight = '';\n ul.focus();\n _this.triggerOpen(ul);\n }\n });\n return popupObj;\n };\n MenuBase.prototype.createHeaderContainer = function (wrapper) {\n wrapper = wrapper || this.getWrapper();\n var spanElem = this.createElement('span', { className: 'e-' + this.getModuleName() + '-header' });\n var tempTitle = (this.enableHtmlSanitizer) ? SanitizeHtmlHelper.sanitize(this.title) : this.title;\n var spanTitle = this.createElement('span', {\n className: 'e-' + this.getModuleName() + '-title', innerHTML: tempTitle\n });\n var spanIcon = this.createElement('span', {\n className: 'e-icons e-' + this.getModuleName() + '-icon', attrs: { 'tabindex': '0' }\n });\n spanElem.appendChild(spanTitle);\n spanElem.appendChild(spanIcon);\n wrapper.insertBefore(spanElem, this.element);\n };\n MenuBase.prototype.openHamburgerMenu = function (e) {\n if (this.hamburgerMode) {\n this.triggerBeforeOpen(null, this.element, null, e, 0, 0, 'hamburger');\n }\n };\n MenuBase.prototype.closeHamburgerMenu = function (e) {\n var _this = this;\n var beforeCloseArgs = { element: this.element, parentItem: null, event: e,\n items: this.items, cancel: false };\n this.trigger('beforeClose', beforeCloseArgs, function (observedHamburgerCloseArgs) {\n if (!observedHamburgerCloseArgs.cancel) {\n _this.closeMenu(null, e);\n _this.element.classList.add('e-hide-menu');\n _this.trigger('onClose', { element: _this.element, parentItem: null, items: _this.items });\n }\n });\n };\n MenuBase.prototype.callFit = function (element, x, y, top, left) {\n return fit(element, null, { X: x, Y: y }, { top: top, left: left });\n };\n MenuBase.prototype.triggerBeforeOpen = function (li, ul, item, e, top, left, type) {\n var _this = this;\n var items = li ? item[this.getField('children', this.navIdx.length - 1)] : this.items;\n var eventArgs = {\n element: ul, items: items, parentItem: item, event: e, cancel: false, top: top, left: left, showSubMenuOn: 'Auto'\n };\n var menuType = type;\n this.trigger('beforeOpen', eventArgs, function (observedOpenArgs) {\n switch (menuType) {\n case 'menu':\n if (!_this.hamburgerMode) {\n if (observedOpenArgs.showSubMenuOn !== 'Auto') {\n _this.showItemOnClick = !_this.defaultOption;\n _this.showSubMenuOn = observedOpenArgs.showSubMenuOn;\n }\n _this.top = observedOpenArgs.top;\n _this.left = observedOpenArgs.left;\n }\n _this.popupWrapper.style.display = 'block';\n if (!_this.hamburgerMode) {\n _this.popupWrapper.style.maxHeight = _this.popupWrapper.getBoundingClientRect().height + 'px';\n if (_this.enableScrolling) {\n addScrolling(_this.createElement, _this.popupWrapper, _this.uList, 'vscroll', _this.enableRtl);\n }\n _this.checkScrollOffset(e);\n }\n if (!_this.hamburgerMode && !_this.left && !_this.top) {\n _this.popupObj.refreshPosition(_this.lItem, true);\n _this.left = parseInt(_this.popupWrapper.style.left, 10);\n _this.top = parseInt(_this.popupWrapper.style.top, 10);\n if (_this.enableRtl) {\n _this.left =\n _this.isNestedOrVertical ? _this.left - _this.popupWrapper.offsetWidth - _this.lItem.parentElement.offsetWidth + 2\n : _this.left - _this.popupWrapper.offsetWidth + _this.lItem.offsetWidth;\n }\n // eslint-disable-next-line\n if (_this.template && (_this.isReact || _this.isAngular)) {\n requestAnimationFrame(function () {\n _this.collision();\n _this.popupWrapper.style.display = '';\n });\n }\n else {\n _this.collision();\n _this.popupWrapper.style.display = '';\n }\n }\n else {\n _this.popupObj.collision = { X: 'none', Y: 'none' };\n _this.popupWrapper.style.display = '';\n }\n break;\n case 'none':\n _this.top = observedOpenArgs.top;\n _this.left = observedOpenArgs.left;\n break;\n case 'hamburger':\n if (!observedOpenArgs.cancel) {\n _this.element.classList.remove('e-hide-menu');\n _this.triggerOpen(_this.element);\n }\n break;\n }\n if (menuType !== 'hamburger') {\n if (observedOpenArgs.cancel) {\n if (_this.isMenu) {\n _this.popupObj.destroy();\n detach(_this.popupWrapper);\n }\n else if (ul.className.indexOf('e-ul') > -1) {\n detach(ul);\n }\n _this.navIdx.pop();\n }\n else {\n if (_this.isMenu) {\n if (_this.hamburgerMode) {\n _this.popupWrapper.style.top = _this.top + 'px';\n _this.popupWrapper.style.left = 0 + 'px';\n _this.toggleAnimation(_this.popupWrapper);\n }\n else {\n _this.setBlankIconStyle(_this.popupWrapper);\n _this.wireKeyboardEvent(_this.popupWrapper);\n rippleEffect(_this.popupWrapper, { selector: '.' + ITEM });\n _this.popupWrapper.style.left = _this.left + 'px';\n _this.popupWrapper.style.top = _this.top + 'px';\n var animationOptions = _this.animationSettings.effect !== 'None' ? {\n name: _this.animationSettings.effect, duration: _this.animationSettings.duration,\n timingFunction: _this.animationSettings.easing\n } : null;\n _this.popupObj.show(animationOptions, _this.lItem);\n }\n }\n else {\n _this.setBlankIconStyle(_this.uList);\n _this.setPosition(_this.lItem, _this.uList, _this.top, _this.left);\n _this.toggleAnimation(_this.uList);\n }\n }\n }\n if (_this.keyType === 'right') {\n var cul = _this.getUlByNavIdx();\n li.classList.remove(FOCUSED);\n if (_this.isMenu && _this.navIdx.length === 1) {\n _this.removeLIStateByClass([SELECTED], [_this.getWrapper()]);\n }\n li.classList.add(SELECTED);\n if (_this.action === ENTER) {\n var eventArgs_1 = { element: li, item: item, event: e };\n _this.trigger('select', eventArgs_1);\n }\n li.focus();\n cul = _this.getUlByNavIdx();\n var index = _this.isValidLI(cul.children[0], 0, _this.action);\n cul.children[index].classList.add(FOCUSED);\n cul.children[index].focus();\n }\n });\n };\n MenuBase.prototype.collision = function () {\n var collide;\n collide = isCollide(this.popupWrapper, null, this.left, this.top);\n if ((this.isNestedOrVertical || this.enableRtl) && (collide.indexOf('right') > -1\n || collide.indexOf('left') > -1)) {\n this.popupObj.collision.X = 'none';\n var offWidth = closest(this.lItem, '.e-' + this.getModuleName() + '-wrapper').offsetWidth;\n this.left =\n this.enableRtl ? calculatePosition(this.lItem, this.isNestedOrVertical ? 'right' : 'left', 'top').left\n : this.left - this.popupWrapper.offsetWidth - offWidth + 2;\n }\n collide = isCollide(this.popupWrapper, null, this.left, this.top);\n if (collide.indexOf('left') > -1 || collide.indexOf('right') > -1) {\n this.left = this.callFit(this.popupWrapper, true, false, this.top, this.left).left;\n }\n this.popupWrapper.style.left = this.left + 'px';\n };\n MenuBase.prototype.setBlankIconStyle = function (menu) {\n var blankIconList = [].slice.call(menu.getElementsByClassName('e-blankicon'));\n if (!blankIconList.length) {\n return;\n }\n var iconLi = menu.querySelector('.e-menu-item:not(.e-blankicon):not(.e-separator)');\n if (!iconLi) {\n return;\n }\n var icon = iconLi.querySelector('.e-menu-icon');\n if (!icon) {\n return;\n }\n var cssProp = this.enableRtl ? { padding: 'paddingRight', margin: 'marginLeft' } :\n { padding: 'paddingLeft', margin: 'marginRight' };\n var iconCssProps = getComputedStyle(icon);\n var iconSize = parseInt(iconCssProps.fontSize, 10);\n if (!!parseInt(iconCssProps.width, 10) && parseInt(iconCssProps.width, 10) > iconSize) {\n iconSize = parseInt(iconCssProps.width, 10);\n }\n // eslint:disable\n var size = iconSize + parseInt(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n iconCssProps[cssProp.margin], 10) + parseInt(getComputedStyle(iconLi)[cssProp.padding], 10) + \"px\";\n blankIconList.forEach(function (li) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n li.style[cssProp.padding] = size;\n });\n // eslint:enable\n };\n MenuBase.prototype.checkScrollOffset = function (e) {\n var wrapper = this.getWrapper();\n if (wrapper.children[0].classList.contains('e-menu-hscroll') && this.navIdx.length === 1) {\n var trgt = isNullOrUndefined(e) ? this.element : closest(e.target, '.' + ITEM);\n var offsetEle = select('.e-hscroll-bar', wrapper);\n if (offsetEle.scrollLeft > trgt.offsetLeft) {\n offsetEle.scrollLeft -= (offsetEle.scrollLeft - trgt.offsetLeft);\n }\n var offsetLeft = offsetEle.scrollLeft + offsetEle.offsetWidth;\n var offsetRight = trgt.offsetLeft + trgt.offsetWidth;\n if (offsetLeft < offsetRight) {\n offsetEle.scrollLeft += (offsetRight - offsetLeft);\n }\n }\n };\n MenuBase.prototype.setPosition = function (li, ul, top, left) {\n var px = 'px';\n this.toggleVisiblity(ul);\n if (ul === this.element || (left > -1 && top > -1)) {\n var collide = isCollide(ul, null, left, top);\n if (collide.indexOf('right') > -1) {\n left = left - ul.offsetWidth;\n }\n if (collide.indexOf('bottom') > -1) {\n var offset = this.callFit(ul, false, true, top, left);\n top = offset.top - 20;\n if (top < 0) {\n var newTop = (pageYOffset + document.documentElement.clientHeight) - ul.getBoundingClientRect().height;\n if (newTop > -1) {\n top = newTop;\n }\n }\n }\n collide = isCollide(ul, null, left, top);\n if (collide.indexOf('left') > -1) {\n var offset = this.callFit(ul, true, false, top, left);\n left = offset.left;\n }\n }\n else {\n if (Browser.isDevice) {\n top = Number(this.element.style.top.replace(px, ''));\n left = Number(this.element.style.left.replace(px, ''));\n }\n else {\n var x = this.enableRtl ? 'left' : 'right';\n var offset = calculatePosition(li, x, 'top');\n top = offset.top;\n left = offset.left;\n var collide = isCollide(ul, null, this.enableRtl ? left - ul.offsetWidth : left, top);\n var xCollision = collide.indexOf('left') > -1 || collide.indexOf('right') > -1;\n if (xCollision) {\n offset = calculatePosition(li, this.enableRtl ? 'right' : 'left', 'top');\n left = offset.left;\n }\n if (this.enableRtl || xCollision) {\n left = (this.enableRtl && xCollision) ? left : left - ul.offsetWidth;\n }\n if (collide.indexOf('bottom') > -1) {\n offset = this.callFit(ul, false, true, top, left);\n top = offset.top;\n }\n }\n }\n this.toggleVisiblity(ul, false);\n ul.style.top = top + px;\n ul.style.left = left + px;\n };\n MenuBase.prototype.toggleVisiblity = function (ul, isVisible) {\n if (isVisible === void 0) { isVisible = true; }\n ul.style.visibility = isVisible ? 'hidden' : '';\n ul.style.display = isVisible ? 'block' : 'none';\n };\n MenuBase.prototype.createItems = function (items) {\n var _this = this;\n var level = this.navIdx ? this.navIdx.length : 0;\n var fields = this.getFields(level);\n var showIcon = this.hasField(items, this.getField('iconCss', level));\n var listBaseOptions = {\n showIcon: showIcon,\n moduleName: 'menu',\n fields: fields,\n template: this.template,\n itemNavigable: true,\n itemCreating: function (args) {\n if (!args.curData[args.fields[fields.id]]) {\n args.curData[args.fields[fields.id]] = getUniqueID('menuitem');\n }\n if (isNullOrUndefined(args.curData.htmlAttributes)) {\n args.curData.htmlAttributes = {};\n }\n Object.assign(args.curData.htmlAttributes, { role: 'menuitem', tabindex: '-1' });\n if (_this.isMenu && !args.curData[_this.getField('separator', level)]) {\n args.curData.htmlAttributes['aria-label'] = args.curData[args.fields.text] ?\n args.curData[args.fields.text] : args.curData[args.fields.id];\n }\n if (args.curData[args.fields[fields.iconCss]] === '') {\n args.curData[args.fields[fields.iconCss]] = null;\n }\n },\n itemCreated: function (args) {\n if (args.curData[_this.getField('separator', level)]) {\n args.item.classList.add(SEPARATOR);\n args.item.setAttribute('role', 'separator');\n }\n if (showIcon && !args.curData[args.fields.iconCss]\n && !args.curData[_this.getField('separator', level)]) {\n args.item.classList.add('e-blankicon');\n }\n if (args.curData[args.fields.child]\n && args.curData[args.fields.child].length) {\n var span = _this.createElement('span', { className: ICONS + ' ' + CARET });\n args.item.appendChild(span);\n args.item.setAttribute('aria-haspopup', 'true');\n args.item.setAttribute('aria-expanded', 'false');\n args.item.classList.add('e-menu-caret-icon');\n }\n if (_this.isMenu && _this.template) {\n args.item.setAttribute('id', args.curData[args.fields.id].toString());\n args.item.removeAttribute('data-uid');\n if (args.item.classList.contains('e-level-1')) {\n args.item.classList.remove('e-level-1');\n }\n if (args.item.classList.contains('e-has-child')) {\n args.item.classList.remove('e-has-child');\n }\n args.item.removeAttribute('aria-level');\n }\n var eventArgs = { item: args.curData, element: args.item };\n _this.trigger('beforeItemRender', eventArgs);\n }\n };\n this.setProperties({ 'items': this.items }, true);\n if (this.isMenu) {\n listBaseOptions.templateID = this.element.id + TEMPLATE_PROPERTY;\n }\n var ul = ListBase.createList(this.createElement, items, listBaseOptions, !this.template, this);\n ul.setAttribute('tabindex', '0');\n if (this.isMenu) {\n ul.setAttribute('role', 'menu');\n }\n else {\n ul.setAttribute('role', 'menubar');\n }\n return ul;\n };\n MenuBase.prototype.moverHandler = function (e) {\n var trgt = e.target;\n this.liTrgt = trgt;\n var cli = this.getLI(trgt);\n var wrapper = cli ? closest(cli, '.e-' + this.getModuleName() + '-wrapper') : this.getWrapper();\n var hdrWrapper = this.getWrapper();\n var regex = new RegExp('-ej2menu-(.*)-popup');\n var ulId;\n var isDifferentElem = false;\n if (!wrapper) {\n return;\n }\n if (wrapper.id !== '') {\n ulId = regex.exec(wrapper.id)[1];\n }\n else {\n ulId = wrapper.querySelector('ul').id;\n }\n if (ulId !== this.element.id) {\n this.removeLIStateByClass([FOCUSED, SELECTED], [this.getWrapper()]);\n if (this.navIdx.length) {\n isDifferentElem = true;\n }\n else {\n return;\n }\n }\n if (cli && closest(cli, '.e-' + this.getModuleName() + '-wrapper') && !isDifferentElem) {\n this.removeLIStateByClass([FOCUSED], this.isMenu ? [wrapper].concat(this.getPopups()) : [wrapper]);\n this.removeLIStateByClass([FOCUSED], this.isMenu ? [hdrWrapper].concat(this.getPopups()) : [hdrWrapper]);\n cli.classList.add(FOCUSED);\n if (!this.showItemOnClick) {\n this.clickHandler(e);\n }\n }\n else if (this.isMenu && this.showItemOnClick && !isDifferentElem) {\n this.removeLIStateByClass([FOCUSED], [wrapper].concat(this.getPopups()));\n }\n if (this.isMenu) {\n if (!this.showItemOnClick && (trgt.parentElement !== wrapper && !closest(trgt, '.e-' + this.getModuleName() + '-popup'))\n && (!cli || (cli && !this.getIndex(cli.id, true).length)) && this.showSubMenuOn !== 'Hover') {\n this.removeLIStateByClass([FOCUSED], [wrapper]);\n if (this.navIdx.length) {\n this.isClosed = true;\n this.closeMenu(null, e);\n }\n }\n else if (isDifferentElem && !this.showItemOnClick) {\n if (this.navIdx.length) {\n this.isClosed = true;\n this.closeMenu(null, e);\n }\n }\n if (!this.isClosed) {\n this.removeStateWrapper();\n }\n this.isClosed = false;\n }\n };\n MenuBase.prototype.removeStateWrapper = function () {\n if (this.liTrgt) {\n var wrapper = closest(this.liTrgt, '.e-menu-vscroll');\n if (this.liTrgt.tagName === 'DIV' && wrapper) {\n this.removeLIStateByClass([FOCUSED, SELECTED], [wrapper]);\n }\n }\n };\n MenuBase.prototype.removeLIStateByClass = function (classList, element) {\n var li;\n var _loop_1 = function (i) {\n classList.forEach(function (className) {\n li = select('.' + className, element[i]);\n if (li) {\n li.classList.remove(className);\n }\n });\n };\n for (var i = 0; i < element.length; i++) {\n _loop_1(i);\n }\n };\n MenuBase.prototype.getField = function (propName, level) {\n if (level === void 0) { level = 0; }\n var fieldName = this.fields[\"\" + propName];\n return typeof fieldName === 'string' ? fieldName :\n (!fieldName[level] ? fieldName[fieldName.length - 1].toString()\n : fieldName[level].toString());\n };\n MenuBase.prototype.getFields = function (level) {\n if (level === void 0) { level = 0; }\n return {\n id: this.getField('itemId', level),\n iconCss: this.getField('iconCss', level),\n text: this.getField('text', level),\n url: this.getField('url', level),\n child: this.getField('children', level),\n separator: this.getField('separator', level)\n };\n };\n MenuBase.prototype.hasField = function (items, field) {\n for (var i = 0, len = items.length; i < len; i++) {\n if (items[i][\"\" + field]) {\n return true;\n }\n }\n return false;\n };\n MenuBase.prototype.menuHeaderClickHandler = function (e) {\n if (closest(e.target, '.e-menu-wrapper').querySelector('ul.e-menu-parent').id !== this.element.id) {\n return;\n }\n if (this.element.className.indexOf('e-hide-menu') > -1) {\n this.openHamburgerMenu(e);\n }\n else {\n this.closeHamburgerMenu(e);\n }\n };\n MenuBase.prototype.clickHandler = function (e) {\n if (this.isTapHold) {\n this.isTapHold = false;\n }\n else {\n var wrapper = this.getWrapper();\n var trgt = e.target;\n var cli = this.cli = this.getLI(trgt);\n var regex = new RegExp('-ej2menu-(.*)-popup');\n var cliWrapper = cli ? closest(cli, '.e-' + this.getModuleName() + '-wrapper') : null;\n var isInstLI = cli && cliWrapper && (this.isMenu ? this.getIndex(cli.id, true).length > 0\n : wrapper.firstElementChild.id === cliWrapper.firstElementChild.id);\n if (Browser.isDevice && this.isMenu) {\n this.removeLIStateByClass([FOCUSED], [wrapper].concat(this.getPopups()));\n this.mouseDownHandler(e);\n }\n if (cli && cliWrapper && this.isMenu) {\n var cliWrapperId = cliWrapper.id ? regex.exec(cliWrapper.id)[1] : cliWrapper.querySelector('.e-menu-parent').id;\n if (this.element.id !== cliWrapperId) {\n return;\n }\n }\n if (isInstLI && e.type === 'click' && !cli.classList.contains(HEADER)) {\n this.setLISelected(cli);\n var navIdx = this.getIndex(cli.id, true);\n var item = this.getItem(navIdx);\n var eventArgs = { element: cli, item: item, event: e };\n this.trigger('select', eventArgs);\n }\n if (isInstLI && (e.type === 'mouseover' || Browser.isDevice || this.showItemOnClick)) {\n var ul = void 0;\n if (cli.classList.contains(HEADER)) {\n ul = wrapper.children[this.navIdx.length - 1];\n this.toggleAnimation(ul);\n var sli = this.getLIByClass(ul, SELECTED);\n if (sli) {\n sli.classList.remove(SELECTED);\n }\n detach(cli.parentNode);\n this.navIdx.pop();\n }\n else {\n if (!cli.classList.contains(SEPARATOR)) {\n this.showSubMenu = true;\n var cul = cli.parentNode;\n this.cliIdx = this.getIdx(cul, cli);\n if (this.isMenu || !Browser.isDevice) {\n var culIdx = this.isMenu ? Array.prototype.indexOf.call([wrapper].concat(this.getPopups()), closest(cul, '.' + 'e-' + this.getModuleName() + '-wrapper'))\n : this.getIdx(wrapper, cul);\n if (this.navIdx[culIdx] === this.cliIdx) {\n this.showSubMenu = false;\n }\n if (culIdx !== this.navIdx.length && (e.type !== 'mouseover' || this.showSubMenu)) {\n var sli = this.getLIByClass(cul, SELECTED);\n if (sli) {\n sli.classList.remove(SELECTED);\n }\n this.isClosed = true;\n this.keyType = 'click';\n if (this.showItemOnClick) {\n this.setLISelected(cli);\n }\n this.closeMenu(culIdx + 1, e);\n if (this.showItemOnClick) {\n this.setLISelected(cli);\n }\n }\n }\n if (!this.isClosed) {\n this.afterCloseMenu(e);\n }\n this.isClosed = false;\n }\n }\n }\n else {\n if (this.isMenu && trgt.tagName === 'DIV' && this.navIdx.length && closest(trgt, '.e-menu-vscroll')) {\n var popupEle = closest(trgt, '.' + POPUP);\n var cIdx = Array.prototype.indexOf.call(this.getPopups(), popupEle) + 1;\n if (cIdx < this.navIdx.length) {\n this.closeMenu(cIdx + 1, e);\n if (popupEle) {\n this.removeLIStateByClass([FOCUSED, SELECTED], [popupEle]);\n }\n }\n }\n else if (this.isMenu && this.hamburgerMode && trgt.tagName === 'SPAN'\n && trgt.classList.contains('e-menu-icon')) {\n this.menuHeaderClickHandler(e);\n }\n else {\n if (trgt.tagName !== 'UL' || (this.isMenu ? trgt.parentElement.classList.contains('e-menu-wrapper') &&\n !this.getIndex(trgt.querySelector('.' + ITEM).id, true).length : trgt.parentElement !== wrapper)) {\n if (!cli) {\n this.removeLIStateByClass([SELECTED], [wrapper]);\n }\n if (!cli || !cli.querySelector('.' + CARET)) {\n this.closeMenu(null, e);\n }\n }\n }\n }\n }\n };\n MenuBase.prototype.afterCloseMenu = function (e) {\n var isHeader;\n if (this.showSubMenu) {\n if (this.showItemOnClick && this.navIdx.length === 0) {\n isHeader = closest(e.target, '.e-menu-parent.e-control');\n }\n else {\n isHeader = closest(this.element, '.e-menu-parent.e-control');\n }\n var idx = this.navIdx.concat(this.cliIdx);\n var item = this.getItem(idx);\n if (item && item[this.getField('children', idx.length - 1)] &&\n item[this.getField('children', idx.length - 1)].length) {\n if (e.type === 'mouseover' || (Browser.isDevice && this.isMenu)) {\n this.setLISelected(this.cli);\n }\n if ((!this.hamburgerMode && isHeader) || (this.hamburgerMode && this.cli.getAttribute('aria-expanded') === 'false')) {\n this.cli.setAttribute('aria-expanded', 'true');\n this.navIdx.push(this.cliIdx);\n this.openMenu(this.cli, item, null, null, e);\n }\n }\n else {\n if (e.type !== 'mouseover') {\n this.closeMenu(null, e);\n }\n }\n if (!isHeader) {\n var cul = this.getUlByNavIdx();\n var sli = this.getLIByClass(cul, SELECTED);\n if (sli) {\n sli.setAttribute('aria-expanded', 'false');\n sli.classList.remove(SELECTED);\n }\n }\n }\n this.keyType = '';\n };\n MenuBase.prototype.setLISelected = function (li) {\n var sli = this.getLIByClass(li.parentElement, SELECTED);\n if (sli) {\n sli.classList.remove(SELECTED);\n }\n if (!this.isMenu) {\n li.classList.remove(FOCUSED);\n }\n li.classList.add(SELECTED);\n };\n MenuBase.prototype.getLIByClass = function (ul, classname) {\n for (var i = 0, len = ul.children.length; i < len; i++) {\n if (ul.children[i].classList.contains(classname)) {\n return ul.children[i];\n }\n }\n return null;\n };\n /**\n * This method is used to get the index of the menu item in the Menu based on the argument.\n *\n * @param {MenuItem | string} item - item be passed to get the index | id to be passed to get the item index.\n * @param {boolean} isUniqueId - Set `true` if it is a unique id.\n * @returns {void}\n */\n MenuBase.prototype.getItemIndex = function (item, isUniqueId) {\n var idx;\n if (typeof item === 'string') {\n idx = item;\n }\n else {\n idx = item.id;\n }\n var isText = (isUniqueId === false) ? false : true;\n var navIdx = this.getIndex(idx, isText);\n return navIdx;\n };\n /**\n * This method is used to set the menu item in the Menu based on the argument.\n *\n * @param {MenuItem} item - item need to be updated.\n * @param {string} id - id / text to be passed to update the item.\n * @param {boolean} isUniqueId - Set `true` if it is a unique id.\n * @returns {void}\n */\n MenuBase.prototype.setItem = function (item, id, isUniqueId) {\n var idx;\n if (isUniqueId) {\n idx = id ? id : item.id;\n }\n else {\n idx = id ? id : item.text;\n }\n var navIdx = this.getIndex(idx, isUniqueId);\n var newItem = this.getItem(navIdx);\n Object.assign(newItem, item);\n };\n MenuBase.prototype.getItem = function (navIdx) {\n navIdx = navIdx.slice();\n var idx = navIdx.pop();\n var items = this.getItems(navIdx);\n return items[idx];\n };\n MenuBase.prototype.getItems = function (navIdx) {\n var items = this.items;\n for (var i = 0; i < navIdx.length; i++) {\n items = items[navIdx[i]][this.getField('children', i)];\n }\n return items;\n };\n MenuBase.prototype.setItems = function (newItems, navIdx) {\n var items = this.getItems(navIdx);\n items.splice(0, items.length);\n for (var i = 0; i < newItems.length; i++) {\n items.splice(i, 0, newItems[i]);\n }\n };\n MenuBase.prototype.getIdx = function (ul, li, skipHdr) {\n if (skipHdr === void 0) { skipHdr = true; }\n var idx = Array.prototype.indexOf.call(ul.children, li);\n if (skipHdr && ul.children[0].classList.contains(HEADER)) {\n idx--;\n }\n return idx;\n };\n MenuBase.prototype.getLI = function (elem) {\n if (elem.tagName === 'LI' && elem.classList.contains('e-menu-item')) {\n return elem;\n }\n return closest(elem, 'li.e-menu-item');\n };\n MenuBase.prototype.updateItemsByNavIdx = function () {\n var items = this.items;\n var count = 0;\n for (var index = 0; index < this.navIdx.length; index++) {\n items = items[index].items;\n if (!items) {\n break;\n }\n count++;\n var ul = this.getUlByNavIdx(count);\n if (!ul) {\n break;\n }\n this.updateItem(ul, items);\n }\n };\n MenuBase.prototype.removeChildElement = function (elem) {\n while (elem.firstElementChild) {\n elem.removeChild(elem.firstElementChild);\n }\n return elem;\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @private\n * @param {MenuBaseModel} newProp - Specifies the new properties\n * @param {MenuBaseModel} oldProp - Specifies the old properties\n * @returns {void}\n */\n MenuBase.prototype.onPropertyChanged = function (newProp, oldProp) {\n var _this = this;\n var wrapper = this.getWrapper();\n var _loop_2 = function (prop) {\n switch (prop) {\n case 'cssClass':\n if (oldProp.cssClass) {\n removeClass([wrapper], oldProp.cssClass.split(' '));\n }\n if (newProp.cssClass) {\n addClass([wrapper], newProp.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n break;\n case 'enableRtl':\n wrapper.classList.toggle(RTL);\n break;\n case 'showItemOnClick':\n this_1.unWireEvents();\n this_1.showItemOnClick = newProp.showItemOnClick;\n this_1.wireEvents();\n break;\n case 'enableScrolling':\n if (newProp.enableScrolling) {\n var ul_2;\n if (this_1.element.classList.contains('e-vertical')) {\n addScrolling(this_1.createElement, wrapper, this_1.element, 'vscroll', this_1.enableRtl);\n }\n else {\n addScrolling(this_1.createElement, wrapper, this_1.element, 'hscroll', this_1.enableRtl);\n }\n this_1.getPopups().forEach(function (wrapper) {\n ul_2 = select('.e-ul', wrapper);\n addScrolling(_this.createElement, wrapper, ul_2, 'vscroll', _this.enableRtl);\n });\n }\n else {\n var ul_3 = wrapper.children[0];\n if (this_1.element.classList.contains('e-vertical')) {\n destroyScroll(getInstance(ul_3, VScroll), ul_3);\n }\n else {\n destroyScroll(getInstance(ul_3, HScroll), ul_3);\n }\n wrapper.style.overflow = '';\n wrapper.appendChild(this_1.element);\n this_1.getPopups().forEach(function (wrapper) {\n ul_3 = wrapper.children[0];\n destroyScroll(getInstance(ul_3, VScroll), ul_3);\n wrapper.style.overflow = '';\n });\n }\n break;\n case 'items': {\n var idx = void 0;\n var navIdx = void 0;\n var item = void 0;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this_1.isReact && this_1.template) {\n this_1.clearTemplate(['template']);\n }\n if (!Object.keys(oldProp.items).length) {\n this_1.updateItem(this_1.element, this_1.items);\n if (this_1.enableScrolling && this_1.element.parentElement.classList.contains('e-custom-scroll')) {\n if (this_1.element.classList.contains('e-vertical')) {\n addScrolling(this_1.createElement, wrapper, this_1.element, 'vscroll', this_1.enableRtl);\n }\n else {\n addScrolling(this_1.createElement, wrapper, this_1.element, 'hscroll', this_1.enableRtl);\n }\n }\n if (!this_1.hamburgerMode) {\n for (var i = 1, count = wrapper.childElementCount; i < count; i++) {\n detach(wrapper.lastElementChild);\n }\n }\n this_1.navIdx = [];\n }\n else {\n var keys = Object.keys(newProp.items);\n for (var i = 0; i < keys.length; i++) {\n navIdx = this_1.getChangedItemIndex(newProp, [], Number(keys[i]));\n if (navIdx.length <= this_1.getWrapper().children.length) {\n idx = navIdx.pop();\n item = this_1.getItems(navIdx);\n this_1.insertAfter([item[idx]], item[idx].text);\n this_1.removeItem(item, navIdx, idx);\n this_1.setItems(item, navIdx);\n }\n navIdx.length = 0;\n }\n }\n break;\n }\n }\n };\n var this_1 = this;\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n _loop_2(prop);\n }\n };\n MenuBase.prototype.updateItem = function (ul, items) {\n if (isBlazor() && !this.isMenu) {\n ul = this.removeChildElement(ul);\n }\n else {\n if (this.enableScrolling) {\n var wrapper1 = this.getWrapper();\n var ul1 = wrapper1.children[0];\n if (this.element.classList.contains('e-vertical')) {\n destroyScroll(getInstance(ul1, VScroll), ul1);\n }\n else {\n destroyScroll(getInstance(ul1, HScroll), ul1);\n }\n }\n ul.innerHTML = '';\n }\n var lis = [].slice.call(this.createItems(items).children);\n lis.forEach(function (li) {\n ul.appendChild(li);\n });\n };\n MenuBase.prototype.getChangedItemIndex = function (newProp, index, idx) {\n index.push(idx);\n var key = Object.keys(newProp.items[idx]).pop();\n if (key === 'items') {\n var item = newProp.items[idx];\n var popStr = Object.keys(item.items).pop();\n if (popStr) {\n this.getChangedItemIndex(item, index, Number(popStr));\n }\n }\n else {\n if (key === 'isParentArray' && index.length > 1) {\n index.pop();\n }\n }\n return index;\n };\n MenuBase.prototype.removeItem = function (item, navIdx, idx) {\n item.splice(idx, 1);\n var uls = this.getWrapper().children;\n if (navIdx.length < uls.length) {\n detach(uls[navIdx.length].children[idx]);\n }\n };\n /**\n * Used to unwire the bind events.\n *\n * @private\n * @param {string} targetSelctor - Specifies the target selector\n * @returns {void}\n */\n MenuBase.prototype.unWireEvents = function (targetSelctor) {\n if (targetSelctor === void 0) { targetSelctor = this.target; }\n var wrapper = this.getWrapper();\n if (targetSelctor) {\n var target = void 0;\n var touchModule = void 0;\n var targetElems = selectAll(targetSelctor);\n for (var i = 0, len = targetElems.length; i < len; i++) {\n target = targetElems[i];\n if (this.isMenu) {\n EventHandler.remove(target, 'click', this.menuHeaderClickHandler);\n }\n else {\n if (Browser.isIos) {\n touchModule = getInstance(target, Touch);\n if (touchModule) {\n touchModule.destroy();\n }\n }\n else {\n EventHandler.remove(target, 'contextmenu', this.cmenuHandler);\n }\n }\n }\n if (!this.isMenu) {\n EventHandler.remove(this.targetElement, 'mousewheel DOMMouseScroll', this.scrollHandler);\n for (var _i = 0, _a = getScrollableParent(this.targetElement); _i < _a.length; _i++) {\n var parent_2 = _a[_i];\n EventHandler.remove(parent_2, 'mousewheel DOMMouseScroll', this.scrollHandler);\n }\n }\n }\n if (!Browser.isDevice) {\n EventHandler.remove(this.isMenu ? document : wrapper, 'mouseover', this.delegateMoverHandler);\n EventHandler.remove(document, 'mousedown', this.delegateMouseDownHandler);\n }\n EventHandler.remove(document, 'click', this.delegateClickHandler);\n this.unWireKeyboardEvent(wrapper);\n this.rippleFn();\n };\n MenuBase.prototype.unWireKeyboardEvent = function (element) {\n var keyboardModule = getInstance(element, KeyboardEvents);\n if (keyboardModule) {\n keyboardModule.destroy();\n }\n };\n MenuBase.prototype.toggleAnimation = function (ul, isMenuOpen) {\n var _this = this;\n if (isMenuOpen === void 0) { isMenuOpen = true; }\n var pUlHeight;\n var pElement;\n if (this.animationSettings.effect === 'None' || !isMenuOpen) {\n this.end(ul, isMenuOpen);\n }\n else {\n this.animation.animate(ul, {\n name: this.animationSettings.effect,\n duration: this.animationSettings.duration,\n timingFunction: this.animationSettings.easing,\n begin: function (options) {\n if (_this.hamburgerMode) {\n pElement = options.element.parentElement;\n options.element.style.position = 'absolute';\n pUlHeight = pElement.offsetHeight;\n options.element.style.maxHeight = options.element.offsetHeight + 'px';\n pElement.style.maxHeight = '';\n }\n else {\n options.element.style.display = 'block';\n options.element.style.maxHeight = options.element.getBoundingClientRect().height + 'px';\n }\n },\n progress: function (options) {\n if (_this.hamburgerMode) {\n pElement.style.minHeight = (pUlHeight + options.element.offsetHeight) + 'px';\n }\n },\n end: function (options) {\n if (_this.hamburgerMode) {\n options.element.style.position = '';\n options.element.style.maxHeight = '';\n pElement.style.minHeight = '';\n options.element.style.top = 0 + 'px';\n options.element.children[0].focus();\n _this.triggerOpen(options.element.children[0]);\n }\n else {\n _this.end(options.element, isMenuOpen);\n }\n }\n });\n }\n };\n MenuBase.prototype.triggerOpen = function (ul) {\n var item = this.navIdx.length ? this.getItem(this.navIdx) : null;\n var eventArgs = {\n element: ul, parentItem: item, items: item ? item.items : this.items\n };\n this.trigger('onOpen', eventArgs);\n if (!this.isMenu) {\n EventHandler.add(ul, 'keydown', this.keyHandler, this);\n }\n };\n MenuBase.prototype.end = function (ul, isMenuOpen) {\n if (isMenuOpen) {\n ul.style.display = 'block';\n ul.style.maxHeight = '';\n this.triggerOpen(ul);\n if (ul.querySelector('.' + FOCUSED)) {\n ul.querySelector('.' + FOCUSED).focus();\n }\n else {\n var ele = this.getWrapper().children[this.getIdx(this.getWrapper(), ul) - 1];\n if (this.currentTarget) {\n if (!(this.currentTarget.classList.contains('e-numerictextbox') || this.currentTarget.classList.contains('e-textbox') || this.currentTarget.tagName === 'INPUT')) {\n if (ele) {\n ele.querySelector('.' + SELECTED).focus();\n }\n else {\n this.element.focus();\n }\n }\n }\n else {\n if (ele) {\n ele.querySelector('.' + SELECTED).focus();\n }\n else {\n this.element.focus();\n }\n }\n }\n }\n else {\n if (ul === this.element) {\n var fli = this.getLIByClass(this.element, FOCUSED);\n if (fli) {\n fli.classList.remove(FOCUSED);\n }\n var sli = this.getLIByClass(this.element, SELECTED);\n if (sli) {\n sli.classList.remove(SELECTED);\n }\n ul.style.display = 'none';\n }\n else {\n detach(ul);\n }\n }\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @returns {string} - Persist data\n */\n MenuBase.prototype.getPersistData = function () {\n return '';\n };\n /**\n * Get wrapper element.\n *\n * @returns {Element} - Wrapper element\n * @private\n */\n MenuBase.prototype.getWrapper = function () {\n return closest(this.element, '.e-' + this.getModuleName() + '-wrapper');\n };\n MenuBase.prototype.getIndex = function (data, isUniqueId, items, nIndex, isCallBack, level) {\n if (items === void 0) { items = this.items; }\n if (nIndex === void 0) { nIndex = []; }\n if (isCallBack === void 0) { isCallBack = false; }\n if (level === void 0) { level = 0; }\n var item;\n level = isCallBack ? level + 1 : 0;\n for (var i = 0, len = items.length; i < len; i++) {\n item = items[i];\n if ((isUniqueId ? item[this.getField('itemId', level)] : item[this.getField('text', level)]) === data) {\n nIndex.push(i);\n break;\n }\n else if (item[this.getField('children', level)]\n && item[this.getField('children', level)].length) {\n nIndex = this.getIndex(data, isUniqueId, item[this.getField('children', level)], nIndex, true, level);\n if (nIndex[nIndex.length - 1] === -1) {\n if (i !== len - 1) {\n nIndex.pop();\n }\n }\n else {\n nIndex.unshift(i);\n break;\n }\n }\n else {\n if (i === len - 1) {\n nIndex.push(-1);\n }\n }\n }\n return (!isCallBack && nIndex[0] === -1) ? [] : nIndex;\n };\n /**\n * This method is used to enable or disable the menu items in the Menu based on the items and enable argument.\n *\n * @param {string[]} items - Text items that needs to be enabled/disabled.\n * @param {boolean} enable - Set `true`/`false` to enable/disable the list items.\n * @param {boolean} isUniqueId - Set `true` if it is a unique id.\n * @returns {void}\n */\n MenuBase.prototype.enableItems = function (items, enable, isUniqueId) {\n if (enable === void 0) { enable = true; }\n var ul;\n var idx;\n var navIdx;\n var disabled = DISABLED;\n var skipItem;\n for (var i = 0; i < items.length; i++) {\n navIdx = this.getIndex(items[i], isUniqueId);\n if (this.navIdx.length) {\n if (navIdx.length !== 1) {\n skipItem = false;\n for (var i_1 = 0, len = navIdx.length - 1; i_1 < len; i_1++) {\n if (navIdx[i_1] !== this.navIdx[i_1]) {\n skipItem = true;\n break;\n }\n }\n if (skipItem) {\n continue;\n }\n }\n }\n else {\n if (navIdx.length !== 1) {\n continue;\n }\n }\n idx = navIdx.pop();\n ul = this.getUlByNavIdx(navIdx.length);\n if (ul && !isNullOrUndefined(idx)) {\n if (enable) {\n if (this.isMenu) {\n ul.children[idx].classList.remove(disabled);\n ul.children[idx].removeAttribute('aria-disabled');\n }\n else {\n if (Browser.isDevice && !ul.classList.contains('e-contextmenu')) {\n ul.children[idx + 1].classList.remove(disabled);\n }\n else {\n ul.children[idx].classList.remove(disabled);\n }\n }\n }\n else {\n if (this.isMenu) {\n ul.children[idx].classList.add(disabled);\n ul.children[idx].setAttribute('aria-disabled', 'true');\n }\n else {\n if (Browser.isDevice && !ul.classList.contains('e-contextmenu')) {\n ul.children[idx + 1].classList.add(disabled);\n }\n else {\n ul.children[idx].classList.add(disabled);\n }\n }\n }\n }\n }\n };\n /**\n * This method is used to show the menu items in the Menu based on the items text.\n *\n * @param {string[]} items - Text items that needs to be shown.\n * @param {boolean} isUniqueId - Set `true` if it is a unique id.\n * @returns {void}\n */\n MenuBase.prototype.showItems = function (items, isUniqueId) {\n this.showHideItems(items, false, isUniqueId);\n };\n /**\n * This method is used to hide the menu items in the Menu based on the items text.\n *\n * @param {string[]} items - Text items that needs to be hidden.\n * @param {boolean} isUniqueId - Set `true` if it is a unique id.\n * @returns {void}\n */\n MenuBase.prototype.hideItems = function (items, isUniqueId) {\n this.showHideItems(items, true, isUniqueId);\n };\n MenuBase.prototype.showHideItems = function (items, ishide, isUniqueId) {\n var ul;\n var index;\n var navIdx;\n for (var i = 0; i < items.length; i++) {\n navIdx = this.getIndex(items[i], isUniqueId);\n index = navIdx.pop();\n ul = this.getUlByNavIdx(navIdx.length);\n if (ul) {\n var validUl = isUniqueId ? ul.children[index].id : ul.children[index].textContent;\n if (ishide && validUl === items[i]) {\n ul.children[index].classList.add(HIDE);\n }\n else {\n ul.children[index].classList.remove(HIDE);\n }\n }\n }\n };\n /**\n * It is used to remove the menu items from the Menu based on the items text.\n *\n * @param {string[]} items Text items that needs to be removed.\n * @param {boolean} isUniqueId - Set `true` if it is a unique id.\n * @returns {void}\n */\n MenuBase.prototype.removeItems = function (items, isUniqueId) {\n var idx;\n var navIdx;\n var iitems;\n for (var i = 0; i < items.length; i++) {\n navIdx = this.getIndex(items[i], isUniqueId);\n idx = navIdx.pop();\n iitems = this.getItems(navIdx);\n if (!isNullOrUndefined(idx)) {\n this.removeItem(iitems, navIdx, idx);\n }\n }\n };\n /**\n * It is used to insert the menu items after the specified menu item text.\n *\n * @param {MenuItemModel[]} items - Items that needs to be inserted.\n * @param {string} text - Text item after that the element to be inserted.\n * @param {boolean} isUniqueId - Set `true` if it is a unique id.\n * @returns {void}\n */\n MenuBase.prototype.insertAfter = function (items, text, isUniqueId) {\n this.insertItems(items, text, isUniqueId);\n };\n /**\n * It is used to insert the menu items before the specified menu item text.\n *\n * @param {MenuItemModel[]} items - Items that needs to be inserted.\n * @param {string} text - Text item before that the element to be inserted.\n * @param {boolean} isUniqueId - Set `true` if it is a unique id.\n * @returns {void}\n */\n MenuBase.prototype.insertBefore = function (items, text, isUniqueId) {\n this.insertItems(items, text, isUniqueId, false);\n };\n MenuBase.prototype.insertItems = function (items, text, isUniqueId, isAfter) {\n if (isAfter === void 0) { isAfter = true; }\n var li;\n var idx;\n var navIdx;\n var iitems;\n var menuitem;\n for (var i = 0; i < items.length; i++) {\n navIdx = this.getIndex(text, isUniqueId);\n idx = navIdx.pop();\n iitems = this.getItems(navIdx);\n menuitem = new MenuItem(iitems[0], 'items', items[i], true);\n iitems.splice(isAfter ? idx + 1 : idx, 0, menuitem);\n var uls = this.isMenu ? [this.getWrapper()].concat(this.getPopups()) : [].slice.call(this.getWrapper().children);\n if (!isNullOrUndefined(idx) && navIdx.length < uls.length) {\n idx = isAfter ? idx + 1 : idx;\n li = this.createItems(iitems).children[idx];\n var ul = this.isMenu ? select('.e-menu-parent', uls[navIdx.length]) : uls[navIdx.length];\n ul.insertBefore(li, ul.children[idx]);\n }\n }\n };\n MenuBase.prototype.removeAttributes = function () {\n var _this = this;\n ['top', 'left', 'display', 'z-index'].forEach(function (key) {\n _this.element.style.removeProperty(key);\n });\n ['role', 'tabindex', 'class', 'style'].forEach(function (key) {\n if (key === 'class' && _this.element.classList.contains('e-menu-parent')) {\n _this.element.classList.remove('e-menu-parent');\n }\n if (['class', 'style'].indexOf(key) === -1 || !_this.element.getAttribute(key)) {\n _this.element.removeAttribute(key);\n }\n if (_this.isMenu && key === 'class' && _this.element.classList.contains('e-vertical')) {\n _this.element.classList.remove('e-vertical');\n }\n });\n };\n /**\n * Destroys the widget.\n *\n * @returns {void}\n */\n MenuBase.prototype.destroy = function () {\n var wrapper = this.getWrapper();\n if (wrapper) {\n this.unWireEvents();\n if (!this.isMenu) {\n this.clonedElement.style.display = '';\n if (this.clonedElement.tagName === 'EJS-CONTEXTMENU') {\n addClass([this.clonedElement], ['e-control', 'e-lib', 'e-' + this.getModuleName()]);\n this.element = this.clonedElement;\n }\n else {\n if (this.refreshing && this.clonedElement.childElementCount && this.clonedElement.children[0].tagName === 'LI') {\n this.setProperties({ 'items': [] }, true);\n }\n if (document.getElementById(this.clonedElement.id)) {\n var refEle = this.clonedElement.nextElementSibling;\n if (refEle && refEle !== wrapper) {\n this.clonedElement.parentElement.insertBefore(this.element, refEle);\n }\n else {\n this.clonedElement.parentElement.appendChild(this.element);\n }\n if (isBlazor() && !this.isMenu) {\n this.element = this.removeChildElement(this.element);\n }\n else {\n this.element.innerHTML = '';\n }\n append([].slice.call(this.clonedElement.children), this.element);\n detach(this.clonedElement);\n this.removeAttributes();\n }\n }\n this.clonedElement = null;\n }\n else {\n this.closeMenu();\n if (isBlazor() && !this.isMenu) {\n this.element = this.removeChildElement(this.element);\n }\n else {\n this.element.innerHTML = '';\n }\n this.removeAttributes();\n wrapper.parentNode.insertBefore(this.element, wrapper);\n this.clonedElement = null;\n }\n if (this.isMenu && this.clonedElement) {\n detach(this.element);\n wrapper.style.display = '';\n wrapper.classList.remove('e-' + this.getModuleName() + '-wrapper');\n wrapper.removeAttribute('data-ripple');\n }\n else {\n detach(wrapper);\n }\n _super.prototype.destroy.call(this);\n if (this.template) {\n this.clearTemplate(['template']);\n }\n }\n this.rippleFn = null;\n };\n __decorate([\n Event()\n ], MenuBase.prototype, \"beforeItemRender\", void 0);\n __decorate([\n Event()\n ], MenuBase.prototype, \"beforeOpen\", void 0);\n __decorate([\n Event()\n ], MenuBase.prototype, \"onOpen\", void 0);\n __decorate([\n Event()\n ], MenuBase.prototype, \"beforeClose\", void 0);\n __decorate([\n Event()\n ], MenuBase.prototype, \"onClose\", void 0);\n __decorate([\n Event()\n ], MenuBase.prototype, \"select\", void 0);\n __decorate([\n Event()\n ], MenuBase.prototype, \"created\", void 0);\n __decorate([\n Property('')\n ], MenuBase.prototype, \"cssClass\", void 0);\n __decorate([\n Property(0)\n ], MenuBase.prototype, \"hoverDelay\", void 0);\n __decorate([\n Property(false)\n ], MenuBase.prototype, \"showItemOnClick\", void 0);\n __decorate([\n Property('')\n ], MenuBase.prototype, \"target\", void 0);\n __decorate([\n Property('')\n ], MenuBase.prototype, \"filter\", void 0);\n __decorate([\n Property(null)\n ], MenuBase.prototype, \"template\", void 0);\n __decorate([\n Property(false)\n ], MenuBase.prototype, \"enableScrolling\", void 0);\n __decorate([\n Property(false)\n ], MenuBase.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Complex({ itemId: 'id', text: 'text', parentId: 'parentId', iconCss: 'iconCss', url: 'url', separator: 'separator', children: 'items' }, FieldSettings)\n ], MenuBase.prototype, \"fields\", void 0);\n __decorate([\n Collection([], MenuItem)\n ], MenuBase.prototype, \"items\", void 0);\n __decorate([\n Complex({ duration: 400, easing: 'ease', effect: 'SlideDown' }, MenuAnimationSettings)\n ], MenuBase.prototype, \"animationSettings\", void 0);\n MenuBase = __decorate([\n NotifyPropertyChanges\n ], MenuBase);\n return MenuBase;\n}(Component));\nexport { MenuBase };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/* eslint-disable @typescript-eslint/triple-slash-reference */\n/// \nimport { attributes, getUniqueID, Collection, NotifyPropertyChanges, Property } from '@syncfusion/ej2-base';\nimport { getZindexPartial } from '@syncfusion/ej2-popups';\nimport { MenuBase, MenuItem } from '../common/menu-base';\n/**\n * The ContextMenu is a graphical user interface that appears on the user right click/touch hold operation.\n * ```html\n *
    \n *
      \n * ```\n * ```typescript\n * \n * ```\n */\nvar ContextMenu = /** @class */ (function (_super) {\n __extends(ContextMenu, _super);\n /**\n * Constructor for creating the widget.\n *\n * @private\n * @param {ContextMenuModel} options - Specifies the context menu model\n * @param {string} element - Specifies the element\n */\n function ContextMenu(options, element) {\n return _super.call(this, options, element) || this;\n }\n /**\n * For internal use only - prerender processing.\n *\n * @private\n * @returns {void}\n */\n ContextMenu.prototype.preRender = function () {\n this.isMenu = false;\n this.element.id = this.element.id || getUniqueID('ej2-contextmenu');\n _super.prototype.preRender.call(this);\n };\n ContextMenu.prototype.initialize = function () {\n _super.prototype.initialize.call(this);\n attributes(this.element, { 'role': 'menubar', 'tabindex': '0' });\n this.element.style.zIndex = getZindexPartial(this.element).toString();\n };\n /**\n * This method is used to open the ContextMenu in specified position.\n *\n * @param {number} top - To specify ContextMenu vertical positioning.\n * @param {number} left - To specify ContextMenu horizontal positioning.\n * @param {HTMLElement} target - To calculate z-index for ContextMenu based upon the specified target.\n * @function open\n * @returns {void}\n */\n ContextMenu.prototype.open = function (top, left, target) {\n _super.prototype.openMenu.call(this, null, null, top, left, null, target);\n };\n /**\n * Closes the ContextMenu if it is opened.\n *\n * @function close\n * @returns {void}\n */\n ContextMenu.prototype.close = function () {\n _super.prototype.closeMenu.call(this);\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @private\n * @param {ContextMenuModel} newProp - Specifies new properties\n * @param {ContextMenuModel} oldProp - Specifies old properties\n * @returns {void}\n */\n ContextMenu.prototype.onPropertyChanged = function (newProp, oldProp) {\n _super.prototype.onPropertyChanged.call(this, newProp, oldProp);\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'filter':\n this.close();\n this.filter = newProp.filter;\n break;\n case 'target':\n this.unWireEvents(oldProp.target);\n this.wireEvents();\n break;\n }\n }\n };\n /**\n * Get module name.\n *\n * @returns {string} - Module Name\n * @private\n */\n ContextMenu.prototype.getModuleName = function () {\n return 'contextmenu';\n };\n __decorate([\n Property('')\n ], ContextMenu.prototype, \"target\", void 0);\n __decorate([\n Property('')\n ], ContextMenu.prototype, \"filter\", void 0);\n __decorate([\n Collection([], MenuItem)\n ], ContextMenu.prototype, \"items\", void 0);\n ContextMenu = __decorate([\n NotifyPropertyChanges\n ], ContextMenu);\n return ContextMenu;\n}(MenuBase));\nexport { ContextMenu };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { EventHandler, remove, Browser } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { Query, DataManager, Predicate } from '@syncfusion/ej2-data';\nimport { Dialog } from '@syncfusion/ej2-popups';\nimport { DropDownList, AutoComplete } from '@syncfusion/ej2-dropdowns';\nimport { NumericTextBox } from '@syncfusion/ej2-inputs';\nimport { RadioButton, CheckBox } from '@syncfusion/ej2-buttons';\nimport { distinctStringValues, isComplexField, getComplexFieldID, getCustomDateFormat, applyBiggerTheme, performComplexDataOperation, registerEventHandlers, removeEventHandlers, clearReactVueTemplates } from '../base/util';\nimport { DatePicker, DateTimePicker } from '@syncfusion/ej2-calendars';\nimport { parentsUntil, appendChildren, extend, eventPromise } from '../base/util';\nimport * as events from '../base/constant';\nimport { ContextMenu } from '@syncfusion/ej2-navigations';\nimport { CheckBoxFilterBase } from '../common/checkbox-filter-base';\nimport * as literals from '../base/string-literals';\n/**\n * @hidden\n * `ExcelFilter` module is used to handle filtering action.\n */\nvar ExcelFilterBase = /** @class */ (function (_super) {\n __extends(ExcelFilterBase, _super);\n /**\n * Constructor for excel filtering module\n *\n * @param {IXLFilter} parent - parent details\n * @param {Object} customFltrOperators - operator details\n * @hidden\n */\n function ExcelFilterBase(parent, customFltrOperators) {\n var _this = _super.call(this, parent) || this;\n _this.childRefs = [];\n _this.eventHandlers = {};\n _this.isDevice = false;\n _this.customFilterOperators = customFltrOperators;\n _this.isExcel = true;\n return _this;\n }\n ExcelFilterBase.prototype.getCMenuDS = function (type, operator) {\n var options = {\n number: ['Equal', 'NotEqual', '', 'LessThan', 'LessThanOrEqual', 'GreaterThan',\n 'GreaterThanOrEqual', 'Between', '', 'CustomFilter'],\n string: ['Equal', 'NotEqual', '', 'StartsWith', 'EndsWith', '', 'Contains', 'NotContains', '', 'CustomFilter']\n };\n options.date = options.number;\n options.datetime = options.number;\n var model = [];\n for (var i = 0; i < options[\"\" + type].length; i++) {\n if (options[\"\" + type][parseInt(i.toString(), 10)].length) {\n if (operator) {\n model.push({\n text: this.getLocalizedLabel(options[\"\" + type][parseInt(i.toString(), 10)]) + '...',\n iconCss: 'e-icons e-icon-check ' + (operator === options[\"\" + type][parseInt(i.toString(), 10)].toLowerCase() ? '' : 'e-emptyicon')\n });\n }\n else {\n model.push({\n text: this.getLocalizedLabel(options[\"\" + type][parseInt(i.toString(), 10)]) + '...'\n });\n }\n }\n else {\n model.push({ separator: true });\n }\n }\n return model;\n };\n /**\n * To destroy the filter bar.\n *\n * @returns {void}\n * @hidden\n */\n ExcelFilterBase.prototype.destroy = function () {\n if (this.dlg) {\n this.unwireExEvents();\n _super.prototype.closeDialog.call(this);\n }\n if (!this.isDevice && this.menuObj) {\n var li = this.menuObj.element.querySelector('li.e-focused');\n if (!(li && parentsUntil(li, 'e-excel-menu'))) {\n this.destroyCMenu();\n }\n }\n if (this.dlgObj && !this.dlgObj.isDestroyed) {\n this.removeDialog();\n }\n };\n ExcelFilterBase.prototype.createMenu = function (type, isFiltered, isCheckIcon, eleOptions) {\n var options = { string: 'TextFilter', date: 'DateFilter', datetime: 'DateTimeFilter', number: 'NumberFilter' };\n this.menu = this.parent.createElement('div', { className: 'e-contextmenu-wrapper' });\n if (this.parent.enableRtl) {\n this.menu.classList.add('e-rtl');\n }\n else {\n this.menu.classList.remove('e-rtl');\n }\n if (this.parent.cssClass) {\n this.menu.classList.add(this.parent.cssClass);\n }\n var ul = this.parent.createElement('ul');\n var icon = isFiltered ? 'e-excl-filter-icon e-filtered' : 'e-excl-filter-icon';\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.parent.allowSorting && this.parent.getModuleName() === 'grid'\n && !this.options.isResponsiveFilter) {\n var hdrele = this.parent.getColumnHeaderByUid(eleOptions.uid).getAttribute('aria-sort');\n var colIsSort = this.parent.getColumnByField(eleOptions.field).allowSorting;\n var isAsc = (!colIsSort || hdrele === 'ascending') ? 'e-disabled e-excel-ascending' : 'e-excel-ascending';\n var isDesc = (!colIsSort || hdrele === 'descending') ? 'e-disabled e-excel-descending' : 'e-excel-descending';\n var ascName = (type === 'string') ? this.getLocalizedLabel('SortAtoZ') : (type === 'datetime' || type === 'date') ?\n this.getLocalizedLabel('SortByOldest') : this.getLocalizedLabel('SortSmallestToLargest');\n var descName = (type === 'string') ? this.getLocalizedLabel('SortZtoA') : (type === 'datetime' || type === 'date') ?\n this.getLocalizedLabel('SortByNewest') : this.getLocalizedLabel('SortLargestToSmallest');\n ul.appendChild(this.createMenuElem(ascName, isAsc, 'e-sortascending'));\n ul.appendChild(this.createMenuElem(descName, isDesc, 'e-sortdescending'));\n var separator = this.parent.createElement('li', { className: 'e-separator e-menu-item e-excel-separator' });\n ul.appendChild(separator);\n }\n if (!this.options.isResponsiveFilter) {\n ul.appendChild(this.createMenuElem(this.getLocalizedLabel('ClearFilter'), isFiltered ? '' : 'e-disabled', icon));\n }\n if (type !== 'boolean') {\n ul.appendChild(this.createMenuElem(this.getLocalizedLabel(options[\"\" + type]), 'e-submenu', isCheckIcon && this.ensureTextFilter() ? 'e-icon-check' : icon + ' e-emptyicon', true));\n }\n this.menu.appendChild(ul);\n this.parent.notify(events.beforeFltrcMenuOpen, { element: this.menu });\n this.parent.notify(events.refreshCustomFilterClearBtn, { isFiltered: isFiltered });\n };\n ExcelFilterBase.prototype.createMenuElem = function (val, className, iconName, isSubMenu) {\n var li = this.parent.createElement('li', { className: className + ' e-menu-item' });\n li.innerHTML = val;\n li.insertBefore(this.parent.createElement('span', { className: 'e-menu-icon e-icons ' + iconName, attrs: { 'aria-hidden': 'true' } }), li.firstChild);\n if (isSubMenu) {\n li.appendChild(this.parent.createElement('span', { className: 'e-icons e-caret' }));\n }\n return li;\n };\n ExcelFilterBase.prototype.wireExEvents = function () {\n EventHandler.add(this.dlg, 'mouseover', this.hoverHandler, this);\n EventHandler.add(this.dlg, 'click', this.clickExHandler, this);\n };\n ExcelFilterBase.prototype.unwireExEvents = function () {\n EventHandler.remove(this.dlg, 'mouseover', this.hoverHandler);\n EventHandler.remove(this.dlg, 'click', this.clickExHandler);\n };\n ExcelFilterBase.prototype.clickExHandler = function (e) {\n var options = { string: 'TextFilter', date: 'DateFilter', datetime: 'DateTimeFilter', number: 'NumberFilter' };\n var menuItem = parentsUntil(e.target, 'e-menu-item');\n if (menuItem) {\n if (this.getLocalizedLabel('ClearFilter') === menuItem.innerText.trim()) {\n this.clearFilter();\n this.closeDialog();\n }\n else if (this.options.isResponsiveFilter\n && this.getLocalizedLabel(options[this.options.type]) === menuItem.innerText.trim()) {\n this.hoverHandler(e);\n }\n }\n };\n ExcelFilterBase.prototype.destroyCMenu = function () {\n this.isCMenuOpen = false;\n if (this.menuObj && !this.menuObj.isDestroyed) {\n this.menuObj.destroy();\n remove(this.cmenu);\n this.parent.notify(events.renderResponsiveCmenu, { target: null, header: '', isOpen: false, col: this.options.column });\n }\n };\n ExcelFilterBase.prototype.hoverHandler = function (e) {\n if (this.options.isResponsiveFilter && e.type === 'mouseover') {\n return;\n }\n var target = e.target.querySelector('.e-contextmenu');\n var li = parentsUntil(e.target, 'e-menu-item');\n var focused = this.menu.querySelector('.e-focused');\n var isSubMenu;\n if (focused) {\n focused.classList.remove('e-focused');\n }\n if (li) {\n li.classList.add('e-focused');\n isSubMenu = li.classList.contains('e-submenu');\n }\n if (target) {\n return;\n }\n if (!isSubMenu) {\n var submenu = this.menu.querySelector('.e-submenu');\n if (!isNullOrUndefined(submenu)) {\n submenu.classList.remove('e-selected');\n }\n this.destroyCMenu();\n }\n var selectedMenu = this.ensureTextFilter();\n if (!this.isCMenuOpen && isSubMenu) {\n li.classList.add('e-selected');\n this.isCMenuOpen = true;\n var menuOptions = {\n items: this.getCMenuDS(this.options.type, selectedMenu ? selectedMenu.replace(/\\s/g, '') : undefined),\n select: this.selectHandler.bind(this),\n onClose: this.destroyCMenu.bind(this),\n enableRtl: this.parent.enableRtl,\n animationSettings: { effect: 'None' },\n beforeClose: this.preventClose.bind(this),\n cssClass: this.options.isResponsiveFilter && this.parent.cssClass ?\n 'e-res-contextmenu-wrapper' + ' ' + this.parent.cssClass : this.options.isResponsiveFilter ?\n 'e-res-contextmenu-wrapper' : this.parent.cssClass ? this.parent.cssClass : ''\n };\n this.parent.element.appendChild(this.cmenu);\n this.menuObj = new ContextMenu(menuOptions, this.cmenu);\n var client = this.menu.querySelector('.e-submenu').getBoundingClientRect();\n var pos = { top: 0, left: 0 };\n if (this.options.isResponsiveFilter) {\n var options = { string: 'TextFilter', date: 'DateFilter', datetime: 'DateTimeFilter', number: 'NumberFilter' };\n var content = document.querySelector('.e-responsive-dialog > .e-dlg-header-content');\n var height = content.offsetHeight + 4;\n this.menuObj.element.style.height = 'calc(100% - ' + height + 'px)';\n this.menuObj['open'](height, 0, document.body);\n var header = this.getLocalizedLabel(options[this.options.type]);\n this.parent.notify(events.renderResponsiveCmenu, {\n target: this.menuObj.element.parentElement, header: header, isOpen: true\n });\n }\n else {\n if (Browser.isDevice) {\n this.isDevice = true;\n var contextRect = this.getContextBounds();\n pos.top = (window.innerHeight - contextRect.height) / 2;\n pos.left = (window.innerWidth - contextRect.width) / 2;\n this.closeDialog();\n this.isDevice = false;\n }\n else {\n pos.top = Browser.isIE ? window.pageYOffset + client.top : window.scrollY + client.top;\n pos.left = this.getCMenuYPosition(this.dlg);\n }\n this.menuObj['open'](pos.top, pos.left, e.target);\n }\n applyBiggerTheme(this.parent.element, this.menuObj.element.parentElement);\n }\n };\n ExcelFilterBase.prototype.ensureTextFilter = function () {\n var selectedMenu;\n var predicates = this.existingPredicate[this.options.field];\n if (predicates && predicates.length === 2) {\n if (predicates[0].operator === 'greaterthanorequal' && predicates[1].operator === 'lessthanorequal') {\n selectedMenu = 'between';\n }\n else {\n selectedMenu = 'customfilter';\n }\n }\n else {\n if (predicates && predicates.length === 1) {\n this.optrData = this.customFilterOperators[this.options.type + 'Operator'];\n selectedMenu = predicates[0].operator;\n }\n }\n return selectedMenu;\n };\n ExcelFilterBase.prototype.preventClose = function (args) {\n if (this.options && this.options.isResponsiveFilter && args.event) {\n var target = args.event.target;\n var isFilterBack = target.classList.contains('e-resfilterback')\n || target.classList.contains('e-res-back-btn') || target.classList.contains('e-menu-item');\n args.cancel = !isFilterBack;\n }\n else {\n if (args.event instanceof MouseEvent && args.event.target.classList.contains('e-submenu')) {\n args.cancel = true;\n }\n }\n };\n ExcelFilterBase.prototype.getContextBounds = function () {\n this.menuObj.element.style.display = 'block';\n return this.menuObj.element.getBoundingClientRect();\n };\n ExcelFilterBase.prototype.getCMenuYPosition = function (target) {\n var contextWidth = this.getContextBounds().width;\n var targetPosition = target.getBoundingClientRect();\n var leftPos = targetPosition.right + contextWidth - this.parent.element.clientWidth;\n var targetBorder = target.offsetWidth - target.clientWidth;\n targetBorder = targetBorder ? targetBorder + 1 : 0;\n return (leftPos < 1) ? (targetPosition.right + 1 - targetBorder) : (targetPosition.left - contextWidth - 1 + targetBorder);\n };\n ExcelFilterBase.prototype.openDialog = function (options) {\n var _this = this;\n this.updateModel(options);\n this.getAndSetChkElem(options);\n this.showDialog(options);\n if (options.cancel) {\n return;\n }\n this.dialogObj.dataBind();\n var filterLength = (this.existingPredicate[options.field] && this.existingPredicate[options.field].length) ||\n this.options.filteredColumns.filter(function (col) {\n return _this.options.field === col.field;\n }).length;\n this.createMenu(options.type, filterLength > 0, (filterLength === 1 || filterLength === 2), options);\n this.dlg.insertBefore(this.menu, this.dlg.firstChild);\n this.dlg.classList.add('e-excelfilter');\n if (this.parent.enableRtl) {\n this.dlg.classList.add('e-rtl');\n }\n this.dlg.classList.remove('e-checkboxfilter');\n this.cmenu = this.parent.createElement('ul', { className: 'e-excel-menu' });\n if (options.column.showColumnMenu) {\n this.parent.notify(events.filterDialogCreated, {});\n }\n this.wireExEvents();\n };\n ExcelFilterBase.prototype.closeDialog = function () {\n this.destroy();\n };\n ExcelFilterBase.prototype.selectHandler = function (e) {\n if (e.item) {\n this.parent.notify(events.filterCmenuSelect, {});\n this.menuItem = e.item;\n this.renderDialogue(e);\n }\n };\n /**\n * @hidden\n * @param {MenuEventArgs} e - event args\n * @returns {void}\n */\n ExcelFilterBase.prototype.renderDialogue = function (e) {\n var _this = this;\n var target = e ? e.element : undefined;\n var column = this.options.field;\n var isComplex = !isNullOrUndefined(column) && isComplexField(column);\n var complexFieldName = !isNullOrUndefined(column) && getComplexFieldID(column);\n var mainDiv = this.parent.createElement('div', {\n className: 'e-xlfl-maindiv',\n id: isComplex ? complexFieldName + '-xlflmenu' : column + '-xlflmenu'\n });\n this.dlgDiv = this.parent.createElement('div', {\n className: 'e-xlflmenu',\n id: isComplex ? complexFieldName + '-xlfldlg' : column + '-xlfldlg'\n });\n if (this.options.isResponsiveFilter) {\n var responsiveCnt = document.querySelector('.e-resfilter > .e-dlg-content > .e-xl-customfilterdiv');\n responsiveCnt.appendChild(this.dlgDiv);\n }\n else {\n this.parent.element.appendChild(this.dlgDiv);\n }\n this.dlgObj = new Dialog({\n header: this.getLocalizedLabel('CustomFilter'),\n isModal: true,\n overlayClick: this.removeDialog.bind(this),\n showCloseIcon: true,\n closeOnEscape: false,\n target: document.body,\n // target: this.parent.element,\n visible: false,\n enableRtl: this.parent.enableRtl,\n open: function () {\n var row = _this.dlgObj.element.querySelector('table.e-xlfl-table>tr');\n if (_this.options.column.filterTemplate) {\n var templateField_1 = isComplexField(_this.options.column.field) ?\n getComplexFieldID(_this.options.column.field) : _this.options.column.field;\n var isReactCompiler = _this.parent.isReact && typeof (_this.options.column.filterTemplate) !== 'string';\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var isReactChild = _this.parent.parentDetails && _this.parent.parentDetails.parentInstObj &&\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _this.parent.parentDetails.parentInstObj.isReact;\n if (isReactCompiler || isReactChild) {\n _this.parent.renderTemplates(function () {\n row.querySelector('#' + templateField_1 + '-xlfl-frstvalue').focus();\n });\n }\n else {\n row.querySelector('#' + templateField_1 + '-xlfl-frstvalue').focus();\n }\n }\n else {\n //(row.cells[1].querySelector('input:not([type=hidden])') as HTMLElement).focus();\n }\n },\n close: this.removeDialog.bind(this),\n created: this.createdDialog.bind(this, target, column),\n buttons: [{\n click: this.filterBtnClick.bind(this, column),\n buttonModel: {\n content: this.getLocalizedLabel('OKButton'), isPrimary: true,\n cssClass: this.parent.cssClass ? 'e-xlfl-okbtn' + ' ' + this.parent.cssClass : 'e-xlfl-okbtn'\n }\n },\n {\n click: this.removeDialog.bind(this),\n buttonModel: { content: this.getLocalizedLabel('CancelButton'),\n cssClass: this.parent.cssClass ? 'e-xlfl-cancelbtn' + ' ' + this.parent.cssClass : 'e-xlfl-cancelbtn' }\n }],\n content: mainDiv,\n width: 430,\n animationSettings: { effect: 'None' },\n cssClass: this.parent.cssClass ? this.parent.cssClass : ''\n });\n var isStringTemplate = 'isStringTemplate';\n this.dlgObj[\"\" + isStringTemplate] = true;\n this.renderResponsiveDialog();\n this.dlgDiv.setAttribute('aria-label', this.getLocalizedLabel('CustomFilterDialogARIA'));\n this.childRefs.push(this.dlgObj);\n this.dlgObj.appendTo(this.dlgDiv);\n };\n ExcelFilterBase.prototype.renderResponsiveDialog = function () {\n if (this.options.isResponsiveFilter) {\n var rowResponsiveDlg = document.querySelector('.e-row-responsive-filter');\n if (rowResponsiveDlg) {\n rowResponsiveDlg.classList.remove('e-row-responsive-filter');\n }\n this.dlgObj.buttons = [{}];\n this.dlgObj.header = undefined;\n this.dlgObj.position = { X: '', Y: '' };\n this.dlgObj.target = document.querySelector('.e-resfilter > .e-dlg-content > .e-xl-customfilterdiv');\n this.dlgObj.width = '100%';\n this.dlgObj.isModal = false;\n this.dlgObj.showCloseIcon = false;\n }\n };\n /**\n * @hidden\n * @returns {void}\n */\n ExcelFilterBase.prototype.removeDialog = function () {\n this.parent.notify(events.customFilterClose, {});\n if ((this.parent.isReact || this.parent.isVue) && this.parent.destroyTemplate !== undefined) {\n clearReactVueTemplates(this.parent, ['filterTemplate']);\n }\n this.removeObjects(this.childRefs);\n remove(this.dlgDiv);\n this.parent.notify(events.filterDialogClose, {});\n };\n ExcelFilterBase.prototype.createdDialog = function (target, column) {\n this.renderCustomFilter(target, column);\n this.dlgObj.element.style.left = '0px';\n if (!this.options.isResponsiveFilter) {\n this.dlgObj.element.style.top = '0px';\n }\n else {\n var content = document.querySelector('.e-responsive-dialog > .e-dlg-header-content');\n var height = content.offsetHeight + 4;\n this.dlgObj.element.style.top = height + 'px';\n }\n if (!this.options.isResponsiveFilter && Browser.isDevice && window.innerWidth < 440) {\n this.dlgObj.element.style.width = '90%';\n }\n this.parent.notify(events.beforeCustomFilterOpen, { column: column, dialog: this.dialogObj });\n this.dlgObj.show();\n applyBiggerTheme(this.parent.element, this.dlgObj.element.parentElement);\n };\n ExcelFilterBase.prototype.renderCustomFilter = function (target, column) {\n var dlgConetntEle = this.dlgObj.element.querySelector('.e-xlfl-maindiv');\n var dlgFields = this.parent.createElement('div', { innerHTML: this.getLocalizedLabel('ShowRowsWhere'), className: 'e-xlfl-dlgfields' });\n dlgConetntEle.appendChild(dlgFields);\n //column name\n var fieldSet = this.parent.createElement('div', { innerHTML: this.options.displayName, className: 'e-xlfl-fieldset' });\n dlgConetntEle.appendChild(fieldSet);\n this.renderFilterUI(column, dlgConetntEle);\n };\n /**\n * @hidden\n * @param {string} col - Defines column details\n * @returns {void}\n */\n ExcelFilterBase.prototype.filterBtnClick = function (col) {\n var isComplex = !isNullOrUndefined(col) && isComplexField(col);\n var complexFieldName = !isNullOrUndefined(col) && getComplexFieldID(col);\n var colValue = isComplex ? complexFieldName : col;\n var fValue = this.dlgDiv.querySelector('#' + colValue + '-xlfl-frstvalue').ej2_instances[0];\n var fOperator = this.dlgDiv.querySelector('#' + colValue + '-xlfl-frstoptr').ej2_instances[0];\n var sValue = this.dlgDiv.querySelector('#' + colValue + '-xlfl-secndvalue').ej2_instances[0];\n var sOperator = this.dlgDiv.querySelector('#' + colValue + '-xlfl-secndoptr').ej2_instances[0];\n var checkBoxValue;\n if (this.options.type === 'string') {\n var checkBox = this.dlgDiv.querySelector('#' + colValue + '-xlflmtcase').ej2_instances[0];\n checkBoxValue = checkBox.checked;\n }\n var andRadio = this.dlgDiv.querySelector('#' + colValue + 'e-xlfl-frstpredicate').ej2_instances[0];\n var predicate = (andRadio.checked ? 'and' : 'or');\n if (sValue.value === null) {\n predicate = 'or';\n }\n this.filterByColumn(this.options.field, fOperator.value, fValue.value, predicate, checkBoxValue, this.options.ignoreAccent, sOperator.value, sValue.value);\n this.removeDialog();\n };\n /**\n * @hidden\n * Filters grid row by column name with given options.\n *\n * @param {string} fieldName - Defines the field name of the filter column.\n * @param {string} firstOperator - Defines the first operator by how to filter records.\n * @param {string | number | Date | boolean} firstValue - Defines the first value which is used to filter records.\n * @param {string} predicate - Defines the relationship between one filter query with another by using AND or OR predicate.\n * @param {boolean} matchCase - If ignore case set to true, then filter records with exact match or else\n * filter records with case insensitive(uppercase and lowercase letters treated as same).\n * @param {boolean} ignoreAccent - If ignoreAccent set to true, then ignores the diacritic characters or accents when filtering.\n * @param {string} secondOperator - Defines the second operator by how to filter records.\n * @param {string | number | Date | boolean} secondValue - Defines the first value which is used to filter records.\n * @returns {void}\n */\n ExcelFilterBase.prototype.filterByColumn = function (fieldName, firstOperator, firstValue, predicate, matchCase, ignoreAccent, secondOperator, secondValue) {\n var col = this.parent.getColumnByField ? this.parent.getColumnByField(fieldName) : this.options.column;\n var field = this.isForeignColumn(col) ? col.foreignKeyValue : fieldName;\n var fColl = [];\n var mPredicate;\n var arg = {\n instance: this, handler: this.filterByColumn, arg1: fieldName, arg2: firstOperator, arg3: firstValue, arg4: predicate,\n arg5: matchCase, arg6: ignoreAccent, arg7: secondOperator, arg8: secondValue, cancel: false\n };\n this.parent.notify(events.fltrPrevent, arg);\n if (arg.cancel) {\n return;\n }\n fColl.push({\n field: field,\n predicate: predicate,\n matchCase: matchCase,\n ignoreAccent: ignoreAccent,\n operator: firstOperator,\n value: arg.arg3,\n type: this.options.type\n });\n mPredicate = new Predicate(field, firstOperator.toLowerCase(), arg.arg3, !matchCase, ignoreAccent);\n if (!isNullOrUndefined(secondValue) && !isNullOrUndefined(secondOperator)) {\n fColl.push({\n field: field,\n predicate: predicate,\n matchCase: matchCase,\n ignoreAccent: ignoreAccent,\n operator: secondOperator,\n value: arg.arg8,\n type: this.options.type\n });\n mPredicate = mPredicate[\"\" + predicate](field, secondOperator.toLowerCase(), secondValue, !matchCase, ignoreAccent);\n }\n var args = {\n action: 'filtering', filterCollection: fColl, field: this.options.field,\n ejpredicate: mPredicate, actualPredicate: fColl\n };\n if (this.isForeignColumn(col)) {\n this.foreignKeyFilter(args, fColl, mPredicate);\n }\n else {\n this.options.handler(args);\n }\n };\n // eslint-disable-next-line max-len\n ExcelFilterBase.prototype.renderOperatorUI = function (column, table, elementID, predicates, isFirst) {\n var fieldElement = this.parent.createElement('tr', { className: 'e-xlfl-fields' });\n table.appendChild(fieldElement);\n var xlfloptr = this.parent.createElement('td', { className: 'e-xlfl-optr' });\n fieldElement.appendChild(xlfloptr);\n var optrDiv = this.parent.createElement('div', { className: 'e-xlfl-optrdiv' });\n var isComplex = !isNullOrUndefined(column) && isComplexField(column);\n var complexFieldName = !isNullOrUndefined(column) && getComplexFieldID(column);\n var optrInput = this.parent\n .createElement('input', { id: isComplex ? complexFieldName + elementID : column + elementID });\n optrDiv.appendChild(optrInput);\n xlfloptr.appendChild(optrDiv);\n var optr = this.options.type + 'Operator';\n var dropDatasource = this.customFilterOperators[\"\" + optr];\n this.optrData = dropDatasource;\n var selectedValue = this.dropSelectedVal(this.options.column, predicates, isFirst);\n //Trailing three dots are sliced.\n var menuText = '';\n if (this.menuItem) {\n menuText = this.menuItem.text.slice(0, -3);\n if (menuText !== this.getLocalizedLabel('CustomFilter')) {\n selectedValue = isFirst ? menuText : undefined;\n }\n if (menuText === this.getLocalizedLabel('Between')) {\n selectedValue = this.getLocalizedLabel(isFirst ? 'GreaterThanOrEqual' : 'LessThanOrEqual');\n }\n }\n var col = this.options.column;\n var dropOptr = new DropDownList(extend({\n dataSource: dropDatasource,\n fields: { text: 'text', value: 'value' },\n text: selectedValue,\n enableRtl: this.parent.enableRtl,\n cssClass: this.parent.cssClass ? this.parent.cssClass : null\n }, col.filter.params));\n this.childRefs.push(dropOptr);\n var evt = { 'open': this.dropDownOpen.bind(this), 'change': this.dropDownValueChange.bind(this) };\n registerEventHandlers(optrInput.id, [literals.open, literals.change], evt, this);\n dropOptr.addEventListener(literals['open'], this.eventHandlers[optrInput.id][literals.open]);\n dropOptr.addEventListener(literals.change, this.eventHandlers[optrInput.id][literals.change]);\n dropOptr.appendTo(optrInput);\n var operator = this.getSelectedValue(selectedValue);\n return { fieldElement: fieldElement, operator: operator };\n };\n ExcelFilterBase.prototype.removeHandlersFromComponent = function (component) {\n if (component.element.classList.contains('e-dropdownlist')) {\n removeEventHandlers(component, [literals.open, literals.change], this);\n }\n else if (component.element.classList.contains('e-autocomplete')) {\n removeEventHandlers(component, [events.actionComplete, literals.focus], this);\n }\n };\n ExcelFilterBase.prototype.dropDownOpen = function (args) {\n args.popup.element.style.zIndex = (this.dialogObj.zIndex + 1).toString();\n };\n ExcelFilterBase.prototype.dropDownValueChange = function (args) {\n if (args.element.id.includes('-xlfl-frstoptr')) {\n this.firstOperator = args.value.toString();\n }\n else {\n this.secondOperator = args.value.toString();\n }\n };\n /**\n * @hidden\n * @returns {FilterUI} returns filter UI\n */\n ExcelFilterBase.prototype.getFilterUIInfo = function () {\n return { firstOperator: this.firstOperator, secondOperator: this.secondOperator, field: this.options.field };\n };\n ExcelFilterBase.prototype.getSelectedValue = function (text) {\n var selectedField = new DataManager(this.optrData).executeLocal(new Query().where('text', 'equal', text));\n return !isNullOrUndefined(selectedField[0]) ? selectedField[0].value : '';\n };\n ExcelFilterBase.prototype.dropSelectedVal = function (col, predicates, isFirst) {\n var operator;\n if (predicates && predicates.length > 0) {\n operator = predicates.length === 2 ?\n (isFirst ? predicates[0].operator : predicates[1].operator) :\n (isFirst ? predicates[0].operator : undefined);\n }\n else if (isFirst && col.type === 'string' && !col.filter.operator) {\n operator = 'startswith';\n }\n else {\n operator = isFirst ? col.filter.operator || 'equal' : undefined;\n }\n return this.getSelectedText(operator);\n };\n ExcelFilterBase.prototype.getSelectedText = function (operator) {\n var selectedField = new DataManager(this.optrData).executeLocal(new Query().where('value', 'equal', operator));\n return !isNullOrUndefined(selectedField[0]) ? selectedField[0].text : '';\n };\n ExcelFilterBase.prototype.renderFilterUI = function (column, dlgConetntEle) {\n var predicates = this.existingPredicate[\"\" + column];\n var table = this.parent.createElement('table', { className: 'e-xlfl-table', attrs: { role: 'grid' } });\n dlgConetntEle.appendChild(table);\n var colGroup = this.parent.createElement(literals.colGroup);\n colGroup.innerHTML = '
      ';\n table.appendChild(colGroup);\n //Renders first dropdown\n var optr = this.renderOperatorUI(column, table, '-xlfl-frstoptr', predicates, true);\n this.firstOperator = optr.operator;\n //Renders first value\n this.renderFlValueUI(column, optr, '-xlfl-frstvalue', predicates, true);\n var predicate = this.parent.createElement('tr', { className: 'e-xlfl-predicate' });\n table.appendChild(predicate);\n //Renders first radion button\n this.renderRadioButton(column, predicate, predicates);\n //Renders second dropdown\n optr = this.renderOperatorUI(column, table, '-xlfl-secndoptr', predicates, false);\n this.secondOperator = optr.operator;\n //Renders second text box\n this.renderFlValueUI(column, optr, '-xlfl-secndvalue', predicates, false);\n };\n ExcelFilterBase.prototype.renderRadioButton = function (column, tr, predicates) {\n var td = this.parent.createElement('td', { className: 'e-xlfl-radio', attrs: { 'colSpan': '2' } });\n tr.appendChild(td);\n var radioDiv = this.parent\n .createElement('div', { className: 'e-xlfl-radiodiv', attrs: { 'style': 'display: inline-block' } });\n var isComplex = !isNullOrUndefined(column) && isComplexField(column);\n var complexFieldName = !isNullOrUndefined(column) && getComplexFieldID(column);\n var frstpredicate = this.parent.createElement('input', { id: isComplex ? complexFieldName + 'e-xlfl-frstpredicate' : column + 'e-xlfl-frstpredicate', attrs: { 'type': 'radio' } });\n var secndpredicate = this.parent.createElement('input', { id: isComplex ? complexFieldName + 'e-xlfl-secndpredicate' : column + 'e-xlfl-secndpredicate', attrs: { 'type': 'radio' } });\n //appends into div\n radioDiv.appendChild(frstpredicate);\n radioDiv.appendChild(secndpredicate);\n td.appendChild(radioDiv);\n if (this.options.type === 'string') {\n this.renderMatchCase(column, tr, td, '-xlflmtcase', predicates);\n }\n // Initialize AND RadioButton component.\n var andRadio = new RadioButton({\n label: this.getLocalizedLabel('AND'),\n name: 'default', checked: true,\n enableRtl: this.parent.enableRtl,\n cssClass: this.parent.cssClass ? this.parent.cssClass : ''\n });\n this.childRefs.push(andRadio);\n // Initialize OR RadioButton component.\n var orRadio = new RadioButton({\n label: this.getLocalizedLabel('OR'),\n name: 'default',\n enableRtl: this.parent.enableRtl,\n cssClass: this.parent.cssClass ? this.parent.cssClass : ''\n });\n this.childRefs.push(orRadio);\n var flValue = predicates && predicates.length === 2 ? predicates[1].predicate : 'and';\n if (flValue === 'and') {\n andRadio.checked = true;\n orRadio.checked = false;\n }\n else {\n orRadio.checked = true;\n andRadio.checked = false;\n }\n // Render initialized RadioButton.\n andRadio.appendTo(frstpredicate);\n orRadio.appendTo(secndpredicate);\n andRadio.element.nextElementSibling.classList.add('e-xlfl-radio-and');\n orRadio.element.nextElementSibling.classList.add('e-xlfl-radio-or');\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ExcelFilterBase.prototype.removeObjects = function (elements) {\n for (var _i = 0, elements_1 = elements; _i < elements_1.length; _i++) {\n var obj = elements_1[_i];\n if (obj && !obj.isDestroyed) {\n this.removeHandlersFromComponent(obj);\n obj.destroy();\n }\n }\n };\n // eslint-disable-next-line max-len\n ExcelFilterBase.prototype.renderFlValueUI = function (column, optr, elementId, predicates, isFirst) {\n var value = this.parent.createElement('td', { className: 'e-xlfl-value' });\n optr.fieldElement.appendChild(value);\n var isComplex = !isNullOrUndefined(column) && isComplexField(column);\n var complexFieldName = !isNullOrUndefined(column) && getComplexFieldID(column);\n var valueDiv = this.parent.createElement('div', { className: 'e-xlfl-valuediv' });\n var isFilteredCol = this.options.filteredColumns.some(function (col) { return column === col.field; });\n var fltrPredicates = this.options.filteredColumns.filter(function (col) { return col.field === column; });\n if (this.options.column.filterTemplate) {\n var data = {};\n var columnObj = this.options.column;\n if (isFilteredCol && elementId) {\n data = this.getExcelFilterData(elementId, data, columnObj, predicates, fltrPredicates);\n }\n var isReactCompiler = this.parent.isReact && typeof (this.options.column.filterTemplate) !== 'string';\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var isReactChild = this.parent.parentDetails && this.parent.parentDetails.parentInstObj &&\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.parent.parentDetails.parentInstObj.isReact;\n var tempID = this.parent.element.id + columnObj.uid + 'filterTemplate';\n if (isReactCompiler || isReactChild) {\n this.options.column.getFilterTemplate()(data, this.parent, 'filterTemplate', tempID, null, null, valueDiv);\n }\n else {\n var element = this.options.column.getFilterTemplate()(data, this.parent, 'filterTemplate', tempID);\n appendChildren(valueDiv, element);\n }\n if (isReactCompiler || isReactChild) {\n this.parent.renderTemplates(function () {\n valueDiv.querySelector('input').id = isComplex ? complexFieldName + elementId : column + elementId;\n value.appendChild(valueDiv);\n });\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (this.parent.isAngular ? valueDiv.children[0] : valueDiv.querySelector('input')).id = isComplex ?\n complexFieldName + elementId : column + elementId;\n value.appendChild(valueDiv);\n }\n }\n else {\n var valueInput = this.parent\n .createElement('input', { id: isComplex ? complexFieldName + elementId : column + elementId });\n valueDiv.appendChild(valueInput);\n value.appendChild(valueDiv);\n var flValue = void 0;\n var predicate = void 0;\n if (predicates && predicates.length > 0) {\n predicate = predicates.length === 2 ?\n (isFirst ? predicates[0] : predicates[1]) :\n (isFirst ? predicates[0] : undefined);\n flValue = (predicate && predicate.operator === optr.operator) ? predicate.value : undefined;\n if (isNullOrUndefined(flValue)) {\n flValue = undefined;\n }\n }\n var types = {\n 'string': this.renderAutoComplete.bind(this),\n 'number': this.renderNumericTextBox.bind(this),\n 'date': this.renderDate.bind(this),\n 'datetime': this.renderDateTime.bind(this)\n };\n types[this.options.type](this.options, column, valueInput, flValue, this.parent.enableRtl);\n }\n };\n ExcelFilterBase.prototype.getExcelFilterData = function (elementId, data, columnObj, predicates, fltrPredicates) {\n var predIndex = elementId === '-xlfl-frstvalue' ? 0 : 1;\n if (elementId === '-xlfl-frstvalue' || fltrPredicates.length > 1) {\n data = { column: predicates instanceof Array ? predicates[parseInt(predIndex.toString(), 10)] : predicates };\n var indx = this.options.column.columnData && fltrPredicates.length > 1 ?\n (this.options.column.columnData.length === 1 ? 0 : 1) : predIndex;\n data[this.options.field] = columnObj.foreignKeyValue ?\n this.options.column.columnData[parseInt(indx.toString(), 10)][columnObj.foreignKeyValue] :\n fltrPredicates[parseInt(indx.toString(), 10)].value;\n if (this.options.foreignKeyValue) {\n data[this.options.foreignKeyValue] = this.options.column\n .columnData[parseInt(indx.toString(), 10)][columnObj.foreignKeyValue];\n }\n }\n return data;\n };\n // eslint-disable-next-line max-len\n ExcelFilterBase.prototype.renderMatchCase = function (column, tr, matchCase, elementId, predicates) {\n var matchCaseDiv = this.parent.createElement('div', { className: 'e-xlfl-matchcasediv', attrs: { 'style': 'display: inline-block' } });\n var isComplex = !isNullOrUndefined(column) && isComplexField(column);\n var complexFieldName = !isNullOrUndefined(column) && getComplexFieldID(column);\n var matchCaseInput = this.parent.createElement('input', { id: isComplex ? complexFieldName + elementId : column + elementId, attrs: { 'type': 'checkbox' } });\n matchCaseDiv.appendChild(matchCaseInput);\n matchCase.appendChild(matchCaseDiv);\n var flValue = predicates && predicates.length > 0 ?\n (predicates && predicates.length === 2 ? predicates[1].matchCase : predicates[0].matchCase) :\n false;\n // Initialize Match Case check box.\n var checkbox = new CheckBox({\n label: this.getLocalizedLabel('MatchCase'),\n enableRtl: this.parent.enableRtl, checked: flValue,\n cssClass: this.parent.cssClass ? this.parent.cssClass : ''\n });\n this.childRefs.push(checkbox);\n // Render initialized CheckBox.\n checkbox.appendTo(matchCaseInput);\n };\n // eslint-disable-next-line max-len\n ExcelFilterBase.prototype.renderDate = function (options, column, inputValue, fValue, isRtl) {\n var format = getCustomDateFormat(options.format, options.type) || options.format;\n var datePicker = new DatePicker(extend({\n format: format,\n cssClass: this.parent.cssClass ? 'e-popup-flmenu' + ' ' + this.parent.cssClass : 'e-popup-flmenu',\n placeholder: this.getLocalizedLabel('CustomFilterDatePlaceHolder'),\n width: '100%',\n enableRtl: isRtl,\n value: new Date(fValue),\n locale: this.parent.locale\n }, options.column.filter.params));\n this.childRefs.push(datePicker);\n datePicker.appendTo(inputValue);\n };\n // eslint-disable-next-line max-len\n ExcelFilterBase.prototype.renderDateTime = function (options, column, inputValue, fValue, isRtl) {\n var format = getCustomDateFormat(options.format, options.type);\n var dateTimePicker = new DateTimePicker(extend({\n format: format,\n cssClass: this.parent.cssClass ? 'e-popup-flmenu' + ' ' + this.parent.cssClass : 'e-popup-flmenu',\n placeholder: this.getLocalizedLabel('CustomFilterDatePlaceHolder'),\n width: '100%',\n enableRtl: isRtl,\n value: new Date(fValue),\n locale: this.parent.locale\n }, options.column.filter.params));\n this.childRefs.push(dateTimePicker);\n dateTimePicker.appendTo(inputValue);\n };\n ExcelFilterBase.prototype.completeAction = function (e) {\n e.result = distinctStringValues(e.result);\n };\n // eslint-disable-next-line max-len\n ExcelFilterBase.prototype.renderNumericTextBox = function (options, column, inputValue, fValue, isRtl) {\n var numericTextBox = new NumericTextBox(extend({\n format: options.format,\n placeholder: this.getLocalizedLabel('CustomFilterPlaceHolder'),\n enableRtl: isRtl,\n value: fValue,\n locale: this.parent.locale,\n cssClass: this.parent.cssClass ? this.parent.cssClass : null\n }, options.column.filter.params));\n this.childRefs.push(numericTextBox);\n numericTextBox.appendTo(inputValue);\n };\n // eslint-disable-next-line max-len\n ExcelFilterBase.prototype.renderAutoComplete = function (options, column, inputValue, fValue, isRtl) {\n var colObj = this.options.column;\n var isForeignColumn = this.isForeignColumn(colObj);\n var dataSource = isForeignColumn ? colObj.dataSource : options.dataSource;\n var fields = { value: isForeignColumn ? colObj.foreignKeyValue : column };\n var actObj = new AutoComplete(extend({\n dataSource: dataSource instanceof DataManager ? dataSource : new DataManager(dataSource),\n fields: fields,\n query: this.getQuery(),\n sortOrder: 'Ascending',\n locale: this.parent.locale,\n cssClass: this.parent.cssClass ? 'e-popup-flmenu' + ' ' + this.parent.cssClass : 'e-popup-flmenu',\n autofill: true,\n placeholder: this.getLocalizedLabel('CustomFilterPlaceHolder'),\n enableRtl: isRtl,\n text: fValue\n }, colObj.filter.params));\n if (dataSource && 'result' in dataSource) {\n var defObj = eventPromise({ requestType: 'stringfilterrequest' }, this.getQuery());\n this.parent.trigger(events.dataStateChange, defObj.state);\n var def = defObj.deffered;\n def.promise.then(function (e) {\n actObj.dataSource = new DataManager(e);\n });\n }\n this.childRefs.push(actObj);\n var evt = { 'actionComplete': this.acActionComplete(actObj, column), 'focus': this.acFocus(actObj, column, options, inputValue) };\n registerEventHandlers(inputValue.id, [events.actionComplete, literals.focus], evt, this);\n actObj.addEventListener(literals.focus, this.eventHandlers[inputValue.id][literals.focus]);\n actObj.addEventListener(events.actionComplete, this.eventHandlers[inputValue.id][events.actionComplete]);\n actObj.appendTo(inputValue);\n };\n ExcelFilterBase.prototype.acActionComplete = function (actObj, column) {\n return function (e) {\n var isComplex = !isNullOrUndefined(column) && isComplexField(column);\n e.result = e.result.filter(function (obj, index, arr) {\n return arr.map(function (mapObject) {\n return isComplex ? performComplexDataOperation(actObj.fields.value, mapObject)\n : mapObject[actObj.fields.value];\n }).indexOf(isComplex ? performComplexDataOperation(actObj.fields.value, obj) :\n obj[actObj.fields.value]) === index;\n });\n };\n };\n ExcelFilterBase.prototype.acFocus = function (actObj, column, options, inputValue) {\n var _this = this;\n return function () {\n var isComplex = !isNullOrUndefined(column) && isComplexField(column);\n var complexFieldName = !isNullOrUndefined(column) && getComplexFieldID(column);\n var columnvalue = isComplex ? complexFieldName : column;\n actObj.filterType = _this.dlgDiv.querySelector('#' + columnvalue +\n (inputValue.id === (columnvalue + '-xlfl-frstvalue') ?\n '-xlfl-frstoptr' :\n '-xlfl-secndoptr')).ej2_instances[0].value;\n actObj.ignoreCase = options.type === 'string' ?\n !_this.dlgDiv.querySelector('#' + columnvalue + '-xlflmtcase').ej2_instances[0].checked :\n true;\n actObj.filterType = !isNullOrUndefined(actObj.filterType) ? actObj.filterType :\n 'equal';\n };\n };\n return ExcelFilterBase;\n}(CheckBoxFilterBase));\nexport { ExcelFilterBase };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { ExcelFilterBase } from '../common/excel-filter-base';\nimport { CheckBoxFilter } from './checkbox-filter';\nimport * as events from '../base/constant';\n/**\n * @hidden\n * `ExcelFilter` module is used to handle filtering action.\n */\nvar ExcelFilter = /** @class */ (function (_super) {\n __extends(ExcelFilter, _super);\n /**\n * Constructor for excelbox filtering module\n *\n * @param {IGrid} parent - specifies the IGrid\n * @param {FilterSettings} filterSettings - specifies the Filtersettings\n * @param {ServiceLocator} serviceLocator - specifies the serviceLocator\n * @param {object} customFltrOperators - specifies the customFltrOperators\n * @hidden\n */\n function ExcelFilter(parent, filterSettings, serviceLocator, customFltrOperators) {\n var _this = _super.call(this, parent, filterSettings, serviceLocator) || this;\n _this.parent = parent;\n _this.isresetFocus = true;\n _this.excelFilterBase = new ExcelFilterBase(parent, customFltrOperators);\n return _this;\n }\n /**\n * To destroy the excel filter.\n *\n * @returns {void}\n * @hidden\n */\n ExcelFilter.prototype.destroy = function () {\n this.excelFilterBase.closeDialog();\n };\n ExcelFilter.prototype.openDialog = function (options) {\n this.excelFilterBase.openDialog(options);\n };\n ExcelFilter.prototype.closeDialog = function () {\n this.excelFilterBase.closeDialog();\n if (this.isresetFocus) {\n this.parent.notify(events.restoreFocus, {});\n }\n };\n ExcelFilter.prototype.clearCustomFilter = function (col) {\n this.excelFilterBase.clearFilter(col);\n };\n ExcelFilter.prototype.closeResponsiveDialog = function (isCustomFilter) {\n if (isCustomFilter) {\n this.excelFilterBase.removeDialog();\n }\n else {\n this.closeDialog();\n }\n };\n ExcelFilter.prototype.applyCustomFilter = function (args) {\n if (!args.isCustomFilter) {\n this.excelFilterBase.fltrBtnHandler();\n this.excelFilterBase.closeDialog();\n }\n else {\n this.excelFilterBase.filterBtnClick(args.col.field);\n }\n };\n ExcelFilter.prototype.filterByColumn = function (fieldName, firstOperator, firstValue, predicate, matchCase, ignoreAccent, secondOperator, secondValue) {\n this.excelFilterBase.filterByColumn(fieldName, firstOperator, firstValue, predicate, matchCase, ignoreAccent, secondOperator, secondValue);\n };\n /**\n * @returns {FilterUI} returns the filterUI\n * @hidden\n */\n ExcelFilter.prototype.getFilterUIInfo = function () {\n return this.excelFilterBase.getFilterUIInfo();\n };\n /**\n * For internal use only - Get the module name.\n *\n * @returns {string} returns the module name\n * @private\n */\n ExcelFilter.prototype.getModuleName = function () {\n return 'excelFilter';\n };\n return ExcelFilter;\n}(CheckBoxFilter));\nexport { ExcelFilter };\n","import { EventHandler, isNullOrUndefined, extend, closest, getValue } from '@syncfusion/ej2-base';\nimport { getActualPropFromColl, isActionPrevent, getColumnByForeignKeyValue } from '../base/util';\nimport { remove, matches } from '@syncfusion/ej2-base';\nimport { DataUtil, Query, DataManager } from '@syncfusion/ej2-data';\nimport * as events from '../base/constant';\nimport { CellType, ResponsiveDialogAction } from '../base/enum';\nimport { RowRenderer } from '../renderer/row-renderer';\nimport { Cell } from '../models/cell';\nimport { Row } from '../models/row';\nimport { FilterCellRenderer } from '../renderer/filter-cell-renderer';\nimport { parentsUntil } from '../base/util';\nimport { FilterMenuRenderer } from '../renderer/filter-menu-renderer';\nimport { CheckBoxFilter } from '../actions/checkbox-filter';\nimport { ExcelFilter } from '../actions/excel-filter';\nimport * as literals from '../base/string-literals';\nimport { Input } from '@syncfusion/ej2-inputs';\n/**\n *\n * The `Filter` module is used to handle filtering action.\n */\nvar Filter = /** @class */ (function () {\n /**\n * Constructor for Grid filtering module\n *\n * @param {IGrid} parent - specifies the IGrid\n * @param {FilterSettings} filterSettings - specifies the filterSettings\n * @param {ServiceLocator} serviceLocator - specifes the serviceLocator\n * @hidden\n */\n function Filter(parent, filterSettings, serviceLocator) {\n this.predicate = 'and';\n this.contentRefresh = true;\n this.filterByMethod = true;\n this.refresh = true;\n this.values = {};\n this.operators = {};\n this.cellText = {};\n this.nextFlMenuOpen = '';\n this.type = { 'Menu': FilterMenuRenderer, 'CheckBox': CheckBoxFilter, 'Excel': ExcelFilter };\n /** @hidden */\n this.filterOperators = {\n contains: 'contains', endsWith: 'endswith', equal: 'equal', greaterThan: 'greaterthan', greaterThanOrEqual: 'greaterthanorequal',\n lessThan: 'lessthan', lessThanOrEqual: 'lessthanorequal', notEqual: 'notequal', startsWith: 'startswith', wildCard: 'wildcard',\n isNull: 'isnull', notNull: 'notnull', like: 'like'\n };\n this.fltrDlgDetails = { field: '', isOpen: false };\n /** @hidden */\n this.skipNumberInput = ['=', ' ', '!'];\n this.skipStringInput = ['>', '<', '='];\n this.actualPredicate = {};\n this.parent = parent;\n this.filterSettings = filterSettings;\n this.serviceLocator = serviceLocator;\n this.addEventListener();\n this.setFullScreenDialog();\n }\n /**\n * To render filter bar when filtering enabled.\n *\n * @param {NotifyArgs} e - specifies the NotifyArgs\n * @returns {void}\n * @hidden\n */\n Filter.prototype.render = function (e) {\n if (DataUtil.getObject('args.isFrozen', e) || (this.parent.getFrozenMode() === literals.leftRight &&\n DataUtil.getObject('args.renderFrozenRightContent', e))) {\n return;\n }\n var gObj = this.parent;\n this.l10n = this.serviceLocator.getService('localization');\n this.getLocalizedCustomOperators();\n if (this.parent.filterSettings.type === 'FilterBar') {\n if (gObj.columns.length) {\n var fltrElem = this.parent.element.querySelector('.e-filterbar');\n if (fltrElem) {\n remove(fltrElem);\n }\n var rowRenderer = new RowRenderer(this.serviceLocator, CellType.Filter, gObj);\n var cellrender = this.serviceLocator.getService('cellRendererFactory');\n cellrender.addCellRenderer(CellType.Filter, new FilterCellRenderer(this.parent, this.serviceLocator));\n this.valueFormatter = this.serviceLocator.getService('valueFormatter');\n rowRenderer.element = this.parent.createElement('tr', { className: 'e-filterbar' });\n var row = this.generateRow();\n row.data = this.values;\n if (gObj.getFrozenMode() === 'Right') {\n var thead = gObj.getFrozenRightHeader().querySelector('thead');\n thead.appendChild(rowRenderer.element);\n }\n else {\n this.parent.getHeaderContent().querySelector('thead:not(.e-masked-thead)').appendChild(rowRenderer.element);\n }\n var rowdrag = this.parent.element.querySelector('.e-rowdragheader');\n this.element = rowRenderer.render(row, gObj.getColumns(), null, null, rowRenderer.element);\n var detail = this.element.querySelector('.e-detailheadercell');\n if (detail) {\n detail.className = 'e-filterbarcell e-mastercell';\n }\n if (rowdrag) {\n rowdrag.className = 'e-dragheadercell e-mastercell';\n }\n var gCells = [].slice.call(this.element.getElementsByClassName('e-grouptopleftcell'));\n if (gCells.length) {\n gCells[gCells.length - 1].classList.add('e-lastgrouptopleftcell');\n }\n this.wireEvents();\n this.parent.notify(events.freezeRender, { case: 'filter' });\n }\n }\n };\n /**\n * To show the responsive custom filter dialog\n *\n * @param {boolean} enable - specifes dialog open\n * @returns {void}\n * @hidden\n */\n Filter.prototype.showCustomFilter = function (enable) {\n this.responsiveDialogRenderer.isCustomDialog = enable;\n this.responsiveDialogRenderer.showResponsiveDialog(this.column);\n };\n /**\n * To create the filter module.\n *\n * @param {Column} col - specifies the filtering column name\n * @returns {void}\n * @hidden\n */\n Filter.prototype.setFilterModel = function (col) {\n var type = col.filter.type || this.parent.filterSettings.type;\n this.filterModule = new this.type[\"\" + type](this.parent, this.parent.filterSettings, this.serviceLocator, this.customOperators, this);\n };\n /**\n * To destroy the filter bar.\n *\n * @returns {void}\n * @hidden\n */\n Filter.prototype.destroy = function () {\n var gridElement = this.parent.element;\n if (!gridElement || (!gridElement.querySelector('.' + literals.gridHeader) && !gridElement.querySelector('.' + literals.gridContent))) {\n return;\n }\n if (this.filterModule) {\n this.filterModule.destroy();\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (!this.parent.refreshing && (this.parent.isDestroyed || !this.parent.allowFiltering)) {\n this.filterSettings.columns = [];\n }\n this.updateFilterMsg();\n this.removeEventListener();\n this.unWireEvents();\n if (this.filterSettings.type === 'FilterBar' && this.filterSettings.showFilterBarOperator) {\n var dropdownlist = [].slice.call(this.element.getElementsByClassName('e-filterbaroperator'));\n for (var i = 0; i < dropdownlist.length; i++) {\n if (dropdownlist[parseInt(i.toString(), 10)].ej2_instances[0]) {\n dropdownlist[parseInt(i.toString(), 10)].ej2_instances[0].destroy();\n }\n }\n }\n if (this.element) {\n if (this.element.parentElement) {\n remove(this.element);\n }\n var filterBarElement = this.parent.getHeaderContent().querySelector('.e-filterbar');\n if (this.parent.isFrozenGrid() && filterBarElement) {\n remove(filterBarElement);\n }\n }\n };\n Filter.prototype.setFullScreenDialog = function () {\n if (this.serviceLocator) {\n this.serviceLocator.registerAdaptiveService(this, this.parent.enableAdaptiveUI, ResponsiveDialogAction.isFilter);\n }\n };\n Filter.prototype.generateRow = function () {\n var options = {};\n var row = new Row(options);\n row.cells = this.generateCells();\n return row;\n };\n Filter.prototype.generateCells = function () {\n //TODO: generate dummy column for group, detail, stacked row here for filtering;\n var cells = [];\n if (this.parent.allowGrouping) {\n for (var c = 0, len = this.parent.groupSettings.columns.length; c < len; c++) {\n cells.push(this.generateCell({}, CellType.HeaderIndent));\n }\n }\n if (this.parent.detailTemplate || this.parent.childGrid) {\n cells.push(this.generateCell({}, CellType.DetailHeader));\n }\n if (this.parent.isRowDragable() && this.parent.getFrozenMode() !== 'Right') {\n cells.push(this.generateCell({}, CellType.RowDragHIcon));\n }\n for (var _i = 0, _a = this.parent.getColumns(); _i < _a.length; _i++) {\n var dummy = _a[_i];\n cells.push(this.generateCell(dummy));\n }\n if (this.parent.getFrozenMode() === 'Right') {\n cells.push(this.generateCell({}, CellType.RowDragHIcon));\n }\n return cells;\n };\n Filter.prototype.generateCell = function (column, cellType) {\n var opt = {\n 'visible': column.visible,\n 'isDataCell': false,\n 'rowId': '',\n 'column': column,\n 'cellType': cellType ? cellType : CellType.Filter,\n 'attributes': { title: this.l10n.getConstant('FilterbarTitle') }\n };\n return new Cell(opt);\n };\n /**\n * To update filterSettings when applying filter.\n *\n * @returns {void}\n * @hidden\n */\n Filter.prototype.updateModel = function () {\n var col = this.column.isForeignColumn() ? this.parent.getColumnByUid(this.column.uid) :\n this.parent.getColumnByField(this.fieldName);\n this.filterObjIndex = this.getFilteredColsIndexByField(col);\n this.prevFilterObject = this.filterSettings.columns[this.filterObjIndex];\n var arrayVal = Array.isArray(this.value) ? this.value : [this.value];\n var moduleName = this.parent.dataSource.adaptor && this.parent.dataSource.adaptor.getModuleName ? this.parent.dataSource.adaptor.getModuleName() : undefined;\n for (var i = 0, len = arrayVal.length; i < len; i++) {\n var field = col.isForeignColumn() ? col.foreignKeyValue : this.fieldName;\n var isMenuNotEqual = this.operator === 'notequal';\n this.currentFilterObject = {\n field: field, uid: col.uid, isForeignKey: col.isForeignColumn(), operator: this.operator,\n value: arrayVal[parseInt(i.toString(), 10)], predicate: this.predicate,\n matchCase: this.matchCase, ignoreAccent: this.ignoreAccent, actualFilterValue: {}, actualOperator: {}\n };\n var index = this.getFilteredColsIndexByField(col);\n if (index > -1 && !Array.isArray(this.value)) {\n this.filterSettings.columns[parseInt(index.toString(), 10)] = this.currentFilterObject;\n }\n else {\n this.filterSettings.columns.push(this.currentFilterObject);\n }\n if (!this.column.isForeignColumn() && isNullOrUndefined(this.value) && (this.operator === 'equal' ||\n this.operator === 'notequal') && (moduleName !== 'ODataAdaptor' && moduleName !== 'ODataV4Adaptor')) {\n for (var i_1 = 0; i_1 < this.filterSettings.columns.length; i_1++) {\n if (this.filterSettings.columns[\"\" + i_1].field === field &&\n (this.filterSettings.columns[\"\" + i_1].operator === 'equal' || this.filterSettings.columns[\"\" + i_1].operator === 'notequal')\n && isNullOrUndefined(this.filterSettings.columns[\"\" + i_1].value)) {\n this.filterSettings.columns.splice(i_1, 1);\n i_1 = i_1 - 1;\n }\n }\n if (col.type === 'string') {\n this.filterSettings.columns.push({\n field: field, ignoreAccent: this.ignoreAccent, matchCase: this.matchCase,\n operator: this.operator, predicate: isMenuNotEqual ? 'and' : 'or', value: ''\n });\n }\n this.filterSettings.columns.push({\n field: field, ignoreAccent: this.ignoreAccent, matchCase: this.matchCase,\n operator: this.operator, predicate: isMenuNotEqual ? 'and' : 'or', value: undefined\n });\n this.filterSettings.columns.push({\n field: field, ignoreAccent: this.ignoreAccent, matchCase: this.matchCase,\n operator: this.operator, predicate: isMenuNotEqual ? 'and' : 'or', value: null\n });\n }\n }\n // eslint-disable-next-line no-self-assign\n this.filterSettings.columns = this.filterSettings.columns;\n this.parent.dataBind();\n };\n Filter.prototype.getFilteredColsIndexByField = function (col) {\n var cols = this.filterSettings.columns;\n for (var i = 0, len = cols.length; i < len; i++) {\n if (cols[parseInt(i.toString(), 10)].uid === col.uid || (col.isForeignColumn()\n && this.parent.getColumnByUid(col.uid).field === col.foreignKeyValue)) {\n return i;\n }\n }\n return -1;\n };\n /**\n * To trigger action complete event.\n *\n * @param {NotifyArgs} e - specifies the NotifyArgs\n * @returns {void}\n * @hidden\n */\n Filter.prototype.onActionComplete = function (e) {\n var args = !this.isRemove ? {\n currentFilterObject: this.currentFilterObject,\n /* tslint:disable:no-string-literal */\n currentFilteringColumn: !isNullOrUndefined(this.column) ? this.column.field : undefined,\n /* tslint:enable:no-string-literal */\n columns: this.filterSettings.columns, requestType: 'filtering', type: events.actionComplete\n } : {\n requestType: 'filtering', type: events.actionComplete\n };\n this.parent.trigger(events.actionComplete, extend(e, args));\n this.isRemove = false;\n };\n Filter.prototype.wireEvents = function () {\n EventHandler.add(this.parent.getHeaderContent(), 'keyup', this.keyUpHandlerImmediate, this);\n };\n Filter.prototype.unWireEvents = function () {\n EventHandler.remove(this.parent.getHeaderContent(), 'keyup', this.keyUpHandlerImmediate);\n };\n Filter.prototype.enableAfterRender = function (e) {\n if (e.module === this.getModuleName() && e.enable) {\n this.parent.getHeaderTable().classList.add('e-sortfilter');\n this.render();\n }\n };\n Filter.prototype.refreshFilterValue = function () {\n this.parent.removeEventListener(events.beforeDataBound, this.refreshFilterValueFn);\n if (this.filterSettings.type === 'FilterBar' && this.filterSettings.columns.length &&\n !this.parent.getCurrentViewRecords().length) {\n this.initialEnd();\n }\n };\n Filter.prototype.initialEnd = function () {\n this.parent.off(events.contentReady, this.initialEnd);\n if (this.parent.getColumns().length && this.filterSettings.columns.length) {\n var gObj = this.parent;\n this.contentRefresh = false;\n this.initialLoad = true;\n for (var _i = 0, _a = gObj.filterSettings.columns; _i < _a.length; _i++) {\n var col = _a[_i];\n this.filterByColumn(col.field, col.operator, col.value, col.predicate, col.matchCase, col.ignoreAccent, col.actualFilterValue, col.actualOperator);\n }\n this.initialLoad = false;\n this.updateFilterMsg();\n this.contentRefresh = true;\n }\n };\n /**\n * @returns {void}\n * @hidden\n */\n Filter.prototype.addEventListener = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n this.parent.on(events.setFullScreenDialog, this.setFullScreenDialog, this);\n this.parent.on(events.uiUpdate, this.enableAfterRender, this);\n this.parent.on(events.filterComplete, this.onActionComplete, this);\n this.parent.on(events.inBoundModelChanged, this.onPropertyChanged, this);\n this.parent.on(events.keyPressed, this.keyUpHandler, this);\n this.parent.on(events.columnPositionChanged, this.columnPositionChanged, this);\n this.parent.on(events.headerRefreshed, this.render, this);\n this.parent.on(events.contentReady, this.initialEnd, this);\n this.parent.on(events.filterMenuClose, this.filterMenuClose, this);\n this.docClickHandler = this.clickHandler.bind(this);\n EventHandler.add(document, 'click', this.docClickHandler, this);\n EventHandler.add(this.parent.element, 'mousedown', this.refreshClearIcon, this);\n this.parent.on(events.filterOpen, this.columnMenuFilter, this);\n this.parent.on(events.click, this.filterIconClickHandler, this);\n this.parent.on('persist-data-changed', this.initialEnd, this);\n this.parent.on(events.closeFilterDialog, this.clickHandler, this);\n this.parent.on(events.destroy, this.destroy, this);\n this.refreshFilterValueFn = this.refreshFilterValue.bind(this);\n this.parent.addEventListener(events.beforeDataBound, this.refreshFilterValueFn);\n };\n /**\n * @returns {void}\n * @hidden\n */\n Filter.prototype.removeEventListener = function () {\n EventHandler.remove(document, 'click', this.docClickHandler);\n EventHandler.remove(this.parent.element, 'mousedown', this.refreshClearIcon);\n if (this.parent.isDestroyed) {\n return;\n }\n this.parent.off(events.setFullScreenDialog, this.setFullScreenDialog);\n this.parent.off(events.uiUpdate, this.enableAfterRender);\n this.parent.off(events.filterComplete, this.onActionComplete);\n this.parent.off(events.inBoundModelChanged, this.onPropertyChanged);\n this.parent.off(events.keyPressed, this.keyUpHandler);\n this.parent.off(events.columnPositionChanged, this.columnPositionChanged);\n this.parent.off(events.headerRefreshed, this.render);\n this.parent.off(events.filterOpen, this.columnMenuFilter);\n this.parent.off(events.filterMenuClose, this.filterMenuClose);\n this.parent.off(events.click, this.filterIconClickHandler);\n this.parent.off(events.closeFilterDialog, this.clickHandler);\n this.parent.off(events.destroy, this.destroy);\n };\n Filter.prototype.refreshClearIcon = function (e) {\n if (this.parent.allowFiltering && this.parent.filterSettings.type === 'FilterBar' &&\n e.target.closest('th') && e.target.closest('th').classList.contains('e-filterbarcell') &&\n e.target.classList.contains('e-clear-icon')) {\n var targetText = e.target.previousElementSibling;\n Input.setValue(null, targetText, 'Never', true);\n if (this.filterSettings.mode === 'Immediate') {\n this.removeFilteredColsByField(targetText.id.slice(0, -14)); //Length of _filterBarcell = 14\n }\n }\n };\n Filter.prototype.filterMenuClose = function () {\n this.fltrDlgDetails.isOpen = false;\n };\n /**\n * Filters the Grid row by fieldName, filterOperator, and filterValue.\n *\n * @param {string} fieldName - Defines the field name of the filter column.\n * @param {string} filterOperator - Defines the operator to filter records.\n * @param {string | number | Date | boolean} filterValue - Defines the value which is used to filter records.\n * @param {string} predicate - Defines the relationship of one filter query with another by using AND or OR predicate.\n * @param {boolean} matchCase - If match case is set to true, then the filter records\n * the exact match or
      filters records that are case insensitive (uppercase and lowercase letters treated the same).\n * @param {boolean} ignoreAccent - If ignoreAccent set to true, then filter ignores the diacritic characters or accents while filtering.\n * @param {string} actualFilterValue - Defines the actual filter value for the filter column.\n * @param {string} actualOperator - Defines the actual filter operator for the filter column.\n * @returns {void}\n */\n Filter.prototype.filterByColumn = function (fieldName, filterOperator, filterValue, predicate, matchCase, ignoreAccent, actualFilterValue, actualOperator) {\n var _this = this;\n var gObj = this.parent;\n var filterCell;\n this.column = gObj.grabColumnByFieldFromAllCols(fieldName);\n if (this.filterSettings.type === 'FilterBar' && this.filterSettings.showFilterBarOperator\n && isNullOrUndefined(this.column.filterBarTemplate) && isNullOrUndefined(this.column.filterTemplate)) {\n filterOperator = this.getOperatorName(fieldName);\n }\n if (filterOperator === 'like' && filterValue.indexOf('%') === -1) {\n filterValue = '%' + filterValue + '%';\n }\n if (!this.column) {\n return;\n }\n if (this.filterSettings.type === 'FilterBar') {\n filterCell = gObj.getHeaderContent().querySelector('[id=\\'' + this.column.field + '_filterBarcell\\']');\n }\n if (!isNullOrUndefined(this.column.allowFiltering) && !this.column.allowFiltering) {\n this.parent.log('action_disabled_column', { moduleName: this.getModuleName(), columnName: this.column.headerText });\n return;\n }\n if (isActionPrevent(gObj)) {\n gObj.notify(events.preventBatch, {\n instance: this, handler: this.filterByColumn, arg1: fieldName, arg2: filterOperator, arg3: filterValue, arg4: predicate,\n arg5: matchCase, arg6: ignoreAccent, arg7: actualFilterValue, arg8: actualOperator\n });\n return;\n }\n this.predicate = predicate ? predicate : Array.isArray(filterValue) ? 'or' : 'and';\n this.value = filterValue;\n this.matchCase = matchCase || false;\n this.ignoreAccent = this.ignoreAccent = !isNullOrUndefined(ignoreAccent) ? ignoreAccent : this.parent.filterSettings.ignoreAccent;\n this.fieldName = fieldName;\n this.operator = filterOperator;\n filterValue = !isNullOrUndefined(filterValue) ? filterValue.toString() : filterValue;\n if (filterValue === '') {\n filterValue = null;\n }\n if (this.column.type === 'number' || this.column.type === 'date') {\n this.matchCase = true;\n }\n gObj.getColumnHeaderByField(this.column.isForeignColumn() ? this.column.field : fieldName).setAttribute('aria-filtered', 'true');\n if (filterCell && this.filterSettings.type === 'FilterBar') {\n if ((filterValue && filterValue.length < 1) || (!this.filterByMethod &&\n this.checkForSkipInput(this.column, filterValue))) {\n this.filterStatusMsg = (filterValue && filterValue.length < 1) ? '' : this.l10n.getConstant('InvalidFilterMessage');\n this.updateFilterMsg();\n return;\n }\n if (filterCell.value !== filterValue) {\n filterCell.value = filterValue;\n }\n }\n if (!isNullOrUndefined(this.column.format)) {\n this.applyColumnFormat(filterValue);\n if (this.initialLoad && this.filterSettings.type === 'FilterBar') {\n filterCell.value = this.values[this.column.field];\n }\n }\n else {\n this.values[this.column.field] = filterValue; //this line should be above updateModel\n }\n var predObj = {\n field: this.fieldName,\n predicate: predicate,\n matchCase: matchCase,\n ignoreAccent: ignoreAccent,\n operator: this.operator,\n value: this.value,\n type: this.column.type\n };\n var filterColumn = this.parent.filterSettings.columns.filter(function (fColumn) {\n return (fColumn.field === _this.fieldName);\n });\n if (filterColumn.length > 1 && !isNullOrUndefined(this.actualPredicate[this.fieldName])) {\n this.actualPredicate[this.fieldName].push(predObj);\n }\n else {\n this.actualPredicate[this.fieldName] = [predObj];\n }\n if (this.checkAlreadyColFiltered(this.column.field)) {\n return;\n }\n this.updateModel();\n };\n Filter.prototype.applyColumnFormat = function (filterValue) {\n var _this = this;\n var getFlvalue = (this.column.type === 'date' || this.column.type === 'datetime') ?\n new Date(filterValue) : parseFloat(filterValue);\n if ((this.column.type === 'date' || this.column.type === 'datetime') && filterValue &&\n Array.isArray(this.value) && filterValue.split(',').length > 1) {\n this.values[this.column.field] = ((filterValue).split(',')).map(function (val) {\n if (val === '') {\n val = null;\n }\n return _this.setFormatForFlColumn(new Date(val), _this.column);\n });\n }\n else {\n this.values[this.column.field] = this.setFormatForFlColumn(getFlvalue, this.column);\n }\n };\n // To skip the second time request to server while applying initial filtering - EJ2-44361\n Filter.prototype.skipUid = function (col) {\n var flag = true;\n var colLen = Object.keys((col));\n for (var i = 0; i < colLen.length; i++) {\n var key = Object.keys(col[colLen[parseInt(i.toString(), 10)]]);\n if (key.length === 1 && key[0] === 'uid') {\n flag = false;\n }\n }\n return flag;\n };\n Filter.prototype.onPropertyChanged = function (e) {\n if (e.module !== this.getModuleName()) {\n return;\n }\n for (var _i = 0, _a = Object.keys(e.properties); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'columns':\n // eslint-disable-next-line no-case-declarations\n var col = 'columns';\n // eslint-disable-next-line no-case-declarations\n var args = {\n currentFilterObject: this.currentFilterObject, currentFilteringColumn: this.column ?\n this.column.field : undefined, action: 'filter', columns: this.filterSettings.columns,\n requestType: 'filtering', type: events.actionBegin, cancel: false\n };\n if (this.contentRefresh && this.skipUid(e.properties[\"\" + col])) {\n this.parent.notify(events.modelChanged, args);\n if (args.cancel) {\n if (isNullOrUndefined(this.prevFilterObject)) {\n this.filterSettings.columns.splice(this.filterSettings.columns.length - 1, 1);\n }\n else {\n this.filterSettings.columns[this.filterObjIndex] = this.prevFilterObject;\n }\n return;\n }\n this.updateFilterIcon();\n this.refreshFilterSettings();\n this.updateFilterMsg();\n this.updateFilter();\n }\n break;\n case 'showFilterBarStatus':\n if (e.properties[\"\" + prop]) {\n this.updateFilterMsg();\n }\n else if (this.parent.allowPaging) {\n this.parent.updateExternalMessage('');\n }\n break;\n case 'showFilterBarOperator':\n case 'type':\n this.parent.refreshHeader();\n this.refreshFilterSettings();\n break;\n }\n }\n };\n Filter.prototype.refreshFilterSettings = function () {\n if (this.filterSettings.type === 'FilterBar') {\n for (var i = 0; i < this.filterSettings.columns.length; i++) {\n this.column = this.parent.grabColumnByUidFromAllCols(this.filterSettings.columns[parseInt(i.toString(), 10)].uid);\n var filterValue = this.filterSettings.columns[parseInt(i.toString(), 10)].value;\n filterValue = !isNullOrUndefined(filterValue) && filterValue.toString();\n if (!isNullOrUndefined(this.column.format)) {\n this.applyColumnFormat(filterValue);\n }\n else {\n var key = this.filterSettings.columns[parseInt(i.toString(), 10)].field;\n this.values[\"\" + key] = this.filterSettings.columns[parseInt(i.toString(), 10)].value;\n }\n var filterElement = this.getFilterBarElement(this.column.field);\n if (filterElement) {\n if (this.cellText[this.filterSettings.columns[parseInt(i.toString(), 10)].field] !== ''\n && !isNullOrUndefined(this.cellText[this.filterSettings.columns[parseInt(i.toString(), 10)].field])) {\n filterElement.value = this.cellText[this.column.field];\n }\n else {\n filterElement.value = this.filterSettings.columns[parseInt(i.toString(), 10)].value;\n }\n }\n }\n if (this.filterSettings.columns.length === 0) {\n var col = this.parent.getColumns();\n for (var i = 0; i < col.length; i++) {\n var filterElement = this.getFilterBarElement(col[parseInt(i.toString(), 10)].field);\n if (filterElement && filterElement.value !== '') {\n filterElement.value = '';\n delete this.values[col[parseInt(i.toString(), 10)].field];\n }\n }\n }\n }\n };\n Filter.prototype.updateFilterIcon = function () {\n if (this.filterSettings.columns.length === 0 && this.parent.element.querySelector('.e-filtered')) {\n var fltrIconElement = [].slice.call(this.parent.element.getElementsByClassName('e-filtered'));\n for (var i = 0, len = fltrIconElement.length; i < len; i++) {\n fltrIconElement[parseInt(i.toString(), 10)].removeAttribute('aria-filtered');\n fltrIconElement[parseInt(i.toString(), 10)].classList.remove('e-filtered');\n }\n }\n };\n Filter.prototype.getFilterBarElement = function (col) {\n var selector = '[id=\\'' + col + '_filterBarcell\\']';\n var filterElement;\n if (selector && !isNullOrUndefined(this.element)) {\n filterElement = this.element.querySelector(selector);\n }\n return filterElement;\n };\n /**\n * @private\n * @returns {void}\n */\n Filter.prototype.refreshFilter = function () {\n this.refreshFilterSettings();\n this.updateFilterMsg();\n };\n /**\n * Clears all the filtered rows of the Grid.\n *\n * @param {string[]} fields - returns the fields\n * @returns {void}\n */\n Filter.prototype.clearFiltering = function (fields) {\n var _this = this;\n var cols = getActualPropFromColl(this.filterSettings.columns);\n if (!isNullOrUndefined(fields)) {\n this.refresh = false;\n fields.forEach(function (field) { _this.removeFilteredColsByField(field, false); });\n this.parent.setProperties({ filterSettings: { columns: this.filterSettings.columns } }, true);\n this.parent.renderModule.refresh();\n this.refresh = true;\n return;\n }\n if (isActionPrevent(this.parent)) {\n this.parent.notify(events.preventBatch, { instance: this, handler: this.clearFiltering });\n return;\n }\n for (var i = 0; i < cols.length; i++) {\n cols[parseInt(i.toString(), 10)].uid = cols[parseInt(i.toString(), 10)].uid\n || this.parent.getColumnByField(cols[parseInt(i.toString(), 10)].field).uid;\n }\n var colUid = cols.map(function (f) { return f.uid; });\n var filteredcols = colUid.filter(function (item, pos) { return colUid.indexOf(item) === pos; });\n this.refresh = false;\n for (var i = 0, len = filteredcols.length; i < len; i++) {\n this.removeFilteredColsByField(this.parent.getColumnByUid(filteredcols[parseInt(i.toString(), 10)]).field, false);\n }\n this.refresh = true;\n if (filteredcols.length) {\n this.parent.renderModule.refresh();\n }\n if (this.parent.filterSettings.columns.length === 0 && this.parent.element.querySelector('.e-filtered')) {\n var fltrElement = [].slice.call(this.parent.element.getElementsByClassName('e-filtered'));\n for (var i = 0, len = fltrElement.length; i < len; i++) {\n fltrElement[0].removeAttribute('aria-filtered');\n fltrElement[0].classList.remove('e-filtered');\n }\n }\n this.isRemove = true;\n this.filterStatusMsg = '';\n this.updateFilterMsg();\n };\n Filter.prototype.checkAlreadyColFiltered = function (field) {\n var columns = this.filterSettings.columns;\n for (var _i = 0, columns_1 = columns; _i < columns_1.length; _i++) {\n var col = columns_1[_i];\n if (col.field === field && col.value === this.value &&\n col.operator === this.operator && col.predicate === this.predicate) {\n return true;\n }\n }\n return false;\n };\n Filter.prototype.columnMenuFilter = function (args) {\n this.column = args.col;\n var ele = closest(args.target, '#' + args.id);\n if (args.isClose && !ele) {\n this.filterModule.closeDialog();\n }\n else if (ele) {\n this.filterDialogOpen(this.column, args.target);\n }\n };\n Filter.prototype.filterDialogOpen = function (col, target, left, top) {\n if (this.filterModule) {\n this.filterModule.closeDialog();\n }\n this.setFilterModel(col);\n this.filterModule.openDialog(this.createOptions(col, target, left, top));\n };\n /**\n * Create filter dialog options\n *\n * @param {Column} col - Filtering column detail.\n * @param {Element} target - Filter dialog target.\n * @param {number} left - Filter dialog left position.\n * @param {number} top - Filter dialog top position.\n * @returns {Object} returns the created dialog options\n * @hidden\n */\n Filter.prototype.createOptions = function (col, target, left, top) {\n var gObj = this.parent;\n var dataSource = col.filter.dataSource || gObj.dataSource && 'result' in gObj.dataSource ? gObj.dataSource :\n gObj.getDataModule().dataManager;\n var type = col.filter.type || this.parent.filterSettings.type;\n var options = {\n type: col.type, field: col.field, displayName: col.headerText,\n dataSource: dataSource, format: col.format, height: 800, columns: gObj.getColumns(),\n filteredColumns: gObj.filterSettings.columns, target: target, dataManager: gObj.getDataModule().dataManager,\n formatFn: col.getFormatter(), ignoreAccent: gObj.filterSettings.ignoreAccent,\n parserFn: col.getParser(), query: gObj.query, template: col.getFilterItemTemplate(),\n hideSearchbox: isNullOrUndefined(col.filter.hideSearchbox) ? false : col.filter.hideSearchbox,\n handler: this.filterHandler.bind(this), localizedStrings: gObj.getLocaleConstants(),\n position: { X: left, Y: top }, column: col, foreignKeyValue: col.foreignKeyValue,\n actualPredicate: this.actualPredicate, localeObj: gObj.localeObj,\n isRemote: gObj.getDataModule().isRemote(), allowCaseSensitive: this.filterSettings.enableCaseSensitivity,\n isResponsiveFilter: this.parent.enableAdaptiveUI,\n operator: this.actualPredicate[col.field] && type === 'Menu' ? this.actualPredicate[col.field][0].operator : 'equal'\n };\n return options;\n };\n /**\n * Removes filtered column by field name.\n *\n * @param {string} field - Defines column field name to remove filter.\n * @param {boolean} isClearFilterBar - Specifies whether the filter bar value needs to be cleared.\n * @returns {void}\n * @hidden\n */\n Filter.prototype.removeFilteredColsByField = function (field, isClearFilterBar) {\n var fCell;\n var cols = this.filterSettings.columns;\n if (isActionPrevent(this.parent)) {\n var args = { instance: this, handler: this.removeFilteredColsByField, arg1: field, arg2: isClearFilterBar };\n this.parent.notify(events.preventBatch, args);\n return;\n }\n var colUid = cols.map(function (f) { return f.uid; });\n var filteredColsUid = colUid.filter(function (item, pos) { return colUid.indexOf(item) === pos; });\n var _loop_1 = function (i, len) {\n cols[parseInt(i.toString(), 10)].uid = cols[parseInt(i.toString(), 10)].uid\n || this_1.parent.getColumnByField(cols[parseInt(i.toString(), 10)].field).uid;\n var len_1 = cols.length;\n var column = this_1.parent.grabColumnByUidFromAllCols(filteredColsUid[parseInt(i.toString(), 10)]);\n if (column.field === field || (column.field === column.foreignKeyValue && column.isForeignColumn())) {\n var currentPred = this_1.filterSettings.columns.filter(function (e) {\n return e.uid === column.uid;\n })[0];\n if (this_1.filterSettings.type === 'FilterBar' && !isClearFilterBar) {\n var selector = '[id=\\'' + column.field + '_filterBarcell\\']';\n fCell = this_1.parent.getHeaderContent().querySelector(selector);\n if (fCell) {\n fCell.value = '';\n delete this_1.values[\"\" + field];\n }\n }\n while (len_1--) {\n if (cols[parseInt(len_1.toString(), 10)].uid === column.uid) {\n cols.splice(len_1, 1);\n }\n }\n var fltrElement = this_1.parent.getColumnHeaderByField(column.field);\n fltrElement.removeAttribute('aria-filtered');\n if (this_1.filterSettings.type !== 'FilterBar' || this_1.parent.showColumnMenu) {\n var iconClass = this_1.parent.showColumnMenu && column.showColumnMenu ? '.e-columnmenu' : '.e-icon-filter';\n fltrElement.querySelector(iconClass).classList.remove('e-filtered');\n }\n this_1.isRemove = true;\n if (this_1.actualPredicate[\"\" + field]) {\n delete this_1.actualPredicate[\"\" + field];\n }\n if (this_1.values[\"\" + field]) {\n delete this_1.values[\"\" + field];\n }\n if (this_1.refresh) {\n this_1.parent.notify(events.modelChanged, {\n requestType: 'filtering', type: events.actionBegin, currentFilterObject: currentPred,\n currentFilterColumn: column, action: 'clearFilter'\n });\n }\n return \"break\";\n }\n };\n var this_1 = this;\n for (var i = 0, len = filteredColsUid.length; i < len; i++) {\n var state_1 = _loop_1(i, len);\n if (state_1 === \"break\")\n break;\n }\n this.updateFilterMsg();\n };\n /**\n * For internal use only - Get the module name.\n *\n * @returns {string} returns the module name\n * @private\n */\n Filter.prototype.getModuleName = function () {\n return 'filter';\n };\n Filter.prototype.keyUpHandlerImmediate = function (e) {\n if (e.keyCode !== 13) {\n this.keyUpHandler(e);\n }\n };\n Filter.prototype.keyUpHandler = function (e) {\n var gObj = this.parent;\n var target = e.target;\n if (target && matches(target, '.e-filterbar input')) {\n var closeHeaderEle = closest(target, 'th.e-filterbarcell');\n this.column = gObj.getColumnByUid(closeHeaderEle.getAttribute('e-mappinguid'));\n if (!this.column) {\n return;\n }\n if (e.action === 'altDownArrow' && this.parent.filterSettings.showFilterBarOperator) {\n var dropDownListInput = closest(target, 'span').querySelector('.e-filterbaroperator');\n dropDownListInput.ej2_instances[0].showPopup();\n dropDownListInput.focus();\n }\n if ((this.filterSettings.mode === 'Immediate' || (e.keyCode === 13 &&\n !e.target.classList.contains('e-filterbaroperator')))\n && e.keyCode !== 9 && !this.column.filterTemplate) {\n this.value = target.value.trim();\n this.processFilter(e);\n }\n }\n if (e.action === 'altDownArrow' && this.filterSettings.type !== 'FilterBar') {\n var element = gObj.focusModule.currentInfo.element;\n if (element && element.classList.contains('e-headercell')) {\n var column = gObj.getColumnByUid(element.firstElementChild.getAttribute('e-mappinguid'));\n this.openMenuByField(column.field);\n this.parent.focusModule.clearIndicator();\n }\n }\n if (e.action === 'escape' && this.filterSettings.type === 'Menu' && this.filterModule) {\n this.filterModule.closeDialog();\n gObj.notify(events.restoreFocus, {});\n }\n };\n Filter.prototype.updateCrossIcon = function (element) {\n if (element.value.length) {\n element.nextElementSibling.classList.remove('e-hide');\n }\n };\n Filter.prototype.updateFilterMsg = function () {\n if (this.filterSettings.type === 'FilterBar') {\n var gObj = this.parent;\n var getFormatFlValue = void 0;\n var columns = this.filterSettings.columns;\n var column = void 0;\n if (!this.filterSettings.showFilterBarStatus) {\n return;\n }\n if (columns.length > 0 && this.filterStatusMsg !== this.l10n.getConstant('InvalidFilterMessage')) {\n this.filterStatusMsg = '';\n for (var index = 0; index < columns.length; index++) {\n column = gObj.grabColumnByUidFromAllCols(columns[parseInt(index.toString(), 10)].uid)\n || gObj.grabColumnByFieldFromAllCols(columns[parseInt(index.toString(), 10)].field);\n if (index) {\n this.filterStatusMsg += ' && ';\n }\n if (!isNullOrUndefined(column.format)) {\n var flValue = (column.type === 'date' || column.type === 'datetime') ?\n this.valueFormatter.fromView(this.values[column.field], column.getParser(), column.type) :\n this.values[column.field];\n if (!(column.type === 'date' || column.type === 'datetime')) {\n var formater = this.serviceLocator.getService('valueFormatter');\n getFormatFlValue = formater.toView(flValue, column.getParser()).toString();\n }\n else {\n getFormatFlValue = this.setFormatForFlColumn(flValue, column);\n }\n this.filterStatusMsg += column.headerText + ': ' + getFormatFlValue;\n }\n else {\n this.filterStatusMsg += column.headerText + ': ' + this.values[column.field];\n }\n }\n }\n if (gObj.allowPaging) {\n gObj.updateExternalMessage(this.filterStatusMsg);\n }\n //TODO: virtual paging\n this.filterStatusMsg = '';\n }\n };\n Filter.prototype.setFormatForFlColumn = function (value, column) {\n var formater = this.serviceLocator.getService('valueFormatter');\n return formater.toView(value, column.getFormatter()).toString();\n };\n Filter.prototype.checkForSkipInput = function (column, value) {\n var isSkip;\n if (column.type === 'number') {\n if (DataUtil.operatorSymbols[\"\" + value] || this.skipNumberInput.indexOf(value) > -1) {\n isSkip = true;\n }\n }\n else if (column.type === 'string') {\n for (var _i = 0, value_1 = value; _i < value_1.length; _i++) {\n var val = value_1[_i];\n if (this.skipStringInput.indexOf(val) > -1) {\n isSkip = true;\n }\n }\n }\n return isSkip;\n };\n Filter.prototype.processFilter = function (e) {\n this.stopTimer();\n this.startTimer(e);\n };\n Filter.prototype.startTimer = function (e) {\n var _this = this;\n this.timer = window.setInterval(function () { _this.onTimerTick(); }, e.keyCode === 13 ? 0 : this.filterSettings.immediateModeDelay);\n };\n Filter.prototype.stopTimer = function () {\n window.clearInterval(this.timer);\n };\n Filter.prototype.onTimerTick = function () {\n var selector = '[id=\\'' + this.column.field + '_filterBarcell\\']';\n var filterElement = this.element.querySelector(selector);\n if (!filterElement && this.parent.isFrozenGrid()) {\n filterElement = this.parent.getHeaderContent().querySelector(selector);\n }\n var filterValue;\n this.cellText[this.column.field] = filterElement.value;\n this.stopTimer();\n if (!isNullOrUndefined(this.column.filterBarTemplate)) {\n var templateRead = this.column.filterBarTemplate.read;\n if (typeof templateRead === 'string') {\n templateRead = getValue(templateRead, window);\n }\n if (!isNullOrUndefined(templateRead)) {\n this.value = templateRead.call(this, filterElement);\n }\n }\n else {\n filterValue = JSON.parse(JSON.stringify(filterElement.value));\n }\n if (isNullOrUndefined(this.value) || this.value === '') {\n this.removeFilteredColsByField(this.column.field);\n return;\n }\n this.validateFilterValue(this.value);\n this.filterByMethod = false;\n this.filterByColumn(this.column.field, this.operator, this.value, this.predicate, this.filterSettings.enableCaseSensitivity, this.ignoreAccent);\n this.filterByMethod = true;\n filterElement.value = filterValue;\n this.updateFilterMsg();\n };\n Filter.prototype.validateFilterValue = function (value) {\n var skipInput;\n var index;\n this.matchCase = this.filterSettings.enableCaseSensitivity;\n switch (this.column.type) {\n case 'number':\n if (this.column.filter.operator) {\n this.operator = this.column.filter.operator;\n }\n else {\n this.operator = this.filterOperators.equal;\n }\n skipInput = ['>', '<', '=', '!'];\n for (var i = 0; i < value.length; i++) {\n if (skipInput.indexOf(value[parseInt(i.toString(), 10)]) > -1) {\n index = i;\n break;\n }\n }\n this.getOperator(value.substring(index));\n if (index !== 0) {\n this.value = value.substring(0, index);\n }\n if (this.value !== '' && value.length >= 1) {\n this.value = this.valueFormatter.fromView(this.value, this.column.getParser(), this.column.type);\n }\n if (isNaN(this.value)) {\n this.filterStatusMsg = this.l10n.getConstant('InvalidFilterMessage');\n }\n break;\n case 'date':\n case 'datetime':\n this.operator = this.filterOperators.equal;\n if (this.value !== '' && !(this.value instanceof Date)) {\n this.getOperator(value);\n this.value = this.valueFormatter.fromView(this.value, this.column.getParser(), this.column.type);\n if (isNullOrUndefined(this.value)) {\n this.filterStatusMsg = this.l10n.getConstant('InvalidFilterMessage');\n }\n }\n break;\n case 'string':\n this.matchCase = false;\n if (this.column.filter.operator) {\n this.operator = this.column.filter.operator;\n }\n else {\n if (value.indexOf('*') !== -1 || value.indexOf('?') !== -1 || value.indexOf('%3f') !== -1) {\n this.operator = this.filterOperators.wildCard;\n }\n else if (value.indexOf('%') !== -1) {\n this.operator = this.filterOperators.like;\n }\n else {\n this.operator = this.filterOperators.startsWith;\n }\n }\n break;\n case 'boolean':\n if (value.toLowerCase() === 'true' || value === '1') {\n this.value = true;\n }\n else if (value.toLowerCase() === 'false' || value === '0') {\n this.value = false;\n }\n else if (value.length) {\n this.filterStatusMsg = this.l10n.getConstant('InvalidFilterMessage');\n }\n this.operator = this.filterOperators.equal;\n break;\n default:\n if (this.column.filter.operator) {\n this.operator = this.column.filter.operator;\n }\n else {\n this.operator = this.filterOperators.equal;\n }\n }\n };\n Filter.prototype.getOperator = function (value) {\n var singleOp = value.charAt(0);\n var multipleOp = value.slice(0, 2);\n var operators = extend({ '=': this.filterOperators.equal, '!': this.filterOperators.notEqual }, DataUtil.operatorSymbols);\n // eslint-disable-next-line no-prototype-builtins\n if (operators.hasOwnProperty(singleOp) || operators.hasOwnProperty(multipleOp)) {\n this.operator = operators[\"\" + singleOp];\n this.value = value.substring(1);\n if (!this.operator) {\n this.operator = operators[\"\" + multipleOp];\n this.value = value.substring(2);\n }\n }\n if (this.operator === this.filterOperators.lessThan || this.operator === this.filterOperators.greaterThan) {\n if (this.value.charAt(0) === '=') {\n this.operator = this.operator + 'orequal';\n this.value = this.value.substring(1);\n }\n }\n };\n Filter.prototype.columnPositionChanged = function () {\n if (this.parent.filterSettings.type !== 'FilterBar') {\n return;\n }\n };\n Filter.prototype.getLocalizedCustomOperators = function () {\n var numOptr = [\n { value: 'equal', text: this.l10n.getConstant('Equal') },\n { value: 'greaterthan', text: this.l10n.getConstant('GreaterThan') },\n { value: 'greaterthanorequal', text: this.l10n.getConstant('GreaterThanOrEqual') },\n { value: 'lessthan', text: this.l10n.getConstant('LessThan') },\n { value: 'lessthanorequal', text: this.l10n.getConstant('LessThanOrEqual') },\n { value: 'notequal', text: this.l10n.getConstant('NotEqual') },\n { value: 'isnull', text: this.l10n.getConstant('IsNull') },\n { value: 'isnotnull', text: this.l10n.getConstant('NotNull') }\n ];\n this.customOperators = {\n stringOperator: [\n { value: 'startswith', text: this.l10n.getConstant('StartsWith') },\n { value: 'endswith', text: this.l10n.getConstant('EndsWith') },\n { value: 'contains', text: this.l10n.getConstant('Contains') },\n { value: 'equal', text: this.l10n.getConstant('Equal') },\n { value: 'isempty', text: this.l10n.getConstant('IsEmpty') },\n { value: 'doesnotstartwith', text: this.l10n.getConstant('NotStartsWith') },\n { value: 'doesnotendwith', text: this.l10n.getConstant('NotEndsWith') },\n { value: 'doesnotcontain', text: this.l10n.getConstant('NotContains') },\n { value: 'notequal', text: this.l10n.getConstant('NotEqual') },\n { value: 'isnotempty', text: this.l10n.getConstant('IsNotEmpty') },\n { value: 'like', text: this.l10n.getConstant('Like') }\n ],\n numberOperator: numOptr,\n dateOperator: numOptr,\n datetimeOperator: numOptr,\n booleanOperator: [\n { value: 'equal', text: this.l10n.getConstant('Equal') },\n { value: 'notequal', text: this.l10n.getConstant('NotEqual') }\n ]\n };\n };\n /**\n * @param {string} field - specifies the field name\n * @returns {void}\n * @hidden\n */\n Filter.prototype.openMenuByField = function (field) {\n var gObj = this.parent;\n if (gObj.enableAdaptiveUI) {\n this.showCustomFilter(false);\n return;\n }\n var column = gObj.getColumnByField(field);\n var header = gObj.getColumnHeaderByField(field);\n var target = header.querySelector('.e-filtermenudiv');\n if (!target) {\n return;\n }\n var gClient = gObj.element.getBoundingClientRect();\n var fClient = target.getBoundingClientRect();\n this.filterDialogOpen(column, target, fClient.right - gClient.left, fClient.bottom - gClient.top);\n };\n Filter.prototype.filterIconClickHandler = function (e) {\n var target = e.target;\n if (target.classList.contains('e-filtermenudiv') && (this.parent.filterSettings.type === 'Menu' ||\n this.parent.filterSettings.type === 'CheckBox' || this.parent.filterSettings.type === 'Excel')) {\n var gObj = this.parent;\n var col = gObj.getColumnByUid(parentsUntil(target, 'e-headercell').firstElementChild.getAttribute('e-mappinguid'));\n this.column = col;\n if (this.fltrDlgDetails.field === col.field && this.fltrDlgDetails.isOpen) {\n return;\n }\n if (this.filterModule) {\n this.filterModule.closeDialog();\n }\n this.fltrDlgDetails = { field: col.field, isOpen: true };\n this.openMenuByField(col.field);\n }\n };\n Filter.prototype.clickHandler = function (e) {\n if (this.filterSettings.type === 'FilterBar' && this.filterSettings.showFilterBarOperator) {\n if (parentsUntil(e.target, 'e-filterbarcell') &&\n e.target.classList.contains('e-input-group-icon')) {\n var filterOperatorElement = closest(e.target, 'div').\n querySelector('.e-filterbaroperator');\n if (filterOperatorElement) {\n filterOperatorElement.focus();\n }\n else {\n e.target.focus();\n }\n }\n if (e.target.classList.contains('e-list-item')) {\n var inputId = document.querySelector('.e-popup-open').getAttribute('id').replace('_popup', '');\n if (inputId.indexOf('grid-column') !== -1) {\n closest(document.getElementById(inputId), 'div').querySelector('.e-filtertext').focus();\n }\n }\n }\n if (this.filterSettings.mode === 'Immediate' || this.parent.filterSettings.type === 'Menu' ||\n this.parent.filterSettings.type === 'CheckBox' || this.parent.filterSettings.type === 'Excel') {\n var target = e.target;\n var datepickerEle = target.classList.contains('e-day'); // due to datepicker popup cause\n var dialog = parentsUntil(this.parent.element, 'e-dialog');\n var hasDialog = false;\n var popupEle = parentsUntil(target, 'e-popup');\n var hasDialogClosed = this.parent.element.classList.contains('e-device') ? document.querySelector('.e-filter-popup')\n : this.parent.element.querySelector('.e-filter-popup');\n if (dialog && popupEle) {\n hasDialog = dialog.id === popupEle.id;\n }\n if ((hasDialogClosed && (parentsUntil(target, 'e-excel-ascending') ||\n parentsUntil(target, 'e-excel-descending')))) {\n this.filterModule.closeDialog(target);\n }\n if (parentsUntil(target, 'e-filter-popup') || target.classList.contains('e-filtermenudiv')) {\n return;\n }\n else if (this.filterModule && (!parentsUntil(target, 'e-popup-wrapper')\n && (!closest(target, '.e-filter-item.e-menu-item'))) && !datepickerEle) {\n if ((hasDialog && (!parentsUntil(target, 'e-filter-popup'))\n && (!parentsUntil(target, 'e-popup-flmenu'))) || (!popupEle && hasDialogClosed)) {\n this.filterModule.isresetFocus = parentsUntil(target, 'e-grid') &&\n parentsUntil(target, 'e-grid').id === this.parent.element.id;\n this.filterModule.closeDialog(target);\n }\n }\n }\n };\n Filter.prototype.filterHandler = function (args) {\n this.actualPredicate[args.field] = args.actualPredicate;\n var dataManager = new DataManager(this.filterSettings.columns);\n var query = new Query().where('field', this.filterOperators.equal, args.field);\n var result = dataManager.executeLocal(query);\n for (var i = 0; i < result.length; i++) {\n var index = -1;\n for (var j = 0; j < this.filterSettings.columns.length; j++) {\n if (result[parseInt(i.toString(), 10)].field === this.filterSettings.columns[parseInt(j.toString(), 10)].field) {\n index = j;\n break;\n }\n }\n if (index !== -1) {\n this.filterSettings.columns.splice(index, 1);\n }\n }\n if (this.values[args.field]) {\n delete this.values[args.field];\n }\n var col = this.parent.getColumnByField(args.field);\n var iconClass = this.parent.showColumnMenu && col.showColumnMenu ? '.e-columnmenu' : '.e-icon-filter';\n var filterIconElement = this.parent.getColumnHeaderByField(args.field).querySelector(iconClass);\n if (args.action === 'filtering') {\n this.filterSettings.columns = this.filterSettings.columns.concat(args.filterCollection);\n if (this.filterSettings.columns.length && filterIconElement) {\n filterIconElement.classList.add('e-filtered');\n }\n }\n else {\n if (filterIconElement) {\n filterIconElement.classList.remove('e-filtered');\n }\n args.requestType = 'filtering';\n this.parent.renderModule.refresh(args); //hot-fix onpropertychanged not working for object { array }\n }\n this.parent.dataBind();\n };\n Filter.prototype.updateFilter = function () {\n var cols = this.filterSettings.columns;\n this.actualPredicate = {};\n for (var i = 0; i < cols.length; i++) {\n this.column = this.parent.getColumnByField(cols[parseInt(i.toString(), 10)].field) ||\n getColumnByForeignKeyValue(cols[parseInt(i.toString(), 10)].field, this.parent.getForeignKeyColumns());\n var fieldName = cols[parseInt(i.toString(), 10)].field;\n if (!this.parent.getColumnByField(cols[parseInt(i.toString(), 10)].field)) {\n fieldName = getColumnByForeignKeyValue(cols[parseInt(i.toString(), 10)].field, this.parent.getForeignKeyColumns()).field;\n }\n this.refreshFilterIcon(fieldName, cols[parseInt(i.toString(), 10)].operator, cols[parseInt(i.toString(), 10)].value, cols[parseInt(i.toString(), 10)].type, cols[parseInt(i.toString(), 10)].predicate, cols[parseInt(i.toString(), 10)].matchCase, cols[parseInt(i.toString(), 10)].ignoreAccent, cols[parseInt(i.toString(), 10)].uid);\n }\n };\n Filter.prototype.refreshFilterIcon = function (fieldName, operator, value, type, predicate, matchCase, ignoreAccent, uid) {\n var obj = {\n field: fieldName,\n predicate: predicate,\n matchCase: matchCase,\n ignoreAccent: ignoreAccent,\n operator: operator,\n value: value,\n type: type\n };\n if (this.actualPredicate[\"\" + fieldName]) {\n this.actualPredicate[\"\" + fieldName].push(obj);\n }\n else {\n this.actualPredicate[\"\" + fieldName] = [obj];\n }\n var field = uid ? this.parent.grabColumnByUidFromAllCols(uid).field : fieldName;\n this.addFilteredClass(field);\n };\n Filter.prototype.addFilteredClass = function (fieldName) {\n var filterIconElement;\n var col = this.parent.getColumnByField(fieldName);\n if (this.parent.showColumnMenu && col.showColumnMenu) {\n filterIconElement = this.parent.getColumnHeaderByField(fieldName).querySelector('.e-columnmenu');\n }\n else if (col) {\n filterIconElement = this.parent.getColumnHeaderByField(fieldName).querySelector('.e-icon-filter');\n }\n if (filterIconElement) {\n filterIconElement.classList.add('e-filtered');\n }\n };\n /**\n * @hidden\n * @returns {FilterUI} returns the FilterUI\n */\n Filter.prototype.getFilterUIInfo = function () {\n return this.filterModule ? this.filterModule.getFilterUIInfo() : {};\n };\n /**\n * @param {string} field - specifies the field name\n * @returns {string} returns the operator name\n * @hidden\n */\n Filter.prototype.getOperatorName = function (field) {\n return document.getElementById(this.parent.getColumnByField(field).uid).ej2_instances[0].value;\n };\n /**\n * Renders checkbox items in Menu filter dialog.\n *\n * @returns {void}\n */\n Filter.prototype.renderCheckboxOnFilterMenu = function () {\n return this.filterModule.renderCheckBoxMenu();\n };\n return Filter;\n}());\nexport { Filter };\n","import { Draggable, Droppable, EventHandler } from '@syncfusion/ej2-base';\nimport { createElement, closest, remove, classList, addClass, removeClass } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined, extend } from '@syncfusion/ej2-base';\nimport { parentsUntil, isActionPrevent, isGroupAdaptive, updatecloneRow, getComplexFieldID, isComplexField, findCellIndex } from '../base/util';\nimport { generateExpandPredicates, getPredicates, capitalizeFirstLetter } from '../base/util';\nimport * as events from '../base/constant';\nimport { AriaService } from '../services/aria-service';\nimport { GroupModelGenerator } from '../services/group-model-generator';\nimport { DataUtil } from '@syncfusion/ej2-data';\nimport * as literals from '../base/string-literals';\n// eslint-disable-next-line valid-jsdoc\n/**\n *\n * The `Group` module is used to handle group action.\n */\nvar Group = /** @class */ (function () {\n /**\n * Constructor for Grid group module\n *\n * @param {IGrid} parent - specifies the IGrid\n * @param {GroupSettingsModel} groupSettings - specifies the GroupSettingsModel\n * @param {string[]} sortedColumns - specifies the sortedColumns\n * @param {ServiceLocator} serviceLocator - specifies the serviceLocator\n * @hidden\n */\n function Group(parent, groupSettings, sortedColumns, serviceLocator) {\n var _this = this;\n //Internal variables\n this.sortRequired = true;\n /** @hidden */\n this.groupSortFocus = false;\n /** @hidden */\n this.groupTextFocus = false;\n /** @hidden */\n this.groupCancelFocus = false;\n this.isAppliedGroup = false;\n this.isAppliedUnGroup = false;\n this.isAppliedCaptionRowBorder = false;\n this.reorderingColumns = [];\n this.visualElement = createElement('div', {\n className: 'e-cloneproperties e-dragclone e-gdclone',\n styles: 'line-height:23px', attrs: { action: 'grouping' }\n });\n this.helper = function (e) {\n var gObj = _this.parent;\n var target = e.sender.target;\n var element = target.classList.contains('e-groupheadercell') ? target :\n parentsUntil(target, 'e-groupheadercell');\n if (!element || (!target.classList.contains('e-drag') && _this.groupSettings.allowReordering)) {\n return false;\n }\n _this.column = gObj.getColumnByField(element.firstElementChild.getAttribute('ej-mappingname'));\n _this.visualElement.textContent = element.textContent;\n _this.visualElement.style.width = element.offsetWidth + 2 + 'px';\n _this.visualElement.style.height = element.offsetHeight + 2 + 'px';\n _this.visualElement.setAttribute('e-mappinguid', _this.column.uid);\n gObj.element.appendChild(_this.visualElement);\n return _this.visualElement;\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n this.dragStart = function (e) {\n _this.parent.element.classList.add('e-ungroupdrag');\n };\n this.drag = function (e) {\n if (_this.groupSettings.allowReordering) {\n _this.animateDropper(e);\n }\n var target = e.target;\n var cloneElement = _this.parent.element.querySelector('.e-cloneproperties');\n _this.parent.trigger(events.columnDrag, { target: target, draggableType: 'headercell', column: _this.column });\n if (!_this.groupSettings.allowReordering) {\n classList(cloneElement, ['e-defaultcur'], ['e-notallowedcur']);\n if (!(parentsUntil(target, literals.gridContent) || parentsUntil(target, 'e-headercell'))) {\n classList(cloneElement, ['e-notallowedcur'], ['e-defaultcur']);\n }\n }\n };\n this.dragStop = function (e) {\n _this.parent.element.classList.remove('e-ungroupdrag');\n var preventDrop = !(parentsUntil(e.target, literals.gridContent) || parentsUntil(e.target, 'e-gridheader'));\n if (_this.groupSettings.allowReordering && preventDrop) {\n remove(e.helper);\n if (parentsUntil(e.target, 'e-groupdroparea')) {\n _this.rearrangeGroup();\n }\n else if (!(parentsUntil(e.target, 'e-grid'))) {\n var field = _this.parent.getColumnByUid(e.helper.getAttribute('e-mappinguid')).field;\n if (_this.groupSettings.columns.indexOf(field) !== -1) {\n _this.ungroupColumn(field);\n }\n }\n return;\n }\n else if (preventDrop) {\n remove(e.helper);\n return;\n }\n };\n this.animateDropper = function (e) {\n var uid = _this.parent.element.querySelector('.e-cloneproperties').getAttribute('e-mappinguid');\n var dragField = _this.parent.getColumnByUid(uid).field;\n var parent = parentsUntil(e.target, 'e-groupdroparea');\n var dropTarget = parentsUntil(e.target, 'e-group-animator');\n var grouped = [].slice.call(_this.element.getElementsByClassName('e-groupheadercell'))\n .map(function (e) { return e.querySelector('div').getAttribute('ej-mappingname'); });\n var cols = JSON.parse(JSON.stringify(grouped));\n if (dropTarget || parent) {\n if (dropTarget) {\n var dropField = dropTarget.querySelector('div[ej-mappingname]').getAttribute('ej-mappingname');\n var dropIndex = +(dropTarget.getAttribute('index'));\n if (dropField !== dragField) {\n var dragIndex = cols.indexOf(dragField);\n if (dragIndex !== -1) {\n cols.splice(dragIndex, 1);\n }\n var flag = dropIndex !== -1 && dragIndex === dropIndex;\n cols.splice(dropIndex + (flag ? 1 : 0), 0, dragField);\n }\n }\n else if (parent && cols.indexOf(dragField) === -1) {\n cols.push(dragField);\n }\n _this.element.innerHTML = '';\n if (cols.length && !_this.element.classList.contains('e-grouped')) {\n _this.element.classList.add('e-grouped');\n }\n _this.reorderingColumns = cols;\n for (var c = 0; c < cols.length; c++) {\n _this.addColToGroupDrop(cols[parseInt(c.toString(), 10)]);\n }\n }\n else {\n _this.addLabel();\n _this.removeColFromGroupDrop(dragField);\n }\n };\n this.drop = function (e) {\n var gObj = _this.parent;\n var column = gObj.getColumnByUid(e.droppedElement.getAttribute('e-mappinguid'));\n _this.element.classList.remove('e-hover');\n remove(e.droppedElement);\n _this.aria.setDropTarget(_this.parent.element.querySelector('.e-groupdroparea'), false);\n _this.aria.setGrabbed(_this.parent.getHeaderTable().querySelector('[aria-grabbed=true]'), false);\n if (isNullOrUndefined(column) || column.allowGrouping === false ||\n parentsUntil(gObj.getColumnHeaderByUid(column.uid), 'e-grid').getAttribute('id') !==\n gObj.element.getAttribute('id')) {\n _this.parent.log('action_disabled_column', { moduleName: _this.getModuleName(), columnName: column.headerText });\n return;\n }\n _this.groupColumn(column.field);\n };\n this.contentRefresh = true;\n this.aria = new AriaService();\n this.parent = parent;\n this.groupSettings = groupSettings;\n this.serviceLocator = serviceLocator;\n this.sortedColumns = sortedColumns;\n this.focus = serviceLocator.getService('focus');\n this.addEventListener();\n this.groupGenerator = new GroupModelGenerator(this.parent);\n }\n Group.prototype.addLabel = function () {\n if (!this.element.getElementsByClassName('e-group-animator').length) {\n var dragLabel = this.l10n.getConstant('GroupDropArea');\n this.element.innerHTML = dragLabel;\n this.element.classList.remove('e-grouped');\n }\n };\n Group.prototype.rearrangeGroup = function () {\n this.sortRequired = false;\n this.updateModel();\n };\n Group.prototype.columnDrag = function (e) {\n if (this.groupSettings.allowReordering && e.column.allowGrouping) {\n this.animateDropper(e);\n }\n var cloneElement = this.parent.element.querySelector('.e-cloneproperties');\n classList(cloneElement, ['e-defaultcur'], ['e-notallowedcur']);\n if (!parentsUntil(e.target, 'e-groupdroparea') &&\n !(this.parent.allowReordering && parentsUntil(e.target, 'e-headercell'))) {\n classList(cloneElement, ['e-notallowedcur'], ['e-defaultcur']);\n }\n if (e.target.classList.contains('e-groupdroparea')) {\n this.element.classList.add('e-hover');\n }\n else {\n this.element.classList.remove('e-hover');\n }\n };\n Group.prototype.columnDragStart = function (e) {\n if (e.target.classList.contains('e-stackedheadercell')) {\n return;\n }\n var dropArea = this.parent.element.querySelector('.e-groupdroparea');\n this.aria.setDropTarget(dropArea, e.column.allowGrouping);\n var element = e.target.classList.contains('e-headercell') ? e.target : parentsUntil(e.target, 'e-headercell');\n this.aria.setGrabbed(element, true, !e.column.allowGrouping);\n };\n Group.prototype.columnDrop = function (e) {\n var gObj = this.parent;\n if (e.droppedElement.getAttribute('action') === 'grouping') {\n var column = gObj.getColumnByUid(e.droppedElement.getAttribute('e-mappinguid'));\n if (isNullOrUndefined(column) || column.allowGrouping === false ||\n parentsUntil(gObj.getColumnHeaderByUid(column.uid), 'e-grid').getAttribute('id') !==\n gObj.element.getAttribute('id')) {\n return;\n }\n this.ungroupColumn(column.field);\n }\n };\n /**\n * @returns {void}\n * @hidden\n */\n Group.prototype.addEventListener = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n this.parent.on(events.uiUpdate, this.enableAfterRender, this);\n this.parent.on(events.groupComplete, this.onActionComplete, this);\n this.parent.on(events.ungroupComplete, this.onActionComplete, this);\n this.parent.on(events.inBoundModelChanged, this.onPropertyChanged, this);\n this.parent.on(events.click, this.clickHandler, this);\n this.parent.on(events.columnDrag, this.columnDrag, this);\n this.parent.on(events.columnDragStart, this.columnDragStart, this);\n this.parent.on(events.headerDrop, this.columnDrop, this);\n this.parent.on(events.columnDrop, this.columnDrop, this);\n this.parent.on(events.headerRefreshed, this.refreshSortIcons, this);\n this.parent.on(events.sortComplete, this.refreshSortIcons, this);\n this.parent.on(events.keyPressed, this.keyPressHandler, this);\n this.parent.on(events.contentReady, this.initialEnd, this);\n this.parent.on(events.onEmpty, this.initialEnd, this);\n this.parent.on(events.initialEnd, this.render, this);\n this.parent.on(events.groupAggregates, this.onGroupAggregates, this);\n this.parent.on(events.destroy, this.destroy, this);\n this.parent.on('group-expand-collapse', this.updateExpand, this);\n this.parent.on('persist-data-changed', this.initialEnd, this);\n };\n /**\n * @returns {void}\n * @hidden\n */\n Group.prototype.removeEventListener = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n this.parent.off(events.initialEnd, this.render);\n this.parent.off(events.uiUpdate, this.enableAfterRender);\n this.parent.off(events.groupComplete, this.onActionComplete);\n this.parent.off(events.ungroupComplete, this.onActionComplete);\n this.parent.off(events.inBoundModelChanged, this.onPropertyChanged);\n this.parent.off(events.click, this.clickHandler);\n this.parent.off(events.columnDrag, this.columnDrag);\n this.parent.off(events.columnDragStart, this.columnDragStart);\n this.parent.off(events.columnDrop, this.columnDrop);\n this.parent.off(events.headerDrop, this.columnDrop);\n this.parent.off(events.headerRefreshed, this.refreshSortIcons);\n this.parent.off(events.sortComplete, this.refreshSortIcons);\n this.parent.off(events.keyPressed, this.keyPressHandler);\n this.parent.off(events.groupAggregates, this.onGroupAggregates);\n this.parent.off(events.destroy, this.destroy);\n this.parent.off('group-expand-collapse', this.updateExpand);\n };\n Group.prototype.initialEnd = function () {\n var gObj = this.parent;\n this.parent.off(events.contentReady, this.initialEnd);\n this.parent.off(events.onEmpty, this.initialEnd);\n if (this.parent.getColumns().length && this.groupSettings.columns.length) {\n this.contentRefresh = false;\n for (var _i = 0, _a = gObj.groupSettings.columns; _i < _a.length; _i++) {\n var col = _a[_i];\n this.groupColumn(col);\n }\n this.contentRefresh = true;\n }\n };\n Group.prototype.keyPressHandler = function (e) {\n var gObj = this.parent;\n if (e.target && parentsUntil(e.target, 'e-groupheadercell') && (e.action === 'tab' || e.action === 'shiftTab')) {\n var focusableGroupedItems = this.getFocusableGroupedItems();\n if ((e.action === 'tab' && e.target === focusableGroupedItems[focusableGroupedItems.length - 1])\n || (e.action === 'shiftTab' && e.target === focusableGroupedItems[0])) {\n return;\n }\n for (var i = 0; i < focusableGroupedItems.length; i++) {\n if (e.target === focusableGroupedItems[parseInt(i.toString(), 10)]) {\n e.preventDefault();\n var index = e.action === 'tab' ? i + 1 : i - 1;\n focusableGroupedItems[parseInt(index.toString(), 10)].focus();\n return;\n }\n }\n }\n if (e.action !== 'ctrlSpace' && (!this.groupSettings.columns.length ||\n ['altDownArrow', 'altUpArrow', 'ctrlDownArrow', 'ctrlUpArrow', 'enter'].indexOf(e.action) === -1)) {\n return;\n }\n e.preventDefault();\n switch (e.action) {\n case 'altDownArrow':\n case 'altUpArrow':\n // eslint-disable-next-line no-case-declarations\n var selected = gObj.allowSelection ? gObj.getSelectedRowIndexes() : [];\n if (selected.length) {\n var rows = gObj.getContentTable().querySelector(literals.tbody).children;\n var dataRow = gObj.getDataRows()[selected[selected.length - 1]];\n var grpRow = void 0;\n for (var i = dataRow.rowIndex; i >= 0; i--) {\n if (!rows[parseInt(i.toString(), 10)].classList.contains(literals.row) && !rows[parseInt(i.toString(), 10)].classList.contains('e-detailrow')) {\n grpRow = rows[parseInt(i.toString(), 10)];\n break;\n }\n }\n this.expandCollapseRows(grpRow.querySelector(e.action === 'altUpArrow' ?\n '.e-recordplusexpand' : '.e-recordpluscollapse'));\n }\n break;\n case 'ctrlDownArrow':\n this.expandAll();\n break;\n case 'ctrlUpArrow':\n this.collapseAll();\n break;\n case 'enter':\n if (e.target.classList.contains('e-groupsort')) {\n this.groupSortFocus = true;\n this.applySortFromTarget(e.target);\n break;\n }\n else if (e.target.classList.contains('e-ungroupbutton')) {\n this.groupCancelFocus = true;\n this.unGroupFromTarget(e.target);\n break;\n }\n if (this.parent.isEdit || (closest(e.target, '#' + this.parent.element.id + '_searchbar') !== null) ||\n parentsUntil(e.target, 'e-pager') || parentsUntil(e.target, 'e-toolbar')) {\n return;\n }\n // eslint-disable-next-line no-case-declarations\n var element = this.focus.getFocusedElement();\n if (element && (element.classList.contains('e-icon-grightarrow') || element.classList.contains('e-icon-gdownarrow'))) {\n element = element.parentElement;\n }\n // eslint-disable-next-line no-case-declarations\n var row = element ? element.parentElement.querySelector('[class^=\"e-record\"]') : null;\n if (!row) {\n break;\n }\n if (element.children.length && (element.children[0].classList.contains('e-icon-grightarrow') ||\n element.children[0].classList.contains('e-icon-gdownarrow'))) {\n this.expandCollapseRows(row);\n }\n break;\n case 'ctrlSpace':\n // eslint-disable-next-line no-case-declarations\n var elem = gObj.focusModule.currentInfo.element;\n if (elem && elem.classList.contains('e-headercell')) {\n var column = gObj.getColumnByUid(elem.firstElementChild.getAttribute('e-mappinguid'));\n if (column.field && gObj.groupSettings.columns.indexOf(column.field) < 0) {\n this.groupColumn(column.field);\n }\n else {\n this.ungroupColumn(column.field);\n }\n }\n break;\n }\n };\n /**\n * @returns {Element[]} - Return the focusable grouping items\n * @hidden */\n Group.prototype.getFocusableGroupedItems = function () {\n var focusableGroupedItems = [];\n if (this.groupSettings.columns.length) {\n var focusableGroupedHeaderItems = this.element.querySelectorAll('.e-groupheadercell');\n for (var i = 0; i < focusableGroupedHeaderItems.length; i++) {\n focusableGroupedItems.push(focusableGroupedHeaderItems[parseInt(i.toString(), 10)].querySelector('.e-grouptext'));\n focusableGroupedItems.push(focusableGroupedHeaderItems[parseInt(i.toString(), 10)].querySelector('.e-groupsort'));\n focusableGroupedItems.push(focusableGroupedHeaderItems[parseInt(i.toString(), 10)].querySelector('.e-ungroupbutton'));\n }\n }\n return focusableGroupedItems;\n };\n Group.prototype.wireEvent = function () {\n EventHandler.add(this.element, 'focusin', this.onFocusIn, this);\n EventHandler.add(this.element, 'focusout', this.onFocusOut, this);\n };\n Group.prototype.unWireEvent = function () {\n EventHandler.remove(this.element, 'focusin', this.onFocusIn);\n EventHandler.remove(this.element, 'focusout', this.onFocusOut);\n };\n Group.prototype.onFocusIn = function (e) {\n if (this.parent.focusModule.currentInfo && this.parent.focusModule.currentInfo.element) {\n removeClass([this.parent.focusModule.currentInfo.element, this.parent.focusModule.currentInfo.elementToFocus], ['e-focused', 'e-focus']);\n this.parent.focusModule.currentInfo.element.tabIndex = -1;\n }\n this.addOrRemoveFocus(e);\n };\n Group.prototype.onFocusOut = function (e) {\n this.addOrRemoveFocus(e);\n };\n Group.prototype.addOrRemoveFocus = function (e) {\n if (e.target.classList.contains('e-groupdroparea') || e.target.classList.contains('e-grouptext')\n || e.target.classList.contains('e-groupsort')\n || e.target.classList.contains('e-ungroupbutton')) {\n var target = e.target.classList.contains('e-grouptext') ?\n e.target.parentElement.parentElement : e.target;\n if (e.type === 'focusin') {\n this.parent.focusModule.currentInfo.element = e.target;\n this.parent.focusModule.currentInfo.elementToFocus = e.target;\n addClass([target], ['e-focused', 'e-focus']);\n e.target.tabIndex = 0;\n }\n else {\n removeClass([target], ['e-focused', 'e-focus']);\n e.target.tabIndex = -1;\n }\n }\n };\n Group.prototype.clickHandler = function (e) {\n if (e.target.classList.contains('e-grouptext')) {\n this.groupTextFocus = true;\n }\n if (e.target.classList.contains('e-groupsort')) {\n this.groupSortFocus = true;\n }\n if (e.target.classList.contains('e-ungroupbutton')) {\n this.groupCancelFocus = true;\n }\n if (e.target.classList.contains('e-icon-grightarrow') || e.target.classList.contains('e-icon-gdownarrow')) {\n e.preventDefault();\n }\n var trgtEle = parentsUntil(e.target, 'e-recordplusexpand') ||\n parentsUntil(e.target, 'e-recordpluscollapse');\n if (trgtEle && (trgtEle.children[0].classList.contains('e-icon-gdownarrow') || trgtEle.children[0].classList.contains('e-icon-grightarrow'))) {\n this.expandCollapseRows(e.target);\n }\n this.applySortFromTarget(e.target);\n this.unGroupFromTarget(e.target);\n this.toogleGroupFromHeader(e.target);\n };\n Group.prototype.unGroupFromTarget = function (target) {\n if (target.classList.contains('e-ungroupbutton')) {\n this.ungroupColumn(target.parentElement.getAttribute('ej-mappingname'));\n }\n };\n Group.prototype.toogleGroupFromHeader = function (target) {\n if (this.groupSettings.showToggleButton) {\n if (target.classList.contains('e-grptogglebtn')) {\n if (target.classList.contains('e-toggleungroup')) {\n this.ungroupColumn(this.parent.getColumnByUid(target.parentElement.getAttribute('e-mappinguid')).field);\n }\n else {\n this.groupColumn(this.parent.getColumnByUid(target.parentElement.getAttribute('e-mappinguid')).field);\n }\n }\n else {\n if (target.classList.contains('e-toggleungroup')) {\n this.ungroupColumn(target.parentElement.getAttribute('ej-mappingname'));\n }\n }\n }\n };\n Group.prototype.applySortFromTarget = function (target) {\n var gObj = this.parent;\n var gHeader = closest(target, '.e-groupheadercell');\n if (gObj.allowSorting && gHeader && !target.classList.contains('e-ungroupbutton') &&\n !target.classList.contains('e-toggleungroup')) {\n var field = gHeader.firstElementChild.getAttribute('ej-mappingname');\n if (gObj.getColumnHeaderByField(field).getElementsByClassName('e-ascending').length) {\n gObj.sortColumn(field, 'Descending', true);\n }\n else {\n gObj.sortColumn(field, 'Ascending', true);\n }\n }\n };\n /**\n * Expands or collapses grouped rows by target element.\n *\n * @param {Element} target - Defines the target element of the grouped row.\n * @returns {void}\n */\n Group.prototype.expandCollapseRows = function (target) {\n var trgt = parentsUntil(target, 'e-recordplusexpand') ||\n parentsUntil(target, 'e-recordpluscollapse');\n if (trgt) {\n var rowNodes = this.parent.getContentTable().querySelector(literals.tbody).children;\n var isHide = void 0;\n var dataManager = void 0;\n var query = void 0;\n var gObj = this.parent;\n var indent = trgt.parentElement.getElementsByClassName('e-indentcell').length;\n var uid = trgt.parentElement.getAttribute('data-uid');\n var captionRow = gObj.getRowObjectFromUID(uid);\n var expand = false;\n if (trgt.classList.contains('e-recordpluscollapse')) {\n addClass([trgt], 'e-recordplusexpand');\n removeClass([trgt], 'e-recordpluscollapse');\n trgt.firstElementChild.className = 'e-icons e-gdiagonaldown e-icon-gdownarrow';\n trgt.firstElementChild.setAttribute('title', 'expanded');\n expand = true;\n captionRow.isExpand = true;\n if (isGroupAdaptive(gObj)) {\n this.updateVirtualRows(gObj, target, expand, query, dataManager);\n }\n if (this.parent.groupSettings.enableLazyLoading) {\n if ((this.parent.filterSettings.columns.length || this.parent.sortSettings.columns.length ||\n this.parent.searchSettings.key.length) && this.parent.getContent().firstElementChild.scrollTop === 0) {\n this.parent.contentModule.isTop = true;\n }\n (this.parent.enableVirtualization ? this.parent.lazyLoadRender :\n this.parent.contentModule).captionExpand(trgt.parentElement);\n }\n }\n else {\n isHide = true;\n captionRow.isExpand = false;\n removeClass([trgt], 'e-recordplusexpand');\n addClass([trgt], 'e-recordpluscollapse');\n trgt.firstElementChild.className = 'e-icons e-gnextforward e-icon-grightarrow';\n trgt.firstElementChild.setAttribute('title', 'collapsed');\n if (isGroupAdaptive(gObj)) {\n this.updateVirtualRows(gObj, target, !isHide, query, dataManager);\n }\n if (this.parent.groupSettings.enableLazyLoading) {\n (this.parent.enableVirtualization ? this.parent.lazyLoadRender :\n this.parent.contentModule).captionCollapse(trgt.parentElement);\n }\n }\n this.aria.setExpand(trgt, expand);\n if (!isGroupAdaptive(gObj) && !this.parent.groupSettings.enableLazyLoading) {\n var rowObjs = gObj.getRowsObject();\n var startIdx = rowObjs.indexOf(captionRow);\n var rowsState = {};\n var cacheStartIdx = gObj.enableInfiniteScrolling && gObj.infiniteScrollSettings &&\n gObj.infiniteScrollSettings.enableCache && rowObjs.length !== rowNodes.length ?\n Array.from(rowNodes).indexOf(trgt.parentElement) : undefined;\n for (var i = startIdx; i < rowObjs.length; i++) {\n if (i > startIdx && rowObjs[parseInt(i.toString(), 10)].indent === indent) {\n break;\n }\n if (rowObjs[parseInt(i.toString(), 10)].isDetailRow) {\n var visible = rowObjs[i - 1].isExpand && rowObjs[i - 1].visible;\n if (cacheStartIdx && cacheStartIdx > 0 && cacheStartIdx < rowNodes.length) {\n rowNodes[parseInt(cacheStartIdx.toString(), 10)].style.display = visible ? '' : 'none';\n }\n else if (isNullOrUndefined(cacheStartIdx)) {\n rowNodes[parseInt(i.toString(), 10)].style.display = visible ? '' : 'none';\n }\n }\n else if (rowsState[rowObjs[parseInt(i.toString(), 10)].parentUid] === false) {\n rowObjs[parseInt(i.toString(), 10)].visible = false;\n if (cacheStartIdx && cacheStartIdx > 0 && cacheStartIdx < rowNodes.length) {\n rowNodes[parseInt(cacheStartIdx.toString(), 10)].style.display = 'none';\n }\n else if (isNullOrUndefined(cacheStartIdx)) {\n rowNodes[parseInt(i.toString(), 10)].style.display = 'none';\n }\n }\n else {\n if (!(rowObjs[parseInt(i.toString(), 10)].isDataRow || rowObjs[parseInt(i.toString(), 10)].isCaptionRow\n || rowObjs[parseInt(i.toString(), 10)].isDetailRow || rowObjs[parseInt(i.toString(), 10)].isAggregateRow)) {\n var visible = rowObjs[parseInt(i.toString(), 10)].cells\n .some(function (cell) { return cell.isDataCell && cell.visible; });\n if (visible === rowObjs[parseInt(i.toString(), 10)].visible) {\n continue;\n }\n }\n rowObjs[parseInt(i.toString(), 10)].visible = true;\n if (cacheStartIdx && cacheStartIdx > 0 && cacheStartIdx < rowNodes.length) {\n rowNodes[parseInt(cacheStartIdx.toString(), 10)].style.display = '';\n rowNodes[parseInt(cacheStartIdx.toString(), 10)].classList.remove('e-hide');\n }\n else if (isNullOrUndefined(cacheStartIdx)) {\n rowNodes[parseInt(i.toString(), 10)].style.display = '';\n rowNodes[parseInt(i.toString(), 10)].classList.remove('e-hide');\n }\n }\n if (rowObjs[parseInt(i.toString(), 10)].isCaptionRow) {\n rowsState[rowObjs[parseInt(i.toString(), 10)].uid] = rowObjs[parseInt(i.toString(), 10)].isExpand\n && rowObjs[parseInt(i.toString(), 10)].visible;\n }\n if (!isNullOrUndefined(cacheStartIdx)) {\n cacheStartIdx++;\n }\n }\n this.lastCaptionRowBorder();\n this.parent.notify(events.refreshExpandandCollapse, { rows: this.parent.getRowsObject() });\n }\n if (!this.parent.enableInfiniteScrolling || !this.parent.groupSettings.enableLazyLoading) {\n this.parent.notify(events.captionActionComplete, { isCollapse: isHide, parentUid: uid });\n }\n }\n };\n Group.prototype.lastCaptionRowBorder = function () {\n var table = this.parent.getContentTable();\n var clientHeight = this.parent.getContent().clientHeight;\n if (!this.parent.enableVirtualization && !this.parent.enableInfiniteScrolling) {\n if (table.scrollHeight < clientHeight || this.isAppliedCaptionRowBorder) {\n if (this.isAppliedCaptionRowBorder) {\n var borderCells = table.querySelectorAll('.e-lastrowcell');\n for (var i = 0, len = borderCells.length; i < len; i++) {\n removeClass([borderCells[parseInt(i.toString(), 10)]], 'e-lastrowcell');\n }\n this.isAppliedCaptionRowBorder = false;\n }\n var rowNodes = this.parent.getContentTable().querySelector(literals.tbody).children;\n var lastRow = rowNodes[rowNodes.length - 1];\n if (lastRow.style.display !== 'none' && !lastRow.classList.contains('e-groupcaptionrow')) {\n if (table.scrollHeight < clientHeight) {\n addClass(table.querySelectorAll('tr:last-child td'), 'e-lastrowcell');\n this.isAppliedCaptionRowBorder = true;\n }\n }\n else {\n for (var i = rowNodes.length - 1, len = 0; i > len; i--) {\n if (rowNodes[parseInt(i.toString(), 10)].style.display !== 'none'\n && rowNodes[parseInt(i.toString(), 10)].classList.contains('e-groupcaptionrow')) {\n if (rowNodes[parseInt(i.toString(), 10)].querySelector('.e-recordpluscollapse')) {\n addClass(rowNodes[parseInt(i.toString(), 10)].childNodes, 'e-lastrowcell');\n this.isAppliedCaptionRowBorder = true;\n break;\n }\n }\n }\n }\n }\n }\n };\n Group.prototype.updateVirtualRows = function (gObj, target, isExpand, query, dataManager) {\n var rObj = gObj.getRowObjectFromUID(target.closest('tr').getAttribute('data-uid'));\n rObj.isExpand = isExpand;\n updatecloneRow(gObj);\n this.parent.notify(events.refreshVirtualMaxPage, {});\n query = gObj.getDataModule().generateQuery(false);\n query.queries = gObj.getDataModule().aggregateQuery(gObj.getQuery().clone()).queries;\n var args = { requestType: 'virtualscroll', rowObject: rObj };\n if (gObj.contentModule) {\n args.virtualInfo = gObj.contentModule.prevInfo;\n }\n dataManager = gObj.getDataModule().getData(args, query.requiresCount());\n dataManager.then(function (e) { return gObj.renderModule.dataManagerSuccess(e, args); });\n };\n Group.prototype.expandCollapse = function (isExpand) {\n if (!this.parent.groupSettings.columns.length) {\n return;\n }\n if (!isExpand) {\n this.parent.notify(events.initialCollapse, isExpand);\n }\n var rowNodes = this.parent.getContentTable().querySelector(literals.tbody).children;\n var rowObjs = this.parent.getRowsObject();\n var row;\n for (var i = 0, len = rowNodes.length; i < len; i++) {\n if (rowNodes[parseInt(i.toString(), 10)].querySelectorAll('.e-recordplusexpand, .e-recordpluscollapse').length) {\n row = rowNodes[parseInt(i.toString(), 10)].querySelector(isExpand ? '.e-recordpluscollapse' : '.e-recordplusexpand');\n if (row) {\n if (isExpand) {\n row.className = 'e-recordplusexpand';\n row.firstElementChild.className = 'e-icons e-gdiagonaldown e-icon-gdownarrow';\n row.setAttribute('aria-expanded', 'true');\n row.firstElementChild.setAttribute('title', 'expanded');\n }\n else {\n row.className = 'e-recordpluscollapse';\n row.firstElementChild.className = 'e-icons e-gnextforward e-icon-grightarrow';\n row.setAttribute('aria-expanded', 'false');\n row.firstElementChild.setAttribute('title', 'collapsed');\n }\n }\n if (!(rowNodes[parseInt(i.toString(), 10)].firstElementChild.classList.contains('e-recordplusexpand') ||\n rowNodes[parseInt(i.toString(), 10)].firstElementChild.classList.contains('e-recordpluscollapse'))) {\n rowNodes[parseInt(i.toString(), 10)].style.display = isExpand ? '' : 'none';\n }\n }\n else {\n rowNodes[parseInt(i.toString(), 10)].style.display = isExpand ? '' : 'none';\n }\n if (rowObjs[parseInt(i.toString(), 10)].isCaptionRow) {\n rowObjs[parseInt(i.toString(), 10)].isExpand = isExpand ? true : false;\n }\n }\n this.parent.updateVisibleExpandCollapseRows();\n this.lastCaptionRowBorder();\n this.parent.notify(events.refreshExpandandCollapse, { rows: this.parent.getRowsObject() });\n };\n /**\n * Expands all the grouped rows of the Grid.\n *\n * @returns {void}\n */\n Group.prototype.expandAll = function () {\n this.expandCollapse(true);\n };\n /**\n * Collapses all the grouped rows of the Grid.\n *\n * @returns {void}\n */\n Group.prototype.collapseAll = function () {\n this.expandCollapse(false);\n };\n /**\n * The function is used to render grouping\n *\n * @returns {void}\n * @hidden\n */\n Group.prototype.render = function () {\n this.l10n = this.serviceLocator.getService('localization');\n this.renderGroupDropArea();\n this.initDragAndDrop();\n this.refreshToggleBtn();\n this.wireEvent();\n };\n Group.prototype.renderGroupDropArea = function () {\n var groupElem = this.parent.element.querySelector('.e-groupdroparea');\n if (groupElem) {\n remove(groupElem);\n }\n this.element = this.parent.createElement('div', { className: 'e-groupdroparea', attrs: { 'tabindex': '-1' } });\n if (this.groupSettings.allowReordering) {\n this.element.classList.add('e-group-animate');\n }\n this.updateGroupDropArea();\n this.parent.element.insertBefore(this.element, this.parent.element.firstChild);\n if (!this.groupSettings.showDropArea) {\n this.element.style.display = 'none';\n }\n };\n Group.prototype.updateGroupDropArea = function (clear) {\n if (this.groupSettings.showDropArea && !this.groupSettings.columns.length) {\n var dragLabel = this.l10n.getConstant('GroupDropArea');\n this.element.innerHTML = dragLabel;\n this.element.classList.remove('e-grouped');\n }\n else {\n if ((this.element.innerHTML === this.l10n.getConstant('GroupDropArea') && (this.groupSettings.columns.length === 1\n || !this.isAppliedGroup && !this.isAppliedUnGroup)) || clear) {\n this.element.innerHTML = '';\n }\n this.element.classList.add('e-grouped');\n }\n };\n Group.prototype.initDragAndDrop = function () {\n this.initializeGHeaderDrop();\n this.initializeGHeaderDrag();\n };\n Group.prototype.initializeGHeaderDrag = function () {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var drag = new Draggable(this.element, {\n dragTarget: this.groupSettings.allowReordering ? '.e-drag' : '.e-groupheadercell',\n distance: this.groupSettings.allowReordering ? -10 : 5,\n helper: this.helper,\n dragStart: this.dragStart,\n drag: this.drag,\n dragStop: this.dragStop\n });\n };\n Group.prototype.initializeGHeaderDrop = function () {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var drop = new Droppable(this.element, {\n accept: '.e-dragclone',\n drop: this.drop\n });\n };\n /**\n * Groups a column by column name.\n *\n * @param {string} columnName - Defines the column name to group.\n * @returns {void}\n */\n Group.prototype.groupColumn = function (columnName) {\n var gObj = this.parent;\n var column = gObj.getColumnByField(columnName);\n if (isNullOrUndefined(column) || column.allowGrouping === false ||\n (this.contentRefresh && this.groupSettings.columns.indexOf(columnName) > -1)) {\n this.parent.log('action_disabled_column', { moduleName: this.getModuleName(), columnName: column.headerText });\n return;\n }\n if (isActionPrevent(gObj)) {\n gObj.notify(events.preventBatch, { instance: this, handler: this.groupColumn, arg1: columnName });\n return;\n }\n column.visible = gObj.groupSettings.showGroupedColumn;\n this.colName = columnName;\n this.isAppliedGroup = true;\n if (this.contentRefresh) {\n this.updateModel();\n }\n else {\n this.addColToGroupDrop(columnName);\n }\n this.updateGroupDropArea();\n this.isAppliedGroup = false;\n };\n /**\n * Ungroups a column by column name.\n *\n * @param {string} columnName - Defines the column name to ungroup.\n * @returns {void}\n */\n Group.prototype.ungroupColumn = function (columnName) {\n var gObj = this.parent;\n var column = this.parent.enableColumnVirtualization ?\n this.parent.columns.filter(function (c) { return c.field === columnName; })[0] : gObj.getColumnByField(columnName);\n if (isNullOrUndefined(column) || column.allowGrouping === false || this.groupSettings.columns.indexOf(columnName) < 0) {\n return;\n }\n if (isActionPrevent(gObj)) {\n gObj.notify(events.preventBatch, { instance: this, handler: this.ungroupColumn, arg1: columnName });\n return;\n }\n column.visible = true;\n this.colName = column.field;\n var columns = JSON.parse(JSON.stringify(this.groupSettings.columns));\n columns.splice(columns.indexOf(this.colName), 1);\n if (this.sortedColumns.indexOf(columnName) < 0) {\n for (var i = 0, len = gObj.sortSettings.columns.length; i < len; i++) {\n if (columnName === gObj.sortSettings.columns[parseInt(i.toString(), 10)].field) {\n gObj.sortSettings.columns.splice(i, 1);\n break;\n }\n }\n }\n if (this.groupSettings.allowReordering) {\n this.reorderingColumns = columns;\n }\n this.groupSettings.columns = columns;\n if (gObj.allowGrouping) {\n this.isAppliedUnGroup = true;\n this.parent.dataBind();\n }\n };\n /**\n * The function used to update groupSettings\n *\n * @returns {void}\n * @hidden\n */\n Group.prototype.updateModel = function () {\n var columns = JSON.parse(JSON.stringify(this.groupSettings.columns));\n columns = this.reorderingColumns.length ? JSON.parse(JSON.stringify(this.reorderingColumns)) : columns;\n if (this.sortRequired) {\n if (columns.indexOf(this.colName) === -1) {\n columns.push(this.colName);\n }\n this.groupAddSortingQuery(this.colName);\n }\n this.sortRequired = true;\n this.parent.groupSettings.columns = columns;\n this.parent.dataBind();\n };\n /**\n * The function used to trigger onActionComplete\n *\n * @param {NotifyArgs} e - specifies the NotifyArgs\n * @returns {void}\n * @hidden\n */\n Group.prototype.onActionComplete = function (e) {\n if (e.requestType === 'grouping') {\n this.addColToGroupDrop(this.colName);\n }\n else {\n this.removeColFromGroupDrop(this.colName);\n }\n var args = this.groupSettings.columns.indexOf(this.colName) > -1 ? {\n columnName: this.colName, requestType: 'grouping', type: events.actionComplete\n } : { requestType: 'ungrouping', type: events.actionComplete };\n this.parent.trigger(events.actionComplete, extend(e, args));\n this.colName = null;\n };\n Group.prototype.groupAddSortingQuery = function (colName) {\n var i = 0;\n while (i < this.parent.sortSettings.columns.length) {\n if (this.parent.sortSettings.columns[parseInt(i.toString(), 10)].field === colName) {\n break;\n }\n i++;\n }\n if (this.parent.sortSettings.columns.length === i) {\n this.parent.sortSettings.columns.push({ field: colName, direction: 'Ascending', isFromGroup: true });\n }\n else if (!this.parent.allowSorting) {\n this.parent.sortSettings.columns[parseInt(i.toString(), 10)].direction = 'Ascending';\n }\n };\n Group.prototype.createElement = function (field) {\n var gObj = this.parent;\n var direction = 'Ascending';\n var animator = this.parent.createElement('div', { className: 'e-grid-icon e-group-animator' });\n var groupedColumn = this.parent.createElement('div', { className: 'e-grid-icon e-groupheadercell' });\n var childDiv = this.parent.createElement('div', { attrs: { 'ej-mappingname': field } });\n if (isComplexField(field)) {\n childDiv.setAttribute('ej-complexname', getComplexFieldID(field));\n }\n var column = this.parent.getColumnByField(field);\n //Todo headerTemplateID for grouped column, disableHtmlEncode\n var headerCell = gObj.getColumnHeaderByUid(column.uid);\n // if (!isNullOrUndefined(column.headerTemplate)) {\n // if (column.headerTemplate.indexOf('#') !== -1) {\n // childDiv.innerHTML = document.querySelector(column.headerTemplate).innerHTML.trim();\n // } else {\n // childDiv.innerHTML = column.headerTemplate;\n // }\n // childDiv.firstElementChild.classList.add('e-grouptext');\n // } else {\n if (this.groupSettings.allowReordering) {\n childDiv.appendChild(this.parent.createElement('span', {\n className: 'e-drag e-icons e-icon-drag', innerHTML: ' ',\n attrs: { title: 'Drag', tabindex: '-1', 'aria-label': this.l10n.getConstant('GroupedDrag') }\n }));\n }\n childDiv.appendChild(this.parent.createElement('span', {\n className: 'e-grouptext', innerHTML: column.headerText,\n attrs: { tabindex: '-1', 'aria-label': this.l10n.getConstant('GroupedSortIcon') + column.headerText }\n }));\n // }\n if (this.groupSettings.showToggleButton) {\n childDiv.appendChild(this.parent.createElement('span', {\n className: 'e-togglegroupbutton e-icons e-icon-ungroup e-toggleungroup', innerHTML: ' ',\n attrs: { tabindex: '-1', 'aria-label': this.l10n.getConstant('UnGroupAria') }\n }));\n }\n if (headerCell.querySelectorAll('.e-ascending,.e-descending').length) {\n direction = headerCell.querySelector('.e-ascending') ? 'Ascending' : 'Descending';\n }\n childDiv.appendChild(this.parent.createElement('span', {\n className: 'e-groupsort e-icons ' +\n ('e-' + direction.toLowerCase() + ' e-icon-' + direction.toLowerCase()), innerHTML: ' ',\n attrs: { tabindex: '-1', 'aria-label': this.l10n.getConstant('GroupedSortIcon') + column.headerText, role: 'button' }\n }));\n childDiv.appendChild(this.parent.createElement('span', {\n className: 'e-ungroupbutton e-icons e-icon-hide', innerHTML: ' ',\n attrs: { title: this.l10n.getConstant('UnGroup'),\n tabindex: '-1', 'aria-label': this.l10n.getConstant('UnGroupIcon') + column.headerText, role: 'button' },\n styles: this.groupSettings.showUngroupButton ? '' : 'display:none'\n }));\n groupedColumn.appendChild(childDiv);\n if (this.groupSettings.allowReordering) {\n animator.appendChild(groupedColumn);\n animator.appendChild(this.createSeparator());\n groupedColumn = animator;\n }\n return groupedColumn;\n };\n Group.prototype.addColToGroupDrop = function (field) {\n var groupElem = isComplexField(field) ? this.parent.element.querySelector('.e-groupdroparea div[ej-complexname=' +\n getComplexFieldID(field) + ']') : this.parent.element.querySelector('.e-groupdroparea div[ej-mappingname=' + field + ']');\n if (this.groupSettings.allowReordering && groupElem) {\n return;\n }\n var column = this.parent.getColumnByField(field);\n if (isNullOrUndefined(column)) {\n return;\n }\n var groupedColumn = this.createElement(field);\n if (this.groupSettings.allowReordering) {\n var index = this.element.getElementsByClassName('e-group-animator').length;\n groupedColumn.setAttribute('index', index.toString());\n }\n this.element.appendChild(groupedColumn);\n var focusModule = this.parent.focusModule;\n focusModule.setActive(true);\n var firstContentCellIndex = [0, 0];\n if (focusModule.active.matrix.matrix[firstContentCellIndex[0]][firstContentCellIndex[1]] === 0) {\n firstContentCellIndex = findCellIndex(focusModule.active.matrix.matrix, firstContentCellIndex, true);\n }\n focusModule.active.matrix.current = firstContentCellIndex;\n focusModule.active.getTable().rows[focusModule.active.matrix.current[0]].cells[focusModule.active.matrix.current[1]].focus();\n //Todo: rtl\n };\n Group.prototype.createSeparator = function () {\n return this.parent.createElement('span', {\n className: 'e-nextgroup e-icons e-icon-next', innerHTML: ' ',\n attrs: { tabindex: '-1', 'aria-label': this.l10n.getConstant('GroupSeperator') },\n styles: this.groupSettings.showUngroupButton ? '' : 'display:none'\n });\n };\n Group.prototype.refreshToggleBtn = function (isRemove) {\n if (this.groupSettings.showToggleButton) {\n var headers = [].slice.call(this.parent.getHeaderTable().getElementsByClassName('e-headercelldiv'));\n for (var i = 0, len = headers.length; i < len; i++) {\n if (!((headers[parseInt(i.toString(), 10)].classList.contains('e-emptycell')) || (headers[parseInt(i.toString(), 10)].classList.contains('e-headerchkcelldiv')))) {\n var column = this.parent.getColumnByUid(headers[parseInt(i.toString(), 10)].getAttribute('e-mappinguid'));\n if (!this.parent.showColumnMenu || (this.parent.showColumnMenu && !column.showColumnMenu)) {\n if (headers[parseInt(i.toString(), 10)].getElementsByClassName('e-grptogglebtn').length) {\n remove(headers[parseInt(i.toString(), 10)].querySelectorAll('.e-grptogglebtn')[0]);\n }\n if (!isRemove) {\n headers[parseInt(i.toString(), 10)].appendChild(this.parent.createElement('span', {\n className: 'e-grptogglebtn e-icons ' + (this.groupSettings.columns.indexOf(column.field) > -1 ?\n 'e-toggleungroup e-icon-ungroup' : 'e-togglegroup e-icon-group'), attrs: { tabindex: '-1',\n 'aria-label': isNullOrUndefined(this.l10n) ? this.parent.localeObj.getConstant('GroupButton')\n : this.l10n.getConstant('GroupButton') }\n }));\n }\n }\n }\n }\n }\n };\n Group.prototype.removeColFromGroupDrop = function (field) {\n if (!isNullOrUndefined(this.getGHeaderCell(field))) {\n var elem = this.getGHeaderCell(field);\n if (this.groupSettings.allowReordering) {\n var parent_1 = parentsUntil(elem, 'e-group-animator');\n remove(parent_1);\n }\n else {\n remove(elem);\n }\n this.updateGroupDropArea();\n }\n this.isAppliedUnGroup = false;\n };\n Group.prototype.onPropertyChanged = function (e) {\n if (e.module !== this.getModuleName()) {\n return;\n }\n for (var _i = 0, _a = Object.keys(e.properties); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'columns':\n // eslint-disable-next-line no-case-declarations\n var args = void 0;\n if (this.contentRefresh) {\n if (!this.isAppliedUnGroup) {\n if (!this.isAppliedGroup) {\n this.updateGroupDropArea(true);\n for (var j = 0; j < this.parent.sortSettings.columns.length; j++) {\n if (this.parent.sortSettings.columns[parseInt(j.toString(), 10)].isFromGroup) {\n this.parent.sortSettings.columns.splice(j, 1);\n j--;\n }\n }\n for (var i = 0; i < this.groupSettings.columns.length; i++) {\n this.colName = this.groupSettings.columns[parseInt(i.toString(), 10)];\n var col = this.parent.getColumnByField(this.colName);\n col.visible = this.parent.groupSettings.showGroupedColumn;\n this.groupAddSortingQuery(this.colName);\n if (i < this.groupSettings.columns.length - 1) {\n this.addColToGroupDrop(this.groupSettings.columns[parseInt(i.toString(), 10)]);\n }\n }\n }\n args = {\n columnName: this.colName, requestType: e.properties[\"\" + prop].length ? 'grouping' : 'ungrouping',\n type: events.actionBegin\n };\n }\n else {\n args = { columnName: this.colName, requestType: 'ungrouping', type: events.actionBegin };\n }\n if (!this.groupSettings.showGroupedColumn) {\n var columns = e.oldProperties[\"\" + prop];\n for (var i = 0; i < columns.length; i++) {\n if (e.properties[\"\" + prop].indexOf(columns[parseInt(i.toString(), 10)]) === -1) {\n this.parent.getColumnByField(columns[parseInt(i.toString(), 10)]).visible = true;\n }\n }\n }\n this.parent.notify(events.modelChanged, args);\n }\n break;\n case 'showDropArea':\n this.updateGroupDropArea();\n if (this.groupSettings.showDropArea) {\n this.element.style.display = '';\n this.parent.headerModule.refreshUI();\n }\n else {\n this.element.style.display = 'none';\n }\n break;\n case 'showGroupedColumn':\n this.updateGroupedColumn(this.groupSettings.showGroupedColumn);\n this.parent.notify(events.modelChanged, { requestType: 'refresh' });\n break;\n case 'showUngroupButton':\n this.updateButtonVisibility(this.groupSettings.showUngroupButton, 'e-ungroupbutton');\n break;\n case 'showToggleButton':\n this.updateButtonVisibility(this.groupSettings.showToggleButton, 'e-togglegroupbutton ');\n this.parent.refreshHeader();\n break;\n case 'enableLazyLoading':\n this.parent.freezeRefresh();\n break;\n }\n }\n };\n Group.prototype.updateGroupedColumn = function (isVisible) {\n for (var i = 0; i < this.groupSettings.columns.length; i++) {\n this.parent.getColumnByField(this.groupSettings.columns[parseInt(i.toString(), 10)]).visible = isVisible;\n }\n };\n Group.prototype.updateButtonVisibility = function (isVisible, className) {\n var gHeader = [].slice.call(this.element.getElementsByClassName(className));\n for (var i = 0; i < gHeader.length; i++) {\n gHeader[parseInt(i.toString(), 10)].style.display = isVisible ? '' : 'none';\n }\n };\n Group.prototype.enableAfterRender = function (e) {\n if (e.module === this.getModuleName() && e.enable) {\n this.render();\n }\n };\n /**\n * To destroy the reorder\n *\n * @returns {void}\n * @hidden\n */\n Group.prototype.destroy = function () {\n var gridElement = this.parent.element;\n if (!gridElement || (!gridElement.querySelector('.' + literals.gridHeader) && !gridElement.querySelector('.' + literals.gridContent))) {\n return;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if ((this.parent.isDestroyed || !this.parent.allowGrouping) && !this.parent.refreshing) {\n this.clearGrouping();\n }\n this.unWireEvent();\n this.removeEventListener();\n this.refreshToggleBtn(true);\n if (this.element.parentNode) {\n remove(this.element);\n }\n //call ejdrag and drop destroy\n };\n /**\n * Clears all the grouped columns of the Grid.\n *\n * @returns {void}\n */\n Group.prototype.clearGrouping = function () {\n var cols = JSON.parse(JSON.stringify(this.groupSettings.columns));\n this.contentRefresh = false;\n for (var i = 0, len = cols.length; i < len; i++) {\n if (i === (len - 1)) {\n this.contentRefresh = true;\n }\n this.ungroupColumn(cols[parseInt(i.toString(), 10)]);\n }\n this.contentRefresh = true;\n };\n /**\n * For internal use only - Get the module name.\n *\n * @returns {string} returns the module name\n * @private\n */\n Group.prototype.getModuleName = function () {\n return 'group';\n };\n Group.prototype.refreshSortIcons = function () {\n var gObj = this.parent;\n var header;\n var cols = gObj.sortSettings.columns;\n var gCols = gObj.groupSettings.columns;\n var fieldNames = this.parent.getColumns().map(function (c) { return c.field; });\n this.refreshToggleBtn();\n for (var i = 0, len = cols.length; i < len; i++) {\n if (fieldNames.indexOf(cols[parseInt(i.toString(), 10)].field) === -1) {\n continue;\n }\n header = gObj.getColumnHeaderByField(cols[parseInt(i.toString(), 10)].field);\n if (!gObj.allowSorting && (this.sortedColumns.indexOf(cols[parseInt(i.toString(), 10)].field) > -1 ||\n this.groupSettings.columns.indexOf(cols[parseInt(i.toString(), 10)].field) > -1)) {\n classList(header.querySelector('.e-sortfilterdiv'), ['e-ascending', 'e-icon-ascending'], []);\n if (cols.length > 1) {\n header.querySelector('.e-headercelldiv').appendChild(this.parent.createElement('span', { className: 'e-sortnumber', innerHTML: (i + 1).toString() }));\n }\n }\n else if (this.getGHeaderCell(cols[parseInt(i.toString(), 10)].field) && this.getGHeaderCell(cols[parseInt(i.toString(), 10)].field).getElementsByClassName('e-groupsort').length) {\n if (cols[parseInt(i.toString(), 10)].direction === 'Ascending') {\n classList(this.getGHeaderCell(cols[parseInt(i.toString(), 10)].field).querySelector('.e-groupsort'), ['e-ascending', 'e-icon-ascending'], ['e-descending', 'e-icon-descending']);\n }\n else {\n classList(this.getGHeaderCell(cols[parseInt(i.toString(), 10)].field).querySelector('.e-groupsort'), ['e-descending', 'e-icon-descending'], ['e-ascending', 'e-icon-ascending']);\n }\n }\n }\n for (var i = 0, len = gCols.length; i < len; i++) {\n if (fieldNames.indexOf(gCols[parseInt(i.toString(), 10)]) === -1) {\n continue;\n }\n gObj.getColumnHeaderByField(gCols[parseInt(i.toString(), 10)]).setAttribute('aria-grouped', 'true');\n }\n };\n Group.prototype.getGHeaderCell = function (field) {\n if (this.element && this.element.querySelector('[ej-mappingname=\"' + field + '\"]')) {\n return this.element.querySelector('[ej-mappingname=\"' + field + '\"]').parentElement;\n }\n return null;\n };\n Group.prototype.onGroupAggregates = function (editedData) {\n if (this.parent.groupSettings.enableLazyLoading) {\n if (this.parent.editSettings.mode !== 'Batch') {\n this.updateLazyLoadGroupAggregates(editedData);\n }\n return;\n }\n var aggregates = this.iterateGroupAggregates(editedData);\n var rowData = this.groupGenerator.generateRows(aggregates, {});\n var summaryRows = this.parent.getRowsObject().filter(function (row) { return !row.isDataRow; });\n var updateSummaryRows = rowData.filter(function (data) { return !data.isDataRow; });\n if (this.parent.isReact || this.parent.isVue) {\n this.parent.destroyTemplate(['groupFooterTemplate', 'groupCaptionTemplate', 'footerTemplate']);\n }\n for (var i = 0; i < updateSummaryRows.length; i++) {\n var row = updateSummaryRows[parseInt(i.toString(), 10)];\n var cells = row.cells.filter(function (cell) { return cell.isDataCell; });\n var args = { cells: cells, data: row.data, dataUid: summaryRows[parseInt(i.toString(), 10)] ? summaryRows[parseInt(i.toString(), 10)].uid : '' };\n this.parent.notify(events.refreshAggregateCell, args);\n }\n };\n Group.prototype.updateLazyLoadGroupAggregates = function (data, remoteResult) {\n var _this = this;\n var groupCaptionTemplates = this.getGroupAggregateTemplates(true);\n var groupFooterTemplates = this.getGroupAggregateTemplates(false);\n if (!groupCaptionTemplates.length && !groupFooterTemplates.length) {\n return;\n }\n var gObj = this.parent;\n var isRemote = gObj.getDataModule().isRemote();\n var updatedData = data[0];\n var editedRow = data.row;\n var groupedCols = gObj.groupSettings.columns;\n var groupLazyLoadRenderer = gObj.contentModule;\n var groupCache = groupLazyLoadRenderer.getGroupCache();\n var currentPageGroupCache = groupCache[gObj.pageSettings.currentPage];\n var result = remoteResult ? remoteResult : [];\n var _loop_1 = function (i) {\n var groupField = groupedCols[parseInt(i.toString(), 10)];\n var groupKey = updatedData[\"\" + groupField];\n var groupCaptionRowObject = this_1.getGroupCaptionRowObject(editedRow, groupedCols.length - i);\n if (isRemote && result.length) {\n if (i !== 0) {\n var prevGroupField = groupedCols[i - 1];\n var prevGroupKey_1 = updatedData[\"\" + prevGroupField];\n result = result.find(function (data) {\n return data.key === prevGroupKey_1;\n }).items;\n }\n this_1.updateLazyLoadGroupAggregatesRow(result, groupKey, groupCaptionRowObject, currentPageGroupCache, groupCaptionTemplates, groupFooterTemplates);\n }\n else {\n var query = gObj.renderModule.data.generateQuery();\n if (i !== 0) {\n var currentLevelCaptionRowObjects = currentPageGroupCache.filter(function (data) {\n return data.isCaptionRow && data.parentUid === groupCaptionRowObject.parentUid;\n });\n var index = currentLevelCaptionRowObjects.indexOf(groupCaptionRowObject);\n var fields = gObj.groupSettings.columns.slice(0, i).reverse();\n var keys = fields.map(function (data) {\n return updatedData[\"\" + data];\n });\n var pred = generateExpandPredicates(fields, keys, groupLazyLoadRenderer);\n var predicateList = getPredicates(pred);\n var lazyLoad = { level: i, skip: index, take: 1, where: predicateList };\n query.lazyLoad.push({ key: 'onDemandGroupInfo', value: lazyLoad });\n }\n gObj.renderModule.data.getData({}, query).then(function (e) {\n if (isRemote) {\n _this.updateLazyLoadGroupAggregates(data, e.result);\n }\n else {\n _this.updateLazyLoadGroupAggregatesRow(e.result, groupKey, groupCaptionRowObject, currentPageGroupCache, groupCaptionTemplates, groupFooterTemplates);\n }\n if (i === groupedCols.length - 1 || isRemote) {\n _this.destroyRefreshGroupCaptionFooterTemplate();\n }\n }).catch(function (e) { return gObj.renderModule.dataManagerFailure(e, { requestType: 'grouping' }); });\n if (isRemote) {\n return \"break\";\n }\n }\n };\n var this_1 = this;\n for (var i = 0; i < groupedCols.length; i++) {\n var state_1 = _loop_1(i);\n if (state_1 === \"break\")\n break;\n }\n };\n Group.prototype.destroyRefreshGroupCaptionFooterTemplate = function () {\n var gObj = this.parent;\n if (gObj.isAngular || gObj.isReact || gObj.isVue) {\n gObj.destroyTemplate(['groupCaptionTemplate', 'groupFooterTemplate']);\n }\n gObj.refreshGroupCaptionFooterTemplate();\n gObj.removeMaskRow();\n gObj.hideSpinner();\n };\n Group.prototype.updateLazyLoadGroupAggregatesRow = function (result, groupKey, groupCaptionRowObject, currentPageGroupCache, groupCaptionTemplates, groupFooterTemplates) {\n var updatedGroupCaptionData = result.find(function (data) {\n return data.key === groupKey;\n });\n if (groupCaptionTemplates.length) {\n this.updateLazyLoadGroupAggregatesCell(updatedGroupCaptionData, groupCaptionRowObject, groupCaptionTemplates);\n }\n if (groupFooterTemplates.length) {\n var groupFooterRowObject = currentPageGroupCache.find(function (data) {\n return data.isAggregateRow && data.parentUid === groupCaptionRowObject.uid;\n });\n this.updateLazyLoadGroupAggregatesCell(updatedGroupCaptionData, groupFooterRowObject, groupFooterTemplates);\n }\n };\n Group.prototype.updateLazyLoadGroupAggregatesCell = function (updatedGroupCaptionData, captionFooterRowObject, captionFooterTemplates) {\n var prevCaptionFooterData = captionFooterRowObject.data;\n var updatedGroupCaptionDataAggregates = updatedGroupCaptionData.aggregates;\n if (captionFooterRowObject.isCaptionRow) {\n prevCaptionFooterData.aggregates = updatedGroupCaptionDataAggregates;\n }\n for (var i = 0; i < captionFooterTemplates.length; i++) {\n var template = captionFooterTemplates[parseInt(i.toString(), 10)];\n var key = template.field + ' - ' + template.type;\n var fieldData = prevCaptionFooterData[template.field];\n fieldData[\"\" + key] = updatedGroupCaptionDataAggregates[\"\" + key];\n fieldData[capitalizeFirstLetter(template.type)] = updatedGroupCaptionDataAggregates[\"\" + key];\n if (fieldData[template.type]) {\n fieldData[template.type] = updatedGroupCaptionDataAggregates[\"\" + key];\n }\n }\n };\n Group.prototype.getGroupCaptionRowObject = function (element, groupCaptionIndex) {\n var gObj = this.parent;\n var uid = element.getAttribute('data-uid');\n var parentCaptionRowObject = gObj.getRowObjectFromUID(uid);\n for (var i = 0; i < groupCaptionIndex; i++) {\n parentCaptionRowObject = gObj.getRowObjectFromUID(parentCaptionRowObject.parentUid);\n }\n return parentCaptionRowObject;\n };\n /**\n * @param { boolean } groupCaptionTemplate - Defines template either group caption or footer\n * @returns { Object[] } - Returns template array\n * @hidden\n */\n Group.prototype.getGroupAggregateTemplates = function (groupCaptionTemplate) {\n var aggregates = [];\n var aggregateRows = this.parent.aggregates;\n for (var j = 0; j < aggregateRows.length; j++) {\n var row = aggregateRows[parseInt(j.toString(), 10)];\n for (var k = 0; k < row.columns.length; k++) {\n if ((groupCaptionTemplate && row.columns[parseInt(k.toString(), 10)].groupCaptionTemplate)\n || (!groupCaptionTemplate && row.columns[parseInt(k.toString(), 10)].groupFooterTemplate)) {\n var aggr = {};\n var type = row.columns[parseInt(k.toString(), 10)].type.toString();\n aggr = { type: type.toLowerCase(), field: row.columns[parseInt(k.toString(), 10)].field };\n aggregates.push(aggr);\n }\n }\n }\n return aggregates;\n };\n Group.prototype.iterateGroupAggregates = function (editedData) {\n var updatedData = editedData instanceof Array ? editedData : [];\n var rows = this.parent.getRowsObject();\n var initData = this.parent.getCurrentViewRecords();\n var deletedCols = [];\n var changeds = rows.map(function (row) {\n if (row.edit === 'delete') {\n deletedCols.push(row.data);\n }\n return row.changes instanceof Object ? row.changes : row.data;\n });\n var field = this.parent.getPrimaryKeyFieldNames()[0];\n changeds = updatedData.length === 0 ? changeds : updatedData;\n var mergeData = initData.map(function (item) {\n var pKeyVal = DataUtil.getObject(field, item);\n var value;\n var hasVal = changeds.some(function (cItem) {\n value = cItem;\n return pKeyVal === DataUtil.getObject(field, cItem);\n });\n return hasVal ? value : item;\n });\n var eData = editedData;\n if (!(eData.type && eData.type === 'cancel') && deletedCols.length > 0) {\n for (var i = 0; i < deletedCols.length; i++) {\n var index = mergeData.indexOf(deletedCols[parseInt(i.toString(), 10)]);\n mergeData.splice(index, 1);\n }\n }\n var aggregates = [];\n var aggregateRows = this.parent.aggregates;\n for (var j = 0; j < aggregateRows.length; j++) {\n var row = aggregateRows[parseInt(j.toString(), 10)];\n for (var k = 0; k < row.columns.length; k++) {\n var aggr = {};\n var type = row.columns[parseInt(k.toString(), 10)].type.toString();\n aggr = { type: type.toLowerCase(), field: row.columns[parseInt(k.toString(), 10)].field };\n aggregates.push(aggr);\n }\n }\n var result;\n var aggrds;\n var groupedCols = this.parent.groupSettings.columns;\n for (var l = 0; l < groupedCols.length; l++) {\n aggrds = result ? result : mergeData;\n result = DataUtil.group(aggrds, groupedCols[parseInt(l.toString(), 10)], aggregates, null, null);\n }\n return result;\n };\n Group.prototype.updateExpand = function (args) {\n var uid = args.uid;\n var isExpand = args.isExpand;\n var rows = this.parent.getRowsObject();\n for (var i = 0; i < rows.length; i++) {\n var row = rows[parseInt(i.toString(), 10)];\n if (row.uid === uid || isNullOrUndefined(uid)) {\n row.isExpand = isExpand;\n var _loop_2 = function (j) {\n var childRow = rows[parseInt(j.toString(), 10)];\n var closestParent = void 0;\n if (childRow.parentUid !== row.uid) {\n closestParent = rows.filter(function (x) { return x.uid === childRow.parentUid; })[0];\n }\n if (childRow.parentUid === row.uid) {\n childRow.visible = row.isExpand;\n }\n else if (!isNullOrUndefined(closestParent) && childRow.parentUid === closestParent.uid) {\n if (closestParent.isExpand && closestParent.visible === true) {\n childRow.visible = true;\n }\n else if (closestParent.isExpand && closestParent.visible === false) {\n childRow.visible = false;\n }\n }\n if (isNullOrUndefined(uid)) {\n return \"break\";\n }\n };\n for (var j = i + 1; j < rows.length; j++) {\n var state_2 = _loop_2(j);\n if (state_2 === \"break\")\n break;\n }\n }\n }\n this.parent.notify(events.contentReady, { rows: rows, args: { isFrozen: false, rows: rows } });\n };\n return Group;\n}());\nexport { Group };\n","import { EventHandler, extend, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { remove, select, removeClass } from '@syncfusion/ej2-base';\nimport { Toolbar as tool } from '@syncfusion/ej2-navigations';\nimport * as events from '../base/constant';\nimport { templateCompiler, appendChildren, parentsUntil, addRemoveEventListener } from '../base/util';\nimport { ResponsiveToolbarAction } from '../base/enum';\nimport { SearchBox } from '../services/focus-strategy';\n/**\n *\n * The `Toolbar` module is used to handle ToolBar actions.\n */\nvar Toolbar = /** @class */ (function () {\n function Toolbar(parent, serviceLocator) {\n this.predefinedItems = {};\n this.isSearched = false;\n this.items = ['Add', 'Edit', 'Update', 'Delete', 'Cancel', 'Print', 'Search',\n 'ColumnChooser', 'PdfExport', 'ExcelExport', 'CsvExport', 'WordExport'];\n this.parent = parent;\n this.gridID = parent.element.id;\n this.serviceLocator = serviceLocator;\n this.addEventListener();\n }\n Toolbar.prototype.render = function () {\n this.l10n = this.serviceLocator.getService('localization');\n var preItems = ['Add', 'Edit', 'Update', 'Delete', 'Cancel', 'Print',\n 'PdfExport', 'ExcelExport', 'WordExport', 'CsvExport'];\n var isAdaptive = this.parent.enableAdaptiveUI;\n var excludingItems = ['Edit', 'Delete', 'Update', 'Cancel'];\n for (var _i = 0, preItems_1 = preItems; _i < preItems_1.length; _i++) {\n var item = preItems_1[_i];\n var itemStr = item.toLowerCase();\n var localeName = itemStr[0].toUpperCase() + itemStr.slice(1);\n this.predefinedItems[\"\" + item] = {\n id: this.gridID + '_' + itemStr, prefixIcon: 'e-' + itemStr,\n text: this.l10n.getConstant(localeName), tooltipText: this.l10n.getConstant(localeName)\n };\n if (isAdaptive) {\n this.predefinedItems[\"\" + item].text = '';\n this.predefinedItems[\"\" + item].visible = excludingItems.indexOf(item) === -1;\n }\n }\n this.predefinedItems.Search = {\n id: this.gridID + '_search',\n tooltipText: this.l10n.getConstant('Search'), align: 'Right', cssClass: 'e-search-wrapper',\n type: 'Input'\n };\n this.predefinedItems.ColumnChooser = {\n id: this.gridID + '_' + 'columnchooser', cssClass: 'e-cc e-ccdiv e-cc-toolbar', suffixIcon: 'e-' + 'columnchooser-btn',\n text: isAdaptive ? '' : this.l10n.getConstant('Columnchooser'),\n tooltipText: this.l10n.getConstant('Columnchooser'), align: 'Right'\n };\n if (this.parent.rowRenderingMode === 'Vertical') {\n if (this.parent.allowFiltering && this.parent.filterSettings.type !== 'FilterBar') {\n this.predefinedItems.responsiveFilter = {\n id: this.gridID + '_' + 'responsivefilter', cssClass: 'e-gridresponsiveicons e-icons',\n suffixIcon: 'e-' + 'resfilter-icon', tooltipText: this.l10n.getConstant('FilterButton')\n };\n }\n if (this.parent.allowSorting) {\n this.predefinedItems.responsiveSort = {\n id: this.gridID + '_' + 'responsivesort', cssClass: 'e-gridresponsiveicons e-icons',\n suffixIcon: 'e-' + 'ressort-icon', tooltipText: this.l10n.getConstant('Sort')\n };\n }\n }\n if (this.parent.enableAdaptiveUI && this.parent.toolbar && this.parent.toolbar.indexOf('Search') > -1) {\n this.predefinedItems.responsiveBack = {\n id: this.gridID + '_' + 'responsiveback', cssClass: 'e-gridresponsiveicons e-icons',\n suffixIcon: 'e-' + 'resback-icon', visible: false\n };\n }\n this.createToolbar();\n };\n /**\n * Gets the toolbar of the Grid.\n *\n * @returns {Element} returns the element\n * @hidden\n */\n Toolbar.prototype.getToolbar = function () {\n return this.toolbar.element;\n };\n /**\n * Destroys the ToolBar.\n *\n * @function destroy\n * @returns {void}\n */\n Toolbar.prototype.destroy = function () {\n if (this.toolbar && !this.toolbar.isDestroyed) {\n if (!this.toolbar.element) {\n this.parent.destroyTemplate(['toolbarTemplate']);\n if (this.parent.isReact) {\n this.parent.renderTemplates();\n }\n }\n else {\n this.toolbar.off('render-react-toolbar-template', this.addReactToolbarPortals);\n this.toolbar.destroy();\n }\n this.unWireEvent();\n this.removeEventListener();\n if (this.element.parentNode) {\n remove(this.element);\n }\n }\n };\n Toolbar.prototype.bindSearchEvents = function () {\n this.searchElement = select('#' + this.gridID + '_searchbar', this.element);\n this.wireEvent();\n this.refreshToolbarItems();\n if (this.parent.searchSettings) {\n this.updateSearchBox();\n }\n };\n Toolbar.prototype.toolbarCreated = function (isNormal) {\n if (this.element.querySelector('.e-search-wrapper')) {\n if (!this.parent.enableAdaptiveUI || isNormal) {\n var classList = this.parent.cssClass ? 'e-input-group e-search ' + this.parent.cssClass\n : 'e-input-group e-search';\n this.element.querySelector('.e-search-wrapper').innerHTML = '
      \\\n \\\n \\\n \\\n
      ';\n }\n else {\n this.element.querySelector('.e-search-wrapper').innerHTML = '\\\n \\\n ';\n }\n }\n this.bindSearchEvents();\n };\n Toolbar.prototype.createToolbar = function () {\n var items = this.getItems();\n this.toolbar = new tool({\n items: items,\n clicked: this.toolbarClickHandler.bind(this),\n enablePersistence: this.parent.enablePersistence,\n enableRtl: this.parent.enableRtl,\n created: this.toolbarCreated.bind(this),\n cssClass: this.parent.cssClass ? this.parent.cssClass : ''\n });\n this.toolbar.isReact = this.parent.isReact;\n this.toolbar.on('render-react-toolbar-template', this.addReactToolbarPortals, this);\n var isStringTemplate = 'isStringTemplate';\n this.toolbar[\"\" + isStringTemplate] = true;\n var viewStr = 'viewContainerRef';\n var registerTemp = 'registeredTemplate';\n if (this.parent[\"\" + viewStr]) {\n this.toolbar[\"\" + registerTemp] = {};\n this.toolbar[\"\" + viewStr] = this.parent[\"\" + viewStr];\n }\n this.element = this.parent.createElement('div', { id: this.gridID + '_toolbarItems' });\n if (this.parent.enableAdaptiveUI) {\n this.element.classList.add('e-res-toolbar');\n }\n if (this.parent.toolbarTemplate) {\n if (typeof (this.parent.toolbarTemplate) === 'string') {\n this.toolbar.appendTo(this.parent.toolbarTemplate);\n this.element = this.toolbar.element;\n }\n else {\n var isReactCompiler = this.parent.isReact && typeof (this.parent.toolbarTemplate) !== 'string';\n var isReactChild = this.parent.parentDetails && this.parent.parentDetails.parentInstObj &&\n this.parent.parentDetails.parentInstObj.isReact;\n var ID = this.parent.element.id + 'toolbarTemplate';\n if (isReactCompiler || isReactChild) {\n templateCompiler(this.parent.toolbarTemplate)({}, this.parent, 'toolbarTemplate', ID, null, null, this.element);\n this.parent.renderTemplates();\n }\n else {\n appendChildren(this.element, templateCompiler(this.parent.toolbarTemplate)({}, this.parent, 'toolbarTemplate'));\n }\n }\n this.element.classList.add('e-temp-toolbar');\n }\n else {\n this.toolbar.appendTo(this.element);\n }\n this.parent.element.insertBefore(this.element, this.parent.getHeaderContent());\n var tlbrLeftElement = this.element.querySelector('.e-toolbar-left');\n var tlbrCenterElement = this.element.querySelector('.e-toolbar-center');\n var tlbrRightElement = this.element.querySelector('.e-toolbar-right');\n var tlbrItems = this.element.querySelector('.e-toolbar-items');\n var tlbrElement = this.element;\n var tlbrLeftWidth = tlbrLeftElement ? tlbrLeftElement.clientWidth : 0;\n var tlbrCenterWidth = tlbrCenterElement ? tlbrCenterElement.clientWidth : 0;\n var tlbrRightWidth = tlbrRightElement ? tlbrRightElement.clientWidth : 0;\n var tlbrItemsWidth = tlbrItems ? tlbrItems.clientWidth : 0;\n var tlbrWidth = tlbrElement ? tlbrElement.clientWidth : 0;\n if (tlbrLeftWidth > tlbrWidth || tlbrCenterWidth > tlbrWidth || tlbrRightWidth > tlbrWidth || tlbrItemsWidth > tlbrWidth) {\n this.toolbar.refreshOverflow();\n }\n };\n Toolbar.prototype.addReactToolbarPortals = function (args) {\n if (this.parent.isReact && args) {\n this.parent.portals = this.parent.portals.concat(args);\n this.parent.renderTemplates();\n }\n };\n Toolbar.prototype.renderResponsiveSearch = function (isRender) {\n if (isRender) {\n this.toolbarCreated(true);\n this.refreshResponsiveToolbarItems(ResponsiveToolbarAction.isSearch);\n this.searchElement = select('#' + this.gridID + '_searchbar', this.element);\n var right = parentsUntil(this.searchElement, 'e-toolbar-right');\n right.classList.add('e-responsive-right');\n if (this.parent.searchSettings) {\n this.updateSearchBox();\n }\n this.searchBoxObj.searchFocus({ target: this.searchElement });\n this.searchElement.focus();\n }\n else {\n this.refreshResponsiveToolbarItems(ResponsiveToolbarAction.isInitial);\n }\n };\n Toolbar.prototype.refreshResponsiveToolbarItems = function (action) {\n if (action === ResponsiveToolbarAction.isInitial) {\n var id = this.parent.element.id;\n var items = [id + '_edit', id + '_delete'];\n var selectedRecords = this.parent.getSelectedRowIndexes();\n var excludingItems = [id + '_responsiveback', id + '_update', id + '_cancel'];\n for (var _i = 0, _a = this.toolbar.items; _i < _a.length; _i++) {\n var item = _a[_i];\n var toolbarEle = item.template.length ? this.toolbar.element.querySelector(item.template) : this.toolbar.element.querySelector('#' + item.id);\n if (toolbarEle) {\n if (items.indexOf(item.id) > -1) {\n if (selectedRecords.length) {\n toolbarEle.parentElement.classList.remove('e-hidden');\n }\n else {\n toolbarEle.parentElement.classList.add('e-hidden');\n }\n }\n else {\n if (excludingItems.indexOf(item.id) === -1) {\n toolbarEle.parentElement.classList.remove('e-hidden');\n }\n else {\n toolbarEle.parentElement.classList.add('e-hidden');\n }\n }\n }\n }\n if (this.searchElement) {\n var right = parentsUntil(this.searchElement, 'e-toolbar-right');\n right.classList.remove('e-responsive-right');\n this.toolbarCreated(false);\n this.unWireEvent();\n this.searchElement = undefined;\n }\n }\n if (action === ResponsiveToolbarAction.isSearch) {\n var items = [this.parent.element.id + '_responsiveback', this.parent.element.id + '_search'];\n for (var _b = 0, _c = this.toolbar.items; _b < _c.length; _b++) {\n var item = _c[_b];\n var toolbarEle = this.toolbar.element.querySelector('#' + item.id);\n if (toolbarEle) {\n if (items.indexOf(item.id) > -1) {\n toolbarEle.parentElement.classList.remove('e-hidden');\n }\n else {\n toolbarEle.parentElement.classList.add('e-hidden');\n }\n }\n }\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n Toolbar.prototype.refreshToolbarItems = function (args) {\n var gObj = this.parent;\n var enableItems = [];\n var disableItems = [];\n var edit = gObj.editSettings;\n var hasData = gObj.currentViewData && gObj.currentViewData.length;\n if (edit.allowAdding) {\n enableItems.push(this.gridID + '_add');\n }\n else {\n disableItems.push(this.gridID + '_add');\n }\n if (edit.allowEditing && hasData) {\n enableItems.push(this.gridID + '_edit');\n }\n else {\n disableItems.push(this.gridID + '_edit');\n }\n if (edit.allowDeleting && hasData) {\n enableItems.push(this.gridID + '_delete');\n }\n else {\n disableItems.push(this.gridID + '_delete');\n }\n if (gObj.editSettings.mode === 'Batch') {\n if (gObj.element.getElementsByClassName('e-updatedtd').length && (edit.allowAdding || edit.allowEditing)) {\n enableItems.push(this.gridID + '_update');\n enableItems.push(this.gridID + '_cancel');\n }\n else {\n disableItems.push(this.gridID + '_update');\n disableItems.push(this.gridID + '_cancel');\n }\n }\n else {\n if (gObj.isEdit && (edit.allowAdding || edit.allowEditing)) {\n enableItems = [this.gridID + '_update', this.gridID + '_cancel'];\n disableItems = [this.gridID + '_add', this.gridID + '_edit', this.gridID + '_delete'];\n }\n else {\n disableItems.push(this.gridID + '_update');\n disableItems.push(this.gridID + '_cancel');\n }\n }\n this.enableItems(enableItems, true);\n this.enableItems(disableItems, false);\n };\n Toolbar.prototype.getItems = function () {\n var items = [];\n var toolbarItems = this.parent.toolbar || [];\n if (typeof (this.parent.toolbar) === 'string') {\n return [];\n }\n if (this.parent.rowRenderingMode === 'Vertical') {\n if (this.parent.allowFiltering && this.parent.filterSettings.type !== 'FilterBar') {\n items.push(this.getItemObject('responsiveFilter'));\n }\n if (this.parent.allowSorting) {\n items.push(this.getItemObject('responsiveSort'));\n }\n }\n for (var _i = 0, toolbarItems_1 = toolbarItems; _i < toolbarItems_1.length; _i++) {\n var item = toolbarItems_1[_i];\n switch (typeof item) {\n case 'number':\n items.push(this.getItemObject(this.items[item]));\n break;\n case 'string':\n items.push(this.getItemObject(item));\n break;\n default:\n items.push(this.getItem(item));\n }\n }\n if (this.parent.enableAdaptiveUI && this.parent.toolbar && this.parent.toolbar.indexOf('Search') > -1) {\n items.push(this.getItemObject('responsiveBack'));\n }\n return items;\n };\n Toolbar.prototype.getItem = function (itemObject) {\n var item = this.predefinedItems[itemObject.text];\n return item ? extend(item, item, itemObject) : itemObject;\n };\n Toolbar.prototype.getItemObject = function (itemName) {\n return this.predefinedItems[\"\" + itemName] || { text: itemName, id: this.gridID + '_' + itemName };\n };\n /**\n * Enables or disables ToolBar items.\n *\n * @param {string[]} items - Defines the collection of itemID of ToolBar items.\n * @param {boolean} isEnable - Defines the items to be enabled or disabled.\n * @returns {void}\n * @hidden\n */\n Toolbar.prototype.enableItems = function (items, isEnable) {\n for (var _i = 0, items_1 = items; _i < items_1.length; _i++) {\n var item = items_1[_i];\n var element = select('#' + item, this.element);\n if (element) {\n this.toolbar.enableItems(element.parentElement, isEnable);\n }\n }\n };\n Toolbar.prototype.toolbarClickHandler = function (args) {\n var _this = this;\n var gObj = this.parent;\n var gID = this.gridID;\n extend(args, { cancel: false });\n var newArgs = args;\n var originalEvent = args.originalEvent;\n gObj.trigger(events.toolbarClick, newArgs, function (toolbarargs) {\n toolbarargs.originalEvent = toolbarargs.originalEvent ? toolbarargs.originalEvent : originalEvent;\n if (!toolbarargs.cancel) {\n switch (!isNullOrUndefined(toolbarargs.item) && toolbarargs.item.id) {\n case gID + '_print':\n gObj.print();\n break;\n case gID + '_edit':\n gObj.startEdit();\n break;\n case gID + '_update':\n gObj.endEdit();\n break;\n case gID + '_cancel':\n gObj.closeEdit();\n break;\n case gID + '_add':\n gObj.addRecord();\n break;\n case gID + '_delete':\n gObj.deleteRecord();\n break;\n case gID + '_search':\n if (toolbarargs.originalEvent.target.id === gID + '_searchbutton' && _this.searchElement) {\n _this.search();\n }\n else if (gObj.enableAdaptiveUI && !_this.searchElement\n && (toolbarargs.originalEvent.target.classList.contains('e-search-wrapper')\n || toolbarargs.originalEvent.target.id === gID + '_searchbutton')) {\n _this.renderResponsiveSearch(true);\n }\n else if (toolbarargs.originalEvent.target.classList.contains('e-clear-icon') && toolbarargs.originalEvent.target.id === gID + '_clearbutton' && _this.searchElement) {\n _this.searchElement.value = '';\n if (_this.searchElement) {\n _this.sIcon = _this.searchElement.parentElement.querySelector('.e-sicon');\n _this.sIcon.classList.remove('e-clear-icon');\n _this.sIcon.removeAttribute('title');\n _this.sIcon.style.cursor = 'default';\n }\n if (_this.isSearched || _this.parent.searchSettings.key.length) {\n _this.parent.search(_this.searchElement.value);\n _this.isSearched = false;\n }\n }\n break;\n case gID + '_columnchooser':\n /* eslint-disable */\n var tarElement = _this.parent.element.querySelector('.e-ccdiv');\n var y = tarElement.getBoundingClientRect().top;\n var x = tarElement.getBoundingClientRect().left;\n var targetEle = toolbarargs.originalEvent.target;\n /* eslint-enable */\n y = tarElement.getBoundingClientRect().top + tarElement.offsetTop;\n gObj.createColumnchooser(x, y, targetEle);\n break;\n case gID + '_responsivefilter':\n gObj.showResponsiveCustomFilter();\n break;\n case gID + '_responsivesort':\n gObj.showResponsiveCustomSort();\n break;\n case gID + '_responsiveback':\n _this.renderResponsiveSearch(false);\n break;\n }\n }\n });\n };\n Toolbar.prototype.modelChanged = function (e) {\n if (e.module === 'edit') {\n this.refreshToolbarItems();\n }\n };\n Toolbar.prototype.onPropertyChanged = function (e) {\n if (e.module !== this.getModuleName() || !this.parent.toolbar) {\n return;\n }\n if (this.element) {\n remove(this.element);\n }\n this.render();\n };\n Toolbar.prototype.keyUpHandler = function (e) {\n if (e.keyCode === 13) {\n this.search();\n }\n if (this.searchElement) {\n this.sIcon = this.searchElement.parentElement.querySelector('.e-sicon');\n if (this.searchElement.value.length && !isNullOrUndefined(this.sIcon)) {\n this.sIcon.classList.add('e-clear-icon');\n this.sIcon.setAttribute('title', 'Clear');\n this.sIcon.style.cursor = 'pointer';\n }\n else {\n this.sIcon.classList.remove('e-clear-icon');\n this.sIcon.removeAttribute('title');\n this.sIcon.style.cursor = 'default';\n }\n }\n };\n Toolbar.prototype.search = function () {\n this.isSearched = true;\n this.parent.search(this.searchElement.value);\n };\n Toolbar.prototype.updateSearchBox = function () {\n if (this.searchElement) {\n this.searchElement.value = this.parent.searchSettings.key;\n }\n };\n Toolbar.prototype.wireEvent = function () {\n if (this.searchElement) {\n this.searchBoxObj = new SearchBox(this.searchElement);\n EventHandler.add(this.searchElement, 'keyup', this.keyUpHandler, this);\n this.searchBoxObj.wireEvent();\n }\n EventHandler.add(this.element, 'focusin', this.onFocusIn, this);\n EventHandler.add(this.element, 'focusout', this.onFocusOut, this);\n };\n Toolbar.prototype.unWireEvent = function () {\n if (this.searchElement) {\n EventHandler.remove(this.searchElement, 'keyup', this.keyUpHandler);\n this.searchBoxObj.unWireEvent();\n }\n EventHandler.remove(this.element, 'focusin', this.onFocusIn);\n EventHandler.remove(this.element, 'focusout', this.onFocusOut);\n };\n Toolbar.prototype.onFocusIn = function (e) {\n var currentInfo = this.parent.focusModule.currentInfo;\n if (currentInfo && currentInfo.element) {\n removeClass([currentInfo.element, currentInfo.elementToFocus], ['e-focused', 'e-focus']);\n currentInfo.element.tabIndex = -1;\n }\n e.target.tabIndex = 0;\n };\n Toolbar.prototype.onFocusOut = function (e) {\n e.target.tabIndex = -1;\n };\n Toolbar.prototype.setFocusToolbarItem = function (element) {\n var elementToFocus = element.querySelector('.e-btn,.e-input,.e-toolbar-item-focus');\n if (!elementToFocus && this.parent.enableAdaptiveUI && !this.searchElement\n && element.classList.contains('e-search-wrapper')) {\n elementToFocus = element.querySelector('#' + this.gridID + '_searchbutton');\n }\n elementToFocus.focus();\n };\n Toolbar.prototype.getFocusableToolbarItems = function () {\n var getFocusToolbarElements = [].slice.call(this.element.querySelectorAll('.e-toolbar-item:not(.e-overlay):not(.e-hidden)'));\n var getFocusToolbarItems = [];\n for (var i = 0; i < getFocusToolbarElements.length; i++) {\n if (!isNullOrUndefined(getFocusToolbarElements[parseInt(i.toString(), 10)].querySelector('.e-btn,.e-input,.e-toolbar-item-focus'))) {\n getFocusToolbarItems.push(getFocusToolbarElements[parseInt(i.toString(), 10)]);\n }\n }\n return getFocusToolbarItems;\n };\n Toolbar.prototype.keyPressedHandler = function (e) {\n if (e.target && parentsUntil(e.target, 'e-toolbar-item')) {\n var targetParent = parentsUntil(e.target, 'e-toolbar-item');\n var focusableToolbarItems = this.getFocusableToolbarItems();\n if (e.action === 'tab' || e.action === 'shiftTab') {\n if ((e.action === 'tab' && targetParent === focusableToolbarItems[focusableToolbarItems.length - 1])\n || (e.action === 'shiftTab' && targetParent === focusableToolbarItems[0])) {\n return;\n }\n for (var i = 0; i < focusableToolbarItems.length; i++) {\n if (targetParent === focusableToolbarItems[parseInt(i.toString(), 10)]) {\n e.preventDefault();\n var index = e.action === 'tab' ? i + 1 : i - 1;\n this.setFocusToolbarItem(focusableToolbarItems[parseInt(index.toString(), 10)]);\n return;\n }\n }\n }\n if (e.action === 'enter') {\n if (this.parent.enableAdaptiveUI && !this.searchElement\n && e.target.id === this.gridID + '_searchbutton') {\n this.renderResponsiveSearch(true);\n }\n }\n }\n };\n Toolbar.prototype.reRenderToolbar = function () {\n if (this.element) {\n remove(this.element);\n }\n this.render();\n };\n Toolbar.prototype.addEventListener = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n this.evtHandlers = [{ event: events.setFullScreenDialog, handler: this.reRenderToolbar },\n { event: events.initialEnd, handler: this.render },\n { event: events.uiUpdate, handler: this.onPropertyChanged },\n { event: events.inBoundModelChanged, handler: this.updateSearchBox.bind(this) },\n { event: events.modelChanged, handler: this.refreshToolbarItems },\n { event: events.toolbarRefresh, handler: this.refreshToolbarItems },\n { event: events.inBoundModelChanged, handler: this.modelChanged },\n { event: events.dataBound, handler: this.refreshToolbarItems },\n { event: events.click, handler: this.removeResponsiveSearch },\n { event: events.rowModeChange, handler: this.reRenderToolbar },\n { event: events.destroy, handler: this.destroy },\n { event: events.keyPressed, handler: this.keyPressedHandler }];\n addRemoveEventListener(this.parent, this.evtHandlers, true, this);\n this.rowSelectedFunction = this.rowSelected.bind(this);\n this.rowDeSelectedFunction = this.rowSelected.bind(this);\n this.parent.addEventListener(events.rowSelected, this.rowSelectedFunction);\n this.parent.addEventListener(events.rowDeselected, this.rowDeSelectedFunction);\n };\n Toolbar.prototype.removeEventListener = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n addRemoveEventListener(this.parent, this.evtHandlers, false);\n this.parent.removeEventListener(events.rowSelected, this.rowSelectedFunction);\n this.parent.removeEventListener(events.rowDeselected, this.rowDeSelectedFunction);\n };\n Toolbar.prototype.removeResponsiveSearch = function (e) {\n var target = e.target;\n var isSearch = target.classList.contains('e-search-icon') || target.classList.contains('e-search-wrapper');\n if (this.parent.enableAdaptiveUI && !isSearch && this.searchElement\n && !parentsUntil(e.target, 'e-res-toolbar')) {\n this.renderResponsiveSearch(false);\n }\n };\n Toolbar.prototype.rowSelected = function () {\n if (this.parent.enableAdaptiveUI) {\n this.refreshResponsiveToolbarItems(ResponsiveToolbarAction.isInitial);\n }\n };\n /**\n * For internal use only - Get the module name.\n *\n * @returns {string} returns the module name\n */\n Toolbar.prototype.getModuleName = function () {\n return 'toolbar';\n };\n return Toolbar;\n}());\nexport { Toolbar };\n","import { extend, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { closest as closestElement, removeClass, classList, remove } from '@syncfusion/ej2-base';\nimport { getElementIndex, inArray, parentsUntil, getPosition, isActionPrevent } from '../base/util';\nimport * as events from '../base/constant';\nimport * as literals from '../base/string-literals';\n/**\n *\n * The `Reorder` module is used for reordering columns.\n */\nvar Reorder = /** @class */ (function () {\n /**\n * Constructor for the Grid reorder module\n *\n * @param {IGrid} parent - specifies the IGrid\n * @hidden\n */\n function Reorder(parent) {\n this.parent = parent;\n if (this.parent.isDestroyed) {\n return;\n }\n this.parent.on(events.headerDrop, this.headerDrop, this);\n this.parent.on(events.uiUpdate, this.enableAfterRender, this);\n this.parent.on(events.reorderComplete, this.onActionComplete, this);\n this.parent.on(events.columnDrag, this.drag, this);\n this.parent.on(events.columnDragStart, this.dragStart, this);\n this.parent.on(events.columnDragStop, this.dragStop, this);\n this.parent.on(events.headerDrop, this.headerDrop, this);\n this.parent.on(events.headerRefreshed, this.createReorderElement, this);\n this.parent.on(events.keyPressed, this.keyPressHandler, this);\n this.parent.on(events.destroy, this.destroy, this);\n }\n Reorder.prototype.chkDropPosition = function (srcElem, destElem) {\n var col = this.parent.getColumnByUid(destElem.firstElementChild.getAttribute('e-mappinguid'));\n var bool = col ? !col.lockColumn : true;\n return ((srcElem.parentElement.isEqualNode(destElem.parentElement) || this.parent.enableColumnVirtualization)\n || (this.parent.isFrozenGrid()\n && Array.prototype.indexOf.call(closestElement(srcElem, 'thead').children, srcElem.parentElement)\n === Array.prototype.indexOf.call(closestElement(destElem, 'thead').children, destElem.parentElement)))\n && this.targetParentContainerIndex(srcElem, destElem) > -1 && bool;\n };\n Reorder.prototype.chkDropAllCols = function (srcElem, destElem) {\n var isFound;\n var headers = this.getHeaderCells();\n var header;\n while (!isFound && headers.length > 0) {\n header = headers.pop();\n isFound = srcElem !== header && this.targetParentContainerIndex(srcElem, destElem) > -1;\n }\n return isFound;\n };\n Reorder.prototype.findColParent = function (col, cols, parent) {\n // eslint-disable-next-line no-self-assign\n parent = parent;\n for (var i = 0, len = cols.length; i < len; i++) {\n if (col === cols[parseInt(i.toString(), 10)]) {\n return true;\n }\n else if (cols[parseInt(i.toString(), 10)].columns) {\n var cnt = parent.length;\n parent.push(cols[parseInt(i.toString(), 10)]);\n if (!this.findColParent(col, cols[parseInt(i.toString(), 10)].columns, parent)) {\n parent.splice(cnt, parent.length - cnt);\n }\n else {\n return true;\n }\n }\n }\n return false;\n };\n Reorder.prototype.getColumnsModel = function (cols, isNotStackedHeader) {\n var columnModel = [];\n var subCols = [];\n if (!this.parent.getFrozenColumns() && this.parent.isFrozenGrid()) {\n return this.parent.getColumns();\n }\n else {\n for (var i = 0, len = cols.length; i < len; i++) {\n if (cols[parseInt(i.toString(), 10)].visible) {\n columnModel.push(cols[parseInt(i.toString(), 10)]);\n }\n else if (isNotStackedHeader) {\n columnModel.push(cols[parseInt(i.toString(), 10)]);\n }\n if (cols[parseInt(i.toString(), 10)].columns) {\n subCols = subCols.concat(cols[parseInt(i.toString(), 10)].columns);\n }\n }\n if (subCols.length) {\n columnModel = columnModel.concat(this.getColumnsModel(subCols));\n }\n }\n return columnModel;\n };\n Reorder.prototype.headerDrop = function (e) {\n var gObj = this.parent;\n var dropElement = this.element.querySelector('.e-headercelldiv') || this.element.querySelector('.e-stackedheadercelldiv');\n var uId = dropElement.getAttribute('e-mappinguid');\n var column = gObj.getColumnByUid(uId);\n if (!closestElement(e.target, 'th') || (!isNullOrUndefined(column) && (!column.allowReordering || column.lockColumn))) {\n this.parent.log('action_disabled_column', { moduleName: this.getModuleName(), column: column });\n return;\n }\n var destElem = closestElement(e.target, '.e-headercell');\n var destElemDiv = destElem.querySelector('.e-headercelldiv') || destElem.querySelector('.e-stackedheadercelldiv');\n var destElemUid = destElemDiv.getAttribute('e-mappinguid');\n if (!isNullOrUndefined(destElemUid)) {\n var destColumn = gObj.getColumnByUid(destElemUid);\n if (isNullOrUndefined(destColumn) || !destColumn.allowReordering || destColumn.lockColumn) {\n this.parent.log('action_disabled_column', { moduleName: this.getModuleName(), column: column, destColumn: destColumn });\n return;\n }\n }\n if (destElem && !(!this.chkDropPosition(this.element, destElem) || !this.chkDropAllCols(this.element, destElem))) {\n if (this.parent.enableColumnVirtualization) {\n var columns = this.parent.columns;\n var sourceUid_1 = this.element.querySelector('.e-headercelldiv').getAttribute('e-mappinguid');\n var col = this.parent.columns.filter(function (col) { return col.uid === sourceUid_1; });\n var colMatchIndex_1 = null;\n var column_1 = col[0];\n var destUid_1 = destElem.querySelector('.e-headercelldiv').getAttribute('e-mappinguid');\n columns.some(function (col, index) {\n if (col.uid === destUid_1) {\n colMatchIndex_1 = index;\n return col.uid === destUid_1;\n }\n return false;\n });\n if (!isNullOrUndefined(colMatchIndex_1)) {\n this.moveColumns(colMatchIndex_1, column_1);\n }\n }\n else {\n var newIndex = this.targetParentContainerIndex(this.element, destElem);\n var uid = this.element.firstElementChild.getAttribute('e-mappinguid');\n this.destElement = destElem;\n this.parent.notify(events.setReorderDestinationElement, { ele: destElem });\n if (uid) {\n this.moveColumns(newIndex, this.parent.getColumnByUid(uid));\n }\n else {\n var headers = this.getHeaderCells();\n var oldIdx = getElementIndex(this.element, headers);\n var columns = this.getColumnsModel(this.parent.columns);\n this.moveColumns(newIndex, columns[parseInt(oldIdx.toString(), 10)]);\n }\n }\n }\n };\n Reorder.prototype.isActionPrevent = function (gObj) {\n return isActionPrevent(gObj);\n };\n Reorder.prototype.moveColumns = function (destIndex, column, reorderByColumn, preventRefresh) {\n var gObj = this.parent;\n if (this.isActionPrevent(gObj)) {\n gObj.notify(events.preventBatch, { instance: this, handler: this.moveColumns, arg1: destIndex, arg2: column });\n return;\n }\n var isFrozen = !gObj.getFrozenColumns() && gObj.isFrozenGrid();\n var parent = this.getColParent(column, this.parent.columns);\n var cols = parent ? parent.columns : isFrozen ? this.parent.getColumns() : this.parent.columns;\n var srcIdx = inArray(column, cols);\n if (((this.parent.isFrozenGrid() && parent) || this.parent.lockcolPositionCount) && !reorderByColumn &&\n !this.parent.enableColumnVirtualization) {\n for (var i = 0; i < cols.length; i++) {\n if (cols[parseInt(i.toString(), 10)].field === column.field) {\n srcIdx = i;\n break;\n }\n }\n var col = this.parent.getColumnByUid(this.destElement.firstElementChild.getAttribute('e-mappinguid'));\n if (col) {\n for (var i = 0; i < cols.length; i++) {\n if (cols[parseInt(i.toString(), 10)].field === col.field) {\n destIndex = i;\n break;\n }\n }\n }\n else {\n for (var i = 0; i < cols.length; i++) {\n if (cols[parseInt(i.toString(), 10)].headerText === this.destElement.innerText.trim()) {\n destIndex = i;\n }\n }\n }\n }\n if (!gObj.allowReordering || srcIdx === destIndex || srcIdx === -1 || destIndex === -1) {\n return;\n }\n cols.splice(destIndex, 0, cols.splice(srcIdx, 1)[0]);\n var args = { column: column, destIndex: destIndex, columns: cols, parent: parent, cancel: false };\n gObj.notify(events.refreshFrozenColumns, args);\n if (args.cancel) {\n return;\n }\n gObj.getColumns(true);\n gObj.notify(events.columnPositionChanged, { fromIndex: destIndex, toIndex: srcIdx });\n if (preventRefresh !== false) {\n gObj.notify(events.modelChanged, {\n type: events.actionBegin, requestType: 'reorder', fromIndex: destIndex, toIndex: srcIdx, toColumnUid: column.uid\n });\n }\n };\n Reorder.prototype.targetParentContainerIndex = function (srcElem, destElem) {\n var cols = !this.parent.getFrozenColumns() && this.parent.isFrozenGrid() ? this.parent.getColumns() :\n this.parent.columns;\n var headers = this.getHeaderCells();\n var stackedHdrColumn = this.parent.getStackedColumns(cols);\n var stackedCols = [];\n if (stackedHdrColumn.length) {\n stackedCols = this.getAllStackedheaderParentColumns(headers);\n }\n var flatColumns = stackedHdrColumn.length && stackedCols.length ?\n this.getColumnsModel(stackedCols) : this.getColumnsModel(cols, true);\n var parent = this.getColParent(flatColumns[getElementIndex(srcElem, headers)], cols);\n cols = parent ? parent.columns : cols;\n return inArray(flatColumns[getElementIndex(destElem, headers)], cols);\n };\n Reorder.prototype.getAllStackedheaderParentColumns = function (headers) {\n var stackedCols = [];\n for (var i = 0; i < headers.length; i++) {\n if (headers[parseInt(i.toString(), 10)].classList.contains('e-hide')) {\n headers.splice(i, 1);\n i--;\n }\n else if (headers[parseInt(i.toString(), 10)].closest('thead').firstChild === headers[parseInt(i.toString(), 10)].parentElement) {\n stackedCols.push(this.parent.getColumnByUid(headers[parseInt(i.toString(), 10)].firstElementChild.getAttribute('e-mappinguid')));\n }\n }\n return stackedCols;\n };\n Reorder.prototype.getHeaderCells = function () {\n var frozenColumns = this.parent.getFrozenColumns();\n if (frozenColumns || this.parent.isFrozenGrid() || this.parent.lockcolPositionCount) {\n var fTh = void 0;\n var mTh = void 0;\n var fHeaders = [];\n var fRows = [].slice.call(this.parent.getHeaderTable().getElementsByClassName('e-columnheader'));\n if (frozenColumns || this.parent.isFrozenGrid()) {\n var mRows = [].slice.call(this.parent.getHeaderContent()\n .querySelector('.' + literals.movableHeader).getElementsByClassName('e-columnheader'));\n for (var i = 0; i < fRows.length; i++) {\n fTh = [].slice.call(fRows[parseInt(i.toString(), 10)].getElementsByClassName('e-headercell'));\n mTh = [].slice.call(mRows[parseInt(i.toString(), 10)].getElementsByClassName('e-headercell'));\n var isAvail = void 0;\n for (var k = 0; k < fTh.length; k++) {\n for (var j = 0; j < mTh.length; j++) {\n if (mTh[parseInt(j.toString(), 10)].innerText === fTh[parseInt(k.toString(), 10)].innerText && parseInt(mTh[parseInt(j.toString(), 10)].getAttribute('data-colindex'), 10) ===\n parseInt(fTh[parseInt(k.toString(), 10)].getAttribute('data-colindex'), 10)) {\n isAvail = true;\n break;\n }\n }\n if (!isAvail) {\n fHeaders = fHeaders.concat([fTh[parseInt(k.toString(), 10)]]);\n }\n }\n for (var j = 0; j < mTh.length; j++) {\n fHeaders.push(mTh[parseInt(j.toString(), 10)]);\n }\n }\n if (this.parent.getFrozenRightColumnsCount()) {\n var frRows = [].slice.call(this.parent.getHeaderContent().querySelector('.e-frozen-right-header')\n .getElementsByClassName('e-columnheader'));\n var frTh = [].slice.call(frRows[0].getElementsByClassName('e-headercell'));\n for (var i = 0; i < frTh.length; i++) {\n fHeaders.push(frTh[parseInt(i.toString(), 10)]);\n }\n }\n }\n else {\n for (var i = 0; i < fRows.length; i++) {\n mTh = [].slice.call(fRows[parseInt(i.toString(), 10)].getElementsByClassName('e-headercell'));\n for (var k = 0; k < mTh.length; k++) {\n var isAvail = void 0;\n for (var j = k + 1; j < mTh.length; j++) {\n if (mTh[parseInt(j.toString(), 10)].innerText === mTh[parseInt(k.toString(), 10)].innerText && parseInt(mTh[parseInt(j.toString(), 10)].getAttribute('data-colindex'), 10) ===\n parseInt(mTh[parseInt(k.toString(), 10)].getAttribute('data-colindex'), 10)) {\n isAvail = true;\n break;\n }\n }\n if (!isAvail) {\n fHeaders = fHeaders.concat([mTh[parseInt(k.toString(), 10)]]);\n }\n }\n }\n }\n return fHeaders;\n }\n else {\n return [].slice.call(this.parent.element.getElementsByClassName('e-headercell'));\n }\n };\n Reorder.prototype.getColParent = function (column, columns) {\n var parents = [];\n this.findColParent(column, columns, parents);\n return parents[parents.length - 1];\n };\n Reorder.prototype.reorderSingleColumn = function (fromFName, toFName) {\n var fColumn = this.parent.enableColumnVirtualization ?\n this.parent.columns.filter(function (col) { return col.field === fromFName; })[0]\n : this.parent.getColumnByField(fromFName);\n var toColumn = this.parent.enableColumnVirtualization ?\n this.parent.columns.filter(function (col) { return col.field === toFName; })[0]\n : this.parent.getColumnByField(toFName);\n if ((!isNullOrUndefined(fColumn) && (!fColumn.allowReordering || fColumn.lockColumn)) ||\n (!isNullOrUndefined(toColumn) && (!toColumn.allowReordering || fColumn.lockColumn))) {\n this.parent.log('action_disabled_column', { moduleName: this.getModuleName(), column: fColumn, destColumn: toColumn });\n return;\n }\n var column = toColumn;\n var parent = this.getColParent(column, this.parent.columns);\n var columns = parent ? parent.columns : this.parent.columns;\n var destIndex = inArray(column, columns);\n if (destIndex > -1) {\n this.moveColumns(destIndex, fColumn, true);\n }\n };\n Reorder.prototype.reorderMultipleColumns = function (fromFNames, toFName) {\n var toIndex = this.parent.getColumnIndexByField(toFName);\n var toColumn = this.parent.getColumnByField(toFName);\n if (toIndex < 0 || (!isNullOrUndefined(toColumn) && (!toColumn.allowReordering || toColumn.lockColumn))) {\n return;\n }\n for (var i = 0; i < fromFNames.length; i++) {\n var column = this.parent.getColumnByField(fromFNames[parseInt(i.toString(), 10)]);\n if (!isNullOrUndefined(column) && (!column.allowReordering || column.lockColumn)) {\n return;\n }\n }\n for (var i = 0; i < fromFNames.length; i++) {\n var column = this.parent.getColumnByIndex(toIndex);\n var parent_1 = this.getColParent(column, this.parent.columns);\n var columns = parent_1 ? parent_1.columns : this.parent.columns;\n var destIndex = inArray(column, columns);\n if (destIndex > -1) {\n this.moveColumns(destIndex, this.parent.getColumnByField(fromFNames[parseInt(i.toString(), 10)]), true, true);\n }\n if (this.parent.getColumnIndexByField(fromFNames[i + 1]) >= destIndex) {\n toIndex++; //R to L\n }\n }\n };\n Reorder.prototype.moveTargetColumn = function (column, toIndex) {\n if (toIndex > -1) {\n this.moveColumns(toIndex, column, true);\n }\n };\n Reorder.prototype.reorderSingleColumnByTarget = function (fieldName, toIndex) {\n this.moveTargetColumn(this.parent.getColumnByField(fieldName), toIndex);\n };\n Reorder.prototype.reorderMultipleColumnByTarget = function (fieldName, toIndex) {\n for (var i = 0; i < fieldName.length; i++) {\n this.reorderSingleColumnByTarget(fieldName[parseInt(i.toString(), 10)], toIndex);\n }\n };\n /**\n * Changes the position of the Grid columns by field names.\n *\n * @param {string | string[]} fromFName - Defines the origin field names.\n * @param {string} toFName - Defines the destination field name.\n * @returns {void}\n */\n Reorder.prototype.reorderColumns = function (fromFName, toFName) {\n if (typeof fromFName === 'string') {\n this.reorderSingleColumn(fromFName, toFName);\n this.fromCol = fromFName;\n }\n else {\n this.reorderMultipleColumns(fromFName, toFName);\n this.fromCol = fromFName[0];\n }\n };\n /**\n * Changes the position of the Grid columns by field index.\n *\n * @param {number} fromIndex - Defines the origin field index.\n * @param {number} toIndex - Defines the destination field index.\n * @returns {void}\n */\n Reorder.prototype.reorderColumnByIndex = function (fromIndex, toIndex) {\n this.moveTargetColumn(this.parent.getColumnByIndex(fromIndex), toIndex);\n };\n /**\n * Changes the position of the Grid columns by field index.\n *\n * @param {string | string[]} fieldName - Defines the field name.\n * @param {number} toIndex - Defines the destination field index.\n * @returns {void}\n */\n Reorder.prototype.reorderColumnByTargetIndex = function (fieldName, toIndex) {\n if (typeof fieldName === 'string') {\n this.reorderSingleColumnByTarget(fieldName, toIndex);\n }\n else {\n this.reorderMultipleColumnByTarget(fieldName, toIndex);\n }\n };\n Reorder.prototype.enableAfterRender = function (e) {\n if (e.module === this.getModuleName() && e.enable) {\n this.createReorderElement();\n }\n };\n Reorder.prototype.createReorderElement = function (e) {\n if (e && e.args.isXaxis) {\n this.setDisplay('none');\n }\n var header = this.parent.element.querySelector('.' + literals.headerContent);\n this.upArrow = header.appendChild(this.parent\n .createElement('div', { className: 'e-icons e-icon-reorderuparrow e-reorderuparrow', attrs: { style: 'display:none' } }));\n this.downArrow = header.appendChild(this.parent\n .createElement('div', { className: 'e-icons e-icon-reorderdownarrow e-reorderdownarrow', attrs: { style: 'display:none' } }));\n };\n /**\n * The function used to trigger onActionComplete\n *\n * @param {NotifyArgs} e - specified the NotifyArgs\n * @returns {void}\n * @hidden\n */\n Reorder.prototype.onActionComplete = function (e) {\n this.parent.trigger(events.actionComplete, extend(e, { type: events.actionComplete }));\n var target = this.fromCol && this.parent.getColumnHeaderByField(this.fromCol);\n if (target) {\n this.parent.focusModule.onClick({ target: target }, true);\n }\n };\n /**\n * To destroy the reorder\n *\n * @returns {void}\n * @hidden\n */\n Reorder.prototype.destroy = function () {\n var gridElement = this.parent.element;\n if (this.parent.isDestroyed || !gridElement || (!gridElement.querySelector('.' + literals.gridHeader) &&\n !gridElement.querySelector('.' + literals.gridContent))) {\n return;\n }\n if (this.upArrow.parentNode) {\n remove(this.upArrow);\n }\n if (this.downArrow.parentNode) {\n remove(this.downArrow);\n }\n this.parent.off(events.headerDrop, this.headerDrop);\n this.parent.off(events.uiUpdate, this.enableAfterRender);\n this.parent.off(events.reorderComplete, this.onActionComplete);\n this.parent.off(events.columnDrag, this.drag);\n this.parent.off(events.columnDragStart, this.dragStart);\n this.parent.off(events.columnDragStop, this.dragStop);\n this.parent.off(events.headerRefreshed, this.createReorderElement);\n this.parent.off(events.keyPressed, this.keyPressHandler);\n this.parent.off(events.destroy, this.destroy);\n //call ejdrag and drop destroy\n };\n Reorder.prototype.keyPressHandler = function (e) {\n var gObj = this.parent;\n switch (e.action) {\n case 'ctrlLeftArrow':\n case 'ctrlRightArrow':\n // eslint-disable-next-line no-case-declarations\n var element = gObj.focusModule.currentInfo.element;\n if (element && element.classList.contains('e-headercell')) {\n var column = gObj.getColumnByUid(element.firstElementChild.getAttribute('e-mappinguid'));\n var visibleCols = gObj.getVisibleColumns();\n var index = visibleCols.indexOf(column);\n var toCol = e.action === 'ctrlLeftArrow' ? visibleCols[index - 1] : visibleCols[index + 1];\n if (toCol && toCol.field && column.field) {\n this.reorderColumns(column.field, toCol.field);\n }\n }\n break;\n }\n };\n Reorder.prototype.drag = function (e) {\n var gObj = this.parent;\n var target = e.target;\n if (!e.column.allowReordering || e.column.lockColumn) {\n return;\n }\n var closest = closestElement(target, '.e-headercell:not(.e-stackedHeaderCell)');\n var cloneElement = gObj.element.querySelector('.e-cloneproperties');\n var content = gObj.isFrozenGrid() ? gObj.getMovableVirtualContent() : gObj.getContent().firstElementChild;\n var isLeft = this.x > getPosition(e.event).x + content.scrollLeft;\n removeClass([].slice.call(gObj.getHeaderTable().getElementsByClassName('e-reorderindicate')), ['e-reorderindicate']);\n this.setDisplay('none');\n this.stopTimer();\n classList(cloneElement, ['e-defaultcur'], ['e-notallowedcur']);\n this.updateScrollPostion(e.event);\n if (closest && !closest.isEqualNode(this.element)) {\n target = closest;\n //consider stacked, detail header cell\n if (!(!this.chkDropPosition(this.element, target) || !this.chkDropAllCols(this.element, target))) {\n this.updateArrowPosition(target, isLeft);\n classList(target, ['e-allowDrop', 'e-reorderindicate'], []);\n }\n else if (!(gObj.allowGrouping && parentsUntil(e.target, 'e-groupdroparea'))) {\n classList(cloneElement, ['e-notallowedcur'], ['e-defaultcur']);\n }\n }\n gObj.trigger(events.columnDrag, { target: target, draggableType: 'headercell', column: e.column });\n };\n Reorder.prototype.updateScrollPostion = function (e) {\n var _this = this;\n var x = getPosition(e).x;\n var cliRect = this.parent.element.getBoundingClientRect();\n var cliRectBaseRight = cliRect.right;\n if (this.parent.isFrozenGrid()) {\n this.updateFrozenScrollPosition(x, cliRect);\n }\n else {\n var cliRectBaseLeft = cliRect.left;\n var scrollElem_1 = this.parent.getContent().firstElementChild;\n if (x > cliRectBaseLeft && x < cliRectBaseLeft + 35) {\n this.timer = window.setInterval(function () { _this.setScrollLeft(scrollElem_1, true); }, 50);\n }\n else if (x < cliRectBaseRight && x > cliRectBaseRight - 35) {\n this.timer = window.setInterval(function () { _this.setScrollLeft(scrollElem_1, false); }, 50);\n }\n }\n };\n Reorder.prototype.updateFrozenScrollPosition = function (x, cliRect) {\n var _this = this;\n var scrollElem = this.parent.getContent().querySelector('.' + literals.movableContent);\n var mhdrCliRect = this.parent.element.querySelector('.' + literals.movableHeader).getBoundingClientRect();\n var left = this.parent.getFrozenLeftCount();\n var right = this.parent.getFrozenRightColumnsCount();\n var cliRectBaseRight = right ? mhdrCliRect.right : cliRect.right;\n var cliRectBaseLeft = left ? mhdrCliRect.left : cliRect.left;\n if (x > cliRectBaseLeft && x < cliRectBaseLeft + 35) {\n this.timer = window.setInterval(function () { _this.setScrollLeft(scrollElem, true); }, 50);\n }\n else if (x < cliRectBaseRight && x > cliRectBaseRight - 35) {\n this.timer = window.setInterval(function () { _this.setScrollLeft(scrollElem, false); }, 50);\n }\n };\n Reorder.prototype.setScrollLeft = function (scrollElem, isLeft) {\n var scrollLeft = scrollElem.scrollLeft;\n scrollElem.scrollLeft = scrollElem.scrollLeft + (isLeft ? -5 : 5);\n if (scrollLeft !== scrollElem.scrollLeft) {\n this.setDisplay('none');\n }\n };\n Reorder.prototype.stopTimer = function () {\n window.clearInterval(this.timer);\n };\n Reorder.prototype.updateArrowPosition = function (target, isLeft) {\n var cliRect = target.getBoundingClientRect();\n var cliRectBase = this.parent.element.getBoundingClientRect();\n if ((isLeft && cliRect.left < cliRectBase.left) || (!isLeft && cliRect.right > cliRectBase.right)) {\n return;\n }\n if (this.parent.isFrozenGrid() && target.classList.contains('e-headercell')) {\n var left = this.parent.getFrozenLeftCount();\n var right = this.parent.getFrozenRightColumnsCount();\n var dropEle = this.element.querySelector('.e-headercelldiv');\n var dropCol = dropEle ? this.parent.getColumnByUid(dropEle.getAttribute('data-uid')) : null;\n var col = this.parent.getColumnByUid(target.firstElementChild.getAttribute('e-mappinguid'));\n var fhdrWidth = Math.round(this.parent.getFrozenVirtualHeader().getBoundingClientRect().right);\n var mhdrRight = Math.round(this.parent.getMovableVirtualHeader().getBoundingClientRect().right);\n if (col) {\n if (left && !right && this.parent.getNormalizedColumnIndex(col.uid) >= left\n && ((isLeft && Math.round(cliRect.left) < fhdrWidth) || (!isLeft && mhdrRight < cliRect.right))) {\n return;\n }\n if (!left && right && dropCol && dropCol.getFreezeTableName() !== col.getFreezeTableName()\n && (!isLeft && Math.round(cliRect.right) < fhdrWidth)) {\n return;\n }\n }\n }\n var isSticky = this.parent.getHeaderContent().classList.contains('e-sticky');\n this.upArrow.style.top = isSticky ? cliRect.top + cliRect.height + 'px' : cliRect.top + cliRect.height - cliRectBase.top + 'px';\n this.downArrow.style.top = isSticky ? cliRect.top - 7 + 'px' : cliRect.top - cliRectBase.top - 7 + 'px';\n this.upArrow.style.left = this.downArrow.style.left = isSticky ? (isLeft ? cliRect.left : cliRect.right) - 4 + 'px' :\n (isLeft ? cliRect.left : cliRect.right) - cliRectBase.left - 4 + 'px';\n this.setDisplay('');\n };\n Reorder.prototype.dragStart = function (e) {\n var gObj = this.parent;\n var target = e.target;\n this.element = target.classList.contains('e-headercell') ? target :\n parentsUntil(target, 'e-headercell');\n if (!e.column.allowReordering || e.column.lockColumn) {\n return;\n }\n var content = gObj.isFrozenGrid() ? gObj.getMovableVirtualContent() : gObj.getContent().firstElementChild;\n this.x = getPosition(e.event).x + content.scrollLeft;\n gObj.trigger(events.columnDragStart, {\n target: target, draggableType: 'headercell', column: e.column\n });\n };\n Reorder.prototype.dragStop = function (e) {\n var gObj = this.parent;\n this.setDisplay('none');\n this.stopTimer();\n if (!e.cancel) {\n gObj.trigger(events.columnDrop, { target: e.target, draggableType: 'headercell', column: e.column });\n }\n removeClass([].slice.call(gObj.getHeaderTable().getElementsByClassName('e-reorderindicate')), ['e-reorderindicate']);\n };\n Reorder.prototype.setDisplay = function (display) {\n this.upArrow.style.display = display;\n this.downArrow.style.display = display;\n };\n /**\n * For internal use only - Get the module name.\n *\n * @returns {string} return the module name\n * @private\n */\n Reorder.prototype.getModuleName = function () {\n return 'reorder';\n };\n return Reorder;\n}());\nexport { Reorder };\n","import { EventHandler, detach, formatUnit, Browser, closest } from '@syncfusion/ej2-base';\nimport { Column } from '../models/column';\nimport { ColumnWidthService } from '../services/width-controller';\nimport * as events from '../base/constant';\nimport { getScrollBarWidth, parentsUntil, gridActionHandler, Global, getExactFrozenMovableColumn } from '../base/util';\nimport { isNullOrUndefined, addClass, removeClass } from '@syncfusion/ej2-base';\nimport * as literals from '../base/string-literals';\nexport var resizeClassList = {\n root: 'e-rhandler',\n suppress: 'e-rsuppress',\n icon: 'e-ricon',\n helper: 'e-rhelper',\n header: 'th.e-headercell',\n cursor: 'e-rcursor'\n};\n/**\n * `Resize` module is used to handle Resize to fit for columns.\n *\n * @hidden\n * @private\n */\nvar Resize = /** @class */ (function () {\n /**\n * Constructor for the Grid resize module\n *\n * @param {IGrid} parent - specifies the IGrid\n * @hidden\n */\n function Resize(parent) {\n this.tapped = false;\n this.isDblClk = true;\n /** @hidden */\n this.resizeProcess = false;\n this.parent = parent;\n if (this.parent.isDestroyed) {\n return;\n }\n this.widthService = new ColumnWidthService(parent);\n this.addEventListener();\n }\n /**\n * Resize by field names.\n *\n * @param {string|string[]} fName - Defines the field name.\n * @returns {void}\n */\n Resize.prototype.autoFitColumns = function (fName) {\n var columnName = (fName === undefined || fName === null || fName.length <= 0) ?\n this.parent.getColumns().map(function (x) { return x.field; }) : (typeof fName === 'string') ? [fName] : fName;\n this.parent.isAutoFitColumns = true;\n this.findColumn(columnName);\n };\n Resize.prototype.autoFit = function () {\n var newarray = this.parent.getColumns().filter(function (c) { return c.autoFit === true; })\n .map(function (c) { return c.field || c.headerText; });\n if (newarray.length > 0) {\n this.autoFitColumns(newarray);\n }\n if (this.parent.resizeSettings.mode === 'Auto') {\n this.widthService.setWidthToTable();\n }\n };\n Resize.prototype.resizeColumn = function (fName, index, id) {\n var gObj = this.parent;\n var tWidth = 0;\n var headerTable;\n var contentTable;\n var footerTable;\n var headerDivTag = 'e-gridheader';\n var contentDivTag = literals.gridContent;\n var footerDivTag = literals.gridFooter;\n var indentWidth = 0;\n var uid = id ? id : this.parent.getUidByColumnField(fName);\n var columnIndex = this.parent.getNormalizedColumnIndex(uid);\n var headerTextClone;\n var contentTextClone;\n var footerTextClone;\n var columnIndexByField = this.parent.getColumnIndexByField(fName);\n var left = gObj.getFrozenColumns() || gObj.getFrozenLeftColumnsCount();\n var movable = gObj.getMovableColumnsCount();\n if (!isNullOrUndefined(gObj.getFooterContent())) {\n footerTable = gObj.getFooterContentTable();\n }\n if (gObj.isFrozenGrid()) {\n var col = gObj.getColumnByField(fName);\n if (col.getFreezeTableName() === literals.frozenLeft) {\n headerTable = gObj.getHeaderTable();\n contentTable = gObj.getContentTable();\n headerTextClone = headerTable.querySelector('[e-mappinguid=\"' + uid + '\"]').parentElement.cloneNode(true);\n contentTextClone = contentTable.querySelectorAll(\"td:nth-child(\" + (columnIndex + 1) + \")\");\n if (footerTable) {\n footerTextClone = footerTable.querySelectorAll(\"td:nth-child(\" + (columnIndex + 1) + \")\");\n }\n }\n else if (col.getFreezeTableName() === 'movable') {\n headerTable = gObj.getHeaderContent().querySelector('.' + literals.movableHeader).children[0];\n contentTable = gObj.getContent().querySelector('.' + literals.movableContent).children[0];\n headerTextClone = headerTable.querySelector('[e-mappinguid=\"' + uid + '\"]').parentElement.cloneNode(true);\n contentTextClone = contentTable.querySelectorAll(\"td:nth-child(\" + ((columnIndex - left) + 1) + \")\");\n if (footerTable) {\n footerTable = gObj.getFooterContent().querySelector('.e-movablefootercontent').children[0];\n footerTextClone = footerTable.querySelectorAll(\"td:nth-child(\" + ((columnIndex - left) + 1) + \")\");\n }\n }\n else if (col.getFreezeTableName() === literals.frozenRight) {\n headerTable = gObj.getHeaderContent().querySelector('.e-frozen-right-header').children[0];\n contentTable = gObj.getContent().querySelector('.e-frozen-right-content').children[0];\n headerTextClone = headerTable.querySelector('[e-mappinguid=\"' + uid + '\"]').parentElement.cloneNode(true);\n contentTextClone = contentTable.querySelectorAll(\"td:nth-child(\" + ((columnIndex - (left + movable)) + 1) + \")\");\n if (footerTable) {\n footerTable = gObj.getFooterContent().querySelector('.e-movablefootercontent').children[0];\n footerTextClone = footerTable.querySelectorAll(\"td:nth-child(\" + ((columnIndex - (left + movable)) + 1) + \")\");\n }\n }\n }\n else {\n headerTable = gObj.getHeaderTable();\n contentTable = gObj.getContentTable();\n headerTextClone = headerTable.querySelector('[e-mappinguid=\"' + uid + '\"]').parentElement.cloneNode(true);\n contentTextClone = contentTable.querySelectorAll(\"td.e-rowcell:nth-child(\" + (columnIndex + 1) + \"):not(.e-groupcaption):not(.e-detailcell)\");\n if (footerTable) {\n footerTextClone = footerTable.querySelectorAll(\"td:nth-child(\" + (columnIndex + 1) + \"):not(.e-groupcaption)\");\n }\n }\n var indentWidthClone = [].slice.call(headerTable.querySelector('tr').getElementsByClassName('e-grouptopleftcell'));\n if (indentWidthClone.length > 0) {\n for (var i = 0; i < indentWidthClone.length; i++) {\n indentWidth += indentWidthClone[parseInt(i.toString(), 10)].offsetWidth;\n }\n }\n var detailsElement = contentTable.querySelector('.e-detailrowcollapse') ||\n contentTable.querySelector('.e-detailrowexpand');\n if ((this.parent.detailTemplate || this.parent.childGrid) && detailsElement) {\n indentWidth += detailsElement.offsetWidth;\n }\n var headerText = [headerTextClone];\n var contentText = [];\n var footerText = [];\n if (footerTable) {\n for (var i = 0; i < footerTextClone.length; i++) {\n footerText[parseInt(i.toString(), 10)] = footerTextClone[parseInt(i.toString(), 10)].cloneNode(true);\n }\n }\n for (var i = 0; i < contentTextClone.length; i++) {\n contentText[parseInt(i.toString(), 10)] = contentTextClone[parseInt(i.toString(), 10)].cloneNode(true);\n }\n var wHeader = this.createTable(headerTable, headerText, headerDivTag);\n var wFooter = null;\n var wContent = null;\n if (gObj.getCurrentViewRecords().length) {\n wContent = this.createTable(contentTable, contentText, contentDivTag);\n }\n if (footerText.length) {\n wFooter = this.createTable(footerTable, footerText, footerDivTag);\n }\n var columnbyindex = gObj.getColumns()[parseInt(columnIndexByField.toString(), 10)];\n var width = columnbyindex.width = formatUnit(Math.max(wHeader, wContent, wFooter));\n var colMaxWidth = columnbyindex.maxWidth && parseFloat(columnbyindex.maxWidth.toString());\n if (parseInt(width, 10) > colMaxWidth) {\n columnbyindex.width = colMaxWidth;\n }\n this.widthService.setColumnWidth(gObj.getColumns()[parseInt(columnIndexByField.toString(), 10)]);\n var result = gObj.getColumns().some(function (x) { return x.width === null\n || x.width === undefined || x.width.length <= 0; });\n if (result === false) {\n var element = void 0;\n if (this.parent.isAutoFitColumns && gObj.isFrozenGrid()) {\n var frozenMovableColumns = getExactFrozenMovableColumn(this.parent);\n if (columnbyindex.freezeTable === 'frozen-left') {\n element = frozenMovableColumns.frozenLeft;\n }\n else if (columnbyindex.freezeTable === 'movable') {\n element = frozenMovableColumns.movable;\n }\n else {\n element = frozenMovableColumns.frozenRight;\n }\n }\n else {\n element = gObj.getColumns();\n }\n for (var i = 0; i < element.length; i++) {\n if (element[parseInt(i.toString(), 10)].visible) {\n tWidth = tWidth + parseFloat(element[parseInt(i.toString(), 10)].width);\n }\n }\n }\n var calcTableWidth = tWidth + indentWidth;\n if (tWidth > 0 && !gObj.isFrozenGrid()) {\n if (this.parent.detailTemplate || this.parent.childGrid) {\n this.widthService.setColumnWidth(new Column({ width: '30px' }));\n }\n if (this.parent.resizeSettings.mode === 'Auto') {\n calcTableWidth = '100%';\n }\n headerTable.style.width = formatUnit(calcTableWidth);\n contentTable.style.width = formatUnit(calcTableWidth);\n if (!isNullOrUndefined(footerTable)) {\n footerTable.style.width = formatUnit(calcTableWidth);\n }\n }\n if (gObj.isFrozenGrid()) {\n if (this.parent.isAutoFitColumns) {\n headerTable.style.width = formatUnit(calcTableWidth);\n contentTable.style.width = formatUnit(calcTableWidth);\n }\n this.widthService.refreshFrozenScrollbar();\n }\n var tableWidth = headerTable.offsetWidth;\n var contentwidth = (gObj.getContent().scrollWidth);\n if (contentwidth > tableWidth) {\n headerTable.classList.add('e-tableborder');\n contentTable.classList.add('e-tableborder');\n }\n else {\n headerTable.classList.remove('e-tableborder');\n contentTable.classList.remove('e-tableborder');\n }\n if (!isNullOrUndefined(footerTable)) {\n footerTable.classList.add('e-tableborder');\n }\n };\n /**\n * To destroy the resize\n *\n * @returns {void}\n * @hidden\n */\n Resize.prototype.destroy = function () {\n var gridElement = this.parent.element;\n if (!gridElement || (!gridElement.querySelector('.' + literals.gridHeader) && !gridElement.querySelector('.' + literals.gridContent))) {\n return;\n }\n this.widthService = null;\n this.unwireEvents();\n this.removeEventListener();\n };\n /**\n * For internal use only - Get the module name.\n *\n * @returns {string} returns the module name\n * @private\n */\n Resize.prototype.getModuleName = function () {\n return 'resize';\n };\n Resize.prototype.findColumn = function (fName) {\n for (var i = 0; i < fName.length; i++) {\n var fieldName = fName[parseInt(i.toString(), 10)];\n var columnIndex = this.parent.getColumnIndexByField(fieldName);\n var column = this.parent.getColumns()[parseInt(columnIndex.toString(), 10)];\n if (columnIndex > -1 && !isNullOrUndefined(column) && column.visible === true) {\n this.resizeColumn(fieldName, columnIndex);\n }\n }\n if (this.parent.allowTextWrap) {\n this.parent.notify(events.freezeRender, { case: 'refreshHeight', isModeChg: true });\n }\n };\n /**\n * To create table for autofit\n *\n * @param {Element} table - specifies the table\n * @param {Element[]} text - specifies the text\n * @param {string} tag - specifies the tag name\n * @returns {number} returns the number\n * @hidden\n */\n Resize.prototype.createTable = function (table, text, tag) {\n var myTableDiv = this.parent.createElement('div');\n myTableDiv.className = this.parent.element.className;\n myTableDiv.style.cssText = 'display: inline-block;visibility:hidden;position:absolute';\n var mySubDiv = this.parent.createElement('div');\n mySubDiv.className = tag;\n var myTable = this.parent.createElement('table', { attrs: { role: 'grid' } });\n myTable.className = table.className;\n myTable.classList.add('e-resizetable');\n myTable.style.cssText = 'table-layout: auto;width: auto';\n var myTr = this.parent.createElement('tr');\n for (var i = 0; i < text.length; i++) {\n var tr = myTr.cloneNode();\n tr.className = table.querySelector('tr').className;\n tr.appendChild(text[parseInt(i.toString(), 10)]);\n myTable.appendChild(tr);\n }\n mySubDiv.appendChild(myTable);\n myTableDiv.appendChild(mySubDiv);\n document.body.appendChild(myTableDiv);\n var offsetWidthValue = myTable.getBoundingClientRect().width;\n document.body.removeChild(myTableDiv);\n return Math.ceil(offsetWidthValue);\n };\n /**\n * @returns {void}\n * @hidden\n */\n Resize.prototype.addEventListener = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n this.parent.on(events.headerRefreshed, this.refreshHeight, this);\n this.parent.on(events.initialEnd, this.wireEvents, this);\n this.parent.on(events.contentReady, this.autoFit, this);\n this.parent.on(events.refreshHandlers, this.refreshHeight, this);\n this.parent.on(events.destroy, this.destroy, this);\n };\n /**\n * @returns {void}\n * @hidden\n */\n Resize.prototype.removeEventListener = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n this.parent.off(events.headerRefreshed, this.refreshHeight);\n this.parent.off(events.initialEnd, this.wireEvents);\n this.parent.off(events.refreshHandlers, this.refreshHeight);\n this.parent.off(events.destroy, this.destroy);\n };\n /**\n * @returns {void}\n * @hidden\n */\n Resize.prototype.render = function () {\n this.unwireEvents();\n this.wireEvents();\n this.setHandlerHeight();\n };\n Resize.prototype.refreshHeight = function () {\n if (this.parent.getHeaderTable()) {\n var element = this.getResizeHandlers();\n for (var i = 0; i < element.length; i++) {\n if (element[parseInt(i.toString(), 10)].parentElement.offsetHeight > 0) {\n element[parseInt(i.toString(), 10)].style.height = element[parseInt(i.toString(), 10)].parentElement.offsetHeight + 'px';\n }\n }\n this.setHandlerHeight();\n }\n };\n Resize.prototype.wireEvents = function () {\n EventHandler.add(this.parent.getHeaderContent(), Browser.touchStartEvent, this.touchResizeStart, this);\n EventHandler.add(this.parent.getHeaderContent(), events.dblclick, this.callAutoFit, this);\n };\n Resize.prototype.unwireEvents = function () {\n EventHandler.remove(this.parent.getHeaderContent(), Browser.touchStartEvent, this.touchResizeStart);\n EventHandler.remove(this.parent.getHeaderContent(), events.dblclick, this.callAutoFit);\n };\n Resize.prototype.getResizeHandlers = function () {\n return this.parent.isFrozenGrid() ?\n [].slice.call(this.parent.getHeaderContent().getElementsByClassName(resizeClassList.root))\n : [].slice.call(this.parent.getHeaderTable().getElementsByClassName(resizeClassList.root));\n };\n Resize.prototype.setHandlerHeight = function () {\n var element = [].slice.call(this.parent.getHeaderTable().getElementsByClassName(resizeClassList.suppress));\n for (var i = 0; i < element.length; i++) {\n element[parseInt(i.toString(), 10)].style.height = element[parseInt(i.toString(), 10)].parentElement.offsetHeight + 'px';\n }\n };\n Resize.prototype.callAutoFit = function (e) {\n if (e.target.classList.contains('e-rhandler')) {\n var col = this.getTargetColumn(e);\n if (col.columns) {\n return;\n }\n this.resizeColumn(col.field, this.parent.getNormalizedColumnIndex(col.uid), col.uid);\n var header = closest(e.target, resizeClassList.header);\n header.classList.add('e-resized');\n }\n };\n Resize.prototype.touchResizeStart = function (e) {\n if (!Global.timer) {\n Global.timer = setTimeout(function () {\n Global.timer = null;\n }, 300);\n return this.resizeStart(e);\n }\n else {\n clearTimeout(Global.timer);\n Global.timer = null;\n this.callAutoFit(e);\n }\n };\n Resize.prototype.resizeStart = function (e) {\n var _this = this;\n if (e.target.classList.contains('e-rhandler')) {\n if (!this.helper) {\n if (this.getScrollBarWidth() === 0) {\n this.resizeProcess = true;\n if (this.parent.allowGrouping) {\n for (var i = 0; i < this.parent.groupSettings.columns.length; i++) {\n this.widthService.setColumnWidth(new Column({ width: '30px' }), i);\n }\n }\n for (var _i = 0, _a = this.refreshColumnWidth(); _i < _a.length; _i++) {\n var col = _a[_i];\n this.widthService.setColumnWidth(col);\n }\n this.widthService.setWidthToTable();\n this.resizeProcess = false;\n }\n this.refreshStackedColumnWidth();\n this.element = e.target;\n if (this.parent.getVisibleFrozenColumns()) {\n var mtbody = this.parent.getMovableContentTbody();\n var ftbody = this.parent.getFrozenLeftContentTbody();\n var frtbody = this.parent.getFrozenRightContentTbody();\n var mtr = [].slice.call(mtbody.childNodes);\n var ftr = [].slice.call(ftbody.childNodes);\n var frTr = [];\n if (this.parent.getFrozenMode() === literals.leftRight && frtbody) {\n frTr = [].slice.call(frtbody.childNodes);\n }\n var _loop_1 = function (i) {\n gridActionHandler(this_1.parent, function (tableName, row) {\n if (_this.parent.rowHeight) {\n row[parseInt(i.toString(), 10)].style.height = _this.parent.rowHeight + 'px';\n }\n else {\n row[parseInt(i.toString(), 10)].style.removeProperty('height');\n }\n }, [ftr, mtr, frTr]);\n };\n var this_1 = this;\n for (var i = 0; i < mtr.length; i++) {\n _loop_1(i);\n }\n }\n this.parentElementWidth = this.parent.element.getBoundingClientRect().width;\n this.appendHelper();\n this.column = this.getTargetColumn(e);\n this.pageX = this.getPointX(e);\n if (this.column.getFreezeTableName() === literals.frozenRight) {\n if (this.parent.enableRtl) {\n this.minMove = (this.column.minWidth ? parseFloat(this.column.minWidth.toString()) : 0)\n - parseFloat(isNullOrUndefined(this.column.width) ? '' : this.column.width.toString());\n }\n else {\n this.minMove = parseFloat(isNullOrUndefined(this.column.width) ? '' : this.column.width.toString())\n - (this.column.minWidth ? parseFloat(this.column.minWidth.toString()) : 0);\n }\n }\n else if (this.parent.enableRtl) {\n this.minMove = parseFloat(this.column.width.toString())\n - (this.column.minWidth ? parseFloat(this.column.minWidth.toString()) : 0);\n }\n else {\n this.minMove = (this.column.minWidth ? parseFloat(this.column.minWidth.toString()) : 0)\n - parseFloat(isNullOrUndefined(this.column.width) ? '' : this.column.width.toString());\n }\n this.minMove += this.pageX;\n }\n if (Browser.isDevice && !this.helper.classList.contains(resizeClassList.icon)) {\n this.helper.classList.add(resizeClassList.icon);\n EventHandler.add(document, Browser.touchStartEvent, this.removeHelper, this);\n EventHandler.add(this.helper, Browser.touchStartEvent, this.resizeStart, this);\n }\n else {\n var args = { e: e, column: this.column };\n this.parent.trigger(events.resizeStart, args, function (args) {\n if (args.cancel || _this.parent.isEdit) {\n _this.cancelResizeAction();\n return;\n }\n EventHandler.add(document, Browser.touchEndEvent, _this.resizeEnd, _this);\n EventHandler.add(_this.parent.element, Browser.touchMoveEvent, _this.resizing, _this);\n _this.updateCursor('add');\n });\n }\n }\n };\n Resize.prototype.cancelResizeAction = function (removeEvents) {\n if (removeEvents) {\n EventHandler.remove(this.parent.element, Browser.touchMoveEvent, this.resizing);\n EventHandler.remove(document, Browser.touchEndEvent, this.resizeEnd);\n this.updateCursor('remove');\n }\n if (Browser.isDevice) {\n EventHandler.remove(document, Browser.touchStartEvent, this.removeHelper);\n EventHandler.remove(this.helper, Browser.touchStartEvent, this.resizeStart);\n }\n detach(this.helper);\n this.refresh();\n };\n Resize.prototype.getWidth = function (width, minWidth, maxWidth) {\n if (minWidth && width < minWidth) {\n return minWidth;\n }\n else if ((maxWidth && width > maxWidth)) {\n return maxWidth;\n }\n else {\n return width;\n }\n };\n Resize.prototype.updateResizeEleHeight = function () {\n var elements = [].slice.call(this.parent.getHeaderContent().getElementsByClassName('e-rhandler'));\n for (var i = 0; i < elements.length; i++) {\n elements[parseInt(i.toString(), 10)].style.height = this.element.parentElement.offsetHeight + 'px';\n }\n };\n Resize.prototype.getColData = function (column, mousemove) {\n return {\n width: parseFloat(isNullOrUndefined(this.widthService.getWidth(column)) || this.widthService.getWidth(column) === 'auto' ? '0'\n : this.widthService.getWidth(column).toString()) + mousemove,\n minWidth: column.minWidth ? parseFloat(column.minWidth.toString()) : null,\n maxWidth: column.maxWidth ? parseFloat(column.maxWidth.toString()) : null\n };\n };\n Resize.prototype.resizing = function (e) {\n if (isNullOrUndefined(this.column)) {\n return;\n }\n var offsetWidth = 0;\n if (isNullOrUndefined(this.column)) {\n offsetWidth = parentsUntil(this.element, 'th').offsetWidth;\n }\n if (this.parent.allowTextWrap) {\n this.updateResizeEleHeight();\n this.setHelperHeight();\n }\n var pageX = this.getPointX(e);\n var mousemove = this.parent.enableRtl ? -(pageX - this.pageX) : (pageX - this.pageX);\n if (this.column.getFreezeTableName() === literals.frozenRight) {\n mousemove = this.parent.enableRtl ? (pageX - this.pageX) : (this.pageX - pageX);\n }\n var colData = this.getColData(this.column, mousemove);\n if (!colData.width) {\n colData.width = closest(this.element, 'th').offsetWidth;\n }\n var width = this.getWidth(colData.width, colData.minWidth, colData.maxWidth);\n this.parent.log('resize_min_max', { column: this.column, width: width });\n if (this.column.getFreezeTableName() === literals.frozenRight) {\n if ((this.parent.enableRtl && this.minMove >= pageX) || (!this.parent.enableRtl && this.minMove <= pageX)) {\n width = this.column.minWidth ? parseFloat(this.column.minWidth.toString()) : 10;\n this.pageX = pageX = this.minMove;\n }\n }\n if ((this.column.getFreezeTableName() !== literals.frozenRight\n && ((!this.parent.enableRtl && this.minMove >= pageX) || (this.parent.enableRtl && this.minMove <= pageX)))\n || (this.column.getFreezeTableName() === literals.frozenRight && ((this.parent.enableRtl && this.minMove >= pageX)\n || (!this.parent.enableRtl && this.minMove <= pageX)))) {\n width = this.column.minWidth ? parseFloat(this.column.minWidth.toString()) : 10;\n this.pageX = pageX = this.minMove;\n }\n if (width !== parseFloat(isNullOrUndefined(this.column.width) || this.column.width === 'auto' ?\n offsetWidth.toString() : this.column.width.toString())) {\n this.pageX = pageX;\n this.column.width = formatUnit(width);\n var args = {\n e: e,\n column: this.column\n };\n this.parent.trigger(events.onResize, args);\n if (args.cancel) {\n this.cancelResizeAction(true);\n return;\n }\n var columns = [this.column];\n var finalColumns = [this.column];\n if (this.column.columns) {\n columns = this.getSubColumns(this.column, []);\n columns = this.calulateColumnsWidth(columns, false, mousemove);\n finalColumns = this.calulateColumnsWidth(columns, true, mousemove);\n }\n this.resizeProcess = true;\n for (var _i = 0, finalColumns_1 = finalColumns; _i < finalColumns_1.length; _i++) {\n var col = finalColumns_1[_i];\n this.widthService.setColumnWidth(col, null, 'resize');\n }\n this.resizeProcess = false;\n this.updateHelper();\n }\n this.isDblClk = false;\n };\n Resize.prototype.calulateColumnsWidth = function (columns, isUpdate, mousemove) {\n var finalColumns = [];\n for (var _i = 0, columns_1 = columns; _i < columns_1.length; _i++) {\n var col = columns_1[_i];\n var totalWidth = 0;\n for (var i = 0; i < columns.length; i++) {\n totalWidth += parseFloat(columns[parseInt(i.toString(), 10)].width.toString());\n }\n var colData = this.getColData(col, (parseFloat(col.width)) * mousemove / totalWidth);\n var colWidth = this.getWidth(colData.width, colData.minWidth, colData.maxWidth);\n if ((colWidth !== parseFloat(col.width.toString()))) {\n if (isUpdate) {\n col.width = formatUnit(colWidth < 1 ? 1 : colWidth);\n }\n finalColumns.push(col);\n }\n }\n return finalColumns;\n };\n Resize.prototype.getSubColumns = function (column, subColumns) {\n for (var _i = 0, _a = column.columns; _i < _a.length; _i++) {\n var col = _a[_i];\n if (col.visible !== false && col.allowResizing) {\n if (col.columns) {\n this.getSubColumns(col, subColumns);\n }\n else {\n subColumns.push(col);\n }\n }\n }\n return subColumns;\n };\n Resize.prototype.resizeEnd = function (e) {\n if (!this.helper || this.parent.isDestroyed) {\n return;\n }\n var gObj = this.parent;\n EventHandler.remove(this.parent.element, Browser.touchMoveEvent, this.resizing);\n EventHandler.remove(document, Browser.touchEndEvent, this.resizeEnd);\n this.updateCursor('remove');\n detach(this.helper);\n var args = { e: e, column: this.column };\n var content = this.parent.getContent().querySelector('.' + literals.content);\n var cTable = content.querySelector('.' + literals.movableContent) ? content.querySelector('.' + literals.movableContent) : content;\n if (cTable.scrollHeight > cTable.clientHeight) {\n this.parent.scrollModule.setPadding();\n cTable.style.overflowY = 'scroll';\n }\n this.parent.trigger(events.resizeStop, args);\n closest(this.element, '.e-headercell').classList.add('e-resized');\n if (parentsUntil(this.element, 'e-frozenheader')) {\n this.isFrozenColResized = true;\n }\n else {\n this.isFrozenColResized = false;\n }\n if (this.parent.isFrozenGrid()) {\n this.parent.notify(events.freezeRender, { case: 'textwrap' });\n }\n if (this.parent.allowTextWrap) {\n this.updateResizeEleHeight();\n this.parent.notify(events.textWrapRefresh, { case: 'textwrap' });\n }\n var headerTable;\n var contentTable;\n var footerTable;\n var rightCnt = gObj.getFrozenRightColumnsCount();\n if (!isNullOrUndefined(gObj.getFooterContent())) {\n footerTable = gObj.getFooterContentTable();\n }\n if (gObj.isFrozenGrid()) {\n if (rightCnt > 0) {\n headerTable = gObj.getHeaderContent().querySelector('.e-frozen-right-header').children[0];\n contentTable = gObj.getContent().querySelector('.e-frozen-right-content').children[0];\n }\n else {\n headerTable = gObj.getHeaderContent().querySelector('.' + literals.movableHeader).children[0];\n contentTable = gObj.getContent().querySelector('.' + literals.movableContent).children[0];\n }\n }\n else {\n headerTable = gObj.getHeaderTable();\n contentTable = gObj.getContentTable();\n }\n var tableWidth = headerTable.offsetWidth;\n var contentwidth = (gObj.getContent().scrollWidth);\n if (contentwidth > tableWidth) {\n addClass([headerTable, contentTable], ['e-tableborder']);\n }\n else {\n removeClass([headerTable, contentTable], ['e-tableborder']);\n }\n if (!isNullOrUndefined(footerTable)) {\n footerTable.classList.add('e-tableborder');\n }\n this.refresh();\n this.doubleTapEvent(e);\n this.isDblClk = true;\n };\n Resize.prototype.getPointX = function (e) {\n if (e.touches && e.touches.length) {\n return e.touches[0].pageX;\n }\n else {\n return e.pageX;\n }\n };\n Resize.prototype.refreshColumnWidth = function () {\n var columns = this.parent.getColumns();\n for (var _i = 0, _a = [].slice.apply(this.parent.getHeaderContent().querySelectorAll('th.e-headercell')); _i < _a.length; _i++) {\n var ele = _a[_i];\n for (var _b = 0, columns_2 = columns; _b < columns_2.length; _b++) {\n var column = columns_2[_b];\n if (ele.querySelector('[e-mappinguid]') &&\n ele.querySelector('[e-mappinguid]').getAttribute('e-mappinguid') === column.uid && column.visible) {\n column.width = ele.getBoundingClientRect().width;\n break;\n }\n }\n }\n return columns;\n };\n Resize.prototype.refreshStackedColumnWidth = function () {\n for (var _i = 0, _a = this.parent.getStackedColumns(this.parent.columns); _i < _a.length; _i++) {\n var stackedColumn = _a[_i];\n stackedColumn.width = this.getStackedWidth(stackedColumn, 0);\n }\n };\n Resize.prototype.getStackedWidth = function (column, width) {\n for (var _i = 0, _a = column.columns; _i < _a.length; _i++) {\n var col = _a[_i];\n if (col.visible !== false) {\n if (col.columns) {\n this.getStackedWidth(col, width);\n }\n else {\n width += col.width;\n }\n }\n }\n return width;\n };\n Resize.prototype.getTargetColumn = function (e) {\n var cell = closest(e.target, resizeClassList.header);\n cell = cell.querySelector('.e-headercelldiv') || cell.querySelector('.e-stackedheadercelldiv');\n var uid = cell.getAttribute('e-mappinguid');\n return this.parent.getColumnByUid(uid);\n };\n Resize.prototype.updateCursor = function (action) {\n var headerRows = [].slice.call(this.parent.getHeaderContent().querySelectorAll('th'));\n headerRows.push(this.parent.element);\n for (var _i = 0, headerRows_1 = headerRows; _i < headerRows_1.length; _i++) {\n var row = headerRows_1[_i];\n row.classList[\"\" + action](resizeClassList.cursor);\n }\n };\n Resize.prototype.refresh = function () {\n this.column = null;\n this.pageX = null;\n this.element = null;\n this.helper = null;\n };\n Resize.prototype.appendHelper = function () {\n this.helper = this.parent.createElement('div', {\n className: resizeClassList.helper\n });\n this.parent.element.appendChild(this.helper);\n this.setHelperHeight();\n };\n Resize.prototype.setHelperHeight = function () {\n var isFrozen = this.parent.isFrozenGrid();\n var height = isFrozen ? this.parent.getContent().querySelector('.' + literals.content).offsetHeight\n : this.parent.getContent().offsetHeight - this.getScrollBarWidth();\n var rect = closest(this.element, resizeClassList.header);\n var tr = [].slice.call(this.parent.getHeaderContent().querySelectorAll('tr'));\n var right = this.parent.getFrozenRightColumnsCount();\n if (isFrozen) {\n if (parentsUntil(rect, literals.movableHeader)) {\n tr = [].slice.call(this.parent.getHeaderContent().querySelector('.' + literals.movableHeader).querySelectorAll('tr'));\n }\n else if (right && parentsUntil(rect, 'e-frozen-right-header')) {\n tr = [].slice.call(this.parent.getHeaderContent().querySelector('.e-frozen-right-header').querySelectorAll('tr'));\n }\n else {\n tr = [].slice.call(this.parent.getHeaderContent().querySelector('.e-frozen-left-header').querySelectorAll('tr'));\n }\n }\n for (var i = tr.indexOf(rect.parentElement); i < tr.length && i > -1; i++) {\n height += tr[parseInt(i.toString(), 10)].offsetHeight;\n }\n var pos = this.calcPos(rect);\n if (parentsUntil(rect, 'e-frozen-right-header')) {\n pos.left += (this.parent.enableRtl ? rect.offsetWidth - 2 : 0 - 1);\n }\n else {\n pos.left += (this.parent.enableRtl ? 0 - 1 : rect.offsetWidth - 2);\n }\n this.helper.style.cssText = 'height: ' + height + 'px; top: ' + pos.top + 'px; left:' + Math.floor(pos.left) + 'px;';\n if (this.parent.enableVirtualization) {\n this.helper.classList.add('e-virtual-rhandler');\n }\n };\n Resize.prototype.getScrollBarWidth = function (height) {\n var ele = this.parent.getContent().firstChild;\n return (ele.scrollHeight > ele.clientHeight && height) ||\n ele.scrollWidth > ele.clientWidth ? getScrollBarWidth() : 0;\n };\n Resize.prototype.removeHelper = function (e) {\n var cls = e.target.classList;\n if (!(cls.contains(resizeClassList.root) || cls.contains(resizeClassList.icon)) && this.helper) {\n EventHandler.remove(document, Browser.touchStartEvent, this.removeHelper);\n EventHandler.remove(this.helper, Browser.touchStartEvent, this.resizeStart);\n detach(this.helper);\n this.refresh();\n }\n };\n Resize.prototype.updateHelper = function () {\n var rect = closest(this.element, resizeClassList.header);\n var left;\n if (parentsUntil(rect, 'e-frozen-right-header')) {\n left = Math.floor(this.calcPos(rect).left + (this.parent.enableRtl ? rect.offsetWidth - 2 : 0 - 1));\n }\n else {\n left = Math.floor(this.calcPos(rect).left + (this.parent.enableRtl ? 0 - 1 : rect.offsetWidth - 2));\n }\n var borderWidth = 2; // to maintain the helper inside of grid element.\n if (left > this.parentElementWidth) {\n left = this.parentElementWidth - borderWidth;\n }\n if (this.parent.isFrozenGrid()) {\n var table = closest(rect, '.' + literals.table);\n var fLeft = table.offsetLeft;\n if (left < fLeft) {\n left = fLeft;\n }\n }\n this.helper.style.left = left + 'px';\n };\n Resize.prototype.calcPos = function (elem) {\n var parentOffset = {\n top: 0,\n left: 0\n };\n var offset = elem.getBoundingClientRect();\n var doc = elem.ownerDocument;\n var offsetParent = parentsUntil(elem, 'e-grid') || doc.documentElement;\n while (offsetParent &&\n (offsetParent === doc.body || offsetParent === doc.documentElement) &&\n offsetParent.style.position === 'static') {\n offsetParent = offsetParent.parentNode;\n }\n if (offsetParent && offsetParent !== elem && offsetParent.nodeType === 1) {\n parentOffset = offsetParent.getBoundingClientRect();\n }\n return {\n top: offset.top - parentOffset.top,\n left: offset.left - parentOffset.left\n };\n };\n Resize.prototype.doubleTapEvent = function (e) {\n var _this = this;\n if (this.getUserAgent() && this.isDblClk) {\n if (!this.tapped) {\n this.tapped = setTimeout(function () {\n _this.tapped = null;\n }, 300);\n }\n else {\n clearTimeout(this.tapped);\n this.callAutoFit(e);\n this.tapped = null;\n }\n }\n };\n Resize.prototype.getUserAgent = function () {\n var userAgent = Browser.userAgent.toLowerCase();\n return /iphone|ipod|ipad/.test(userAgent);\n };\n Resize.prototype.timeoutHandler = function () {\n this.tapped = null;\n };\n return Resize;\n}());\nexport { Resize };\n","import { RowModelGenerator } from '../services/row-model-generator';\nimport { splitFrozenRowObjectCells } from '../base/util';\n/**\n * FreezeRowModelGenerator is used to generate grid data rows with freeze row and column.\n *\n * @hidden\n */\nvar FreezeRowModelGenerator = /** @class */ (function () {\n function FreezeRowModelGenerator(parent) {\n this.parent = parent;\n this.rowModelGenerator = new RowModelGenerator(this.parent);\n }\n FreezeRowModelGenerator.prototype.generateRows = function (data, notifyArgs, virtualRows) {\n var tableName;\n if (notifyArgs.renderFrozenRightContent || (notifyArgs.renderMovableContent && !this.parent.enableVirtualization)) {\n tableName = 'frozen-right';\n }\n else if (notifyArgs.renderMovableContent || notifyArgs.isFrozen) {\n tableName = 'movable';\n }\n else {\n tableName = this.parent.getFrozenLeftCount() ? 'frozen-left' : 'frozen-right';\n }\n if (notifyArgs.requestType === 'virtualscroll' && notifyArgs.virtualInfo.sentinelInfo.axis === 'X') {\n if (tableName !== 'movable') {\n return null;\n }\n }\n var row = this.parent.enableVirtualization && !notifyArgs.isFrozenRowsRender ? virtualRows\n : this.rowModelGenerator.generateRows(data, notifyArgs);\n for (var i = 0, len = row.length; i < len; i++) {\n row[parseInt(i.toString(), 10)].cells =\n splitFrozenRowObjectCells(this.parent, row[parseInt(i.toString(), 10)].cells, tableName);\n }\n return row;\n };\n return FreezeRowModelGenerator;\n}());\nexport { FreezeRowModelGenerator };\n","import { isNullOrUndefined, remove, extend } from '@syncfusion/ej2-base';\nimport { RowModelGenerator } from '../services/row-model-generator';\nimport { FreezeRowModelGenerator } from '../services/freeze-row-model-generator';\nimport { RowRenderer } from '../renderer/row-renderer';\nimport * as events from '../base/constant';\nimport { getScrollBarWidth, getEditedDataIndex, resetRowIndex, setRowElements, getRowIndexFromElement, getGroupKeysAndFields, getPredicates, generateExpandPredicates } from '../base/util';\nimport * as literals from '../base/string-literals';\n/**\n * Infinite Scrolling class\n *\n * @hidden\n */\nvar InfiniteScroll = /** @class */ (function () {\n /**\n * Constructor for the Grid infinite scrolling.\n *\n * @param {IGrid} parent - specifies the IGrid\n * @param {ServiceLocator} serviceLocator - specifies the ServiceLocator\n * @hidden\n */\n function InfiniteScroll(parent, serviceLocator) {\n this.infiniteCache = {};\n this.infiniteCurrentViewData = {};\n this.infiniteFrozenCache = {};\n this.isDownScroll = false;\n this.isUpScroll = false;\n this.isScroll = true;\n this.enableContinuousScroll = false;\n this.initialRender = true;\n this.isRemove = false;\n this.isInitialCollapse = false;\n this.prevScrollTop = 0;\n this.actions = ['filtering', 'searching', 'grouping', 'ungrouping', 'reorder', 'sorting', 'refresh'];\n this.keys = [literals.downArrow, literals.upArrow, literals.enter, literals.shiftEnter];\n this.rowTop = 0;\n this.isInitialMovableRender = true;\n this.virtualInfiniteData = {};\n this.isCancel = false;\n this.emptyRowData = {};\n this.isNormaledit = false;\n this.isInfiniteScroll = false;\n this.isLastPage = false;\n this.isInitialRender = true;\n this.isFocusScroll = false;\n this.isGroupCollapse = false;\n this.parent = parent;\n this.serviceLocator = serviceLocator;\n this.isNormaledit = this.parent.editSettings.mode === 'Normal';\n this.addEventListener();\n this.widthService = serviceLocator.getService('widthService');\n this.rowModelGenerator = this.parent.isFrozenGrid() ? new FreezeRowModelGenerator(this.parent)\n : new RowModelGenerator(this.parent);\n }\n InfiniteScroll.prototype.getModuleName = function () {\n return 'infiniteScroll';\n };\n /**\n * @returns {void}\n * @hidden\n */\n InfiniteScroll.prototype.addEventListener = function () {\n this.parent.on(events.dataReady, this.onDataReady, this);\n this.parent.on(events.dataSourceModified, this.dataSourceModified, this);\n this.parent.on(events.infinitePageQuery, this.infinitePageQuery, this);\n this.parent.on(events.infiniteScrollHandler, this.infiniteScrollHandler, this);\n this.parent.on(events.beforeCellFocused, this.infiniteCellFocus, this);\n this.parent.on(events.appendInfiniteContent, this.appendInfiniteRows, this);\n this.parent.on(events.removeInfiniteRows, this.removeInfiniteCacheRows, this);\n this.parent.on(events.resetInfiniteBlocks, this.resetInfiniteBlocks, this);\n this.parent.on(events.setInfiniteCache, this.setCache, this);\n this.parent.on(events.initialCollapse, this.ensureIntialCollapse, this);\n this.parent.on(events.keyPressed, this.infiniteCellFocus, this);\n this.parent.on(events.infiniteShowHide, this.setDisplayNone, this);\n this.parent.on(events.virtualScrollEditActionBegin, this.editActionBegin, this);\n this.parent.on(events.getVirtualData, this.getVirtualInfiniteData, this);\n this.parent.on(events.editReset, this.resetInfiniteEdit, this);\n this.parent.on(events.virtualScrollEditSuccess, this.infiniteEditSuccess, this);\n this.parent.on(events.refreshVirtualCache, this.refreshInfiniteCache, this);\n this.parent.on(events.refreshInfiniteEditrowindex, this.refreshInfiniteEditrowindex, this);\n this.parent.on(events.infiniteEditHandler, this.infiniteEditHandler, this);\n this.parent.on(events.virtualScrollAddActionBegin, this.infiniteAddActionBegin, this);\n this.parent.on(events.modelChanged, this.modelChanged, this);\n this.parent.on(events.refreshInfiniteCurrentViewData, this.refreshInfiniteCurrentViewData, this);\n this.parent.on(events.destroy, this.destroy, this);\n this.parent.on(events.contentReady, this.selectNewRow, this);\n this.parent.on(events.captionActionComplete, this.captionActionComplete, this);\n this.parent.on(events.setVirtualPageQuery, this.setGroupCollapsePageQuery, this);\n this.actionBeginFunction = this.actionBegin.bind(this);\n this.actionCompleteFunction = this.actionComplete.bind(this);\n this.dataBoundFunction = this.dataBound.bind(this);\n this.parent.on(events.deleteComplete, this.deleteComplate, this);\n this.parent.addEventListener(events.actionBegin, this.actionBeginFunction);\n this.parent.addEventListener(events.actionComplete, this.actionCompleteFunction);\n this.parent.addEventListener(events.dataBound, this.dataBoundFunction);\n };\n /**\n * @returns {void}\n * @hidden\n */\n InfiniteScroll.prototype.removeEventListener = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n this.parent.off(events.dataReady, this.onDataReady);\n this.parent.off(events.dataSourceModified, this.dataSourceModified);\n this.parent.off(events.infinitePageQuery, this.infinitePageQuery);\n this.parent.off(events.infiniteScrollHandler, this.infiniteScrollHandler);\n this.parent.off(events.beforeCellFocused, this.infiniteCellFocus);\n this.parent.off(events.appendInfiniteContent, this.appendInfiniteRows);\n this.parent.off(events.removeInfiniteRows, this.removeInfiniteCacheRows);\n this.parent.off(events.resetInfiniteBlocks, this.resetInfiniteBlocks);\n this.parent.off(events.setInfiniteCache, this.setCache);\n this.parent.off(events.initialCollapse, this.ensureIntialCollapse);\n this.parent.off(events.keyPressed, this.infiniteCellFocus);\n this.parent.off(events.infiniteShowHide, this.setDisplayNone);\n this.parent.off(events.virtualScrollEditActionBegin, this.editActionBegin);\n this.parent.off(events.getVirtualData, this.getVirtualInfiniteData);\n this.parent.off(events.editReset, this.resetInfiniteEdit);\n this.parent.off(events.virtualScrollEditSuccess, this.infiniteEditSuccess);\n this.parent.off(events.refreshVirtualCache, this.refreshInfiniteCache);\n this.parent.on(events.refreshInfiniteEditrowindex, this.refreshInfiniteEditrowindex);\n this.parent.off(events.infiniteEditHandler, this.infiniteEditHandler);\n this.parent.off(events.virtualScrollAddActionBegin, this.infiniteAddActionBegin);\n this.parent.off(events.modelChanged, this.modelChanged);\n this.parent.off(events.refreshInfiniteCurrentViewData, this.refreshInfiniteCurrentViewData);\n this.parent.off(events.destroy, this.destroy);\n this.parent.off(events.contentReady, this.selectNewRow);\n this.parent.off(events.captionActionComplete, this.captionActionComplete);\n this.parent.off(events.setVirtualPageQuery, this.setGroupCollapsePageQuery);\n this.parent.removeEventListener(events.actionBegin, this.actionBeginFunction);\n this.parent.removeEventListener(events.actionComplete, this.actionCompleteFunction);\n this.parent.removeEventListener(events.dataBound, this.dataBoundFunction);\n };\n InfiniteScroll.prototype.dataBound = function () {\n if (this.groupCaptionAction === 'collapse') {\n this.groupCaptionAction = 'refresh';\n this.makeGroupCollapseRequest();\n }\n else if (this.groupCaptionAction === 'refresh') {\n this.parent.hideSpinner();\n this.groupCaptionAction = this.empty;\n }\n };\n InfiniteScroll.prototype.setGroupCollapsePageQuery = function (args) {\n var gObj = this.parent;\n if (!gObj.infiniteScrollSettings.enableCache && this.isGroupCollapse) {\n args.skipPage = true;\n this.isGroupCollapse = false;\n if (this.groupCaptionAction === 'collapse') {\n var captionRow = gObj.getRowObjectFromUID(this.parentCapUid);\n var rowObjs = gObj.getRowsObject();\n var childCount = 0;\n for (var i = rowObjs.length - 1; i >= 0; i--) {\n if (rowObjs[parseInt(i.toString(), 10)].indent === captionRow.indent) {\n break;\n }\n if (rowObjs[parseInt(i.toString(), 10)].isDataRow) {\n childCount++;\n }\n }\n var key = getGroupKeysAndFields(rowObjs.indexOf(captionRow), rowObjs);\n var pred = generateExpandPredicates(key.fields, key.keys, this);\n var predicateList = getPredicates(pred);\n pred = predicateList[predicateList.length - 1];\n for (var i = predicateList.length - 2; i >= 0; i--) {\n pred = pred.and(predicateList[parseInt(i.toString(), 10)]);\n }\n args.query.where(pred);\n args.query.skip(childCount);\n this.parentCapUid = this.empty;\n }\n else {\n var rows = gObj.getRows();\n var size = gObj.pageSettings.pageSize;\n var skip = getRowIndexFromElement(rows[rows.length - 1]) + 1;\n var additionalCnt = ((skip - (skip % size)) + size) - skip;\n if ((skip % size) === 0) {\n additionalCnt = 0;\n }\n args.query.skip(skip);\n args.query.take((gObj.infiniteScrollSettings.initialBlocks * gObj.pageSettings.pageSize) + additionalCnt);\n }\n }\n };\n InfiniteScroll.prototype.captionActionComplete = function (args) {\n var gObj = this.parent;\n if (!gObj.infiniteScrollSettings.enableCache && args.isCollapse) {\n var contetRect = gObj.getContent().firstElementChild.getBoundingClientRect();\n var tableReact = gObj.contentModule.getTable().getBoundingClientRect();\n if (Math.round(tableReact.bottom - gObj.getRowHeight()) <= Math.round(contetRect.bottom)) {\n this.parentCapUid = args.parentUid;\n this.groupCaptionAction = 'collapse';\n gObj.showSpinner();\n var caption = gObj.getRowObjectFromUID(args.parentUid);\n var childCount = this.getCaptionChildCount(caption);\n if (!childCount) {\n this.groupCaptionAction = 'refresh';\n this.makeGroupCollapseRequest();\n }\n else {\n this.makeGroupCollapseRequest(args.parentUid);\n }\n }\n }\n };\n InfiniteScroll.prototype.makeGroupCollapseRequest = function (parentUid) {\n var gObj = this.parent;\n var captionRows = [].slice.call(gObj.getContentTable().querySelectorAll('tr'));\n var rows = gObj.groupSettings.enableLazyLoading ? captionRows : gObj.getRows();\n var index = !gObj.groupSettings.enableLazyLoading ? getRowIndexFromElement(rows[rows.length - 1]) :\n gObj.contentModule['visibleRows'].length - 1;\n var prevPage = this.parent.pageSettings.currentPage;\n if (prevPage >= this.maxPage) {\n gObj.hideSpinner();\n return;\n }\n this.parent.pageSettings.currentPage = Math.ceil(index / this.parent.pageSettings.pageSize) + 1;\n var scrollArg = {\n requestType: 'infiniteScroll',\n currentPage: this.parent.pageSettings.currentPage,\n prevPage: prevPage,\n startIndex: index + 1,\n direction: 'down',\n isCaptionCollapse: true,\n parentUid: parentUid\n };\n this.isGroupCollapse = true;\n this.parent.notify('model-changed', scrollArg);\n };\n InfiniteScroll.prototype.getCaptionChildCount = function (caption) {\n var rowObj = this.parent.getRowsObject();\n var index = rowObj.indexOf(caption);\n var make = false;\n for (var i = index; i < rowObj.length; i++) {\n if ((rowObj[parseInt(i.toString(), 10)].indent === caption.indent || rowObj[parseInt(i.toString(), 10)].indent < caption.indent)\n && rowObj[parseInt(i.toString(), 10)].data.key !== caption.data.key) {\n break;\n }\n if (rowObj[parseInt(i.toString(), 10)].isCaptionRow && !this.childCheck(rowObj, rowObj[parseInt(i.toString(), 10)], i)) {\n make = true;\n break;\n }\n }\n return make;\n };\n InfiniteScroll.prototype.childCheck = function (rowObj, row, index) {\n var childCount = 0;\n for (var i = index + 1; i < rowObj.length; i++) {\n if (rowObj[parseInt(i.toString(), 10)].indent === row.indent) {\n break;\n }\n if (rowObj[parseInt(i.toString(), 10)].indent === (row.indent + 1)\n && rowObj[parseInt(i.toString(), 10)].parentUid === row.uid) {\n childCount++;\n }\n }\n return row.data.count === childCount;\n };\n InfiniteScroll.prototype.updateCurrentViewData = function () {\n var gObj = this.parent;\n if (gObj.groupSettings.columns.length) {\n return;\n }\n var keys = Object.keys(this.infiniteCurrentViewData);\n gObj.currentViewData = [];\n var page = gObj.pageSettings.currentPage;\n var isCache = gObj.infiniteScrollSettings.enableCache;\n var blocks = gObj.infiniteScrollSettings.maxBlocks;\n var isMiddlePage = isCache && (page > blocks || (this.isUpScroll && page > 1));\n var start = isMiddlePage ? this.isUpScroll ? page : (page - blocks) + 1 : 1;\n var end = isMiddlePage ? (start + blocks) - 1 : isCache ? blocks : keys.length;\n for (var i = start; i <= end; i++) {\n if (this.infiniteCurrentViewData[parseInt(i.toString(), 10)]) {\n gObj.currentViewData = gObj.currentViewData.concat(this.infiniteCurrentViewData[parseInt(i.toString(), 10)]);\n }\n }\n };\n InfiniteScroll.prototype.refreshInfiniteCurrentViewData = function (e) {\n var page = this.parent.pageSettings.currentPage;\n var size = this.parent.pageSettings.pageSize;\n var blocks = this.parent.infiniteScrollSettings.initialBlocks;\n var keys = Object.keys(this.infiniteCurrentViewData);\n var cache = this.parent.infiniteScrollSettings.enableCache;\n if (!this.parent.groupSettings.columns.length) {\n var isAdd = e.args.requestType === 'save' && !(this.parent.sortSettings.columns.length\n || this.parent.filterSettings.columns.length || this.parent.groupSettings.columns.length\n || this.parent.searchSettings.key);\n var isDelete = e.args.requestType === 'delete';\n if (!cache && (isAdd || isDelete)) {\n if (isAdd) {\n var indexCount = 0;\n for (var i = 1; i <= keys.length; i++) {\n indexCount += this.infiniteCurrentViewData[parseInt(i.toString(), 10)].length - 1;\n if (e.args.index <= indexCount) {\n this.resetCurrentViewData(i);\n this.infiniteCurrentViewData[parseInt(i.toString(), 10)]\n .splice(e.args.index, 0, e.args.data);\n break;\n }\n }\n }\n else {\n this.infiniteCurrentViewData[keys[keys.length - 1]].push(e.data[0]);\n }\n }\n else {\n if (blocks > 1 && e.data.length === (blocks * size)) {\n this.setInitialCache(e.data.slice(), {}, cache && e.args.requestType === 'delete', true);\n }\n else {\n this.infiniteCurrentViewData[parseInt(page.toString(), 10)] = e.data.slice();\n }\n }\n }\n };\n InfiniteScroll.prototype.resetCurrentViewData = function (startIndex) {\n var keys = Object.keys(this.infiniteCurrentViewData);\n for (var i = startIndex; i <= keys.length; i++) {\n var lastViewData = this.infiniteCurrentViewData[parseInt(i.toString(), 10)][this\n .infiniteCurrentViewData[parseInt(i.toString(), 10)].length - 1];\n if (this.infiniteCurrentViewData[i + 1]) {\n this.infiniteCurrentViewData[i + 1].splice(0, 0, lastViewData);\n }\n this.infiniteCurrentViewData[parseInt(i.toString(), 10)].pop();\n }\n };\n InfiniteScroll.prototype.deleteComplate = function () {\n if (this.parent.isFrozenGrid() && !this.parent.infiniteScrollSettings.enableCache) {\n this.parent.contentModule.refreshScrollOffset();\n }\n };\n InfiniteScroll.prototype.modelChanged = function (args) {\n var rows = this.parent.getRows();\n if (args.requestType === 'save' && args.index && args.data) {\n this.addRowIndex = args.index;\n }\n if (rows && rows.length && args.requestType !== 'infiniteScroll' && (args.requestType === 'delete' || this.requestType === 'add')) {\n this.firstIndex = getRowIndexFromElement(rows[0]);\n this.firstBlock = Math.ceil((this.firstIndex + 1) / this.parent.pageSettings.pageSize);\n this.lastIndex = getRowIndexFromElement(rows[rows.length - 1]);\n if (args.requestType === 'delete') {\n var rowObj = this.parent.getRowsObject();\n args.startIndex = this.parent.infiniteScrollSettings.enableCache\n ? (this.firstBlock - 1) * this.parent.pageSettings.pageSize : rowObj[rowObj.length - 1].index;\n }\n else {\n args.startIndex = this.firstIndex;\n }\n if (!this.parent.infiniteScrollSettings.enableCache\n && this.parent.pageSettings.currentPage === this.maxPage && args.requestType === 'delete') {\n this.isLastPage = true;\n this.lastIndex = this.lastIndex - 1;\n }\n }\n };\n InfiniteScroll.prototype.infiniteAddActionBegin = function (args) {\n if (this.isNormaledit) {\n this.isAdd = true;\n if (this.parent.infiniteScrollSettings.enableCache) {\n if (!Object.keys(this.emptyRowData).length) {\n this.createEmptyRowdata();\n }\n if (this.parent.pageSettings.currentPage > 1) {\n args.startEdit = false;\n this.resetInfiniteBlocks({}, true);\n this.makeRequest({ currentPage: 1 });\n }\n }\n }\n };\n InfiniteScroll.prototype.infiniteEditHandler = function (args) {\n if (!this.parent.infiniteScrollSettings.enableCache && (args.e.requestType === 'delete'\n || (args.e.requestType === 'save' && this.requestType === 'add'))) {\n var frozenCols = this.parent.isFrozenGrid();\n var rowElms = this.parent.getRows();\n var rows = this.parent.getRowsObject();\n if (this.ensureRowAvailability(rows, args.result[0])) {\n if (rowElms.length && !(this.addRowIndex && this.addRowIndex >= rowElms.length)) {\n this.resetRowIndex(rows, args.e, rowElms, this.requestType === 'add', true);\n if (frozenCols) {\n var rows_1 = this.parent.getMovableRowsObject();\n this.resetRowIndex(rows_1, args.e, this.parent.getMovableDataRows(), this.requestType === 'add');\n if (this.parent.getFrozenMode() === literals.leftRight) {\n var frRows = this.parent.getFrozenRightRowsObject();\n this.resetRowIndex(frRows, args.e, this.parent.getFrozenRightRows(), this.requestType === 'add');\n }\n }\n }\n if (!this.isLastPage) {\n this.createRow(rows, args);\n }\n else {\n this.isLastPage = false;\n this.parent.pageSettings.currentPage = this.maxPage;\n if (this.parent.selectionModule.index < this.parent.frozenRows) {\n remove(rowElms[this.parent.frozenRows - 1]);\n this.createRow([rows[this.parent.frozenRows - 1]], args, false, true);\n if (frozenCols) {\n var movableRows = this.parent.getMovableDataRows();\n remove(movableRows[this.parent.frozenRows]);\n this.createRow([this.parent.getMovableRowsObject()[this.parent.frozenRows - 1]], args, true, true);\n if (this.parent.getFrozenMode() === literals.leftRight) {\n var rightRows = this.parent.getFrozenRightDataRows();\n remove(rightRows[this.parent.frozenRows]);\n this.createRow([this.parent.getFrozenRightRowsObject()[this.parent.frozenRows - 1]], args, false, true, true);\n }\n }\n setRowElements(this.parent);\n }\n }\n }\n this.parent.hideSpinner();\n this.parent.notify(events.refreshInfinitePersistSelection, {});\n if (this.requestType === 'delete') {\n this.parent.notify(events.deleteComplete, args.e);\n }\n else {\n this.parent.notify(events.saveComplete, args.e);\n }\n }\n this.parent.notify(events.freezeRender, { case: 'refreshHeight' });\n };\n InfiniteScroll.prototype.createRow = function (rows, args, isMovable, isFrozenRows, isFrozenRight) {\n var row = !isFrozenRows ? this.generateRows(args.result, args.e) : rows;\n var rowRenderer = new RowRenderer(this.serviceLocator, null, this.parent);\n this.parent.removeMaskRow();\n if (args.e.requestType === 'save' && args.e.index && args.e.data) {\n row[0].index = this.addRowIndex;\n this.addRowIndex = null;\n if (row[0].index >= rows.length) {\n return;\n }\n }\n var tbody;\n if (isFrozenRight) {\n tbody = this.parent.element.querySelector('.e-frozen-right-content').querySelector(literals.tbody);\n }\n else {\n tbody = !this.parent.isFrozenGrid() ? this.parent.getContent().querySelector(literals.tbody) : isMovable\n ? this.parent.getMovableVirtualContent().querySelector(literals.tbody)\n : this.parent.getFrozenVirtualContent().querySelector(literals.tbody);\n }\n if (this.parent.frozenRows) {\n tbody = isFrozenRows && this.requestType !== 'add' || !isFrozenRows && this.requestType === 'add'\n ? !this.parent.isFrozenGrid() ? this.parent.getHeaderContent().querySelector(literals.tbody)\n : isMovable ? this.parent.getMovableVirtualHeader().querySelector(literals.tbody)\n : isFrozenRight ? this.parent.element.querySelector('.e-frozen-right-header').querySelector(literals.tbody)\n : this.parent.getFrozenVirtualHeader().querySelector(literals.tbody) : tbody;\n }\n var notifyArgs = {\n rows: rows, cancel: false, args: args, isMovable: isMovable,\n isFrozenRows: isFrozenRows, isFrozenRight: isFrozenRows, row: row\n };\n this.parent.notify(events.infiniteCrudCancel, notifyArgs);\n if (!notifyArgs.cancel) {\n for (var i = row.length - 1; i >= 0; i--) {\n if (this.requestType === 'delete') {\n tbody.appendChild(rowRenderer.render(row[parseInt(i.toString(), 10)], this.parent.getColumns()));\n }\n else {\n tbody.insertBefore(rowRenderer.render(row[parseInt(i.toString(), 10)], this.parent.getColumns()), tbody.rows[(args.e.index)]);\n }\n }\n }\n if (!isFrozenRows && this.parent.frozenRows\n && (this.parent.selectionModule.index < this.parent.frozenRows || this.requestType === 'add')) {\n var rowElems = isMovable ? this.parent.getMovableDataRows() : isFrozenRight ? this.parent.getFrozenRightDataRows()\n : this.parent.getRows();\n var index = (isMovable || isFrozenRight) && this.requestType === 'add'\n ? this.parent.frozenRows : this.parent.frozenRows - 1;\n remove(rowElems[parseInt(index.toString(), 10)]);\n this.createRow([rows[this.parent.frozenRows - 1]], args, isMovable, true, isFrozenRight);\n }\n if (!this.parent.infiniteScrollSettings.enableCache && !isFrozenRows) {\n if (isFrozenRight) {\n setRowElements(this.parent);\n this.parent.contentModule.rightFreezeRows = this.requestType === 'add'\n ? row.concat(rows) : rows.concat(row);\n }\n else if (!this.parent.isFrozenGrid() || isMovable) {\n setRowElements(this.parent);\n this.parent.contentModule.visibleRows = this.requestType === 'add'\n ? row.concat(rows) : rows.concat(row);\n if (this.parent.getFrozenMode() === literals.leftRight) {\n args.e.renderMovableContent = true;\n this.createRow(this.parent.getFrozenRightRowsObject(), args, false, false, true);\n }\n }\n else {\n this.parent.contentModule.visibleFrozenRows = this.requestType === 'add'\n ? row.concat(rows) : rows.concat(row);\n args.e.isFrozen = true;\n this.createRow(this.parent.getMovableRowsObject(), args, true);\n }\n }\n };\n InfiniteScroll.prototype.ensureRowAvailability = function (rows, data) {\n var resume = true;\n if (this.parent.frozenRows && !this.parent.infiniteScrollSettings.enableCache\n && this.parent.sortSettings.columns && this.requestType === 'add') {\n var key = this.parent.getPrimaryKeyFieldNames()[0];\n for (var i = 0; i < rows.length; i++) {\n if (rows[parseInt(i.toString(), 10)].data[\"\" + key] === data[\"\" + key]) {\n resume = false;\n break;\n }\n }\n }\n return resume;\n };\n InfiniteScroll.prototype.generateRows = function (data, args) {\n return this.rowModelGenerator.generateRows(data, args);\n };\n InfiniteScroll.prototype.resetRowIndex = function (rows, args, rowElms, isAdd, isFrozen) {\n var _this = this;\n var keyField = this.parent.getPrimaryKeyFieldNames()[0];\n var isRemove = !(rowElms.length % this.parent.pageSettings.pageSize);\n if (isAdd) {\n if (isRemove) {\n if (isFrozen && !this.parent.groupSettings.columns.length) {\n this.swapCurrentViewData(1, true);\n }\n remove(rowElms[rows.length - 1]);\n rowElms.splice(rows.length - 1, 1);\n rows.splice(rows.length - 1, 1);\n }\n }\n else {\n rows.filter(function (e, index) {\n if (e.data[\"\" + keyField] === args.data[0][\"\" + keyField]) {\n if (isFrozen && !_this.parent.groupSettings.columns.length) {\n var page = Math.ceil((index + 1) / _this.parent.pageSettings.pageSize);\n _this.resetInfiniteCurrentViewData(page, index);\n }\n rows.splice(index, 1);\n remove(rowElms[parseInt(index.toString(), 10)]);\n rowElms.splice(index, 1);\n }\n });\n }\n var startIndex = isAdd ? this.addRowIndex ? this.addRowIndex + 1 : 1 : 0;\n resetRowIndex(this.parent, rows, rowElms, startIndex, this.addRowIndex ? this.addRowIndex : 0);\n };\n InfiniteScroll.prototype.resetInfiniteCurrentViewData = function (page, index) {\n index = index - ((page - 1) * this.parent.pageSettings.pageSize);\n this.infiniteCurrentViewData[parseInt(page.toString(), 10)].splice(index, 1);\n this.swapCurrentViewData(page, false);\n };\n InfiniteScroll.prototype.swapCurrentViewData = function (page, isAdd) {\n var keys = Object.keys(this.infiniteCurrentViewData);\n var end = isAdd ? keys.length + 1 : keys.length;\n for (var i = page; i < end; i++) {\n if (this.infiniteCurrentViewData[i + 1]) {\n var pageIndex = isAdd ? i : i + 1;\n var index = isAdd ? this.infiniteCurrentViewData[parseInt(i.toString(), 10)].length - 1 : 0;\n var data = this.infiniteCurrentViewData[parseInt(pageIndex.toString(), 10)].splice(index, 1);\n if (isAdd) {\n this.infiniteCurrentViewData[i + 1] = data.concat(this.infiniteCurrentViewData[i + 1]);\n if ((i + 1) === end - 1) {\n this.infiniteCurrentViewData[i + 1].splice(this.infiniteCurrentViewData[i + 1].length - 1, 1);\n }\n }\n else {\n this.infiniteCurrentViewData[parseInt(i.toString(), 10)].push(data[0]);\n }\n }\n }\n this.updateCurrentViewData();\n };\n InfiniteScroll.prototype.setDisplayNone = function (args) {\n if (this.parent.infiniteScrollSettings.enableCache) {\n var frozenCols = this.parent.isFrozenGrid();\n var keys = frozenCols ? Object.keys(this.infiniteFrozenCache) : Object.keys(this.infiniteCache);\n for (var i = 1; i <= keys.length; i++) {\n var cache = frozenCols ? args.isFreeze ? this.infiniteFrozenCache[parseInt(i.toString(), 10)][0]\n : this.infiniteFrozenCache[parseInt(i.toString(), 10)][1] : this.infiniteCache[parseInt(i.toString(), 10)];\n cache.filter(function (e) {\n e.cells[args.index].visible = args.visible === '';\n });\n }\n this.resetContentModuleCache(frozenCols ? this.infiniteFrozenCache : this.infiniteCache);\n }\n };\n InfiniteScroll.prototype.refreshInfiniteCache = function (args) {\n this.getEditedRowObject().data = args.data;\n };\n InfiniteScroll.prototype.refreshInfiniteCacheRowVisibleLength = function (args, currentPage) {\n var cPageRowArray = args[parseInt(currentPage.toString(), 10)];\n if (this.parent.enableInfiniteScrolling && this.parent.infiniteScrollSettings.enableCache) {\n var length_1 = 0;\n var vRowLen = 0;\n var hRowLen = 0;\n for (var i = 0; i < cPageRowArray.length; i++) {\n if (cPageRowArray[parseInt(i.toString(), 10)].visible\n || isNullOrUndefined(cPageRowArray[parseInt(i.toString(), 10)].visible)) {\n vRowLen++;\n }\n else {\n hRowLen++;\n }\n }\n if (hRowLen > vRowLen) {\n length_1 = hRowLen - vRowLen;\n if (length_1 > vRowLen) {\n length_1 = vRowLen;\n }\n }\n else {\n length_1 = vRowLen - hRowLen;\n if (length_1 > hRowLen) {\n length_1 = hRowLen;\n }\n }\n if (length_1 === 0) {\n length_1 = 1;\n }\n return length_1;\n }\n else {\n return cPageRowArray.length;\n }\n };\n InfiniteScroll.prototype.refreshInfiniteEditrowindex = function (args) {\n this.editRowIndex = args.index;\n };\n InfiniteScroll.prototype.getEditedRowObject = function () {\n var rowObjects = this.parent.getRowsObject();\n var editedrow;\n for (var i = 0; i < rowObjects.length; i++) {\n if (rowObjects[parseInt(i.toString(), 10)].index === this.editRowIndex) {\n editedrow = rowObjects[parseInt(i.toString(), 10)];\n }\n }\n return editedrow;\n };\n InfiniteScroll.prototype.infiniteEditSuccess = function (args) {\n if (this.isNormaledit) {\n if (!this.isAdd && args.data) {\n this.updateCurrentViewRecords(args.data);\n }\n this.isAdd = false;\n }\n };\n InfiniteScroll.prototype.updateCurrentViewRecords = function (data) {\n var index = getEditedDataIndex(this.parent, data);\n if (!isNullOrUndefined(index)) {\n this.parent.getCurrentViewRecords()[parseInt(index.toString(), 10)] = data;\n }\n };\n InfiniteScroll.prototype.actionBegin = function (args) {\n if (args.requestType === 'add' || args.requestType === 'delete') {\n this.requestType = args.requestType;\n }\n else if (args.action === 'add' && args.requestType === 'save') {\n this.requestType = args.action;\n }\n if (this.parent.isFrozenGrid() && !args.cancel && args.requestType === 'searching'\n || args.requestType === 'sorting' || args.requestType === 'filtering') {\n this.isInitialRender = true;\n }\n };\n InfiniteScroll.prototype.actionComplete = function (args) {\n if (args.requestType === 'delete' || args.requestType === 'save' || args.requestType === 'cancel') {\n this.requestType = this.empty;\n this.isCancel = args.requestType === 'cancel' || args.requestType === 'save';\n this.isAdd = this.isEdit = false;\n if (this.isNormaledit) {\n this.editRowIndex = this.empty;\n this.virtualInfiniteData = {};\n this.parent.editModule.previousVirtualData = {};\n }\n }\n };\n InfiniteScroll.prototype.resetInfiniteEdit = function () {\n if (this.parent.enableInfiniteScrolling && this.isNormaledit) {\n if ((this.parent.editSettings.allowEditing && this.isEdit) || (this.parent.editSettings.allowAdding && this.isAdd)) {\n this.parent.isEdit = true;\n }\n }\n };\n InfiniteScroll.prototype.getVirtualInfiniteData = function (data) {\n if (this.parent.infiniteScrollSettings.enableCache && this.parent.isEdit && isNullOrUndefined(data['endEdit'])) {\n this.parent.editModule.closeEdit();\n }\n else {\n this.getVirtualInfiniteEditedData();\n data.virtualData = this.virtualInfiniteData;\n data.isAdd = this.isAdd;\n data.isCancel = this.isCancel;\n }\n };\n InfiniteScroll.prototype.editActionBegin = function (e) {\n this.isEdit = true;\n this.editRowIndex = e.index;\n var rowObject = extend({}, this.getEditedRowObject().data);\n e.data = Object.keys(this.virtualInfiniteData).length ? this.virtualInfiniteData : rowObject;\n };\n InfiniteScroll.prototype.dataSourceModified = function () {\n this.resetInfiniteBlocks({ requestType: this.empty }, true);\n };\n InfiniteScroll.prototype.onDataReady = function (e) {\n if (!isNullOrUndefined(e.count) && e.requestType !== 'infiniteScroll') {\n this.maxPage = Math.ceil(e.count / this.parent.pageSettings.pageSize);\n }\n };\n InfiniteScroll.prototype.ensureIntialCollapse = function (isExpand) {\n this.isInitialCollapse = !isExpand;\n };\n InfiniteScroll.prototype.infiniteScrollHandler = function (e) {\n this.restoreInfiniteEdit();\n this.restoreInfiniteAdd();\n var targetEle = e.target;\n var isInfinite = targetEle.classList.contains(literals.content);\n if (isInfinite && this.parent.enableInfiniteScrolling && !e.isLeft) {\n var scrollEle = this.parent.getContent().firstElementChild;\n var captionRows = [].slice.call(this.parent.getContentTable().querySelectorAll('tr'));\n this.prevScrollTop = scrollEle.scrollTop;\n var rows = this.parent.groupSettings.enableLazyLoading ? captionRows : this.parent.getRows();\n if (!rows.length) {\n return;\n }\n var index = getRowIndexFromElement(rows[rows.length - 1]) + 1;\n var prevPage = this.parent.pageSettings.currentPage;\n var args = void 0;\n var offset = targetEle.scrollHeight - targetEle.scrollTop;\n var round = Math.round(targetEle.scrollHeight - targetEle.scrollTop);\n var floor = offset < targetEle.clientHeight ? Math.ceil(offset) : Math.floor(offset);\n if (floor > targetEle.clientHeight) {\n floor = floor - 1;\n }\n var isBottom = (floor === targetEle.clientHeight || round === targetEle.clientHeight);\n if (!isNullOrUndefined(this.groupCaptionAction)) {\n return;\n }\n if (this.isScroll && isBottom && (this.parent.pageSettings.currentPage <= this.maxPage - 1 || this.enableContinuousScroll)) {\n if (this.parent.infiniteScrollSettings.enableCache) {\n this.isUpScroll = false;\n this.isDownScroll = true;\n }\n var rows_2 = [].slice.call(scrollEle.querySelectorAll('.e-row:not(.e-addedrow)'));\n var row = rows_2[rows_2.length - 1];\n var rowIndex = !this.parent.groupSettings.enableLazyLoading ? getRowIndexFromElement(row) :\n this.parent.contentModule['visibleRows'].length - 1;\n this.parent.pageSettings.currentPage = Math.ceil(rowIndex / this.parent.pageSettings.pageSize) + 1;\n args = {\n requestType: 'infiniteScroll',\n currentPage: this.parent.pageSettings.currentPage,\n prevPage: prevPage,\n startIndex: index,\n direction: 'down'\n };\n this.makeRequest(args);\n }\n if (this.isScroll && this.parent.infiniteScrollSettings.enableCache && targetEle.scrollTop === 0\n && this.parent.pageSettings.currentPage !== 1) {\n if (this.parent.infiniteScrollSettings.enableCache) {\n this.isDownScroll = false;\n this.isUpScroll = true;\n }\n var row = [].slice.call(scrollEle.getElementsByClassName(literals.row));\n var rowIndex = getRowIndexFromElement(row[this.parent.pageSettings.pageSize - 1]);\n var startIndex = getRowIndexFromElement(row[0]) - this.parent.pageSettings.pageSize;\n this.parent.pageSettings.currentPage = Math.ceil(rowIndex / this.parent.pageSettings.pageSize) - 1;\n if (this.parent.pageSettings.currentPage) {\n args = {\n requestType: 'infiniteScroll',\n currentPage: this.parent.pageSettings.currentPage,\n prevPage: prevPage,\n startIndex: startIndex,\n direction: 'up'\n };\n this.makeRequest(args);\n }\n }\n if (this.parent.infiniteScrollSettings.enableCache && !this.isScroll && isNullOrUndefined(args)) {\n if (this.isDownScroll || this.isUpScroll) {\n scrollEle.scrollTop = this.top;\n }\n }\n }\n };\n InfiniteScroll.prototype.makeRequest = function (args) {\n var _this = this;\n if (this.parent.pageSettings.currentPage !== args.prevPage) {\n var initBlocks = this.parent.infiniteScrollSettings.initialBlocks;\n if (initBlocks < this.maxPage && this.parent.pageSettings.currentPage <= this.maxPage) {\n this.isInfiniteScroll = true;\n if (isNullOrUndefined(this.infiniteCache[args.currentPage])) {\n setTimeout(function () {\n _this.getVirtualInfiniteEditedData();\n _this.parent.notify('model-changed', args);\n }, 100);\n }\n else {\n setTimeout(function () {\n _this.getVirtualInfiniteEditedData();\n _this.parent.notify(events.refreshInfiniteModeBlocks, args);\n }, 100);\n }\n }\n else {\n this.parent.pageSettings.currentPage = this.maxPage;\n }\n }\n };\n InfiniteScroll.prototype.infinitePageQuery = function (query) {\n if (this.initialRender) {\n this.initialRender = false;\n this.intialPageQuery(query);\n }\n else {\n if ((this.requestType === 'delete' || this.requestType === 'add')) {\n if (!this.isInfiniteScroll && !this.parent.groupSettings.enableLazyLoading) {\n this.editPageQuery(query);\n }\n else if (this.parent.groupSettings.enableLazyLoading && !this.parent.infiniteScrollSettings.enableCache) {\n if (this.parent.infiniteScrollSettings.initialBlocks < this.parent.pageSettings.currentPage) {\n query.page(1, this.parent.pageSettings.pageSize * this.parent.pageSettings.currentPage);\n }\n else {\n query.page(1, this.parent.pageSettings.pageSize * this.parent.infiniteScrollSettings.initialBlocks);\n }\n }\n else {\n query.page(this.parent.pageSettings.currentPage, this.parent.pageSettings.pageSize);\n }\n }\n else {\n query.page(this.parent.pageSettings.currentPage, this.parent.pageSettings.pageSize);\n }\n }\n };\n InfiniteScroll.prototype.editPageQuery = function (query) {\n var initialBlocks = this.parent.infiniteScrollSettings.initialBlocks;\n var isCache = this.parent.infiniteScrollSettings.enableCache;\n if (isCache) {\n this.infiniteCache = {};\n this.infiniteFrozenCache = {};\n this.infiniteCurrentViewData = {};\n query.skip(this.firstIndex);\n query.take(initialBlocks * this.parent.pageSettings.pageSize);\n }\n else {\n if (this.parent.editSettings.mode === 'Dialog') {\n this.parent.clearSelection();\n }\n var index = this.requestType === 'delete' ? this.lastIndex : this.addRowIndex ? this.addRowIndex : this.firstIndex;\n query.skip(index);\n if (!isNullOrUndefined(this.parent.getDataModule().dataManager.dataSource.url) &&\n this.parent.getDataModule().dataManager.dataSource.url !== '' && (this.requestType === 'delete' ||\n this.requestType === 'add')) {\n query.take(initialBlocks * this.parent.pageSettings.pageSize);\n }\n else {\n query.take(1);\n }\n }\n };\n InfiniteScroll.prototype.intialPageQuery = function (query) {\n if (this.parent.infiniteScrollSettings.enableCache\n && this.parent.infiniteScrollSettings.initialBlocks > this.parent.infiniteScrollSettings.maxBlocks) {\n this.parent.infiniteScrollSettings.initialBlocks = this.parent.infiniteScrollSettings.maxBlocks;\n }\n var pageSize = this.parent.pageSettings.pageSize * this.parent.infiniteScrollSettings.initialBlocks;\n query.page(1, pageSize);\n };\n InfiniteScroll.prototype.scrollToLastFocusedCell = function (e) {\n var gObj = this.parent;\n var rowIdx = this.lastFocusInfo.rowIdx + (e.keyArgs.action === literals.upArrow ? -1 : 1);\n var cellIdx = this.lastFocusInfo.cellIdx;\n var row = gObj.getRowByIndex(rowIdx);\n if (!row) {\n var rowRenderer = new RowRenderer(this.serviceLocator, null, this.parent);\n var page = Math.floor(rowIdx / this.parent.pageSettings.pageSize) + 1;\n gObj.pageSettings.currentPage = page;\n var cols = gObj.getColumns();\n remove(gObj.getContent().querySelector('tbody'));\n gObj.getContent().querySelector('table').appendChild(gObj.createElement('tbody', { attrs: { 'role': 'rowgroup' } }));\n var focusRows = [];\n // eslint-disable-next-line @typescript-eslint/tslint/config\n for (var i = (page === 1 || this.maxPage === page) ? 0 : -1, k = 0; k < gObj.infiniteScrollSettings.maxBlocks; this.maxPage === page ? i-- : i++, k++) {\n var rows = this.infiniteCache[page + i];\n if (rows) {\n focusRows = focusRows.concat(rows);\n for (var j = 0; j < rows.length; j++) {\n gObj.getContent().querySelector('tbody').appendChild(rowRenderer.render(rows[parseInt(j.toString(), 10)], cols));\n }\n }\n }\n gObj.notify(events.contentReady, { rows: focusRows, args: {} });\n setRowElements(gObj);\n }\n row = gObj.getRowByIndex(rowIdx);\n var target = row.cells[parseInt(cellIdx.toString(), 10)];\n gObj.focusModule.isInfiniteScroll = true;\n gObj.focusModule.onClick({ target: target }, true);\n gObj.selectRow(rowIdx);\n target.focus();\n this.isFocusScroll = false;\n e.cancel = true;\n };\n InfiniteScroll.prototype.setLastCellFocusInfo = function (e) {\n var cell = ((e.byClick && e.clickArgs.target) || (e.byKey && e.keyArgs.target)\n || (!this.isFocusScroll && e).target);\n if (cell && cell.classList.contains('e-rowcell')) {\n var cellIdx = parseInt(cell.getAttribute('data-colindex'), 10);\n var rowIdx = parseInt(cell.parentElement.getAttribute('data-rowindex'), 10);\n this.lastFocusInfo = { rowIdx: rowIdx, cellIdx: cellIdx };\n }\n };\n InfiniteScroll.prototype.infiniteCellFocus = function (e) {\n var gObj = this.parent;\n var cache = gObj.infiniteScrollSettings.enableCache;\n if (e.byKey) {\n if (cache && this.isFocusScroll) {\n this.scrollToLastFocusedCell(e);\n return;\n }\n var cell = document.activeElement;\n var rowIndex = getRowIndexFromElement(cell.parentElement);\n this.cellIndex = parseInt(cell.getAttribute(literals.dataColIndex), 10);\n var content = gObj.getContent().firstElementChild;\n var totalRowsCount = (this.maxPage * gObj.pageSettings.pageSize) - 1;\n var visibleRowCount = Math.floor(content.offsetHeight / this.parent.getRowHeight());\n var contentRect = content.getBoundingClientRect();\n if (!isNaN(rowIndex)) {\n if (e.keyArgs.action === literals.downArrow || e.keyArgs.action === literals.enter) {\n this.rowIndex = rowIndex += 1;\n var row = gObj.getRowByIndex(rowIndex);\n var rowRect = row && row.getBoundingClientRect();\n if (cache) {\n rowIndex = cell.parentElement.rowIndex + 1;\n }\n if (this.isFocusScroll || (!row && rowIndex < totalRowsCount)\n || (rowRect && rowRect.bottom >= contentRect.bottom)) {\n if (!this.isFocusScroll) {\n this.pressedKey = e.keyArgs.action;\n }\n this.isFocusScroll = false;\n content.scrollTop = ((rowIndex - visibleRowCount) + 1) * this.parent.getRowHeight();\n }\n else if (!cache && row) {\n if (rowRect && (rowRect.bottom >= contentRect.bottom || rowRect.top < contentRect.top)) {\n row.cells[this.cellIndex].scrollIntoView();\n }\n }\n }\n else if (e.keyArgs.action === literals.upArrow || e.keyArgs.action === literals.shiftEnter) {\n this.rowIndex = rowIndex -= 1;\n var row = gObj.getRowByIndex(rowIndex);\n var rowRect = row && row.getBoundingClientRect();\n if (cache) {\n rowIndex = cell.parentElement.rowIndex - 1;\n }\n if (!row || rowRect.top <= contentRect.top) {\n this.pressedKey = e.keyArgs.action;\n content.scrollTop = rowIndex * this.parent.getRowHeight();\n }\n }\n }\n }\n else if (e.key === 'PageDown' || e.key === 'PageUp') {\n this.pressedKey = e.key;\n }\n this.setLastCellFocusInfo(e);\n };\n InfiniteScroll.prototype.createEmptyRowdata = function () {\n var _this = this;\n this.parent.getColumns().filter(function (e) {\n _this.emptyRowData[e.field] = _this.empty;\n });\n };\n InfiniteScroll.prototype.getVirtualInfiniteEditedData = function () {\n var editForm = this.parent.element.querySelector('.' + literals.editedRow);\n var addForm = this.parent.element.querySelector('.' + literals.addedRow);\n var gridForm = this.parent.element.querySelector('.e-gridform');\n if (this.parent.infiniteScrollSettings.enableCache && (editForm || addForm)) {\n var rowData = editForm ? extend({}, this.getEditedRowObject().data)\n : extend({}, this.emptyRowData);\n this.virtualInfiniteData = this.parent.editModule.getCurrentEditedData(gridForm, rowData);\n var hiddenColumn = this.parent.getHiddenColumns();\n for (var i = 0; i < hiddenColumn.length; i++) {\n if (hiddenColumn[parseInt(i.toString(), 10)].defaultValue) {\n this.virtualInfiniteData[hiddenColumn[parseInt(i.toString(), 10)].field] =\n hiddenColumn[parseInt(i.toString(), 10)].defaultValue;\n }\n }\n if (this.parent.isFrozenGrid()) {\n this.virtualInfiniteData = this.parent.editModule\n .getCurrentEditedData(this.parent.getMovableVirtualContent().querySelector('.e-gridform'), rowData);\n }\n }\n };\n InfiniteScroll.prototype.restoreInfiniteEdit = function () {\n var content = this.parent.getContent().firstElementChild;\n var frozenEdit = this.parent.frozenRows ? this.editRowIndex >= this.parent.frozenRows : true;\n if (this.isNormaledit && this.parent.infiniteScrollSettings.enableCache && frozenEdit) {\n if (this.parent.editSettings.allowEditing && !isNullOrUndefined(this.editRowIndex)) {\n var row = this.parent.getRowByIndex(this.editRowIndex);\n if (Object.keys(this.virtualInfiniteData).length && row && !this.parent.getContent().querySelector('.' + literals.editedRow)) {\n var top_1 = row.getBoundingClientRect().top;\n if (top_1 < content.offsetHeight && top_1 > this.parent.getRowHeight()) {\n this.parent.isEdit = false;\n this.parent.editModule.startEdit(row);\n }\n }\n }\n }\n };\n InfiniteScroll.prototype.restoreInfiniteAdd = function () {\n var content = this.parent.getContent().firstElementChild;\n if (this.parent.getCurrentViewRecords().length && this.parent.getRowByIndex(0) && this.isNormaledit &&\n this.parent.infiniteScrollSettings.enableCache && this.isAdd && !content.querySelector('.' + literals.addedRow)) {\n var isTop = content.scrollTop < this.parent.getRowHeight();\n if (isTop) {\n this.parent.isEdit = false;\n this.parent.addRecord();\n }\n }\n };\n InfiniteScroll.prototype.appendInfiniteRows = function (e) {\n var frozenCols = this.parent.isFrozenGrid();\n var scrollEle = this.parent.getContent().firstElementChild;\n var isInfiniteScroll = this.parent.enableInfiniteScrolling && e.args.requestType === 'infiniteScroll';\n var isMovable = this.parent.getFrozenMode() === literals.leftRight && e.tableName === 'movable';\n if ((this.parent.isAngular || this.parent.isReact || this.parent.isVue || this.parent.isVue3) && isInfiniteScroll &&\n !e.args.isFrozen && this.parent.infiniteScrollSettings.enableCache) {\n var isChildGrid = this.parent.childGrid && this.parent.element.querySelectorAll('.e-childgrid').length ? true : false;\n var rows = this.parent.getDataRows();\n if (frozenCols) {\n this.parent.contentModule['freezeRowElements'] = rows;\n var mCont = this.parent.getContent().querySelector('.' + literals.movableContent);\n var frLCont = this.parent.getContent().querySelector('.e-frozen-left-content');\n if (mCont && mCont.querySelectorAll('.e-templatecell').length) {\n this.parent.refreshReactTemplateTD(this.parent.getMovableDataRows(), isChildGrid, true);\n }\n if (frLCont && frLCont.querySelectorAll('.e-templatecell').length) {\n this.parent.refreshReactTemplateTD(this.parent.getDataRows(), isChildGrid, true);\n }\n this.parent.contentModule['freezeRowElements'] = this.parent.getRows();\n }\n else {\n this.parent.refreshReactTemplateTD(rows, isChildGrid);\n }\n }\n if ((isInfiniteScroll && !e.args.isFrozen && !isMovable) || !isInfiniteScroll) {\n if (isInfiniteScroll && e.args.direction === 'up') {\n e.tbody.insertBefore(e.frag, e.tbody.firstElementChild);\n }\n else {\n e.tbody.appendChild(e.frag);\n }\n }\n if (!frozenCols) {\n this.parent.contentModule.getTable().appendChild(e.tbody);\n this.updateCurrentViewData();\n }\n else {\n if (isInfiniteScroll) {\n if (e.tableName === literals.frozenLeft || (this.parent.getFrozenMode() === 'Right' && e.tableName === literals.frozenRight)) {\n this.frozenFrag = e.frag;\n }\n else if (this.parent.getFrozenMode() === literals.leftRight && e.tableName === 'movable') {\n this.movableFrag = e.frag;\n }\n else {\n var tbody = this.parent.getFrozenVirtualContent().querySelector(literals.tbody);\n if (e.args.direction === 'up') {\n tbody.insertBefore(this.frozenFrag, tbody.firstElementChild);\n }\n else {\n tbody.appendChild(this.frozenFrag);\n }\n if (e.tableName === literals.frozenRight) {\n this.parent.getMovableVirtualContent().querySelector(literals.tbody).appendChild(this.movableFrag);\n this.parent.element.querySelector('.e-frozen-right-content').querySelector(literals.tbody).appendChild(e.frag);\n }\n else {\n this.parent.getMovableVirtualContent().querySelector('.' + literals.table).appendChild(e.tbody);\n }\n this.parent.contentModule.refreshScrollOffset();\n this.updateCurrentViewData();\n }\n }\n else {\n var table = void 0;\n if (e.tableName === literals.frozenLeft) {\n table = this.parent.getFrozenVirtualContent().querySelector('.' + literals.table);\n }\n else if (e.tableName === 'movable') {\n table = this.parent.getMovableVirtualContent().querySelector('.' + literals.table);\n if (this.parent.getFrozenMode() !== literals.leftRight) {\n this.parent.contentModule.refreshScrollOffset();\n this.updateCurrentViewData();\n }\n }\n else {\n table = this.parent.element.querySelector('.e-frozen-right-content').querySelector('.' + literals.table);\n if (this.parent.getFrozenMode() === literals.leftRight) {\n this.parent.contentModule.refreshScrollOffset();\n this.updateCurrentViewData();\n }\n }\n table.appendChild(e.tbody);\n this.widthService.refreshFrozenScrollbar();\n }\n }\n if (this.isInitialRender && !e.args.isFrozen) {\n this.isInitialRender = false;\n this.parent.scrollModule.setHeight();\n }\n if (!e.args.isFrozen) {\n this.rowTop = !this.rowTop ? this.parent.getRows()[0].getBoundingClientRect().top : this.rowTop;\n if (isInfiniteScroll) {\n if (this.parent.infiniteScrollSettings.enableCache && this.isRemove) {\n scrollEle.scrollTop = this.top;\n }\n setRowElements(this.parent);\n }\n this.restoreInfiniteAdd();\n this.isScroll = true;\n }\n this.isInfiniteScroll = false;\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n InfiniteScroll.prototype.selectNewRow = function (args) {\n var _this = this;\n var gObj = this.parent;\n var row = gObj.getRowByIndex(this.rowIndex);\n var cache = gObj.infiniteScrollSettings.enableCache;\n if (row && this.keys.some(function (value) { return value === _this.pressedKey; })) {\n var content = gObj.getContent().firstElementChild;\n var rowHeight = gObj.getRowHeight();\n var target = row.cells[this.cellIndex];\n if ((this.pressedKey === literals.downArrow || this.pressedKey === literals.enter)\n || (cache && (this.pressedKey === literals.upArrow || this.pressedKey === literals.shiftEnter))) {\n if (!cache && this.pressedKey !== literals.upArrow && this.pressedKey !== literals.shiftEnter) {\n content.scrollTop = content.scrollTop + rowHeight;\n }\n gObj.focusModule.isInfiniteScroll = true;\n gObj.focusModule.onClick({ target: target }, true);\n gObj.selectRow(this.rowIndex);\n }\n }\n else if (this.lastFocusInfo && (this.pressedKey === literals.pageDown || this.pressedKey === literals.pageUp)) {\n var idx = cache ? 0 : this.lastFocusInfo.rowIdx;\n if (gObj.getRowByIndex(idx)) {\n var target = gObj.getCellFromIndex(idx, this.lastFocusInfo.cellIdx);\n if (target) {\n this.isFocusScroll = true;\n if (!cache) {\n gObj.focusModule.isInfiniteScroll = true;\n gObj.focusModule.onClick({ target: target }, true);\n }\n else {\n target.focus({ preventScroll: true });\n }\n }\n }\n }\n this.pressedKey = undefined;\n };\n InfiniteScroll.prototype.removeInfiniteCacheRows = function (e) {\n var isInfiniteScroll = this.parent.enableInfiniteScrolling && e.args.requestType === 'infiniteScroll';\n if (!e.args.isFrozen && isInfiniteScroll && this.parent.infiniteScrollSettings.enableCache && this.isRemove) {\n var rows = [].slice.call(this.parent.getContentTable().getElementsByClassName(literals.row));\n if (e.args.direction === 'down') {\n if (this.parent.allowGrouping && this.parent.groupSettings.columns.length) {\n var captionRows = [].slice.call(this.parent.getContentTable().querySelectorAll('tr'));\n this.removeCaptionRows(captionRows, e.args);\n }\n var addRowCount = this.parent.element.querySelector('.' + literals.addedRow) ? 0 : 1;\n this.removeTopRows(rows, this.parent.pageSettings.pageSize - addRowCount);\n }\n if (e.args.direction === 'up') {\n if (this.parent.allowGrouping && this.parent.groupSettings.columns.length) {\n var captionRows = [].slice.call(this.parent.getContentTable().querySelectorAll('tr'));\n this.removeCaptionRows(captionRows, e.args);\n }\n else {\n this.removeBottomRows(rows, rows.length - 1, e.args);\n }\n }\n this.isScroll = false;\n this.top = this.calculateScrollTop(e.args);\n }\n };\n InfiniteScroll.prototype.calculateScrollTop = function (args) {\n var top = 0;\n var scrollCnt = this.parent.getContent().firstElementChild;\n if (args.direction === 'down') {\n if (this.parent.allowGrouping && this.parent.groupSettings.columns.length && !this.isInitialCollapse) {\n top = this.captionRowHeight();\n }\n var captionRows = [].slice.call(this.parent.getContent().firstElementChild.querySelectorAll('tr:not(.e-row)'));\n var captionCount = 0;\n if (this.isInitialCollapse && !isNullOrUndefined(captionRows)) {\n captionCount = Math.round((captionRows.length - 1) / this.parent.groupSettings.columns.length);\n }\n var value = captionCount ? captionCount\n : this.parent.pageSettings.pageSize * (this.parent.infiniteScrollSettings.maxBlocks - 1);\n var currentViewRowCount = 0;\n var i = 0;\n while (currentViewRowCount < scrollCnt.clientHeight) {\n i++;\n currentViewRowCount = i * this.parent.getRowHeight();\n }\n i = i - 1;\n top += (value - i) * this.parent.getRowHeight();\n }\n if (args.direction === 'up') {\n if (this.parent.allowGrouping && this.parent.groupSettings.columns.length && !this.isInitialCollapse) {\n var len = this.refreshInfiniteCacheRowVisibleLength(this.infiniteCache, this.parent.pageSettings.currentPage);\n top = len * this.parent.getRowHeight();\n }\n else if (this.isInitialCollapse) {\n var groupedData = this.infiniteCache[this.parent.pageSettings.currentPage];\n var count = 0;\n for (var i = 0; i < groupedData.length; i++) {\n if (groupedData[parseInt(i.toString(), 10)].isCaptionRow) {\n count++;\n }\n }\n top += Math.round(count / this.parent.groupSettings.columns.length) * this.parent.getRowHeight();\n }\n else {\n top += (this.parent.pageSettings.pageSize * this.parent.getRowHeight() + getScrollBarWidth());\n }\n }\n return top;\n };\n InfiniteScroll.prototype.captionRowHeight = function () {\n var rows = [].slice.call(this.parent.getContent().querySelectorAll('tr:not(.e-row)'));\n return rows.length * this.parent.getRowHeight();\n };\n InfiniteScroll.prototype.removeTopRows = function (rows, maxIndx) {\n var frozeCols = this.parent.isFrozenGrid();\n var frRows = this.parent.getFrozenMode() === literals.leftRight\n ? [].slice.call(this.parent.element.querySelector('.e-frozen-right-content').getElementsByClassName(literals.row)) : null;\n var movableRows = frozeCols ?\n [].slice.call(this.parent.getMovableVirtualContent().getElementsByClassName(literals.row)) : null;\n for (var i = 0; i <= maxIndx; i++) {\n if (this.parent.frozenRows && this.parent.pageSettings.currentPage === this.parent.infiniteScrollSettings.maxBlocks + 1\n && i > (maxIndx - this.parent.frozenRows)) {\n continue;\n }\n remove(rows[parseInt(i.toString(), 10)]);\n if (movableRows) {\n remove(movableRows[parseInt(i.toString(), 10)]);\n }\n if (frRows) {\n remove(frRows[parseInt(i.toString(), 10)]);\n }\n }\n };\n InfiniteScroll.prototype.removeBottomRows = function (rows, maxIndx, args) {\n var cnt = 0;\n var frozeCols = this.parent.isFrozenGrid();\n var movableRows = frozeCols ?\n [].slice.call(this.parent.getMovableVirtualContent().getElementsByClassName(literals.row)) : null;\n var frRows = this.parent.getFrozenMode() === literals.leftRight ?\n [].slice.call(this.parent.element.querySelector('.e-frozen-right-content').getElementsByClassName(literals.row)) : null;\n var pageSize = this.parent.pageSettings.pageSize;\n if (!frozeCols && this.infiniteCache[args.prevPage].length < pageSize) {\n cnt = this.parent.pageSettings.pageSize - this.infiniteCache[args.prevPage].length;\n }\n if (frozeCols && this.infiniteFrozenCache[args.prevPage][1].length < pageSize) {\n cnt = this.parent.pageSettings.pageSize - this.infiniteFrozenCache[args.prevPage][1].length;\n }\n for (var i = maxIndx; cnt < pageSize; i--) {\n cnt++;\n remove(rows[parseInt(i.toString(), 10)]);\n if (movableRows) {\n remove(movableRows[parseInt(i.toString(), 10)]);\n }\n if (frRows) {\n remove(frRows[parseInt(i.toString(), 10)]);\n }\n }\n };\n InfiniteScroll.prototype.removeCaptionRows = function (rows, args) {\n var rowElements = [].slice.call(this.parent.getContent().getElementsByClassName(literals.row));\n if (args.direction === 'down') {\n var lastRow = rowElements[this.parent.pageSettings.pageSize - 1];\n var lastRowIndex = getRowIndexFromElement(lastRow) - 1;\n var k = 0;\n for (var i = 0; k < lastRowIndex; i++) {\n if (!rows[parseInt(i.toString(), 10)].classList.contains(literals.row)) {\n remove(rows[parseInt(i.toString(), 10)]);\n }\n else {\n k = getRowIndexFromElement(rows[parseInt(i.toString(), 10)]);\n }\n }\n }\n if (args.direction === 'up') {\n var lastIndex = getRowIndexFromElement(rowElements[rowElements.length - 1]);\n var page = Math.ceil(lastIndex / this.parent.pageSettings.pageSize);\n var startIndex = 0;\n for (var i = this.parent.pageSettings.currentPage + 1; i < page; i++) {\n startIndex += this.infiniteCache[parseInt(i.toString(), 10)].length;\n }\n for (var i = startIndex; i < rows.length; i++) {\n remove(rows[parseInt(i.toString(), 10)]);\n }\n }\n };\n InfiniteScroll.prototype.resetInfiniteBlocks = function (args, isDataModified) {\n var isInfiniteScroll = this.parent.enableInfiniteScrolling && args.requestType !== 'infiniteScroll';\n if (!this.initialRender && !isNullOrUndefined(this.parent.infiniteScrollModule) && isInfiniteScroll) {\n if (this.actions.some(function (value) { return value === args.requestType; }) || isDataModified || (args.requestType === 'save'\n && (this.parent.sortSettings.columns.length || this.parent.filterSettings.columns.length\n || this.parent.groupSettings.columns.length || this.parent.searchSettings.key))) {\n var scrollEle = this.parent.getContent().firstElementChild;\n this.initialRender = true;\n scrollEle.scrollTop = 0;\n this.parent.pageSettings.currentPage = 1;\n this.infiniteCache = this.infiniteFrozenCache = {};\n this.infiniteCurrentViewData = {};\n this.resetContentModuleCache({});\n this.isRemove = false;\n this.top = 0;\n this.isInitialMovableRender = true;\n this.isInitialCollapse = false;\n this.parent.contentModule.isRemove = this.isRemove;\n this.parent.contentModule.isAddRows = this.isRemove;\n this.parent.contentModule.visibleRows = [];\n this.parent.contentModule.visibleFrozenRows = [];\n }\n }\n };\n InfiniteScroll.prototype.setCache = function (e) {\n if (this.parent.enableInfiniteScrolling && this.parent.infiniteScrollSettings.enableCache) {\n var frozeCols = this.parent.isFrozenGrid();\n var idx = e.args.isFrozen ? 1 : 0;\n var isEdit = e.args.requestType !== 'infiniteScroll'\n && (this.requestType === 'delete' || this.requestType === 'add');\n var currentPage = this.parent.pageSettings.currentPage;\n if ((frozeCols && this.isInitialMovableRender) || (!frozeCols && !Object.keys(this.infiniteCache).length) || isEdit) {\n this.isInitialMovableRender = !e.args.isFrozen;\n this.setInitialCache(e.modelData, e.args, isEdit);\n }\n if (!frozeCols && isNullOrUndefined(this.infiniteCache[this.parent.pageSettings.currentPage])) {\n this.infiniteCache[this.parent.pageSettings.currentPage] = e.modelData;\n this.resetContentModuleCache(this.infiniteCache);\n }\n if (frozeCols) {\n if ((idx === 0 && isNullOrUndefined(this.infiniteFrozenCache[parseInt(currentPage.toString(), 10)]))\n || !this.infiniteFrozenCache[parseInt(currentPage.toString(), 10)][parseInt(idx.toString(), 10)].length) {\n this.createFrozenCache(currentPage);\n this.infiniteFrozenCache[parseInt(currentPage.toString(), 10)][parseInt(idx.toString(), 10)] = e.modelData;\n if (idx === 1) {\n this.resetContentModuleCache(this.infiniteFrozenCache);\n }\n }\n }\n if (e.isInfiniteScroll && !this.isRemove) {\n this.isRemove = (currentPage - 1) % this.parent.infiniteScrollSettings.maxBlocks === 0;\n this.parent.contentModule.isRemove = this.isRemove;\n }\n }\n };\n InfiniteScroll.prototype.setInitialCache = function (data, args, isEdit, isCurrentViewData) {\n var frozenCols = this.parent.isFrozenGrid();\n var idx = args.isFrozen ? 1 : 0;\n var k = !isEdit ? 1 : isNullOrUndefined(this.firstBlock) ? 1 : this.firstBlock;\n for (var i = 1; i <= this.parent.infiniteScrollSettings.initialBlocks; i++) {\n var startIndex = (i - 1) * this.parent.pageSettings.pageSize;\n var endIndex = i * this.parent.pageSettings.pageSize;\n if (this.parent.allowGrouping && this.parent.groupSettings.columns.length && !isCurrentViewData) {\n this.setInitialGroupCache(data, k, startIndex, endIndex);\n }\n else {\n if (isCurrentViewData) {\n this.infiniteCurrentViewData[parseInt(k.toString(), 10)] = data.slice(startIndex, endIndex);\n }\n else {\n if (frozenCols) {\n this.createFrozenCache(k);\n this.infiniteFrozenCache[parseInt(k.toString(), 10)][parseInt(idx.toString(), 10)] = data\n .slice(startIndex, endIndex);\n this.resetContentModuleCache(this.infiniteFrozenCache);\n }\n else {\n this.infiniteCache[parseInt(k.toString(), 10)] = data.slice(startIndex, endIndex);\n this.resetContentModuleCache(this.infiniteCache);\n }\n }\n }\n k++;\n }\n };\n InfiniteScroll.prototype.createFrozenCache = function (index) {\n if (!this.infiniteFrozenCache[parseInt(index.toString(), 10)]) {\n this.infiniteFrozenCache[parseInt(index.toString(), 10)] = [[], []];\n }\n };\n InfiniteScroll.prototype.setInitialGroupCache = function (data, index, sIndex, eIndex) {\n var pageData = [];\n var startIndex = 0;\n for (var i = 1; i <= Object.keys(this.infiniteCache).length; i++) {\n startIndex += this.infiniteCache[parseInt(i.toString(), 10)].length;\n }\n var k = sIndex;\n for (var i = startIndex; i < data.length && k < eIndex; i++) {\n if (data[parseInt(i.toString(), 10)].index < eIndex || data[parseInt(i.toString(), 10)].isCaptionRow) {\n k = data[parseInt(i.toString(), 10)].isCaptionRow ? k : data[parseInt(i.toString(), 10)].index;\n pageData.push(data[parseInt(i.toString(), 10)]);\n }\n if (data[parseInt(i.toString(), 10)].index >= eIndex || data[parseInt(i.toString(), 10)].index === eIndex - 1) {\n break;\n }\n }\n this.infiniteCache[parseInt(index.toString(), 10)] = pageData;\n this.resetContentModuleCache(this.infiniteCache);\n };\n InfiniteScroll.prototype.resetContentModuleCache = function (data) {\n this.parent.contentModule\n .infiniteCache = data;\n };\n /**\n * @returns {void}\n * @hidden\n */\n InfiniteScroll.prototype.destroy = function () {\n this.removeEventListener();\n };\n return InfiniteScroll;\n}());\nexport { InfiniteScroll };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * Worksheets class\n * @private\n */\nvar Worksheets = /** @class */ (function (_super) {\n __extends(Worksheets, _super);\n function Worksheets() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return Worksheets;\n}(Array));\nexport { Worksheets };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * Worksheet class\n * @private\n */\nvar Worksheet = /** @class */ (function () {\n function Worksheet() {\n this.isSummaryRowBelow = true;\n this.showGridLines = true;\n this.enableRtl = false;\n }\n return Worksheet;\n}());\nexport { Worksheet };\n/**\n * Hyperlink class\n * @private\n */\nvar HyperLink = /** @class */ (function () {\n function HyperLink() {\n }\n return HyperLink;\n}());\nexport { HyperLink };\n/**\n * Grouping class\n * @private\n */\nvar Grouping = /** @class */ (function () {\n function Grouping() {\n }\n return Grouping;\n}());\nexport { Grouping };\n/**\n * FreezePane class\n * @private\n */\nvar FreezePane = /** @class */ (function () {\n function FreezePane() {\n }\n return FreezePane;\n}());\nexport { FreezePane };\n/**\n * MergeCell\n * @private\n */\nvar MergeCell = /** @class */ (function () {\n function MergeCell() {\n }\n return MergeCell;\n}());\nexport { MergeCell };\n/**\n * MergeCells class\n * @private\n */\nvar MergeCells = /** @class */ (function (_super) {\n __extends(MergeCells, _super);\n function MergeCells() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.add = function (mergeCell) {\n var inserted = false;\n var count = 0;\n for (var _i = 0, _a = _this; _i < _a.length; _i++) {\n var mCell = _a[_i];\n if (MergeCells.isIntersecting(mCell, mergeCell)) {\n var intersectingCell = new MergeCell();\n intersectingCell.x = Math.min(mCell.x, mergeCell.x);\n intersectingCell.y = Math.min(mCell.Y, mergeCell.y);\n intersectingCell.width = Math.max(mCell.Width + mCell.X, mergeCell.width + mergeCell.x);\n intersectingCell.height = Math.max(mCell.Height + mCell.Y, mergeCell.height + mergeCell.y);\n intersectingCell.ref = (_this[count].ref.split(':')[0]) + ':' + (mergeCell.ref.split(':')[1]);\n _this[count] = intersectingCell;\n mergeCell = intersectingCell;\n inserted = true;\n }\n count++;\n }\n if (!inserted) {\n _this.push(mergeCell);\n }\n return mergeCell;\n };\n return _this;\n }\n MergeCells.isIntersecting = function (base, compare) {\n return (base.x <= compare.x + compare.width)\n && (compare.x <= base.x + base.width)\n && (base.y <= compare.y + compare.height)\n && (compare.y <= base.y + base.height);\n };\n return MergeCells;\n}(Array));\nexport { MergeCells };\n","/**\n * CellStyle class\n * @private\n */\nvar CellStyle = /** @class */ (function () {\n function CellStyle() {\n this.numFmtId = 0;\n this.backColor = 'none';\n this.fontName = 'Calibri';\n this.fontSize = 10.5;\n this.fontColor = '#000000';\n this.italic = false;\n this.bold = false;\n this.underline = false;\n this.strikeThrough = false;\n this.wrapText = false;\n this.hAlign = 'general';\n this.vAlign = 'bottom';\n this.indent = 0;\n this.rotation = 0;\n this.numberFormat = 'GENERAL';\n this.type = 'datetime';\n this.borders = new Borders();\n this.isGlobalStyle = false;\n }\n return CellStyle;\n}());\nexport { CellStyle };\n/**\n * Font Class\n * @private\n */\nvar Font = /** @class */ (function () {\n function Font() {\n this.sz = 10.5;\n this.name = 'Calibri';\n this.u = false;\n this.b = false;\n this.i = false;\n this.color = 'FF000000';\n this.strike = false;\n }\n return Font;\n}());\nexport { Font };\n/**\n * CellXfs class\n * @private\n */\nvar CellXfs = /** @class */ (function () {\n function CellXfs() {\n }\n return CellXfs;\n}());\nexport { CellXfs };\n/**\n * Alignment class\n * @private\n */\nvar Alignment = /** @class */ (function () {\n function Alignment() {\n }\n return Alignment;\n}());\nexport { Alignment };\n/**\n * CellStyleXfs class\n * @private\n */\nvar CellStyleXfs = /** @class */ (function () {\n function CellStyleXfs() {\n }\n return CellStyleXfs;\n}());\nexport { CellStyleXfs };\n/**\n * CellStyles class\n * @private\n */\nvar CellStyles = /** @class */ (function () {\n function CellStyles() {\n this.name = 'Normal';\n this.xfId = 0;\n }\n return CellStyles;\n}());\nexport { CellStyles };\n/**\n * NumFmt class\n * @private\n */\nvar NumFmt = /** @class */ (function () {\n function NumFmt(id, code) {\n this.numFmtId = id;\n this.formatCode = code;\n }\n return NumFmt;\n}());\nexport { NumFmt };\n/**\n * Border class\n * @private\n */\nvar Border = /** @class */ (function () {\n function Border(mLine, mColor) {\n this.lineStyle = mLine;\n this.color = mColor;\n }\n return Border;\n}());\nexport { Border };\n/**\n * Borders class\n * @private\n */\nvar Borders = /** @class */ (function () {\n function Borders() {\n this.left = new Border('none', '#FFFFFF');\n this.right = new Border('none', '#FFFFFF');\n this.top = new Border('none', '#FFFFFF');\n this.bottom = new Border('none', '#FFFFFF');\n this.all = new Border('none', '#FFFFFF');\n }\n return Borders;\n}());\nexport { Borders };\n","/**\n * Column class\n * @private\n */\nvar Column = /** @class */ (function () {\n function Column() {\n }\n return Column;\n}());\nexport { Column };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * Row class\n * @private\n */\nvar Row = /** @class */ (function () {\n function Row() {\n }\n return Row;\n}());\nexport { Row };\n/**\n * Rows class\n * @private\n */\nvar Rows = /** @class */ (function (_super) {\n __extends(Rows, _super);\n function Rows() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.add = function (row) {\n _this.push(row);\n };\n return _this;\n }\n return Rows;\n}(Array));\nexport { Rows };\n","/**\n * Image class\n * @private\n */\nvar Image = /** @class */ (function () {\n function Image() {\n }\n return Image;\n}());\nexport { Image };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * Worksheet class\n * @private\n */\nvar Cell = /** @class */ (function () {\n function Cell() {\n }\n return Cell;\n}());\nexport { Cell };\n/**\n * Cells class\n * @private\n */\nvar Cells = /** @class */ (function (_super) {\n __extends(Cells, _super);\n function Cells() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.add = function (cell) {\n var inserted = false;\n var count = 0;\n for (var _i = 0, _a = _this; _i < _a.length; _i++) {\n var c = _a[_i];\n if (c.index === cell.index) {\n _this[count] = cell;\n inserted = true;\n }\n count++;\n }\n if (!inserted) {\n _this.push(cell);\n }\n };\n return _this;\n }\n return Cells;\n}(Array));\nexport { Cells };\n","/* eslint-disable */\nvar Utils = /** @class */ (function () {\n function Utils() {\n }\n Utils.bitReverse = function (value) {\n return (Utils.reverseBits[value & 15] << 12\n | Utils.reverseBits[(value >> 4) & 15] << 8\n | Utils.reverseBits[(value >> 8) & 15] << 4\n | Utils.reverseBits[value >> 12]);\n };\n Utils.bitConverterToInt32 = function (value, index) {\n return value[index] | value[index + 1] << 8 | value[index + 2] << 16 | value[index + 3] << 24;\n };\n Utils.bitConverterToInt16 = function (value, index) {\n return value[index] | value[index + 1] << 8;\n };\n Utils.bitConverterToUInt32 = function (value) {\n var uint = new Uint32Array(1);\n uint[0] = value;\n return uint[0];\n };\n Utils.bitConverterToUInt16 = function (value, index) {\n var uint = new Uint16Array(1);\n uint[0] = (value[index] | value[index + 1] << 8);\n return uint[0];\n };\n Utils.bitConverterUintToInt32 = function (value) {\n var uint = new Int32Array(1);\n uint[0] = value;\n return uint[0];\n };\n Utils.bitConverterInt32ToUint = function (value) {\n var uint = new Uint32Array(1);\n uint[0] = value;\n return uint[0];\n };\n Utils.bitConverterInt32ToInt16 = function (value) {\n var uint = new Int16Array(1);\n uint[0] = value;\n return uint[0];\n };\n Utils.byteToString = function (value) {\n var str = '';\n for (var i = 0; i < value.length; i++) {\n str += String.fromCharCode(value[i]);\n }\n return str;\n };\n Utils.byteIntToString = function (value) {\n var str = '';\n for (var i = 0; i < value.length; i++) {\n str += String.fromCharCode(value[i]);\n }\n return str;\n };\n Utils.arrayCopy = function (source, sourceIndex, destination, destinationIndex, dataToCopy) {\n var temp = new Uint8Array(source.buffer, sourceIndex);\n var data = temp.subarray(0, dataToCopy);\n destination.set(data, destinationIndex);\n };\n Utils.mergeArray = function (arrayOne, arrayTwo) {\n var mergedArray = new Uint8Array(arrayOne.length + arrayTwo.length);\n mergedArray.set(arrayOne);\n mergedArray.set(arrayTwo, arrayOne.length);\n return mergedArray;\n };\n /**\n * @private\n */\n Utils.encodedString = function (input) {\n var keyStr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n var chr1;\n var chr2;\n var chr3;\n var encode1;\n var encode2;\n var encode3;\n var encode4;\n var count = 0;\n var resultIndex = 0;\n /*let dataUrlPrefix: string = 'data:';*/\n input = input.replace(/[^A-Za-z0-9\\+\\/\\=]/g, '');\n var totalLength = input.length * 3 / 4;\n if (input.charAt(input.length - 1) === keyStr.charAt(64)) {\n totalLength--;\n }\n if (input.charAt(input.length - 2) === keyStr.charAt(64)) {\n totalLength--;\n }\n if (totalLength % 1 !== 0) {\n // totalLength is not an integer, the length does not match a valid\n // base64 content. That can happen if:\n // - the input is not a base64 content\n // - the input is *almost* a base64 content, with a extra chars at the\n // beginning or at the end\n // - the input uses a base64 variant (base64url for example)\n throw new Error('Invalid base64 input, bad content length.');\n }\n var output = new Uint8Array(totalLength | 0);\n while (count < input.length) {\n encode1 = keyStr.indexOf(input.charAt(count++));\n encode2 = keyStr.indexOf(input.charAt(count++));\n encode3 = keyStr.indexOf(input.charAt(count++));\n encode4 = keyStr.indexOf(input.charAt(count++));\n chr1 = (encode1 << 2) | (encode2 >> 4);\n chr2 = ((encode2 & 15) << 4) | (encode3 >> 2);\n chr3 = ((encode3 & 3) << 6) | encode4;\n output[resultIndex++] = chr1;\n if (encode3 !== 64) {\n output[resultIndex++] = chr2;\n }\n if (encode4 !== 64) {\n output[resultIndex++] = chr3;\n }\n }\n return output;\n };\n Utils.reverseBits = [0, 8, 4, 12, 2, 10, 6, 14, 1, 9, 5, 13, 3, 11, 7, 15];\n Utils.huffCodeLengthOrders = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15];\n return Utils;\n}());\nexport { Utils };\n/* eslint-enable */ \n","/* eslint-disable */\nimport { Utils } from './index';\nvar DecompressorHuffmanTree = /** @class */ (function () {\n function DecompressorHuffmanTree(lengths) {\n this.buildTree(lengths);\n }\n DecompressorHuffmanTree.init = function () {\n var lengths;\n var index;\n // Generate huffman tree for lengths.\n lengths = new Uint8Array(288);\n index = 0;\n while (index < 144) {\n lengths[index++] = 8;\n }\n while (index < 256) {\n lengths[index++] = 9;\n }\n while (index < 280) {\n lengths[index++] = 7;\n }\n while (index < 288) {\n lengths[index++] = 8;\n }\n DecompressorHuffmanTree.m_LengthTree = new DecompressorHuffmanTree(lengths);\n // Generate huffman tree for distances.\n lengths = new Uint8Array(32);\n index = 0;\n while (index < 32) {\n lengths[index++] = 5;\n }\n DecompressorHuffmanTree.m_DistanceTree = new DecompressorHuffmanTree(lengths);\n };\n /// \n /// Prepares data for generating huffman tree.\n /// \n /// Array of counts of each code length.\n /// Numerical values of the smallest code for each code length.\n /// Array of code lengths.\n /// Calculated tree size.\n /// Code.\n DecompressorHuffmanTree.prototype.prepareData = function (blCount, nextCode, lengths) {\n var code = 0;\n var treeSize = 512;\n // Count number of codes for each code length.\n for (var i = 0; i < lengths.length; i++) {\n var length_1 = lengths[i];\n if (length_1 > 0) {\n blCount[length_1]++;\n }\n }\n for (var bits = 1; bits <= DecompressorHuffmanTree.MAX_BITLEN; bits++) {\n nextCode[bits] = code;\n code += blCount[bits] << (16 - bits);\n if (bits >= 10) {\n var start = nextCode[bits] & 0x1ff80;\n var end = code & 0x1ff80;\n treeSize += (end - start) >> (16 - bits);\n }\n }\n /* if( code != 65536 )\n throw new ZipException( \"Code lengths don't add up properly.\" );*/\n return { 'code': code, 'treeSize': treeSize };\n };\n /// \n /// Generates huffman tree.\n /// \n /// Array of counts of each code length.\n /// Numerical values of the smallest code for each code length.\n /// Precalculated code.\n /// Array of code lengths.\n /// Calculated size of the tree.\n /// Generated tree.\n DecompressorHuffmanTree.prototype.treeFromData = function (blCount, nextCode, lengths, code, treeSize) {\n var tree = new Int16Array(treeSize);\n var pointer = 512;\n var increment = 1 << 7;\n for (var bits = DecompressorHuffmanTree.MAX_BITLEN; bits >= 10; bits--) {\n var end = code & 0x1ff80;\n code -= blCount[bits] << (16 - bits);\n var start = code & 0x1ff80;\n for (var i = start; i < end; i += increment) {\n tree[Utils.bitReverse(i)] = Utils.bitConverterInt32ToInt16((-pointer << 4) | bits);\n pointer += 1 << (bits - 9);\n }\n }\n for (var i = 0; i < lengths.length; i++) {\n var bits = lengths[i];\n if (bits == 0) {\n continue;\n }\n code = nextCode[bits];\n var revcode = Utils.bitReverse(code);\n if (bits <= 9) {\n do {\n tree[revcode] = Utils.bitConverterInt32ToInt16((i << 4) | bits);\n revcode += 1 << bits;\n } while (revcode < 512);\n }\n else {\n var subTree = tree[revcode & 511];\n var treeLen = 1 << (subTree & 15);\n subTree = -(subTree >> 4);\n do {\n tree[subTree | (revcode >> 9)] = Utils.bitConverterInt32ToInt16((i << 4) | bits);\n revcode += 1 << bits;\n } while (revcode < treeLen);\n }\n nextCode[bits] = code + (1 << (16 - bits));\n }\n return tree;\n };\n /// \n /// Builds huffman tree from array of code lengths.\n /// \n /// Array of code lengths.\n DecompressorHuffmanTree.prototype.buildTree = function (lengths) {\n // Count of codes for each code length.\n var blCount = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n // Numerical value of the smallest code for each code length.\n var nextCode = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n var prepareData = this.prepareData(blCount, nextCode, lengths);\n this.m_Tree = this.treeFromData(blCount, nextCode, lengths, prepareData.code, prepareData.treeSize);\n };\n /// \n /// Reads and decompresses one symbol.\n /// \n /// \n /// \n DecompressorHuffmanTree.prototype.unpackSymbol = function (input) {\n var lookahead;\n var symbol;\n if ((lookahead = input.peekBits(9)) >= 0) {\n if ((symbol = this.m_Tree[lookahead]) >= 0) {\n input.skipBits((symbol & 15));\n return symbol >> 4;\n }\n var subtree = -(symbol >> 4);\n var bitlen = symbol & 15;\n if ((lookahead = input.peekBits(bitlen)) >= 0) {\n symbol = this.m_Tree[subtree | (lookahead >> 9)];\n input.skipBits((symbol & 15));\n return symbol >> 4;\n }\n else {\n var bits = input.availableBits;\n lookahead = input.peekBits(bits);\n symbol = this.m_Tree[subtree | (lookahead >> 9)];\n if ((symbol & 15) <= bits) {\n input.skipBits((symbol & 15));\n return symbol >> 4;\n }\n else {\n return -1;\n }\n }\n }\n else {\n var bits = input.availableBits;\n lookahead = input.peekBits(bits);\n symbol = this.m_Tree[lookahead];\n if (symbol >= 0 && (symbol & 15) <= bits) {\n input.skipBits((symbol & 15));\n return symbol >> 4;\n }\n else {\n return -1;\n }\n }\n };\n Object.defineProperty(DecompressorHuffmanTree, \"lengthTree\", {\n /// \n /// GET huffman tree for encoding and decoding lengths.\n /// \n get: function () {\n return this.m_LengthTree;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DecompressorHuffmanTree, \"distanceTree\", {\n /// \n /// GET huffman tree for encoding and decoding distances.\n /// \n get: function () {\n return this.m_DistanceTree;\n },\n enumerable: true,\n configurable: true\n });\n /// \n /// Maximum count of bits.\n /// \n DecompressorHuffmanTree.MAX_BITLEN = 15;\n return DecompressorHuffmanTree;\n}());\nexport { DecompressorHuffmanTree };\n/* eslint-enable */ \n","/* eslint-disable */\n/// \n/// Checksum calculator, based on Adler32 algorithm.\n/// \nvar ChecksumCalculator = /** @class */ (function () {\n function ChecksumCalculator() {\n }\n /// \n /// Updates checksum by calculating checksum of the\n /// given buffer and adding it to current value.\n /// \n /// Current checksum.\n /// Data byte array.\n /// Offset in the buffer.\n /// Length of data to be used from the stream.\n ChecksumCalculator.ChecksumUpdate = function (checksum, buffer, offset, length) {\n var checkSumUInt = checksum;\n var s1 = checkSumUInt & 65535;\n var s2 = checkSumUInt >> this.DEF_CHECKSUM_BIT_OFFSET;\n while (length > 0) {\n var steps = Math.min(length, this.DEF_CHECKSUM_ITERATIONSCOUNT);\n length -= steps;\n while (--steps >= 0) {\n s1 = s1 + (buffer[offset++] & 255);\n s2 = s2 + s1;\n }\n s1 %= this.DEF_CHECKSUM_BASE;\n s2 %= this.DEF_CHECKSUM_BASE;\n }\n checkSumUInt = (s2 << this.DEF_CHECKSUM_BIT_OFFSET) | s1;\n checksum = checkSumUInt;\n };\n /// \n /// Generates checksum by calculating checksum of the\n /// given buffer.\n /// \n /// Data byte array.\n /// Offset in the buffer.\n /// Length of data to be used from the stream.\n ChecksumCalculator.ChecksumGenerate = function (buffer, offset, length) {\n var result = 1;\n ChecksumCalculator.ChecksumUpdate(result, buffer, offset, length);\n return result;\n };\n /// \n /// Bits offset, used in adler checksum calculation.\n /// \n ChecksumCalculator.DEF_CHECKSUM_BIT_OFFSET = 16;\n /// \n /// Lagrest prime, less than 65535\n /// \n ChecksumCalculator.DEF_CHECKSUM_BASE = 65521;\n /// \n /// Count of iteration used in calculated of the adler checksumm.\n /// \n ChecksumCalculator.DEF_CHECKSUM_ITERATIONSCOUNT = 3800;\n return ChecksumCalculator;\n}());\nexport { ChecksumCalculator };\n/* eslint-enable */ \n","/* eslint-disable */\nimport { DecompressorHuffmanTree } from './decompressor-huffman-tree';\nimport { Utils } from './utils';\nimport { ChecksumCalculator } from './checksum-calculator';\nvar CompressedStreamReader = /** @class */ (function () {\n function CompressedStreamReader(stream, bNoWrap) {\n /// \n /// Code lengths for the code length alphabet.\n /// \n this.defaultHuffmanDynamicTree = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15];\n /// \n /// Mask for compression method to be decoded from 16-bit header.\n /// \n this.DEF_HEADER_METHOD_MASK = 15 << 8;\n /// \n /// Mask for compression info to be decoded from 16-bit header.\n /// \n this.DEF_HEADER_INFO_MASK = 240 << 8;\n /// \n /// Mask for check bits to be decoded from 16-bit header.\n /// \n this.DEF_HEADER_FLAGS_FCHECK = 31;\n /// \n /// Mask for dictionary presence to be decoded from 16-bit header.\n /// \n this.DEF_HEADER_FLAGS_FDICT = 32;\n /// \n /// Mask for compression level to be decoded from 16-bit header.\n /// \n this.DEF_HEADER_FLAGS_FLEVEL = 192;\n /// \n /// Maximum size of the data window.\n /// \n this.DEF_MAX_WINDOW_SIZE = 65535;\n /// \n /// Maximum length of the repeatable block.\n /// \n this.DEF_HUFFMAN_REPEATE_MAX = 258;\n /// \n /// End of the block sign.\n /// \n this.DEF_HUFFMAN_END_BLOCK = 256;\n /// \n /// Minimal length code.\n /// \n this.DEF_HUFFMAN_LENGTH_MINIMUMCODE = 257;\n /// \n /// Maximal length code.\n /// \n this.DEF_HUFFMAN_LENGTH_MAXIMUMCODE = 285;\n /// \n /// Maximal distance code.\n /// \n this.DEF_HUFFMAN_DISTANCE_MAXIMUMCODE = 29;\n /// \n /// Currently calculated checksum,\n /// based on Adler32 algorithm.\n /// \n this.mCheckSum = 1;\n /// \n /// Currently read 4 bytes.\n /// \n this.tBuffer = 0;\n /// \n /// Count of bits that are in buffer.\n /// \n this.mBufferedBits = 0;\n /// \n /// Temporary buffer.\n /// \n this.mTempBuffer = new Uint8Array(4);\n /// \n /// 32k buffer for unpacked data.\n /// \n this.mBlockBuffer = new Uint8Array(this.DEF_MAX_WINDOW_SIZE);\n /// \n /// No wrap mode.\n /// \n this.mbNoWrap = false;\n /// \n /// Window size, can not be larger than 32k.\n /// \n this.mWindowSize = 0;\n /// \n /// Current position in output stream.\n /// Current in-block position can be extracted by applying Int16.MaxValue mask.\n /// \n this.mCurrentPosition = 0;\n /// \n /// Data length.\n /// Current in-block position can be extracted by applying Int16.MaxValue mask.\n /// \n this.mDataLength = 0;\n /// \n /// Specifies wheather next block can to be read.\n /// Reading can be denied because the header of the last block have been read.\n /// \n this.mbCanReadNextBlock = true;\n /// \n /// Specifies wheather user can read more data from stream.\n /// \n this.mbCanReadMoreData = true;\n /// \n /// Specifies wheather checksum has been read.\n /// \n this.mbCheckSumRead = false;\n if (stream == null) {\n throw new DOMException('stream');\n }\n if (stream.length === 0) {\n throw new DOMException('stream - string can not be empty');\n }\n DecompressorHuffmanTree.init();\n this.mInputStream = new Stream(stream);\n this.mbNoWrap = bNoWrap;\n if (!this.mbNoWrap) {\n this.readZLibHeader();\n }\n this.decodeBlockHeader();\n }\n Object.defineProperty(CompressedStreamReader.prototype, \"mBuffer\", {\n get: function () {\n return this.tBuffer;\n },\n set: function (value) {\n this.tBuffer = value;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Initializes compressor and writes ZLib header if needed.\n * @param {boolean} noWrap - optional if true, ZLib header and checksum will not be written.\n */\n /// \n /// Reads specified count of bits without adjusting position.\n /// \n /// Count of bits to be read.\n /// Read value.\n CompressedStreamReader.prototype.peekBits = function (count) {\n if (count < 0) {\n throw new DOMException('count', 'Bits count can not be less than zero.');\n }\n if (count > 32) {\n throw new DOMException('count', 'Count of bits is too large.');\n }\n // If buffered data is not enough to give result,\n // fill buffer.\n if (this.mBufferedBits < count) {\n this.fillBuffer();\n }\n // If you want to read 4 bytes and there is partial data in\n // buffer, than you will fail.\n if (this.mBufferedBits < count) {\n return -1;\n }\n // Create bitmask for reading of count bits\n var bitMask = ~(4294967295 << count);\n var result = Utils.bitConverterUintToInt32(this.mBuffer & bitMask);\n //Debug.WriteLine( /*new string( ' ', 32 - mBufferedBits + (int)( ( 32 - mBufferedBits ) / 8 ) ) + BitsToString( (int)mBuffer, mBufferedBits ) + \" \" + BitsToString( result, count ) +*/ \" \" + result.ToString() );\n return result;\n };\n CompressedStreamReader.prototype.fillBuffer = function () {\n var length = 4 - (this.mBufferedBits >> 3) -\n (((this.mBufferedBits & 7) !== 0) ? 1 : 0);\n if (length === 0) {\n return;\n }\n //TODO: fix this\n var bytesRead = this.mInputStream.read(this.mTempBuffer, 0, length);\n for (var i = 0; i < bytesRead; i++) {\n this.mBuffer = Utils.bitConverterInt32ToUint(this.mBuffer |\n (Utils.bitConverterInt32ToUint(this.mTempBuffer[i] << this.mBufferedBits)));\n this.mBufferedBits += 8;\n }\n //TODO: fix this\n };\n /// \n /// Skips specified count of bits.\n /// \n /// Count of bits to be skipped.\n CompressedStreamReader.prototype.skipBits = function (count) {\n if (count < 0) {\n throw new DOMException('count', 'Bits count can not be less than zero.');\n }\n if (count === 0) {\n return;\n }\n if (count >= this.mBufferedBits) {\n count -= this.mBufferedBits;\n this.mBufferedBits = 0;\n this.mBuffer = 0;\n // if something left, skip it.\n if (count > 0) {\n // Skip entire bytes.\n this.mInputStream.position += (count >> 3); //TODO: fix this\n count &= 7;\n // Skip bits.\n if (count > 0) {\n this.fillBuffer();\n this.mBufferedBits -= count;\n this.mBuffer = Utils.bitConverterInt32ToUint(this.mBuffer >>> count);\n }\n }\n }\n else {\n this.mBufferedBits -= count;\n this.mBuffer = Utils.bitConverterInt32ToUint(this.mBuffer >>> count);\n }\n };\n Object.defineProperty(CompressedStreamReader.prototype, \"availableBits\", {\n get: function () {\n return this.mBufferedBits;\n },\n enumerable: true,\n configurable: true\n });\n /// \n /// Reads ZLib header with compression method and flags.\n /// \n CompressedStreamReader.prototype.readZLibHeader = function () {\n // first 8 bits - compression Method and flags\n // 8 other - flags\n var header = this.readInt16();\n //Debug.WriteLine( BitsToString( header ) );\n if (header === -1) {\n throw new DOMException('Header of the stream can not be read.');\n }\n if (header % 31 !== 0) {\n throw new DOMException('Header checksum illegal');\n }\n if ((header & this.DEF_HEADER_METHOD_MASK) !== (8 << 8)) {\n throw new DOMException('Unsupported compression method.');\n }\n this.mWindowSize = Math.pow(2, ((header & this.DEF_HEADER_INFO_MASK) >> 12) + 8);\n if (this.mWindowSize > 65535) {\n throw new DOMException('Unsupported window size for deflate compression method.');\n }\n if ((header & this.DEF_HEADER_FLAGS_FDICT) >> 5 === 1) {\n // Get dictionary.\n throw new DOMException('Custom dictionary is not supported at the moment.');\n }\n };\n /// \n /// TODO: place correct comment here\n /// \n /// \n /// TODO: place correct comment here\n /// \n CompressedStreamReader.prototype.readInt16 = function () {\n var result = (this.readBits(8) << 8);\n result |= this.readBits(8);\n return result;\n };\n /// \n /// Reads specified count of bits from stream.\n /// \n /// Count of bits to be read.\n /// \n /// TODO: place correct comment here\n /// \n CompressedStreamReader.prototype.readBits = function (count) {\n var result = this.peekBits(count);\n if (result === -1) {\n return -1;\n }\n this.mBufferedBits -= count;\n this.mBuffer = Utils.bitConverterInt32ToUint(this.mBuffer >>> count);\n return result;\n };\n /// \n /// Reads and decodes block of data.\n /// \n /// True if buffer was empty and new data was read, otherwise - False.\n CompressedStreamReader.prototype.decodeBlockHeader = function () {\n if (!this.mbCanReadNextBlock) {\n return false;\n }\n var bFinalBlock = this.readBits(1);\n if (bFinalBlock === -1) {\n return false;\n }\n var blockType = this.readBits(2);\n if (blockType === -1) {\n return false;\n }\n this.mbCanReadNextBlock = (bFinalBlock === 0);\n // ChecksumReset();\n switch (blockType) {\n case 0:\n // Uncompressed data\n this.mbReadingUncompressed = true;\n this.skipToBoundary();\n var length_1 = this.readInt16Inverted();\n var lengthComplement = this.readInt16Inverted();\n if (length_1 !== (lengthComplement ^ 0xffff)) {\n throw new DOMException('Wrong block length.');\n }\n if (length_1 > 65535) {\n throw new DOMException('Uncompressed block length can not be more than 65535.');\n }\n this.mUncompressedDataLength = length_1;\n this.mCurrentLengthTree = null;\n this.mCurrentDistanceTree = null;\n break;\n case 1:\n // Compressed data with fixed huffman codes.\n this.mbReadingUncompressed = false;\n this.mUncompressedDataLength = -1;\n this.mCurrentLengthTree = DecompressorHuffmanTree.lengthTree;\n this.mCurrentDistanceTree = DecompressorHuffmanTree.distanceTree;\n break;\n case 2:\n // Compressed data with dynamic huffman codes.\n this.mbReadingUncompressed = false;\n this.mUncompressedDataLength = -1;\n var trees = this.decodeDynamicHeader(this.mCurrentLengthTree, this.mCurrentDistanceTree);\n this.mCurrentLengthTree = trees.lengthTree;\n this.mCurrentDistanceTree = trees.distanceTree;\n break;\n default:\n throw new DOMException('Wrong block type.');\n }\n return true;\n };\n /// \n /// Discards left-most partially used byte.\n /// \n CompressedStreamReader.prototype.skipToBoundary = function () {\n this.mBuffer = Utils.bitConverterInt32ToUint(this.mBuffer >>> (this.mBufferedBits & 7));\n this.mBufferedBits &= ~7;\n };\n /// \n /// TODO: place correct comment here\n /// \n /// \n /// TODO: place correct comment here\n /// \n CompressedStreamReader.prototype.readInt16Inverted = function () {\n var result = (this.readBits(8));\n result |= this.readBits(8) << 8;\n return result;\n };\n /// \n /// Reades dynamic huffman codes from block header.\n /// \n /// Literals/Lengths tree.\n /// Distances tree.\n CompressedStreamReader.prototype.decodeDynamicHeader = function (lengthTree, distanceTree) {\n var bLastSymbol = 0;\n var iLengthsCount = this.readBits(5);\n var iDistancesCount = this.readBits(5);\n var iCodeLengthsCount = this.readBits(4);\n if (iLengthsCount < 0 || iDistancesCount < 0 || iCodeLengthsCount < 0) {\n throw new DOMException('Wrong dynamic huffman codes.');\n }\n iLengthsCount += 257;\n iDistancesCount += 1;\n var iResultingCodeLengthsCount = iLengthsCount + iDistancesCount;\n var arrResultingCodeLengths = new Uint8Array(iResultingCodeLengthsCount);\n var arrDecoderCodeLengths = new Uint8Array(19);\n iCodeLengthsCount += 4;\n var iCurrentCode = 0;\n while (iCurrentCode < iCodeLengthsCount) {\n var len = this.readBits(3);\n if (len < 0) {\n throw new DOMException('Wrong dynamic huffman codes.');\n }\n arrDecoderCodeLengths[this.defaultHuffmanDynamicTree[iCurrentCode++]] = len;\n }\n var treeInternalDecoder = new DecompressorHuffmanTree(arrDecoderCodeLengths);\n iCurrentCode = 0;\n for (;;) {\n var symbol = void 0;\n var bNeedBreak = false;\n symbol = treeInternalDecoder.unpackSymbol(this);\n while ((symbol & ~15) === 0) {\n arrResultingCodeLengths[iCurrentCode++] = bLastSymbol = symbol;\n if (iCurrentCode === iResultingCodeLengthsCount) {\n bNeedBreak = true;\n break;\n }\n symbol = treeInternalDecoder.unpackSymbol(this);\n }\n if (bNeedBreak) {\n break;\n }\n if (symbol < 0) {\n throw new DOMException('Wrong dynamic huffman codes.');\n }\n if (symbol >= 17) {\n bLastSymbol = 0;\n }\n else if (iCurrentCode === 0) {\n throw new DOMException('Wrong dynamic huffman codes.');\n }\n var miRepSymbol = symbol - 16;\n var bits = CompressedStreamReader.DEF_HUFFMAN_DYNTREE_REPEAT_BITS[miRepSymbol];\n var count = this.readBits(bits);\n if (count < 0) {\n throw new DOMException('Wrong dynamic huffman codes.');\n }\n count += CompressedStreamReader.DEF_HUFFMAN_DYNTREE_REPEAT_MINIMUMS[miRepSymbol];\n if (iCurrentCode + count > iResultingCodeLengthsCount) {\n throw new DOMException('Wrong dynamic huffman codes.');\n }\n while (count-- > 0) {\n arrResultingCodeLengths[iCurrentCode++] = bLastSymbol;\n }\n if (iCurrentCode === iResultingCodeLengthsCount) {\n break;\n }\n }\n var tempArray = new Uint8Array(iLengthsCount);\n tempArray.set(arrResultingCodeLengths.subarray(0, iLengthsCount), 0);\n //sourceArray, sourceIndex, destinationArray, destinationIndex, length\n //Array.copy( arrResultingCodeLengths, 0, tempArray, 0, iLengthsCount );\n lengthTree = new DecompressorHuffmanTree(tempArray);\n tempArray = arrResultingCodeLengths.slice(iLengthsCount, iLengthsCount + iDistancesCount);\n //Array.copy( arrResultingCodeLengths, iLengthsCount, tempArray, 0, iDistancesCount );\n distanceTree = new DecompressorHuffmanTree(tempArray);\n return { 'lengthTree': lengthTree, 'distanceTree': distanceTree };\n };\n /// \n /// Decodes huffman codes.\n /// \n /// True if some data was read.\n CompressedStreamReader.prototype.readHuffman = function () {\n var free = this.DEF_MAX_WINDOW_SIZE - (this.mDataLength - this.mCurrentPosition);\n var dataRead = false;\n //long maxdistance = DEF_MAX_WINDOW_SIZE >> 1;\n var readdata = {};\n // DEF_HUFFMAN_REPEATE_MAX - longest repeatable block, we should always reserve space for it because\n // if we should not, we will have buffer overrun.\n while (free >= this.DEF_HUFFMAN_REPEATE_MAX) {\n var symbol = void 0;\n symbol = this.mCurrentLengthTree.unpackSymbol(this);\n // Only codes 0..255 are valid independent symbols.\n while (((symbol) & ~0xff) === 0) {\n readdata[(this.mDataLength + 1) % this.DEF_MAX_WINDOW_SIZE] = symbol;\n this.mBlockBuffer[this.mDataLength++ % this.DEF_MAX_WINDOW_SIZE] = symbol;\n dataRead = true;\n if (--free < this.DEF_HUFFMAN_REPEATE_MAX) {\n return true;\n }\n //if( (mDataLength - mCurrentPosition ) < maxdistance ) return true;\n symbol = this.mCurrentLengthTree.unpackSymbol(this);\n }\n if (symbol < this.DEF_HUFFMAN_LENGTH_MINIMUMCODE) {\n if (symbol < this.DEF_HUFFMAN_END_BLOCK) {\n throw new DOMException('Illegal code.');\n }\n var numDataRead = dataRead ? 1 : 0;\n this.mbCanReadMoreData = this.decodeBlockHeader();\n var numReadMore = (this.mbCanReadMoreData) ? 1 : 0;\n return (numDataRead | numReadMore) ? true : false;\n }\n if (symbol > this.DEF_HUFFMAN_LENGTH_MAXIMUMCODE) {\n throw new DOMException('Illegal repeat code length.');\n }\n var iRepeatLength = CompressedStreamReader.DEF_HUFFMAN_REPEAT_LENGTH_BASE[symbol -\n this.DEF_HUFFMAN_LENGTH_MINIMUMCODE];\n var iRepeatExtraBits = CompressedStreamReader.DEF_HUFFMAN_REPEAT_LENGTH_EXTENSION[symbol -\n this.DEF_HUFFMAN_LENGTH_MINIMUMCODE];\n if (iRepeatExtraBits > 0) {\n var extra = this.readBits(iRepeatExtraBits);\n if (extra < 0) {\n throw new DOMException('Wrong data.');\n }\n iRepeatLength += extra;\n }\n // Unpack repeat distance.\n symbol = this.mCurrentDistanceTree.unpackSymbol(this);\n if (symbol < 0 || symbol > CompressedStreamReader.DEF_HUFFMAN_REPEAT_DISTANCE_BASE.length) {\n throw new DOMException('Wrong distance code.');\n }\n var iRepeatDistance = CompressedStreamReader.DEF_HUFFMAN_REPEAT_DISTANCE_BASE[symbol];\n iRepeatExtraBits = CompressedStreamReader.DEF_HUFFMAN_REPEAT_DISTANCE_EXTENSION[symbol];\n if (iRepeatExtraBits > 0) {\n var extra = this.readBits(iRepeatExtraBits);\n if (extra < 0) {\n throw new DOMException('Wrong data.');\n }\n iRepeatDistance += extra;\n }\n // Copy data in slow repeat mode\n for (var i = 0; i < iRepeatLength; i++) {\n this.mBlockBuffer[this.mDataLength % this.DEF_MAX_WINDOW_SIZE] =\n this.mBlockBuffer[(this.mDataLength - iRepeatDistance) % this.DEF_MAX_WINDOW_SIZE];\n this.mDataLength++;\n free--;\n }\n dataRead = true;\n }\n return dataRead;\n };\n /// \n /// Reads data to buffer.\n /// \n /// Output buffer for data.\n /// Offset in output data.\n /// Length of the data to be read.\n /// Count of bytes actually read.\n CompressedStreamReader.prototype.read = function (buffer, offset, length) {\n if (buffer == null) {\n throw new DOMException('buffer');\n }\n if (offset < 0 || offset > buffer.length - 1) {\n throw new DOMException('offset', 'Offset does not belong to specified buffer.');\n }\n if (length < 0 || length > buffer.length - offset) {\n throw new DOMException('length', 'Length is illegal.');\n }\n var initialLength = length;\n while (length > 0) {\n // Read from internal buffer.\n if (this.mCurrentPosition < this.mDataLength) {\n // Position in buffer array.\n var inBlockPosition = (this.mCurrentPosition % this.DEF_MAX_WINDOW_SIZE);\n // We can not read more than we have in buffer at once,\n // and we not read more than till the array end.\n var dataToCopy = Math.min(this.DEF_MAX_WINDOW_SIZE - inBlockPosition, (this.mDataLength - this.mCurrentPosition));\n // Reading not more, than the rest of the buffer.\n dataToCopy = Math.min(dataToCopy, length);\n //sourceArray, sourceIndex, destinationArray, destinationIndex, length\n // Copy data.\n //Array.Copy( mBlockBuffer, inBlockPosition, buffer, offset, dataToCopy );\n //buffer.set(this.mBlockBuffer.slice(inBlockPosition, dataToCopy), offset);\n Utils.arrayCopy(this.mBlockBuffer, inBlockPosition, buffer, offset, dataToCopy);\n // Correct position, length,\n this.mCurrentPosition += dataToCopy;\n offset += dataToCopy;\n length -= dataToCopy;\n }\n else {\n if (!this.mbCanReadMoreData) {\n break;\n }\n var oldDataLength = this.mDataLength;\n if (!this.mbReadingUncompressed) {\n if (!this.readHuffman()) {\n break;\n }\n }\n else {\n if (this.mUncompressedDataLength === 0) {\n // If there is no more data in stream, just exit.\n this.mbCanReadMoreData = this.decodeBlockHeader();\n if (!(this.mbCanReadMoreData)) {\n break;\n }\n }\n else {\n // Position of the data end in block buffer.\n var inBlockPosition = (this.mDataLength % this.DEF_MAX_WINDOW_SIZE);\n var dataToRead = Math.min(this.mUncompressedDataLength, this.DEF_MAX_WINDOW_SIZE - inBlockPosition);\n var dataRead = this.readPackedBytes(this.mBlockBuffer, inBlockPosition, dataToRead);\n if (dataToRead !== dataRead) {\n throw new DOMException('Not enough data in stream.');\n }\n this.mUncompressedDataLength -= dataRead;\n this.mDataLength += dataRead;\n }\n }\n if (oldDataLength < this.mDataLength) {\n var start = (oldDataLength % this.DEF_MAX_WINDOW_SIZE);\n var end = (this.mDataLength % this.DEF_MAX_WINDOW_SIZE);\n if (start < end) {\n this.checksumUpdate(this.mBlockBuffer, start, end - start);\n }\n else {\n this.checksumUpdate(this.mBlockBuffer, start, this.DEF_MAX_WINDOW_SIZE - start);\n if (end > 0) {\n this.checksumUpdate(this.mBlockBuffer, 0, end);\n }\n }\n }\n }\n }\n if (!this.mbCanReadMoreData && !this.mbCheckSumRead && !this.mbNoWrap) {\n this.skipToBoundary();\n var checkSum = this.readInt32();\n //Debug.Assert( checkSum == mCheckSum, \"\" );\n if (checkSum !== this.mCheckSum) {\n throw new DOMException('Checksum check failed.');\n }\n this.mbCheckSumRead = true;\n }\n return initialLength - length;\n };\n /// \n /// Reads array of bytes.\n /// \n /// Output buffer.\n /// Offset in output buffer.\n /// Length of the data to be read.\n /// Count of bytes actually read to the buffer.\n CompressedStreamReader.prototype.readPackedBytes = function (buffer, offset, length) {\n if (buffer == null) {\n throw new DOMException('buffer');\n }\n if (offset < 0 || offset > buffer.length - 1) {\n throw new DOMException('offset\", \"Offset can not be less than zero or greater than buffer length - 1.');\n }\n if (length < 0) {\n throw new DOMException('length\", \"Length can not be less than zero.');\n }\n if (length > buffer.length - offset) {\n throw new DOMException('length\", \"Length is too large.');\n }\n if ((this.mBufferedBits & 7) !== 0) {\n throw new DOMException('Reading of unalligned data is not supported.');\n }\n if (length === 0) {\n return 0;\n }\n var result = 0;\n while (this.mBufferedBits > 0 && length > 0) {\n buffer[offset++] = (this.mBuffer);\n this.mBufferedBits -= 8;\n this.mBuffer = Utils.bitConverterInt32ToUint(this.mBuffer >>> 8);\n length--;\n result++;\n }\n if (length > 0) {\n //TODO: Fix this.\n result += this.mInputStream.read(buffer, offset, length);\n }\n return result;\n };\n /// \n /// TODO: place correct comment here\n /// \n /// \n /// TODO: place correct comment here\n /// \n CompressedStreamReader.prototype.readInt32 = function () {\n var result = this.readBits(8) << 24;\n result |= this.readBits(8) << 16;\n result |= this.readBits(8) << 8;\n result |= this.readBits(8);\n return result;\n };\n /// \n /// Updates checksum by calculating checksum of the\n /// given buffer and adding it to current value.\n /// \n /// Data byte array.\n /// Offset in the buffer.\n /// Length of data to be used from the stream.\n CompressedStreamReader.prototype.checksumUpdate = function (buffer, offset, length) {\n ChecksumCalculator.ChecksumUpdate(this.mCheckSum, buffer, offset, length);\n };\n CompressedStreamReader.DEF_REVERSE_BITS = new Uint8Array([0, 8, 4, 12, 2, 10, 6, 14, 1, 9, 5, 13, 3, 11, 7, 15]);\n /// \n /// Minimum count of repetions.\n /// \n CompressedStreamReader.DEF_HUFFMAN_DYNTREE_REPEAT_MINIMUMS = [3, 3, 11];\n /// \n /// Bits, that responds for different repetion modes.\n /// \n CompressedStreamReader.DEF_HUFFMAN_DYNTREE_REPEAT_BITS = [2, 3, 7];\n /// \n /// Length bases.\n /// \n CompressedStreamReader.DEF_HUFFMAN_REPEAT_LENGTH_BASE = [\n 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,\n 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258\n ];\n /// \n /// Length extended bits count.\n /// \n CompressedStreamReader.DEF_HUFFMAN_REPEAT_LENGTH_EXTENSION = [\n 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2,\n 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0\n ];\n /// \n /// Distance bases.\n /// \n CompressedStreamReader.DEF_HUFFMAN_REPEAT_DISTANCE_BASE = [\n 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,\n 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,\n 8193, 12289, 16385, 24577\n ];\n /// \n /// Distance extanded bits count.\n /// \n CompressedStreamReader.DEF_HUFFMAN_REPEAT_DISTANCE_EXTENSION = [\n 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6,\n 7, 7, 8, 8, 9, 9, 10, 10, 11, 11,\n 12, 12, 13, 13\n ];\n return CompressedStreamReader;\n}());\nexport { CompressedStreamReader };\nvar Stream = /** @class */ (function () {\n function Stream(input) {\n this.position = 0;\n this.inputStream = new Uint8Array(input.buffer);\n }\n Object.defineProperty(Stream.prototype, \"length\", {\n get: function () {\n return this.inputStream.buffer.byteLength;\n },\n enumerable: true,\n configurable: true\n });\n Stream.prototype.read = function (buffer, start, length) {\n var temp = new Uint8Array(this.inputStream.buffer, this.position + start);\n var data = temp.subarray(0, length);\n buffer.set(data, 0);\n this.position += data.byteLength;\n return data.byteLength;\n };\n Stream.prototype.readByte = function () {\n return this.inputStream[this.position++];\n };\n Stream.prototype.write = function (inputBuffer, offset, count) {\n Utils.arrayCopy(inputBuffer, 0, this.inputStream, this.position + offset, count);\n // this.inputStream = new Uint8Array(this.inputStream.buffer, this.position + offset);\n // this.inputStream.set(inputBuffer, offset);\n this.position += count;\n };\n Stream.prototype.toByteArray = function () {\n return new Uint8Array(this.inputStream.buffer);\n };\n return Stream;\n}());\nexport { Stream };\n/* eslint-enable */ \n","/**\n * Encoding class: Contains the details about encoding type, whether to write a Unicode byte order mark (BOM).\n * ```typescript\n * let encoding : Encoding = new Encoding();\n * encoding.type = 'Utf8';\n * encoding.getBytes('Encoding', 0, 5);\n * ```\n */\nvar Encoding = /** @class */ (function () {\n /**\n * Initializes a new instance of the Encoding class. A parameter specifies whether to write a Unicode byte order mark\n * @param {boolean} includeBom?-true to specify that a Unicode byte order mark is written; otherwise, false.\n */\n function Encoding(includeBom) {\n this.emitBOM = true;\n this.encodingType = 'Ansi';\n this.initBOM(includeBom);\n }\n Object.defineProperty(Encoding.prototype, \"includeBom\", {\n /**\n * Gets a value indicating whether to write a Unicode byte order mark\n * @returns boolean- true to specify that a Unicode byte order mark is written; otherwise, false\n */\n get: function () {\n return this.emitBOM;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Encoding.prototype, \"type\", {\n /**\n * Gets the encoding type.\n * @returns EncodingType\n */\n get: function () {\n return this.encodingType;\n },\n /**\n * Sets the encoding type.\n * @param {EncodingType} value\n */\n set: function (value) {\n this.encodingType = value;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Initialize the includeBom to emit BOM or Not\n * @param {boolean} includeBom\n */\n Encoding.prototype.initBOM = function (includeBom) {\n if (includeBom === undefined || includeBom === null) {\n this.emitBOM = true;\n }\n else {\n this.emitBOM = includeBom;\n }\n };\n /**\n * Calculates the number of bytes produced by encoding the characters in the specified string\n * @param {string} chars - The string containing the set of characters to encode\n * @returns {number} - The number of bytes produced by encoding the specified characters\n */\n Encoding.prototype.getByteCount = function (chars) {\n var byteCount = 0;\n validateNullOrUndefined(chars, 'string');\n if (chars === '') {\n var byte = this.utf8Len(chars.charCodeAt(0));\n return byte;\n }\n if (this.type === null || this.type === undefined) {\n this.type = 'Ansi';\n }\n return this.getByteCountInternal(chars, 0, chars.length);\n };\n /**\n * Return the Byte of character\n * @param {number} codePoint\n * @returns {number}\n */\n Encoding.prototype.utf8Len = function (codePoint) {\n var bytes = codePoint <= 0x7F ? 1 :\n codePoint <= 0x7FF ? 2 :\n codePoint <= 0xFFFF ? 3 :\n codePoint <= 0x1FFFFF ? 4 : 0;\n return bytes;\n };\n /**\n * for 4 byte character return surrogate pair true, otherwise false\n * @param {number} codeUnit\n * @returns {boolean}\n */\n Encoding.prototype.isHighSurrogate = function (codeUnit) {\n return codeUnit >= 0xD800 && codeUnit <= 0xDBFF;\n };\n /**\n * for 4byte character generate the surrogate pair\n * @param {number} highCodeUnit\n * @param {number} lowCodeUnit\n */\n Encoding.prototype.toCodepoint = function (highCodeUnit, lowCodeUnit) {\n highCodeUnit = (0x3FF & highCodeUnit) << 10;\n var u = highCodeUnit | (0x3FF & lowCodeUnit);\n return u + 0x10000;\n };\n /**\n * private method to get the byte count for specific charindex and count\n * @param {string} chars\n * @param {number} charIndex\n * @param {number} charCount\n */\n Encoding.prototype.getByteCountInternal = function (chars, charIndex, charCount) {\n var byteCount = 0;\n if (this.encodingType === 'Utf8' || this.encodingType === 'Unicode') {\n var isUtf8 = this.encodingType === 'Utf8';\n for (var i = 0; i < charCount; i++) {\n var charCode = chars.charCodeAt(isUtf8 ? charIndex : charIndex++);\n if (this.isHighSurrogate(charCode)) {\n if (isUtf8) {\n var high = charCode;\n var low = chars.charCodeAt(++charIndex);\n byteCount += this.utf8Len(this.toCodepoint(high, low));\n }\n else {\n byteCount += 4;\n ++i;\n }\n }\n else {\n if (isUtf8) {\n byteCount += this.utf8Len(charCode);\n }\n else {\n byteCount += 2;\n }\n }\n if (isUtf8) {\n charIndex++;\n }\n }\n return byteCount;\n }\n else {\n byteCount = charCount;\n return byteCount;\n }\n };\n /**\n * Encodes a set of characters from the specified string into the ArrayBuffer.\n * @param {string} s- The string containing the set of characters to encode\n * @param {number} charIndex-The index of the first character to encode.\n * @param {number} charCount- The number of characters to encode.\n * @returns {ArrayBuffer} - The ArrayBuffer that contains the resulting sequence of bytes.\n */\n Encoding.prototype.getBytes = function (s, charIndex, charCount) {\n validateNullOrUndefined(s, 'string');\n validateNullOrUndefined(charIndex, 'charIndex');\n validateNullOrUndefined(charCount, 'charCount');\n if (charIndex < 0 || charCount < 0) {\n throw new RangeError('Argument Out Of Range Exception: charIndex or charCount is less than zero');\n }\n if (s.length - charIndex < charCount) {\n throw new RangeError('Argument Out Of Range Exception: charIndex and charCount do not denote a valid range in string');\n }\n var bytes;\n if (s === '') {\n bytes = new ArrayBuffer(0);\n return bytes;\n }\n if (this.type === null || this.type === undefined) {\n this.type = 'Ansi';\n }\n var byteCount = this.getByteCountInternal(s, charIndex, charCount);\n switch (this.type) {\n case 'Utf8':\n bytes = this.getBytesOfUtf8Encoding(byteCount, s, charIndex, charCount);\n return bytes;\n case 'Unicode':\n bytes = this.getBytesOfUnicodeEncoding(byteCount, s, charIndex, charCount);\n return bytes;\n default:\n bytes = this.getBytesOfAnsiEncoding(byteCount, s, charIndex, charCount);\n return bytes;\n }\n };\n /**\n * Decodes a sequence of bytes from the specified ArrayBuffer into the string.\n * @param {ArrayBuffer} bytes- The ArrayBuffer containing the sequence of bytes to decode.\n * @param {number} index- The index of the first byte to decode.\n * @param {number} count- The number of bytes to decode.\n * @returns {string} - The string that contains the resulting set of characters.\n */\n Encoding.prototype.getString = function (bytes, index, count) {\n validateNullOrUndefined(bytes, 'bytes');\n validateNullOrUndefined(index, 'index');\n validateNullOrUndefined(count, 'count');\n if (index < 0 || count < 0) {\n throw new RangeError('Argument Out Of Range Exception: index or count is less than zero');\n }\n if (bytes.byteLength - index < count) {\n throw new RangeError('Argument Out Of Range Exception: index and count do not denote a valid range in bytes');\n }\n if (bytes.byteLength === 0 || count === 0) {\n return '';\n }\n if (this.type === null || this.type === undefined) {\n this.type = 'Ansi';\n }\n var out = '';\n var byteCal = new Uint8Array(bytes);\n switch (this.type) {\n case 'Utf8':\n var s = this.getStringOfUtf8Encoding(byteCal, index, count);\n return s;\n case 'Unicode':\n var byteUnicode = new Uint16Array(bytes);\n out = this.getStringofUnicodeEncoding(byteUnicode, index, count);\n return out;\n default:\n var j = index;\n for (var i = 0; i < count; i++) {\n var c = byteCal[j];\n out += String.fromCharCode(c); // 1 byte(ASCII) character \n j++;\n }\n return out;\n }\n };\n Encoding.prototype.getBytesOfAnsiEncoding = function (byteCount, s, charIndex, charCount) {\n var bytes = new ArrayBuffer(byteCount);\n var bufview = new Uint8Array(bytes);\n var k = 0;\n for (var i = 0; i < charCount; i++) {\n var charcode = s.charCodeAt(charIndex++);\n if (charcode < 0x800) {\n bufview[k] = charcode;\n }\n else {\n bufview[k] = 63; //replacement character '?'\n }\n k++;\n }\n return bytes;\n };\n Encoding.prototype.getBytesOfUtf8Encoding = function (byteCount, s, charIndex, charCount) {\n var bytes = new ArrayBuffer(byteCount);\n var uint = new Uint8Array(bytes);\n var index = charIndex;\n var j = 0;\n for (var i = 0; i < charCount; i++) {\n var charcode = s.charCodeAt(index);\n if (charcode <= 0x7F) { // 1 byte character 2^7\n uint[j] = charcode;\n }\n else if (charcode < 0x800) { // 2 byte character 2^11\n uint[j] = 0xc0 | (charcode >> 6);\n uint[++j] = 0x80 | (charcode & 0x3f);\n }\n else if ((charcode < 0xd800 || charcode >= 0xe000)) { // 3 byte character 2^16 \n uint[j] = 0xe0 | (charcode >> 12);\n uint[++j] = 0x80 | ((charcode >> 6) & 0x3f);\n uint[++j] = 0x80 | (charcode & 0x3f);\n }\n else {\n uint[j] = 0xef;\n uint[++j] = 0xbf;\n uint[++j] = 0xbd; // U+FFFE \"replacement character\"\n }\n ++j;\n ++index;\n }\n return bytes;\n };\n Encoding.prototype.getBytesOfUnicodeEncoding = function (byteCount, s, charIndex, charCount) {\n var bytes = new ArrayBuffer(byteCount);\n var uint16 = new Uint16Array(bytes);\n for (var i = 0; i < charCount; i++) {\n var charcode = s.charCodeAt(i);\n uint16[i] = charcode;\n }\n return bytes;\n };\n Encoding.prototype.getStringOfUtf8Encoding = function (byteCal, index, count) {\n var j = 0;\n var i = index;\n var s = '';\n for (j; j < count; j++) {\n var c = byteCal[i++];\n while (i > byteCal.length) {\n return s;\n }\n if (c > 127) {\n if (c > 191 && c < 224 && i < count) {\n c = (c & 31) << 6 | byteCal[i] & 63;\n }\n else if (c > 223 && c < 240 && i < byteCal.byteLength) {\n c = (c & 15) << 12 | (byteCal[i] & 63) << 6 | byteCal[++i] & 63;\n }\n else if (c > 239 && c < 248 && i < byteCal.byteLength) {\n c = (c & 7) << 18 | (byteCal[i] & 63) << 12 | (byteCal[++i] & 63) << 6 | byteCal[++i] & 63;\n }\n ++i;\n }\n s += String.fromCharCode(c); // 1 byte(ASCII) character \n }\n return s;\n };\n Encoding.prototype.getStringofUnicodeEncoding = function (byteUni, index, count) {\n if (count > byteUni.length) {\n throw new RangeError('ArgumentOutOfRange_Count');\n }\n var byte16 = new Uint16Array(count);\n var out = '';\n for (var i = 0; i < count && i < byteUni.length; i++) {\n byte16[i] = byteUni[index++];\n }\n out = String.fromCharCode.apply(null, byte16);\n return out;\n };\n /**\n * To clear the encoding instance\n * @return {void}\n */\n Encoding.prototype.destroy = function () {\n this.emitBOM = undefined;\n this.encodingType = undefined;\n };\n return Encoding;\n}());\nexport { Encoding };\n/**\n * To check the object is null or undefined and throw error if it is null or undefined\n * @param {Object} value - object to check is null or undefined\n * @return {boolean}\n * @throws {ArgumentException} - if the value is null or undefined\n * @private\n */\nexport function validateNullOrUndefined(value, message) {\n if (value === null || value === undefined) {\n throw new Error('ArgumentException: ' + message + ' cannot be null or undefined');\n }\n}\n","/* eslint-disable */\nimport { Encoding } from '@syncfusion/ej2-file-utils';\n/**\n * array literal codes\n */\nvar ARR_LITERAL_CODES = new Int16Array(286);\nvar ARR_LITERAL_LENGTHS = new Uint8Array(286);\nvar ARR_DISTANCE_CODES = new Int16Array(30);\nvar ARR_DISTANCE_LENGTHS = new Uint8Array(30);\n/**\n * represent compression stream writer\n * ```typescript\n * let compressedWriter = new CompressedStreamWriter();\n * let text: string = 'Hello world!!!';\n * compressedWriter.write(text, 0, text.length);\n * compressedWriter.close();\n * ```\n */\nvar CompressedStreamWriter = /** @class */ (function () {\n /**\n * Initializes compressor and writes ZLib header if needed.\n * @param {boolean} noWrap - optional if true, ZLib header and checksum will not be written.\n */\n function CompressedStreamWriter(noWrap) {\n this.pendingBuffer = new Uint8Array(1 << 16);\n this.pendingBufLength = 0;\n this.pendingBufCache = 0;\n this.pendingBufBitsInCache = 0;\n this.bufferPosition = 0;\n this.extraBits = 0;\n this.currentHash = 0;\n this.matchStart = 0;\n this.matchLength = 0;\n this.matchPrevAvail = false;\n this.blockStart = 0;\n this.stringStart = 0;\n this.lookAhead = 0;\n this.totalBytesIn = 0;\n this.inputOffset = 0;\n this.inputEnd = 0;\n this.windowSize = 1 << 15;\n this.windowMask = this.windowSize - 1;\n this.hashSize = 1 << 15;\n this.hashMask = this.hashSize - 1;\n this.hashShift = Math.floor((15 + 3 - 1) / 3);\n this.maxDist = this.windowSize - 262;\n this.checkSum = 1;\n this.noWrap = false;\n if (!CompressedStreamWriter.isHuffmanTreeInitiated) {\n CompressedStreamWriter.initHuffmanTree();\n CompressedStreamWriter.isHuffmanTreeInitiated = true;\n }\n this.treeLiteral = new CompressorHuffmanTree(this, 286, 257, 15);\n this.treeDistances = new CompressorHuffmanTree(this, 30, 1, 15);\n this.treeCodeLengths = new CompressorHuffmanTree(this, 19, 4, 7);\n this.arrDistances = new Uint16Array((1 << 14));\n this.arrLiterals = new Uint8Array((1 << 14));\n this.stream = [];\n this.dataWindow = new Uint8Array(2 * this.windowSize);\n this.hashHead = new Int16Array(this.hashSize);\n this.hashPrevious = new Int16Array(this.windowSize);\n this.blockStart = this.stringStart = 1;\n this.noWrap = noWrap;\n if (!noWrap) {\n this.writeZLibHeader();\n }\n }\n Object.defineProperty(CompressedStreamWriter.prototype, \"compressedData\", {\n /**\n * get compressed data\n */\n get: function () {\n return this.stream;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CompressedStreamWriter.prototype, \"getCompressedString\", {\n get: function () {\n var compressedString = '';\n if (this.stream !== undefined) {\n for (var i = 0; i < this.stream.length; i++) {\n compressedString += String.fromCharCode.apply(null, this.stream[i]);\n }\n }\n return compressedString;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Compresses data and writes it to the stream.\n * @param {Uint8Array} data - data to compress\n * @param {number} offset - offset in data\n * @param {number} length - length of the data\n * @returns {void}\n */\n CompressedStreamWriter.prototype.write = function (data, offset, length) {\n if (data === undefined || data === null) {\n throw new Error('ArgumentException: data cannot null or undefined');\n }\n var end = offset + length;\n if (0 > offset || offset > end || end > data.length) {\n throw new Error('ArgumentOutOfRangeException: Offset or length is incorrect');\n }\n if (typeof data === 'string') {\n var encode = new Encoding(false);\n encode.type = 'Utf8';\n data = new Uint8Array(encode.getBytes(data, 0, data.length));\n end = offset + data.length;\n }\n this.inputBuffer = data;\n this.inputOffset = offset;\n this.inputEnd = end;\n if (!this.noWrap) {\n this.checkSum = ChecksumCalculator.checksumUpdate(this.checkSum, this.inputBuffer, this.inputOffset, end);\n }\n while (!(this.inputEnd === this.inputOffset) || !(this.pendingBufLength === 0)) {\n this.pendingBufferFlush();\n this.compressData(false);\n }\n };\n /**\n * write ZLib header to the compressed data\n * @return {void}\n */\n CompressedStreamWriter.prototype.writeZLibHeader = function () {\n /* Initialize header.*/\n var headerDate = (8 + (7 << 4)) << 8;\n /* Save compression level.*/\n headerDate |= ((5 >> 2) & 3) << 6;\n /* Align header.*/\n headerDate += 31 - (headerDate % 31);\n /* Write header to stream.*/\n this.pendingBufferWriteShortBytes(headerDate);\n };\n /**\n * Write Most Significant Bytes in to stream\n * @param {number} s - check sum value\n */\n CompressedStreamWriter.prototype.pendingBufferWriteShortBytes = function (s) {\n this.pendingBuffer[this.pendingBufLength++] = s >> 8;\n this.pendingBuffer[this.pendingBufLength++] = s;\n };\n CompressedStreamWriter.prototype.compressData = function (finish) {\n var success;\n do {\n this.fillWindow();\n var canFlush = (finish && this.inputEnd === this.inputOffset);\n success = this.compressSlow(canFlush, finish);\n } while (this.pendingBufLength === 0 && success);\n return success;\n };\n CompressedStreamWriter.prototype.compressSlow = function (flush, finish) {\n if (this.lookAhead < 262 && !flush) {\n return false;\n }\n while (this.lookAhead >= 262 || flush) {\n if (this.lookAhead === 0) {\n return this.lookAheadCompleted(finish);\n }\n if (this.stringStart >= 2 * this.windowSize - 262) {\n this.slideWindow();\n }\n var prevMatch = this.matchStart;\n var prevLen = this.matchLength;\n if (this.lookAhead >= 3) {\n this.discardMatch();\n }\n if (prevLen >= 3 && this.matchLength <= prevLen) {\n prevLen = this.matchPreviousBest(prevMatch, prevLen);\n }\n else {\n this.matchPreviousAvailable();\n }\n if (this.bufferPosition >= (1 << 14)) {\n return this.huffmanIsFull(finish);\n }\n }\n return true;\n };\n CompressedStreamWriter.prototype.discardMatch = function () {\n var hashHead = this.insertString();\n if (hashHead !== 0 && this.stringStart - hashHead <= this.maxDist && this.findLongestMatch(hashHead)) {\n if (this.matchLength <= 5 && (this.matchLength === 3 && this.stringStart - this.matchStart > 4096)) {\n this.matchLength = 3 - 1;\n }\n }\n };\n CompressedStreamWriter.prototype.matchPreviousAvailable = function () {\n if (this.matchPrevAvail) {\n this.huffmanTallyLit(this.dataWindow[this.stringStart - 1] & 0xff);\n }\n this.matchPrevAvail = true;\n this.stringStart++;\n this.lookAhead--;\n };\n CompressedStreamWriter.prototype.matchPreviousBest = function (prevMatch, prevLen) {\n this.huffmanTallyDist(this.stringStart - 1 - prevMatch, prevLen);\n prevLen -= 2;\n do {\n this.stringStart++;\n this.lookAhead--;\n if (this.lookAhead >= 3) {\n this.insertString();\n }\n } while (--prevLen > 0);\n this.stringStart++;\n this.lookAhead--;\n this.matchPrevAvail = false;\n this.matchLength = 3 - 1;\n return prevLen;\n };\n CompressedStreamWriter.prototype.lookAheadCompleted = function (finish) {\n if (this.matchPrevAvail) {\n this.huffmanTallyLit(this.dataWindow[this.stringStart - 1] & 0xff);\n }\n this.matchPrevAvail = false;\n this.huffmanFlushBlock(this.dataWindow, this.blockStart, this.stringStart - this.blockStart, finish);\n this.blockStart = this.stringStart;\n return false;\n };\n CompressedStreamWriter.prototype.huffmanIsFull = function (finish) {\n var len = this.stringStart - this.blockStart;\n if (this.matchPrevAvail) {\n len--;\n }\n var lastBlock = (finish && this.lookAhead === 0 && !this.matchPrevAvail);\n this.huffmanFlushBlock(this.dataWindow, this.blockStart, len, lastBlock);\n this.blockStart += len;\n return !lastBlock;\n };\n CompressedStreamWriter.prototype.fillWindow = function () {\n if (this.stringStart >= this.windowSize + this.maxDist) {\n this.slideWindow();\n }\n while (this.lookAhead < 262 && this.inputOffset < this.inputEnd) {\n var more = 2 * this.windowSize - this.lookAhead - this.stringStart;\n if (more > this.inputEnd - this.inputOffset) {\n more = this.inputEnd - this.inputOffset;\n }\n this.dataWindow.set(this.inputBuffer.subarray(this.inputOffset, this.inputOffset + more), this.stringStart + this.lookAhead);\n this.inputOffset += more;\n this.totalBytesIn += more;\n this.lookAhead += more;\n }\n if (this.lookAhead >= 3) {\n this.updateHash();\n }\n };\n CompressedStreamWriter.prototype.slideWindow = function () {\n this.dataWindow.set(this.dataWindow.subarray(this.windowSize, this.windowSize + this.windowSize), 0);\n this.matchStart -= this.windowSize;\n this.stringStart -= this.windowSize;\n this.blockStart -= this.windowSize;\n for (var i = 0; i < this.hashSize; ++i) {\n var m = this.hashHead[i] & 0xffff;\n this.hashHead[i] = (((m >= this.windowSize) ? (m - this.windowSize) : 0));\n }\n for (var i = 0; i < this.windowSize; i++) {\n var m = this.hashPrevious[i] & 0xffff;\n this.hashPrevious[i] = ((m >= this.windowSize) ? (m - this.windowSize) : 0);\n }\n };\n CompressedStreamWriter.prototype.insertString = function () {\n var match;\n var hash = ((this.currentHash << this.hashShift) ^ this.dataWindow[this.stringStart + (3 - 1)]) & this.hashMask;\n this.hashPrevious[this.stringStart & this.windowMask] = match = this.hashHead[hash];\n this.hashHead[hash] = this.stringStart;\n this.currentHash = hash;\n return match & 0xffff;\n };\n CompressedStreamWriter.prototype.findLongestMatch = function (curMatch) {\n var chainLen = 4096;\n var niceLen = 258;\n var scan = this.stringStart;\n var match;\n var bestEnd = this.stringStart + this.matchLength;\n var bestLength = Math.max(this.matchLength, 3 - 1);\n var limit = Math.max(this.stringStart - this.maxDist, 0);\n var stringEnd = this.stringStart + 258 - 1;\n var scanEnd1 = this.dataWindow[bestEnd - 1];\n var scanEnd = this.dataWindow[bestEnd];\n var data = this.dataWindow;\n if (bestLength >= 32) {\n chainLen >>= 2;\n }\n if (niceLen > this.lookAhead) {\n niceLen = this.lookAhead;\n }\n do {\n if (data[curMatch + bestLength] !== scanEnd ||\n data[curMatch + bestLength - 1] !== scanEnd1 ||\n data[curMatch] !== data[scan] ||\n data[curMatch + 1] !== data[scan + 1]) {\n continue;\n }\n match = curMatch + 2;\n scan += 2;\n /* tslint:disable */\n while (data[++scan] === data[++match] && data[++scan] === data[++match] &&\n data[++scan] === data[++match] && data[++scan] === data[++match] &&\n data[++scan] === data[++match] && data[++scan] === data[++match] &&\n data[++scan] === data[++match] && data[++scan] === data[++match] && scan < stringEnd) {\n /* tslint:disable */\n }\n if (scan > bestEnd) {\n this.matchStart = curMatch;\n bestEnd = scan;\n bestLength = scan - this.stringStart;\n if (bestLength >= niceLen) {\n break;\n }\n scanEnd1 = data[bestEnd - 1];\n scanEnd = data[bestEnd];\n }\n scan = this.stringStart;\n } while ((curMatch = (this.hashPrevious[curMatch & this.windowMask] & 0xffff)) > limit && --chainLen !== 0);\n this.matchLength = Math.min(bestLength, this.lookAhead);\n return this.matchLength >= 3;\n };\n CompressedStreamWriter.prototype.updateHash = function () {\n this.currentHash = (this.dataWindow[this.stringStart] << this.hashShift) ^ this.dataWindow[this.stringStart + 1];\n };\n CompressedStreamWriter.prototype.huffmanTallyLit = function (literal) {\n this.arrDistances[this.bufferPosition] = 0;\n this.arrLiterals[this.bufferPosition++] = literal;\n this.treeLiteral.codeFrequencies[literal]++;\n return this.bufferPosition >= (1 << 14);\n };\n CompressedStreamWriter.prototype.huffmanTallyDist = function (dist, len) {\n this.arrDistances[this.bufferPosition] = dist;\n this.arrLiterals[this.bufferPosition++] = (len - 3);\n var lc = this.huffmanLengthCode(len - 3);\n this.treeLiteral.codeFrequencies[lc]++;\n if (lc >= 265 && lc < 285) {\n this.extraBits += Math.floor((lc - 261) / 4);\n }\n var dc = this.huffmanDistanceCode(dist - 1);\n this.treeDistances.codeFrequencies[dc]++;\n if (dc >= 4) {\n this.extraBits += Math.floor((dc / 2 - 1));\n }\n return this.bufferPosition >= (1 << 14);\n };\n CompressedStreamWriter.prototype.huffmanFlushBlock = function (stored, storedOffset, storedLength, lastBlock) {\n this.treeLiteral.codeFrequencies[256]++;\n this.treeLiteral.buildTree();\n this.treeDistances.buildTree();\n this.treeLiteral.calculateBLFreq(this.treeCodeLengths);\n this.treeDistances.calculateBLFreq(this.treeCodeLengths);\n this.treeCodeLengths.buildTree();\n var blTreeCodes = 4;\n for (var i = 18; i > blTreeCodes; i--) {\n if (this.treeCodeLengths.codeLengths[CompressorHuffmanTree.huffCodeLengthOrders[i]] > 0) {\n blTreeCodes = i + 1;\n }\n }\n var opt_len = 14 + blTreeCodes * 3 + this.treeCodeLengths.getEncodedLength() +\n this.treeLiteral.getEncodedLength() + this.treeDistances.getEncodedLength() + this.extraBits;\n var static_len = this.extraBits;\n for (var i = 0; i < 286; i++) {\n static_len += this.treeLiteral.codeFrequencies[i] * ARR_LITERAL_LENGTHS[i];\n }\n for (var i = 0; i < 30; i++) {\n static_len += this.treeDistances.codeFrequencies[i] * ARR_DISTANCE_LENGTHS[i];\n }\n if (opt_len >= static_len) {\n // Force static trees.\n opt_len = static_len;\n }\n if (storedOffset >= 0 && storedLength + 4 < opt_len >> 3) {\n this.huffmanFlushStoredBlock(stored, storedOffset, storedLength, lastBlock);\n }\n else if (opt_len == static_len) {\n // Encode with static tree.\n this.pendingBufferWriteBits((1 << 1) + (lastBlock ? 1 : 0), 3);\n this.treeLiteral.setStaticCodes(ARR_LITERAL_CODES, ARR_LITERAL_LENGTHS);\n this.treeDistances.setStaticCodes(ARR_DISTANCE_CODES, ARR_DISTANCE_LENGTHS);\n this.huffmanCompressBlock();\n this.huffmanReset();\n }\n else {\n this.pendingBufferWriteBits((2 << 1) + (lastBlock ? 1 : 0), 3);\n this.huffmanSendAllTrees(blTreeCodes);\n this.huffmanCompressBlock();\n this.huffmanReset();\n }\n };\n CompressedStreamWriter.prototype.huffmanFlushStoredBlock = function (stored, storedOffset, storedLength, lastBlock) {\n this.pendingBufferWriteBits((0 << 1) + (lastBlock ? 1 : 0), 3);\n this.pendingBufferAlignToByte();\n this.pendingBufferWriteShort(storedLength);\n this.pendingBufferWriteShort(~storedLength);\n this.pendingBufferWriteByteBlock(stored, storedOffset, storedLength);\n this.huffmanReset();\n };\n CompressedStreamWriter.prototype.huffmanLengthCode = function (len) {\n if (len === 255) {\n return 285;\n }\n var code = 257;\n while (len >= 8) {\n code += 4;\n len >>= 1;\n }\n return code + len;\n };\n CompressedStreamWriter.prototype.huffmanDistanceCode = function (distance) {\n var code = 0;\n while (distance >= 4) {\n code += 2;\n distance >>= 1;\n }\n return code + distance;\n };\n CompressedStreamWriter.prototype.huffmanSendAllTrees = function (blTreeCodes) {\n this.treeCodeLengths.buildCodes();\n this.treeLiteral.buildCodes();\n this.treeDistances.buildCodes();\n this.pendingBufferWriteBits(this.treeLiteral.treeLength - 257, 5);\n this.pendingBufferWriteBits(this.treeDistances.treeLength - 1, 5);\n this.pendingBufferWriteBits(blTreeCodes - 4, 4);\n for (var rank = 0; rank < blTreeCodes; rank++) {\n this.pendingBufferWriteBits(this.treeCodeLengths.codeLengths[CompressorHuffmanTree.huffCodeLengthOrders[rank]], 3);\n }\n this.treeLiteral.writeTree(this.treeCodeLengths);\n this.treeDistances.writeTree(this.treeCodeLengths);\n };\n CompressedStreamWriter.prototype.huffmanReset = function () {\n this.bufferPosition = 0;\n this.extraBits = 0;\n this.treeLiteral.reset();\n this.treeDistances.reset();\n this.treeCodeLengths.reset();\n };\n CompressedStreamWriter.prototype.huffmanCompressBlock = function () {\n for (var i = 0; i < this.bufferPosition; i++) {\n var literalLen = this.arrLiterals[i] & 255;\n var dist = this.arrDistances[i];\n if (dist-- !== 0) {\n var lc = this.huffmanLengthCode(literalLen);\n this.treeLiteral.writeCodeToStream(lc);\n var bits = Math.floor((lc - 261) / 4);\n if (bits > 0 && bits <= 5) {\n this.pendingBufferWriteBits(literalLen & ((1 << bits) - 1), bits);\n }\n var dc = this.huffmanDistanceCode(dist);\n this.treeDistances.writeCodeToStream(dc);\n bits = Math.floor(dc / 2 - 1);\n if (bits > 0) {\n this.pendingBufferWriteBits(dist & ((1 << bits) - 1), bits);\n }\n }\n else {\n this.treeLiteral.writeCodeToStream(literalLen);\n }\n }\n this.treeLiteral.writeCodeToStream(256);\n };\n /**\n * write bits in to internal buffer\n * @param {number} b - source of bits\n * @param {number} count - count of bits to write\n */\n CompressedStreamWriter.prototype.pendingBufferWriteBits = function (b, count) {\n var uint = new Uint32Array(1);\n uint[0] = this.pendingBufCache | (b << this.pendingBufBitsInCache);\n this.pendingBufCache = uint[0];\n this.pendingBufBitsInCache += count;\n this.pendingBufferFlushBits();\n };\n CompressedStreamWriter.prototype.pendingBufferFlush = function (isClose) {\n this.pendingBufferFlushBits();\n if (this.pendingBufLength > 0) {\n var array = new Uint8Array(this.pendingBufLength);\n array.set(this.pendingBuffer.subarray(0, this.pendingBufLength), 0);\n this.stream.push(array);\n }\n this.pendingBufLength = 0;\n };\n CompressedStreamWriter.prototype.pendingBufferFlushBits = function () {\n var result = 0;\n while (this.pendingBufBitsInCache >= 8 && this.pendingBufLength < (1 << 16)) {\n this.pendingBuffer[this.pendingBufLength++] = this.pendingBufCache;\n this.pendingBufCache >>= 8;\n this.pendingBufBitsInCache -= 8;\n result++;\n }\n return result;\n };\n CompressedStreamWriter.prototype.pendingBufferWriteByteBlock = function (data, offset, length) {\n var array = data.subarray(offset, offset + length);\n this.pendingBuffer.set(array, this.pendingBufLength);\n this.pendingBufLength += length;\n };\n CompressedStreamWriter.prototype.pendingBufferWriteShort = function (s) {\n this.pendingBuffer[this.pendingBufLength++] = s;\n this.pendingBuffer[this.pendingBufLength++] = (s >> 8);\n };\n CompressedStreamWriter.prototype.pendingBufferAlignToByte = function () {\n if (this.pendingBufBitsInCache > 0) {\n this.pendingBuffer[this.pendingBufLength++] = this.pendingBufCache;\n }\n this.pendingBufCache = 0;\n this.pendingBufBitsInCache = 0;\n };\n /**\n * Huffman Tree literal calculation\n * @private\n */\n CompressedStreamWriter.initHuffmanTree = function () {\n var i = 0;\n while (i < 144) {\n ARR_LITERAL_CODES[i] = CompressorHuffmanTree.bitReverse((0x030 + i) << 8);\n ARR_LITERAL_LENGTHS[i++] = 8;\n }\n while (i < 256) {\n ARR_LITERAL_CODES[i] = CompressorHuffmanTree.bitReverse((0x190 - 144 + i) << 7);\n ARR_LITERAL_LENGTHS[i++] = 9;\n }\n while (i < 280) {\n ARR_LITERAL_CODES[i] = CompressorHuffmanTree.bitReverse((0x000 - 256 + i) << 9);\n ARR_LITERAL_LENGTHS[i++] = 7;\n }\n while (i < 286) {\n ARR_LITERAL_CODES[i] = CompressorHuffmanTree.bitReverse((0x0c0 - 280 + i) << 8);\n ARR_LITERAL_LENGTHS[i++] = 8;\n }\n for (i = 0; i < 30; i++) {\n ARR_DISTANCE_CODES[i] = CompressorHuffmanTree.bitReverse(i << 11);\n ARR_DISTANCE_LENGTHS[i] = 5;\n }\n };\n /**\n * close the stream and write all pending buffer in to stream\n * @returns {void}\n */\n CompressedStreamWriter.prototype.close = function () {\n do {\n this.pendingBufferFlush(true);\n if (!this.compressData(true)) {\n this.pendingBufferFlush(true);\n this.pendingBufferAlignToByte();\n if (!this.noWrap) {\n this.pendingBufferWriteShortBytes(this.checkSum >> 16);\n this.pendingBufferWriteShortBytes(this.checkSum & 0xffff);\n }\n this.pendingBufferFlush(true);\n }\n } while (!(this.inputEnd === this.inputOffset) ||\n !(this.pendingBufLength === 0));\n };\n /**\n * release allocated un-managed resource\n * @returns {void}\n */\n CompressedStreamWriter.prototype.destroy = function () {\n this.stream = [];\n this.stream = undefined;\n this.pendingBuffer = undefined;\n this.treeLiteral = undefined;\n this.treeDistances = undefined;\n this.treeCodeLengths = undefined;\n this.arrLiterals = undefined;\n this.arrDistances = undefined;\n this.hashHead = undefined;\n this.hashPrevious = undefined;\n this.dataWindow = undefined;\n this.inputBuffer = undefined;\n this.pendingBufLength = undefined;\n this.pendingBufCache = undefined;\n this.pendingBufBitsInCache = undefined;\n this.bufferPosition = undefined;\n this.extraBits = undefined;\n this.currentHash = undefined;\n this.matchStart = undefined;\n this.matchLength = undefined;\n this.matchPrevAvail = undefined;\n this.blockStart = undefined;\n this.stringStart = undefined;\n this.lookAhead = undefined;\n this.totalBytesIn = undefined;\n this.inputOffset = undefined;\n this.inputEnd = undefined;\n this.windowSize = undefined;\n this.windowMask = undefined;\n this.hashSize = undefined;\n this.hashMask = undefined;\n this.hashShift = undefined;\n this.maxDist = undefined;\n this.checkSum = undefined;\n this.noWrap = undefined;\n };\n CompressedStreamWriter.isHuffmanTreeInitiated = false;\n return CompressedStreamWriter;\n}());\nexport { CompressedStreamWriter };\n/**\n * represent the Huffman Tree\n */\nvar CompressorHuffmanTree = /** @class */ (function () {\n /**\n * Create new Huffman Tree\n * @param {CompressedStreamWriter} writer instance\n * @param {number} elementCount - element count\n * @param {number} minCodes - minimum count\n * @param {number} maxLength - maximum count\n */\n function CompressorHuffmanTree(writer, elementCount, minCodes, maxLength) {\n this.writer = writer;\n this.codeMinCount = minCodes;\n this.maxLength = maxLength;\n this.codeFrequency = new Uint16Array(elementCount);\n this.lengthCount = new Int32Array(maxLength);\n }\n Object.defineProperty(CompressorHuffmanTree.prototype, \"treeLength\", {\n get: function () {\n return this.codeCount;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CompressorHuffmanTree.prototype, \"codeLengths\", {\n get: function () {\n return this.codeLength;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CompressorHuffmanTree.prototype, \"codeFrequencies\", {\n get: function () {\n return this.codeFrequency;\n },\n enumerable: true,\n configurable: true\n });\n CompressorHuffmanTree.prototype.setStaticCodes = function (codes, lengths) {\n var temp = new Int16Array(codes.length);\n temp.set(codes, 0);\n this.codes = temp;\n var lengthTemp = new Uint8Array(lengths.length);\n lengthTemp.set(lengths, 0);\n this.codeLength = lengthTemp;\n };\n /**\n * reset all code data in tree\n * @returns {void}\n */\n CompressorHuffmanTree.prototype.reset = function () {\n for (var i = 0; i < this.codeFrequency.length; i++) {\n this.codeFrequency[i] = 0;\n }\n this.codes = undefined;\n this.codeLength = undefined;\n };\n /**\n * write code to the compressor output stream\n * @param {number} code - code to be written\n * @returns {void}\n */\n CompressorHuffmanTree.prototype.writeCodeToStream = function (code) {\n this.writer.pendingBufferWriteBits(this.codes[code] & 0xffff, this.codeLength[code]);\n };\n /**\n * calculate code from their frequencies\n * @returns {void}\n */\n CompressorHuffmanTree.prototype.buildCodes = function () {\n var nextCode = new Int32Array(this.maxLength);\n this.codes = new Int16Array(this.codeCount);\n var code = 0;\n for (var bitsCount = 0; bitsCount < this.maxLength; bitsCount++) {\n nextCode[bitsCount] = code;\n code += this.lengthCount[bitsCount] << (15 - bitsCount);\n }\n for (var i = 0; i < this.codeCount; i++) {\n var bits = this.codeLength[i];\n if (bits > 0) {\n this.codes[i] = CompressorHuffmanTree.bitReverse(nextCode[bits - 1]);\n nextCode[bits - 1] += 1 << (16 - bits);\n }\n }\n };\n CompressorHuffmanTree.bitReverse = function (value) {\n return (CompressorHuffmanTree.reverseBits[value & 15] << 12\n | CompressorHuffmanTree.reverseBits[(value >> 4) & 15] << 8\n | CompressorHuffmanTree.reverseBits[(value >> 8) & 15] << 4\n | CompressorHuffmanTree.reverseBits[value >> 12]);\n };\n /**\n * calculate length of compressed data\n * @returns {number}\n */\n CompressorHuffmanTree.prototype.getEncodedLength = function () {\n var len = 0;\n for (var i = 0; i < this.codeFrequency.length; i++) {\n len += this.codeFrequency[i] * this.codeLength[i];\n }\n return len;\n };\n /**\n * calculate code frequencies\n * @param {CompressorHuffmanTree} blTree\n * @returns {void}\n */\n CompressorHuffmanTree.prototype.calculateBLFreq = function (blTree) {\n var maxCount;\n var minCount;\n var count;\n var curLen = -1;\n var i = 0;\n while (i < this.codeCount) {\n count = 1;\n var nextLen = this.codeLength[i];\n if (nextLen === 0) {\n maxCount = 138;\n minCount = 3;\n }\n else {\n maxCount = 6;\n minCount = 3;\n if (curLen !== nextLen) {\n blTree.codeFrequency[nextLen]++;\n count = 0;\n }\n }\n curLen = nextLen;\n i++;\n while (i < this.codeCount && curLen === this.codeLength[i]) {\n i++;\n if (++count >= maxCount) {\n break;\n }\n }\n if (count < minCount) {\n blTree.codeFrequency[curLen] += count;\n }\n else if (curLen !== 0) {\n blTree.codeFrequency[16]++;\n }\n else if (count <= 10) {\n blTree.codeFrequency[17]++;\n }\n else {\n blTree.codeFrequency[18]++;\n }\n }\n };\n /**\n * @param {CompressorHuffmanTree} blTree - write tree to output stream\n * @returns {void}\n */\n CompressorHuffmanTree.prototype.writeTree = function (blTree) {\n var maxRepeatCount;\n var minRepeatCount;\n var currentRepeatCount;\n var currentCodeLength = -1;\n var i = 0;\n while (i < this.codeCount) {\n currentRepeatCount = 1;\n var nextLen = this.codeLength[i];\n if (nextLen === 0) {\n maxRepeatCount = 138;\n minRepeatCount = 3;\n }\n else {\n maxRepeatCount = 6;\n minRepeatCount = 3;\n if (currentCodeLength !== nextLen) {\n blTree.writeCodeToStream(nextLen);\n currentRepeatCount = 0;\n }\n }\n currentCodeLength = nextLen;\n i++;\n while (i < this.codeCount && currentCodeLength === this.codeLength[i]) {\n i++;\n if (++currentRepeatCount >= maxRepeatCount) {\n break;\n }\n }\n if (currentRepeatCount < minRepeatCount) {\n while (currentRepeatCount-- > 0) {\n blTree.writeCodeToStream(currentCodeLength);\n }\n }\n else if (currentCodeLength !== 0) {\n blTree.writeCodeToStream(16);\n this.writer.pendingBufferWriteBits(currentRepeatCount - 3, 2);\n }\n else if (currentRepeatCount <= 10) {\n blTree.writeCodeToStream(17);\n this.writer.pendingBufferWriteBits(currentRepeatCount - 3, 3);\n }\n else {\n blTree.writeCodeToStream(18);\n this.writer.pendingBufferWriteBits(currentRepeatCount - 11, 7);\n }\n }\n };\n /**\n * Build huffman tree\n * @returns {void}\n */\n CompressorHuffmanTree.prototype.buildTree = function () {\n var codesCount = this.codeFrequency.length;\n var arrTree = new Int32Array(codesCount);\n var treeLength = 0;\n var maxCount = 0;\n for (var n = 0; n < codesCount; n++) {\n var freq = this.codeFrequency[n];\n if (freq !== 0) {\n var pos = treeLength++;\n var pPos = 0;\n while (pos > 0 && this.codeFrequency[arrTree[pPos = Math.floor((pos - 1) / 2)]] > freq) {\n arrTree[pos] = arrTree[pPos];\n pos = pPos;\n }\n arrTree[pos] = n;\n maxCount = n;\n }\n }\n while (treeLength < 2) {\n arrTree[treeLength++] =\n (maxCount < 2) ? ++maxCount : 0;\n }\n this.codeCount = Math.max(maxCount + 1, this.codeMinCount);\n var leafsCount = treeLength;\n var nodesCount = leafsCount;\n var child = new Int32Array(4 * treeLength - 2);\n var values = new Int32Array(2 * treeLength - 1);\n for (var i = 0; i < treeLength; i++) {\n var node = arrTree[i];\n var iIndex = 2 * i;\n child[iIndex] = node;\n child[iIndex + 1] = -1;\n values[i] = (this.codeFrequency[node] << 8);\n arrTree[i] = i;\n }\n this.constructHuffmanTree(arrTree, treeLength, values, nodesCount, child);\n this.buildLength(child);\n };\n CompressorHuffmanTree.prototype.constructHuffmanTree = function (arrTree, treeLength, values, nodesCount, child) {\n do {\n var first = arrTree[0];\n var last = arrTree[--treeLength];\n var lastVal = values[last];\n var pPos = 0;\n var path = 1;\n while (path < treeLength) {\n if (path + 1 < treeLength && values[arrTree[path]] > values[arrTree[path + 1]]) {\n path++;\n }\n arrTree[pPos] = arrTree[path];\n pPos = path;\n path = pPos * 2 + 1;\n }\n while ((path = pPos) > 0 && values[arrTree[pPos = Math.floor((path - 1) / 2)]] > lastVal) {\n arrTree[path] = arrTree[pPos];\n }\n arrTree[path] = last;\n var second = arrTree[0];\n last = nodesCount++;\n child[2 * last] = first;\n child[2 * last + 1] = second;\n var minDepth = Math.min(values[first] & 0xff, values[second] & 0xff);\n values[last] = lastVal = values[first] + values[second] - minDepth + 1;\n pPos = 0;\n path = 1;\n /* tslint:disable */\n while (path < treeLength) {\n if (path + 1 < treeLength && values[arrTree[path]] > values[arrTree[path + 1]]) {\n path++;\n }\n arrTree[pPos] = arrTree[path];\n pPos = path;\n path = pPos * 2 + 1;\n } /* tslint:disable */\n while ((path = pPos) > 0 && values[arrTree[pPos = Math.floor((path - 1) / 2)]] > lastVal) {\n arrTree[path] = arrTree[pPos];\n }\n arrTree[path] = last;\n } while (treeLength > 1);\n };\n CompressorHuffmanTree.prototype.buildLength = function (child) {\n this.codeLength = new Uint8Array(this.codeFrequency.length);\n var numNodes = Math.floor(child.length / 2);\n var numLeafs = Math.floor((numNodes + 1) / 2);\n var overflow = 0;\n for (var i = 0; i < this.maxLength; i++) {\n this.lengthCount[i] = 0;\n }\n overflow = this.calculateOptimalCodeLength(child, overflow, numNodes);\n if (overflow === 0) {\n return;\n }\n var iIncreasableLength = this.maxLength - 1;\n do {\n while (this.lengthCount[--iIncreasableLength] === 0) {\n /* tslint:disable */\n }\n do {\n this.lengthCount[iIncreasableLength]--;\n this.lengthCount[++iIncreasableLength]++;\n overflow -= (1 << (this.maxLength - 1 - iIncreasableLength));\n } while (overflow > 0 && iIncreasableLength < this.maxLength - 1);\n } while (overflow > 0);\n this.recreateTree(child, overflow, numLeafs);\n };\n CompressorHuffmanTree.prototype.recreateTree = function (child, overflow, numLeafs) {\n this.lengthCount[this.maxLength - 1] += overflow;\n this.lengthCount[this.maxLength - 2] -= overflow;\n var nodePtr = 2 * numLeafs;\n for (var bits = this.maxLength; bits !== 0; bits--) {\n var n = this.lengthCount[bits - 1];\n while (n > 0) {\n var childPtr = 2 * child[nodePtr++];\n if (child[childPtr + 1] === -1) {\n this.codeLength[child[childPtr]] = bits;\n n--;\n }\n }\n }\n };\n CompressorHuffmanTree.prototype.calculateOptimalCodeLength = function (child, overflow, numNodes) {\n var lengths = new Int32Array(numNodes);\n lengths[numNodes - 1] = 0;\n for (var i = numNodes - 1; i >= 0; i--) {\n var childIndex = 2 * i + 1;\n if (child[childIndex] !== -1) {\n var bitLength = lengths[i] + 1;\n if (bitLength > this.maxLength) {\n bitLength = this.maxLength;\n overflow++;\n }\n lengths[child[childIndex - 1]] = lengths[child[childIndex]] = bitLength;\n }\n else {\n var bitLength = lengths[i];\n this.lengthCount[bitLength - 1]++;\n this.codeLength[child[childIndex - 1]] = lengths[i];\n }\n }\n return overflow;\n };\n CompressorHuffmanTree.reverseBits = [0, 8, 4, 12, 2, 10, 6, 14, 1, 9, 5, 13, 3, 11, 7, 15];\n CompressorHuffmanTree.huffCodeLengthOrders = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15];\n return CompressorHuffmanTree;\n}());\nexport { CompressorHuffmanTree };\n/**\n * Checksum calculator, based on Adler32 algorithm.\n */\nvar ChecksumCalculator = /** @class */ (function () {\n function ChecksumCalculator() {\n }\n /**\n * Updates checksum by calculating checksum of the\n * given buffer and adding it to current value.\n * @param {number} checksum - current checksum.\n * @param {Uint8Array} buffer - data byte array.\n * @param {number} offset - offset in the buffer.\n * @param {number} length - length of data to be used from the stream.\n * @returns {number}\n */\n ChecksumCalculator.checksumUpdate = function (checksum, buffer, offset, length) {\n var uint = new Uint32Array(1);\n uint[0] = checksum;\n var checksum_uint = uint[0];\n var s1 = uint[0] = checksum_uint & 65535;\n var s2 = uint[0] = checksum_uint >> ChecksumCalculator.checkSumBitOffset;\n while (length > 0) {\n var steps = Math.min(length, ChecksumCalculator.checksumIterationCount);\n length -= steps;\n while (--steps >= 0) {\n s1 = s1 + (uint[0] = (buffer[offset++] & 255));\n s2 = s2 + s1;\n }\n s1 %= ChecksumCalculator.checksumBase;\n s2 %= ChecksumCalculator.checksumBase;\n }\n checksum_uint = (s2 << ChecksumCalculator.checkSumBitOffset) | s1;\n return checksum_uint;\n };\n ChecksumCalculator.checkSumBitOffset = 16;\n ChecksumCalculator.checksumBase = 65521;\n ChecksumCalculator.checksumIterationCount = 3800;\n return ChecksumCalculator;\n}());\nexport { ChecksumCalculator };\n/* eslint-enable */ \n","/**\n * Save class provide method to save file\n * ```typescript\n * let blob : Blob = new Blob([''], { type: 'text/plain' });\n * Save.save('fileName.txt',blob);\n */\nvar Save = /** @class */ (function () {\n /**\n * Initialize new instance of {save}\n */\n function Save() {\n // tslint:disable\n }\n /**\n * Saves the file with specified name and sends the file to client browser\n * @param {string} fileName- file name to save.\n * @param {Blob} buffer- the content to write in file\n * @param {boolean} isMicrosoftBrowser- specify whether microsoft browser or not\n * @returns {void}\n */\n Save.save = function (fileName, buffer) {\n if (fileName === null || fileName === undefined || fileName === '') {\n throw new Error('ArgumentException: fileName cannot be undefined, null or empty');\n }\n var extension = fileName.substring(fileName.lastIndexOf('.') + 1, fileName.length);\n var mimeType = this.getMimeType(extension);\n if (mimeType !== '') {\n buffer = new Blob([buffer], { type: mimeType });\n }\n if (this.isMicrosoftBrowser) {\n navigator.msSaveBlob(buffer, fileName);\n }\n else {\n var downloadLink = document.createElementNS('http://www.w3.org/1999/xhtml', 'a');\n this.saveInternal(fileName, extension, buffer, downloadLink, 'download' in downloadLink);\n }\n };\n Save.saveInternal = function (fileName, extension, buffer, downloadLink, hasDownloadAttribute) {\n if (hasDownloadAttribute) {\n downloadLink.download = fileName;\n var dataUrl_1 = window.URL.createObjectURL(buffer);\n downloadLink.href = dataUrl_1;\n var event_1 = document.createEvent('MouseEvent');\n event_1.initEvent('click', true, true);\n downloadLink.dispatchEvent(event_1);\n setTimeout(function () {\n window.URL.revokeObjectURL(dataUrl_1);\n dataUrl_1 = undefined;\n });\n }\n else {\n if (extension !== 'docx' && extension !== 'xlsx') {\n var url = window.URL.createObjectURL(buffer);\n var isPopupBlocked = window.open(url, '_blank');\n if (!isPopupBlocked) {\n window.location.href = url;\n }\n }\n else {\n var reader_1 = new FileReader();\n reader_1.onloadend = function () {\n var isPopupBlocked = window.open(reader_1.result, '_blank');\n if (!isPopupBlocked) {\n window.location.href = reader_1.result;\n }\n };\n reader_1.readAsDataURL(buffer);\n }\n }\n };\n /**\n *\n * @param {string} extension - get mime type of the specified extension\n * @private\n */\n Save.getMimeType = function (extension) {\n var mimeType = '';\n switch (extension) {\n case 'html':\n mimeType = 'text/html';\n break;\n case 'pdf':\n mimeType = 'application/pdf';\n break;\n case 'docx':\n mimeType = 'application/vnd.openxmlformats-officedocument.wordprocessingml.document';\n break;\n case 'xlsx':\n mimeType = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';\n break;\n case 'txt':\n mimeType = 'text/plain';\n break;\n }\n return mimeType;\n };\n return Save;\n}());\nexport { Save };\n","/* eslint-disable */\nimport { CompressedStreamWriter, Stream, CompressedStreamReader } from './index';\nimport { Save } from '@syncfusion/ej2-file-utils';\nimport { Utils } from './utils';\nvar CRC32TABLE = [];\n/// \n/// Size of the int value in bytes.\n/// \nvar INT_SIZE = 4;\n/// \n/// Size of the short value in bytes.\n/// \nvar SHORT_SIZE = 2;\n/// \n/// End of central directory signature.\n/// \nvar CentralDirectoryEndSignature = 0x06054b50;\n/// \n/// Offset to the size field in the End of central directory record.\n/// \nvar CentralDirSizeOffset = 12;\n/// \n/// Central header signature.\n/// \nvar CentralHeaderSignature = 0x02014b50;\n/// \n/// Buffer size.\n/// \nvar BufferSize = 4096;\n/**\n * class provide compression library\n * ```typescript\n * let archive = new ZipArchive();\n * archive.compressionLevel = 'Normal';\n * let archiveItem = new ZipArchiveItem(archive, 'directoryName\\fileName.txt');\n * archive.addItem(archiveItem);\n * archive.save(fileName.zip);\n * ```\n */\nvar ZipArchive = /** @class */ (function () {\n /**\n * constructor for creating ZipArchive instance\n */\n function ZipArchive() {\n if (CRC32TABLE.length === 0) {\n ZipArchive.initCrc32Table();\n }\n this.files = [];\n this.level = 'Normal';\n Save.isMicrosoftBrowser = !(!navigator.msSaveBlob);\n }\n Object.defineProperty(ZipArchive.prototype, \"items\", {\n get: function () {\n return this.files;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ZipArchive.prototype, \"compressionLevel\", {\n /**\n * gets compression level\n */\n get: function () {\n return this.level;\n },\n /**\n * sets compression level\n */\n set: function (level) {\n this.level = level;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ZipArchive.prototype, \"length\", {\n /**\n * gets items count\n */\n get: function () {\n if (this.files === undefined) {\n return 0;\n }\n return this.files.length;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * add new item to archive\n * @param {ZipArchiveItem} item - item to be added\n * @returns {void}\n */\n ZipArchive.prototype.addItem = function (item) {\n if (item === null || item === undefined) {\n throw new Error('ArgumentException: item cannot be null or undefined');\n }\n for (var i = 0; i < this.files.length; i++) {\n var file = this.files[i];\n if (file instanceof ZipArchiveItem) {\n if (file.name === item.name) {\n throw new Error('item with same name already exist');\n }\n }\n }\n this.files.push(item);\n };\n /**\n * add new directory to archive\n * @param directoryName directoryName to be created\n * @returns {void}\n */\n ZipArchive.prototype.addDirectory = function (directoryName) {\n if (directoryName === null || directoryName === undefined) {\n throw new Error('ArgumentException: string cannot be null or undefined');\n }\n if (directoryName.length === 0) {\n throw new Error('ArgumentException: string cannot be empty');\n }\n if (directoryName.slice(-1) !== '/') {\n directoryName += '/';\n }\n if (this.files.indexOf(directoryName) !== -1) {\n throw new Error('item with same name already exist');\n }\n this.files.push(directoryName);\n };\n /**\n * gets item at specified index\n * @param {number} index - item index\n * @returns {ZipArchiveItem}\n */\n ZipArchive.prototype.getItem = function (index) {\n if (index >= 0 && index < this.files.length) {\n return this.files[index];\n }\n return undefined;\n };\n /**\n * determines whether an element is in the collection\n * @param {string | ZipArchiveItem} item - item to search\n * @returns {boolean}\n */\n ZipArchive.prototype.contains = function (item) {\n return this.files.indexOf(item) !== -1 ? true : false;\n };\n ZipArchive.prototype.open = function (base64String) {\n //return promise = new Promise((resolve: Function, reject: Function) => {\n var zipArchive = this;\n var zipByteArray = Utils.encodedString(base64String);\n if (zipByteArray.length == 0)\n throw new DOMException(\"stream\");\n var stream = new Stream(zipByteArray);\n //let lCentralDirEndPosition = this.findValueFromEnd( arrBuffer, Constants.CentralDirectoryEndSignature, 65557 );\n var lCentralDirEndPosition = ZipArchive.findValueFromEnd(stream, CentralDirectoryEndSignature, 65557);\n if (lCentralDirEndPosition < 0)\n throw new DOMException(\"Can't locate end of central directory record. Possible wrong file format or archive is corrupt.\");\n // Step2. Locate central directory and iterate through all items\n stream.position = lCentralDirEndPosition + CentralDirSizeOffset;\n var iCentralDirSize = ZipArchive.ReadInt32(stream);\n var lCentralDirPosition = lCentralDirEndPosition - iCentralDirSize;\n // verify that this is really central directory\n stream.position = lCentralDirPosition;\n this.readCentralDirectoryDataAndExtractItems(stream);\n //});\n // let zipArchive: ZipArchive = this;\n //let promise: Promise;\n // return promise = new Promise((resolve: Function, reject: Function) => {\n // let reader: FileReader = new FileReader();\n // reader.onload = (e: Event) => {\n // let data: Uint8Array = new Uint8Array((e.target as any).result);\n // let zipReader: ZipReader = new ZipReader(data);\n // zipReader.readEntries().then((entries: ZipEntry[]) => {\n // for (let i: number = 0; i < entries.length; i++) {\n // let entry: ZipEntry = entries[i];\n // let item: ZipArchiveItem = new ZipArchiveItem(zipArchive, entry.fileName);\n // item.data = entry.data;\n // item.compressionMethod = entry.compressionMethod;\n // item.crc = entry.crc;\n // item.lastModified = entry.lastModified;\n // item.lastModifiedDate = entry.lastModifiedDate;\n // item.size = entry.size;\n // item.uncompressedSize = entry.uncompressedSize;\n // zipArchive.addItem(item);\n // }\n // resolve(zipArchive);\n // });\n // };\n // reader.readAsArrayBuffer(fileName);\n // });\n };\n /// \n /// Read central directory record from the stream.\n /// \n /// Stream to read from.\n ZipArchive.prototype.readCentralDirectoryDataAndExtractItems = function (stream) {\n if (stream == null)\n throw new DOMException(\"stream\");\n var itemHelper;\n while (ZipArchive.ReadInt32(stream) == CentralHeaderSignature) {\n itemHelper = new ZipArchiveItemHelper();\n itemHelper.readCentralDirectoryData(stream);\n itemHelper;\n // let item: ZipArchiveItem = new ZipArchiveItem(this);\n // item.ReadCentralDirectoryData(stream);\n // m_arrItems.Add(item);\n }\n itemHelper.readData(stream, itemHelper.checkCrc);\n itemHelper.decompressData();\n this.files.push(new ZipArchiveItem(itemHelper.unCompressedStream.buffer, itemHelper.name));\n };\n /**\n * save archive with specified file name\n * @param {string} fileName save archive with specified file name\n * @returns {Promise}\n */\n ZipArchive.prototype.save = function (fileName) {\n if (fileName === null || fileName === undefined || fileName.length === 0) {\n throw new Error('ArgumentException: fileName cannot be null or undefined');\n }\n if (this.files.length === 0) {\n throw new Error('InvalidOperation');\n }\n var zipArchive = this;\n var promise;\n return promise = new Promise(function (resolve, reject) {\n zipArchive.saveInternal(fileName, false).then(function () {\n resolve(zipArchive);\n });\n });\n };\n /**\n * Save archive as blob\n * @return {Promise}\n */\n ZipArchive.prototype.saveAsBlob = function () {\n var zipArchive = this;\n var promise;\n return promise = new Promise(function (resolve, reject) {\n zipArchive.saveInternal('', true).then(function (blob) {\n resolve(blob);\n });\n });\n };\n ZipArchive.prototype.saveInternal = function (fileName, skipFileSave) {\n var _this = this;\n var zipArchive = this;\n var promise;\n return promise = new Promise(function (resolve, reject) {\n var zipData = [];\n var dirLength = 0;\n for (var i = 0; i < zipArchive.files.length; i++) {\n var compressedObject = _this.getCompressedData(_this.files[i]);\n compressedObject.then(function (data) {\n dirLength = zipArchive.constructZippedObject(zipData, data, dirLength, data.isDirectory);\n if (zipData.length === zipArchive.files.length) {\n var blob = zipArchive.writeZippedContent(fileName, zipData, dirLength, skipFileSave);\n resolve(blob);\n }\n });\n }\n });\n };\n /**\n * release allocated un-managed resource\n * @returns {void}\n */\n ZipArchive.prototype.destroy = function () {\n if (this.files !== undefined && this.files.length > 0) {\n for (var i = 0; i < this.files.length; i++) {\n var file = this.files[i];\n if (file instanceof ZipArchiveItem) {\n file.destroy();\n }\n file = undefined;\n }\n this.files = [];\n }\n this.files = undefined;\n this.level = undefined;\n };\n ZipArchive.prototype.getCompressedData = function (item) {\n var zipArchive = this;\n var promise = new Promise(function (resolve, reject) {\n if (item instanceof ZipArchiveItem) {\n var reader_1 = new FileReader();\n reader_1.onload = function () {\n var input = new Uint8Array(reader_1.result);\n var data = {\n fileName: item.name, crc32Value: 0, compressedData: [],\n compressedSize: undefined, uncompressedDataSize: input.length, compressionType: undefined,\n isDirectory: false\n };\n if (zipArchive.level === 'Normal') {\n zipArchive.compressData(input, data, CRC32TABLE);\n var length_1 = 0;\n for (var i = 0; i < data.compressedData.length; i++) {\n length_1 += data.compressedData[i].length;\n }\n data.compressedSize = length_1;\n data.compressionType = '\\x08\\x00'; //Deflated = 8\n }\n else {\n data.compressedSize = input.length;\n data.crc32Value = zipArchive.calculateCrc32Value(0, input, CRC32TABLE);\n data.compressionType = '\\x00\\x00'; // Stored = 0\n data.compressedData.push(input);\n }\n resolve(data);\n };\n reader_1.readAsArrayBuffer(item.data);\n }\n else {\n var data = {\n fileName: item, crc32Value: 0, compressedData: '', compressedSize: 0, uncompressedDataSize: 0,\n compressionType: '\\x00\\x00', isDirectory: true\n };\n resolve(data);\n }\n });\n return promise;\n };\n ZipArchive.prototype.compressData = function (input, data, crc32Table) {\n var compressor = new CompressedStreamWriter(true);\n var currentIndex = 0;\n var nextIndex = 0;\n do {\n if (currentIndex >= input.length) {\n compressor.close();\n break;\n }\n nextIndex = Math.min(input.length, currentIndex + 16384);\n var subArray = input.subarray(currentIndex, nextIndex);\n data.crc32Value = this.calculateCrc32Value(data.crc32Value, subArray, crc32Table);\n compressor.write(subArray, 0, nextIndex - currentIndex);\n currentIndex = nextIndex;\n } while (currentIndex <= input.length);\n data.compressedData = compressor.compressedData;\n compressor.destroy();\n };\n ZipArchive.prototype.constructZippedObject = function (zipParts, data, dirLength, isDirectory) {\n var extFileAttr = 0;\n var date = new Date();\n if (isDirectory) {\n extFileAttr = extFileAttr | 0x00010; // directory flag\n }\n extFileAttr = extFileAttr | (0 & 0x3F);\n var header = this.writeHeader(data, date);\n var localHeader = 'PK\\x03\\x04' + header + data.fileName;\n var centralDir = this.writeCentralDirectory(data, header, dirLength, extFileAttr);\n zipParts.push({ localHeader: localHeader, centralDir: centralDir, compressedData: data });\n return dirLength + localHeader.length + data.compressedSize;\n };\n ZipArchive.prototype.writeHeader = function (data, date) {\n var zipHeader = '';\n zipHeader += '\\x0A\\x00' + '\\x00\\x00'; // version needed to extract & general purpose bit flag\n zipHeader += data.compressionType; // compression method Deflate=8,Stored=0\n zipHeader += this.getBytes(this.getModifiedTime(date), 2); // last modified Time\n zipHeader += this.getBytes(this.getModifiedDate(date), 2); // last modified date\n zipHeader += this.getBytes(data.crc32Value, 4); // crc-32 value\n zipHeader += this.getBytes(data.compressedSize, 4); // compressed file size\n zipHeader += this.getBytes(data.uncompressedDataSize, 4); // uncompressed file size\n zipHeader += this.getBytes(data.fileName.length, 2); // file name length\n zipHeader += this.getBytes(0, 2); // extra field length\n return zipHeader;\n };\n ZipArchive.prototype.writeZippedContent = function (fileName, zipData, localDirLen, skipFileSave) {\n var cenDirLen = 0;\n var buffer = [];\n for (var i = 0; i < zipData.length; i++) {\n var item = zipData[i];\n cenDirLen += item.centralDir.length;\n buffer.push(this.getArrayBuffer(item.localHeader));\n while (item.compressedData.compressedData.length) {\n buffer.push(item.compressedData.compressedData.shift().buffer);\n }\n }\n for (var i = 0; i < zipData.length; i++) {\n buffer.push(this.getArrayBuffer(zipData[i].centralDir));\n }\n buffer.push(this.getArrayBuffer(this.writeFooter(zipData, cenDirLen, localDirLen)));\n var blob = new Blob(buffer, { type: 'application/zip' });\n if (!skipFileSave) {\n Save.save(fileName, blob);\n }\n return blob;\n };\n ZipArchive.prototype.writeCentralDirectory = function (data, localHeader, offset, externalFileAttribute) {\n var directoryHeader = 'PK\\x01\\x02' +\n this.getBytes(0x0014, 2) + localHeader + // inherit from file header\n this.getBytes(0, 2) + // comment length\n '\\x00\\x00' + '\\x00\\x00' + // internal file attributes \n this.getBytes(externalFileAttribute, 4) + // external file attributes\n this.getBytes(offset, 4) + // local fileHeader relative offset\n data.fileName;\n return directoryHeader;\n };\n ZipArchive.prototype.writeFooter = function (zipData, centralLength, localLength) {\n var dirEnd = 'PK\\x05\\x06' + '\\x00\\x00' + '\\x00\\x00' +\n this.getBytes(zipData.length, 2) + this.getBytes(zipData.length, 2) +\n this.getBytes(centralLength, 4) + this.getBytes(localLength, 4) +\n this.getBytes(0, 2);\n return dirEnd;\n };\n ZipArchive.prototype.getArrayBuffer = function (input) {\n var a = new Uint8Array(input.length);\n for (var j = 0; j < input.length; ++j) {\n a[j] = input.charCodeAt(j) & 0xFF;\n }\n return a.buffer;\n };\n ZipArchive.prototype.getBytes = function (value, offset) {\n var bytes = '';\n for (var i = 0; i < offset; i++) {\n bytes += String.fromCharCode(value & 0xff);\n value = value >>> 8;\n }\n return bytes;\n };\n ZipArchive.prototype.getModifiedTime = function (date) {\n var modTime = date.getHours();\n modTime = modTime << 6;\n modTime = modTime | date.getMinutes();\n modTime = modTime << 5;\n return modTime = modTime | date.getSeconds() / 2;\n };\n ZipArchive.prototype.getModifiedDate = function (date) {\n var modiDate = date.getFullYear() - 1980;\n modiDate = modiDate << 4;\n modiDate = modiDate | (date.getMonth() + 1);\n modiDate = modiDate << 5;\n return modiDate = modiDate | date.getDate();\n };\n ZipArchive.prototype.calculateCrc32Value = function (crc32Value, input, crc32Table) {\n crc32Value ^= -1;\n for (var i = 0; i < input.length; i++) {\n crc32Value = (crc32Value >>> 8) ^ crc32Table[(crc32Value ^ input[i]) & 0xFF];\n }\n return (crc32Value ^ (-1));\n };\n /**\n * construct cyclic redundancy code table\n * @private\n */\n ZipArchive.initCrc32Table = function () {\n var i;\n for (var j = 0; j < 256; j++) {\n i = j;\n for (var k = 0; k < 8; k++) {\n i = ((i & 1) ? (0xEDB88320 ^ (i >>> 1)) : (i >>> 1));\n }\n CRC32TABLE[j] = i;\n }\n };\n ZipArchive.findValueFromEnd = function (stream, value, maxCount) {\n if (stream == null)\n throw new DOMException(\"stream\");\n // if( !stream.CanSeek || !stream.CanRead )\n // throw new ArgumentOutOfRangeException( \"We need to have seekable and readable stream.\" );\n // read last 4 bytes and compare with required value\n var lStreamSize = stream.inputStream.buffer.byteLength;\n if (lStreamSize < 4)\n return -1;\n var arrBuffer = new Uint8Array(4);\n var lLastPos = Math.max(0, lStreamSize - maxCount);\n var lCurrentPosition = lStreamSize - 1 - INT_SIZE;\n stream.position = lCurrentPosition;\n stream.read(arrBuffer, 0, INT_SIZE);\n var uiCurValue = arrBuffer[0];\n var bFound = (uiCurValue == value);\n if (!bFound) {\n while (lCurrentPosition > lLastPos) {\n // remove unnecessary byte and replace it with new value.\n uiCurValue <<= 8;\n lCurrentPosition--;\n stream.position = lCurrentPosition;\n uiCurValue += stream.readByte();\n if (uiCurValue == value) {\n bFound = true;\n break;\n }\n }\n }\n return bFound ? lCurrentPosition : -1;\n };\n /// \n /// Extracts Int32 value from the stream.\n /// \n /// Stream to read data from.\n /// Extracted value.\n ZipArchive.ReadInt32 = function (stream) {\n var buffer = new Uint8Array(INT_SIZE);\n if (stream.read(buffer, 0, INT_SIZE) != INT_SIZE) {\n throw new DOMException(\"Unable to read value at the specified position - end of stream was reached.\");\n }\n return Utils.bitConverterToInt32(buffer, 0);\n };\n /// \n /// Extracts Int16 value from the stream.\n /// \n /// Stream to read data from.\n /// Extracted value.\n ZipArchive.ReadInt16 = function (stream) {\n var buffer = new Uint8Array(SHORT_SIZE);\n if (stream.read(buffer, 0, SHORT_SIZE) != SHORT_SIZE) {\n throw new DOMException(\"Unable to read value at the specified position - end of stream was reached.\");\n }\n return Utils.bitConverterToInt16(buffer, 0);\n };\n /// \n /// Extracts unsigned Int16 value from the stream.\n /// \n /// Stream to read data from.\n /// Extracted value.\n ZipArchive.ReadUInt16 = function (stream) {\n {\n var buffer = new Uint8Array(SHORT_SIZE);\n if (stream.read(buffer, 0, SHORT_SIZE) != SHORT_SIZE) {\n throw new DOMException(\"Unable to read value at the specified position - end of stream was reached.\");\n }\n return Utils.bitConverterToInt16(buffer, 0);\n }\n };\n return ZipArchive;\n}());\nexport { ZipArchive };\nvar ZipArchiveItemHelper = /** @class */ (function () {\n function ZipArchiveItemHelper() {\n /// \n /// Zip header signature.\n /// \n this.headerSignature = 0x04034b50;\n /// \n /// Indicates whether we should check Crc value when reading item's data. Check\n /// is performed when user gets access to decompressed data for the first time.\n /// \n this.checkCrc = true;\n /// \n /// Crc.\n /// \n this.crc32 = 0;\n }\n /// \n /// Read data from the stream based on the central directory.\n /// \n /// Stream to read data from, stream.Position must point at just after correct file header.\n ZipArchiveItemHelper.prototype.readCentralDirectoryData = function (stream) {\n // on the current moment we ignore \"version made by\" and \"version needed to extract\" fields.\n stream.position += 4;\n this.options = ZipArchive.ReadInt16(stream);\n this.compressionMethod = ZipArchive.ReadInt16(stream);\n this.checkCrc = (this.compressionMethod != 99); //COmpression.Defalte != SecurityConstants.AES\n //m_bCompressed = true;\n // on the current moment we ignore \"last mod file time\" and \"last mod file date\" fields.\n var lastModified = ZipArchive.ReadInt32(stream);\n //LastModified = ConvertToDateTime(lastModified);\n this.crc32 = Utils.bitConverterToUInt32(ZipArchive.ReadInt32(stream));\n this.compressedSize = ZipArchive.ReadInt32(stream);\n this.originalSize = ZipArchive.ReadInt32(stream);\n var iFileNameLength = ZipArchive.ReadInt16(stream);\n var iExtraFieldLenth = ZipArchive.ReadInt16(stream);\n var iCommentLength = ZipArchive.ReadInt16(stream);\n // on the current moment we ignore and \"disk number start\" (2 bytes),\n // \"internal file attributes\" (2 bytes).\n stream.position += 4;\n this.externalAttributes = ZipArchive.ReadInt32(stream);\n this.localHeaderOffset = ZipArchive.ReadInt32(stream);\n var arrBuffer = new Uint8Array(iFileNameLength);\n stream.read(arrBuffer, 0, iFileNameLength);\n var m_strItemName = Utils.byteToString(arrBuffer);\n m_strItemName = m_strItemName.replace(\"\\\\\", \"/\");\n this.name = m_strItemName;\n stream.position += iExtraFieldLenth + iCommentLength;\n if (this.options != 0)\n this.options = 0;\n };\n /// \n /// Reads zipped data from the stream.\n /// \n /// Stream to read data from.\n /// Indicates whether we should check crc value after data decompression.\n ZipArchiveItemHelper.prototype.readData = function (stream, checkCrc) {\n if (stream.length == 0)\n throw new DOMException(\"stream\");\n stream.position = this.localHeaderOffset;\n this.checkCrc = checkCrc;\n this.readLocalHeader(stream);\n this.readCompressedData(stream);\n };\n ZipArchiveItemHelper.prototype.decompressData = function () {\n if (this.compressionMethod == 8) {\n if (this.originalSize > 0) {\n this.decompressDataOld();\n }\n }\n };\n ZipArchiveItemHelper.prototype.decompressDataOld = function () {\n var reader = new CompressedStreamReader(this.compressedStream, true);\n var decompressedData;\n if (this.originalSize > 0)\n decompressedData = new Stream(new Uint8Array(this.originalSize));\n var arrBuffer = new Uint8Array(BufferSize);\n var iReadBytes;\n var past = new Uint8Array(0);\n while ((iReadBytes = reader.read(arrBuffer, 0, BufferSize)) > 0) {\n // past = new Uint8Array(decompressedData.length);\n // let currentBlock: Uint8Array = arrBuffer.subarray(0, iReadBytes);\n decompressedData.write(arrBuffer.subarray(0, iReadBytes), 0, iReadBytes);\n }\n this.unCompressedStream = decompressedData.toByteArray();\n // this.originalSize = decompressedData.Length;\n // m_bControlStream = true;\n // m_streamData = decompressedData;\n // decompressedData.SetLength( m_lOriginalSize );\n // decompressedData.Capacity = ( int )m_lOriginalSize;\n if (this.checkCrc) {\n //TODO: fix this\n //CheckCrc(decompressedData.ToArray());\n }\n //m_streamData.Position = 0;\n };\n /// \n /// Extracts local header from the stream.\n /// \n /// Stream to read data from.\n ZipArchiveItemHelper.prototype.readLocalHeader = function (stream) {\n if (stream.length == 0)\n throw new DOMException(\"stream\");\n if (ZipArchive.ReadInt32(stream) != this.headerSignature)\n throw new DOMException(\"Can't find local header signature - wrong file format or file is corrupt.\");\n // TODO: it is good to verify data read from the central directory record,\n // but on the current moment we simply skip it.\n stream.position += 22;\n var iNameLength = ZipArchive.ReadInt16(stream);\n var iExtraLength = ZipArchive.ReadUInt16(stream);\n if (this.compressionMethod == 99) //SecurityConstants.AES\n {\n // stream.Position += iNameLength + 8;\n // m_archive.EncryptionAlgorithm = (EncryptionAlgorithm)stream.ReadByte();\n // m_actualCompression = new byte[2];\n // stream.Read(m_actualCompression, 0, 2);\n }\n else if (iExtraLength > 2) {\n stream.position += iNameLength;\n var headerVal = ZipArchive.ReadInt16(stream);\n if (headerVal == 0x0017) //PKZipEncryptionHeader\n throw new DOMException(\"UnSupported\");\n else\n stream.position += iExtraLength - 2;\n }\n else\n stream.position += iNameLength + iExtraLength;\n };\n /// \n /// Extracts compressed data from the stream.\n /// \n /// Stream to read data from.\n ZipArchiveItemHelper.prototype.readCompressedData = function (stream) {\n var dataStream;\n if (this.compressedSize > 0) {\n var iBytesLeft = this.compressedSize;\n dataStream = new Stream(new Uint8Array(iBytesLeft));\n var arrBuffer = new Uint8Array(BufferSize);\n while (iBytesLeft > 0) {\n var iBytesToRead = Math.min(iBytesLeft, BufferSize);\n if (stream.read(arrBuffer, 0, iBytesToRead) != iBytesToRead)\n throw new DOMException(\"End of file reached - wrong file format or file is corrupt.\");\n dataStream.write(arrBuffer.subarray(0, iBytesToRead), 0, iBytesToRead);\n iBytesLeft -= iBytesToRead;\n }\n // if(m_archive.Password != null)\n // {\n // byte[] dataBuffer = new byte[dataStream.Length];\n // dataBuffer = dataStream.ToArray();\n // dataStream=new MemoryStream( Decrypt(dataBuffer));\n // }\n this.compressedStream = new Uint8Array(dataStream.inputStream);\n // m_bControlStream = true;\n }\n else if (this.compressedSize < 0) //If compression size is negative, then read until the next header signature reached.\n {\n // MemoryStream dataStream = new MemoryStream();\n // int bt = 0;\n // bool proceed=true;\n // while (proceed)\n // {\n // if ((bt = stream.ReadByte()) == Constants.HeaderSignatureStartByteValue)\n // {\n // stream.Position -= 1;\n // int headerSignature = ZipArchive.ReadInt32(stream);\n // if (headerSignature==Constants.CentralHeaderSignature || headerSignature==Constants.CentralHeaderSignature)\n // {\n // proceed = false;\n // }\n // stream.Position -= 3;\n // }\n // if (proceed)\n // dataStream.WriteByte((byte)bt);\n // }\n // m_streamData = dataStream;\n // m_lCompressedSize = m_streamData.Length;\n // m_bControlStream = true;\n }\n else if (this.compressedSize == 0) {\n // m_streamData = new MemoryStream();\n }\n };\n return ZipArchiveItemHelper;\n}());\nexport { ZipArchiveItemHelper };\n/**\n * Class represent unique ZipArchive item\n * ```typescript\n * let archiveItem = new ZipArchiveItem(archive, 'directoryName\\fileName.txt');\n * ```\n */\nvar ZipArchiveItem = /** @class */ (function () {\n /**\n * constructor for creating {ZipArchiveItem} instance\n * @param {Blob|ArrayBuffer} data file data\n * @param {itemName} itemName absolute file path\n */\n function ZipArchiveItem(data, itemName) {\n if (data === null || data === undefined) {\n throw new Error('ArgumentException: data cannot be null or undefined');\n }\n if (itemName === null || itemName === undefined) {\n throw new Error('ArgumentException: string cannot be null or undefined');\n }\n if (itemName.length === 0) {\n throw new Error('string cannot be empty');\n }\n this.data = data;\n this.name = itemName;\n }\n Object.defineProperty(ZipArchiveItem.prototype, \"dataStream\", {\n get: function () {\n return this.decompressedStream;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ZipArchiveItem.prototype, \"name\", {\n /**\n * Get the name of archive item\n * @returns string\n */\n get: function () {\n return this.fileName;\n },\n /**\n * Set the name of archive item\n * @param {string} value\n */\n set: function (value) {\n this.fileName = value;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * release allocated un-managed resource\n * @returns {void}\n */\n ZipArchiveItem.prototype.destroy = function () {\n this.fileName = undefined;\n this.data = undefined;\n };\n return ZipArchiveItem;\n}());\nexport { ZipArchiveItem };\n/* eslint-enable */ \n","import { isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { Internationalization } from '@syncfusion/ej2-base';\n// import { IValueFormatter } from '../base/interface';\n/**\n * ValueFormatter class to globalize the value.\n * @private\n */\nvar ValueFormatter = /** @class */ (function () {\n function ValueFormatter(cultureName) {\n this.intl = new Internationalization();\n // if (!isNullOrUndefined(cultureName)) {\n // this.intl.culture = cultureName;\n // }\n }\n ValueFormatter.prototype.getFormatFunction = function (format, isServerRendered) {\n if (format.type) {\n if (isServerRendered) {\n format.isServerRendered = true;\n }\n return this.intl.getDateFormat(format);\n }\n else {\n return this.intl.getNumberFormat(format);\n }\n };\n // public getParserFunction(format: NumberFormatOptions | DateFormatOptions): Function {\n // if ((format).type) {\n // return this.intl.getDateParser(format);\n // } else {\n // return this.intl.getNumberParser(format);\n // }\n // }\n // public fromView(value: string, format: Function, type?: string): string | number | Date {\n // if (type === 'date' || type === 'datetime' || type === 'number') {\n // return format(value);\n // } else {\n // return value;\n // }\n // }\n ValueFormatter.prototype.toView = function (value, format) {\n var result = value;\n if (!isNullOrUndefined(format) && !isNullOrUndefined(value)) {\n result = format(value);\n }\n return result;\n };\n // public setCulture(cultureName: string): void {\n // if (!isNullOrUndefined(cultureName)) {\n // setCulture(cultureName);\n // }\n // }\n /* tslint:disable:no-any */\n ValueFormatter.prototype.displayText = function (value, format, isServerRendered) {\n return this.toView(value, this.getFormatFunction(format, isServerRendered));\n };\n return ValueFormatter;\n}());\nexport { ValueFormatter };\n","import { ValueFormatter } from './value-formatter';\n/**\n * CsvHelper class\n * @private\n */\nvar CsvHelper = /** @class */ (function () {\n /* tslint:disable:no-any */\n function CsvHelper(json, separator) {\n this.csvStr = '';\n if (separator === null || separator === undefined) {\n this.separator = ',';\n }\n else {\n this.separator = separator;\n }\n this.formatter = new ValueFormatter();\n this.isMicrosoftBrowser = !(!navigator.msSaveBlob);\n if (json.isServerRendered !== null && json.isServerRendered !== undefined) {\n this.isServerRendered = json.isServerRendered;\n }\n if (json.styles !== null && json.styles !== undefined) {\n this.globalStyles = new Map();\n for (var i = 0; i < json.styles.length; i++) {\n if (json.styles[i].name !== undefined && json.styles[i].numberFormat !== undefined) {\n this.globalStyles.set(json.styles[i].name, json.styles[i].numberFormat);\n }\n }\n }\n // Parses Worksheets data to DOM. \n if (json.worksheets !== null && json.worksheets !== undefined) {\n this.parseWorksheet(json.worksheets[0]);\n }\n //this.csvStr = 'a1,a2,a3\\nb1,b2,b3';\n }\n CsvHelper.prototype.parseWorksheet = function (json) {\n //Rows\n if (json.rows !== null && json.rows !== undefined) {\n this.parseRows(json.rows);\n }\n };\n /* tslint:disable:no-any */\n CsvHelper.prototype.parseRows = function (rows) {\n var count = 1;\n for (var _i = 0, rows_1 = rows; _i < rows_1.length; _i++) {\n var row = rows_1[_i];\n //Row index\n if (row.index !== null && row.index !== undefined) {\n while (count < row.index) {\n this.csvStr += '\\r\\n';\n count++;\n }\n this.parseRow(row);\n }\n else {\n throw Error('Row index is missing.');\n }\n }\n };\n /* tslint:disable:no-any */\n CsvHelper.prototype.parseRow = function (row) {\n if (row.cells !== null && row.cells !== undefined) {\n var count = 1;\n for (var _i = 0, _a = row.cells; _i < _a.length; _i++) {\n var cell = _a[_i];\n //cell index\n if (cell.index !== null && cell.index !== undefined) {\n while (count < cell.index) {\n this.csvStr += this.separator;\n count++;\n }\n this.parseCell(cell);\n }\n else {\n throw Error('Cell index is missing.');\n }\n }\n }\n };\n /* tslint:disable:no-any */\n CsvHelper.prototype.parseCell = function (cell) {\n var csv = this.csvStr;\n if (cell.value !== undefined) {\n if (cell.value instanceof Date) {\n if (cell.style !== undefined && cell.style.numberFormat !== undefined) {\n /* tslint:disable-next-line:max-line-length */\n try {\n csv += this.parseCellValue(this.formatter.displayText(cell.value, { type: 'dateTime', skeleton: cell.style.numberFormat }, this.isServerRendered));\n }\n catch (error) {\n /* tslint:disable-next-line:max-line-length */\n csv += this.parseCellValue(this.formatter.displayText(cell.value, { type: 'dateTime', format: cell.style.numberFormat }, this.isServerRendered));\n }\n }\n else if (cell.style !== undefined && cell.style.name !== undefined && this.globalStyles.has(cell.style.name)) {\n /* tslint:disable-next-line:max-line-length */\n try {\n csv += this.parseCellValue(this.formatter.displayText(cell.value, { type: 'dateTime', skeleton: this.globalStyles.get(cell.style.name) }, this.isServerRendered));\n }\n catch (error) {\n /* tslint:disable-next-line:max-line-length */\n csv += this.parseCellValue(this.formatter.displayText(cell.value, { type: 'dateTime', format: this.globalStyles.get(cell.style.name) }, this.isServerRendered));\n }\n }\n else {\n csv += cell.value;\n }\n }\n else if (typeof (cell.value) === 'boolean') {\n csv += cell.value ? 'TRUE' : 'FALSE';\n }\n else if (typeof (cell.value) === 'number') {\n if (cell.style !== undefined && cell.style.numberFormat !== undefined) {\n /* tslint:disable-next-line:max-line-length */\n csv += this.parseCellValue(this.formatter.displayText(cell.value, { format: cell.style.numberFormat }, this.isServerRendered));\n }\n else if (cell.style !== undefined && cell.style.name !== undefined && this.globalStyles.has(cell.style.name)) {\n /* tslint:disable-next-line:max-line-length */\n csv += this.parseCellValue(this.formatter.displayText(cell.value, { format: this.globalStyles.get(cell.style.name) }, this.isServerRendered));\n }\n else {\n csv += cell.value;\n }\n }\n else {\n csv += this.parseCellValue(cell.value);\n }\n }\n this.csvStr = csv;\n };\n CsvHelper.prototype.parseCellValue = function (value) {\n var val = '';\n var length = value.length;\n for (var start = 0; start < length; start++) {\n if (value[start] === '\\\"') {\n val += value[start].replace('\\\"', '\\\"\\\"');\n }\n else {\n val += value[start];\n }\n }\n value = val;\n if (value.indexOf(this.separator) !== -1 || value.indexOf('\\n') !== -1 || value.indexOf('\\\"') !== -1) {\n return value = '\\\"' + value + '\\\"';\n }\n else {\n return value;\n }\n };\n /**\n * Saves the file with specified name and sends the file to client browser\n * @param {string} fileName- file name to save.\n * @param {Blob} buffer- the content to write in file\n */\n CsvHelper.prototype.save = function (fileName) {\n this.buffer = new Blob(['\\ufeff' + this.csvStr], { type: 'text/csv;charset=UTF-8' });\n if (this.isMicrosoftBrowser) {\n navigator.msSaveBlob(this.buffer, fileName);\n }\n else {\n var dataUrl_1 = window.URL.createObjectURL(this.buffer);\n var dwlLink = document.createElementNS('http://www.w3.org/1999/xhtml', 'a');\n dwlLink.download = fileName;\n dwlLink.href = dataUrl_1;\n var event_1 = document.createEvent('MouseEvent');\n event_1.initEvent('click', true, true);\n dwlLink.dispatchEvent(event_1);\n setTimeout(function () {\n window.URL.revokeObjectURL(dataUrl_1);\n });\n }\n };\n CsvHelper.prototype.saveAsBlob = function () {\n return new Blob(['\\ufeff' + this.csvStr], { type: 'text/csv;charset=UTF-8' });\n };\n return CsvHelper;\n}());\nexport { CsvHelper };\n","/**\n * BlobHelper class\n * @private\n */\nvar BlobHelper = /** @class */ (function () {\n function BlobHelper() {\n /* tslint:disable:no-any */\n this.parts = [];\n }\n /* tslint:disable:no-any */\n BlobHelper.prototype.append = function (part) {\n this.parts.push(part);\n this.blob = undefined; // Invalidate the blob\n };\n BlobHelper.prototype.getBlob = function () {\n return new Blob(this.parts, { type: 'text/plain' });\n };\n return BlobHelper;\n}());\nexport { BlobHelper };\n","/**\n * AutoFilters class\n * @private\n */\nvar AutoFilters = /** @class */ (function () {\n function AutoFilters() {\n }\n return AutoFilters;\n}());\nexport { AutoFilters };\n","import { Worksheets } from './worksheets';\nimport { Worksheet, FreezePane, MergeCell, MergeCells, HyperLink, Grouping } from './worksheet';\nimport { CellStyle, Font, Borders, CellXfs, Alignment, NumFmt, CellStyleXfs, CellStyles } from './cell-style';\nimport { Column } from './column';\nimport { Row, Rows } from './row';\nimport { Image } from './image';\nimport { Cell, Cells } from './cell';\nimport { ZipArchive, ZipArchiveItem } from '@syncfusion/ej2-compression';\nimport { CsvHelper } from './csv-helper';\nimport { Internationalization, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { BlobHelper } from './blob-helper';\nimport { AutoFilters } from './auto-filters';\n/**\n * Workbook class\n */\nvar Workbook = /** @class */ (function () {\n /* tslint:disable:no-any */\n function Workbook(json, saveType, culture, currencyString, separator) {\n this.sharedStringCount = 0;\n this.unitsProportions = [\n 96 / 75.0,\n 96 / 300.0,\n 96,\n 96 / 25.4,\n 96 / 2.54,\n 1,\n 96 / 72.0,\n 96 / 72.0 / 12700,\n ];\n /* tslint:disable:no-any */\n this.hyperlinkStyle = { fontColor: '#0000FF', underline: true };\n if (culture !== undefined) {\n this.culture = culture;\n }\n else {\n this.culture = 'en-US';\n }\n if (currencyString !== undefined) {\n this.currency = currencyString;\n }\n else {\n this.currency = 'USD';\n }\n this.intl = new Internationalization(this.culture);\n this.mSaveType = saveType;\n if (saveType === 'xlsx') {\n this.mArchive = new ZipArchive();\n this.sharedString = [];\n this.mFonts = [];\n this.mBorders = [];\n this.mStyles = [];\n this.printTitles = new Map();\n this.cellStyles = new Map();\n this.mNumFmt = new Map();\n this.mFills = new Map();\n this.mStyles.push(new CellStyle());\n this.mFonts.push(new Font());\n /* tslint:disable */\n this.cellStyles.set('Normal', new CellStyles());\n /* tslint:enable */\n this.mCellXfs = [];\n this.mCellStyleXfs = [];\n this.drawingCount = 0;\n this.imageCount = 0;\n if (json.styles !== null && json.styles !== undefined) {\n /* tslint:disable-next-line:no-any */\n this.globalStyles = new Map();\n for (var i = 0; i < json.styles.length; i++) {\n if (json.styles[i].name !== undefined) {\n if (!this.cellStyles.has(json.styles[i].name)) {\n var cellStyle = new CellStyle();\n cellStyle.isGlobalStyle = true;\n this.parserCellStyle(json.styles[i], cellStyle, 'none');\n var cellStylesIn = new CellStyles();\n cellStylesIn.name = cellStyle.name;\n cellStylesIn.xfId = (cellStyle.index - 1);\n this.cellStyles.set(cellStylesIn.name, cellStylesIn);\n /* tslint:disable-next-line:no-any */\n var tFormat = {};\n if (json.styles[i].numberFormat !== undefined) {\n tFormat.format = json.styles[i].numberFormat;\n }\n if (json.styles[i].type !== undefined) {\n tFormat.type = json.styles[i].type;\n }\n else {\n tFormat.type = 'datetime';\n }\n if (tFormat.format !== undefined) {\n this.globalStyles.set(json.styles[i].name, tFormat);\n }\n }\n else {\n throw Error('Style name ' + json.styles[i].name + ' is already existed');\n }\n }\n }\n }\n // Parses Worksheets data to DOM. \n if (json.worksheets !== null && json.worksheets !== undefined) {\n this.parserWorksheets(json.worksheets);\n }\n else {\n throw Error('Worksheet is expected.');\n }\n // Parses the BuiltInProperties data to DOM. \n if (json.builtInProperties !== null && json.builtInProperties !== undefined) {\n this.builtInProperties = new BuiltInProperties();\n this.parserBuiltInProperties(json.builtInProperties, this.builtInProperties);\n }\n }\n else {\n this.csvHelper = new CsvHelper(json, separator);\n }\n }\n /* tslint:disable:no-any */\n Workbook.prototype.parserBuiltInProperties = function (jsonBuiltInProperties, builtInProperties) {\n //Author\n if (jsonBuiltInProperties.author !== null && jsonBuiltInProperties.author !== undefined) {\n builtInProperties.author = jsonBuiltInProperties.author;\n }\n //Comments\n if (jsonBuiltInProperties.comments !== null && jsonBuiltInProperties.comments !== undefined) {\n builtInProperties.comments = jsonBuiltInProperties.comments;\n }\n //Category\n if (jsonBuiltInProperties.category !== null && jsonBuiltInProperties.category !== undefined) {\n builtInProperties.category = jsonBuiltInProperties.category;\n }\n //Company\n if (jsonBuiltInProperties.company !== null && jsonBuiltInProperties.company !== undefined) {\n builtInProperties.company = jsonBuiltInProperties.company;\n }\n //Manager\n if (jsonBuiltInProperties.manager !== null && jsonBuiltInProperties.manager !== undefined) {\n builtInProperties.manager = jsonBuiltInProperties.manager;\n }\n //Subject\n if (jsonBuiltInProperties.subject !== null && jsonBuiltInProperties.subject !== undefined) {\n builtInProperties.subject = jsonBuiltInProperties.subject;\n }\n //Title\n if (jsonBuiltInProperties.title !== null && jsonBuiltInProperties.title !== undefined) {\n builtInProperties.title = jsonBuiltInProperties.title;\n }\n //Creation date\n if (jsonBuiltInProperties.createdDate !== null && jsonBuiltInProperties.createdDate !== undefined) {\n builtInProperties.createdDate = jsonBuiltInProperties.createdDate;\n }\n //Modified date\n if (jsonBuiltInProperties.modifiedDate !== null && jsonBuiltInProperties.modifiedDate !== undefined) {\n builtInProperties.modifiedDate = jsonBuiltInProperties.modifiedDate;\n }\n //Tags\n if (jsonBuiltInProperties.tags !== null && jsonBuiltInProperties.tags !== undefined) {\n builtInProperties.tags = jsonBuiltInProperties.tags;\n }\n //Status\n if (jsonBuiltInProperties.status !== null && jsonBuiltInProperties.status !== undefined) {\n builtInProperties.status = jsonBuiltInProperties.status;\n }\n };\n /* tslint:disable:no-any */\n Workbook.prototype.parserWorksheets = function (json) {\n this.worksheets = new Worksheets();\n var length = json.length;\n for (var i = 0; i < length; i++) {\n var jsonSheet = json[i];\n var sheet = new Worksheet();\n this.mergeCells = new MergeCells();\n this.mergedCellsStyle = new Map();\n this.mHyperLinks = [];\n //Name\n if (jsonSheet.name !== null && jsonSheet.name !== undefined) {\n sheet.name = jsonSheet.name;\n }\n else {\n sheet.name = 'Sheet' + (i + 1).toString();\n }\n if (jsonSheet.enableRtl !== null && jsonSheet.enableRtl !== undefined) {\n sheet.enableRtl = jsonSheet.enableRtl;\n }\n sheet.index = (i + 1);\n //Columns\n if (jsonSheet.columns !== null && jsonSheet.columns !== undefined) {\n this.parserColumns(jsonSheet.columns, sheet);\n }\n //Rows\n if (jsonSheet.rows !== null && jsonSheet.rows !== undefined) {\n this.parserRows(jsonSheet.rows, sheet);\n }\n //showGridLines\n if (jsonSheet.showGridLines !== null && jsonSheet.showGridLines !== undefined) {\n sheet.showGridLines = jsonSheet.showGridLines;\n }\n //FreezePanes\n if (jsonSheet.freeze !== null && jsonSheet.freeze !== undefined) {\n this.parserFreezePanes(jsonSheet.freeze, sheet);\n }\n //Print Title\n if (jsonSheet.printTitle !== null && jsonSheet.printTitle !== undefined) {\n this.parserPrintTitle(jsonSheet.printTitle, sheet);\n }\n if (jsonSheet.pageSetup !== undefined) {\n if (jsonSheet.pageSetup.isSummaryRowBelow !== undefined) {\n sheet.isSummaryRowBelow = jsonSheet.pageSetup.isSummaryRowBelow;\n }\n }\n if (jsonSheet.images !== undefined) {\n this.parserImages(jsonSheet.images, sheet);\n }\n if (jsonSheet.autoFilters !== null && jsonSheet.autoFilters !== undefined) {\n this.parseFilters(jsonSheet.autoFilters, sheet);\n }\n sheet.index = (i + 1);\n sheet.mergeCells = this.mergeCells;\n sheet.hyperLinks = this.mHyperLinks;\n this.worksheets.push(sheet);\n }\n };\n /* tslint:disable:no-any */\n Workbook.prototype.mergeOptions = function (fromJson, toJson) {\n /* tslint:disable:no-any */\n var result = {};\n this.applyProperties(fromJson, result);\n this.applyProperties(toJson, result);\n return result;\n };\n /* tslint:disable:no-any */\n Workbook.prototype.applyProperties = function (sourceJson, destJson) {\n var keys = Object.keys(sourceJson);\n for (var index = 0; index < keys.length; index++) {\n if (keys[index] !== 'name') {\n destJson[keys[index]] = sourceJson[keys[index]];\n }\n }\n };\n Workbook.prototype.getCellName = function (row, column) {\n return this.getColumnName(column) + row.toString();\n };\n Workbook.prototype.getColumnName = function (col) {\n col--;\n var strColumnName = '';\n do {\n var iCurrentDigit = col % 26;\n col = col / 26 - 1;\n strColumnName = String.fromCharCode(65 + iCurrentDigit) + strColumnName;\n } while (col >= 0);\n return strColumnName;\n };\n /* tslint:disable:no-any */\n Workbook.prototype.parserPrintTitle = function (json, sheet) {\n var printTitleName = '';\n var titleRowName;\n if (json.fromRow !== null && json.fromRow !== undefined) {\n var fromRow = json.fromRow;\n var toRow = void 0;\n if (json.toRow !== null && json.toRow !== undefined) {\n toRow = json.toRow;\n }\n else {\n toRow = json.fromRow;\n }\n titleRowName = '$' + fromRow + ':$' + toRow;\n }\n var titleColName;\n if (json.fromColumn !== null && json.fromColumn !== undefined) {\n var fromColumn = json.fromColumn;\n var toColumn = void 0;\n if (json.toColumn !== null && json.toColumn !== undefined) {\n toColumn = json.toColumn;\n }\n else {\n toColumn = json.fromColumn;\n }\n titleColName = '$' + this.getColumnName(fromColumn) + ':$' + this.getColumnName(toColumn);\n }\n if (titleRowName !== undefined) {\n printTitleName += (sheet.name + '!' + titleRowName);\n }\n if (titleColName !== undefined && titleRowName !== undefined) {\n printTitleName += ',' + (sheet.name + '!' + titleColName);\n }\n else if (titleColName !== undefined) {\n printTitleName += (sheet.name + '!' + titleColName);\n }\n if (printTitleName !== '') {\n this.printTitles.set(sheet.index - 1, printTitleName);\n }\n };\n /* tslint:disable:no-any */\n Workbook.prototype.parserFreezePanes = function (json, sheet) {\n sheet.freezePanes = new FreezePane();\n if (json.row !== null && json.row !== undefined) {\n sheet.freezePanes.row = json.row;\n }\n else {\n sheet.freezePanes.row = 0;\n }\n if (json.column !== null && json.column !== undefined) {\n sheet.freezePanes.column = json.column;\n }\n else {\n sheet.freezePanes.column = 0;\n }\n sheet.freezePanes.leftCell = this.getCellName(sheet.freezePanes.row + 1, sheet.freezePanes.column + 1);\n };\n /* tslint:disable:no-any */\n Workbook.prototype.parserColumns = function (json, sheet) {\n var columnsLength = json.length;\n sheet.columns = [];\n for (var column = 0; column < columnsLength; column++) {\n var col = new Column();\n if (json[column].index !== null && json[column].index !== undefined) {\n col.index = json[column].index;\n }\n else {\n throw Error('Column index is missing.');\n }\n if (json[column].width !== null && json[column].width !== undefined) {\n col.width = json[column].width;\n }\n sheet.columns.push(col);\n }\n };\n /* tslint:disable:no-any */\n Workbook.prototype.parserRows = function (json, sheet) {\n var rowsLength = json.length;\n sheet.rows = new Rows();\n var rowId = 0;\n for (var r = 0; r < rowsLength; r++) {\n var row = this.parserRow(json[r], rowId);\n rowId = row.index;\n sheet.rows.add(row);\n }\n this.insertMergedCellsStyle(sheet);\n };\n Workbook.prototype.insertMergedCellsStyle = function (sheet) {\n var _this = this;\n if (this.mergeCells.length > 0) {\n this.mergedCellsStyle.forEach(function (value, key) {\n var row = sheet.rows.filter(function (item) {\n return item.index === value.y;\n })[0];\n if (!isNullOrUndefined(row)) {\n var cell = row.cells.filter(function (item) {\n return item.index === value.x;\n })[0];\n if (!isNullOrUndefined(cell)) {\n cell.styleIndex = value.styleIndex;\n }\n else {\n var cells = row.cells.filter(function (item) {\n return item.index <= value.x;\n });\n var insertIndex = 0;\n if (cells.length > 0) {\n insertIndex = row.cells.indexOf(cells[cells.length - 1]) + 1;\n }\n row.cells.splice(insertIndex, 0, _this.createCell(value, key));\n }\n }\n else {\n var rows = sheet.rows.filter(function (item) {\n return item.index <= value.y;\n });\n var rowToInsert = new Row();\n rowToInsert.index = value.y;\n rowToInsert.cells = new Cells();\n rowToInsert.cells.add(_this.createCell(value, key));\n var insertIndex = 0;\n if (rows.length > 0) {\n insertIndex = sheet.rows.indexOf(rows[rows.length - 1]) + 1;\n }\n sheet.rows.splice(insertIndex, 0, rowToInsert);\n }\n });\n }\n };\n Workbook.prototype.createCell = function (value, key) {\n var cellToInsert = new Cell();\n cellToInsert.refName = key;\n cellToInsert.index = value.x;\n cellToInsert.cellStyle = new CellStyle();\n cellToInsert.styleIndex = value.styleIndex;\n return cellToInsert;\n };\n /* tslint:disable:no-any */\n Workbook.prototype.parserRow = function (json, rowIndex) {\n var row = new Row();\n //Row Height\n if (json.height !== null && json.height !== undefined) {\n row.height = json.height;\n }\n //Row index\n if (json.index !== null && json.index !== undefined) {\n row.index = json.index;\n }\n else {\n throw Error('Row index is missing.');\n }\n if (json.grouping !== null && json.grouping !== undefined) {\n this.parseGrouping(json.grouping, row);\n }\n this.parseCells(json.cells, row);\n return row;\n };\n /* tslint:disable:no-any */\n Workbook.prototype.parseGrouping = function (json, row) {\n row.grouping = new Grouping();\n if (json.outlineLevel !== undefined) {\n row.grouping.outlineLevel = json.outlineLevel;\n }\n if (json.isCollapsed !== undefined) {\n row.grouping.isCollapsed = json.isCollapsed;\n }\n if (json.isHidden !== undefined) {\n row.grouping.isHidden = json.isHidden;\n }\n };\n /* tslint:disable:no-any */\n Workbook.prototype.parseCells = function (json, row) {\n row.cells = new Cells();\n var cellsLength = json !== undefined ? json.length : 0;\n var spanMin = 1;\n var spanMax = 1;\n var curCellIndex = 0;\n for (var cellId = 0; cellId < cellsLength; cellId++) {\n /* tslint:disable:no-any */\n var jsonCell = json[cellId];\n var cell = new Cell();\n //cell index\n if (jsonCell.index !== null && jsonCell.index !== undefined) {\n cell.index = jsonCell.index;\n }\n else {\n throw Error('Cell index is missing.');\n }\n if (cell.index < spanMin) {\n spanMin = cell.index;\n }\n else if (cell.index > spanMax) {\n spanMax = cell.index;\n }\n //Update the Cell name\n cell.refName = this.getCellName(row.index, cell.index);\n //Row span\n if (jsonCell.rowSpan !== null && jsonCell.rowSpan !== undefined) {\n cell.rowSpan = jsonCell.rowSpan - 1;\n }\n else {\n cell.rowSpan = 0;\n }\n //Column span\n if (jsonCell.colSpan !== null && jsonCell.colSpan !== undefined) {\n cell.colSpan = jsonCell.colSpan - 1;\n }\n else {\n cell.colSpan = 0;\n }\n //Hyperlink\n if (jsonCell.hyperlink !== null && jsonCell.hyperlink !== undefined) {\n var hyperLink = new HyperLink();\n if (jsonCell.hyperlink.target !== undefined) {\n hyperLink.target = jsonCell.hyperlink.target;\n if (jsonCell.hyperlink.displayText !== undefined) {\n cell.value = jsonCell.hyperlink.displayText;\n }\n else {\n cell.value = jsonCell.hyperlink.target;\n }\n cell.type = this.getCellValueType(cell.value);\n hyperLink.ref = cell.refName;\n hyperLink.rId = (this.mHyperLinks.length + 1);\n this.mHyperLinks.push(hyperLink);\n cell.cellStyle = new CellStyle();\n /* tslint:disable-next-line:max-line-length */\n this.parserCellStyle((jsonCell.style !== undefined ? this.mergeOptions(jsonCell.style, this.hyperlinkStyle) : this.hyperlinkStyle), cell.cellStyle, 'string');\n cell.styleIndex = cell.cellStyle.index;\n }\n }\n // formulas\n if (jsonCell.formula !== null && jsonCell.formula !== undefined) {\n cell.formula = jsonCell.formula;\n cell.type = 'formula';\n }\n //Cell value\n if (jsonCell.value !== null && jsonCell.value !== undefined) {\n if (cell.formula !== undefined) {\n cell.value = 0;\n }\n else {\n cell.value = jsonCell.value;\n cell.type = this.getCellValueType(cell.value);\n }\n }\n if (jsonCell.style !== null && jsonCell.style !== undefined && cell.styleIndex === undefined) {\n cell.cellStyle = new CellStyle();\n if (cell.value instanceof Date) {\n this.parserCellStyle(jsonCell.style, cell.cellStyle, cell.type, 14);\n }\n else {\n this.parserCellStyle(jsonCell.style, cell.cellStyle, cell.type);\n }\n cell.styleIndex = cell.cellStyle.index;\n }\n else if (cell.value instanceof Date) {\n cell.cellStyle = new CellStyle();\n this.parserCellStyle({}, cell.cellStyle, cell.type, 14);\n cell.styleIndex = cell.cellStyle.index;\n }\n this.parseCellType(cell);\n this.mergeCells = this.processMergeCells(cell, row.index, this.mergeCells);\n row.cells.add(cell);\n curCellIndex = (cell.index + 1);\n }\n row.spans = (spanMin) + ':' + (spanMax);\n };\n Workbook.prototype.GetColors = function () {\n var colors;\n colors = new Map();\n /* tslint:disable */\n colors.set('WHITE', 'FFFFFFFF');\n /* tslint:disable */\n colors.set('SILVER', 'FFC0C0C0');\n /* tslint:disable */\n colors.set('GRAY', 'FF808080');\n /* tslint:disable */\n colors.set('BLACK', 'FF000000');\n /* tslint:disable */\n colors.set('RED', 'FFFF0000');\n /* tslint:disable */\n colors.set('MAROON', 'FF800000');\n /* tslint:disable */\n colors.set('YELLOW', 'FFFFFF00');\n /* tslint:disable */\n colors.set('OLIVE', 'FF808000');\n /* tslint:disable */\n colors.set('LIME', 'FF00FF00');\n /* tslint:disable */\n colors.set('GREEN', 'FF008000');\n /* tslint:disable */\n colors.set('AQUA', 'FF00FFFF');\n /* tslint:disable */\n colors.set('TEAL', 'FF008080');\n /* tslint:disable */\n colors.set('BLUE', 'FF0000FF');\n /* tslint:disable */\n colors.set('NAVY', 'FF000080');\n /* tslint:disable */\n colors.set('FUCHSIA', 'FFFF00FF');\n /* tslint:disable */\n colors.set('PURPLE', 'FF800080');\n return colors;\n };\n Workbook.prototype.processColor = function (colorVal) {\n if (colorVal.indexOf('#') === 0) {\n return colorVal.replace('#', 'FF');\n }\n colorVal = colorVal.toUpperCase();\n this.rgbColors = this.GetColors();\n if (this.rgbColors.has(colorVal)) {\n colorVal = this.rgbColors.get(colorVal);\n }\n else {\n colorVal = 'FF000000';\n }\n return colorVal;\n };\n Workbook.prototype.processCellValue = function (value, cell) {\n var cellValue = value;\n if (value.indexOf(\"\") !== -1 ||\n value.indexOf(\"\") !== -1 || value.indexOf(\"\") !== -1) {\n var processedVal = '';\n var startindex = value.indexOf('<', 0);\n var endIndex = value.indexOf('>', startindex + 1);\n if (startindex >= 0 && endIndex >= 0) {\n if (startindex !== 0) {\n processedVal += '' + this.processString(value.substring(0, startindex)) + '';\n }\n while (startindex >= 0 && endIndex >= 0) {\n endIndex = value.indexOf('>', startindex + 1);\n if (endIndex >= 0) {\n var subString = value.substring(startindex + 1, endIndex);\n startindex = value.indexOf('<', endIndex + 1);\n if (startindex < 0) {\n startindex = cellValue.length;\n }\n var text = cellValue.substring(endIndex + 1, startindex);\n if (text.length !== 0) {\n var subSplit = subString.split(' ');\n if (subSplit.length > 0) {\n processedVal += '';\n }\n if (subSplit.length > 1) {\n for (var _i = 0, subSplit_1 = subSplit; _i < subSplit_1.length; _i++) {\n var element = subSplit_1[_i];\n var start = element.trim().substring(0, 5);\n switch (start) {\n case 'size=':\n processedVal += '';\n break;\n case 'face=':\n processedVal += '';\n break;\n case 'color':\n processedVal += '';\n break;\n case 'href=':\n var hyperLink = new HyperLink();\n hyperLink.target = element.substring(6, element.length - 1).trim();\n hyperLink.ref = cell.refName;\n hyperLink.rId = (this.mHyperLinks.length + 1);\n this.mHyperLinks.push(hyperLink);\n processedVal += '';\n break;\n }\n }\n }\n else if (subSplit.length === 1) {\n var style = subSplit[0].trim();\n switch (style) {\n case 'b':\n processedVal += '';\n break;\n case 'i':\n processedVal += '';\n break;\n case 'u':\n processedVal += '';\n break;\n }\n }\n processedVal += '' + this.processString(text) + '';\n }\n }\n }\n if (processedVal === '') {\n return cellValue;\n }\n return processedVal;\n }\n else {\n return cellValue;\n }\n }\n else {\n return cellValue;\n }\n };\n Workbook.prototype.applyGlobalStyle = function (json, cellStyle) {\n var index = 0;\n if (this.cellStyles.has(json.name)) {\n cellStyle.index = this.mStyles.filter(function (a) { return (a.name === json.name); })[0].index;\n cellStyle.name = json.name;\n }\n };\n /* tslint:disable:no-any */\n Workbook.prototype.parserCellStyle = function (json, cellStyle, cellType, defStyleIndex) {\n //name\n if (json.name !== null && json.name !== undefined) {\n if (cellStyle.isGlobalStyle) {\n cellStyle.name = json.name;\n }\n else {\n this.applyGlobalStyle(json, cellStyle);\n return;\n }\n }\n //background color\n if (json.backColor !== null && json.backColor !== undefined) {\n cellStyle.backColor = json.backColor;\n }\n //borders\n //leftBorder\n cellStyle.borders = new Borders();\n //AllBorder\n if (json.borders !== null && json.borders !== undefined) {\n this.parserBorder(json.borders, cellStyle.borders.all);\n }\n //leftborder\n if (json.leftBorder !== null && json.leftBorder !== undefined) {\n this.parserBorder(json.leftBorder, cellStyle.borders.left);\n }\n //rightBorder\n if (json.rightBorder !== null && json.rightBorder !== undefined) {\n this.parserBorder(json.rightBorder, cellStyle.borders.right);\n }\n //topBorder\n if (json.topBorder !== null && json.topBorder !== undefined) {\n this.parserBorder(json.topBorder, cellStyle.borders.top);\n }\n //bottomBorder\n if (json.bottomBorder !== null && json.bottomBorder !== undefined) {\n this.parserBorder(json.bottomBorder, cellStyle.borders.bottom);\n }\n //fontName\n if (json.fontName !== null && json.fontName !== undefined) {\n cellStyle.fontName = json.fontName;\n }\n //fontSize\n if (json.fontSize !== null && json.fontSize !== undefined) {\n cellStyle.fontSize = json.fontSize;\n }\n //fontColor\n if (json.fontColor !== null && json.fontColor !== undefined) {\n cellStyle.fontColor = json.fontColor;\n }\n //italic\n if (json.italic !== null && json.italic !== undefined) {\n cellStyle.italic = json.italic;\n }\n //bold\n if (json.bold !== null && json.bold !== undefined) {\n cellStyle.bold = json.bold;\n }\n //hAlign\n if (json.hAlign !== null && json.hAlign !== undefined) {\n cellStyle.hAlign = json.hAlign.toLowerCase();\n }\n //indent\n if (json.indent !== null && json.indent !== undefined) {\n cellStyle.indent = json.indent;\n if (!(cellStyle.hAlign === 'left' || cellStyle.hAlign === 'right')) {\n cellStyle.hAlign = 'left';\n }\n }\n if (json.rotation !== null && json.rotation !== undefined) {\n cellStyle.rotation = json.rotation;\n }\n //vAlign\n if (json.vAlign !== null && json.vAlign !== undefined) {\n cellStyle.vAlign = json.vAlign.toLowerCase();\n }\n //underline\n if (json.underline !== null && json.underline !== undefined) {\n cellStyle.underline = json.underline;\n }\n //strikeThrough\n if (json.strikeThrough !== null && json.strikeThrough !== undefined) {\n cellStyle.strikeThrough = json.strikeThrough;\n }\n //wrapText\n if (json.wrapText !== null && json.wrapText !== undefined) {\n cellStyle.wrapText = json.wrapText;\n }\n //numberFormat\n if (json.numberFormat !== null && json.numberFormat !== undefined) {\n if (json.type !== null && json.type !== undefined) {\n cellStyle.numberFormat = this.getNumberFormat(json.numberFormat, json.type);\n }\n else {\n cellStyle.numberFormat = this.getNumberFormat(json.numberFormat, cellType);\n }\n }\n else if (defStyleIndex !== undefined) {\n cellStyle.numFmtId = 14;\n cellStyle.numberFormat = 'GENERAL';\n }\n else {\n cellStyle.numberFormat = 'GENERAL';\n }\n cellStyle.index = this.processCellStyle(cellStyle);\n };\n Workbook.prototype.switchNumberFormat = function (numberFormat, type) {\n var format = this.getNumberFormat(numberFormat, type);\n if (format !== numberFormat) {\n var numFmt = this.mNumFmt.get(numberFormat);\n if (numFmt !== undefined) {\n numFmt.formatCode = format;\n if (this.mNumFmt.has(format)) {\n for (var _i = 0, _a = this.mCellStyleXfs; _i < _a.length; _i++) {\n var cellStyleXfs = _a[_i];\n if (cellStyleXfs.numFmtId === numFmt.numFmtId) {\n cellStyleXfs.numFmtId = this.mNumFmt.get(format).numFmtId;\n }\n }\n for (var _b = 0, _c = this.mCellXfs; _b < _c.length; _b++) {\n var cellXfs = _c[_b];\n if (cellXfs.numFmtId === numFmt.numFmtId) {\n cellXfs.numFmtId = this.mNumFmt.get(format).numFmtId;\n }\n }\n }\n }\n }\n };\n Workbook.prototype.changeNumberFormats = function (value) {\n if (typeof value == \"string\") {\n var regex = new RegExp(this.currency, 'g');\n value = value.replace(regex, '[$' + this.currency + ']');\n }\n else if (typeof value == \"object\") {\n for (var i = 0; i < value.length; i++) {\n value[i] = value[i].replace(this.currency, '[$' + this.currency + ']');\n }\n }\n return value;\n };\n Workbook.prototype.getNumberFormat = function (numberFormat, type) {\n var returnFormat;\n switch (type) {\n case 'number':\n try {\n returnFormat = this.intl.getNumberPattern({ format: numberFormat, currency: this.currency, useGrouping: true }, true);\n if (this.currency.length > 1) {\n returnFormat = this.changeNumberFormats(returnFormat);\n }\n }\n catch (error) {\n returnFormat = numberFormat;\n }\n break;\n case 'datetime':\n try {\n returnFormat = this.intl.getDatePattern({ skeleton: numberFormat, type: 'dateTime' }, true);\n }\n catch (error) {\n try {\n returnFormat = this.intl.getDatePattern({ format: numberFormat, type: 'dateTime' }, true);\n }\n catch (error) {\n returnFormat = numberFormat;\n }\n }\n break;\n case 'date':\n try {\n returnFormat = this.intl.getDatePattern({ skeleton: numberFormat, type: 'date' }, true);\n }\n catch (error) {\n try {\n returnFormat = this.intl.getDatePattern({ format: numberFormat, type: 'date' }, true);\n }\n catch (error) {\n returnFormat = numberFormat;\n }\n }\n break;\n case 'time':\n try {\n returnFormat = this.intl.getDatePattern({ skeleton: numberFormat, type: 'time' }, true);\n }\n catch (error) {\n try {\n returnFormat = this.intl.getDatePattern({ format: numberFormat, type: 'time' }, true);\n }\n catch (error) {\n returnFormat = numberFormat;\n }\n }\n break;\n default:\n returnFormat = numberFormat;\n break;\n }\n return returnFormat;\n };\n /* tslint:disable:no-any */\n Workbook.prototype.parserBorder = function (json, border) {\n if (json.color !== null && json.color !== undefined) {\n border.color = json.color;\n }\n else {\n border.color = '#000000';\n }\n if (json.lineStyle !== null && json.lineStyle !== undefined) {\n border.lineStyle = json.lineStyle;\n }\n else {\n border.lineStyle = 'thin';\n }\n };\n Workbook.prototype.processCellStyle = function (style) {\n if (style.isGlobalStyle) {\n this.processNumFormatId(style);\n this.mStyles.push(style);\n return this.mStyles.length;\n }\n else {\n var compareResult = this.compareStyle(style);\n if (!compareResult.result) {\n this.processNumFormatId(style);\n this.mStyles.push(style);\n return this.mStyles.length;\n }\n else {\n //Return the index of the already existing style.\n return compareResult.index;\n }\n }\n };\n Workbook.prototype.processNumFormatId = function (style) {\n if (style.numberFormat !== 'GENERAL' && !this.mNumFmt.has(style.numberFormat)) {\n var id = this.mNumFmt.size + 164;\n this.mNumFmt.set(style.numberFormat, new NumFmt(id, style.numberFormat));\n }\n };\n Workbook.prototype.isNewFont = function (toCompareStyle) {\n var result = false;\n var index = 0;\n for (var _i = 0, _a = this.mFonts; _i < _a.length; _i++) {\n var font = _a[_i];\n index++;\n var fontColor = undefined;\n if (toCompareStyle.fontColor !== undefined) {\n fontColor = ('FF' + toCompareStyle.fontColor.replace('#', ''));\n }\n result = font.color === fontColor &&\n font.b === toCompareStyle.bold &&\n font.i === toCompareStyle.italic &&\n font.u === toCompareStyle.underline &&\n font.strike === toCompareStyle.strikeThrough &&\n font.name === toCompareStyle.fontName &&\n font.sz === toCompareStyle.fontSize;\n if (result) {\n break;\n }\n }\n index = index - 1;\n return { index: index, result: result };\n };\n Workbook.prototype.isNewBorder = function (toCompareStyle) {\n var bStyle = new CellStyle();\n if (this.isAllBorder(toCompareStyle.borders)) {\n return (bStyle.borders.all.color === toCompareStyle.borders.all.color &&\n bStyle.borders.all.lineStyle === toCompareStyle.borders.all.lineStyle);\n }\n else {\n return (bStyle.borders.left.color === toCompareStyle.borders.left.color &&\n bStyle.borders.left.lineStyle === toCompareStyle.borders.left.lineStyle &&\n bStyle.borders.right.color === toCompareStyle.borders.right.color &&\n bStyle.borders.right.lineStyle === toCompareStyle.borders.right.lineStyle &&\n bStyle.borders.top.color === toCompareStyle.borders.top.color &&\n bStyle.borders.top.lineStyle === toCompareStyle.borders.top.lineStyle &&\n bStyle.borders.bottom.color === toCompareStyle.borders.bottom.color &&\n bStyle.borders.bottom.lineStyle === toCompareStyle.borders.bottom.lineStyle);\n }\n };\n Workbook.prototype.isAllBorder = function (toCompareBorder) {\n var allBorderStyle = new CellStyle();\n return allBorderStyle.borders.all.color !== toCompareBorder.all.color &&\n allBorderStyle.borders.all.lineStyle !== toCompareBorder.all.lineStyle;\n };\n Workbook.prototype.compareStyle = function (toCompareStyle) {\n var result = true;\n var index = 0;\n var globalStyleIndex = 0;\n for (var _i = 0, _a = this.mStyles; _i < _a.length; _i++) {\n var baseStyle = _a[_i];\n result = baseStyle.isGlobalStyle ? false : (baseStyle.backColor === toCompareStyle.backColor &&\n baseStyle.bold === toCompareStyle.bold &&\n baseStyle.numFmtId === toCompareStyle.numFmtId &&\n baseStyle.numberFormat === toCompareStyle.numberFormat &&\n baseStyle.type === toCompareStyle.type &&\n baseStyle.fontColor === toCompareStyle.fontColor &&\n baseStyle.fontName === toCompareStyle.fontName &&\n baseStyle.fontSize === toCompareStyle.fontSize &&\n baseStyle.hAlign === toCompareStyle.hAlign &&\n baseStyle.italic === toCompareStyle.italic &&\n baseStyle.underline === toCompareStyle.underline &&\n baseStyle.strikeThrough === toCompareStyle.strikeThrough &&\n baseStyle.vAlign === toCompareStyle.vAlign &&\n baseStyle.indent === toCompareStyle.indent &&\n baseStyle.rotation === toCompareStyle.rotation &&\n baseStyle.wrapText === toCompareStyle.wrapText &&\n (baseStyle.borders.all.color === toCompareStyle.borders.all.color &&\n baseStyle.borders.all.lineStyle === toCompareStyle.borders.all.lineStyle) &&\n (baseStyle.borders.left.color === toCompareStyle.borders.left.color &&\n baseStyle.borders.left.lineStyle === toCompareStyle.borders.left.lineStyle &&\n baseStyle.borders.right.color === toCompareStyle.borders.right.color &&\n baseStyle.borders.right.lineStyle === toCompareStyle.borders.right.lineStyle &&\n baseStyle.borders.top.color === toCompareStyle.borders.top.color &&\n baseStyle.borders.top.lineStyle === toCompareStyle.borders.top.lineStyle &&\n baseStyle.borders.bottom.color === toCompareStyle.borders.bottom.color &&\n baseStyle.borders.bottom.lineStyle === toCompareStyle.borders.bottom.lineStyle));\n if (result) {\n index = baseStyle.index;\n break;\n }\n }\n return { index: index, result: result };\n };\n Workbook.prototype.contains = function (array, item) {\n var index = array.indexOf(item);\n return index > -1 && index < array.length;\n };\n Workbook.prototype.getCellValueType = function (value) {\n if (value instanceof Date) {\n return 'datetime';\n }\n else if (typeof (value) === 'boolean') {\n return 'boolean';\n }\n else if (typeof (value) === 'number') {\n return 'number';\n }\n else {\n return 'string';\n }\n };\n Workbook.prototype.parseCellType = function (cell) {\n var type = cell.type;\n var saveType;\n var value = cell.value;\n switch (type) {\n case 'datetime':\n value = this.toOADate(value);\n if (cell.cellStyle !== undefined && cell.cellStyle.name !== undefined) {\n if (this.globalStyles.has(cell.cellStyle.name)) {\n var value_1 = this.globalStyles.get(cell.cellStyle.name);\n this.switchNumberFormat(value_1.format, value_1.type);\n }\n }\n saveType = 'n';\n break;\n //TODO: Update the number format index and style\n case 'boolean':\n value = value ? 1 : 0;\n saveType = 'b';\n break;\n case 'number':\n saveType = 'n';\n if (cell.cellStyle !== undefined && cell.cellStyle.name !== undefined) {\n if (this.globalStyles.has(cell.cellStyle.name)) {\n this.switchNumberFormat(this.globalStyles.get(cell.cellStyle.name).format, 'number');\n }\n }\n break;\n case 'string':\n this.sharedStringCount++;\n saveType = 's';\n var sstvalue = this.processCellValue(value, cell);\n if (!this.contains(this.sharedString, sstvalue)) {\n this.sharedString.push(sstvalue);\n }\n value = this.sharedString.indexOf(sstvalue);\n break;\n default:\n break;\n }\n cell.saveType = saveType;\n cell.value = value;\n };\n Workbook.prototype.parserImages = function (json, sheet) {\n var imagesLength = json.length;\n sheet.images = [];\n var imageId = 0;\n for (var p = 0; p < imagesLength; p++) {\n var image = this.parserImage(json[p]);\n sheet.images.push(image);\n }\n };\n Workbook.prototype.parseFilters = function (json, sheet) {\n sheet.autoFilters = new AutoFilters();\n if (json.row !== null && json.row !== undefined)\n sheet.autoFilters.row = json.row;\n else\n throw new Error('Argument Null Exception: row null or empty');\n if (json.lastRow !== null && json.lastRow !== undefined)\n sheet.autoFilters.lastRow = json.lastRow;\n else\n throw new Error('Argument Null Exception: lastRow cannot be null or empty');\n if (json.column !== null && json.column !== undefined)\n sheet.autoFilters.column = json.column;\n else\n throw new Error('Argument Null Exception: column cannot be null or empty');\n if (json.lastColumn !== null && json.row !== undefined)\n sheet.autoFilters.lastColumn = json.lastColumn;\n else\n throw new Error('Argument Null Exception: lastColumn cannot be null or empty');\n };\n Workbook.prototype.parserImage = function (json) {\n var image = new Image();\n if (json.image !== null && json.image !== undefined) {\n image.image = json.image;\n }\n if (json.row !== null && json.row !== undefined) {\n image.row = json.row;\n }\n if (json.column !== null && json.column !== undefined) {\n image.column = json.column;\n }\n if (json.lastRow !== null && json.lastRow !== undefined) {\n image.lastRow = json.lastRow;\n }\n if (json.lastColumn !== null && json.lastColumn !== undefined) {\n image.lastColumn = json.lastColumn;\n }\n if (json.width !== null && json.width !== undefined) {\n image.width = json.width;\n }\n if (json.height !== null && json.height !== undefined) {\n image.height = json.height;\n }\n if (json.horizontalFlip !== null && json.horizontalFlip !== undefined) {\n image.horizontalFlip = json.horizontalFlip;\n }\n if (json.verticalFlip !== null && json.verticalFlip !== undefined) {\n image.verticalFlip = json.verticalFlip;\n }\n if (json.rotation !== null && json.rotation !== undefined) {\n image.rotation = json.rotation;\n }\n return image;\n };\n Workbook.prototype.saveAsBlob = function (blobSaveType) {\n var _this = this;\n switch (blobSaveType) {\n case 'text/csv':\n return new Promise(function (resolve, reject) {\n var obj = {};\n obj.blobData = _this.csvHelper.saveAsBlob();\n resolve(obj);\n });\n default:\n return new Promise(function (resolve, reject) {\n _this.saveInternal();\n _this.mArchive.saveAsBlob().then(function (blob) {\n var obj = {};\n obj.blobData = new Blob([blob], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });\n resolve(obj);\n });\n });\n }\n };\n Workbook.prototype.save = function (fileName, proxyUrl) {\n var _this = this;\n if (fileName === null || fileName === undefined || fileName === '') {\n throw new Error('Argument Null Exception: fileName cannot be null or empty');\n }\n var xlsxMatch = fileName.match('.xlsx$');\n var csvMatch = fileName.match('.csv$');\n if (xlsxMatch !== null && xlsxMatch[0] === ('.' + this.mSaveType)) {\n this.saveInternal();\n this.mArchive.save(fileName).then(function () {\n _this.mArchive.destroy();\n });\n }\n else if (csvMatch !== null && csvMatch[0] === ('.' + this.mSaveType)) {\n this.csvHelper.save(fileName);\n }\n else {\n throw Error('Save type and file extension is different.');\n }\n };\n Workbook.prototype.saveInternal = function () {\n this.saveWorkbook();\n this.saveWorksheets();\n this.saveSharedString();\n this.saveStyles();\n this.saveApp(this.builtInProperties);\n this.saveCore(this.builtInProperties);\n this.saveContentType();\n this.saveTopLevelRelation();\n this.saveWorkbookRelation();\n };\n Workbook.prototype.saveWorkbook = function () {\n /* tslint:disable-next-line:max-line-length */\n var workbookTemp = '';\n var sheets = '';\n var length = this.worksheets.length;\n for (var i = 0; i < length; i++) {\n /* tslint:disable-next-line:max-line-length */\n var sheetName = this.worksheets[i].name;\n sheetName = sheetName.replace(\"&\", \"&\");\n sheetName = sheetName.replace(\"<\", \"<\");\n sheetName = sheetName.replace(\">\", \">\");\n sheetName = sheetName.replace(\"\\\"\", \""\");\n sheets += '';\n }\n sheets += '';\n workbookTemp += sheets;\n if (this.printTitles.size > 0) {\n var printTitle_1 = '';\n this.printTitles.forEach(function (value, key) {\n printTitle_1 += '' + value + '';\n });\n printTitle_1 += '';\n workbookTemp += printTitle_1;\n }\n this.addToArchive(workbookTemp + '', 'xl/workbook.xml');\n };\n Workbook.prototype.saveWorksheets = function () {\n var length = this.worksheets.length;\n for (var i = 0; i < length; i++) {\n this.saveWorksheet(this.worksheets[i], i);\n }\n };\n Workbook.prototype.saveWorksheet = function (sheet, index) {\n var sheetBlob = new BlobHelper();\n /* tslint:disable-next-line:max-line-length */\n var sheetString = '';\n if (!sheet.isSummaryRowBelow) {\n sheetString += ('' + '' + '' + '');\n }\n else {\n sheetString += ('');\n }\n sheetString += this.saveSheetView(sheet);\n if (sheet.columns !== undefined) {\n var colString = '';\n for (var _i = 0, _a = sheet.columns; _i < _a.length; _i++) {\n var column = _a[_i];\n /* tslint:disable-next-line:max-line-length */\n if (column.width !== undefined) {\n colString += '';\n }\n else {\n colString += '';\n }\n }\n sheetString += (colString + '');\n }\n sheetString += ('');\n sheetBlob.append(sheetString);\n sheetString = '';\n if (sheet.rows !== undefined) {\n for (var _b = 0, _c = sheet.rows; _b < _c.length; _b++) {\n var row = _c[_b];\n var rowString = '');\n for (var _d = 0, _e = row.cells; _d < _e.length; _d++) {\n var cell = _e[_d];\n if (cell !== undefined && (cell.value !== undefined || cell.cellStyle !== undefined)) {\n rowString += ('');\n if (cell.formula !== undefined) {\n rowString += ('' + cell.formula + '');\n }\n if (cell.value !== undefined) {\n rowString += ('' + cell.value + '');\n }\n else {\n rowString += ('');\n }\n }\n }\n rowString += ('');\n sheetBlob.append(rowString);\n }\n }\n sheetString += ('');\n /* tslint:disable-next-line:max-line-length */\n if (sheet.autoFilters !== null && sheet.autoFilters !== undefined)\n sheetString += ('');\n if (sheet.mergeCells.length > 0) {\n sheetString += ('');\n for (var _f = 0, _g = sheet.mergeCells; _f < _g.length; _f++) {\n var mCell = _g[_f];\n sheetString += ('');\n }\n sheetString += ('');\n }\n if (sheet.hyperLinks.length > 0) {\n sheetString += ('');\n for (var _h = 0, _j = sheet.hyperLinks; _h < _j.length; _h++) {\n var hLink = _j[_h];\n sheetString += ('');\n }\n sheetString += ('');\n }\n /* tslint:disable-next-line:max-line-length */\n sheetString += ('');\n if (sheet.images != undefined && sheet.images.length > 0) {\n this.drawingCount++;\n this.saveDrawings(sheet, sheet.index);\n sheetString += '';\n }\n this.addToArchive(this.saveSheetRelations(sheet), ('xl/worksheets/_rels/sheet' + sheet.index + '.xml.rels'));\n sheetBlob.append(sheetString + '');\n this.addToArchive(sheetBlob.getBlob(), 'xl/worksheets' + '/sheet' + (index + 1) + '.xml');\n };\n Workbook.prototype.saveDrawings = function (sheet, index) {\n var drawings = new BlobHelper();\n /* tslint:disable-next-line:max-line-length */\n var sheetDrawingString = '';\n if (sheet.images !== undefined) {\n var imgId = 0;\n for (var _i = 0, _a = sheet.images; _i < _a.length; _i++) {\n var pic = _a[_i];\n if (pic.height !== undefined && pic.width !== undefined) {\n this.updatelastRowOffset(sheet, pic);\n this.updatelastColumnOffSet(sheet, pic);\n pic.lastRow -= 1;\n pic.lastColumn -= 1;\n }\n else if (pic.lastRow !== undefined && pic.lastColumn !== undefined) {\n pic.lastRowOffset = 0;\n pic.lastColOffset = 0;\n }\n imgId++;\n sheetDrawingString += '';\n sheetDrawingString += '';\n //col\n sheetDrawingString += pic.column - 1;\n sheetDrawingString += '';\n //colOff\n sheetDrawingString += 0;\n sheetDrawingString += '';\n //row\n sheetDrawingString += pic.row - 1;\n sheetDrawingString += '';\n //rowOff\n sheetDrawingString += 0;\n sheetDrawingString += '';\n sheetDrawingString += '';\n //col\n sheetDrawingString += pic.lastColumn;\n sheetDrawingString += '';\n //colOff\n sheetDrawingString += pic.lastColOffset;\n sheetDrawingString += '';\n //row\n sheetDrawingString += pic.lastRow;\n sheetDrawingString += '';\n //rowOff\n sheetDrawingString += pic.lastRowOffset;\n sheetDrawingString += '';\n sheetDrawingString += '';\n sheetDrawingString += '';\n sheetDrawingString += ' ';\n sheetDrawingString += ' ';\n sheetDrawingString += '';\n /* tslint:disable-next-line:max-line-length */\n sheetDrawingString += '';\n sheetDrawingString += '';\n sheetDrawingString += '';\n sheetDrawingString += '= -3600) {\n sheetDrawingString += ' rot=\"' + (pic.rotation * 60000) + '\"';\n }\n if (pic.verticalFlip != undefined && pic.verticalFlip != false) {\n sheetDrawingString += ' flipV=\"1\"';\n }\n if (pic.horizontalFlip != undefined && pic.horizontalFlip != false) {\n sheetDrawingString += ' flipH=\"1\"';\n }\n sheetDrawingString += '/>';\n sheetDrawingString += '';\n sheetDrawingString += '';\n var imageFile = new BlobHelper();\n var imageData = this.convertBase64toImage(pic.image);\n this.imageCount += 1;\n this.addToArchive(imageData, 'xl/media/image' + this.imageCount + '.png');\n }\n drawings.append(sheetDrawingString);\n drawings.append('');\n this.saveDrawingRelations(sheet);\n this.addToArchive(drawings.getBlob(), 'xl/drawings/drawing' + this.drawingCount + '.xml');\n }\n };\n Workbook.prototype.updatelastRowOffset = function (sheet, picture) {\n var iCurHeight = picture.height;\n var iCurRow = picture.row;\n var iCurOffset = 0;\n while (iCurHeight >= 0) {\n var iRowHeight = 0;\n if (sheet.rows !== undefined && sheet.rows[iCurRow - 1] !== undefined)\n iRowHeight = this.convertToPixels(sheet.rows[iCurRow - 1].height === undefined ? 15 : sheet.rows[iCurRow - 1].height);\n else\n iRowHeight = this.convertToPixels(15);\n var iSpaceInCell = iRowHeight - (iCurOffset * iRowHeight / 256);\n if (iSpaceInCell > iCurHeight) {\n picture.lastRow = iCurRow;\n picture.lastRowOffset = iCurOffset + (iCurHeight * 256 / iRowHeight);\n var rowHiddenHeight = 0;\n if (sheet.rows !== undefined && sheet.rows[iCurRow - 1] !== undefined)\n rowHiddenHeight = this.convertToPixels(sheet.rows[iCurRow - 1].height === undefined ? 15 : sheet.rows[iCurRow - 1].height);\n else\n rowHiddenHeight = this.convertToPixels(15);\n picture.lastRowOffset = (rowHiddenHeight * picture.lastRowOffset) / 256;\n picture.lastRowOffset = Math.round(picture.lastRowOffset / this.unitsProportions[7]);\n break;\n }\n else {\n iCurHeight -= iSpaceInCell;\n iCurRow++;\n iCurOffset = 0;\n }\n }\n };\n Workbook.prototype.updatelastColumnOffSet = function (sheet, picture) {\n var iCurWidth = picture.width;\n var iCurCol = picture.column;\n var iCurOffset = 0;\n while (iCurWidth >= 0) {\n var iColWidth = 0;\n if (sheet.columns !== undefined && sheet.columns[iCurCol - 1] !== undefined)\n iColWidth = this.ColumnWidthToPixels(sheet.columns[iCurCol - 1].width === undefined ? 8.43 : sheet.columns[iCurCol - 1].width);\n else\n iColWidth = this.ColumnWidthToPixels(8.43);\n var iSpaceInCell = iColWidth - (iCurOffset * iColWidth / 1024);\n if (iSpaceInCell > iCurWidth) {\n picture.lastColumn = iCurCol;\n picture.lastColOffset = iCurOffset + (iCurWidth * 1024 / iColWidth);\n var colHiddenWidth = 0;\n if (sheet.columns !== undefined && sheet.columns[iCurCol - 1] !== undefined)\n colHiddenWidth = this.ColumnWidthToPixels(sheet.columns[iCurCol - 1].width === undefined ? 8.43 : sheet.columns[iCurCol - 1].width);\n else\n colHiddenWidth = this.ColumnWidthToPixels(8.43);\n picture.lastColOffset = (colHiddenWidth * picture.lastColOffset) / 1024;\n picture.lastColOffset = Math.round(picture.lastColOffset / this.unitsProportions[7]);\n break;\n }\n else {\n iCurWidth -= iSpaceInCell;\n iCurCol++;\n iCurOffset = 0;\n }\n }\n };\n Workbook.prototype.convertToPixels = function (value) {\n return value * this.unitsProportions[6];\n };\n Workbook.prototype.convertBase64toImage = function (img) {\n var byteStr = window.atob(img);\n var buffer = new ArrayBuffer(byteStr.length);\n var data = new Uint8Array(buffer);\n for (var i = 0; i < byteStr.length; i++) {\n data[i] = byteStr.charCodeAt(i);\n }\n var blob = new Blob([data], { type: 'image/png' });\n return blob;\n };\n Workbook.prototype.saveDrawingRelations = function (sheet) {\n /* tslint:disable-next-line:max-line-length */\n var drawingRelation = '';\n var length = sheet.images.length;\n var id = this.imageCount - sheet.images.length;\n for (var i = 1; i <= length; i++) {\n id++;\n /* tslint:disable-next-line:max-line-length */\n drawingRelation += '';\n }\n this.addToArchive((drawingRelation + ''), 'xl/drawings/_rels/drawing' + this.drawingCount + '.xml.rels');\n };\n Workbook.prototype.pixelsToColumnWidth = function (pixels) {\n var dDigitWidth = 7;\n var val = (pixels > dDigitWidth + 5) ?\n this.trunc((pixels - 5) / dDigitWidth * 100 + 0.5) / 100 :\n pixels / (dDigitWidth + 5);\n return (val > 1) ?\n ((val * dDigitWidth + 5) / dDigitWidth * 256.0) / 256.0 :\n (val * (dDigitWidth + 5) / dDigitWidth * 256.0) / 256.0;\n };\n Workbook.prototype.ColumnWidthToPixels = function (val) {\n var dDigitWidth = 7;\n var fileWidth = (val > 1) ?\n ((val * dDigitWidth + 5) / dDigitWidth * 256.0) / 256.0 :\n (val * (dDigitWidth + 5) / dDigitWidth * 256.0) / 256.0;\n return this.trunc(((256 * fileWidth + this.trunc(128 / dDigitWidth)) / 256) * dDigitWidth);\n };\n Workbook.prototype.trunc = function (x) {\n var n = x - x % 1;\n return n === 0 && (x < 0 || (x === 0 && (1 / x !== 1 / 0))) ? -0 : n;\n };\n Workbook.prototype.pixelsToRowHeight = function (pixels) {\n return (pixels * this.unitsProportions[5] / this.unitsProportions[6]);\n };\n Workbook.prototype.saveSheetRelations = function (sheet) {\n /* tslint:disable-next-line:max-line-length */\n var relStr = '';\n for (var _i = 0, _a = sheet.hyperLinks; _i < _a.length; _i++) {\n var hLink = _a[_i];\n /* tslint:disable-next-line:max-line-length */\n relStr += '';\n }\n if (sheet.images != undefined && sheet.images.length > 0) {\n /* tslint:disable-next-line:max-line-length */\n relStr += '';\n }\n relStr += '';\n return relStr;\n };\n Workbook.prototype.saveSheetView = function (sheet) {\n var paneString = ' 0) {\n /* tslint:disable-next-line:max-line-length */\n var sstStart = '';\n var si = '';\n for (var i = 0; i < length; i++) {\n if (this.sharedString[i].indexOf('') !== 0) {\n si += '';\n si += this.processString(this.sharedString[i]);\n si += '';\n }\n else {\n si += '';\n si += this.sharedString[i];\n si += '';\n }\n }\n si += '';\n this.addToArchive(sstStart + si, 'xl/sharedStrings.xml');\n }\n };\n Workbook.prototype.processString = function (value) {\n if (typeof value == \"string\") {\n if (value.indexOf('&') !== -1) {\n value = value.replace(/&/g, '&');\n }\n if (value.indexOf('<') !== -1) {\n value = value.replace(/') !== -1) {\n value = value.replace(/>/g, '>');\n }\n if (value.indexOf('\\v') !== -1) {\n value = value.replace(/\\v/g, '_x000B_');\n }\n }\n else if (typeof value == \"object\") {\n for (var i = 0; i < value.length; i++) {\n if (value[i].indexOf('&') !== -1) {\n value[i] = value[i].replace(/&/g, '&');\n }\n if (value[i].indexOf('<') !== -1) {\n value[i] = value[i].replace(/') !== -1) {\n value[i] = value[i].replace(/>/g, '>');\n }\n if (value[i].indexOf('\\v') !== -1) {\n value[i] = value[i].replace(/\\v/g, '_x000B_');\n }\n }\n }\n return value;\n };\n Workbook.prototype.saveStyles = function () {\n this.updateCellXfsStyleXfs();\n /* tslint:disable-next-line:max-line-length */\n var styleTemp = '';\n styleTemp += this.saveNumberFormats();\n styleTemp += this.saveFonts();\n styleTemp += this.saveFills();\n styleTemp += this.saveBorders();\n styleTemp += this.saveCellStyleXfs();\n styleTemp += this.saveCellXfs();\n styleTemp += this.saveCellStyles();\n this.addToArchive(styleTemp + '', 'xl/styles.xml');\n };\n Workbook.prototype.updateCellXfsStyleXfs = function () {\n for (var _i = 0, _a = this.mStyles; _i < _a.length; _i++) {\n var style = _a[_i];\n var cellXfs = undefined;\n if (style.isGlobalStyle) {\n cellXfs = new CellStyleXfs();\n cellXfs.xfId = (style.index - 1);\n }\n else {\n cellXfs = new CellXfs();\n cellXfs.xfId = 0;\n }\n //Add font\n var compareFontResult = this.isNewFont(style);\n if (!compareFontResult.result) {\n var font = new Font();\n font.b = style.bold;\n font.i = style.italic;\n font.name = style.fontName;\n font.sz = style.fontSize;\n font.u = style.underline;\n font.strike = style.strikeThrough;\n font.color = ('FF' + style.fontColor.replace('#', ''));\n this.mFonts.push(font);\n cellXfs.fontId = this.mFonts.length - 1;\n }\n else {\n cellXfs.fontId = compareFontResult.index;\n }\n //Add fill\n if (style.backColor !== 'none') {\n var backColor = 'FF' + style.backColor.replace('#', '');\n if (this.mFills.has(backColor)) {\n var fillId = this.mFills.get(backColor);\n cellXfs.fillId = fillId;\n }\n else {\n var fillId = this.mFills.size + 2;\n this.mFills.set(backColor, fillId);\n cellXfs.fillId = (fillId);\n }\n }\n else {\n cellXfs.fillId = 0;\n }\n //Add border \n if (!this.isNewBorder(style)) {\n this.mBorders.push(style.borders);\n cellXfs.borderId = this.mBorders.length;\n }\n else {\n cellXfs.borderId = 0;\n }\n //Add Number Format \n if (style.numberFormat !== 'GENERAL') {\n if (this.mNumFmt.has(style.numberFormat)) {\n var numFmt = this.mNumFmt.get(style.numberFormat);\n cellXfs.numFmtId = numFmt.numFmtId;\n }\n else {\n var id = this.mNumFmt.size + 164;\n this.mNumFmt.set(style.numberFormat, new NumFmt(id, style.numberFormat));\n cellXfs.numFmtId = id;\n }\n }\n else {\n if (style.numberFormat === 'GENERAL' && style.numFmtId === 14) {\n cellXfs.numFmtId = 14;\n }\n else {\n cellXfs.numFmtId = 0;\n }\n }\n //Add alignment \n if (!style.isGlobalStyle) {\n cellXfs.applyAlignment = 1;\n }\n cellXfs.alignment = new Alignment();\n cellXfs.alignment.indent = style.indent;\n cellXfs.alignment.horizontal = style.hAlign;\n cellXfs.alignment.vertical = style.vAlign;\n cellXfs.alignment.wrapText = style.wrapText ? 1 : 0;\n cellXfs.alignment.rotation = style.rotation;\n if (style.isGlobalStyle) {\n this.mCellStyleXfs.push(cellXfs);\n this.mCellXfs.push(cellXfs);\n }\n else {\n //Add cellxfs\n this.mCellXfs.push(cellXfs);\n }\n }\n };\n Workbook.prototype.saveNumberFormats = function () {\n if (this.mNumFmt.size >= 1) {\n var numFmtStyle_1 = '';\n this.mNumFmt.forEach(function (value, key) {\n numFmtStyle_1 += '';\n });\n return (numFmtStyle_1 += '');\n }\n else {\n return '';\n }\n };\n Workbook.prototype.saveFonts = function () {\n /* tslint:disable-next-line:max-line-length */\n var fontStyle = '';\n if (this.mFonts.length >= 1) {\n for (var _i = 0, _a = this.mFonts; _i < _a.length; _i++) {\n var font = _a[_i];\n fontStyle += '';\n if (font.b) {\n fontStyle += '';\n }\n if (font.i) {\n fontStyle += '';\n }\n if (font.u) {\n fontStyle += '';\n }\n if (font.strike) {\n fontStyle += '';\n }\n fontStyle += '';\n fontStyle += '';\n fontStyle += '';\n }\n }\n return fontStyle + '';\n };\n Workbook.prototype.saveFills = function () {\n /* tslint:disable-next-line:max-line-length */\n var fillsStyle = '';\n if (this.mFills.size >= 1) {\n this.mFills.forEach(function (value, key) {\n /* tslint:disable-next-line:max-line-length */\n fillsStyle += '';\n });\n }\n return fillsStyle + '';\n };\n Workbook.prototype.saveBorders = function () {\n /* tslint:disable-next-line:max-line-length */\n var bordersStyle = '';\n if (this.mBorders.length >= 1) {\n for (var _i = 0, _a = this.mBorders; _i < _a.length; _i++) {\n var borders = _a[_i];\n if (this.isAllBorder(borders)) {\n var color = borders.all.color.replace('#', '');\n var lineStyle = borders.all.lineStyle;\n /* tslint:disable-next-line:max-line-length */\n bordersStyle += '';\n }\n else {\n /* tslint:disable-next-line:max-line-length */\n bordersStyle += '';\n }\n }\n }\n return bordersStyle + '';\n };\n Workbook.prototype.saveCellStyles = function () {\n var _this = this;\n var cellStyleString = '';\n this.cellStyles.forEach(function (value, key) {\n cellStyleString += '';\n if (this.mCellStyleXfs.length >= 1) {\n for (var _i = 0, _a = this.mCellStyleXfs; _i < _a.length; _i++) {\n var cellStyleXf = _a[_i];\n /* tslint:disable-next-line:max-line-length */\n cellXfsStyle += '';\n }\n else {\n cellXfsStyle += ' />';\n }\n }\n }\n return cellXfsStyle + '';\n };\n Workbook.prototype.saveCellXfs = function () {\n /* tslint:disable-next-line:max-line-length */\n var cellXfsStyle = '';\n if (this.mCellXfs.length >= 1) {\n for (var _i = 0, _a = this.mCellXfs; _i < _a.length; _i++) {\n var cellXf = _a[_i];\n /* tslint:disable-next-line:max-line-length */\n cellXfsStyle += '';\n }\n }\n return cellXfsStyle + '';\n };\n Workbook.prototype.saveAlignment = function (cellXf) {\n var alignString = '';\n return alignString;\n };\n Workbook.prototype.saveApp = function (builtInProperties) {\n /* tslint:disable-next-line:max-line-length */\n var appString = 'Essential XlsIO';\n if (builtInProperties !== undefined) {\n if (builtInProperties.manager !== undefined) {\n appString += '' + builtInProperties.manager + '';\n }\n if (builtInProperties.company !== undefined) {\n appString += '' + builtInProperties.company + '';\n }\n }\n this.addToArchive((appString + ''), 'docProps/app.xml');\n };\n Workbook.prototype.saveCore = function (builtInProperties) {\n var createdDate = new Date();\n /* tslint:disable-next-line:max-line-length */\n var coreString = '';\n if (this.builtInProperties !== undefined) {\n if (builtInProperties.author !== undefined) {\n coreString += '' + builtInProperties.author + '';\n }\n if (builtInProperties.subject !== undefined) {\n coreString += '' + builtInProperties.subject + '';\n }\n if (builtInProperties.category !== undefined) {\n coreString += '' + builtInProperties.category + '';\n }\n if (builtInProperties.comments !== undefined) {\n coreString += '' + builtInProperties.comments + '';\n }\n if (builtInProperties.title !== undefined) {\n coreString += '' + builtInProperties.title + '';\n }\n if (builtInProperties.tags !== undefined) {\n coreString += '' + builtInProperties.tags + '';\n }\n if (builtInProperties.status !== undefined) {\n coreString += '' + builtInProperties.status + '';\n }\n if (builtInProperties.createdDate !== undefined) {\n /* tslint:disable-next-line:max-line-length */\n coreString += '' + builtInProperties.createdDate.toISOString() + '';\n }\n else {\n coreString += '' + createdDate.toISOString() + '';\n }\n if (builtInProperties.modifiedDate !== undefined) {\n /* tslint:disable-next-line:max-line-length */\n coreString += '' + builtInProperties.modifiedDate.toISOString() + '';\n }\n else {\n coreString += '' + createdDate.toISOString() + '';\n }\n }\n else {\n coreString += '' + createdDate.toISOString() + '';\n coreString += '' + createdDate.toISOString() + '';\n }\n /* tslint:disable-next-line:max-line-length */\n coreString += '';\n this.addToArchive(coreString, 'docProps/core.xml');\n };\n Workbook.prototype.saveTopLevelRelation = function () {\n /* tslint:disable-next-line:max-line-length */\n var topRelation = '';\n this.addToArchive(topRelation, '_rels/.rels');\n };\n Workbook.prototype.saveWorkbookRelation = function () {\n /* tslint:disable-next-line:max-line-length */\n var wbRelation = '';\n var length = this.worksheets.length;\n var count = 0;\n for (var i = 0; i < length; i++, count++) {\n /* tslint:disable-next-line:max-line-length */\n wbRelation += '';\n }\n /* tslint:disable-next-line:max-line-length */\n wbRelation += '';\n if (this.sharedStringCount > 0) {\n /* tslint:disable-next-line:max-line-length */\n wbRelation += '';\n }\n this.addToArchive((wbRelation + ''), 'xl/_rels/workbook.xml.rels');\n };\n Workbook.prototype.saveContentType = function () {\n /* tslint:disable-next-line:max-line-length */\n var contentTypeString = '';\n var sheetsOverride = '';\n var length = this.worksheets.length;\n var drawingIndex = 0;\n for (var i = 0; i < length; i++) {\n /* tslint:disable-next-line:max-line-length */\n sheetsOverride += '';\n if (this.worksheets[i].images != undefined && this.worksheets[i].images.length > 0) {\n drawingIndex++;\n /* tslint:disable-next-line:max-line-length */\n sheetsOverride += '';\n }\n }\n if (this.imageCount > 0)\n sheetsOverride += '';\n if (this.sharedStringCount > 0) {\n /* tslint:disable-next-line:max-line-length */\n contentTypeString += '';\n }\n this.addToArchive((contentTypeString + sheetsOverride + ''), '[Content_Types].xml');\n };\n Workbook.prototype.addToArchive = function (xmlString, itemName) {\n if (typeof (xmlString) === 'string') {\n var blob = new Blob([xmlString], { type: 'text/plain' });\n var archiveItem = new ZipArchiveItem(blob, itemName);\n this.mArchive.addItem(archiveItem);\n }\n else {\n var archiveItem = new ZipArchiveItem(xmlString, itemName);\n this.mArchive.addItem(archiveItem);\n }\n };\n Workbook.prototype.processMergeCells = function (cell, rowIndex, mergeCells) {\n if (cell.rowSpan !== 0 || cell.colSpan !== 0) {\n var mCell = new MergeCell();\n mCell.x = cell.index;\n mCell.width = cell.colSpan;\n mCell.y = rowIndex;\n mCell.height = cell.rowSpan;\n var startCell = this.getCellName(mCell.y, mCell.x);\n var endCell = this.getCellName(rowIndex + mCell.height, cell.index + mCell.width);\n mCell.ref = startCell + ':' + endCell;\n var mergedCell = mergeCells.add(mCell);\n var start = { x: mCell.x, y: mCell.y };\n var end = {\n x: (cell.index + mCell.width), y: (rowIndex + mCell.height)\n };\n this.updatedMergedCellStyles(start, end, cell);\n }\n return mergeCells;\n };\n Workbook.prototype.updatedMergedCellStyles = function (sCell, eCell, cell) {\n for (var x = sCell.x; x <= eCell.x; x++) {\n for (var y = sCell.y; y <= eCell.y; y++) {\n this.mergedCellsStyle.set(this.getCellName(y, x), { x: x, y: y, styleIndex: cell.styleIndex });\n }\n }\n };\n /**\n * Returns the tick count corresponding to the given year, month, and day.\n * @param year number value of year\n * @param month number value of month\n * @param day number value of day\n */\n Workbook.prototype.dateToTicks = function (year, month, day) {\n var ticksPerDay = 10000 * 1000 * 60 * 60 * 24;\n var daysToMonth365 = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365];\n var daysToMonth366 = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366];\n if (year >= 1 && year <= 9999 && month >= 1 && month <= 12) {\n var days = this.isLeapYear(year) ? daysToMonth366 : daysToMonth365;\n var y = year - 1;\n var n = y * 365 + ((y / 4) | 0) - ((y / 100) | 0) + ((y / 400) | 0) + days[month - 1] + day - 1;\n return n * ticksPerDay;\n }\n throw new Error('Not a valid date');\n };\n /**\n * Return the tick count corresponding to the given hour, minute, second.\n * @param hour number value of hour\n * @param minute number value if minute\n * @param second number value of second\n */\n Workbook.prototype.timeToTicks = function (hour, minute, second) {\n if (hour >= 0 && hour < 24 && minute >= 0 && minute < 60 && second >= 0 && second < 60) {\n var totalSeconds = hour * 3600 + minute * 60 + second;\n return totalSeconds * 10000 * 1000;\n }\n throw new Error('Not valid time');\n };\n /**\n * Checks if given year is a leap year.\n * @param year Year value.\n */\n Workbook.prototype.isLeapYear = function (year) {\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n };\n /**\n * Converts `DateTime` to the equivalent OLE Automation date.\n */\n Workbook.prototype.toOADate = function (date) {\n var ticks = 0;\n /* tslint:disable-next-line:max-line-length */\n ticks = this.dateToTicks(date.getFullYear(), (date.getMonth() + 1), date.getDate()) + this.timeToTicks(date.getHours(), date.getMinutes(), date.getSeconds());\n if (ticks === 0) {\n return 0.0;\n }\n var ticksPerDay = 10000 * 1000 * 60 * 60 * 24;\n var daysTo1899 = (((365 * 4 + 1) * 25 - 1) * 4 + 1) * 4 + ((365 * 4 + 1) * 25 - 1) * 3 - 367;\n var doubleDateOffset = daysTo1899 * ticksPerDay;\n var oaDateMinAsTicks = (((365 * 4 + 1) * 25 - 1) - 365) * ticksPerDay;\n if (ticks < oaDateMinAsTicks) {\n throw new Error('Arg_OleAutDateInvalid');\n }\n var millisPerDay = 1000 * 60 * 60 * 24;\n return ((ticks - doubleDateOffset) / 10000) / millisPerDay;\n };\n return Workbook;\n}());\nexport { Workbook };\n/**\n * BuiltInProperties Class\n * @private\n */\nvar BuiltInProperties = /** @class */ (function () {\n function BuiltInProperties() {\n }\n return BuiltInProperties;\n}());\nexport { BuiltInProperties };\n","import { Row } from './../models/row';\nimport { CellType } from '../base/enum';\nimport { isNullOrUndefined, Internationalization, getValue, createElement } from '@syncfusion/ej2-base';\nimport { Cell } from '../models/cell';\nimport { ValueFormatter } from './../services/value-formatter';\nimport { Query, DataManager } from '@syncfusion/ej2-data';\nimport { getForeignData, measureColumnDepth, getUid } from '../base/util';\nimport { Grid } from '../base/grid';\n/**\n * @hidden\n * `ExportHelper` for `PdfExport` & `ExcelExport`\n */\nvar ExportHelper = /** @class */ (function () {\n function ExportHelper(parent, foreignKeyData) {\n this.hideColumnInclude = false;\n this.foreignKeyData = {};\n this.parent = parent;\n if (!parent.parentDetails && foreignKeyData) {\n this.foreignKeyData = foreignKeyData;\n }\n }\n ExportHelper.getQuery = function (parent, data) {\n var query = data.generateQuery(true).requiresCount();\n if (data.isRemote()) {\n if (parent.groupSettings.enableLazyLoading && parent.groupSettings.columns.length) {\n query.lazyLoad = [];\n }\n else {\n query.take(parent.pageSettings.totalRecordsCount);\n }\n }\n return query;\n };\n ExportHelper.prototype.getFData = function (value, column) {\n var foreignKeyData = getForeignData(column, {}, value, this.foreignKeyData[column.field])[0];\n return foreignKeyData;\n };\n ExportHelper.prototype.getGridRowModel = function (columns, dataSource, gObj, startIndex) {\n if (startIndex === void 0) { startIndex = 0; }\n var rows = [];\n var length = dataSource.length;\n if (length) {\n for (var i = 0; i < length; i++, startIndex++) {\n var options = { isExpand: false };\n options.data = dataSource[parseInt(i.toString(), 10)];\n options.index = startIndex;\n if (gObj.childGrid) {\n if (gObj.hierarchyPrintMode === 'All') {\n options.isExpand = true;\n }\n else if (gObj.hierarchyPrintMode === 'Expanded' &&\n this.parent.expandedRows && this.parent.expandedRows[parseInt(startIndex.toString(), 10)]) {\n options.isExpand = gObj.expandedRows[parseInt(startIndex.toString(), 10)].isExpand;\n }\n }\n var row = new Row(options);\n row.cells = this.generateCells(columns, gObj);\n rows.push(row);\n }\n this.processColumns(rows);\n }\n return rows;\n };\n ExportHelper.prototype.generateCells = function (columns, gObj) {\n var cells = [];\n if (gObj.childGridLevel) {\n var len = gObj.childGridLevel;\n for (var i = 0; len > i; i++) {\n cells.push(this.generateCell({}, CellType.Indent));\n }\n }\n for (var _i = 0, columns_1 = columns; _i < columns_1.length; _i++) {\n var col = columns_1[_i];\n cells.push(this.generateCell(col, CellType.Data));\n }\n return cells;\n };\n ExportHelper.prototype.getColumnData = function (gridObj) {\n var _this = this;\n var columnPromise = [];\n var promise;\n var fColumns = gridObj.getForeignKeyColumns();\n if (fColumns.length) {\n for (var i = 0; i < fColumns.length; i++) {\n var colData = ('result' in fColumns[parseInt(i.toString(), 10)].dataSource) ?\n new DataManager(fColumns[parseInt(i.toString(), 10)].dataSource.result) :\n fColumns[parseInt(i.toString(), 10)].dataSource;\n columnPromise.push(colData.executeQuery(new Query()));\n }\n promise = Promise.all(columnPromise).then(function (e) {\n for (var j = 0; j < fColumns.length; j++) {\n _this.foreignKeyData[fColumns[parseInt(j.toString(), 10)].field] = e[parseInt(j.toString(), 10)].result;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n });\n }\n return promise;\n };\n ExportHelper.prototype.getHeaders = function (columns, isHideColumnInclude) {\n if (isHideColumnInclude) {\n this.hideColumnInclude = true;\n }\n else {\n this.hideColumnInclude = false;\n }\n this.colDepth = measureColumnDepth(columns);\n var rows = [];\n for (var i = 0; i < this.colDepth; i++) {\n rows[parseInt(i.toString(), 10)] = new Row({});\n rows[parseInt(i.toString(), 10)].cells = [];\n }\n rows = this.processColumns(rows);\n rows = this.processHeaderCells(rows, columns);\n return { rows: rows, columns: this.generateActualColumns(columns) };\n };\n ExportHelper.prototype.getConvertedWidth = function (input) {\n var value = parseFloat(input);\n return (input.indexOf('%') !== -1) ? (this.parent.element.getBoundingClientRect().width * value / 100) : value;\n };\n ExportHelper.prototype.generateActualColumns = function (columns, actualColumns) {\n if (actualColumns === void 0) { actualColumns = []; }\n for (var _i = 0, columns_2 = columns; _i < columns_2.length; _i++) {\n var column = columns_2[_i];\n if (column.commands) {\n continue;\n }\n if (!column.columns) {\n if (column.visible || this.hideColumnInclude) {\n actualColumns.push(column);\n }\n }\n else {\n if (column.visible || this.hideColumnInclude) {\n var colSpan = this.getCellCount(column, 0);\n if (colSpan !== 0) {\n this.generateActualColumns(column.columns, actualColumns);\n }\n }\n }\n }\n return actualColumns;\n };\n ExportHelper.prototype.processHeaderCells = function (rows, cols) {\n var columns = cols;\n for (var i = 0; i < columns.length; i++) {\n if (!columns[parseInt(i.toString(), 10)].commands) {\n rows = this.appendGridCells(columns[parseInt(i.toString(), 10)], rows, 0);\n }\n }\n return rows;\n };\n ExportHelper.prototype.appendGridCells = function (cols, gridRows, index) {\n if (!cols.columns && (cols.visible !== false || this.hideColumnInclude) && !cols.commands) {\n gridRows[parseInt(index.toString(), 10)].cells.push(this.generateCell(cols, CellType.Header, this.colDepth - index, index));\n }\n else if (cols.columns) {\n var colSpan = this.getCellCount(cols, 0);\n if (colSpan) {\n gridRows[parseInt(index.toString(), 10)].cells.push(new Cell({\n cellType: CellType.StackedHeader, column: cols, colSpan: colSpan\n }));\n }\n var isIgnoreFirstCell = void 0;\n for (var i = 0, len = cols.columns.length; i < len; i++) {\n if (cols.columns[parseInt(i.toString(), 10)].visible && !isIgnoreFirstCell) {\n isIgnoreFirstCell = true;\n }\n gridRows = this.appendGridCells(cols.columns[parseInt(i.toString(), 10)], gridRows, index + 1);\n }\n }\n return gridRows;\n };\n ExportHelper.prototype.generateCell = function (gridColumn, cellType, rowSpan, rowIndex) {\n var option = {\n 'visible': gridColumn.visible,\n 'isDataCell': cellType === CellType.Data,\n 'column': gridColumn,\n 'cellType': cellType,\n 'rowSpan': rowSpan,\n 'index': rowIndex\n };\n if (!option.rowSpan || option.rowSpan < 2) {\n delete option.rowSpan;\n }\n return new Cell(option);\n };\n ExportHelper.prototype.processColumns = function (rows) {\n //TODO: generate dummy column for group, detail, stacked row here; ensureColumns here\n var gridObj = this.parent;\n var columnIndexes = [];\n if (gridObj.enableColumnVirtualization) {\n columnIndexes = gridObj.getColumnIndexesInView();\n }\n for (var i = 0, len = rows.length; i < len; i++) {\n if (gridObj.allowGrouping) {\n for (var j = 0, len_1 = gridObj.groupSettings.columns.length - 1; j < len_1; j++) {\n if (gridObj.enableColumnVirtualization && columnIndexes.indexOf(j) === -1) {\n continue;\n }\n rows[parseInt(i.toString(), 10)].cells.splice(0, 0, this.generateCell({}, CellType.HeaderIndent));\n }\n }\n }\n return rows;\n };\n ExportHelper.prototype.getCellCount = function (column, count) {\n if (column.columns) {\n for (var i = 0; i < column.columns.length; i++) {\n count = this.getCellCount(column.columns[parseInt(i.toString(), 10)], count);\n }\n }\n else {\n if (column.visible || this.hideColumnInclude) {\n count++;\n }\n }\n return count;\n };\n ExportHelper.prototype.checkAndExport = function (gridPool, globalResolve) {\n var bool = Object.keys(gridPool).some(function (key) {\n return !gridPool[\"\" + key];\n });\n if (!bool) {\n globalResolve();\n }\n };\n ExportHelper.prototype.failureHandler = function (gridPool, childGridObj, resolve) {\n var _this = this;\n return function () {\n gridPool[childGridObj.id] = true;\n _this.checkAndExport(gridPool, resolve);\n };\n };\n ExportHelper.prototype.createChildGrid = function (gObj, row, exportType, gridPool) {\n var childGridObj = new Grid(this.parent.detailRowModule.getGridModel(gObj, row, exportType));\n gObj.isPrinting = false;\n var parent = 'parentDetails';\n childGridObj[\"\" + parent] = {\n parentID: gObj.element.id,\n parentPrimaryKeys: gObj.getPrimaryKeyFieldNames(),\n parentKeyField: gObj.childGrid.queryString,\n parentKeyFieldValue: getValue(childGridObj.queryString, row.data),\n parentRowData: row.data\n };\n var exportId = getUid('child-grid');\n var element = createElement('div', {\n id: exportId, styles: 'display: none'\n });\n document.body.appendChild(element);\n childGridObj.id = exportId;\n gridPool[\"\" + exportId] = false;\n childGridObj.isExportGrid = true;\n return { childGrid: childGridObj, element: element };\n };\n ExportHelper.prototype.getGridExportColumns = function (columns) {\n var actualGridColumns = [];\n for (var i = 0, gridColumns = columns; i < gridColumns.length; i++) {\n if (gridColumns[parseInt(i.toString(), 10)].type !== 'checkbox') {\n actualGridColumns.push(gridColumns[parseInt(i.toString(), 10)]);\n }\n }\n return actualGridColumns;\n };\n /**\n * Gets the foreignkey data.\n *\n * @returns {ForeignKeyFormat} returns the foreignkey data\n * @hidden\n */\n ExportHelper.prototype.getForeignKeyData = function () {\n return this.foreignKeyData;\n };\n return ExportHelper;\n}());\nexport { ExportHelper };\n/**\n * @hidden\n * `ExportValueFormatter` for `PdfExport` & `ExcelExport`\n */\nvar ExportValueFormatter = /** @class */ (function () {\n function ExportValueFormatter(culture) {\n this.valueFormatter = new ValueFormatter(culture);\n this.internationalization = new Internationalization(culture);\n }\n ExportValueFormatter.prototype.returnFormattedValue = function (args, customFormat) {\n if (!isNullOrUndefined(args.value) && args.value) {\n return this.valueFormatter.getFormatFunction(customFormat)(args.value);\n }\n else {\n return '';\n }\n };\n /**\n * Used to format the exporting cell value\n *\n * @param {ExportHelperArgs} args - Specifies cell details.\n * @returns {string} returns formated value\n * @hidden\n */\n ExportValueFormatter.prototype.formatCellValue = function (args) {\n if (args.isForeignKey) {\n args.value = getValue(args.column.foreignKeyValue, getForeignData(args.column, {}, args.value)[0]);\n }\n if (args.column.type === 'number' && args.column.format !== undefined && args.column.format !== '') {\n if (typeof args.column.format === 'string') {\n args.column.format = { format: args.column.format };\n }\n return args.value || args.value === 0 ?\n this.internationalization.getNumberFormat(args.column.format)(args.value) : '';\n }\n else if (args.column.type === 'boolean' && args.value !== '') {\n return args.value ? 'true' : 'false';\n /* tslint:disable-next-line:max-line-length */\n }\n else if ((args.column.type === 'date' || args.column.type === 'datetime' || args.column.type === 'time') && args.column.format !== undefined) {\n if (typeof args.value === 'string') {\n args.value = new Date(args.value);\n }\n if (typeof args.column.format === 'string') {\n var format = void 0;\n var cFormat = args.column.format;\n if (args.column.type === 'date') {\n format = { type: 'date', skeleton: cFormat };\n }\n else if (args.column.type === 'time') {\n format = { type: 'time', skeleton: cFormat };\n }\n else {\n format = { type: 'dateTime', skeleton: cFormat };\n }\n return this.returnFormattedValue(args, format);\n }\n else {\n if (args.column.format instanceof Object && args.column.format.type === undefined) {\n return (args.value.toString());\n }\n else {\n var customFormat = void 0;\n if (args.column.type === 'date') {\n customFormat = {\n type: args.column.format.type,\n format: args.column.format.format, skeleton: args.column.format.skeleton\n };\n }\n else if (args.column.type === 'time') {\n customFormat = { type: 'time', format: args.column.format.format, skeleton: args.column.format.skeleton };\n }\n else {\n customFormat = { type: 'dateTime', format: args.column.format.format, skeleton: args.column.format.skeleton };\n }\n return this.returnFormattedValue(args, customFormat);\n }\n }\n }\n else {\n if ((!isNullOrUndefined(args.column.type) && !isNullOrUndefined(args.value)) || !isNullOrUndefined(args.value)) {\n return (args.value).toString();\n }\n else {\n return '';\n }\n }\n };\n return ExportValueFormatter;\n}());\nexport { ExportValueFormatter };\n","import * as events from '../base/constant';\nimport { Workbook } from '@syncfusion/ej2-excel-export';\nimport { isNullOrUndefined, getEnumValue, compile, getValue, detach, extend } from '@syncfusion/ej2-base';\nimport { Data } from '../actions/data';\nimport { ExportHelper, ExportValueFormatter } from './export-helper';\nimport { SummaryModelGenerator, GroupSummaryModelGenerator, CaptionSummaryModelGenerator } from '../services/summary-model-generator';\nimport { CellType } from '../base/enum';\nimport { Query, DataManager } from '@syncfusion/ej2-data';\nimport { getPrintGridModel, getUid, isExportColumns, updateColumnTypeForExportColumns, prepareColumns, measureColumnDepth } from '../base/util';\nimport { defaultCurrencyCode } from '@syncfusion/ej2-base';\n/**\n * @hidden\n * `ExcelExport` module is used to handle the Excel export action.\n */\nvar ExcelExport = /** @class */ (function () {\n /**\n * Constructor for the Grid Excel Export module.\n *\n * @param {IGrid} parent - specifies the IGrid\n * @param {ServiceLocator} locator - specifies the ServiceLocator\n * @hidden\n */\n function ExcelExport(parent, locator) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.book = {};\n this.workSheet = [];\n this.rows = [];\n this.columns = [];\n this.styles = [];\n this.rowLength = 1;\n this.expType = 'AppendToSheet';\n this.includeHiddenColumn = false;\n this.isCsvExport = false;\n this.isChild = false;\n this.isElementIdChanged = false;\n this.gridPool = {};\n this.sheet = {};\n this.grpFooterTemplates = [];\n this.footerTemplates = [];\n this.aggIndex = 0;\n this.totalAggregates = 0;\n this.parent = parent;\n this.helper = new ExportHelper(parent);\n this.locator = locator;\n this.l10n = this.locator.getService('localization');\n }\n /**\n * For internal use only - Get the module name.\n *\n * @returns {string} returns the module name\n */\n ExcelExport.prototype.getModuleName = function () {\n return 'ExcelExport';\n };\n ExcelExport.prototype.init = function (gObj) {\n if (gObj.element !== null && gObj.element.id === '') {\n gObj.element.id = new Date().toISOString();\n this.isElementIdChanged = true;\n }\n this.parent = gObj;\n if (this.parent.isDestroyed) {\n return;\n }\n this.isExporting = undefined;\n this.book = {};\n this.workSheet = [];\n this.rows = [];\n this.columns = [];\n this.styles = [];\n this.rowLength = 1;\n this.footer = undefined;\n this.expType = 'AppendToSheet';\n this.includeHiddenColumn = false;\n this.exportValueFormatter = new ExportValueFormatter(gObj.locale);\n gObj.id = getUid('main-grid');\n this.gridPool[gObj.id] = false;\n };\n /**\n * Export Grid to Excel file.\n *\n * @param {IGrid} grid - Defines the grid.\n * @param {exportProperties} exportProperties - Defines the export properties of the Grid.\n * @param {isMultipleExport} isMultipleExport - Defines is multiple Grid's are exported.\n * @param {Workbook} workbook - Defined the Workbook if multiple Grid is exported.\n * @param {boolean} isCsv - true if export to CSV.\n * @param {boolean} isBlob - true if isBlob is enabled.\n * @returns {Promise} - Returns the map for export.\n */\n // eslint-disable-next-line\n ExcelExport.prototype.Map = function (grid, exportProperties, isMultipleExport, workbook, isCsv, isBlob) {\n var gObj = grid;\n var cancel = 'cancel';\n var isBlb = 'isBlob';\n var Child = 'isChild';\n var csv = 'isCsv';\n var workbk = 'workbook';\n var isMultiEx = 'isMultipleExport';\n this.gridPool = {};\n if (grid.childGrid && !(!isNullOrUndefined(exportProperties) && exportProperties.hierarchyExportMode === 'None')) {\n grid.expandedRows = getPrintGridModel(grid).expandedRows;\n }\n var args = {\n requestType: 'beforeExcelExport', gridObject: gObj, cancel: false,\n isMultipleExport: isMultipleExport, workbook: workbook, isCsv: isCsv, isBlob: isBlob, isChild: this.isChild,\n grpFooterTemplates: this.grpFooterTemplates\n };\n gObj.trigger(events.beforeExcelExport, args);\n if (args[\"\" + cancel]) {\n return new Promise(function (resolve) {\n return resolve();\n });\n }\n this.parent.log('exporting_begin', this.getModuleName());\n this.data = new Data(gObj);\n this.isExporting = true;\n this.isBlob = args[\"\" + isBlb];\n this.isChild = args[\"\" + Child];\n this.grpFooterTemplates = args['grpFooterTemplates'];\n if (args[\"\" + csv]) {\n this.isCsvExport = args[\"\" + csv];\n }\n else {\n this.isCsvExport = false;\n }\n if (isExportColumns(exportProperties)) {\n updateColumnTypeForExportColumns(exportProperties, gObj);\n }\n return this.processRecords(gObj, exportProperties, args[\"\" + isMultiEx], args[\"\" + workbk]);\n };\n ExcelExport.prototype.exportingSuccess = function (resolve) {\n this.isExporting = false;\n this.parent.trigger(events.excelExportComplete, this.isBlob ? { promise: this.blobPromise } : {});\n this.parent.log('exporting_complete', this.getModuleName());\n resolve(this.book);\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ExcelExport.prototype.processRecords = function (gObj, exportProperties, isMultipleExport, workbook) {\n var _this = this;\n if (gObj.allowGrouping && gObj.groupSettings.enableLazyLoading && gObj.groupSettings.columns.length) {\n if (isNullOrUndefined(exportProperties)) {\n exportProperties = { hierarchyExportMode: 'All' };\n }\n else {\n exportProperties.hierarchyExportMode = exportProperties.hierarchyExportMode || 'All';\n }\n }\n if (!isNullOrUndefined(exportProperties) && !isNullOrUndefined(exportProperties.dataSource)) {\n exportProperties.dataSource = exportProperties.dataSource instanceof DataManager ?\n exportProperties.dataSource : new DataManager(exportProperties.dataSource);\n var query_1 = exportProperties.query ? exportProperties.query : new Query();\n if (isNullOrUndefined(query_1.isCountRequired) || gObj.aggregates) {\n query_1.isCountRequired = true;\n }\n return new Promise(function (resolve) {\n var dataManager = exportProperties.dataSource.executeQuery(query_1);\n dataManager.then(function (r) {\n _this.init(gObj);\n _this.processInnerRecords(gObj, exportProperties, isMultipleExport, workbook, r).then(function () {\n _this.exportingSuccess(resolve);\n });\n });\n });\n }\n else if (!isNullOrUndefined(exportProperties) && exportProperties.exportType === 'CurrentPage') {\n return new Promise(function (resolve) {\n _this.init(gObj);\n _this.processInnerRecords(gObj, exportProperties, isMultipleExport, workbook, _this.parent.getCurrentViewRecords());\n _this.exportingSuccess(resolve);\n });\n }\n else {\n var allPromise_1 = [];\n allPromise_1.push(this.data.getData({}, ExportHelper.getQuery(gObj, this.data)));\n allPromise_1.push(this.helper.getColumnData(gObj));\n return new Promise(function (resolve, reject) {\n Promise.all(allPromise_1).then(function (e) {\n _this.init(gObj);\n _this.processInnerRecords(gObj, exportProperties, isMultipleExport, workbook, e[0]).then(function () {\n _this.exportingSuccess(resolve);\n });\n }).catch(function (e) {\n reject(_this.book);\n _this.parent.trigger(events.actionFailure, e);\n });\n });\n }\n };\n ExcelExport.prototype.processInnerRecords = function (gObj, exportProperties, \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n isMultipleExport, workbook, r) {\n var _this = this;\n this.groupedColLength = gObj.groupSettings.columns.length;\n var blankRows = 5;\n var separator;\n var rows = [];\n var colDepth = measureColumnDepth(gObj.columns);\n var isExportPropertiesPresent = !isNullOrUndefined(exportProperties);\n if (isExportPropertiesPresent && !isNullOrUndefined(exportProperties.multipleExport)) {\n this.expType = (!isNullOrUndefined(exportProperties.multipleExport.type) ? exportProperties.multipleExport.type : 'AppendToSheet');\n if (!isNullOrUndefined(exportProperties.multipleExport.blankRows)) {\n blankRows = exportProperties.multipleExport.blankRows;\n }\n }\n if (isNullOrUndefined(workbook)) {\n this.workSheet = [];\n this.rows = [];\n this.columns = [];\n this.styles = [];\n this.sheet.images = [];\n }\n else if (this.expType === 'NewSheet') {\n this.workSheet = workbook.worksheets;\n this.rows = [];\n this.columns = [];\n this.sheet.images = [];\n this.styles = workbook.styles;\n }\n else {\n this.workSheet = [];\n this.rows = workbook.worksheets[0].rows;\n this.columns = workbook.worksheets[0].columns;\n this.styles = workbook.styles;\n this.sheet.images = workbook.worksheets[0].images;\n this.rowLength = (this.rows[this.rows.length - 1].index + blankRows);\n this.rowLength++;\n }\n if (isExportPropertiesPresent) {\n if (!isNullOrUndefined(isMultipleExport)) {\n if (!isNullOrUndefined(exportProperties.header) && (isMultipleExport || this.expType === 'NewSheet')) {\n this.processExcelHeader(JSON.parse(JSON.stringify(exportProperties.header)));\n }\n if (!isNullOrUndefined(exportProperties.footer)) {\n if (this.expType === 'AppendToSheet') {\n if (!isMultipleExport) {\n this.footer = JSON.parse(JSON.stringify(exportProperties.footer));\n }\n }\n else {\n this.footer = JSON.parse(JSON.stringify(exportProperties.footer));\n }\n }\n }\n else {\n if (!isNullOrUndefined(exportProperties.header)) {\n this.processExcelHeader(JSON.parse(JSON.stringify(exportProperties.header)));\n }\n if (!isNullOrUndefined(exportProperties.footer)) {\n this.footer = JSON.parse(JSON.stringify(exportProperties.footer));\n }\n }\n }\n this.includeHiddenColumn = (isExportPropertiesPresent ? exportProperties.includeHiddenColumn : false);\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n return new Promise(function (resolve, reject) {\n gObj.childGridLevel = 0;\n rows = _this.processGridExport(gObj, exportProperties, r);\n _this.globalResolve = resolve;\n _this.gridPool[gObj.id] = true;\n _this.helper.checkAndExport(_this.gridPool, _this.globalResolve);\n }).then(function () {\n var organisedRows = [];\n _this.organiseRows(rows, rows[0].index, organisedRows);\n _this.rows = _this.rows.concat(organisedRows);\n //footer template add\n if (!isNullOrUndefined(_this.footer)) {\n if ((_this.expType === 'AppendToSheet' && !isMultipleExport) || (_this.expType === 'NewSheet')) {\n _this.processExcelFooter(_this.footer);\n }\n }\n if (_this.columns.length > 0) {\n _this.sheet.columns = _this.columns;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _this.sheet.rows = _this.rows;\n _this.sheet.enableRtl = _this.parent.enableRtl;\n if (_this.parent.allowFiltering && gObj.getVisibleColumns().length && isExportPropertiesPresent &&\n exportProperties.enableFilter) {\n var headerRowLen = exportProperties.header ? exportProperties.header.headerRows ||\n exportProperties.header.rows.length : 0;\n var autoFilters = {\n row: colDepth + headerRowLen, column: _this.groupedColLength ? _this.groupedColLength + 1 :\n _this.sheet.columns[0].index, lastRow: _this.sheet.rows.length, lastColumn: _this.sheet.columns.length\n };\n _this.sheet.autoFilters = autoFilters;\n }\n _this.workSheet.push(_this.sheet);\n _this.book.worksheets = _this.workSheet;\n _this.book.styles = _this.styles;\n gObj.notify('finalPageSetup', _this.book);\n if (!isMultipleExport) {\n if (_this.isCsvExport) {\n if (isExportPropertiesPresent && !isNullOrUndefined(exportProperties.separator)\n && exportProperties.separator !== ',') {\n separator = exportProperties.separator;\n }\n var book = new Workbook(_this.book, 'csv', gObj.locale, defaultCurrencyCode, separator);\n if (!_this.isBlob) {\n if (isExportPropertiesPresent && exportProperties.fileName) {\n book.save(exportProperties.fileName);\n }\n else {\n book.save('Export.csv');\n }\n }\n else {\n _this.blobPromise = book.saveAsBlob('text/csv');\n }\n }\n else {\n var book = new Workbook(_this.book, 'xlsx', gObj.locale, defaultCurrencyCode);\n if (!_this.isBlob) {\n if (isExportPropertiesPresent && exportProperties.fileName) {\n book.save(exportProperties.fileName);\n }\n else {\n book.save('Export.xlsx');\n }\n }\n else {\n _this.blobPromise = book.saveAsBlob('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');\n }\n }\n if (_this.isElementIdChanged) {\n gObj.element.id = '';\n }\n delete gObj.expandedRows;\n }\n return workbook;\n });\n };\n ExcelExport.prototype.organiseRows = function (rows, initialIndex, organisedRows) {\n if (!rows.length) {\n return initialIndex;\n }\n for (var i = 0; i < rows.length; i++) {\n var row = rows[parseInt(i.toString(), 10)];\n var childRows = row.childRows;\n if (childRows) {\n row.index = initialIndex++;\n delete row.childRows;\n organisedRows.push(row);\n initialIndex = this.organiseRows(childRows, initialIndex, organisedRows);\n }\n else {\n row.index = initialIndex++;\n organisedRows.push(row);\n }\n }\n return initialIndex;\n };\n ExcelExport.prototype.processGridExport = function (gObj, exportProperties, r) {\n var excelRows = [];\n var isFrozen = this.parent.isFrozenGrid() && !this.parent.getFrozenColumns();\n if (!isNullOrUndefined(exportProperties) && !isNullOrUndefined(exportProperties.theme)) {\n this.theme = exportProperties.theme;\n }\n if (gObj.childGrid && !isNullOrUndefined(exportProperties)) {\n gObj.hierarchyPrintMode = exportProperties.hierarchyExportMode || 'Expanded';\n }\n var helper = new ExportHelper(gObj, this.helper.getForeignKeyData());\n var gColumns = isExportColumns(exportProperties) ?\n prepareColumns(exportProperties.columns, gObj.enableColumnVirtualization) :\n helper.getGridExportColumns(isFrozen ? gObj.getColumns() : gObj.columns);\n var headerRow = helper.getHeaders(gColumns, this.includeHiddenColumn);\n var groupIndent = gObj.groupSettings.columns.length ? gObj.groupSettings.columns.length - 1 : 0;\n excelRows = this.processHeaderContent(gObj, headerRow, groupIndent, excelRows);\n if (!isNullOrUndefined(exportProperties) && Object.keys(exportProperties).length &&\n isNullOrUndefined(exportProperties.dataSource)) {\n if (exportProperties.exportType === 'CurrentPage' && (!gObj.groupSettings.enableLazyLoading\n || gObj.getDataModule().isRemote())) {\n excelRows = this.processRecordContent(gObj, r, headerRow, exportProperties, gObj.currentViewData, excelRows, helper);\n }\n else if (gObj.groupSettings.enableLazyLoading && !gObj.getDataModule().isRemote()) {\n var groupData = void 0;\n if (!isNullOrUndefined(exportProperties) && Object.keys(exportProperties).length) {\n var isAllPage = exportProperties.exportType === 'CurrentPage'\n ? false : true;\n var groupQuery = gObj.getDataModule().generateQuery(isAllPage);\n var lazyloadData = gObj.getDataModule().dataManager.executeLocal(groupQuery);\n groupQuery.lazyLoad = [];\n var fName = 'fn';\n if (!isAllPage) {\n for (var i = 0; i < groupQuery.queries.length; i++) {\n if (groupQuery.queries[parseInt(i.toString(), 10)]['' + fName] === 'onPage') {\n groupQuery.queries[parseInt(i.toString(), 10)].e.pageSize = lazyloadData.reduce(function (acc, curr) { return acc + curr['count']; }, 0);\n }\n }\n }\n if (exportProperties.hierarchyExportMode === 'All') {\n groupData = gObj.getDataModule().dataManager.executeLocal(groupQuery);\n }\n else if (exportProperties.hierarchyExportMode === 'Expanded' || exportProperties.hierarchyExportMode === 'None' ||\n isNullOrUndefined(exportProperties.hierarchyExportMode)) {\n groupData = gObj.getDataModule().dataManager.executeLocal(groupQuery);\n var lazQuery = this.parent.contentModule.lazyLoadQuery;\n for (var i = 0; i < lazQuery.length; i++) {\n var query = lazQuery[parseInt(i.toString(), 10)];\n var where = query[0];\n for (var j = 0; j < groupData.length; j++) {\n var data = groupData[parseInt(j.toString(), 10)];\n if (data['key'] === where['value']) {\n lazyloadData[parseInt(i.toString(), 10)] = groupData[parseInt(j.toString(), 10)];\n }\n }\n }\n groupData = lazyloadData;\n }\n }\n else {\n groupData = gObj.currentViewData;\n }\n excelRows = this.processRecordContent(gObj, r, headerRow, exportProperties, groupData, excelRows, helper);\n }\n else {\n excelRows = this.processRecordContent(gObj, r, headerRow, exportProperties, undefined, excelRows, helper);\n }\n }\n else {\n excelRows = this.processRecordContent(gObj, r, headerRow, exportProperties, undefined, excelRows, helper);\n }\n gObj.notify(events.exportDataBound, { excelRows: excelRows, type: 'excel' });\n this.capTemplate = undefined;\n this.footerTemplates = [];\n this.grpFooterTemplates = [];\n this.aggIndex = 0;\n this.totalAggregates = 0;\n return excelRows;\n };\n ExcelExport.prototype.processRecordContent = function (gObj, returnType, headerRow, exportProperties, currentViewRecords, excelRow, helper) {\n var record;\n if (!isNullOrUndefined(currentViewRecords) && currentViewRecords.length) {\n record = currentViewRecords;\n }\n else {\n record = returnType.result;\n }\n if (!isNullOrUndefined(record.level)) {\n this.processGroupedRows(gObj, record, headerRow, record.level, 0, exportProperties, excelRow, helper);\n }\n else {\n this.processRecordRows(gObj, record, headerRow, 0, 0, exportProperties, excelRow, helper);\n }\n if (!isNullOrUndefined(returnType.aggregates) && Object.keys(returnType.aggregates).length > 0) {\n if (!isNullOrUndefined(currentViewRecords) && !this.parent.groupSettings.enableLazyLoading) {\n this.processAggregates(gObj, returnType.result, excelRow, currentViewRecords);\n }\n else {\n var result = returnType.result.GroupGuid ?\n returnType.result.records : returnType.result;\n this.processAggregates(gObj, result, excelRow);\n }\n }\n return excelRow;\n };\n ExcelExport.prototype.processGroupedRows = function (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n gObj, dataSource, headerRow, level, startIndex, excelExportProperties, excelRows, helper) {\n for (var _i = 0, dataSource_1 = dataSource; _i < dataSource_1.length; _i++) {\n var item = dataSource_1[_i];\n var cells = [];\n var index = 1;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var cell = {};\n cell.index = (index + level) - 1;\n var col = gObj.getColumnByField(item.field);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var args = {\n value: item.key,\n column: col,\n style: undefined,\n isForeignKey: col.isForeignColumn()\n };\n var value = gObj.getColumnByField(item.field).headerText +\n ': ' + (!col.enableGroupByFormat ? this.exportValueFormatter.formatCellValue(args) : item.key) + ' - ';\n if (item.count > 1) {\n value += item.count + ' items';\n }\n else {\n value += item.count + ' item';\n }\n var cArgs = { captionText: value, type: this.isCsvExport ? 'CSV' : 'Excel', data: item };\n this.parent.trigger(events.exportGroupCaption, cArgs);\n cell.value = cArgs.captionText;\n cell.style = this.getCaptionThemeStyle(this.theme);\n if (!isNullOrUndefined(cArgs.style)) {\n cell.style = this.mergeOptions(cell.style, cArgs.style);\n }\n var captionModelGen = new CaptionSummaryModelGenerator(gObj);\n var groupCaptionSummaryRows = captionModelGen.generateRows(item);\n this.fillAggregates(gObj, groupCaptionSummaryRows, (dataSource.level + dataSource.childLevels) - 1, excelRows, this.rowLength);\n cells.push(cell);\n if (excelRows[excelRows.length - 1].cells.length > 0) {\n var lIndex = dataSource.level + dataSource.childLevels + groupCaptionSummaryRows[0].cells.length;\n var hIndex = 0;\n for (var _a = 0, _b = excelRows[excelRows.length - 1].cells; _a < _b.length; _a++) {\n var tCell = _b[_a];\n if (tCell.index < lIndex) {\n lIndex = tCell.index;\n }\n if (tCell.index > hIndex) {\n hIndex = tCell.index;\n }\n if (cells[cells.length - 1].index !== tCell.index) {\n cells.push(tCell);\n }\n }\n if ((lIndex - cell.index) > 1) {\n cell.colSpan = lIndex - cell.index;\n }\n while (hIndex < (headerRow.columns.length + level + dataSource.childLevels)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var sCell = {};\n sCell.index = (hIndex + 1);\n sCell.style = this.getCaptionThemeStyle(this.theme);\n cells.push(sCell);\n hIndex++;\n }\n }\n else {\n var span = 0;\n //Calculation for column span when group caption dont have aggregates\n for (var _c = 0, _d = headerRow.columns; _c < _d.length; _c++) {\n var col_1 = _d[_c];\n if (col_1.visible) {\n span++;\n }\n }\n cell.colSpan = (dataSource.childLevels + span);\n }\n excelRows[excelRows.length - 1].cells = cells;\n this.rowLength++;\n if (this.groupedColLength < 8 && level > 1) {\n var grouping = { outlineLevel: level - 1, isCollapsed: true };\n excelRows[excelRows.length - 1].grouping = grouping;\n }\n if (!isNullOrUndefined(dataSource.childLevels) && dataSource.childLevels > 0) {\n this.processGroupedRows(gObj, item.items, headerRow, item.items.level, startIndex, excelExportProperties, excelRows, helper);\n this.processAggregates(gObj, item, excelRows, undefined, (level - 1) + dataSource.childLevels, true);\n }\n else {\n startIndex = this.processRecordRows(gObj, item.items, headerRow, (level - 1), startIndex, excelExportProperties, excelRows, helper);\n this.processAggregates(gObj, item, excelRows, undefined, (level - 1), true);\n }\n }\n };\n ExcelExport.prototype.processRecordRows = function (gObj, record, headerRow, level, startIndex, excelExportProperties, excelRows, helper) {\n var index = 1;\n var cells = [];\n var columns = headerRow.columns;\n var rows = helper.getGridRowModel(columns, record, gObj, startIndex);\n for (var _i = 0, rows_1 = rows; _i < rows_1.length; _i++) {\n var row = rows_1[_i];\n cells = [];\n startIndex++;\n index = 1;\n var templateRowHeight = void 0;\n for (var c = 0, len = row.cells.length; c < len; c++) {\n var gCell = row.cells[parseInt(c.toString(), 10)];\n if (gCell.cellType !== CellType.Data) {\n continue;\n }\n var column = gCell.column;\n var field = column.field;\n var cellValue = !isNullOrUndefined(field) ? column.valueAccessor(field, row.data, column) : '';\n var value = !isNullOrUndefined(cellValue) ? cellValue : '';\n var fkData = void 0;\n if (column.isForeignColumn && column.isForeignColumn()) {\n fkData = helper.getFData(value, column);\n value = getValue(column.foreignKeyValue, fkData);\n }\n if (!isNullOrUndefined(value)) {\n var cell = {};\n var idx = index + level + gObj.childGridLevel;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var excelCellArgs = {\n data: row.data, column: column, foreignKeyData: fkData,\n value: value, style: undefined, colSpan: 1, cell: cell\n };\n gObj.trigger(events.excelQueryCellInfo, excelCellArgs);\n if (!isNullOrUndefined(excelCellArgs.image) && !isNullOrUndefined(excelCellArgs.image.base64)) {\n templateRowHeight = this.setImage(excelCellArgs, idx);\n if (excelCellArgs.image.height && excelCellArgs.value !== '') {\n templateRowHeight += 30;\n }\n }\n if (!isNullOrUndefined(excelCellArgs.hyperLink)) {\n excelCellArgs.cell.hyperlink = { target: excelCellArgs.hyperLink.target };\n excelCellArgs.value = excelCellArgs.hyperLink.displayText || excelCellArgs.value;\n }\n cell = excelCellArgs.cell;\n cell.index = idx;\n cell.value = excelCellArgs.value;\n if (excelCellArgs.data === '' && gObj.childGridLevel && index === 1) {\n var style = {};\n style.hAlign = 'left';\n excelCellArgs = { style: style };\n cell.colSpan = gObj.getVisibleColumns().length;\n cell.value = this.l10n.getConstant('EmptyRecord');\n }\n if (excelCellArgs.colSpan > 1) {\n cell.colSpan = excelCellArgs.colSpan;\n }\n if (!isNullOrUndefined(excelCellArgs.style)) {\n var styleIndex = this.getColumnStyle(gObj, index + level);\n cell.style = this.mergeOptions(this.styles[parseInt(styleIndex.toString(), 10)], excelCellArgs.style);\n }\n else {\n cell.style = { name: gObj.element.id + 'column' + (index + level) };\n }\n cells.push(cell);\n }\n index++;\n }\n var excelRow = { index: this.rowLength++, cells: cells };\n if (!isNullOrUndefined(templateRowHeight)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n excelRow.height = templateRowHeight;\n }\n if (this.groupedColLength && this.groupedColLength < 8 && (level + 1) > 0) {\n excelRow.grouping = { outlineLevel: (level + 1), isCollapsed: true };\n excelRows.push(excelRow);\n }\n else {\n excelRows.push(excelRow);\n }\n if ((row.isExpand || this.isChild) && !isNullOrUndefined(gObj.childGrid)) {\n gObj.isPrinting = true;\n var exportType = (!isNullOrUndefined(excelExportProperties) && excelExportProperties.exportType) ?\n excelExportProperties.exportType : 'AllPages';\n var returnVal = this.helper.createChildGrid(gObj, row, exportType, this.gridPool);\n var childGridObj = returnVal.childGrid;\n var element = returnVal.element;\n childGridObj.actionFailure =\n helper.failureHandler(this.gridPool, childGridObj, this.globalResolve);\n childGridObj.childGridLevel = gObj.childGridLevel + 1;\n var args = { childGrid: childGridObj, row: row, exportProperties: excelExportProperties };\n this.parent.trigger(events.exportDetailDataBound, args);\n childGridObj.beforeDataBound = this.childGridCell(excelRow, childGridObj, excelExportProperties, row);\n childGridObj.appendTo(element);\n }\n gObj.notify(events.exportRowDataBound, { rowObj: row, type: 'excel', excelRows: excelRows });\n }\n return startIndex;\n };\n ExcelExport.prototype.setImage = function (args, idx) {\n if (isNullOrUndefined(this.sheet.images)) {\n this.sheet.images = [];\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var excelImage = {\n image: args.image.base64, row: this.rowLength, column: idx,\n lastRow: this.rowLength, lastColumn: idx\n };\n if (args.image.width && args.image.height) {\n excelImage.width = args.image.width;\n excelImage.height = args.image.height;\n }\n this.sheet.images.push(excelImage);\n this.columns[idx - 1].width = args.image.width || this.columns[idx - 1].width;\n return args.image.height || 50;\n };\n ExcelExport.prototype.childGridCell = function (excelRow, childGridObj, excelExportProps, gRow) {\n var _this = this;\n return function (result) {\n childGridObj.beforeDataBound = null;\n result.cancel = true;\n if (result.result.length === 0) {\n result.result = [''];\n }\n excelRow.childRows = _this.processGridExport(childGridObj, excelExportProps, result);\n var intent = _this.parent.groupSettings.columns.length;\n var rows = excelRow.childRows;\n for (var i = 0; i < rows.length; i++) {\n rows[parseInt(i.toString(), 10)].grouping = { outlineLevel: intent + childGridObj\n .childGridLevel, isCollapsed: !gRow.isExpand, isHidden: !gRow.isExpand };\n }\n childGridObj.destroy();\n detach(childGridObj.element);\n _this.gridPool[childGridObj.id] = true;\n _this.helper.checkAndExport(_this.gridPool, _this.globalResolve);\n return excelRow;\n };\n };\n ExcelExport.prototype.processAggregates = function (gObj, rec, excelRows, currentViewRecords, indent, byGroup) {\n var summaryModel = new SummaryModelGenerator(gObj);\n var columns = summaryModel.getColumns();\n columns = columns.filter(function (col) { return isNullOrUndefined(col.commands) && col.type !== 'checkbox'; });\n if (gObj.aggregates.length && this.parent !== gObj) {\n gObj.aggregateModule.prepareSummaryInfo();\n }\n var data = undefined;\n if (!isNullOrUndefined(currentViewRecords)) {\n data = currentViewRecords;\n }\n else {\n data = rec;\n }\n if (indent === undefined) {\n indent = 0;\n }\n if (gObj.groupSettings.columns.length > 0 && byGroup) {\n var groupSummaryModel = new GroupSummaryModelGenerator(gObj);\n var groupSummaryRows = groupSummaryModel.generateRows(data, { level: data.level });\n if (groupSummaryRows.length > 0) {\n excelRows = this.fillAggregates(gObj, groupSummaryRows, indent, excelRows);\n }\n }\n else {\n indent = gObj.groupSettings.columns.length > 0 && !byGroup ? gObj.groupSettings.columns.length : indent;\n var sRows = summaryModel.generateRows(data, rec.aggregates, null, null, columns);\n if (sRows.length > 0 && !byGroup) {\n indent = gObj.groupSettings.columns.length ? indent - 1 : indent;\n excelRows = this.fillAggregates(gObj, sRows, indent, excelRows);\n }\n }\n return excelRows;\n };\n ExcelExport.prototype.fillAggregates = function (gObj, rows, indent, excelRows, customIndex) {\n for (var _i = 0, rows_2 = rows; _i < rows_2.length; _i++) {\n var row = rows_2[_i];\n var cells = [];\n var isEmpty = true;\n var index = 0;\n for (var _a = 0, _b = row.cells; _a < _b.length; _a++) {\n var cell = _b[_a];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var eCell = {};\n if (cell.cellType === CellType.DetailFooterIntent) {\n continue;\n }\n if ((cell.visible || this.includeHiddenColumn)) {\n index++;\n if (cell.isDataCell) {\n isEmpty = false;\n var footerTemplate = !isNullOrUndefined(cell.column.footerTemplate);\n var groupFooterTemplate = !isNullOrUndefined(cell.column.groupFooterTemplate);\n var groupCaptionTemplate = !isNullOrUndefined(cell.column.groupCaptionTemplate);\n eCell.index = index + indent + gObj.childGridLevel;\n if (footerTemplate) {\n eCell.value = this.getAggreateValue(gObj, CellType.Summary, cell.column.footerTemplate, cell, row);\n }\n else if (groupFooterTemplate) {\n eCell.value = this.getAggreateValue(gObj, CellType.GroupSummary, cell.column.groupFooterTemplate, cell, row);\n }\n else if (groupCaptionTemplate) {\n eCell.value = this.getAggreateValue(gObj, CellType.CaptionSummary, cell.column.groupCaptionTemplate, cell, row);\n }\n else {\n for (var _c = 0, _d = Object.keys(row.data[cell.column.field]); _c < _d.length; _c++) {\n var key = _d[_c];\n if (key === cell.column.type) {\n if (!isNullOrUndefined(row.data[cell.column.field].Sum)) {\n eCell.value = row.data[cell.column.field][cell.column.field + \" - sum\"];\n }\n else if (!isNullOrUndefined(row.data[cell.column.field].Average)) {\n eCell.value = row.data[cell.column.field][cell.column.field + \" - average\"];\n }\n else if (!isNullOrUndefined(row.data[cell.column.field].Max)) {\n eCell.value = row.data[cell.column.field][cell.column.field + \" - max\"];\n }\n else if (!isNullOrUndefined(row.data[cell.column.field].Min)) {\n eCell.value = row.data[cell.column.field][cell.column.field + \" - min\"];\n }\n else if (!isNullOrUndefined(row.data[cell.column.field].Count)) {\n eCell.value = row.data[cell.column.field][cell.column.field + \" - count\"];\n }\n else if (!isNullOrUndefined(row.data[cell.column.field].TrueCount)) {\n eCell.value = row.data[cell.column.field][cell.column.field + \" - truecount\"];\n }\n else if (!isNullOrUndefined(row.data[cell.column.field].FalseCount)) {\n eCell.value = row.data[cell.column.field][cell.column.field + \" - falsecount\"];\n }\n else if (!isNullOrUndefined(row.data[cell.column.field].Custom)) {\n eCell.value = row.data[cell.column.field].Custom;\n }\n }\n }\n }\n eCell.style = this.getCaptionThemeStyle(this.theme); //{ name: gObj.element.id + 'column' + index };\n this.aggregateStyle(cell.column, eCell.style, cell.column.field);\n var gridCellStyle = cell.attributes.style;\n if (gridCellStyle.textAlign) {\n eCell.style.hAlign = gridCellStyle.textAlign.toLowerCase();\n }\n var args = {\n row: row,\n type: footerTemplate ? 'Footer' : groupFooterTemplate ? 'GroupFooter' : 'GroupCaption',\n style: eCell\n };\n this.parent.trigger(events.excelAggregateQueryCellInfo, args);\n cells.push(eCell);\n }\n else {\n if (customIndex === undefined) {\n eCell.index = index + indent + gObj.childGridLevel;\n eCell.style = this.getCaptionThemeStyle(this.theme); //{ name: gObj.element.id + 'column' + index };\n cells.push(eCell);\n }\n }\n }\n }\n if (!isNullOrUndefined(customIndex)) {\n excelRows.push({ index: customIndex, cells: cells });\n }\n else {\n var row_1 = {};\n var dummyOutlineLevel = 'outlineLevel';\n var dummyGrouping = 'grouping';\n if (this.groupedColLength < 8 && this.groupedColLength > 0 && !(gObj.groupSettings.enableLazyLoading && isNullOrUndefined(excelRows[excelRows.length - 1][\"\" + dummyGrouping]))) {\n var level = excelRows[excelRows.length - 1][\"\" + dummyGrouping][\"\" + dummyOutlineLevel];\n var grouping = { outlineLevel: level, isCollapsed: true };\n row_1 = { index: this.rowLength++, cells: cells, grouping: grouping };\n }\n else {\n row_1 = { index: this.rowLength++, cells: cells };\n }\n if (!isEmpty) {\n excelRows.push(row_1);\n }\n }\n }\n return excelRows;\n };\n ExcelExport.prototype.aggregateStyle = function (col, style, field) {\n var column = this.parent.getColumnByField(field);\n if (typeof col.format === 'object') {\n var format = col.format;\n style.numberFormat = !isNullOrUndefined(format.format) ? format.format : format.skeleton;\n if (!isNullOrUndefined(format.type)) {\n style.type = format.type.toLowerCase();\n }\n }\n else {\n style.numberFormat = col.format;\n }\n if (!isNullOrUndefined(column) && isNullOrUndefined(style.type)) {\n style.type = column.type.toLowerCase();\n }\n };\n ExcelExport.prototype.getAggreateValue = function (gObj, cellType, template, cell, row) {\n var templateFn = {};\n templateFn[getEnumValue(CellType, cell.cellType)] = compile(template);\n var txt;\n var data = row.data[cell.column.field ? cell.column.field : cell.column.columnName];\n if (this.parent.isReact || this.parent.isVue || this.parent.isAngular) {\n if (isNullOrUndefined(cell.column.customAggregate)) {\n if (!isNullOrUndefined(cell.column.footerTemplate)) {\n txt = this.getAggregateTemplate(this.footerTemplates, gObj.getFooterContentTable(), data, cell);\n }\n else {\n if (cell.column.groupFooterTemplate) {\n txt = this.getAggregateTemplate(this.grpFooterTemplates, gObj.getContentTable(), data, cell);\n }\n else {\n this.capTemplate = isNullOrUndefined(this.capTemplate) ?\n gObj.getContentTable().querySelector('.e-groupcaptionrow')\n .querySelector('.e-summarycell.e-templatecell').innerText.split(data[(cell.column.type)])[0]\n : this.capTemplate;\n txt = this.capTemplate + data[(cell.column.type)];\n }\n }\n }\n return !isNullOrUndefined(txt) ? (txt) : '';\n }\n else {\n txt = (templateFn[getEnumValue(CellType, cell.cellType)](data));\n }\n return !isNullOrUndefined(txt[0]) ? txt[0].textContent : '';\n };\n ExcelExport.prototype.getAggregateTemplate = function (template, contentRows, data, cell) {\n var aggClassName = cell.column.groupFooterTemplate ? 'e-groupfooterrow' : 'e-summaryrow';\n if (!template.length) {\n this.totalAggregates = 0;\n this.aggIndex = 0;\n for (var i = 0; i < contentRows.querySelectorAll('tr').length; i++) {\n if (contentRows.querySelectorAll('tr')[parseInt(i.toString(), 10)].classList.contains(aggClassName)) {\n this.totalAggregates++;\n if (contentRows.querySelectorAll('tr')[parseInt(i.toString(), 10) + 1] &&\n contentRows.querySelectorAll('tr')[parseInt(i.toString(), 10) + 1].classList.contains('e-groupcaptionrow')) {\n break;\n }\n }\n }\n }\n if (template.length < this.totalAggregates) {\n template.push(contentRows.querySelectorAll('.' + aggClassName)[template.length]\n .querySelector('.e-summarycell.e-templatecell').innerText.split(data[(cell.column.type)])[0]);\n }\n if (this.parent.groupSettings.enableLazyLoading && cell.column.groupFooterTemplate && this.totalAggregates === 0) {\n this.totalAggregates = template.length;\n }\n this.aggIndex++;\n var aggTemplate = template[this.aggIndex - 1] + data[(cell.column.type)];\n if (this.aggIndex === this.totalAggregates) {\n this.aggIndex = 0;\n }\n return aggTemplate;\n };\n ExcelExport.prototype.mergeOptions = function (JSON1, JSON2) {\n var result = {};\n var attrname = Object.keys(JSON1);\n for (var index = 0; index < attrname.length; index++) {\n if (attrname[parseInt(index.toString(), 10)] !== 'name') {\n result[attrname[parseInt(index.toString(), 10)]] = JSON1[attrname[parseInt(index.toString(), 10)]];\n }\n }\n attrname = Object.keys(JSON2);\n for (var index = 0; index < attrname.length; index++) {\n if (attrname[parseInt(index.toString(), 10)] !== 'name') {\n result[attrname[parseInt(index.toString(), 10)]] = JSON2[attrname[parseInt(index.toString(), 10)]];\n }\n }\n return result;\n };\n ExcelExport.prototype.getColumnStyle = function (gObj, columnIndex) {\n var index = 0;\n for (var _i = 0, _a = this.styles; _i < _a.length; _i++) {\n var style = _a[_i];\n if (style.name === gObj.element.id + 'column' + columnIndex) {\n return index;\n }\n index++;\n }\n return undefined;\n };\n ExcelExport.prototype.headerRotation = function (args) {\n var degree = args.style.rotation;\n if (degree <= 90 && degree >= 0) {\n args.style.hAlign = 'Left';\n }\n else if (degree > 90 && degree <= 180) {\n args.style.hAlign = 'Right';\n }\n else {\n degree = 180;\n args.style.hAlign = 'Right';\n }\n args.style.rotation = degree;\n };\n ExcelExport.prototype.processHeaderContent = function (gObj, headerRow, indent, excelRows) {\n var rowIndex = 1;\n var gridRows = headerRow.rows;\n // Column collection with respect to the records in the grid\n var gridColumns = headerRow.columns;\n var spannedCells = [];\n if (indent > 0) {\n var index = 0;\n while (index !== indent) {\n this.columns.push({ index: index + 1, width: 30 });\n index++;\n }\n }\n for (var col = 0; col < gridColumns.length; col++) {\n this.parseStyles(gObj, gridColumns[parseInt(col.toString(), 10)], this.getRecordThemeStyle(this.theme), indent + col + 1);\n }\n var templateRowHeight;\n for (var row = 0; row < gridRows.length; row++) {\n var currentCellIndex = 1 + indent;\n var cells = [];\n for (var column = 0; column < gridRows[parseInt(row.toString(), 10)].cells.length; column++) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var style = {};\n var cell = {};\n var gridCell = gridRows[parseInt(row.toString(), 10)].cells[parseInt(column.toString(), 10)];\n if (gridCell.cellType === CellType.HeaderIndent || gridCell.cellType === CellType.DetailHeader) {\n continue;\n }\n var result = { contains: true, index: 1 };\n while (result.contains) {\n result = this.getIndex(spannedCells, rowIndex, currentCellIndex);\n currentCellIndex = result.index;\n if (!result.contains) {\n cell.index = result.index + gObj.childGridLevel;\n break;\n }\n }\n if (!isNullOrUndefined(gridCell.rowSpan) && gridCell.rowSpan !== 1) {\n cell.rowSpan = gridCell.rowSpan;\n for (var i = rowIndex; i < gridCell.rowSpan + rowIndex; i++) {\n var spannedCell = { rowIndex: 0, columnIndex: 0 };\n spannedCell.rowIndex = i;\n spannedCell.columnIndex = currentCellIndex;\n spannedCells.push(spannedCell);\n }\n }\n if (!isNullOrUndefined(gridCell.colSpan) && gridCell.colSpan !== 1) {\n cell.colSpan = gridCell.colSpan;\n currentCellIndex = currentCellIndex + cell.colSpan - 1;\n }\n cell.value = gridCell.column.headerText;\n style = this.getHeaderThemeStyle(this.theme);\n if (!isNullOrUndefined(gridCell.column.textAlign)) {\n style.hAlign = gridCell.column.textAlign.toLowerCase();\n }\n if (!isNullOrUndefined(gridCell.column.headerTextAlign)) {\n style.hAlign = gridCell.column.headerTextAlign.toLowerCase();\n }\n var excelHeaderCellArgs = { cell: cell, gridCell: gridCell, style: style };\n gObj.trigger(events.excelHeaderQueryCellInfo, excelHeaderCellArgs);\n if (excelHeaderCellArgs.style.rotation) {\n this.headerRotation(excelHeaderCellArgs);\n }\n if (!isNullOrUndefined(excelHeaderCellArgs.image) && !isNullOrUndefined(excelHeaderCellArgs.image.base64)) {\n templateRowHeight = this.setImage(excelHeaderCellArgs, currentCellIndex);\n }\n if (!isNullOrUndefined(excelHeaderCellArgs.hyperLink)) {\n excelHeaderCellArgs.cell.hyperlink = { target: excelHeaderCellArgs.hyperLink.target };\n cell.value = excelHeaderCellArgs.hyperLink.displayText || cell.value;\n }\n cell.style = excelHeaderCellArgs.style;\n cells.push(cell);\n currentCellIndex++;\n }\n var excelRow = { index: this.rowLength++, cells: cells };\n if (!isNullOrUndefined(templateRowHeight)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n excelRow.height = templateRowHeight;\n }\n excelRows.push(excelRow);\n }\n return excelRows;\n };\n ExcelExport.prototype.getHeaderThemeStyle = function (theme) {\n var style = {};\n style.fontSize = 12;\n style.borders = { color: '#E0E0E0' };\n style.bold = true;\n if (!isNullOrUndefined(theme) && !isNullOrUndefined(theme.header)) {\n style = this.updateThemeStyle(theme.header, style);\n }\n return style;\n };\n ExcelExport.prototype.updateThemeStyle = function (themestyle, style) {\n return extend(style, themestyle);\n };\n ExcelExport.prototype.getCaptionThemeStyle = function (theme) {\n var style = {};\n style.fontSize = 13;\n style.backColor = '#F6F6F6';\n if (!isNullOrUndefined(theme) && !isNullOrUndefined(theme.caption)) {\n style = this.updateThemeStyle(theme.caption, style);\n }\n return style;\n };\n ExcelExport.prototype.getRecordThemeStyle = function (theme) {\n var style = {};\n style.fontSize = 13;\n style.borders = { color: '#E0E0E0' };\n if (!isNullOrUndefined(theme) && !isNullOrUndefined(theme.record)) {\n style = this.updateThemeStyle(theme.record, style);\n }\n return style;\n };\n ExcelExport.prototype.processExcelHeader = function (header) {\n if (!isNullOrUndefined(header.rows) && (this.expType === 'NewSheet' || this.rowLength === 1)) {\n var noRows = void 0;\n if (header.headerRows === undefined) {\n this.rowLength = header.rows.length;\n }\n else {\n this.rowLength = header.headerRows;\n }\n if (this.rowLength < header.rows.length) {\n noRows = this.rowLength;\n }\n else {\n noRows = header.rows.length;\n }\n this.rowLength++;\n for (var row = 0; row < noRows; row++) {\n var json = header.rows[parseInt(row.toString(), 10)];\n //Row index\n if (!(json.index !== null && !isNullOrUndefined(json.index))) {\n json.index = (row + 1);\n }\n this.updatedCellIndex(json);\n }\n }\n };\n ExcelExport.prototype.updatedCellIndex = function (json) {\n var cellsLength = json.cells.length;\n for (var cellId = 0; cellId < cellsLength; cellId++) {\n var jsonCell = json.cells[parseInt(cellId.toString(), 10)];\n //cell index\n if (!(jsonCell.index !== null && !isNullOrUndefined(jsonCell.index))) {\n jsonCell.index = (cellId + 1);\n }\n }\n this.rows.push(json);\n };\n ExcelExport.prototype.processExcelFooter = function (footer) {\n if (!isNullOrUndefined(footer.rows)) {\n var noRows = void 0;\n if (footer.footerRows === undefined) {\n this.rowLength += footer.rows.length;\n }\n else {\n if (footer.footerRows > footer.rows.length) {\n this.rowLength += (footer.footerRows - footer.rows.length);\n noRows = footer.rows.length;\n }\n else {\n noRows = footer.footerRows;\n }\n }\n for (var row = 0; row < noRows; row++) {\n var json = footer.rows[parseInt(row.toString(), 10)];\n //Row index\n if (json.index === null || json.index === undefined) {\n json.index = this.rowLength++;\n }\n else {\n json.index += this.rowLength;\n }\n this.updatedCellIndex(json);\n }\n }\n };\n ExcelExport.prototype.getIndex = function (spannedCells, rowIndex, columnIndex) {\n for (var _i = 0, spannedCells_1 = spannedCells; _i < spannedCells_1.length; _i++) {\n var spannedCell = spannedCells_1[_i];\n if ((spannedCell.rowIndex === rowIndex) && (spannedCell.columnIndex === columnIndex)) {\n columnIndex = columnIndex + 1;\n return { contains: true, index: columnIndex };\n }\n }\n return { contains: false, index: columnIndex };\n };\n ExcelExport.prototype.parseStyles = function (gObj, col, style, index) {\n if (!isNullOrUndefined(col.format)) {\n if (typeof col.format === 'object') {\n var format = col.format;\n style.numberFormat = !isNullOrUndefined(format.format) ? format.format : format.skeleton;\n if (!isNullOrUndefined(format.type)) {\n style.type = format.type.toLowerCase();\n }\n }\n else {\n style.numberFormat = col.format;\n style.type = col.type;\n }\n }\n if (!isNullOrUndefined(col.textAlign)) {\n style.hAlign = col.textAlign.toLowerCase();\n }\n if (Object.keys(style).length > 0) {\n style.name = gObj.element.id + 'column' + index;\n this.styles.push(style);\n }\n if (!isNullOrUndefined(col.width) && col.width !== 'auto') {\n this.columns.push({ index: index + gObj.childGridLevel, width: typeof col.width === 'number' ?\n col.width : this.helper.getConvertedWidth(col.width) });\n }\n };\n ExcelExport.prototype.destroy = function () {\n //destroy for exporting\n };\n return ExcelExport;\n}());\nexport { ExcelExport };\n","/**\n * Used to `write a string` into output file.\n * @private\n */\nvar PdfWriter = /** @class */ (function () {\n /**\n * Initialize an instance of `PdfWriter` class.\n * @private\n */\n function PdfWriter(stream) {\n this.streamWriter = stream;\n }\n Object.defineProperty(PdfWriter.prototype, \"document\", {\n //properties\n /**\n * Gets and Sets the `document`.\n * @private\n */\n get: function () {\n return this.pdfDocument;\n },\n set: function (value) {\n this.pdfDocument = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfWriter.prototype, \"position\", {\n /**\n * Gets the `position`.\n * @private\n */\n get: function () {\n return this.streamWriter.buffer.size;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfWriter.prototype, \"length\", {\n /**\n * Gets the `length` of the stream'.\n * @private\n */\n get: function () {\n return this.streamWriter.buffer.size;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfWriter.prototype, \"stream\", {\n /**\n * Gets the `stream`.\n * @private\n */\n get: function () {\n var result = this.streamWriter;\n return result;\n },\n enumerable: true,\n configurable: true\n });\n //public Methods\n /**\n * `Writes the specified data`.\n * @private\n */\n PdfWriter.prototype.write = function (overload) {\n var data = [];\n var tempOverload = overload;\n this.streamWriter.write(tempOverload);\n };\n return PdfWriter;\n}());\nexport { PdfWriter };\n","/**\n * @private\n * @hidden\n */\nexport function defaultToString(item) {\n // if (item === null) {\n // return 'COLLECTION_NULL';\n // } else if (typeof item === 'undefined') {\n // return 'COLLECTION_UNDEFINED';\n // } else if (Object.prototype.toString.call(item) === '[object String]') {\n if (Object.prototype.toString.call(item) === '[object String]') {\n return '$s' + item;\n }\n else {\n return '$o' + item.toString();\n }\n}\n","/**\n * Dictionary.ts class for EJ2-PDF\n * @private\n * @hidden\n */\nimport { defaultToString } from './utils';\n/**\n * @private\n * @hidden\n */\nvar Dictionary = /** @class */ (function () {\n /**\n * @private\n * @hidden\n */\n function Dictionary(toStringFunction) {\n this.table = {};\n this.nElements = 0;\n this.toStr = toStringFunction || defaultToString;\n }\n /**\n * @private\n * @hidden\n */\n Dictionary.prototype.getValue = function (key) {\n var pair = this.table['$' + this.toStr(key)];\n if (typeof pair === 'undefined') {\n return undefined;\n }\n return pair.value;\n };\n /**\n * @private\n * @hidden\n */\n Dictionary.prototype.setValue = function (key, value) {\n // if (typeof key === 'undefined' || typeof value === 'undefined') {\n // return undefined;\n // }\n var ret;\n var k = '$' + this.toStr(key);\n var previousElement = this.table[k];\n // if (typeof previousElement === 'undefined') {\n this.nElements++;\n ret = undefined;\n // }\n this.table[k] = {\n key: key,\n value: value\n };\n return ret;\n };\n /**\n * @private\n * @hidden\n */\n Dictionary.prototype.remove = function (key) {\n var k = '$' + this.toStr(key);\n var previousElement = this.table[k];\n // if (typeof previousElement !== 'undefined') {\n delete this.table[k];\n this.nElements--;\n return previousElement.value;\n // }\n // return undefined;\n };\n /**\n * @private\n * @hidden\n */\n Dictionary.prototype.keys = function () {\n var keysArray = [];\n var namesOfKeys = Object.keys(this.table);\n for (var index1 = 0; index1 < namesOfKeys.length; index1++) {\n // if (Object.prototype.hasOwnProperty.call(this.table, namesOfKeys[index1])) {\n var pair1 = this.table[namesOfKeys[index1]];\n keysArray.push(pair1.key);\n // }\n }\n return keysArray;\n };\n /**\n * @private\n * @hidden\n */\n Dictionary.prototype.values = function () {\n var valuesArray = [];\n var namesOfValues = Object.keys(this.table);\n for (var index2 = 0; index2 < namesOfValues.length; index2++) {\n // if (Object.prototype.hasOwnProperty.call(this.table, namesOfValues[index2])) {\n var pair2 = this.table[namesOfValues[index2]];\n valuesArray.push(pair2.value);\n // }\n }\n return valuesArray;\n };\n /**\n * @private\n * @hidden\n */\n Dictionary.prototype.containsKey = function (key) {\n var retutnValue = true;\n if (typeof this.getValue(key) === 'undefined') {\n retutnValue = true;\n }\n else {\n retutnValue = false;\n }\n return !retutnValue;\n };\n /**\n * @private\n * @hidden\n */\n Dictionary.prototype.clear = function () {\n this.table = {};\n this.nElements = 0;\n };\n /**\n * @private\n * @hidden\n */\n Dictionary.prototype.size = function () {\n return this.nElements;\n };\n return Dictionary;\n}()); // End of dictionary\nexport { Dictionary };\n","/**\n * public Enum for `CompositeFontType`.\n * @private\n */\nexport var ObjectStatus;\n(function (ObjectStatus) {\n /**\n * Specifies the type of `None`.\n * @private\n */\n ObjectStatus[ObjectStatus[\"None\"] = 0] = \"None\";\n /**\n * Specifies the type of `Registered`.\n * @private\n */\n ObjectStatus[ObjectStatus[\"Registered\"] = 1] = \"Registered\";\n})(ObjectStatus || (ObjectStatus = {}));\n","/**\n * PdfMainObjectCollection.ts class for EJ2-PDF\n */\nimport { Dictionary } from './../collections/dictionary';\nimport { ObjectStatus } from './enum';\n/**\n * The collection of all `objects` within a PDF document.\n * @private\n */\nvar PdfMainObjectCollection = /** @class */ (function () {\n function PdfMainObjectCollection() {\n //Fields\n /**\n * The collection of the `indirect objects`.\n * @default []\n * @private\n */\n this.objectCollections = [];\n /**\n * The collection of the `Indirect objects`.\n * @default new Dictionary()\n * @private\n */\n this.mainObjectCollection = new Dictionary();\n /**\n * The collection of `primitive objects`.\n * @private\n */\n this.primitiveObjectCollection = new Dictionary();\n }\n Object.defineProperty(PdfMainObjectCollection.prototype, \"count\", {\n //Properties\n /**\n * Gets the `count`.\n * @private\n */\n get: function () {\n return this.objectCollections.length;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Gets the value of `ObjectInfo` from object collection.\n * @private\n */\n PdfMainObjectCollection.prototype.items = function (index) {\n return this.objectCollections[index];\n };\n Object.defineProperty(PdfMainObjectCollection.prototype, \"outIsNew\", {\n //Methods\n /**\n * Specifies the value of `IsNew`.\n * @private\n */\n get: function () {\n return this.isNew;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * `Adds` the specified element.\n * @private\n */\n PdfMainObjectCollection.prototype.add = function (element) {\n var objInfo = new ObjectInfo(element);\n this.objectCollections.push(objInfo);\n if (!this.primitiveObjectCollection.containsKey(element)) {\n this.primitiveObjectCollection.setValue(element, this.objectCollections.length - 1);\n }\n element.position = this.index = this.objectCollections.length - 1;\n element.status = ObjectStatus.Registered;\n };\n /**\n * `Looks` through the collection for the object specified.\n * @private\n */\n PdfMainObjectCollection.prototype.lookFor = function (obj) {\n var index = -1;\n if (obj.position !== -1) {\n return obj.position;\n }\n if (this.primitiveObjectCollection.containsKey(obj) && this.count === this.primitiveObjectCollection.size()) {\n index = this.primitiveObjectCollection.getValue(obj);\n }\n else {\n for (var i = this.count - 1; i >= 0; i--) {\n var oi = this.objectCollections[i];\n if (oi.object === obj) {\n index = i;\n break;\n }\n }\n }\n return index;\n };\n /**\n * Gets the `reference of the object`.\n * @private\n */\n PdfMainObjectCollection.prototype.getReference = function (index, isNew) {\n this.index = this.lookFor(index);\n var reference;\n this.isNew = false;\n var oi = this.objectCollections[this.index];\n reference = oi.reference;\n var obj = { reference: reference, wasNew: isNew };\n return obj;\n };\n /**\n * Tries to set the `reference to the object`.\n * @private\n */\n PdfMainObjectCollection.prototype.trySetReference = function (obj, reference, found) {\n var result = true;\n found = true;\n this.index = this.lookFor(obj);\n var oi = this.objectCollections[this.index];\n oi.setReference(reference);\n return result;\n };\n PdfMainObjectCollection.prototype.destroy = function () {\n for (var _i = 0, _a = this.objectCollections; _i < _a.length; _i++) {\n var obj = _a[_i];\n if (obj !== undefined) {\n obj.pdfObject.position = -1;\n obj.pdfObject.isSaving = undefined;\n obj.pdfObject.objectCollectionIndex = undefined;\n obj.pdfObject.position = undefined;\n }\n }\n this.objectCollections = [];\n this.mainObjectCollection = new Dictionary();\n this.primitiveObjectCollection = new Dictionary();\n };\n return PdfMainObjectCollection;\n}());\nexport { PdfMainObjectCollection };\nvar ObjectInfo = /** @class */ (function () {\n function ObjectInfo(obj, reference) {\n this.pdfObject = obj;\n this.pdfReference = reference;\n }\n Object.defineProperty(ObjectInfo.prototype, \"object\", {\n //Properties\n /**\n * Gets the `object`.\n * @private\n */\n get: function () {\n return this.pdfObject;\n },\n set: function (value) {\n this.pdfObject = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ObjectInfo.prototype, \"reference\", {\n /**\n * Gets the `reference`.\n * @private\n */\n get: function () {\n return this.pdfReference;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Sets the `reference`.\n * @private\n */\n ObjectInfo.prototype.setReference = function (reference) {\n this.pdfReference = reference;\n };\n return ObjectInfo;\n}());\nexport { ObjectInfo };\n","/**\n * `PdfString` class is used to perform string related primitive operations.\n * @private\n */\nexport var InternalEnum;\n(function (InternalEnum) {\n //Internals\n /**\n * public Enum for `ForceEncoding`.\n * @private\n */\n var ForceEncoding;\n (function (ForceEncoding) {\n /**\n * Specifies the type of `None`.\n * @private\n */\n ForceEncoding[ForceEncoding[\"None\"] = 0] = \"None\";\n /**\n * Specifies the type of `Ascii`.\n * @private\n */\n ForceEncoding[ForceEncoding[\"Ascii\"] = 1] = \"Ascii\";\n /**\n * Specifies the type of `Unicode`.\n * @private\n */\n ForceEncoding[ForceEncoding[\"Unicode\"] = 2] = \"Unicode\";\n })(ForceEncoding = InternalEnum.ForceEncoding || (InternalEnum.ForceEncoding = {}));\n /**\n * public Enum for `SourceType`.\n * @private\n */\n var SourceType;\n (function (SourceType) {\n /**\n * Specifies the type of `StringValue`.\n * @private\n */\n SourceType[SourceType[\"StringValue\"] = 0] = \"StringValue\";\n /**\n * Specifies the type of `ByteBuffer`.\n * @private\n */\n SourceType[SourceType[\"ByteBuffer\"] = 1] = \"ByteBuffer\";\n })(SourceType || (SourceType = {}));\n})(InternalEnum || (InternalEnum = {}));\nvar PdfString = /** @class */ (function () {\n function PdfString(value) {\n /**\n * Value indicating whether the string was converted to hex.\n * @default false\n * @private\n */\n this.bHex = false;\n /**\n * Internal variable to store the `position`.\n * @default -1\n * @private\n */\n this.position1 = -1;\n /**\n * Internal variable to hold `cloned object`.\n * @default null\n * @private\n */\n this.clonedObject1 = null;\n /**\n * `Shows` if the data of the stream was decrypted.\n * @default false\n * @private\n */\n this.bDecrypted = false;\n /**\n * Shows if the data of the stream `was decrypted`.\n * @default false\n * @private\n */\n this.isParentDecrypted = false;\n /**\n * Gets a value indicating whether the object is `packed or not`.\n * @default false\n * @private\n */\n this.isPacked = false;\n /**\n * @hidden\n * @private\n */\n this.isFormField = false;\n /**\n * @hidden\n * @private\n */\n this.isColorSpace = false;\n /**\n * @hidden\n * @private\n */\n this.isHexString = true;\n if (typeof value === 'undefined') {\n this.bHex = false;\n }\n else {\n if (!(value.length > 0 && value[0] === '0xfeff')) {\n this.stringValue = value;\n this.data = [];\n for (var i = 0; i < value.length; ++i) {\n this.data.push(value.charCodeAt(i));\n }\n }\n }\n }\n Object.defineProperty(PdfString.prototype, \"hex\", {\n //Property\n /**\n * Gets a value indicating whether string is in `hex`.\n * @private\n */\n get: function () {\n return this.bHex;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfString.prototype, \"value\", {\n /**\n * Gets or sets string `value` of the object.\n * @private\n */\n get: function () {\n return this.stringValue;\n },\n set: function (value) {\n this.stringValue = value;\n this.data = null;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfString.prototype, \"status\", {\n /**\n * Gets or sets the `Status` of the specified object.\n * @private\n */\n get: function () {\n return this.status1;\n },\n set: function (value) {\n this.status1 = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfString.prototype, \"isSaving\", {\n /**\n * Gets or sets a value indicating whether this document `is saving` or not.\n * @private\n */\n get: function () {\n return this.isSaving1;\n },\n set: function (value) {\n this.isSaving1 = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfString.prototype, \"objectCollectionIndex\", {\n /**\n * Gets or sets the `index` value of the specified object.\n * @private\n */\n get: function () {\n return this.index1;\n },\n set: function (value) {\n this.index1 = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfString.prototype, \"clonedObject\", {\n /**\n * Returns `cloned object`.\n * @private\n */\n get: function () {\n return this.clonedObject1;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfString.prototype, \"position\", {\n /**\n * Gets or sets the `position` of the object.\n * @private\n */\n get: function () {\n return this.position1;\n },\n set: function (value) {\n this.position1 = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfString.prototype, \"CrossTable\", {\n /**\n * Returns `PdfCrossTable` associated with the object.\n * @private\n */\n get: function () {\n return this.crossTable;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfString.prototype, \"converted\", {\n /**\n * Gets a value indicating whether to check if the value has unicode characters.\n * @private\n */\n get: function () {\n return this.bConverted;\n },\n /**\n * sets a value indicating whether to check if the value has unicode characters.\n * @private\n */\n set: function (value) {\n this.bConverted = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfString.prototype, \"encode\", {\n /**\n * Gets value indicating whether we should convert data to Unicode.\n */\n get: function () {\n return this.bForceEncoding;\n },\n set: function (value) {\n this.bForceEncoding = value;\n },\n enumerable: true,\n configurable: true\n });\n //Methods\n /**\n * Converts `bytes to string using hex format` for representing string.\n * @private\n */\n PdfString.bytesToHex = function (bytes) {\n if (bytes == null) {\n return '';\n }\n var builder = '';\n return builder;\n };\n /**\n * `Saves` the object using the specified writer.\n * @private\n */\n PdfString.prototype.save = function (writer) {\n if (writer === null) {\n throw new Error('ArgumentNullException : writer');\n }\n if (this.encode !== undefined && this.encode === InternalEnum.ForceEncoding.Ascii) {\n writer.write(this.pdfEncode());\n }\n else {\n writer.write(PdfString.stringMark[0] + this.value + PdfString.stringMark[1]);\n }\n };\n PdfString.prototype.pdfEncode = function () {\n var result = '';\n if (this.encode !== undefined && this.encode === InternalEnum.ForceEncoding.Ascii) {\n var data = this.escapeSymbols(this.value);\n for (var i = 0; i < data.length; i++) {\n result += String.fromCharCode(data[i]);\n }\n result = PdfString.stringMark[0] + result + PdfString.stringMark[1];\n }\n else {\n result = this.value;\n }\n return result;\n };\n PdfString.prototype.escapeSymbols = function (value) {\n var data = [];\n for (var i = 0; i < value.length; i++) {\n var currentData = value.charCodeAt(i);\n switch (currentData) {\n case 40:\n case 41:\n data.push(92);\n data.push(currentData);\n break;\n case 13:\n data.push(92);\n data.push(114);\n break;\n case 92:\n data.push(92);\n data.push(currentData);\n break;\n default:\n data.push(currentData);\n break;\n }\n }\n return data;\n };\n /**\n * Creates a `copy of PdfString`.\n * @private\n */\n PdfString.prototype.clone = function (crossTable) {\n if (this.clonedObject1 !== null && this.clonedObject1.CrossTable === crossTable) {\n return this.clonedObject1;\n }\n else {\n this.clonedObject1 = null;\n }\n var newString = new PdfString(this.stringValue);\n newString.bHex = this.bHex;\n newString.crossTable = crossTable;\n newString.isColorSpace = this.isColorSpace;\n this.clonedObject1 = newString;\n return newString;\n };\n /**\n * Converts string to array of unicode symbols.\n */\n PdfString.toUnicodeArray = function (value, bAddPrefix) {\n if (value == null) {\n throw new Error('Argument Null Exception : value');\n }\n var startIndex = 0;\n var output = [];\n for (var i = 0; i < value.length; i++) {\n var code = value.charCodeAt(i);\n output.push(code / 256 >>> 0);\n output.push(code & 0xff);\n }\n return output;\n };\n /**\n * Converts byte data to string.\n */\n PdfString.byteToString = function (data) {\n if (data == null) {\n throw new Error('Argument Null Exception : stream');\n }\n var result = '';\n for (var i = 0; i < data.length; ++i) {\n result += String.fromCharCode(data[i]);\n }\n return result;\n };\n //constants = ;\n /**\n * `General markers` for string.\n * @private\n */\n PdfString.stringMark = '()';\n /**\n * `Hex markers` for string.\n * @private\n */\n PdfString.hexStringMark = '<>';\n /**\n * Format of password data.\n * @private\n */\n PdfString.hexFormatPattern = '{0:X2}';\n return PdfString;\n}());\nexport { PdfString };\n","import { Encoding, validateNullOrUndefined } from './encoding';\nimport { Save } from './save';\n/**\n * StreamWriter class contains the implementation for writing characters to a file in a particular encoding\n * ```typescript\n * let writer = new StreamWriter();\n * writer.write('Hello World');\n * writer.save('Sample.txt');\n * writer.dispose();\n * ```\n */\nvar StreamWriter = /** @class */ (function () {\n /**\n * Initializes a new instance of the StreamWriter class by using the specified encoding.\n * @param {Encoding} encoding?- The character encoding to use.\n */\n function StreamWriter(encoding) {\n this.bufferBlob = new Blob(['']);\n this.bufferText = '';\n this.init(encoding);\n Save.isMicrosoftBrowser = !(!navigator.msSaveBlob);\n }\n Object.defineProperty(StreamWriter.prototype, \"buffer\", {\n /**\n * Gets the content written to the StreamWriter as Blob.\n * @returns Blob\n */\n get: function () {\n this.flush();\n return this.bufferBlob;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(StreamWriter.prototype, \"encoding\", {\n /**\n * Gets the encoding.\n * @returns Encoding\n */\n get: function () {\n return this.enc;\n },\n enumerable: true,\n configurable: true\n });\n StreamWriter.prototype.init = function (encoding) {\n if (encoding === null || encoding === undefined) {\n this.enc = new Encoding(false);\n this.enc.type = 'Utf8';\n }\n else {\n this.enc = encoding;\n this.setBomByte();\n }\n };\n /**\n * Private method to set Byte Order Mark(BOM) value based on EncodingType\n */\n StreamWriter.prototype.setBomByte = function () {\n if (this.encoding.includeBom) {\n switch (this.encoding.type) {\n case 'Unicode':\n var arrayUnicode = new ArrayBuffer(2);\n var uint8 = new Uint8Array(arrayUnicode);\n uint8[0] = 255;\n uint8[1] = 254;\n this.bufferBlob = new Blob([arrayUnicode]);\n break;\n case 'Utf8':\n var arrayUtf8 = new ArrayBuffer(3);\n var utf8 = new Uint8Array(arrayUtf8);\n utf8[0] = 239;\n utf8[1] = 187;\n utf8[2] = 191;\n this.bufferBlob = new Blob([arrayUtf8]);\n break;\n default:\n this.bufferBlob = new Blob(['']);\n break;\n }\n }\n };\n /**\n * Saves the file with specified name and sends the file to client browser\n * @param {string} fileName - The file name to save\n * @returns {void}\n */\n StreamWriter.prototype.save = function (fileName) {\n if (this.bufferText !== '') {\n this.flush();\n }\n Save.save(fileName, this.buffer);\n };\n /**\n * Writes the specified string.\n * @param {string} value - The string to write. If value is null or undefined, nothing is written.\n * @returns {void}\n */\n StreamWriter.prototype.write = function (value) {\n if (this.encoding === undefined) {\n throw new Error('Object Disposed Exception: current writer is disposed');\n }\n validateNullOrUndefined(value, 'string');\n this.bufferText += value;\n if (this.bufferText.length >= 10240) {\n this.flush();\n }\n };\n StreamWriter.prototype.flush = function () {\n if (this.bufferText === undefined || this.bufferText === null || this.bufferText.length === 0) {\n return;\n }\n var bufferArray = this.encoding.getBytes(this.bufferText, 0, this.bufferText.length);\n this.bufferText = '';\n this.bufferBlob = new Blob([this.bufferBlob, bufferArray]);\n };\n /**\n * Writes the specified string followed by a line terminator\n * @param {string} value - The string to write. If value is null or undefined, nothing is written\n * @returns {void}\n */\n StreamWriter.prototype.writeLine = function (value) {\n if (this.encoding === undefined) {\n throw new Error('Object Disposed Exception: current writer is disposed');\n }\n validateNullOrUndefined(value, 'string');\n this.bufferText = this.bufferText + value + '\\r\\n';\n if (this.bufferText.length >= 10240) {\n this.flush();\n }\n };\n /**\n * Releases the resources used by the StreamWriter\n * @returns {void}\n */\n StreamWriter.prototype.destroy = function () {\n this.bufferBlob = undefined;\n this.bufferText = undefined;\n if (this.enc instanceof Encoding) {\n this.enc.destroy();\n }\n this.enc = undefined;\n };\n return StreamWriter;\n}());\nexport { StreamWriter };\n","import { StreamWriter } from '@syncfusion/ej2-file-utils';\nimport { Encoding } from '@syncfusion/ej2-file-utils';\nimport { PdfDocument } from './pdf-document';\n/**\n * `PdfDocumentBase` class represent common properties of PdfDocument classes.\n * @private\n */\nvar PdfDocumentBase = /** @class */ (function () {\n function PdfDocumentBase(document) {\n /**\n * If the stream is copied, then it specifies true.\n * @private\n */\n this.isStreamCopied = false;\n if (document instanceof PdfDocument) {\n this.document = document;\n }\n }\n Object.defineProperty(PdfDocumentBase.prototype, \"pdfObjects\", {\n //Prpperties\n /**\n * Gets the `PDF objects` collection, which stores all objects and references to it..\n * @private\n */\n get: function () {\n return this.objects;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfDocumentBase.prototype, \"crossTable\", {\n /**\n * Gets the `cross-reference` table.\n * @private\n */\n get: function () {\n return this.pdfCrossTable;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfDocumentBase.prototype, \"currentSavingObj\", {\n /**\n * Gets or sets the current saving `object number`.\n * @private\n */\n get: function () {\n return this.currentSavingObject;\n },\n set: function (value) {\n this.currentSavingObject = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfDocumentBase.prototype, \"catalog\", {\n /**\n * Gets the PDF document `catalog`.\n * @private\n */\n get: function () {\n return this.pdfCatalog;\n },\n set: function (value) {\n this.pdfCatalog = value;\n },\n enumerable: true,\n configurable: true\n });\n //Public methods\n /**\n * Sets the `main object collection`.\n * @private\n */\n PdfDocumentBase.prototype.setMainObjectCollection = function (mainObjectCollection) {\n this.objects = mainObjectCollection;\n };\n /**\n * Sets the `cross table`.\n * @private\n */\n PdfDocumentBase.prototype.setCrossTable = function (cTable) {\n this.pdfCrossTable = cTable;\n };\n /**\n * Sets the `catalog`.\n * @private\n */\n PdfDocumentBase.prototype.setCatalog = function (catalog) {\n this.pdfCatalog = catalog;\n };\n PdfDocumentBase.prototype.save = function (filename) {\n var _this = this;\n var encoding = new Encoding(true);\n var SW = new StreamWriter(encoding);\n if (typeof filename === 'undefined') {\n var encoding_1 = new Encoding(true);\n var SW_1 = new StreamWriter(encoding_1);\n return new Promise(function (resolve, reject) {\n /* tslint:disable-next-line:no-any */\n var obj = {};\n obj.blobData = new Blob([_this.document.docSave(SW_1, true)], { type: 'application/pdf' });\n resolve(obj);\n });\n }\n else {\n this.document.docSave(SW, filename, true);\n }\n };\n /**\n * `Clone` of parent object - PdfDocument.\n * @private\n */\n PdfDocumentBase.prototype.clone = function () {\n return this.document;\n };\n return PdfDocumentBase;\n}());\nexport { PdfDocumentBase };\n","/**\n * `PdfName` class is used to perform name (element names) related primitive operations.\n * @private\n */\nvar PdfName = /** @class */ (function () {\n function PdfName(value) {\n /**\n * `Start symbol` of the name object.\n * @default /\n * @private\n */\n this.stringStartMark = '/';\n /**\n * `Value` of the element.\n * @private\n */\n this.internalValue = '';\n /**\n * Indicates if the object is currently in `saving state or not`.\n * @default false\n * @private\n */\n this.isSaving6 = false;\n /**\n * Internal variable to store the `position`.\n * @default -1\n * @private\n */\n this.position6 = -1;\n this.internalValue = this.normalizeValue(value);\n }\n Object.defineProperty(PdfName.prototype, \"status\", {\n //property\n /**\n * Gets or sets the `Status` of the specified object.\n * @private\n */\n get: function () {\n return this.status6;\n },\n set: function (value) {\n this.status6 = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfName.prototype, \"isSaving\", {\n /**\n * Gets or sets a value indicating whether this document `is saving` or not.\n * @private\n */\n get: function () {\n return this.isSaving6;\n },\n set: function (value) {\n this.isSaving6 = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfName.prototype, \"objectCollectionIndex\", {\n /**\n * Gets or sets the `index` value of the specified object.\n * @private\n */\n get: function () {\n return this.index6;\n },\n set: function (value) {\n this.index6 = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfName.prototype, \"position\", {\n /**\n * Gets or sets the `position` of the object.\n * @private\n */\n get: function () {\n return this.position6;\n },\n set: function (value) {\n this.position6 = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfName.prototype, \"clonedObject\", {\n /**\n * Returns `cloned object`.\n * @private\n */\n get: function () {\n return null;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfName.prototype, \"value\", {\n /**\n * Gets or sets the `value` of the object.\n * @private\n */\n get: function () {\n return this.internalValue;\n },\n set: function (value) {\n // if (value !== this.value) {\n var val = value;\n if (value !== null && value.length > 0) {\n // val = (value.substring(0, 1) === this.stringStartMark) ? value.substring(1) : value;\n val = value;\n this.internalValue = this.normalizeValue(val);\n }\n else {\n this.internalValue = val;\n }\n // }\n },\n enumerable: true,\n configurable: true\n });\n //public methods\n /**\n * `Saves` the name using the specified writer.\n * @private\n */\n PdfName.prototype.save = function (writer) {\n // if (writer === null) {\n // throw new Error('ArgumentNullException : writer');\n // }\n writer.write(this.toString());\n };\n /**\n * Gets `string` representation of the primitive.\n * @private\n */\n PdfName.prototype.toString = function () {\n return (this.stringStartMark + this.escapeString(this.value));\n };\n /**\n * Creates a `copy of PdfName`.\n * @private\n */\n PdfName.prototype.clone = function (crossTable) {\n var newName = new PdfName();\n newName.value = this.internalValue;\n return newName;\n };\n /**\n * Replace some characters with its `escape sequences`.\n * @private\n */\n PdfName.prototype.escapeString = function (stringValue) {\n // if (str === null) {\n // throw new Error('ArgumentNullException : str');\n // }\n // if (str === '') {\n // return str;\n // }\n var result = '';\n var len = 0;\n for (var i = 0, len_1 = stringValue.length; i < len_1; i++) {\n var ch = stringValue[i];\n var index = PdfName.delimiters.indexOf(ch);\n // switch (ch) {\n // case '\\r' :\n // result = result + '\\\\r';\n // break;\n // case '\\n' :\n // result = result + '\\n';\n // break;\n // case '(' :\n // case ')' :\n // case '\\\\' :\n // //result.Append( '\\\\' ).Append( ch );\n // result = result + ch;\n // break;\n // default :\n // result = result + ch;\n // break;\n // }\n result = result + ch;\n }\n return result;\n };\n //methiods\n /**\n * Replace a symbol with its code with the precedence of the `sharp sign`.\n * @private\n */\n PdfName.prototype.normalizeValue = function (value, c) {\n // if (typeof c === undefined) {\n // let str : string = value;\n // for (let i : number = 0; i < PdfName.replacements.length; i++) {\n // str = this.normalizeValue(str, c);\n // }\n // return str;\n // } else {\n var strFormat = '#{0:X}';\n //return value.replace(c.toString(),String.format(strFormat,c));\n return value;\n // }\n };\n /**\n * PDF `special characters`.\n * @private\n */\n PdfName.delimiters = '()<>[]{}/%}';\n /**\n * The symbols that are not allowed in PDF names and `should be replaced`.\n * @private\n */\n PdfName.replacements = [' ', '\\t', '\\n', '\\r'];\n return PdfName;\n}());\nexport { PdfName };\n","/**\n * PdfOperators.ts class for EJ2-PDF\n * Class of string PDF common operators.\n * @private\n */\nvar Operators = /** @class */ (function () {\n /**\n * Create an instance of `PdfOperator` class.\n * @private\n */\n function Operators() {\n /**\n * Specifies the value of `test`.\n * @private\n */\n this.forTest = 'test';\n this.forTest = Operators.obj;\n }\n /**\n * Specifies the value of `obj`.\n * @private\n */\n Operators.obj = 'obj';\n /**\n * Specifies the value of `endObj`.\n * @private\n */\n Operators.endObj = 'endobj';\n /**\n * Specifies the value of `R`.\n * @private\n */\n Operators.r = 'R';\n /**\n * Specifies the value of ` `.\n * @private\n */\n Operators.whiteSpace = ' ';\n /**\n * Specifies the value of `/`.\n * @private\n */\n Operators.slash = '/';\n /**\n * Specifies the value of `\\r\\n`.\n * @private\n */\n Operators.newLine = '\\r\\n';\n /**\n * Specifies the value of `stream`.\n * @private\n */\n Operators.stream = 'stream';\n /**\n * Specifies the value of `endStream`.\n * @private\n */\n Operators.endStream = 'endstream';\n /**\n * Specifies the value of `xref`.\n * @private\n */\n Operators.xref = 'xref';\n /**\n * Specifies the value of `f`.\n * @private\n */\n Operators.f = 'f';\n /**\n * Specifies the value of `n`.\n * @private\n */\n Operators.n = 'n';\n /**\n * Specifies the value of `trailer`.\n * @private\n */\n Operators.trailer = 'trailer';\n /**\n * Specifies the value of `startxref`.\n * @private\n */\n Operators.startxref = 'startxref';\n /**\n * Specifies the value of `eof`.\n * @private\n */\n Operators.eof = '%%EOF';\n /**\n * Specifies the value of `header`.\n * @private\n */\n Operators.header = '%PDF-1.5';\n /**\n * Specifies the value of `beginText`.\n * @private\n */\n Operators.beginText = 'BT';\n /**\n * Specifies the value of `endText`.\n * @private\n */\n Operators.endText = 'ET';\n /**\n * Specifies the value of `m`.\n * @private\n */\n Operators.beginPath = 'm';\n /**\n * Specifies the value of `l`.\n * @private\n */\n Operators.appendLineSegment = 'l';\n /**\n * Specifies the value of `S`.\n * @private\n */\n Operators.stroke = 'S';\n /**\n * Specifies the value of `f`.\n * @private\n */\n Operators.fill = 'f';\n /**\n * Specifies the value of `f*`.\n * @private\n */\n Operators.fillEvenOdd = 'f*';\n /**\n * Specifies the value of `B`.\n * @private\n */\n Operators.fillStroke = 'B';\n /**\n * Specifies the value of `B*`.\n * @private\n */\n Operators.fillStrokeEvenOdd = 'B*';\n /**\n * Specifies the value of `c`.\n * @private\n */\n Operators.appendbeziercurve = 'c';\n /**\n * Specifies the value of `re`.\n * @private\n */\n Operators.appendRectangle = 're';\n /**\n * Specifies the value of `q`.\n * @private\n */\n Operators.saveState = 'q';\n /**\n * Specifies the value of `Q`.\n * @private\n */\n Operators.restoreState = 'Q';\n /**\n * Specifies the value of `Do`.\n * @private\n */\n Operators.paintXObject = 'Do';\n /**\n * Specifies the value of `cm`.\n * @private\n */\n Operators.modifyCtm = 'cm';\n /**\n * Specifies the value of `Tm`.\n * @private\n */\n Operators.modifyTM = 'Tm';\n /**\n * Specifies the value of `w`.\n * @private\n */\n Operators.setLineWidth = 'w';\n /**\n * Specifies the value of `J`.\n * @private\n */\n Operators.setLineCapStyle = 'J';\n /**\n * Specifies the value of `j`.\n * @private\n */\n Operators.setLineJoinStyle = 'j';\n /**\n * Specifies the value of `d`.\n * @private\n */\n Operators.setDashPattern = 'd';\n /**\n * Specifies the value of `i`.\n * @private\n */\n Operators.setFlatnessTolerance = 'i';\n /**\n * Specifies the value of `h`.\n * @private\n */\n Operators.closePath = 'h';\n /**\n * Specifies the value of `s`.\n * @private\n */\n Operators.closeStrokePath = 's';\n /**\n * Specifies the value of `b`.\n * @private\n */\n Operators.closeFillStrokePath = 'b';\n /**\n * Specifies the value of `setCharacterSpace`.\n * @private\n */\n Operators.setCharacterSpace = 'Tc';\n /**\n * Specifies the value of `setWordSpace`.\n * @private\n */\n Operators.setWordSpace = 'Tw';\n /**\n * Specifies the value of `setHorizontalScaling`.\n * @private\n */\n Operators.setHorizontalScaling = 'Tz';\n /**\n * Specifies the value of `setTextLeading`.\n * @private\n */\n Operators.setTextLeading = 'TL';\n /**\n * Specifies the value of `setFont`.\n * @private\n */\n Operators.setFont = 'Tf';\n /**\n * Specifies the value of `setRenderingMode`.\n * @private\n */\n Operators.setRenderingMode = 'Tr';\n /**\n * Specifies the value of `setTextRise`.\n * @private\n */\n Operators.setTextRise = 'Ts';\n /**\n * Specifies the value of `setTextScaling`.\n * @private\n */\n Operators.setTextScaling = 'Tz';\n /**\n * Specifies the value of `setCoords`.\n * @private\n */\n Operators.setCoords = 'Td';\n /**\n * Specifies the value of `goToNextLine`.\n * @private\n */\n Operators.goToNextLine = 'T*';\n /**\n * Specifies the value of `setText`.\n * @private\n */\n Operators.setText = 'Tj';\n /**\n * Specifies the value of `setTextWithFormatting`.\n * @private\n */\n Operators.setTextWithFormatting = 'TJ';\n /**\n * Specifies the value of `setTextOnNewLine`.\n * @private\n */\n Operators.setTextOnNewLine = '\\'';\n /**\n * Specifies the value of `selectcolorspaceforstroking`.\n * @private\n */\n Operators.selectcolorspaceforstroking = 'CS';\n /**\n * Specifies the value of `selectcolorspacefornonstroking`.\n * @private\n */\n Operators.selectcolorspacefornonstroking = 'cs';\n /**\n * Specifies the value of `setrbgcolorforstroking`.\n * @private\n */\n Operators.setrbgcolorforstroking = 'RG';\n /**\n * Specifies the value of `setrbgcolorfornonstroking`.\n * @private\n */\n Operators.setrbgcolorfornonstroking = 'rg';\n /**\n * Specifies the value of `K`.\n * @private\n */\n Operators.setcmykcolorforstroking = 'K';\n /**\n * Specifies the value of `k`.\n * @private\n */\n Operators.setcmykcolorfornonstroking = 'k';\n /**\n * Specifies the value of `G`.\n * @private\n */\n Operators.setgraycolorforstroking = 'G';\n /**\n * Specifies the value of `g`.\n * @private\n */\n Operators.setgraycolorfornonstroking = 'g';\n /**\n * Specifies the value of `W`.\n * @private\n */\n Operators.clipPath = 'W';\n /**\n * Specifies the value of `clipPathEvenOdd`.\n * @private\n */\n Operators.clipPathEvenOdd = 'W*';\n /**\n * Specifies the value of `n`.\n * @private\n */\n Operators.endPath = 'n';\n /**\n * Specifies the value of `setGraphicsState`.\n * @private\n */\n Operators.setGraphicsState = 'gs';\n /**\n * Specifies the value of `%`.\n * @private\n */\n Operators.comment = '%';\n /**\n * Specifies the value of `*`.\n * @private\n */\n Operators.evenOdd = '*';\n /**\n * Specifies the value of `M`.\n * @private\n */\n Operators.setMiterLimit = 'M';\n /**\n * Same as SC, but also supports Pattern, Separation, DeviceN, and ICCBased color spaces. For non-stroking operations.\n * @public\n */\n Operators.setColorAndPattern = 'scn';\n /**\n * Same as SC, but also supports Pattern, Separation, DeviceN, and ICCBased color spaces. For stroking.\n */\n Operators.setColorAndPatternStroking = 'SCN';\n return Operators;\n}());\nexport { Operators };\n","/**\n * dictionaryProperties.ts class for EJ2-PDF\n * PDF dictionary properties.\n * @private\n */\nvar DictionaryProperties = /** @class */ (function () {\n /**\n * Initialize an instance for `PdfDictionaryProperties` class.\n * @private\n */\n function DictionaryProperties() {\n /**\n * Specifies the value of `Pages`.\n * @private\n */\n this.pages = 'Pages';\n /**\n * Specifies the value of `Kids`.\n * @private\n */\n this.kids = 'Kids';\n /**\n * Specifies the value of `Count`.\n * @private\n */\n this.count = 'Count';\n /**\n * Specifies the value of `Resources`.\n * @private\n */\n this.resources = 'Resources';\n /**\n * Specifies the value of `Type`.\n * @private\n */\n this.type = 'Type';\n /**\n * Specifies the value of `Size`.\n * @private\n */\n this.size = 'Size';\n /**\n * Specifies the value of `MediaBox`.\n * @private\n */\n this.mediaBox = 'MediaBox';\n /**\n * Specifies the value of `Parent`.\n * @private\n */\n this.parent = 'Parent';\n /**\n * Specifies the value of `Root`.\n * @private\n */\n this.root = 'Root';\n /**\n * Specifies the value of `DecodeParms`.\n * @private\n */\n this.decodeParms = 'DecodeParms';\n /**\n * Specifies the value of `Filter`.\n * @private\n */\n this.filter = 'Filter';\n /**\n * Specifies the value of `Font`.\n * @private\n */\n this.font = 'Font';\n /**\n * Specifies the value of `Type1`.\n * @private\n */\n this.type1 = 'Type1';\n /**\n * Specifies the value of `BaseFont`.\n * @private\n */\n this.baseFont = 'BaseFont';\n /**\n * Specifies the value of `Encoding`.\n * @private\n */\n this.encoding = 'Encoding';\n /**\n * Specifies the value of `Subtype`.\n * @private\n */\n this.subtype = 'Subtype';\n /**\n * Specifies the value of `Contents`.\n * @private\n */\n this.contents = 'Contents';\n /**\n * Specifies the value of `ProcSet`.\n * @private\n */\n this.procset = 'ProcSet';\n /**\n * Specifies the value of `ColorSpace`.\n * @private\n */\n this.colorSpace = 'ColorSpace';\n /**\n * Specifies the value of `ExtGState`.\n * @private\n */\n this.extGState = 'ExtGState';\n /**\n * Specifies the value of `Pattern`.\n * @private\n */\n this.pattern = 'Pattern';\n /**\n * Specifies the value of `XObject`.\n * @private\n */\n this.xObject = 'XObject';\n /**\n * Specifies the value of `Length`.\n * @private\n */\n this.length = 'Length';\n /**\n * Specifies the value of `Width`.\n * @private\n */\n this.width = 'Width';\n /**\n * Specifies the value of `Height`.\n * @private\n */\n this.height = 'Height';\n /**\n * Specifies the value of `BitsPerComponent`.\n * @private\n */\n this.bitsPerComponent = 'BitsPerComponent';\n /**\n * Specifies the value of `Image`.\n * @private\n */\n this.image = 'Image';\n /**\n * Specifies the value of `dctdecode`.\n * @private\n */\n this.dctdecode = 'DCTDecode';\n /**\n * Specifies the value of `Columns`.\n * @private\n */\n this.columns = 'Columns';\n /**\n * Specifies the value of `BlackIs1`.\n * @private\n */\n this.blackIs1 = 'BlackIs1';\n /**\n * Specifies the value of `K`.\n * @private\n */\n this.k = 'K';\n /**\n * Specifies the value of `S`.\n * @private\n */\n this.s = 'S';\n /**\n * Specifies the value of `Predictor`.\n * @private\n */\n this.predictor = 'Predictor';\n /**\n * Specifies the value of `DeviceRGB`.\n * @private\n */\n this.deviceRgb = 'DeviceRGB';\n /**\n * Specifies the value of `Next`.\n * @private\n */\n this.next = 'Next';\n /**\n * Specifies the value of `Action`.\n * @private\n */\n this.action = 'Action';\n /**\n * Specifies the value of `Link`.\n * @private\n */\n this.link = 'Link';\n /**\n *\n * Specifies the value of `A`.\n * @private\n */\n this.a = 'A';\n /**\n * Specifies the value of `Annot`.\n * @private\n */\n this.annot = 'Annot';\n /**\n * Specifies the value of `P`.\n * @private\n */\n this.p = 'P';\n /**\n * Specifies the value of `C`.\n * @private\n */\n this.c = 'C';\n /**\n * Specifies the value of `Rect`.\n * @private\n */\n this.rect = 'Rect';\n /**\n * Specifies the value of `URI`.\n * @private\n */\n this.uri = 'URI';\n /**\n * Specifies the value of `Annots`.\n * @private\n */\n this.annots = 'Annots';\n /**\n * Specifies the value of `ca`.\n * @private\n */\n this.ca = 'ca';\n /**\n * Specifies the value of `CA`.\n * @private\n */\n this.CA = 'CA';\n /**\n * Specifies the value of `XYZ`.\n * @private\n */\n this.xyz = 'XYZ';\n /**\n * Specifies the value of `Fit`.\n * @private\n */\n this.fit = 'Fit';\n /**\n * Specifies the value of `Dest`.\n * @private\n */\n this.dest = 'Dest';\n /**\n * Specifies the value of `BM`.\n * @private\n */\n this.BM = 'BM';\n /**\n * Specifies the value of `flatedecode`.\n * @private\n */\n this.flatedecode = 'FlateDecode';\n /**\n * Specifies the value of `Rotate`.\n * @private\n */\n this.rotate = 'Rotate';\n /**\n * Specifies the value of 'bBox'.\n * @private\n */\n this.bBox = 'BBox';\n /**\n * Specifies the value of 'form'.\n * @private\n */\n this.form = 'Form';\n /**\n * Specifies the value of 'w'.\n * @private\n */\n this.w = 'W';\n /**\n * Specifies the value of 'cIDFontType2'.\n * @private\n */\n this.cIDFontType2 = 'CIDFontType2';\n /**\n * Specifies the value of 'cIDToGIDMap'.\n * @private\n */\n this.cIDToGIDMap = 'CIDToGIDMap';\n /**\n * Specifies the value of 'identity'.\n * @private\n */\n this.identity = 'Identity';\n /**\n * Specifies the value of 'dw'.\n * @private\n */\n this.dw = 'DW';\n /**\n * Specifies the value of 'fontDescriptor'.\n * @private\n */\n this.fontDescriptor = 'FontDescriptor';\n /**\n * Specifies the value of 'cIDSystemInfo'.\n * @private\n */\n this.cIDSystemInfo = 'CIDSystemInfo';\n /**\n * Specifies the value of 'fontName'.\n * @private\n */\n this.fontName = 'FontName';\n /**\n * Specifies the value of 'flags'.\n * @private\n */\n this.flags = 'Flags';\n /**\n * Specifies the value of 'fontBBox'.\n * @private\n */\n this.fontBBox = 'FontBBox';\n /**\n * Specifies the value of 'missingWidth'.\n * @private\n */\n this.missingWidth = 'MissingWidth';\n /**\n * Specifies the value of 'stemV'.\n * @private\n */\n this.stemV = 'StemV';\n /**\n * Specifies the value of 'italicAngle'.\n * @private\n */\n this.italicAngle = 'ItalicAngle';\n /**\n * Specifies the value of 'capHeight'.\n * @private\n */\n this.capHeight = 'CapHeight';\n /**\n * Specifies the value of 'ascent'.\n * @private\n */\n this.ascent = 'Ascent';\n /**\n * Specifies the value of 'descent'.\n * @private\n */\n this.descent = 'Descent';\n /**\n * Specifies the value of 'leading'.\n * @private\n */\n this.leading = 'Leading';\n /**\n * Specifies the value of 'avgWidth'.\n * @private\n */\n this.avgWidth = 'AvgWidth';\n /**\n * Specifies the value of 'fontFile2'.\n * @private\n */\n this.fontFile2 = 'FontFile2';\n /**\n * Specifies the value of 'maxWidth'.\n * @private\n */\n this.maxWidth = 'MaxWidth';\n /**\n * Specifies the value of 'xHeight'.\n * @private\n */\n this.xHeight = 'XHeight';\n /**\n * Specifies the value of 'stemH'.\n * @private\n */\n this.stemH = 'StemH';\n /**\n * Specifies the value of 'registry'.\n * @private\n */\n this.registry = 'Registry';\n /**\n * Specifies the value of 'ordering'.\n * @private\n */\n this.ordering = 'Ordering';\n /**\n * Specifies the value of 'supplement'.\n * @private\n */\n this.supplement = 'Supplement';\n /**\n * Specifies the value of 'type0'.\n * @private\n */\n this.type0 = 'Type0';\n /**\n * Specifies the value of 'identityH'.\n * @private\n */\n this.identityH = 'Identity-H';\n /**\n * Specifies the value of 'toUnicode'.\n * @private\n */\n this.toUnicode = 'ToUnicode';\n /**\n * Specifies the value of 'descendantFonts'.\n * @private\n */\n this.descendantFonts = 'DescendantFonts';\n /**\n * Specifies the value of 'background'.\n * @private\n */\n this.background = 'Background';\n /**\n * Specifies the value of 'shading'.\n * @private\n */\n this.shading = 'Shading';\n /**\n * Specifies the value of 'matrix'.\n * @private\n */\n this.matrix = 'Matrix';\n /**\n * Specifies the value of 'antiAlias'.\n * @private\n */\n this.antiAlias = 'AntiAlias';\n /**\n * Specifies the value of 'function'.\n * @private\n */\n this.function = 'Function';\n /**\n * Specifies the value of 'extend'.\n * @private\n */\n this.extend = 'Extend';\n /**\n * Specifies the value of 'shadingType'.\n * @private\n */\n this.shadingType = 'ShadingType';\n /**\n * Specifies the value of 'coords'.\n * @private\n */\n this.coords = 'Coords';\n /**\n * Specifies the value of 'domain'.\n * @private\n */\n this.domain = 'Domain';\n /**\n * Specifies the value of 'range'.\n * @private\n */\n this.range = 'Range';\n /**\n * Specifies the value of 'functionType'.\n * @private\n */\n this.functionType = 'FunctionType';\n /**\n * Specifies the value of 'bitsPerSample'.\n * @private\n */\n this.bitsPerSample = 'BitsPerSample';\n /**\n * Specifies the value of 'patternType'.\n * @private\n */\n this.patternType = 'PatternType';\n /**\n * Specifies the value of 'paintType'.\n * @private\n */\n this.paintType = 'PaintType';\n /**\n * Specifies the value of 'tilingType'.\n * @private\n */\n this.tilingType = 'TilingType';\n /**\n * Specifies the value of 'xStep'.\n * @private\n */\n this.xStep = 'XStep';\n /**\n * Specifies the value of 'yStep'.\n * @private\n */\n this.yStep = 'YStep';\n //\n }\n return DictionaryProperties;\n}());\nexport { DictionaryProperties };\n","import { Dictionary } from './../collections/dictionary';\nimport { PdfName } from './pdf-name';\nimport { Operators } from './../input-output/pdf-operators';\nimport { DictionaryProperties } from './../input-output/pdf-dictionary-properties';\n/**\n * `PdfDictionary` class is used to perform primitive operations.\n * @private\n */\nvar PdfDictionary = /** @class */ (function () {\n function PdfDictionary(dictionary) {\n /**\n * Internal variable to store the `position`.\n * @default -1\n * @private\n */\n this.position7 = -1;\n /**\n * The `IPdfSavable` with the specified key.\n * @private\n */\n this.primitiveItems = new Dictionary();\n /**\n * `Start marker` for dictionary.\n * @private\n */\n this.prefix = '<<';\n /**\n * `End marker` for dictionary.\n * @private\n */\n this.suffix = '>>';\n /**\n * @hidden\n * @private\n */\n this.resources = [];\n /**\n * Internal variable to hold `cloned object`.\n * @default null\n * @private\n */\n this.object = null;\n /**\n * Flag for PDF file formar 1.5 is dictionary `archiving` needed.\n * @default true\n * @private\n */\n this.archive = true;\n /**\n * Represents the Font dictionary.\n * @hidden\n * @private\n */\n this.isFont = false;\n if (typeof dictionary === 'undefined') {\n this.primitiveItems = new Dictionary();\n this.encrypt = true;\n this.dictionaryProperties = new DictionaryProperties();\n }\n else {\n this.primitiveItems = new Dictionary();\n var keys = dictionary.items.keys();\n var values = dictionary.items.values();\n for (var index = 0; index < dictionary.items.size(); index++) {\n this.primitiveItems.setValue(keys[index], values[index]);\n }\n this.status = dictionary.status;\n this.freezeChanges(this);\n this.encrypt = true;\n this.dictionaryProperties = new DictionaryProperties();\n }\n }\n Object.defineProperty(PdfDictionary.prototype, \"items\", {\n //Properties\n /**\n * Gets or sets the `IPdfSavable` with the specified key.\n * @private\n */\n get: function () {\n return this.primitiveItems;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfDictionary.prototype, \"status\", {\n /**\n * Gets or sets the `Status` of the specified object.\n * @private\n */\n get: function () {\n return this.status7;\n },\n set: function (value) {\n this.status7 = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfDictionary.prototype, \"isSaving\", {\n /**\n * Gets or sets a value indicating whether this document `is saving` or not.\n * @private\n */\n get: function () {\n return this.isSaving7;\n },\n set: function (value) {\n this.isSaving7 = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfDictionary.prototype, \"objectCollectionIndex\", {\n /**\n * Gets or sets the `index` value of the specified object.\n * @private\n */\n get: function () {\n return this.index7;\n },\n set: function (value) {\n this.index7 = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfDictionary.prototype, \"clonedObject\", {\n /**\n * Returns `cloned object`.\n * @private\n */\n get: function () {\n return this.object;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfDictionary.prototype, \"position\", {\n /**\n * Gets or sets the `position` of the object.\n * @private\n */\n get: function () {\n return this.position7;\n },\n set: function (value) {\n this.position7 = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfDictionary.prototype, \"Count\", {\n /**\n * Gets the `count`.\n * @private\n */\n get: function () {\n return this.primitiveItems.size();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfDictionary.prototype, \"Dictionary\", {\n /**\n * Collection of `items` in the object.\n * @private\n */\n get: function () {\n return this;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Get flag if need to `archive` dictionary.\n * @private\n */\n PdfDictionary.prototype.getArchive = function () {\n return this.archive;\n };\n /**\n * Set flag if need to `archive` dictionary.\n * @private\n */\n PdfDictionary.prototype.setArchive = function (value) {\n this.archive = value;\n };\n /**\n * Sets flag if `encryption` is needed.\n * @private\n */\n PdfDictionary.prototype.setEncrypt = function (value) {\n this.encrypt = value;\n this.modify();\n };\n /**\n * Gets flag if `encryption` is needed.\n * @private\n */\n PdfDictionary.prototype.getEncrypt = function () {\n return this.encrypt;\n };\n /**\n * `Freezes` the changes.\n * @private\n */\n PdfDictionary.prototype.freezeChanges = function (freezer) {\n this.bChanged = false;\n };\n /**\n * Creates a `copy of PdfDictionary`.\n * @private\n */\n PdfDictionary.prototype.clone = function (crossTable) {\n //Need to add more codings\n var newDict = new PdfDictionary();\n return newDict;\n };\n /**\n * `Mark` this instance modified.\n * @private\n */\n PdfDictionary.prototype.modify = function () {\n this.bChanged = true;\n };\n /**\n * `Removes` the specified key.\n * @private\n */\n PdfDictionary.prototype.remove = function (key) {\n if (typeof key !== 'string') {\n this.primitiveItems.remove(key.value);\n this.modify();\n }\n else {\n this.remove(new PdfName(key));\n }\n };\n /**\n * `Determines` whether the dictionary contains the key.\n * @private\n */\n PdfDictionary.prototype.containsKey = function (key) {\n var returnValue = false;\n returnValue = this.primitiveItems.containsKey(key.toString());\n return returnValue;\n };\n /**\n * Raises event `BeginSave`.\n * @private\n */\n PdfDictionary.prototype.onBeginSave = function () {\n this.beginSave.sender.beginSave();\n };\n /**\n * Raises event `Font Dictionary BeginSave`.\n * @private\n */\n PdfDictionary.prototype.onFontDictionaryBeginSave = function () {\n this.fontDictionaryBeginSave.sender.fontDictionaryBeginSave();\n };\n /**\n * Raises event `Descendant Font BeginSave`.\n * @private\n */\n PdfDictionary.prototype.onDescendantFontBeginSave = function () {\n this.descendantFontBeginSave.sender.descendantFontBeginSave();\n };\n /**\n * Raises event 'BeginSave'.\n * @private\n */\n PdfDictionary.prototype.onTemplateBeginSave = function () {\n this.pageBeginDrawTemplate.sender.pageBeginSave();\n };\n /**\n * Raises event `BeginSave`.\n * @private\n */\n PdfDictionary.prototype.onBeginAnnotationSave = function () {\n this.annotationBeginSave.sender.beginSave();\n };\n /**\n * Raises event `BeginSave`.\n * @private\n */\n PdfDictionary.prototype.onSectionBeginSave = function (writer) {\n var saveEvent = this.sectionBeginSave;\n saveEvent.sender.beginSave(saveEvent.state, writer);\n };\n PdfDictionary.prototype.save = function (writer, bRaiseEvent) {\n if (typeof bRaiseEvent === 'undefined') {\n this.save(writer, true);\n }\n else {\n writer.write(this.prefix);\n if (typeof this.beginSave !== 'undefined') {\n this.onBeginSave();\n }\n if (typeof this.descendantFontBeginSave !== 'undefined') {\n this.onDescendantFontBeginSave();\n }\n if (typeof this.fontDictionaryBeginSave !== 'undefined') {\n this.onFontDictionaryBeginSave();\n }\n if (typeof this.annotationBeginSave !== 'undefined') {\n this.onBeginAnnotationSave();\n }\n if (typeof this.sectionBeginSave !== 'undefined') {\n this.onSectionBeginSave(writer);\n }\n if (typeof this.pageBeginDrawTemplate !== 'undefined') {\n this.onTemplateBeginSave();\n }\n // }\n if (this.Count > 0) {\n this.saveItems(writer);\n }\n writer.write(this.suffix);\n writer.write(Operators.newLine);\n }\n };\n /**\n * `Save dictionary items`.\n * @private\n */\n PdfDictionary.prototype.saveItems = function (writer) {\n writer.write(Operators.newLine);\n var keys = this.primitiveItems.keys();\n var values = this.primitiveItems.values();\n for (var index = 0; index < keys.length; index++) {\n var key = keys[index];\n var name_1 = new PdfName(key);\n name_1.save(writer);\n writer.write(Operators.whiteSpace);\n var resources = values[index];\n resources.save(writer);\n writer.write(Operators.newLine);\n }\n };\n return PdfDictionary;\n}());\nexport { PdfDictionary };\nvar SaveSectionCollectionEventHandler = /** @class */ (function () {\n /**\n * New instance for `save section collection event handler` class.\n * @private\n */\n function SaveSectionCollectionEventHandler(sender) {\n this.sender = sender;\n }\n return SaveSectionCollectionEventHandler;\n}());\nexport { SaveSectionCollectionEventHandler };\nvar SaveDescendantFontEventHandler = /** @class */ (function () {\n /**\n * New instance for `save section collection event handler` class.\n * @private\n */\n function SaveDescendantFontEventHandler(sender) {\n this.sender = sender;\n }\n return SaveDescendantFontEventHandler;\n}());\nexport { SaveDescendantFontEventHandler };\nvar SaveFontDictionaryEventHandler = /** @class */ (function () {\n /**\n * New instance for `save section collection event handler` class.\n * @private\n */\n function SaveFontDictionaryEventHandler(sender) {\n this.sender = sender;\n }\n return SaveFontDictionaryEventHandler;\n}());\nexport { SaveFontDictionaryEventHandler };\nvar SaveAnnotationEventHandler = /** @class */ (function () {\n /**\n * New instance for `save annotation event handler` class.\n * @private\n */\n function SaveAnnotationEventHandler(sender) {\n this.sender = sender;\n }\n return SaveAnnotationEventHandler;\n}());\nexport { SaveAnnotationEventHandler };\nvar SaveSectionEventHandler = /** @class */ (function () {\n // constructors\n /**\n * New instance for `save section event handler` class.\n * @private\n */\n function SaveSectionEventHandler(sender, state) {\n this.sender = sender;\n this.state = state;\n }\n return SaveSectionEventHandler;\n}());\nexport { SaveSectionEventHandler };\n/**\n * SaveTemplateEventHandler class used to store information about template elements.\n * @private\n * @hidden\n */\nvar SaveTemplateEventHandler = /** @class */ (function () {\n /**\n * New instance for save section collection event handler class.\n * @public\n */\n function SaveTemplateEventHandler(sender) {\n this.sender = sender;\n }\n return SaveTemplateEventHandler;\n}());\nexport { SaveTemplateEventHandler };\n","/**\n * `PdfNumber` class is used to perform number related primitive operations.\n * @private\n */\nvar PdfNumber = /** @class */ (function () {\n /**\n * Initializes a new instance of the `PdfNumber` class.\n * @private\n */\n function PdfNumber(value) {\n /**\n * Sotres the `position`.\n * @default -1\n * @private\n */\n this.position5 = -1;\n this.value = value;\n }\n Object.defineProperty(PdfNumber.prototype, \"intValue\", {\n /**\n * Gets or sets the `integer` value.\n * @private\n */\n get: function () {\n return this.value;\n },\n set: function (value) {\n this.value = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfNumber.prototype, \"isInteger\", {\n /**\n * Gets or sets a value indicating whether this instance `is integer`.\n * @private\n */\n get: function () {\n return this.integer;\n },\n set: function (value) {\n this.integer = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfNumber.prototype, \"status\", {\n /**\n * Gets or sets the `Status` of the specified object.\n * @private\n */\n get: function () {\n return this.status5;\n },\n set: function (value) {\n this.status5 = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfNumber.prototype, \"isSaving\", {\n /**\n * Gets or sets a value indicating whether this document `is saving` or not.\n * @private\n */\n get: function () {\n return this.isSaving5;\n },\n set: function (value) {\n this.isSaving5 = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfNumber.prototype, \"objectCollectionIndex\", {\n /**\n * Gets or sets the `index` value of the specified object.\n * @private\n */\n get: function () {\n return this.index5;\n },\n set: function (value) {\n this.index5 = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfNumber.prototype, \"position\", {\n /**\n * Gets or sets the `position` of the object.\n * @private\n */\n get: function () {\n return this.position5;\n },\n set: function (value) {\n this.position5 = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfNumber.prototype, \"clonedObject\", {\n /**\n * Returns `cloned object`.\n * @private\n */\n get: function () {\n var rValue = null;\n return rValue;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * `Saves the object`.\n * @private\n */\n PdfNumber.prototype.save = function (writer) {\n writer.write(this.intValue.toString()); //tostring(CultureInfo.InletiantCulture)\n };\n /**\n * Creates a `copy of PdfNumber`.\n * @private\n */\n PdfNumber.prototype.clone = function (crossTable) {\n var newNumber = new PdfNumber(this.value);\n return newNumber;\n };\n /**\n * Converts a `float value to a string` using Adobe PDF rules.\n * @private\n */\n PdfNumber.floatToString = function (number) {\n // let tempString1 : string = number.toString();\n // let tempString2 : string = tempString1.indexOf('.') != -1 ? tempString1.substring(0, tempString1.indexOf('.')) : tempString1;\n var returnString = number.toFixed(2);\n if (returnString === '0.00') {\n returnString = '.00';\n }\n // let prefixLength : number = (22 - tempString2.length) >= 0 ? (22 - tempString2.length) : 0;\n // for (let index : number = 0; index < prefixLength; index++) {\n // returnString += '0';\n // }\n // returnString += tempString2 + '.00';\n // returnString += (tempString3.length > 6) ? tempString3.substring(0,6) : tempString3;\n // let suffixLength : number = (6 - tempString3.length) >= 0 ? (6 - tempString3.length) : 0;\n // for (let index : number = 0; index < suffixLength; index++) {\n // returnString += '0';\n // }\n return returnString;\n };\n /**\n * Determines the `minimum of the three values`.\n * @private\n */\n PdfNumber.min = function (x, y, z) {\n var r = Math.min(x, y);\n return Math.min(z, r);\n };\n return PdfNumber;\n}());\nexport { PdfNumber };\n","import { PdfNumber } from './pdf-number';\nimport { Operators } from './../input-output/pdf-operators';\n/**\n * `PdfArray` class is used to perform array related primitive operations.\n * @private\n */\nvar PdfArray = /** @class */ (function () {\n function PdfArray(array) {\n //Fields\n /**\n * `startMark` - '['\n * @private\n */\n this.startMark = '[';\n /**\n * `endMark` - ']'.\n * @private\n */\n this.endMark = ']';\n /**\n * Internal variable to store the `position`.\n * @default -1\n * @private\n */\n this.position9 = -1;\n /**\n * Internal variable to hold `cloned object`.\n * @default null\n * @private\n */\n this.clonedObject9 = null;\n /**\n * Represents the Font dictionary.\n * @hidden\n * @private\n */\n this.isFont = false;\n if (typeof array === 'undefined') {\n this.internalElements = [];\n }\n else {\n if (typeof array !== 'undefined' && !(array instanceof PdfArray)) {\n var tempNumberArray = array;\n for (var index = 0; index < tempNumberArray.length; index++) {\n var pdfNumber = new PdfNumber(tempNumberArray[index]);\n this.add(pdfNumber);\n }\n // } else if (typeof array !== 'undefined' && (array instanceof PdfArray)) {\n }\n else {\n var tempArray = array;\n // if (tempArray.Elements.length > 0) {\n this.internalElements = [];\n for (var index = 0; index < tempArray.elements.length; index++) {\n this.internalElements.push(tempArray.elements[index]);\n }\n // }\n }\n }\n }\n //property\n /**\n * Gets the `IPdfSavable` at the specified index.\n * @private\n */\n PdfArray.prototype.items = function (index) {\n // if (index < 0 || index >= this.Count) {\n // throw new Error('ArgumentOutOfRangeException : index, The index can\"t be less then zero or greater then Count.');\n // }\n return this.internalElements[index];\n };\n Object.defineProperty(PdfArray.prototype, \"count\", {\n /**\n * Gets the `count`.\n * @private\n */\n get: function () {\n return this.internalElements.length;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfArray.prototype, \"status\", {\n /**\n * Gets or sets the `Status` of the specified object.\n * @private\n */\n get: function () {\n return this.status9;\n },\n set: function (value) {\n this.status9 = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfArray.prototype, \"isSaving\", {\n /**\n * Gets or sets a value indicating whether this document `is saving` or not.\n * @private\n */\n get: function () {\n return this.isSaving9;\n },\n set: function (value) {\n this.isSaving9 = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfArray.prototype, \"clonedObject\", {\n /**\n * Returns `cloned object`.\n * @private\n */\n get: function () {\n return this.clonedObject9;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfArray.prototype, \"position\", {\n /**\n * Gets or sets the `position` of the object.\n * @private\n */\n get: function () {\n return this.position9;\n },\n set: function (value) {\n this.position9 = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfArray.prototype, \"objectCollectionIndex\", {\n /**\n * Gets or sets the `index` value of the specified object.\n * @private\n */\n get: function () {\n return this.index9;\n },\n set: function (value) {\n this.index9 = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfArray.prototype, \"CrossTable\", {\n /**\n * Returns `PdfCrossTable` associated with the object.\n * @private\n */\n get: function () {\n return this.pdfCrossTable;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfArray.prototype, \"elements\", {\n /**\n * Gets the `elements` of the Pdf Array.\n * @private\n */\n get: function () {\n return this.internalElements;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * `Adds` the specified element to the PDF array.\n * @private\n */\n PdfArray.prototype.add = function (element) {\n // if (element === null) {\n // throw new Error('ArgumentNullException : obj');\n // }\n if (typeof this.internalElements === 'undefined') {\n this.internalElements = [];\n }\n this.internalElements.push(element);\n this.markedChange();\n };\n /**\n * `Marks` the object changed.\n * @private\n */\n PdfArray.prototype.markedChange = function () {\n this.bChanged = true;\n };\n /**\n * `Determines` whether the specified element is within the array.\n * @private\n */\n PdfArray.prototype.contains = function (element) {\n var returnValue = false;\n for (var index = 0; index < this.internalElements.length; index++) {\n var tempElement = this.internalElements[index];\n var inputElement = element;\n if (tempElement != null && typeof tempElement !== 'undefined' && inputElement != null && typeof inputElement !== 'undefined') {\n if (tempElement.value === inputElement.value) {\n return true;\n }\n }\n // if (this.internalElements[index] === element) {\n // returnValue = true;\n // }\n }\n return returnValue;\n };\n /**\n * Returns the `primitive object` of input index.\n * @private\n */\n PdfArray.prototype.getItems = function (index) {\n // if (index < 0 || index >= this.Count) {\n // throw new Error('ArgumentOutOfRangeException : index , The index can\"t be less then zero or greater then Count.');\n // }\n return this.internalElements[index];\n };\n /**\n * `Saves` the object using the specified writer.\n * @private\n */\n PdfArray.prototype.save = function (writer) {\n // if (writer === null) {\n // throw new Error('ArgumentNullException : writer');\n // }\n writer.write(this.startMark);\n for (var i = 0, len = this.count; i < len; i++) {\n this.getItems(i).save(writer);\n if (i + 1 !== len) {\n writer.write(Operators.whiteSpace);\n }\n }\n writer.write(this.endMark);\n };\n /**\n * Creates a `copy of PdfArray`.\n * @private\n */\n PdfArray.prototype.clone = function (crossTable) {\n // if (this.clonedObject9 !== null && this.clonedObject9.CrossTable === crossTable) {\n // return this.clonedObject9;\n // } else {\n this.clonedObject9 = null;\n // Else clone the object.\n var newArray = new PdfArray();\n for (var index = 0; index < this.internalElements.length; index++) {\n var obj = this.internalElements[index];\n newArray.add(obj.clone(crossTable));\n }\n newArray.pdfCrossTable = crossTable;\n this.clonedObject9 = newArray;\n return newArray;\n };\n /**\n * Creates filled PDF array `from the rectangle`.\n * @private\n */\n PdfArray.fromRectangle = function (bounds) {\n var values = [bounds.x, bounds.y, bounds.width, bounds.height];\n var array = new PdfArray(values);\n return array;\n };\n // /**\n // * Creates the rectangle from filled PDF array.\n // * @private\n // */\n // public ToRectangle() : RectangleF {\n // if (this.Count < 4) {\n // throw Error('InvalidOperationException-Can not convert to rectangle.');\n // }\n // let x1 : number;\n // let x2 : number;\n // let y1 : number;\n // let y2 : number;\n // let num : PdfNumber = this.getItems(0) as PdfNumber;\n // x1 = num.IntValue;\n // num = this.getItems(1) as PdfNumber;\n // y1 = num.IntValue;\n // num = this.getItems(2) as PdfNumber;\n // x2 = num.IntValue;\n // num = this.getItems(3) as PdfNumber;\n // y2 = num.IntValue;\n // let x : number = Math.min(x1, x2);\n // let y : number = Math.min(y1, y2);\n // let width : number = Math.abs(x1 - x2);\n // let height : number = Math.abs(y1 - y2);\n // let rect : RectangleF = new RectangleF(new PointF(x, y), new SizeF(width, height));\n // return rect;\n // }\n /**\n * `Inserts` the element into the array.\n * @private\n */\n PdfArray.prototype.insert = function (index, element) {\n if (index < this.internalElements.length && index > 0) {\n var tempElements = [];\n for (var i = 0; i < index; i++) {\n tempElements.push(this.internalElements[i]);\n }\n tempElements.push(element);\n for (var i = index; i < this.internalElements.length; i++) {\n tempElements.push(this.internalElements[i]);\n }\n this.internalElements = tempElements;\n }\n else {\n this.internalElements.push(element);\n }\n this.markChanged();\n };\n /**\n * `Checks whether array contains the element`.\n * @private\n */\n PdfArray.prototype.indexOf = function (element) {\n return this.internalElements.indexOf(element);\n };\n /**\n * `Removes` element from the array.\n * @private\n */\n PdfArray.prototype.remove = function (element) {\n // if (element === null) {\n // throw new Error('ArgumentNullException : element');\n // }\n var index = this.internalElements.indexOf(element);\n // if (index >= 0 && index < this.internalElements.length) {\n this.internalElements[index] = null;\n // }\n this.markChanged();\n };\n /**\n * `Remove` the element from the array by its index.\n * @private\n */\n PdfArray.prototype.removeAt = function (index) {\n // this.internalElements.RemoveAt(index);\n if (this.internalElements.length > index) {\n var tempArray = [];\n for (var i = 0; i < index; i++) {\n tempArray.push(this.internalElements[i]);\n }\n for (var i = index + 1; i < this.internalElements.length; i++) {\n tempArray.push(this.internalElements[i]);\n }\n this.internalElements = tempArray;\n }\n this.markChanged();\n };\n /**\n * `Clear` the array.\n * @private\n */\n PdfArray.prototype.clear = function () {\n this.internalElements = [];\n this.markChanged();\n };\n /**\n * `Marks` the object changed.\n * @private\n */\n PdfArray.prototype.markChanged = function () {\n this.bChanged = true;\n };\n return PdfArray;\n}());\nexport { PdfArray };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { PdfDictionary } from './pdf-dictionary';\nimport { PdfNumber } from './pdf-number';\nimport { Operators } from './../input-output/pdf-operators';\nimport { PdfName } from './pdf-name';\nimport { PdfArray } from './pdf-array';\nimport { PdfReferenceHolder } from './pdf-reference';\nimport { CompressedStreamWriter } from '@syncfusion/ej2-compression';\n/**\n * `PdfStream` class is used to perform stream related primitive operations.\n * @private\n */\nvar PdfStream = /** @class */ (function (_super) {\n __extends(PdfStream, _super);\n function PdfStream(dictionary, data) {\n var _this = _super.call(this, dictionary) || this;\n //Constants\n /**\n * @hidden\n * @private\n */\n _this.dicPrefix = 'stream';\n /**\n * @hidden\n * @private\n */\n _this.dicSuffix = 'endstream';\n /**\n * Internal variable to hold `cloned object`.\n * @private\n */\n _this.clonedObject2 = null;\n /**\n * @hidden\n * @private\n */\n _this.bCompress = true;\n /**\n * @hidden\n * @private\n */\n _this.isImageStream = false;\n /**\n * @hidden\n * @private\n */\n _this.isFontStream = false;\n if (typeof dictionary !== 'undefined' || typeof data !== 'undefined') {\n _this.dataStream2 = [];\n _this.dataStream2 = data;\n _this.bCompress2 = false;\n }\n else {\n _this.dataStream2 = [];\n _this.bCompress2 = true;\n //Pending\n }\n return _this;\n }\n Object.defineProperty(PdfStream.prototype, \"internalStream\", {\n /**\n * Gets the `internal` stream.\n * @private\n */\n get: function () {\n return this.dataStream2;\n },\n set: function (value) {\n this.dataStream2 = [];\n this.dataStream2 = value;\n this.modify();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfStream.prototype, \"isImage\", {\n /**\n * Gets or sets 'is image' flag.\n * @private\n */\n get: function () {\n return this.isImageStream;\n },\n set: function (value) {\n this.isImageStream = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfStream.prototype, \"isFont\", {\n /**\n * Gets or sets 'is font' flag.\n * @private\n */\n get: function () {\n return this.isFontStream;\n },\n set: function (value) {\n this.isFontStream = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfStream.prototype, \"compress\", {\n /**\n * Gets or sets `compression` flag.\n * @private\n */\n get: function () {\n return this.bCompress;\n },\n set: function (value) {\n this.bCompress = value;\n this.modify();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfStream.prototype, \"data\", {\n /**\n * Gets or sets the `data`.\n * @private\n */\n get: function () {\n return this.dataStream2;\n },\n set: function (value) {\n this.dataStream2 = [];\n this.dataStream2 = value;\n this.modify();\n },\n enumerable: true,\n configurable: true\n });\n /**\n * `Clear` the internal stream.\n * @private\n */\n PdfStream.prototype.clearStream = function () {\n this.internalStream = [];\n if (this.items.containsKey(this.dictionaryProperties.filter)) {\n this.remove(this.dictionaryProperties.filter);\n }\n this.bCompress = true;\n this.modify();\n };\n /**\n * `Writes` the specified string.\n * @private\n */\n PdfStream.prototype.write = function (text) {\n if (text == null) {\n throw new Error('ArgumentNullException:text');\n }\n if (text.length <= 0) {\n throw new Error('ArgumentException: Can not write an empty string, text');\n }\n this.dataStream2.push(text);\n this.modify();\n };\n /**\n * `Writes` the specified bytes.\n * @private\n */\n PdfStream.prototype.writeBytes = function (data) {\n if (data === null) {\n throw new Error('ArgumentNullException:data');\n }\n if (data.length <= 0) {\n throw new Error('ArgumentException: Can not write an empty bytes, data');\n }\n var text = '';\n for (var i = 0; i < data.length; i++) {\n text += String.fromCharCode(data[i]);\n }\n this.dataStream2.push(text);\n this.modify();\n };\n /**\n * Raises event `Cmap BeginSave`.\n * @private\n */\n PdfStream.prototype.onCmapBeginSave = function () {\n this.cmapBeginSave.sender.cmapBeginSave();\n };\n /**\n * Raises event `Font Program BeginSave`.\n * @private\n */\n PdfStream.prototype.onFontProgramBeginSave = function () {\n this.fontProgramBeginSave.sender.fontProgramBeginSave();\n };\n /**\n * `Compresses the content` if it's required.\n * @private\n */\n PdfStream.prototype.compressContent = function (data, writer) {\n if (this.bCompress) {\n var byteArray = [];\n for (var i = 0; i < data.length; i++) {\n byteArray.push(data.charCodeAt(i));\n }\n var dataArray = new Uint8Array(byteArray);\n var sw = new CompressedStreamWriter();\n // data = 'Hello World!!!';\n sw.write(dataArray, 0, dataArray.length);\n sw.close();\n data = sw.getCompressedString;\n this.addFilter(this.dictionaryProperties.flatedecode);\n }\n return data;\n };\n /**\n * `Adds a filter` to the filter array.\n * @private\n */\n PdfStream.prototype.addFilter = function (filterName) {\n var obj = this.items.getValue(this.dictionaryProperties.filter);\n if (obj instanceof PdfReferenceHolder) {\n var rh = obj;\n obj = rh.object;\n }\n var array = obj;\n var name = obj;\n if (name != null) {\n array = new PdfArray();\n array.insert(0, name);\n this.items.setValue(this.dictionaryProperties.filter, array);\n }\n name = new PdfName(filterName);\n if (array == null) {\n this.items.setValue(this.dictionaryProperties.filter, name);\n }\n else {\n array.insert(0, name);\n }\n };\n /**\n * `Saves` the object using the specified writer.\n * @private\n */\n PdfStream.prototype.save = function (writer) {\n if (typeof this.cmapBeginSave !== 'undefined') {\n this.onCmapBeginSave();\n }\n if (typeof this.fontProgramBeginSave !== 'undefined') {\n this.onFontProgramBeginSave();\n }\n var data = '';\n for (var i = 0; i < this.data.length; i++) {\n data = data + this.data[i];\n }\n if (data.length > 1 && !this.isImage && !this.isFont) {\n data = 'q\\r\\n' + data + 'Q\\r\\n';\n }\n data = this.compressContent(data, writer);\n var length = data.length;\n this.items.setValue(this.dictionaryProperties.length, new PdfNumber(length));\n _super.prototype.save.call(this, writer, false);\n writer.write(this.dicPrefix);\n writer.write(Operators.newLine);\n if (data.length > 0) {\n writer.write(data);\n }\n writer.write(Operators.newLine);\n writer.write(this.dicSuffix);\n writer.write(Operators.newLine);\n };\n /**\n * Converts `bytes to string`.\n * @private\n */\n PdfStream.bytesToString = function (byteArray) {\n var output = '';\n for (var i = 0; i < byteArray.length; i++) {\n output = output + String.fromCharCode(byteArray[i]);\n }\n return output;\n };\n return PdfStream;\n}(PdfDictionary));\nexport { PdfStream };\nvar SaveCmapEventHandler = /** @class */ (function () {\n /**\n * New instance for `save section collection event handler` class.\n * @private\n */\n function SaveCmapEventHandler(sender) {\n this.sender = sender;\n }\n return SaveCmapEventHandler;\n}());\nexport { SaveCmapEventHandler };\nvar SaveFontProgramEventHandler = /** @class */ (function () {\n /**\n * New instance for `save section collection event handler` class.\n * @private\n */\n function SaveFontProgramEventHandler(sender) {\n this.sender = sender;\n }\n return SaveFontProgramEventHandler;\n}());\nexport { SaveFontProgramEventHandler };\n","/**\n * public Enum for `ObjectType`.\n * @private\n */\nexport var ObjectType;\n(function (ObjectType) {\n /**\n * Specifies the type of `Free`.\n * @private\n */\n ObjectType[ObjectType[\"Free\"] = 0] = \"Free\";\n /**\n * Specifies the type of `Normal`.\n * @private\n */\n ObjectType[ObjectType[\"Normal\"] = 1] = \"Normal\";\n /**\n * Specifies the type of `Packed`.\n * @private\n */\n ObjectType[ObjectType[\"Packed\"] = 2] = \"Packed\";\n})(ObjectType || (ObjectType = {}));\n","import { DictionaryProperties } from './../input-output/pdf-dictionary-properties';\nimport { PdfStream } from './../primitives/pdf-stream';\nimport { PdfArray } from './../primitives/pdf-array';\nimport { PdfNumber } from './../primitives/pdf-number';\nimport { PdfName } from './../primitives/pdf-name';\nimport { PdfDictionary } from './../primitives/pdf-dictionary';\nimport { PdfString } from './../primitives/pdf-string';\n/**\n * `PdfReference` class is used to perform reference related primitive operations.\n * @private\n */\nvar PdfReference = /** @class */ (function () {\n function PdfReference(objNumber, genNumber) {\n /**\n * Holds the `index` number of the object.\n * @default -1\n * @private\n */\n this.index3 = -1;\n /**\n * Internal variable to store the `position`.\n * @default -1\n * @private\n */\n this.position3 = -1;\n /**\n * Holds the `object number`.\n * @default 0\n * @private\n */\n this.objNumber = 0;\n /**\n * Holds the `generation number` of the object.\n * @default 0\n * @private\n */\n this.genNumber = 0;\n if (typeof objNumber === 'number' && typeof genNumber === 'number') {\n this.objNumber = objNumber;\n this.genNumber = genNumber;\n // } else if (typeof objNum === 'string' && typeof genNum === 'string') {\n }\n else {\n this.objNumber = Number(objNumber);\n this.genNumber = Number(genNumber);\n }\n }\n Object.defineProperty(PdfReference.prototype, \"status\", {\n //Property\n /**\n * Gets or sets the `Status` of the specified object.\n * @private\n */\n get: function () {\n return this.status3;\n },\n set: function (value) {\n this.status3 = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfReference.prototype, \"isSaving\", {\n /**\n * Gets or sets a value indicating whether this document `is saving` or not.\n * @private\n */\n get: function () {\n return this.isSaving3;\n },\n set: function (value) {\n this.isSaving3 = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfReference.prototype, \"objectCollectionIndex\", {\n /**\n * Gets or sets the `index` value of the specified object.\n * @private\n */\n get: function () {\n return this.index3;\n },\n set: function (value) {\n this.index3 = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfReference.prototype, \"position\", {\n /**\n * Gets or sets the `position` of the object.\n * @private\n */\n get: function () {\n return this.position3;\n },\n set: function (value) {\n this.position3 = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfReference.prototype, \"clonedObject\", {\n /**\n * Returns `cloned object`.\n * @private\n */\n get: function () {\n var returnObject3 = null;\n return returnObject3;\n },\n enumerable: true,\n configurable: true\n });\n //IPdfPrimitives methods\n /**\n * `Saves` the object.\n * @private\n */\n PdfReference.prototype.save = function (writer) {\n writer.write(this.toString());\n };\n /**\n * Returns a `string` representing the object.\n * @private\n */\n PdfReference.prototype.toString = function () {\n return this.objNumber.toString() + ' ' + this.genNumber.toString() + ' R';\n };\n /**\n * Creates a `deep copy` of the IPdfPrimitive object.\n * @private\n */\n PdfReference.prototype.clone = function (crossTable) {\n return null;\n };\n return PdfReference;\n}());\nexport { PdfReference };\n/**\n * `PdfReferenceHolder` class is used to perform reference holder related primitive operations.\n * @private\n */\nvar PdfReferenceHolder = /** @class */ (function () {\n function PdfReferenceHolder(obj1, obj2) {\n /**\n * Holds the `index` number of the object.\n * @default -1\n * @private\n */\n this.index4 = -1;\n /**\n * Internal variable to store the `position`.\n * @default -1\n * @private\n */\n this.position4 = -1;\n /**\n * The `index` of the object within the object collection.\n * @default -1\n * @private\n */\n this.objectIndex = -1;\n /**\n * @hidden\n * @private\n */\n this.dictionaryProperties = new DictionaryProperties();\n // if (typeof obj2 === 'undefined') {\n this.initialize(obj1);\n // }\n // else {\n // if (obj2 === null) {\n // throw new Error('ArgumentNullException : crossTable');\n // }\n // if (obj1 === null) {\n // throw new Error('ArgumentNullException : reference');\n // }\n // this.crossTable = obj2;\n // let tempObj1 : PdfReference = obj1;\n // this.reference = tempObj1;\n // }\n }\n Object.defineProperty(PdfReferenceHolder.prototype, \"status\", {\n //Properties\n /**\n * Gets or sets the `Status` of the specified object.\n * @private\n */\n get: function () {\n return this.status4;\n },\n set: function (value) {\n this.status4 = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfReferenceHolder.prototype, \"isSaving\", {\n /**\n * Gets or sets a value indicating whether this document `is saving` or not.\n * @private\n */\n get: function () {\n return this.isSaving4;\n },\n set: function (value) {\n this.isSaving4 = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfReferenceHolder.prototype, \"objectCollectionIndex\", {\n /**\n * Gets or sets the `index` value of the specified object.\n * @private\n */\n get: function () {\n return this.index4;\n },\n set: function (value) {\n this.index4 = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfReferenceHolder.prototype, \"position\", {\n /**\n * Gets or sets the `position` of the object.\n * @private\n */\n get: function () {\n return this.position4;\n },\n set: function (value) {\n this.position4 = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfReferenceHolder.prototype, \"clonedObject\", {\n /**\n * Returns `cloned object`.\n * @private\n */\n get: function () {\n return null;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfReferenceHolder.prototype, \"object\", {\n /**\n * Gets the `object` the reference is of.\n * @private\n */\n get: function () {\n // if ((this.reference != null) || (this.object == null)) {\n // this.object = this.GetterObject();\n // }\n return this.primitiveObject;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfReferenceHolder.prototype, \"reference\", {\n /**\n * Gets the `reference`.\n * @private\n */\n get: function () {\n return this.pdfReference;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfReferenceHolder.prototype, \"index\", {\n /**\n * Gets the `index` of the object.\n * @private\n */\n get: function () {\n // let items : PdfMainObjectCollection = this.crossTable.PdfObjects;\n // this.objectIndex = items.GetObjectIndex(this.reference);\n // if (this.objectIndex < 0) {\n // let obj : IPdfPrimitive = this.crossTable.GetObject(this.reference);\n // this.objectIndex = items.Count - 1;\n // }\n return this.objectIndex;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfReferenceHolder.prototype, \"element\", {\n /**\n * Gets the `element`.\n * @private\n */\n get: function () {\n return this.primitiveObject;\n },\n enumerable: true,\n configurable: true\n });\n PdfReferenceHolder.prototype.initialize = function (obj1) {\n if (obj1 instanceof PdfArray\n || obj1 instanceof PdfDictionary\n || obj1 instanceof PdfName\n || obj1 instanceof PdfNumber\n || obj1 instanceof PdfStream\n || obj1 instanceof PdfReference\n || obj1 instanceof PdfString) {\n this.primitiveObject = obj1;\n }\n else {\n var tempObj = obj1;\n this.initialize(tempObj.element);\n }\n };\n /**\n * `Writes` a reference into a PDF document.\n * @private\n */\n PdfReferenceHolder.prototype.save = function (writer) {\n // if (writer == null) {\n // throw new Error('ArgumentNullException : writer');\n // }\n var position = writer.position;\n var cTable = writer.document.crossTable;\n // if (cTable.Document instanceof PdfDocument) {\n this.object.isSaving = true;\n // }\n var reference = null;\n // if (writer.Document.FileStructure.IncrementalUpdate === true && writer.Document.isStreamCopied === true) {\n // if (this.reference === null) {\n // reference = cTable.GetReference(this.Object);\n // } else {\n // reference = this.reference;\n // }\n // } else {\n // reference = cTable.GetReference(this.Object);\n // }\n // if (!(writer.Document.FileStructure.IncrementalUpdate === true && writer.Document.isStreamCopied === true)) {\n reference = cTable.getReference(this.object);\n // }\n // if (writer.Position !== position) {\n // writer.Position = position;\n // }\n reference.save(writer);\n };\n /**\n * Creates a `copy of PdfReferenceHolder`.\n * @private\n */\n PdfReferenceHolder.prototype.clone = function (crossTable) {\n var refHolder = null;\n var temp = null;\n var refNum = '';\n var reference = null;\n // Restricts addition of same object multiple time.\n /* if (this.Reference != null && this.crossTable != null && this.crossTable.PageCorrespondance.containsKey(this.Reference)) {\n refHolder = new PdfReferenceHolder(this.crossTable.PageCorrespondance.getValue(this.Reference) as PdfReference, crossTable);\n return refHolder;\n }\n if (Object instanceof PdfNumber) {\n return new PdfNumber((Object as PdfNumber).IntValue);\n }\n */\n // if (Object instanceof PdfDictionary) {\n // // Meaning the referenced page is not available for import.\n // let type : PdfName = new PdfName(this.dictionaryProperties.type);\n // let dict : PdfDictionary = Object as PdfDictionary;\n // if (dict.ContainsKey(type)) {\n // let pageName : PdfName = dict.Items.getValue(type.Value) as PdfName;\n // if (pageName !== null) {\n // if (pageName.Value === 'Page') {\n // return new PdfNull();\n // }\n // }\n // }\n // }\n /* if (Object instanceof PdfName) {\n return new PdfName ((Object as PdfName ).Value);\n }\n */\n // Resolves circular references.\n // if (crossTable.PrevReference !== null && (crossTable.PrevReference.indexOf(this.Reference) !== -1)) {\n // let obj : IPdfPrimitive = this.crossTable.GetObject(this.Reference).ClonedObject;\n // if (obj !== null) {\n // reference = crossTable.GetReference(obj);\n // return new PdfReferenceHolder(reference, crossTable);\n // } else {\n // return new PdfNull();\n // }\n // }\n /*if (this.Reference !== null) {\n crossTable.PrevReference.push(this.Reference);\n }\n reference = crossTable.GetReference(temp);\n refHolder = new PdfReferenceHolder(reference, crossTable);\n return refHolder;\n */\n return null;\n };\n return PdfReferenceHolder;\n}());\nexport { PdfReferenceHolder };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * PdfCatalog.ts class for EJ2-PDF\n */\nimport { PdfDictionary } from './../primitives/pdf-dictionary';\nimport { DictionaryProperties } from './../input-output/pdf-dictionary-properties';\nimport { PdfName } from './../primitives/pdf-name';\nimport { PdfReferenceHolder } from './../primitives/pdf-reference';\n/**\n * `PdfCatalog` class represents internal catalog of the Pdf document.\n * @private\n */\nvar PdfCatalog = /** @class */ (function (_super) {\n __extends(PdfCatalog, _super);\n //constructor\n /**\n * Initializes a new instance of the `PdfCatalog` class.\n * @private\n */\n function PdfCatalog() {\n var _this = _super.call(this) || this;\n //fields\n /**\n * Internal variable to store collection of `sections`.\n * @default null\n * @private\n */\n _this.sections = null;\n /**\n * Internal variable for accessing fields from `DictionryProperties` class.\n * @private\n */\n _this.tempDictionaryProperties = new DictionaryProperties();\n _this.items.setValue(new DictionaryProperties().type, new PdfName('Catalog'));\n return _this;\n }\n Object.defineProperty(PdfCatalog.prototype, \"pages\", {\n //Properties\n /**\n * Gets or sets the sections, which contain `pages`.\n * @private\n */\n get: function () {\n return this.sections;\n },\n set: function (value) {\n var dictionary = value.element;\n // if (this.sections !== value) {\n // this.sections = value;\n // this.Items.setValue(this.tempDictionaryProperties.pages, new PdfReferenceHolder(value));\n // }\n this.sections = value;\n this.items.setValue(this.tempDictionaryProperties.pages, new PdfReferenceHolder(value));\n },\n enumerable: true,\n configurable: true\n });\n return PdfCatalog;\n}(PdfDictionary));\nexport { PdfCatalog };\n","/**\n * public Enum for `PdfPageOrientation`.\n * @private\n */\nexport var PdfPageOrientation;\n(function (PdfPageOrientation) {\n /**\n * Specifies the type of `Portrait`.\n * @private\n */\n PdfPageOrientation[PdfPageOrientation[\"Portrait\"] = 0] = \"Portrait\";\n /**\n * Specifies the type of `Landscape`.\n * @private\n */\n PdfPageOrientation[PdfPageOrientation[\"Landscape\"] = 1] = \"Landscape\";\n})(PdfPageOrientation || (PdfPageOrientation = {}));\n/**\n * public Enum for `PdfPageRotateAngle`.\n * @private\n */\nexport var PdfPageRotateAngle;\n(function (PdfPageRotateAngle) {\n /**\n * Specifies the type of `RotateAngle0`.\n * @private\n */\n PdfPageRotateAngle[PdfPageRotateAngle[\"RotateAngle0\"] = 0] = \"RotateAngle0\";\n /**\n * Specifies the type of `RotateAngle90`.\n * @private\n */\n PdfPageRotateAngle[PdfPageRotateAngle[\"RotateAngle90\"] = 1] = \"RotateAngle90\";\n /**\n * Specifies the type of `RotateAngle180`.\n * @private\n */\n PdfPageRotateAngle[PdfPageRotateAngle[\"RotateAngle180\"] = 2] = \"RotateAngle180\";\n /**\n * Specifies the type of `RotateAngle270`.\n * @private\n */\n PdfPageRotateAngle[PdfPageRotateAngle[\"RotateAngle270\"] = 3] = \"RotateAngle270\";\n})(PdfPageRotateAngle || (PdfPageRotateAngle = {}));\n/**\n * public Enum for `PdfNumberStyle`.\n * @private\n */\nexport var PdfNumberStyle;\n(function (PdfNumberStyle) {\n /**\n * Specifies the type of `None`.\n * @private\n */\n PdfNumberStyle[PdfNumberStyle[\"None\"] = 0] = \"None\";\n /**\n * Specifies the type of `Numeric`.\n * @private\n */\n PdfNumberStyle[PdfNumberStyle[\"Numeric\"] = 1] = \"Numeric\";\n /**\n * Specifies the type of `LowerLatin`.\n * @private\n */\n PdfNumberStyle[PdfNumberStyle[\"LowerLatin\"] = 2] = \"LowerLatin\";\n /**\n * Specifies the type of `LowerRoman`.\n * @private\n */\n PdfNumberStyle[PdfNumberStyle[\"LowerRoman\"] = 3] = \"LowerRoman\";\n /**\n * Specifies the type of `UpperLatin`.\n * @private\n */\n PdfNumberStyle[PdfNumberStyle[\"UpperLatin\"] = 4] = \"UpperLatin\";\n /**\n * Specifies the type of `UpperRoman`.\n * @private\n */\n PdfNumberStyle[PdfNumberStyle[\"UpperRoman\"] = 5] = \"UpperRoman\";\n})(PdfNumberStyle || (PdfNumberStyle = {}));\n/**\n * public Enum for `PdfDockStyle`.\n * @private\n */\nexport var PdfDockStyle;\n(function (PdfDockStyle) {\n /**\n * Specifies the type of `None`.\n * @private\n */\n PdfDockStyle[PdfDockStyle[\"None\"] = 0] = \"None\";\n /**\n * Specifies the type of `Bottom`.\n * @private\n */\n PdfDockStyle[PdfDockStyle[\"Bottom\"] = 1] = \"Bottom\";\n /**\n * Specifies the type of `Top`.\n * @private\n */\n PdfDockStyle[PdfDockStyle[\"Top\"] = 2] = \"Top\";\n /**\n * Specifies the type of `Left`.\n * @private\n */\n PdfDockStyle[PdfDockStyle[\"Left\"] = 3] = \"Left\";\n /**\n * Specifies the type of `Right`.\n * @private\n */\n PdfDockStyle[PdfDockStyle[\"Right\"] = 4] = \"Right\";\n /**\n * Specifies the type of `Fill`.\n * @private\n */\n PdfDockStyle[PdfDockStyle[\"Fill\"] = 5] = \"Fill\";\n})(PdfDockStyle || (PdfDockStyle = {}));\n/**\n * public Enum for `PdfAlignmentStyle`.\n * @private\n */\nexport var PdfAlignmentStyle;\n(function (PdfAlignmentStyle) {\n /**\n * Specifies the type of `None`.\n * @private\n */\n PdfAlignmentStyle[PdfAlignmentStyle[\"None\"] = 0] = \"None\";\n /**\n * Specifies the type of `TopLeft`.\n * @private\n */\n PdfAlignmentStyle[PdfAlignmentStyle[\"TopLeft\"] = 1] = \"TopLeft\";\n /**\n * Specifies the type of `TopCenter`.\n * @private\n */\n PdfAlignmentStyle[PdfAlignmentStyle[\"TopCenter\"] = 2] = \"TopCenter\";\n /**\n * Specifies the type of `TopRight`.\n * @private\n */\n PdfAlignmentStyle[PdfAlignmentStyle[\"TopRight\"] = 3] = \"TopRight\";\n /**\n * Specifies the type of `MiddleLeft`.\n * @private\n */\n PdfAlignmentStyle[PdfAlignmentStyle[\"MiddleLeft\"] = 4] = \"MiddleLeft\";\n /**\n * Specifies the type of `MiddleCenter`.\n * @private\n */\n PdfAlignmentStyle[PdfAlignmentStyle[\"MiddleCenter\"] = 5] = \"MiddleCenter\";\n /**\n * Specifies the type of `MiddleRight`.\n * @private\n */\n PdfAlignmentStyle[PdfAlignmentStyle[\"MiddleRight\"] = 6] = \"MiddleRight\";\n /**\n * Specifies the type of `BottomLeft`.\n * @private\n */\n PdfAlignmentStyle[PdfAlignmentStyle[\"BottomLeft\"] = 7] = \"BottomLeft\";\n /**\n * Specifies the type of `BottomCenter`.\n * @private\n */\n PdfAlignmentStyle[PdfAlignmentStyle[\"BottomCenter\"] = 8] = \"BottomCenter\";\n /**\n * Specifies the type of `BottomRight`.\n * @private\n */\n PdfAlignmentStyle[PdfAlignmentStyle[\"BottomRight\"] = 9] = \"BottomRight\";\n})(PdfAlignmentStyle || (PdfAlignmentStyle = {}));\n/**\n * public Enum for `TemplateType`.\n * @private\n */\nexport var TemplateType;\n(function (TemplateType) {\n /**\n * Specifies the type of `None`.\n * @private\n */\n TemplateType[TemplateType[\"None\"] = 0] = \"None\";\n /**\n * Specifies the type of `Top`.\n * @private\n */\n TemplateType[TemplateType[\"Top\"] = 1] = \"Top\";\n /**\n * Specifies the type of `Bottom`.\n * @private\n */\n TemplateType[TemplateType[\"Bottom\"] = 2] = \"Bottom\";\n /**\n * Specifies the type of `Left`.\n * @private\n */\n TemplateType[TemplateType[\"Left\"] = 3] = \"Left\";\n /**\n * Specifies the type of `Right`.\n * @private\n */\n TemplateType[TemplateType[\"Right\"] = 4] = \"Right\";\n})(TemplateType || (TemplateType = {}));\n","import { ObjectStatus } from './../input-output/enum';\nimport { PdfDictionary } from './../primitives/pdf-dictionary';\nimport { DictionaryProperties } from './pdf-dictionary-properties';\nimport { Operators } from './pdf-operators';\nimport { Dictionary } from './../collections/dictionary';\nimport { PdfReference } from './../primitives/pdf-reference';\nimport { ObjectType } from './cross-table';\nimport { PdfStream } from './../primitives/pdf-stream';\nimport { PdfNumber } from './../primitives/pdf-number';\nimport { PdfCatalog } from './../document/pdf-catalog';\n/**\n * `PdfCrossTable` is responsible for intermediate level parsing\n * and savingof a PDF document.\n * @private\n */\nvar PdfCrossTable = /** @class */ (function () {\n function PdfCrossTable() {\n /**\n * The modified `objects` that should be saved.\n * @private\n */\n this.objects = new Dictionary();\n /**\n * Holds `maximal generation number` or offset to object.\n * @default 0\n * @private\n */\n this.maxGenNumIndex = 0;\n /**\n * The `number of the objects`.\n * @default 0\n * @private\n */\n this.objectCount = 0;\n /**\n * Internal variable for accessing fields from `DictionryProperties` class.\n * @default new PdfDictionaryProperties()\n * @private\n */\n this.dictionaryProperties = new DictionaryProperties();\n }\n Object.defineProperty(PdfCrossTable.prototype, \"isMerging\", {\n //Properties\n /**\n * Gets or sets if the document `is merged`.\n * @private\n */\n get: function () {\n return this.merging;\n },\n set: function (value) {\n this.merging = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfCrossTable.prototype, \"trailer\", {\n /**\n * Gets the `trailer`.\n * @private\n */\n get: function () {\n if (this.internalTrailer == null) {\n this.internalTrailer = new PdfStream();\n }\n return this.internalTrailer;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfCrossTable.prototype, \"document\", {\n /**\n * Gets or sets the main `PdfDocument` class instance.\n * @private\n */\n get: function () {\n return this.pdfDocument;\n },\n set: function (value) {\n this.pdfDocument = value;\n this.items = this.pdfDocument.pdfObjects;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfCrossTable.prototype, \"pdfObjects\", {\n /**\n * Gets the catched `PDF object` main collection.\n * @private\n */\n get: function () {\n return this.items;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfCrossTable.prototype, \"objectCollection\", {\n /**\n * Gets the `object collection`.\n * @private\n */\n get: function () {\n return this.pdfDocument.pdfObjects;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfCrossTable.prototype, \"count\", {\n /**\n * Gets or sets the `number of the objects` within the document.\n * @private\n */\n get: function () {\n return this.objectCount;\n },\n set: function (value) {\n this.objectCount = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfCrossTable.prototype, \"nextObjNumber\", {\n /**\n * Returns `next available object number`.\n * @private\n */\n get: function () {\n this.count = this.count + 1;\n return this.count;\n },\n enumerable: true,\n configurable: true\n });\n PdfCrossTable.prototype.save = function (writer, filename) {\n this.saveHead(writer);\n var state = false;\n this.mappedReferences = null;\n this.objects.clear();\n this.markTrailerReferences();\n this.saveObjects(writer);\n var saveCount = this.count;\n var xrefPos = writer.position;\n this.registerObject(0, new PdfReference(0, -1), true);\n var prevXRef = 0;\n writer.write(Operators.xref);\n writer.write(Operators.newLine);\n this.saveSections(writer);\n this.saveTrailer(writer, this.count, prevXRef);\n this.saveTheEndess(writer, xrefPos);\n this.count = saveCount;\n for (var i = 0; i < this.objectCollection.count; ++i) {\n var oi = this.objectCollection.items(i);\n oi.object.isSaving = false;\n }\n if (typeof filename === 'undefined') {\n return writer.stream.buffer;\n }\n else {\n writer.stream.save(filename);\n }\n };\n /**\n * `Saves the endess` of the file.\n * @private\n */\n PdfCrossTable.prototype.saveTheEndess = function (writer, xrefPos) {\n writer.write(Operators.newLine + Operators.startxref + Operators.newLine);\n writer.write(xrefPos.toString() + Operators.newLine);\n writer.write(Operators.eof + Operators.newLine);\n };\n /**\n * `Saves the new trailer` dictionary.\n * @private\n */\n PdfCrossTable.prototype.saveTrailer = function (writer, count, prevXRef) {\n writer.write(Operators.trailer + Operators.newLine);\n // Save the dictionary.\n var trailer = this.trailer;\n trailer.items.setValue(this.dictionaryProperties.size, new PdfNumber(this.objectCount + 1));\n trailer = new PdfDictionary(trailer); // Make it real dictionary.\n trailer.setEncrypt(false);\n trailer.save(writer);\n };\n /**\n * `Saves the xref section`.\n * @private\n */\n PdfCrossTable.prototype.saveSections = function (writer) {\n var objectNum = 0;\n var count = 0;\n do {\n count = this.prepareSubsection(objectNum);\n this.saveSubsection(writer, objectNum, count);\n objectNum += count;\n } while (count !== 0);\n };\n /**\n * `Saves a subsection`.\n * @private\n */\n PdfCrossTable.prototype.saveSubsection = function (writer, objectNum, count) {\n if (count <= 0 || objectNum >= this.count) {\n return;\n }\n var subsectionHead = '{0} {1}{2}';\n writer.write(objectNum + ' ' + (count + 1) + Operators.newLine);\n for (var i = objectNum; i <= objectNum + count; ++i) {\n var obj = this.objects.getValue(i);\n var str = '';\n if (obj.type === ObjectType.Free) {\n str = this.getItem(obj.offset, 65535, true);\n }\n else {\n str = this.getItem(obj.offset, obj.generation, false);\n }\n writer.write(str);\n }\n };\n /**\n * Generates string for `xref table item`.\n * @private\n */\n PdfCrossTable.prototype.getItem = function (offset, genNumber, isFree) {\n var returnString = '';\n var addOffsetLength = 10 - offset.toString().length;\n if (genNumber <= 0) {\n genNumber = 0;\n }\n var addGenNumberLength = (5 - genNumber.toString().length) <= 0 ? 0 : (5 - genNumber.toString().length);\n for (var index = 0; index < addOffsetLength; index++) {\n returnString = returnString + '0';\n }\n returnString = returnString + offset.toString() + ' ';\n for (var index = 0; index < addGenNumberLength; index++) {\n returnString = returnString + '0';\n }\n returnString = returnString + genNumber.toString() + ' ';\n returnString = returnString + ((isFree) ? Operators.f : Operators.n) + Operators.newLine;\n return returnString;\n };\n /**\n * `Prepares a subsection` of the current section within the cross-reference table.\n * @private\n */\n PdfCrossTable.prototype.prepareSubsection = function (objectNum) {\n var count = 0;\n var i;\n var total = this.count;\n for (var k = 0; k < this.document.pdfObjects.count; k++) {\n var reference = this.document.pdfObjects.items(k).reference;\n var refString = reference.toString();\n var refArray = refString.split(' ');\n }\n if (objectNum >= total) {\n return count;\n }\n // search for first changed indirect object.\n for (i = objectNum; i < total; ++i) {\n break;\n }\n objectNum = i;\n // look up for all indirect objects in one subsection.\n for (; i < total; ++i) {\n ++count;\n }\n return count;\n };\n /**\n * `Marks the trailer references` being saved.\n * @private\n */\n PdfCrossTable.prototype.markTrailerReferences = function () {\n var tempArray;\n var keys = this.trailer.items.keys();\n var values = this.trailer.items.values();\n };\n /**\n * `Saves the head`.\n * @private\n */\n PdfCrossTable.prototype.saveHead = function (writer) {\n var version = this.generateFileVersion(writer.document);\n writer.write('%PDF-' + version);\n writer.write(Operators.newLine);\n };\n /**\n * Generates the `version` of the file.\n * @private\n */\n PdfCrossTable.prototype.generateFileVersion = function (document) {\n var iVersion = 4;\n var version = '1.' + iVersion.toString();\n return version;\n };\n PdfCrossTable.prototype.getReference = function (obj, bNew) {\n if (typeof bNew === 'undefined') {\n var wasNew = false;\n return this.getReference(obj, wasNew);\n }\n else {\n //code splitted for reducing lines of code exceeds 100.\n return this.getSubReference(obj, bNew);\n }\n };\n /**\n * Retrieves the `reference` of the object given.\n * @private\n */\n PdfCrossTable.prototype.getSubReference = function (obj, bNew) {\n var isNew = false;\n var wasNew;\n var reference = null;\n // if (obj.IsSaving) {\n if (this.items.count > 0 && obj.objectCollectionIndex > 0 && this.items.count > obj.objectCollectionIndex - 1) {\n var tempObj = this.document.pdfObjects.getReference(obj, wasNew);\n reference = tempObj.reference;\n wasNew = tempObj.wasNew;\n }\n if (reference == null) {\n if (obj.status === ObjectStatus.Registered) {\n wasNew = false;\n }\n else {\n wasNew = true;\n }\n }\n else {\n wasNew = false;\n }\n // need to add mapped reference code\n if (reference == null) {\n var objnumber = this.nextObjNumber;\n reference = new PdfReference(objnumber, 0);\n var found = void 0;\n if (wasNew) {\n this.document.pdfObjects.add(obj);\n this.document.pdfObjects.trySetReference(obj, reference, found);\n var tempIndex = this.document.pdfObjects.count - 1;\n var tempkey = this.document.pdfObjects.objectCollections[tempIndex].reference.objNumber;\n var tempvalue = this.document.pdfObjects.objectCollections[this.document.pdfObjects.count - 1];\n this.document.pdfObjects.mainObjectCollection.setValue(tempkey, tempvalue);\n obj.position = -1;\n }\n else {\n this.document.pdfObjects.trySetReference(obj, reference, found);\n }\n obj.objectCollectionIndex = reference.objNumber;\n obj.status = ObjectStatus.None;\n isNew = true;\n }\n bNew = isNew || this.bForceNew;\n return reference;\n };\n /**\n * `Saves all objects` in the collection.\n * @private\n */\n PdfCrossTable.prototype.saveObjects = function (writer) {\n var objectCollection = this.objectCollection;\n for (var i = 0; i < objectCollection.count; ++i) {\n var oi = objectCollection.items(i);\n var obj = oi.object;\n obj.isSaving = true;\n this.saveIndirectObject(obj, writer);\n }\n };\n /**\n * `Saves indirect object`.\n * @private\n */\n PdfCrossTable.prototype.saveIndirectObject = function (obj, writer) {\n var reference = this.getReference(obj);\n if (obj instanceof PdfCatalog) {\n this.trailer.items.setValue(this.dictionaryProperties.root, reference);\n }\n // NOTE : This is needed for correct string objects encryption.\n this.pdfDocument.currentSavingObj = reference;\n var tempArchive = false;\n tempArchive = obj.getArchive();\n var allowedType = !((obj instanceof PdfStream) || !tempArchive || (obj instanceof PdfCatalog));\n var sigFlag = false;\n this.registerObject(writer.position, reference);\n this.doSaveObject(obj, reference, writer);\n };\n /**\n * Performs `real saving` of the save object.\n * @private\n */\n PdfCrossTable.prototype.doSaveObject = function (obj, reference, writer) {\n var correctPosition = writer.length;\n writer.write(reference.objNumber.toString());\n writer.write(Operators.whiteSpace);\n writer.write(reference.genNumber.toString());\n writer.write(Operators.whiteSpace);\n writer.write(Operators.obj);\n writer.write(Operators.newLine);\n obj.save(writer);\n var stream = writer.stream;\n writer.write(Operators.endObj);\n writer.write(Operators.newLine);\n };\n PdfCrossTable.prototype.registerObject = function (offset, reference, free) {\n if (typeof free === 'boolean') {\n // Register the object by its number.\n this.objects.setValue(reference.objNumber, new RegisteredObject(offset, reference, free));\n this.maxGenNumIndex = Math.max(this.maxGenNumIndex, reference.genNumber);\n }\n else if (typeof free === 'undefined') {\n // Register the object by its number.\n this.objects.setValue(reference.objNumber, new RegisteredObject(offset, reference));\n this.maxGenNumIndex = Math.max(this.maxGenNumIndex, reference.genNumber);\n }\n };\n /**\n * `Dereferences` the specified primitive object.\n * @private\n */\n PdfCrossTable.dereference = function (obj) {\n var rh = obj;\n if (rh != null) {\n obj = rh.object;\n }\n return obj;\n };\n return PdfCrossTable;\n}());\nexport { PdfCrossTable };\nvar RegisteredObject = /** @class */ (function () {\n function RegisteredObject(offset, reference, free) {\n var tempOffset = offset;\n this.offsetNumber = tempOffset;\n var tempReference = reference;\n this.generation = tempReference.genNumber;\n this.object = tempReference.objNumber;\n if (typeof free === 'undefined') {\n this.type = ObjectType.Normal;\n }\n else {\n this.type = ObjectType.Free;\n }\n }\n Object.defineProperty(RegisteredObject.prototype, \"objectNumber\", {\n //Properties\n /**\n * Gets the `object number`.\n * @private\n */\n get: function () {\n return this.object;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(RegisteredObject.prototype, \"offset\", {\n /**\n * Gets the `offset`.\n * @private\n */\n get: function () {\n var result;\n result = this.offsetNumber;\n return result;\n },\n enumerable: true,\n configurable: true\n });\n return RegisteredObject;\n}());\nexport { RegisteredObject };\n","/**\n * Coordinates of Position for `PointF`.\n * @private\n */\nvar PointF = /** @class */ (function () {\n function PointF(x, y) {\n if (typeof x === 'undefined') {\n this.x = 0;\n this.y = 0;\n }\n else {\n if (x !== null) {\n this.x = x;\n }\n else {\n this.x = 0;\n }\n if (y !== null) {\n this.y = y;\n }\n else {\n this.y = 0;\n }\n }\n }\n return PointF;\n}());\nexport { PointF };\n/**\n * Width and Height as `Size`.\n * @private\n */\nvar SizeF = /** @class */ (function () {\n function SizeF(width, height) {\n if (typeof height === 'undefined') {\n this.height = 0;\n this.width = 0;\n }\n else {\n if (height !== null) {\n this.height = height;\n }\n else {\n this.height = 0;\n }\n if (width !== null) {\n this.width = width;\n }\n else {\n this.width = 0;\n }\n }\n }\n return SizeF;\n}());\nexport { SizeF };\n/**\n * `RectangleF` with Position and size.\n * @private\n */\nvar RectangleF = /** @class */ (function () {\n function RectangleF(arg1, arg2, arg3, arg4) {\n if (typeof arg1 === typeof arg1 && typeof arg1 === 'undefined') {\n this.x = 0;\n this.y = 0;\n this.height = 0;\n this.width = 0;\n }\n else {\n if (arg1 instanceof PointF && arg2 instanceof SizeF && typeof arg3 === 'undefined') {\n var pointf = arg1;\n this.x = pointf.x;\n this.y = pointf.y;\n var sizef = arg2;\n this.height = sizef.height;\n this.width = sizef.width;\n }\n else {\n var x = arg1;\n var y = arg2;\n var width = arg3;\n var height = arg4;\n this.x = x;\n this.y = y;\n this.height = height;\n this.width = width;\n }\n }\n }\n return RectangleF;\n}());\nexport { RectangleF };\n/**\n * `Rectangle` with left, right, top and bottom.\n * @private\n */\nvar Rectangle = /** @class */ (function () {\n /**\n * Instance of `RectangleF` class with X, Y, Width and Height.\n * @private\n */\n function Rectangle(left, top, right, bottom) {\n this.left = left;\n this.top = top;\n this.right = right;\n this.bottom = bottom;\n }\n Object.defineProperty(Rectangle.prototype, \"width\", {\n /**\n * Gets a value of width\n */\n get: function () {\n return this.right - this.left;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rectangle.prototype, \"height\", {\n /**\n * Gets a value of height\n */\n get: function () {\n return this.bottom - this.top;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rectangle.prototype, \"topLeft\", {\n /**\n * Gets a value of Top and Left\n */\n get: function () {\n return new PointF(this.left, this.top);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rectangle.prototype, \"size\", {\n /**\n * Gets a value of size\n */\n get: function () {\n return new SizeF(this.width, this.height);\n },\n enumerable: true,\n configurable: true\n });\n Rectangle.prototype.toString = function () {\n return this.topLeft + 'x' + this.size;\n };\n return Rectangle;\n}());\nexport { Rectangle };\n","/**\n * PdfPageSize.ts class for EJ2-PDF\n */\nimport { SizeF } from './../drawing/pdf-drawing';\n/**\n * Represents information about various predefined `page sizes`.\n */\nvar PdfPageSize = /** @class */ (function () {\n //constructor\n /**\n * Initialize an instance for `PdfPageSize` class.\n * @private\n */\n function PdfPageSize() {\n // \n }\n /**\n * Specifies the size of `letter`.\n * @private\n */\n PdfPageSize.letter = new SizeF(612, 792);\n /**\n * Specifies the size of `note`.\n * @private\n */\n PdfPageSize.note = new SizeF(540, 720);\n /**\n * Specifies the size of `legal`.\n * @private\n */\n PdfPageSize.legal = new SizeF(612, 1008);\n /**\n * Specifies the size of `a0`.\n * @private\n */\n PdfPageSize.a0 = new SizeF(2380, 3368);\n /**\n * Specifies the size of `a1`.\n * @private\n */\n PdfPageSize.a1 = new SizeF(1684, 2380);\n /**\n * Specifies the size of `a2`.\n * @private\n */\n PdfPageSize.a2 = new SizeF(1190, 1684);\n /**\n * Specifies the size of `a3`.\n * @private\n */\n PdfPageSize.a3 = new SizeF(842, 1190);\n /**\n * Specifies the size of `a4`.\n * @private\n */\n PdfPageSize.a4 = new SizeF(595, 842);\n /**\n * Specifies the size of `a5`.\n * @private\n */\n PdfPageSize.a5 = new SizeF(421, 595);\n /**\n * Specifies the size of `a6`.\n * @private\n */\n PdfPageSize.a6 = new SizeF(297, 421);\n /**\n * Specifies the size of `a7`.\n * @private\n */\n PdfPageSize.a7 = new SizeF(210, 297);\n /**\n * Specifies the size of `a8`.\n * @private\n */\n PdfPageSize.a8 = new SizeF(148, 210);\n /**\n * Specifies the size of `a9`.\n * @private\n */\n PdfPageSize.a9 = new SizeF(105, 148);\n /**\n * Specifies the size of `a10`.\n * @private\n */\n PdfPageSize.a10 = new SizeF(74, 105);\n /**\n * Specifies the size of `b0`.\n * @private\n */\n PdfPageSize.b0 = new SizeF(2836, 4008);\n /**\n * Specifies the size of `b1`.\n * @private\n */\n PdfPageSize.b1 = new SizeF(2004, 2836);\n /**\n * Specifies the size of `b2`.\n * @private\n */\n PdfPageSize.b2 = new SizeF(1418, 2004);\n /**\n * Specifies the size of `b3`.\n * @private\n */\n PdfPageSize.b3 = new SizeF(1002, 1418);\n /**\n * Specifies the size of `b4`.\n * @private\n */\n PdfPageSize.b4 = new SizeF(709, 1002);\n /**\n * Specifies the size of `b5`.\n * @private\n */\n PdfPageSize.b5 = new SizeF(501, 709);\n /**\n * Specifies the size of `archE`.\n * @private\n */\n PdfPageSize.archE = new SizeF(2592, 3456);\n /**\n * Specifies the size of `archD`.\n * @private\n */\n PdfPageSize.archD = new SizeF(1728, 2592);\n /**\n * Specifies the size of `archC`.\n * @private\n */\n PdfPageSize.archC = new SizeF(1296, 1728);\n /**\n * Specifies the size of `archB`.\n * @private\n */\n PdfPageSize.archB = new SizeF(864, 1296);\n /**\n * Specifies the size of `archA`.\n * @private\n */\n PdfPageSize.archA = new SizeF(648, 864);\n /**\n * Specifies the size of `flsa`.\n * @private\n */\n PdfPageSize.flsa = new SizeF(612, 936);\n /**\n * Specifies the size of `halfLetter`.\n * @private\n */\n PdfPageSize.halfLetter = new SizeF(396, 612);\n /**\n * Specifies the size of `letter11x17`.\n * @private\n */\n PdfPageSize.letter11x17 = new SizeF(792, 1224);\n /**\n * Specifies the size of `ledger`.\n * @private\n */\n PdfPageSize.ledger = new SizeF(1224, 792);\n return PdfPageSize;\n}());\nexport { PdfPageSize };\n","/**\n * PdfMargins.ts class for EJ2-PDF\n * A class representing PDF page margins.\n */\nvar PdfMargins = /** @class */ (function () {\n /**\n * Initializes a new instance of the `PdfMargins` class.\n * @private\n */\n function PdfMargins() {\n /**\n * Represents the `Default Page Margin` value.\n * @default 0.0\n * @private\n */\n this.pdfMargin = 40.0;\n this.setMargins(this.pdfMargin);\n }\n Object.defineProperty(PdfMargins.prototype, \"left\", {\n //Properties\n /**\n * Gets or sets the `left margin` size.\n * @private\n */\n get: function () {\n return this.leftMargin;\n },\n set: function (value) {\n this.leftMargin = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfMargins.prototype, \"top\", {\n /**\n * Gets or sets the `top margin` size.\n * @private\n */\n get: function () {\n return this.topMargin;\n },\n set: function (value) {\n this.topMargin = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfMargins.prototype, \"right\", {\n /**\n * Gets or sets the `right margin` size.\n * @private\n */\n get: function () {\n return this.rightMargin;\n },\n set: function (value) {\n this.rightMargin = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfMargins.prototype, \"bottom\", {\n /**\n * Gets or sets the `bottom margin` size.\n * @private\n */\n get: function () {\n return this.bottomMargin;\n },\n set: function (value) {\n this.bottomMargin = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfMargins.prototype, \"all\", {\n /**\n * Sets the `margins`.\n * @private\n */\n set: function (value) {\n this.setMargins(value);\n },\n enumerable: true,\n configurable: true\n });\n PdfMargins.prototype.setMargins = function (margin1, margin2, margin3, margin4) {\n if (typeof margin2 === 'undefined') {\n this.leftMargin = this.topMargin = this.rightMargin = this.bottomMargin = margin1;\n }\n else {\n if (typeof margin3 === 'undefined') {\n this.leftMargin = this.rightMargin = margin1;\n this.bottomMargin = this.topMargin = margin2;\n }\n else {\n this.leftMargin = margin1;\n this.topMargin = margin2;\n this.rightMargin = margin3;\n this.bottomMargin = margin4;\n }\n }\n };\n /**\n * `Clones` the object.\n * @private\n */\n PdfMargins.prototype.clone = function () {\n return this;\n };\n return PdfMargins;\n}());\nexport { PdfMargins };\n","/**\n * public Enum for `PdfHorizontalAlignment`.\n * @private\n */\nexport var PdfHorizontalAlignment;\n(function (PdfHorizontalAlignment) {\n /**\n * Specifies the type of `Left`.\n * @private\n */\n PdfHorizontalAlignment[PdfHorizontalAlignment[\"Left\"] = 0] = \"Left\";\n /**\n * Specifies the type of `Center`.\n * @private\n */\n PdfHorizontalAlignment[PdfHorizontalAlignment[\"Center\"] = 1] = \"Center\";\n /**\n * Specifies the type of `Right`.\n * @private\n */\n PdfHorizontalAlignment[PdfHorizontalAlignment[\"Right\"] = 2] = \"Right\";\n})(PdfHorizontalAlignment || (PdfHorizontalAlignment = {}));\n/**\n * public Enum for `PdfVerticalAlignment`.\n * @private\n */\nexport var PdfVerticalAlignment;\n(function (PdfVerticalAlignment) {\n /**\n * Specifies the type of `Top`.\n * @private\n */\n PdfVerticalAlignment[PdfVerticalAlignment[\"Top\"] = 0] = \"Top\";\n /**\n * Specifies the type of `Middle`.\n * @private\n */\n PdfVerticalAlignment[PdfVerticalAlignment[\"Middle\"] = 1] = \"Middle\";\n /**\n * Specifies the type of `Bottom`.\n * @private\n */\n PdfVerticalAlignment[PdfVerticalAlignment[\"Bottom\"] = 2] = \"Bottom\";\n})(PdfVerticalAlignment || (PdfVerticalAlignment = {}));\n/**\n * public Enum for `public`.\n * @private\n */\nexport var PdfTextAlignment;\n(function (PdfTextAlignment) {\n /**\n * Specifies the type of `Left`.\n * @private\n */\n PdfTextAlignment[PdfTextAlignment[\"Left\"] = 0] = \"Left\";\n /**\n * Specifies the type of `Center`.\n * @private\n */\n PdfTextAlignment[PdfTextAlignment[\"Center\"] = 1] = \"Center\";\n /**\n * Specifies the type of `Right`.\n * @private\n */\n PdfTextAlignment[PdfTextAlignment[\"Right\"] = 2] = \"Right\";\n /**\n * Specifies the type of `Justify`.\n * @private\n */\n PdfTextAlignment[PdfTextAlignment[\"Justify\"] = 3] = \"Justify\";\n})(PdfTextAlignment || (PdfTextAlignment = {}));\n/**\n * public Enum for `TextRenderingMode`.\n * @private\n */\nexport var TextRenderingMode;\n(function (TextRenderingMode) {\n /**\n * Specifies the type of `Fill`.\n * @private\n */\n TextRenderingMode[TextRenderingMode[\"Fill\"] = 0] = \"Fill\";\n /**\n * Specifies the type of `Stroke`.\n * @private\n */\n TextRenderingMode[TextRenderingMode[\"Stroke\"] = 1] = \"Stroke\";\n /**\n * Specifies the type of `FillStroke`.\n * @private\n */\n TextRenderingMode[TextRenderingMode[\"FillStroke\"] = 2] = \"FillStroke\";\n /**\n * Specifies the type of `None`.\n * @private\n */\n TextRenderingMode[TextRenderingMode[\"None\"] = 3] = \"None\";\n /**\n * Specifies the type of `ClipFlag`.\n * @private\n */\n TextRenderingMode[TextRenderingMode[\"ClipFlag\"] = 4] = \"ClipFlag\";\n /**\n * Specifies the type of `ClipFill`.\n * @private\n */\n TextRenderingMode[TextRenderingMode[\"ClipFill\"] = 4] = \"ClipFill\";\n /**\n * Specifies the type of `ClipStroke`.\n * @private\n */\n TextRenderingMode[TextRenderingMode[\"ClipStroke\"] = 5] = \"ClipStroke\";\n /**\n * Specifies the type of `ClipFillStroke`.\n * @private\n */\n TextRenderingMode[TextRenderingMode[\"ClipFillStroke\"] = 6] = \"ClipFillStroke\";\n /**\n * Specifies the type of `Clip`.\n * @private\n */\n TextRenderingMode[TextRenderingMode[\"Clip\"] = 7] = \"Clip\";\n})(TextRenderingMode || (TextRenderingMode = {}));\n/**\n * public Enum for `PdfLineJoin`.\n * @private\n */\nexport var PdfLineJoin;\n(function (PdfLineJoin) {\n /**\n * Specifies the type of `Miter`.\n * @private\n */\n PdfLineJoin[PdfLineJoin[\"Miter\"] = 0] = \"Miter\";\n /**\n * Specifies the type of `Round`.\n * @private\n */\n PdfLineJoin[PdfLineJoin[\"Round\"] = 1] = \"Round\";\n /**\n * Specifies the type of `Bevel`.\n * @private\n */\n PdfLineJoin[PdfLineJoin[\"Bevel\"] = 2] = \"Bevel\";\n})(PdfLineJoin || (PdfLineJoin = {}));\n/**\n * public Enum for `PdfLineCap`.\n * @private\n */\nexport var PdfLineCap;\n(function (PdfLineCap) {\n /**\n * Specifies the type of `Flat`.\n * @private\n */\n PdfLineCap[PdfLineCap[\"Flat\"] = 0] = \"Flat\";\n /**\n * Specifies the type of `Round`.\n * @private\n */\n PdfLineCap[PdfLineCap[\"Round\"] = 1] = \"Round\";\n /**\n * Specifies the type of `Square`.\n * @private\n */\n PdfLineCap[PdfLineCap[\"Square\"] = 2] = \"Square\";\n})(PdfLineCap || (PdfLineCap = {}));\n/**\n * public Enum for `PdfDashStyle`.\n * @private\n */\nexport var PdfDashStyle;\n(function (PdfDashStyle) {\n /**\n * Specifies the type of `Solid`.\n * @private\n */\n PdfDashStyle[PdfDashStyle[\"Solid\"] = 0] = \"Solid\";\n /**\n * Specifies the type of `Dash`.\n * @private\n */\n PdfDashStyle[PdfDashStyle[\"Dash\"] = 1] = \"Dash\";\n /**\n * Specifies the type of `Dot`.\n * @private\n */\n PdfDashStyle[PdfDashStyle[\"Dot\"] = 2] = \"Dot\";\n /**\n * Specifies the type of `DashDot`.\n * @private\n */\n PdfDashStyle[PdfDashStyle[\"DashDot\"] = 3] = \"DashDot\";\n /**\n * Specifies the type of `DashDotDot`.\n * @private\n */\n PdfDashStyle[PdfDashStyle[\"DashDotDot\"] = 4] = \"DashDotDot\";\n /**\n * Specifies the type of `Custom`.\n * @private\n */\n PdfDashStyle[PdfDashStyle[\"Custom\"] = 5] = \"Custom\";\n})(PdfDashStyle || (PdfDashStyle = {}));\n/**\n * public Enum for `PdfFillMode`.\n * @private\n */\nexport var PdfFillMode;\n(function (PdfFillMode) {\n /**\n * Specifies the type of `Winding`.\n * @private\n */\n PdfFillMode[PdfFillMode[\"Winding\"] = 0] = \"Winding\";\n /**\n * Specifies the type of `Alternate`.\n * @private\n */\n PdfFillMode[PdfFillMode[\"Alternate\"] = 1] = \"Alternate\";\n})(PdfFillMode || (PdfFillMode = {}));\n/**\n * public Enum for `PdfColorSpace`.\n * @private\n */\nexport var PdfColorSpace;\n(function (PdfColorSpace) {\n /**\n * Specifies the type of `Rgb`.\n * @private\n */\n PdfColorSpace[PdfColorSpace[\"Rgb\"] = 0] = \"Rgb\";\n /**\n * Specifies the type of `Cmyk`.\n * @private\n */\n PdfColorSpace[PdfColorSpace[\"Cmyk\"] = 1] = \"Cmyk\";\n /**\n * Specifies the type of `GrayScale`.\n * @private\n */\n PdfColorSpace[PdfColorSpace[\"GrayScale\"] = 2] = \"GrayScale\";\n /**\n * Specifies the type of `Indexed`.\n * @private\n */\n PdfColorSpace[PdfColorSpace[\"Indexed\"] = 3] = \"Indexed\";\n})(PdfColorSpace || (PdfColorSpace = {}));\n/**\n * public Enum for `PdfBlendMode`.\n * @private\n */\nexport var PdfBlendMode;\n(function (PdfBlendMode) {\n /**\n * Specifies the type of `Normal`.\n * @private\n */\n PdfBlendMode[PdfBlendMode[\"Normal\"] = 0] = \"Normal\";\n /**\n * Specifies the type of `Multiply`.\n * @private\n */\n PdfBlendMode[PdfBlendMode[\"Multiply\"] = 1] = \"Multiply\";\n /**\n * Specifies the type of `Screen`.\n * @private\n */\n PdfBlendMode[PdfBlendMode[\"Screen\"] = 2] = \"Screen\";\n /**\n * Specifies the type of `Overlay`.\n * @private\n */\n PdfBlendMode[PdfBlendMode[\"Overlay\"] = 3] = \"Overlay\";\n /**\n * Specifies the type of `Darken`.\n * @private\n */\n PdfBlendMode[PdfBlendMode[\"Darken\"] = 4] = \"Darken\";\n /**\n * Specifies the type of `Lighten`.\n * @private\n */\n PdfBlendMode[PdfBlendMode[\"Lighten\"] = 5] = \"Lighten\";\n /**\n * Specifies the type of `ColorDodge`.\n * @private\n */\n PdfBlendMode[PdfBlendMode[\"ColorDodge\"] = 6] = \"ColorDodge\";\n /**\n * Specifies the type of `ColorBurn`.\n * @private\n */\n PdfBlendMode[PdfBlendMode[\"ColorBurn\"] = 7] = \"ColorBurn\";\n /**\n * Specifies the type of `HardLight`.\n * @private\n */\n PdfBlendMode[PdfBlendMode[\"HardLight\"] = 8] = \"HardLight\";\n /**\n * Specifies the type of `SoftLight`.\n * @private\n */\n PdfBlendMode[PdfBlendMode[\"SoftLight\"] = 9] = \"SoftLight\";\n /**\n * Specifies the type of `Difference`.\n * @private\n */\n PdfBlendMode[PdfBlendMode[\"Difference\"] = 10] = \"Difference\";\n /**\n * Specifies the type of `Exclusion`.\n * @private\n */\n PdfBlendMode[PdfBlendMode[\"Exclusion\"] = 11] = \"Exclusion\";\n /**\n * Specifies the type of `Hue`.\n * @private\n */\n PdfBlendMode[PdfBlendMode[\"Hue\"] = 12] = \"Hue\";\n /**\n * Specifies the type of `Saturation`.\n * @private\n */\n PdfBlendMode[PdfBlendMode[\"Saturation\"] = 13] = \"Saturation\";\n /**\n * Specifies the type of `Color`.\n * @private\n */\n PdfBlendMode[PdfBlendMode[\"Color\"] = 14] = \"Color\";\n /**\n * Specifies the type of `Luminosity`.\n * @private\n */\n PdfBlendMode[PdfBlendMode[\"Luminosity\"] = 15] = \"Luminosity\";\n})(PdfBlendMode || (PdfBlendMode = {}));\n/**\n * public Enum for `PdfGraphicsUnit`.\n * @private\n */\nexport var PdfGraphicsUnit;\n(function (PdfGraphicsUnit) {\n /**\n * Specifies the type of `Centimeter`.\n * @private\n */\n PdfGraphicsUnit[PdfGraphicsUnit[\"Centimeter\"] = 0] = \"Centimeter\";\n /**\n * Specifies the type of `Pica`.\n * @private\n */\n PdfGraphicsUnit[PdfGraphicsUnit[\"Pica\"] = 1] = \"Pica\";\n /**\n * Specifies the type of `Pixel`.\n * @private\n */\n PdfGraphicsUnit[PdfGraphicsUnit[\"Pixel\"] = 2] = \"Pixel\";\n /**\n * Specifies the type of `Point`.\n * @private\n */\n PdfGraphicsUnit[PdfGraphicsUnit[\"Point\"] = 3] = \"Point\";\n /**\n * Specifies the type of `Inch`.\n * @private\n */\n PdfGraphicsUnit[PdfGraphicsUnit[\"Inch\"] = 4] = \"Inch\";\n /**\n * Specifies the type of `Document`.\n * @private\n */\n PdfGraphicsUnit[PdfGraphicsUnit[\"Document\"] = 5] = \"Document\";\n /**\n * Specifies the type of `Millimeter`.\n * @private\n */\n PdfGraphicsUnit[PdfGraphicsUnit[\"Millimeter\"] = 6] = \"Millimeter\";\n})(PdfGraphicsUnit || (PdfGraphicsUnit = {}));\n/**\n * public Enum for `PdfGridImagePosition`.\n * @private\n */\nexport var PdfGridImagePosition;\n(function (PdfGridImagePosition) {\n /**\n * Specifies the type of `Fit`.\n * @private\n */\n PdfGridImagePosition[PdfGridImagePosition[\"Fit\"] = 0] = \"Fit\";\n /**\n * Specifies the type of `Center`.\n * @private\n */\n PdfGridImagePosition[PdfGridImagePosition[\"Center\"] = 1] = \"Center\";\n /**\n * Specifies the type of `Stretch`.\n * @private\n */\n PdfGridImagePosition[PdfGridImagePosition[\"Stretch\"] = 2] = \"Stretch\";\n /**\n * Specifies the type of `Tile`.\n * @private\n */\n PdfGridImagePosition[PdfGridImagePosition[\"Tile\"] = 3] = \"Tile\";\n})(PdfGridImagePosition || (PdfGridImagePosition = {}));\n/**\n * public Enum for `the text rendering direction`.\n * @private\n */\nexport var PdfTextDirection;\n(function (PdfTextDirection) {\n /**\n * Specifies the type of `None`.\n * @private\n */\n PdfTextDirection[PdfTextDirection[\"None\"] = 0] = \"None\";\n /**\n * Specifies the type of `LeftToRight`.\n * @private\n */\n PdfTextDirection[PdfTextDirection[\"LeftToRight\"] = 1] = \"LeftToRight\";\n /**\n * Specifies the type of `RightToLeft`.\n * @private\n */\n PdfTextDirection[PdfTextDirection[\"RightToLeft\"] = 2] = \"RightToLeft\";\n})(PdfTextDirection || (PdfTextDirection = {}));\n","/**\n * public Enum for `PdfFontStyle`.\n * @private\n */\nexport var PdfFontStyle;\n(function (PdfFontStyle) {\n /**\n * Specifies the type of `Regular`.\n * @private\n */\n PdfFontStyle[PdfFontStyle[\"Regular\"] = 0] = \"Regular\";\n /**\n * Specifies the type of `Bold`.\n * @private\n */\n PdfFontStyle[PdfFontStyle[\"Bold\"] = 1] = \"Bold\";\n /**\n * Specifies the type of `Italic`.\n * @private\n */\n PdfFontStyle[PdfFontStyle[\"Italic\"] = 2] = \"Italic\";\n /**\n * Specifies the type of `Underline`.\n * @private\n */\n PdfFontStyle[PdfFontStyle[\"Underline\"] = 4] = \"Underline\";\n /**\n * Specifies the type of `Strikeout`.\n * @private\n */\n PdfFontStyle[PdfFontStyle[\"Strikeout\"] = 8] = \"Strikeout\";\n})(PdfFontStyle || (PdfFontStyle = {}));\n/**\n * Specifies the font family from the standard font.\n * ```typescript\n * // create a new PDF document\n * let document : PdfDocument = new PdfDocument();\n * // add a new page to the document\n * let page1 : PdfPage = document.pages.add();\n * // create new standard font\n * let font : PdfStandardFont = new PdfStandardFont(PdfFontFamily.Helvetica, 20);\n * // create black brush\n * let blackBrush : PdfSolidBrush = new PdfSolidBrush(new PdfColor(0, 0, 0));\n * // draw the text\n * page1.graphics.drawString('Hello World', font, blackBrush, new PointF(0, 0));\n * // save the document\n * document.save('output.pdf');\n * ```\n */\nexport var PdfFontFamily;\n(function (PdfFontFamily) {\n /**\n * Specifies the `Helvetica` font.\n */\n PdfFontFamily[PdfFontFamily[\"Helvetica\"] = 0] = \"Helvetica\";\n /**\n * Specifies the `Courier` font.\n */\n PdfFontFamily[PdfFontFamily[\"Courier\"] = 1] = \"Courier\";\n /**\n * Specifies the `TimesRoman` font.\n */\n PdfFontFamily[PdfFontFamily[\"TimesRoman\"] = 2] = \"TimesRoman\";\n /**\n * Specifies the `Symbol` font.\n */\n PdfFontFamily[PdfFontFamily[\"Symbol\"] = 3] = \"Symbol\";\n /**\n * Specifies the `ZapfDingbats` font.\n */\n PdfFontFamily[PdfFontFamily[\"ZapfDingbats\"] = 4] = \"ZapfDingbats\";\n})(PdfFontFamily || (PdfFontFamily = {}));\n/**\n * public Enum for `PdfFontType`.\n * @private\n */\nexport var PdfFontType;\n(function (PdfFontType) {\n /**\n * Specifies the type of `Standard`.\n * @private\n */\n PdfFontType[PdfFontType[\"Standard\"] = 0] = \"Standard\";\n /**\n * Specifies the type of `TrueType`.\n * @private\n */\n PdfFontType[PdfFontType[\"TrueType\"] = 1] = \"TrueType\";\n /**\n * Specifies the type of `TrueTypeEmbedded`.\n * @private\n */\n PdfFontType[PdfFontType[\"TrueTypeEmbedded\"] = 2] = \"TrueTypeEmbedded\";\n})(PdfFontType || (PdfFontType = {}));\n/**\n * public Enum for `PdfWordWrapType`.\n * @private\n */\nexport var PdfWordWrapType;\n(function (PdfWordWrapType) {\n /**\n * Specifies the type of `None`.\n * @private\n */\n PdfWordWrapType[PdfWordWrapType[\"None\"] = 0] = \"None\";\n /**\n * Specifies the type of `Word`.\n * @private\n */\n PdfWordWrapType[PdfWordWrapType[\"Word\"] = 1] = \"Word\";\n /**\n * Specifies the type of `WordOnly`.\n * @private\n */\n PdfWordWrapType[PdfWordWrapType[\"WordOnly\"] = 2] = \"WordOnly\";\n /**\n * Specifies the type of `Character`.\n * @private\n */\n PdfWordWrapType[PdfWordWrapType[\"Character\"] = 3] = \"Character\";\n})(PdfWordWrapType || (PdfWordWrapType = {}));\n/**\n * public Enum for `PdfSubSuperScript`.\n * @private\n */\nexport var PdfSubSuperScript;\n(function (PdfSubSuperScript) {\n /**\n * Specifies the type of `None`.\n * @private\n */\n PdfSubSuperScript[PdfSubSuperScript[\"None\"] = 0] = \"None\";\n /**\n * Specifies the type of `SuperScript`.\n * @private\n */\n PdfSubSuperScript[PdfSubSuperScript[\"SuperScript\"] = 1] = \"SuperScript\";\n /**\n * Specifies the type of `SubScript`.\n * @private\n */\n PdfSubSuperScript[PdfSubSuperScript[\"SubScript\"] = 2] = \"SubScript\";\n})(PdfSubSuperScript || (PdfSubSuperScript = {}));\n/**\n * public Enum for `FontEncoding`.\n * @private\n */\nexport var FontEncoding;\n(function (FontEncoding) {\n /**\n * Specifies the type of `Unknown`.\n * @private\n */\n FontEncoding[FontEncoding[\"Unknown\"] = 0] = \"Unknown\";\n /**\n * Specifies the type of `StandardEncoding`.\n * @private\n */\n FontEncoding[FontEncoding[\"StandardEncoding\"] = 1] = \"StandardEncoding\";\n /**\n * Specifies the type of `MacRomanEncoding`.\n * @private\n */\n FontEncoding[FontEncoding[\"MacRomanEncoding\"] = 2] = \"MacRomanEncoding\";\n /**\n * Specifies the type of `MacExpertEncoding`.\n * @private\n */\n FontEncoding[FontEncoding[\"MacExpertEncoding\"] = 3] = \"MacExpertEncoding\";\n /**\n * Specifies the type of `WinAnsiEncoding`.\n * @private\n */\n FontEncoding[FontEncoding[\"WinAnsiEncoding\"] = 4] = \"WinAnsiEncoding\";\n /**\n * Specifies the type of `PdfDocEncoding`.\n * @private\n */\n FontEncoding[FontEncoding[\"PdfDocEncoding\"] = 5] = \"PdfDocEncoding\";\n /**\n * Specifies the type of `IdentityH`.\n * @private\n */\n FontEncoding[FontEncoding[\"IdentityH\"] = 6] = \"IdentityH\";\n})(FontEncoding || (FontEncoding = {}));\n/**\n * public Enum for `TtfCmapFormat`.\n * @private\n */\nexport var TtfCmapFormat;\n(function (TtfCmapFormat) {\n /**\n * This is the Apple standard character to glyph index mapping table.\n * @private\n */\n TtfCmapFormat[TtfCmapFormat[\"Apple\"] = 0] = \"Apple\";\n /**\n * This is the Microsoft standard character to glyph index mapping table.\n * @private\n */\n TtfCmapFormat[TtfCmapFormat[\"Microsoft\"] = 4] = \"Microsoft\";\n /**\n * Format 6: Trimmed table mapping.\n * @private\n */\n TtfCmapFormat[TtfCmapFormat[\"Trimmed\"] = 6] = \"Trimmed\";\n})(TtfCmapFormat || (TtfCmapFormat = {}));\n/**\n * Enumerator that implements CMAP encodings.\n * @private\n */\nexport var TtfCmapEncoding;\n(function (TtfCmapEncoding) {\n /**\n * Unknown encoding.\n * @private\n */\n TtfCmapEncoding[TtfCmapEncoding[\"Unknown\"] = 0] = \"Unknown\";\n /**\n * When building a symbol font for Windows.\n * @private\n */\n TtfCmapEncoding[TtfCmapEncoding[\"Symbol\"] = 1] = \"Symbol\";\n /**\n * When building a Unicode font for Windows.\n * @private\n */\n TtfCmapEncoding[TtfCmapEncoding[\"Unicode\"] = 2] = \"Unicode\";\n /**\n * For font that will be used on a Macintosh.\n * @private\n */\n TtfCmapEncoding[TtfCmapEncoding[\"Macintosh\"] = 3] = \"Macintosh\";\n})(TtfCmapEncoding || (TtfCmapEncoding = {}));\n/**\n * Ttf platform ID.\n * @private\n */\nexport var TtfPlatformID;\n(function (TtfPlatformID) {\n /**\n * Apple platform.\n * @private\n */\n TtfPlatformID[TtfPlatformID[\"AppleUnicode\"] = 0] = \"AppleUnicode\";\n /**\n * Macintosh platform.\n * @private\n */\n TtfPlatformID[TtfPlatformID[\"Macintosh\"] = 1] = \"Macintosh\";\n /**\n * Iso platform.\n * @private\n */\n TtfPlatformID[TtfPlatformID[\"Iso\"] = 2] = \"Iso\";\n /**\n * Microsoft platform.\n * @private\n */\n TtfPlatformID[TtfPlatformID[\"Microsoft\"] = 3] = \"Microsoft\";\n})(TtfPlatformID || (TtfPlatformID = {}));\n/**\n * Microsoft encoding ID.\n * @private\n */\nexport var TtfMicrosoftEncodingID;\n(function (TtfMicrosoftEncodingID) {\n /**\n * Undefined encoding.\n * @private\n */\n TtfMicrosoftEncodingID[TtfMicrosoftEncodingID[\"Undefined\"] = 0] = \"Undefined\";\n /**\n * Unicode encoding.\n * @private\n */\n TtfMicrosoftEncodingID[TtfMicrosoftEncodingID[\"Unicode\"] = 1] = \"Unicode\";\n})(TtfMicrosoftEncodingID || (TtfMicrosoftEncodingID = {}));\n/**\n * Macintosh encoding ID.\n * @private\n */\nexport var TtfMacintoshEncodingID;\n(function (TtfMacintoshEncodingID) {\n /**\n * Roman encoding.\n * @private\n */\n TtfMacintoshEncodingID[TtfMacintoshEncodingID[\"Roman\"] = 0] = \"Roman\";\n /**\n * Japanese encoding.\n * @private\n */\n TtfMacintoshEncodingID[TtfMacintoshEncodingID[\"Japanese\"] = 1] = \"Japanese\";\n /**\n * Chinese encoding.\n * @private\n */\n TtfMacintoshEncodingID[TtfMacintoshEncodingID[\"Chinese\"] = 2] = \"Chinese\";\n})(TtfMacintoshEncodingID || (TtfMacintoshEncodingID = {}));\n/**\n * Enumerator that implements font descriptor flags.\n * @private\n */\nexport var FontDescriptorFlags;\n(function (FontDescriptorFlags) {\n /**\n * All glyphs have the same width (as opposed to proportional or variable-pitch fonts, which have different widths).\n * @private\n */\n FontDescriptorFlags[FontDescriptorFlags[\"FixedPitch\"] = 1] = \"FixedPitch\";\n /**\n * Glyphs have serifs, which are short strokes drawn at an angle on the top and\n * bottom of glyph stems (as opposed to sans serif fonts, which do not).\n * @private\n */\n FontDescriptorFlags[FontDescriptorFlags[\"Serif\"] = 2] = \"Serif\";\n /**\n * Font contains glyphs outside the Adobe standard Latin character set. The\n * flag and the nonsymbolic flag cannot both be set or both be clear.\n * @private\n */\n FontDescriptorFlags[FontDescriptorFlags[\"Symbolic\"] = 4] = \"Symbolic\";\n /**\n * Glyphs resemble cursive handwriting.\n * @private\n */\n FontDescriptorFlags[FontDescriptorFlags[\"Script\"] = 8] = \"Script\";\n /**\n * Font uses the Adobe standard Latin character set or a subset of it.\n * @private\n */\n FontDescriptorFlags[FontDescriptorFlags[\"Nonsymbolic\"] = 32] = \"Nonsymbolic\";\n /**\n * Glyphs have dominant vertical strokes that are slanted.\n * @private\n */\n FontDescriptorFlags[FontDescriptorFlags[\"Italic\"] = 64] = \"Italic\";\n /**\n * Bold font.\n * @private\n */\n FontDescriptorFlags[FontDescriptorFlags[\"ForceBold\"] = 262144] = \"ForceBold\";\n})(FontDescriptorFlags || (FontDescriptorFlags = {}));\n/**\n * true type font composite glyph flags.\n * @private\n */\nexport var TtfCompositeGlyphFlags;\n(function (TtfCompositeGlyphFlags) {\n /**\n * The Arg1And2AreWords.\n * @private\n */\n TtfCompositeGlyphFlags[TtfCompositeGlyphFlags[\"Arg1And2AreWords\"] = 1] = \"Arg1And2AreWords\";\n /**\n * The ArgsAreXyValues.\n * @private\n */\n TtfCompositeGlyphFlags[TtfCompositeGlyphFlags[\"ArgsAreXyValues\"] = 2] = \"ArgsAreXyValues\";\n /**\n * The RoundXyToGrid.\n * @private\n */\n TtfCompositeGlyphFlags[TtfCompositeGlyphFlags[\"RoundXyToGrid\"] = 4] = \"RoundXyToGrid\";\n /**\n * The WeHaveScale.\n * @private\n */\n TtfCompositeGlyphFlags[TtfCompositeGlyphFlags[\"WeHaveScale\"] = 8] = \"WeHaveScale\";\n /**\n * The Reserved.\n * @private\n */\n TtfCompositeGlyphFlags[TtfCompositeGlyphFlags[\"Reserved\"] = 16] = \"Reserved\";\n /**\n * The MoreComponents.\n * @private\n */\n TtfCompositeGlyphFlags[TtfCompositeGlyphFlags[\"MoreComponents\"] = 32] = \"MoreComponents\";\n /**\n * The WeHaveAnXyScale.\n * @private\n */\n TtfCompositeGlyphFlags[TtfCompositeGlyphFlags[\"WeHaveAnXyScale\"] = 64] = \"WeHaveAnXyScale\";\n /**\n * The WeHaveTwoByTwo\n */\n TtfCompositeGlyphFlags[TtfCompositeGlyphFlags[\"WeHaveTwoByTwo\"] = 128] = \"WeHaveTwoByTwo\";\n /**\n * The WeHaveInstructions.\n */\n TtfCompositeGlyphFlags[TtfCompositeGlyphFlags[\"WeHaveInstructions\"] = 256] = \"WeHaveInstructions\";\n /**\n * The UseMyMetrics.\n */\n TtfCompositeGlyphFlags[TtfCompositeGlyphFlags[\"UseMyMetrics\"] = 512] = \"UseMyMetrics\";\n})(TtfCompositeGlyphFlags || (TtfCompositeGlyphFlags = {}));\n","/**\n * PdfPageSettings.ts class for EJ2-PDF\n */\nimport { SizeF, PointF } from './../drawing/pdf-drawing';\nimport { PdfPageSize } from './pdf-page-size';\nimport { PdfPageRotateAngle, PdfPageOrientation } from './enum';\nimport { PdfMargins } from './../graphics/pdf-margins';\n/**\n * The class provides various `setting` related with PDF pages.\n */\nvar PdfPageSettings = /** @class */ (function () {\n function PdfPageSettings(margins) {\n //Fields\n /**\n * The page `margins`.\n * @private\n */\n this.pageMargins = new PdfMargins();\n /**\n * The page `size`.\n * @default a4\n * @private\n */\n this.pageSize = PdfPageSize.a4;\n /**\n * The page `rotation angle`.\n * @default PdfPageRotateAngle.RotateAngle0\n * @private\n */\n this.rotateAngle = PdfPageRotateAngle.RotateAngle0;\n /**\n * The page `orientation`.\n * @default PdfPageOrientation.Portrait\n * @private\n */\n this.pageOrientation = PdfPageOrientation.Portrait;\n /**\n * The page `origin`.\n * @default 0,0\n * @private\n */\n this.pageOrigin = new PointF(0, 0);\n /**\n * Checks the Whether the `rotation` is applied or not.\n * @default false\n * @private\n */\n this.isRotation = false;\n if (typeof margins === 'number') {\n this.pageMargins.setMargins(margins);\n }\n }\n Object.defineProperty(PdfPageSettings.prototype, \"size\", {\n //Properties\n /**\n * Gets or sets the `size` of the page.\n * @private\n */\n get: function () {\n return this.pageSize;\n },\n set: function (value) {\n this.setSize(value);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfPageSettings.prototype, \"orientation\", {\n /**\n * Gets or sets the page `orientation`.\n * @private\n */\n get: function () {\n return this.pageOrientation;\n },\n set: function (orientation) {\n if (this.pageOrientation !== orientation) {\n this.pageOrientation = orientation;\n this.updateSize(orientation);\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfPageSettings.prototype, \"margins\", {\n /**\n * Gets or sets the `margins` of the page.\n * @private\n */\n get: function () {\n return this.pageMargins;\n },\n set: function (value) {\n this.pageMargins = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfPageSettings.prototype, \"width\", {\n /**\n * Gets or sets the `width` of the page.\n * @private\n */\n get: function () {\n return this.pageSize.width;\n },\n set: function (value) {\n this.pageSize.width = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfPageSettings.prototype, \"height\", {\n /**\n * Gets or sets the `height` of the page.\n * @private\n */\n get: function () {\n return this.pageSize.height;\n },\n set: function (value) {\n this.pageSize.height = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfPageSettings.prototype, \"origin\", {\n /**\n * Gets or sets the `origin` of the page.\n * @private\n */\n get: function () {\n return this.pageOrigin;\n },\n set: function (value) {\n this.pageOrigin = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfPageSettings.prototype, \"rotate\", {\n /**\n * Gets or sets the number of degrees by which the page should be `rotated` clockwise when displayed or printed.\n * @private\n */\n get: function () {\n return this.rotateAngle;\n },\n set: function (value) {\n this.rotateAngle = value;\n this.isRotation = true;\n },\n enumerable: true,\n configurable: true\n });\n //Methods\n /**\n * `Update page size` depending on orientation.\n * @private\n */\n PdfPageSettings.prototype.updateSize = function (orientation) {\n var min = Math.min(this.pageSize.width, this.pageSize.height);\n var max = Math.max(this.pageSize.width, this.pageSize.height);\n switch (orientation) {\n case PdfPageOrientation.Portrait:\n this.pageSize = new SizeF(min, max);\n break;\n case PdfPageOrientation.Landscape:\n this.pageSize = new SizeF(max, min);\n break;\n }\n };\n /**\n * Creates a `clone` of the object.\n * @private\n */\n PdfPageSettings.prototype.clone = function () {\n var settings = this;\n settings.pageMargins = this.pageMargins.clone();\n // if (GetTransition() != null)\n // {\n // settings.Transition = (PdfPageTransition)Transition.clone();\n // }\n return settings;\n };\n /**\n * Returns `size`, shrinked by the margins.\n * @private\n */\n PdfPageSettings.prototype.getActualSize = function () {\n var width = this.width - (this.margins.left + this.margins.right);\n var height = this.height - (this.margins.top + this.margins.bottom);\n var size = new SizeF(width, height);\n return size;\n };\n /**\n * Sets `size` to the page aaccording to the orientation.\n * @private\n */\n PdfPageSettings.prototype.setSize = function (size) {\n var min = Math.min(size.width, size.height);\n var max = Math.max(size.width, size.height);\n if (this.orientation === PdfPageOrientation.Portrait) {\n this.pageSize = new SizeF(min, max);\n }\n else {\n this.pageSize = new SizeF(max, min);\n }\n };\n return PdfPageSettings;\n}());\nexport { PdfPageSettings };\n","import { Operators } from './pdf-operators';\nimport { PdfNumber } from './../primitives/pdf-number';\nimport { PointF, RectangleF } from './../drawing/pdf-drawing';\nimport { PdfString } from './../primitives/pdf-string';\nimport { PdfName } from './../primitives/pdf-name';\n/**\n * Helper class to `write PDF graphic streams` easily.\n * @private\n */\nvar PdfStreamWriter = /** @class */ (function () {\n /**\n * Initialize an instance of `PdfStreamWriter` class.\n * @private\n */\n function PdfStreamWriter(stream) {\n if (stream == null) {\n throw new Error('ArgumentNullException:stream');\n }\n this.stream = stream;\n }\n //Implementation\n /**\n * `Clear` the stream.\n * @public\n */\n PdfStreamWriter.prototype.clear = function () {\n this.stream.clearStream();\n };\n PdfStreamWriter.prototype.setGraphicsState = function (dictionaryName) {\n if (dictionaryName instanceof PdfName) {\n this.stream.write(dictionaryName.toString());\n this.stream.write(Operators.whiteSpace);\n this.writeOperator(Operators.setGraphicsState);\n }\n else {\n this.stream.write(Operators.slash);\n this.stream.write(dictionaryName);\n this.stream.write(Operators.whiteSpace);\n this.writeOperator(Operators.setGraphicsState);\n }\n };\n /**\n * `Executes the XObject`.\n * @private\n */\n PdfStreamWriter.prototype.executeObject = function (name) {\n this.stream.write(name.toString());\n this.stream.write(Operators.whiteSpace);\n this.writeOperator(Operators.paintXObject);\n this.stream.write(Operators.newLine);\n };\n /**\n * `Closes path object`.\n * @private\n */\n PdfStreamWriter.prototype.closePath = function () {\n this.writeOperator(Operators.closePath);\n };\n /**\n * `Clips the path`.\n * @private\n */\n PdfStreamWriter.prototype.clipPath = function (useEvenOddRule) {\n this.stream.write(Operators.clipPath);\n if (useEvenOddRule) {\n this.stream.write(Operators.evenOdd);\n }\n this.stream.write(Operators.whiteSpace);\n this.stream.write(Operators.endPath);\n this.stream.write(Operators.newLine);\n };\n /**\n * `Closes, then fills and strokes the path`.\n * @private\n */\n PdfStreamWriter.prototype.closeFillStrokePath = function (useEvenOddRule) {\n this.stream.write(Operators.closeFillStrokePath);\n if (useEvenOddRule) {\n this.stream.write(Operators.evenOdd);\n this.stream.write(Operators.newLine);\n }\n else {\n this.stream.write(Operators.newLine);\n }\n };\n /**\n * `Fills and strokes path`.\n * @private\n */\n PdfStreamWriter.prototype.fillStrokePath = function (useEvenOddRule) {\n this.stream.write(Operators.fillStroke);\n if (useEvenOddRule) {\n this.stream.write(Operators.evenOdd);\n this.stream.write(Operators.newLine);\n }\n else {\n this.stream.write(Operators.newLine);\n }\n };\n /**\n * `Fills path`.\n * @private\n */\n PdfStreamWriter.prototype.fillPath = function (useEvenOddRule) {\n this.stream.write(Operators.fill);\n if (useEvenOddRule) {\n this.stream.write(Operators.evenOdd);\n this.stream.write(Operators.newLine);\n }\n else {\n this.stream.write(Operators.newLine);\n }\n };\n /**\n * `Ends the path`.\n * @private\n */\n PdfStreamWriter.prototype.endPath = function () {\n this.writeOperator(Operators.n);\n };\n /**\n * `Closes and fills the path`.\n * @private\n */\n PdfStreamWriter.prototype.closeFillPath = function (useEvenOddRule) {\n this.writeOperator(Operators.closePath);\n this.stream.write(Operators.fill);\n if (useEvenOddRule) {\n this.stream.write(Operators.evenOdd);\n this.stream.write(Operators.newLine);\n }\n else {\n this.stream.write(Operators.newLine);\n }\n };\n /**\n * `Closes and strokes the path`.\n * @private\n */\n PdfStreamWriter.prototype.closeStrokePath = function () {\n this.writeOperator(Operators.closeStrokePath);\n };\n /**\n * `Sets the text scaling`.\n * @private\n */\n PdfStreamWriter.prototype.setTextScaling = function (textScaling) {\n this.stream.write(PdfNumber.floatToString(textScaling));\n this.stream.write(Operators.whiteSpace);\n this.writeOperator(Operators.setTextScaling);\n };\n /**\n * `Strokes path`.\n * @private\n */\n PdfStreamWriter.prototype.strokePath = function () {\n this.writeOperator(Operators.stroke);\n };\n /**\n * `Restores` the graphics state.\n * @private\n */\n PdfStreamWriter.prototype.restoreGraphicsState = function () {\n this.writeOperator(Operators.restoreState);\n };\n /**\n * `Saves` the graphics state.\n * @private\n */\n PdfStreamWriter.prototype.saveGraphicsState = function () {\n this.writeOperator(Operators.saveState);\n };\n PdfStreamWriter.prototype.startNextLine = function (arg1, arg2) {\n if (typeof arg1 === 'undefined') {\n this.writeOperator(Operators.goToNextLine);\n }\n else if (arg1 instanceof PointF) {\n this.writePoint(arg1);\n this.writeOperator(Operators.setCoords);\n }\n else {\n this.writePoint(arg1, arg2);\n this.writeOperator(Operators.setCoords);\n }\n };\n /**\n * Shows the `text`.\n * @private\n */\n PdfStreamWriter.prototype.showText = function (text) {\n this.checkTextParam(text);\n this.writeText(text);\n this.writeOperator(Operators.setText);\n };\n /**\n * Sets `text leading`.\n * @private\n */\n PdfStreamWriter.prototype.setLeading = function (leading) {\n this.stream.write(PdfNumber.floatToString(leading));\n this.stream.write(Operators.whiteSpace);\n this.writeOperator(Operators.setTextLeading);\n };\n /**\n * `Begins the path`.\n * @private\n */\n PdfStreamWriter.prototype.beginPath = function (x, y) {\n this.writePoint(x, y);\n this.writeOperator(Operators.beginPath);\n };\n /**\n * `Begins text`.\n * @private\n */\n PdfStreamWriter.prototype.beginText = function () {\n this.writeOperator(Operators.beginText);\n };\n /**\n * `Ends text`.\n * @private\n */\n PdfStreamWriter.prototype.endText = function () {\n this.writeOperator(Operators.endText);\n };\n PdfStreamWriter.prototype.appendRectangle = function (arg1, arg2, arg3, arg4) {\n if (arg1 instanceof RectangleF) {\n this.appendRectangle(arg1.x, arg1.y, arg1.width, arg1.height);\n }\n else {\n this.writePoint(arg1, arg2);\n this.writePoint(arg3, arg4);\n this.writeOperator(Operators.appendRectangle);\n }\n };\n PdfStreamWriter.prototype.appendLineSegment = function (arg1, arg2) {\n if (arg1 instanceof PointF) {\n this.appendLineSegment(arg1.x, arg1.y);\n }\n else {\n this.writePoint(arg1, arg2);\n this.writeOperator(Operators.appendLineSegment);\n }\n };\n /**\n * Sets the `text rendering mode`.\n * @private\n */\n PdfStreamWriter.prototype.setTextRenderingMode = function (renderingMode) {\n this.stream.write(renderingMode.toString());\n this.stream.write(Operators.whiteSpace);\n this.writeOperator(Operators.setRenderingMode);\n };\n /**\n * Sets the `character spacing`.\n * @private\n */\n PdfStreamWriter.prototype.setCharacterSpacing = function (charSpacing) {\n this.stream.write(PdfNumber.floatToString(charSpacing));\n this.stream.write(Operators.whiteSpace);\n this.stream.write(Operators.setCharacterSpace);\n this.stream.write(Operators.newLine);\n };\n /**\n * Sets the `word spacing`.\n * @private\n */\n PdfStreamWriter.prototype.setWordSpacing = function (wordSpacing) {\n this.stream.write(PdfNumber.floatToString(wordSpacing));\n this.stream.write(Operators.whiteSpace);\n this.writeOperator(Operators.setWordSpace);\n };\n PdfStreamWriter.prototype.showNextLineText = function (arg1, arg2) {\n if (arg1 instanceof PdfString) {\n this.checkTextParam(arg1);\n this.writeText(arg1);\n this.writeOperator(Operators.setTextOnNewLine);\n }\n else {\n this.checkTextParam(arg1);\n this.writeText(arg1, arg2);\n this.writeOperator(Operators.setTextOnNewLine);\n }\n };\n PdfStreamWriter.prototype.setColorSpace = function (arg1, arg2) {\n if (arg1 instanceof PdfName && typeof arg2 === 'boolean') {\n var temparg1 = arg1;\n var temparg2 = arg2;\n // if (temparg1 == null) {\n // throw new Error('ArgumentNullException:name');\n // }\n var op = (temparg2) ? Operators.selectcolorspaceforstroking : Operators.selectcolorspacefornonstroking;\n this.stream.write(temparg1.toString());\n this.stream.write(Operators.whiteSpace);\n this.stream.write(op);\n this.stream.write(Operators.newLine);\n }\n else {\n var temparg1 = arg1;\n var temparg2 = arg2;\n this.setColorSpace(new PdfName(temparg1), temparg2);\n }\n };\n /**\n * Modifies current `transformation matrix`.\n * @private\n */\n PdfStreamWriter.prototype.modifyCtm = function (matrix) {\n if (matrix == null) {\n throw new Error('ArgumentNullException:matrix');\n }\n this.stream.write(matrix.toString());\n this.stream.write(Operators.whiteSpace);\n this.writeOperator(Operators.modifyCtm);\n };\n PdfStreamWriter.prototype.setFont = function (font, name, size) {\n if (typeof name === 'string') {\n this.setFont(font, new PdfName(name), size);\n }\n else {\n if (font == null) {\n throw new Error('ArgumentNullException:font');\n }\n this.stream.write(name.toString());\n this.stream.write(Operators.whiteSpace);\n this.stream.write(PdfNumber.floatToString(size));\n this.stream.write(Operators.whiteSpace);\n this.writeOperator(Operators.setFont);\n }\n };\n /**\n * `Writes the operator`.\n * @private\n */\n PdfStreamWriter.prototype.writeOperator = function (opcode) {\n this.stream.write(opcode);\n this.stream.write(Operators.newLine);\n };\n PdfStreamWriter.prototype.checkTextParam = function (text) {\n if (text == null) {\n throw new Error('ArgumentNullException:text');\n }\n if (typeof text === 'string' && text === '') {\n throw new Error('ArgumentException:The text can not be an empty string, text');\n }\n };\n PdfStreamWriter.prototype.writeText = function (arg1, arg2) {\n if ((arg1 instanceof PdfString) && (typeof arg2 === 'undefined')) {\n this.stream.write(arg1.pdfEncode());\n }\n else {\n var start = void 0;\n var end = void 0;\n if (arg2) {\n start = PdfString.hexStringMark[0];\n end = PdfString.hexStringMark[1];\n }\n else {\n start = PdfString.stringMark[0];\n end = PdfString.stringMark[1];\n }\n this.stream.write(start);\n this.stream.write(arg1);\n this.stream.write(end);\n }\n };\n PdfStreamWriter.prototype.writePoint = function (arg1, arg2) {\n if ((arg1 instanceof PointF) && (typeof arg2 === 'undefined')) {\n this.writePoint(arg1.x, arg1.y);\n }\n else {\n var temparg1 = arg1;\n this.stream.write(PdfNumber.floatToString(temparg1));\n this.stream.write(Operators.whiteSpace);\n // NOTE: Change Y co-ordinate because we shifted co-ordinate system only.\n arg2 = this.updateY(arg2);\n this.stream.write(PdfNumber.floatToString(arg2));\n this.stream.write(Operators.whiteSpace);\n }\n };\n /**\n * `Updates y` co-ordinate.\n * @private\n */\n PdfStreamWriter.prototype.updateY = function (arg) {\n return -arg;\n };\n /**\n * `Writes string` to the file.\n * @private\n */\n PdfStreamWriter.prototype.write = function (string) {\n var builder = '';\n builder += string;\n builder += Operators.newLine;\n this.writeOperator(builder);\n };\n /**\n * `Writes comment` to the file.\n * @private\n */\n PdfStreamWriter.prototype.writeComment = function (comment) {\n if (comment != null && comment.length > 0) {\n var builder = '';\n builder += Operators.comment;\n builder += Operators.whiteSpace;\n builder += comment;\n //builder.Append( Operators.NewLine );\n this.writeOperator(builder);\n }\n else {\n throw new Error('Invalid comment');\n }\n };\n /**\n * Sets the `color and space`.\n * @private\n */\n PdfStreamWriter.prototype.setColorAndSpace = function (color, colorSpace, forStroking) {\n if (!color.isEmpty) {\n // bool test = color is PdfExtendedColor;\n this.stream.write(color.toString(colorSpace, forStroking));\n this.stream.write(Operators.newLine);\n }\n };\n // public setLineDashPattern(pattern : number[], patternOffset : number) : void\n // {\n // let pat : PdfArray = new PdfArray(pattern);\n // let off : PdfNumber = new PdfNumber(patternOffset);\n // this.setLineDashPatternHelper(pat, off);\n // }\n // private setLineDashPatternHelper(pattern : PdfArray, patternOffset : PdfNumber) : void\n // {\n // pattern.Save(this);\n // this.m_stream.write(Operators.whiteSpace);\n // patternOffset.Save(this);\n // this.m_stream.write(Operators.whiteSpace);\n // this.writeOperator(Operators.setDashPattern);\n // }\n /**\n * Sets the `line dash pattern`.\n * @private\n */\n PdfStreamWriter.prototype.setLineDashPattern = function (pattern, patternOffset) {\n // let pat : PdfArray = new PdfArray(pattern);\n // let off : PdfNumber = new PdfNumber(patternOffset);\n // this.setLineDashPatternHelper(pat, off);\n this.setLineDashPatternHelper(pattern, patternOffset);\n };\n /**\n * Sets the `line dash pattern`.\n * @private\n */\n PdfStreamWriter.prototype.setLineDashPatternHelper = function (pattern, patternOffset) {\n var tempPattern = '[';\n if (pattern.length > 1) {\n for (var index = 0; index < pattern.length; index++) {\n if (index === pattern.length - 1) {\n tempPattern += pattern[index].toString();\n }\n else {\n tempPattern += pattern[index].toString() + ' ';\n }\n }\n }\n tempPattern += '] ';\n tempPattern += patternOffset.toString();\n tempPattern += ' ' + Operators.setDashPattern;\n this.stream.write(tempPattern);\n this.stream.write(Operators.newLine);\n };\n /**\n * Sets the `miter limit`.\n * @private\n */\n PdfStreamWriter.prototype.setMiterLimit = function (miterLimit) {\n this.stream.write(PdfNumber.floatToString(miterLimit));\n this.stream.write(Operators.whiteSpace);\n this.writeOperator(Operators.setMiterLimit);\n };\n /**\n * Sets the `width of the line`.\n * @private\n */\n PdfStreamWriter.prototype.setLineWidth = function (width) {\n this.stream.write(PdfNumber.floatToString(width));\n this.stream.write(Operators.whiteSpace);\n this.writeOperator(Operators.setLineWidth);\n };\n /**\n * Sets the `line cap`.\n * @private\n */\n PdfStreamWriter.prototype.setLineCap = function (lineCapStyle) {\n this.stream.write((lineCapStyle).toString());\n this.stream.write(Operators.whiteSpace);\n this.writeOperator(Operators.setLineCapStyle);\n };\n /**\n * Sets the `line join`.\n * @private\n */\n PdfStreamWriter.prototype.setLineJoin = function (lineJoinStyle) {\n this.stream.write((lineJoinStyle).toString());\n this.stream.write(Operators.whiteSpace);\n this.writeOperator(Operators.setLineJoinStyle);\n };\n Object.defineProperty(PdfStreamWriter.prototype, \"position\", {\n //IPdfWriter members\n /**\n * Gets or sets the current `position` within the stream.\n * @private\n */\n get: function () {\n return this.stream.position;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfStreamWriter.prototype, \"length\", {\n /**\n * Gets `stream length`.\n * @private\n */\n get: function () {\n var returnValue = 0;\n if (this.stream.data.length !== 0 && this.stream.data.length !== -1) {\n for (var index = 0; index < this.stream.data.length; index++) {\n returnValue += this.stream.data[index].length;\n }\n }\n return returnValue;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfStreamWriter.prototype, \"document\", {\n /**\n * Gets and Sets the `current document`.\n * @private\n */\n get: function () {\n return null;\n },\n enumerable: true,\n configurable: true\n });\n /* tslint:disable-next-line:max-line-length */\n PdfStreamWriter.prototype.appendBezierSegment = function (arg1, arg2, arg3, arg4, arg5, arg6) {\n if (arg1 instanceof PointF && arg2 instanceof PointF && arg3 instanceof PointF) {\n this.writePoint(arg1.x, arg1.y);\n this.writePoint(arg2.x, arg2.y);\n this.writePoint(arg3.x, arg3.y);\n }\n else {\n this.writePoint(arg1, arg2);\n this.writePoint(arg3, arg4);\n this.writePoint(arg5, arg6);\n }\n this.writeOperator(Operators.appendbeziercurve);\n };\n PdfStreamWriter.prototype.setColourWithPattern = function (colours, patternName, forStroking) {\n if ((colours != null)) {\n var count = colours.length;\n var i = 0;\n for (i = 0; i < count; ++i) {\n this.stream.write(colours[i].toString());\n this.stream.write(Operators.whiteSpace);\n }\n }\n if ((patternName != null)) {\n this.stream.write(patternName.toString());\n this.stream.write(Operators.whiteSpace);\n }\n if (forStroking) {\n this.writeOperator(Operators.setColorAndPatternStroking);\n }\n else {\n this.writeOperator(Operators.setColorAndPattern);\n }\n };\n return PdfStreamWriter;\n}());\nexport { PdfStreamWriter };\n","import { SizeF, RectangleF, PointF } from './../../drawing/pdf-drawing';\nimport { PdfWordWrapType } from './enum';\nimport { StringTokenizer } from './string-tokenizer';\n/**\n * Class `lay outing the text`.\n */\nvar PdfStringLayouter = /** @class */ (function () {\n // Constructors\n /**\n * Initializes a new instance of the `StringLayouter` class.\n * @private\n */\n function PdfStringLayouter() {\n /**\n * Checks whether the x co-ordinate is need to set as client size or not.\n * @hidden\n * @private\n */\n this.isOverloadWithPosition = false;\n //\n }\n PdfStringLayouter.prototype.layout = function (arg1, arg2, arg3, arg4, arg5, arg6, arg7) {\n if (arg4 instanceof RectangleF) {\n this.initialize(arg1, arg2, arg3, arg4, arg5);\n this.isOverloadWithPosition = arg6;\n this.clientSize = arg7;\n var result = this.doLayout();\n this.clear();\n return result;\n }\n else {\n this.initialize(arg1, arg2, arg3, arg4);\n this.isOverloadWithPosition = arg5;\n this.clientSize = arg6;\n var result = this.doLayout();\n this.clear();\n return result;\n }\n };\n PdfStringLayouter.prototype.initialize = function (text, font, format, rectSize, pageHeight) {\n if (typeof pageHeight === 'number') {\n if (text == null) {\n throw new Error('ArgumentNullException:text');\n }\n if (font == null) {\n throw new Error('ArgumentNullException:font');\n }\n this.text = text;\n this.font = font;\n this.format = format;\n this.size = new SizeF(rectSize.width, rectSize.height);\n this.rectangle = rectSize;\n this.pageHeight = pageHeight;\n this.reader = new StringTokenizer(text);\n }\n else {\n this.initialize(text, font, format, new RectangleF(new PointF(0, 0), rectSize), 0);\n }\n };\n /**\n * `Clear` all resources.\n * @private\n */\n PdfStringLayouter.prototype.clear = function () {\n this.font = null;\n this.format = null;\n this.reader.close();\n this.reader = null;\n this.text = null;\n };\n /**\n * `Layouts` the text.\n * @private\n */\n PdfStringLayouter.prototype.doLayout = function () {\n var result = new PdfStringLayoutResult();\n var lineResult = new PdfStringLayoutResult();\n var lines = [];\n var line = this.reader.peekLine();\n var lineIndent = this.getLineIndent(true);\n while (line != null) {\n lineResult = this.layoutLine(line, lineIndent);\n if (lineResult !== null || typeof lineResult !== 'undefined') {\n var numSymbolsInserted = 0;\n /* tslint:disable */\n var returnedValue = this.copyToResult(result, lineResult, lines, /*out*/ numSymbolsInserted);\n /* tslint:enable */\n var success = returnedValue.success;\n numSymbolsInserted = returnedValue.numInserted;\n if (!success) {\n this.reader.read(numSymbolsInserted);\n break;\n }\n }\n // if (lineResult.textRemainder != null && lineResult.textRemainder.length > 0 ) {\n // break;\n // }\n this.reader.readLine();\n line = this.reader.peekLine();\n lineIndent = this.getLineIndent(false);\n }\n this.finalizeResult(result, lines);\n return result;\n };\n /**\n * Returns `line indent` for the line.\n * @private\n */\n PdfStringLayouter.prototype.getLineIndent = function (firstLine) {\n var lineIndent = 0;\n if (this.format != null) {\n lineIndent = (firstLine) ? this.format.firstLineIndent : this.format.paragraphIndent;\n lineIndent = (this.size.width > 0) ? Math.min(this.size.width, lineIndent) : lineIndent;\n }\n return lineIndent;\n };\n /**\n * Calculates `height` of the line.\n * @private\n */\n PdfStringLayouter.prototype.getLineHeight = function () {\n var height = this.font.height;\n if (this.format != null && this.format.lineSpacing !== 0) {\n height = this.format.lineSpacing + this.font.height;\n }\n return height;\n };\n /**\n * Calculates `width` of the line.\n * @private\n */\n PdfStringLayouter.prototype.getLineWidth = function (line) {\n var width = this.font.getLineWidth(line, this.format);\n return width;\n };\n // tslint:disable\n /**\n * `Layouts` line.\n * @private\n */\n PdfStringLayouter.prototype.layoutLine = function (line, lineIndent) {\n var lineResult = new PdfStringLayoutResult();\n lineResult.layoutLineHeight = this.getLineHeight();\n var lines = [];\n var maxWidth = this.size.width;\n var lineWidth = this.getLineWidth(line) + lineIndent;\n var lineType = LineType.FirstParagraphLine;\n var readWord = true;\n // line is in bounds.\n if (maxWidth <= 0 || Math.round(lineWidth) <= Math.round(maxWidth)) {\n this.addToLineResult(lineResult, lines, line, lineWidth, LineType.NewLineBreak | lineType);\n }\n else {\n var builder = '';\n var curLine = '';\n lineWidth = lineIndent;\n var curIndent = lineIndent;\n var reader = new StringTokenizer(line);\n var word = reader.peekWord();\n var isSingleWord = false;\n if (word.length !== reader.length) {\n if (word === ' ') {\n curLine = curLine + word;\n builder = builder + word;\n reader.position += 1;\n word = reader.peekWord();\n }\n }\n while (word != null) {\n curLine = curLine + word;\n var curLineWidth = this.getLineWidth(curLine.toString()) + curIndent /*)*/;\n if (curLine.toString() === ' ') {\n curLine = '';\n curLineWidth = 0;\n }\n if (curLineWidth > maxWidth) {\n if (this.getWrapType() === PdfWordWrapType.None) {\n break;\n }\n if (curLine.length === word.length) {\n // Character wrap is disabled or one symbol is greater than bounds.\n if (this.getWrapType() === PdfWordWrapType.WordOnly) {\n lineResult.textRemainder = line.substring(reader.position);\n break;\n }\n else if (curLine.length === 1) {\n builder = builder + word;\n break;\n }\n else {\n readWord = false;\n curLine = '';\n word = reader.peek().toString();\n continue;\n }\n }\n else {\n if (this.getLineWidth(word.toString()) > maxWidth) {\n this.format.wordWrap = PdfWordWrapType.Character;\n }\n else {\n if (typeof this.format !== 'undefined' && this.format !== null) {\n this.format.wordWrap = PdfWordWrapType.Word;\n }\n }\n if (this.getWrapType() !== PdfWordWrapType.Character || !readWord) {\n var ln = builder.toString();\n // if (ln.indexOf(' ') === -1) {\n // isSingleWord = true;\n // this.addToLineResult(lineResult, lines, curLine, lineWidth, LineType.LayoutBreak | lineType);\n // } else {\n // this.addToLineResult(lineResult, lines, ln, lineWidth, LineType.LayoutBreak | lineType);\n // } \n if (ln !== ' ') {\n this.addToLineResult(lineResult, lines, ln, lineWidth, LineType.LayoutBreak | lineType);\n }\n if (this.isOverloadWithPosition) {\n maxWidth = this.clientSize.width;\n }\n curLine = '';\n builder = '';\n lineWidth = 0;\n curIndent = 0;\n curLineWidth = 0;\n lineType = LineType.None;\n // if (isSingleWord) {\n // reader.readWord();\n // readWord = false;\n // }\n word = (readWord) ? word : reader.peekWord();\n //isSingleWord = false;\n readWord = true;\n }\n else {\n readWord = false;\n curLine = '';\n curLine = curLine + builder.toString();\n word = reader.peek().toString();\n }\n continue;\n }\n }\n /*tslint:disable:max-func-body-length */\n builder = builder + word;\n lineWidth = curLineWidth;\n if (readWord) {\n reader.readWord();\n word = reader.peekWord();\n //isSingleWord = false;\n }\n else {\n reader.read();\n word = reader.peek().toString();\n }\n }\n if (builder.length > 0) {\n var ln = builder.toString();\n this.addToLineResult(lineResult, lines, ln, lineWidth, LineType.NewLineBreak | LineType.LastParagraphLine);\n }\n reader.close();\n }\n lineResult.layoutLines = [];\n for (var index = 0; index < lines.length; index++) {\n lineResult.layoutLines.push(lines[index]);\n }\n lines = [];\n return lineResult;\n };\n /**\n * `Adds` line to line result.\n * @private\n */\n PdfStringLayouter.prototype.addToLineResult = function (lineResult, lines, line, lineWidth, breakType) {\n var info = new LineInfo();\n info.text = line;\n info.width = lineWidth;\n info.lineType = breakType;\n lines.push(info);\n var size = lineResult.actualSize;\n size.height += this.getLineHeight();\n size.width = Math.max(size.width, lineWidth);\n lineResult.size = size;\n };\n /**\n * `Copies` layout result from line result to entire result. Checks whether we can proceed lay outing or not.\n * @private\n */\n PdfStringLayouter.prototype.copyToResult = function (result, lineResult, lines, \n /*out*/ numInserted) {\n var success = true;\n var allowPartialLines = (this.format != null && !this.format.lineLimit);\n var height = result.actualSize.height;\n var maxHeight = this.size.height;\n if ((this.pageHeight > 0) && (maxHeight + this.rectangle.y > this.pageHeight)) {\n maxHeight = this.rectangle.y - this.pageHeight;\n maxHeight = Math.max(maxHeight, -maxHeight);\n }\n numInserted = 0;\n if (lineResult.lines != null) {\n for (var i = 0, len = lineResult.lines.length; i < len; i++) {\n var expHeight = height + lineResult.lineHeight;\n if (expHeight <= maxHeight || maxHeight <= 0 || allowPartialLines) {\n var info = lineResult.lines[i];\n numInserted += info.text.length;\n info = this.trimLine(info, (lines.length === 0));\n lines.push(info);\n // Update width.\n var size = result.actualSize;\n size.width = Math.max(size.width, info.width);\n result.size = size;\n // The part of the line fits only and it's allowed to use partial lines.\n // if (expHeight >= maxHeight && maxHeight > 0 && allowPartialLines)\n // {\n // let shouldClip : boolean = (this.format == null || !this.format.noClip);\n // if (shouldClip)\n // {\n // let exceededHeight : number = expHeight - maxHeight;\n // let fitHeight : number = /*Utils.Round(*/ lineResult.lineHeight - exceededHeight /*)*/;\n // height = /*Utils.Round(*/ height + fitHeight /*)*/;\n // }\n // else\n // {\n // height = expHeight;\n // }\n // success = false;\n // break;\n // } else {\n height = expHeight;\n // }\n }\n else {\n success = false;\n break;\n }\n }\n }\n if (height != result.size.height) {\n var size1 = result.actualSize;\n size1.height = height;\n result.size = size1;\n }\n return { success: success, numInserted: numInserted };\n };\n /**\n * `Finalizes` final result.\n * @private\n */\n PdfStringLayouter.prototype.finalizeResult = function (result, lines) {\n result.layoutLines = [];\n for (var index = 0; index < lines.length; index++) {\n result.layoutLines.push(lines[index]);\n }\n result.layoutLineHeight = this.getLineHeight();\n if (!this.reader.end) {\n result.textRemainder = this.reader.readToEnd();\n }\n lines = [];\n };\n /**\n * `Trims` whitespaces at the line.\n * @private\n */\n PdfStringLayouter.prototype.trimLine = function (info, firstLine) {\n var line = info.text;\n var lineWidth = info.width;\n // Trim start whitespaces if the line is not a start of the paragraph only.\n var trimStartSpaces = ((info.lineType & LineType.FirstParagraphLine) === 0);\n var start = (this.format == null || !this.format.rightToLeft);\n var spaces = StringTokenizer.spaces;\n line = (start) ? line.trim() : line.trim();\n // Recalculate line width.\n if (line.length !== info.text.length) {\n lineWidth = this.getLineWidth(line);\n if ((info.lineType & LineType.FirstParagraphLine) > 0) {\n lineWidth += this.getLineIndent(firstLine);\n }\n }\n info.text = line;\n info.width = lineWidth;\n return info;\n };\n /**\n * Returns `wrap` type.\n * @private\n */\n PdfStringLayouter.prototype.getWrapType = function () {\n var wrapType = (this.format != null) ? this.format.wordWrap : PdfWordWrapType.Word;\n return wrapType;\n };\n return PdfStringLayouter;\n}());\nexport { PdfStringLayouter };\n//Internal declaration\nvar PdfStringLayoutResult = /** @class */ (function () {\n function PdfStringLayoutResult() {\n }\n Object.defineProperty(PdfStringLayoutResult.prototype, \"remainder\", {\n // Properties\n /**\n * Gets the `text` which is not lay outed.\n * @private\n */\n get: function () {\n return this.textRemainder;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfStringLayoutResult.prototype, \"actualSize\", {\n /**\n * Gets the actual layout text `bounds`.\n * @private\n */\n get: function () {\n if (typeof this.size === 'undefined') {\n this.size = new SizeF(0, 0);\n }\n return this.size;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfStringLayoutResult.prototype, \"lines\", {\n /**\n * Gets layout `lines` information.\n * @private\n */\n get: function () {\n return this.layoutLines;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfStringLayoutResult.prototype, \"lineHeight\", {\n /**\n * Gets the `height` of the line.\n * @private\n */\n get: function () {\n return this.layoutLineHeight;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfStringLayoutResult.prototype, \"empty\", {\n /**\n * Gets value that indicates whether any layout text [`empty`].\n * @private\n */\n get: function () {\n return (this.layoutLines == null || this.layoutLines.length === 0);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfStringLayoutResult.prototype, \"lineCount\", {\n /**\n * Gets `number of` the layout lines.\n * @private\n */\n get: function () {\n var count = (!this.empty) ? this.layoutLines.length : 0;\n return count;\n },\n enumerable: true,\n configurable: true\n });\n return PdfStringLayoutResult;\n}());\nexport { PdfStringLayoutResult };\nvar LineInfo = /** @class */ (function () {\n function LineInfo() {\n }\n Object.defineProperty(LineInfo.prototype, \"lineType\", {\n //Properties\n /**\n * Gets the `type` of the line text.\n * @private\n */\n get: function () {\n return this.type;\n },\n set: function (value) {\n this.type = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LineInfo.prototype, \"text\", {\n /**\n * Gets the line `text`.\n * @private\n */\n get: function () {\n return this.content;\n },\n set: function (value) {\n this.content = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LineInfo.prototype, \"width\", {\n /**\n * Gets `width` of the line text.\n * @private\n */\n get: function () {\n return this.lineWidth;\n },\n set: function (value) {\n this.lineWidth = value;\n },\n enumerable: true,\n configurable: true\n });\n return LineInfo;\n}());\nexport { LineInfo };\n/**\n* Break type of the `line`.\n* @private\n*/\nexport var LineType;\n(function (LineType) {\n /**\n * Specifies the type of `None`.\n * @private\n */\n LineType[LineType[\"None\"] = 0] = \"None\";\n /**\n * Specifies the type of `NewLineBreak`.\n * @private\n */\n LineType[LineType[\"NewLineBreak\"] = 1] = \"NewLineBreak\";\n /**\n * Specifies the type of `LayoutBreak`.\n * @private\n */\n LineType[LineType[\"LayoutBreak\"] = 2] = \"LayoutBreak\";\n /**\n * Specifies the type of `FirstParagraphLine`.\n * @private\n */\n LineType[LineType[\"FirstParagraphLine\"] = 4] = \"FirstParagraphLine\";\n /**\n * Specifies the type of `LastParagraphLine`.\n * @private\n */\n LineType[LineType[\"LastParagraphLine\"] = 8] = \"LastParagraphLine\";\n})(LineType || (LineType = {}));\n","import { PdfColorSpace } from './enum';\nimport { Operators } from './../input-output/pdf-operators';\nimport { Dictionary } from './../collections/dictionary';\nimport { PdfNumber } from './../primitives/pdf-number';\nimport { PdfArray } from './../primitives/pdf-array';\n/**\n * Implements structures and routines working with `color`.\n * ```typescript\n * // create a new PDF document\n * let document : PdfDocument = new PdfDocument();\n * // add a new page to the document\n * let page1 : PdfPage = document.pages.add();\n * // set the font\n * let font : PdfStandardFont = new PdfStandardFont(PdfFontFamily.Helvetica, 20);\n * //\n * // set color\n * let brushColor : PdfColor = new PdfColor(0, 0, 0);\n * //\n * // create black brush\n * let blackBrush : PdfSolidBrush = new PdfSolidBrush(brushColor);\n * // draw the text\n * page1.graphics.drawString('Hello World', font, blackBrush, new PointF(0, 0));\n * // save the document\n * document.save('output.pdf');\n * // destroy the document\n * document.destroy();\n * ```\n * @default black color\n */\nvar PdfColor = /** @class */ (function () {\n function PdfColor(color1, color2, color3, color4) {\n if (typeof color1 === 'undefined') {\n if (typeof color2 !== 'undefined' && typeof color3 !== 'undefined' && typeof color4 !== 'undefined') {\n this.assignRGB(color2, color3, color4);\n }\n else {\n this.filled = false;\n }\n }\n else if (color1 instanceof PdfColor) {\n this.redColor = color1.r;\n this.greenColor = color1.g;\n this.blueColor = color1.b;\n this.grayColor = color1.gray;\n this.alpha = color1.alpha;\n this.filled = (this.alpha !== 0);\n /* tslint:disable-next-line:max-line-length */\n }\n else if (typeof color1 === 'number' && typeof color2 === 'undefined' && typeof color3 === 'undefined' && typeof color4 === 'undefined') {\n if (color1 < 0) {\n color1 = 0;\n }\n if (color1 > 1) {\n color1 = 1;\n }\n this.redColor = color1 * PdfColor.maxColourChannelValue;\n this.greenColor = color1 * PdfColor.maxColourChannelValue;\n this.blueColor = color1 * PdfColor.maxColourChannelValue;\n this.cyanColor = color1;\n this.magentaColor = color1;\n this.yellowColor = color1;\n this.blackColor = color1;\n this.grayColor = color1;\n this.alpha = PdfColor.maxColourChannelValue;\n this.filled = true;\n }\n else if (typeof color4 === 'undefined') {\n this.assignRGB(color1, color2, color3);\n }\n else {\n this.assignRGB(color2, color3, color4, color1);\n }\n }\n /**\n * `Assign` red, green, blue colors with alpha value..\n * @private\n */\n PdfColor.prototype.assignRGB = function (r, g, b, a) {\n if (typeof r === 'undefined' || typeof g === 'undefined' || typeof b === 'undefined') {\n this.filled = false;\n }\n else {\n this.cyanColor = 0;\n this.magentaColor = 0;\n this.yellowColor = 0;\n this.blackColor = 0;\n this.grayColor = 0;\n this.redColor = r;\n this.greenColor = g;\n this.blueColor = b;\n if (typeof a === 'undefined') {\n this.alpha = PdfColor.maxColourChannelValue;\n }\n else {\n this.alpha = a;\n }\n this.filled = true;\n this.assignCMYK(r, g, b);\n }\n };\n /**\n * `Calculate and assign` cyan, megenta, yellow colors from rgb values..\n * @private\n */\n PdfColor.prototype.assignCMYK = function (r, g, b) {\n var red = r / PdfColor.maxColourChannelValue;\n var green = g / PdfColor.maxColourChannelValue;\n var blue = b / PdfColor.maxColourChannelValue;\n var black = PdfNumber.min(1 - red, 1 - green, 1 - blue);\n var cyan = (black === 1.0) ? 0 : (1 - red - black) / (1 - black);\n var magenta = (black === 1.0) ? 0 : (1 - green - black) / (1 - black);\n var yellow = (black === 1.0) ? 0 : (1 - blue - black) / (1 - black);\n this.blackColor = black;\n this.cyanColor = cyan;\n this.magentaColor = magenta;\n this.yellowColor = yellow;\n };\n Object.defineProperty(PdfColor.prototype, \"r\", {\n //Properties\n // public static get Empty():PdfColor\n // {\n // return this.s_emptyColor\n // }\n /**\n * Gets or sets `Red` channel value.\n * @private\n */\n get: function () {\n return this.redColor;\n },\n set: function (value) {\n this.redColor = value;\n this.assignCMYK(this.redColor, this.greenColor, this.blueColor);\n this.filled = true;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfColor.prototype, \"red\", {\n /**\n * Gets the `Red` color\n * @private\n */\n get: function () {\n return (this.r / PdfColor.maxColourChannelValue);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfColor.prototype, \"b\", {\n /**\n * Gets or sets `Blue` channel value.\n * @private\n */\n get: function () {\n return this.blueColor;\n },\n set: function (value) {\n this.blueColor = value;\n this.assignCMYK(this.redColor, this.greenColor, this.blueColor);\n this.filled = true;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfColor.prototype, \"blue\", {\n /**\n * Gets the `blue` color.\n * @private\n */\n get: function () {\n return (this.b / PdfColor.maxColourChannelValue);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfColor.prototype, \"c\", {\n /**\n * Gets or sets `Cyan` channel value.\n * @private\n */\n get: function () {\n return this.cyanColor;\n },\n set: function (value) {\n if (value < 0) {\n this.cyanColor = 0;\n }\n else if (value > 1) {\n this.cyanColor = 1;\n }\n else {\n this.cyanColor = value;\n }\n this.assignRGB(this.cyanColor, this.magentaColor, this.yellowColor, this.blackColor);\n this.filled = true;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfColor.prototype, \"k\", {\n /**\n * Gets or sets `Black` channel value.\n * @private\n */\n get: function () {\n return this.blackColor;\n },\n set: function (value) {\n if ((value < 0)) {\n this.blackColor = 0;\n }\n else if ((value > 1)) {\n this.blackColor = 1;\n }\n else {\n this.blackColor = value;\n }\n this.assignRGB(this.cyanColor, this.magentaColor, this.yellowColor, this.blackColor);\n this.filled = true;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfColor.prototype, \"m\", {\n /**\n * Gets or sets `Magenta` channel value.\n * @private\n */\n get: function () {\n return this.magentaColor;\n },\n set: function (value) {\n if ((value < 0)) {\n this.magentaColor = 0;\n }\n else if ((value > 1)) {\n this.magentaColor = 1;\n }\n else {\n this.magentaColor = value;\n }\n this.assignRGB(this.cyanColor, this.magentaColor, this.yellowColor, this.blackColor);\n this.filled = true;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfColor.prototype, \"y\", {\n /**\n * Gets or sets `Yellow` channel value.\n * @private\n */\n get: function () {\n return this.yellowColor;\n },\n set: function (value) {\n if ((value < 0)) {\n this.yellowColor = 0;\n }\n else if ((value > 1)) {\n this.yellowColor = 1;\n }\n else {\n this.yellowColor = value;\n }\n this.assignRGB(this.cyanColor, this.magentaColor, this.yellowColor, this.blackColor);\n this.filled = true;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfColor.prototype, \"g\", {\n /**\n * Gets or sets `Green` channel value.\n * @private\n */\n get: function () {\n return this.greenColor;\n },\n set: function (value) {\n this.greenColor = value;\n this.assignCMYK(this.redColor, this.greenColor, this.blueColor);\n this.filled = true;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfColor.prototype, \"green\", {\n /**\n * Gets the `Green` color.\n * @private\n */\n get: function () {\n return (this.g / PdfColor.maxColourChannelValue);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfColor.prototype, \"gray\", {\n /**\n * Gets or sets `Gray` channel value.\n * @private\n */\n get: function () {\n return ((((this.redColor + this.greenColor) + this.blueColor)) / (PdfColor.maxColourChannelValue * 3));\n },\n set: function (value) {\n if (value < 0) {\n this.grayColor = 0;\n }\n else if (value > 1) {\n this.grayColor = 1;\n }\n else {\n this.grayColor = value;\n }\n this.r = (this.grayColor * PdfColor.maxColourChannelValue);\n this.g = (this.grayColor * PdfColor.maxColourChannelValue);\n this.b = (this.grayColor * PdfColor.maxColourChannelValue);\n this.assignCMYK(this.redColor, this.greenColor, this.blueColor);\n this.filled = true;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfColor.prototype, \"isEmpty\", {\n /**\n * Gets whether the PDFColor `is Empty` or not.\n * @private\n */\n get: function () {\n return !this.filled;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfColor.prototype, \"a\", {\n /**\n * Gets or sets `Alpha` channel value.\n * @private\n */\n get: function () {\n return this.alpha;\n },\n set: function (value) {\n if (value < 0) {\n this.alpha = 0;\n }\n else {\n // if (this.alpha !== value) {\n this.alpha = value;\n // }\n }\n this.filled = true;\n },\n enumerable: true,\n configurable: true\n });\n //Public methods\n /**\n * Converts `PDFColor to PDF string` representation.\n * @private\n */\n PdfColor.prototype.toString = function (colorSpace, stroke) {\n if (this.isEmpty) {\n return '';\n }\n var str = '';\n switch (colorSpace) {\n case PdfColorSpace.Rgb:\n str = this.rgbToString(stroke);\n break;\n case PdfColorSpace.GrayScale:\n str = this.grayScaleToString(stroke);\n break;\n case PdfColorSpace.Cmyk:\n str = this.cmykToString(stroke);\n break;\n }\n return str;\n };\n /**\n * Sets `GrayScale` color.\n * @private\n */\n PdfColor.prototype.grayScaleToString = function (ifStroking) {\n var gray = this.gray;\n var colour = '';\n var obj = null;\n /* tslint:disable-next-line:max-line-length */\n obj = (ifStroking) ? PdfColor.grayStringsSroke.containsKey(gray) ? PdfColor.grayStringsSroke.getValue(gray) : null : PdfColor.grayStringsFill.containsKey(gray) ? PdfColor.grayStringsFill.getValue(gray) : null;\n if (obj == null) {\n if (ifStroking) {\n colour = gray.toString() + ' G';\n PdfColor.grayStringsSroke.setValue(gray, colour);\n }\n }\n else {\n colour = obj.toString();\n }\n return colour + Operators.newLine;\n };\n /**\n * Sets `RGB` color.\n * @private\n */\n PdfColor.prototype.rgbToString = function (ifStroking) {\n var r = this.r;\n var g = this.g;\n var b = this.b;\n var key = (r << 16) + (g << 8) + b;\n if (ifStroking) {\n key += 1 << 24;\n }\n var colour = '';\n var obj = null;\n if (PdfColor.rgbStrings.containsKey(key)) {\n obj = PdfColor.rgbStrings.getValue(key);\n }\n if (obj == null) {\n var red = r / PdfColor.maxColourChannelValue;\n var green = g / PdfColor.maxColourChannelValue;\n var blue = b / PdfColor.maxColourChannelValue;\n if (ifStroking) {\n colour = red.toString() + ' ' + green.toString() + ' ' + blue.toString() + ' RG';\n }\n else {\n colour = red.toString() + ' ' + green.toString() + ' ' + blue.toString() + ' rg';\n }\n PdfColor.rgbStrings.setValue(key, colour);\n }\n else {\n colour = obj.toString();\n }\n return colour + Operators.newLine;\n };\n /***\n * Sets `CMYK` color.\n * @private\n */\n PdfColor.prototype.cmykToString = function (ifStroking) {\n var cyan = this.c;\n var magenta = this.m;\n var yellow = this.y;\n var black = this.b;\n var colour = '';\n colour = cyan.toString() + ' ' + magenta.toString() + ' ' + yellow.toString() + ' ' + black.toString() + ' K';\n return colour + Operators.newLine;\n };\n /**\n * Converts `colour to a PDF array`.\n * @private\n */\n PdfColor.prototype.toArray = function (colorSpace) {\n var array = new PdfArray();\n switch (colorSpace) {\n case PdfColorSpace.Rgb:\n array.add(new PdfNumber(this.red));\n array.add(new PdfNumber(this.green));\n array.add(new PdfNumber(this.blue));\n break;\n }\n return array;\n };\n //Fields\n /**\n * Holds `RGB colors` converted into strings.\n * @private\n */\n PdfColor.rgbStrings = new Dictionary();\n /**\n * Holds Gray scale colors converted into strings for `stroking`.\n * @private\n */\n PdfColor.grayStringsSroke = new Dictionary();\n /**\n * Holds Gray scale colors converted into strings for `filling`.\n * @private\n */\n PdfColor.grayStringsFill = new Dictionary();\n /**\n * `Max value` of color channel.\n * @private\n */\n PdfColor.maxColourChannelValue = 255.0;\n return PdfColor;\n}());\nexport { PdfColor };\n","/**\n * `PdfBrush` class provides objects used to fill the interiors of graphical shapes such as rectangles,\n * ellipses, pies, polygons, and paths.\n * @private\n */\nvar PdfBrush = /** @class */ (function () {\n /**\n * Creates instanceof `PdfBrush` class.\n * @hidden\n * @private\n */\n function PdfBrush() {\n //\n }\n //IClonable implementation\n PdfBrush.prototype.clone = function () {\n return this;\n };\n return PdfBrush;\n}());\nexport { PdfBrush };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { PdfColor } from './../pdf-color';\nimport { PdfColorSpace } from './../enum';\nimport { PdfBrush } from './pdf-brush';\n/**\n * Represents a brush that fills any object with a solid color.\n * ```typescript\n * // create a new PDF document\n * let document : PdfDocument = new PdfDocument();\n * // add a pages to the document\n * let page1 : PdfPage = document.pages.add();\n * // set font\n * let font : PdfStandardFont = new PdfStandardFont(PdfFontFamily.Helvetica, 20);\n * // set brush\n * let blackBrush : PdfSolidBrush = new PdfSolidBrush(new PdfColor(0, 0, 0));\n * // draw the text\n * page1.graphics.drawString('Hello World', font, blackBrush, new PointF(10, 10));\n * // save the document\n * document.save('output.pdf');\n * // destroy the document\n * document.destroy();\n * ```\n */\nvar PdfSolidBrush = /** @class */ (function (_super) {\n __extends(PdfSolidBrush, _super);\n //Constructors\n /**\n * Initializes a new instance of the `PdfSolidBrush` class.\n * ```typescript\n * // create a new PDF document\n * let document : PdfDocument = new PdfDocument();\n * // add a pages to the document\n * let page1 : PdfPage = document.pages.add();\n * // set font\n * let font : PdfStandardFont = new PdfStandardFont(PdfFontFamily.Helvetica, 20);\n * // set brush\n * let blackBrush : PdfSolidBrush = new PdfSolidBrush(new PdfColor(0, 0, 0));\n * // draw the text\n * page1.graphics.drawString('Hello World', font, blackBrush, new PointF(10, 10));\n * // save the document\n * document.save('output.pdf');\n * // destroy the document\n * document.destroy();\n * ```\n * @param color color of the brush\n */\n function PdfSolidBrush(color) {\n var _this = _super.call(this) || this;\n _this.pdfColor = color;\n return _this;\n }\n Object.defineProperty(PdfSolidBrush.prototype, \"color\", {\n //Properties\n /**\n * Gets or sets the `color` of the brush.\n * @private\n */\n get: function () {\n return this.pdfColor;\n },\n set: function (value) {\n this.pdfColor = value;\n },\n enumerable: true,\n configurable: true\n });\n //Implementation\n /**\n * `Monitors` the changes of the brush and modify PDF state respectively.\n * @private\n */\n PdfSolidBrush.prototype.monitorChanges = function (brush, streamWriter, getResources, saveChanges, currentColorSpace) {\n if (streamWriter == null) {\n throw new Error('ArgumentNullException:streamWriter');\n }\n var diff = false;\n if (brush == null) {\n diff = true;\n streamWriter.setColorAndSpace(this.pdfColor, currentColorSpace, false);\n return diff;\n }\n else {\n var sBrush = brush;\n diff = true;\n streamWriter.setColorAndSpace(this.pdfColor, currentColorSpace, false);\n return diff;\n }\n };\n /**\n * `Resets` the changes, which were made by the brush.\n * @private\n */\n PdfSolidBrush.prototype.resetChanges = function (streamWriter) {\n streamWriter.setColorAndSpace(new PdfColor(0, 0, 0), PdfColorSpace.Rgb, false);\n };\n return PdfSolidBrush;\n}(PdfBrush));\nexport { PdfSolidBrush };\n","/**\n * PdfPen.ts class for EJ2-PDF\n */\nimport { PdfColor } from './pdf-color';\nimport { PdfSolidBrush } from './brushes/pdf-solid-brush';\nimport { PdfDashStyle, PdfColorSpace } from './enum';\nimport { PdfBrush } from './brushes/pdf-brush';\n/**\n * `PdfPen` class defining settings for drawing operations, that determines the color,\n * width, and style of the drawing elements.\n * ```typescript\n * // create a new PDF document\n * let document : PdfDocument = new PdfDocument();\n * // create a new page\n * let page1 : PdfPage = document.pages.add();\n * // set pen\n * let pen : PdfPen = new PdfPen(new PdfColor(0, 0, 0));\n * // draw rectangle\n * page1.graphics.drawRectangle(pen, new RectangleF({x : 0, y : 0}, {width : 100, height : 50}));\n * // save the document.\n * document.save('output.pdf');\n * // destroy the document\n * document.destroy();\n * ```\n */\nvar PdfPen = /** @class */ (function () {\n function PdfPen(arg1, arg2) {\n //Fields\n /**\n * Specifies the `color of the pen`.\n * @default new PdfColor()\n * @private\n */\n this.pdfColor = new PdfColor(0, 0, 0);\n /**\n * Specifies the `dash offset of the pen`.\n * @default 0\n * @private\n */\n this.dashOffsetValue = 0;\n /**\n * Specifies the `dash pattern of the pen`.\n * @default [0]\n * @private\n */\n this.penDashPattern = [0];\n /**\n * Specifies the `dash style of the pen`.\n * @default Solid\n * @private\n */\n this.pdfDashStyle = PdfDashStyle.Solid;\n /**\n * Specifies the `line cap of the pen`.\n * @default 0\n * @private\n */\n this.pdfLineCap = 0;\n /**\n * Specifies the `line join of the pen`.\n * @default 0\n * @private\n */\n this.pdfLineJoin = 0;\n /**\n * Specifies the `width of the pen`.\n * @default 1.0\n * @private\n */\n this.penWidth = 1.0;\n /**\n * Specifies the `mitter limit of the pen`.\n * @default 0.0\n * @private\n */\n this.internalMiterLimit = 0.0;\n /**\n * Stores the `colorspace` value.\n * @default Rgb\n * @private\n */\n this.colorSpace = PdfColorSpace.Rgb;\n if (arg1 instanceof PdfBrush) {\n this.setBrush(arg1);\n }\n else if (arg1 instanceof PdfColor) {\n this.color = arg1;\n }\n if (typeof arg2 === 'number') {\n this.width = arg2;\n }\n }\n Object.defineProperty(PdfPen.prototype, \"color\", {\n //Properties\n /**\n * Gets or sets the `color of the pen`.\n * @private\n */\n get: function () {\n return this.pdfColor;\n },\n set: function (value) {\n this.pdfColor = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfPen.prototype, \"dashOffset\", {\n /**\n * Gets or sets the `dash offset of the pen`.\n * @private\n */\n get: function () {\n if (typeof this.dashOffsetValue === 'undefined' || this.dashOffsetValue == null) {\n return 0;\n }\n else {\n return this.dashOffsetValue;\n }\n },\n set: function (value) {\n this.dashOffsetValue = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfPen.prototype, \"dashPattern\", {\n /**\n * Gets or sets the `dash pattern of the pen`.\n * @private\n */\n get: function () {\n return this.penDashPattern;\n },\n set: function (value) {\n this.penDashPattern = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfPen.prototype, \"dashStyle\", {\n /**\n * Gets or sets the `dash style of the pen`.\n * ```typescript\n * // create a new PDF document\n * let document : PdfDocument = new PdfDocument();\n * // create a new page\n * let page1 : PdfPage = document.pages.add();\n * // set pen\n * let pen : PdfPen = new PdfPen(new PdfColor(0, 0, 0));\n * //\n * // set pen style\n * pen.dashStyle = PdfDashStyle.DashDot;\n * // get pen style\n * let style : PdfDashStyle = pen.dashStyle;\n * //\n * // draw rectangle\n * page1.graphics.drawRectangle(pen, new RectangleF({x : 0, y : 0}, {width : 100, height : 50}));\n * // save the document.\n * document.save('output.pdf');\n * // destroy the document\n * document.destroy();\n * ```\n */\n get: function () {\n return this.pdfDashStyle;\n },\n set: function (value) {\n if (this.pdfDashStyle !== value) {\n this.pdfDashStyle = value;\n switch (this.pdfDashStyle) {\n case PdfDashStyle.Custom:\n break;\n case PdfDashStyle.Dash:\n this.penDashPattern = [3, 1];\n break;\n case PdfDashStyle.Dot:\n this.penDashPattern = [1, 1];\n break;\n case PdfDashStyle.DashDot:\n this.penDashPattern = [3, 1, 1, 1];\n break;\n case PdfDashStyle.DashDotDot:\n this.penDashPattern = [3, 1, 1, 1, 1, 1];\n break;\n case PdfDashStyle.Solid:\n break;\n default:\n this.pdfDashStyle = PdfDashStyle.Solid;\n this.penDashPattern = [0];\n break;\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfPen.prototype, \"lineCap\", {\n /**\n * Gets or sets the `line cap of the pen`.\n * @private\n */\n get: function () {\n return this.pdfLineCap;\n },\n set: function (value) {\n this.pdfLineCap = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfPen.prototype, \"lineJoin\", {\n /**\n * Gets or sets the `line join style of the pen`.\n * @private\n */\n get: function () {\n return this.pdfLineJoin;\n },\n set: function (value) {\n this.pdfLineJoin = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfPen.prototype, \"miterLimit\", {\n /**\n * Gets or sets the `miter limit`.\n * @private\n */\n get: function () {\n return this.internalMiterLimit;\n },\n set: function (value) {\n this.internalMiterLimit = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfPen.prototype, \"width\", {\n /**\n * Gets or sets the `width of the pen`.\n * ```typescript\n * // create a new PDF document\n * let document : PdfDocument = new PdfDocument();\n * // create a new page\n * let page1 : PdfPage = document.pages.add();\n * // set pen\n * let pen : PdfPen = new PdfPen(new PdfColor(0, 0, 0));\n * //\n * // set pen width\n * pen.width = 2;\n * //\n * // draw rectangle\n * page1.graphics.drawRectangle(pen, new RectangleF({x : 0, y : 0}, {width : 100, height : 50}));\n * // save the document.\n * document.save('output.pdf');\n * // destroy the document\n * document.destroy();\n * ```\n */\n get: function () {\n return this.penWidth;\n },\n set: function (value) {\n this.penWidth = value;\n },\n enumerable: true,\n configurable: true\n });\n //Helper\n /**\n * `Clones` this instance of PdfPen class.\n * @private\n */\n PdfPen.prototype.clone = function () {\n var pen = this;\n return pen;\n };\n /**\n * `Sets the brush`.\n * @private\n */\n PdfPen.prototype.setBrush = function (brush) {\n var sBrush = brush;\n if ((sBrush != null && sBrush instanceof PdfSolidBrush)) {\n this.color = sBrush.color;\n this.pdfBrush = sBrush;\n }\n this.color = sBrush.color;\n this.pdfBrush = sBrush;\n };\n /**\n * `Monitors the changes`.\n * @private\n */\n PdfPen.prototype.monitorChanges = function (currentPen, streamWriter, getResources, saveState, currentColorSpace, matrix) {\n var diff = false;\n saveState = true;\n if (currentPen == null) {\n diff = true;\n }\n diff = this.dashControl(currentPen, saveState, streamWriter);\n streamWriter.setLineWidth(this.width);\n streamWriter.setLineJoin(this.lineJoin);\n streamWriter.setLineCap(this.lineCap);\n var miterLimit = this.miterLimit;\n if (miterLimit > 0) {\n streamWriter.setMiterLimit(miterLimit);\n diff = true;\n }\n var brush = this.pdfBrush;\n streamWriter.setColorAndSpace(this.color, currentColorSpace, true);\n diff = true;\n return diff;\n };\n /**\n * `Controls the dash style` and behaviour of each line.\n * @private\n */\n PdfPen.prototype.dashControl = function (pen, saveState, streamWriter) {\n saveState = true;\n var lineWidth = this.width;\n var pattern = this.getPattern();\n streamWriter.setLineDashPattern(pattern, this.dashOffset * lineWidth);\n return saveState;\n };\n /**\n * `Gets the pattern` of PdfPen.\n * @private\n */\n PdfPen.prototype.getPattern = function () {\n var pattern = this.dashPattern;\n for (var i = 0; i < pattern.length; ++i) {\n pattern[i] *= this.width;\n }\n return pattern;\n };\n return PdfPen;\n}());\nexport { PdfPen };\n","/**\n * PdfStringFormat.ts class for EJ2-PDF\n */\nimport { PdfVerticalAlignment } from './../../graphics/enum';\nimport { PdfSubSuperScript, PdfWordWrapType } from './../../graphics/fonts/enum';\n/**\n * `PdfStringFormat` class represents the text layout information on PDF.\n * ```typescript\n * // create a new PDF document\n * let document : PdfDocument = new PdfDocument();\n * // add a pages to the document\n * let page1 : PdfPage = document.pages.add();\n * // set font\n * let font : PdfStandardFont = new PdfStandardFont(PdfFontFamily.Helvetica, 20);\n * // set brush\n * let blackBrush : PdfSolidBrush = new PdfSolidBrush(new PdfColor(0, 0, 0));\n * //\n * // set the format for string\n * let stringFormat : PdfStringFormat = new PdfStringFormat();\n * // set the text alignment\n * stringFormat.alignment = PdfTextAlignment.Center;\n * // set the vertical alignment\n * stringFormat.lineAlignment = PdfVerticalAlignment.Middle;\n * //\n * // draw the text\n * page1.graphics.drawString('Hello World', font, blackBrush, new PointF(10, 10), stringFormat);\n * // save the document\n * document.save('output.pdf');\n * // destroy the document\n * document.destroy();\n * ```\n */\nvar PdfStringFormat = /** @class */ (function () {\n function PdfStringFormat(arg1, arg2) {\n /**\n * The `scaling factor` of the text being drawn.\n * @private\n */\n this.scalingFactor = 100.0;\n /**\n * Indicates text `wrapping` type.\n * @private\n */\n this.wordWrapType = PdfWordWrapType.Word;\n this.internalLineLimit = true;\n this.wordWrapType = PdfWordWrapType.Word;\n if ((typeof arg1 !== 'undefined') && (typeof arg1 !== 'string')) {\n this.textAlignment = arg1;\n }\n if (typeof arg2 !== 'undefined') {\n this.verticalAlignment = arg2;\n }\n }\n Object.defineProperty(PdfStringFormat.prototype, \"alignment\", {\n //Properties\n /**\n * Gets or sets the `horizontal` text alignment\n * ```typescript\n * // create a new PDF document\n * let document : PdfDocument = new PdfDocument();\n * // add a pages to the document\n * let page1 : PdfPage = document.pages.add();\n * // set font\n * let font : PdfStandardFont = new PdfStandardFont(PdfFontFamily.Helvetica, 20);\n * // set brush\n * let blackBrush : PdfSolidBrush = new PdfSolidBrush(new PdfColor(0, 0, 0));\n * //\n * // set the format for string\n * let stringFormat : PdfStringFormat = new PdfStringFormat();\n * // set the text alignment\n * stringFormat.alignment = PdfTextAlignment.Center;\n * //\n * // draw the text\n * page1.graphics.drawString('Hello World', font, blackBrush, new PointF(10, 10), stringFormat);\n * // save the document\n * document.save('output.pdf');\n * // destroy the document\n * document.destroy();\n * ```\n */\n get: function () {\n return this.textAlignment;\n },\n set: function (value) {\n this.textAlignment = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfStringFormat.prototype, \"textDirection\", {\n get: function () {\n return this.direction;\n },\n set: function (value) {\n this.direction = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfStringFormat.prototype, \"lineAlignment\", {\n /**\n * Gets or sets the `vertical` text alignment.\n * ```typescript\n * // create a new PDF document\n * let document : PdfDocument = new PdfDocument();\n * // add a pages to the document\n * let page1 : PdfPage = document.pages.add();\n * // set font\n * let font : PdfStandardFont = new PdfStandardFont(PdfFontFamily.Helvetica, 20);\n * // set brush\n * let blackBrush : PdfSolidBrush = new PdfSolidBrush(new PdfColor(0, 0, 0));\n * //\n * // set the format for string\n * let stringFormat : PdfStringFormat = new PdfStringFormat();\n * // set the vertical alignment\n * stringFormat.lineAlignment = PdfVerticalAlignment.Middle;\n * //\n * // draw the text\n * page1.graphics.drawString('Hello World', font, blackBrush, new PointF(10, 10), stringFormat);\n * // save the document\n * document.save('output.pdf');\n * // destroy the document\n * document.destroy();\n * ```\n */\n get: function () {\n if (typeof this.verticalAlignment === 'undefined' || this.verticalAlignment == null) {\n return PdfVerticalAlignment.Top;\n }\n else {\n return this.verticalAlignment;\n }\n },\n set: function (value) {\n this.verticalAlignment = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfStringFormat.prototype, \"rightToLeft\", {\n /**\n * Gets or sets the value that indicates text `direction` mode.\n * @private\n */\n get: function () {\n if (typeof this.isRightToLeft === 'undefined' || this.isRightToLeft == null) {\n return false;\n }\n else {\n return this.isRightToLeft;\n }\n },\n set: function (value) {\n this.isRightToLeft = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfStringFormat.prototype, \"characterSpacing\", {\n /**\n * Gets or sets value that indicates a `size` among the characters in the text.\n * ```typescript\n * // create a new PDF document\n * let document : PdfDocument = new PdfDocument();\n * // add a pages to the document\n * let page1 : PdfPage = document.pages.add();\n * // set font\n * let font : PdfStandardFont = new PdfStandardFont(PdfFontFamily.Helvetica, 20);\n * // set brush\n * let blackBrush : PdfSolidBrush = new PdfSolidBrush(new PdfColor(0, 0, 0));\n * //\n * // set the format for string\n * let stringFormat : PdfStringFormat = new PdfStringFormat();\n * // set character spacing\n * stringFormat.characterSpacing = 10;\n * //\n * // draw the text\n * page1.graphics.drawString('Hello World', font, blackBrush, new PointF(10, 10), stringFormat);\n * // save the document\n * document.save('output.pdf');\n * // destroy the document\n * document.destroy();\n * ```\n */\n get: function () {\n if (typeof this.internalCharacterSpacing === 'undefined' || this.internalCharacterSpacing == null) {\n return 0;\n }\n else {\n return this.internalCharacterSpacing;\n }\n },\n set: function (value) {\n this.internalCharacterSpacing = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfStringFormat.prototype, \"wordSpacing\", {\n /**\n * Gets or sets value that indicates a `size` among the words in the text.\n * ```typescript\n * // create a new PDF document\n * let document : PdfDocument = new PdfDocument();\n * // add a pages to the document\n * let page1 : PdfPage = document.pages.add();\n * // set font\n * let font : PdfStandardFont = new PdfStandardFont(PdfFontFamily.Helvetica, 20);\n * // set brush\n * let blackBrush : PdfSolidBrush = new PdfSolidBrush(new PdfColor(0, 0, 0));\n * //\n * // set the format for string\n * let stringFormat : PdfStringFormat = new PdfStringFormat();\n * // set word spacing\n * stringFormat.wordSpacing = 10;\n * //\n * // draw the text\n * page1.graphics.drawString('Hello World', font, blackBrush, new PointF(10, 10), stringFormat);\n * // save the document\n * document.save('output.pdf');\n * // destroy the document\n * document.destroy();\n * ```\n */\n get: function () {\n if (typeof this.internalWordSpacing === 'undefined' || this.internalWordSpacing == null) {\n return 0;\n }\n else {\n return this.internalWordSpacing;\n }\n },\n set: function (value) {\n this.internalWordSpacing = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfStringFormat.prototype, \"lineSpacing\", {\n /**\n * Gets or sets value that indicates the `vertical distance` between the baselines of adjacent lines of text.\n * ```typescript\n * // create a new PDF document\n * let document : PdfDocument = new PdfDocument();\n * // add a pages to the document\n * let page1 : PdfPage = document.pages.add();\n * // set font\n * let font : PdfStandardFont = new PdfStandardFont(PdfFontFamily.Helvetica, 20);\n * // set brush\n * let blackBrush : PdfSolidBrush = new PdfSolidBrush(new PdfColor(0, 0, 0));\n * // set string\n * let text : string = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor\n * incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitati';\n * // set rectangle bounds\n * let rectangle : RectangleF = new RectangleF({x : 0, y : 0}, {width : 300, height : 100})\n * //\n * // set the format for string\n * let stringFormat : PdfStringFormat = new PdfStringFormat();\n * // set line spacing\n * stringFormat.lineSpacing = 10;\n * //\n * // draw the text\n * page1.graphics.drawString(text, font, blackBrush, rectangle, stringFormat);\n * // save the document\n * document.save('output.pdf');\n * // destroy the document\n * document.destroy();\n * ```\n */\n get: function () {\n if (typeof this.leading === 'undefined' || this.leading == null) {\n return 0;\n }\n else {\n return this.leading;\n }\n },\n set: function (value) {\n this.leading = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfStringFormat.prototype, \"clipPath\", {\n /**\n * Gets or sets a value indicating whether the text is `clipped` or not.\n * @private\n */\n get: function () {\n if (typeof this.clip === 'undefined' || this.clip == null) {\n return false;\n }\n else {\n return this.clip;\n }\n },\n set: function (value) {\n this.clip = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfStringFormat.prototype, \"subSuperScript\", {\n /**\n * Gets or sets value indicating whether the text is in `subscript or superscript` mode.\n * @private\n */\n get: function () {\n if (typeof this.pdfSubSuperScript === 'undefined' || this.pdfSubSuperScript == null) {\n return PdfSubSuperScript.None;\n }\n else {\n return this.pdfSubSuperScript;\n }\n },\n set: function (value) {\n this.pdfSubSuperScript = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfStringFormat.prototype, \"paragraphIndent\", {\n /**\n * Gets or sets the `indent` of the first line in the paragraph.\n * @private\n */\n get: function () {\n if (typeof this.internalParagraphIndent === 'undefined' || this.internalParagraphIndent == null) {\n return 0;\n }\n else {\n return this.internalParagraphIndent;\n }\n },\n set: function (value) {\n this.internalParagraphIndent = value;\n this.firstLineIndent = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfStringFormat.prototype, \"lineLimit\", {\n /**\n * Gets or sets a value indicating whether [`line limit`].\n * @private\n */\n get: function () {\n return this.internalLineLimit;\n },\n set: function (value) {\n this.internalLineLimit = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfStringFormat.prototype, \"measureTrailingSpaces\", {\n /**\n * Gets or sets a value indicating whether [`measure trailing spaces`].\n * @private\n */\n get: function () {\n if (typeof this.trailingSpaces === 'undefined' || this.trailingSpaces == null) {\n return false;\n }\n else {\n return this.trailingSpaces;\n }\n },\n set: function (value) {\n this.trailingSpaces = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfStringFormat.prototype, \"noClip\", {\n /**\n * Gets or sets a value indicating whether [`no clip`].\n * @private\n */\n get: function () {\n if (typeof this.isNoClip === 'undefined' || this.isNoClip == null) {\n return false;\n }\n else {\n return this.isNoClip;\n }\n },\n set: function (value) {\n this.isNoClip = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfStringFormat.prototype, \"wordWrap\", {\n /**\n * Gets or sets value indicating type of the text `wrapping`.\n * @private\n */\n get: function () {\n // if (typeof this.wrapType === 'undefined' || this.wrapType == null) {\n // return PdfWordWrapType.Word;\n // } else {\n return this.wordWrapType;\n // }\n },\n set: function (value) {\n this.wordWrapType = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfStringFormat.prototype, \"horizontalScalingFactor\", {\n /**\n * Gets or sets the `scaling factor`.\n * @private\n */\n get: function () {\n // if (typeof this.scalingFactor === 'undefined' || this.scalingFactor == null) {\n // return 100;\n // } else {\n return this.scalingFactor;\n // }\n },\n set: function (value) {\n if (value <= 0) {\n throw new Error('ArgumentOutOfRangeException:The scaling factor cant be less of equal to zero, ScalingFactor');\n }\n this.scalingFactor = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfStringFormat.prototype, \"firstLineIndent\", {\n /**\n * Gets or sets the `indent` of the first line in the text.\n * @private\n */\n get: function () {\n if (typeof this.initialLineIndent === 'undefined' || this.initialLineIndent == null) {\n return 0;\n }\n else {\n return this.initialLineIndent;\n }\n },\n set: function (value) {\n this.initialLineIndent = value;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * `Clones` the object.\n * @private\n */\n //IClonable implementation\n PdfStringFormat.prototype.clone = function () {\n var format = this;\n return format;\n };\n return PdfStringFormat;\n}());\nexport { PdfStringFormat };\n","/**\n * StringTokenizer.ts class for EJ2-PDF\n * Utility class for working with strings.\n * @private\n */\nvar StringTokenizer = /** @class */ (function () {\n // Constructors\n /**\n * Initializes a new instance of the `StringTokenizer` class.\n * @private\n */\n function StringTokenizer(textValue) {\n /**\n * Current `position`.\n * @private\n */\n this.currentPosition = 0;\n if (textValue == null) {\n throw new Error('ArgumentNullException:text');\n }\n this.text = textValue;\n }\n Object.defineProperty(StringTokenizer.prototype, \"length\", {\n // Properties\n /**\n * Gets text `length`.\n * @private\n */\n get: function () {\n return this.text.length;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(StringTokenizer.prototype, \"end\", {\n get: function () {\n return (this.currentPosition === this.text.length);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(StringTokenizer.prototype, \"position\", {\n /**\n * Gets or sets the position.\n * @private\n */\n get: function () {\n return this.currentPosition;\n },\n set: function (value) {\n this.currentPosition = value;\n },\n enumerable: true,\n configurable: true\n });\n StringTokenizer.getCharsCount = function (text, symbols) {\n if (typeof symbols === 'string') {\n if (text == null) {\n throw new Error('ArgumentNullException:wholeText');\n }\n var numSymbols = 0;\n var curIndex = 0;\n for (;;) {\n curIndex = text.indexOf(symbols, curIndex);\n if (curIndex === -1) {\n break;\n }\n else {\n numSymbols++;\n curIndex++;\n }\n }\n return numSymbols;\n }\n else {\n if (text == null) {\n throw new Error('ArgumentNullException:text');\n }\n if (symbols == null) {\n throw new Error('ArgumentNullException:symbols');\n }\n var count = 0;\n for (var i = 0, len = text.length; i < len; i++) {\n var ch = text[i];\n if (this.contains(symbols, ch)) {\n count++;\n }\n }\n return count;\n }\n };\n /**\n * Reads line of the text.\n * @private\n */\n StringTokenizer.prototype.readLine = function () {\n var pos = this.currentPosition;\n while (pos < this.length) {\n var ch = this.text[pos];\n switch (ch) {\n case '\\r':\n case '\\n': {\n var text = this.text.substr(this.currentPosition, pos - this.currentPosition);\n this.currentPosition = pos + 1;\n if (((ch === '\\r') && (this.currentPosition < this.length)) && (this.text[this.currentPosition] === '\\n')) {\n this.currentPosition++;\n }\n return text;\n }\n }\n pos++;\n }\n // The remaining text.\n if (pos > this.currentPosition) {\n var text2 = this.text.substr(this.currentPosition, pos - this.currentPosition);\n this.currentPosition = pos;\n return text2;\n }\n return null;\n };\n /**\n * Reads line of the text.\n * @private\n */\n StringTokenizer.prototype.peekLine = function () {\n var pos = this.currentPosition;\n var line = this.readLine();\n this.currentPosition = pos;\n return line;\n };\n /**\n * Reads a word from the text.\n * @private\n */\n StringTokenizer.prototype.readWord = function () {\n var pos = this.currentPosition;\n while (pos < this.length) {\n var ch = this.text[pos];\n switch (ch) {\n case '\\r':\n case '\\n':\n var textValue = this.text.substr(this.currentPosition, pos - this.currentPosition);\n this.currentPosition = pos + 1;\n if (((ch === '\\r') && (this.currentPosition < this.length)) && (this.text[this.currentPosition] === '\\n')) {\n this.currentPosition++;\n }\n return textValue;\n case ' ':\n case '\\t': {\n if (pos === this.currentPosition) {\n pos++;\n }\n var text = this.text.substr(this.currentPosition, pos - this.currentPosition);\n this.currentPosition = pos;\n return text;\n }\n }\n pos++;\n }\n // The remaining text.\n if (pos > this.currentPosition) {\n var text2 = this.text.substr(this.currentPosition, pos - this.currentPosition);\n this.currentPosition = pos;\n return text2;\n }\n return null;\n };\n /**\n * Peeks a word from the text.\n * @private\n */\n StringTokenizer.prototype.peekWord = function () {\n var pos = this.currentPosition;\n var word = this.readWord();\n this.currentPosition = pos;\n return word;\n };\n StringTokenizer.prototype.read = function (count) {\n if (typeof count === 'undefined') {\n var ch = '0';\n if (!this.end) {\n ch = this.text[this.currentPosition];\n this.currentPosition++;\n }\n return ch;\n }\n else {\n var num = 0;\n var builder = '';\n while (!this.end && num < count) {\n var ch = this.read();\n builder = builder + ch;\n num++;\n }\n return builder;\n }\n };\n /**\n * Peeks char form the data.\n * @private\n */\n StringTokenizer.prototype.peek = function () {\n var ch = '0';\n if (!this.end) {\n ch = this.text[this.currentPosition];\n }\n return ch;\n };\n /**\n * Closes a reader.\n * @private\n */\n StringTokenizer.prototype.close = function () {\n this.text = null;\n };\n StringTokenizer.prototype.readToEnd = function () {\n var text;\n if (this.currentPosition === 0) {\n text = this.text;\n }\n else {\n text = this.text.substr(this.currentPosition, this.length - this.currentPosition);\n }\n this.currentPosition = this.length;\n return text;\n };\n //Implementation\n /**\n * Checks whether array contains a symbol.\n * @private\n */\n StringTokenizer.contains = function (array, symbol) {\n var contains = false;\n for (var i = 0; i < array.length; i++) {\n if (array[i] === symbol) {\n contains = true;\n break;\n }\n }\n return contains;\n };\n // Constants\n /**\n * `Whitespace` symbol.\n * @private\n */\n StringTokenizer.whiteSpace = ' ';\n /**\n * `tab` symbol.\n * @private\n */\n StringTokenizer.tab = '\\t';\n /**\n * Array of `spaces`.\n * @private\n */\n StringTokenizer.spaces = [StringTokenizer.whiteSpace, StringTokenizer.tab];\n /**\n * `Pattern` for WhiteSpace.\n * @private\n */\n StringTokenizer.whiteSpacePattern = '^[ \\t]+$';\n return StringTokenizer;\n}());\nexport { StringTokenizer };\n","/**\n * PdfFont.ts class for EJ2-PDF\n */\nimport { PdfFontStyle } from './enum';\nimport { SizeF } from './../../drawing/pdf-drawing';\nimport { PdfStringFormat } from './pdf-string-format';\nimport { PdfStringLayouter } from './string-layouter';\nimport { StringTokenizer } from './string-tokenizer';\n/**\n * Defines a particular format for text, including font face, size, and style attributes.\n * @private\n */\nvar PdfFont = /** @class */ (function () {\n function PdfFont(size, style) {\n /**\n * `Style` of the font.\n * @private\n */\n this.fontStyle = PdfFontStyle.Regular;\n if (typeof size === 'number' && typeof style === 'undefined') {\n this.fontSize = size;\n }\n else {\n this.fontSize = size;\n this.setStyle(style);\n }\n }\n Object.defineProperty(PdfFont.prototype, \"name\", {\n //Properties\n /**\n * Gets the face name of this Font.\n * @private\n */\n get: function () {\n return this.metrics.name;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfFont.prototype, \"size\", {\n /**\n * Gets the size of this font.\n * @private\n */\n get: function () {\n return this.fontSize;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfFont.prototype, \"height\", {\n /**\n * Gets the height of the font in points.\n * @private\n */\n get: function () {\n return this.metrics.getHeight(null);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfFont.prototype, \"style\", {\n /**\n * Gets the style information for this font.\n * @private\n */\n get: function () {\n return this.fontStyle;\n },\n set: function (value) {\n this.fontStyle = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfFont.prototype, \"bold\", {\n /**\n * Gets a value indicating whether this `PdfFont` is `bold`.\n * @private\n */\n get: function () {\n return ((this.style & PdfFontStyle.Bold) > 0);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfFont.prototype, \"italic\", {\n /**\n * Gets a value indicating whether this `PdfFont` has the `italic` style applied.\n * @private\n */\n get: function () {\n return ((this.style & PdfFontStyle.Italic) > 0);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfFont.prototype, \"strikeout\", {\n /**\n * Gets a value indicating whether this `PdfFont` is `strikeout`.\n * @private\n */\n get: function () {\n return ((this.style & PdfFontStyle.Strikeout) > 0);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfFont.prototype, \"underline\", {\n /**\n * Gets a value indicating whether this `PdfFont` is `underline`.\n * @private\n */\n get: function () {\n return ((this.style & PdfFontStyle.Underline) > 0);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfFont.prototype, \"metrics\", {\n /**\n * Gets or sets the `metrics` for this font.\n * @private\n */\n get: function () {\n return this.fontMetrics;\n },\n set: function (value) {\n this.fontMetrics = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfFont.prototype, \"element\", {\n // /**\n // * Gets and Sets the font `internals`.\n // * @private\n // */\n // public get fontInternal() : IPdfPrimitive {\n // return this.pdfFontInternals;\n // }\n // public set fontInternal(value : IPdfPrimitive) {\n // this.pdfFontInternals = value;\n // }\n //IPdfWrapper Members\n /**\n * Gets the `element` representing the font.\n * @private\n */\n get: function () {\n return this.pdfFontInternals;\n },\n enumerable: true,\n configurable: true\n });\n PdfFont.prototype.measureString = function (text, arg2, arg3, arg4, arg5) {\n if (typeof text === 'string' && typeof arg2 === 'undefined') {\n return this.measureString(text, null);\n }\n else if (typeof text === 'string' && (arg2 instanceof PdfStringFormat || arg2 == null) && typeof arg3 === 'undefined' && typeof arg4 === 'undefined') {\n var temparg2 = arg2;\n var charactersFitted = 0;\n var linesFilled = 0;\n return this.measureString(text, temparg2, charactersFitted, linesFilled);\n }\n else if (typeof text === 'string' && (arg2 instanceof PdfStringFormat || arg2 == null) && typeof arg3 === 'number' && typeof arg4 === 'number') {\n var temparg2 = arg2;\n return this.measureString(text, 0, temparg2, arg3, arg4);\n // } else if (typeof text === 'string' && typeof arg2 === 'number' && typeof arg3 === 'undefined') {\n // return this.measureString(text, arg2, null);\n // } else if (typeof text === 'string' && typeof arg2 === 'number' && (arg3 instanceof PdfStringFormat || arg3 == null) && typeof arg4 === 'undefined' && typeof arg5 === 'undefined') {\n // let temparg3 : PdfStringFormat = arg3 as PdfStringFormat;\n // let charactersFitted : number = 0;\n // let linesFilled : number = 0;\n // return this.measureString(text, arg2, temparg3, charactersFitted, linesFilled);\n }\n else if (typeof text === 'string' && typeof arg2 === 'number' && (arg3 instanceof PdfStringFormat || arg3 == null) && typeof arg4 === 'number' && typeof arg5 === 'number') {\n var layoutArea = new SizeF(arg2, 0);\n var temparg3 = arg3;\n return this.measureString(text, layoutArea, temparg3, arg4, arg5);\n // } else if (typeof text === 'string' && arg2 instanceof SizeF && typeof arg3 === 'undefined') {\n // return this.measureString(text, arg2, null);\n // } else if (typeof text === 'string' && arg2 instanceof SizeF && (arg3 instanceof PdfStringFormat || arg3 == null) && typeof arg4 === 'undefined' && typeof arg5 === 'undefined') {\n // let temparg3 : PdfStringFormat = arg3 as PdfStringFormat;\n // let charactersFitted : number = 0;\n // let linesFilled : number = 0;\n // return this.measureString(text, arg2, temparg3, charactersFitted, linesFilled);\n }\n else {\n if (text == null) {\n throw Error(\"ArgumentNullException(\\\"text\\\")\");\n }\n var temparg2 = arg2;\n var temparg3 = arg3;\n var layouter = new PdfStringLayouter();\n var result = layouter.layout(text, this, temparg3, temparg2, false, new SizeF(0, 0));\n // arg4 = (result.Remainder == null) ? text.length : text.length - result.Remainder.length;\n arg4 = text.length;\n arg5 = (result.empty) ? 0 : result.lines.length;\n return result.actualSize;\n }\n };\n /* tslint:enable */\n //IPdfCache Members\n /**\n * `Checks` whether the object is similar to another object.\n * @private\n */\n PdfFont.prototype.equalsTo = function (obj) {\n var result = this.equalsToFont(obj);\n return result;\n };\n /**\n * Returns `internals` of the object.\n * @private\n */\n PdfFont.prototype.getInternals = function () {\n return this.pdfFontInternals;\n };\n /**\n * Sets `internals` to the object.\n * @private\n */\n PdfFont.prototype.setInternals = function (internals) {\n if (internals == null) {\n throw new Error('ArgumentNullException:internals');\n }\n this.pdfFontInternals = internals;\n };\n /**\n * Sets the `style` of the font.\n * @private\n */\n PdfFont.prototype.setStyle = function (style) {\n this.fontStyle = style;\n };\n /**\n * Applies `settings` to the default line width.\n * @private\n */\n PdfFont.prototype.applyFormatSettings = function (line, format, width) {\n // if (line == null) {\n // throw new Error(`ArgumentNullException:line`);\n // }\n var realWidth = width;\n if (format != null && width > 0) {\n // Space among characters is not default.\n if (format.characterSpacing !== 0) {\n realWidth += (line.length - 1) * format.characterSpacing;\n }\n // Space among words is not default.\n if (format.wordSpacing !== 0) {\n var symbols = StringTokenizer.spaces;\n var whitespacesCount = StringTokenizer.getCharsCount(line, symbols);\n realWidth += whitespacesCount * format.wordSpacing;\n }\n }\n return realWidth;\n };\n //Constants\n /**\n * `Multiplier` of the symbol width.\n * @default 0.001\n * @private\n */\n PdfFont.charSizeMultiplier = 0.001;\n /**\n * `Synchronization` object.\n * @private\n */\n PdfFont.syncObject = new Object();\n return PdfFont;\n}());\nexport { PdfFont };\n","/**\n * public Enum for `PdfLayoutType`.\n * @private\n */\nexport var PdfLayoutType;\n(function (PdfLayoutType) {\n /**\n * Specifies the type of `Paginate`.\n * @private\n */\n PdfLayoutType[PdfLayoutType[\"Paginate\"] = 0] = \"Paginate\";\n /**\n * Specifies the type of `OnePage`.\n * @private\n */\n PdfLayoutType[PdfLayoutType[\"OnePage\"] = 1] = \"OnePage\";\n})(PdfLayoutType || (PdfLayoutType = {}));\n/**\n * public Enum for `PdfLayoutBreakType`.\n * @private\n */\nexport var PdfLayoutBreakType;\n(function (PdfLayoutBreakType) {\n /**\n * Specifies the type of `FitPage`.\n * @private\n */\n PdfLayoutBreakType[PdfLayoutBreakType[\"FitPage\"] = 0] = \"FitPage\";\n /**\n * Specifies the type of `FitElement`.\n * @private\n */\n PdfLayoutBreakType[PdfLayoutBreakType[\"FitElement\"] = 1] = \"FitElement\";\n /**\n * Specifies the type of `FitColumnsToPage`.\n * @private\n */\n PdfLayoutBreakType[PdfLayoutBreakType[\"FitColumnsToPage\"] = 2] = \"FitColumnsToPage\";\n})(PdfLayoutBreakType || (PdfLayoutBreakType = {}));\nexport var PathPointType;\n(function (PathPointType) {\n /**\n * Specifies the path point type of `Start`.\n * @private\n */\n PathPointType[PathPointType[\"Start\"] = 0] = \"Start\";\n /**\n * Specifies the path point type of `Line`.\n * @private\n */\n PathPointType[PathPointType[\"Line\"] = 1] = \"Line\";\n /**\n * Specifies the path point type of `Bezier3`.\n * @private\n */\n PathPointType[PathPointType[\"Bezier3\"] = 3] = \"Bezier3\";\n /**\n * Specifies the path point type of `Bezier`.\n * @private\n */\n PathPointType[PathPointType[\"Bezier\"] = 3] = \"Bezier\";\n /**\n * Specifies the path point type of `PathTypeMask`.\n * @private\n */\n PathPointType[PathPointType[\"PathTypeMask\"] = 7] = \"PathTypeMask\";\n /**\n * Specifies the path point type of `DashMode`.\n * @private\n */\n PathPointType[PathPointType[\"DashMode\"] = 16] = \"DashMode\";\n /**\n * Specifies the path point type of `PathMarker`.\n * @private\n */\n PathPointType[PathPointType[\"PathMarker\"] = 32] = \"PathMarker\";\n /**\n * Specifies the path point type of `CloseSubpath`.\n * @private\n */\n PathPointType[PathPointType[\"CloseSubpath\"] = 128] = \"CloseSubpath\";\n})(PathPointType || (PathPointType = {}));\n","/**\n * PdfTransformationMatrix.ts class for EJ2-PDF\n */\nimport { PointF } from './../drawing/pdf-drawing';\nimport { PdfNumber } from './../primitives/pdf-number';\n/**\n * Class for representing Root `transformation matrix`.\n */\nvar PdfTransformationMatrix = /** @class */ (function () {\n function PdfTransformationMatrix(value) {\n /**\n * Value for `angle converting`.\n * @default 180.0 / Math.PI\n * @private\n */\n this.radDegFactor = 180.0 / Math.PI;\n if (typeof value === 'undefined') {\n this.transformationMatrix = new Matrix(1.00, 0.00, 0.00, 1.00, 0.00, 0.00);\n }\n else {\n this.transformationMatrix = new Matrix(1.00, 0.00, 0.00, -1.00, 0.00, 0.00);\n }\n }\n Object.defineProperty(PdfTransformationMatrix.prototype, \"matrix\", {\n // Properties\n /**\n * Gets or sets the `internal matrix object`.\n * @private\n */\n get: function () {\n return this.transformationMatrix;\n },\n set: function (value) {\n this.transformationMatrix = value;\n },\n enumerable: true,\n configurable: true\n });\n // Public methods\n /**\n * `Translates` coordinates by specified coordinates.\n * @private\n */\n PdfTransformationMatrix.prototype.translate = function (offsetX, offsetY) {\n this.transformationMatrix.translate(offsetX, offsetY);\n };\n /**\n * `Scales` coordinates by specified coordinates.\n * @private\n */\n PdfTransformationMatrix.prototype.scale = function (scaleX, scaleY) {\n this.transformationMatrix.elements[0] = scaleX;\n this.transformationMatrix.elements[3] = scaleY;\n };\n /**\n * `Rotates` coordinate system in counterclockwise direction.\n * @private\n */\n PdfTransformationMatrix.prototype.rotate = function (angle) {\n //Convert from degree to radian \n angle = (angle * Math.PI) / 180;\n //Rotation \n this.transformationMatrix.elements[0] = Math.cos(angle);\n this.transformationMatrix.elements[1] = Math.sin(angle);\n this.transformationMatrix.elements[2] = -Math.sin(angle);\n this.transformationMatrix.elements[3] = Math.cos(angle);\n };\n // Overrides\n /**\n * Gets `PDF representation`.\n * @private\n */\n PdfTransformationMatrix.prototype.toString = function () {\n var builder = '';\n var whitespace = ' ';\n for (var i = 0, len = this.transformationMatrix.elements.length; i < len; i++) {\n var temp = this.matrix.elements[i];\n builder += PdfNumber.floatToString(this.transformationMatrix.elements[i]);\n builder += whitespace;\n }\n return builder;\n };\n // Implementation\n /**\n * `Multiplies` matrices (changes coordinate system.)\n * @private\n */\n PdfTransformationMatrix.prototype.multiply = function (matrix) {\n this.transformationMatrix.multiply(matrix.matrix);\n };\n /**\n * Converts `degrees to radians`.\n * @private\n */\n PdfTransformationMatrix.degreesToRadians = function (degreesX) {\n return this.degRadFactor * degreesX;\n };\n /**\n * Converts `radians to degrees`.\n * @private\n */\n PdfTransformationMatrix.prototype.radiansToDegrees = function (radians) {\n return this.radDegFactor * radians;\n };\n /**\n * `Clones` this instance of PdfTransformationMatrix.\n * @private\n */\n PdfTransformationMatrix.prototype.clone = function () {\n return this;\n };\n // Constants\n /**\n * Value for `angle converting`.\n * @default Math.PI / 180.0\n * @private\n */\n PdfTransformationMatrix.degRadFactor = Math.PI / 180.0;\n return PdfTransformationMatrix;\n}());\nexport { PdfTransformationMatrix };\nvar Matrix = /** @class */ (function () {\n function Matrix(arg1, arg2, arg3, arg4, arg5, arg6) {\n if (typeof arg1 === 'undefined') {\n this.metrixElements = [];\n }\n else if (typeof arg1 === 'number') {\n this.metrixElements = [];\n this.metrixElements.push(arg1);\n this.metrixElements.push(arg2);\n this.metrixElements.push(arg3);\n this.metrixElements.push(arg4);\n this.metrixElements.push(arg5);\n this.metrixElements.push(arg6);\n }\n else {\n this.metrixElements = arg1;\n }\n }\n Object.defineProperty(Matrix.prototype, \"elements\", {\n // Properties\n /**\n * Gets the `elements`.\n * @private\n */\n get: function () {\n return this.metrixElements;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Matrix.prototype, \"offsetX\", {\n /**\n * Gets the off set `X`.\n * @private\n */\n get: function () {\n return this.metrixElements[4];\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Matrix.prototype, \"offsetY\", {\n /**\n * Gets the off set `Y`.\n * @private\n */\n get: function () {\n return this.metrixElements[5];\n },\n enumerable: true,\n configurable: true\n });\n // Implementation\n /**\n * `Translates` coordinates by specified coordinates.\n * @private\n */\n Matrix.prototype.translate = function (offsetX, offsetY) {\n this.metrixElements[4] = offsetX;\n this.metrixElements[5] = offsetY;\n };\n /**\n * `Translates` the specified offset X.\n * @private\n */\n Matrix.prototype.transform = function (point) {\n var x = point.x;\n var y = point.y;\n var x2 = x * this.elements[0] + y * this.elements[2] + this.offsetX;\n var y2 = x * this.elements[1] + y * this.elements[3] + this.offsetY;\n return new PointF(x2, y2);\n };\n /**\n * `Multiplies matrices` (changes coordinate system.)\n * @private\n */\n Matrix.prototype.multiply = function (matrix) {\n var tempMatrix = [];\n tempMatrix.push(this.elements[0] * matrix.elements[0] + this.elements[1] * matrix.elements[2]);\n tempMatrix[1] = (this.elements[0] * matrix.elements[1] + this.elements[1] * matrix.elements[3]);\n tempMatrix[2] = (this.elements[2] * matrix.elements[0] + this.elements[3] * matrix.elements[2]);\n tempMatrix[3] = (this.elements[2] * matrix.elements[1] + this.elements[3] * matrix.elements[3]);\n tempMatrix[4] = (this.offsetX * matrix.elements[0] + this.offsetY * matrix.elements[2] + matrix.offsetX);\n tempMatrix[5] = (this.offsetX * matrix.elements[1] + this.offsetY * matrix.elements[3] + matrix.offsetY);\n for (var i = 0; i < tempMatrix.length; i++) {\n this.elements[i] = tempMatrix[i];\n }\n };\n // IDisposable Members\n /**\n * `Dispose` this instance of PdfTransformationMatrix class.\n * @private\n */\n Matrix.prototype.dispose = function () {\n this.metrixElements = null;\n };\n // ICloneable Members\n /**\n * `Clones` this instance of PdfTransformationMatrix class.\n * @private\n */\n Matrix.prototype.clone = function () {\n var m = new Matrix(this.metrixElements);\n return m;\n };\n return Matrix;\n}());\nexport { Matrix };\n","/**\n * `constants.ts` class for EJ2-PDF\n * @private\n */\nvar ProcedureSets = /** @class */ (function () {\n function ProcedureSets() {\n /**\n * Specifies the `PDF` procedure set.\n * @private\n */\n this.pdf = 'PDF';\n /**\n * Specifies the `Text` procedure set.\n * @private\n */\n this.text = 'Text';\n /**\n * Specifies the `ImageB` procedure set.\n * @private\n */\n this.imageB = 'ImageB';\n /**\n * Specifies the `ImageC` procedure set.\n * @private\n */\n this.imageC = 'ImageC';\n /**\n * Specifies the `ImageI` procedure set.\n * @private\n */\n this.imageI = 'ImageI';\n }\n return ProcedureSets;\n}());\nexport { ProcedureSets };\n","/**\n * Dictionary class\n * @private\n * @hidden\n */\nvar TemporaryDictionary = /** @class */ (function () {\n function TemporaryDictionary() {\n /**\n * @hidden\n * @private\n */\n this.mKeys = [];\n /**\n * @hidden\n * @private\n */\n this.mValues = [];\n }\n /**\n * @hidden\n * @private\n */\n TemporaryDictionary.prototype.size = function () {\n return this.mKeys.length;\n };\n /**\n * @hidden\n * @private\n */\n TemporaryDictionary.prototype.add = function (key, value) {\n if (key === undefined || key === null || value === undefined || value === null) {\n throw new ReferenceError('Provided key or value is not valid.');\n }\n var index = this.mKeys.indexOf(key);\n if (index < 0) {\n this.mKeys.push(key);\n this.mValues.push(value);\n return 1;\n }\n else {\n throw new RangeError('An item with the same key has already been added.');\n }\n };\n /**\n * @hidden\n * @private\n */\n TemporaryDictionary.prototype.keys = function () {\n return this.mKeys;\n };\n /**\n * @hidden\n * @private\n */\n TemporaryDictionary.prototype.values = function () {\n return this.mValues;\n };\n /**\n * @hidden\n * @private\n */\n TemporaryDictionary.prototype.getValue = function (key) {\n if (key === undefined || key === null) {\n throw new ReferenceError('Provided key is not valid.');\n }\n var index = this.mKeys.indexOf(key);\n if (index < 0) {\n throw new RangeError('No item with the specified key has been added.');\n }\n else {\n return this.mValues[index];\n }\n };\n /**\n * @hidden\n * @private\n */\n TemporaryDictionary.prototype.setValue = function (key, value) {\n if (key === undefined || key === null) {\n throw new ReferenceError('Provided key is not valid.');\n }\n var index = this.mKeys.indexOf(key);\n if (index < 0) {\n this.mKeys.push(key);\n this.mValues.push(value);\n }\n else {\n this.mValues[index] = value;\n }\n };\n /**\n * @hidden\n * @private\n */\n TemporaryDictionary.prototype.remove = function (key) {\n if (key === undefined || key === null) {\n throw new ReferenceError('Provided key is not valid.');\n }\n var index = this.mKeys.indexOf(key);\n if (index < 0) {\n throw new RangeError('No item with the specified key has been added.');\n }\n else {\n this.mKeys.splice(index, 1);\n this.mValues.splice(index, 1);\n return true;\n }\n };\n /**\n * @hidden\n * @private\n */\n TemporaryDictionary.prototype.containsKey = function (key) {\n if (key === undefined || key === null) {\n throw new ReferenceError('Provided key is not valid.');\n }\n var index = this.mKeys.indexOf(key);\n if (index < 0) {\n return false;\n }\n return true;\n };\n /**\n * @hidden\n * @private\n */\n TemporaryDictionary.prototype.clear = function () {\n this.mKeys = [];\n this.mValues = [];\n };\n return TemporaryDictionary;\n}());\nexport { TemporaryDictionary };\n","import { PdfDictionary } from './../primitives/pdf-dictionary';\nimport { PdfNumber } from './../primitives/pdf-number';\nimport { PdfName } from './../primitives/pdf-name';\nimport { DictionaryProperties } from './../input-output/pdf-dictionary-properties';\n/**\n * Represents a simple `transparency`.\n * @private\n */\nvar PdfTransparency = /** @class */ (function () {\n // Properties\n // /**\n // * Gets the `stroke` operation alpha value.\n // * @private\n // */\n // public get stroke() : number {\n // let result : number = this.getNumber(this.dictionaryProperties.CA);\n // return result;\n // }\n // /**\n // * Gets the `fill` operation alpha value.\n // * @private\n // */\n // public get fill() : number {\n // let result : number = this.getNumber(this.dictionaryProperties.ca);\n // return result;\n // }\n // /**\n // * Gets the `blend mode`.\n // * @private\n // */\n // public get mode() : PdfBlendMode {\n // let result : string = this.getName(this.dictionaryProperties.ca);\n // return PdfBlendMode.Normal;\n // }\n // Constructors\n /**\n * Initializes a new instance of the `Transparency` class.\n * @private\n */\n function PdfTransparency(stroke, fill, mode) {\n // Fields\n /**\n * Internal variable to store `dictionary`.\n * @default new PdfDictionary()\n * @private\n */\n this.dictionary = new PdfDictionary();\n /**\n * Internal variable for accessing fields from `DictionryProperties` class.\n * @default new DictionaryProperties()\n * @private\n */\n this.dictionaryProperties = new DictionaryProperties();\n this.dictionary.items.setValue(this.dictionaryProperties.CA, new PdfNumber(stroke));\n this.dictionary.items.setValue(this.dictionaryProperties.ca, new PdfNumber(fill));\n this.dictionary.items.setValue(this.dictionaryProperties.BM, new PdfName(mode.toString()));\n }\n Object.defineProperty(PdfTransparency.prototype, \"element\", {\n // // Implementation\n // /**\n // * Gets the `number value`.\n // * @private\n // */\n // private getNumber(keyName : string) : number {\n // let result : number = 0.0;\n // let numb : PdfNumber = this.dictionary.items.getValue(keyName) as PdfNumber;\n // result = numb.intValue;\n // return result;\n // }\n // /**\n // * Gets the `name value`.\n // * @private\n // */\n // private getName(keyName : string) : string {\n // let result : string = null;\n // let name : PdfName = this.dictionary.items.getValue(keyName) as PdfName;\n // result = name.value;\n // return result;\n // }\n // IPdfWrapper Members\n /**\n * Gets the `element`.\n * @private\n */\n get: function () {\n return this.dictionary;\n },\n enumerable: true,\n configurable: true\n });\n return PdfTransparency;\n}());\nexport { PdfTransparency };\n","/**\n * Represent a `collection of automatic fields information`.\n * @private\n */\nvar PdfAutomaticFieldInfoCollection = /** @class */ (function () {\n /**\n * Initializes a new instance of the 'PdfPageNumberFieldInfoCollection' class.\n * @private\n */\n function PdfAutomaticFieldInfoCollection() {\n /**\n * Internal variable to store instance of `pageNumberFields` class.\n * @private\n */\n this.automaticFieldsInformation = [];\n //\n }\n Object.defineProperty(PdfAutomaticFieldInfoCollection.prototype, \"automaticFields\", {\n /**\n * Gets the `page number fields collection`.\n * @private\n */\n get: function () {\n return this.automaticFieldsInformation;\n },\n enumerable: true,\n configurable: true\n });\n // Public methods\n /// Adds the specified field info.\n /**\n * Add page number field into collection.\n * @private\n */\n PdfAutomaticFieldInfoCollection.prototype.add = function (fieldInfo) {\n return this.automaticFields.push(fieldInfo);\n };\n return PdfAutomaticFieldInfoCollection;\n}());\nexport { PdfAutomaticFieldInfoCollection };\n","/**\n * Represents a base class for all page graphics elements.\n */\nvar PdfGraphicsElement = /** @class */ (function () {\n // Constructors\n function PdfGraphicsElement() {\n //\n }\n /**\n * `Draws` the page number field.\n * @public\n */\n PdfGraphicsElement.prototype.drawHelper = function (graphics, x, y) {\n var bNeedSave = (x !== 0 || y !== 0);\n var gState = null;\n // Translate co-ordinates.\n if (bNeedSave) {\n // Save state.\n gState = graphics.save();\n graphics.translateTransform(x, y);\n }\n this.drawInternal(graphics);\n if (bNeedSave) {\n // Restore state.\n graphics.restore(gState);\n }\n };\n return PdfGraphicsElement;\n}());\nexport { PdfGraphicsElement };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * PdfAutomaticField.ts class for EJ2-PDF\n */\nimport { RectangleF, SizeF, PointF } from './../../drawing/pdf-drawing';\nimport { PdfSolidBrush } from './../../graphics/brushes/pdf-solid-brush';\nimport { PdfColor } from './../../graphics/pdf-color';\nimport { PdfDocument } from './../pdf-document';\nimport { PdfGraphicsElement } from './../../graphics/figures/base/graphics-element';\nimport { PdfAutomaticFieldInfo } from './automatic-field-info';\n/**\n * Represents a fields which is calculated before the document saves.\n */\nvar PdfAutomaticField = /** @class */ (function (_super) {\n __extends(PdfAutomaticField, _super);\n // Constructors\n function PdfAutomaticField() {\n var _this = _super.call(this) || this;\n // Fields\n _this.internalBounds = new RectangleF(0, 0, 0, 0);\n _this.internalTemplateSize = new SizeF(0, 0);\n return _this;\n }\n Object.defineProperty(PdfAutomaticField.prototype, \"bounds\", {\n // Properties\n get: function () {\n return this.internalBounds;\n },\n set: function (value) {\n this.internalBounds = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfAutomaticField.prototype, \"size\", {\n get: function () {\n return new SizeF(this.bounds.width, this.bounds.height);\n },\n set: function (value) {\n this.bounds.width = value.width;\n this.bounds.height = value.height;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfAutomaticField.prototype, \"location\", {\n get: function () {\n return new PointF(this.bounds.x, this.bounds.y);\n },\n set: function (value) {\n this.bounds.x = value.x;\n this.bounds.y = value.y;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfAutomaticField.prototype, \"font\", {\n get: function () {\n return this.internalFont;\n },\n set: function (value) {\n this.internalFont = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfAutomaticField.prototype, \"brush\", {\n get: function () {\n return this.internalBrush;\n },\n set: function (value) {\n this.internalBrush = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfAutomaticField.prototype, \"pen\", {\n get: function () {\n return this.internalPen;\n },\n set: function (value) {\n this.internalPen = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfAutomaticField.prototype, \"stringFormat\", {\n get: function () {\n return this.internalStringFormat;\n },\n set: function (value) {\n this.internalStringFormat = value;\n },\n enumerable: true,\n configurable: true\n });\n PdfAutomaticField.prototype.performDrawHelper = function (graphics, location, scalingX, scalingY) {\n if (this.bounds.height === 0 || this.bounds.width === 0) {\n var text = this.getValue(graphics);\n this.internalTemplateSize = this.getFont().measureString(text, this.size, this.stringFormat);\n }\n };\n PdfAutomaticField.prototype.draw = function (arg1, arg2, arg3) {\n if (typeof arg2 === 'undefined') {\n var location_1 = new PointF(0, 0);\n this.draw(arg1, location_1);\n }\n else if (arg2 instanceof PointF) {\n this.draw(arg1, arg2.x, arg2.y);\n }\n else {\n this.drawHelper(arg1, arg2, arg3);\n var info = new PdfAutomaticFieldInfo(this, new PointF(arg2, arg3));\n arg1.automaticFields.add(info);\n }\n };\n PdfAutomaticField.prototype.getSize = function () {\n if (this.bounds.height === 0 || this.bounds.width === 0) {\n return this.internalTemplateSize;\n }\n else {\n return this.size;\n }\n };\n PdfAutomaticField.prototype.drawInternal = function (graphics) {\n //\n };\n /* tslint:disable */\n PdfAutomaticField.prototype.getBrush = function () {\n return (typeof this.internalBrush === 'undefined' || this.internalBrush == null) ? new PdfSolidBrush(new PdfColor(0, 0, 0)) : this.internalBrush;\n };\n PdfAutomaticField.prototype.getFont = function () {\n return (typeof this.internalFont === 'undefined' || this.internalFont == null) ? PdfDocument.defaultFont : this.internalFont;\n };\n /* tslint:enable */\n PdfAutomaticField.prototype.getPageFromGraphics = function (graphics) {\n if (typeof graphics.page !== 'undefined' && graphics.page !== null) {\n var page = graphics.page;\n return page;\n }\n else {\n var page = graphics.currentPage;\n return page;\n }\n };\n return PdfAutomaticField;\n}(PdfGraphicsElement));\nexport { PdfAutomaticField };\n","/**\n * PdfAutomaticFieldInfo.ts class for EJ2-PDF\n * @private\n */\nimport { PointF } from './../../drawing/pdf-drawing';\nimport { PdfAutomaticField } from './automatic-field';\n/**\n * Represents information about the automatic field.\n * @private\n */\nvar PdfAutomaticFieldInfo = /** @class */ (function () {\n function PdfAutomaticFieldInfo(field, location, scaleX, scaleY) {\n // Fields\n /**\n * Internal variable to store location of the field.\n * @private\n */\n this.pageNumberFieldLocation = new PointF();\n /**\n * Internal variable to store field.\n * @private\n */\n this.pageNumberField = null;\n /**\n * Internal variable to store x scaling factor.\n * @private\n */\n this.scaleX = 1;\n /**\n * Internal variable to store y scaling factor.\n * @private\n */\n this.scaleY = 1;\n if (typeof location === 'undefined' && field instanceof PdfAutomaticFieldInfo) {\n this.pageNumberField = field.field;\n this.pageNumberFieldLocation = field.location;\n this.scaleX = field.scalingX;\n this.scaleY = field.scalingY;\n }\n else if (typeof scaleX === 'undefined' && location instanceof PointF && field instanceof PdfAutomaticField) {\n this.pageNumberField = field;\n this.pageNumberFieldLocation = location;\n }\n else {\n this.pageNumberField = field;\n this.pageNumberFieldLocation = location;\n this.scaleX = scaleX;\n this.scaleY = scaleY;\n }\n }\n Object.defineProperty(PdfAutomaticFieldInfo.prototype, \"location\", {\n /* tslint:enable */\n // Properties\n /**\n * Gets or sets the location.\n * @private\n */\n get: function () {\n return this.pageNumberFieldLocation;\n },\n set: function (value) {\n this.pageNumberFieldLocation = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfAutomaticFieldInfo.prototype, \"field\", {\n /**\n * Gets or sets the field.\n * @private\n */\n get: function () {\n return this.pageNumberField;\n },\n set: function (value) {\n this.pageNumberField = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfAutomaticFieldInfo.prototype, \"scalingX\", {\n /**\n * Gets or sets the scaling X factor.\n * @private\n */\n get: function () {\n return this.scaleX;\n },\n set: function (value) {\n this.scaleX = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfAutomaticFieldInfo.prototype, \"scalingY\", {\n /**\n * Gets or sets the scaling Y factor.\n * @private\n */\n get: function () {\n return this.scaleY;\n },\n set: function (value) {\n this.scaleY = value;\n },\n enumerable: true,\n configurable: true\n });\n return PdfAutomaticFieldInfo;\n}());\nexport { PdfAutomaticFieldInfo };\n","/**\n * ByteArray class\n * Used to keep information about image stream as byte array.\n * @private\n */\nvar ByteArray = /** @class */ (function () {\n /**\n * Initialize the new instance for `byte-array` class\n * @hidden\n * @private\n */\n function ByteArray(length) {\n /**\n * Current stream `position`.\n * @default 0\n * @private\n */\n this.mPosition = 0;\n this.buffer = new Uint8Array(length);\n this.dataView = new DataView(this.buffer.buffer);\n }\n Object.defineProperty(ByteArray.prototype, \"position\", {\n /**\n * Gets and Sets a current `position` of byte array.\n * @hidden\n * @private\n */\n get: function () {\n return this.mPosition;\n },\n set: function (value) {\n this.mPosition = value;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * `Read` from current stream position.\n * @default 0\n * @hidden\n * @private\n */\n ByteArray.prototype.read = function (buffer, offset, count) {\n for (var index = offset; index < count; index++) {\n var position = this.position;\n buffer.buffer[index] = this.readByte(position);\n this.position++;\n }\n };\n /**\n * @hidden\n */\n ByteArray.prototype.getBuffer = function (index) {\n return this.buffer[index];\n };\n /**\n * @hidden\n */\n ByteArray.prototype.writeFromBase64String = function (base64) {\n var arr = this.encodedString(base64);\n this.buffer = arr;\n };\n /**\n * @hidden\n */\n ByteArray.prototype.encodedString = function (input) {\n var keyStr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n var chr1;\n var chr2;\n var chr3;\n var enc1;\n var enc2;\n var enc3;\n var enc4;\n var i = 0;\n var resultIndex = 0;\n var dataUrlPrefix = 'data:';\n input = input.replace(/[^A-Za-z0-9\\+\\/\\=]/g, '');\n var totalLength = input.length * 3 / 4;\n if (input.charAt(input.length - 1) === keyStr.charAt(64)) {\n totalLength--;\n }\n var output = new Uint8Array(totalLength | 0);\n while (i < input.length) {\n enc1 = keyStr.indexOf(input.charAt(i++));\n enc2 = keyStr.indexOf(input.charAt(i++));\n enc3 = keyStr.indexOf(input.charAt(i++));\n enc4 = keyStr.indexOf(input.charAt(i++));\n chr1 = (enc1 << 2) | (enc2 >> 4);\n chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);\n chr3 = ((enc3 & 3) << 6) | enc4;\n output[resultIndex++] = chr1;\n output[resultIndex++] = chr2;\n output[resultIndex++] = chr3;\n }\n return output;\n };\n /**\n * @hidden\n */\n ByteArray.prototype.readByte = function (offset) {\n return (this.buffer[offset]);\n };\n Object.defineProperty(ByteArray.prototype, \"internalBuffer\", {\n /**\n * @hidden\n */\n get: function () {\n return this.buffer;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ByteArray.prototype, \"count\", {\n /**\n * @hidden\n */\n get: function () {\n return this.buffer.byteLength;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * 'readNextTwoBytes' stream\n * @hidden\n * @private\n */\n ByteArray.prototype.readNextTwoBytes = function (stream) {\n var data = stream.readByte(this.position);\n this.position++;\n data <<= 8;\n data |= stream.readByte(this.position);\n this.position++;\n return data;\n };\n return ByteArray;\n}());\nexport { ByteArray };\n","/**\n * TtfTableInfo.ts class for EJ2-PDF\n */\nvar TtfTableInfo = /** @class */ (function () {\n function TtfTableInfo() {\n }\n Object.defineProperty(TtfTableInfo.prototype, \"empty\", {\n //Properties\n /**\n * Gets a value indicating whether this table is empty.\n * @private\n */\n get: function () {\n var empty = (this.offset === this.length && this.length === this.checksum && this.checksum === 0);\n return empty;\n },\n enumerable: true,\n configurable: true\n });\n return TtfTableInfo;\n}());\nexport { TtfTableInfo };\n","var TtfNameTable = /** @class */ (function () {\n function TtfNameTable() {\n }\n return TtfNameTable;\n}());\nexport { TtfNameTable };\n","/**\n * TtfNameRecord.ts class for EJ2-PDF\n */\nvar TtfNameRecord = /** @class */ (function () {\n function TtfNameRecord() {\n }\n return TtfNameRecord;\n}());\nexport { TtfNameRecord };\n","/**\n * TtfHeadTable.ts class for EJ2-PDF\n */\nvar TtfHeadTable = /** @class */ (function () {\n function TtfHeadTable() {\n }\n return TtfHeadTable;\n}());\nexport { TtfHeadTable };\n","var TtfMetrics = /** @class */ (function () {\n function TtfMetrics() {\n }\n Object.defineProperty(TtfMetrics.prototype, \"isItalic\", {\n //Properties\n /**\n * Gets a value indicating whether this instance is italic.\n */\n get: function () {\n return ((this.macStyle & 2) !== 0);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TtfMetrics.prototype, \"isBold\", {\n /**\n * Gets a value indicating whether this instance is bold.\n */\n get: function () {\n return ((this.macStyle & 1) !== 0);\n },\n enumerable: true,\n configurable: true\n });\n return TtfMetrics;\n}());\nexport { TtfMetrics };\n","/**\n * TtfHorizontalHeaderTable.ts class for EJ2-PDF\n */\nvar TtfHorizontalHeaderTable = /** @class */ (function () {\n function TtfHorizontalHeaderTable() {\n }\n return TtfHorizontalHeaderTable;\n}());\nexport { TtfHorizontalHeaderTable };\n","/**\n * TtfOS2Table.ts class for EJ2-PDF\n * The OS/2 table consists of a set of metrics that are required by Windows and OS/2.\n */\nvar TtfOS2Table = /** @class */ (function () {\n function TtfOS2Table() {\n }\n return TtfOS2Table;\n}());\nexport { TtfOS2Table };\n","/**\n * TtfPostTable.ts class for EJ2-PDF\n */\nvar TtfPostTable = /** @class */ (function () {\n function TtfPostTable() {\n }\n return TtfPostTable;\n}());\nexport { TtfPostTable };\n","/**\n * TtfLongHorMetric.ts class for EJ2-PDF\n */\nvar TtfLongHorMetric = /** @class */ (function () {\n function TtfLongHorMetric() {\n }\n return TtfLongHorMetric;\n}());\nexport { TtfLongHorMetric };\n","/**\n * TtfCmapSubTable.ts class for EJ2-PDF\n */\nvar TtfCmapSubTable = /** @class */ (function () {\n function TtfCmapSubTable() {\n }\n return TtfCmapSubTable;\n}());\nexport { TtfCmapSubTable };\n","/**\n * TtfCmapTable.ts class for EJ2-PDF\n */\nvar TtfCmapTable = /** @class */ (function () {\n function TtfCmapTable() {\n }\n return TtfCmapTable;\n}());\nexport { TtfCmapTable };\n","/**\n * TtfGlyphInfo.ts class for EJ2-PDF\n */\nvar TtfGlyphInfo = /** @class */ (function () {\n function TtfGlyphInfo() {\n }\n Object.defineProperty(TtfGlyphInfo.prototype, \"empty\", {\n //Properties\n /**\n * Gets a value indicating whether this TtfGlyphInfo is empty.\n */\n get: function () {\n var empty = (this.index === this.width && this.width === this.charCode && this.charCode === 0);\n return empty;\n },\n enumerable: true,\n configurable: true\n });\n //IComparable implementation\n /**\n * Compares two WidthDescriptor objects.\n */\n TtfGlyphInfo.prototype.compareTo = function (obj) {\n var glyph = obj;\n return this.index - glyph.index;\n };\n return TtfGlyphInfo;\n}());\nexport { TtfGlyphInfo };\n","/**\n * TtfLocaTable.ts class for EJ2-PDF\n */\nvar TtfLocaTable = /** @class */ (function () {\n function TtfLocaTable() {\n }\n return TtfLocaTable;\n}());\nexport { TtfLocaTable };\n","/**\n * TtfAppleCmapSubTable.ts class for EJ2-PDF\n */\nvar TtfAppleCmapSubTable = /** @class */ (function () {\n function TtfAppleCmapSubTable() {\n }\n return TtfAppleCmapSubTable;\n}());\nexport { TtfAppleCmapSubTable };\n","/**\n * TtfMicrosoftCmapSubTable.ts class for EJ2-PDF\n */\nvar TtfMicrosoftCmapSubTable = /** @class */ (function () {\n function TtfMicrosoftCmapSubTable() {\n }\n return TtfMicrosoftCmapSubTable;\n}());\nexport { TtfMicrosoftCmapSubTable };\n","/**\n * TtfTrimmedCmapSubTable.ts class for EJ2-PDF\n */\nvar TtfTrimmedCmapSubTable = /** @class */ (function () {\n function TtfTrimmedCmapSubTable() {\n }\n return TtfTrimmedCmapSubTable;\n}());\nexport { TtfTrimmedCmapSubTable };\n","/**\n * TtfLocaTable.ts class for EJ2-PDF\n */\nvar TtfGlyphHeader = /** @class */ (function () {\n function TtfGlyphHeader() {\n }\n return TtfGlyphHeader;\n}());\nexport { TtfGlyphHeader };\n","/**\n * Writes data in BigEndian order.\n */\nvar BigEndianWriter = /** @class */ (function () {\n //Constructors\n /**\n * Creates a new writer.\n */\n function BigEndianWriter(capacity) {\n //Constants\n /**\n * Size of Int32 type.\n */\n this.int32Size = 4;\n /**\n * Size of Int16 type.\n */\n this.int16Size = 2;\n /**\n * Size of long type.\n */\n this.int64Size = 8;\n this.bufferLength = capacity;\n this.buffer = [];\n }\n Object.defineProperty(BigEndianWriter.prototype, \"data\", {\n //Properties\n /**\n * Gets data written to the writer.\n */\n get: function () {\n if (this.buffer.length < this.bufferLength) {\n var length_1 = this.bufferLength - this.buffer.length;\n for (var i = 0; i < length_1; i++) {\n this.buffer.push(0);\n }\n }\n return this.buffer;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BigEndianWriter.prototype, \"position\", {\n /// \n /// Gets position of the internal buffer.\n /// \n get: function () {\n if (this.internalPosition === undefined || this.internalPosition === null) {\n this.internalPosition = 0;\n }\n return this.internalPosition;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Writes short value.\n */\n BigEndianWriter.prototype.writeShort = function (value) {\n var bytes = [((value & 0x0000ff00) >> 8), value & 0x000000ff];\n this.flush(bytes);\n };\n /**\n * Writes int value.\n */\n BigEndianWriter.prototype.writeInt = function (value) {\n var i1 = (value & 0xff000000) >> 24;\n i1 = i1 < 0 ? 256 + i1 : i1;\n var i2 = (value & 0x00ff0000) >> 16;\n i2 = i2 < 0 ? 256 + i2 : i2;\n var i3 = (value & 0x0000ff00) >> 8;\n i3 = i3 < 0 ? 256 + i3 : i3;\n var i4 = value & 0x000000ff;\n i4 = i4 < 0 ? 256 + i4 : i4;\n var bytes = [(value & 0xff000000) >> 24, (value & 0x00ff0000) >> 16, (value & 0x0000ff00) >> 8, value & 0x000000ff];\n this.flush(bytes);\n };\n /**\n * Writes u int value.\n */\n BigEndianWriter.prototype.writeUInt = function (value) {\n var buff = [(value & 0xff000000) >> 24, (value & 0x00ff0000) >> 16, (value & 0x0000ff00) >> 8, value & 0x000000ff];\n this.flush(buff);\n };\n /**\n * Writes string value.\n */\n BigEndianWriter.prototype.writeString = function (value) {\n if (value == null) {\n throw new Error('Argument Null Exception : value');\n }\n var bytes = [];\n for (var i = 0; i < value.length; i++) {\n bytes.push(value.charCodeAt(i));\n }\n this.flush(bytes);\n };\n /**\n * Writes byte[] value.\n */\n BigEndianWriter.prototype.writeBytes = function (value) {\n this.flush(value);\n };\n // //Implementation\n BigEndianWriter.prototype.flush = function (buff) {\n if (buff === null) {\n throw new Error('Argument Null Exception : buff');\n }\n var position = this.position;\n for (var i = 0; i < buff.length; i++) {\n this.buffer[position] = buff[i];\n position++;\n }\n this.internalPosition += buff.length;\n };\n return BigEndianWriter;\n}());\nexport { BigEndianWriter };\n","/**\n * TtfReader.ts class for EJ2-PDF\n */\nimport { TtfTableInfo } from './ttf-table-info';\nimport { Dictionary } from './../../collections/dictionary';\nimport { TtfNameTable } from './ttf-name-table';\nimport { TtfNameRecord } from './ttf-name-record';\nimport { TtfHeadTable } from './ttf-head-table';\nimport { TtfMetrics } from './ttf-metrics';\nimport { TtfHorizontalHeaderTable } from './ttf-horizontal-header-table';\nimport { TtfOS2Table } from './ttf-OS2-Table';\nimport { TtfPostTable } from './ttf-post-table';\nimport { TtfLongHorMetric } from './ttf-long-hor-metric';\nimport { TtfCmapSubTable } from './ttf-cmap-sub-table';\nimport { TtfCmapTable } from './ttf-cmap-table';\nimport { TtfGlyphInfo } from './ttf-glyph-info';\nimport { TtfLocaTable } from './ttf-loca-table';\nimport { TtfAppleCmapSubTable } from './ttf-apple-cmap-sub-table';\nimport { TtfMicrosoftCmapSubTable } from './ttf-microsoft-cmap-sub-table';\nimport { TtfTrimmedCmapSubTable } from './ttf-trimmed-cmap-sub-table';\nimport { TtfGlyphHeader } from './ttf-glyph-header';\nimport { Rectangle } from './../../drawing/pdf-drawing';\nimport { StringTokenizer } from './string-tokenizer';\nimport { TtfCmapFormat, TtfCmapEncoding, TtfPlatformID } from './enum';\nimport { TtfMicrosoftEncodingID, TtfMacintoshEncodingID, TtfCompositeGlyphFlags } from './enum';\nimport { BigEndianWriter } from './../../input-output/big-endian-writer';\nvar TtfReader = /** @class */ (function () {\n //Constructors\n function TtfReader(fontData) {\n this.int32Size = 4;\n this.isTtcFont = false;\n this.isMacTtf = false;\n this.metricsName = '';\n this.isMacTTF = false;\n this.missedGlyphs = 0;\n this.tableNames = ['cvt ', 'fpgm', 'glyf', 'head', 'hhea', 'hmtx', 'loca', 'maxp', 'prep'];\n this.entrySelectors = [0, 0, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4];\n this.fontData = fontData;\n this.initialize();\n }\n Object.defineProperty(TtfReader.prototype, \"macintosh\", {\n //Properties\n /**\n * Gets glyphs for Macintosh or Symbol fonts (char - key, glyph - value).\n */\n get: function () {\n if (this.macintoshDictionary === null || this.macintoshDictionary === undefined) {\n this.macintoshDictionary = new Dictionary();\n }\n return this.macintoshDictionary;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TtfReader.prototype, \"microsoft\", {\n /**\n * Gets glyphs for Microsoft or Symbol fonts (char - key, glyph - value).\n */\n get: function () {\n if (this.microsoftDictionary === null || this.microsoftDictionary === undefined) {\n this.microsoftDictionary = new Dictionary();\n }\n return this.microsoftDictionary;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TtfReader.prototype, \"macintoshGlyphs\", {\n /**\n * Gets glyphs for Macintosh or Symbol fonts (glyph index - key, glyph - value).\n */\n get: function () {\n if (this.internalMacintoshGlyphs === null || this.internalMacintoshGlyphs === undefined) {\n this.internalMacintoshGlyphs = new Dictionary();\n }\n return this.internalMacintoshGlyphs;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TtfReader.prototype, \"microsoftGlyphs\", {\n /**\n * Gets glyphs for Microsoft Unicode fonts (glyph index - key, glyph - value).\n */\n get: function () {\n if (this.internalMicrosoftGlyphs === null || this.internalMicrosoftGlyphs === undefined) {\n this.internalMicrosoftGlyphs = new Dictionary();\n }\n return this.internalMicrosoftGlyphs;\n },\n enumerable: true,\n configurable: true\n });\n //Implementation\n TtfReader.prototype.initialize = function () {\n if (this.metrics === undefined) {\n this.metrics = new TtfMetrics();\n }\n this.readFontDictionary();\n var nameTable = this.readNameTable();\n var headTable = this.readHeadTable();\n this.initializeFontName(nameTable);\n this.metrics.macStyle = headTable.macStyle;\n };\n TtfReader.prototype.readFontDictionary = function () {\n this.offset = 0;\n var version = this.checkPreambula();\n //this.offset += 4;\n var numTables = this.readInt16(this.offset);\n var searchRange = this.readInt16(this.offset);\n var entrySelector = this.readInt16(this.offset);\n var rangeShift = this.readInt16(this.offset);\n if (this.tableDirectory === undefined) {\n this.tableDirectory = new Dictionary();\n }\n for (var i = 0; i < numTables; ++i) {\n var table = new TtfTableInfo();\n var tableKey = this.readString(this.int32Size);\n table.checksum = this.readInt32(this.offset);\n table.offset = this.readInt32(this.offset);\n table.length = this.readInt32(this.offset);\n this.tableDirectory.setValue(tableKey, table);\n }\n this.lowestPosition = this.offset;\n if (!this.isTtcFont) {\n this.fixOffsets();\n }\n };\n TtfReader.prototype.fixOffsets = function () {\n var minOffset = Number.MAX_VALUE;\n // Search for a smallest offset and compare it with the lowest position found.\n var tableKeys = this.tableDirectory.keys();\n for (var i = 0; i < tableKeys.length; i++) {\n var value = this.tableDirectory.getValue(tableKeys[i]);\n var offset = value.offset;\n if (minOffset > offset) {\n minOffset = offset;\n if (minOffset <= this.lowestPosition) {\n break;\n }\n }\n }\n var shift = minOffset - this.lowestPosition;\n if (shift !== 0) {\n var table = new Dictionary();\n for (var i = 0; i < tableKeys.length; i++) {\n var value = this.tableDirectory.getValue(tableKeys[i]);\n value.offset -= shift;\n table.setValue(tableKeys[i], value);\n }\n this.tableDirectory = table;\n }\n };\n TtfReader.prototype.checkPreambula = function () {\n var version = this.readInt32(this.offset);\n this.isMacTtf = (version === 0x74727565) ? true : false;\n if (version !== 0x10000 && version !== 0x74727565 && version !== 0x4f54544f) {\n this.isTtcFont = true;\n this.offset = 0;\n var fontTag = this.readString(4);\n if (fontTag !== 'ttcf') {\n throw new Error('Can not read TTF font data');\n }\n //skip 4\n this.offset += 4;\n var ttcIdentificationNumber = this.readInt32(this.offset);\n if (ttcIdentificationNumber < 0) {\n throw new Error('Can not read TTF font data');\n }\n this.offset = this.readInt32(this.offset);\n version = this.readInt32(this.offset);\n }\n return version;\n };\n TtfReader.prototype.readNameTable = function () {\n var tableInfo = this.getTable('name');\n this.offset = tableInfo.offset;\n var table = new TtfNameTable();\n table.formatSelector = this.readUInt16(this.offset);\n table.recordsCount = this.readUInt16(this.offset);\n table.offset = this.readUInt16(this.offset);\n table.nameRecords = [];\n var recordSize = 12;\n var position = this.offset;\n for (var i = 0; i < table.recordsCount; i++) {\n this.offset = position;\n var record = new TtfNameRecord();\n record.platformID = this.readUInt16(this.offset);\n record.encodingID = this.readUInt16(this.offset);\n record.languageID = this.readUInt16(this.offset);\n record.nameID = this.readUInt16(this.offset);\n record.length = this.readUInt16(this.offset);\n record.offset = this.readUInt16(this.offset);\n this.offset = tableInfo.offset + table.offset + record.offset;\n var unicode = (record.platformID === 0 || record.platformID === 3);\n record.name = this.readString(record.length, unicode);\n table.nameRecords[i] = record;\n position += recordSize;\n }\n return table;\n };\n TtfReader.prototype.readHeadTable = function () {\n var tableInfo = this.getTable('head');\n this.offset = tableInfo.offset;\n var table = new TtfHeadTable();\n table.version = this.readFixed(this.offset);\n table.fontRevision = this.readFixed(this.offset);\n table.checkSumAdjustment = this.readUInt32(this.offset);\n table.magicNumber = this.readUInt32(this.offset);\n table.flags = this.readUInt16(this.offset);\n table.unitsPerEm = this.readUInt16(this.offset);\n table.created = this.readInt64(this.offset);\n table.modified = this.readInt64(this.offset);\n table.xMin = this.readInt16(this.offset);\n table.yMin = this.readInt16(this.offset);\n table.xMax = this.readInt16(this.offset);\n table.yMax = this.readInt16(this.offset);\n table.macStyle = this.readUInt16(this.offset);\n table.lowestReadableSize = this.readUInt16(this.offset);\n table.fontDirectionHint = this.readInt16(this.offset);\n table.indexToLocalFormat = this.readInt16(this.offset);\n table.glyphDataFormat = this.readInt16(this.offset);\n return table;\n };\n TtfReader.prototype.readHorizontalHeaderTable = function () {\n var tableInfo = this.getTable('hhea');\n this.offset = tableInfo.offset;\n var table = new TtfHorizontalHeaderTable();\n table.version = this.readFixed(this.offset);\n table.ascender = this.readInt16(this.offset);\n table.descender = this.readInt16(this.offset);\n table.lineGap = this.readInt16(this.offset);\n table.advanceWidthMax = this.readUInt16(this.offset);\n table.minLeftSideBearing = this.readInt16(this.offset);\n table.minRightSideBearing = this.readInt16(this.offset);\n table.xMaxExtent = this.readInt16(this.offset);\n table.caretSlopeRise = this.readInt16(this.offset);\n table.caretSlopeRun = this.readInt16(this.offset);\n //skip 2 * 5\n this.offset += 10;\n table.metricDataFormat = this.readInt16(this.offset);\n table.numberOfHMetrics = this.readUInt16(this.offset);\n return table;\n };\n TtfReader.prototype.readOS2Table = function () {\n var tableInfo = this.getTable('OS/2');\n this.offset = tableInfo.offset;\n var table = new TtfOS2Table();\n table.version = this.readUInt16(this.offset);\n table.xAvgCharWidth = this.readInt16(this.offset);\n table.usWeightClass = this.readUInt16(this.offset);\n table.usWidthClass = this.readUInt16(this.offset);\n table.fsType = this.readInt16(this.offset);\n table.ySubscriptXSize = this.readInt16(this.offset);\n table.ySubscriptYSize = this.readInt16(this.offset);\n table.ySubscriptXOffset = this.readInt16(this.offset);\n table.ySubscriptYOffset = this.readInt16(this.offset);\n table.ySuperscriptXSize = this.readInt16(this.offset);\n table.ySuperscriptYSize = this.readInt16(this.offset);\n table.ySuperscriptXOffset = this.readInt16(this.offset);\n table.ySuperscriptYOffset = this.readInt16(this.offset);\n table.yStrikeoutSize = this.readInt16(this.offset);\n table.yStrikeoutPosition = this.readInt16(this.offset);\n table.sFamilyClass = this.readInt16(this.offset);\n table.panose = this.readBytes(10);\n table.ulUnicodeRange1 = this.readUInt32(this.offset);\n table.ulUnicodeRange2 = this.readUInt32(this.offset);\n table.ulUnicodeRange3 = this.readUInt32(this.offset);\n table.ulUnicodeRange4 = this.readUInt32(this.offset);\n table.vendorIdentifier = this.readBytes(4);\n table.fsSelection = this.readUInt16(this.offset);\n table.usFirstCharIndex = this.readUInt16(this.offset);\n table.usLastCharIndex = this.readUInt16(this.offset);\n table.sTypoAscender = this.readInt16(this.offset);\n table.sTypoDescender = this.readInt16(this.offset);\n table.sTypoLineGap = this.readInt16(this.offset);\n table.usWinAscent = this.readUInt16(this.offset);\n table.usWinDescent = this.readUInt16(this.offset);\n table.ulCodePageRange1 = this.readUInt32(this.offset);\n table.ulCodePageRange2 = this.readUInt32(this.offset);\n if (table.version > 1) {\n table.sxHeight = this.readInt16(this.offset);\n table.sCapHeight = this.readInt16(this.offset);\n table.usDefaultChar = this.readUInt16(this.offset);\n table.usBreakChar = this.readUInt16(this.offset);\n table.usMaxContext = this.readUInt16(this.offset);\n }\n else {\n table.sxHeight = 0;\n table.sCapHeight = 0;\n table.usDefaultChar = 0;\n table.usBreakChar = 0;\n table.usMaxContext = 0;\n }\n return table;\n };\n TtfReader.prototype.readPostTable = function () {\n var tableInfo = this.getTable('post');\n this.offset = tableInfo.offset;\n var table = new TtfPostTable();\n table.formatType = this.readFixed(this.offset);\n table.italicAngle = this.readFixed(this.offset);\n table.underlinePosition = this.readInt16(this.offset);\n table.underlineThickness = this.readInt16(this.offset);\n table.isFixedPitch = this.readUInt32(this.offset);\n table.minType42 = this.readUInt32(this.offset);\n table.maxType42 = this.readUInt32(this.offset);\n table.minType1 = this.readUInt32(this.offset);\n table.maxType1 = this.readUInt32(this.offset);\n return table;\n };\n /**\n * Reads Width of the glyphs.\n */\n TtfReader.prototype.readWidthTable = function (glyphCount, unitsPerEm) {\n var tableInfo = this.getTable('hmtx');\n this.offset = tableInfo.offset;\n var width = [];\n for (var i = 0; i < glyphCount; i++) {\n var glyph = new TtfLongHorMetric();\n glyph.advanceWidth = this.readUInt16(this.offset);\n glyph.lsb = this.readInt16(this.offset);\n var glyphWidth = glyph.advanceWidth * 1000 / unitsPerEm;\n width.push(Math.floor(glyphWidth));\n }\n return width;\n };\n /**\n * Reads the cmap table.\n */\n TtfReader.prototype.readCmapTable = function () {\n var tableInfo = this.getTable('cmap');\n this.offset = tableInfo.offset;\n var table = new TtfCmapTable();\n table.version = this.readUInt16(this.offset);\n table.tablesCount = this.readUInt16(this.offset);\n var position = this.offset;\n var subTables = [];\n for (var i = 0; i < table.tablesCount; i++) {\n this.offset = position;\n var subTable = new TtfCmapSubTable();\n subTable.platformID = this.readUInt16(this.offset);\n subTable.encodingID = this.readUInt16(this.offset);\n subTable.offset = this.readUInt32(this.offset);\n position = this.offset;\n this.readCmapSubTable(subTable);\n subTables[i] = subTable;\n }\n return subTables;\n };\n /**\n * Reads the cmap sub table.\n */\n TtfReader.prototype.readCmapSubTable = function (subTable) {\n var tableInfo = this.getTable('cmap');\n this.offset = tableInfo.offset + subTable.offset;\n var format = this.readUInt16(this.offset);\n var encoding = this.getCmapEncoding(subTable.platformID, subTable.encodingID);\n var platform = (encoding === TtfCmapEncoding.Macintosh) ? TtfPlatformID.Macintosh : TtfPlatformID.Microsoft;\n if (encoding !== TtfCmapEncoding.Unknown) {\n switch (format) {\n case TtfCmapFormat.Apple:\n this.readAppleCmapTable(subTable, encoding);\n break;\n case TtfCmapFormat.Microsoft:\n this.readMicrosoftCmapTable(subTable, encoding);\n break;\n case TtfCmapFormat.Trimmed:\n this.readTrimmedCmapTable(subTable, encoding);\n break;\n }\n }\n };\n /**\n * Reads Symbol cmap table.\n */\n TtfReader.prototype.readAppleCmapTable = function (subTable, encoding) {\n var tableInfo = this.getTable('cmap');\n this.offset = tableInfo.offset + subTable.offset;\n var table = new TtfAppleCmapSubTable();\n table.format = this.readUInt16(this.offset);\n table.length = this.readUInt16(this.offset);\n table.version = this.readUInt16(this.offset);\n if (this.maxMacIndex === null || this.maxMacIndex === undefined) {\n this.maxMacIndex = 0;\n }\n for (var i = 0; i < 256; ++i) {\n var glyphInfo = new TtfGlyphInfo();\n glyphInfo.index = this.readByte(this.offset);\n glyphInfo.width = this.getWidth(glyphInfo.index);\n glyphInfo.charCode = i;\n this.macintosh.setValue(i, glyphInfo);\n this.addGlyph(glyphInfo, encoding);\n // NOTE: this code fixes char codes that extends 0x100. However, it might corrupt something.\n this.maxMacIndex = Math.max(i, this.maxMacIndex);\n }\n };\n /**\n * Reads Symbol cmap table.\n */\n TtfReader.prototype.readMicrosoftCmapTable = function (subTable, encoding) {\n var tableInfo = this.getTable('cmap');\n this.offset = tableInfo.offset + subTable.offset;\n var collection = (encoding === TtfCmapEncoding.Unicode) ? this.microsoft : this.macintosh;\n var table = new TtfMicrosoftCmapSubTable();\n table.format = this.readUInt16(this.offset);\n table.length = this.readUInt16(this.offset);\n table.version = this.readUInt16(this.offset);\n table.segCountX2 = this.readUInt16(this.offset);\n table.searchRange = this.readUInt16(this.offset);\n table.entrySelector = this.readUInt16(this.offset);\n table.rangeShift = this.readUInt16(this.offset);\n var segCount = table.segCountX2 / 2;\n table.endCount = this.readUshortArray(segCount);\n table.reservedPad = this.readUInt16(this.offset);\n table.startCount = this.readUshortArray(segCount);\n table.idDelta = this.readUshortArray(segCount);\n table.idRangeOffset = this.readUshortArray(segCount);\n var length = (table.length / 2 - 8) - (segCount * 4);\n table.glyphID = this.readUshortArray(length);\n // Process glyphIdArray array.\n var codeOffset = 0;\n var index = 0;\n for (var j = 0; j < segCount; j++) {\n for (var k = table.startCount[j]; k <= table.endCount[j] && k !== 65535; k++) {\n if (table.idRangeOffset[j] === 0) {\n codeOffset = (k + table.idDelta[j]) & 65535;\n }\n else {\n index = j + table.idRangeOffset[j] / 2 - segCount + k - table.startCount[j];\n if (index >= table.glyphID.length) {\n continue;\n }\n codeOffset = (table.glyphID[index] + table.idDelta[j]) & 65535;\n }\n var glyph = new TtfGlyphInfo();\n glyph.index = codeOffset;\n glyph.width = this.getWidth(glyph.index);\n var id = (encoding === TtfCmapEncoding.Symbol) ? ((k & 0xff00) === 0xf000 ? k & 0xff : k) : k;\n glyph.charCode = id;\n collection.setValue(id, glyph);\n this.addGlyph(glyph, encoding);\n }\n }\n };\n /**\n * Reads Trimed cmap table.\n */\n TtfReader.prototype.readTrimmedCmapTable = function (subTable, encoding) {\n var tableInfo = this.getTable('cmap');\n this.offset = tableInfo.offset + subTable.offset;\n var table = new TtfTrimmedCmapSubTable();\n table.format = this.readUInt16(this.offset);\n table.length = this.readUInt16(this.offset);\n table.version = this.readUInt16(this.offset);\n table.firstCode = this.readUInt16(this.offset);\n table.entryCount = this.readUInt16(this.offset);\n for (var i = 0; i < table.entryCount; ++i) {\n var glyphInfo = new TtfGlyphInfo();\n glyphInfo.index = this.readUInt16(this.offset);\n glyphInfo.width = this.getWidth(glyphInfo.index);\n glyphInfo.charCode = i + table.firstCode;\n this.macintosh.setValue(i, glyphInfo);\n this.addGlyph(glyphInfo, encoding);\n // NOTE: this code fixes char codes that extends 0x100. However, it might corrupt something.\n this.maxMacIndex = Math.max(i, this.maxMacIndex);\n }\n };\n TtfReader.prototype.initializeFontName = function (nameTable) {\n for (var i = 0; i < nameTable.recordsCount; i++) {\n var record = nameTable.nameRecords[i];\n if (record.nameID === 1) {\n //font family\n this.metrics.fontFamily = record.name;\n }\n else if (record.nameID === 6) {\n //post script name\n this.metrics.postScriptName = record.name;\n }\n /* tslint:disable */\n if (this.metrics.fontFamily !== null && this.metrics.fontFamily !== undefined && this.metrics.postScriptName !== null && this.metrics.postScriptName !== undefined) {\n break;\n }\n /* tslint:disable */\n }\n };\n TtfReader.prototype.getTable = function (name) {\n // if (name === null) {\n // throw new Error('Argument Null Exception : name');\n // }\n var table = new TtfTableInfo();\n var obj;\n if (this.tableDirectory.containsKey(name)) {\n obj = this.tableDirectory.getValue(name);\n }\n if (obj !== null && obj !== undefined) {\n table = obj;\n }\n return table;\n };\n /**\n * Returns width of the glyph.\n */\n TtfReader.prototype.getWidth = function (glyphCode) {\n glyphCode = (glyphCode < this.width.length) ? glyphCode : this.width.length - 1;\n return this.width[glyphCode];\n };\n /**\n * Gets CMAP encoding based on platform ID and encoding ID.\n */\n /* tslint:disable */\n TtfReader.prototype.getCmapEncoding = function (platformID, encodingID) {\n var format = TtfCmapEncoding.Unknown;\n if (platformID == TtfPlatformID.Microsoft && encodingID == TtfMicrosoftEncodingID.Undefined) {\n // When building a symbol font for Windows,\n // the platform ID should be 3 and the encoding ID should be 0.\n format = TtfCmapEncoding.Symbol;\n }\n else if (platformID == TtfPlatformID.Microsoft && encodingID == TtfMicrosoftEncodingID.Unicode) {\n // When building a Unicode font for Windows,\n // the platform ID should be 3 and the encoding ID should be 1.\n format = TtfCmapEncoding.Unicode;\n }\n else if (platformID == TtfPlatformID.Macintosh && encodingID == TtfMacintoshEncodingID.Roman) {\n // When building a font that will be used on the Macintosh,\n // the platform ID should be 1 and the encoding ID should be 0.\n format = TtfCmapEncoding.Macintosh;\n }\n return format;\n };\n /* tslint:enable */\n /**\n * Adds glyph to the collection.\n */\n TtfReader.prototype.addGlyph = function (glyph, encoding) {\n var collection = null;\n switch (encoding) {\n case TtfCmapEncoding.Unicode:\n collection = this.microsoftGlyphs;\n break;\n case TtfCmapEncoding.Macintosh:\n case TtfCmapEncoding.Symbol:\n collection = this.macintoshGlyphs;\n break;\n }\n collection.setValue(glyph.index, glyph);\n };\n /**\n * Initializes metrics.\n */\n /* tslint:disable */\n TtfReader.prototype.initializeMetrics = function (nameTable, headTable, horizontalHeadTable, os2Table, postTable, cmapTables) {\n /* tslint:enable */\n // if (cmapTables === null) {\n // throw new Error('ArgumentNullException : cmapTables');\n // }\n this.initializeFontName(nameTable);\n // Get font encoding.\n var bSymbol = false;\n for (var i = 0; i < cmapTables.length; i++) {\n var subTable = cmapTables[i];\n var encoding = this.getCmapEncoding(subTable.platformID, subTable.encodingID);\n if (encoding === TtfCmapEncoding.Symbol) {\n bSymbol = true;\n break;\n }\n }\n this.metrics.isSymbol = bSymbol;\n this.metrics.macStyle = headTable.macStyle;\n this.metrics.isFixedPitch = (postTable.isFixedPitch !== 0);\n this.metrics.italicAngle = postTable.italicAngle;\n var factor = 1000 / headTable.unitsPerEm;\n this.metrics.winAscent = os2Table.sTypoAscender * factor;\n this.metrics.macAscent = horizontalHeadTable.ascender * factor;\n //m_metrics.MacAscent = os2Table.UsWinAscent * factor;\n // NOTE: This is stange workaround. The value is good if os2Table.SCapHeight != 0, otherwise it should be properly computed.\n this.metrics.capHeight = (os2Table.sCapHeight !== 0) ? os2Table.sCapHeight : 0.7 * headTable.unitsPerEm * factor;\n this.metrics.winDescent = os2Table.sTypoDescender * factor;\n this.metrics.macDescent = horizontalHeadTable.descender * factor;\n //m_metrics.MacDescent = -os2Table.UsWinDescent * factor;\n this.metrics.leading = (os2Table.sTypoAscender - os2Table.sTypoDescender + os2Table.sTypoLineGap) * factor;\n this.metrics.lineGap = Math.ceil(horizontalHeadTable.lineGap * factor);\n var left = headTable.xMin * factor;\n var top = Math.ceil(this.metrics.macAscent + this.metrics.lineGap);\n var right = headTable.xMax * factor;\n var bottom = this.metrics.macDescent;\n this.metrics.fontBox = new Rectangle(left, top, right, bottom);\n // NOTE: Strange!\n this.metrics.stemV = 80;\n this.metrics.widthTable = this.updateWidth();\n this.metrics.contains = this.tableDirectory.containsKey('CFF');\n this.metrics.subScriptSizeFactor = headTable.unitsPerEm / os2Table.ySubscriptYSize;\n this.metrics.superscriptSizeFactor = headTable.unitsPerEm / os2Table.ySuperscriptYSize;\n };\n /**\n * Updates chars structure which is used in the case of ansi encoding (256 bytes).\n */\n TtfReader.prototype.updateWidth = function () {\n var count = 256;\n var bytes = [];\n if (this.metrics.isSymbol) {\n for (var i = 0; i < count; i++) {\n var glyphInfo = this.getGlyph(String.fromCharCode(i));\n bytes[i] = (glyphInfo.empty) ? 0 : glyphInfo.width;\n }\n }\n else {\n var byteToProcess = [];\n var unknown = '?';\n var space = String.fromCharCode(32);\n for (var i = 0; i < count; i++) {\n byteToProcess[0] = i;\n var text = this.getString(byteToProcess, 0, byteToProcess.length);\n var ch = (text.length > 0) ? text[0] : unknown;\n var glyphInfo = this.getGlyph(ch);\n if (!glyphInfo.empty) {\n bytes[i] = glyphInfo.width;\n }\n else {\n glyphInfo = this.getGlyph(space);\n bytes[i] = (glyphInfo.empty) ? 0 : glyphInfo.width;\n }\n }\n }\n return bytes;\n };\n /**\n * Returns default glyph.\n */\n TtfReader.prototype.getDefaultGlyph = function () {\n var glyph = this.getGlyph(StringTokenizer.whiteSpace);\n return glyph;\n };\n /**\n * Reads unicode string from byte array.\n */\n TtfReader.prototype.getString = function (byteToProcess, start, length) {\n var result = '';\n for (var index = 0; index < length; index++) {\n result += String.fromCharCode(byteToProcess[index + start]);\n }\n return result;\n };\n /**\n * Reads loca table.\n */\n TtfReader.prototype.readLocaTable = function (bShort) {\n var tableInfo = this.getTable('loca');\n this.offset = tableInfo.offset;\n var table = new TtfLocaTable();\n var buffer = null;\n if (bShort) {\n var len = tableInfo.length / 2;\n buffer = [];\n for (var i = 0; i < len; i++) {\n buffer[i] = this.readUInt16(this.offset) * 2;\n }\n }\n else {\n var len = tableInfo.length / 4;\n buffer = [];\n for (var i = 0; i < len; i++) {\n buffer[i] = this.readUInt32(this.offset);\n }\n }\n table.offsets = buffer;\n return table;\n };\n /**\n * Updates hash table of used glyphs.\n */\n TtfReader.prototype.updateGlyphChars = function (glyphChars, locaTable) {\n // if (glyphChars === null) {\n // throw new Error('Argument Null Exception : glyphChars');\n // }\n // Add zero key.\n if (!glyphChars.containsKey(0)) {\n glyphChars.setValue(0, 0);\n }\n var clone = new Dictionary();\n var glyphCharKeys = glyphChars.keys();\n for (var i = 0; i < glyphCharKeys.length; i++) {\n clone.setValue(glyphCharKeys[i], glyphChars.getValue(glyphCharKeys[i]));\n }\n for (var i = 0; i < glyphCharKeys.length; i++) {\n var nextKey = glyphCharKeys[i];\n this.processCompositeGlyph(glyphChars, nextKey, locaTable);\n }\n };\n /**\n * Checks if glyph is composite or not.\n */\n TtfReader.prototype.processCompositeGlyph = function (glyphChars, glyph, locaTable) {\n // if (glyphChars === null) {\n // throw new Error('Argument Null Exception : glyphChars');\n // }\n // Is in range.\n if (glyph < locaTable.offsets.length - 1) {\n var glyphOffset = locaTable.offsets[glyph];\n if (glyphOffset !== locaTable.offsets[glyph + 1]) {\n var tableInfo = this.getTable('glyf');\n this.offset = tableInfo.offset + glyphOffset;\n var glyphHeader = new TtfGlyphHeader();\n glyphHeader.numberOfContours = this.readInt16(this.offset);\n glyphHeader.xMin = this.readInt16(this.offset);\n glyphHeader.yMin = this.readInt16(this.offset);\n glyphHeader.xMax = this.readInt16(this.offset);\n glyphHeader.yMax = this.readInt16(this.offset);\n // Glyph is composite.\n if (glyphHeader.numberOfContours < 0) {\n var skipBytes = 0;\n var entry = true;\n while (entry) {\n var flags = this.readUInt16(this.offset);\n var glyphIndex = this.readUInt16(this.offset);\n if (!glyphChars.containsKey(glyphIndex)) {\n glyphChars.setValue(glyphIndex, 0);\n }\n if ((flags & TtfCompositeGlyphFlags.MoreComponents) === 0) {\n break;\n }\n skipBytes = ((flags & TtfCompositeGlyphFlags.Arg1And2AreWords) !== 0) ? 4 : 2;\n if ((flags & TtfCompositeGlyphFlags.WeHaveScale) !== 0) {\n skipBytes += 2;\n }\n else if ((flags & TtfCompositeGlyphFlags.WeHaveAnXyScale) !== 0) {\n skipBytes += 4;\n }\n else if ((flags & TtfCompositeGlyphFlags.WeHaveTwoByTwo) !== 0) {\n skipBytes += 2 * 4;\n }\n this.offset += skipBytes;\n }\n }\n }\n }\n };\n /**\n * Creates new glyph tables based on chars that are used for output.\n */\n /* tslint:disable */\n TtfReader.prototype.generateGlyphTable = function (glyphChars, locaTable, newLocaTable, newGlyphTable) {\n /* tslint:enable */\n // if (glyphChars === null) {\n // throw new Error('Argument Null Exception : glyphChars');\n // }\n newLocaTable = [];\n // Sorting used glyphs keys.\n var activeGlyphs = glyphChars.keys();\n activeGlyphs.sort(function (a, b) { return a - b; });\n var glyphSize = 0;\n for (var i = 0; i < activeGlyphs.length; i++) {\n var glyphIndex = activeGlyphs[i];\n if (locaTable.offsets.length > 0) {\n glyphSize += locaTable.offsets[glyphIndex + 1] - locaTable.offsets[glyphIndex];\n }\n }\n var glyphSizeAligned = this.align(glyphSize);\n newGlyphTable = [];\n for (var i = 0; i < glyphSizeAligned; i++) {\n newGlyphTable.push(0);\n }\n var nextGlyphOffset = 0;\n var nextGlyphIndex = 0;\n var table = this.getTable('glyf');\n // Creating NewLocaTable - that would hold offsets for filtered glyphs.\n for (var i = 0; i < locaTable.offsets.length; i++) {\n newLocaTable.push(nextGlyphOffset);\n if (nextGlyphIndex < activeGlyphs.length && activeGlyphs[nextGlyphIndex] === i) {\n ++nextGlyphIndex;\n newLocaTable[i] = nextGlyphOffset;\n var oldGlyphOffset = locaTable.offsets[i];\n var oldNextGlyphOffset = locaTable.offsets[i + 1] - oldGlyphOffset;\n if (oldNextGlyphOffset > 0) {\n this.offset = table.offset + oldGlyphOffset;\n var result = this.read(newGlyphTable, nextGlyphOffset, oldNextGlyphOffset);\n newGlyphTable = result.buffer;\n nextGlyphOffset += oldNextGlyphOffset;\n }\n }\n }\n return { glyphTableSize: glyphSize, newLocaTable: newLocaTable, newGlyphTable: newGlyphTable };\n };\n /**\n * Updates new Loca table.\n */\n /* tslint:disable */\n TtfReader.prototype.updateLocaTable = function (newLocaTable, bLocaIsShort, newLocaTableOut) {\n /* tslint:enable */\n if (newLocaTable === null) {\n throw new Error('Argument Null Exception : newLocaTable');\n }\n var size = (bLocaIsShort) ? newLocaTable.length * 2 : newLocaTable.length * 4;\n var count = this.align(size);\n //BigEndianWiter\n var writer = new BigEndianWriter(count);\n for (var i = 0; i < newLocaTable.length; i++) {\n var value = newLocaTable[i];\n if (bLocaIsShort) {\n value /= 2;\n writer.writeShort(value);\n }\n else {\n writer.writeInt(value);\n }\n }\n return { newLocaUpdated: writer.data, newLocaSize: size };\n };\n /**\n * Aligns number to be divisible on 4.\n */\n TtfReader.prototype.align = function (value) {\n return (value + 3) & (~3);\n };\n /**\n * Returns font program data.\n */\n /* tslint:disable */\n TtfReader.prototype.getFontProgram = function (newLocaTableOut, newGlyphTable, glyphTableSize, locaTableSize) {\n /* tslint:enable */\n if (newLocaTableOut === null) {\n throw new Error('Argument Null Exception : newLocaTableOut');\n }\n if (newGlyphTable === null) {\n throw new Error('Argument Null Exception : newGlyphTable');\n }\n var tableNames = this.tableNames;\n var result = this.getFontProgramLength(newLocaTableOut, newGlyphTable, 0);\n var fontProgramLength = result.fontProgramLength;\n var numTables = result.numTables;\n var writer = new BigEndianWriter(fontProgramLength);\n writer.writeInt(0x10000);\n writer.writeShort(numTables);\n var entrySelector = this.entrySelectors[numTables];\n writer.writeShort((1 << (entrySelector & 31)) * 16);\n writer.writeShort(entrySelector);\n writer.writeShort((numTables - (1 << (entrySelector & 31))) * 16);\n // Writing to destination buffer - checksums && sizes of used tables.\n this.writeCheckSums(writer, numTables, newLocaTableOut, newGlyphTable, glyphTableSize, locaTableSize);\n // // Writing to destination buffer - used glyphs.\n this.writeGlyphs(writer, newLocaTableOut, newGlyphTable);\n return writer.data;\n };\n /* tslint:disable */\n TtfReader.prototype.getFontProgramLength = function (newLocaTableOut, newGlyphTable, numTables) {\n /* tslint:enable */\n if (newLocaTableOut === null) {\n throw new Error('Argument Null Exception : newLocaTableOut');\n }\n if (newGlyphTable === null) {\n throw new Error('Argument Null Exception : newGlyphTable');\n }\n // glyf and loca are used by default;\n numTables = 2;\n var tableNames = this.tableNames;\n var fontProgramLength = 0;\n for (var i = 0; i < tableNames.length; i++) {\n var tableName = tableNames[i];\n if (tableName !== 'glyf' && tableName !== 'loca') {\n var table = this.getTable(tableName);\n if (!table.empty) {\n ++numTables;\n fontProgramLength += this.align(table.length);\n }\n }\n }\n fontProgramLength += newLocaTableOut.length;\n fontProgramLength += newGlyphTable.length;\n var usedTablesSize = numTables * 16 + (3 * 4);\n fontProgramLength += usedTablesSize;\n return { fontProgramLength: fontProgramLength, numTables: numTables };\n };\n /**\n * Writing to destination buffer - checksums and sizes of used tables.\n */\n /* tslint:disable */\n TtfReader.prototype.writeCheckSums = function (writer, numTables, newLocaTableOut, newGlyphTable, glyphTableSize, locaTableSize) {\n /* tslint:enable */\n if (writer === null) {\n throw new Error('Argument Null Exception : writer');\n }\n if (newLocaTableOut === null) {\n throw new Error('Argument Null Exception : newLocaTableOut');\n }\n if (newGlyphTable === null) {\n throw new Error('Argument Null Exception : newGlyphTable');\n }\n var tableNames = this.tableNames;\n var usedTablesSize = numTables * 16 + (3 * 4);\n var nextTableSize = 0;\n for (var i = 0; i < tableNames.length; i++) {\n var tableName = tableNames[i];\n var tableInfo = this.getTable(tableName);\n if (tableInfo.empty) {\n continue;\n }\n writer.writeString(tableName);\n if (tableName === 'glyf') {\n var checksum = this.calculateCheckSum(newGlyphTable);\n writer.writeInt(checksum);\n nextTableSize = glyphTableSize;\n }\n else if (tableName === 'loca') {\n var checksum = this.calculateCheckSum(newLocaTableOut);\n writer.writeInt(checksum);\n nextTableSize = locaTableSize;\n }\n else {\n writer.writeInt(tableInfo.checksum);\n nextTableSize = tableInfo.length;\n }\n writer.writeUInt(usedTablesSize);\n writer.writeUInt(nextTableSize);\n usedTablesSize += this.align(nextTableSize);\n }\n };\n /**\n * Gets checksum from source buffer.\n */\n TtfReader.prototype.calculateCheckSum = function (bytes) {\n if (bytes === null) {\n throw new Error('Argument Null Exception : bytes');\n }\n var pos = 0;\n var byte1 = 0;\n var byte2 = 0;\n var byte3 = 0;\n var byte4 = 0;\n for (var i = 0; i < (bytes.length + 1) / 4; i++) {\n byte4 += (bytes[pos++] & 255);\n byte3 += (bytes[pos++] & 255);\n byte2 += (bytes[pos++] & 255);\n byte1 += (bytes[pos++] & 255);\n }\n var result = byte1;\n result += (byte2 << 8);\n result += (byte3 << 16);\n result += (byte4 << 24);\n return result;\n };\n /**\n * Writing to destination buffer - used glyphs.\n */\n TtfReader.prototype.writeGlyphs = function (writer, newLocaTable, newGlyphTable) {\n if (writer === null) {\n throw new Error('Argument Null Exception : writer');\n }\n if (newLocaTable === null) {\n throw new Error('Argument Null Exception : newLocaTableOut');\n }\n if (newGlyphTable === null) {\n throw new Error('Argument Null Exception : newGlyphTable');\n }\n var tableNames = this.tableNames;\n for (var i = 0; i < tableNames.length; i++) {\n var tableName = tableNames[i];\n var tableInfo = this.getTable(tableName);\n if (tableInfo.empty) {\n continue;\n }\n if (tableName === 'glyf') {\n writer.writeBytes(newGlyphTable);\n }\n else if (tableName === 'loca') {\n writer.writeBytes(newLocaTable);\n }\n else {\n var count = this.align(tableInfo.length);\n var buff = [];\n for (var i_1 = 0; i_1 < count; i_1++) {\n buff.push(0);\n }\n this.offset = tableInfo.offset;\n var result = this.read(buff, 0, tableInfo.length);\n writer.writeBytes(result.buffer);\n }\n }\n };\n //public methods\n /**\n * Sets position value of font data.\n */\n TtfReader.prototype.setOffset = function (offset) {\n this.offset = offset;\n };\n /**\n * Creates font Internals\n * @private\n */\n TtfReader.prototype.createInternals = function () {\n this.metrics = new TtfMetrics();\n var nameTable = this.readNameTable();\n var headTable = this.readHeadTable();\n this.bIsLocaShort = (headTable.indexToLocalFormat === 0);\n var horizontalHeadTable = this.readHorizontalHeaderTable();\n var os2Table = this.readOS2Table();\n var postTable = this.readPostTable();\n this.width = this.readWidthTable(horizontalHeadTable.numberOfHMetrics, headTable.unitsPerEm);\n var subTables = this.readCmapTable();\n this.initializeMetrics(nameTable, headTable, horizontalHeadTable, os2Table, postTable, subTables);\n };\n TtfReader.prototype.getGlyph = function (charCode) {\n if (typeof charCode === 'number') {\n var obj1 = null;\n if (!this.metrics.isSymbol && this.microsoftGlyphs != null) {\n if (this.microsoftGlyphs.containsKey(charCode)) {\n obj1 = this.microsoftGlyphs.getValue(charCode);\n }\n }\n else if (this.metrics.isSymbol && this.macintoshGlyphs != null) {\n if (this.macintoshGlyphs.containsKey(charCode)) {\n obj1 = this.macintoshGlyphs.getValue(charCode);\n }\n }\n var glyph = (obj1 != null) ? obj1 : this.getDefaultGlyph();\n return glyph;\n }\n else {\n var obj = null;\n var code = charCode.charCodeAt(0);\n if (!this.metrics.isSymbol && this.microsoft !== null) {\n if (this.microsoft.containsKey(code)) {\n obj = this.microsoft.getValue(code);\n if (code !== StringTokenizer.whiteSpace.charCodeAt(0)) {\n this.isFontPresent = true;\n }\n }\n else if (code !== StringTokenizer.whiteSpace.charCodeAt(0)) {\n this.isFontPresent = false;\n }\n }\n else if (this.metrics.isSymbol && this.macintosh !== null || this.isMacTTF) {\n // NOTE: this code fixes char codes that extends 0x100. However, it might corrupt something.\n if (this.maxMacIndex !== 0) {\n code %= this.maxMacIndex + 1;\n }\n else {\n code = ((code & 0xff00) === 0xf000 ? code & 0xff : code);\n }\n if (this.macintosh.containsKey(code)) {\n obj = this.macintosh.getValue(code);\n this.isFontPresent = true;\n }\n }\n // Fix for StackOverFlow exception in XPS to PDF converter\n if (charCode === StringTokenizer.whiteSpace && obj === null) {\n obj = new TtfGlyphInfo();\n }\n var glyph = (obj !== null) ? obj : this.getDefaultGlyph();\n return glyph;\n }\n };\n /**\n * Gets hash table with chars indexed by glyph index.\n */\n TtfReader.prototype.getGlyphChars = function (chars) {\n if (chars === null || chars === undefined) {\n throw new Error('Argument Null Exception : chars');\n }\n var dictionary = new Dictionary();\n var charKeys = chars.keys();\n for (var i = 0; i < charKeys.length; i++) {\n var ch = charKeys[i];\n var glyph = this.getGlyph(ch);\n if (!glyph.empty) {\n dictionary.setValue(glyph.index, ch.charCodeAt(0));\n }\n }\n return dictionary;\n };\n /**\n * Gets all glyphs.\n */\n TtfReader.prototype.getAllGlyphs = function () {\n var allGlyphInfo = [];\n var info = new TtfGlyphInfo();\n var index = 0;\n for (var i = 0; i < this.width.length; i++) {\n var width = this.width[i];\n info.index = index;\n info.width = width;\n allGlyphInfo.push(info);\n index++;\n }\n return allGlyphInfo;\n };\n /**\n * Reads a font's program.\n * @private\n */\n TtfReader.prototype.readFontProgram = function (chars) {\n var glyphChars = this.getGlyphChars(chars);\n var locaTable = this.readLocaTable(this.bIsLocaShort);\n if (glyphChars.size() < chars.size()) {\n this.missedGlyphs = chars.size() - glyphChars.size();\n }\n this.updateGlyphChars(glyphChars, locaTable);\n /* tslint:disable */\n var result1 = this.generateGlyphTable(glyphChars, locaTable, null, null);\n /* tslint:enable */\n var glyphTableSize = result1.glyphTableSize;\n var newLocaTable = result1.newLocaTable;\n var newGlyphTable = result1.newGlyphTable;\n var result2 = this.updateLocaTable(newLocaTable, this.bIsLocaShort, null);\n var newLocaSize = result2.newLocaSize;\n var newLocaUpdated = result2.newLocaUpdated;\n var fontProgram = this.getFontProgram(newLocaUpdated, newGlyphTable, glyphTableSize, newLocaSize);\n return fontProgram;\n };\n /**\n * Reconverts string to be in proper format saved into PDF file.\n */\n TtfReader.prototype.convertString = function (text) {\n if (text === null) {\n throw new Error('Argument Null Exception : text');\n }\n var glyph = '';\n var i = 0;\n for (var k = 0; k < text.length; k++) {\n var ch = text[k];\n var glyphInfo = this.getGlyph(ch);\n if (!glyphInfo.empty) {\n glyph += String.fromCharCode(glyphInfo.index);\n i++;\n }\n }\n return glyph;\n };\n /**\n * Gets char width.\n */\n TtfReader.prototype.getCharWidth = function (code) {\n var glyphInfo = this.getGlyph(code);\n glyphInfo = (!glyphInfo.empty) ? glyphInfo : this.getDefaultGlyph();\n var codeWidth = (!glyphInfo.empty) ? glyphInfo.width : 0;\n return codeWidth;\n };\n TtfReader.prototype.readString = function (length, isUnicode) {\n if (isUnicode === undefined) {\n return this.readString(length, false);\n }\n else {\n //let buffer : number[] = this.readBytes(length);\n var result = '';\n if (isUnicode) {\n for (var i = 0; i < length; i++) {\n if (i % 2 !== 0) {\n result += String.fromCharCode(this.fontData[this.offset]);\n }\n this.offset += 1;\n }\n }\n else {\n for (var i = 0; i < length; i++) {\n result += String.fromCharCode(this.fontData[this.offset]);\n this.offset += 1;\n }\n }\n return result;\n }\n };\n TtfReader.prototype.readFixed = function (offset) {\n var integer = this.readInt16(offset);\n var sFraction = this.readInt16(offset + 2);\n var fraction = sFraction / 16384;\n return integer + fraction;\n };\n TtfReader.prototype.readInt32 = function (offset) {\n var i1 = this.fontData[offset + 3];\n var i2 = this.fontData[offset + 2];\n var i3 = this.fontData[offset + 1];\n var i4 = this.fontData[offset];\n this.offset += 4;\n return i1 + (i2 << 8) + (i3 << 16) + (i4 << 24);\n };\n TtfReader.prototype.readUInt32 = function (offset) {\n var i1 = this.fontData[offset + 3];\n var i2 = this.fontData[offset + 2];\n var i3 = this.fontData[offset + 1];\n var i4 = this.fontData[offset];\n this.offset += 4;\n return (i1 | i2 << 8 | i3 << 16 | i4 << 24);\n };\n // private readInt16(offset : number) : number {\n // let result : number = (this.fontData[offset] << 8) + this.fontData[offset + 1];\n // this.offset += 2;\n // return result;\n // }\n TtfReader.prototype.readInt16 = function (offset) {\n var result = (this.fontData[offset] << 8) + this.fontData[offset + 1];\n result = result & (1 << 15) ? result - 0x10000 : result;\n this.offset += 2;\n return result;\n };\n TtfReader.prototype.readInt64 = function (offset) {\n var low = this.readInt32(offset + 4);\n var n = this.readInt32(offset) * 4294967296.0 + low;\n if (low < 0) {\n n += 4294967296;\n }\n return n;\n };\n TtfReader.prototype.readUInt16 = function (offset) {\n var result = (this.fontData[offset] << 8) | this.fontData[offset + 1];\n this.offset += 2;\n return result;\n };\n /**\n * Reads ushort array.\n */\n TtfReader.prototype.readUshortArray = function (length) {\n var buffer = [];\n for (var i = 0; i < length; i++) {\n buffer[i] = this.readUInt16(this.offset);\n }\n return buffer;\n };\n TtfReader.prototype.readBytes = function (length) {\n var result = [];\n for (var i = 0; i < length; i++) {\n result.push(this.fontData[this.offset]);\n this.offset += 1;\n }\n return result;\n };\n TtfReader.prototype.readByte = function (offset) {\n var result = this.fontData[offset];\n this.offset += 1;\n return result;\n };\n /**\n * Reads bytes to array in BigEndian order.\n * @private\n */\n TtfReader.prototype.read = function (buffer, index, count) {\n if (buffer === null) {\n throw new Error('Argument Null Exception : buffer');\n }\n var written = 0;\n var read = 0;\n do {\n for (var i = 0; (i < count - written) && (this.offset + i < this.fontData.length); i++) {\n buffer[index + i] = this.fontData[this.offset + i];\n }\n read = count - written;\n this.offset += read;\n written += read;\n } while (written < count);\n return { buffer: buffer, written: written };\n };\n return TtfReader;\n}());\nexport { TtfReader };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { PdfFont } from './pdf-font';\nimport { PdfSubSuperScript } from './enum';\nimport { PdfArray } from './../../primitives/pdf-array';\n/**\n * `Metrics` of the font.\n * @private\n */\nvar PdfFontMetrics = /** @class */ (function () {\n function PdfFontMetrics() {\n /**\n * `Line gap`.\n * @private\n */\n this.lineGap = 0;\n }\n // Public methods\n /**\n * Returns `ascent` taking into consideration font`s size.\n * @private\n */\n PdfFontMetrics.prototype.getAscent = function (format) {\n var returnValue = this.ascent * PdfFont.charSizeMultiplier * this.getSize(format);\n return returnValue;\n };\n /**\n * Returns `descent` taking into consideration font`s size.\n * @private\n */\n PdfFontMetrics.prototype.getDescent = function (format) {\n var returnValue = this.descent * PdfFont.charSizeMultiplier * this.getSize(format);\n return returnValue;\n };\n /**\n * Returns `Line gap` taking into consideration font`s size.\n * @private\n */\n PdfFontMetrics.prototype.getLineGap = function (format) {\n var returnValue = this.lineGap * PdfFont.charSizeMultiplier * this.getSize(format);\n return returnValue;\n };\n /**\n * Returns `height` taking into consideration font`s size.\n * @private\n */\n PdfFontMetrics.prototype.getHeight = function (format) {\n var height;\n var clearTypeFonts = ['cambria', 'candara', 'constantia', 'corbel', 'cariadings'];\n var clearTypeFontCollection = [];\n for (var index = 0; index < clearTypeFonts.length; index++) {\n var font = clearTypeFonts[index];\n clearTypeFontCollection.push(font);\n }\n if (this.getDescent(format) < 0) {\n // if ((clearTypeFontCollection.indexOf(this.name.toLowerCase()) !== -1) && !this.isUnicodeFont) {\n // height = (this.GetAscent(format) - this.GetDescent(format) - this.GetLineGap(format));\n // } else {\n height = (this.getAscent(format) - this.getDescent(format) + this.getLineGap(format));\n // }\n }\n else {\n height = (this.getAscent(format) + this.getDescent(format) + this.getLineGap(format));\n }\n return height;\n };\n /**\n * Calculates `size` of the font depending on the subscript/superscript value.\n * @private\n */\n PdfFontMetrics.prototype.getSize = function (format) {\n var size = this.size;\n if (format != null) {\n switch (format.subSuperScript) {\n case PdfSubSuperScript.SubScript:\n size /= this.subScriptSizeFactor;\n break;\n case PdfSubSuperScript.SuperScript:\n size /= this.superscriptSizeFactor;\n break;\n }\n }\n return size;\n };\n /**\n * `Clones` the metrics.\n * @private\n */\n PdfFontMetrics.prototype.clone = function () {\n var metrics = this;\n metrics.widthTable = WidthTable.clone();\n return metrics;\n };\n Object.defineProperty(PdfFontMetrics.prototype, \"widthTable\", {\n // Properies\n /**\n * Gets or sets the `width table`.\n * @private\n */\n get: function () {\n return this.internalWidthTable;\n },\n set: function (value) {\n this.internalWidthTable = value;\n },\n enumerable: true,\n configurable: true\n });\n return PdfFontMetrics;\n}());\nexport { PdfFontMetrics };\nvar WidthTable = /** @class */ (function () {\n function WidthTable() {\n }\n /**\n * Static `clones` this instance of the WidthTable class.\n * @private\n */\n WidthTable.clone = function () {\n return null;\n };\n return WidthTable;\n}());\nexport { WidthTable };\nvar StandardWidthTable = /** @class */ (function (_super) {\n __extends(StandardWidthTable, _super);\n // Constructors\n /**\n * Initializes a new instance of the `StandardWidthTable` class.\n * @private\n */\n function StandardWidthTable(widths) {\n var _this = _super.call(this) || this;\n if (widths == null) {\n throw new Error('ArgumentNullException:widths');\n }\n _this.widths = widths;\n return _this;\n }\n //Properties\n /**\n * Gets the `32 bit number` at the specified index.\n * @private\n */\n StandardWidthTable.prototype.items = function (index) {\n if (index < 0 || index >= this.widths.length) {\n throw new Error('ArgumentOutOfRangeException:index, The character is not supported by the font.');\n }\n var result = this.widths[index];\n return result;\n };\n Object.defineProperty(StandardWidthTable.prototype, \"length\", {\n /**\n * Gets the `length` of the internal array.\n * @private\n */\n get: function () {\n return this.widths.length;\n },\n enumerable: true,\n configurable: true\n });\n //Overrides\n /**\n * `Clones` this instance of the WidthTable class.\n * @private\n */\n StandardWidthTable.prototype.clone = function () {\n var swt = this;\n swt.widths = this.widths;\n return swt;\n };\n /**\n * Converts width table to a `PDF array`.\n * @private\n */\n StandardWidthTable.prototype.toArray = function () {\n var arr = new PdfArray(this.widths);\n return arr;\n };\n return StandardWidthTable;\n}(WidthTable));\nexport { StandardWidthTable };\n","/**\n * TrueTypeFont.ts class for EJ2-PDF\n */\nimport { ByteArray } from './../../graphics/images/index';\nimport { TtfReader } from './ttf-reader';\nimport { PdfDictionary, SaveDescendantFontEventHandler, SaveFontDictionaryEventHandler } from './../../primitives/pdf-dictionary';\nimport { SaveFontProgramEventHandler, SaveCmapEventHandler } from './../../primitives/pdf-stream';\nimport { PdfStream } from './../../primitives/pdf-stream';\nimport { PdfArray } from './../../primitives/pdf-array';\nimport { PdfName } from './../../primitives/pdf-name';\nimport { PdfNumber } from './../../primitives/pdf-number';\nimport { PdfString } from './../../primitives/pdf-string';\nimport { PdfReferenceHolder } from './../../primitives/pdf-reference';\nimport { PdfFontMetrics } from './pdf-font-metrics';\nimport { StandardWidthTable } from './pdf-font-metrics';\nimport { DictionaryProperties } from './../../input-output/pdf-dictionary-properties';\nimport { Dictionary } from './../../collections/dictionary';\nimport { FontDescriptorFlags } from './enum';\nimport { RectangleF } from './../../drawing/pdf-drawing';\nimport { Operators } from './../../input-output/pdf-operators';\nvar UnicodeTrueTypeFont = /** @class */ (function () {\n /* tslint:enable */\n //Constructors\n /**\n * Initializes a new instance of the `PdfTrueTypeFont` class.\n * @private\n */\n function UnicodeTrueTypeFont(base64String, size) {\n // Fields\n this.nameString = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';\n /**\n * Specifies the Internal variable to store fields of `PdfDictionaryProperties`.\n * @private\n */\n this.dictionaryProperties = new DictionaryProperties();\n /**\n * Indicates whether the font program is compressed or not.\n * @private\n */\n this.isCompress = false;\n /**\n * Indicates whether the font is embedded or not.\n */\n this.isEmbedFont = false;\n /**\n * Cmap table's start prefix.\n */\n /* tslint:disable */\n this.cmapPrefix = '/CIDInit /ProcSet findresource begin\\n12 dict begin\\nbegincmap' + Operators.newLine + '/CIDSystemInfo << /Registry (Adobe)/Ordering (UCS)/Supplement 0>> def\\n/CMapName ' + '/Adobe-Identity-UCS def\\n/CMapType 2 def\\n1 begincodespacerange' + Operators.newLine;\n /* tslint:enable */\n /**\n * Cmap table's start suffix.\n */\n this.cmapEndCodespaceRange = 'endcodespacerange' + Operators.newLine;\n /**\n * Cmap's begin range marker.\n */\n this.cmapBeginRange = 'beginbfrange' + Operators.newLine;\n /**\n * Cmap's end range marker.\n */\n this.cmapEndRange = 'endbfrange' + Operators.newLine;\n /**\n * Cmap table's end\n */\n /* tslint:disable */\n this.cmapSuffix = 'endbfrange\\nendcmap\\nCMapName currentdict ' + '/CMap defineresource pop\\nend end' + Operators.newLine;\n if (base64String === null || base64String === undefined) {\n throw new Error('ArgumentNullException:base64String');\n }\n this.fontSize = size;\n this.fontString = base64String;\n this.Initialize();\n }\n //Implementation\n /**\n * Returns width of the char symbol.\n */\n UnicodeTrueTypeFont.prototype.getCharWidth = function (charCode) {\n var codeWidth = this.ttfReader.getCharWidth(charCode);\n return codeWidth;\n };\n /**\n * Returns width of the text line.\n */\n UnicodeTrueTypeFont.prototype.getLineWidth = function (line) {\n // if (line == null) {\n // throw new Error('ArgumentNullException : line');\n // }\n var width = 0;\n for (var i = 0, len = line.length; i < len; i++) {\n var ch = line[i];\n var charWidth = this.getCharWidth(ch);\n width += charWidth;\n }\n return width;\n };\n /**\n * Initializes a new instance of the `PdfTrueTypeFont` class.\n * @private\n */\n UnicodeTrueTypeFont.prototype.Initialize = function () {\n var byteArray = new ByteArray(this.fontString.length);\n byteArray.writeFromBase64String(this.fontString);\n this.fontData = byteArray.internalBuffer;\n this.ttfReader = new TtfReader(this.fontData);\n this.ttfMetrics = this.ttfReader.metrics;\n };\n UnicodeTrueTypeFont.prototype.createInternals = function () {\n this.fontDictionary = new PdfDictionary();\n this.fontProgram = new PdfStream();\n this.cmap = new PdfStream();\n this.descendantFont = new PdfDictionary();\n this.metrics = new PdfFontMetrics();\n this.ttfReader.createInternals();\n this.ttfMetrics = this.ttfReader.metrics;\n this.initializeMetrics();\n // Create all the dictionaries of the font.\n this.subsetName = this.getFontName();\n this.createDescendantFont();\n this.createCmap();\n this.createFontDictionary();\n this.createFontProgram();\n };\n UnicodeTrueTypeFont.prototype.getInternals = function () {\n return this.fontDictionary;\n };\n /**\n * Initializes metrics.\n */\n UnicodeTrueTypeFont.prototype.initializeMetrics = function () {\n var ttfMetrics = this.ttfReader.metrics;\n this.metrics.ascent = ttfMetrics.macAscent;\n this.metrics.descent = ttfMetrics.macDescent;\n this.metrics.height = ttfMetrics.macAscent - ttfMetrics.macDescent + ttfMetrics.lineGap;\n this.metrics.name = ttfMetrics.fontFamily;\n this.metrics.postScriptName = ttfMetrics.postScriptName;\n this.metrics.size = this.fontSize;\n this.metrics.widthTable = new StandardWidthTable(ttfMetrics.widthTable);\n this.metrics.lineGap = ttfMetrics.lineGap;\n this.metrics.subScriptSizeFactor = ttfMetrics.subScriptSizeFactor;\n this.metrics.superscriptSizeFactor = ttfMetrics.superscriptSizeFactor;\n this.metrics.isBold = ttfMetrics.isBold;\n };\n /**\n * Gets random string.\n */\n UnicodeTrueTypeFont.prototype.getFontName = function () {\n var builder = '';\n var name;\n // if (this.isEmbed === false) {\n for (var i = 0; i < 6; i++) {\n var index = Math.floor(Math.random() * (25 - 0 + 1)) + 0;\n builder += this.nameString[index];\n }\n builder += '+';\n // }\n builder += this.ttfReader.metrics.postScriptName;\n name = builder.toString();\n // if (name === '') {\n // name = this.ttfReader.metrics.fontFamily;\n // }\n name = this.formatName(name);\n return name;\n };\n /**\n * Generates name of the font.\n */\n UnicodeTrueTypeFont.prototype.formatName = function (fontName) {\n // if (fontName === null) {\n // throw new Error('ArgumentNullException : fontName');\n // }\n // if (fontName === '') {\n // throw new Error('ArgumentOutOfRangeException : fontName, Parameter can not be empty');\n // }\n var ret = fontName.replace('(', '#28');\n ret = ret.replace(')', '#29');\n ret = ret.replace('[', '#5B');\n ret = ret.replace(']', '#5D');\n ret = ret.replace('<', '#3C');\n ret = ret.replace('>', '#3E');\n ret = ret.replace('{', '#7B');\n ret = ret.replace('}', '#7D');\n ret = ret.replace('/', '#2F');\n ret = ret.replace('%', '#25');\n return ret.replace(' ', '#20');\n };\n /**\n * Creates descendant font.\n */\n UnicodeTrueTypeFont.prototype.createDescendantFont = function () {\n // Set property used to clone Font every time\n this.descendantFont.isFont = true;\n this.descendantFont.descendantFontBeginSave = new SaveDescendantFontEventHandler(this);\n this.descendantFont.items.setValue(this.dictionaryProperties.type, new PdfName(this.dictionaryProperties.font));\n this.descendantFont.items.setValue(this.dictionaryProperties.subtype, new PdfName(this.dictionaryProperties.cIDFontType2));\n this.descendantFont.items.setValue(this.dictionaryProperties.baseFont, new PdfName(this.subsetName));\n this.descendantFont.items.setValue(this.dictionaryProperties.cIDToGIDMap, new PdfName(this.dictionaryProperties.identity));\n this.descendantFont.items.setValue(this.dictionaryProperties.dw, new PdfNumber(1000));\n this.fontDescriptor = this.createFontDescriptor();\n this.descendantFont.items.setValue(this.dictionaryProperties.fontDescriptor, new PdfReferenceHolder(this.fontDescriptor));\n var systemInfo = this.createSystemInfo();\n this.descendantFont.items.setValue(this.dictionaryProperties.cIDSystemInfo, systemInfo);\n };\n /**\n * Creates font descriptor.\n */\n UnicodeTrueTypeFont.prototype.createFontDescriptor = function () {\n var descriptor = new PdfDictionary();\n var metrics = this.ttfReader.metrics;\n // Set property used to clone Font every time\n descriptor.isFont = true;\n descriptor.items.setValue(this.dictionaryProperties.type, new PdfName(this.dictionaryProperties.fontDescriptor));\n descriptor.items.setValue(this.dictionaryProperties.fontName, new PdfName(this.subsetName));\n descriptor.items.setValue(this.dictionaryProperties.flags, new PdfNumber(this.getDescriptorFlags()));\n descriptor.items.setValue(this.dictionaryProperties.fontBBox, PdfArray.fromRectangle(this.getBoundBox()));\n descriptor.items.setValue(this.dictionaryProperties.missingWidth, new PdfNumber(metrics.widthTable[32]));\n descriptor.items.setValue(this.dictionaryProperties.stemV, new PdfNumber(metrics.stemV));\n descriptor.items.setValue(this.dictionaryProperties.italicAngle, new PdfNumber(metrics.italicAngle));\n descriptor.items.setValue(this.dictionaryProperties.capHeight, new PdfNumber(metrics.capHeight));\n descriptor.items.setValue(this.dictionaryProperties.ascent, new PdfNumber(metrics.winAscent));\n descriptor.items.setValue(this.dictionaryProperties.descent, new PdfNumber(metrics.winDescent));\n descriptor.items.setValue(this.dictionaryProperties.leading, new PdfNumber(metrics.leading));\n descriptor.items.setValue(this.dictionaryProperties.avgWidth, new PdfNumber(metrics.widthTable[32]));\n descriptor.items.setValue(this.dictionaryProperties.fontFile2, new PdfReferenceHolder(this.fontProgram));\n descriptor.items.setValue(this.dictionaryProperties.maxWidth, new PdfNumber(metrics.widthTable[32]));\n descriptor.items.setValue(this.dictionaryProperties.xHeight, new PdfNumber(0));\n descriptor.items.setValue(this.dictionaryProperties.stemH, new PdfNumber(0));\n return descriptor;\n };\n /**\n * Generates cmap.\n * @private\n */\n UnicodeTrueTypeFont.prototype.createCmap = function () {\n this.cmap.cmapBeginSave = new SaveCmapEventHandler(this);\n };\n /**\n * Generates font dictionary.\n */\n UnicodeTrueTypeFont.prototype.createFontDictionary = function () {\n // Set property used to clone Font every time\n this.fontDictionary.isFont = true;\n this.fontDictionary.fontDictionaryBeginSave = new SaveFontDictionaryEventHandler(this);\n this.fontDictionary.items.setValue(this.dictionaryProperties.type, new PdfName(this.dictionaryProperties.font));\n this.fontDictionary.items.setValue(this.dictionaryProperties.baseFont, new PdfName(this.subsetName));\n this.fontDictionary.items.setValue(this.dictionaryProperties.subtype, new PdfName(this.dictionaryProperties.type0));\n this.fontDictionary.items.setValue(this.dictionaryProperties.encoding, new PdfName(this.dictionaryProperties.identityH));\n var descFonts = new PdfArray();\n var reference = new PdfReferenceHolder(this.descendantFont);\n // Set property used to clone Font every time\n descFonts.isFont = true;\n descFonts.add(reference);\n this.fontDictionary.items.setValue(this.dictionaryProperties.descendantFonts, descFonts);\n };\n /**\n * Creates font program.\n */\n UnicodeTrueTypeFont.prototype.createFontProgram = function () {\n this.fontProgram.fontProgramBeginSave = new SaveFontProgramEventHandler(this);\n };\n /**\n * Creates system info dictionary for CID font.\n * @private\n */\n UnicodeTrueTypeFont.prototype.createSystemInfo = function () {\n var systemInfo = new PdfDictionary();\n systemInfo.items.setValue(this.dictionaryProperties.registry, new PdfString('Adobe'));\n systemInfo.items.setValue(this.dictionaryProperties.ordering, new PdfString(this.dictionaryProperties.identity));\n systemInfo.items.setValue(this.dictionaryProperties.supplement, new PdfNumber(0));\n return systemInfo;\n };\n /**\n * Runs before font Dictionary will be saved.\n */\n UnicodeTrueTypeFont.prototype.descendantFontBeginSave = function () {\n if (this.usedChars !== null && this.usedChars !== undefined && this.usedChars.size() > 0) {\n var width = this.getDescendantWidth();\n if (width !== null) {\n this.descendantFont.items.setValue(this.dictionaryProperties.w, width);\n }\n }\n };\n /**\n * Runs before font Dictionary will be saved.\n */\n UnicodeTrueTypeFont.prototype.cmapBeginSave = function () {\n this.generateCmap();\n };\n /**\n * Runs before font Dictionary will be saved.\n */\n /* tslint:disable */\n UnicodeTrueTypeFont.prototype.fontDictionaryBeginSave = function () {\n if (this.usedChars !== null && this.usedChars !== undefined && this.usedChars.size() > 0 && !this.fontDictionary.containsKey(this.dictionaryProperties.toUnicode)) {\n this.fontDictionary.items.setValue(this.dictionaryProperties.toUnicode, new PdfReferenceHolder(this.cmap));\n }\n };\n /* tslint:enable */\n /**\n * Runs before font program stream save.\n */\n UnicodeTrueTypeFont.prototype.fontProgramBeginSave = function () {\n this.isCompress = true;\n this.generateFontProgram();\n };\n /**\n * Gets width description pad array for c i d font.\n */\n UnicodeTrueTypeFont.prototype.getDescendantWidth = function () {\n var array = new PdfArray();\n if (this.usedChars !== null && this.usedChars !== undefined && this.usedChars.size() > 0) {\n var glyphInfo = [];\n // if (!this.isEmbedFont) {\n var keys = this.usedChars.keys();\n for (var i = 0; i < keys.length; i++) {\n var chLen = keys[i];\n var glyph = this.ttfReader.getGlyph(chLen);\n if (glyph.empty) {\n continue;\n }\n glyphInfo.push(glyph);\n }\n // } else {\n // glyphInfo = this.ttfReader.getAllGlyphs();\n // }\n glyphInfo.sort(function (a, b) { return a.index - b.index; });\n var firstGlyphIndex = 0;\n var lastGlyphIndex = 0;\n var firstGlyphIndexWasSet = false;\n var widthDetails = new PdfArray();\n // if (!this.isEmbedFont) {\n for (var i = 0; i < glyphInfo.length; i++) {\n var glyph = glyphInfo[i];\n if (!firstGlyphIndexWasSet) {\n firstGlyphIndexWasSet = true;\n firstGlyphIndex = glyph.index;\n lastGlyphIndex = glyph.index - 1;\n }\n if ((lastGlyphIndex + 1 !== glyph.index || (i + 1 === glyphInfo.length)) && glyphInfo.length > 1) {\n // Add glyph index / width.\n array.add(new PdfNumber(firstGlyphIndex));\n if (i !== 0) {\n array.add(widthDetails);\n }\n firstGlyphIndex = glyph.index;\n widthDetails = new PdfArray();\n }\n widthDetails.add(new PdfNumber(glyph.width));\n if (i + 1 === glyphInfo.length) {\n array.add(new PdfNumber(firstGlyphIndex));\n array.add(widthDetails);\n }\n lastGlyphIndex = glyph.index;\n }\n // } else {\n // for (let i : number = 0; i < glyphInfo.length; i++) {\n // let glyph : TtfGlyphInfo = glyphInfo[i];\n // if (!firstGlyphIndexWasSet) {\n // firstGlyphIndexWasSet = true;\n // lastGlyphIndex = glyph.index - 1;\n // }\n // firstGlyphIndex = glyph.index;\n // if ((lastGlyphIndex + 1 === glyph.index || (i + 1 === glyphInfo.length)) && glyphInfo.length > 1) {\n // // Add glyph index / width.\n // widthDetails.add(new PdfNumber(glyph.width));\n // array.add(new PdfNumber(firstGlyphIndex));\n // array.add(widthDetails);\n // widthDetails = new PdfArray();\n // }\n // lastGlyphIndex = glyph.index;\n // }\n // }\n }\n return array;\n };\n /**\n * Creates cmap.\n */\n UnicodeTrueTypeFont.prototype.generateCmap = function () {\n if (this.usedChars !== null && this.usedChars !== undefined && this.usedChars.size() > 0) {\n var glyphChars = this.ttfReader.getGlyphChars(this.usedChars);\n if (glyphChars.size() > 0) {\n var keys = glyphChars.keys().sort();\n // add first and last glyph indexes\n var first = keys[0];\n var last = keys[keys.length - 1];\n var middlePart = this.toHexString(first, false) + this.toHexString(last, false) + Operators.newLine;\n var builder = '';\n builder += this.cmapPrefix;\n builder += middlePart;\n builder += this.cmapEndCodespaceRange;\n var nextRange = 0;\n for (var i = 0; i < keys.length; i++) {\n if (nextRange === 0) {\n if (i !== 0) {\n builder += this.cmapEndRange;\n }\n nextRange = Math.min(100, keys.length - i);\n builder += nextRange;\n builder += Operators.whiteSpace;\n builder += this.cmapBeginRange;\n }\n nextRange -= 1;\n var key = keys[i];\n /* tslint:disable */\n builder += this.toHexString(key, true) + this.toHexString(key, true) + this.toHexString(glyphChars.getValue(key), true) + '\\n';\n /* tslint:enable */\n }\n builder += this.cmapSuffix;\n this.cmap.clearStream();\n this.cmap.isFont = true;\n this.cmap.write(builder);\n }\n }\n };\n /**\n * Generates font program.\n */\n UnicodeTrueTypeFont.prototype.generateFontProgram = function () {\n var fontProgram = null;\n this.usedChars = (this.usedChars === null || this.usedChars === undefined) ? new Dictionary() : this.usedChars;\n this.ttfReader.setOffset(0);\n fontProgram = this.ttfReader.readFontProgram(this.usedChars);\n this.fontProgram.clearStream();\n this.fontProgram.isFont = true;\n this.fontProgram.writeBytes(fontProgram);\n };\n /**\n * Calculates flags for the font descriptor.\n * @private\n */\n UnicodeTrueTypeFont.prototype.getDescriptorFlags = function () {\n var flags = 0;\n var metrics = this.ttfReader.metrics;\n if (metrics.isFixedPitch) {\n flags |= FontDescriptorFlags.FixedPitch;\n }\n if (metrics.isSymbol) {\n flags |= FontDescriptorFlags.Symbolic;\n }\n else {\n flags |= FontDescriptorFlags.Nonsymbolic;\n }\n if (metrics.isItalic) {\n flags |= FontDescriptorFlags.Italic;\n }\n if (metrics.isBold) {\n flags |= FontDescriptorFlags.ForceBold;\n }\n return flags;\n };\n /**\n * Calculates BoundBox of the descriptor.\n * @private\n */\n UnicodeTrueTypeFont.prototype.getBoundBox = function () {\n var rect = this.ttfReader.metrics.fontBox;\n var width = Math.abs(rect.right - rect.left);\n var height = Math.abs(rect.top - rect.bottom);\n var rectangle = new RectangleF(rect.left, rect.bottom, width, height);\n return rectangle;\n };\n /**\n * Converts integer of decimal system to hex integer.\n */\n UnicodeTrueTypeFont.prototype.toHexString = function (n, isCaseChange) {\n var s = n.toString(16);\n if (isCaseChange) {\n s = s.toUpperCase();\n }\n return '<0000'.substring(0, 5 - s.length) + s + '>';\n };\n /**\n * Stores used symbols.\n */\n UnicodeTrueTypeFont.prototype.setSymbols = function (text) {\n if (text === null) {\n throw new Error('Argument Null Exception : text');\n }\n if (this.usedChars === null || this.usedChars === undefined) {\n this.usedChars = new Dictionary();\n }\n for (var i = 0; i < text.length; i++) {\n var ch = text[i];\n this.usedChars.setValue(ch, String.fromCharCode(0));\n }\n // else {\n // if (text === null) {\n // throw new Error('Argument Null Exception : glyphs');\n // }\n // if (this.usedChars === null || this.usedChars === undefined) {\n // this.usedChars = new Dictionary();\n // }\n // for (let i : number = 0; i < text.length; i++) {\n // let glyphIndex : number = text[i];\n // let glyph : TtfGlyphInfo = this.ttfReader.getGlyph(glyphIndex);\n // if (!glyph == null) {\n // let c : string = glyph.charCode.toLocaleString();\n // this.usedChars.setValue(c, String.fromCharCode(0));\n // }\n // }\n // }\n if (this.isEmbedFont === false) {\n this.getDescendantWidth();\n }\n };\n return UnicodeTrueTypeFont;\n}());\nexport { UnicodeTrueTypeFont };\n","/**\n * ArabicShapeRenderer.ts class for EJ2-PDF\n */\nimport { Dictionary } from './../../../collections/dictionary';\nvar ArabicShapeRenderer = /** @class */ (function () {\n //#endregion\n //#region Constructor\n function ArabicShapeRenderer() {\n //#region Constants\n this.arabicCharTable = [['\\u0621', '\\uFE80'], ['\\u0622', '\\uFE81', '\\uFE82'],\n ['\\u0623', '\\uFE83', '\\uFE84'],\n ['\\u0624', '\\uFE85', '\\uFE86'],\n ['\\u0625', '\\uFE87', '\\uFE88'],\n ['\\u0626', '\\uFE89', '\\uFE8A', '\\uFE8B', '\\uFE8C'],\n ['\\u0627', '\\uFE8D', '\\uFE8E'],\n ['\\u0628', '\\uFE8F', '\\uFE90', '\\uFE91', '\\uFE92'],\n ['\\u0629', '\\uFE93', '\\uFE94'],\n ['\\u062A', '\\uFE95', '\\uFE96', '\\uFE97', '\\uFE98'],\n ['\\u062B', '\\uFE99', '\\uFE9A', '\\uFE9B', '\\uFE9C'],\n ['\\u062C', '\\uFE9D', '\\uFE9E', '\\uFE9F', '\\uFEA0'],\n ['\\u062D', '\\uFEA1', '\\uFEA2', '\\uFEA3', '\\uFEA4'],\n ['\\u062E', '\\uFEA5', '\\uFEA6', '\\uFEA7', '\\uFEA8'],\n ['\\u062F', '\\uFEA9', '\\uFEAA'],\n ['\\u0630', '\\uFEAB', '\\uFEAC'],\n ['\\u0631', '\\uFEAD', '\\uFEAE'],\n ['\\u0632', '\\uFEAF', '\\uFEB0'],\n ['\\u0633', '\\uFEB1', '\\uFEB2', '\\uFEB3', '\\uFEB4'],\n ['\\u0634', '\\uFEB5', '\\uFEB6', '\\uFEB7', '\\uFEB8'],\n ['\\u0635', '\\uFEB9', '\\uFEBA', '\\uFEBB', '\\uFEBC'],\n ['\\u0636', '\\uFEBD', '\\uFEBE', '\\uFEBF', '\\uFEC0'],\n ['\\u0637', '\\uFEC1', '\\uFEC2', '\\uFEC3', '\\uFEC4'],\n ['\\u0638', '\\uFEC5', '\\uFEC6', '\\uFEC7', '\\uFEC8'],\n ['\\u0639', '\\uFEC9', '\\uFECA', '\\uFECB', '\\uFECC'],\n ['\\u063A', '\\uFECD', '\\uFECE', '\\uFECF', '\\uFED0'],\n ['\\u0640', '\\u0640', '\\u0640', '\\u0640', '\\u0640'],\n ['\\u0641', '\\uFED1', '\\uFED2', '\\uFED3', '\\uFED4'],\n ['\\u0642', '\\uFED5', '\\uFED6', '\\uFED7', '\\uFED8'],\n ['\\u0643', '\\uFED9', '\\uFEDA', '\\uFEDB', '\\uFEDC'],\n ['\\u0644', '\\uFEDD', '\\uFEDE', '\\uFEDF', '\\uFEE0'],\n ['\\u0645', '\\uFEE1', '\\uFEE2', '\\uFEE3', '\\uFEE4'],\n ['\\u0646', '\\uFEE5', '\\uFEE6', '\\uFEE7', '\\uFEE8'],\n ['\\u0647', '\\uFEE9', '\\uFEEA', '\\uFEEB', '\\uFEEC'],\n ['\\u0648', '\\uFEED', '\\uFEEE'],\n ['\\u0649', '\\uFEEF', '\\uFEF0', '\\uFBE8', '\\uFBE9'],\n ['\\u064A', '\\uFEF1', '\\uFEF2', '\\uFEF3', '\\uFEF4'],\n ['\\u0671', '\\uFB50', '\\uFB51'],\n ['\\u0679', '\\uFB66', '\\uFB67', '\\uFB68', '\\uFB69'],\n ['\\u067A', '\\uFB5E', '\\uFB5F', '\\uFB60', '\\uFB61'],\n ['\\u067B', '\\uFB52', '\\uFB53', '\\uFB54', '\\uFB55'],\n ['\\u067E', '\\uFB56', '\\uFB57', '\\uFB58', '\\uFB59'],\n ['\\u067F', '\\uFB62', '\\uFB63', '\\uFB64', '\\uFB65'],\n ['\\u0680', '\\uFB5A', '\\uFB5B', '\\uFB5C', '\\uFB5D'],\n ['\\u0683', '\\uFB76', '\\uFB77', '\\uFB78', '\\uFB79'],\n ['\\u0684', '\\uFB72', '\\uFB73', '\\uFB74', '\\uFB75'],\n ['\\u0686', '\\uFB7A', '\\uFB7B', '\\uFB7C', '\\uFB7D'],\n ['\\u0687', '\\uFB7E', '\\uFB7F', '\\uFB80', '\\uFB81'],\n ['\\u0688', '\\uFB88', '\\uFB89'],\n ['\\u068C', '\\uFB84', '\\uFB85'],\n ['\\u068D', '\\uFB82', '\\uFB83'],\n ['\\u068E', '\\uFB86', '\\uFB87'],\n ['\\u0691', '\\uFB8C', '\\uFB8D'],\n ['\\u0698', '\\uFB8A', '\\uFB8B'],\n ['\\u06A4', '\\uFB6A', '\\uFB6B', '\\uFB6C', '\\uFB6D'],\n ['\\u06A6', '\\uFB6E', '\\uFB6F', '\\uFB70', '\\uFB71'],\n ['\\u06A9', '\\uFB8E', '\\uFB8F', '\\uFB90', '\\uFB91'],\n ['\\u06AD', '\\uFBD3', '\\uFBD4', '\\uFBD5', '\\uFBD6'],\n ['\\u06AF', '\\uFB92', '\\uFB93', '\\uFB94', '\\uFB95'],\n ['\\u06B1', '\\uFB9A', '\\uFB9B', '\\uFB9C', '\\uFB9D'],\n ['\\u06B3', '\\uFB96', '\\uFB97', '\\uFB98', '\\uFB99'],\n ['\\u06BA', '\\uFB9E', '\\uFB9F'],\n ['\\u06BB', '\\uFBA0', '\\uFBA1', '\\uFBA2', '\\uFBA3'],\n ['\\u06BE', '\\uFBAA', '\\uFBAB', '\\uFBAC', '\\uFBAD'],\n ['\\u06C0', '\\uFBA4', '\\uFBA5'],\n ['\\u06C1', '\\uFBA6', '\\uFBA7', '\\uFBA8', '\\uFBA9'],\n ['\\u06C5', '\\uFBE0', '\\uFBE1'],\n ['\\u06C6', '\\uFBD9', '\\uFBDA'],\n ['\\u06C7', '\\uFBD7', '\\uFBD8'],\n ['\\u06C8', '\\uFBDB', '\\uFBDC'],\n ['\\u06C9', '\\uFBE2', '\\uFBE3'],\n ['\\u06CB', '\\uFBDE', '\\uFBDF'],\n ['\\u06CC', '\\uFBFC', '\\uFBFD', '\\uFBFE', '\\uFBFF'],\n ['\\u06D0', '\\uFBE4', '\\uFBE5', '\\uFBE6', '\\uFBE7'],\n ['\\u06D2', '\\uFBAE', '\\uFBAF'],\n ['\\u06D3', '\\uFBB0', '\\uFBB1']\n ];\n this.alef = '\\u0627';\n this.alefHamza = '\\u0623';\n this.alefHamzaBelow = '\\u0625';\n this.alefMadda = '\\u0622';\n this.lam = '\\u0644';\n this.hamza = '\\u0621';\n this.zeroWidthJoiner = '\\u200D';\n this.hamzaAbove = '\\u0654';\n this.hamzaBelow = '\\u0655';\n this.wawHamza = '\\u0624';\n this.yehHamza = '\\u0626';\n this.waw = '\\u0648';\n this.alefMaksura = '\\u0649';\n this.yeh = '\\u064A';\n this.farsiYeh = '\\u06CC';\n this.shadda = '\\u0651';\n this.madda = '\\u0653';\n this.lwa = '\\uFEFB';\n this.lwawh = '\\uFEF7';\n this.lwawhb = '\\uFEF9';\n this.lwawm = '\\uFEF5';\n this.bwhb = '\\u06D3';\n this.fathatan = '\\u064B';\n this.superScriptalef = '\\u0670';\n this.vowel = 0x1;\n // #endregion\n //#region Fields\n this.arabicMapTable = new Dictionary();\n for (var i = 0; i < this.arabicCharTable.length; i++) {\n this.arabicMapTable.setValue(this.arabicCharTable[i][0], this.arabicCharTable[i]);\n }\n }\n //#endregion\n //#region implementation\n ArabicShapeRenderer.prototype.getCharacterShape = function (input, index) {\n if ((input >= this.hamza) && (input <= this.bwhb)) {\n var value = [];\n if (this.arabicMapTable.getValue(input)) {\n value = this.arabicMapTable.getValue(input);\n return value[index + 1];\n }\n }\n else if (input >= this.lwawm && input <= this.lwa) {\n return (input);\n }\n return input;\n };\n ArabicShapeRenderer.prototype.shape = function (text, level) {\n var builder = '';\n var str2 = '';\n for (var i = 0; i < text.length; i++) {\n var c = text[i];\n if (c >= '؀' && c <= 'ۿ') {\n //if(c>= 0x0600.toString() && c<= 0x06FF.toString()) {\n str2 = str2 + c;\n }\n else {\n if (str2.length > 0) {\n var st = this.doShape(str2.toString(), 0);\n builder = builder + st;\n str2 = '';\n }\n builder = builder + c;\n }\n }\n if (str2.length > 0) {\n var st = this.doShape(str2.toString(), 0);\n builder = builder + st;\n }\n return builder.toString();\n };\n ArabicShapeRenderer.prototype.doShape = function (input, level) {\n var str = '';\n var ligature = 0;\n var len = 0;\n var i = 0;\n var next = '';\n var previous = new ArabicShape();\n var present = new ArabicShape();\n while (i < input.length) {\n next = input[i++];\n ligature = this.ligature(next, present);\n if (ligature === 0) {\n var shapeCount = this.getShapeCount(next);\n len = (shapeCount === 1) ? 0 : 2;\n if (previous.Shapes > 2) {\n len += 1;\n }\n len = len % (present.Shapes);\n present.Value = this.getCharacterShape(present.Value, len);\n str = this.append(str, previous, level);\n previous = present;\n present = new ArabicShape();\n present.Value = next;\n present.Shapes = shapeCount;\n present.Ligature++;\n }\n }\n len = (previous.Shapes > 2) ? 1 : 0;\n len = len % (present.Shapes);\n present.Value = this.getCharacterShape(present.Value, len);\n str = this.append(str, previous, level);\n str = this.append(str, present, level);\n return str.toString();\n };\n ArabicShapeRenderer.prototype.append = function (builder, shape, level) {\n if (shape.Value !== '') {\n builder = builder + shape.Value;\n shape.Ligature -= 1;\n if (shape.Type !== '') {\n if ((level & this.vowel) === 0) {\n builder = builder + shape.Type;\n shape.Ligature -= 1;\n }\n else {\n shape.Ligature -= 1;\n }\n }\n if (shape.vowel !== '') {\n if ((level & this.vowel) === 0) {\n builder = builder + shape.vowel;\n shape.Ligature -= 1;\n }\n else {\n shape.Ligature -= 1;\n }\n }\n }\n return builder;\n };\n ArabicShapeRenderer.prototype.ligature = function (value, shape) {\n if (shape.Value !== '') {\n var result = 0;\n if ((value >= this.fathatan && value <= this.hamzaBelow) || value === this.superScriptalef) {\n result = 1;\n if ((shape.vowel !== '') && (value !== this.shadda)) {\n result = 2;\n }\n if (value === this.shadda) {\n if (shape.Type == null) {\n shape.Type = this.shadda;\n }\n else {\n return 0;\n }\n }\n else if (value === this.hamzaBelow) {\n if (shape.Value === this.alef) {\n shape.Value = this.alefHamzaBelow;\n result = 2;\n }\n else if (value === this.lwa) {\n shape.Value = this.lwawhb;\n result = 2;\n }\n else {\n shape.Type = this.hamzaBelow;\n }\n }\n else if (value === this.hamzaAbove) {\n if (shape.Value === this.alef) {\n shape.Value = this.alefHamza;\n result = 2;\n }\n else if (shape.Value === this.lwa) {\n shape.Value = this.lwawh;\n result = 2;\n }\n else if (shape.Value === this.waw) {\n shape.Value = this.wawHamza;\n result = 2;\n }\n else if (shape.Value === this.yeh || shape.Value === this.alefMaksura || shape.Value === this.farsiYeh) {\n shape.Value = this.yehHamza;\n result = 2;\n }\n else {\n shape.Type = this.hamzaAbove;\n }\n }\n else if (value === this.madda) {\n if (shape.Value === this.alef) {\n shape.Value = this.alefMadda;\n result = 2;\n }\n }\n else {\n shape.vowel = value;\n }\n if (result === 1) {\n shape.Ligature++;\n }\n return result;\n }\n if (shape.vowel !== '') {\n return 0;\n }\n if (shape.Value === this.lam) {\n if (value === this.alef) {\n shape.Value = this.lwa;\n shape.Shapes = 2;\n result = 3;\n }\n else if (value === this.alefHamza) {\n shape.Value = this.lwawh;\n shape.Shapes = 2;\n result = 3;\n }\n else if (value === this.alefHamzaBelow) {\n shape.Value = this.lwawhb;\n shape.Shapes = 2;\n result = 3;\n }\n else if (value === this.alefMadda) {\n shape.Value = this.lwawm;\n shape.Shapes = 2;\n result = 3;\n }\n }\n // else if (shape.Value === '') {\n // shape.Value = value;\n // shape.Shapes = this.getShapeCount(value);\n // result = 1;\n // }\n return result;\n }\n else {\n return 0;\n }\n };\n ArabicShapeRenderer.prototype.getShapeCount = function (shape) {\n if ((shape >= this.hamza) && (shape <= this.bwhb) && !((shape >= this.fathatan && shape <= this.hamzaBelow)\n || shape === this.superScriptalef)) {\n var c = [];\n if (this.arabicMapTable.getValue(shape)) {\n c = this.arabicMapTable.getValue(shape);\n return c.length - 1;\n }\n }\n else if (shape === this.zeroWidthJoiner) {\n return 4;\n }\n return 1;\n };\n return ArabicShapeRenderer;\n}());\nexport { ArabicShapeRenderer };\n//#endregion\n//#region Internals\nvar ArabicShape = /** @class */ (function () {\n function ArabicShape() {\n //#region Fields\n this.shapeValue = '';\n this.shapeType = '';\n this.shapeVowel = '';\n this.shapeLigature = 0;\n this.shapeShapes = 1;\n //#endregion\n }\n Object.defineProperty(ArabicShape.prototype, \"Value\", {\n //#endregion\n //#region Properties \n /**\n * Gets or sets the values.\n * @private\n */\n get: function () {\n return this.shapeValue;\n },\n set: function (value) {\n this.shapeValue = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ArabicShape.prototype, \"Type\", {\n /**\n * Gets or sets the values.\n * @private\n */\n get: function () {\n return this.shapeType;\n },\n set: function (value) {\n this.shapeType = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ArabicShape.prototype, \"vowel\", {\n /**\n * Gets or sets the values.\n * @private\n */\n get: function () {\n return this.shapeVowel;\n },\n set: function (value) {\n this.shapeVowel = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ArabicShape.prototype, \"Ligature\", {\n /**\n * Gets or sets the values.\n * @private\n */\n get: function () {\n return this.shapeLigature;\n },\n set: function (value) {\n this.shapeLigature = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ArabicShape.prototype, \"Shapes\", {\n /**\n * Gets or sets the values.\n * @private\n */\n get: function () {\n return this.shapeShapes;\n },\n set: function (value) {\n this.shapeShapes = value;\n },\n enumerable: true,\n configurable: true\n });\n return ArabicShape;\n}());\nexport { ArabicShape };\n//#endregion\n","/**\n * Bidi.ts class for EJ2-PDF\n */\nimport { Dictionary } from './../../../collections/dictionary';\n/**\n * `Metrics` of the font.\n * @private\n */\nvar Bidi = /** @class */ (function () {\n //#endregion\n //#region Constructor\n function Bidi() {\n //#region Fields\n this.indexes = [];\n this.indexLevels = [];\n this.mirroringShapeCharacters = new Dictionary();\n this.update();\n }\n //#endregion\n //#region implementation\n Bidi.prototype.doMirrorShaping = function (text) {\n var result = [];\n for (var i = 0; i < text.length; i++) {\n if (((this.indexLevels[i] & 1) === 1) && this.mirroringShapeCharacters.containsKey(text[i].charCodeAt(0))) {\n result[i] = String.fromCharCode(this.mirroringShapeCharacters.getValue(text[i].charCodeAt(0)));\n }\n else {\n result[i] = text[i].toString();\n }\n }\n var res = '';\n for (var j = 0; j < result.length; j++) {\n res = res + result[j];\n }\n return res;\n };\n Bidi.prototype.getLogicalToVisualString = function (inputText, isRtl) {\n var rtlCharacters = new RtlCharacters();\n this.indexLevels = rtlCharacters.getVisualOrder(inputText, isRtl);\n this.setDefaultIndexLevel();\n this.doOrder(0, this.indexLevels.length - 1);\n var text = this.doMirrorShaping(inputText);\n //let text : string = inputText;\n var resultBuilder = '';\n for (var i = 0; i < this.indexes.length; i++) {\n var index = this.indexes[i];\n resultBuilder += text[index];\n }\n return resultBuilder.toString();\n };\n Bidi.prototype.setDefaultIndexLevel = function () {\n for (var i = 0; i < this.indexLevels.length; i++) {\n this.indexes[i] = i;\n }\n };\n Bidi.prototype.doOrder = function (sIndex, eIndex) {\n var max = this.indexLevels[sIndex];\n var min = max;\n var odd = max;\n var even = max;\n for (var i = sIndex + 1; i <= eIndex; ++i) {\n var data = this.indexLevels[i];\n if (data > max) {\n max = data;\n }\n else if (data < min) {\n min = data;\n }\n odd &= data;\n even |= data;\n }\n if ((even & 1) === 0) {\n return;\n }\n if ((odd & 1) === 1) {\n this.reArrange(sIndex, eIndex + 1);\n return;\n }\n min |= 1;\n while (max >= min) {\n var pstart = sIndex;\n /*tslint:disable:no-constant-condition */\n while (true) {\n while (pstart <= eIndex) {\n if (this.indexLevels[pstart] >= max) {\n break;\n }\n pstart += 1;\n }\n if (pstart > eIndex) {\n break;\n }\n var pend = pstart + 1;\n while (pend <= eIndex) {\n if (this.indexLevels[pend] < max) {\n break;\n }\n pend += 1;\n }\n this.reArrange(pstart, pend);\n pstart = pend + 1;\n }\n max -= 1;\n }\n };\n Bidi.prototype.reArrange = function (i, j) {\n var length = (i + j) / 2;\n --j;\n for (; i < length; ++i, --j) {\n var temp = this.indexes[i];\n this.indexes[i] = this.indexes[j];\n this.indexes[j] = temp;\n }\n };\n Bidi.prototype.update = function () {\n this.mirroringShapeCharacters.setValue(40, 41);\n this.mirroringShapeCharacters.setValue(41, 40);\n this.mirroringShapeCharacters.setValue(60, 62);\n this.mirroringShapeCharacters.setValue(62, 60);\n this.mirroringShapeCharacters.setValue(91, 93);\n this.mirroringShapeCharacters.setValue(93, 91);\n this.mirroringShapeCharacters.setValue(123, 125);\n this.mirroringShapeCharacters.setValue(125, 123);\n this.mirroringShapeCharacters.setValue(171, 187);\n this.mirroringShapeCharacters.setValue(187, 171);\n this.mirroringShapeCharacters.setValue(8249, 8250);\n this.mirroringShapeCharacters.setValue(8250, 8249);\n this.mirroringShapeCharacters.setValue(8261, 8262);\n this.mirroringShapeCharacters.setValue(8262, 8261);\n this.mirroringShapeCharacters.setValue(8317, 8318);\n this.mirroringShapeCharacters.setValue(8318, 8317);\n this.mirroringShapeCharacters.setValue(8333, 8334);\n this.mirroringShapeCharacters.setValue(8334, 8333);\n this.mirroringShapeCharacters.setValue(8712, 8715);\n this.mirroringShapeCharacters.setValue(8713, 8716);\n this.mirroringShapeCharacters.setValue(8714, 8717);\n this.mirroringShapeCharacters.setValue(8715, 8712);\n this.mirroringShapeCharacters.setValue(8716, 8713);\n this.mirroringShapeCharacters.setValue(8717, 8714);\n this.mirroringShapeCharacters.setValue(8725, 10741);\n this.mirroringShapeCharacters.setValue(8764, 8765);\n this.mirroringShapeCharacters.setValue(8765, 8764);\n this.mirroringShapeCharacters.setValue(8771, 8909);\n this.mirroringShapeCharacters.setValue(8786, 8787);\n this.mirroringShapeCharacters.setValue(8787, 8786);\n this.mirroringShapeCharacters.setValue(8788, 8789);\n this.mirroringShapeCharacters.setValue(8789, 8788);\n this.mirroringShapeCharacters.setValue(8804, 8805);\n this.mirroringShapeCharacters.setValue(8805, 8804);\n this.mirroringShapeCharacters.setValue(8806, 8807);\n this.mirroringShapeCharacters.setValue(8807, 8806);\n this.mirroringShapeCharacters.setValue(8808, 8809);\n this.mirroringShapeCharacters.setValue(8809, 8808);\n this.mirroringShapeCharacters.setValue(8810, 8811);\n this.mirroringShapeCharacters.setValue(8811, 8810);\n this.mirroringShapeCharacters.setValue(8814, 8815);\n this.mirroringShapeCharacters.setValue(8815, 8814);\n this.mirroringShapeCharacters.setValue(8816, 8817);\n this.mirroringShapeCharacters.setValue(8817, 8816);\n this.mirroringShapeCharacters.setValue(8818, 8819);\n this.mirroringShapeCharacters.setValue(8819, 8818);\n this.mirroringShapeCharacters.setValue(8820, 8821);\n this.mirroringShapeCharacters.setValue(8821, 8820);\n this.mirroringShapeCharacters.setValue(8822, 8823);\n this.mirroringShapeCharacters.setValue(8823, 8822);\n this.mirroringShapeCharacters.setValue(8824, 8825);\n this.mirroringShapeCharacters.setValue(8825, 8824);\n this.mirroringShapeCharacters.setValue(8826, 8827);\n this.mirroringShapeCharacters.setValue(8827, 8826);\n this.mirroringShapeCharacters.setValue(8828, 8829);\n this.mirroringShapeCharacters.setValue(8829, 8828);\n this.mirroringShapeCharacters.setValue(8830, 8831);\n this.mirroringShapeCharacters.setValue(8831, 8830);\n this.mirroringShapeCharacters.setValue(8832, 8833);\n this.mirroringShapeCharacters.setValue(8833, 8832);\n this.mirroringShapeCharacters.setValue(8834, 8835);\n this.mirroringShapeCharacters.setValue(8835, 8834);\n this.mirroringShapeCharacters.setValue(8836, 8837);\n this.mirroringShapeCharacters.setValue(8837, 8836);\n this.mirroringShapeCharacters.setValue(8838, 8839);\n this.mirroringShapeCharacters.setValue(8839, 8838);\n this.mirroringShapeCharacters.setValue(8840, 8841);\n this.mirroringShapeCharacters.setValue(8841, 8840);\n this.mirroringShapeCharacters.setValue(8842, 8843);\n this.mirroringShapeCharacters.setValue(8843, 8842);\n this.mirroringShapeCharacters.setValue(8847, 8848);\n this.mirroringShapeCharacters.setValue(8848, 8847);\n this.mirroringShapeCharacters.setValue(8849, 8850);\n this.mirroringShapeCharacters.setValue(8850, 8849);\n this.mirroringShapeCharacters.setValue(8856, 10680);\n this.mirroringShapeCharacters.setValue(8866, 8867);\n this.mirroringShapeCharacters.setValue(8867, 8866);\n this.mirroringShapeCharacters.setValue(8870, 10974);\n this.mirroringShapeCharacters.setValue(8872, 10980);\n this.mirroringShapeCharacters.setValue(8873, 10979);\n this.mirroringShapeCharacters.setValue(8875, 10981);\n this.mirroringShapeCharacters.setValue(8880, 8881);\n this.mirroringShapeCharacters.setValue(8881, 8880);\n this.mirroringShapeCharacters.setValue(8882, 8883);\n this.mirroringShapeCharacters.setValue(8883, 8882);\n this.mirroringShapeCharacters.setValue(8884, 8885);\n this.mirroringShapeCharacters.setValue(8885, 8884);\n /*tslint:disable:max-func-body-length */\n this.mirroringShapeCharacters.setValue(8886, 8887);\n this.mirroringShapeCharacters.setValue(8887, 8886);\n this.mirroringShapeCharacters.setValue(8905, 8906);\n this.mirroringShapeCharacters.setValue(8906, 8905);\n this.mirroringShapeCharacters.setValue(8907, 8908);\n this.mirroringShapeCharacters.setValue(8908, 8907);\n this.mirroringShapeCharacters.setValue(8909, 8771);\n this.mirroringShapeCharacters.setValue(8912, 8913);\n this.mirroringShapeCharacters.setValue(8913, 8912);\n this.mirroringShapeCharacters.setValue(8918, 8919);\n this.mirroringShapeCharacters.setValue(8919, 8918);\n this.mirroringShapeCharacters.setValue(8920, 8921);\n this.mirroringShapeCharacters.setValue(8921, 8920);\n this.mirroringShapeCharacters.setValue(8922, 8923);\n this.mirroringShapeCharacters.setValue(8923, 8922);\n this.mirroringShapeCharacters.setValue(8924, 8925);\n this.mirroringShapeCharacters.setValue(8925, 8924);\n this.mirroringShapeCharacters.setValue(8926, 8927);\n this.mirroringShapeCharacters.setValue(8927, 8926);\n this.mirroringShapeCharacters.setValue(8928, 8929);\n this.mirroringShapeCharacters.setValue(8929, 8928);\n this.mirroringShapeCharacters.setValue(8930, 8931);\n this.mirroringShapeCharacters.setValue(8931, 8930);\n this.mirroringShapeCharacters.setValue(8932, 8933);\n this.mirroringShapeCharacters.setValue(8933, 8932);\n this.mirroringShapeCharacters.setValue(8934, 8935);\n this.mirroringShapeCharacters.setValue(8935, 8934);\n this.mirroringShapeCharacters.setValue(8936, 8937);\n this.mirroringShapeCharacters.setValue(8937, 8936);\n this.mirroringShapeCharacters.setValue(8938, 8939);\n this.mirroringShapeCharacters.setValue(8939, 8938);\n this.mirroringShapeCharacters.setValue(8940, 8941);\n this.mirroringShapeCharacters.setValue(8941, 8940);\n this.mirroringShapeCharacters.setValue(8944, 8945);\n this.mirroringShapeCharacters.setValue(8945, 8944);\n this.mirroringShapeCharacters.setValue(8946, 8954);\n this.mirroringShapeCharacters.setValue(8947, 8955);\n this.mirroringShapeCharacters.setValue(8948, 8956);\n this.mirroringShapeCharacters.setValue(8950, 8957);\n this.mirroringShapeCharacters.setValue(8951, 8958);\n this.mirroringShapeCharacters.setValue(8954, 8946);\n this.mirroringShapeCharacters.setValue(8955, 8947);\n this.mirroringShapeCharacters.setValue(8956, 8948);\n this.mirroringShapeCharacters.setValue(8957, 8950);\n this.mirroringShapeCharacters.setValue(8958, 8951);\n this.mirroringShapeCharacters.setValue(8968, 8969);\n this.mirroringShapeCharacters.setValue(8969, 8968);\n this.mirroringShapeCharacters.setValue(8970, 8971);\n this.mirroringShapeCharacters.setValue(8971, 8970);\n this.mirroringShapeCharacters.setValue(9001, 9002);\n this.mirroringShapeCharacters.setValue(9002, 9001);\n this.mirroringShapeCharacters.setValue(10088, 10089);\n this.mirroringShapeCharacters.setValue(10089, 10088);\n this.mirroringShapeCharacters.setValue(10090, 10091);\n this.mirroringShapeCharacters.setValue(10091, 10090);\n this.mirroringShapeCharacters.setValue(10092, 10093);\n this.mirroringShapeCharacters.setValue(10093, 10092);\n this.mirroringShapeCharacters.setValue(10094, 10095);\n this.mirroringShapeCharacters.setValue(10095, 10094);\n this.mirroringShapeCharacters.setValue(10096, 10097);\n this.mirroringShapeCharacters.setValue(10097, 10096);\n this.mirroringShapeCharacters.setValue(10098, 10099);\n this.mirroringShapeCharacters.setValue(10099, 10098);\n this.mirroringShapeCharacters.setValue(10100, 10101);\n this.mirroringShapeCharacters.setValue(10101, 10100);\n this.mirroringShapeCharacters.setValue(10197, 10198);\n this.mirroringShapeCharacters.setValue(10198, 10197);\n this.mirroringShapeCharacters.setValue(10205, 10206);\n this.mirroringShapeCharacters.setValue(10206, 10205);\n this.mirroringShapeCharacters.setValue(10210, 10211);\n this.mirroringShapeCharacters.setValue(10211, 10210);\n this.mirroringShapeCharacters.setValue(10212, 10213);\n this.mirroringShapeCharacters.setValue(10213, 10212);\n this.mirroringShapeCharacters.setValue(10214, 10215);\n this.mirroringShapeCharacters.setValue(10215, 10214);\n this.mirroringShapeCharacters.setValue(10216, 10217);\n this.mirroringShapeCharacters.setValue(10217, 10216);\n this.mirroringShapeCharacters.setValue(10218, 10219);\n this.mirroringShapeCharacters.setValue(10219, 10218);\n this.mirroringShapeCharacters.setValue(10627, 10628);\n this.mirroringShapeCharacters.setValue(10628, 10627);\n this.mirroringShapeCharacters.setValue(10629, 10630);\n this.mirroringShapeCharacters.setValue(10630, 10629);\n this.mirroringShapeCharacters.setValue(10631, 10632);\n this.mirroringShapeCharacters.setValue(10632, 10631);\n this.mirroringShapeCharacters.setValue(10633, 10634);\n this.mirroringShapeCharacters.setValue(10634, 10633);\n this.mirroringShapeCharacters.setValue(10635, 10636);\n this.mirroringShapeCharacters.setValue(10636, 10635);\n this.mirroringShapeCharacters.setValue(10637, 10640);\n this.mirroringShapeCharacters.setValue(10638, 10639);\n this.mirroringShapeCharacters.setValue(10639, 10638);\n this.mirroringShapeCharacters.setValue(10640, 10637);\n this.mirroringShapeCharacters.setValue(10641, 10642);\n this.mirroringShapeCharacters.setValue(10642, 10641);\n this.mirroringShapeCharacters.setValue(10643, 10644);\n this.mirroringShapeCharacters.setValue(10644, 10643);\n this.mirroringShapeCharacters.setValue(10645, 10646);\n this.mirroringShapeCharacters.setValue(10646, 10645);\n this.mirroringShapeCharacters.setValue(10647, 10648);\n this.mirroringShapeCharacters.setValue(10648, 10647);\n this.mirroringShapeCharacters.setValue(10680, 8856);\n this.mirroringShapeCharacters.setValue(10688, 10689);\n this.mirroringShapeCharacters.setValue(10689, 10688);\n this.mirroringShapeCharacters.setValue(10692, 10693);\n this.mirroringShapeCharacters.setValue(10693, 10692);\n this.mirroringShapeCharacters.setValue(10703, 10704);\n this.mirroringShapeCharacters.setValue(10704, 10703);\n this.mirroringShapeCharacters.setValue(10705, 10706);\n this.mirroringShapeCharacters.setValue(10706, 10705);\n this.mirroringShapeCharacters.setValue(10708, 10709);\n this.mirroringShapeCharacters.setValue(10709, 10708);\n this.mirroringShapeCharacters.setValue(10712, 10713);\n this.mirroringShapeCharacters.setValue(10713, 10712);\n this.mirroringShapeCharacters.setValue(10714, 10715);\n this.mirroringShapeCharacters.setValue(10715, 10714);\n this.mirroringShapeCharacters.setValue(10741, 8725);\n this.mirroringShapeCharacters.setValue(10744, 10745);\n this.mirroringShapeCharacters.setValue(10745, 10744);\n this.mirroringShapeCharacters.setValue(10748, 10749);\n this.mirroringShapeCharacters.setValue(10749, 10748);\n this.mirroringShapeCharacters.setValue(10795, 10796);\n this.mirroringShapeCharacters.setValue(10796, 10795);\n this.mirroringShapeCharacters.setValue(10797, 10796);\n this.mirroringShapeCharacters.setValue(10798, 10797);\n this.mirroringShapeCharacters.setValue(10804, 10805);\n this.mirroringShapeCharacters.setValue(10805, 10804);\n this.mirroringShapeCharacters.setValue(10812, 10813);\n this.mirroringShapeCharacters.setValue(10813, 10812);\n this.mirroringShapeCharacters.setValue(10852, 10853);\n this.mirroringShapeCharacters.setValue(10853, 10852);\n this.mirroringShapeCharacters.setValue(10873, 10874);\n this.mirroringShapeCharacters.setValue(10874, 10873);\n this.mirroringShapeCharacters.setValue(10877, 10878);\n this.mirroringShapeCharacters.setValue(10878, 10877);\n this.mirroringShapeCharacters.setValue(10879, 10880);\n this.mirroringShapeCharacters.setValue(10880, 10879);\n this.mirroringShapeCharacters.setValue(10881, 10882);\n this.mirroringShapeCharacters.setValue(10882, 10881);\n this.mirroringShapeCharacters.setValue(10883, 10884);\n this.mirroringShapeCharacters.setValue(10884, 10883);\n this.mirroringShapeCharacters.setValue(10891, 10892);\n this.mirroringShapeCharacters.setValue(10892, 10891);\n this.mirroringShapeCharacters.setValue(10897, 10898);\n this.mirroringShapeCharacters.setValue(10898, 10897);\n this.mirroringShapeCharacters.setValue(10899, 10900);\n this.mirroringShapeCharacters.setValue(10900, 10899);\n this.mirroringShapeCharacters.setValue(10901, 10902);\n this.mirroringShapeCharacters.setValue(10902, 10901);\n this.mirroringShapeCharacters.setValue(10903, 10904);\n this.mirroringShapeCharacters.setValue(10904, 10903);\n this.mirroringShapeCharacters.setValue(10905, 10906);\n this.mirroringShapeCharacters.setValue(10906, 10905);\n this.mirroringShapeCharacters.setValue(10907, 10908);\n this.mirroringShapeCharacters.setValue(10908, 10907);\n this.mirroringShapeCharacters.setValue(10913, 10914);\n this.mirroringShapeCharacters.setValue(10914, 10913);\n this.mirroringShapeCharacters.setValue(10918, 10919);\n this.mirroringShapeCharacters.setValue(10919, 10918);\n this.mirroringShapeCharacters.setValue(10920, 10921);\n this.mirroringShapeCharacters.setValue(10921, 10920);\n this.mirroringShapeCharacters.setValue(10922, 10923);\n this.mirroringShapeCharacters.setValue(10923, 10922);\n this.mirroringShapeCharacters.setValue(10924, 10925);\n this.mirroringShapeCharacters.setValue(10925, 10924);\n this.mirroringShapeCharacters.setValue(10927, 10928);\n this.mirroringShapeCharacters.setValue(10928, 10927);\n this.mirroringShapeCharacters.setValue(10931, 10932);\n this.mirroringShapeCharacters.setValue(10932, 10931);\n this.mirroringShapeCharacters.setValue(10939, 10940);\n this.mirroringShapeCharacters.setValue(10940, 10939);\n this.mirroringShapeCharacters.setValue(10941, 10942);\n this.mirroringShapeCharacters.setValue(10942, 10941);\n this.mirroringShapeCharacters.setValue(10943, 10944);\n this.mirroringShapeCharacters.setValue(10944, 10943);\n this.mirroringShapeCharacters.setValue(10945, 10946);\n this.mirroringShapeCharacters.setValue(10946, 10945);\n this.mirroringShapeCharacters.setValue(10947, 10948);\n this.mirroringShapeCharacters.setValue(10948, 10947);\n this.mirroringShapeCharacters.setValue(10949, 10950);\n this.mirroringShapeCharacters.setValue(10950, 10949);\n this.mirroringShapeCharacters.setValue(10957, 10958);\n this.mirroringShapeCharacters.setValue(10958, 10957);\n this.mirroringShapeCharacters.setValue(10959, 10960);\n this.mirroringShapeCharacters.setValue(10960, 10959);\n this.mirroringShapeCharacters.setValue(10961, 10962);\n this.mirroringShapeCharacters.setValue(10962, 10961);\n this.mirroringShapeCharacters.setValue(10963, 10964);\n this.mirroringShapeCharacters.setValue(10964, 10963);\n this.mirroringShapeCharacters.setValue(10965, 10966);\n this.mirroringShapeCharacters.setValue(10966, 10965);\n this.mirroringShapeCharacters.setValue(10974, 8870);\n this.mirroringShapeCharacters.setValue(10979, 8873);\n this.mirroringShapeCharacters.setValue(10980, 8872);\n this.mirroringShapeCharacters.setValue(10981, 8875);\n this.mirroringShapeCharacters.setValue(10988, 10989);\n this.mirroringShapeCharacters.setValue(10989, 10988);\n this.mirroringShapeCharacters.setValue(10999, 11000);\n this.mirroringShapeCharacters.setValue(11000, 10999);\n this.mirroringShapeCharacters.setValue(11001, 11002);\n this.mirroringShapeCharacters.setValue(11002, 11001);\n this.mirroringShapeCharacters.setValue(12296, 12297);\n this.mirroringShapeCharacters.setValue(12297, 12296);\n this.mirroringShapeCharacters.setValue(12298, 12299);\n this.mirroringShapeCharacters.setValue(12299, 12298);\n this.mirroringShapeCharacters.setValue(12300, 12301);\n this.mirroringShapeCharacters.setValue(12301, 12300);\n this.mirroringShapeCharacters.setValue(12302, 12303);\n this.mirroringShapeCharacters.setValue(12303, 12302);\n this.mirroringShapeCharacters.setValue(12304, 12305);\n this.mirroringShapeCharacters.setValue(12305, 12304);\n this.mirroringShapeCharacters.setValue(12308, 12309);\n this.mirroringShapeCharacters.setValue(12309, 12308);\n this.mirroringShapeCharacters.setValue(12310, 12311);\n this.mirroringShapeCharacters.setValue(12311, 12310);\n this.mirroringShapeCharacters.setValue(12312, 12313);\n this.mirroringShapeCharacters.setValue(12313, 12312);\n this.mirroringShapeCharacters.setValue(12314, 12315);\n this.mirroringShapeCharacters.setValue(12315, 12314);\n this.mirroringShapeCharacters.setValue(65288, 65289);\n this.mirroringShapeCharacters.setValue(65289, 65288);\n this.mirroringShapeCharacters.setValue(65308, 65310);\n this.mirroringShapeCharacters.setValue(65310, 65308);\n this.mirroringShapeCharacters.setValue(65339, 65341);\n this.mirroringShapeCharacters.setValue(65341, 65339);\n this.mirroringShapeCharacters.setValue(65371, 65373);\n this.mirroringShapeCharacters.setValue(65373, 65371);\n this.mirroringShapeCharacters.setValue(65375, 65376);\n this.mirroringShapeCharacters.setValue(65376, 65375);\n this.mirroringShapeCharacters.setValue(65378, 65379);\n this.mirroringShapeCharacters.setValue(65379, 65378);\n };\n return Bidi;\n}());\nexport { Bidi };\nvar RtlCharacters = /** @class */ (function () {\n //#endregion\n //#region constructors\n function RtlCharacters() {\n //#region fields\n /// \n /// Specifies the character types.\n /// \n this.types = [];\n /// \n /// Specifies the text order (RTL or LTR).\n /// \n this.textOrder = -1;\n /// \n /// Specifies the RTL character types.\n /// \n /* tslint:disable-next-line:prefer-array-literal */\n this.rtlCharacterTypes = new Array(65536);\n //#endregion\n //#region constants\n /// \n /// Left-to-Right (Non-European or non-Arabic digits).\n /// \n this.L = 0;\n /// \n /// Left-to-Right Embedding\n /// \n this.LRE = 1;\n /// \n /// Left-to-Right Override\n /// \n this.LRO = 2;\n /// \n /// Right-to-Left (Hebrew alphabet, and related punctuation).\n /// \n this.R = 3;\n /// \n /// Right-to-Left Arabic \n /// \n this.AL = 4;\n /// \n /// Right-to-Left Embedding.\n /// \n this.RLE = 5;\n /// \n /// Right-to-Left Override\n /// \n this.RLO = 6;\n /// \n /// Pop Directional Format\n /// \n this.PDF = 7;\n /// \n /// European Number (European digits, Eastern Arabic-Indic digits).\n /// \n this.EN = 8;\n /// \n /// European Number Separator (Plus sign, Minus sign).\n /// \n this.ES = 9;\n /// \n /// European Number Terminator (Degree sign, currency symbols).\n /// \n this.ET = 10;\n /// \n /// Arabic Number (Arabic-Indic digits, Arabic decimal and thousands separators).\n /// \n this.AN = 11;\n /// \n /// Common Number Separator (Colon, Comma, Full Stop, No-Break Space.\n /// \n this.CS = 12;\n /// \n /// Nonspacing Mark (Characters with the General_Category values).\n /// \n this.NSM = 13;\n /// \n /// Boundary Neutral (Default ignorables, non-characters, and control characters, other than those explicitly given other types.)\n /// \n this.BN = 14;\n /// \n /// Paragraph Separator (Paragraph separator, appropriate Newline Functions, higher-level protocol paragraph determination).\n /// \n this.B = 15;\n /// \n /// \tSegment Separator (tab).\n /// \n this.S = 16;\n /// \n /// Whitespace (Space, Figure space, Line separator, Form feed, General Punctuation spaces).\n /// \n this.WS = 17;\n /// \n /// Other Neutrals (All other characters, including object replacement character).\n /// \n this.ON = 18;\n /// \n /// RTL character types.\n /// \n this.charTypes = [\n this.L, this.EN, this.BN, this.ES, this.ES, this.S, this.ET, this.ET, this.B, this.AN, this.AN, this.S, this.CS, this.CS,\n this.WS, this.NSM, this.NSM, this.B, this.BN, 27, this.BN, 28, 30, this.B, 31, 31, this.S, 32, 32, this.WS, 33, 34,\n this.ON, 35, 37, this.ET, 38, 42, this.ON, 43, 43, this.ET, 44, 44, this.CS, 45, 45, this.ET, 46, 46, this.CS,\n 47, 47, this.CS, 48, 57, this.EN, 58, 58, this.CS, 59, 64, this.ON, 65, 90, this.L, 91, 96, this.ON, 97, 122, this.L,\n 123, 126, this.ON, 127, 132, this.BN, 133, 133, this.B, 134, 159, this.BN, 160, 160, this.CS,\n 161, 161, this.ON, 162, 165, this.ET, 166, 169, this.ON, 170, 170, this.L, 171, 175, this.ON,\n 176, 177, this.ET, 178, 179, this.EN, 180, 180, this.ON, 181, 181, this.L, 182, 184, this.ON,\n 185, 185, this.EN, 186, 186, this.L, 187, 191, this.ON, 192, 214, this.L, 215, 215, this.ON,\n 216, 246, this.L, 247, 247, this.ON, 248, 696, this.L, 697, 698, this.ON, 699, 705, this.L,\n 706, 719, this.ON, 720, 721, this.L, 722, 735, this.ON, 736, 740, this.L, 741, 749, this.ON,\n 750, 750, this.L, 751, 767, this.ON, 768, 855, this.NSM, 856, 860, this.L, 861, 879, this.NSM,\n 880, 883, this.L, 884, 885, this.ON, 886, 893, this.L, 894, 894, this.ON, 895, 899, this.L,\n 900, 901, this.ON, 902, 902, this.L, 903, 903, this.ON, 904, 1013, this.L, 1014, 1014, this.ON,\n 1015, 1154, this.L, 1155, 1158, this.NSM, 1159, 1159, this.L, 1160, 1161, this.NSM,\n 1162, 1417, this.L, 1418, 1418, this.ON, 1419, 1424, this.L, 1425, 1441, this.NSM,\n 1442, 1442, this.L, 1443, 1465, this.NSM, 1466, 1466, this.L, 1467, 1469, this.NSM,\n 1470, 1470, this.R, 1471, 1471, this.NSM, 1472, 1472, this.R, 1473, 1474, this.NSM,\n 1475, 1475, this.R, 1476, 1476, this.NSM, 1477, 1487, this.L, 1488, 1514, this.R,\n 1515, 1519, this.L, 1520, 1524, this.R, 1525, 1535, this.L, 1536, 1539, this.AL,\n 1540, 1547, this.L, 1548, 1548, this.CS, 1549, 1549, this.AL, 1550, 1551, this.ON,\n 1552, 1557, this.NSM, 1558, 1562, this.L, 1563, 1563, this.AL, 1564, 1566, this.L,\n 1567, 1567, this.AL, 1568, 1568, this.L, 1569, 1594, this.AL, 1595, 1599, this.L,\n 1600, 1610, this.AL, 1611, 1624, this.NSM, 1625, 1631, this.L, 1632, 1641, this.AN,\n 1642, 1642, this.ET, 1643, 1644, this.AN, 1645, 1647, this.AL, 1648, 1648, this.NSM,\n 1649, 1749, this.AL, 1750, 1756, this.NSM, 1757, 1757, this.AL, 1758, 1764, this.NSM,\n 1765, 1766, this.AL, 1767, 1768, this.NSM, 1769, 1769, this.ON, 1770, 1773, this.NSM,\n 1774, 1775, this.AL, 1776, 1785, this.EN, 1786, 1805, this.AL, 1806, 1806, this.L,\n 1807, 1807, this.BN, 1808, 1808, this.AL, 1809, 1809, this.NSM, 1810, 1839, this.AL,\n 1840, 1866, this.NSM, 1867, 1868, this.L, 1869, 1871, this.AL, 1872, 1919, this.L,\n 1920, 1957, this.AL, 1958, 1968, this.NSM, 1969, 1969, this.AL, 1970, 2304, this.L,\n 2305, 2306, this.NSM, 2307, 2363, this.L, 2364, 2364, this.NSM, 2365, 2368, this.L,\n 2369, 2376, this.NSM, 2377, 2380, this.L, 2381, 2381, this.NSM, 2382, 2384, this.L,\n 2385, 2388, this.NSM, 2389, 2401, this.L, 2402, 2403, this.NSM, 2404, 2432, this.L,\n 2433, 2433, this.NSM, 2434, 2491, this.L, 2492, 2492, this.NSM, 2493, 2496, this.L,\n 2497, 2500, this.NSM, 2501, 2508, this.L, 2509, 2509, this.NSM, 2510, 2529, this.L,\n 2530, 2531, this.NSM, 2532, 2545, this.L, 2546, 2547, this.ET, 2548, 2560, this.L,\n 2561, 2562, this.NSM, 2563, 2619, this.L, 2620, 2620, this.NSM, 2621, 2624, this.L,\n 2625, 2626, this.NSM, 2627, 2630, this.L, 2631, 2632, this.NSM, 2633, 2634, this.L,\n 2635, 2637, this.NSM, 2638, 2671, this.L, 2672, 2673, this.NSM, 2674, 2688, this.L,\n 2689, 2690, this.NSM, 2691, 2747, this.L, 2748, 2748, this.NSM, 2749, 2752, this.L,\n 2753, 2757, this.NSM, 2758, 2758, this.L, 2759, 2760, this.NSM, 2761, 2764, this.L,\n 2765, 2765, this.NSM, 2766, 2785, this.L, 2786, 2787, this.NSM, 2788, 2800, this.L,\n 2801, 2801, this.ET, 2802, 2816, this.L, 2817, 2817, this.NSM, 2818, 2875, this.L,\n 2876, 2876, this.NSM, 2877, 2878, this.L, 2879, 2879, this.NSM, 2880, 2880, this.L,\n 2881, 2883, this.NSM, 2884, 2892, this.L, 2893, 2893, this.NSM, 2894, 2901, this.L,\n 2902, 2902, this.NSM, 2903, 2945, this.L, 2946, 2946, this.NSM, 2947, 3007, this.L,\n 3008, 3008, this.NSM, 3009, 3020, this.L, 3021, 3021, this.NSM, 3022, 3058, this.L,\n 3059, 3064, this.ON, 3065, 3065, this.ET, 3066, 3066, this.ON, 3067, 3133, this.L,\n 3134, 3136, this.NSM, 3137, 3141, this.L, 3142, 3144, this.NSM, 3145, 3145, this.L,\n 3146, 3149, this.NSM, 3150, 3156, this.L, 3157, 3158, this.NSM, 3159, 3259, this.L,\n 3260, 3260, this.NSM, 3261, 3275, this.L, 3276, 3277, this.NSM, 3278, 3392, this.L,\n 3393, 3395, this.NSM, 3396, 3404, this.L, 3405, 3405, this.NSM, 3406, 3529, this.L,\n 3530, 3530, this.NSM, 3531, 3537, this.L, 3538, 3540, this.NSM, 3541, 3541, this.L,\n 3542, 3542, this.NSM, 3543, 3632, this.L, 3633, 3633, this.NSM, 3634, 3635, this.L,\n 3636, 3642, this.NSM, 3643, 3646, this.L, 3647, 3647, this.ET, 3648, 3654, this.L,\n 3655, 3662, this.NSM, 3663, 3760, this.L, 3761, 3761, this.NSM, 3762, 3763, this.L,\n 3764, 3769, this.NSM, 3770, 3770, this.L, 3771, 3772, this.NSM, 3773, 3783, this.L,\n 3784, 3789, this.NSM, 3790, 3863, this.L, 3864, 3865, this.NSM, 3866, 3892, this.L,\n 3893, 3893, this.NSM, 3894, 3894, this.L, 3895, 3895, this.NSM, 3896, 3896, this.L,\n 3897, 3897, this.NSM, 3898, 3901, this.ON, 3902, 3952, this.L, 3953, 3966, this.NSM,\n 3967, 3967, this.L, 3968, 3972, this.NSM, 3973, 3973, this.L, 3974, 3975, this.NSM,\n 3976, 3983, this.L, 3984, 3991, this.NSM, 3992, 3992, this.L, 3993, 4028, this.NSM,\n 4029, 4037, this.L, 4038, 4038, this.NSM, 4039, 4140, this.L, 4141, 4144, this.NSM,\n 4145, 4145, this.L, 4146, 4146, this.NSM, 4147, 4149, this.L, 4150, 4151, this.NSM,\n 4152, 4152, this.L, 4153, 4153, this.NSM, 4154, 4183, this.L, 4184, 4185, this.NSM,\n 4186, 5759, this.L, 5760, 5760, this.WS, 5761, 5786, this.L, 5787, 5788, this.ON,\n 5789, 5905, this.L, 5906, 5908, this.NSM, 5909, 5937, this.L, 5938, 5940, this.NSM,\n 5941, 5969, this.L, 5970, 5971, this.NSM, 5972, 6001, this.L, 6002, 6003, this.NSM,\n 6004, 6070, this.L, 6071, 6077, this.NSM, 6078, 6085, this.L, 6086, 6086, this.NSM,\n 6087, 6088, this.L, 6089, 6099, this.NSM, 6100, 6106, this.L, 6107, 6107, this.ET,\n 6108, 6108, this.L, 6109, 6109, this.NSM, 6110, 6127, this.L, 6128, 6137, this.ON,\n 6138, 6143, this.L, 6144, 6154, this.ON, 6155, 6157, this.NSM, 6158, 6158, this.WS,\n 6159, 6312, this.L, 6313, 6313, this.NSM, 6314, 6431, this.L, 6432, 6434, this.NSM,\n 6435, 6438, this.L, 6439, 6443, this.NSM, 6444, 6449, this.L, 6450, 6450, this.NSM,\n 6451, 6456, this.L, 6457, 6459, this.NSM, 6460, 6463, this.L, 6464, 6464, this.ON,\n 6465, 6467, this.L, 6468, 6469, this.ON, 6470, 6623, this.L, 6624, 6655, this.ON,\n 6656, 8124, this.L, 8125, 8125, this.ON, 8126, 8126, this.L, 8127, 8129, this.ON,\n 8130, 8140, this.L, 8141, 8143, this.ON, 8144, 8156, this.L, 8157, 8159, this.ON,\n 8160, 8172, this.L, 8173, 8175, this.ON, 8176, 8188, this.L, 8189, 8190, this.ON,\n 8191, 8191, this.L, 8192, 8202, this.WS, 8203, 8205, this.BN, 8206, 8206, this.L,\n 8207, 8207, this.R, 8208, 8231, this.ON, 8232, 8232, this.WS, 8233, 8233, this.B,\n 8234, 8234, this.LRE, 8235, 8235, this.RLE, 8236, 8236, this.PDF, 8237, 8237, this.LRO,\n 8238, 8238, this.RLO, 8239, 8239, this.WS, 8240, 8244, this.ET, 8245, 8276, this.ON,\n 8277, 8278, this.L, 8279, 8279, this.ON, 8280, 8286, this.L, 8287, 8287, this.WS,\n 8288, 8291, this.BN, 8292, 8297, this.L, 8298, 8303, this.BN, 8304, 8304, this.EN,\n 8305, 8307, this.L, 8308, 8313, this.EN, 8314, 8315, this.ET, 8316, 8318, this.ON,\n 8319, 8319, this.L, 8320, 8329, this.EN, 8330, 8331, this.ET, 8332, 8334, this.ON,\n 8335, 8351, this.L, 8352, 8369, this.ET, 8370, 8399, this.L, 8400, 8426, this.NSM,\n 8427, 8447, this.L, 8448, 8449, this.ON, 8450, 8450, this.L, 8451, 8454, this.ON,\n 8455, 8455, this.L, 8456, 8457, this.ON, 8458, 8467, this.L, 8468, 8468, this.ON,\n 8469, 8469, this.L, 8470, 8472, this.ON, 8473, 8477, this.L, 8478, 8483, this.ON,\n 8484, 8484, this.L, 8485, 8485, this.ON, 8486, 8486, this.L, 8487, 8487, this.ON,\n 8488, 8488, this.L, 8489, 8489, this.ON, 8490, 8493, this.L, 8494, 8494, this.ET,\n 8495, 8497, this.L, 8498, 8498, this.ON, 8499, 8505, this.L, 8506, 8507, this.ON,\n 8508, 8511, this.L, 8512, 8516, this.ON, 8517, 8521, this.L, 8522, 8523, this.ON,\n 8524, 8530, this.L, 8531, 8543, this.ON, 8544, 8591, this.L, 8592, 8721, this.ON,\n 8722, 8723, this.ET, 8724, 9013, this.ON, 9014, 9082, this.L, 9083, 9108, this.ON,\n 9109, 9109, this.L, 9110, 9168, this.ON, 9169, 9215, this.L, 9216, 9254, this.ON,\n 9255, 9279, this.L, 9280, 9290, this.ON, 9291, 9311, this.L, 9312, 9371, this.EN,\n 9372, 9449, this.L, 9450, 9450, this.EN, 9451, 9751, this.ON, 9752, 9752, this.L,\n 9753, 9853, this.ON, 9854, 9855, this.L, 9856, 9873, this.ON, 9874, 9887, this.L,\n 9888, 9889, this.ON, 9890, 9984, this.L, 9985, 9988, this.ON, 9989, 9989, this.L,\n 9990, 9993, this.ON, 9994, 9995, this.L, 9996, 10023, this.ON, 10024, 10024, this.L,\n 10025, 10059, this.ON, 10060, 10060, this.L, 10061, 10061, this.ON, 10062, 10062, this.L,\n 10063, 10066, this.ON, 10067, 10069, this.L, 10070, 10070, this.ON, 10071, 10071, this.L,\n 10072, 10078, this.ON, 10079, 10080, this.L, 10081, 10132, this.ON, 10133, 10135, this.L,\n 10136, 10159, this.ON, 10160, 10160, this.L, 10161, 10174, this.ON, 10175, 10191, this.L,\n 10192, 10219, this.ON, 10220, 10223, this.L, 10224, 11021, this.ON, 11022, 11903, this.L,\n 11904, 11929, this.ON, 11930, 11930, this.L, 11931, 12019, this.ON, 12020, 12031, this.L,\n 12032, 12245, this.ON, 12246, 12271, this.L, 12272, 12283, this.ON, 12284, 12287, this.L,\n 12288, 12288, this.WS, 12289, 12292, this.ON, 12293, 12295, this.L, 12296, 12320, this.ON,\n 12321, 12329, this.L, 12330, 12335, this.NSM, 12336, 12336, this.ON, 12337, 12341, this.L,\n 12342, 12343, this.ON, 12344, 12348, this.L, 12349, 12351, this.ON, 12352, 12440, this.L,\n 12441, 12442, this.NSM, 12443, 12444, this.ON, 12445, 12447, this.L, 12448, 12448, this.ON,\n 12449, 12538, this.L, 12539, 12539, this.ON, 12540, 12828, this.L, 12829, 12830, this.ON,\n 12831, 12879, this.L, 12880, 12895, this.ON, 12896, 12923, this.L, 12924, 12925, this.ON,\n 12926, 12976, this.L, 12977, 12991, this.ON, 12992, 13003, this.L, 13004, 13007, this.ON,\n 13008, 13174, this.L, 13175, 13178, this.ON, 13179, 13277, this.L, 13278, 13279, this.ON,\n 13280, 13310, this.L, 13311, 13311, this.ON, 13312, 19903, this.L, 19904, 19967, this.ON,\n 19968, 42127, this.L, 42128, 42182, this.ON, 42183, 64284, this.L, 64285, 64285, this.R,\n 64286, 64286, this.NSM, 64287, 64296, this.R, 64297, 64297, this.ET, 64298, 64310, this.R,\n 64311, 64311, this.L, 64312, 64316, this.R, 64317, 64317, this.L, 64318, 64318, this.R,\n 64319, 64319, this.L, 64320, 64321, this.R, 64322, 64322, this.L, 64323, 64324, this.R,\n 64325, 64325, this.L, 64326, 64335, this.R, 64336, 64433, this.AL, 64434, 64466, this.L,\n 64467, 64829, this.AL, 64830, 64831, this.ON, 64832, 64847, this.L, 64848, 64911, this.AL,\n 64912, 64913, this.L, 64914, 64967, this.AL, 64968, 65007, this.L, 65008, 65020, this.AL,\n 65021, 65021, this.ON, 65022, 65023, this.L, 65024, 65039, this.NSM, 65040, 65055, this.L,\n 65056, 65059, this.NSM, 65060, 65071, this.L, 65072, 65103, this.ON, 65104, 65104, this.CS,\n 65105, 65105, this.ON, 65106, 65106, this.CS, 65107, 65107, this.L, 65108, 65108, this.ON,\n 65109, 65109, this.CS, 65110, 65118, this.ON, 65119, 65119, this.ET, 65120, 65121, this.ON,\n 65122, 65123, this.ET, 65124, 65126, this.ON, 65127, 65127, this.L, 65128, 65128, this.ON,\n 65129, 65130, this.ET, 65131, 65131, this.ON, 65132, 65135, this.L, 65136, 65140, this.AL,\n 65141, 65141, this.L, 65142, 65276, this.AL, 65277, 65278, this.L, 65279, 65279, this.BN,\n 65280, 65280, this.L, 65281, 65282, this.ON, 65283, 65285, this.ET, 65286, 65290, this.ON,\n 65291, 65291, this.ET, 65292, 65292, this.CS, 65293, 65293, this.ET, 65294, 65294, this.CS,\n 65295, 65295, this.ES, 65296, 65305, this.EN, 65306, 65306, this.CS, 65307, 65312, this.ON,\n 65313, 65338, this.L, 65339, 65344, this.ON, 65345, 65370, this.L, 65371, 65381, this.ON,\n 65382, 65503, this.L, 65504, 65505, this.ET, 65506, 65508, this.ON, 65509, 65510, this.ET,\n 65511, 65511, this.L, 65512, 65518, this.ON, 65519, 65528, this.L, 65529, 65531, this.BN,\n 65532, 65533, this.ON, 65534, 65535, this.L\n ];\n for (var i = 0; i < this.charTypes.length; ++i) {\n var start = this.charTypes[i];\n var end = this.charTypes[++i];\n var b = this.charTypes[++i];\n while (start <= end) {\n this.rtlCharacterTypes[start++] = b;\n }\n }\n }\n //#endregion\n //#region implementation\n RtlCharacters.prototype.getVisualOrder = function (inputText, isRtl) {\n this.types = this.getCharacterCode(inputText);\n this.textOrder = isRtl ? this.LRE : this.L;\n this.doVisualOrder();\n var result = [];\n for (var i = 0; i < this.levels.length; i++) {\n result[i] = this.levels[i];\n }\n return result;\n };\n RtlCharacters.prototype.getCharacterCode = function (text) {\n var characterCodes = [];\n for (var i = 0; i < text.length; i++) {\n characterCodes[i] = this.rtlCharacterTypes[text[i].charCodeAt(0)];\n }\n return characterCodes;\n };\n RtlCharacters.prototype.setDefaultLevels = function () {\n for (var i = 0; i < this.length; i++) {\n this.levels[i] = this.textOrder;\n }\n };\n RtlCharacters.prototype.setLevels = function () {\n this.setDefaultLevels();\n for (var n = 0; n < this.length; ++n) {\n var level = this.levels[n];\n if ((level & 0x80) !== 0) {\n level &= 0x7f;\n this.result[n] = ((level & 0x1) === 0) ? this.L : this.R;\n }\n this.levels[n] = level;\n }\n };\n RtlCharacters.prototype.updateLevels = function (index, level, length) {\n if ((level & 1) === 0) {\n for (var i = index; i < length; ++i) {\n if (this.result[i] === this.R) {\n this.levels[i] += 1;\n }\n else if (this.result[i] !== this.L) {\n this.levels[i] += 2;\n }\n }\n }\n else {\n for (var i = index; i < length; ++i) {\n if (this.result[i] !== this.R) {\n this.levels[i] += 1;\n }\n }\n }\n };\n RtlCharacters.prototype.doVisualOrder = function () {\n this.length = this.types.length;\n this.result = this.types;\n this.levels = [];\n this.setLevels();\n this.length = this.getEmbeddedCharactersLength();\n var preview = this.textOrder;\n var i = 0;\n while (i < this.length) {\n var level = this.levels[i];\n var preType = ((Math.max(preview, level) & 0x1) === 0) ? this.L : this.R;\n var length_1 = i + 1;\n while (length_1 < this.length && this.levels[length_1] === level) {\n ++length_1;\n }\n var success = length_1 < this.length ? this.levels[length_1] : this.textOrder;\n var type = ((Math.max(success, level) & 0x1) === 0) ? this.L : this.R;\n this.checkNSM(i, length_1, level, preType, type);\n this.updateLevels(i, level, length_1);\n preview = level;\n i = length_1;\n }\n this.checkEmbeddedCharacters(this.length);\n };\n RtlCharacters.prototype.getEmbeddedCharactersLength = function () {\n var index = 0;\n for (var i = 0; i < this.length; ++i) {\n if (!(this.types[i] === this.LRE || this.types[i] === this.RLE || this.types[i] === this.LRO ||\n this.types[i] === this.RLO || this.types[i] === this.PDF || this.types[i] === this.BN)) {\n this.result[index] = this.result[i];\n this.levels[index] = this.levels[i];\n index++;\n }\n }\n return index;\n };\n RtlCharacters.prototype.checkEmbeddedCharacters = function (length) {\n for (var i = this.types.length - 1; i >= 0; --i) {\n if (this.types[i] === this.LRE || this.types[i] === this.RLE || this.types[i] === this.LRO ||\n this.types[i] === this.RLO || this.types[i] === this.PDF || this.types[i] === this.BN) {\n this.result[i] = this.types[i];\n this.levels[i] = -1;\n }\n else {\n length -= 1;\n this.result[i] = this.result[length];\n this.levels[i] = this.levels[length];\n }\n }\n for (var i = 0; i < this.types.length; i++) {\n if (this.levels[i] === -1) {\n if (i === 0) {\n this.levels[i] = this.textOrder;\n }\n else {\n this.levels[i] = this.levels[i - 1];\n }\n }\n }\n };\n RtlCharacters.prototype.checkNSM = function (index, length, level, startType, endType) {\n var charType = startType;\n for (var i = index; i < length; ++i) {\n if (this.result[i] === this.NSM) {\n this.result[i] = charType;\n }\n else {\n charType = this.result[i];\n }\n }\n this.checkEuropeanDigits(index, length, level, startType, endType);\n };\n RtlCharacters.prototype.checkEuropeanDigits = function (index, length, level, startType, endType) {\n for (var i = index; i < length; ++i) {\n if (this.result[i] === this.EN) {\n for (var j = i - 1; j >= index; --j) {\n if (this.result[j] === this.L || this.result[j] === this.R || this.result[j] === this.AL) {\n if (this.result[j] === this.AL) {\n this.result[i] = this.AN;\n }\n break;\n }\n }\n }\n }\n this.checkArabicCharacters(index, length, level, startType, endType);\n };\n RtlCharacters.prototype.checkArabicCharacters = function (index, length, level, startType, endType) {\n for (var i = index; i < length; ++i) {\n if (this.result[i] === this.AL) {\n this.result[i] = this.R;\n }\n }\n this.checkEuropeanNumberSeparator(index, length, level, startType, endType);\n };\n RtlCharacters.prototype.checkEuropeanNumberSeparator = function (index, length, level, startType, endType) {\n for (var i = index + 1; i < length - 1; ++i) {\n if (this.result[i] === this.ES || this.result[i] === this.CS) {\n var preview = this.result[i - 1];\n var success = this.result[i + 1];\n if (preview === this.EN && success === this.EN) {\n this.result[i] = this.EN;\n }\n else if (this.result[i] === this.CS && preview === this.AN && success === this.AN) {\n this.result[i] = this.AN;\n }\n }\n }\n this.checkEuropeanNumberTerminator(index, length, level, startType, endType);\n };\n RtlCharacters.prototype.checkEuropeanNumberTerminator = function (index, length, level, startType, endType) {\n for (var i = index; i < length; ++i) {\n if (this.result[i] === this.ET) {\n var s = i;\n var b = [];\n b.push(this.ET);\n var l = this.getLength(s, length, b);\n var data = s === index ? startType : this.result[s - 1];\n if (data !== this.EN) {\n data = (l === length) ? endType : this.result[l];\n }\n if (data === this.EN) {\n for (var j = s; j < l; ++j) {\n this.result[j] = this.EN;\n }\n }\n i = l;\n }\n }\n this.checkOtherNeutrals(index, length, level, startType, endType);\n };\n RtlCharacters.prototype.checkOtherNeutrals = function (index, length, level, startType, endType) {\n for (var i = index; i < length; ++i) {\n if (this.result[i] === this.ES || this.result[i] === this.ET || this.result[i] === this.CS) {\n this.result[i] = this.ON;\n }\n }\n this.checkOtherCharacters(index, length, level, startType, endType);\n };\n RtlCharacters.prototype.checkOtherCharacters = function (index, length, level, startType, endType) {\n for (var i = index; i < length; ++i) {\n if (this.result[i] === this.EN) {\n var pst = startType;\n for (var j = i - 1; j >= index; --j) {\n if (this.result[j] === this.L || this.result[j] === this.R) {\n pst = this.result[j];\n break;\n }\n }\n if (pst === this.L) {\n this.result[i] = this.L;\n }\n }\n }\n this.checkCommanCharacters(index, length, level, startType, endType);\n };\n RtlCharacters.prototype.getLength = function (index, length, validSet) {\n --index;\n while (++index < length) {\n var t = this.result[index];\n for (var i = 0; i < validSet.length; ++i) {\n if (t === validSet[i]) {\n index = this.getLength(++index, length, validSet);\n }\n }\n return index;\n }\n return length;\n };\n RtlCharacters.prototype.checkCommanCharacters = function (index, length, level, startType, endType) {\n for (var i = index; i < length; ++i) {\n if (this.result[i] === this.WS || this.result[i] === this.ON || this.result[i] === this.B ||\n this.result[i] === this.S) {\n var s = i;\n var byte = [this.B, this.S, this.WS, this.ON];\n var l = this.getLength(s, length, byte);\n var lt = 0;\n var tt = 0;\n var rt = 0;\n if (s === index) {\n lt = startType;\n }\n else {\n lt = this.result[s - 1];\n if (lt === this.AN) {\n lt = this.R;\n }\n else if (lt === this.EN) {\n lt = this.R;\n }\n }\n if (l === length) {\n tt = endType;\n }\n else {\n tt = this.result[l];\n if (tt === this.AN) {\n tt = this.R;\n }\n else if (tt === this.EN) {\n tt = this.R;\n }\n }\n if (lt === tt) {\n rt = lt;\n }\n else {\n rt = ((level & 0x1) === 0) ? this.L : this.R;\n }\n for (var j = s; j < l; ++j) {\n this.result[j] = rt;\n }\n i = l;\n }\n }\n };\n return RtlCharacters;\n}());\nexport { RtlCharacters };\n","import { PdfString } from './../../primitives/pdf-string';\nimport { ArabicShapeRenderer } from './rtl/rtl-text-shape';\nimport { PdfTextDirection } from './../enum';\nimport { Bidi } from './rtl/rtl-bidirectional';\n/**\n * `Metrics` of the font.\n * @private\n */\nvar RtlRenderer = /** @class */ (function () {\n function RtlRenderer() {\n //region Constants\n /// Open bracket symbol.\n /// \n this.openBracket = '(';\n /// \n /// Close bracket symbol.\n /// \n this.closeBracket = ')';\n //#endregion\n }\n //#region Constructors\n /// \n /// Initializes a new instance of the class.\n /// \n // public constructor() {\n // }\n //#region Public Methods\n /// \n /// Layouts text. Changes blocks position in the RTL text.\n /// Ligates the text if needed.\n /// \n /// Line of the text.\n /// Font to be used for string printing.\n /// Font alignment.\n /// Indicates whether Word Spacing used or not.\n /// Layout string.\n RtlRenderer.prototype.layout = function (line, font, rtl, wordSpace, format) {\n if (line == null) {\n throw new Error('ArgumentNullException : line');\n }\n if (font == null) {\n throw new Error('ArgumentNullException : font');\n }\n var result = [];\n if (font.Unicode) {\n result = this.customLayout(line, rtl, format, font, wordSpace);\n }\n else {\n result = [];\n result[0] = line;\n }\n return result;\n };\n /// \n /// Layouts a string and splits it by the words and using correct lay outing.\n /// \n /// Text line.\n /// Font object.\n /// Indicates whether RTL should be applied.\n /// Indicates whether word spacing is used.\n /// Array of words if converted, null otherwise.\n RtlRenderer.prototype.splitLayout = function (line, font, rtl, wordSpace, format) {\n if (line == null) {\n throw new Error('ArgumentNullException : line');\n }\n if (font == null) {\n throw new Error('ArgumentNullException : font');\n }\n var words = [];\n var system = false;\n if (!system || words == null) {\n words = this.customSplitLayout(line, font, rtl, wordSpace, format);\n }\n return words;\n };\n //#endregion\n //#region Implementation\n // private isEnglish( word : string) : boolean\n // {\n // let c : string = (word.length > 0) ? word[0] : '';\n // return (c >= '0' && c < 'ÿ');\n // }\n // private keepOrder( words : string, startIndex : number, count: number, result : string[], resultIndex : number) : void\n // {\n // for (let i : number = 0, ri = resultIndex - count + 1; i < count; ++i, ++ri) {\n // result[ri] = words[i + startIndex];\n // }\n // }\n /// \n /// Uses system API to layout the text.\n /// \n /// Line of the text to be layouted.\n /// Font which is used for text printing.\n /// Indicates whether we use RTL or RTL lay outing of the text container.\n /// Layout string.\n /* tslint:disable-next-line:max-line-length */\n RtlRenderer.prototype.getGlyphIndex = function (line, font, rtl, /*out*/ glyphs, custom) {\n var success = true;\n var fail = false;\n if (line == null) {\n throw new Error('ArgumentNullException : line');\n }\n if (font == null) {\n throw new Error('ArgumentNullException : font');\n }\n glyphs = null;\n if (line.length === 0) {\n return { success: fail, glyphs: glyphs };\n }\n var renderer = new ArabicShapeRenderer();\n var text = renderer.shape(line, 0);\n var internalFont = font.fontInternal;\n var ttfReader = internalFont.ttfReader;\n glyphs = new Uint16Array(text.length);\n var i = 0;\n for (var k = 0, len = text.length; k < len; k++) {\n var ch = text[k];\n var glyphInfo = ttfReader.getGlyph(ch);\n if (glyphInfo !== null && typeof glyphInfo !== 'undefined') {\n glyphs[i++] = (glyphInfo).index;\n }\n }\n return { success: success, glyphs: glyphs };\n };\n /* tslint:disable-next-line:max-line-length */\n RtlRenderer.prototype.customLayout = function (line, rtl, format, font, wordSpace) {\n if (wordSpace === null || typeof wordSpace === 'undefined') {\n if (line == null) {\n throw new Error('ArgumentNullException : line');\n }\n var result = null;\n //bidirectional order.\n if (format !== null && typeof format !== 'undefined' && format.textDirection !== PdfTextDirection.None) {\n var bidi = new Bidi();\n result = bidi.getLogicalToVisualString(line, rtl);\n }\n return result;\n }\n else {\n if (line == null) {\n throw new Error('ArgumentNullException : line');\n }\n if (font == null) {\n throw new Error('ArgumentNullException : font');\n }\n var layouted = null;\n if (format !== null && typeof format !== 'undefined' && format.textDirection !== PdfTextDirection.None) {\n var renderer = new ArabicShapeRenderer();\n var txt = renderer.shape(line, 0);\n layouted = this.customLayout(txt, rtl, format);\n }\n // else {\n // layouted = this.customLayout(line, rtl, format);\n // }\n // We have unicode font, but from the file. \n var result = [];\n // Split the text by words if word spacing is not default.\n if (wordSpace) {\n var words = layouted.split('');\n var count = words.length;\n for (var i = 0; i < count; i++) {\n words[i] = this.addChars(font, words[i]);\n }\n result = words;\n }\n else {\n result = [];\n result[0] = this.addChars(font, layouted);\n }\n return result;\n }\n };\n /// \n /// Add information about used glyphs to the font.\n /// \n /// Font used for text rendering.\n /// Array of used glyphs.\n /// String in the form to be written to the file.\n RtlRenderer.prototype.addChars = function (font, glyphs) {\n var line = glyphs;\n if (font == null) {\n throw new Error('ArgumentNullException : font');\n }\n if (line == null) {\n throw new Error('ArgumentNullException : line');\n }\n var text = line;\n var internalFont = font.fontInternal;\n var ttfReader = internalFont.ttfReader;\n font.setSymbols(text);\n // Reconvert string according to unicode standard.\n text = ttfReader.convertString(text);\n var bytes = PdfString.toUnicodeArray(text, false);\n text = PdfString.byteToString(bytes);\n return text;\n // else {\n // if (font == null) {\n // throw new Error('ArgumentNullException : font');\n // }\n // if (glyphs == null) {\n // throw new Error('ArgumentNullException : glyphs');\n // }\n // // Mark the chars as used.\n // let text : string = '';\n // font.setSymbols(glyphs);\n // // Create string from the glyphs.\n // \n // let chars : string[] = [];\n // for (let i : number = 0; i < glyphs.length; i++) {\n // chars[i] = glyphs[i].toString();\n // }\n // for (let j : number = 0 ; j < chars.length; j++) {\n // text = text + chars[j];\n // }\n // let bytes : number[] = PdfString.toUnicodeArray(text, false);\n // text = PdfString.byteToString(bytes);\n // return text;\n // }\n };\n /// \n /// Layouts a string and splits it by the words by using custom lay outing.\n /// \n /// Text line.\n /// Font object.\n /// Indicates whether RTL should be applied.\n /// Indicates whether word spacing is used.\n /// Array of words if converted, null otherwise.\n /* tslint:disable-next-line:max-line-length */\n RtlRenderer.prototype.customSplitLayout = function (line, font, rtl, wordSpace, format) {\n if (line == null) {\n throw new Error('ArgumentNullException : line');\n }\n if (font == null) {\n throw new Error('ArgumentNullException : font');\n }\n var reversedLine = this.customLayout(line, rtl, format);\n var words = reversedLine.split('');\n return words;\n };\n return RtlRenderer;\n}());\nexport { RtlRenderer };\n","/**\n * `PdfBoolean` class is used to perform boolean related primitive operations.\n * @private\n */\nvar PdfBoolean = /** @class */ (function () {\n //constructor\n /**\n * Initializes a new instance of the `PdfBoolean` class.\n * @private\n */\n function PdfBoolean(value) {\n /**\n * Internal variable to store the `position`.\n * @default -1\n * @private\n */\n this.currentPosition = -1;\n this.value = value;\n }\n Object.defineProperty(PdfBoolean.prototype, \"status\", {\n //Properties\n /**\n * Gets or sets the `Status` of the specified object.\n * @private\n */\n get: function () {\n return this.objectStatus;\n },\n set: function (value) {\n this.objectStatus = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfBoolean.prototype, \"isSaving\", {\n /**\n * Gets or sets a value indicating whether this document `is saving` or not.\n * @private\n */\n get: function () {\n return this.saving;\n },\n set: function (value) {\n this.saving = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfBoolean.prototype, \"objectCollectionIndex\", {\n /**\n * Gets or sets the `index` value of the specified object.\n * @private\n */\n get: function () {\n return this.index;\n },\n set: function (value) {\n this.index = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfBoolean.prototype, \"position\", {\n /**\n * Gets or sets the `position` of the object.\n * @private\n */\n get: function () {\n return this.currentPosition;\n },\n set: function (value) {\n this.currentPosition = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfBoolean.prototype, \"clonedObject\", {\n /**\n * Returns `cloned object`.\n * @private\n */\n get: function () {\n var rValue = null;\n return rValue;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * `Saves` the object using the specified writer.\n * @private\n */\n PdfBoolean.prototype.save = function (writer) {\n writer.write(this.boolToStr(this.value));\n };\n /**\n * Creates a `copy of PdfBoolean`.\n * @private\n */\n PdfBoolean.prototype.clone = function (crossTable) {\n var newNumber = new PdfBoolean(this.value);\n return newNumber;\n };\n // Implementation\n /**\n * Converts `boolean to string` - 0/1 'true'/'false'.\n * @private\n */\n PdfBoolean.prototype.boolToStr = function (value) {\n return value ? 'true' : 'false';\n };\n return PdfBoolean;\n}());\nexport { PdfBoolean };\n","/**\n * ImageDecoder class\n */\nimport { ByteArray } from './byte-array';\nimport { PdfStream } from './../../primitives/pdf-stream';\nimport { DictionaryProperties } from './../../input-output/pdf-dictionary-properties';\nimport { PdfName } from './../../primitives/pdf-name';\nimport { PdfNumber } from './../../primitives/pdf-number';\nimport { PdfBoolean } from './../../primitives/pdf-boolean';\nimport { PdfDictionary } from './../../primitives/pdf-dictionary';\n/**\n * Specifies the image `format`.\n * @private\n */\nexport var ImageFormat;\n(function (ImageFormat) {\n /**\n * Specifies the type of `Unknown`.\n * @hidden\n * @private\n */\n ImageFormat[ImageFormat[\"Unknown\"] = 0] = \"Unknown\";\n /**\n * Specifies the type of `Bmp`.\n * @hidden\n * @private\n */\n ImageFormat[ImageFormat[\"Bmp\"] = 1] = \"Bmp\";\n /**\n * Specifies the type of `Emf`.\n * @hidden\n * @private\n */\n ImageFormat[ImageFormat[\"Emf\"] = 2] = \"Emf\";\n /**\n * Specifies the type of `Gif`.\n * @hidden\n * @private\n */\n ImageFormat[ImageFormat[\"Gif\"] = 3] = \"Gif\";\n /**\n * Specifies the type of `Jpeg`.\n * @hidden\n * @private\n */\n ImageFormat[ImageFormat[\"Jpeg\"] = 4] = \"Jpeg\";\n /**\n * Specifies the type of `Png`.\n * @hidden\n * @private\n */\n ImageFormat[ImageFormat[\"Png\"] = 5] = \"Png\";\n /**\n * Specifies the type of `Wmf`.\n * @hidden\n * @private\n */\n ImageFormat[ImageFormat[\"Wmf\"] = 6] = \"Wmf\";\n /**\n * Specifies the type of `Icon`.\n * @hidden\n * @private\n */\n ImageFormat[ImageFormat[\"Icon\"] = 7] = \"Icon\";\n})(ImageFormat || (ImageFormat = {}));\n/**\n * `Decode the image stream`.\n * @private\n */\nvar ImageDecoder = /** @class */ (function () {\n /**\n * Initialize the new instance for `image-decoder` class.\n * @private\n */\n function ImageDecoder(stream) {\n /**\n * Start of file markers.\n * @hidden\n * @private\n */\n this.sof1Marker = 0x00C1;\n this.sof2Marker = 0x00C2;\n this.sof3Marker = 0x00C3;\n this.sof5Marker = 0x00C5;\n this.sof6Marker = 0x00C6;\n this.sof7Marker = 0x00C7;\n this.sof9Marker = 0x00C9;\n this.sof10Marker = 0x00CA;\n this.sof11Marker = 0x00CB;\n this.sof13Marker = 0x00CD;\n this.sof14Marker = 0x00CE;\n this.sof15Marker = 0x00CF;\n /**\n * Specifies `format` of image.\n * @hidden\n * @private\n */\n this.mFormat = ImageFormat.Unknown;\n /**\n * `Bits per component`.\n * @default 8\n * @hidden\n * @private\n */\n this.mbitsPerComponent = 8;\n /**\n * Internal variable for accessing fields from `DictionryProperties` class.\n * @hidden\n * @private\n */\n this.dictionaryProperties = new DictionaryProperties();\n this.mStream = stream;\n this.initialize();\n }\n Object.defineProperty(ImageDecoder.prototype, \"height\", {\n /**\n * Gets the `height` of image.\n * @hidden\n * @private\n */\n get: function () {\n return this.mHeight;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ImageDecoder.prototype, \"width\", {\n /**\n * Gets the `width` of image.\n * @hidden\n * @private\n */\n get: function () {\n return this.mWidth;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ImageDecoder.prototype, \"bitsPerComponent\", {\n /**\n * Gets `bits per component`.\n * @hidden\n * @private\n */\n get: function () {\n return this.mbitsPerComponent;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ImageDecoder.prototype, \"size\", {\n /**\n * Gets the `size` of an image data.\n * @hidden\n * @private\n */\n get: function () {\n return this.mImageData.count;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ImageDecoder.prototype, \"imageData\", {\n /**\n * Gets the value of an `image data`.\n * @hidden\n * @private\n */\n get: function () {\n return this.mImageData;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ImageDecoder.prototype, \"imageDataAsNumberArray\", {\n /**\n * Gets the value of an `image data as number array`.\n * @hidden\n * @private\n */\n get: function () {\n return this.mImageData.internalBuffer.buffer;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * `Initialize` image data and image stream.\n * @hidden\n * @private\n */\n ImageDecoder.prototype.initialize = function () {\n if (this.mFormat === ImageFormat.Unknown && this.checkIfJpeg()) {\n this.mFormat = ImageFormat.Jpeg;\n this.parseJpegImage();\n }\n else {\n throw new TypeError('Only the JPEG format is supported');\n }\n this.reset();\n this.mImageData = new ByteArray(this.mStream.count);\n this.mStream.read(this.mImageData, 0, this.mImageData.count);\n };\n /**\n * `Reset` stream position into 0.\n * @hidden\n * @private\n */\n ImageDecoder.prototype.reset = function () {\n this.mStream.position = 0;\n };\n /**\n * `Parse` Jpeg image.\n * @hidden\n * @private\n */\n ImageDecoder.prototype.parseJpegImage = function () {\n this.reset();\n var imgData = new ByteArray(this.mStream.count);\n this.mStream.read(imgData, 0, imgData.count);\n var i = 4;\n var isLengthExceed = false;\n /* tslint:disable */\n var length = imgData.getBuffer(i) * 256 + imgData.getBuffer(i + 1);\n while (i < imgData.count) {\n i += length;\n if (i < imgData.count) {\n if (imgData.getBuffer(i + 1) === 192) {\n this.mHeight = imgData.getBuffer(i + 5) * 256 + imgData.getBuffer(i + 6);\n this.mWidth = imgData.getBuffer(i + 7) * 256 + imgData.getBuffer(i + 8);\n return;\n }\n else {\n i += 2;\n length = imgData.getBuffer(i) * 256 + imgData.getBuffer(i + 1);\n }\n }\n else {\n isLengthExceed = true;\n break;\n }\n }\n if (isLengthExceed) {\n this.mStream.position = 0;\n this.skip(this.mStream, 2);\n this.readExceededJPGImage(this.mStream);\n }\n /* tslint:enable */\n };\n Object.defineProperty(ImageDecoder.prototype, \"format\", {\n /**\n * Gets the image `format`.\n * @private\n * @hidden\n */\n get: function () {\n return this.mFormat;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * `Checks if JPG`.\n * @private\n * @hidden\n */\n ImageDecoder.prototype.checkIfJpeg = function () {\n this.reset();\n for (var i = 0; i < ImageDecoder.mJpegHeader.length; i++) {\n if (ImageDecoder.mJpegHeader[i] !== this.mStream.readByte(i)) {\n return false;\n }\n this.mStream.position++;\n }\n return true;\n };\n /**\n * Return image `dictionary`.\n * @hidden\n * @private\n */\n ImageDecoder.prototype.getImageDictionary = function () {\n if (this.mFormat === ImageFormat.Jpeg) {\n var tempArrayBuffer = this.imageData.internalBuffer.length;\n this.imageStream = new PdfStream();\n this.imageStream.isImage = true;\n var tempString = '';\n var decodedString = '';\n for (var i = 0; i < this.imageDataAsNumberArray.byteLength; i++) {\n tempString += String.fromCharCode(null, this.mStream.readByte(i));\n }\n for (var i = 0; i < tempString.length; i++) {\n if (i % 2 !== 0) {\n decodedString += tempString[i];\n }\n }\n this.imageStream.data = [decodedString];\n this.imageStream.compress = false;\n this.imageStream.items.setValue(this.dictionaryProperties.type, new PdfName(this.dictionaryProperties.xObject));\n this.imageStream.items.setValue(this.dictionaryProperties.subtype, new PdfName(this.dictionaryProperties.image));\n this.imageStream.items.setValue(this.dictionaryProperties.width, new PdfNumber(this.width));\n this.imageStream.items.setValue(this.dictionaryProperties.height, new PdfNumber(this.height));\n this.imageStream.items.setValue(this.dictionaryProperties.bitsPerComponent, new PdfNumber(this.bitsPerComponent));\n this.imageStream.items.setValue(this.dictionaryProperties.filter, new PdfName(this.dictionaryProperties.dctdecode));\n this.imageStream.items.setValue(this.dictionaryProperties.colorSpace, new PdfName(this.getColorSpace()));\n this.imageStream.items.setValue(this.dictionaryProperties.decodeParms, this.getDecodeParams());\n return this.imageStream;\n }\n else {\n return this.imageStream;\n }\n };\n /**\n * Return `colorSpace` of an image.\n * @hidden\n * @private\n */\n ImageDecoder.prototype.getColorSpace = function () {\n return this.dictionaryProperties.deviceRgb;\n };\n /**\n * Return `decode parameters` of an image.\n * @hidden\n * @private\n */\n ImageDecoder.prototype.getDecodeParams = function () {\n var decodeParams = new PdfDictionary();\n decodeParams.items.setValue(this.dictionaryProperties.columns, new PdfNumber(this.width));\n decodeParams.items.setValue(this.dictionaryProperties.blackIs1, new PdfBoolean(true));\n decodeParams.items.setValue(this.dictionaryProperties.k, new PdfNumber(-1));\n decodeParams.items.setValue(this.dictionaryProperties.predictor, new PdfNumber(15));\n decodeParams.items.setValue(this.dictionaryProperties.bitsPerComponent, new PdfNumber(this.bitsPerComponent));\n return decodeParams;\n };\n /**\n * 'readExceededJPGImage' stream\n * @hidden\n * @private\n */\n ImageDecoder.prototype.readExceededJPGImage = function (stream) {\n this.mStream = stream;\n var isContinueReading = true;\n while (isContinueReading) {\n var marker = this.getMarker(stream);\n switch (marker) {\n case this.sof1Marker:\n case this.sof2Marker:\n case this.sof3Marker:\n case this.sof5Marker:\n case this.sof6Marker:\n case this.sof7Marker:\n case this.sof9Marker:\n case this.sof10Marker:\n case this.sof11Marker:\n case this.sof13Marker:\n case this.sof14Marker:\n case this.sof15Marker:\n stream.position += 3;\n this.mHeight = this.mStream.readNextTwoBytes(stream);\n this.mWidth = this.mStream.readNextTwoBytes(stream);\n isContinueReading = false;\n break;\n default:\n this.skipStream(stream);\n break;\n }\n }\n };\n /**\n * 'skip' stream\n * @hidden\n * @private\n */\n ImageDecoder.prototype.skip = function (stream, noOfBytes) {\n this.mStream = stream;\n var temp = new ByteArray(noOfBytes);\n this.mStream.read(temp, 0, temp.count);\n };\n /**\n * 'getMarker' stream\n * @hidden\n * @private\n */\n ImageDecoder.prototype.getMarker = function (stream) {\n var skippedByte = 0;\n var marker = 32;\n marker = stream.readByte(this.mStream.position);\n stream.position++;\n while (marker !== 255) {\n skippedByte++;\n marker = stream.readByte(this.mStream.position);\n stream.position++;\n }\n do {\n marker = stream.readByte(this.mStream.position);\n stream.position++;\n } while (marker === 255);\n return marker;\n };\n /**\n * 'skipStream' stream\n * @hidden\n * @private\n */\n ImageDecoder.prototype.skipStream = function (stream) {\n var markerLength = this.mStream.readNextTwoBytes(stream) - 2;\n if (markerLength > 0) {\n stream.position += markerLength;\n }\n };\n /**\n * Number array for `png header`.\n * @hidden\n * @private\n */\n ImageDecoder.mPngHeader = [137, 80, 78, 71, 13, 10, 26, 10];\n /**\n * Number Array for `jpeg header`.\n * @hidden\n * @private\n */\n ImageDecoder.mJpegHeader = [255, 216];\n /**\n * Number array for `gif header`.\n * @hidden\n * @private\n */\n ImageDecoder.GIF_HEADER = 'G,I,F,8';\n /**\n * Number array for `bmp header.`\n * @hidden\n * @private\n */\n ImageDecoder.BMP_HEADER = 'B,M';\n return ImageDecoder;\n}());\nexport { ImageDecoder };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { PdfColorSpace } from './../enum';\nimport { PdfColor } from './../pdf-color';\nimport { PdfBrush } from './pdf-brush';\nimport { PdfDictionary } from '../../primitives/pdf-dictionary';\nimport { DictionaryProperties } from './../../input-output/pdf-dictionary-properties';\nimport { PdfBoolean } from './../../primitives/pdf-boolean';\nimport { PdfArray } from './../../primitives/pdf-array';\nimport { PdfName } from '../../primitives/pdf-name';\nimport { PdfNumber } from '../../primitives/pdf-number';\nimport { PdfReferenceHolder } from '../../primitives/pdf-reference';\n/**\n * `PdfGradientBrush` class provides objects used to fill the interiors of graphical shapes such as rectangles,\n * ellipses, pies, polygons, and paths.\n * @private\n */\nvar PdfGradientBrush = /** @class */ (function (_super) {\n __extends(PdfGradientBrush, _super);\n //Constructor\n /**\n * Initializes a new instance of the `PdfGradientBrush` class.\n * @public\n */\n /* tslint:disable-next-line:max-line-length */\n function PdfGradientBrush(shading) {\n var _this = _super.call(this) || this;\n // Fields\n /**\n * Local variable to store the background color.\n * @private\n */\n _this.mbackground = new PdfColor(255, 255, 255);\n /**\n * Local variable to store the stroking color.\n * @private\n */\n _this.mbStroking = false;\n /**\n * Local variable to store the function.\n * @private\n */\n _this.mfunction = null;\n /**\n * Local variable to store the DictionaryProperties.\n * @private\n */\n _this.dictionaryProperties = new DictionaryProperties();\n _this.mpatternDictionary = new PdfDictionary();\n _this.mpatternDictionary.items.setValue(_this.dictionaryProperties.type, new PdfName(_this.dictionaryProperties.pattern));\n _this.mpatternDictionary.items.setValue(_this.dictionaryProperties.patternType, new PdfNumber(2));\n _this.shading = shading;\n _this.colorSpace = PdfColorSpace.Rgb;\n return _this;\n }\n Object.defineProperty(PdfGradientBrush.prototype, \"background\", {\n //Properties\n /**\n * Gets or sets the background color of the brush.\n * @public\n */\n get: function () {\n return this.mbackground;\n },\n set: function (value) {\n this.mbackground = value;\n var sh = this.shading;\n if (value.isEmpty) {\n sh.remove(this.dictionaryProperties.background);\n }\n else {\n sh.items.setValue(this.dictionaryProperties.background, value.toArray(this.colorSpace));\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGradientBrush.prototype, \"antiAlias\", {\n /**\n * Gets or sets a value indicating whether use anti aliasing algorithm.\n * @public\n */\n get: function () {\n var sh = this.shading;\n var aa = (sh.items.getValue(this.dictionaryProperties.antiAlias));\n return aa.value;\n },\n set: function (value) {\n var sh = this.shading;\n var aa = (sh.items.getValue(this.dictionaryProperties.antiAlias));\n if ((aa == null && typeof aa === 'undefined')) {\n aa = new PdfBoolean(value);\n sh.items.setValue(this.dictionaryProperties.antiAlias, aa);\n }\n else {\n aa.value = value;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGradientBrush.prototype, \"function\", {\n /**\n * Gets or sets the function of the brush.\n * @protected\n */\n get: function () {\n return this.mfunction;\n },\n set: function (value) {\n this.mfunction = value;\n if (value != null && typeof value !== 'undefined') {\n this.shading.items.setValue(this.dictionaryProperties.function, new PdfReferenceHolder(this.mfunction));\n }\n else {\n this.shading.remove(this.dictionaryProperties.function);\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGradientBrush.prototype, \"bBox\", {\n /**\n * Gets or sets the boundary box of the brush.\n * @protected\n */\n get: function () {\n var sh = this.shading;\n var box = (sh.items.getValue(this.dictionaryProperties.bBox));\n return box;\n },\n set: function (value) {\n var sh = this.shading;\n if (value == null && typeof value === 'undefined') {\n sh.remove(this.dictionaryProperties.bBox);\n }\n else {\n sh.items.setValue(this.dictionaryProperties.bBox, value);\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGradientBrush.prototype, \"colorSpace\", {\n /**\n * Gets or sets the color space of the brush.\n * @public\n */\n get: function () {\n return this.mcolorSpace;\n },\n set: function (value) {\n var colorSpace = this.shading.items.getValue(this.dictionaryProperties.colorSpace);\n if ((value !== this.mcolorSpace) || (colorSpace == null)) {\n this.mcolorSpace = value;\n var csValue = this.colorSpaceToDeviceName(value);\n this.shading.items.setValue(this.dictionaryProperties.colorSpace, new PdfName(csValue));\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGradientBrush.prototype, \"stroking\", {\n /**\n * Gets or sets a value indicating whether this PdfGradientBrush is stroking.\n * @public\n */\n get: function () {\n return this.mbStroking;\n },\n set: function (value) {\n this.mbStroking = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGradientBrush.prototype, \"patternDictionary\", {\n /**\n * Gets the pattern dictionary.\n * @protected\n */\n get: function () {\n if (this.mpatternDictionary == null) {\n this.mpatternDictionary = new PdfDictionary();\n }\n return this.mpatternDictionary;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGradientBrush.prototype, \"shading\", {\n /**\n * Gets or sets the shading dictionary.\n * @protected\n */\n get: function () {\n return this.mshading;\n },\n set: function (value) {\n if (value == null) {\n throw new Error('ArgumentNullException : Shading');\n }\n if (value !== this.mshading) {\n this.mshading = value;\n this.patternDictionary.items.setValue(this.dictionaryProperties.shading, new PdfReferenceHolder(this.mshading));\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGradientBrush.prototype, \"matrix\", {\n /**\n * Gets or sets the transformation matrix.\n * @public\n */\n get: function () {\n return this.mmatrix;\n },\n set: function (value) {\n if (value == null) {\n throw new Error('ArgumentNullException : Matrix');\n }\n if (value !== this.mmatrix) {\n this.mmatrix = value.clone();\n var m = new PdfArray(this.mmatrix.matrix.elements);\n this.mpatternDictionary.items.setValue(this.dictionaryProperties.matrix, m);\n }\n },\n enumerable: true,\n configurable: true\n });\n //Overrides\n /**\n * Monitors the changes of the brush and modify PDF state respectfully.\n * @param brush The brush.\n * @param streamWriter The stream writer.\n * @param getResources The get resources delegate.\n * @param saveChanges if set to true the changes should be saved anyway.\n * @param currentColorSpace The current color space.\n */\n /* tslint:disable-next-line:max-line-length */\n PdfGradientBrush.prototype.monitorChanges = function (brush, streamWriter, getResources, saveChanges, currentColorSpace) {\n var diff = false;\n if (brush instanceof PdfGradientBrush) {\n if ((this.colorSpace !== currentColorSpace)) {\n this.colorSpace = currentColorSpace;\n this.resetFunction();\n }\n // Set the /Pattern colour space.\n streamWriter.setColorSpace('Pattern', this.mbStroking);\n // Set the pattern for non-stroking operations.\n var resources = getResources.getResources();\n var name_1 = resources.getName(this);\n streamWriter.setColourWithPattern(null, name_1, this.mbStroking);\n diff = true;\n }\n return diff;\n };\n /**\n * Resets the changes, which were made by the brush.\n * In other words resets the state to the initial one.\n * @param streamWriter The stream writer.\n */\n PdfGradientBrush.prototype.resetChanges = function (streamWriter) {\n // Unable reset.\n };\n //Implementation\n /**\n * Converts colorspace enum to a PDF name.\n * @param colorSpace The color space enum value.\n */\n PdfGradientBrush.prototype.colorSpaceToDeviceName = function (colorSpace) {\n var result;\n switch (colorSpace) {\n case PdfColorSpace.Rgb:\n result = 'DeviceRGB';\n break;\n }\n return result;\n };\n /**\n * Resets the pattern dictionary.\n * @param dictionary A new pattern dictionary.\n */\n PdfGradientBrush.prototype.resetPatternDictionary = function (dictionary) {\n this.mpatternDictionary = dictionary;\n };\n /**\n * Clones the anti aliasing value.\n * @param brush The brush.\n */\n PdfGradientBrush.prototype.cloneAntiAliasingValue = function (brush) {\n if ((brush == null)) {\n throw new Error('ArgumentNullException : brush');\n }\n var sh = this.shading;\n var aa = (sh.items.getValue(this.dictionaryProperties.antiAlias));\n if ((aa != null)) {\n brush.shading.items.setValue(this.dictionaryProperties.antiAlias, new PdfBoolean(aa.value));\n }\n };\n /**\n * Clones the background value.\n * @param brush The brush.\n */\n PdfGradientBrush.prototype.cloneBackgroundValue = function (brush) {\n var background = this.background;\n if (!background.isEmpty) {\n brush.background = background;\n }\n };\n Object.defineProperty(PdfGradientBrush.prototype, \"element\", {\n /* tslint:enable */\n // IPdfWrapper Members\n /**\n * Gets the `element`.\n * @private\n */\n get: function () {\n return this.patternDictionary;\n },\n enumerable: true,\n configurable: true\n });\n return PdfGradientBrush;\n}(PdfBrush));\nexport { PdfGradientBrush };\n","/**\n * PdfTemplate.ts class for EJ2-PDF\n */\nimport { PdfStream } from './../../primitives/pdf-stream';\nimport { DictionaryProperties } from './../../input-output/pdf-dictionary-properties';\nimport { PdfArray } from './../../primitives/pdf-array';\nimport { PdfGraphics } from './../pdf-graphics';\nimport { PdfResources } from './../pdf-resources';\nimport { PdfName } from './../../primitives/pdf-name';\nimport { PointF, SizeF, RectangleF } from './../../drawing/pdf-drawing';\nimport { GetResourceEventHandler } from './../pdf-graphics';\n/**\n * Represents `Pdf Template` object.\n * @private\n */\nvar PdfTemplate = /** @class */ (function () {\n function PdfTemplate(arg1, arg2) {\n /**\n * Initialize an instance for `DictionaryProperties` class.\n * @private\n * @hidden\n */\n this.dictionaryProperties = new DictionaryProperties();\n /**\n * Checks whether the transformation 'is performed'.\n * @default true\n * @private\n */\n this.writeTransformation = true;\n if (typeof arg1 === 'undefined') {\n //\n }\n else if (arg1 instanceof SizeF && typeof arg2 === 'undefined') {\n this.content = new PdfStream();\n var tempSize = new SizeF(arg1.width, arg1.height);\n this.setSize(tempSize);\n this.initialize();\n }\n else {\n this.content = new PdfStream();\n this.setSize(new SizeF(arg1, arg2));\n this.initialize();\n }\n }\n Object.defineProperty(PdfTemplate.prototype, \"size\", {\n //Properties\n /**\n * Gets the size of the 'PdfTemplate'.\n */\n get: function () {\n return this.templateSize;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfTemplate.prototype, \"width\", {\n /**\n * Gets the width of the 'PdfTemplate'.\n */\n get: function () {\n return this.size.width;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfTemplate.prototype, \"height\", {\n /**\n * Gets the height of the 'PdfTemplate'.\n */\n get: function () {\n return this.size.height;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfTemplate.prototype, \"graphics\", {\n /**\n * Gets the `graphics` of the 'PdfTemplate'.\n */\n get: function () {\n if (this.pdfGraphics == null || typeof this.pdfGraphics === 'undefined') {\n var gr = new GetResourceEventHandler(this);\n var g = new PdfGraphics(this.size, gr, this.content);\n this.pdfGraphics = g;\n // if(this.writeTransformation) {\n // Transform co-ordinates to Top/Left.\n this.pdfGraphics.initializeCoordinates();\n // }\n }\n return this.pdfGraphics;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Gets the resources and modifies the template dictionary.\n * @private\n */\n PdfTemplate.prototype.getResources = function () {\n if (this.resources == null) {\n this.resources = new PdfResources();\n this.content.items.setValue(this.dictionaryProperties.resources, this.resources);\n }\n return this.resources;\n };\n // Public methods\n /**\n * `Initialize` the type and subtype of the template.\n * @private\n */\n PdfTemplate.prototype.initialize = function () {\n this.addType();\n this.addSubType();\n };\n /**\n * `Adds type key`.\n * @private\n */\n PdfTemplate.prototype.addType = function () {\n var value = new PdfName(this.dictionaryProperties.xObject);\n this.content.items.setValue(this.dictionaryProperties.type, value);\n };\n /**\n * `Adds SubType key`.\n * @private\n */\n PdfTemplate.prototype.addSubType = function () {\n var value = new PdfName(this.dictionaryProperties.form);\n this.content.items.setValue(this.dictionaryProperties.subtype, value);\n };\n PdfTemplate.prototype.reset = function (size) {\n if (typeof size === 'undefined') {\n if (this.resources != null) {\n this.resources = null;\n this.content.remove(this.dictionaryProperties.resources);\n }\n if (this.graphics != null) {\n this.graphics.reset(this.size);\n }\n }\n else {\n this.setSize(size);\n this.reset();\n }\n };\n /**\n * `Set the size` of the 'PdfTemplate'.\n * @private\n */\n PdfTemplate.prototype.setSize = function (size) {\n var rect = new RectangleF(new PointF(0, 0), size);\n var val = PdfArray.fromRectangle(rect);\n this.content.items.setValue(this.dictionaryProperties.bBox, val);\n this.templateSize = size;\n };\n Object.defineProperty(PdfTemplate.prototype, \"element\", {\n // /**\n // * Returns the value of current graphics.\n // * @private\n // */\n // public GetGraphics(g : PdfGraphics) : PdfGraphics {\n // if (this.graphics == null || typeof this.graphics === 'undefined') {\n // this.graphics = g;\n // this.graphics.Size = this.Size;\n // this.graphics.StreamWriter = new PdfStreamWriter(this.content)\n // this.graphics.Initialize();\n // if(this.writeTransformation) {\n // this.graphics.InitializeCoordinates();\n // }\n // }\n // return this.graphics;\n // }\n // IPdfWrapper Members\n /**\n * Gets the `content stream` of 'PdfTemplate' class.\n * @private\n */\n get: function () {\n return this.content;\n },\n enumerable: true,\n configurable: true\n });\n return PdfTemplate;\n}());\nexport { PdfTemplate };\n","/**\n * public Enum for `PdfBorderOverlapStyle`.\n * @private\n */\nexport var PdfBorderOverlapStyle;\n(function (PdfBorderOverlapStyle) {\n /**\n * Specifies the type of `Overlap`.\n * @private\n */\n PdfBorderOverlapStyle[PdfBorderOverlapStyle[\"Overlap\"] = 0] = \"Overlap\";\n /**\n * Specifies the type of `Inside`.\n * @private\n */\n PdfBorderOverlapStyle[PdfBorderOverlapStyle[\"Inside\"] = 1] = \"Inside\";\n})(PdfBorderOverlapStyle || (PdfBorderOverlapStyle = {}));\n","/**\n * Used to perform `convertion between pixels and points`.\n * @private\n */\nvar PdfUnitConverter = /** @class */ (function () {\n //constructors\n /**\n * Initializes a new instance of the `UnitConvertor` class with DPI value.\n * @private\n */\n function PdfUnitConverter(dpi) {\n this.updateProportionsHelper(dpi);\n }\n /**\n * `Converts` the value, from one graphics unit to another graphics unit.\n * @private\n */\n PdfUnitConverter.prototype.convertUnits = function (value, from, to) {\n return this.convertFromPixels(this.convertToPixels(value, from), to);\n };\n /**\n * Converts the value `to pixel` from specified graphics unit.\n * @private\n */\n PdfUnitConverter.prototype.convertToPixels = function (value, from) {\n var index = from;\n var result = (value * this.proportions[index]);\n return result;\n };\n /**\n * Converts value, to specified graphics unit `from Pixel`.\n * @private\n */\n PdfUnitConverter.prototype.convertFromPixels = function (value, to) {\n var index = to;\n var result = (value / this.proportions[index]);\n return result;\n };\n /**\n * `Update proportions` matrix according to Graphics settings.\n * @private\n */\n PdfUnitConverter.prototype.updateProportionsHelper = function (pixelPerInch) {\n this.proportions = [\n pixelPerInch / 2.54,\n pixelPerInch / 6.0,\n 1,\n pixelPerInch / 72.0,\n pixelPerInch,\n pixelPerInch / 300.0,\n pixelPerInch / 25.4 // Millimeter\n ];\n };\n //Fields\n /**\n * Indicates default `horizontal resolution`.\n * @default 96\n * @private\n */\n PdfUnitConverter.horizontalResolution = 96;\n /**\n * Indicates default `vertical resolution`.\n * @default 96\n * @private\n */\n PdfUnitConverter.verticalResolution = 96;\n return PdfUnitConverter;\n}());\nexport { PdfUnitConverter };\n","import { SizeF } from './../../drawing/pdf-drawing';\nimport { PdfGraphicsUnit } from './../enum';\nimport { PdfUnitConverter } from './../unit-convertor';\n/**\n * `PdfImage` class represents the base class for images and provides functionality for the 'PdfBitmap' class.\n * @private\n */\nvar PdfImage = /** @class */ (function () {\n function PdfImage() {\n }\n Object.defineProperty(PdfImage.prototype, \"width\", {\n /**\n * Gets and Sets the `width` of an image.\n * @private\n */\n get: function () {\n return this.imageWidth;\n },\n set: function (value) {\n this.imageWidth = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfImage.prototype, \"height\", {\n /**\n * Gets and Sets the `height` of an image.\n * @private\n */\n get: function () {\n return this.imageHeight;\n },\n set: function (value) {\n this.imageHeight = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfImage.prototype, \"size\", {\n /**\n * Gets or sets the size of the image.\n * @private\n */\n set: function (value) {\n this.width = value.width;\n this.height = value.height;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfImage.prototype, \"physicalDimension\", {\n /**\n * Gets the `physical dimension` of an image.\n * @private\n */\n get: function () {\n this.imagePhysicalDimension = this.getPointSize(this.width, this.height, this.horizontalResolution, this.verticalResolution);\n return new SizeF(this.width, this.height);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfImage.prototype, \"element\", {\n // /**\n // * Gets the `image stream as string`.\n // * @private\n // */\n // public static fromString(string : string) : PdfImage {\n // let image : PdfImage = new PdfBitmap(string);\n // return image;\n // }\n /**\n * Gets the `element` image stream.\n * @private\n */\n get: function () {\n return this.imageStream;\n },\n enumerable: true,\n configurable: true\n });\n PdfImage.prototype.getPointSize = function (width, height, horizontalResolution, verticalResolution) {\n if (typeof horizontalResolution === 'undefined') {\n var dpiX = PdfUnitConverter.horizontalResolution;\n var dpiY = PdfUnitConverter.verticalResolution;\n var size = this.getPointSize(width, height, dpiX, dpiY);\n return size;\n }\n else {\n var ucX = new PdfUnitConverter(horizontalResolution);\n var ucY = new PdfUnitConverter(verticalResolution);\n var ptWidth = ucX.convertUnits(width, PdfGraphicsUnit.Pixel, PdfGraphicsUnit.Point);\n var ptHeight = ucY.convertUnits(height, PdfGraphicsUnit.Pixel, PdfGraphicsUnit.Point);\n var size = new SizeF(ptWidth, ptHeight);\n return size;\n }\n };\n return PdfImage;\n}());\nexport { PdfImage };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * PdfBitmap.ts class for EJ2-PDF\n */\nimport { ImageDecoder } from './../../graphics/images/image-decoder';\nimport { ByteArray } from './../../graphics/images/byte-array';\nimport { DictionaryProperties } from './../../input-output/pdf-dictionary-properties';\nimport { PdfImage } from './pdf-image';\n/**\n * The 'PdfBitmap' contains methods and properties to handle the Bitmap images.\n * ```typescript\n * // create a new PDF document.\n * let document : PdfDocument = new PdfDocument();\n * // add a page to the document.\n * let page1 : PdfPage = document.pages.add();\n * // base64 string of an image\n * let imageString : string = '/9j/3+2w7em7HzY/KiijFw … 1OEYRUYrQ45yc5OUtz/9k=';\n * // load the image from the base64 string of original image.\n * let image : PdfBitmap = new PdfBitmap(imageString);\n * // draw the image\n * page1.graphics.drawImage(image, new RectangleF({x : 10, y : 10}, {width : 200, height : 200}));\n * // save the document.\n * document.save('output.pdf');\n * // destroy the document\n * document.destroy();\n * ```\n */\nvar PdfBitmap = /** @class */ (function (_super) {\n __extends(PdfBitmap, _super);\n /**\n * Create an instance for `PdfBitmap` class.\n * @param encodedString Base64 string of an image.\n * ```typescript\n * // create a new PDF document.\n * let document : PdfDocument = new PdfDocument();\n * // add a page to the document.\n * let page1 : PdfPage = document.pages.add();\n * // base64 string of an image\n * let imageString : string = '/9j/3+2w7em7HzY/KiijFw … 1OEYRUYrQ45yc5OUtz/9k=';\n * //\n * // load the image from the base64 string of original image.\n * let image : PdfBitmap = new PdfBitmap(imageString);\n * //\n * // draw the image\n * page1.graphics.drawImage(image, new RectangleF({x : 10, y : 10}, {width : 200, height : 200}));\n * // save the document.\n * document.save('output.pdf');\n * // destroy the document\n * document.destroy();\n * ```\n */\n function PdfBitmap(encodedString) {\n var _this = _super.call(this) || this;\n //Fields\n /**\n * Specifies the `status` of an image.\n * @default true.\n * @hidden\n * @private\n */\n _this.imageStatus = true;\n /**\n * Internal variable for accessing fields from `DictionryProperties` class.\n * @hidden\n * @private\n */\n _this.dictionaryProperties = new DictionaryProperties();\n _this.loadImage(encodedString);\n return _this;\n }\n /**\n * `Load image`.\n * @hidden\n * @private\n */\n PdfBitmap.prototype.loadImage = function (encodedString) {\n var task = this.initializeAsync(encodedString);\n };\n /**\n * `Initialize` image parameters.\n * @private\n */\n PdfBitmap.prototype.initializeAsync = function (encodedString) {\n var byteArray = new ByteArray(encodedString.length);\n byteArray.writeFromBase64String(encodedString);\n this.decoder = new ImageDecoder(byteArray);\n this.height = this.decoder.height;\n this.width = this.decoder.width;\n // FrameCount = BitmapImageDecoder.FrameCount;\n this.bitsPerComponent = this.decoder.bitsPerComponent;\n };\n /**\n * `Saves` the image into stream.\n * @private\n */\n PdfBitmap.prototype.save = function () {\n this.imageStatus = true;\n this.imageStream = this.decoder.getImageDictionary();\n };\n return PdfBitmap;\n}(PdfImage));\nexport { PdfBitmap };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * PdfResources.ts class for EJ2-PDF\n */\nimport { PdfDictionary } from './../primitives/pdf-dictionary';\nimport { TemporaryDictionary } from './../collections/object-object-pair/dictionary';\nimport { PdfName } from './../primitives/pdf-name';\nimport { PdfArray } from './../primitives/pdf-array';\nimport { PdfReferenceHolder } from './../primitives/pdf-reference';\nimport { PdfCrossTable } from './../input-output/pdf-cross-table';\nimport { PdfFont } from './fonts/pdf-font';\nimport { PdfTemplate } from './figures/pdf-template';\nimport { PdfBrush } from './brushes/pdf-brush';\nimport { PdfTransparency } from './pdf-transparency';\nimport { PdfBitmap } from './../graphics/images/pdf-bitmap';\nimport { PdfImage } from './../graphics/images/pdf-image';\nimport { PdfGradientBrush } from './brushes/pdf-gradient-brush';\nimport { PdfTilingBrush } from './brushes/pdf-tiling-brush';\n/**\n * `PdfResources` class used to set resource contents like font, image.\n * @private\n */\nvar PdfResources = /** @class */ (function (_super) {\n __extends(PdfResources, _super);\n function PdfResources(baseDictionary) {\n var _this = _super.call(this, baseDictionary) || this;\n /**\n * Dictionary for the `properties names`.\n * @private\n */\n _this.properties = new PdfDictionary();\n return _this;\n }\n Object.defineProperty(PdfResources.prototype, \"names\", {\n //Properties\n /**\n * Gets the `font names`.\n * @private\n */\n get: function () {\n return this.getNames();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfResources.prototype, \"document\", {\n /**\n * Get or set the `page document`.\n * @private\n */\n get: function () {\n return this.pdfDocument;\n },\n set: function (value) {\n this.pdfDocument = value;\n },\n enumerable: true,\n configurable: true\n });\n //Public Methods\n /**\n * `Generates name` for the object and adds to the resource if the object is new.\n * @private\n */\n PdfResources.prototype.getName = function (obj) {\n var primitive = obj.element;\n var name = null;\n if (this.names.containsKey(primitive)) {\n name = this.names.getValue(primitive);\n }\n // Object is new.\n if (name == null) {\n var sName = this.generateName();\n name = new PdfName(sName);\n this.names.setValue(primitive, name);\n if (obj instanceof PdfFont) {\n this.add(obj, name);\n }\n else if (obj instanceof PdfTemplate) {\n this.add(obj, name);\n }\n else if (obj instanceof PdfGradientBrush || obj instanceof PdfTilingBrush) {\n this.add(obj, name);\n }\n else if (obj instanceof PdfTransparency) {\n this.add(obj, name);\n }\n else if (obj instanceof PdfImage || obj instanceof PdfBitmap) {\n this.add(obj, name);\n }\n }\n return name;\n };\n /**\n * Gets `resource names` to font dictionaries.\n * @private\n */\n PdfResources.prototype.getNames = function () {\n if (this.pdfNames == null) {\n this.pdfNames = new TemporaryDictionary();\n }\n var fonts = this.items.getValue(this.dictionaryProperties.font);\n if (fonts != null) {\n var reference = fonts;\n var dictionary = fonts;\n dictionary = PdfCrossTable.dereference(fonts);\n }\n return this.pdfNames;\n };\n /**\n * Add `RequireProcedureSet` into procset array.\n * @private\n */\n PdfResources.prototype.requireProcedureSet = function (procedureSetName) {\n if (procedureSetName == null) {\n throw new Error('ArgumentNullException:procedureSetName');\n }\n var procSets = this.items.getValue(this.dictionaryProperties.procset);\n if (procSets == null) {\n procSets = new PdfArray();\n this.items.setValue(this.dictionaryProperties.procset, procSets);\n }\n var name = new PdfName(procedureSetName);\n if (!procSets.contains(name)) {\n procSets.add(name);\n }\n };\n //Helper Methods\n /**\n * `Remove font` from array.\n * @private\n */\n PdfResources.prototype.removeFont = function (name) {\n var key = null;\n var keys = this.pdfNames.keys();\n for (var index = 0; index < this.pdfNames.size(); index++) {\n if (this.pdfNames.getValue(keys[index]) === new PdfName(name)) {\n key = keys[index];\n break;\n }\n }\n if (key != null) {\n this.pdfNames.remove(key);\n }\n };\n /**\n * Generates `Unique string name`.\n * @private\n */\n PdfResources.prototype.generateName = function () {\n var name = Guid.getNewGuidString();\n return name;\n };\n PdfResources.prototype.add = function (arg1, arg2) {\n if (arg1 instanceof PdfFont) {\n var dictionary = null;\n var fonts = this.items.getValue(this.dictionaryProperties.font);\n if (fonts != null) {\n var reference = fonts;\n dictionary = fonts;\n dictionary = fonts;\n }\n else {\n dictionary = new PdfDictionary();\n this.items.setValue(this.dictionaryProperties.font, dictionary);\n }\n dictionary.items.setValue(arg2.value, new PdfReferenceHolder(arg1.element));\n }\n else if (arg1 instanceof PdfTemplate) {\n var xobjects = void 0;\n xobjects = this.items.getValue(this.dictionaryProperties.xObject);\n // Create fonts dictionary.\n if (xobjects == null) {\n xobjects = new PdfDictionary();\n this.items.setValue(this.dictionaryProperties.xObject, xobjects);\n }\n xobjects.items.setValue(arg2.value, new PdfReferenceHolder(arg1.element));\n }\n else if (arg1 instanceof PdfBrush) {\n if (arg1 instanceof PdfGradientBrush || arg1 instanceof PdfTilingBrush) {\n var savable = arg1.element;\n if (savable != null) {\n var pattern = this.items.getValue(this.dictionaryProperties.pattern);\n // Create a new pattern dictionary.\n if (pattern == null) {\n pattern = new PdfDictionary();\n this.items.setValue(this.dictionaryProperties.pattern, pattern);\n }\n pattern.items.setValue(arg2.value, new PdfReferenceHolder(savable));\n }\n }\n }\n else if (arg1 instanceof PdfTransparency) {\n var savable = arg1.element;\n var transDic = null;\n transDic = this.items.getValue(this.dictionaryProperties.extGState);\n // Create a new pattern dictionary.\n if (transDic == null) {\n transDic = new PdfDictionary();\n this.items.setValue(this.dictionaryProperties.extGState, transDic);\n }\n transDic.items.setValue(arg2.value, new PdfReferenceHolder(savable));\n }\n else {\n /* tslint:disable */\n var xobjects = this.Dictionary.items.getValue(this.dictionaryProperties.xObject);\n var parentXObjects = void 0;\n if (typeof this.pdfDocument !== 'undefined') {\n parentXObjects = this.pdfDocument.sections.element.items.getValue(this.dictionaryProperties.resources).items.getValue(this.dictionaryProperties.xObject);\n }\n var values = this.Dictionary.items.values();\n var hasSameImageStream = false;\n var oldReference = void 0;\n if (typeof this.pdfDocument !== 'undefined' && (typeof parentXObjects === undefined || parentXObjects == null)) {\n parentXObjects = new PdfDictionary();\n this.pdfDocument.sections.element.items.getValue(this.dictionaryProperties.resources).items.setValue(this.dictionaryProperties.xObject, parentXObjects);\n }\n else if (typeof this.pdfDocument !== 'undefined') {\n var values_1 = parentXObjects.items.values();\n for (var i = 0; i < values_1.length; i++) {\n if (typeof values_1[i] !== 'undefined' && typeof values_1[i].element !== 'undefined') {\n if (values_1[i].element.data[0] === arg1.element.data[0]) {\n oldReference = values_1[i];\n hasSameImageStream = true;\n }\n }\n }\n }\n if (xobjects == null) {\n xobjects = new PdfDictionary();\n this.Dictionary.items.setValue(this.dictionaryProperties.xObject, xobjects);\n }\n if (hasSameImageStream && typeof oldReference !== 'undefined') {\n xobjects.items.setValue(arg2.value, oldReference);\n }\n else {\n var reference = new PdfReferenceHolder(arg1.element);\n xobjects.items.setValue(arg2.value, reference);\n if (typeof this.pdfDocument !== 'undefined') {\n parentXObjects.items.setValue(arg2.value, reference);\n }\n }\n /* tslint:enable */\n }\n };\n return PdfResources;\n}(PdfDictionary));\nexport { PdfResources };\n/* tslint:disable */\n/**\n * Used to create new guid for resources.\n * @private\n */\nvar Guid = /** @class */ (function () {\n function Guid() {\n }\n /**\n * Generate `new GUID`.\n * @private\n */\n Guid.getNewGuidString = function () {\n return 'aaaaaaaa-aaaa-4aaa-baaa-aaaaaaaaaaaa'.replace(/[ab]/g, function (c) {\n var random = Math.random() * 16 | 0;\n var result = c === 'a' ? random : (random & 0x3 | 0x8);\n return result.toString(16);\n });\n };\n return Guid;\n}());\nexport { Guid };\n/* tslint:enable */ \n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { GetResourceEventHandler } from './../pdf-graphics';\nimport { PdfBrush } from './pdf-brush';\nimport { PointF, SizeF, RectangleF, Rectangle } from './../../drawing/pdf-drawing';\nimport { DictionaryProperties } from './../../input-output/pdf-dictionary-properties';\nimport { PdfArray } from './../../primitives/pdf-array';\nimport { PdfNumber } from './../../primitives/pdf-number';\nimport { PdfGraphics } from './../pdf-graphics';\nimport { PdfResources } from './../pdf-resources';\nimport { PdfStream } from './../../primitives/pdf-stream';\nimport { PdfPage } from './../../pages/pdf-page';\n/**\n * `PdfTilingBrush` Implements a colored tiling brush.\n */\nvar PdfTilingBrush = /** @class */ (function (_super) {\n __extends(PdfTilingBrush, _super);\n /**\n * Initializes a new instance of the `PdfTilingBrush` class.\n * @public\n */\n function PdfTilingBrush(arg1, arg2) {\n var _this = _super.call(this) || this;\n /**\n * Local variable to store Stroking.\n * @private\n */\n _this.mStroking = false;\n /**\n * Local variable to store the tile start location.\n * @private\n */\n _this.mLocation = new PointF(0, 0);\n /**\n * Local variable to store the dictionary properties.\n * @private\n */\n _this.mDictionaryProperties = new DictionaryProperties();\n var rect = null;\n if (arg1 instanceof Rectangle) {\n rect = arg1;\n }\n else if (arg1 instanceof SizeF) {\n rect = new Rectangle(0, 0, arg1.width, arg1.height);\n }\n if (arg2 !== null && arg2 instanceof PdfPage) {\n _this.mPage = arg2;\n }\n _this.brushStream = new PdfStream();\n _this.mResources = new PdfResources();\n _this.brushStream.items.setValue(_this.mDictionaryProperties.resources, _this.mResources);\n _this.setBox(rect);\n _this.setObligatoryFields();\n if (arg2 !== null && arg2 instanceof PdfPage) {\n _this.mPage = arg2;\n _this.graphics.colorSpace = arg2.document.colorSpace;\n }\n return _this;\n }\n /**\n * Initializes a new instance of the `PdfTilingBrush` class.\n * @private\n * @param rectangle The size of the smallest brush cell.\n * @param page The Current Page Object.\n * @param location The Tile start location.\n * @param matrix The matrix.\n */\n PdfTilingBrush.prototype.initialize = function (rectangle, page, location, matrix) {\n this.mPage = page;\n this.mLocation = location;\n this.mTransformationMatrix = matrix;\n this.tempBrushStream = this.brushStream;\n this.brushStream = new PdfStream();\n var tempResource = new PdfResources();\n this.brushStream.items.setValue(this.mDictionaryProperties.resources, tempResource);\n this.setBox(rectangle);\n this.setObligatoryFields();\n return this;\n };\n Object.defineProperty(PdfTilingBrush.prototype, \"location\", {\n //Properties\n /**\n * Location representing the start position of the tiles.\n * @public\n */\n get: function () {\n return this.mLocation;\n },\n set: function (value) {\n this.mLocation = value;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Sets the obligatory fields.\n * @private\n */\n PdfTilingBrush.prototype.setObligatoryFields = function () {\n this.brushStream.items.setValue(this.mDictionaryProperties.patternType, new PdfNumber(1));\n // Tiling brush.\n this.brushStream.items.setValue(this.mDictionaryProperties.paintType, new PdfNumber(1));\n // Coloured.\n this.brushStream.items.setValue(this.mDictionaryProperties.tilingType, new PdfNumber(1));\n // Constant spacing.\n this.brushStream.items.setValue(this.mDictionaryProperties.xStep, new PdfNumber((this.mBox.right - this.mBox.left)));\n this.brushStream.items.setValue(this.mDictionaryProperties.yStep, new PdfNumber((this.mBox.bottom - this.mBox.top)));\n if ((this.mPage != null) && (this.mLocation != null)) {\n if ((this.mTransformationMatrix == null && typeof this.mTransformationMatrix === 'undefined')) {\n // Transform the tile origin to fit the location\n var tileTransform = (this.mPage.size.height % this.rectangle.size.height) - (this.mLocation.y);\n /* tslint:disable-next-line:max-line-length */\n this.brushStream.items.setValue(this.mDictionaryProperties.matrix, new PdfArray([1, 0, 0, 1, this.mLocation.x, tileTransform]));\n }\n else {\n var tileTransform = 0;\n // Transform the tile origin to fit the location\n var elements = this.mTransformationMatrix.matrix.elements;\n if ((this.mPage.size.height > this.rectangle.size.height)) {\n tileTransform = (this.mTransformationMatrix.matrix.offsetY\n - (this.mPage.size.height % this.rectangle.size.height));\n }\n else {\n tileTransform = ((this.mPage.size.height % this.rectangle.size.height) + this.mTransformationMatrix.matrix.offsetY);\n }\n this.brushStream.items.setValue(this.mDictionaryProperties.matrix, new PdfArray([\n elements[0], elements[1], elements[2], elements[3], elements[4], tileTransform\n ]));\n }\n }\n };\n /**\n * Sets the BBox coordinates.\n * @private\n */\n PdfTilingBrush.prototype.setBox = function (box) {\n this.mBox = box;\n var rect = new RectangleF(this.mBox.left, this.mBox.top, this.mBox.right, this.mBox.bottom);\n this.brushStream.items.setValue(this.mDictionaryProperties.bBox, PdfArray.fromRectangle(rect));\n };\n Object.defineProperty(PdfTilingBrush.prototype, \"rectangle\", {\n //Properties\n /**\n * Gets the boundary box of the smallest brush cell.\n * @public\n */\n get: function () {\n return this.mBox;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfTilingBrush.prototype, \"size\", {\n /**\n * Gets the size of the smallest brush cell.\n * @public\n */\n get: function () {\n return this.mBox.size;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfTilingBrush.prototype, \"graphics\", {\n /**\n * Gets Graphics context of the brush.\n */\n get: function () {\n if ((this.mGraphics == null && typeof this.mGraphics === 'undefined')) {\n var gr = new GetResourceEventHandler(this);\n var g = new PdfGraphics(this.size, gr, this.brushStream);\n this.mGraphics = g;\n this.mResources = this.getResources();\n this.mGraphics.initializeCoordinates();\n }\n return this.mGraphics;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Gets the resources and modifies the template dictionary.\n * @public\n */\n PdfTilingBrush.prototype.getResources = function () {\n return this.mResources;\n };\n Object.defineProperty(PdfTilingBrush.prototype, \"stroking\", {\n /**\n * Gets or sets a value indicating whether this PdfTilingBrush\n * is used for stroking operations.\n */\n get: function () {\n return this.mStroking;\n },\n set: function (value) {\n this.mStroking = value;\n },\n enumerable: true,\n configurable: true\n });\n //PdfBrush methods\n /**\n * Creates a new copy of a brush.\n * @public\n */\n PdfTilingBrush.prototype.clone = function () {\n var brush = this.initialize(this.rectangle, this.mPage, this.location, this.mTransformationMatrix);\n if ((this.mTransformationMatrix != null) && (this.mTransformationMatrix.matrix != null)) {\n /* tslint:disable-next-line:max-line-length */\n brush.brushStream.items.setValue(this.mDictionaryProperties.matrix, new PdfArray(this.mTransformationMatrix.matrix.elements));\n }\n brush.brushStream.data = this.tempBrushStream.data;\n brush.mResources = new PdfResources(this.mResources);\n brush.brushStream.items.setValue(this.mDictionaryProperties.resources, brush.mResources);\n return brush;\n };\n /**\n * Monitors the changes of the brush and modify PDF state respectfully.\n * @param brush The brush\n * @param streamWriter The stream writer\n * @param getResources The get resources delegate.\n * @param saveChanges if set to true the changes should be saved anyway.\n * @param currentColorSpace The current color space.\n */\n /* tslint:disable-next-line:max-line-length */\n PdfTilingBrush.prototype.monitorChanges = function (brush, streamWriter, getResources, saveChanges, currentColorSpace) {\n var diff = false;\n if (brush !== this) {\n // Set the Pattern colour space.\n streamWriter.setColorSpace('Pattern', this.mStroking);\n // Set the pattern for non-stroking operations.\n var resources1 = getResources.getResources();\n var name1 = resources1.getName(this);\n streamWriter.setColourWithPattern(null, name1, this.mStroking);\n diff = true;\n }\n else if (brush instanceof PdfTilingBrush) {\n // Set the /Pattern colour space.\n streamWriter.setColorSpace('Pattern', this.mStroking);\n // Set the pattern for non-stroking operations.\n var resources = getResources.getResources();\n var name_1 = resources.getName(this);\n streamWriter.setColourWithPattern(null, name_1, this.mStroking);\n diff = true;\n }\n return diff;\n };\n /**\n * Resets the changes, which were made by the brush.\n * In other words resets the state to the initial one.\n * @param streamWriter The stream writer.\n */\n PdfTilingBrush.prototype.resetChanges = function (streamWriter) {\n // We shouldn't do anything to reset changes.\n // All changes will be reset automatically by setting a new colour space.\n };\n Object.defineProperty(PdfTilingBrush.prototype, \"element\", {\n /* tslint:enable */\n // IPdfWrapper Members\n /**\n * Gets the `element`.\n * @public\n */\n get: function () {\n return this.brushStream;\n },\n enumerable: true,\n configurable: true\n });\n return PdfTilingBrush;\n}(PdfBrush));\nexport { PdfTilingBrush };\n","/**\n * PdfGraphics.ts class for EJ2-PDF\n */\nimport { PdfColorSpace, TextRenderingMode, PdfFillMode, PdfTextAlignment } from './enum';\nimport { PdfVerticalAlignment, PdfBlendMode } from './enum';\nimport { PdfSubSuperScript } from './fonts/enum';\nimport { PdfStreamWriter } from './../input-output/pdf-stream-writer';\nimport { PdfPen } from './pdf-pen';\nimport { PdfBrush } from './brushes/pdf-brush';\nimport { PdfSolidBrush } from './brushes/pdf-solid-brush';\nimport { PdfFont } from './fonts/pdf-font';\nimport { PdfTransformationMatrix } from './pdf-transformation-matrix';\nimport { PointF, SizeF, RectangleF } from './../drawing/pdf-drawing';\nimport { ProcedureSets } from './constants';\nimport { PdfString } from './../primitives/pdf-string';\nimport { PdfStringFormat } from './fonts/pdf-string-format';\nimport { TemporaryDictionary } from './../collections/object-object-pair/dictionary';\nimport { PdfTransparency } from './pdf-transparency';\nimport { PdfStringLayouter, LineType } from './fonts/string-layouter';\nimport { DictionaryProperties } from './../input-output/pdf-dictionary-properties';\nimport { StringTokenizer } from './fonts/string-tokenizer';\nimport { PdfAutomaticFieldInfoCollection } from './../document/automatic-fields/automatic-field-info-collection';\nimport { PdfAutomaticFieldInfo } from './../document/automatic-fields/automatic-field-info';\nimport { Operators } from './../input-output/pdf-operators';\nimport { UnicodeTrueTypeFont } from './fonts/unicode-true-type-font';\nimport { InternalEnum } from './../primitives/pdf-string';\nimport { RtlRenderer } from './fonts/rtl-renderer';\nimport { PdfTextDirection } from './enum';\nimport { PathPointType } from './figures/enum';\nimport { PdfGradientBrush } from './../../implementation/graphics/brushes/pdf-gradient-brush';\nimport { PdfTilingBrush } from './brushes/pdf-tiling-brush';\n/**\n * `PdfGraphics` class represents a graphics context of the objects.\n * It's used for performing all the graphics operations.\n * ```typescript\n * // create a new PDF document\n * let document : PdfDocument = new PdfDocument();\n * // add a new page to the document\n * let page1 : PdfPage = document.pages.add();\n * // set the font\n * let font : PdfStandardFont = new PdfStandardFont(PdfFontFamily.Helvetica, 20);\n * // create black brush\n * let blackBrush : PdfSolidBrush = new PdfSolidBrush(new PdfColor(0, 0, 0));\n * //\n * //graphics of the page\n * let page1Graphics : PdfGraphics = page1.graphics;\n * // draw the text on the page1 graphics\n * page1Graphics.drawString('Hello World', font, blackBrush, new PointF(0, 0));\n * //\n * // save the document\n * document.save('output.pdf');\n * // destroy the document\n * document.destroy();\n * ```\n */\nvar PdfGraphics = /** @class */ (function () {\n function PdfGraphics(arg1, arg2, arg3) {\n /**\n * Represents the `Current color space`.\n * @private\n */\n this.currentColorSpace = PdfColorSpace.Rgb;\n /**\n * Stores `previous rendering mode`.\n * @private\n */\n this.previousTextRenderingMode = TextRenderingMode.Fill;\n /**\n * Previous `character spacing` value or 0.\n * @private\n */\n this.previousCharacterSpacing = 0.0;\n /**\n * Previous `word spacing` value or 0.\n * @private\n */\n this.previousWordSpacing = 0.0;\n /**\n * The `previously used text scaling` value.\n * @private\n */\n this.previousTextScaling = 100.0;\n /**\n * Instance of `ProcedureSets` class.\n * @private\n */\n this.procedureSets = new ProcedureSets();\n /**\n * To check wihether it is a `direct text rendering`.\n * @default true\n * @private\n */\n this.isNormalRender = true;\n /**\n * check whether to `use font size` to calculate the shift.\n * @default false\n * @private\n */\n this.isUseFontSize = false;\n /**\n * check whether the font is in `italic type`.\n * @default false\n * @private\n */\n this.isItalic = false;\n /**\n * Check whether it is an `emf Text Matrix`.\n * @default false\n * @private\n */\n this.isEmfTextScaled = false;\n /**\n * Check whether it is an `emf` call.\n * @default false\n * @private\n */\n this.isEmf = false;\n /**\n * Check whether it is an `emf plus` call.\n * @default false\n * @private\n */\n this.isEmfPlus = false;\n /**\n * Check whether it is in `base line format`.\n * @default true\n * @private\n */\n this.isBaselineFormat = true;\n /**\n * Emf Text `Scaling Factor`.\n * @private\n */\n this.emfScalingFactor = new SizeF(0, 0);\n /**\n * To check whether the `last color space` of document and garphics is saved.\n * @private\n */\n this.colorSpaceChanged = false;\n /**\n * Stores an instance of `DictionaryProperties`.\n * @private\n */\n this.dictionaryProperties = new DictionaryProperties();\n /**\n * Checks whether the x co-ordinate is need to set as client size or not.\n * @hidden\n * @private\n */\n this.isOverloadWithPosition = false;\n /**\n * Checks whether the x co-ordinate is need to set as client size or not.\n * @hidden\n * @private\n */\n this.isPointOverload = false;\n /**\n * Current colorspaces.\n * @hidden\n * @private\n */\n this.currentColorSpaces = ['RGB', 'CMYK', 'GrayScale', 'Indexed'];\n /**\n * Checks the current image `is optimized` or not.\n * @default false.\n * @private\n */\n this.isImageOptimized = false;\n /**\n * Stores the `graphics states`.\n * @private\n */\n this.graphicsState = [];\n /**\n * Indicates whether the object `had trasparency`.\n * @default false\n * @private\n */\n this.istransparencySet = false;\n /**\n * Stores the instance of `PdfAutomaticFieldInfoCollection` class .\n * @default null\n * @private\n */\n this.internalAutomaticFields = null;\n /**\n * Stores the index of the start line that should draw with in the next page.\n * @private\n */\n this.startCutIndex = -1;\n this.getResources = arg2;\n this.canvasSize = arg1;\n if (arg3 instanceof PdfStreamWriter) {\n this.pdfStreamWriter = arg3;\n }\n else {\n this.pdfStreamWriter = new PdfStreamWriter(arg3);\n }\n this.initialize();\n }\n Object.defineProperty(PdfGraphics.prototype, \"stringLayoutResult\", {\n // Properties\n /**\n * Returns the `result` after drawing string.\n * @private\n */\n get: function () {\n return this.pdfStringLayoutResult;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGraphics.prototype, \"size\", {\n /**\n * Gets the `size` of the canvas.\n * @private\n */\n get: function () {\n return this.canvasSize;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGraphics.prototype, \"mediaBoxUpperRightBound\", {\n /**\n * Gets and Sets the value of `MediaBox upper right bound`.\n * @private\n */\n get: function () {\n if (typeof this.internalMediaBoxUpperRightBound === 'undefined') {\n this.internalMediaBoxUpperRightBound = 0;\n }\n return this.internalMediaBoxUpperRightBound;\n },\n set: function (value) {\n this.internalMediaBoxUpperRightBound = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGraphics.prototype, \"clientSize\", {\n /**\n * Gets the `size` of the canvas reduced by margins and page templates.\n * @private\n */\n get: function () {\n return new SizeF(this.clipBounds.width, this.clipBounds.height);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGraphics.prototype, \"colorSpace\", {\n /**\n * Gets or sets the current `color space` of the document\n * @private\n */\n get: function () {\n return this.currentColorSpace;\n },\n set: function (value) {\n this.currentColorSpace = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGraphics.prototype, \"streamWriter\", {\n /**\n * Gets the `stream writer`.\n * @private\n */\n get: function () {\n return this.pdfStreamWriter;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGraphics.prototype, \"matrix\", {\n /**\n * Gets the `transformation matrix` reflecting current transformation.\n * @private\n */\n get: function () {\n if (this.transformationMatrix == null) {\n this.transformationMatrix = new PdfTransformationMatrix();\n }\n return this.transformationMatrix;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGraphics.prototype, \"layer\", {\n /**\n * Gets the `layer` for the graphics, if exists.\n * @private\n */\n get: function () {\n return this.pageLayer;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGraphics.prototype, \"page\", {\n /**\n * Gets the `page` for this graphics, if exists.\n * @private\n */\n get: function () {\n return this.pageLayer.page;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGraphics.prototype, \"automaticFields\", {\n get: function () {\n if (this.internalAutomaticFields == null || typeof this.internalAutomaticFields === 'undefined') {\n this.internalAutomaticFields = new PdfAutomaticFieldInfoCollection();\n }\n return this.internalAutomaticFields;\n },\n enumerable: true,\n configurable: true\n });\n //Implementation\n /**\n * `Initializes` this instance.\n * @private\n */\n PdfGraphics.prototype.initialize = function () {\n this.bStateSaved = false;\n this.currentPen = null;\n this.currentBrush = null;\n this.currentFont = null;\n this.currentColorSpace = PdfColorSpace.Rgb;\n this.bCSInitialized = false;\n this.transformationMatrix = null;\n this.previousTextRenderingMode = (-1); //.Fill;\n this.previousCharacterSpacing = -1.0;\n this.previousWordSpacing = -1.0;\n this.previousTextScaling = -100.0;\n // this.m_trasparencies = null;\n this.currentStringFormat = null;\n this.clipBounds = new RectangleF(new PointF(0, 0), this.size);\n this.getResources.getResources().requireProcedureSet(this.procedureSets.pdf);\n };\n PdfGraphics.prototype.drawPdfTemplate = function (template, location, size) {\n if (typeof size === 'undefined') {\n if (template == null) {\n throw Error('ArgumentNullException-template');\n }\n this.drawPdfTemplate(template, location, template.size);\n }\n else {\n // let crossTable : PdfCrossTable = null;\n // if (this.pageLayer != null) {\n // crossTable = (this.page as PdfPage).section.parentDocument.crossTable;\n // }\n if (template == null) {\n throw Error('ArgumentNullException-template');\n }\n var scaleX = (template.width > 0) ? size.width / template.width : 1;\n var scaleY = (template.height > 0) ? size.height / template.height : 1;\n var bNeedScale = !(scaleX === 1 && scaleY === 1);\n // Save state.\n var state = this.save();\n // Take into consideration that rect location is bottom/left.\n var matrix = new PdfTransformationMatrix();\n if (this.pageLayer != null) {\n this.getTranslateTransform(location.x, location.y + size.height, matrix);\n }\n if (bNeedScale) {\n this.getScaleTransform(scaleX, scaleY, matrix);\n }\n this.pdfStreamWriter.modifyCtm(matrix);\n // Output template.\n var resources = this.getResources.getResources();\n var name_1 = resources.getName(template);\n this.pdfStreamWriter.executeObject(name_1);\n // Restore state.\n this.restore(state);\n //Transfer automatic fields from template.\n var g = template.graphics;\n if (g != null) {\n for (var index = 0; index < g.automaticFields.automaticFields.length; index++) {\n var fieldInfo = g.automaticFields.automaticFields[index];\n var newLocation = new PointF(fieldInfo.location.x + location.x, fieldInfo.location.y + location.y);\n var scalingX = template.size.width == 0 ? 0 : size.width / template.size.width;\n var scalingY = template.size.height == 0 ? 0 : size.height / template.size.height;\n this.automaticFields.add(new PdfAutomaticFieldInfo(fieldInfo.field, newLocation, scalingX, scalingY));\n this.page.dictionary.modify();\n }\n }\n this.getResources.getResources().requireProcedureSet(this.procedureSets.imageB);\n this.getResources.getResources().requireProcedureSet(this.procedureSets.imageC);\n this.getResources.getResources().requireProcedureSet(this.procedureSets.imageI);\n this.getResources.getResources().requireProcedureSet(this.procedureSets.text);\n }\n };\n /* tslint:disable */\n /**\n * @public\n */\n PdfGraphics.prototype.drawString = function (arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9) {\n if (typeof arg1 === 'string' && arg2 instanceof PdfFont && (arg3 instanceof PdfPen || arg3 === null) && (arg4 instanceof PdfBrush || arg4 === null) && typeof arg5 === 'number' && typeof arg6 === 'number' && (arg7 instanceof PdfStringFormat || arg7 === null) && typeof arg8 === 'undefined') {\n this.isOverloadWithPosition = true;\n this.drawString(arg1, arg2, arg3, arg4, arg5, arg6, (this.clientSize.width - arg5), 0, arg7);\n }\n else {\n var temparg3 = arg3;\n var temparg4 = arg4;\n var temparg5 = arg5;\n var temparg6 = arg6;\n var temparg7 = arg7;\n var temparg8 = arg8;\n var temparg9 = arg9;\n var layouter = new PdfStringLayouter();\n var result = layouter.layout(arg1, arg2, temparg9, new SizeF(temparg7, temparg8), this.isOverloadWithPosition, this.clientSize);\n if (!result.empty) {\n var rect = this.checkCorrectLayoutRectangle(result.actualSize, temparg5, temparg6, temparg9);\n if (temparg7 <= 0) {\n temparg5 = rect.x;\n temparg7 = rect.width;\n }\n if (temparg8 <= 0) {\n temparg6 = rect.y;\n temparg8 = rect.height;\n }\n this.drawStringLayoutResult(result, arg2, temparg3, temparg4, new RectangleF(temparg5, temparg6, temparg7, temparg8), temparg9);\n this.isEmfTextScaled = false;\n this.emfScalingFactor = new SizeF(0, 0);\n }\n this.getResources.getResources().requireProcedureSet(this.procedureSets.text);\n this.isNormalRender = true;\n this.pdfStringLayoutResult = result;\n this.isUseFontSize = false;\n }\n }; /* tslint:enable */\n PdfGraphics.prototype.drawLine = function (arg1, arg2, arg3, arg4, arg5) {\n if (arg2 instanceof PointF) {\n var temparg2 = arg2;\n var temparg3 = arg3;\n this.drawLine(arg1, temparg2.x, temparg2.y, temparg3.x, temparg3.y);\n }\n else {\n var temparg2 = arg2;\n var temparg3 = arg3;\n var temparg4 = arg4;\n var temparg5 = arg5;\n this.stateControl(arg1, null, null);\n var sw = this.streamWriter;\n sw.beginPath(temparg2, temparg3);\n sw.appendLineSegment(temparg4, temparg5);\n sw.strokePath();\n this.getResources.getResources().requireProcedureSet(this.procedureSets.pdf);\n }\n };\n /* tslint:disable */\n PdfGraphics.prototype.drawRectangle = function (arg1, arg2, arg3, arg4, arg5, arg6) {\n if (arg1 instanceof PdfPen && typeof arg2 === 'number') {\n var temparg3 = arg3;\n this.drawRectangle(arg1, null, arg2, temparg3, arg4, arg5);\n }\n else if (arg1 instanceof PdfBrush && typeof arg2 === 'number') {\n var temparg3 = arg3;\n this.drawRectangle(null, arg1, arg2, temparg3, arg4, arg5);\n }\n else {\n var temparg3 = arg3;\n var temparg4 = arg4;\n var temparg5 = arg5;\n var temparg6 = arg6;\n if ((arg2 instanceof PdfTilingBrush)) {\n this.bCSInitialized = false;\n var xOffset = (this.matrix.matrix.offsetX + temparg3);\n var yOffset = void 0;\n if (((this.layer != null) && (this.layer.page != null))) {\n yOffset = ((this.layer.page.size.height - this.matrix.matrix.offsetY) + temparg4);\n }\n else {\n yOffset = ((this.clientSize.height - this.matrix.matrix.offsetY) + temparg4);\n }\n (arg2).location = new PointF(xOffset, yOffset);\n (arg2).graphics.colorSpace = this.colorSpace;\n }\n else if ((arg2 instanceof PdfGradientBrush)) {\n arg2.colorSpace = this.colorSpace;\n }\n if (arg2 instanceof PdfSolidBrush && arg2.color.isEmpty) {\n arg2 = null;\n }\n var temparg1 = arg1;\n var temparg2 = arg2;\n this.stateControl(temparg1, temparg2, null);\n this.streamWriter.appendRectangle(temparg3, temparg4, temparg5, temparg6);\n this.drawPathHelper(temparg1, temparg2, false);\n }\n };\n PdfGraphics.prototype.drawPathHelper = function (arg1, arg2, arg3, arg4) {\n if (typeof arg3 === 'boolean') {\n var temparg3 = arg3;\n this.drawPathHelper(arg1, arg2, PdfFillMode.Winding, temparg3);\n }\n else {\n var temparg3 = arg3;\n var temparg4 = arg4;\n var isPen = arg1 != null;\n var isBrush = arg2 != null;\n var isEvenOdd = (temparg3 === PdfFillMode.Alternate);\n if (isPen && isBrush) {\n this.streamWriter.fillStrokePath(isEvenOdd);\n }\n else if (!isPen && !isBrush) {\n this.streamWriter.endPath();\n }\n else if (isPen) {\n this.streamWriter.strokePath();\n }\n else {\n this.streamWriter.fillPath(isEvenOdd);\n }\n }\n };\n /* tslint:disable */\n PdfGraphics.prototype.drawImage = function (arg1, arg2, arg3, arg4, arg5) {\n if (typeof arg2 === 'number' && typeof arg3 === 'number' && typeof arg4 === 'undefined') {\n var size = arg1.physicalDimension;\n this.drawImage(arg1, arg2, arg3, size.width, size.height);\n }\n else {\n var temparg2 = arg2;\n var temparg3 = arg3;\n var temparg4 = arg4;\n var temparg5 = arg5;\n arg1.save();\n var matrix = new PdfTransformationMatrix();\n this.getTranslateTransform(temparg2, (temparg3 + temparg5), matrix);\n this.getScaleTransform(arg4, arg5, matrix);\n this.pdfStreamWriter.write('q');\n this.pdfStreamWriter.modifyCtm(matrix);\n // Output template.\n var resources = this.getResources.getResources();\n if (typeof this.pageLayer !== 'undefined' && this.page != null) {\n resources.document = this.page.document;\n }\n var name_2 = resources.getName(arg1);\n if (typeof this.pageLayer !== 'undefined') {\n this.page.setResources(resources);\n }\n this.pdfStreamWriter.executeObject(name_2);\n this.pdfStreamWriter.write(Operators.restoreState);\n this.pdfStreamWriter.write(Operators.newLine);\n var resource = this.getResources.getResources();\n resource.requireProcedureSet(this.procedureSets.imageB);\n resource.requireProcedureSet(this.procedureSets.imageC);\n resource.requireProcedureSet(this.procedureSets.imageI);\n resource.requireProcedureSet(this.procedureSets.text);\n }\n };\n //Implementation\n /* tslint:disable */\n /**\n * Returns `bounds` of the line info.\n * @private\n */\n PdfGraphics.prototype.getLineBounds = function (lineIndex, result, font, layoutRectangle, format) {\n var bounds;\n if (!result.empty && lineIndex < result.lineCount && lineIndex >= 0) {\n var line = result.lines[lineIndex];\n var vShift = this.getTextVerticalAlignShift(result.actualSize.height, layoutRectangle.height, format);\n var y = vShift + layoutRectangle.y + (result.lineHeight * lineIndex);\n var lineWidth = line.width;\n var hShift = this.getHorizontalAlignShift(lineWidth, layoutRectangle.width, format);\n var lineIndent = this.getLineIndent(line, format, layoutRectangle, (lineIndex === 0));\n hShift += (!this.rightToLeft(format)) ? lineIndent : 0;\n var x = layoutRectangle.x + hShift;\n /* tslint:disable */\n var width = (!this.shouldJustify(line, layoutRectangle.width, format)) ? lineWidth - lineIndent : layoutRectangle.width - lineIndent; /* tslint:enable */\n var height = result.lineHeight;\n bounds = new RectangleF(x, y, width, height);\n }\n else {\n bounds = new RectangleF(0, 0, 0, 0);\n }\n return bounds;\n };\n /**\n * Creates `lay outed rectangle` depending on the text settings.\n * @private\n */\n PdfGraphics.prototype.checkCorrectLayoutRectangle = function (textSize, x, y, format) {\n var layoutedRectangle = new RectangleF(x, y, textSize.width, textSize.width);\n if (format != null) {\n switch (format.alignment) {\n case PdfTextAlignment.Center:\n layoutedRectangle.x -= layoutedRectangle.width / 2;\n break;\n case PdfTextAlignment.Right:\n layoutedRectangle.x -= layoutedRectangle.width;\n break;\n }\n switch (format.lineAlignment) {\n case PdfVerticalAlignment.Middle:\n layoutedRectangle.y -= layoutedRectangle.height / 2;\n break;\n case PdfVerticalAlignment.Bottom:\n layoutedRectangle.y -= layoutedRectangle.height;\n break;\n }\n }\n return layoutedRectangle;\n };\n /**\n * Sets the `layer` for the graphics.\n * @private\n */\n PdfGraphics.prototype.setLayer = function (layer) {\n this.pageLayer = layer;\n var page = layer.page;\n if (page != null && typeof page !== 'undefined') {\n page.beginSave = this.pageSave;\n }\n };\n /**\n * Adding page number field before page saving.\n * @private\n */\n /* tslint:disable */\n PdfGraphics.prototype.pageSave = function (page) {\n if (page.graphics.automaticFields != null) {\n for (var i = 0; i < page.graphics.automaticFields.automaticFields.length; i++) {\n var fieldInfo = page.graphics.automaticFields.automaticFields[i];\n fieldInfo.field.performDraw(page.graphics, fieldInfo.location, fieldInfo.scalingX, fieldInfo.scalingY);\n }\n }\n };\n /**\n * `Draws a layout result`.\n * @private\n */\n PdfGraphics.prototype.drawStringLayoutResult = function (result, font, pen, brush, layoutRectangle, format) {\n if (!result.empty) {\n this.applyStringSettings(font, pen, brush, format, layoutRectangle);\n // Set text scaling\n var textScaling = (format != null) ? format.horizontalScalingFactor : 100.0;\n if (textScaling !== this.previousTextScaling && !this.isEmfTextScaled) {\n this.pdfStreamWriter.setTextScaling(textScaling);\n this.previousTextScaling = textScaling;\n }\n var height = (format == null || format.lineSpacing === 0) ? font.height : format.lineSpacing + font.height;\n var subScript = (format != null && format.subSuperScript === PdfSubSuperScript.SubScript);\n var shift = 0;\n shift = (subScript) ? height - (font.height + font.metrics.getDescent(format)) : (height - font.metrics.getAscent(format));\n this.shift = shift;\n this.pdfStreamWriter.startNextLine(layoutRectangle.x, layoutRectangle.y - shift);\n this.pdfStreamWriter.setLeading(+height);\n var resultHeight = 0;\n var remainingString = '';\n for (var i = 0; i < result.lines.length; i++) {\n resultHeight += result.lineHeight;\n if ((layoutRectangle.y + resultHeight) > this.clientSize.height) {\n this.startCutIndex = i;\n break;\n }\n }\n for (var j = this.startCutIndex; (j < result.lines.length && j >= 0); j++) {\n remainingString += result.lines[j].text;\n }\n var bounds = new RectangleF(layoutRectangle.x, layoutRectangle.y, layoutRectangle.width, layoutRectangle.height);\n this.drawLayoutResult(result, font, format, layoutRectangle);\n this.underlineStrikeoutText(pen, brush, result, font, bounds, format);\n this.isEmfPlus = false;\n this.isUseFontSize = false;\n if (this.startCutIndex !== -1) {\n var page = this.getNextPage();\n page.graphics.drawString(remainingString, font, pen, brush, layoutRectangle.x, 0, layoutRectangle.width, 0, format);\n }\n }\n else {\n throw new Error('ArgumentNullException:result');\n }\n };\n /**\n * Gets the `next page`.\n * @private\n */\n PdfGraphics.prototype.getNextPage = function () {\n var section = this.currentPage.section;\n var nextPage = null;\n var index = section.indexOf(this.currentPage);\n if (index === section.count - 1) {\n nextPage = section.add();\n }\n else {\n nextPage = section.getPages()[index + 1];\n }\n return nextPage;\n };\n PdfGraphics.prototype.setClip = function (rectangle, mode) {\n if (typeof mode === 'undefined') {\n this.setClip(rectangle, PdfFillMode.Winding);\n }\n else {\n this.pdfStreamWriter.appendRectangle(rectangle);\n this.pdfStreamWriter.clipPath((mode === PdfFillMode.Alternate));\n }\n };\n /**\n * Applies all the `text settings`.\n * @private\n */\n PdfGraphics.prototype.applyStringSettings = function (font, pen, brush, format, bounds) {\n if (brush instanceof PdfTilingBrush) {\n this.bCSInitialized = false;\n brush.graphics.colorSpace = this.colorSpace;\n }\n else if ((brush instanceof PdfGradientBrush)) {\n this.bCSInitialized = false;\n brush.colorSpace = this.colorSpace;\n }\n var setLineWidth = false;\n var tm = this.getTextRenderingMode(pen, brush, format);\n this.stateControl(pen, brush, font, format);\n this.pdfStreamWriter.beginText();\n if ((tm) !== this.previousTextRenderingMode) {\n this.pdfStreamWriter.setTextRenderingMode(tm);\n this.previousTextRenderingMode = tm;\n }\n // Set character spacing.\n var cs = (format != null) ? format.characterSpacing : 0;\n if (cs !== this.previousCharacterSpacing && !this.isEmfTextScaled) {\n this.pdfStreamWriter.setCharacterSpacing(cs);\n this.previousCharacterSpacing = cs;\n }\n // Set word spacing.\n // NOTE: it works only if the space code is equal to 32 (0x20).\n var ws = (format != null) ? format.wordSpacing : 0;\n if (ws !== this.previousWordSpacing) {\n this.pdfStreamWriter.setWordSpacing(ws);\n this.previousWordSpacing = ws;\n }\n };\n /**\n * Calculates `shift value` if the text is vertically aligned.\n * @private\n */\n PdfGraphics.prototype.getTextVerticalAlignShift = function (textHeight, boundsHeight, format) {\n var shift = 0;\n if (boundsHeight >= 0 && format != null && format.lineAlignment !== PdfVerticalAlignment.Top) {\n switch (format.lineAlignment) {\n case PdfVerticalAlignment.Middle:\n shift = (boundsHeight - textHeight) / 2;\n break;\n case PdfVerticalAlignment.Bottom:\n shift = boundsHeight - textHeight;\n break;\n }\n }\n return shift;\n };\n /* tslint:disable */\n /**\n * `Draws layout result`.\n * @private\n */\n PdfGraphics.prototype.drawLayoutResult = function (result, font, format, layoutRectangle) {\n var vAlignShift = this.getTextVerticalAlignShift(result.actualSize.height, layoutRectangle.height, format);\n if (vAlignShift !== 0) {\n this.pdfStreamWriter.startNextLine(0, vAlignShift);\n }\n var ttfFont = font;\n var unicode = (ttfFont != null && ttfFont.isUnicode);\n var embed = (ttfFont != null && ttfFont.isEmbedFont);\n var lines = result.lines;\n for (var i = 0, len = lines.length; (i < len && i !== this.startCutIndex); i++) {\n var lineInfo = lines[i];\n var line = lineInfo.text;\n var lineWidth = lineInfo.width;\n var hAlignShift = this.getHorizontalAlignShift(lineWidth, layoutRectangle.width, format);\n var lineIndent = this.getLineIndent(lineInfo, format, layoutRectangle, (i === 0));\n hAlignShift += (!this.rightToLeft(format)) ? lineIndent : 0;\n if (hAlignShift !== 0 && !this.isEmfTextScaled) {\n this.pdfStreamWriter.startNextLine(hAlignShift, 0);\n }\n if (unicode) {\n this.drawUnicodeLine(lineInfo, layoutRectangle, font, format);\n }\n else {\n this.drawAsciiLine(lineInfo, layoutRectangle, font, format);\n }\n if (hAlignShift !== 0 && !this.isEmfTextScaled) {\n this.pdfStreamWriter.startNextLine(-hAlignShift, 0);\n }\n if (this.isOverloadWithPosition && lines.length > 1) {\n this.pdfStreamWriter.startNextLine(-(layoutRectangle.x), 0);\n layoutRectangle.x = 0;\n layoutRectangle.width = this.clientSize.width;\n this.isOverloadWithPosition = false;\n this.isPointOverload = true;\n }\n }\n this.getResources.getResources().requireProcedureSet(this.procedureSets.text);\n if (vAlignShift !== 0) {\n this.pdfStreamWriter.startNextLine(0, -(vAlignShift - result.lineHeight));\n }\n this.pdfStreamWriter.endText();\n };\n /**\n * `Draws Ascii line`.\n * @private\n */\n PdfGraphics.prototype.drawAsciiLine = function (lineInfo, layoutRectangle, font, format) {\n this.justifyLine(lineInfo, layoutRectangle.width, format);\n var value = '';\n if (lineInfo.text.indexOf('(') !== -1 || lineInfo.text.indexOf(')') !== -1) {\n for (var i = 0; i < lineInfo.text.length; i++) {\n if (lineInfo.text[i] === '(') {\n value += '\\\\\\(';\n }\n else if (lineInfo.text[i] === ')') {\n value += '\\\\\\)';\n }\n else {\n value += lineInfo.text[i];\n }\n }\n }\n if (value === '') {\n value = lineInfo.text;\n }\n var line = '(' + value + ')';\n this.pdfStreamWriter.showNextLineText(new PdfString(line));\n };\n /**\n * Draws unicode line.\n * @private\n */\n PdfGraphics.prototype.drawUnicodeLine = function (lineInfo, layoutRectangle, font, format) {\n var line = lineInfo.text;\n var lineWidth = lineInfo.width;\n var rtl = (format !== null && typeof format !== 'undefined' && format.rightToLeft);\n var useWordSpace = (format !== null && typeof format !== 'undefined' && (format.wordSpacing !== 0 || format.alignment === PdfTextAlignment.Justify));\n var ttfFont = font;\n var wordSpacing = this.justifyLine(lineInfo, layoutRectangle.width, format);\n var rtlRender = new RtlRenderer();\n if (rtl || (format !== null && typeof format !== 'undefined' && format.textDirection !== PdfTextDirection.None)) {\n var blocks = null;\n var rightAlign = (format !== null && typeof format !== 'undefined' && format.alignment === PdfTextAlignment.Right);\n if (format !== null && typeof format !== 'undefined' && format.textDirection !== PdfTextDirection.None) {\n /* tslint:disable-next-line:max-line-length */\n blocks = rtlRender.layout(line, ttfFont, (format.textDirection === PdfTextDirection.RightToLeft) ? true : false, useWordSpace, format);\n }\n else {\n blocks = rtlRender.layout(line, ttfFont, rightAlign, useWordSpace, format);\n }\n var words = null;\n if (blocks.length > 1) {\n if (format !== null && typeof format !== 'undefined' && format.textDirection !== PdfTextDirection.None) {\n /* tslint:disable-next-line:max-line-length */\n words = rtlRender.splitLayout(line, ttfFont, (format.textDirection === PdfTextDirection.RightToLeft) ? true : false, useWordSpace, format);\n }\n else {\n words = rtlRender.splitLayout(line, ttfFont, rightAlign, useWordSpace, format);\n }\n }\n else {\n words = [line];\n }\n this.drawUnicodeBlocks(blocks, words, ttfFont, format, wordSpacing);\n }\n else {\n if (useWordSpace) {\n var result = this.breakUnicodeLine(line, ttfFont, null);\n var blocks = result.tokens;\n var words = result.words;\n this.drawUnicodeBlocks(blocks, words, ttfFont, format, wordSpacing);\n }\n else {\n var token = this.convertToUnicode(line, ttfFont);\n var value = this.getUnicodeString(token);\n this.streamWriter.showNextLineText(value);\n }\n }\n };\n /**\n * Draws array of unicode tokens.\n */\n /* tslint:disable */\n PdfGraphics.prototype.drawUnicodeBlocks = function (blocks, words, font, format, wordSpacing) {\n /* tslint:enable */\n if (blocks == null) {\n throw new Error('Argument Null Exception : blocks');\n }\n if (words == null) {\n throw new Error('Argument Null Exception : words');\n }\n if (font == null) {\n throw new Error('Argument Null Exception : font');\n }\n this.streamWriter.startNextLine();\n var x = 0;\n var xShift = 0;\n var firstLineIndent = 0;\n var paragraphIndent = 0;\n try {\n if (format !== null && typeof format !== 'undefined') {\n firstLineIndent = format.firstLineIndent;\n paragraphIndent = format.paragraphIndent;\n format.firstLineIndent = 0;\n format.paragraphIndent = 0;\n }\n var spaceWidth = font.getCharWidth(StringTokenizer.whiteSpace, format) + wordSpacing;\n var characterSpacing = (format != null) ? format.characterSpacing : 0;\n var wordSpace = (format !== null && typeof format !== 'undefined' && wordSpacing === 0) ? format.wordSpacing : 0;\n spaceWidth += characterSpacing + wordSpace;\n for (var i = 0; i < blocks.length; i++) {\n var token = blocks[i];\n var word = words[i];\n var tokenWidth = 0;\n if (x !== 0) {\n this.streamWriter.startNextLine(x, 0);\n }\n if (word.length > 0) {\n tokenWidth += /*Utils.Round(*/ font.measureString(word, format).width /*)*/;\n tokenWidth += characterSpacing;\n var val = this.getUnicodeString(token);\n this.streamWriter.showText(val);\n }\n if (i !== blocks.length - 1) {\n x = tokenWidth + spaceWidth;\n xShift += x;\n }\n }\n // Rolback current line position.\n if (xShift > 0) {\n this.streamWriter.startNextLine(-xShift, 0);\n }\n }\n finally {\n if (format !== null && typeof format !== 'undefined') {\n format.firstLineIndent = firstLineIndent;\n format.paragraphIndent = paragraphIndent;\n }\n }\n };\n /**\n * Breakes the unicode line to the words and converts symbols to glyphs.\n */\n PdfGraphics.prototype.breakUnicodeLine = function (line, ttfFont, words) {\n if (line === null) {\n throw new Error('Argument Null Exception : line');\n }\n words = line.split(null);\n var tokens = [];\n for (var i = 0; i < words.length; i++) {\n // Reconvert string according to unicode standard.\n var word = words[i];\n var token = this.convertToUnicode(word, ttfFont);\n tokens[i] = token;\n }\n return { tokens: tokens, words: words };\n };\n /**\n * Creates PdfString from the unicode text.\n */\n PdfGraphics.prototype.getUnicodeString = function (token) {\n if (token === null) {\n throw new Error('Argument Null Exception : token');\n }\n var val = new PdfString(token);\n val.converted = true;\n val.encode = InternalEnum.ForceEncoding.Ascii;\n return val;\n };\n /**\n * Converts to unicode format.\n */\n PdfGraphics.prototype.convertToUnicode = function (text, ttfFont) {\n var token = null;\n if (text == null) {\n throw new Error('Argument Null Exception : text');\n }\n if (ttfFont == null) {\n throw new Error('Argument Null Exception : ttfFont');\n }\n if (ttfFont.fontInternal instanceof UnicodeTrueTypeFont) {\n var ttfReader = ttfFont.fontInternal.ttfReader;\n ttfFont.setSymbols(text);\n token = ttfReader.convertString(text);\n var bytes = PdfString.toUnicodeArray(token, false);\n token = PdfString.byteToString(bytes);\n }\n return token;\n };\n /**\n * `Justifies` the line if needed.\n * @private\n */\n PdfGraphics.prototype.justifyLine = function (lineInfo, boundsWidth, format) {\n var line = lineInfo.text;\n var lineWidth = lineInfo.width;\n var shouldJustify = this.shouldJustify(lineInfo, boundsWidth, format);\n var hasWordSpacing = (format != null && format.wordSpacing !== 0);\n var symbols = StringTokenizer.spaces;\n var whitespacesCount = StringTokenizer.getCharsCount(line, symbols);\n var wordSpace = 0;\n if (shouldJustify) {\n // Correct line width.\n if (hasWordSpacing) {\n lineWidth -= (whitespacesCount * format.wordSpacing);\n }\n var difference = boundsWidth - lineWidth;\n wordSpace = difference / whitespacesCount;\n this.pdfStreamWriter.setWordSpacing(wordSpace);\n }\n else {\n // If there is justifying, but the line shouldn't be justified, restore default word spacing.\n if (hasWordSpacing) {\n this.pdfStreamWriter.setWordSpacing(format.wordSpacing);\n }\n else {\n this.pdfStreamWriter.setWordSpacing(0);\n }\n }\n return wordSpace;\n };\n /**\n * `Reset` or reinitialize the current graphic value.\n * @private\n */\n PdfGraphics.prototype.reset = function (size) {\n this.canvasSize = size;\n this.streamWriter.clear();\n this.initialize();\n this.initializeCoordinates();\n };\n /**\n * Checks whether the line should be `justified`.\n * @private\n */\n PdfGraphics.prototype.shouldJustify = function (lineInfo, boundsWidth, format) {\n var line = lineInfo.text;\n var lineWidth = lineInfo.width;\n var justifyStyle = (format != null && format.alignment === PdfTextAlignment.Justify);\n var goodWidth = (boundsWidth >= 0 && lineWidth < boundsWidth);\n var symbols = StringTokenizer.spaces;\n var whitespacesCount = StringTokenizer.getCharsCount(line, symbols);\n var hasSpaces = (whitespacesCount > 0 && line[0] !== StringTokenizer.whiteSpace);\n var goodLineBreakStyle = ((lineInfo.lineType & LineType.LayoutBreak) > 0);\n /* tslint:disable */\n var shouldJustify = (justifyStyle && goodWidth && hasSpaces && (goodLineBreakStyle || format.alignment === PdfTextAlignment.Justify)); /* tslint:enable */\n return shouldJustify;\n };\n /* tslint:disable */\n /**\n * Emulates `Underline, Strikeout` of the text if needed.\n * @private\n */\n PdfGraphics.prototype.underlineStrikeoutText = function (pen, brush, result, font, layoutRectangle, format) {\n if (font.underline || font.strikeout) {\n // Calculate line width.\n var linePen = this.createUnderlineStikeoutPen(pen, brush, font, format);\n if (linePen != null) {\n // Approximate line positions.\n var vShift = this.getTextVerticalAlignShift(result.actualSize.height, layoutRectangle.height, format);\n var underlineYOffset = 0;\n underlineYOffset = layoutRectangle.y + vShift + font.metrics.getAscent(format) + 1.5 * linePen.width;\n var strikeoutYOffset = layoutRectangle.y + vShift + font.metrics.getHeight(format) / 2 + 1.5 * linePen.width;\n var lines = result.lines;\n // Run through the text and draw lines.\n for (var i = 0, len = result.lineCount; i < len; i++) {\n var lineInfo = lines[i];\n var line = lineInfo.text;\n var lineWidth = lineInfo.width;\n var hShift = this.getHorizontalAlignShift(lineWidth, layoutRectangle.width, format);\n var lineIndent = this.getLineIndent(lineInfo, format, layoutRectangle, (i === 0));\n hShift += (!this.rightToLeft(format)) ? lineIndent : 0;\n var x1 = layoutRectangle.x + hShift;\n /* tslint:disable */\n var x2 = (!this.shouldJustify(lineInfo, layoutRectangle.width, format)) ? x1 + lineWidth - lineIndent : x1 + layoutRectangle.width - lineIndent;\n /* tslint:enable */\n if (font.underline) {\n var y = underlineYOffset;\n this.drawLine(linePen, x1, y, x2, y);\n underlineYOffset += result.lineHeight;\n }\n if (font.strikeout) {\n var y = strikeoutYOffset;\n this.drawLine(linePen, x1, y, x2, y);\n strikeoutYOffset += result.lineHeight;\n }\n if (this.isPointOverload && lines.length > 1) {\n layoutRectangle.x = 0;\n layoutRectangle.width = this.clientSize.width;\n }\n }\n this.isPointOverload = false;\n }\n }\n };\n /**\n * `Creates a pen` for drawing lines in the text.\n * @private\n */\n PdfGraphics.prototype.createUnderlineStikeoutPen = function (pen, brush, font, format) {\n // Calculate line width.\n var lineWidth = font.metrics.getSize(format) / 20;\n var linePen = null;\n // Create a pen fo the lines.\n if (pen != null) {\n linePen = new PdfPen(pen.color, lineWidth);\n }\n else if (brush != null) {\n linePen = new PdfPen(brush, lineWidth);\n }\n return linePen;\n };\n /**\n * Return `text rendering mode`.\n * @private\n */\n PdfGraphics.prototype.getTextRenderingMode = function (pen, brush, format) {\n var tm = TextRenderingMode.None;\n if (pen != null && brush != null) {\n tm = TextRenderingMode.FillStroke;\n }\n else if (pen != null) {\n tm = TextRenderingMode.Stroke;\n }\n else {\n tm = TextRenderingMode.Fill;\n }\n if (format != null && format.clipPath) {\n tm |= TextRenderingMode.ClipFlag;\n }\n return tm;\n };\n /**\n * Returns `line indent` for the line.\n * @private\n */\n PdfGraphics.prototype.getLineIndent = function (lineInfo, format, layoutBounds, firstLine) {\n var lineIndent = 0;\n var firstParagraphLine = ((lineInfo.lineType & LineType.FirstParagraphLine) > 0);\n if (format != null && firstParagraphLine) {\n lineIndent = (firstLine) ? format.firstLineIndent : format.paragraphIndent;\n lineIndent = (layoutBounds.width > 0) ? Math.min(layoutBounds.width, lineIndent) : lineIndent;\n }\n return lineIndent;\n };\n /**\n * Calculates shift value if the line is `horizontaly aligned`.\n * @private\n */\n PdfGraphics.prototype.getHorizontalAlignShift = function (lineWidth, boundsWidth, format) {\n var shift = 0;\n if (boundsWidth >= 0 && format != null && format.alignment !== PdfTextAlignment.Left) {\n switch (format.alignment) {\n case PdfTextAlignment.Center:\n shift = (boundsWidth - lineWidth) / 2;\n break;\n case PdfTextAlignment.Right:\n shift = boundsWidth - lineWidth;\n break;\n }\n }\n return shift;\n };\n /**\n * Gets or sets the value that indicates `text direction` mode.\n * @private\n */\n PdfGraphics.prototype.rightToLeft = function (format) {\n var rtl = (format !== null && typeof format !== 'undefined' && format.rightToLeft);\n if (format !== null && typeof format !== 'undefined') {\n if (format.textDirection !== PdfTextDirection.None && typeof format.textDirection !== 'undefined') {\n rtl = true;\n }\n }\n return rtl;\n };\n PdfGraphics.prototype.stateControl = function (pen, brush, font, format) {\n if (typeof format === 'undefined') {\n this.stateControl(pen, brush, font, null);\n }\n else {\n if (brush instanceof PdfGradientBrush) {\n this.bCSInitialized = false;\n brush.colorSpace = this.colorSpace;\n }\n if (brush instanceof PdfTilingBrush) {\n this.bCSInitialized = false;\n brush.graphics.colorSpace = this.colorSpace;\n }\n var saveState = false;\n if (brush !== null) {\n var solidBrush = brush;\n if (typeof this.pageLayer !== 'undefined' && this.pageLayer != null) {\n if (this.colorSpaceChanged === false) {\n this.lastDocumentCS = this.pageLayer.page.document.colorSpace;\n this.lastGraphicsCS = this.pageLayer.page.graphics.colorSpace;\n this.colorSpace = this.pageLayer.page.document.colorSpace;\n this.currentColorSpace = this.pageLayer.page.document.colorSpace;\n this.colorSpaceChanged = true;\n }\n }\n this.initCurrentColorSpace(this.currentColorSpace);\n }\n else if (pen != null) {\n var pdfPen = pen;\n if (typeof this.pageLayer !== 'undefined' && this.pageLayer != null) {\n /* tslint:disable */\n this.colorSpace = this.pageLayer.page.document.colorSpace;\n this.currentColorSpace = this.pageLayer.page.document.colorSpace;\n }\n this.initCurrentColorSpace(this.currentColorSpace);\n }\n this.penControl(pen, saveState);\n this.brushControl(brush, saveState);\n this.fontControl(font, format, saveState);\n }\n };\n /**\n * Initializes the `current color space`.\n * @private\n */\n PdfGraphics.prototype.initCurrentColorSpace = function (colorspace) {\n var re = this.getResources.getResources();\n if (!this.bCSInitialized) {\n if (this.currentColorSpace != PdfColorSpace.GrayScale) {\n this.pdfStreamWriter.setColorSpace('Device' + this.currentColorSpaces[this.currentColorSpace], true);\n this.pdfStreamWriter.setColorSpace('Device' + this.currentColorSpaces[this.currentColorSpace], false);\n this.bCSInitialized = true;\n }\n else {\n this.pdfStreamWriter.setColorSpace('DeviceGray', true);\n this.pdfStreamWriter.setColorSpace('DeviceGray', false);\n this.bCSInitialized = true;\n }\n }\n };\n /**\n * Controls the `pen state`.\n * @private\n */\n PdfGraphics.prototype.penControl = function (pen, saveState) {\n if (pen != null) {\n this.currentPen = pen;\n /* tslint:disable */\n pen.monitorChanges(this.currentPen, this.pdfStreamWriter, this.getResources, saveState, this.colorSpace, this.matrix.clone());\n /* tslint:enable */\n this.currentPen = pen.clone();\n }\n };\n /**\n * Controls the `brush state`.\n * @private\n */\n PdfGraphics.prototype.brushControl = function (brush, saveState) {\n if (brush != null && typeof brush !== 'undefined') {\n var b = brush.clone();\n var lgb = b;\n if (lgb !== null && typeof lgb !== 'undefined' && !(brush instanceof PdfSolidBrush) && !(brush instanceof PdfTilingBrush)) {\n var m = lgb.matrix;\n var matrix = this.matrix.clone();\n if ((m != null)) {\n m.multiply(matrix);\n matrix = m;\n }\n lgb.matrix = matrix;\n }\n this.currentBrush = lgb;\n var br = (brush);\n /* tslint:disable */\n b.monitorChanges(this.currentBrush, this.pdfStreamWriter, this.getResources, saveState, this.colorSpace);\n /* tslint:enable */\n this.currentBrush = brush;\n brush = null;\n }\n };\n /**\n * Saves the font and other `font settings`.\n * @private\n */\n PdfGraphics.prototype.fontControl = function (font, format, saveState) {\n if (font != null) {\n var curSubSuper = (format != null) ? format.subSuperScript : PdfSubSuperScript.None;\n /* tslint:disable */\n var prevSubSuper = (this.currentStringFormat != null) ? this.currentStringFormat.subSuperScript : PdfSubSuperScript.None; /* tslint:enable */\n if (saveState || font !== this.currentFont || curSubSuper !== prevSubSuper) {\n var resources = this.getResources.getResources();\n this.currentFont = font;\n this.currentStringFormat = format;\n var size = font.metrics.getSize(format);\n /* tslint:disable */\n this.isEmfTextScaled = false;\n var fontName = resources.getName(font);\n this.pdfStreamWriter.setFont(font, fontName, size);\n }\n }\n };\n PdfGraphics.prototype.setTransparency = function (arg1, arg2, arg3) {\n if (typeof arg2 === 'undefined') {\n this.istransparencySet = true;\n this.setTransparency(arg1, arg1, PdfBlendMode.Normal);\n }\n else if (typeof arg2 === 'number' && typeof arg3 === 'undefined') {\n this.setTransparency(arg1, arg2, PdfBlendMode.Normal);\n }\n else {\n if (this.trasparencies == null) {\n this.trasparencies = new TemporaryDictionary();\n }\n var transp = null;\n var td = new TransparencyData(arg1, arg2, arg3);\n if (this.trasparencies.containsKey(td)) {\n transp = this.trasparencies.getValue(td);\n }\n if (transp == null) {\n transp = new PdfTransparency(arg1, arg2, arg3);\n this.trasparencies.setValue(td, transp);\n }\n var resources = this.getResources.getResources();\n var name_3 = resources.getName(transp);\n var sw = this.streamWriter;\n sw.setGraphicsState(name_3);\n }\n };\n PdfGraphics.prototype.clipTranslateMargins = function (x, y, left, top, right, bottom) {\n if (x instanceof RectangleF && typeof y === 'undefined') {\n this.clipBounds = x;\n this.pdfStreamWriter.writeComment('Clip margins.');\n this.pdfStreamWriter.appendRectangle(x);\n this.pdfStreamWriter.closePath();\n this.pdfStreamWriter.clipPath(false);\n this.pdfStreamWriter.writeComment('Translate co-ordinate system.');\n this.translateTransform(x.x, x.y);\n }\n else if (typeof x === 'number') {\n var clipArea = new RectangleF(left, top, this.size.width - left - right, this.size.height - top - bottom);\n this.clipBounds = clipArea;\n this.pdfStreamWriter.writeComment(\"Clip margins.\");\n this.pdfStreamWriter.appendRectangle(clipArea);\n this.pdfStreamWriter.closePath();\n this.pdfStreamWriter.clipPath(false);\n this.pdfStreamWriter.writeComment(\"Translate co-ordinate system.\");\n this.translateTransform(x, y);\n }\n };\n /**\n * `Updates y` co-ordinate.\n * @private\n */\n PdfGraphics.prototype.updateY = function (y) {\n return -y;\n };\n /**\n * Used to `translate the transformation`.\n * ```typescript\n * // create a new PDF document\n * let document : PdfDocument = new PdfDocument();\n * // create a new page\n * let page1 : PdfPage = document.pages.add();\n * // set pen\n * let pen : PdfPen = new PdfPen(new PdfColor(0, 0, 0));\n * //\n * // set translate transform\n * page1.graphics.translateTransform(100, 100);\n * //\n * // draw the rectangle after applying translate transform\n * page1.graphics.drawRectangle(pen, new RectangleF({x : 0, y : 0}, {width : 100, height : 50}));\n * // save the document.\n * document.save('output.pdf');\n * // destroy the document\n * document.destroy();\n * ```\n * @param offsetX The x-coordinate of the translation.\n * @param offsetY The y-coordinate of the translation.\n */\n PdfGraphics.prototype.translateTransform = function (offsetX, offsetY) {\n var matrix = new PdfTransformationMatrix();\n this.getTranslateTransform(offsetX, offsetY, matrix);\n this.pdfStreamWriter.modifyCtm(matrix);\n this.matrix.multiply(matrix);\n };\n /**\n * `Translates` coordinates of the input matrix.\n * @private\n */\n PdfGraphics.prototype.getTranslateTransform = function (x, y, input) {\n input.translate(x, this.updateY(y));\n return input;\n };\n /* tslint:disable */\n /**\n * Applies the specified `scaling operation` to the transformation matrix of this Graphics by prepending it to the object's transformation matrix.\n * ```typescript\n * // create a new PDF document\n * let document : PdfDocument = new PdfDocument();\n * // create a new page\n * let page1 : PdfPage = document.pages.add();\n * // create pen\n * let pen : PdfPen = new PdfPen(new PdfColor(0, 0, 0));\n * //\n * // apply scaling trasformation\n * page1.graphics.scaleTransform(1.5, 2);\n * //\n * // draw the rectangle after applying scaling transform\n * page1.graphics.drawRectangle(pen, new RectangleF({x : 100, y : 100}, {width : 100, height : 50}));\n * // save the document.\n * document.save('output.pdf');\n * // destroy the document\n * document.destroy();\n * ```\n * @param scaleX Scale factor in the x direction.\n * @param scaleY Scale factor in the y direction.\n */\n /* tslint:enable */\n PdfGraphics.prototype.scaleTransform = function (scaleX, scaleY) {\n var matrix = new PdfTransformationMatrix();\n this.getScaleTransform(scaleX, scaleY, matrix);\n this.pdfStreamWriter.modifyCtm(matrix);\n this.matrix.multiply(matrix);\n };\n /**\n * `Scales` coordinates of the input matrix.\n * @private\n */\n PdfGraphics.prototype.getScaleTransform = function (x, y, input) {\n if (input == null) {\n input = new PdfTransformationMatrix();\n }\n input.scale(x, y);\n return input;\n };\n /**\n * Applies the specified `rotation` to the transformation matrix of this Graphics.\n * ```typescript\n * // create a new PDF document\n * let document : PdfDocument = new PdfDocument();\n * // create a new page\n * let page1 : PdfPage = document.pages.add();\n * // create pen\n * let pen : PdfPen = new PdfPen(new PdfColor(0, 0, 0));\n * //\n * // set RotateTransform with 25 degree of angle\n * page1.graphics.rotateTransform(25);\n * //\n * // draw the rectangle after RotateTransformation\n * page1.graphics.drawRectangle(pen, new RectangleF({x : 100, y : 100}, {width : 100, height : 50}));\n * // save the document.\n * document.save('output.pdf');\n * // destroy the document\n * document.destroy();\n * ```\n * @param angle Angle of rotation in degrees.\n */\n PdfGraphics.prototype.rotateTransform = function (angle) {\n var matrix = new PdfTransformationMatrix();\n this.getRotateTransform(angle, matrix);\n this.pdfStreamWriter.modifyCtm(matrix);\n this.matrix.multiply(matrix);\n };\n /**\n * `Initializes coordinate system`.\n * @private\n */\n PdfGraphics.prototype.initializeCoordinates = function () {\n // Matrix equation: TM(T-1)=M', where T=[1 0 0 -1 0 h]\n this.pdfStreamWriter.writeComment('Change co-ordinate system to left/top.');\n // Translate co-ordinates only, don't flip.\n if (this.mediaBoxUpperRightBound !== -(this.size.height)) {\n if (this.cropBox == null) {\n if (this.mediaBoxUpperRightBound === this.size.height || this.mediaBoxUpperRightBound === 0) {\n this.translateTransform(0, this.updateY(this.size.height));\n }\n else {\n this.translateTransform(0, this.updateY(this.mediaBoxUpperRightBound));\n }\n }\n }\n };\n /**\n * `Rotates` coordinates of the input matrix.\n * @private\n */\n PdfGraphics.prototype.getRotateTransform = function (angle, input) {\n if (input == null || typeof input === 'undefined') {\n input = new PdfTransformationMatrix();\n }\n input.rotate(this.updateY(angle));\n return input;\n };\n /**\n * `Saves` the current state of this Graphics and identifies the saved state with a GraphicsState.\n * ```typescript\n * // create a new PDF document\n * let document : PdfDocument = new PdfDocument();\n * // create a new page\n * let page1 : PdfPage = document.pages.add();\n * // create pen\n * let pen : PdfPen = new PdfPen(new PdfColor(0, 0, 0));\n * //\n * // save the graphics state\n * let state1 : PdfGraphicsState = page1.graphics.save();\n * //\n * page1.graphics.scaleTransform(1.5, 2);\n * // draw the rectangle\n * page1.graphics.drawRectangle(pen, new RectangleF({x : 100, y : 100}, {width : 100, height : 50}));\n * // restore the graphics state\n * page1.graphics.restore(state1);\n * // save the document.\n * document.save('output.pdf');\n * // destroy the document\n * document.destroy();\n * ```\n */\n PdfGraphics.prototype.save = function () {\n var state = new PdfGraphicsState(this, this.matrix.clone());\n state.brush = this.currentBrush;\n state.pen = this.currentPen;\n state.font = this.currentFont;\n state.colorSpace = this.currentColorSpace;\n state.characterSpacing = this.previousCharacterSpacing;\n state.wordSpacing = this.previousWordSpacing;\n state.textScaling = this.previousTextScaling;\n state.textRenderingMode = this.previousTextRenderingMode;\n this.graphicsState.push(state);\n this.pdfStreamWriter.saveGraphicsState();\n return state;\n };\n PdfGraphics.prototype.restore = function (state) {\n if (typeof state === 'undefined') {\n if (this.graphicsState.length > 0) {\n this.doRestoreState();\n }\n }\n else {\n if (this.graphicsState.indexOf(state) !== -1) {\n for (;;) {\n if (this.graphicsState.length === 0) {\n break;\n }\n var popState = this.doRestoreState();\n if (popState === state) {\n break;\n }\n }\n }\n }\n };\n /**\n * `Restores graphics state`.\n * @private\n */\n PdfGraphics.prototype.doRestoreState = function () {\n var state = this.graphicsState.pop();\n this.transformationMatrix = state.matrix;\n this.currentBrush = state.brush;\n this.currentPen = state.pen;\n this.currentFont = state.font;\n this.currentColorSpace = state.colorSpace;\n this.previousCharacterSpacing = state.characterSpacing;\n this.previousWordSpacing = state.wordSpacing;\n this.previousTextScaling = state.textScaling;\n this.previousTextRenderingMode = state.textRenderingMode;\n this.pdfStreamWriter.restoreGraphicsState();\n return state;\n };\n /* tslint:enable */\n /**\n * `Draws the specified path`, using its original physical size, at the location specified by a coordinate pair.\n * ```typescript\n * // create a new PDF document.\n * let document : PdfDocument = new PdfDocument();\n * // add a page to the document.\n * let page1 : PdfPage = document.pages.add();\n * //Create new PDF path.\n * let path : PdfPath = new PdfPath();\n * //Add line path points.\n * path.addLine(new PointF(10, 100), new PointF(10, 200));\n * path.addLine(new PointF(100, 100), new PointF(100, 200));\n * path.addLine(new PointF(100, 200), new PointF(55, 150));\n * // set pen\n * let pen : PdfPen = new PdfPen(new PdfColor(255, 0, 0));\n * // set brush\n * let brush : PdfSolidBrush = new PdfSolidBrush(new PdfColor(0, 0, 0));\n * // draw the path\n * page1.graphics.drawPath(pen, brush, path);\n * //\n * // save the document.\n * document.save('output.pdf');\n * // destroy the document\n * document.destroy();\n * ```\n * @param pen Color of the text.\n * @param brush Color of the text.\n * @param path Draw path.\n */\n PdfGraphics.prototype.drawPath = function (pen, brush, path) {\n if (brush instanceof PdfTilingBrush) {\n this.bCSInitialized = false;\n brush.graphics.colorSpace = this.colorSpace;\n }\n else if (brush instanceof PdfGradientBrush) {\n this.bCSInitialized = false;\n brush.colorSpace = this.colorSpace;\n }\n this.stateControl(pen, brush, null);\n this.buildUpPath(path.pathPoints, path.pathTypes);\n this.drawPathHelper(pen, brush, path.fillMode, false);\n };\n /* tslint:disable-next-line:max-line-length */\n PdfGraphics.prototype.drawArc = function (arg1, arg2, arg3, arg4, arg5, arg6, arg7) {\n if (arg2 instanceof RectangleF) {\n this.drawArc(arg1, arg2.x, arg2.y, arg2.width, arg2.height, arg3, arg4);\n }\n else {\n if ((arg7 !== 0)) {\n this.stateControl(arg1, null, null);\n this.constructArcPath(arg2, arg3, (arg2 + arg4), (arg3 + arg5), arg6, arg7);\n this.drawPathHelper(arg1, null, false);\n }\n }\n };\n /**\n * Builds up the path.\n * @private\n */\n PdfGraphics.prototype.buildUpPath = function (arg1, arg2) {\n var cnt = arg1.length;\n for (var i = 0; i < cnt; ++i) {\n var typeValue = 0;\n var point = arg1[i];\n switch (((arg2[i] & (PdfGraphics.pathTypesValuesMask)))) {\n case PathPointType.Start:\n this.pdfStreamWriter.beginPath(point.x, point.y);\n break;\n case PathPointType.Bezier3:\n var p2 = new PointF(0, 0);\n var p3 = new PointF(0, 0);\n var result1 = this.getBezierPoints(arg1, arg2, i, p2, p3);\n this.pdfStreamWriter.appendBezierSegment(point, result1.p2, result1.p3);\n i = result1.i;\n break;\n case PathPointType.Line:\n this.pdfStreamWriter.appendLineSegment(point);\n break;\n default:\n throw new Error('ArithmeticException - Incorrect path formation.');\n }\n typeValue = arg2[i];\n this.checkFlags(typeValue);\n }\n };\n /**\n * Gets the bezier points from respective arrays.\n * @private\n */\n /* tslint:disable-next-line:max-line-length */\n PdfGraphics.prototype.getBezierPoints = function (points, types, i, p2, p3) {\n var errorMsg = 'Malforming path.';\n ++i;\n if ((((types[i] & PdfGraphics.pathTypesValuesMask)) === PathPointType.Bezier3)) {\n p2 = points[i];\n ++i;\n if ((((types[i] & PdfGraphics.pathTypesValuesMask)) === PathPointType.Bezier3)) {\n p3 = points[i];\n }\n else {\n throw new Error('ArgumentException : errorMsg');\n }\n }\n else {\n throw new Error('ArgumentException : errorMsg');\n }\n return { i: i, p2: p2, p3: p3 };\n };\n /**\n * Checks path point type flags.\n * @private\n */\n PdfGraphics.prototype.checkFlags = function (type) {\n if ((((type & (PathPointType.CloseSubpath))) === PathPointType.CloseSubpath)) {\n this.pdfStreamWriter.closePath();\n }\n };\n /**\n * Constructs the arc path using Bezier curves.\n * @private\n */\n PdfGraphics.prototype.constructArcPath = function (x1, y1, x2, y2, startAng, sweepAngle) {\n var points = this.getBezierArc(x1, y1, x2, y2, startAng, sweepAngle);\n if ((points.length === 0)) {\n return;\n }\n var pt = [points[0], points[1], points[2], points[3], points[4], points[5], points[6], points[7]];\n this.pdfStreamWriter.beginPath(pt[0], pt[1]);\n var i = 0;\n for (i = 0; i < points.length; i = i + 8) {\n pt = [points[i], points[i + 1], points[i + 2], points[i + 3], points[i + 4], points[i + 5], points[i + 6], points[i + 7]];\n this.pdfStreamWriter.appendBezierSegment(pt[2], pt[3], pt[4], pt[5], pt[6], pt[7]);\n }\n };\n /**\n * Gets the bezier points for arc constructing.\n * @private\n */\n PdfGraphics.prototype.getBezierArc = function (numX1, numY1, numX2, numY2, s1, e1) {\n if ((numX1 > numX2)) {\n var tmp = void 0;\n tmp = numX1;\n numX1 = numX2;\n numX2 = tmp;\n }\n if ((numY2 > numY1)) {\n var tmp = void 0;\n tmp = numY1;\n numY1 = numY2;\n numY2 = tmp;\n }\n var fragAngle1;\n var numFragments;\n if ((Math.abs(e1) <= 90)) {\n fragAngle1 = e1;\n numFragments = 1;\n }\n else {\n numFragments = (Math.ceil((Math.abs(e1) / 90)));\n fragAngle1 = (e1 / numFragments);\n }\n var xcen = ((numX1 + numX2) / 2);\n var ycen = ((numY1 + numY2) / 2);\n var rx = ((numX2 - numX1) / 2);\n var ry = ((numY2 - numY1) / 2);\n var halfAng = ((fragAngle1 * (Math.PI / 360)));\n var kappa = (Math.abs(4.0 / 3.0 * (1.0 - Math.cos(halfAng)) / Math.sin(halfAng)));\n var pointsList = [];\n for (var i = 0; (i < numFragments); i++) {\n var thetaValue0 = (((s1 + (i * fragAngle1)) * (Math.PI / 180)));\n var thetaValue1 = (((s1 + ((i + 1) * fragAngle1)) * (Math.PI / 180)));\n var cos0 = (Math.cos(thetaValue0));\n var cos1 = (Math.cos(thetaValue1));\n var sin0 = (Math.sin(thetaValue0));\n var sin1 = (Math.sin(thetaValue1));\n if ((fragAngle1 > 0)) {\n /* tslint:disable-next-line:max-line-length */\n pointsList.push((xcen + (rx * cos0)), (ycen - (ry * sin0)), (xcen + (rx * (cos0 - (kappa * sin0)))), (ycen - (ry * (sin0 + (kappa * cos0)))), (xcen + (rx * (cos1 + (kappa * sin1)))), (ycen - (ry * (sin1 - (kappa * cos1)))), (xcen + (rx * cos1)), (ycen - (ry * sin1)));\n }\n else {\n /* tslint:disable-next-line:max-line-length */\n pointsList.push((xcen + (rx * cos0)), (ycen - (ry * sin0)), (xcen + (rx * (cos0 + (kappa * sin0)))), (ycen - (ry * (sin0 - (kappa * cos0)))), (xcen + (rx * (cos1 - (kappa * sin1)))), (ycen - (ry * (sin1 + (kappa * cos1)))), (xcen + (rx * cos1)), (ycen - (ry * sin1)));\n }\n }\n return pointsList;\n };\n // Constants\n /**\n * Specifies the mask of `path type values`.\n * @private\n */\n PdfGraphics.pathTypesValuesMask = 0xf;\n /**\n * Checks whether the object is `transparencyObject`.\n * @hidden\n * @private\n */\n PdfGraphics.transparencyObject = false;\n return PdfGraphics;\n}());\nexport { PdfGraphics };\n/**\n * `GetResourceEventHandler` class is alternate for event handlers and delegates.\n * @private\n * @hidden\n */\nvar GetResourceEventHandler = /** @class */ (function () {\n /**\n * Initialize instance of `GetResourceEventHandler` class.\n * Alternate for event handlers and delegates.\n * @private\n */\n function GetResourceEventHandler(sender) {\n this.sender = sender;\n }\n /**\n * Return the instance of `PdfResources` class.\n * @private\n */\n GetResourceEventHandler.prototype.getResources = function () {\n return this.sender.getResources();\n };\n return GetResourceEventHandler;\n}());\nexport { GetResourceEventHandler };\nvar PdfGraphicsState = /** @class */ (function () {\n function PdfGraphicsState(graphics, matrix) {\n /**\n * Stores `previous rendering mode`.\n * @default TextRenderingMode.Fill\n * @private\n */\n this.internalTextRenderingMode = TextRenderingMode.Fill;\n /**\n * `Previous character spacing` value or 0.\n * @default 0.0\n * @private\n */\n this.internalCharacterSpacing = 0.0;\n /**\n * `Previous word spacing` value or 0.\n * @default 0.0\n * @private\n */\n this.internalWordSpacing = 0.0;\n /**\n * The previously used `text scaling value`.\n * @default 100.0\n * @private\n */\n this.internalTextScaling = 100.0;\n /**\n * `Current color space`.\n * @default PdfColorSpace.Rgb\n * @private\n */\n this.pdfColorSpace = PdfColorSpace.Rgb;\n if (typeof graphics !== 'undefined') {\n this.pdfGraphics = graphics;\n this.transformationMatrix = matrix;\n }\n }\n Object.defineProperty(PdfGraphicsState.prototype, \"graphics\", {\n // Properties\n /**\n * Gets the parent `graphics object`.\n * @private\n */\n get: function () {\n return this.pdfGraphics;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGraphicsState.prototype, \"matrix\", {\n /**\n * Gets the `current matrix`.\n * @private\n */\n get: function () {\n return this.transformationMatrix;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGraphicsState.prototype, \"characterSpacing\", {\n /**\n * Gets or sets the `current character spacing`.\n * @private\n */\n get: function () {\n return this.internalCharacterSpacing;\n },\n set: function (value) {\n this.internalCharacterSpacing = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGraphicsState.prototype, \"wordSpacing\", {\n /**\n * Gets or sets the `word spacing` value.\n * @private\n */\n get: function () {\n return this.internalWordSpacing;\n },\n set: function (value) {\n this.internalWordSpacing = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGraphicsState.prototype, \"textScaling\", {\n /**\n * Gets or sets the `text scaling` value.\n * @private\n */\n get: function () {\n return this.internalTextScaling;\n },\n set: function (value) {\n this.internalTextScaling = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGraphicsState.prototype, \"pen\", {\n /**\n * Gets or sets the `current pen` object.\n * @private\n */\n get: function () {\n return this.pdfPen;\n },\n set: function (value) {\n this.pdfPen = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGraphicsState.prototype, \"brush\", {\n /**\n * Gets or sets the `brush`.\n * @private\n */\n get: function () {\n return this.pdfBrush;\n },\n set: function (value) {\n this.pdfBrush = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGraphicsState.prototype, \"font\", {\n /**\n * Gets or sets the `current font` object.\n * @private\n */\n get: function () {\n return this.pdfFont;\n },\n set: function (value) {\n this.pdfFont = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGraphicsState.prototype, \"colorSpace\", {\n /**\n * Gets or sets the `current color space` value.\n * @private\n */\n get: function () {\n return this.pdfColorSpace;\n },\n set: function (value) {\n this.pdfColorSpace = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGraphicsState.prototype, \"textRenderingMode\", {\n /**\n * Gets or sets the `text rendering mode`.\n * @private\n */\n get: function () {\n return this.internalTextRenderingMode;\n },\n set: function (value) {\n this.internalTextRenderingMode = value;\n },\n enumerable: true,\n configurable: true\n });\n return PdfGraphicsState;\n}());\nexport { PdfGraphicsState };\nvar TransparencyData = /** @class */ (function () {\n // Constructors\n /**\n * Initializes a new instance of the `TransparencyData` class.\n * @private\n */\n function TransparencyData(alphaPen, alphaBrush, blendMode) {\n this.alphaPen = alphaPen;\n this.alphaBrush = alphaBrush;\n this.blendMode = blendMode;\n }\n return TransparencyData;\n}());\n","import { PdfStream } from './../primitives/pdf-stream';\nimport { PdfGraphics, GetResourceEventHandler } from './../graphics/pdf-graphics';\nimport { PdfPageLayerCollection } from './pdf-page-layer-collection';\nimport { DictionaryProperties } from './../input-output/pdf-dictionary-properties';\nimport { PdfColorSpace } from './../graphics/enum';\n/**\n * The `PdfPageLayer` used to create layers in PDF document.\n * @private\n */\nvar PdfPageLayer = /** @class */ (function () {\n function PdfPageLayer(page, streamClipPageTemplates) {\n // private bSaved : boolean;\n /**\n * Local Variable to store the `color space` of the document.\n * @private\n */\n this.pdfColorSpace = PdfColorSpace.Rgb;\n /**\n * Local Variable to set `visibility`.\n * @default true\n * @private\n */\n this.isVisible = true;\n /**\n * Indicates if `Sublayer` is present.\n * @default false\n * @private\n */\n this.sublayer = false;\n /**\n * Local variable to store `length` of the graphics.\n * @default 0\n * @private\n */\n this.contentLength = 0;\n /**\n * Instance for `PdfDictionaryProperties` Class.\n * @private\n */\n this.dictionaryProperties = new DictionaryProperties();\n if (page === null) {\n throw new Error('ArgumentNullException:page');\n }\n this.pdfPage = page;\n this.clipPageTemplates = true;\n if (typeof streamClipPageTemplates === 'undefined') {\n this.content = new PdfStream();\n }\n else if (streamClipPageTemplates instanceof PdfStream || streamClipPageTemplates === null) {\n if (streamClipPageTemplates === null) {\n throw new Error('ArgumentNullException:stream');\n }\n this.content = streamClipPageTemplates;\n }\n else {\n this.content = new PdfStream();\n this.clipPageTemplates = streamClipPageTemplates;\n }\n }\n Object.defineProperty(PdfPageLayer.prototype, \"colorSpace\", {\n // Properties\n /**\n * Get or set the `color space`.\n * @private\n */\n get: function () {\n return this.pdfColorSpace;\n },\n set: function (value) {\n this.pdfColorSpace = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfPageLayer.prototype, \"page\", {\n /**\n * Gets parent `page` of the layer.\n * @private\n */\n get: function () {\n return this.pdfPage;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfPageLayer.prototype, \"layerId\", {\n /**\n * Gets and Sets the `id of the layer`.\n * @private\n */\n get: function () {\n return this.layerid;\n },\n set: function (value) {\n this.layerid = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfPageLayer.prototype, \"name\", {\n /**\n * Gets or sets the `name` of the layer.\n * @private\n */\n get: function () {\n return this.layerName;\n },\n set: function (value) {\n this.layerName = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfPageLayer.prototype, \"visible\", {\n /**\n * Gets or sets the `visibility` of the layer.\n * @private\n */\n get: function () {\n return this.isVisible;\n },\n set: function (value) {\n this.isVisible = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfPageLayer.prototype, \"graphics\", {\n /**\n * Gets `Graphics` context of the layer, used to draw various graphical content on layer.\n * @private\n */\n get: function () {\n if ((this.pdfGraphics == null)) {\n this.initializeGraphics(this.page);\n }\n return this.pdfGraphics;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfPageLayer.prototype, \"layers\", {\n /**\n * Gets the collection of `PdfPageLayer`, this collection handle by the class 'PdfPageLayerCollection'.\n * @private\n */\n get: function () {\n if (this.layer == null) {\n this.layer = new PdfPageLayerCollection(this.page);\n this.layer.sublayer = true;\n return this.layer;\n }\n else {\n return this.layer;\n }\n },\n enumerable: true,\n configurable: true\n });\n // Implementation\n /**\n * `Adds` a new PDF Page layer.\n * @private\n */\n PdfPageLayer.prototype.add = function () {\n var layer = new PdfPageLayer(this.pdfPage);\n layer.name = '';\n return layer;\n };\n /**\n * Returns a value indicating the `sign` of a single-precision floating-point number.\n * @private\n */\n PdfPageLayer.prototype.sign = function (number) {\n if (number === 0) {\n return 0;\n }\n else if (number > 0) {\n return 1;\n }\n else {\n return -1;\n }\n };\n /**\n * `Initializes Graphics context` of the layer.\n * @private\n */\n PdfPageLayer.prototype.initializeGraphics = function (page) {\n var oPage = page;\n var gr = new GetResourceEventHandler(this.page);\n var cropBox = null;\n this.pdfGraphics = new PdfGraphics(page.size, gr, this.content);\n this.pdfGraphics.mediaBoxUpperRightBound = 0;\n if (oPage != null) {\n var sc = oPage.section.parent;\n if (sc != null) {\n this.pdfGraphics.colorSpace = sc.document.colorSpace;\n this.colorSpace = sc.document.colorSpace;\n }\n }\n // Transform coordinates to the left/top and activate margins.\n var isSame = (this.sign(page.origin.y) === this.sign(page.origin.x));\n // if (page != null) {\n if (page.origin.x >= 0 && page.origin.y >= 0 || !(isSame)) {\n this.pdfGraphics.initializeCoordinates();\n }\n else {\n // this.m_graphics.InitializeCoordinates(page);\n }\n var clipRect = oPage.section.getActualBounds(oPage, true);\n var margins = oPage.section.pageSettings.margins;\n if (this.clipPageTemplates) {\n if (page.origin.x >= 0 && page.origin.y >= 0) {\n this.pdfGraphics.clipTranslateMargins(clipRect);\n }\n }\n else {\n this.graphics.clipTranslateMargins(clipRect.x, clipRect.y, margins.left, margins.top, margins.right, margins.bottom);\n }\n this.pdfGraphics.setLayer(this);\n // this.bSaved = false;\n };\n Object.defineProperty(PdfPageLayer.prototype, \"element\", {\n // IPdfWrapper Members\n /**\n * Gets the wrapped `element`.\n * @private\n */\n get: function () {\n return this.content;\n },\n enumerable: true,\n configurable: true\n });\n return PdfPageLayer;\n}());\nexport { PdfPageLayer };\n","/**\n * PdfCollection.ts class for EJ2-PDF\n * The class used to handle the collection of PdF objects.\n */\nvar PdfCollection = /** @class */ (function () {\n // Constructors\n /**\n * Initializes a new instance of the `Collection` class.\n * @private\n */\n function PdfCollection() {\n //\n }\n Object.defineProperty(PdfCollection.prototype, \"count\", {\n // Properties\n /**\n * Gets the `Count` of stored objects.\n * @private\n */\n get: function () {\n if (typeof this.collection === 'undefined') {\n this.collection = [];\n }\n return this.collection.length;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfCollection.prototype, \"list\", {\n /**\n * Gets the `list` of stored objects.\n * @private\n */\n get: function () {\n if (typeof this.collection === 'undefined') {\n this.collection = [];\n }\n return this.collection;\n },\n enumerable: true,\n configurable: true\n });\n return PdfCollection;\n}());\nexport { PdfCollection };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * PdfPageLayerCollection.ts class for EJ2-PDF\n */\nimport { PdfPageBase } from './pdf-page-base';\nimport { PdfDictionary } from './../primitives/pdf-dictionary';\nimport { PdfPageLayer } from './pdf-page-layer';\nimport { PdfCollection } from './../general/pdf-collection';\nimport { PdfReferenceHolder } from './../primitives/pdf-reference';\nimport { PdfStream } from './../primitives/pdf-stream';\n/**\n * The class provides methods and properties to handle the collections of `PdfPageLayer`.\n */\nvar PdfPageLayerCollection = /** @class */ (function (_super) {\n __extends(PdfPageLayerCollection, _super);\n function PdfPageLayerCollection(page) {\n var _this = _super.call(this) || this;\n /**\n * Stores the `number of first level layers` in the document.\n * @default 0\n * @private\n */\n _this.parentLayerCount = 0;\n /**\n * Indicates if `Sublayer` is present.\n * @default false\n * @private\n */\n _this.sublayer = false;\n /**\n * Stores the `optional content dictionary`.\n * @private\n */\n _this.optionalContent = new PdfDictionary();\n if (page instanceof PdfPageBase) {\n // if (page == null) {\n // throw new Error('ArgumentNullException:page');\n // }\n _this.page = page;\n var lPage = page;\n // if (lPage != null) {\n _this.parseLayers(lPage);\n // }\n }\n return _this;\n }\n PdfPageLayerCollection.prototype.items = function (index, value) {\n if (typeof index === 'number' && typeof value === 'undefined') {\n var obj = this.list[index];\n return obj;\n }\n else {\n if (value == null) {\n throw new Error('ArgumentNullException: layer');\n }\n if (value.page !== this.page) {\n throw new Error('ArgumentException: The layer belongs to another page');\n }\n // // Add/remove the layer.\n // let layer : PdfPageLayer = this.items(index);\n // if (layer != null) {\n // this.RemoveLayer(layer);\n // }\n // this.List[index] = value;\n // this.InsertLayer(index, value);\n }\n };\n PdfPageLayerCollection.prototype.add = function (firstArgument, secondArgument) {\n if (typeof firstArgument === 'undefined') {\n var layer = new PdfPageLayer(this.page);\n layer.name = '';\n this.add(layer);\n return layer;\n }\n else if (firstArgument instanceof PdfPageLayer) {\n // if (layer == null)\n // throw new ArgumentNullException(\"layer\");\n // if (layer.Page != m_page)\n // throw new ArgumentException(\"The layer belongs to another page\");\n var index = this.list.push(firstArgument);\n // Register layer.\n this.addLayer(index, firstArgument);\n return index;\n }\n else {\n return 0;\n }\n };\n /**\n * Registers `layer` at the page.\n * @private\n */\n PdfPageLayerCollection.prototype.addLayer = function (index, layer) {\n var reference = new PdfReferenceHolder(layer);\n this.page.contents.add(reference);\n };\n // private RemoveLayer(layer : PdfPageLayer) : void {\n // if (layer == null) {\n // throw new Error('ArgumentNullException:layer');\n // }\n // let reference : PdfReferenceHolder = new PdfReferenceHolder(layer);\n // if (this.page != null) {\n // this.page.Contents.Remove(reference);\n // }\n // }\n /**\n * Inserts `PdfPageLayer` into the collection at specified index.\n * @private\n */\n PdfPageLayerCollection.prototype.insert = function (index, layer) {\n // if (index < 0)\n // throw new ArgumentOutOfRangeException(\"index\", \"Value can not be less 0\");\n // if (layer == null)\n // throw new ArgumentNullException(\"layer\");\n // if (layer.Page != m_page)\n // throw new ArgumentException(\"The layer belongs to another page\");\n var list = [];\n var length = this.list.length;\n for (var i = index; i < length; i++) {\n list.push(this.list.pop());\n }\n this.list.push(layer);\n for (var i = 0; i < list.length; i++) {\n this.list.push(list[i]);\n }\n // Register layer.\n this.insertLayer(index, layer);\n };\n /**\n * Registers layer at the page.\n * @private\n */\n PdfPageLayerCollection.prototype.insertLayer = function (index, layer) {\n if (layer == null) {\n throw new Error('ArgumentNullException:layer');\n }\n var reference = new PdfReferenceHolder(layer);\n this.page.contents.insert(index, reference);\n };\n // tslint:disable\n /**\n * `Parses the layers`.\n * @private\n */\n PdfPageLayerCollection.prototype.parseLayers = function (loadedPage) {\n // if (loadedPage == null) {\n // throw new Error('ArgumentNullException:loadedPage');\n // }\n var contents = this.page.contents;\n var resource = this.page.getResources();\n var crossTable = null;\n var ocproperties = null;\n var propertie = null;\n var isLayerAdded = false;\n // if (loadedPage instanceof PdfPage) {\n crossTable = loadedPage.crossTable;\n // } else {\n // crossTable = (loadedPage as PdfLoadedPage).CrossTable;\n // Propertie = PdfCrossTable.Dereference(Resource[DictionaryProperties.Properties]) as PdfDictionary;\n // ocproperties = PdfCrossTable.Dereference((loadedPage as PdfLoadedPage).\n // Document.Catalog[DictionaryProperties.OCProperties]) as PdfDictionary;\n // }\n var saveStream = new PdfStream();\n var restoreStream = new PdfStream();\n var saveState = 'q';\n var newLine = '\\n';\n var restoreState = 'Q';\n // for (let index : number = 0; index < contents.Items.length; index++) {\n // let obj : IPdfPrimitive = contents[index];\n // let stream : PdfStream = crossTable.GetObject(obj) as PdfStream;\n // if (stream == null)\n // throw new PdfDocumentException(\"Invalid contents array.\");\n // // if (stream.Compress)\n // {\n // if (!loadedPage.Imported)\n // stream.Decompress();\n // }\n // byte[] contentId = stream.Data;\n // string str = PdfString.ByteToString(contentId);\n // if (!loadedPage.Imported && (contents.Count == 1) && ((stream.Data[stream.Data.Length - 2] ==\n // RestoreState) || (stream.Data[stream.Data.Length - 1] == RestoreState)))\n // {\n // byte[] content = stream.Data;\n // byte[] data = new byte[content.Length + 4];\n // data[0] = SaveState;\n // data[1] = NewLine;\n // content.CopyTo(data, 2);\n // data[data.Length - 2] = NewLine;\n // data[data.Length - 1] = RestoreState;\n // stream.Data = data;\n // }\n // if (ocproperties != null)\n // {\n // if (Propertie != null)\n // {\n // foreach (KeyValuePair prop in Propertie.Items)\n // {\n // String Key = prop.Key.ToString();\n // PdfReferenceHolder refh = prop.Value as PdfReferenceHolder;\n // PdfDictionary Dict = null;\n // if (refh != null)\n // {\n // Dict = refh.Object as PdfDictionary;\n // }\n // else\n // {\n // Dict = prop.Value as PdfDictionary;\n // }\n // PdfDictionary m_usage = PdfCrossTable.Dereference(Dict[DictionaryProperties.Usage]) as PdfDictionary;\n // if (m_usage != null)\n // {\n // if (str.Contains(Key))\n // {\n // PdfPageLayer layer = new PdfPageLayer(loadedPage, stream);\n // PdfDictionary printoption = PdfCrossTable.Dereference(m_usage[DictionaryProperties.Print])\n // as PdfDictionary;\n // if (printoption != null)\n // {\n // layer.m_printOption = printoption;\n // foreach (KeyValuePair value in printoption.Items)\n // {\n // if (value.Key.Value.Equals(DictionaryProperties.PrintState))\n // {\n // string printState = (value.Value as PdfName).Value;\n // if (printState.Equals(DictionaryProperties.OCGON))\n // {\n // layer.PrintState = PdfPrintState.AlwaysPrint;\n // break;\n // }\n // else\n // {\n // layer.PrintState = PdfPrintState.NeverPrint;\n // break;\n // }\n // }\n // }\n // }\n // PdfString layerName = PdfCrossTable.Dereference(Dict[DictionaryProperties.Name]) as PdfString;\n // layer.Name = layerName.Value;\n // List.add(layer);\n // isLayerAdded = true;\n // if(!str.Contains(\"EMC\"))\n // break;\n // }\n // }\n // else\n // {\n // if (str.Contains(Key))\n // {\n // PdfPageLayer layer = new PdfPageLayer(loadedPage, stream);\n // List.add(layer);\n // if(Dict.ContainsKey(DictionaryProperties.Name))\n // {\n // PdfString layerName = PdfCrossTable.Dereference(Dict[DictionaryProperties.Name]) as PdfString;\n // layer.Name = layerName.Value;\n // }\n // isLayerAdded = true;\n // break;\n // }\n // }\n // }\n // }\n // }\n // if (!isLayerAdded)\n // {\n // PdfPageLayer layer = new PdfPageLayer(loadedPage, stream);\n // List.add(layer);\n // }\n // else\n // isLayerAdded = false;\n // }\n var saveData = [];\n saveData.push(saveState);\n saveStream.data = saveData;\n contents.insert(0, new PdfReferenceHolder(saveStream));\n saveData = [];\n saveData.push(restoreState);\n restoreStream.data = saveData;\n contents.insert(contents.count, new PdfReferenceHolder(restoreStream));\n };\n /**\n * Returns `index of` the `PdfPageLayer` in the collection if exists, -1 otherwise.\n * @private\n */\n PdfPageLayerCollection.prototype.indexOf = function (layer) {\n if (layer == null) {\n throw new Error('ArgumentNullException: layer');\n }\n var index = this.list.indexOf(layer);\n return index;\n };\n return PdfPageLayerCollection;\n}(PdfCollection));\nexport { PdfPageLayerCollection };\n","import { PdfArray } from './../primitives/pdf-array';\nimport { PdfPageLayerCollection } from './pdf-page-layer-collection';\nimport { DictionaryProperties } from './../input-output/pdf-dictionary-properties';\nimport { PdfResources } from './../graphics/pdf-resources';\n/**\n * The abstract base class for all pages,\n * `PdfPageBase` class provides methods and properties to create PDF pages and its elements.\n * @private\n */\nvar PdfPageBase = /** @class */ (function () {\n //constructors\n /**\n * Initializes a new instance of the `PdfPageBase` class.\n * @private\n */\n function PdfPageBase(dictionary) {\n /**\n * `Index` of the default layer.\n * @default -1.\n * @private\n */\n this.defLayerIndex = -1;\n /**\n * Local variable to store if page `updated`.\n * @default false.\n * @private\n */\n this.modified = false;\n /**\n * Instance of `DictionaryProperties` class.\n * @hidden\n * @private\n */\n this.dictionaryProperties = new DictionaryProperties();\n this.pageDictionary = dictionary;\n }\n Object.defineProperty(PdfPageBase.prototype, \"section\", {\n //Properties\n /**\n * Gets the `section` of a page.\n * @private\n */\n get: function () {\n // if (this.pdfSection === null) {\n // throw new Error('PdfException : Page must be added to some section before using.');\n // }\n return this.pdfSection;\n },\n set: function (value) {\n this.pdfSection = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfPageBase.prototype, \"dictionary\", {\n /**\n * Gets the page `dictionary`.\n * @private\n */\n get: function () {\n return this.pageDictionary;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfPageBase.prototype, \"element\", {\n /**\n * Gets the wrapped `element`.\n * @private\n */\n get: function () {\n return this.pageDictionary;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfPageBase.prototype, \"defaultLayer\", {\n /**\n * Gets the `default layer` of the page (Read only).\n * @private\n */\n get: function () {\n var layer = this.layers;\n var index = this.defaultLayerIndex;\n var returnlayer = layer.items(index);\n return returnlayer;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfPageBase.prototype, \"defaultLayerIndex\", {\n /**\n * Gets or sets `index of the default layer`.\n * @private\n */\n get: function () {\n if (this.layerCollection.count === 0 || this.defLayerIndex === -1) {\n var layer = this.layerCollection.add();\n this.defLayerIndex = this.layerCollection.indexOf(layer);\n }\n return this.defLayerIndex;\n },\n /**\n * Gets or sets` index of the default layer`.\n * @private\n */\n set: function (value) {\n if (value < 0 || value > this.layers.count - 1) {\n throw new Error('ArgumentOutOfRangeException : value, Index can not be less 0 and greater Layers.Count - 1');\n }\n else {\n this.defLayerIndex = value;\n this.modified = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfPageBase.prototype, \"layers\", {\n /**\n * Gets the collection of the page's `layers` (Read only).\n * @private\n */\n get: function () {\n if (this.layerCollection == null || typeof this.layerCollection === 'undefined') {\n this.layerCollection = new PdfPageLayerCollection(this);\n }\n return this.layerCollection;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Return an instance of `PdfResources` class.\n * @private\n */\n PdfPageBase.prototype.getResources = function () {\n if (this.resources == null) {\n this.resources = new PdfResources();\n this.dictionary.items.setValue(this.dictionaryProperties.resources, this.resources);\n }\n return this.resources;\n };\n Object.defineProperty(PdfPageBase.prototype, \"contents\", {\n /**\n * Gets `array of page's content`.\n * @private\n */\n get: function () {\n var obj = this.pageDictionary.items.getValue(this.dictionaryProperties.contents);\n var contents = obj;\n var rh = obj;\n if (contents == null) {\n contents = new PdfArray();\n this.pageDictionary.items.setValue(this.dictionaryProperties.contents, contents);\n }\n return contents;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Sets the `resources`.\n * @private\n */\n PdfPageBase.prototype.setResources = function (res) {\n this.resources = res;\n this.dictionary.items.setValue(this.dictionaryProperties.resources, this.resources);\n this.modified = true;\n };\n return PdfPageBase;\n}());\nexport { PdfPageBase };\n","import { PdfArray } from './../primitives/pdf-array';\nimport { PdfReferenceHolder } from './../primitives/pdf-reference';\nimport { DictionaryProperties } from './../input-output/pdf-dictionary-properties';\nimport { SizeF, RectangleF, PointF } from './../drawing/pdf-drawing';\nimport { PdfStringLayouter } from './../graphics/fonts/string-layouter';\nimport { PdfColorSpace } from './../graphics/enum';\n/**\n * `PdfAnnotationCollection` class represents the collection of 'PdfAnnotation' objects.\n * @private\n */\nvar PdfAnnotationCollection = /** @class */ (function () {\n function PdfAnnotationCollection(page) {\n // Constants\n /**\n * `Error` constant message.\n * @private\n */\n this.alreadyExistsAnnotationError = 'This annotatation had been already added to page';\n /**\n * `Error` constant message.\n * @private\n */\n this.missingAnnotationException = 'Annotation is not contained in collection.';\n /**\n * Specifies the Internal variable to store fields of `PdfDictionaryProperties`.\n * @private\n */\n this.dictionaryProperties = new DictionaryProperties();\n /**\n * Array of the `annotations`.\n * @private\n */\n this.internalAnnotations = new PdfArray();\n /**\n * privte `list` for the annotations.\n * @private\n */\n this.lists = [];\n if (typeof page !== 'undefined') {\n this.page = page;\n }\n }\n Object.defineProperty(PdfAnnotationCollection.prototype, \"annotations\", {\n /**\n * Gets the `PdfAnnotation` object at the specified index. Read-Only.\n * @private\n */\n get: function () {\n return this.internalAnnotations;\n },\n set: function (value) {\n this.internalAnnotations = value;\n },\n enumerable: true,\n configurable: true\n });\n // Public methods\n /**\n * `Adds` a new annotation to the collection.\n * @private\n */\n PdfAnnotationCollection.prototype.add = function (annotation) {\n // this.SetPrint(annotation);\n this.doAdd(annotation);\n };\n /**\n * `Adds` a Annotation to collection.\n * @private\n */\n /* tslint:disable */\n PdfAnnotationCollection.prototype.doAdd = function (annotation) {\n if (typeof annotation.destination !== 'undefined') {\n var layout = new PdfStringLayouter();\n var layoutResult = layout.layout(annotation.text, annotation.font, annotation.stringFormat, new SizeF((annotation.bounds.width), 0), false, new SizeF(0, 0));\n var lastPosition = annotation.bounds.y;\n if (layoutResult.lines.length === 1) {\n var size = annotation.font.measureString(layoutResult.lines[0].text);\n annotation.bounds = new RectangleF(new PointF(annotation.bounds.x, lastPosition), size);\n annotation.text = layoutResult.lines[0].text;\n //Draw Annotation Text.\n this.page.graphics.drawString(annotation.text, annotation.font, null, annotation.brush, annotation.bounds.x, annotation.bounds.y, annotation.bounds.width, annotation.bounds.height, null);\n //Add annotation to dictionary.\n annotation.setPage(this.page);\n this.setColor(annotation);\n this.internalAnnotations.add(new PdfReferenceHolder(annotation));\n this.lists.push(annotation);\n }\n else {\n for (var i = 0; i < layoutResult.lines.length; i++) {\n var size = annotation.font.measureString(layoutResult.lines[i].text);\n if (i === 0) {\n annotation.bounds = new RectangleF(annotation.bounds.x, lastPosition, size.width, size.height);\n annotation.text = layoutResult.lines[i].text;\n //Draw Annotation Text.\n this.page.graphics.drawString(annotation.text, annotation.font, null, annotation.brush, annotation.bounds.x, lastPosition, size.width, size.height, null);\n //Add annotation to dictionary.\n annotation.setPage(this.page);\n this.setColor(annotation);\n this.internalAnnotations.add(new PdfReferenceHolder(annotation));\n this.lists.push(annotation);\n //Update y for drawing next line of the text.\n lastPosition += annotation.bounds.height;\n }\n else {\n var annot = annotation.clone();\n annot.bounds = new RectangleF(new PointF(annotation.bounds.x, lastPosition), size);\n annot.text = layoutResult.lines[i].text;\n //Draw Annotation Text.\n this.page.graphics.drawString(annot.text, annot.font, null, annot.brush, annot.bounds.x, annot.bounds.y, annot.bounds.width, annot.bounds.height, null);\n //Add annotation to dictionary.\n annot.setPage(this.page);\n this.setColor(annot);\n this.internalAnnotations.add(new PdfReferenceHolder(annot));\n this.lists.push(annot);\n //Update y for drawing next line of the text.\n lastPosition += annot.bounds.height;\n }\n }\n }\n }\n else {\n annotation.setPage(this.page);\n this.internalAnnotations.add(new PdfReferenceHolder(annotation));\n return this.lists.push(annotation);\n }\n };\n /* tslint:enable */\n /**\n * `Set a color of an annotation`.\n * @private\n */\n PdfAnnotationCollection.prototype.setColor = function (annotation) {\n var cs = PdfColorSpace.Rgb;\n var colours = annotation.color.toArray(cs);\n annotation.dictionary.items.setValue(this.dictionaryProperties.c, colours);\n };\n Object.defineProperty(PdfAnnotationCollection.prototype, \"element\", {\n // IPdfWrapper Members\n /**\n * Gets the `Element` representing this object.\n * @private\n */\n get: function () {\n return this.internalAnnotations;\n },\n enumerable: true,\n configurable: true\n });\n return PdfAnnotationCollection;\n}());\nexport { PdfAnnotationCollection };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { PdfPageBase } from './pdf-page-base';\nimport { PdfDictionary, SaveTemplateEventHandler } from './../primitives/pdf-dictionary';\nimport { PdfName } from './../primitives/pdf-name';\nimport { PdfReferenceHolder } from './../primitives/pdf-reference';\nimport { SizeF } from './../drawing/pdf-drawing';\nimport { PdfAnnotationCollection } from './../annotations/annotation-collection';\nimport { PdfPageLayer } from './pdf-page-layer';\n/**\n * Provides methods and properties to create pages and its elements.\n * `PdfPage` class inherited from the `PdfPageBase` class.\n * ```typescript\n * // create a new PDF document\n * let document : PdfDocument = new PdfDocument();\n * //\n * // add a new page to the document\n * let page1 : PdfPage = document.pages.add();\n * //\n * // set the font\n * let font : PdfStandardFont = new PdfStandardFont(PdfFontFamily.Helvetica, 20);\n * // create black brush\n * let blackBrush : PdfSolidBrush = new PdfSolidBrush(new PdfColor(0, 0, 0));\n * // draw the text\n * page1.graphics.drawString('Hello World', font, blackBrush, new PointF(0, 0));\n * // save the document\n * document.save('output.pdf');\n * // destroy the document\n * document.destroy();\n * ```\n */\nvar PdfPage = /** @class */ (function (_super) {\n __extends(PdfPage, _super);\n //constructors\n /**\n * Initialize the new instance for `PdfPage` class.\n * @private\n */\n function PdfPage() {\n var _this = _super.call(this, new PdfDictionary()) || this;\n /**\n * Stores the instance of `PdfAnnotationCollection` class.\n * @hidden\n * @default null\n * @private\n */\n _this.annotationCollection = null;\n /**\n * Stores the instance of `PageBeginSave` event for Page Number Field.\n * @default null\n * @private\n */\n _this.beginSave = null;\n _this.initialize();\n return _this;\n }\n Object.defineProperty(PdfPage.prototype, \"document\", {\n //Properties\n /**\n * Gets current `document`.\n * @private\n */\n get: function () {\n if (this.section !== null && this.section.parent !== null) {\n return this.section.parent.document;\n }\n else {\n return null;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfPage.prototype, \"graphics\", {\n /**\n * Get the current `graphics`.\n * ```typescript\n * // create a new PDF document\n * let document : PdfDocument = new PdfDocument();\n * // add a new page to the document\n * let page1 : PdfPage = document.pages.add();\n * //\n * // get graphics\n * let graphics : PdfGraphics = page1.graphics;\n * //\n * // set the font\n * let font : PdfStandardFont = new PdfStandardFont(PdfFontFamily.Helvetica, 20);\n * // create black brush\n * let blackBrush : PdfSolidBrush = new PdfSolidBrush(new PdfColor(0, 0, 0));\n * // draw the text\n * graphics.drawString('Hello World', font, blackBrush, new PointF(0, 0));\n * // save the document\n * document.save('output.pdf');\n * // destroy the document\n * document.destroy();\n * ```\n */\n get: function () {\n var result = this.defaultLayer.graphics;\n result.currentPage = this;\n return result;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfPage.prototype, \"crossTable\", {\n /**\n * Gets the `cross table`.\n * @private\n */\n get: function () {\n if (this.section === null) {\n throw new Error('PdfDocumentException : Page is not created');\n }\n return this.section.parent === null ? this.section.parentDocument.crossTable : this.section.parent.document.crossTable;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfPage.prototype, \"size\", {\n /**\n * Gets the size of the PDF page- Read only.\n * @public\n */\n get: function () {\n return this.section.pageSettings.size;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfPage.prototype, \"origin\", {\n /**\n * Gets the `origin` of the page.\n * @private\n */\n get: function () {\n return this.section.pageSettings.origin;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfPage.prototype, \"annotations\", {\n /**\n * Gets a collection of the `annotations` of the page- Read only.\n * @private\n */\n get: function () {\n if (this.annotationCollection == null) {\n this.annotationCollection = new PdfAnnotationCollection(this);\n // if (!this.Dictionary.ContainsKey(this.dictionaryProperties.annots)) {\n this.dictionary.items.setValue(this.dictionaryProperties.annots, this.annotationCollection.element);\n // }\n this.annotationCollection.annotations = this.dictionary.items.getValue(this.dictionaryProperties.annots);\n }\n return this.annotationCollection;\n },\n enumerable: true,\n configurable: true\n });\n //Implementation\n /**\n * `Initializes` a page.\n * @private\n */\n PdfPage.prototype.initialize = function () {\n this.dictionary.items.setValue(this.dictionaryProperties.type, new PdfName('Page'));\n this.dictionary.pageBeginDrawTemplate = new SaveTemplateEventHandler(this);\n };\n /**\n * Sets parent `section` to the page.\n * @private\n */\n PdfPage.prototype.setSection = function (section) {\n this.section = section;\n this.dictionary.items.setValue(this.dictionaryProperties.parent, new PdfReferenceHolder(section));\n };\n /**\n * `Resets the progress`.\n * @private\n */\n PdfPage.prototype.resetProgress = function () {\n this.isProgressOn = false;\n };\n /**\n * Get the page size reduced by page margins and page template dimensions.\n * ```typescript\n * // create a new PDF document\n * let document : PdfDocument = new PdfDocument();\n * // add a pages to the document\n * let page1 : PdfPage = document.pages.add();\n * // create new standard font\n * let font : PdfStandardFont = new PdfStandardFont(PdfFontFamily.Helvetica, 20);\n * // set brush\n * let blackBrush : PdfSolidBrush = new PdfSolidBrush(new PdfColor(0, 0, 0));\n * //\n * // set the specified point using `getClientSize` method\n * let point : PointF = new PointF(page1.getClientSize().width - 200, page1.getClientSize().height - 200);\n * // draw the text\n * page1.graphics.drawString('Hello World', font, blackBrush, point);\n * //\n * // save the document\n * document.save('output.pdf');\n * // destroy the document\n * document.destroy();\n * ```\n */\n PdfPage.prototype.getClientSize = function () {\n var returnValue = this.section.getActualBounds(this, true);\n return new SizeF(returnValue.width, returnValue.height);\n };\n /**\n * Helper method to retrive the instance of `PageBeginSave` event for header and footer elements.\n * @private\n */\n PdfPage.prototype.pageBeginSave = function () {\n var doc = this.document;\n if (typeof doc !== undefined && doc != null) {\n this.drawPageTemplates(doc);\n }\n if (this.beginSave != null && typeof this.beginSave !== 'undefined') {\n this.beginSave(this);\n }\n };\n /**\n * Helper method to draw template elements.\n * @private\n */\n PdfPage.prototype.drawPageTemplates = function (document) {\n // Draw Background templates.\n var hasBackTemplates = this.section.containsTemplates(document, this, false);\n if (hasBackTemplates) {\n var backLayer = new PdfPageLayer(this, false);\n this.layers.insert(0, backLayer);\n this.section.drawTemplates(this, backLayer, document, false);\n if (backLayer.graphics !== null && typeof backLayer.graphics !== 'undefined') {\n for (var i = 0; i < backLayer.graphics.automaticFields.automaticFields.length; i++) {\n var fieldInfo = backLayer.graphics.automaticFields.automaticFields[i];\n fieldInfo.field.performDraw(backLayer.graphics, fieldInfo.location, fieldInfo.scalingX, fieldInfo.scalingY);\n }\n }\n }\n // Draw Foreground templates.\n var hasFrontTemplates = this.section.containsTemplates(document, this, true);\n if (hasFrontTemplates) {\n var frontLayer = new PdfPageLayer(this, false);\n this.layers.add(frontLayer);\n this.section.drawTemplates(this, frontLayer, document, true);\n }\n };\n return PdfPage;\n}(PdfPageBase));\nexport { PdfPage };\n","/**\n * Provides data for `PageAddedEventHandler` event.\n * This event raises when adding the new PDF page to the PDF document.\n */\nvar PageAddedEventArgs = /** @class */ (function () {\n function PageAddedEventArgs(page) {\n if (typeof page !== 'undefined') {\n this.pdfPage = page;\n }\n else {\n this.pdfPage = null;\n }\n }\n Object.defineProperty(PageAddedEventArgs.prototype, \"page\", {\n /**\n * Gets the `newly added page`.\n * @private\n */\n get: function () {\n return this.pdfPage;\n },\n enumerable: true,\n configurable: true\n });\n return PageAddedEventArgs;\n}());\nexport { PageAddedEventArgs };\n","/**\n * Represents the `collection of pages in a section`.\n * @private\n */\nvar PdfSectionPageCollection = /** @class */ (function () {\n // Constructors\n /**\n * Initializes a new instance of the `PdfSectionPageCollection` class.\n * @private\n */\n function PdfSectionPageCollection(section) {\n // Fields\n /**\n * @hidden\n * @private\n */\n this.pdfSection = null;\n if (section == null) {\n throw Error('ArgumentNullException(\"section\")');\n }\n this.section = section;\n }\n Object.defineProperty(PdfSectionPageCollection.prototype, \"section\", {\n // Properties\n /**\n * Gets the `PdfPage` at the specified index.\n * @private\n */\n get: function () {\n return this.pdfSection;\n },\n set: function (value) {\n this.pdfSection = value;\n },\n enumerable: true,\n configurable: true\n });\n // Public Methods\n /**\n * `Determines` whether the specified page is within the collection.\n * @private\n */\n PdfSectionPageCollection.prototype.contains = function (page) {\n return this.section.contains(page);\n };\n /**\n * `Removes` the specified page from collection.\n * @private\n */\n PdfSectionPageCollection.prototype.remove = function (page) {\n this.section.remove(page);\n };\n /**\n * `Adds` a new page from collection.\n * @private\n */\n PdfSectionPageCollection.prototype.add = function () {\n return this.section.add();\n };\n return PdfSectionPageCollection;\n}());\nexport { PdfSectionPageCollection };\n","import { TemplateType } from './../pages/enum';\n// import { PdfStampCollection } from `./../Pages/PdfStampCollection`;\n/**\n * `PdfDocumentTemplate` class encapsulates a page template for all the pages in the document.\n * @private\n */\nvar PdfDocumentTemplate = /** @class */ (function () {\n // Constructors\n /**\n * Initializes a new instance of the `PdfDocumentTemplate` class.\n * @public\n */\n function PdfDocumentTemplate() {\n //\n }\n Object.defineProperty(PdfDocumentTemplate.prototype, \"left\", {\n // private m_stamps : PdfStampCollection;\n // Properties\n /**\n * `Left` page template object.\n * @public\n */\n get: function () {\n return this.leftTemplate;\n },\n set: function (value) {\n this.leftTemplate = this.checkElement(value, TemplateType.Left);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfDocumentTemplate.prototype, \"top\", {\n /**\n * `Top` page template object.\n * @public\n */\n get: function () {\n return this.topTemplate;\n },\n set: function (value) {\n this.topTemplate = this.checkElement(value, TemplateType.Top);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfDocumentTemplate.prototype, \"right\", {\n /**\n * `Right` page template object.\n * @public\n */\n get: function () {\n return this.rightTemplate;\n },\n set: function (value) {\n this.rightTemplate = this.checkElement(value, TemplateType.Right);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfDocumentTemplate.prototype, \"bottom\", {\n /**\n * `Bottom` page template object.\n * @public\n */\n get: function () {\n return this.bottomTemplate;\n },\n set: function (value) {\n this.bottomTemplate = this.checkElement(value, TemplateType.Bottom);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfDocumentTemplate.prototype, \"EvenLeft\", {\n /**\n * `EvenLeft` page template object.\n * @public\n */\n get: function () {\n return this.evenLeft;\n },\n set: function (value) {\n this.evenLeft = this.checkElement(value, TemplateType.Left);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfDocumentTemplate.prototype, \"EvenTop\", {\n /**\n * `EvenTop` page template object.\n * @public\n */\n get: function () {\n return this.evenTop;\n },\n set: function (value) {\n this.evenTop = this.checkElement(value, TemplateType.Top);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfDocumentTemplate.prototype, \"EvenRight\", {\n /**\n * `EvenRight` page template object.\n * @public\n */\n get: function () {\n return this.evenRight;\n },\n set: function (value) {\n this.evenRight = this.checkElement(value, TemplateType.Right);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfDocumentTemplate.prototype, \"EvenBottom\", {\n /**\n * `EvenBottom` page template object.\n * @public\n */\n get: function () {\n return this.evenBottom;\n },\n set: function (value) {\n this.evenBottom = this.checkElement(value, TemplateType.Bottom);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfDocumentTemplate.prototype, \"OddLeft\", {\n /**\n * `OddLeft` page template object.\n * @public\n */\n get: function () {\n return this.oddLeft;\n },\n set: function (value) {\n this.oddLeft = this.checkElement(value, TemplateType.Left);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfDocumentTemplate.prototype, \"OddTop\", {\n /**\n * `OddTop` page template object.\n * @public\n */\n get: function () {\n return this.oddTop;\n },\n set: function (value) {\n this.oddTop = this.checkElement(value, TemplateType.Top);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfDocumentTemplate.prototype, \"OddRight\", {\n /**\n * `OddRight` page template object.\n * @public\n */\n get: function () {\n return this.oddRight;\n },\n set: function (value) {\n this.oddRight = this.checkElement(value, TemplateType.Right);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfDocumentTemplate.prototype, \"OddBottom\", {\n /**\n * `OddBottom` page template object.\n * @public\n */\n get: function () {\n return this.oddBottom;\n },\n set: function (value) {\n this.oddBottom = this.checkElement(value, TemplateType.Bottom);\n },\n enumerable: true,\n configurable: true\n });\n // Implementation\n /**\n * Returns `left` template.\n * @public\n */\n PdfDocumentTemplate.prototype.getLeft = function (page) {\n if (page == null) {\n throw new Error('ArgumentNullException:page');\n }\n var template = null;\n // if (page.Document.Pages != null) {\n var even = this.isEven(page);\n if (even) {\n template = (this.EvenLeft != null) ? this.EvenLeft : this.left;\n }\n else {\n template = (this.OddLeft != null) ? this.OddLeft : this.left;\n }\n // }\n return template;\n };\n /**\n * Returns `top` template.\n * @public\n */\n PdfDocumentTemplate.prototype.getTop = function (page) {\n if (page == null) {\n throw new Error('ArgumentNullException:page');\n }\n var template = null;\n // if (page.Document.Pages != null) {\n var even = this.isEven(page);\n if (even) {\n template = (this.EvenTop != null) ? this.EvenTop : this.top;\n }\n else {\n template = (this.OddTop != null) ? this.OddTop : this.top;\n }\n // }\n return template;\n };\n /**\n * Returns `right` template.\n * @public\n */\n PdfDocumentTemplate.prototype.getRight = function (page) {\n if (page == null) {\n throw new Error('ArgumentNullException:page');\n }\n var template = null;\n // if (page.Document.Pages != null) {\n var even = this.isEven(page);\n if (even) {\n template = (this.EvenRight != null) ? this.EvenRight : this.right;\n }\n else {\n template = (this.OddRight != null) ? this.OddRight : this.right;\n }\n // }\n return template;\n };\n /**\n * Returns `bottom` template.\n * @public\n */\n PdfDocumentTemplate.prototype.getBottom = function (page) {\n if (page == null) {\n throw new Error('ArgumentNullException:page');\n }\n var template = null;\n // if (page.Document.Pages != null) {\n var even = this.isEven(page);\n if (even) {\n template = (this.EvenBottom != null) ? this.EvenBottom : this.bottom;\n }\n else {\n template = (this.OddBottom != null) ? this.OddBottom : this.bottom;\n }\n // }\n return template;\n };\n /**\n * Checks whether the page `is even`.\n * @private\n */\n PdfDocumentTemplate.prototype.isEven = function (page) {\n var pages = page.section.document.pages;\n var index = 0;\n if (pages.pageCollectionIndex.containsKey(page)) {\n index = pages.pageCollectionIndex.getValue(page) + 1;\n }\n else {\n index = pages.indexOf(page) + 1;\n }\n var even = ((index % 2) === 0);\n return even;\n };\n /**\n * Checks a `template element`.\n * @private\n */\n PdfDocumentTemplate.prototype.checkElement = function (templateElement, type) {\n if (templateElement != null) {\n if ((typeof templateElement.type !== 'undefined') && (templateElement.type !== TemplateType.None)) {\n throw new Error('NotSupportedException:Can not reassign the template element. Please, create new one.');\n }\n templateElement.type = type;\n }\n return templateElement;\n };\n return PdfDocumentTemplate;\n}());\nexport { PdfDocumentTemplate };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * PdfSectionTemplate.ts class for EJ2-PDF\n */\nimport { PdfDocumentTemplate } from './../document/pdf-document-template';\n/**\n * Represents a `page template` for all the pages in the section.\n */\nvar PdfSectionTemplate = /** @class */ (function (_super) {\n __extends(PdfSectionTemplate, _super);\n // Constructors\n /**\n * `Creates a new object`.\n * @private\n */\n function PdfSectionTemplate() {\n var _this = _super.call(this) || this;\n _this.leftValue = _this.topValue = _this.rightValue = _this.bottomValue = _this.stampValue = true;\n return _this;\n }\n Object.defineProperty(PdfSectionTemplate.prototype, \"applyDocumentLeftTemplate\", {\n // Properties\n /**\n * Gets or sets value indicating whether parent `Left page template should be used or not`.\n * @private\n */\n get: function () {\n return this.leftValue;\n },\n set: function (value) {\n this.leftValue = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfSectionTemplate.prototype, \"applyDocumentTopTemplate\", {\n /**\n * Gets or sets value indicating whether parent `Top page template should be used or not`.\n * @private\n */\n get: function () {\n return this.topValue;\n },\n set: function (value) {\n this.topValue = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfSectionTemplate.prototype, \"applyDocumentRightTemplate\", {\n /**\n * Gets or sets value indicating whether parent `Right page template should be used or not`.\n * @private\n */\n get: function () {\n return this.rightValue;\n },\n set: function (value) {\n this.rightValue = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfSectionTemplate.prototype, \"applyDocumentBottomTemplate\", {\n /**\n * Gets or sets value indicating whether parent `Bottom page template should be used or not`.\n * @private\n */\n get: function () {\n return this.bottomValue;\n },\n set: function (value) {\n this.bottomValue = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfSectionTemplate.prototype, \"applyDocumentStamps\", {\n /**\n * Gets or sets value indicating whether the `stamp value` is true or not.\n * @private\n */\n get: function () {\n return this.stampValue;\n },\n set: function (value) {\n this.stampValue = value;\n },\n enumerable: true,\n configurable: true\n });\n return PdfSectionTemplate;\n}(PdfDocumentTemplate));\nexport { PdfSectionTemplate };\n","import { PdfPage } from './pdf-page';\nimport { PageAddedEventArgs } from './page-added-event-arguments';\nimport { PdfReferenceHolder } from './../primitives/pdf-reference';\nimport { PdfArray } from './../primitives/pdf-array';\nimport { PdfNumber } from './../primitives/pdf-number';\nimport { PdfName } from './../primitives/pdf-name';\nimport { PdfDictionary } from './../primitives/pdf-dictionary';\nimport { SaveSectionEventHandler } from './../primitives/pdf-dictionary';\nimport { DictionaryProperties } from './../input-output/pdf-dictionary-properties';\nimport { PdfSectionCollection } from './pdf-section-collection';\nimport { PdfSectionPageCollection } from './pdf-section-page-collection';\nimport { RectangleF } from './../drawing/pdf-drawing';\nimport { PdfSectionTemplate } from './pdf-section-templates';\n/**\n * Represents a `section` entity. A section it's a set of the pages with similar page settings.\n */\nvar PdfSection = /** @class */ (function () {\n function PdfSection(document, pageSettings) {\n //Fields\n //public PageAdded() : PageAddedEventArgs.PageAddedEventHandler = new PageAddedEventArgs.PageAddedEventHandler(Object,args)\n /**\n * @hidden\n * @private\n */\n this.pageAdded = new PageAddedEventArgs();\n /**\n * @hidden\n * @private\n */\n this.pdfPages = [];\n /**\n * @hidden\n * @private\n */\n this.dictionaryProperties = new DictionaryProperties();\n this.pdfDocument = document;\n if (typeof pageSettings === 'undefined') {\n this.settings = document.pageSettings.clone();\n this.initialSettings = this.settings.clone();\n }\n else {\n this.settings = pageSettings.clone();\n this.initialSettings = this.settings.clone();\n }\n this.initialize();\n }\n Object.defineProperty(PdfSection.prototype, \"parent\", {\n //Property\n /**\n * Gets or sets the `parent`.\n * @private\n */\n get: function () {\n return this.sectionCollection;\n },\n set: function (value) {\n this.sectionCollection = value;\n this.section.items.setValue(this.dictionaryProperties.parent, new PdfReferenceHolder(value));\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfSection.prototype, \"parentDocument\", {\n /**\n * Gets the `parent document`.\n * @private\n */\n get: function () {\n return this.pdfDocument;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfSection.prototype, \"pageSettings\", {\n /**\n * Gets or sets the `page settings` of the section.\n * @private\n */\n get: function () {\n return this.settings;\n },\n set: function (value) {\n if (value != null) {\n this.settings = value;\n }\n else {\n throw Error('Value can not be null.');\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfSection.prototype, \"element\", {\n /**\n * Gets the wrapped `element`.\n * @private\n */\n get: function () {\n return this.section;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfSection.prototype, \"count\", {\n /**\n * Gets the `count` of the pages in the section.\n * @private\n */\n get: function () {\n return this.pagesReferences.count;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfSection.prototype, \"template\", {\n /**\n * Gets or sets a `template` for the pages in the section.\n * @private\n */\n get: function () {\n if (this.pageTemplate == null) {\n this.pageTemplate = new PdfSectionTemplate();\n }\n return this.pageTemplate;\n },\n set: function (value) {\n this.pageTemplate = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfSection.prototype, \"document\", {\n /**\n * Gets the `document`.\n * @private\n */\n get: function () {\n return this.sectionCollection.document;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfSection.prototype, \"pages\", {\n /**\n * Gets the collection of `pages` in a section (Read only)\n * @private\n */\n get: function () {\n if (this.pagesCollection == null || typeof this.pagesCollection === 'undefined') {\n this.pagesCollection = new PdfSectionPageCollection(this);\n }\n return this.pagesCollection;\n },\n enumerable: true,\n configurable: true\n });\n //methods\n /**\n * `Return the page collection` of current section.\n * @private\n */\n PdfSection.prototype.getPages = function () {\n return this.pdfPages;\n };\n /**\n * `Translates` point into native coordinates of the page.\n * @private\n */\n PdfSection.prototype.pointToNativePdf = function (page, point) {\n var bounds = this.getActualBounds(page, true);\n point.x += bounds.x;\n point.y = this.pageSettings.height - (point.y);\n return point;\n };\n /**\n * Sets the page setting of the current section.\n * @public\n * @param settings Instance of `PdfPageSettings`\n */\n PdfSection.prototype.setPageSettings = function (settings) {\n this.settings = settings;\n this.state.orientation = settings.orientation;\n this.state.rotate = settings.rotate;\n this.state.size = settings.size;\n this.state.origin = settings.origin;\n };\n /**\n * `Initializes` the object.\n * @private\n */\n PdfSection.prototype.initialize = function () {\n this.pagesReferences = new PdfArray();\n this.section = new PdfDictionary();\n this.state = new PageSettingsState(this.pdfDocument);\n this.section.sectionBeginSave = new SaveSectionEventHandler(this, this.state);\n this.pageCount = new PdfNumber(0);\n this.section.items.setValue(this.dictionaryProperties.count, this.pageCount);\n this.section.items.setValue(this.dictionaryProperties.type, new PdfName(this.dictionaryProperties.pages));\n this.section.items.setValue(this.dictionaryProperties.kids, this.pagesReferences);\n };\n /**\n * Checks whether any template should be printed on this layer.\n * @private\n * @param document The parent document.\n * @param page The parent page.\n * @param foreground Layer z-order.\n * @returns True - if some content should be printed on the layer, False otherwise.\n */\n PdfSection.prototype.containsTemplates = function (document, page, foreground) {\n var documentHeaders = this.getDocumentTemplates(document, page, foreground);\n var sectionTemplates = this.getSectionTemplates(page, foreground);\n return (documentHeaders.length > 0 || sectionTemplates.length > 0);\n };\n /**\n * Returns array of the document templates.\n * @private\n * @param document The parent document.\n * @param page The parent page.\n * @param headers If true - return headers/footers, if false - return simple templates.\n * @param foreground If true - return foreground templates, if false - return background templates.\n * @returns Returns array of the document templates.\n */\n /* tslint:disable */\n PdfSection.prototype.getDocumentTemplates = function (document, page, foreground) {\n var templates = [];\n if (this.template.applyDocumentTopTemplate && document.template.getTop(page) != null) {\n if ((!(document.template.getTop(page).foreground || foreground)) || (document.template.getTop(page).foreground && foreground)) {\n templates.push(document.template.getTop(page));\n }\n }\n if (this.template.applyDocumentBottomTemplate && document.template.getBottom(page) != null) {\n if ((!(document.template.getBottom(page).foreground || foreground)) || (document.template.getBottom(page).foreground && foreground)) {\n templates.push(document.template.getBottom(page));\n }\n }\n if (this.template.applyDocumentLeftTemplate && document.template.getLeft(page) != null) {\n if ((!(document.template.getLeft(page).foreground || foreground)) || (document.template.getLeft(page).foreground && foreground)) {\n templates.push(document.template.getLeft(page));\n }\n }\n if (this.template.applyDocumentRightTemplate && document.template.getRight(page) != null) {\n if ((!(document.template.getRight(page).foreground || foreground)) || (document.template.getRight(page).foreground && foreground)) {\n templates.push(document.template.getRight(page));\n }\n }\n return templates;\n };\n /**\n * Returns array of the section templates.\n * @private\n * @param page The parent page.\n * @param foreground If true - return foreground templates, if false - return background templates.\n * @returns Returns array of the section templates.\n */\n /* tslint:disable */\n PdfSection.prototype.getSectionTemplates = function (page, foreground) {\n var templates = [];\n if (this.template.getTop(page) != null) {\n var pageTemplate = this.template.getTop(page);\n if ((!(pageTemplate.foreground || foreground)) || (pageTemplate.foreground && foreground)) {\n templates.push(pageTemplate);\n }\n }\n if (this.template.getBottom(page) != null) {\n var pageTemplate = this.template.getBottom(page);\n if ((!(pageTemplate.foreground || foreground)) || (pageTemplate.foreground && foreground)) {\n templates.push(pageTemplate);\n }\n }\n if (this.template.getLeft(page) != null) {\n var pageTemplate = this.template.getLeft(page);\n if ((!(pageTemplate.foreground || foreground)) || (pageTemplate.foreground && foreground)) {\n templates.push(pageTemplate);\n }\n }\n if (this.template.getRight(page) != null) {\n var pageTemplate = this.template.getRight(page);\n if ((!(pageTemplate.foreground || foreground)) || (pageTemplate.foreground && foreground)) {\n templates.push(pageTemplate);\n }\n }\n return templates;\n };\n /* tslint:enable */\n /**\n * `Adds` the specified page.\n * @private\n */\n PdfSection.prototype.add = function (page) {\n if (typeof page === 'undefined') {\n var page_1 = new PdfPage();\n this.add(page_1);\n return page_1;\n }\n else {\n var r = this.checkPresence(page);\n this.pdfPages.push(page);\n this.pagesReferences.add(r);\n page.setSection(this);\n page.resetProgress();\n this.pageAddedMethod(page);\n }\n };\n /**\n * `Checks the presence`.\n * @private\n */\n PdfSection.prototype.checkPresence = function (page) {\n var rh = new PdfReferenceHolder(page);\n var contains = false;\n var sc = this.parent;\n for (var index = 0; index < sc.section.length; index++) {\n var section = sc.section[index];\n contains = contains || section.contains(page);\n }\n return rh;\n };\n /**\n * `Determines` whether the page in within the section.\n * @private\n */\n PdfSection.prototype.contains = function (page) {\n var index = this.indexOf(page);\n return (0 <= index);\n };\n /**\n * Get the `index of` the page.\n * @private\n */\n PdfSection.prototype.indexOf = function (page) {\n for (var index = 0; index < this.pdfPages.length; index++) {\n if (this.pdfPages[index] === page) {\n return this.pdfPages.indexOf(page);\n }\n }\n var r = new PdfReferenceHolder(page);\n return this.pagesReferences.indexOf(r);\n };\n /**\n * Call two event's methods.\n * @hidden\n * @private\n */\n PdfSection.prototype.pageAddedMethod = function (page) {\n //Create event's arguments\n var args = new PageAddedEventArgs(page);\n this.onPageAdded(args);\n var parent = this.parent;\n parent.document.pages.onPageAdded(args);\n this.pageCount.intValue = this.count;\n };\n /**\n * Called when the page has been added.\n * @hidden\n * @private\n */\n PdfSection.prototype.onPageAdded = function (args) {\n //\n };\n PdfSection.prototype.getActualBounds = function (arg1, arg2, arg3) {\n if (arg1 instanceof PdfPage && typeof arg2 === 'boolean') {\n var result = void 0;\n var document_1 = this.parent.document;\n result = this.getActualBounds(document_1, arg1, arg2);\n return result;\n }\n else {\n arg1 = arg1;\n arg2 = arg2;\n arg3 = arg3;\n var bounds = new RectangleF(0, 0, 0, 0);\n bounds.height = (arg3) ? this.pageSettings.size.height : this.pageSettings.getActualSize().height;\n bounds.width = (arg3) ? this.pageSettings.size.width : this.pageSettings.getActualSize().width;\n var left = this.getLeftIndentWidth(arg1, arg2, arg3);\n var top_1 = this.getTopIndentHeight(arg1, arg2, arg3);\n var right = this.getRightIndentWidth(arg1, arg2, arg3);\n var bottom = this.getBottomIndentHeight(arg1, arg2, arg3);\n bounds.x += left;\n bounds.y += top_1;\n bounds.width -= (left + right);\n bounds.height -= (top_1 + bottom);\n return bounds;\n }\n };\n /**\n * Calculates width of the `left indent`.\n * @private\n */\n PdfSection.prototype.getLeftIndentWidth = function (document, page, includeMargins) {\n if (document == null) {\n throw new Error('ArgumentNullException:document');\n }\n if (page == null) {\n throw new Error('ArgumentNullException:page');\n }\n var value = (includeMargins) ? this.pageSettings.margins.left : 0;\n var templateWidth = (this.template.getLeft(page) != null) ? this.template.getLeft(page).width : 0;\n var docTemplateWidth = (document.template.getLeft(page) != null) ? document.template.getLeft(page).width : 0;\n value += (this.template.applyDocumentLeftTemplate) ? Math.max(templateWidth, docTemplateWidth) : templateWidth;\n return value;\n };\n /**\n * Calculates `Height` of the top indent.\n * @private\n */\n PdfSection.prototype.getTopIndentHeight = function (document, page, includeMargins) {\n if (document == null) {\n throw new Error('ArgumentNullException:document');\n }\n if (page == null) {\n throw new Error('ArgumentNullException:page');\n }\n var value = (includeMargins) ? this.pageSettings.margins.top : 0;\n var templateHeight = (this.template.getTop(page) != null) ? this.template.getTop(page).height : 0;\n var docTemplateHeight = (document.template.getTop(page) != null) ? document.template.getTop(page).height : 0;\n value += (this.template.applyDocumentTopTemplate) ? Math.max(templateHeight, docTemplateHeight) : templateHeight;\n return value;\n };\n /**\n * Calculates `width` of the right indent.\n * @private\n */\n PdfSection.prototype.getRightIndentWidth = function (document, page, includeMargins) {\n if (document == null) {\n throw new Error('ArgumentNullException:document');\n }\n if (page == null) {\n throw new Error('ArgumentNullException:page');\n }\n var value = (includeMargins) ? this.pageSettings.margins.right : 0;\n var templateWidth = (this.template.getRight(page) != null) ? this.template.getRight(page).width : 0;\n var docTemplateWidth = (document.template.getRight(page) != null) ? document.template.getRight(page).width : 0;\n value += (this.template.applyDocumentRightTemplate) ? Math.max(templateWidth, docTemplateWidth) : templateWidth;\n return value;\n };\n /**\n * Calculates `Height` of the bottom indent.\n * @private\n */\n PdfSection.prototype.getBottomIndentHeight = function (document, page, includeMargins) {\n if (document == null) {\n throw new Error('ArgumentNullException:document');\n }\n if (page == null) {\n throw new Error('ArgumentNullException:page');\n }\n var value = (includeMargins) ? this.pageSettings.margins.bottom : 0;\n var templateHeight = (this.template.getBottom(page) != null) ? this.template.getBottom(page).height : 0;\n var docTemplateHeight = (document.template.getBottom(page) != null) ? document.template.getBottom(page).height : 0;\n value += (this.template.applyDocumentBottomTemplate) ? Math.max(templateHeight, docTemplateHeight) : templateHeight;\n return value;\n };\n /**\n * `Removes` the page from the section.\n * @private\n */\n PdfSection.prototype.remove = function (page) {\n if (page == null) {\n throw Error('ArgumentNullException(\"page\")');\n }\n var index = this.pdfPages.indexOf(page);\n this.pagesReferences.removeAt(index);\n var temproaryPages = [];\n for (var j = 0; j < index; j++) {\n temproaryPages.push(this.pdfPages[j]);\n }\n for (var j = index + 1; j < this.pdfPages.length; j++) {\n temproaryPages.push(this.pdfPages[j]);\n }\n this.pdfPages = temproaryPages;\n };\n /**\n * In fills dictionary by the data from `Page settings`.\n * @private\n */\n PdfSection.prototype.applyPageSettings = function (container, parentSettings, state) {\n var bounds = new RectangleF(state.origin, state.size);\n container.items.setValue(this.dictionaryProperties.mediaBox, PdfArray.fromRectangle(bounds));\n var rotate = 0;\n rotate = PdfSectionCollection.rotateFactor * state.rotate;\n var angle = new PdfNumber(rotate);\n container.items.setValue(this.dictionaryProperties.rotate, angle);\n };\n /**\n * Catches the Save event of the dictionary.\n * @hidden\n * @private\n */\n PdfSection.prototype.beginSave = function (state, writer) {\n var doc = writer.document;\n this.applyPageSettings(this.section, doc.pageSettings, state);\n };\n /**\n * Draws page templates on the page.\n * @private\n */\n PdfSection.prototype.drawTemplates = function (page, layer, document, foreground) {\n var documentHeaders = this.getDocumentTemplates(document, page, foreground);\n var sectionHeaders = this.getSectionTemplates(page, foreground);\n this.drawTemplatesHelper(layer, document, documentHeaders);\n this.drawTemplatesHelper(layer, document, sectionHeaders);\n };\n /**\n * Draws page templates on the page.\n * @private\n */\n PdfSection.prototype.drawTemplatesHelper = function (layer, document, templates) {\n if (templates != null && templates.length > 0) {\n var len = templates.length;\n for (var i = 0; i < len; i++) {\n var template = templates[i];\n template.draw(layer, document);\n }\n }\n };\n return PdfSection;\n}());\nexport { PdfSection };\nvar PageSettingsState = /** @class */ (function () {\n //Public Constructor\n /**\n * New instance to store the `PageSettings`.\n * @private\n */\n function PageSettingsState(document) {\n this.pageOrientation = document.pageSettings.orientation;\n this.pageRotate = document.pageSettings.rotate;\n this.pageSize = document.pageSettings.size;\n this.pageOrigin = document.pageSettings.origin;\n }\n Object.defineProperty(PageSettingsState.prototype, \"orientation\", {\n //public Properties\n /**\n * @hidden\n * @private\n */\n get: function () {\n return this.pageOrientation;\n },\n set: function (value) {\n this.pageOrientation = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PageSettingsState.prototype, \"rotate\", {\n /**\n * @hidden\n * @private\n */\n get: function () {\n return this.pageRotate;\n },\n set: function (value) {\n this.pageRotate = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PageSettingsState.prototype, \"size\", {\n /**\n * @hidden\n * @private\n */\n get: function () {\n return this.pageSize;\n },\n set: function (value) {\n this.pageSize = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PageSettingsState.prototype, \"origin\", {\n /**\n * @hidden\n * @private\n */\n get: function () {\n return this.pageOrigin;\n },\n set: function (value) {\n this.pageOrigin = value;\n },\n enumerable: true,\n configurable: true\n });\n return PageSettingsState;\n}());\nexport { PageSettingsState };\n","import { PdfNumber } from './../primitives/pdf-number';\nimport { PdfName } from './../primitives/pdf-name';\nimport { PdfArray } from './../primitives/pdf-array';\nimport { PdfDictionary, SaveSectionCollectionEventHandler } from './../primitives/pdf-dictionary';\nimport { PdfReferenceHolder } from './../primitives/pdf-reference';\nimport { RectangleF, PointF } from './../drawing/pdf-drawing';\nimport { PdfSection } from './pdf-section';\nimport { DictionaryProperties } from './../input-output/pdf-dictionary-properties';\n/**\n * Represents the `collection of the sections`.\n * @private\n */\nvar PdfSectionCollection = /** @class */ (function () {\n //constructor\n /**\n * Initializes a new instance of the `PdfSectionCollection` class.\n * @private\n */\n function PdfSectionCollection(document) {\n /**\n * @hidden\n * @private\n */\n this.sections = [];\n /**\n * @hidden\n * @private\n */\n this.dictionaryProperties = new DictionaryProperties();\n // if (document === null) {\n // throw new Error('ArgumentNullException : document');\n // }\n this.pdfDocument = document.clone();\n this.initialize();\n }\n Object.defineProperty(PdfSectionCollection.prototype, \"section\", {\n //Properties\n /**\n * Gets the `Section` collection.\n */\n get: function () {\n return this.sections;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfSectionCollection.prototype, \"document\", {\n /**\n * Gets a parent `document`.\n * @private\n */\n get: function () {\n return this.pdfDocument;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfSectionCollection.prototype, \"count\", {\n /**\n * Gets the `number of sections` in a document.\n * @private\n */\n get: function () {\n return this.sections.length;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfSectionCollection.prototype, \"element\", {\n /**\n * Gets the wrapped `element`.\n * @private\n */\n get: function () {\n return this.pages;\n },\n enumerable: true,\n configurable: true\n });\n //Methods\n /**\n * `Initializes the object`.\n * @private\n */\n PdfSectionCollection.prototype.initialize = function () {\n this.sectionCount = new PdfNumber(0);\n this.sectionCollection = new PdfArray();\n this.pages = new PdfDictionary();\n this.pages.beginSave = new SaveSectionCollectionEventHandler(this);\n this.pages.items.setValue(this.dictionaryProperties.type, new PdfName('Pages'));\n this.pages.items.setValue(this.dictionaryProperties.kids, this.sectionCollection);\n this.pages.items.setValue(this.dictionaryProperties.count, this.sectionCount);\n this.pages.items.setValue(this.dictionaryProperties.resources, new PdfDictionary());\n this.setPageSettings(this.pages, this.pdfDocument.pageSettings);\n };\n /**\n * Initializes a new instance of the `PdfSectionCollection` class.\n * @private\n */\n PdfSectionCollection.prototype.pdfSectionCollection = function (index) {\n if (index < 0 || index >= this.count) {\n throw new Error('IndexOutOfRangeException()');\n }\n return this.sections[index];\n };\n /**\n * In fills dictionary by the data from `Page settings`.\n * @private\n */\n PdfSectionCollection.prototype.setPageSettings = function (container, pageSettings) {\n // if (container === null) {\n // throw new Error('ArgumentNullException : container');\n // }\n // if (pageSettings === null) {\n // throw new Error('ArgumentNullException : pageSettings');\n // }\n var bounds = new RectangleF(new PointF(), pageSettings.size);\n container.items.setValue(this.dictionaryProperties.mediaBox, PdfArray.fromRectangle(bounds));\n };\n /**\n * `Adds` the specified section.\n * @private\n */\n PdfSectionCollection.prototype.add = function (section) {\n if (typeof section === 'undefined') {\n var section_1 = new PdfSection(this.pdfDocument);\n this.add(section_1);\n return section_1;\n }\n else {\n // if (section === null) {\n // throw new Error('ArgumentNullException : section');\n // }\n var r = this.checkSection(section);\n this.sections.push(section);\n section.parent = this;\n this.sectionCollection.add(r);\n return this.sections.indexOf(section);\n }\n };\n /**\n * `Checks` if the section is within the collection.\n * @private\n */\n PdfSectionCollection.prototype.checkSection = function (section) {\n var r = new PdfReferenceHolder(section);\n var contains = this.sectionCollection.contains(r);\n // if (contains) {\n // throw new Error('ArgumentException : The object can not be added twice to the collection,section');\n // }\n return r;\n };\n /**\n * Catches the Save event of the dictionary to `count the pages`.\n * @private\n */\n PdfSectionCollection.prototype.countPages = function () {\n var count = 0;\n this.sections.forEach(function (n) { return (count += n.count); });\n return count;\n };\n /**\n * Catches the Save event of the dictionary to `count the pages`.\n * @hidden\n * @private\n */\n PdfSectionCollection.prototype.beginSave = function () {\n this.sectionCount.intValue = this.countPages();\n };\n //Fields\n /**\n * Rotate factor for page `rotation`.\n * @default 90\n * @private\n */\n PdfSectionCollection.rotateFactor = 90;\n return PdfSectionCollection;\n}());\nexport { PdfSectionCollection };\n","import { PdfPage } from './pdf-page';\nimport { Dictionary } from './../collections/dictionary';\n/**\n * Represents a virtual collection of all the pages in the document.\n * @private\n */\nvar PdfDocumentPageCollection = /** @class */ (function () {\n //constructor\n /**\n * Initializes a new instance of the `PdfPageCollection` class.\n * @private\n */\n function PdfDocumentPageCollection(document) {\n /**\n * It holds the page collection with the `index`.\n * @private\n */\n this.pdfPageCollectionIndex = new Dictionary();\n this.document = document;\n }\n Object.defineProperty(PdfDocumentPageCollection.prototype, \"count\", {\n //Property\n /**\n * Gets the total `number of the pages`.\n * @private\n */\n get: function () {\n return this.countPages();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfDocumentPageCollection.prototype, \"pageCollectionIndex\", {\n /**\n * Gets a `page index` from the document.\n * @private\n */\n get: function () {\n return this.pdfPageCollectionIndex;\n },\n enumerable: true,\n configurable: true\n });\n PdfDocumentPageCollection.prototype.add = function (page) {\n if (typeof page === 'undefined') {\n var page_1 = new PdfPage();\n this.add(page_1);\n return page_1;\n }\n else {\n var section = this.getLastSection();\n section.add(page);\n }\n };\n /**\n * Returns `last section` in the document.\n * @private\n */\n PdfDocumentPageCollection.prototype.getLastSection = function () {\n var sc = this.document.sections;\n if (sc.section.length === 0) {\n sc.add();\n }\n var section = sc.section[sc.section.length - 1];\n return section;\n };\n /**\n * Called when `new page has been added`.\n * @private\n */\n PdfDocumentPageCollection.prototype.onPageAdded = function (args) {\n // if (PageAdded !== null)\n // {\n // PageAdded(this, args);\n // }\n };\n /**\n * Gets the `total number of pages`.\n * @private\n */\n PdfDocumentPageCollection.prototype.countPages = function () {\n var sc = this.document.sections;\n var count = 0;\n for (var index = 0; index < sc.section.length; index++) {\n count += sc.section[index].count;\n }\n return count;\n };\n /**\n * Gets the `page object` from page index.\n * @private\n */\n PdfDocumentPageCollection.prototype.getPageByIndex = function (index) {\n return this.getPage(index);\n };\n /**\n * Gets a page by its `index` in the document.\n * @private\n */\n PdfDocumentPageCollection.prototype.getPage = function (index) {\n if ((index < 0) || (index >= this.count)) {\n throw Error('ArgumentOutOfRangeException(\"index\", \"Value can not be less 0\")');\n }\n var page = null;\n var sectionStartIndex = 0;\n var sectionCount = 0;\n var pageIndex = 0;\n var length = this.document.sections.count;\n for (var i = 0; i < length; i++) {\n var section = this.document.sections.section[i];\n sectionCount = section.count;\n pageIndex = index - sectionStartIndex;\n // We found a section containing the page.\n if ((index >= sectionStartIndex && pageIndex < sectionCount)) {\n page = section.getPages()[pageIndex];\n break;\n }\n sectionStartIndex += sectionCount;\n }\n return page;\n };\n /**\n * Gets the `index of` the page in the document.\n * @private\n */\n PdfDocumentPageCollection.prototype.indexOf = function (page) {\n var index = -1;\n if (page == null) {\n throw new Error('ArgumentNullException: page');\n }\n else {\n var numPages = 0;\n for (var i = 0, len = this.document.sections.count; i < len; i++) {\n var section = this.document.sections.pdfSectionCollection(i);\n index = section.indexOf(page);\n if (index >= 0) {\n index += numPages;\n break;\n }\n else {\n index = -1;\n }\n numPages += section.count;\n }\n }\n return index;\n };\n /**\n * `Removes` the specified page.\n * @private\n */\n PdfDocumentPageCollection.prototype.remove = function (page) {\n if (page == null) {\n throw Error('ArgumentNullException(\"page\")');\n }\n var section = null;\n var len;\n for (var i = 0, len_1 = this.document.sections.count; i < len_1; i++) {\n section = this.document.sections.pdfSectionCollection(i);\n if (section.pages.contains(page)) {\n section.pages.remove(page);\n break;\n }\n }\n return section;\n };\n return PdfDocumentPageCollection;\n}());\nexport { PdfDocumentPageCollection };\n","/**\n * PdfCacheCollection.ts class for EJ2-PDF\n */\nimport { Dictionary } from './../collections/dictionary';\n/**\n * `Collection of the cached objects`.\n * @private\n */\nvar PdfCacheCollection = /** @class */ (function () {\n // Constructors\n /**\n * Initializes a new instance of the `PdfCacheCollection` class.\n * @private\n */\n function PdfCacheCollection() {\n this.referenceObjects = [];\n this.pdfFontCollection = new Dictionary();\n }\n // Public methods\n /**\n * `Searches` for the similar cached object. If is not found - adds the object to the cache.\n * @private\n */\n PdfCacheCollection.prototype.search = function (obj) {\n var result = null;\n var group = this.getGroup(obj);\n if (group == null) {\n group = this.createNewGroup();\n }\n else if (group.length > 0) {\n result = group[0];\n }\n group.push(obj);\n return result;\n };\n // Implementation\n /**\n * `Creates` a new group.\n * @private\n */\n PdfCacheCollection.prototype.createNewGroup = function () {\n var group = [];\n this.referenceObjects.push(group);\n return group;\n };\n /**\n * `Find and Return` a group.\n * @private\n */\n PdfCacheCollection.prototype.getGroup = function (result) {\n var group = null;\n if (result !== null) {\n var len = this.referenceObjects.length;\n for (var i = 0; i < len; i++) {\n if (this.referenceObjects.length > 0) {\n var tGroup = this.referenceObjects[i];\n if (tGroup.length > 0) {\n var representative = tGroup[0];\n if (result.equalsTo(representative)) {\n group = tGroup;\n break;\n }\n }\n else {\n this.removeGroup(tGroup);\n }\n }\n len = this.referenceObjects.length;\n }\n }\n return group;\n };\n /**\n * Remove a group from the storage.\n */\n PdfCacheCollection.prototype.removeGroup = function (group) {\n if (group !== null) {\n var index = this.referenceObjects.indexOf(group);\n this.referenceObjects.slice(index, index + 1);\n }\n };\n PdfCacheCollection.prototype.destroy = function () {\n this.pdfFontCollection = undefined;\n this.referenceObjects = undefined;\n };\n return PdfCacheCollection;\n}());\nexport { PdfCacheCollection };\n","/**\n * PdfStandardFontMetricsFactory.ts class for EJ2-PDF\n */\nimport { PdfFontStyle, PdfFontFamily } from './enum';\nimport { PdfFontMetrics, StandardWidthTable } from './pdf-font-metrics';\n/**\n * @private\n * `Factory of the standard fonts metrics`.\n */\nvar PdfStandardFontMetricsFactory = /** @class */ (function () {\n function PdfStandardFontMetricsFactory() {\n }\n /**\n * Returns `metrics` of the font.\n * @private\n */\n PdfStandardFontMetricsFactory.getMetrics = function (fontFamily, fontStyle, size) {\n var metrics = null;\n switch (fontFamily) {\n case PdfFontFamily.Helvetica:\n metrics = this.getHelveticaMetrics(fontFamily, fontStyle, size);\n break;\n case PdfFontFamily.Courier:\n metrics = this.getCourierMetrics(fontFamily, fontStyle, size);\n break;\n case PdfFontFamily.TimesRoman:\n metrics = this.getTimesMetrics(fontFamily, fontStyle, size);\n break;\n case PdfFontFamily.Symbol:\n metrics = this.getSymbolMetrics(fontFamily, fontStyle, size);\n break;\n case PdfFontFamily.ZapfDingbats:\n metrics = this.getZapfDingbatsMetrics(fontFamily, fontStyle, size);\n break;\n default:\n metrics = this.getHelveticaMetrics(PdfFontFamily.Helvetica, fontStyle, size);\n break;\n }\n metrics.name = fontFamily.toString();\n metrics.subScriptSizeFactor = this.subSuperScriptFactor;\n metrics.superscriptSizeFactor = this.subSuperScriptFactor;\n return metrics;\n };\n // Implementation\n /**\n * Creates `Helvetica font metrics`.\n * @private\n */\n PdfStandardFontMetricsFactory.getHelveticaMetrics = function (fontFamily, fontStyle, size) {\n var metrics = new PdfFontMetrics();\n if ((fontStyle & PdfFontStyle.Bold) > 0 && (fontStyle & PdfFontStyle.Italic) > 0) {\n metrics.ascent = this.helveticaBoldItalicAscent;\n metrics.descent = this.helveticaBoldItalicDescent;\n metrics.postScriptName = this.helveticaBoldItalicName;\n metrics.size = size;\n metrics.widthTable = new StandardWidthTable(this.arialBoldWidth);\n metrics.height = metrics.ascent - metrics.descent;\n }\n else if ((fontStyle & PdfFontStyle.Bold) > 0) {\n metrics.ascent = this.helveticaBoldAscent;\n metrics.descent = this.helveticaBoldDescent;\n metrics.postScriptName = this.helveticaBoldName;\n metrics.size = size;\n metrics.widthTable = new StandardWidthTable(this.arialBoldWidth);\n metrics.height = metrics.ascent - metrics.descent;\n }\n else if ((fontStyle & PdfFontStyle.Italic) > 0) {\n metrics.ascent = this.helveticaItalicAscent;\n metrics.descent = this.helveticaItalicDescent;\n metrics.postScriptName = this.helveticaItalicName;\n metrics.size = size;\n metrics.widthTable = new StandardWidthTable(this.arialWidth);\n metrics.height = metrics.ascent - metrics.descent;\n }\n else {\n metrics.ascent = this.helveticaAscent;\n metrics.descent = this.helveticaDescent;\n metrics.postScriptName = this.helveticaName;\n metrics.size = size;\n metrics.widthTable = new StandardWidthTable(this.arialWidth);\n metrics.height = metrics.ascent - metrics.descent;\n }\n return metrics;\n };\n /**\n * Creates `Courier font metrics`.\n * @private\n */\n PdfStandardFontMetricsFactory.getCourierMetrics = function (fontFamily, fontStyle, size) {\n var metrics = new PdfFontMetrics();\n if ((fontStyle & PdfFontStyle.Bold) > 0 && (fontStyle & PdfFontStyle.Italic) > 0) {\n metrics.ascent = this.courierBoldItalicAscent;\n metrics.descent = this.courierBoldItalicDescent;\n metrics.postScriptName = this.courierBoldItalicName;\n metrics.size = size;\n metrics.widthTable = new StandardWidthTable(this.fixedWidth);\n metrics.height = metrics.ascent - metrics.descent;\n }\n else if ((fontStyle & PdfFontStyle.Bold) > 0) {\n metrics.ascent = this.courierBoldAscent;\n metrics.descent = this.courierBoldDescent;\n metrics.postScriptName = this.courierBoldName;\n metrics.size = size;\n metrics.widthTable = new StandardWidthTable(this.fixedWidth);\n metrics.height = metrics.ascent - metrics.descent;\n }\n else if ((fontStyle & PdfFontStyle.Italic) > 0) {\n metrics.ascent = this.courierItalicAscent;\n metrics.descent = this.courierItalicDescent;\n metrics.postScriptName = this.courierItalicName;\n metrics.size = size;\n metrics.widthTable = new StandardWidthTable(this.fixedWidth);\n metrics.height = metrics.ascent - metrics.descent;\n }\n else {\n metrics.ascent = this.courierAscent;\n metrics.descent = this.courierDescent;\n metrics.postScriptName = this.courierName;\n metrics.size = size;\n metrics.widthTable = new StandardWidthTable(this.fixedWidth);\n metrics.height = metrics.ascent - metrics.descent;\n }\n return metrics;\n };\n /**\n * Creates `Times font metrics`.\n * @private\n */\n PdfStandardFontMetricsFactory.getTimesMetrics = function (fontFamily, fontStyle, size) {\n var metrics = new PdfFontMetrics();\n if ((fontStyle & PdfFontStyle.Bold) > 0 && (fontStyle & PdfFontStyle.Italic) > 0) {\n metrics.ascent = this.timesBoldItalicAscent;\n metrics.descent = this.timesBoldItalicDescent;\n metrics.postScriptName = this.timesBoldItalicName;\n metrics.size = size;\n metrics.widthTable = new StandardWidthTable(this.timesRomanBoldItalicWidths);\n metrics.height = metrics.ascent - metrics.descent;\n }\n else if ((fontStyle & PdfFontStyle.Bold) > 0) {\n metrics.ascent = this.timesBoldAscent;\n metrics.descent = this.timesBoldDescent;\n metrics.postScriptName = this.timesBoldName;\n metrics.size = size;\n metrics.widthTable = new StandardWidthTable(this.timesRomanBoldWidth);\n metrics.height = metrics.ascent - metrics.descent;\n }\n else if ((fontStyle & PdfFontStyle.Italic) > 0) {\n metrics.ascent = this.timesItalicAscent;\n metrics.descent = this.timesItalicDescent;\n metrics.postScriptName = this.timesItalicName;\n metrics.size = size;\n metrics.widthTable = new StandardWidthTable(this.timesRomanItalicWidth);\n metrics.height = metrics.ascent - metrics.descent;\n }\n else {\n metrics.ascent = this.timesAscent;\n metrics.descent = this.timesDescent;\n metrics.postScriptName = this.timesName;\n metrics.size = size;\n metrics.widthTable = new StandardWidthTable(this.timesRomanWidth);\n metrics.height = metrics.ascent - metrics.descent;\n }\n return metrics;\n };\n /**\n * Creates `Symbol font metrics`.\n * @private\n */\n PdfStandardFontMetricsFactory.getSymbolMetrics = function (fontFamily, fontStyle, size) {\n var metrics = new PdfFontMetrics();\n metrics.ascent = this.symbolAscent;\n metrics.descent = this.symbolDescent;\n metrics.postScriptName = this.symbolName;\n metrics.size = size;\n metrics.widthTable = new StandardWidthTable(this.symbolWidth);\n metrics.height = metrics.ascent - metrics.descent;\n return metrics;\n };\n /**\n * Creates `ZapfDingbats font metrics`.\n * @private\n */\n PdfStandardFontMetricsFactory.getZapfDingbatsMetrics = function (fontFamily, fontStyle, size) {\n var metrics = new PdfFontMetrics();\n metrics.ascent = this.zapfDingbatsAscent;\n metrics.descent = this.zapfDingbatsDescent;\n metrics.postScriptName = this.zapfDingbatsName;\n metrics.size = size;\n metrics.widthTable = new StandardWidthTable(this.zapfDingbatsWidth);\n metrics.height = metrics.ascent - metrics.descent;\n return metrics;\n };\n /**\n * `Multiplier` os subscript superscript.\n * @private\n */\n PdfStandardFontMetricsFactory.subSuperScriptFactor = 1.52;\n /**\n * `Ascender` value for the font.\n * @private\n */\n PdfStandardFontMetricsFactory.helveticaAscent = 931;\n /**\n * `Ascender` value for the font.\n * @private\n */\n PdfStandardFontMetricsFactory.helveticaDescent = -225;\n /**\n * `Font type`.\n * @private\n */\n PdfStandardFontMetricsFactory.helveticaName = 'Helvetica';\n /**\n * `Ascender` value for the font.\n * @private\n */\n PdfStandardFontMetricsFactory.helveticaBoldAscent = 962;\n /**\n * `Ascender` value for the font.\n * @private\n */\n PdfStandardFontMetricsFactory.helveticaBoldDescent = -228;\n /**\n * `Font type`.\n * @private\n */\n PdfStandardFontMetricsFactory.helveticaBoldName = 'Helvetica-Bold';\n /**\n * `Ascender` value for the font.\n * @private\n */\n PdfStandardFontMetricsFactory.helveticaItalicAscent = 931;\n /**\n * `Ascender` value for the font.\n * @private\n */\n PdfStandardFontMetricsFactory.helveticaItalicDescent = -225;\n /**\n * `Font type`.\n * @private\n */\n PdfStandardFontMetricsFactory.helveticaItalicName = 'Helvetica-Oblique';\n /**\n * `Ascender` value for the font.\n * @private\n */\n PdfStandardFontMetricsFactory.helveticaBoldItalicAscent = 962;\n /**\n * `Ascender` value for the font.\n * @private\n */\n PdfStandardFontMetricsFactory.helveticaBoldItalicDescent = -228;\n /**\n * `Font type`.\n * @private\n */\n PdfStandardFontMetricsFactory.helveticaBoldItalicName = 'Helvetica-BoldOblique';\n /**\n * `Ascender` value for the font.\n * @private\n */\n PdfStandardFontMetricsFactory.courierAscent = 805;\n /**\n * `Ascender` value for the font.\n * @private\n */\n PdfStandardFontMetricsFactory.courierDescent = -250;\n /**\n * `Font type`.\n * @private\n */\n PdfStandardFontMetricsFactory.courierName = 'Courier';\n /**\n * `Ascender` value for the font.\n * @private\n */\n PdfStandardFontMetricsFactory.courierBoldAscent = 801;\n /**\n * `Ascender` value for the font.\n * @private\n */\n PdfStandardFontMetricsFactory.courierBoldDescent = -250;\n /**\n * `Font type`.\n * @private\n */\n PdfStandardFontMetricsFactory.courierBoldName = 'Courier-Bold';\n /**\n * `Ascender` value for the font.\n * @private\n */\n PdfStandardFontMetricsFactory.courierItalicAscent = 805;\n /**\n * `Ascender` value for the font.\n * @private\n */\n PdfStandardFontMetricsFactory.courierItalicDescent = -250;\n /**\n * `Font type`.\n * @private\n */\n PdfStandardFontMetricsFactory.courierItalicName = 'Courier-Oblique';\n /**\n * `Ascender` value for the font.\n * @private\n */\n PdfStandardFontMetricsFactory.courierBoldItalicAscent = 801;\n /**\n * `Ascender` value for the font.\n * @private\n */\n PdfStandardFontMetricsFactory.courierBoldItalicDescent = -250;\n /**\n * `Font type`.\n * @private\n */\n PdfStandardFontMetricsFactory.courierBoldItalicName = 'Courier-BoldOblique';\n /**\n * `Ascender` value for the font.\n * @private\n */\n PdfStandardFontMetricsFactory.timesAscent = 898;\n /**\n * `Ascender` value for the font.\n * @private\n */\n PdfStandardFontMetricsFactory.timesDescent = -218;\n /**\n * `Font type`.\n * @private\n */\n PdfStandardFontMetricsFactory.timesName = 'Times-Roman';\n /**\n * `Ascender` value for the font.\n * @private\n */\n PdfStandardFontMetricsFactory.timesBoldAscent = 935;\n /**\n * `Ascender` value for the font.\n * @private\n */\n PdfStandardFontMetricsFactory.timesBoldDescent = -218;\n /**\n * `Font type`.\n * @private\n */\n PdfStandardFontMetricsFactory.timesBoldName = 'Times-Bold';\n /**\n * `Ascender` value for the font.\n * @private\n */\n PdfStandardFontMetricsFactory.timesItalicAscent = 883;\n /**\n * `Ascender` value for the font.\n * @private\n */\n PdfStandardFontMetricsFactory.timesItalicDescent = -217;\n /**\n * `Font type`.\n * @private\n */\n PdfStandardFontMetricsFactory.timesItalicName = 'Times-Italic';\n /**\n * `Ascender` value for the font.\n * @private\n */\n PdfStandardFontMetricsFactory.timesBoldItalicAscent = 921;\n /**\n * `Ascender` value for the font.\n * @private\n */\n PdfStandardFontMetricsFactory.timesBoldItalicDescent = -218;\n /**\n * `Font type`.\n * @private\n */\n PdfStandardFontMetricsFactory.timesBoldItalicName = 'Times-BoldItalic';\n /**\n * `Ascender` value for the font.\n * @private\n */\n PdfStandardFontMetricsFactory.symbolAscent = 1010;\n /**\n * `Ascender` value for the font.\n * @private\n */\n PdfStandardFontMetricsFactory.symbolDescent = -293;\n /**\n * `Font type`.\n * @private\n */\n PdfStandardFontMetricsFactory.symbolName = 'Symbol';\n /**\n * `Ascender` value for the font.\n * @private\n */\n PdfStandardFontMetricsFactory.zapfDingbatsAscent = 820;\n /**\n * `Ascender` value for the font.\n * @private\n */\n PdfStandardFontMetricsFactory.zapfDingbatsDescent = -143;\n /**\n * `Font type`.\n * @private\n */\n PdfStandardFontMetricsFactory.zapfDingbatsName = 'ZapfDingbats';\n /**\n * `Arial` widths table.\n * @private\n */\n PdfStandardFontMetricsFactory.arialWidth = [\n 278, 278, 355, 556, 556, 889, 667, 191, 333, 333, 389, 584, 278, 333,\n 278, 278, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 278, 278, 584, 584,\n 584, 556, 1015, 667, 667, 722, 722, 667, 611, 778, 722, 278, 500, 667, 556, 833,\n 722, 778, 667, 778, 722, 667, 611, 722, 667, 944, 667, 667, 611, 278, 278, 278,\n 469, 556, 333, 556, 556, 500, 556, 556, 278, 556, 556, 222, 222, 500, 222, 833,\n 556, 556, 556, 556, 333, 500, 278, 556, 500, 722, 500, 500, 500, 334, 260, 334,\n 584, 0, 556, 0, 222, 556, 333, 1000, 556, 556, 333, 1000, 667, 333, 1000, 0,\n 611, 0, 0, 222, 222, 333, 333, 350, 556, 1000, 333, 1000, 500, 333, 944, 0,\n 500, 667, 0, 333, 556, 556, 556, 556, 260, 556, 333, 737, 370, 556, 584, 0,\n 737, 333, 400, 584, 333, 333, 333, 556, 537, 278, 333, 333, 365, 556, 834, 834,\n 834, 611, 667, 667, 667, 667, 667, 667, 1000, 722, 667, 667, 667, 667, 278, 278,\n 278, 278, 722, 722, 778, 778, 778, 778, 778, 584, 778, 722, 722, 722, 722, 667,\n 667, 611, 556, 556, 556, 556, 556, 556, 889, 500, 556, 556, 556, 556, 278, 278,\n 278, 278, 556, 556, 556, 556, 556, 556, 556, 584, 611, 556, 556, 556, 556, 500,\n 556, 500\n ];\n /**\n * `Arial bold` widths table.\n * @private\n */\n PdfStandardFontMetricsFactory.arialBoldWidth = [\n 278, 333, 474, 556, 556, 889, 722, 238, 333, 333, 389, 584, 278, 333,\n 278, 278, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 333, 333, 584, 584,\n 584, 611, 975, 722, 722, 722, 722, 667, 611, 778, 722, 278, 556, 722, 611, 833,\n 722, 778, 667, 778, 722, 667, 611, 722, 667, 944, 667, 667, 611, 333, 278, 333,\n 584, 556, 333, 556, 611, 556, 611, 556, 333, 611, 611, 278, 278, 556, 278, 889,\n 611, 611, 611, 611, 389, 556, 333, 611, 556, 778, 556, 556, 500, 389, 280, 389,\n 584, 0, 556, 0, 278, 556, 500, 1000, 556, 556, 333, 1000, 667, 333, 1000, 0,\n 611, 0, 0, 278, 278, 500, 500, 350, 556, 1000, 333, 1000, 556, 333, 944, 0,\n 500, 667, 0, 333, 556, 556, 556, 556, 280, 556, 333, 737, 370, 556, 584, 0,\n 737, 333, 400, 584, 333, 333, 333, 611, 556, 278, 333, 333, 365, 556, 834, 834,\n 834, 611, 722, 722, 722, 722, 722, 722, 1000, 722, 667, 667, 667, 667, 278, 278,\n 278, 278, 722, 722, 778, 778, 778, 778, 778, 584, 778, 722, 722, 722, 722, 667,\n 667, 611, 556, 556, 556, 556, 556, 556, 889, 556, 556, 556, 556, 556, 278, 278,\n 278, 278, 611, 611, 611, 611, 611, 611, 611, 584, 611, 611, 611, 611, 611, 556,\n 611, 556\n ];\n /**\n * `Fixed` widths table.\n * @private\n */\n PdfStandardFontMetricsFactory.fixedWidth = [\n 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600,\n 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600,\n 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600,\n 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600,\n 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600,\n 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600,\n 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600,\n 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600,\n 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600,\n 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600,\n 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600,\n 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600,\n 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600,\n 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600\n ];\n /**\n * `Times` widths table.\n * @private\n */\n PdfStandardFontMetricsFactory.timesRomanWidth = [\n 250, 333, 408, 500, 500, 833, 778, 180, 333, 333, 500, 564, 250, 333,\n 250, 278, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 278, 278, 564, 564,\n 564, 444, 921, 722, 667, 667, 722, 611, 556, 722, 722, 333, 389, 722, 611, 889,\n 722, 722, 556, 722, 667, 556, 611, 722, 722, 944, 722, 722, 611, 333, 278, 333,\n 469, 500, 333, 444, 500, 444, 500, 444, 333, 500, 500, 278, 278, 500, 278, 778,\n 500, 500, 500, 500, 333, 389, 278, 500, 500, 722, 500, 500, 444, 480, 200, 480,\n 541, 0, 500, 0, 333, 500, 444, 1000, 500, 500, 333, 1000, 556, 333, 889, 0,\n 611, 0, 0, 333, 333, 444, 444, 350, 500, 1000, 333, 980, 389, 333, 722, 0,\n 444, 722, 0, 333, 500, 500, 500, 500, 200, 500, 333, 760, 276, 500, 564, 0,\n 760, 333, 400, 564, 300, 300, 333, 500, 453, 250, 333, 300, 310, 500, 750, 750,\n 750, 444, 722, 722, 722, 722, 722, 722, 889, 667, 611, 611, 611, 611, 333, 333,\n 333, 333, 722, 722, 722, 722, 722, 722, 722, 564, 722, 722, 722, 722, 722, 722,\n 556, 500, 444, 444, 444, 444, 444, 444, 667, 444, 444, 444, 444, 444, 278, 278,\n 278, 278, 500, 500, 500, 500, 500, 500, 500, 564, 500, 500, 500, 500, 500, 500,\n 500, 500\n ];\n /**\n * `Times bold` widths table.\n * @private\n */\n PdfStandardFontMetricsFactory.timesRomanBoldWidth = [\n 250, 333, 555, 500, 500, 1000, 833, 278, 333, 333, 500, 570, 250, 333,\n 250, 278, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 333, 333, 570, 570,\n 570, 500, 930, 722, 667, 722, 722, 667, 611, 778, 778, 389, 500, 778, 667, 944,\n 722, 778, 611, 778, 722, 556, 667, 722, 722, 1000, 722, 722, 667, 333, 278, 333,\n 581, 500, 333, 500, 556, 444, 556, 444, 333, 500, 556, 278, 333, 556, 278, 833,\n 556, 500, 556, 556, 444, 389, 333, 556, 500, 722, 500, 500, 444, 394, 220, 394,\n 520, 0, 500, 0, 333, 500, 500, 1000, 500, 500, 333, 1000, 556, 333, 1000, 0,\n 667, 0, 0, 333, 333, 500, 500, 350, 500, 1000, 333, 1000, 389, 333, 722, 0,\n 444, 722, 0, 333, 500, 500, 500, 500, 220, 500, 333, 747, 300, 500, 570, 0,\n 747, 333, 400, 570, 300, 300, 333, 556, 540, 250, 333, 300, 330, 500, 750, 750,\n 750, 500, 722, 722, 722, 722, 722, 722, 1000, 722, 667, 667, 667, 667, 389, 389,\n 389, 389, 722, 722, 778, 778, 778, 778, 778, 570, 778, 722, 722, 722, 722, 722,\n 611, 556, 500, 500, 500, 500, 500, 500, 722, 444, 444, 444, 444, 444, 278, 278,\n 278, 278, 500, 556, 500, 500, 500, 500, 500, 570, 500, 556, 556, 556, 556, 500,\n 556, 500\n ];\n /**\n * `Times italic` widths table.\n * @private\n */\n PdfStandardFontMetricsFactory.timesRomanItalicWidth = [\n 250, 333, 420, 500, 500, 833, 778, 214, 333, 333, 500, 675, 250, 333,\n 250, 278, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 333, 333, 675, 675,\n 675, 500, 920, 611, 611, 667, 722, 611, 611, 722, 722, 333, 444, 667, 556, 833,\n 667, 722, 611, 722, 611, 500, 556, 722, 611, 833, 611, 556, 556, 389, 278, 389,\n 422, 500, 333, 500, 500, 444, 500, 444, 278, 500, 500, 278, 278, 444, 278, 722,\n 500, 500, 500, 500, 389, 389, 278, 500, 444, 667, 444, 444, 389, 400, 275, 400,\n 541, 0, 500, 0, 333, 500, 556, 889, 500, 500, 333, 1000, 500, 333, 944, 0,\n 556, 0, 0, 333, 333, 556, 556, 350, 500, 889, 333, 980, 389, 333, 667, 0,\n 389, 556, 0, 389, 500, 500, 500, 500, 275, 500, 333, 760, 276, 500, 675, 0,\n 760, 333, 400, 675, 300, 300, 333, 500, 523, 250, 333, 300, 310, 500, 750, 750,\n 750, 500, 611, 611, 611, 611, 611, 611, 889, 667, 611, 611, 611, 611, 333, 333,\n 333, 333, 722, 667, 722, 722, 722, 722, 722, 675, 722, 722, 722, 722, 722, 556,\n 611, 500, 500, 500, 500, 500, 500, 500, 667, 444, 444, 444, 444, 444, 278, 278,\n 278, 278, 500, 500, 500, 500, 500, 500, 500, 675, 500, 500, 500, 500, 500, 444,\n 500, 444\n ];\n /**\n * `Times bold italic` widths table.\n * @private\n */\n PdfStandardFontMetricsFactory.timesRomanBoldItalicWidths = [\n 250, 389, 555, 500, 500, 833, 778, 278, 333, 333, 500, 570, 250, 333,\n 250, 278, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 333, 333, 570, 570,\n 570, 500, 832, 667, 667, 667, 722, 667, 667, 722, 778, 389, 500, 667, 611, 889,\n 722, 722, 611, 722, 667, 556, 611, 722, 667, 889, 667, 611, 611, 333, 278, 333,\n 570, 500, 333, 500, 500, 444, 500, 444, 333, 500, 556, 278, 278, 500, 278, 778,\n 556, 500, 500, 500, 389, 389, 278, 556, 444, 667, 500, 444, 389, 348, 220, 348,\n 570, 0, 500, 0, 333, 500, 500, 1000, 500, 500, 333, 1000, 556, 333, 944, 0,\n 611, 0, 0, 333, 333, 500, 500, 350, 500, 1000, 333, 1000, 389, 333, 722, 0,\n 389, 611, 0, 389, 500, 500, 500, 500, 220, 500, 333, 747, 266, 500, 606, 0,\n 747, 333, 400, 570, 300, 300, 333, 576, 500, 250, 333, 300, 300, 500, 750, 750,\n 750, 500, 667, 667, 667, 667, 667, 667, 944, 667, 667, 667, 667, 667, 389, 389,\n 389, 389, 722, 722, 722, 722, 722, 722, 722, 570, 722, 722, 722, 722, 722, 611,\n 611, 500, 500, 500, 500, 500, 500, 500, 722, 444, 444, 444, 444, 444, 278, 278,\n 278, 278, 500, 556, 500, 500, 500, 500, 500, 570, 500, 556, 556, 556, 556, 444,\n 500, 444\n ];\n /**\n * `Symbol` widths table.\n * @private\n */\n PdfStandardFontMetricsFactory.symbolWidth = [\n 250, 333, 713, 500, 549, 833, 778, 439, 333, 333, 500, 549, 250, 549,\n 250, 278, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 278, 278,\n 549, 549, 549, 444, 549, 722, 667, 722, 612, 611, 763, 603, 722, 333,\n 631, 722, 686, 889, 722, 722, 768, 741, 556, 592, 611, 690, 439, 768,\n 645, 795, 611, 333, 863, 333, 658, 500, 500, 631, 549, 549, 494, 439,\n 521, 411, 603, 329, 603, 549, 549, 576, 521, 549, 549, 521, 549, 603,\n 439, 576, 713, 686, 493, 686, 494, 480, 200, 480, 549, 750, 620, 247,\n 549, 167, 713, 500, 753, 753, 753, 753, 1042, 987, 603, 987, 603, 400,\n 549, 411, 549, 549, 713, 494, 460, 549, 549, 549, 549, 1000, 603, 1000,\n 658, 823, 686, 795, 987, 768, 768, 823, 768, 768, 713, 713, 713, 713,\n 713, 713, 713, 768, 713, 790, 790, 890, 823, 549, 250, 713, 603, 603,\n 1042, 987, 603, 987, 603, 494, 329, 790, 790, 786, 713, 384, 384, 384,\n 384, 384, 384, 494, 494, 494, 494, 329, 274, 686, 686, 686, 384, 384,\n 384, 384, 384, 384, 494, 494, 494, -1\n ];\n /**\n * `Zip dingbats` widths table.\n * @private\n */\n PdfStandardFontMetricsFactory.zapfDingbatsWidth = [\n 278, 974, 961, 974, 980, 719, 789, 790, 791, 690, 960, 939, 549, 855,\n 911, 933, 911, 945, 974, 755, 846, 762, 761, 571, 677, 763, 760, 759,\n 754, 494, 552, 537, 577, 692, 786, 788, 788, 790, 793, 794, 816, 823,\n 789, 841, 823, 833, 816, 831, 923, 744, 723, 749, 790, 792, 695, 776,\n 768, 792, 759, 707, 708, 682, 701, 826, 815, 789, 789, 707, 687, 696,\n 689, 786, 787, 713, 791, 785, 791, 873, 761, 762, 762, 759, 759, 892,\n 892, 788, 784, 438, 138, 277, 415, 392, 392, 668, 668, 390, 390, 317,\n 317, 276, 276, 509, 509, 410, 410, 234, 234, 334, 334, 732, 544, 544,\n 910, 667, 760, 760, 776, 595, 694, 626, 788, 788, 788, 788, 788, 788,\n 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788,\n 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788,\n 788, 788, 788, 788, 788, 788, 894, 838, 1016, 458, 748, 924, 748, 918,\n 927, 928, 928, 834, 873, 828, 924, 924, 917, 930, 931, 463, 883, 836,\n 836, 867, 867, 696, 696, 874, 874, 760, 946, 771, 865, 771, 888, 967,\n 888, 831, 873, 927, 970, 918\n ];\n return PdfStandardFontMetricsFactory;\n}());\nexport { PdfStandardFontMetricsFactory };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { PdfFontFamily, PdfFontStyle, FontEncoding } from './enum';\nimport { PdfFont } from './pdf-font';\nimport { PdfDocument } from './../../document/pdf-document';\nimport { PdfStandardFontMetricsFactory } from './pdf-standard-font-metrics-factory';\nimport { PdfDictionary } from './../../primitives/pdf-dictionary';\nimport { DictionaryProperties } from './../../input-output/pdf-dictionary-properties';\nimport { PdfName } from './../../primitives/pdf-name';\n/**\n * Represents one of the 14 standard fonts.\n * It's used to create a standard PDF font to draw the text in to the PDF.\n * ```typescript\n * // create a new PDF document\n * let document : PdfDocument = new PdfDocument();\n * // add a new page to the document\n * let page1 : PdfPage = document.pages.add();\n * //\n * // create new standard font\n * let font : PdfStandardFont = new PdfStandardFont(PdfFontFamily.Helvetica, 20);\n * //\n * // create black brush\n * let blackBrush : PdfSolidBrush = new PdfSolidBrush(new PdfColor(0, 0, 0));\n * // draw the text\n * page1.graphics.drawString('Hello World', font, blackBrush, new PointF(0, 0));\n * // save the document\n * document.save('output.pdf');\n * // destroy the document\n * document.destroy();\n * ```\n */\nvar PdfStandardFont = /** @class */ (function (_super) {\n __extends(PdfStandardFont, _super);\n function PdfStandardFont(fontFamilyPrototype, size, style) {\n var _this = _super.call(this, size, (typeof style === 'undefined') ? ((fontFamilyPrototype instanceof PdfStandardFont) ? fontFamilyPrototype.style : PdfFontStyle.Regular) : style) || this;\n /**\n * Gets `ascent` of the font.\n * @private\n */\n _this.dictionaryProperties = new DictionaryProperties();\n /**\n * Gets `encodings` for internal class use.\n * @hidden\n * @private\n */\n _this.encodings = ['Unknown', 'StandardEncoding', 'MacRomanEncoding', 'MacExpertEncoding',\n 'WinAnsiEncoding', 'PDFDocEncoding', 'IdentityH'];\n if (typeof fontFamilyPrototype === 'undefined') {\n _this.pdfFontFamily = PdfFontFamily.Helvetica;\n }\n else if ((fontFamilyPrototype instanceof PdfStandardFont)) {\n _this.pdfFontFamily = fontFamilyPrototype.fontFamily;\n }\n else {\n _this.pdfFontFamily = fontFamilyPrototype;\n }\n _this.checkStyle();\n _this.initializeInternals();\n return _this;\n }\n Object.defineProperty(PdfStandardFont.prototype, \"fontFamily\", {\n /* tslint:enable */\n //Properties\n /**\n * Gets the `FontFamily`.\n * @private\n */\n get: function () {\n return this.pdfFontFamily;\n },\n enumerable: true,\n configurable: true\n });\n //methods\n /**\n * Checks font `style` of the font.\n * @private\n */\n PdfStandardFont.prototype.checkStyle = function () {\n if (this.fontFamily === PdfFontFamily.Symbol || this.fontFamily === PdfFontFamily.ZapfDingbats) {\n var style = this.style;\n style &= ~(PdfFontStyle.Bold | PdfFontStyle.Italic);\n this.setStyle(style);\n }\n };\n /**\n * Returns `width` of the line.\n * @public\n */\n PdfStandardFont.prototype.getLineWidth = function (line, format) {\n if (line == null) {\n throw new Error('ArgumentNullException:line');\n }\n var width = 0;\n var name = this.name;\n line = PdfStandardFont.convert(line);\n for (var i = 0, len = line.length; i < len; i++) {\n var ch = line[i];\n var charWidth = this.getCharWidthInternal(ch, format);\n width += charWidth;\n }\n var size = this.metrics.getSize(format);\n width *= (PdfFont.charSizeMultiplier * size);\n width = this.applyFormatSettings(line, format, width);\n return width;\n };\n /**\n * Checks whether fonts are `equals`.\n * @private\n */\n PdfStandardFont.prototype.equalsToFont = function (font) {\n var equal = false;\n var stFont = font;\n if (stFont != null) {\n var fontFamilyEqual = (this.fontFamily === stFont.fontFamily);\n var lineReducer = (~(PdfFontStyle.Underline | PdfFontStyle.Strikeout));\n var styleEqual = (this.style & lineReducer) === (stFont.style & lineReducer);\n equal = (fontFamilyEqual && styleEqual);\n }\n return equal;\n };\n /**\n * `Initializes` font internals..\n * @private\n */\n PdfStandardFont.prototype.initializeInternals = function () {\n var equalFont = null;\n // if (PdfDocument.EnableCache) {\n equalFont = PdfDocument.cache.search(this);\n // }\n var internals = null;\n // if (equalFont == null) {\n // Create font metrics.\n var metrics = PdfStandardFontMetricsFactory.getMetrics(this.pdfFontFamily, this.style, this.size);\n this.metrics = metrics;\n internals = this.createInternals();\n this.setInternals(internals);\n };\n /**\n * `Creates` font`s dictionary.\n * @private\n */\n PdfStandardFont.prototype.createInternals = function () {\n var dictionary = new PdfDictionary();\n dictionary.items.setValue(this.dictionaryProperties.type, new PdfName(this.dictionaryProperties.font));\n dictionary.items.setValue(this.dictionaryProperties.subtype, new PdfName(this.dictionaryProperties.type1));\n dictionary.items.setValue(this.dictionaryProperties.baseFont, new PdfName(this.metrics.postScriptName));\n if (this.fontFamily !== PdfFontFamily.Symbol && this.fontFamily !== PdfFontFamily.ZapfDingbats) {\n var encoding = this.encodings[FontEncoding.WinAnsiEncoding];\n dictionary.items.setValue(this.dictionaryProperties.encoding, new PdfName(encoding));\n }\n return dictionary;\n };\n /**\n * Returns `width` of the char. This methods doesn`t takes into consideration font`s size.\n * @private\n */\n PdfStandardFont.prototype.getCharWidthInternal = function (charCode, format) {\n var width = 0;\n var code = 0;\n code = charCode.charCodeAt(0);\n if (this.name === '0' || this.name === '1' || this.name === '2' ||\n this.name === '3' || this.name === '4') {\n code = code - PdfStandardFont.charOffset;\n }\n code = (code >= 0 && code !== 128) ? code : 0;\n var metrics = this.metrics;\n var widthTable = metrics.widthTable;\n width = widthTable.items(code);\n return width;\n };\n /**\n * `Converts` the specified text.\n * @private\n */\n PdfStandardFont.convert = function (text) {\n return text;\n };\n //Constants\n /**\n * First character `position`.\n * @private\n */\n PdfStandardFont.charOffset = 32;\n return PdfStandardFont;\n}(PdfFont));\nexport { PdfStandardFont };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { PdfWriter } from './../input-output/pdf-writer';\nimport { PdfMainObjectCollection } from './../input-output/pdf-main-object-collection';\nimport { PdfDocumentBase } from './pdf-document-base';\nimport { PdfCrossTable } from './../input-output/pdf-cross-table';\nimport { PdfCatalog } from './pdf-catalog';\nimport { PdfPageSettings } from './../pages/pdf-page-settings';\nimport { PdfSectionCollection } from './../pages/pdf-section-collection';\nimport { PdfDocumentPageCollection } from './../pages/pdf-document-page-collection';\nimport { PdfCacheCollection } from './../general/pdf-cache-collection';\nimport { PdfColorSpace } from './../graphics/enum';\nimport { PdfDocumentTemplate } from './pdf-document-template';\nimport { PdfFontFamily } from './../graphics/fonts/enum';\nimport { PdfStandardFont } from './../graphics/fonts/pdf-standard-font';\n/**\n * Represents a PDF document and can be used to create a new PDF document from the scratch.\n * ```typescript\n * // create a new PDF document\n * let document : PdfDocument = new PdfDocument();\n * // add a new page to the document\n * let page1 : PdfPage = document.pages.add();\n * // set the font\n * let font : PdfStandardFont = new PdfStandardFont(PdfFontFamily.Helvetica, 20);\n * // create black brush\n * let blackBrush : PdfSolidBrush = new PdfSolidBrush(new PdfColor(0, 0, 0));\n * // draw the text\n * page1.graphics.drawString('Hello World', font, blackBrush, new PointF(0, 0));\n * // save the document\n * document.save('output.pdf');\n * // destroy the document\n * document.destroy();\n * ```\n */\nvar PdfDocument = /** @class */ (function (_super) {\n __extends(PdfDocument, _super);\n function PdfDocument(isMerging) {\n var _this = _super.call(this) || this;\n /**\n * Default `margin` value.\n * @default 40.0\n * @private\n */\n _this.defaultMargin = 40.0;\n /**\n * Internal variable to store instance of `StreamWriter` classes..\n * @default null\n * @private\n */\n _this.streamWriter = null;\n _this.document = _this;\n var isMerge = false;\n if (typeof isMerging === 'undefined') {\n PdfDocument.cacheCollection = new PdfCacheCollection();\n isMerge = false;\n }\n else {\n isMerge = isMerging;\n }\n var objects = new PdfMainObjectCollection();\n _this.setMainObjectCollection(objects);\n var crossTable = new PdfCrossTable();\n crossTable.isMerging = isMerge;\n crossTable.document = _this;\n _this.setCrossTable(crossTable);\n var catalog = new PdfCatalog();\n _this.setCatalog(catalog);\n objects.add(catalog);\n catalog.position = -1;\n _this.sectionCollection = new PdfSectionCollection(_this);\n _this.documentPageCollection = new PdfDocumentPageCollection(_this);\n catalog.pages = _this.sectionCollection;\n return _this;\n }\n Object.defineProperty(PdfDocument, \"defaultFont\", {\n //Properties\n /**\n * Gets the `default font`. It is used for complex objects when font is not explicitly defined.\n * @private\n */\n get: function () {\n if (this.defaultStandardFont == null) {\n this.defaultStandardFont = new PdfStandardFont(PdfFontFamily.Helvetica, 8);\n }\n return this.defaultStandardFont;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfDocument.prototype, \"sections\", {\n /**\n * Gets the collection of the `sections` in the document.\n * @private\n */\n get: function () {\n return this.sectionCollection;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfDocument.prototype, \"pageSettings\", {\n /**\n * Gets the document's page setting.\n * @public\n */\n get: function () {\n if (this.settings == null) {\n this.settings = new PdfPageSettings(this.defaultMargin);\n }\n return this.settings;\n },\n /**\n * Sets the document's page setting.\n * ```typescript\n * // create a new PDF document\n * let document : PdfDocument = new PdfDocument();\n *\n * // sets the right margin of the page\n * document.pageSettings.margins.right = 0;\n * // set the page size.\n * document.pageSettings.size = new SizeF(500, 500);\n * // change the page orientation to landscape\n * document.pageSettings.orientation = PdfPageOrientation.Landscape;\n * // apply 90 degree rotation on the page\n * document.pageSettings.rotate = PdfPageRotateAngle.RotateAngle90;\n *\n * // add a pages to the document\n * let page1 : PdfPage = document.pages.add();\n * // set font\n * let font : PdfStandardFont = new PdfStandardFont(PdfFontFamily.Helvetica, 20);\n * // set brush\n * let blackBrush : PdfSolidBrush = new PdfSolidBrush(new PdfColor(0, 0, 0));\n * // set the specified Point\n * let point : PointF = new PointF(page1.getClientSize().width - 200, page1.getClientSize().height - 200);\n * // draw the text\n * page1.graphics.drawString('Hello World', font, blackBrush, point);\n * // save the document\n * document.save('output.pdf');\n * // destroy the document\n * document.destroy();\n * ```\n */\n set: function (value) {\n this.settings = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfDocument.prototype, \"pages\", {\n /**\n * Represents the collection of pages in the PDF document.\n * ```typescript\n * // create a new PDF document\n * let document : PdfDocument = new PdfDocument();\n * //\n * // get the collection of pages in the document\n * let pageCollection : PdfDocumentPageCollection = document.pages;\n * //\n * // add pages\n * let page1 : PdfPage = pageCollection.add();\n * // save the document\n * document.save('output.pdf');\n * // destroy the document\n * document.destroy();\n * ```\n */\n get: function () {\n return this.documentPageCollection;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfDocument, \"cache\", {\n /**\n * Gets collection of the `cached objects`.\n * @private\n */\n get: function () {\n if (typeof PdfDocument.cacheCollection === 'undefined' || PdfDocument.cacheCollection == null) {\n return new PdfCacheCollection();\n }\n return PdfDocument.cacheCollection;\n },\n /**\n * Sets collection of the `cached objects`.\n * @private\n */\n set: function (value) {\n this.cacheCollection = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfDocument, \"enableCache\", {\n /**\n * Gets the value of enable cache.\n * @private\n */\n get: function () {\n return this.isCacheEnabled;\n },\n /**\n * Sets thie value of enable cache.\n * @private\n */\n set: function (value) {\n this.isCacheEnabled = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfDocument.prototype, \"colorSpace\", {\n /* tslint:disable */\n /**\n * Gets or sets the `color space` of the document. This property can be used to create PDF document in RGB, Gray scale or CMYK color spaces.\n * @private\n */\n get: function () {\n if ((this.pdfColorSpace === PdfColorSpace.Rgb) || ((this.pdfColorSpace === PdfColorSpace.Cmyk)\n || (this.pdfColorSpace === PdfColorSpace.GrayScale))) {\n return this.pdfColorSpace;\n }\n else {\n return PdfColorSpace.Rgb;\n }\n },\n set: function (value) {\n if ((value === PdfColorSpace.Rgb) || ((value === PdfColorSpace.Cmyk) ||\n (value === PdfColorSpace.GrayScale))) {\n this.pdfColorSpace = value;\n }\n else {\n this.pdfColorSpace = PdfColorSpace.Rgb;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfDocument.prototype, \"template\", {\n /* tslint:enable */\n /**\n * Gets or sets a `template` to all pages in the document.\n * @private\n */\n get: function () {\n if (this.pageTemplate == null) {\n this.pageTemplate = new PdfDocumentTemplate();\n }\n return this.pageTemplate;\n },\n set: function (value) {\n this.pageTemplate = value;\n },\n enumerable: true,\n configurable: true\n });\n PdfDocument.prototype.docSave = function (stream, arg2, arg3) {\n this.checkPagesPresence();\n if (stream === null) {\n throw new Error('ArgumentNullException : stream');\n }\n this.streamWriter = stream;\n var writer = new PdfWriter(stream);\n writer.document = this;\n if (typeof arg2 === 'boolean' && typeof arg3 === 'undefined') {\n return this.crossTable.save(writer);\n }\n else {\n this.crossTable.save(writer, arg2);\n }\n };\n /**\n * Checks the pages `presence`.\n * @private\n */\n PdfDocument.prototype.checkPagesPresence = function () {\n if (this.pages.count === 0) {\n this.pages.add();\n }\n };\n /**\n * disposes the current instance of `PdfDocument` class.\n * ```typescript\n * // create a new PDF document\n * let document : PdfDocument = new PdfDocument();\n * // add a new page to the document\n * let page1 : PdfPage = document.pages.add();\n * // set the font\n * let font : PdfStandardFont = new PdfStandardFont(PdfFontFamily.Helvetica, 20);\n * // create black brush\n * let blackBrush : PdfSolidBrush = new PdfSolidBrush(new PdfColor(0, 0, 0));\n * // draw the text\n * page1.graphics.drawString('Hello World', font, blackBrush, new PointF(0, 0));\n * // save the document\n * document.save('output.pdf');\n * // destroy the document\n * document.destroy();\n * ```\n */\n PdfDocument.prototype.destroy = function () {\n this.catalog = undefined;\n this.colorSpace = undefined;\n this.currentSavingObj = undefined;\n this.documentPageCollection = undefined;\n this.isStreamCopied = undefined;\n this.pageSettings = undefined;\n this.pageTemplate = undefined;\n this.pdfColorSpace = undefined;\n this.sectionCollection = undefined;\n PdfDocument.cache.destroy();\n this.crossTable.pdfObjects.destroy();\n PdfDocument.cache = undefined;\n this.streamWriter.destroy();\n };\n /**\n * `Font` used in complex objects to draw strings and text when it is not defined explicitly.\n * @default null\n * @private\n */\n PdfDocument.defaultStandardFont = null;\n /**\n * Indicates whether enable cache or not\n * @default true\n * @private\n */\n PdfDocument.isCacheEnabled = true;\n return PdfDocument;\n}(PdfDocumentBase));\nexport { PdfDocument };\n","/**\n * PdfBorders.ts class for EJ2-PDF\n */\nimport { PdfPen } from './../../../graphics/pdf-pen';\nimport { PdfDashStyle } from './../../../graphics/enum';\nimport { PdfColor } from './../../../graphics/pdf-color';\n/**\n * `PdfBorders` class used represents the cell border of the PDF grid.\n */\nvar PdfBorders = /** @class */ (function () {\n // Constructor\n /**\n * Create a new instance for `PdfBorders` class.\n * @private\n */\n function PdfBorders() {\n var defaultBorderPenLeft = new PdfPen(new PdfColor(0, 0, 0));\n defaultBorderPenLeft.dashStyle = PdfDashStyle.Solid;\n var defaultBorderPenRight = new PdfPen(new PdfColor(0, 0, 0));\n defaultBorderPenRight.dashStyle = PdfDashStyle.Solid;\n var defaultBorderPenTop = new PdfPen(new PdfColor(0, 0, 0));\n defaultBorderPenTop.dashStyle = PdfDashStyle.Solid;\n var defaultBorderPenBottom = new PdfPen(new PdfColor(0, 0, 0));\n defaultBorderPenBottom.dashStyle = PdfDashStyle.Solid;\n this.leftPen = defaultBorderPenLeft;\n this.rightPen = defaultBorderPenRight;\n this.topPen = defaultBorderPenTop;\n this.bottomPen = defaultBorderPenBottom;\n }\n Object.defineProperty(PdfBorders.prototype, \"left\", {\n // Properties\n /**\n * Gets or sets the `Left`.\n * @private\n */\n get: function () {\n return this.leftPen;\n },\n set: function (value) {\n this.leftPen = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfBorders.prototype, \"right\", {\n /**\n * Gets or sets the `Right`.\n * @private\n */\n get: function () {\n return this.rightPen;\n },\n set: function (value) {\n this.rightPen = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfBorders.prototype, \"top\", {\n /**\n * Gets or sets the `Top`.\n * @private\n */\n get: function () {\n return this.topPen;\n },\n set: function (value) {\n this.topPen = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfBorders.prototype, \"bottom\", {\n /**\n * Gets or sets the `Bottom`.\n * @private\n */\n get: function () {\n return this.bottomPen;\n },\n set: function (value) {\n this.bottomPen = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfBorders.prototype, \"all\", {\n /**\n * sets the `All`.\n * @private\n */\n set: function (value) {\n this.leftPen = this.rightPen = this.topPen = this.bottomPen = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfBorders.prototype, \"isAll\", {\n /**\n * Gets a value indicating whether this instance `is all`.\n * @private\n */\n get: function () {\n return ((this.leftPen === this.rightPen) && (this.leftPen === this.topPen) && (this.leftPen === this.bottomPen));\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfBorders, \"default\", {\n /**\n * Gets the `default`.\n * @private\n */\n get: function () {\n return new PdfBorders();\n },\n enumerable: true,\n configurable: true\n });\n return PdfBorders;\n}());\nexport { PdfBorders };\nvar PdfPaddings = /** @class */ (function () {\n function PdfPaddings(left, right, top, bottom) {\n /**\n * The 'left' border padding set.\n * @private\n */\n this.hasLeftPad = false;\n /**\n * The 'right' border padding set.\n * @private\n */\n this.hasRightPad = false;\n /**\n * The 'top' border padding set.\n * @private\n */\n this.hasTopPad = false;\n /**\n * The 'bottom' border padding set.\n * @private\n */\n this.hasBottomPad = false;\n if (typeof left === 'undefined') {\n //5.76 and 0 are taken from ms-word default table margins.\n this.leftPad = this.rightPad = 5.76;\n //0.5 is set for top and bottom by default.\n this.bottomPad = this.topPad = 0.5;\n }\n else {\n this.leftPad = left;\n this.rightPad = right;\n this.topPad = top;\n this.bottomPad = bottom;\n this.hasLeftPad = true;\n this.hasRightPad = true;\n this.hasTopPad = true;\n this.hasBottomPad = true;\n }\n }\n Object.defineProperty(PdfPaddings.prototype, \"left\", {\n // Properties\n /**\n * Gets or sets the `left` value of the edge\n * @private\n */\n get: function () {\n return this.leftPad;\n },\n set: function (value) {\n this.leftPad = value;\n this.hasLeftPad = true;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfPaddings.prototype, \"right\", {\n /**\n * Gets or sets the `right` value of the edge.\n * @private\n */\n get: function () {\n return this.rightPad;\n },\n set: function (value) {\n this.rightPad = value;\n this.hasRightPad = true;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfPaddings.prototype, \"top\", {\n /**\n * Gets or sets the `top` value of the edge\n * @private\n */\n get: function () {\n return this.topPad;\n },\n set: function (value) {\n this.topPad = value;\n this.hasTopPad = true;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfPaddings.prototype, \"bottom\", {\n /**\n * Gets or sets the `bottom` value of the edge.\n * @private\n */\n get: function () {\n return this.bottomPad;\n },\n set: function (value) {\n this.bottomPad = value;\n this.hasBottomPad = true;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfPaddings.prototype, \"all\", {\n /**\n * Sets value to all sides `left,right,top and bottom`.s\n * @private\n */\n set: function (value) {\n this.leftPad = this.rightPad = this.topPad = this.bottomPad = value;\n this.hasLeftPad = true;\n this.hasRightPad = true;\n this.hasTopPad = true;\n this.hasBottomPad = true;\n },\n enumerable: true,\n configurable: true\n });\n return PdfPaddings;\n}());\nexport { PdfPaddings };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { PdfBorders, PdfPaddings } from './pdf-borders';\nimport { PdfBorderOverlapStyle } from './../../tables/light-tables/enum';\n/**\n * Base class for the `grid style`,\n */\nvar PdfGridStyleBase = /** @class */ (function () {\n function PdfGridStyleBase() {\n }\n Object.defineProperty(PdfGridStyleBase.prototype, \"backgroundBrush\", {\n // Properties\n /**\n * Gets or sets the `background brush`.\n * @private\n */\n get: function () {\n return this.gridBackgroundBrush;\n },\n set: function (value) {\n this.gridBackgroundBrush = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGridStyleBase.prototype, \"textBrush\", {\n /**\n * Gets or sets the `text brush`.\n * @private\n */\n get: function () {\n return this.gridTextBrush;\n },\n set: function (value) {\n this.gridTextBrush = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGridStyleBase.prototype, \"textPen\", {\n /**\n * Gets or sets the `text pen`.\n * @private\n */\n get: function () {\n return this.gridTextPen;\n },\n set: function (value) {\n this.gridTextPen = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGridStyleBase.prototype, \"font\", {\n /**\n * Gets or sets the `font`.\n * @private\n */\n get: function () {\n return this.gridFont;\n },\n set: function (value) {\n this.gridFont = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGridStyleBase.prototype, \"backgroundImage\", {\n /**\n * Gets or sets the `background Image`.\n * @private\n */\n get: function () {\n return this.gridBackgroundImage;\n },\n set: function (value) {\n this.gridBackgroundImage = value;\n },\n enumerable: true,\n configurable: true\n });\n return PdfGridStyleBase;\n}());\nexport { PdfGridStyleBase };\n/**\n * `PdfGridStyle` class provides customization of the appearance for the 'PdfGrid'.\n */\nvar PdfGridStyle = /** @class */ (function (_super) {\n __extends(PdfGridStyle, _super);\n //constructor\n /**\n * Initialize a new instance for `PdfGridStyle` class.\n * @private\n */\n function PdfGridStyle() {\n var _this = _super.call(this) || this;\n _this.gridBorderOverlapStyle = PdfBorderOverlapStyle.Overlap;\n _this.bAllowHorizontalOverflow = false;\n _this.gridHorizontalOverflowType = PdfHorizontalOverflowType.LastPage;\n return _this;\n }\n Object.defineProperty(PdfGridStyle.prototype, \"cellSpacing\", {\n //Properties\n /**\n * Gets or sets the `cell spacing` of the 'PdfGrid'.\n * @private\n */\n get: function () {\n if (typeof this.gridCellSpacing === 'undefined') {\n this.gridCellSpacing = 0;\n }\n return this.gridCellSpacing;\n },\n set: function (value) {\n this.gridCellSpacing = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGridStyle.prototype, \"horizontalOverflowType\", {\n /**\n * Gets or sets the type of the `horizontal overflow` of the 'PdfGrid'.\n * @private\n */\n get: function () {\n return this.gridHorizontalOverflowType;\n },\n set: function (value) {\n this.gridHorizontalOverflowType = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGridStyle.prototype, \"allowHorizontalOverflow\", {\n /**\n * Gets or sets a value indicating whether to `allow horizontal overflow`.\n * @private\n */\n get: function () {\n return this.bAllowHorizontalOverflow;\n },\n set: function (value) {\n this.bAllowHorizontalOverflow = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGridStyle.prototype, \"cellPadding\", {\n /**\n * Gets or sets the `cell padding`.\n * @private\n */\n get: function () {\n if (typeof this.gridCellPadding === 'undefined') {\n this.gridCellPadding = new PdfPaddings();\n }\n return this.gridCellPadding;\n },\n set: function (value) {\n if (typeof this.gridCellPadding === 'undefined') {\n this.gridCellPadding = new PdfPaddings();\n this.gridCellPadding = value;\n }\n else {\n this.gridCellPadding = value;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGridStyle.prototype, \"borderOverlapStyle\", {\n /**\n * Gets or sets the `border overlap style` of the 'PdfGrid'.\n * @private\n */\n get: function () {\n return this.gridBorderOverlapStyle;\n },\n set: function (value) {\n this.gridBorderOverlapStyle = value;\n },\n enumerable: true,\n configurable: true\n });\n return PdfGridStyle;\n}(PdfGridStyleBase));\nexport { PdfGridStyle };\n/**\n * `PdfGridCellStyle` class provides customization of the appearance for the 'PdfGridCell'.\n */\nvar PdfGridCellStyle = /** @class */ (function (_super) {\n __extends(PdfGridCellStyle, _super);\n /**\n * Initializes a new instance of the `PdfGridCellStyle` class.\n * @private\n */\n function PdfGridCellStyle() {\n var _this = _super.call(this) || this;\n /**\n * @hidden\n * @private\n */\n _this.gridCellBorders = PdfBorders.default;\n return _this;\n }\n Object.defineProperty(PdfGridCellStyle.prototype, \"stringFormat\", {\n //Properties\n /**\n * Gets the `string format` of the 'PdfGridCell'.\n * @private\n */\n get: function () {\n return this.format;\n },\n set: function (value) {\n this.format = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGridCellStyle.prototype, \"borders\", {\n /**\n * Gets or sets the `border` of the 'PdfGridCell'.\n * @private\n */\n get: function () {\n return this.gridCellBorders;\n },\n set: function (value) {\n this.gridCellBorders = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGridCellStyle.prototype, \"cellPadding\", {\n /**\n * Gets or sets the `cell padding`.\n * @private\n */\n get: function () {\n return this.gridCellPadding;\n },\n set: function (value) {\n if (this.gridCellPadding == null || typeof this.gridCellPadding === 'undefined') {\n this.gridCellPadding = new PdfPaddings();\n }\n this.gridCellPadding = value;\n },\n enumerable: true,\n configurable: true\n });\n return PdfGridCellStyle;\n}(PdfGridStyleBase));\nexport { PdfGridCellStyle };\n/**\n * `PdfGridRowStyle` class provides customization of the appearance for the `PdfGridRow`.\n */\nvar PdfGridRowStyle = /** @class */ (function () {\n // Constructor\n /**\n * Initializes a new instance of the `PdfGridRowStyle` class.\n * @private\n */\n function PdfGridRowStyle() {\n //\n }\n Object.defineProperty(PdfGridRowStyle.prototype, \"backgroundBrush\", {\n // Properties\n /**\n * Gets or sets the `background brush`.\n * @private\n */\n get: function () {\n return this.gridRowBackgroundBrush;\n },\n enumerable: true,\n configurable: true\n });\n PdfGridRowStyle.prototype.setBackgroundBrush = function (value) {\n this.gridRowBackgroundBrush = value;\n if (typeof this.parent !== 'undefined') {\n for (var i = 0; i < this.parent.cells.count; i++) {\n this.parent.cells.getCell(i).style.backgroundBrush = value;\n }\n }\n };\n Object.defineProperty(PdfGridRowStyle.prototype, \"textBrush\", {\n /**\n * Gets or sets the `text brush`.\n * @private\n */\n get: function () {\n return this.gridRowTextBrush;\n },\n enumerable: true,\n configurable: true\n });\n PdfGridRowStyle.prototype.setTextBrush = function (value) {\n this.gridRowTextBrush = value;\n if (typeof this.parent !== 'undefined') {\n for (var i = 0; i < this.parent.cells.count; i++) {\n this.parent.cells.getCell(i).style.textBrush = value;\n }\n }\n };\n Object.defineProperty(PdfGridRowStyle.prototype, \"textPen\", {\n /**\n * Gets or sets the `text pen`.\n * @private\n */\n get: function () {\n return this.gridRowTextPen;\n },\n enumerable: true,\n configurable: true\n });\n PdfGridRowStyle.prototype.setTextPen = function (value) {\n this.gridRowTextPen = value;\n if (typeof this.parent !== 'undefined') {\n for (var i = 0; i < this.parent.cells.count; i++) {\n this.parent.cells.getCell(i).style.textPen = value;\n }\n }\n };\n Object.defineProperty(PdfGridRowStyle.prototype, \"font\", {\n /**\n * Gets or sets the `font`.\n * @private\n */\n get: function () {\n return this.gridRowFont;\n },\n enumerable: true,\n configurable: true\n });\n PdfGridRowStyle.prototype.setFont = function (value) {\n this.gridRowFont = value;\n if (typeof this.parent !== 'undefined') {\n for (var i = 0; i < this.parent.cells.count; i++) {\n this.parent.cells.getCell(i).style.font = value;\n }\n }\n };\n Object.defineProperty(PdfGridRowStyle.prototype, \"border\", {\n /**\n * Gets or sets the `border` of the current row.\n * @private\n */\n get: function () {\n if (typeof this.gridRowBorder === 'undefined') {\n this.setBorder(new PdfBorders());\n }\n return this.gridRowBorder;\n },\n enumerable: true,\n configurable: true\n });\n PdfGridRowStyle.prototype.setBorder = function (value) {\n this.gridRowBorder = value;\n if (typeof this.parent !== 'undefined') {\n for (var i = 0; i < this.parent.cells.count; i++) {\n this.parent.cells.getCell(i).style.borders = value;\n }\n }\n };\n /**\n * sets the `parent row` of the current object.\n * @private\n */\n PdfGridRowStyle.prototype.setParent = function (parent) {\n this.parent = parent;\n };\n Object.defineProperty(PdfGridRowStyle.prototype, \"backgroundImage\", {\n /**\n * Gets or sets the `backgroundImage` of the 'PdfGridCell'.\n * @private\n */\n get: function () {\n return this.gridRowBackgroundImage;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * sets the `backgroundImage` of the 'PdfGridCell'.\n * @private\n */\n PdfGridRowStyle.prototype.setBackgroundImage = function (value) {\n this.gridRowBackgroundImage = value;\n };\n return PdfGridRowStyle;\n}());\nexport { PdfGridRowStyle };\n/**\n * public Enum for `PdfHorizontalOverflowType`.\n * @private\n */\nexport var PdfHorizontalOverflowType;\n(function (PdfHorizontalOverflowType) {\n /**\n * Specifies the type of `NextPage`.\n * @private\n */\n PdfHorizontalOverflowType[PdfHorizontalOverflowType[\"NextPage\"] = 0] = \"NextPage\";\n /**\n * Specifies the type of `LastPage`.\n * @private\n */\n PdfHorizontalOverflowType[PdfHorizontalOverflowType[\"LastPage\"] = 1] = \"LastPage\";\n})(PdfHorizontalOverflowType || (PdfHorizontalOverflowType = {}));\n","/**\n * ElementLayouter.ts class for EJ2-PDF\n */\nimport { RectangleF } from './../../../drawing/pdf-drawing';\n/**\n * Base class for `elements lay outing`.\n * @private\n */\nvar ElementLayouter = /** @class */ (function () {\n // Constructor\n /**\n * Initializes a new instance of the `ElementLayouter` class.\n * @private\n */\n function ElementLayouter(element) {\n this.layoutElement = element;\n }\n Object.defineProperty(ElementLayouter.prototype, \"elements\", {\n // Properties\n /**\n * Gets the `element`.\n * @private\n */\n get: function () {\n return this.layoutElement;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Gets the `element`.\n * @private\n */\n ElementLayouter.prototype.getElement = function () {\n return this.layoutElement;\n };\n // Implementation\n /**\n * `Layouts` the element.\n * @private\n */\n ElementLayouter.prototype.layout = function (param) {\n return this.layoutInternal(param);\n };\n ElementLayouter.prototype.Layouter = function (param) {\n return this.layoutInternal(param);\n };\n /**\n * Returns the `next page`.\n * @private\n */\n ElementLayouter.prototype.getNextPage = function (currentPage) {\n var section = currentPage.section;\n var nextPage = section.add();\n return nextPage;\n };\n ElementLayouter.prototype.getPaginateBounds = function (param) {\n if ((param == null)) {\n throw new Error('ArgumentNullException : param');\n }\n var result = param.format.usePaginateBounds ? param.format.paginateBounds\n : new RectangleF(param.bounds.x, 0, param.bounds.width, param.bounds.height);\n return result;\n };\n return ElementLayouter;\n}());\nexport { ElementLayouter };\nvar PdfLayoutFormat = /** @class */ (function () {\n function PdfLayoutFormat(baseFormat) {\n if (typeof baseFormat === 'undefined') {\n //\n }\n else {\n this.break = baseFormat.break;\n this.layout = baseFormat.layout;\n this.paginateBounds = baseFormat.paginateBounds;\n this.boundsSet = baseFormat.usePaginateBounds;\n }\n }\n Object.defineProperty(PdfLayoutFormat.prototype, \"layout\", {\n // Properties\n /**\n * Gets or sets `layout` type of the element.\n * @private\n */\n get: function () {\n // if (typeof this.layoutType === 'undefined' || this.layoutType == null) {\n // this.layoutType = PdfLayoutType.Paginate;\n // }\n return this.layoutType;\n },\n set: function (value) {\n this.layoutType = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfLayoutFormat.prototype, \"break\", {\n /**\n * Gets or sets `break` type of the element.\n * @private\n */\n get: function () {\n // if (typeof this.breakType === 'undefined' || this.boundsSet == null) {\n // this.breakType = PdfLayoutBreakType.FitPage;\n // }\n return this.breakType;\n },\n set: function (value) {\n this.breakType = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfLayoutFormat.prototype, \"paginateBounds\", {\n /**\n * Gets or sets the `bounds` on the next page.\n * @private\n */\n get: function () {\n if (typeof this.layoutPaginateBounds === 'undefined' && this.layoutPaginateBounds == null) {\n this.layoutPaginateBounds = new RectangleF(0, 0, 0, 0);\n }\n return this.layoutPaginateBounds;\n },\n set: function (value) {\n this.layoutPaginateBounds = value;\n this.boundsSet = true;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfLayoutFormat.prototype, \"usePaginateBounds\", {\n /**\n * Gets a value indicating whether [`use paginate bounds`].\n * @private\n */\n get: function () {\n // if (typeof this.boundsSet === 'undefined' || this.boundsSet == null) {\n // this.boundsSet = false;\n // }\n return this.boundsSet;\n },\n enumerable: true,\n configurable: true\n });\n return PdfLayoutFormat;\n}());\nexport { PdfLayoutFormat };\nvar PdfLayoutParams = /** @class */ (function () {\n function PdfLayoutParams() {\n }\n Object.defineProperty(PdfLayoutParams.prototype, \"page\", {\n // Properties\n /**\n * Gets or sets the layout `page` for the element.\n * @private\n */\n get: function () {\n return this.pdfPage;\n },\n set: function (value) {\n this.pdfPage = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfLayoutParams.prototype, \"bounds\", {\n /**\n * Gets or sets layout `bounds` for the element.\n * @private\n */\n get: function () {\n return new RectangleF(this.layoutBounds.x, this.layoutBounds.y, this.layoutBounds.width, this.layoutBounds.height);\n },\n set: function (value) {\n this.layoutBounds = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfLayoutParams.prototype, \"format\", {\n /**\n * Gets or sets `layout settings` for the element.\n * @private\n */\n get: function () {\n return this.layoutFormat;\n },\n set: function (value) {\n this.layoutFormat = value;\n },\n enumerable: true,\n configurable: true\n });\n return PdfLayoutParams;\n}());\nexport { PdfLayoutParams };\nvar PdfLayoutResult = /** @class */ (function () {\n // Constructors\n /**\n * Initializes the new instance of `PdfLayoutResult` class.\n * @private\n */\n function PdfLayoutResult(page, bounds) {\n this.pdfPage = page;\n this.layoutBounds = bounds;\n }\n Object.defineProperty(PdfLayoutResult.prototype, \"page\", {\n // Properties\n /**\n * Gets the last `page` where the element was drawn.\n * @private\n */\n get: function () {\n return this.pdfPage;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfLayoutResult.prototype, \"bounds\", {\n /**\n * Gets the `bounds` of the element on the last page where it was drawn.\n * @private\n */\n get: function () {\n return this.layoutBounds;\n },\n enumerable: true,\n configurable: true\n });\n return PdfLayoutResult;\n}());\nexport { PdfLayoutResult };\n","import { RectangleF, PointF } from './../../drawing/pdf-drawing';\nimport { PdfLayoutParams, PdfLayoutFormat } from './base/element-layouter';\nimport { PdfBorders } from './../../structured-elements/grid/styles/pdf-borders';\n/**\n * `PdfLayoutElement` class represents the base class for all elements that can be layout on the pages.\n * @private\n */\nvar PdfLayoutElement = /** @class */ (function () {\n function PdfLayoutElement() {\n }\n Object.defineProperty(PdfLayoutElement.prototype, \"raiseBeginPageLayout\", {\n // Property\n /**\n * Gets a value indicating whether the `start page layout event` should be raised.\n * @private\n */\n get: function () {\n return (typeof this.beginPageLayout !== 'undefined');\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfLayoutElement.prototype, \"raiseEndPageLayout\", {\n /**\n * Gets a value indicating whether the `ending page layout event` should be raised.\n * @private\n */\n get: function () {\n return (typeof this.endPageLayout !== 'undefined');\n },\n enumerable: true,\n configurable: true\n });\n //Event Handlers\n PdfLayoutElement.prototype.onBeginPageLayout = function (args) {\n if (this.beginPageLayout) {\n this.beginPageLayout(this, args);\n }\n };\n PdfLayoutElement.prototype.onEndPageLayout = function (args) {\n if (this.endPageLayout) {\n this.endPageLayout(this, args);\n }\n };\n PdfLayoutElement.prototype.drawHelper = function (arg2, arg3, arg4, arg5) {\n if (arg3 instanceof PointF && typeof arg3.width === 'undefined' && typeof arg4 === 'undefined') {\n return this.drawHelper(arg2, arg3.x, arg3.y);\n }\n else if (typeof arg3 === 'number' && typeof arg4 === 'number' && typeof arg5 === 'undefined') {\n return this.drawHelper(arg2, arg3, arg4, null);\n }\n else if (arg3 instanceof RectangleF && typeof arg3.width !== 'undefined' && typeof arg4 === 'undefined') {\n return this.drawHelper(arg2, arg3, null);\n }\n else if (arg3 instanceof PointF && typeof arg3.width === 'undefined' && arg4 instanceof PdfLayoutFormat) {\n return this.drawHelper(arg2, arg3.x, arg3.y, arg4);\n }\n else if (typeof arg3 === 'number' && typeof arg4 === 'number' && (arg5 instanceof PdfLayoutFormat || arg5 == null)) {\n var width = (arg2.graphics.clientSize.width - arg3);\n var layoutRectangle = new RectangleF(arg3, arg4, width, 0);\n return this.drawHelper(arg2, layoutRectangle, arg5);\n }\n else if (arg3 instanceof RectangleF && typeof arg3.width !== 'undefined' && typeof arg4 === 'boolean') {\n this.bEmbedFonts = arg4;\n return this.drawHelper(arg2, arg3, null);\n }\n else {\n var param = new PdfLayoutParams();\n var temparg3 = arg3;\n var temparg4 = arg4;\n param.page = arg2;\n param.bounds = temparg3;\n if (param != null) {\n var x = param.bounds.x;\n var y = param.bounds.y;\n if (param.bounds.x === 0) {\n x = PdfBorders.default.right.width / 2;\n }\n if (param.bounds.y === 0) {\n y = PdfBorders.default.top.width / 2;\n }\n var newBound = new RectangleF(x, y, param.bounds.width, param.bounds.height);\n param.bounds = newBound;\n }\n param.format = (temparg4 != null) ? temparg4 : new PdfLayoutFormat();\n var result = this.layout(param);\n return result;\n }\n };\n return PdfLayoutElement;\n}());\nexport { PdfLayoutElement };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * TextLayouter.ts class for EJ2-PDF\n */\nimport { ElementLayouter, PdfLayoutResult } from './element-layouter';\nimport { RectangleF, SizeF } from './../../../drawing/pdf-drawing';\nimport { PdfStringLayouter } from './../../fonts/string-layouter';\nimport { PdfLayoutBreakType } from './../../figures/enum';\nimport { PdfColor } from './../../pdf-color';\nimport { PdfTextWebLink } from './../../../annotations/pdf-text-web-link';\n/**\n * Class that `layouts the text`.\n * @private\n */\nvar TextLayouter = /** @class */ (function (_super) {\n __extends(TextLayouter, _super);\n // Constructors\n /**\n * Initializes a new instance of the `TextLayouter` class.\n * @private\n */\n function TextLayouter(element) {\n return _super.call(this, element) || this;\n }\n Object.defineProperty(TextLayouter.prototype, \"element\", {\n /**\n * Gets the layout `element`.\n * @private\n */\n get: function () {\n return _super.prototype.getElement.call(this);\n },\n enumerable: true,\n configurable: true\n });\n // Implementation\n /**\n * `Layouts` the element.\n * @private\n */\n TextLayouter.prototype.layoutInternal = function (param) {\n /* tslint:disable */\n this.format = (this.element.stringFormat !== null && typeof this.element.stringFormat !== 'undefined') ? this.element.stringFormat : null;\n var currentPage = param.page;\n var currentBounds = param.bounds;\n var text = this.element.value;\n var result = null;\n var pageResult = new TextPageLayoutResult();\n pageResult.page = currentPage;\n pageResult.remainder = text;\n for (;;) {\n pageResult = this.layoutOnPage(text, currentPage, currentBounds, param);\n result = this.getLayoutResult(pageResult);\n break;\n }\n /* tslint:enable */\n return result;\n };\n /**\n * Raises `PageLayout` event if needed.\n * @private\n */\n TextLayouter.prototype.getLayoutResult = function (pageResult) {\n var result = new PdfTextLayoutResult(pageResult.page, pageResult.bounds, pageResult.remainder, pageResult.lastLineBounds);\n return result;\n };\n /* tslint:disable */\n /**\n * `Layouts` the text on the page.\n * @private\n */\n TextLayouter.prototype.layoutOnPage = function (text, currentPage, currentBounds, param) {\n var result = new TextPageLayoutResult();\n result.remainder = text;\n result.page = currentPage;\n currentBounds = this.checkCorrectBounds(currentPage, currentBounds);\n var layouter = new PdfStringLayouter();\n var stringResult = layouter.layout(text, this.element.font, this.format, currentBounds, currentPage.getClientSize().height, false, new SizeF(0, 0));\n var textFinished = (stringResult.remainder == null);\n var doesntFit = (param.format.break === PdfLayoutBreakType.FitElement);\n var canDraw = !(doesntFit || stringResult.empty);\n // Draw the text.\n var graphics = currentPage.graphics;\n var brush = this.element.getBrush();\n if (this.element instanceof PdfTextWebLink) {\n brush.color = new PdfColor(0, 0, 255);\n }\n graphics.drawStringLayoutResult(stringResult, this.element.font, this.element.pen, brush, currentBounds, this.format);\n var lineInfo = stringResult.lines[stringResult.lineCount - 1];\n result.lastLineBounds = graphics.getLineBounds(stringResult.lineCount - 1, stringResult, this.element.font, currentBounds, this.format);\n result.bounds = this.getTextPageBounds(currentPage, currentBounds, stringResult);\n result.remainder = stringResult.remainder;\n result.end = (textFinished);\n return result;\n };\n /* tslint:enable */\n /**\n * `Corrects current bounds` on the page.\n * @private\n */\n TextLayouter.prototype.checkCorrectBounds = function (currentPage, currentBounds) {\n var pageSize = currentPage.graphics.clientSize;\n currentBounds.height = (currentBounds.height > 0) ? currentBounds.height : pageSize.height - currentBounds.y;\n return currentBounds;\n };\n /**\n * Returns a `rectangle` where the text was printed on the page.\n * @private\n */\n /* tslint:disable */\n TextLayouter.prototype.getTextPageBounds = function (currentPage, currentBounds, stringResult) {\n var textSize = stringResult.actualSize;\n var x = currentBounds.x;\n var y = currentBounds.y;\n var width = (currentBounds.width > 0) ? currentBounds.width : textSize.width;\n var height = textSize.height;\n var shiftedRect = currentPage.graphics.checkCorrectLayoutRectangle(textSize, currentBounds.x, currentBounds.y, this.format);\n // if (currentBounds.width <= 0) {\n x = shiftedRect.x;\n // }\n var verticalShift = currentPage.graphics.getTextVerticalAlignShift(textSize.height, currentBounds.height, this.format);\n y += verticalShift;\n var bounds = new RectangleF(x, y, width, height);\n return bounds;\n };\n return TextLayouter;\n}(ElementLayouter));\nexport { TextLayouter };\nvar TextPageLayoutResult = /** @class */ (function () {\n function TextPageLayoutResult() {\n }\n return TextPageLayoutResult;\n}());\nexport { TextPageLayoutResult };\nvar PdfTextLayoutResult = /** @class */ (function (_super) {\n __extends(PdfTextLayoutResult, _super);\n // Constructors\n /**\n * Initializes the new instance of `PdfTextLayoutResult` class.\n * @private\n */\n function PdfTextLayoutResult(page, bounds, remainder, lastLineBounds) {\n var _this = _super.call(this, page, bounds) || this;\n _this.remainderText = remainder;\n _this.lastLineTextBounds = lastLineBounds;\n return _this;\n }\n Object.defineProperty(PdfTextLayoutResult.prototype, \"remainder\", {\n // Properties\n /**\n * Gets a value that contains the `text` that was not printed.\n * @private\n */\n get: function () {\n return this.remainderText;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfTextLayoutResult.prototype, \"lastLineBounds\", {\n /**\n * Gets a value that indicates the `bounds` of the last line that was printed on the page.\n * @private\n */\n get: function () {\n return this.lastLineTextBounds;\n },\n enumerable: true,\n configurable: true\n });\n return PdfTextLayoutResult;\n}(PdfLayoutResult));\nexport { PdfTextLayoutResult };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * PdfTextElement.ts class for EJ2-PDF\n */\nimport { PdfLayoutElement } from './../figures/layout-element';\nimport { PdfBrush } from './../brushes/pdf-brush';\nimport { PdfFont } from './../fonts/pdf-font';\nimport { PdfStandardFont } from './../fonts/pdf-standard-font';\nimport { PdfPen } from './../pdf-pen';\nimport { PdfLayoutParams } from './../figures/base/element-layouter';\nimport { TextLayouter } from './base/text-layouter';\nimport { PdfSolidBrush } from './../brushes/pdf-solid-brush';\nimport { PdfColor } from './../pdf-color';\nimport { RectangleF, SizeF, PointF } from './../../drawing/pdf-drawing';\nimport { PdfLayoutFormat } from './base/element-layouter';\nimport { PdfStringLayouter } from './../fonts/string-layouter';\nimport { PdfTextAlignment } from './../enum';\n/**\n * `PdfTextElement` class represents the text area with the ability to span several pages\n * and inherited from the 'PdfLayoutElement' class.\n * @private\n */\nvar PdfTextElement = /** @class */ (function (_super) {\n __extends(PdfTextElement, _super);\n function PdfTextElement(arg1, arg2, arg3, arg4, arg5) {\n var _this = _super.call(this) || this;\n // Fields\n /**\n * `Text` data.\n * @private\n */\n _this.content = '';\n /**\n * `Value` of text data.\n * @private\n */\n _this.elementValue = '';\n /**\n * indicate whether the drawText with PointF overload is called or not.\n * @default false\n * @private\n */\n _this.hasPointOverload = false;\n /**\n * indicate whether the PdfGridCell value is `PdfTextElement`\n * @default false\n * @private\n */\n _this.isPdfTextElement = false;\n if (typeof arg1 === 'undefined') {\n //\n }\n else if (typeof arg1 === 'string' && typeof arg2 === 'undefined') {\n _this.content = arg1;\n _this.elementValue = arg1;\n }\n else if (typeof arg1 === 'string' && arg2 instanceof PdfFont && typeof arg3 === 'undefined') {\n _this.content = arg1;\n _this.elementValue = arg1;\n _this.pdfFont = arg2;\n }\n else if (typeof arg1 === 'string' && arg2 instanceof PdfFont && arg3 instanceof PdfPen && typeof arg4 === 'undefined') {\n _this.content = arg1;\n _this.elementValue = arg1;\n _this.pdfFont = arg2;\n _this.pdfPen = arg3;\n }\n else if (typeof arg1 === 'string' && arg2 instanceof PdfFont && arg3 instanceof PdfBrush && typeof arg4 === 'undefined') {\n _this.content = arg1;\n _this.elementValue = arg1;\n _this.pdfFont = arg2;\n _this.pdfBrush = arg3;\n }\n else {\n _this.content = arg1;\n _this.elementValue = arg1;\n _this.pdfFont = arg2;\n _this.pdfPen = arg3;\n _this.pdfBrush = arg4;\n _this.format = arg5;\n }\n return _this;\n }\n Object.defineProperty(PdfTextElement.prototype, \"text\", {\n // Properties\n /**\n * Gets or sets a value indicating the `text` that should be printed.\n * ```typescript\n * // create a new PDF document.\n * let document : PdfDocument = new PdfDocument();\n * // add a page to the document.\n * let page1 : PdfPage = document.pages.add();\n * // create the font\n * let font : PdfFont = new PdfStandardFont(PdfFontFamily.Helvetica, 12);\n * // create the Text Web Link\n * let textLink : PdfTextWebLink = new PdfTextWebLink();\n * // set the hyperlink\n * textLink.url = 'http://www.google.com';\n * //\n * // set the link text\n * textLink.text = 'Google';\n * //\n * // set the font\n * textLink.font = font;\n * // draw the hyperlink in PDF page\n * textLink.draw(page1, new PointF(10, 40));\n * // save the document.\n * document.save('output.pdf');\n * // destroy the document\n * document.destroy();\n * ```\n */\n get: function () {\n return this.content;\n },\n set: function (value) {\n this.elementValue = value;\n this.content = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfTextElement.prototype, \"value\", {\n //get value\n /**\n * Gets or sets a `value` indicating the text that should be printed.\n * @private\n */\n get: function () {\n return this.elementValue;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfTextElement.prototype, \"pen\", {\n //get pen\n /**\n * Gets or sets a `PdfPen` that determines the color, width, and style of the text\n * @private\n */\n get: function () {\n return this.pdfPen;\n },\n //Set pen value\n set: function (value) {\n this.pdfPen = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfTextElement.prototype, \"brush\", {\n //get brush\n /**\n * Gets or sets the `PdfBrush` that will be used to draw the text with color and texture.\n * @private\n */\n get: function () {\n return this.pdfBrush;\n },\n //Set brush value\n set: function (value) {\n this.pdfBrush = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfTextElement.prototype, \"font\", {\n //get font\n /**\n * Gets or sets a `PdfFont` that defines the text format.\n * ```typescript\n * // create a new PDF document.\n * let document : PdfDocument = new PdfDocument();\n * // add a page to the document.\n * let page1 : PdfPage = document.pages.add();\n * // create the font\n * let font : PdfFont = new PdfStandardFont(PdfFontFamily.Helvetica, 12);\n * // create the Text Web Link\n * let textLink : PdfTextWebLink = new PdfTextWebLink();\n * // set the hyperlink\n * textLink.url = 'http://www.google.com';\n * // set the link text\n * textLink.text = 'Google';\n * //\n * // set the font\n * textLink.font = font;\n * //\n * // draw the hyperlink in PDF page\n * textLink.draw(page1, new PointF(10, 40));\n * // save the document.\n * document.save('output.pdf');\n * // destroy the document\n * document.destroy();\n * ```\n */\n get: function () {\n return this.pdfFont;\n },\n set: function (value) {\n this.pdfFont = value;\n if (this.pdfFont instanceof PdfStandardFont && this.content != null) {\n this.elementValue = PdfStandardFont.convert(this.content);\n }\n else {\n this.elementValue = this.content;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfTextElement.prototype, \"stringFormat\", {\n /**\n * Gets or sets the `PdfStringFormat` that will be used to set the string format\n * @private\n */\n get: function () {\n return this.format;\n },\n set: function (value) {\n this.format = value;\n },\n enumerable: true,\n configurable: true\n });\n // Implementation\n /**\n * Gets a `brush` for drawing.\n * @private\n */\n PdfTextElement.prototype.getBrush = function () {\n return (this.pdfBrush == null || typeof this.pdfBrush === 'undefined') ? new PdfSolidBrush(new PdfColor(0, 0, 0)) : this.pdfBrush;\n };\n // /**\n // * `Draws` an element on the Graphics.\n // * @private\n // */\n // public drawInternal(graphics : PdfGraphics) : void {\n // graphics.drawString(this.elementValue, this.pdfFont, this.pdfPen, this.getBrush(), 0, 0, this.stringFormat);\n // }\n /**\n * `Layouts` the element.\n * @private\n */\n PdfTextElement.prototype.layout = function (param) {\n var layouter = new TextLayouter(this);\n var result = layouter.layout(param);\n return result;\n };\n PdfTextElement.prototype.drawText = function (arg2, arg3, arg4, arg5) {\n if (arg3 instanceof PointF && typeof arg3.width === 'undefined' && typeof arg4 === 'undefined') {\n this.hasPointOverload = true;\n return this.drawText(arg2, arg3.x, arg3.y);\n }\n else if (typeof arg3 === 'number' && typeof arg4 === 'number' && typeof arg5 === 'undefined') {\n this.hasPointOverload = true;\n return this.drawText(arg2, arg3, arg4, null);\n }\n else if (arg3 instanceof RectangleF && typeof arg3.width !== 'undefined' && typeof arg4 === 'undefined') {\n return this.drawText(arg2, arg3, null);\n }\n else if (arg3 instanceof PointF && typeof arg3.width === 'undefined' && arg4 instanceof PdfLayoutFormat) {\n this.hasPointOverload = true;\n return this.drawText(arg2, arg3.x, arg3.y, arg4);\n }\n else if (typeof arg3 === 'number' && typeof arg4 === 'number' && (arg5 instanceof PdfLayoutFormat || arg5 == null)) {\n this.hasPointOverload = true;\n var width = (arg2.graphics.clientSize.width - arg3);\n var layoutRectangle = new RectangleF(arg3, arg4, width, 0);\n return this.drawText(arg2, layoutRectangle, arg5);\n }\n else if (arg3 instanceof RectangleF && typeof arg3.width !== 'undefined' && typeof arg4 === 'boolean') {\n return this.drawText(arg2, arg3, null);\n }\n else {\n var layout = new PdfStringLayouter();\n if (this.hasPointOverload) {\n var stringLayoutResult = layout.layout(this.value, this.font, this.stringFormat, new SizeF((arg2.graphics.clientSize.width - arg3.x), 0), true, arg2.graphics.clientSize);\n var layoutResult = void 0;\n var param = new PdfLayoutParams();\n var temparg3 = arg3;\n var temparg4 = arg4;\n param.page = arg2;\n var previousPage = arg2;\n param.bounds = temparg3;\n param.format = (temparg4 != null) ? temparg4 : new PdfLayoutFormat();\n if (stringLayoutResult.lines.length > 1) {\n this.text = stringLayoutResult.layoutLines[0].text;\n if (param.bounds.y <= param.page.graphics.clientSize.height) {\n var previousPosition = new PointF(param.bounds.x, param.bounds.y);\n layoutResult = this.layout(param);\n var bounds = new RectangleF(0, layoutResult.bounds.y + stringLayoutResult.lineHeight, arg2.graphics.clientSize.width, stringLayoutResult.lineHeight);\n var isPaginate = false;\n for (var i = 1; i < stringLayoutResult.lines.length; i++) {\n param.page = layoutResult.page;\n param.bounds = new RectangleF(new PointF(bounds.x, bounds.y), new SizeF(bounds.width, bounds.height));\n this.text = stringLayoutResult.layoutLines[i].text;\n if (bounds.y + stringLayoutResult.lineHeight > layoutResult.page.graphics.clientSize.height) {\n isPaginate = true;\n param.page = param.page.graphics.getNextPage();\n if (previousPosition.y > (layoutResult.page.graphics.clientSize.height - layoutResult.bounds.height)) {\n bounds = new RectangleF(0, layoutResult.bounds.height, layoutResult.page.graphics.clientSize.width, stringLayoutResult.lineHeight);\n }\n else {\n bounds = new RectangleF(0, 0, layoutResult.page.graphics.clientSize.width, stringLayoutResult.lineHeight);\n }\n param.bounds = bounds;\n }\n layoutResult = this.layout(param);\n if (i !== (stringLayoutResult.lines.length - 1)) {\n bounds = new RectangleF(0, layoutResult.bounds.y + stringLayoutResult.lineHeight, layoutResult.page.graphics.clientSize.width, stringLayoutResult.lineHeight);\n }\n else {\n var lineWidth = this.font.measureString(this.text, this.format).width;\n layoutResult = this.calculateResultBounds(layoutResult, lineWidth, layoutResult.page.graphics.clientSize.width, 0);\n }\n }\n }\n return layoutResult;\n }\n else {\n var lineSize = this.font.measureString(this.text, this.format);\n if (param.bounds.y <= param.page.graphics.clientSize.height) {\n layoutResult = this.layout(param);\n layoutResult = this.calculateResultBounds(layoutResult, lineSize.width, layoutResult.page.graphics.clientSize.width, 0);\n }\n return layoutResult;\n }\n }\n else {\n var layoutResult = layout.layout(this.value, this.font, this.stringFormat, new SizeF(arg3.width, 0), false, arg2.graphics.clientSize);\n var result = void 0;\n var param = new PdfLayoutParams();\n var temparg3 = arg3;\n var temparg4 = arg4;\n param.page = arg2;\n param.bounds = temparg3;\n param.format = (temparg4 != null) ? temparg4 : new PdfLayoutFormat();\n if (layoutResult.lines.length > 1) {\n this.text = layoutResult.layoutLines[0].text;\n if (param.bounds.y <= param.page.graphics.clientSize.height) {\n var previousPosition = new PointF(param.bounds.x, param.bounds.y);\n result = this.layout(param);\n var bounds = new RectangleF(temparg3.x, result.bounds.y + layoutResult.lineHeight, temparg3.width, layoutResult.lineHeight);\n var isPaginate = false;\n for (var i = 1; i < layoutResult.lines.length; i++) {\n param.page = result.page;\n param.bounds = new RectangleF(bounds.x, bounds.y, bounds.width, bounds.height);\n this.text = layoutResult.layoutLines[i].text;\n if (bounds.y + layoutResult.lineHeight > result.page.graphics.clientSize.height) {\n isPaginate = true;\n param.page = param.page.graphics.getNextPage();\n if (previousPosition.y > (result.page.graphics.clientSize.height - result.bounds.height)) {\n bounds = new RectangleF(temparg3.x, layoutResult.lineHeight, temparg3.width, layoutResult.lineHeight);\n }\n else {\n bounds = new RectangleF(temparg3.x, 0, temparg3.width, layoutResult.lineHeight);\n }\n param.bounds = bounds;\n }\n result = this.layout(param);\n if (i !== (layoutResult.lines.length - 1)) {\n bounds = new RectangleF(temparg3.x, result.bounds.y + layoutResult.lineHeight, temparg3.width, layoutResult.lineHeight);\n }\n else {\n var lineWidth = this.font.measureString(this.text, this.format).width;\n result = this.calculateResultBounds(result, lineWidth, temparg3.width, temparg3.x);\n }\n }\n }\n return result;\n }\n else {\n var lineSize = this.font.measureString(this.text, this.format);\n if (param.bounds.y <= param.page.graphics.clientSize.height) {\n result = this.layout(param);\n result = this.calculateResultBounds(result, lineSize.width, temparg3.width, temparg3.x);\n }\n return result;\n }\n }\n }\n };\n PdfTextElement.prototype.calculateResultBounds = function (result, lineWidth, maximumWidth, startPosition) {\n var shift = 0;\n if (this.stringFormat != null && typeof this.stringFormat !== 'undefined' && this.stringFormat.alignment === PdfTextAlignment.Center) {\n result.bounds.x = startPosition + (maximumWidth - lineWidth) / 2;\n result.bounds.width = lineWidth;\n }\n else if (this.stringFormat != null && typeof this.stringFormat !== 'undefined' && this.stringFormat.alignment === PdfTextAlignment.Right) {\n result.bounds.x = startPosition + (maximumWidth - lineWidth);\n result.bounds.width = lineWidth;\n }\n else if (this.stringFormat != null && typeof this.stringFormat !== 'undefined' && this.stringFormat.alignment === PdfTextAlignment.Justify) {\n result.bounds.x = startPosition;\n result.bounds.width = maximumWidth;\n }\n else {\n result.bounds.width = startPosition;\n result.bounds.width = lineWidth;\n }\n return result;\n };\n return PdfTextElement;\n}(PdfLayoutElement));\nexport { PdfTextElement };\n","import { PdfColor } from './../graphics/pdf-color';\nimport { RectangleF, PointF } from './../drawing/pdf-drawing';\nimport { PdfDictionary, SaveAnnotationEventHandler } from './../primitives/pdf-dictionary';\nimport { PdfArray } from './../primitives/pdf-array';\nimport { PdfNumber } from './../primitives/pdf-number';\nimport { PdfReferenceHolder } from './../primitives/pdf-reference';\nimport { PdfString } from './../primitives/pdf-string';\nimport { DictionaryProperties } from './../input-output/pdf-dictionary-properties';\nimport { PdfName } from './../primitives/pdf-name';\nimport { PdfSolidBrush } from './../graphics/brushes/pdf-solid-brush';\nimport { PdfStandardFont } from './../graphics/fonts/pdf-standard-font';\nimport { PdfFontFamily } from './../graphics/fonts/enum';\nimport { PdfStringFormat } from './../graphics/fonts/pdf-string-format';\nimport { PdfTextAlignment } from './../graphics/enum';\n/**\n * `PdfAnnotation` class represents the base class for annotation objects.\n * @private\n */\nvar PdfAnnotation = /** @class */ (function () {\n function PdfAnnotation(arg1) {\n // Fields\n /**\n * Specifies the Internal variable to store fields of `PdfDictionaryProperties`.\n * @private\n */\n this.dictionaryProperties = new DictionaryProperties();\n /**\n * `Color` of the annotation\n * @private\n */\n this.pdfColor = new PdfColor(255, 255, 255);\n /**\n * `Bounds` of the annotation.\n * @private\n */\n this.rectangle = new RectangleF(0, 0, 0, 0);\n /**\n * Parent `page` of the annotation.\n * @private\n */\n this.pdfPage = null;\n /**\n * `Brush of the text` of the annotation.\n * @default new PdfSolidBrush(new PdfColor(0, 0, 0))\n * @private\n */\n this.textBrush = new PdfSolidBrush(new PdfColor(0, 0, 0));\n /**\n * `Font of the text` of the annotation.\n * @default new PdfStandardFont(PdfFontFamily.TimesRoman, 10)\n * @private\n */\n this.textFont = new PdfStandardFont(PdfFontFamily.TimesRoman, 10);\n /**\n * `StringFormat of the text` of the annotation.\n * @default new PdfStringFormat(PdfTextAlignment.Left)\n * @private\n */\n this.format = new PdfStringFormat(PdfTextAlignment.Left);\n /**\n * `Text` of the annotation.\n * @private\n */\n this.content = '';\n /**\n * Internal variable to store `dictionary`.\n * @private\n */\n this.pdfDictionary = new PdfDictionary();\n /**\n * To specifying the `Inner color` with which to fill the annotation\n * @private\n */\n this.internalColor = new PdfColor();\n /**\n * `opacity or darkness` of the annotation.\n * @private\n * @default 1.0\n */\n this.darkness = 1.0;\n if (typeof arg1 === 'undefined') {\n this.initialize();\n }\n else {\n this.initialize();\n this.bounds = arg1;\n }\n }\n Object.defineProperty(PdfAnnotation.prototype, \"color\", {\n // Properties\n /**\n * `Color` of the annotation\n * @private\n */\n get: function () {\n return this.pdfColor;\n },\n set: function (value) {\n this.pdfColor = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfAnnotation.prototype, \"innerColor\", {\n /**\n * To specifying the `Inner color` with which to fill the annotation\n * @private\n */\n get: function () {\n return this.internalColor;\n },\n set: function (value) {\n this.internalColor = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfAnnotation.prototype, \"bounds\", {\n /**\n * `bounds` of the annotation.\n * @private\n */\n get: function () {\n return this.rectangle;\n },\n set: function (value) {\n this.rectangle = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfAnnotation.prototype, \"page\", {\n /**\n * Parent `page` of the annotation.\n * @private\n */\n get: function () {\n return this.pdfPage;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfAnnotation.prototype, \"font\", {\n /**\n * To specifying the `Font of the text` in the annotation.\n * @private\n */\n get: function () {\n return this.textFont;\n },\n set: function (value) {\n this.textFont = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfAnnotation.prototype, \"stringFormat\", {\n /**\n * To specifying the `StringFormat of the text` in the annotation.\n * @private\n */\n get: function () {\n return this.format;\n },\n set: function (value) {\n this.format = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfAnnotation.prototype, \"brush\", {\n /**\n * To specifying the `Brush of the text` in the annotation.\n * @private\n */\n get: function () {\n return this.textBrush;\n },\n set: function (value) {\n this.textBrush = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfAnnotation.prototype, \"text\", {\n /**\n * `Text` of the annotation.\n * @private\n */\n get: function () {\n return this.content;\n },\n set: function (value) {\n this.content = value;\n this.dictionary.items.setValue(this.dictionaryProperties.contents, new PdfString(this.content));\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfAnnotation.prototype, \"dictionary\", {\n /**\n * Internal variable to store `dictionary`.\n * @hidden\n */\n get: function () {\n return this.pdfDictionary;\n },\n set: function (value) {\n this.pdfDictionary = value;\n },\n enumerable: true,\n configurable: true\n });\n // Implementation\n /**\n * `Initialize` the annotation event handler and specifies the type of the annotation.\n * @private\n */\n PdfAnnotation.prototype.initialize = function () {\n this.pdfDictionary.annotationBeginSave = new SaveAnnotationEventHandler(this);\n this.pdfDictionary.items.setValue(this.dictionaryProperties.type, new PdfName(this.dictionaryProperties.annot));\n };\n /**\n * Sets related `page` of the annotation.\n * @private\n */\n PdfAnnotation.prototype.setPage = function (page) {\n this.pdfPage = page;\n this.pdfDictionary.items.setValue(this.dictionaryProperties.p, new PdfReferenceHolder(this.pdfPage));\n };\n /**\n * Handles the `BeginSave` event of the Dictionary.\n * @private\n */\n PdfAnnotation.prototype.beginSave = function () {\n this.save();\n };\n /**\n * `Saves` an annotation.\n * @private\n */\n /* tslint:disable */\n PdfAnnotation.prototype.save = function () {\n var nativeRectangle = new RectangleF(this.rectangle.x, this.rectangle.y, this.rectangle.width, this.rectangle.height);\n var section = this.pdfPage.section;\n var initialHeight = nativeRectangle.height;\n var tempLoacation = section.pointToNativePdf(this.page, new PointF(nativeRectangle.x, nativeRectangle.y));\n nativeRectangle.x = tempLoacation.x;\n nativeRectangle.width = tempLoacation.x + nativeRectangle.width;\n nativeRectangle.y = (tempLoacation.y - this.page.document.pageSettings.margins.top);\n nativeRectangle.height = nativeRectangle.y - initialHeight;\n this.pdfDictionary.items.setValue(this.dictionaryProperties.rect, PdfArray.fromRectangle(nativeRectangle));\n this.dictionary.items.setValue(this.dictionaryProperties.ca, new PdfNumber(this.darkness));\n };\n Object.defineProperty(PdfAnnotation.prototype, \"element\", {\n /* tslint:enable */\n // IPdfWrapper Members\n /**\n * Gets the `element`.\n * @private\n */\n get: function () {\n return this.pdfDictionary;\n },\n enumerable: true,\n configurable: true\n });\n return PdfAnnotation;\n}());\nexport { PdfAnnotation };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { PdfAnnotation } from './annotation';\nimport { PdfName } from './../primitives/pdf-name';\n/**\n * `PdfLinkAnnotation` class represents the ink annotation class.\n * @private\n */\nvar PdfLinkAnnotation = /** @class */ (function (_super) {\n __extends(PdfLinkAnnotation, _super);\n function PdfLinkAnnotation(rectangle) {\n return _super.call(this, rectangle) || this;\n }\n // Implementation\n /**\n * `Initializes` annotation object.\n * @private\n */\n PdfLinkAnnotation.prototype.initialize = function () {\n _super.prototype.initialize.call(this);\n this.dictionary.items.setValue(this.dictionaryProperties.subtype, new PdfName(this.dictionaryProperties.link));\n };\n return PdfLinkAnnotation;\n}(PdfAnnotation));\nexport { PdfLinkAnnotation };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { PdfLinkAnnotation } from './link-annotation';\n/**\n * Represents base class for `link annotations` with associated action.\n * @private\n */\nvar PdfActionLinkAnnotation = /** @class */ (function (_super) {\n __extends(PdfActionLinkAnnotation, _super);\n // Constructors\n /**\n * Specifies the constructor for `ActionLinkAnnotation`.\n * @private\n */\n function PdfActionLinkAnnotation(rectangle) {\n var _this = _super.call(this, rectangle) || this;\n // Fields\n /**\n * Internal variable to store annotation's `action`.\n * @default null\n * @private\n */\n _this.pdfAction = null;\n return _this;\n }\n //Public method\n /**\n * get and set the `action`.\n * @hidden\n */\n PdfActionLinkAnnotation.prototype.getSetAction = function (value) {\n if (typeof value === 'undefined') {\n return this.pdfAction;\n }\n else {\n this.pdfAction = value;\n }\n };\n return PdfActionLinkAnnotation;\n}(PdfLinkAnnotation));\nexport { PdfActionLinkAnnotation };\n","import { PdfDictionary } from './../primitives/pdf-dictionary';\nimport { PdfReferenceHolder } from './../primitives/pdf-reference';\nimport { PdfName } from './../primitives/pdf-name';\nimport { DictionaryProperties } from './../input-output/pdf-dictionary-properties';\n/**\n * `PdfAction` class represents base class for all action types.\n * @private\n */\nvar PdfAction = /** @class */ (function () {\n // Constructors\n /**\n * Initialize instance for `Action` class.\n * @private\n */\n function PdfAction() {\n /**\n * Specifies the Next `action` to perform.\n * @private\n */\n this.action = null;\n /**\n * Specifies the Internal variable to store `dictionary properties`.\n * @private\n */\n this.dictionaryProperties = new DictionaryProperties();\n // super(); -> Object()\n this.initialize();\n }\n Object.defineProperty(PdfAction.prototype, \"next\", {\n // Properties\n /**\n * Gets and Sets the `Next` action to perform.\n * @private\n */\n get: function () {\n return this.action;\n },\n set: function (value) {\n // if (this.action !== value) {\n this.action = value;\n this.dictionary.items.setValue(this.dictionaryProperties.next, new PdfReferenceHolder(this.action));\n // }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfAction.prototype, \"dictionary\", {\n /**\n * Gets and Sets the instance of PdfDictionary class for `Dictionary`.\n * @private\n */\n get: function () {\n if (typeof this.pdfDictionary === 'undefined') {\n this.pdfDictionary = new PdfDictionary();\n }\n return this.pdfDictionary;\n },\n enumerable: true,\n configurable: true\n });\n // Implementation\n /**\n * `Initialize` the action type.\n * @private\n */\n PdfAction.prototype.initialize = function () {\n this.dictionary.items.setValue(this.dictionaryProperties.type, new PdfName(this.dictionaryProperties.action));\n };\n Object.defineProperty(PdfAction.prototype, \"element\", {\n // IPdfWrapper Members\n /**\n * Gets the `Element` as IPdfPrimitive class.\n * @private\n */\n get: function () {\n return this.dictionary;\n },\n enumerable: true,\n configurable: true\n });\n return PdfAction;\n}());\nexport { PdfAction };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { PdfAction } from './action';\nimport { PdfString } from './../primitives/pdf-string';\nimport { PdfName } from './../primitives/pdf-name';\n/**\n * `PdfUriAction` class for initialize the uri related internals.\n * @private\n */\nvar PdfUriAction = /** @class */ (function (_super) {\n __extends(PdfUriAction, _super);\n function PdfUriAction(uri) {\n var _this = _super.call(this) || this;\n // Fields\n /**\n * Specifies the `uri` string.\n * @default ''.\n * @private\n */\n _this.uniformResourceIdentifier = '';\n return _this;\n }\n Object.defineProperty(PdfUriAction.prototype, \"uri\", {\n // Properties\n /**\n * Gets and Sets the value of `Uri`.\n * @private\n */\n get: function () {\n return this.uniformResourceIdentifier;\n },\n set: function (value) {\n this.uniformResourceIdentifier = value;\n this.dictionary.items.setValue(this.dictionaryProperties.uri, new PdfString(this.uniformResourceIdentifier));\n },\n enumerable: true,\n configurable: true\n });\n // Implementation\n /**\n * `Initialize` the internals.\n * @private\n */\n PdfUriAction.prototype.initialize = function () {\n _super.prototype.initialize.call(this);\n this.dictionary.items.setValue(this.dictionaryProperties.s, new PdfName(this.dictionaryProperties.uri));\n };\n return PdfUriAction;\n}(PdfAction));\nexport { PdfUriAction };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { PdfActionLinkAnnotation } from './action-link-annotation';\nimport { PdfName } from './../primitives/pdf-name';\nimport { PdfUriAction } from './../actions/uri-action';\n/**\n * `PdfUriAnnotation` class represents the Uri annotation.\n * @private\n */\nvar PdfUriAnnotation = /** @class */ (function (_super) {\n __extends(PdfUriAnnotation, _super);\n function PdfUriAnnotation(rectangle, uri) {\n var _this = _super.call(this, rectangle) || this;\n if (typeof uri !== 'undefined') {\n _this.uri = uri;\n }\n return _this;\n }\n Object.defineProperty(PdfUriAnnotation.prototype, \"uriAction\", {\n /**\n * Get `action` of the annotation.\n * @private\n */\n get: function () {\n if (typeof this.pdfUriAction === 'undefined') {\n this.pdfUriAction = new PdfUriAction();\n }\n return this.pdfUriAction;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfUriAnnotation.prototype, \"uri\", {\n // Properties\n /**\n * Gets or sets the `Uri` address.\n * @private\n */\n get: function () {\n return this.uriAction.uri;\n },\n set: function (value) {\n if (this.uriAction.uri !== value) {\n this.uriAction.uri = value;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfUriAnnotation.prototype, \"action\", {\n /**\n * Gets or sets the `action`.\n * @private\n */\n get: function () {\n return this.getSetAction();\n },\n set: function (value) {\n this.getSetAction(value);\n this.uriAction.next = value;\n },\n enumerable: true,\n configurable: true\n });\n // Implementation\n /**\n * `Initializes` annotation object.\n * @private\n */\n PdfUriAnnotation.prototype.initialize = function () {\n _super.prototype.initialize.call(this);\n this.dictionary.items.setValue(this.dictionaryProperties.subtype, new PdfName(this.dictionaryProperties.link));\n var tempPrimitive = this.uriAction.element;\n this.dictionary.items.setValue(this.dictionaryProperties.a, this.uriAction.element);\n };\n return PdfUriAnnotation;\n}(PdfActionLinkAnnotation));\nexport { PdfUriAnnotation };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { PdfPage } from './../pages/pdf-page';\nimport { PointF, RectangleF, SizeF } from './../drawing/pdf-drawing';\nimport { PdfTextElement } from './../graphics/figures/text-element';\nimport { PdfUriAnnotation } from './uri-annotation';\nimport { PdfStringLayouter } from './../graphics/fonts/string-layouter';\nimport { PdfFontStyle } from './../graphics/fonts/enum';\nimport { PdfTextAlignment } from './../graphics/enum';\nimport { PdfArray } from './../primitives/pdf-array';\nimport { PdfNumber } from './../primitives/pdf-number';\n/**\n * `PdfTextWebLink` class represents the class for text web link annotation.\n * ```typescript\n * // create a new PDF document.\n * let document : PdfDocument = new PdfDocument();\n * // add a page to the document.\n * let page1 : PdfPage = document.pages.add();\n * // create the font\n * let font : PdfFont = new PdfStandardFont(PdfFontFamily.Helvetica, 12);\n * //\n * // create the Text Web Link\n * let textLink : PdfTextWebLink = new PdfTextWebLink();\n * // set the hyperlink\n * textLink.url = 'http://www.google.com';\n * // set the link text\n * textLink.text = 'Google';\n * // set the font\n * textLink.font = font;\n * // draw the hyperlink in PDF page\n * textLink.draw(page1, new PointF(10, 40));\n * //\n * // save the document.\n * document.save('output.pdf');\n * // destroy the document\n * document.destroy();\n * ```\n */\nvar PdfTextWebLink = /** @class */ (function (_super) {\n __extends(PdfTextWebLink, _super);\n // Constructors\n /**\n * Initializes a new instance of the `PdfTextWebLink` class.\n * @private\n */\n function PdfTextWebLink() {\n var _this = _super.call(this) || this;\n // Fields\n /**\n * Internal variable to store `Url`.\n * @default ''\n * @private\n */\n _this.uniformResourceLocator = '';\n /**\n * Internal variable to store `Uri Annotation` object.\n * @default null\n * @private\n */\n _this.uriAnnotation = null;\n /**\n * Checks whether the drawTextWebLink method with `PointF` overload is called or not.\n * If it set as true, then the start position of each lines excluding firest line is changed as (0, Y).\n * @private\n * @hidden\n */\n _this.recalculateBounds = false;\n _this.defaultBorder = new PdfArray();\n for (var i = 0; i < 3; i++) {\n _this.defaultBorder.add(new PdfNumber(0));\n }\n return _this;\n }\n Object.defineProperty(PdfTextWebLink.prototype, \"url\", {\n // Properties\n /**\n * Gets or sets the `Uri address`.\n * ```typescript\n * // create a new PDF document.\n * let document : PdfDocument = new PdfDocument();\n * // add a page to the document.\n * let page1 : PdfPage = document.pages.add();\n * // create the font\n * let font : PdfFont = new PdfStandardFont(PdfFontFamily.Helvetica, 12);\n * // create the Text Web Link\n * let textLink : PdfTextWebLink = new PdfTextWebLink();\n * //\n * // set the hyperlink\n * textLink.url = 'http://www.google.com';\n * //\n * // set the link text\n * textLink.text = 'Google';\n * // set the font\n * textLink.font = font;\n * // draw the hyperlink in PDF page\n * textLink.draw(page1, new PointF(10, 40));\n * // save the document.\n * document.save('output.pdf');\n * // destroy the document\n * document.destroy();\n * ```\n */\n get: function () {\n return this.uniformResourceLocator;\n },\n set: function (value) {\n if (value.length === 0) {\n throw new Error('ArgumentException : Url - string can not be empty');\n }\n this.uniformResourceLocator = value;\n },\n enumerable: true,\n configurable: true\n });\n PdfTextWebLink.prototype.draw = function (arg1, arg2) {\n if (arg1 instanceof PdfPage) {\n var layout = new PdfStringLayouter();\n var previousFontStyle = this.font.style;\n if (arg2 instanceof PointF) {\n this.recalculateBounds = true;\n this.font.style = PdfFontStyle.Underline;\n var layoutResult = layout.layout(this.value, this.font, this.stringFormat, new SizeF((arg1.graphics.clientSize.width - arg2.x), 0), true, arg1.graphics.clientSize);\n if (layoutResult.lines.length === 1) {\n var textSize = this.font.measureString(this.value);\n var rect = new RectangleF(arg2, textSize);\n rect = this.calculateBounds(rect, textSize.width, arg1.graphics.clientSize.width, arg2.x);\n this.uriAnnotation = new PdfUriAnnotation(rect, this.url);\n this.uriAnnotation.dictionary.items.setValue('Border', this.defaultBorder);\n arg1.annotations.add(this.uriAnnotation);\n var result = this.drawText(arg1, arg2);\n this.font.style = previousFontStyle;\n return result;\n }\n else {\n var result = this.drawMultipleLineWithPoint(layoutResult, arg1, arg2);\n this.font.style = previousFontStyle;\n return result;\n }\n }\n else {\n var layoutResult = layout.layout(this.value, this.font, this.stringFormat, new SizeF(arg2.width, 0), false, new SizeF(0, 0));\n this.font.style = PdfFontStyle.Underline;\n if (layoutResult.lines.length === 1) {\n var textSize = this.font.measureString(this.value);\n var rect = new RectangleF(new PointF(arg2.x, arg2.y), textSize);\n rect = this.calculateBounds(rect, textSize.width, arg2.width, arg2.x);\n this.uriAnnotation = new PdfUriAnnotation(rect, this.url);\n this.uriAnnotation.dictionary.items.setValue('Border', this.defaultBorder);\n arg1.annotations.add(this.uriAnnotation);\n var returnValue = this.drawText(arg1, arg2);\n this.font.style = previousFontStyle;\n return returnValue;\n }\n else {\n var returnValue = this.drawMultipleLineWithBounds(layoutResult, arg1, arg2);\n this.font.style = previousFontStyle;\n return returnValue;\n }\n }\n }\n else {\n var page = new PdfPage();\n page = arg1.page;\n return this.draw(page, arg2);\n }\n };\n /* tslint:enable */\n //Private methods\n /**\n * Helper method `Draw` a Multiple Line Text Web Link on the Graphics with the specified location.\n * @private\n */\n PdfTextWebLink.prototype.drawMultipleLineWithPoint = function (result, page, location) {\n var layoutResult;\n for (var i = 0; i < result.layoutLines.length; i++) {\n var size = this.font.measureString(result.lines[i].text);\n var bounds = new RectangleF(location, size);\n if (i !== 0) {\n bounds.x = 0;\n }\n this.text = result.lines[i].text;\n if (bounds.y + size.height > page.graphics.clientSize.height) {\n if (i !== 0) {\n page = page.graphics.getNextPage();\n bounds = new RectangleF(0, 0, page.graphics.clientSize.width, size.height);\n location.y = 0;\n }\n else {\n break;\n }\n }\n bounds = this.calculateBounds(bounds, size.width, page.graphics.clientSize.width, bounds.x);\n this.uriAnnotation = new PdfUriAnnotation(bounds, this.url);\n this.uriAnnotation.dictionary.items.setValue('Border', this.defaultBorder);\n page.annotations.add(this.uriAnnotation);\n if (i !== 0) {\n layoutResult = this.drawText(page, new PointF(0, bounds.y));\n }\n else {\n layoutResult = this.drawText(page, bounds.x, bounds.y);\n }\n location.y += size.height;\n }\n return layoutResult;\n };\n /**\n * Helper method `Draw` a Multiple Line Text Web Link on the Graphics with the specified bounds.\n * @private\n */\n PdfTextWebLink.prototype.drawMultipleLineWithBounds = function (result, page, bounds) {\n var layoutResult;\n for (var i = 0; i < result.layoutLines.length; i++) {\n var size = this.font.measureString(result.lines[i].text);\n var internalBounds = new RectangleF(new PointF(bounds.x, bounds.y), size);\n internalBounds = this.calculateBounds(internalBounds, size.width, bounds.width, bounds.x);\n this.text = result.lines[i].text;\n if (bounds.y + size.height > page.graphics.clientSize.height) {\n if (i !== 0) {\n page = page.graphics.getNextPage();\n bounds = new RectangleF(bounds.x, 0, bounds.width, size.height);\n internalBounds.y = 0;\n }\n else {\n break;\n }\n }\n this.uriAnnotation = new PdfUriAnnotation(internalBounds, this.url);\n this.uriAnnotation.dictionary.items.setValue('Border', this.defaultBorder);\n page.annotations.add(this.uriAnnotation);\n layoutResult = this.drawText(page, bounds);\n bounds.y += size.height;\n }\n return layoutResult;\n };\n /* tslint:disable */\n PdfTextWebLink.prototype.calculateBounds = function (currentBounds, lineWidth, maximumWidth, startPosition) {\n var shift = 0;\n if (this.stringFormat != null && typeof this.stringFormat !== 'undefined' && this.stringFormat.alignment === PdfTextAlignment.Center) {\n currentBounds.x = startPosition + (maximumWidth - lineWidth) / 2;\n currentBounds.width = lineWidth;\n }\n else if (this.stringFormat != null && typeof this.stringFormat !== 'undefined' && this.stringFormat.alignment === PdfTextAlignment.Right) {\n currentBounds.x = startPosition + (maximumWidth - lineWidth);\n currentBounds.width = lineWidth;\n }\n else if (this.stringFormat != null && typeof this.stringFormat !== 'undefined' && this.stringFormat.alignment === PdfTextAlignment.Justify) {\n currentBounds.x = startPosition;\n currentBounds.width = maximumWidth;\n }\n else {\n currentBounds.width = startPosition;\n currentBounds.width = lineWidth;\n }\n return currentBounds;\n };\n return PdfTextWebLink;\n}(PdfTextElement));\nexport { PdfTextWebLink };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { PdfGrid } from '../pdf-grid';\nimport { PdfStringFormat } from './../../../graphics/fonts/pdf-string-format';\nimport { SizeF, RectangleF, PointF } from './../../../drawing/pdf-drawing';\nimport { PdfBorders } from '../styles/pdf-borders';\nimport { PdfLayoutType, PdfLayoutBreakType } from './../../../graphics/figures/enum';\nimport { PdfLayoutResult, PdfLayoutFormat, ElementLayouter } from './../../../graphics/figures/base/element-layouter';\nimport { PdfHorizontalOverflowType } from '../styles/style';\nimport { TemporaryDictionary } from './../../../collections/object-object-pair/dictionary';\nimport { PdfStringLayouter } from './../../../graphics/fonts/string-layouter';\nimport { PdfDocument } from './../../../document/pdf-document';\n/**\n * Class `lay outing the text`.\n *\n */\nvar PdfGridLayouter = /** @class */ (function (_super) {\n __extends(PdfGridLayouter, _super);\n //constructor\n /**\n * Initialize a new instance for `PdfGrid` class.\n * @private\n */\n function PdfGridLayouter(baseFormat) {\n var _this = _super.call(this, baseFormat) || this;\n /**\n * @hidden\n * @private\n */\n _this.gridInitialWidth = 0;\n /**\n * @hidden\n * @private\n */\n _this.gridSize = new SizeF(0, 0);\n _this.parentCellIndex = 0;\n _this.tempWidth = 0;\n _this.childheight = 0;\n /**\n * Check weather it is `child grid or not`.\n * @private\n */\n _this.isChildGrid = false;\n /**\n * @hidden\n * @private\n */\n _this.hasRowSpanSpan = false;\n /**\n * @hidden\n * @private\n */\n _this.isRearranged = false;\n /**\n * @hidden\n * @private\n */\n _this.pageBounds = new RectangleF();\n /**\n * @hidden\n * @private\n */\n _this.listOfNavigatePages = [];\n /**\n * @hidden\n * @private\n */\n _this.flag = true;\n /**\n * @hidden\n * @private\n */\n _this.columnRanges = [];\n /**\n * @hidden\n * @private\n */\n _this.currentLocation = new PointF(0, 0);\n /**\n * @hidden\n * @private\n */\n _this.breakRow = true;\n _this.slr = null;\n _this.remainderText = null;\n _this.isPaginate = false;\n /**\n * Checks whether the x co-ordinate is need to set as client size or not.\n * @hidden\n * @private\n */\n _this.isOverloadWithPosition = false;\n return _this;\n }\n Object.defineProperty(PdfGridLayouter.prototype, \"Grid\", {\n //Properties\n get: function () {\n return this.elements;\n },\n enumerable: true,\n configurable: true\n });\n // Constructors\n /**\n * Initializes a new instance of the `StringLayouter` class.\n * @private\n */\n //Public methods\n /**\n * `Layouts` the text.\n * @private\n */\n /**\n * `Layouts` the specified graphics.\n * @private\n */\n /**\n * `Layouts` the specified graphics.\n * @private\n */\n /*public layout(graphics : PdfLayoutParams) : PdfLayoutResult\n public layout(graphics : PdfGraphics, bounds : RectangleF) : void\n public layout(graphics : PdfGraphics, bounds : PointF) : void\n public layout(graphics ?: PdfGraphics | PdfLayoutParams, bounds ?: PointF | RectangleF) : void | PdfLayoutResult {\n if (graphics instanceof PdfGraphics) {\n if (bounds instanceof PointF) {\n if (bounds.x === 0) {\n bounds.x = PdfBorders.default.right.width / 2;\n }\n if (bounds.y === 0) {\n bounds.y = PdfBorders.default.top.width / 2;\n }\n let boundaries : RectangleF = new RectangleF(bounds, new SizeF(0, 0));\n this.layout(graphics, boundaries);\n } else {\n let width : number = graphics.clientSize.width;\n let parameter : PdfLayoutParams = new PdfLayoutParams();\n parameter.bounds = bounds;\n this.currentGraphics = graphics;\n if (graphics.layer != null) {\n let index : number = 0;\n if (this.currentGraphics.page instanceof PdfPage) {\n index = (this.currentGraphics.page as PdfPage).section.indexOf(this.currentGraphics.page as PdfPage);\n } else {\n index = (this.currentGraphics.page as PdfPageBase).defaultLayerIndex;\n }\n } else {\n this.layoutInternal(parameter);\n }\n }\n }\n }*/\n /**\n * Gets the `format`.\n * @private\n */\n PdfGridLayouter.prototype.getFormat = function (format) {\n var f = format;\n return f;\n };\n /**\n * `Layouts` the element.\n * @private\n */\n PdfGridLayouter.prototype.layoutInternal = function (param) {\n var format = this.getFormat(param.format);\n this.gridLayoutFormat = this.getFormat(param.format);\n this.currentPage = param.page;\n if (this.currentPage !== null) {\n var pageHeight = this.currentPage.getClientSize().height;\n var pageWidth = this.currentPage.getClientSize().width;\n this.currentPageBounds = this.currentPage.getClientSize();\n }\n else {\n throw Error('Can not set page as null');\n //this.currentPageBounds = this.currentGraphics.clientSize;\n }\n this.currentGraphics = this.currentPage.graphics;\n //this.currentGraphics = (this.currentPage != null ) ? this.currentPage.graphics : this.currentGraphics;\n // if (this.currentGraphics.layer !== null) {\n // let index : number = 0;\n // if (this.currentGraphics.page instanceof PdfPage) {\n // index = (this.currentGraphics.page as PdfPage).section.indexOf(this.currentGraphics.page as PdfPage);\n // } else {\n // index = (this.currentGraphics.page as PdfPageBase).defaultLayerIndex;\n // }\n // this.listOfNavigatePages.push(index);\n // }\n var index = 0;\n index = this.currentGraphics.page.section.indexOf(this.currentGraphics.page);\n this.listOfNavigatePages.push(index);\n if (format != null && format.break === PdfLayoutBreakType.FitColumnsToPage) {\n this.currentBounds = new RectangleF(new PointF(param.bounds.x, param.bounds.y), new SizeF(this.Grid.columns.width, this.currentGraphics.clientSize.height));\n }\n else {\n this.currentBounds = new RectangleF(new PointF(param.bounds.x, param.bounds.y), this.currentGraphics.clientSize);\n }\n //this.currentBounds = new RectangleF(new PointF(param.bounds.x, param.bounds.y), this.currentGraphics.clientSize);\n if (this.Grid.rows.count !== 0) {\n this.currentBounds.width = (param.bounds.width > 0) ? param.bounds.width :\n (this.currentBounds.width - this.Grid.rows.getRow(0).cells.getCell(0).style.borders.left.width / 2);\n }\n else if (this.Grid.headers.count !== 0) {\n // this.currentBounds.width = (param.bounds.width > 0) ? param.bounds.width : (this.currentBounds.width -\n // this.Grid.headers.getHeader(0).cells.getCell(0).style.borders.left.width / 2);\n this.currentBounds.width = param.bounds.width;\n }\n else {\n throw Error('Please add row or header into grid');\n }\n this.startLocation = new PointF(param.bounds.x, param.bounds.y);\n // if (this.Grid.style.allowHorizontalOverflow && this.currentBounds.width > this.currentGraphics.clientSize.width) {\n // this.currentBounds.width = this.currentGraphics.clientSize.width;\n // this.currentBounds.width -= this.currentBounds.x;\n // }\n // if (this.Grid.isChildGrid) {\n // this.childheight = param.bounds.height;\n // }\n // if (param.format !== null && param.format.usePaginateBounds) {\n // if (param.format.paginateBounds.height > 0) {\n // this.currentBounds.height = param.format.paginateBounds.height;\n // }\n //} else \n if (param.bounds.height > 0 && !this.Grid.isChildGrid) {\n this.currentBounds.height = param.bounds.height;\n }\n if (!this.Grid.isChildGrid) {\n this.hType = this.Grid.style.horizontalOverflowType;\n }\n if (!this.Grid.style.allowHorizontalOverflow) {\n this.columnRanges = [];\n if (typeof this.Grid.isChildGrid !== 'undefined' && typeof this.Grid.isChildGrid) {\n this.Grid.measureColumnsWidth(this.currentBounds);\n }\n else {\n this.Grid.measureColumnsWidth(new RectangleF(this.currentBounds.x, this.currentBounds.y, this.currentBounds.x + this.currentBounds.width, this.currentBounds.height));\n }\n this.columnRanges.push([0, this.Grid.columns.count - 1]);\n }\n else {\n this.Grid.measureColumnsWidth();\n this.determineColumnDrawRanges();\n }\n if (this.Grid.hasRowSpanSpan) {\n for (var i = 0; i < this.Grid.rows.count; i++) {\n if (this.Grid.rows.getRow(i).height !== -1 && !this.Grid.rows.getRow(i).isRowHeightSet) {\n this.Grid.rows.getRow(i).isRowHeightSet = true;\n }\n }\n }\n var result = this.layoutOnPage(param);\n return result;\n };\n // /* tslint:enable */\n /**\n * `Determines the column draw ranges`.\n * @private\n */\n PdfGridLayouter.prototype.determineColumnDrawRanges = function () {\n var startColumn = 0;\n var endColumn = 0;\n var cellWidths = 0;\n var availableWidth = this.currentGraphics.clientSize.width - this.currentBounds.x;\n for (var i = 0; i < this.Grid.columns.count; i++) {\n cellWidths += this.Grid.columns.getColumn(i).width;\n if (cellWidths >= availableWidth) {\n var subWidths = 0;\n for (var j = startColumn; j <= i; j++) {\n subWidths += this.Grid.columns.getColumn(j).width;\n if (subWidths > availableWidth) {\n break;\n }\n endColumn = j;\n }\n this.columnRanges.push([startColumn, endColumn]);\n startColumn = endColumn + 1;\n endColumn = startColumn;\n cellWidths = (endColumn <= i) ? this.Grid.columns.getColumn(i).width : 0;\n }\n }\n // if (startColumn !== this.columns.Count) {\n this.columnRanges.push([startColumn, this.Grid.columns.count - 1]);\n // }\n };\n /**\n * `Layouts the on page`.\n * @private\n */\n PdfGridLayouter.prototype.layoutOnPage = function (param) {\n /* tslint:disable */\n this.pageBounds.x = param.bounds.x;\n this.pageBounds.y = param.bounds.y;\n this.pageBounds.height = param.bounds.height;\n var format = this.getFormat(param.format);\n var endArgs = null;\n var result = null;\n var layoutedPages = new TemporaryDictionary();\n var startPage = param.page;\n var isParentCell = false;\n var cellBounds = [];\n for (var index = 0; index < this.columnRanges.length; index++) {\n var range = this.columnRanges[index];\n this.cellStartIndex = range[0];\n this.cellEndIndex = range[1];\n var returnObject = this.raiseBeforePageLayout(this.currentPage, this.currentBounds, this.currentRowIndex);\n this.currentBounds = returnObject.currentBounds;\n this.currentRowIndex = returnObject.currentRowIndex;\n // if (returnObject.returnValue) {\n // result = new PdfGridLayoutResult(this.currentPage, this.currentBounds);\n // break;\n // }\n //Draw Headers.\n var drawHeader = void 0;\n for (var i_1 = 0; i_1 < this.Grid.headers.count; i_1++) {\n var row = this.Grid.headers.getHeader(i_1);\n var headerHeight = this.currentBounds.y;\n this.isHeader = true;\n if (startPage != this.currentPage) {\n for (var k = this.cellStartIndex; k <= this.cellEndIndex; k++) {\n if (row.cells.getCell(k).isCellMergeContinue) {\n row.cells.getCell(k).isCellMergeContinue = false;\n row.cells.getCell(k).value = \"\";\n }\n }\n }\n // RowLayoutResult\n var headerResult = this.drawRow(row);\n if (headerHeight === this.currentBounds.y) {\n drawHeader = true;\n if (PdfGridLayouter.repeatRowIndex === -1) {\n PdfGridLayouter.repeatRowIndex = i_1;\n }\n }\n else {\n drawHeader = false;\n }\n if (!headerResult.isFinish && startPage !== null\n && format.layout !== PdfLayoutType.OnePage && drawHeader) {\n this.startLocation.x = this.currentBounds.x;\n this.currentPage = this.getNextPageformat(format);\n this.startLocation.y = this.currentBounds.y;\n if (typeof format.paginateBounds !== 'undefined' && format.paginateBounds.x === 0 && format.paginateBounds.y === 0 && format.paginateBounds.width === 0 && format.paginateBounds.height === 0)\n this.currentBounds.x += this.startLocation.x;\n this.drawRow(row);\n }\n this.isHeader = false;\n }\n var i = 0;\n var length_1 = this.Grid.rows.count;\n var repeatRow = void 0;\n var startingHeight = 0;\n var flag = true;\n //Here is to draw parent Grid and Cells\n cellBounds = [];\n //Draw row by row with the specified cell range.\n for (var j = 0; j < this.Grid.rows.count; j++) {\n var row = this.Grid.rows.getRow(j);\n i++;\n this.currentRowIndex = i - 1;\n var originalHeight = this.currentBounds.y;\n startPage = this.currentPage;\n PdfGridLayouter.repeatRowIndex = -1;\n if (flag && row.grid.isChildGrid) {\n startingHeight = originalHeight;\n flag = false;\n }\n var rowResult = null;\n ///rowResult = this.drawRow(row);\n /*if(!row.isrowFinish) {\n if(!row.grid.isgridSplit){\n rowResult = this.drawRow(row);\n row.isrowFinish = true;\n row.isrowDraw = true;\n } else {\n if(!row.isrowDraw){\n rowResult = this.drawRow(row);\n row.isrowFinish = true;\n row.isrowDraw = true;\n row.grid.isgridSplit = false;\n } else {\n rowResult = null;\n break;\n }\n }\n }\n else {\n //row.isrowFinish = false;\n //rowResult = this.drawRow(row);\n rowResult = null;\n break;\n \n } */\n if (this.Grid.splitChildRowIndex == -1) {\n rowResult = this.drawRow(row);\n row.isrowFinish = true;\n }\n else {\n if (row.grid.ParentCell.row.grid.isGridSplit && this.Grid.splitChildRowIndex <= row.rowIndex) {\n rowResult = this.drawRow(row);\n row.isrowFinish = true;\n }\n else if (row.isrowFinish) {\n continue;\n }\n else {\n break;\n }\n }\n //rowResult = this.drawRow(row);\n cellBounds.push(rowResult.bounds.width);\n /*if (row.isRowBreaksNextPage)\n {\n let x : number = 0;\n for (let l : number = 0; l < row.cells.count; l++)\n {\n let isNestedRowBreak : boolean = false;\n if (row.height == row.cells.getCell(l).height)\n {\n let n : number;\n let grid : PdfGrid = row.cells.getCell(l).value as PdfGrid;\n for (let m : number = grid.rows.count; 0 < m; m--)\n {\n if ((grid.rows.getRow(m - 1).rowBreakHeight > 0))\n {\n isNestedRowBreak = true;\n break;\n }\n if (grid.rows.getRow(m - 1).isRowBreaksNextPage)\n {\n row.rowBreakHeightValue = grid.rows.getRow(m - 1).rowBreakHeightValue;\n break;\n }\n row.rowBreakHeightValue += grid.rows.getRow(m - 1).height;\n }\n }\n if (isNestedRowBreak)\n break;\n }\n for (let j : number = 0; j < row.cells.count; j++)\n {\n\n if (row.height > row.cells.getCell(j).height)\n {\n row.cells.getCell(j).value = \" \";\n let rect : RectangleF ;\n let page : PdfPage = this.getNextPage(this.currentPage);\n let section : PdfSection = this.currentPage.section;\n let index : number = section.indexOf(page);\n for (let k : number = 0; k < (section.count - 1) - index; k++)\n {\n rect = new RectangleF(x, 0, row.grid.columns.getColumn(j).width, page.getClientSize().height);\n PdfGridLayouter.repeatRowIndex = -1;\n row.cells.getCell(j).draw(page.graphics, rect, false);\n page = this.getNextPage(page);\n }\n rect = new RectangleF(x, 0, row.grid.columns.getColumn(j).width, row.rowBreakHeightValue);\n\n row.cells.getCell(j).draw(page.graphics, rect, false);\n }\n x += row.grid.columns.getColumn(j).width;\n }\n }*/\n //if height remains same, it is understood that row is not drawn in the page\n if (originalHeight === this.currentBounds.y) {\n repeatRow = true;\n PdfGridLayouter.repeatRowIndex = this.Grid.rows.rowCollection.indexOf(row);\n }\n else {\n repeatRow = false;\n PdfGridLayouter.repeatRowIndex = -1;\n }\n while (!rowResult.isFinish && startPage != null) {\n var tempResult = this.getLayoutResult();\n /*if (startPage != this.currentPage)\n {\n if (row.grid.isChildGrid && row.grid.ParentCell != null)\n {\n let bounds : RectangleF= new RectangleF(new PointF(format.paginateBounds.x,format.paginateBounds.y), new SizeF(param.bounds.width, tempResult.bounds.height));\n bounds.x += param.bounds.x;\n if (row.grid.ParentCell.row.grid.style.cellPadding != null)\n {\n bounds.y += row.grid.ParentCell.row.grid.style.cellPadding.top;\n if (bounds.height > this.currentPageBounds.height)\n {\n bounds.height = this.currentPageBounds.height - bounds.y;\n bounds.height -= (row.grid.ParentCell.row.grid.style.cellPadding.bottom);\n }\n }\n // Draw border for cells in the nested grid cell's row.\n for (let c : number = 0; c < row.cells.count; c++)\n {\n let cell : PdfGridCell = row.cells.getCell(c);\n let cellWidth : number= 0;\n if (cell.columnSpan > 1)\n {\n for (; c < cell.columnSpan; c++)\n cellWidth += row.grid.columns.getColumn(c).width;\n }\n else\n cellWidth = Math.max(cell.width, row.grid.columns.getColumn(c).width);\n cell.drawCellBorders(this.currentGraphics, new RectangleF(new PointF(bounds.x,bounds.y), new SizeF(cellWidth, bounds.height)));\n bounds.x += cellWidth;\n c += (cell.columnSpan - 1);\n }\n }\n }\n */\n endArgs = this.raisePageLayouted(tempResult);\n if (endArgs.cancel || repeatRow)\n break;\n else if (this.Grid.allowRowBreakAcrossPages) {\n //If there is no space in the current page, add new page and then draw the remaining row.\n this.currentPage = this.getNextPageformat(format);\n originalHeight = this.currentBounds.y;\n var location_1 = new PointF(PdfBorders.default.right.width / 2, PdfBorders.default.top.width / 2);\n if ((format.paginateBounds.x === 0 && format.paginateBounds.y === 0 && format.paginateBounds.width === 0 &&\n format.paginateBounds.height === 0) && (this.startLocation.x === location_1.x && this.startLocation.y === location_1.y)) {\n this.currentBounds.x += this.startLocation.x;\n this.currentBounds.y += this.startLocation.y;\n }\n if (this.isPaginate) {\n this.startLocation.y = this.currentBounds.y;\n this.isPaginate = false;\n }\n if (this.Grid.isChildGrid && row.grid.ParentCell != null) {\n if (this.Grid.ParentCell.row.grid.style.cellPadding != null) {\n if (row.rowBreakHeight + this.Grid.ParentCell.row.grid.style.cellPadding.top < this.currentBounds.height) {\n this.currentBounds.y = this.Grid.ParentCell.row.grid.style.cellPadding.top;\n }\n }\n }\n if (row.grid.ParentCell != null) {\n row.grid.ParentCell.row.isRowBreaksNextPage = true;\n row.grid.ParentCell.row.rowBreakHeightValue = row.rowBreakHeight + this.Grid.ParentCell.row.grid.style.cellPadding.top + this.Grid.ParentCell.row.grid.style.cellPadding.bottom;\n for (var i_2 = row.rowIndex + 1; i_2 < row.grid.rows.count; i_2++) {\n row.grid.ParentCell.row.rowBreakHeightValue += row.grid.rows.getRow(i_2).height;\n }\n //row.rowBreakHeight = row.grid.ParentCell.row.rowBreakHeightValue;\n }\n /*if (row.noOfPageCount > 1)\n {\n let temp : number = row.rowBreakHeightValue;\n for (let j : number = 1; j < row.noOfPageCount; j++)\n {\n row.rowBreakHeightValue = 0;\n row.height = ((row.noOfPageCount - 1) * this.currentPage.getClientSize().height);\n this.drawRow(row);\n this.currentPage = this.getNextPageformat(format);\n startPage = this.currentPage;\n }\n row.rowBreakHeightValue = temp;\n row.noOfPageCount = 1;\n rowResult = this.drawRow(row);\n } else {\n rowResult = this.drawRow(row);\n }\n /*if(row.grid.isChildGrid){\n row.isrowFinish = false;\n row.isrowDraw = false;\n row.grid.isgridSplit = true;\n row.grid.ParentCell.row.grid.isgridSplit = true;\n //rowResult.isFinish = false;\n break;\n }*/\n if (row.grid.isChildGrid) {\n //row.grid.isgridSplit = true;\n row.isrowFinish = false;\n //row.grid.ParentCell.row.grid.isgridSplit = true;\n row.grid.splitChildRowIndex = row.rowIndex;\n row.grid.ParentCell.row.grid.splitChildRowIndex = row.grid.ParentCell.row.rowIndex;\n if (row.grid.ParentCell.row.grid.isGridSplit) {\n row.grid.ParentCell.row.noOfPageCount += 1;\n row.grid.ParentCell.row.grid.isGridSplit = false;\n }\n break;\n }\n if (row.noOfPageCount < 1) {\n if (row.grid.splitChildRowIndex != -1) {\n row.grid.isGridSplit = true;\n }\n if (row.style.border != null && ((row.style.border.left != null && row.style.border.left.width !== 1)\n || (row.style.border.top != null && row.style.border.top.width !== 1))) {\n var x = row.style.border.left.width / 2;\n var y = row.style.border.top.width / 2;\n if (this.currentBounds.x === PdfBorders.default.right.width / 2 && this.currentBounds.y === PdfBorders.default.right.width / 2) {\n var newBound = new RectangleF(x, y, this.currentBounds.width, this.currentBounds.height);\n this.currentBounds = newBound;\n }\n }\n if (this.Grid.repeatHeader) {\n for (var j_1 = 0; j_1 < this.Grid.headers.count; j_1++) {\n var headerRepeat = this.Grid.headers.getHeader(j_1);\n this.drawRow(headerRepeat);\n }\n }\n rowResult = this.drawRow(row);\n if (row.noOfPageCount >= 1) {\n var temp = row.rowBreakHeightValue;\n for (var j_2 = 0; j_2 < row.noOfPageCount; j_2++) {\n //this.currentPage.section.add();\n var tempResult1 = this.getLayoutResult();\n endArgs = this.raisePageLayouted(tempResult1);\n this.currentPage = this.getNextPageformat(format);\n originalHeight = this.currentBounds.y;\n //row.rowBreakHeightValue = 0;\n if (row.grid.splitChildRowIndex != -1) {\n row.grid.isGridSplit = true;\n }\n this.currentBounds.y = 0.5;\n if (this.Grid.repeatHeader) {\n for (var i_3 = 0; i_3 < this.Grid.headers.count; i_3++) {\n var header = this.Grid.headers.getHeader(i_3);\n this.drawRow(header);\n }\n }\n //row.height = ((row.noOfPageCount - 1) * this.currentPage.getClientSize().height);\n this.drawRow(row);\n }\n // row.rowBreakHeight = temp;\n // row.noOfPageCount = 1;\n // rowResult = this.drawRow(row);\n }\n row.grid.splitChildRowIndex = -1;\n row.grid.isGridSplit = false;\n rowResult.isFinish = this.checkIsFisished(row);\n //row.NestedGridLayoutResult.bounds.height = row.rowBreakHeightValue;\n //this.currentBounds.y = rowResult.bounds.y;\n for (var i_4 = 0; i_4 < row.cells.count; i_4++) {\n if (row.cells.getCell(i_4).value instanceof PdfGrid) {\n row.cells.getCell(i_4).value.splitChildRowIndex = -1;\n }\n }\n }\n }\n // else if (!this.Grid.allowRowBreakAcrossPages && i < length)\n // {\n // this.currentPage = this.getNextPageformat(format);\n // break;\n // }\n // else if (i >= length)\n // break;\n }\n if (!rowResult.isFinish && startPage !== null && format.layout !== PdfLayoutType.OnePage && repeatRow) {\n // During pagination, cell position is maintained here.\n this.startLocation.x = this.currentBounds.x;\n var isAddNextPage = false;\n this.currentPage = this.getNextPageformat(format);\n /*if (!this.Grid.isSingleGrid)\n {\n for ( let j : number= 0; j < this.Grid.rows.count; j++)\n {\n let isWidthGreaterthanParent : boolean = false;\n for (let k : number = 0; k < this.Grid.rows.getRow(j).cells.count; k++)\n {\n if (this.Grid.rows.getRow(j).cells.getCell(k).width > this.currentPageBounds.width)\n isWidthGreaterthanParent = true;\n }\n if (isWidthGreaterthanParent && this.Grid.rows.getRow(j).cells.getCell(this.rowBreakPageHeightCellIndex).pageCount > 0)\n {\n isAddNextPage = true;\n }\n }\n }\n if (!this.Grid.isRearranged && isAddNextPage)\n {\n let section : PdfSection = this.currentPage.section;\n \n //this.currentPage = section.add();\n \n this.currentGraphics = this.currentPage.graphics;\n this.currentBounds = new RectangleF(new PointF(0,0), this.currentPage.getClientSize());\n \n let pageindex : number = (this.currentGraphics.page as PdfPage).section.indexOf(this.currentGraphics.page as PdfPage);\n }\n else\n {\n this.currentPage = this.getNextPageformat(format);\n }\n if (format.paginateBounds.y == 0)\n this.currentBounds.y = PdfBorders.default.top.width/2;\n else\n {\n this.currentBounds.y = format == null ? 0 : format.paginateBounds.y;\n \n }*/\n if (this.raiseBeforePageLayout(this.currentPage, this.currentBounds, this.currentRowIndex).returnValue) {\n break;\n }\n if ((param.format !== null) && !param.format.usePaginateBounds && param.bounds !== null &&\n param.bounds.height > 0 && !this.Grid.isChildGrid) {\n this.currentBounds.height = param.bounds.height;\n }\n if (typeof param.format !== 'undefined' && param.format != null && typeof param.format.usePaginateBounds !== 'undefined' && !param.format.usePaginateBounds && !(param.format.paginateBounds.x === 0 && param.format.paginateBounds.y === 0 && param.format.paginateBounds.width === 0 && param.format.paginateBounds.height === 0) && param.format.paginateBounds.y === 0) {\n this.currentBounds.y = PdfBorders.default.top.width / 2;\n }\n else {\n this.currentBounds.y = format == null ? 0 : format.paginateBounds.y;\n if (format != null && (format.paginateBounds.x !== 0 || format.paginateBounds.y !== 0 || format.paginateBounds.height !== 0 || format.paginateBounds.width !== 0)) {\n this.currentBounds.x = format.paginateBounds.x;\n this.currentBounds.width = format.paginateBounds.width;\n this.currentBounds.height = format.paginateBounds.height;\n }\n }\n if (typeof param.format !== 'undefined' && (param.format !== null) && typeof param.format.usePaginateBounds !== 'undefined' && !param.format.usePaginateBounds && param.bounds !== null &&\n param.bounds.y > 0 && !this.Grid.isChildGrid) {\n this.currentBounds.y = param.bounds.y;\n }\n this.startLocation.y = this.currentBounds.y;\n if ((format.paginateBounds.x === format.paginateBounds.y) &&\n (format.paginateBounds.y === format.paginateBounds.height) &&\n (format.paginateBounds.height === format.paginateBounds.width) && (format.paginateBounds.width === 0)) {\n this.currentBounds.x += this.startLocation.x;\n }\n if (this.currentBounds.x === PdfBorders.default.left.width / 2) {\n this.currentBounds.y += this.startLocation.x;\n }\n if (this.Grid.repeatHeader) {\n for (var i_5 = 0; i_5 < this.Grid.headers.count; i_5++) {\n var header = this.Grid.headers.getHeader(i_5);\n this.drawRow(header);\n }\n }\n this.drawRow(row);\n if (this.currentPage !== null && !layoutedPages.containsKey(this.currentPage)) {\n layoutedPages.add(this.currentPage, range);\n }\n }\n if (row.NestedGridLayoutResult != null) {\n // Position for next row in the grid.\n this.currentPage = row.NestedGridLayoutResult.page;\n this.currentGraphics = this.currentPage.graphics; //If not, next row will not be drawn in the layouted page.\n this.startLocation = new PointF(row.NestedGridLayoutResult.bounds.x, row.NestedGridLayoutResult.bounds.y);\n var recalHeight = this.ReCalculateHeight(row, row.NestedGridLayoutResult.bounds.height);\n this.currentBounds.y = recalHeight;\n //this.currentBounds.y = row.NestedGridLayoutResult.bounds.height;\n if (startPage != this.currentPage) {\n var secion = this.currentPage.section;\n var startIndex = secion.indexOf(startPage) + 1;\n var endIndex = secion.indexOf(this.currentPage);\n for (var page = startIndex; page < endIndex + 1; page++) {\n var pageGraphics = this.currentPage.graphics;\n var location_2 = new PointF(format.paginateBounds.x, format.paginateBounds.y);\n var height = page == endIndex ? (row.NestedGridLayoutResult.bounds.height - param.bounds.y) :\n (this.currentBounds.height - location_2.y);\n if (height <= pageGraphics.clientSize.height)\n height += param.bounds.y;\n // if (row.grid.isChildGrid && row.grid.ParentCell != null)\n // location.x += param.bounds.x;\n location_2.y = format == null ? 0.5 : format.paginateBounds.y;\n // Draw border for last paginated row containing nested grid.\n for (var c = 0; c < row.cells.count; c++) {\n var cell = row.cells.getCell(c);\n var cellWidth = 0;\n var totalwidth = 0;\n if (cell.value instanceof PdfGrid) {\n for (var i_6 = 0; i_6 < cell.value.columns.count; i_6++) {\n totalwidth += cell.value.columns.getColumn(i_6).columnWidth;\n }\n }\n else {\n totalwidth = cell.width;\n }\n // if (cell.columnSpan > 1)\n // {\n // for (; c < cell.columnSpan; c++)\n // cellWidth += row.grid.columns.getColumn(c).width;\n // }\n // else\n cellWidth = Math.max(totalwidth, row.grid.columns.getColumn(c).width);\n cell.drawCellBorders(pageGraphics, new RectangleF(location_2, new SizeF(cellWidth, height)));\n location_2.x += cellWidth;\n c += (cell.columnSpan - 1);\n }\n }\n // So, nested grid drawing is completed for the current row. Update page.\n // Otherwise, the next nested grid of the parent will draw borders from start.\n startPage = this.currentPage;\n }\n }\n }\n var isPdfGrid = false;\n var maximumCellBoundsWidth = 0;\n if (cellBounds.length > 0) {\n maximumCellBoundsWidth = cellBounds[0];\n }\n var largeNavigatePage = [[1, 2]];\n for (var c = 0; c < this.Grid.rows.count; c++) {\n if (this.cellEndIndex != -1 && this.Grid.rows.getRow(c).cells.getCell(this.cellEndIndex).value instanceof PdfGrid) {\n var grid = this.Grid.rows.getRow(c).cells.getCell(this.cellEndIndex).value;\n this.rowLayoutBoundsWidth = grid.rowLayoutBoundsWidth;\n isPdfGrid = true;\n // if (largeNavigatePage[0][0] < grid.listOfNavigatePages.length)\n // {\n // largeNavigatePage[0][0] = grid.listOfNavigatePages.length;\n // largeNavigatePage[0][1] = cellBounds[c];\n // }\n // else if ((largeNavigatePage[0][0] == grid.listOfNavigatePages.length) && (largeNavigatePage[0][1] < cellBounds[c]))\n // {\n // largeNavigatePage[0][1] = cellBounds[c];\n // }\n }\n }\n if (!isPdfGrid && cellBounds.length > 0) {\n for (var c = 0; c < i - 1; c++) {\n if (maximumCellBoundsWidth < cellBounds[c]) {\n maximumCellBoundsWidth = cellBounds[c];\n }\n }\n this.rowLayoutBoundsWidth = maximumCellBoundsWidth;\n }\n else {\n this.rowLayoutBoundsWidth = largeNavigatePage[0][1];\n }\n if (this.columnRanges.indexOf(range) < this.columnRanges.length - 1\n && startPage != null && format.layout != PdfLayoutType.OnePage) {\n isParentCell = this.Grid.isChildGrid;\n if (largeNavigatePage[0][0] != 0) {\n var section = this.currentPage.section;\n var pageIndex = section.indexOf(this.currentPage);\n this.currentGraphics = this.currentPage.graphics;\n this.currentBounds = new RectangleF(new PointF(0, 0), this.currentPage.getClientSize());\n var pageindex = this.currentGraphics.page.section.indexOf(this.currentGraphics.page);\n }\n else {\n this.currentPage = this.getNextPageformat(format);\n }\n // let locationGrid : PointF= new PointF(PdfBorders.default.right.width / 2, PdfBorders.default.top.width / 2);\n // if (format.paginateBounds == new RectangleF(0,0,0,0) && this.startLocation == locationGrid)\n // {\n // this.currentBounds.x += this.startLocation.x;\n // this.currentBounds.y += this.startLocation.y;\n // }\n }\n if (this.columnRanges.length - 1 !== index && this.columnRanges.length > 1 && format.layout !== PdfLayoutType.OnePage) {\n this.currentPage = this.getNextPageformat(format);\n if ((format.paginateBounds.x === format.paginateBounds.y) && (format.paginateBounds.y === format.paginateBounds.height)\n && (format.paginateBounds.height === format.paginateBounds.width) && (format.paginateBounds.width === 0)) {\n this.currentBounds.x += this.startLocation.x;\n this.currentBounds.y += this.startLocation.y;\n //this.currentBounds.height = this.pageBounds.height;\n }\n }\n }\n result = this.getLayoutResult();\n if (this.Grid.style.allowHorizontalOverflow && this.Grid.style.horizontalOverflowType == PdfHorizontalOverflowType.NextPage) {\n this.reArrangePages(layoutedPages);\n }\n this.raisePageLayouted(result);\n return result;\n };\n PdfGridLayouter.prototype.checkIsFisished = function (row) {\n var result = true;\n for (var i = 0; i < row.cells.count; i++) {\n if (!row.cells.getCell(i).FinishedDrawingCell) {\n result = false;\n }\n }\n return result;\n };\n /* tslint:enable */\n /**\n * Gets the `next page`.\n * @private\n */\n PdfGridLayouter.prototype.getNextPageformat = function (format) {\n var section = this.currentPage.section;\n var nextPage = null;\n var index = section.indexOf(this.currentPage);\n this.flag = false;\n if (index === section.count - 1) {\n nextPage = section.add();\n }\n else {\n nextPage = section.getPages()[index + 1];\n }\n this.currentGraphics = nextPage.graphics;\n var pageindex = this.currentGraphics.page.section.indexOf(this.currentGraphics.page);\n if (!(this.listOfNavigatePages.indexOf(pageindex) !== -1)) {\n this.listOfNavigatePages.push(pageindex);\n }\n this.currentBounds = new RectangleF(new PointF(0, 0), nextPage.getClientSize());\n if ((typeof format !== 'undefined') && format != null && format.usePaginateBounds && (typeof format.paginateBounds !== 'undefined') && format.paginateBounds != null && (format.paginateBounds.x !== format.paginateBounds.y) && (format.paginateBounds.y !== format.paginateBounds.height)\n && (format.paginateBounds.height !== format.paginateBounds.width) && (format.paginateBounds.width !== 0)) {\n this.currentBounds.x = format.paginateBounds.x;\n this.currentBounds.y = format.paginateBounds.y;\n this.currentBounds.height = format.paginateBounds.height;\n }\n return nextPage;\n };\n PdfGridLayouter.prototype.CheckIfDefaultFormat = function (format) {\n var defaultFormat = new PdfStringFormat();\n return (format.alignment === defaultFormat.alignment && format.characterSpacing === defaultFormat.characterSpacing &&\n format.clipPath === defaultFormat.clipPath && format.firstLineIndent === defaultFormat.firstLineIndent &&\n format.horizontalScalingFactor === defaultFormat.horizontalScalingFactor &&\n format.lineAlignment === defaultFormat.lineAlignment\n && format.lineLimit === defaultFormat.lineLimit && format.lineSpacing === defaultFormat.lineSpacing &&\n format.measureTrailingSpaces === defaultFormat.measureTrailingSpaces && format.noClip === defaultFormat.noClip &&\n format.paragraphIndent === defaultFormat.paragraphIndent && format.rightToLeft === defaultFormat.rightToLeft &&\n format.subSuperScript === defaultFormat.subSuperScript && format.wordSpacing === defaultFormat.wordSpacing &&\n format.wordWrap === defaultFormat.wordWrap);\n };\n /**\n * `Raises BeforeCellDraw event`.\n * @private\n */\n PdfGridLayouter.prototype.RaiseBeforeCellDraw = function (graphics, rowIndex, cellIndex, bounds, value, style) {\n var args = null;\n if (this.Grid.raiseBeginCellDraw) {\n args = new PdfGridBeginCellDrawEventArgs(graphics, rowIndex, cellIndex, bounds, value, style);\n this.Grid.onBeginCellDraw(args);\n style = args.style;\n }\n return style;\n };\n /**\n * `Raises AfterCellDraw event`.\n * @private\n */\n PdfGridLayouter.prototype.raiseAfterCellDraw = function (graphics, rowIndex, cellIndex, bounds, value, cellstyle) {\n var args = null;\n if (this.Grid.raiseEndCellDraw) {\n args = new PdfGridEndCellDrawEventArgs(graphics, rowIndex, cellIndex, bounds, value, cellstyle);\n this.Grid.onEndCellDraw(args);\n }\n };\n PdfGridLayouter.prototype.reArrangePages = function (layoutedPages) {\n var document = this.currentPage.document;\n var pages = [];\n var keys = layoutedPages.keys();\n var values = layoutedPages.values();\n for (var i = 0; i < keys.length; i++) {\n var page = keys[i];\n page.section = null;\n pages.push(page);\n document.pages.remove(page);\n }\n /* tslint:disable */\n for (var i = 0; i < layoutedPages.size(); i++) {\n var count = 0;\n for (var j = i, count_1 = (layoutedPages.size() / this.columnRanges.length); j < layoutedPages.size(); j += count_1) {\n var page = pages[j];\n if (typeof page !== 'undefined' && document.pages.indexOf(page) === -1) {\n document.pages.add(page);\n }\n }\n }\n /* tslint:enable */\n };\n /**\n * Gets the `layout result`.\n * @private\n */\n PdfGridLayouter.prototype.getLayoutResult = function () {\n if (this.Grid.isChildGrid && this.Grid.allowRowBreakAcrossPages) {\n for (var i = 0; i < this.Grid.rows.count; i++) {\n var row = this.Grid.rows.getRow(i);\n if (row.rowBreakHeight > 0 && row.repeatFlag) {\n this.startLocation.y = this.currentPage.origin.y;\n }\n }\n }\n var bounds;\n if (!this.isChanged) {\n bounds = new RectangleF(this.startLocation, new SizeF(this.currentBounds.width, this.currentBounds.y -\n this.startLocation.y));\n }\n // else {\n // bounds = new RectangleF(this.currentLocation, new SizeF(this.currentBounds.width, this.currentBounds.y -\n // this.currentLocation.y));\n // }\n /* tslint:enable */\n return new PdfGridLayoutResult(this.currentPage, bounds);\n };\n /**\n * `Recalculate row height` for the split cell to be drawn.\n * @private\n */\n PdfGridLayouter.prototype.ReCalculateHeight = function (row, height) {\n var newHeight = 0.0;\n for (var i = this.cellStartIndex; i <= this.cellEndIndex; i++) {\n if (!(row.cells.getCell(i).remainingString === null || row.cells.getCell(i).remainingString === '' ||\n typeof row.cells.getCell(i).remainingString === 'undefined')) {\n newHeight = Math.max(newHeight, row.cells.getCell(i).measureHeight());\n }\n }\n return Math.max(height, newHeight);\n };\n /**\n * `Raises BeforePageLayout event`.\n * @private\n */\n PdfGridLayouter.prototype.raiseBeforePageLayout = function (currentPage, currentBounds, currentRow) {\n var cancel = false;\n if (this.Grid.raiseBeginPageLayout) {\n var args = new PdfGridBeginPageLayoutEventArgs(currentBounds, currentPage, currentRow);\n this.Grid.onBeginPageLayout(args);\n // if (currentBounds !== args.Bounds) {\n // this.isChanged = true;\n // this.currentLocation = new PointF(args.Bounds.x, args.Bounds.y);\n // this.measureColumnsWidth(new RectangleF(new PointF(args.Bounds.x, args.Bounds.y) ,\n // new SizeF(args.Bounds.width + args.Bounds.x ,\n // args.Bounds.height)));\n // }\n cancel = (typeof args.cancel === 'undefined' ? false : args.cancel);\n currentBounds = args.bounds;\n currentRow = args.startRowIndex;\n }\n return { returnValue: cancel, currentBounds: currentBounds, currentRowIndex: currentRow };\n };\n /**\n * `Raises PageLayout event` if needed.\n * @private\n */\n PdfGridLayouter.prototype.raisePageLayouted = function (result) {\n var args = new PdfGridEndPageLayoutEventArgs(result);\n if (this.Grid.raiseEndPageLayout) {\n this.Grid.onEndPageLayout(args);\n }\n return args;\n };\n PdfGridLayouter.prototype.drawRow = function (row, result, height) {\n if (typeof result === 'undefined') {\n //.. Check if required space available.\n //.....If the row conains spans which falls through more than one page, then draw the row to next page. \n var result_1 = new RowLayoutResult();\n var rowHeightWithSpan = 0;\n var location_3 = new PointF(0, 0);\n var size = new SizeF(0, 0);\n var isHeader = false;\n if (row.rowSpanExists) {\n var maxSpan = 0;\n var currRowIndex = this.Grid.rows.rowCollection.indexOf(row);\n if (currRowIndex === -1) {\n currRowIndex = this.Grid.headers.indexOf(row);\n if (currRowIndex !== -1) {\n isHeader = true;\n }\n }\n for (var i = 0; i < row.cells.count; i++) {\n var cell = row.cells.getCell(i);\n maxSpan = Math.max(maxSpan, cell.rowSpan);\n }\n for (var i = currRowIndex; i < currRowIndex + maxSpan; i++) {\n rowHeightWithSpan += (isHeader ? this.Grid.headers.getHeader(i).height : this.Grid.rows.getRow(i).height);\n }\n // let rowMaxHeight : number = rowHeightWithSpan;\n // for (let i : number = 0; i < row.cells.count; i++ ) {\n // rowMaxHeight = rowMaxHeight > row.cells.getCell(i).height ? rowMaxHeight : row.cells.getCell(i).height;\n // }\n // let flag : boolean = true;\n // let nextRow : PdfGridRow = this.Grid.headers.getHeader(this.Grid.headers.indexOf(row) + 1);\n // for (let i : number = 0; i < nextRow.cells.count; i++ ) {\n // if (nextRow.cells.getCell(i).value !== '' && nextRow.cells.getCell(i).value !== undefined) {\n // flag = false;\n // break;\n // }\n // }\n // if ((rowMaxHeight > rowHeightWithSpan) && flag) {\n // row.height += (rowMaxHeight - rowHeightWithSpan);\n // } \n }\n var calculatedHeight = row.rowBreakHeight > 0.0 ? row.rowBreakHeight : row.height;\n if (typeof this.Grid.isChildGrid !== 'undefined' && this.Grid.isChildGrid && typeof this.Grid.ParentCell !== 'undefined' && this.Grid.ParentCell != null) {\n //Split row only if row height exceeds page height and AllowRowBreakAcrossPages is true.\n // if (calculatedHeight + this.Grid.ParentCell.row.grid.style.cellPadding.bottom +\n // this.Grid.ParentCell.row.grid.style.cellPadding.top > this.currentPageBounds.height) {\n // if (this.Grid.allowRowBreakAcrossPages) {\n // result.isFinish = true;\n // if ( this.Grid.isChildGrid && row.rowBreakHeight > 0 ) {\n // if (this.Grid.ParentCell.row.grid.style.cellPadding !== null) {\n // this.currentBounds.y += this.Grid.ParentCell.row.grid.style.cellPadding.top;\n // }\n // this.currentBounds.x = this.startLocation.x;\n // }\n // result.bounds = this.currentBounds ;\n // this.drawRowWithBreak(result, row, calculatedHeight);\n // } else {\n // //If AllowRowBreakAcrossPages is not true, draw the row till it fits the page. \n // if (this.Grid.ParentCell.row.grid.style.cellPadding != null) {\n // this.currentBounds.y += this.Grid.ParentCell.row.grid.style.cellPadding.top;\n // calculatedHeight = this.currentBounds.height - this.currentBounds.y -\n // this.Grid.ParentCell.row.grid.style.cellPadding.bottom;\n // }\n // result.isFinish = false;\n // this.drawRow( row, result, calculatedHeight);\n // }\n // } else\n if (this.currentBounds.y + this.Grid.ParentCell.row.grid.style.cellPadding.bottom + calculatedHeight >\n this.currentPageBounds.height || this.currentBounds.y + this.Grid.ParentCell.row.grid.style.cellPadding.bottom\n + calculatedHeight > this.currentBounds.height || this.currentBounds.y +\n this.Grid.ParentCell.row.grid.style.cellPadding.bottom + rowHeightWithSpan > this.currentPageBounds.height) {\n //If a row is repeated and still cannot fit in page, proceed draw.\n if (typeof this.Grid.ParentCell.row.grid.LayoutFormat !== 'undefined' && this.Grid.ParentCell.row.grid.LayoutFormat.break === PdfLayoutBreakType.FitPage) {\n PdfGridLayouter.repeatRowIndex = this.Grid.rows.rowCollection.indexOf(row);\n this.Grid.splitChildRowIndex = this.Grid.rows.rowCollection.indexOf(row);\n }\n if (PdfGridLayouter.repeatRowIndex > -1 && PdfGridLayouter.repeatRowIndex === row.rowIndex) {\n if (this.Grid.allowRowBreakAcrossPages) {\n result_1.isFinish = true;\n // if (this.Grid.isChildGrid && row.rowBreakHeightValue > 0) {\n // // if (this.Grid.ParentCell.row.grid.style.cellPadding != null) {\n // // this.currentBounds.y += this.Grid.ParentCell.row.grid.style.cellPadding.top;\n // // }\n // this.currentBounds.x = this.startLocation.x;\n // }\n result_1.bounds = this.currentBounds;\n this.drawRowWithBreak(result_1, row, calculatedHeight);\n row.repeatFlag = true;\n row.repeatRowNumber = PdfGridLayouter.repeatRowIndex;\n }\n // else {\n // result.isFinish = false;\n // row.repeatFlag = false;\n // this.drawRow( row, result, calculatedHeight);\n // }\n }\n // else {\n // result.isFinish = false;\n // }\n }\n else {\n result_1.isFinish = true;\n if (row.grid.ParentCell.row.rowBreakHeightValue > 0) {\n row.repeatFlag = true;\n }\n else {\n row.repeatFlag = false;\n calculatedHeight = row.height;\n }\n if (this.Grid.isChildGrid && row.rowBreakHeight > 0) {\n if (this.Grid.ParentCell.row.grid.style.cellPadding != null) {\n calculatedHeight += this.Grid.ParentCell.row.grid.style.cellPadding.bottom;\n }\n }\n this.drawRow(row, result_1, calculatedHeight);\n }\n }\n else {\n //Split row only if row height exceeds page height and AllowRowBreakAcrossPages is true.\n if (calculatedHeight > this.currentPageBounds.height) {\n if (this.Grid.allowRowBreakAcrossPages) {\n result_1.isFinish = true;\n //result.bounds = this.currentBounds;\n this.drawRowWithBreak(result_1, row, calculatedHeight);\n row.isrowFinish = true;\n row.repeatFlag = true;\n if (row.grid.splitChildRowIndex !== -1) {\n result_1.isFinish = false;\n }\n }\n // else {\n // //If AllowRowBreakAcrossPages is not true, draw the row till it fits the page.\n // result.isFinish = false;\n // this.drawRow( row, result, calculatedHeight);\n // }\n }\n else if (this.currentBounds.y + calculatedHeight > this.currentPageBounds.height ||\n this.currentBounds.y + calculatedHeight > (this.currentBounds.height + this.startLocation.y) ||\n this.currentBounds.y + rowHeightWithSpan > this.currentPageBounds.height) {\n // If a row is repeated and still cannot fit in page, proceed draw.\n var isFit = false;\n if ((this.Grid.allowRowBreakAcrossPages && !this.Grid.repeatHeader && !row.isRowHeightSet && !row.rowMergeComplete)) {\n if (this.Grid.LayoutFormat !== null && this.Grid.LayoutFormat.paginateBounds.height > 0) {\n isFit = this.isFitToCell((this.currentBounds.height + this.startLocation.y) - this.currentBounds.y, this.Grid, row);\n }\n else\n isFit = this.isFitToCell(this.currentPageBounds.height - this.currentBounds.y, this.Grid, row);\n if (isFit) {\n this.isPaginate = true;\n }\n }\n else if (this.Grid.allowRowBreakAcrossPages && this.Grid.LayoutFormat != null && this.Grid.LayoutFormat.layout == PdfLayoutType.Paginate && this.Grid.LayoutFormat.break != PdfLayoutBreakType.FitElement && row.isRowHeightSet && this.currentBounds.y + height > this.currentPageBounds.height) {\n isFit = this.isFitToCell(this.currentPageBounds.height - this.currentBounds.y, this.Grid, row);\n if (!isFit)\n isFit = !(this.slr !== null && this.slr.actualSize.height == 0 && this.slr.remainder != null && this.slr.remainder.length > 0 && this.remainderText == this.slr.remainder);\n if (isFit && this.slr != null && this.slr.lineCount > 1) {\n //It may text cutoff issue\n isFit = false;\n }\n this.remainderText = null;\n }\n if (PdfGridLayouter.repeatRowIndex > -1 && PdfGridLayouter.repeatRowIndex === row.rowIndex || isFit) {\n if (this.Grid.allowRowBreakAcrossPages) {\n result_1.isFinish = true;\n this.drawRowWithBreak(result_1, row, calculatedHeight);\n row.repeatFlag = true;\n row.repeatRowNumber = PdfGridLayouter.repeatRowIndex;\n if (row.grid.splitChildRowIndex !== -1) {\n result_1.isFinish = false;\n }\n }\n else {\n result_1.isFinish = false;\n this.drawRow(row, result_1, calculatedHeight);\n }\n }\n else {\n result_1.isFinish = false;\n }\n }\n else {\n result_1.isFinish = true;\n this.drawRow(row, result_1, calculatedHeight);\n row.repeatFlag = false;\n }\n }\n return result_1;\n }\n else {\n var skipcell = false;\n var location_4 = new PointF(this.currentBounds.x, this.currentBounds.y);\n // if (row.grid.isChildGrid && row.grid.allowRowBreakAcrossPages && this.startLocation.x !== this.currentBounds.x && row.width <\n // this.currentPage.getClientSize().width) {\n // location.x = this.startLocation.x;\n // }\n result.bounds = new RectangleF(location_4, new SizeF(0, 0));\n height = this.ReCalculateHeight(row, height);\n for (var i = this.cellStartIndex; i <= this.cellEndIndex; i++) {\n var cancelSpans = ((i > this.cellEndIndex + 1) && (row.cells.getCell(i).columnSpan > 1));\n // let cancelSpans : boolean = false;\n if (!cancelSpans) {\n for (var j = 1; j < row.cells.getCell(i).columnSpan; j++) {\n row.cells.getCell(i + j).isCellMergeContinue = true;\n }\n }\n var size = new SizeF(this.Grid.columns.getColumn(i).width, height);\n // if (size.width > this.currentGraphics.clientSize.width) {\n // size.width = this.currentGraphics.clientSize.width;\n // }\n // if (this.Grid.isChildGrid && this.Grid.style.allowHorizontalOverflow) {\n // if (size.width >= this.currentGraphics.clientSize.width) {\n // size.width -= 2 * this.currentBounds.x;\n // }\n // }\n /* tslint:disable */\n if (!this.CheckIfDefaultFormat(this.Grid.columns.getColumn(i).format) &&\n this.CheckIfDefaultFormat(row.cells.getCell(i).stringFormat)) {\n row.cells.getCell(i).stringFormat = this.Grid.columns.getColumn(i).format;\n }\n var cellstyle = row.cells.getCell(i).style;\n var tempValue = ((typeof row.cells.getCell(i).value === 'string' &&\n row.cells.getCell(i).value !== null) ? row.cells.getCell(i).value : '');\n row.cells.getCell(i).style = this.RaiseBeforeCellDraw(this.currentGraphics, this.currentRowIndex, i, new RectangleF(location_4, size), tempValue, cellstyle);\n //row.cells.getCell(i).style = cellstyle;\n if (!skipcell) {\n if (row.cells.getCell(i).value instanceof PdfGrid) {\n var grid = row.cells.getCell(i).value;\n grid.parentCellIndex = i;\n }\n var stringResult = row.cells.getCell(i).draw(this.currentGraphics, new RectangleF(location_4, size), cancelSpans);\n if (row.grid.style.allowHorizontalOverflow && (row.cells.getCell(i).columnSpan > this.cellEndIndex ||\n i + row.cells.getCell(i).columnSpan > this.cellEndIndex + 1) && this.cellEndIndex < row.cells.count - 1) {\n row.rowOverflowIndex = this.cellEndIndex;\n }\n if (row.grid.style.allowHorizontalOverflow && (row.rowOverflowIndex > 0 && (row.cells.getCell(i).columnSpan >\n this.cellEndIndex || i + row.cells.getCell(i).columnSpan > this.cellEndIndex + 1)) &&\n row.cells.getCell(i).columnSpan - this.cellEndIndex + i - 1 > 0) {\n row.cells.getCell(row.rowOverflowIndex + 1).value = stringResult !== null ? (stringResult.remainder !== undefined) ?\n stringResult.remainder : '' : '';\n row.cells.getCell(row.rowOverflowIndex + 1).stringFormat = row.cells.getCell(i).stringFormat;\n row.cells.getCell(row.rowOverflowIndex + 1).style = row.cells.getCell(i).style;\n row.cells.getCell(row.rowOverflowIndex + 1).columnSpan = row.cells.getCell(i).columnSpan - this.cellEndIndex + i - 1;\n }\n }\n /* tslint:enable */\n tempValue = ((typeof row.cells.getCell(i).value === 'string' &&\n row.cells.getCell(i).value !== null) ? row.cells.getCell(i).value : '');\n if (!cancelSpans) {\n this.raiseAfterCellDraw(this.currentGraphics, this.currentRowIndex, i, new RectangleF(location_4, size), tempValue, row.cells.getCell(i).style);\n }\n if (row.cells.getCell(i).value instanceof PdfGrid) {\n var grid = row.cells.getCell(i).value;\n if (this.Grid.columns.getColumn(i).width >= this.currentGraphics.clientSize.width) {\n location_4.x = grid.rowLayoutBoundsWidth;\n location_4.x += grid.style.cellSpacing;\n }\n else {\n location_4.x += this.Grid.columns.getColumn(i).width;\n }\n }\n else {\n location_4.x += this.Grid.columns.getColumn(i).width;\n }\n }\n if (!row.rowMergeComplete || row.isRowHeightSet) {\n this.currentBounds.y += height;\n }\n result.bounds = new RectangleF(new PointF(result.bounds.x, result.bounds.y), new SizeF(location_4.x, location_4.y));\n }\n };\n PdfGridLayouter.prototype.isFitToCell = function (currentHeight, grid, gridRow) {\n var isFit = false;\n var layouter = new PdfStringLayouter();\n for (var i = 0; i < gridRow.cells.count; i++) {\n var cell = gridRow.cells.getCell(i);\n if (typeof cell.value !== 'undefined' && cell.value !== null && typeof cell.value === 'string') {\n var font = null;\n if (typeof cell.style.font !== 'undefined' && cell.style.font != null) {\n font = cell.style.font;\n }\n else if (typeof cell.row.style.font !== 'undefined' && cell.row.style.font != null) {\n font = cell.row.style.font;\n }\n else if (typeof cell.row.grid.style.font !== 'undefined' && cell.row.grid.style.font != null) {\n font = cell.row.grid.style.font;\n }\n else {\n font = PdfDocument.defaultFont;\n }\n this.remainderText = cell.value;\n var width = cell.width;\n var column = grid.columns.getColumn(i);\n if (column.isCustomWidth && cell.width > column.width) {\n width = column.width;\n }\n this.slr = layouter.layout(cell.value, font, cell.stringFormat, new SizeF(width, currentHeight), false, this.currentPageBounds);\n var height = this.slr.actualSize.height;\n if (cell.value !== '' && height === 0) {\n isFit = false;\n break;\n }\n if (cell.style !== null && cell.style.borders !== null && cell.style.borders.top !== null && cell.style.borders.bottom !== null) {\n height += (cell.style.borders.top.width + cell.style.borders.bottom.width) * 2;\n }\n if (this.slr.lineCount > 1 && cell.stringFormat != null && cell.stringFormat.lineSpacing != 0) {\n height += (this.slr.lineCount - 1) * (cell.style.stringFormat.lineSpacing);\n }\n if (cell.style.cellPadding === null) {\n height += (grid.style.cellPadding.top + grid.style.cellPadding.bottom);\n }\n else {\n height += (grid.style.cellPadding.top + grid.style.cellPadding.bottom);\n }\n height += grid.style.cellSpacing;\n if (currentHeight > height || (typeof this.slr.remainder !== 'undefined' && this.slr.remainder !== null)) {\n isFit = true;\n break;\n }\n }\n }\n return isFit;\n };\n PdfGridLayouter.prototype.drawRowWithBreak = function (result, row, calculateHeight) {\n var location = new PointF(this.currentBounds.x, this.currentBounds.y);\n if (row.grid.isChildGrid && row.grid.allowRowBreakAcrossPages && this.startLocation.x !== this.currentBounds.x) {\n location.x = this.startLocation.x;\n }\n result.bounds = new RectangleF(location, new SizeF(0, 0));\n this.gridHeight = row.rowBreakHeight > 0 ? this.currentPageBounds.height : 0;\n // Calculate the remaining height.\n if (row.grid.style.cellPadding.top + this.currentBounds.y + row.grid.style.cellPadding.bottom < this.currentPageBounds.height) {\n row.rowBreakHeight = this.currentBounds.y + calculateHeight - this.currentPageBounds.height;\n }\n // else {\n // row.rowBreakHeight = calculateHeight;\n // result.isFinish = false;\n // return;\n // }\n // No need to explicit break if the row height is equal to grid height.\n for (var i = 0; i < row.cells.count; i++) {\n var cell = row.cells.getCell(i);\n var cellHeight = cell.measureHeight();\n if (cellHeight === calculateHeight && cell.value instanceof PdfGrid) {\n row.rowBreakHeight = 0;\n }\n // else if (cellHeight === calculateHeight && (cell.value as PdfGrid) === null) {\n // row.rowBreakHeight = this.currentBounds.y + calculateHeight - this.currentPageBounds.height;\n // }\n }\n for (var i = this.cellStartIndex; i <= this.cellEndIndex; i++) {\n var cancelSpans = ((row.cells.getCell(i).columnSpan + i > this.cellEndIndex + 1) &&\n (row.cells.getCell(i).columnSpan > 1));\n // if (!cancelSpans) {\n // for (let k : number = 1; k < row.cells.getCell(i).columnSpan; k++) {\n // row.cells.getCell(i + k).isCellMergeContinue = true;\n // }\n //}\n var size = new SizeF(this.Grid.columns.getColumn(i).width, this.gridHeight > 0.0 ? this.gridHeight :\n this.currentPageBounds.height);\n // if (size.width === 0) {\n // size = new SizeF(row.cells.getCell(i).width, size.height);\n // }\n // if (!this.CheckIfDefaultFormat(this.Grid.columns.getColumn(i).format) &&\n // this.CheckIfDefaultFormat((row.cells.getCell(i).stringFormat))) {\n // row.cells.getCell(i).stringFormat = this.Grid.columns.getColumn(i).format;\n // }\n var cellstyle1 = row.cells.getCell(i).style;\n row.cells.getCell(i).style = cellstyle1;\n var skipcell = false;\n var stringResult = null;\n if (!skipcell) {\n row.cells.getCell(i)._rowHeight = row.height;\n stringResult = row.cells.getCell(i).draw(this.currentGraphics, new RectangleF(location, size), cancelSpans);\n }\n //If still row is to be drawn, set cell finished drawing cell as false and update the text to be drawn.\n if (row.rowBreakHeight > 0.0) {\n if (stringResult != null && typeof stringResult.remainder !== 'undefined') {\n row.cells.getCell(i).FinishedDrawingCell = false;\n row.cells.getCell(i).remainingString = stringResult.remainder == null ? ' ' : stringResult.remainder;\n row.rowBreakHeight = calculateHeight - stringResult.actualSize.height;\n }\n }\n result.isFinish = (!result.isFinish) ? result.isFinish : row.cells.getCell(i).FinishedDrawingCell;\n // let tempValue : string = ((typeof row.cells.getCell(i).value === 'string' &&\n //row.cells.getCell(i).value !== null) ? row.cells.getCell(i).value : '') as string;\n // if (!cancelSpans) {\n // // this.raiseAfterCellDraw(this.currentGraphics, this.currentRowIndex, i,\n // // new RectangleF(location, size), tempValue, row.cells.getCell(i).style); \n // this.raiseAfterCellDraw(this.currentGraphics, this.currentRowIndex, i, new RectangleF(location, size),\n // (row.cells.getCell(i).value as string) ? row.cells.getCell(i).value.toString() : ' ',\n // row.cells.getCell(i).style);\n // } \n if (row.cells.getCell(i).value instanceof PdfGrid) {\n var grid = row.cells.getCell(i).value;\n this.rowBreakPageHeightCellIndex = i;\n // row.cells.getCell(i).pageCount = grid.listOfNavigatePages.length;\n // for (let j : number = 0;j= this.currentGraphics.clientSize.width) {\n location.x = this.rowLayoutBoundsWidth;\n location.x += grid.style.cellSpacing;\n }\n else {\n location.x += this.Grid.columns.getColumn(i).width;\n }\n }\n else {\n location.x += this.Grid.columns.getColumn(i).width;\n }\n }\n this.currentBounds.y += this.gridHeight > 0.0 ? this.gridHeight : calculateHeight;\n result.bounds = new RectangleF(new PointF(result.bounds.x, result.bounds.y), new SizeF(location.x, location.y));\n };\n /**\n * @hidden\n * @private\n */\n PdfGridLayouter.repeatRowIndex = -1;\n return PdfGridLayouter;\n}(ElementLayouter));\nexport { PdfGridLayouter };\n// recalculateBounds : boolean, clientSize : SizeF\n//Implementation\n/**\n * `Initializes` internal data.\n * @private\n */\n//Internal declaration\nvar PdfGridLayoutResult = /** @class */ (function (_super) {\n __extends(PdfGridLayoutResult, _super);\n /**\n * Constructor\n * @private\n */\n function PdfGridLayoutResult(page, bounds) {\n return _super.call(this, page, bounds) || this;\n }\n return PdfGridLayoutResult;\n}(PdfLayoutResult));\nexport { PdfGridLayoutResult };\n/**\n * `PdfGridLayoutFormat` class represents a flexible grid that consists of columns and rows.\n */\nvar PdfGridLayoutFormat = /** @class */ (function (_super) {\n __extends(PdfGridLayoutFormat, _super);\n /**\n * Initializes a new instance of the `PdfGridLayoutFormat` class.\n * @private\n */\n function PdfGridLayoutFormat(baseFormat) {\n return _super.call(this, baseFormat) || this;\n }\n return PdfGridLayoutFormat;\n}(PdfLayoutFormat));\nexport { PdfGridLayoutFormat };\nvar GridCellEventArgs = /** @class */ (function () {\n // Constructors\n /**\n * Initialize a new instance for `GridCellEventArgs` class.\n * @private\n */\n function GridCellEventArgs(graphics, rowIndex, cellIndex, bounds, value) {\n this.gridRowIndex = rowIndex;\n this.gridCellIndex = cellIndex;\n this.internalValue = value;\n this.gridBounds = bounds;\n this.pdfGraphics = graphics;\n }\n Object.defineProperty(GridCellEventArgs.prototype, \"rowIndex\", {\n // Properties\n /**\n * Gets the value of current `row index`.\n * @private\n */\n get: function () {\n return this.gridRowIndex;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(GridCellEventArgs.prototype, \"cellIndex\", {\n /**\n * Gets the value of current `cell index`.\n * @private\n */\n get: function () {\n return this.gridCellIndex;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(GridCellEventArgs.prototype, \"value\", {\n /**\n * Gets the actual `value` of current cell.\n * @private\n */\n get: function () {\n return this.internalValue;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(GridCellEventArgs.prototype, \"bounds\", {\n /**\n * Gets the `bounds` of current cell.\n * @private\n */\n get: function () {\n return this.gridBounds;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(GridCellEventArgs.prototype, \"graphics\", {\n /**\n * Gets the instance of `current graphics`.\n * @private\n */\n get: function () {\n return this.pdfGraphics;\n },\n enumerable: true,\n configurable: true\n });\n return GridCellEventArgs;\n}());\nexport { GridCellEventArgs };\nvar PdfGridBeginCellDrawEventArgs = /** @class */ (function (_super) {\n __extends(PdfGridBeginCellDrawEventArgs, _super);\n // Constructors\n /**\n * Initializes a new instance of the `StartCellLayoutEventArgs` class.\n * @private\n */\n function PdfGridBeginCellDrawEventArgs(graphics, rowIndex, cellIndex, bounds, value, style) {\n var _this = _super.call(this, graphics, rowIndex, cellIndex, bounds, value) || this;\n _this.style = style;\n return _this;\n }\n Object.defineProperty(PdfGridBeginCellDrawEventArgs.prototype, \"skip\", {\n // Properties\n /**\n * Gets or sets a value indicating whether the value of this cell should be `skipped`.\n * @private\n */\n get: function () {\n return this.bSkip;\n },\n set: function (value) {\n this.bSkip = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGridBeginCellDrawEventArgs.prototype, \"style\", {\n /**\n * Gets or sets a `style` value of the cell.\n * @private\n */\n get: function () {\n return this.cellStyle;\n },\n set: function (value) {\n this.cellStyle = value;\n },\n enumerable: true,\n configurable: true\n });\n return PdfGridBeginCellDrawEventArgs;\n}(GridCellEventArgs));\nexport { PdfGridBeginCellDrawEventArgs };\nvar PdfGridEndCellDrawEventArgs = /** @class */ (function (_super) {\n __extends(PdfGridEndCellDrawEventArgs, _super);\n // Constructors\n /**\n * Initializes a new instance of the `PdfGridEndCellLayoutEventArgs` class.\n * @private\n */\n function PdfGridEndCellDrawEventArgs(graphics, rowIndex, cellIndex, bounds, value, style) {\n var _this = _super.call(this, graphics, rowIndex, cellIndex, bounds, value) || this;\n _this.cellStyle = style;\n return _this;\n }\n Object.defineProperty(PdfGridEndCellDrawEventArgs.prototype, \"style\", {\n // Propertise\n /**\n * Get the `PdfGridCellStyle`.\n * @private\n */\n get: function () {\n return this.cellStyle;\n },\n enumerable: true,\n configurable: true\n });\n return PdfGridEndCellDrawEventArgs;\n}(GridCellEventArgs));\nexport { PdfGridEndCellDrawEventArgs };\nvar PdfCancelEventArgs = /** @class */ (function () {\n function PdfCancelEventArgs() {\n }\n Object.defineProperty(PdfCancelEventArgs.prototype, \"cancel\", {\n // Properties\n /**\n * Gets and Sets the value of `cancel`.\n * @private\n */\n get: function () {\n return this.isCancel;\n },\n set: function (value) {\n this.isCancel = value;\n },\n enumerable: true,\n configurable: true\n });\n return PdfCancelEventArgs;\n}());\nexport { PdfCancelEventArgs };\nvar BeginPageLayoutEventArgs = /** @class */ (function (_super) {\n __extends(BeginPageLayoutEventArgs, _super);\n // Constructors\n /**\n * Initializes a new instance of the `BeginPageLayoutEventArgs` class with the specified rectangle and page.\n * @private\n */\n function BeginPageLayoutEventArgs(bounds, page) {\n var _this = _super.call(this) || this;\n _this.bounds = bounds;\n _this.pdfPage = page;\n return _this;\n }\n Object.defineProperty(BeginPageLayoutEventArgs.prototype, \"bounds\", {\n // Properties\n /**\n * Gets or sets value that indicates the lay outing `bounds` on the page.\n * @private\n */\n get: function () {\n return this.cellBounds;\n },\n set: function (value) {\n this.cellBounds = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BeginPageLayoutEventArgs.prototype, \"page\", {\n /**\n * Gets the `page` where the lay outing should start.\n * @private\n */\n get: function () {\n return this.pdfPage;\n },\n enumerable: true,\n configurable: true\n });\n return BeginPageLayoutEventArgs;\n}(PdfCancelEventArgs));\nexport { BeginPageLayoutEventArgs };\n/**\n * `EndPageLayoutEventArgs` class is alternate for end page layout events.\n */\nvar EndPageLayoutEventArgs = /** @class */ (function (_super) {\n __extends(EndPageLayoutEventArgs, _super);\n // Constructors\n /**\n * Initializes a new instance of the `EndPageLayoutEventArgs` class. with the specified 'PdfLayoutResult'.\n * @private\n */\n function EndPageLayoutEventArgs(result) {\n var _this = _super.call(this) || this;\n _this.layoutResult = result;\n return _this;\n }\n Object.defineProperty(EndPageLayoutEventArgs.prototype, \"result\", {\n // Properties\n /**\n * Gets the lay outing `result` of the page.\n * @private\n */\n get: function () {\n return this.layoutResult;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EndPageLayoutEventArgs.prototype, \"nextPage\", {\n /**\n * Gets or sets a value indicating the `next page` where the element should be layout.\n * @private\n */\n get: function () {\n return this.nextPdfPage;\n },\n set: function (value) {\n this.nextPdfPage = value;\n },\n enumerable: true,\n configurable: true\n });\n return EndPageLayoutEventArgs;\n}(PdfCancelEventArgs));\nexport { EndPageLayoutEventArgs };\n/**\n * `PdfGridBeginPageLayoutEventArgs` class is alternate for begin page layout events.\n */\nvar PdfGridBeginPageLayoutEventArgs = /** @class */ (function (_super) {\n __extends(PdfGridBeginPageLayoutEventArgs, _super);\n // Constructors\n /**\n * Initialize a new instance of `PdfGridBeginPageLayoutEventArgs` class.\n * @private\n */\n function PdfGridBeginPageLayoutEventArgs(bounds, page, startRow) {\n var _this = _super.call(this, bounds, page) || this;\n _this.startRow = startRow;\n return _this;\n }\n Object.defineProperty(PdfGridBeginPageLayoutEventArgs.prototype, \"startRowIndex\", {\n // Properties\n /**\n * Gets the `start row index`.\n * @private\n */\n get: function () {\n return this.startRow;\n },\n enumerable: true,\n configurable: true\n });\n return PdfGridBeginPageLayoutEventArgs;\n}(BeginPageLayoutEventArgs));\nexport { PdfGridBeginPageLayoutEventArgs };\n/**\n * `PdfGridEndPageLayoutEventArgs` class is alternate for begin page layout events.\n */\nvar PdfGridEndPageLayoutEventArgs = /** @class */ (function (_super) {\n __extends(PdfGridEndPageLayoutEventArgs, _super);\n // Constructors\n /**\n * Initialize a new instance of `PdfGridEndPageLayoutEventArgs` class.\n * @private\n */\n function PdfGridEndPageLayoutEventArgs(result) {\n return _super.call(this, result) || this;\n }\n return PdfGridEndPageLayoutEventArgs;\n}(EndPageLayoutEventArgs));\nexport { PdfGridEndPageLayoutEventArgs };\nvar RowLayoutResult = /** @class */ (function () {\n //Constructors\n /**\n * Initializes a new instance of the `RowLayoutResult` class.\n * @private\n */\n function RowLayoutResult() {\n this.layoutedBounds = new RectangleF(0, 0, 0, 0);\n }\n Object.defineProperty(RowLayoutResult.prototype, \"isFinish\", {\n /**\n * Gets or sets a value indicating whether this instance `is finish`.\n * @private\n */\n get: function () {\n return this.bIsFinished;\n },\n set: function (value) {\n this.bIsFinished = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(RowLayoutResult.prototype, \"bounds\", {\n /**\n * Gets or sets the `bounds`.\n * @private\n */\n get: function () {\n return this.layoutedBounds;\n },\n set: function (value) {\n this.layoutedBounds = value;\n },\n enumerable: true,\n configurable: true\n });\n return RowLayoutResult;\n}());\nexport { RowLayoutResult };\n","import { PdfGrid } from './pdf-grid';\nimport { PdfGridCellStyle } from './styles/style';\nimport { PdfStringLayouter } from './../../graphics/fonts/string-layouter';\nimport { PdfDocument } from './../../document/pdf-document';\nimport { PdfStringFormat } from './../../graphics/fonts/pdf-string-format';\nimport { RectangleF, PointF, SizeF } from './../../drawing/pdf-drawing';\nimport { PdfDashStyle, PdfLineCap } from './../../graphics/enum';\nimport { PdfBorderOverlapStyle } from './../tables/light-tables/enum';\nimport { PdfSolidBrush } from './../../graphics/brushes/pdf-solid-brush';\nimport { PdfColor } from './../../graphics/pdf-color';\nimport { PdfImage } from './../../graphics/images/pdf-image';\nimport { PdfBitmap } from './../../graphics/images/pdf-bitmap';\nimport { PdfTextWebLink } from './../../annotations/pdf-text-web-link';\nimport { PdfLayoutType } from './../../graphics/figures/enum';\nimport { PdfGridLayouter, PdfGridLayoutFormat } from './../../structured-elements/grid/layout/grid-layouter';\nimport { PdfLayoutParams } from '../../../implementation/graphics/figures/base/element-layouter';\n/**\n * `PdfGridCell` class represents the schema of a cell in a 'PdfGrid'.\n */\nvar PdfGridCell = /** @class */ (function () {\n function PdfGridCell(row) {\n /**\n * `Width` of the cell.\n * @default 0\n * @private\n */\n this.cellWidth = 0;\n /**\n * `Height` of the cell.\n * @default 0\n * @private\n */\n this.cellHeight = 0;\n /**\n * `tempval`to stores current width .\n * @default 0\n * @private\n */\n this.tempval = 0;\n this.fontSpilt = false;\n /**\n * Specifies weather the `cell is drawn`.\n * @default true\n * @private\n */\n this.finsh = true;\n /**\n * The `remaining height` of row span.\n * @default 0\n * @private\n */\n this.rowSpanRemainingHeight = 0;\n this.hasRowSpan = false;\n this.hasColSpan = false;\n /**\n * the 'isFinish' is set to page finish\n */\n this.isFinish = true;\n /**\n * The `present' to store the current cell.\n * @default false\n * @private\n */\n this.present = false;\n this.gridRowSpan = 1;\n this.colSpan = 1;\n if (typeof row !== 'undefined') {\n this.gridRow = row;\n }\n }\n Object.defineProperty(PdfGridCell.prototype, \"isCellMergeContinue\", {\n //Properties\n get: function () {\n return this.internalIsCellMergeContinue;\n },\n set: function (value) {\n this.internalIsCellMergeContinue = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGridCell.prototype, \"isRowMergeContinue\", {\n get: function () {\n return this.internalIsRowMergeContinue;\n },\n set: function (value) {\n this.internalIsRowMergeContinue = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGridCell.prototype, \"isCellMergeStart\", {\n get: function () {\n return this.internalIsCellMergeStart;\n },\n set: function (value) {\n this.internalIsCellMergeStart = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGridCell.prototype, \"isRowMergeStart\", {\n get: function () {\n return this.internalIsRowMergeStart;\n },\n set: function (value) {\n this.internalIsRowMergeStart = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGridCell.prototype, \"remainingString\", {\n /**\n * Gets or sets the `remaining string` after the row split between pages.\n * @private\n */\n get: function () {\n return this.remaining;\n },\n set: function (value) {\n this.remaining = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGridCell.prototype, \"FinishedDrawingCell\", {\n /**\n * Gets or sets the `FinishedDrawingCell` .\n * @private\n */\n get: function () {\n return this.isFinish;\n },\n set: function (value) {\n this.isFinish = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGridCell.prototype, \"stringFormat\", {\n /**\n * Gets or sets the `string format`.\n * @private\n */\n get: function () {\n if (this.format == null) {\n this.format = new PdfStringFormat();\n }\n return this.format;\n },\n set: function (value) {\n this.format = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGridCell.prototype, \"row\", {\n /**\n * Gets or sets the parent `row`.\n * @private\n */\n get: function () {\n return this.gridRow;\n },\n set: function (value) {\n this.gridRow = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGridCell.prototype, \"value\", {\n /**\n * Gets or sets the `value` of the cell.\n * @private\n */\n get: function () {\n return this.objectValue;\n },\n set: function (value) {\n this.objectValue = value;\n if (this.objectValue instanceof PdfGrid) {\n this.row.grid.isSingleGrid = false;\n var grid = this.objectValue;\n grid.ParentCell = this;\n this.objectValue.isChildGrid = true;\n var rowCount = this.row.grid.rows.count;\n for (var i = 0; i < rowCount; i++) {\n var row = this.row.grid.rows.getRow(i);\n var colCount = row.cells.count;\n for (var j = 0; j < colCount; j++) {\n var cell = row.cells.getCell(j);\n cell.parent = this;\n }\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGridCell.prototype, \"rowSpan\", {\n /**\n * Gets or sets a value that indicates the total number of rows that cell `spans` within a PdfGrid.\n * @private\n */\n get: function () {\n return this.gridRowSpan;\n },\n set: function (value) {\n if (value < 1) {\n throw new Error('ArgumentException : Invalid span specified, must be greater than or equal to 1');\n }\n else {\n this.gridRowSpan = value;\n this.row.rowSpanExists = true;\n this.row.grid.hasRowSpanSpan = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGridCell.prototype, \"style\", {\n /**\n * Gets or sets the cell `style`.\n * @private\n */\n get: function () {\n if (this.cellStyle == null) {\n this.cellStyle = new PdfGridCellStyle();\n }\n return this.cellStyle;\n },\n set: function (value) {\n this.cellStyle = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGridCell.prototype, \"height\", {\n /**\n * Gets the `height` of the PdfGrid cell.[Read-Only].\n * @private\n */\n get: function () {\n if (this.cellHeight === 0) {\n this.cellHeight = this.measureHeight();\n }\n return this.cellHeight;\n },\n set: function (value) {\n this.cellHeight = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGridCell.prototype, \"columnSpan\", {\n /**\n * Gets or sets a value that indicates the total number of columns that cell `spans` within a PdfGrid.\n * @private\n */\n get: function () {\n return this.colSpan;\n },\n set: function (value) {\n if (value < 1) {\n throw Error('Invalid span specified, must be greater than or equal to 1');\n }\n else {\n this.colSpan = value;\n this.row.columnSpanExists = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGridCell.prototype, \"width\", {\n /**\n * Gets the `width` of the PdfGrid cell.[Read-Only].\n * @private\n */\n get: function () {\n if (this.cellWidth === 0 || this.row.grid.isComplete) {\n this.cellWidth = this.measureWidth();\n }\n return Math.round(this.cellWidth);\n },\n set: function (value) {\n this.cellWidth = value;\n },\n enumerable: true,\n configurable: true\n });\n //Implementation\n /**\n * `Calculates the width`.\n * @private\n */\n PdfGridCell.prototype.measureWidth = function () {\n // .. Calculate the cell text width.\n // .....Add border widths, cell spacings and paddings to the width.\n var width = 0;\n var layouter = new PdfStringLayouter();\n if (typeof this.objectValue === 'string') {\n /* tslint:disable */\n var slr = layouter.layout(this.objectValue, this.getTextFont(), this.stringFormat, new SizeF(Number.MAX_VALUE, Number.MAX_VALUE), false, new SizeF(0, 0));\n width += slr.actualSize.width;\n width += (this.style.borders.left.width + this.style.borders.right.width) * 2;\n }\n else if (this.objectValue instanceof PdfGrid) {\n width = this.objectValue.size.width;\n //width += this.objectValue.style.cellSpacing;\n }\n else if (this.objectValue instanceof PdfImage || this.objectValue instanceof PdfBitmap) {\n width += this.objectValue.width;\n }\n else if (this.objectValue instanceof PdfTextWebLink) {\n var webLink = this.objectValue;\n var result = layouter.layout(webLink.text, webLink.font, webLink.stringFormat, new SizeF(0, 0), false, new SizeF(0, 0));\n /* tslint:enable */\n width += result.actualSize.width;\n width += (this.style.borders.left.width + this.style.borders.right.width) * 2;\n }\n if (!(this.objectValue instanceof PdfGrid)) {\n if (this.style.cellPadding != null) {\n width += (this.style.cellPadding.left + this.style.cellPadding.right);\n }\n else {\n width += (this.row.grid.style.cellPadding.left + this.row.grid.style.cellPadding.right);\n }\n }\n else {\n if (this.style.cellPadding != null || typeof this.style.cellPadding !== 'undefined') {\n if (typeof this.style.cellPadding.left !== 'undefined' && this.style.cellPadding.hasLeftPad) {\n width += this.style.cellPadding.left;\n }\n if (typeof this.style.cellPadding.right !== 'undefined' && this.style.cellPadding.hasRightPad) {\n width += this.style.cellPadding.right;\n }\n }\n else {\n if (typeof this.row.grid.style.cellPadding.left !== 'undefined' && this.row.grid.style.cellPadding.hasLeftPad) {\n width += this.row.grid.style.cellPadding.left;\n }\n if (typeof this.row.grid.style.cellPadding.right !== 'undefined' && this.row.grid.style.cellPadding.hasRightPad) {\n width += this.row.grid.style.cellPadding.right;\n }\n }\n }\n width += this.row.grid.style.cellSpacing;\n return width;\n };\n /**\n * Draw the `cell background`.\n * @private\n */\n PdfGridCell.prototype.drawCellBackground = function (graphics, bounds) {\n var backgroundBrush = this.getBackgroundBrush();\n //graphics.isTemplateGraphics = true;\n if (backgroundBrush != null) {\n graphics.save();\n graphics.drawRectangle(backgroundBrush, bounds.x, bounds.y, bounds.width, bounds.height);\n graphics.restore();\n }\n if (this.style.backgroundImage != null) {\n var image = this.getBackgroundImage();\n graphics.drawImage(this.style.backgroundImage, bounds.x, bounds.y, bounds.width, bounds.height);\n }\n };\n /**\n * `Adjusts the text layout area`.\n * @private\n */\n /* tslint:disable */\n PdfGridCell.prototype.adjustContentLayoutArea = function (bounds) {\n //Add Padding value to its Cell Bounds\n var returnBounds = new RectangleF(bounds.x, bounds.y, bounds.width, bounds.height);\n if (!(this.objectValue instanceof PdfGrid)) {\n if (typeof this.style.cellPadding === 'undefined' || this.style.cellPadding == null) {\n returnBounds.x += this.gridRow.grid.style.cellPadding.left + this.cellStyle.borders.left.width;\n returnBounds.y += this.gridRow.grid.style.cellPadding.top + this.cellStyle.borders.top.width;\n returnBounds.width -= (this.gridRow.grid.style.cellPadding.right + this.gridRow.grid.style.cellPadding.left);\n returnBounds.height -= (this.gridRow.grid.style.cellPadding.bottom + this.gridRow.grid.style.cellPadding.top);\n returnBounds.height -= (this.cellStyle.borders.top.width + this.cellStyle.borders.bottom.width);\n }\n else {\n returnBounds.x += this.style.cellPadding.left + this.cellStyle.borders.left.width;\n returnBounds.y += this.style.cellPadding.top + this.cellStyle.borders.top.width;\n returnBounds.width -= (this.style.cellPadding.right + this.style.cellPadding.left);\n returnBounds.width -= (this.cellStyle.borders.left.width + this.cellStyle.borders.right.width);\n returnBounds.height -= (this.style.cellPadding.bottom + this.style.cellPadding.top);\n returnBounds.height -= (this.cellStyle.borders.top.width + this.cellStyle.borders.bottom.width);\n if (this.rowSpan === 1) {\n returnBounds.width -= (this.style.borders.left.width);\n }\n }\n }\n else {\n if (this.style.cellPadding == null || typeof this.style.cellPadding === 'undefined') {\n if (typeof this.gridRow.grid.style.cellPadding.left !== 'undefined' && this.gridRow.grid.style.cellPadding.hasLeftPad) {\n returnBounds.x += this.gridRow.grid.style.cellPadding.left + this.cellStyle.borders.left.width;\n returnBounds.width -= this.gridRow.grid.style.cellPadding.left;\n }\n if (typeof this.gridRow.grid.style.cellPadding.top !== 'undefined' && this.gridRow.grid.style.cellPadding.hasTopPad) {\n returnBounds.y += this.gridRow.grid.style.cellPadding.top + this.cellStyle.borders.top.width;\n returnBounds.height -= this.gridRow.grid.style.cellPadding.top;\n }\n if (typeof this.gridRow.grid.style.cellPadding.right !== 'undefined' && this.gridRow.grid.style.cellPadding.hasRightPad) {\n returnBounds.width -= this.gridRow.grid.style.cellPadding.right;\n }\n if (typeof this.gridRow.grid.style.cellPadding.bottom !== 'undefined' && this.gridRow.grid.style.cellPadding.hasBottomPad) {\n returnBounds.height -= this.gridRow.grid.style.cellPadding.bottom;\n }\n }\n else {\n if (typeof this.style.cellPadding.left !== 'undefined' && this.style.cellPadding.hasLeftPad) {\n returnBounds.x += this.style.cellPadding.left + this.cellStyle.borders.left.width;\n returnBounds.width -= this.style.cellPadding.left;\n }\n if (typeof this.style.cellPadding.top !== 'undefined' && this.style.cellPadding.hasTopPad) {\n returnBounds.y += this.style.cellPadding.top + this.cellStyle.borders.top.width;\n returnBounds.height -= this.style.cellPadding.top;\n }\n if (typeof this.style.cellPadding.right !== 'undefined' && this.style.cellPadding.hasRightPad) {\n returnBounds.width -= this.style.cellPadding.right;\n }\n if (typeof this.style.cellPadding.bottom !== 'undefined' && this.style.cellPadding.hasBottomPad) {\n returnBounds.height -= this.style.cellPadding.bottom;\n }\n }\n returnBounds.width -= (this.cellStyle.borders.left.width + this.cellStyle.borders.right.width);\n returnBounds.height -= (this.cellStyle.borders.top.width + this.cellStyle.borders.bottom.width);\n }\n return returnBounds;\n };\n /**\n * `Draws` the specified graphics.\n * @private\n */\n PdfGridCell.prototype.draw = function (graphics, bounds, cancelSubsequentSpans) {\n var isrowbreak = false;\n /*if (!this.row.grid.isSingleGrid)\n {\n //Check whether the Grid Span to Nextpage\n if ((this.remainingString != null) || (PdfGridLayouter.repeatRowIndex != -1))\n {\n this.DrawParentCells(graphics, bounds, true);\n }\n else if (this.row.grid.rows.count > 1)\n {\n for (let i : number = 0; i < this.row.grid.rows.count; i++)\n {\n if (this.row == this.row.grid.rows.getRow(i))\n {\n if (this.row.grid.rows.getRow(i).rowBreakHeight > 0)\n isrowbreak = true;\n if ((i > 0) && (isrowbreak))\n this.DrawParentCells(graphics, bounds, false);\n }\n }\n }\n } */\n var result = null;\n /*if (cancelSubsequentSpans)\n {\n //..Cancel all subsequent cell spans, if no space exists.\n let currentCellIndex : number = this.row.cells.indexOf(this);\n for (let i : number = currentCellIndex + 1; i <= currentCellIndex + this.colSpan; i++)\n {\n this.row.cells.getCell(i).isCellMergeContinue = false;\n this.row.cells.getCell(i).isRowMergeContinue = false;\n }\n this.colSpan = 1;\n }*/\n //..Skip cells which were already covered by spanmap.\n if (this.internalIsCellMergeContinue || this.internalIsRowMergeContinue) {\n if (this.internalIsCellMergeContinue && this.row.grid.style.allowHorizontalOverflow) {\n if ((this.row.rowOverflowIndex > 0 && (this.row.cells.indexOf(this) != this.row.rowOverflowIndex + 1)) || (this.row.rowOverflowIndex == 0 && this.internalIsCellMergeContinue)) {\n return result;\n }\n }\n else {\n return result;\n }\n }\n //Adjust bounds with Row and Column Spacing\n bounds = this.adjustOuterLayoutArea(bounds, graphics);\n this.drawCellBackground(graphics, bounds);\n var textPen = this.getTextPen();\n var textBrush = this.getTextBrush();\n if (typeof textPen === 'undefined' && typeof textBrush === 'undefined') {\n textBrush = new PdfSolidBrush(new PdfColor(0, 0, 0));\n }\n var font = this.getTextFont();\n var strFormat = this.getStringFormat();\n var innerLayoutArea = bounds;\n if (innerLayoutArea.height >= graphics.clientSize.height) {\n // If to break row to next page.\n if (this.row.grid.allowRowBreakAcrossPages) {\n innerLayoutArea.height -= innerLayoutArea.y;\n if (typeof this._rowHeight !== 'undefined' && this._rowHeight !== null && innerLayoutArea.height > this._rowHeight) {\n innerLayoutArea.height = this._rowHeight;\n }\n //bounds.height -= bounds.y;\n // if(this.row.grid.isChildGrid)\n // {\n // innerLayoutArea.height -= this.row.grid.ParentCell.row.grid.style.cellPadding.bottom;\n // }\n }\n // if user choose to cut the row whose height is more than page height.\n // else\n // {\n // innerLayoutArea.height = graphics.clientSize.height;\n // bounds.height = graphics.clientSize.height;\n // }\n }\n innerLayoutArea = this.adjustContentLayoutArea(innerLayoutArea);\n if (typeof this.objectValue === 'string' || typeof this.remaining === 'string') {\n var temp = void 0;\n var layoutRectangle = void 0;\n if (innerLayoutArea.height < font.height)\n layoutRectangle = new RectangleF(innerLayoutArea.x, innerLayoutArea.y, innerLayoutArea.width, font.height);\n else\n layoutRectangle = innerLayoutArea;\n if (innerLayoutArea.height < font.height && this.row.grid.isChildGrid && this.row.grid.ParentCell != null) {\n var height = layoutRectangle.height - this.row.grid.ParentCell.row.grid.style.cellPadding.bottom - this.row.grid.style.cellPadding.bottom;\n if (this.row.grid.splitChildRowIndex != -1) {\n this.fontSpilt = true;\n this.row.rowFontSplit = true;\n }\n if (height > 0 && height < font.height)\n layoutRectangle.height = height;\n // else if (height + this.row.grid.style.cellPadding.bottom > 0 && height + this.row.grid.style.cellPadding.bottom < font.height)\n // layoutRectangle.height = height + this.row.grid.style.cellPadding.bottom;\n // else if (bounds.height < font.height)\n // layoutRectangle.height = bounds.height;\n // else if (bounds.height - this.row.grid.ParentCell.row.grid.style.cellPadding.bottom < font.height)\n // layoutRectangle.height = bounds.height - this.row.grid.ParentCell.row.grid.style.cellPadding.bottom; \n }\n if (this.gridRow.grid.style.cellSpacing != 0) {\n layoutRectangle.width -= this.gridRow.grid.style.cellSpacing;\n bounds.width -= this.gridRow.grid.style.cellSpacing;\n }\n if (this.isFinish) {\n // if (this.row.grid.splitChildRowIndex != -1 && !this.row.grid.isChildGrid && typeof this.remaining === 'undefined'){\n // this.remaining = '';\n // graphics.drawString(this.remaining, font, textPen, textBrush, layoutRectangle.x, layoutRectangle.y, layoutRectangle.width, layoutRectangle.height, strFormat);\n // } else {\n temp = this.remaining === '' ? this.remaining : this.objectValue;\n graphics.drawString(temp, font, textPen, textBrush, layoutRectangle.x, layoutRectangle.y, layoutRectangle.width, layoutRectangle.height, strFormat);\n if (this.row.grid.splitChildRowIndex != -1 && !this.row.grid.isChildGrid && typeof this.remaining === 'undefined') {\n this.remaining = '';\n //graphics.drawString(this.remaining, font, textPen, textBrush, layoutRectangle.x, layoutRectangle.y, layoutRectangle.width, layoutRectangle.height, strFormat);\n }\n }\n else {\n if (typeof this.remaining == 'undefined' || this.remaining === null) {\n this.remaining = '';\n }\n if (this.row.repeatFlag) {\n graphics.drawString(this.remaining, font, textPen, textBrush, layoutRectangle.x, layoutRectangle.y, layoutRectangle.width, layoutRectangle.height, strFormat);\n }\n // else {\n // if(this.row.grid.ParentCell.row.repeatFlag) {\n // graphics.drawString((this.remaining as string), font, textPen, textBrush, layoutRectangle.x, layoutRectangle.y, layoutRectangle.width, layoutRectangle.height, strFormat); \n // } else {\n // layoutRectangle.height = this.row.height;\n // graphics.drawString((this.objectValue as string), font, textPen, textBrush, layoutRectangle.x, layoutRectangle.y, layoutRectangle.width, layoutRectangle.height, strFormat);\n // bounds.height = this.row.height;\n // }\n // }\n this.isFinish = true;\n //graphics.drawString((this.remaining as string), font, textPen, textBrush, layoutRectangle.x, layoutRectangle.y, layoutRectangle.width, layoutRectangle.height, strFormat);\n }\n result = graphics.stringLayoutResult;\n // if(this.row.grid.isChildGrid && this.row.rowBreakHeight > 0 && result !=null) {\n // bounds.height -= this.row.grid.ParentCell.row.grid.style.cellPadding.bottom;\n // }\n }\n else if (this.objectValue instanceof PdfGrid) {\n var childGrid = this.objectValue;\n childGrid.isChildGrid = true;\n childGrid.ParentCell = this;\n var layoutRect = void 0;\n layoutRect = innerLayoutArea;\n if (this.gridRow.grid.style.cellSpacing != 0) {\n bounds.width -= this.gridRow.grid.style.cellSpacing;\n }\n // layoutRect = bounds;\n // if (this.style.cellPadding != null){\n // layoutRect = bounds; \n // } else if((this.row.grid.style.cellPadding != null) && (childGrid.style.cellPadding.bottom === 0.5) && (childGrid.style.cellPadding.top === 0.5)\n // && (childGrid.style.cellPadding.left === 5.76) && (childGrid.style.cellPadding.right === 5.76)\n // && (this.gridRow.grid.style.cellSpacing === 0) && (childGrid.style.cellSpacing === 0)) {\n // layoutRect = innerLayoutArea;\n // }\n // if(this.objectValue.style.cellPadding != null && typeof this.objectValue.style.cellPadding !== 'undefined'){\n // layoutRect = bounds;\n // } \n var layouter = new PdfGridLayouter(childGrid);\n var format = new PdfGridLayoutFormat();\n if (this.row.grid.LayoutFormat != null)\n format = this.row.grid.LayoutFormat;\n else\n format.layout = PdfLayoutType.Paginate;\n var param = new PdfLayoutParams();\n if (graphics.layer != null) {\n // Define layout parameters.\n param.page = graphics.page;\n param.bounds = layoutRect;\n param.format = format;\n //Set the span \n childGrid.setSpan();\n childGrid.checkSpan();\n // Draw the child grid.\n var childGridResult = layouter.Layouter(param);\n //let childGridResult : PdfLayoutResult = layouter.innerLayout(param);\n this.value = childGrid;\n if (this.row.grid.splitChildRowIndex !== -1) {\n this.height = this.row.rowBreakHeightValue;\n }\n if (param.page != childGridResult.page) //&& (isWidthGreaterthanParent != true))\n {\n childGridResult.bounds.height = this.row.rowBreakHeightValue;\n if (this.row.rowBreakHeight == 0)\n this.row.NestedGridLayoutResult = childGridResult;\n else\n this.row.rowBreakHeight = this.row.rowBreakHeightValue;\n //bounds.height = this.row.rowBreakHeight;\n //After drawing paginated nested grid, the bounds of the parent grid in start page should be corrected for borders.\n //bounds.height = graphics.clientSize.height - bounds.y;\n }\n }\n }\n else if (this.objectValue instanceof PdfImage || this.objectValue instanceof PdfBitmap) {\n var imageBounds = void 0;\n if (this.objectValue.width <= innerLayoutArea.width) {\n imageBounds = new RectangleF(innerLayoutArea.x, innerLayoutArea.y, this.objectValue.width, innerLayoutArea.height);\n }\n else {\n imageBounds = innerLayoutArea;\n }\n graphics.drawImage(this.objectValue, imageBounds.x, imageBounds.y, imageBounds.width, imageBounds.height);\n }\n else if (this.objectValue instanceof PdfTextWebLink) {\n this.objectValue.draw(graphics.currentPage, innerLayoutArea);\n }\n else if (typeof this.objectValue === 'undefined') {\n this.objectValue = \"\";\n graphics.drawString(this.objectValue, font, textPen, textBrush, innerLayoutArea.x, innerLayoutArea.y, innerLayoutArea.width, innerLayoutArea.height, strFormat);\n if (this.style.cellPadding != null && this.style.cellPadding.bottom == 0 && this.style.cellPadding.left == 0 && this.style.cellPadding.right == 0 && this.style.cellPadding.top == 0) {\n bounds.width -= (this.style.borders.left.width + this.style.borders.right.width);\n }\n if (this.gridRow.grid.style.cellSpacing != 0) {\n bounds.width -= this.gridRow.grid.style.cellSpacing;\n }\n }\n if (this.style.borders != null) {\n if (!this.fontSpilt)\n this.drawCellBorders(graphics, bounds);\n else {\n if (this.row.grid.ParentCell.row.grid.splitChildRowIndex != -1) {\n this.row.rowFontSplit = false;\n this.drawCellBorders(graphics, bounds);\n }\n }\n }\n return result;\n };\n /* tslint:enable */\n /**\n * Draws the `cell border` constructed by drawing lines.\n * @private\n */\n PdfGridCell.prototype.drawCellBorders = function (graphics, bounds) {\n if (this.row.grid.style.borderOverlapStyle === PdfBorderOverlapStyle.Inside) {\n bounds.x += this.style.borders.left.width;\n bounds.y += this.style.borders.top.width;\n bounds.width -= this.style.borders.right.width;\n bounds.height -= this.style.borders.bottom.width;\n }\n var p1 = new PointF(bounds.x, bounds.y + bounds.height);\n var p2 = new PointF(bounds.x, bounds.y);\n var pen = this.cellStyle.borders.left;\n if (this.cellStyle.borders.left.dashStyle === PdfDashStyle.Solid) {\n pen.lineCap = PdfLineCap.Square;\n }\n // SetTransparency(ref graphics, pen);\n if (pen.width !== 0) {\n graphics.drawLine(pen, p1, p2);\n }\n p1 = new PointF(bounds.x + bounds.width, bounds.y);\n p2 = new PointF(bounds.x + bounds.width, bounds.y + bounds.height);\n pen = this.cellStyle.borders.right;\n if ((bounds.x + bounds.width) > (graphics.clientSize.width - (pen.width / 2))) {\n p1 = new PointF(graphics.clientSize.width - (pen.width / 2), bounds.y);\n p2 = new PointF(graphics.clientSize.width - (pen.width / 2), bounds.y + bounds.height);\n }\n if (this.cellStyle.borders.right.dashStyle === PdfDashStyle.Solid) {\n pen.lineCap = PdfLineCap.Square;\n }\n if (pen.width !== 0) {\n graphics.drawLine(pen, p1, p2);\n }\n p1 = new PointF(bounds.x, bounds.y);\n p2 = new PointF(bounds.x + bounds.width, bounds.y);\n pen = this.cellStyle.borders.top;\n if (this.cellStyle.borders.top.dashStyle === PdfDashStyle.Solid) {\n pen.lineCap = PdfLineCap.Square;\n }\n if (pen.width !== 0) {\n graphics.drawLine(pen, p1, p2);\n }\n p1 = new PointF(bounds.x + bounds.width, bounds.y + bounds.height);\n p2 = new PointF(bounds.x, bounds.y + bounds.height);\n pen = this.cellStyle.borders.bottom;\n if ((bounds.y + bounds.height) > (graphics.clientSize.height - (pen.width / 2))) {\n p1 = new PointF((bounds.x + bounds.width), (graphics.clientSize.height - (pen.width / 2)));\n p2 = new PointF(bounds.x, (graphics.clientSize.height - (pen.width / 2)));\n }\n if (this.cellStyle.borders.bottom.dashStyle === PdfDashStyle.Solid) {\n pen.lineCap = PdfLineCap.Square;\n }\n if (pen.width !== 0) {\n graphics.drawLine(pen, p1, p2);\n }\n };\n // private setTransparency(graphics : PdfGraphics, pen : PdfPen) : void {\n // let alpha : number = (pen.color.a / 255) as number;\n // graphics.save();\n // graphics.setTransparency(alpha);\n // }\n /**\n * `Adjusts the outer layout area`.\n * @private\n */\n /* tslint:disable */\n PdfGridCell.prototype.adjustOuterLayoutArea = function (bounds, g) {\n var isHeader = false;\n var cellSpacing = this.row.grid.style.cellSpacing;\n if (cellSpacing > 0) {\n bounds = new RectangleF(bounds.x + cellSpacing, bounds.y + cellSpacing, bounds.width - cellSpacing, bounds.height - cellSpacing);\n }\n var currentColIndex = this.row.cells.indexOf(this);\n if (this.columnSpan > 1 || (this.row.rowOverflowIndex > 0 && (currentColIndex == this.row.rowOverflowIndex + 1) && this.isCellMergeContinue)) {\n var span = this.columnSpan;\n if (span == 1 && this.isCellMergeContinue) {\n for (var j = currentColIndex + 1; j < this.row.grid.columns.count; j++) {\n if (this.row.cells.getCell(j).isCellMergeContinue)\n span++;\n else\n break;\n }\n }\n var totalWidth = 0;\n for (var i = currentColIndex; i < currentColIndex + span; i++) {\n if (this.row.grid.style.allowHorizontalOverflow) {\n var width = void 0;\n var compWidth = this.row.grid.size.width < g.clientSize.width ? this.row.grid.size.width : g.clientSize.width;\n if (this.row.grid.size.width > g.clientSize.width) {\n width = bounds.x + totalWidth + this.row.grid.columns.getColumn(i).width;\n }\n else {\n width = totalWidth + this.row.grid.columns.getColumn(i).width;\n }\n if (width > compWidth) {\n break;\n }\n }\n totalWidth += this.row.grid.columns.getColumn(i).width;\n }\n totalWidth -= this.row.grid.style.cellSpacing;\n bounds.width = totalWidth;\n }\n if (this.rowSpan > 1 || this.row.rowSpanExists) {\n var span = this.rowSpan;\n var currentRowIndex = this.row.grid.rows.rowCollection.indexOf(this.row);\n if (currentRowIndex == -1) {\n currentRowIndex = this.row.grid.headers.indexOf(this.row);\n if (currentRowIndex != -1) {\n isHeader = true;\n }\n }\n // if (span == 1 && this.isCellMergeContinue) {\n // for (let j : number = currentRowIndex + 1; j < this.row.grid.rows.count; j++)\n // {\n // let flag : boolean = (isHeader ? this.row.grid.headers.getHeader(j).cells.getCell(currentColIndex).isCellMergeContinue : this.row.grid.rows.getRow(j).cells.getCell(currentColIndex).isCellMergeContinue);\n // if (flag)\n // span++;\n // else\n // break;\n // }\n // }\n var totalHeight = 0;\n var max = 0;\n for (var i = currentRowIndex; i < currentRowIndex + span; i++) {\n totalHeight += (isHeader ? this.row.grid.headers.getHeader(i).height : this.row.grid.rows.getRow(i).height);\n var row = this.row.grid.rows.getRow(i);\n var rowIndex = this.row.grid.rows.rowCollection.indexOf(row);\n /*if (this.rowSpan > 1)\n {\n for (let k : number = 0; k < this.row.cells.count; k++) {\n let cell : PdfGridCell = this.row.cells.getCell(k);\n if(cell.rowSpan>1)\n {\n let tempHeight : number =0;\n \n for (let j :number = i; j < i +cell.rowSpan; j++)\n {\n if (!this.row.grid.rows.getRow(j).isRowSpanRowHeightSet)\n this.row.grid.rows.getRow(j).isRowHeightSet = false;\n tempHeight += this.row.grid.rows.getRow(j).height;\n if (!this.row.grid.rows.getRow(j).isRowSpanRowHeightSet)\n this.row.grid.rows.getRow(j).isRowHeightSet = true;\n }\n //To check the Row spanned cell height is greater than the total spanned row height.\n if(cell.height>tempHeight)\n {\n if (max < (cell.height - tempHeight))\n {\n max = cell.height - tempHeight;\n if (this.rowSpanRemainingHeight != 0 && max > this.rowSpanRemainingHeight)\n {\n max += this.rowSpanRemainingHeight;\n }\n let index :number = row.cells.indexOf(cell);\n //set the m_rowspanRemainingHeight to last rowspanned row.\n this.row.grid.rows.getRow((rowIndex +cell.rowSpan) - 1).cells.getCell(index).rowSpanRemainingHeight = max;\n this.rowSpanRemainingHeight = this.row.grid.rows.getRow((rowIndex + cell.rowSpan) - 1).cells.getCell(index).rowSpanRemainingHeight;\n }\n }\n }\n }\n }\n if (!this.row.grid.rows.getRow(i).isRowSpanRowHeightSet)\n this.row.grid.rows.getRow(i).isRowHeightSet = true;*/\n }\n var cellIndex = this.row.cells.indexOf(this);\n totalHeight -= this.row.grid.style.cellSpacing;\n // if (this.row.cells.getCell(cellIndex).height > totalHeight && (!this.row.grid.rows.getRow((currentRowIndex + span) - 1).isRowHeightSet)) {\n // this.row.grid.rows.getRow((currentRowIndex + span) - 1).cells.getCell(cellIndex).rowSpanRemainingHeight = this.row.cells.getCell(cellIndex).height - totalHeight;\n // totalHeight = this.row.cells.getCell(cellIndex).height;\n // bounds.height = totalHeight;\n // } else {\n bounds.height = totalHeight;\n // }\n if (!this.row.rowMergeComplete) {\n bounds.height = totalHeight;\n }\n }\n return bounds;\n };\n /* tslint:enable */\n /**\n * Gets the `text font`.\n * @private\n */\n PdfGridCell.prototype.getTextFont = function () {\n if (typeof this.style.font !== 'undefined' && this.style.font != null) {\n return this.style.font;\n }\n else if (typeof this.row.style.font !== 'undefined' && this.row.style.font != null) {\n return this.row.style.font;\n }\n else if (typeof this.row.grid.style.font !== 'undefined' && this.row.grid.style.font != null) {\n return this.row.grid.style.font;\n }\n else {\n return PdfDocument.defaultFont;\n }\n };\n /**\n * Gets the `text brush`.\n * @private\n */\n PdfGridCell.prototype.getTextBrush = function () {\n if (typeof this.style.textBrush !== 'undefined' && this.style.textBrush != null) {\n return this.style.textBrush;\n }\n else if (typeof this.row.style.textBrush !== 'undefined' && this.row.style.textBrush != null) {\n return this.row.style.textBrush;\n }\n else {\n return this.row.grid.style.textBrush;\n }\n };\n /**\n * Gets the `text pen`.\n * @private\n */\n PdfGridCell.prototype.getTextPen = function () {\n if (typeof this.style.textPen !== 'undefined' && this.style.textPen != null) {\n return this.style.textPen;\n }\n else if (typeof this.row.style.textPen !== 'undefined' && this.row.style.textPen != null) {\n return this.row.style.textPen;\n }\n else {\n return this.row.grid.style.textPen;\n }\n };\n /**\n * Gets the `background brush`.\n * @private\n */\n PdfGridCell.prototype.getBackgroundBrush = function () {\n if (typeof this.style.backgroundBrush !== 'undefined' && this.style.backgroundBrush != null) {\n return this.style.backgroundBrush;\n }\n else if (typeof this.row.style.backgroundBrush !== 'undefined' && this.row.style.backgroundBrush != null) {\n return this.row.style.backgroundBrush;\n }\n else {\n return this.row.grid.style.backgroundBrush;\n }\n };\n /**\n * Gets the `background image`.\n * @private\n */\n PdfGridCell.prototype.getBackgroundImage = function () {\n if (typeof this.style.backgroundImage !== 'undefined' && this.style.backgroundImage != null) {\n return this.style.backgroundImage;\n }\n else if (typeof this.row.style.backgroundImage !== 'undefined' && this.row.style.backgroundImage != null) {\n return this.row.style.backgroundImage;\n }\n else {\n return this.row.grid.style.backgroundImage;\n }\n };\n /**\n * Gets the current `StringFormat`.\n * @private\n */\n PdfGridCell.prototype.getStringFormat = function () {\n if (typeof this.style.stringFormat !== 'undefined' && this.style.stringFormat != null) {\n return this.style.stringFormat;\n }\n else {\n return this.stringFormat;\n }\n };\n /**\n * Calculates the `height`.\n * @private\n */\n PdfGridCell.prototype.measureHeight = function () {\n // .. Calculate the cell text height.\n // .....Add border widths, cell spacings and paddings to the height.\n var width = this.calculateWidth();\n // //check whether the Current PdfGridCell has padding\n if (this.style.cellPadding == null || typeof this.style.cellPadding === 'undefined') {\n width -= (this.gridRow.grid.style.cellPadding.right + this.gridRow.grid.style.cellPadding.left);\n //width -= (this.style.borders.left.width + this.style.borders.right.width);\n }\n else {\n width -= (this.style.cellPadding.right + this.style.cellPadding.left);\n width -= (this.style.borders.left.width + this.style.borders.right.width);\n }\n var height = 0;\n var layouter = new PdfStringLayouter();\n if (typeof this.objectValue === 'string' || typeof this.remaining === 'string') {\n var currentValue = this.objectValue;\n /* tslint:disable */\n if (!this.isFinish)\n currentValue = !(this.remaining === null || this.remaining === '' ||\n typeof this.remaining === 'undefined') ? this.remaining : this.objectValue;\n var slr = null;\n var cellIndex = this.row.cells.indexOf(this);\n if (this.gridRow.grid.style.cellSpacing != 0) {\n width -= this.gridRow.grid.style.cellSpacing * 2;\n }\n if (!this.row.cells.getCell(cellIndex).hasColSpan && !this.row.cells.getCell(cellIndex).hasRowSpan) {\n if (this.gridRow.grid.isChildGrid) {\n if (width < 0) {\n this.tempval = width;\n if (this.style.cellPadding == null || typeof this.style.cellPadding === 'undefined') {\n this.tempval += (this.gridRow.grid.style.cellPadding.right + this.gridRow.grid.style.cellPadding.left);\n }\n else {\n this.tempval += (this.style.cellPadding.right + this.style.cellPadding.left);\n this.tempval += (this.style.borders.left.width + this.style.borders.right.width);\n }\n }\n else {\n this.tempval = width;\n }\n slr = layouter.layout(currentValue, this.getTextFont(), this.stringFormat, new SizeF(this.tempval, 0), false, new SizeF(0, 0));\n height += slr.actualSize.height;\n }\n else {\n slr = layouter.layout(currentValue, this.getTextFont(), this.stringFormat, new SizeF(width, 0), false, new SizeF(0, 0));\n height += slr.actualSize.height;\n }\n }\n /* tslint:enable */\n height += (this.style.borders.top.width + this.style.borders.bottom.width) * 2;\n }\n else if (this.objectValue instanceof PdfGrid) {\n var cellIndex = this.row.cells.indexOf(this);\n var internalWidth = 0;\n if ((this.style.cellPadding != null || typeof this.style.cellPadding !== 'undefined')) {\n internalWidth = this.calculateWidth();\n if (typeof this.style.cellPadding.left !== 'undefined' && this.style.cellPadding.hasLeftPad) {\n internalWidth -= this.style.cellPadding.left;\n }\n if (typeof this.style.cellPadding.right !== 'undefined' && this.style.cellPadding.hasRightPad) {\n internalWidth -= this.style.cellPadding.right;\n }\n }\n else if ((this.row.grid.style.cellPadding != null || typeof this.row.grid.style.cellPadding !== 'undefined')) {\n internalWidth = this.calculateWidth();\n if (typeof this.row.grid.style.cellPadding.left !== 'undefined' && this.row.grid.style.cellPadding.hasLeftPad) {\n internalWidth -= this.row.grid.style.cellPadding.left;\n }\n if (typeof this.row.grid.style.cellPadding.right !== 'undefined' && this.row.grid.style.cellPadding.hasRightPad) {\n internalWidth -= this.row.grid.style.cellPadding.right;\n }\n }\n else {\n internalWidth = this.calculateWidth();\n }\n this.objectValue.tempWidth = internalWidth;\n if (!this.row.cells.getCell(cellIndex).hasColSpan && !this.row.cells.getCell(cellIndex).hasRowSpan) {\n height = this.objectValue.size.height;\n }\n else {\n height += (this.style.borders.top.width + this.style.borders.bottom.width) * 2;\n }\n if (this.gridRow.grid.style.cellSpacing !== 0) {\n width -= this.gridRow.grid.style.cellSpacing * 2;\n //height += (this.row.grid.style.cellPadding.top + this.row.grid.style.cellPadding.bottom);\n }\n if (this.style.cellPadding != null || typeof this.style.cellPadding !== 'undefined') {\n if (typeof this.row.grid.style.cellPadding.top !== 'undefined' && this.row.grid.style.cellPadding.hasTopPad) {\n height += this.row.grid.style.cellPadding.top;\n }\n if (this.row.grid.style.cellPadding.hasBottomPad && typeof this.row.grid.style.cellPadding.bottom !== 'undefined') {\n height += this.row.grid.style.cellPadding.bottom;\n }\n }\n height += this.objectValue.style.cellSpacing;\n }\n else if (this.objectValue instanceof PdfImage || this.objectValue instanceof PdfBitmap) {\n height += this.objectValue.height;\n }\n else if (this.objectValue instanceof PdfTextWebLink) {\n var webLink = this.objectValue;\n /* tslint:disable */\n var slr = layouter.layout(webLink.text, webLink.font, webLink.stringFormat, new SizeF(width, 0), false, new SizeF(0, 0));\n /* tslint:enable */\n height += slr.actualSize.height;\n height += (this.style.borders.top.width + this.style.borders.bottom.width) * 2;\n }\n else if (typeof this.objectValue === 'undefined') {\n if (this.style.cellPadding == null || typeof this.style.cellPadding === 'undefined') {\n width -= (this.gridRow.grid.style.cellPadding.right + this.gridRow.grid.style.cellPadding.left);\n }\n else {\n width -= (this.style.cellPadding.right + this.style.cellPadding.left);\n width -= (this.style.borders.left.width + this.style.borders.right.width);\n }\n height += (this.style.borders.top.width + this.style.borders.bottom.width) * 2;\n }\n //Add padding top and bottom value to height\n if (!(this.objectValue instanceof PdfGrid)) {\n if (this.style.cellPadding == null || typeof this.style.cellPadding === 'undefined') {\n height += (this.row.grid.style.cellPadding.top + this.row.grid.style.cellPadding.bottom);\n }\n else {\n height += (this.style.cellPadding.top + this.style.cellPadding.bottom);\n }\n }\n else {\n if (this.style.cellPadding == null || typeof this.style.cellPadding === 'undefined') {\n if (typeof this.row.grid.style.cellPadding.top !== 'undefined' && this.row.grid.style.cellPadding.hasTopPad) {\n height += this.row.grid.style.cellPadding.top;\n }\n if (typeof this.row.grid.style.cellPadding.bottom !== 'undefined' && this.row.grid.style.cellPadding.hasBottomPad) {\n height += this.row.grid.style.cellPadding.bottom;\n }\n }\n else {\n if (typeof this.style.cellPadding.top !== 'undefined' && this.style.cellPadding.hasTopPad) {\n height += this.style.cellPadding.top;\n }\n if (typeof this.style.cellPadding.bottom !== 'undefined' && this.style.cellPadding.hasBottomPad) {\n height += this.style.cellPadding.bottom;\n }\n }\n }\n height += this.row.grid.style.cellSpacing;\n return height;\n };\n /**\n * return the calculated `width` of the cell.\n * @private\n */\n PdfGridCell.prototype.calculateWidth = function () {\n var cellIndex = this.row.cells.indexOf(this);\n var rowindex = this.row.grid.rows.rowCollection.indexOf(this.row);\n var columnSpan = this.columnSpan;\n var width = 0;\n if (columnSpan === 1) {\n for (var i = 0; i < columnSpan; i++) {\n width += this.row.grid.columns.getColumn(cellIndex + i).width;\n }\n }\n else if (columnSpan > 1) {\n for (var i = 0; i < columnSpan; i++) {\n width += this.row.grid.columns.getColumn(cellIndex + i).width;\n if ((i + 1) < columnSpan) {\n this.row.cells.getCell(cellIndex + i + 1).hasColSpan = true;\n }\n }\n }\n if (this.parent != null && this.parent.row.width > 0) {\n if ((this.row.grid.isChildGrid) && this.parent != null && (this.row.width > this.parent.row.width)) {\n width = 0;\n for (var j = 0; j < this.parent.columnSpan; j++) {\n width += this.parent.row.grid.columns.getColumn(j).width;\n }\n width = width / this.row.cells.count;\n }\n }\n return width;\n };\n return PdfGridCell;\n}());\nexport { PdfGridCell };\n/**\n * `PdfGridCellCollection` class provides access to an ordered,\n * strongly typed collection of 'PdfGridCell' objects.\n * @private\n */\nvar PdfGridCellCollection = /** @class */ (function () {\n //Constructor\n /**\n * Initializes a new instance of the `PdfGridCellCollection` class with the row.\n * @private\n */\n function PdfGridCellCollection(row) {\n /**\n * @hidden\n * @private\n */\n this.cells = [];\n this.gridRow = row;\n }\n //Properties\n /**\n * Gets the current `cell`.\n * @private\n */\n PdfGridCellCollection.prototype.getCell = function (index) {\n if (index < 0 || index >= this.count) {\n throw new Error('IndexOutOfRangeException');\n }\n return this.cells[index];\n };\n Object.defineProperty(PdfGridCellCollection.prototype, \"count\", {\n /**\n * Gets the cells `count`.[Read-Only].\n * @private\n */\n get: function () {\n return this.cells.length;\n },\n enumerable: true,\n configurable: true\n });\n PdfGridCellCollection.prototype.add = function (cell) {\n if (typeof cell === 'undefined') {\n var tempcell = new PdfGridCell();\n this.add(tempcell);\n return cell;\n }\n else {\n cell.row = this.gridRow;\n this.cells.push(cell);\n }\n };\n /**\n * Returns the `index of` a particular cell in the collection.\n * @private\n */\n PdfGridCellCollection.prototype.indexOf = function (cell) {\n return this.cells.indexOf(cell);\n };\n return PdfGridCellCollection;\n}());\nexport { PdfGridCellCollection };\n","import { PdfGridCell } from './pdf-grid-cell';\nimport { PdfStringFormat } from './../../graphics/fonts/pdf-string-format';\n/**\n * `PdfGridColumn` class represents the schema of a column in a 'PdfGrid'.\n */\nvar PdfGridColumn = /** @class */ (function () {\n //Constructors\n /**\n * Initializes a new instance of the `PdfGridColumn` class with the parent grid.\n * @private\n */\n function PdfGridColumn(grid) {\n /**\n * The `width` of the column.\n * @default 0\n * @private\n */\n this.columnWidth = 0;\n this.grid = grid;\n }\n Object.defineProperty(PdfGridColumn.prototype, \"width\", {\n /**\n * Gets or sets the `width` of the 'PdfGridColumn'.\n * @private\n */\n get: function () {\n return this.columnWidth;\n },\n set: function (value) {\n this.isCustomWidth = true;\n this.columnWidth = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGridColumn.prototype, \"format\", {\n /**\n * Gets or sets the information about the text `formatting`.\n * @private\n */\n get: function () {\n if (this.stringFormat == null) {\n this.stringFormat = new PdfStringFormat(); //GetDefaultFormat();\n }\n return this.stringFormat;\n },\n set: function (value) {\n this.stringFormat = value;\n },\n enumerable: true,\n configurable: true\n });\n return PdfGridColumn;\n}());\nexport { PdfGridColumn };\n/**\n * `PdfGridColumnCollection` class provides access to an ordered,\n * strongly typed collection of 'PdfGridColumn' objects.\n * @private\n */\nvar PdfGridColumnCollection = /** @class */ (function () {\n //properties\n //Constructors\n /**\n * Initializes a new instance of the `PdfGridColumnCollection` class with the parent grid.\n * @private\n */\n function PdfGridColumnCollection(grid) {\n /**\n * @hidden\n * @private\n */\n this.internalColumns = [];\n /**\n * @hidden\n * @private\n */\n this.columnWidth = 0;\n this.grid = grid;\n this.internalColumns = [];\n }\n //Iplementation\n /**\n * `Add` a new column to the 'PdfGrid'.\n * @private\n */\n PdfGridColumnCollection.prototype.add = function (count) {\n // public add(column : PdfGridColumn) : void\n // public add(arg : number|PdfGridColumn) : void {\n // if (typeof arg === 'number') {\n for (var i = 0; i < count; i++) {\n this.internalColumns.push(new PdfGridColumn(this.grid));\n for (var index = 0; index < this.grid.rows.count; index++) {\n var row = this.grid.rows.getRow(index);\n var cell = new PdfGridCell();\n cell.value = '';\n row.cells.add(cell);\n }\n }\n // } else {\n // let column : PdfGridColumn = new PdfGridColumn(this.grid);\n // this.columns.push(column);\n // return column;\n // }\n };\n Object.defineProperty(PdfGridColumnCollection.prototype, \"count\", {\n /**\n * Gets the `number of columns` in the 'PdfGrid'.[Read-Only].\n * @private\n */\n get: function () {\n return this.internalColumns.length;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGridColumnCollection.prototype, \"width\", {\n /**\n * Gets the `widths`.\n * @private\n */\n get: function () {\n if (this.columnWidth === 0) {\n this.columnWidth = this.measureColumnsWidth();\n }\n if (this.grid.initialWidth !== 0 && this.columnWidth !== this.grid.initialWidth && !this.grid.style.allowHorizontalOverflow) {\n this.columnWidth = this.grid.initialWidth;\n this.grid.isPageWidth = true;\n }\n return this.columnWidth;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGridColumnCollection.prototype, \"columns\", {\n /**\n * Gets the `array of PdfGridColumn`.[Read-Only]\n * @private\n */\n get: function () {\n return this.internalColumns;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Gets the `PdfGridColumn` from the specified index.[Read-Only]\n * @private\n */\n PdfGridColumnCollection.prototype.getColumn = function (index) {\n if (index >= 0 && index <= this.columns.length) {\n return this.columns[index];\n }\n else {\n throw Error('can not get the column from the index: ' + index);\n }\n };\n //Implementation\n /**\n * `Calculates the column widths`.\n * @private\n */\n PdfGridColumnCollection.prototype.measureColumnsWidth = function () {\n var totalWidth = 0;\n this.grid.measureColumnsWidth();\n for (var i = 0, count = this.internalColumns.length; i < count; i++) {\n totalWidth += this.internalColumns[i].width;\n }\n return totalWidth;\n };\n /**\n * Gets the `widths of the columns`.\n * @private\n */\n PdfGridColumnCollection.prototype.getDefaultWidths = function (totalWidth) {\n var widths = [];\n var summ = 0.0;\n var subFactor = this.count;\n for (var i = 0; i < this.count; i++) {\n if (this.grid.isPageWidth && totalWidth >= 0 && !this.internalColumns[i].isCustomWidth) {\n this.internalColumns[i].width = 0;\n }\n else {\n widths[i] = this.internalColumns[i].width;\n if (this.internalColumns[i].width > 0 && this.internalColumns[i].isCustomWidth) {\n totalWidth -= this.internalColumns[i].width;\n subFactor--;\n }\n else {\n widths[i] = 0;\n }\n }\n }\n for (var i = 0; i < this.count; i++) {\n var width = totalWidth / subFactor;\n if (widths[i] <= 0) {\n widths[i] = width;\n }\n }\n return widths;\n };\n return PdfGridColumnCollection;\n}());\nexport { PdfGridColumnCollection };\n","import { PdfGridCell, PdfGridCellCollection } from './pdf-grid-cell';\nimport { PdfGridRowStyle } from './styles/style';\n/**\n * `PdfGridRow` class provides customization of the settings for the particular row.\n */\nvar PdfGridRow = /** @class */ (function () {\n //Constructor\n /**\n * Initializes a new instance of the `PdfGridRow` class with the parent grid.\n * @private\n */\n function PdfGridRow(grid) {\n /**\n * Stores the index of the overflowing row.\n * @private\n */\n this.gridRowOverflowIndex = 0;\n /**\n * The `height` of the row.\n * @private\n */\n this.rowHeight = 0;\n /**\n * The `width` of the row.\n * @private\n */\n this.rowWidth = 0;\n /**\n * The `isFinish` of the row.\n * @private\n */\n this.isrowFinish = false;\n /**\n * Check whether the Row span row height `is set explicitly`.\n * @default false\n * @public\n */\n this.isRowSpanRowHeightSet = false;\n /**\n * The `page count` of the row.\n * @public\n */\n this.noOfPageCount = 0;\n /**\n * Check whether the row height `is set explicitly`.\n * @default false\n * @private\n */\n this.isRowHeightSet = false;\n this.isPageBreakRowSpanApplied = false;\n /**\n * Check weather the row merge `is completed` or not.\n * @default true\n * @private\n */\n this.isRowMergeComplete = true;\n this.repeatFlag = false;\n this.rowFontSplit = false;\n this.isHeaderRow = false;\n this.pdfGrid = grid;\n }\n Object.defineProperty(PdfGridRow.prototype, \"rowSpanExists\", {\n //Properties\n /**\n * Gets or sets a value indicating [`row span exists`].\n * @private\n */\n get: function () {\n return this.bRowSpanExists;\n },\n set: function (value) {\n this.bRowSpanExists = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGridRow.prototype, \"cells\", {\n /**\n * Gets the `cells` from the selected row.[Read-Only].\n * @private\n */\n get: function () {\n if (this.gridCells == null) {\n this.gridCells = new PdfGridCellCollection(this);\n }\n return this.gridCells;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGridRow.prototype, \"grid\", {\n /**\n * Gets or sets the parent `grid`.\n * @private\n */\n get: function () {\n return this.pdfGrid;\n },\n set: function (value) {\n this.pdfGrid = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGridRow.prototype, \"style\", {\n /**\n * Gets or sets the row `style`.\n * @private\n */\n get: function () {\n if (typeof this.rowStyle === 'undefined') {\n this.rowStyle = new PdfGridRowStyle();\n this.rowStyle.setParent(this);\n }\n return this.rowStyle;\n },\n set: function (value) {\n this.rowStyle = value;\n for (var i = 0; i < this.cells.count; i++) {\n this.cells.getCell(i).style.borders = value.border;\n if (typeof value.font !== 'undefined') {\n this.cells.getCell(i).style.font = value.font;\n }\n if (typeof value.backgroundBrush !== 'undefined') {\n this.cells.getCell(i).style.backgroundBrush = value.backgroundBrush;\n }\n if (typeof value.backgroundImage !== 'undefined') {\n this.cells.getCell(i).style.backgroundImage = value.backgroundImage;\n }\n if (typeof value.textBrush !== 'undefined') {\n this.cells.getCell(i).style.textBrush = value.textBrush;\n }\n if (typeof value.textPen !== 'undefined') {\n this.cells.getCell(i).style.textPen = value.textPen;\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGridRow.prototype, \"rowBreakHeight\", {\n /**\n * `Height` of the row yet to be drawn after split.\n * @private\n */\n get: function () {\n if (typeof this.gridRowBreakHeight === 'undefined') {\n this.gridRowBreakHeight = 0;\n }\n return this.gridRowBreakHeight;\n },\n set: function (value) {\n this.gridRowBreakHeight = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGridRow.prototype, \"rowOverflowIndex\", {\n /**\n * `over flow index` of the row.\n * @private\n */\n get: function () {\n return this.gridRowOverflowIndex;\n },\n set: function (value) {\n this.gridRowOverflowIndex = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGridRow.prototype, \"height\", {\n /**\n * Gets or sets the `height` of the row.\n * @private\n */\n get: function () {\n if (!this.isRowHeightSet) {\n this.rowHeight = this.measureHeight();\n }\n return this.rowHeight;\n },\n set: function (value) {\n this.rowHeight = value;\n this.isRowHeightSet = true;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGridRow.prototype, \"width\", {\n /**\n * Gets or sets the `width` of the row.\n * @private\n */\n get: function () {\n if (this.rowWidth === 0 || typeof this.rowWidth === 'undefined') {\n this.rowWidth = this.measureWidth();\n }\n return this.rowWidth;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGridRow.prototype, \"NestedGridLayoutResult\", {\n /**\n * Gets or sets the row `Nested grid Layout Result`.\n * @private\n */\n get: function () {\n return this.gridResult;\n },\n set: function (value) {\n this.gridResult = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGridRow.prototype, \"columnSpanExists\", {\n /**\n * Gets or sets a value indicating [`column span exists`].\n * @private\n */\n get: function () {\n return this.bColumnSpanExists;\n },\n set: function (value) {\n this.bColumnSpanExists = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGridRow.prototype, \"rowMergeComplete\", {\n /**\n * Check whether the Row `has row span or row merge continue`.\n * @private\n */\n get: function () {\n return this.isRowMergeComplete;\n },\n set: function (value) {\n this.isRowMergeComplete = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGridRow.prototype, \"rowIndex\", {\n /**\n * Returns `index` of the row.\n * @private\n */\n get: function () {\n return this.grid.rows.rowCollection.indexOf(this);\n },\n enumerable: true,\n configurable: true\n });\n //Implementation\n /**\n * `Calculates the height`.\n * @private\n */\n PdfGridRow.prototype.measureHeight = function () {\n var rowSpanRemainingHeight = 0;\n var rowHeight;\n var maxHeight = 0;\n if (this.cells.getCell(0).rowSpan > 1) {\n rowHeight = 0;\n }\n else {\n rowHeight = this.cells.getCell(0).height;\n }\n for (var i = 0; i < this.cells.count; i++) {\n var cell = this.cells.getCell(i);\n //get the maximum rowspan remaining height.\n if (cell.rowSpanRemainingHeight > rowSpanRemainingHeight) {\n rowSpanRemainingHeight = cell.rowSpanRemainingHeight;\n }\n //skip the cell if row spanned.\n // if (cell.isRowMergeContinue) {\n // continue;\n // }\n // if (!cell.isRowMergeContinue) {\n // this.rowMergeComplete = false;\n // }\n this.rowMergeComplete = false;\n if (cell.rowSpan > 1) {\n var cellIn = i;\n var rowin = this.isHeaderRow ? this.grid.headers.indexOf(this) : this.grid.rows.rowCollection.indexOf(this);\n for (var j = 0; j < cell.rowSpan; j++) {\n if ((j + 1) < cell.rowSpan) {\n (this.isHeaderRow ? this.grid.headers.getHeader(rowin + j + 1) : this.grid.rows.getRow(rowin + j + 1)).cells.getCell(cellIn).hasRowSpan = true;\n }\n }\n if (maxHeight < cell.height) {\n maxHeight = cell.height;\n }\n continue;\n }\n rowHeight = Math.max(rowHeight, cell.height);\n }\n if (maxHeight > rowHeight) {\n rowHeight = maxHeight;\n }\n if (rowHeight === 0) {\n rowHeight = maxHeight;\n }\n else if (rowSpanRemainingHeight > 0) {\n rowHeight += rowSpanRemainingHeight;\n }\n return rowHeight;\n };\n PdfGridRow.prototype.measureWidth = function () {\n var rowWid = 0;\n for (var i = 0; i < this.grid.columns.count; i++) {\n var column = this.grid.columns.getColumn(i);\n rowWid += column.width;\n }\n return rowWid;\n };\n return PdfGridRow;\n}());\nexport { PdfGridRow };\n/**\n * `PdfGridRowCollection` class provides access to an ordered, strongly typed collection of 'PdfGridRow' objects.\n * @private\n */\nvar PdfGridRowCollection = /** @class */ (function () {\n // Constructor\n /**\n * Initializes a new instance of the `PdfGridRowCollection` class with the parent grid.\n * @private\n */\n function PdfGridRowCollection(grid) {\n this.rows = [];\n this.grid = grid;\n }\n Object.defineProperty(PdfGridRowCollection.prototype, \"count\", {\n //Properties\n /**\n * Gets the number of header in the `PdfGrid`.[Read-Only].\n * @private\n */\n get: function () {\n return this.rows.length;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGridRowCollection.prototype, \"rowCollection\", {\n //Implementation\n /**\n * Return the row collection of the `grid`.\n * @private\n */\n get: function () {\n return this.rows;\n },\n enumerable: true,\n configurable: true\n });\n PdfGridRowCollection.prototype.addRow = function (arg) {\n if (typeof arg === 'undefined') {\n var temprow = new PdfGridRow(this.grid);\n this.addRow(temprow);\n return temprow;\n }\n else {\n arg.style.setBackgroundBrush(this.grid.style.backgroundBrush);\n arg.style.setFont(this.grid.style.font);\n arg.style.setTextBrush(this.grid.style.textBrush);\n arg.style.setTextPen(this.grid.style.textPen);\n if (arg.cells.count === 0) {\n for (var i = 0; i < this.grid.columns.count; i++) {\n arg.cells.add(new PdfGridCell());\n }\n }\n this.rows.push(arg);\n }\n };\n /**\n * Return the row by index.\n * @private\n */\n PdfGridRowCollection.prototype.getRow = function (index) {\n return this.rows[index];\n };\n return PdfGridRowCollection;\n}());\nexport { PdfGridRowCollection };\n/**\n * `PdfGridHeaderCollection` class provides customization of the settings for the header.\n * @private\n */\nvar PdfGridHeaderCollection = /** @class */ (function () {\n //constructor\n /**\n * Initializes a new instance of the `PdfGridHeaderCollection` class with the parent grid.\n * @private\n */\n function PdfGridHeaderCollection(grid) {\n /**\n * The array to store the `rows` of the grid header.\n * @private\n */\n this.rows = [];\n this.grid = grid;\n this.rows = [];\n }\n //Properties\n /**\n * Gets a 'PdfGridRow' object that represents the `header` row in a 'PdfGridHeaderCollection' control.[Read-Only].\n * @private\n */\n PdfGridHeaderCollection.prototype.getHeader = function (index) {\n // if (index < 0 || index >= Count) {\n // throw new IndexOutOfRangeException();\n // }\n return (this.rows[index]);\n };\n Object.defineProperty(PdfGridHeaderCollection.prototype, \"count\", {\n /**\n * Gets the `number of header` in the 'PdfGrid'.[Read-Only]\n * @private\n */\n get: function () {\n return this.rows.length;\n },\n enumerable: true,\n configurable: true\n });\n PdfGridHeaderCollection.prototype.add = function (arg) {\n if (typeof arg === 'number') {\n var row = void 0;\n for (var i = 0; i < arg; i++) {\n row = new PdfGridRow(this.grid);\n row.isHeaderRow = true;\n for (var j = 0; j < this.grid.columns.count; j++) {\n row.cells.add(new PdfGridCell());\n }\n this.rows.push(row);\n }\n return this.rows;\n }\n else {\n this.rows.push(arg);\n }\n };\n PdfGridHeaderCollection.prototype.indexOf = function (row) {\n return this.rows.indexOf(row);\n };\n return PdfGridHeaderCollection;\n}());\nexport { PdfGridHeaderCollection };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * PdfGrid.ts class for EJ2-PDF\n */\nimport { PdfGridColumnCollection } from './pdf-grid-column';\nimport { PdfGridRowCollection, PdfGridHeaderCollection } from './pdf-grid-row';\nimport { RectangleF, SizeF, PointF } from './../../drawing/pdf-drawing';\nimport { PdfLayoutElement } from './../../graphics/figures/layout-element';\nimport { PdfLayoutFormat } from './../../graphics/figures/base/element-layouter';\nimport { PdfGridStyle } from './styles/style';\nimport { PdfBorders } from './styles/pdf-borders';\nimport { PdfGridLayouter } from './../../structured-elements/grid/layout/grid-layouter';\nvar PdfGrid = /** @class */ (function (_super) {\n __extends(PdfGrid, _super);\n //constructor\n /**\n * Initialize a new instance for `PdfGrid` class.\n * @private\n */\n function PdfGrid() {\n var _this = _super.call(this) || this;\n /**\n * @hidden\n * @private\n */\n _this.gridSize = new SizeF(0, 0);\n /**\n * Check the child grid is ' split or not'\n */\n _this.isGridSplit = false;\n /**\n * @hidden\n * @private\n */\n _this.isRearranged = false;\n /**\n * @hidden\n * @private\n */\n _this.pageBounds = new RectangleF();\n /**\n * @hidden\n * @private\n */\n _this.listOfNavigatePages = [];\n /**\n * @hidden\n * @private\n */\n _this.parentCellIndex = 0;\n _this.tempWidth = 0;\n /**\n * @hidden\n * @private\n */\n _this.breakRow = true;\n _this.splitChildRowIndex = -1;\n /**\n * The event raised on `begin cell lay outing`.\n * @event\n * @private\n */\n //public beginPageLayout : Function;\n /**\n * The event raised on `end cell lay outing`.\n * @event\n * @private\n */\n //public endPageLayout : Function;\n _this.hasRowSpanSpan = false;\n _this.hasColumnSpan = false;\n _this.isSingleGrid = true;\n return _this;\n }\n Object.defineProperty(PdfGrid.prototype, \"raiseBeginCellDraw\", {\n //Properties\n /**\n * Gets a value indicating whether the `start cell layout event` should be raised.\n * @private\n */\n get: function () {\n return (typeof this.beginCellDraw !== 'undefined' && typeof this.beginCellDraw !== null);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGrid.prototype, \"raiseEndCellDraw\", {\n /**\n * Gets a value indicating whether the `end cell layout event` should be raised.\n * @private\n */\n get: function () {\n return (typeof this.endCellDraw !== 'undefined' && typeof this.endCellDraw !== null);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGrid.prototype, \"repeatHeader\", {\n /**\n * Gets or sets a value indicating whether to `repeat header`.\n * @private\n */\n get: function () {\n if (this.bRepeatHeader == null || typeof this.bRepeatHeader === 'undefined') {\n this.bRepeatHeader = false;\n }\n return this.bRepeatHeader;\n },\n set: function (value) {\n this.bRepeatHeader = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGrid.prototype, \"allowRowBreakAcrossPages\", {\n /**\n * Gets or sets a value indicating whether to split or cut rows that `overflow a page`.\n * @private\n */\n get: function () {\n return this.breakRow;\n },\n set: function (value) {\n this.breakRow = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGrid.prototype, \"columns\", {\n /**\n * Gets the `column` collection of the PdfGrid.[Read-Only]\n * @private\n */\n get: function () {\n if (this.gridColumns == null || typeof this.gridColumns === 'undefined') {\n this.gridColumns = new PdfGridColumnCollection(this);\n }\n return this.gridColumns;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGrid.prototype, \"rows\", {\n /**\n * Gets the `row` collection from the PdfGrid.[Read-Only]\n * @private\n */\n get: function () {\n if (this.gridRows == null) {\n this.gridRows = new PdfGridRowCollection(this);\n }\n return this.gridRows;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGrid.prototype, \"headers\", {\n /**\n * Gets the `headers` collection from the PdfGrid.[Read-Only]\n * @private\n */\n get: function () {\n if (this.gridHeaders == null || typeof this.gridHeaders === 'undefined') {\n this.gridHeaders = new PdfGridHeaderCollection(this);\n }\n return this.gridHeaders;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGrid.prototype, \"initialWidth\", {\n /**\n * Indicating `initial width` of the page.\n * @private\n */\n get: function () {\n return this.gridInitialWidth;\n },\n set: function (value) {\n this.gridInitialWidth = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGrid.prototype, \"style\", {\n /**\n * Gets or sets the `grid style`.\n * @private\n */\n get: function () {\n if (this.gridStyle == null) {\n this.gridStyle = new PdfGridStyle();\n }\n return this.gridStyle;\n },\n set: function (value) {\n if (this.gridStyle == null) {\n this.gridStyle = value;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGrid.prototype, \"isPageWidth\", {\n /**\n * Gets a value indicating whether the grid column width is considered to be `page width`.\n * @private\n */\n get: function () {\n return this.ispageWidth;\n },\n set: function (value) {\n this.ispageWidth = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGrid.prototype, \"isChildGrid\", {\n /**\n * Gets or set if grid `is nested grid`.\n * @private\n */\n get: function () {\n return this.ischildGrid;\n },\n set: function (value) {\n this.ischildGrid = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGrid.prototype, \"size\", {\n /**\n * Gets or set if grid ' is split or not'\n * @public\n */\n // public get isGridSplit() : boolean {\n // return this.isgridSplit;\n // }\n // public set isGridSplit(value : boolean) {\n // this.isgridSplit = value;\n // }public get isGridSplit() : boolean {\n // return this.isgridSplit;\n // }\n // public set isGridSplit(value : boolean) {\n // this.isgridSplit = value;\n // }\n /**\n * Gets the `size`.\n * @private\n */\n get: function () {\n if ((this.gridSize.width === 0 || typeof this.gridSize.width === 'undefined') && this.gridSize.height === 0) {\n this.gridSize = this.measure();\n }\n return this.gridSize;\n // } else {\n // return this.gridSize;\n // }\n },\n set: function (value) {\n this.gridSize = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGrid.prototype, \"ParentCell\", {\n get: function () {\n return this.parentCell;\n },\n set: function (value) {\n this.parentCell = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfGrid.prototype, \"LayoutFormat\", {\n get: function () {\n return this.layoutFormat;\n },\n enumerable: true,\n configurable: true\n });\n PdfGrid.prototype.draw = function (arg1, arg2, arg3, arg4) {\n if (arg2 instanceof PointF && typeof arg2.width === 'undefined' && typeof arg3 === 'undefined') {\n return this.drawHelper(arg1, arg2.x, arg2.y);\n }\n else if (typeof arg2 === 'number' && typeof arg3 === 'number' && typeof arg4 === 'undefined') {\n return this.drawHelper(arg1, arg2, arg3, null);\n }\n else if (arg2 instanceof RectangleF && typeof arg2.width !== 'undefined' && typeof arg3 === 'undefined') {\n return this.drawHelper(arg1, arg2, null);\n }\n else if (arg2 instanceof PointF && typeof arg2.width === 'undefined' && arg3 instanceof PdfLayoutFormat) {\n return this.drawHelper(arg1, arg2.x, arg2.y, arg3);\n }\n else if (typeof arg2 === 'number' && typeof arg3 === 'number' && (arg4 instanceof PdfLayoutFormat || arg4 == null)) {\n var width = (arg1.graphics.clientSize.width - arg2);\n var layoutRectangle = new RectangleF(arg2, arg3, width, 0);\n return this.drawHelper(arg1, layoutRectangle, arg4);\n }\n else if (arg2 instanceof RectangleF && typeof arg2.width !== 'undefined' && typeof arg3 === 'boolean') {\n return this.drawHelper(arg1, arg2, null);\n }\n else {\n return this.drawHelper(arg1, arg2, arg3);\n }\n };\n /**\n * `measures` this instance.\n * @private\n */\n PdfGrid.prototype.measure = function () {\n var height = 0;\n var width = this.columns.width;\n for (var i = 0; i < this.headers.count; i++) {\n var row = this.headers.getHeader(i);\n height += row.height;\n }\n for (var i = 0; i < this.rows.count; i++) {\n var row = this.rows.getRow(i);\n height += row.height;\n }\n return new SizeF(width, height);\n };\n PdfGrid.prototype.onBeginCellDraw = function (args) {\n if (this.raiseBeginCellDraw) {\n this.beginCellDraw(this, args);\n }\n };\n PdfGrid.prototype.onEndCellDraw = function (args) {\n if (this.raiseEndCellDraw) {\n this.endCellDraw(this, args);\n }\n };\n /**\n * `Layouts` the specified graphics.\n * @private\n */\n PdfGrid.prototype.layout = function (param) {\n var width = param.bounds.width;\n var height = param.bounds.height;\n var hasChanged = false;\n if (typeof param.bounds.width === 'undefined' || param.bounds.width === 0) {\n width = param.page.getClientSize().width - param.bounds.x;\n hasChanged = true;\n }\n if (typeof param.bounds.height === 'undefined' || param.bounds.height === 0) {\n height = param.page.getClientSize().height - param.bounds.y;\n hasChanged = true;\n }\n if (hasChanged) {\n param.bounds = new RectangleF(param.bounds.x, param.bounds.y, width, height);\n }\n if (this.rows.count !== 0) {\n var currentRow = this.rows.getRow(0).cells.getCell(0).style;\n if (currentRow.borders != null && ((currentRow.borders.left != null && currentRow.borders.left.width !== 1) ||\n (currentRow.borders.top != null && currentRow.borders.top.width !== 1))) {\n var x = currentRow.borders.left.width / 2;\n var y = currentRow.borders.top.width / 2;\n if (param.bounds.x === PdfBorders.default.right.width / 2 && param.bounds.y === PdfBorders.default.right.width / 2) {\n var newBound = new RectangleF(x, y, this.gridSize.width, this.gridSize.height);\n param.bounds = newBound;\n }\n }\n }\n this.setSpan();\n this.checkSpan();\n this.layoutFormat = param.format;\n this.gridLocation = param.bounds;\n var layouter = new PdfGridLayouter(this);\n var result = (layouter.Layouter(param));\n return result;\n };\n PdfGrid.prototype.setSpan = function () {\n var colSpan = 1;\n var rowSpan = 1;\n var currentCellIndex = 0;\n var currentRowIndex = 0;\n var maxSpan = 0;\n var rowCount = this.headers.count;\n for (var i = 0; i < rowCount; i++) {\n var row = this.headers.getHeader(i);\n maxSpan = 0;\n var colCount = row.cells.count;\n for (var j = 0; j < colCount; j++) {\n var cell = row.cells.getCell(j);\n maxSpan = Math.max(maxSpan, cell.rowSpan);\n //Skip setting span map for already coverted rows/columns.\n if (!cell.isCellMergeContinue && !cell.isRowMergeContinue && (cell.columnSpan > 1 || cell.rowSpan > 1)) {\n if (cell.columnSpan + j > row.cells.count) {\n throw new Error('Invalid span specified at row ' + j.toString() + ' column ' + i.toString());\n }\n if (cell.rowSpan + i > this.headers.count) {\n throw new Error('Invalid span specified at Header ' + j.toString() + ' column ' + i.toString());\n }\n // if (this.rows.count !== 0 && cell.rowSpan + i > this.rows.count) {\n // throw new Error('Invalid span specified at row ' + j.toString() + ' column ' + i.toString());\n // }\n if (cell.columnSpan > 1 && cell.rowSpan > 1) {\n colSpan = cell.columnSpan;\n rowSpan = cell.rowSpan;\n currentCellIndex = j;\n currentRowIndex = i;\n cell.isCellMergeStart = true;\n cell.isRowMergeStart = true;\n //Set Column merges for first row\n while (colSpan > 1) {\n currentCellIndex++;\n row.cells.getCell(currentCellIndex).isCellMergeContinue = true;\n row.cells.getCell(currentCellIndex).isRowMergeContinue = true;\n row.cells.getCell(currentCellIndex).rowSpan = rowSpan;\n colSpan--;\n }\n currentCellIndex = j;\n colSpan = cell.columnSpan;\n //Set Row Merges and column merges foreach subsequent rows.\n while (rowSpan > 1) {\n currentRowIndex++;\n this.headers.getHeader(currentRowIndex).cells.getCell(j).isRowMergeContinue = true;\n this.headers.getHeader(currentRowIndex).cells.getCell(currentCellIndex).isRowMergeContinue = true;\n rowSpan--;\n while (colSpan > 1) {\n currentCellIndex++;\n this.headers.getHeader(currentRowIndex).cells.getCell(currentCellIndex).isCellMergeContinue = true;\n this.headers.getHeader(currentRowIndex).cells.getCell(currentCellIndex).isRowMergeContinue = true;\n colSpan--;\n }\n colSpan = cell.columnSpan;\n currentCellIndex = j;\n }\n }\n else if (cell.columnSpan > 1 && cell.rowSpan === 1) {\n colSpan = cell.columnSpan;\n currentCellIndex = j;\n cell.isCellMergeStart = true;\n //Set Column merges.\n while (colSpan > 1) {\n currentCellIndex++;\n row.cells.getCell(currentCellIndex).isCellMergeContinue = true;\n colSpan--;\n }\n }\n else if (cell.columnSpan === 1 && cell.rowSpan > 1) {\n rowSpan = cell.rowSpan;\n currentRowIndex = i;\n //Set row Merges.\n while (rowSpan > 1) {\n currentRowIndex++;\n this.headers.getHeader(currentRowIndex).cells.getCell(j).isRowMergeContinue = true;\n rowSpan--;\n }\n }\n }\n }\n row.maximumRowSpan = maxSpan;\n }\n };\n PdfGrid.prototype.checkSpan = function () {\n var cellcolSpan;\n var cellrowSpan = 1;\n var cellmaxSpan = 0;\n var currentCellIndex;\n var currentRowIndex = 0;\n cellcolSpan = cellrowSpan = 1;\n currentCellIndex = currentRowIndex = 0;\n if (this.hasRowSpanSpan || this.hasColumnSpan) {\n var rowCount = this.rows.count;\n for (var i = 0; i < rowCount; i++) {\n var row = this.rows.getRow(i);\n cellmaxSpan = 0;\n var colCount = row.cells.count;\n for (var j = 0; j < colCount; j++) {\n var cell = row.cells.getCell(j);\n cellmaxSpan = Math.max(cellmaxSpan, cell.rowSpan);\n //Skip setting span map for already coverted rows/columns.\n if (!cell.isCellMergeContinue && !cell.isRowMergeContinue\n && (cell.columnSpan > 1 || cell.rowSpan > 1)) {\n if (cell.columnSpan + j > row.cells.count) {\n throw new Error('Invalid span specified at row ' + j.toString() + ' column ' + i.toString());\n }\n if (cell.rowSpan + i > this.rows.count) {\n throw new Error('Invalid span specified at row ' + j.toString() + ' column ' + i.toString());\n }\n if (cell.columnSpan > 1 && cell.rowSpan > 1) {\n cellcolSpan = cell.columnSpan;\n cellrowSpan = cell.rowSpan;\n currentCellIndex = j;\n currentRowIndex = i;\n cell.isCellMergeStart = true;\n cell.isRowMergeStart = true;\n //Set Column merges for first row\n while (cellcolSpan > 1) {\n currentCellIndex++;\n row.cells.getCell(currentCellIndex).isCellMergeContinue = true;\n row.cells.getCell(currentCellIndex).isRowMergeContinue = true;\n cellcolSpan--;\n }\n currentCellIndex = j;\n cellcolSpan = cell.columnSpan;\n //Set Row Merges and column merges foreach subsequent rows.\n while (cellrowSpan > 1) {\n currentRowIndex++;\n this.rows.getRow(currentRowIndex).cells.getCell(j).isRowMergeContinue = true;\n this.rows.getRow(currentRowIndex).cells.getCell(currentCellIndex).isRowMergeContinue = true;\n cellrowSpan--;\n while (cellcolSpan > 1) {\n currentCellIndex++;\n this.rows.getRow(currentRowIndex).cells.getCell(currentCellIndex).isCellMergeContinue = true;\n this.rows.getRow(currentRowIndex).cells.getCell(currentCellIndex).isRowMergeContinue = true;\n cellcolSpan--;\n }\n cellcolSpan = cell.columnSpan;\n currentCellIndex = j;\n }\n }\n else if (cell.columnSpan > 1 && cell.rowSpan === 1) {\n cellcolSpan = cell.columnSpan;\n currentCellIndex = j;\n cell.isCellMergeStart = true;\n //Set Column merges.\n while (cellcolSpan > 1) {\n currentCellIndex++;\n row.cells.getCell(currentCellIndex).isCellMergeContinue = true;\n cellcolSpan--;\n }\n }\n else if (cell.columnSpan === 1 && cell.rowSpan > 1) {\n cellrowSpan = cell.rowSpan;\n currentRowIndex = i;\n //Set row Merges.\n while (cellrowSpan > 1) {\n currentRowIndex++;\n this.rows.getRow(currentRowIndex).cells.getCell(j).isRowMergeContinue = true;\n cellrowSpan--;\n }\n }\n }\n }\n row.maximumRowSpan = cellmaxSpan;\n }\n }\n };\n PdfGrid.prototype.measureColumnsWidth = function (bounds) {\n if (typeof bounds !== 'undefined') {\n this.isPageWidth = false;\n var widths = this.columns.getDefaultWidths(bounds.width - bounds.x);\n //let tempWidth : number = this.columns.getColumn(0).width;\n for (var i = 0, count = this.columns.count; i < count; i++) {\n // if (this.columns.getColumn(i).width < 0)\n // this.columns.getColumn(i).columnWidth = widths[i];\n // else if (this.columns.getColumn(i).width > 0 && !this.columns.getColumn(i).isCustomWidth && widths[i]>0 && this.isComplete)\n this.columns.getColumn(i).columnWidth = widths[i];\n this.tempWidth = widths[i];\n }\n if (this.ParentCell != null && this.style.allowHorizontalOverflow == false && this.ParentCell.row.grid.style.allowHorizontalOverflow == false) {\n var padding = 0;\n var columnWidth = 0;\n var columnCount = this.columns.count;\n var childGridColumnWidth = 0;\n if (this.ParentCell.style.cellPadding != null || typeof this.ParentCell.style.cellPadding !== 'undefined') {\n if (typeof this.ParentCell.style.cellPadding.left != 'undefined' && this.ParentCell.style.cellPadding.hasLeftPad) {\n padding += this.ParentCell.style.cellPadding.left;\n }\n if (typeof this.ParentCell.style.cellPadding.right != 'undefined' && this.ParentCell.style.cellPadding.hasRightPad) {\n padding += this.ParentCell.style.cellPadding.right;\n }\n }\n for (var i = 0; i < this.ParentCell.columnSpan; i++) {\n columnWidth += this.ParentCell.row.grid.columns.getColumn(this.parentCellIndex + i).width;\n }\n for (var j = 0; j < this.columns.count; j++) {\n if (this.gridColumns.getColumn(j).width > 0 && this.gridColumns.getColumn(j).isCustomWidth) {\n columnWidth -= this.gridColumns.getColumn(j).width;\n columnCount--;\n }\n }\n if ((this.ParentCell.row.grid.style.cellPadding != null || typeof this.ParentCell.row.grid.style.cellPadding != 'undefined')) {\n if (typeof this.ParentCell.row.grid.style.cellPadding.top != 'undefined' && this.ParentCell.row.grid.style.cellPadding.hasTopPad) {\n padding += this.ParentCell.row.grid.style.cellPadding.top;\n }\n if (typeof this.ParentCell.row.grid.style.cellPadding.bottom != 'undefined' && this.ParentCell.row.grid.style.cellPadding.hasBottomPad) {\n padding += this.ParentCell.row.grid.style.cellPadding.bottom;\n }\n }\n if (this.ParentCell.row.grid.style.cellSpacing != 0) {\n columnWidth -= this.ParentCell.row.grid.style.cellSpacing * 2;\n }\n if (columnWidth > padding) {\n childGridColumnWidth = (columnWidth - padding) / columnCount;\n this.tempWidth = childGridColumnWidth;\n if (this.ParentCell != null) {\n for (var j = 0; j < this.columns.count; j++) {\n if (!this.columns.getColumn(j).isCustomWidth)\n this.columns.getColumn(j).columnWidth = childGridColumnWidth;\n }\n }\n }\n }\n // if (this.ParentCell != null && this.ParentCell.row.width > 0)\n // {\n // if (this.isChildGrid && this.gridSize.width > this.ParentCell.row.width)\n // {\n // widths = this.columns.getDefaultWidths(bounds.width);\n // for (let i : number = 0; i < this.columns.count; i++)\n // {\n // this.columns.getColumn(i).width = widths[i];\n // }\n // }\n // }\n }\n else {\n var widths = [this.columns.count];\n for (var n = 0; n < this.columns.count; n++) {\n widths[n] = 0;\n }\n var cellWidth = 0;\n var cellWidths = 0;\n if ((typeof this.isChildGrid === 'undefined' && typeof this.gridLocation !== 'undefined') || (this.isChildGrid === null && typeof this.gridLocation !== 'undefined')) {\n this.initialWidth = this.gridLocation.width;\n }\n if (this.headers.count > 0) {\n var colCount_1 = this.headers.getHeader(0).cells.count;\n var rowCount = this.headers.count;\n for (var i = 0; i < colCount_1; i++) {\n cellWidth = 0;\n for (var j = 0; j < rowCount; j++) {\n var rowWidth = Math.min(this.initialWidth, this.headers.getHeader(j).cells.getCell(i).width);\n cellWidth = Math.max(cellWidth, rowWidth);\n }\n widths[i] = cellWidth;\n }\n }\n // else {\n // let colCount : number = this.rows.getRow(0).cells.count;\n // let rowCount : number = this.rows.count;\n // for (let i : number = 0; i < colCount; i++) {\n // cellWidth = 0;\n // for (let j : number = 0; j < rowCount; j++) {\n // let rowWidth : number = Math.min(this.initialWidth, this.rows.getRow(j).cells.getCell(i).width);\n // cellWidth = Math.max(cellWidth, rowWidth);\n // }\n // widths[i] = cellWidth;\n // }\n // }\n cellWidth = 0;\n for (var i = 0, colCount_2 = this.columns.count; i < colCount_2; i++) {\n for (var j = 0, rowCount = this.rows.count; j < rowCount; j++) {\n if ((this.rows.getRow(j).cells.getCell(i).columnSpan == 1 && !this.rows.getRow(j).cells.getCell(i).isCellMergeContinue) || this.rows.getRow(j).cells.getCell(i).value != null) {\n if (this.rows.getRow(j).cells.getCell(i).value != null && !this.rows.getRow(j).grid.style.allowHorizontalOverflow) {\n var value = this.rows.getRow(j).grid.style.cellPadding.right +\n this.rows.getRow(j).grid.style.cellPadding.left\n + this.rows.getRow(j).cells.getCell(i).style.borders.left.width / 2;\n // if (this.initialWidth != 0 )\n // (this.rows.getRow(j).cells.getCell(i).value as PdfGrid).initialWidth = this.initialWidth - value;\n }\n var rowWidth = 0;\n rowWidth = this.initialWidth > 0.0 ? Math.min(this.initialWidth, this.rows.getRow(j).cells.getCell(i).width) : this.rows.getRow(j).cells.getCell(i).width;\n // let internalWidth : number = this.rows.getRow(j).cells.getCell(i).width;\n // internalWidth += this.rows.getRow(j).cells.getCell(i).style.borders.left.width;\n // internalWidth += this.rows.getRow(j).cells.getCell(i).style.borders.right.width;\n // let internalHeight : number = this.rows.getRow(j).cells.getCell(i).height;\n // internalHeight += (this.rows.getRow(j).cells.getCell(i).style.borders.top.width);\n // internalHeight += (this.rows.getRow(j).cells.getCell(i).style.borders.bottom.width);\n // let isCorrectWidth : boolean = (internalWidth + this.gridLocation.x) > this.currentGraphics.clientSize.width;\n // let isCorrectHeight : boolean = (internalHeight + this.gridLocation.y) > this.currentGraphics.clientSize.height;\n // if (isCorrectWidth || isCorrectHeight) {\n // throw Error('Image size exceeds client size of the page. Can not insert this image');\n // }\n // rowWidth = Math.min(this.initialWidth, this.rows.getRow(j).cells.getCell(i).width);\n cellWidth = Math.max(widths[i], Math.max(cellWidth, rowWidth));\n cellWidth = Math.max(this.columns.getColumn(i).width, cellWidth);\n }\n }\n if (this.rows.count != 0)\n widths[i] = cellWidth;\n cellWidth = 0;\n }\n for (var i = 0, RowCount = this.rows.count; i < RowCount; i++) {\n for (var j = 0, ColCount = this.columns.count; j < ColCount; j++) {\n if (this.rows.getRow(i).cells.getCell(j).columnSpan > 1) {\n var total = widths[j];\n for (var k = 1; k < this.rows.getRow(i).cells.getCell(j).columnSpan; k++) {\n total += widths[j + k];\n }\n // if (this.rows.getRow(i).cells.getCell(j).width > total)\n // {\n // let extendedWidth : number = this.rows.getRow(i).cells.getCell(j).width - total;\n // extendedWidth = extendedWidth / this.rows.getRow(i).cells.getCell(j).columnSpan;\n // for (let k : number = j; k < j + this.rows.getRow(i).cells.getCell(j).columnSpan; k++)\n // widths[k] += extendedWidth;\n // }\n }\n }\n }\n // if (this.isChildGrid && this.initialWidth != 0)\n // {\n // widths = this.columns.getDefaultWidths(this.initialWidth);\n // }\n for (var i = 0, count = this.columns.count; i < count; i++) {\n if (this.columns.getColumn(i).width <= 0)\n this.columns.getColumn(i).columnWidth = widths[i];\n else if (this.columns.getColumn(i).width > 0 && !this.columns.getColumn(i).isCustomWidth)\n this.columns.getColumn(i).columnWidth = widths[i];\n }\n var padding = 0;\n var colWidth = 0;\n var colCount = this.columns.count;\n var childGridColWidth = 0;\n colWidth = this.tempWidth;\n for (var j = 0; j < this.columns.count; j++) {\n if (this.gridColumns.getColumn(j).width > 0 && this.gridColumns.getColumn(j).isCustomWidth) {\n colWidth -= this.gridColumns.getColumn(j).width;\n colCount--;\n }\n }\n // if (this.style.cellSpacing != 0){\n // colWidth -= this.style.cellSpacing * 2;\n // }\n if (colWidth > 0) {\n if (this.ParentCell.row.grid.style.cellSpacing != 0) {\n colWidth -= this.ParentCell.row.grid.style.cellSpacing * 2;\n }\n }\n if (colWidth > padding) {\n childGridColWidth = (colWidth) / colCount;\n if (this.ParentCell != null) {\n for (var j = 0; j < this.columns.count; j++) {\n if (!this.columns.getColumn(j).isCustomWidth)\n this.columns.getColumn(j).columnWidth = childGridColWidth;\n }\n }\n }\n }\n };\n return PdfGrid;\n}(PdfLayoutElement));\nexport { PdfGrid };\n","/**\n * PdfPageTemplateElement.ts class for EJ2-Pdf\n */\nimport { PdfDockStyle, PdfAlignmentStyle, TemplateType } from './enum';\nimport { PointF, SizeF } from './../drawing/pdf-drawing';\nimport { PdfTemplate } from './../graphics/figures/pdf-template';\nimport { PdfPage } from './pdf-page';\nimport { RectangleF } from './../drawing/pdf-drawing';\n/**\n * Describes a `page template` object that can be used as header/footer, watermark or stamp.\n */\nvar PdfPageTemplateElement = /** @class */ (function () {\n /* tslint:disable */\n function PdfPageTemplateElement(arg1, arg2, arg3, arg4, arg5) {\n if (arg1 instanceof RectangleF && typeof arg2 === 'undefined') {\n this.InitiateBounds(arg1.x, arg1.y, arg1.width, arg1.height, null);\n }\n else if (arg1 instanceof RectangleF && arg2 instanceof PdfPage && typeof arg3 === 'undefined') {\n this.InitiateBounds(arg1.x, arg1.y, arg1.width, arg1.height, arg2);\n }\n else if (arg1 instanceof PointF && arg2 instanceof SizeF && typeof arg3 === 'undefined') {\n this.InitiateBounds(arg1.x, arg1.y, arg2.width, arg2.height, null);\n }\n else if (arg1 instanceof PointF && arg2 instanceof SizeF && arg3 instanceof PdfPage && typeof arg4 === 'undefined') {\n this.InitiateBounds(arg1.x, arg1.y, arg2.width, arg2.height, arg3);\n }\n else if (arg1 instanceof SizeF && typeof arg2 === 'undefined') {\n this.InitiateBounds(0, 0, arg1.width, arg1.height, null);\n }\n else if (typeof arg1 === 'number' && typeof arg2 === 'number' && typeof arg3 === 'undefined') {\n this.InitiateBounds(0, 0, arg1, arg2, null);\n }\n else if (typeof arg1 === 'number' && typeof arg2 === 'number' && arg3 instanceof PdfPage && typeof arg4 === 'undefined') {\n this.InitiateBounds(0, 0, arg1, arg2, arg3);\n }\n else if (typeof arg1 === 'number' && typeof arg2 === 'number' && typeof arg3 === 'number' && typeof arg4 === 'number' && typeof arg5 === 'undefined') {\n this.InitiateBounds(arg1, arg2, arg3, arg4, null);\n }\n else {\n this.InitiateBounds(arg1, arg2, arg3, arg4, null);\n // this.graphics.colorSpace = this.page.document.colorSpace;\n }\n /* tslint:enable */\n }\n Object.defineProperty(PdfPageTemplateElement.prototype, \"dock\", {\n // Properties\n /**\n * Gets or sets the `dock style` of the page template element.\n * @private\n */\n get: function () {\n return this.dockStyle;\n },\n set: function (value) {\n // if (this.dockStyle !== value && this.Type === TemplateType.None) {\n this.dockStyle = value;\n // Reset alignment.\n this.resetAlignment();\n // }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfPageTemplateElement.prototype, \"alignment\", {\n /**\n * Gets or sets `alignment` of the page template element.\n * @private\n */\n get: function () {\n return this.alignmentStyle;\n },\n set: function (value) {\n // if (this.alignmentStyle !== value) {\n this.setAlignment(value);\n // }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfPageTemplateElement.prototype, \"foreground\", {\n /**\n * Indicates whether the page template is located `in front of the page layers or behind of it`.\n * @private\n */\n get: function () {\n return this.isForeground;\n },\n set: function (value) {\n // if (this.foreground !== value) {\n this.isForeground = value;\n // }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfPageTemplateElement.prototype, \"background\", {\n /**\n * Indicates whether the page template is located `behind of the page layers or in front of it`.\n * @private\n */\n get: function () {\n return !this.isForeground;\n },\n set: function (value) {\n this.isForeground = !value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfPageTemplateElement.prototype, \"location\", {\n /**\n * Gets or sets `location` of the page template element.\n * @private\n */\n get: function () {\n return this.currentLocation;\n },\n set: function (value) {\n if (this.type === TemplateType.None) {\n this.currentLocation = value;\n }\n else {\n //\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfPageTemplateElement.prototype, \"x\", {\n /**\n * Gets or sets `X` co-ordinate of the template element on the page.\n * @private\n */\n get: function () {\n var value = (typeof this.currentLocation !== 'undefined') ? this.currentLocation.x : 0;\n return value;\n },\n set: function (value) {\n if (this.type === TemplateType.None) {\n this.currentLocation.x = value;\n }\n else {\n //\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfPageTemplateElement.prototype, \"y\", {\n /**\n * Gets or sets `Y` co-ordinate of the template element on the page.\n * @private\n */\n get: function () {\n var value = (typeof this.currentLocation !== 'undefined') ? this.currentLocation.y : 0;\n return value;\n },\n set: function (value) {\n if (this.type === TemplateType.None) {\n this.currentLocation.y = value;\n }\n else {\n //\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfPageTemplateElement.prototype, \"size\", {\n /**\n * Gets or sets `size` of the page template element.\n * @private\n */\n get: function () {\n return this.template.size;\n },\n set: function (value) {\n if (this.type === TemplateType.None) {\n this.template.reset(value);\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfPageTemplateElement.prototype, \"width\", {\n /**\n * Gets or sets `width` of the page template element.\n * @private\n */\n get: function () {\n return this.template.width;\n },\n set: function (value) {\n if (this.template.width !== value && this.type === TemplateType.None) {\n var size = this.template.size;\n size.width = value;\n this.template.reset(size);\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfPageTemplateElement.prototype, \"height\", {\n /**\n * Gets or sets `height` of the page template element.\n * @private\n */\n get: function () {\n return this.template.height;\n },\n set: function (value) {\n if (this.template.height !== value && this.type === TemplateType.None) {\n var size = this.template.size;\n size.height = value;\n this.template.reset(size);\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfPageTemplateElement.prototype, \"graphics\", {\n /**\n * Gets `graphics` context of the page template element.\n * @private\n */\n get: function () {\n return this.template.graphics;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfPageTemplateElement.prototype, \"template\", {\n /**\n * Gets Pdf `template` object.\n * @private\n */\n get: function () {\n // if (typeof this.pdfTemplate === 'undefined' || this.pdfTemplate == null) {\n // this.pdfTemplate = new PdfTemplate(this.size);\n // }\n return this.pdfTemplate;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfPageTemplateElement.prototype, \"type\", {\n /**\n * Gets or sets `type` of the usage of this page template.\n * @private\n */\n get: function () {\n return this.templateType;\n },\n set: function (value) {\n this.updateDocking(value);\n this.templateType = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfPageTemplateElement.prototype, \"bounds\", {\n /**\n * Gets or sets `bounds` of the page template.\n * @public\n */\n get: function () {\n return new RectangleF(new PointF(this.x, this.y), this.size);\n },\n set: function (value) {\n if (this.type === TemplateType.None) {\n this.location = new PointF(value.x, value.y);\n this.size = new SizeF(value.width, value.height);\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * `Initialize Bounds` Initialize the bounds value of the template.\n * @private\n */\n PdfPageTemplateElement.prototype.InitiateBounds = function (arg1, arg2, arg3, arg4, arg5) {\n this.x = arg1;\n this.y = arg2;\n this.pdfTemplate = new PdfTemplate(arg3, arg4);\n // this.graphics.colorSpace = this.page.document.colorSpace;\n };\n /**\n * `Updates Dock` property if template is used as header/footer.\n * @private\n */\n PdfPageTemplateElement.prototype.updateDocking = function (type) {\n if (type !== TemplateType.None) {\n switch (type) {\n case TemplateType.Top:\n this.dock = PdfDockStyle.Top;\n break;\n case TemplateType.Bottom:\n this.dock = PdfDockStyle.Bottom;\n break;\n case TemplateType.Left:\n this.dock = PdfDockStyle.Left;\n break;\n case TemplateType.Right:\n this.dock = PdfDockStyle.Right;\n break;\n }\n this.resetAlignment();\n }\n };\n /**\n * `Resets alignment` of the template.\n * @private\n */\n PdfPageTemplateElement.prototype.resetAlignment = function () {\n this.alignment = PdfAlignmentStyle.None;\n };\n /**\n * `Sets alignment` of the template.\n * @private\n */\n PdfPageTemplateElement.prototype.setAlignment = function (alignment) {\n if (this.dock === PdfDockStyle.None) {\n this.alignmentStyle = alignment;\n }\n else {\n // Template is docked and alignment has been changed.\n var canBeSet = false;\n switch (this.dock) {\n case PdfDockStyle.Left:\n canBeSet = (alignment === PdfAlignmentStyle.TopLeft || alignment === PdfAlignmentStyle.MiddleLeft ||\n alignment === PdfAlignmentStyle.BottomLeft || alignment === PdfAlignmentStyle.None);\n break;\n case PdfDockStyle.Top:\n canBeSet = (alignment === PdfAlignmentStyle.TopLeft || alignment === PdfAlignmentStyle.TopCenter ||\n alignment === PdfAlignmentStyle.TopRight || alignment === PdfAlignmentStyle.None);\n break;\n case PdfDockStyle.Right:\n canBeSet = (alignment === PdfAlignmentStyle.TopRight || alignment === PdfAlignmentStyle.MiddleRight ||\n alignment === PdfAlignmentStyle.BottomRight || alignment === PdfAlignmentStyle.None);\n break;\n case PdfDockStyle.Bottom:\n canBeSet = (alignment === PdfAlignmentStyle.BottomLeft || alignment === PdfAlignmentStyle.BottomCenter\n || alignment === PdfAlignmentStyle.BottomRight || alignment === PdfAlignmentStyle.None);\n break;\n case PdfDockStyle.Fill:\n canBeSet = (alignment === PdfAlignmentStyle.MiddleCenter || alignment === PdfAlignmentStyle.None);\n break;\n }\n if (canBeSet) {\n this.alignmentStyle = alignment;\n }\n }\n };\n /**\n * Draws the template.\n * @private\n */\n PdfPageTemplateElement.prototype.draw = function (layer, document) {\n var page = layer.page;\n var bounds = this.calculateBounds(page, document);\n if (bounds.x === -0) {\n bounds.x = 0;\n }\n layer.graphics.drawPdfTemplate(this.template, new PointF(bounds.x, bounds.y), new SizeF(bounds.width, bounds.height));\n };\n /**\n * Calculates bounds of the page template.\n * @private\n */\n PdfPageTemplateElement.prototype.calculateBounds = function (page, document) {\n var result = this.bounds;\n if (this.alignmentStyle !== PdfAlignmentStyle.None) {\n result = this.getAlignmentBounds(page, document);\n }\n else if (this.dockStyle !== PdfDockStyle.None) {\n result = this.getDockBounds(page, document);\n }\n return result;\n };\n /**\n * Calculates bounds according to the alignment.\n * @private\n */\n PdfPageTemplateElement.prototype.getAlignmentBounds = function (page, document) {\n var result = this.bounds;\n if (this.type === TemplateType.None) {\n result = this.getSimpleAlignmentBounds(page, document);\n }\n else {\n result = this.getTemplateAlignmentBounds(page, document);\n }\n return result;\n };\n /**\n * Calculates bounds according to the alignment.\n * @private\n */\n PdfPageTemplateElement.prototype.getSimpleAlignmentBounds = function (page, document) {\n var bounds = this.bounds;\n var pdfSection = page.section;\n var actualBounds = pdfSection.getActualBounds(document, page, false);\n var x = this.x;\n var y = this.y;\n switch (this.alignmentStyle) {\n case PdfAlignmentStyle.TopLeft:\n x = 0;\n y = 0;\n break;\n case PdfAlignmentStyle.TopCenter:\n x = (actualBounds.width - this.width) / 2;\n y = 0;\n break;\n case PdfAlignmentStyle.TopRight:\n x = actualBounds.width - this.width;\n y = 0;\n break;\n case PdfAlignmentStyle.MiddleLeft:\n x = 0;\n y = (actualBounds.height - this.height) / 2;\n break;\n case PdfAlignmentStyle.MiddleCenter:\n x = (actualBounds.width - this.width) / 2;\n y = (actualBounds.height - this.height) / 2;\n break;\n case PdfAlignmentStyle.MiddleRight:\n x = actualBounds.width - this.width;\n y = (actualBounds.height - this.height) / 2;\n break;\n case PdfAlignmentStyle.BottomLeft:\n x = 0;\n y = actualBounds.height - this.height;\n break;\n case PdfAlignmentStyle.BottomCenter:\n x = (actualBounds.width - this.width) / 2;\n y = actualBounds.height - this.height;\n break;\n case PdfAlignmentStyle.BottomRight:\n x = actualBounds.width - this.width;\n y = actualBounds.height - this.height;\n break;\n }\n bounds.x = x;\n bounds.y = y;\n return bounds;\n };\n /**\n * Calculates bounds according to the alignment.\n * @private\n */\n PdfPageTemplateElement.prototype.getTemplateAlignmentBounds = function (page, document) {\n var result = this.bounds;\n var section = page.section;\n var actualBounds = section.getActualBounds(document, page, false);\n var x = this.x;\n var y = this.y;\n switch (this.alignmentStyle) {\n case PdfAlignmentStyle.TopLeft:\n if (this.type === TemplateType.Left) {\n x = -actualBounds.x;\n y = 0;\n }\n else if (this.type === TemplateType.Top) {\n x = -actualBounds.x;\n y = -actualBounds.y;\n }\n break;\n case PdfAlignmentStyle.TopCenter:\n x = (actualBounds.width - this.width) / 2;\n y = -actualBounds.y;\n break;\n case PdfAlignmentStyle.TopRight:\n if (this.type === TemplateType.Right) {\n x = actualBounds.width + section.getRightIndentWidth(document, page, false) - this.width;\n y = 0;\n }\n else if (this.type === TemplateType.Top) {\n x = actualBounds.width + section.getRightIndentWidth(document, page, false) - this.width;\n y = -actualBounds.y;\n }\n break;\n case PdfAlignmentStyle.MiddleLeft:\n x = -actualBounds.x;\n y = (actualBounds.height - this.height) / 2;\n break;\n case PdfAlignmentStyle.MiddleCenter:\n x = (actualBounds.width - this.width) / 2;\n y = (actualBounds.height - this.height) / 2;\n break;\n case PdfAlignmentStyle.MiddleRight:\n x = actualBounds.width + section.getRightIndentWidth(document, page, false) - this.width;\n y = (actualBounds.height - this.height) / 2;\n break;\n case PdfAlignmentStyle.BottomLeft:\n if (this.type === TemplateType.Left) {\n x = -actualBounds.x;\n y = actualBounds.height - this.height;\n }\n else if (this.type === TemplateType.Bottom) {\n x = -actualBounds.x;\n y = actualBounds.height + section.getBottomIndentHeight(document, page, false) - this.height;\n }\n break;\n case PdfAlignmentStyle.BottomCenter:\n x = (actualBounds.width - this.width) / 2;\n y = actualBounds.height + section.getBottomIndentHeight(document, page, false) - this.height;\n break;\n case PdfAlignmentStyle.BottomRight:\n if (this.type === TemplateType.Right) {\n x = actualBounds.width + section.getRightIndentWidth(document, page, false) - this.width;\n y = actualBounds.height - this.height;\n }\n else if (this.type === TemplateType.Bottom) {\n x = actualBounds.width + section.getRightIndentWidth(document, page, false) - this.width;\n y = actualBounds.height + section.getBottomIndentHeight(document, page, false) - this.height;\n }\n break;\n }\n result.x = x;\n result.y = y;\n return result;\n };\n /**\n * Calculates bounds according to the docking.\n * @private\n */\n PdfPageTemplateElement.prototype.getDockBounds = function (page, document) {\n var result = this.bounds;\n if (this.type === TemplateType.None) {\n result = this.getSimpleDockBounds(page, document);\n }\n else {\n result = this.getTemplateDockBounds(page, document);\n }\n return result;\n };\n /**\n * Calculates bounds according to the docking.\n * @private\n */\n PdfPageTemplateElement.prototype.getSimpleDockBounds = function (page, document) {\n var result = this.bounds;\n var section = page.section;\n var actualBounds = section.getActualBounds(document, page, false);\n var x = this.x;\n var y = this.y;\n var width = this.width;\n var height = this.height;\n switch (this.dockStyle) {\n case PdfDockStyle.Left:\n x = 0;\n y = 0;\n width = this.width;\n height = actualBounds.height;\n break;\n case PdfDockStyle.Top:\n x = 0;\n y = 0;\n width = actualBounds.width;\n height = this.height;\n break;\n case PdfDockStyle.Right:\n x = actualBounds.width - this.width;\n y = 0;\n width = this.width;\n height = actualBounds.height;\n break;\n case PdfDockStyle.Bottom:\n x = 0;\n y = actualBounds.height - this.height;\n width = actualBounds.width;\n height = this.height;\n break;\n case PdfDockStyle.Fill:\n x = 0;\n x = 0;\n width = actualBounds.width;\n height = actualBounds.height;\n break;\n }\n result = new RectangleF(x, y, width, height);\n return result;\n };\n /**\n * Calculates template bounds basing on docking if template is a page template.\n * @private\n */\n PdfPageTemplateElement.prototype.getTemplateDockBounds = function (page, document) {\n var result = this.bounds;\n var section = page.section;\n var actualBounds = section.getActualBounds(document, page, false);\n var actualSize = section.pageSettings.getActualSize();\n var x = this.x;\n var y = this.y;\n var width = this.width;\n var height = this.height;\n switch (this.dockStyle) {\n case PdfDockStyle.Left:\n x = -actualBounds.x;\n y = 0;\n width = this.width;\n height = actualBounds.height;\n break;\n case PdfDockStyle.Top:\n x = -actualBounds.x;\n y = -actualBounds.y;\n width = actualSize.width;\n height = this.height;\n if (actualBounds.height < 0) {\n y = -actualBounds.y + actualSize.height;\n }\n break;\n case PdfDockStyle.Right:\n x = actualBounds.width + section.getRightIndentWidth(document, page, false) - this.width;\n y = 0;\n width = this.width;\n height = actualBounds.height;\n break;\n case PdfDockStyle.Bottom:\n x = -actualBounds.x;\n y = actualBounds.height + section.getBottomIndentHeight(document, page, false) - this.height;\n width = actualSize.width;\n height = this.height;\n if (actualBounds.height < 0) {\n y -= actualSize.height;\n }\n break;\n case PdfDockStyle.Fill:\n x = 0;\n x = 0;\n width = actualBounds.width;\n height = actualBounds.height;\n break;\n }\n result = new RectangleF(x, y, width, height);\n return result;\n };\n return PdfPageTemplateElement;\n}());\nexport { PdfPageTemplateElement };\n","/**\n * PdfNumbersConvertor.ts class for EJ2-PDF\n * @private\n */\nimport { PdfNumberStyle } from './../../pages/enum';\n/**\n * `PdfNumbersConvertor` for convert page number into numbers, roman letters, etc.,\n * @private\n */\nvar PdfNumbersConvertor = /** @class */ (function () {\n function PdfNumbersConvertor() {\n }\n // Static methods\n /**\n * Convert string value from page number with correct format.\n * @private\n */\n PdfNumbersConvertor.convert = function (intArabic, numberStyle) {\n var result = '';\n switch (numberStyle) {\n case PdfNumberStyle.None:\n result = '';\n break;\n case PdfNumberStyle.Numeric:\n result = intArabic.toString();\n break;\n case PdfNumberStyle.LowerLatin:\n result = this.arabicToLetter(intArabic).toLowerCase();\n break;\n case PdfNumberStyle.LowerRoman:\n result = this.arabicToRoman(intArabic).toLowerCase();\n break;\n case PdfNumberStyle.UpperLatin:\n result = this.arabicToLetter(intArabic);\n break;\n case PdfNumberStyle.UpperRoman:\n result = this.arabicToRoman(intArabic);\n break;\n }\n return result;\n };\n /**\n * Converts `arabic to roman` letters.\n * @private\n */\n PdfNumbersConvertor.arabicToRoman = function (intArabic) {\n var retval = '';\n var retvalM = this.generateNumber(intArabic, 1000, 'M');\n retval += retvalM.returnValue;\n intArabic = retvalM.intArabic;\n var retvalCM = this.generateNumber(intArabic, 900, 'CM');\n retval += retvalCM.returnValue;\n intArabic = retvalCM.intArabic;\n var retvalD = this.generateNumber(intArabic, 500, 'D');\n retval += retvalD.returnValue;\n intArabic = retvalD.intArabic;\n var retvalCD = this.generateNumber(intArabic, 400, 'CD');\n retval += retvalCD.returnValue;\n intArabic = retvalCD.intArabic;\n var retvalC = this.generateNumber(intArabic, 100, 'C');\n retval += retvalC.returnValue;\n intArabic = retvalC.intArabic;\n var retvalXC = this.generateNumber(intArabic, 90, 'XC');\n retval += retvalXC.returnValue;\n intArabic = retvalXC.intArabic;\n var retvalL = this.generateNumber(intArabic, 50, 'L');\n retval += retvalL.returnValue;\n intArabic = retvalL.intArabic;\n var retvalXL = this.generateNumber(intArabic, 40, 'XL');\n retval += retvalXL.returnValue;\n intArabic = retvalXL.intArabic;\n var retvalX = this.generateNumber(intArabic, 10, 'X');\n retval += retvalX.returnValue;\n intArabic = retvalX.intArabic;\n var retvalIX = this.generateNumber(intArabic, 9, 'IX');\n retval += retvalIX.returnValue;\n intArabic = retvalIX.intArabic;\n var retvalV = this.generateNumber(intArabic, 5, 'V');\n retval += retvalV.returnValue;\n intArabic = retvalV.intArabic;\n var retvalIV = this.generateNumber(intArabic, 4, 'IV');\n retval += retvalIV.returnValue;\n intArabic = retvalIV.intArabic;\n var retvalI = this.generateNumber(intArabic, 1, 'I');\n retval += retvalI.returnValue;\n intArabic = retvalI.intArabic;\n return retval.toString();\n };\n /**\n * Converts `arabic to normal letters`.\n * @private\n */\n PdfNumbersConvertor.arabicToLetter = function (arabic) {\n var stack = this.convertToLetter(arabic);\n var result = '';\n while (stack.length > 0) {\n var num = stack.pop();\n result = this.appendChar(result, num);\n }\n return result.toString();\n };\n /**\n * Generate a string value of an input number.\n * @private\n */\n PdfNumbersConvertor.generateNumber = function (value, magnitude, letter) {\n var numberstring = '';\n while (value >= magnitude) {\n value -= magnitude;\n numberstring += letter;\n }\n return { returnValue: numberstring.toString(), intArabic: value };\n };\n /**\n * Convert a input number into letters.\n * @private\n */\n PdfNumbersConvertor.convertToLetter = function (arabic) {\n if (arabic <= 0) {\n throw Error('ArgumentOutOfRangeException-arabic, Value can not be less 0');\n }\n var stack = [];\n while (arabic > this.letterLimit) {\n var remainder = arabic % this.letterLimit;\n if (remainder === 0.0) {\n arabic = arabic / this.letterLimit - 1;\n remainder = this.letterLimit;\n }\n else {\n arabic /= this.letterLimit;\n }\n stack.push(remainder);\n }\n stack.push(arabic);\n return stack;\n };\n /**\n * Convert number to actual string value.\n * @private\n */\n PdfNumbersConvertor.appendChar = function (builder, value) {\n var letter = String.fromCharCode(PdfNumbersConvertor.acsiiStartIndex + value);\n builder += letter;\n return builder;\n };\n // Fields\n /**\n * numbers of letters in english [readonly].\n * @default = 26.0\n * @private\n */\n PdfNumbersConvertor.letterLimit = 26.0;\n /**\n * Resturns `acsii start index` value.\n * @default 64\n * @private\n */\n PdfNumbersConvertor.acsiiStartIndex = (65 - 1);\n return PdfNumbersConvertor;\n}());\nexport { PdfNumbersConvertor };\n","/**\n * Represent class to store information about `template and value pairs`.\n * @private\n */\nvar PdfTemplateValuePair = /** @class */ (function () {\n function PdfTemplateValuePair(template, value) {\n // Fields\n /**\n * Internal variable to store template.\n * @default null\n * @private\n */\n this.pdfTemplate = null;\n /**\n * Intenal variable to store value.\n * @private\n */\n this.content = '';\n if (typeof template === 'undefined') {\n //\n }\n else {\n this.template = template;\n this.value = value;\n }\n }\n Object.defineProperty(PdfTemplateValuePair.prototype, \"template\", {\n // Properties\n /**\n * Gets or sets the template.\n * @private\n */\n get: function () {\n return this.pdfTemplate;\n },\n set: function (value) {\n this.pdfTemplate = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfTemplateValuePair.prototype, \"value\", {\n /**\n * Gets or sets the value.\n * @private\n */\n get: function () {\n return this.content;\n },\n set: function (value) {\n this.content = value;\n },\n enumerable: true,\n configurable: true\n });\n return PdfTemplateValuePair;\n}());\nexport { PdfTemplateValuePair };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * PdfAutomaticField.ts class for EJ2-PDF\n */\nimport { PdfAutomaticField } from './automatic-field';\nimport { TemporaryDictionary } from './../../collections/object-object-pair/dictionary';\nimport { PdfTemplateValuePair } from './pdf-template-value-pair';\nimport { SizeF, PointF } from './../../drawing/pdf-drawing';\nimport { PdfTemplate } from './../../graphics/figures/pdf-template';\n/**\n * Represents automatic field which has the same value within the `PdfGraphics`.\n */\nvar PdfMultipleValueField = /** @class */ (function (_super) {\n __extends(PdfMultipleValueField, _super);\n function PdfMultipleValueField() {\n var _this = _super.call(this) || this;\n // Fields\n /**\n * Stores the instance of dictionary values of `graphics and template value pair`.\n * @private\n */\n _this.list = new TemporaryDictionary();\n return _this;\n }\n // Implementation\n /* tslint:disable */\n PdfMultipleValueField.prototype.performDraw = function (graphics, location, scalingX, scalingY) {\n _super.prototype.performDrawHelper.call(this, graphics, location, scalingX, scalingY);\n var value = this.getValue(graphics);\n var template = new PdfTemplate(this.getSize());\n this.list.setValue(graphics, new PdfTemplateValuePair(template, value));\n var g = template.graphics;\n var size = this.getSize();\n template.graphics.drawString(value, this.getFont(), this.pen, this.getBrush(), 0, 0, size.width, size.height, this.stringFormat);\n var drawLocation = new PointF(location.x + this.location.x, location.y + this.location.y);\n graphics.drawPdfTemplate(template, drawLocation, new SizeF(template.width * scalingX, template.height * scalingY));\n };\n return PdfMultipleValueField;\n}(PdfAutomaticField));\nexport { PdfMultipleValueField };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { PdfBrush } from './../../graphics/brushes/pdf-brush';\nimport { PdfNumberStyle } from './../../pages/enum';\nimport { PdfNumbersConvertor } from './pdf-numbers-convertor';\nimport { PdfMultipleValueField } from './multiple-value-field';\n/**\n * Represents PDF document `page number field`.\n * @public\n */\nvar PdfPageNumberField = /** @class */ (function (_super) {\n __extends(PdfPageNumberField, _super);\n function PdfPageNumberField(font, arg2) {\n var _this = _super.call(this) || this;\n // Fields\n /**\n * Stores the number style of the page number field.\n * @private\n */\n _this.internalNumberStyle = PdfNumberStyle.Numeric;\n if (typeof arg2 === 'undefined') {\n _this.font = font;\n }\n else if (arg2 instanceof PdfBrush) {\n _this.font = font;\n _this.brush = arg2;\n }\n else {\n _this.font = font;\n _this.bounds = arg2;\n }\n return _this;\n }\n Object.defineProperty(PdfPageNumberField.prototype, \"numberStyle\", {\n // Properties\n /**\n * Gets and sets the number style of the page number field.\n * @private\n */\n get: function () {\n return this.internalNumberStyle;\n },\n set: function (value) {\n this.internalNumberStyle = value;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Return the `string` value of page number field.\n * @public\n */\n PdfPageNumberField.prototype.getValue = function (graphics) {\n var result = null;\n var page = this.getPageFromGraphics(graphics);\n result = this.internalGetValue(page);\n return result;\n };\n /**\n * Internal method to `get actual value of page number`.\n * @private\n */\n PdfPageNumberField.prototype.internalGetValue = function (page) {\n var document = page.document;\n var pageIndex = document.pages.indexOf(page) + 1;\n return PdfNumbersConvertor.convert(pageIndex, this.numberStyle);\n };\n return PdfPageNumberField;\n}(PdfMultipleValueField));\nexport { PdfPageNumberField };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * PdfCompositeField.ts class for EJ2-PDF\n */\nimport { PdfMultipleValueField } from './multiple-value-field';\n/**\n * Represents class which can concatenate multiple automatic fields into single string.\n */\nvar PdfCompositeField = /** @class */ (function (_super) {\n __extends(PdfCompositeField, _super);\n // Constructor\n /**\n * Initialize a new instance of `PdfCompositeField` class.\n * @param font Font of the field.\n * @param brush Color of the field.\n * @param text Content of the field.\n * @param list List of the automatic fields in specific order based on the text content.\n */\n function PdfCompositeField(font, brush, text) {\n var list = [];\n for (var _i = 3; _i < arguments.length; _i++) {\n list[_i - 3] = arguments[_i];\n }\n var _this = _super.call(this) || this;\n // Fields\n /**\n * Stores the array of automatic fields.\n * @private\n */\n _this.internalAutomaticFields = null;\n /**\n * Stores the text value of the field.\n * @private\n */\n _this.internalText = '';\n _this.font = font;\n _this.brush = brush;\n _this.text = text;\n _this.automaticFields = list;\n return _this;\n }\n Object.defineProperty(PdfCompositeField.prototype, \"text\", {\n // Properties\n /**\n * Gets and sets the content of the field.\n * @public\n */\n get: function () {\n return this.internalText;\n },\n set: function (value) {\n this.internalText = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfCompositeField.prototype, \"automaticFields\", {\n /**\n * Gets and sets the list of the field to drawn.\n * @public\n */\n get: function () {\n return this.internalAutomaticFields;\n },\n set: function (value) {\n this.internalAutomaticFields = value;\n },\n enumerable: true,\n configurable: true\n });\n // Implementation\n /**\n * Return the actual value generated from the list of automatic fields.\n * @public\n */\n PdfCompositeField.prototype.getValue = function (graphics) {\n var values = [];\n var text = this.text.toString();\n if (typeof this.automaticFields !== 'undefined' && this.automaticFields != null && this.automaticFields.length > 0) {\n for (var i = 0; i < this.automaticFields.length; i++) {\n var automaticField = this.automaticFields[i];\n text = text.replace('{' + i + '}', automaticField.getValue(graphics));\n }\n }\n return text;\n };\n return PdfCompositeField;\n}(PdfMultipleValueField));\nexport { PdfCompositeField };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * PdfSingleValueField.ts class for EJ2-PDF\n */\nimport { PdfAutomaticField } from './automatic-field';\nimport { TemporaryDictionary } from './../../collections/object-object-pair/dictionary';\nimport { PdfTemplateValuePair } from './pdf-template-value-pair';\nimport { PointF, SizeF } from './../../drawing/pdf-drawing';\nimport { PdfTemplate } from './../../graphics/figures/pdf-template';\n/**\n * Represents automatic field which has the same value in the whole document.\n */\nvar PdfSingleValueField = /** @class */ (function (_super) {\n __extends(PdfSingleValueField, _super);\n // Constructors\n function PdfSingleValueField() {\n var _this = _super.call(this) || this;\n // Fields\n /* tslint:disable */\n _this.list = new TemporaryDictionary();\n /* tslint:enable */\n _this.painterGraphics = [];\n return _this;\n }\n PdfSingleValueField.prototype.performDraw = function (graphics, location, scalingX, scalingY) {\n _super.prototype.performDrawHelper.call(this, graphics, location, scalingX, scalingY);\n var page = this.getPageFromGraphics(graphics);\n var document = page.document;\n var textValue = this.getValue(graphics);\n /* tslint:disable */\n if (this.list.containsKey(document)) {\n var pair = this.list.getValue(document);\n var drawLocation = new PointF(location.x + this.location.x, location.y + this.location.y);\n graphics.drawPdfTemplate(pair.template, drawLocation, new SizeF(pair.template.width * scalingX, pair.template.height * scalingY));\n this.painterGraphics.push(graphics);\n }\n else {\n var size = this.getSize();\n var template = new PdfTemplate(size);\n this.list.setValue(document, new PdfTemplateValuePair(template, textValue));\n template.graphics.drawString(textValue, this.getFont(), this.pen, this.getBrush(), 0, 0, size.width, size.height, this.stringFormat);\n var drawLocation = new PointF(location.x + this.location.x, location.y + this.location.y);\n graphics.drawPdfTemplate(template, drawLocation, new SizeF(template.width * scalingX, template.height * scalingY));\n this.painterGraphics.push(graphics);\n }\n /* tslint:enable */\n };\n return PdfSingleValueField;\n}(PdfAutomaticField));\nexport { PdfSingleValueField };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * PdfPageCountField.ts class for EJ2-PDF\n */\nimport { PdfSingleValueField } from './single-value-field';\nimport { PdfNumberStyle } from './../../pages/enum';\nimport { PdfBrush } from './../../graphics/brushes/pdf-brush';\nimport { PdfNumbersConvertor } from './pdf-numbers-convertor';\n/**\n * Represents total PDF document page count automatic field.\n */\nvar PdfPageCountField = /** @class */ (function (_super) {\n __extends(PdfPageCountField, _super);\n function PdfPageCountField(font, arg2) {\n var _this = _super.call(this) || this;\n // Fields\n /**\n * Stores the number style of the field.\n * @private\n */\n _this.internalNumberStyle = PdfNumberStyle.Numeric;\n if (typeof arg2 === 'undefined') {\n _this.font = font;\n }\n else if (arg2 instanceof PdfBrush) {\n _this.font = font;\n _this.brush = arg2;\n }\n else {\n _this.font = font;\n _this.bounds = arg2;\n }\n return _this;\n }\n Object.defineProperty(PdfPageCountField.prototype, \"numberStyle\", {\n // Properties\n /**\n * Gets and sets the number style of the field.\n * @public\n */\n get: function () {\n return this.internalNumberStyle;\n },\n set: function (value) {\n this.internalNumberStyle = value;\n },\n enumerable: true,\n configurable: true\n });\n // Implementation\n /**\n * Return the actual value of the content to drawn.\n * @public\n */\n PdfPageCountField.prototype.getValue = function (graphics) {\n var result = null;\n var page = this.getPageFromGraphics(graphics);\n var document = page.section.parent.document;\n var count = document.pages.count;\n result = PdfNumbersConvertor.convert(count, this.numberStyle);\n return result;\n };\n return PdfPageCountField;\n}(PdfSingleValueField));\nexport { PdfPageCountField };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * PdfTrueTypeFont.ts class for EJ2-PDF\n */\nimport { UnicodeTrueTypeFont } from './unicode-true-type-font';\nimport { PdfFont } from './pdf-font';\nimport { PdfFontStyle } from './enum';\nimport { PdfDocument } from './../../document/pdf-document';\nimport { PdfTextDirection } from './../enum';\nimport { RtlRenderer } from './rtl-renderer';\n//https://www.giftofspeed.com/base64-encoder/\nvar PdfTrueTypeFont = /** @class */ (function (_super) {\n __extends(PdfTrueTypeFont, _super);\n function PdfTrueTypeFont(base64String, size, style) {\n var _this = _super.call(this, size) || this;\n /**\n * Indicates whether the font is embedded or not.\n * @private\n */\n _this.isEmbedFont = false;\n /**\n * Indicates whether the font is unicoded or not.\n * @private\n */\n _this.isUnicode = true;\n if (style !== undefined) {\n _this.createFontInternal(base64String, style);\n }\n else {\n _this.createFontInternal(base64String, PdfFontStyle.Regular);\n }\n return _this;\n }\n PdfTrueTypeFont.prototype.equalsToFont = function (font) {\n var result = false;\n //let result : boolean = this.fontInternal.equalsToFont(font);\n return result;\n };\n PdfTrueTypeFont.prototype.getLineWidth = function (line, format) {\n var width = 0;\n if (format !== null && typeof format !== 'undefined' && format.textDirection !== PdfTextDirection.None) {\n var returnValue = this.getUnicodeLineWidth(line, /*out*/ width, format);\n width = returnValue.width;\n }\n else {\n width = this.fontInternal.getLineWidth(line);\n }\n var size = this.metrics.getSize(format);\n width *= (PdfFont.charSizeMultiplier * size);\n width = this.applyFormatSettings(line, format, width);\n return width;\n };\n /**\n * Returns width of the char.\n */\n PdfTrueTypeFont.prototype.getCharWidth = function (charCode, format) {\n var codeWidth = this.fontInternal.getCharWidth(charCode);\n var size = this.metrics.getSize(format);\n codeWidth *= (0.001 * size);\n return codeWidth;\n };\n //Implementation\n PdfTrueTypeFont.prototype.createFontInternal = function (base64String, style) {\n this.fontInternal = new UnicodeTrueTypeFont(base64String, this.size);\n this.calculateStyle(style);\n this.initializeInternals();\n };\n PdfTrueTypeFont.prototype.calculateStyle = function (style) {\n var iStyle = this.fontInternal.ttfMetrics.macStyle;\n if ((style & PdfFontStyle.Underline) !== 0) {\n iStyle |= PdfFontStyle.Underline;\n }\n if ((style & PdfFontStyle.Strikeout) !== 0) {\n iStyle |= PdfFontStyle.Strikeout;\n }\n this.setStyle(iStyle);\n };\n PdfTrueTypeFont.prototype.initializeInternals = function () {\n var equalFont = null;\n if (PdfDocument.enableCache) {\n // Search for the similar fonts.\n equalFont = PdfDocument.cache.search(this);\n }\n var internals = null;\n // There is not equal font in the cache.\n if (equalFont !== null && equalFont !== undefined) {\n // Get the settings from the cached font.\n internals = equalFont.getInternals();\n var metrics = equalFont.metrics;\n metrics = metrics.clone();\n metrics.size = this.size;\n this.metrics = metrics;\n this.fontInternal = equalFont.fontInternal;\n }\n else {\n if (equalFont == null) {\n if (this.fontInternal instanceof UnicodeTrueTypeFont) {\n this.fontInternal.isEmbed = this.isEmbedFont;\n }\n this.fontInternal.createInternals();\n internals = this.fontInternal.getInternals();\n this.metrics = this.fontInternal.metrics;\n }\n }\n this.metrics.isUnicodeFont = true;\n this.setInternals(internals);\n //this.ttfReader = (this.fontInternal as UnicodeTrueTypeFont).ttfReader;\n };\n /**\n * Stores used symbols.\n */\n PdfTrueTypeFont.prototype.setSymbols = function (text) {\n var internalFont = this.fontInternal;\n if (internalFont != null) {\n internalFont.setSymbols(text);\n }\n };\n Object.defineProperty(PdfTrueTypeFont.prototype, \"Unicode\", {\n /**\n * Property\n *\n */\n get: function () {\n return this.isUnicode;\n },\n enumerable: true,\n configurable: true\n });\n // public get Font() : UnicodeTrueTypeFont {\n // return this.fontInternal as UnicodeTrueTypeFont;\n // }\n PdfTrueTypeFont.prototype.getUnicodeLineWidth = function (line, /*out*/ width, format) {\n // if (line == null) {\n // throw new Error('ArgumentNullException : line');\n // }\n width = 0;\n var glyphIndices = null;\n var rtlRender = new RtlRenderer();\n /* tslint:disable-next-line:max-line-length */\n var result = rtlRender.getGlyphIndex(line, this, (format.textDirection === PdfTextDirection.RightToLeft) ? true : false, /*out*/ glyphIndices, true);\n var resultGlyph = result.success;\n glyphIndices = result.glyphs;\n if (resultGlyph && glyphIndices !== null) {\n var ttfReader = this.fontInternal.ttfReader;\n for (var i = 0, len = glyphIndices.length; i < len; i++) {\n var glyphIndex = glyphIndices[i];\n var glyph = ttfReader.getGlyph(glyphIndex);\n if (glyph !== null && typeof glyph !== 'undefined') {\n width += glyph.width;\n }\n }\n }\n return { success: resultGlyph, width: width };\n };\n return PdfTrueTypeFont;\n}(PdfFont));\nexport { PdfTrueTypeFont };\n","import * as events from '../base/constant';\nimport { PdfDocument, PdfGrid, PdfBorders, PdfPen, PdfPaddings } from '@syncfusion/ej2-pdf-export';\nimport { PdfStandardFont, PdfFontFamily, PdfFontStyle, PdfBitmap } from '@syncfusion/ej2-pdf-export';\nimport { PdfStringFormat, PdfTextAlignment, PdfColor, PdfSolidBrush, PdfTextWebLink } from '@syncfusion/ej2-pdf-export';\nimport { PdfVerticalAlignment, RectangleF, PdfPageTemplateElement } from '@syncfusion/ej2-pdf-export';\nimport { PointF, PdfPageNumberField, PdfCompositeField } from '@syncfusion/ej2-pdf-export';\nimport { PdfPageCountField, SizeF, PdfPageSettings, PdfPageOrientation } from '@syncfusion/ej2-pdf-export';\nimport { PdfTrueTypeFont } from '@syncfusion/ej2-pdf-export';\nimport { ExportHelper, ExportValueFormatter } from './export-helper';\nimport { Data } from '../actions/data';\nimport { SummaryModelGenerator, GroupSummaryModelGenerator, CaptionSummaryModelGenerator } from '../services/summary-model-generator';\nimport { compile, getEnumValue, isNullOrUndefined, detach } from '@syncfusion/ej2-base';\nimport { CellType } from '../base/enum';\nimport { DataManager, Query } from '@syncfusion/ej2-data';\nimport { getValue } from '@syncfusion/ej2-base';\nimport { getUid, getPrintGridModel, measureColumnDepth, isExportColumns, updateColumnTypeForExportColumns, prepareColumns } from '../base/util';\n/**\n * `PDF Export` module is used to handle the exportToPDF action.\n *\n * @hidden\n */\nvar PdfExport = /** @class */ (function () {\n /**\n * Constructor for the Grid PDF Export module\n *\n * @param {IGrid} parent - specifies the IGrid\n * @hidden\n */\n function PdfExport(parent) {\n this.hideColumnInclude = false;\n this.currentViewData = false;\n this.customDataSource = false;\n this.isGrouping = false;\n this.headerOnPages = [];\n this.drawPosition = { xPosition: 0, yPosition: 0 };\n this.parent = parent;\n this.helper = new ExportHelper(parent);\n this.gridPool = {};\n }\n /**\n * For internal use only - Get the module name.\n *\n * @returns {string} returns the module name\n */\n PdfExport.prototype.getModuleName = function () {\n return 'PdfExport';\n };\n PdfExport.prototype.init = function (parent) {\n this.exportValueFormatter = new ExportValueFormatter(parent.locale);\n this.pdfDocument = undefined;\n this.hideColumnInclude = false;\n this.currentViewData = false;\n this.parent = parent;\n this.isGrouping = false;\n this.isExporting = true;\n parent.id = getUid('main-grid');\n this.gridPool[parent.id] = false;\n this.pdfPageSettings = new PdfPageSettings();\n };\n PdfExport.prototype.exportWithData = function (parent, pdfDoc, resolve, returnType, pdfExportProperties, isMultipleExport, reject) {\n var _this = this;\n this.init(parent);\n if (!isNullOrUndefined(pdfDoc)) {\n this.pdfDocument = pdfDoc;\n }\n else {\n this.pdfDocument = new PdfDocument();\n }\n this.processExport(parent, returnType, pdfExportProperties, isMultipleExport).then(function () {\n _this.isExporting = false;\n parent.trigger(events.pdfExportComplete, _this.isBlob ? { promise: _this.blobPromise } : {});\n _this.parent.log('exporting_complete', _this.getModuleName());\n resolve(_this.pdfDocument);\n }).catch(function (e) {\n reject(_this.pdfDocument);\n _this.parent.trigger(events.actionFailure, e);\n });\n };\n /**\n * Used to map the input data\n *\n * @param {IGrid} parent - specifies the IGrid\n * @param {PdfExportProperties} pdfExportProperties - specifies the PdfExportProperties\n * @param {boolean} isMultipleExport - specifies the isMultipleExport\n * @param {Object} pdfDoc - specifies the pdfDoc\n * @param {boolean} isBlob - speciies whether it is Blob or not\n * @returns {void}\n */\n PdfExport.prototype.Map = function (parent, pdfExportProperties, isMultipleExport, pdfDoc, isBlob) {\n var _this = this;\n this.data = new Data(this.parent);\n this.isBlob = isBlob;\n this.gridPool = {};\n var query = pdfExportProperties && pdfExportProperties.query ? pdfExportProperties.query : new Query();\n if (parent.childGrid && !(!isNullOrUndefined(pdfExportProperties) && pdfExportProperties.hierarchyExportMode === 'None')) {\n parent.expandedRows = getPrintGridModel(parent).expandedRows;\n }\n var args = {\n requestType: 'beforePdfExport', cancel: false,\n headerPageNumbers: [], gridDrawPosition: { xPosition: 0, yPosition: 0 }, generateQuery: false\n };\n var gridObject = 'gridObject';\n args[\"\" + gridObject] = parent;\n var can = 'cancel';\n var generateQuery = 'generateQuery';\n var header = 'headerPageNumbers';\n var drawPos = 'gridDrawPosition';\n parent.trigger(events.beforePdfExport, args);\n if (args[\"\" + can] === true) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n return new Promise(function (resolve, reject) {\n return resolve();\n });\n }\n if (isExportColumns(pdfExportProperties)) {\n updateColumnTypeForExportColumns(pdfExportProperties, parent);\n }\n if (args[\"\" + generateQuery]) {\n query = ExportHelper.getQuery(parent, this.data);\n }\n this.headerOnPages = args[\"\" + header];\n this.drawPosition = args[\"\" + drawPos];\n this.parent.log('exporting_begin', this.getModuleName());\n if (!isNullOrUndefined(pdfExportProperties) && !isNullOrUndefined(pdfExportProperties.dataSource)) {\n pdfExportProperties.dataSource = pdfExportProperties.dataSource instanceof DataManager ?\n pdfExportProperties.dataSource : new DataManager(pdfExportProperties.dataSource);\n return new Promise(function (resolve, reject) {\n pdfExportProperties.dataSource.executeQuery(query).then(function (returnType) {\n _this.exportWithData(parent, pdfDoc, resolve, returnType, pdfExportProperties, isMultipleExport, reject);\n });\n });\n }\n else if (!isNullOrUndefined(pdfExportProperties) && pdfExportProperties.exportType === 'CurrentPage') {\n return new Promise(function (resolve, reject) {\n _this.exportWithData(parent, pdfDoc, resolve, _this.parent.getCurrentViewRecords(), pdfExportProperties, isMultipleExport, reject);\n });\n }\n else {\n var allPromise_1 = [];\n allPromise_1.push(this.data.getData({}, ExportHelper.getQuery(parent, this.data)));\n allPromise_1.push(this.helper.getColumnData(parent));\n return new Promise(function (resolve, reject) {\n Promise.all(allPromise_1).then(function (e) {\n _this.init(parent);\n if (!isNullOrUndefined(pdfDoc)) {\n _this.pdfDocument = pdfDoc;\n }\n else {\n _this.pdfDocument = new PdfDocument();\n }\n _this.processExport(parent, e[0], pdfExportProperties, isMultipleExport).then(function () {\n _this.isExporting = false;\n parent.trigger(events.pdfExportComplete, _this.isBlob ? { promise: _this.blobPromise } : {});\n _this.parent.log('exporting_complete', _this.getModuleName());\n resolve(_this.pdfDocument);\n }).catch(function (e) {\n reject(_this.pdfDocument);\n _this.parent.trigger(events.actionFailure, e);\n });\n });\n });\n }\n };\n PdfExport.prototype.processExport = function (gObj, returnType, pdfExportProperties, isMultipleExport) {\n var _this = this;\n var section = this.pdfDocument.sections.add();\n var pdfGrid;\n this.processSectionExportProperties(section, pdfExportProperties);\n var pdfPage = section.pages.add();\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n return new Promise(function (resolve, reject) {\n pdfGrid = _this.processGridExport(gObj, returnType, pdfExportProperties);\n _this.globalResolve = resolve;\n _this.gridPool[gObj.id] = true;\n _this.helper.checkAndExport(_this.gridPool, _this.globalResolve);\n }).then(function () {\n // draw the grid\n var xPosition = 'xPosition';\n var yPosition = 'yPosition';\n pdfGrid.draw(pdfPage, _this.drawPosition[\"\" + xPosition], _this.drawPosition[\"\" + yPosition]);\n _this.drawHeader(pdfExportProperties);\n if (!isMultipleExport) {\n // save the PDF\n if (!_this.isBlob) {\n if (!isNullOrUndefined(pdfExportProperties) && pdfExportProperties.fileName) {\n _this.pdfDocument.save(pdfExportProperties.fileName);\n }\n else {\n _this.pdfDocument.save('Export.pdf');\n }\n }\n else {\n _this.blobPromise = _this.pdfDocument.save();\n }\n _this.pdfDocument.destroy();\n delete gObj.expandedRows;\n }\n return _this.pdfDocument;\n });\n };\n PdfExport.prototype.processSectionExportProperties = function (section, pdfExportProperties) {\n if (!isNullOrUndefined(pdfExportProperties) && (!isNullOrUndefined(pdfExportProperties.pageOrientation)\n || !isNullOrUndefined(pdfExportProperties.pageSize))) {\n this.pdfPageSettings.orientation = (pdfExportProperties.pageOrientation === 'Landscape') ?\n PdfPageOrientation.Landscape : PdfPageOrientation.Portrait;\n this.pdfPageSettings.size = this.getPageSize(pdfExportProperties.pageSize);\n section.setPageSettings(this.pdfPageSettings);\n }\n return section;\n };\n PdfExport.prototype.processGridExport = function (gObj, returnType, pdfExportProperties) {\n var allowHorizontalOverflow = true;\n var isFrozen = this.parent.isFrozenGrid() && !this.parent.getFrozenColumns();\n if (!isNullOrUndefined(pdfExportProperties)) {\n this.gridTheme = pdfExportProperties.theme;\n allowHorizontalOverflow = isNullOrUndefined(pdfExportProperties.allowHorizontalOverflow) ?\n true : pdfExportProperties.allowHorizontalOverflow;\n }\n var helper = new ExportHelper(gObj, this.helper.getForeignKeyData());\n var dataSource = this.processExportProperties(pdfExportProperties, returnType.result);\n var columns = isExportColumns(pdfExportProperties) ?\n prepareColumns(pdfExportProperties.columns, gObj.enableColumnVirtualization) :\n helper.getGridExportColumns(isFrozen ? gObj.getColumns() : gObj.columns);\n columns = columns.filter(function (columns) { return isNullOrUndefined(columns.commands); });\n var isGrouping = false;\n if (gObj.groupSettings.columns.length) {\n isGrouping = true;\n }\n if (gObj.childGrid && !isNullOrUndefined(pdfExportProperties)) {\n gObj.hierarchyPrintMode = pdfExportProperties.hierarchyExportMode || 'Expanded';\n }\n // create a grid\n var pdfGrid = new PdfGrid();\n // get header theme style\n var headerThemeStyle = this.getHeaderThemeStyle();\n var border = headerThemeStyle.border;\n var headerFont = headerThemeStyle.font;\n var headerBrush = headerThemeStyle.brush;\n var returnValue = helper.getHeaders(columns, this.hideColumnInclude);\n // Column collection with respect to the records in the grid\n var gridColumns = returnValue.columns;\n // process grid header content\n pdfGrid = this.processGridHeaders(gObj.groupSettings.columns.length, pdfGrid, returnValue.rows, gridColumns, border, headerFont, headerBrush, gObj, allowHorizontalOverflow, columns);\n // set alignment, width and type of the values of the column\n this.setColumnProperties(gridColumns, pdfGrid, helper, gObj, allowHorizontalOverflow);\n var captionThemeStyle = this.getSummaryCaptionThemeStyle();\n if (!isNullOrUndefined(dataSource) && dataSource.length) {\n if (isGrouping) {\n if (!isNullOrUndefined(captionThemeStyle.border)) {\n border = captionThemeStyle.border;\n }\n this.processGroupedRecords(pdfGrid, dataSource, gridColumns, gObj, border, 0, captionThemeStyle.font, captionThemeStyle.\n brush, captionThemeStyle.backgroundBrush, returnType, pdfExportProperties, helper, 0);\n }\n else {\n this.processRecord(border, gridColumns, gObj, dataSource, pdfGrid, 0, pdfExportProperties, helper, 0);\n }\n if (!isNullOrUndefined(returnType.aggregates)) {\n var summaryModel = new SummaryModelGenerator(gObj);\n var sRows = void 0;\n var column = summaryModel.getColumns();\n column = column.filter(function (col) { return isNullOrUndefined(col.commands) && col.type !== 'checkbox'; });\n if (gObj.aggregates.length && this.parent !== gObj) {\n gObj.aggregateModule.prepareSummaryInfo();\n }\n if (this.customDataSource) {\n sRows = summaryModel.generateRows(dataSource, returnType.aggregates);\n }\n else if (this.currentViewData) {\n sRows = summaryModel.generateRows(this.parent.getCurrentViewRecords(), returnType.aggregates);\n }\n else if (isGrouping) {\n sRows = summaryModel.generateRows(dataSource.records, returnType.aggregates);\n }\n else {\n sRows = summaryModel.generateRows(returnType.result, returnType.aggregates, null, null, column);\n }\n this.processAggregates(sRows, pdfGrid, border, captionThemeStyle.font, captionThemeStyle.brush, captionThemeStyle.backgroundBrush, false, null, null, null, isGrouping ? false : true);\n }\n }\n else {\n var row = pdfGrid.rows.addRow();\n row.style.setBorder(border);\n }\n return pdfGrid;\n };\n PdfExport.prototype.getSummaryCaptionThemeStyle = function () {\n if (!isNullOrUndefined(this.gridTheme) && !isNullOrUndefined(this.gridTheme.caption)) {\n var fontSize = !isNullOrUndefined(this.gridTheme.caption.fontSize) ? this.gridTheme.caption.fontSize : 9.75;\n var fontFamily = !isNullOrUndefined(this.gridTheme.caption.fontName) ?\n this.getFontFamily(this.gridTheme.caption.fontName) : PdfFontFamily.Helvetica;\n var fontStyle = this.getFontStyle(this.gridTheme.caption);\n var pdfColor = new PdfColor(0, 0, 0);\n if (!isNullOrUndefined(this.gridTheme.caption.fontColor)) {\n var penBrushColor = this.hexToRgb(this.gridTheme.caption.fontColor);\n pdfColor = new PdfColor(penBrushColor.r, penBrushColor.g, penBrushColor.b);\n }\n var borderCaption = this.gridTheme.caption.border ? this.getBorderStyle(this.gridTheme.caption.border) : null;\n var font = new PdfStandardFont(fontFamily, fontSize, fontStyle);\n if (!isNullOrUndefined(this.gridTheme.caption.font)) {\n font = this.gridTheme.caption.font;\n }\n return { font: font, brush: new PdfSolidBrush(pdfColor), backgroundBrush: new PdfSolidBrush(new PdfColor(246, 246, 246)),\n border: borderCaption };\n }\n else {\n //Material theme\n return { font: new PdfStandardFont(PdfFontFamily.Helvetica, 9.75), brush: new PdfSolidBrush(new PdfColor(0, 0, 0)),\n backgroundBrush: new PdfSolidBrush(new PdfColor(246, 246, 246)) };\n }\n };\n PdfExport.prototype.getGridPdfFont = function (args) {\n var fontFamily = 'fontFamily';\n var fontSize = 'fontSize';\n var fontStyle = 'fontStyle';\n var isTrueType = 'isTrueType';\n var style = 0;\n if (args.header && args.header.font) {\n var headerFont = args.header.font[\"\" + fontFamily];\n var headerSize = args.header.font[\"\" + fontSize];\n var headerStyle = args.header.font[\"\" + fontStyle];\n style = (isNullOrUndefined(PdfFontStyle[\"\" + headerStyle]) ? 0 : PdfFontStyle[\"\" + headerStyle]);\n if (args.header.font[\"\" + isTrueType]) {\n args.header.font = new PdfTrueTypeFont(headerFont, headerSize, style);\n }\n else {\n var fontFamily_1 = !isNullOrUndefined(headerFont) ?\n this.getFontFamily(headerFont) : PdfFontFamily.Helvetica;\n args.header.font = new PdfStandardFont(fontFamily_1, headerSize, style);\n }\n }\n if (args.caption && args.caption.font) {\n var captionFont = args.caption.font[\"\" + fontFamily];\n var captionSize = args.caption.font[\"\" + fontSize];\n var captionStyle = args.caption.font[\"\" + fontStyle];\n style = (isNullOrUndefined(PdfFontStyle[\"\" + captionStyle]) ? 0 : PdfFontStyle[\"\" + captionStyle]);\n if (args.caption.font[\"\" + isTrueType]) {\n args.caption.font = new PdfTrueTypeFont(captionFont, captionSize, style);\n }\n else {\n var fontFamily_2 = !isNullOrUndefined(captionFont) ?\n this.getFontFamily(captionFont) : PdfFontFamily.Helvetica;\n args.caption.font = new PdfStandardFont(fontFamily_2, captionSize, style);\n }\n }\n if (args.record && args.record.font) {\n var recordFont = args.record.font[\"\" + fontFamily];\n var recordSize = args.record.font[\"\" + fontSize];\n var recordStyle = args.record.font[\"\" + fontStyle];\n style = (isNullOrUndefined(PdfFontStyle[\"\" + recordStyle]) ? 0 : PdfFontStyle[\"\" + recordStyle]);\n if (args.record.font[\"\" + isTrueType]) {\n args.record.font = new PdfTrueTypeFont(recordFont, recordSize, style);\n }\n else {\n var fontFamily_3 = !isNullOrUndefined(recordFont) ?\n this.getFontFamily(recordFont) : PdfFontFamily.Helvetica;\n args.record.font = new PdfStandardFont(fontFamily_3, recordSize, style);\n }\n }\n };\n PdfExport.prototype.getHeaderThemeStyle = function () {\n var border = new PdfBorders();\n if (!isNullOrUndefined(this.gridTheme) && !isNullOrUndefined(this.gridTheme.header)) {\n var fontFamily = !isNullOrUndefined(this.gridTheme.header.fontName) ?\n this.getFontFamily(this.gridTheme.header.fontName) : PdfFontFamily.Helvetica;\n var fontStyle = this.getFontStyle(this.gridTheme.header);\n var fontSize = !isNullOrUndefined(this.gridTheme.header.fontSize) ? this.gridTheme.header.fontSize : 10.5;\n var pdfColor = new PdfColor();\n if (!isNullOrUndefined(this.gridTheme.header.fontColor)) {\n var penBrushColor = this.hexToRgb(this.gridTheme.header.fontColor);\n pdfColor = new PdfColor(penBrushColor.r, penBrushColor.g, penBrushColor.b);\n }\n var font = new PdfStandardFont(fontFamily, fontSize, fontStyle);\n if (!isNullOrUndefined(this.gridTheme.header.font)) {\n font = this.gridTheme.header.font;\n }\n return { border: this.getBorderStyle(this.gridTheme.header.border), font: font, brush: new PdfSolidBrush(pdfColor) };\n }\n else {\n //Material theme\n border.all = new PdfPen(new PdfColor(234, 234, 234));\n return { border: border, font: new PdfStandardFont(PdfFontFamily.Helvetica, 10.5),\n brush: new PdfSolidBrush(new PdfColor(102, 102, 102)) };\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n PdfExport.prototype.processGroupedRecords = function (pdfGrid, dataSource, gridColumns, gObj, border, level, font, brush, backgroundBrush, returnType, pdfExportProperties, helper, index) {\n var _this = this;\n var groupIndex = level;\n var _loop_1 = function (dataSourceItems) {\n var row = pdfGrid.rows.addRow();\n var col = gObj.getColumnByField(dataSourceItems.field);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var args = {\n value: dataSourceItems.key,\n column: col,\n style: undefined,\n isForeignKey: col.isForeignColumn()\n };\n var value = gObj.getColumnByField(dataSourceItems.field).headerText + ': ' + (!col.enableGroupByFormat ? this_1.exportValueFormatter.formatCellValue(args) : dataSourceItems.key) + ' - ' + dataSourceItems.count + (dataSource.count > 1 ? ' items' : ' item');\n var cArgs = { captionText: value, type: 'PDF', data: dataSourceItems, style: undefined };\n this_1.parent.trigger(events.exportGroupCaption, cArgs, function (cArgs) {\n row.cells.getCell(groupIndex).value = cArgs.captionText;\n row.cells.getCell(groupIndex).style.stringFormat = new PdfStringFormat(PdfTextAlignment.Left);\n row.style.setBorder(border);\n row.style.setFont(font);\n row.style.setTextBrush(brush);\n row.style.setBackgroundBrush(backgroundBrush);\n if (!isNullOrUndefined(cArgs.style)) {\n _this.processCellStyle(row.cells.getCell(groupIndex), cArgs);\n }\n var sRows;\n var captionSummaryModel = new CaptionSummaryModelGenerator(gObj);\n if (!isNullOrUndefined(dataSourceItems.items.records)) {\n sRows = captionSummaryModel.generateRows(dataSourceItems.items.records, dataSourceItems);\n }\n else {\n sRows = captionSummaryModel.generateRows(dataSourceItems.items, dataSourceItems);\n }\n if (!isNullOrUndefined(sRows) && sRows.length === 0) {\n row.cells.getCell(groupIndex + 1).columnSpan = pdfGrid.columns.count - (groupIndex + 1);\n }\n if (!isNullOrUndefined(dataSource.childLevels) && dataSource.childLevels > 0) {\n _this.processAggregates(sRows, pdfGrid, border, font, brush, backgroundBrush, true, row, groupIndex, null, null, gObj);\n _this.processGroupedRecords(pdfGrid, dataSourceItems.items, gridColumns, gObj, border, (groupIndex + 1), font, brush, backgroundBrush, returnType, pdfExportProperties, helper, index);\n index = _this.rowIndex;\n var groupSummaryModel = new GroupSummaryModelGenerator(gObj);\n sRows = groupSummaryModel.generateRows(dataSourceItems.items.records, dataSourceItems);\n _this.processAggregates(sRows, pdfGrid, border, font, brush, backgroundBrush, false);\n }\n else {\n _this.processAggregates(sRows, pdfGrid, border, font, brush, backgroundBrush, true, row, groupIndex, null, null, gObj);\n index = _this.processRecord(border, gridColumns, gObj, dataSourceItems.items, pdfGrid, (groupIndex + 1), pdfExportProperties, helper, index);\n var groupSummaryModel = new GroupSummaryModelGenerator(gObj);\n sRows = groupSummaryModel.generateRows(dataSourceItems.items, dataSourceItems);\n var isGroupedFooter = true;\n _this.processAggregates(sRows, pdfGrid, border, font, brush, backgroundBrush, false, null, null, isGroupedFooter, null, gObj);\n }\n });\n };\n var this_1 = this;\n for (var _i = 0, dataSource_1 = dataSource; _i < dataSource_1.length; _i++) {\n var dataSourceItems = dataSource_1[_i];\n _loop_1(dataSourceItems);\n }\n };\n PdfExport.prototype.processGridHeaders = function (childLevels, pdfGrid, rows, gridColumn, border, headerFont, headerBrush, grid, allowHorizontalOverflow, eCols) {\n var _this = this;\n var columnCount = gridColumn.length + childLevels;\n var depth = measureColumnDepth(eCols);\n var cols = eCols;\n var index = 0;\n var rowNumber = [];\n for (var i = 0; i < rows.length; i++) {\n rowNumber[parseInt(i.toString(), 10)] = 0;\n }\n if (grid.groupSettings.columns.length) {\n index = grid.groupSettings.columns.length - 1;\n columnCount = columnCount - 1;\n }\n pdfGrid.columns.add(columnCount);\n pdfGrid.headers.add(rows.length);\n var applyTextAndSpan = function (rowIdx, colIdx, col, rowSpan, colSpan) {\n var gridHeader = pdfGrid.headers.getHeader(rowIdx);\n var pdfCell = gridHeader.cells.getCell(colIdx);\n var cell = rows[parseInt(rowIdx.toString(), 10)].cells[grid.groupSettings.columns.length ?\n colIdx : rowNumber[parseInt(rowIdx.toString(), 10)]];\n rowNumber[parseInt(rowIdx.toString(), 10)] = rowNumber[parseInt(rowIdx.toString(), 10)] + 1;\n if (!isNullOrUndefined(col.headerTextAlign)) {\n pdfCell.style.stringFormat = _this.getHorizontalAlignment(col.headerTextAlign);\n }\n if (rowSpan > 0) {\n pdfCell.rowSpan = rowSpan;\n pdfCell.style.stringFormat = _this.getVerticalAlignment('Bottom', pdfCell.style.stringFormat, col.textAlign);\n }\n if (colSpan > 0) {\n pdfCell.columnSpan = colSpan;\n }\n gridHeader.style.setBorder(border);\n gridHeader.style.setFont(headerFont);\n gridHeader.style.setTextBrush(headerBrush);\n pdfCell.value = col.headerText;\n if (!isNullOrUndefined(cell) && (cell.cellType === CellType.HeaderIndent || cell.cellType === CellType.DetailHeader)) {\n pdfCell.value = '';\n pdfCell.width = 20;\n }\n var args = {\n cell: pdfCell,\n gridCell: cell,\n style: pdfCell.style\n };\n _this.parent.trigger(events.pdfHeaderQueryCellInfo, args);\n var evtArgs = args;\n var setCellBorder = args.style.borders;\n var setCellFont = args.style.font;\n var setHeaderBrush = args.style.textBrush;\n if (!isNullOrUndefined(setCellBorder)) {\n gridHeader.style.setBorder(setCellBorder);\n }\n if (!isNullOrUndefined(setCellFont)) {\n gridHeader.style.setFont(setCellFont);\n }\n if (!isNullOrUndefined(setHeaderBrush)) {\n gridHeader.style.setTextBrush(setHeaderBrush);\n }\n if (!isNullOrUndefined(evtArgs.style.verticalAlignment)) {\n pdfCell.style.stringFormat = _this.getVerticalAlignment(evtArgs.style.verticalAlignment, pdfCell.style.stringFormat);\n }\n if (!isNullOrUndefined(evtArgs.image)) {\n pdfCell.value = new PdfBitmap(evtArgs.image.base64);\n }\n if (!isNullOrUndefined(evtArgs.hyperLink)) {\n pdfCell.value = _this.setHyperLink(evtArgs);\n }\n };\n var recuHeader = function (cols, depth, spanCnt, colIndex, rowIndex, isRoot) {\n var cidx = 0;\n for (var i = 0; i < cols.length; i++) {\n if (isRoot) {\n cidx = cidx + spanCnt + (i === 0 ? 0 : -1);\n colIndex = cidx;\n spanCnt = 0;\n }\n if (!isRoot && !cols[parseInt(i.toString(), 10)].visible) {\n colIndex = colIndex - 1;\n }\n if (cols[parseInt(i.toString(), 10)].columns && cols[parseInt(i.toString(), 10)].columns.length) {\n var newSpanCnt = recuHeader(cols[parseInt(i.toString(), 10)]\n .columns, depth - 1, 0, i + colIndex, rowIndex + 1, false);\n applyTextAndSpan(rowIndex, i + colIndex + index, cols[parseInt(i.toString(), 10)], 0, newSpanCnt);\n spanCnt = spanCnt + newSpanCnt;\n colIndex = colIndex + newSpanCnt - 1;\n }\n else if (cols[parseInt(i.toString(), 10)].visible || _this.hideColumnInclude) {\n spanCnt++;\n applyTextAndSpan(rowIndex, i + colIndex + index, cols[parseInt(i.toString(), 10)], depth, 0);\n }\n }\n return spanCnt;\n };\n recuHeader(cols, depth, 0, 0, 0, true);\n if (pdfGrid.columns.count >= 6 && allowHorizontalOverflow) {\n pdfGrid.style.allowHorizontalOverflow = true;\n }\n return pdfGrid;\n };\n PdfExport.prototype.processExportProperties = function (pdfExportProperties, dataSource) {\n if (!isNullOrUndefined(pdfExportProperties)) {\n if (!isNullOrUndefined(pdfExportProperties.theme)) {\n this.gridTheme = pdfExportProperties.theme;\n }\n var clientSize = this.pdfPageSettings.size;\n this.drawHeader(pdfExportProperties);\n if (!isNullOrUndefined(pdfExportProperties.footer)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var footer = pdfExportProperties.footer;\n var position = new PointF(0, ((clientSize.width - 80) - (footer.fromBottom * 0.75)));\n var size = new SizeF((clientSize.width - 80), (footer.height * 0.75));\n var bounds = new RectangleF(position, size);\n this.pdfDocument.template.bottom = this.drawPageTemplate(new PdfPageTemplateElement(bounds), footer);\n }\n if (!isNullOrUndefined(pdfExportProperties.includeHiddenColumn) && !this.isGrouping) {\n this.hideColumnInclude = pdfExportProperties.includeHiddenColumn;\n }\n if (!isNullOrUndefined(pdfExportProperties.dataSource)) {\n this.customDataSource = true;\n this.currentViewData = false;\n }\n else if (!isNullOrUndefined(pdfExportProperties.exportType)) {\n if (pdfExportProperties.exportType === 'CurrentPage') {\n dataSource = this.parent.currentViewData;\n this.currentViewData = true;\n this.customDataSource = false;\n }\n else {\n this.currentViewData = false;\n this.customDataSource = false;\n }\n }\n else {\n this.currentViewData = false;\n this.customDataSource = false;\n }\n }\n else {\n this.currentViewData = false;\n this.customDataSource = false;\n }\n return dataSource;\n };\n PdfExport.prototype.drawHeader = function (pdfExportProperties) {\n var _this = this;\n var clientSize = this.pdfPageSettings.size;\n if (!isNullOrUndefined(pdfExportProperties) && !isNullOrUndefined(pdfExportProperties.header)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var header = pdfExportProperties.header;\n var position = new PointF(0, header.fromTop);\n var size = new SizeF((clientSize.width - 80), (header.height * 0.75));\n var bounds = new RectangleF(position, size);\n if (!this.headerOnPages.length) {\n this.pdfDocument.template.top = this.drawPageTemplate(new PdfPageTemplateElement(bounds), header);\n }\n else {\n var headerTemplate_1 = this.drawPageTemplate(new PdfPageTemplateElement(bounds), header);\n this.headerOnPages.filter(function (index) {\n if (index - 1 >= 0 && index - 1 <= _this.pdfDocument.pages.count - 1) {\n _this.pdfDocument.pages.getPageByIndex(index - 1).graphics\n .drawPdfTemplate(headerTemplate_1.template, new PointF(0, 0));\n }\n });\n }\n }\n };\n PdfExport.prototype.drawPageTemplate = function (template, element) {\n for (var _i = 0, _a = element.contents; _i < _a.length; _i++) {\n var content = _a[_i];\n this.processContentValidation(content);\n switch (content.type) {\n case 'Text':\n if (content.value === '' || content.value === undefined || content.value === null || typeof content.value !== 'string') {\n throw new Error('please enter the valid input value in text content...');\n }\n this.drawText(template, content);\n break;\n case 'PageNumber':\n this.drawPageNumber(template, content);\n break;\n case 'Image':\n if (content.src === undefined || content.src === null || content.src === '') {\n throw new Error('please enter the valid base64 string in image content...');\n }\n this.drawImage(template, content);\n break;\n case 'Line':\n this.drawLine(template, content);\n break;\n default:\n throw new Error('Please set valid content type...');\n }\n }\n return template;\n };\n PdfExport.prototype.processContentValidation = function (content) {\n if (content.type === undefined || content.type === null) {\n throw new Error('please set valid content type...');\n }\n else {\n if (content.type === 'Line') {\n if (content.points === undefined || content.points === null) {\n throw new Error('please enter valid points in ' + content.type + ' content...');\n }\n else {\n if (content.points.x1 === undefined || content.points.x1 === null || typeof content.points.x1 !== 'number') {\n throw new Error('please enter valid x1 co-ordinate in ' + content.type + ' points...');\n }\n if (content.points.y1 === undefined || content.points.y1 === null || typeof content.points.y1 !== 'number') {\n throw new Error('please enter valid y1 co-ordinate in ' + content.type + ' points...');\n }\n if (content.points.x2 === undefined || content.points.x2 === null || typeof content.points.x2 !== 'number') {\n throw new Error('please enter valid x2 co-ordinate in ' + content.type + ' points...');\n }\n if (content.points.y2 === undefined || content.points.y2 === null || typeof content.points.y2 !== 'number') {\n throw new Error('please enter valid y2 co-ordinate in ' + content.type + ' points...');\n }\n }\n }\n else {\n if (content.position === undefined || content.position === null) {\n throw new Error('please enter valid position in ' + content.type + ' content...');\n }\n else {\n if (content.position.x === undefined || content.position.x === null || typeof content.position.x !== 'number') {\n throw new Error('please enter valid x co-ordinate in ' + content.type + ' position...');\n }\n if (content.position.y === undefined || content.position.y === null || typeof content.position.y !== 'number') {\n throw new Error('please enter valid y co-ordinate in ' + content.type + ' position...');\n }\n }\n }\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n PdfExport.prototype.drawText = function (pageTemplate, content) {\n var font = this.getFont(content);\n var brush = this.getBrushFromContent(content);\n var pen = null;\n if (!isNullOrUndefined(content.style.textPenColor)) {\n var penColor = this.hexToRgb(content.style.textPenColor);\n pen = new PdfPen(new PdfColor(penColor.r, penColor.g, penColor.b));\n }\n if (brush == null && pen == null) {\n brush = new PdfSolidBrush(new PdfColor(0, 0, 0));\n }\n var value = content.value.toString();\n var x = content.position.x * 0.75;\n var y = content.position.y * 0.75;\n var format = new PdfStringFormat();\n if (!isNullOrUndefined(content.style.stringFormat)) {\n format.alignment = content.style.stringFormat.alignment;\n }\n var result = this.setContentFormat(content, format);\n if (result !== null && !isNullOrUndefined(result.format) && !isNullOrUndefined(result.size)) {\n pageTemplate.graphics.drawString(value, font, pen, brush, x, y, result.size.width, result.size.height, result.format);\n }\n else {\n pageTemplate.graphics.drawString(value, font, pen, brush, x, y, format);\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n PdfExport.prototype.drawPageNumber = function (documentHeader, content) {\n var font = this.getFont(content);\n var brush = null;\n if (!isNullOrUndefined(content.style.textBrushColor)) {\n var brushColor = this.hexToRgb(content.style.textBrushColor);\n brush = new PdfSolidBrush(new PdfColor(brushColor.r, brushColor.g, brushColor.b));\n }\n else {\n brush = new PdfSolidBrush(new PdfColor(0, 0, 0));\n }\n var pageNumber = new PdfPageNumberField(font, brush);\n pageNumber.numberStyle = this.getPageNumberStyle(content.pageNumberType);\n var compositeField;\n var format;\n if (!isNullOrUndefined(content.format)) {\n var total = '$total';\n var current = '$current';\n if (content.format.indexOf(total) !== -1 && content.format.indexOf(current) !== -1) {\n var pageCount = new PdfPageCountField(font);\n pageCount.numberStyle = this.getPageNumberStyle(content.pageNumberType);\n if (content.format.indexOf(total) > content.format.indexOf(current)) {\n format = content.format.replace(current, '0');\n format = format.replace(total, '1');\n }\n else {\n format = content.format.replace(current, '1');\n format = format.replace(total, '0');\n }\n compositeField = new PdfCompositeField(font, brush, format, pageNumber, pageCount);\n }\n else if (content.format.indexOf(current) !== -1 && content.format.indexOf(total) === -1) {\n format = content.format.replace(current, '0');\n compositeField = new PdfCompositeField(font, brush, format, pageNumber);\n }\n else {\n var pageCount = new PdfPageCountField(font);\n format = content.format.replace(total, '0');\n compositeField = new PdfCompositeField(font, brush, format, pageCount);\n }\n }\n else {\n format = '{0}';\n compositeField = new PdfCompositeField(font, brush, format, pageNumber);\n }\n var x = content.position.x * 0.75;\n var y = content.position.y * 0.75;\n var result = this.setContentFormat(content, compositeField.stringFormat);\n if (result !== null && !isNullOrUndefined(result.format) && !isNullOrUndefined(result.size)) {\n compositeField.stringFormat = result.format;\n compositeField.bounds = new RectangleF(x, y, result.size.width, result.size.height);\n }\n compositeField.draw(documentHeader.graphics, x, y);\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n PdfExport.prototype.drawImage = function (documentHeader, content) {\n var x = content.position.x * 0.75;\n var y = content.position.y * 0.75;\n var width = (!isNullOrUndefined(content.size)) ? (content.size.width * 0.75) : undefined;\n var height = (!isNullOrUndefined(content.size)) ? (content.size.height * 0.75) : undefined;\n var image = new PdfBitmap(content.src);\n if (!isNullOrUndefined(width)) {\n documentHeader.graphics.drawImage(image, x, y, width, height);\n }\n else {\n documentHeader.graphics.drawImage(image, x, y);\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n PdfExport.prototype.drawLine = function (documentHeader, content) {\n var x1 = content.points.x1 * 0.75;\n var y1 = content.points.y1 * 0.75;\n var x2 = content.points.x2 * 0.75;\n var y2 = content.points.y2 * 0.75;\n var pen = this.getPenFromContent(content);\n if (!isNullOrUndefined(content.style) && content.style !== null) {\n if (!isNullOrUndefined(content.style.penSize) && content.style.penSize !== null && typeof content.style.penSize === 'number') {\n pen.width = content.style.penSize * 0.75;\n }\n pen.dashStyle = this.getDashStyle(content.style.dashStyle);\n }\n documentHeader.graphics.drawLine(pen, x1, y1, x2, y2);\n };\n PdfExport.prototype.processAggregates = function (sRows, pdfGrid, border, font, brush, backgroundBrush, isCaption, captionRow, groupIndex, isGroupedFooter, isAggregate, gObj) {\n for (var _i = 0, sRows_1 = sRows; _i < sRows_1.length; _i++) {\n var row = sRows_1[_i];\n var leastCaptionSummaryIndex = -1;\n var index = 0;\n var isEmpty = true;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var value = [];\n var aggIdx = isAggregate ? 0 : 1;\n for (var i = 0; i < pdfGrid.columns.count + aggIdx; i++) {\n var cell = row.cells[parseInt(index.toString(), 10)];\n if (cell.cellType === CellType.DetailFooterIntent) {\n i--;\n index++;\n continue;\n }\n if (!this.hideColumnInclude) {\n while (cell.visible === undefined) {\n if (cell.cellType === CellType.DetailFooterIntent) {\n continue;\n }\n if (!isNullOrUndefined(captionRow)) {\n if (!isNullOrUndefined(captionRow.cells.getCell(i).value)) {\n var args = { row: row, type: 'GroupCaption', style: captionRow.cells };\n this.parent.trigger(events.pdfAggregateQueryCellInfo, args);\n value.push(captionRow.cells.getCell(i).value);\n isEmpty = false;\n if (!isCaption) {\n i += 1;\n }\n }\n else {\n value.push('');\n }\n }\n else {\n value.push('');\n }\n i += 1;\n index = index + 1;\n cell = row.cells[parseInt(index.toString(), 10)];\n }\n while (!isNullOrUndefined(cell.visible) && !cell.visible) {\n index = index + 1;\n cell = row.cells[parseInt(index.toString(), 10)];\n }\n }\n if (cell.isDataCell) {\n var templateFn = {};\n if (!isNullOrUndefined(cell.column.footerTemplate) || !isNullOrUndefined(cell.column.groupCaptionTemplate)\n || !isNullOrUndefined(cell.column.groupFooterTemplate)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var result = this.getTemplateFunction(templateFn, i, leastCaptionSummaryIndex, cell);\n templateFn = result.templateFunction;\n leastCaptionSummaryIndex = result.leastCaptionSummaryIndex;\n var txt = void 0;\n var data = row.data[cell.column.field ? cell.column.field : cell.column.columnName];\n if (this.parent.isReact || this.parent.isVue) {\n txt = (templateFn[getEnumValue(CellType, cell.cellType)](data, this.parent));\n if (this.parent.isReact) {\n this.parent.renderTemplates();\n }\n }\n else {\n txt = (templateFn[getEnumValue(CellType, cell.cellType)](data));\n }\n value.push(!isNullOrUndefined(txt[0]) ? txt[0].textContent : '');\n isEmpty = false;\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var result = this.getSummaryWithoutTemplate(row.data[cell.column.field]);\n if (!isNullOrUndefined(result)) {\n value.push(result);\n }\n }\n }\n else {\n value.push('');\n }\n if (isEmpty && value[parseInt(i.toString(), 10)] !== '' && !isNullOrUndefined(value[parseInt(i.toString(), 10)]) && value[parseInt(i.toString(), 10)] !== null) {\n isEmpty = false;\n }\n index += 1;\n }\n if (!isAggregate) {\n if (!isCaption) {\n value.splice(0, 1);\n }\n else {\n for (var i = gObj.groupSettings.columns.length; i < value.length - 1; i++) {\n value[parseInt(i.toString(), 10)] = value[i + 1];\n value[i + 1] = value[i + 2] ? value[i + 2] : '';\n }\n }\n }\n if (!isEmpty) {\n if (!isCaption) {\n var gridRow = pdfGrid.rows.addRow();\n gridRow.style.setBorder(border);\n gridRow.style.setFont(font);\n gridRow.style.setTextBrush(brush);\n gridRow.style.setBackgroundBrush(backgroundBrush);\n var args = {\n row: row, type: isGroupedFooter ? 'GroupFooter' : 'Footer', style: gridRow.cells\n };\n this.parent.trigger(events.pdfAggregateQueryCellInfo, args);\n for (var i = 0; i < pdfGrid.columns.count; i++) {\n gridRow.cells.getCell(i).value = value[parseInt(i.toString(), 10)].toString();\n }\n }\n else {\n for (var i = 0; i < pdfGrid.columns.count; i++) {\n captionRow.cells.getCell(i).value = value[parseInt(i.toString(), 10)].toString();\n if (i === groupIndex && leastCaptionSummaryIndex !== -1 && leastCaptionSummaryIndex !== 1) {\n captionRow.cells.getCell(i).columnSpan = (leastCaptionSummaryIndex - 1) - groupIndex;\n }\n else if (i === groupIndex && leastCaptionSummaryIndex === -1) {\n captionRow.cells.getCell(i).columnSpan = pdfGrid.columns.count - groupIndex;\n }\n }\n }\n }\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n PdfExport.prototype.getTemplateFunction = function (templateFn, index, leastCaptionSummaryIndex, cell) {\n if (!isNullOrUndefined(cell.column.footerTemplate) && cell.cellType === CellType.Summary) {\n templateFn[getEnumValue(CellType, CellType.Summary)] = compile(cell.column.footerTemplate);\n }\n else if (!isNullOrUndefined(cell.column.groupCaptionTemplate)) {\n if (leastCaptionSummaryIndex === -1) {\n leastCaptionSummaryIndex = index;\n }\n templateFn[getEnumValue(CellType, CellType.CaptionSummary)] = compile(cell.column.groupCaptionTemplate);\n }\n else {\n templateFn[getEnumValue(CellType, CellType.GroupSummary)] = compile(cell.column.groupFooterTemplate);\n }\n return { templateFunction: templateFn, leastCaptionSummaryIndex: leastCaptionSummaryIndex };\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n PdfExport.prototype.getSummaryWithoutTemplate = function (data) {\n if (!isNullOrUndefined(data.Sum)) {\n return data.Sum;\n }\n else if (!isNullOrUndefined(data.Average)) {\n return data.Average;\n }\n else if (!isNullOrUndefined(data.Max)) {\n return data.Max;\n }\n else if (!isNullOrUndefined(data.Min)) {\n return data.Min;\n }\n else if (!isNullOrUndefined(data.Count)) {\n return data.Count;\n }\n else if (!isNullOrUndefined(data.TrueCount)) {\n return data.TrueCount;\n }\n else if (!isNullOrUndefined(data.FalseCount)) {\n return data.FalseCount;\n }\n else if (!isNullOrUndefined(data.Custom)) {\n return data.Custom;\n }\n };\n /**\n * Set alignment, width and type of the values of the column\n *\n * @param {Column[]} gridColumns - specifies the grid column\n * @param {PdfGrid} pdfGrid - specifies the pdfGrid\n * @param {ExportHelper} helper - specifies the helper\n * @param {IGrid} gObj - specifies the IGrid\n * @param {boolean} allowHorizontalOverflow - specifies the allowHorizontalOverflow\n * @returns {void}\n */\n PdfExport.prototype.setColumnProperties = function (gridColumns, pdfGrid, helper, gObj, allowHorizontalOverflow) {\n var startIndex = gObj.groupSettings.columns.length ? gObj.groupSettings.columns.length - 1 : 0;\n for (var i = 0; i < startIndex; i++) {\n pdfGrid.columns.getColumn(i).width = 20;\n }\n for (var i = 0; i < gridColumns.length; i++) {\n if (!isNullOrUndefined(gridColumns[parseInt(i.toString(), 10)].textAlign)) {\n pdfGrid.columns.getColumn(i + startIndex).format = this\n .getHorizontalAlignment(gridColumns[parseInt(i.toString(), 10)].textAlign);\n }\n // Need to add width consideration with % value\n if (pdfGrid.style.allowHorizontalOverflow && !isNullOrUndefined(gridColumns[parseInt(i.toString(), 10)].width)\n && allowHorizontalOverflow) {\n pdfGrid.columns.getColumn(i + startIndex).width = typeof gridColumns[parseInt(i.toString(), 10)].width === 'number' ?\n gridColumns[parseInt(i.toString(), 10)].width * 0.75 :\n helper.getConvertedWidth(gridColumns[parseInt(i.toString(), 10)].width) * 0.75;\n }\n }\n };\n /**\n * set default style properties of each rows in exporting grid\n *\n * @param {PdfGridRow} row - specifies the PdfGridRow\n * @param {PdfBorders} border - specifies the PdfBorders\n * @returns {PdfGrid} returns the pdfgrid\n * @private\n */\n PdfExport.prototype.setRecordThemeStyle = function (row, border) {\n if (!isNullOrUndefined(this.gridTheme) && !isNullOrUndefined(this.gridTheme.record)) {\n var fontFamily = !isNullOrUndefined(this.gridTheme.record.fontName) ?\n this.getFontFamily(this.gridTheme.record.fontName) : PdfFontFamily.Helvetica;\n var fontSize = !isNullOrUndefined(this.gridTheme.record.fontSize) ? this.gridTheme.record.fontSize : 9.75;\n var fontStyle = this.getFontStyle(this.gridTheme.record);\n var font = new PdfStandardFont(fontFamily, fontSize, fontStyle);\n if (!isNullOrUndefined(this.gridTheme.record.font)) {\n font = this.gridTheme.record.font;\n }\n row.style.setFont(font);\n var pdfColor = new PdfColor();\n if (!isNullOrUndefined(this.gridTheme.record.fontColor)) {\n var penBrushColor = this.hexToRgb(this.gridTheme.record.fontColor);\n pdfColor = new PdfColor(penBrushColor.r, penBrushColor.g, penBrushColor.b);\n }\n row.style.setTextBrush(new PdfSolidBrush(pdfColor));\n }\n else {\n row.style.setTextBrush(new PdfSolidBrush(new PdfColor(0, 0, 0)));\n }\n var borderRecord = this.gridTheme && this.gridTheme.record &&\n this.gridTheme.record.border ? this.getBorderStyle(this.gridTheme.record.border) : border;\n row.style.setBorder(borderRecord);\n return row;\n };\n /**\n * generate the formatted cell values\n *\n * @param {PdfBorders} border - specifies the border\n * @param {Column[]} columns - specifies the columns\n * @param {IGrid} gObj - specifies the IGrid\n * @param {Object[]} dataSource - specifies the datasource\n * @param {PdfGrid} pdfGrid - specifies the pdfGrid\n * @param {number} startIndex - specifies the startindex\n * @param {PdfExportProperties} pdfExportProperties - specifies the pdfExportProperties\n * @param {ExportHelper} helper - specifies the helper\n * @param {number} rowIndex - specifies the rowIndex\n * @returns {number} returns the number of records\n * @private\n */\n PdfExport.prototype.processRecord = function (border, columns, gObj, dataSource, pdfGrid, startIndex, pdfExportProperties, helper, rowIndex) {\n var rows = helper.getGridRowModel(columns, dataSource, gObj, rowIndex);\n for (var _i = 0, rows_1 = rows; _i < rows_1.length; _i++) {\n var row = rows_1[_i];\n rowIndex++;\n this.rowIndex = rowIndex;\n // create a new row and set default style properties\n var gridRow = this.setRecordThemeStyle(pdfGrid.rows.addRow(), border);\n var cellLength = row.cells.length;\n for (var j = 0; j < cellLength; j++) {\n var gridCell = row.cells[parseInt(j.toString(), 10)];\n if (gridCell.cellType !== CellType.Data) {\n continue;\n }\n var column = gridCell.column;\n var field = column.field;\n var cellValue = !isNullOrUndefined(field) ? column.valueAccessor(field, row.data, column) : '';\n var value = !isNullOrUndefined(cellValue) ? cellValue : '';\n var foreignKeyData = void 0;\n if (column.isForeignColumn && column.isForeignColumn()) {\n foreignKeyData = helper.getFData(value, column);\n value = getValue(column.foreignKeyValue, foreignKeyData);\n }\n var data = row.data;\n var cell = gridRow.cells.getCell(j);\n var args = {\n data: data,\n value: value,\n column: column,\n style: undefined,\n colSpan: 1,\n cell: cell\n };\n args.value = args.column.type === 'boolean' && typeof args.value === 'string' ? args.value :\n this.exportValueFormatter.formatCellValue(args);\n this.parent.trigger(events.pdfQueryCellInfo, args);\n if (!isNullOrUndefined(args.image)) {\n args.value = new PdfBitmap(args.image.base64);\n args.value.height = args.image.height || args.value.height;\n args.value.width = args.image.width || args.value.width;\n }\n cell.value = args.value;\n if (!isNullOrUndefined(args.hyperLink)) {\n cell.value = this.setHyperLink(args);\n }\n if (!isNullOrUndefined(args.style)) {\n this.processCellStyle(cell, args);\n }\n if (args.colSpan > 1) {\n if ((j + 1 + args.colSpan) > gridRow.cells.count) {\n args.colSpan = gridRow.cells.count - (j + 1);\n }\n cell.columnSpan = args.colSpan;\n for (var i = 1; i < cell.columnSpan; i++) {\n var spanCell = gridRow.cells.getCell(j + i);\n spanCell.value = '';\n }\n j += (args.colSpan - 1);\n }\n }\n if (row.isExpand) {\n var gridRow_1 = this.setRecordThemeStyle(pdfGrid.rows.addRow(), border);\n var startIndexVal = this.parent.childGrid ? 0 : startIndex;\n var cell = gridRow_1.cells.getCell(startIndexVal);\n cell.columnSpan = gridRow_1.cells.count - (startIndexVal);\n cell.style.cellPadding = new PdfPaddings(10, 10, 10, 10);\n gObj.isPrinting = true;\n var exportType = (!isNullOrUndefined(pdfExportProperties) && pdfExportProperties.exportType) ?\n pdfExportProperties.exportType : 'AllPages';\n var returnValue = this.helper.createChildGrid(gObj, row, exportType, this.gridPool);\n var childGridObj = returnValue.childGrid;\n var element = returnValue.element;\n childGridObj.actionFailure =\n helper.failureHandler(this.gridPool, childGridObj, this.globalResolve);\n var args = { childGrid: childGridObj, row: row, cell: cell, exportProperties: pdfExportProperties };\n this.parent.trigger(events.exportDetailDataBound, args);\n childGridObj.beforeDataBound = this.childGridCell(cell, childGridObj, pdfExportProperties);\n childGridObj.appendTo(element);\n }\n this.parent.notify(events.exportRowDataBound, { type: 'pdf', rowObj: row });\n }\n return rowIndex;\n };\n PdfExport.prototype.setHyperLink = function (args) {\n // create the Text Web Link\n var textLink = new PdfTextWebLink();\n // set the hyperlink\n textLink.url = args.hyperLink.target;\n // set the link text\n textLink.text = args.hyperLink.displayText || args.hyperLink.target;\n // set the font\n textLink.font = new PdfStandardFont(PdfFontFamily.Helvetica, 9.75);\n // set the brush and pen for the text color\n textLink.brush = new PdfSolidBrush(new PdfColor(51, 102, 187));\n return textLink;\n };\n PdfExport.prototype.childGridCell = function (cell, childGridObj, pdfExportProperties) {\n var _this = this;\n return function (result) {\n childGridObj.beforeDataBound = null;\n result.cancel = true;\n cell.value = _this.processGridExport(childGridObj, result, pdfExportProperties);\n childGridObj.destroy();\n detach(childGridObj.element);\n _this.gridPool[childGridObj.id] = true;\n _this.helper.checkAndExport(_this.gridPool, _this.globalResolve);\n return cell;\n };\n };\n PdfExport.prototype.processCellStyle = function (cell, args) {\n if (!isNullOrUndefined(args.style.backgroundColor)) {\n var backColor = this.hexToRgb(args.style.backgroundColor);\n cell.style.backgroundBrush = new PdfSolidBrush(new PdfColor(backColor.r, backColor.g, backColor.b));\n }\n if (!isNullOrUndefined(args.style.textAlignment)) {\n cell.style.stringFormat = this.getHorizontalAlignment(args.style.textAlignment);\n }\n if (!isNullOrUndefined(args.style.cellPadding)) {\n cell.style.cellPadding = args.style.cellPadding;\n }\n if (!isNullOrUndefined(args.style.verticalAlignment)) {\n cell.style.stringFormat = this.getVerticalAlignment(args.style.verticalAlignment, cell.style.stringFormat);\n }\n if (!isNullOrUndefined(args.style.textBrushColor)) {\n var textBrushColor = this.hexToRgb(args.style.textBrushColor);\n cell.style.textBrush = new PdfSolidBrush(new PdfColor(textBrushColor.r, textBrushColor.g, textBrushColor.b));\n }\n if (!isNullOrUndefined(args.style.textPenColor)) {\n var textPenColor = this.hexToRgb(args.style.textPenColor);\n cell.style.textPen = new PdfPen(new PdfColor(textPenColor.r, textPenColor.g, textPenColor.b));\n }\n if (!isNullOrUndefined(args.style.fontFamily) || !isNullOrUndefined(args.style.fontSize) || !isNullOrUndefined(args.style.bold) ||\n !isNullOrUndefined(args.style.italic) || !isNullOrUndefined(args.style.underline) || !isNullOrUndefined(args.style.strikeout)) {\n cell.style.font = this.getFont(args);\n }\n if (!isNullOrUndefined(args.style.border)) {\n var border = new PdfBorders();\n var borderWidth = args.style.border.width;\n // set border width\n var width = (!isNullOrUndefined(borderWidth) && typeof borderWidth === 'number') ? (borderWidth * 0.75) : (undefined);\n // set border color\n var color = new PdfColor(196, 196, 196);\n if (!isNullOrUndefined(args.style.border.color)) {\n var borderColor = this.hexToRgb(args.style.border.color);\n color = new PdfColor(borderColor.r, borderColor.g, borderColor.b);\n }\n var pen = new PdfPen(color, width);\n // set border dashStyle 'Solid , Dash, Dot, DashDot, DashDotDot'\n if (!isNullOrUndefined(args.style.border.dashStyle)) {\n pen.dashStyle = this.getDashStyle(args.style.border.dashStyle);\n }\n border.all = pen;\n cell.style.borders = border;\n }\n if (!isNullOrUndefined(args.style.paragraphIndent)) {\n cell.style.stringFormat = new PdfStringFormat();\n cell.style.stringFormat.paragraphIndent = args.style.paragraphIndent;\n }\n };\n /**\n * set text alignment of each columns in exporting grid\n *\n * @param {string} textAlign - specifies the textAlign\n * @param {PdfStringFormat} format - specifies the PdfStringFormat\n * @returns {PdfStringFormat} returns the PdfStringFormat\n * @private\n */\n PdfExport.prototype.getHorizontalAlignment = function (textAlign, format) {\n if (format === undefined) {\n format = new PdfStringFormat();\n }\n switch (textAlign) {\n case 'Right':\n format.alignment = PdfTextAlignment.Right;\n break;\n case 'Center':\n format.alignment = PdfTextAlignment.Center;\n break;\n case 'Justify':\n format.alignment = PdfTextAlignment.Justify;\n break;\n case 'Left':\n format.alignment = PdfTextAlignment.Left;\n break;\n }\n return format;\n };\n /**\n * set vertical alignment of each columns in exporting grid\n *\n * @param {string} verticalAlign - specifies the verticalAlign\n * @param {PdfStringFormat} format - specifies the PdfStringFormat\n * @param {string} textAlign - specifies the text align\n * @returns {PdfStringFormat} returns the PdfStringFormat\n * @private\n */\n PdfExport.prototype.getVerticalAlignment = function (verticalAlign, format, textAlign) {\n if (format === undefined) {\n format = new PdfStringFormat();\n format = this.getHorizontalAlignment(textAlign, format);\n }\n switch (verticalAlign) {\n case 'Bottom':\n format.lineAlignment = PdfVerticalAlignment.Bottom;\n break;\n case 'Middle':\n format.lineAlignment = PdfVerticalAlignment.Middle;\n break;\n case 'Top':\n format.lineAlignment = PdfVerticalAlignment.Top;\n break;\n }\n return format;\n };\n PdfExport.prototype.getFontFamily = function (fontFamily) {\n switch (fontFamily) {\n case 'TimesRoman':\n return 2;\n case 'Courier':\n return 1;\n case 'Symbol':\n return 3;\n case 'ZapfDingbats':\n return 4;\n default:\n return 0;\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n PdfExport.prototype.getFont = function (content) {\n if (content.font) {\n return content.font;\n }\n var fontSize = (!isNullOrUndefined(content.style.fontSize)) ? (content.style.fontSize * 0.75) : 9.75;\n var fontFamily = (!isNullOrUndefined(content.style.fontFamily)) ?\n (this.getFontFamily(content.style.fontFamily)) : PdfFontFamily.TimesRoman;\n var fontStyle = PdfFontStyle.Regular;\n if (!isNullOrUndefined(content.style.bold) && content.style.bold) {\n fontStyle |= PdfFontStyle.Bold;\n }\n if (!isNullOrUndefined(content.style.italic) && content.style.italic) {\n fontStyle |= PdfFontStyle.Italic;\n }\n if (!isNullOrUndefined(content.style.underline) && content.style.underline) {\n fontStyle |= PdfFontStyle.Underline;\n }\n if (!isNullOrUndefined(content.style.strikeout) && content.style.strikeout) {\n fontStyle |= PdfFontStyle.Strikeout;\n }\n return new PdfStandardFont(fontFamily, fontSize, fontStyle);\n };\n PdfExport.prototype.getPageNumberStyle = function (pageNumberType) {\n switch (pageNumberType) {\n case 'LowerLatin':\n return 2;\n case 'LowerRoman':\n return 3;\n case 'UpperLatin':\n return 4;\n case 'UpperRoman':\n return 5;\n default:\n return 1;\n }\n };\n PdfExport.prototype.setContentFormat = function (content, format) {\n if (!isNullOrUndefined(content.size)) {\n var width = content.size.width * 0.75;\n var height = content.size.height * 0.75;\n format = new PdfStringFormat(PdfTextAlignment.Left, PdfVerticalAlignment.Middle);\n if (!isNullOrUndefined(content.style.hAlign)) {\n switch (content.style.hAlign) {\n case 'Right':\n format.alignment = PdfTextAlignment.Right;\n break;\n case 'Center':\n format.alignment = PdfTextAlignment.Center;\n break;\n case 'Justify':\n format.alignment = PdfTextAlignment.Justify;\n break;\n default:\n format.alignment = PdfTextAlignment.Left;\n }\n }\n if (!isNullOrUndefined(content.style.vAlign)) {\n format = this.getVerticalAlignment(content.style.vAlign, format);\n }\n return { format: format, size: new SizeF(width, height) };\n }\n return null;\n };\n PdfExport.prototype.getPageSize = function (pageSize) {\n switch (pageSize) {\n case 'Letter':\n return new SizeF(612, 792);\n case 'Note':\n return new SizeF(540, 720);\n case 'Legal':\n return new SizeF(612, 1008);\n case 'A0':\n return new SizeF(2380, 3368);\n case 'A1':\n return new SizeF(1684, 2380);\n case 'A2':\n return new SizeF(1190, 1684);\n case 'A3':\n return new SizeF(842, 1190);\n case 'A5':\n return new SizeF(421, 595);\n case 'A6':\n return new SizeF(297, 421);\n case 'A7':\n return new SizeF(210, 297);\n case 'A8':\n return new SizeF(148, 210);\n case 'A9':\n return new SizeF(105, 148);\n // case 'A10':\n // return new SizeF(74, 105);\n case 'B0':\n return new SizeF(2836, 4008);\n case 'B1':\n return new SizeF(2004, 2836);\n case 'B2':\n return new SizeF(1418, 2004);\n case 'B3':\n return new SizeF(1002, 1418);\n case 'B4':\n return new SizeF(709, 1002);\n case 'B5':\n return new SizeF(501, 709);\n case 'Archa':\n return new SizeF(648, 864);\n case 'Archb':\n return new SizeF(864, 1296);\n case 'Archc':\n return new SizeF(1296, 1728);\n case 'Archd':\n return new SizeF(1728, 2592);\n case 'Arche':\n return new SizeF(2592, 3456);\n case 'Flsa':\n return new SizeF(612, 936);\n case 'HalfLetter':\n return new SizeF(396, 612);\n case 'Letter11x17':\n return new SizeF(792, 1224);\n case 'Ledger':\n return new SizeF(1224, 792);\n default:\n return new SizeF(595, 842);\n }\n };\n PdfExport.prototype.getDashStyle = function (dashStyle) {\n switch (dashStyle) {\n case 'Dash':\n return 1;\n case 'Dot':\n return 2;\n case 'DashDot':\n return 3;\n case 'DashDotDot':\n return 4;\n default:\n return 0;\n }\n };\n PdfExport.prototype.getPenFromContent = function (content) {\n var pen = new PdfPen(new PdfColor(0, 0, 0));\n if (!isNullOrUndefined(content.style) && content.style !== null && !isNullOrUndefined(content.style.penColor)) {\n var penColor = this.hexToRgb(content.style.penColor);\n pen = new PdfPen(new PdfColor(penColor.r, penColor.g, penColor.b));\n }\n return pen;\n };\n PdfExport.prototype.getBrushFromContent = function (content) {\n var brush = null;\n if (!isNullOrUndefined(content.style.textBrushColor)) {\n /* tslint:disable-next-line:max-line-length */\n var brushColor = this.hexToRgb(content.style.textBrushColor);\n brush = new PdfSolidBrush(new PdfColor(brushColor.r, brushColor.g, brushColor.b));\n }\n return brush;\n };\n PdfExport.prototype.hexToRgb = function (hex) {\n if (hex === null || hex === '' || hex.length !== 7) {\n throw new Error('please set valid hex value for color...');\n }\n hex = hex.substring(1);\n var bigint = parseInt(hex, 16);\n var r = (bigint >> 16) & 255;\n var g = (bigint >> 8) & 255;\n var b = bigint & 255;\n return { r: r, g: g, b: b };\n };\n PdfExport.prototype.getFontStyle = function (theme) {\n var fontStyle = PdfFontStyle.Regular;\n if (!isNullOrUndefined(theme) && theme.bold) {\n fontStyle |= PdfFontStyle.Bold;\n }\n if (!isNullOrUndefined(theme) && theme.italic) {\n fontStyle |= PdfFontStyle.Italic;\n }\n if (!isNullOrUndefined(theme) && theme.underline) {\n fontStyle |= PdfFontStyle.Underline;\n }\n if (!isNullOrUndefined(theme) && theme.strikeout) {\n fontStyle |= PdfFontStyle.Strikeout;\n }\n return fontStyle;\n };\n PdfExport.prototype.getBorderStyle = function (border) {\n var borders = new PdfBorders();\n if (!isNullOrUndefined(border)) {\n var borderWidth = border.width;\n // set border width\n var width = (!isNullOrUndefined(borderWidth) && typeof borderWidth === 'number') ? borderWidth * 0.75 : undefined;\n // set border color\n var color = new PdfColor(196, 196, 196);\n if (!isNullOrUndefined(border.color)) {\n var borderColor = this.hexToRgb(border.color);\n color = new PdfColor(borderColor.r, borderColor.g, borderColor.b);\n }\n var pen = new PdfPen(color, width);\n // set border dashStyle 'Solid , Dash, Dot, DashDot, DashDotDot'\n if (!isNullOrUndefined(border.dashStyle)) {\n pen.dashStyle = this.getDashStyle(border.dashStyle);\n }\n borders.all = pen;\n }\n else {\n borders.all = new PdfPen(new PdfColor(234, 234, 234));\n }\n return borders;\n };\n PdfExport.prototype.destroy = function () {\n //destroy for exporting\n };\n return PdfExport;\n}());\nexport { PdfExport };\n","import { closest, isNullOrUndefined, EventHandler } from '@syncfusion/ej2-base';\nimport { remove } from '@syncfusion/ej2-base';\nimport { ContextMenu as Menu } from '@syncfusion/ej2-navigations';\nimport * as events from '../base/constant';\nimport { Resize } from '../actions/resize';\nimport { Page } from '../actions/page';\nimport { parentsUntil, applyBiggerTheme } from '../base/util';\nimport { Group } from '../actions/group';\nimport { Sort } from '../actions/sort';\nimport { PdfExport } from '../actions/pdf-export';\nimport { ExcelExport } from '../actions/excel-export';\nimport * as literals from '../base/string-literals';\nexport var menuClass = {\n header: '.' + literals.gridHeader,\n content: '.' + literals.gridContent,\n edit: '.e-inline-edit',\n batchEdit: '.e-editedbatchcell',\n editIcon: 'e-edit',\n pager: '.e-gridpager',\n delete: 'e-delete',\n save: 'e-save',\n cancel: 'e-cancel',\n copy: 'e-copy',\n pdf: 'e-pdfexport',\n group: 'e-icon-group',\n ungroup: 'e-icon-ungroup',\n csv: 'e-csvexport',\n excel: 'e-excelexport',\n fPage: 'e-icon-first',\n nPage: 'e-icon-next',\n lPage: 'e-icon-last',\n pPage: 'e-icon-prev',\n ascending: 'e-icon-ascending',\n descending: 'e-icon-descending',\n groupHeader: 'e-groupdroparea',\n touchPop: 'e-gridpopup'\n};\n/**\n * The `ContextMenu` module is used to handle context menu actions.\n */\nvar ContextMenu = /** @class */ (function () {\n function ContextMenu(parent, serviceLocator) {\n this.defaultItems = {};\n this.disableItems = [];\n this.hiddenItems = [];\n this.localeText = this.setLocaleKey();\n this.parent = parent;\n this.gridID = parent.element.id;\n this.serviceLocator = serviceLocator;\n this.addEventListener();\n }\n /**\n * @returns {void}\n * @hidden\n */\n ContextMenu.prototype.addEventListener = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n this.parent.on(events.uiUpdate, this.enableAfterRenderMenu, this);\n this.parent.on(events.initialLoad, this.render, this);\n this.parent.on(events.destroy, this.destroy, this);\n };\n /**\n * @returns {void}\n * @hidden\n */\n ContextMenu.prototype.removeEventListener = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n this.parent.off(events.initialLoad, this.render);\n this.parent.off(events.uiUpdate, this.enableAfterRenderMenu);\n this.parent.off(events.destroy, this.destroy);\n EventHandler.remove(this.element, 'keydown', this.keyDownHandler.bind(this));\n };\n ContextMenu.prototype.keyDownHandler = function (e) {\n if (e.code === 'Tab' || e.which === 9) {\n this.contextMenu.close();\n }\n if (e.code === 'Escape') {\n this.contextMenu.close();\n this.parent.notify(events.restoreFocus, {});\n }\n };\n ContextMenu.prototype.render = function () {\n this.parent.element.classList.add('e-noselect');\n this.l10n = this.serviceLocator.getService('localization');\n this.element = this.parent.createElement('ul', { id: this.gridID + '_cmenu' });\n EventHandler.add(this.element, 'keydown', this.keyDownHandler.bind(this));\n this.parent.element.appendChild(this.element);\n var target = '#' + this.gridID;\n this.contextMenu = new Menu({\n items: this.getMenuItems(),\n enableRtl: this.parent.enableRtl,\n enablePersistence: this.parent.enablePersistence,\n locale: this.parent.locale,\n target: target,\n select: this.contextMenuItemClick.bind(this),\n beforeOpen: this.contextMenuBeforeOpen.bind(this),\n onOpen: this.contextMenuOpen.bind(this),\n onClose: this.contextMenuOnClose.bind(this),\n cssClass: this.parent.cssClass ? 'e-grid-menu' + ' ' + this.parent.cssClass : 'e-grid-menu'\n });\n this.contextMenu.appendTo(this.element);\n };\n ContextMenu.prototype.enableAfterRenderMenu = function (e) {\n if (e.module === this.getModuleName() && e.enable) {\n if (this.contextMenu) {\n this.contextMenu.destroy();\n remove(this.element);\n this.parent.element.classList.remove('e-noselect');\n }\n this.render();\n }\n };\n ContextMenu.prototype.getMenuItems = function () {\n var menuItems = [];\n var exportItems = [];\n for (var _i = 0, _a = this.parent.contextMenuItems; _i < _a.length; _i++) {\n var item = _a[_i];\n if (typeof item === 'string' && this.getDefaultItems().indexOf(item) !== -1) {\n if (item.toLocaleLowerCase().indexOf('export') !== -1) {\n exportItems.push(this.buildDefaultItems(item));\n }\n else {\n menuItems.push(this.buildDefaultItems(item));\n }\n }\n else if (typeof item !== 'string') {\n menuItems.push(item);\n }\n }\n if (exportItems.length > 0) {\n var exportGroup = this.buildDefaultItems('export');\n exportGroup.items = exportItems;\n menuItems.push(exportGroup);\n }\n return menuItems;\n };\n ContextMenu.prototype.getLastPage = function () {\n var totalpage = Math.floor(this.parent.pageSettings.totalRecordsCount / this.parent.pageSettings.pageSize);\n if (this.parent.pageSettings.totalRecordsCount % this.parent.pageSettings.pageSize) {\n totalpage += 1;\n }\n return totalpage;\n };\n ContextMenu.prototype.contextMenuOpen = function () {\n this.isOpen = true;\n };\n /**\n * @param {ContextMenuClickEventArgs} args - specifies the ContextMenuClickEventArgs argument type\n * @returns {void}\n * @hidden\n */\n ContextMenu.prototype.contextMenuItemClick = function (args) {\n var item = this.getKeyFromId(args.item.id);\n switch (item) {\n case 'AutoFitAll':\n this.parent.autoFitColumns([]);\n break;\n case 'AutoFit':\n this.parent.autoFitColumns(this.targetColumn.field);\n break;\n case 'Group':\n this.parent.groupColumn(this.targetColumn.field);\n break;\n case 'Ungroup':\n this.parent.ungroupColumn(this.targetColumn.field);\n break;\n case 'Edit':\n if (this.parent.editModule) {\n if (this.parent.editSettings.mode === 'Batch') {\n if (this.row && this.cell && !isNaN(parseInt(this.cell.getAttribute(literals.dataColIndex), 10))) {\n this.parent.editModule.editCell(parseInt(this.row.getAttribute(literals.dataRowIndex), 10), \n // eslint-disable-next-line\n this.parent.getColumns()[parseInt(this.cell.getAttribute(literals.dataColIndex), 10)].field);\n }\n }\n else {\n this.parent.editModule.endEdit();\n this.parent.editModule.startEdit(this.row);\n }\n }\n break;\n case 'Delete':\n if (this.parent.editModule) {\n if (this.parent.editSettings.mode !== 'Batch') {\n this.parent.editModule.endEdit();\n }\n if (this.parent.getSelectedRecords().length === 1) {\n this.parent.editModule.deleteRow(this.row);\n }\n else {\n this.parent.deleteRecord();\n }\n }\n break;\n case 'Save':\n if (this.parent.editModule) {\n this.parent.editModule.endEdit();\n }\n break;\n case 'Cancel':\n if (this.parent.editModule) {\n this.parent.editModule.closeEdit();\n }\n break;\n case 'Copy':\n this.parent.copy();\n break;\n case 'PdfExport':\n this.parent.pdfExport();\n break;\n case 'ExcelExport':\n this.parent.excelExport();\n break;\n case 'CsvExport':\n this.parent.csvExport();\n break;\n case 'SortAscending':\n this.isOpen = false;\n this.parent.sortColumn(this.targetColumn.field, 'Ascending');\n break;\n case 'SortDescending':\n this.isOpen = false;\n this.parent.sortColumn(this.targetColumn.field, 'Descending');\n break;\n case 'FirstPage':\n this.parent.goToPage(1);\n break;\n case 'PrevPage':\n this.parent.goToPage(this.parent.pageSettings.currentPage - 1);\n break;\n case 'LastPage':\n this.parent.goToPage(this.getLastPage());\n break;\n case 'NextPage':\n this.parent.goToPage(this.parent.pageSettings.currentPage + 1);\n break;\n }\n args.column = this.targetColumn;\n args.rowInfo = this.targetRowdata;\n this.parent.trigger(events.contextMenuClick, args);\n };\n ContextMenu.prototype.contextMenuOnClose = function (args) {\n var parent = 'parentObj';\n if (args.items.length > 0 && args.items[0][\"\" + parent] instanceof Menu) {\n this.updateItemStatus();\n }\n this.parent.notify(events.selectRowOnContextOpen, { isOpen: false });\n };\n ContextMenu.prototype.getLocaleText = function (item) {\n return this.l10n.getConstant(this.localeText[\"\" + item]);\n };\n ContextMenu.prototype.updateItemStatus = function () {\n this.contextMenu.showItems(this.hiddenItems);\n this.contextMenu.enableItems(this.disableItems);\n this.hiddenItems = [];\n this.disableItems = [];\n this.isOpen = false;\n };\n ContextMenu.prototype.contextMenuBeforeOpen = function (args) {\n var closestGrid = closest(args.event.target, '.e-grid');\n if (args.event && closestGrid && closestGrid !== this.parent.element) {\n args.cancel = true;\n }\n else if (args.event && (closest(args.event.target, '.' + menuClass.groupHeader)\n || closest(args.event.target, '.' + menuClass.touchPop) ||\n closest(args.event.target, '.e-summarycell') ||\n closest(args.event.target, '.e-groupcaption') ||\n closest(args.event.target, '.e-filterbarcell'))) {\n args.cancel = true;\n }\n else {\n this.targetColumn = this.getColumn(args.event);\n if (parentsUntil(args.event.target, 'e-grid')) {\n this.targetRowdata = this.parent.getRowInfo(args.event.target);\n }\n if ((isNullOrUndefined(args.parentItem)) && this.targetColumn) {\n if (this.targetRowdata.cell) {\n this.parent.notify(events.selectRowOnContextOpen, { isOpen: true });\n this.selectRow(args.event, (this.targetRowdata.cell.classList.contains('e-selectionbackground')\n && this.parent.selectionSettings.type === 'Multiple') ? false : true);\n }\n }\n var hideSepItems = [];\n var showSepItems = [];\n for (var _i = 0, _a = args.items; _i < _a.length; _i++) {\n var item = _a[_i];\n var key = this.getKeyFromId(item.id);\n var dItem = this.defaultItems[\"\" + key];\n if (this.getDefaultItems().indexOf(key) !== -1) {\n if (this.ensureDisabledStatus(key)) {\n this.disableItems.push(item.text);\n }\n if (args.event && (this.ensureTarget(args.event.target, menuClass.edit) ||\n this.ensureTarget(args.event.target, menuClass.batchEdit))) {\n if (key !== 'Save' && key !== 'Cancel') {\n this.hiddenItems.push(item.text);\n }\n }\n else if (this.parent.editModule && this.parent.editSettings.mode === 'Batch' &&\n ((closest(args.event.target, '.e-gridform')) ||\n this.parent.editModule.getBatchChanges()[literals.changedRecords].length ||\n this.parent.editModule.getBatchChanges()[literals.addedRecords].length ||\n this.parent.editModule.getBatchChanges()[literals.deletedRecords].length) && (key === 'Save' || key === 'Cancel')) {\n continue;\n }\n else if (isNullOrUndefined(args.parentItem) && args.event\n && !this.ensureTarget(args.event.target, dItem.target)) {\n this.hiddenItems.push(item.text);\n }\n }\n else if (item.target && args.event &&\n !this.ensureTarget(args.event.target, item.target)) {\n if (item.separator) {\n hideSepItems.push(item.id);\n }\n else {\n this.hiddenItems.push(item.text);\n }\n }\n else if (this.ensureTarget(args.event.target, item.target) && item.separator) {\n showSepItems.push(item.id);\n }\n }\n if (showSepItems.length > 0) {\n this.contextMenu.showItems(showSepItems, true);\n }\n this.contextMenu.enableItems(this.disableItems, false);\n this.contextMenu.hideItems(this.hiddenItems);\n if (hideSepItems.length > 0) {\n this.contextMenu.hideItems(hideSepItems, true);\n }\n this.eventArgs = args.event;\n args.column = this.targetColumn;\n args.rowInfo = this.targetRowdata;\n this.parent.trigger(events.contextMenuOpen, args);\n if (args.cancel || (this.hiddenItems.length === args.items.length && !args.parentItem)) {\n this.updateItemStatus();\n args.cancel = true;\n }\n }\n applyBiggerTheme(this.parent.element, this.contextMenu.element.parentElement);\n };\n ContextMenu.prototype.ensureTarget = function (targetElement, selector) {\n var target = targetElement;\n if (this.ensureFrozenHeader(targetElement) && (selector === menuClass.header || selector === menuClass.content)) {\n target = closest(targetElement, selector === menuClass.header ? 'thead' : literals.tbody);\n }\n else if (selector === menuClass.content || selector === menuClass.header) {\n target = parentsUntil(closest(targetElement, '.' + literals.table), selector.substr(1, selector.length));\n }\n else {\n target = closest(targetElement, selector);\n }\n return target && parentsUntil(target, 'e-grid') === this.parent.element;\n };\n ContextMenu.prototype.ensureFrozenHeader = function (targetElement) {\n return (this.parent.isFrozenGrid() || this.parent.frozenRows)\n && closest(targetElement, menuClass.header) ? true : false;\n };\n ContextMenu.prototype.ensureDisabledStatus = function (item) {\n var status = false;\n switch (item) {\n case 'AutoFitAll':\n case 'AutoFit':\n status = !(this.parent.ensureModuleInjected(Resize) && !this.parent.isEdit)\n || (this.targetColumn && !this.targetColumn.field && item === 'AutoFit');\n break;\n case 'Group':\n if (!this.parent.allowGrouping || (this.parent.ensureModuleInjected(Group) && this.targetColumn\n && this.parent.groupSettings.columns.indexOf(this.targetColumn.field) >= 0) ||\n (this.targetColumn && !this.targetColumn.field)) {\n status = true;\n }\n break;\n case 'Ungroup':\n if (!this.parent.allowGrouping || !this.parent.ensureModuleInjected(Group)\n || (this.parent.ensureModuleInjected(Group) && this.targetColumn\n && this.parent.groupSettings.columns.indexOf(this.targetColumn.field) < 0)) {\n status = true;\n }\n break;\n case 'Edit':\n case 'Delete':\n case 'Save':\n case 'Cancel':\n if (!this.parent.editModule || (this.parent.getDataRows().length === 0)) {\n status = true;\n }\n break;\n case 'Copy':\n if ((this.parent.getSelectedRowIndexes().length === 0 && this.parent.getSelectedRowCellIndexes().length === 0) ||\n this.parent.getCurrentViewRecords().length === 0) {\n status = true;\n }\n break;\n case 'export':\n if ((!this.parent.allowExcelExport || !this.parent.excelExport) ||\n !this.parent.ensureModuleInjected(PdfExport) && !this.parent.ensureModuleInjected(ExcelExport)) {\n status = true;\n }\n break;\n case 'PdfExport':\n if (!(this.parent.allowPdfExport) || !this.parent.ensureModuleInjected(PdfExport)) {\n status = true;\n }\n break;\n case 'ExcelExport':\n case 'CsvExport':\n if (!(this.parent.allowExcelExport) || !this.parent.ensureModuleInjected(ExcelExport)) {\n status = true;\n }\n break;\n case 'SortAscending':\n case 'SortDescending':\n if ((!this.parent.allowSorting) || !this.parent.ensureModuleInjected(Sort) ||\n (this.targetColumn && !this.targetColumn.field)) {\n status = true;\n }\n else if (this.parent.ensureModuleInjected(Sort) && this.parent.sortSettings.columns.length > 0 && this.targetColumn) {\n var sortColumns = this.parent.sortSettings.columns;\n for (var i = 0; i < sortColumns.length; i++) {\n if (sortColumns[parseInt(i.toString(), 10)].field === this.targetColumn.field\n && sortColumns[parseInt(i.toString(), 10)].direction.toLowerCase() === item.toLowerCase().replace('sort', '').toLocaleLowerCase()) {\n status = true;\n }\n }\n }\n break;\n case 'FirstPage':\n case 'PrevPage':\n if (!this.parent.allowPaging || !this.parent.ensureModuleInjected(Page) ||\n this.parent.getCurrentViewRecords().length === 0 ||\n (this.parent.ensureModuleInjected(Page) && this.parent.pageSettings.currentPage === 1)) {\n status = true;\n }\n break;\n case 'LastPage':\n case 'NextPage':\n if (!this.parent.allowPaging || !this.parent.ensureModuleInjected(Page) ||\n this.parent.getCurrentViewRecords().length === 0 ||\n (this.parent.ensureModuleInjected(Page) && this.parent.pageSettings.currentPage === this.getLastPage())) {\n status = true;\n }\n break;\n }\n return status;\n };\n /**\n * Gets the context menu element from the Grid.\n *\n * @returns {Element} returns the element\n */\n ContextMenu.prototype.getContextMenu = function () {\n return this.element;\n };\n /**\n * Destroys the context menu component in the Grid.\n *\n * @function destroy\n * @returns {void}\n * @hidden\n */\n ContextMenu.prototype.destroy = function () {\n var gridElement = this.parent.element;\n if (!gridElement || (!gridElement.querySelector('.' + literals.gridHeader) && !gridElement.querySelector('.' + literals.gridContent))) {\n return;\n }\n this.contextMenu.destroy();\n if (this.element.parentNode) {\n remove(this.element);\n }\n this.removeEventListener();\n this.parent.element.classList.remove('e-noselect');\n };\n ContextMenu.prototype.getModuleName = function () {\n return 'contextMenu';\n };\n ContextMenu.prototype.generateID = function (item) {\n return this.gridID + '_cmenu_' + item;\n };\n ContextMenu.prototype.getKeyFromId = function (id) {\n return id.replace(this.gridID + '_cmenu_', '');\n };\n ContextMenu.prototype.buildDefaultItems = function (item) {\n var menuItem;\n switch (item) {\n case 'AutoFitAll':\n case 'AutoFit':\n menuItem = { target: menuClass.header };\n break;\n case 'Group':\n menuItem = { target: menuClass.header, iconCss: menuClass.group };\n break;\n case 'Ungroup':\n menuItem = { target: menuClass.header, iconCss: menuClass.ungroup };\n break;\n case 'Edit':\n menuItem = { target: menuClass.content, iconCss: menuClass.editIcon };\n break;\n case 'Delete':\n menuItem = { target: menuClass.content, iconCss: menuClass.delete };\n break;\n case 'Save':\n menuItem = { target: menuClass.edit, iconCss: menuClass.save };\n break;\n case 'Cancel':\n menuItem = { target: menuClass.edit, iconCss: menuClass.cancel };\n break;\n case 'Copy':\n menuItem = { target: menuClass.content, iconCss: menuClass.copy };\n break;\n case 'export':\n menuItem = { target: menuClass.content };\n break;\n case 'PdfExport':\n menuItem = { target: menuClass.content, iconCss: menuClass.pdf };\n break;\n case 'ExcelExport':\n menuItem = { target: menuClass.content, iconCss: menuClass.excel };\n break;\n case 'CsvExport':\n menuItem = { target: menuClass.content, iconCss: menuClass.csv };\n break;\n case 'SortAscending':\n menuItem = { target: menuClass.header, iconCss: menuClass.ascending };\n break;\n case 'SortDescending':\n menuItem = { target: menuClass.header, iconCss: menuClass.descending };\n break;\n case 'FirstPage':\n menuItem = { target: menuClass.pager, iconCss: menuClass.fPage };\n break;\n case 'PrevPage':\n menuItem = { target: menuClass.pager, iconCss: menuClass.pPage };\n break;\n case 'LastPage':\n menuItem = { target: menuClass.pager, iconCss: menuClass.lPage };\n break;\n case 'NextPage':\n menuItem = { target: menuClass.pager, iconCss: menuClass.nPage };\n break;\n }\n this.defaultItems[\"\" + item] = {\n text: this.getLocaleText(item), id: this.generateID(item),\n target: menuItem.target, iconCss: menuItem.iconCss ? 'e-icons ' + menuItem.iconCss : ''\n };\n return this.defaultItems[\"\" + item];\n };\n ContextMenu.prototype.getDefaultItems = function () {\n return ['AutoFitAll', 'AutoFit',\n 'Group', 'Ungroup', 'Edit', 'Delete', 'Save', 'Cancel', 'Copy', 'export',\n 'PdfExport', 'ExcelExport', 'CsvExport', 'SortAscending', 'SortDescending',\n 'FirstPage', 'PrevPage', 'LastPage', 'NextPage'];\n };\n ContextMenu.prototype.setLocaleKey = function () {\n var localeKeys = {\n 'AutoFitAll': 'autoFitAll',\n 'AutoFit': 'autoFit',\n 'Copy': 'Copy',\n 'Group': 'Group',\n 'Ungroup': 'Ungroup',\n 'Edit': 'EditRecord',\n 'Delete': 'DeleteRecord',\n 'Save': 'Save',\n 'Cancel': 'CancelButton',\n 'PdfExport': 'Pdfexport',\n 'ExcelExport': 'Excelexport',\n 'CsvExport': 'Csvexport',\n 'export': 'Export',\n 'SortAscending': 'SortAscending',\n 'SortDescending': 'SortDescending',\n 'FirstPage': 'FirstPage',\n 'LastPage': 'LastPage',\n 'PrevPage': 'PreviousPage',\n 'NextPage': 'NextPage'\n };\n return localeKeys;\n };\n ContextMenu.prototype.getColumn = function (e) {\n var cell = closest(e.target, 'th.e-headercell');\n if (cell) {\n var uid = cell.querySelector('.e-headercelldiv, .e-stackedheadercelldiv').getAttribute('e-mappinguid');\n return this.parent.getColumnByUid(uid);\n }\n else {\n var ele = (this.parent.getRowInfo(e.target).column);\n return ele || null;\n }\n };\n ContextMenu.prototype.selectRow = function (e, isSelectable) {\n this.cell = e.target;\n this.row = closest(e.target, 'tr.e-row') || this.row;\n if (this.row && isSelectable && !parentsUntil(e.target, 'e-gridpager')) {\n this.parent.selectRow(parseInt(this.row.getAttribute(literals.dataRowIndex), 10));\n }\n };\n return ContextMenu;\n}());\nexport { ContextMenu };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { Tooltip } from '@syncfusion/ej2-popups';\nimport { ComponentBase, applyMixins } from '@syncfusion/ej2-react-base';\n/**\n * Represents the React Tooltip component that displays a piece of information about the target element on mouse hover.\n * ```html\n * Show Tooltip\n * ```\n */\nvar TooltipComponent = /** @class */ (function (_super) {\n __extends(TooltipComponent, _super);\n function TooltipComponent(props) {\n var _this = _super.call(this, props) || this;\n _this.initRenderCalled = false;\n _this.checkInjectedModules = false;\n _this.statelessTemplateProps = null;\n _this.templateProps = null;\n _this.immediateRender = false;\n _this.portals = [];\n return _this;\n }\n TooltipComponent.prototype.render = function () {\n if (((this.element && !this.initRenderCalled) || this.refreshing) && !this.isReactForeceUpdate) {\n _super.prototype.render.call(this);\n this.initRenderCalled = true;\n }\n else {\n return React.createElement('div', this.getDefaultAttributes(), [].concat(this.props.children, this.portals));\n }\n };\n return TooltipComponent;\n}(Tooltip));\nexport { TooltipComponent };\napplyMixins(TooltipComponent, [ComponentBase, React.Component]);\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Filter, GridComponent, InfiniteScroll, Inject, Page, Reorder, Sort, Toolbar, Resize, Group, Search, ExcelExport, ContextMenu, } from \"@syncfusion/ej2-react-grids\";\nimport { TooltipComponent, } from \"@syncfusion/ej2-react-popups\";\nimport React, { createContext } from \"react\";\nimport classNames from \"classnames\";\nimport { sanitizeHtml } from \"../../../utils/markup\";\nexport var GridInstanceContext = createContext(null);\nvar SecondaryGridComponent = function (props) {\n var _a = React.useState(), tooltipText = _a[0], setTooltipText = _a[1];\n // Set Tooltip on Column hover\n var beforeRender = function (args) {\n // Only show a tooltip for long character-length column values.\n if (!args.target.innerText || args.target.innerText.length < 25) {\n args.cancel = true;\n }\n // Replace double quotes with HTML entity ". To avoid breaking the tooltip.\n var escapedText = args.target.innerText.replace(/\"/g, \""\");\n // Sanitize the text to mitigate XSS vulnerabilities in TooltipComponent\n var sanitizedText = sanitizeHtml(escapedText);\n setTooltipText(sanitizedText);\n };\n return (_jsxs(\"div\", { className: \"ucl-grid-container\", children: [props.ready && (_jsx(TooltipComponent, { id: \"Tooltip\", target: \".e-rowcell\", beforeRender: beforeRender, content: tooltipText, className: classNames(\"primary-grid\", props.className || \"\"), children: _jsx(GridInstanceContext.Provider, { value: props.gridRef.current, children: _jsx(GridComponent, __assign({ ref: props.gridRef, className: \"ucl-grid\" }, props.gridSettings, { children: _jsx(Inject, { services: [\n Page,\n Sort,\n Filter,\n Group,\n Toolbar,\n Reorder,\n Resize,\n InfiniteScroll,\n Search,\n ExcelExport,\n ContextMenu,\n ] }) })) }) })), !props.ready && _jsx(_Fragment, {})] }));\n};\nvar SecondaryGrid = SecondaryGridComponent;\nexport default SecondaryGrid;\n","import DomPurify from \"dompurify\";\nexport var sanitizeHtml = function (html) {\n return DomPurify.sanitize(html, { USE_PROFILES: { html: true } });\n};\n","export var defaultGridSettings = {\n enableColumnVirtualization: true,\n enableInfiniteScrolling: true,\n allowReordering: true,\n allowResizing: true,\n resizeSettings: { mode: \"Normal\" },\n pageSettings: { pageSize: 20 },\n allowExcelExport: true,\n allowSorting: true,\n allowFiltering: true,\n loadingIndicator: { indicatorType: \"Shimmer\" },\n enableVirtualMaskRow: true,\n filterSettings: {\n type: \"Excel\",\n ignoreAccent: true,\n operators: {\n stringOperator: [{ value: \"contains\", text: \"Contains \" }],\n },\n },\n toolbar: [],\n searchSettings: {\n operator: \"contains\",\n ignoreCase: true,\n },\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { useEffect, useRef, useState } from \"react\";\nimport { defaultGridSettings } from \"./types\";\nimport { L10n } from \"@syncfusion/ej2-base\";\nimport { useOData } from \"../../../stores/useOData\";\nimport { Query } from \"@syncfusion/ej2-data\";\nimport { showDownloadingFileAppToaster, showSuccessAppToaster, } from \"../../Toast/Toast\";\n//Create custom Hook\nexport var useGrid = function (gridSetup) {\n var _a, _b, _c, _d;\n var _e = useOData({ getAuthRequestHeader: gridSetup.getAuthRequestHeader }, function () {\n setupGridSettings(gridSetup);\n }), authRequestHeader = _e.authRequestHeader, setupGridODataSource = _e.setupGridODataSource, baseActionCompleteEventHandler = _e.baseActionCompleteEventHandler, baseActionFailureEventHandler = _e.baseActionFailureEventHandler;\n var _f = useState(), gridSettings = _f[0], setGridSettings = _f[1];\n var _g = useState(), gridKey = _g[0], setGridKey = _g[1];\n var _h = useState(), gridHeightSettings = _h[0], setGridHeightSettings = _h[1];\n var _j = useState(), filterSettings = _j[0], setFilterSettings = _j[1];\n var _k = useState(), defaultSort = _k[0], setDefaultSort = _k[1];\n var _l = useState(false), initialized = _l[0], setInitialized = _l[1];\n var gridRef = useRef(null);\n var _m = useState(false), ready = _m[0], setReady = _m[1];\n useEffect(function () {\n if (!!gridRef.current && !initialized) {\n initialize();\n setInitialized(true);\n }\n });\n useEffect(function () {\n if (gridSettings) {\n setReady(true);\n }\n }, [gridSettings]);\n // Computed\n var filtersCount = ((_b = (_a = filterSettings === null || filterSettings === void 0 ? void 0 : filterSettings.rawFilterSettings) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) +\n ((_d = (_c = filterSettings === null || filterSettings === void 0 ? void 0 : filterSettings.rawSortSettings) === null || _c === void 0 ? void 0 : _c.length) !== null && _d !== void 0 ? _d : 0);\n // Methods\n var requestType;\n var setRequestType = function (type) {\n requestType = type;\n };\n var persistData;\n var setPersistData = function (data) {\n persistData = data;\n };\n var requestFilterQuery;\n var setRequestFilterQuery = function (filterQuery) {\n requestFilterQuery = filterQuery;\n };\n var clearFilters = function (gridFilterSettings) {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n if (!gridFilterSettings) {\n gridFilterSettings = getGridFilterSettings(gridRef.current);\n }\n // Clear Filters (Direct, avoid errors)\n var fieldsToRemove = (_a = gridFilterSettings.rawFilterSettings) === null || _a === void 0 ? void 0 : _a.map(function (x) { return x.field; });\n if (((_b = gridFilterSettings.rawFilterSettings) === null || _b === void 0 ? void 0 : _b.length) > 0 && !!gridRef.current) {\n gridRef.current.filterSettings.columns =\n (_d = (_c = gridRef.current) === null || _c === void 0 ? void 0 : _c.filterSettings.columns) === null || _d === void 0 ? void 0 : _d.filter(function (x) { return !fieldsToRemove.includes(String(x.field)); });\n (_e = gridRef.current) === null || _e === void 0 ? void 0 : _e.setProperties({\n filterSettings: gridRef.current.filterSettings,\n });\n }\n // Clear Sorts\n if (((_f = gridFilterSettings.rawSortSettings) === null || _f === void 0 ? void 0 : _f.length) > 0) {\n gridFilterSettings.rawSortSettings.forEach(function (col) {\n var _a;\n (_a = gridRef.current) === null || _a === void 0 ? void 0 : _a.removeSortColumn(String(col.field));\n });\n }\n if ((_g = gridRef.current) === null || _g === void 0 ? void 0 : _g.headerModule) {\n (_h = gridRef.current) === null || _h === void 0 ? void 0 : _h.refreshHeader();\n }\n };\n var removeSort = function (field) {\n clearFilters({\n rawSortSettings: [{ field: field }],\n });\n };\n var removeFilter = function (field) {\n clearFilters({\n rawFilterSettings: [{ field: field }],\n });\n };\n var initializeAutoHeight = function () {\n // Inner Function\n var autoHeight = function () {\n var _a;\n if (gridRef.current) {\n gridRef.current.height =\n window.innerHeight - ((_a = gridHeightSettings === null || gridHeightSettings === void 0 ? void 0 : gridHeightSettings.autoHeightOffset) !== null && _a !== void 0 ? _a : 250);\n }\n };\n // Init\n autoHeight();\n // On Resize\n window.addEventListener(\"resize\", function () {\n autoHeight();\n });\n };\n var initialize = function () {\n storeFilterSettings();\n initializeAutoHeight();\n };\n var getGridFilterSettings = function (scopeGridInstance) {\n var _a, _b;\n if (!persistData) {\n getPersistData();\n }\n var gridFilterSettings = {\n rawQuery: requestFilterQuery,\n rawSearch: scopeGridInstance === null || scopeGridInstance === void 0 ? void 0 : scopeGridInstance.searchSettings.key,\n rawColumnSettings: (scopeGridInstance === null || scopeGridInstance === void 0 ? void 0 : scopeGridInstance.columns).filter(function (x) { return x.visible; }),\n rawFilterSettings: (persistData === null || persistData === void 0 ? void 0 : persistData.filterSettings.columns) || [],\n rawSortSettings: (persistData === null || persistData === void 0 ? void 0 : persistData.sortSettings.columns) || [],\n columnNames: (_b = (_a = (scopeGridInstance === null || scopeGridInstance === void 0 ? void 0 : scopeGridInstance.columns)\n .filter(function (x) { return x.visible; })) === null || _a === void 0 ? void 0 : _a.map(function (x) { return x.field; })) === null || _b === void 0 ? void 0 : _b.join(\",\"),\n };\n return gridFilterSettings;\n };\n var getPersistData = function () {\n var _a;\n if (!gridRef.current) {\n return;\n }\n // Set Persist Data\n var persistData = JSON.parse((_a = gridRef.current) === null || _a === void 0 ? void 0 : _a.getPersistData());\n setPersistData(persistData);\n };\n var storeFilterSettings = function (request) {\n if (!gridRef.current) {\n return;\n }\n if (!request ||\n [\"sorting\", \"filtering\", \"searching\", \"reorder\", \"refresh\"].includes(String(request))) {\n getPersistData();\n // Set Filter Settings\n var settings = getGridFilterSettings(gridRef.current);\n if (settings) {\n setFilterSettings(__assign({}, settings));\n }\n }\n };\n // Setup\n var setupGridSettingsColumns = function (columnsConfiguration) {\n var gridColumnSettings = columnsConfiguration.map(function (colsConfig) { return (__assign({ textAlign: \"Left\", displayAsCheckBox: false }, colsConfig)); });\n return gridColumnSettings;\n };\n var setupGridSettingsQuery = function (columnsConfiguration) {\n var _a;\n var query = new Query();\n query === null || query === void 0 ? void 0 : query.select(columnsConfiguration.map(function (x) { return x.field; }));\n // Add params for Grid Views\n query === null || query === void 0 ? void 0 : query.addParams(\"gridId\", gridSetup.gridKey);\n if (gridSetup.gridViewTitle) {\n query === null || query === void 0 ? void 0 : query.addParams(\"gridViewTitle\", gridSetup.gridViewTitle);\n }\n // Add custom params from setup\n if (gridSetup.dataParams) {\n for (var key in gridSetup.dataParams) {\n query === null || query === void 0 ? void 0 : query.addParams(key, gridSetup.dataParams[key]);\n }\n }\n var setupDefaultSort = (_a = gridSetup.gridConfiguration) === null || _a === void 0 ? void 0 : _a.defaultSort;\n if (setupDefaultSort && setupDefaultSort.field) {\n if (setupDefaultSort.direction === \"Ascending\") {\n query.sortBy(setupDefaultSort.field);\n }\n else {\n query.sortByDesc(setupDefaultSort.field);\n }\n }\n return query;\n };\n var setupRecordClickEvent = function (gridConfiguration) {\n return function (x) {\n if (gridConfiguration === null || gridConfiguration === void 0 ? void 0 : gridConfiguration.recordClick) {\n gridConfiguration.recordClick(x);\n }\n if (gridConfiguration === null || gridConfiguration === void 0 ? void 0 : gridConfiguration.onRecordClick) {\n var recordClickEventArgs = __assign({}, x);\n gridConfiguration.onRecordClick(recordClickEventArgs);\n }\n };\n };\n var setupToolbarClickEvent = function (gridConfiguration) {\n return function (clickEventArgs) {\n var _a, _b;\n if (gridConfiguration === null || gridConfiguration === void 0 ? void 0 : gridConfiguration.toolbarClick) {\n gridConfiguration.toolbarClick(clickEventArgs);\n }\n if (clickEventArgs.item.id === \"ExcelExport\") {\n showDownloadingFileAppToaster(\"Excel file\");\n (_a = gridRef.current) === null || _a === void 0 ? void 0 : _a.excelExport({\n fileName: (_b = gridConfiguration === null || gridConfiguration === void 0 ? void 0 : gridConfiguration.exportFilename) !== null && _b !== void 0 ? _b : \"Export.xlsx\",\n }).then(function () {\n showSuccessAppToaster(\"Excel download finished\");\n });\n }\n };\n };\n var setupDataboundEvent = function (gridConfiguration) {\n return function (obj) {\n var _a, _b;\n if (gridConfiguration === null || gridConfiguration === void 0 ? void 0 : gridConfiguration.dataBound) {\n gridConfiguration.dataBound(obj);\n }\n (_a = gridRef.current) === null || _a === void 0 ? void 0 : _a.autoFitColumns(((_b = gridRef.current) === null || _b === void 0 ? void 0 : _b.columns)\n .filter(function (x) {\n // only autofit columns whose width is set at its default\n return typeof x.width === \"number\" ? x.width === 200 : true;\n })\n .map(function (x) { return x.foreignKeyField; }));\n };\n };\n var setupCreatedEvent = function (gridConfiguration) {\n return function (obj) {\n if (gridConfiguration === null || gridConfiguration === void 0 ? void 0 : gridConfiguration.created) {\n gridConfiguration.created(obj);\n }\n storeFilterSettings();\n };\n };\n var setupActionBeginEvent = function (gridConfiguration) {\n return function (eventArgs) {\n if (gridConfiguration === null || gridConfiguration === void 0 ? void 0 : gridConfiguration.actionBegin) {\n gridConfiguration.actionBegin(eventArgs);\n }\n setRequestType(eventArgs.requestType);\n // Set Filter Choice Count\n if (eventArgs.requestType === \"filterchoicerequest\") {\n eventArgs.filterChoiceCount = 9999;\n }\n };\n };\n var setupActionFailureEvent = function (gridConfiguration) {\n return function (eventArgs) { return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (gridConfiguration === null || gridConfiguration === void 0 ? void 0 : gridConfiguration.actionFailure) {\n gridConfiguration.actionFailure(eventArgs);\n }\n // Process Error\n return [4 /*yield*/, baseActionFailureEventHandler(eventArgs, function () { var _a; return (_a = gridRef.current) === null || _a === void 0 ? void 0 : _a.refresh(); })];\n case 1:\n // Process Error\n _a.sent();\n return [2 /*return*/];\n }\n });\n }); };\n };\n var setupActionCompleteEvent = function (gridConfiguration) {\n return function (eventArgs) {\n if (gridConfiguration === null || gridConfiguration === void 0 ? void 0 : gridConfiguration.actionComplete) {\n gridConfiguration.actionComplete(eventArgs);\n }\n baseActionCompleteEventHandler();\n };\n };\n var onBeforeSend = function (_a) {\n var _b, _c;\n var queryString = _a.queryString;\n setRequestFilterQuery(queryString);\n if (requestType) {\n storeFilterSettings(requestType);\n }\n // Initial Sorting\n if (defaultSort && !queryString.includes(\"$orderby\")) {\n queryString =\n queryString +\n \"&$orderby=\".concat(defaultSort.field, \"%20\").concat(defaultSort.direction === \"Ascending\" ? \"asc\" : \"desc\");\n }\n // Handle conflict between User and Default sort\n var setupDefaultSort = (_b = gridSetup.gridConfiguration) === null || _b === void 0 ? void 0 : _b.defaultSort;\n if (setupDefaultSort && setupDefaultSort.field) {\n // Matches when query contains duplicate orderby parameters on the default sort column\n // Captures the interior of the orderby parameter\n // e.g.: $orderby=createdAt%20desc,createdAt => createdAt%20desc,createdAt\n var doubleSortRe = new RegExp(\"\\\\$orderby=(\".concat(setupDefaultSort.field, \"(?:%20desc)?,\").concat(setupDefaultSort.field, \"(?:%20desc)?)\"));\n var doubleSortCapture = (_c = queryString.match(doubleSortRe)) === null || _c === void 0 ? void 0 : _c.at(1);\n if (doubleSortCapture) {\n // Remove the default sort column from the orderby parameter to resolve the conflict\n queryString = queryString.replace(doubleSortRe, \"$orderby=\".concat(doubleSortCapture.split(\",\")[0]));\n }\n }\n // Grouping Filters missing Filter\n if (queryString.includes(\"$apply=groupby\") &&\n !queryString.includes(\"$filter\")) {\n var params = new URLSearchParams(filterSettings === null || filterSettings === void 0 ? void 0 : filterSettings.rawQuery);\n if (params.has(\"$filter\")) {\n queryString =\n queryString +\n \"&$filter=\".concat(encodeURIComponent(params.get(\"$filter\")));\n }\n }\n return [queryString, authRequestHeader];\n };\n // SETUP GRID SETTINGS\n var setupGridSettings = function (gridSetup) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\n setGridKey(gridSetup.gridKey);\n var gridHeight = (_a = gridSetup.gridHeightSettings) !== null && _a !== void 0 ? _a : {\n height: 600,\n autoHeightOffset: 250,\n };\n setGridHeightSettings((_b = gridSetup.gridHeightSettings) !== null && _b !== void 0 ? _b : gridHeight);\n var settings = __assign(__assign({}, defaultGridSettings), gridSetup.gridConfiguration);\n // Overwrite Search\n if (gridSetup.allowSearch) {\n if (!((_c = settings.toolbar) === null || _c === void 0 ? void 0 : _c.find(function (x) {\n return typeof x !== \"string\" && (x === null || x === void 0 ? void 0 : x.text) === \"Search\";\n })))\n (_d = settings.toolbar) === null || _d === void 0 ? void 0 : _d.push({\n text: \"Search\",\n });\n }\n else {\n settings.toolbar = (_e = settings.toolbar) === null || _e === void 0 ? void 0 : _e.filter(function (x) {\n return typeof x !== \"string\" && (x === null || x === void 0 ? void 0 : x.text) !== \"Search\";\n });\n }\n // Override Excel Export\n if (settings.allowExcelExport) {\n if (!((_f = settings.toolbar) === null || _f === void 0 ? void 0 : _f.find(function (x) {\n return typeof x !== \"string\" && (x === null || x === void 0 ? void 0 : x.id) === \"ExcelExport\";\n })))\n (_g = settings.toolbar) === null || _g === void 0 ? void 0 : _g.push({\n text: \"Export to Excel\",\n tooltipText: \"Export to Excel\",\n prefixIcon: \"e-upload-2\",\n id: \"ExcelExport\",\n });\n }\n else {\n settings.toolbar = (_h = settings.toolbar) === null || _h === void 0 ? void 0 : _h.filter(function (x) {\n return typeof x !== \"string\" && (x === null || x === void 0 ? void 0 : x.id) !== \"ExcelExport\";\n });\n }\n settings.height = gridHeight.height;\n // Update Filter and Sort Settings\n settings.filterSettings = __assign(__assign({}, settings.filterSettings), { columns: gridSetup.filterConfiguration });\n settings.sortSettings = __assign(__assign({}, settings.sortSettings), {\n columns: (_j = gridSetup.sortConfiguration) !== null && _j !== void 0 ? _j : [],\n });\n // Setup Properties\n settings.columns = setupGridSettingsColumns(gridSetup.columnsConfiguration);\n if (!!gridSetup.setupActions) {\n settings.columns = gridSetup.setupActions(settings.columns);\n }\n settings.query = setupGridSettingsQuery(gridSetup.columnsConfiguration);\n settings.dataSource = setupGridODataSource(gridSetup.dataSource, gridSetup.columnsConfiguration, onBeforeSend);\n // Setup Events\n settings.recordClick = setupRecordClickEvent(gridSetup.gridConfiguration);\n settings.toolbarClick = setupToolbarClickEvent(gridSetup.gridConfiguration);\n settings.dataBound = setupDataboundEvent(gridSetup.gridConfiguration);\n settings.created = setupCreatedEvent(gridSetup.gridConfiguration);\n settings.actionBegin = setupActionBeginEvent(gridSetup.gridConfiguration);\n settings.actionFailure = setupActionFailureEvent(gridSetup.gridConfiguration);\n settings.actionComplete = setupActionCompleteEvent(gridSetup.gridConfiguration);\n // Set default sort\n setDefaultSort((_k = gridSetup.gridConfiguration) === null || _k === void 0 ? void 0 : _k.defaultSort);\n // Update locale for boolean values\n L10n.load({\n \"en-US\": {\n grid: {\n True: \"Yes\",\n False: \"No\",\n },\n },\n });\n // Return Grid Model\n setGridSettings(__assign({}, settings));\n };\n return {\n ready: ready,\n gridKey: gridKey,\n gridRef: gridRef,\n gridSettings: gridSettings,\n filtersCount: filtersCount,\n filterSettings: filterSettings,\n removeFilter: removeFilter,\n clearFilters: clearFilters,\n removeSort: removeSort,\n };\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { action, makeObservable, observable } from \"mobx\";\nimport { DataManager, Query, Predicate } from \"@syncfusion/ej2-data\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { utils } from \"../../../../../\";\nvar NavigationTreeViewStore = /** @class */ (function () {\n function NavigationTreeViewStore() {\n var _this = this;\n // public\n this.maskedTextBoxInstance = null;\n this.treeViewInstance = null;\n this.sideBarInstance = null;\n this.navigationFieldsConfig = [];\n this.defaultMaskedTextBoxSettings = {\n placeholder: \"Search by Component Name...\",\n };\n this.nodeTemplate = function (data) {\n return (_jsxs(\"div\", { className: \"navigation-template\", children: [_jsx(\"div\", { className: \"navigation-template-icon\", children: data.icon && _jsx(FontAwesomeIcon, { icon: data.icon }) }), _jsx(\"div\", { className: \"navigation-template-name ename\", children: data.name })] }));\n };\n this.defaultTreeViewSettings = {\n allowDragAndDrop: false,\n allowMultiSelection: false,\n nodeTemplate: this.nodeTemplate,\n };\n this.isOpen = function () {\n var _a;\n return (_a = _this.sideBarInstance) === null || _a === void 0 ? void 0 : _a.isOpen;\n };\n this.open = function () {\n var _a, _b;\n (_a = _this.sideBarInstance) === null || _a === void 0 ? void 0 : _a.show();\n (_b = _this.treeViewInstance) === null || _b === void 0 ? void 0 : _b.expandAll();\n };\n this.close = function () {\n var _a, _b;\n (_a = _this.sideBarInstance) === null || _a === void 0 ? void 0 : _a.hide();\n (_b = _this.treeViewInstance) === null || _b === void 0 ? void 0 : _b.collapseAll();\n };\n this.toggle = function () {\n var _a, _b, _c, _d, _e;\n if ((_a = _this.sideBarInstance) === null || _a === void 0 ? void 0 : _a.isOpen) {\n (_b = _this.sideBarInstance) === null || _b === void 0 ? void 0 : _b.hide();\n (_c = _this.treeViewInstance) === null || _c === void 0 ? void 0 : _c.collapseAll();\n }\n else {\n (_d = _this.sideBarInstance) === null || _d === void 0 ? void 0 : _d.show();\n (_e = _this.treeViewInstance) === null || _e === void 0 ? void 0 : _e.expandAll();\n }\n };\n // Datasource\n this.changeDataSource = function (data) {\n if (!_this.treeViewInstance) {\n return;\n }\n _this.treeViewInstance.fields = {\n dataSource: __spreadArray([], data, true),\n id: \"id\",\n text: \"name\",\n child: \"fields\",\n expanded: \"expanded\",\n parentID: \"parentId\",\n tooltip: \"tooltipText\",\n selected: \"isSelected\",\n };\n };\n this.getItems = function (property, value, list) {\n if (!(list && list.length > 0)) {\n return [];\n }\n var predicate = new Predicate(property, \"contains\", value, true);\n var filteredList = new DataManager(list).executeLocal(new Query().where(predicate));\n return filteredList;\n };\n //search\n this.search = function () {\n var _a;\n if (!_this.maskedTextBoxInstance) {\n return;\n }\n var _text = _this.maskedTextBoxInstance.element.value;\n if (_text == \"\") {\n // show all data\n _this.changeDataSource(__spreadArray([], _this.navigationFieldsConfig, true));\n return { data: __spreadArray([], _this.navigationFieldsConfig, true), expand: true };\n }\n // Search children\n var results = utils.clone.deep(_this.navigationFieldsConfig);\n var _loop_1 = function (i) {\n var child = results[i];\n var r = _this.getItems(\"name\", _text, child.fields);\n child.fields = (_a = child.fields) === null || _a === void 0 ? void 0 : _a.filter(function (x) {\n return r.map(function (y) { return y.id; }).includes(x.id);\n });\n };\n for (var i = 0; i < results.length; i++) {\n _loop_1(i);\n }\n results = results.filter(function (x) { return x.fields && x.fields.length > 0; });\n _this.changeDataSource(__spreadArray([], results, true));\n return { data: __spreadArray([], results, true), expand: true };\n };\n this.setTreeViewFieldsConfig = function (componentTreeViewConfig) {\n _this.navigationFieldsConfig = __spreadArray([], componentTreeViewConfig, true);\n };\n // Init\n this.setup = function (componentTreeViewConfig) {\n // TreeView Settings\n var treeViewSettings = __assign({}, _this.defaultTreeViewSettings);\n _this.setTreeViewFieldsConfig(componentTreeViewConfig);\n treeViewSettings.fields = {\n dataSource: __spreadArray([], _this.navigationFieldsConfig, true),\n id: \"id\",\n text: \"name\",\n child: \"fields\",\n expanded: \"expanded\",\n parentID: \"parentId\",\n tooltip: \"tooltipText\",\n selected: \"isSelected\",\n };\n var maskedTextBoxModel = __assign({}, _this.defaultMaskedTextBoxSettings);\n return [maskedTextBoxModel, treeViewSettings];\n };\n this.initialize = function (newTreeViewInstance, newSideBarInstance) {\n _this.setInstance(newTreeViewInstance, newSideBarInstance);\n };\n this.initializeSearchBox = function (newMaskedTextBoxInstance) {\n _this.setInstanceSearchBox(newMaskedTextBoxInstance);\n };\n this.reset = function () {\n _this.setInstance(undefined, undefined);\n };\n this.setInstance = function (scopeTreeViewInstance, scopeSidebarInstance) {\n _this.treeViewInstance = scopeTreeViewInstance;\n _this.sideBarInstance = scopeSidebarInstance;\n };\n this.setInstanceSearchBox = function (scopeMaskedTextBoxInstance) {\n _this.maskedTextBoxInstance = scopeMaskedTextBoxInstance;\n };\n makeObservable(this, {\n maskedTextBoxInstance: observable,\n treeViewInstance: observable,\n navigationFieldsConfig: observable,\n sideBarInstance: observable,\n setTreeViewFieldsConfig: action,\n });\n }\n return NavigationTreeViewStore;\n}());\nexport { NavigationTreeViewStore };\nexport var navigationTreeViewStore = new NavigationTreeViewStore();\n","export var SidebarTypes;\n(function (SidebarTypes) {\n SidebarTypes[SidebarTypes[\"Row\"] = 0] = \"Row\";\n SidebarTypes[SidebarTypes[\"Column\"] = 1] = \"Column\";\n})(SidebarTypes || (SidebarTypes = {}));\nexport var NavigationExpandModes;\n(function (NavigationExpandModes) {\n NavigationExpandModes[NavigationExpandModes[\"AllOpen\"] = 0] = \"AllOpen\";\n NavigationExpandModes[NavigationExpandModes[\"AllClosed\"] = 1] = \"AllClosed\";\n NavigationExpandModes[NavigationExpandModes[\"CurrentOpen\"] = 2] = \"CurrentOpen\";\n})(NavigationExpandModes || (NavigationExpandModes = {}));\n","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported ? ((token, callbacks) => {\n _global.addEventListener(\"message\", ({source, data}) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n }, false);\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, \"*\");\n }\n })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);\n})(\n typeof setImmediate === 'function',\n isFunction(_global.postMessage)\n);\n\nconst asap = typeof queueMicrotask !== 'undefined' ?\n queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate);\n\n// *********************\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status ? response.status : null;\n }\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.status\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = typeof navigator === 'object' && navigator || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isHeaders(header)) {\n for (const [key, value] of header.entries()) {\n setHeader(value, key, rewrite);\n }\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn.apply(null, args);\n }\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if ( passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs)\n }, threshold - passed);\n }\n }\n }\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","import speedometer from \"./speedometer.js\";\nimport throttle from \"./throttle.js\";\nimport utils from \"../utils.js\";\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle(e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true\n };\n\n listener(data);\n }, freq);\n}\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [(loaded) => throttled[0]({\n lengthComputable,\n total,\n loaded\n }), throttled[1]];\n}\n\nexport const asyncDecorator = (fn) => (...args) => utils.asap(() => fn(...args));\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover its components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport isURLSameOrigin from \"./isURLSameOrigin.js\";\nimport cookies from \"./cookies.js\";\nimport buildFullPath from \"../core/buildFullPath.js\";\nimport mergeConfig from \"../core/mergeConfig.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport buildURL from \"./buildURL.js\";\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url), config.params, config.paramsSerializer);\n\n // HTTP basic authentication\n if (auth) {\n headers.set('Authorization', 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n );\n }\n\n let contentType;\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // Let the browser set it\n } else if ((contentType = headers.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n // Add xsrf header\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n}\n\n","import utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {progressEventReducer} from '../helpers/progressEventReducer.js';\nimport resolveConfig from \"../helpers/resolveConfig.js\";\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let {responseType, onUploadProgress, onDownloadProgress} = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n ([downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true));\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n ([uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress));\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","import CanceledError from \"../cancel/CanceledError.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n const {length} = (signals = signals ? signals.filter(Boolean) : []);\n\n if (timeout || length) {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n }\n }\n\n let timer = timeout && setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT))\n }, timeout)\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach(signal => {\n signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n }\n }\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const {signal} = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n }\n}\n\nexport default composeSignals;\n","\nexport const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n}\n\nexport const readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n}\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const {done, value} = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n}\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n }\n\n return new ReadableStream({\n async pull(controller) {\n try {\n const {done, value} = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = bytes += len;\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n }\n }, {\n highWaterMark: 2\n })\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport composeSignals from \"../helpers/composeSignals.js\";\nimport {trackStream} from \"../helpers/trackStream.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport {progressEventReducer, progressEventDecorator, asyncDecorator} from \"../helpers/progressEventReducer.js\";\nimport resolveConfig from \"../helpers/resolveConfig.js\";\nimport settle from \"../core/settle.js\";\n\nconst isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';\nconst isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';\n\n// used only inside the fetch adapter\nconst encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Response(str).arrayBuffer())\n);\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false\n }\n}\n\nconst supportsRequestStream = isReadableStreamSupported && test(() => {\n let duplexAccessed = false;\n\n const hasContentType = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n\n return duplexAccessed && !hasContentType;\n});\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst supportsResponseStream = isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n\nconst resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n};\n\nisFetchSupported && (((res) => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n !resolvers[type] && (resolvers[type] = utils.isFunction(res[type]) ? (res) => res[type]() :\n (_, config) => {\n throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n })\n });\n})(new Response));\n\nconst getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if(utils.isBlob(body)) {\n return body.size;\n }\n\n if(utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if(utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if(utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if(utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n}\n\nconst resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n}\n\nexport default isFetchSupported && (async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions\n } = resolveConfig(config);\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout);\n\n let request;\n\n const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: \"half\"\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader)\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = \"credentials\" in Request.prototype;\n request = new Request(url, {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: \"half\",\n credentials: isCredentialsSupported ? withCredentials : undefined\n });\n\n let response = await fetch(request);\n\n const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach(prop => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] = onDownloadProgress && progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n ) || [];\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](response, config);\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request\n })\n })\n } catch (err) {\n unsubscribe && unsubscribe();\n\n if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n {\n cause: err.cause || err\n }\n )\n }\n\n throw AxiosError.from(err, err && err.code, config, request);\n }\n});\n\n\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport fetchAdapter from './fetch.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: fetchAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","export const VERSION = \"1.7.7\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy;\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport axios from \"axios\";\nvar ApiClient = /** @class */ (function () {\n //private controller = new AbortController();\n function ApiClient(baseApiUrl, interceptor, errorHandlers) {\n var _this = this;\n this.axiosInstance = axios.create({ baseURL: baseApiUrl });\n this.axiosInstance.interceptors.request.use(function (config) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!interceptor) return [3 /*break*/, 2];\n return [4 /*yield*/, interceptor(config)];\n case 1:\n config = _a.sent();\n _a.label = 2;\n case 2: return [2 /*return*/, config];\n }\n });\n }); });\n this.axiosInstance.interceptors.response.use(function (res) { return res; }, function (error) {\n var _a;\n if (((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) === 403 && !!(errorHandlers === null || errorHandlers === void 0 ? void 0 : errorHandlers.onForbidden)) {\n errorHandlers.onForbidden();\n return;\n }\n return Promise.reject(error);\n });\n }\n ApiClient.prototype.get = function (url, options) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.axiosInstance\n .get(url, __assign({ headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n } }, options))\n .then(function (res) { return res.data; })];\n case 1: \n //this.controller.abort();\n return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n ApiClient.prototype.post = function (url, data, options) {\n if (data === void 0) { data = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.axiosInstance\n .post(url, data, __assign({ headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n } }, options))\n .then(function (res) { return res.data; })];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n ApiClient.prototype.put = function (url, data, options) {\n if (data === void 0) { data = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.axiosInstance\n .put(url, data, __assign({}, options))\n .then(function (res) { return res.data; })];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n ApiClient.prototype.delete = function (url, options) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.axiosInstance\n .delete(url, __assign({}, options))\n .then(function (res) { return res.data; })];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n ApiClient.prototype.options = function (url, options) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.axiosInstance\n .options(url, __assign({}, options))\n .then(function (res) { return res.data; })];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n ApiClient.prototype.download = function (url, data, options) {\n if (data === void 0) { data = {}; }\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.axiosInstance\n .post(url, data, __assign({ headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n }, responseType: \"blob\" }, options))\n .then(function (res) { return res.data; })\n .catch(function (error) { return __awaiter(_this, void 0, void 0, function () {\n var _a, _b, _c;\n var _d, _e;\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0:\n _d = {};\n _a = [__assign({}, error.response)];\n _e = {};\n _c = (_b = JSON).parse;\n return [4 /*yield*/, error.response.data.text()];\n case 1: throw _d.response = __assign.apply(void 0, _a.concat([(_e.data = _c.apply(_b, [_f.sent()]), _e)])),\n _d;\n }\n });\n }); })];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n return ApiClient;\n}());\nexport default ApiClient;\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport FieldSchemaApiClient from \"./fieldSchemaApiClient\";\nimport { get, set } from \"lodash\";\nvar SchemaFactory = /** @class */ (function () {\n function SchemaFactory(loadedSchema) {\n this.schema = null;\n this.schema = loadedSchema;\n }\n SchemaFactory.prototype.getSchemaProperties = function (modelName) {\n if (this.schema === null) {\n throw new Error(\"Schema is not initialized\");\n }\n var modelSchema = get(this.schema, \"schema.\".concat(modelName));\n if (!modelSchema) {\n throw new Error(\"Missing Model Schema \".concat(modelName));\n }\n return Object.keys(modelSchema);\n };\n // Get the field schema for a given model and field name\n SchemaFactory.prototype.getFieldSchemaByName = function (modelName, fieldName) {\n // If the schema is not initialized, throw an error\n if (this.schema === null) {\n throw new Error(\"Schema is not initialized\");\n }\n // Get the field schema from the schema\n var fieldSchema = get(this.schema, \"schema.\".concat(modelName, \".\").concat(fieldName));\n // If the field schema is not found, throw an error\n if (!fieldSchema) {\n throw new Error(\"Missing Field Schema \".concat(modelName, \".\").concat(fieldName));\n }\n // Return the field schema with the type_AsString cast to a FieldType\n return __assign(__assign({}, fieldSchema), { type: fieldSchema.type_AsString });\n };\n /*\n * Build a model schema based on the provided model name\n * @param modelName - The name of the model to build the schema for\n * @param onValueChange - A function that will be called when a value for a field changes\n * @param form - The current form object\n * @param errors - An object containing any errors for the form\n * @param requiredFields - An array of required fields for the form\n */\n SchemaFactory.prototype.buildModelSchema = function (modelName, onValueChange, form, errors, requiredFields) {\n var fieldNames = this.getSchemaProperties(modelName);\n return this.buildFieldSchemas(modelName, fieldNames, onValueChange, form, errors, requiredFields);\n };\n SchemaFactory.prototype.buildFieldSchema = function (modelName, fieldName, onValueChange, form, errors, isRequired) {\n var field = this.getFieldSchemaByName(modelName, fieldName);\n field.modelName = modelName;\n field.fieldName = fieldName;\n field.value = get(form, fieldName);\n field.errorMessages = get(errors, fieldName);\n field.isRequired = isRequired;\n field.onSubmit = function (value) {\n var newValue = set(form, fieldName, value);\n onValueChange(__assign({}, newValue));\n };\n return field;\n };\n SchemaFactory.prototype.buildFieldSchemas = function (modelName, fieldNames, onValueChange, form, errors, requiredFields) {\n var _this = this;\n var fieldSchemas = fieldNames.map(function (fieldName) {\n if (typeof fieldName === \"string\") {\n var field = _this.buildFieldSchema(modelName, fieldName, onValueChange, form, errors, requiredFields === null || requiredFields === void 0 ? void 0 : requiredFields.includes(fieldName));\n return field;\n }\n else {\n // If it's an object, it's a field schema.\n // If it have a fieldName assigned we auto build the field schema\n // and merge the two objects.\n // Otherwise we just return the object as is.\n if (fieldName.fieldName) {\n // Build the field schema\n var field = _this.buildFieldSchema((fieldName === null || fieldName === void 0 ? void 0 : fieldName.modelName) || modelName, fieldName.fieldName, onValueChange, form, errors, requiredFields === null || requiredFields === void 0 ? void 0 : requiredFields.includes(fieldName.fieldName));\n // Merge the two objects\n return __assign(__assign({}, field), fieldName);\n }\n // Return the object as is\n return fieldName;\n }\n });\n return fieldSchemas;\n };\n SchemaFactory.prototype.buildFieldSchemaFormBuilder = function (config) {\n var _this = this;\n var fieldSchemaFormSampleBuilder = function (onValueChange, form, errors) {\n return _this.buildFieldSchemas(config.model, config.schema, onValueChange, form, errors, config.required);\n };\n return fieldSchemaFormSampleBuilder;\n };\n return SchemaFactory;\n}());\nexport { SchemaFactory };\nexport var useFieldSchema = function () {\n var getAsyncSchemaFactory = function (apiClient) { return __awaiter(void 0, void 0, void 0, function () {\n var fieldSchemaApiClient, fetchedSchema;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n fieldSchemaApiClient = new FieldSchemaApiClient(apiClient);\n return [4 /*yield*/, fieldSchemaApiClient.getSchema()];\n case 1:\n fetchedSchema = _a.sent();\n return [2 /*return*/, new SchemaFactory(fetchedSchema)];\n }\n });\n }); };\n var getSchemaFactory = function (schema) { return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, new SchemaFactory(schema)];\n });\n }); };\n return { getAsyncSchemaFactory: getAsyncSchemaFactory, getSchemaFactory: getSchemaFactory };\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport FieldSchemaApiClient from \"./fieldSchemaApiClient\";\nimport { get, set } from \"lodash\";\nvar SchemaFactoryV2 = /** @class */ (function () {\n function SchemaFactoryV2(loadedSchema) {\n this.schema = null;\n this.schema = loadedSchema;\n }\n SchemaFactoryV2.prototype.getSchemaProperties = function (modelName) {\n if (this.schema === null) {\n throw new Error(\"Schema is not initialized\");\n }\n var modelSchema = get(this.schema, \"schema.\".concat(modelName));\n if (!modelSchema) {\n throw new Error(\"Missing Model Schema \".concat(modelName));\n }\n return Object.keys(modelSchema);\n };\n // Get the field schema for a given model and field name\n SchemaFactoryV2.prototype.getFieldSchemaByName = function (modelName, fieldKey, complexFieldConfig) {\n // If the schema is not initialized, throw an error\n if (this.schema === null) {\n throw new Error(\"Schema is not initialized\");\n }\n // Get the field schema from the schema\n var fieldSchema = get(this.schema, \"schema.\".concat(modelName, \".\").concat(fieldKey));\n if (!fieldSchema) {\n throw new Error(\"Missing Field Schema \".concat(modelName, \".\").concat(fieldKey));\n }\n // Process Complex\n if (fieldSchema.type_AsString === \"Complex\") {\n fieldSchema = this.getComplexSchema(fieldSchema, complexFieldConfig);\n }\n // Return the field schema with the type_AsString cast to a FieldType\n return __assign(__assign({}, fieldSchema), { type: fieldSchema.type_AsString });\n };\n SchemaFactoryV2.prototype.getComplexSchema = function (fieldSchema, complexFieldConfig) {\n // todo check if this cast works\n var complexSchema = fieldSchema;\n if (!fieldSchema.fieldKey) {\n throw new Error(\"Missing Field Key on Complex Field Schema \".concat(fieldSchema.fieldKey));\n }\n if (!complexFieldConfig) {\n throw new Error(\"Missing complexFieldConfig to render Complex Field Schema \".concat(fieldSchema.fieldKey));\n }\n if (!fieldSchema.fieldTypeName) {\n throw new Error(\"Missing Metadata on Complex Field Schema \".concat(fieldSchema.fieldKey));\n }\n var FieldComponent = complexFieldConfig[fieldSchema.fieldTypeName];\n if (!FieldComponent) {\n throw new Error(\"Component with Field Key \".concat(fieldSchema.fieldKey, \" is defined as Complex, but a configuration for \").concat(fieldSchema.fieldTypeName, \" was not found.\"));\n }\n complexSchema.fieldKey = fieldSchema.fieldKey;\n complexSchema.renderer = FieldComponent;\n return complexSchema;\n };\n /*\n * Build a model schema based on the provided model name\n * @param modelName - The name of the model to build the schema for\n * @param onValueChange - A function that will be called when a value for a field changes\n * @param form - The current form object\n * @param errors - An object containing any errors for the form\n * @param requiredFields - An array of required fields for the form\n */\n SchemaFactoryV2.prototype.buildModelSchema = function (modelName, onValueChange, form, errors, requiredFields, complexFieldConfig) {\n var fieldKeys = this.getSchemaProperties(modelName);\n return this.buildFieldSchemas(modelName, fieldKeys, onValueChange, form, errors, requiredFields, complexFieldConfig);\n };\n SchemaFactoryV2.prototype.buildFieldSchema = function (modelName, fieldKey, onValueChange, form, errors, isRequired, complexFieldConfig) {\n // Get Schema\n var fieldSchema = this.getFieldSchemaByName(modelName, fieldKey, complexFieldConfig);\n var field = fieldSchema;\n if (!field.fieldName) {\n throw new Error(\"Component with Field Key \".concat(field.fieldKey, \" does not have required fieldName property assigned.\"));\n }\n if (!fieldSchema.fieldPath) {\n throw new Error(\"Component with Field Key \".concat(field.fieldKey, \" does not have required fieldPath property assigned.\"));\n }\n var fieldName = field.fieldName;\n field.modelName = modelName;\n field.value = get(form, fieldSchema.fieldPath);\n field.errorMessages = get(errors, fieldName);\n field.isRequired = isRequired;\n field.onSubmit = function (value) {\n if (!fieldSchema.fieldPath) {\n throw new Error(\"Component with Field Key \".concat(field.fieldKey, \" does not have required fieldPath property assigned.\"));\n }\n var newValue = __assign({}, form);\n set(newValue, fieldSchema.fieldPath, value);\n onValueChange(__assign({}, newValue), value, field);\n };\n return field;\n };\n SchemaFactoryV2.prototype.buildFieldSchemas = function (modelName, fieldKeys, onValueChange, form, errors, requiredFields, complexFieldConfig) {\n var _this = this;\n var fieldSchemas = fieldKeys.map(function (fieldKey) {\n if (typeof fieldKey === \"string\") {\n var field = _this.buildFieldSchema(modelName, fieldKey, onValueChange, form, errors, requiredFields === null || requiredFields === void 0 ? void 0 : requiredFields.includes(fieldKey), complexFieldConfig);\n return field;\n }\n else {\n // If it's an object, it's a field schema.\n // If it have a fieldKey assigned we auto build the field schema\n // and merge the two objects.\n // Otherwise we just return the object as is.\n if (fieldKey.fieldKey) {\n // Build the field schema\n var field = _this.buildFieldSchema((fieldKey === null || fieldKey === void 0 ? void 0 : fieldKey.modelName) || modelName, fieldKey.fieldKey, onValueChange, form, errors, requiredFields === null || requiredFields === void 0 ? void 0 : requiredFields.includes(fieldKey.fieldKey), complexFieldConfig);\n // Merge the two objects\n return __assign(__assign({}, field), fieldKey);\n }\n // Return the object as is\n return fieldKey;\n }\n });\n return fieldSchemas;\n };\n SchemaFactoryV2.prototype.buildFieldSchemaFormBuilder = function (config) {\n var _this = this;\n var builder = function (onValueChange, form, errors) {\n return _this.buildFieldSchemas(config.model, config.schema, onValueChange, form, errors, config.required, config.complexFieldConfig);\n };\n return builder;\n };\n return SchemaFactoryV2;\n}());\nexport { SchemaFactoryV2 };\nexport var useFieldSchemaV2 = function () {\n var getAsyncSchemaFactory = function (apiClient) { return __awaiter(void 0, void 0, void 0, function () {\n var fieldSchemaApiClient, fetchedSchema;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n fieldSchemaApiClient = new FieldSchemaApiClient(apiClient);\n return [4 /*yield*/, fieldSchemaApiClient.getSchemaV2()];\n case 1:\n fetchedSchema = _a.sent();\n return [2 /*return*/, new SchemaFactoryV2(fetchedSchema)];\n }\n });\n }); };\n var getSchemaFactory = function (schema) { return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, new SchemaFactoryV2(schema)];\n });\n }); };\n return { getAsyncSchemaFactory: getAsyncSchemaFactory, getSchemaFactory: getSchemaFactory };\n};\n","import EnumCheckboxField from \"../Fields/BaseInputFields/EnumCheckboxField/EnumCheckboxField\";\nimport { DateField } from \"../Fields/BaseInputFields/DateField/DateField\";\nimport { CalendarField } from \"../Fields/BaseInputFields/CalendarField/CalendarField\";\nimport DateRangeField from \"../Fields/BaseInputFields/DateRangeField/DateRangeField\";\nimport EnumRadioField from \"../Fields/BaseInputFields/EnumRadioField/EnumRadioField\";\nimport FileField from \"../Fields/BaseInputFields/FileField/FileField\";\nimport RichTextEditorField from \"../Fields/BaseInputFields/RichTextEditorField/RichTextEditorField\";\nimport SwitchField from \"../Fields/BaseInputFields/SwitchField/SwitchField\";\nimport TextAreaField from \"../Fields/BaseInputFields/TextAreaField/TextAreaField\";\nimport TextField from \"../Fields/BaseInputFields/TextField/TextField\";\nimport CustomField from \"../Fields/CoreFields/CustomField/CustomField\";\nimport ComplexField from \"../Fields/CoreFields/ComplexField/ComplexField\";\nimport { ReadOnlyField } from \"../Fields/CoreFields/ReadOnlyField/ReadOnlyField\";\nimport AsyncAutoCompleteField from \"../Fields/DropdownFields/AsyncAutoCompleteField/AsyncAutoCompleteField\";\nimport AsyncMultiselectField from \"../Fields/DropdownFields/AsyncMultiSelectField/AsyncMultiselectField\";\nimport EnumMultiSelectField from \"../Fields/DropdownFields/EnumMultiSelectField/EnumMultiSelectField\";\nimport { EnumSingleSelectFieldV2 } from \"../Fields/DropdownFields/EnumSingleSelectFieldV2/EnumSingleSelectFieldV2\";\nimport { SmartAddressField } from \"../Fields/SpecialInputFields/SmartAddressField\";\nimport { SimpleAddressField } from \"../Fields/SpecialInputFields/SimpleAddressField\";\nimport CurrencyField from \"../Fields/SpecialInputFields/CurrencyField/CurrencyField\";\nimport EmailField from \"../Fields/SpecialInputFields/EmailField/EmailField\";\nimport SignatureField from \"../Fields/SpecialInputFields/SignatureField/SignatureField\";\nimport SocialSecurityNumberField from \"../Fields/SpecialInputFields/SocialSecurityField/SocialSecurityNumberField\";\nimport PhoneNumberField from \"../Fields/SpecialInputFields/PhoneField/PhoneNumberField\";\nimport { SectionHeader } from \"../Sections/SectionHeader\";\nimport SingleCheckboxField from \"../Fields/BaseInputFields/SingleCheckboxField/SingleCheckboxField\";\nimport NumericField from \"../Fields/BaseInputFields/NumericField/NumericField\";\nimport { DateFieldV2 } from \"../Fields/BaseInputFields/DateFieldV2/DateFieldV2\";\nimport EnumMultiSelectFieldV2 from \"../Fields/DropdownFields/EnumMultiSelectFieldV2/EnumMultiSelectFieldV2\";\nvar systemFieldConfig = {\n Text: TextField,\n SmartAddress: SmartAddressField,\n SimpleAddress: SimpleAddressField,\n SingleCheckbox: SingleCheckboxField,\n EnumCheckbox: EnumCheckboxField,\n Date: DateField,\n DateV2: DateFieldV2,\n Calendar: CalendarField,\n Email: EmailField,\n EnumRadio: EnumRadioField,\n EnumSingleSelect: EnumSingleSelectFieldV2,\n AsyncAutoComplete: AsyncAutoCompleteField,\n EnumMultiSelect: EnumMultiSelectField,\n TextArea: TextAreaField,\n Signature: SignatureField,\n SocialSecurityNumber: SocialSecurityNumberField,\n PhoneNumber: PhoneNumberField,\n Currency: CurrencyField,\n File: FileField,\n Switch: SwitchField,\n DateRange: DateRangeField,\n ReadOnly: ReadOnlyField,\n RichTextEditor: RichTextEditorField,\n AsyncMultiselect: AsyncMultiselectField,\n Section: SectionHeader,\n Numeric: NumericField,\n Custom: CustomField,\n Complex: ComplexField,\n EnumMultiSelectV2: EnumMultiSelectFieldV2,\n};\nexport default systemFieldConfig;\n","import moment from \"moment\";\nexport var parseDate = function (date) {\n return moment(date).format(\"MM/DD/YYYY hh:mm A\");\n};\nexport var parseDateToDateString = function (date) {\n return moment(date).subtract(5, \"hours\").format(\"MM/DD/YYYY\");\n};\n","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { H3 } from \"@blueprintjs/core\";\nexport var SectionHeader = function (_a) {\n var label = _a.label, hidden = _a.hidden;\n if (hidden) {\n return null;\n }\n return (_jsx(\"div\", { className: \"section-header-container\", children: _jsx(H3, { className: \"section-header\", children: label }) }));\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useContext, useEffect, useRef, useState } from \"react\";\nimport { SkeletonComponent } from \"@syncfusion/ej2-react-notifications\";\nimport { FormDisabledContext, FormFieldPropsContext } from \"./FieldForm\";\nimport systemFieldConfig from \"./FieldConfig\";\nexport function FieldComponent(props) {\n var formIsDisabled = useContext(FormDisabledContext);\n var formFieldsData = useContext(FormFieldPropsContext);\n var _a = useState(false), ready = _a[0], setReady = _a[1];\n var typeClassName = useRef(\"\");\n var labelClassName = useRef(\"\");\n var _b = useState(), fieldProps = _b[0], setFieldProps = _b[1];\n useEffect(function () {\n updateFieldProps();\n }, [formIsDisabled, formFieldsData, props.fieldProps]);\n useEffect(function () {\n setupFields();\n }, []);\n var updateFieldProps = function () {\n // Update fieldprops\n if (props.fieldProps === undefined) {\n throw new Error(\"FieldProps is required, but not provided\");\n }\n if (formFieldsData && typeof props.fieldProps === \"string\") {\n var fieldProps_1 = formFieldsData.find(function (field) { return field.fieldName === props.fieldProps; });\n if (fieldProps_1) {\n var modFieldProps = __assign(__assign({}, fieldProps_1), {\n disabled: formIsDisabled || fieldProps_1.disabled,\n });\n setFieldProps(modFieldProps);\n }\n }\n else if (typeof props.fieldProps !== \"string\") {\n var modFieldProps = __assign(__assign({}, props.fieldProps), {\n disabled: formIsDisabled || props.fieldProps.disabled,\n });\n setFieldProps(modFieldProps);\n }\n };\n var setupFields = function () {\n setReady(true);\n };\n return (_jsxs(_Fragment, { children: [!ready && _jsx(SkeletonComponent, { height: \"15px\" }), ready && fieldProps && fieldProps.hidden && _jsx(_Fragment, {}), ready && fieldProps && !fieldProps.hidden && (_jsx(\"div\", { className: \"base-field\".concat(fieldProps.className ? \" base-field-\".concat(fieldProps.className) : \"\"), onBlur: props.handleOnBlur, children: (function () {\n if (!fieldProps.type) {\n throw new Error(\"Field type is not defined in schema, but is required.\");\n }\n var fieldConfig = props.customFieldConfig || systemFieldConfig;\n var FieldComponent = fieldConfig[fieldProps.type];\n if (!FieldComponent) {\n throw new Error(\"Field type \".concat(fieldProps.type, \" is not defined in FieldConfig\"));\n }\n return _jsx(FieldComponent, __assign({}, fieldProps));\n })() }))] }));\n}\nexport var Field = FieldComponent;\nexport default Field;\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Intent } from \"@blueprintjs/core\";\nimport classNames from \"classnames\";\nimport React, { forwardRef, useEffect, useImperativeHandle, useRef, useState, } from \"react\";\nimport { AppToaster } from \"../Toast/Toast\";\nimport { get, has } from \"lodash\";\nimport Field from \"./Field\";\nexport var FormDisabledContext = React.createContext(false);\nexport var FormFieldPropsContext = React.createContext(undefined);\nvar FieldFormComponent = forwardRef(function (props, ref) {\n useImperativeHandle(ref, function () {\n return ({\n reset: function () {\n onValueChanged(resetValue.current);\n },\n getFormValue: function () {\n return formValue;\n },\n submit: function () {\n var form = formRef.current;\n if (form) {\n form.dispatchEvent(new Event(\"submit\", { cancelable: true, bubbles: true }));\n }\n },\n });\n });\n var formRef = useRef(null);\n var resetValue = useRef({});\n var _a = useState(false), isFormDisabled = _a[0], setIsFormDisabled = _a[1];\n var _b = useState(props.value || {}), formValue = _b[0], setFormValue = _b[1];\n var _c = useState([]), formFieldsData = _c[0], setFormFieldsData = _c[1];\n useEffect(function () {\n setFormValue(props.value || {});\n }, [props.value]);\n useEffect(function () {\n resetValue.current = props.value || {};\n }, []);\n useEffect(function () {\n setIsFormDisabled(props.isDisabled);\n }, [props.isDisabled]);\n var _d = useState({}), errors = _d[0], setErrors = _d[1];\n useEffect(function () {\n updateFormFieldData();\n }, [formValue, errors]);\n var onValueChanged = function (newValue) {\n if (JSON.stringify(newValue) === JSON.stringify(formValue)) {\n return;\n }\n setFormValue(__assign({}, newValue));\n props.onFieldChanged && props.onFieldChanged(newValue);\n };\n var updateFormFieldData = function () {\n if (!props.fieldSchemaFormBuilder) {\n return;\n }\n var fields = props.fieldSchemaFormBuilder(onValueChanged, formValue, errors, props.onFormSubmit);\n setFormFieldsData(__spreadArray([], fields, true));\n };\n return (_jsx(_Fragment, { children: _jsx(\"form\", { ref: formRef, className: classNames(\"field-form\".concat(props.columns\n ? \" field-form-grid field-form-grid-\" + props.columns\n : \"\"), { \"field-form-disabled\": isFormDisabled }), onSubmit: function (e) {\n e.preventDefault();\n props.onFormSubmit &&\n props\n .onFormSubmit(formValue)\n .then(function () {\n // Keep value in sync with form since form reset value after submit.\n setFormValue(formValue);\n props.onErrors && props.onErrors({});\n })\n .catch(function (error) {\n var _a, _b;\n if ((_b = (_a = error.response) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.errors) {\n console.error(\"Runtime Crash Error\", error.response.data.errors);\n AppToaster.show({\n message: \"An error ocurred executing the current action.\",\n intent: Intent.DANGER,\n });\n }\n else {\n props.onErrors &&\n ((error === null || error === void 0 ? void 0 : error.data)\n ? props.onErrors(error.data)\n : props.onErrors(error.response.data.additionalInfo));\n }\n });\n }, children: _jsx(\"fieldset\", { children: _jsx(FormDisabledContext.Provider, { value: isFormDisabled, children: _jsxs(FormFieldPropsContext.Provider, { value: formFieldsData, children: [props.children && props.children, !props.children && (_jsx(_Fragment, { children: formFieldsData\n .filter(function (x) { return !x.hidden; })\n .map(function (field, idx) {\n var renderKey = has(field, \"renderKey\")\n ? \"\".concat(get(field, \"renderKey\"), \"idx\")\n : idx;\n if (field.fieldName === undefined) {\n throw new Error(\"Field name is required, but is undefined on the provided field schema.\");\n }\n return (_jsx(\"div\", { className: classNames(\"field-form-field\", \"field-form-field-\".concat(field.width || 100)), children: _jsx(Field, { fieldProps: field.fieldName, customFieldConfig: props.customFieldConfig }) }, renderKey));\n }) }))] }) }) }) }) }));\n});\nexport var FieldForm = FieldFormComponent;\nexport default FieldForm;\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useContext, useEffect, useState } from \"react\";\nimport { SkeletonComponent } from \"@syncfusion/ej2-react-notifications\";\nimport systemFieldConfig from \"./FieldConfig\";\nimport { FormDisabledContext, FormFieldPropsContext } from \"./FieldFormV2\";\nexport function FieldV2Component(props) {\n var formIsDisabled = useContext(FormDisabledContext);\n var formFieldsData = useContext(FormFieldPropsContext);\n var _a = useState(false), ready = _a[0], setReady = _a[1];\n var _b = useState(), fieldProps = _b[0], setFieldProps = _b[1];\n useEffect(function () {\n updateFieldProps();\n }, [formIsDisabled, formFieldsData, props.fieldProps]);\n useEffect(function () {\n setupFields();\n }, []);\n var updateFieldProps = function () {\n // Update fieldprops\n if (props.fieldProps === undefined) {\n throw new Error(\"FieldProps is required, but not provided\");\n }\n if (formFieldsData && typeof props.fieldProps === \"string\") {\n var fieldProps_1 = formFieldsData.find(function (field) { return field.fieldKey === props.fieldProps; });\n if (fieldProps_1) {\n var modFieldProps = __assign(__assign({}, fieldProps_1), {\n disabled: formIsDisabled || fieldProps_1.disabled,\n });\n setFieldProps(modFieldProps);\n }\n }\n else if (typeof props.fieldProps !== \"string\") {\n var modFieldProps = __assign(__assign({}, props.fieldProps), {\n disabled: formIsDisabled || props.fieldProps.disabled,\n });\n setFieldProps(modFieldProps);\n }\n };\n var setupFields = function () {\n setReady(true);\n };\n return (_jsxs(_Fragment, { children: [!ready && _jsx(SkeletonComponent, { height: \"15px\" }), ready && fieldProps && fieldProps.hidden && _jsx(_Fragment, {}), ready && fieldProps && !fieldProps.hidden && (_jsx(\"div\", { className: \"base-field\".concat(fieldProps.className ? \" base-field-\".concat(fieldProps.className) : \"\"), onBlur: props.handleOnBlur, children: (function () {\n if (!fieldProps.type) {\n throw new Error(\"Field type is not defined in schema, but is required.\");\n }\n var fieldConfig = props.customFieldConfig || systemFieldConfig;\n var FieldComponent = fieldConfig[fieldProps.type];\n if (!FieldComponent) {\n throw new Error(\"Field type \".concat(fieldProps.type, \" is not defined in FieldConfig\"));\n }\n return _jsx(FieldComponent, __assign({}, fieldProps));\n })() }))] }));\n}\nexport var FieldV2 = FieldV2Component;\nexport default FieldV2;\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Intent } from \"@blueprintjs/core\";\nimport classNames from \"classnames\";\nimport React, { forwardRef, useEffect, useImperativeHandle, useRef, useState, } from \"react\";\nimport { AppToaster } from \"../Toast/Toast\";\nimport { get, has } from \"lodash\";\nimport FieldV2 from \"./FieldV2\";\nexport var FormDisabledContext = React.createContext(false);\nexport var FormFieldPropsContext = React.createContext(undefined);\nvar FieldFormV2Component = forwardRef(function (props, ref) {\n useImperativeHandle(ref, function () {\n return ({\n reset: function () {\n onValueChanged(resetValue.current, undefined, {});\n },\n getFormValue: function () {\n return formValue;\n },\n submit: function () {\n var form = formRef.current;\n if (form) {\n form.dispatchEvent(new Event(\"submit\", { cancelable: true, bubbles: true }));\n }\n },\n });\n });\n var formRef = useRef(null);\n var resetValue = useRef({});\n var _a = useState(false), isFormDisabled = _a[0], setIsFormDisabled = _a[1];\n var _b = useState(props.value || {}), formValue = _b[0], setFormValue = _b[1];\n var _c = useState([]), formFieldsData = _c[0], setFormFieldsData = _c[1];\n useEffect(function () {\n setFormValue(props.value || {});\n }, [props.value]);\n useEffect(function () {\n resetValue.current = props.value || {};\n }, []);\n useEffect(function () {\n setIsFormDisabled(props.isDisabled);\n }, [props.isDisabled]);\n var _d = useState({}), errors = _d[0], setErrors = _d[1];\n useEffect(function () {\n updateFormFieldData();\n }, [formValue, errors]);\n useEffect(function () {\n props.onErrors && props.onErrors(errors);\n }, [errors]);\n var onValueChanged = function (newValue, newFieldValue, fieldProps) {\n // TODO: Consider using hash to compare objects\n setFormValue(__assign({}, newValue));\n props.onFieldChanged &&\n props.onFieldChanged(newValue, newFieldValue, fieldProps);\n };\n var updateFormFieldData = function () {\n if (!props.fieldSchemaFormBuilder) {\n return;\n }\n var fields = props.fieldSchemaFormBuilder(onValueChanged, formValue, errors, props.onFormSubmit);\n setFormFieldsData(__spreadArray([], fields, true));\n };\n return (_jsx(_Fragment, { children: _jsx(\"form\", { ref: formRef, className: classNames(\"field-form\".concat(props.columns\n ? \" field-form-grid field-form-grid-\" + props.columns\n : \"\"), { \"field-form-disabled\": isFormDisabled }), onSubmit: function (e) {\n e.preventDefault();\n props.onFormSubmit &&\n props\n .onFormSubmit(formValue)\n .then(function () {\n // Keep value in sync with form since form reset value after submit.\n setFormValue(formValue);\n props.onErrors && props.onErrors({});\n })\n .catch(function (error) {\n var _a, _b;\n if ((_b = (_a = error.response) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.errors) {\n console.error(\"Runtime Crash Error\", error.response.data.errors);\n AppToaster.show({\n message: \"An error ocurred executing the current action.\",\n intent: Intent.DANGER,\n });\n }\n else {\n setErrors(__assign({}, ((error === null || error === void 0 ? void 0 : error.data) ||\n error.response.data.additionalInfo)));\n }\n });\n }, children: _jsx(\"fieldset\", { children: _jsx(FormDisabledContext.Provider, { value: isFormDisabled, children: _jsxs(FormFieldPropsContext.Provider, { value: formFieldsData, children: [props.children && props.children, !props.children && (_jsx(_Fragment, { children: formFieldsData\n .filter(function (x) { return !x.hidden; })\n .map(function (field, idx) {\n var renderKey = has(field, \"renderKey\")\n ? \"\".concat(get(field, \"renderKey\"), \"idx\")\n : idx;\n if (field.fieldName === undefined) {\n throw new Error(\"Field name is required, but is undefined on the provided field schema.\");\n }\n if (field.fieldKey === undefined) {\n throw new Error(\"Field Key is required, but is undefined on the provided field schema.\");\n }\n return (_jsx(\"div\", { className: classNames(\"field-form-field\", \"field-form-field-\".concat(field.width || 100)), children: _jsx(FieldV2, { fieldProps: field.fieldKey, customFieldConfig: props.customFieldConfig }) }, renderKey));\n }) }))] }) }) }) }) }));\n});\nexport var FieldFormV2 = FieldFormV2Component;\nexport default FieldFormV2;\n","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport classNames from \"classnames\";\nvar Footer = function (props) {\n return (_jsx(\"div\", { className: classNames(\"ucl-footer\", props.className), children: _jsx(\"div\", { className: \"ucl-footer-children\", children: props.children }) }));\n};\nexport default Footer;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { Dialog } from '@syncfusion/ej2-popups';\nimport { ComponentBase, applyMixins } from '@syncfusion/ej2-react-base';\n/**\n * Represents the React Dialog Component\n * ```html\n * \n * ```\n */\nvar DialogComponent = /** @class */ (function (_super) {\n __extends(DialogComponent, _super);\n function DialogComponent(props) {\n var _this = _super.call(this, props) || this;\n _this.initRenderCalled = false;\n _this.checkInjectedModules = false;\n _this.directivekeys = { 'buttons': 'dialogButton' };\n _this.statelessTemplateProps = [\"content\"];\n _this.templateProps = null;\n _this.immediateRender = false;\n _this.portals = [];\n return _this;\n }\n DialogComponent.prototype.render = function () {\n if (((this.element && !this.initRenderCalled) || this.refreshing) && !this.isReactForeceUpdate) {\n _super.prototype.render.call(this);\n this.initRenderCalled = true;\n }\n else {\n return React.createElement('div', this.getDefaultAttributes(), [].concat(this.props.children, this.portals));\n }\n };\n return DialogComponent;\n}(Dialog));\nexport { DialogComponent };\napplyMixins(DialogComponent, [ComponentBase, React.Component]);\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { makeObservable, observable, action } from \"mobx\";\nvar DialogStore = /** @class */ (function () {\n function DialogStore() {\n var _this = this;\n this.dialogs = [];\n this.setDialogs = function (dialogs) {\n _this.dialogs = dialogs;\n };\n this.openDialog = function (dialog) {\n if (!_this.dialogs.some(function (d) { return d.id === dialog.id; })) {\n _this.dialogs.push(__assign({}, dialog));\n }\n };\n this.closeDialog = function (id, options) {\n var newDialogs = _this.dialogs.filter(function (dialog) { return dialog.id !== id && dialog.parentDialogId !== id; });\n _this.setDialogs(newDialogs);\n if (!!options) {\n options();\n }\n };\n this.openConfirmDialog = function (dialog, onConfirm) {\n _this.openDialog(__assign(__assign({}, dialog), { id: \"confirm-\".concat(dialog.id), header: \"Confirm\", parentDialogId: dialog.id }));\n };\n makeObservable(this, {\n dialogs: observable,\n setDialogs: action,\n });\n }\n return DialogStore;\n}());\nexport { DialogStore };\nexport var dialogStore = new DialogStore();\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { DialogComponent } from \"@syncfusion/ej2-react-popups\";\nimport { dialogStore } from \"./stores/DialogStore\";\nimport classNames from \"classnames\";\nimport { isUndefined, omit } from \"lodash\";\nvar Dialog = function (props) {\n return (_jsx(\"div\", { className: classNames(\"ucl-dialog-container\", props.className), id: props.id, children: _jsxs(DialogComponent, __assign({ cssClass: \"ucl-dialog\", width: props.width || \"50%\", visible: true, target: \"#\".concat(props.id), isModal: true, showCloseIcon: isUndefined(props.showCloseIcon) ? true : props.showCloseIcon, closeOnEscape: isUndefined(props.closeOnEscape) ? true : props.closeOnEscape, footerTemplate: props.footerTemplate, allowDragging: isUndefined(props.allowDragging) ? true : props.allowDragging, close: function () {\n return props.close ? props.close() : dialogStore.closeDialog(props.id);\n } }, omit(props, \"content\"), { children: [props.content && props.content(), _jsx(\"div\", { className: \"relativity-dialog-footer-block\" })] })) }));\n};\nexport default Dialog;\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { jsx as _jsx, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { observer } from \"mobx-react\";\nimport { dialogStore } from \"./stores/DialogStore\";\nimport Dialog from \"./Dialog\";\nvar Dialogs = observer(function () {\n return (_jsx(_Fragment, { children: dialogStore.dialogs.map(function (dialog) { return (_jsx(Dialog, __assign({}, dialog), dialog.id)); }) }));\n});\nexport default Dialogs;\n","////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Actions represent the type of change to a location value.\n */\nexport enum Action {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Pop = \"POP\",\n\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Push = \"PUSH\",\n\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Replace = \"REPLACE\",\n}\n\n/**\n * The pathname, search, and hash values of a URL.\n */\nexport interface Path {\n /**\n * A URL pathname, beginning with a /.\n */\n pathname: string;\n\n /**\n * A URL search string, beginning with a ?.\n */\n search: string;\n\n /**\n * A URL fragment identifier, beginning with a #.\n */\n hash: string;\n}\n\n// TODO: (v7) Change the Location generic default from `any` to `unknown` and\n// remove Remix `useLocation` wrapper.\n\n/**\n * An entry in a history stack. A location contains information about the\n * URL path, as well as possibly some arbitrary state and a key.\n */\nexport interface Location extends Path {\n /**\n * A value of arbitrary data associated with this location.\n */\n state: State;\n\n /**\n * A unique string associated with this location. May be used to safely store\n * and retrieve data in some other storage API, like `localStorage`.\n *\n * Note: This value is always \"default\" on the initial location.\n */\n key: string;\n}\n\n/**\n * A change to the current location.\n */\nexport interface Update {\n /**\n * The action that triggered the change.\n */\n action: Action;\n\n /**\n * The new location.\n */\n location: Location;\n\n /**\n * The delta between this location and the former location in the history stack\n */\n delta: number | null;\n}\n\n/**\n * A function that receives notifications about location changes.\n */\nexport interface Listener {\n (update: Update): void;\n}\n\n/**\n * Describes a location that is the destination of some navigation, either via\n * `history.push` or `history.replace`. This may be either a URL or the pieces\n * of a URL path.\n */\nexport type To = string | Partial;\n\n/**\n * A history is an interface to the navigation stack. The history serves as the\n * source of truth for the current location, as well as provides a set of\n * methods that may be used to change it.\n *\n * It is similar to the DOM's `window.history` object, but with a smaller, more\n * focused API.\n */\nexport interface History {\n /**\n * The last action that modified the current location. This will always be\n * Action.Pop when a history instance is first created. This value is mutable.\n */\n readonly action: Action;\n\n /**\n * The current location. This value is mutable.\n */\n readonly location: Location;\n\n /**\n * Returns a valid href for the given `to` value that may be used as\n * the value of an attribute.\n *\n * @param to - The destination URL\n */\n createHref(to: To): string;\n\n /**\n * Returns a URL for the given `to` value\n *\n * @param to - The destination URL\n */\n createURL(to: To): URL;\n\n /**\n * Encode a location the same way window.history would do (no-op for memory\n * history) so we ensure our PUSH/REPLACE navigations for data routers\n * behave the same as POP\n *\n * @param to Unencoded path\n */\n encodeLocation(to: To): Path;\n\n /**\n * Pushes a new location onto the history stack, increasing its length by one.\n * If there were any entries in the stack after the current one, they are\n * lost.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n push(to: To, state?: any): void;\n\n /**\n * Replaces the current location in the history stack with a new one. The\n * location that was replaced will no longer be available.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n replace(to: To, state?: any): void;\n\n /**\n * Navigates `n` entries backward/forward in the history stack relative to the\n * current index. For example, a \"back\" navigation would use go(-1).\n *\n * @param delta - The delta in the stack index\n */\n go(delta: number): void;\n\n /**\n * Sets up a listener that will be called whenever the current location\n * changes.\n *\n * @param listener - A function that will be called when the location changes\n * @returns unlisten - A function that may be used to stop listening\n */\n listen(listener: Listener): () => void;\n}\n\ntype HistoryState = {\n usr: any;\n key?: string;\n idx: number;\n};\n\nconst PopStateEventType = \"popstate\";\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Memory History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A user-supplied object that describes a location. Used when providing\n * entries to `createMemoryHistory` via its `initialEntries` option.\n */\nexport type InitialEntry = string | Partial;\n\nexport type MemoryHistoryOptions = {\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n v5Compat?: boolean;\n};\n\n/**\n * A memory history stores locations in memory. This is useful in stateful\n * environments where there is no web browser, such as node tests or React\n * Native.\n */\nexport interface MemoryHistory extends History {\n /**\n * The current index in the history stack.\n */\n readonly index: number;\n}\n\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nexport function createMemoryHistory(\n options: MemoryHistoryOptions = {}\n): MemoryHistory {\n let { initialEntries = [\"/\"], initialIndex, v5Compat = false } = options;\n let entries: Location[]; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) =>\n createMemoryLocation(\n entry,\n typeof entry === \"string\" ? null : entry.state,\n index === 0 ? \"default\" : undefined\n )\n );\n let index = clampIndex(\n initialIndex == null ? entries.length - 1 : initialIndex\n );\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n function clampIndex(n: number): number {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation(): Location {\n return entries[index];\n }\n function createMemoryLocation(\n to: To,\n state: any = null,\n key?: string\n ): Location {\n let location = createLocation(\n entries ? getCurrentLocation().pathname : \"/\",\n to,\n state,\n key\n );\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in memory history: ${JSON.stringify(\n to\n )}`\n );\n return location;\n }\n\n function createHref(to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n let history: MemoryHistory = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to: To) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\",\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 1 });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 0 });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({ action, location: nextLocation, delta });\n }\n },\n listen(fn: Listener) {\n listener = fn;\n return () => {\n listener = null;\n };\n },\n };\n\n return history;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Browser History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A browser history stores the current location in regular URLs in a web\n * browser environment. This is the standard for most web apps and provides the\n * cleanest URLs the browser's address bar.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#browserhistory\n */\nexport interface BrowserHistory extends UrlHistory {}\n\nexport type BrowserHistoryOptions = UrlHistoryOptions;\n\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nexport function createBrowserHistory(\n options: BrowserHistoryOptions = {}\n): BrowserHistory {\n function createBrowserLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let { pathname, search, hash } = window.location;\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createBrowserHref(window: Window, to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n return getUrlBasedHistory(\n createBrowserLocation,\n createBrowserHref,\n null,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hash History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A hash history stores the current location in the fragment identifier portion\n * of the URL in a web browser environment.\n *\n * This is ideal for apps that do not control the server for some reason\n * (because the fragment identifier is never sent to the server), including some\n * shared hosting environments that do not provide fine-grained controls over\n * which pages are served at which URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#hashhistory\n */\nexport interface HashHistory extends UrlHistory {}\n\nexport type HashHistoryOptions = UrlHistoryOptions;\n\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nexport function createHashHistory(\n options: HashHistoryOptions = {}\n): HashHistory {\n function createHashLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n } = parsePath(window.location.hash.substr(1));\n\n // Hash URL should always have a leading / just like window.location.pathname\n // does, so if an app ends up at a route like /#something then we add a\n // leading slash so all of our path-matching behaves the same as if it would\n // in a browser router. This is particularly important when there exists a\n // root splat route () since that matches internally against\n // \"/*\" and we'd expect /#something to 404 in a hash router app.\n if (!pathname.startsWith(\"/\") && !pathname.startsWith(\".\")) {\n pathname = \"/\" + pathname;\n }\n\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createHashHref(window: Window, to: To) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n\n function validateHashLocation(location: Location, to: To) {\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in hash history.push(${JSON.stringify(\n to\n )})`\n );\n }\n\n return getUrlBasedHistory(\n createHashLocation,\n createHashHref,\n validateHashLocation,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region UTILS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * @private\n */\nexport function invariant(value: boolean, message?: string): asserts value;\nexport function invariant(\n value: T | null | undefined,\n message?: string\n): asserts value is T;\nexport function invariant(value: any, message?: string) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\nexport function warning(cond: any, message: string) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience, so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location: Location, index: number): HistoryState {\n return {\n usr: location.state,\n key: location.key,\n idx: index,\n };\n}\n\n/**\n * Creates a Location object with a unique key from the given Path\n */\nexport function createLocation(\n current: string | Location,\n to: To,\n state: any = null,\n key?: string\n): Readonly {\n let location: Readonly = {\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\",\n ...(typeof to === \"string\" ? parsePath(to) : to),\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: (to && (to as Location).key) || key || createKey(),\n };\n return location;\n}\n\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nexport function createPath({\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n}: Partial) {\n if (search && search !== \"?\")\n pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\")\n pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nexport function parsePath(path: string): Partial {\n let parsedPath: Partial = {};\n\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport interface UrlHistory extends History {}\n\nexport type UrlHistoryOptions = {\n window?: Window;\n v5Compat?: boolean;\n};\n\nfunction getUrlBasedHistory(\n getLocation: (window: Window, globalHistory: Window[\"history\"]) => Location,\n createHref: (window: Window, to: To) => string,\n validateLocation: ((location: Location, to: To) => void) | null,\n options: UrlHistoryOptions = {}\n): UrlHistory {\n let { window = document.defaultView!, v5Compat = false } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n let index = getIndex()!;\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState({ ...globalHistory.state, idx: index }, \"\");\n }\n\n function getIndex(): number {\n let state = globalHistory.state || { idx: null };\n return state.idx;\n }\n\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({ action, location: history.location, delta });\n }\n }\n\n function push(to: To, state?: any) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // If the exception is because `state` can't be serialized, let that throw\n // outwards just like a replace call would so the dev knows the cause\n // https://html.spec.whatwg.org/multipage/nav-history-apis.html#shared-history-push/replace-state-steps\n // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal\n if (error instanceof DOMException && error.name === \"DataCloneError\") {\n throw error;\n }\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 1 });\n }\n }\n\n function replace(to: To, state?: any) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 0 });\n }\n }\n\n function createURL(to: To): URL {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base =\n window.location.origin !== \"null\"\n ? window.location.origin\n : window.location.href;\n\n let href = typeof to === \"string\" ? to : createPath(to);\n // Treating this as a full URL will strip any trailing spaces so we need to\n // pre-encode them since they might be part of a matching splat param from\n // an ancestor route\n href = href.replace(/ $/, \"%20\");\n invariant(\n base,\n `No window.location.(origin|href) available to create URL for href: ${href}`\n );\n return new URL(href, base);\n }\n\n let history: History = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn: Listener) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash,\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n },\n };\n\n return history;\n}\n\n//#endregion\n","import type { Location, Path, To } from \"./history\";\nimport { invariant, parsePath, warning } from \"./history\";\n\n/**\n * Map of routeId -> data returned from a loader/action/error\n */\nexport interface RouteData {\n [routeId: string]: any;\n}\n\nexport enum ResultType {\n data = \"data\",\n deferred = \"deferred\",\n redirect = \"redirect\",\n error = \"error\",\n}\n\n/**\n * Successful result from a loader or action\n */\nexport interface SuccessResult {\n type: ResultType.data;\n data: unknown;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Successful defer() result from a loader or action\n */\nexport interface DeferredResult {\n type: ResultType.deferred;\n deferredData: DeferredData;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n type: ResultType.redirect;\n // We keep the raw Response for redirects so we can return it verbatim\n response: Response;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: unknown;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Result from a loader or action - potentially successful or unsuccessful\n */\nexport type DataResult =\n | SuccessResult\n | DeferredResult\n | RedirectResult\n | ErrorResult;\n\ntype LowerCaseFormMethod = \"get\" | \"post\" | \"put\" | \"patch\" | \"delete\";\ntype UpperCaseFormMethod = Uppercase;\n\n/**\n * Users can specify either lowercase or uppercase form methods on `
      `,\n * useSubmit(), ``, etc.\n */\nexport type HTMLFormMethod = LowerCaseFormMethod | UpperCaseFormMethod;\n\n/**\n * Active navigation/fetcher form methods are exposed in lowercase on the\n * RouterState\n */\nexport type FormMethod = LowerCaseFormMethod;\nexport type MutationFormMethod = Exclude;\n\n/**\n * In v7, active navigation/fetcher form methods are exposed in uppercase on the\n * RouterState. This is to align with the normalization done via fetch().\n */\nexport type V7_FormMethod = UpperCaseFormMethod;\nexport type V7_MutationFormMethod = Exclude;\n\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\"\n | \"application/json\"\n | \"text/plain\";\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport type Submission =\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n json: undefined;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: JsonValue;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: undefined;\n text: string;\n };\n\n/**\n * @private\n * Arguments passed to route loader/action functions. Same for now but we keep\n * this as a private implementation detail in case they diverge in the future.\n */\ninterface DataFunctionArgs {\n request: Request;\n params: Params;\n context?: Context;\n}\n\n// TODO: (v7) Change the defaults from any to unknown in and remove Remix wrappers:\n// ActionFunction, ActionFunctionArgs, LoaderFunction, LoaderFunctionArgs\n// Also, make them a type alias instead of an interface\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Loaders and actions can return anything except `undefined` (`null` is a\n * valid return value if there is no data to return). Responses are preferred\n * and will ease any future migration to Remix\n */\ntype DataFunctionValue = Response | NonNullable | null;\n\ntype DataFunctionReturnValue = Promise | DataFunctionValue;\n\n/**\n * Route loader function signature\n */\nexport type LoaderFunction = {\n (\n args: LoaderFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n} & { hydrate?: boolean };\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (\n args: ActionFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n}\n\n/**\n * Arguments passed to shouldRevalidate function\n */\nexport interface ShouldRevalidateFunctionArgs {\n currentUrl: URL;\n currentParams: AgnosticDataRouteMatch[\"params\"];\n nextUrl: URL;\n nextParams: AgnosticDataRouteMatch[\"params\"];\n formMethod?: Submission[\"formMethod\"];\n formAction?: Submission[\"formAction\"];\n formEncType?: Submission[\"formEncType\"];\n text?: Submission[\"text\"];\n formData?: Submission[\"formData\"];\n json?: Submission[\"json\"];\n actionStatus?: number;\n actionResult?: any;\n defaultShouldRevalidate: boolean;\n}\n\n/**\n * Route shouldRevalidate function signature. This runs after any submission\n * (navigation or fetcher), so we flatten the navigation/fetcher submission\n * onto the arguments. It shouldn't matter whether it came from a navigation\n * or a fetcher, what really matters is the URLs and the formData since loaders\n * have to re-run based on the data models that were potentially mutated.\n */\nexport interface ShouldRevalidateFunction {\n (args: ShouldRevalidateFunctionArgs): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set `hasErrorBoundary`\n * from the framework-aware `errorElement` prop\n *\n * @deprecated Use `mapRouteProperties` instead\n */\nexport interface DetectErrorBoundaryFunction {\n (route: AgnosticRouteObject): boolean;\n}\n\nexport interface DataStrategyMatch\n extends AgnosticRouteMatch {\n shouldLoad: boolean;\n resolve: (\n handlerOverride?: (\n handler: (ctx?: unknown) => DataFunctionReturnValue\n ) => DataFunctionReturnValue\n ) => Promise;\n}\n\nexport interface DataStrategyFunctionArgs\n extends DataFunctionArgs {\n matches: DataStrategyMatch[];\n fetcherKey: string | null;\n}\n\n/**\n * Result from a loader or action called via dataStrategy\n */\nexport interface DataStrategyResult {\n type: \"data\" | \"error\";\n result: unknown; // data, Error, Response, DeferredData, DataWithResponseInit\n}\n\nexport interface DataStrategyFunction {\n (args: DataStrategyFunctionArgs): Promise>;\n}\n\nexport interface AgnosticPatchRoutesOnNavigationFunction<\n M extends AgnosticRouteMatch = AgnosticRouteMatch\n> {\n (opts: {\n path: string;\n matches: M[];\n patch: (routeId: string | null, children: AgnosticRouteObject[]) => void;\n }): void | Promise;\n}\n\n/**\n * Function provided by the framework-aware layers to set any framework-specific\n * properties from framework-agnostic properties\n */\nexport interface MapRoutePropertiesFunction {\n (route: AgnosticRouteObject): {\n hasErrorBoundary: boolean;\n } & Record;\n}\n\n/**\n * Keys we cannot change from within a lazy() function. We spread all other keys\n * onto the route. Either they're meaningful to the router, or they'll get\n * ignored.\n */\nexport type ImmutableRouteKey =\n | \"lazy\"\n | \"caseSensitive\"\n | \"path\"\n | \"id\"\n | \"index\"\n | \"children\";\n\nexport const immutableRouteKeys = new Set([\n \"lazy\",\n \"caseSensitive\",\n \"path\",\n \"id\",\n \"index\",\n \"children\",\n]);\n\ntype RequireOne = Exclude<\n {\n [K in keyof T]: K extends Key ? Omit & Required> : never;\n }[keyof T],\n undefined\n>;\n\n/**\n * lazy() function to load a route definition, which can add non-matching\n * related properties to a route\n */\nexport interface LazyRouteFunction {\n (): Promise>>;\n}\n\n/**\n * Base RouteObject with common props shared by all types of routes\n */\ntype AgnosticBaseRouteObject = {\n caseSensitive?: boolean;\n path?: string;\n id?: string;\n loader?: LoaderFunction | boolean;\n action?: ActionFunction | boolean;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\n lazy?: LazyRouteFunction;\n};\n\n/**\n * Index routes must not have children\n */\nexport type AgnosticIndexRouteObject = AgnosticBaseRouteObject & {\n children?: undefined;\n index: true;\n};\n\n/**\n * Non-index routes may have children, but cannot have index\n */\nexport type AgnosticNonIndexRouteObject = AgnosticBaseRouteObject & {\n children?: AgnosticRouteObject[];\n index?: false;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport type AgnosticRouteObject =\n | AgnosticIndexRouteObject\n | AgnosticNonIndexRouteObject;\n\nexport type AgnosticDataIndexRouteObject = AgnosticIndexRouteObject & {\n id: string;\n};\n\nexport type AgnosticDataNonIndexRouteObject = AgnosticNonIndexRouteObject & {\n children?: AgnosticDataRouteObject[];\n id: string;\n};\n\n/**\n * A data route object, which is just a RouteObject with a required unique ID\n */\nexport type AgnosticDataRouteObject =\n | AgnosticDataIndexRouteObject\n | AgnosticDataNonIndexRouteObject;\n\nexport type RouteManifest = Record;\n\n// Recursive helper for finding path parameters in the absence of wildcards\ntype _PathParam =\n // split path into individual path segments\n Path extends `${infer L}/${infer R}`\n ? _PathParam | _PathParam\n : // find params after `:`\n Path extends `:${infer Param}`\n ? Param extends `${infer Optional}?`\n ? Optional\n : Param\n : // otherwise, there aren't any params present\n never;\n\n/**\n * Examples:\n * \"/a/b/*\" -> \"*\"\n * \":a\" -> \"a\"\n * \"/a/:b\" -> \"b\"\n * \"/a/blahblahblah:b\" -> \"b\"\n * \"/:a/:b\" -> \"a\" | \"b\"\n * \"/:a/b/:c/*\" -> \"a\" | \"c\" | \"*\"\n */\nexport type PathParam =\n // check if path is just a wildcard\n Path extends \"*\" | \"/*\"\n ? \"*\"\n : // look for wildcard at the end of the path\n Path extends `${infer Rest}/*`\n ? \"*\" | _PathParam\n : // look for params in the absence of wildcards\n _PathParam;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise, return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey =\n // if you could not find path params, fallback to `string`\n [PathParam] extends [never] ? string : PathParam;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface AgnosticRouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObjectType;\n}\n\nexport interface AgnosticDataRouteMatch\n extends AgnosticRouteMatch {}\n\nfunction isIndexRoute(\n route: AgnosticRouteObject\n): route is AgnosticIndexRouteObject {\n return route.index === true;\n}\n\n// Walk the route tree generating unique IDs where necessary, so we are working\n// solely with AgnosticDataRouteObject's within the Router\nexport function convertRoutesToDataRoutes(\n routes: AgnosticRouteObject[],\n mapRouteProperties: MapRoutePropertiesFunction,\n parentPath: string[] = [],\n manifest: RouteManifest = {}\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, String(index)];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(\n route.index !== true || !route.children,\n `Cannot specify children on an index route`\n );\n invariant(\n !manifest[id],\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n };\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n children: undefined,\n };\n manifest[id] = pathOrLayoutRoute;\n\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(\n route.children,\n mapRouteProperties,\n treePath,\n manifest\n );\n }\n\n return pathOrLayoutRoute;\n }\n });\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\nexport function matchRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename = \"/\"\n): AgnosticRouteMatch[] | null {\n return matchRoutesImpl(routes, locationArg, basename, false);\n}\n\nexport function matchRoutesImpl<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename: string,\n allowPartial: boolean\n): AgnosticRouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n let decoded = decodePath(pathname);\n matches = matchRouteBranch(\n branches[i],\n decoded,\n allowPartial\n );\n }\n\n return matches;\n}\n\nexport interface UIMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: Data;\n handle: Handle;\n}\n\nexport function convertRouteMatchToUiMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UIMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle,\n };\n}\n\ninterface RouteMeta<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObjectType;\n}\n\ninterface RouteBranch<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n let flattenRoute = (\n route: RouteObjectType,\n index: number,\n relativePath?: string\n ) => {\n let meta: RouteMeta = {\n relativePath:\n relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array, so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta,\n });\n };\n routes.forEach((route, index) => {\n // coarse-grain check for optional params\n if (route.path === \"\" || !route.path?.includes(\"?\")) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n\n return branches;\n}\n\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path: string): string[] {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n\n let [first, ...rest] = segments;\n\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n\n let result: string[] = [];\n\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children, so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explode _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(\n ...restExploded.map((subpath) =>\n subpath === \"\" ? required : [required, subpath].join(\"/\")\n )\n );\n\n // Then, if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n\n // for absolute paths, ensure `/` instead of empty segment\n return result.map((exploded) =>\n path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded\n );\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:[\\w-]+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n branch: RouteBranch,\n pathname: string,\n allowPartial = false\n): AgnosticRouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: AgnosticRouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n let route = meta.route;\n\n if (\n !match &&\n end &&\n allowPartial &&\n !routesMeta[routesMeta.length - 1].route.index\n ) {\n match = matchPath(\n {\n path: meta.relativePath,\n caseSensitive: meta.caseSensitive,\n end: false,\n },\n remainingPathname\n );\n }\n\n if (!match) {\n return null;\n }\n\n Object.assign(matchedParams, match.params);\n\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams as Params,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nexport function generatePath(\n originalPath: Path,\n params: {\n [key in PathParam]: string | null;\n } = {} as any\n): string {\n let path: string = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(\n false,\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n path = path.replace(/\\*$/, \"/*\") as Path;\n }\n\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n\n const stringify = (p: any) =>\n p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n\n const segments = path\n .split(/\\/+/)\n .map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\" as PathParam;\n // Apply the splat\n return stringify(params[star]);\n }\n\n const keyMatch = segment.match(/^:([\\w-]+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key as PathParam];\n invariant(optional === \"?\" || param != null, `Missing \":${key}\" param`);\n return stringify(param);\n }\n\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter((segment) => !!segment);\n\n return prefix + segments.join(\"/\");\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, compiledParams] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = compiledParams.reduce>(\n (memo, { paramName, isOptional }, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n const value = captureGroups[index];\n if (isOptional && !value) {\n memo[paramName] = undefined;\n } else {\n memo[paramName] = (value || \"\").replace(/%2F/g, \"/\");\n }\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\ntype CompiledPathParam = { paramName: string; isOptional?: boolean };\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, CompiledPathParam[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let params: CompiledPathParam[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^${}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(\n /\\/:([\\w-]+)(\\?)?/g,\n (_: string, paramName: string, isOptional) => {\n params.push({ paramName, isOptional: isOptional != null });\n return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\n }\n );\n\n if (path.endsWith(\"*\")) {\n params.push({ paramName: \"*\" });\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex, so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else {\n // Nothing to match for \"\" or \"/\"\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, params];\n}\n\nexport function decodePath(value: string) {\n try {\n return value\n .split(\"/\")\n .map((v) => decodeURIComponent(v).replace(/\\//g, \"%2F\"))\n .join(\"/\");\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is is a ` +\n `malformed URL segment. This is probably due to a bad percent ` +\n `encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * @private\n */\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\")\n ? basename.length - 1\n : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(\n char: string,\n field: string,\n dest: string,\n path: Partial\n) {\n return (\n `Cannot include a '${char}' character in a manually specified ` +\n `\\`to.${field}\\` field [${JSON.stringify(\n path\n )}]. Please separate it out to the ` +\n `\\`to.${dest}\\` field. Alternatively you may provide the full path as ` +\n `a string in and the router will parse it for you.`\n );\n}\n\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\nexport function getPathContributingMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[]) {\n return matches.filter(\n (match, index) =>\n index === 0 || (match.route.path && match.route.path.length > 0)\n );\n}\n\n// Return the array of pathnames for the current route matches - used to\n// generate the routePathnames input for resolveTo()\nexport function getResolveToMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[], v7_relativeSplatPath: boolean) {\n let pathMatches = getPathContributingMatches(matches);\n\n // When v7_relativeSplatPath is enabled, use the full pathname for the leaf\n // match so we include splat values for \".\" links. See:\n // https://github.com/remix-run/react-router/issues/11052#issuecomment-1836589329\n if (v7_relativeSplatPath) {\n return pathMatches.map((match, idx) =>\n idx === pathMatches.length - 1 ? match.pathname : match.pathnameBase\n );\n }\n\n return pathMatches.map((match) => match.pathnameBase);\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n // With relative=\"route\" (the default), each leading .. segment means\n // \"go up one route\" instead of \"go up one URL segment\". This is a key\n // difference from how
      works and a major reason we call this a\n // \"to\" value instead of a \"href\".\n if (!isPathRelative && toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = (\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport class DataWithResponseInit {\n type: string = \"DataWithResponseInit\";\n data: D;\n init: ResponseInit | null;\n\n constructor(data: D, init?: ResponseInit) {\n this.data = data;\n this.init = init || null;\n }\n}\n\n/**\n * Create \"responses\" that contain `status`/`headers` without forcing\n * serialization into an actual `Response` - used by Remix single fetch\n */\nexport function data(data: D, init?: number | ResponseInit) {\n return new DataWithResponseInit(\n data,\n typeof init === \"number\" ? { status: init } : init\n );\n}\n\nexport interface TrackedPromise extends Promise {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeysSet: Set = new Set();\n private controller: AbortController;\n private abortPromise: Promise;\n private unlistenAbortSignal: () => void;\n private subscribers: Set<(aborted: boolean, settledKey?: string) => void> =\n new Set();\n data: Record;\n init?: ResponseInit;\n deferredKeys: string[] = [];\n\n constructor(data: Record, responseInit?: ResponseInit) {\n invariant(\n data && typeof data === \"object\" && !Array.isArray(data),\n \"defer() only accepts plain objects\"\n );\n\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject: (e: AbortedDeferredError) => void;\n this.abortPromise = new Promise((_, r) => (reject = r));\n this.controller = new AbortController();\n let onAbort = () =>\n reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () =>\n this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n\n this.data = Object.entries(data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: this.trackPromise(key, value),\n }),\n {}\n );\n\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n\n this.init = responseInit;\n }\n\n private trackPromise(\n key: string,\n value: Promise | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n (data) => this.onSettle(promise, key, undefined, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string,\n error: unknown,\n data?: unknown\n ): unknown {\n if (\n this.controller.signal.aborted &&\n error instanceof AbortedDeferredError\n ) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", { get: () => error });\n return Promise.reject(error);\n }\n\n this.pendingKeysSet.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n // If the promise was resolved/rejected with undefined, we'll throw an error as you\n // should always resolve with a value or null\n if (error === undefined && data === undefined) {\n let undefinedError = new Error(\n `Deferred data for key \"${key}\" resolved/rejected with \\`undefined\\`, ` +\n `you must resolve/reject with a value or \\`null\\`.`\n );\n Object.defineProperty(promise, \"_error\", { get: () => undefinedError });\n this.emit(false, key);\n return Promise.reject(undefinedError);\n }\n\n if (data === undefined) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n this.emit(false, key);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n this.emit(false, key);\n return data;\n }\n\n private emit(aborted: boolean, settledKey?: string) {\n this.subscribers.forEach((subscriber) => subscriber(aborted, settledKey));\n }\n\n subscribe(fn: (aborted: boolean, settledKey?: string) => void) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n\n async resolveData(signal: AbortSignal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise((resolve) => {\n this.subscribe((aborted) => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n\n get unwrappedData() {\n invariant(\n this.data !== null && this.done,\n \"Can only unwrap data on initialized and settled deferreds\"\n );\n\n return Object.entries(this.data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: unwrapTrackedPromise(value),\n }),\n {}\n );\n }\n\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n return (\n value instanceof Promise && (value as TrackedPromise)._tracked === true\n );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n\nexport type DeferFunction = (\n data: Record,\n init?: number | ResponseInit\n) => DeferredData;\n\nexport const defer: DeferFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n return new DeferredData(data, responseInit);\n};\n\nexport type RedirectFunction = (\n url: string,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n\n return new Response(null, {\n ...responseInit,\n headers,\n });\n};\n\n/**\n * A redirect response that will force a document reload to the new location.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirectDocument: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n\n/**\n * A redirect response that will perform a `history.replaceState` instead of a\n * `history.pushState` for client-side navigation redirects.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const replace: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Replace\", \"true\");\n return response;\n};\n\nexport type ErrorResponse = {\n status: number;\n statusText: string;\n data: any;\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n *\n * We don't export the class for public use since it's an implementation\n * detail, but we export the interface above so folks can build their own\n * abstractions around instances via isRouteErrorResponse()\n */\nexport class ErrorResponseImpl implements ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n private error?: Error;\n private internal: boolean;\n\n constructor(\n status: number,\n statusText: string | undefined,\n data: any,\n internal = false\n ) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nexport function isRouteErrorResponse(error: any): error is ErrorResponse {\n return (\n error != null &&\n typeof error.status === \"number\" &&\n typeof error.statusText === \"string\" &&\n typeof error.internal === \"boolean\" &&\n \"data\" in error\n );\n}\n","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n invariant,\n parsePath,\n warning,\n} from \"./history\";\nimport type {\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n DataStrategyMatch,\n AgnosticRouteObject,\n DataResult,\n DataStrategyFunction,\n DataStrategyFunctionArgs,\n DeferredData,\n DeferredResult,\n DetectErrorBoundaryFunction,\n ErrorResult,\n FormEncType,\n FormMethod,\n HTMLFormMethod,\n DataStrategyResult,\n ImmutableRouteKey,\n MapRoutePropertiesFunction,\n MutationFormMethod,\n RedirectResult,\n RouteData,\n RouteManifest,\n ShouldRevalidateFunctionArgs,\n Submission,\n SuccessResult,\n UIMatch,\n V7_FormMethod,\n V7_MutationFormMethod,\n AgnosticPatchRoutesOnNavigationFunction,\n DataWithResponseInit,\n} from \"./utils\";\nimport {\n ErrorResponseImpl,\n ResultType,\n convertRouteMatchToUiMatch,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n getResolveToMatches,\n immutableRouteKeys,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n matchRoutesImpl,\n resolveTo,\n stripBasename,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the basename for the router\n */\n get basename(): RouterInit[\"basename\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the future config for the router\n */\n get future(): FutureConfig;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the current state of the router\n */\n get state(): RouterState;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the routes for this router instance\n */\n get routes(): AgnosticDataRouteObject[];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the window associated with the router\n */\n get window(): RouterInit[\"window\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Initialize the router, including adding history listeners and kicking off\n * initial data fetches. Returns a function to cleanup listeners and abort\n * any in-progress loads\n */\n initialize(): Router;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Subscribe to router.state updates\n *\n * @param fn function to call with the new state\n */\n subscribe(fn: RouterSubscriber): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Enable scroll restoration behavior in the router\n *\n * @param savedScrollPositions Object that will manage positions, in case\n * it's being restored from sessionStorage\n * @param getScrollPosition Function to get the active Y scroll position\n * @param getKey Function to get the key to use for restoration\n */\n enableScrollRestoration(\n savedScrollPositions: Record,\n getScrollPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Navigate forward/backward in the history stack\n * @param to Delta to move in the history stack\n */\n navigate(to: number): Promise;\n\n /**\n * Navigate to the given path\n * @param to Path to navigate to\n * @param opts Navigation options (method, submission, etc.)\n */\n navigate(to: To | null, opts?: RouterNavigateOptions): Promise;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a fetcher load/submission\n *\n * @param key Fetcher key\n * @param routeId Route that owns the fetcher\n * @param href href to fetch\n * @param opts Fetcher options, (method, submission, etc.)\n */\n fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a revalidation of all current route loaders and fetcher loads\n */\n revalidate(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to create an href for the given location\n * @param location\n */\n createHref(location: Location | URL): string;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to URL encode a destination path according to the internal\n * history implementation\n * @param to\n */\n encodeLocation(to: To): Path;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get/create a fetcher for the given key\n * @param key\n */\n getFetcher(key: string): Fetcher;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete the fetcher for a given key\n * @param key\n */\n deleteFetcher(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Cleanup listeners and abort any in-progress loads\n */\n dispose(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get a navigation blocker\n * @param key The identifier for the blocker\n * @param fn The blocker function implementation\n */\n getBlocker(key: string, fn: BlockerFunction): Blocker;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete a navigation blocker\n * @param key The identifier for the blocker\n */\n deleteBlocker(key: string): void;\n\n /**\n * @internal\n * PRIVATE DO NOT USE\n *\n * Patch additional children routes into an existing parent route\n * @param routeId The parent route id or a callback function accepting `patch`\n * to perform batch patching\n * @param children The additional children routes\n */\n patchRoutes(routeId: string | null, children: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * HMR needs to pass in-flight route updates to React Router\n * TODO: Replace this with granular route update APIs (addRoute, updateRoute, deleteRoute)\n */\n _internalSetRoutes(routes: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal fetch AbortControllers accessed by unit tests\n */\n _internalFetchControllers: Map;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal pending DeferredData instances accessed by unit tests\n */\n _internalActiveDeferreds: Map;\n}\n\n/**\n * State maintained internally by the router. During a navigation, all states\n * reflect the the \"old\" location unless otherwise noted.\n */\nexport interface RouterState {\n /**\n * The action of the most recent navigation\n */\n historyAction: HistoryAction;\n\n /**\n * The current location reflected by the router\n */\n location: Location;\n\n /**\n * The current set of route matches\n */\n matches: AgnosticDataRouteMatch[];\n\n /**\n * Tracks whether we've completed our initial data load\n */\n initialized: boolean;\n\n /**\n * Current scroll position we should start at for a new view\n * - number -> scroll position to restore to\n * - false -> do not restore scroll at all (used during submissions)\n * - null -> don't have a saved position, scroll to hash or top of page\n */\n restoreScrollPosition: number | false | null;\n\n /**\n * Indicate whether this navigation should skip resetting the scroll position\n * if we are unable to restore the scroll position\n */\n preventScrollReset: boolean;\n\n /**\n * Tracks the state of the current navigation\n */\n navigation: Navigation;\n\n /**\n * Tracks any in-progress revalidations\n */\n revalidation: RevalidationState;\n\n /**\n * Data from the loaders for the current matches\n */\n loaderData: RouteData;\n\n /**\n * Data from the action for the current matches\n */\n actionData: RouteData | null;\n\n /**\n * Errors caught from loaders for the current matches\n */\n errors: RouteData | null;\n\n /**\n * Map of current fetchers\n */\n fetchers: Map;\n\n /**\n * Map of current blockers\n */\n blockers: Map;\n}\n\n/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n Pick\n>;\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface FutureConfig {\n v7_fetcherPersist: boolean;\n v7_normalizeFormMethod: boolean;\n v7_partialHydration: boolean;\n v7_prependBasename: boolean;\n v7_relativeSplatPath: boolean;\n v7_skipActionErrorRevalidation: boolean;\n}\n\n/**\n * Initialization options for createRouter\n */\nexport interface RouterInit {\n routes: AgnosticRouteObject[];\n history: History;\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n hydrationData?: HydrationState;\n window?: Window;\n unstable_patchRoutesOnNavigation?: AgnosticPatchRoutesOnNavigationFunction;\n unstable_dataStrategy?: DataStrategyFunction;\n}\n\n/**\n * State returned from a server-side query() call\n */\nexport interface StaticHandlerContext {\n basename: Router[\"basename\"];\n location: RouterState[\"location\"];\n matches: RouterState[\"matches\"];\n loaderData: RouterState[\"loaderData\"];\n actionData: RouterState[\"actionData\"];\n errors: RouterState[\"errors\"];\n statusCode: number;\n loaderHeaders: Record;\n actionHeaders: Record;\n activeDeferreds: Record | null;\n _deepestRenderedBoundaryId?: string | null;\n}\n\n/**\n * A StaticHandler instance manages a singular SSR navigation/fetch event\n */\nexport interface StaticHandler {\n dataRoutes: AgnosticDataRouteObject[];\n query(\n request: Request,\n opts?: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n unstable_dataStrategy?: DataStrategyFunction;\n }\n ): Promise;\n queryRoute(\n request: Request,\n opts?: {\n routeId?: string;\n requestContext?: unknown;\n unstable_dataStrategy?: DataStrategyFunction;\n }\n ): Promise;\n}\n\ntype ViewTransitionOpts = {\n currentLocation: Location;\n nextLocation: Location;\n};\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (\n state: RouterState,\n opts: {\n deletedFetchers: string[];\n unstable_viewTransitionOpts?: ViewTransitionOpts;\n unstable_flushSync: boolean;\n }\n ): void;\n}\n\n/**\n * Function signature for determining the key to be used in scroll restoration\n * for a given location\n */\nexport interface GetScrollRestorationKeyFunction {\n (location: Location, matches: UIMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n (): number;\n}\n\nexport type RelativeRoutingType = \"route\" | \"path\";\n\n// Allowed for any navigation or fetch\ntype BaseNavigateOrFetchOptions = {\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n};\n\n// Only allowed for navigations\ntype BaseNavigateOptions = BaseNavigateOrFetchOptions & {\n replace?: boolean;\n state?: any;\n fromRouteId?: string;\n unstable_viewTransition?: boolean;\n};\n\n// Only allowed for submission navigations\ntype BaseSubmissionOptions = {\n formMethod?: HTMLFormMethod;\n formEncType?: FormEncType;\n} & (\n | { formData: FormData; body?: undefined }\n | { formData?: undefined; body: any }\n);\n\n/**\n * Options for a navigate() call for a normal (non-submission) navigation\n */\ntype LinkNavigateOptions = BaseNavigateOptions;\n\n/**\n * Options for a navigate() call for a submission navigation\n */\ntype SubmissionNavigateOptions = BaseNavigateOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to navigate() for a navigation\n */\nexport type RouterNavigateOptions =\n | LinkNavigateOptions\n | SubmissionNavigateOptions;\n\n/**\n * Options for a fetch() load\n */\ntype LoadFetchOptions = BaseNavigateOrFetchOptions;\n\n/**\n * Options for a fetch() submission\n */\ntype SubmitFetchOptions = BaseNavigateOrFetchOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions = LoadFetchOptions | SubmitFetchOptions;\n\n/**\n * Potential states for state.navigation\n */\nexport type NavigationStates = {\n Idle: {\n state: \"idle\";\n location: undefined;\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n json: undefined;\n text: undefined;\n };\n Loading: {\n state: \"loading\";\n location: Location;\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n text: Submission[\"text\"] | undefined;\n };\n Submitting: {\n state: \"submitting\";\n location: Location;\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n text: Submission[\"text\"];\n };\n};\n\nexport type Navigation = NavigationStates[keyof NavigationStates];\n\nexport type RevalidationState = \"idle\" | \"loading\";\n\n/**\n * Potential states for fetchers\n */\ntype FetcherStates = {\n Idle: {\n state: \"idle\";\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n text: undefined;\n formData: undefined;\n json: undefined;\n data: TData | undefined;\n };\n Loading: {\n state: \"loading\";\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n text: Submission[\"text\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n data: TData | undefined;\n };\n Submitting: {\n state: \"submitting\";\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n text: Submission[\"text\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n data: TData | undefined;\n };\n};\n\nexport type Fetcher =\n FetcherStates[keyof FetcherStates];\n\ninterface BlockerBlocked {\n state: \"blocked\";\n reset(): void;\n proceed(): void;\n location: Location;\n}\n\ninterface BlockerUnblocked {\n state: \"unblocked\";\n reset: undefined;\n proceed: undefined;\n location: undefined;\n}\n\ninterface BlockerProceeding {\n state: \"proceeding\";\n reset: undefined;\n proceed: undefined;\n location: Location;\n}\n\nexport type Blocker = BlockerUnblocked | BlockerBlocked | BlockerProceeding;\n\nexport type BlockerFunction = (args: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n}) => boolean;\n\ninterface ShortCircuitable {\n /**\n * startNavigation does not need to complete the navigation because we\n * redirected or got interrupted\n */\n shortCircuited?: boolean;\n}\n\ntype PendingActionResult = [string, SuccessResult | ErrorResult];\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Route matches which may have been updated from fog of war discovery\n */\n matches?: RouterState[\"matches\"];\n /**\n * Tuple for the returned or thrown value from the current action. The routeId\n * is the action route for success and the bubbled boundary route for errors.\n */\n pendingActionResult?: PendingActionResult;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * Route matches which may have been updated from fog of war discovery\n */\n matches?: RouterState[\"matches\"];\n /**\n * loaderData returned from the current set of loaders\n */\n loaderData?: RouterState[\"loaderData\"];\n /**\n * errors thrown from the current set of loaders\n */\n errors?: RouterState[\"errors\"];\n}\n\n/**\n * Cached info for active fetcher.load() instances so they can participate\n * in revalidation\n */\ninterface FetchLoadMatch {\n routeId: string;\n path: string;\n}\n\n/**\n * Identified fetcher.load() calls that need to be revalidated\n */\ninterface RevalidatingFetcher extends FetchLoadMatch {\n key: string;\n match: AgnosticDataRouteMatch | null;\n matches: AgnosticDataRouteMatch[] | null;\n controller: AbortController | null;\n}\n\nconst validMutationMethodsArr: MutationFormMethod[] = [\n \"post\",\n \"put\",\n \"patch\",\n \"delete\",\n];\nconst validMutationMethods = new Set(\n validMutationMethodsArr\n);\n\nconst validRequestMethodsArr: FormMethod[] = [\n \"get\",\n ...validMutationMethodsArr,\n];\nconst validRequestMethods = new Set(validRequestMethodsArr);\n\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\n\nexport const IDLE_NAVIGATION: NavigationStates[\"Idle\"] = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_FETCHER: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_BLOCKER: BlockerUnblocked = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined,\n};\n\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\nconst defaultMapRouteProperties: MapRoutePropertiesFunction = (route) => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary),\n});\n\nconst TRANSITIONS_STORAGE_KEY = \"remix-router-transitions\";\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\nexport function createRouter(init: RouterInit): Router {\n const routerWindow = init.window\n ? init.window\n : typeof window !== \"undefined\"\n ? window\n : undefined;\n const isBrowser =\n typeof routerWindow !== \"undefined\" &&\n typeof routerWindow.document !== \"undefined\" &&\n typeof routerWindow.document.createElement !== \"undefined\";\n const isServer = !isBrowser;\n\n invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (init.mapRouteProperties) {\n mapRouteProperties = init.mapRouteProperties;\n } else if (init.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = init.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n\n // Routes keyed by ID\n let manifest: RouteManifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(\n init.routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n let inFlightDataRoutes: AgnosticDataRouteObject[] | undefined;\n let basename = init.basename || \"/\";\n let dataStrategyImpl = init.unstable_dataStrategy || defaultDataStrategy;\n let patchRoutesOnNavigationImpl = init.unstable_patchRoutesOnNavigation;\n\n // Config driven behavior flags\n let future: FutureConfig = {\n v7_fetcherPersist: false,\n v7_normalizeFormMethod: false,\n v7_partialHydration: false,\n v7_prependBasename: false,\n v7_relativeSplatPath: false,\n v7_skipActionErrorRevalidation: false,\n ...init.future,\n };\n // Cleanup function for history\n let unlistenHistory: (() => void) | null = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // FIFO queue of previously discovered routes to prevent re-calling on\n // subsequent navigations to the same path\n let discoveredRoutesMaxSize = 1000;\n let discoveredRoutes = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions: Record | null = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey: GetScrollRestorationKeyFunction | null = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition: GetScrollPositionFunction | null = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null && !patchRoutesOnNavigationImpl) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname,\n });\n let { matches, route } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n }\n\n // In SPA apps, if the user provided a patchRoutesOnNavigation implementation and\n // our initial match is a splat route, clear them out so we run through lazy\n // discovery on hydration in case there's a more accurate lazy route match.\n // In SSR apps (with `hydrationData`), we expect that the server will send\n // up the proper matched routes so we don't want to run lazy discovery on\n // initial hydration and want to hydrate into the splat route.\n if (initialMatches && !init.hydrationData) {\n let fogOfWar = checkFogOfWar(\n initialMatches,\n dataRoutes,\n init.history.location.pathname\n );\n if (fogOfWar.active) {\n initialMatches = null;\n }\n }\n\n let initialized: boolean;\n if (!initialMatches) {\n initialized = false;\n initialMatches = [];\n\n // If partial hydration and fog of war is enabled, we will be running\n // `patchRoutesOnNavigation` during hydration so include any partial matches as\n // the initial matches so we can properly render `HydrateFallback`'s\n if (future.v7_partialHydration) {\n let fogOfWar = checkFogOfWar(\n null,\n dataRoutes,\n init.history.location.pathname\n );\n if (fogOfWar.active && fogOfWar.matches) {\n initialMatches = fogOfWar.matches;\n }\n }\n } else if (initialMatches.some((m) => m.route.lazy)) {\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n initialized = false;\n } else if (!initialMatches.some((m) => m.route.loader)) {\n // If we've got no loaders to run, then we're good to go\n initialized = true;\n } else if (future.v7_partialHydration) {\n // If partial hydration is enabled, we're initialized so long as we were\n // provided with hydrationData for every route with a loader, and no loaders\n // were marked for explicit hydration\n let loaderData = init.hydrationData ? init.hydrationData.loaderData : null;\n let errors = init.hydrationData ? init.hydrationData.errors : null;\n let isRouteInitialized = (m: AgnosticDataRouteMatch) => {\n // No loader, nothing to initialize\n if (!m.route.loader) {\n return true;\n }\n // Explicitly opting-in to running on hydration\n if (\n typeof m.route.loader === \"function\" &&\n m.route.loader.hydrate === true\n ) {\n return false;\n }\n // Otherwise, initialized if hydrated with data or an error\n return (\n (loaderData && loaderData[m.route.id] !== undefined) ||\n (errors && errors[m.route.id] !== undefined)\n );\n };\n\n // If errors exist, don't consider routes below the boundary\n if (errors) {\n let idx = initialMatches.findIndex(\n (m) => errors![m.route.id] !== undefined\n );\n initialized = initialMatches.slice(0, idx + 1).every(isRouteInitialized);\n } else {\n initialized = initialMatches.every(isRouteInitialized);\n }\n } else {\n // Without partial hydration - we're initialized if we were provided any\n // hydrationData - which is expected to be complete\n initialized = init.hydrationData != null;\n }\n\n let router: Router;\n let state: RouterState = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: (init.hydrationData && init.hydrationData.loaderData) || {},\n actionData: (init.hydrationData && init.hydrationData.actionData) || null,\n errors: (init.hydrationData && init.hydrationData.errors) || initialErrors,\n fetchers: new Map(),\n blockers: new Map(),\n };\n\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction: HistoryAction = HistoryAction.Pop;\n\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n\n // AbortController for the active navigation\n let pendingNavigationController: AbortController | null;\n\n // Should the current navigation enable document.startViewTransition?\n let pendingViewTransitionEnabled = false;\n\n // Store applied view transitions so we can apply them on POP\n let appliedViewTransitions: Map> = new Map<\n string,\n Set\n >();\n\n // Cleanup function for persisting applied transitions to sessionStorage\n let removePageHideEventListener: (() => void) | null = null;\n\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidator()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes: string[] = [];\n\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads: Set = new Set();\n\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set();\n\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n\n // Ref-count mounted fetchers so we know when it's ok to clean them up\n let activeFetchers = new Map();\n\n // Fetchers that have requested a delete when using v7_fetcherPersist,\n // they'll be officially removed after they return to idle\n let deletedFetchers = new Set();\n\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n\n // Map of pending patchRoutesOnNavigation() promises (keyed by path/matches) so\n // that we only kick them off once for a given combo\n let pendingPatchRoutes = new Map<\n string,\n ReturnType\n >();\n\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let unblockBlockerHistoryUpdate: (() => void) | undefined = undefined;\n\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(\n ({ action: historyAction, location, delta }) => {\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (unblockBlockerHistoryUpdate) {\n unblockBlockerHistoryUpdate();\n unblockBlockerHistoryUpdate = undefined;\n return;\n }\n\n warning(\n blockerFunctions.size === 0 || delta != null,\n \"You are trying to use a blocker on a POP navigation to a location \" +\n \"that was not created by @remix-run/router. This will fail silently in \" +\n \"production. This can happen if you are navigating outside the router \" +\n \"via `window.history.pushState`/`window.location.hash` instead of using \" +\n \"router navigation APIs. This can also happen if you are using \" +\n \"createHashRouter and the user manually changes the URL.\"\n );\n\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction,\n });\n\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n let nextHistoryUpdatePromise = new Promise((resolve) => {\n unblockBlockerHistoryUpdate = resolve;\n });\n init.history.go(delta * -1);\n\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location,\n });\n // Re-do the same POP navigation we just blocked, after the url\n // restoration is also complete. See:\n // https://github.com/remix-run/react-router/issues/11613\n nextHistoryUpdatePromise.then(() => init.history.go(delta));\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return startNavigation(historyAction, location);\n }\n );\n\n if (isBrowser) {\n // FIXME: This feels gross. How can we cleanup the lines between\n // scrollRestoration/appliedTransitions persistance?\n restoreAppliedTransitions(routerWindow, appliedViewTransitions);\n let _saveAppliedTransitions = () =>\n persistAppliedTransitions(routerWindow, appliedViewTransitions);\n routerWindow.addEventListener(\"pagehide\", _saveAppliedTransitions);\n removePageHideEventListener = () =>\n routerWindow.removeEventListener(\"pagehide\", _saveAppliedTransitions);\n }\n\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(HistoryAction.Pop, state.location, {\n initialHydration: true,\n });\n }\n\n return router;\n }\n\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n if (removePageHideEventListener) {\n removePageHideEventListener();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n\n // Subscribe to state updates for the router\n function subscribe(fn: RouterSubscriber) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n\n // Update our state and notify the calling context of the change\n function updateState(\n newState: Partial,\n opts: {\n flushSync?: boolean;\n viewTransitionOpts?: ViewTransitionOpts;\n } = {}\n ): void {\n state = {\n ...state,\n ...newState,\n };\n\n // Prep fetcher cleanup so we can tell the UI which fetcher data entries\n // can be removed\n let completedFetchers: string[] = [];\n let deletedFetchersKeys: string[] = [];\n\n if (future.v7_fetcherPersist) {\n state.fetchers.forEach((fetcher, key) => {\n if (fetcher.state === \"idle\") {\n if (deletedFetchers.has(key)) {\n // Unmounted from the UI and can be totally removed\n deletedFetchersKeys.push(key);\n } else {\n // Returned to idle but still mounted in the UI, so semi-remains for\n // revalidations and such\n completedFetchers.push(key);\n }\n }\n });\n }\n\n // Iterate over a local copy so that if flushSync is used and we end up\n // removing and adding a new subscriber due to the useCallback dependencies,\n // we don't get ourselves into a loop calling the new subscriber immediately\n [...subscribers].forEach((subscriber) =>\n subscriber(state, {\n deletedFetchers: deletedFetchersKeys,\n unstable_viewTransitionOpts: opts.viewTransitionOpts,\n unstable_flushSync: opts.flushSync === true,\n })\n );\n\n // Remove idle fetchers from state since we only care about in-flight fetchers.\n if (future.v7_fetcherPersist) {\n completedFetchers.forEach((key) => state.fetchers.delete(key));\n deletedFetchersKeys.forEach((key) => deleteFetcher(key));\n }\n }\n\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(\n location: Location,\n newState: Partial>,\n { flushSync }: { flushSync?: boolean } = {}\n ): void {\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload =\n state.actionData != null &&\n state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n state.navigation.state === \"loading\" &&\n location.state?._isRedirect !== true;\n\n let actionData: RouteData | null;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData\n ? mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || [],\n newState.errors\n )\n : state.loaderData;\n\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n let blockers = state.blockers;\n if (blockers.size > 0) {\n blockers = new Map(blockers);\n blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n }\n\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset =\n pendingPreventScrollReset === true ||\n (state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n location.state?._isRedirect !== true);\n\n // Commit any in-flight routes at the end of the HMR revalidation \"navigation\"\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n\n if (isUninterruptedRevalidation) {\n // If this was an uninterrupted revalidation then do not touch history\n } else if (pendingAction === HistoryAction.Pop) {\n // Do nothing for POP - URL has already been updated\n } else if (pendingAction === HistoryAction.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === HistoryAction.Replace) {\n init.history.replace(location, location.state);\n }\n\n let viewTransitionOpts: ViewTransitionOpts | undefined;\n\n // On POP, enable transitions if they were enabled on the original navigation\n if (pendingAction === HistoryAction.Pop) {\n // Forward takes precedence so they behave like the original navigation\n let priorPaths = appliedViewTransitions.get(state.location.pathname);\n if (priorPaths && priorPaths.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n } else if (appliedViewTransitions.has(location.pathname)) {\n // If we don't have a previous forward nav, assume we're popping back to\n // the new location and enable if that location previously enabled\n viewTransitionOpts = {\n currentLocation: location,\n nextLocation: state.location,\n };\n }\n } else if (pendingViewTransitionEnabled) {\n // Store the applied transition on PUSH/REPLACE\n let toPaths = appliedViewTransitions.get(state.location.pathname);\n if (toPaths) {\n toPaths.add(location.pathname);\n } else {\n toPaths = new Set([location.pathname]);\n appliedViewTransitions.set(state.location.pathname, toPaths);\n }\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n }\n\n updateState(\n {\n ...newState, // matches, errors, fetchers go through as-is\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(\n location,\n newState.matches || state.matches\n ),\n preventScrollReset,\n blockers,\n },\n {\n viewTransitionOpts,\n flushSync: flushSync === true,\n }\n );\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To | null,\n opts?: RouterNavigateOptions\n ): Promise {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n to,\n future.v7_relativeSplatPath,\n opts?.fromRouteId,\n opts?.relative\n );\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n false,\n normalizedPath,\n opts\n );\n\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = {\n ...nextLocation,\n ...init.history.encodeLocation(nextLocation),\n };\n\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n\n let historyAction = HistoryAction.Push;\n\n if (userReplace === true) {\n historyAction = HistoryAction.Replace;\n } else if (userReplace === false) {\n // no-op\n } else if (\n submission != null &&\n isMutationMethod(submission.formMethod) &&\n submission.formAction === state.location.pathname + state.location.search\n ) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = HistoryAction.Replace;\n }\n\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n });\n\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation,\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n enableViewTransition: opts && opts.unstable_viewTransition,\n flushSync,\n });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n {\n overrideNavigation: state.navigation,\n // Proxy through any rending view transition\n enableViewTransition: pendingViewTransitionEnabled === true,\n }\n );\n }\n\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(\n historyAction: HistoryAction,\n location: Location,\n opts?: {\n initialHydration?: boolean;\n submission?: Submission;\n fetcherSubmission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponseImpl;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n enableViewTransition?: boolean;\n flushSync?: boolean;\n }\n ): Promise {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation =\n (opts && opts.startUninterruptedRevalidation) === true;\n\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, basename);\n let flushSync = (opts && opts.flushSync) === true;\n\n let fogOfWar = checkFogOfWar(matches, routesToUse, location.pathname);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let { error, notFoundMatches, route } = handleNavigational404(\n location.pathname\n );\n completeNavigation(\n location,\n {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n },\n { flushSync }\n );\n return;\n }\n\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial load will always\n // be \"same hash\". For example, on /page#hash and submit a \n // which will default to a navigation to /page\n if (\n state.initialized &&\n !isRevalidationRequired &&\n isHashChangeOnly(state.location, location) &&\n !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))\n ) {\n completeNavigation(location, { matches }, { flushSync });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n init.history,\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let pendingActionResult: PendingActionResult | undefined;\n\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingActionResult = [\n findNearestBoundary(matches).route.id,\n { type: ResultType.error, error: opts.pendingError },\n ];\n } else if (\n opts &&\n opts.submission &&\n isMutationMethod(opts.submission.formMethod)\n ) {\n // Call action if we received an action submission\n let actionResult = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n fogOfWar.active,\n { replace: opts.replace, flushSync }\n );\n\n if (actionResult.shortCircuited) {\n return;\n }\n\n // If we received a 404 from handleAction, it's because we couldn't lazily\n // discover the destination route so we don't want to call loaders\n if (actionResult.pendingActionResult) {\n let [routeId, result] = actionResult.pendingActionResult;\n if (\n isErrorResult(result) &&\n isRouteErrorResponse(result.error) &&\n result.error.status === 404\n ) {\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches: actionResult.matches,\n loaderData: {},\n errors: {\n [routeId]: result.error,\n },\n });\n return;\n }\n }\n\n matches = actionResult.matches || matches;\n pendingActionResult = actionResult.pendingActionResult;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n // No need to do fog of war matching again on loader execution\n fogOfWar.active = false;\n\n // Create a GET request for the loaders\n request = createClientSideRequest(\n init.history,\n request.url,\n request.signal\n );\n }\n\n // Call loaders\n let {\n shortCircuited,\n matches: updatedMatches,\n loaderData,\n errors,\n } = await handleLoaders(\n request,\n location,\n matches,\n fogOfWar.active,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.fetcherSubmission,\n opts && opts.replace,\n opts && opts.initialHydration === true,\n flushSync,\n pendingActionResult\n );\n\n if (shortCircuited) {\n return;\n }\n\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches: updatedMatches || matches,\n ...getActionDataForCommit(pendingActionResult),\n loaderData,\n errors,\n });\n }\n\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(\n request: Request,\n location: Location,\n submission: Submission,\n matches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n opts: { replace?: boolean; flushSync?: boolean } = {}\n ): Promise {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({ navigation }, { flushSync: opts.flushSync === true });\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n matches,\n location.pathname,\n request.signal\n );\n if (discoverResult.type === \"aborted\") {\n return { shortCircuited: true };\n } else if (discoverResult.type === \"error\") {\n let { boundaryId, error } = handleDiscoverRouteError(\n location.pathname,\n discoverResult\n );\n return {\n matches: discoverResult.partialMatches,\n pendingActionResult: [\n boundaryId,\n {\n type: ResultType.error,\n error,\n },\n ],\n };\n } else if (!discoverResult.matches) {\n let { notFoundMatches, error, route } = handleNavigational404(\n location.pathname\n );\n return {\n matches: notFoundMatches,\n pendingActionResult: [\n route.id,\n {\n type: ResultType.error,\n error,\n },\n ],\n };\n } else {\n matches = discoverResult.matches;\n }\n }\n\n // Call our action and get the result\n let result: DataResult;\n let actionMatch = getTargetMatch(matches, location);\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id,\n }),\n };\n } else {\n let results = await callDataStrategy(\n \"action\",\n state,\n request,\n [actionMatch],\n matches,\n null\n );\n result = results[actionMatch.route.id];\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n\n if (isRedirectResult(result)) {\n let replace: boolean;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n let location = normalizeRedirectLocation(\n result.response.headers.get(\"Location\")!,\n new URL(request.url),\n basename\n );\n replace = location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(request, result, true, {\n submission,\n replace,\n });\n return { shortCircuited: true };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n\n // By default, all submissions to the current location are REPLACE\n // navigations, but if the action threw an error that'll be rendered in\n // an errorElement, we fall back to PUSH so that the user can use the\n // back button to get back to the pre-submission form location to try\n // again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n matches,\n pendingActionResult: [boundaryMatch.route.id, result],\n };\n }\n\n return {\n matches,\n pendingActionResult: [actionMatch.route.id, result],\n };\n }\n\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n overrideNavigation?: Navigation,\n submission?: Submission,\n fetcherSubmission?: Submission,\n replace?: boolean,\n initialHydration?: boolean,\n flushSync?: boolean,\n pendingActionResult?: PendingActionResult\n ): Promise {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation =\n overrideNavigation || getLoadingNavigation(location, submission);\n\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission =\n submission ||\n fetcherSubmission ||\n getSubmissionFromNavigation(loadingNavigation);\n\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n // If we have partialHydration enabled, then don't update the state for the\n // initial data load since it's not a \"navigation\"\n let shouldUpdateNavigationState =\n !isUninterruptedRevalidation &&\n (!future.v7_partialHydration || !initialHydration);\n\n // When fog of war is enabled, we enter our `loading` state earlier so we\n // can discover new routes during the `loading` state. We skip this if\n // we've already run actions since we would have done our matching already.\n // If the children() function threw then, we want to proceed with the\n // partial matches it discovered.\n if (isFogOfWar) {\n if (shouldUpdateNavigationState) {\n let actionData = getUpdatedActionData(pendingActionResult);\n updateState(\n {\n navigation: loadingNavigation,\n ...(actionData !== undefined ? { actionData } : {}),\n },\n {\n flushSync,\n }\n );\n }\n\n let discoverResult = await discoverRoutes(\n matches,\n location.pathname,\n request.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return { shortCircuited: true };\n } else if (discoverResult.type === \"error\") {\n let { boundaryId, error } = handleDiscoverRouteError(\n location.pathname,\n discoverResult\n );\n return {\n matches: discoverResult.partialMatches,\n loaderData: {},\n errors: {\n [boundaryId]: error,\n },\n };\n } else if (!discoverResult.matches) {\n let { error, notFoundMatches, route } = handleNavigational404(\n location.pathname\n );\n return {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n };\n } else {\n matches = discoverResult.matches;\n }\n }\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n activeSubmission,\n location,\n future.v7_partialHydration && initialHydration === true,\n future.v7_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n pendingActionResult\n );\n\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(\n (routeId) =>\n !(matches && matches.some((m) => m.route.id === routeId)) ||\n (matchesToLoad && matchesToLoad.some((m) => m.route.id === routeId))\n );\n\n pendingNavigationLoadId = ++incrementingLoadId;\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(\n location,\n {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? { [pendingActionResult[0]]: pendingActionResult[1].error }\n : null,\n ...getActionDataForCommit(pendingActionResult),\n ...(updatedFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n },\n { flushSync }\n );\n return { shortCircuited: true };\n }\n\n if (shouldUpdateNavigationState) {\n let updates: Partial = {};\n if (!isFogOfWar) {\n // Only update navigation/actionNData if we didn't already do it above\n updates.navigation = loadingNavigation;\n let actionData = getUpdatedActionData(pendingActionResult);\n if (actionData !== undefined) {\n updates.actionData = actionData;\n }\n }\n if (revalidatingFetchers.length > 0) {\n updates.fetchers = getUpdatedRevalidatingFetchers(revalidatingFetchers);\n }\n updateState(updates, { flushSync });\n }\n\n revalidatingFetchers.forEach((rf) => {\n if (fetchControllers.has(rf.key)) {\n abortFetcher(rf.key);\n }\n if (rf.controller) {\n // Fetchers use an independent AbortController so that aborting a fetcher\n // (via deleteFetcher) does not abort the triggering navigation that\n // triggered the revalidation\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((f) => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n\n let { loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n request\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n revalidatingFetchers.forEach((rf) => fetchControllers.delete(rf.key));\n\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect(loaderResults);\n if (redirect) {\n await startRedirectNavigation(request, redirect.result, true, {\n replace,\n });\n return { shortCircuited: true };\n }\n\n redirect = findRedirect(fetcherResults);\n if (redirect) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n fetchRedirectIds.add(redirect.key);\n await startRedirectNavigation(request, redirect.result, true, {\n replace,\n });\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n pendingActionResult,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe((aborted) => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n\n // During partial hydration, preserve SSR errors for routes that don't re-run\n if (future.v7_partialHydration && initialHydration && state.errors) {\n Object.entries(state.errors)\n .filter(([id]) => !matchesToLoad.some((m) => m.route.id === id))\n .forEach(([routeId, error]) => {\n errors = Object.assign(errors || {}, { [routeId]: error });\n });\n }\n\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers =\n updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n\n return {\n matches,\n loaderData,\n errors,\n ...(shouldUpdateFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n };\n }\n\n function getUpdatedActionData(\n pendingActionResult: PendingActionResult | undefined\n ): Record | null | undefined {\n if (pendingActionResult && !isErrorResult(pendingActionResult[1])) {\n // This is cast to `any` currently because `RouteData`uses any and it\n // would be a breaking change to use any.\n // TODO: v7 - change `RouteData` to use `unknown` instead of `any`\n return {\n [pendingActionResult[0]]: pendingActionResult[1].data as any,\n };\n } else if (state.actionData) {\n if (Object.keys(state.actionData).length === 0) {\n return null;\n } else {\n return state.actionData;\n }\n }\n }\n\n function getUpdatedRevalidatingFetchers(\n revalidatingFetchers: RevalidatingFetcher[]\n ) {\n revalidatingFetchers.forEach((rf) => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n fetcher ? fetcher.data : undefined\n );\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n return new Map(state.fetchers);\n }\n\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ) {\n if (isServer) {\n throw new Error(\n \"router.fetch() was called during the server render, but it shouldn't be. \" +\n \"You are likely calling a useFetcher() method in the body of your component. \" +\n \"Try moving it to a useEffect or a callback.\"\n );\n }\n\n if (fetchControllers.has(key)) abortFetcher(key);\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n href,\n future.v7_relativeSplatPath,\n routeId,\n opts?.relative\n );\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n\n let fogOfWar = checkFogOfWar(matches, routesToUse, normalizedPath);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: normalizedPath }),\n { flushSync }\n );\n return;\n }\n\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n true,\n normalizedPath,\n opts\n );\n\n if (error) {\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n let match = getTargetMatch(matches, path);\n\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(\n key,\n routeId,\n path,\n match,\n matches,\n fogOfWar.active,\n flushSync,\n submission\n );\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, { routeId, path });\n handleFetcherLoader(\n key,\n routeId,\n path,\n match,\n matches,\n fogOfWar.active,\n flushSync,\n submission\n );\n }\n\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n requestMatches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n flushSync: boolean,\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n function detectAndHandle405Error(m: AgnosticDataRouteMatch) {\n if (!m.route.action && !m.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId,\n });\n setFetcherError(key, routeId, error, { flushSync });\n return true;\n }\n return false;\n }\n\n if (!isFogOfWar && detectAndHandle405Error(match)) {\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getSubmittingFetcher(submission, existingFetcher), {\n flushSync,\n });\n\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n requestMatches,\n path,\n fetchRequest.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n let { error } = handleDiscoverRouteError(path, discoverResult);\n setFetcherError(key, routeId, error, { flushSync });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: path }),\n { flushSync }\n );\n return;\n } else {\n requestMatches = discoverResult.matches;\n match = getTargetMatch(requestMatches, path);\n\n if (detectAndHandle405Error(match)) {\n return;\n }\n }\n }\n\n // Call the action for the fetcher\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let actionResults = await callDataStrategy(\n \"action\",\n state,\n fetchRequest,\n [match],\n requestMatches,\n key\n );\n let actionResult = actionResults[match.route.id];\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n\n // When using v7_fetcherPersist, we don't want errors bubbling up to the UI\n // or redirects processed for unmounted fetchers so we just revert them to\n // idle\n if (future.v7_fetcherPersist && deletedFetchers.has(key)) {\n if (isRedirectResult(actionResult) || isErrorResult(actionResult)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // Let SuccessResult's fall through for revalidation\n } else {\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our action started, so that\n // should take precedence over this redirect navigation. We already\n // set isRevalidationRequired so all loaders for the new route should\n // fire unless opted out via shouldRevalidate\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n updateFetcherState(key, getLoadingFetcher(submission));\n return startRedirectNavigation(fetchRequest, actionResult, false, {\n fetcherSubmission: submission,\n });\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n }\n\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(\n init.history,\n nextLocation,\n abortController.signal\n );\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(routesToUse, state.navigation.location, basename)\n : state.matches;\n\n invariant(matches, \"Didn't find any matches after fetcher action\");\n\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n submission,\n nextLocation,\n false,\n future.v7_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n [match.route.id, actionResult]\n );\n\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers\n .filter((rf) => rf.key !== key)\n .forEach((rf) => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n existingFetcher ? existingFetcher.data : undefined\n );\n state.fetchers.set(staleKey, revalidatingFetcher);\n if (fetchControllers.has(staleKey)) {\n abortFetcher(staleKey);\n }\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((rf) => abortFetcher(rf.key));\n\n abortController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n let { loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n revalidationRequest\n );\n\n if (abortController.signal.aborted) {\n return;\n }\n\n abortController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach((r) => fetchControllers.delete(r.key));\n\n let redirect = findRedirect(loaderResults);\n if (redirect) {\n return startRedirectNavigation(\n revalidationRequest,\n redirect.result,\n false\n );\n }\n\n redirect = findRedirect(fetcherResults);\n if (redirect) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n fetchRedirectIds.add(redirect.key);\n return startRedirectNavigation(\n revalidationRequest,\n redirect.result,\n false\n );\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n undefined,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Since we let revalidations complete even if the submitting fetcher was\n // deleted, only put it back to idle if it hasn't been deleted\n if (state.fetchers.has(key)) {\n let doneFetcher = getDoneFetcher(actionResult.data);\n state.fetchers.set(key, doneFetcher);\n }\n\n abortStaleFetchLoads(loadId);\n\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (\n state.navigation.state === \"loading\" &&\n loadId > pendingNavigationLoadId\n ) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers),\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(\n state.loaderData,\n loaderData,\n matches,\n errors\n ),\n fetchers: new Map(state.fetchers),\n });\n isRevalidationRequired = false;\n }\n }\n\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n flushSync: boolean,\n submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(\n key,\n getLoadingFetcher(\n submission,\n existingFetcher ? existingFetcher.data : undefined\n ),\n { flushSync }\n );\n\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n matches,\n path,\n fetchRequest.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n let { error } = handleDiscoverRouteError(path, discoverResult);\n setFetcherError(key, routeId, error, { flushSync });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: path }),\n { flushSync }\n );\n return;\n } else {\n matches = discoverResult.matches;\n match = getTargetMatch(matches, path);\n }\n }\n\n // Call the loader for this fetcher route match\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let results = await callDataStrategy(\n \"loader\",\n state,\n fetchRequest,\n [match],\n matches,\n key\n );\n let result = results[match.route.id];\n\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result =\n (await resolveDeferredData(result, fetchRequest.signal, true)) ||\n result;\n }\n\n // We can delete this so long as we weren't aborted by our our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n }\n\n // We don't want errors bubbling up or redirects followed for unmounted\n // fetchers, so short circuit here if it was removed from the UI\n if (deletedFetchers.has(key)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our loader started, so that\n // should take precedence over this redirect navigation\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(fetchRequest, result, false);\n return;\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n setFetcherError(key, routeId, result.error);\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n updateFetcherState(key, getDoneFetcher(result.data));\n }\n\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(\n request: Request,\n redirect: RedirectResult,\n isNavigation: boolean,\n {\n submission,\n fetcherSubmission,\n replace,\n }: {\n submission?: Submission;\n fetcherSubmission?: Submission;\n replace?: boolean;\n } = {}\n ) {\n if (redirect.response.headers.has(\"X-Remix-Revalidate\")) {\n isRevalidationRequired = true;\n }\n\n let location = redirect.response.headers.get(\"Location\");\n invariant(location, \"Expected a Location header on the redirect Response\");\n location = normalizeRedirectLocation(\n location,\n new URL(request.url),\n basename\n );\n let redirectLocation = createLocation(state.location, location, {\n _isRedirect: true,\n });\n\n if (isBrowser) {\n let isDocumentReload = false;\n\n if (redirect.response.headers.has(\"X-Remix-Reload-Document\")) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(location)) {\n const url = init.history.createURL(location);\n isDocumentReload =\n // Hard reload if it's an absolute URL to a new origin\n url.origin !== routerWindow.location.origin ||\n // Hard reload if it's an absolute URL that does not match our basename\n stripBasename(url.pathname, basename) == null;\n }\n\n if (isDocumentReload) {\n if (replace) {\n routerWindow.location.replace(location);\n } else {\n routerWindow.location.assign(location);\n }\n return;\n }\n }\n\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n\n let redirectHistoryAction =\n replace === true || redirect.response.headers.has(\"X-Remix-Replace\")\n ? HistoryAction.Replace\n : HistoryAction.Push;\n\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let { formMethod, formAction, formEncType } = state.navigation;\n if (\n !submission &&\n !fetcherSubmission &&\n formMethod &&\n formAction &&\n formEncType\n ) {\n submission = getSubmissionFromNavigation(state.navigation);\n }\n\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n let activeSubmission = submission || fetcherSubmission;\n if (\n redirectPreserveMethodStatusCodes.has(redirect.response.status) &&\n activeSubmission &&\n isMutationMethod(activeSubmission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...activeSubmission,\n formAction: location,\n },\n // Preserve these flags across redirects\n preventScrollReset: pendingPreventScrollReset,\n enableViewTransition: isNavigation\n ? pendingViewTransitionEnabled\n : undefined,\n });\n } else {\n // If we have a navigation submission, we will preserve it through the\n // redirect navigation\n let overrideNavigation = getLoadingNavigation(\n redirectLocation,\n submission\n );\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation,\n // Send fetcher submissions through for shouldRevalidate\n fetcherSubmission,\n // Preserve these flags across redirects\n preventScrollReset: pendingPreventScrollReset,\n enableViewTransition: isNavigation\n ? pendingViewTransitionEnabled\n : undefined,\n });\n }\n }\n\n // Utility wrapper for calling dataStrategy client-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n state: RouterState,\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n fetcherKey: string | null\n ): Promise> {\n let results: Record;\n let dataResults: Record = {};\n try {\n results = await callDataStrategyImpl(\n dataStrategyImpl,\n type,\n state,\n request,\n matchesToLoad,\n matches,\n fetcherKey,\n manifest,\n mapRouteProperties\n );\n } catch (e) {\n // If the outer dataStrategy method throws, just return the error for all\n // matches - and it'll naturally bubble to the root\n matchesToLoad.forEach((m) => {\n dataResults[m.route.id] = {\n type: ResultType.error,\n error: e,\n };\n });\n return dataResults;\n }\n\n for (let [routeId, result] of Object.entries(results)) {\n if (isRedirectDataStrategyResultResult(result)) {\n let response = result.result as Response;\n dataResults[routeId] = {\n type: ResultType.redirect,\n response: normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n routeId,\n matches,\n basename,\n future.v7_relativeSplatPath\n ),\n };\n } else {\n dataResults[routeId] = await convertDataStrategyResultToDataResult(\n result\n );\n }\n }\n\n return dataResults;\n }\n\n async function callLoadersAndMaybeResolveData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n let currentMatches = state.matches;\n\n // Kick off loaders and fetchers in parallel\n let loaderResultsPromise = callDataStrategy(\n \"loader\",\n state,\n request,\n matchesToLoad,\n matches,\n null\n );\n\n let fetcherResultsPromise = Promise.all(\n fetchersToLoad.map(async (f) => {\n if (f.matches && f.match && f.controller) {\n let results = await callDataStrategy(\n \"loader\",\n state,\n createClientSideRequest(init.history, f.path, f.controller.signal),\n [f.match],\n f.matches,\n f.key\n );\n let result = results[f.match.route.id];\n // Fetcher results are keyed by fetcher key from here on out, not routeId\n return { [f.key]: result };\n } else {\n return Promise.resolve({\n [f.key]: {\n type: ResultType.error,\n error: getInternalRouterError(404, {\n pathname: f.path,\n }),\n } as ErrorResult,\n });\n }\n })\n );\n\n let loaderResults = await loaderResultsPromise;\n let fetcherResults = (await fetcherResultsPromise).reduce(\n (acc, r) => Object.assign(acc, r),\n {}\n );\n\n await Promise.all([\n resolveNavigationDeferredResults(\n matches,\n loaderResults,\n request.signal,\n currentMatches,\n state.loaderData\n ),\n resolveFetcherDeferredResults(matches, fetcherResults, fetchersToLoad),\n ]);\n\n return {\n loaderResults,\n fetcherResults,\n };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.add(key);\n abortFetcher(key);\n }\n });\n }\n\n function updateFetcherState(\n key: string,\n fetcher: Fetcher,\n opts: { flushSync?: boolean } = {}\n ) {\n state.fetchers.set(key, fetcher);\n updateState(\n { fetchers: new Map(state.fetchers) },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function setFetcherError(\n key: string,\n routeId: string,\n error: any,\n opts: { flushSync?: boolean } = {}\n ) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState(\n {\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function getFetcher(key: string): Fetcher {\n if (future.v7_fetcherPersist) {\n activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n // If this fetcher was previously marked for deletion, unmark it since we\n // have a new instance\n if (deletedFetchers.has(key)) {\n deletedFetchers.delete(key);\n }\n }\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n function deleteFetcher(key: string): void {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (\n fetchControllers.has(key) &&\n !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))\n ) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n deletedFetchers.delete(key);\n cancelledFetcherLoads.delete(key);\n state.fetchers.delete(key);\n }\n\n function deleteFetcherAndUpdateState(key: string): void {\n if (future.v7_fetcherPersist) {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n deletedFetchers.add(key);\n } else {\n activeFetchers.set(key, count);\n }\n } else {\n deleteFetcher(key);\n }\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n invariant(controller, `Expected fetch controller: ${key}`);\n controller.abort();\n fetchControllers.delete(key);\n }\n\n function markFetchersDone(keys: string[]) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): boolean {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n\n function abortStaleFetchLoads(landedId: number): boolean {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function getBlocker(key: string, fn: BlockerFunction) {\n let blocker: Blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n\n return blocker;\n }\n\n function deleteBlocker(key: string) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key: string, newBlocker: Blocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(\n (blocker.state === \"unblocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"proceeding\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"unblocked\") ||\n (blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\"),\n `Invalid blocker state transition: ${blocker.state} -> ${newBlocker.state}`\n );\n\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({ blockers });\n }\n\n function shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n }: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n }): string | undefined {\n if (blockerFunctions.size === 0) {\n return;\n }\n\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({ currentLocation, nextLocation, historyAction })) {\n return blockerKey;\n }\n }\n\n function handleNavigational404(pathname: string) {\n let error = getInternalRouterError(404, { pathname });\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let { matches, route } = getShortCircuitMatches(routesToUse);\n\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n\n return { notFoundMatches: matches, route, error };\n }\n\n function handleDiscoverRouteError(\n pathname: string,\n discoverResult: DiscoverRoutesErrorResult\n ) {\n return {\n boundaryId: findNearestBoundary(discoverResult.partialMatches).route.id,\n error: getInternalRouterError(400, {\n type: \"route-discovery\",\n pathname,\n message:\n discoverResult.error != null && \"message\" in discoverResult.error\n ? discoverResult.error\n : String(discoverResult.error),\n }),\n };\n }\n\n function cancelActiveDeferreds(\n predicate?: (routeId: string) => boolean\n ): string[] {\n let cancelledRouteIds: string[] = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n function enableScrollRestoration(\n positions: Record,\n getPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || null;\n\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({ restoreScrollPosition: y });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function getScrollKey(location: Location, matches: AgnosticDataRouteMatch[]) {\n if (getScrollRestorationKey) {\n let key = getScrollRestorationKey(\n location,\n matches.map((m) => convertRouteMatchToUiMatch(m, state.loaderData))\n );\n return key || location.key;\n }\n return location.key;\n }\n\n function saveScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): void {\n if (savedScrollPositions && getScrollPosition) {\n let key = getScrollKey(location, matches);\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): number | null {\n if (savedScrollPositions) {\n let key = getScrollKey(location, matches);\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n\n function checkFogOfWar(\n matches: AgnosticDataRouteMatch[] | null,\n routesToUse: AgnosticDataRouteObject[],\n pathname: string\n ): { active: boolean; matches: AgnosticDataRouteMatch[] | null } {\n if (patchRoutesOnNavigationImpl) {\n // Don't bother re-calling patchRouteOnMiss for a path we've already\n // processed. the last execution would have patched the route tree\n // accordingly so `matches` here are already accurate.\n if (discoveredRoutes.has(pathname)) {\n return { active: false, matches };\n }\n\n if (!matches) {\n let fogMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n\n return { active: true, matches: fogMatches || [] };\n } else {\n if (Object.keys(matches[0].params).length > 0) {\n // If we matched a dynamic param or a splat, it might only be because\n // we haven't yet discovered other routes that would match with a\n // higher score. Call patchRoutesOnNavigation just to be sure\n let partialMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n return { active: true, matches: partialMatches };\n }\n }\n }\n\n return { active: false, matches: null };\n }\n\n type DiscoverRoutesSuccessResult = {\n type: \"success\";\n matches: AgnosticDataRouteMatch[] | null;\n };\n type DiscoverRoutesErrorResult = {\n type: \"error\";\n error: any;\n partialMatches: AgnosticDataRouteMatch[];\n };\n type DiscoverRoutesAbortedResult = { type: \"aborted\" };\n type DiscoverRoutesResult =\n | DiscoverRoutesSuccessResult\n | DiscoverRoutesErrorResult\n | DiscoverRoutesAbortedResult;\n\n async function discoverRoutes(\n matches: AgnosticDataRouteMatch[],\n pathname: string,\n signal: AbortSignal\n ): Promise {\n let partialMatches: AgnosticDataRouteMatch[] | null = matches;\n while (true) {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n try {\n await loadLazyRouteChildren(\n patchRoutesOnNavigationImpl!,\n pathname,\n partialMatches,\n routesToUse,\n manifest,\n mapRouteProperties,\n pendingPatchRoutes,\n signal\n );\n } catch (e) {\n return { type: \"error\", error: e, partialMatches };\n } finally {\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity so when we `updateState` at the end of\n // this navigation/fetch `router.routes` will be a new identity and\n // trigger a re-run of memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR) {\n dataRoutes = [...dataRoutes];\n }\n }\n\n if (signal.aborted) {\n return { type: \"aborted\" };\n }\n\n let newMatches = matchRoutes(routesToUse, pathname, basename);\n if (newMatches) {\n addToFifoQueue(pathname, discoveredRoutes);\n return { type: \"success\", matches: newMatches };\n }\n\n let newPartialMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n\n // Avoid loops if the second pass results in the same partial matches\n if (\n !newPartialMatches ||\n (partialMatches.length === newPartialMatches.length &&\n partialMatches.every(\n (m, i) => m.route.id === newPartialMatches![i].route.id\n ))\n ) {\n addToFifoQueue(pathname, discoveredRoutes);\n return { type: \"success\", matches: null };\n }\n\n partialMatches = newPartialMatches;\n }\n }\n\n function addToFifoQueue(path: string, queue: Set) {\n if (queue.size >= discoveredRoutesMaxSize) {\n let first = queue.values().next().value;\n queue.delete(first);\n }\n queue.add(path);\n }\n\n function _internalSetRoutes(newRoutes: AgnosticDataRouteObject[]) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(\n newRoutes,\n mapRouteProperties,\n undefined,\n manifest\n );\n }\n\n function patchRoutes(\n routeId: string | null,\n children: AgnosticRouteObject[]\n ): void {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n patchRoutesImpl(\n routeId,\n children,\n routesToUse,\n manifest,\n mapRouteProperties\n );\n\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity and trigger a reflow via `updateState`\n // to re-run memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR) {\n dataRoutes = [...dataRoutes];\n updateState({});\n }\n }\n\n router = {\n get basename() {\n return basename;\n },\n get future() {\n return future;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return routerWindow;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: (to: To) => init.history.createHref(to),\n encodeLocation: (to: To) => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher: deleteFetcherAndUpdateState,\n dispose,\n getBlocker,\n deleteBlocker,\n patchRoutes,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes,\n };\n\n return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nexport const UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface StaticHandlerFutureConfig {\n v7_relativeSplatPath: boolean;\n v7_throwAbortReason: boolean;\n}\n\nexport interface CreateStaticHandlerOptions {\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n}\n\nexport function createStaticHandler(\n routes: AgnosticRouteObject[],\n opts?: CreateStaticHandlerOptions\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n\n let manifest: RouteManifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (opts?.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts?.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Config driven behavior flags\n let future: StaticHandlerFutureConfig = {\n v7_relativeSplatPath: false,\n v7_throwAbortReason: false,\n ...(opts ? opts.future : null),\n };\n\n let dataRoutes = convertRoutesToDataRoutes(\n routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n *\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n * - `opts.skipLoaderErrorBubbling` is an optional parameter that will prevent\n * the bubbling of errors which allows single-fetch-type implementations\n * where the client will handle the bubbling and we may need to return data\n * for the handling route\n */\n async function query(\n request: Request,\n {\n requestContext,\n skipLoaderErrorBubbling,\n unstable_dataStrategy,\n }: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n unstable_dataStrategy?: DataStrategyFunction;\n } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, { method });\n let { matches: methodNotAllowedMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n unstable_dataStrategy || null,\n skipLoaderErrorBubbling === true,\n null\n );\n if (isResponse(result)) {\n return result;\n }\n\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return { location, basename, ...result };\n }\n\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n *\n * - `opts.routeId` allows you to specify the specific route handler to call.\n * If not provided the handler will determine the proper route by matching\n * against `request.url`\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n */\n async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n unstable_dataStrategy,\n }: {\n requestContext?: unknown;\n routeId?: string;\n unstable_dataStrategy?: DataStrategyFunction;\n } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, { method });\n } else if (!matches) {\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let match = routeId\n ? matches.find((m) => m.route.id === routeId)\n : getTargetMatch(matches, location);\n\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId,\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n unstable_dataStrategy || null,\n false,\n match\n );\n\n if (isResponse(result)) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n\n if (result.loaderData) {\n let data = Object.values(result.loaderData)[0];\n if (result.activeDeferreds?.[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n\n return undefined;\n }\n\n async function queryImpl(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null\n ): Promise | Response> {\n invariant(\n request.signal,\n \"query()/queryRoute() requests must contain an AbortController signal\"\n );\n\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(\n request,\n matches,\n routeMatch || getTargetMatch(matches, location),\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch\n );\n return isResponse(result)\n ? result\n : {\n ...result,\n actionData: null,\n actionHeaders: {},\n };\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction for a\n // `queryRoute` call, we throw the `DataStrategyResult` to bail out early\n // and then return or throw the raw Response here accordingly\n if (isDataStrategyResult(e) && isResponse(e.result)) {\n if (e.type === ResultType.error) {\n throw e.result;\n }\n return e.result;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n\n async function submit(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n actionMatch: AgnosticDataRouteMatch,\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n isRouteRequest: boolean\n ): Promise | Response> {\n let result: DataResult;\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id,\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n } else {\n let results = await callDataStrategy(\n \"action\",\n request,\n [actionMatch],\n matches,\n isRouteRequest,\n requestContext,\n unstable_dataStrategy\n );\n result = results[actionMatch.route.id];\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.response.status,\n headers: {\n Location: result.response.headers.get(\"Location\")!,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, { type: \"defer-action\" });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal,\n });\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = skipLoaderErrorBubbling\n ? actionMatch\n : findNearestBoundary(matches, actionMatch.route.id);\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n null,\n [boundaryMatch.route.id, result]\n );\n\n // action status codes take precedence over loader status codes\n return {\n ...context,\n statusCode: isRouteErrorResponse(result.error)\n ? result.error.status\n : result.statusCode != null\n ? result.statusCode\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n null\n );\n\n return {\n ...context,\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionHeaders: result.headers\n ? { [actionMatch.route.id]: result.headers }\n : {},\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null,\n pendingActionResult?: PendingActionResult\n ): Promise<\n | Omit<\n StaticHandlerContext,\n \"location\" | \"basename\" | \"actionData\" | \"actionHeaders\"\n >\n | Response\n > {\n let isRouteRequest = routeMatch != null;\n\n // Short circuit if we have no loaders to run (queryRoute())\n if (\n isRouteRequest &&\n !routeMatch?.route.loader &&\n !routeMatch?.route.lazy\n ) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch?.route.id,\n });\n }\n\n let requestMatches = routeMatch\n ? [routeMatch]\n : pendingActionResult && isErrorResult(pendingActionResult[1])\n ? getLoaderMatchesUntilBoundary(matches, pendingActionResult[0])\n : matches;\n let matchesToLoad = requestMatches.filter(\n (m) => m.route.loader || m.route.lazy\n );\n\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce(\n (acc, m) => Object.assign(acc, { [m.route.id]: null }),\n {}\n ),\n errors:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? {\n [pendingActionResult[0]]: pendingActionResult[1].error,\n }\n : null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await callDataStrategy(\n \"loader\",\n request,\n matchesToLoad,\n matches,\n isRouteRequest,\n requestContext,\n unstable_dataStrategy\n );\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(\n matches,\n results,\n pendingActionResult,\n activeDeferreds,\n skipLoaderErrorBubbling\n );\n\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(\n matchesToLoad.map((match) => match.route.id)\n );\n matches.forEach((match) => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n\n return {\n ...context,\n matches,\n activeDeferreds:\n activeDeferreds.size > 0\n ? Object.fromEntries(activeDeferreds.entries())\n : null,\n };\n }\n\n // Utility wrapper for calling dataStrategy server-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n isRouteRequest: boolean,\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null\n ): Promise> {\n let results = await callDataStrategyImpl(\n unstable_dataStrategy || defaultDataStrategy,\n type,\n null,\n request,\n matchesToLoad,\n matches,\n null,\n manifest,\n mapRouteProperties,\n requestContext\n );\n\n let dataResults: Record = {};\n await Promise.all(\n matches.map(async (match) => {\n if (!(match.route.id in results)) {\n return;\n }\n let result = results[match.route.id];\n if (isRedirectDataStrategyResultResult(result)) {\n let response = result.result as Response;\n // Throw redirects and let the server handle them with an HTTP redirect\n throw normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n match.route.id,\n matches,\n basename,\n future.v7_relativeSplatPath\n );\n }\n if (isResponse(result.result) && isRouteRequest) {\n // For SSR single-route requests, we want to hand Responses back\n // directly without unwrapping\n throw result;\n }\n\n dataResults[match.route.id] =\n await convertDataStrategyResultToDataResult(result);\n })\n );\n return dataResults;\n }\n\n return {\n dataRoutes,\n query,\n queryRoute,\n };\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nexport function getStaticContextFromError(\n routes: AgnosticDataRouteObject[],\n context: StaticHandlerContext,\n error: any\n) {\n let newContext: StaticHandlerContext = {\n ...context,\n statusCode: isRouteErrorResponse(error) ? error.status : 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction throwStaticHandlerAbortedError(\n request: Request,\n isRouteRequest: boolean,\n future: StaticHandlerFutureConfig\n) {\n if (future.v7_throwAbortReason && request.signal.reason !== undefined) {\n throw request.signal.reason;\n }\n\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted: ${request.method} ${request.url}`);\n}\n\nfunction isSubmissionNavigation(\n opts: BaseNavigateOrFetchOptions\n): opts is SubmissionNavigateOptions {\n return (\n opts != null &&\n ((\"formData\" in opts && opts.formData != null) ||\n (\"body\" in opts && opts.body !== undefined))\n );\n}\n\nfunction normalizeTo(\n location: Path,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n prependBasename: boolean,\n to: To | null,\n v7_relativeSplatPath: boolean,\n fromRouteId?: string,\n relative?: RelativeRoutingType\n) {\n let contextualMatches: AgnosticDataRouteMatch[];\n let activeRouteMatch: AgnosticDataRouteMatch | undefined;\n if (fromRouteId) {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n\n // Resolve the relative path\n let path = resolveTo(\n to ? to : \".\",\n getResolveToMatches(contextualMatches, v7_relativeSplatPath),\n stripBasename(location.pathname, basename) || location.pathname,\n relative === \"path\"\n );\n\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n\n // Add an ?index param for matched index routes if we don't already have one\n if (\n (to == null || to === \"\" || to === \".\") &&\n activeRouteMatch &&\n activeRouteMatch.route.index &&\n !hasNakedIndexQuery(path.search)\n ) {\n path.search = path.search\n ? path.search.replace(/^\\?/, \"?index&\")\n : \"?index\";\n }\n\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n return createPath(path);\n}\n\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(\n normalizeFormMethod: boolean,\n isFetcher: boolean,\n path: string,\n opts?: BaseNavigateOrFetchOptions\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponseImpl;\n} {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return { path };\n }\n\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, { method: opts.formMethod }),\n };\n }\n\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, { type: \"invalid-body\" }),\n });\n\n // Create a Submission on non-GET navigations\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = normalizeFormMethod\n ? (rawFormMethod.toUpperCase() as V7_FormMethod)\n : (rawFormMethod.toLowerCase() as FormMethod);\n let formAction = stripHashFromPath(path);\n\n if (opts.body !== undefined) {\n if (opts.formEncType === \"text/plain\") {\n // text only support POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n let text =\n typeof opts.body === \"string\"\n ? opts.body\n : opts.body instanceof FormData ||\n opts.body instanceof URLSearchParams\n ? // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce(\n (acc, [name, value]) => `${acc}${name}=${value}\\n`,\n \"\"\n )\n : String(opts.body);\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json: undefined,\n text,\n },\n };\n } else if (opts.formEncType === \"application/json\") {\n // json only supports POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n try {\n let json =\n typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json,\n text: undefined,\n },\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n\n invariant(\n typeof FormData === \"function\",\n \"FormData is not available in this environment\"\n );\n\n let searchParams: URLSearchParams;\n let formData: FormData;\n\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n\n let submission: Submission = {\n formMethod,\n formAction,\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData,\n json: undefined,\n text: undefined,\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n\n return { path: createPath(parsedPath), submission };\n}\n\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(\n matches: AgnosticDataRouteMatch[],\n boundaryId: string\n) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\n\nfunction getMatchesToLoad(\n history: History,\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n isInitialLoad: boolean,\n skipActionErrorRevalidation: boolean,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: Set,\n deletedFetchers: Set,\n fetchLoadMatches: Map,\n fetchRedirectIds: Set,\n routesToUse: AgnosticDataRouteObject[],\n basename: string | undefined,\n pendingActionResult?: PendingActionResult\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingActionResult\n ? isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : pendingActionResult[1].data\n : undefined;\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[0]\n : undefined;\n let boundaryMatches = boundaryId\n ? getLoaderMatchesUntilBoundary(matches, boundaryId)\n : matches;\n\n // Don't revalidate loaders by default after action 4xx/5xx responses\n // when the flag is enabled. They can still opt-into revalidation via\n // `shouldRevalidate` via `actionResult`\n let actionStatus = pendingActionResult\n ? pendingActionResult[1].statusCode\n : undefined;\n let shouldSkipRevalidation =\n skipActionErrorRevalidation && actionStatus && actionStatus >= 400;\n\n let navigationMatches = boundaryMatches.filter((match, index) => {\n let { route } = match;\n if (route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n\n if (route.loader == null) {\n return false;\n }\n\n if (isInitialLoad) {\n if (typeof route.loader !== \"function\" || route.loader.hydrate) {\n return true;\n }\n return (\n state.loaderData[route.id] === undefined &&\n // Don't re-run if the loader ran and threw an error\n (!state.errors || state.errors[route.id] === undefined)\n );\n }\n\n // Always call the loader on new route instances and pending defer cancellations\n if (\n isNewLoader(state.loaderData, state.matches[index], match) ||\n cancelledDeferredRoutes.some((id) => id === match.route.id)\n ) {\n return true;\n }\n\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n\n return shouldRevalidateLoader(match, {\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params,\n ...submission,\n actionResult,\n actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\n currentUrl.pathname + currentUrl.search ===\n nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search ||\n isNewRouteInstance(currentRouteMatch, nextRouteMatch),\n });\n });\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate:\n // - on initial load (shouldn't be any fetchers then anyway)\n // - if fetcher won't be present in the subsequent render\n // - no longer matches the URL (v7_fetcherPersist=false)\n // - was unmounted but persisted due to v7_fetcherPersist=true\n if (\n isInitialLoad ||\n !matches.some((m) => m.route.id === f.routeId) ||\n deletedFetchers.has(key)\n ) {\n return;\n }\n\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData. Note this is\n // currently only a use-case for Remix HMR where the route tree can change\n // at runtime and remove a route previously loaded via a fetcher\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null,\n });\n return;\n }\n\n // Revalidating fetchers are decoupled from the route matches since they\n // load from a static href. They revalidate based on explicit revalidation\n // (submission, useRevalidator, or X-Remix-Revalidate)\n let fetcher = state.fetchers.get(key);\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n\n let shouldRevalidate = false;\n if (fetchRedirectIds.has(key)) {\n // Never trigger a revalidation of an actively redirecting fetcher\n shouldRevalidate = false;\n } else if (cancelledFetcherLoads.has(key)) {\n // Always mark for revalidation if the fetcher was cancelled\n cancelledFetcherLoads.delete(key);\n shouldRevalidate = true;\n } else if (\n fetcher &&\n fetcher.state !== \"idle\" &&\n fetcher.data === undefined\n ) {\n // If the fetcher hasn't ever completed loading yet, then this isn't a\n // revalidation, it would just be a brand new load if an explicit\n // revalidation is required\n shouldRevalidate = isRevalidationRequired;\n } else {\n // Otherwise fall back on any user-defined shouldRevalidate, defaulting\n // to explicit revalidations only\n shouldRevalidate = shouldRevalidateLoader(fetcherMatch, {\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params,\n ...submission,\n actionResult,\n actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : isRevalidationRequired,\n });\n }\n\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController(),\n });\n }\n });\n\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction isNewLoader(\n currentLoaderData: RouteData,\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n (currentPath != null &&\n currentPath.endsWith(\"*\") &&\n currentMatch.params[\"*\"] !== match.params[\"*\"])\n );\n}\n\nfunction shouldRevalidateLoader(\n loaderMatch: AgnosticDataRouteMatch,\n arg: ShouldRevalidateFunctionArgs\n) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return arg.defaultShouldRevalidate;\n}\n\n/**\n * Idempotent utility to execute patchRoutesOnNavigation() to lazily load route\n * definitions and update the routes/routeManifest\n */\nasync function loadLazyRouteChildren(\n patchRoutesOnNavigationImpl: AgnosticPatchRoutesOnNavigationFunction,\n path: string,\n matches: AgnosticDataRouteMatch[],\n routes: AgnosticDataRouteObject[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n pendingRouteChildren: Map<\n string,\n ReturnType\n >,\n signal: AbortSignal\n) {\n let key = [path, ...matches.map((m) => m.route.id)].join(\"-\");\n try {\n let pending = pendingRouteChildren.get(key);\n if (!pending) {\n pending = patchRoutesOnNavigationImpl({\n path,\n matches,\n patch: (routeId, children) => {\n if (!signal.aborted) {\n patchRoutesImpl(\n routeId,\n children,\n routes,\n manifest,\n mapRouteProperties\n );\n }\n },\n });\n pendingRouteChildren.set(key, pending);\n }\n\n if (pending && isPromise(pending)) {\n await pending;\n }\n } finally {\n pendingRouteChildren.delete(key);\n }\n}\n\nfunction patchRoutesImpl(\n routeId: string | null,\n children: AgnosticRouteObject[],\n routesToUse: AgnosticDataRouteObject[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction\n) {\n if (routeId) {\n let route = manifest[routeId];\n invariant(\n route,\n `No route found to patch children into: routeId = ${routeId}`\n );\n let dataChildren = convertRoutesToDataRoutes(\n children,\n mapRouteProperties,\n [routeId, \"patch\", String(route.children?.length || \"0\")],\n manifest\n );\n if (route.children) {\n route.children.push(...dataChildren);\n } else {\n route.children = dataChildren;\n }\n } else {\n let dataChildren = convertRoutesToDataRoutes(\n children,\n mapRouteProperties,\n [\"patch\", String(routesToUse.length || \"0\")],\n manifest\n );\n routesToUse.push(...dataChildren);\n }\n}\n\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(\n route: AgnosticDataRouteObject,\n mapRouteProperties: MapRoutePropertiesFunction,\n manifest: RouteManifest\n) {\n if (!route.lazy) {\n return;\n }\n\n let lazyRoute = await route.lazy();\n\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates: Record = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue =\n routeToUpdate[lazyRouteProperty as keyof typeof routeToUpdate];\n\n let isPropertyStaticallyDefined =\n staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n\n warning(\n !isPropertyStaticallyDefined,\n `Route \"${routeToUpdate.id}\" has a static property \"${lazyRouteProperty}\" ` +\n `defined but its lazy function is also returning a value for this property. ` +\n `The lazy route property \"${lazyRouteProperty}\" will be ignored.`\n );\n\n if (\n !isPropertyStaticallyDefined &&\n !immutableRouteKeys.has(lazyRouteProperty as ImmutableRouteKey)\n ) {\n routeUpdates[lazyRouteProperty] =\n lazyRoute[lazyRouteProperty as keyof typeof lazyRoute];\n }\n }\n\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to mapRouteProperties\n Object.assign(routeToUpdate, routeUpdates);\n\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, {\n // To keep things framework agnostic, we use the provided\n // `mapRouteProperties` (or wrapped `detectErrorBoundary`) function to\n // set the framework-aware properties (`element`/`hasErrorBoundary`) since\n // the logic will differ between frameworks.\n ...mapRouteProperties(routeToUpdate),\n lazy: undefined,\n });\n}\n\n// Default implementation of `dataStrategy` which fetches all loaders in parallel\nasync function defaultDataStrategy({\n matches,\n}: DataStrategyFunctionArgs): ReturnType {\n let matchesToLoad = matches.filter((m) => m.shouldLoad);\n let results = await Promise.all(matchesToLoad.map((m) => m.resolve()));\n return results.reduce(\n (acc, result, i) =>\n Object.assign(acc, { [matchesToLoad[i].route.id]: result }),\n {}\n );\n}\n\nasync function callDataStrategyImpl(\n dataStrategyImpl: DataStrategyFunction,\n type: \"loader\" | \"action\",\n state: RouterState | null,\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n fetcherKey: string | null,\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n requestContext?: unknown\n): Promise> {\n let loadRouteDefinitionsPromises = matches.map((m) =>\n m.route.lazy\n ? loadLazyRouteModule(m.route, mapRouteProperties, manifest)\n : undefined\n );\n\n let dsMatches = matches.map((match, i) => {\n let loadRoutePromise = loadRouteDefinitionsPromises[i];\n let shouldLoad = matchesToLoad.some((m) => m.route.id === match.route.id);\n // `resolve` encapsulates route.lazy(), executing the loader/action,\n // and mapping return values/thrown errors to a `DataStrategyResult`. Users\n // can pass a callback to take fine-grained control over the execution\n // of the loader/action\n let resolve: DataStrategyMatch[\"resolve\"] = async (handlerOverride) => {\n if (\n handlerOverride &&\n request.method === \"GET\" &&\n (match.route.lazy || match.route.loader)\n ) {\n shouldLoad = true;\n }\n return shouldLoad\n ? callLoaderOrAction(\n type,\n request,\n match,\n loadRoutePromise,\n handlerOverride,\n requestContext\n )\n : Promise.resolve({ type: ResultType.data, result: undefined });\n };\n\n return {\n ...match,\n shouldLoad,\n resolve,\n };\n });\n\n // Send all matches here to allow for a middleware-type implementation.\n // handler will be a no-op for unneeded routes and we filter those results\n // back out below.\n let results = await dataStrategyImpl({\n matches: dsMatches,\n request,\n params: matches[0].params,\n fetcherKey,\n context: requestContext,\n });\n\n // Wait for all routes to load here but 'swallow the error since we want\n // it to bubble up from the `await loadRoutePromise` in `callLoaderOrAction` -\n // called from `match.resolve()`\n try {\n await Promise.all(loadRouteDefinitionsPromises);\n } catch (e) {\n // No-op\n }\n\n return results;\n}\n\n// Default logic for calling a loader/action is the user has no specified a dataStrategy\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n loadRoutePromise: Promise | undefined,\n handlerOverride: Parameters[0],\n staticContext?: unknown\n): Promise {\n let result: DataStrategyResult;\n let onReject: (() => void) | undefined;\n\n let runHandler = (\n handler: AgnosticRouteObject[\"loader\"] | AgnosticRouteObject[\"action\"]\n ): Promise => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n // This will never resolve so safe to type it as Promise to\n // satisfy the function return value\n let abortPromise = new Promise((_, r) => (reject = r));\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n\n let actualHandler = (ctx?: unknown) => {\n if (typeof handler !== \"function\") {\n return Promise.reject(\n new Error(\n `You cannot call the handler for a route which defines a boolean ` +\n `\"${type}\" [routeId: ${match.route.id}]`\n )\n );\n }\n return handler(\n {\n request,\n params: match.params,\n context: staticContext,\n },\n ...(ctx !== undefined ? [ctx] : [])\n );\n };\n\n let handlerPromise: Promise = (async () => {\n try {\n let val = await (handlerOverride\n ? handlerOverride((ctx: unknown) => actualHandler(ctx))\n : actualHandler());\n return { type: \"data\", result: val };\n } catch (e) {\n return { type: \"error\", result: e };\n }\n })();\n\n return Promise.race([handlerPromise, abortPromise]);\n };\n\n try {\n let handler = match.route[type];\n\n // If we have a route.lazy promise, await that first\n if (loadRoutePromise) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let handlerError;\n let [value] = await Promise.all([\n // If the handler throws, don't let it immediately bubble out,\n // since we need to let the lazy() execution finish so we know if this\n // route has a boundary that can handle the error\n runHandler(handler).catch((e) => {\n handlerError = e;\n }),\n loadRoutePromise,\n ]);\n if (handlerError !== undefined) {\n throw handlerError;\n }\n result = value!;\n } else {\n // Load lazy route module, then run any returned handler\n await loadRoutePromise;\n\n handler = match.route[type];\n if (handler) {\n // Handler still runs even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id,\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return { type: ResultType.data, result: undefined };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname,\n });\n } else {\n result = await runHandler(handler);\n }\n\n invariant(\n result.result !== undefined,\n `You defined ${type === \"action\" ? \"an action\" : \"a loader\"} for route ` +\n `\"${match.route.id}\" but didn't return anything from your \\`${type}\\` ` +\n `function. Please return a value or \\`null\\`.`\n );\n } catch (e) {\n // We should already be catching and converting normal handler executions to\n // DataStrategyResults and returning them, so anything that throws here is an\n // unexpected error we still need to wrap\n return { type: ResultType.error, result: e };\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n\n return result;\n}\n\nasync function convertDataStrategyResultToDataResult(\n dataStrategyResult: DataStrategyResult\n): Promise {\n let { result, type } = dataStrategyResult;\n\n if (isResponse(result)) {\n let data: any;\n\n try {\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n if (result.body == null) {\n data = null;\n } else {\n data = await result.json();\n }\n } else {\n data = await result.text();\n }\n } catch (e) {\n return { type: ResultType.error, error: e };\n }\n\n if (type === ResultType.error) {\n return {\n type: ResultType.error,\n error: new ErrorResponseImpl(result.status, result.statusText, data),\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (type === ResultType.error) {\n if (isDataWithResponseInit(result)) {\n if (result.data instanceof Error) {\n return {\n type: ResultType.error,\n error: result.data,\n statusCode: result.init?.status,\n };\n }\n\n // Convert thrown unstable_data() to ErrorResponse instances\n result = new ErrorResponseImpl(\n result.init?.status || 500,\n undefined,\n result.data\n );\n }\n return {\n type: ResultType.error,\n error: result,\n statusCode: isRouteErrorResponse(result) ? result.status : undefined,\n };\n }\n\n if (isDeferredData(result)) {\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: result.init?.status,\n headers: result.init?.headers && new Headers(result.init.headers),\n };\n }\n\n if (isDataWithResponseInit(result)) {\n return {\n type: ResultType.data,\n data: result.data,\n statusCode: result.init?.status,\n headers: result.init?.headers\n ? new Headers(result.init.headers)\n : undefined,\n };\n }\n\n return { type: ResultType.data, data: result };\n}\n\n// Support relative routing in internal redirects\nfunction normalizeRelativeRoutingRedirectResponse(\n response: Response,\n request: Request,\n routeId: string,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n v7_relativeSplatPath: boolean\n) {\n let location = response.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n let trimmedMatches = matches.slice(\n 0,\n matches.findIndex((m) => m.route.id === routeId) + 1\n );\n location = normalizeTo(\n new URL(request.url),\n trimmedMatches,\n basename,\n true,\n location,\n v7_relativeSplatPath\n );\n response.headers.set(\"Location\", location);\n }\n\n return response;\n}\n\nfunction normalizeRedirectLocation(\n location: string,\n currentUrl: URL,\n basename: string\n): string {\n if (ABSOLUTE_URL_REGEX.test(location)) {\n // Strip off the protocol+origin for same-origin + same-basename absolute redirects\n let normalizedLocation = location;\n let url = normalizedLocation.startsWith(\"//\")\n ? new URL(currentUrl.protocol + normalizedLocation)\n : new URL(normalizedLocation);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n return url.pathname + url.search + url.hash;\n }\n }\n return location;\n}\n\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(\n history: History,\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n\n if (formEncType === \"application/json\") {\n init.headers = new Headers({ \"Content-Type\": formEncType });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.text;\n } else if (\n formEncType === \"application/x-www-form-urlencoded\" &&\n submission.formData\n ) {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.formData;\n }\n }\n\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n\n return searchParams;\n}\n\nfunction convertSearchParamsToFormData(\n searchParams: URLSearchParams\n): FormData {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n results: Record,\n pendingActionResult: PendingActionResult | undefined,\n activeDeferreds: Map,\n skipLoaderErrorBubbling: boolean\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record;\n} {\n // Fill in loaderData/errors from our loaders\n let loaderData: RouterState[\"loaderData\"] = {};\n let errors: RouterState[\"errors\"] | null = null;\n let statusCode: number | undefined;\n let foundError = false;\n let loaderHeaders: Record = {};\n let pendingError =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : undefined;\n\n // Process loader results into state.loaderData/state.errors\n matches.forEach((match) => {\n if (!(match.route.id in results)) {\n return;\n }\n let id = match.route.id;\n let result = results[id];\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError !== undefined) {\n error = pendingError;\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n if (skipLoaderErrorBubbling) {\n errors[id] = error;\n } else {\n // Look upwards from the matched route for the closest ancestor error\n // boundary, defaulting to the root match. Prefer higher error values\n // if lower errors bubble to the same boundary\n let boundaryMatch = findNearestBoundary(matches, id);\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n }\n\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error)\n ? result.error.status\n : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (\n result.statusCode != null &&\n result.statusCode !== 200 &&\n !foundError\n ) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n loaderData[id] = result.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (result.statusCode && result.statusCode !== 200 && !foundError) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n }\n });\n\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError !== undefined && pendingActionResult) {\n errors = { [pendingActionResult[0]]: pendingError };\n loaderData[pendingActionResult[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: Record,\n pendingActionResult: PendingActionResult | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: Record,\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n results,\n pendingActionResult,\n activeDeferreds,\n false // This method is only called client side so we always want to bubble\n );\n\n // Process results from our revalidating fetchers\n revalidatingFetchers.forEach((rf) => {\n let { key, match, controller } = rf;\n let result = fetcherResults[key];\n invariant(result, \"Did not find corresponding fetcher result\");\n\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n return;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match?.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...errors,\n [boundaryMatch.route.id]: result.error,\n };\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n }\n });\n\n return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n loaderData: RouteData,\n newLoaderData: RouteData,\n matches: AgnosticDataRouteMatch[],\n errors: RouteData | null | undefined\n): RouteData {\n let mergedLoaderData = { ...newLoaderData };\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n } else {\n // No-op - this is so we ignore existing data if we have a key in the\n // incoming object with an undefined value, which is how we unset a prior\n // loaderData if we encounter a loader error\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n\nfunction getActionDataForCommit(\n pendingActionResult: PendingActionResult | undefined\n) {\n if (!pendingActionResult) {\n return {};\n }\n return isErrorResult(pendingActionResult[1])\n ? {\n // Clear out prior actionData on errors\n actionData: {},\n }\n : {\n actionData: {\n [pendingActionResult[0]]: pendingActionResult[1].data,\n },\n };\n}\n\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(\n matches: AgnosticDataRouteMatch[],\n routeId?: string\n): AgnosticDataRouteMatch {\n let eligibleMatches = routeId\n ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n : [...matches];\n return (\n eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n matches[0]\n );\n}\n\nfunction getShortCircuitMatches(routes: AgnosticDataRouteObject[]): {\n matches: AgnosticDataRouteMatch[];\n route: AgnosticDataRouteObject;\n} {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route =\n routes.length === 1\n ? routes[0]\n : routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n id: `__shim-error-route__`,\n };\n\n return {\n matches: [\n {\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route,\n },\n ],\n route,\n };\n}\n\nfunction getInternalRouterError(\n status: number,\n {\n pathname,\n routeId,\n method,\n type,\n message,\n }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n type?: \"defer-action\" | \"invalid-body\" | \"route-discovery\";\n message?: string;\n } = {}\n) {\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n\n if (status === 400) {\n statusText = \"Bad Request\";\n if (type === \"route-discovery\") {\n errorMessage =\n `Unable to match URL \"${pathname}\" - the \\`unstable_patchRoutesOnNavigation()\\` ` +\n `function threw the following error:\\n${message}`;\n } else if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method} request to \"${pathname}\" but ` +\n `did not provide a \\`loader\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n } else if (type === \"invalid-body\") {\n errorMessage = \"Unable to encode submission body\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = `Route \"${routeId}\" does not match URL \"${pathname}\"`;\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = `No route matches URL \"${pathname}\"`;\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method.toUpperCase()} request to \"${pathname}\" but ` +\n `did not provide an \\`action\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (method) {\n errorMessage = `Invalid request method \"${method.toUpperCase()}\"`;\n }\n }\n\n return new ErrorResponseImpl(\n status || 500,\n statusText,\n new Error(errorMessage),\n true\n );\n}\n\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(\n results: Record\n): { key: string; result: RedirectResult } | undefined {\n let entries = Object.entries(results);\n for (let i = entries.length - 1; i >= 0; i--) {\n let [key, result] = entries[i];\n if (isRedirectResult(result)) {\n return { key, result };\n }\n }\n}\n\nfunction stripHashFromPath(path: To) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath({ ...parsedPath, hash: \"\" });\n}\n\nfunction isHashChangeOnly(a: Location, b: Location): boolean {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n\n if (a.hash === \"\") {\n // /page -> /page#hash\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n // /page#hash -> /page#hash\n return true;\n } else if (b.hash !== \"\") {\n // /page#hash -> /page#other\n return true;\n }\n\n // If the hash is removed the browser will re-perform a request to the server\n // /page#hash -> /page\n return false;\n}\n\nfunction isPromise(val: unknown): val is Promise {\n return typeof val === \"object\" && val != null && \"then\" in val;\n}\n\nfunction isDataStrategyResult(result: unknown): result is DataStrategyResult {\n return (\n result != null &&\n typeof result === \"object\" &&\n \"type\" in result &&\n \"result\" in result &&\n (result.type === ResultType.data || result.type === ResultType.error)\n );\n}\n\nfunction isRedirectDataStrategyResultResult(result: DataStrategyResult) {\n return (\n isResponse(result.result) && redirectStatusCodes.has(result.result.status)\n );\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nexport function isDataWithResponseInit(\n value: any\n): value is DataWithResponseInit {\n return (\n typeof value === \"object\" &&\n value != null &&\n \"type\" in value &&\n \"data\" in value &&\n \"init\" in value &&\n value.type === \"DataWithResponseInit\"\n );\n}\n\nexport function isDeferredData(value: any): value is DeferredData {\n let deferred: DeferredData = value;\n return (\n deferred &&\n typeof deferred === \"object\" &&\n typeof deferred.data === \"object\" &&\n typeof deferred.subscribe === \"function\" &&\n typeof deferred.cancel === \"function\" &&\n typeof deferred.resolveData === \"function\"\n );\n}\n\nfunction isResponse(value: any): value is Response {\n return (\n value != null &&\n typeof value.status === \"number\" &&\n typeof value.statusText === \"string\" &&\n typeof value.headers === \"object\" &&\n typeof value.body !== \"undefined\"\n );\n}\n\nfunction isRedirectResponse(result: any): result is Response {\n if (!isResponse(result)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isValidMethod(method: string): method is FormMethod | V7_FormMethod {\n return validRequestMethods.has(method.toLowerCase() as FormMethod);\n}\n\nfunction isMutationMethod(\n method: string\n): method is MutationFormMethod | V7_MutationFormMethod {\n return validMutationMethods.has(method.toLowerCase() as MutationFormMethod);\n}\n\nasync function resolveNavigationDeferredResults(\n matches: (AgnosticDataRouteMatch | null)[],\n results: Record,\n signal: AbortSignal,\n currentMatches: AgnosticDataRouteMatch[],\n currentLoaderData: RouteData\n) {\n let entries = Object.entries(results);\n for (let index = 0; index < entries.length; index++) {\n let [routeId, result] = entries[index];\n let match = matches.find((m) => m?.route.id === routeId);\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n let currentMatch = currentMatches.find(\n (m) => m.route.id === match!.route.id\n );\n let isRevalidatingLoader =\n currentMatch != null &&\n !isNewRouteInstance(currentMatch, match) &&\n (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && isRevalidatingLoader) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n await resolveDeferredData(result, signal, false).then((result) => {\n if (result) {\n results[routeId] = result;\n }\n });\n }\n }\n}\n\nasync function resolveFetcherDeferredResults(\n matches: (AgnosticDataRouteMatch | null)[],\n results: Record,\n revalidatingFetchers: RevalidatingFetcher[]\n) {\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let { key, routeId, controller } = revalidatingFetchers[index];\n let result = results[key];\n let match = matches.find((m) => m?.route.id === routeId);\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n if (isDeferredResult(result)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n invariant(\n controller,\n \"Expected an AbortController for revalidating fetcher deferred result\"\n );\n await resolveDeferredData(result, controller.signal, true).then(\n (result) => {\n if (result) {\n results[key] = result;\n }\n }\n );\n }\n }\n}\n\nasync function resolveDeferredData(\n result: DeferredResult,\n signal: AbortSignal,\n unwrap = false\n): Promise {\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData,\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e,\n };\n }\n }\n\n return {\n type: ResultType.data,\n data: result.deferredData.data,\n };\n}\n\nfunction hasNakedIndexQuery(search: string): boolean {\n return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\n\nfunction getTargetMatch(\n matches: AgnosticDataRouteMatch[],\n location: Location | string\n) {\n let search =\n typeof location === \"string\" ? parsePath(location).search : location.search;\n if (\n matches[matches.length - 1].route.index &&\n hasNakedIndexQuery(search || \"\")\n ) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\n\nfunction getSubmissionFromNavigation(\n navigation: Navigation\n): Submission | undefined {\n let { formMethod, formAction, formEncType, text, formData, json } =\n navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\n\n if (text != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json: undefined,\n text,\n };\n } else if (formData != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData,\n json: undefined,\n text: undefined,\n };\n } else if (json !== undefined) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json,\n text: undefined,\n };\n }\n}\n\nfunction getLoadingNavigation(\n location: Location,\n submission?: Submission\n): NavigationStates[\"Loading\"] {\n if (submission) {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n } else {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n };\n return navigation;\n }\n}\n\nfunction getSubmittingNavigation(\n location: Location,\n submission: Submission\n): NavigationStates[\"Submitting\"] {\n let navigation: NavigationStates[\"Submitting\"] = {\n state: \"submitting\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n}\n\nfunction getLoadingFetcher(\n submission?: Submission,\n data?: Fetcher[\"data\"]\n): FetcherStates[\"Loading\"] {\n if (submission) {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data,\n };\n return fetcher;\n } else {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n }\n}\n\nfunction getSubmittingFetcher(\n submission: Submission,\n existingFetcher?: Fetcher\n): FetcherStates[\"Submitting\"] {\n let fetcher: FetcherStates[\"Submitting\"] = {\n state: \"submitting\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: existingFetcher ? existingFetcher.data : undefined,\n };\n return fetcher;\n}\n\nfunction getDoneFetcher(data: Fetcher[\"data\"]): FetcherStates[\"Idle\"] {\n let fetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n}\n\nfunction restoreAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n try {\n let sessionPositions = _window.sessionStorage.getItem(\n TRANSITIONS_STORAGE_KEY\n );\n if (sessionPositions) {\n let json = JSON.parse(sessionPositions);\n for (let [k, v] of Object.entries(json || {})) {\n if (v && Array.isArray(v)) {\n transitions.set(k, new Set(v || []));\n }\n }\n }\n } catch (e) {\n // no-op, use default empty object\n }\n}\n\nfunction persistAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n if (transitions.size > 0) {\n let json: Record = {};\n for (let [k, v] of transitions) {\n json[k] = [...v];\n }\n try {\n _window.sessionStorage.setItem(\n TRANSITIONS_STORAGE_KEY,\n JSON.stringify(json)\n );\n } catch (error) {\n warning(\n false,\n `Failed to save applied view transitions in sessionStorage (${error}).`\n );\n }\n }\n}\n//#endregion\n","import * as React from \"react\";\nimport type {\n AgnosticIndexRouteObject,\n AgnosticNonIndexRouteObject,\n AgnosticRouteMatch,\n History,\n LazyRouteFunction,\n Location,\n Action as NavigationType,\n RelativeRoutingType,\n Router,\n StaticHandlerContext,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nexport interface IndexRouteObject {\n caseSensitive?: AgnosticIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticIndexRouteObject[\"path\"];\n id?: AgnosticIndexRouteObject[\"id\"];\n loader?: AgnosticIndexRouteObject[\"loader\"];\n action?: AgnosticIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticIndexRouteObject[\"handle\"];\n index: true;\n children?: undefined;\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport interface NonIndexRouteObject {\n caseSensitive?: AgnosticNonIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticNonIndexRouteObject[\"path\"];\n id?: AgnosticNonIndexRouteObject[\"id\"];\n loader?: AgnosticNonIndexRouteObject[\"loader\"];\n action?: AgnosticNonIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticNonIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticNonIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticNonIndexRouteObject[\"handle\"];\n index?: false;\n children?: RouteObject[];\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport type RouteObject = IndexRouteObject | NonIndexRouteObject;\n\nexport type DataRouteObject = RouteObject & {\n children?: DataRouteObject[];\n id: string;\n};\n\nexport interface RouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends RouteObject = RouteObject\n> extends AgnosticRouteMatch {}\n\nexport interface DataRouteMatch extends RouteMatch {}\n\nexport interface DataRouterContextObject\n // Omit `future` since those can be pulled from the `router`\n // `NavigationContext` needs future since it doesn't have a `router` in all cases\n extends Omit {\n router: Router;\n staticContext?: StaticHandlerContext;\n}\n\nexport const DataRouterContext =\n React.createContext(null);\nif (__DEV__) {\n DataRouterContext.displayName = \"DataRouter\";\n}\n\nexport const DataRouterStateContext = React.createContext<\n Router[\"state\"] | null\n>(null);\nif (__DEV__) {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\n\nexport const AwaitContext = React.createContext(null);\nif (__DEV__) {\n AwaitContext.displayName = \"Await\";\n}\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n unstable_viewTransition?: boolean;\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level `` API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport interface Navigator {\n createHref: History[\"createHref\"];\n // Optional for backwards-compat with Router/HistoryRouter usage (edge case)\n encodeLocation?: History[\"encodeLocation\"];\n go: History[\"go\"];\n push(to: To, state?: any, opts?: NavigateOptions): void;\n replace(to: To, state?: any, opts?: NavigateOptions): void;\n}\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n future: {\n v7_relativeSplatPath: boolean;\n };\n}\n\nexport const NavigationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\nexport interface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n isDataRoute: boolean;\n}\n\nexport const RouteContext = React.createContext({\n outlet: null,\n matches: [],\n isDataRoute: false,\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n\nexport const RouteErrorContext = React.createContext(null);\n\nif (__DEV__) {\n RouteErrorContext.displayName = \"RouteError\";\n}\n","import * as React from \"react\";\nimport type {\n Blocker,\n BlockerFunction,\n Location,\n ParamParseKey,\n Params,\n Path,\n PathMatch,\n PathPattern,\n RelativeRoutingType,\n Router as RemixRouter,\n RevalidationState,\n To,\n UIMatch,\n} from \"@remix-run/router\";\nimport {\n IDLE_BLOCKER,\n Action as NavigationType,\n UNSAFE_convertRouteMatchToUiMatch as convertRouteMatchToUiMatch,\n UNSAFE_decodePath as decodePath,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n isRouteErrorResponse,\n joinPaths,\n matchPath,\n matchRoutes,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n DataRouteMatch,\n NavigateOptions,\n RouteContextObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n RouteErrorContext,\n} from \"./context\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/hooks/use-href\n */\nexport function useHref(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to, { relative });\n\n let joinedPathname = pathname;\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n if (basename !== \"/\") {\n joinedPathname =\n pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a ``.\n *\n * @see https://reactrouter.com/hooks/use-in-router-context\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/hooks/use-location\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/hooks/use-navigation-type\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * ``.\n *\n * @see https://reactrouter.com/hooks/use-match\n */\nexport function useMatch<\n ParamKey extends ParamParseKey,\n Path extends string\n>(pattern: PathPattern | Path): PathMatch | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath(pattern, decodePath(pathname)),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\nconst navigateEffectWarning =\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`;\n\n// Mute warnings for calls to useNavigate in SSR environments\nfunction useIsomorphicLayoutEffect(\n cb: Parameters[0]\n) {\n let isStatic = React.useContext(NavigationContext).static;\n if (!isStatic) {\n // We should be able to get rid of this once react 18.3 is released\n // See: https://github.com/facebook/react/pull/26395\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(cb);\n }\n}\n\n/**\n * Returns an imperative method for changing the location. Used by ``s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/hooks/use-navigate\n */\nexport function useNavigate(): NavigateFunction {\n let { isDataRoute } = React.useContext(RouteContext);\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\n\nfunction useNavigateUnstable(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a component.`\n );\n\n let dataRouterContext = React.useContext(DataRouterContext);\n let { basename, future, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our history listener yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n options.relative === \"path\"\n );\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history (but only if we're not in a data router,\n // otherwise it'll prepend the basename inside of the router).\n // If this is a root navigation, then we navigate to the raw basename\n // which allows the basename to have full control over the presence of a\n // trailing slash on root links\n if (dataRouterContext == null && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\"\n ? basename\n : joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state,\n options\n );\n },\n [\n basename,\n navigator,\n routePathnamesJson,\n locationPathname,\n dataRouterContext,\n ]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/hooks/use-outlet-context\n */\nexport function useOutletContext(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by `` to render child routes.\n *\n * @see https://reactrouter.com/hooks/use-outlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n {outlet}\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/hooks/use-params\n */\nexport function useParams<\n ParamsOrKey extends string | Record = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params : Partial\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/hooks/use-resolved-path\n */\nexport function useResolvedPath(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): Path {\n let { future } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n return React.useMemo(\n () =>\n resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n relative === \"path\"\n ),\n [to, routePathnamesJson, locationPathname, relative]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an `` to render their child route's\n * element.\n *\n * @see https://reactrouter.com/hooks/use-routes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial | string\n): React.ReactElement | null {\n return useRoutesImpl(routes, locationArg);\n}\n\n// Internal implementation with accept optional param for RouterProvider usage\nexport function useRoutesImpl(\n routes: RouteObject[],\n locationArg?: Partial | string,\n dataRouterState?: RemixRouter[\"state\"],\n future?: RemixRouter[\"future\"]\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a component.`\n );\n\n let { navigator } = React.useContext(NavigationContext);\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under ) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent to .`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n\n let remainingPathname = pathname;\n if (parentPathnameBase !== \"/\") {\n // Determine the remaining pathname by removing the # of URL segments the\n // parentPathnameBase has, instead of removing based on character count.\n // This is because we can't guarantee that incoming/outgoing encodings/\n // decodings will match exactly.\n // We decode paths before matching on a per-segment basis with\n // decodeURIComponent(), but we re-encode pathnames via `new URL()` so they\n // match what `window.location.pathname` would reflect. Those don't 100%\n // align when it comes to encoded URI characters such as % and &.\n //\n // So we may end up with:\n // pathname: \"/descendant/a%25b/match\"\n // parentPathnameBase: \"/descendant/a%b\"\n //\n // And the direct substring removal approach won't work :/\n let parentSegments = parentPathnameBase.replace(/^\\//, \"\").split(\"/\");\n let segments = pathname.replace(/^\\//, \"\").split(\"/\");\n remainingPathname = \"/\" + segments.slice(parentSegments.length).join(\"/\");\n }\n\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined ||\n matches[matches.length - 1].route.Component !== undefined ||\n matches[matches.length - 1].route.lazy !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" ` +\n `does not have an element or Component. This means it will render an with a ` +\n `null value by default resulting in an \"empty\" page.`\n );\n }\n\n let renderedMatches = _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathname).pathname\n : match.pathname,\n ]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathnameBase).pathname\n : match.pathnameBase,\n ]),\n })\n ),\n parentMatches,\n dataRouterState,\n future\n );\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return (\n \n {renderedMatches}\n \n );\n }\n\n return renderedMatches;\n}\n\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error)\n ? `${error.status} ${error.statusText}`\n : error instanceof Error\n ? error.message\n : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = { padding: \"0.5rem\", backgroundColor: lightgrey };\n let codeStyles = { padding: \"2px 4px\", backgroundColor: lightgrey };\n\n let devInfo = null;\n if (__DEV__) {\n console.error(\n \"Error handled by React Router default ErrorBoundary:\",\n error\n );\n\n devInfo = (\n <>\n

      💿 Hey developer 👋

      \n

      \n You can provide a way better UX than this when your app throws errors\n by providing your own ErrorBoundary or{\" \"}\n errorElement prop on your route.\n

      \n \n );\n }\n\n return (\n <>\n

      Unexpected Application Error!

      \n

      {message}

      \n {stack ?
      {stack}
      : null}\n {devInfo}\n \n );\n}\n\nconst defaultErrorElement = ;\n\ntype RenderErrorBoundaryProps = React.PropsWithChildren<{\n location: Location;\n revalidation: RevalidationState;\n error: any;\n component: React.ReactNode;\n routeContext: RouteContextObject;\n}>;\n\ntype RenderErrorBoundaryState = {\n location: Location;\n revalidation: RevalidationState;\n error: any;\n};\n\nexport class RenderErrorBoundary extends React.Component<\n RenderErrorBoundaryProps,\n RenderErrorBoundaryState\n> {\n constructor(props: RenderErrorBoundaryProps) {\n super(props);\n this.state = {\n location: props.location,\n revalidation: props.revalidation,\n error: props.error,\n };\n }\n\n static getDerivedStateFromError(error: any) {\n return { error: error };\n }\n\n static getDerivedStateFromProps(\n props: RenderErrorBoundaryProps,\n state: RenderErrorBoundaryState\n ) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application, that will have no effect--the error page continues to display.\n // This gives us a mechanism to recover from the error when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (\n state.location !== props.location ||\n (state.revalidation !== \"idle\" && props.revalidation === \"idle\")\n ) {\n return {\n error: props.error,\n location: props.location,\n revalidation: props.revalidation,\n };\n }\n\n // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n return {\n error: props.error !== undefined ? props.error : state.error,\n location: state.location,\n revalidation: props.revalidation || state.revalidation,\n };\n }\n\n componentDidCatch(error: any, errorInfo: any) {\n console.error(\n \"React Router caught the following error during render\",\n error,\n errorInfo\n );\n }\n\n render() {\n return this.state.error !== undefined ? (\n \n \n \n ) : (\n this.props.children\n );\n }\n}\n\ninterface RenderedRouteProps {\n routeContext: RouteContextObject;\n match: RouteMatch;\n children: React.ReactNode | null;\n}\n\nfunction RenderedRoute({ routeContext, match, children }: RenderedRouteProps) {\n let dataRouterContext = React.useContext(DataRouterContext);\n\n // Track how deep we got in our render pass to emulate SSR componentDidCatch\n // in a DataStaticRouter\n if (\n dataRouterContext &&\n dataRouterContext.static &&\n dataRouterContext.staticContext &&\n (match.route.errorElement || match.route.ErrorBoundary)\n ) {\n dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n }\n\n return (\n \n {children}\n \n );\n}\n\nexport function _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = [],\n dataRouterState: RemixRouter[\"state\"] | null = null,\n future: RemixRouter[\"future\"] | null = null\n): React.ReactElement | null {\n if (matches == null) {\n if (!dataRouterState) {\n return null;\n }\n\n if (dataRouterState.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches as DataRouteMatch[];\n } else if (\n future?.v7_partialHydration &&\n parentMatches.length === 0 &&\n !dataRouterState.initialized &&\n dataRouterState.matches.length > 0\n ) {\n // Don't bail if we're initializing with partial hydration and we have\n // router matches. That means we're actively running `patchRoutesOnNavigation`\n // so we should render down the partial matches to the appropriate\n // `HydrateFallback`. We only do this if `parentMatches` is empty so it\n // only impacts the root matches for `RouterProvider` and no descendant\n // ``\n matches = dataRouterState.matches as DataRouteMatch[];\n } else {\n return null;\n }\n }\n\n let renderedMatches = matches;\n\n // If we have data errors, trim matches to the highest error boundary\n let errors = dataRouterState?.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(\n (m) => m.route.id && errors?.[m.route.id] !== undefined\n );\n invariant(\n errorIndex >= 0,\n `Could not find a matching route for errors on route IDs: ${Object.keys(\n errors\n ).join(\",\")}`\n );\n renderedMatches = renderedMatches.slice(\n 0,\n Math.min(renderedMatches.length, errorIndex + 1)\n );\n }\n\n // If we're in a partial hydration mode, detect if we need to render down to\n // a given HydrateFallback while we load the rest of the hydration data\n let renderFallback = false;\n let fallbackIndex = -1;\n if (dataRouterState && future && future.v7_partialHydration) {\n for (let i = 0; i < renderedMatches.length; i++) {\n let match = renderedMatches[i];\n // Track the deepest fallback up until the first route without data\n if (match.route.HydrateFallback || match.route.hydrateFallbackElement) {\n fallbackIndex = i;\n }\n\n if (match.route.id) {\n let { loaderData, errors } = dataRouterState;\n let needsToRunLoader =\n match.route.loader &&\n loaderData[match.route.id] === undefined &&\n (!errors || errors[match.route.id] === undefined);\n if (match.route.lazy || needsToRunLoader) {\n // We found the first route that's not ready to render (waiting on\n // lazy, or has a loader that hasn't run yet). Flag that we need to\n // render a fallback and render up until the appropriate fallback\n renderFallback = true;\n if (fallbackIndex >= 0) {\n renderedMatches = renderedMatches.slice(0, fallbackIndex + 1);\n } else {\n renderedMatches = [renderedMatches[0]];\n }\n break;\n }\n }\n }\n }\n\n return renderedMatches.reduceRight((outlet, match, index) => {\n // Only data routers handle errors/fallbacks\n let error: any;\n let shouldRenderHydrateFallback = false;\n let errorElement: React.ReactNode | null = null;\n let hydrateFallbackElement: React.ReactNode | null = null;\n if (dataRouterState) {\n error = errors && match.route.id ? errors[match.route.id] : undefined;\n errorElement = match.route.errorElement || defaultErrorElement;\n\n if (renderFallback) {\n if (fallbackIndex < 0 && index === 0) {\n warningOnce(\n \"route-fallback\",\n false,\n \"No `HydrateFallback` element provided to render during initial hydration\"\n );\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = null;\n } else if (fallbackIndex === index) {\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = match.route.hydrateFallbackElement || null;\n }\n }\n }\n\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n let getChildren = () => {\n let children: React.ReactNode;\n if (error) {\n children = errorElement;\n } else if (shouldRenderHydrateFallback) {\n children = hydrateFallbackElement;\n } else if (match.route.Component) {\n // Note: This is a de-optimized path since React won't re-use the\n // ReactElement since it's identity changes with each new\n // React.createElement call. We keep this so folks can use\n // `` in `` but generally `Component`\n // usage is only advised in `RouterProvider` when we can convert it to\n // `element` ahead of time.\n children = ;\n } else if (match.route.element) {\n children = match.route.element;\n } else {\n children = outlet;\n }\n return (\n \n );\n };\n // Only wrap in an error boundary within data router usages when we have an\n // ErrorBoundary/errorElement on this route. Otherwise let it bubble up to\n // an ancestor ErrorBoundary/errorElement\n return dataRouterState &&\n (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? (\n \n ) : (\n getChildren()\n );\n }, null as React.ReactElement | null);\n}\n\nenum DataRouterHook {\n UseBlocker = \"useBlocker\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n}\n\nenum DataRouterStateHook {\n UseBlocker = \"useBlocker\",\n UseLoaderData = \"useLoaderData\",\n UseActionData = \"useActionData\",\n UseRouteError = \"useRouteError\",\n UseNavigation = \"useNavigation\",\n UseRouteLoaderData = \"useRouteLoaderData\",\n UseMatches = \"useMatches\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n UseRouteId = \"useRouteId\",\n}\n\nfunction getDataRouterConsoleError(\n hookName: DataRouterHook | DataRouterStateHook\n) {\n return `${hookName} must be used within a data router. See https://reactrouter.com/routers/picking-a-router.`;\n}\n\nfunction useDataRouterContext(hookName: DataRouterHook) {\n let ctx = React.useContext(DataRouterContext);\n invariant(ctx, getDataRouterConsoleError(hookName));\n return ctx;\n}\n\nfunction useDataRouterState(hookName: DataRouterStateHook) {\n let state = React.useContext(DataRouterStateContext);\n invariant(state, getDataRouterConsoleError(hookName));\n return state;\n}\n\nfunction useRouteContext(hookName: DataRouterStateHook) {\n let route = React.useContext(RouteContext);\n invariant(route, getDataRouterConsoleError(hookName));\n return route;\n}\n\n// Internal version with hookName-aware debugging\nfunction useCurrentRouteId(hookName: DataRouterStateHook) {\n let route = useRouteContext(hookName);\n let thisRoute = route.matches[route.matches.length - 1];\n invariant(\n thisRoute.route.id,\n `${hookName} can only be used on routes that contain a unique \"id\"`\n );\n return thisRoute.route.id;\n}\n\n/**\n * Returns the ID for the nearest contextual route\n */\nexport function useRouteId() {\n return useCurrentRouteId(DataRouterStateHook.UseRouteId);\n}\n\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\nexport function useNavigation() {\n let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n return state.navigation;\n}\n\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\nexport function useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return React.useMemo(\n () => ({\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation,\n }),\n [dataRouterContext.router.revalidate, state.revalidation]\n );\n}\n\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\nexport function useMatches(): UIMatch[] {\n let { matches, loaderData } = useDataRouterState(\n DataRouterStateHook.UseMatches\n );\n return React.useMemo(\n () => matches.map((m) => convertRouteMatchToUiMatch(m, loaderData)),\n [matches, loaderData]\n );\n}\n\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\nexport function useLoaderData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n\n if (state.errors && state.errors[routeId] != null) {\n console.error(\n `You cannot \\`useLoaderData\\` in an errorElement (routeId: ${routeId})`\n );\n return undefined;\n }\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the loaderData for the given routeId\n */\nexport function useRouteLoaderData(routeId: string): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the action data for the nearest ancestor Route action\n */\nexport function useActionData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseActionData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n return state.actionData ? state.actionData[routeId] : undefined;\n}\n\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error. This is intended to be called from your\n * ErrorBoundary/errorElement to display a proper error message.\n */\nexport function useRouteError(): unknown {\n let error = React.useContext(RouteErrorContext);\n let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError);\n\n // If this was a render error, we put it in a RouteError context inside\n // of RenderErrorBoundary\n if (error !== undefined) {\n return error;\n }\n\n // Otherwise look for errors from our data router state\n return state.errors?.[routeId];\n}\n\n/**\n * Returns the happy-path data from the nearest ancestor `` value\n */\nexport function useAsyncValue(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._data;\n}\n\n/**\n * Returns the error from the nearest ancestor `` value\n */\nexport function useAsyncError(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._error;\n}\n\nlet blockerId = 0;\n\n/**\n * Allow the application to block navigations within the SPA and present the\n * user a confirmation dialog to confirm the navigation. Mostly used to avoid\n * using half-filled form data. This does not handle hard-reloads or\n * cross-origin navigations.\n */\nexport function useBlocker(shouldBlock: boolean | BlockerFunction): Blocker {\n let { router, basename } = useDataRouterContext(DataRouterHook.UseBlocker);\n let state = useDataRouterState(DataRouterStateHook.UseBlocker);\n\n let [blockerKey, setBlockerKey] = React.useState(\"\");\n let blockerFunction = React.useCallback(\n (arg) => {\n if (typeof shouldBlock !== \"function\") {\n return !!shouldBlock;\n }\n if (basename === \"/\") {\n return shouldBlock(arg);\n }\n\n // If they provided us a function and we've got an active basename, strip\n // it from the locations we expose to the user to match the behavior of\n // useLocation\n let { currentLocation, nextLocation, historyAction } = arg;\n return shouldBlock({\n currentLocation: {\n ...currentLocation,\n pathname:\n stripBasename(currentLocation.pathname, basename) ||\n currentLocation.pathname,\n },\n nextLocation: {\n ...nextLocation,\n pathname:\n stripBasename(nextLocation.pathname, basename) ||\n nextLocation.pathname,\n },\n historyAction,\n });\n },\n [basename, shouldBlock]\n );\n\n // This effect is in charge of blocker key assignment and deletion (which is\n // tightly coupled to the key)\n React.useEffect(() => {\n let key = String(++blockerId);\n setBlockerKey(key);\n return () => router.deleteBlocker(key);\n }, [router]);\n\n // This effect handles assigning the blockerFunction. This is to handle\n // unstable blocker function identities, and happens only after the prior\n // effect so we don't get an orphaned blockerFunction in the router with a\n // key of \"\". Until then we just have the IDLE_BLOCKER.\n React.useEffect(() => {\n if (blockerKey !== \"\") {\n router.getBlocker(blockerKey, blockerFunction);\n }\n }, [router, blockerKey, blockerFunction]);\n\n // Prefer the blocker from `state` not `router.state` since DataRouterContext\n // is memoized so this ensures we update on blocker state updates\n return blockerKey && state.blockers.has(blockerKey)\n ? state.blockers.get(blockerKey)!\n : IDLE_BLOCKER;\n}\n\n/**\n * Stable version of useNavigate that is used when we are in the context of\n * a RouterProvider.\n */\nfunction useNavigateStable(): NavigateFunction {\n let { router } = useDataRouterContext(DataRouterHook.UseNavigateStable);\n let id = useCurrentRouteId(DataRouterStateHook.UseNavigateStable);\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our router subscriber yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n router.navigate(to);\n } else {\n router.navigate(to, { fromRouteId: id, ...options });\n }\n },\n [router, id]\n );\n\n return navigate;\n}\n\nconst alreadyWarned: Record = {};\n\nfunction warningOnce(key: string, cond: boolean, message: string) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n","import type {\n InitialEntry,\n LazyRouteFunction,\n Location,\n MemoryHistory,\n RelativeRoutingType,\n Router as RemixRouter,\n RouterState,\n RouterSubscriber,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\nimport {\n AbortedDeferredError,\n Action as NavigationType,\n createMemoryHistory,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\nimport * as React from \"react\";\n\nimport type {\n DataRouteObject,\n IndexRouteObject,\n Navigator,\n NonIndexRouteObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n} from \"./context\";\nimport {\n _renderMatches,\n useAsyncValue,\n useInRouterContext,\n useLocation,\n useNavigate,\n useOutlet,\n useRoutes,\n useRoutesImpl,\n} from \"./hooks\";\n\nexport interface FutureConfig {\n v7_relativeSplatPath: boolean;\n v7_startTransition: boolean;\n}\n\nexport interface RouterProviderProps {\n fallbackElement?: React.ReactNode;\n router: RemixRouter;\n // Only accept future flags relevant to rendering behavior\n // routing flags should be accessed via router.future\n future?: Partial>;\n}\n\n/**\n Webpack + React 17 fails to compile on any of the following because webpack\n complains that `startTransition` doesn't exist in `React`:\n * import { startTransition } from \"react\"\n * import * as React from from \"react\";\n \"startTransition\" in React ? React.startTransition(() => setState()) : setState()\n * import * as React from from \"react\";\n \"startTransition\" in React ? React[\"startTransition\"](() => setState()) : setState()\n\n Moving it to a constant such as the following solves the Webpack/React 17 issue:\n * import * as React from from \"react\";\n const START_TRANSITION = \"startTransition\";\n START_TRANSITION in React ? React[START_TRANSITION](() => setState()) : setState()\n\n However, that introduces webpack/terser minification issues in production builds\n in React 18 where minification/obfuscation ends up removing the call of\n React.startTransition entirely from the first half of the ternary. Grabbing\n this exported reference once up front resolves that issue.\n\n See https://github.com/remix-run/react-router/issues/10579\n*/\nconst START_TRANSITION = \"startTransition\";\nconst startTransitionImpl = React[START_TRANSITION];\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nexport function RouterProvider({\n fallbackElement,\n router,\n future,\n}: RouterProviderProps): React.ReactElement {\n let [state, setStateImpl] = React.useState(router.state);\n let { v7_startTransition } = future || {};\n\n let setState = React.useCallback(\n (newState: RouterState) => {\n if (v7_startTransition && startTransitionImpl) {\n startTransitionImpl(() => setStateImpl(newState));\n } else {\n setStateImpl(newState);\n }\n },\n [setStateImpl, v7_startTransition]\n );\n\n // Need to use a layout effect here so we are subscribed early enough to\n // pick up on any render-driven redirects/navigations (useEffect/)\n React.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n\n React.useEffect(() => {\n warning(\n fallbackElement == null || !router.future.v7_partialHydration,\n \"`` is deprecated when using \" +\n \"`v7_partialHydration`, use a `HydrateFallback` component instead\"\n );\n // Only log this once on initial mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n let navigator = React.useMemo((): Navigator => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: (n) => router.navigate(n),\n push: (to, state, opts) =>\n router.navigate(to, {\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n replace: (to, state, opts) =>\n router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n };\n }, [router]);\n\n let basename = router.basename || \"/\";\n\n let dataRouterContext = React.useMemo(\n () => ({\n router,\n navigator,\n static: false,\n basename,\n }),\n [router, navigator, basename]\n );\n\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a \n * ```\n */\nvar FormValidator = /** @class */ (function (_super) {\n __extends(FormValidator, _super);\n /**\n * Initializes the FormValidator.\n *\n * @param {string | HTMLFormElement} element - Specifies the element to render as component.\n * @param {FormValidatorModel} options - Specifies the FormValidator model.\n * @private\n */\n function FormValidator(element, options) {\n var _this = _super.call(this, options, element) || this;\n _this.validated = [];\n _this.errorRules = [];\n _this.allowSubmit = false;\n _this.required = 'required';\n _this.infoElement = null;\n _this.inputElement = null;\n _this.selectQuery = 'input:not([type=reset]):not([type=button]), select, textarea';\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _this.localyMessage = {};\n /**\n * Specifies the default messages for validation rules.\n *\n * @default { List of validation message }\n */\n _this.defaultMessages = {\n required: 'This field is required.',\n email: 'Please enter a valid email address.',\n url: 'Please enter a valid URL.',\n date: 'Please enter a valid date.',\n dateIso: 'Please enter a valid date ( ISO ).',\n creditcard: 'Please enter valid card number',\n number: 'Please enter a valid number.',\n digits: 'Please enter only digits.',\n maxLength: 'Please enter no more than {0} characters.',\n minLength: 'Please enter at least {0} characters.',\n rangeLength: 'Please enter a value between {0} and {1} characters long.',\n range: 'Please enter a value between {0} and {1}.',\n max: 'Please enter a value less than or equal to {0}.',\n min: 'Please enter a value greater than or equal to {0}.',\n regex: 'Please enter a correct value.',\n tel: 'Please enter a valid phone number.',\n pattern: 'Please enter a correct pattern value.',\n equalTo: 'Please enter the valid match text'\n };\n if (typeof _this.rules === 'undefined') {\n _this.rules = {};\n }\n _this.l10n = new L10n('formValidator', _this.defaultMessages, _this.locale);\n if (_this.locale) {\n _this.localeFunc();\n }\n onIntlChange.on('notifyExternalChange', _this.afterLocalization, _this);\n element = typeof element === 'string' ? select(element, document) : element;\n // Set novalidate to prevent default HTML5 form validation\n if (_this.element != null) {\n _this.element.setAttribute('novalidate', '');\n _this.inputElements = selectAll(_this.selectQuery, _this.element);\n _this.createHTML5Rules();\n _this.wireEvents();\n }\n else {\n return undefined;\n }\n return _this;\n }\n FormValidator_1 = FormValidator;\n /* eslint-enable @typescript-eslint/no-explicit-any */\n /**\n * Add validation rules to the corresponding input element based on `name` attribute.\n *\n * @param {string} name `name` of form field.\n * @param {Object} rules Validation rules for the corresponding element.\n * @returns {void}\n */\n FormValidator.prototype.addRules = function (name, rules) {\n if (name) {\n // eslint-disable-next-line no-prototype-builtins\n if (this.rules.hasOwnProperty(name)) {\n extend(this.rules[\"\" + name], rules, {});\n }\n else {\n this.rules[\"\" + name] = rules;\n }\n }\n };\n /**\n * Remove validation to the corresponding field based on name attribute.\n * When no parameter is passed, remove all the validations in the form.\n *\n * @param {string} name Input name attribute value.\n * @param {string[]} rules List of validation rules need to be remove from the corresponding element.\n * @returns {void}\n */\n FormValidator.prototype.removeRules = function (name, rules) {\n if (!name && !rules) {\n this.rules = {};\n }\n else if (this.rules[\"\" + name] && !rules) {\n delete this.rules[\"\" + name];\n }\n else if (!isNullOrUndefined(this.rules[\"\" + name] && rules)) {\n for (var i = 0; i < rules.length; i++) {\n delete this.rules[\"\" + name][rules[parseInt(i.toString())]];\n }\n }\n else {\n return;\n }\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Validate the current form values using defined rules.\n * Returns `true` when the form is valid otherwise `false`\n *\n * @param {string} selected - Optional parameter to validate specified element.\n * @returns {boolean}\n */\n FormValidator.prototype.validate = function (selected) {\n var rules = Object.keys(this.rules);\n if (selected && rules.length) {\n this.validateRules(selected);\n //filter the selected element it don't have any valid input element\n return rules.indexOf(selected) !== -1 && this.errorRules.filter(function (data) {\n return data.name === selected;\n }).length === 0;\n }\n else {\n this.errorRules = [];\n for (var _i = 0, rules_1 = rules; _i < rules_1.length; _i++) {\n var name_1 = rules_1[_i];\n this.validateRules(name_1);\n }\n return this.errorRules.length === 0;\n }\n };\n /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Reset the value of all the fields in form.\n *\n * @returns {void}\n */\n FormValidator.prototype.reset = function () {\n this.element.reset();\n this.clearForm();\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Get input element by name.\n *\n * @param {string} name - Input element name attribute value.\n * @returns {HTMLInputElement}\n */\n FormValidator.prototype.getInputElement = function (name) {\n this.inputElement = (select('[name=\"' + name + '\"]', this.element));\n return this.inputElement;\n };\n /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Destroy the form validator object and error elements.\n *\n * @returns {void}\n */\n FormValidator.prototype.destroy = function () {\n this.reset();\n this.unwireEvents();\n this.rules = {};\n var elements = selectAll('.' + this.errorClass + ', .' + this.validClass, this.element);\n for (var _i = 0, elements_1 = elements; _i < elements_1.length; _i++) {\n var element = elements_1[_i];\n detach(element);\n }\n _super.prototype.destroy.call(this);\n onIntlChange.off('notifyExternalChange', this.afterLocalization);\n };\n /**\n * @param {FormValidatorModel} newProp - Returns the dynamic property value of the component.\n * @param {FormValidatorModel} oldProp - Returns the previous property value of the component.\n * @returns {void}\n * @private\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n FormValidator.prototype.onPropertyChanged = function (newProp, oldProp) {\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'locale':\n this.localeFunc();\n break;\n }\n }\n };\n /**\n * @private\n * @returns {void}\n */\n FormValidator.prototype.localeFunc = function () {\n for (var _i = 0, _a = Object.keys(this.defaultMessages); _i < _a.length; _i++) {\n var key = _a[_i];\n this.l10n.setLocale(this.locale);\n var value = this.l10n.getConstant(key);\n this.localyMessage[\"\" + key] = value;\n }\n };\n /**\n * @private\n * @returns {string} - Returns the component name.\n */\n FormValidator.prototype.getModuleName = function () {\n return 'formValidator';\n };\n /**\n * @param {any} args - Specifies the culture name.\n * @private\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n FormValidator.prototype.afterLocalization = function (args) {\n this.locale = args.locale;\n this.localeFunc();\n };\n /**\n * Allows you to refresh the form validator base events to the elements inside the form.\n *\n * @returns {void}\n */\n FormValidator.prototype.refresh = function () {\n this.unwireEvents();\n this.inputElements = selectAll(this.selectQuery, this.element);\n this.wireEvents();\n };\n FormValidator.prototype.clearForm = function () {\n this.errorRules = [];\n this.validated = [];\n var elements = selectAll(this.selectQuery, this.element);\n for (var _i = 0, elements_2 = elements; _i < elements_2.length; _i++) {\n var element = elements_2[_i];\n var input = element;\n input.removeAttribute('aria-invalid');\n input.classList.remove(this.errorClass);\n if (input.name.length > 0) {\n this.getInputElement(input.name);\n this.getErrorElement(input.name);\n this.hideMessage(input.name);\n }\n input.classList.remove(this.validClass);\n }\n };\n FormValidator.prototype.createHTML5Rules = function () {\n var defRules = ['required', 'validateHidden', 'regex', 'rangeLength', 'maxLength', 'minLength', 'dateIso', 'digits',\n 'pattern', 'data-val-required', 'type', 'data-validation', 'min', 'max', 'range', 'equalTo', 'data-val-minlength-min',\n 'data-val-equalto-other', 'data-val-maxlength-max', 'data-val-range-min', 'data-val-regex-pattern', 'data-val-length-max',\n 'data-val-creditcard', 'data-val-phone'];\n var acceptedTypes = ['hidden', 'email', 'url', 'date', 'number', 'tel'];\n for (var _i = 0, _a = (this.inputElements); _i < _a.length; _i++) {\n var input = _a[_i];\n // Default attribute rules\n var allRule = {};\n for (var _b = 0, defRules_1 = defRules; _b < defRules_1.length; _b++) {\n var rule = defRules_1[_b];\n if (input.getAttribute(rule) !== null) {\n switch (rule) {\n case 'required':\n this.defRule(input, allRule, rule, input.required);\n break;\n case 'data-validation':\n rule = input.getAttribute(rule);\n this.defRule(input, allRule, rule, true);\n break;\n case 'type':\n if (acceptedTypes.indexOf(input.type) !== -1) {\n this.defRule(input, allRule, input.type, true);\n }\n break;\n case 'rangeLength':\n case 'range':\n this.defRule(input, allRule, rule, JSON.parse(input.getAttribute(rule)));\n break;\n case 'equalTo':\n {\n var id = input.getAttribute(rule);\n this.defRule(input, allRule, rule, id);\n }\n break;\n default:\n if (input.getAttribute('data-val') === 'true') {\n this.annotationRule(input, allRule, rule, input.getAttribute(rule));\n }\n else {\n this.defRule(input, allRule, rule, input.getAttribute(rule));\n }\n }\n }\n }\n //adding pattern type validation\n if (Object.keys(allRule).length !== 0) {\n this.addRules(input.name, allRule);\n }\n }\n };\n FormValidator.prototype.annotationRule = function (input, ruleCon, ruleName, value) {\n var annotationRule = ruleName.split('-');\n var rulesList = ['required', 'creditcard', 'phone', 'maxlength', 'minlength', 'range', 'regex', 'equalto'];\n var ruleFirstName = annotationRule[annotationRule.length - 1];\n var ruleSecondName = annotationRule[annotationRule.length - 2];\n if (rulesList.indexOf(ruleFirstName) !== -1) {\n switch (ruleFirstName) {\n case 'required':\n this.defRule(input, ruleCon, 'required', value);\n break;\n case 'creditcard':\n this.defRule(input, ruleCon, 'creditcard', value);\n break;\n case 'phone':\n this.defRule(input, ruleCon, 'tel', value);\n break;\n }\n }\n else if (rulesList.indexOf(ruleSecondName) !== -1) {\n switch (ruleSecondName) {\n case 'maxlength':\n this.defRule(input, ruleCon, 'maxLength', value);\n break;\n case 'minlength':\n this.defRule(input, ruleCon, 'minLength', value);\n break;\n case 'range':\n {\n var minvalue = input.getAttribute('data-val-range-min');\n var maxvalue = input.getAttribute('data-val-range-max');\n this.defRule(input, ruleCon, 'range', [minvalue, maxvalue]);\n }\n break;\n case 'equalto':\n {\n var id = input.getAttribute(ruleName).split('.');\n this.defRule(input, ruleCon, 'equalTo', id[id.length - 1]);\n }\n break;\n case 'regex':\n this.defRule(input, ruleCon, 'regex', value);\n break;\n }\n }\n };\n FormValidator.prototype.defRule = function (input, ruleCon, ruleName, value) {\n var message = input.getAttribute('data-' + ruleName + '-message');\n var annotationMessage = input.getAttribute('data-val-' + ruleName);\n var customMessage;\n if (this.rules[input.name] && ruleName !== 'validateHidden' && ruleName !== 'hidden') {\n this.getInputElement(input.name);\n customMessage = this.getErrorMessage(this.rules[input.name][\"\" + ruleName], ruleName);\n }\n if (message) {\n value = [value, message];\n }\n else if (annotationMessage) {\n value = [value, annotationMessage];\n }\n else if (customMessage) {\n value = [value, customMessage];\n }\n ruleCon[\"\" + ruleName] = value;\n };\n // Wire events to the form elements\n FormValidator.prototype.wireEvents = function () {\n for (var _i = 0, _a = (this.inputElements); _i < _a.length; _i++) {\n var input = _a[_i];\n if (FormValidator_1.isCheckable(input)) {\n EventHandler.add(input, 'click', this.clickHandler, this);\n }\n else if (input.tagName === 'SELECT') {\n EventHandler.add(input, 'change', this.changeHandler, this);\n }\n else {\n EventHandler.add(input, 'focusout', this.focusOutHandler, this);\n EventHandler.add(input, 'keyup', this.keyUpHandler, this);\n }\n }\n EventHandler.add(this.element, 'submit', this.submitHandler, this);\n EventHandler.add(this.element, 'reset', this.resetHandler, this);\n };\n // UnWire events to the form elements\n FormValidator.prototype.unwireEvents = function () {\n for (var _i = 0, _a = (this.inputElements); _i < _a.length; _i++) {\n var input = _a[_i];\n EventHandler.clearEvents(input);\n }\n EventHandler.remove(this.element, 'submit', this.submitHandler);\n EventHandler.remove(this.element, 'reset', this.resetHandler);\n };\n // Handle input element focusout event\n FormValidator.prototype.focusOutHandler = function (e) {\n this.trigger('focusout', e);\n //FormValidator.triggerCallback(this.focusout, e);\n var element = e.target;\n if (this.rules[element.name]) {\n if (this.rules[element.name][this.required] || element.value.length > 0) {\n this.validate(element.name);\n }\n else if (this.validated.indexOf(element.name) === -1) {\n this.validated.push(element.name);\n }\n }\n };\n // Handle input element keyup event\n FormValidator.prototype.keyUpHandler = function (e) {\n this.trigger('keyup', e);\n var element = e.target;\n // List of keys need to prevent while validation\n var excludeKeys = [16, 17, 18, 20, 35, 36, 37, 38, 39, 40, 45, 144, 225];\n if (e.which === 9 && (!this.rules[element.name] || (this.rules[element.name] && !this.rules[element.name][this.required]))) {\n return;\n }\n if (this.validated.indexOf(element.name) !== -1 && this.rules[element.name] && excludeKeys.indexOf(e.which) === -1) {\n this.validate(element.name);\n }\n };\n // Handle input click event\n FormValidator.prototype.clickHandler = function (e) {\n this.trigger('click', e);\n var element = e.target;\n // If element type is not submit allow validation\n if (element.type !== 'submit') {\n this.validate(element.name);\n }\n else if (element.getAttribute('formnovalidate') !== null) {\n // Prevent form validation, if submit button has formnovalidate attribute\n this.allowSubmit = true;\n }\n };\n // Handle input change event\n FormValidator.prototype.changeHandler = function (e) {\n this.trigger('change', e);\n var element = e.target;\n this.validate(element.name);\n };\n // Handle form submit event\n FormValidator.prototype.submitHandler = function (e) {\n this.trigger('submit', e);\n //FormValidator.triggerCallback(this.submit, e);\n // Prevent form submit if validation failed\n if (!this.allowSubmit && !this.validate()) {\n e.preventDefault();\n }\n else {\n this.allowSubmit = false;\n }\n };\n // Handle form reset\n FormValidator.prototype.resetHandler = function () {\n this.clearForm();\n };\n // Validate each rule based on input element name\n FormValidator.prototype.validateRules = function (name) {\n if (!this.rules[\"\" + name]) {\n return;\n }\n var rules = Object.keys(this.rules[\"\" + name]);\n var hiddenType = false;\n var validateHiddenType = false;\n var vhPos = rules.indexOf('validateHidden');\n var hPos = rules.indexOf('hidden');\n this.getInputElement(name);\n if (hPos !== -1) {\n hiddenType = true;\n }\n if (vhPos !== -1) {\n validateHiddenType = true;\n }\n if (!hiddenType || (hiddenType && validateHiddenType)) {\n if (vhPos !== -1) {\n rules.splice(vhPos, 1);\n }\n if (hPos !== -1) {\n rules.splice((hPos - 1), 1);\n }\n this.getErrorElement(name);\n for (var _i = 0, rules_2 = rules; _i < rules_2.length; _i++) {\n var rule = rules_2[_i];\n var errorMessage = this.getErrorMessage(this.rules[\"\" + name][\"\" + rule], rule);\n var errorRule = { name: name, message: errorMessage };\n var eventArgs = {\n inputName: name,\n element: this.inputElement,\n message: errorMessage\n };\n if (!this.isValid(name, rule) && !this.inputElement.classList.contains(this.ignore)) {\n this.removeErrorRules(name);\n this.errorRules.push(errorRule);\n // Set aria attributes to invalid elements\n this.inputElement.setAttribute('aria-invalid', 'true');\n this.inputElement.setAttribute('aria-describedby', this.inputElement.id + '-info');\n this.inputElement.classList.add(this.errorClass);\n this.inputElement.classList.remove(this.validClass);\n if (!this.infoElement) {\n this.createErrorElement(name, errorRule.message, this.inputElement);\n }\n else {\n this.showMessage(errorRule);\n }\n eventArgs.errorElement = this.infoElement;\n eventArgs.status = 'failure';\n this.inputElement.classList.add(this.errorClass);\n this.inputElement.classList.remove(this.validClass);\n this.optionalValidationStatus(name, eventArgs);\n this.trigger('validationComplete', eventArgs);\n // Set aria-required to required rule elements\n if (rule === 'required') {\n this.inputElement.setAttribute('aria-required', 'true');\n }\n break;\n }\n else {\n this.hideMessage(name);\n eventArgs.status = 'success';\n this.trigger('validationComplete', eventArgs);\n }\n }\n }\n else {\n return;\n }\n };\n // Update the optional validation status\n FormValidator.prototype.optionalValidationStatus = function (name, refer) {\n if (!this.rules[\"\" + name][this.required] && !this.inputElement.value.length && !isNullOrUndefined(this.infoElement)) {\n this.infoElement.innerHTML = this.inputElement.value;\n this.infoElement.setAttribute('aria-invalid', 'false');\n refer.status = '';\n this.hideMessage(name);\n }\n };\n // Check the input element whether it's value satisfy the validation rule or not\n FormValidator.prototype.isValid = function (name, rule) {\n var params = this.rules[\"\" + name][\"\" + rule];\n var param = (params instanceof Array && typeof params[1] === 'string') ? params[0] : params;\n var currentRule = this.rules[\"\" + name][\"\" + rule];\n var args = { value: this.inputElement.value, param: param, element: this.inputElement, formElement: this.element };\n this.trigger('validationBegin', args);\n if (!args.param && rule === 'required') {\n return true;\n }\n if (currentRule && typeof currentRule[0] === 'function') {\n var fn = currentRule[0];\n return fn.call(this, { element: this.inputElement, value: this.inputElement.value });\n }\n else if (FormValidator_1.isCheckable(this.inputElement)) {\n if (rule !== 'required') {\n return true;\n }\n return selectAll('input[name=\"' + name + '\"]:checked', this.element).length > 0;\n }\n else {\n return FormValidator_1.checkValidator[\"\" + rule](args);\n }\n };\n // Return default error message or custom error message\n FormValidator.prototype.getErrorMessage = function (ruleValue, rule) {\n var message = this.inputElement.getAttribute('data-' + rule + '-message') ?\n this.inputElement.getAttribute('data-' + rule + '-message') :\n (ruleValue instanceof Array && typeof ruleValue[1] === 'string') ? ruleValue[1] :\n (Object.keys(this.localyMessage).length !== 0) ? this.localyMessage[\"\" + rule] : this.defaultMessages[\"\" + rule];\n var formats = message.match(/{(\\d)}/g);\n if (!isNullOrUndefined(formats)) {\n for (var i = 0; i < formats.length; i++) {\n var value = ruleValue instanceof Array ? ruleValue[parseInt(i.toString())] : ruleValue;\n message = message.replace(formats[parseInt(i.toString())], value);\n }\n }\n return message;\n };\n // Create error element based on name and error message\n FormValidator.prototype.createErrorElement = function (name, message, input) {\n var errorElement = createElement(this.errorElement, {\n className: this.errorClass,\n innerHTML: message,\n attrs: { for: name }\n });\n // Create message design if errorOption is message\n if (this.errorOption === ErrorOption.Message) {\n errorElement.classList.remove(this.errorClass);\n errorElement.classList.add('e-message');\n errorElement = createElement(this.errorContainer, { className: this.errorClass, innerHTML: errorElement.outerHTML });\n }\n errorElement.id = this.inputElement.name + '-info';\n // Append error message into MVC error message element\n if (this.element.querySelector('[data-valmsg-for=\"' + input.id + '\"]')) {\n this.element.querySelector('[data-valmsg-for=\"' + input.id + '\"]').appendChild(errorElement);\n }\n else if (input.hasAttribute('data-msg-containerid') === true) {\n // Append error message into custom div element\n var containerId = input.getAttribute('data-msg-containerid');\n var divElement = select('#' + containerId, this.element);\n divElement.appendChild(errorElement);\n }\n else if (this.customPlacement != null) {\n // Call custom placement function if customPlacement is not null\n this.customPlacement.call(this, this.inputElement, errorElement);\n }\n else {\n this.inputElement.parentNode.insertBefore(errorElement, this.inputElement.nextSibling);\n }\n errorElement.style.display = 'block';\n this.getErrorElement(name);\n this.validated.push(name);\n this.checkRequired(name);\n };\n // Get error element by name\n FormValidator.prototype.getErrorElement = function (name) {\n this.infoElement = select(this.errorElement + '.' + this.errorClass, this.inputElement.parentElement);\n if (!this.infoElement) {\n this.infoElement = select(this.errorElement + '.' + this.errorClass + '[for=\"' + name + '\"]', this.element);\n }\n return this.infoElement;\n };\n // Remove existing rule from errorRules object\n FormValidator.prototype.removeErrorRules = function (name) {\n for (var i = 0; i < this.errorRules.length; i++) {\n var rule = this.errorRules[parseInt(i.toString())];\n if (rule.name === name) {\n this.errorRules.splice(i, 1);\n }\n }\n };\n // Show error message to the input element\n FormValidator.prototype.showMessage = function (errorRule) {\n this.infoElement.style.display = 'block';\n this.infoElement.innerHTML = errorRule.message;\n this.checkRequired(errorRule.name);\n };\n // Hide error message based on input name\n FormValidator.prototype.hideMessage = function (name) {\n if (this.infoElement) {\n this.infoElement.style.display = 'none';\n this.removeErrorRules(name);\n this.inputElement.classList.add(this.validClass);\n this.inputElement.classList.remove(this.errorClass);\n this.inputElement.setAttribute('aria-invalid', 'false');\n }\n };\n // Check whether the input element have required rule and its value is not empty\n FormValidator.prototype.checkRequired = function (name) {\n if (!this.rules[\"\" + name][this.required] && !this.inputElement.value.length && !isNullOrUndefined(this.infoElement)) {\n this.infoElement.innerHTML = this.inputElement.value;\n this.infoElement.setAttribute('aria-invalid', 'false');\n this.hideMessage(name);\n }\n };\n // Return boolean result if the input have chekcable or submit types\n FormValidator.isCheckable = function (input) {\n var inputType = input.getAttribute('type');\n return inputType && (inputType === 'checkbox' || inputType === 'radio' || inputType === 'submit');\n };\n var FormValidator_1;\n // List of function to validate the rules\n FormValidator.checkValidator = {\n required: function (option) {\n return !isNaN(Date.parse(option.value)) ? !isNaN(new Date(option.value).getTime()) : option.value.toString().length > 0;\n },\n email: function (option) {\n return regex.EMAIL.test(option.value);\n },\n url: function (option) {\n return regex.URL.test(option.value);\n },\n dateIso: function (option) {\n return regex.DATE_ISO.test(option.value);\n },\n tel: function (option) {\n return regex.PHONE.test(option.value);\n },\n creditcard: function (option) {\n return regex.CREDITCARD.test(option.value);\n },\n number: function (option) {\n return !isNaN(Number(option.value)) && option.value.indexOf(' ') === -1;\n },\n digits: function (option) {\n return regex.DIGITS.test(option.value);\n },\n maxLength: function (option) {\n return option.value.length <= option.param;\n },\n minLength: function (option) {\n return option.value.length >= option.param;\n },\n rangeLength: function (option) {\n var param = option.param;\n return option.value.length >= param[0] && option.value.length <= param[1];\n },\n range: function (option) {\n var param = option.param;\n return !isNaN(Number(option.value)) && Number(option.value) >= param[0] && Number(option.value) <= param[1];\n },\n date: function (option) {\n return !isNaN(new Date(option.value).getTime());\n },\n max: function (option) {\n if (!isNaN(Number(option.value))) {\n // Maximum rule validation for number\n return +option.value <= option.param;\n }\n // Maximum rule validation for date\n return new Date(option.value).getTime() <= new Date(JSON.parse(JSON.stringify(option.param))).getTime();\n },\n min: function (option) {\n if (!isNaN(Number(option.value))) {\n // Minimum rule validation for number\n return +option.value >= option.param;\n }\n else if ((option.value).indexOf(',') !== -1) {\n var uNum = (option.value).replace(/,/g, '');\n return parseFloat(uNum) >= option.param;\n }\n else {\n // Minimum rule validation for date\n return new Date(option.value).getTime() >= new Date(JSON.parse(JSON.stringify(option.param))).getTime();\n }\n },\n regex: function (option) {\n /* eslint-disable-next-line security/detect-non-literal-regexp */\n return new RegExp(option.param).test(option.value);\n },\n equalTo: function (option) {\n var compareTo = option.formElement.querySelector('#' + option.param);\n option.param = compareTo.value;\n return option.param === option.value;\n }\n };\n __decorate([\n Property('')\n ], FormValidator.prototype, \"locale\", void 0);\n __decorate([\n Property('e-hidden')\n ], FormValidator.prototype, \"ignore\", void 0);\n __decorate([\n Property()\n ], FormValidator.prototype, \"rules\", void 0);\n __decorate([\n Property('e-error')\n ], FormValidator.prototype, \"errorClass\", void 0);\n __decorate([\n Property('e-valid')\n ], FormValidator.prototype, \"validClass\", void 0);\n __decorate([\n Property('label')\n ], FormValidator.prototype, \"errorElement\", void 0);\n __decorate([\n Property('div')\n ], FormValidator.prototype, \"errorContainer\", void 0);\n __decorate([\n Property(ErrorOption.Label)\n ], FormValidator.prototype, \"errorOption\", void 0);\n __decorate([\n Event()\n ], FormValidator.prototype, \"focusout\", void 0);\n __decorate([\n Event()\n ], FormValidator.prototype, \"keyup\", void 0);\n __decorate([\n Event()\n ], FormValidator.prototype, \"click\", void 0);\n __decorate([\n Event()\n ], FormValidator.prototype, \"change\", void 0);\n __decorate([\n Event()\n ], FormValidator.prototype, \"submit\", void 0);\n __decorate([\n Event()\n ], FormValidator.prototype, \"validationBegin\", void 0);\n __decorate([\n Event()\n ], FormValidator.prototype, \"validationComplete\", void 0);\n __decorate([\n Event()\n ], FormValidator.prototype, \"customPlacement\", void 0);\n FormValidator = FormValidator_1 = __decorate([\n NotifyPropertyChanges\n ], FormValidator);\n return FormValidator;\n}(Base));\nexport { FormValidator };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component, NotifyPropertyChanges, addClass, removeClass, L10n } from '@syncfusion/ej2-base';\nimport { Event, Property, detach, EventHandler, isNullOrUndefined as isNOU, compile, append } from '@syncfusion/ej2-base';\n/**\n * Specifies the type of severity to display the message with distinctive icons and colors.\n */\nexport var Severity;\n(function (Severity) {\n /**\n * The message is displayed with icons and colors to denote it as a normal message.\n */\n Severity[\"Normal\"] = \"Normal\";\n /**\n * The message is displayed with icons and colors to denote it as a success message.\n */\n Severity[\"Success\"] = \"Success\";\n /**\n * The message is displayed with icons and colors to denote it as information.\n */\n Severity[\"Info\"] = \"Info\";\n /**\n * The message is displayed with icons and colors to denote it as a warning message.\n */\n Severity[\"Warning\"] = \"Warning\";\n /**\n * The message is displayed with icons and colors to denote it as an error message.\n */\n Severity[\"Error\"] = \"Error\";\n})(Severity || (Severity = {}));\n/**\n * Specifies the predefined appearance variants for the component to display.\n */\nexport var Variant;\n(function (Variant) {\n /**\n * Denotes the severity is differentiated using text color and light background color.\n */\n Variant[\"Text\"] = \"Text\";\n /**\n * Denotes the severity is differentiated using text color and border without background.\n */\n Variant[\"Outlined\"] = \"Outlined\";\n /**\n * Denotes the severity is differentiated using text color and dark background color.\n */\n Variant[\"Filled\"] = \"Filled\";\n})(Variant || (Variant = {}));\nvar MSG_ICON = 'e-msg-icon';\nvar MSG_CLOSE_ICON = 'e-msg-close-icon';\nvar MSG_CONTENT = 'e-msg-content';\nvar RTL = 'e-rtl';\nvar SUCCESS = 'e-success';\nvar WARNING = 'e-warning';\nvar INFO = 'e-info';\nvar ERROR = 'e-error';\nvar OUTLINED = 'e-outlined';\nvar FILLED = 'e-filled';\nvar HIDE = 'e-hidden';\n/**\n * The Message component displays messages with severity by differentiating icons and colors to denote the importance and context of the message to the end user.\n * ```html\n *
      \n * \n * ```\n *\n */\nvar Message = /** @class */ (function (_super) {\n __extends(Message, _super);\n /**\n * Constructor for creating the Message component widget.\n *\n * @param {MessageModel}options - Specifies the Message component interface.\n * @param {HTMLElement}element - Specifies the target element.\n */\n function Message(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.initialRender = true;\n return _this;\n }\n /**\n * Gets the Message component module name.\n *\n * @returns {string} - Returns the string.\n * @private\n */\n Message.prototype.getModuleName = function () {\n return 'message';\n };\n /**\n * Get the persisted state properties of the Message component.\n *\n * @returns {string} - Returns the string.\n */\n Message.prototype.getPersistData = function () {\n return this.addOnPersist([]);\n };\n /**\n * Method to initialize the variables for the Message component.\n *\n * @returns {void}\n * @private\n */\n Message.prototype.preRender = function () {\n var localeText = { close: 'Close' };\n this.l10n = new L10n('message', localeText, this.locale);\n };\n /**\n * Method to initialize the Message component rendering.\n *\n * @returns {void}\n * @private\n */\n Message.prototype.render = function () {\n this.innerContent = this.element.innerHTML;\n this.element.innerHTML = '';\n this.initialize();\n this.wireEvents();\n this.renderComplete();\n this.renderReactTemplates();\n this.initialRender = false;\n };\n Message.prototype.initialize = function () {\n this.element.setAttribute('role', 'alert');\n this.setIcon();\n this.setContent();\n this.setCloseIcon();\n this.setSeverity();\n this.setVariant();\n this.setCssClass();\n this.setVisible();\n if (this.enableRtl) {\n this.element.classList.add(RTL);\n }\n };\n Message.prototype.setIcon = function () {\n if (this.showIcon) {\n this.iconElement = this.createElement('span', { className: MSG_ICON });\n this.element.appendChild(this.iconElement);\n }\n };\n Message.prototype.setCloseIcon = function () {\n if (this.showCloseIcon) {\n this.closeIcon = this.createElement('button', { attrs: { type: 'button', class: MSG_CLOSE_ICON } });\n this.element.appendChild(this.closeIcon);\n this.setTitle();\n }\n };\n Message.prototype.setTitle = function () {\n this.l10n.setLocale(this.locale);\n var closeIconTitle = this.l10n.getConstant('close');\n this.closeIcon.setAttribute('title', closeIconTitle);\n this.closeIcon.setAttribute('aria-label', closeIconTitle);\n };\n Message.prototype.setContent = function () {\n this.txtElement = this.createElement('div', { className: MSG_CONTENT });\n this.element.appendChild(this.txtElement);\n this.setTemplate();\n };\n Message.prototype.setTemplate = function () {\n var templateFn;\n if (isNOU(this.content) || this.content === '') {\n this.txtElement.innerHTML = this.innerContent;\n }\n else if (!isNOU(this.content) && this.content !== '') {\n if ((typeof this.content === 'string') || (typeof this.content !== 'string')) {\n // eslint-disable-next-line\n if (this.isVue || typeof this.content !== 'string') {\n templateFn = compile(this.content);\n if (!isNOU(templateFn)) {\n var tempArr = templateFn({}, this, 'content', this.element.id + 'content', true);\n if (tempArr) {\n tempArr = Array.prototype.slice.call(tempArr);\n append(tempArr, this.txtElement);\n this.renderReactTemplates();\n }\n }\n }\n else {\n this.txtElement.innerHTML = this.content;\n }\n }\n }\n };\n Message.prototype.setSeverity = function () {\n var classList = [SUCCESS, WARNING, INFO, ERROR];\n removeClass([this.element], classList);\n if (this.severity === 'Success') {\n addClass([this.element], SUCCESS);\n }\n else if (this.severity === 'Warning') {\n addClass([this.element], WARNING);\n }\n else if (this.severity === 'Error') {\n addClass([this.element], ERROR);\n }\n else if (this.severity === 'Info') {\n addClass([this.element], INFO);\n }\n };\n Message.prototype.setVariant = function () {\n var classList = [FILLED, OUTLINED];\n removeClass([this.element], classList);\n if (this.variant === 'Outlined') {\n addClass([this.element], OUTLINED);\n }\n else if (this.variant === 'Filled') {\n addClass([this.element], FILLED);\n }\n };\n Message.prototype.setCssClass = function (oldCssClass) {\n if (oldCssClass) {\n removeClass([this.element], oldCssClass.split(' '));\n }\n if (this.cssClass) {\n addClass([this.element], this.cssClass.split(' '));\n }\n };\n Message.prototype.setVisible = function () {\n if (!this.visible) {\n addClass([this.element], HIDE);\n if (!this.initialRender) {\n this.trigger('closed', { event: event, isInteracted: false, element: this.element });\n }\n }\n else {\n removeClass([this.element], HIDE);\n }\n };\n Message.prototype.clickHandler = function (event) {\n this.closeMessage(event);\n };\n Message.prototype.keyboardHandler = function (event) {\n if (event.keyCode === 32 || event.keyCode === 13) {\n this.closeMessage(event);\n }\n };\n Message.prototype.closeMessage = function (event) {\n addClass([this.element], HIDE);\n this.setProperties({ visible: false }, true);\n var eventArgs = { event: event, isInteracted: true, element: this.element };\n this.trigger('closed', eventArgs);\n };\n Message.prototype.wireEvents = function () {\n if (this.showCloseIcon) {\n EventHandler.add(this.closeIcon, 'click', this.clickHandler, this);\n EventHandler.add(this.closeIcon, 'keydown', this.keyboardHandler, this);\n }\n };\n Message.prototype.unWireEvents = function () {\n if (this.showCloseIcon) {\n EventHandler.remove(this.closeIcon, 'click', this.clickHandler);\n EventHandler.remove(this.closeIcon, 'keydown', this.keyboardHandler);\n }\n };\n /**\n * Method to handle the dynamic changes of the Message component properties.\n *\n * @param {MessageModel} newProp - Specifies the new property.\n * @param {MessageModel} oldProp - Specifies the old property.\n * @returns {void}\n * @private\n */\n Message.prototype.onPropertyChanged = function (newProp, oldProp) {\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'cssClass':\n this.setCssClass(oldProp.cssClass);\n break;\n case 'content':\n this.txtElement.innerHTML = '';\n this.setTemplate();\n break;\n case 'enableRtl':\n if (!this.enableRtl) {\n this.element.classList.remove(RTL);\n }\n else {\n this.element.classList.add(RTL);\n }\n break;\n case 'locale':\n if (this.showCloseIcon) {\n this.setTitle();\n }\n break;\n case 'showIcon':\n if (!this.showIcon && this.element.getElementsByClassName(MSG_ICON).length > 0) {\n detach(this.iconElement);\n }\n if (this.showIcon) {\n this.iconElement = this.createElement('span', { className: MSG_ICON });\n this.element.insertBefore(this.iconElement, this.txtElement);\n }\n break;\n case 'showCloseIcon':\n if (!this.showCloseIcon && !isNOU(this.closeIcon)) {\n this.unWireEvents();\n detach(this.closeIcon);\n }\n else {\n this.setCloseIcon();\n this.wireEvents();\n }\n break;\n case 'severity':\n this.setSeverity();\n break;\n case 'variant':\n this.setVariant();\n break;\n case 'visible':\n this.setVisible();\n break;\n }\n }\n };\n /**\n * Method to destroy the Message component. It removes the component from the DOM and detaches all its bound events. It also removes the attributes and classes of the component.\n *\n * @returns {void}\n */\n Message.prototype.destroy = function () {\n var cssClass = isNOU(this.cssClass) ? [''] : this.cssClass.split(' ');\n var className = [SUCCESS, WARNING, INFO, ERROR, RTL, HIDE, OUTLINED, FILLED];\n var classList = (cssClass.length === 1 && cssClass[0] === '') ? className : className.concat(cssClass);\n removeClass([this.element], classList);\n this.element.removeAttribute('role');\n this.unWireEvents();\n if (!isNOU(this.iconElement)) {\n detach(this.iconElement);\n }\n detach(this.txtElement);\n if (!isNOU(this.closeIcon)) {\n detach(this.closeIcon);\n }\n _super.prototype.destroy.call(this);\n };\n __decorate([\n Property(null)\n ], Message.prototype, \"content\", void 0);\n __decorate([\n Property('')\n ], Message.prototype, \"cssClass\", void 0);\n __decorate([\n Property(true)\n ], Message.prototype, \"showIcon\", void 0);\n __decorate([\n Property(false)\n ], Message.prototype, \"showCloseIcon\", void 0);\n __decorate([\n Property('Normal')\n ], Message.prototype, \"severity\", void 0);\n __decorate([\n Property('Text')\n ], Message.prototype, \"variant\", void 0);\n __decorate([\n Property(true)\n ], Message.prototype, \"visible\", void 0);\n __decorate([\n Event()\n ], Message.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], Message.prototype, \"destroyed\", void 0);\n __decorate([\n Event()\n ], Message.prototype, \"closed\", void 0);\n Message = __decorate([\n NotifyPropertyChanges\n ], Message);\n return Message;\n}(Component));\nexport { Message };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { Message } from '@syncfusion/ej2-notifications';\nimport { ComponentBase, applyMixins } from '@syncfusion/ej2-react-base';\n/**\n * The React Message component displays messages with severity by differentiating icons and colors to denote the importance and context of the message to the end user.\n * ```html\n * Editing is restricted\n * ```\n */\nvar MessageComponent = /** @class */ (function (_super) {\n __extends(MessageComponent, _super);\n function MessageComponent(props) {\n var _this = _super.call(this, props) || this;\n _this.initRenderCalled = false;\n _this.checkInjectedModules = false;\n _this.statelessTemplateProps = null;\n _this.templateProps = null;\n _this.immediateRender = false;\n _this.portals = [];\n return _this;\n }\n MessageComponent.prototype.render = function () {\n if (((this.element && !this.initRenderCalled) || this.refreshing) && !this.isReactForeceUpdate) {\n _super.prototype.render.call(this);\n this.initRenderCalled = true;\n }\n else {\n return React.createElement('div', this.getDefaultAttributes(), [].concat(this.props.children, this.portals));\n }\n };\n return MessageComponent;\n}(Message));\nexport { MessageComponent };\napplyMixins(MessageComponent, [ComponentBase, React.Component]);\n","var randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\n\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n //\n // Note to future-self: No, you can't remove the `toLowerCase()` call.\n // REF: https://github.com/uuidjs/uuid/pull/677#issuecomment-1757351351\n return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();\n}\nfunction stringify(arr, offset = 0) {\n var uuid = unsafeStringify(arr, offset);\n // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n return uuid;\n}\nexport default stringify;","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n options = options || {};\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n offset = offset || 0;\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n return buf;\n }\n return unsafeStringify(rnds);\n}\nexport default v4;","import { createCheckBox } from '@syncfusion/ej2-buttons';\nimport { Input } from '@syncfusion/ej2-inputs';\nimport { EventHandler, select, removeClass, addClass, detach, compile, L10n } from '@syncfusion/ej2-base';\nimport { Browser, attributes, isNullOrUndefined, append, closest, prepend } from '@syncfusion/ej2-base';\nimport { dropDownBaseClasses } from '../drop-down-base/drop-down-base';\nvar ICON = 'e-icons';\nvar CHECKBOXFRAME = 'e-frame';\nvar CHECK = 'e-check';\nvar CHECKBOXWRAP = 'e-checkbox-wrapper';\nvar INDETERMINATE = 'e-stop';\nvar checkAllParent = 'e-selectall-parent';\nvar searchBackIcon = 'e-input-group-icon e-back-icon e-icons';\nvar filterBarClearIcon = 'e-input-group-icon e-clear-icon e-icons';\nvar filterInput = 'e-input-filter';\nvar filterParent = 'e-filter-parent';\nvar mobileFilter = 'e-ddl-device-filter';\nvar clearIcon = 'e-clear-icon';\nvar popupFullScreen = 'e-popup-full-page';\nvar device = 'e-ddl-device';\nvar FOCUS = 'e-input-focus';\n/**\n * The Multiselect enable CheckBoxSelection call this inject module.\n */\nvar CheckBoxSelection = /** @class */ (function () {\n function CheckBoxSelection(parent) {\n this.activeLi = [];\n this.activeEle = [];\n this.parent = parent;\n this.removeEventListener();\n this.addEventListener();\n }\n CheckBoxSelection.prototype.getModuleName = function () {\n return 'CheckBoxSelection';\n };\n CheckBoxSelection.prototype.addEventListener = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n this.parent.on('updatelist', this.listSelection, this);\n this.parent.on('listoption', this.listOption, this);\n this.parent.on('selectAll', this.setSelectAll, this);\n this.parent.on('checkSelectAll', this.checkSelectAll, this);\n this.parent.on('searchBox', this.setSearchBox, this);\n this.parent.on('blur', this.onBlurHandler, this);\n this.parent.on('targetElement', this.targetElement, this);\n this.parent.on('deviceSearchBox', this.setDeviceSearchBox, this);\n this.parent.on('inputFocus', this.getFocus, this);\n this.parent.on('reOrder', this.setReorder, this);\n this.parent.on('activeList', this.getActiveList, this);\n this.parent.on('selectAllText', this.setLocale, this);\n this.parent.on('filterBarPlaceholder', this.setPlaceholder, this);\n EventHandler.add(document, 'mousedown', this.onDocumentClick, this);\n this.parent.on('addItem', this.checboxCreate, this);\n this.parent.on('popupFullScreen', this.setPopupFullScreen, this);\n };\n CheckBoxSelection.prototype.removeEventListener = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n this.parent.off('updatelist', this.listSelection);\n this.parent.off('listoption', this.listOption);\n this.parent.off('selectAll', this.setSelectAll);\n this.parent.off('checkSelectAll', this.checkSelectAll);\n this.parent.off('searchBox', this.setSearchBox);\n this.parent.off('blur', this.onBlurHandler);\n this.parent.off('targetElement', this.targetElement);\n this.parent.off('deviceSearchBox', this.setDeviceSearchBox);\n this.parent.off('inputFocus', this.getFocus);\n this.parent.off('reOrder', this.setReorder);\n this.parent.off('activeList', this.getActiveList);\n this.parent.off('selectAllText', this.setLocale);\n this.parent.off('filterBarPlaceholder', this.setPlaceholder);\n this.parent.off('addItem', this.checboxCreate);\n this.parent.off('popupFullScreen', this.setPopupFullScreen);\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n CheckBoxSelection.prototype.listOption = function (args) {\n var _this = this;\n if (isNullOrUndefined(this.parent.listCurrentOptions.itemCreated)) {\n this.parent.listCurrentOptions.itemCreated = function (e) {\n _this.checboxCreate(e);\n };\n }\n else {\n var itemCreated_1 = this.parent.listCurrentOptions.itemCreated;\n this.parent.listCurrentOptions.itemCreated = function (e) {\n _this.checboxCreate(e);\n itemCreated_1.apply(_this, [e]);\n };\n }\n };\n CheckBoxSelection.prototype.setPlaceholder = function (props) {\n Input.setPlaceholder(props.filterBarPlaceholder, this.filterInput);\n };\n CheckBoxSelection.prototype.checboxCreate = function (e) {\n var item;\n if (!isNullOrUndefined(e.item)) {\n item = e.item;\n }\n else {\n item = e;\n }\n if (this.parent.enableGroupCheckBox || (item.className !== 'e-list-group-item '\n && item.className !== 'e-list-group-item')) {\n var checkboxEle = createCheckBox(this.parent.createElement, true);\n var icon = select('div.' + ICON, item);\n item.insertBefore(checkboxEle, item.childNodes[isNullOrUndefined(icon) ? 0 : 1]);\n select('.' + CHECKBOXFRAME, checkboxEle);\n if (this.parent.enableGroupCheckBox) {\n this.parent.popupWrapper.classList.add('e-multiselect-group');\n }\n return item;\n }\n else {\n return item;\n }\n };\n CheckBoxSelection.prototype.setSelectAll = function () {\n if (this.parent.showSelectAll) {\n if (isNullOrUndefined(this.checkAllParent)) {\n this.checkAllParent = this.parent.createElement('div', {\n className: checkAllParent\n });\n this.selectAllSpan = this.parent.createElement('span', {\n className: 'e-all-text'\n });\n this.selectAllSpan.textContent = '';\n this.checkAllParent.appendChild(this.selectAllSpan);\n this.setLocale();\n this.checboxCreate(this.checkAllParent);\n if (this.parent.headerTemplate) {\n if (!isNullOrUndefined(this.parent.filterParent)) {\n append([this.checkAllParent], this.parent.filterParent);\n }\n else {\n append([this.checkAllParent], this.parent.popupWrapper);\n }\n }\n if (!this.parent.headerTemplate) {\n if (!isNullOrUndefined(this.parent.filterParent)) {\n this.parent.filterParent.parentNode.insertBefore(this.checkAllParent, this.parent.filterParent.nextSibling);\n }\n else {\n prepend([this.checkAllParent], this.parent.popupWrapper);\n }\n }\n EventHandler.add(this.checkAllParent, 'mousedown', this.clickHandler, this);\n }\n if (this.parent.list.classList.contains('e-nodata') || (this.parent.listData && this.parent.listData.length <= 1 &&\n !(this.parent.isDynamicDataChange)) || (this.parent.isDynamicDataChange &&\n this.parent.listData && this.parent.listData.length <= 1)) {\n this.checkAllParent.style.display = 'none';\n }\n else {\n this.checkAllParent.style.display = 'block';\n }\n this.parent.selectAllHeight = this.checkAllParent.getBoundingClientRect().height;\n }\n else if (!isNullOrUndefined(this.checkAllParent)) {\n this.checkAllParent.parentElement.removeChild(this.checkAllParent);\n this.checkAllParent = null;\n }\n };\n CheckBoxSelection.prototype.destroy = function () {\n this.removeEventListener();\n EventHandler.remove(document, 'mousedown', this.onDocumentClick);\n this.checkAllParent = null;\n this.clearIconElement = null;\n this.filterInput = null;\n this.filterInputObj = null;\n this.checkWrapper = null;\n this.selectAllSpan = null;\n };\n CheckBoxSelection.prototype.listSelection = function (args) {\n var target;\n if (!isNullOrUndefined(args.e)) {\n var frameElm = args.li.querySelector('.e-checkbox-wrapper .e-frame');\n target = !isNullOrUndefined(args.e.target) ?\n (args.e.target.classList.contains('e-frame')\n && (!this.parent.showSelectAll\n || (this.checkAllParent && !this.checkAllParent.contains(args.e.target)))) ?\n args.e.target : args.li.querySelector('.e-checkbox-wrapper').childNodes[1]\n : args.li.querySelector('.e-checkbox-wrapper').childNodes[1];\n }\n else {\n var checkboxWrapper = args.li.querySelector('.e-checkbox-wrapper');\n target = checkboxWrapper ? checkboxWrapper.childNodes[1] : args.li.lastElementChild.childNodes[1];\n }\n if (this.parent.itemTemplate || this.parent.enableGroupCheckBox) {\n target = args.li.firstElementChild.childNodes[1];\n }\n if (!isNullOrUndefined(target)) {\n this.checkWrapper = closest(target, '.' + CHECKBOXWRAP);\n }\n if (!isNullOrUndefined(this.checkWrapper)) {\n var checkElement = select('.' + CHECKBOXFRAME, this.checkWrapper);\n var selectAll = false;\n this.validateCheckNode(this.checkWrapper, checkElement.classList.contains(CHECK), args.li, args.e, selectAll);\n }\n };\n CheckBoxSelection.prototype.validateCheckNode = function (checkWrap, isCheck, li, e, selectAll) {\n this.changeState(checkWrap, isCheck ? 'uncheck' : 'check', e, true, selectAll);\n };\n CheckBoxSelection.prototype.clickHandler = function (e) {\n var target;\n if (e.currentTarget.classList.contains(this.checkAllParent.className)) {\n target = e.currentTarget.firstElementChild.lastElementChild;\n }\n else {\n target = e.currentTarget;\n }\n this.checkWrapper = closest(target, '.' + CHECKBOXWRAP);\n var selectAll = true;\n if (!isNullOrUndefined(this.checkWrapper)) {\n var checkElement = select('.' + CHECKBOXFRAME, this.checkWrapper);\n this.validateCheckNode(this.checkWrapper, checkElement.classList.contains(CHECK), null, e, selectAll);\n }\n e.preventDefault();\n };\n CheckBoxSelection.prototype.changeState = function (wrapper, state, e, isPrevent, selectAll) {\n var ariaState;\n var frameSpan = wrapper.getElementsByClassName(CHECKBOXFRAME)[0];\n if (state === 'check' && !frameSpan.classList.contains(CHECK)) {\n frameSpan.classList.remove(INDETERMINATE);\n frameSpan.classList.add(CHECK);\n ariaState = 'true';\n if (selectAll) {\n this.parent.selectAllItems(true, e);\n this.setLocale(true);\n }\n }\n else if (state === 'uncheck' && (frameSpan.classList.contains(CHECK) || frameSpan.classList.contains(INDETERMINATE))) {\n removeClass([frameSpan], [CHECK, INDETERMINATE]);\n ariaState = 'false';\n if (selectAll) {\n this.parent.selectAllItems(false, e);\n this.setLocale();\n }\n }\n else if (state === 'indeterminate' && !(frameSpan.classList.contains(INDETERMINATE))) {\n removeClass([frameSpan], [CHECK]);\n frameSpan.classList.add(INDETERMINATE);\n ariaState = 'false';\n if (selectAll) {\n this.parent.selectAllItems(false, e);\n this.setLocale();\n }\n }\n };\n CheckBoxSelection.prototype.setSearchBox = function (args) {\n if (isNullOrUndefined(this.parent.filterParent)) {\n this.parent.filterParent = this.parent.createElement('span', {\n className: filterParent\n });\n this.filterInput = this.parent.createElement('input', {\n attrs: { type: 'text' },\n className: filterInput\n });\n this.parent.element.parentNode.insertBefore(this.filterInput, this.parent.element);\n var backIcon = false;\n if (Browser.isDevice) {\n backIcon = true;\n this.parent.mobFilter = false;\n }\n this.filterInputObj = Input.createInput({\n element: this.filterInput,\n buttons: backIcon ? [searchBackIcon, filterBarClearIcon] : [filterBarClearIcon],\n properties: { placeholder: this.parent.filterBarPlaceholder }\n }, this.parent.createElement);\n if (!isNullOrUndefined(this.parent.cssClass)) {\n if (this.parent.cssClass.split(' ').indexOf('e-outline') !== -1) {\n addClass([this.filterInputObj.container], 'e-outline');\n }\n else if (this.parent.cssClass.split(' ').indexOf('e-filled') !== -1) {\n addClass([this.filterInputObj.container], 'e-filled');\n }\n }\n append([this.filterInputObj.container], this.parent.filterParent);\n prepend([this.parent.filterParent], args.popupElement);\n attributes(this.filterInput, {\n 'aria-disabled': 'false',\n 'role': 'combobox',\n 'autocomplete': 'off',\n 'autocapitalize': 'off',\n 'spellcheck': 'false'\n });\n this.clearIconElement = this.filterInput.parentElement.querySelector('.' + clearIcon);\n if (!Browser.isDevice && this.clearIconElement) {\n EventHandler.add(this.clearIconElement, 'mousedown', this.clearText, this);\n this.clearIconElement.style.visibility = 'hidden';\n }\n EventHandler.add(this.filterInput, 'input', this.parent.onInput, this.parent);\n EventHandler.add(this.filterInput, 'keyup', this.parent.keyUp, this.parent);\n EventHandler.add(this.filterInput, 'keydown', this.parent.onKeyDown, this.parent);\n EventHandler.add(this.filterInput, 'blur', this.onBlurHandler, this);\n EventHandler.add(this.filterInput, 'paste', this.parent.pasteHandler, this.parent);\n this.parent.searchBoxHeight = (this.filterInputObj.container.parentElement).getBoundingClientRect().height;\n return this.filterInputObj;\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n CheckBoxSelection.prototype.clickOnBackIcon = function (e) {\n this.parent.hidePopup();\n removeClass([document.body, this.parent.popupObj.element], popupFullScreen);\n this.parent.inputElement.focus();\n };\n CheckBoxSelection.prototype.clearText = function (e) {\n this.parent.targetInputElement.value = '';\n if (this.parent.allowFiltering && this.parent.targetInputElement.value === '') {\n this.parent.search(null);\n }\n this.parent.refreshPopup();\n this.parent.refreshListItems(null);\n this.clearIconElement.style.visibility = 'hidden';\n this.filterInput.focus();\n this.setReorder(e);\n e.preventDefault();\n };\n CheckBoxSelection.prototype.setDeviceSearchBox = function () {\n this.parent.popupObj.element.classList.add(device);\n this.parent.popupObj.element.classList.add(mobileFilter);\n this.parent.popupObj.position = { X: 0, Y: 0 };\n this.parent.popupObj.dataBind();\n this.setSearchBoxPosition();\n this.backIconElement = this.filterInputObj.container.querySelector('.e-back-icon');\n this.clearIconElement = this.filterInputObj.container.querySelector('.' + clearIcon);\n this.clearIconElement.style.visibility = 'hidden';\n EventHandler.add(this.backIconElement, 'click', this.clickOnBackIcon, this);\n EventHandler.add(this.clearIconElement, 'click', this.clearText, this);\n };\n CheckBoxSelection.prototype.setSearchBoxPosition = function () {\n var searchBoxHeight = this.filterInput.parentElement.getBoundingClientRect().height;\n var selectAllHeight = 0;\n if (this.checkAllParent) {\n selectAllHeight = this.checkAllParent.getBoundingClientRect().height;\n }\n this.parent.popupObj.element.style.maxHeight = '100%';\n this.parent.popupObj.element.style.width = '100%';\n this.parent.list.style.maxHeight = (window.innerHeight - searchBoxHeight - selectAllHeight) + 'px';\n this.parent.list.style.height = (window.innerHeight - searchBoxHeight - selectAllHeight) + 'px';\n var clearElement = this.filterInput.parentElement.querySelector('.' + clearIcon);\n detach(this.filterInput);\n clearElement.parentElement.insertBefore(this.filterInput, clearElement);\n };\n CheckBoxSelection.prototype.setPopupFullScreen = function () {\n attributes(this.parent.popupObj.element, { style: 'left:0px;right:0px;top:0px;bottom:0px;' });\n addClass([document.body, this.parent.popupObj.element], popupFullScreen);\n this.parent.popupObj.element.style.maxHeight = '100%';\n this.parent.popupObj.element.style.width = '100%';\n };\n CheckBoxSelection.prototype.targetElement = function () {\n if (!isNullOrUndefined(this.clearIconElement)) {\n this.parent.targetInputElement = this.filterInput;\n this.clearIconElement.style.visibility = this.parent.targetInputElement.value === '' ? 'hidden' : 'visible';\n }\n return this.parent.targetInputElement.value;\n };\n CheckBoxSelection.prototype.onBlurHandler = function (e) {\n if (!this.parent.element.classList.contains('e-listbox')) {\n var target = void 0;\n if (this.parent.keyAction) {\n return;\n }\n if (Browser.isIE) {\n target = !isNullOrUndefined(e) && e.target;\n }\n if (!Browser.isIE) {\n target = !isNullOrUndefined(e) && e.relatedTarget;\n }\n // eslint-disable-next-line max-len\n if (this.parent.popupObj && document.body.contains(this.parent.popupObj.element) && this.parent.popupObj.element.contains(target)\n && !Browser.isIE && this.filterInput) {\n this.filterInput.focus();\n return;\n }\n if (this.parent.scrollFocusStatus && this.filterInput) {\n e.preventDefault();\n this.filterInput.focus();\n this.parent.scrollFocusStatus = false;\n return;\n }\n if (this.parent.popupObj && document.body.contains(this.parent.popupObj.element)\n && !this.parent.popupObj.element.classList.contains('e-popup-close')) {\n this.parent.inputFocus = false;\n this.parent.updateValueState(e, this.parent.value, this.parent.tempValues);\n this.parent.dispatchEvent(this.parent.hiddenElement, 'change');\n }\n if (this.parent.popupObj && document.body.contains(this.parent.popupObj.element) &&\n !this.parent.popupObj.element.classList.contains('e-popup-close')) {\n this.parent.inputFocus = false;\n this.parent.overAllWrapper.classList.remove(FOCUS);\n this.parent.trigger('blur');\n this.parent.focused = true;\n }\n if (this.parent.popupObj && document.body.contains(this.parent.popupObj.element) &&\n !this.parent.popupObj.element.classList.contains('e-popup-close') && !Browser.isDevice) {\n this.parent.hidePopup();\n }\n }\n };\n CheckBoxSelection.prototype.onDocumentClick = function (e) {\n if (this.parent.getLocaleName() !== 'listbox') {\n var target = e.target;\n if (!isNullOrUndefined(this.parent.popupObj) && closest(target, '[id=\"' + this.parent.popupObj.element.id + '\"]')) {\n if (!(this.filterInput && this.filterInput.value !== '')) {\n e.preventDefault();\n }\n }\n if (!(!isNullOrUndefined(this.parent.popupObj) && closest(target, '[id=\"' + this.parent.popupObj.element.id + '\"]'))\n && !isNullOrUndefined(this.parent.overAllWrapper) && !this.parent.overAllWrapper.contains(e.target)) {\n if (this.parent.overAllWrapper.classList.contains(dropDownBaseClasses.focus) || this.parent.isPopupOpen()) {\n this.parent.inputFocus = false;\n this.parent.scrollFocusStatus = false;\n this.parent.hidePopup();\n this.parent.onBlurHandler(e, true);\n this.parent.focused = true;\n }\n }\n else {\n this.parent.scrollFocusStatus = (Browser.isIE || Browser.info.name === 'edge') &&\n (document.activeElement === this.filterInput);\n }\n if (!isNullOrUndefined(this.parent.overAllWrapper) && !this.parent.overAllWrapper.contains(e.target) && this.parent.overAllWrapper.classList.contains('e-input-focus') &&\n !this.parent.isPopupOpen()) {\n if (Browser.isIE) {\n this.parent.onBlurHandler();\n }\n else {\n this.parent.onBlurHandler(e);\n }\n }\n if (this.filterInput === target) {\n this.filterInput.focus();\n }\n }\n };\n CheckBoxSelection.prototype.getFocus = function (e) {\n this.parent.overAllWrapper.classList.remove(FOCUS);\n if (this.parent.keyAction && e.value !== 'clear' && e.value !== 'focus') {\n this.parent.keyAction = false;\n return;\n }\n if (e.value === 'focus') {\n this.filterInput.focus();\n this.parent.removeFocus();\n EventHandler.remove(this.parent.list, 'keydown', this.parent.onKeyDown);\n }\n if (e.value === 'clear') {\n this.filterInput.value = '';\n this.clearIconElement.style.visibility = 'hidden';\n }\n };\n CheckBoxSelection.prototype.checkSelectAll = function (e) {\n if (e.value === 'check') {\n this.changeState(this.checkAllParent, e.value, null, null, false);\n this.setLocale(true);\n }\n if (e.value === 'uncheck') {\n this.changeState(this.checkAllParent, e.value, null, null, false);\n this.setLocale();\n }\n if (e.value === 'indeterminate') {\n this.changeState(this.checkAllParent, e.value, null, null, false);\n this.setLocale();\n }\n };\n CheckBoxSelection.prototype.setLocale = function (unSelect) {\n if (this.parent.selectAllText !== 'Select All' || this.parent.unSelectAllText !== 'Unselect All') {\n var template = unSelect ? this.parent.unSelectAllText : this.parent.selectAllText;\n this.selectAllSpan.textContent = '';\n var compiledString = compile(template);\n var templateName = unSelect ? 'unSelectAllText' : 'selectAllText';\n for (var _i = 0, _a = compiledString({}, this.parent, templateName, null, !this.parent.isStringTemplate); _i < _a.length; _i++) {\n var item = _a[_i];\n this.selectAllSpan.textContent = item.textContent;\n }\n }\n else {\n var l10nLocale = { selectAllText: 'Select All', unSelectAllText: 'Unselect All' };\n var l10n = new L10n(this.parent.getLocaleName(), {}, this.parent.locale);\n if (l10n.getConstant('selectAllText') === '') {\n l10n = new L10n('dropdowns', l10nLocale, this.parent.locale);\n }\n this.selectAllSpan.textContent = unSelect ? l10n.getConstant('unSelectAllText') : l10n.getConstant('selectAllText');\n }\n };\n CheckBoxSelection.prototype.getActiveList = function (args) {\n if (args.li.classList.contains('e-active')) {\n this.activeLi.push(args.li.cloneNode(true));\n }\n else {\n this.activeLi.splice(args.index, 1);\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n CheckBoxSelection.prototype.setReorder = function (args) {\n if (this.parent.enableSelectionOrder && !isNullOrUndefined(this.parent.value)) {\n var activeLiCount = this.parent.ulElement.querySelectorAll('li.e-active').length;\n var remLi = void 0;\n var ulEle_1 = this.parent.createElement('ul', {\n className: 'e-list-parent e-ul e-reorder'\n });\n if (activeLiCount > 0) {\n var activeListItems = this.parent.ulElement.querySelectorAll('li.e-active');\n activeListItems.forEach(function (item) {\n ulEle_1.appendChild(item);\n });\n remLi = this.parent.ulElement.querySelectorAll('li.e-active');\n addClass(remLi, 'e-reorder-hide');\n prepend([ulEle_1], this.parent.list);\n }\n this.parent.focusAtFirstListItem();\n }\n };\n return CheckBoxSelection;\n}());\nexport { CheckBoxSelection };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, EventHandler, Property, Event, KeyboardEvents, rippleEffect } from '@syncfusion/ej2-base';\nimport { getUniqueID, compile as templateCompiler } from '@syncfusion/ej2-base';\nimport { isVisible, closest, attributes, detach, select, addClass, removeClass, append } from '@syncfusion/ej2-base';\nimport { NotifyPropertyChanges, ChildProperty, Collection, Animation } from '@syncfusion/ej2-base';\nimport { setStyleAttribute as setStyle, Complex } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined as isNOU, formatUnit, selectAll, SanitizeHtmlHelper, isRippleEnabled } from '@syncfusion/ej2-base';\nvar CLS_ACRDN_ROOT = 'e-acrdn-root';\nvar CLS_ROOT = 'e-accordion';\nvar CLS_ITEM = 'e-acrdn-item';\nvar CLS_ITEMFOCUS = 'e-item-focus';\nvar CLS_ITEMHIDE = 'e-hide';\nvar CLS_HEADER = 'e-acrdn-header';\nvar CLS_HEADERICN = 'e-acrdn-header-icon';\nvar CLS_HEADERCTN = 'e-acrdn-header-content';\nvar CLS_CONTENT = 'e-acrdn-panel';\nvar CLS_CTENT = 'e-acrdn-content';\nvar CLS_TOOGLEICN = 'e-toggle-icon';\nvar CLS_COLLAPSEICN = 'e-tgl-collapse-icon e-icons';\nvar CLS_EXPANDICN = 'e-expand-icon';\nvar CLS_RTL = 'e-rtl';\nvar CLS_CTNHIDE = 'e-content-hide';\nvar CLS_SLCT = 'e-select';\nvar CLS_SLCTED = 'e-selected';\nvar CLS_ACTIVE = 'e-active';\nvar CLS_ANIMATE = 'e-animate';\nvar CLS_DISABLE = 'e-overlay';\nvar CLS_TOGANIMATE = 'e-toggle-animation';\nvar CLS_NEST = 'e-nested';\nvar CLS_EXPANDSTATE = 'e-expand-state';\nvar CLS_CONTAINER = 'e-accordion-container';\n/**\n * Objects used for configuring the Accordion expanding item action properties.\n */\nvar AccordionActionSettings = /** @class */ (function (_super) {\n __extends(AccordionActionSettings, _super);\n function AccordionActionSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('SlideDown')\n ], AccordionActionSettings.prototype, \"effect\", void 0);\n __decorate([\n Property(400)\n ], AccordionActionSettings.prototype, \"duration\", void 0);\n __decorate([\n Property('linear')\n ], AccordionActionSettings.prototype, \"easing\", void 0);\n return AccordionActionSettings;\n}(ChildProperty));\nexport { AccordionActionSettings };\n/**\n * Objects used for configuring the Accordion animation properties.\n */\nvar AccordionAnimationSettings = /** @class */ (function (_super) {\n __extends(AccordionAnimationSettings, _super);\n function AccordionAnimationSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Complex({ effect: 'SlideUp', duration: 400, easing: 'linear' }, AccordionActionSettings)\n ], AccordionAnimationSettings.prototype, \"collapse\", void 0);\n __decorate([\n Complex({ effect: 'SlideDown', duration: 400, easing: 'linear' }, AccordionActionSettings)\n ], AccordionAnimationSettings.prototype, \"expand\", void 0);\n return AccordionAnimationSettings;\n}(ChildProperty));\nexport { AccordionAnimationSettings };\n/**\n * An item object that is used to configure Accordion items.\n */\nvar AccordionItem = /** @class */ (function (_super) {\n __extends(AccordionItem, _super);\n function AccordionItem() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(null)\n ], AccordionItem.prototype, \"content\", void 0);\n __decorate([\n Property(null)\n ], AccordionItem.prototype, \"header\", void 0);\n __decorate([\n Property(null)\n ], AccordionItem.prototype, \"cssClass\", void 0);\n __decorate([\n Property(null)\n ], AccordionItem.prototype, \"iconCss\", void 0);\n __decorate([\n Property(false)\n ], AccordionItem.prototype, \"expanded\", void 0);\n __decorate([\n Property(true)\n ], AccordionItem.prototype, \"visible\", void 0);\n __decorate([\n Property(false)\n ], AccordionItem.prototype, \"disabled\", void 0);\n __decorate([\n Property()\n ], AccordionItem.prototype, \"id\", void 0);\n return AccordionItem;\n}(ChildProperty));\nexport { AccordionItem };\n/**\n * The Accordion is a vertically collapsible content panel that displays one or more panels at a time within the available space.\n * ```html\n *
      \n * \n * ```\n */\nvar Accordion = /** @class */ (function (_super) {\n __extends(Accordion, _super);\n /**\n * Initializes a new instance of the Accordion class.\n *\n * @param {AccordionModel} options - Specifies Accordion model properties as options.\n * @param {string | HTMLElement} element - Specifies the element that is rendered as an Accordion.\n */\n function Accordion(options, element) {\n var _this = _super.call(this, options, element) || this;\n /**\n * Contains the keyboard configuration of the Accordion.\n */\n _this.keyConfigs = {\n moveUp: 'uparrow',\n moveDown: 'downarrow',\n enter: 'enter',\n space: 'space',\n home: 'home',\n end: 'end'\n };\n return _this;\n }\n /**\n * Removes the control from the DOM and also removes all its related events.\n *\n * @returns {void}\n */\n Accordion.prototype.destroy = function () {\n if (this.isReact || this.isAngular || this.isVue) {\n this.clearTemplate();\n }\n var ele = this.element;\n _super.prototype.destroy.call(this);\n this.unwireEvents();\n this.isDestroy = true;\n this.restoreContent(null);\n [].slice.call(ele.children).forEach(function (el) {\n ele.removeChild(el);\n });\n if (this.trgtEle) {\n this.trgtEle = null;\n while (this.ctrlTem.firstElementChild) {\n ele.appendChild(this.ctrlTem.firstElementChild);\n }\n this.ctrlTem = null;\n }\n ele.classList.remove(CLS_ACRDN_ROOT);\n ele.removeAttribute('style');\n this.element.removeAttribute('data-ripple');\n if (!this.isNested && isRippleEnabled) {\n this.removeRippleEffect();\n }\n };\n Accordion.prototype.preRender = function () {\n var nested = closest(this.element, '.' + CLS_CONTENT);\n this.isNested = false;\n this.templateEle = [];\n if (!this.isDestroy) {\n this.isDestroy = false;\n }\n if (nested && nested.firstElementChild && nested.firstElementChild.firstElementChild) {\n if (nested.firstElementChild.firstElementChild.classList.contains(CLS_ROOT)) {\n nested.classList.add(CLS_NEST);\n this.isNested = true;\n }\n }\n else {\n this.element.classList.add(CLS_ACRDN_ROOT);\n }\n if (this.enableRtl) {\n this.add(this.element, CLS_RTL);\n }\n };\n Accordion.prototype.add = function (ele, val) {\n ele.classList.add(val);\n };\n Accordion.prototype.remove = function (ele, val) {\n ele.classList.remove(val);\n };\n /**\n * To initialize the control rendering\n *\n * @private\n * @returns {void}\n */\n Accordion.prototype.render = function () {\n this.initializeHeaderTemplate();\n this.initializeItemTemplate();\n this.initialize();\n this.renderControl();\n this.wireEvents();\n this.renderComplete();\n };\n Accordion.prototype.initialize = function () {\n var width = formatUnit(this.width);\n var height = formatUnit(this.height);\n setStyle(this.element, { 'width': width, 'height': height });\n if (isNOU(this.initExpand)) {\n this.initExpand = [];\n }\n if (this.expandedIndices.length > 0) {\n this.initExpand = this.expandedIndices;\n }\n };\n Accordion.prototype.renderControl = function () {\n this.trgtEle = (this.element.children.length > 0) ? select('div', this.element) : null;\n this.renderItems();\n this.initItemExpand();\n };\n Accordion.prototype.wireFocusEvents = function () {\n var acrdItem = [].slice.call(this.element.querySelectorAll('.' + CLS_ITEM));\n for (var _i = 0, acrdItem_1 = acrdItem; _i < acrdItem_1.length; _i++) {\n var item = acrdItem_1[_i];\n var headerEle = item.querySelector('.' + CLS_HEADER);\n if (item.childElementCount > 0 && headerEle) {\n EventHandler.clearEvents(headerEle);\n EventHandler.add(headerEle, 'focus', this.focusIn, this);\n EventHandler.add(headerEle, 'blur', this.focusOut, this);\n }\n }\n };\n Accordion.prototype.unwireEvents = function () {\n EventHandler.remove(this.element, 'click', this.clickHandler);\n if (!isNOU(this.keyModule)) {\n this.keyModule.destroy();\n }\n };\n Accordion.prototype.wireEvents = function () {\n EventHandler.add(this.element, 'click', this.clickHandler, this);\n if (!this.isNested && !this.isDestroy) {\n this.removeRippleEffect = rippleEffect(this.element, { selector: '.' + CLS_HEADER });\n }\n if (!this.isNested) {\n this.keyModule = new KeyboardEvents(this.element, {\n keyAction: this.keyActionHandler.bind(this),\n keyConfigs: this.keyConfigs,\n eventName: 'keydown'\n });\n }\n };\n Accordion.prototype.templateParser = function (template) {\n if (template) {\n try {\n if (document.querySelectorAll(template).length) {\n return templateCompiler(document.querySelector(template).innerHTML.trim());\n }\n else {\n return templateCompiler(template);\n }\n }\n catch (error) {\n return templateCompiler(template);\n }\n }\n return undefined;\n };\n Accordion.prototype.initializeHeaderTemplate = function () {\n if (this.headerTemplate) {\n this.headerTemplateFn = this.templateParser(this.headerTemplate);\n }\n };\n Accordion.prototype.initializeItemTemplate = function () {\n if (this.itemTemplate) {\n this.itemTemplateFn = this.templateParser(this.itemTemplate);\n }\n };\n Accordion.prototype.getHeaderTemplate = function () {\n return this.headerTemplateFn;\n };\n Accordion.prototype.getItemTemplate = function () {\n return this.itemTemplateFn;\n };\n Accordion.prototype.focusIn = function (e) {\n e.target.parentElement.classList.add(CLS_ITEMFOCUS);\n };\n Accordion.prototype.focusOut = function (e) {\n e.target.parentElement.classList.remove(CLS_ITEMFOCUS);\n };\n Accordion.prototype.ctrlTemplate = function () {\n this.ctrlTem = this.element.cloneNode(true);\n var innerEles;\n var rootEle = select('.' + CLS_CONTAINER, this.element);\n if (rootEle) {\n innerEles = rootEle.children;\n }\n else {\n innerEles = this.element.children;\n }\n var items = [];\n [].slice.call(innerEles).forEach(function (el) {\n items.push({\n header: (el.childElementCount > 0 && el.children[0]) ? (el.children[0]) : '',\n content: (el.childElementCount > 1 && el.children[1]) ? (el.children[1]) : ''\n });\n el.parentNode.removeChild(el);\n });\n if (rootEle) {\n this.element.removeChild(rootEle);\n }\n this.setProperties({ items: items }, true);\n };\n Accordion.prototype.toggleIconGenerate = function () {\n var tglIcon = this.createElement('div', { className: CLS_TOOGLEICN });\n var hdrColIcon = this.createElement('span', { className: CLS_COLLAPSEICN });\n tglIcon.appendChild(hdrColIcon);\n return tglIcon;\n };\n Accordion.prototype.initItemExpand = function () {\n var len = this.initExpand.length;\n if (len === 0) {\n return;\n }\n if (this.expandMode === 'Single') {\n this.expandItem(true, this.initExpand[len - 1]);\n }\n else {\n for (var i = 0; i < len; i++) {\n this.expandItem(true, this.initExpand[parseInt(i.toString(), 10)]);\n }\n }\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n Accordion.prototype.renderItems = function () {\n var _this = this;\n var ele = this.element;\n var innerItem;\n var innerDataSourceItem;\n if (!isNOU(this.trgtEle)) {\n this.ctrlTemplate();\n }\n if (this.dataSource.length > 0) {\n this.dataSource.forEach(function (item, index) {\n innerDataSourceItem = _this.renderInnerItem(item, index);\n ele.appendChild(innerDataSourceItem);\n if (innerDataSourceItem.childElementCount > 0) {\n EventHandler.add(innerDataSourceItem.querySelector('.' + CLS_HEADER), 'focus', _this.focusIn, _this);\n EventHandler.add(innerDataSourceItem.querySelector('.' + CLS_HEADER), 'blur', _this.focusOut, _this);\n }\n });\n }\n else {\n var items = this.items;\n if (ele && items.length > 0) {\n items.forEach(function (item, index) {\n innerItem = _this.renderInnerItem(item, index);\n ele.appendChild(innerItem);\n if (innerItem.childElementCount > 0) {\n EventHandler.add(innerItem.querySelector('.' + CLS_HEADER), 'focus', _this.focusIn, _this);\n EventHandler.add(innerItem.querySelector('.' + CLS_HEADER), 'blur', _this.focusOut, _this);\n }\n });\n }\n }\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n Accordion.prototype.clickHandler = function (e) {\n var trgt = e.target;\n var items = this.getItems();\n var eventArgs = {};\n var tglIcon;\n var acrdEle = closest(trgt, '.' + CLS_ROOT);\n if (acrdEle !== this.element) {\n return;\n }\n trgt.classList.add('e-target');\n var acrdnItem = closest(trgt, '.' + CLS_ITEM);\n var acrdnHdr = closest(trgt, '.' + CLS_HEADER);\n var acrdnCtn = closest(trgt, '.' + CLS_CONTENT);\n if (acrdnItem && (isNOU(acrdnHdr) || isNOU(acrdnCtn))) {\n acrdnHdr = acrdnItem.children[0];\n acrdnCtn = acrdnItem.children[1];\n }\n if (acrdnHdr) {\n tglIcon = select('.' + CLS_TOOGLEICN, acrdnHdr);\n }\n var acrdnCtnItem;\n if (acrdnHdr) {\n acrdnCtnItem = closest(acrdnHdr, '.' + CLS_ITEM);\n }\n else if (acrdnCtn) {\n acrdnCtnItem = closest(acrdnCtn, '.' + CLS_ITEM);\n }\n var index = this.getIndexByItem(acrdnItem);\n if (acrdnCtnItem) {\n eventArgs.item = items[this.getIndexByItem(acrdnCtnItem)];\n }\n eventArgs.originalEvent = e;\n var ctnCheck = !isNOU(tglIcon) && acrdnItem.childElementCount <= 1;\n if (ctnCheck && (isNOU(acrdnCtn) || !isNOU(select('.' + CLS_HEADER + ' .' + CLS_TOOGLEICN, acrdnCtnItem)))) {\n acrdnItem.appendChild(this.contentRendering(index));\n this.ariaAttrUpdate(acrdnItem);\n this.afterContentRender(trgt, eventArgs, acrdnItem, acrdnHdr, acrdnCtn, acrdnCtnItem);\n }\n else {\n this.afterContentRender(trgt, eventArgs, acrdnItem, acrdnHdr, acrdnCtn, acrdnCtnItem);\n }\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n Accordion.prototype.afterContentRender = function (trgt, eventArgs, acrdnItem, acrdnHdr, acrdnCtn, acrdnCtnItem) {\n var _this = this;\n var acrdActive = [];\n this.trigger('clicked', eventArgs);\n var cntclkCheck = (acrdnCtn && !isNOU(select('.e-target', acrdnCtn)));\n var inlineAcrdnSel = '.' + CLS_CONTENT + ' .' + CLS_ROOT;\n var inlineEleAcrdn = acrdnCtn && !isNOU(select('.' + CLS_ROOT, acrdnCtn)) && isNOU(closest(trgt, inlineAcrdnSel));\n var nestContCheck = acrdnCtn && isNOU(select('.' + CLS_ROOT, acrdnCtn)) || !(closest(trgt, '.' + CLS_ROOT) === this.element);\n cntclkCheck = cntclkCheck && (inlineEleAcrdn || nestContCheck);\n trgt.classList.remove('e-target');\n if (trgt.classList.contains(CLS_CONTENT) || trgt.classList.contains(CLS_CTENT) || cntclkCheck) {\n return;\n }\n var acrdcontainer = this.element.querySelector('.' + CLS_CONTAINER);\n var acrdnchild = (acrdcontainer) ? acrdcontainer.children : this.element.children;\n [].slice.call(acrdnchild).forEach(function (el) {\n if (el.classList.contains(CLS_ACTIVE)) {\n acrdActive.push(el);\n }\n });\n var acrdAniEle = [].slice.call(this.element.querySelectorAll('.' + CLS_ITEM + ' [' + CLS_ANIMATE + ']'));\n if (acrdAniEle.length > 0) {\n for (var _i = 0, acrdAniEle_1 = acrdAniEle; _i < acrdAniEle_1.length; _i++) {\n var el = acrdAniEle_1[_i];\n acrdActive.push(el.parentElement);\n }\n }\n var sameContentCheck = acrdActive.indexOf(acrdnCtnItem) !== -1 && acrdnCtn.getAttribute('e-animate') === 'true';\n var sameHeader = false;\n if (!isNOU(acrdnItem) && !isNOU(acrdnHdr)) {\n var acrdnCtn_1 = select('.' + CLS_CONTENT, acrdnItem);\n var acrdnRoot = closest(acrdnItem, '.' + CLS_ACRDN_ROOT);\n var expandState = acrdnRoot.querySelector('.' + CLS_EXPANDSTATE);\n if (isNOU(acrdnCtn_1)) {\n return;\n }\n sameHeader = (expandState === acrdnItem);\n if (isVisible(acrdnCtn_1) && (!sameContentCheck || acrdnCtnItem.classList.contains(CLS_SLCTED))) {\n this.collapse(acrdnCtn_1);\n }\n else {\n if ((acrdActive.length > 0) && this.expandMode === 'Single' && !sameContentCheck) {\n acrdActive.forEach(function (el) {\n _this.collapse(select('.' + CLS_CONTENT, el));\n el.classList.remove(CLS_EXPANDSTATE);\n });\n }\n this.expand(acrdnCtn_1);\n }\n if (!isNOU(expandState) && !sameHeader) {\n expandState.classList.remove(CLS_EXPANDSTATE);\n }\n }\n };\n Accordion.prototype.eleMoveFocus = function (action, root, trgt) {\n var clst;\n var clstItem = closest(trgt, '.' + CLS_ITEM);\n if (trgt === root) {\n clst = ((action === 'moveUp' ? trgt.lastElementChild : trgt).querySelector('.' + CLS_HEADER));\n }\n else if (trgt.classList.contains(CLS_HEADER)) {\n clstItem = (action === 'moveUp' ? clstItem.previousElementSibling : clstItem.nextElementSibling);\n if (clstItem) {\n clst = select('.' + CLS_HEADER, clstItem);\n }\n }\n if (clst) {\n clst.focus();\n }\n };\n Accordion.prototype.keyActionHandler = function (e) {\n var trgt = e.target;\n var header = closest(e.target, CLS_HEADER);\n if (isNOU(header) && !trgt.classList.contains(CLS_ROOT) && !trgt.classList.contains(CLS_HEADER)) {\n return;\n }\n var clst;\n var root = this.element;\n var content;\n switch (e.action) {\n case 'moveUp':\n this.eleMoveFocus(e.action, root, trgt);\n break;\n case 'moveDown':\n this.eleMoveFocus(e.action, root, trgt);\n break;\n case 'space':\n case 'enter':\n content = trgt.nextElementSibling;\n if (!isNOU(content) && content.classList.contains(CLS_CONTENT)) {\n if (content.getAttribute('e-animate') !== 'true') {\n trgt.click();\n }\n }\n else {\n trgt.click();\n }\n e.preventDefault();\n break;\n case 'home':\n case 'end':\n clst = e.action === 'home' ? root.firstElementChild.children[0] : root.lastElementChild.children[0];\n clst.focus();\n e.preventDefault();\n break;\n }\n };\n Accordion.prototype.headerEleGenerate = function () {\n var header = this.createElement('div', { className: CLS_HEADER, id: getUniqueID('acrdn_header') });\n var ariaAttr = {\n 'tabindex': '0', 'role': 'button', 'aria-disabled': 'false', 'aria-expanded': 'false'\n };\n attributes(header, ariaAttr);\n return header;\n };\n Accordion.prototype.renderInnerItem = function (item, index) {\n var innerEle = this.createElement('div', {\n className: CLS_ITEM, id: item.id || getUniqueID('acrdn_item')\n });\n if (this.headerTemplate) {\n var ctnEle = this.headerEleGenerate();\n var hdrEle = this.createElement('div', { className: CLS_HEADERCTN });\n ctnEle.appendChild(hdrEle);\n append(this.getHeaderTemplate()(item, this, 'headerTemplate', this.element.id + '_headerTemplate', false), hdrEle);\n innerEle.appendChild(ctnEle);\n ctnEle.appendChild(this.toggleIconGenerate());\n this.add(innerEle, CLS_SLCT);\n return innerEle;\n }\n if (item.header && this.angularnativeCondiCheck(item, 'header')) {\n if (this.enableHtmlSanitizer && typeof (item.header) === 'string') {\n item.header = SanitizeHtmlHelper.sanitize(item.header);\n }\n var ctnEle = this.headerEleGenerate();\n var hdrEle = this.createElement('div', { className: CLS_HEADERCTN });\n ctnEle.appendChild(hdrEle);\n ctnEle.appendChild(this.fetchElement(hdrEle, item.header, index, true));\n innerEle.appendChild(ctnEle);\n }\n var hdr = select('.' + CLS_HEADER, innerEle);\n if (item.expanded && !isNOU(index) && (!this.enablePersistence)) {\n if (this.initExpand.indexOf(index) === -1) {\n this.initExpand.push(index);\n }\n }\n if (item.cssClass) {\n addClass([innerEle], item.cssClass.split(' '));\n }\n if (item.disabled) {\n addClass([innerEle], CLS_DISABLE);\n }\n if (item.visible === false) {\n addClass([innerEle], CLS_ITEMHIDE);\n }\n if (item.iconCss) {\n var hdrIcnEle = this.createElement('div', { className: CLS_HEADERICN });\n var icon = this.createElement('span', { className: item.iconCss + ' e-icons' });\n hdrIcnEle.appendChild(icon);\n if (isNOU(hdr)) {\n hdr = this.headerEleGenerate();\n hdr.appendChild(hdrIcnEle);\n innerEle.appendChild(hdr);\n }\n else {\n hdr.insertBefore(hdrIcnEle, hdr.childNodes[0]);\n }\n }\n if (item.content && this.angularnativeCondiCheck(item, 'content')) {\n var hdrIcon = this.toggleIconGenerate();\n if (isNOU(hdr)) {\n hdr = this.headerEleGenerate();\n innerEle.appendChild(hdr);\n }\n hdr.appendChild(hdrIcon);\n this.add(innerEle, CLS_SLCT);\n }\n return innerEle;\n };\n Accordion.prototype.angularnativeCondiCheck = function (item, prop) {\n var property = prop === 'content' ? item.content : item.header;\n var content = property;\n if (this.isAngular && !isNOU(content.elementRef)) {\n var data = content.elementRef.nativeElement.data;\n if (isNOU(data) || data === '' || (data.indexOf('bindings=') === -1)) {\n return true;\n }\n var parseddata = JSON.parse(content.elementRef.nativeElement.data.replace('bindings=', ''));\n if (!isNOU(parseddata) && parseddata['ng-reflect-ng-if'] === 'false') {\n return false;\n }\n else {\n return true;\n }\n }\n else {\n return true;\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n Accordion.prototype.fetchElement = function (ele, value, index, isHeader) {\n var templateFn;\n var temString;\n try {\n if (document.querySelectorAll(value).length && value !== 'Button') {\n var eleVal = document.querySelector(value);\n temString = eleVal.outerHTML.trim();\n ele.appendChild(eleVal);\n eleVal.style.display = '';\n }\n else {\n templateFn = templateCompiler(value);\n }\n }\n catch (e) {\n if (typeof (value) === 'string') {\n ele.innerHTML = SanitizeHtmlHelper.sanitize(value);\n }\n else if (!isNOU(this.trgtEle) && (value instanceof (HTMLElement))) {\n ele.appendChild(value);\n ele.firstElementChild.style.display = '';\n }\n else {\n templateFn = templateCompiler(value);\n }\n }\n var tempArray;\n if (!isNOU(templateFn)) {\n if (this.isReact) {\n this.renderReactTemplates();\n }\n var templateProps = void 0;\n var templateName = void 0;\n if (ele.classList.contains(CLS_HEADERCTN)) {\n templateProps = this.element.id + index + '_header';\n templateName = 'header';\n }\n else if (ele.classList.contains(CLS_CTENT)) {\n templateProps = this.element.id + index + '_content';\n templateName = 'content';\n }\n tempArray = templateFn({}, this, templateName, templateProps, this.isStringTemplate);\n }\n if (!isNOU(tempArray) && tempArray.length > 0 && !(isNOU(tempArray[0].tagName) && tempArray.length === 1)) {\n [].slice.call(tempArray).forEach(function (el) {\n if (!isNOU(el.tagName)) {\n el.style.display = '';\n }\n ele.appendChild(el);\n });\n }\n else if (ele.childElementCount === 0) {\n ele.innerHTML = SanitizeHtmlHelper.sanitize(value);\n }\n if (!isNOU(temString)) {\n if (this.templateEle.indexOf(value) === -1) {\n this.templateEle.push(value);\n }\n }\n return ele;\n };\n Accordion.prototype.ariaAttrUpdate = function (itemEle) {\n var header = select('.' + CLS_HEADER, itemEle);\n var content = select('.' + CLS_CONTENT, itemEle);\n header.setAttribute('aria-controls', content.id);\n content.setAttribute('aria-labelledby', header.id);\n content.setAttribute('role', 'region');\n };\n Accordion.prototype.contentRendering = function (index) {\n var itemcnt = this.createElement('div', { className: CLS_CONTENT + ' ' + CLS_CTNHIDE, id: getUniqueID('acrdn_panel') });\n attributes(itemcnt, { 'aria-hidden': 'true' });\n var ctn = this.createElement('div', { className: CLS_CTENT });\n if (this.dataSource.length > 0) {\n if (this.isReact) {\n this.renderReactTemplates();\n }\n append(this.getItemTemplate()(this.dataSource[parseInt(index.toString(), 10)], this, 'itemTemplate', this.element.id + '_itemTemplate', false), ctn);\n itemcnt.appendChild(ctn);\n }\n else {\n if (this.enableHtmlSanitizer && typeof (this.items[parseInt(index.toString(), 10)].content)) {\n this.items[parseInt(index.toString(), 10)].content =\n SanitizeHtmlHelper.sanitize(this.items[parseInt(index.toString(), 10)].content);\n }\n itemcnt.appendChild(this.fetchElement(ctn, this.items[parseInt(index.toString(), 10)].content, index, false));\n }\n return itemcnt;\n };\n Accordion.prototype.expand = function (trgt) {\n var _this = this;\n var items = this.getItems();\n var trgtItemEle = closest(trgt, '.' + CLS_ITEM);\n if (isNOU(trgt) || (isVisible(trgt) && trgt.getAttribute('e-animate') !== 'true') || trgtItemEle.classList.contains(CLS_DISABLE)) {\n return;\n }\n var acrdnRoot = closest(trgtItemEle, '.' + CLS_ACRDN_ROOT);\n var expandState = acrdnRoot.querySelector('.' + CLS_EXPANDSTATE);\n var animation = {\n name: this.animation.expand.effect,\n duration: this.animation.expand.duration,\n timingFunction: this.animation.expand.easing\n };\n var icon = select('.' + CLS_TOOGLEICN, trgtItemEle).firstElementChild;\n var eventArgs = {\n element: trgtItemEle,\n item: items[this.getIndexByItem(trgtItemEle)],\n index: this.getIndexByItem(trgtItemEle),\n content: trgtItemEle.querySelector('.' + CLS_CONTENT),\n isExpanded: true\n };\n this.trigger('expanding', eventArgs, function (expandArgs) {\n if (!expandArgs.cancel) {\n icon.classList.add(CLS_TOGANIMATE);\n _this.expandedItemsPush(trgtItemEle);\n if (!isNOU(expandState)) {\n expandState.classList.remove(CLS_EXPANDSTATE);\n }\n trgtItemEle.classList.add(CLS_EXPANDSTATE);\n if ((animation.name === 'None')) {\n _this.expandProgress('begin', icon, trgt, trgtItemEle, expandArgs);\n _this.expandProgress('end', icon, trgt, trgtItemEle, expandArgs);\n }\n else {\n _this.expandAnimation(animation.name, icon, trgt, trgtItemEle, animation, expandArgs);\n }\n }\n });\n };\n Accordion.prototype.expandAnimation = function (ef, icn, trgt, trgtItemEle, animate, args) {\n var _this = this;\n var height;\n this.lastActiveItemId = trgtItemEle.id;\n if (ef === 'SlideDown') {\n animate.begin = function () {\n _this.expandProgress('begin', icn, trgt, trgtItemEle, args);\n trgt.style.position = 'absolute';\n height = trgtItemEle.offsetHeight;\n trgt.style.maxHeight = (trgt.offsetHeight) + 'px';\n trgtItemEle.style.maxHeight = '';\n };\n animate.progress = function () {\n trgtItemEle.style.minHeight = (height + trgt.offsetHeight) + 'px';\n };\n animate.end = function () {\n setStyle(trgt, { 'position': '', 'maxHeight': '' });\n trgtItemEle.style.minHeight = '';\n _this.expandProgress('end', icn, trgt, trgtItemEle, args);\n };\n }\n else {\n animate.begin = function () {\n _this.expandProgress('begin', icn, trgt, trgtItemEle, args);\n };\n animate.end = function () {\n _this.expandProgress('end', icn, trgt, trgtItemEle, args);\n };\n }\n new Animation(animate).animate(trgt);\n };\n Accordion.prototype.expandProgress = function (progress, icon, trgt, trgtItemEle, eventArgs) {\n this.remove(trgt, CLS_CTNHIDE);\n this.add(trgtItemEle, CLS_SLCTED);\n this.add(icon, CLS_EXPANDICN);\n if (progress === 'end') {\n this.add(trgtItemEle, CLS_ACTIVE);\n trgt.setAttribute('aria-hidden', 'false');\n attributes(trgt.previousElementSibling, { 'aria-expanded': 'true' });\n icon.classList.remove(CLS_TOGANIMATE);\n this.trigger('expanded', eventArgs);\n }\n };\n Accordion.prototype.expandedItemsPush = function (item) {\n var index = this.getIndexByItem(item);\n if (this.expandedIndices.indexOf(index) === -1) {\n var temp = [].slice.call(this.expandedIndices);\n temp.push(index);\n this.setProperties({ expandedIndices: temp }, true);\n }\n };\n Accordion.prototype.getIndexByItem = function (item) {\n var itemEle = this.getItemElements();\n return [].slice.call(itemEle).indexOf(item);\n };\n Accordion.prototype.getItemElements = function () {\n var itemEle = [];\n var itemCollection = this.element.children;\n [].slice.call(itemCollection).forEach(function (el) {\n if (el.classList.contains(CLS_ITEM)) {\n itemEle.push(el);\n }\n });\n return itemEle;\n };\n Accordion.prototype.expandedItemsPop = function (item) {\n var index = this.getIndexByItem(item);\n var temp = [].slice.call(this.expandedIndices);\n temp.splice(temp.indexOf(index), 1);\n this.setProperties({ expandedIndices: temp }, true);\n };\n Accordion.prototype.collapse = function (trgt) {\n var _this = this;\n var items = this.getItems();\n var trgtItemEle = closest(trgt, '.' + CLS_ITEM);\n if (isNOU(trgt) || !isVisible(trgt) || trgtItemEle.classList.contains(CLS_DISABLE)) {\n return;\n }\n var animation = {\n name: this.animation.collapse.effect,\n duration: this.animation.collapse.duration,\n timingFunction: this.animation.collapse.easing\n };\n var icon = select('.' + CLS_TOOGLEICN, trgtItemEle).firstElementChild;\n var eventArgs = {\n element: trgtItemEle,\n item: items[this.getIndexByItem(trgtItemEle)],\n index: this.getIndexByItem(trgtItemEle),\n content: trgtItemEle.querySelector('.' + CLS_CONTENT),\n isExpanded: false\n };\n this.trigger('expanding', eventArgs, function (expandArgs) {\n if (!expandArgs.cancel) {\n _this.expandedItemsPop(trgtItemEle);\n trgtItemEle.classList.remove(CLS_EXPANDSTATE);\n icon.classList.add(CLS_TOGANIMATE);\n if ((animation.name === 'None')) {\n _this.collapseProgress('begin', icon, trgt, trgtItemEle, expandArgs);\n _this.collapseProgress('end', icon, trgt, trgtItemEle, expandArgs);\n }\n else {\n _this.collapseAnimation(animation.name, trgt, trgtItemEle, icon, animation, expandArgs);\n }\n }\n });\n };\n Accordion.prototype.collapseAnimation = function (ef, trgt, trgtItEl, icn, animate, args) {\n var _this = this;\n var height;\n var trgtHeight;\n var itemHeight;\n var remain;\n this.lastActiveItemId = trgtItEl.id;\n if (ef === 'SlideUp') {\n animate.begin = function () {\n itemHeight = trgtItEl.offsetHeight;\n trgtItEl.style.minHeight = itemHeight + 'px';\n trgt.style.position = 'absolute';\n height = trgtItEl.offsetHeight;\n trgtHeight = trgt.offsetHeight;\n trgt.style.maxHeight = trgtHeight + 'px';\n _this.collapseProgress('begin', icn, trgt, trgtItEl, args);\n };\n animate.progress = function () {\n remain = ((height - (trgtHeight - trgt.offsetHeight)));\n if (remain < itemHeight) {\n trgtItEl.style.minHeight = remain + 'px';\n }\n };\n animate.end = function () {\n trgt.style.display = 'none';\n _this.collapseProgress('end', icn, trgt, trgtItEl, args);\n trgtItEl.style.minHeight = '';\n setStyle(trgt, { 'position': '', 'maxHeight': '', 'display': '' });\n };\n }\n else {\n animate.begin = function () {\n _this.collapseProgress('begin', icn, trgt, trgtItEl, args);\n };\n animate.end = function () {\n _this.collapseProgress('end', icn, trgt, trgtItEl, args);\n };\n }\n new Animation(animate).animate(trgt);\n };\n Accordion.prototype.collapseProgress = function (progress, icon, trgt, trgtItemEle, eventArgs) {\n this.remove(icon, CLS_EXPANDICN);\n this.remove(trgtItemEle, CLS_SLCTED);\n if (progress === 'end') {\n this.add(trgt, CLS_CTNHIDE);\n icon.classList.remove(CLS_TOGANIMATE);\n this.remove(trgtItemEle, CLS_ACTIVE);\n trgt.setAttribute('aria-hidden', 'true');\n attributes(trgt.previousElementSibling, { 'aria-expanded': 'false' });\n this.trigger('expanded', eventArgs);\n }\n };\n /**\n * Returns the current module name.\n *\n * @returns {string} - It returns the current module name.\n * @private\n */\n Accordion.prototype.getModuleName = function () {\n return 'accordion';\n };\n Accordion.prototype.getItems = function () {\n var items;\n if (this.itemTemplate && this.headerTemplate) {\n items = this.dataSource;\n }\n else {\n items = this.items;\n }\n return items;\n };\n /**\n * Adds new item to the Accordion with the specified index of the Accordion.\n *\n * @param {AccordionItemModel | AccordionItemModel[] | Object | Object[]} item - Item array that is to be added to the Accordion.\n * @param {number} index - Number value that determines where the item should be added.\n * By default, item is added at the last index if the index is not specified.\n * @returns {void}\n */\n Accordion.prototype.addItem = function (item, index) {\n var _this = this;\n var ele = this.element;\n var itemEle = this.getItemElements();\n var items = this.getItems();\n if (isNOU(index)) {\n index = items.length;\n }\n if (ele.childElementCount >= index) {\n var addItems = (item instanceof Array) ? item : [item];\n addItems.forEach(function (addItem, i) {\n var itemIndex = index + i;\n items.splice(itemIndex, 0, addItem);\n var innerItemEle = _this.renderInnerItem(addItem, itemIndex);\n if (ele.childElementCount === itemIndex) {\n ele.appendChild(innerItemEle);\n }\n else {\n ele.insertBefore(innerItemEle, itemEle[parseInt(itemIndex.toString(), 10)]);\n }\n EventHandler.add(innerItemEle.querySelector('.' + CLS_HEADER), 'focus', _this.focusIn, _this);\n EventHandler.add(innerItemEle.querySelector('.' + CLS_HEADER), 'blur', _this.focusOut, _this);\n _this.expandedIndices = [];\n _this.expandedItemRefresh(ele);\n if (addItem && addItem.expanded) {\n _this.expandItem(true, itemIndex);\n }\n });\n }\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n Accordion.prototype.expandedItemRefresh = function (ele) {\n var _this = this;\n var itemEle = this.getItemElements();\n [].slice.call(itemEle).forEach(function (el) {\n if (el.classList.contains(CLS_SLCTED)) {\n _this.expandedItemsPush(el);\n }\n });\n };\n /**\n * Dynamically removes item from Accordion.\n *\n * @param {number} index - Number value that determines which item should be removed.\n * @returns {void}.\n */\n Accordion.prototype.removeItem = function (index) {\n if (this.isReact) {\n this.clearTemplate(['headerTemplate', 'itemTemplate'], index);\n }\n var itemEle = this.getItemElements();\n var ele = itemEle[parseInt(index.toString(), 10)];\n var items = this.getItems();\n if (isNOU(ele)) {\n return;\n }\n this.restoreContent(index);\n detach(ele);\n items.splice(index, 1);\n this.expandedIndices = [];\n this.expandedItemRefresh(this.element);\n };\n /**\n * Sets focus to the specified index item header in Accordion.\n *\n * @param {number} index - Number value that determines which item should be focused.\n * @returns {void}.\n */\n Accordion.prototype.select = function (index) {\n var itemEle = this.getItemElements();\n var ele = itemEle[parseInt(index.toString(), 10)];\n if (isNOU(ele) || isNOU(select('.' + CLS_HEADER, ele))) {\n return;\n }\n ele.children[0].focus();\n };\n /**\n * Shows or hides the specified item from Accordion.\n *\n * @param {number} index - Number value that determines which item should be hidden/shown.\n * @param {boolean} isHidden - Boolean value that determines the action either hide (true) or show (false). Default value is false.\n * If the `isHidden` value is false, the item is shown or else item it is hidden.\n * @returns {void}.\n */\n Accordion.prototype.hideItem = function (index, isHidden) {\n var itemEle = this.getItemElements();\n var ele = itemEle[parseInt(index.toString(), 10)];\n if (isNOU(ele)) {\n return;\n }\n if (isNOU(isHidden)) {\n isHidden = true;\n }\n if (isHidden) {\n this.add(ele, CLS_ITEMHIDE);\n }\n else {\n this.remove(ele, CLS_ITEMHIDE);\n }\n };\n /**\n * Enables/Disables the specified Accordion item.\n *\n * @param {number} index - Number value that determines which item should be enabled/disabled.\n * @param {boolean} isEnable - Boolean value that determines the action as enable (true) or disable (false).\n * If the `isEnable` value is true, the item is enabled or else it is disabled.\n * @returns {void}.\n */\n Accordion.prototype.enableItem = function (index, isEnable) {\n var itemEle = this.getItemElements();\n var ele = itemEle[parseInt(index.toString(), 10)];\n if (isNOU(ele)) {\n return;\n }\n var eleHeader = ele.firstElementChild;\n if (isEnable) {\n this.remove(ele, CLS_DISABLE);\n attributes(eleHeader, { 'tabindex': '0', 'aria-disabled': 'false' });\n eleHeader.focus();\n }\n else {\n if (ele.classList.contains(CLS_ACTIVE)) {\n this.expandItem(false, index);\n this.eleMoveFocus('movedown', this.element, eleHeader);\n }\n this.add(ele, CLS_DISABLE);\n eleHeader.setAttribute('aria-disabled', 'true');\n eleHeader.removeAttribute('tabindex');\n }\n };\n /**\n * Expands/Collapses the specified Accordion item.\n *\n * @param {boolean} isExpand - Boolean value that determines the action as expand or collapse.\n * @param {number} index - Number value that determines which item should be expanded/collapsed.`index` is optional parameter.\n * Without Specifying index, based on the `isExpand` value all Accordion item can be expanded or collapsed.\n * @returns {void}.\n */\n Accordion.prototype.expandItem = function (isExpand, index) {\n var _this = this;\n var itemEle = this.getItemElements();\n if (isNOU(index)) {\n if (this.expandMode === 'Single' && isExpand) {\n var ele = itemEle[itemEle.length - 1];\n this.itemExpand(isExpand, ele, this.getIndexByItem(ele));\n }\n else {\n var item = select('#' + this.lastActiveItemId, this.element);\n [].slice.call(itemEle).forEach(function (el) {\n _this.itemExpand(isExpand, el, _this.getIndexByItem(el));\n el.classList.remove(CLS_EXPANDSTATE);\n });\n var expandedItem = select('.' + CLS_EXPANDSTATE, this.element);\n if (expandedItem) {\n expandedItem.classList.remove(CLS_EXPANDSTATE);\n }\n if (item) {\n item.classList.add(CLS_EXPANDSTATE);\n }\n }\n }\n else {\n var ele = itemEle[parseInt(index.toString(), 10)];\n if (isNOU(ele) || !ele.classList.contains(CLS_SLCT) || (ele.classList.contains(CLS_ACTIVE) && isExpand)) {\n return;\n }\n else {\n if (this.expandMode === 'Single') {\n this.expandItem(false);\n }\n this.itemExpand(isExpand, ele, index);\n }\n }\n };\n Accordion.prototype.itemExpand = function (isExpand, ele, index) {\n var ctn = ele.children[1];\n if (ele.classList.contains(CLS_DISABLE)) {\n return;\n }\n if (isNOU(ctn) && isExpand) {\n ctn = this.contentRendering(index);\n ele.appendChild(ctn);\n this.ariaAttrUpdate(ele);\n this.expand(ctn);\n }\n else if (!isNOU(ctn)) {\n if (isExpand) {\n this.expand(ctn);\n }\n else {\n this.collapse(ctn);\n }\n }\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n Accordion.prototype.destroyItems = function () {\n this.restoreContent(null);\n if (this.isReact || this.isAngular || this.isVue) {\n this.clearTemplate();\n }\n [].slice.call(this.element.querySelectorAll('.' + CLS_ITEM)).forEach(function (el) {\n detach(el);\n });\n };\n Accordion.prototype.restoreContent = function (index) {\n var ctnElePos;\n if (isNOU(index)) {\n ctnElePos = this.element;\n }\n else {\n ctnElePos = this.element.querySelectorAll('.' + CLS_ITEM)[parseInt(index.toString(), 10)];\n }\n this.templateEle.forEach(function (eleStr) {\n if (!isNOU(ctnElePos.querySelector(eleStr))) {\n document.body.appendChild(ctnElePos.querySelector(eleStr)).style.display = 'none';\n }\n });\n };\n Accordion.prototype.updateItem = function (item, index) {\n if (!isNOU(item)) {\n var items = this.getItems();\n var itemObj = items[parseInt(index.toString(), 10)];\n items.splice(index, 1);\n this.restoreContent(index);\n var header = select('.' + CLS_HEADERCTN, item);\n var content = select('.' + CLS_CTENT, item);\n if (this.isReact || this.isAngular) {\n this.clearAccordionTemplate(header, 'header', CLS_HEADERCTN);\n this.clearAccordionTemplate(content, 'content', CLS_CTENT);\n }\n detach(item);\n this.addItem(itemObj, index);\n }\n };\n Accordion.prototype.setTemplate = function (template, toElement, index) {\n toElement.innerHTML = '';\n this.templateCompile(toElement, template, index);\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n Accordion.prototype.templateCompile = function (ele, cnt, index) {\n var tempEle = this.createElement('div');\n this.fetchElement(tempEle, cnt, index, false);\n if (tempEle.childNodes.length !== 0) {\n [].slice.call(tempEle.childNodes).forEach(function (childEle) {\n ele.appendChild(childEle);\n });\n }\n };\n Accordion.prototype.clearAccordionTemplate = function (templateEle, templateName, className) {\n if (this.registeredTemplate && this.registeredTemplate[\"\" + templateName]) {\n var registeredTemplates = this.registeredTemplate;\n for (var index = 0; index < registeredTemplates[\"\" + templateName].length; index++) {\n var registeredItem = registeredTemplates[\"\" + templateName][parseInt(index.toString(), 10)].rootNodes[0];\n var closestItem = closest(registeredItem.containerInfo, '.' + className);\n if (!isNOU(closestItem) && closestItem === templateEle) {\n this.clearTemplate([templateName], [registeredTemplates[\"\" + templateName][parseInt(index.toString(), 10)]]);\n break;\n }\n }\n }\n else if (this.portals && this.portals.length > 0) {\n var portals = this.portals;\n for (var index = 0; index < portals.length; index++) {\n var portalItem = portals[parseInt(index.toString(), 10)];\n var closestItem = closest(portalItem.containerInfo, '.' + className);\n if (!isNOU(closestItem) && closestItem === templateEle) {\n this.clearTemplate([templateName], index);\n break;\n }\n }\n }\n };\n Accordion.prototype.getPersistData = function () {\n var keyEntity = ['expandedIndices'];\n return this.addOnPersist(keyEntity);\n };\n /**\n * Gets called when the model property changes.The data that describes the old and new values of the property that changed.\n *\n * @param {AccordionModel} newProp - It contains the new value of data.\n * @param {AccordionModel} oldProp - It contains the old value of data.\n * @returns {void}\n * @private\n */\n Accordion.prototype.onPropertyChanged = function (newProp, oldProp) {\n var acrdn = this.element;\n var isRefresh = false;\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'items':\n if (!(newProp.items instanceof Array && oldProp.items instanceof Array)) {\n var changedProp = Object.keys(newProp.items);\n for (var j = 0; j < changedProp.length; j++) {\n var index = parseInt(Object.keys(newProp.items)[parseInt(j.toString(), 10)], 10);\n var property = Object.keys(newProp.items[parseInt(index.toString(), 10)]);\n for (var k = 0; k < property.length; k++) {\n var item = selectAll('.' + CLS_ITEM, this.element)[parseInt(index.toString(), 10)];\n var oldVal = Object(oldProp.items[parseInt(index.toString(), 10)])[\"\" + property[parseInt(k.toString(), 10)]];\n var newVal = Object(newProp.items[parseInt(index.toString(), 10)])[\"\" + property[parseInt(k.toString(), 10)]];\n var temp = property[parseInt(k.toString(), 10)];\n var content = select('.' + CLS_CTENT, item);\n if (temp === 'header' || temp === 'iconCss' || temp === 'expanded' || ((temp === 'content') && (oldVal === ''))) {\n this.updateItem(item, index);\n }\n if (property[parseInt(k.toString(), 10)] === 'cssClass' && !isNOU(item)) {\n if (oldVal) {\n removeClass([item], oldVal.split(' '));\n }\n if (newVal) {\n addClass([item], newVal.split(' '));\n }\n }\n if (property[parseInt(k.toString(), 10)] === 'visible' && !isNOU(item)) {\n if (Object(newProp.items[parseInt(index.toString(), 10)])[\"\" + property[parseInt(k.toString(), 10)]] === false) {\n item.classList.add(CLS_ITEMHIDE);\n }\n else {\n item.classList.remove(CLS_ITEMHIDE);\n }\n }\n if (property[parseInt(k.toString(), 10)] === 'disabled' && !isNOU(item)) {\n this.enableItem(index, !newVal);\n }\n if (property[parseInt(k.toString(), 10)] === 'content' && !isNOU(item) && item.children.length === 2) {\n if (typeof newVal === 'function') {\n if (this.isAngular || this.isReact) {\n this.clearAccordionTemplate(content, property[parseInt(k.toString(), 10)], CLS_CTENT);\n }\n var activeContent = item.querySelector('.' + CLS_CTENT);\n activeContent.innerHTML = '';\n this.setTemplate(newVal, activeContent, index);\n }\n else {\n if (item.classList.contains(CLS_SLCTED)) {\n this.expandItem(false, index);\n }\n detach(item.querySelector('.' + CLS_CONTENT));\n }\n }\n }\n }\n }\n else {\n isRefresh = true;\n }\n break;\n case 'dataSource':\n case 'expandedIndices':\n if (this.expandedIndices === null) {\n this.expandedIndices = [];\n }\n isRefresh = true;\n break;\n case 'headerTemplate':\n this.initializeHeaderTemplate();\n isRefresh = true;\n break;\n case 'itemTemplate':\n this.initializeItemTemplate();\n isRefresh = true;\n break;\n case 'enableRtl':\n if (newProp.enableRtl) {\n this.add(acrdn, CLS_RTL);\n }\n else {\n this.remove(acrdn, CLS_RTL);\n }\n break;\n case 'height':\n setStyle(this.element, { 'height': formatUnit(newProp.height) });\n break;\n case 'width':\n setStyle(this.element, { 'width': formatUnit(newProp.width) });\n break;\n case 'expandMode':\n if (newProp.expandMode === 'Single' && this.expandedIndices.length > 1) {\n this.expandItem(false);\n }\n break;\n }\n }\n if (isRefresh) {\n this.initExpand = [];\n if (this.expandedIndices.length > 0) {\n this.initExpand = this.expandedIndices;\n }\n this.destroyItems();\n this.renderItems();\n this.initItemExpand();\n }\n };\n __decorate([\n Collection([], AccordionItem)\n ], Accordion.prototype, \"items\", void 0);\n __decorate([\n Property([])\n ], Accordion.prototype, \"dataSource\", void 0);\n __decorate([\n Property()\n ], Accordion.prototype, \"itemTemplate\", void 0);\n __decorate([\n Property()\n ], Accordion.prototype, \"headerTemplate\", void 0);\n __decorate([\n Property('100%')\n ], Accordion.prototype, \"width\", void 0);\n __decorate([\n Property('auto')\n ], Accordion.prototype, \"height\", void 0);\n __decorate([\n Property([])\n ], Accordion.prototype, \"expandedIndices\", void 0);\n __decorate([\n Property('Multiple')\n ], Accordion.prototype, \"expandMode\", void 0);\n __decorate([\n Property(false)\n ], Accordion.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Complex({}, AccordionAnimationSettings)\n ], Accordion.prototype, \"animation\", void 0);\n __decorate([\n Event()\n ], Accordion.prototype, \"clicked\", void 0);\n __decorate([\n Event()\n ], Accordion.prototype, \"expanding\", void 0);\n __decorate([\n Event()\n ], Accordion.prototype, \"expanded\", void 0);\n __decorate([\n Event()\n ], Accordion.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], Accordion.prototype, \"destroyed\", void 0);\n Accordion = __decorate([\n NotifyPropertyChanges\n ], Accordion);\n return Accordion;\n}(Component));\nexport { Accordion };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { Accordion } from '@syncfusion/ej2-navigations';\nimport { ComponentBase, applyMixins } from '@syncfusion/ej2-react-base';\n/**\n * Represents the React Accordion Component.\n * ```html\n * = 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component, Property, Event, closest, Collection, Complex, attributes, detach, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { NotifyPropertyChanges, ChildProperty, select, isVisible } from '@syncfusion/ej2-base';\nimport { KeyboardEvents, Browser, formatUnit, L10n } from '@syncfusion/ej2-base';\nimport { setStyleAttribute as setStyle, isNullOrUndefined as isNOU, selectAll, addClass, removeClass, remove } from '@syncfusion/ej2-base';\nimport { EventHandler, rippleEffect, Touch, compile, Animation } from '@syncfusion/ej2-base';\nimport { getRandomId, SanitizeHtmlHelper, Draggable } from '@syncfusion/ej2-base';\nimport { Toolbar } from '../toolbar/toolbar';\nvar CLS_TAB = 'e-tab';\nvar CLS_HEADER = 'e-tab-header';\nvar CLS_BLA_TEM = 'blazor-template';\nvar CLS_CONTENT = 'e-content';\nvar CLS_NEST = 'e-nested';\nvar CLS_ITEMS = 'e-items';\nvar CLS_ITEM = 'e-item';\nvar CLS_TEMPLATE = 'e-template';\nvar CLS_RTL = 'e-rtl';\nvar CLS_ACTIVE = 'e-active';\nvar CLS_DISABLE = 'e-disable';\nvar CLS_HIDDEN = 'e-hidden';\nvar CLS_FOCUS = 'e-focused';\nvar CLS_ICONS = 'e-icons';\nvar CLS_ICON = 'e-icon';\nvar CLS_ICON_TAB = 'e-icon-tab';\nvar CLS_ICON_CLOSE = 'e-close-icon';\nvar CLS_CLOSE_SHOW = 'e-close-show';\nvar CLS_TEXT = 'e-tab-text';\nvar CLS_INDICATOR = 'e-indicator';\nvar CLS_WRAP = 'e-tab-wrap';\nvar CLS_TEXT_WRAP = 'e-text-wrap';\nvar CLS_TAB_ICON = 'e-tab-icon';\nvar CLS_TB_ITEMS = 'e-toolbar-items';\nvar CLS_TB_ITEM = 'e-toolbar-item';\nvar CLS_TB_POP = 'e-toolbar-pop';\nvar CLS_TB_POPUP = 'e-toolbar-popup';\nvar CLS_HOR_NAV = 'e-hor-nav';\nvar CLS_POPUP_OPEN = 'e-popup-open';\nvar CLS_POPUP_CLOSE = 'e-popup-close';\nvar CLS_PROGRESS = 'e-progress';\nvar CLS_IGNORE = 'e-ignore';\nvar CLS_OVERLAY = 'e-overlay';\nvar CLS_HSCRCNT = 'e-hscroll-content';\nvar CLS_VSCRCNT = 'e-vscroll-content';\nvar CLS_VTAB = 'e-vertical-tab';\nvar CLS_VERTICAL = 'e-vertical';\nvar CLS_VLEFT = 'e-vertical-left';\nvar CLS_VRIGHT = 'e-vertical-right';\nvar CLS_HBOTTOM = 'e-horizontal-bottom';\nvar CLS_FILL = 'e-fill-mode';\nvar TABITEMPREFIX = 'tabitem_';\nvar CLS_REORDER_ACTIVE_ITEM = 'e-reorder-active-item';\n/**\n * Objects used for configuring the Tab selecting item action properties.\n */\nvar TabActionSettings = /** @class */ (function (_super) {\n __extends(TabActionSettings, _super);\n function TabActionSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('SlideLeftIn')\n ], TabActionSettings.prototype, \"effect\", void 0);\n __decorate([\n Property(600)\n ], TabActionSettings.prototype, \"duration\", void 0);\n __decorate([\n Property('ease')\n ], TabActionSettings.prototype, \"easing\", void 0);\n return TabActionSettings;\n}(ChildProperty));\nexport { TabActionSettings };\n/**\n * Objects used for configuring the Tab animation properties.\n */\nvar TabAnimationSettings = /** @class */ (function (_super) {\n __extends(TabAnimationSettings, _super);\n function TabAnimationSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Complex({ effect: 'SlideLeftIn', duration: 600, easing: 'ease' }, TabActionSettings)\n ], TabAnimationSettings.prototype, \"previous\", void 0);\n __decorate([\n Complex({ effect: 'SlideRightIn', duration: 600, easing: 'ease' }, TabActionSettings)\n ], TabAnimationSettings.prototype, \"next\", void 0);\n return TabAnimationSettings;\n}(ChildProperty));\nexport { TabAnimationSettings };\n/**\n * Objects used for configuring the Tab item header properties.\n */\nvar Header = /** @class */ (function (_super) {\n __extends(Header, _super);\n function Header() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], Header.prototype, \"text\", void 0);\n __decorate([\n Property('')\n ], Header.prototype, \"iconCss\", void 0);\n __decorate([\n Property('left')\n ], Header.prototype, \"iconPosition\", void 0);\n return Header;\n}(ChildProperty));\nexport { Header };\n/**\n * An array of object that is used to configure the Tab.\n */\nvar TabItem = /** @class */ (function (_super) {\n __extends(TabItem, _super);\n function TabItem() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Complex({}, Header)\n ], TabItem.prototype, \"header\", void 0);\n __decorate([\n Property(null)\n ], TabItem.prototype, \"headerTemplate\", void 0);\n __decorate([\n Property('')\n ], TabItem.prototype, \"content\", void 0);\n __decorate([\n Property('')\n ], TabItem.prototype, \"cssClass\", void 0);\n __decorate([\n Property(false)\n ], TabItem.prototype, \"disabled\", void 0);\n __decorate([\n Property(true)\n ], TabItem.prototype, \"visible\", void 0);\n __decorate([\n Property()\n ], TabItem.prototype, \"id\", void 0);\n __decorate([\n Property(-1)\n ], TabItem.prototype, \"tabIndex\", void 0);\n return TabItem;\n}(ChildProperty));\nexport { TabItem };\n/**\n * Tab is a content panel to show multiple contents in a single space, one at a time.\n * Each Tab item has an associated content, that will be displayed based on the active Tab header item.\n * ```html\n *
      \n * \n * ```\n */\nvar Tab = /** @class */ (function (_super) {\n __extends(Tab, _super);\n /**\n * Initializes a new instance of the Tab class.\n *\n * @param {TabModel} options - Specifies Tab model properties as options.\n * @param {string | HTMLElement} element - Specifies the element that is rendered as a Tab.\n */\n function Tab(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.show = {};\n _this.hide = {};\n _this.maxHeight = 0;\n _this.title = 'Close';\n _this.isInteracted = false;\n _this.lastIndex = 0;\n _this.isAdd = false;\n _this.isIconAlone = false;\n _this.draggableItems = [];\n _this.resizeContext = _this.refreshActiveTabBorder.bind(_this);\n /**\n * Contains the keyboard configuration of the Tab.\n */\n _this.keyConfigs = {\n tab: 'tab',\n home: 'home',\n end: 'end',\n enter: 'enter',\n space: 'space',\n delete: 'delete',\n moveLeft: 'leftarrow',\n moveRight: 'rightarrow',\n moveUp: 'uparrow',\n moveDown: 'downarrow'\n };\n return _this;\n }\n /**\n * Removes the component from the DOM and detaches all its related event handlers, attributes and classes.\n *\n * @returns {void}\n */\n Tab.prototype.destroy = function () {\n if (this.isReact || this.isAngular) {\n this.clearTemplate();\n }\n if (!isNOU(this.tbObj)) {\n this.tbObj.destroy();\n this.tbObj = null;\n }\n this.unWireEvents();\n this.element.removeAttribute('aria-disabled');\n this.expTemplateContent();\n if (!this.isTemplate) {\n while (this.element.firstElementChild) {\n remove(this.element.firstElementChild);\n }\n }\n else {\n var cntEle = select('.' + CLS_TAB + ' > .' + CLS_CONTENT, this.element);\n this.element.classList.remove(CLS_TEMPLATE);\n if (!isNOU(cntEle)) {\n cntEle.innerHTML = this.cnt;\n }\n }\n if (this.btnCls) {\n this.btnCls = null;\n }\n this.hdrEle = null;\n this.cntEle = null;\n this.tbItems = null;\n this.tbItem = null;\n this.tbPop = null;\n this.prevItem = null;\n this.popEle = null;\n this.bdrLine = null;\n this.content = null;\n this.dragItem = null;\n this.cloneElement = null;\n this.draggingItems = [];\n if (this.draggableItems && this.draggableItems.length > 0) {\n for (var i = 0; i < this.draggableItems.length; i++) {\n this.draggableItems[i].destroy();\n this.draggableItems[i] = null;\n }\n this.draggableItems = [];\n }\n _super.prototype.destroy.call(this);\n this.trigger('destroyed');\n };\n /**\n * Refresh the tab component\n *\n * @returns {void}\n */\n Tab.prototype.refresh = function () {\n if (this.isReact) {\n this.clearTemplate();\n }\n _super.prototype.refresh.call(this);\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n /**\n * Initialize component\n *\n * @private\n * @returns {void}\n */\n Tab.prototype.preRender = function () {\n var nested = closest(this.element, '.' + CLS_CONTENT);\n this.prevIndex = 0;\n this.isNested = false;\n this.isPopup = false;\n this.initRender = true;\n this.isSwipeed = false;\n this.itemIndexArray = [];\n this.templateEle = [];\n if (this.allowDragAndDrop) {\n this.dragArea = !isNOU(this.dragArea) ? this.dragArea : '#' + this.element.id + ' ' + ('.' + CLS_HEADER);\n }\n if (!isNOU(nested)) {\n nested.parentElement.classList.add(CLS_NEST);\n this.isNested = true;\n }\n var name = Browser.info.name;\n var css = (name === 'msie') ? 'e-ie' : (name === 'edge') ? 'e-edge' : (name === 'safari') ? 'e-safari' : '';\n setStyle(this.element, { 'width': formatUnit(this.width), 'height': formatUnit(this.height) });\n this.setCssClass(this.element, this.cssClass, true);\n attributes(this.element, { 'aria-disabled': 'false' });\n this.setCssClass(this.element, css, true);\n this.updatePopAnimationConfig();\n };\n /**\n * Initialize the component rendering\n *\n * @private\n * @returns {void}\n */\n Tab.prototype.render = function () {\n this.btnCls = this.createElement('span', { className: CLS_ICONS + ' ' + CLS_ICON_CLOSE, attrs: { title: this.title } });\n this.tabId = this.element.id.length > 0 ? ('-' + this.element.id) : getRandomId();\n this.renderContainer();\n this.wireEvents();\n this.initRender = false;\n };\n Tab.prototype.renderContainer = function () {\n var ele = this.element;\n this.items.forEach(function (item, index) {\n if (isNOU(item.id) && !isNOU(item.setProperties)) {\n item.setProperties({ id: TABITEMPREFIX + index.toString() }, true);\n }\n });\n if (this.items.length > 0 && ele.children.length === 0) {\n ele.appendChild(this.createElement('div', { className: CLS_CONTENT }));\n this.setOrientation(this.headerPlacement, this.createElement('div', { className: CLS_HEADER }));\n this.isTemplate = false;\n }\n else if (this.element.children.length > 0) {\n this.isTemplate = true;\n ele.classList.add(CLS_TEMPLATE);\n var header = ele.querySelector('.' + CLS_HEADER);\n if (header && this.headerPlacement === 'Bottom') {\n this.setOrientation(this.headerPlacement, header);\n }\n }\n if (!isNOU(select('.' + CLS_HEADER, this.element)) && !isNOU(select('.' + CLS_CONTENT, this.element))) {\n this.renderHeader();\n this.tbItems = select('.' + CLS_HEADER + ' .' + CLS_TB_ITEMS, this.element);\n if (!isNOU(this.tbItems)) {\n rippleEffect(this.tbItems, { selector: '.e-tab-wrap' });\n }\n this.renderContent();\n if (selectAll('.' + CLS_TB_ITEM, this.element).length > 0) {\n this.tbItems = select('.' + CLS_HEADER + ' .' + CLS_TB_ITEMS, this.element);\n this.bdrLine = this.createElement('div', { className: CLS_INDICATOR + ' ' + CLS_HIDDEN + ' ' + CLS_IGNORE });\n var scrCnt = select('.' + this.scrCntClass, this.tbItems);\n if (!isNOU(scrCnt)) {\n scrCnt.insertBefore(this.bdrLine, scrCnt.firstChild);\n }\n else {\n this.tbItems.insertBefore(this.bdrLine, this.tbItems.firstChild);\n }\n this.setContentHeight(true);\n this.select(this.selectedItem);\n }\n this.setRTL(this.enableRtl);\n }\n };\n Tab.prototype.renderHeader = function () {\n var _this = this;\n var hdrPlace = this.headerPlacement;\n var tabItems = [];\n this.hdrEle = this.getTabHeader();\n this.addVerticalClass();\n if (!this.isTemplate) {\n tabItems = this.parseObject(this.items, 0);\n }\n else {\n if (this.element.children.length > 1 && this.element.children[1].classList.contains(CLS_HEADER)) {\n this.setProperties({ headerPlacement: 'Bottom' }, true);\n }\n var count = this.hdrEle.children.length;\n var hdrItems = [];\n for (var i = 0; i < count; i++) {\n hdrItems.push(this.hdrEle.children.item(i));\n }\n if (count > 0) {\n var tabItems_1 = this.createElement('div', { className: CLS_ITEMS });\n this.hdrEle.appendChild(tabItems_1);\n hdrItems.forEach(function (item, index) {\n _this.lastIndex = index;\n var attr = {\n className: CLS_ITEM, id: CLS_ITEM + _this.tabId + '_' + index\n };\n var txt = _this.createElement('span', {\n className: CLS_TEXT, attrs: { 'role': 'presentation' }\n }).outerHTML;\n var cont = _this.createElement('div', {\n className: CLS_TEXT_WRAP, innerHTML: txt + _this.btnCls.outerHTML\n }).outerHTML;\n var wrap = _this.createElement('div', {\n className: CLS_WRAP, innerHTML: cont,\n attrs: { role: 'tab', tabIndex: '-1', 'aria-selected': 'false', 'aria-controls': CLS_CONTENT + _this.tabId + '_' + index, 'aria-disabled': 'false' }\n });\n wrap.querySelector('.' + CLS_TEXT).appendChild(item);\n tabItems_1.appendChild(_this.createElement('div', attr));\n selectAll('.' + CLS_ITEM, tabItems_1)[index].appendChild(wrap);\n });\n }\n }\n this.tbObj = new Toolbar({\n width: (hdrPlace === 'Left' || hdrPlace === 'Right') ? 'auto' : '100%',\n height: (hdrPlace === 'Left' || hdrPlace === 'Right') ? '100%' : 'auto',\n overflowMode: this.overflowMode,\n items: (tabItems.length !== 0) ? tabItems : [],\n clicked: this.clickHandler.bind(this),\n scrollStep: this.scrollStep,\n enableHtmlSanitizer: this.enableHtmlSanitizer,\n cssClass: this.cssClass\n });\n this.tbObj.isStringTemplate = true;\n this.tbObj.createElement = this.createElement;\n this.tbObj.appendTo(this.hdrEle);\n attributes(this.hdrEle, { role: 'tablist' });\n if (!isNOU(this.element.getAttribute('aria-label'))) {\n this.hdrEle.setAttribute('aria-label', this.element.getAttribute('aria-label'));\n this.element.removeAttribute('aria-label');\n }\n else if (!isNOU(this.element.getAttribute('aria-labelledby'))) {\n this.hdrEle.setAttribute('aria-labelledby', this.element.getAttribute('aria-labelledby'));\n this.element.removeAttribute('aria-labelledby');\n }\n this.setCloseButton(this.showCloseButton);\n var toolbarHeader = this.tbObj.element.querySelector('.' + CLS_TB_ITEMS);\n if (!isNOU(toolbarHeader)) {\n if (isNOU(toolbarHeader.id) || toolbarHeader.id === '') {\n toolbarHeader.id = this.element.id + '_' + 'tab_header_items';\n }\n }\n };\n Tab.prototype.renderContent = function () {\n this.cntEle = select('.' + CLS_CONTENT, this.element);\n var hdrItem = selectAll('.' + CLS_TB_ITEM, this.element);\n if (this.isTemplate) {\n this.cnt = (this.cntEle.children.length > 0) ? this.cntEle.innerHTML : '';\n var contents = this.cntEle.children;\n for (var i = 0; i < hdrItem.length; i++) {\n if (contents.length - 1 >= i) {\n addClass([contents.item(i)], CLS_ITEM);\n attributes(contents.item(i), { 'role': 'tabpanel', 'aria-labelledby': CLS_ITEM + this.tabId + '_' + i });\n contents.item(i).id = CLS_CONTENT + this.tabId + '_' + i;\n }\n }\n }\n };\n Tab.prototype.reRenderItems = function () {\n this.renderContainer();\n if (!isNOU(this.cntEle)) {\n this.touchModule = new Touch(this.cntEle, { swipe: this.swipeHandler.bind(this) });\n }\n };\n Tab.prototype.parseObject = function (items, index) {\n var _this = this;\n var tbItems = selectAll('.e-tab-header .' + CLS_TB_ITEM, this.element);\n var maxId = this.lastIndex;\n if (!this.isReplace && tbItems.length > 0) {\n var idList_1 = [];\n tbItems.forEach(function (item) {\n idList_1.push(_this.getIndexFromEle(item.id));\n });\n maxId = Math.max.apply(Math, idList_1);\n }\n var tItems = [];\n var txtWrapEle;\n var spliceArray = [];\n var i = 0;\n items.forEach(function (item, i) {\n var pos = (isNOU(item.header) || isNOU(item.header.iconPosition)) ? '' : item.header.iconPosition;\n var css = (isNOU(item.header) || isNOU(item.header.iconCss)) ? '' : item.header.iconCss;\n if ((isNOU(item.headerTemplate)) && (isNOU(item.header) || isNOU(item.header.text) ||\n ((item.header.text.length === 0)) && (css === ''))) {\n spliceArray.push(i);\n return;\n }\n var txt = item.headerTemplate || item.header.text;\n if (typeof txt === 'string' && _this.enableHtmlSanitizer) {\n txt = SanitizeHtmlHelper.sanitize(txt);\n }\n var itemIndex;\n if (_this.isReplace && !isNOU(_this.tbId) && _this.tbId !== '') {\n itemIndex = parseInt(_this.tbId.substring(_this.tbId.lastIndexOf('_') + 1), 10);\n _this.tbId = '';\n }\n else {\n itemIndex = index + i;\n }\n _this.lastIndex = ((tbItems.length === 0) ? i : ((_this.isReplace) ? (itemIndex) : (maxId + 1 + i)));\n var disabled = (item.disabled) ? ' ' + CLS_DISABLE + ' ' + CLS_OVERLAY : '';\n var hidden = (item.visible === false) ? ' ' + CLS_HIDDEN : '';\n txtWrapEle = _this.createElement('div', { className: CLS_TEXT, attrs: { 'role': 'presentation' } });\n var tHtml = ((txt instanceof Object) ? txt.outerHTML : txt);\n var txtEmpty = (!isNOU(tHtml) && tHtml !== '');\n if (!isNOU(txt.tagName)) {\n txtWrapEle.appendChild(txt);\n }\n else {\n _this.headerTextCompile(txtWrapEle, txt, i);\n }\n var tEle;\n var icon = _this.createElement('span', {\n className: CLS_ICONS + ' ' + CLS_TAB_ICON + ' ' + CLS_ICON + '-' + pos + ' ' + css\n });\n var tCont = _this.createElement('div', { className: CLS_TEXT_WRAP });\n tCont.appendChild(txtWrapEle);\n if ((txt !== '' && txt !== undefined) && css !== '') {\n if ((pos === 'left' || pos === 'top')) {\n tCont.insertBefore(icon, tCont.firstElementChild);\n }\n else {\n tCont.appendChild(icon);\n }\n tEle = txtWrapEle;\n _this.isIconAlone = false;\n }\n else {\n tEle = ((css === '') ? txtWrapEle : icon);\n if (tEle === icon) {\n detach(txtWrapEle);\n tCont.appendChild(icon);\n _this.isIconAlone = true;\n }\n }\n var tabIndex = isNOU(item.tabIndex) ? '-1' : item.tabIndex.toString();\n var wrapAttrs = (item.disabled) ? {} : { tabIndex: tabIndex, 'data-tabindex': tabIndex, role: 'tab', 'aria-selected': 'false', 'aria-disabled': 'false' };\n tCont.appendChild(_this.btnCls.cloneNode(true));\n var wrap = _this.createElement('div', { className: CLS_WRAP, attrs: wrapAttrs });\n wrap.appendChild(tCont);\n if (_this.itemIndexArray === []) {\n _this.itemIndexArray.push(CLS_ITEM + _this.tabId + '_' + _this.lastIndex);\n }\n else {\n _this.itemIndexArray.splice((index + i), 0, CLS_ITEM + _this.tabId + '_' + _this.lastIndex);\n }\n var attrObj = {\n id: CLS_ITEM + _this.tabId + '_' + _this.lastIndex, 'data-id': item.id\n };\n var tItem = { htmlAttributes: attrObj, template: wrap };\n tItem.cssClass = ((item.cssClass !== undefined) ? item.cssClass : ' ') + ' ' + disabled + ' ' + hidden + ' '\n + ((css !== '') ? 'e-i' + pos : '') + ' ' + ((!txtEmpty) ? CLS_ICON : '');\n if (pos === 'top' || pos === 'bottom') {\n _this.element.classList.add('e-vertical-icon');\n }\n tItems.push(tItem);\n i++;\n });\n if (!this.isAdd) {\n spliceArray.forEach(function (spliceItemIndex) {\n _this.items.splice(spliceItemIndex, 1);\n });\n }\n if (this.isIconAlone) {\n this.element.classList.add(CLS_ICON_TAB);\n }\n else {\n this.element.classList.remove(CLS_ICON_TAB);\n }\n return tItems;\n };\n Tab.prototype.removeActiveClass = function () {\n var tabHeader = this.getTabHeader();\n if (tabHeader) {\n var tabItems = selectAll('.' + CLS_TB_ITEM + '.' + CLS_ACTIVE, tabHeader);\n [].slice.call(tabItems).forEach(function (node) { return node.classList.remove(CLS_ACTIVE); });\n [].slice.call(tabItems).forEach(function (node) { return node.firstElementChild.setAttribute('aria-selected', 'false'); });\n }\n };\n Tab.prototype.checkPopupOverflow = function (ele) {\n this.tbPop = select('.' + CLS_TB_POP, this.element);\n var popIcon = select('.e-hor-nav', this.element);\n var tbrItems = select('.' + CLS_TB_ITEMS, this.element);\n var lastChild = tbrItems.lastChild;\n var isOverflow = false;\n if (!this.isVertical() && ((this.enableRtl && ((popIcon.offsetLeft + popIcon.offsetWidth) > tbrItems.offsetLeft))\n || (!this.enableRtl && popIcon.offsetLeft < tbrItems.offsetWidth))) {\n isOverflow = true;\n }\n else if (this.isVertical() && (popIcon.offsetTop < lastChild.offsetTop + lastChild.offsetHeight)) {\n isOverflow = true;\n }\n if (isOverflow) {\n ele.classList.add(CLS_TB_POPUP);\n this.tbPop.insertBefore(ele, selectAll('.' + CLS_TB_POPUP, this.tbPop)[0]);\n }\n return true;\n };\n Tab.prototype.popupHandler = function (target) {\n var ripEle = target.querySelector('.e-ripple-element');\n if (!isNOU(ripEle)) {\n ripEle.outerHTML = '';\n target.querySelector('.' + CLS_WRAP).classList.remove('e-ripple');\n }\n this.tbItem = selectAll('.' + CLS_TB_ITEMS + ' .' + CLS_TB_ITEM, this.hdrEle);\n var lastChild = this.tbItem[this.tbItem.length - 1];\n if (this.tbItem.length !== 0) {\n target.classList.remove(CLS_TB_POPUP);\n target.removeAttribute('style');\n this.tbItems.appendChild(target);\n this.actEleId = target.id;\n if (this.checkPopupOverflow(lastChild)) {\n var prevEle = this.tbItems.lastChild.previousElementSibling;\n this.checkPopupOverflow(prevEle);\n }\n this.isPopup = true;\n }\n return selectAll('.' + CLS_TB_ITEM, this.tbItems).length - 1;\n };\n Tab.prototype.setCloseButton = function (val) {\n var trg = select('.' + CLS_HEADER, this.element);\n if (val === true) {\n trg.classList.add(CLS_CLOSE_SHOW);\n }\n else {\n trg.classList.remove(CLS_CLOSE_SHOW);\n }\n this.tbObj.refreshOverflow();\n this.refreshActiveTabBorder();\n };\n Tab.prototype.prevCtnAnimation = function (prev, current) {\n var animation;\n var checkRTL = this.enableRtl || this.element.classList.contains(CLS_RTL);\n if (this.isPopup || prev <= current) {\n if (this.animation.previous.effect === 'SlideLeftIn') {\n animation = {\n name: 'SlideLeftOut',\n duration: this.animation.previous.duration, timingFunction: this.animation.previous.easing\n };\n }\n else {\n animation = null;\n }\n }\n else {\n if (this.animation.next.effect === 'SlideRightIn') {\n animation = {\n name: 'SlideRightOut',\n duration: this.animation.next.duration, timingFunction: this.animation.next.easing\n };\n }\n else {\n animation = null;\n }\n }\n return animation;\n };\n Tab.prototype.triggerPrevAnimation = function (oldCnt, prevIndex) {\n var _this = this;\n var animateObj = this.prevCtnAnimation(prevIndex, this.selectedItem);\n if (!isNOU(animateObj)) {\n animateObj.begin = function () {\n setStyle(oldCnt, { 'position': 'absolute' });\n oldCnt.classList.add(CLS_PROGRESS);\n oldCnt.classList.add('e-view');\n };\n animateObj.end = function () {\n oldCnt.style.display = 'none';\n oldCnt.classList.remove(CLS_ACTIVE);\n oldCnt.classList.remove(CLS_PROGRESS);\n oldCnt.classList.remove('e-view');\n setStyle(oldCnt, { 'display': '', 'position': '' });\n if (oldCnt.childNodes.length === 0 && !_this.isTemplate) {\n detach(oldCnt);\n }\n };\n new Animation(animateObj).animate(oldCnt);\n }\n else {\n oldCnt.classList.remove(CLS_ACTIVE);\n }\n };\n Tab.prototype.triggerAnimation = function (id, value) {\n var _this = this;\n var prevIndex = this.prevIndex;\n var oldCnt;\n var itemCollection = [].slice.call(this.element.querySelector('.' + CLS_CONTENT).children);\n itemCollection.forEach(function (item) {\n if (item.id === _this.prevActiveEle) {\n oldCnt = item;\n }\n });\n var prevEle = this.tbItem[prevIndex];\n var newCnt = this.getTrgContent(this.cntEle, this.extIndex(id));\n if (isNOU(oldCnt) && !isNOU(prevEle)) {\n var idNo = this.extIndex(prevEle.id);\n oldCnt = this.getTrgContent(this.cntEle, idNo);\n }\n if (!isNOU(newCnt)) {\n this.prevActiveEle = newCnt.id;\n }\n var isPrevent = isNOU(this.animation) || this.animation.next === {} || this.animation.previous === {}\n || isNOU(this.animation.next.effect) || isNOU(this.animation.previous.effect)\n || this.animation.previous.effect == 'None' || this.animation.next.effect == 'None';\n if (this.initRender || value === false || this.animation === {} || isPrevent) {\n if (oldCnt && oldCnt !== newCnt) {\n oldCnt.classList.remove(CLS_ACTIVE);\n }\n return;\n }\n var cnt = select('.' + CLS_CONTENT, this.element);\n var animateObj;\n if (this.prevIndex > this.selectedItem && !this.isPopup) {\n var openEff = this.animation.previous.effect;\n animateObj = {\n name: ((openEff === 'None') ? '' : ((openEff !== 'SlideLeftIn') ? openEff : 'SlideLeftIn')),\n duration: this.animation.previous.duration,\n timingFunction: this.animation.previous.easing\n };\n }\n else if (this.isPopup || this.prevIndex < this.selectedItem || this.prevIndex === this.selectedItem) {\n var clsEff = this.animation.next.effect;\n animateObj = {\n name: ((clsEff === 'None') ? '' : ((clsEff !== 'SlideRightIn') ? clsEff : 'SlideRightIn')),\n duration: this.animation.next.duration,\n timingFunction: this.animation.next.easing\n };\n }\n animateObj.progress = function () {\n cnt.classList.add(CLS_PROGRESS);\n _this.setActiveBorder();\n };\n animateObj.end = function () {\n cnt.classList.remove(CLS_PROGRESS);\n newCnt.classList.add(CLS_ACTIVE);\n };\n if (!this.initRender && !isNOU(oldCnt)) {\n this.triggerPrevAnimation(oldCnt, prevIndex);\n }\n this.isPopup = false;\n if (animateObj.name === '') {\n newCnt.classList.add(CLS_ACTIVE);\n }\n else {\n new Animation(animateObj).animate(newCnt);\n }\n };\n Tab.prototype.keyPressed = function (trg) {\n var trgParent = closest(trg, '.' + CLS_HEADER + ' .' + CLS_TB_ITEM);\n var trgIndex = this.getEleIndex(trgParent);\n if (!isNOU(this.popEle) && trg.classList.contains('e-hor-nav')) {\n (this.popEle.classList.contains(CLS_POPUP_OPEN)) ? this.popObj.hide(this.hide) : this.popObj.show(this.show);\n }\n else if (trg.classList.contains('e-scroll-nav')) {\n trg.click();\n }\n else {\n if (!isNOU(trgParent) && trgParent.classList.contains(CLS_ACTIVE) === false) {\n this.selectTab(trgIndex, null, true);\n if (!isNOU(this.popEle)) {\n this.popObj.hide(this.hide);\n }\n }\n }\n };\n Tab.prototype.getTabHeader = function () {\n if (isNOU(this.element)) {\n return undefined;\n }\n var headers = [].slice.call(this.element.children).filter(function (e) { return e.classList.contains(CLS_HEADER); });\n if (headers.length > 0) {\n return headers[0];\n }\n else {\n var wrap = [].slice.call(this.element.children).filter(function (e) { return !e.classList.contains(CLS_BLA_TEM); })[0];\n if (!wrap) {\n return undefined;\n }\n return [].slice.call(wrap.children).filter(function (e) { return e.classList.contains(CLS_HEADER); })[0];\n }\n };\n Tab.prototype.getEleIndex = function (item) {\n return Array.prototype.indexOf.call(selectAll('.' + CLS_TB_ITEM, this.getTabHeader()), item);\n };\n Tab.prototype.extIndex = function (id) {\n return id.replace(CLS_ITEM + this.tabId + '_', '');\n };\n Tab.prototype.expTemplateContent = function () {\n var _this = this;\n this.templateEle.forEach(function (eleStr) {\n if (!isNOU(_this.element.querySelector(eleStr))) {\n document.body.appendChild(_this.element.querySelector(eleStr)).style.display = 'none';\n }\n });\n };\n Tab.prototype.templateCompile = function (ele, cnt, index) {\n var tempEle = this.createElement('div');\n this.compileElement(tempEle, cnt, 'content', index);\n if (tempEle.childNodes.length !== 0) {\n ele.appendChild(tempEle);\n }\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n Tab.prototype.compileElement = function (ele, val, prop, index) {\n var templateFn;\n if (typeof val === 'string') {\n val = val.trim();\n if (this.isVue) {\n templateFn = compile(SanitizeHtmlHelper.sanitize(val));\n }\n else {\n ele.innerHTML = SanitizeHtmlHelper.sanitize(val);\n }\n }\n else {\n templateFn = compile(val);\n }\n var templateFUN;\n if (!isNOU(templateFn)) {\n templateFUN = templateFn({}, this, prop);\n }\n if (!isNOU(templateFn) && templateFUN.length > 0) {\n [].slice.call(templateFUN).forEach(function (el) {\n ele.appendChild(el);\n });\n }\n };\n Tab.prototype.headerTextCompile = function (element, text, index) {\n this.compileElement(element, text, 'headerTemplate', index);\n };\n Tab.prototype.getContent = function (ele, cnt, callType, index) {\n var eleStr;\n cnt = isNOU(cnt) ? \"\" : cnt;\n if (typeof cnt === 'string' || isNOU(cnt.innerHTML)) {\n if (typeof cnt === 'string' && this.enableHtmlSanitizer) {\n cnt = SanitizeHtmlHelper.sanitize(cnt);\n }\n if (cnt[0] === '.' || cnt[0] === '#') {\n if (document.querySelectorAll(cnt).length) {\n var eleVal = document.querySelector(cnt);\n eleStr = eleVal.outerHTML.trim();\n if (callType === 'clone') {\n ele.appendChild(eleVal.cloneNode(true));\n }\n else {\n ele.appendChild(eleVal);\n eleVal.style.display = '';\n }\n }\n else {\n this.templateCompile(ele, cnt, index);\n }\n }\n else {\n this.templateCompile(ele, cnt, index);\n }\n }\n else {\n ele.appendChild(cnt);\n }\n if (!isNOU(eleStr)) {\n if (this.templateEle.indexOf(cnt.toString()) === -1) {\n this.templateEle.push(cnt.toString());\n }\n }\n };\n Tab.prototype.getTrgContent = function (cntEle, no) {\n var ele;\n if (this.element.classList.contains(CLS_NEST)) {\n ele = select('.' + CLS_NEST + '> .' + CLS_CONTENT + ' > #' + CLS_CONTENT + this.tabId + '_' + no, this.element);\n }\n else {\n ele = this.findEle(cntEle.children, CLS_CONTENT + this.tabId + '_' + no);\n }\n return ele;\n };\n Tab.prototype.findEle = function (items, key) {\n var ele;\n for (var i = 0; i < items.length; i++) {\n if (items[i].id === key) {\n ele = items[i];\n break;\n }\n }\n return ele;\n };\n Tab.prototype.isVertical = function () {\n var isVertical = (this.headerPlacement === 'Left' || this.headerPlacement === 'Right') ? true : false;\n this.scrCntClass = (isVertical) ? CLS_VSCRCNT : CLS_HSCRCNT;\n return isVertical;\n };\n Tab.prototype.addVerticalClass = function () {\n if (this.isVertical()) {\n var tbPos = (this.headerPlacement === 'Left') ? CLS_VLEFT : CLS_VRIGHT;\n addClass([this.hdrEle], [CLS_VERTICAL, tbPos]);\n if (!this.element.classList.contains(CLS_NEST)) {\n addClass([this.element], [CLS_VTAB, tbPos]);\n }\n else {\n addClass([this.hdrEle], [CLS_VTAB, tbPos]);\n }\n }\n if (this.headerPlacement === 'Bottom') {\n addClass([this.hdrEle], [CLS_HBOTTOM]);\n }\n };\n Tab.prototype.updatePopAnimationConfig = function () {\n this.show = { name: (this.isVertical() ? 'FadeIn' : 'SlideDown'), duration: 100 };\n this.hide = { name: (this.isVertical() ? 'FadeOut' : 'SlideUp'), duration: 100 };\n };\n Tab.prototype.changeOrientation = function (place) {\n this.setOrientation(place, this.hdrEle);\n var activeTab = this.hdrEle.querySelector('.' + CLS_ACTIVE);\n var isVertical = this.hdrEle.classList.contains(CLS_VERTICAL) ? true : false;\n removeClass([this.element], [CLS_VTAB]);\n removeClass([this.hdrEle], [CLS_VERTICAL, CLS_VLEFT, CLS_VRIGHT]);\n if (isVertical !== this.isVertical()) {\n this.changeToolbarOrientation();\n if (!isNOU(activeTab) && activeTab.classList.contains(CLS_TB_POPUP)) {\n this.popupHandler(activeTab);\n }\n }\n this.addVerticalClass();\n this.setActiveBorder();\n this.focusItem();\n };\n Tab.prototype.focusItem = function () {\n var curActItem = select(' #' + CLS_ITEM + this.tabId + '_' + this.selectedItem, this.hdrEle);\n if (!isNOU(curActItem)) {\n curActItem.firstElementChild.focus();\n }\n };\n Tab.prototype.changeToolbarOrientation = function () {\n this.tbObj.setProperties({ height: (this.isVertical() ? '100%' : 'auto'), width: (this.isVertical() ? 'auto' : '100%') }, true);\n this.tbObj.changeOrientation();\n this.updatePopAnimationConfig();\n };\n Tab.prototype.setOrientation = function (place, ele) {\n var headerPos = Array.prototype.indexOf.call(this.element.children, ele);\n var contentPos = Array.prototype.indexOf.call(this.element.children, this.element.querySelector('.' + CLS_CONTENT));\n if (place === 'Bottom' && (contentPos > headerPos)) {\n this.element.appendChild(ele);\n }\n else {\n removeClass([ele], [CLS_HBOTTOM]);\n this.element.insertBefore(ele, select('.' + CLS_CONTENT, this.element));\n }\n };\n Tab.prototype.setCssClass = function (ele, cls, val) {\n if (cls === '') {\n return;\n }\n var list = cls.split(' ');\n for (var i = 0; i < list.length; i++) {\n if (val) {\n ele.classList.add(list[i]);\n }\n else {\n ele.classList.remove(list[i]);\n }\n }\n };\n Tab.prototype.setContentHeight = function (val) {\n if (this.element.classList.contains(CLS_FILL)) {\n removeClass([this.element], [CLS_FILL]);\n }\n if (isNOU(this.cntEle)) {\n return;\n }\n var hdrEle = this.getTabHeader();\n if (this.heightAdjustMode === 'None') {\n if (this.height === 'auto') {\n return;\n }\n else {\n if (!this.isVertical()) {\n setStyle(this.cntEle, { 'height': (this.element.clientHeight - hdrEle.offsetHeight) + 'px' });\n }\n }\n }\n else if (this.heightAdjustMode === 'Fill') {\n addClass([this.element], [CLS_FILL]);\n setStyle(this.element, { 'height': '100%' });\n this.cntEle.style.height = 'calc(100% - ' + this.hdrEle.offsetHeight + 'px)';\n }\n else if (this.heightAdjustMode === 'Auto') {\n if (this.isTemplate === true) {\n var cnt = selectAll('.' + CLS_CONTENT + ' > .' + CLS_ITEM, this.element);\n for (var i = 0; i < cnt.length; i++) {\n cnt[i].setAttribute('style', 'display:block; visibility: visible');\n this.maxHeight = Math.max(this.maxHeight, this.getHeight(cnt[i]));\n cnt[i].style.removeProperty('display');\n cnt[i].style.removeProperty('visibility');\n }\n }\n else {\n this.cntEle = select('.' + CLS_CONTENT, this.element);\n if (val === true) {\n this.cntEle.appendChild(this.createElement('div', {\n id: (CLS_CONTENT + this.tabId + '_' + 0), className: CLS_ITEM + ' ' + CLS_ACTIVE,\n attrs: { 'role': 'tabpanel', 'aria-labelledby': CLS_ITEM + this.tabId + '_' + 0 }\n }));\n }\n var ele = this.cntEle.children.item(0);\n for (var i = 0; i < this.items.length; i++) {\n this.getContent(ele, this.items[i].content, 'clone', i);\n this.maxHeight = Math.max(this.maxHeight, this.getHeight(ele));\n while (ele.firstChild) {\n ele.removeChild(ele.firstChild);\n }\n }\n if (this.isReact) {\n this.clearTemplate(['content']);\n }\n this.templateEle = [];\n this.getContent(ele, this.items[0].content, 'render', 0);\n if (this.prevIndex !== this.selectedItem) {\n ele.classList.remove(CLS_ACTIVE);\n }\n }\n setStyle(this.cntEle, { 'height': this.maxHeight + 'px' });\n }\n else {\n setStyle(this.cntEle, { 'height': 'auto' });\n }\n };\n Tab.prototype.getHeight = function (ele) {\n var cs = window.getComputedStyle(ele);\n return ele.offsetHeight + parseFloat(cs.getPropertyValue('padding-top')) + parseFloat(cs.getPropertyValue('padding-bottom')) +\n parseFloat(cs.getPropertyValue('margin-top')) + parseFloat(cs.getPropertyValue('margin-bottom'));\n };\n Tab.prototype.setActiveBorder = function () {\n var trgHdrEle = this.getTabHeader();\n var trg = select('.' + CLS_TB_ITEM + '.' + CLS_ACTIVE, trgHdrEle);\n if (isNOU(trg)) {\n return;\n }\n if (!this.reorderActiveTab) {\n if (trg.classList.contains(CLS_TB_POPUP) && !this.bdrLine.classList.contains(CLS_HIDDEN)) {\n this.bdrLine.classList.add(CLS_HIDDEN);\n }\n if (trgHdrEle && !trgHdrEle.classList.contains(CLS_REORDER_ACTIVE_ITEM)) {\n trgHdrEle.classList.add(CLS_REORDER_ACTIVE_ITEM);\n }\n }\n else if (trgHdrEle) {\n trgHdrEle.classList.remove(CLS_REORDER_ACTIVE_ITEM);\n }\n var root = closest(trg, '.' + CLS_TAB);\n if (this.element !== root) {\n return;\n }\n this.tbItems = select('.' + CLS_TB_ITEMS, trgHdrEle);\n var bar = select('.' + CLS_INDICATOR, trgHdrEle);\n var scrollCnt = select('.' + CLS_TB_ITEMS + ' .' + this.scrCntClass, trgHdrEle);\n if (this.isVertical()) {\n setStyle(bar, { 'left': '', 'right': '' });\n var tbHeight = (isNOU(scrollCnt)) ? this.tbItems.offsetHeight : scrollCnt.offsetHeight;\n if (tbHeight !== 0) {\n setStyle(bar, { 'top': trg.offsetTop + 'px', 'height': trg.offsetHeight + 'px' });\n }\n else {\n setStyle(bar, { 'top': 0, 'height': 0 });\n }\n }\n else {\n if (this.overflowMode === 'MultiRow') {\n var top_1 = this.headerPlacement === 'Bottom' ? trg.offsetTop : trg.offsetHeight + trg.offsetTop;\n setStyle(bar, { 'top': top_1 + 'px', 'height': '' });\n }\n else {\n setStyle(bar, { 'top': '', 'height': '' });\n }\n var tbWidth = (isNOU(scrollCnt)) ? this.tbItems.offsetWidth : scrollCnt.offsetWidth;\n if (tbWidth !== 0) {\n setStyle(bar, { 'left': trg.offsetLeft + 'px', 'right': tbWidth - (trg.offsetLeft + trg.offsetWidth) + 'px' });\n }\n else {\n setStyle(bar, { 'left': 'auto', 'right': 'auto' });\n }\n }\n if (!isNOU(this.bdrLine) && !trg.classList.contains(CLS_TB_POPUP)) {\n this.bdrLine.classList.remove(CLS_HIDDEN);\n }\n };\n Tab.prototype.setActive = function (value, skipDataBind, isInteracted) {\n if (skipDataBind === void 0) { skipDataBind = false; }\n if (isInteracted === void 0) { isInteracted = false; }\n this.tbItem = selectAll('.' + CLS_TB_ITEM, this.getTabHeader());\n var trg = this.tbItem[value];\n if (value < 0 || isNaN(value) || this.tbItem.length === 0) {\n return;\n }\n if (value >= 0 && !skipDataBind) {\n this.allowServerDataBinding = false;\n this.setProperties({ selectedItem: value }, true);\n this.allowServerDataBinding = true;\n if (!this.initRender) {\n this.serverDataBind();\n }\n }\n if (trg.classList.contains(CLS_ACTIVE)) {\n this.setActiveBorder();\n return;\n }\n if (!this.isTemplate) {\n attributes(trg.firstElementChild, { 'aria-controls': CLS_CONTENT + this.tabId + '_' + value });\n }\n var id = trg.id;\n this.removeActiveClass();\n trg.classList.add(CLS_ACTIVE);\n trg.firstElementChild.setAttribute('aria-selected', 'true');\n var no = Number(this.extIndex(id));\n if (isNOU(this.prevActiveEle)) {\n this.prevActiveEle = CLS_CONTENT + this.tabId + '_' + no;\n }\n if (this.isTemplate) {\n if (select('.' + CLS_CONTENT, this.element).children.length > 0) {\n var trg_1 = this.findEle(select('.' + CLS_CONTENT, this.element).children, CLS_CONTENT + this.tabId + '_' + no);\n if (!isNOU(trg_1)) {\n trg_1.classList.add(CLS_ACTIVE);\n }\n this.triggerAnimation(id, this.enableAnimation);\n }\n }\n else {\n this.cntEle = select('.' + CLS_TAB + ' > .' + CLS_CONTENT, this.element);\n var item = this.getTrgContent(this.cntEle, this.extIndex(id));\n if (isNOU(item)) {\n this.cntEle.appendChild(this.createElement('div', {\n id: CLS_CONTENT + this.tabId + '_' + this.extIndex(id), className: CLS_ITEM + ' ' + CLS_ACTIVE,\n attrs: { role: 'tabpanel', 'aria-labelledby': CLS_ITEM + this.tabId + '_' + this.extIndex(id) }\n }));\n var eleTrg = this.getTrgContent(this.cntEle, this.extIndex(id));\n var itemIndex = Array.prototype.indexOf.call(this.itemIndexArray, id);\n this.getContent(eleTrg, this.items[itemIndex].content, 'render', itemIndex);\n }\n else {\n item.classList.add(CLS_ACTIVE);\n }\n this.triggerAnimation(id, this.enableAnimation);\n }\n this.setActiveBorder();\n this.refreshItemVisibility(trg);\n if (!this.initRender && !skipDataBind) {\n trg.firstElementChild.focus();\n var eventArg = {\n previousItem: this.prevItem,\n previousIndex: this.prevIndex,\n selectedItem: trg,\n selectedIndex: value,\n selectedContent: select('#' + CLS_CONTENT + this.tabId + '_' + this.selectingID, this.content),\n isSwiped: this.isSwipeed,\n isInteracted: isInteracted\n };\n this.trigger('selected', eventArg);\n }\n };\n Tab.prototype.setItems = function (items) {\n this.isReplace = true;\n this.tbItems = select('.' + CLS_TB_ITEMS, this.getTabHeader());\n this.tbObj.items = this.parseObject(items, 0);\n this.tbObj.dataBind();\n this.isReplace = false;\n };\n Tab.prototype.setRTL = function (value) {\n this.tbObj.enableRtl = value;\n this.tbObj.dataBind();\n this.setCssClass(this.element, CLS_RTL, value);\n this.refreshActiveBorder();\n };\n Tab.prototype.refreshActiveBorder = function () {\n if (!isNOU(this.bdrLine)) {\n this.bdrLine.classList.add(CLS_HIDDEN);\n }\n this.setActiveBorder();\n };\n Tab.prototype.showPopup = function (config) {\n var tbPop = select('.e-popup.e-toolbar-pop', this.hdrEle);\n if (tbPop.classList.contains('e-popup-close')) {\n var tbPopObj = (tbPop && tbPop.ej2_instances[0]);\n tbPopObj.position.X = (this.headerPlacement === 'Left') ? 'left' : 'right';\n tbPopObj.dataBind();\n tbPopObj.show(config);\n }\n };\n Tab.prototype.bindDraggable = function () {\n var _this = this;\n if (this.allowDragAndDrop) {\n var tabHeader = this.element.querySelector('.' + CLS_HEADER);\n if (tabHeader) {\n var items = tabHeader.querySelectorAll('.' + CLS_TB_ITEM);\n items.forEach(function (element) {\n _this.initializeDrag(element);\n });\n }\n }\n };\n Tab.prototype.wireEvents = function () {\n this.bindDraggable();\n window.addEventListener('resize', this.resizeContext);\n EventHandler.add(this.element, 'mouseover', this.hoverHandler, this);\n EventHandler.add(this.element, 'keydown', this.spaceKeyDown, this);\n if (!isNOU(this.cntEle)) {\n this.touchModule = new Touch(this.cntEle, { swipe: this.swipeHandler.bind(this) });\n }\n this.keyModule = new KeyboardEvents(this.element, { keyAction: this.keyHandler.bind(this), keyConfigs: this.keyConfigs });\n this.tabKeyModule = new KeyboardEvents(this.element, {\n keyAction: this.keyHandler.bind(this),\n keyConfigs: { openPopup: 'shift+f10', tab: 'tab', shiftTab: 'shift+tab' },\n eventName: 'keydown'\n });\n };\n Tab.prototype.unWireEvents = function () {\n if (!isNOU(this.keyModule)) {\n this.keyModule.destroy();\n }\n if (!isNOU(this.tabKeyModule)) {\n this.tabKeyModule.destroy();\n }\n if (!isNOU(this.cntEle) && !isNOU(this.touchModule)) {\n this.touchModule.destroy();\n this.touchModule = null;\n }\n window.removeEventListener('resize', this.resizeContext);\n EventHandler.remove(this.element, 'mouseover', this.hoverHandler);\n EventHandler.remove(this.element, 'keydown', this.spaceKeyDown);\n this.element.classList.remove(CLS_RTL);\n this.element.classList.remove(CLS_FOCUS);\n };\n Tab.prototype.clickHandler = function (args) {\n this.element.classList.remove(CLS_FOCUS);\n var trg = args.originalEvent.target;\n var trgParent = closest(trg, '.' + CLS_TB_ITEM);\n var trgIndex = this.getEleIndex(trgParent);\n if (trg.classList.contains(CLS_ICON_CLOSE)) {\n this.removeTab(trgIndex);\n }\n else if (this.isVertical() && closest(trg, '.' + CLS_HOR_NAV)) {\n this.showPopup(this.show);\n }\n else {\n this.isPopup = false;\n if (!isNOU(trgParent) && (trgIndex !== this.selectedItem)) {\n this.selectTab(trgIndex, args.originalEvent, true);\n }\n }\n };\n Tab.prototype.swipeHandler = function (e) {\n if (e.velocity < 3 && isNOU(e.originalEvent.changedTouches)) {\n return;\n }\n if (this.isNested) {\n this.element.setAttribute('data-swipe', 'true');\n }\n var nestedTab = this.element.querySelector('[data-swipe=\"true\"]');\n if (nestedTab) {\n nestedTab.removeAttribute('data-swipe');\n return;\n }\n this.isSwipeed = true;\n if (e.swipeDirection === 'Right' && this.selectedItem !== 0) {\n for (var k = this.selectedItem - 1; k >= 0; k--) {\n if (!this.tbItem[k].classList.contains(CLS_HIDDEN)) {\n this.selectTab(k, null, true);\n break;\n }\n }\n }\n else if (e.swipeDirection === 'Left' && (this.selectedItem !== selectAll('.' + CLS_TB_ITEM, this.element).length - 1)) {\n for (var i = this.selectedItem + 1; i < this.tbItem.length; i++) {\n if (!this.tbItem[i].classList.contains(CLS_HIDDEN)) {\n this.selectTab(i, null, true);\n break;\n }\n }\n }\n this.isSwipeed = false;\n };\n Tab.prototype.spaceKeyDown = function (e) {\n if ((e.keyCode === 32 && e.which === 32) || (e.keyCode === 35 && e.which === 35)) {\n var clstHead = closest(e.target, '.' + CLS_HEADER);\n if (!isNOU(clstHead)) {\n e.preventDefault();\n }\n }\n };\n Tab.prototype.keyHandler = function (e) {\n if (this.element.classList.contains(CLS_DISABLE)) {\n return;\n }\n this.element.classList.add(CLS_FOCUS);\n var trg = e.target;\n var tabHeader = this.getTabHeader();\n var actEle = select('.' + CLS_ACTIVE, tabHeader);\n this.popEle = select('.' + CLS_TB_POP, tabHeader);\n if (!isNOU(this.popEle)) {\n this.popObj = this.popEle.ej2_instances[0];\n }\n var item = closest(document.activeElement, '.' + CLS_TB_ITEM);\n var trgParent = closest(trg, '.' + CLS_TB_ITEM);\n switch (e.action) {\n case 'space':\n case 'enter':\n if (trg.parentElement.classList.contains(CLS_DISABLE)) {\n return;\n }\n if (e.action === 'enter' && trg.classList.contains('e-hor-nav')) {\n this.showPopup(this.show);\n break;\n }\n this.keyPressed(trg);\n break;\n case 'tab':\n case 'shiftTab':\n if (trg.classList.contains(CLS_WRAP)\n && closest(trg, '.' + CLS_TB_ITEM).classList.contains(CLS_ACTIVE) === false) {\n trg.setAttribute('tabindex', trg.getAttribute('data-tabindex'));\n }\n if (this.popObj && isVisible(this.popObj.element)) {\n this.popObj.hide(this.hide);\n }\n if (!isNOU(actEle) && actEle.children.item(0).getAttribute('tabindex') === '-1') {\n actEle.children.item(0).setAttribute('tabindex', '0');\n }\n break;\n case 'moveLeft':\n case 'moveRight':\n if (!isNOU(item)) {\n this.refreshItemVisibility(item);\n }\n break;\n case 'openPopup':\n e.preventDefault();\n if (!isNOU(this.popEle) && this.popEle.classList.contains(CLS_POPUP_CLOSE)) {\n this.popObj.show(this.show);\n }\n break;\n case 'delete':\n if (this.showCloseButton === true && !isNOU(trgParent)) {\n var nxtSib = trgParent.nextSibling;\n if (!isNOU(nxtSib) && nxtSib.classList.contains(CLS_TB_ITEM)) {\n nxtSib.firstElementChild.focus();\n }\n this.removeTab(this.getEleIndex(trgParent));\n }\n this.setActiveBorder();\n break;\n }\n };\n Tab.prototype.refreshItemVisibility = function (target) {\n var scrCnt = select('.' + this.scrCntClass, this.tbItems);\n if (!this.isVertical() && !isNOU(scrCnt)) {\n var scrBar = select('.e-hscroll-bar', this.tbItems);\n scrBar.removeAttribute('tabindex');\n var scrStart = scrBar.scrollLeft;\n var scrEnd = scrStart + scrBar.offsetWidth;\n var eleStart = target.offsetLeft;\n var eleWidth = target.offsetWidth;\n var eleEnd = target.offsetLeft + target.offsetWidth;\n if ((scrStart < eleStart) && (scrEnd < eleEnd)) {\n var eleViewRange = scrEnd - eleStart;\n scrBar.scrollLeft = scrStart + (eleWidth - eleViewRange);\n }\n else {\n if ((scrStart > eleStart) && (scrEnd > eleEnd)) {\n var eleViewRange = eleEnd - scrStart;\n scrBar.scrollLeft = scrStart - (eleWidth - eleViewRange);\n }\n }\n }\n else {\n return;\n }\n };\n Tab.prototype.getIndexFromEle = function (id) {\n return parseInt(id.substring(id.lastIndexOf('_') + 1), 10);\n };\n Tab.prototype.hoverHandler = function (e) {\n var trg = e.target;\n if (!isNOU(trg.classList) && trg.classList.contains(CLS_ICON_CLOSE)) {\n trg.setAttribute('title', new L10n('tab', { closeButtonTitle: this.title }, this.locale).getConstant('closeButtonTitle'));\n }\n };\n Tab.prototype.evalOnPropertyChangeItems = function (newProp, oldProp) {\n if (!(newProp.items instanceof Array && oldProp.items instanceof Array)) {\n var changedProp = Object.keys(newProp.items);\n for (var i = 0; i < changedProp.length; i++) {\n var index = parseInt(Object.keys(newProp.items)[i], 10);\n var properties = Object.keys(newProp.items[index]);\n for (var j = 0; j < properties.length; j++) {\n var oldVal = Object(oldProp.items[index])[properties[j]];\n var newVal = Object(newProp.items[index])[properties[j]];\n var hdr = this.element.querySelectorAll('.' + CLS_TB_ITEM)[index];\n var itemIndex = void 0;\n if (hdr && !isNOU(hdr.id) && hdr.id !== '') {\n itemIndex = this.getIndexFromEle(hdr.id);\n }\n else {\n itemIndex = index;\n }\n var hdrItem = select('.' + CLS_TB_ITEMS + ' #' + CLS_ITEM + this.tabId + '_' + itemIndex, this.element);\n var cntItem = select('.' + CLS_CONTENT + ' #' + CLS_CONTENT + this.tabId + '_' + itemIndex, this.element);\n if (properties[j] === 'header' || properties[j] === 'headerTemplate') {\n var icon = (isNOU(this.items[index].header) ||\n isNOU(this.items[index].header.iconCss)) ? '' : this.items[index].header.iconCss;\n var textVal = this.items[index].headerTemplate || this.items[index].header.text;\n if (properties[j] === 'headerTemplate') {\n this.clearTabTemplate(hdrItem, properties[j], CLS_TB_ITEM);\n }\n if ((textVal === '') && (icon === '')) {\n this.removeTab(index);\n }\n else {\n this.tbId = hdr.id;\n var arr = [];\n arr.push(this.items[index]);\n this.items.splice(index, 1);\n this.itemIndexArray.splice(index, 1);\n this.tbObj.items.splice(index, 1);\n var isHiddenEle = hdrItem.classList.contains(CLS_HIDDEN);\n detach(hdrItem);\n this.isReplace = true;\n this.addTab(arr, index);\n if (isHiddenEle) {\n this.hideTab(index);\n }\n this.isReplace = false;\n }\n }\n if (properties[j] === 'content' && !isNOU(cntItem)) {\n var strVal = typeof newVal === 'string' || isNOU(newVal.innerHTML);\n if (strVal && (newVal[0] === '.' || newVal[0] === '#') && newVal.length) {\n var eleVal = document.querySelector(newVal);\n cntItem.appendChild(eleVal);\n eleVal.style.display = '';\n }\n else if (newVal === '' && oldVal[0] === '#') {\n document.body.appendChild(this.element.querySelector(oldVal)).style.display = 'none';\n cntItem.innerHTML = newVal;\n }\n else if (this.isAngular || this.isReact) {\n this.clearTabTemplate(cntItem, properties[j], CLS_ITEM);\n cntItem.innerHTML = '';\n this.templateCompile(cntItem, newVal, index);\n }\n else if (typeof newVal !== 'function') {\n cntItem.innerHTML = newVal;\n }\n }\n if (properties[j] === 'cssClass') {\n if (!isNOU(hdrItem)) {\n hdrItem.classList.remove(oldVal);\n hdrItem.classList.add(newVal);\n }\n if (!isNOU(cntItem)) {\n cntItem.classList.remove(oldVal);\n cntItem.classList.add(newVal);\n }\n }\n if (properties[j] === 'disabled') {\n this.enableTab(index, ((newVal === true) ? false : true));\n }\n if (properties[j] === 'visible') {\n this.hideTab(index, ((newVal === true) ? false : true));\n }\n }\n }\n }\n else {\n this.lastIndex = 0;\n if (isNOU(this.tbObj)) {\n this.reRenderItems();\n }\n else {\n if (this.isReact || this.isAngular) {\n this.clearTemplate();\n }\n this.setItems(newProp.items);\n if (this.templateEle.length > 0) {\n this.expTemplateContent();\n }\n this.templateEle = [];\n var selectElement = select('.' + CLS_TAB + ' > .' + CLS_CONTENT, this.element);\n while (selectElement.firstElementChild) {\n detach(selectElement.firstElementChild);\n }\n this.select(this.selectedItem);\n this.draggableItems = [];\n this.bindDraggable();\n }\n }\n };\n Tab.prototype.clearTabTemplate = function (templateEle, templateName, className) {\n if (this.registeredTemplate && this.registeredTemplate[templateName]) {\n var registeredTemplates = this.registeredTemplate;\n for (var index = 0; index < registeredTemplates[templateName].length; index++) {\n var registeredItem = registeredTemplates[templateName][index].rootNodes[0];\n var closestItem = closest(registeredItem, '.' + className);\n if (!isNullOrUndefined(closestItem) && closestItem === templateEle) {\n this.clearTemplate([templateName], [registeredTemplates[templateName][index]]);\n break;\n }\n }\n }\n else if (this.portals && this.portals.length > 0) {\n var portals = this.portals;\n for (var index = 0; index < portals.length; index++) {\n var portalItem = portals[index];\n var closestItem = closest(portalItem.containerInfo, '.' + className);\n if (!isNullOrUndefined(closestItem) && closestItem === templateEle) {\n this.clearTemplate([templateName], index);\n break;\n }\n }\n }\n };\n Tab.prototype.initializeDrag = function (target) {\n var _this = this;\n var dragObj = new Draggable(target, {\n dragArea: this.dragArea,\n dragTarget: '.' + CLS_TB_ITEM,\n clone: true,\n helper: this.helper.bind(this),\n dragStart: this.itemDragStart.bind(this),\n drag: function (e) {\n var dragIndex = _this.getEleIndex(_this.dragItem);\n var dropIndex;\n var dropItem;\n var dragArgs = {\n draggedItem: _this.dragItem,\n event: e.event,\n target: e.target,\n droppedItem: e.target.closest('.' + CLS_TB_ITEM),\n clonedElement: _this.cloneElement,\n index: dragIndex\n };\n if (!isNOU(e.target.closest('.' + CLS_TAB)) && !e.target.closest('.' + CLS_TAB).isEqualNode(_this.element) &&\n _this.dragArea !== '.' + CLS_HEADER) {\n _this.trigger('dragging', dragArgs);\n }\n else {\n if (!(e.target.closest(_this.dragArea)) && _this.overflowMode !== 'Popup') {\n document.body.style.cursor = 'not-allowed';\n addClass([_this.cloneElement], CLS_HIDDEN);\n if (_this.dragItem.classList.contains(CLS_HIDDEN)) {\n removeClass([_this.dragItem], CLS_HIDDEN);\n }\n _this.dragItem.querySelector('.' + CLS_WRAP).style.visibility = 'visible';\n }\n else {\n document.body.style.cursor = '';\n _this.dragItem.querySelector('.' + CLS_WRAP).style.visibility = 'hidden';\n if (_this.cloneElement.classList.contains(CLS_HIDDEN)) {\n removeClass([_this.cloneElement], CLS_HIDDEN);\n }\n }\n if (_this.overflowMode === 'Scrollable' && !isNOU(_this.element.querySelector('.e-hscroll'))) {\n var scrollRightNavEle = _this.element.querySelector('.e-scroll-right-nav');\n var scrollLeftNavEle = _this.element.querySelector('.e-scroll-left-nav');\n var hscrollBar = _this.element.querySelector('.e-hscroll-bar');\n if (!isNOU(scrollRightNavEle) && Math.abs((scrollRightNavEle.offsetWidth / 2) +\n scrollRightNavEle.offsetLeft) > _this.cloneElement.offsetLeft + _this.cloneElement.offsetWidth) {\n hscrollBar.scrollLeft -= 10;\n }\n if (!isNOU(scrollLeftNavEle) && Math.abs((scrollLeftNavEle.offsetLeft + scrollLeftNavEle.offsetWidth) -\n _this.cloneElement.offsetLeft) > (scrollLeftNavEle.offsetWidth / 2)) {\n hscrollBar.scrollLeft += 10;\n }\n }\n _this.cloneElement.style.pointerEvents = 'none';\n dropItem = closest(e.target, '.' + CLS_TB_ITEM + '.e-draggable');\n var scrollContentWidth = 0;\n if (_this.overflowMode === 'Scrollable' && !isNOU(_this.element.querySelector('.e-hscroll'))) {\n scrollContentWidth = _this.element.querySelector('.e-hscroll-content').offsetWidth;\n }\n if (dropItem != null && !dropItem.isSameNode(_this.dragItem) &&\n dropItem.closest('.' + CLS_TAB).isSameNode(_this.dragItem.closest('.' + CLS_TAB))) {\n dropIndex = _this.getEleIndex(dropItem);\n if (dropIndex < dragIndex &&\n (Math.abs((dropItem.offsetLeft + dropItem.offsetWidth) -\n _this.cloneElement.offsetLeft) > (dropItem.offsetWidth / 2))) {\n _this.dragAction(dropItem, dragIndex, dropIndex);\n }\n if (dropIndex > dragIndex &&\n (Math.abs(dropItem.offsetWidth / 2) + dropItem.offsetLeft -\n scrollContentWidth) < _this.cloneElement.offsetLeft + _this.cloneElement.offsetWidth) {\n _this.dragAction(dropItem, dragIndex, dropIndex);\n }\n }\n _this.droppedIndex = _this.getEleIndex(_this.dragItem);\n _this.trigger('dragging', dragArgs);\n }\n },\n dragStop: this.itemDragStop.bind(this)\n });\n this.draggableItems.push(dragObj);\n };\n Tab.prototype.helper = function (e) {\n this.cloneElement = this.createElement('div');\n if (e.element) {\n this.cloneElement = (e.element.cloneNode(true));\n addClass([this.cloneElement], 'e-tab-clone-element');\n if (this.element.querySelector('.' + CLS_HEADER).classList.contains(CLS_CLOSE_SHOW)) {\n addClass([this.cloneElement], CLS_CLOSE_SHOW);\n }\n removeClass([this.cloneElement.querySelector('.' + CLS_WRAP)], 'e-ripple');\n if (!isNOU(this.cloneElement.querySelector('.e-ripple-element'))) {\n remove(this.cloneElement.querySelector('.e-ripple-element'));\n }\n document.body.appendChild(this.cloneElement);\n }\n return this.cloneElement;\n };\n Tab.prototype.itemDragStart = function (e) {\n var _this = this;\n this.draggingItems = this.items.map(function (x) { return x; });\n this.dragItem = e.element;\n var dragArgs = {\n draggedItem: e.element,\n event: e.event,\n target: e.target,\n droppedItem: null,\n index: this.getEleIndex(this.dragItem),\n clonedElement: this.cloneElement,\n cancel: false\n };\n this.trigger('onDragStart', dragArgs, function (tabitemDragArgs) {\n if (tabitemDragArgs.cancel) {\n var dragObj = e.element.ej2_instances[0];\n if (!isNullOrUndefined(dragObj)) {\n dragObj.intDestroy(e.event);\n }\n detach(_this.cloneElement);\n }\n else {\n _this.removeActiveClass();\n addClass([_this.tbItems.querySelector('.' + CLS_INDICATOR)], CLS_HIDDEN);\n _this.dragItem.querySelector('.' + CLS_WRAP).style.visibility = 'hidden';\n }\n });\n };\n Tab.prototype.dragAction = function (dropItem, dragsIndex, dropIndex) {\n if (this.items.length > 0) {\n var item = this.draggingItems[dragsIndex];\n this.draggingItems.splice(dragsIndex, 1);\n this.draggingItems.splice(dropIndex, 0, item);\n }\n if (this.overflowMode === 'MultiRow') {\n dropItem.parentNode.insertBefore(this.dragItem, dropItem.nextElementSibling);\n }\n if (dragsIndex > dropIndex) {\n if (!(this.dragItem.parentElement).isSameNode(dropItem.parentElement)) {\n if (this.overflowMode === 'Extended') {\n if (dropItem.isSameNode(dropItem.parentElement.lastChild)) {\n var popupContainer = this.dragItem.parentNode;\n dropItem.parentNode.insertBefore(this.dragItem, dropItem);\n popupContainer.insertBefore(dropItem.parentElement.lastChild, popupContainer.childNodes[0]);\n }\n else {\n this.dragItem.parentNode.insertBefore((dropItem.parentElement.lastChild), this.dragItem.parentElement.childNodes[0]);\n dropItem.parentNode.insertBefore(this.dragItem, dropItem);\n }\n }\n else {\n var lastEle = (dropItem.parentElement).lastChild;\n if (dropItem.isSameNode(lastEle)) {\n var popupContainer = this.dragItem.parentNode;\n dropItem.parentNode.insertBefore(this.dragItem, dropItem);\n popupContainer.insertBefore(lastEle, popupContainer.childNodes[0]);\n }\n else {\n this.dragItem.parentNode.insertBefore((dropItem.parentElement).lastChild, this.dragItem.parentElement.childNodes[0]);\n dropItem.parentNode.insertBefore(this.dragItem, dropItem);\n }\n }\n }\n else {\n this.dragItem.parentNode.insertBefore(this.dragItem, dropItem);\n }\n }\n if (dragsIndex < dropIndex) {\n if (!(this.dragItem.parentElement).isSameNode(dropItem.parentElement)) {\n if (this.overflowMode === 'Extended') {\n this.dragItem.parentElement.appendChild(dropItem.parentElement.firstElementChild);\n dropItem.parentNode.insertBefore(this.dragItem, dropItem.nextSibling);\n }\n else {\n this.dragItem.parentNode.insertBefore((dropItem.parentElement).lastChild, this.dragItem.parentElement.childNodes[0]);\n dropItem.parentNode.insertBefore(this.dragItem, dropItem);\n }\n }\n else {\n this.dragItem.parentNode.insertBefore(this.dragItem, dropItem.nextElementSibling);\n }\n }\n };\n Tab.prototype.itemDragStop = function (e) {\n var _this = this;\n detach(this.cloneElement);\n this.cloneElement = null;\n this.dragItem.querySelector('.' + CLS_WRAP).style.visibility = 'visible';\n document.body.style.cursor = '';\n var dragStopArgs = {\n draggedItem: this.dragItem,\n event: e.event,\n target: e.target,\n droppedItem: this.tbItem[this.droppedIndex],\n clonedElement: null,\n index: this.droppedIndex,\n cancel: false\n };\n this.trigger('dragged', dragStopArgs, function (tabItemDropArgs) {\n if (tabItemDropArgs.cancel) {\n _this.refresh();\n }\n else {\n if (_this.items.length > 0 && _this.draggingItems.length > 0) {\n _this.items = _this.draggingItems;\n _this.selectedItem = _this.droppedIndex;\n _this.refresh();\n }\n else {\n _this.dragItem.querySelector('.' + CLS_WRAP).style.visibility = '';\n removeClass([_this.tbItems.querySelector('.' + CLS_INDICATOR)], CLS_HIDDEN);\n _this.selectTab(_this.droppedIndex, null, true);\n }\n }\n });\n this.dragItem = null;\n };\n /**\n * Enables or disables the specified Tab item. On passing value as `false`, the item will be disabled.\n *\n * @param {number} index - Index value of target Tab item.\n * @param {boolean} value - Boolean value that determines whether the command should be enabled or disabled.\n * By default, isEnable is true.\n * @returns {void}.\n */\n Tab.prototype.enableTab = function (index, value) {\n var tbItems = selectAll('.' + CLS_TB_ITEM, this.element)[index];\n if (isNOU(tbItems)) {\n return;\n }\n if (value === true) {\n tbItems.classList.remove(CLS_DISABLE, CLS_OVERLAY);\n tbItems.firstElementChild.setAttribute('tabindex', tbItems.firstElementChild.getAttribute('data-tabindex'));\n }\n else {\n tbItems.classList.add(CLS_DISABLE, CLS_OVERLAY);\n tbItems.firstElementChild.removeAttribute('tabindex');\n if (tbItems.classList.contains(CLS_ACTIVE)) {\n this.select(index + 1);\n }\n }\n if (!isNOU(this.items[index])) {\n this.items[index].disabled = !value;\n this.dataBind();\n }\n tbItems.firstElementChild.setAttribute('aria-disabled', (value === true) ? 'false' : 'true');\n };\n /**\n * Adds new items to the Tab that accepts an array as Tab items.\n *\n * @param {TabItemModel[]} items - An array of item that is added to the Tab.\n * @param {number} index - Number value that determines where the items to be added. By default, index is 0.\n * @returns {void}.\n */\n Tab.prototype.addTab = function (items, index) {\n var _this = this;\n var addArgs = { addedItems: items, cancel: false };\n if (!this.isReplace) {\n this.trigger('adding', addArgs, function (tabAddingArgs) {\n if (!tabAddingArgs.cancel) {\n _this.addingTabContent(items, index);\n }\n });\n }\n else {\n this.addingTabContent(items, index);\n }\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n Tab.prototype.addingTabContent = function (items, index) {\n var _this = this;\n var lastEleIndex = 0;\n this.hdrEle = select('.' + CLS_HEADER, this.element);\n if (isNOU(this.hdrEle)) {\n this.items = items;\n this.reRenderItems();\n this.bindDraggable();\n }\n else {\n var itemsCount = selectAll('.e-tab-header .' + CLS_TB_ITEM, this.element).length;\n if (itemsCount !== 0) {\n lastEleIndex = this.lastIndex + 1;\n }\n if (isNOU(index)) {\n index = itemsCount - 1;\n }\n if (itemsCount < index || index < 0 || isNaN(index)) {\n return;\n }\n if (itemsCount === 0 && !isNOU(this.hdrEle)) {\n this.hdrEle.style.display = '';\n }\n if (!isNOU(this.bdrLine)) {\n this.bdrLine.classList.add(CLS_HIDDEN);\n }\n this.tbItems = select('.' + CLS_TB_ITEMS, this.getTabHeader());\n this.isAdd = true;\n var tabItems_2 = this.parseObject(items, index);\n this.isAdd = false;\n var i_1 = 0;\n var textValue_1;\n items.forEach(function (item, place) {\n textValue_1 = item.headerTemplate || item.header.text;\n if (!(isNOU(item.headerTemplate || item.header) || isNOU(textValue_1) ||\n (textValue_1.length === 0) && !isNOU(item.header) && isNOU(item.header.iconCss))) {\n if (tabItems_2[place]) {\n if (isNOU(item.id)) {\n item.id = CLS_ITEM + _this.tabId + '_' + TABITEMPREFIX + (lastEleIndex + place).toString();\n }\n tabItems_2[place].htmlAttributes['data-id'] = item.id;\n }\n _this.items.splice((index + i_1), 0, item);\n i_1++;\n }\n if (_this.isTemplate && !isNOU(item.header) && !isNOU(item.header.text)) {\n var no = lastEleIndex + place;\n var ele = _this.createElement('div', {\n id: CLS_CONTENT + _this.tabId + '_' + no, className: CLS_ITEM,\n attrs: { role: 'tabpanel', 'aria-labelledby': CLS_ITEM + '_' + no }\n });\n _this.cntEle.insertBefore(ele, _this.cntEle.children[(index + place)]);\n var eleTrg = _this.getTrgContent(_this.cntEle, no.toString());\n _this.getContent(eleTrg, item.content, 'render', index);\n }\n });\n this.tbObj.addItems(tabItems_2, index);\n if (!this.isReplace) {\n this.trigger('added', { addedItems: items });\n }\n if (this.selectedItem === index) {\n this.select(index);\n }\n else {\n this.setActiveBorder();\n this.tbItem = selectAll('.' + CLS_TB_ITEM, this.getTabHeader());\n }\n this.bindDraggable();\n }\n };\n /**\n * Removes the items in the Tab from the specified index.\n *\n * @param {number} index - Index of target item that is going to be removed.\n * @returns {void}.\n */\n Tab.prototype.removeTab = function (index) {\n var _this = this;\n var trg = selectAll('.' + CLS_TB_ITEM, this.element)[index];\n if (isNOU(trg)) {\n return;\n }\n var removeArgs = { removedItem: trg, removedIndex: index, cancel: false };\n this.trigger('removing', removeArgs, function (tabRemovingArgs) {\n if (!tabRemovingArgs.cancel) {\n var header = select('#' + CLS_ITEM + _this.tabId + '_' + _this.extIndex(trg.id), select('.' + CLS_TB_ITEMS, _this.element));\n if (!isNOU(header)) {\n _this.clearTabTemplate(header, 'headerTemplate', CLS_TB_ITEM);\n }\n _this.tbObj.removeItems(index);\n if (_this.allowDragAndDrop && (index !== Array.prototype.indexOf.call(_this.itemIndexArray, trg.id))) {\n index = Array.prototype.indexOf.call(_this.itemIndexArray, trg.id);\n }\n var targetEleIndex = _this.itemIndexArray.indexOf(trg.id);\n _this.items.splice(targetEleIndex, 1);\n _this.itemIndexArray.splice(targetEleIndex, 1);\n _this.refreshActiveBorder();\n var cntTrg = select('#' + CLS_CONTENT + _this.tabId + '_' + _this.extIndex(trg.id), select('.' + CLS_CONTENT, _this.element));\n if (!isNOU(cntTrg)) {\n _this.clearTabTemplate(cntTrg, 'content', CLS_ITEM);\n detach(cntTrg);\n }\n _this.trigger('removed', tabRemovingArgs);\n if (_this.draggableItems && _this.draggableItems.length > 0) {\n _this.draggableItems[index].destroy();\n _this.draggableItems[index] = null;\n _this.draggableItems.splice(index, 1);\n }\n if (trg.classList.contains(CLS_ACTIVE)) {\n index = (index > selectAll('.' + CLS_TB_ITEM + ':not(.' + CLS_TB_POPUP + ')', _this.element).length - 1) ? index - 1 : index;\n _this.enableAnimation = false;\n _this.selectedItem = index;\n _this.select(index);\n }\n else if (index !== _this.selectedItem) {\n if (index < _this.selectedItem) {\n index = _this.itemIndexArray.indexOf(_this.tbItem[_this.selectedItem].id);\n _this.setProperties({ selectedItem: index > -1 ? index : _this.selectedItem }, true);\n _this.prevIndex = _this.selectedItem;\n }\n _this.tbItem = selectAll('.' + CLS_TB_ITEM, _this.getTabHeader());\n }\n if (selectAll('.' + CLS_TB_ITEM, _this.element).length === 0) {\n _this.hdrEle.style.display = 'none';\n }\n _this.enableAnimation = true;\n }\n });\n };\n /**\n * Shows or hides the Tab that is in the specified index.\n *\n * @param {number} index - Index value of target item.\n * @param {boolean} value - Based on this Boolean value, item will be hide (false) or show (true). By default, value is true.\n * @returns {void}.\n */\n Tab.prototype.hideTab = function (index, value) {\n var items;\n var item = selectAll('.' + CLS_TB_ITEM, this.element)[index];\n if (isNOU(item)) {\n return;\n }\n if (isNOU(value)) {\n value = true;\n }\n this.bdrLine.classList.add(CLS_HIDDEN);\n if (value === true) {\n item.classList.add(CLS_HIDDEN);\n items = selectAll('.' + CLS_TB_ITEM + ':not(.' + CLS_HIDDEN + ')', this.tbItems);\n if (items.length !== 0 && item.classList.contains(CLS_ACTIVE)) {\n if (index !== 0) {\n for (var i = index - 1; i >= 0; i--) {\n if (!this.tbItem[i].classList.contains(CLS_HIDDEN)) {\n this.select(i);\n break;\n }\n else if (i === 0) {\n for (var k = index + 1; k < this.tbItem.length; k++) {\n if (!this.tbItem[k].classList.contains(CLS_HIDDEN)) {\n this.select(k);\n break;\n }\n }\n }\n }\n }\n else {\n for (var k = index + 1; k < this.tbItem.length; k++) {\n if (!this.tbItem[k].classList.contains(CLS_HIDDEN)) {\n this.select(k);\n break;\n }\n }\n }\n }\n else if (items.length === 0) {\n this.element.classList.add(CLS_HIDDEN);\n }\n }\n else {\n this.element.classList.remove(CLS_HIDDEN);\n items = selectAll('.' + CLS_TB_ITEM + ':not(.' + CLS_HIDDEN + ')', this.tbItems);\n item.classList.remove(CLS_HIDDEN);\n if (items.length === 0) {\n this.select(index);\n }\n }\n this.setActiveBorder();\n item.setAttribute('aria-hidden', '' + value);\n if (this.overflowMode === 'Popup' && this.tbObj) {\n this.tbObj.refreshOverflow();\n }\n };\n Tab.prototype.selectTab = function (args, event, isInteracted) {\n if (event === void 0) { event = null; }\n if (isInteracted === void 0) { isInteracted = false; }\n this.isInteracted = isInteracted;\n this.select(args, event);\n };\n /**\n * Specifies the index or HTMLElement to select an item from the Tab.\n *\n * @param {number | HTMLElement} args - Index or DOM element is used for selecting an item from the Tab.\n * @param {Event} event - An event which takes place in DOM.\n * @returns {void}\n */\n Tab.prototype.select = function (args, event) {\n var _this = this;\n var tabHeader = this.getTabHeader();\n this.tbItems = select('.' + CLS_TB_ITEMS, tabHeader);\n this.tbItem = selectAll('.' + CLS_TB_ITEM, tabHeader);\n this.content = select('.' + CLS_CONTENT, this.element);\n this.prevItem = this.tbItem[this.prevIndex];\n if (isNOU(this.selectedItem) || (this.selectedItem < 0) || (this.tbItem.length <= this.selectedItem) || isNaN(this.selectedItem)) {\n this.selectedItem = 0;\n }\n else {\n this.selectedID = this.extIndex(this.tbItem[this.selectedItem].id);\n }\n var trg = this.tbItem[args];\n if (isNOU(trg)) {\n this.selectedID = '0';\n }\n else {\n this.selectingID = this.extIndex(trg.id);\n }\n if (!isNOU(this.prevItem) && !this.prevItem.classList.contains(CLS_DISABLE)) {\n this.prevItem.children.item(0).setAttribute('tabindex', this.prevItem.firstElementChild.getAttribute('tabindex'));\n }\n var eventArg = {\n event: event,\n previousItem: this.prevItem,\n previousIndex: this.prevIndex,\n selectedItem: this.tbItem[this.selectedItem],\n selectedIndex: this.selectedItem,\n selectedContent: !isNOU(this.content) ?\n select('#' + CLS_CONTENT + this.tabId + '_' + this.selectedID, this.content) : null,\n selectingItem: trg,\n selectingIndex: args,\n selectingContent: !isNOU(this.content) ?\n select('#' + CLS_CONTENT + this.tabId + '_' + this.selectingID, this.content) : null,\n isSwiped: this.isSwipeed,\n isInteracted: this.isInteracted,\n cancel: false\n };\n if (!this.initRender) {\n this.trigger('selecting', eventArg, function (selectArgs) {\n if (!selectArgs.cancel) {\n _this.selectingContent(args, _this.isInteracted);\n }\n });\n }\n else {\n this.selectingContent(args, this.isInteracted);\n }\n this.isInteracted = false;\n };\n Tab.prototype.selectingContent = function (args, isInteracted) {\n if (typeof args === 'number') {\n if (!isNOU(this.tbItem[args]) && (this.tbItem[args].classList.contains(CLS_DISABLE) ||\n this.tbItem[args].classList.contains(CLS_HIDDEN))) {\n for (var i = args + 1; i < this.items.length; i++) {\n if (this.items[i].disabled === false && this.items[i].visible === true) {\n args = i;\n break;\n }\n else {\n args = 0;\n }\n }\n }\n if (this.tbItem.length > args && args >= 0 && !isNaN(args)) {\n this.prevIndex = this.selectedItem;\n this.prevItem = this.tbItem[this.prevIndex];\n if (this.tbItem[args].classList.contains(CLS_TB_POPUP) && this.reorderActiveTab) {\n this.setActive(this.popupHandler(this.tbItem[args]), null, isInteracted);\n if ((!isNOU(this.items) && this.items.length > 0) && this.allowDragAndDrop) {\n this.tbItem = selectAll('.' + CLS_TB_ITEMS + ' .' + CLS_TB_ITEM, this.hdrEle);\n var item = this.items[args];\n this.items.splice(args, 1);\n this.items.splice(this.tbItem.length - 1, 0, item);\n var itemId = this.itemIndexArray[args];\n this.itemIndexArray.splice(args, 1);\n this.itemIndexArray.splice(this.tbItem.length - 1, 0, itemId);\n }\n }\n else {\n this.setActive(args, null, isInteracted);\n }\n }\n else {\n this.setActive(0, null, isInteracted);\n }\n }\n else if (args instanceof (HTMLElement)) {\n this.setActive(this.getEleIndex(args), null, isInteracted);\n }\n };\n /**\n * Gets the item index from the Tab.\n *\n * @param {string} tabItemId - Item ID is used for getting index from the Tab.\n * @returns {number} - It returns item index.\n */\n Tab.prototype.getItemIndex = function (tabItemId) {\n var tabIndex;\n for (var i = 0; i < this.tbItem.length; i++) {\n var value = this.tbItem[i].getAttribute('data-id');\n if (tabItemId === value) {\n tabIndex = i;\n break;\n }\n }\n return tabIndex;\n };\n /**\n * Specifies the value to disable/enable the Tab component.\n * When set to `true`, the component will be disabled.\n *\n * @param {boolean} value - Based on this Boolean value, Tab will be enabled (false) or disabled (true).\n * @returns {void}.\n */\n Tab.prototype.disable = function (value) {\n this.setCssClass(this.element, CLS_DISABLE, value);\n this.element.setAttribute('aria-disabled', '' + value);\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @returns {string} - It returns the persisted state.\n */\n Tab.prototype.getPersistData = function () {\n return this.addOnPersist(['selectedItem', 'actEleId']);\n };\n /**\n * Returns the current module name.\n *\n * @returns {string} - It returns the current module name.\n * @private\n */\n Tab.prototype.getModuleName = function () {\n return 'tab';\n };\n /**\n * Gets called when the model property changes.The data that describes the old and new values of the property that changed.\n *\n * @param {TabModel} newProp - It contains the new value of data.\n * @param {TabModel} oldProp - It contains the old value of data.\n * @returns {void}\n * @private\n */\n Tab.prototype.onPropertyChanged = function (newProp, oldProp) {\n var _this = this;\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'width':\n setStyle(this.element, { width: formatUnit(newProp.width) });\n break;\n case 'height':\n setStyle(this.element, { height: formatUnit(newProp.height) });\n this.setContentHeight(false);\n break;\n case 'cssClass':\n var headerEle = this.element.querySelector('.' + CLS_HEADER);\n if (oldProp.cssClass !== '' && !isNullOrUndefined(oldProp.cssClass)) {\n this.setCssClass(this.element, oldProp.cssClass, false);\n this.setCssClass(this.element, newProp.cssClass, true);\n if (!isNullOrUndefined(headerEle)) {\n this.setCssClass(headerEle, oldProp.cssClass, false);\n this.setCssClass(headerEle, newProp.cssClass, true);\n }\n }\n else {\n this.setCssClass(this.element, newProp.cssClass, true);\n if (!isNullOrUndefined(headerEle)) {\n this.setCssClass(headerEle, newProp.cssClass, true);\n }\n }\n break;\n case 'items':\n this.evalOnPropertyChangeItems(newProp, oldProp);\n break;\n case 'showCloseButton':\n this.setCloseButton(newProp.showCloseButton);\n break;\n case 'reorderActiveTab':\n this.refreshActiveTabBorder();\n break;\n case 'selectedItem':\n this.selectedItem = oldProp.selectedItem;\n this.select(newProp.selectedItem);\n break;\n case 'headerPlacement':\n this.changeOrientation(newProp.headerPlacement);\n break;\n case 'enableRtl':\n this.setRTL(newProp.enableRtl);\n break;\n case 'overflowMode':\n this.tbObj.overflowMode = newProp.overflowMode;\n this.tbObj.dataBind();\n this.refreshActiveTabBorder();\n break;\n case 'heightAdjustMode':\n this.setContentHeight(false);\n this.select(this.selectedItem);\n break;\n case 'scrollStep':\n if (this.tbObj) {\n this.tbObj.scrollStep = this.scrollStep;\n }\n break;\n case 'allowDragAndDrop':\n this.bindDraggable();\n break;\n case 'dragArea':\n if (this.allowDragAndDrop) {\n this.draggableItems.forEach(function (item) {\n item.dragArea = _this.dragArea;\n });\n this.refresh();\n }\n break;\n }\n }\n };\n /**\n * To refresh the active tab contents.\n *\n * @returns {void}\n */\n Tab.prototype.refreshActiveTab = function () {\n if (this.isReact && this.isTemplate) {\n this.clearTemplate();\n }\n if (!this.isTemplate) {\n if (this.element.querySelector('.' + CLS_TB_ITEM + '.' + CLS_ACTIVE)) {\n detach(this.element.querySelector('.' + CLS_TB_ITEM + '.' + CLS_ACTIVE).children[0]);\n detach(this.element.querySelector('.' + CLS_CONTENT).querySelector('.' + CLS_ACTIVE).children[0]);\n var item = this.items[this.selectedItem];\n var pos = (isNOU(item.header) || isNOU(item.header.iconPosition)) ? '' : item.header.iconPosition;\n var css = (isNOU(item.header) || isNOU(item.header.iconCss)) ? '' : item.header.iconCss;\n var text = item.headerTemplate || item.header.text;\n var txtWrap = this.createElement('div', { className: CLS_TEXT, attrs: { 'role': 'presentation' } });\n if (!isNOU(text.tagName)) {\n txtWrap.appendChild(text);\n }\n else {\n this.headerTextCompile(txtWrap, text, this.selectedItem);\n }\n var tEle = void 0;\n var icon = this.createElement('span', {\n className: CLS_ICONS + ' ' + CLS_TAB_ICON + ' ' + CLS_ICON + '-' + pos + ' ' + css\n });\n var tConts = this.createElement('div', { className: CLS_TEXT_WRAP });\n tConts.appendChild(txtWrap);\n if ((text !== '' && text !== undefined) && css !== '') {\n if ((pos === 'left' || pos === 'top')) {\n tConts.insertBefore(icon, tConts.firstElementChild);\n }\n else {\n tConts.appendChild(icon);\n }\n tEle = txtWrap;\n this.isIconAlone = false;\n }\n else {\n tEle = ((css === '') ? txtWrap : icon);\n if (tEle === icon) {\n detach(txtWrap);\n tConts.appendChild(icon);\n this.isIconAlone = true;\n }\n }\n var tabIndex = isNOU(item.tabIndex) ? '-1' : item.tabIndex.toString();\n var wrapAtt = (item.disabled) ? {} : { tabIndex: tabIndex, 'data-tabindex': tabIndex, role: 'tab', 'aria-selected': 'true', 'aria-disabled': 'false' };\n tConts.appendChild(this.btnCls.cloneNode(true));\n var wraper = this.createElement('div', { className: CLS_WRAP, attrs: wrapAtt });\n wraper.appendChild(tConts);\n if (pos === 'top' || pos === 'bottom') {\n this.element.classList.add('e-vertical-icon');\n }\n this.element.querySelector('.' + CLS_TB_ITEM + '.' + CLS_ACTIVE).appendChild(wraper);\n var crElem = this.createElement('div');\n var cnt = item.content;\n var eleStr = void 0;\n if (typeof cnt === 'string' || isNOU(cnt.innerHTML)) {\n if (typeof cnt === 'string' && this.enableHtmlSanitizer) {\n cnt = SanitizeHtmlHelper.sanitize(cnt);\n }\n if (cnt[0] === '.' || cnt[0] === '#') {\n if (document.querySelectorAll(cnt).length) {\n var eleVal = document.querySelector(cnt);\n eleStr = eleVal.outerHTML.trim();\n crElem.appendChild(eleVal);\n eleVal.style.display = '';\n }\n else {\n this.compileElement(crElem, cnt, 'content', this.selectedItem);\n }\n }\n else {\n this.compileElement(crElem, cnt, 'content', this.selectedItem);\n }\n }\n else {\n crElem.appendChild(cnt);\n }\n if (!isNOU(eleStr)) {\n if (this.templateEle.indexOf(cnt.toString()) === -1) {\n this.templateEle.push(cnt.toString());\n }\n }\n this.element.querySelector('.' + CLS_ITEM + '.' + CLS_ACTIVE).appendChild(crElem);\n }\n }\n else {\n var tabItems = this.element.querySelector('.' + CLS_TB_ITEMS);\n var element = this.element.querySelector('.' + CLS_TB_ITEM + '.' + CLS_ACTIVE);\n var index = this.getIndexFromEle(element.id);\n var header = element.innerText;\n var detachContent = this.element.querySelector('.' + CLS_CONTENT).querySelector('.' + CLS_ACTIVE).children[0];\n var mainContents = detachContent.innerHTML;\n detach(element);\n detach(detachContent);\n var attr = {\n className: CLS_TB_ITEM + ' ' + CLS_TEMPLATE + ' ' + CLS_ACTIVE, id: CLS_ITEM + this.tabId + '_' + index\n };\n var txtString = this.createElement('span', {\n className: CLS_TEXT, innerHTML: header, attrs: { 'role': 'presentation' }\n }).outerHTML;\n var conte = this.createElement('div', {\n className: CLS_TEXT_WRAP, innerHTML: txtString + this.btnCls.outerHTML\n }).outerHTML;\n var tabIndex = element.firstElementChild.getAttribute('data-tabindex');\n var wrap = this.createElement('div', {\n className: CLS_WRAP, innerHTML: conte,\n attrs: { tabIndex: tabIndex, 'data-tabindex': tabIndex, role: 'tab', 'aria-controls': CLS_CONTENT + this.tabId + '_' + index, 'aria-selected': 'true', 'aria-disabled': 'false' }\n });\n tabItems.insertBefore(this.createElement('div', attr), tabItems.children[index + 1]);\n this.element.querySelector('.' + CLS_TB_ITEM + '.' + CLS_ACTIVE).appendChild(wrap);\n var crElem = this.createElement('div', { innerHTML: mainContents });\n this.element.querySelector('.' + CLS_CONTENT).querySelector('.' + CLS_ACTIVE).appendChild(crElem);\n }\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n /**\n * To refresh the active tab indicator.\n *\n * @returns {void}\n */\n Tab.prototype.refreshActiveTabBorder = function () {\n var activeEle = select('.' + CLS_TB_ITEM + '.' + CLS_TB_POPUP + '.' + CLS_ACTIVE, this.element);\n if (!isNOU(activeEle) && this.reorderActiveTab) {\n this.select(this.getEleIndex(activeEle));\n }\n this.refreshActiveBorder();\n };\n __decorate([\n Collection([], TabItem)\n ], Tab.prototype, \"items\", void 0);\n __decorate([\n Property('100%')\n ], Tab.prototype, \"width\", void 0);\n __decorate([\n Property('auto')\n ], Tab.prototype, \"height\", void 0);\n __decorate([\n Property('')\n ], Tab.prototype, \"cssClass\", void 0);\n __decorate([\n Property(0)\n ], Tab.prototype, \"selectedItem\", void 0);\n __decorate([\n Property('Top')\n ], Tab.prototype, \"headerPlacement\", void 0);\n __decorate([\n Property('Content')\n ], Tab.prototype, \"heightAdjustMode\", void 0);\n __decorate([\n Property('Scrollable')\n ], Tab.prototype, \"overflowMode\", void 0);\n __decorate([\n Property('Dynamic')\n ], Tab.prototype, \"loadOn\", void 0);\n __decorate([\n Property(false)\n ], Tab.prototype, \"enablePersistence\", void 0);\n __decorate([\n Property(false)\n ], Tab.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Property(false)\n ], Tab.prototype, \"showCloseButton\", void 0);\n __decorate([\n Property(true)\n ], Tab.prototype, \"reorderActiveTab\", void 0);\n __decorate([\n Property()\n ], Tab.prototype, \"scrollStep\", void 0);\n __decorate([\n Property()\n ], Tab.prototype, \"dragArea\", void 0);\n __decorate([\n Property(false)\n ], Tab.prototype, \"allowDragAndDrop\", void 0);\n __decorate([\n Complex({}, TabAnimationSettings)\n ], Tab.prototype, \"animation\", void 0);\n __decorate([\n Event()\n ], Tab.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], Tab.prototype, \"adding\", void 0);\n __decorate([\n Event()\n ], Tab.prototype, \"added\", void 0);\n __decorate([\n Event()\n ], Tab.prototype, \"selecting\", void 0);\n __decorate([\n Event()\n ], Tab.prototype, \"selected\", void 0);\n __decorate([\n Event()\n ], Tab.prototype, \"removing\", void 0);\n __decorate([\n Event()\n ], Tab.prototype, \"removed\", void 0);\n __decorate([\n Event()\n ], Tab.prototype, \"onDragStart\", void 0);\n __decorate([\n Event()\n ], Tab.prototype, \"dragging\", void 0);\n __decorate([\n Event()\n ], Tab.prototype, \"dragged\", void 0);\n __decorate([\n Event()\n ], Tab.prototype, \"destroyed\", void 0);\n Tab = __decorate([\n NotifyPropertyChanges\n ], Tab);\n return Tab;\n}(Component));\nexport { Tab };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { Tab } from '@syncfusion/ej2-navigations';\nimport { ComponentBase, applyMixins } from '@syncfusion/ej2-react-base';\n/**\n * Represents the React Tab Component.\n * ```html\n * \n * ```\n */\nvar TabComponent = /** @class */ (function (_super) {\n __extends(TabComponent, _super);\n function TabComponent(props) {\n var _this = _super.call(this, props) || this;\n _this.initRenderCalled = false;\n _this.checkInjectedModules = false;\n _this.directivekeys = { 'tabItems': 'tabItem' };\n _this.statelessTemplateProps = null;\n _this.templateProps = null;\n _this.immediateRender = false;\n _this.portals = [];\n return _this;\n }\n TabComponent.prototype.render = function () {\n if (((this.element && !this.initRenderCalled) || this.refreshing) && !this.isReactForeceUpdate) {\n _super.prototype.render.call(this);\n this.initRenderCalled = true;\n }\n else {\n return React.createElement('div', this.getDefaultAttributes(), [].concat(this.props.children, this.portals));\n }\n };\n return TabComponent;\n}(Tab));\nexport { TabComponent };\napplyMixins(TabComponent, [ComponentBase, React.Component]);\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { ComplexBase } from '@syncfusion/ej2-react-base';\n/**\n * `TabItemDirective` represent a item of the React Tab.\n * It must be contained in a Tab component(`Tab`).\n * ```tsx\n * \n * \n * \n * \n * \n * \n * ```\n */\nvar TabItemDirective = /** @class */ (function (_super) {\n __extends(TabItemDirective, _super);\n function TabItemDirective() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TabItemDirective.moduleName = 'tabItem';\n TabItemDirective.complexTemplate = { 'headerText': 'header.text' };\n return TabItemDirective;\n}(ComplexBase));\nexport { TabItemDirective };\nvar TabItemsDirective = /** @class */ (function (_super) {\n __extends(TabItemsDirective, _super);\n function TabItemsDirective() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TabItemsDirective.propertyName = 'items';\n TabItemsDirective.moduleName = 'tabItems';\n return TabItemsDirective;\n}(ComplexBase));\nexport { TabItemsDirective };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component, isUndefined, Browser, compile, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { Property, NotifyPropertyChanges, ChildProperty, Complex } from '@syncfusion/ej2-base';\nimport { Event, EventHandler, KeyboardEvents } from '@syncfusion/ej2-base';\nimport { rippleEffect, Animation, remove } from '@syncfusion/ej2-base';\nimport { Draggable, Droppable } from '@syncfusion/ej2-base';\nimport { getElement } from '@syncfusion/ej2-base';\nimport { addClass, removeClass, closest, matches, detach, select, selectAll, isVisible, append } from '@syncfusion/ej2-base';\nimport { DataManager, Query } from '@syncfusion/ej2-data';\nimport { isNullOrUndefined as isNOU, Touch, getValue, setValue, extend, merge, attributes } from '@syncfusion/ej2-base';\nimport { ListBase } from '@syncfusion/ej2-lists';\nimport { createCheckBox, rippleMouseHandler } from '@syncfusion/ej2-buttons';\nimport { Input } from '@syncfusion/ej2-inputs';\nimport { createSpinner, showSpinner, hideSpinner } from '@syncfusion/ej2-popups';\nvar ROOT = 'e-treeview';\nvar CONTROL = 'e-control';\nvar COLLAPSIBLE = 'e-icon-collapsible';\nvar EXPANDABLE = 'e-icon-expandable';\nvar LISTITEM = 'e-list-item';\nvar LISTTEXT = 'e-list-text';\nvar LISTWRAP = 'e-text-wrap';\nvar IELISTWRAP = 'e-ie-wrap';\nvar PARENTITEM = 'e-list-parent';\nvar HOVER = 'e-hover';\nvar ACTIVE = 'e-active';\nvar LOAD = 'e-icons-spinner';\nvar PROCESS = 'e-process';\nvar ICON = 'e-icons';\nvar TEXTWRAP = 'e-text-content';\nvar INPUT = 'e-input';\nvar INPUTGROUP = 'e-input-group';\nvar TREEINPUT = 'e-tree-input';\nvar EDITING = 'e-editing';\nvar RTL = 'e-rtl';\nvar INTERACTION = 'e-interaction';\nvar DRAGITEM = 'e-drag-item';\nvar DROPPABLE = 'e-droppable';\nvar DRAGGING = 'e-dragging';\nvar SIBLING = 'e-sibling';\nvar DROPIN = 'e-drop-in';\nvar DROPNEXT = 'e-drop-next';\nvar DROPOUT = 'e-drop-out';\nvar NODROP = 'e-no-drop';\nvar FULLROWWRAP = 'e-fullrow-wrap';\nvar FULLROW = 'e-fullrow';\nvar SELECTED = 'e-selected';\nvar EXPANDED = 'e-expanded';\nvar NODECOLLAPSED = 'e-node-collapsed';\nvar DISABLE = 'e-disable';\nvar DROPCOUNT = 'e-drop-count';\nvar CHECK = 'e-check';\nvar INDETERMINATE = 'e-stop';\nvar CHECKBOXWRAP = 'e-checkbox-wrapper';\nvar CHECKBOXFRAME = 'e-frame';\nvar CHECKBOXRIPPLE = 'e-ripple-container';\nvar RIPPLE = 'e-ripple';\nvar RIPPLEELMENT = 'e-ripple-element';\nvar FOCUS = 'e-node-focus';\nvar IMAGE = 'e-list-img';\nvar BIGGER = 'e-bigger';\nvar SMALL = 'e-small';\nvar CHILD = 'e-has-child';\nvar ITEM_ANIMATION_ACTIVE = 'e-animation-active';\nvar DISABLED = 'e-disabled';\nvar PREVENTSELECT = 'e-prevent';\nvar treeAriaAttr = {\n treeRole: 'group',\n itemRole: 'treeitem',\n listRole: 'group',\n itemText: '',\n wrapperRole: ''\n};\n/**\n * Configures the fields to bind to the properties of node in the TreeView component.\n */\nvar FieldsSettings = /** @class */ (function (_super) {\n __extends(FieldsSettings, _super);\n function FieldsSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('child')\n ], FieldsSettings.prototype, \"child\", void 0);\n __decorate([\n Property([])\n ], FieldsSettings.prototype, \"dataSource\", void 0);\n __decorate([\n Property('expanded')\n ], FieldsSettings.prototype, \"expanded\", void 0);\n __decorate([\n Property('hasChildren')\n ], FieldsSettings.prototype, \"hasChildren\", void 0);\n __decorate([\n Property('htmlAttributes')\n ], FieldsSettings.prototype, \"htmlAttributes\", void 0);\n __decorate([\n Property('iconCss')\n ], FieldsSettings.prototype, \"iconCss\", void 0);\n __decorate([\n Property('id')\n ], FieldsSettings.prototype, \"id\", void 0);\n __decorate([\n Property('imageUrl')\n ], FieldsSettings.prototype, \"imageUrl\", void 0);\n __decorate([\n Property('isChecked')\n ], FieldsSettings.prototype, \"isChecked\", void 0);\n __decorate([\n Property('parentID')\n ], FieldsSettings.prototype, \"parentID\", void 0);\n __decorate([\n Property(null)\n ], FieldsSettings.prototype, \"query\", void 0);\n __decorate([\n Property('selectable')\n ], FieldsSettings.prototype, \"selectable\", void 0);\n __decorate([\n Property('selected')\n ], FieldsSettings.prototype, \"selected\", void 0);\n __decorate([\n Property(null)\n ], FieldsSettings.prototype, \"tableName\", void 0);\n __decorate([\n Property('text')\n ], FieldsSettings.prototype, \"text\", void 0);\n __decorate([\n Property('tooltip')\n ], FieldsSettings.prototype, \"tooltip\", void 0);\n __decorate([\n Property('navigateUrl')\n ], FieldsSettings.prototype, \"navigateUrl\", void 0);\n return FieldsSettings;\n}(ChildProperty));\nexport { FieldsSettings };\n/**\n * Configures animation settings for the TreeView component.\n */\nvar ActionSettings = /** @class */ (function (_super) {\n __extends(ActionSettings, _super);\n function ActionSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('SlideDown')\n ], ActionSettings.prototype, \"effect\", void 0);\n __decorate([\n Property(400)\n ], ActionSettings.prototype, \"duration\", void 0);\n __decorate([\n Property('linear')\n ], ActionSettings.prototype, \"easing\", void 0);\n return ActionSettings;\n}(ChildProperty));\nexport { ActionSettings };\n/**\n * Configures the animation settings for expanding and collapsing nodes in TreeView.\n */\nvar NodeAnimationSettings = /** @class */ (function (_super) {\n __extends(NodeAnimationSettings, _super);\n function NodeAnimationSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Complex({ effect: 'SlideUp', duration: 400, easing: 'linear' }, ActionSettings)\n ], NodeAnimationSettings.prototype, \"collapse\", void 0);\n __decorate([\n Complex({ effect: 'SlideDown', duration: 400, easing: 'linear' }, ActionSettings)\n ], NodeAnimationSettings.prototype, \"expand\", void 0);\n return NodeAnimationSettings;\n}(ChildProperty));\nexport { NodeAnimationSettings };\n/**\n * The TreeView component is used to represent hierarchical data in a tree like structure with advanced\n * functions to perform edit, drag and drop, selection with check-box, and more.\n * ```html\n *
      \n * ```\n * ```typescript\n * let treeObj: TreeView = new TreeView();\n * treeObj.appendTo('#tree');\n * ```\n */\nvar TreeView = /** @class */ (function (_super) {\n __extends(TreeView, _super);\n function TreeView(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.isRefreshed = false;\n _this.preventExpand = false;\n _this.checkedElement = [];\n _this.disableNode = [];\n // eslint-disable-next-line\n _this.validArr = [];\n _this.validNodes = [];\n _this.expandChildren = [];\n _this.isFieldChange = false;\n _this.changeDataSource = false;\n _this.hasTemplate = false;\n _this.isFirstRender = false;\n // Specifies whether the node is dropped or not\n _this.isNodeDropped = false;\n _this.isInteracted = false;\n _this.isRightClick = false;\n _this.mouseDownStatus = false;\n return _this;\n }\n TreeView_1 = TreeView;\n /**\n * Get component name.\n *\n * @returns {string} - returns module name.\n * @private\n */\n TreeView.prototype.getModuleName = function () {\n return 'treeview';\n };\n /**\n * Initialize the event handler\n *\n * @returns {void}\n */\n TreeView.prototype.preRender = function () {\n var _this = this;\n this.checkActionNodes = [];\n this.parentNodeCheck = [];\n this.dragStartAction = false;\n this.isAnimate = false;\n this.keyConfigs = {\n escape: 'escape',\n end: 'end',\n enter: 'enter',\n f2: 'f2',\n home: 'home',\n moveDown: 'downarrow',\n moveLeft: 'leftarrow',\n moveRight: 'rightarrow',\n moveUp: 'uparrow',\n ctrlDown: 'ctrl+downarrow',\n ctrlUp: 'ctrl+uparrow',\n ctrlEnter: 'ctrl+enter',\n ctrlHome: 'ctrl+home',\n ctrlEnd: 'ctrl+end',\n ctrlA: 'ctrl+A',\n shiftDown: 'shift+downarrow',\n shiftUp: 'shift+uparrow',\n shiftEnter: 'shift+enter',\n shiftHome: 'shift+home',\n shiftEnd: 'shift+end',\n csDown: 'ctrl+shift+downarrow',\n csUp: 'ctrl+shift+uparrow',\n csEnter: 'ctrl+shift+enter',\n csHome: 'ctrl+shift+home',\n csEnd: 'ctrl+shift+end',\n space: 'space',\n shiftSpace: 'shift+space',\n ctrlSpace: 'ctrl+space'\n };\n this.listBaseOption = {\n expandCollapse: true,\n showIcon: true,\n expandIconClass: EXPANDABLE,\n ariaAttributes: treeAriaAttr,\n expandIconPosition: 'Left',\n itemCreated: function (e) {\n _this.beforeNodeCreate(e);\n },\n enableHtmlSanitizer: this.enableHtmlSanitizer,\n itemNavigable: this.fullRowNavigable\n };\n this.updateListProp(this.fields);\n this.aniObj = new Animation({});\n this.treeList = [];\n this.isLoaded = false;\n this.isInitalExpand = false;\n this.expandChildren = [];\n this.index = 0;\n this.setTouchClass();\n if (isNOU(this.selectedNodes)) {\n this.setProperties({ selectedNodes: [] }, true);\n }\n if (isNOU(this.checkedNodes)) {\n this.setProperties({ checkedNodes: [] }, true);\n }\n if (isNOU(this.expandedNodes)) {\n this.setProperties({ expandedNodes: [] }, true);\n }\n else {\n this.isInitalExpand = true;\n }\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @returns {string} - returns the persisted data\n * @hidden\n */\n TreeView.prototype.getPersistData = function () {\n var keyEntity = ['selectedNodes', 'checkedNodes', 'expandedNodes'];\n return this.addOnPersist(keyEntity);\n };\n /**\n * To Initialize the control rendering\n *\n * @private\n * @returns {void}\n */\n TreeView.prototype.render = function () {\n this.initialRender = true;\n this.initialize();\n this.setDataBinding(false);\n this.setDisabledMode();\n this.setExpandOnType();\n if (!this.disabled) {\n this.setRipple();\n }\n this.wireEditingEvents(this.allowEditing);\n this.setDragAndDrop(this.allowDragAndDrop);\n if (!this.disabled) {\n this.wireEvents();\n }\n this.initialRender = false;\n this.renderComplete();\n };\n TreeView.prototype.initialize = function () {\n this.element.setAttribute('role', 'tree');\n this.element.setAttribute('aria-activedescendant', this.element.id + '_active');\n this.setCssClass(null, this.cssClass);\n this.setEnableRtl();\n this.setFullRow(this.fullRowSelect);\n this.setTextWrap();\n this.nodeTemplateFn = this.templateComplier(this.nodeTemplate);\n };\n TreeView.prototype.setDisabledMode = function () {\n if (this.disabled) {\n this.element.classList.add(DISABLED);\n }\n else {\n this.element.classList.remove(DISABLED);\n }\n };\n TreeView.prototype.setEnableRtl = function () {\n (this.enableRtl ? addClass : removeClass)([this.element], RTL);\n };\n TreeView.prototype.setRipple = function () {\n var tempStr = '.' + FULLROW + ',.' + TEXTWRAP;\n var rippleModel = {\n selector: tempStr,\n ignore: '.' + TEXTWRAP + ' > .' + ICON + ',.' + INPUTGROUP + ',.' + INPUT + ', .' + CHECKBOXWRAP\n };\n this.rippleFn = rippleEffect(this.element, rippleModel);\n var iconModel = {\n selector: '.' + TEXTWRAP + ' > .' + ICON,\n isCenterRipple: true\n };\n this.rippleIconFn = rippleEffect(this.element, iconModel);\n };\n TreeView.prototype.setFullRow = function (isEnabled) {\n (isEnabled ? addClass : removeClass)([this.element], FULLROWWRAP);\n };\n TreeView.prototype.setMultiSelect = function (isEnabled) {\n var firstUl = select('.' + PARENTITEM, this.element);\n if (isEnabled) {\n firstUl.setAttribute('aria-multiselectable', 'true');\n }\n else {\n firstUl.removeAttribute('aria-multiselectable');\n }\n };\n // eslint-disable-next-line\n TreeView.prototype.templateComplier = function (template) {\n if (template) {\n this.hasTemplate = true;\n // eslint-disable-next-line\n var e = void 0;\n this.element.classList.add(INTERACTION);\n try {\n if (document.querySelectorAll(template).length) {\n return compile(document.querySelector(template).innerHTML.trim());\n }\n else {\n return compile(template);\n }\n }\n catch (e) {\n return compile(template);\n }\n }\n this.element.classList.remove(INTERACTION);\n return undefined;\n };\n TreeView.prototype.setDataBinding = function (changeDataSource) {\n var _this = this;\n this.treeList.push('false');\n if (this.fields.dataSource instanceof DataManager) {\n /* eslint-disable */\n this.isOffline = this.fields.dataSource.dataSource.offline;\n if (this.fields.dataSource.ready) {\n this.fields.dataSource.ready.then(function (e) {\n /* eslint-disable */\n _this.isOffline = _this.fields.dataSource.dataSource.offline;\n if (_this.fields.dataSource instanceof DataManager && _this.isOffline) {\n _this.treeList.pop();\n _this.treeData = e.result;\n _this.isNumberTypeId = _this.getType();\n _this.setRootData();\n _this.renderItems(true);\n if (_this.treeList.length === 0 && !_this.isLoaded) {\n _this.finalize();\n }\n }\n }).catch(function (e) {\n _this.trigger('actionFailure', { error: e });\n });\n }\n else {\n this.fields.dataSource.executeQuery(this.getQuery(this.fields)).then(function (e) {\n _this.treeList.pop();\n _this.treeData = e.result;\n _this.isNumberTypeId = _this.getType();\n _this.setRootData();\n if (changeDataSource) {\n _this.changeDataSource = true;\n }\n _this.renderItems(true);\n _this.changeDataSource = false;\n if (_this.treeList.length === 0 && !_this.isLoaded) {\n _this.finalize();\n }\n }).catch(function (e) {\n _this.trigger('actionFailure', { error: e });\n });\n }\n }\n else {\n this.treeList.pop();\n if (isNOU(this.fields.dataSource)) {\n this.rootData = this.treeData = [];\n }\n else {\n this.treeData = JSON.parse(JSON.stringify(this.fields.dataSource));\n this.setRootData();\n }\n this.isNumberTypeId = this.getType();\n this.renderItems(false);\n }\n if (this.treeList.length === 0 && !this.isLoaded) {\n this.finalize();\n }\n };\n TreeView.prototype.getQuery = function (mapper, value) {\n if (value === void 0) { value = null; }\n var columns = [];\n var query;\n if (!mapper.query) {\n query = new Query();\n var prop = this.getActualProperties(mapper);\n for (var _i = 0, _a = Object.keys(prop); _i < _a.length; _i++) {\n var col = _a[_i];\n if (col !== 'dataSource' && col !== 'tableName' && col !== 'child' && !!mapper[col]\n && col !== 'url' && columns.indexOf(mapper[col]) === -1) {\n columns.push(mapper[col]);\n }\n }\n query.select(columns);\n if (prop.hasOwnProperty('tableName')) {\n query.from(mapper.tableName);\n }\n }\n else {\n query = mapper.query.clone();\n }\n ListBase.addSorting(this.sortOrder, mapper.text, query);\n if (!isNOU(value) && !isNOU(mapper.parentID)) {\n query.where(mapper.parentID, 'equal', (this.isNumberTypeId ? parseFloat(value) : value));\n }\n return query;\n };\n TreeView.prototype.getType = function () {\n return this.treeData[0] ? ((typeof getValue(this.fields.id, this.treeData[0]) === 'number') ? true : false) : false;\n };\n TreeView.prototype.setRootData = function () {\n this.dataType = this.getDataType(this.treeData, this.fields);\n if (this.dataType === 1) {\n this.groupedData = this.getGroupedData(this.treeData, this.fields.parentID);\n var rootItems = this.getChildNodes(this.treeData, undefined, true);\n if (isNOU(rootItems)) {\n this.rootData = [];\n }\n else {\n this.rootData = rootItems;\n }\n }\n else {\n this.rootData = this.treeData;\n }\n };\n TreeView.prototype.renderItems = function (isSorted) {\n /* eslint-disable */\n this.listBaseOption.ariaAttributes.level = 1;\n var sortedData = this.getSortedData(this.rootData);\n this.ulElement = ListBase.createList(this.createElement, isSorted ? this.rootData : sortedData, this.listBaseOption);\n this.element.appendChild(this.ulElement);\n var rootNodes = this.ulElement.querySelectorAll('.e-list-item');\n if (this.loadOnDemand === false) {\n var i = 0;\n while (i < rootNodes.length) {\n this.renderChildNodes(rootNodes[i], true, null, true);\n i++;\n }\n }\n var parentEle = selectAll('.' + PARENTITEM, this.element);\n if ((parentEle.length === 1 && (rootNodes && rootNodes.length !== 0)) || this.loadOnDemand) {\n this.finalizeNode(this.element);\n }\n this.parentNodeCheck = [];\n this.parentCheckData = [];\n this.updateCheckedStateFromDS();\n if (this.autoCheck && this.showCheckBox && !this.isLoaded) {\n this.updateParentCheckState();\n }\n };\n /**\n * Update the checkedNodes from datasource at initial rendering\n */\n TreeView.prototype.updateCheckedStateFromDS = function (id) {\n this.validNodes = [];\n if (this.treeData && this.showCheckBox) {\n if (this.dataType === 1) {\n var mapper = this.fields;\n var resultData = new DataManager(this.treeData).executeLocal(new Query().where(mapper.isChecked, 'equal', true, false));\n for (var i = 0; i < resultData.length; i++) {\n var resultId = resultData[i][this.fields.id] ? resultData[i][this.fields.id].toString() : null;\n var resultPId = resultData[i][this.fields.parentID] ? resultData[i][this.fields.parentID].toString() : null;\n if (this.checkedNodes.indexOf(resultId) === -1 && !(this.isLoaded)) {\n this.checkedNodes.push(resultId);\n }\n if (resultData[i][this.fields.hasChildren]) {\n var id_1 = resultData[i][this.fields.id];\n var childData = new DataManager(this.treeData).\n executeLocal(new Query().where(mapper.parentID, 'equal', id_1, false));\n for (var child = 0; child < childData.length; child++) {\n var childId = childData[child][this.fields.id] ? childData[child][this.fields.id].toString() : null;\n if (this.checkedNodes.indexOf(childId) === -1 && this.autoCheck) {\n this.checkedNodes.push(childId);\n }\n }\n }\n }\n for (var i = 0; i < this.checkedNodes.length; i++) {\n var mapper_1 = this.fields;\n var checkState = new DataManager(this.treeData).\n executeLocal(new Query().where(mapper_1.id, 'equal', this.checkedNodes[i], true));\n if (checkState[0] && this.autoCheck) {\n this.getCheckedNodeDetails(mapper_1, checkState);\n this.checkIndeterminateState(checkState[0]);\n }\n if (checkState.length > 0) {\n var checkedId = checkState[0][this.fields.id] ? checkState[0][this.fields.id].toString() : null;\n if (this.checkedNodes.indexOf(checkedId) > -1 && this.validNodes.indexOf(checkedId) === -1) {\n this.validNodes.push(checkedId);\n }\n }\n var checkedData = new DataManager(this.treeData).\n executeLocal(new Query().where(mapper_1.parentID, 'equal', this.checkedNodes[i], true));\n for (var index = 0; index < checkedData.length; index++) {\n var checkedId = checkedData[index][this.fields.id] ? checkedData[index][this.fields.id].toString() : null;\n if (this.checkedNodes.indexOf(checkedId) === -1 && this.autoCheck) {\n this.checkedNodes.push(checkedId);\n }\n if (this.checkedNodes.indexOf(checkedId) > -1 && this.validNodes.indexOf(checkedId) === -1) {\n this.validNodes.push(checkedId);\n }\n }\n }\n }\n else if (this.dataType === 2 || (this.fields.dataSource instanceof DataManager &&\n this.isOffline)) {\n for (var index = 0; index < this.treeData.length; index++) {\n var fieldId = this.treeData[index][this.fields.id] ? this.treeData[index][this.fields.id].toString() : '';\n if (this.treeData[index][this.fields.isChecked] && !(this.isLoaded) && this.checkedNodes.indexOf(fieldId) === -1) {\n this.checkedNodes.push(fieldId);\n }\n if (this.checkedNodes.indexOf(fieldId) > -1 && this.validNodes.indexOf(fieldId) === -1) {\n this.validNodes.push(fieldId);\n }\n var childItems = getValue(this.fields.child.toString(), this.treeData[index]);\n if (childItems) {\n this.updateChildCheckState(childItems, this.treeData[index]);\n }\n }\n this.validNodes = (this.enablePersistence) ? this.checkedNodes : this.validNodes;\n }\n this.setProperties({ checkedNodes: this.validNodes }, true);\n }\n };\n /**\n * To check whether the list data has sub child and to change the parent check state accordingly\n */\n TreeView.prototype.getCheckedNodeDetails = function (mapper, checkNodes) {\n var id = checkNodes[0][this.fields.parentID] ? checkNodes[0][this.fields.parentID].toString() : null;\n var count = 0;\n var element = this.element.querySelector('[data-uid=\"' + checkNodes[0][this.fields.id] + '\"]');\n var parentEle = this.element.querySelector('[data-uid=\"' + checkNodes[0][this.fields.parentID] + '\"]');\n if (!element && !parentEle) {\n var len = this.parentNodeCheck.length;\n if (this.parentNodeCheck.indexOf(id) === -1) {\n this.parentNodeCheck.push(id);\n }\n var childNodes = this.getChildNodes(this.treeData, id);\n for (var i = 0; i < childNodes.length; i++) {\n var childId = childNodes[i][this.fields.id] ? childNodes[i][this.fields.id].toString() : null;\n if (this.checkedNodes.indexOf(childId) !== -1) {\n count++;\n }\n if (count === childNodes.length && this.checkedNodes.indexOf(id) === -1) {\n this.checkedNodes.push(id);\n }\n }\n var preElement = new DataManager(this.treeData).\n executeLocal(new Query().where(mapper.id, 'equal', id, true));\n this.getCheckedNodeDetails(mapper, preElement);\n }\n else if (parentEle) {\n var check = select('.' + CHECK, parentEle);\n if (!check) {\n this.changeState(parentEle, 'indeterminate', null, true, true);\n }\n }\n };\n /**\n * Update the checkedNodes and parent state when all the child Nodes are in checkedstate at initial rendering\n */\n TreeView.prototype.updateParentCheckState = function () {\n var indeterminate = selectAll('.' + INDETERMINATE, this.element);\n var childCheckedElement;\n for (var i = 0; i < indeterminate.length; i++) {\n var node = closest(indeterminate[i], '.' + LISTITEM);\n var nodeId = node.getAttribute('data-uid').toString();\n if (this.dataType === 1) {\n childCheckedElement = new DataManager(this.treeData).\n executeLocal(new Query().where(this.fields.parentID, 'equal', nodeId, true));\n }\n else {\n childCheckedElement = this.getChildNodes(this.treeData, nodeId);\n }\n var count = 0;\n if (childCheckedElement) {\n for (var j = 0; j < childCheckedElement.length; j++) {\n var childId = childCheckedElement[j][this.fields.id].toString();\n if (this.checkedNodes.indexOf(childId) !== -1) {\n count++;\n }\n }\n if (count === childCheckedElement.length) {\n var nodeCheck = node.getAttribute('data-uid');\n if (this.checkedNodes.indexOf(nodeCheck) === -1) {\n this.checkedNodes.push(nodeCheck);\n }\n this.changeState(node, 'check', null, true, true);\n }\n else if (count === 0 && this.checkedNodes.length === 0) {\n this.changeState(node, 'uncheck', null, true, true);\n }\n }\n }\n };\n /**\n * Change the parent to indeterminate state whenever the child is in checked state which is not rendered in DOM\n */\n TreeView.prototype.checkIndeterminateState = function (data) {\n var element;\n if (this.dataType === 1) {\n element = this.element.querySelector('[data-uid=\"' + data[this.fields.parentID] + '\"]');\n }\n else {\n element = this.element.querySelector('[data-uid=\"' + data[this.fields.id] + '\"]');\n }\n if (element) {\n var ariaChecked = element.querySelector('.' + CHECKBOXWRAP).getAttribute('aria-checked');\n if (ariaChecked !== 'true') {\n this.changeState(element, 'indeterminate', null, true, true);\n }\n }\n else if (this.dataType === 2) {\n var len = this.parentNodeCheck.length;\n if (this.parentNodeCheck.indexOf(data[this.fields.id].toString()) === -1) {\n this.parentNodeCheck.push(data[this.fields.id].toString());\n }\n }\n };\n /**\n * Update the checkedNodes for child and subchild from datasource (hierarchical datasource) at initial rendering\n */\n TreeView.prototype.updateChildCheckState = function (childItems, treeData) {\n var count = 0;\n var checkedParent = treeData[this.fields.id] ? treeData[this.fields.id].toString() : '';\n for (var index = 0; index < childItems.length; index++) {\n var checkedChild = childItems[index][this.fields.id] ? childItems[index][this.fields.id].toString() : '';\n if (childItems[index][this.fields.isChecked] && !(this.isLoaded) && this.checkedNodes.indexOf(checkedChild) === -1) {\n this.checkedNodes.push(checkedChild);\n }\n if (this.checkedNodes.indexOf(checkedParent) !== -1 && this.checkedNodes.indexOf(checkedChild) === -1 && this.autoCheck) {\n this.checkedNodes.push(checkedChild);\n }\n if (this.checkedNodes.indexOf(checkedChild) !== -1 && this.autoCheck) {\n count++;\n }\n if (this.checkedNodes.indexOf(checkedChild) > -1 && this.validNodes.indexOf(checkedChild) === -1) {\n this.validNodes.push(checkedChild);\n }\n var subChildItems = getValue(this.fields.child.toString(), childItems[index]);\n if (subChildItems && subChildItems.length) {\n if (this.parentCheckData.indexOf(treeData) === -1)\n this.parentCheckData.push(treeData);\n this.updateChildCheckState(subChildItems, childItems[index]);\n }\n if (count === childItems.length && this.autoCheck && this.checkedNodes.indexOf(checkedParent) === -1) {\n this.checkedNodes.push(checkedParent);\n }\n }\n if (count !== 0 && this.autoCheck) {\n this.checkIndeterminateState(treeData);\n for (var len = 0; len < this.parentCheckData.length; len++) {\n if ((treeData !== this.parentCheckData[len]) && (this.parentCheckData[len])) {\n this.checkIndeterminateState(this.parentCheckData[len]);\n }\n }\n }\n this.parentCheckData = [];\n };\n TreeView.prototype.beforeNodeCreate = function (e) {\n if (this.showCheckBox) {\n var checkboxEle = createCheckBox(this.createElement, true, { cssClass: this.touchClass });\n checkboxEle.setAttribute('role', 'checkbox');\n checkboxEle.setAttribute('aria-label', 'checkbox');\n var icon = select('div.' + ICON, e.item);\n var id = e.item.getAttribute('data-uid');\n e.item.childNodes[0].insertBefore(checkboxEle, e.item.childNodes[0].childNodes[isNOU(icon) ? 0 : 1]);\n var checkValue = getValue(e.fields.isChecked, e.curData);\n if (this.checkedNodes.indexOf(id) > -1) {\n select('.' + CHECKBOXFRAME, checkboxEle).classList.add(CHECK);\n checkboxEle.setAttribute('aria-checked', 'true');\n this.addCheck(e.item);\n }\n else if (!isNOU(checkValue) && checkValue.toString() === 'true') {\n select('.' + CHECKBOXFRAME, checkboxEle).classList.add(CHECK);\n checkboxEle.setAttribute('aria-checked', 'true');\n this.addCheck(e.item);\n }\n else {\n checkboxEle.setAttribute('aria-checked', 'false');\n }\n var frame = select('.' + CHECKBOXFRAME, checkboxEle);\n EventHandler.add(frame, 'mousedown', this.frameMouseHandler, this);\n EventHandler.add(frame, 'mouseup', this.frameMouseHandler, this);\n }\n if (this.fullRowSelect) {\n this.createFullRow(e.item);\n }\n if (this.allowMultiSelection && !e.item.classList.contains(SELECTED)) {\n e.item.setAttribute('aria-selected', 'false');\n }\n var fields = e.fields;\n this.addActionClass(e, fields.selected, SELECTED);\n this.addActionClass(e, fields.expanded, EXPANDED);\n e.item.setAttribute(\"tabindex\", \"-1\");\n EventHandler.add(e.item, 'focus', this.focusIn, this);\n if (!isNOU(this.nodeTemplateFn)) {\n var textEle = e.item.querySelector('.' + LISTTEXT);\n var dataId = e.item.getAttribute('data-uid');\n textEle.innerHTML = '';\n this.renderNodeTemplate(e.curData, textEle, dataId);\n }\n var eventArgs = {\n node: e.item,\n nodeData: e.curData,\n text: e.text,\n };\n if (!this.isRefreshed) {\n this.trigger('drawNode', eventArgs);\n if (e.curData[this.fields.selectable] === false && !this.showCheckBox) {\n e.item.classList.add(PREVENTSELECT);\n e.item.firstElementChild.setAttribute('style', 'cursor: not-allowed');\n }\n }\n };\n TreeView.prototype.frameMouseHandler = function (e) {\n var rippleSpan = select('.' + CHECKBOXRIPPLE, e.target.parentElement);\n rippleMouseHandler(e, rippleSpan);\n };\n TreeView.prototype.addActionClass = function (e, action, cssClass) {\n var data = e.curData;\n var actionValue = getValue(action, data);\n if (!isNOU(actionValue) && actionValue.toString() !== 'false') {\n e.item.classList.add(cssClass);\n }\n };\n TreeView.prototype.getDataType = function (ds, mapper) {\n if (this.fields.dataSource instanceof DataManager) {\n for (var i = 0; i < ds.length; i++) {\n if (this.isOffline) {\n if ((typeof mapper.child === 'string') && isNOU(getValue(mapper.child, ds[i])) && !isNOU(getValue(mapper.parentID, ds[i]))) {\n return 1;\n }\n }\n else if ((typeof mapper.child === 'string') && isNOU(getValue(mapper.child, ds[i]))) {\n return 1;\n }\n }\n return 2;\n }\n for (var i = 0, len = ds.length; i < len; i++) {\n if ((typeof mapper.child === 'string') && !isNOU(getValue(mapper.child, ds[i]))) {\n return 2;\n }\n if (!isNOU(getValue(mapper.parentID, ds[i])) || !isNOU(getValue(mapper.hasChildren, ds[i]))) {\n return 1;\n }\n }\n return 1;\n };\n TreeView.prototype.getGroupedData = function (dataSource, groupBy) {\n var cusQuery = new Query().group(groupBy);\n var ds = ListBase.getDataSource(dataSource, cusQuery);\n var grpItem = [];\n for (var j = 0; j < ds.length; j++) {\n var itemObj = ds[j].items;\n grpItem.push(itemObj);\n }\n return grpItem;\n };\n TreeView.prototype.getSortedData = function (list) {\n if (list && this.sortOrder !== 'None') {\n list = ListBase.getDataSource(list, ListBase.addSorting(this.sortOrder, this.fields.text));\n }\n return list;\n };\n TreeView.prototype.finalizeNode = function (element) {\n var iNodes = selectAll('.' + IMAGE, element);\n for (var k = 0; k < iNodes.length; k++) {\n iNodes[k].setAttribute('alt', IMAGE);\n }\n if (this.isLoaded) {\n var sNodes = selectAll('.' + SELECTED, element);\n for (var i = 0; i < sNodes.length; i++) {\n this.selectNode(sNodes[i], null);\n break;\n }\n removeClass(sNodes, SELECTED);\n }\n var cNodes = selectAll('.' + LISTITEM + ':not(.' + EXPANDED + ')', element);\n for (var j = 0; j < cNodes.length; j++) {\n var icon = select('div.' + ICON, cNodes[j]);\n if (icon && icon.classList.contains(EXPANDABLE)) {\n this.disableExpandAttr(cNodes[j]);\n }\n }\n var eNodes = selectAll('.' + EXPANDED, element);\n if (!this.isInitalExpand) {\n for (var i = 0; i < eNodes.length; i++) {\n this.renderChildNodes(eNodes[i]);\n }\n }\n removeClass(eNodes, EXPANDED);\n this.updateList();\n if (this.isLoaded) {\n this.updateCheckedProp();\n }\n };\n TreeView.prototype.updateCheckedProp = function () {\n if (this.showCheckBox) {\n var nodes = [].concat([], this.checkedNodes);\n this.setProperties({ checkedNodes: nodes }, true);\n }\n };\n TreeView.prototype.ensureIndeterminate = function () {\n if (this.autoCheck) {\n var liElement = selectAll('li', this.element);\n var ulElement = void 0;\n for (var i = 0; i < liElement.length; i++) {\n if (liElement[i].classList.contains(LISTITEM)) {\n ulElement = select('.' + PARENTITEM, liElement[i]);\n if (ulElement) {\n this.ensureParentCheckState(liElement[i]);\n }\n else {\n this.ensureChildCheckState(liElement[i]);\n }\n }\n }\n }\n else {\n var indeterminate = selectAll('.' + INDETERMINATE, this.element);\n for (var i = 0; i < indeterminate.length; i++) {\n indeterminate[i].classList.remove(INDETERMINATE);\n }\n }\n };\n TreeView.prototype.ensureParentCheckState = function (element) {\n if (!isNOU(element)) {\n if (element.classList.contains(ROOT)) {\n return;\n }\n var ulElement = element;\n if (element.classList.contains(LISTITEM)) {\n ulElement = select('.' + PARENTITEM, element);\n }\n var checkedNodes = selectAll('.' + CHECK, ulElement);\n var indeterminateNodes = selectAll('.' + INDETERMINATE, ulElement);\n var nodes = selectAll('.' + LISTITEM, ulElement);\n var checkBoxEle = element.getElementsByClassName(CHECKBOXWRAP)[0];\n if (nodes.length === checkedNodes.length) {\n this.changeState(checkBoxEle, 'check', null, true, true);\n }\n else if (checkedNodes.length > 0 || indeterminateNodes.length > 0) {\n this.changeState(checkBoxEle, 'indeterminate', null, true, true);\n }\n else if (checkedNodes.length === 0) {\n this.changeState(checkBoxEle, 'uncheck', null, true, true);\n }\n var parentUL = closest(element, '.' + PARENTITEM);\n if (!isNOU(parentUL)) {\n var currentParent = closest(parentUL, '.' + LISTITEM);\n this.ensureParentCheckState(currentParent);\n }\n }\n };\n TreeView.prototype.ensureChildCheckState = function (element, e) {\n if (!isNOU(element)) {\n var childElement = select('.' + PARENTITEM, element);\n var checkBoxes = void 0;\n if (!isNOU(childElement)) {\n checkBoxes = selectAll('.' + CHECKBOXWRAP, childElement);\n var isChecked = element.getElementsByClassName(CHECKBOXFRAME)[0].classList.contains(CHECK);\n var parentCheck = element.getElementsByClassName(CHECKBOXFRAME)[0].classList.contains(INDETERMINATE);\n var childCheck = childElement.querySelectorAll('li');\n var expandState = childElement.parentElement.getAttribute('aria-expanded');\n var checkedState = void 0;\n for (var index = 0; index < checkBoxes.length; index++) {\n var childId = childCheck[index].getAttribute('data-uid');\n if (!isNOU(this.currentLoadData) && !isNOU(getValue(this.fields.isChecked, this.currentLoadData[index]))) {\n checkedState = getValue(this.fields.isChecked, this.currentLoadData[index]) ? 'check' : 'uncheck';\n if (this.ele !== -1) {\n checkedState = isChecked ? 'check' : 'uncheck';\n }\n if ((checkedState === 'uncheck') && (!isUndefined(this.parentNodeCheck) && this.autoCheck\n && this.parentNodeCheck.indexOf(childId) !== -1)) {\n this.parentNodeCheck.splice(this.parentNodeCheck.indexOf(childId), 1);\n checkedState = 'indeterminate';\n }\n }\n else {\n var isNodeChecked = checkBoxes[index].getElementsByClassName(CHECKBOXFRAME)[0].classList.contains(CHECK);\n if (isChecked) {\n checkedState = 'check';\n }\n else if (isNodeChecked && !this.isLoaded) {\n checkedState = 'check';\n }\n else if (this.checkedNodes.indexOf(childId) !== -1 && this.isLoaded && (parentCheck || isChecked)) {\n checkedState = 'check';\n }\n else if (childCheck[index].classList.contains(CHILD) && (!isUndefined(this.parentNodeCheck) && this.autoCheck\n && (isChecked || parentCheck) && this.parentNodeCheck.indexOf(childId) !== -1)) {\n checkedState = 'indeterminate';\n this.parentNodeCheck.splice(this.parentNodeCheck.indexOf(childId), 1);\n }\n else if (this.dataType === 1 && (!isUndefined(this.parentNodeCheck) && this.autoCheck &&\n (isChecked || parentCheck) && this.parentNodeCheck.indexOf(childId) !== -1)) {\n checkedState = 'indeterminate';\n this.parentNodeCheck.splice(this.parentNodeCheck.indexOf(childId), 1);\n }\n else {\n checkedState = 'uncheck';\n }\n }\n this.changeState(checkBoxes[index], checkedState, e, true, true);\n }\n }\n if (this.autoCheck && this.isLoaded) {\n this.updateParentCheckState();\n }\n }\n };\n TreeView.prototype.doCheckBoxAction = function (nodes, doCheck) {\n var li = selectAll('.' + LISTITEM, this.element);\n if (!isNOU(nodes)) {\n for (var len = nodes.length; len >= 0; len--) {\n var liEle = void 0;\n if (nodes.length === 1) {\n liEle = this.getElement(nodes[len - 1]);\n }\n else {\n liEle = this.getElement(nodes[len]);\n }\n if (isNOU(liEle)) {\n var node = void 0;\n node = nodes[len - nodes.length] ? nodes[len - nodes.length].toString() : nodes[len] ? nodes[len].toString() : null;\n if (node !== '' && doCheck && node) {\n this.setValidCheckedNode(node);\n this.dynamicCheckState(node, doCheck);\n }\n else if (this.checkedNodes.indexOf(node) !== -1 && node !== '' && !doCheck) {\n this.checkedNodes.splice(this.checkedNodes.indexOf(node), 1);\n var childItems = this.getChildNodes(this.treeData, node);\n if (childItems) {\n for (var i = 0; i < childItems.length; i++) {\n var id = childItems[i][this.fields.id] ? childItems[i][this.fields.id].toString() : null;\n if (this.checkedNodes.indexOf(id) !== -1) {\n this.checkedNodes.splice(this.checkedNodes.indexOf(id), 1);\n var ele = this.element.querySelector('[data-uid=\"' + id + '\"]');\n if (ele) {\n this.changeState(ele, 'uncheck', null);\n }\n }\n }\n if (this.parentNodeCheck.indexOf(node) !== -1) {\n this.parentNodeCheck.splice(this.parentNodeCheck.indexOf(node), 1);\n }\n }\n if (node) {\n this.dynamicCheckState(node, doCheck);\n }\n this.updateField(this.treeData, this.fields, node, 'isChecked', null);\n }\n continue;\n }\n var checkBox = select('.' + PARENTITEM + ' .' + CHECKBOXWRAP, liEle);\n this.validateCheckNode(checkBox, !doCheck, liEle, null);\n }\n }\n else {\n var checkBoxes = selectAll('.' + CHECKBOXWRAP, this.element);\n if (this.loadOnDemand) {\n for (var index = 0; index < checkBoxes.length; index++) {\n this.updateFieldChecked(checkBoxes[index], doCheck);\n this.changeState(checkBoxes[index], doCheck ? 'check' : 'uncheck', null, null, null, doCheck);\n }\n }\n else {\n for (var index = 0; index < checkBoxes.length; index++) {\n this.updateFieldChecked(checkBoxes[index], doCheck);\n this.changeState(checkBoxes[index], doCheck ? 'check' : 'uncheck');\n }\n }\n }\n if (nodes) {\n for (var j = 0; j < nodes.length; j++) {\n var node = nodes[j] ? nodes[j].toString() : '';\n if (!doCheck) {\n this.updateField(this.treeData, this.fields, node, 'isChecked', null);\n }\n }\n }\n if (this.autoCheck) {\n this.updateParentCheckState();\n }\n };\n TreeView.prototype.updateFieldChecked = function (checkbox, doCheck) {\n var currLi = closest(checkbox, '.' + LISTITEM);\n var id = currLi.getAttribute('data-uid');\n var nodeDetails = this.getNodeData(currLi);\n if (nodeDetails.isChecked === 'true' && !doCheck) {\n this.updateField(this.treeData, this.fields, id, 'isChecked', null);\n }\n };\n /**\n * Changes the parent and child check state while changing the checkedNodes via setmodel\n */\n TreeView.prototype.dynamicCheckState = function (node, doCheck) {\n if (this.dataType === 1) {\n var count = 0;\n var resultId = new DataManager(this.treeData).executeLocal(new Query().where(this.fields.id, 'equal', node, true));\n if (resultId[0]) {\n var id = resultId[0][this.fields.id] ? resultId[0][this.fields.id].toString() : null;\n var parent_1 = resultId[0][this.fields.parentID] ? resultId[0][this.fields.parentID].toString() : null;\n var parentElement = this.element.querySelector('[data-uid=\"' + parent_1 + '\"]');\n var indeterminate = parentElement ? select('.' + INDETERMINATE, parentElement) : null;\n var check = parentElement ? select('.' + CHECK, parentElement) : null;\n var element = this.element.querySelector('[data-uid=\"' + id + '\"]');\n var childNodes = this.getChildNodes(this.treeData, parent_1);\n if (childNodes) {\n for (var i = 0; i < childNodes.length; i++) {\n var childId = childNodes[i][this.fields.id] ? childNodes[i][this.fields.id].toString() : null;\n if (this.checkedNodes.indexOf(childId) !== -1) {\n count++;\n }\n }\n }\n if (this.checkedNodes.indexOf(node) !== -1 && parentElement && (id === node) && this.autoCheck) {\n this.changeState(parentElement, 'indeterminate', null);\n }\n else if (this.checkedNodes.indexOf(node) === -1 && element && (id === node) && !doCheck) {\n this.changeState(element, 'uncheck', null);\n }\n else if (this.checkedNodes.indexOf(node) !== -1 && element && (id === node) && doCheck) {\n this.changeState(element, 'check', null);\n }\n else if (this.checkedNodes.indexOf(node) === -1 && !element && parentElement && (id === node) && this.autoCheck\n && count !== 0) {\n this.changeState(parentElement, 'indeterminate', null);\n }\n else if (this.checkedNodes.indexOf(node) === -1 && !element && parentElement && (id === node) && this.autoCheck\n && count === 0) {\n this.changeState(parentElement, 'uncheck', null);\n }\n else if (!element && !parentElement && (id === node) && this.autoCheck) {\n this.updateIndeterminate(node, doCheck);\n }\n }\n }\n else if (this.dataType === 2 || (this.fields.dataSource instanceof DataManager &&\n this.isOffline)) {\n var id = void 0;\n var parentElement = void 0;\n var check = void 0;\n for (var i = 0; i < this.treeData.length; i++) {\n id = this.treeData[i][this.fields.id] ? this.treeData[i][this.fields.id].toString() : '';\n parentElement = this.element.querySelector('[data-uid=\"' + id + '\"]');\n check = parentElement ? select('.' + CHECK, parentElement) : null;\n if (this.checkedNodes.indexOf(id) === -1 && parentElement && check && !doCheck) {\n this.changeState(parentElement, 'uncheck', null);\n }\n var subChild = getValue(this.fields.child.toString(), this.treeData[i]);\n if (subChild) {\n this.updateChildIndeterminate(subChild, id, node, doCheck, id);\n }\n }\n }\n };\n /**\n * updates the parent and child check state while changing the checkedNodes via setmodel for listData\n */\n TreeView.prototype.updateIndeterminate = function (node, doCheck) {\n var indeterminateData = this.getTreeData(node);\n var count = 0;\n var parent;\n if (this.dataType === 1) {\n parent = indeterminateData[0][this.fields.parentID] ? indeterminateData[0][this.fields.parentID].toString() : null;\n }\n var childNodes = this.getChildNodes(this.treeData, parent);\n if (childNodes) {\n for (var i = 0; i < childNodes.length; i++) {\n var childId = childNodes[i][this.fields.id] ? childNodes[i][this.fields.id].toString() : null;\n if (this.checkedNodes.indexOf(childId) !== -1) {\n count++;\n }\n }\n }\n var parentElement = this.element.querySelector('[data-uid=\"' + parent + '\"]');\n if (parentElement && doCheck) {\n this.changeState(parentElement, 'indeterminate', null);\n }\n else if (!doCheck && parentElement && this.parentNodeCheck.indexOf(parent) === -1 && count !== 0) {\n this.changeState(parentElement, 'indeterminate', null);\n }\n else if (!doCheck && parentElement && this.parentNodeCheck.indexOf(parent) === -1 && count === 0) {\n this.changeState(parentElement, 'uncheck', null);\n }\n else if (!parentElement) {\n if (!doCheck && this.checkedNodes.indexOf(parent) === -1 && this.parentNodeCheck.indexOf(parent) !== -1) {\n this.parentNodeCheck.splice(this.parentNodeCheck.indexOf(parent), 1);\n }\n else if (doCheck && this.checkedNodes.indexOf(parent) === -1 && this.parentNodeCheck.indexOf(parent) === -1) {\n this.parentNodeCheck.push(parent);\n }\n else if (!doCheck && this.checkedNodes.indexOf(parent) !== -1 && this.parentNodeCheck.indexOf(parent) === -1\n && count !== 0) {\n this.parentNodeCheck.push(parent);\n }\n this.updateIndeterminate(parent, doCheck);\n if (this.checkedNodes.indexOf(parent) !== -1 && !doCheck) {\n this.checkedNodes.splice(this.checkedNodes.indexOf(parent), 1);\n }\n }\n };\n /**\n * updates the parent and child check state while changing the checkedNodes via setmodel for hierarchical data\n */\n TreeView.prototype.updateChildIndeterminate = function (subChild, parent, node, doCheck, child) {\n var count = 0;\n for (var j = 0; j < subChild.length; j++) {\n var subId = subChild[j][this.fields.id] ? subChild[j][this.fields.id].toString() : '';\n if (this.checkedNodes.indexOf(subId) !== -1) {\n count++;\n }\n var parentElement = this.element.querySelector('[data-uid=\"' + parent + '\"]');\n var indeterminate = parentElement ? select('.' + INDETERMINATE, parentElement) : null;\n var check = parentElement ? select('.' + CHECK, parentElement) : null;\n var element = this.element.querySelector('[data-uid=\"' + subId + '\"]');\n var childElementCheck = element ? select('.' + CHECK, element) : null;\n if (this.checkedNodes.indexOf(node) !== -1 && parentElement && (subId === node) && this.autoCheck) {\n this.changeState(parentElement, 'indeterminate', null);\n }\n else if (this.checkedNodes.indexOf(node) === -1 && parentElement && !element && (subId === node) && !doCheck) {\n if (this.autoCheck) {\n this.changeState(parentElement, 'uncheck', null);\n }\n else {\n if (count !== 0) {\n this.changeState(parentElement, 'indeterminate', null);\n }\n else {\n this.changeState(parentElement, 'uncheck', null);\n }\n }\n }\n else if (this.checkedNodes.indexOf(node) === -1 && element && (subId === node) && !doCheck) {\n this.changeState(element, 'uncheck', null);\n }\n else if (this.checkedNodes.indexOf(node) === -1 && indeterminate && (subId === node) && this.autoCheck && count === 0\n && !doCheck) {\n indeterminate.classList.remove(INDETERMINATE);\n }\n else if (this.checkedNodes.indexOf(node) === -1 && !element && check && (subId === node) && count === 0) {\n this.changeState(parentElement, 'uncheck', null);\n }\n else if (this.checkedNodes.indexOf(subId) === -1 && element && childElementCheck && count === 0) {\n this.changeState(element, 'uncheck', null);\n }\n else if (!element && !parentElement && (subId === node) || (this.parentNodeCheck.indexOf(parent) !== -1) && this.autoCheck) {\n var childElement = this.element.querySelector('[data-uid=\"' + child + '\"]');\n if (doCheck && count !== 0) {\n this.changeState(childElement, 'indeterminate', null);\n }\n else if (doCheck && count === subChild.length && this.checkedNodes.indexOf(parent) === -1) {\n this.checkedNodes.push(parent);\n }\n else if (!doCheck && count === 0 && this.parentNodeCheck.indexOf(parent) !== -1) {\n this.parentNodeCheck.splice(this.parentNodeCheck.indexOf(parent));\n }\n if (this.parentNodeCheck.indexOf(parent) === -1) {\n this.parentNodeCheck.push(parent);\n }\n }\n var innerChild = getValue(this.fields.child.toString(), subChild[j]);\n if (innerChild) {\n this.updateChildIndeterminate(innerChild, subId, node, doCheck, child);\n }\n }\n };\n TreeView.prototype.changeState = function (wrapper, state, e, isPrevent, isAdd, doCheck) {\n var _this = this;\n var eventArgs;\n var currLi = closest(wrapper, '.' + LISTITEM);\n if (wrapper === currLi) {\n wrapper = select('.' + CHECKBOXWRAP, currLi);\n }\n if (!isPrevent) {\n this.checkActionNodes = [];\n eventArgs = this.getCheckEvent(currLi, state, e);\n this.trigger('nodeChecking', eventArgs, function (observedArgs) {\n if (!observedArgs.cancel) {\n _this.nodeCheckAction(wrapper, state, currLi, observedArgs, e, isPrevent, isAdd, doCheck);\n }\n });\n }\n else {\n this.nodeCheckAction(wrapper, state, currLi, eventArgs, e, isPrevent, isAdd, doCheck);\n }\n };\n TreeView.prototype.nodeCheckAction = function (wrapper, state, currLi, eventArgs, e, isPrevent, isAdd, doCheck) {\n var ariaState;\n var frameSpan = wrapper.getElementsByClassName(CHECKBOXFRAME)[0];\n if (state === 'check' && !frameSpan.classList.contains(CHECK)) {\n frameSpan.classList.remove(INDETERMINATE);\n frameSpan.classList.add(CHECK);\n this.addCheck(currLi);\n ariaState = 'true';\n }\n else if (state === 'uncheck' && (frameSpan.classList.contains(CHECK) || frameSpan.classList.contains(INDETERMINATE))) {\n removeClass([frameSpan], [CHECK, INDETERMINATE]);\n this.removeCheck(currLi);\n ariaState = 'false';\n }\n else if (state === 'indeterminate' && this.autoCheck) {\n frameSpan.classList.remove(CHECK);\n frameSpan.classList.add(INDETERMINATE);\n this.removeCheck(currLi);\n ariaState = 'mixed';\n }\n ariaState = state === 'check' ? 'true' : state === 'uncheck' ? 'false' : ariaState;\n if (!isNOU(ariaState)) {\n wrapper.setAttribute('aria-checked', ariaState);\n }\n if (isAdd) {\n var data = [].concat([], this.checkActionNodes);\n eventArgs = this.getCheckEvent(currLi, state, e);\n if (isUndefined(isPrevent)) {\n eventArgs.data = data;\n }\n }\n if (doCheck !== undefined) {\n this.ensureStateChange(currLi, doCheck);\n }\n if (!isPrevent) {\n if (!isNOU(ariaState)) {\n wrapper.setAttribute('aria-checked', ariaState);\n eventArgs.data[0].checked = ariaState;\n this.trigger('nodeChecked', eventArgs);\n this.checkActionNodes = [];\n }\n }\n };\n TreeView.prototype.addCheck = function (liEle) {\n var id = liEle.getAttribute('data-uid');\n if (!isNOU(id) && this.checkedNodes.indexOf(id) === -1) {\n this.checkedNodes.push(id);\n }\n };\n TreeView.prototype.removeCheck = function (liEle) {\n var index = this.checkedNodes.indexOf(liEle.getAttribute('data-uid'));\n if (index > -1) {\n this.checkedNodes.splice(index, 1);\n }\n };\n TreeView.prototype.getCheckEvent = function (currLi, action, e) {\n this.checkActionNodes.push(this.getNodeData(currLi));\n var nodeData = this.checkActionNodes;\n return { action: action, cancel: false, isInteracted: isNOU(e) ? false : true, node: currLi, data: nodeData };\n };\n TreeView.prototype.finalize = function () {\n var firstUl = select('.' + PARENTITEM, this.element);\n if (!isNullOrUndefined(firstUl)) {\n firstUl.setAttribute('role', treeAriaAttr.treeRole);\n this.setMultiSelect(this.allowMultiSelection);\n var firstNode = select('.' + LISTITEM, this.element);\n if (firstNode) {\n firstNode.setAttribute('tabindex', '0');\n this.updateIdAttr(null, firstNode);\n }\n if (this.allowTextWrap) {\n this.updateWrap();\n }\n this.renderReactTemplates();\n this.hasPid = this.rootData[0] ? this.rootData[0].hasOwnProperty(this.fields.parentID) : false;\n this.doExpandAction();\n }\n };\n TreeView.prototype.setTextWrap = function () {\n (this.allowTextWrap ? addClass : removeClass)([this.element], LISTWRAP);\n if (Browser.isIE) {\n (this.allowTextWrap ? addClass : removeClass)([this.element], IELISTWRAP);\n }\n };\n TreeView.prototype.updateWrap = function (ulEle) {\n if (!this.fullRowSelect) {\n return;\n }\n var liEle = ulEle ? selectAll('.' + LISTITEM, ulEle) : this.liList;\n var length = liEle.length;\n for (var i = 0; i < length; i++) {\n this.calculateWrap(liEle[i]);\n }\n };\n TreeView.prototype.calculateWrap = function (liEle) {\n var element = select('.' + FULLROW, liEle);\n if (element && element.nextElementSibling) {\n element.style.height = this.allowTextWrap ? element.nextElementSibling.offsetHeight + 'px' : '';\n }\n };\n TreeView.prototype.doExpandAction = function () {\n var eUids = this.expandedNodes;\n if (this.isInitalExpand && eUids.length > 0) {\n this.setProperties({ expandedNodes: [] }, true);\n /* eslint-disable */\n if (this.fields.dataSource instanceof DataManager) {\n this.expandGivenNodes(eUids);\n }\n else {\n for (var i = 0; i < eUids.length; i++) {\n var eNode = select('[data-uid=\"' + eUids[i] + '\"]', this.element);\n if (!isNOU(eNode)) {\n var icon = select('.' + EXPANDABLE, select('.' + TEXTWRAP, eNode));\n if (!isNOU(icon)) {\n this.expandAction(eNode, icon, null);\n }\n }\n else {\n if (eUids[i] && this.expandChildren.indexOf(eUids[i]) === -1) {\n this.expandChildren.push(eUids[i].toString());\n }\n continue;\n }\n }\n this.afterFinalized();\n }\n }\n else {\n this.afterFinalized();\n }\n };\n TreeView.prototype.expandGivenNodes = function (arr) {\n var proxy = this;\n this.expandCallback(arr[this.index], function () {\n proxy.index++;\n if (proxy.index < arr.length) {\n proxy.expandGivenNodes(arr);\n }\n else {\n proxy.afterFinalized();\n }\n });\n };\n TreeView.prototype.expandCallback = function (eUid, callback) {\n var eNode = select('[data-uid=\"' + eUid + '\"]', this.element);\n if (!isNOU(eNode)) {\n var icon = select('.' + EXPANDABLE, select('.' + TEXTWRAP, eNode));\n if (!isNOU(icon)) {\n this.expandAction(eNode, icon, null, false, callback);\n }\n else {\n callback();\n }\n }\n else {\n callback();\n }\n };\n TreeView.prototype.afterFinalized = function () {\n this.doSelectionAction();\n this.updateCheckedProp();\n this.isAnimate = true;\n this.isInitalExpand = false;\n if ((!this.isLoaded || this.isFieldChange) && !this.isNodeDropped) {\n var eventArgs = { data: this.treeData };\n this.trigger('dataBound', eventArgs);\n }\n this.isLoaded = true;\n this.isNodeDropped = false;\n };\n TreeView.prototype.doSelectionAction = function () {\n var sNodes = selectAll('.' + SELECTED, this.element);\n var sUids = this.selectedNodes;\n if (sUids.length > 0) {\n this.setProperties({ selectedNodes: [] }, true);\n for (var i = 0; i < sUids.length; i++) {\n var sNode = select('[data-uid=\"' + sUids[i] + '\"]', this.element);\n if (sNode && !(sNode.classList.contains('e-active'))) {\n this.selectNode(sNode, null, true);\n }\n else {\n this.selectedNodes.push(sUids[i]);\n }\n if (!this.allowMultiSelection) {\n break;\n }\n }\n }\n else {\n this.selectGivenNodes(sNodes);\n }\n removeClass(sNodes, SELECTED);\n };\n TreeView.prototype.selectGivenNodes = function (sNodes) {\n for (var i = 0; i < sNodes.length; i++) {\n if (!sNodes[i].classList.contains('e-disable')) {\n this.selectNode(sNodes[i], null, true);\n }\n if (!this.allowMultiSelection) {\n break;\n }\n }\n };\n TreeView.prototype.clickHandler = function (event) {\n var target = Browser.isDevice && !Browser.isIos ? document.elementFromPoint(event.originalEvent.changedTouches[0].clientX, event.originalEvent.changedTouches[0].clientY) : event.originalEvent.target;\n EventHandler.remove(this.element, 'contextmenu', this.preventContextMenu);\n if (!target || this.dragStartAction) {\n return;\n }\n else {\n var classList = target.classList;\n var li = closest(target, '.' + LISTITEM);\n if (!li || (li.classList.contains(PREVENTSELECT) && !(classList.contains(EXPANDABLE) || classList.contains(COLLAPSIBLE)))) {\n return;\n }\n else if (event.originalEvent.which !== 3) {\n var rippleElement = select('.' + RIPPLEELMENT, li);\n var rippleIcons = select('.' + ICON, li);\n this.removeHover();\n this.setFocusElement(li);\n if (this.showCheckBox && !li.classList.contains('e-disable')) {\n var checkWrapper = closest(target, '.' + CHECKBOXWRAP);\n if (!isNOU(checkWrapper)) {\n var checkElement = select('.' + CHECKBOXFRAME, checkWrapper);\n this.validateCheckNode(checkWrapper, checkElement.classList.contains(CHECK), li, event.originalEvent);\n this.triggerClickEvent(event.originalEvent, li);\n return;\n }\n }\n if (classList.contains(EXPANDABLE)) {\n this.expandAction(li, target, event);\n }\n else if (classList.contains(COLLAPSIBLE)) {\n this.collapseNode(li, target, event);\n }\n else if (rippleElement && rippleIcons) {\n if (rippleIcons.classList.contains(RIPPLE) && rippleIcons.classList.contains(EXPANDABLE)) {\n this.expandAction(li, rippleIcons, event);\n }\n else if (rippleIcons.classList.contains(RIPPLE) && rippleIcons.classList.contains(COLLAPSIBLE)) {\n this.collapseNode(li, rippleIcons, event);\n }\n else if (!classList.contains(PARENTITEM) && !classList.contains(LISTITEM)) {\n this.toggleSelect(li, event.originalEvent, false);\n }\n }\n else {\n if (!classList.contains(PARENTITEM) && !classList.contains(LISTITEM)) {\n this.toggleSelect(li, event.originalEvent, false);\n }\n }\n }\n if (event.originalEvent.which === 3) {\n this.isRightClick = true;\n }\n this.triggerClickEvent(event.originalEvent, li);\n }\n };\n TreeView.prototype.nodeCheckedEvent = function (wrapper, isCheck, e) {\n var currLi = closest(wrapper, '.' + LISTITEM);\n var eventArgs = this.getCheckEvent(wrapper, isCheck ? 'uncheck' : 'check', e);\n eventArgs.data = eventArgs.data.splice(0, eventArgs.data.length - 1);\n this.trigger('nodeChecked', eventArgs);\n };\n TreeView.prototype.triggerClickEvent = function (e, li) {\n var eventArgs = {\n event: e,\n node: li,\n };\n this.trigger('nodeClicked', eventArgs);\n };\n TreeView.prototype.expandNode = function (currLi, icon, loaded) {\n var _this = this;\n this.renderReactTemplates();\n if (icon.classList.contains(LOAD)) {\n this.hideSpinner(icon);\n }\n if (!this.initialRender) {\n icon.classList.add('interaction');\n }\n if (loaded !== true || (loaded === true && currLi.classList.contains('e-expanded'))) {\n if (this.preventExpand !== true) {\n removeClass([icon], EXPANDABLE);\n addClass([icon], COLLAPSIBLE);\n var start_1 = 0;\n var end_1 = 0;\n var proxy_1 = this;\n var ul_1 = select('.' + PARENTITEM, currLi);\n var liEle_1 = currLi;\n this.setHeight(liEle_1, ul_1);\n var activeElement_1 = select('.' + LISTITEM + '.' + ACTIVE, currLi);\n if (this.isAnimate && !this.isRefreshed) {\n this.aniObj.animate(ul_1, {\n name: this.animation.expand.effect,\n duration: this.animation.expand.duration,\n timingFunction: this.animation.expand.easing,\n begin: function (args) {\n liEle_1.style.overflow = 'hidden';\n if (!isNullOrUndefined(activeElement_1) && activeElement_1 instanceof HTMLElement) {\n activeElement_1.classList.add(ITEM_ANIMATION_ACTIVE);\n }\n start_1 = liEle_1.offsetHeight;\n end_1 = select('.' + TEXTWRAP, currLi).offsetHeight;\n },\n progress: function (args) {\n args.element.style.display = 'block';\n proxy_1.animateHeight(args, start_1, end_1);\n },\n end: function (args) {\n args.element.style.display = 'block';\n if (!isNullOrUndefined(activeElement_1) && activeElement_1 instanceof HTMLElement) {\n activeElement_1.classList.remove(ITEM_ANIMATION_ACTIVE);\n }\n _this.expandedNode(liEle_1, ul_1, icon);\n }\n });\n }\n else {\n this.expandedNode(liEle_1, ul_1, icon);\n }\n }\n }\n else {\n var ul = select('.' + PARENTITEM, currLi);\n ul.style.display = 'none';\n if (this.fields.dataSource instanceof DataManager === true) {\n this.preventExpand = false;\n }\n }\n if (this.initialRender) {\n icon.classList.add('interaction');\n }\n };\n TreeView.prototype.expandedNode = function (currLi, ul, icon) {\n ul.style.display = 'block';\n currLi.style.display = 'block';\n currLi.style.overflow = '';\n currLi.style.height = '';\n removeClass([icon], PROCESS);\n this.addExpand(currLi);\n if (this.allowTextWrap && this.isLoaded && this.isFirstRender) {\n this.updateWrap(currLi);\n this.isFirstRender = false;\n }\n if (this.isLoaded && this.expandArgs && !this.isRefreshed) {\n this.expandArgs = this.getExpandEvent(currLi, null);\n this.expandArgs.isInteracted = this.isInteracted;\n this.trigger('nodeExpanded', this.expandArgs);\n }\n };\n TreeView.prototype.addExpand = function (liEle) {\n liEle.setAttribute('aria-expanded', 'true');\n removeClass([liEle], NODECOLLAPSED);\n var id = liEle.getAttribute('data-uid');\n if (!isNOU(id) && this.expandedNodes.indexOf(id) === -1) {\n this.expandedNodes.push(id);\n }\n };\n TreeView.prototype.collapseNode = function (currLi, icon, e) {\n var _this = this;\n if (icon.classList.contains(PROCESS)) {\n return;\n }\n else {\n addClass([icon], PROCESS);\n }\n var colArgs;\n if (this.isLoaded) {\n colArgs = this.getExpandEvent(currLi, e);\n this.isInteracted = colArgs.isInteracted;\n this.trigger('nodeCollapsing', colArgs, function (observedArgs) {\n if (observedArgs.cancel) {\n removeClass([icon], PROCESS);\n }\n else {\n _this.nodeCollapseAction(currLi, icon, observedArgs);\n }\n });\n }\n else {\n this.nodeCollapseAction(currLi, icon, colArgs);\n }\n };\n TreeView.prototype.nodeCollapseAction = function (currLi, icon, colArgs) {\n var _this = this;\n removeClass([icon], COLLAPSIBLE);\n addClass([icon], EXPANDABLE);\n var start = 0;\n var end = 0;\n var proxy = this;\n var ul = select('.' + PARENTITEM, currLi);\n var liEle = currLi;\n var activeElement = select('.' + LISTITEM + '.' + ACTIVE, currLi);\n if (this.isAnimate) {\n this.aniObj.animate(ul, {\n name: this.animation.collapse.effect,\n duration: this.animation.collapse.duration,\n timingFunction: this.animation.collapse.easing,\n begin: function (args) {\n liEle.style.overflow = 'hidden';\n if (!isNullOrUndefined(activeElement) && activeElement instanceof HTMLElement) {\n activeElement.classList.add(ITEM_ANIMATION_ACTIVE);\n }\n start = select('.' + TEXTWRAP, currLi).offsetHeight;\n end = liEle.offsetHeight;\n },\n progress: function (args) {\n proxy.animateHeight(args, start, end);\n },\n end: function (args) {\n args.element.style.display = 'none';\n if (!isNullOrUndefined(activeElement) && activeElement instanceof HTMLElement) {\n activeElement.classList.remove(ITEM_ANIMATION_ACTIVE);\n }\n _this.collapsedNode(liEle, ul, icon, colArgs);\n }\n });\n }\n else {\n this.collapsedNode(liEle, ul, icon, colArgs);\n }\n };\n TreeView.prototype.collapsedNode = function (liEle, ul, icon, colArgs) {\n ul.style.display = 'none';\n liEle.style.overflow = '';\n liEle.style.height = '';\n removeClass([icon], PROCESS);\n this.removeExpand(liEle);\n if (this.isLoaded) {\n colArgs = this.getExpandEvent(liEle, null);\n colArgs.isInteracted = this.isInteracted;\n this.trigger('nodeCollapsed', colArgs);\n }\n };\n TreeView.prototype.removeExpand = function (liEle, toRemove) {\n if (toRemove) {\n liEle.removeAttribute('aria-expanded');\n }\n else {\n this.disableExpandAttr(liEle);\n }\n var index = this.expandedNodes.indexOf(liEle.getAttribute('data-uid'));\n if (index > -1) {\n this.expandedNodes.splice(index, 1);\n }\n };\n TreeView.prototype.disableExpandAttr = function (liEle) {\n liEle.setAttribute('aria-expanded', 'false');\n addClass([liEle], NODECOLLAPSED);\n };\n TreeView.prototype.setHeight = function (currLi, ul) {\n ul.style.display = 'block';\n ul.style.visibility = 'hidden';\n currLi.style.height = currLi.offsetHeight + 'px';\n ul.style.display = 'none';\n ul.style.visibility = '';\n };\n TreeView.prototype.animateHeight = function (args, start, end) {\n var remaining = (args.duration - args.timeStamp) / args.duration;\n var currentHeight = (end - start) * remaining + start;\n args.element.parentElement.style.height = currentHeight + 'px';\n };\n TreeView.prototype.renderChildNodes = function (parentLi, expandChild, callback, loaded) {\n var _this = this;\n var eicon = select('div.' + ICON, parentLi);\n if (isNOU(eicon)) {\n return;\n }\n this.showSpinner(eicon);\n var childItems;\n /* eslint-disable */\n if (this.fields.dataSource instanceof DataManager) {\n var level = this.parents(parentLi, '.' + PARENTITEM).length;\n var mapper_2 = this.getChildFields(this.fields, level, 1);\n if (isNOU(mapper_2) || isNOU(mapper_2.dataSource)) {\n detach(eicon);\n this.removeExpand(parentLi, true);\n return;\n }\n this.treeList.push('false');\n if (this.fields.dataSource instanceof DataManager && this.isOffline) {\n this.treeList.pop();\n childItems = this.getChildNodes(this.treeData, parentLi.getAttribute('data-uid'));\n this.loadChild(childItems, mapper_2, eicon, parentLi, expandChild, callback, loaded);\n }\n else {\n mapper_2.dataSource.executeQuery(this.getQuery(mapper_2, parentLi.getAttribute('data-uid'))).then(function (e) {\n _this.treeList.pop();\n childItems = e.result;\n if (_this.dataType === 1) {\n _this.dataType = 2;\n }\n _this.loadChild(childItems, mapper_2, eicon, parentLi, expandChild, callback, loaded);\n }).catch(function (e) {\n _this.trigger('actionFailure', { error: e });\n });\n }\n }\n else {\n childItems = this.getChildNodes(this.treeData, parentLi.getAttribute('data-uid'));\n this.currentLoadData = this.getSortedData(childItems);\n if (isNOU(childItems) || childItems.length === 0) {\n detach(eicon);\n this.removeExpand(parentLi, true);\n return;\n }\n else {\n this.listBaseOption.ariaAttributes.level = parseFloat(parentLi.getAttribute('aria-level')) + 1;\n parentLi.appendChild(ListBase.createList(this.createElement, this.currentLoadData, this.listBaseOption));\n this.expandNode(parentLi, eicon, loaded);\n this.setSelectionForChildNodes(childItems);\n this.ensureCheckNode(parentLi);\n this.finalizeNode(parentLi);\n this.disableTreeNodes(childItems);\n this.renderSubChild(parentLi, expandChild, loaded);\n }\n }\n };\n TreeView.prototype.loadChild = function (childItems, mapper, eicon, parentLi, expandChild, callback, loaded) {\n this.currentLoadData = childItems;\n if (isNOU(childItems) || childItems.length === 0) {\n detach(eicon);\n this.removeExpand(parentLi, true);\n }\n else {\n this.updateListProp(mapper);\n if (this.fields.dataSource instanceof DataManager && !this.isOffline) {\n var id = parentLi.getAttribute('data-uid');\n var nodeData = this.getNodeObject(id);\n setValue('child', childItems, nodeData);\n }\n this.listBaseOption.ariaAttributes.level = parseFloat(parentLi.getAttribute('aria-level')) + 1;\n parentLi.appendChild(ListBase.createList(this.createElement, childItems, this.listBaseOption));\n this.expandNode(parentLi, eicon, loaded);\n this.setSelectionForChildNodes(childItems);\n this.ensureCheckNode(parentLi);\n this.finalizeNode(parentLi);\n this.disableTreeNodes(childItems);\n this.renderSubChild(parentLi, expandChild, loaded);\n }\n if (callback) {\n callback();\n }\n if (this.treeList.length === 0 && !this.isLoaded) {\n this.finalize();\n }\n };\n TreeView.prototype.disableTreeNodes = function (childItems) {\n var i = 0;\n while (i < childItems.length) {\n var id = childItems[i][this.fields.id] ? childItems[i][this.fields.id].toString() : null;\n if (this.disableNode !== undefined && this.disableNode.indexOf(id) !== -1) {\n this.doDisableAction([id]);\n }\n i++;\n }\n };\n /**\n * Sets the child Item in selectedState while rendering the child node\n */\n TreeView.prototype.setSelectionForChildNodes = function (nodes) {\n var i;\n for (i = 0; i < nodes.length; i++) {\n var id = nodes[i][this.fields.id] ? nodes[i][this.fields.id].toString() : null;\n if (this.selectedNodes !== undefined && this.selectedNodes.indexOf(id) !== -1) {\n this.doSelectionAction();\n }\n }\n };\n TreeView.prototype.ensureCheckNode = function (element) {\n if (this.showCheckBox) {\n this.ele = (this.checkedElement) ? this.checkedElement.indexOf(element.getAttribute('data-uid')) : null;\n if (this.autoCheck) {\n this.ensureChildCheckState(element);\n this.ensureParentCheckState(element);\n }\n }\n this.currentLoadData = null;\n };\n TreeView.prototype.getFields = function (mapper, nodeLevel, dataLevel) {\n if (nodeLevel === dataLevel) {\n return mapper;\n }\n else {\n return this.getFields(this.getChildMapper(mapper), nodeLevel, dataLevel + 1);\n }\n };\n TreeView.prototype.getChildFields = function (mapper, nodeLevel, dataLevel) {\n var childData;\n if (nodeLevel === dataLevel) {\n return this.getChildMapper(mapper);\n }\n else {\n return this.getChildFields(this.getChildMapper(mapper), nodeLevel, dataLevel + 1);\n }\n };\n TreeView.prototype.getChildMapper = function (mapper) {\n return (typeof mapper.child === 'string' || isNOU(mapper.child)) ? mapper : mapper.child;\n };\n TreeView.prototype.getChildNodes = function (obj, parentId, isRoot) {\n var _this = this;\n if (isRoot === void 0) { isRoot = false; }\n var childNodes;\n if (isNOU(obj)) {\n return childNodes;\n }\n else if (this.dataType === 1) {\n return this.getChildGroup(this.groupedData, parentId, isRoot);\n }\n else {\n if (typeof this.fields.child === 'string') {\n var index = obj.findIndex(function (data) { return data[_this.fields.id] && data[_this.fields.id].toString() === parentId; });\n if (index !== -1) {\n return getValue(this.fields.child, obj[index]);\n }\n if (index === -1) {\n for (var i = 0, objlen = obj.length; i < objlen; i++) {\n var tempArray = getValue(this.fields.child, obj[i]);\n var childIndex = !isNOU(tempArray) ? tempArray.findIndex(function (data) { return data[_this.fields.id] && data[_this.fields.id].toString() === parentId; }) : -1;\n if (childIndex !== -1) {\n return getValue(this.fields.child, tempArray[childIndex]);\n }\n else if (!isNOU(tempArray)) {\n childNodes = this.getChildNodes(tempArray, parentId);\n if (childNodes !== undefined) {\n break;\n }\n }\n }\n }\n }\n }\n return childNodes;\n };\n TreeView.prototype.getChildGroup = function (data, parentId, isRoot) {\n var childNodes;\n if (isNOU(data)) {\n return childNodes;\n }\n for (var i = 0, objlen = data.length; i < objlen; i++) {\n if (!isNOU(data[i][0]) && !isNOU(getValue(this.fields.parentID, data[i][0]))) {\n if (getValue(this.fields.parentID, data[i][0]).toString() === parentId) {\n return data[i];\n }\n }\n else if (isRoot) {\n return data[i];\n }\n else {\n return [];\n }\n }\n return childNodes;\n };\n TreeView.prototype.renderSubChild = function (element, expandChild, loaded) {\n if (expandChild) {\n var cIcons = selectAll('.' + EXPANDABLE, element);\n for (var i = 0, len = cIcons.length; i < len; i++) {\n var icon = cIcons[i];\n if (element.querySelector('.e-icons') !== cIcons[i]) {\n var curLi = closest(icon, '.' + LISTITEM);\n this.expandArgs = this.getExpandEvent(curLi, null);\n if (loaded !== true) {\n this.trigger('nodeExpanding', this.expandArgs);\n }\n this.renderChildNodes(curLi, expandChild, null, loaded);\n }\n }\n }\n };\n TreeView.prototype.toggleSelect = function (li, e, multiSelect) {\n if (!li.classList.contains('e-disable')) {\n if (this.allowMultiSelection && ((e && e.ctrlKey) || multiSelect) && this.isActive(li)) {\n this.unselectNode(li, e);\n }\n else {\n this.selectNode(li, e, multiSelect);\n }\n }\n };\n TreeView.prototype.isActive = function (li) {\n return li.classList.contains(ACTIVE) ? true : false;\n };\n TreeView.prototype.selectNode = function (li, e, multiSelect) {\n var _this = this;\n if (isNOU(li) || (!this.allowMultiSelection && this.isActive(li) && !isNOU(e))) {\n this.setFocusElement(li);\n return;\n }\n var eventArgs;\n if (this.isLoaded) {\n eventArgs = this.getSelectEvent(li, 'select', e);\n this.trigger('nodeSelecting', eventArgs, function (observedArgs) {\n if ((!observedArgs.cancel) && !observedArgs.node.classList.contains(PREVENTSELECT)) {\n _this.nodeSelectAction(li, e, observedArgs, multiSelect);\n }\n });\n }\n else {\n this.nodeSelectAction(li, e, eventArgs, multiSelect);\n }\n };\n TreeView.prototype.nodeSelectAction = function (li, e, eventArgs, multiSelect) {\n if (!this.allowMultiSelection || (!multiSelect && (!e || (e && !e.ctrlKey)))) {\n this.removeSelectAll();\n }\n if (this.allowMultiSelection && e && e.shiftKey) {\n if (!this.startNode) {\n this.startNode = li;\n }\n var startIndex = this.liList.indexOf(this.startNode);\n var endIndex = this.liList.indexOf(li);\n if (startIndex > endIndex) {\n var temp = startIndex;\n startIndex = endIndex;\n endIndex = temp;\n }\n for (var i = startIndex; i <= endIndex; i++) {\n var currNode = this.liList[i];\n if (isVisible(currNode) && !currNode.classList.contains('e-disable')) {\n this.addSelect(currNode);\n }\n }\n }\n else {\n this.startNode = li;\n this.addSelect(li);\n }\n if (this.isLoaded) {\n eventArgs.nodeData = this.getNodeData(li);\n this.trigger('nodeSelected', eventArgs);\n this.isRightClick = false;\n }\n this.isRightClick = false;\n };\n TreeView.prototype.unselectNode = function (li, e) {\n var _this = this;\n var eventArgs;\n if (this.isLoaded) {\n eventArgs = this.getSelectEvent(li, 'un-select', e);\n this.trigger('nodeSelecting', eventArgs, function (observedArgs) {\n if (!observedArgs.cancel) {\n _this.nodeUnselectAction(li, observedArgs);\n }\n });\n }\n else {\n this.nodeUnselectAction(li, eventArgs);\n }\n };\n TreeView.prototype.nodeUnselectAction = function (li, eventArgs) {\n this.removeSelect(li);\n this.setFocusElement(li);\n if (this.isLoaded) {\n eventArgs.nodeData = this.getNodeData(li);\n this.trigger('nodeSelected', eventArgs);\n }\n };\n TreeView.prototype.setFocusElement = function (li) {\n if (!isNOU(li)) {\n var focusedNode = this.getFocusedNode();\n if (focusedNode) {\n removeClass([focusedNode], FOCUS);\n focusedNode.setAttribute(\"tabindex\", \"-1\");\n }\n addClass([li], FOCUS);\n li.setAttribute('tabindex', '0');\n EventHandler.add(li, 'blur', this.focusOut, this);\n this.updateIdAttr(focusedNode, li);\n }\n };\n TreeView.prototype.addSelect = function (liEle) {\n liEle.setAttribute('aria-selected', 'true');\n addClass([liEle], ACTIVE);\n var id = liEle.getAttribute('data-uid');\n if (!isNOU(id) && this.selectedNodes.indexOf(id) === -1) {\n this.selectedNodes.push(id);\n }\n };\n TreeView.prototype.removeSelect = function (liEle) {\n if (this.allowMultiSelection) {\n liEle.setAttribute('aria-selected', 'false');\n }\n else {\n liEle.removeAttribute('aria-selected');\n }\n removeClass([liEle], ACTIVE);\n var index = this.selectedNodes.indexOf(liEle.getAttribute('data-uid'));\n if (index > -1) {\n this.selectedNodes.splice(index, 1);\n }\n };\n TreeView.prototype.removeSelectAll = function () {\n var selectedLI = this.element.querySelectorAll('.' + ACTIVE);\n for (var _i = 0, selectedLI_1 = selectedLI; _i < selectedLI_1.length; _i++) {\n var ele = selectedLI_1[_i];\n if (this.allowMultiSelection) {\n ele.setAttribute('aria-selected', 'false');\n }\n else {\n ele.removeAttribute('aria-selected');\n }\n }\n removeClass(selectedLI, ACTIVE);\n this.setProperties({ selectedNodes: [] }, true);\n };\n TreeView.prototype.getSelectEvent = function (currLi, action, e) {\n var nodeData = this.getNodeData(currLi);\n return { action: action, cancel: false, isInteracted: isNOU(e) ? false : true, node: currLi, nodeData: nodeData };\n };\n TreeView.prototype.setExpandOnType = function () {\n this.expandOnType = (this.expandOn === 'Auto') ? (Browser.isDevice ? 'Click' : 'DblClick') : this.expandOn;\n };\n TreeView.prototype.expandHandler = function (e) {\n var target = e.originalEvent.target;\n if (!target || target.classList.contains(INPUT) || target.classList.contains(ROOT) ||\n target.classList.contains(PARENTITEM) || target.classList.contains(LISTITEM) ||\n target.classList.contains(ICON) || this.showCheckBox && closest(target, '.' + CHECKBOXWRAP)) {\n return;\n }\n else {\n this.expandCollapseAction(closest(target, '.' + LISTITEM), e);\n }\n };\n TreeView.prototype.expandCollapseAction = function (currLi, e) {\n var icon = select('div.' + ICON, currLi);\n if (!icon || icon.classList.contains(PROCESS)) {\n return;\n }\n else {\n var classList = icon.classList;\n if (classList.contains(EXPANDABLE)) {\n this.expandAction(currLi, icon, e);\n }\n else if (classList.contains(COLLAPSIBLE)) {\n this.collapseNode(currLi, icon, e);\n }\n }\n };\n TreeView.prototype.expandAction = function (currLi, icon, e, expandChild, callback) {\n var _this = this;\n if (icon.classList.contains(PROCESS)) {\n return;\n }\n else {\n addClass([icon], PROCESS);\n }\n if (this.isLoaded && !this.isRefreshed) {\n this.expandArgs = this.getExpandEvent(currLi, e);\n this.isInteracted = this.expandArgs.isInteracted;\n this.trigger('nodeExpanding', this.expandArgs, function (observedArgs) {\n if (observedArgs.cancel) {\n removeClass([icon], PROCESS);\n }\n else {\n _this.nodeExpandAction(currLi, icon, expandChild, callback);\n }\n });\n }\n else {\n this.nodeExpandAction(currLi, icon, expandChild, callback);\n }\n };\n TreeView.prototype.nodeExpandAction = function (currLi, icon, expandChild, callback) {\n var ul = select('.' + PARENTITEM, currLi);\n if (ul && ul.nodeName === 'UL') {\n this.expandNode(currLi, icon);\n }\n else {\n this.isFirstRender = true;\n this.renderChildNodes(currLi, expandChild, callback);\n var liEles = selectAll('.' + LISTITEM, currLi);\n for (var i = 0; i < liEles.length; i++) {\n var id = this.getId(liEles[i]);\n if (this.expandChildren.indexOf(id) !== -1 && this.expandChildren !== undefined) {\n var icon_1 = select('.' + EXPANDABLE, select('.' + TEXTWRAP, liEles[i]));\n if (!isNOU(icon_1)) {\n this.expandAction(liEles[i], icon_1, null);\n }\n this.expandChildren.splice(this.expandChildren.indexOf(id), 1);\n }\n }\n }\n };\n TreeView.prototype.keyActionHandler = function (e) {\n var _this = this;\n var target = e.target;\n var focusedNode = this.getFocusedNode();\n if (target && target.classList.contains(INPUT)) {\n var inpEle = target;\n if (e.action === 'enter') {\n inpEle.blur();\n }\n else if (e.action === 'escape') {\n inpEle.value = this.oldText;\n inpEle.blur();\n }\n return;\n }\n e.preventDefault();\n var eventArgs = {\n cancel: false,\n event: e,\n node: focusedNode,\n };\n this.trigger('keyPress', eventArgs, function (observedArgs) {\n if (!observedArgs.cancel) {\n switch (e.action) {\n case 'space':\n if (_this.showCheckBox) {\n _this.checkNode(e);\n }\n else {\n _this.toggleSelect(focusedNode, e);\n }\n break;\n case 'moveRight':\n _this.openNode(_this.enableRtl ? false : true, e);\n break;\n case 'moveLeft':\n _this.openNode(_this.enableRtl ? true : false, e);\n break;\n case 'shiftDown':\n _this.shiftKeySelect(true, e);\n break;\n case 'moveDown':\n case 'ctrlDown':\n case 'csDown':\n _this.navigateNode(true);\n break;\n case 'shiftUp':\n _this.shiftKeySelect(false, e);\n break;\n case 'moveUp':\n case 'ctrlUp':\n case 'csUp':\n _this.navigateNode(false);\n break;\n case 'home':\n case 'shiftHome':\n case 'ctrlHome':\n case 'csHome':\n _this.navigateRootNode(true);\n break;\n case 'end':\n case 'shiftEnd':\n case 'ctrlEnd':\n case 'csEnd':\n _this.navigateRootNode(false);\n break;\n case 'enter':\n case 'ctrlEnter':\n case 'shiftEnter':\n case 'csEnter':\n case 'shiftSpace':\n case 'ctrlSpace':\n _this.toggleSelect(focusedNode, e);\n break;\n case 'f2':\n if (_this.allowEditing && !focusedNode.classList.contains('e-disable')) {\n _this.createTextbox(focusedNode, e);\n }\n break;\n case 'ctrlA':\n if (_this.allowMultiSelection) {\n var sNodes = selectAll('.' + LISTITEM + ':not(.' + ACTIVE + ')', _this.element);\n _this.selectGivenNodes(sNodes);\n }\n break;\n }\n }\n });\n };\n TreeView.prototype.navigateToFocus = function (isUp) {\n var focusNode = this.getFocusedNode().querySelector('.' + TEXTWRAP);\n var pos = focusNode.getBoundingClientRect();\n var parent = this.getScrollParent(this.element);\n if (!isNOU(parent)) {\n var parentPos = parent.getBoundingClientRect();\n if (pos.bottom > parentPos.bottom) {\n parent.scrollTop += pos.bottom - parentPos.bottom;\n }\n else if (pos.top < parentPos.top) {\n parent.scrollTop -= parentPos.top - pos.top;\n }\n }\n var isVisible = this.isVisibleInViewport(focusNode);\n if (!isVisible) {\n focusNode.scrollIntoView(isUp);\n }\n };\n TreeView.prototype.isVisibleInViewport = function (txtWrap) {\n var pos = txtWrap.getBoundingClientRect();\n return (pos.top >= 0 && pos.left >= 0 && pos.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&\n pos.right <= (window.innerWidth || document.documentElement.clientWidth));\n };\n TreeView.prototype.getScrollParent = function (node) {\n if (isNOU(node)) {\n return null;\n }\n return (node.scrollHeight > node.clientHeight) ? node : this.getScrollParent(node.parentElement);\n };\n TreeView.prototype.shiftKeySelect = function (isTowards, e) {\n if (this.allowMultiSelection) {\n var focusedNode = this.getFocusedNode();\n var nextNode = isTowards ? this.getNextNode(focusedNode) : this.getPrevNode(focusedNode);\n this.removeHover();\n this.setFocusElement(nextNode);\n this.toggleSelect(nextNode, e, false);\n this.navigateToFocus(!isTowards);\n }\n else {\n this.navigateNode(isTowards);\n }\n };\n TreeView.prototype.checkNode = function (e) {\n var focusedNode = this.getFocusedNode();\n var checkWrap = select('.' + CHECKBOXWRAP, focusedNode);\n var isChecked = select(' .' + CHECKBOXFRAME, checkWrap).classList.contains(CHECK);\n if (!focusedNode.classList.contains('e-disable')) {\n if (focusedNode.getElementsByClassName(\"e-checkbox-disabled\").length == 0) {\n this.validateCheckNode(checkWrap, isChecked, focusedNode, e);\n }\n }\n };\n TreeView.prototype.validateCheckNode = function (checkWrap, isCheck, li, e) {\n var _this = this;\n var currLi = closest(checkWrap, '.' + LISTITEM);\n this.checkActionNodes = [];\n var ariaState = !isCheck ? 'true' : 'false';\n if (!isNOU(ariaState)) {\n checkWrap.setAttribute('aria-checked', ariaState);\n }\n var eventArgs = this.getCheckEvent(currLi, isCheck ? 'uncheck' : 'check', e);\n this.trigger('nodeChecking', eventArgs, function (observedArgs) {\n if (!observedArgs.cancel) {\n _this.nodeCheckingAction(checkWrap, isCheck, li, observedArgs, e);\n }\n });\n };\n TreeView.prototype.nodeCheckingAction = function (checkWrap, isCheck, li, eventArgs, e) {\n if (this.checkedElement.indexOf(li.getAttribute('data-uid')) === -1) {\n this.checkedElement.push(li.getAttribute('data-uid'));\n if (this.autoCheck) {\n var child = this.getChildNodes(this.treeData, li.getAttribute('data-uid'));\n (child !== null) ? this.allCheckNode(child, this.checkedElement, null, null, false) : child = null;\n }\n }\n this.changeState(checkWrap, isCheck ? 'uncheck' : 'check', e, true);\n if (this.autoCheck) {\n this.ensureChildCheckState(li);\n this.ensureParentCheckState(closest(closest(li, '.' + PARENTITEM), '.' + LISTITEM));\n var doCheck = void 0;\n if (eventArgs.action === 'check') {\n doCheck = true;\n }\n else if (eventArgs.action === 'uncheck') {\n doCheck = false;\n }\n this.ensureStateChange(li, doCheck);\n }\n this.nodeCheckedEvent(checkWrap, isCheck, e);\n };\n /**\n * Update checkedNodes when UI interaction happens before the child node renders in DOM\n */\n TreeView.prototype.ensureStateChange = function (li, doCheck) {\n var childElement = select('.' + PARENTITEM, li);\n var parentIndex = li.getAttribute('data-uid');\n var mapper = this.fields;\n if (this.dataType === 1 && this.autoCheck) {\n var resultData = new DataManager(this.treeData).executeLocal(new Query().where(mapper.parentID, 'equal', parentIndex, true));\n for (var i = 0; i < resultData.length; i++) {\n var resultId = resultData[i][this.fields.id] ? resultData[i][this.fields.id].toString() : null;\n var isCheck = resultData[i][this.fields.isChecked] ? resultData[i][this.fields.isChecked].toString() : null;\n if (this.checkedNodes.indexOf(parentIndex) !== -1 && this.checkedNodes.indexOf(resultId) === -1) {\n this.checkedNodes.push(resultId);\n var childItems = this.getChildNodes(this.treeData, resultId);\n this.getChildItems(childItems, doCheck);\n if (this.parentNodeCheck.indexOf(resultId) !== -1) {\n this.parentNodeCheck.splice(this.parentNodeCheck.indexOf(resultId), 1);\n }\n }\n else if (this.checkedNodes.indexOf(parentIndex) === -1 && childElement === null &&\n this.checkedNodes.indexOf(resultId) !== -1) {\n this.checkedNodes.splice(this.checkedNodes.indexOf(resultId), 1);\n if (isCheck === 'true') {\n this.updateField(this.treeData, this.fields, resultId, 'isChecked', null);\n }\n if (this.checkedNodes.indexOf(parentIndex) === -1 && childElement === null ||\n this.parentNodeCheck.indexOf(resultId) !== -1) {\n var childNodes = this.getChildNodes(this.treeData, resultId);\n this.getChildItems(childNodes, doCheck);\n if (this.parentNodeCheck.indexOf(resultId) !== -1) {\n this.parentNodeCheck.splice(this.parentNodeCheck.indexOf(resultId), 1);\n }\n }\n }\n else {\n var childItems = this.getChildNodes(this.treeData, resultId);\n this.getChildItems(childItems, doCheck);\n }\n }\n }\n else if (this.dataType === 1 && !this.autoCheck) {\n if (!doCheck) {\n var checkedData = new DataManager(this.treeData).executeLocal(new Query().where(mapper.isChecked, 'equal', true, false));\n for (var i = 0; i < checkedData.length; i++) {\n var id = checkedData[i][this.fields.id] ? checkedData[i][this.fields.id].toString() : null;\n if (this.checkedNodes.indexOf(id) !== -1) {\n this.checkedNodes.splice(this.checkedNodes.indexOf(id), 1);\n }\n this.updateField(this.treeData, this.fields, id, 'isChecked', null);\n }\n this.checkedNodes = [];\n }\n else {\n for (var i = 0; i < this.treeData.length; i++) {\n var checkedId = this.treeData[i][this.fields.id] ? this.treeData[i][this.fields.id].toString() : null;\n if (this.checkedNodes.indexOf(checkedId) === -1) {\n this.checkedNodes.push(checkedId);\n }\n }\n }\n }\n else {\n var childItems = this.getChildNodes(this.treeData, parentIndex);\n if (childItems) {\n this.childStateChange(childItems, parentIndex, childElement, doCheck);\n }\n }\n };\n TreeView.prototype.getChildItems = function (childItems, doCheck) {\n for (var i = 0; i < childItems.length; i++) {\n var childId = childItems[i][this.fields.id] ? childItems[i][this.fields.id].toString() : null;\n var childIsCheck = childItems[i][this.fields.isChecked] ? childItems[i][this.fields.isChecked].toString() :\n null;\n if (this.checkedNodes.indexOf(childId) !== -1 && !doCheck) {\n this.checkedNodes.splice(this.checkedNodes.indexOf(childId), 1);\n }\n if (this.checkedNodes.indexOf(childId) === -1 && doCheck) {\n this.checkedNodes.push(childId);\n }\n if (childIsCheck === 'true' && !doCheck) {\n this.updateField(this.treeData, this.fields, childId, 'isChecked', null);\n }\n var subChildItems = this.getChildNodes(this.treeData, childId);\n if (subChildItems.length > 0) {\n this.getChildItems(subChildItems, doCheck);\n }\n }\n };\n /**\n * Update checkedNodes when UI interaction happens before the child node renders in DOM for hierarchical DS\n */\n TreeView.prototype.childStateChange = function (childItems, parent, childElement, doCheck) {\n for (var i = 0; i < childItems.length; i++) {\n var checkedChild = childItems[i][this.fields.id] ? childItems[i][this.fields.id].toString() : '';\n var isCheck = childItems[i][this.fields.isChecked] ? childItems[i][this.fields.isChecked].toString() : null;\n if (this.autoCheck) {\n if (this.checkedNodes.indexOf(parent) !== -1 && this.checkedNodes.indexOf(checkedChild) === -1) {\n this.checkedNodes.push(checkedChild);\n if (this.parentNodeCheck.indexOf(checkedChild) !== -1) {\n this.parentNodeCheck.splice(this.parentNodeCheck.indexOf(checkedChild), 1);\n }\n }\n else if (this.checkedNodes.indexOf(parent) === -1 && this.checkedNodes.indexOf(checkedChild) !== -1 && !doCheck) {\n this.checkedNodes.splice(this.checkedNodes.indexOf(checkedChild), 1);\n if (isCheck === 'true') {\n this.updateField(this.treeData, this.fields, checkedChild, 'isChecked', null);\n }\n }\n }\n else if (!this.autoCheck) {\n if (!doCheck) {\n if (this.checkedNodes.indexOf(checkedChild) !== -1) {\n this.checkedNodes.splice(this.checkedNodes.indexOf(checkedChild), 1);\n }\n this.updateField(this.treeData, this.fields, checkedChild, 'isChecked', null);\n this.checkedNodes = [];\n }\n else {\n if (this.checkedNodes.indexOf(checkedChild) === -1) {\n this.checkedNodes.push(checkedChild);\n }\n }\n }\n var subChild = this.getChildNodes([childItems[i]], checkedChild);\n if (subChild) {\n this.childStateChange(subChild, parent, childElement, doCheck);\n }\n }\n };\n //This method can be used to get all child nodes of a parent by passing the children of a parent along with 'validateCheck' set to false\n TreeView.prototype.allCheckNode = function (child, newCheck, checked, childCheck, validateCheck) {\n if (child) {\n for (var length_1 = 0; length_1 < child.length; length_1++) {\n var childId = getValue(this.fields.id, child[length_1]);\n var check = this.element.querySelector('[data-uid=\"' + childId + '\"]');\n //Validates isChecked case while no UI interaction has been performed on the node or it's parent\n if (validateCheck !== false && this.checkedElement.indexOf(childId.toString()) === -1) {\n if (((check === null && !isNOU(child[length_1][this.fields.isChecked]) && newCheck.indexOf(childId.toString()) === -1)\n || childCheck === 0 || checked === 2)) {\n (child[length_1][this.fields.isChecked] !== false || checked === 2) ? newCheck.push(childId.toString())\n : childCheck = null;\n childCheck = (child[length_1][this.fields.isChecked] !== false || checked === 2) ? 0 : null;\n }\n }\n //Pushes child checked node done thro' UI interaction\n if (newCheck.indexOf(childId.toString()) === -1 && isNOU(checked)) {\n newCheck.push(childId.toString());\n }\n var hierChildId = getValue(this.fields.child.toString(), child[length_1]);\n //Gets if any next level children are available for child nodes\n if (getValue(this.fields.hasChildren, child[length_1]) === true || hierChildId) {\n var id = getValue(this.fields.id, child[length_1]);\n var childId_1 = void 0;\n if (this.dataType === 1) {\n childId_1 = this.getChildNodes(this.treeData, id.toString());\n }\n else {\n childId_1 = hierChildId;\n }\n if (childId_1) {\n (isNOU(validateCheck)) ? this.allCheckNode(childId_1, newCheck, checked, childCheck) :\n this.allCheckNode(childId_1, newCheck, checked, childCheck, validateCheck);\n childCheck = null;\n }\n }\n childCheck = null;\n }\n }\n };\n TreeView.prototype.openNode = function (toBeOpened, e) {\n var focusedNode = this.getFocusedNode();\n var icon = select('div.' + ICON, focusedNode);\n if (toBeOpened) {\n if (!icon) {\n return;\n }\n else if (icon.classList.contains(EXPANDABLE)) {\n this.expandAction(focusedNode, icon, e);\n }\n else {\n this.focusNextNode(focusedNode, true);\n }\n }\n else {\n if (icon && icon.classList.contains(COLLAPSIBLE)) {\n this.collapseNode(focusedNode, icon, e);\n }\n else {\n var parentLi = closest(closest(focusedNode, '.' + PARENTITEM), '.' + LISTITEM);\n if (!parentLi) {\n return;\n }\n else {\n if (!parentLi.classList.contains('e-disable')) {\n this.setFocus(focusedNode, parentLi);\n this.navigateToFocus(true);\n }\n }\n }\n }\n };\n TreeView.prototype.navigateNode = function (isTowards) {\n var focusedNode = this.getFocusedNode();\n this.focusNextNode(focusedNode, isTowards);\n };\n TreeView.prototype.navigateRootNode = function (isBackwards) {\n var focusedNode = this.getFocusedNode();\n var rootNode = isBackwards ? this.getRootNode() : this.getEndNode();\n if (!rootNode.classList.contains('e-disable')) {\n this.setFocus(focusedNode, rootNode);\n this.navigateToFocus(isBackwards);\n }\n };\n TreeView.prototype.getFocusedNode = function () {\n var selectedItem;\n var fNode = select('.' + LISTITEM + '[tabindex=\"0\"]', this.element);\n if (isNOU(fNode)) {\n selectedItem = select('.' + LISTITEM, this.element);\n }\n return isNOU(fNode) ? (isNOU(selectedItem) ? this.element.firstElementChild : selectedItem) : fNode;\n };\n TreeView.prototype.focusNextNode = function (li, isTowards) {\n var nextNode = isTowards ? this.getNextNode(li) : this.getPrevNode(li);\n this.setFocus(li, nextNode);\n this.navigateToFocus(!isTowards);\n if (nextNode.classList.contains('e-disable')) {\n var lastChild = nextNode.lastChild;\n if (nextNode.previousSibling == null && nextNode.classList.contains('e-level-1')) {\n this.focusNextNode(nextNode, true);\n }\n else if (nextNode.nextSibling == null && nextNode.classList.contains('e-node-collapsed')) {\n this.focusNextNode(nextNode, false);\n }\n else if (nextNode.nextSibling == null && lastChild.classList.contains(TEXTWRAP)) {\n this.focusNextNode(nextNode, false);\n }\n else {\n this.focusNextNode(nextNode, isTowards);\n }\n }\n };\n TreeView.prototype.getNextNode = function (li) {\n var index = this.liList.indexOf(li);\n var nextNode;\n do {\n index++;\n nextNode = this.liList[index];\n if (isNOU(nextNode)) {\n return li;\n }\n } while (!isVisible(nextNode));\n return nextNode;\n };\n TreeView.prototype.getPrevNode = function (li) {\n var index = this.liList.indexOf(li);\n var prevNode;\n do {\n index--;\n prevNode = this.liList[index];\n if (isNOU(prevNode)) {\n return li;\n }\n } while (!isVisible(prevNode));\n return prevNode;\n };\n TreeView.prototype.getRootNode = function () {\n var index = 0;\n var rootNode;\n do {\n rootNode = this.liList[index];\n index++;\n } while (!isVisible(rootNode));\n return rootNode;\n };\n TreeView.prototype.getEndNode = function () {\n var index = this.liList.length - 1;\n var endNode;\n do {\n endNode = this.liList[index];\n index--;\n } while (!isVisible(endNode));\n return endNode;\n };\n TreeView.prototype.setFocus = function (preNode, nextNode) {\n removeClass([preNode], FOCUS);\n preNode.setAttribute(\"tabindex\", \"-1\");\n if (!nextNode.classList.contains('e-disable') && !nextNode.classList.contains(PREVENTSELECT)) {\n addClass([nextNode], FOCUS);\n nextNode.setAttribute('tabindex', '0');\n nextNode.focus();\n EventHandler.add(nextNode, 'blur', this.focusOut, this);\n this.updateIdAttr(preNode, nextNode);\n }\n };\n TreeView.prototype.updateIdAttr = function (preNode, nextNode) {\n this.element.removeAttribute('aria-activedescendant');\n if (preNode) {\n preNode.removeAttribute('id');\n }\n nextNode.setAttribute('id', this.element.id + '_active');\n this.element.setAttribute('aria-activedescendant', this.element.id + '_active');\n };\n TreeView.prototype.focusIn = function () {\n if (!this.mouseDownStatus) {\n var focusedElement = this.getFocusedNode();\n focusedElement.setAttribute(\"tabindex\", \"0\");\n addClass([focusedElement], FOCUS);\n EventHandler.add(focusedElement, 'blur', this.focusOut, this);\n }\n this.mouseDownStatus = false;\n };\n TreeView.prototype.focusOut = function (event) {\n var focusedElement = this.getFocusedNode();\n if (event.target == focusedElement) {\n removeClass([focusedElement], FOCUS);\n EventHandler.remove(focusedElement, 'blur', this.focusOut);\n }\n };\n TreeView.prototype.onMouseOver = function (e) {\n var target = e.target;\n var classList = target.classList;\n var currentLi = closest(target, '.' + LISTITEM);\n if (!currentLi || classList.contains(PARENTITEM) || classList.contains(LISTITEM)) {\n this.removeHover();\n return;\n }\n else {\n if (currentLi && !currentLi.classList.contains('e-disable')) {\n this.setHover(currentLi);\n }\n }\n };\n TreeView.prototype.setHover = function (li) {\n if (!li.classList.contains(HOVER) && !li.classList.contains(PREVENTSELECT)) {\n this.removeHover();\n addClass([li], HOVER);\n }\n };\n ;\n TreeView.prototype.onMouseLeave = function (e) {\n this.removeHover();\n };\n TreeView.prototype.removeHover = function () {\n var hoveredNode = selectAll('.' + HOVER, this.element);\n if (hoveredNode && hoveredNode.length) {\n removeClass(hoveredNode, HOVER);\n }\n };\n ;\n TreeView.prototype.getNodeData = function (currLi, fromDS) {\n if (!isNOU(currLi) && currLi.classList.contains(LISTITEM) &&\n !isNOU(closest(currLi, '.' + CONTROL)) && closest(currLi, '.' + CONTROL).classList.contains(ROOT)) {\n var id = currLi.getAttribute('data-uid');\n var text = this.getText(currLi, fromDS);\n var pNode = closest(currLi.parentNode, '.' + LISTITEM);\n var pid = pNode ? pNode.getAttribute('data-uid') : null;\n var selected = currLi.classList.contains(ACTIVE);\n var selectable = currLi.classList.contains(PREVENTSELECT) ? false : true;\n var expanded = (currLi.getAttribute('aria-expanded') === 'true') ? true : false;\n var hasChildren = currLi.getAttribute('aria-expanded') !== null ? true : (select('.' + EXPANDABLE, currLi) || select('.' + COLLAPSIBLE, currLi)) != null ? true : false;\n var checked = null;\n var checkboxElement = select('.' + CHECKBOXWRAP, currLi);\n if (this.showCheckBox && checkboxElement) {\n checked = checkboxElement.getAttribute('aria-checked');\n }\n return {\n id: id, text: text, parentID: pid, selected: selected, selectable: selectable, expanded: expanded,\n isChecked: checked, hasChildren: hasChildren\n };\n }\n return { id: '', text: '', parentID: '', selected: false, expanded: false, isChecked: '', hasChildren: false };\n };\n TreeView.prototype.getText = function (currLi, fromDS) {\n if (fromDS) {\n var nodeData = this.getNodeObject(currLi.getAttribute('data-uid'));\n var level = parseFloat(currLi.getAttribute('aria-level'));\n var nodeFields = this.getFields(this.fields, level, 1);\n return getValue(nodeFields.text, nodeData);\n }\n return select('.' + LISTTEXT, currLi).textContent;\n };\n TreeView.prototype.getExpandEvent = function (currLi, e) {\n var nodeData = this.getNodeData(currLi);\n return { cancel: false, isInteracted: isNOU(e) ? false : true, node: currLi, nodeData: nodeData, event: e };\n };\n TreeView.prototype.renderNodeTemplate = function (data, textEle, dataId) {\n var tempArr = this.nodeTemplateFn(data, this, 'nodeTemplate' + dataId, this.element.id + 'nodeTemplate', this.isStringTemplate, undefined, textEle, this.root);\n if (tempArr) {\n tempArr = Array.prototype.slice.call(tempArr);\n append(tempArr, textEle);\n }\n };\n TreeView.prototype.destroyTemplate = function (liEle) {\n this.clearTemplate(['nodeTemplate' + liEle.getAttribute('data-uid')]);\n };\n TreeView.prototype.reRenderNodes = function () {\n this.updateListProp(this.fields);\n if (Browser.isIE) {\n this.ulElement = this.element.querySelector('.e-list-parent.e-ul');\n this.ulElement.parentElement.removeChild(this.ulElement);\n }\n else {\n this.element.innerHTML = '';\n }\n if (!isNOU(this.nodeTemplateFn)) {\n this.clearTemplate();\n }\n this.setTouchClass();\n this.setProperties({ selectedNodes: [], checkedNodes: [], expandedNodes: [] }, true);\n this.checkedElement = [];\n this.isLoaded = false;\n this.setDataBinding(true);\n };\n TreeView.prototype.setCssClass = function (oldClass, newClass) {\n if (!isNOU(oldClass) && oldClass !== '') {\n removeClass([this.element], oldClass.split(' '));\n }\n if (!isNOU(newClass) && newClass !== '') {\n addClass([this.element], newClass.split(' '));\n }\n };\n TreeView.prototype.editingHandler = function (e) {\n var target = e.target;\n if (!target || target.classList.contains(ROOT) || target.classList.contains(PARENTITEM) ||\n target.classList.contains(LISTITEM) || target.classList.contains(ICON) ||\n target.classList.contains(INPUT) || target.classList.contains(INPUTGROUP)) {\n return;\n }\n else {\n var liEle = closest(target, '.' + LISTITEM);\n this.createTextbox(liEle, e);\n }\n };\n TreeView.prototype.createTextbox = function (liEle, e) {\n var _this = this;\n var oldInpEle = select('.' + TREEINPUT, this.element);\n if (oldInpEle) {\n oldInpEle.blur();\n }\n var textEle = select('.' + LISTTEXT, liEle);\n this.updateOldText(liEle);\n var innerEle = this.createElement('input', { className: TREEINPUT, attrs: { value: this.oldText } });\n var eventArgs = this.getEditEvent(liEle, null, innerEle.outerHTML);\n this.trigger('nodeEditing', eventArgs, function (observedArgs) {\n if (!observedArgs.cancel) {\n var inpWidth = textEle.offsetWidth + 5;\n var style_1 = 'width:' + inpWidth + 'px';\n addClass([liEle], EDITING);\n if (!isNOU(_this.nodeTemplateFn)) {\n _this.destroyTemplate(liEle);\n }\n if (_this.isReact) {\n setTimeout(function () {\n _this.renderTextBox(eventArgs, textEle, style_1);\n }, 5);\n }\n else {\n _this.renderTextBox(eventArgs, textEle, style_1);\n }\n }\n });\n };\n TreeView.prototype.renderTextBox = function (eventArgs, textEle, style) {\n textEle.innerHTML = eventArgs.innerHtml;\n var inpEle = select('.' + TREEINPUT, textEle);\n this.inputObj = Input.createInput({\n element: inpEle,\n properties: {\n enableRtl: this.enableRtl,\n }\n }, this.createElement);\n this.inputObj.container.setAttribute('style', style);\n inpEle.focus();\n var inputEle = inpEle;\n inputEle.setSelectionRange(0, inputEle.value.length);\n this.wireInputEvents(inpEle);\n };\n TreeView.prototype.updateOldText = function (liEle) {\n var id = liEle.getAttribute('data-uid');\n this.editData = this.getNodeObject(id);\n var level = parseFloat(liEle.getAttribute('aria-level'));\n this.editFields = this.getFields(this.fields, level, 1);\n this.oldText = getValue(this.editFields.text, this.editData);\n };\n TreeView.prototype.inputFocusOut = function (e) {\n if (!select('.' + TREEINPUT, this.element)) {\n return;\n }\n var target = e.target;\n var newText = target.value;\n var txtEle = closest(target, '.' + LISTTEXT);\n var liEle = closest(target, '.' + LISTITEM);\n detach(this.inputObj.container);\n if (this.fields.dataSource instanceof DataManager && !this.isOffline) {\n this.crudOperation('update', null, liEle, newText, null, null, true);\n }\n else {\n this.appendNewText(liEle, txtEle, newText, true);\n }\n };\n TreeView.prototype.appendNewText = function (liEle, txtEle, newText, isInput) {\n var _this = this;\n var eventArgs = this.getEditEvent(liEle, newText, null);\n this.trigger('nodeEdited', eventArgs, function (observedArgs) {\n newText = observedArgs.cancel ? observedArgs.oldText : observedArgs.newText;\n _this.updateText(liEle, txtEle, newText, isInput);\n if (observedArgs.oldText !== newText) {\n _this.triggerEvent('nodeEdited', [_this.getNode(liEle)]);\n }\n });\n };\n TreeView.prototype.updateText = function (liEle, txtEle, newText, isInput) {\n var newData = setValue(this.editFields.text, newText, this.editData);\n if (!isNOU(this.nodeTemplateFn)) {\n txtEle.innerText = '';\n var dataId = liEle.getAttribute('data-uid');\n this.renderNodeTemplate(newData, txtEle, dataId);\n this.renderReactTemplates();\n }\n else {\n this.enableHtmlSanitizer ? txtEle.innerText = newText : txtEle.innerHTML = newText;\n }\n if (isInput) {\n removeClass([liEle], EDITING);\n liEle.focus();\n EventHandler.add(liEle, 'blur', this.focusOut, this);\n addClass([liEle], FOCUS);\n }\n if (this.allowTextWrap) {\n this.calculateWrap(liEle);\n }\n };\n TreeView.prototype.getElement = function (ele) {\n if (isNOU(ele)) {\n return null;\n }\n else if (typeof ele === 'string') {\n return this.element.querySelector('[data-uid=\"' + ele + '\"]');\n }\n else if (typeof ele === 'object') {\n return getElement(ele);\n }\n else {\n return null;\n }\n };\n TreeView.prototype.getId = function (ele) {\n if (isNOU(ele)) {\n return null;\n }\n else if (typeof ele === 'string') {\n return ele;\n }\n else if (typeof ele === 'object') {\n return (getElement(ele)).getAttribute('data-uid');\n }\n else {\n return null;\n }\n };\n TreeView.prototype.getEditEvent = function (liEle, newText, inpEle) {\n var data = this.getNodeData(liEle);\n return { cancel: false, newText: newText, node: liEle, nodeData: data, oldText: this.oldText, innerHtml: inpEle };\n };\n TreeView.prototype.getNodeObject = function (id) {\n var childNodes;\n if (isNOU(id)) {\n return childNodes;\n }\n else if (this.dataType === 1) {\n for (var i = 0, objlen = this.treeData.length; i < objlen; i++) {\n var dataId = getValue(this.fields.id, this.treeData[i]);\n if (!isNOU(this.treeData[i]) && !isNOU(dataId) && dataId.toString() === id) {\n return this.treeData[i];\n }\n }\n }\n else {\n return this.getChildNodeObject(this.treeData, this.fields, id);\n }\n return childNodes;\n };\n TreeView.prototype.getChildNodeObject = function (obj, mapper, id) {\n var newList;\n if (isNOU(obj)) {\n return newList;\n }\n for (var i = 0, objlen = obj.length; i < objlen; i++) {\n var dataId = getValue(mapper.id, obj[i]);\n if (obj[i] && dataId && dataId.toString() === id) {\n return obj[i];\n }\n else if (typeof mapper.child === 'string' && !isNOU(getValue(mapper.child, obj[i]))) {\n var childData = getValue(mapper.child, obj[i]);\n newList = this.getChildNodeObject(childData, this.getChildMapper(mapper), id);\n if (newList !== undefined) {\n break;\n }\n }\n else if (this.fields.dataSource instanceof DataManager && !isNOU(getValue('child', obj[i]))) {\n var child = 'child';\n newList = this.getChildNodeObject(getValue(child, obj[i]), this.getChildMapper(mapper), id);\n if (newList !== undefined) {\n break;\n }\n }\n }\n return newList;\n };\n TreeView.prototype.setDragAndDrop = function (toBind) {\n if (toBind && !this.disabled) {\n this.initializeDrag();\n }\n else {\n this.destroyDrag();\n }\n };\n TreeView.prototype.initializeDrag = function () {\n var _this = this;\n var virtualEle;\n var proxy = this;\n this.dragObj = new Draggable(this.element, {\n enableTailMode: true, enableAutoScroll: true,\n dragArea: this.dragArea,\n dragTarget: '.' + TEXTWRAP,\n enableTapHold: true,\n tapHoldThreshold: 100,\n helper: function (e) {\n _this.dragTarget = e.sender.target;\n var dragRoot = closest(_this.dragTarget, '.' + ROOT);\n var dragWrap = closest(_this.dragTarget, '.' + TEXTWRAP);\n _this.dragLi = closest(_this.dragTarget, '.' + LISTITEM);\n if (_this.fullRowSelect && !dragWrap && _this.dragTarget.classList.contains(FULLROW)) {\n dragWrap = _this.dragTarget.nextElementSibling;\n }\n if (!_this.dragTarget || !e.element.isSameNode(dragRoot) || !dragWrap ||\n _this.dragTarget.classList.contains(ROOT) || _this.dragTarget.classList.contains(PARENTITEM) ||\n _this.dragTarget.classList.contains(LISTITEM) || _this.dragLi.classList.contains('e-disable')) {\n return false;\n }\n var cloneEle = (dragWrap.cloneNode(true));\n if (isNOU(select('div.' + ICON, cloneEle))) {\n var icon = proxy.createElement('div', { className: ICON + ' ' + EXPANDABLE });\n cloneEle.insertBefore(icon, cloneEle.children[0]);\n }\n var cssClass = DRAGITEM + ' ' + ROOT + ' ' + _this.cssClass + ' ' + (_this.enableRtl ? RTL : '');\n virtualEle = proxy.createElement('div', { className: cssClass });\n virtualEle.appendChild(cloneEle);\n var nLen = _this.selectedNodes.length;\n if (nLen > 1 && _this.allowMultiSelection && _this.dragLi.classList.contains(ACTIVE)) {\n var cNode = proxy.createElement('span', { className: DROPCOUNT, innerHTML: '' + nLen });\n virtualEle.appendChild(cNode);\n }\n document.body.appendChild(virtualEle);\n document.body.style.cursor = '';\n _this.dragData = _this.getNodeData(_this.dragLi);\n return virtualEle;\n },\n dragStart: function (e) {\n addClass([_this.element], DRAGGING);\n var listItem = closest(e.target, '.e-list-item');\n var level;\n if (listItem) {\n level = parseInt(listItem.getAttribute('aria-level'), 10);\n }\n var eventArgs = _this.getDragEvent(e.event, _this, null, e.target, null, virtualEle, level);\n if (eventArgs.draggedNode.classList.contains(EDITING)) {\n _this.dragObj.intDestroy(e.event);\n _this.dragCancelAction(virtualEle);\n }\n else {\n _this.trigger('nodeDragStart', eventArgs, function (observedArgs) {\n if (observedArgs.cancel) {\n _this.dragObj.intDestroy(e.event);\n _this.dragCancelAction(virtualEle);\n }\n else {\n _this.dragStartAction = true;\n }\n });\n }\n },\n drag: function (e) {\n _this.dragObj.setProperties({ cursorAt: { top: (!isNOU(e.event.targetTouches) || Browser.isDevice) ? 60 : -20 } });\n _this.dragAction(e, virtualEle);\n },\n dragStop: function (e) {\n removeClass([_this.element], DRAGGING);\n _this.removeVirtualEle();\n var dropTarget = e.target;\n var preventTargetExpand = false;\n var dropRoot = (closest(dropTarget, '.' + DROPPABLE));\n var isHelperElement = true;\n if (!dropTarget || !dropRoot) {\n detach(e.helper);\n document.body.style.cursor = '';\n isHelperElement = false;\n }\n var listItem = closest(dropTarget, '.e-list-item');\n var level;\n if (listItem) {\n level = parseInt(listItem.getAttribute('aria-level'), 10);\n }\n var eventArgs = _this.getDragEvent(e.event, _this, dropTarget, dropTarget, null, e.helper, level);\n eventArgs.preventTargetExpand = preventTargetExpand;\n _this.trigger('nodeDragStop', eventArgs, function (observedArgs) {\n _this.dragParent = observedArgs.draggedParentNode;\n _this.preventExpand = observedArgs.preventTargetExpand;\n if (observedArgs.cancel) {\n if (e.helper.parentNode) {\n detach(e.helper);\n }\n document.body.style.cursor = '';\n isHelperElement = false;\n }\n _this.dragStartAction = false;\n });\n }\n });\n this.dropObj = new Droppable(this.element, {\n out: function (e) {\n if (!isNOU(e) && !e.target.classList.contains(SIBLING) && (_this.dropObj.dragData.default && _this.dropObj.dragData.default.helper.classList.contains(ROOT))) {\n document.body.style.cursor = 'not-allowed';\n }\n },\n over: function (e) {\n document.body.style.cursor = '';\n },\n drop: function (e) {\n _this.dropAction(e);\n }\n });\n };\n TreeView.prototype.dragCancelAction = function (virtualEle) {\n detach(virtualEle);\n removeClass([this.element], DRAGGING);\n this.dragStartAction = false;\n };\n TreeView.prototype.dragAction = function (e, virtualEle) {\n var dropRoot = closest(e.target, '.' + DROPPABLE);\n var dropWrap = closest(e.target, '.' + TEXTWRAP);\n var icon = select('div.' + ICON, virtualEle);\n removeClass([icon], [DROPIN, DROPNEXT, DROPOUT, NODROP]);\n this.removeVirtualEle();\n document.body.style.cursor = '';\n var classList = e.target.classList;\n if (this.fullRowSelect && !dropWrap && !isNOU(classList) && classList.contains(FULLROW)) {\n dropWrap = e.target.nextElementSibling;\n }\n if (dropRoot) {\n var dropLi = closest(e.target, '.' + LISTITEM);\n var checkWrapper = closest(e.target, '.' + CHECKBOXWRAP);\n var collapse = closest(e.target, '.' + COLLAPSIBLE);\n var expand = closest(e.target, '.' + EXPANDABLE);\n if (!dropRoot.classList.contains(ROOT) || (dropWrap &&\n (!dropLi.isSameNode(this.dragLi) && !this.isDescendant(this.dragLi, dropLi)))) {\n if (this.hasTemplate && dropLi) {\n var templateTarget = select(this.fullRowSelect ? '.' + FULLROW : '.' + TEXTWRAP, dropLi);\n if ((e && (!expand && !collapse) && e.event.offsetY < 7 && !checkWrapper) || (((expand && e.event.offsetY < 5) || (collapse && e.event.offsetX < 3)))) {\n var index = this.fullRowSelect ? (1) : (0);\n this.appendIndicator(dropLi, icon, index);\n }\n else if ((e && (!expand && !collapse) && !checkWrapper && templateTarget && e.event.offsetY > templateTarget.offsetHeight - 10) || ((expand && e.event.offsetY > 19) || (collapse && e.event.offsetX > 19))) {\n var index = this.fullRowSelect ? (2) : (1);\n this.appendIndicator(dropLi, icon, index);\n }\n else {\n addClass([icon], DROPIN);\n }\n }\n else {\n if ((dropLi && e && (!expand && !collapse) && (e.event.offsetY < 7) && !checkWrapper) || (((expand && e.event.offsetY < 5) || (collapse && e.event.offsetX < 3)))) {\n var index = this.fullRowSelect ? (1) : (0);\n this.appendIndicator(dropLi, icon, index);\n }\n else if ((dropLi && e && (!expand && !collapse) && (e.target.offsetHeight > 0 && e.event.offsetY > (e.target.offsetHeight - 10)) && !checkWrapper) || (((expand && e.event.offsetY > 19) || (collapse && e.event.offsetX > 19)))) {\n var index = this.fullRowSelect ? (2) : (1);\n this.appendIndicator(dropLi, icon, index);\n }\n else {\n addClass([icon], DROPIN);\n }\n }\n }\n else if (e.target.nodeName === 'LI' && (!dropLi.isSameNode(this.dragLi) && !this.isDescendant(this.dragLi, dropLi))) {\n addClass([icon], DROPNEXT);\n this.renderVirtualEle(e);\n }\n else if (e.target.classList.contains(SIBLING)) {\n addClass([icon], DROPNEXT);\n }\n else {\n addClass([icon], DROPOUT);\n }\n }\n else {\n addClass([icon], NODROP);\n document.body.style.cursor = 'not-allowed';\n }\n var listItem = closest(e.target, '.e-list-item');\n var level;\n if (listItem) {\n level = parseInt(listItem.getAttribute('aria-level'), 10);\n }\n var eventArgs = this.getDragEvent(e.event, this, e.target, e.target, null, virtualEle, level);\n if (eventArgs.dropIndicator) {\n removeClass([icon], eventArgs.dropIndicator);\n }\n this.trigger('nodeDragging', eventArgs);\n if (eventArgs.dropIndicator) {\n addClass([icon], eventArgs.dropIndicator);\n }\n };\n TreeView.prototype.appendIndicator = function (dropLi, icon, index) {\n addClass([icon], DROPNEXT);\n var virEle = this.createElement('div', { className: SIBLING });\n dropLi.insertBefore(virEle, dropLi.children[index]);\n };\n /* eslint-disable */\n TreeView.prototype.dropAction = function (e) {\n var offsetY = e.event.offsetY;\n var dropTarget = e.target;\n var dragObj;\n var level;\n var drop = false;\n var dragInstance;\n var nodeData = [];\n var liArray = [];\n dragInstance = e.dragData.draggable;\n for (var i_1 = 0; i_1 < dragInstance.ej2_instances.length; i_1++) {\n if (dragInstance.ej2_instances[i_1] instanceof TreeView_1) {\n dragObj = dragInstance.ej2_instances[i_1];\n break;\n }\n }\n if (dragObj && dragObj.dragTarget) {\n var dragTarget = dragObj.dragTarget;\n var dragLi = (closest(dragTarget, '.' + LISTITEM));\n var dropLi = (closest(dropTarget, '.' + LISTITEM));\n liArray.push(dragLi);\n if (dropLi == null && dropTarget.classList.contains(ROOT)) {\n dropLi = dropTarget.firstElementChild;\n }\n detach(e.droppedElement);\n document.body.style.cursor = '';\n if (!dropLi || dropLi.isSameNode(dragLi) || this.isDescendant(dragLi, dropLi)) {\n if (this.fields.dataSource instanceof DataManager === false) {\n this.preventExpand = false;\n }\n return;\n }\n if (dragObj.allowMultiSelection && dragLi.classList.contains(ACTIVE)) {\n var sNodes = selectAll('.' + ACTIVE, dragObj.element);\n liArray = sNodes;\n if (e.target.offsetHeight <= 33 && offsetY > e.target.offsetHeight - 10 && offsetY > 6) {\n for (var i_2 = sNodes.length - 1; i_2 >= 0; i_2--) {\n if (dropLi.isSameNode(sNodes[i_2]) || this.isDescendant(sNodes[i_2], dropLi)) {\n continue;\n }\n this.appendNode(dropTarget, sNodes[i_2], dropLi, e, dragObj, offsetY);\n }\n }\n else {\n for (var i_3 = 0; i_3 < sNodes.length; i_3++) {\n if (dropLi.isSameNode(sNodes[i_3]) || this.isDescendant(sNodes[i_3], dropLi)) {\n continue;\n }\n this.appendNode(dropTarget, sNodes[i_3], dropLi, e, dragObj, offsetY);\n }\n }\n }\n else {\n this.appendNode(dropTarget, dragLi, dropLi, e, dragObj, offsetY);\n }\n level = parseInt(dragLi.getAttribute('aria-level'), 10);\n drop = true;\n }\n if (this.fields.dataSource instanceof DataManager === false) {\n this.preventExpand = false;\n }\n for (var i = 0; i < liArray.length; i++) {\n nodeData.push(this.getNode(liArray[i]));\n }\n this.trigger('nodeDropped', this.getDragEvent(e.event, dragObj, dropTarget, e.target, e.dragData.draggedElement, null, level, drop));\n if (dragObj.element.id !== this.element.id) {\n dragObj.triggerEvent('nodeDropped', nodeData);\n this.isNodeDropped = true;\n this.fields.dataSource = this.treeData;\n }\n this.triggerEvent('nodeDropped', nodeData);\n };\n TreeView.prototype.appendNode = function (dropTarget, dragLi, dropLi, e, dragObj, offsetY) {\n var checkWrapper = closest(dropTarget, '.' + CHECKBOXWRAP);\n var collapse = closest(e.target, '.' + COLLAPSIBLE);\n var expand = closest(e.target, '.' + EXPANDABLE);\n if (!dragLi.classList.contains('e-disable') && !checkWrapper && ((expand && e.event.offsetY < 5) || (collapse && e.event.offsetX < 3) || (expand && e.event.offsetY > 19) || (collapse && e.event.offsetX > 19) || (!expand && !collapse))) {\n if (dropTarget.nodeName === 'LI') {\n this.dropAsSiblingNode(dragLi, dropLi, e, dragObj);\n }\n else if (dropTarget.firstElementChild && dropTarget.classList.contains(ROOT)) {\n if (dropTarget.firstElementChild.nodeName === 'UL') {\n this.dropAsSiblingNode(dragLi, dropLi, e, dragObj);\n }\n }\n else if ((dropTarget.classList.contains('e-icon-collapsible')) || (dropTarget.classList.contains('e-icon-expandable'))) {\n this.dropAsSiblingNode(dragLi, dropLi, e, dragObj);\n }\n else {\n this.dropAsChildNode(dragLi, dropLi, dragObj, null, e, offsetY);\n }\n }\n else {\n this.dropAsChildNode(dragLi, dropLi, dragObj, null, e, offsetY, true);\n }\n };\n TreeView.prototype.dropAsSiblingNode = function (dragLi, dropLi, e, dragObj) {\n var dropUl = closest(dropLi, '.' + PARENTITEM);\n var dragParentUl = closest(dragLi, '.' + PARENTITEM);\n var dragParentLi = closest(dragParentUl, '.' + LISTITEM);\n var pre;\n if (e.target.offsetHeight > 0 && e.event.offsetY > e.target.offsetHeight - 2) {\n pre = false;\n }\n else if (e.event.offsetY < 2) {\n pre = true;\n }\n else if (e.target.classList.contains('e-icon-expandable') || (e.target.classList.contains('e-icon-collapsible'))) {\n if ((e.event.offsetY < 5) || (e.event.offsetX < 3)) {\n pre = true;\n }\n else if ((e.event.offsetY > 15) || (e.event.offsetX > 17)) {\n pre = false;\n }\n }\n if ((e.target.classList.contains('e-icon-expandable')) || (e.target.classList.contains('e-icon-collapsible'))) {\n var target = e.target.closest('li');\n dropUl.insertBefore(dragLi, pre ? target : target.nextElementSibling);\n }\n else {\n dropUl.insertBefore(dragLi, pre ? e.target : e.target.nextElementSibling);\n }\n this.moveData(dragLi, dropLi, dropUl, pre, dragObj);\n this.updateElement(dragParentUl, dragParentLi);\n this.updateAriaLevel(dragLi);\n if (dragObj.element.id === this.element.id) {\n this.updateList();\n }\n else {\n dragObj.updateInstance();\n this.updateInstance();\n }\n };\n TreeView.prototype.dropAsChildNode = function (dragLi, dropLi, dragObj, index, e, pos, isCheck) {\n var dragParentUl = closest(dragLi, '.' + PARENTITEM);\n var dragParentLi = closest(dragParentUl, '.' + LISTITEM);\n var dropParentUl = closest(dropLi, '.' + PARENTITEM);\n var templateTarget;\n if (e && e.target) {\n templateTarget = select(this.fullRowSelect ? '.' + FULLROW : '.' + TEXTWRAP, dropLi);\n }\n if (e && (pos < 7) && !isCheck) {\n dropParentUl.insertBefore(dragLi, dropLi);\n this.moveData(dragLi, dropLi, dropParentUl, true, dragObj);\n }\n else if (e && (e.target.offsetHeight > 0 && pos > (e.target.offsetHeight - 10)) && !isCheck && !this.hasTemplate) {\n dropParentUl.insertBefore(dragLi, dropLi.nextElementSibling);\n this.moveData(dragLi, dropLi, dropParentUl, false, dragObj);\n }\n else if (this.hasTemplate && templateTarget && pos > templateTarget.offsetHeight - 10 && !isCheck) {\n dropParentUl.insertBefore(dragLi, dropLi.nextElementSibling);\n this.moveData(dragLi, dropLi, dropParentUl, false, dragObj);\n }\n else {\n var dropUl = this.expandParent(dropLi);\n var childLi = dropUl.childNodes[index];\n dropUl.insertBefore(dragLi, childLi);\n this.moveData(dragLi, childLi, dropUl, true, dragObj);\n }\n this.updateElement(dragParentUl, dragParentLi);\n this.updateAriaLevel(dragLi);\n if (dragObj.element.id === this.element.id) {\n this.updateList();\n }\n else {\n dragObj.updateInstance();\n this.updateInstance();\n }\n };\n TreeView.prototype.moveData = function (dragLi, dropLi, dropUl, pre, dragObj) {\n var dropParentLi = closest(dropUl, '.' + LISTITEM);\n var id = this.getId(dragLi);\n var removedData = dragObj.updateChildField(dragObj.treeData, dragObj.fields, id, null, null, true);\n var refId = this.getId(dropLi);\n var index = this.getDataPos(this.treeData, this.fields, refId);\n var parentId = this.getId(dropParentLi);\n if (this.dataType === 1) {\n this.updateField(this.treeData, this.fields, parentId, 'hasChildren', true);\n var pos = isNOU(index) ? this.treeData.length : (pre ? index : index + 1);\n if (isNOU(parentId) && !this.hasPid) {\n delete removedData[0][this.fields.parentID];\n }\n else {\n var currPid = this.isNumberTypeId ? parseFloat(parentId) : parentId;\n setValue(this.fields.parentID, currPid, removedData[0]);\n }\n this.treeData.splice(pos, 0, removedData[0]);\n if (dragObj.element.id !== this.element.id) {\n var childData = dragObj.removeChildNodes(id);\n pos++;\n for (var i = 0, len = childData.length; i < len; i++) {\n this.treeData.splice(pos, 0, childData[i]);\n pos++;\n }\n dragObj.groupedData = dragObj.getGroupedData(dragObj.treeData, dragObj.fields.parentID);\n }\n this.groupedData = this.getGroupedData(this.treeData, this.fields.parentID);\n }\n else {\n this.addChildData(this.treeData, this.fields, parentId, removedData, pre ? index : index + 1);\n }\n };\n TreeView.prototype.expandParent = function (dropLi) {\n var dropIcon = select('div.' + ICON, dropLi);\n if (dropIcon && dropIcon.classList.contains(EXPANDABLE) && this.preventExpand !== true) {\n this.expandAction(dropLi, dropIcon, null);\n }\n var dropUl = select('.' + PARENTITEM, dropLi);\n if (this.preventExpand === true && !dropUl && dropIcon) {\n this.renderChildNodes(dropLi);\n }\n dropUl = select('.' + PARENTITEM, dropLi);\n if (!isNOU(dropUl) && this.preventExpand === true) {\n dropUl.style.display = 'none';\n }\n if (!isNOU(dropUl) && this.preventExpand === false) {\n dropUl.style.display = 'block';\n }\n if (isNOU(dropUl) && this.preventExpand === true) {\n if (isNOU(dropIcon)) {\n ListBase.generateIcon(this.createElement, dropLi, EXPANDABLE, this.listBaseOption);\n }\n var icon = select('div.' + ICON, dropLi);\n if (icon) {\n icon.classList.add('e-icon-expandable');\n }\n dropUl = ListBase.generateUL(this.createElement, [], null, this.listBaseOption);\n dropLi.appendChild(dropUl);\n if (icon) {\n removeClass([icon], COLLAPSIBLE);\n }\n else {\n ListBase.generateIcon(this.createElement, dropLi, EXPANDABLE, this.listBaseOption);\n }\n dropLi.setAttribute('aria-expanded', 'false');\n dropUl.style.display = 'none';\n }\n if (isNOU(dropUl)) {\n var args = this.expandArgs;\n if (isNOU(args) || args.name != 'nodeExpanding') {\n this.trigger('nodeExpanding', this.getExpandEvent(dropLi, null));\n }\n if (isNOU(dropIcon)) {\n ListBase.generateIcon(this.createElement, dropLi, COLLAPSIBLE, this.listBaseOption);\n }\n var icon = select('div.' + ICON, dropLi);\n if (icon) {\n removeClass([icon], EXPANDABLE);\n }\n else {\n ListBase.generateIcon(this.createElement, dropLi, COLLAPSIBLE, this.listBaseOption);\n icon = select('div.' + ICON, dropLi);\n removeClass([icon], EXPANDABLE);\n }\n dropUl = ListBase.generateUL(this.createElement, [], null, this.listBaseOption);\n dropLi.appendChild(dropUl);\n this.addExpand(dropLi);\n this.trigger('nodeExpanded', this.getExpandEvent(dropLi, null));\n }\n return dropUl;\n };\n TreeView.prototype.updateElement = function (dragParentUl, dragParentLi) {\n if (dragParentLi && dragParentUl.childElementCount === 0) {\n var dragIcon = select('div.' + ICON, dragParentLi);\n detach(dragParentUl);\n detach(dragIcon);\n var parentId = this.getId(dragParentLi);\n this.updateField(this.treeData, this.fields, parentId, 'hasChildren', false);\n this.removeExpand(dragParentLi, true);\n }\n };\n TreeView.prototype.updateAriaLevel = function (dragLi) {\n var level = this.parents(dragLi, '.' + PARENTITEM).length;\n dragLi.setAttribute('aria-level', '' + level);\n this.updateChildAriaLevel(select('.' + PARENTITEM, dragLi), level + 1);\n };\n TreeView.prototype.updateChildAriaLevel = function (element, level) {\n if (!isNOU(element)) {\n var cNodes = element.childNodes;\n for (var i = 0, len = cNodes.length; i < len; i++) {\n var liEle = cNodes[i];\n liEle.setAttribute('aria-level', '' + level);\n this.updateChildAriaLevel(select('.' + PARENTITEM, liEle), level + 1);\n }\n }\n };\n TreeView.prototype.renderVirtualEle = function (e) {\n var pre;\n if (e.event.offsetY > e.target.offsetHeight - 2) {\n pre = false;\n }\n else if (e.event.offsetY < 2) {\n pre = true;\n }\n var virEle = this.createElement('div', { className: SIBLING });\n var index = this.fullRowSelect ? (pre ? 1 : 2) : (pre ? 0 : 1);\n e.target.insertBefore(virEle, e.target.children[index]);\n };\n TreeView.prototype.removeVirtualEle = function () {\n var sibEle = select('.' + SIBLING);\n if (sibEle) {\n detach(sibEle);\n }\n };\n TreeView.prototype.destroyDrag = function () {\n if (this.dragObj && this.dropObj) {\n this.dragObj.destroy();\n this.dropObj.destroy();\n }\n };\n TreeView.prototype.getDragEvent = function (event, obj, dropTarget, target, dragNode, cloneEle, level, drop) {\n var dropLi = dropTarget ? closest(dropTarget, '.' + LISTITEM) : null;\n var dropData = dropLi ? this.getNodeData(dropLi) : null;\n var draggedNode = obj ? obj.dragLi : dragNode;\n var draggedNodeData = obj ? obj.dragData : null;\n var newParent = dropTarget ? this.parents(dropTarget, '.' + LISTITEM) : null;\n var dragLiParent = obj.dragLi.parentElement;\n var dragParent = obj.dragLi ? closest(dragLiParent, '.' + LISTITEM) : null;\n var targetParent = null;\n var indexValue = null;\n var iconCss = [DROPNEXT, DROPIN, DROPOUT, NODROP];\n var iconClass = null;\n var node = (drop === true) ? draggedNode : dropLi;\n var index = node ? closest(node, '.e-list-parent') : null;\n var i = 0;\n var position = null;\n dragParent = (obj.dragLi && dragParent === null) ? closest(dragLiParent, '.' + ROOT) : dragParent;\n dragParent = (drop === true) ? this.dragParent : dragParent;\n if (cloneEle) {\n while (i < 4) {\n if (select('.' + ICON, cloneEle).classList.contains(iconCss[i])) {\n iconClass = iconCss[i];\n break;\n }\n i++;\n }\n }\n if (index) {\n var dropTar = 0;\n for (i = 0; i < index.childElementCount; i++) {\n dropTar = (drop !== true && index.children[i] === draggedNode && dropLi !== draggedNode) ? ++dropTar : dropTar;\n if ((drop !== true && index.children[i].classList.contains('e-hover'))) {\n indexValue = (event.offsetY >= 23) ? i + 1 : i;\n break;\n }\n else if (index.children[i] === node) {\n indexValue = (event.offsetY >= 23) ? i : i;\n break;\n }\n }\n indexValue = (dropTar !== 0) ? --indexValue : indexValue;\n position = (iconClass == \"e-drop-in\") ? \"Inside\" : ((event.offsetY < 7) ? \"Before\" : \"After\");\n }\n if (dropTarget) {\n if (newParent.length === 0) {\n targetParent = null;\n }\n else if (dropTarget.classList.contains(LISTITEM)) {\n targetParent = newParent[0];\n }\n else {\n targetParent = newParent[1];\n }\n }\n if (dropLi === draggedNode) {\n targetParent = dropLi;\n }\n if (dropTarget && target.offsetHeight <= 33 && event.offsetY < target.offsetHeight - 10 && event.offsetY > 6) {\n targetParent = dropLi;\n if (drop !== true) {\n level = ++level;\n var parent_2 = targetParent ? select('.e-list-parent', targetParent) : null;\n indexValue = (parent_2) ? parent_2.children.length : 0;\n if (!(this.fields.dataSource instanceof DataManager) && parent_2 === null && targetParent) {\n var parent_3 = targetParent.hasAttribute('data-uid') ?\n this.getChildNodes(this.fields.dataSource, targetParent.getAttribute('data-uid').toString()) : null;\n indexValue = (parent_3) ? parent_3.length : 0;\n }\n }\n }\n return {\n cancel: false,\n clonedNode: cloneEle,\n event: event,\n draggedNode: draggedNode,\n draggedNodeData: draggedNodeData,\n droppedNode: dropLi,\n droppedNodeData: dropData,\n dropIndex: indexValue,\n dropLevel: level,\n draggedParentNode: dragParent,\n dropTarget: targetParent,\n dropIndicator: iconClass,\n target: target,\n position: position,\n };\n };\n TreeView.prototype.addFullRow = function (toAdd) {\n var len = this.liList.length;\n if (toAdd) {\n for (var i = 0; i < len; i++) {\n this.createFullRow(this.liList[i]);\n }\n }\n else {\n for (var i = 0; i < len; i++) {\n var rowDiv = select('.' + FULLROW, this.liList[i]);\n detach(rowDiv);\n }\n }\n };\n TreeView.prototype.createFullRow = function (item) {\n var rowDiv = this.createElement('div', { className: FULLROW });\n item.insertBefore(rowDiv, item.childNodes[0]);\n };\n TreeView.prototype.addMultiSelect = function (toAdd) {\n if (toAdd) {\n var liEles = selectAll('.' + LISTITEM + ':not([aria-selected=\"true\"])', this.element);\n for (var _i = 0, liEles_1 = liEles; _i < liEles_1.length; _i++) {\n var ele = liEles_1[_i];\n ele.setAttribute('aria-selected', 'false');\n }\n }\n else {\n var liEles = selectAll('.' + LISTITEM + '[aria-selected=\"false\"]', this.element);\n for (var _a = 0, liEles_2 = liEles; _a < liEles_2.length; _a++) {\n var ele = liEles_2[_a];\n ele.removeAttribute('aria-selected');\n }\n }\n };\n TreeView.prototype.collapseByLevel = function (element, level, excludeHiddenNodes) {\n if (level > 0 && !isNOU(element)) {\n var cNodes = this.getVisibleNodes(excludeHiddenNodes, element.childNodes);\n for (var i = 0, len = cNodes.length; i < len; i++) {\n var liEle = cNodes[i];\n var icon = select('.' + COLLAPSIBLE, select('.' + TEXTWRAP, liEle));\n if (!isNOU(icon)) {\n this.collapseNode(liEle, icon, null);\n }\n this.collapseByLevel(select('.' + PARENTITEM, liEle), level - 1, excludeHiddenNodes);\n }\n }\n };\n TreeView.prototype.collapseAllNodes = function (excludeHiddenNodes) {\n var cIcons = this.getVisibleNodes(excludeHiddenNodes, selectAll('.' + COLLAPSIBLE, this.element));\n for (var i = 0, len = cIcons.length; i < len; i++) {\n var icon = cIcons[i];\n var liEle = closest(icon, '.' + LISTITEM);\n this.collapseNode(liEle, icon, null);\n }\n };\n TreeView.prototype.expandByLevel = function (element, level, excludeHiddenNodes) {\n if (level > 0 && !isNOU(element)) {\n var eNodes = this.getVisibleNodes(excludeHiddenNodes, element.childNodes);\n for (var i = 0, len = eNodes.length; i < len; i++) {\n var liEle = eNodes[i];\n var icon = select('.' + EXPANDABLE, select('.' + TEXTWRAP, liEle));\n if (!isNOU(icon)) {\n this.expandAction(liEle, icon, null);\n }\n this.expandByLevel(select('.' + PARENTITEM, liEle), level - 1, excludeHiddenNodes);\n }\n }\n };\n TreeView.prototype.expandAllNodes = function (excludeHiddenNodes) {\n var eIcons = this.getVisibleNodes(excludeHiddenNodes, selectAll('.' + EXPANDABLE, this.element));\n for (var i = 0, len = eIcons.length; i < len; i++) {\n var icon = eIcons[i];\n var liEle = closest(icon, '.' + LISTITEM);\n this.expandAction(liEle, icon, null, true);\n }\n };\n TreeView.prototype.getVisibleNodes = function (excludeHiddenNodes, nodes) {\n var vNodes = Array.prototype.slice.call(nodes);\n if (excludeHiddenNodes) {\n for (var i = 0; i < vNodes.length; i++) {\n if (!isVisible(vNodes[i])) {\n vNodes.splice(i, 1);\n i--;\n }\n }\n }\n return vNodes;\n };\n TreeView.prototype.removeNode = function (node) {\n var dragParentUl = closest(node, '.' + PARENTITEM);\n var dragParentLi = closest(dragParentUl, '.' + LISTITEM);\n if (!isNOU(this.nodeTemplateFn)) {\n this.destroyTemplate(node);\n }\n detach(node);\n this.updateElement(dragParentUl, dragParentLi);\n this.removeData(node);\n };\n TreeView.prototype.updateInstance = function () {\n this.updateList();\n this.updateSelectedNodes();\n this.updateExpandedNodes();\n };\n TreeView.prototype.updateList = function () {\n this.liList = Array.prototype.slice.call(selectAll('.' + LISTITEM, this.element));\n };\n TreeView.prototype.updateSelectedNodes = function () {\n this.setProperties({ selectedNodes: [] }, true);\n var sNodes = selectAll('.' + ACTIVE, this.element);\n this.selectGivenNodes(sNodes);\n };\n TreeView.prototype.updateExpandedNodes = function () {\n this.setProperties({ expandedNodes: [] }, true);\n var eNodes = selectAll('[aria-expanded=\"true\"]', this.element);\n for (var i = 0, len = eNodes.length; i < len; i++) {\n this.addExpand(eNodes[i]);\n }\n };\n TreeView.prototype.removeData = function (node) {\n if (this.dataType === 1) {\n var dm = new DataManager(this.treeData);\n var id = this.getId(node);\n var data = {};\n var newId = this.isNumberTypeId ? parseFloat(id) : id;\n data[this.fields.id] = newId;\n dm.remove(this.fields.id, data);\n this.removeChildNodes(id);\n }\n else {\n var id = this.getId(node);\n this.updateChildField(this.treeData, this.fields, id, null, null, true);\n }\n };\n TreeView.prototype.removeChildNodes = function (parentId) {\n var cNodes = this.getChildGroup(this.groupedData, parentId, false);\n var childData = [];\n if (cNodes) {\n for (var i = 0, len = cNodes.length; i < len; i++) {\n var dm = new DataManager(this.treeData);\n var id = getValue(this.fields.id, cNodes[i]).toString();\n var data = {};\n var currId = this.isNumberTypeId ? parseFloat(id) : id;\n data[this.fields.id] = currId;\n var nodeData = dm.remove(this.fields.id, data);\n childData.push(nodeData[0]);\n this.removeChildNodes(id);\n }\n }\n return childData;\n };\n TreeView.prototype.doGivenAction = function (nodes, selector, toExpand) {\n for (var i = 0, len = nodes.length; i < len; i++) {\n var liEle = this.getElement(nodes[i]);\n if (isNOU(liEle)) {\n continue;\n }\n var icon = select('.' + selector, select('.' + TEXTWRAP, liEle));\n if (!isNOU(icon)) {\n toExpand ? this.expandAction(liEle, icon, null) : this.collapseNode(liEle, icon, null);\n }\n }\n };\n TreeView.prototype.addGivenNodes = function (nodes, dropLi, index, isRemote, dropEle) {\n if (nodes.length === 0) {\n return;\n }\n var sNodes = this.getSortedData(nodes);\n var level = dropLi ? parseFloat(dropLi.getAttribute('aria-level')) + 1 : 1;\n if (isRemote) {\n this.updateMapper(level);\n }\n var li = ListBase.createListItemFromJson(this.createElement, sNodes, this.listBaseOption, level);\n var id = this.getId(dropLi);\n var refNode;\n var dropIcon1;\n if (!isNullOrUndefined(dropLi)) {\n dropIcon1 = select('div.' + ICON, dropLi);\n }\n if (this.dataType === 1 && dropIcon1 && dropIcon1.classList.contains(EXPANDABLE) && !isNOU(this.element.offsetParent) && !this.element.offsetParent.parentElement.classList.contains('e-filemanager')) {\n this.preventExpand = true;\n }\n if (this.dataType !== 1) {\n this.addChildData(this.treeData, this.fields, id, nodes, index);\n this.isFirstRender = false;\n }\n var dropUl;\n if (!dropEle) {\n dropUl = dropLi ? this.expandParent(dropLi) : select('.' + PARENTITEM, this.element);\n }\n else {\n dropUl = dropEle;\n }\n refNode = dropUl.childNodes[index];\n if (!this.isFirstRender || this.dataType === 1) {\n var args = this.expandArgs;\n if (refNode || this.sortOrder === 'None') {\n for (var i = 0; i < li.length; i++) {\n dropUl.insertBefore(li[i], refNode);\n }\n if (this.dataType === 1 && !isNullOrUndefined(dropLi) && !isNOU(this.element.offsetParent) && !this.element.offsetParent.parentElement.classList.contains('e-filemanager')) {\n this.preventExpand = false;\n var dropIcon = select('div.' + ICON, dropLi);\n if (dropIcon && dropIcon.classList.contains(EXPANDABLE) && (isNOU(args) || args.name != 'nodeExpanding')) {\n this.expandAction(dropLi, dropIcon, null);\n }\n }\n }\n if (!refNode && ((this.sortOrder === 'Ascending') || (this.sortOrder === 'Descending'))) {\n if (dropUl.childNodes.length === 0) {\n for (var i = 0; i < li.length; i++) {\n dropUl.insertBefore(li[i], refNode);\n }\n if (this.dataType === 1 && !isNullOrUndefined(dropLi) && !isNOU(this.element.offsetParent) && !this.element.offsetParent.parentElement.classList.contains('e-filemanager')) {\n this.preventExpand = false;\n var dropIcon = select('div.' + ICON, dropLi);\n if (dropIcon && dropIcon.classList.contains(EXPANDABLE) && (isNOU(args) || args.name != 'nodeExpanding')) {\n this.expandAction(dropLi, dropIcon, null);\n }\n }\n }\n else {\n var cNodes = dropUl.childNodes;\n for (var i = 0; i < li.length; i++) {\n for (var j = 0; j < cNodes.length; j++) {\n var returnValue = (this.sortOrder === 'Ascending') ? cNodes[j].textContent.toUpperCase() > li[i].innerText.toUpperCase() : cNodes[j].textContent.toUpperCase() < li[i].innerText.toUpperCase();\n if (returnValue) {\n dropUl.insertBefore(li[i], cNodes[j]);\n break;\n }\n dropUl.insertBefore(li[i], cNodes[cNodes.length]);\n }\n }\n }\n }\n }\n if (this.dataType === 1) {\n this.updateField(this.treeData, this.fields, id, 'hasChildren', true);\n var refId = this.getId(refNode);\n var pos = isNOU(refId) ? this.treeData.length : this.getDataPos(this.treeData, this.fields, refId);\n for (var j = 0; j < nodes.length; j++) {\n if (!isNOU(id)) {\n var currId = this.isNumberTypeId ? parseFloat(id) : id;\n setValue(this.fields.parentID, currId, nodes[j]);\n }\n this.treeData.splice(pos, 0, nodes[j]);\n pos++;\n }\n }\n this.finalizeNode(dropUl);\n };\n TreeView.prototype.updateMapper = function (level) {\n var mapper = (level === 1) ? this.fields : this.getChildFields(this.fields, level - 1, 1);\n this.updateListProp(mapper);\n };\n TreeView.prototype.updateListProp = function (mapper) {\n var prop = this.getActualProperties(mapper);\n this.listBaseOption.fields = prop;\n this.listBaseOption.fields.url = prop.hasOwnProperty('navigateUrl') ? prop.navigateUrl : 'navigateUrl';\n };\n TreeView.prototype.getDataPos = function (obj, mapper, id) {\n var pos = null;\n for (var i = 0, objlen = obj.length; i < objlen; i++) {\n var nodeId = getValue(mapper.id, obj[i]);\n if (obj[i] && nodeId && nodeId.toString() === id) {\n return i;\n }\n else if (typeof mapper.child === 'string' && !isNOU(getValue(mapper.child, obj[i]))) {\n var data = getValue(mapper.child, obj[i]);\n pos = this.getDataPos(data, this.getChildMapper(mapper), id);\n if (pos !== null) {\n break;\n }\n }\n else if (this.fields.dataSource instanceof DataManager && !isNOU(getValue('child', obj[i]))) {\n var items = getValue('child', obj[i]);\n pos = this.getDataPos(items, this.getChildMapper(mapper), id);\n if (pos !== null) {\n break;\n }\n }\n }\n return pos;\n };\n TreeView.prototype.addChildData = function (obj, mapper, id, data, index) {\n var updated;\n if (isNOU(id)) {\n index = isNOU(index) ? obj.length : index;\n for (var k = 0, len = data.length; k < len; k++) {\n obj.splice(index, 0, data[k]);\n index++;\n }\n return updated;\n }\n for (var i = 0, objlen = obj.length; i < objlen; i++) {\n var nodeId = getValue(mapper.id, obj[i]);\n if (obj[i] && nodeId && nodeId.toString() === id) {\n if ((typeof mapper.child === 'string' && (obj[i].hasOwnProperty(mapper.child) && obj[i][mapper.child] !== null)) ||\n ((this.fields.dataSource instanceof DataManager) && obj[i].hasOwnProperty('child'))) {\n var key = (typeof mapper.child === 'string') ? mapper.child : 'child';\n var childData = getValue(key, obj[i]);\n if (isNOU(childData)) {\n childData = [];\n }\n index = isNOU(index) ? childData.length : index;\n for (var k = 0, len = data.length; k < len; k++) {\n childData.splice(index, 0, data[k]);\n index++;\n }\n }\n else {\n var key = (typeof mapper.child === 'string') ? mapper.child : 'child';\n obj[i][key] = data;\n }\n return true;\n }\n else if (typeof mapper.child === 'string' && !isNOU(getValue(mapper.child, obj[i]))) {\n var childObj = getValue(mapper.child, obj[i]);\n updated = this.addChildData(childObj, this.getChildMapper(mapper), id, data, index);\n if (updated !== undefined) {\n break;\n }\n }\n else if ((this.fields.dataSource instanceof DataManager) && !isNOU(getValue('child', obj[i]))) {\n var childData = getValue('child', obj[i]);\n updated = this.addChildData(childData, this.getChildMapper(mapper), id, data, index);\n if (updated !== undefined) {\n break;\n }\n }\n }\n return updated;\n };\n TreeView.prototype.doDisableAction = function (nodes) {\n var validNodes = this.nodeType(nodes);\n var validID = this.checkValidId(validNodes);\n this.validArr = [];\n for (var i = 0, len = validID.length; i < len; i++) {\n var id = validID[i][this.fields.id].toString();\n if (id && this.disableNode.indexOf(id) === -1) {\n this.disableNode.push(id);\n }\n var liEle = this.getElement(id);\n if (liEle) {\n liEle.setAttribute('aria-disabled', 'true');\n addClass([liEle], DISABLE);\n }\n }\n };\n TreeView.prototype.doEnableAction = function (nodes) {\n var strNodes = this.nodeType(nodes);\n for (var i = 0, len = strNodes.length; i < len; i++) {\n var liEle = this.getElement(strNodes[i]);\n var id = strNodes[i];\n if (id && this.disableNode.indexOf(id) !== -1) {\n this.disableNode.splice(this.disableNode.indexOf(id), 1);\n }\n if (liEle) {\n liEle.removeAttribute('aria-disabled');\n removeClass([liEle], DISABLE);\n }\n }\n };\n TreeView.prototype.nodeType = function (nodes) {\n var validID = [];\n for (var i = 0, len = nodes.length; i < len; i++) {\n var id = void 0;\n if (typeof nodes[i] == \"string\") {\n id = (nodes[i]) ? nodes[i].toString() : null;\n }\n else if (typeof nodes[i] === \"object\") {\n id = nodes[i] ? nodes[i].getAttribute(\"data-uid\").toString() : null;\n }\n if (validID.indexOf(id) == -1) {\n validID.push(id);\n }\n }\n return validID;\n };\n TreeView.prototype.checkValidId = function (node) {\n var _this = this;\n if (this.dataType === 1) {\n this.validArr = this.treeData.filter(function (data) {\n return node.indexOf(data[_this.fields.id] ? data[_this.fields.id].toString() : null) !== -1;\n });\n }\n else if (this.dataType === 2) {\n for (var k = 0; k < this.treeData.length; k++) {\n var id = this.treeData[k][this.fields.id] ? this.treeData[k][this.fields.id].toString() : null;\n if (node.indexOf(id) !== -1) {\n this.validArr.push(this.treeData[k]);\n }\n var childItems = getValue(this.fields.child.toString(), this.treeData[k]);\n if (childItems) {\n this.filterNestedChild(childItems, node);\n }\n }\n }\n return this.validArr;\n };\n TreeView.prototype.filterNestedChild = function (treeData, nodes) {\n for (var k = 0; k < treeData.length; k++) {\n var id = treeData[k][this.fields.id] ? treeData[k][this.fields.id].toString() : null;\n if (nodes.indexOf(id) !== -1) {\n this.validArr.push(treeData[k]);\n }\n var childItems = getValue(this.fields.child.toString(), treeData[k]);\n if (childItems) {\n this.filterNestedChild(childItems, nodes);\n }\n }\n };\n TreeView.prototype.setTouchClass = function () {\n var ele = closest(this.element, '.' + BIGGER);\n this.touchClass = isNOU(ele) ? '' : SMALL;\n };\n TreeView.prototype.updatePersistProp = function () {\n this.removeField(this.treeData, this.fields, ['selected', 'expanded']);\n var sleNodes = this.selectedNodes;\n for (var l = 0, slelen = sleNodes.length; l < slelen; l++) {\n this.updateField(this.treeData, this.fields, sleNodes[l], 'selected', true);\n }\n var enodes = this.expandedNodes;\n for (var k = 0, nodelen = enodes.length; k < nodelen; k++) {\n this.updateField(this.treeData, this.fields, enodes[k], 'expanded', true);\n }\n if (this.showCheckBox) {\n this.removeField(this.treeData, this.fields, ['isChecked']);\n var cnodes = this.checkedNodes;\n for (var m = 0, nodelen = cnodes.length; m < nodelen; m++) {\n this.updateField(this.treeData, this.fields, cnodes[m], 'isChecked', true);\n }\n }\n };\n TreeView.prototype.removeField = function (obj, mapper, names) {\n if (isNOU(obj) || isNOU(mapper)) {\n return;\n }\n for (var i = 0, objlen = obj.length; i < objlen; i++) {\n for (var j = 0; j < names.length; j++) {\n var field = this.getMapperProp(mapper, names[j]);\n if (!isNOU(obj[i][field])) {\n delete obj[i][field];\n }\n }\n if (typeof mapper.child === 'string' && !isNOU(getValue(mapper.child, obj[i]))) {\n this.removeField(getValue(mapper.child, obj[i]), this.getChildMapper(mapper), names);\n }\n else if (this.fields.dataSource instanceof DataManager && !isNOU(getValue('child', obj[i]))) {\n this.removeField(getValue('child', obj[i]), this.getChildMapper(mapper), names);\n }\n }\n };\n TreeView.prototype.getMapperProp = function (mapper, fieldName) {\n switch (fieldName) {\n case 'selected':\n return !isNOU(mapper.selected) ? mapper.selected : 'selected';\n case 'expanded':\n return !isNOU(mapper.expanded) ? mapper.expanded : 'expanded';\n case 'isChecked':\n return !isNOU(mapper.isChecked) ? mapper.isChecked : 'isChecked';\n case 'hasChildren':\n return !isNOU(mapper.hasChildren) ? mapper.hasChildren : 'hasChildren';\n default:\n return fieldName;\n }\n };\n TreeView.prototype.updateField = function (obj, mapper, id, key, value) {\n var childNodes;\n if (isNOU(id)) {\n return;\n }\n else if (this.dataType === 1) {\n var newId = this.isNumberTypeId ? parseFloat(id) : id;\n var resultData = new DataManager(this.treeData).executeLocal(new Query().where(mapper.id, 'equal', newId, false));\n setValue(this.getMapperProp(mapper, key), value, resultData[0]);\n }\n else {\n this.updateChildField(obj, mapper, id, key, value);\n }\n };\n TreeView.prototype.updateChildField = function (obj, mapper, id, key, value, remove) {\n var removedData;\n if (isNOU(obj)) {\n return removedData;\n }\n for (var i = 0, objlen = obj.length; i < objlen; i++) {\n var nodeId = getValue(mapper.id, obj[i]);\n if (obj[i] && nodeId && nodeId.toString() === id) {\n if (remove) {\n removedData = obj.splice(i, 1);\n }\n else {\n setValue(this.getMapperProp(mapper, key), value, obj[i]);\n removedData = [];\n }\n return removedData;\n }\n else if (typeof mapper.child === 'string' && !isNOU(getValue(mapper.child, obj[i]))) {\n var childData = getValue(mapper.child, obj[i]);\n removedData = this.updateChildField(childData, this.getChildMapper(mapper), id, key, value, remove);\n if (removedData !== undefined) {\n break;\n }\n }\n else if (this.fields.dataSource instanceof DataManager && !isNOU(getValue('child', obj[i]))) {\n var childItems = getValue('child', obj[i]);\n removedData = this.updateChildField(childItems, this.getChildMapper(mapper), id, key, value, remove);\n if (removedData !== undefined) {\n break;\n }\n }\n }\n return removedData;\n };\n TreeView.prototype.triggerEvent = function (action, node) {\n this.renderReactTemplates();\n if (action === 'addNodes') {\n var nodeData = [];\n for (var i = 0; i < node.length; i++) {\n nodeData.push(this.getNode(this.getElement(isNOU(node[i][this.fields.id]) ? getValue(this.fields.id, node[i]).toString() : null)));\n }\n node = nodeData;\n }\n var eventArgs = { data: this.treeData, action: action, nodeData: node };\n this.trigger('dataSourceChanged', eventArgs);\n };\n TreeView.prototype.wireInputEvents = function (inpEle) {\n EventHandler.add(inpEle, 'blur', this.inputFocusOut, this);\n };\n TreeView.prototype.wireEditingEvents = function (toBind) {\n var _this = this;\n if (toBind && !this.disabled) {\n var proxy_2 = this;\n this.touchEditObj = new Touch(this.element, {\n tap: function (e) {\n if (_this.isDoubleTapped(e) && e.tapCount === 2) {\n e.originalEvent.preventDefault();\n proxy_2.editingHandler(e.originalEvent);\n }\n }\n });\n }\n else {\n if (this.touchEditObj) {\n this.touchEditObj.destroy();\n }\n }\n };\n TreeView.prototype.wireClickEvent = function (toBind) {\n if (toBind) {\n var proxy_3 = this;\n this.touchClickObj = new Touch(this.element, {\n tap: function (e) {\n proxy_3.clickHandler(e);\n }\n });\n }\n else {\n if (this.touchClickObj) {\n this.touchClickObj.destroy();\n }\n }\n };\n TreeView.prototype.wireExpandOnEvent = function (toBind) {\n var _this = this;\n if (toBind) {\n var proxy_4 = this;\n this.touchExpandObj = new Touch(this.element, {\n tap: function (e) {\n if ((_this.expandOnType === 'Click' || (_this.expandOnType === 'DblClick' && _this.isDoubleTapped(e) && e.tapCount === 2))\n && e.originalEvent.which !== 3) {\n proxy_4.expandHandler(e);\n }\n }\n });\n }\n else {\n if (this.touchExpandObj) {\n this.touchExpandObj.destroy();\n }\n }\n };\n TreeView.prototype.mouseDownHandler = function (e) {\n this.mouseDownStatus = true;\n if (e.shiftKey || e.ctrlKey) {\n e.preventDefault();\n }\n if (e.ctrlKey && this.allowMultiSelection) {\n EventHandler.add(this.element, 'contextmenu', this.preventContextMenu, this);\n }\n };\n ;\n TreeView.prototype.preventContextMenu = function (e) {\n e.preventDefault();\n };\n TreeView.prototype.wireEvents = function () {\n EventHandler.add(this.element, 'mousedown', this.mouseDownHandler, this);\n this.wireClickEvent(true);\n if (this.expandOnType !== 'None') {\n this.wireExpandOnEvent(true);\n }\n EventHandler.add(this.element, 'mouseover', this.onMouseOver, this);\n EventHandler.add(this.element, 'mouseout', this.onMouseLeave, this);\n this.keyboardModule = new KeyboardEvents(this.element, {\n keyAction: this.keyActionHandler.bind(this),\n keyConfigs: this.keyConfigs,\n eventName: 'keydown',\n });\n };\n TreeView.prototype.unWireEvents = function () {\n EventHandler.remove(this.element, 'mousedown', this.mouseDownHandler);\n this.wireClickEvent(false);\n this.wireExpandOnEvent(false);\n EventHandler.remove(this.element, 'mouseover', this.onMouseOver);\n EventHandler.remove(this.element, 'mouseout', this.onMouseLeave);\n if (!this.disabled) {\n this.keyboardModule.destroy();\n }\n };\n TreeView.prototype.parents = function (element, selector) {\n var matched = [];\n var el = element.parentNode;\n while (!isNOU(el)) {\n if (matches(el, selector)) {\n matched.push(el);\n }\n el = el.parentNode;\n }\n return matched;\n };\n TreeView.prototype.isDoubleTapped = function (e) {\n var target = e.originalEvent.target;\n var secondTap;\n if (target && e.tapCount) {\n if (e.tapCount === 1) {\n this.firstTap = closest(target, '.' + LISTITEM);\n }\n else if (e.tapCount === 2) {\n secondTap = closest(target, '.' + LISTITEM);\n }\n }\n return (this.firstTap === secondTap);\n };\n TreeView.prototype.isDescendant = function (parent, child) {\n var node = child.parentNode;\n while (!isNOU(node)) {\n if (node === parent) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n };\n TreeView.prototype.showSpinner = function (element) {\n addClass([element], LOAD);\n createSpinner({\n target: element,\n width: Browser.isDevice ? 16 : 14\n }, this.createElement);\n showSpinner(element);\n };\n TreeView.prototype.hideSpinner = function (element) {\n hideSpinner(element);\n element.innerHTML = '';\n removeClass([element], LOAD);\n };\n TreeView.prototype.setCheckedNodes = function (nodes) {\n nodes = JSON.parse(JSON.stringify(nodes));\n this.uncheckAll(this.checkedNodes);\n this.setIndeterminate(nodes);\n if (nodes.length > 0) {\n this.checkAll(nodes);\n }\n };\n /**\n * Checks whether the checkedNodes entered are valid and sets the valid checkedNodes while changing via setmodel\n */\n TreeView.prototype.setValidCheckedNode = function (node) {\n if (this.dataType === 1) {\n var mapper = this.fields;\n var resultData = new DataManager(this.treeData).executeLocal(new Query().where(mapper.id, 'equal', node, true));\n if (resultData[0]) {\n this.setChildCheckState(resultData, node, resultData[0]);\n if (this.autoCheck) {\n var parent_4 = resultData[0][this.fields.parentID] ? resultData[0][this.fields.parentID].toString() : null;\n var childNodes = this.getChildNodes(this.treeData, parent_4);\n var count = 0;\n for (var len = 0; len < childNodes.length; len++) {\n var childId = childNodes[len][this.fields.id].toString();\n if (this.checkedNodes.indexOf(childId) !== -1) {\n count++;\n }\n }\n if (count === childNodes.length && this.checkedNodes.indexOf(parent_4) === -1 && parent_4) {\n this.checkedNodes.push(parent_4);\n }\n }\n }\n }\n else if (this.dataType === 2) {\n for (var a = 0; a < this.treeData.length; a++) {\n var index = this.treeData[a][this.fields.id] ? this.treeData[a][this.fields.id].toString() : '';\n if (index === node && this.checkedNodes.indexOf(node) === -1) {\n this.checkedNodes.push(node);\n break;\n }\n var childItems = getValue(this.fields.child.toString(), this.treeData[a]);\n if (childItems) {\n this.setChildCheckState(childItems, node, this.treeData[a]);\n }\n }\n }\n };\n /**\n * Checks whether the checkedNodes entered are valid and sets the valid checkedNodes while changing via setmodel(for hierarchical DS)\n */\n TreeView.prototype.setChildCheckState = function (childItems, node, treeData) {\n var checkedParent;\n var count = 0;\n if (this.dataType === 1) {\n if (treeData) {\n checkedParent = treeData[this.fields.id] ? treeData[this.fields.id].toString() : null;\n }\n for (var index = 0; index < childItems.length; index++) {\n var checkNode = childItems[index][this.fields.id] ? childItems[index][this.fields.id].toString() : null;\n if (treeData && checkedParent && this.autoCheck) {\n if (this.checkedNodes.indexOf(checkedParent) !== -1 && this.checkedNodes.indexOf(checkNode) === -1) {\n this.checkedNodes.push(checkNode);\n }\n }\n if (checkNode === node && this.checkedNodes.indexOf(node) === -1) {\n this.checkedNodes.push(node);\n }\n var subChildItems = this.getChildNodes(this.treeData, checkNode);\n if (subChildItems) {\n this.setChildCheckState(subChildItems, node, treeData);\n }\n }\n }\n else {\n if (treeData) {\n checkedParent = treeData[this.fields.id] ? treeData[this.fields.id].toString() : '';\n }\n for (var index = 0; index < childItems.length; index++) {\n var checkedChild = childItems[index][this.fields.id] ? childItems[index][this.fields.id].toString() : '';\n if (treeData && checkedParent && this.autoCheck) {\n if (this.checkedNodes.indexOf(checkedParent) !== -1 && this.checkedNodes.indexOf(checkedChild) === -1) {\n this.checkedNodes.push(checkedChild);\n }\n }\n if (checkedChild === node && this.checkedNodes.indexOf(node) === -1) {\n this.checkedNodes.push(node);\n }\n var subChildItems = getValue(this.fields.child.toString(), childItems[index]);\n if (subChildItems) {\n this.setChildCheckState(subChildItems, node, childItems[index]);\n }\n if (this.checkedNodes.indexOf(checkedChild) !== -1 && this.autoCheck) {\n count++;\n }\n if (count === childItems.length && this.checkedNodes.indexOf(checkedParent) === -1 && this.autoCheck) {\n this.checkedNodes.push(checkedParent);\n }\n }\n }\n };\n TreeView.prototype.setIndeterminate = function (nodes) {\n for (var i = 0; i < nodes.length; i++) {\n this.setValidCheckedNode(nodes[i]);\n }\n };\n TreeView.prototype.updatePosition = function (id, newData, isRefreshChild, childValue) {\n if (this.dataType === 1) {\n var pos = this.getDataPos(this.treeData, this.fields, id);\n this.treeData.splice(pos, 1, newData);\n if (isRefreshChild) {\n this.removeChildNodes(id);\n for (var j = 0; j < childValue.length; j++) {\n this.treeData.splice(pos, 0, childValue[j]);\n pos++;\n }\n }\n this.groupedData = this.getGroupedData(this.treeData, this.fields.parentID);\n }\n else {\n this.updateChildPosition(this.treeData, this.fields, id, [newData], undefined);\n }\n };\n TreeView.prototype.updateChildPosition = function (treeData, mapper, currID, newData, index) {\n var found;\n for (var i = 0, objlen = treeData.length; i < objlen; i++) {\n var nodeId = getValue(mapper.id, treeData[i]);\n if (treeData[i] && nodeId && nodeId.toString() === currID) {\n treeData[i] = newData[0];\n return true;\n }\n else if (typeof mapper.child === 'string' && !isNOU(getValue(mapper.child, treeData[i]))) {\n var childObj = getValue(mapper.child, treeData[i]);\n found = this.updateChildPosition(childObj, this.getChildMapper(mapper), currID, newData, index);\n if (found !== undefined) {\n break;\n }\n }\n else if (this.fields.dataSource instanceof DataManager && !isNOU(getValue('child', treeData[i]))) {\n var childData = getValue('child', treeData[i]);\n found = this.updateChildPosition(childData, this.getChildMapper(mapper), currID, newData, index);\n if (found !== undefined) {\n break;\n }\n }\n }\n return found;\n };\n TreeView.prototype.dynamicState = function () {\n this.setDragAndDrop(this.allowDragAndDrop);\n this.wireEditingEvents(this.allowEditing);\n if (!this.disabled) {\n this.wireEvents();\n this.setRipple();\n }\n else {\n this.unWireEvents();\n this.rippleFn();\n this.rippleIconFn();\n }\n };\n TreeView.prototype.crudOperation = function (operation, nodes, target, newText, newNode, index, prevent) {\n var _this = this;\n var data = this.fields.dataSource;\n var matchedArr = [];\n var query = this.getQuery(this.fields);\n var key = this.fields.id;\n var crud;\n var changes = {\n addedRecords: [],\n deletedRecords: [],\n changedRecords: []\n };\n var nodesID = [];\n if (nodes) {\n nodesID = this.nodeType(nodes);\n }\n else if (target) {\n if (typeof target == \"string\") {\n nodesID[0] = target.toString();\n }\n else if (typeof target === \"object\") {\n nodesID[0] = target.getAttribute(\"data-uid\").toString();\n }\n }\n for (var i = 0, len = nodesID.length; i < len; i++) {\n var liEle = this.getElement(nodesID[i]);\n if (isNullOrUndefined(liEle)) {\n continue;\n }\n var removedData = this.getNodeObject(nodesID[i]);\n matchedArr.push(removedData);\n }\n switch (operation) {\n case 'delete':\n if (nodes.length == 1) {\n crud = data.remove(key, matchedArr[0], query.fromTable, query);\n }\n else {\n changes.deletedRecords = matchedArr;\n crud = data.saveChanges(changes, key, query.fromTable, query);\n }\n crud.then(function (e) { return _this.deleteSuccess(nodesID); })\n .catch(function (e) { return _this.dmFailure(e); });\n break;\n case 'update':\n matchedArr[0][this.fields.text] = newText;\n crud = data.update(key, matchedArr[0], query.fromTable, query);\n crud.then(function (e) { return _this.editSucess(target, newText, prevent); })\n .catch(function (e) { return _this.dmFailure(e, target, prevent); });\n break;\n case 'insert':\n if (newNode.length == 1) {\n crud = data.insert(newNode[0], query.fromTable, query);\n }\n else {\n var arr = [];\n for (var i = 0, len = newNode.length; i < len; i++) {\n arr.push(newNode[i]);\n }\n changes.addedRecords = arr;\n crud = data.saveChanges(changes, key, query.fromTable, query);\n }\n crud.then(function (e) {\n var dropLi = _this.getElement(target);\n _this.addSuccess(newNode, dropLi, index);\n _this.preventExpand = false;\n }).catch(function (e) { return _this.dmFailure(e); });\n break;\n }\n };\n TreeView.prototype.deleteSuccess = function (nodes) {\n var nodeData = [];\n for (var i = 0, len = nodes.length; i < len; i++) {\n var liEle = this.getElement(nodes[i]);\n nodeData.push(this.getNode(liEle));\n if (isNOU(liEle)) {\n continue;\n }\n this.removeNode(liEle);\n }\n this.updateInstance();\n if (this.dataType === 1) {\n this.groupedData = this.getGroupedData(this.treeData, this.fields.parentID);\n }\n this.triggerEvent('removeNode', nodeData);\n };\n TreeView.prototype.editSucess = function (target, newText, prevent) {\n var liEle = this.getElement(target);\n var txtEle = select('.' + LISTTEXT, liEle);\n this.appendNewText(liEle, txtEle, newText, prevent);\n };\n TreeView.prototype.addSuccess = function (nodes, dropLi, index) {\n var dropUl;\n var icon = dropLi ? dropLi.querySelector('.' + ICON) : null;\n var proxy = this;\n if (dropLi && icon && icon.classList.contains(EXPANDABLE) &&\n dropLi.querySelector('.' + PARENTITEM) === null) {\n proxy.renderChildNodes(dropLi, null, function () {\n dropUl = dropLi.querySelector('.' + PARENTITEM);\n proxy.addGivenNodes(nodes, dropLi, index, true, dropUl);\n proxy.triggerEvent('addNodes', nodes);\n });\n }\n else {\n this.addGivenNodes(nodes, dropLi, index, true);\n this.triggerEvent('addNodes', nodes);\n }\n };\n TreeView.prototype.dmFailure = function (e, target, prevent) {\n if (target) {\n this.updatePreviousText(target, prevent);\n }\n this.trigger('actionFailure', { error: e });\n };\n TreeView.prototype.updatePreviousText = function (target, prevent) {\n var liEle = this.getElement(target);\n var txtEle = select('.' + LISTTEXT, liEle);\n this.updateText(liEle, txtEle, this.oldText, prevent);\n };\n TreeView.prototype.getHierarchicalParentId = function (node, data, parentsID) {\n var _this = this;\n var index = data.findIndex(function (data) { return data[_this.fields.id] && data[_this.fields.id].toString() === node; });\n if (index == -1) {\n for (var i = 0; i < data.length; i++) {\n var childItems = getValue(this.fields.child.toString(), data[i]);\n if (!isNOU(childItems)) {\n index = childItems.findIndex(function (data) { return data[_this.fields.id] && data[_this.fields.id].toString() === node; });\n if (index == -1) {\n this.getHierarchicalParentId(node, childItems, parentsID);\n }\n else {\n parentsID.push(data[i][this.fields.id].toString());\n this.getHierarchicalParentId(data[i][this.fields.id].toString(), this.treeData, parentsID);\n break;\n }\n }\n }\n }\n return parentsID;\n };\n /**\n * Called internally if any of the property value changed.\n * @param {TreeView} newProp\n * @param {TreeView} oldProp\n * @returns void\n * @private\n */\n TreeView.prototype.onPropertyChanged = function (newProp, oldProp) {\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'allowDragAndDrop':\n this.setDragAndDrop(this.allowDragAndDrop);\n break;\n case 'dragArea':\n if (this.allowDragAndDrop) {\n this.dragObj.dragArea = this.dragArea;\n }\n break;\n case 'allowEditing':\n this.wireEditingEvents(this.allowEditing);\n break;\n case 'allowMultiSelection':\n if (this.selectedNodes.length > 1) {\n var sNode = this.getElement(this.selectedNodes[0]);\n this.isLoaded = false;\n this.removeSelectAll();\n this.selectNode(sNode, null);\n this.isLoaded = true;\n }\n this.setMultiSelect(this.allowMultiSelection);\n this.addMultiSelect(this.allowMultiSelection);\n break;\n case 'allowTextWrap':\n this.setTextWrap();\n this.updateWrap();\n break;\n case 'checkedNodes':\n if (this.showCheckBox) {\n this.checkedNodes = oldProp.checkedNodes;\n this.setCheckedNodes(newProp.checkedNodes);\n }\n break;\n case 'autoCheck':\n if (this.showCheckBox) {\n this.autoCheck = newProp.autoCheck;\n this.ensureIndeterminate();\n }\n break;\n case 'cssClass':\n this.setCssClass(oldProp.cssClass, newProp.cssClass);\n break;\n case 'enableRtl':\n this.setEnableRtl();\n break;\n case 'expandedNodes':\n this.isAnimate = false;\n this.setProperties({ expandedNodes: [] }, true);\n this.collapseAll();\n this.isInitalExpand = true;\n this.setProperties({ expandedNodes: isNOU(newProp.expandedNodes) ? [] : newProp.expandedNodes }, true);\n this.doExpandAction();\n this.isInitalExpand = false;\n this.isAnimate = true;\n break;\n case 'expandOn':\n this.wireExpandOnEvent(false);\n this.setExpandOnType();\n if (this.expandOnType !== 'None' && !this.disabled) {\n this.wireExpandOnEvent(true);\n }\n break;\n case 'disabled':\n this.setDisabledMode();\n this.dynamicState();\n break;\n case 'fields':\n this.isAnimate = false;\n this.isFieldChange = true;\n this.initialRender = true;\n this.reRenderNodes();\n this.initialRender = false;\n this.isAnimate = true;\n this.isFieldChange = false;\n break;\n case 'fullRowSelect':\n this.setFullRow(this.fullRowSelect);\n this.addFullRow(this.fullRowSelect);\n if (this.allowTextWrap) {\n this.setTextWrap();\n this.updateWrap();\n }\n break;\n case 'loadOnDemand':\n if (this.loadOnDemand === false && !this.onLoaded) {\n var nodes = this.element.querySelectorAll('li');\n var i = 0;\n while (i < nodes.length) {\n if (nodes[i].getAttribute('aria-expanded') !== 'true') {\n this.renderChildNodes(nodes[i], true, null, true);\n }\n i++;\n }\n this.onLoaded = true;\n }\n break;\n case 'nodeTemplate':\n this.hasTemplate = false;\n this.nodeTemplateFn = this.templateComplier(this.nodeTemplate);\n this.reRenderNodes();\n break;\n case 'selectedNodes':\n this.removeSelectAll();\n this.setProperties({ selectedNodes: newProp.selectedNodes }, true);\n this.doSelectionAction();\n break;\n case 'showCheckBox':\n this.reRenderNodes();\n break;\n case 'sortOrder':\n this.reRenderNodes();\n break;\n case 'fullRowNavigable':\n this.setProperties({ fullRowNavigable: newProp.fullRowNavigable }, true);\n this.listBaseOption.itemNavigable = newProp.fullRowNavigable;\n this.reRenderNodes();\n break;\n }\n }\n };\n /**\n * Removes the component from the DOM and detaches all its related event handlers. It also removes the attributes and classes.\n */\n TreeView.prototype.destroy = function () {\n this.clearTemplate();\n this.element.removeAttribute('aria-activedescendant');\n this.unWireEvents();\n this.wireEditingEvents(false);\n if (!this.disabled) {\n this.rippleFn();\n this.rippleIconFn();\n }\n this.setCssClass(this.cssClass, null);\n this.setDragAndDrop(false);\n this.setFullRow(false);\n if (this.ulElement && this.ulElement.parentElement) {\n this.ulElement.parentElement.removeChild(this.ulElement);\n }\n _super.prototype.destroy.call(this);\n };\n /**\n * Adds the collection of TreeView nodes based on target and index position. If target node is not specified,\n * then the nodes are added as children of the given parentID or in the root level of TreeView.\n * @param { { [key: string]: Object }[] } nodes - Specifies the array of JSON data that has to be added.\n * @param { string | Element } target - Specifies ID of TreeView node/TreeView node as target element.\n * @param { number } index - Specifies the index to place the newly added nodes in the target element.\n * @param { boolean } preventTargetExpand - If set to true, the target parent node will be prevented from auto expanding.\n */\n TreeView.prototype.addNodes = function (nodes, target, index, preventTargetExpand) {\n if (isNOU(nodes)) {\n return;\n }\n nodes = JSON.parse(JSON.stringify(nodes));\n var dropLi = this.getElement(target);\n this.preventExpand = preventTargetExpand;\n if (this.fields.dataSource instanceof DataManager) {\n if (!this.isOffline) {\n this.crudOperation('insert', null, target, null, nodes, index, this.preventExpand);\n }\n else {\n this.addSuccess(nodes, dropLi, index);\n }\n }\n else if (this.dataType === 2) {\n this.addGivenNodes(nodes, dropLi, index);\n }\n else {\n if (dropLi) {\n this.addGivenNodes(nodes, dropLi, index);\n }\n else {\n nodes = this.getSortedData(nodes);\n for (var i = 0; i < nodes.length; i++) {\n var pid = getValue(this.fields.parentID, nodes[i]);\n dropLi = pid ? this.getElement(pid.toString()) : pid;\n this.addGivenNodes([nodes[i]], dropLi, index);\n }\n }\n this.groupedData = this.getGroupedData(this.treeData, this.fields.parentID);\n }\n this.updateCheckedStateFromDS();\n if (this.showCheckBox && dropLi) {\n this.ensureParentCheckState(dropLi);\n }\n if ((this.fields.dataSource instanceof DataManager === false)) {\n this.preventExpand = false;\n this.triggerEvent('addNodes', nodes);\n }\n };\n /**\n * Editing can also be enabled by using the `beginEdit` property, instead of clicking on the\n * TreeView node. On passing the node ID or element through this property, the edit textBox\n * will be created for the particular node thus allowing us to edit it.\n * @param {string | Element} node - Specifies ID of TreeView node/TreeView node.\n */\n TreeView.prototype.beginEdit = function (node) {\n var ele = this.getElement(node);\n if (isNOU(ele) || this.disabled) {\n return;\n }\n this.createTextbox(ele, null);\n };\n /**\n * Checks all the unchecked nodes. You can also check specific nodes by passing array of unchecked nodes\n * as argument to this method.\n * @param {string[] | Element[]} nodes - Specifies the array of TreeView nodes ID/array of TreeView node.\n */\n TreeView.prototype.checkAll = function (nodes) {\n if (this.showCheckBox) {\n this.doCheckBoxAction(nodes, true);\n }\n };\n /**\n * Collapses all the expanded TreeView nodes. You can collapse specific nodes by passing array of nodes as argument to this method.\n * You can also collapse all the nodes excluding the hidden nodes by setting **excludeHiddenNodes** to true. If you want to collapse\n * a specific level of nodes, set **level** as argument to collapseAll method.\n * @param {string[] | Element[]} nodes - Specifies the array of TreeView nodes ID/ array of TreeView node.\n * @param {number} level - TreeView nodes will collapse up to the given level.\n * @param {boolean} excludeHiddenNodes - Whether or not to exclude hidden nodes of TreeView when collapsing all nodes.\n */\n TreeView.prototype.collapseAll = function (nodes, level, excludeHiddenNodes) {\n if (!isNOU(nodes)) {\n this.doGivenAction(nodes, COLLAPSIBLE, false);\n }\n else {\n if (level > 0) {\n this.collapseByLevel(select('.' + PARENTITEM, this.element), level, excludeHiddenNodes);\n }\n else {\n this.collapseAllNodes(excludeHiddenNodes);\n }\n }\n };\n /**\n * Disables the collection of nodes by passing the ID of nodes or node elements in the array.\n * @param {string[] | Element[]} nodes - Specifies the array of TreeView nodes ID/array of TreeView nodes.\n */\n TreeView.prototype.disableNodes = function (nodes) {\n if (!isNOU(nodes)) {\n this.doDisableAction(nodes);\n }\n };\n /**\n * Enables the collection of disabled nodes by passing the ID of nodes or node elements in the array.\n * @param {string[] | Element[]} nodes - Specifies the array of TreeView nodes ID/array of TreeView nodes.\n */\n TreeView.prototype.enableNodes = function (nodes) {\n if (!isNOU(nodes)) {\n this.doEnableAction(nodes);\n }\n };\n /**\n * Ensures visibility of the TreeView node by using node ID or node element.\n * When many TreeView nodes are present and we need to find a particular node, `ensureVisible` property\n * helps bring the node to visibility by expanding the TreeView and scrolling to the specific node.\n * @param {string | Element} node - Specifies ID of TreeView node/TreeView nodes.\n */\n TreeView.prototype.ensureVisible = function (node) {\n var parentsId = [];\n if (this.dataType == 1) {\n var nodeData = this.getTreeData(node);\n while (nodeData.length != 0 && !isNOU(nodeData[0][this.fields.parentID])) {\n parentsId.push(nodeData[0][this.fields.parentID].toString());\n nodeData = this.getTreeData(nodeData[0][this.fields.parentID].toString());\n }\n }\n else if (this.dataType == 2) {\n parentsId = this.getHierarchicalParentId(node, this.treeData, parentsId).reverse();\n }\n this.expandAll(parentsId);\n var liEle = this.getElement(node);\n if (!isNOU(liEle)) {\n if (typeof node == 'object') {\n var parents = this.parents(liEle, '.' + LISTITEM);\n this.expandAll(parents);\n }\n setTimeout(function () { liEle.scrollIntoView({ behavior: \"smooth\" }); }, 450);\n }\n };\n /**\n * Expands all the collapsed TreeView nodes. You can expand the specific nodes by passing the array of collapsed nodes\n * as argument to this method. You can also expand all the collapsed nodes by excluding the hidden nodes by setting\n * **excludeHiddenNodes** to true to this method. To expand a specific level of nodes, set **level** as argument to expandAll method.\n * @param {string[] | Element[]} nodes - Specifies the array of TreeView nodes ID/array of TreeView nodes.\n * @param {number} level - TreeView nodes will expand up to the given level.\n * @param {boolean} excludeHiddenNodes - Whether or not to exclude hidden nodes when expanding all nodes.\n */\n TreeView.prototype.expandAll = function (nodes, level, excludeHiddenNodes) {\n if (!isNOU(nodes)) {\n this.doGivenAction(nodes, EXPANDABLE, true);\n }\n else {\n if (level > 0) {\n this.expandByLevel(select('.' + PARENTITEM, this.element), level, excludeHiddenNodes);\n }\n else {\n this.expandAllNodes(excludeHiddenNodes);\n }\n }\n };\n /**\n * Gets all the checked nodes including child, whether it is loaded or not.\n */\n TreeView.prototype.getAllCheckedNodes = function () {\n var checkNodes = this.checkedNodes;\n return checkNodes;\n };\n /**\n * Gets all the disabled nodes including child, whether it is loaded or not.\n */\n TreeView.prototype.getDisabledNodes = function () {\n var disabledNodes = this.disableNode;\n return disabledNodes;\n };\n /**\n * Gets the node's data such as id, text, parentID, selected, isChecked, and expanded by passing the node element or it's ID.\n * @param {string | Element} node - Specifies ID of TreeView node/TreeView node.\n */\n TreeView.prototype.getNode = function (node) {\n var ele = this.getElement(node);\n return this.getNodeData(ele, true);\n };\n /**\n * To get the updated data source of TreeView after performing some operation like drag and drop, node editing,\n * node selecting/unSelecting, node expanding/collapsing, node checking/unChecking, adding and removing node.\n * * If you pass the ID of TreeView node as arguments for this method then it will return the updated data source\n * of the corresponding node otherwise it will return the entire updated data source of TreeView.\n * * The updated data source also contains custom attributes if you specified in data source.\n * @param {string | Element} node - Specifies ID of TreeView node/TreeView node.\n * @isGenericType true\n */\n TreeView.prototype.getTreeData = function (node) {\n var id = this.getId(node);\n this.updatePersistProp();\n if (isNOU(id)) {\n return this.treeData;\n }\n else {\n var data = this.getNodeObject(id);\n return isNOU(data) ? [] : [data];\n }\n };\n /**\n * Moves the collection of nodes within the same TreeView based on target or its index position.\n * @param {string[] | Element[]} sourceNodes - Specifies the array of TreeView nodes ID/array of TreeView node.\n * @param {string | Element} target - Specifies ID of TreeView node/TreeView node as target element.\n * @param {number} index - Specifies the index to place the moved nodes in the target element.\n * @param { boolean } preventTargetExpand - If set to true, the target parent node will be prevented from auto expanding.\n */\n TreeView.prototype.moveNodes = function (sourceNodes, target, index, preventTargetExpand) {\n var dropLi = this.getElement(target);\n var nodeData = [];\n if (isNOU(dropLi)) {\n return;\n }\n for (var i = 0; i < sourceNodes.length; i++) {\n var dragLi = this.getElement(sourceNodes[i]);\n nodeData.push(this.getNode(dragLi));\n if (isNOU(dragLi) || dropLi.isSameNode(dragLi) || this.isDescendant(dragLi, dropLi)) {\n continue;\n }\n this.preventExpand = preventTargetExpand;\n this.dropAsChildNode(dragLi, dropLi, this, index);\n }\n if (this.fields.dataSource instanceof DataManager === false) {\n this.preventExpand = false;\n }\n this.triggerEvent('moveNodes', nodeData);\n };\n /**\n * Refreshes a particular node of the TreeView.\n * @param {string | Element} target - Specifies the ID of TreeView node or TreeView node as target element.\n * @param {{ [key: string]: Object }[]} newData - Specifies the new data of TreeView node.\n */\n TreeView.prototype.refreshNode = function (target, newData) {\n if (isNOU(target) || isNOU(newData)) {\n return;\n }\n var id;\n var isRefreshChild = false;\n if (this.dataType == 1 && newData.length > 1) {\n isRefreshChild = true;\n }\n else if (this.dataType == 2 && newData.length === 1) {\n var updatedChildValue = getValue(this.fields.child.toString(), newData[0]);\n if (!isNOU(updatedChildValue)) {\n isRefreshChild = true;\n }\n }\n var liEle = this.getElement(target);\n id = liEle ? liEle.getAttribute('data-uid') : ((target) ? target.toString() : null);\n this.refreshData = this.getNodeObject(id);\n newData = JSON.parse(JSON.stringify(newData));\n /* eslint-disable */\n var newNodeData;\n var parentData;\n if (this.dataType == 1 && isRefreshChild) {\n for (var k = 0; k < newData.length; k++) {\n if (isNOU(newData[k][this.fields.parentID])) {\n parentData = newData[k];\n newData.splice(k, 1);\n break;\n }\n }\n newNodeData = extend({}, this.refreshData, parentData);\n }\n else {\n newNodeData = extend({}, this.refreshData, newData[0]);\n }\n if (isNOU(liEle)) {\n this.updatePosition(id, newNodeData, isRefreshChild, newData);\n return;\n }\n this.isRefreshed = true;\n var level = parseFloat(liEle.getAttribute('aria-level'));\n var newliEle = ListBase.createListItemFromJson(this.createElement, [newNodeData], this.listBaseOption, level);\n var ul = select('.' + PARENTITEM, liEle);\n var childItems = getValue(this.fields.child.toString(), newNodeData);\n if ((isRefreshChild && ul) || (isRefreshChild && !isNOU(childItems))) {\n var parentEle = liEle.parentElement;\n var index = Array.prototype.indexOf.call(parentEle.childNodes, liEle);\n remove(liEle);\n parentEle.insertBefore(newliEle[0], parentEle.childNodes[index]);\n this.updatePosition(id, newNodeData, isRefreshChild, newData);\n if (isRefreshChild && ul) {\n this.expandAll([id]);\n }\n }\n else {\n var txtEle = select('.' + TEXTWRAP, liEle);\n var newTextEle = select('.' + TEXTWRAP, newliEle[0]);\n var icon = select('div.' + ICON, txtEle);\n var newIcon = select('div.' + ICON, newTextEle);\n if (icon && newIcon) {\n if (newIcon.classList.contains(EXPANDABLE) && icon.classList.contains(COLLAPSIBLE)) {\n removeClass([newIcon], EXPANDABLE);\n addClass([newIcon], COLLAPSIBLE);\n }\n else if (newIcon.classList.contains(COLLAPSIBLE) && icon.classList.contains(EXPANDABLE)) {\n removeClass([newIcon], COLLAPSIBLE);\n addClass([newIcon], EXPANDABLE);\n }\n else if (icon.classList.contains('interaction')) {\n addClass([newIcon], 'interaction');\n }\n }\n remove(txtEle);\n var fullEle = select('.' + FULLROW, liEle);\n fullEle.parentNode.insertBefore(newTextEle, fullEle.nextSibling);\n this.updatePosition(id, newNodeData, isRefreshChild, newData);\n }\n liEle = this.getElement(target);\n if (newNodeData[this.fields.tooltip]) {\n liEle.setAttribute(\"title\", newNodeData[this.fields.tooltip]);\n }\n if (newNodeData.hasOwnProperty(this.fields.htmlAttributes) && newNodeData[this.fields.htmlAttributes]) {\n var attr = {};\n merge(attr, newNodeData[this.fields.htmlAttributes]);\n if (attr.class) {\n addClass([liEle], attr.class.split(' '));\n delete attr.class;\n }\n else {\n attributes(liEle, attr);\n }\n }\n if (this.selectedNodes.indexOf(id) !== -1) {\n liEle.setAttribute('aria-selected', 'true');\n addClass([liEle], ACTIVE);\n }\n this.isRefreshed = false;\n this.triggerEvent('refreshNode', [this.getNode(liEle)]);\n };\n /**\n * Removes the collection of TreeView nodes by passing the array of node details as argument to this method.\n * @param {string[] | Element[]} nodes - Specifies the array of TreeView nodes ID/array of TreeView node.\n */\n TreeView.prototype.removeNodes = function (nodes) {\n if (!isNOU(nodes)) {\n if (this.fields.dataSource instanceof DataManager && !this.isOffline) {\n this.crudOperation('delete', nodes);\n }\n else {\n this.deleteSuccess(nodes);\n }\n }\n };\n /**\n * Replaces the text of the TreeView node with the given text.\n * @param {string | Element} target - Specifies ID of TreeView node/TreeView node as target element.\n * @param {string} newText - Specifies the new text of TreeView node.\n */\n TreeView.prototype.updateNode = function (target, newText) {\n var _this = this;\n if (isNOU(target) || isNOU(newText) || !this.allowEditing) {\n return;\n }\n var liEle = this.getElement(target);\n if (isNOU(liEle)) {\n return;\n }\n var txtEle = select('.' + LISTTEXT, liEle);\n this.updateOldText(liEle);\n var eventArgs = this.getEditEvent(liEle, null, null);\n this.trigger('nodeEditing', eventArgs, function (observedArgs) {\n if (!observedArgs.cancel) {\n if (_this.fields.dataSource instanceof DataManager && !_this.isOffline) {\n _this.crudOperation('update', null, target, newText, null, null, false);\n }\n else {\n _this.appendNewText(liEle, txtEle, newText, false);\n }\n }\n });\n };\n /**\n * Unchecks all the checked nodes. You can also uncheck the specific nodes by passing array of checked nodes\n * as argument to this method.\n * @param {string[] | Element[]} nodes - Specifies the array of TreeView nodes ID/array of TreeView node.\n */\n TreeView.prototype.uncheckAll = function (nodes) {\n if (this.showCheckBox) {\n this.doCheckBoxAction(nodes, false);\n }\n };\n var TreeView_1;\n __decorate([\n Property(false)\n ], TreeView.prototype, \"allowDragAndDrop\", void 0);\n __decorate([\n Property(false)\n ], TreeView.prototype, \"allowEditing\", void 0);\n __decorate([\n Property(false)\n ], TreeView.prototype, \"allowMultiSelection\", void 0);\n __decorate([\n Property(false)\n ], TreeView.prototype, \"allowTextWrap\", void 0);\n __decorate([\n Complex({}, NodeAnimationSettings)\n ], TreeView.prototype, \"animation\", void 0);\n __decorate([\n Property()\n ], TreeView.prototype, \"checkedNodes\", void 0);\n __decorate([\n Property('')\n ], TreeView.prototype, \"cssClass\", void 0);\n __decorate([\n Property(false)\n ], TreeView.prototype, \"disabled\", void 0);\n __decorate([\n Property(null)\n ], TreeView.prototype, \"dragArea\", void 0);\n __decorate([\n Property(false)\n ], TreeView.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Property(false)\n ], TreeView.prototype, \"enablePersistence\", void 0);\n __decorate([\n Property()\n ], TreeView.prototype, \"expandedNodes\", void 0);\n __decorate([\n Property('Auto')\n ], TreeView.prototype, \"expandOn\", void 0);\n __decorate([\n Complex({}, FieldsSettings)\n ], TreeView.prototype, \"fields\", void 0);\n __decorate([\n Property(true)\n ], TreeView.prototype, \"fullRowSelect\", void 0);\n __decorate([\n Property(true)\n ], TreeView.prototype, \"loadOnDemand\", void 0);\n __decorate([\n Property()\n ], TreeView.prototype, \"locale\", void 0);\n __decorate([\n Property()\n ], TreeView.prototype, \"nodeTemplate\", void 0);\n __decorate([\n Property()\n ], TreeView.prototype, \"selectedNodes\", void 0);\n __decorate([\n Property('None')\n ], TreeView.prototype, \"sortOrder\", void 0);\n __decorate([\n Property(false)\n ], TreeView.prototype, \"showCheckBox\", void 0);\n __decorate([\n Property(true)\n ], TreeView.prototype, \"autoCheck\", void 0);\n __decorate([\n Property(false)\n ], TreeView.prototype, \"fullRowNavigable\", void 0);\n __decorate([\n Event()\n ], TreeView.prototype, \"actionFailure\", void 0);\n __decorate([\n Event()\n ], TreeView.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], TreeView.prototype, \"dataBound\", void 0);\n __decorate([\n Event()\n ], TreeView.prototype, \"dataSourceChanged\", void 0);\n __decorate([\n Event()\n ], TreeView.prototype, \"drawNode\", void 0);\n __decorate([\n Event()\n ], TreeView.prototype, \"destroyed\", void 0);\n __decorate([\n Event()\n ], TreeView.prototype, \"keyPress\", void 0);\n __decorate([\n Event()\n ], TreeView.prototype, \"nodeChecked\", void 0);\n __decorate([\n Event()\n ], TreeView.prototype, \"nodeChecking\", void 0);\n __decorate([\n Event()\n ], TreeView.prototype, \"nodeClicked\", void 0);\n __decorate([\n Event()\n ], TreeView.prototype, \"nodeCollapsed\", void 0);\n __decorate([\n Event()\n ], TreeView.prototype, \"nodeCollapsing\", void 0);\n __decorate([\n Event()\n ], TreeView.prototype, \"nodeDragging\", void 0);\n __decorate([\n Event()\n ], TreeView.prototype, \"nodeDragStart\", void 0);\n __decorate([\n Event()\n ], TreeView.prototype, \"nodeDragStop\", void 0);\n __decorate([\n Event()\n ], TreeView.prototype, \"nodeDropped\", void 0);\n __decorate([\n Event()\n ], TreeView.prototype, \"nodeEdited\", void 0);\n __decorate([\n Event()\n ], TreeView.prototype, \"nodeEditing\", void 0);\n __decorate([\n Event()\n ], TreeView.prototype, \"nodeExpanded\", void 0);\n __decorate([\n Event()\n ], TreeView.prototype, \"nodeExpanding\", void 0);\n __decorate([\n Event()\n ], TreeView.prototype, \"nodeSelected\", void 0);\n __decorate([\n Event()\n ], TreeView.prototype, \"nodeSelecting\", void 0);\n TreeView = TreeView_1 = __decorate([\n NotifyPropertyChanges\n ], TreeView);\n return TreeView;\n}(Component));\nexport { TreeView };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { TreeView } from '@syncfusion/ej2-navigations';\nimport { ComponentBase, applyMixins } from '@syncfusion/ej2-react-base';\n/**\n * `TreeViewComponent` represents the react TreeView Component.\n * ```ts\n * \n * ```\n */\nvar TreeViewComponent = /** @class */ (function (_super) {\n __extends(TreeViewComponent, _super);\n function TreeViewComponent(props) {\n var _this = _super.call(this, props) || this;\n _this.initRenderCalled = false;\n _this.checkInjectedModules = true;\n _this.statelessTemplateProps = null;\n _this.templateProps = null;\n _this.immediateRender = false;\n _this.portals = [];\n return _this;\n }\n TreeViewComponent.prototype.render = function () {\n if (((this.element && !this.initRenderCalled) || this.refreshing) && !this.isReactForeceUpdate) {\n _super.prototype.render.call(this);\n this.initRenderCalled = true;\n }\n else {\n return React.createElement('div', this.getDefaultAttributes(), [].concat(this.props.children, this.portals));\n }\n };\n return TreeViewComponent;\n}(TreeView));\nexport { TreeViewComponent };\napplyMixins(TreeViewComponent, [ComponentBase, React.Component]);\n","const prefix = \"far\";\nconst faTrashCan = {\n prefix: 'far',\n iconName: 'trash-can',\n icon: [448, 512, [61460, \"trash-alt\"], \"f2ed\", \"M170.5 51.6L151.5 80l145 0-19-28.4c-1.5-2.2-4-3.6-6.7-3.6l-93.7 0c-2.7 0-5.2 1.3-6.7 3.6zm147-26.6L354.2 80 368 80l48 0 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 304c0 44.2-35.8 80-80 80l-224 0c-44.2 0-80-35.8-80-80l0-304-8 0c-13.3 0-24-10.7-24-24S10.7 80 24 80l8 0 48 0 13.8 0 36.7-55.1C140.9 9.4 158.4 0 177.1 0l93.7 0c18.7 0 36.2 9.4 46.6 24.9zM80 128l0 304c0 17.7 14.3 32 32 32l224 0c17.7 0 32-14.3 32-32l0-304L80 128zm80 64l0 208c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-208c0-8.8 7.2-16 16-16s16 7.2 16 16zm80 0l0 208c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-208c0-8.8 7.2-16 16-16s16 7.2 16 16zm80 0l0 208c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-208c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nconst faTrashAlt = faTrashCan;\nconst faMessage = {\n prefix: 'far',\n iconName: 'message',\n icon: [512, 512, [\"comment-alt\"], \"f27a\", \"M160 368c26.5 0 48 21.5 48 48l0 16 72.5-54.4c8.3-6.2 18.4-9.6 28.8-9.6L448 368c8.8 0 16-7.2 16-16l0-288c0-8.8-7.2-16-16-16L64 48c-8.8 0-16 7.2-16 16l0 288c0 8.8 7.2 16 16 16l96 0zm48 124l-.2 .2-5.1 3.8-17.1 12.8c-4.8 3.6-11.3 4.2-16.8 1.5s-8.8-8.2-8.8-14.3l0-21.3 0-6.4 0-.3 0-4 0-48-48 0-48 0c-35.3 0-64-28.7-64-64L0 64C0 28.7 28.7 0 64 0L448 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64l-138.7 0L208 492z\"]\n};\nconst faCommentAlt = faMessage;\nconst faFileLines = {\n prefix: 'far',\n iconName: 'file-lines',\n icon: [384, 512, [128441, 128462, 61686, \"file-alt\", \"file-text\"], \"f15c\", \"M64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16l160 0 0 80c0 17.7 14.3 32 32 32l80 0 0 288c0 8.8-7.2 16-16 16L64 464zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-293.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0L64 0zm56 256c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"]\n};\nconst faFileAlt = faFileLines;\nconst faFileText = faFileLines;\nconst faCalendarDays = {\n prefix: 'far',\n iconName: 'calendar-days',\n icon: [448, 512, [\"calendar-alt\"], \"f073\", \"M152 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40L64 64C28.7 64 0 92.7 0 128l0 16 0 48L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-256 0-48 0-16c0-35.3-28.7-64-64-64l-40 0 0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40L152 64l0-40zM48 192l80 0 0 56-80 0 0-56zm0 104l80 0 0 64-80 0 0-64zm128 0l96 0 0 64-96 0 0-64zm144 0l80 0 0 64-80 0 0-64zm80-48l-80 0 0-56 80 0 0 56zm0 160l0 40c0 8.8-7.2 16-16 16l-64 0 0-56 80 0zm-128 0l0 56-96 0 0-56 96 0zm-144 0l0 56-64 0c-8.8 0-16-7.2-16-16l0-40 80 0zM272 248l-96 0 0-56 96 0 0 56z\"]\n};\nconst faCalendarAlt = faCalendarDays;\nconst faHandPointRight = {\n prefix: 'far',\n iconName: 'hand-point-right',\n icon: [512, 512, [], \"f0a4\", \"M448 128l-177.6 0c1 5.2 1.6 10.5 1.6 16l0 16 32 0 144 0c8.8 0 16-7.2 16-16s-7.2-16-16-16zM224 144c0-17.7-14.3-32-32-32c0 0 0 0 0 0l-24 0c-66.3 0-120 53.7-120 120l0 48c0 52.5 33.7 97.1 80.7 113.4c-.5-3.1-.7-6.2-.7-9.4c0-20 9.2-37.9 23.6-49.7c-4.9-9-7.6-19.4-7.6-30.3c0-15.1 5.3-29 14-40c-8.8-11-14-24.9-14-40l0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40c0 8.8 7.2 16 16 16s16-7.2 16-16l0-40 0-40zM192 64s0 0 0 0c18 0 34.6 6 48 16l208 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-82 0c1.3 5.1 2 10.5 2 16c0 25.3-14.7 47.2-36 57.6c2.6 7 4 14.5 4 22.4c0 20-9.2 37.9-23.6 49.7c4.9 9 7.6 19.4 7.6 30.3c0 35.3-28.7 64-64 64l-64 0-24 0C75.2 448 0 372.8 0 280l0-48C0 139.2 75.2 64 168 64l24 0zm64 336c8.8 0 16-7.2 16-16s-7.2-16-16-16l-48 0-16 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l64 0zm16-176c0 5.5-.7 10.9-2 16l2 0 32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0 0 16zm-24 64l-40 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l48 0 16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-24 0z\"]\n};\nconst faFaceSmileBeam = {\n prefix: 'far',\n iconName: 'face-smile-beam',\n icon: [512, 512, [128522, \"smile-beam\"], \"f5b8\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm177.6 62.1C192.8 334.5 218.8 352 256 352s63.2-17.5 78.4-33.9c9-9.7 24.2-10.4 33.9-1.4s10.4 24.2 1.4 33.9c-22 23.8-60 49.4-113.6 49.4s-91.7-25.5-113.6-49.4c-9-9.7-8.4-24.9 1.4-33.9s24.9-8.4 33.9 1.4zm40-89.3s0 0 0 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0zm160 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0z\"]\n};\nconst faSmileBeam = faFaceSmileBeam;\nconst faFaceGrinStars = {\n prefix: 'far',\n iconName: 'face-grin-stars',\n icon: [512, 512, [129321, \"grin-stars\"], \"f587\", \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM183.2 132.6c-1.3-2.8-4.1-4.6-7.2-4.6s-5.9 1.8-7.2 4.6l-16.6 34.7-38.1 5c-3.1 .4-5.6 2.5-6.6 5.5s-.1 6.2 2.1 8.3l27.9 26.5-7 37.8c-.6 3 .7 6.1 3.2 7.9s5.8 2 8.5 .6L176 240.5l33.8 18.3c2.7 1.5 6 1.3 8.5-.6s3.7-4.9 3.2-7.9l-7-37.8L242.4 186c2.2-2.1 3.1-5.3 2.1-8.3s-3.5-5.1-6.6-5.5l-38.1-5-16.6-34.7zm160 0c-1.3-2.8-4.1-4.6-7.2-4.6s-5.9 1.8-7.2 4.6l-16.6 34.7-38.1 5c-3.1 .4-5.6 2.5-6.6 5.5s-.1 6.2 2.1 8.3l27.9 26.5-7 37.8c-.6 3 .7 6.1 3.2 7.9s5.8 2 8.5 .6L336 240.5l33.8 18.3c2.7 1.5 6 1.3 8.5-.6s3.7-4.9 3.2-7.9l-7-37.8L402.4 186c2.2-2.1 3.1-5.3 2.1-8.3s-3.5-5.1-6.6-5.5l-38.1-5-16.6-34.7zm6.3 175.8c-28.9 6.8-60.5 10.5-93.6 10.5s-64.7-3.7-93.6-10.5c-18.7-4.4-35.9 12-25.5 28.1c24.6 38.1 68.7 63.5 119.1 63.5s94.5-25.4 119.1-63.5c10.4-16.1-6.8-32.5-25.5-28.1z\"]\n};\nconst faGrinStars = faFaceGrinStars;\nconst faAddressBook = {\n prefix: 'far',\n iconName: 'address-book',\n icon: [512, 512, [62138, \"contact-book\"], \"f2b9\", \"M384 48c8.8 0 16 7.2 16 16l0 384c0 8.8-7.2 16-16 16L96 464c-8.8 0-16-7.2-16-16L80 64c0-8.8 7.2-16 16-16l288 0zM96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l288 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L96 0zM240 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm-32 32c-44.2 0-80 35.8-80 80c0 8.8 7.2 16 16 16l192 0c8.8 0 16-7.2 16-16c0-44.2-35.8-80-80-80l-64 0zM512 80c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64zM496 192c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8-7.2-16-16-16zm16 144c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64z\"]\n};\nconst faContactBook = faAddressBook;\nconst faComments = {\n prefix: 'far',\n iconName: 'comments',\n icon: [640, 512, [128490, 61670], \"f086\", \"M88.2 309.1c9.8-18.3 6.8-40.8-7.5-55.8C59.4 230.9 48 204 48 176c0-63.5 63.8-128 160-128s160 64.5 160 128s-63.8 128-160 128c-13.1 0-25.8-1.3-37.8-3.6c-10.4-2-21.2-.6-30.7 4.2c-4.1 2.1-8.3 4.1-12.6 6c-16 7.2-32.9 13.5-49.9 18c2.8-4.6 5.4-9.1 7.9-13.6c1.1-1.9 2.2-3.9 3.2-5.9zM208 352c114.9 0 208-78.8 208-176S322.9 0 208 0S0 78.8 0 176c0 41.8 17.2 80.1 45.9 110.3c-.9 1.7-1.9 3.5-2.8 5.1c-10.3 18.4-22.3 36.5-36.6 52.1c-6.6 7-8.3 17.2-4.6 25.9C5.8 378.3 14.4 384 24 384c43 0 86.5-13.3 122.7-29.7c4.8-2.2 9.6-4.5 14.2-6.8c15.1 3 30.9 4.5 47.1 4.5zM432 480c16.2 0 31.9-1.6 47.1-4.5c4.6 2.3 9.4 4.6 14.2 6.8C529.5 498.7 573 512 616 512c9.6 0 18.2-5.7 22-14.5c3.8-8.8 2-19-4.6-25.9c-14.2-15.6-26.2-33.7-36.6-52.1c-.9-1.7-1.9-3.4-2.8-5.1C622.8 384.1 640 345.8 640 304c0-94.4-87.9-171.5-198.2-175.8c4.1 15.2 6.2 31.2 6.2 47.8l0 .6c87.2 6.7 144 67.5 144 127.4c0 28-11.4 54.9-32.7 77.2c-14.3 15-17.3 37.6-7.5 55.8c1.1 2 2.2 4 3.2 5.9c2.5 4.5 5.2 9 7.9 13.6c-17-4.5-33.9-10.7-49.9-18c-4.3-1.9-8.5-3.9-12.6-6c-9.5-4.8-20.3-6.2-30.7-4.2c-12.1 2.4-24.8 3.6-37.8 3.6c-61.7 0-110-26.5-136.8-62.3c-16 5.4-32.8 9.4-50 11.8C279 439.8 350 480 432 480z\"]\n};\nconst faPaste = {\n prefix: 'far',\n iconName: 'paste',\n icon: [512, 512, [\"file-clipboard\"], \"f0ea\", \"M104.6 48L64 48C28.7 48 0 76.7 0 112L0 384c0 35.3 28.7 64 64 64l96 0 0-48-96 0c-8.8 0-16-7.2-16-16l0-272c0-8.8 7.2-16 16-16l16 0c0 17.7 14.3 32 32 32l72.4 0C202 108.4 227.6 96 256 96l62 0c-7.1-27.6-32.2-48-62-48l-40.6 0C211.6 20.9 188.2 0 160 0s-51.6 20.9-55.4 48zM144 56a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM448 464l-192 0c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l140.1 0L464 243.9 464 448c0 8.8-7.2 16-16 16zM256 512l192 0c35.3 0 64-28.7 64-64l0-204.1c0-12.7-5.1-24.9-14.1-33.9l-67.9-67.9c-9-9-21.2-14.1-33.9-14.1L256 128c-35.3 0-64 28.7-64 64l0 256c0 35.3 28.7 64 64 64z\"]\n};\nconst faFileClipboard = faPaste;\nconst faFaceGrinTongueSquint = {\n prefix: 'far',\n iconName: 'face-grin-tongue-squint',\n icon: [512, 512, [128541, \"grin-tongue-squint\"], \"f58a\", \"M464 256c0-114.9-93.1-208-208-208S48 141.1 48 256c0 81.7 47.1 152.4 115.7 186.4c-2.4-8.4-3.7-17.3-3.7-26.4l0-23.3c-24-17.5-43.1-41.4-54.8-69.2c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19c12.3-3.8 24.3 6.9 19.3 18.7c-11.8 28-31.1 52-55.4 69.6l0 22.9c0 9.2-1.3 18-3.7 26.4C416.9 408.4 464 337.7 464 256zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm116-98.9c0-9 9.6-14.7 17.5-10.5l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6zm262.5-10.5c7.9-4.2 17.5 1.5 17.5 10.5c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9zM320 416l0-37.4c0-14.7-11.9-26.6-26.6-26.6l-2 0c-11.3 0-21.1 7.9-23.6 18.9c-2.8 12.6-20.8 12.6-23.6 0c-2.5-11.1-12.3-18.9-23.6-18.9l-2 0c-14.7 0-26.6 11.9-26.6 26.6l0 37.4c0 35.3 28.7 64 64 64s64-28.7 64-64z\"]\n};\nconst faGrinTongueSquint = faFaceGrinTongueSquint;\nconst faFaceFlushed = {\n prefix: 'far',\n iconName: 'face-flushed',\n icon: [512, 512, [128563, \"flushed\"], \"f579\", \"M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM160.4 248a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm216-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM192 336c-13.3 0-24 10.7-24 24s10.7 24 24 24l128 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-128 0zM160 176a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm0 128a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm144-80a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm128 0a80 80 0 1 0 -160 0 80 80 0 1 0 160 0z\"]\n};\nconst faFlushed = faFaceFlushed;\nconst faSquareCaretRight = {\n prefix: 'far',\n iconName: 'square-caret-right',\n icon: [448, 512, [\"caret-square-right\"], \"f152\", \"M400 96c0-8.8-7.2-16-16-16L64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320zM384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM320 256c0 6.7-2.8 13-7.7 17.6l-112 104c-7 6.5-17.2 8.2-25.9 4.4s-14.4-12.5-14.4-22l0-208c0-9.5 5.7-18.2 14.4-22s18.9-2.1 25.9 4.4l112 104c4.9 4.5 7.7 10.9 7.7 17.6z\"]\n};\nconst faCaretSquareRight = faSquareCaretRight;\nconst faSquareMinus = {\n prefix: 'far',\n iconName: 'square-minus',\n icon: [448, 512, [61767, \"minus-square\"], \"f146\", \"M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM152 232l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nconst faMinusSquare = faSquareMinus;\nconst faCompass = {\n prefix: 'far',\n iconName: 'compass',\n icon: [512, 512, [129517], \"f14e\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm306.7 69.1L162.4 380.6c-19.4 7.5-38.5-11.6-31-31l55.5-144.3c3.3-8.5 9.9-15.1 18.4-18.4l144.3-55.5c19.4-7.5 38.5 11.6 31 31L325.1 306.7c-3.2 8.5-9.9 15.1-18.4 18.4zM288 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"]\n};\nconst faSquareCaretDown = {\n prefix: 'far',\n iconName: 'square-caret-down',\n icon: [448, 512, [\"caret-square-down\"], \"f150\", \"M384 432c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0zm64-16c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320zM224 352c-6.7 0-13-2.8-17.6-7.7l-104-112c-6.5-7-8.2-17.2-4.4-25.9s12.5-14.4 22-14.4l208 0c9.5 0 18.2 5.7 22 14.4s2.1 18.9-4.4 25.9l-104 112c-4.5 4.9-10.9 7.7-17.6 7.7z\"]\n};\nconst faCaretSquareDown = faSquareCaretDown;\nconst faFaceKissBeam = {\n prefix: 'far',\n iconName: 'face-kiss-beam',\n icon: [512, 512, [128537, \"kiss-beam\"], \"f597\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm304.7 41.7c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C274.7 427.1 257.4 432 240 432c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9c0 0 0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7c0 0 0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4zm-87.1-68.9s0 0 0 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0zm160 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0z\"]\n};\nconst faKissBeam = faFaceKissBeam;\nconst faLightbulb = {\n prefix: 'far',\n iconName: 'lightbulb',\n icon: [384, 512, [128161], \"f0eb\", \"M297.2 248.9C311.6 228.3 320 203.2 320 176c0-70.7-57.3-128-128-128S64 105.3 64 176c0 27.2 8.4 52.3 22.8 72.9c3.7 5.3 8.1 11.3 12.8 17.7c0 0 0 0 0 0c12.9 17.7 28.3 38.9 39.8 59.8c10.4 19 15.7 38.8 18.3 57.5L109 384c-2.2-12-5.9-23.7-11.8-34.5c-9.9-18-22.2-34.9-34.5-51.8c0 0 0 0 0 0s0 0 0 0c-5.2-7.1-10.4-14.2-15.4-21.4C27.6 247.9 16 213.3 16 176C16 78.8 94.8 0 192 0s176 78.8 176 176c0 37.3-11.6 71.9-31.4 100.3c-5 7.2-10.2 14.3-15.4 21.4c0 0 0 0 0 0s0 0 0 0c-12.3 16.8-24.6 33.7-34.5 51.8c-5.9 10.8-9.6 22.5-11.8 34.5l-48.6 0c2.6-18.7 7.9-38.6 18.3-57.5c11.5-20.9 26.9-42.1 39.8-59.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0c4.7-6.4 9-12.4 12.7-17.7zM192 128c-26.5 0-48 21.5-48 48c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16s-7.2 16-16 16zm0 384c-44.2 0-80-35.8-80-80l0-16 160 0 0 16c0 44.2-35.8 80-80 80z\"]\n};\nconst faFlag = {\n prefix: 'far',\n iconName: 'flag',\n icon: [448, 512, [127988, 61725], \"f024\", \"M48 24C48 10.7 37.3 0 24 0S0 10.7 0 24L0 64 0 350.5 0 400l0 88c0 13.3 10.7 24 24 24s24-10.7 24-24l0-100 80.3-20.1c41.1-10.3 84.6-5.5 122.5 13.4c44.2 22.1 95.5 24.8 141.7 7.4l34.7-13c12.5-4.7 20.8-16.6 20.8-30l0-279.7c0-23-24.2-38-44.8-27.7l-9.6 4.8c-46.3 23.2-100.8 23.2-147.1 0c-35.1-17.6-75.4-22-113.5-12.5L48 52l0-28zm0 77.5l96.6-24.2c27-6.7 55.5-3.6 80.4 8.8c54.9 27.4 118.7 29.7 175 6.8l0 241.8-24.4 9.1c-33.7 12.6-71.2 10.7-103.4-5.4c-48.2-24.1-103.3-30.1-155.6-17.1L48 338.5l0-237z\"]\n};\nconst faSquareCheck = {\n prefix: 'far',\n iconName: 'square-check',\n icon: [448, 512, [9745, 9989, 61510, \"check-square\"], \"f14a\", \"M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM337 209L209 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L303 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\"]\n};\nconst faCheckSquare = faSquareCheck;\nconst faCircleDot = {\n prefix: 'far',\n iconName: 'circle-dot',\n icon: [512, 512, [128280, \"dot-circle\"], \"f192\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256-96a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"]\n};\nconst faDotCircle = faCircleDot;\nconst faFaceDizzy = {\n prefix: 'far',\n iconName: 'face-dizzy',\n icon: [512, 512, [\"dizzy\"], \"f567\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256 32a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM103 135c9.4-9.4 24.6-9.4 33.9 0l23 23 23-23c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-23 23 23 23c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-23-23-23 23c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l23-23-23-23c-9.4-9.4-9.4-24.6 0-33.9zm192 0c9.4-9.4 24.6-9.4 33.9 0l23 23 23-23c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-23 23 23 23c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-23-23-23 23c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l23-23-23-23c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nconst faDizzy = faFaceDizzy;\nconst faFutbol = {\n prefix: 'far',\n iconName: 'futbol',\n icon: [512, 512, [9917, \"futbol-ball\", \"soccer-ball\"], \"f1e3\", \"M435.4 361.4l-89.7-6c-5.2-.3-10.3 1.1-14.5 4.2s-7.2 7.4-8.4 12.5l-22 87.2c-14.4 3.2-29.4 4.8-44.8 4.8s-30.3-1.7-44.8-4.8l-22-87.2c-1.3-5-4.3-9.4-8.4-12.5s-9.3-4.5-14.5-4.2l-89.7 6C61.7 335.9 51.9 307 49 276.2L125 228.3c4.4-2.8 7.6-7 9.2-11.9s1.4-10.2-.5-15L100.4 118c19.9-22.4 44.6-40.5 72.4-52.7l69.1 57.6c4 3.3 9 5.1 14.1 5.1s10.2-1.8 14.1-5.1l69.1-57.6c27.8 12.2 52.5 30.3 72.4 52.7l-33.4 83.4c-1.9 4.8-2.1 10.1-.5 15s4.9 9.1 9.2 11.9L463 276.2c-3 30.8-12.7 59.7-27.6 85.2zM256 48l.9 0-1.8 0 .9 0zM56.7 196.2c.9-3 1.9-6.1 2.9-9.1l-2.9 9.1zM132 423l3.8 2.7c-1.3-.9-2.5-1.8-3.8-2.7zm248.1-.1c-1.3 1-2.6 2-4 2.9l4-2.9zm75.2-226.7l-3-9.2c1.1 3 2.1 6.1 3 9.2zM256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm14.1-325.7c-8.4-6.1-19.8-6.1-28.2 0L194 221c-8.4 6.1-11.9 16.9-8.7 26.8l18.3 56.3c3.2 9.9 12.4 16.6 22.8 16.6l59.2 0c10.4 0 19.6-6.7 22.8-16.6l18.3-56.3c3.2-9.9-.3-20.7-8.7-26.8l-47.9-34.8z\"]\n};\nconst faFutbolBall = faFutbol;\nconst faSoccerBall = faFutbol;\nconst faPenToSquare = {\n prefix: 'far',\n iconName: 'pen-to-square',\n icon: [512, 512, [\"edit\"], \"f044\", \"M441 58.9L453.1 71c9.4 9.4 9.4 24.6 0 33.9L424 134.1 377.9 88 407 58.9c9.4-9.4 24.6-9.4 33.9 0zM209.8 256.2L344 121.9 390.1 168 255.8 302.2c-2.9 2.9-6.5 5-10.4 6.1l-58.5 16.7 16.7-58.5c1.1-3.9 3.2-7.5 6.1-10.4zM373.1 25L175.8 222.2c-8.7 8.7-15 19.4-18.3 31.1l-28.6 100c-2.4 8.4-.1 17.4 6.1 23.6s15.2 8.5 23.6 6.1l100-28.6c11.8-3.4 22.5-9.7 31.1-18.3L487 138.9c28.1-28.1 28.1-73.7 0-101.8L474.9 25C446.8-3.1 401.2-3.1 373.1 25zM88 64C39.4 64 0 103.4 0 152L0 424c0 48.6 39.4 88 88 88l272 0c48.6 0 88-39.4 88-88l0-112c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 112c0 22.1-17.9 40-40 40L88 464c-22.1 0-40-17.9-40-40l0-272c0-22.1 17.9-40 40-40l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L88 64z\"]\n};\nconst faEdit = faPenToSquare;\nconst faHourglassHalf = {\n prefix: 'far',\n iconName: 'hourglass-half',\n icon: [384, 512, [\"hourglass-2\"], \"f252\", \"M0 24C0 10.7 10.7 0 24 0L360 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 19c0 40.3-16 79-44.5 107.5L225.9 256l81.5 81.5C336 366 352 404.7 352 445l0 19 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-19c0-40.3 16-79 44.5-107.5L158.1 256 76.5 174.5C48 146 32 107.3 32 67l0-19-8 0C10.7 48 0 37.3 0 24zM110.5 371.5c-3.9 3.9-7.5 8.1-10.7 12.5l184.4 0c-3.2-4.4-6.8-8.6-10.7-12.5L192 289.9l-81.5 81.5zM284.2 128C297 110.4 304 89 304 67l0-19L80 48l0 19c0 22.1 7 43.4 19.8 61l184.4 0z\"]\n};\nconst faHourglass2 = faHourglassHalf;\nconst faEyeSlash = {\n prefix: 'far',\n iconName: 'eye-slash',\n icon: [640, 512, [], \"f070\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zm151 118.3C226 97.7 269.5 80 320 80c65.2 0 118.8 29.6 159.9 67.7C518.4 183.5 545 226 558.6 256c-12.6 28-36.6 66.8-70.9 100.9l-53.8-42.2c9.1-17.6 14.2-37.5 14.2-58.7c0-70.7-57.3-128-128-128c-32.2 0-61.7 11.9-84.2 31.5l-46.1-36.1zM394.9 284.2l-81.5-63.9c4.2-8.5 6.6-18.2 6.6-28.3c0-5.5-.7-10.9-2-16c.7 0 1.3 0 2 0c44.2 0 80 35.8 80 80c0 9.9-1.8 19.4-5.1 28.2zm9.4 130.3C378.8 425.4 350.7 432 320 432c-65.2 0-118.8-29.6-159.9-67.7C121.6 328.5 95 286 81.4 256c8.3-18.4 21.5-41.5 39.4-64.8L83.1 161.5C60.3 191.2 44 220.8 34.5 243.7c-3.3 7.9-3.3 16.7 0 24.6c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c47.8 0 89.9-12.9 126.2-32.5l-41.9-33zM192 256c0 70.7 57.3 128 128 128c13.3 0 26.1-2 38.2-5.8L302 334c-23.5-5.4-43.1-21.2-53.7-42.3l-56.1-44.2c-.2 2.8-.3 5.6-.3 8.5z\"]\n};\nconst faHand = {\n prefix: 'far',\n iconName: 'hand',\n icon: [512, 512, [129306, 9995, \"hand-paper\"], \"f256\", \"M256 0c-25.3 0-47.2 14.7-57.6 36c-7-2.6-14.5-4-22.4-4c-35.3 0-64 28.7-64 64l0 165.5-2.7-2.7c-25-25-65.5-25-90.5 0s-25 65.5 0 90.5L106.5 437c48 48 113.1 75 181 75l8.5 0 8 0c1.5 0 3-.1 4.5-.4c91.7-6.2 165-79.4 171.1-171.1c.3-1.5 .4-3 .4-4.5l0-176c0-35.3-28.7-64-64-64c-5.5 0-10.9 .7-16 2l0-2c0-35.3-28.7-64-64-64c-7.9 0-15.4 1.4-22.4 4C303.2 14.7 281.3 0 256 0zM240 96.1l0-.1 0-32c0-8.8 7.2-16 16-16s16 7.2 16 16l0 31.9 0 .1 0 136c0 13.3 10.7 24 24 24s24-10.7 24-24l0-136c0 0 0 0 0-.1c0-8.8 7.2-16 16-16s16 7.2 16 16l0 55.9c0 0 0 .1 0 .1l0 80c0 13.3 10.7 24 24 24s24-10.7 24-24l0-71.9c0 0 0-.1 0-.1c0-8.8 7.2-16 16-16s16 7.2 16 16l0 172.9c-.1 .6-.1 1.3-.2 1.9c-3.4 69.7-59.3 125.6-129 129c-.6 0-1.3 .1-1.9 .2l-4.9 0-8.5 0c-55.2 0-108.1-21.9-147.1-60.9L52.7 315.3c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L119 336.4c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2L160 96c0-8.8 7.2-16 16-16c8.8 0 16 7.1 16 15.9L192 232c0 13.3 10.7 24 24 24s24-10.7 24-24l0-135.9z\"]\n};\nconst faHandPaper = faHand;\nconst faHandSpock = {\n prefix: 'far',\n iconName: 'hand-spock',\n icon: [576, 512, [128406], \"f259\", \"M170.2 80.8C161 47 180.8 12 214.6 2.4c34-9.6 69.4 10.2 79 44.2l30.3 107.1L337.1 84c6.6-34.7 40.1-57.5 74.8-50.9c31.4 6 53 33.9 52 64.9c10-2.6 20.8-2.8 31.5-.1c34.3 8.6 55.1 43.3 46.6 77.6L486.7 397.2C469.8 464.7 409.2 512 339.6 512l-33.7 0c-56.9 0-112.2-19-157.2-53.9l-92-71.6c-27.9-21.7-32.9-61.9-11.2-89.8s61.9-32.9 89.8-11.2l17 13.2L100.5 167.5c-13-32.9 3.2-70.1 36-83c11.1-4.4 22.7-5.4 33.7-3.7zm77.1-21.2c-2.4-8.5-11.2-13.4-19.7-11s-13.4 11.2-11 19.7l54.8 182.4c3.5 12.3-3.3 25.2-15.4 29.3s-25.3-2-30-13.9L174.9 138.1c-3.2-8.2-12.5-12.3-20.8-9s-12.3 12.5-9 20.8l73.3 185.6c12 30.3-23.7 57-49.4 37l-63.1-49.1c-7-5.4-17-4.2-22.5 2.8s-4.2 17 2.8 22.5l92 71.6c36.5 28.4 81.4 43.8 127.7 43.8l33.7 0c47.5 0 89-32.4 100.5-78.5l55.4-221.6c2.1-8.6-3.1-17.3-11.6-19.4s-17.3 3.1-19.4 11.6l-26 104C435.6 271.8 425 280 413 280c-16.5 0-28.9-15-25.8-31.2L415.7 99c1.7-8.7-4-17.1-12.7-18.7s-17.1 4-18.7 12.7L352.5 260c-2.2 11.6-12.4 20-24.2 20c-11 0-20.7-7.3-23.7-17.9L247.4 59.6z\"]\n};\nconst faFaceKiss = {\n prefix: 'far',\n iconName: 'face-kiss',\n icon: [512, 512, [128535, \"kiss\"], \"f596\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm304.7 25.7c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C274.7 411.1 257.4 416 240 416c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9c0 0 0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1l-.8-.5-.1-.1-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7c0 0 0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nconst faKiss = faFaceKiss;\nconst faFaceGrinTongue = {\n prefix: 'far',\n iconName: 'face-grin-tongue',\n icon: [512, 512, [128539, \"grin-tongue\"], \"f589\", \"M464 256c0-114.9-93.1-208-208-208S48 141.1 48 256c0 81.7 47.1 152.4 115.7 186.4c-2.4-8.4-3.7-17.3-3.7-26.4l0-52.4c-8.9-8-16.7-17.1-23.1-27.1c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5c18.7-4.4 35.9 12 25.5 28.1c-6.4 9.9-14.2 19-23 27l0 52.5c0 9.2-1.3 18-3.7 26.4C416.9 408.4 464 337.7 464 256zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm176.4-80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM320 416l0-37.4c0-14.7-11.9-26.6-26.6-26.6l-2 0c-11.3 0-21.1 7.9-23.6 18.9c-2.8 12.6-20.8 12.6-23.6 0c-2.5-11.1-12.3-18.9-23.6-18.9l-2 0c-14.7 0-26.6 11.9-26.6 26.6l0 37.4c0 35.3 28.7 64 64 64s64-28.7 64-64z\"]\n};\nconst faGrinTongue = faFaceGrinTongue;\nconst faChessBishop = {\n prefix: 'far',\n iconName: 'chess-bishop',\n icon: [320, 512, [9821], \"f43a\", \"M104 0C90.7 0 80 10.7 80 24c0 11.2 7.6 20.6 18 23.2c-7.8 8-16.1 17-24.4 27C38.2 116.7 0 178.8 0 250.9c0 44.8 24.6 72.2 48 87.8L48 352l48 0 0-27c0-9-5-17.2-13-21.3c-18-9.3-35-24.7-35-52.7c0-55.5 29.8-106.8 62.4-145.9c16-19.2 32.1-34.8 44.2-45.5c1.9-1.7 3.7-3.2 5.3-4.6c1.7 1.4 3.4 3 5.3 4.6c12.1 10.7 28.2 26.3 44.2 45.5c5.3 6.3 10.5 13 15.5 20L159 191c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l57.8-57.8c12.8 25.9 21.2 54.3 21.2 83.8c0 28-17 43.4-35 52.7c-8 4.1-13 12.3-13 21.3l0 27 48 0 0-13.3c23.4-15.6 48-42.9 48-87.8c0-72.1-38.2-134.2-73.6-176.7c-8.3-9.9-16.6-19-24.4-27c10.3-2.7 18-12.1 18-23.2c0-13.3-10.7-24-24-24L160 0 104 0zM52.7 464l16.6-32 181.6 0 16.6 32L52.7 464zm207.9-80l-201 0c-12 0-22.9 6.7-28.4 17.3L4.6 452.5c-3 5.8-4.6 12.2-4.6 18.7C0 493.8 18.2 512 40.8 512l238.5 0c22.5 0 40.8-18.2 40.8-40.8c0-6.5-1.6-12.9-4.6-18.7l-26.5-51.2c-5.5-10.6-16.5-17.3-28.4-17.3z\"]\n};\nconst faFaceGrinWink = {\n prefix: 'far',\n iconName: 'face-grin-wink',\n icon: [512, 512, [\"grin-wink\"], \"f58c\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm349.5 52.4c18.7-4.4 35.9 12 25.5 28.1C350.4 374.6 306.3 400 255.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm165.8 21.7c-7.6 8.1-20.2 8.5-28.3 .9s-8.5-20.2-.9-28.3c14.5-15.5 35.2-22.3 54.6-22.3s40.1 6.8 54.6 22.3c7.6 8.1 7.1 20.7-.9 28.3s-20.7 7.1-28.3-.9c-5.5-5.8-14.8-9.7-25.4-9.7s-19.9 3.8-25.4 9.7z\"]\n};\nconst faGrinWink = faFaceGrinWink;\nconst faFaceGrinWide = {\n prefix: 'far',\n iconName: 'face-grin-wide',\n icon: [512, 512, [128515, \"grin-alt\"], \"f581\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm349.5 52.4c18.7-4.4 35.9 12 25.5 28.1C350.4 374.6 306.3 400 255.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5zM224 192c0 35.3-14.3 64-32 64s-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64zm96 64c-17.7 0-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64s-14.3 64-32 64z\"]\n};\nconst faGrinAlt = faFaceGrinWide;\nconst faFaceFrownOpen = {\n prefix: 'far',\n iconName: 'face-frown-open',\n icon: [512, 512, [128550, \"frown-open\"], \"f57a\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM182.4 382.5c-12.4 5.2-26.5-4.1-21.1-16.4c16-36.6 52.4-62.1 94.8-62.1s78.8 25.6 94.8 62.1c5.4 12.3-8.7 21.6-21.1 16.4c-22.4-9.5-47.4-14.8-73.7-14.8s-51.3 5.3-73.7 14.8zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nconst faFrownOpen = faFaceFrownOpen;\nconst faHandPointUp = {\n prefix: 'far',\n iconName: 'hand-point-up',\n icon: [384, 512, [9757], \"f0a6\", \"M64 64l0 177.6c5.2-1 10.5-1.6 16-1.6l16 0 0-32L96 64c0-8.8-7.2-16-16-16s-16 7.2-16 16zM80 288c-17.7 0-32 14.3-32 32c0 0 0 0 0 0l0 24c0 66.3 53.7 120 120 120l48 0c52.5 0 97.1-33.7 113.4-80.7c-3.1 .5-6.2 .7-9.4 .7c-20 0-37.9-9.2-49.7-23.6c-9 4.9-19.4 7.6-30.3 7.6c-15.1 0-29-5.3-40-14c-11 8.8-24.9 14-40 14l-40 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l40 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-40 0-40 0zM0 320s0 0 0 0c0-18 6-34.6 16-48L16 64C16 28.7 44.7 0 80 0s64 28.7 64 64l0 82c5.1-1.3 10.5-2 16-2c25.3 0 47.2 14.7 57.6 36c7-2.6 14.5-4 22.4-4c20 0 37.9 9.2 49.7 23.6c9-4.9 19.4-7.6 30.3-7.6c35.3 0 64 28.7 64 64l0 64 0 24c0 92.8-75.2 168-168 168l-48 0C75.2 512 0 436.8 0 344l0-24zm336-64c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 48 0 16c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64zM160 240c5.5 0 10.9 .7 16 2l0-2 0-32c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 32 16 0zm64 24l0 40c0 8.8 7.2 16 16 16s16-7.2 16-16l0-48 0-16c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 24z\"]\n};\nconst faBookmark = {\n prefix: 'far',\n iconName: 'bookmark',\n icon: [384, 512, [128278, 61591], \"f02e\", \"M0 48C0 21.5 21.5 0 48 0l0 48 0 393.4 130.1-92.9c8.3-6 19.6-6 27.9 0L336 441.4 336 48 48 48 48 0 336 0c26.5 0 48 21.5 48 48l0 440c0 9-5 17.2-13 21.3s-17.6 3.4-24.9-1.8L192 397.5 37.9 507.5c-7.3 5.2-16.9 5.9-24.9 1.8S0 497 0 488L0 48z\"]\n};\nconst faHandPointDown = {\n prefix: 'far',\n iconName: 'hand-point-down',\n icon: [384, 512, [], \"f0a7\", \"M64 448l0-177.6c5.2 1 10.5 1.6 16 1.6l16 0 0 32 0 144c0 8.8-7.2 16-16 16s-16-7.2-16-16zM80 224c-17.7 0-32-14.3-32-32c0 0 0 0 0 0l0-24c0-66.3 53.7-120 120-120l48 0c52.5 0 97.1 33.7 113.4 80.7c-3.1-.5-6.2-.7-9.4-.7c-20 0-37.9 9.2-49.7 23.6c-9-4.9-19.4-7.6-30.3-7.6c-15.1 0-29 5.3-40 14c-11-8.8-24.9-14-40-14l-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-40 0-40 0zM0 192s0 0 0 0c0 18 6 34.6 16 48l0 208c0 35.3 28.7 64 64 64s64-28.7 64-64l0-82c5.1 1.3 10.5 2 16 2c25.3 0 47.2-14.7 57.6-36c7 2.6 14.5 4 22.4 4c20 0 37.9-9.2 49.7-23.6c9 4.9 19.4 7.6 30.3 7.6c35.3 0 64-28.7 64-64l0-64 0-24C384 75.2 308.8 0 216 0L168 0C75.2 0 0 75.2 0 168l0 24zm336 64c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48 0-16c0-8.8 7.2-16 16-16s16 7.2 16 16l0 64zM160 272c5.5 0 10.9-.7 16-2l0 2 0 32c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-32 16 0zm64-24l0-40c0-8.8 7.2-16 16-16s16 7.2 16 16l0 48 0 16c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-24z\"]\n};\nconst faFolder = {\n prefix: 'far',\n iconName: 'folder',\n icon: [512, 512, [128193, 128447, 61716, \"folder-blank\"], \"f07b\", \"M0 96C0 60.7 28.7 32 64 32l132.1 0c19.1 0 37.4 7.6 50.9 21.1L289.9 96 448 96c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l384 0c8.8 0 16-7.2 16-16l0-256c0-8.8-7.2-16-16-16l-161.4 0c-10.6 0-20.8-4.2-28.3-11.7L213.1 87c-4.5-4.5-10.6-7-17-7L64 80z\"]\n};\nconst faFolderBlank = faFolder;\nconst faUser = {\n prefix: 'far',\n iconName: 'user',\n icon: [448, 512, [128100, 62144], \"f007\", \"M304 128a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM49.3 464l349.5 0c-8.9-63.3-63.3-112-129-112l-91.4 0c-65.7 0-120.1 48.7-129 112zM0 482.3C0 383.8 79.8 304 178.3 304l91.4 0C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7L29.7 512C13.3 512 0 498.7 0 482.3z\"]\n};\nconst faSquareCaretLeft = {\n prefix: 'far',\n iconName: 'square-caret-left',\n icon: [448, 512, [\"caret-square-left\"], \"f191\", \"M48 416c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80c-8.8 0-16 7.2-16 16l0 320zm16 64c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480zm64-224c0-6.7 2.8-13 7.7-17.6l112-104c7-6.5 17.2-8.2 25.9-4.4s14.4 12.5 14.4 22l0 208c0 9.5-5.7 18.2-14.4 22s-18.9 2.1-25.9-4.4l-112-104c-4.9-4.5-7.7-10.9-7.7-17.6z\"]\n};\nconst faCaretSquareLeft = faSquareCaretLeft;\nconst faStar = {\n prefix: 'far',\n iconName: 'star',\n icon: [576, 512, [11088, 61446], \"f005\", \"M287.9 0c9.2 0 17.6 5.2 21.6 13.5l68.6 141.3 153.2 22.6c9 1.3 16.5 7.6 19.3 16.3s.5 18.1-5.9 24.5L433.6 328.4l26.2 155.6c1.5 9-2.2 18.1-9.7 23.5s-17.3 6-25.3 1.7l-137-73.2L151 509.1c-8.1 4.3-17.9 3.7-25.3-1.7s-11.2-14.5-9.7-23.5l26.2-155.6L31.1 218.2c-6.5-6.4-8.7-15.9-5.9-24.5s10.3-14.9 19.3-16.3l153.2-22.6L266.3 13.5C270.4 5.2 278.7 0 287.9 0zm0 79L235.4 187.2c-3.5 7.1-10.2 12.1-18.1 13.3L99 217.9 184.9 303c5.5 5.5 8.1 13.3 6.8 21L171.4 443.7l105.2-56.2c7.1-3.8 15.6-3.8 22.6 0l105.2 56.2L384.2 324.1c-1.3-7.7 1.2-15.5 6.8-21l85.9-85.1L358.6 200.5c-7.8-1.2-14.6-6.1-18.1-13.3L287.9 79z\"]\n};\nconst faChessKnight = {\n prefix: 'far',\n iconName: 'chess-knight',\n icon: [448, 512, [9822], \"f441\", \"M226.6 48L117.3 48l17.1 12.8c6 4.5 9.6 11.6 9.6 19.2s-3.6 14.7-9.6 19.2l-6.5 4.9c-10 7.5-16 19.3-16 31.9l-.3 91c0 10.2 4.9 19.9 13.2 25.8l1.9 1.3c9.9 7.1 23.3 7 33.2-.1l49.9-36.3c10.7-7.8 25.7-5.4 33.5 5.3s5.4 25.7-5.3 33.5l-49.9 36.3-53.8 39.1c-7.3 5.3-13 12.2-16.9 20.1l-50.7 0c5.3-22.1 17.8-41.9 35.9-56.3c-1.3-.8-2.6-1.7-3.8-2.6L97 291.8c-21-15-33.4-39.2-33.3-65l.3-91c.1-19.8 6.7-38.7 18.6-53.9l-.4-.3C70.7 73 64 59.6 64 45.3C64 20.3 84.3 0 109.3 0L226.6 0C331.2 0 416 84.8 416 189.4c0 11.1-1 22.2-2.9 33.2L390.1 352l-48.8 0 24.5-137.8c1.5-8.2 2.2-16.5 2.2-24.8C368 111.3 304.7 48 226.6 48zM85.2 432L68.7 464l310.7 0-16.6-32L85.2 432zm315.7-30.7l26.5 51.2c3 5.8 4.6 12.2 4.6 18.7c0 22.5-18.2 40.8-40.8 40.8L56.8 512C34.2 512 16 493.8 16 471.2c0-6.5 1.6-12.9 4.6-18.7l26.5-51.2C52.5 390.7 63.5 384 75.5 384l297 0c12 0 22.9 6.7 28.4 17.3zM172 128a20 20 0 1 1 0 40 20 20 0 1 1 0-40z\"]\n};\nconst faFaceLaughSquint = {\n prefix: 'far',\n iconName: 'face-laugh-squint',\n icon: [512, 512, [\"laugh-squint\"], \"f59b\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm130.7 57.9c-4.2-13.6 7.1-25.9 21.3-25.9l212.5 0c14.2 0 25.5 12.4 21.3 25.9C369 368.4 318.2 408 258.2 408s-110.8-39.6-127.5-94.1zm2.8-183.3l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 141.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z\"]\n};\nconst faLaughSquint = faFaceLaughSquint;\nconst faFaceLaugh = {\n prefix: 'far',\n iconName: 'face-laugh',\n icon: [512, 512, [\"laugh\"], \"f599\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm130.7 57.9c-4.2-13.6 7.1-25.9 21.3-25.9l212.5 0c14.2 0 25.5 12.4 21.3 25.9C369 368.4 318.2 408 258.2 408s-110.8-39.6-127.5-94.1zM144.4 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nconst faLaugh = faFaceLaugh;\nconst faFolderOpen = {\n prefix: 'far',\n iconName: 'folder-open',\n icon: [576, 512, [128194, 128449, 61717], \"f07c\", \"M384 480l48 0c11.4 0 21.9-6 27.6-15.9l112-192c5.8-9.9 5.8-22.1 .1-32.1S555.5 224 544 224l-400 0c-11.4 0-21.9 6-27.6 15.9L48 357.1 48 96c0-8.8 7.2-16 16-16l117.5 0c4.2 0 8.3 1.7 11.3 4.7l26.5 26.5c21 21 49.5 32.8 79.2 32.8L416 144c8.8 0 16 7.2 16 16l0 32 48 0 0-32c0-35.3-28.7-64-64-64L298.5 96c-17 0-33.3-6.7-45.3-18.7L226.7 50.7c-12-12-28.3-18.7-45.3-18.7L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l23.7 0L384 480z\"]\n};\nconst faClipboard = {\n prefix: 'far',\n iconName: 'clipboard',\n icon: [384, 512, [128203], \"f328\", \"M280 64l40 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l40 0 9.6 0C121 27.5 153.3 0 192 0s71 27.5 78.4 64l9.6 0zM64 112c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16l-16 0 0 24c0 13.3-10.7 24-24 24l-88 0-88 0c-13.3 0-24-10.7-24-24l0-24-16 0zm128-8a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nconst faChessQueen = {\n prefix: 'far',\n iconName: 'chess-queen',\n icon: [512, 512, [9819], \"f445\", \"M256 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-95.2-8c-18.1 0-31.3 12.8-35.6 26.9c-8 26.2-32.4 45.2-61.2 45.2c-10 0-19.4-2.3-27.7-6.3c-7.6-3.7-16.7-3.3-24 1.2C.7 162.1-3.1 177.1 3.7 188.9L97.6 352l55.4 0-83-144.1c40.5-2.2 75.3-25.9 93.1-59.8c22 26.8 55.4 43.9 92.8 43.9s70.8-17.1 92.8-43.9c17.8 34 52.6 57.7 93.1 59.8L359 352l55.4 0 93.9-163.1c6.8-11.7 3-26.7-8.6-33.8c-7.3-4.5-16.4-4.9-24-1.2c-8.4 4-17.7 6.3-27.7 6.3c-28.8 0-53.2-19-61.2-45.2C382.5 100.8 369.3 88 351.2 88c-14.5 0-26.3 8.5-32.4 19.3c-12.4 22-35.9 36.7-62.8 36.7s-50.4-14.8-62.8-36.7C187.1 96.5 175.4 88 160.8 88zM133.2 432l245.6 0 16.6 32-278.7 0 16.6-32zm283.7-30.7c-5.5-10.6-16.5-17.3-28.4-17.3l-265 0c-12 0-22.9 6.7-28.4 17.3L68.6 452.5c-3 5.8-4.6 12.2-4.6 18.7c0 22.5 18.2 40.8 40.8 40.8l302.5 0c22.5 0 40.8-18.2 40.8-40.8c0-6.5-1.6-12.9-4.6-18.7l-26.5-51.2z\"]\n};\nconst faHandBackFist = {\n prefix: 'far',\n iconName: 'hand-back-fist',\n icon: [448, 512, [\"hand-rock\"], \"f255\", \"M144 64c0-8.8 7.2-16 16-16s16 7.2 16 16c0 9.1 5.1 17.4 13.3 21.5s17.9 3.2 25.1-2.3c2.7-2 6-3.2 9.6-3.2c8.8 0 16 7.2 16 16c0 9.1 5.1 17.4 13.3 21.5s17.9 3.2 25.1-2.3c2.7-2 6-3.2 9.6-3.2c8.8 0 16 7.2 16 16c0 9.1 5.1 17.4 13.3 21.5s17.9 3.2 25.1-2.3c2.7-2 6-3.2 9.6-3.2c8.8 0 16 7.2 16 16l0 104c0 31.3-20 58-48 67.9c-9.6 3.4-16 12.5-16 22.6L304 488c0 13.3 10.7 24 24 24s24-10.7 24-24l0-117.8c38-20.1 64-60.1 64-106.2l0-104c0-35.3-28.7-64-64-64c-2.8 0-5.6 .2-8.3 .5C332.8 77.1 311.9 64 288 64c-2.8 0-5.6 .2-8.3 .5C268.8 45.1 247.9 32 224 32c-2.8 0-5.6 .2-8.3 .5C204.8 13.1 183.9 0 160 0C124.7 0 96 28.7 96 64l0 64.3c-11.7 7.4-22.5 16.4-32 26.9l17.8 16.1L64 155.2l-9.4 10.5C40 181.8 32 202.8 32 224.6l0 12.8c0 49.6 24.2 96.1 64.8 124.5l13.8-19.7L96.8 361.9l8.9 6.2c6.9 4.8 14.4 8.6 22.3 11.3L128 488c0 13.3 10.7 24 24 24s24-10.7 24-24l0-128.1c0-12.6-9.8-23.1-22.4-23.9c-7.3-.5-14.3-2.9-20.3-7.1l-13.1 18.7 13.1-18.7-8.9-6.2C96.6 303.1 80 271.3 80 237.4l0-12.8c0-9.9 3.7-19.4 10.3-26.8l9.4-10.5c3.8-4.2 7.9-8.1 12.3-11.6l0 32.3c0 8.8 7.2 16 16 16s16-7.2 16-16l0-65.7 0-14.3 0-64z\"]\n};\nconst faHandRock = faHandBackFist;\nconst faSquareCaretUp = {\n prefix: 'far',\n iconName: 'square-caret-up',\n icon: [448, 512, [\"caret-square-up\"], \"f151\", \"M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm224 64c6.7 0 13 2.8 17.6 7.7l104 112c6.5 7 8.2 17.2 4.4 25.9s-12.5 14.4-22 14.4l-208 0c-9.5 0-18.2-5.7-22-14.4s-2.1-18.9 4.4-25.9l104-112c4.5-4.9 10.9-7.7 17.6-7.7z\"]\n};\nconst faCaretSquareUp = faSquareCaretUp;\nconst faChartBar = {\n prefix: 'far',\n iconName: 'chart-bar',\n icon: [512, 512, [\"bar-chart\"], \"f080\", \"M24 32c13.3 0 24 10.7 24 24l0 352c0 13.3 10.7 24 24 24l416 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L72 480c-39.8 0-72-32.2-72-72L0 56C0 42.7 10.7 32 24 32zM128 136c0-13.3 10.7-24 24-24l208 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-208 0c-13.3 0-24-10.7-24-24zm24 72l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 96l272 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-272 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nconst faBarChart = faChartBar;\nconst faWindowRestore = {\n prefix: 'far',\n iconName: 'window-restore',\n icon: [512, 512, [], \"f2d2\", \"M432 48L208 48c-17.7 0-32 14.3-32 32l0 16-48 0 0-16c0-44.2 35.8-80 80-80L432 0c44.2 0 80 35.8 80 80l0 224c0 44.2-35.8 80-80 80l-16 0 0-48 16 0c17.7 0 32-14.3 32-32l0-224c0-17.7-14.3-32-32-32zM48 448c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16l0-192L48 256l0 192zM64 128l256 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 192c0-35.3 28.7-64 64-64z\"]\n};\nconst faSquarePlus = {\n prefix: 'far',\n iconName: 'square-plus',\n icon: [448, 512, [61846, \"plus-square\"], \"f0fe\", \"M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM200 344l0-64-64 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l64 0 0-64c0-13.3 10.7-24 24-24s24 10.7 24 24l0 64 64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-64 0 0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24z\"]\n};\nconst faPlusSquare = faSquarePlus;\nconst faImage = {\n prefix: 'far',\n iconName: 'image',\n icon: [512, 512, [], \"f03e\", \"M448 80c8.8 0 16 7.2 16 16l0 319.8-5-6.5-136-176c-4.5-5.9-11.6-9.3-19-9.3s-14.4 3.4-19 9.3L202 340.7l-30.5-42.7C167 291.7 159.8 288 152 288s-15 3.7-19.5 10.1l-80 112L48 416.3l0-.3L48 96c0-8.8 7.2-16 16-16l384 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm80 192a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"]\n};\nconst faFolderClosed = {\n prefix: 'far',\n iconName: 'folder-closed',\n icon: [512, 512, [], \"e185\", \"M251.7 127.6s0 0 0 0c10.5 10.5 24.7 16.4 39.6 16.4L448 144c8.8 0 16 7.2 16 16l0 32L48 192l0-96c0-8.8 7.2-16 16-16l133.5 0c4.2 0 8.3 1.7 11.3 4.7l33.9-33.9L208.8 84.7l42.9 42.9zM48 240l416 0 0 176c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16l0-176zM285.7 93.7L242.7 50.7c-12-12-28.3-18.7-45.3-18.7L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L291.3 96c-2.1 0-4.2-.8-5.7-2.3z\"]\n};\nconst faLemon = {\n prefix: 'far',\n iconName: 'lemon',\n icon: [448, 512, [127819], \"f094\", \"M368 80c-3.2 0-6.2 .4-8.9 1.3C340 86.8 313 91.9 284.8 84.6C227.4 69.7 160.2 92 110.1 142.1S37.7 259.4 52.6 316.8c7.3 28.2 2.2 55.2-3.3 74.3c-.8 2.8-1.3 5.8-1.3 8.9c0 17.7 14.3 32 32 32c3.2 0 6.2-.4 8.9-1.3c19.1-5.5 46.1-10.7 74.3-3.3c57.4 14.9 124.6-7.4 174.7-57.5s72.4-117.3 57.5-174.7c-7.3-28.2-2.2-55.2 3.3-74.3c.8-2.8 1.3-5.8 1.3-8.9c0-17.7-14.3-32-32-32zm0-48c44.2 0 80 35.8 80 80c0 7.7-1.1 15.2-3.1 22.3c-4.6 15.8-7.1 32.9-3 48.9c20.1 77.6-10.9 161.5-70 220.7s-143.1 90.2-220.7 70c-16-4.1-33-1.6-48.9 3c-7.1 2-14.6 3.1-22.3 3.1c-44.2 0-80-35.8-80-80c0-7.7 1.1-15.2 3.1-22.3c4.6-15.8 7.1-32.9 3-48.9C-14 251.3 17 167.3 76.2 108.2S219.3 18 296.8 38.1c16 4.1 33 1.6 48.9-3c7.1-2 14.6-3.1 22.3-3.1zM246.7 167c-52 15.2-96.5 59.7-111.7 111.7c-3.7 12.7-17.1 20-29.8 16.3s-20-17.1-16.3-29.8c19.8-67.7 76.6-124.5 144.3-144.3c12.7-3.7 26.1 3.6 29.8 16.3s-3.6 26.1-16.3 29.8z\"]\n};\nconst faHandshake = {\n prefix: 'far',\n iconName: 'handshake',\n icon: [640, 512, [], \"f2b5\", \"M272.2 64.6l-51.1 51.1c-15.3 4.2-29.5 11.9-41.5 22.5L153 161.9C142.8 171 129.5 176 115.8 176L96 176l0 128c20.4 .6 39.8 8.9 54.3 23.4l35.6 35.6 7 7c0 0 0 0 0 0L219.9 397c6.2 6.2 16.4 6.2 22.6 0c1.7-1.7 3-3.7 3.7-5.8c2.8-7.7 9.3-13.5 17.3-15.3s16.4 .6 22.2 6.5L296.5 393c11.6 11.6 30.4 11.6 41.9 0c5.4-5.4 8.3-12.3 8.6-19.4c.4-8.8 5.6-16.6 13.6-20.4s17.3-3 24.4 2.1c9.4 6.7 22.5 5.8 30.9-2.6c9.4-9.4 9.4-24.6 0-33.9L340.1 243l-35.8 33c-27.3 25.2-69.2 25.6-97 .9c-31.7-28.2-32.4-77.4-1.6-106.5l70.1-66.2C303.2 78.4 339.4 64 377.1 64c36.1 0 71 13.3 97.9 37.2L505.1 128l38.9 0 40 0 40 0c8.8 0 16 7.2 16 16l0 208c0 17.7-14.3 32-32 32l-32 0c-11.8 0-22.2-6.4-27.7-16l-84.9 0c-3.4 6.7-7.9 13.1-13.5 18.7c-17.1 17.1-40.8 23.8-63 20.1c-3.6 7.3-8.5 14.1-14.6 20.2c-27.3 27.3-70 30-100.4 8.1c-25.1 20.8-62.5 19.5-86-4.1L159 404l-7-7-35.6-35.6c-5.5-5.5-12.7-8.7-20.4-9.3C96 369.7 81.6 384 64 384l-32 0c-17.7 0-32-14.3-32-32L0 144c0-8.8 7.2-16 16-16l40 0 40 0 19.8 0c2 0 3.9-.7 5.3-2l26.5-23.6C175.5 77.7 211.4 64 248.7 64L259 64c4.4 0 8.9 .2 13.2 .6zM544 320l0-144-48 0c-5.9 0-11.6-2.2-15.9-6.1l-36.9-32.8c-18.2-16.2-41.7-25.1-66.1-25.1c-25.4 0-49.8 9.7-68.3 27.1l-70.1 66.2c-10.3 9.8-10.1 26.3 .5 35.7c9.3 8.3 23.4 8.1 32.5-.3l71.9-66.4c9.7-9 24.9-8.4 33.9 1.4s8.4 24.9-1.4 33.9l-.8 .8 74.4 74.4c10 10 16.5 22.3 19.4 35.1l74.8 0zM64 336a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm528 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"]\n};\nconst faGem = {\n prefix: 'far',\n iconName: 'gem',\n icon: [512, 512, [128142], \"f3a5\", \"M168.5 72L256 165l87.5-93-175 0zM383.9 99.1L311.5 176l129 0L383.9 99.1zm50 124.9L256 224 78.1 224 256 420.3 433.9 224zM71.5 176l129 0L128.1 99.1 71.5 176zm434.3 40.1l-232 256c-4.5 5-11 7.9-17.8 7.9s-13.2-2.9-17.8-7.9l-232-256c-7.7-8.5-8.3-21.2-1.5-30.4l112-152c4.5-6.1 11.7-9.8 19.3-9.8l240 0c7.6 0 14.8 3.6 19.3 9.8l112 152c6.8 9.2 6.1 21.9-1.5 30.4z\"]\n};\nconst faCirclePlay = {\n prefix: 'far',\n iconName: 'circle-play',\n icon: [512, 512, [61469, \"play-circle\"], \"f144\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM188.3 147.1c7.6-4.2 16.8-4.1 24.3 .5l144 88c7.1 4.4 11.5 12.1 11.5 20.5s-4.4 16.1-11.5 20.5l-144 88c-7.4 4.5-16.7 4.7-24.3 .5s-12.3-12.2-12.3-20.9l0-176c0-8.7 4.7-16.7 12.3-20.9z\"]\n};\nconst faPlayCircle = faCirclePlay;\nconst faCircleCheck = {\n prefix: 'far',\n iconName: 'circle-check',\n icon: [512, 512, [61533, \"check-circle\"], \"f058\", \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM369 209c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-111 111-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0L369 209z\"]\n};\nconst faCheckCircle = faCircleCheck;\nconst faCircleStop = {\n prefix: 'far',\n iconName: 'circle-stop',\n icon: [512, 512, [62094, \"stop-circle\"], \"f28d\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm192-96l128 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32z\"]\n};\nconst faStopCircle = faCircleStop;\nconst faIdBadge = {\n prefix: 'far',\n iconName: 'id-badge',\n icon: [384, 512, [], \"f2c1\", \"M256 48l0 16c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-16L64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16l0-384c0-8.8-7.2-16-16-16l-64 0zM0 64C0 28.7 28.7 0 64 0L320 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM160 320l64 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16L96 416c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm-32-96a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z\"]\n};\nconst faFaceLaughBeam = {\n prefix: 'far',\n iconName: 'face-laugh-beam',\n icon: [512, 512, [128513, \"laugh-beam\"], \"f59a\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm130.7 57.9c-4.2-13.6 7.1-25.9 21.3-25.9l212.5 0c14.2 0 25.5 12.4 21.3 25.9C369 368.4 318.2 408 258.2 408s-110.8-39.6-127.5-94.1zm86.9-85.1s0 0 0 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0zm160 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0z\"]\n};\nconst faLaughBeam = faFaceLaughBeam;\nconst faRegistered = {\n prefix: 'far',\n iconName: 'registered',\n icon: [512, 512, [174], \"f25d\", \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM160 152l0 112 0 96c0 13.3 10.7 24 24 24s24-10.7 24-24l0-72 60.9 0 37.2 81.9c5.5 12.1 19.7 17.4 31.8 11.9s17.4-19.7 11.9-31.8L315.7 275c21.8-14.3 36.3-39 36.3-67c0-44.2-35.8-80-80-80l-88 0c-13.3 0-24 10.7-24 24zm48 88l0-64 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0z\"]\n};\nconst faAddressCard = {\n prefix: 'far',\n iconName: 'address-card',\n icon: [576, 512, [62140, \"contact-card\", \"vcard\"], \"f2bb\", \"M512 80c8.8 0 16 7.2 16 16l0 320c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16L48 96c0-8.8 7.2-16 16-16l448 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM208 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm-32 32c-44.2 0-80 35.8-80 80c0 8.8 7.2 16 16 16l192 0c8.8 0 16-7.2 16-16c0-44.2-35.8-80-80-80l-64 0zM376 144c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0z\"]\n};\nconst faContactCard = faAddressCard;\nconst faVcard = faAddressCard;\nconst faFaceTired = {\n prefix: 'far',\n iconName: 'face-tired',\n icon: [512, 512, [128555, \"tired\"], \"f5c8\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm176.5 64.3C196.1 302.1 223.8 288 256 288s59.9 14.1 79.5 32.3C354.5 338.1 368 362 368 384c0 5.4-2.7 10.4-7.2 13.4s-10.2 3.4-15.2 1.3l-17.2-7.5c-22.8-10-47.5-15.1-72.4-15.1s-49.6 5.2-72.4 15.1l-17.2 7.5c-4.9 2.2-10.7 1.7-15.2-1.3s-7.2-8-7.2-13.4c0-22 13.5-45.9 32.5-63.7zm-43-173.6l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 157.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z\"]\n};\nconst faTired = faFaceTired;\nconst faFontAwesome = {\n prefix: 'far',\n iconName: 'font-awesome',\n icon: [512, 512, [62501, 62694, \"font-awesome-flag\", \"font-awesome-logo-full\"], \"f2b4\", \"M91.7 96C106.3 86.8 116 70.5 116 52C116 23.3 92.7 0 64 0S12 23.3 12 52c0 16.7 7.8 31.5 20 41l0 3 0 48 0 256 0 48 0 64 48 0 0-64 389.6 0c14.6 0 26.4-11.8 26.4-26.4c0-3.7-.8-7.3-2.3-10.7L432 272l61.7-138.9c1.5-3.4 2.3-7 2.3-10.7c0-14.6-11.8-26.4-26.4-26.4L91.7 96zM80 400l0-256 356.4 0L388.1 252.5c-5.5 12.4-5.5 26.6 0 39L436.4 400 80 400z\"]\n};\nconst faFontAwesomeFlag = faFontAwesome;\nconst faFontAwesomeLogoFull = faFontAwesome;\nconst faFaceSmileWink = {\n prefix: 'far',\n iconName: 'face-smile-wink',\n icon: [512, 512, [128521, \"smile-wink\"], \"f4da\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm177.6 62.1C192.8 334.5 218.8 352 256 352s63.2-17.5 78.4-33.9c9-9.7 24.2-10.4 33.9-1.4s10.4 24.2 1.4 33.9c-22 23.8-60 49.4-113.6 49.4s-91.7-25.5-113.6-49.4c-9-9.7-8.4-24.9 1.4-33.9s24.9-8.4 33.9 1.4zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm165.8 21.7c-7.6 8.1-20.2 8.5-28.3 .9s-8.5-20.2-.9-28.3c14.5-15.5 35.2-22.3 54.6-22.3s40.1 6.8 54.6 22.3c7.6 8.1 7.1 20.7-.9 28.3s-20.7 7.1-28.3-.9c-5.5-5.8-14.8-9.7-25.4-9.7s-19.9 3.8-25.4 9.7z\"]\n};\nconst faSmileWink = faFaceSmileWink;\nconst faFileWord = {\n prefix: 'far',\n iconName: 'file-word',\n icon: [384, 512, [], \"f1c2\", \"M48 448L48 64c0-8.8 7.2-16 16-16l160 0 0 80c0 17.7 14.3 32 32 32l80 0 0 288c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-293.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0L64 0zm55 241.1c-3.8-12.7-17.2-19.9-29.9-16.1s-19.9 17.2-16.1 29.9l48 160c3 10.2 12.4 17.1 23 17.1s19.9-7 23-17.1l25-83.4 25 83.4c3 10.2 12.4 17.1 23 17.1s19.9-7 23-17.1l48-160c3.8-12.7-3.4-26.1-16.1-29.9s-26.1 3.4-29.9 16.1l-25 83.4-25-83.4c-3-10.2-12.4-17.1-23-17.1s-19.9 7-23 17.1l-25 83.4-25-83.4z\"]\n};\nconst faFilePowerpoint = {\n prefix: 'far',\n iconName: 'file-powerpoint',\n icon: [384, 512, [], \"f1c4\", \"M64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16l160 0 0 80c0 17.7 14.3 32 32 32l80 0 0 288c0 8.8-7.2 16-16 16L64 464zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-293.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0L64 0zm72 208c-13.3 0-24 10.7-24 24l0 104 0 56c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32 44 0c42 0 76-34 76-76s-34-76-76-76l-68 0zm68 104l-44 0 0-56 44 0c15.5 0 28 12.5 28 28s-12.5 28-28 28z\"]\n};\nconst faEnvelopeOpen = {\n prefix: 'far',\n iconName: 'envelope-open',\n icon: [512, 512, [62135], \"f2b6\", \"M255.4 48.2c.2-.1 .4-.2 .6-.2s.4 .1 .6 .2L460.6 194c2.1 1.5 3.4 3.9 3.4 6.5l0 13.6L291.5 355.7c-20.7 17-50.4 17-71.1 0L48 214.1l0-13.6c0-2.6 1.2-5 3.4-6.5L255.4 48.2zM48 276.2L190 392.8c38.4 31.5 93.7 31.5 132 0L464 276.2 464 456c0 4.4-3.6 8-8 8L56 464c-4.4 0-8-3.6-8-8l0-179.8zM256 0c-10.2 0-20.2 3.2-28.5 9.1L23.5 154.9C8.7 165.4 0 182.4 0 200.5L0 456c0 30.9 25.1 56 56 56l400 0c30.9 0 56-25.1 56-56l0-255.5c0-18.1-8.7-35.1-23.4-45.6L284.5 9.1C276.2 3.2 266.2 0 256 0z\"]\n};\nconst faFileZipper = {\n prefix: 'far',\n iconName: 'file-zipper',\n icon: [384, 512, [\"file-archive\"], \"f1c6\", \"M64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16l48 0c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l48 0 0 80c0 17.7 14.3 32 32 32l80 0 0 288c0 8.8-7.2 16-16 16L64 464zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-293.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0L64 0zm48 112c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm-6.3 71.8L82.1 335.9c-1.4 5.4-2.1 10.9-2.1 16.4c0 35.2 28.8 63.7 64 63.7s64-28.5 64-63.7c0-5.5-.7-11.1-2.1-16.4l-23.5-88.2c-3.7-14-16.4-23.8-30.9-23.8l-14.8 0c-14.5 0-27.2 9.7-30.9 23.8zM128 336l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nconst faFileArchive = faFileZipper;\nconst faSquare = {\n prefix: 'far',\n iconName: 'square',\n icon: [448, 512, [9632, 9723, 9724, 61590], \"f0c8\", \"M384 80c8.8 0 16 7.2 16 16l0 320c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16L48 96c0-8.8 7.2-16 16-16l320 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z\"]\n};\nconst faSnowflake = {\n prefix: 'far',\n iconName: 'snowflake',\n icon: [448, 512, [10052, 10054], \"f2dc\", \"M224 0c13.3 0 24 10.7 24 24l0 46.1 23-23c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-57 57 0 76.5 66.2-38.2 20.9-77.8c3.4-12.8 16.6-20.4 29.4-17s20.4 16.6 17 29.4L373 142.2l37.1-21.4c11.5-6.6 26.2-2.7 32.8 8.8s2.7 26.2-8.8 32.8L397 183.8l31.5 8.4c12.8 3.4 20.4 16.6 17 29.4s-16.6 20.4-29.4 17l-77.8-20.9L272 256l66.2 38.2 77.8-20.9c12.8-3.4 26 4.2 29.4 17s-4.2 26-17 29.4L397 328.2l37.1 21.4c11.5 6.6 15.4 21.3 8.8 32.8s-21.3 15.4-32.8 8.8L373 369.8l8.4 31.5c3.4 12.8-4.2 26-17 29.4s-26-4.2-29.4-17l-20.9-77.8L248 297.6l0 76.5 57 57c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-23-23 0 46.1c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-46.1-23 23c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l57-57 0-76.5-66.2 38.2-20.9 77.8c-3.4 12.8-16.6 20.4-29.4 17s-20.4-16.6-17-29.4L75 369.8 37.9 391.2c-11.5 6.6-26.2 2.7-32.8-8.8s-2.7-26.2 8.8-32.8L51 328.2l-31.5-8.4c-12.8-3.4-20.4-16.6-17-29.4s16.6-20.4 29.4-17l77.8 20.9L176 256l-66.2-38.2L31.9 238.6c-12.8 3.4-26-4.2-29.4-17s4.2-26 17-29.4L51 183.8 13.9 162.4c-11.5-6.6-15.4-21.3-8.8-32.8s21.3-15.4 32.8-8.8L75 142.2l-8.4-31.5c-3.4-12.8 4.2-26 17-29.4s26 4.2 29.4 17l20.9 77.8L200 214.4l0-76.5L143 81c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l23 23L200 24c0-13.3 10.7-24 24-24z\"]\n};\nconst faNewspaper = {\n prefix: 'far',\n iconName: 'newspaper',\n icon: [512, 512, [128240], \"f1ea\", \"M168 80c-13.3 0-24 10.7-24 24l0 304c0 8.4-1.4 16.5-4.1 24L440 432c13.3 0 24-10.7 24-24l0-304c0-13.3-10.7-24-24-24L168 80zM72 480c-39.8 0-72-32.2-72-72L0 112C0 98.7 10.7 88 24 88s24 10.7 24 24l0 296c0 13.3 10.7 24 24 24s24-10.7 24-24l0-304c0-39.8 32.2-72 72-72l272 0c39.8 0 72 32.2 72 72l0 304c0 39.8-32.2 72-72 72L72 480zM176 136c0-13.3 10.7-24 24-24l96 0c13.3 0 24 10.7 24 24l0 80c0 13.3-10.7 24-24 24l-96 0c-13.3 0-24-10.7-24-24l0-80zm200-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 80l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zM200 272l208 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-208 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 80l208 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-208 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nconst faFaceKissWinkHeart = {\n prefix: 'far',\n iconName: 'face-kiss-wink-heart',\n icon: [512, 512, [128536, \"kiss-wink-heart\"], \"f598\", \"M338.9 446.8c-25.4 11-53.4 17.2-82.9 17.2C141.1 464 48 370.9 48 256S141.1 48 256 48s208 93.1 208 208c0 22.4-3.5 43.9-10.1 64.1c3.1 4.5 5.7 9.4 7.8 14.6c12.7-1.6 25.1 .4 36.2 5c9.1-26.2 14-54.4 14-83.7C512 114.6 397.4 0 256 0S0 114.6 0 256S114.6 512 256 512c35.4 0 69.1-7.2 99.7-20.2c-4.8-5.5-8.5-12.2-10.4-19.7l-6.5-25.3zM296 316c0-6.9-3.1-13.2-7.3-18.3c-4.3-5.2-10.1-9.7-16.7-13.4C258.7 276.9 241.4 272 224 272c-3.6 0-6.8 2.5-7.7 6s.6 7.2 3.8 9c0 0 0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2 .1c.2 .1 .5 .3 .9 .5c.8 .5 2 1.2 3.4 2.1c2.8 1.9 6.5 4.5 10.2 7.6c3.7 3.1 7.2 6.6 9.6 10.1c2.5 3.5 3.5 6.4 3.5 8.6s-1 5-3.5 8.6c-2.5 3.5-5.9 6.9-9.6 10.1c-3.7 3.1-7.4 5.7-10.2 7.6c-1.4 .9-2.6 1.6-3.4 2.1c-.4 .2-.7 .4-.9 .5l-.2 .1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0c-2.5 1.4-4.1 4.1-4.1 7s1.6 5.6 4.1 7c0 0 0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2 .1c.2 .1 .5 .3 .9 .5c.8 .5 2 1.2 3.4 2.1c2.8 1.9 6.5 4.5 10.2 7.6c3.7 3.1 7.2 6.6 9.6 10.1c2.5 3.5 3.5 6.4 3.5 8.6s-1 5-3.5 8.6c-2.5 3.5-5.9 6.9-9.6 10.1c-3.7 3.1-7.4 5.7-10.2 7.6c-1.4 .9-2.6 1.6-3.4 2.1c-.4 .2-.7 .4-.9 .5l-.2 .1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0s0 0 0 0c-3.2 1.8-4.7 5.5-3.8 9s4.1 6 7.7 6c17.4 0 34.7-4.9 47.9-12.3c6.6-3.7 12.5-8.2 16.7-13.4c4.3-5.1 7.3-11.4 7.3-18.3s-3.1-13.2-7.3-18.3c-4.3-5.2-10.1-9.7-16.7-13.4c-2.7-1.5-5.7-3-8.7-4.3c3.1-1.3 6-2.7 8.7-4.3c6.6-3.7 12.5-8.2 16.7-13.4c4.3-5.1 7.3-11.4 7.3-18.3zM176.4 240a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm159.3-20c10.6 0 19.9 3.8 25.4 9.7c7.6 8.1 20.2 8.5 28.3 .9s8.5-20.2 .9-28.3C375.7 186.8 355 180 335.6 180s-40.1 6.8-54.6 22.3c-7.6 8.1-7.1 20.7 .9 28.3s20.7 7.1 28.3-.9c5.5-5.8 14.8-9.7 25.4-9.7zM434 352.3c-6-23.2-28.8-37-51.1-30.8s-35.4 30.1-29.5 53.4l22.9 89.3c2.2 8.7 11.2 13.9 19.8 11.4l84.9-23.8c22.2-6.2 35.4-30.1 29.5-53.4s-28.8-37-51.1-30.8l-20.2 5.6-5.4-21z\"]\n};\nconst faKissWinkHeart = faFaceKissWinkHeart;\nconst faStarHalfStroke = {\n prefix: 'far',\n iconName: 'star-half-stroke',\n icon: [576, 512, [\"star-half-alt\"], \"f5c0\", \"M309.5 13.5C305.5 5.2 297.1 0 287.9 0s-17.6 5.2-21.6 13.5L197.7 154.8 44.5 177.5c-9 1.3-16.5 7.6-19.3 16.3s-.5 18.1 5.9 24.5L142.2 328.4 116 483.9c-1.5 9 2.2 18.1 9.7 23.5s17.3 6 25.3 1.7l137-73.2 137 73.2c8.1 4.3 17.9 3.7 25.3-1.7s11.2-14.5 9.7-23.5L433.6 328.4 544.8 218.2c6.5-6.4 8.7-15.9 5.9-24.5s-10.3-14.9-19.3-16.3L378.1 154.8 309.5 13.5zM288 384.7l0-305.6 52.5 108.1c3.5 7.1 10.2 12.1 18.1 13.3l118.3 17.5L391 303c-5.5 5.5-8.1 13.3-6.8 21l20.2 119.6L299.2 387.5c-3.5-1.9-7.4-2.8-11.2-2.8z\"]\n};\nconst faStarHalfAlt = faStarHalfStroke;\nconst faFileExcel = {\n prefix: 'far',\n iconName: 'file-excel',\n icon: [384, 512, [], \"f1c3\", \"M48 448L48 64c0-8.8 7.2-16 16-16l160 0 0 80c0 17.7 14.3 32 32 32l80 0 0 288c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-293.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0L64 0zm90.9 233.3c-8.1-10.5-23.2-12.3-33.7-4.2s-12.3 23.2-4.2 33.7L161.6 320l-44.5 57.3c-8.1 10.5-6.3 25.5 4.2 33.7s25.5 6.3 33.7-4.2L192 359.1l37.1 47.6c8.1 10.5 23.2 12.3 33.7 4.2s12.3-23.2 4.2-33.7L222.4 320l44.5-57.3c8.1-10.5 6.3-25.5-4.2-33.7s-25.5-6.3-33.7 4.2L192 280.9l-37.1-47.6z\"]\n};\nconst faFaceGrinBeam = {\n prefix: 'far',\n iconName: 'face-grin-beam',\n icon: [512, 512, [128516, \"grin-beam\"], \"f582\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm349.5 52.4c18.7-4.4 35.9 12 25.5 28.1C350.4 374.6 306.3 400 255.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5zM217.6 228.8s0 0 0 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0zm160 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0z\"]\n};\nconst faGrinBeam = faFaceGrinBeam;\nconst faObjectUngroup = {\n prefix: 'far',\n iconName: 'object-ungroup',\n icon: [640, 512, [], \"f248\", \"M48.2 66.8c-.1-.8-.2-1.7-.2-2.5l0-.2c0-8.8 7.2-16 16-16c.9 0 1.9 .1 2.8 .2C74.3 49.5 80 56.1 80 64c0 8.8-7.2 16-16 16c-7.9 0-14.5-5.7-15.8-13.2zM0 64c0 26.9 16.5 49.9 40 59.3l0 105.3C16.5 238.1 0 261.1 0 288c0 35.3 28.7 64 64 64c26.9 0 49.9-16.5 59.3-40l201.3 0c9.5 23.5 32.5 40 59.3 40c35.3 0 64-28.7 64-64c0-26.9-16.5-49.9-40-59.3l0-105.3c23.5-9.5 40-32.5 40-59.3c0-35.3-28.7-64-64-64c-26.9 0-49.9 16.5-59.3 40L123.3 40C113.9 16.5 90.9 0 64 0C28.7 0 0 28.7 0 64zm368 0a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM324.7 88c6.5 16 19.3 28.9 35.3 35.3l0 105.3c-16 6.5-28.9 19.3-35.3 35.3l-201.3 0c-6.5-16-19.3-28.9-35.3-35.3l0-105.3c16-6.5 28.9-19.3 35.3-35.3l201.3 0zM384 272a16 16 0 1 1 0 32 16 16 0 1 1 0-32zM80 288c0 7.9-5.7 14.5-13.2 15.8c-.8 .1-1.7 .2-2.5 .2l-.2 0c-8.8 0-16-7.2-16-16c0-.9 .1-1.9 .2-2.8C49.5 277.7 56.1 272 64 272c8.8 0 16 7.2 16 16zm391.3-40l45.4 0c6.5 16 19.3 28.9 35.3 35.3l0 105.3c-16 6.5-28.9 19.3-35.3 35.3l-201.3 0c-6.5-16-19.3-28.9-35.3-35.3l0-36.7-48 0 0 36.7c-23.5 9.5-40 32.5-40 59.3c0 35.3 28.7 64 64 64c26.9 0 49.9-16.5 59.3-40l201.3 0c9.5 23.5 32.5 40 59.3 40c35.3 0 64-28.7 64-64c0-26.9-16.5-49.9-40-59.3l0-105.3c23.5-9.5 40-32.5 40-59.3c0-35.3-28.7-64-64-64c-26.9 0-49.9 16.5-59.3 40L448 200l0 16.4c9.8 8.8 17.8 19.5 23.3 31.6zm88.9-26.7a16 16 0 1 1 31.5 5.5 16 16 0 1 1 -31.5-5.5zM271.8 450.7a16 16 0 1 1 -31.5-5.5 16 16 0 1 1 31.5 5.5zm307-18.5a16 16 0 1 1 -5.5 31.5 16 16 0 1 1 5.5-31.5z\"]\n};\nconst faCircleRight = {\n prefix: 'far',\n iconName: 'circle-right',\n icon: [512, 512, [61838, \"arrow-alt-circle-right\"], \"f35a\", \"M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM294.6 151.2c-4.2-4.6-10.1-7.2-16.4-7.2C266 144 256 154 256 166.3l0 41.7-96 0c-17.7 0-32 14.3-32 32l0 32c0 17.7 14.3 32 32 32l96 0 0 41.7c0 12.3 10 22.3 22.3 22.3c6.2 0 12.1-2.6 16.4-7.2l84-91c3.5-3.8 5.4-8.7 5.4-13.9s-1.9-10.1-5.4-13.9l-84-91z\"]\n};\nconst faArrowAltCircleRight = faCircleRight;\nconst faFaceRollingEyes = {\n prefix: 'far',\n iconName: 'face-rolling-eyes',\n icon: [512, 512, [128580, \"meh-rolling-eyes\"], \"f5a5\", \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM168 376c0 13.3 10.7 24 24 24l128 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-128 0c-13.3 0-24 10.7-24 24zm-8-104c-26.5 0-48-21.5-48-48c0-14.3 6.3-27.2 16.2-36c-.2 1.3-.2 2.6-.2 4c0 17.7 14.3 32 32 32s32-14.3 32-32c0-1.4-.1-2.7-.2-4c10 8.8 16.2 21.7 16.2 36c0 26.5-21.5 48-48 48zm0 32a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm192-32c-26.5 0-48-21.5-48-48c0-14.3 6.3-27.2 16.2-36c-.2 1.3-.2 2.6-.2 4c0 17.7 14.3 32 32 32s32-14.3 32-32c0-1.4-.1-2.7-.2-4c10 8.8 16.2 21.7 16.2 36c0 26.5-21.5 48-48 48zm0 32a80 80 0 1 0 0-160 80 80 0 1 0 0 160z\"]\n};\nconst faMehRollingEyes = faFaceRollingEyes;\nconst faObjectGroup = {\n prefix: 'far',\n iconName: 'object-group',\n icon: [576, 512, [], \"f247\", \"M48 115.8C38.2 107 32 94.2 32 80c0-26.5 21.5-48 48-48c14.2 0 27 6.2 35.8 16l344.4 0c8.8-9.8 21.6-16 35.8-16c26.5 0 48 21.5 48 48c0 14.2-6.2 27-16 35.8l0 280.4c9.8 8.8 16 21.6 16 35.8c0 26.5-21.5 48-48 48c-14.2 0-27-6.2-35.8-16l-344.4 0c-8.8 9.8-21.6 16-35.8 16c-26.5 0-48-21.5-48-48c0-14.2 6.2-27 16-35.8l0-280.4zM125.3 96c-4.8 13.6-15.6 24.4-29.3 29.3l0 261.5c13.6 4.8 24.4 15.6 29.3 29.3l325.5 0c4.8-13.6 15.6-24.4 29.3-29.3l0-261.5c-13.6-4.8-24.4-15.6-29.3-29.3L125.3 96zm2.7 64c0-17.7 14.3-32 32-32l128 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-96zM256 320l32 0c35.3 0 64-28.7 64-64l0-32 64 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-32z\"]\n};\nconst faHeart = {\n prefix: 'far',\n iconName: 'heart',\n icon: [512, 512, [128153, 128154, 128155, 128156, 128420, 129293, 129294, 129505, 9829, 10084, 61578], \"f004\", \"M225.8 468.2l-2.5-2.3L48.1 303.2C17.4 274.7 0 234.7 0 192.8l0-3.3c0-70.4 50-130.8 119.2-144C158.6 37.9 198.9 47 231 69.6c9 6.4 17.4 13.8 25 22.3c4.2-4.8 8.7-9.2 13.5-13.3c3.7-3.2 7.5-6.2 11.5-9c0 0 0 0 0 0C313.1 47 353.4 37.9 392.8 45.4C462 58.6 512 119.1 512 189.5l0 3.3c0 41.9-17.4 81.9-48.1 110.4L288.7 465.9l-2.5 2.3c-8.2 7.6-19 11.9-30.2 11.9s-22-4.2-30.2-11.9zM239.1 145c-.4-.3-.7-.7-1-1.1l-17.8-20-.1-.1s0 0 0 0c-23.1-25.9-58-37.7-92-31.2C81.6 101.5 48 142.1 48 189.5l0 3.3c0 28.5 11.9 55.8 32.8 75.2L256 430.7 431.2 268c20.9-19.4 32.8-46.7 32.8-75.2l0-3.3c0-47.3-33.6-88-80.1-96.9c-34-6.5-69 5.4-92 31.2c0 0 0 0-.1 .1s0 0-.1 .1l-17.8 20c-.3 .4-.7 .7-1 1.1c-4.5 4.5-10.6 7-16.9 7s-12.4-2.5-16.9-7z\"]\n};\nconst faFaceSurprise = {\n prefix: 'far',\n iconName: 'face-surprise',\n icon: [512, 512, [128558, \"surprise\"], \"f5c2\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm176.4-80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM256 288a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"]\n};\nconst faSurprise = faFaceSurprise;\nconst faCirclePause = {\n prefix: 'far',\n iconName: 'circle-pause',\n icon: [512, 512, [62092, \"pause-circle\"], \"f28b\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm224-72l0 144c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-144c0-13.3 10.7-24 24-24s24 10.7 24 24zm112 0l0 144c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-144c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nconst faPauseCircle = faCirclePause;\nconst faCircle = {\n prefix: 'far',\n iconName: 'circle',\n icon: [512, 512, [128308, 128309, 128992, 128993, 128994, 128995, 128996, 9679, 9898, 9899, 11044, 61708, 61915], \"f111\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z\"]\n};\nconst faCircleUp = {\n prefix: 'far',\n iconName: 'circle-up',\n icon: [512, 512, [61467, \"arrow-alt-circle-up\"], \"f35b\", \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM151.2 217.4c-4.6 4.2-7.2 10.1-7.2 16.4c0 12.3 10 22.3 22.3 22.3l41.7 0 0 96c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-96 41.7 0c12.3 0 22.3-10 22.3-22.3c0-6.2-2.6-12.1-7.2-16.4l-91-84c-3.8-3.5-8.7-5.4-13.9-5.4s-10.1 1.9-13.9 5.4l-91 84z\"]\n};\nconst faArrowAltCircleUp = faCircleUp;\nconst faFileAudio = {\n prefix: 'far',\n iconName: 'file-audio',\n icon: [384, 512, [], \"f1c7\", \"M64 464l256 0c8.8 0 16-7.2 16-16l0-288-80 0c-17.7 0-32-14.3-32-32l0-80L64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16zM0 64C0 28.7 28.7 0 64 0L229.5 0c17 0 33.3 6.7 45.3 18.7l90.5 90.5c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM192 272l0 128c0 6.5-3.9 12.3-9.9 14.8s-12.9 1.1-17.4-3.5L129.4 376 112 376c-8.8 0-16-7.2-16-16l0-48c0-8.8 7.2-16 16-16l17.4 0 35.3-35.3c4.6-4.6 11.5-5.9 17.4-3.5s9.9 8.3 9.9 14.8zm85.8-4c11.6 20 18.2 43.3 18.2 68s-6.6 48-18.2 68c-6.6 11.5-21.3 15.4-32.8 8.8s-15.4-21.3-8.8-32.8c7.5-12.9 11.8-27.9 11.8-44s-4.3-31.1-11.8-44c-6.6-11.5-2.7-26.2 8.8-32.8s26.2-2.7 32.8 8.8z\"]\n};\nconst faFileImage = {\n prefix: 'far',\n iconName: 'file-image',\n icon: [384, 512, [128443], \"f1c5\", \"M64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16l160 0 0 80c0 17.7 14.3 32 32 32l80 0 0 288c0 8.8-7.2 16-16 16L64 464zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-293.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0L64 0zm96 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm69.2 46.9c-3-4.3-7.9-6.9-13.2-6.9s-10.2 2.6-13.2 6.9l-41.3 59.7-11.9-19.1c-2.9-4.7-8.1-7.5-13.6-7.5s-10.6 2.8-13.6 7.5l-40 64c-3.1 4.9-3.2 11.1-.4 16.2s8.2 8.2 14 8.2l48 0 32 0 40 0 72 0c6 0 11.4-3.3 14.2-8.6s2.4-11.6-1-16.5l-72-104z\"]\n};\nconst faCircleQuestion = {\n prefix: 'far',\n iconName: 'circle-question',\n icon: [512, 512, [62108, \"question-circle\"], \"f059\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm169.8-90.7c7.9-22.3 29.1-37.3 52.8-37.3l58.3 0c34.9 0 63.1 28.3 63.1 63.1c0 22.6-12.1 43.5-31.7 54.8L280 264.4c-.2 13-10.9 23.6-24 23.6c-13.3 0-24-10.7-24-24l0-13.5c0-8.6 4.6-16.5 12.1-20.8l44.3-25.4c4.7-2.7 7.6-7.7 7.6-13.1c0-8.4-6.8-15.1-15.1-15.1l-58.3 0c-3.4 0-6.4 2.1-7.5 5.3l-.4 1.2c-4.4 12.5-18.2 19-30.6 14.6s-19-18.2-14.6-30.6l.4-1.2zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nconst faQuestionCircle = faCircleQuestion;\nconst faFaceMehBlank = {\n prefix: 'far',\n iconName: 'face-meh-blank',\n icon: [512, 512, [128566, \"meh-blank\"], \"f5a4\", \"M256 48a208 208 0 1 0 0 416 208 208 0 1 0 0-416zM512 256A256 256 0 1 1 0 256a256 256 0 1 1 512 0zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nconst faMehBlank = faFaceMehBlank;\nconst faEye = {\n prefix: 'far',\n iconName: 'eye',\n icon: [576, 512, [128065], \"f06e\", \"M288 80c-65.2 0-118.8 29.6-159.9 67.7C89.6 183.5 63 226 49.4 256c13.6 30 40.2 72.5 78.6 108.3C169.2 402.4 222.8 432 288 432s118.8-29.6 159.9-67.7C486.4 328.5 513 286 526.6 256c-13.6-30-40.2-72.5-78.6-108.3C406.8 109.6 353.2 80 288 80zM95.4 112.6C142.5 68.8 207.2 32 288 32s145.5 36.8 192.6 80.6c46.8 43.5 78.1 95.4 93 131.1c3.3 7.9 3.3 16.7 0 24.6c-14.9 35.7-46.2 87.7-93 131.1C433.5 443.2 368.8 480 288 480s-145.5-36.8-192.6-80.6C48.6 356 17.3 304 2.5 268.3c-3.3-7.9-3.3-16.7 0-24.6C17.3 208 48.6 156 95.4 112.6zM288 336c44.2 0 80-35.8 80-80s-35.8-80-80-80c-.7 0-1.3 0-2 0c1.3 5.1 2 10.5 2 16c0 35.3-28.7 64-64 64c-5.5 0-10.9-.7-16-2c0 .7 0 1.3 0 2c0 44.2 35.8 80 80 80zm0-208a128 128 0 1 1 0 256 128 128 0 1 1 0-256z\"]\n};\nconst faFaceSadCry = {\n prefix: 'far',\n iconName: 'face-sad-cry',\n icon: [512, 512, [128557, \"sad-cry\"], \"f5b3\", \"M400 406.1L400 288c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 152.6c-28.7 15-61.4 23.4-96 23.4s-67.3-8.5-96-23.4L160 288c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 118.1C72.6 368.2 48 315 48 256C48 141.1 141.1 48 256 48s208 93.1 208 208c0 59-24.6 112.2-64 150.1zM256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM159.6 220c10.6 0 19.9 3.8 25.4 9.7c7.6 8.1 20.2 8.5 28.3 .9s8.5-20.2 .9-28.3C199.7 186.8 179 180 159.6 180s-40.1 6.8-54.6 22.3c-7.6 8.1-7.1 20.7 .9 28.3s20.7 7.1 28.3-.9c5.5-5.8 14.8-9.7 25.4-9.7zm166.6 9.7c5.5-5.8 14.8-9.7 25.4-9.7s19.9 3.8 25.4 9.7c7.6 8.1 20.2 8.5 28.3 .9s8.5-20.2 .9-28.3C391.7 186.8 371 180 351.6 180s-40.1 6.8-54.6 22.3c-7.6 8.1-7.1 20.7 .9 28.3s20.7 7.1 28.3-.9zM208 320l0 32c0 26.5 21.5 48 48 48s48-21.5 48-48l0-32c0-26.5-21.5-48-48-48s-48 21.5-48 48z\"]\n};\nconst faSadCry = faFaceSadCry;\nconst faFileCode = {\n prefix: 'far',\n iconName: 'file-code',\n icon: [384, 512, [], \"f1c9\", \"M64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16l160 0 0 80c0 17.7 14.3 32 32 32l80 0 0 288c0 8.8-7.2 16-16 16L64 464zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-293.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0L64 0zm97 289c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L79 303c-9.4 9.4-9.4 24.6 0 33.9l48 48c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-31-31 31-31zM257 255c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l31 31-31 31c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l48-48c9.4-9.4 9.4-24.6 0-33.9l-48-48z\"]\n};\nconst faWindowMaximize = {\n prefix: 'far',\n iconName: 'window-maximize',\n icon: [512, 512, [128470], \"f2d0\", \"M.3 89.5C.1 91.6 0 93.8 0 96L0 224 0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-192 0-128c0-35.3-28.7-64-64-64L64 32c-2.2 0-4.4 .1-6.5 .3c-9.2 .9-17.8 3.8-25.5 8.2C21.8 46.5 13.4 55.1 7.7 65.5c-3.9 7.3-6.5 15.4-7.4 24zM48 224l416 0 0 192c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16l0-192z\"]\n};\nconst faFaceFrown = {\n prefix: 'far',\n iconName: 'face-frown',\n icon: [512, 512, [9785, \"frown\"], \"f119\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM174.6 384.1c-4.5 12.5-18.2 18.9-30.7 14.4s-18.9-18.2-14.4-30.7C146.9 319.4 198.9 288 256 288s109.1 31.4 126.6 79.9c4.5 12.5-2 26.2-14.4 30.7s-26.2-2-30.7-14.4C328.2 358.5 297.2 336 256 336s-72.2 22.5-81.4 48.1zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nconst faFrown = faFaceFrown;\nconst faFloppyDisk = {\n prefix: 'far',\n iconName: 'floppy-disk',\n icon: [448, 512, [128190, 128426, \"save\"], \"f0c7\", \"M48 96l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-245.5c0-4.2-1.7-8.3-4.7-11.3l33.9-33.9c12 12 18.7 28.3 18.7 45.3L448 416c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l245.5 0c17 0 33.3 6.7 45.3 18.7l74.5 74.5-33.9 33.9L320.8 84.7c-.3-.3-.5-.5-.8-.8L320 184c0 13.3-10.7 24-24 24l-192 0c-13.3 0-24-10.7-24-24L80 80 64 80c-8.8 0-16 7.2-16 16zm80-16l0 80 144 0 0-80L128 80zm32 240a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z\"]\n};\nconst faSave = faFloppyDisk;\nconst faCommentDots = {\n prefix: 'far',\n iconName: 'comment-dots',\n icon: [512, 512, [128172, 62075, \"commenting\"], \"f4ad\", \"M168.2 384.9c-15-5.4-31.7-3.1-44.6 6.4c-8.2 6-22.3 14.8-39.4 22.7c5.6-14.7 9.9-31.3 11.3-49.4c1-12.9-3.3-25.7-11.8-35.5C60.4 302.8 48 272 48 240c0-79.5 83.3-160 208-160s208 80.5 208 160s-83.3 160-208 160c-31.6 0-61.3-5.5-87.8-15.1zM26.3 423.8c-1.6 2.7-3.3 5.4-5.1 8.1l-.3 .5c-1.6 2.3-3.2 4.6-4.8 6.9c-3.5 4.7-7.3 9.3-11.3 13.5c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c5.1 0 10.2-.3 15.3-.8l.7-.1c4.4-.5 8.8-1.1 13.2-1.9c.8-.1 1.6-.3 2.4-.5c17.8-3.5 34.9-9.5 50.1-16.1c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9zM144 272a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm144-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm80 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nconst faCommenting = faCommentDots;\nconst faFaceGrinSquint = {\n prefix: 'far',\n iconName: 'face-grin-squint',\n icon: [512, 512, [128518, \"grin-squint\"], \"f585\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm349.5 52.4c18.7-4.4 35.9 12 25.5 28.1C350.4 374.6 306.3 400 255.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5zm-216-161.7l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 157.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z\"]\n};\nconst faGrinSquint = faFaceGrinSquint;\nconst faHandPointer = {\n prefix: 'far',\n iconName: 'hand-pointer',\n icon: [448, 512, [], \"f25a\", \"M160 64c0-8.8 7.2-16 16-16s16 7.2 16 16l0 136c0 10.3 6.6 19.5 16.4 22.8s20.6-.1 26.8-8.3c3-3.9 7.6-6.4 12.8-6.4c8.8 0 16 7.2 16 16c0 10.3 6.6 19.5 16.4 22.8s20.6-.1 26.8-8.3c3-3.9 7.6-6.4 12.8-6.4c7.8 0 14.3 5.6 15.7 13c1.6 8.2 7.3 15.1 15.1 18s16.7 1.6 23.3-3.6c2.7-2.1 6.1-3.4 9.9-3.4c8.8 0 16 7.2 16 16l0 16 0 104c0 39.8-32.2 72-72 72l-56 0-59.8 0-.9 0c-37.4 0-72.4-18.7-93.2-49.9L50.7 312.9c-4.9-7.4-2.9-17.3 4.4-22.2s17.3-2.9 22.2 4.4L116 353.2c5.9 8.8 16.8 12.7 26.9 9.7s17-12.4 17-23l0-19.9 0-256zM176 0c-35.3 0-64 28.7-64 64l0 197.7C91.2 238 55.5 232.8 28.5 250.7C-.9 270.4-8.9 310.1 10.8 339.5L78.3 440.8c29.7 44.5 79.6 71.2 133.1 71.2l.9 0 59.8 0 56 0c66.3 0 120-53.7 120-120l0-104 0-16c0-35.3-28.7-64-64-64c-4.5 0-8.8 .5-13 1.3c-11.7-15.4-30.2-25.3-51-25.3c-6.9 0-13.5 1.1-19.7 3.1C288.7 170.7 269.6 160 248 160c-2.7 0-5.4 .2-8 .5L240 64c0-35.3-28.7-64-64-64zm48 304c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96zm48-16c-8.8 0-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96c0-8.8-7.2-16-16-16zm80 16c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96z\"]\n};\nconst faHandScissors = {\n prefix: 'far',\n iconName: 'hand-scissors',\n icon: [512, 512, [], \"f257\", \"M.2 276.3c-1.2-35.3 26.4-65 61.7-66.2l3.3-.1L57 208.1C22.5 200.5 .7 166.3 8.3 131.8S50.2 75.5 84.7 83.2l173 38.3c2.3-2.9 4.7-5.7 7.1-8.5l18.4-20.3C299.9 74.5 323.5 64 348.3 64l10.2 0c54.1 0 104.1 28.7 131.3 75.4l1.5 2.6c13.6 23.2 20.7 49.7 20.7 76.6L512 344c0 66.3-53.7 120-120 120l-8 0-96 0c-35.3 0-64-28.7-64-64c0-2.8 .2-5.6 .5-8.3c-19.4-11-32.5-31.8-32.5-55.7c0-.8 0-1.6 0-2.4L66.4 338c-35.3 1.2-65-26.4-66.2-61.7zm63.4-18.2c-8.8 .3-15.7 7.7-15.4 16.5s7.7 15.7 16.5 15.4l161.5-5.6c9.8-.3 18.7 5.3 22.7 14.2s2.2 19.3-4.5 26.4c-2.8 2.9-4.4 6.7-4.4 11c0 8.8 7.2 16 16 16c9.1 0 17.4 5.1 21.5 13.3s3.2 17.9-2.3 25.1c-2 2.7-3.2 6-3.2 9.6c0 8.8 7.2 16 16 16l96 0 8 0c39.8 0 72-32.2 72-72l0-125.4c0-18.4-4.9-36.5-14.2-52.4l-1.5-2.6c-18.6-32-52.8-51.6-89.8-51.6l-10.2 0c-11.3 0-22 4.8-29.6 13.1l-17.5-15.9 17.5 15.9-18.4 20.3c-.6 .6-1.1 1.3-1.7 1.9l57 13.2c8.6 2 14 10.6 12 19.2s-10.6 14-19.2 12l-85.6-19.7L74.3 130c-8.6-1.9-17.2 3.5-19.1 12.2s3.5 17.2 12.2 19.1l187.5 41.6c10.2 2.3 17.8 10.9 18.7 21.4l.1 1c.6 6.6-1.5 13.1-5.8 18.1s-10.6 7.9-17.2 8.2L63.6 258.1z\"]\n};\nconst faFaceGrinTears = {\n prefix: 'far',\n iconName: 'face-grin-tears',\n icon: [640, 512, [128514, \"grin-tears\"], \"f588\", \"M516.1 325.5c1 3 2.1 6 3.3 8.9c3.3 8.1 8.4 18.5 16.5 26.6c3.9 3.9 8.2 7.4 12.7 10.3C506.4 454.8 419.9 512 320 512s-186.4-57.2-228.6-140.6c4.5-2.9 8.7-6.3 12.7-10.3c8.1-8.1 13.2-18.6 16.5-26.6c1.2-2.9 2.3-5.9 3.3-8.9C152.5 406.2 229.5 464 320 464s167.5-57.8 196.1-138.5zM320 48c-101.4 0-185.8 72.5-204.3 168.5c-6.7-3.1-14.3-4.3-22.3-3.1c-6.8 .9-16.2 2.4-26.6 4.4C85.3 94.5 191.6 0 320 0S554.7 94.5 573.2 217.7c-10.3-2-19.8-3.5-26.6-4.4c-8-1.2-15.7 .1-22.3 3.1C505.8 120.5 421.4 48 320 48zM78.5 341.1C60 356.7 32 355.5 14.3 337.7c-18.7-18.7-19.1-48.8-.7-67.2c8.6-8.6 30.1-15.1 50.5-19.6c13-2.8 25.5-4.8 33.9-6c5.4-.8 9.9 3.7 9 9c-3.1 21.5-11.4 70.2-25.5 84.4c-.9 1-1.9 1.8-2.9 2.7zm483 0c-.8-.6-1.5-1.3-2.3-2c-.2-.2-.5-.4-.7-.7c-14.1-14.1-22.5-62.9-25.5-84.4c-.8-5.4 3.7-9.9 9-9c1 .1 2.2 .3 3.3 .5c8.2 1.2 19.2 3 30.6 5.5c20.4 4.4 41.9 10.9 50.5 19.6c18.4 18.4 18 48.5-.7 67.2c-17.7 17.7-45.7 19-64.2 3.4zM439 336.5C414.4 374.6 370.3 400 319.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5c18.7-4.4 35.9 12 25.5 28.1zM281.6 228.8c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0zm160 0s0 0 0 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0z\"]\n};\nconst faGrinTears = faFaceGrinTears;\nconst faCalendarXmark = {\n prefix: 'far',\n iconName: 'calendar-xmark',\n icon: [448, 512, [\"calendar-times\"], \"f273\", \"M128 0c13.3 0 24 10.7 24 24l0 40 144 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 40 0c35.3 0 64 28.7 64 64l0 16 0 48 0 256c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 192l0-48 0-16C0 92.7 28.7 64 64 64l40 0 0-40c0-13.3 10.7-24 24-24zM400 192L48 192l0 256c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-256zm-95 89l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\"]\n};\nconst faCalendarTimes = faCalendarXmark;\nconst faFileVideo = {\n prefix: 'far',\n iconName: 'file-video',\n icon: [384, 512, [], \"f1c8\", \"M320 464c8.8 0 16-7.2 16-16l0-288-80 0c-17.7 0-32-14.3-32-32l0-80L64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l256 0zM0 64C0 28.7 28.7 0 64 0L229.5 0c17 0 33.3 6.7 45.3 18.7l90.5 90.5c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM80 288c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32l0 16 44.9-29.9c2-1.3 4.4-2.1 6.8-2.1c6.8 0 12.3 5.5 12.3 12.3l0 103.4c0 6.8-5.5 12.3-12.3 12.3c-2.4 0-4.8-.7-6.8-2.1L240 368l0 16c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-96z\"]\n};\nconst faFilePdf = {\n prefix: 'far',\n iconName: 'file-pdf',\n icon: [512, 512, [], \"f1c1\", \"M64 464l48 0 0 48-48 0c-35.3 0-64-28.7-64-64L0 64C0 28.7 28.7 0 64 0L229.5 0c17 0 33.3 6.7 45.3 18.7l90.5 90.5c12 12 18.7 28.3 18.7 45.3L384 304l-48 0 0-144-80 0c-17.7 0-32-14.3-32-32l0-80L64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16zM176 352l32 0c30.9 0 56 25.1 56 56s-25.1 56-56 56l-16 0 0 32c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48 0-80c0-8.8 7.2-16 16-16zm32 80c13.3 0 24-10.7 24-24s-10.7-24-24-24l-16 0 0 48 16 0zm96-80l32 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48l-32 0c-8.8 0-16-7.2-16-16l0-128c0-8.8 7.2-16 16-16zm32 128c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-16 0 0 96 16 0zm80-112c0-8.8 7.2-16 16-16l48 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0 0 32 32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0 0 48c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-64 0-64z\"]\n};\nconst faComment = {\n prefix: 'far',\n iconName: 'comment',\n icon: [512, 512, [128489, 61669], \"f075\", \"M123.6 391.3c12.9-9.4 29.6-11.8 44.6-6.4c26.5 9.6 56.2 15.1 87.8 15.1c124.7 0 208-80.5 208-160s-83.3-160-208-160S48 160.5 48 240c0 32 12.4 62.8 35.7 89.2c8.6 9.7 12.8 22.5 11.8 35.5c-1.4 18.1-5.7 34.7-11.3 49.4c17-7.9 31.1-16.7 39.4-22.7zM21.2 431.9c1.8-2.7 3.5-5.4 5.1-8.1c10-16.6 19.5-38.4 21.4-62.9C17.7 326.8 0 285.1 0 240C0 125.1 114.6 32 256 32s256 93.1 256 208s-114.6 208-256 208c-37.1 0-72.3-6.4-104.1-17.9c-11.9 8.7-31.3 20.6-54.3 30.6c-15.1 6.6-32.3 12.6-50.1 16.1c-.8 .2-1.6 .3-2.4 .5c-4.4 .8-8.7 1.5-13.2 1.9c-.2 0-.5 .1-.7 .1c-5.1 .5-10.2 .8-15.3 .8c-6.5 0-12.3-3.9-14.8-9.9c-2.5-6-1.1-12.8 3.4-17.4c4.1-4.2 7.8-8.7 11.3-13.5c1.7-2.3 3.3-4.6 4.8-6.9l.3-.5z\"]\n};\nconst faEnvelope = {\n prefix: 'far',\n iconName: 'envelope',\n icon: [512, 512, [128386, 9993, 61443], \"f0e0\", \"M64 112c-8.8 0-16 7.2-16 16l0 22.1L220.5 291.7c20.7 17 50.4 17 71.1 0L464 150.1l0-22.1c0-8.8-7.2-16-16-16L64 112zM48 212.2L48 384c0 8.8 7.2 16 16 16l384 0c8.8 0 16-7.2 16-16l0-171.8L322 328.8c-38.4 31.5-93.7 31.5-132 0L48 212.2zM0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128z\"]\n};\nconst faHourglass = {\n prefix: 'far',\n iconName: 'hourglass',\n icon: [384, 512, [9203, 62032, \"hourglass-empty\"], \"f254\", \"M24 0C10.7 0 0 10.7 0 24S10.7 48 24 48l8 0 0 19c0 40.3 16 79 44.5 107.5L158.1 256 76.5 337.5C48 366 32 404.7 32 445l0 19-8 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l336 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0 0-19c0-40.3-16-79-44.5-107.5L225.9 256l81.5-81.5C336 146 352 107.3 352 67l0-19 8 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 0zM192 289.9l81.5 81.5C293 391 304 417.4 304 445l0 19L80 464l0-19c0-27.6 11-54 30.5-73.5L192 289.9zm0-67.9l-81.5-81.5C91 121 80 94.6 80 67l0-19 224 0 0 19c0 27.6-11 54-30.5 73.5L192 222.1z\"]\n};\nconst faHourglassEmpty = faHourglass;\nconst faCalendarCheck = {\n prefix: 'far',\n iconName: 'calendar-check',\n icon: [448, 512, [], \"f274\", \"M128 0c13.3 0 24 10.7 24 24l0 40 144 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 40 0c35.3 0 64 28.7 64 64l0 16 0 48 0 256c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 192l0-48 0-16C0 92.7 28.7 64 64 64l40 0 0-40c0-13.3 10.7-24 24-24zM400 192L48 192l0 256c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-256zM329 297L217 409c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47 95-95c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\"]\n};\nconst faHardDrive = {\n prefix: 'far',\n iconName: 'hard-drive',\n icon: [512, 512, [128436, \"hdd\"], \"f0a0\", \"M64 80c-8.8 0-16 7.2-16 16l0 162c5.1-1.3 10.5-2 16-2l384 0c5.5 0 10.9 .7 16 2l0-162c0-8.8-7.2-16-16-16L64 80zM48 320l0 96c0 8.8 7.2 16 16 16l384 0c8.8 0 16-7.2 16-16l0-96c0-8.8-7.2-16-16-16L64 304c-8.8 0-16 7.2-16 16zM0 320L0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 224 0 96c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64l0-96zm280 48a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm120-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nconst faHdd = faHardDrive;\nconst faFaceGrinSquintTears = {\n prefix: 'far',\n iconName: 'face-grin-squint-tears',\n icon: [512, 512, [129315, \"grin-squint-tears\"], \"f586\", \"M426.8 14.2C446-5 477.5-4.6 497.1 14.9s20 51 .7 70.3c-14.8 14.8-65.7 23.6-88.3 26.7c-5.6 .9-10.3-3.9-9.5-9.5C403.3 79.9 412 29 426.8 14.2zM75 75C158.2-8.3 284.5-22.2 382.2 33.2c-1.5 4.8-2.9 9.6-4.1 14.3c-3.1 12.2-5.5 24.6-7.3 35c-80.8-53.6-190.7-44.8-261.9 26.4C37.7 180.1 28.9 290 82.5 370.8c-10.5 1.8-22.9 4.2-35 7.3c-4.7 1.2-9.5 2.5-14.3 4.1C-22.2 284.5-8.2 158.2 75 75zm389.6 58.9c4.7-1.2 9.5-2.5 14.3-4.1C534.2 227.5 520.2 353.8 437 437c-83.2 83.2-209.5 97.2-307.2 41.8c1.5-4.8 2.8-9.6 4-14.3c3.1-12.2 5.5-24.6 7.3-35c80.8 53.6 190.7 44.8 261.9-26.4c71.2-71.2 80-181.1 26.4-261.9c10.5-1.8 22.9-4.2 35-7.3zm-105.4 93c10.1-16.3 33.9-16.9 37.9 1.9c9.5 44.4-3.7 93.5-39.3 129.1s-84.8 48.8-129.1 39.3c-18.7-4-18.2-27.8-1.9-37.9c25.2-15.7 50.2-35.4 73.6-58.8s43.1-48.4 58.8-73.6zM92 265.3l97.4-29.7c11.6-3.5 22.5 7.3 19 19l-29.7 97.4c-2.6 8.6-13.4 11.3-19.8 4.9c-2-2-3.2-4.6-3.4-7.3l-5.1-56.1-56.1-5.1c-2.8-.3-5.4-1.5-7.3-3.4c-6.3-6.3-3.6-17.2 4.9-19.8zm193-178.2c2 2 3.2 4.6 3.4 7.3l5.1 56.1 56.1 5.1c2.8 .3 5.4 1.5 7.3 3.4c6.3 6.3 3.6 17.2-4.9 19.8l-97.4 29.7c-11.6 3.5-22.5-7.3-19-19L265.3 92c2.6-8.6 13.4-11.3 19.8-4.9zM14.9 497.1c-19.6-19.6-20-51-.7-70.3C29 412 79.8 403.2 102.4 400.1c5.6-.9 10.3 3.9 9.5 9.5c-3.2 22.5-11.9 73.5-26.7 88.3C66 517 34.5 516.6 14.9 497.1z\"]\n};\nconst faGrinSquintTears = faFaceGrinSquintTears;\nconst faRectangleList = {\n prefix: 'far',\n iconName: 'rectangle-list',\n icon: [576, 512, [\"list-alt\"], \"f022\", \"M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l448 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l448 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm96 64a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm104 0c0-13.3 10.7-24 24-24l224 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-224 0c-13.3 0-24-10.7-24-24zm0 96c0-13.3 10.7-24 24-24l224 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-224 0c-13.3 0-24-10.7-24-24zm0 96c0-13.3 10.7-24 24-24l224 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-224 0c-13.3 0-24-10.7-24-24zm-72-64a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM96 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nconst faListAlt = faRectangleList;\nconst faCalendarPlus = {\n prefix: 'far',\n iconName: 'calendar-plus',\n icon: [448, 512, [], \"f271\", \"M152 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40L64 64C28.7 64 0 92.7 0 128l0 16 0 48L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-256 0-48 0-16c0-35.3-28.7-64-64-64l-40 0 0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40L152 64l0-40zM48 192l352 0 0 256c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16l0-256zm176 40c-13.3 0-24 10.7-24 24l0 48-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0 0 48c0 13.3 10.7 24 24 24s24-10.7 24-24l0-48 48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-48c0-13.3-10.7-24-24-24z\"]\n};\nconst faCircleLeft = {\n prefix: 'far',\n iconName: 'circle-left',\n icon: [512, 512, [61840, \"arrow-alt-circle-left\"], \"f359\", \"M48 256a208 208 0 1 1 416 0A208 208 0 1 1 48 256zm464 0A256 256 0 1 0 0 256a256 256 0 1 0 512 0zM256 128l-32 0L96 256 224 384l32 0 0-80 128 0 0-96-128 0 0-80z\"]\n};\nconst faArrowAltCircleLeft = faCircleLeft;\nconst faMoneyBill1 = {\n prefix: 'far',\n iconName: 'money-bill-1',\n icon: [576, 512, [\"money-bill-alt\"], \"f3d1\", \"M112 112c0 35.3-28.7 64-64 64l0 160c35.3 0 64 28.7 64 64l352 0c0-35.3 28.7-64 64-64l0-160c-35.3 0-64-28.7-64-64l-352 0zM0 128C0 92.7 28.7 64 64 64l448 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zM176 256a112 112 0 1 1 224 0 112 112 0 1 1 -224 0zm80-48c0 8.8 7.2 16 16 16l0 64-8 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l24 0 24 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-8 0 0-80c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16z\"]\n};\nconst faMoneyBillAlt = faMoneyBill1;\nconst faClock = {\n prefix: 'far',\n iconName: 'clock',\n icon: [512, 512, [128339, \"clock-four\"], \"f017\", \"M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"]\n};\nconst faClockFour = faClock;\nconst faKeyboard = {\n prefix: 'far',\n iconName: 'keyboard',\n icon: [576, 512, [9000], \"f11c\", \"M64 112c-8.8 0-16 7.2-16 16l0 256c0 8.8 7.2 16 16 16l448 0c8.8 0 16-7.2 16-16l0-256c0-8.8-7.2-16-16-16L64 112zM0 128C0 92.7 28.7 64 64 64l448 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zM176 320l224 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-224 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm-72-72c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16z\"]\n};\nconst faClosedCaptioning = {\n prefix: 'far',\n iconName: 'closed-captioning',\n icon: [576, 512, [], \"f20a\", \"M512 80c8.8 0 16 7.2 16 16l0 320c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16L48 96c0-8.8 7.2-16 16-16l448 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM200 208c14.2 0 27 6.1 35.8 16c8.8 9.9 24 10.7 33.9 1.9s10.7-24 1.9-33.9c-17.5-19.6-43.1-32-71.5-32c-53 0-96 43-96 96s43 96 96 96c28.4 0 54-12.4 71.5-32c8.8-9.9 8-25-1.9-33.9s-25-8-33.9 1.9c-8.8 9.9-21.6 16-35.8 16c-26.5 0-48-21.5-48-48s21.5-48 48-48zm144 48c0-26.5 21.5-48 48-48c14.2 0 27 6.1 35.8 16c8.8 9.9 24 10.7 33.9 1.9s10.7-24 1.9-33.9c-17.5-19.6-43.1-32-71.5-32c-53 0-96 43-96 96s43 96 96 96c28.4 0 54-12.4 71.5-32c8.8-9.9 8-25-1.9-33.9s-25-8-33.9 1.9c-8.8 9.9-21.6 16-35.8 16c-26.5 0-48-21.5-48-48z\"]\n};\nconst faImages = {\n prefix: 'far',\n iconName: 'images',\n icon: [576, 512, [], \"f302\", \"M160 80l352 0c8.8 0 16 7.2 16 16l0 224c0 8.8-7.2 16-16 16l-21.2 0L388.1 178.9c-4.4-6.8-12-10.9-20.1-10.9s-15.7 4.1-20.1 10.9l-52.2 79.8-12.4-16.9c-4.5-6.2-11.7-9.8-19.4-9.8s-14.8 3.6-19.4 9.8L175.6 336 160 336c-8.8 0-16-7.2-16-16l0-224c0-8.8 7.2-16 16-16zM96 96l0 224c0 35.3 28.7 64 64 64l352 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L160 32c-35.3 0-64 28.7-64 64zM48 120c0-13.3-10.7-24-24-24S0 106.7 0 120L0 344c0 75.1 60.9 136 136 136l320 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-320 0c-48.6 0-88-39.4-88-88l0-224zm208 24a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"]\n};\nconst faFaceGrin = {\n prefix: 'far',\n iconName: 'face-grin',\n icon: [512, 512, [128512, \"grin\"], \"f580\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm349.5 52.4c18.7-4.4 35.9 12 25.5 28.1C350.4 374.6 306.3 400 255.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nconst faGrin = faFaceGrin;\nconst faFaceMeh = {\n prefix: 'far',\n iconName: 'face-meh',\n icon: [512, 512, [128528, \"meh\"], \"f11a\", \"M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM176.4 240a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm192-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM184 328c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"]\n};\nconst faMeh = faFaceMeh;\nconst faIdCard = {\n prefix: 'far',\n iconName: 'id-card',\n icon: [576, 512, [62147, \"drivers-license\"], \"f2c2\", \"M528 160l0 256c0 8.8-7.2 16-16 16l-192 0c0-44.2-35.8-80-80-80l-64 0c-44.2 0-80 35.8-80 80l-32 0c-8.8 0-16-7.2-16-16l0-256 480 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM272 256a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zm104-48c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0z\"]\n};\nconst faDriversLicense = faIdCard;\nconst faSun = {\n prefix: 'far',\n iconName: 'sun',\n icon: [512, 512, [9728], \"f185\", \"M375.7 19.7c-1.5-8-6.9-14.7-14.4-17.8s-16.1-2.2-22.8 2.4L256 61.1 173.5 4.2c-6.7-4.6-15.3-5.5-22.8-2.4s-12.9 9.8-14.4 17.8l-18.1 98.5L19.7 136.3c-8 1.5-14.7 6.9-17.8 14.4s-2.2 16.1 2.4 22.8L61.1 256 4.2 338.5c-4.6 6.7-5.5 15.3-2.4 22.8s9.8 13 17.8 14.4l98.5 18.1 18.1 98.5c1.5 8 6.9 14.7 14.4 17.8s16.1 2.2 22.8-2.4L256 450.9l82.5 56.9c6.7 4.6 15.3 5.5 22.8 2.4s12.9-9.8 14.4-17.8l18.1-98.5 98.5-18.1c8-1.5 14.7-6.9 17.8-14.4s2.2-16.1-2.4-22.8L450.9 256l56.9-82.5c4.6-6.7 5.5-15.3 2.4-22.8s-9.8-12.9-17.8-14.4l-98.5-18.1L375.7 19.7zM269.6 110l65.6-45.2 14.4 78.3c1.8 9.8 9.5 17.5 19.3 19.3l78.3 14.4L402 242.4c-5.7 8.2-5.7 19 0 27.2l45.2 65.6-78.3 14.4c-9.8 1.8-17.5 9.5-19.3 19.3l-14.4 78.3L269.6 402c-8.2-5.7-19-5.7-27.2 0l-65.6 45.2-14.4-78.3c-1.8-9.8-9.5-17.5-19.3-19.3L64.8 335.2 110 269.6c5.7-8.2 5.7-19 0-27.2L64.8 176.8l78.3-14.4c9.8-1.8 17.5-9.5 19.3-19.3l14.4-78.3L242.4 110c8.2 5.7 19 5.7 27.2 0zM256 368a112 112 0 1 0 0-224 112 112 0 1 0 0 224zM192 256a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z\"]\n};\nconst faFaceLaughWink = {\n prefix: 'far',\n iconName: 'face-laugh-wink',\n icon: [512, 512, [\"laugh-wink\"], \"f59c\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm130.7 57.9c-4.2-13.6 7.1-25.9 21.3-25.9l212.5 0c14.2 0 25.5 12.4 21.3 25.9C369 368.4 318.2 408 258.2 408s-110.8-39.6-127.5-94.1zM144.4 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm165.8 21.7c-7.6 8.1-20.2 8.5-28.3 .9s-8.5-20.2-.9-28.3c14.5-15.5 35.2-22.3 54.6-22.3s40.1 6.8 54.6 22.3c7.6 8.1 7.1 20.7-.9 28.3s-20.7 7.1-28.3-.9c-5.5-5.8-14.8-9.7-25.4-9.7s-19.9 3.8-25.4 9.7z\"]\n};\nconst faLaughWink = faFaceLaughWink;\nconst faCircleDown = {\n prefix: 'far',\n iconName: 'circle-down',\n icon: [512, 512, [61466, \"arrow-alt-circle-down\"], \"f358\", \"M256 464a208 208 0 1 1 0-416 208 208 0 1 1 0 416zM256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM128 256l0 32L256 416 384 288l0-32-80 0 0-128-96 0 0 128-80 0z\"]\n};\nconst faArrowAltCircleDown = faCircleDown;\nconst faThumbsDown = {\n prefix: 'far',\n iconName: 'thumbs-down',\n icon: [512, 512, [128078, 61576], \"f165\", \"M323.8 477.2c-38.2 10.9-78.1-11.2-89-49.4l-5.7-20c-3.7-13-10.4-25-19.5-35l-51.3-56.4c-8.9-9.8-8.2-25 1.6-33.9s25-8.2 33.9 1.6l51.3 56.4c14.1 15.5 24.4 34 30.1 54.1l5.7 20c3.6 12.7 16.9 20.1 29.7 16.5s20.1-16.9 16.5-29.7l-5.7-20c-5.7-19.9-14.7-38.7-26.6-55.5c-5.2-7.3-5.8-16.9-1.7-24.9s12.3-13 21.3-13L448 288c8.8 0 16-7.2 16-16c0-6.8-4.3-12.7-10.4-15c-7.4-2.8-13-9-14.9-16.7s.1-15.8 5.3-21.7c2.5-2.8 4-6.5 4-10.6c0-7.8-5.6-14.3-13-15.7c-8.2-1.6-15.1-7.3-18-15.2s-1.6-16.7 3.6-23.3c2.1-2.7 3.4-6.1 3.4-9.9c0-6.7-4.2-12.6-10.2-14.9c-11.5-4.5-17.7-16.9-14.4-28.8c.4-1.3 .6-2.8 .6-4.3c0-8.8-7.2-16-16-16l-97.5 0c-12.6 0-25 3.7-35.5 10.7l-61.7 41.1c-11 7.4-25.9 4.4-33.3-6.7s-4.4-25.9 6.7-33.3l61.7-41.1c18.4-12.3 40-18.8 62.1-18.8L384 32c34.7 0 62.9 27.6 64 62c14.6 11.7 24 29.7 24 50c0 4.5-.5 8.8-1.3 13c15.4 11.7 25.3 30.2 25.3 51c0 6.5-1 12.8-2.8 18.7C504.8 238.3 512 254.3 512 272c0 35.3-28.6 64-64 64l-92.3 0c4.7 10.4 8.7 21.2 11.8 32.2l5.7 20c10.9 38.2-11.2 78.1-49.4 89zM32 384c-17.7 0-32-14.3-32-32L0 128c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 224c0 17.7-14.3 32-32 32l-64 0z\"]\n};\nconst faChessPawn = {\n prefix: 'far',\n iconName: 'chess-pawn',\n icon: [320, 512, [9823], \"f443\", \"M232 152A72 72 0 1 0 88 152a72 72 0 1 0 144 0zm24 120l-12.6 0 10.7 80-48.4 0L195 272l-35 0-35 0-10.7 80-48.4 0 10.7-80L64 272c-13.3 0-24-10.7-24-24s10.7-24 24-24c-15.1-20.1-24-45-24-72C40 85.7 93.7 32 160 32s120 53.7 120 120c0 27-8.9 51.9-24 72c13.3 0 24 10.7 24 24s-10.7 24-24 24zM52.7 464l214.7 0-16.6-32L69.2 432 52.7 464zm207.9-80c12 0 22.9 6.7 28.4 17.3l26.5 51.2c3 5.8 4.6 12.2 4.6 18.7c0 22.5-18.2 40.8-40.8 40.8L40.8 512C18.2 512 0 493.8 0 471.2c0-6.5 1.6-12.9 4.6-18.7l26.5-51.2C36.5 390.7 47.5 384 59.5 384l201 0z\"]\n};\nconst faCreditCard = {\n prefix: 'far',\n iconName: 'credit-card',\n icon: [576, 512, [128179, 62083, \"credit-card-alt\"], \"f09d\", \"M512 80c8.8 0 16 7.2 16 16l0 32L48 128l0-32c0-8.8 7.2-16 16-16l448 0zm16 144l0 192c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16l0-192 480 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm56 304c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0zm128 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-112 0z\"]\n};\nconst faCreditCardAlt = faCreditCard;\nconst faBell = {\n prefix: 'far',\n iconName: 'bell',\n icon: [448, 512, [128276, 61602], \"f0f3\", \"M224 0c-17.7 0-32 14.3-32 32l0 19.2C119 66 64 130.6 64 208l0 25.4c0 45.4-15.5 89.5-43.8 124.9L5.3 377c-5.8 7.2-6.9 17.1-2.9 25.4S14.8 416 24 416l400 0c9.2 0 17.6-5.3 21.6-13.6s2.9-18.2-2.9-25.4l-14.9-18.6C399.5 322.9 384 278.8 384 233.4l0-25.4c0-77.4-55-142-128-156.8L256 32c0-17.7-14.3-32-32-32zm0 96c61.9 0 112 50.1 112 112l0 25.4c0 47.9 13.9 94.6 39.7 134.6L72.3 368C98.1 328 112 281.3 112 233.4l0-25.4c0-61.9 50.1-112 112-112zm64 352l-64 0-64 0c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7s18.7-28.3 18.7-45.3z\"]\n};\nconst faFile = {\n prefix: 'far',\n iconName: 'file',\n icon: [384, 512, [128196, 128459, 61462], \"f15b\", \"M320 464c8.8 0 16-7.2 16-16l0-288-80 0c-17.7 0-32-14.3-32-32l0-80L64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l256 0zM0 64C0 28.7 28.7 0 64 0L229.5 0c17 0 33.3 6.7 45.3 18.7l90.5 90.5c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64z\"]\n};\nconst faHospital = {\n prefix: 'far',\n iconName: 'hospital',\n icon: [640, 512, [127973, 62589, \"hospital-alt\", \"hospital-wide\"], \"f0f8\", \"M232 0c-39.8 0-72 32.2-72 72l0 8L72 80C32.2 80 0 112.2 0 152L0 440c0 39.8 32.2 72 72 72l.2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0s0 0 0 0l272 0 8 0s0 0 0 0l104 0c39.8 0 72-32.2 72-72l0-288c0-39.8-32.2-72-72-72l-88 0 0-8c0-39.8-32.2-72-72-72L232 0zM480 128l88 0c13.3 0 24 10.7 24 24l0 40-56 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l56 0 0 48-56 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l56 0 0 104c0 13.3-10.7 24-24 24l-88 0 0-128 0-208zM72 128l88 0 0 336c0 0 0 0-.1 0l-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0c-13.2 0-24-10.7-24-24l0-104 56 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-56 0 0-48 56 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-56 0 0-40c0-13.3 10.7-24 24-24zM208 72c0-13.3 10.7-24 24-24l176 0c13.3 0 24 10.7 24 24l0 264 0 128-64 0 0-64c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 64-64 0 0-392zm88 24l0 24-24 0c-8.8 0-16 7.2-16 16l0 16c0 8.8 7.2 16 16 16l24 0 0 24c0 8.8 7.2 16 16 16l16 0c8.8 0 16-7.2 16-16l0-24 24 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-24 0 0-24c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16z\"]\n};\nconst faHospitalAlt = faHospital;\nconst faHospitalWide = faHospital;\nconst faChessRook = {\n prefix: 'far',\n iconName: 'chess-rook',\n icon: [448, 512, [9820], \"f447\", \"M80 80l0 112c0 2.5 1.2 4.9 3.2 6.4l51.2 38.4c6.8 5.1 10.4 13.4 9.5 21.9L133.5 352l-48.3 0 9.4-85L54.4 236.8C40.3 226.2 32 209.6 32 192L32 72c0-22.1 17.9-40 40-40l304 0c22.1 0 40 17.9 40 40l0 120c0 17.6-8.3 34.2-22.4 44.8L353.4 267l9.4 85-48.3 0-10.4-93.3c-.9-8.4 2.7-16.8 9.5-21.9l51.2-38.4c2-1.5 3.2-3.9 3.2-6.4l0-112-64 0 0 24c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-24-64 0 0 24c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-24L80 80zm4.7 384l278.7 0-16.6-32-245.6 0L84.7 464zm271.9-80c12 0 22.9 6.7 28.4 17.3l26.5 51.2c3 5.8 4.6 12.2 4.6 18.7c0 22.5-18.2 40.8-40.8 40.8L72.8 512C50.2 512 32 493.8 32 471.2c0-6.5 1.6-12.9 4.6-18.7l26.5-51.2C68.5 390.7 79.5 384 91.5 384l265 0zM208 288c-8.8 0-16-7.2-16-16l0-48c0-17.7 14.3-32 32-32s32 14.3 32 32l0 48c0 8.8-7.2 16-16 16l-32 0z\"]\n};\nconst faStarHalf = {\n prefix: 'far',\n iconName: 'star-half',\n icon: [576, 512, [61731], \"f089\", \"M293.3 .6c10.9 2.5 18.6 12.2 18.6 23.4l0 384.7c0 8.9-4.9 17-12.7 21.2L151 509.1c-8.1 4.3-17.9 3.7-25.3-1.7s-11.2-14.5-9.7-23.5l26.2-155.6L31.1 218.3c-6.5-6.4-8.7-15.9-5.9-24.5s10.3-14.9 19.3-16.3l153.2-22.6L266.3 13.5c4.9-10.1 16.1-15.4 27-12.9zM263.9 128.4l-28.6 58.8c-3.5 7.1-10.2 12.1-18.1 13.3L99 217.9 184.9 303c5.5 5.5 8.1 13.3 6.8 21L171.4 443.7l92.5-49.4 0-265.9z\"]\n};\nconst faChessKing = {\n prefix: 'far',\n iconName: 'chess-king',\n icon: [448, 512, [9818], \"f43f\", \"M248 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 32-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 40L59.6 144C26.7 144 0 170.7 0 203.6c0 8.2 1.7 16.3 4.9 23.8L59.1 352l52.3 0L49 208.2c-.6-1.5-1-3-1-4.6c0-6.4 5.2-11.6 11.6-11.6L224 192l164.4 0c6.4 0 11.6 5.2 11.6 11.6c0 1.6-.3 3.2-1 4.6L336.5 352l52.3 0 54.2-124.6c3.3-7.5 4.9-15.6 4.9-23.8c0-32.9-26.7-59.6-59.6-59.6L248 144l0-40 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0 0-32zM101.2 432l245.6 0 16.6 32L84.7 464l16.6-32zm283.7-30.7c-5.5-10.6-16.5-17.3-28.4-17.3l-265 0c-12 0-22.9 6.7-28.4 17.3L36.6 452.5c-3 5.8-4.6 12.2-4.6 18.7C32 493.8 50.2 512 72.8 512l302.5 0c22.5 0 40.8-18.2 40.8-40.8c0-6.5-1.6-12.9-4.6-18.7l-26.5-51.2z\"]\n};\nconst faCircleUser = {\n prefix: 'far',\n iconName: 'circle-user',\n icon: [512, 512, [62142, \"user-circle\"], \"f2bd\", \"M406.5 399.6C387.4 352.9 341.5 320 288 320l-64 0c-53.5 0-99.4 32.9-118.5 79.6C69.9 362.2 48 311.7 48 256C48 141.1 141.1 48 256 48s208 93.1 208 208c0 55.7-21.9 106.2-57.5 143.6zm-40.1 32.7C334.4 452.4 296.6 464 256 464s-78.4-11.6-110.5-31.7c7.3-36.7 39.7-64.3 78.5-64.3l64 0c38.8 0 71.2 27.6 78.5 64.3zM256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-272a40 40 0 1 1 0-80 40 40 0 1 1 0 80zm-88-40a88 88 0 1 0 176 0 88 88 0 1 0 -176 0z\"]\n};\nconst faUserCircle = faCircleUser;\nconst faCopy = {\n prefix: 'far',\n iconName: 'copy',\n icon: [448, 512, [], \"f0c5\", \"M384 336l-192 0c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l140.1 0L400 115.9 400 320c0 8.8-7.2 16-16 16zM192 384l192 0c35.3 0 64-28.7 64-64l0-204.1c0-12.7-5.1-24.9-14.1-33.9L366.1 14.1c-9-9-21.2-14.1-33.9-14.1L192 0c-35.3 0-64 28.7-64 64l0 256c0 35.3 28.7 64 64 64zM64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l192 0c35.3 0 64-28.7 64-64l0-32-48 0 0 32c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l32 0 0-48-32 0z\"]\n};\nconst faShareFromSquare = {\n prefix: 'far',\n iconName: 'share-from-square',\n icon: [576, 512, [61509, \"share-square\"], \"f14d\", \"M400 255.4l0-15.4 0-32c0-8.8-7.2-16-16-16l-32 0-16 0-46.5 0c-50.9 0-93.9 33.5-108.3 79.6c-3.3-9.4-5.2-19.8-5.2-31.6c0-61.9 50.1-112 112-112l48 0 16 0 32 0c8.8 0 16-7.2 16-16l0-32 0-15.4L506 160 400 255.4zM336 240l16 0 0 48c0 17.7 14.3 32 32 32l3.7 0c7.9 0 15.5-2.9 21.4-8.2l139-125.1c7.6-6.8 11.9-16.5 11.9-26.7s-4.3-19.9-11.9-26.7L409.9 8.9C403.5 3.2 395.3 0 386.7 0C367.5 0 352 15.5 352 34.7L352 80l-16 0-32 0-16 0c-88.4 0-160 71.6-160 160c0 60.4 34.6 99.1 63.9 120.9c5.9 4.4 11.5 8.1 16.7 11.2c4.4 2.7 8.5 4.9 11.9 6.6c3.4 1.7 6.2 3 8.2 3.9c2.2 1 4.6 1.4 7.1 1.4l2.5 0c9.8 0 17.8-8 17.8-17.8c0-7.8-5.3-14.7-11.6-19.5c0 0 0 0 0 0c-.4-.3-.7-.5-1.1-.8c-1.7-1.1-3.4-2.5-5-4.1c-.8-.8-1.7-1.6-2.5-2.6s-1.6-1.9-2.4-2.9c-1.8-2.5-3.5-5.3-5-8.5c-2.6-6-4.3-13.3-4.3-22.4c0-36.1 29.3-65.5 65.5-65.5l14.5 0 32 0zM72 32C32.2 32 0 64.2 0 104L0 440c0 39.8 32.2 72 72 72l336 0c39.8 0 72-32.2 72-72l0-64c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 64c0 13.3-10.7 24-24 24L72 464c-13.3 0-24-10.7-24-24l0-336c0-13.3 10.7-24 24-24l64 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L72 32z\"]\n};\nconst faShareSquare = faShareFromSquare;\nconst faCopyright = {\n prefix: 'far',\n iconName: 'copyright',\n icon: [512, 512, [169], \"f1f9\", \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM199.4 312.6c-31.2-31.2-31.2-81.9 0-113.1s81.9-31.2 113.1 0c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9c-50-50-131-50-181 0s-50 131 0 181s131 50 181 0c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0c-31.2 31.2-81.9 31.2-113.1 0z\"]\n};\nconst faMap = {\n prefix: 'far',\n iconName: 'map',\n icon: [576, 512, [128506, 62072], \"f279\", \"M565.6 36.2C572.1 40.7 576 48.1 576 56l0 336c0 10-6.2 18.9-15.5 22.4l-168 64c-5.2 2-10.9 2.1-16.1 .3L192.5 417.5l-160 61c-7.4 2.8-15.7 1.8-22.2-2.7S0 463.9 0 456L0 120c0-10 6.1-18.9 15.5-22.4l168-64c5.2-2 10.9-2.1 16.1-.3L383.5 94.5l160-61c7.4-2.8 15.7-1.8 22.2 2.7zM48 136.5l0 284.6 120-45.7 0-284.6L48 136.5zM360 422.7l0-285.4-144-48 0 285.4 144 48zm48-1.5l120-45.7 0-284.6L408 136.5l0 284.6z\"]\n};\nconst faBellSlash = {\n prefix: 'far',\n iconName: 'bell-slash',\n icon: [640, 512, [128277, 61943], \"f1f6\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L542.6 400c2.7-7.8 1.3-16.5-3.9-23l-14.9-18.6C495.5 322.9 480 278.8 480 233.4l0-33.4c0-75.8-55.5-138.6-128-150.1L352 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 17.9c-43.9 7-81.5 32.7-104.4 68.7L38.8 5.1zM221.7 148.4C239.6 117.1 273.3 96 312 96l8 0 8 0c57.4 0 104 46.6 104 104l0 33.4c0 32.7 6.4 64.8 18.7 94.5L221.7 148.4zM406.2 416l-60.9-48-176.9 0c21.2-32.8 34.4-70.3 38.4-109.1L160 222.1l0 11.4c0 45.4-15.5 89.5-43.8 124.9L101.3 377c-5.8 7.2-6.9 17.1-2.9 25.4s12.4 13.6 21.6 13.6l286.2 0zM384 448l-64 0-64 0c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7s18.7-28.3 18.7-45.3z\"]\n};\nconst faHandLizard = {\n prefix: 'far',\n iconName: 'hand-lizard',\n icon: [512, 512, [], \"f258\", \"M72 112c-13.3 0-24 10.7-24 24s10.7 24 24 24l168 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-104 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l152 0c4.5 0 8.9 1.3 12.7 3.6l64 40c7 4.4 11.3 12.1 11.3 20.4l0 24c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-10.7L281.1 384 136 384c-39.8 0-72-32.2-72-72s32.2-72 72-72l104 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L72 208c-39.8 0-72-32.2-72-72S32.2 64 72 64l209.6 0c46.7 0 90.9 21.5 119.7 58.3l78.4 100.1c20.9 26.7 32.3 59.7 32.3 93.7L512 424c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-107.9c0-23.2-7.8-45.8-22.1-64.1L363.5 151.9c-19.7-25.2-49.9-39.9-81.9-39.9L72 112z\"]\n};\nconst faFaceSmile = {\n prefix: 'far',\n iconName: 'face-smile',\n icon: [512, 512, [128578, \"smile\"], \"f118\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm177.6 62.1C192.8 334.5 218.8 352 256 352s63.2-17.5 78.4-33.9c9-9.7 24.2-10.4 33.9-1.4s10.4 24.2 1.4 33.9c-22 23.8-60 49.4-113.6 49.4s-91.7-25.5-113.6-49.4c-9-9.7-8.4-24.9 1.4-33.9s24.9-8.4 33.9 1.4zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nconst faSmile = faFaceSmile;\nconst faHandPeace = {\n prefix: 'far',\n iconName: 'hand-peace',\n icon: [512, 512, [9996], \"f25b\", \"M250.8 1.4c-35.2-3.7-66.6 21.8-70.3 57L174 119 156.7 69.6C145 36.3 108.4 18.8 75.1 30.5S24.2 78.8 35.9 112.1L88.7 262.2C73.5 276.7 64 297.3 64 320c0 0 0 0 0 0l0 24c0 92.8 75.2 168 168 168l48 0c92.8 0 168-75.2 168-168l0-72 0-16 0-32c0-35.3-28.7-64-64-64c-7.9 0-15.4 1.4-22.4 4c-10.4-21.3-32.3-36-57.6-36c-.7 0-1.5 0-2.2 0l5.9-56.3c3.7-35.2-21.8-66.6-57-70.3zm-.2 155.4C243.9 166.9 240 179 240 192l0 48c0 .7 0 1.4 0 2c-5.1-1.3-10.5-2-16-2l-7.4 0-5.4-15.3 17-161.3c.9-8.8 8.8-15.2 17.6-14.2s15.2 8.8 14.2 17.6l-9.5 90.1zM111.4 85.6L165.7 240 144 240c-4 0-8 .3-11.9 .9L81.2 96.2c-2.9-8.3 1.5-17.5 9.8-20.4s17.5 1.5 20.4 9.8zM288 192c0-8.8 7.2-16 16-16s16 7.2 16 16l0 32 0 16c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48zm38.4 108c10.4 21.3 32.3 36 57.6 36c5.5 0 10.9-.7 16-2l0 10c0 66.3-53.7 120-120 120l-48 0c-66.3 0-120-53.7-120-120l0-24s0 0 0 0c0-17.7 14.3-32 32-32l80 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0c35.3 0 64-28.7 64-64c0-.7 0-1.4 0-2c5.1 1.3 10.5 2 16 2c7.9 0 15.4-1.4 22.4-4zM400 272c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-32 0-16c0-8.8 7.2-16 16-16s16 7.2 16 16l0 32 0 16z\"]\n};\nconst faFaceGrinHearts = {\n prefix: 'far',\n iconName: 'face-grin-hearts',\n icon: [512, 512, [128525, \"grin-hearts\"], \"f584\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm349.5 52.4c18.7-4.4 35.9 12 25.5 28.1C350.4 374.6 306.3 400 255.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5zM215.3 137.1c17.8 4.8 28.4 23.1 23.6 40.8l-17.4 65c-2.3 8.5-11.1 13.6-19.6 11.3l-65.1-17.4c-17.8-4.8-28.4-23.1-23.6-40.8s23.1-28.4 40.8-23.6l16.1 4.3 4.3-16.1c4.8-17.8 23.1-28.4 40.8-23.6zm122.3 23.6l4.3 16.1 16.1-4.3c17.8-4.8 36.1 5.8 40.8 23.6s-5.8 36.1-23.6 40.8l-65.1 17.4c-8.5 2.3-17.3-2.8-19.6-11.3l-17.4-65c-4.8-17.8 5.8-36.1 23.6-40.8s36.1 5.8 40.9 23.6z\"]\n};\nconst faGrinHearts = faFaceGrinHearts;\nconst faBuilding = {\n prefix: 'far',\n iconName: 'building',\n icon: [384, 512, [127970, 61687], \"f1ad\", \"M64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l80 0 0-64c0-26.5 21.5-48 48-48s48 21.5 48 48l0 64 80 0c8.8 0 16-7.2 16-16l0-384c0-8.8-7.2-16-16-16L64 48zM0 64C0 28.7 28.7 0 64 0L320 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm88 40c0-8.8 7.2-16 16-16l48 0c8.8 0 16 7.2 16 16l0 48c0 8.8-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-48zM232 88l48 0c8.8 0 16 7.2 16 16l0 48c0 8.8-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-48c0-8.8 7.2-16 16-16zM88 232c0-8.8 7.2-16 16-16l48 0c8.8 0 16 7.2 16 16l0 48c0 8.8-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-48zm144-16l48 0c8.8 0 16 7.2 16 16l0 48c0 8.8-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-48c0-8.8 7.2-16 16-16z\"]\n};\nconst faFaceGrinBeamSweat = {\n prefix: 'far',\n iconName: 'face-grin-beam-sweat',\n icon: [512, 512, [128517, \"grin-beam-sweat\"], \"f583\", \"M476.8 126.3C497.1 120.8 512 102.7 512 81c0-20-28.6-60.4-41.6-77.7c-3.2-4.4-9.6-4.4-12.8 0c-9.5 12.6-27.1 37.2-36 57.5c-.3 .7-.6 1.4-.9 2.1C417.8 69.7 416 76 416 81c0 26 21.5 47 48 47c4.4 0 8.7-.6 12.8-1.7zM395.4 41.2C355.3 15.2 307.4 0 256 0C114.6 0 0 114.6 0 256S114.6 512 256 512s256-114.6 256-256c0-35.8-7.3-69.9-20.6-100.8c-8.6 3.1-17.8 4.8-27.4 4.8c-8.9 0-17.6-1.5-25.7-4.2C454.7 185.5 464 219.7 464 256c0 114.9-93.1 208-208 208S48 370.9 48 256S141.1 48 256 48c48.7 0 93.4 16.7 128.9 44.7c-.6-3.8-.9-7.7-.9-11.7c0-11.4 3.8-22.4 7.1-30.5c1.3-3.1 2.7-6.2 4.3-9.3zM375 336.5c10.4-16.1-6.8-32.5-25.5-28.1c-28.9 6.8-60.5 10.5-93.6 10.5s-64.7-3.7-93.6-10.5c-18.7-4.4-35.9 12-25.5 28.1c24.6 38.1 68.7 63.5 119.1 63.5s94.5-25.4 119.1-63.5zM217.6 228.8s0 0 0 0s0 0 0 0s0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C126.7 188.4 120 206.1 120 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8c0 0 0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2c0 0 0 0 0 0zm160 0s0 0 0 0s0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C286.7 188.4 280 206.1 280 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8c0 0 0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2c0 0 0 0 0 0c0 0 0 0 0 0z\"]\n};\nconst faGrinBeamSweat = faFaceGrinBeamSweat;\nconst faMoon = {\n prefix: 'far',\n iconName: 'moon',\n icon: [384, 512, [127769, 9214], \"f186\", \"M144.7 98.7c-21 34.1-33.1 74.3-33.1 117.3c0 98 62.8 181.4 150.4 211.7c-12.4 2.8-25.3 4.3-38.6 4.3C126.6 432 48 353.3 48 256c0-68.9 39.4-128.4 96.8-157.3zm62.1-66C91.1 41.2 0 137.9 0 256C0 379.7 100 480 223.5 480c47.8 0 92-15 128.4-40.6c1.9-1.3 3.7-2.7 5.5-4c4.8-3.6 9.4-7.4 13.9-11.4c2.7-2.4 5.3-4.8 7.9-7.3c5-4.9 6.3-12.5 3.1-18.7s-10.1-9.7-17-8.5c-3.7 .6-7.4 1.2-11.1 1.6c-5 .5-10.1 .9-15.3 1c-1.2 0-2.5 0-3.7 0l-.3 0c-96.8-.2-175.2-78.9-175.2-176c0-54.8 24.9-103.7 64.1-136c1-.9 2.1-1.7 3.2-2.6c4-3.2 8.2-6.2 12.5-9c3.1-2 6.3-4 9.6-5.8c6.1-3.5 9.2-10.5 7.7-17.3s-7.3-11.9-14.3-12.5c-3.6-.3-7.1-.5-10.7-.6c-2.7-.1-5.5-.1-8.2-.1c-3.3 0-6.5 .1-9.8 .2c-2.3 .1-4.6 .2-6.9 .4z\"]\n};\nconst faCalendar = {\n prefix: 'far',\n iconName: 'calendar',\n icon: [448, 512, [128197, 128198], \"f133\", \"M152 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40L64 64C28.7 64 0 92.7 0 128l0 16 0 48L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-256 0-48 0-16c0-35.3-28.7-64-64-64l-40 0 0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40L152 64l0-40zM48 192l352 0 0 256c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16l0-256z\"]\n};\nconst faFaceGrinTongueWink = {\n prefix: 'far',\n iconName: 'face-grin-tongue-wink',\n icon: [512, 512, [128540, \"grin-tongue-wink\"], \"f58b\", \"M348.3 442.4c2.4-8.4 3.7-17.3 3.7-26.4l0-52.5c8.8-8 16.6-17.1 23-27c10.4-16.1-6.8-32.5-25.5-28.1c-28.9 6.8-60.5 10.5-93.6 10.5s-64.7-3.7-93.6-10.5c-18.7-4.4-35.9 12-25.5 28.1c6.5 10 14.3 19.1 23.1 27.1l0 52.4c0 9.2 1.3 18 3.7 26.4C95.1 408.4 48 337.7 48 256C48 141.1 141.1 48 256 48s208 93.1 208 208c0 81.7-47.1 152.4-115.7 186.4zM256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM159.6 220c10.6 0 19.9 3.8 25.4 9.7c7.6 8.1 20.2 8.5 28.3 .9s8.5-20.2 .9-28.3C199.7 186.8 179 180 159.6 180s-40.1 6.8-54.6 22.3c-7.6 8.1-7.1 20.7 .9 28.3s20.7 7.1 28.3-.9c5.5-5.8 14.8-9.7 25.4-9.7zm176.7 12a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm-.4-72a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm0 128a80 80 0 1 0 0-160 80 80 0 1 0 0 160zM320 416c0 35.3-28.7 64-64 64s-64-28.7-64-64l0-37.4c0-14.7 11.9-26.6 26.6-26.6l2 0c11.3 0 21.1 7.9 23.6 18.9c2.8 12.6 20.8 12.6 23.6 0c2.5-11.1 12.3-18.9 23.6-18.9l2 0c14.7 0 26.6 11.9 26.6 26.6l0 37.4z\"]\n};\nconst faGrinTongueWink = faFaceGrinTongueWink;\nconst faClone = {\n prefix: 'far',\n iconName: 'clone',\n icon: [512, 512, [], \"f24d\", \"M64 464l224 0c8.8 0 16-7.2 16-16l0-64 48 0 0 64c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 224c0-35.3 28.7-64 64-64l64 0 0 48-64 0c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16zM224 304l224 0c8.8 0 16-7.2 16-16l0-224c0-8.8-7.2-16-16-16L224 48c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16zm-64-16l0-224c0-35.3 28.7-64 64-64L448 0c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64l-224 0c-35.3 0-64-28.7-64-64z\"]\n};\nconst faFaceAngry = {\n prefix: 'far',\n iconName: 'face-angry',\n icon: [512, 512, [128544, \"angry\"], \"f556\", \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm72.4-118.5c9.7-9 10.2-24.2 1.2-33.9C315.3 344.3 290.6 328 256 328s-59.3 16.3-73.5 31.6c-9 9.7-8.5 24.9 1.2 33.9s24.9 8.5 33.9-1.2c7.4-7.9 20-16.4 38.5-16.4s31.1 8.5 38.5 16.4c9 9.7 24.2 10.2 33.9 1.2zM176.4 272c17.7 0 32-14.3 32-32c0-1.5-.1-3-.3-4.4l10.9 3.6c8.4 2.8 17.4-1.7 20.2-10.1s-1.7-17.4-10.1-20.2l-96-32c-8.4-2.8-17.4 1.7-20.2 10.1s1.7 17.4 10.1 20.2l30.7 10.2c-5.8 5.8-9.3 13.8-9.3 22.6c0 17.7 14.3 32 32 32zm192-32c0-8.9-3.6-17-9.5-22.8l30.2-10.1c8.4-2.8 12.9-11.9 10.1-20.2s-11.9-12.9-20.2-10.1l-96 32c-8.4 2.8-12.9 11.9-10.1 20.2s11.9 12.9 20.2 10.1l11.7-3.9c-.2 1.5-.3 3.1-.3 4.7c0 17.7 14.3 32 32 32s32-14.3 32-32z\"]\n};\nconst faAngry = faFaceAngry;\nconst faRectangleXmark = {\n prefix: 'far',\n iconName: 'rectangle-xmark',\n icon: [512, 512, [62164, \"rectangle-times\", \"times-rectangle\", \"window-close\"], \"f410\", \"M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l384 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm175 79c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nconst faRectangleTimes = faRectangleXmark;\nconst faTimesRectangle = faRectangleXmark;\nconst faWindowClose = faRectangleXmark;\nconst faPaperPlane = {\n prefix: 'far',\n iconName: 'paper-plane',\n icon: [512, 512, [61913], \"f1d8\", \"M16.1 260.2c-22.6 12.9-20.5 47.3 3.6 57.3L160 376l0 103.3c0 18.1 14.6 32.7 32.7 32.7c9.7 0 18.9-4.3 25.1-11.8l62-74.3 123.9 51.6c18.9 7.9 40.8-4.5 43.9-24.7l64-416c1.9-12.1-3.4-24.3-13.5-31.2s-23.3-7.5-34-1.4l-448 256zm52.1 25.5L409.7 90.6 190.1 336l1.2 1L68.2 285.7zM403.3 425.4L236.7 355.9 450.8 116.6 403.3 425.4z\"]\n};\nconst faLifeRing = {\n prefix: 'far',\n iconName: 'life-ring',\n icon: [512, 512, [], \"f1cd\", \"M385.1 419.1C349.7 447.2 304.8 464 256 464s-93.7-16.8-129.1-44.9l80.4-80.4c14.3 8.4 31 13.3 48.8 13.3s34.5-4.8 48.8-13.3l80.4 80.4zm68.1 .2C489.9 374.9 512 318.1 512 256s-22.1-118.9-58.8-163.3L465 81c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L419.3 58.8C374.9 22.1 318.1 0 256 0S137.1 22.1 92.7 58.8L81 47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9L58.8 92.7C22.1 137.1 0 193.9 0 256s22.1 118.9 58.8 163.3L47 431c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l11.8-11.8C137.1 489.9 193.9 512 256 512s118.9-22.1 163.3-58.8L431 465c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-11.8-11.8zm-34.1-34.1l-80.4-80.4c8.4-14.3 13.3-31 13.3-48.8s-4.8-34.5-13.3-48.8l80.4-80.4C447.2 162.3 464 207.2 464 256s-16.8 93.7-44.9 129.1zM385.1 92.9l-80.4 80.4c-14.3-8.4-31-13.3-48.8-13.3s-34.5 4.8-48.8 13.3L126.9 92.9C162.3 64.8 207.2 48 256 48s93.7 16.8 129.1 44.9zM173.3 304.8L92.9 385.1C64.8 349.7 48 304.8 48 256s16.8-93.7 44.9-129.1l80.4 80.4c-8.4 14.3-13.3 31-13.3 48.8s4.8 34.5 13.3 48.8zM208 256a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z\"]\n};\nconst faFaceGrimace = {\n prefix: 'far',\n iconName: 'face-grimace',\n icon: [512, 512, [128556, \"grimace\"], \"f57f\", \"M256 48a208 208 0 1 0 0 416 208 208 0 1 0 0-416zM512 256A256 256 0 1 1 0 256a256 256 0 1 1 512 0zM168 320c-13.3 0-24 10.7-24 24s10.7 24 24 24l8 0 0-48-8 0zm40 48l32 0 0-48-32 0 0 48zm96 0l0-48-32 0 0 48 32 0zm32 0l8 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0 0 48zM168 288l176 0c30.9 0 56 25.1 56 56s-25.1 56-56 56l-176 0c-30.9 0-56-25.1-56-56s25.1-56 56-56zm-23.6-80a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nconst faGrimace = faFaceGrimace;\nconst faCalendarMinus = {\n prefix: 'far',\n iconName: 'calendar-minus',\n icon: [448, 512, [], \"f272\", \"M128 0c13.3 0 24 10.7 24 24l0 40 144 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 40 0c35.3 0 64 28.7 64 64l0 16 0 48 0 256c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 192l0-48 0-16C0 92.7 28.7 64 64 64l40 0 0-40c0-13.3 10.7-24 24-24zM400 192L48 192l0 256c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-256zM296 352l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24z\"]\n};\nconst faCircleXmark = {\n prefix: 'far',\n iconName: 'circle-xmark',\n icon: [512, 512, [61532, \"times-circle\", \"xmark-circle\"], \"f057\", \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM175 175c-9.4 9.4-9.4 24.6 0 33.9l47 47-47 47c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l47-47 47 47c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-47-47 47-47c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-47 47-47-47c-9.4-9.4-24.6-9.4-33.9 0z\"]\n};\nconst faTimesCircle = faCircleXmark;\nconst faXmarkCircle = faCircleXmark;\nconst faThumbsUp = {\n prefix: 'far',\n iconName: 'thumbs-up',\n icon: [512, 512, [128077, 61575], \"f164\", \"M323.8 34.8c-38.2-10.9-78.1 11.2-89 49.4l-5.7 20c-3.7 13-10.4 25-19.5 35l-51.3 56.4c-8.9 9.8-8.2 25 1.6 33.9s25 8.2 33.9-1.6l51.3-56.4c14.1-15.5 24.4-34 30.1-54.1l5.7-20c3.6-12.7 16.9-20.1 29.7-16.5s20.1 16.9 16.5 29.7l-5.7 20c-5.7 19.9-14.7 38.7-26.6 55.5c-5.2 7.3-5.8 16.9-1.7 24.9s12.3 13 21.3 13L448 224c8.8 0 16 7.2 16 16c0 6.8-4.3 12.7-10.4 15c-7.4 2.8-13 9-14.9 16.7s.1 15.8 5.3 21.7c2.5 2.8 4 6.5 4 10.6c0 7.8-5.6 14.3-13 15.7c-8.2 1.6-15.1 7.3-18 15.2s-1.6 16.7 3.6 23.3c2.1 2.7 3.4 6.1 3.4 9.9c0 6.7-4.2 12.6-10.2 14.9c-11.5 4.5-17.7 16.9-14.4 28.8c.4 1.3 .6 2.8 .6 4.3c0 8.8-7.2 16-16 16l-97.5 0c-12.6 0-25-3.7-35.5-10.7l-61.7-41.1c-11-7.4-25.9-4.4-33.3 6.7s-4.4 25.9 6.7 33.3l61.7 41.1c18.4 12.3 40 18.8 62.1 18.8l97.5 0c34.7 0 62.9-27.6 64-62c14.6-11.7 24-29.7 24-50c0-4.5-.5-8.8-1.3-13c15.4-11.7 25.3-30.2 25.3-51c0-6.5-1-12.8-2.8-18.7C504.8 273.7 512 257.7 512 240c0-35.3-28.6-64-64-64l-92.3 0c4.7-10.4 8.7-21.2 11.8-32.2l5.7-20c10.9-38.2-11.2-78.1-49.4-89zM32 192c-17.7 0-32 14.3-32 32L0 448c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-224c0-17.7-14.3-32-32-32l-64 0z\"]\n};\nconst faWindowMinimize = {\n prefix: 'far',\n iconName: 'window-minimize',\n icon: [512, 512, [128469], \"f2d1\", \"M24 432c-13.3 0-24 10.7-24 24s10.7 24 24 24l464 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 432z\"]\n};\nconst faSquareFull = {\n prefix: 'far',\n iconName: 'square-full',\n icon: [512, 512, [128997, 128998, 128999, 129000, 129001, 129002, 129003, 11035, 11036], \"f45c\", \"M464 48l0 416L48 464 48 48l416 0zM48 0L0 0 0 48 0 464l0 48 48 0 416 0 48 0 0-48 0-416 0-48L464 0 48 0z\"]\n};\nconst faNoteSticky = {\n prefix: 'far',\n iconName: 'note-sticky',\n icon: [448, 512, [62026, \"sticky-note\"], \"f249\", \"M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l224 0 0-80c0-17.7 14.3-32 32-32l80 0 0-224c0-8.8-7.2-16-16-16L64 80zM288 480L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 224 0 5.5c0 17-6.7 33.3-18.7 45.3l-90.5 90.5c-12 12-28.3 18.7-45.3 18.7l-5.5 0z\"]\n};\nconst faStickyNote = faNoteSticky;\nconst faFaceSadTear = {\n prefix: 'far',\n iconName: 'face-sad-tear',\n icon: [512, 512, [128546, \"sad-tear\"], \"f5b4\", \"M175.9 448c-35-.1-65.5-22.6-76-54.6C67.6 356.8 48 308.7 48 256C48 141.1 141.1 48 256 48s208 93.1 208 208s-93.1 208-208 208c-28.4 0-55.5-5.7-80.1-16zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM128 369c0 26 21.5 47 48 47s48-21 48-47c0-20-28.4-60.4-41.6-77.7c-3.2-4.4-9.6-4.4-12.8 0C156.6 308.6 128 349 128 369zm128-65c-13.3 0-24 10.7-24 24s10.7 24 24 24c30.7 0 58.7 11.5 80 30.6c9.9 8.8 25 8 33.9-1.9s8-25-1.9-33.9C338.3 320.2 299 304 256 304zm47.6-96a32 32 0 1 0 64 0 32 32 0 1 0 -64 0zm-128 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nconst faSadTear = faFaceSadTear;\nconst faHandPointLeft = {\n prefix: 'far',\n iconName: 'hand-point-left',\n icon: [512, 512, [], \"f0a5\", \"M64 128l177.6 0c-1 5.2-1.6 10.5-1.6 16l0 16-32 0L64 160c-8.8 0-16-7.2-16-16s7.2-16 16-16zm224 16c0-17.7 14.3-32 32-32c0 0 0 0 0 0l24 0c66.3 0 120 53.7 120 120l0 48c0 52.5-33.7 97.1-80.7 113.4c.5-3.1 .7-6.2 .7-9.4c0-20-9.2-37.9-23.6-49.7c4.9-9 7.6-19.4 7.6-30.3c0-15.1-5.3-29-14-40c8.8-11 14-24.9 14-40l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-40 0-40zm32-80s0 0 0 0c-18 0-34.6 6-48 16L64 80C28.7 80 0 108.7 0 144s28.7 64 64 64l82 0c-1.3 5.1-2 10.5-2 16c0 25.3 14.7 47.2 36 57.6c-2.6 7-4 14.5-4 22.4c0 20 9.2 37.9 23.6 49.7c-4.9 9-7.6 19.4-7.6 30.3c0 35.3 28.7 64 64 64l64 0 24 0c92.8 0 168-75.2 168-168l0-48c0-92.8-75.2-168-168-168l-24 0zM256 400c-8.8 0-16-7.2-16-16s7.2-16 16-16l48 0 16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0zM240 224c0 5.5 .7 10.9 2 16l-2 0-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l32 0 0 16zm24 64l40 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-48 0-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l24 0z\"]\n};\nvar icons = {\n faTrashCan,\n faTrashAlt,\n faMessage,\n faCommentAlt,\n faFileLines,\n faFileAlt,\n faFileText,\n faCalendarDays,\n faCalendarAlt,\n faHandPointRight,\n faFaceSmileBeam,\n faSmileBeam,\n faFaceGrinStars,\n faGrinStars,\n faAddressBook,\n faContactBook,\n faComments,\n faPaste,\n faFileClipboard,\n faFaceGrinTongueSquint,\n faGrinTongueSquint,\n faFaceFlushed,\n faFlushed,\n faSquareCaretRight,\n faCaretSquareRight,\n faSquareMinus,\n faMinusSquare,\n faCompass,\n faSquareCaretDown,\n faCaretSquareDown,\n faFaceKissBeam,\n faKissBeam,\n faLightbulb,\n faFlag,\n faSquareCheck,\n faCheckSquare,\n faCircleDot,\n faDotCircle,\n faFaceDizzy,\n faDizzy,\n faFutbol,\n faFutbolBall,\n faSoccerBall,\n faPenToSquare,\n faEdit,\n faHourglassHalf,\n faHourglass2,\n faEyeSlash,\n faHand,\n faHandPaper,\n faHandSpock,\n faFaceKiss,\n faKiss,\n faFaceGrinTongue,\n faGrinTongue,\n faChessBishop,\n faFaceGrinWink,\n faGrinWink,\n faFaceGrinWide,\n faGrinAlt,\n faFaceFrownOpen,\n faFrownOpen,\n faHandPointUp,\n faBookmark,\n faHandPointDown,\n faFolder,\n faFolderBlank,\n faUser,\n faSquareCaretLeft,\n faCaretSquareLeft,\n faStar,\n faChessKnight,\n faFaceLaughSquint,\n faLaughSquint,\n faFaceLaugh,\n faLaugh,\n faFolderOpen,\n faClipboard,\n faChessQueen,\n faHandBackFist,\n faHandRock,\n faSquareCaretUp,\n faCaretSquareUp,\n faChartBar,\n faBarChart,\n faWindowRestore,\n faSquarePlus,\n faPlusSquare,\n faImage,\n faFolderClosed,\n faLemon,\n faHandshake,\n faGem,\n faCirclePlay,\n faPlayCircle,\n faCircleCheck,\n faCheckCircle,\n faCircleStop,\n faStopCircle,\n faIdBadge,\n faFaceLaughBeam,\n faLaughBeam,\n faRegistered,\n faAddressCard,\n faContactCard,\n faVcard,\n faFaceTired,\n faTired,\n faFontAwesome,\n faFontAwesomeFlag,\n faFontAwesomeLogoFull,\n faFaceSmileWink,\n faSmileWink,\n faFileWord,\n faFilePowerpoint,\n faEnvelopeOpen,\n faFileZipper,\n faFileArchive,\n faSquare,\n faSnowflake,\n faNewspaper,\n faFaceKissWinkHeart,\n faKissWinkHeart,\n faStarHalfStroke,\n faStarHalfAlt,\n faFileExcel,\n faFaceGrinBeam,\n faGrinBeam,\n faObjectUngroup,\n faCircleRight,\n faArrowAltCircleRight,\n faFaceRollingEyes,\n faMehRollingEyes,\n faObjectGroup,\n faHeart,\n faFaceSurprise,\n faSurprise,\n faCirclePause,\n faPauseCircle,\n faCircle,\n faCircleUp,\n faArrowAltCircleUp,\n faFileAudio,\n faFileImage,\n faCircleQuestion,\n faQuestionCircle,\n faFaceMehBlank,\n faMehBlank,\n faEye,\n faFaceSadCry,\n faSadCry,\n faFileCode,\n faWindowMaximize,\n faFaceFrown,\n faFrown,\n faFloppyDisk,\n faSave,\n faCommentDots,\n faCommenting,\n faFaceGrinSquint,\n faGrinSquint,\n faHandPointer,\n faHandScissors,\n faFaceGrinTears,\n faGrinTears,\n faCalendarXmark,\n faCalendarTimes,\n faFileVideo,\n faFilePdf,\n faComment,\n faEnvelope,\n faHourglass,\n faHourglassEmpty,\n faCalendarCheck,\n faHardDrive,\n faHdd,\n faFaceGrinSquintTears,\n faGrinSquintTears,\n faRectangleList,\n faListAlt,\n faCalendarPlus,\n faCircleLeft,\n faArrowAltCircleLeft,\n faMoneyBill1,\n faMoneyBillAlt,\n faClock,\n faClockFour,\n faKeyboard,\n faClosedCaptioning,\n faImages,\n faFaceGrin,\n faGrin,\n faFaceMeh,\n faMeh,\n faIdCard,\n faDriversLicense,\n faSun,\n faFaceLaughWink,\n faLaughWink,\n faCircleDown,\n faArrowAltCircleDown,\n faThumbsDown,\n faChessPawn,\n faCreditCard,\n faCreditCardAlt,\n faBell,\n faFile,\n faHospital,\n faHospitalAlt,\n faHospitalWide,\n faChessRook,\n faStarHalf,\n faChessKing,\n faCircleUser,\n faUserCircle,\n faCopy,\n faShareFromSquare,\n faShareSquare,\n faCopyright,\n faMap,\n faBellSlash,\n faHandLizard,\n faFaceSmile,\n faSmile,\n faHandPeace,\n faFaceGrinHearts,\n faGrinHearts,\n faBuilding,\n faFaceGrinBeamSweat,\n faGrinBeamSweat,\n faMoon,\n faCalendar,\n faFaceGrinTongueWink,\n faGrinTongueWink,\n faClone,\n faFaceAngry,\n faAngry,\n faRectangleXmark,\n faRectangleTimes,\n faTimesRectangle,\n faWindowClose,\n faPaperPlane,\n faLifeRing,\n faFaceGrimace,\n faGrimace,\n faCalendarMinus,\n faCircleXmark,\n faTimesCircle,\n faXmarkCircle,\n faThumbsUp,\n faWindowMinimize,\n faSquareFull,\n faNoteSticky,\n faStickyNote,\n faFaceSadTear,\n faSadTear,\n faHandPointLeft\n};\n\nexport { icons as far, prefix, faTrashCan, faTrashAlt, faMessage, faCommentAlt, faFileLines, faFileAlt, faFileText, faCalendarDays, faCalendarAlt, faHandPointRight, faFaceSmileBeam, faSmileBeam, faFaceGrinStars, faGrinStars, faAddressBook, faContactBook, faComments, faPaste, faFileClipboard, faFaceGrinTongueSquint, faGrinTongueSquint, faFaceFlushed, faFlushed, faSquareCaretRight, faCaretSquareRight, faSquareMinus, faMinusSquare, faCompass, faSquareCaretDown, faCaretSquareDown, faFaceKissBeam, faKissBeam, faLightbulb, faFlag, faSquareCheck, faCheckSquare, faCircleDot, faDotCircle, faFaceDizzy, faDizzy, faFutbol, faFutbolBall, faSoccerBall, faPenToSquare, faEdit, faHourglassHalf, faHourglass2, faEyeSlash, faHand, faHandPaper, faHandSpock, faFaceKiss, faKiss, faFaceGrinTongue, faGrinTongue, faChessBishop, faFaceGrinWink, faGrinWink, faFaceGrinWide, faGrinAlt, faFaceFrownOpen, faFrownOpen, faHandPointUp, faBookmark, faHandPointDown, faFolder, faFolderBlank, faUser, faSquareCaretLeft, faCaretSquareLeft, faStar, faChessKnight, faFaceLaughSquint, faLaughSquint, faFaceLaugh, faLaugh, faFolderOpen, faClipboard, faChessQueen, faHandBackFist, faHandRock, faSquareCaretUp, faCaretSquareUp, faChartBar, faBarChart, faWindowRestore, faSquarePlus, faPlusSquare, faImage, faFolderClosed, faLemon, faHandshake, faGem, faCirclePlay, faPlayCircle, faCircleCheck, faCheckCircle, faCircleStop, faStopCircle, faIdBadge, faFaceLaughBeam, faLaughBeam, faRegistered, faAddressCard, faContactCard, faVcard, faFaceTired, faTired, faFontAwesome, faFontAwesomeFlag, faFontAwesomeLogoFull, faFaceSmileWink, faSmileWink, faFileWord, faFilePowerpoint, faEnvelopeOpen, faFileZipper, faFileArchive, faSquare, faSnowflake, faNewspaper, faFaceKissWinkHeart, faKissWinkHeart, faStarHalfStroke, faStarHalfAlt, faFileExcel, faFaceGrinBeam, faGrinBeam, faObjectUngroup, faCircleRight, faArrowAltCircleRight, faFaceRollingEyes, faMehRollingEyes, faObjectGroup, faHeart, faFaceSurprise, faSurprise, faCirclePause, faPauseCircle, faCircle, faCircleUp, faArrowAltCircleUp, faFileAudio, faFileImage, faCircleQuestion, faQuestionCircle, faFaceMehBlank, faMehBlank, faEye, faFaceSadCry, faSadCry, faFileCode, faWindowMaximize, faFaceFrown, faFrown, faFloppyDisk, faSave, faCommentDots, faCommenting, faFaceGrinSquint, faGrinSquint, faHandPointer, faHandScissors, faFaceGrinTears, faGrinTears, faCalendarXmark, faCalendarTimes, faFileVideo, faFilePdf, faComment, faEnvelope, faHourglass, faHourglassEmpty, faCalendarCheck, faHardDrive, faHdd, faFaceGrinSquintTears, faGrinSquintTears, faRectangleList, faListAlt, faCalendarPlus, faCircleLeft, faArrowAltCircleLeft, faMoneyBill1, faMoneyBillAlt, faClock, faClockFour, faKeyboard, faClosedCaptioning, faImages, faFaceGrin, faGrin, faFaceMeh, faMeh, faIdCard, faDriversLicense, faSun, faFaceLaughWink, faLaughWink, faCircleDown, faArrowAltCircleDown, faThumbsDown, faChessPawn, faCreditCard, faCreditCardAlt, faBell, faFile, faHospital, faHospitalAlt, faHospitalWide, faChessRook, faStarHalf, faChessKing, faCircleUser, faUserCircle, faCopy, faShareFromSquare, faShareSquare, faCopyright, faMap, faBellSlash, faHandLizard, faFaceSmile, faSmile, faHandPeace, faFaceGrinHearts, faGrinHearts, faBuilding, faFaceGrinBeamSweat, faGrinBeamSweat, faMoon, faCalendar, faFaceGrinTongueWink, faGrinTongueWink, faClone, faFaceAngry, faAngry, faRectangleXmark, faRectangleTimes, faTimesRectangle, faWindowClose, faPaperPlane, faLifeRing, faFaceGrimace, faGrimace, faCalendarMinus, faCircleXmark, faTimesCircle, faXmarkCircle, faThumbsUp, faWindowMinimize, faSquareFull, faNoteSticky, faStickyNote, faFaceSadTear, faSadTear, faHandPointLeft };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component, NotifyPropertyChanges, Property, addClass, removeClass, extend } from '@syncfusion/ej2-base';\nimport { Event, EventHandler, getComponent, getInstance, isNullOrUndefined, L10n, getUniqueID } from '@syncfusion/ej2-base';\nimport { Toolbar } from '@syncfusion/ej2-navigations';\nimport { DropDownButton } from '@syncfusion/ej2-splitbuttons';\nimport { ColorPicker, Uploader, Slider } from '@syncfusion/ej2-inputs';\nimport { createSpinner, showSpinner, hideSpinner } from '@syncfusion/ej2-popups';\nimport { Complex, compile, compile as templateCompiler, Browser, detach, select, ChildProperty } from '@syncfusion/ej2-base';\n/**\n * This interface is used to specify settings for finetuning operations on images, including brightness, contrast, hue, saturation, exposure, opacity, and blur. It includes properties for setting minimum and maximum values for each of these options, as well as a default value.\n */\nvar FinetuneSettings = /** @class */ (function (_super) {\n __extends(FinetuneSettings, _super);\n function FinetuneSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(null)\n ], FinetuneSettings.prototype, \"brightness\", void 0);\n __decorate([\n Property(null)\n ], FinetuneSettings.prototype, \"contrast\", void 0);\n __decorate([\n Property(null)\n ], FinetuneSettings.prototype, \"hue\", void 0);\n __decorate([\n Property(null)\n ], FinetuneSettings.prototype, \"saturation\", void 0);\n __decorate([\n Property(null)\n ], FinetuneSettings.prototype, \"exposure\", void 0);\n __decorate([\n Property(null)\n ], FinetuneSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property(null)\n ], FinetuneSettings.prototype, \"blur\", void 0);\n return FinetuneSettings;\n}(ChildProperty));\nexport { FinetuneSettings };\n/**\n * An interface used to define the settings such as minimum, maximum, and default zoom factors, and the type of zooming which are available in the image editor control.\n */\nvar ZoomSettings = /** @class */ (function (_super) {\n __extends(ZoomSettings, _super);\n function ZoomSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(null)\n ], ZoomSettings.prototype, \"zoomTrigger\", void 0);\n __decorate([\n Property(1)\n ], ZoomSettings.prototype, \"minZoomFactor\", void 0);\n __decorate([\n Property(10)\n ], ZoomSettings.prototype, \"maxZoomFactor\", void 0);\n __decorate([\n Property(1)\n ], ZoomSettings.prototype, \"zoomFactor\", void 0);\n __decorate([\n Property(null)\n ], ZoomSettings.prototype, \"zoomPoint\", void 0);\n return ZoomSettings;\n}(ChildProperty));\nexport { ZoomSettings };\n/**\n * The Image Editor is a graphical user interface for editing images.\n *\n * @remarks\n * The Image Editor component provides various image editing features such as zooming, cropping, rotating, inserting text and shapes (rectangles, ellipses, and lines), drawing freehand on top of an image, undo/redo, and more.\n *\n * {% codeBlock src='image-editor/default/index.md' %}{% endcodeBlock %}\n *\n */\nvar ImageEditor = /** @class */ (function (_super) {\n __extends(ImageEditor, _super);\n /**\n *\n * Constructor for creating the widget\n *\n * @param {ImageEditorModel} options - Specifies the image editor model\n * @param {string|HTMLDivElement} element - Specifies the target element\n */\n function ImageEditor(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.degree = 0; // current rotated state\n _this.isUndoRedo = false;\n _this.dragCanvas = false;\n _this.dragElement = '';\n _this.keyHistory = ''; // text history\n _this.tempKeyHistory = ''; // restore text history on cancel\n _this.mouseDownPoint = { x: 0, y: 0 };\n _this.previousPoint = { x: 0, y: 0 }; // updates prev x and y points in mouseMove\n _this.dragPoint = { startX: 0, startY: 0, endX: 0, endY: 0 }; // updates drag start and end points in mousedown and mousemove\n _this.diffPoint = { x: 0, y: 0 }; // updates resize points\n _this.oldPoint = {};\n _this.objColl = []; // shapes, text obj collection\n _this.undoRedoColl = [];\n _this.isImageLoaded = false; // collection of Image Data mainly used for reset state\n _this.strokeSettings = { strokeColor: '#fff', fillColor: '', strokeWidth: null };\n _this.tempStrokeSettings = { strokeColor: '#fff', fillColor: '', strokeWidth: null }; // restore stroke settings on cancel\n _this.textSettings = { text: 'Enter Text', fontFamily: 'Arial', fontSize: null, fontRatio: null, bold: false, italic: false, underline: false };\n _this.tempTextSettings = { text: 'Enter Text', fontFamily: 'Arial', fontSize: null, fontRatio: null, bold: false, italic: false, underline: false }; // restore text settings on cancel\n _this.toolbarHeight = 46;\n _this.togglePan = false; // toggle pan\n _this.disablePan = false; // auto enable / disable pan while zooming\n _this.currFlipState = ''; // current flipped state\n _this.touchEndPoint = {};\n _this.undoRedoStep = 0;\n _this.togglePen = false; // toggle free hand drawing\n _this.currentToolbar = 'main';\n _this.textStartPoints = { x: 0, y: 0 }; // restore text styles on cancel\n _this.fontSizeColl = []; // collection of font sizes\n _this.textRow = 1; // text area row count\n _this.activeObj = { activePoint: { startX: 0, startY: 0, endX: 0, endY: 0, width: 0, height: 0 },\n flipObjColl: [], triangle: [], triangleRatio: [] };\n _this.tempActiveObj = { activePoint: { startX: 0, startY: 0, endX: 0, endY: 0, width: 0, height: 0 },\n flipObjColl: [], triangle: [], triangleRatio: [] }; // for undo redo\n _this.currObjType = { shape: '', isDragging: false, isActiveObj: false, isText: false, isInitialText: false, isLine: false, isInitialLine: false,\n isCustomCrop: false, isZoomed: false, isUndoZoom: false, isUndoAction: false, isFiltered: false, isSave: false };\n _this.defToolbarItems = [];\n _this.isFirstMove = false; // for pinch zoom\n _this.startTouches = []; // for pinch zoom\n _this.tempTouches = []; // for pinch zoom\n _this.adjustmentLevel = { brightness: 0, contrast: 0, hue: 0, opacity: 100, saturation: 0, blur: 0,\n exposure: 0, sharpen: false, bw: false }; // for toolbar slider value\n _this.tempAdjustmentLevel = { brightness: 0, contrast: 0, hue: 0, opacity: 100, saturation: 0, blur: 0,\n exposure: 0, sharpen: false, bw: false }; // for temp toolbar slider value\n _this.adjustmentValue = ''; // for internal slider value\n _this.initialAdjustmentValue = '';\n _this.tempAdjustmentValue = ''; // for temp internal slider value\n _this.currentFilter = ''; // current filter selected from toolbar\n _this.tempFilter = ''; // restore filter style on cancel\n _this.canvasFilter = 'brightness(' + 1 + ') ' + 'contrast(' + 100 + '%) ' + 'hue-rotate(' + 0 + 'deg) ' + // current filter style applied to lowerCanvas\n 'saturate(' + 100 + '%) ' + 'opacity(' + 1 + ') ' + 'blur(' + 0 + 'px) ' + 'sepia(0%) ' + 'grayscale(0%) ' + 'invert(0%)';\n _this.tempUndoRedoStep = 0;\n // Revamp new properties\n _this.zoomFactor = 0; // Current zoom factor\n _this.tempZoomFactor = 0; // Restore zoom factor on cancel\n _this.destLeft = 0; // Current image left position\n _this.destTop = 0; // Current image top position\n _this.srcLeft = 0; // Original image left position\n _this.srcTop = 0; // Original image top position\n _this.cropDestPoints = { startX: 0, startY: 0, width: 0, height: 0 }; // To redraw old image when navigate to crop tab\n _this.flipColl = []; // To store flip order\n _this.isReverseRotate = false; // True when rotate method is called from iteration\n _this.isReverseFlip = false; // True when rotate method is called from iteration\n _this.isPreventDragging = false; // Shapes dragging is prevented when crop region is inside shape points\n _this.isRotateZoom = false; // To restore zoomed image on selection crop selection\n // eslint-disable-next-line\n _this.rotateFlipColl = []; // Transformation collection for redrawing image on rotate and flip\n _this.currentPannedPoint = { x: 0, y: 0 }; // To store current panned point in rotated state\n _this.isCircleCrop = false; // Specifies whether circle crop is enabled or not\n _this.rotatedDestPoints = { startX: 0, startY: 0, width: 0, height: 0 };\n _this.croppedDegree = 0; // Specifies the degree when crop is performed\n _this.isFreehandDrawingPoint = false; // Specifies whether mouse cursor is on freehand drawing point or not\n _this.isFreehandDrawEditing = false; // Specifies whether freehand drawing is in editing mode or not\n _this.tempFreeHandDrawEditingStyles = { strokeColor: null, fillColor: null, strokeWidth: null }; // Restore freehand drawing styles on cancel\n _this.totalPannedInternalPoint = { x: 0, y: 0 }; // To store total panned point internally in rotated state\n _this.totalPannedClientPoint = { x: 0, y: 0 }; // To store total panned point in client coordinates in rotated state\n _this.totalPannedPoint = { x: 0, y: 0 }; // To store current panned point in non-rotated state\n _this.isCropTab = false; // Specifies whether crop tab is selected or not\n _this.cropZoomFactor = 0; // Specifies the zoom factor when crop selection is performed\n _this.defaultZoomFactor = 0; // Specifies the zoom factor when crop selection is not performed\n _this.fileName = ''; // Specifies the file name of the image on initial loading\n _this.isBrightnessAdjusted = false; // Specifies whether brightness is adjusted or not, to adjust opacity (combination)\n _this.isInitialLoading = false; // Specifies whether image is loaded for the first time or not (for applying initial filter)\n // For Free Hand Drawing\n _this.freehandDrawObj = { lastWidth: 0, lastVelocity: 0, time: 0, pointX: 0, pointY: 0 };\n _this.points = [];\n // eslint-disable-next-line\n _this.pointColl = {};\n _this.pointCounter = 0;\n _this.freehandCounter = 0;\n _this.isFreehandDrawing = false;\n _this.tempFreehandCounter = 0;\n _this.selectedFreehandColor = '#42a5f5';\n _this.isFreehandDrawCustomized = false;\n _this.isAllowCropPan = false;\n _this.cropObj = { cropZoom: 0, defaultZoom: 0, totalPannedPoint: { x: 0, y: 0 }, totalPannedClientPoint: { x: 0, y: 0 },\n totalPannedInternalPoint: { x: 0, y: 0 }, tempFlipPanPoint: { x: 0, y: 0 }, activeObj: {}, rotateFlipColl: [],\n degree: 0, currFlipState: '', destPoints: { startX: 0, startY: 0, width: 0, height: 0 },\n srcPoints: { startX: 0, startY: 0, width: 0, height: 0 }, filter: '', zoomFactor: 0, previousZoomValue: 0 };\n _this.afterCropActions = [];\n _this.isCancelAction = false;\n _this.isFreehandPointMoved = false;\n _this.isTouch = false;\n _this.freehandDownPoint = { x: 0, y: 0 };\n _this.tempFlipPanPoint = { x: 0, y: 0 };\n _this.currentFreehandDrawIndex = 0; // Specifies id for every freehand drawing - uses while deleting\n _this.tempCurrentFreehandDrawIndex = 0; // Specifies id for every freehand drawing - uses while cancelling\n _this.preventZoomBtn = false;\n _this.cancelObjColl = [];\n _this.cancelPointColl = [];\n _this.rotatedFlipCropSelection = false;\n _this.currToolbar = '';\n _this.currentMouseMovePoint = { x: 0, y: 0 }; // To prevent mouse move event on pinch zoom\n _this.zoomType = 'Toolbar';\n _this.cursorTargetObjId = '';\n _this.appliedUndoRedoColl = [];\n _this.selPoints = [];\n // eslint-disable-next-line\n _this.selPointColl = {};\n _this.previousZoomValue = 1;\n _this.isObjSelected = false;\n _this.isShapeInserted = false;\n _this.isInitialTextEdited = false;\n _this.isShapeTextInserted = false;\n _this.isErrorImage = false;\n return _this;\n }\n ImageEditor_1 = ImageEditor;\n ImageEditor.prototype.preRender = function () {\n // pre render code snippets\n this.element.id = this.element.id || getUniqueID('ej2-image-editor');\n if (Browser.isDevice) {\n this.element.classList.add('e-device');\n }\n this.themeColl = {\n Bootstrap5: { primaryColor: '#0d6efd', secondaryColor: '#fff' },\n Bootstrap5Dark: { primaryColor: '#0d6efd', secondaryColor: '#fff' },\n Tailwind: { primaryColor: '#4f46e5', secondaryColor: '#fff' },\n TailwindDark: { primaryColor: '#22d3ee', secondaryColor: '#fff' },\n Fluent: { primaryColor: '#0078d4', secondaryColor: '#fff' },\n FluentDark: { primaryColor: '#0078d4', secondaryColor: '#fff' },\n Bootstrap4: { primaryColor: '#007bff', secondaryColor: '#fff' },\n Bootstrap: { primaryColor: '#317ab9', secondaryColor: '#fff' },\n BootstrapDark: { primaryColor: '#317ab9', secondaryColor: '#fff' },\n Material: { primaryColor: '#e3165b', secondaryColor: '#fff' },\n MaterialDark: { primaryColor: '#00b0ff', secondaryColor: '#fff' },\n Fabric: { primaryColor: '#0078d6', secondaryColor: '#fff' },\n FabricDark: { primaryColor: '#0074cc', secondaryColor: '#fff' },\n Highcontrast: { primaryColor: '#000000', secondaryColor: '#fff' }\n };\n this.defaultLocale = {\n Crop: 'Crop',\n ZoomIn: 'Zoom In',\n ZoomOut: 'Zoom Out',\n Undo: 'Undo',\n Redo: 'Redo',\n Transform: 'Transform',\n Annotation: 'Annotation',\n Finetune: 'Finetune',\n Brightness: 'Brightness',\n Contrast: 'Contrast',\n Hue: 'Hue',\n Saturation: 'Saturation',\n Opacity: 'Opacity',\n Blur: 'Blur',\n Sharpen: 'Sharpen',\n Exposure: 'Exposure',\n Filter: 'Filter',\n Default: 'Default',\n Chrome: 'Chrome',\n Cold: 'Cold',\n Warm: 'Warm',\n Grayscale: 'Grayscale',\n BlackAndWhite: 'Black and White',\n Sepia: 'Sepia',\n Invert: 'Invert',\n Text: 'Add Text',\n Pen: 'Pen',\n Reset: 'Reset',\n Save: 'Save',\n Select: 'Select',\n RotateLeft: 'Rotate Left',\n RotateRight: 'Rotate Right',\n HorizontalFlip: 'Horizontal Flip',\n VerticalFlip: 'Vertical Flip',\n OK: 'OK',\n Cancel: 'Cancel',\n FillColor: 'Fill Color',\n StrokeColor: 'Stroke Color',\n StrokeWidth: 'Stroke Width',\n FontFamily: 'Font Family',\n FontStyle: 'Font Style',\n FontSize: 'Font Size',\n FontColor: 'Font Color',\n Pan: 'Pan',\n Move: 'Move',\n Load: 'Load',\n Custom: 'Custom',\n Square: 'Square',\n Circle: 'Circle',\n Ellipse: 'Ellipse',\n Rectangle: 'Rectangle',\n Line: 'Line',\n Arrow: 'Arrow',\n Bold: 'Bold',\n Italic: 'Italic',\n BoldItalic: 'Bold Italic',\n XSmall: 'X-Small',\n Small: 'Small',\n Medium: 'Medium',\n Large: 'Large',\n XLarge: 'X-Large',\n ABC: 'ABC',\n Browse: 'Browse',\n Duplicate: 'Duplicate',\n Remove: 'Remove',\n EditText: 'Edit Text'\n };\n this.l10n = new L10n('image-editor', this.defaultLocale, this.locale);\n };\n /**\n *\n * To Initialize the component rendering\n *\n * @private\n * @returns {void}\n */\n ImageEditor.prototype.render = function () {\n this.initialize();\n };\n /**\n * To get component name.\n *\n * @returns {string} - Module Name\n * @private\n */\n ImageEditor.prototype.getModuleName = function () {\n return 'image-editor';\n };\n /**\n *\n * To get the properties to be maintained in the persisted state.\n *\n * @returns {string} - Persist data\n * @private\n */\n ImageEditor.prototype.getPersistData = function () {\n return this.addOnPersist([]);\n };\n /**\n *\n * Called internally if any of the property value changed.\n *\n * @param {ImageEditorModel} newProperties - Specifies new properties\n * @param {ImageEditorModel} oldProperties - Specifies old properties\n * @returns {void}\n * @private\n */\n ImageEditor.prototype.onPropertyChanged = function (newProperties, oldProperties) {\n for (var _i = 0, _a = Object.keys(newProperties); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'cssClass':\n if (oldProperties.cssClass) {\n removeClass([this.element], oldProperties.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n if (newProperties.cssClass) {\n addClass([this.element], newProperties.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n break;\n case 'disabled':\n if (newProperties.disabled) {\n this.element.classList.add('e-disabled');\n this.unwireEvent();\n }\n else {\n this.element.classList.remove('e-disabled');\n this.wireEvent();\n }\n break;\n case 'height':\n this.element.style.height = newProperties.height;\n break;\n case 'width':\n this.element.style.width = newProperties.width;\n break;\n case 'theme':\n if (newProperties.theme) {\n this.updateTheme();\n this.upperContext.strokeStyle = this.themeColl[this.theme]['primaryColor'];\n this.upperContext.fillStyle = this.themeColl[this.theme]['secondaryColor'];\n }\n break;\n case 'finetuneSettings':\n if (newProperties.finetuneSettings) {\n this.finetuneSettings = newProperties.finetuneSettings;\n this.updateFinetunes();\n }\n break;\n case 'locale':\n if (newProperties.locale) {\n this.l10n.setLocale(newProperties.locale);\n this.refreshToolbar('main');\n }\n break;\n case 'allowUndoRedo':\n if (newProperties.allowUndoRedo) {\n this.allowUndoRedo = true;\n }\n else {\n this.allowUndoRedo = false;\n }\n this.refreshToolbar('main');\n break;\n case 'showQuickAccessToolbar':\n if (newProperties.showQuickAccessToolbar) {\n this.showQuickAccessToolbar = true;\n this.createQuickAccessToolbar();\n this.renderQuickAccessToolbar();\n }\n else {\n this.showQuickAccessToolbar = false;\n this.destroyQuickAccessToolbar();\n }\n break;\n case 'zoomSettings':\n if (newProperties.zoomSettings) {\n this.zoomSettings.zoomTrigger = newProperties.zoomSettings.zoomTrigger;\n }\n if (isNullOrUndefined(this.zoomSettings.zoomTrigger)) {\n this.zoomSettings.zoomTrigger = (ZoomTrigger.MouseWheel | ZoomTrigger.Pinch | ZoomTrigger.Toolbar |\n ZoomTrigger.Commands);\n this.refreshToolbar('main');\n }\n else if ((newProperties.zoomSettings.zoomTrigger & ZoomTrigger.Toolbar) === ZoomTrigger.Toolbar) {\n this.refreshToolbar('main');\n }\n break;\n }\n }\n };\n ImageEditor.prototype.destroy = function () {\n var classList = [];\n this.element.removeAttribute('tabindex');\n if (this.cssClass) {\n classList = classList.concat(this.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n removeClass([this.element], classList);\n if (!this.element.getAttribute('class')) {\n this.element.removeAttribute('class');\n }\n this.destroySubComponents();\n this.unwireEvent();\n _super.prototype.destroy.call(this);\n this.element.innerHTML = '';\n };\n ImageEditor.prototype.initialize = function () {\n this.updateFinetunes();\n this.createToolbar();\n this.createContextualToolbar();\n this.createCanvas();\n this.createQuickAccessToolbar();\n this.wireEvent();\n this.lowerContext.filter = this.canvasFilter = this.initialAdjustmentValue = this.adjustmentValue = this.getDefaultFilter();\n if (this.cssClass) {\n addClass([this.element], this.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n if (this.element) {\n createSpinner({\n target: this.element\n });\n }\n if (isNullOrUndefined(this.zoomSettings.zoomTrigger)) {\n this.zoomSettings.zoomTrigger = (ZoomTrigger.MouseWheel | ZoomTrigger.Pinch | ZoomTrigger.Toolbar | ZoomTrigger.Commands);\n }\n if (isNullOrUndefined(this.zoomSettings.zoomFactor)) {\n this.zoomSettings.zoomFactor = 1;\n }\n if (isNullOrUndefined(this.zoomSettings.maxZoomFactor)) {\n this.zoomSettings.maxZoomFactor = 10;\n }\n };\n ImageEditor.prototype.getDefaultFilter = function () {\n return 'brightness(' + 1 + ') ' + 'contrast(' + 100 + '%) ' + 'hue-rotate(' + 0 + 'deg) ' +\n 'saturate(' + 100 + '%) ' + 'opacity(' + 1 + ') ' + 'blur(' + 0 + 'px) ' + 'sepia(0%) ' + 'grayscale(0%) ' + 'invert(0%)';\n };\n ImageEditor.prototype.updateFinetunes = function () {\n if (this.finetuneSettings) {\n if (this.finetuneSettings.brightness) {\n this.adjustmentLevel.brightness = this.finetuneSettings.brightness.defaultValue;\n this.tempAdjustmentLevel.brightness = this.finetuneSettings.brightness.defaultValue;\n }\n if (this.finetuneSettings.contrast) {\n this.adjustmentLevel.contrast = this.finetuneSettings.contrast.defaultValue;\n this.tempAdjustmentLevel.contrast = this.finetuneSettings.contrast.defaultValue;\n }\n if (this.finetuneSettings.hue) {\n this.adjustmentLevel.hue = this.finetuneSettings.hue.defaultValue;\n this.tempAdjustmentLevel.hue = this.finetuneSettings.hue.defaultValue;\n }\n if (this.finetuneSettings.saturation) {\n this.adjustmentLevel.saturation = this.finetuneSettings.saturation.defaultValue;\n this.tempAdjustmentLevel.saturation = this.finetuneSettings.saturation.defaultValue;\n }\n if (this.finetuneSettings.exposure) {\n this.adjustmentLevel.exposure = this.finetuneSettings.exposure.defaultValue;\n this.tempAdjustmentLevel.exposure = this.finetuneSettings.exposure.defaultValue;\n }\n if (this.finetuneSettings.opacity) {\n this.adjustmentLevel.opacity = this.finetuneSettings.opacity.defaultValue;\n this.tempAdjustmentLevel.opacity = this.finetuneSettings.opacity.defaultValue;\n }\n if (this.finetuneSettings.blur) {\n this.adjustmentLevel.blur = this.finetuneSettings.blur.defaultValue;\n this.tempAdjustmentLevel.blur = this.finetuneSettings.blur.defaultValue;\n }\n this.isInitialLoading = true;\n }\n };\n ImageEditor.prototype.initializeFilter = function () {\n this.setBrightness(this.adjustmentLevel.brightness);\n this.setContrast(this.adjustmentLevel.contrast);\n this.setHue(this.adjustmentLevel.hue);\n this.setSaturation(this.adjustmentLevel.saturation);\n this.setExposure(this.adjustmentLevel.exposure);\n this.setOpacity(this.adjustmentLevel.opacity);\n this.setBlur(this.adjustmentLevel.blur);\n };\n /**\n *\n * This Method will add events to component (element, event, method, current reference)\n *\n * @returns {void}.\n */\n ImageEditor.prototype.wireEvent = function () {\n EventHandler.add(document, 'keydown', this.keyDownEventHandler, this);\n EventHandler.add(document, 'keypress', this.keyUpEventHandler, this);\n EventHandler.add(this.upperCanvas, 'mousedown', this.mouseDownEventHandler, this);\n EventHandler.add(this.upperCanvas, 'mousemove', this.mouseMoveEventHandler, this);\n EventHandler.add(this.upperCanvas, 'mouseup', this.mouseUpEventHandler, this);\n EventHandler.add(document, 'mouseup', this.mouseUpEventHandler, this);\n EventHandler.add(this.lowerCanvas, 'mousedown', this.canvasMouseDownHandler, this);\n EventHandler.add(this.lowerCanvas, 'mousemove', this.canvasMouseMoveHandler, this);\n EventHandler.add(this.lowerCanvas, 'mouseup', this.canvasMouseUpHandler, this);\n EventHandler.add(document, 'mouseup', this.canvasMouseUpHandler, this);\n EventHandler.add(this.upperCanvas, 'touchstart', this.touchStartHandler, this);\n EventHandler.add(this.lowerCanvas, 'touchstart', this.touchStartHandler, this);\n EventHandler.add(this.upperCanvas, 'dblclick', this.findTextPoint, this);\n EventHandler.add(this.textArea, 'mousedown', this.findTextPoint, this);\n EventHandler.add(this.lowerCanvas, 'mousewheel DOMMouseScroll', this.handleScroll, this);\n EventHandler.add(this.upperCanvas, 'mousewheel DOMMouseScroll', this.handleScroll, this);\n window.addEventListener('resize', this.windowResizeHandler.bind(this));\n if ((!Browser.isIos && Browser.info.name !== 'safari')) {\n screen.orientation.addEventListener('change', this.screenOrientation.bind(this));\n }\n };\n /**\n *\n * This Method will remove events from component\n *\n * @returns {void}.\n */\n ImageEditor.prototype.unwireEvent = function () {\n EventHandler.remove(document, 'keydown', this.keyDownEventHandler);\n EventHandler.remove(document, 'keypress', this.keyUpEventHandler);\n EventHandler.remove(this.upperCanvas, 'mousedown', this.mouseDownEventHandler);\n EventHandler.remove(this.upperCanvas, 'mousemove', this.mouseMoveEventHandler);\n EventHandler.remove(this.upperCanvas, 'mouseup', this.mouseUpEventHandler);\n EventHandler.remove(document, 'mouseup', this.mouseUpEventHandler);\n EventHandler.remove(this.lowerCanvas, 'mousedown', this.canvasMouseDownHandler);\n EventHandler.remove(this.lowerCanvas, 'mousemove', this.canvasMouseMoveHandler);\n EventHandler.remove(this.lowerCanvas, 'mouseup', this.canvasMouseUpHandler);\n EventHandler.remove(document, 'mouseup', this.canvasMouseUpHandler);\n };\n ImageEditor.prototype.destroySubComponents = function () {\n var inputElement = this.element.querySelectorAll('input.e-control');\n var btnElement = this.element.querySelectorAll('button.e-control');\n for (var i = 0, len = inputElement.length; i < len; i++) {\n if (inputElement[i].classList.contains('e-color-picker')) {\n getComponent(inputElement[i], 'color-picker').destroy();\n detach(select('input#' + inputElement[i].id, this.element));\n }\n }\n for (var i = 0, len = btnElement.length; i < len; i++) {\n if (btnElement[i].classList.contains('e-dropdown-btn')) {\n getComponent(btnElement[i], 'dropdown-btn').destroy();\n detach(select('button#' + btnElement[i].id, this.element));\n }\n else if (btnElement[i].classList.contains('e-btn')) {\n getComponent(btnElement[i], 'btn').destroy();\n detach(select('button#' + btnElement[i].id, this.element));\n }\n }\n };\n ImageEditor.prototype.updateTheme = function () {\n if (!isNullOrUndefined(this.theme) && this.theme !== '') {\n this.theme = this.toPascalCase(this.theme);\n }\n else {\n this.theme = 'Bootstrap5';\n }\n };\n ImageEditor.prototype.toPascalCase = function (str) {\n var strArr = [];\n if (!isNullOrUndefined(str)) {\n strArr = str.toLowerCase().split('-');\n }\n for (var i = 0; i < strArr.length; i++) {\n strArr[i] = strArr[i].charAt(0).toUpperCase() + strArr[i].slice(1);\n }\n return strArr.join('');\n };\n ImageEditor.prototype.createCanvas = function () {\n this.element.style.boxSizing = 'border-box';\n var height = this.toolbarHeight;\n this.element.style.width = this.width;\n this.element.style.height = this.height;\n var canvasWrapper = this.element.appendChild(this.createElement('div', { id: this.element.id + '_canvasWrapper',\n className: 'e-canvas-wrapper', attrs: { style: 'height:' + (this.element.offsetHeight - height - 2) + 'px; width:' +\n (this.element.offsetWidth - 2)\n + 'px; position: relative; overflow: hidden; margin: 0 auto;' }\n }));\n this.lowerCanvas = canvasWrapper.appendChild(this.createElement('canvas', {\n id: this.element.id + '_lowerCanvas', attrs: { name: 'canvasImage' }\n }));\n this.upperCanvas = canvasWrapper.appendChild(this.createElement('canvas', {\n id: this.element.id + '_upperCanvas', attrs: { name: 'canvasImage' }\n }));\n this.inMemoryCanvas = this.createElement('canvas', {\n id: this.element.id + '_inMemoryCanvas', attrs: { name: 'canvasImage' }\n });\n this.textArea = canvasWrapper.appendChild(this.createElement('textarea', {\n id: this.element.id + '_textArea', className: 'e-textarea', attrs: { name: 'textArea' }\n }));\n this.textArea.setAttribute('spellcheck', 'false');\n this.textArea.style.lineHeight = 'normal';\n this.lowerCanvas.style.width = this.upperCanvas.style.width = this.inMemoryCanvas.style.width = '100%';\n this.lowerCanvas.style.height = this.upperCanvas.style.height = this.inMemoryCanvas.style.height = '100%';\n this.upperCanvas.style.position = this.lowerCanvas.style.position = this.textArea.style.position = 'absolute';\n this.textArea.style.backgroundColor = 'transparent';\n this.textArea.style.display = 'none';\n this.textArea.style.resize = 'none';\n this.lowerContext = this.lowerCanvas.getContext('2d');\n this.baseImg = this.createElement('img', {\n id: this.element.id + '_orgImg', attrs: { name: 'Image', crossorigin: 'anonymous' }\n });\n this.upperCanvas.style.cursor = 'default';\n this.upperCanvas.style.display = 'block';\n this.upperContext = this.upperCanvas.getContext('2d');\n this.inMemoryContext = this.inMemoryCanvas.getContext('2d');\n };\n ImageEditor.prototype.createToolbar = function () {\n var _this = this;\n if (isNullOrUndefined(this.toolbar) || (!isNullOrUndefined(this.toolbar) && this.toolbar.length > 0)) {\n this.element.appendChild(this.createElement('div', {\n id: this.element.id + '_toolbarArea', className: 'e-toolbar-area'\n }));\n if (this.toolbarTemplate) {\n this.toolbarTemplateFn();\n }\n else {\n var toolbarItems = { cssClass: 'e-image-upload', align: 'Left', type: 'Input',\n tooltipText: this.l10n.getConstant('Browse'), template: new Uploader({ allowedExtensions: '.jpg, .jpeg, .png,.svg' }) };\n if (isNullOrUndefined(this.defToolbarItems)) {\n this.defToolbarItems = [];\n }\n this.defToolbarItems.push(toolbarItems);\n var toolbarArea = document.getElementById(this.element.id + '_toolbarArea');\n var toolbar_1 = this.createElement('div', {\n id: this.element.id + '_toolbar'\n });\n toolbarArea.appendChild(toolbar_1);\n var uploadItems = [\n {\n cssClass: 'e-image-upload',\n align: 'Left', type: 'Input',\n tooltipText: this.l10n.getConstant('Browse'),\n template: new Uploader({\n allowedExtensions: '.jpg, .jpeg, .png,.svg',\n selected: function () {\n if (!_this.disabled) {\n if (Browser.isDevice) {\n if (_this.defToolbarItems.length > 0 &&\n (!isNullOrUndefined(document.getElementById(_this.element.id + '_toolbar')))) {\n getComponent(document.getElementById(_this.element.id + '_toolbar'), 'toolbar').destroy();\n }\n if (!isNullOrUndefined(document.getElementById(_this.element.id + '_bottomToolbar'))) {\n getComponent(document.getElementById(_this.element.id + '_bottomToolbar'), 'toolbar').destroy();\n }\n _this.initToolbarItem(false, Browser.isDevice, null);\n _this.createBottomToolbar();\n }\n else {\n if (_this.defToolbarItems.length > 0 &&\n (!isNullOrUndefined(document.getElementById(_this.element.id + '_toolbar')))) {\n getComponent(document.getElementById(_this.element.id + '_toolbar'), 'toolbar').destroy();\n }\n _this.initToolbarItem(false, false, null);\n }\n }\n }\n })\n }\n ];\n new Toolbar({ items: uploadItems, width: '100%',\n created: function () {\n _this.trigger('toolbarCreated', { toolbarType: 'main' });\n },\n clicked: this.defToolbarClicked.bind(this) }, '#' + this.element.id + '_toolbar');\n this.createLeftToolbarControls();\n }\n if (!isNullOrUndefined(document.getElementById(this.element.id + '_toolbar'))) {\n this.toolbarHeight = document.getElementById(this.element.id + '_toolbar').clientHeight;\n }\n }\n else {\n this.toolbarHeight = 0;\n }\n };\n ImageEditor.prototype.createQuickAccessToolbar = function () {\n if (this.showQuickAccessToolbar) {\n var canvasWrapper = document.querySelector('#' + this.element.id + '_canvasWrapper');\n canvasWrapper.appendChild(this.createElement('div', {\n id: this.element.id + '_quickAccessToolbarArea', className: 'e-quick-access-toolbar-area'\n }));\n var quickAccessToolbar = document.getElementById(this.element.id + '_quickAccessToolbarArea');\n quickAccessToolbar.style.position = 'absolute';\n if (!isNullOrUndefined(this.activeObj)) {\n quickAccessToolbar.style.left = this.activeObj.activePoint.startX + 'px';\n quickAccessToolbar.style.top = this.activeObj.activePoint.startY + 'px';\n }\n quickAccessToolbar.style.width = '100%';\n quickAccessToolbar.style.height = '40px';\n if (this.quickAccessToolbarTemplate) {\n this.quickAccessToolbarTemplateFn();\n }\n else {\n var toolbarItems = { cssClass: 'e-image-upload', align: 'Left', type: 'Input',\n tooltipText: this.l10n.getConstant('Browse'), template: new Uploader({ allowedExtensions: '.jpg, .jpeg, .png,.svg' }) };\n if (isNullOrUndefined(this.defToolbarItems)) {\n this.defToolbarItems = [];\n }\n this.defToolbarItems.push(toolbarItems);\n var toolbarArea = document.getElementById(this.element.id + '_quickAccessToolbarArea');\n var toolbar_2 = this.createElement('div', {\n id: this.element.id + '_quickAccessToolbar'\n });\n toolbarArea.appendChild(toolbar_2);\n new Toolbar({ clicked: this.defToolbarClicked.bind(this) }, '#' + this.element.id + '_quickAccessToolbar');\n }\n }\n };\n ImageEditor.prototype.createContextualToolbar = function () {\n if (isNullOrUndefined(this.toolbar) || (!isNullOrUndefined(this.toolbar) && this.toolbar.length > 0)) {\n this.element.appendChild(this.createElement('div', { id: this.element.id + '_contextualToolbarArea',\n className: 'e-contextual-toolbar-wrapper e-hide', attrs: { style: 'position: absolute;' }\n }));\n var toolbarArea = document.getElementById(this.element.id + '_contextualToolbarArea');\n var toolbar_3 = this.createElement('div', { id: this.element.id + '_contextualToolbar' });\n toolbarArea.appendChild(toolbar_3);\n }\n };\n ImageEditor.prototype.updateContextualToolbar = function (type, cType) {\n if (this.toolbarTemplate) {\n this.toolbarTemplateFn();\n }\n else {\n var toolbarArea = this.element.querySelector('#' + this.element.id + '_toolbarArea');\n var contextualToolbarArea = this.element.querySelector('#' + this.element.id + '_contextualToolbarArea');\n contextualToolbarArea.classList.remove('e-hide');\n contextualToolbarArea.style.left = toolbarArea.offsetLeft + 'px';\n if (type === 'filter') {\n if (document.getElementById(this.element.id + '_toolbar') && this.defToolbarItems.length > 0) {\n getComponent(document.getElementById(this.element.id + '_toolbar'), 'toolbar').destroy();\n }\n if (Browser.isDevice) {\n this.initToolbarItem(false, true, true);\n }\n else {\n this.initToolbarItem(true, null, null);\n }\n this.refreshSlider();\n this.initFilterToolbarItem();\n }\n else {\n if (document.querySelector('#' + this.element.id + '_contextualToolbar').classList.contains('e-control')) {\n getComponent(document.getElementById(this.element.id + '_contextualToolbar'), 'toolbar').destroy();\n }\n this.refreshSlider();\n this.renderSlider(cType);\n }\n if (Browser.isDevice) {\n var cHt = contextualToolbarArea.offsetHeight;\n var ht = this.element.querySelector('#' + this.element.id + '_canvasWrapper').offsetHeight;\n contextualToolbarArea.style.top = this.toolbarHeight + ht - cHt + 'px';\n }\n else {\n contextualToolbarArea.style.top = this.toolbarHeight + 'px';\n }\n }\n };\n ImageEditor.prototype.createBottomToolbar = function () {\n if (isNullOrUndefined(this.toolbar) || (!isNullOrUndefined(this.toolbar) && this.toolbar.length > 0)) {\n this.element.appendChild(this.createElement('div', {\n id: this.element.id + '_bottomToolbarArea', className: 'e-bottom-toolbar'\n }));\n if (!this.toolbarTemplate) {\n document.getElementById(this.element.id + '_canvasWrapper').style.height = (this.element.offsetHeight\n - this.toolbarHeight * 2) - 3 + 'px';\n var toolbarArea = document.getElementById(this.element.id + '_bottomToolbarArea');\n var toolbarElem = this.createElement('div', {\n id: this.element.id + '_bottomToolbar'\n });\n toolbarArea.appendChild(toolbarElem);\n }\n this.initBottomToolbar();\n }\n };\n ImageEditor.prototype.initBottomToolbar = function () {\n var _this = this;\n if (isNullOrUndefined(this.toolbar) || (!isNullOrUndefined(this.toolbar) && this.toolbar.length > 0)) {\n if (this.toolbarTemplate) {\n this.toolbarTemplateFn();\n }\n else {\n var items = this.getMainToolbarItem();\n new Toolbar({ items: items, width: '100%',\n created: function () {\n _this.renderAnnotationBtn();\n _this.renderCropBtn();\n _this.renderTransformBtn();\n _this.trigger('toolbarCreated', { toolbarType: 'main' });\n },\n clicked: this.defToolbarClicked.bind(this)\n }, '#' + this.element.id + '_bottomToolbar');\n if (this.defToolbarItems.length > 0 && (!isNullOrUndefined(document.getElementById(this.element.id + '_bottomToolbar')))) {\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n var toolbar_4 = getComponent(this.element.id + '_bottomToolbar', 'toolbar');\n toolbar_4.refreshOverflow();\n }\n }\n }\n };\n ImageEditor.prototype.toolbarTemplateFn = function () {\n var template;\n var templateID = this.element.id + '_toolbar';\n var toolbarArea = this.element.querySelector('#' + this.element.id + '_toolbarArea');\n if (this.toolbarTemplate) {\n this.toolbarFn = this.templateParser(this.toolbarTemplate);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact) {\n template = this.toolbarFn({ type: 'toolbar' }, this, 'Template', templateID)[0];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n }\n else if (this.isAngular) {\n var templateColl = this.toolbarFn({ type: 'toolbar' }, this, 'Template', templateID);\n template = (templateColl[0].nodeType === 3) ? templateColl[1] : templateColl[0];\n }\n else {\n template = this.toolbarFn({ type: 'toolbar' }, this, 'Template', templateID)[0];\n }\n toolbarArea.appendChild(template);\n this.renderReactTemplates();\n }\n };\n ImageEditor.prototype.quickAccessToolbarTemplateFn = function () {\n var template;\n var templateID = this.element.id + '_quickAccessToolbar';\n var toolbarArea = this.element.querySelector('#' + this.element.id + '_quickAccessToolbarArea');\n if (this.quickAccessToolbarTemplate) {\n this.quickAccessToolbarFn = this.templateParser(this.quickAccessToolbarTemplate);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact) {\n template = this.quickAccessToolbarFn({ type: 'toolbar' }, this, 'Template', templateID)[0];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n }\n else if (this.isAngular) {\n var templateColl = this.quickAccessToolbarFn({ type: 'toolbar' }, this, 'Template', templateID);\n template = (templateColl[0].nodeType === 3) ? templateColl[1] : templateColl[0];\n }\n else {\n template = this.quickAccessToolbarFn({ type: 'toolbar' }, this, 'Template', templateID)[0];\n }\n toolbarArea.appendChild(template);\n this.renderReactTemplates();\n }\n };\n ImageEditor.prototype.templateParser = function (template) {\n if (template) {\n try {\n if (document.querySelectorAll(template).length) {\n return templateCompiler(document.querySelector(template).innerHTML.trim());\n }\n else {\n return compile(template);\n }\n }\n catch (error) {\n return templateCompiler(template);\n }\n }\n return undefined;\n };\n ImageEditor.prototype.getLeftToolbarItem = function (isOkBtn) {\n var toolbarItems = [];\n if (!isOkBtn) {\n toolbarItems.push({ id: this.element.id + '_upload', cssClass: 'e-image-upload', align: 'Left', type: 'Input',\n template: new Uploader({ allowedExtensions: '.jpg, .jpeg, .png,.svg' }) });\n toolbarItems.push({ visible: false, cssClass: 'e-image-position e-btn e-flat', tooltipText: this.l10n.getConstant('Browse'), align: 'Left' });\n }\n if (this.allowUndoRedo) {\n if (isNullOrUndefined(this.toolbar) || (!isNullOrUndefined(this.toolbar) && this.toolbar.indexOf('Undo') > -1)) {\n toolbarItems.push({ id: this.element.id + '_undo', prefixIcon: 'e-icons e-undo', cssClass: 'top-icon e-undo',\n tooltipText: this.l10n.getConstant('Undo'), align: 'Left' });\n }\n if (isNullOrUndefined(this.toolbar) || (!isNullOrUndefined(this.toolbar) && this.toolbar.indexOf('Redo') > -1)) {\n toolbarItems.push({ id: this.element.id + '_redo', prefixIcon: 'e-icons e-redo', cssClass: 'top-icon e-redo',\n tooltipText: this.l10n.getConstant('Redo'), align: 'Left' });\n }\n }\n if (!this.preventZoomBtn && (this.zoomSettings.zoomTrigger & ZoomTrigger.Toolbar) === ZoomTrigger.Toolbar) {\n if (isNullOrUndefined(this.toolbar) || (!isNullOrUndefined(this.toolbar) && this.toolbar.indexOf('ZoomOut') > -1)) {\n toolbarItems.push({ id: this.element.id + '_zoomOut', prefixIcon: 'e-icons e-zoom-out', cssClass: 'top-icon e-dec-zoom',\n tooltipText: this.l10n.getConstant('ZoomOut'), align: 'Left' });\n }\n if (isNullOrUndefined(this.toolbar) || (!isNullOrUndefined(this.toolbar) && this.toolbar.indexOf('ZoomIn') > -1)) {\n toolbarItems.push({ id: this.element.id + '_zoomIn', prefixIcon: 'e-icons e-zoom-in', cssClass: 'top-icon e-inc-zoom',\n tooltipText: this.l10n.getConstant('ZoomIn'), align: 'Left' });\n }\n }\n var tempToolbarItems = this.processToolbar('left');\n for (var i = 0, len = tempToolbarItems.length; i < len; i++) {\n toolbarItems.push(tempToolbarItems[i]);\n }\n return toolbarItems;\n };\n ImageEditor.prototype.getRightToolbarItem = function (isOkBtn) {\n var toolbarItems = [];\n if (isOkBtn) {\n toolbarItems.push({ id: this.element.id + '_ok', prefixIcon: 'e-icons e-check', cssClass: 'top-icon e-tick',\n tooltipText: this.l10n.getConstant('OK'), align: 'Right' });\n toolbarItems.push({ id: this.element.id + '_cancel', prefixIcon: 'e-icons e-close', cssClass: 'top-icon e-save',\n tooltipText: this.l10n.getConstant('Cancel'), align: 'Right' });\n }\n if (isNullOrUndefined(this.toolbar) || (!isNullOrUndefined(this.toolbar) && this.toolbar.indexOf('Reset') > -1)) {\n toolbarItems.push({ id: this.element.id + '_reset', prefixIcon: 'e-icons e-btn-reset', cssClass: 'top-icon e-img-reset',\n tooltipText: this.l10n.getConstant('Reset'), align: 'Right' });\n }\n if (!isOkBtn) {\n if (isNullOrUndefined(this.toolbar) || (!isNullOrUndefined(this.toolbar) && this.toolbar.indexOf('Save') > -1)) {\n toolbarItems.push({ id: this.element.id + '_save', prefixIcon: 'e-icons e-btn-save', cssClass: 'top-icon e-save',\n tooltipText: this.l10n.getConstant('Save'), align: 'Right', template: '' });\n }\n }\n var tempToolbarItems = this.processToolbar('right');\n for (var i = 0, len = tempToolbarItems.length; i < len; i++) {\n toolbarItems.push(tempToolbarItems[i]);\n }\n return toolbarItems;\n };\n ImageEditor.prototype.getMainToolbarItem = function (isApplyOption) {\n var toolbarItems = [];\n if (isNullOrUndefined(this.toolbar) || (!isNullOrUndefined(this.toolbar) && this.toolbar.indexOf('Crop') > -1)) {\n toolbarItems.push({ id: this.element.id + '_crop', tooltipText: this.l10n.getConstant('Crop'), align: 'Center',\n template: ''\n });\n }\n if (isNullOrUndefined(this.toolbar) || (!isNullOrUndefined(this.toolbar) && this.toolbar.indexOf('Annotate') > -1)) {\n toolbarItems.push({ id: this.element.id + '_annotation', tooltipText: this.l10n.getConstant('Annotation'), align: 'Center',\n template: '' });\n }\n if (isNullOrUndefined(this.toolbar) || (!isNullOrUndefined(this.toolbar) && this.toolbar.indexOf('Transform') > -1)) {\n toolbarItems.push({ id: this.element.id + '_transform', tooltipText: this.l10n.getConstant('Transform'), align: 'Center',\n template: ''\n });\n }\n if (isNullOrUndefined(this.toolbar) || (!isNullOrUndefined(this.toolbar) && this.toolbar.indexOf('Finetune') > -1)) {\n toolbarItems.push({ id: this.element.id + '_adjustment', prefixIcon: 'e-icons e-adjustment', cssClass: 'top-icon e-adjustment',\n tooltipText: this.l10n.getConstant('Finetune'), align: 'Center' });\n }\n if (isNullOrUndefined(this.toolbar) || (!isNullOrUndefined(this.toolbar) && this.toolbar.indexOf('Filter') > -1)) {\n toolbarItems.push({ id: this.element.id + '_filter', prefixIcon: 'e-icons e-filters', cssClass: 'top-icon e-filters',\n tooltipText: this.l10n.getConstant('Filter'), align: 'Center' });\n }\n var tempToolbarItems = this.processToolbar('center');\n for (var i = 0, len = tempToolbarItems.length; i < len; i++) {\n toolbarItems.push(tempToolbarItems[i]);\n }\n if (isApplyOption) {\n toolbarItems.push({ id: this.element.id + '_ok', prefixIcon: 'e-icons e-check', cssClass: 'top-icon e-tick',\n tooltipText: this.l10n.getConstant('OK'), align: 'Right' });\n toolbarItems.push({ id: this.element.id + '_cancel', prefixIcon: 'e-icons e-close', cssClass: 'top-icon e-save',\n tooltipText: this.l10n.getConstant('Cancel'), align: 'Right' });\n }\n return toolbarItems;\n };\n ImageEditor.prototype.getZoomToolbarItem = function () {\n var toolbarItems = [];\n return toolbarItems;\n };\n ImageEditor.prototype.processToolbar = function (position) {\n var toolbarItems = [];\n if (this.toolbar) {\n for (var i = 0, len = this.toolbar.length; i < len; i++) {\n if (typeof (this.toolbar[i]) === 'object') {\n if (isNullOrUndefined(this.toolbar[i].align)) {\n if (position === 'left') {\n toolbarItems.push(this.toolbar[i]);\n }\n }\n else if (this.toolbar[i].align.toLowerCase() === position) {\n toolbarItems.push(this.toolbar[i]);\n }\n }\n }\n }\n return toolbarItems;\n };\n ImageEditor.prototype.processSubToolbar = function (items) {\n var toolbarItems = [];\n if (items) {\n for (var i = 0, len = items.length; i < len; i++) {\n if (typeof (items[i]) === 'object') {\n items[i].align = 'Center';\n toolbarItems.push(items[i]);\n }\n }\n }\n return toolbarItems;\n };\n ImageEditor.prototype.wireZoomBtnEvents = function () {\n var zoomIn = document.querySelector('#' + this.element.id + '_zoomIn');\n var zoomOut = document.querySelector('#' + this.element.id + '_zoomOut');\n if (!isNullOrUndefined(zoomIn)) {\n zoomIn.addEventListener('mousedown', this.zoomInBtnMouseDownHandler.bind(this));\n zoomIn.addEventListener('mouseup', this.zoomBtnMouseUpHandler.bind(this));\n zoomIn.addEventListener('click', this.zoomInBtnClickHandler.bind(this));\n zoomIn.addEventListener('touchstart', this.zoomInBtnClickHandler.bind(this));\n }\n if (!isNullOrUndefined(zoomOut)) {\n zoomOut.addEventListener('mousedown', this.zoomOutBtnMouseDownHandler.bind(this));\n zoomOut.addEventListener('mouseup', this.zoomBtnMouseUpHandler.bind(this));\n zoomOut.addEventListener('click', this.zoomOutBtnClickHandler.bind(this));\n zoomIn.addEventListener('touchstart', this.zoomInBtnClickHandler.bind(this));\n }\n };\n ImageEditor.prototype.isToolbar = function () {\n return (isNullOrUndefined(this.toolbar) || (!isNullOrUndefined(this.toolbar) && this.toolbar.length > 0)\n || !isNullOrUndefined(this.toolbarTemplate));\n };\n ImageEditor.prototype.initToolbarItem = function (isApplyOption, isDevice, isOkBtn) {\n var _this = this;\n if (this.isToolbar()) {\n var leftItem = this.getLeftToolbarItem(isOkBtn);\n var rightItem = this.getRightToolbarItem(isOkBtn);\n var mainItem = this.getMainToolbarItem(isApplyOption);\n var zoomItem = this.getZoomToolbarItem();\n if (isDevice) {\n this.defToolbarItems = leftItem.concat(rightItem);\n }\n else {\n this.defToolbarItems = leftItem.concat(mainItem, rightItem, zoomItem);\n }\n new Toolbar({\n width: '100%',\n items: this.defToolbarItems,\n clicked: this.defToolbarClicked.bind(this),\n created: function () {\n if (!isDevice) {\n _this.renderAnnotationBtn();\n _this.renderCropBtn();\n _this.renderTransformBtn();\n }\n _this.wireZoomBtnEvents();\n _this.renderSaveBtn();\n _this.trigger('toolbarCreated', { toolbarType: 'main' });\n }\n }, '#' + this.element.id + '_toolbar');\n this.createLeftToolbarControls();\n this.enableDisableToolbarBtn();\n if (this.isToolbar() && (!isNullOrUndefined(document.getElementById(this.element.id + '_toolbar')))) {\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n var toolbar_5 = getComponent(this.element.id + '_toolbar', 'toolbar');\n toolbar_5.refreshOverflow();\n }\n }\n };\n ImageEditor.prototype.enableDisableToolbarBtn = function () {\n var undo = document.querySelector('#' + this.element.id + '_undo');\n if (!isNullOrUndefined(undo) && this.undoRedoStep === 0) {\n undo.classList.add('e-disabled');\n undo.parentElement.classList.add('e-overlay');\n }\n else if (!isNullOrUndefined(undo) && this.undoRedoStep > 0) {\n undo.classList.remove('e-disabled');\n undo.parentElement.classList.remove('e-overlay');\n }\n var redo = document.querySelector('#' + this.element.id + '_redo');\n if (!isNullOrUndefined(redo) && (this.undoRedoStep === this.appliedUndoRedoColl.length)) {\n redo.classList.add('e-disabled');\n redo.parentElement.classList.add('e-overlay');\n }\n else if (!isNullOrUndefined(redo) && (this.undoRedoStep === 0 && this.appliedUndoRedoColl.length > 0)) {\n redo.classList.remove('e-disabled');\n redo.parentElement.classList.remove('e-overlay');\n }\n else if (!isNullOrUndefined(redo) && this.undoRedoStep > 0) {\n redo.classList.remove('e-disabled');\n redo.parentElement.classList.remove('e-overlay');\n }\n var zoomIn = document.querySelector('#' + this.element.id + '_zoomIn');\n if (!isNullOrUndefined(zoomIn) && this.zoomSettings.zoomFactor >= this.zoomSettings.maxZoomFactor) {\n zoomIn.classList.add('e-disabled');\n zoomIn.parentElement.classList.add('e-overlay');\n }\n else if (!isNullOrUndefined(zoomIn)) {\n zoomIn.classList.remove('e-disabled');\n zoomIn.parentElement.classList.remove('e-overlay');\n }\n var zoomOut = document.querySelector('#' + this.element.id + '_zoomOut');\n if (!isNullOrUndefined(zoomOut) && this.zoomFactor === 0) {\n zoomOut.classList.add('e-disabled');\n zoomOut.parentElement.classList.add('e-overlay');\n }\n else if (!isNullOrUndefined(zoomOut)) {\n zoomOut.classList.remove('e-disabled');\n zoomOut.parentElement.classList.remove('e-overlay');\n }\n var pan = document.querySelector('#' + this.element.id + '_pan');\n if (!isNullOrUndefined(pan) && this.zoomFactor === 0) {\n pan.style.display = 'none';\n }\n else if (!isNullOrUndefined(pan)) {\n pan.style.display = 'block';\n }\n };\n ImageEditor.prototype.createLeftToolbarControls = function () {\n if (this.defToolbarItems !== undefined && this.defToolbarItems.length > 0 &&\n (!isNullOrUndefined(document.getElementById(this.element.id + '_toolbar')))) {\n var uploadDiv = document.getElementById(this.element.id + '_toolbar')\n .querySelector('.e-image-upload');\n if (uploadDiv) {\n var uploadElem = uploadDiv.getElementsByTagName('input')[0];\n var uploadBtnElem = uploadDiv.getElementsByTagName('button')[0];\n uploadBtnElem.className = 'e-tbar-btn e-tbtn-txt e-btn top-icon';\n uploadBtnElem.innerHTML = '';\n uploadBtnElem.appendChild(this.createElement('span', {\n className: 'e-btn-icon e-icons e-upload-icon e-icon-left'\n }));\n uploadElem.onchange = this.fileSelect.bind(this, uploadElem);\n }\n }\n };\n ImageEditor.prototype.cropSelectedState = function () {\n if (!isNullOrUndefined(this.activeObj.shape) && this.activeObj.shape.split('-')[0] === 'crop') {\n this.okBtn();\n }\n };\n ImageEditor.prototype.renderAnnotationBtn = function () {\n var _this = this;\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var proxy = this;\n var items = [];\n if (isNullOrUndefined(this.toolbar) || (!isNullOrUndefined(this.toolbar) && this.toolbar.indexOf('Pen') > -1)) {\n items.push({ text: this.l10n.getConstant('Pen'), id: 'pen', iconCss: 'e-icons e-free-pen' });\n }\n if (isNullOrUndefined(this.toolbar) || (!isNullOrUndefined(this.toolbar) && this.toolbar.indexOf('Line') > -1)) {\n items.push({ text: this.l10n.getConstant('Line'), id: 'line', iconCss: 'e-icons e-line' });\n }\n if (isNullOrUndefined(this.toolbar) || (!isNullOrUndefined(this.toolbar) && this.toolbar.indexOf('Rectangle') > -1)) {\n items.push({ text: this.l10n.getConstant('Rectangle'), id: 'rectangle', iconCss: 'e-icons e-rectangle' });\n }\n if (isNullOrUndefined(this.toolbar) || (!isNullOrUndefined(this.toolbar) && this.toolbar.indexOf('Ellipse') > -1)) {\n items.push({ text: this.l10n.getConstant('Ellipse'), id: 'ellipse', iconCss: 'e-icons e-circle' });\n }\n // if (isNullOrUndefined(this.toolbar) || (!isNullOrUndefined(this.toolbar) && this.toolbar.indexOf('Arrow') > -1)) {\n // items.push({ text: this.l10n.getConstant('Arrow'), id: 'arrow', iconCss: 'e-icons e-arrow-right-up' });\n // }\n if (isNullOrUndefined(this.toolbar) || (!isNullOrUndefined(this.toolbar) && this.toolbar.indexOf('Text') > -1)) {\n items.push({ text: this.l10n.getConstant('Text'), id: 'text', iconCss: 'e-icons e-add-text' });\n }\n var drpDownBtn = new DropDownButton({ items: items, iconCss: 'e-icons e-annotation',\n cssClass: 'e-image-popup',\n open: function (args) {\n if (Browser.isDevice) {\n args.element.parentElement.style.top = drpDownBtn.element.getBoundingClientRect().top -\n args.element.parentElement.offsetHeight + 'px';\n }\n },\n select: function (args) {\n _this.cropSelectedState();\n var isCropSelection = false;\n var splitWords;\n if (_this.activeObj.shape !== undefined) {\n splitWords = _this.activeObj.shape.split('-');\n }\n if (splitWords === undefined && _this.currObjType.isCustomCrop) {\n isCropSelection = true;\n }\n else if (splitWords !== undefined && splitWords[0] === 'crop') {\n isCropSelection = true;\n }\n _this.currObjType.isCustomCrop = false;\n if (isCropSelection || _this.togglePan) {\n _this.refreshActiveObj();\n _this.upperContext.clearRect(0, 0, _this.upperCanvas.width, _this.upperCanvas.height);\n _this.refreshMainToolbar();\n }\n switch (args.item.id) {\n case 'pen':\n proxy.tempFreehandCounter = proxy.freehandCounter;\n proxy.tempCurrentFreehandDrawIndex = proxy.currentFreehandDrawIndex;\n proxy.currentToolbar = 'pen';\n _this.freeHandDraw(true);\n break;\n case 'text':\n proxy.currentToolbar = 'text';\n _this.drawShapeText();\n break;\n default:\n proxy.currentToolbar = 'shapes';\n proxy.drawShape((args.item.id).toLowerCase());\n break;\n }\n _this.updateToolbarItems();\n }\n });\n // Render initialized DropDownButton.\n drpDownBtn.appendTo('#' + this.element.id + '_annotationBtn');\n };\n ImageEditor.prototype.renderCropBtn = function () {\n var _this = this;\n var items = [];\n if (isNullOrUndefined(this.toolbar) || (!isNullOrUndefined(this.toolbar) && this.toolbar.indexOf('CustomSelection') > -1)) {\n items.push({ text: this.l10n.getConstant('Custom'), id: 'custom', iconCss: 'e-icons e-custom' });\n }\n if (isNullOrUndefined(this.toolbar) || (!isNullOrUndefined(this.toolbar) && this.toolbar.indexOf('CircleSelection') > -1)) {\n items.push({ text: this.l10n.getConstant('Circle'), id: 'circle', iconCss: 'e-icons e-circle' });\n }\n if (isNullOrUndefined(this.toolbar) || (!isNullOrUndefined(this.toolbar) && this.toolbar.indexOf('SquareSelection') > -1)) {\n items.push({ text: this.l10n.getConstant('Square'), id: 'square', iconCss: 'e-icons e-square' });\n }\n if (isNullOrUndefined(this.toolbar) || (!isNullOrUndefined(this.toolbar) && this.toolbar.indexOf('RatioSelection') > -1)) {\n items.push({ text: '3:2', id: '3:2', iconCss: 'e-icons e-custom-a' });\n items.push({ text: '4:3', id: '4:3', iconCss: 'e-icons e-custom-b' });\n items.push({ text: '5:4', id: '5:4', iconCss: 'e-icons e-custom-c' });\n items.push({ text: '7:5', id: '7:5', iconCss: 'e-icons e-custom-d' });\n items.push({ text: '16:9', id: '16:9', iconCss: 'e-icons e-custom-e' });\n }\n var drpDownBtn = new DropDownButton({\n open: function (args) {\n if (_this.togglePan) {\n _this.cancelPan();\n }\n if (Browser.isDevice) {\n args.element.parentElement.style.top = drpDownBtn.element.getBoundingClientRect().top -\n args.element.parentElement.offsetHeight + 'px';\n }\n if (!isNullOrUndefined(_this.activeObj.shape) && _this.activeObj.shape.split('-').length > 1) {\n document.getElementById(_this.activeObj.shape.split('-')[1]).classList.add('e-selected');\n }\n },\n items: items, select: this.cropSelect.bind(this),\n iconCss: 'e-icons e-select', cssClass: 'e-image-popup'\n });\n drpDownBtn.appendTo('#' + this.element.id + '_cropBtn');\n };\n ImageEditor.prototype.renderTransformBtn = function () {\n var items = [];\n if (isNullOrUndefined(this.toolbar) || (!isNullOrUndefined(this.toolbar) && this.toolbar.indexOf('RotateLeft') > -1)) {\n items.push({ text: this.l10n.getConstant('RotateLeft'), id: 'rotateleft', iconCss: 'e-icons e-anti-clock-wise' });\n }\n if (isNullOrUndefined(this.toolbar) || (!isNullOrUndefined(this.toolbar) && this.toolbar.indexOf('RotateRight') > -1)) {\n items.push({ text: this.l10n.getConstant('RotateRight'), id: 'rotateright', iconCss: 'e-icons e-clock-wise' });\n }\n if (isNullOrUndefined(this.toolbar) || (!isNullOrUndefined(this.toolbar) && this.toolbar.indexOf('FlipHorizontal') > -1)) {\n items.push({ text: this.l10n.getConstant('HorizontalFlip'), id: 'horizontalflip', iconCss: 'e-icons e-horizontal-flip' });\n }\n if (isNullOrUndefined(this.toolbar) || (!isNullOrUndefined(this.toolbar) && this.toolbar.indexOf('FlipVertical') > -1)) {\n items.push({ text: this.l10n.getConstant('VerticalFlip'), id: 'verticalflip', iconCss: 'e-icons e-vertical-flip' });\n }\n var drpDownBtn = new DropDownButton({\n open: function (args) {\n if (Browser.isDevice) {\n var ht = args.element.parentElement.offsetHeight;\n args.element.parentElement.style.display = 'none';\n args.element.parentElement.style.top = drpDownBtn.element.getBoundingClientRect().top -\n ht + 'px';\n args.element.parentElement.style.display = 'block';\n }\n },\n items: items, select: this.transformSelect.bind(this),\n iconCss: 'e-icons e-transform', cssClass: 'e-image-popup'\n });\n drpDownBtn.appendTo('#' + this.element.id + '_transformBtn');\n };\n ImageEditor.prototype.renderSaveBtn = function () {\n var imageEditorObj = getInstance(document.getElementById(this.element.id), ImageEditor_1);\n var saveItems = [\n { text: 'JPEG', id: 'jpeg' },\n { text: 'PNG', id: 'png' },\n { text: 'SVG', id: 'svg' }\n ];\n var ddbElem = document.getElementById(this.element.id + '_saveBtn');\n if (ddbElem) {\n // Initialize the DropDownButton component.\n var saveDrpDownBtn = new DropDownButton({ items: saveItems, cssClass: 'e-caret-hide e-image-popup', iconCss: 'e-icons e-save',\n select: function (args) {\n imageEditorObj.export(args.item.text);\n }\n });\n saveDrpDownBtn.appendTo('#' + this.element.id + '_saveBtn');\n }\n };\n ImageEditor.prototype.cropSelect = function (args) {\n this.isCropTab = true;\n this.zoomFactor = this.cropZoomFactor;\n var text = args.item.id;\n this.currentToolbar = 'crop';\n this.currSelectionPoint = null;\n this.select(text);\n this.refreshToolbar('main', true, true);\n this.refreshDropDownBtn(true);\n this.enableDisableToolbarBtn();\n };\n ImageEditor.prototype.transformSelect = function (args) {\n if (this.currObjType.isUndoAction) {\n this.refreshUndoRedoColl();\n }\n this.cropSelectedState();\n this.currentSelectionPoint = null;\n this.performTransformation(args.item.id);\n this.updateCurrentUndoRedoColl('ok');\n };\n ImageEditor.prototype.resetZoom = function () {\n if (this.defaultZoomFactor !== 0) {\n var isUndoRedo = this.isUndoRedo;\n this.transformCurrentObj = this.getCurrentObj();\n this.transformCurrentObj.objColl = extend([], this.objColl, null, true);\n this.transformCurrentObj.pointColl = extend({}, this.pointColl, null, true);\n this.transformCurrentObj.afterCropActions = extend([], this.afterCropActions, [], true);\n this.isUndoRedo = true;\n if (this.defaultZoomFactor > 0) {\n this.zoomAction(-this.defaultZoomFactor);\n }\n else {\n this.zoomAction(Math.abs(this.defaultZoomFactor));\n }\n this.isUndoRedo = isUndoRedo;\n }\n };\n ImageEditor.prototype.performTransformation = function (text) {\n var tempZoomFactor = this.defaultZoomFactor;\n var isUndoRedo = this.isUndoRedo;\n var prevCropObj = extend({}, this.cropObj, {}, true);\n this.resetZoom();\n this.updateTransform(text);\n if (tempZoomFactor !== 0) {\n this.isUndoRedo = true;\n this.zoomAction(tempZoomFactor);\n this.isUndoRedo = isUndoRedo;\n var state = '';\n if (text === 'rotateleft' || text === 'rotateright') {\n state = 'rotate';\n }\n else if (text === 'horizontalflip' || text === 'verticalflip') {\n state = 'flip';\n }\n this.updateUndoRedoColl(state, this.transformCurrentObj, this.transformCurrentObj.objColl, this.transformCurrentObj.pointColl, prevCropObj);\n this.transformCurrentObj = null;\n }\n };\n ImageEditor.prototype.updateTransform = function (text) {\n switch (text.toLowerCase()) {\n case 'rotateleft':\n this.rotateImage(-90);\n break;\n case 'rotateright':\n this.rotateImage(90);\n break;\n case 'horizontalflip':\n this.flipImage(Direction.Horizontal);\n break;\n case 'verticalflip':\n this.flipImage(Direction.Vertical);\n break;\n }\n };\n ImageEditor.prototype.getShapesToolbarItem = function (items) {\n var toolbarItems = [];\n if (items.indexOf('fillColor') > -1) {\n toolbarItems.push({ prefixIcon: 'e-icons e-copy', id: this.element.id + '_fillcolor',\n cssClass: 'top-icon e-fill', tooltipText: this.l10n.getConstant('FillColor'), align: 'Center', type: 'Input',\n template: '' });\n }\n if (items.indexOf('strokeColor') > -1) {\n toolbarItems.push({ prefixIcon: 'e-icons e-copy', id: this.element.id + '_strokecolor',\n cssClass: 'top-icon e-stroke', tooltipText: this.l10n.getConstant('StrokeColor'), align: 'Center', type: 'Input',\n template: '' });\n }\n if (items.indexOf('strokeWidth') > -1) {\n toolbarItems.push({ id: this.element.id + '_strokeWidth', cssClass: 'top-icon e-size', tooltipText: 'Stroke Width', align: 'Center',\n type: 'Input', template: '' });\n }\n var tempToolbarItems = this.processSubToolbar(items);\n for (var i = 0, len = tempToolbarItems.length; i < len; i++) {\n toolbarItems.push(tempToolbarItems[i]);\n }\n if (!Browser.isDevice) {\n toolbarItems.push({ id: this.element.id + '_ok', prefixIcon: 'e-icons e-check', cssClass: 'top-icon e-tick',\n tooltipText: this.l10n.getConstant('OK'), align: 'Right' });\n toolbarItems.push({ id: this.element.id + '_cancel', prefixIcon: 'e-icons e-close', cssClass: 'top-icon e-save',\n tooltipText: this.l10n.getConstant('Cancel'), align: 'Right' });\n }\n return toolbarItems;\n };\n ImageEditor.prototype.initShapesToolbarItem = function (items) {\n var _this = this;\n var leftItem = this.getLeftToolbarItem();\n var rightItem = this.getRightToolbarItem();\n var mainItem = this.getShapesToolbarItem(items);\n var zoomItem = this.getZoomToolbarItem();\n if (Browser.isDevice) {\n this.defToolbarItems = mainItem;\n }\n else {\n this.defToolbarItems = leftItem.concat(zoomItem, mainItem, rightItem);\n }\n var toolbar = new Toolbar({\n width: '100%',\n items: this.defToolbarItems,\n clicked: this.defToolbarClicked.bind(this),\n created: function () {\n _this.createShapeColor(items);\n _this.createShapeBtn(items);\n _this.wireZoomBtnEvents();\n if (!Browser.isDevice) {\n _this.renderSaveBtn();\n }\n _this.trigger('toolbarCreated', { toolbarType: 'shapes' });\n if (Browser.isDevice) {\n if (_this.defToolbarItems.length > 0 && (!isNullOrUndefined(document.getElementById(_this.element.id + '_bottomToolbar')))) {\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n toolbar.refreshOverflow();\n }\n }\n else {\n _this.createLeftToolbarControls();\n if (_this.defToolbarItems.length > 0 && (!isNullOrUndefined(document.getElementById(_this.element.id + '_toolbar')))) {\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n toolbar.refreshOverflow();\n }\n }\n }\n });\n if (Browser.isDevice) {\n toolbar.appendTo('#' + this.element.id + '_bottomToolbar');\n }\n else {\n toolbar.appendTo('#' + this.element.id + '_toolbar');\n }\n this.enableDisableToolbarBtn();\n };\n ImageEditor.prototype.createShapeColor = function (items) {\n var _this = this;\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var proxy = this;\n if (items.indexOf('fillColor') > -1) {\n this.element.querySelector('.e-template.e-fill').appendChild(this.createElement('input', {\n id: this.element.id + '_shape_fill'\n }));\n var fillColor = new ColorPicker({\n modeSwitcher: false, noColor: true, value: '',\n showButtons: false, mode: 'Palette', cssClass: 'e-shape-fill-color',\n change: function (args) {\n _this.pushActItemIntoObj();\n var prevCropObj = extend({}, _this.cropObj, {}, true);\n var prevObj = _this.getCurrentObj();\n prevObj.objColl = extend([], _this.objColl, [], true);\n prevObj.pointColl = extend([], _this.pointColl, [], true);\n prevObj.afterCropActions = extend([], _this.afterCropActions, [], true);\n _this.objColl.pop();\n proxy.activeObj.strokeSettings.fillColor = args.currentValue.hex;\n proxy.strokeSettings.fillColor = proxy.activeObj.strokeSettings.fillColor;\n _this.objColl.push(_this.activeObj);\n _this.updateUndoRedoColl('shapeTransform', prevObj, prevObj.objColl, prevObj.pointColl, prevCropObj);\n proxy.redrawShape(proxy.objColl[proxy.objColl.length - 1]);\n if (args.currentValue.rgba === '') {\n fillDDB_1.element.children[0].classList.add('e-nocolor-item');\n }\n else {\n fillDDB_1.element.children[0].classList.remove('e-nocolor-item');\n fillDDB_1.element.children[0].style.backgroundColor = args.currentValue.rgba;\n }\n fillDDB_1.toggle();\n }\n }, '#' + this.element.id + '_shape_fill');\n var fillDDB_1 = new DropDownButton({\n open: function (args) {\n if (Browser.isDevice) {\n args.element.parentElement.style.top = fillDDB_1.element.getBoundingClientRect().top -\n args.element.parentElement.offsetHeight + 'px';\n args.element.parentElement.style.left = _this.element.offsetLeft + 'px';\n }\n },\n target: '.e-shape-fill-color',\n iconCss: 'e-dropdownbtn-preview'\n }, '#' + this.element.id + '_fillColorBtn');\n fillColor.inline = true;\n this.element.querySelector('.e-fill.e-template .e-dropdownbtn-preview').classList.add('e-nocolor-item');\n }\n if (items.indexOf('strokeColor') > -1) {\n this.element.querySelector('.e-template.e-stroke').appendChild(this.createElement('input', {\n id: this.element.id + '_shape_stroke'\n }));\n var strokeColor = new ColorPicker({\n modeSwitcher: false, noColor: false, value: '#fff',\n showButtons: false, mode: 'Palette', cssClass: 'e-shape-stroke-color',\n change: function (args) {\n _this.pushActItemIntoObj();\n var prevCropObj = extend({}, _this.cropObj, {}, true);\n var prevObj = _this.getCurrentObj();\n prevObj.objColl = extend([], _this.objColl, [], true);\n prevObj.pointColl = extend([], _this.pointColl, [], true);\n prevObj.afterCropActions = extend([], _this.afterCropActions, [], true);\n _this.objColl.pop();\n proxy.activeObj.strokeSettings.strokeColor = args.currentValue.hex;\n proxy.strokeSettings.strokeColor = proxy.activeObj.strokeSettings.strokeColor;\n if (!proxy.togglePen) {\n _this.objColl.push(_this.activeObj);\n proxy.updateUndoRedoColl('shapeTransform', prevObj, prevObj.objColl, prevObj.pointColl, prevCropObj);\n proxy.redrawShape(proxy.objColl[proxy.objColl.length - 1]);\n }\n strokeDDB_1.element.children[0].style.backgroundColor = args.currentValue.rgba;\n strokeDDB_1.toggle();\n }\n }, '#' + this.element.id + '_shape_stroke');\n var strokeDDB_1 = new DropDownButton({\n open: function (args) {\n if (Browser.isDevice) {\n args.element.parentElement.style.top = strokeDDB_1.element.getBoundingClientRect().top -\n args.element.parentElement.offsetHeight + 'px';\n args.element.parentElement.style.left = _this.element.offsetLeft + 'px';\n }\n },\n target: '.e-shape-stroke-color',\n iconCss: 'e-dropdownbtn-preview'\n }, '#' + this.element.id + '_borderColorBtn');\n strokeColor.inline = true;\n this.element.querySelector('.e-stroke.e-template .e-dropdownbtn-preview').style.background = '#fff';\n }\n };\n ImageEditor.prototype.createShapeBtn = function (items) {\n var _this = this;\n var strokeWidthItems = [\n { id: '1', text: this.l10n.getConstant('XSmall') },\n { id: '2', text: this.l10n.getConstant('Small') },\n { id: '3', text: this.l10n.getConstant('Medium') },\n { id: '4', text: this.l10n.getConstant('Large') },\n { id: '5', text: this.l10n.getConstant('XLarge') }\n ];\n if (items.indexOf('strokeWidth') > -1) {\n var strokeWidthBtn = document.getElementById(this.element.id + '_borderWidthBtn');\n var spanElem_1 = document.createElement('span');\n spanElem_1.innerHTML = this.l10n.getConstant('Small');\n spanElem_1.className = 'e-shape-stroke-width';\n strokeWidthBtn.appendChild(spanElem_1);\n // Initialize the DropDownButton component.\n var drpDownBtn_1 = new DropDownButton({ items: strokeWidthItems,\n open: function (args) {\n if (Browser.isDevice) {\n args.element.parentElement.style.top = drpDownBtn_1.element.getBoundingClientRect().top -\n args.element.parentElement.offsetHeight + 'px';\n }\n var activeBtn = spanElem_1.innerHTML;\n if (activeBtn !== '') {\n args.element.querySelector('[aria-label = ' + '\"' + activeBtn + '\"' + ']').classList.add('e-selected-btn');\n }\n },\n select: function (args) {\n _this.pushActItemIntoObj();\n var prevCropObj = extend({}, _this.cropObj, {}, true);\n var prevObj = _this.getCurrentObj();\n prevObj.objColl = extend([], _this.objColl, [], true);\n prevObj.pointColl = extend([], _this.pointColl, [], true);\n prevObj.afterCropActions = extend([], _this.afterCropActions, [], true);\n _this.objColl.pop();\n spanElem_1.textContent = args.item.text;\n _this.activeObj.strokeSettings.strokeWidth = parseInt(args.item.id, 10);\n _this.activeObj.strokeSettings.strokeWidth *= 2;\n _this.strokeSettings.strokeWidth = _this.activeObj.strokeSettings.strokeWidth;\n _this.objColl.push(_this.activeObj);\n _this.updateUndoRedoColl('shapeTransform', prevObj, prevObj.objColl, prevObj.pointColl, prevCropObj);\n _this.redrawShape(_this.objColl[_this.objColl.length - 1]);\n if (Browser.isDevice) {\n if (!isNullOrUndefined(document.getElementById(_this.element.id + '_bottomToolbar'))) {\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n var toolbar_6 = getComponent(_this.element.id + '_bottomToolbar', 'toolbar');\n toolbar_6.refreshOverflow();\n }\n }\n else {\n if (!isNullOrUndefined(document.getElementById(_this.element.id + '_toolbar'))) {\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n var toolbar_7 = getComponent(_this.element.id + '_toolbar', 'toolbar');\n toolbar_7.refreshOverflow();\n }\n }\n }\n });\n // Render initialized DropDownButton.\n drpDownBtn_1.appendTo('#' + this.element.id + '_borderWidthBtn');\n }\n };\n ImageEditor.prototype.getTextToolbarItem = function (items) {\n var toolbarItems = [];\n if (items.indexOf('fontFamily') > -1) {\n toolbarItems.push({ id: this.element.id + '_fontFamily', cssClass: 'top-icon e-img-font-family',\n tooltipText: this.l10n.getConstant('FontFamily'), align: 'Center',\n template: '' });\n }\n if (items.indexOf('fontStyle') > -1) {\n toolbarItems.push({ id: this.element.id + '_fontStyle', cssClass: 'top-icon e-img-font-style',\n tooltipText: this.l10n.getConstant('FontStyle'), align: 'Center',\n template: '' });\n }\n if (items.indexOf('fontSize') > -1) {\n toolbarItems.push({ id: this.element.id + '_fontSize', cssClass: 'top-icon e-img-font-size',\n tooltipText: this.l10n.getConstant('FontSize'), align: 'Center',\n template: '' });\n }\n if (items.indexOf('fontColor') > -1) {\n toolbarItems.push({ cssClass: 'top-icon e-text-font-color', id: this.element.id + '_text_strokecolor',\n tooltipText: this.l10n.getConstant('FontColor'), align: 'Center',\n type: 'Input', template: '' });\n }\n var tempToolbarItems = this.processSubToolbar(items);\n for (var i = 0, len = tempToolbarItems.length; i < len; i++) {\n toolbarItems.push(tempToolbarItems[i]);\n }\n if (!Browser.isDevice) {\n toolbarItems.push({ id: this.element.id + '_ok', prefixIcon: 'e-icons e-check', cssClass: 'top-icon e-tick',\n tooltipText: this.l10n.getConstant('OK'), align: 'Right' });\n toolbarItems.push({ id: this.element.id + '_cancel', prefixIcon: 'e-icons e-close', cssClass: 'top-icon e-save',\n tooltipText: this.l10n.getConstant('Cancel'), align: 'Right' });\n }\n return toolbarItems;\n };\n ImageEditor.prototype.getFontFamilyItems = function () {\n if (Browser.isDevice) {\n return [{ id: 'arial', text: 'ABC' }, { id: 'calibri', text: 'ABC' }, { id: 'georgia', text: 'ABC' },\n { id: 'roboto', text: 'ABC' }, { id: 'tahoma', text: 'ABC' }];\n }\n return [{ id: 'arial', text: 'Arial' }, { id: 'calibri', text: 'Calibri' }, { id: 'georgia', text: 'Georgia' },\n { id: 'roboto', text: 'Roboto' }, { id: 'tahoma', text: 'Tahoma' }];\n };\n ImageEditor.prototype.getFontSizeItems = function () {\n if (Browser.isDevice) {\n return [{ id: 'default', text: this.l10n.getConstant('ABC') }, { id: 'bold', text: this.l10n.getConstant('ABC') },\n { id: 'italic', text: this.l10n.getConstant('ABC') }, { id: 'bolditalic', text: this.l10n.getConstant('ABC') }];\n }\n return [{ id: 'default', text: this.l10n.getConstant('Default') }, { id: 'bold', text: this.l10n.getConstant('Bold') },\n { id: 'italic', text: this.l10n.getConstant('Italic') }, { id: 'bolditalic', text: this.l10n.getConstant('BoldItalic') }];\n };\n ImageEditor.prototype.initTextToolbarItem = function (items) {\n var _this = this;\n var leftItem = this.getLeftToolbarItem();\n var rightItem = this.getRightToolbarItem();\n var mainItem = this.getTextToolbarItem(items);\n var zoomItem = this.getZoomToolbarItem();\n if (Browser.isDevice) {\n this.defToolbarItems = mainItem;\n }\n else {\n this.defToolbarItems = leftItem.concat(zoomItem, mainItem, rightItem);\n }\n var toolbar = new Toolbar({\n width: '100%',\n items: this.defToolbarItems,\n clicked: this.defToolbarClicked.bind(this),\n created: function () {\n _this.createTextColor(items);\n _this.createTextBtn(items);\n _this.wireZoomBtnEvents();\n if (!Browser.isDevice) {\n _this.renderSaveBtn();\n }\n _this.trigger('toolbarCreated', { toolbarType: 'text' });\n if (Browser.isDevice) {\n if (_this.defToolbarItems.length > 0 && (!isNullOrUndefined(document.getElementById(_this.element.id + '_bottomToolbar')))) {\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n toolbar.refreshOverflow();\n }\n }\n else {\n _this.createLeftToolbarControls();\n if (_this.defToolbarItems.length > 0 && (!isNullOrUndefined(document.getElementById(_this.element.id + '_toolbar')))) {\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n toolbar.refreshOverflow();\n }\n }\n }\n });\n if (Browser.isDevice) {\n toolbar.appendTo('#' + this.element.id + '_bottomToolbar');\n }\n else {\n toolbar.appendTo('#' + this.element.id + '_toolbar');\n }\n this.enableDisableToolbarBtn();\n };\n ImageEditor.prototype.createTextColor = function (items) {\n var _this = this;\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var proxy = this;\n if (items.indexOf('fontColor') > -1) {\n this.element.querySelector('.e-template.e-text-font-color').appendChild(this.createElement('input', {\n id: this.element.id + '_text_font'\n }));\n var fontColor = new ColorPicker({\n modeSwitcher: false, value: '#fff',\n showButtons: false, mode: 'Palette', cssClass: 'e-text-fontt-color',\n change: function (args) {\n _this.isInitialTextEdited = false;\n _this.pushActItemIntoObj();\n var prevCropObj = extend({}, _this.cropObj, {}, true);\n var prevObj = _this.getCurrentObj();\n prevObj.objColl = extend([], _this.objColl, [], true);\n prevObj.pointColl = extend([], _this.pointColl, [], true);\n prevObj.afterCropActions = extend([], _this.afterCropActions, [], true);\n _this.objColl.pop();\n if (proxy.textArea.style.display === 'none') {\n proxy.strokeSettings.strokeColor = proxy.activeObj.strokeSettings.strokeColor = args.currentValue.hex;\n if (!proxy.togglePen) {\n _this.objColl.push(_this.activeObj);\n proxy.updateUndoRedoColl('shapeTransform', prevObj, prevObj.objColl, prevObj.pointColl, prevCropObj);\n proxy.redrawShape(proxy.objColl[proxy.objColl.length - 1]);\n }\n }\n else if (proxy.textArea.style.display === 'block') {\n proxy.textArea.style.color = args.currentValue.hex;\n var temp = proxy.activeObj.strokeSettings.strokeColor;\n proxy.activeObj.strokeSettings.strokeColor = args.currentValue.hex;\n _this.objColl.push(_this.activeObj);\n _this.updateUndoRedoColl('textAreaCustomization', prevObj, prevObj.objColl, prevObj.pointColl, prevCropObj);\n _this.objColl.pop();\n proxy.activeObj.strokeSettings.strokeColor = temp;\n }\n else if (!proxy.togglePen) {\n _this.objColl.push(_this.activeObj);\n _this.updateUndoRedoColl('shapeTransform', prevObj, prevObj.objColl, prevObj.pointColl, prevCropObj);\n proxy.redrawShape(proxy.objColl[proxy.objColl.length - 1]);\n }\n strokeDDB_2.element.children[0].style.backgroundColor = args.currentValue.rgba;\n strokeDDB_2.toggle();\n }\n }, '#' + this.element.id + '_text_font');\n var strokeDDB_2 = new DropDownButton({\n open: function (args) {\n if (Browser.isDevice) {\n args.element.parentElement.style.top = strokeDDB_2.element.getBoundingClientRect().top -\n args.element.parentElement.offsetHeight + 'px';\n args.element.parentElement.style.left = _this.element.offsetLeft + 'px';\n }\n },\n target: '.e-text-fontt-color',\n iconCss: 'e-dropdownbtn-preview'\n }, '#' + this.element.id + '_fontColorBtn');\n fontColor.inline = true;\n this.element.querySelector('.e-text-font-color.e-template .e-dropdownbtn-preview').style.background\n = '#fff';\n }\n };\n ImageEditor.prototype.pushActItemIntoObj = function () {\n if (this.textArea.style.display === 'none') {\n this.objColl.push(this.activeObj);\n }\n else {\n var temp = extend({}, this.activeObj, {}, true);\n this.setTextBoxStylesToActObj();\n this.objColl.push(this.activeObj);\n this.activeObj = temp;\n }\n };\n ImageEditor.prototype.createTextBtn = function (items) {\n var _this = this;\n if (items.indexOf('fontFamily') > -1) {\n var fontNameBtn = document.getElementById(this.element.id + '_fontFamilyBtn');\n var spanElem_2 = document.createElement('span');\n if (Browser.isDevice) {\n spanElem_2.innerHTML = 'ABC';\n spanElem_2.setAttribute('style', 'font-family: arial');\n }\n else {\n spanElem_2.innerHTML = 'Arial';\n }\n spanElem_2.className = 'e-text-font-family';\n fontNameBtn.appendChild(spanElem_2);\n var fontFamilyBtn_1 = new DropDownButton({ items: this.getFontFamilyItems(),\n cssClass: 'e-font-family',\n createPopupOnClick: true,\n beforeItemRender: function (args) {\n args.element.setAttribute('style', 'font-family:' + args.element.id);\n },\n open: function (args) {\n if (Browser.isDevice) {\n args.element.parentElement.style.top = fontFamilyBtn_1.element.getBoundingClientRect().top -\n args.element.parentElement.offsetHeight + 'px';\n }\n var fontFamily;\n if (_this.textArea.style.display === 'block') {\n fontFamily = _this.textArea.style.fontFamily;\n }\n else {\n fontFamily = _this.activeObj.textSettings.fontFamily;\n }\n args.element.querySelector('[id *= ' + '\"' + fontFamily.toLowerCase()\n + '\"' + ']').classList.add('e-selected-btn');\n },\n select: function (args) {\n _this.isInitialTextEdited = false;\n _this.pushActItemIntoObj();\n var objColl = extend([], _this.objColl, [], true);\n var prevCropObj = extend({}, _this.cropObj, {}, true);\n var prevObj = _this.getCurrentObj();\n prevObj.objColl = extend([], _this.objColl, [], true);\n prevObj.pointColl = extend([], _this.pointColl, [], true);\n prevObj.afterCropActions = extend([], _this.afterCropActions, [], true);\n _this.objColl.pop();\n spanElem_2.textContent = args.item.text;\n if (Browser.isDevice) {\n spanElem_2.setAttribute('style', 'font-family:' + args.item.id);\n }\n if (_this.textArea.style.display === 'block') {\n _this.updateFontRatio(_this.activeObj, true);\n var temp = _this.activeObj.textSettings.fontFamily;\n _this.activeObj.textSettings.fontFamily = _this.toPascalCase(args.item.id);\n _this.redrawText();\n _this.objColl.push(_this.activeObj);\n _this.updateUndoRedoColl('textAreaCustomization', prevObj, prevObj.objColl, prevObj.pointColl, prevCropObj);\n _this.objColl.pop();\n _this.upperContext.clearRect(0, 0, _this.upperCanvas.width, _this.upperCanvas.height);\n var width = _this.activeObj.activePoint.width +\n _this.activeObj.textSettings.fontSize * 0.25;\n _this.textArea.style.width = width + 'px';\n _this.textArea.style.fontFamily = _this.toPascalCase(args.item.id);\n _this.activeObj.textSettings.fontFamily = temp;\n _this.updateFontStyles();\n }\n else {\n _this.updateFontRatio(_this.activeObj);\n _this.textSettings.fontFamily = _this.activeObj.textSettings.fontFamily = _this.toPascalCase(args.item.id);\n _this.redrawText();\n _this.objColl.push(_this.activeObj);\n _this.updateUndoRedoColl('shapeTransform', prevObj, objColl, extend([], _this.pointColl, [], true), prevCropObj);\n _this.redrawShape(_this.objColl[_this.objColl.length - 1]);\n }\n }\n });\n fontFamilyBtn_1.appendTo('#' + this.element.id + '_fontFamilyBtn');\n }\n if (items.indexOf('fontStyle') > -1) {\n var fontStyleBtnElem = document.getElementById(this.element.id + '_fontStyleBtn');\n var span1Elem_1 = document.createElement('span');\n if (Browser.isDevice) {\n span1Elem_1.innerHTML = this.l10n.getConstant('ABC');\n }\n else {\n span1Elem_1.innerHTML = this.l10n.getConstant('Default');\n }\n span1Elem_1.className = 'e-text-font-style';\n fontStyleBtnElem.appendChild(span1Elem_1);\n var fontStyleBtn_1 = new DropDownButton({ items: this.getFontSizeItems(),\n cssClass: 'e-font-style',\n createPopupOnClick: true,\n beforeItemRender: function (args) {\n if (Browser.isDevice) {\n if (args.element.id === 'bold') {\n args.element.setAttribute('style', 'font-weight: bold');\n }\n else if (args.element.id === 'italic') {\n args.element.setAttribute('style', 'font-style: italic');\n }\n else if (args.element.id === 'bolditalic') {\n args.element.setAttribute('style', 'font-style: italic;font-weight: bold');\n }\n }\n },\n open: function (args) {\n var fontStyle = 'default';\n if (_this.textArea.style.display === 'block') {\n if (_this.textArea.style.fontWeight === 'bold') {\n fontStyle = 'bold';\n }\n if (_this.textArea.style.fontStyle === 'italic') {\n fontStyle = fontStyle.replace('default', '');\n fontStyle += 'italic';\n }\n }\n else {\n if (_this.activeObj.textSettings.bold) {\n fontStyle = 'bold';\n }\n if (_this.activeObj.textSettings.italic) {\n fontStyle = fontStyle.replace('default', '');\n fontStyle += 'italic';\n }\n }\n if (Browser.isDevice) {\n args.element.parentElement.style.top = fontStyleBtn_1.element.getBoundingClientRect().top -\n args.element.parentElement.offsetHeight + 'px';\n }\n args.element.querySelector('[id *= ' + '\"' + fontStyle + '\"' + ']').classList.add('e-selected-btn');\n },\n select: function (args) {\n _this.isInitialTextEdited = false;\n if (Browser.isDevice) {\n if (args.item.id === 'bold') {\n span1Elem_1.setAttribute('style', 'font-weight: bold');\n }\n else if (args.item.id === 'italic') {\n span1Elem_1.setAttribute('style', 'font-style: italic');\n }\n else if (args.item.id === 'bolditalic') {\n span1Elem_1.setAttribute('style', 'font-style: italic;font-weight: bold');\n }\n _this.applyFontStyle(args.item.id);\n }\n else {\n span1Elem_1.textContent = args.item.text;\n _this.applyFontStyle(args.item.id);\n }\n }\n });\n fontStyleBtn_1.appendTo('#' + this.element.id + '_fontStyleBtn');\n }\n if (items.indexOf('fontSize') > -1) {\n var fontSizeBtnElem = document.getElementById(this.element.id + '_fontSizeBtn');\n var fontSizeSpanElem_1 = document.createElement('span');\n var fontSizes = this.getFontSizes();\n fontSizeSpanElem_1.innerHTML = fontSizes[0].text;\n fontSizeSpanElem_1.className = 'e-text-font-size';\n fontSizeBtnElem.appendChild(fontSizeSpanElem_1);\n var fontSizeBtn_1 = new DropDownButton({\n cssClass: 'e-font-size',\n items: fontSizes,\n open: function (args) {\n if (Browser.isDevice) {\n args.element.parentElement.style.top = fontSizeBtn_1.element.getBoundingClientRect().top -\n args.element.parentElement.offsetHeight + 'px';\n }\n var activeBtn = fontSizeSpanElem_1.innerHTML;\n args.element.querySelector('[aria-label *= ' + '\"' + activeBtn + '\"' + ']').classList.add('e-selected-btn');\n },\n select: function (args) {\n _this.isInitialTextEdited = false;\n _this.pushActItemIntoObj();\n var prevCropObj = extend({}, _this.cropObj, {}, true);\n var prevObj = _this.getCurrentObj();\n prevObj.objColl = extend([], _this.objColl, [], true);\n prevObj.pointColl = extend([], _this.pointColl, [], true);\n prevObj.afterCropActions = extend([], _this.afterCropActions, [], true);\n _this.objColl.pop();\n fontSizeSpanElem_1.textContent = args.item.text;\n if (_this.textArea.style.display === 'block') {\n _this.updateFontRatio(_this.activeObj, true);\n var temp = _this.activeObj.textSettings.fontSize;\n _this.activeObj.textSettings.fontSize = parseInt(_this.fontSizeColl[(parseInt(args.item.text, 10) - 1)].text, 10);\n _this.objColl.push(_this.activeObj);\n _this.updateUndoRedoColl('textAreaCustomization', prevObj, prevObj.objColl, prevObj.pointColl, prevCropObj);\n _this.objColl.pop();\n var textStyle = '';\n if (_this.textArea.style.fontWeight === 'bold') {\n textStyle = 'bold ';\n }\n if (_this.textArea.style.fontStyle === 'italic') {\n textStyle = 'italic ';\n }\n if (_this.textArea.style.fontWeight === 'bold' && _this.textArea.style.fontStyle === 'italic') {\n textStyle = 'italic bold ';\n }\n _this.upperContext.font = textStyle + _this.activeObj.textSettings.fontSize + 'px' + ' ' + _this.textArea.style.fontFamily;\n var rows = _this.textArea.value.split('\\n');\n var text = _this.getMaxText(true);\n var width = _this.upperContext.measureText(text).width +\n _this.activeObj.textSettings.fontSize * 0.5;\n _this.textArea.style.width = width + 'px';\n _this.textArea.style.height = rows.length * (_this.activeObj.textSettings.fontSize + _this.activeObj.textSettings.fontSize * 0.25) + 'px';\n _this.activeObj.textSettings.fontSize = temp;\n _this.upperContext.font = _this.activeObj.textSettings.fontSize + 'px' + ' ' + _this.activeObj.textSettings.fontFamily;\n _this.textArea.style.fontSize = parseInt(_this.fontSizeColl[(parseInt(args.item.text, 10) - 1)].text, 10) + 'px';\n if (_this.textArea.style.fontFamily === 'georgia') {\n _this.textArea.style.width = parseFloat(_this.textArea.style.width) + parseFloat(_this.textArea.style.fontSize) + 'px';\n }\n }\n else {\n _this.updateFontRatio(_this.activeObj);\n _this.textSettings.fontSize = _this.activeObj.textSettings.fontSize = parseInt(_this.fontSizeColl[(parseInt(args.item.text, 10) - 1)].text, 10);\n _this.upperContext.font = _this.activeObj.textSettings.fontSize + 'px' + ' ' + _this.activeObj.textSettings.fontFamily;\n var rows = _this.activeObj.keyHistory.split('\\n');\n var text = _this.getMaxText();\n var width = _this.upperContext.measureText(text).width +\n _this.activeObj.textSettings.fontSize * 0.5;\n var height = rows.length * (_this.activeObj.textSettings.fontSize +\n _this.activeObj.textSettings.fontSize * 0.25);\n _this.setTextSelection(width, height);\n _this.updateActiveObject(_this.activeObj.activePoint, _this.activeObj);\n _this.redrawText();\n _this.objColl.push(_this.activeObj);\n _this.updateUndoRedoColl('shapeTransform', prevObj, prevObj.objColl, prevObj.pointColl, prevCropObj);\n _this.redrawShape(_this.objColl[_this.objColl.length - 1]);\n }\n }\n });\n fontSizeBtn_1.appendTo('#' + this.element.id + '_fontSizeBtn');\n }\n };\n ImageEditor.prototype.getFontSizes = function () {\n var items = [];\n this.fontSizeColl = [];\n var fontSize;\n if (this.degree === 0 || this.degree % 180 === 0) {\n fontSize = this.destWidth / 25;\n }\n else {\n fontSize = this.destHeight / 25;\n }\n for (var i = 1; i <= 10; i++) {\n this.fontSizeColl.push({ text: (i * (Math.round(fontSize / 2))).toString() });\n items.push({ text: (i.toString()) });\n }\n return items;\n };\n ImageEditor.prototype.getTextAreaWidth = function (item) {\n var tempBold = this.activeObj.textSettings.bold;\n var tempItalic = this.activeObj.textSettings.italic;\n switch (item) {\n case 'default':\n this.activeObj.textSettings.bold = false;\n this.activeObj.textSettings.italic = false;\n break;\n case 'bold':\n this.activeObj.textSettings.bold = true;\n this.activeObj.textSettings.italic = false;\n break;\n case 'italic':\n this.activeObj.textSettings.bold = false;\n this.activeObj.textSettings.italic = true;\n break;\n case 'bolditalic':\n this.activeObj.textSettings.bold = true;\n this.activeObj.textSettings.italic = true;\n break;\n }\n this.updateFontStyles();\n var width;\n if (this.textArea.style.display === 'none') {\n width = this.upperContext.measureText(this.activeObj.keyHistory).width +\n this.activeObj.textSettings.fontSize * 0.5;\n }\n else {\n width = this.upperContext.measureText(this.textArea.value).width +\n this.activeObj.textSettings.fontSize * 0.5;\n }\n this.activeObj.textSettings.bold = tempBold;\n this.activeObj.textSettings.italic = tempItalic;\n return width;\n };\n ImageEditor.prototype.updateUndoRedoObj = function (objColl) {\n if (this.allowUndoRedo) {\n this.objColl.push(this.activeObj);\n var cropObj = extend({}, this.cropObj, {}, true);\n var obj = this.getCurrentObj();\n obj.objColl = extend([], this.objColl, [], true);\n obj.pointColl = extend([], this.pointColl, [], true);\n obj.afterCropActions = extend([], this.afterCropActions, [], true);\n this.undoRedoColl.push({ operation: 'shapeTransform', previousObj: obj, currentObj: obj,\n previousObjColl: objColl, currentObjColl: obj.objColl,\n previousPointColl: obj.pointColl, currentPointColl: obj.pointColl,\n previousCropObj: cropObj, currentCropObj: cropObj });\n this.redrawShape(this.objColl[this.objColl.length - 1]);\n }\n };\n ImageEditor.prototype.updateObjColl = function (item, objColl) {\n var prevCropObj = extend({}, this.cropObj, {}, true);\n var prevObj = this.getCurrentObj();\n prevObj.objColl = objColl;\n prevObj.pointColl = extend([], this.pointColl, [], true);\n prevObj.afterCropActions = extend([], this.afterCropActions, [], true);\n var tempBold = this.activeObj.textSettings.bold;\n var tempItalic = this.activeObj.textSettings.italic;\n switch (item) {\n case 'default':\n this.activeObj.textSettings.bold = false;\n this.activeObj.textSettings.italic = false;\n break;\n case 'bold':\n this.activeObj.textSettings.bold = true;\n this.activeObj.textSettings.italic = false;\n break;\n case 'italic':\n this.activeObj.textSettings.bold = false;\n this.activeObj.textSettings.italic = true;\n break;\n case 'bolditalic':\n this.activeObj.textSettings.bold = true;\n this.activeObj.textSettings.italic = true;\n break;\n }\n this.objColl.push(this.activeObj);\n this.updateUndoRedoColl('textAreaCustomization', prevObj, prevObj.objColl, prevObj.pointColl, prevCropObj);\n this.objColl.pop();\n this.activeObj.textSettings.bold = tempBold;\n this.activeObj.textSettings.italic = tempItalic;\n };\n ImageEditor.prototype.applyFontStyle = function (item) {\n this.pushActItemIntoObj();\n var objColl = extend([], this.objColl, [], true);\n this.objColl.pop();\n if (this.textArea.style.display === 'none') {\n this.updateFontRatio(this.activeObj);\n }\n else {\n this.updateFontRatio(this.activeObj, true);\n }\n switch (item) {\n case 'default':\n if (this.textArea.style.display === 'block') {\n var width = this.getTextAreaWidth(item);\n this.textArea.style.width = width + 'px';\n this.textArea.style.fontWeight = 'normal';\n this.textArea.style.fontStyle = 'normal';\n this.updateObjColl(item, objColl);\n }\n else {\n this.textSettings.bold = this.activeObj.textSettings.bold = false;\n this.textSettings.italic = this.activeObj.textSettings.italic = false;\n this.redrawText();\n this.updateUndoRedoObj(objColl);\n }\n break;\n case 'bold':\n if (this.textArea.style.display === 'block') {\n var width = this.getTextAreaWidth(item);\n this.textArea.style.width = width + 'px';\n this.textArea.style.fontWeight = 'bold';\n this.textArea.style.fontStyle = 'normal';\n this.updateObjColl(item, objColl);\n }\n else {\n this.textSettings.bold = this.activeObj.textSettings.bold = true;\n this.textSettings.italic = this.activeObj.textSettings.italic = false;\n this.redrawText();\n this.updateUndoRedoObj(objColl);\n }\n break;\n case 'italic':\n if (this.textArea.style.display === 'block') {\n var width = this.getTextAreaWidth(item);\n this.textArea.style.width = width + 'px';\n this.textArea.style.fontWeight = 'normal';\n this.textArea.style.fontStyle = 'italic';\n this.updateObjColl(item, objColl);\n }\n else {\n this.textSettings.bold = this.activeObj.textSettings.bold = false;\n this.textSettings.italic = this.activeObj.textSettings.italic = true;\n this.redrawText();\n this.updateUndoRedoObj(objColl);\n }\n break;\n case 'bolditalic':\n if (this.textArea.style.display === 'block') {\n var width = this.getTextAreaWidth(item);\n this.textArea.style.width = width + 'px';\n this.textArea.style.fontWeight = 'bold';\n this.textArea.style.fontStyle = 'italic';\n this.updateObjColl(item, objColl);\n }\n else {\n this.textSettings.bold = this.activeObj.textSettings.bold = true;\n this.textSettings.italic = this.activeObj.textSettings.italic = true;\n this.redrawText();\n this.updateUndoRedoObj(objColl);\n }\n break;\n }\n };\n ImageEditor.prototype.initZoomToolbarItem = function () {\n var _this = this;\n var leftItem = this.getLeftToolbarItem();\n var rightItem = this.getRightToolbarItem();\n var zoomItem = this.getZoomToolbarItem();\n this.defToolbarItems = leftItem.concat(zoomItem, rightItem);\n new Toolbar({\n width: '100%',\n items: this.defToolbarItems,\n clicked: this.defToolbarClicked.bind(this),\n created: function () {\n _this.renderSaveBtn();\n _this.wireZoomBtnEvents();\n _this.trigger('toolbarCreated', { toolbarType: 'zoom' });\n }\n }, '#' + this.element.id + '_toolbar');\n this.createLeftToolbarControls();\n this.enableDisableToolbarBtn();\n if (this.defToolbarItems.length > 0 && (!isNullOrUndefined(document.getElementById(this.element.id + '_toolbar')))) {\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n var toolbar_8 = getComponent(this.element.id + '_toolbar', 'toolbar');\n toolbar_8.refreshOverflow();\n }\n };\n ImageEditor.prototype.refreshUndoRedoColl = function () {\n this.undoRedoColl = this.undoRedoColl.slice(0, this.undoRedoStep);\n this.appliedUndoRedoColl = this.appliedUndoRedoColl.slice(0, this.undoRedoStep);\n this.isUndoRedo = this.currObjType.isUndoAction = false;\n this.enableDisableToolbarBtn();\n };\n ImageEditor.prototype.applyPreviewFilter = function () {\n if (!isNullOrUndefined(document.querySelector('#' + this.element.id + '_sliderWrapper')) ||\n this.currObjType.isFiltered) {\n this.initialAdjustmentValue = this.canvasFilter = this.lowerContext.filter;\n this.currObjType.isFiltered = false;\n }\n };\n ImageEditor.prototype.contextualToolbarClicked = function (args) {\n var selEle = this.element.querySelector('.e-contextual-toolbar-wrapper .e-toolbar-item.e-selected');\n if (selEle) {\n selEle.classList.remove('e-selected');\n }\n var type = args.item.id.replace(this.element.id, '').split('_')[1];\n var imageFiltering = { filter: this.toPascalCase(type), cancel: false };\n this.trigger('imageFiltering', imageFiltering);\n if (imageFiltering.cancel) {\n return;\n }\n document.getElementById(args.item.id + 'Canvas').parentElement.parentElement.classList.add('e-selected');\n this.currObjType.isFiltered = true;\n this.setFilter(type.toLowerCase());\n this.currentFilter = args.item.id;\n this.enableDisableToolbarBtn();\n };\n ImageEditor.prototype.zoomInBtnClickHandler = function (e) {\n if ((this.zoomSettings.zoomTrigger & ZoomTrigger.Toolbar) === ZoomTrigger.Toolbar) {\n if (Browser.isDevice && e.type === 'touchstart') {\n if (!e.returnValue) {\n return;\n }\n e.preventDefault();\n }\n var zoomIn = document.querySelector('#' + this.element.id + '_zoomIn');\n EventHandler.trigger(zoomIn, 'click');\n if (this.isFreehandDrawEditing) {\n this.applyFreehandDraw();\n }\n this.applyPreviewFilter();\n this.currObjType.isFiltered = false;\n if (this.togglePen) {\n this.currObjType.isZoomed = true;\n this.freeHandDraw(false);\n this.updateCurrentUndoRedoColl('ok');\n }\n this.currentSelectionPoint = null;\n this.zoomAction(.1);\n }\n };\n ImageEditor.prototype.zoomOutBtnClickHandler = function (e) {\n if ((this.zoomSettings.zoomTrigger & ZoomTrigger.Toolbar) === ZoomTrigger.Toolbar) {\n if (Browser.isDevice && e.type === 'touchstart') {\n if (!e.returnValue) {\n return;\n }\n e.preventDefault();\n }\n var zoomOut = document.querySelector('#' + this.element.id + '_zoomOut');\n EventHandler.trigger(zoomOut, 'click');\n if (this.isFreehandDrawEditing) {\n this.applyFreehandDraw();\n }\n this.applyPreviewFilter();\n this.currObjType.isFiltered = false;\n if (this.togglePen) {\n this.currObjType.isZoomed = true;\n this.freeHandDraw(false);\n this.updateCurrentUndoRedoColl('ok');\n }\n this.currentSelectionPoint = null;\n this.zoomAction(-.1);\n }\n };\n ImageEditor.prototype.zoomInBtnMouseDownHandler = function (e) {\n e.preventDefault();\n this.zoomBtnHold = setInterval(this.zoomInBtnClickHandler.bind(this), 250);\n };\n ImageEditor.prototype.zoomOutBtnMouseDownHandler = function (e) {\n e.preventDefault();\n this.zoomBtnHold = setInterval(this.zoomOutBtnClickHandler.bind(this), 250);\n };\n ImageEditor.prototype.zoomBtnMouseUpHandler = function () {\n clearInterval(this.zoomBtnHold);\n this.zoomBtnHold = 0;\n };\n ImageEditor.prototype.defToolbarClicked = function (args) {\n var isContextualToolbar = false;\n var isFilterFinetune = false;\n if (this.element.querySelector('.e-contextual-toolbar-wrapper')) {\n if (!this.element.querySelector('.e-contextual-toolbar-wrapper').classList.contains('e-hide')) {\n isContextualToolbar = true;\n }\n this.element.querySelector('.e-contextual-toolbar-wrapper').classList.add('e-hide');\n isFilterFinetune = true;\n }\n if (!isNullOrUndefined(args.item)) {\n var type = args.item.id.replace(this.element.id + '_', '').toLowerCase();\n var imageEditorObj = getInstance(document.getElementById(this.element.id), ImageEditor_1);\n var isCropSelection = false;\n var panBtn = void 0;\n var splitWords = void 0;\n if (this.activeObj.shape !== undefined) {\n splitWords = this.activeObj.shape.split('-');\n }\n if (splitWords === undefined && this.currObjType.isCustomCrop) {\n isCropSelection = true;\n }\n else if (splitWords !== undefined && splitWords[0] === 'crop') {\n isCropSelection = true;\n }\n var isDisabledFilter = false;\n var isDisabledAdjustment = false;\n var zoomIn = document.querySelector('#' + this.element.id + '_zoomIn');\n var adjustment = document.querySelector('#' + this.element.id + '_adjustment');\n if (!isNullOrUndefined(adjustment) && adjustment.classList.contains('e-disabled')) {\n isDisabledAdjustment = true;\n }\n var filter = document.querySelector('#' + this.element.id + '_filter');\n if (!isNullOrUndefined(filter) && filter.classList.contains('e-disabled')) {\n isDisabledFilter = true;\n }\n this.enableDisableToolbarBtn();\n var duplicateObj = void 0;\n var objColl = void 0;\n if (!this.disabled) {\n switch (type) {\n case 'pan':\n this.currObjType.isCustomCrop = this.currObjType.isFiltered = false;\n if (this.currObjType.isUndoAction) {\n this.refreshUndoRedoColl();\n }\n if (isCropSelection) {\n this.currObjType.isCustomCrop = false;\n this.refreshActiveObj();\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n this.refreshMainToolbar();\n }\n if (this.togglePan) {\n this.cancelPan();\n this.disablePan = true;\n if (this.currentToolbar === 'pen') {\n this.freeHandDraw(true);\n }\n }\n else {\n panBtn = this.element.querySelector('.e-img-pan .e-btn');\n if (!isNullOrUndefined(panBtn)) {\n panBtn.classList.add('e-selected-btn');\n }\n imageEditorObj.pan(true);\n this.disablePan = false;\n }\n if (!isNullOrUndefined(zoomIn) && this.zoomSettings.zoomFactor >= this.zoomSettings.maxZoomFactor) {\n zoomIn.classList.add('e-disabled');\n zoomIn.parentElement.classList.add('e-overlay');\n }\n else if (!isNullOrUndefined(zoomIn)) {\n zoomIn.classList.remove('e-disabled');\n zoomIn.parentElement.classList.remove('e-overlay');\n }\n this.refreshMainToolbar();\n break;\n case 'cancel':\n this.performCancel(isContextualToolbar);\n break;\n case 'ok':\n this.okBtn();\n this.refreshDropDownBtn(false);\n this.currentToolbar = 'main';\n break;\n case 'crop':\n if (!isNullOrUndefined(this.currSelectionPoint)) {\n if (this.currObjType.isUndoAction) {\n this.refreshUndoRedoColl();\n }\n if (!isNullOrUndefined(this.cropObj.activeObj.shape)) {\n this.select(this.cropObj.activeObj.shape);\n }\n this.refreshToolbar('main', true, true);\n getComponent(this.element.querySelector('#' + this.element.id + '_cropBtn'), 'dropdown-btn').toggle();\n if (!isNullOrUndefined(this.activeObj.shape)) {\n document.getElementById(this.activeObj.shape.split('-')[1]).classList.add('e-selected');\n }\n }\n break;\n case 'reset':\n imageEditorObj.reset();\n this.currentToolbar = 'main';\n break;\n case 'undo':\n this.callUndo();\n break;\n case 'redo':\n this.callRedo();\n break;\n case 'adjustment':\n if (!isDisabledAdjustment) {\n this.refreshToolbar('adjustment');\n this.setTempFilterProperties();\n this.openSlider('brightness');\n }\n break;\n case 'brightness':\n case 'contrast':\n case 'hue':\n case 'saturation':\n case 'opacity':\n case 'blur':\n case 'exposure':\n this.openSlider(type);\n break;\n case 'filter':\n if (!isDisabledFilter) {\n this.refreshToolbar('filter');\n this.setTempFilterProperties();\n }\n break;\n case 'default':\n case 'chrome':\n case 'cold':\n case 'warm':\n case 'grayscale':\n case 'blackandwhite':\n case 'sepia':\n case 'invert':\n case 'sharpen':\n this.currObjType.isFiltered = true;\n this.setFilter(type);\n break;\n case 'duplicate':\n duplicateObj = extend({}, this.activeObj, {}, true);\n if (isNullOrUndefined(this.activeObj.currIndex)) {\n this.applyActObj();\n }\n else {\n this.applyActObj(true);\n }\n objColl = extend([], this.objColl, [], true);\n duplicateObj.activePoint.startX += 10;\n duplicateObj.activePoint.startY -= 10;\n duplicateObj.activePoint.endX += 10;\n duplicateObj.activePoint.endY -= 10;\n this.activeObj = duplicateObj;\n this.updateTrianglePoints(this.activeObj);\n this.drawObject('duplicate');\n this.updateUndoRedoObj(objColl);\n this.renderQuickAccessToolbar();\n break;\n case 'remove':\n this.deleteItem();\n break;\n case 'edittext':\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n this.renderTextArea(this.activeObj.activePoint.startX, this.activeObj.activePoint.startY, this.activeObj);\n if (!isNullOrUndefined(document.getElementById(this.element.id + '_quickAccessToolbarArea'))) {\n document.getElementById(this.element.id + '_quickAccessToolbarArea').style.display = 'none';\n }\n break;\n case 'upload':\n if (isFilterFinetune) {\n this.element.querySelector('.e-contextual-toolbar-wrapper').classList.remove('e-hide');\n }\n break;\n }\n }\n this.trigger('toolbarItemClicked', args);\n }\n };\n ImageEditor.prototype.performCancel = function (isContextualToolbar) {\n isContextualToolbar = isContextualToolbar ? isContextualToolbar : false;\n if (this.isFreehandDrawEditing) {\n this.cancelFreehandDraw();\n this.destroyQuickAccessToolbar();\n this.updateCurrentUndoRedoColl('cancel');\n }\n else if (this.textArea.style.display === 'block') {\n this.textArea.style.display = 'none';\n this.textArea.value = '';\n this.textArea.style.transform = '';\n if (!isNullOrUndefined(this.prevActObj)) {\n this.activeObj = this.prevActObj;\n this.prevActObj = null;\n }\n else {\n this.activeObj.strokeSettings = this.tempStrokeSettings;\n this.activeObj.textSettings = this.tempTextSettings;\n }\n this.updateCurrentUndoRedoColl('cancel');\n if (this.isShapeTextInserted) {\n this.refreshActiveObj();\n }\n this.applyActObj(true);\n this.refreshMainToolbar();\n }\n else if (!isNullOrUndefined(document.querySelector('#' + this.element.id + '_sliderWrapper')) ||\n this.currObjType.isFiltered) {\n this.lowerContext.filter = this.adjustmentValue = this.initialAdjustmentValue = this.tempAdjustmentValue;\n if (this.lowerContext.filter.split(' ').length > 1 &&\n this.lowerContext.filter.split(' ')[0].split('(')[1].split(')')[0] === '1') {\n this.isBrightnessAdjusted = false;\n }\n this.currentFilter = this.tempFilter;\n this.lowerContext.clearRect(0, 0, this.lowerCanvas.width, this.lowerCanvas.height);\n this.redrawImgWithObj();\n this.currObjType.isFiltered = false;\n this.adjustmentLevel = extend({}, this.tempAdjustmentLevel, {}, true);\n this.element.querySelector('.e-contextual-toolbar-wrapper').classList.add('e-hide');\n this.undoRedoStep = this.tempUndoRedoStep;\n this.upperCanvas.style.cursor = 'default';\n this.currObjType.isCustomCrop = false;\n this.tempStrokeSettings = { strokeColor: '#fff', fillColor: '', strokeWidth: null };\n this.callMainToolbar();\n this.updateCurrentUndoRedoColl('cancel');\n }\n else {\n if (isContextualToolbar) {\n this.callMainToolbar();\n }\n else {\n this.cancelItems();\n this.togglePan = this.dragCanvas = false;\n }\n }\n this.isShapeTextInserted = false;\n this.refreshDropDownBtn(false);\n this.currentToolbar = 'main';\n };\n ImageEditor.prototype.applyShape = function () {\n if (!isNullOrUndefined(this.activeObj.shape) && (this.activeObj.shape === 'rectangle' ||\n this.activeObj.shape === 'ellipse' || this.activeObj.shape === 'line' ||\n this.activeObj.shape === 'arrow' || this.activeObj.shape === 'text')) {\n this.redrawActObj();\n this.refreshActiveObj();\n this.currentToolbar = 'main';\n this.refreshMainToolbar();\n }\n };\n ImageEditor.prototype.applyFreehandDraw = function () {\n if (this.pointColl[this.freehandDrawSelectedIndex].strokeColor === '#42a5f5') {\n this.pointColl[this.freehandDrawSelectedIndex].strokeColor = this.tempFreeHandDrawEditingStyles.strokeColor;\n }\n this.selectedFreehandColor = '#42a5f5';\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n this.lowerContext.clearRect(0, 0, this.lowerCanvas.width, this.lowerCanvas.height);\n this.renderImage();\n this.refreshMainToolbar();\n if (!isNullOrUndefined(this.pointColl[this.freehandDrawSelectedIndex])) {\n this.pointColl[this.freehandDrawSelectedIndex].isSelected = false;\n }\n this.isFreehandDrawEditing = this.isFreehandDrawingPoint = false;\n this.freehandDrawHoveredIndex = this.freehandDrawSelectedIndex = null;\n };\n ImageEditor.prototype.cancelFreehandDraw = function () {\n this.selectedFreehandColor = '#42a5f5';\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n for (var n = 0; n < this.freehandCounter; n++) {\n this.pointColl[n].strokeColor = this.tempFreeHandDrawEditingStyles.strokeColor;\n this.pointColl[n].strokeWidth = this.tempFreeHandDrawEditingStyles.strokeWidth;\n }\n this.pointCounter = 0;\n if (!isNullOrUndefined(this.pointColl[this.freehandDrawSelectedIndex])) {\n this.pointColl[this.freehandDrawSelectedIndex].isSelected = false;\n }\n this.freehandDrawHoveredIndex = this.freehandDrawSelectedIndex = this.freehandDrawSelectedId = null;\n this.isFreehandDrawEditing = this.isFreehandDrawingPoint = false;\n this.activeObj.strokeSettings.strokeColor = this.tempFreeHandDrawEditingStyles.strokeColor;\n this.activeObj.strokeSettings.strokeWidth = this.penStrokeWidth = this.tempFreeHandDrawEditingStyles.strokeWidth;\n this.tempFreeHandDrawEditingStyles = { strokeColor: null, strokeWidth: null, fillColor: null };\n this.refreshMainToolbar();\n };\n ImageEditor.prototype.openSlider = function (type) {\n this.unselectBtn();\n this.currObjType.isFiltered = true;\n this.refreshToolbar('color', null, null, null, type);\n document.getElementById(this.element.id + '_' + type).classList.add('e-selected-btn');\n };\n ImageEditor.prototype.setTempFilterProperties = function () {\n this.upperCanvas.style.display = 'block';\n this.cropSelectedState();\n this.lowerContext.filter = this.initialAdjustmentValue;\n this.tempAdjustmentValue = this.lowerContext.filter;\n this.tempAdjustmentLevel = extend({}, this.adjustmentLevel, {}, true);\n this.tempFilter = this.currentFilter;\n this.tempUndoRedoStep = this.undoRedoStep;\n };\n ImageEditor.prototype.okBtn = function (isMouseDown) {\n var isCropSelection = false;\n var splitWords;\n if (this.activeObj.shape !== undefined) {\n splitWords = this.activeObj.shape.split('-');\n }\n if (splitWords === undefined && this.currObjType.isCustomCrop) {\n isCropSelection = true;\n }\n else if (splitWords !== undefined && splitWords[0] === 'crop') {\n isCropSelection = true;\n }\n var selElem = this.element.querySelector('.e-contextual-toolbar-wrapper .e-toolbar-item.e-selected');\n if (selElem) {\n this.currentFilter = selElem.children[0].children[0].id.replace('Canvas', '');\n }\n if (isCropSelection) {\n this.crop();\n }\n else if (this.togglePen) {\n this.freeHandDraw(false);\n this.updateCurrentUndoRedoColl('ok');\n }\n else if (this.textArea.style.display === 'block') {\n this.redrawActObj();\n }\n else if (!isNullOrUndefined(document.querySelector('#' + this.element.id + '_sliderWrapper')) ||\n this.currObjType.isFiltered) {\n this.initialAdjustmentValue = this.canvasFilter = this.lowerContext.filter;\n this.currObjType.isFiltered = false;\n this.updateCurrentUndoRedoColl('ok');\n }\n else if (this.isFreehandDrawEditing) {\n this.applyFreehandDraw();\n this.destroyQuickAccessToolbar();\n this.updateCurrentUndoRedoColl('ok');\n }\n else {\n this.applyActObj(isMouseDown);\n }\n this.callMainToolbar(false);\n this.isCropTab = false;\n this.zoomFactor = this.defaultZoomFactor;\n };\n ImageEditor.prototype.getZeroZoomPointCollValue = function (obj) {\n var currentObj = this.getCurrentObj();\n currentObj.objColl = extend([], this.objColl, [], true);\n currentObj.pointColl = extend([], this.pointColl, [], true);\n currentObj.afterCropActions = extend([], this.afterCropActions, [], true);\n var getZeroZoomPointColl = extend([], this.pointColl, [], true);\n if (this.zoomFactor > 0 && obj.length > 0) {\n this.pointColl = obj;\n var isUndoRedo = this.isUndoRedo;\n if (this.zoomFactor !== 0) {\n this.isUndoRedo = this.isCropTab = true;\n this.updateObjAndFreeHandDrawColl();\n var zoomSettings = extend({}, this.zoomSettings, null, true);\n if (this.zoomFactor > 0) {\n this.zoomAction(-this.zoomFactor);\n }\n else {\n this.zoomAction(Math.abs(this.zoomFactor));\n }\n this.zoomSettings = zoomSettings;\n this.isCropTab = false;\n this.isUndoRedo = isUndoRedo;\n getZeroZoomPointColl = extend([], this.pointColl, [], true);\n this.objColl = [];\n this.pointColl = [];\n this.freehandCounter = 0;\n this.setCurrentObj(currentObj);\n this.destLeft = currentObj.destPoints.startX;\n this.destTop = currentObj.destPoints.startY;\n this.totalPannedPoint = currentObj.totalPannedPoint;\n this.totalPannedClientPoint = currentObj.totalPannedClientPoint;\n this.totalPannedInternalPoint = currentObj.totalPannedInternalPoint;\n this.objColl = extend([], currentObj.objColl, [], true);\n this.pointColl = extend([], currentObj.pointColl, [], true);\n this.freehandCounter = this.pointColl.length;\n this.lowerContext.filter = 'none';\n this.iterateObjColl();\n this.freehandRedraw(this.lowerContext);\n this.updateCursorPointsForFreehandDrawing();\n this.lowerContext.filter = currentObj.filter;\n }\n }\n return getZeroZoomPointColl;\n };\n ImageEditor.prototype.getZeroZoomObjValue = function (obj) {\n var currentObj = this.getCurrentObj();\n currentObj.objColl = extend([], this.objColl, [], true);\n currentObj.pointColl = extend([], this.pointColl, [], true);\n currentObj.afterCropActions = extend([], this.afterCropActions, [], true);\n var getZeroZoomObjColl = extend([], this.objColl, [], true);\n if (this.zoomFactor > 0 && obj.length > 0) {\n this.objColl = obj;\n var isUndoRedo = this.isUndoRedo;\n if (this.zoomFactor !== 0) {\n this.isUndoRedo = this.isCropTab = true;\n this.updateObjAndFreeHandDrawColl();\n var zoomSettings = extend({}, this.zoomSettings, null, true);\n if (this.zoomFactor > 0) {\n this.zoomAction(-this.zoomFactor);\n }\n else {\n this.zoomAction(Math.abs(this.zoomFactor));\n }\n this.zoomSettings = zoomSettings;\n this.isCropTab = false;\n this.isUndoRedo = isUndoRedo;\n getZeroZoomObjColl = extend([], this.objColl, [], true);\n this.objColl = [];\n this.pointColl = [];\n this.freehandCounter = 0;\n this.setCurrentObj(currentObj);\n this.destLeft = currentObj.destPoints.startX;\n this.destTop = currentObj.destPoints.startY;\n this.totalPannedPoint = currentObj.totalPannedPoint;\n this.totalPannedClientPoint = currentObj.totalPannedClientPoint;\n this.totalPannedInternalPoint = currentObj.totalPannedInternalPoint;\n this.objColl = extend([], currentObj.objColl, [], true);\n this.pointColl = extend([], currentObj.pointColl, [], true);\n this.freehandCounter = this.pointColl.length;\n this.lowerContext.filter = 'none';\n this.iterateObjColl();\n this.freehandRedraw(this.lowerContext);\n this.updateCursorPointsForFreehandDrawing();\n this.lowerContext.filter = currentObj.filter;\n }\n }\n return getZeroZoomObjColl;\n };\n ImageEditor.prototype.updateCurrentUndoRedoColl = function (type) {\n if (type === 'ok') {\n this.isShapeTextInserted = false;\n if (this.currObjType.isUndoAction) {\n this.refreshUndoRedoColl();\n }\n if (isNullOrUndefined(this.appliedUndoRedoColl[this.appliedUndoRedoColl.length - 1])) {\n if (!isNullOrUndefined(this.undoRedoColl[0])) {\n this.undoRedoColl[this.undoRedoColl.length - 1].previousCropObj = this.undoRedoColl[0].previousCropObj;\n this.undoRedoColl[this.undoRedoColl.length - 1].previousObj = this.undoRedoColl[0].previousObj;\n this.undoRedoColl[this.undoRedoColl.length - 1].previousObjColl = this.undoRedoColl[0].previousObjColl;\n this.undoRedoColl[this.undoRedoColl.length - 1].previousPointColl = this.undoRedoColl[0].previousPointColl;\n this.undoRedoColl[this.undoRedoColl.length - 1].previousText = this.undoRedoColl[0].previousText;\n }\n }\n else {\n this.undoRedoColl[this.undoRedoColl.length - 1].previousCropObj =\n this.appliedUndoRedoColl[this.appliedUndoRedoColl.length - 1].currentCropObj;\n this.undoRedoColl[this.undoRedoColl.length - 1].previousObj =\n this.appliedUndoRedoColl[this.appliedUndoRedoColl.length - 1].currentObj;\n this.undoRedoColl[this.undoRedoColl.length - 1].previousObjColl =\n this.appliedUndoRedoColl[this.appliedUndoRedoColl.length - 1].currentObjColl;\n this.undoRedoColl[this.undoRedoColl.length - 1].previousPointColl =\n this.appliedUndoRedoColl[this.appliedUndoRedoColl.length - 1].currentPointColl;\n this.undoRedoColl[this.undoRedoColl.length - 1].previousText =\n this.appliedUndoRedoColl[this.appliedUndoRedoColl.length - 1].currentText;\n }\n if (!isNullOrUndefined(this.undoRedoColl[this.undoRedoColl.length - 1])) {\n this.undoRedoColl[this.undoRedoColl.length - 1].currentObjColl =\n this.getZeroZoomObjValue(this.undoRedoColl[this.undoRedoColl.length - 1].currentObjColl);\n this.undoRedoColl[this.undoRedoColl.length - 1].currentPointColl =\n this.getZeroZoomPointCollValue(this.undoRedoColl[this.undoRedoColl.length - 1].currentPointColl);\n this.appliedUndoRedoColl.push(this.undoRedoColl[this.undoRedoColl.length - 1]);\n }\n }\n if (this.appliedUndoRedoColl.length > 16) {\n this.appliedUndoRedoColl.splice(0, 1);\n }\n this.undoRedoColl = [];\n this.undoRedoColl = extend([], this.appliedUndoRedoColl, [], true);\n if (type === 'ok') {\n this.undoRedoStep = this.undoRedoColl.length;\n this.enableDisableToolbarBtn();\n }\n if (this.zoomFactor > 0) {\n this.dragCanvas = this.togglePan = true;\n }\n };\n ImageEditor.prototype.updateBrightnessFilter = function () {\n var splitWords = this.lowerContext.filter.split(' ');\n if (this.isBrightnessAdjusted && splitWords.length > 0 && !isNullOrUndefined(splitWords[4])) {\n var opacityValue = parseFloat(splitWords[4].split('(')[1]);\n splitWords[4] = 'opacity(' + (opacityValue - 0.3) + ')';\n this.lowerContext.filter = splitWords.join(' ');\n }\n };\n ImageEditor.prototype.isFreehandDrawIndex = function (index) {\n var isIndex = false;\n for (var i = 0; i < this.freehandCounter; i++) {\n if (parseInt(this.pointColl[i].id.split('_')[1], 10) - 1 === index) {\n isIndex = true;\n break;\n }\n }\n return isIndex;\n };\n ImageEditor.prototype.deleteFreehandDraw = function (index, isId) {\n if (this.isFreehandDrawIndex(index)) {\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n // eslint-disable-next-line\n var tempPointColl = extend({}, this.pointColl, {}, true);\n this.pointColl = {};\n var count = 0;\n if (isNullOrUndefined(isId)) {\n for (var i = 0; i < this.freehandCounter; i++) {\n if (i !== index) {\n this.pointColl[count] = tempPointColl[i];\n count++;\n }\n }\n }\n else {\n for (var i = 0; i < this.freehandCounter; i++) {\n if (parseInt(tempPointColl[i].id.split('_')[1], 10) - 1 !== index) {\n this.pointColl[count] = tempPointColl[i];\n count++;\n }\n }\n }\n this.freehandCounter -= 1;\n this.freehandDrawHoveredIndex = this.freehandDrawSelectedIndex = null;\n this.isFreehandDrawEditing = this.isFreehandDrawingPoint = false;\n this.renderImage();\n this.refreshMainToolbar();\n }\n };\n ImageEditor.prototype.unselectBtn = function () {\n if (document.querySelector('#' + this.element.id + '_brightness').classList.contains('e-selected-btn')) {\n document.querySelector('#' + this.element.id + '_brightness').classList.remove('e-selected-btn');\n }\n else if (document.querySelector('#' + this.element.id + '_contrast').classList.contains('e-selected-btn')) {\n document.querySelector('#' + this.element.id + '_contrast').classList.remove('e-selected-btn');\n }\n else if (document.querySelector('#' + this.element.id + '_hue').classList.contains('e-selected-btn')) {\n document.querySelector('#' + this.element.id + '_hue').classList.remove('e-selected-btn');\n }\n else if (document.querySelector('#' + this.element.id + '_saturation').classList.contains('e-selected-btn')) {\n document.querySelector('#' + this.element.id + '_saturation').classList.remove('e-selected-btn');\n }\n else if (document.querySelector('#' + this.element.id + '_opacity').classList.contains('e-selected-btn')) {\n document.querySelector('#' + this.element.id + '_opacity').classList.remove('e-selected-btn');\n }\n else if (document.querySelector('#' + this.element.id + '_blur').classList.contains('e-selected-btn')) {\n document.querySelector('#' + this.element.id + '_blur').classList.remove('e-selected-btn');\n }\n else if (document.querySelector('#' + this.element.id + '_exposure').classList.contains('e-selected-btn')) {\n document.querySelector('#' + this.element.id + '_exposure').classList.remove('e-selected-btn');\n }\n };\n ImageEditor.prototype.callUndo = function () {\n this.currObjType.isFiltered = false;\n if (this.zoomFactor === 0) {\n this.dragCanvas = this.togglePan = false;\n }\n if (this.element.querySelector('.e-contextual-toolbar-wrapper')) {\n this.element.querySelector('.e-contextual-toolbar-wrapper').classList.add('e-hide');\n }\n if (this.togglePen) {\n this.togglePen = false;\n this.upperCanvas.style.cursor = 'default';\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n }\n if (this.appliedUndoRedoColl.length > 0) {\n this.undoRedoColl = extend([], this.appliedUndoRedoColl, [], true);\n }\n this.undo();\n };\n ImageEditor.prototype.callRedo = function () {\n this.currObjType.isFiltered = false;\n if (this.zoomFactor === 0) {\n this.dragCanvas = this.togglePan = false;\n }\n if (this.appliedUndoRedoColl.length > 0) {\n this.undoRedoColl = extend([], this.appliedUndoRedoColl, [], true);\n }\n this.redo();\n };\n ImageEditor.prototype.refreshSlider = function () {\n var sliderWrapper = document.querySelector('#' + this.element.id + '_sliderWrapper');\n // eslint-disable-next-line\n var slider = document.querySelector('.e-slider');\n var hdrWrapper = document.querySelector('#' + this.element.id + '_headWrapper');\n if (hdrWrapper) {\n hdrWrapper.style.display = 'none';\n }\n if (!isNullOrUndefined(sliderWrapper) && !isNullOrUndefined(slider)) {\n slider.ej2_instances[0].destroy();\n sliderWrapper.remove();\n }\n };\n ImageEditor.prototype.iterateObjColl = function () {\n for (var i = 0; i < this.objColl.length; i++) {\n this.apply(this.objColl[i].shape, this.objColl[i]);\n this.refreshActiveObj();\n }\n };\n ImageEditor.prototype.updateAdjustment = function (type, value, isPreview) {\n this.lowerContext.clearRect(0, 0, this.lowerCanvas.width, this.lowerCanvas.height);\n var splitWords = this.lowerContext.filter.split(' ');\n var values = [];\n var opacityValue;\n var brightnessValue;\n if (splitWords[4] !== undefined) {\n opacityValue = parseFloat(splitWords[4].split('(')[1]);\n }\n if (splitWords[0] !== undefined) {\n brightnessValue = parseFloat(splitWords[0].split('(')[1]);\n }\n var brightness = this.getFilterValue(this.adjustmentLevel.brightness);\n var saturation = this.getFilterValue(this.adjustmentLevel.saturation);\n if (type !== 'brightness' && type !== 'contrast' && type !== 'hue' && type !== 'saturation' && type !== 'exposure'\n && type !== 'opacity' && type !== 'blur') {\n if (isNullOrUndefined(isPreview) && (this.adjustmentLevel.sharpen || this.adjustmentLevel.bw)) {\n this.isUndoRedo = true;\n var temp = this.lowerContext.filter;\n this.lowerContext.filter = 'none';\n this.iterateObjColl();\n this.freehandRedraw(this.lowerContext);\n this.lowerContext.filter = temp;\n this.isUndoRedo = false;\n }\n }\n if (brightness !== 1) {\n splitWords[4] = 'opacity(' + (opacityValue - 0.3) + ')';\n }\n var saturate;\n var bright;\n var saturatePercent;\n var contrast;\n var saturatePercentage;\n switch (type) {\n case 'brightness':\n if (parseFloat(splitWords[3].split('(')[1]) !== 100) {\n value += 0.1;\n }\n splitWords[0] = 'brightness(' + value + ')';\n this.adjustmentValue = splitWords.join(' ');\n break;\n case 'contrast':\n splitWords[1] = 'contrast(' + value + '%)';\n this.adjustmentValue = splitWords.join(' ');\n break;\n case 'hue':\n splitWords[2] = 'hue-rotate(' + value + 'deg)';\n this.adjustmentValue = splitWords.join(' ');\n break;\n case 'saturation':\n splitWords[3] = 'saturate(' + value + '%)';\n if (saturation !== 1) {\n splitWords[0] = 'brightness(' + (brightnessValue + 0.1) + ')';\n }\n this.adjustmentValue = splitWords.join(' ');\n break;\n case 'opacity':\n if (parseFloat(splitWords[0].split('(')[1]) !== 1) {\n value -= 0.2;\n }\n splitWords[4] = 'opacity(' + value + ')';\n this.adjustmentValue = splitWords.join(' ');\n break;\n case 'blur':\n splitWords[5] = 'blur(' + value + 'px)';\n this.adjustmentValue = splitWords.join(' ');\n break;\n case 'exposure':\n if (brightness !== 1) {\n splitWords[4] = 'opacity(' + (opacityValue - 0.3) + ')';\n }\n if (value > 1) {\n value -= 1;\n value += brightness;\n }\n else if (value < 1) {\n value = 1 - value;\n value = brightness - value;\n }\n splitWords[0] = 'brightness(' + value + ')';\n this.adjustmentValue = splitWords.join(' ');\n break;\n case 'chrome':\n saturate = this.getSaturationFilterValue(this.adjustmentLevel.saturation);\n saturate *= 100;\n value = saturate + (saturate * 0.4);\n splitWords[3] = 'saturate(' + value + '%)';\n values = this.adjustmentValue.split(' ');\n splitWords[0] = values[0];\n splitWords[1] = values[1];\n splitWords[2] = values[2];\n splitWords[4] = values[4];\n splitWords[5] = values[5];\n splitWords[6] = 'sepia(0%)';\n splitWords[7] = 'grayscale(0%)';\n splitWords[8] = 'invert(0%)';\n break;\n case 'cold':\n // Adjusting Brightness\n bright = this.getFilterValue(this.adjustmentLevel.brightness);\n bright *= 100;\n value = bright * 0.9;\n splitWords[0] = 'brightness(' + value + '%)';\n // Adjusting Contrast\n contrast = this.getFilterValue(this.adjustmentLevel.contrast);\n contrast *= 100;\n value = contrast + (contrast * 0.5);\n splitWords[1] = 'contrast(' + value + '%)';\n // Adjusting Saturation\n saturatePercentage = this.getSaturationFilterValue(this.adjustmentLevel.saturation);\n saturatePercentage *= 100;\n value = saturatePercentage;\n splitWords[3] = 'saturate(' + value + '%)';\n values = this.adjustmentValue.split(' ');\n splitWords[2] = values[2];\n splitWords[4] = values[4];\n splitWords[5] = values[5];\n splitWords[6] = 'sepia(0%)';\n splitWords[7] = 'grayscale(0%)';\n splitWords[8] = 'invert(0%)';\n break;\n case 'warm':\n saturatePercent = this.getSaturationFilterValue(this.adjustmentLevel.saturation);\n saturatePercent *= 100;\n value = saturatePercent + (saturatePercent * 0.4);\n splitWords[3] = 'saturate(' + value + '%)';\n splitWords[6] = 'sepia(25%)';\n values = this.adjustmentValue.split(' ');\n splitWords[0] = values[0];\n splitWords[1] = values[1];\n splitWords[2] = values[2];\n splitWords[4] = values[4];\n splitWords[5] = values[5];\n splitWords[7] = 'grayscale(0%)';\n splitWords[8] = 'invert(0%)';\n break;\n case 'grayscale':\n splitWords[7] = 'grayscale(100%)';\n values = this.adjustmentValue.split(' ');\n splitWords[0] = values[0];\n splitWords[1] = values[1];\n splitWords[2] = values[2];\n splitWords[3] = values[3];\n splitWords[4] = values[4];\n splitWords[5] = values[5];\n splitWords[6] = 'sepia(0%)';\n splitWords[8] = 'invert(0%)';\n break;\n case 'sepia':\n splitWords[6] = 'sepia(100%)';\n values = this.adjustmentValue.split(' ');\n splitWords[0] = values[0];\n splitWords[1] = values[1];\n splitWords[2] = values[2];\n splitWords[3] = values[3];\n splitWords[4] = values[4];\n splitWords[5] = values[5];\n splitWords[7] = 'grayscale(0%)';\n splitWords[8] = 'invert(0%)';\n break;\n case 'invert':\n splitWords[8] = 'invert(100%)';\n values = this.adjustmentValue.split(' ');\n splitWords[0] = values[0];\n splitWords[1] = values[1];\n splitWords[2] = values[2];\n splitWords[3] = values[3];\n splitWords[4] = values[4];\n splitWords[5] = values[5];\n splitWords[6] = 'sepia(0%)';\n splitWords[7] = 'grayscale(0%)';\n break;\n }\n if (type !== 'sharpen' && type !== 'blackandwhite') {\n if (isNullOrUndefined(isPreview)) {\n if (type === 'default') {\n splitWords = this.getDefaultCurrentFilter(splitWords);\n }\n this.lowerContext.filter = splitWords.join(' ');\n }\n splitWords = this.setTempFilterValue(brightness, isPreview, splitWords, type);\n this.isRotateZoom = true;\n this.updateCurrentTransformedState('initial');\n this.lowerContext.drawImage(this.baseImg, this.srcLeft, this.srcTop, this.srcWidth, this.srcHeight, this.destLeft, this.destTop, this.destWidth, this.destHeight);\n this.updateCurrentTransformedState('reverse');\n this.isRotateZoom = false;\n if (brightness !== 1) {\n splitWords[4] = 'opacity(' + opacityValue + ')';\n }\n else if (saturation !== 1) {\n splitWords[0] = 'brightness(' + brightnessValue + ')';\n }\n if (type === 'exposure' && brightness !== 1) {\n splitWords[0] = 'brightness(' + brightnessValue + ')';\n }\n if (type === 'saturation' && saturation !== 1) {\n splitWords[0] = 'brightness(' + brightnessValue + ')';\n }\n splitWords = this.setTempFilterValue(brightness, isPreview, splitWords, type);\n if (isNullOrUndefined(isPreview)) {\n this.lowerContext.filter = this.initialAdjustmentValue = splitWords.join(' ');\n }\n var tempFilter = this.lowerContext.filter;\n this.lowerContext.filter = this.getDefaultFilter();\n this.iterateObjColl();\n this.freehandRedraw(this.lowerContext);\n this.lowerContext.filter = tempFilter;\n if ((!isNullOrUndefined(this.currSelectionPoint) && this.currSelectionPoint.shape === 'crop-circle') || this.isCircleCrop) {\n this.cropCircle(this.lowerContext);\n }\n if (brightness === 1) {\n this.isBrightnessAdjusted = false;\n }\n else {\n this.isBrightnessAdjusted = true;\n }\n }\n var filter = splitWords.join(' ');\n return filter;\n };\n ImageEditor.prototype.autoEnablePan = function () {\n if (this.zoomFactor === 0) {\n this.dragCanvas = this.togglePan = false;\n this.pan(false);\n this.disablePan = false;\n }\n else if (!this.disablePan) {\n this.pan(true);\n }\n else if (this.disablePan) {\n this.pan(false);\n }\n };\n ImageEditor.prototype.setTempFilterValue = function (brightness, isPreview, splitWords, type) {\n if (isPreview && brightness !== 1) {\n var tempSplitWords = this.lowerContext.filter.split(' ');\n tempSplitWords[4] = splitWords[4];\n this.lowerContext.filter = tempSplitWords.join(' ');\n }\n else if (isPreview && type === 'default') {\n splitWords = this.getDefaultCurrentFilter(splitWords);\n }\n return splitWords;\n };\n ImageEditor.prototype.getDefaultCurrentFilter = function (splitWords) {\n var values = this.adjustmentValue.split(' ');\n splitWords[0] = values[0];\n splitWords[1] = values[1];\n splitWords[2] = values[2];\n splitWords[3] = values[3];\n splitWords[4] = values[4];\n splitWords[5] = values[5];\n splitWords[6] = 'sepia(0%)';\n splitWords[7] = 'grayscale(0%)';\n splitWords[8] = 'invert(0%)';\n return splitWords;\n };\n ImageEditor.prototype.renderSlider = function (type) {\n var canvasWrapper = document.querySelector('#' + this.element.id + '_contextualToolbarArea');\n var hdrWrapper = document.querySelector('#' + this.element.id + '_headWrapper');\n var labelWrapper = document.querySelector('#' + this.element.id + '_labelWrapper');\n if (!hdrWrapper) {\n hdrWrapper = canvasWrapper.appendChild(this.createElement('div', {\n id: this.element.id + '_headWrapper',\n styles: 'position: relative'\n }));\n labelWrapper = hdrWrapper.appendChild(this.createElement('label', {\n id: this.element.id + '_labelWrapper',\n styles: Browser.isDevice ? 'position: absolute; top: 25%; left: calc(50% - 150px); font-size: 15px; text-transform: capitalize; font-weight: 400;'\n : 'position: absolute; top: 25%; left: calc(50% - 226px); font-size: 15px; text-transform: capitalize; font-weight: 400;'\n }));\n }\n else {\n hdrWrapper.style.display = 'block';\n }\n labelWrapper.textContent = this.l10n.getConstant(this.toPascalCase(type));\n var sliderWrapper = hdrWrapper.appendChild(this.createElement('div', {\n id: this.element.id + '_sliderWrapper',\n styles: 'position: absolute'\n }));\n var value = this.getCurrAdjustmentValue(type);\n var min;\n var max;\n var slider;\n if (type === 'brightness' || type === 'contrast' || type === 'saturation' || type === 'exposure') {\n if (this.finetuneSettings) {\n if (type === 'brightness' && this.finetuneSettings.brightness) {\n min = this.finetuneSettings.brightness.min;\n max = this.finetuneSettings.brightness.max;\n }\n else if (type === 'contrast' && this.finetuneSettings.contrast) {\n min = this.finetuneSettings.contrast.min;\n max = this.finetuneSettings.contrast.max;\n }\n else if (type === 'saturation' && this.finetuneSettings.saturation) {\n min = this.finetuneSettings.saturation.min;\n max = this.finetuneSettings.saturation.max;\n }\n else if (type === 'exposure' && this.finetuneSettings.exposure) {\n min = this.finetuneSettings.exposure.min;\n max = this.finetuneSettings.exposure.max;\n }\n else {\n min = -100;\n max = 100;\n }\n }\n else {\n min = -100;\n max = 100;\n }\n slider = this.createSlider(min, max, value, type);\n }\n else if (type === 'hue' || type === 'blur' || type === 'opacity') {\n if (this.finetuneSettings) {\n if (type === 'hue' && this.finetuneSettings.hue) {\n min = this.finetuneSettings.hue.min;\n max = this.finetuneSettings.hue.max;\n }\n else if (type === 'blur' && this.finetuneSettings.blur) {\n min = this.finetuneSettings.blur.min;\n max = this.finetuneSettings.blur.max;\n }\n else if (type === 'opacity' && this.finetuneSettings.opacity) {\n min = this.finetuneSettings.opacity.min;\n max = this.finetuneSettings.opacity.max;\n }\n else {\n min = 0;\n max = 100;\n }\n }\n else {\n min = 0;\n max = 100;\n }\n slider = this.createSlider(min, max, value, type);\n }\n slider.appendTo('#' + this.element.id + '_sliderWrapper');\n sliderWrapper.style.left = (parseFloat(canvasWrapper.style.width) - parseFloat(slider.width)) / 2 + 'px';\n };\n ImageEditor.prototype.createSlider = function (min, max, value, type) {\n var _this = this;\n return new Slider({\n value: value,\n tooltip: { isVisible: true, placement: 'Before', showOn: 'Always' },\n type: 'MinRange',\n min: min,\n max: max,\n step: 10,\n width: Browser.isDevice ? '200px' : '300px',\n cssClass: 'e-slider',\n change: function (args) {\n _this.setCurrAdjustmentValue(type, args.value);\n _this.enableDisableToolbarBtn();\n }\n });\n };\n ImageEditor.prototype.getCurrAdjustmentValue = function (type) {\n var value;\n switch (type) {\n case 'brightness':\n value = this.adjustmentLevel.brightness;\n break;\n case 'contrast':\n value = this.adjustmentLevel.contrast;\n break;\n case 'hue':\n value = this.adjustmentLevel.hue;\n break;\n case 'saturation':\n value = this.adjustmentLevel.saturation;\n break;\n case 'opacity':\n value = this.adjustmentLevel.opacity;\n break;\n case 'blur':\n value = this.adjustmentLevel.blur;\n break;\n case 'exposure':\n value = this.adjustmentLevel.exposure;\n break;\n }\n return value;\n };\n ImageEditor.prototype.getFinetuneOption = function (type) {\n var option;\n switch (type) {\n case 'brightness':\n option = ImageFinetuneOption.Brightness;\n break;\n case 'contrast':\n option = ImageFinetuneOption.Contrast;\n break;\n case 'hue':\n option = ImageFinetuneOption.Hue;\n break;\n case 'saturation':\n option = ImageFinetuneOption.Saturation;\n break;\n case 'opacity':\n option = ImageFinetuneOption.Opacity;\n break;\n case 'blur':\n option = ImageFinetuneOption.Blur;\n break;\n case 'exposure':\n option = ImageFinetuneOption.Exposure;\n break;\n }\n return option;\n };\n ImageEditor.prototype.setCurrAdjustmentValue = function (type, value) {\n var finetuneValueChanging = { finetune: this.getFinetuneOption(this.toPascalCase(type)),\n value: value, cancel: false };\n this.trigger('finetuneValueChanging', finetuneValueChanging);\n if (finetuneValueChanging.cancel) {\n return;\n }\n switch (type) {\n case 'brightness':\n this.setBrightness(value);\n break;\n case 'contrast':\n this.setContrast(value);\n break;\n case 'hue':\n this.setHue(value);\n break;\n case 'saturation':\n this.setSaturation(value);\n break;\n case 'opacity':\n this.setOpacity(value);\n break;\n case 'blur':\n this.setBlur(value);\n break;\n case 'exposure':\n this.setExposure(value);\n break;\n }\n };\n ImageEditor.prototype.cancelPan = function () {\n this.applyActObj(true);\n var panBtn = this.element.querySelector('.e-img-pan .e-btn');\n if (!isNullOrUndefined(panBtn)) {\n panBtn.classList.remove('e-selected-btn');\n }\n this.pan(false);\n };\n ImageEditor.prototype.callMainToolbar = function (isApplyBtn, isZooming) {\n this.refreshToolbar('main', isApplyBtn, false, isZooming);\n };\n ImageEditor.prototype.setCurrSelectionPoints = function (isSetDimension) {\n this.srcLeft = 0;\n this.srcTop = 0;\n this.srcWidth = this.baseImg.width;\n this.srcHeight = this.baseImg.height;\n this.destLeft = this.cropDestPoints.startX;\n this.destTop = this.cropDestPoints.startY;\n this.destWidth = this.cropDestPoints.width;\n this.destHeight = this.cropDestPoints.height;\n this.lowerContext.clearRect(0, 0, this.lowerCanvas.width, this.lowerCanvas.height);\n if (isSetDimension) {\n this.setDestinationPoints();\n }\n this.currentTransformedState('initial');\n if (this.croppedDegree === 0 && this.degree === 0 && !isNullOrUndefined(this.currSelectionPoint)\n && this.currSelectionPoint.shape !== 'crop-circle' && this.currSelectionPoint.shape !== 'crop-square') {\n this.destLeft = this.cropDestPoints.startX;\n this.destTop = this.cropDestPoints.startY;\n this.destWidth = this.cropDestPoints.width;\n this.destHeight = this.cropDestPoints.height;\n }\n if (this.degree === 0) {\n this.destLeft += this.totalPannedInternalPoint.x;\n this.destTop += this.totalPannedInternalPoint.y;\n }\n this.updateBrightnessFilter();\n this.lowerContext.drawImage(this.baseImg, this.srcLeft, this.srcTop, this.srcWidth, this.srcHeight, this.destLeft, this.destTop, this.destWidth, this.destHeight);\n this.currentTransformedState('reverse', null, null, true);\n if (isNullOrUndefined(this.cropObj.activeObj.shape)) {\n var temp = this.lowerContext.filter;\n this.lowerContext.filter = 'none';\n this.iterateObjColl();\n this.freehandRedraw(this.lowerContext);\n this.lowerContext.filter = temp;\n this.currSelectionPoint = null;\n }\n else {\n if (this.cropObj.cropZoom > 0) {\n var isUndoRedo = this.isUndoRedo;\n this.isUndoRedo = true;\n var cropObjColl_1 = extend([], this.objColl, null, true);\n var cropPointColl_1 = extend([], this.pointColl, null, true);\n this.objColl = [];\n this.pointColl = [];\n this.freehandCounter = 0;\n this.objColl.push(this.currSelectionPoint);\n this.currSelectionPoint = null;\n this.zoomAction(this.cropObj.cropZoom);\n this.currSelectionPoint = extend({}, this.objColl[0], null, true);\n this.objColl = cropObjColl_1;\n this.pointColl = cropPointColl_1;\n this.freehandCounter = this.pointColl.length;\n this.isUndoRedo = isUndoRedo;\n }\n var destPoints = { startX: this.destLeft, startY: this.destTop, width: this.destWidth, height: this.destHeight };\n this.destLeft = this.currSelectionPoint.activePoint.startX;\n this.destTop = this.currSelectionPoint.activePoint.startY;\n this.destWidth = this.currSelectionPoint.activePoint.width;\n this.destHeight = this.currSelectionPoint.activePoint.height;\n this.zoomObjColl();\n this.zoomFreehandDrawColl();\n this.destLeft = destPoints.startX;\n this.destTop = destPoints.startY;\n this.destWidth = destPoints.width;\n this.destHeight = destPoints.height;\n if (this.cropObj.cropZoom === 0) {\n this.updatePannedRegion();\n }\n this.updateObjAndFreeHandDrawColl();\n var cropObjColl = extend([], this.objColl, null, true);\n var cropPointColl = extend([], this.pointColl, null, true);\n this.objColl = [];\n this.pointColl = [];\n this.freehandCounter = 0;\n this.setCurrentObj();\n var activeObj = extend({}, this.activeObj, null, true);\n this.refreshActiveObj();\n this.objColl = cropObjColl;\n this.pointColl = cropPointColl;\n this.freehandCounter = this.pointColl.length;\n this.zoomObjColl();\n this.zoomFreehandDrawColl();\n this.currSelectionPoint = null;\n if (this.degree === 0) {\n this.drawPannImage({ x: 0, y: 0 });\n }\n this.activeObj = activeObj;\n this.drawObject('duplicate');\n }\n };\n ImageEditor.prototype.updatePannedRegion = function () {\n var pannedPoint;\n if (this.degree % 90 === 0 && this.degree % 180 === 0) {\n pannedPoint = extend({}, this.cropObj.totalPannedPoint, null, true);\n }\n else {\n pannedPoint = extend({}, this.cropObj.totalPannedClientPoint, null, true);\n }\n if (this.currFlipState === this.cropObj.currFlipState) {\n this.panObjColl(-pannedPoint.x, -pannedPoint.y, '');\n this.panFreehandDrawColl(-pannedPoint.x, -pannedPoint.y, '');\n }\n else {\n if (this.currFlipState === 'horizontal' && this.cropObj.currFlipState === '' ||\n this.currFlipState === 'vertical' && this.cropObj.currFlipState === '') {\n this.panObjColl(-pannedPoint.x, -pannedPoint.y, '');\n this.panFreehandDrawColl(-pannedPoint.x, -pannedPoint.y, '');\n }\n else if (this.currFlipState === '' && this.cropObj.currFlipState === 'horizontal') {\n this.panObjColl(pannedPoint.x, -pannedPoint.y, '');\n this.panFreehandDrawColl(pannedPoint.x, -pannedPoint.y, '');\n }\n else if (this.currFlipState === '' && this.cropObj.currFlipState === 'vertical') {\n this.panObjColl(-pannedPoint.x, pannedPoint.y, '');\n this.panFreehandDrawColl(-pannedPoint.x, pannedPoint.y, '');\n }\n }\n };\n ImageEditor.prototype.updateObjAndFreeHandDrawColl = function () {\n for (var i = 0; i < this.objColl.length; i++) {\n this.objColl[i].imageRatio = { startX: ((this.objColl[i].activePoint.startX - this.destLeft) /\n this.destWidth), startY: ((this.objColl[i].activePoint.startY - this.destTop) / this.destHeight),\n endX: ((this.objColl[i].activePoint.endX - this.destLeft) / this.destWidth),\n endY: ((this.objColl[i].activePoint.endY - this.destTop) / this.destHeight),\n width: this.destWidth / this.objColl[i].activePoint.width, height: this.destHeight /\n this.objColl[i].activePoint.height };\n this.refreshActiveObj();\n }\n for (var n = 0; n < this.freehandCounter; n++) {\n this.points = extend([], this.pointColl[n].points, []);\n this.pointCounter = 0;\n var len = this.points.length;\n for (var l = 0; l < len; l++) {\n this.points[l].ratioX = (this.points[l].x - this.destLeft) / this.destWidth;\n this.points[l].ratioY = (this.points[l].y - this.destTop) / this.destHeight;\n }\n }\n };\n ImageEditor.prototype.cancelItems = function () {\n var isCropSelection = false;\n var splitWords;\n if (this.activeObj.shape !== undefined) {\n splitWords = this.activeObj.shape.split('-');\n }\n if (splitWords === undefined && this.currObjType.isCustomCrop) {\n isCropSelection = true;\n }\n else if (splitWords !== undefined && splitWords[0] === 'crop') {\n isCropSelection = true;\n }\n if (isCropSelection && this.isCropTab) {\n this.isCropTab = false;\n this.zoomFactor = this.defaultZoomFactor;\n }\n if (this.togglePen) {\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n this.togglePen = false;\n this.upperCanvas.style.cursor = 'default';\n // eslint-disable-next-line\n var tempPointsColl = extend([], this.pointColl, [], true);\n this.pointColl = {};\n for (var i = 0; i < this.tempFreehandCounter; i++) {\n this.pointColl[i] = tempPointsColl[i];\n }\n this.freehandCounter = this.tempFreehandCounter;\n this.currentFreehandDrawIndex = this.tempCurrentFreehandDrawIndex;\n this.activeObj.strokeSettings = this.strokeSettings = this.tempStrokeSettings;\n this.updateCurrentUndoRedoColl('cancel');\n this.isFreehandDrawCustomized = false;\n }\n else if (this.activeObj.shape === 'text') {\n this.textSettings = this.tempTextSettings;\n this.strokeSettings = this.tempStrokeSettings;\n if (isNullOrUndefined(this.activeObj.currIndex)) {\n this.refreshActiveObj();\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n }\n else {\n var len = this.appliedUndoRedoColl.length;\n if (!isNullOrUndefined(this.prevActObj) && !isNullOrUndefined(this.appliedUndoRedoColl[len - 1]) &&\n this.appliedUndoRedoColl[len - 1].currentObjColl[this.appliedUndoRedoColl[len - 1].currentObjColl.length - 1].currIndex\n === this.prevActObj.currIndex) {\n this.activeObj = this.prevActObj;\n this.prevActObj = null;\n }\n else {\n this.refreshActiveObj();\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n }\n if (!isNullOrUndefined(this.activeObj.shape) && this.activeObj.keyHistory === 'Enter Text' &&\n this.activeObj.activePoint.startX === this.textStartPoints.x\n && this.activeObj.activePoint.startY === this.textStartPoints.y) {\n this.refreshActiveObj();\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n this.drawShapeText();\n this.updateCurrentUndoRedoColl('cancel');\n this.applyActObj(true);\n }\n else if (!isNullOrUndefined(this.activeObj.shape)) {\n this.redrawText();\n this.redrawShape(this.activeObj);\n if (!isCropSelection && this.activeObj.topLeftCircle !== undefined) {\n this.applyActObj(true);\n }\n this.clearSelection();\n }\n }\n this.destroyQuickAccessToolbar();\n this.tempTextSettings = { text: 'Enter Text', fontFamily: 'Arial', fontSize: null, fontRatio: null, bold: false,\n italic: false, underline: false };\n }\n else if (this.activeObj.shape === 'rectangle' || this.activeObj.shape === 'ellipse'\n || this.activeObj.shape === 'line' || this.activeObj.shape === 'arrow') {\n this.strokeSettings = this.tempStrokeSettings;\n if (isNullOrUndefined(this.activeObj.currIndex)) {\n this.refreshActiveObj();\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n }\n else {\n var len = this.appliedUndoRedoColl.length;\n if (!isNullOrUndefined(this.prevActObj) && !isNullOrUndefined(this.appliedUndoRedoColl[len - 1]) &&\n this.appliedUndoRedoColl[len - 1].currentObjColl[this.appliedUndoRedoColl[len - 1].currentObjColl.length - 1].currIndex\n === this.prevActObj.currIndex) {\n this.activeObj = this.prevActObj;\n this.prevActObj = null;\n this.redrawShape(this.activeObj);\n this.updateCurrentUndoRedoColl('cancel');\n this.applyActObj(true);\n }\n else {\n this.refreshActiveObj();\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n }\n }\n this.destroyQuickAccessToolbar();\n }\n else if ((this.zoomFactor !== this.tempZoomFactor) || isCropSelection && isNullOrUndefined(this.currSelectionPoint)) {\n var length_1 = this.cropZoomFactor - this.tempZoomFactor;\n this.zoomFactor = this.cropZoomFactor;\n if (isNullOrUndefined(this.cropObj.activeObj.shape)) {\n if ((this.degree === 0 && this.totalPannedPoint.x === 0 && this.totalPannedPoint.y === 0) ||\n (this.degree !== 0 && this.totalPannedInternalPoint.x === 0 && this.totalPannedInternalPoint.y === 0 &&\n this.totalPannedClientPoint.x === 0 && this.totalPannedClientPoint.y === 0)) {\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n this.refreshActiveObj();\n if (length_1 > 0) {\n this.zoomAction(-length_1);\n }\n else {\n this.zoomAction(Math.abs(length_1));\n }\n this.cropZoomFactor = this.tempZoomFactor;\n this.currObjType.isCustomCrop = false;\n this.upperCanvas.style.cursor = 'default';\n this.currObjType.isCustomCrop = false;\n this.tempStrokeSettings = { strokeColor: '#fff', fillColor: '', strokeWidth: null };\n this.callMainToolbar();\n return;\n }\n }\n if (isNullOrUndefined(this.cropObj.activeObj.shape)) {\n if (this.degree === 0) {\n var activeObj = extend({}, this.activeObj, {});\n this.destLeft += (-this.totalPannedPoint.x);\n this.destTop += (-this.totalPannedPoint.y);\n this.drawPannImage({ x: -this.totalPannedPoint.x, y: -this.totalPannedPoint.y });\n this.updateFlipPan(activeObj);\n this.totalPannedPoint = { x: 0, y: 0 };\n }\n else {\n this.totalPannedClientPoint = { x: -this.totalPannedClientPoint.x, y: -this.totalPannedClientPoint.y };\n this.totalPannedInternalPoint = { x: -this.totalPannedInternalPoint.x, y: -this.totalPannedInternalPoint.y };\n this.rotatePan(true);\n this.totalPannedClientPoint = { x: 0, y: 0 };\n this.totalPannedInternalPoint = { x: 0, y: 0 };\n this.currentPannedPoint = { x: 0, y: 0 };\n }\n this.refreshActiveObj();\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n if (length_1 > 0) {\n this.zoomAction(-length_1);\n }\n else {\n this.zoomAction(Math.abs(length_1));\n }\n this.cropZoomFactor = this.tempZoomFactor;\n }\n else {\n this.isCancelAction = true;\n this.objColl = [];\n this.pointColl = [];\n var freehandCounter = this.freehandCounter;\n this.freehandCounter = 0;\n var cropObj = extend({}, this.cropObj, {});\n var afterCropActions = extend([], this.afterCropActions, {}, true);\n this.setCurrentObj();\n this.cropImg();\n this.cropObj = cropObj;\n this.afterCropActions = afterCropActions;\n this.objColl = extend([], this.cancelObjColl, [], true);\n this.pointColl = extend([], this.cancelPointColl, [], true);\n this.freehandCounter = freehandCounter;\n this.iterateObjColl();\n this.freehandRedraw(this.lowerContext);\n this.clearOuterCanvas(this.lowerContext);\n if (this.isCircleCrop) {\n this.cropCircle(this.lowerContext);\n }\n this.isCancelAction = false;\n }\n this.zoomFactor = this.defaultZoomFactor;\n this.enableDisableToolbarBtn();\n }\n else {\n this.refreshActiveObj();\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n this.updateCurrentUndoRedoColl('cancel');\n }\n this.upperCanvas.style.cursor = 'default';\n this.currObjType.isCustomCrop = false;\n this.tempStrokeSettings = { strokeColor: '#fff', fillColor: '', strokeWidth: null };\n this.callMainToolbar();\n };\n ImageEditor.prototype.freehandDownHandler = function (e, canvas) {\n this.freehandDrawObj.time = new Date().getTime();\n this.isFreehandDrawing = true;\n if (e.type === 'mousedown') {\n this.freehandDownPoint = { x: e.clientX, y: e.clientY };\n }\n else {\n this.freehandDownPoint = { x: e.touches[0].clientX, y: e.touches[0].clientY };\n }\n this.isFreehandPointMoved = false;\n EventHandler.add(canvas, 'mousemove touchmove', this.freehandMoveHandler, this);\n };\n ImageEditor.prototype.freehandUpHandler = function (e, canvas, context) {\n var rect = canvas.getBoundingClientRect();\n EventHandler.remove(canvas, 'mousemove touchmove', this.freehandMoveHandler);\n if (this.points.length === 0) {\n if (e.type === 'mouseup') {\n this.processPoint(e.clientX - rect.left, e.clientY - rect.top, true, context);\n }\n else {\n if (!this.isFreehandPointMoved) {\n this.processPoint(this.freehandDownPoint.x - rect.left, this.freehandDownPoint.y - rect.top, true, context);\n }\n }\n }\n context.closePath();\n var prevCropObj = extend({}, this.cropObj, {}, true);\n var prevObj = this.getCurrentObj();\n prevObj.objColl = extend([], this.objColl, [], true);\n prevObj.pointColl = extend([], this.pointColl, [], true);\n prevObj.afterCropActions = extend([], this.afterCropActions, [], true);\n this.pointColl[this.freehandCounter] = {};\n this.pointColl[this.freehandCounter].points = extend([], this.points);\n this.pointColl[this.freehandCounter].strokeColor = this.activeObj.strokeSettings.strokeColor;\n this.pointColl[this.freehandCounter].strokeWidth = this.penStrokeWidth;\n this.pointColl[this.freehandCounter].flipState = this.currFlipState;\n this.pointColl[this.freehandCounter].id = 'pen_' + (this.currentFreehandDrawIndex + 1);\n this.points = [];\n this.selPointColl[this.freehandCounter] = {};\n this.selPointColl[this.freehandCounter].points = extend([], this.selPoints);\n this.selPoints = [];\n this.pointCounter = 0;\n this.freehandCounter++;\n this.currentFreehandDrawIndex++;\n this.isFreehandDrawing = false;\n this.updateUndoRedoColl('freehanddraw', prevObj, prevObj.objColl, prevObj.pointColl, prevCropObj);\n };\n ImageEditor.prototype.freehandMoveHandler = function (e) {\n this.isFreehandPointMoved = true;\n var rect = this.upperCanvas.getBoundingClientRect();\n var x;\n var y;\n if (e.type === 'mousemove') {\n x = e.clientX - rect.left;\n y = e.clientY - rect.top;\n }\n else {\n x = e.touches[0].clientX - rect.left;\n y = e.touches[0].clientY - rect.top;\n }\n if (this.isFreehandDrawing) {\n this.processPoint(x, y, false, this.upperContext);\n }\n };\n ImageEditor.prototype.processPoint = function (x, y, mouseDown, context) {\n var lastPoint = this.point(x, y, new Date().getTime());\n lastPoint = this.points.length > 0 && this.points[this.points.length - 1];\n var isLastPointTooClose = lastPoint ? this.distanceTo(lastPoint) <= 5 : false;\n var controlPoint1;\n var controlPoint2;\n var startPoint;\n var endPoint;\n this.selPoints.push({ x: x, y: y, ratioX: (x - this.destLeft) / this.destWidth, ratioY: (y - this.destTop) / this.destHeight,\n time: this.freehandDrawObj.time });\n if (!lastPoint || !(lastPoint && isLastPointTooClose) || mouseDown) {\n this.freehandDrawObj.time = new Date().getTime();\n this.points.push({ x: x, y: y, ratioX: (x - this.destLeft) / this.destWidth, ratioY: (y - this.destTop) / this.destHeight,\n time: this.freehandDrawObj.time });\n if (this.points.length > 3) {\n controlPoint1 = (this.calcCurveControlPoints(this.points[this.pointCounter + 0], this.points[this.pointCounter + 1], this.points[this.pointCounter + 2])).controlPoint2;\n controlPoint2 = (this.calcCurveControlPoints(this.points[this.pointCounter + 1], this.points[this.pointCounter + 2], this.points[this.pointCounter + 3])).controlPoint1;\n startPoint = this.points[this.pointCounter + 1];\n endPoint = this.points[this.pointCounter + 2];\n var minStrokeWidth = 0.5;\n var maxStrokeWidth = 5;\n if (!isNullOrUndefined(this.penStrokeWidth)) {\n minStrokeWidth = maxStrokeWidth = this.penStrokeWidth;\n }\n this.startDraw(context, controlPoint1, controlPoint2, startPoint, endPoint, minStrokeWidth, maxStrokeWidth);\n this.pointCounter++;\n }\n if (mouseDown) {\n controlPoint1 = controlPoint2 = startPoint = endPoint = { x: x, y: y, time: new Date().getTime() };\n var minStrokeWidth = 0.5;\n var maxStrokeWidth = 5;\n if (!isNullOrUndefined(this.penStrokeWidth)) {\n minStrokeWidth = maxStrokeWidth = this.penStrokeWidth;\n }\n this.startDraw(context, controlPoint1, controlPoint2, startPoint, endPoint, minStrokeWidth, maxStrokeWidth);\n }\n }\n };\n ImageEditor.prototype.calcCurveControlPoints = function (p1, p2, p3) {\n if (!p2) {\n p2 = p1;\n }\n if (!p3) {\n p3 = p2;\n }\n var dx1 = p1.x - p2.x;\n var dy1 = p1.y - p2.y;\n var dx2 = p2.x - p3.x;\n var dy2 = p2.y - p3.y;\n var m1 = { x: (p1.x + p2.x) / 2.0, y: (p1.y + p2.y) / 2.0 };\n var m2 = { x: (p2.x + p3.x) / 2.0, y: (p2.y + p3.y) / 2.0 };\n var l1 = Math.sqrt(dx1 * dx1 + dy1 * dy1);\n var l2 = Math.sqrt(dx2 * dx2 + dy2 * dy2);\n var dxm = (m1.x - m2.x);\n var dym = (m1.y - m2.y);\n var k = l2 / (l1 + l2);\n var cm = { x: m2.x + dxm * k, y: m2.y + dym * k };\n var tx = p2.x - cm.x;\n var ty = p2.y - cm.y;\n return {\n controlPoint1: this.point(m1.x + tx, m1.y + ty, 0),\n controlPoint2: this.point(m2.x + tx, m2.y + ty, 0)\n };\n };\n ImageEditor.prototype.point = function (x, y, time) {\n this.freehandDrawObj.pointX = x;\n this.freehandDrawObj.pointY = y;\n return { x: this.freehandDrawObj.pointX, y: this.freehandDrawObj.pointY, time: time };\n };\n ImageEditor.prototype.startDraw = function (context, controlPoint1, controlPoint2, startPoint, endPoint, minStrokeWidth, maxStrokeWidth) {\n var tempVelocity;\n tempVelocity = this.pointVelocity(startPoint);\n tempVelocity = 0.7 * tempVelocity + (1 - 0.7) * this.freehandDrawObj.lastVelocity;\n var newWidth = Math.max(maxStrokeWidth / (0.7 + 1), minStrokeWidth);\n this.drawCurve(this.freehandDrawObj.time, newWidth, context, controlPoint1, controlPoint2, startPoint, endPoint, maxStrokeWidth);\n this.freehandDrawObj.lastVelocity = tempVelocity;\n this.freehandDrawObj.time = newWidth;\n };\n ImageEditor.prototype.pointVelocity = function (startPoint) {\n return (this.freehandDrawObj.time !== startPoint.time) ? this.distanceTo(startPoint) /\n (this.freehandDrawObj.time - startPoint.time) : 0;\n };\n ImageEditor.prototype.distanceTo = function (start) {\n return Math.sqrt(Math.pow(this.freehandDrawObj.pointX - start.x, 2) + Math.pow(this.freehandDrawObj.pointY - start.y, 2));\n };\n ImageEditor.prototype.drawCurve = function (startWidth, endWidth, context, controlPoint1, controlPoint2, startPoint, endPoint, maxStrokeWidth) {\n var width;\n var i;\n var t1;\n var t2;\n var t3;\n var u1;\n var u2;\n var u3;\n var x;\n var y;\n var widthValue = endWidth - startWidth;\n var bezierLength = this.bezierLength(controlPoint1, controlPoint2, startPoint, endPoint);\n var drawSteps = Math.ceil(bezierLength) * 2;\n context.beginPath();\n for (i = 0; i < drawSteps; i++) {\n t1 = i / drawSteps;\n t2 = t1 * t1;\n t3 = t2 * t1;\n u1 = 1 - t1;\n u2 = u1 * u1;\n u3 = u2 * u1;\n x = u3 * startPoint.x;\n x += 3 * u2 * t1 * controlPoint1.x;\n x += 3 * u1 * t2 * controlPoint2.x;\n x += t3 * endPoint.x;\n y = u3 * startPoint.y;\n y += 3 * u2 * t1 * controlPoint1.y;\n y += 3 * u1 * t2 * controlPoint2.y;\n y += t3 * endPoint.y;\n width = Math.min(startWidth + t3 * widthValue, maxStrokeWidth);\n this.drawArc(x, y, width, context);\n }\n context.closePath();\n context.fill();\n };\n ImageEditor.prototype.bezierLength = function (controlPoint1, controlPoint2, startPoint, endPoint) {\n var steps = 10;\n var length = 0;\n var i;\n var t;\n var pointx1;\n var pointy1;\n var pointx2;\n var pointy2;\n var pointx3;\n var pointy3;\n for (i = 0; i <= steps; i++) {\n t = i / steps;\n pointx1 = this.bezierPoint(t, startPoint.x, controlPoint1.x, controlPoint2.x, endPoint.x);\n pointy1 = this.bezierPoint(t, startPoint.y, controlPoint1.y, controlPoint2.y, endPoint.y);\n if (i > 0) {\n pointx3 = pointx1 - pointx2;\n pointy3 = pointy1 - pointy2;\n length += Math.sqrt(pointx3 * pointx3 + pointy3 * pointy3);\n }\n pointx2 = pointx1;\n pointy2 = pointy1;\n }\n return length;\n };\n ImageEditor.prototype.bezierPoint = function (t, startpoint, cp1, cp2, endpoint) {\n return startpoint * (1.0 - t) * (1.0 - t) * (1.0 - t) + 3.0 * cp1 * (1.0 - t) * (1.0 - t) * t + 3.0 *\n cp2 * (1.0 - t) * t * t + endpoint * t * t * t;\n };\n ImageEditor.prototype.drawArc = function (x, y, size, context) {\n if ((x > this.destLeft && y > this.destTop && x < (this.destLeft + this.destWidth) && y < (this.destTop + this.destHeight) ||\n (context !== this.lowerContext && context !== this.upperContext))) {\n context.moveTo(x, y);\n context.arc(x, y, size, 0, 2 * Math.PI, false);\n }\n };\n ImageEditor.prototype.freehandRedraw = function (context, points) {\n var temp = context.filter;\n context.filter = 'none';\n if (!isNullOrUndefined(points)) {\n this.pointColl[this.freehandCounter] = {};\n this.pointColl[this.freehandCounter].points = points;\n this.pointColl[this.freehandCounter].strokeColor = this.activeObj.strokeSettings.strokeColor;\n this.pointColl[this.freehandCounter].strokeWidth = this.penStrokeWidth;\n this.pointColl[this.freehandCounter].flipState = this.currFlipState;\n this.freehandCounter++;\n }\n for (var n = 0; n < this.freehandCounter; n++) {\n this.points = extend([], this.pointColl[n].points);\n this.pointCounter = 0;\n var len = this.points.length;\n var controlPoint1 = void 0;\n var controlPoint2 = void 0;\n var startPoint = void 0;\n var endPoint = void 0;\n var minStrokeWidth = void 0;\n var maxStrokeWidth = void 0;\n if (len > 0) {\n context.fillStyle = this.pointColl[n].strokeColor;\n minStrokeWidth = maxStrokeWidth = this.penStrokeWidth = this.pointColl[n].strokeWidth;\n }\n if (len === 1) {\n controlPoint1 = controlPoint2 = startPoint = endPoint = this.points[0];\n this.startDraw(context, controlPoint1, controlPoint2, startPoint, endPoint, minStrokeWidth, maxStrokeWidth);\n }\n for (var l = 0; l < len - 3; l++) {\n if (this.points[l + 1] && this.points[l + 2] && this.points[l + 2]) {\n controlPoint1 = (this.calcCurveControlPoints(this.points[l + 0], this.points[l + 1], this.points[l + 2])).controlPoint2;\n controlPoint2 = (this.calcCurveControlPoints(this.points[l + 1], this.points[l + 2], this.points[l + 3])).controlPoint1;\n startPoint = this.points[l + 1];\n endPoint = this.points[l + 2];\n this.startDraw(context, controlPoint1, controlPoint2, startPoint, endPoint, minStrokeWidth, maxStrokeWidth);\n }\n }\n context.closePath();\n }\n context.filter = temp;\n };\n ImageEditor.prototype.redrawImgWithObj = function () {\n this.lowerContext.filter = this.canvasFilter;\n this.getCurrentFlipState();\n if (this.isCircleCrop) {\n this.cropCircle(this.lowerContext);\n }\n var tempFilter = this.lowerContext.filter;\n this.lowerContext.filter = this.getDefaultFilter();\n this.iterateObjColl();\n this.freehandRedraw(this.lowerContext);\n this.lowerContext.filter = tempFilter;\n };\n ImageEditor.prototype.refreshToolbar = function (type, isApplyBtn, isCropping, isZooming, cType) {\n if (!this.isImageLoaded) {\n return;\n }\n var args = { toolbarType: type };\n if (type !== 'filter' && type !== 'color') {\n if (document.getElementById(this.element.id + '_toolbar') && this.defToolbarItems.length > 0) {\n getComponent(document.getElementById(this.element.id + '_toolbar'), 'toolbar').destroy();\n }\n if (document.getElementById(this.element.id + '_bottomToolbar') && this.defToolbarItems.length > 0) {\n if (document.getElementById(this.element.id + '_bottomToolbar').className.indexOf('e-control') > -1) {\n getComponent(document.getElementById(this.element.id + '_bottomToolbar'), 'toolbar').destroy();\n }\n }\n }\n this.refreshSlider();\n switch (type) {\n case 'main':\n if (Browser.isDevice) {\n if (isCropping) {\n this.initToolbarItem(false, true, true);\n }\n else {\n this.initToolbarItem(false, true, null);\n }\n }\n else if (!Browser.isDevice || isZooming) {\n if (isZooming) {\n this.initToolbarItem(isApplyBtn, Browser.isDevice, null);\n }\n else {\n this.initToolbarItem(isApplyBtn, Browser.isDevice, null);\n }\n }\n if (Browser.isDevice) {\n this.initBottomToolbar();\n }\n break;\n case 'shapes':\n if (Browser.isDevice) {\n this.initToolbarItem(false, true, true);\n }\n if (this.activeObj.shape === 'line' || this.activeObj.shape === 'arrow') {\n args.toolbarItems = ['strokeColor', 'strokeWidth'];\n }\n else {\n args.toolbarItems = ['fillColor', 'strokeColor', 'strokeWidth'];\n }\n this.trigger('toolbarUpdating', args);\n this.initShapesToolbarItem(args.toolbarItems);\n break;\n case 'text':\n if (Browser.isDevice) {\n this.initToolbarItem(false, true, true);\n }\n args.toolbarItems = ['fontFamily', 'fontStyle', 'fontSize', 'fontColor'];\n this.trigger('toolbarUpdating', args);\n this.initTextToolbarItem(args.toolbarItems);\n break;\n case 'pen':\n if (Browser.isDevice) {\n this.initToolbarItem(false, true, true);\n }\n args.toolbarItems = ['strokeColor', 'strokeWidth'];\n this.trigger('toolbarUpdating', args);\n this.initPenToolbarItem(args.toolbarItems);\n break;\n case 'pan':\n this.initZoomToolbarItem();\n break;\n case 'adjustment':\n if (Browser.isDevice) {\n this.initToolbarItem(false, true, true);\n }\n this.initAdjustmentToolbarItem();\n break;\n case 'filter':\n this.updateContextualToolbar(type);\n break;\n case 'color':\n this.updateContextualToolbar(type, cType);\n break;\n }\n this.currToolbar = type;\n this.refreshDropDownBtn(isCropping);\n };\n ImageEditor.prototype.getAdjustmentToolbarItem = function () {\n var toolbarItems = [];\n if (isNullOrUndefined(this.toolbar) || (!isNullOrUndefined(this.toolbar) && this.toolbar.indexOf('Brightness') > -1)) {\n toolbarItems.push({ id: this.element.id + '_brightness', prefixIcon: 'e-icons e-brightness', cssClass: 'top-icon e-brightness',\n tooltipText: this.l10n.getConstant('Brightness'), align: 'Center' });\n }\n if (isNullOrUndefined(this.toolbar) || (!isNullOrUndefined(this.toolbar) && this.toolbar.indexOf('Contrast') > -1)) {\n toolbarItems.push({ id: this.element.id + '_contrast', prefixIcon: 'e-icons e-contrast', cssClass: 'top-icon e-contrast',\n tooltipText: this.l10n.getConstant('Contrast'), align: 'Center' });\n }\n if (isNullOrUndefined(this.toolbar) || (!isNullOrUndefined(this.toolbar) && this.toolbar.indexOf('Hue') > -1)) {\n toolbarItems.push({ id: this.element.id + '_hue', prefixIcon: 'e-icons e-fade', cssClass: 'top-icon e-fade',\n tooltipText: this.l10n.getConstant('Hue'), align: 'Center' });\n }\n if (isNullOrUndefined(this.toolbar) || (!isNullOrUndefined(this.toolbar) && this.toolbar.indexOf('Saturation') > -1)) {\n toolbarItems.push({ id: this.element.id + '_saturation', prefixIcon: 'e-icons e-saturation', cssClass: 'top-icon e-saturation',\n tooltipText: this.l10n.getConstant('Saturation'), align: 'Center' });\n }\n if (isNullOrUndefined(this.toolbar) || (!isNullOrUndefined(this.toolbar) && this.toolbar.indexOf('Exposure') > -1)) {\n toolbarItems.push({ id: this.element.id + '_exposure', prefixIcon: 'e-icons e-grain', cssClass: 'top-icon e-grain',\n tooltipText: this.l10n.getConstant('Exposure'), align: 'Center' });\n }\n if (isNullOrUndefined(this.toolbar) || (!isNullOrUndefined(this.toolbar) && this.toolbar.indexOf('Opacity') > -1)) {\n toolbarItems.push({ id: this.element.id + '_opacity', prefixIcon: 'e-icons e-opacity', cssClass: 'top-icon e-opacity',\n tooltipText: this.l10n.getConstant('Opacity'), align: 'Center' });\n }\n if (isNullOrUndefined(this.toolbar) || (!isNullOrUndefined(this.toolbar) && this.toolbar.indexOf('Blur') > -1)) {\n toolbarItems.push({ id: this.element.id + '_blur', prefixIcon: 'e-icons e-tint', cssClass: 'top-icon e-tint',\n tooltipText: this.l10n.getConstant('Blur'), align: 'Center' });\n }\n var tempToolbarItems = this.processToolbar('center');\n for (var i = 0, len = tempToolbarItems.length; i < len; i++) {\n toolbarItems.push(tempToolbarItems[i]);\n }\n if (!Browser.isDevice) {\n toolbarItems.push({ id: this.element.id + '_ok', prefixIcon: 'e-icons e-check', cssClass: 'top-icon e-tick',\n tooltipText: this.l10n.getConstant('OK'), align: 'Right' });\n toolbarItems.push({ id: this.element.id + '_cancel', prefixIcon: 'e-icons e-close', cssClass: 'top-icon e-save',\n tooltipText: this.l10n.getConstant('Cancel'), align: 'Right' });\n }\n return toolbarItems;\n };\n ImageEditor.prototype.getFilterToolbarItem = function () {\n var toolbarItems = [];\n if (isNullOrUndefined(this.toolbar) || (!isNullOrUndefined(this.toolbar) && this.toolbar.indexOf('Default') > -1)) {\n toolbarItems.push({ id: this.element.id + '_default', prefixIcon: 'e-icons e-none', cssClass: 'top-icon e-none',\n tooltipText: this.l10n.getConstant('Default'), align: 'Center',\n template: '
      ' + this.l10n.getConstant('Default') + '
      ' });\n }\n if (isNullOrUndefined(this.toolbar) || (!isNullOrUndefined(this.toolbar) && this.toolbar.indexOf('Chrome') > -1)) {\n toolbarItems.push({ id: this.element.id + '_chrome', prefixIcon: 'e-icons e-none', cssClass: 'top-icon e-none',\n tooltipText: this.l10n.getConstant('Chrome'), align: 'Center',\n template: '
      ' + this.l10n.getConstant('Chrome') + '
      ' });\n }\n if (isNullOrUndefined(this.toolbar) || (!isNullOrUndefined(this.toolbar) && this.toolbar.indexOf('Cold') > -1)) {\n toolbarItems.push({ id: this.element.id + '_cold', prefixIcon: 'e-icons e-none', cssClass: 'top-icon e-none',\n tooltipText: this.l10n.getConstant('Cold'), align: 'Center',\n template: '
      ' + this.l10n.getConstant('Cold') + '
      ' });\n }\n if (isNullOrUndefined(this.toolbar) || (!isNullOrUndefined(this.toolbar) && this.toolbar.indexOf('Warm') > -1)) {\n toolbarItems.push({ id: this.element.id + '_warm', prefixIcon: 'e-icons e-none', cssClass: 'top-icon e-none',\n tooltipText: this.l10n.getConstant('Warm'), align: 'Center',\n template: '
      ' + this.l10n.getConstant('Warm') + '
      ' });\n }\n if (isNullOrUndefined(this.toolbar) || (!isNullOrUndefined(this.toolbar) && this.toolbar.indexOf('Grayscale') > -1)) {\n toolbarItems.push({ id: this.element.id + '_grayscale', prefixIcon: 'e-icons e-none', cssClass: 'top-icon e-none',\n tooltipText: this.l10n.getConstant('Grayscale'), align: 'Center',\n template: '
      ' + this.l10n.getConstant('Grayscale') + '
      ' });\n }\n if (isNullOrUndefined(this.toolbar) || (!isNullOrUndefined(this.toolbar) && this.toolbar.indexOf('Sepia') > -1)) {\n toolbarItems.push({ id: this.element.id + '_sepia', prefixIcon: 'e-icons e-none', cssClass: 'top-icon e-none',\n tooltipText: this.l10n.getConstant('Sepia'), align: 'Center',\n template: '
      ' + this.l10n.getConstant('Sepia') + '
      ' });\n }\n if (isNullOrUndefined(this.toolbar) || (!isNullOrUndefined(this.toolbar) && this.toolbar.indexOf('Invert') > -1)) {\n toolbarItems.push({ id: this.element.id + '_invert', prefixIcon: 'e-icons e-none', cssClass: 'top-icon e-none',\n tooltipText: this.l10n.getConstant('Invert'), align: 'Center',\n template: '
      ' + this.l10n.getConstant('Invert') + '
      ' });\n }\n var tempToolbarItems = this.processToolbar('center');\n for (var i = 0, len = tempToolbarItems.length; i < len; i++) {\n toolbarItems.push(tempToolbarItems[i]);\n }\n return toolbarItems;\n };\n ImageEditor.prototype.getPenToolbarItem = function (items) {\n var toolbarItems = [];\n if (items.indexOf('strokeColor') > -1) {\n toolbarItems.push({ prefixIcon: 'e-icons e-copy', id: this.element.id + '_pen_strokecolor',\n cssClass: 'top-icon e-pen-stroke-color',\n tooltipText: this.l10n.getConstant('StrokeColor'), align: 'Center', type: 'Input',\n template: '' });\n }\n if (items.indexOf('strokeWidth') > -1) {\n toolbarItems.push({ prefixIcon: 'e-icons e-copy', cssClass: 'top-icon e-size',\n tooltipText: this.l10n.getConstant('StrokeWidth'),\n align: 'Center', type: 'Input', template: '' });\n }\n var tempToolbarItems = this.processSubToolbar(items);\n for (var i = 0, len = tempToolbarItems.length; i < len; i++) {\n toolbarItems.push(tempToolbarItems[i]);\n }\n if (!Browser.isDevice) {\n toolbarItems.push({ id: this.element.id + '_ok', prefixIcon: 'e-icons e-check', cssClass: 'top-icon e-tick',\n tooltipText: this.l10n.getConstant('OK'), align: 'Right' });\n toolbarItems.push({ id: this.element.id + '_cancel', prefixIcon: 'e-icons e-close', cssClass: 'top-icon e-save',\n tooltipText: this.l10n.getConstant('Cancel'), align: 'Right' });\n }\n return toolbarItems;\n };\n ImageEditor.prototype.initPenToolbarItem = function (items) {\n var _this = this;\n var leftItem = this.getLeftToolbarItem();\n var rightItem = this.getRightToolbarItem();\n var mainItem = this.getPenToolbarItem(items);\n var zoomItem = this.getZoomToolbarItem();\n if (Browser.isDevice) {\n this.defToolbarItems = mainItem;\n }\n else {\n this.defToolbarItems = leftItem.concat(zoomItem, mainItem, rightItem);\n }\n var toolbar = new Toolbar({\n width: '100%',\n items: this.defToolbarItems,\n clicked: this.defToolbarClicked.bind(this),\n created: function () {\n _this.createPenColor(items);\n _this.createPenBtn(items);\n _this.wireZoomBtnEvents();\n if (!Browser.isDevice) {\n _this.renderSaveBtn();\n }\n _this.trigger('toolbarCreated', { toolbarType: 'pen' });\n if (Browser.isDevice) {\n if (_this.defToolbarItems.length > 0 && (!isNullOrUndefined(document.getElementById(_this.element.id + '_toolbar')))) {\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n toolbar.refreshOverflow();\n }\n }\n else {\n _this.createLeftToolbarControls();\n if (_this.defToolbarItems.length > 0 && (!isNullOrUndefined(document.getElementById(_this.element.id + '_toolbar')))) {\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n toolbar.refreshOverflow();\n }\n }\n }\n });\n if (Browser.isDevice) {\n toolbar.appendTo('#' + this.element.id + '_bottomToolbar');\n }\n else {\n toolbar.appendTo('#' + this.element.id + '_toolbar');\n }\n this.enableDisableToolbarBtn();\n };\n ImageEditor.prototype.createPenColor = function (items) {\n var _this = this;\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var proxy = this;\n if (items.indexOf('strokeColor') > -1) {\n this.element.querySelector('.e-template.e-pen-stroke-color').appendChild(this.createElement('input', {\n id: this.element.id + '_pen_stroke'\n }));\n var penColor = new ColorPicker({\n modeSwitcher: false, value: '#fff',\n showButtons: false, mode: 'Palette', cssClass: 'e-pen-color',\n change: function (args) {\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n var temp = extend([], _this.pointColl, [], true);\n _this.updateFreehandDrawColorChange();\n var prevCropObj = extend({}, _this.cropObj, {}, true);\n var prevObj = _this.getCurrentObj();\n prevObj.objColl = extend([], _this.objColl, [], true);\n prevObj.pointColl = extend([], _this.pointColl, [], true);\n prevObj.afterCropActions = extend([], _this.afterCropActions, [], true);\n _this.pointColl = temp;\n proxy.isFreehandDrawCustomized = true;\n proxy.activeObj.strokeSettings.strokeColor = proxy.selectedFreehandColor = args.currentValue.hex;\n if (_this.isFreehandDrawEditing) {\n _this.upperContext.clearRect(0, 0, _this.upperCanvas.width, _this.upperCanvas.height);\n _this.pointColl[_this.freehandDrawSelectedIndex].strokeColor = args.currentValue.hex;\n _this.hoverFreehandraw(args.currentValue.hex);\n _this.updateUndoRedoColl('freehanddrawCustomized', prevObj, prevObj.objColl, prevObj.pointColl, prevCropObj);\n }\n else if (!proxy.togglePen) {\n proxy.redrawShape(_this.activeObj);\n }\n strokeDDB_3.element.children[0].style.backgroundColor = args.currentValue.rgba;\n strokeDDB_3.toggle();\n }\n }, '#' + this.element.id + '_pen_stroke');\n var strokeDDB_3 = new DropDownButton({\n open: function (args) {\n if (Browser.isDevice) {\n args.element.parentElement.style.top = strokeDDB_3.element.getBoundingClientRect().top -\n args.element.parentElement.offsetHeight + 'px';\n args.element.parentElement.style.left = _this.element.offsetLeft + 'px';\n }\n },\n target: '.e-pen-color',\n iconCss: 'e-dropdownbtn-preview'\n }, '#' + this.element.id + '_penColorBtn');\n penColor.inline = true;\n if (!isNullOrUndefined(this.freehandDrawSelectedIndex) && this.freehandDrawSelectedIndex > -1) {\n this.element.querySelector('.e-pen-stroke-color.e-template .e-dropdownbtn-preview').style.background\n = this.selectedFreehandColor === '#42a5f5' ? this.tempFreeHandDrawEditingStyles.strokeColor :\n this.pointColl[this.freehandDrawSelectedIndex].strokeColor;\n }\n else {\n this.element.querySelector('.e-pen-stroke-color.e-template .e-dropdownbtn-preview').style.background\n = '#fff';\n }\n }\n };\n ImageEditor.prototype.createPenBtn = function (items) {\n var _this = this;\n var strokeWidthItems = [\n { id: '1', text: this.l10n.getConstant('XSmall') },\n { id: '2', text: this.l10n.getConstant('Small') },\n { id: '3', text: this.l10n.getConstant('Medium') },\n { id: '4', text: this.l10n.getConstant('Large') },\n { id: '5', text: this.l10n.getConstant('XLarge') }\n ];\n if (items.indexOf('strokeWidth') > -1) {\n var strokeWidthBtn = document.getElementById(this.element.id + '_penStrokeWidth');\n var spanElem_3 = document.createElement('span');\n if (!isNullOrUndefined(this.freehandDrawSelectedIndex) && this.freehandDrawSelectedIndex > -1) {\n spanElem_3.innerHTML = this.getPenStroke(this.pointColl[this.freehandDrawSelectedIndex].strokeWidth);\n }\n else {\n spanElem_3.innerHTML = this.l10n.getConstant('Small');\n }\n spanElem_3.className = 'e-pen-stroke-width';\n strokeWidthBtn.appendChild(spanElem_3);\n var drpDownBtn_2 = new DropDownButton({ items: strokeWidthItems,\n open: function (args) {\n if (Browser.isDevice) {\n args.element.parentElement.style.top = drpDownBtn_2.element.getBoundingClientRect().top -\n args.element.parentElement.offsetHeight + 'px';\n }\n var activeBtn = spanElem_3.innerHTML;\n args.element.querySelector('[aria-label = ' + '\"' + activeBtn + '\"' + ']').classList.add('e-selected-btn');\n },\n select: function (args) {\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n var temp = extend([], _this.pointColl, [], true);\n _this.updateFreehandDrawColorChange();\n var prevCropObj = extend({}, _this.cropObj, {}, true);\n var prevObj = _this.getCurrentObj();\n prevObj.objColl = extend([], _this.objColl, [], true);\n prevObj.pointColl = extend([], _this.pointColl, [], true);\n prevObj.afterCropActions = extend([], _this.afterCropActions, [], true);\n _this.pointColl = temp;\n _this.isFreehandDrawCustomized = true;\n spanElem_3.textContent = args.item.text;\n _this.setPenStroke(args.item.id);\n if (_this.isFreehandDrawEditing) {\n _this.upperContext.clearRect(0, 0, _this.upperCanvas.width, _this.upperCanvas.height);\n _this.hoverFreehandraw(null, _this.penStrokeWidth);\n _this.pointColl[_this.freehandDrawSelectedIndex].strokeWidth = _this.penStrokeWidth;\n _this.updateUndoRedoColl('freehanddrawCustomized', prevObj, prevObj.objColl, prevObj.pointColl, prevCropObj);\n }\n if (Browser.isDevice) {\n if (!isNullOrUndefined(document.getElementById(_this.element.id + '_bottomToolbar'))) {\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n var toolbar_9 = getComponent(_this.element.id + '_bottomToolbar', 'toolbar');\n toolbar_9.refreshOverflow();\n }\n }\n else {\n if (!isNullOrUndefined(document.getElementById(_this.element.id + '_toolbar'))) {\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n var toolbar_10 = getComponent(_this.element.id + '_toolbar', 'toolbar');\n toolbar_10.refreshOverflow();\n }\n }\n }\n });\n // Render initialized DropDownButton.\n drpDownBtn_2.appendTo('#' + this.element.id + '_penStrokeWidth');\n }\n };\n ImageEditor.prototype.updateFreehandDrawColorChange = function () {\n if (!isNullOrUndefined(this.freehandDrawSelectedIndex) && !isNullOrUndefined(this.pointColl[this.freehandDrawSelectedIndex])\n && this.pointColl[this.freehandDrawSelectedIndex].strokeColor === '#42a5f5') {\n this.pointColl[this.freehandDrawSelectedIndex].strokeColor = this.tempFreeHandDrawEditingStyles.strokeColor;\n }\n };\n ImageEditor.prototype.setPenStroke = function (args) {\n switch (parseInt(args, 10)) {\n case 1:\n this.penStrokeWidth = 1;\n break;\n case 2:\n this.penStrokeWidth = 2;\n break;\n case 3:\n this.penStrokeWidth = 3;\n break;\n case 4:\n this.penStrokeWidth = 4;\n break;\n case 5:\n this.penStrokeWidth = 5;\n break;\n }\n };\n ImageEditor.prototype.getPenStroke = function (value) {\n var textContent = '';\n if (value === 1) {\n textContent = this.l10n.getConstant('XSmall');\n }\n else if (value === 2) {\n textContent = this.l10n.getConstant('Small');\n }\n else if (value === 3) {\n textContent = this.l10n.getConstant('Medium');\n }\n else if (value === 4) {\n textContent = this.l10n.getConstant('Large');\n }\n else if (value === 5) {\n textContent = this.l10n.getConstant('XLarge');\n }\n return textContent;\n };\n ImageEditor.prototype.initAdjustmentToolbarItem = function () {\n var _this = this;\n var leftItem = this.getLeftToolbarItem(null);\n var rightItem = this.getRightToolbarItem();\n var mainItem = this.getAdjustmentToolbarItem();\n var zoomItem = this.getZoomToolbarItem();\n if (Browser.isDevice) {\n this.defToolbarItems = mainItem;\n }\n else {\n this.defToolbarItems = leftItem.concat(zoomItem, mainItem, rightItem);\n }\n var toolbar = new Toolbar({\n width: '100%',\n items: this.defToolbarItems,\n clicked: this.defToolbarClicked.bind(this),\n created: function () {\n _this.wireZoomBtnEvents();\n if (!Browser.isDevice) {\n _this.renderSaveBtn();\n }\n if (Browser.isDevice) {\n if (_this.defToolbarItems.length > 0 && (!isNullOrUndefined(document.getElementById(_this.element.id + '_toolbar')))) {\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n toolbar.refreshOverflow();\n }\n }\n else {\n _this.createLeftToolbarControls();\n if (_this.defToolbarItems.length > 0 && (!isNullOrUndefined(document.getElementById(_this.element.id + '_toolbar')))) {\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n toolbar.refreshOverflow();\n }\n }\n }\n });\n if (Browser.isDevice) {\n toolbar.appendTo('#' + this.element.id + '_bottomToolbar');\n }\n else {\n toolbar.appendTo('#' + this.element.id + '_toolbar');\n }\n this.enableDisableToolbarBtn();\n };\n ImageEditor.prototype.initFilterToolbarItem = function () {\n var _this = this;\n var mainItem = this.getFilterToolbarItem();\n if (document.querySelector('#' + this.element.id + '_contextualToolbar').classList.contains('e-control')) {\n getComponent(document.getElementById(this.element.id + '_contextualToolbar'), 'toolbar').destroy();\n }\n var toolbar = new Toolbar({\n width: '100%',\n items: mainItem,\n clicked: this.contextualToolbarClicked.bind(this),\n created: function () {\n _this.createCanvasFilter();\n if (_this.currentFilter === '') {\n _this.currentFilter = _this.element.id + '_default';\n }\n var hdrWrapper = document.querySelector('#' + _this.element.id + '_headWrapper');\n if (hdrWrapper) {\n hdrWrapper.style.display = 'none';\n }\n document.getElementById(_this.currentFilter + 'Canvas').parentElement.parentElement.classList.add('e-selected');\n _this.enableDisableToolbarBtn();\n toolbar.refreshOverflow();\n }\n });\n toolbar.appendTo('#' + this.element.id + '_contextualToolbar');\n };\n ImageEditor.prototype.getCurrentCanvasData = function () {\n var tempFilter = this.lowerContext.filter;\n this.lowerContext.filter = 'none';\n var objColl = extend([], this.objColl, null, true);\n this.objColl = [];\n this.renderImage();\n var data = this.lowerContext.getImageData(this.destLeft, this.destTop, this.destWidth, this.destHeight);\n this.objColl = objColl;\n this.iterateObjColl();\n this.lowerContext.filter = tempFilter;\n return data;\n };\n ImageEditor.prototype.createCanvasFilter = function () {\n var imageData = this.getCurrentCanvasData();\n this.inMemoryCanvas.width = imageData.width;\n this.inMemoryCanvas.height = imageData.height;\n this.inMemoryContext.putImageData(imageData, 0, 0);\n var ctx;\n var noFilter = document.querySelector('#' + this.element.id + '_defaultCanvas');\n if (!isNullOrUndefined(noFilter)) {\n ctx = noFilter.getContext('2d');\n noFilter.style.width = '100px';\n noFilter.style.height = '100px';\n ctx.filter = this.updateAdjustment('default', null, true);\n ctx.drawImage(this.inMemoryCanvas, 0, 0, 300, 150);\n }\n var chrome = document.querySelector('#' + this.element.id + '_chromeCanvas');\n if (!isNullOrUndefined(chrome)) {\n ctx = chrome.getContext('2d');\n chrome.style.width = '100px';\n chrome.style.height = '100px';\n ctx.filter = this.updateAdjustment('chrome', null, true);\n ctx.drawImage(this.inMemoryCanvas, 0, 0, 300, 150);\n }\n var cold = document.querySelector('#' + this.element.id + '_coldCanvas');\n if (!isNullOrUndefined(cold)) {\n ctx = cold.getContext('2d');\n cold.style.width = '100px';\n cold.style.height = '100px';\n ctx.filter = this.updateAdjustment('cold', null, true);\n ctx.drawImage(this.inMemoryCanvas, 0, 0, 300, 150);\n }\n var warm = document.querySelector('#' + this.element.id + '_warmCanvas');\n if (!isNullOrUndefined(warm)) {\n ctx = warm.getContext('2d');\n warm.style.width = '100px';\n warm.style.height = '100px';\n ctx.filter = this.updateAdjustment('warm', null, true);\n ctx.drawImage(this.inMemoryCanvas, 0, 0, 300, 150);\n }\n var grayscale = document.querySelector('#' + this.element.id + '_grayscaleCanvas');\n if (!isNullOrUndefined(grayscale)) {\n ctx = grayscale.getContext('2d');\n grayscale.style.width = '100px';\n grayscale.style.height = '100px';\n ctx.filter = this.updateAdjustment('grayscale', null, true);\n ctx.drawImage(this.inMemoryCanvas, 0, 0, 300, 150);\n }\n var sepia = document.querySelector('#' + this.element.id + '_sepiaCanvas');\n if (!isNullOrUndefined(sepia)) {\n ctx = sepia.getContext('2d');\n sepia.style.width = '100px';\n sepia.style.height = '100px';\n ctx.filter = this.updateAdjustment('sepia', null, true);\n ctx.drawImage(this.inMemoryCanvas, 0, 0, 300, 150);\n }\n var invert = document.querySelector('#' + this.element.id + '_invertCanvas');\n if (!isNullOrUndefined(invert)) {\n ctx = invert.getContext('2d');\n invert.style.width = '100px';\n invert.style.height = '100px';\n ctx.filter = this.updateAdjustment('invert', null, true);\n ctx.drawImage(this.inMemoryCanvas, 0, 0, 300, 150);\n }\n };\n ImageEditor.prototype.callUpdateCurrentTransformedState = function () {\n var tempObjColl = extend([], this.objColl, [], true);\n var tempActiveObj = extend({}, this.activeObj, {}, true);\n this.objColl = [];\n this.refreshActiveObj();\n this.isRotateZoom = true;\n this.updateCurrentTransformedState('initial');\n this.lowerContext.clearRect(0, 0, this.lowerCanvas.width, this.lowerCanvas.height);\n if (this.degree === 0 && this.rotateFlipColl.length > 0) {\n this.destLeft += this.totalPannedPoint.x;\n this.destTop += this.totalPannedPoint.y;\n }\n this.destLeft += this.totalPannedInternalPoint.x;\n this.destTop += this.totalPannedInternalPoint.y;\n var temp = this.lowerContext.filter;\n if (this.degree === 0) {\n this.setDestPointsForFlipState();\n }\n this.updateBrightnessFilter();\n this.lowerContext.drawImage(this.baseImg, this.srcLeft, this.srcTop, this.srcWidth, this.srcHeight, this.destLeft, this.destTop, this.destWidth, this.destHeight);\n this.updateCurrentTransformedState('reverse');\n if (this.degree === 0 && this.rotateFlipColl.length > 0) {\n this.destLeft += this.totalPannedPoint.x;\n this.destTop += this.totalPannedPoint.y;\n }\n this.isRotateZoom = false;\n this.objColl = tempObjColl;\n var tempTogglePen = this.togglePen;\n this.togglePen = false;\n this.lowerContext.filter = 'none';\n this.iterateObjColl();\n this.destLeft += this.totalPannedInternalPoint.x;\n this.destTop += this.totalPannedInternalPoint.y;\n this.freehandRedraw(this.lowerContext);\n this.destLeft -= this.totalPannedInternalPoint.x;\n this.destTop -= this.totalPannedInternalPoint.y;\n this.togglePen = tempTogglePen;\n this.lowerContext.filter = temp;\n this.activeObj = tempActiveObj;\n };\n ImageEditor.prototype.updateCurrentTransformedState = function (type, isPreventDestination, isRotatePan) {\n if (this.rotateFlipColl.length > 0) {\n if (type === 'initial') {\n this.reverseTransformedState();\n if (isNullOrUndefined(isPreventDestination)) {\n this.setDestinationPoints();\n }\n }\n this.currentTransformedState(type, null, null, isRotatePan);\n }\n if (this.isCircleCrop || (!isNullOrUndefined(this.currSelectionPoint) && this.currSelectionPoint.shape === 'crop-circle')) {\n if (isRotatePan) {\n this.destLeft += this.totalPannedClientPoint.x;\n this.destTop += this.totalPannedClientPoint.y;\n }\n this.cropCircle(this.lowerContext);\n if (isRotatePan) {\n this.destLeft -= this.totalPannedClientPoint.x;\n this.destTop -= this.totalPannedClientPoint.y;\n }\n }\n };\n ImageEditor.prototype.reverseTransformedState = function () {\n this.lowerContext.setTransform(1, 0, 0, 1, 0, 0);\n };\n ImageEditor.prototype.currentTransformedState = function (type, isPreventDimension, context, isPreventCircleCrop) {\n context = context ? context : this.lowerContext;\n if (type === 'initial') {\n this.iterateRotateFlipColl(context, type);\n }\n else if (type === 'reverse') {\n this.iterateRotateFlipColl(context, type);\n this.setClientTransformedDimension(isPreventDimension);\n if (this.isCircleCrop || (!isNullOrUndefined(this.currSelectionPoint) && this.currSelectionPoint.shape === 'crop-circle' && isNullOrUndefined(isPreventCircleCrop))) {\n if (isPreventCircleCrop) {\n this.destLeft += this.totalPannedClientPoint.x;\n this.destTop += this.totalPannedClientPoint.y;\n }\n this.cropCircle(this.lowerContext);\n if (isPreventCircleCrop) {\n this.destLeft -= this.totalPannedClientPoint.x;\n this.destTop -= this.totalPannedClientPoint.y;\n }\n }\n }\n };\n ImageEditor.prototype.iterateRotateFlipColl = function (context, type) {\n if (type === 'initial') {\n for (var i = 0; i < this.rotateFlipColl.length; i++) {\n this.setTransform(context, this.rotateFlipColl[i]);\n }\n }\n else if (type === 'reverse') {\n for (var i = this.rotateFlipColl.length - 1; i >= 0; i--) {\n this.setTransform(context, this.rotateFlipColl[i], true);\n }\n }\n };\n ImageEditor.prototype.setTransform = function (context, value, isReverse) {\n if (isReverse && value === 90) {\n value = -90;\n }\n else if (isReverse && value === -90) {\n value = 90;\n }\n if (value === 'horizontal' && this.degree % 90 === 0 && this.degree % 180 !== 0) {\n value = 'vertical';\n }\n else if (value === 'vertical' && this.degree % 90 === 0 && this.degree % 180 !== 0) {\n value = 'horizontal';\n }\n this.isReverseRotate = this.isReverseFlip = true;\n if (isNullOrUndefined(isReverse)) {\n context.clearRect(0, 0, context.canvas.width, context.canvas.height);\n }\n switch (value) {\n case 90:\n case -90:\n context.translate(context.canvas.width / 2, context.canvas.height / 2);\n context.rotate(Math.PI / 180 * value);\n context.translate(-context.canvas.width / 2, -context.canvas.height / 2);\n break;\n case 'horizontal':\n context.translate(context.canvas.width, 0);\n context.scale(-1, 1);\n break;\n case 'vertical':\n context.translate(0, context.canvas.height);\n context.scale(1, -1);\n break;\n }\n this.isReverseRotate = this.isReverseFlip = false;\n };\n ImageEditor.prototype.isObjInsideCropRegion = function (obj) {\n var isInside = false;\n if (obj.activePoint.startX >= this.destLeft && obj.activePoint.endX <= (this.destLeft + this.destWidth)) {\n isInside = true;\n }\n else if (obj.activePoint.startX <= this.destLeft && obj.activePoint.endX >= this.destLeft) {\n isInside = true;\n }\n else if (obj.activePoint.startX <= (this.destLeft + this.destWidth) && obj.activePoint.endX >= (this.destLeft + this.destWidth)) {\n isInside = true;\n }\n else if (obj.activePoint.startY >= this.destTop && obj.activePoint.endY <= (this.destTop + this.destHeight)) {\n isInside = true;\n }\n else if (obj.activePoint.startY <= this.destTop && obj.activePoint.endY >= this.destTop) {\n isInside = true;\n }\n else if (obj.activePoint.startY <= (this.destTop + this.destHeight) && obj.activePoint.endY >= (this.destTop + this.destHeight)) {\n isInside = true;\n }\n return isInside;\n };\n ImageEditor.prototype.panFreehandDrawColl = function (xDiff, yDiff, panRegion) {\n // Updating point collection for panning\n for (var n = 0; n < this.freehandCounter; n++) {\n this.points = extend([], this.pointColl[n].points, []);\n this.pointCounter = 0;\n var len = this.points.length;\n for (var l = 0; l < len; l++) {\n if (panRegion === '' || panRegion === 'vertical') {\n this.points[l].x += xDiff;\n }\n else {\n this.points[l].x -= xDiff;\n }\n if (panRegion === '' || panRegion === 'horizontal') {\n this.points[l].y += yDiff;\n }\n else {\n this.points[l].y -= yDiff;\n }\n }\n }\n // Updating each points for cursor styles for panning\n for (var n = 0; n < this.freehandCounter; n++) {\n if (!isNullOrUndefined(this.selPointColl[n])) {\n this.selPoints = extend([], this.selPointColl[n].points, []);\n this.pointCounter = 0;\n var len = this.selPoints.length;\n for (var l = 0; l < len; l++) {\n if (panRegion === '' || panRegion === 'vertical') {\n this.selPoints[l].x += xDiff;\n }\n else {\n this.selPoints[l].x -= xDiff;\n }\n if (panRegion === '' || panRegion === 'horizontal') {\n this.selPoints[l].y += yDiff;\n }\n else {\n this.selPoints[l].y -= yDiff;\n }\n }\n }\n }\n this.freehandRedraw(this.lowerContext);\n };\n ImageEditor.prototype.panObjColl = function (xDiff, yDiff, panRegion) {\n for (var i = 0; i < this.objColl.length; i++) {\n if (panRegion === '' || panRegion === 'vertical') {\n this.objColl[i].activePoint.startX += xDiff;\n this.objColl[i].activePoint.endX += xDiff;\n }\n else {\n this.objColl[i].activePoint.startX -= xDiff;\n this.objColl[i].activePoint.endX -= xDiff;\n }\n if (panRegion === '' || panRegion === 'horizontal') {\n this.objColl[i].activePoint.startY += yDiff;\n this.objColl[i].activePoint.endY += yDiff;\n }\n else {\n this.objColl[i].activePoint.startY -= yDiff;\n this.objColl[i].activePoint.endY -= yDiff;\n }\n this.objColl[i].activePoint.width = this.objColl[i].activePoint.endX -\n this.objColl[i].activePoint.startX;\n this.objColl[i].activePoint.height = this.objColl[i].activePoint.endY -\n this.objColl[i].activePoint.startY;\n this.updateActiveObject(this.objColl[i].activePoint, this.objColl[i]);\n this.updateTrianglePoints(this.objColl[i]);\n var temp = this.lowerContext.filter;\n this.lowerContext.filter = 'none';\n this.apply(this.objColl[i].shape, this.objColl[i]);\n this.lowerContext.filter = temp;\n this.refreshActiveObj();\n }\n };\n ImageEditor.prototype.cropObjColl = function () {\n if (this.objColl.length > 0) {\n for (var i = 0; i < this.objColl.length; i++) {\n this.objColl[i].imageRatio = { startX: ((this.objColl[i].activePoint.startX -\n this.activeObj.activePoint.startX) / this.activeObj.activePoint.width),\n startY: ((this.objColl[i].activePoint.startY -\n this.activeObj.activePoint.startY) / this.activeObj.activePoint.height),\n endX: ((this.objColl[i].activePoint.endX -\n this.activeObj.activePoint.startX) / this.activeObj.activePoint.width),\n endY: ((this.objColl[i].activePoint.endY -\n this.activeObj.activePoint.startY) / this.activeObj.activePoint.height),\n width: this.activeObj.activePoint.width / this.objColl[i].activePoint.width,\n height: this.activeObj.activePoint.height / this.objColl[i].activePoint.height };\n if (this.objColl[i].shape === 'text') {\n this.objColl[i].textSettings.fontRatio = this.objColl[i].activePoint.width /\n this.objColl[i].textSettings.fontSize;\n }\n }\n }\n };\n ImageEditor.prototype.cropFreehandDrawColl = function () {\n // Update crop values to point collection\n for (var n = 0; n < this.freehandCounter; n++) {\n this.points = extend([], this.pointColl[n].points, []);\n this.pointCounter = 0;\n var len = this.points.length;\n for (var l = 0; l < len; l++) {\n this.points[l].ratioX = (this.points[l].x -\n this.activeObj.activePoint.startX) / this.activeObj.activePoint.width;\n this.points[l].ratioY = (this.points[l].y -\n this.activeObj.activePoint.startY) / this.activeObj.activePoint.height;\n }\n }\n // Update crop values to each poins for cursor styles\n for (var n = 0; n < this.freehandCounter; n++) {\n if (!isNullOrUndefined(this.selPointColl[n])) {\n this.selPoints = extend([], this.selPointColl[n].points, []);\n this.pointCounter = 0;\n var len = this.selPoints.length;\n for (var l = 0; l < len; l++) {\n this.selPoints[l].ratioX = (this.selPoints[l].x -\n this.activeObj.activePoint.startX) / this.activeObj.activePoint.width;\n this.selPoints[l].ratioY = (this.selPoints[l].y -\n this.activeObj.activePoint.startY) / this.activeObj.activePoint.height;\n }\n }\n }\n };\n ImageEditor.prototype.hoverFreehandraw = function (fillStyle, strokeWidth) {\n var context = this.upperContext;\n var idx = -1;\n if (this.freehandDrawHoveredIndex > -1) {\n idx = this.freehandDrawHoveredIndex;\n }\n else {\n idx = this.freehandDrawSelectedIndex;\n }\n this.points = extend([], this.pointColl[idx].points);\n this.pointCounter = 0;\n var len = this.points.length;\n var controlPoint1;\n var controlPoint2;\n var startPoint;\n var endPoint;\n var minStrokeWidth = 0;\n var maxStrokeWidth = 0;\n context.fillStyle = fillStyle ? fillStyle : this.pointColl[idx].strokeColor;\n context.strokeStyle = context.fillStyle;\n minStrokeWidth = maxStrokeWidth = this.penStrokeWidth = strokeWidth ?\n strokeWidth : this.pointColl[idx].strokeWidth;\n if (len === 1) {\n controlPoint1 = controlPoint2 = startPoint = endPoint = this.points[0];\n this.startDraw(context, controlPoint1, controlPoint2, startPoint, endPoint, minStrokeWidth, maxStrokeWidth);\n }\n for (var l = 0; l < len - 3; l++) {\n if (this.points[l + 1] && this.points[l + 2] && this.points[l + 2]) {\n controlPoint1 = (this.calcCurveControlPoints(this.points[l + 0], this.points[l + 1], this.points[l + 2])).controlPoint2;\n controlPoint2 = (this.calcCurveControlPoints(this.points[l + 1], this.points[l + 2], this.points[l + 3])).controlPoint1;\n startPoint = this.points[l + 1];\n endPoint = this.points[l + 2];\n this.startDraw(context, controlPoint1, controlPoint2, startPoint, endPoint, minStrokeWidth, maxStrokeWidth);\n }\n }\n context.closePath();\n // Outer selection\n var point = this.getSquarePointForFreehandDraw(idx);\n var tempLineWidth = context.lineWidth;\n context.lineWidth = 2;\n context.strokeStyle = this.themeColl[this.theme]['primaryColor'];\n context.beginPath();\n context.rect(point.startX, point.startY, point.width, point.height);\n context.stroke();\n context.closePath();\n context.lineWidth = tempLineWidth;\n };\n ImageEditor.prototype.pointsHorizontalFlip = function () {\n // Update flip value for point collection\n for (var n = 0; n < this.freehandCounter; n++) {\n if (this.pointColl[n].shapeFlip !== this.currFlipState) {\n this.points = extend([], this.pointColl[n].points, []);\n this.pointCounter = 0;\n var len = this.points.length;\n for (var l = 0; l < len; l++) {\n if (this.points[l].x <= this.destLeft + (this.destWidth / 2)) {\n this.points[l].x = (this.destLeft + this.destWidth) - (this.points[l].x - this.destLeft);\n }\n else if (this.points[l].x >= this.destLeft + (this.destWidth / 2)) {\n this.points[l].x = this.destLeft + (this.destLeft + this.destWidth - this.points[l].x);\n }\n this.points[l].ratioX = (this.points[l].x - this.destLeft) / this.destWidth;\n this.points[l].ratioY = (this.points[l].y - this.destTop) / this.destHeight;\n }\n this.pointColl[n].shapeFlip = this.currFlipState;\n }\n }\n // Update flip value for each points for cursor styles\n for (var n = 0; n < this.freehandCounter; n++) {\n if (!isNullOrUndefined(this.selPointColl[n])) {\n if (this.selPointColl[n].shapeFlip !== this.currFlipState) {\n this.selPoints = extend([], this.selPointColl[n].points, []);\n this.pointCounter = 0;\n var len = this.selPoints.length;\n for (var l = 0; l < len; l++) {\n if (this.selPoints[l].x <= this.destLeft + (this.destWidth / 2)) {\n this.selPoints[l].x = (this.destLeft + this.destWidth) - (this.selPoints[l].x -\n this.destLeft);\n }\n else if (this.selPoints[l].x >= this.destLeft + (this.destWidth / 2)) {\n this.selPoints[l].x = this.destLeft + (this.destLeft + this.destWidth -\n this.selPoints[l].x);\n }\n this.selPoints[l].ratioX = (this.selPoints[l].x - this.destLeft) / this.destWidth;\n this.selPoints[l].ratioY = (this.selPoints[l].y - this.destTop) / this.destHeight;\n }\n }\n }\n }\n this.updateCursorPointsForFreehandDrawing();\n };\n ImageEditor.prototype.pointsVerticalFlip = function () {\n // Update flip value for point collection\n for (var n = 0; n < this.freehandCounter; n++) {\n if (this.pointColl[n].shapeFlip !== this.currFlipState) {\n this.points = extend([], this.pointColl[n].points, []);\n this.pointCounter = 0;\n var len = this.points.length;\n for (var l = 0; l < len; l++) {\n if (this.points[l].y <= this.destTop + (this.destHeight / 2)) {\n this.points[l].y = (this.destTop + this.destHeight) - (this.points[l].y - this.destTop);\n }\n else if (this.points[l].y >= this.destTop + (this.destHeight / 2)) {\n this.points[l].y = this.destTop + (this.destTop + this.destHeight - this.points[l].y);\n }\n this.points[l].ratioX = (this.points[l].x - this.destLeft) / this.destWidth;\n this.points[l].ratioY = (this.points[l].y - this.destTop) / this.destHeight;\n }\n this.pointColl[n].shapeFlip = this.currFlipState;\n }\n }\n // Update flip value for each points for cursor styles\n for (var n = 0; n < this.freehandCounter; n++) {\n if (!isNullOrUndefined(this.selPointColl[n])) {\n if (this.selPointColl[n].shapeFlip !== this.currFlipState) {\n this.selPoints = extend([], this.selPointColl[n].points, []);\n this.pointCounter = 0;\n var len = this.selPoints.length;\n for (var l = 0; l < len; l++) {\n if (this.selPoints[l].y <= this.destTop + (this.destHeight / 2)) {\n this.selPoints[l].y = (this.destTop + this.destHeight) - (this.selPoints[l].y -\n this.destTop);\n }\n else if (this.selPoints[l].y >= this.destTop + (this.destHeight / 2)) {\n this.selPoints[l].y = this.destTop + (this.destTop + this.destHeight -\n this.selPoints[l].y);\n }\n this.selPoints[l].ratioX = (this.selPoints[l].x - this.destLeft) / this.destWidth;\n this.selPoints[l].ratioY = (this.selPoints[l].y - this.destTop) / this.destHeight;\n }\n }\n }\n }\n this.updateCursorPointsForFreehandDrawing();\n };\n ImageEditor.prototype.flipFreehandrawColl = function (value) {\n if (value.toLowerCase() === 'horizontal') {\n this.pointsHorizontalFlip();\n }\n else if (value.toLowerCase() === 'vertical') {\n this.pointsVerticalFlip();\n }\n else {\n this.pointsHorizontalFlip();\n for (var i = 0; i < this.freehandCounter; i++) {\n this.pointColl[i].shapeFlip = '';\n }\n this.pointsVerticalFlip();\n }\n };\n ImageEditor.prototype.rotateFreehandDrawColl = function () {\n // Update rotation points for point collection\n for (var n = 0; n < this.freehandCounter; n++) {\n this.points = extend([], this.pointColl[n].points, []);\n this.pointCounter = 0;\n var len = this.points.length;\n for (var l = 0; l < len; l++) {\n this.points[l].y = this.destTop + (this.destHeight * this.points[l].ratioX);\n this.points[l].x = (this.destLeft + this.destWidth) - (this.destWidth * this.points[l].ratioY);\n }\n }\n for (var n = 0; n < this.freehandCounter; n++) {\n this.points = extend([], this.pointColl[n].points, []);\n this.pointCounter = 0;\n var len = this.points.length;\n for (var l = 0; l < len; l++) {\n this.points[l].ratioX = (this.points[l].x - this.destLeft) / this.destWidth;\n this.points[l].ratioY = (this.points[l].y - this.destTop) / this.destHeight;\n }\n }\n // Update rotation points for each point for cursor styles\n for (var n = 0; n < this.freehandCounter; n++) {\n if (!isNullOrUndefined(this.selPointColl[n])) {\n this.selPoints = extend([], this.selPointColl[n].points, []);\n this.pointCounter = 0;\n var len = this.selPoints.length;\n for (var l = 0; l < len; l++) {\n this.selPoints[l].y = this.destTop + (this.destHeight * this.selPoints[l].ratioX);\n this.selPoints[l].x = (this.destLeft + this.destWidth) - (this.destWidth *\n this.selPoints[l].ratioY);\n }\n }\n }\n for (var n = 0; n < this.freehandCounter; n++) {\n if (!isNullOrUndefined(this.selPointColl[n])) {\n this.selPoints = extend([], this.selPointColl[n].points, []);\n this.pointCounter = 0;\n var len = this.selPoints.length;\n for (var l = 0; l < len; l++) {\n this.selPoints[l].ratioX = (this.selPoints[l].x - this.destLeft) / this.destWidth;\n this.selPoints[l].ratioY = (this.selPoints[l].y - this.destTop) / this.destHeight;\n }\n }\n }\n this.updateCursorPointsForFreehandDrawing();\n };\n ImageEditor.prototype.updateCursorPointsForFreehandDrawing = function () {\n for (var n = 0; n < this.freehandCounter; n++) {\n if (!isNullOrUndefined(this.selPointColl[n])) {\n this.selPoints = extend([], this.selPointColl[n].points, []);\n this.pointCounter = 0;\n var len = this.selPoints.length;\n for (var l = 0; l < len; l++) {\n this.selPoints[l].x = this.zoomX(this.selPoints[l].ratioX);\n this.selPoints[l].y = this.zoomY(this.selPoints[l].ratioY);\n }\n }\n }\n };\n ImageEditor.prototype.zoomFreehandDrawColl = function (isPreventApply) {\n // Updating point collection for zoom\n for (var n = 0; n < this.freehandCounter; n++) {\n this.points = extend([], this.pointColl[n].points, []);\n this.pointCounter = 0;\n var len = this.points.length;\n for (var l = 0; l < len; l++) {\n this.points[l].x = this.zoomX(this.points[l].ratioX);\n this.points[l].y = this.zoomY(this.points[l].ratioY);\n }\n }\n // Updating each points for cursor styles for zoom\n this.updateCursorPointsForFreehandDrawing();\n if (isNullOrUndefined(isPreventApply)) {\n this.freehandRedraw(this.lowerContext);\n }\n };\n ImageEditor.prototype.zoomX = function (x) {\n return (x * this.destWidth) + this.destLeft;\n };\n ImageEditor.prototype.zoomY = function (y) {\n return (y * this.destHeight) + this.destTop;\n };\n ImageEditor.prototype.zoomObjColl = function (preventApply) {\n for (var i = 0; i < this.objColl.length; i++) {\n this.objColl[i].activePoint.startX = (this.objColl[i].imageRatio.startX * this.destWidth) + this.destLeft;\n this.objColl[i].activePoint.startY = (this.objColl[i].imageRatio.startY * this.destHeight) + this.destTop;\n this.objColl[i].activePoint.endX = (this.objColl[i].imageRatio.endX * this.destWidth) + this.destLeft;\n this.objColl[i].activePoint.endY = (this.objColl[i].imageRatio.endY * this.destHeight) + this.destTop;\n this.objColl[i].activePoint.width = this.objColl[i].activePoint.endX -\n this.objColl[i].activePoint.startX;\n this.objColl[i].activePoint.height = this.objColl[i].activePoint.endY -\n this.objColl[i].activePoint.startY;\n if (this.objColl[i].shape === 'text') {\n this.updateFontSize(this.objColl[i]);\n }\n this.updateActiveObject(this.objColl[i].activePoint, this.objColl[i]);\n this.updateTrianglePoints(this.objColl[i]);\n if (isNullOrUndefined(preventApply)) {\n var temp = this.lowerContext.filter;\n this.lowerContext.filter = 'none';\n this.apply(this.objColl[i].shape, this.objColl[i]);\n this.refreshActiveObj();\n this.lowerContext.filter = temp;\n }\n }\n };\n ImageEditor.prototype.calcRatio = function () {\n var widthRatio;\n var heightRatio;\n if (this.degree === 0 || this.degree % 180 === 0) {\n widthRatio = this.baseImg.width / this.destWidth;\n heightRatio = this.baseImg.height / this.destHeight;\n }\n else {\n widthRatio = this.baseImg.height / this.destWidth;\n heightRatio = this.baseImg.width / this.destHeight;\n }\n return { width: widthRatio, height: heightRatio };\n };\n ImageEditor.prototype.drawCustomSelection = function (cropShape, startX, startY, width, height) {\n this.currObjType.isCustomCrop = true;\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n this.currObjType.shape = this.activeObj.shape = cropShape.toLowerCase();\n if (!isNullOrUndefined(startX) && !isNullOrUndefined(startY) && !isNullOrUndefined(width) && !isNullOrUndefined(height)) {\n this.activeObj.activePoint.startX = startX;\n this.activeObj.activePoint.startY = startY;\n this.activeObj.activePoint.endX = startX + width;\n this.activeObj.activePoint.endY = startY + height;\n this.activeObj.activePoint.width = width;\n this.activeObj.activePoint.height = height;\n }\n else {\n if (this.zoomFactor === 0) {\n if (this.destLeft >= 0 && this.destTop >= 0) {\n this.activeObj.activePoint.startX = this.destLeft;\n this.activeObj.activePoint.startY = this.destTop;\n this.activeObj.activePoint.endX = this.destLeft + this.destWidth;\n this.activeObj.activePoint.endY = this.destTop + this.destHeight;\n }\n else if (this.destLeft >= 0) {\n this.activeObj.activePoint.startX = this.destLeft;\n this.activeObj.activePoint.startY = 7.5;\n this.activeObj.activePoint.endX = this.destLeft + this.destWidth;\n this.activeObj.activePoint.endY = this.lowerCanvas.height - 15;\n }\n else if (this.destTop >= 0) {\n this.activeObj.activePoint.startX = 7.5;\n this.activeObj.activePoint.startY = this.destTop;\n this.activeObj.activePoint.endX = this.lowerCanvas.width - 15;\n this.activeObj.activePoint.endY = this.destTop + this.destHeight;\n }\n else {\n // arcRadius 7.5\n this.activeObj.activePoint.startX = 7.5;\n this.activeObj.activePoint.startY = 7.5;\n this.activeObj.activePoint.endX = this.lowerCanvas.width - 15;\n this.activeObj.activePoint.endY = this.lowerCanvas.height - 15;\n }\n }\n else {\n if (this.destLeft > 0) {\n this.activeObj.activePoint.startX = this.destLeft;\n }\n else {\n this.activeObj.activePoint.startX = 7.5;\n }\n if (this.destTop > 0) {\n this.activeObj.activePoint.startY = this.destTop;\n }\n else {\n this.activeObj.activePoint.startY = 7.5;\n }\n if (this.destLeft + this.destWidth + 15 < this.lowerCanvas.width) {\n this.activeObj.activePoint.endX = this.destLeft + this.destWidth - 15;\n }\n else {\n this.activeObj.activePoint.endX = this.lowerCanvas.width - 15;\n }\n if (this.destTop + this.destHeight + 15 < this.lowerCanvas.height) {\n this.activeObj.activePoint.endY = this.destTop + this.destHeight - 15;\n }\n else {\n this.activeObj.activePoint.endY = this.lowerCanvas.height - 15;\n }\n }\n if (this.activeObj.activePoint.startX < this.destLeft) {\n this.activeObj.activePoint.startX = this.destLeft;\n }\n if (this.activeObj.activePoint.startY < this.destTop) {\n this.activeObj.activePoint.startY = this.destTop;\n }\n if (this.activeObj.activePoint.endX > this.destLeft + this.destWidth) {\n this.activeObj.activePoint.endX = this.destLeft + this.destWidth;\n }\n if (this.activeObj.activePoint.endY > this.destTop + this.destHeight) {\n this.activeObj.activePoint.endY = this.destTop + this.destHeight;\n }\n if (this.activeObj.activePoint.startX === this.destLeft && this.destLeft + this.destWidth > this.lowerCanvas.clientWidth) {\n this.activeObj.activePoint.endX = this.lowerCanvas.clientWidth - 15;\n }\n if (this.activeObj.activePoint.startY === this.destTop && this.destTop + this.destHeight > this.lowerCanvas.clientHeight) {\n this.activeObj.activePoint.endY = this.lowerCanvas.clientHeight - 15;\n }\n this.activeObj.activePoint.width = this.activeObj.activePoint.endX - this.activeObj.activePoint.startX;\n this.activeObj.activePoint.height = this.activeObj.activePoint.endY - this.activeObj.activePoint.startY;\n this.updateActiveObject(this.activeObj.activePoint, this.activeObj);\n }\n this.updateSelectionInsert();\n this.drawObject('duplicate', this.activeObj, null, null, true);\n };\n ImageEditor.prototype.clearOuterCanvas = function (context) {\n var destLeft = this.destLeft;\n var destTop = this.destTop;\n if (this.currFlipState !== '') {\n this.destLeft = this.lowerCanvas.clientWidth - (this.destWidth + this.destLeft);\n this.destTop = this.lowerCanvas.clientHeight - (this.destHeight + this.destTop);\n }\n if (this.destWidth < this.lowerCanvas.width) {\n var left = this.destLeft > 0 ? this.destLeft : 0;\n context.clearRect(0, 0, left, this.lowerCanvas.height);\n context.clearRect(this.destLeft + this.destWidth, 0, left, this.lowerCanvas.height);\n }\n if (this.destHeight < this.lowerCanvas.height) {\n var top_1 = this.destTop > 0 ? this.destTop : 0;\n context.clearRect(0, 0, this.lowerCanvas.width, top_1);\n context.clearRect(0, this.destTop + this.destHeight, this.lowerCanvas.width, top_1);\n }\n if (this.currFlipState !== '') {\n this.destLeft = destLeft;\n this.destTop = destTop;\n }\n };\n ImageEditor.prototype.cropCircle = function (context, isSave, isFlip) {\n if (isFlip && this.currFlipState !== '') {\n this.setTransform(context, this.currFlipState);\n }\n context.globalCompositeOperation = 'destination-in';\n context.beginPath();\n if (isNullOrUndefined(isSave)) {\n context.arc(this.destLeft + (this.destWidth / 2), this.destTop + (this.destHeight / 2), this.destWidth / 2, 0, Math.PI * 2);\n }\n else {\n context.arc(this.destWidth / 2, this.destHeight / 2, this.destWidth / 2, 0, Math.PI * 2);\n }\n context.closePath();\n context.fill();\n context.restore();\n context.globalCompositeOperation = 'source-over';\n this.currObjType.isActiveObj = this.isCircleCrop = true;\n if (isFlip && this.currFlipState !== '') {\n this.setTransform(context, this.currFlipState);\n }\n };\n ImageEditor.prototype.updateCropObj = function () {\n this.afterCropActions = [];\n var obj = this.getCurrentObj();\n this.cropObj = extend({}, obj, {}, true);\n };\n ImageEditor.prototype.setCurrentObj = function (obj) {\n var isObj = obj ? true : false;\n obj = obj ? obj : this.cropObj;\n this.cropZoomFactor = obj.cropZoom;\n this.defaultZoomFactor = obj.defaultZoom;\n if (!isObj) {\n this.zoomFactor = obj.cropZoom;\n }\n else {\n if (!isNullOrUndefined(obj.activeObj.shape) && obj.activeObj.shape.split('-')[0] === 'crop') {\n this.zoomFactor = obj.cropZoom;\n }\n else {\n this.zoomFactor = obj.defaultZoom;\n }\n }\n this.setProperties({ zoomSettings: { zoomFactor: obj.zoomFactor } }, true);\n this.previousZoomValue = obj.previousZoomValue;\n this.totalPannedPoint = extend({}, obj.totalPannedPoint, {}, true);\n this.totalPannedClientPoint = extend({}, obj.totalPannedClientPoint, {}, true);\n this.totalPannedInternalPoint = extend({}, obj.totalPannedInternalPoint, {}, true);\n this.tempFlipPanPoint = extend({}, obj.tempFlipPanPoint, {}, true);\n this.rotateFlipColl = extend([], obj.rotateFlipColl, [], true);\n this.degree = obj.degree;\n this.currFlipState = obj.currFlipState;\n this.destLeft = obj.destPoints.startX;\n this.destTop = obj.destPoints.startY;\n this.destWidth = obj.destPoints.width;\n this.destHeight = obj.destPoints.height;\n this.srcLeft = obj.srcPoints.startX;\n this.srcTop = obj.srcPoints.startY;\n this.srcWidth = obj.srcPoints.width;\n this.srcHeight = obj.srcPoints.height;\n this.lowerContext.filter = obj.filter;\n if (this.lowerContext.filter.split(' ').length > 1) {\n if (this.lowerContext.filter.split(' ')[0].split('(')[1].split(')')[0] === '1') {\n this.isBrightnessAdjusted = false;\n }\n else {\n this.isBrightnessAdjusted = true;\n }\n }\n var isCircleCrop = this.isCircleCrop;\n var currSelectionPoint;\n if (isNullOrUndefined(this.currSelectionPoint)) {\n currSelectionPoint = null;\n }\n else {\n currSelectionPoint = extend({}, this.currSelectionPoint, {}, true);\n this.currSelectionPoint = null;\n }\n this.isCircleCrop = false;\n this.drawCropSelectionImage(obj, false);\n if (this.degree !== 0) {\n this.rotatePan();\n this.destLeft = obj.destPoints.startX;\n this.destTop = obj.destPoints.startY;\n this.totalPannedClientPoint = extend({}, obj.totalPannedClientPoint, {}, true);\n this.totalPannedInternalPoint = extend({}, obj.totalPannedInternalPoint, {}, true);\n }\n this.activeObj = extend({}, obj.activeObj, {}, true);\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n if (this.activeObj.activePoint.width !== 0 && this.activeObj.activePoint.height !== 0) {\n this.drawObject('duplicate', null, null, null, true);\n }\n var activeObj = extend({}, obj.activeObj, {}, true);\n var isAfterCropAction = false;\n this.afterCropActions = this.alignRotateFlipColl(this.afterCropActions);\n var afterCropActions = extend([], this.afterCropActions, [], true);\n if (!isObj && afterCropActions.length > 0) {\n isAfterCropAction = true;\n for (var i = 0; i < afterCropActions.length; i++) {\n if (this.degree % 90 === 0 && this.degree % 180 !== 0 &&\n (afterCropActions[i] === 'horizontalflip' || afterCropActions[i] === 'verticalflip')) {\n this.rotatedFlipCropSelection = true;\n }\n this.updateTransform(afterCropActions[i]);\n if (afterCropActions[i] === 'horizontalflip' || afterCropActions[i] === 'verticalflip') {\n if (afterCropActions.length === 1) {\n this.activeObj = extend({}, this.cropObj.activeObj, {}, true);\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n this.drawObject('duplicate', null, null, null, true);\n }\n }\n }\n activeObj = extend({}, this.activeObj, {}, true);\n this.totalPannedPoint = { x: 0, y: 0 };\n this.totalPannedClientPoint = { x: 0, y: 0 };\n this.totalPannedInternalPoint = { x: 0, y: 0 };\n this.activeObj = activeObj;\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n if (this.activeObj.activePoint.width !== 0 && this.activeObj.activePoint.height !== 0) {\n this.drawObject('duplicate', null, null, null, true);\n }\n if (obj.degree !== this.degree) {\n this.cropZoomFactor = this.zoomFactor = 0;\n }\n this.updateObjAndFreeHandDrawColl();\n if (this.rotatedFlipCropSelection) {\n this.rotatedFlipCropSelection = false;\n }\n }\n this.afterCropActions = afterCropActions;\n if (!this.isCancelAction && !isAfterCropAction) {\n this.updateObjAndFreeHandDrawColl();\n this.zoomFreehandDrawColl();\n this.destLeft = obj.destPoints.startX;\n this.destTop = obj.destPoints.startY;\n }\n this.activeObj = activeObj;\n this.isCircleCrop = isCircleCrop;\n if (isNullOrUndefined(currSelectionPoint)) {\n this.currSelectionPoint = null;\n }\n else {\n this.currSelectionPoint = extend({}, currSelectionPoint, {}, true);\n }\n };\n ImageEditor.prototype.drawCropSelectionImage = function (obj, isObj) {\n var temp = this.lowerContext.filter;\n this.upperContext.clearRect(0, 0, this.lowerCanvas.width, this.lowerCanvas.height);\n this.lowerContext.clearRect(0, 0, this.lowerCanvas.width, this.lowerCanvas.height);\n this.reverseTransformedState();\n if (isObj) {\n this.updateCurrentTransformedState('initial');\n }\n else {\n this.iterateRotateFlipColl(this.lowerContext, 'initial');\n }\n this.setDestPointsForFlipState();\n this.updateBrightnessFilter();\n this.lowerContext.drawImage(this.baseImg, this.srcLeft, this.srcTop, this.srcWidth, this.srcHeight, this.destLeft, this.destTop, this.destWidth, this.destHeight);\n if (isObj) {\n this.updateCurrentTransformedState('reverse');\n }\n else {\n this.iterateRotateFlipColl(this.lowerContext, 'reverse');\n }\n this.destLeft = this.cropObj.destPoints.startX;\n this.destTop = this.cropObj.destPoints.startY;\n var activeObj = extend({}, obj.activeObj, {}, true);\n this.lowerContext.filter = 'none';\n if (this.isCancelAction) {\n this.zoomObjColl();\n this.zoomFreehandDrawColl();\n }\n else {\n this.destLeft = obj.destPoints.startX;\n this.destTop = obj.destPoints.startY;\n this.destWidth = obj.destPoints.width;\n this.destHeight = obj.destPoints.height;\n this.srcLeft = obj.srcPoints.startX;\n this.srcTop = obj.srcPoints.startY;\n this.srcWidth = obj.srcPoints.width;\n this.srcHeight = obj.srcPoints.height;\n var destPoints = { startX: this.destLeft, startY: this.destTop, width: this.destWidth, height: this.destHeight };\n this.destLeft = obj.activeObj.activePoint.startX;\n this.destTop = obj.activeObj.activePoint.startY;\n this.destWidth = obj.activeObj.activePoint.width;\n this.destHeight = obj.activeObj.activePoint.height;\n this.zoomObjColl();\n this.zoomFreehandDrawColl();\n this.destLeft = destPoints.startX;\n this.destTop = destPoints.startY;\n this.destWidth = destPoints.width;\n this.destHeight = destPoints.height;\n }\n this.activeObj = activeObj;\n this.lowerContext.filter = temp;\n };\n ImageEditor.prototype.cropImg = function (isRotateCrop) {\n if (isNullOrUndefined(isRotateCrop)) {\n this.croppedDegree = this.degree;\n }\n if (isNullOrUndefined(isRotateCrop) && this.degree !== 0) {\n this.updateCropObj();\n this.currDestinationPoint = { startX: this.destLeft, startY: this.destTop, width: this.destWidth, height: this.destHeight };\n this.rotateCrop();\n }\n else if (isNullOrUndefined(isRotateCrop) && this.currFlipState !== '') {\n this.updateCropObj();\n this.currDestinationPoint = { startX: this.destLeft, startY: this.destTop, width: this.destWidth, height: this.destHeight };\n this.flipCrop();\n }\n else {\n this.tempZoomFactor = this.zoomFactor;\n var ratio = this.calcRatio();\n if (isNullOrUndefined(isRotateCrop) || !isRotateCrop) {\n this.updateCropObj();\n this.resetPanPoints();\n this.updateImageRatioForActObj();\n this.currDestinationPoint = { startX: this.destLeft, startY: this.destTop, width: this.destWidth, height: this.destHeight };\n this.currSelectionPoint = extend({}, this.activeObj, {}, true);\n this.cropDestPoints = { startX: this.destLeft, startY: this.destTop, width: this.destWidth, height: this.destHeight };\n }\n var maxDimension = this.calcMaxDimension(this.activeObj.activePoint.width *\n ratio.width, this.activeObj.activePoint.height * ratio.height);\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n this.lowerContext.clearRect(0, 0, this.lowerCanvas.width, this.lowerCanvas.height);\n this.srcLeft = (this.activeObj.activePoint.startX * ratio.width) - (this.destLeft * ratio.width);\n this.srcTop = (this.activeObj.activePoint.startY * ratio.height) - (this.destTop * ratio.height);\n this.srcWidth = (this.activeObj.activePoint.width * ratio.width);\n this.srcHeight = (this.activeObj.activePoint.height * ratio.height);\n this.destLeft = (this.lowerCanvas.clientWidth - maxDimension.width) / 2;\n this.destTop = (this.lowerCanvas.clientHeight - maxDimension.height) / 2;\n this.destWidth = maxDimension.width;\n this.destHeight = maxDimension.height;\n var temp = this.lowerContext.filter;\n this.updateBrightnessFilter();\n this.lowerContext.drawImage(this.baseImg, this.srcLeft, this.srcTop, this.srcWidth, this.srcHeight, this.destLeft, this.destTop, this.destWidth, this.destHeight);\n this.lowerContext.filter = 'none';\n var activeObj = extend({}, this.activeObj, {}, true);\n this.cropObjColl();\n this.zoomObjColl();\n for (var i = 0; i < this.objColl.length; i++) {\n if (this.isObjInsideCropRegion(this.objColl[i])) {\n this.apply(this.objColl[i].shape, this.objColl[i]);\n this.refreshActiveObj();\n }\n }\n this.activeObj = activeObj;\n this.cropFreehandDrawColl();\n this.zoomFreehandDrawColl();\n this.clearOuterCanvas(this.lowerContext);\n this.clearOuterCanvas(this.upperContext);\n if (this.currSelectionPoint.shape === 'crop-circle') {\n this.cropCircle(this.lowerContext);\n }\n else {\n this.isCircleCrop = false;\n }\n this.lowerContext.filter = temp;\n this.refreshActiveObj();\n this.currObjType.isCustomCrop = false;\n this.pan(false);\n this.defaultZoomFactor = 0;\n }\n };\n ImageEditor.prototype.updateImageRatioForActObj = function () {\n this.activeObj.imageRatio = { startX: ((this.activeObj.activePoint.startX - this.destLeft) / this.destWidth),\n startY: ((this.activeObj.activePoint.startY - this.destTop) / this.destHeight),\n endX: ((this.activeObj.activePoint.endX - this.destLeft) / this.destWidth),\n endY: ((this.activeObj.activePoint.endY - this.destTop) / this.destHeight),\n width: this.destWidth / this.activeObj.activePoint.width, height: this.destHeight / this.activeObj.activePoint.height };\n };\n ImageEditor.prototype.drawImgToCanvas = function (maxDimension) {\n this.lowerContext.clearRect(0, 0, this.lowerCanvas.width, this.lowerCanvas.height);\n this.destWidth = maxDimension.width;\n this.destHeight = maxDimension.height;\n if (this.isInitialLoading) {\n this.initializeFilter();\n this.isInitialLoading = false;\n }\n var temp = this.lowerContext.filter;\n this.updateBrightnessFilter();\n this.lowerContext.drawImage(this.baseImg, this.srcLeft, this.srcTop, this.srcWidth, this.srcHeight, this.destLeft, this.destTop, this.destWidth, this.destHeight);\n if ((!isNullOrUndefined(this.currSelectionPoint) && this.currSelectionPoint.shape === 'crop-circle') || this.isCircleCrop) {\n this.cropCircle(this.lowerContext);\n }\n this.lowerContext.filter = temp;\n };\n ImageEditor.prototype.limitPan = function () {\n if (this.activeObj.activePoint) {\n if (this.destLeft > this.activeObj.activePoint.startX) {\n this.destLeft = this.activeObj.activePoint.startX;\n }\n if (this.destTop > this.activeObj.activePoint.startY) {\n this.destTop = this.activeObj.activePoint.startY;\n }\n if (this.destLeft + this.destWidth < this.activeObj.activePoint.endX) {\n this.destLeft = this.activeObj.activePoint.endX - this.destWidth;\n }\n if (this.destTop + this.destHeight < this.activeObj.activePoint.endY) {\n this.destTop = this.activeObj.activePoint.endY - this.destHeight;\n }\n }\n };\n ImageEditor.prototype.updatePanPoints = function (panRegion) {\n var tempDestLeft = this.destLeft;\n var tempDestTop = this.destTop;\n var xDiff = this.panMove.x - this.tempPanMove.x;\n var yDiff = this.panMove.y - this.tempPanMove.y;\n if (panRegion === '') {\n this.destLeft += xDiff;\n this.destTop += yDiff;\n this.limitPan();\n }\n else if (panRegion === 'horizontal') {\n var tempActObj = extend({}, this.activeObj, {}, true);\n this.updateFlipActiveObj(panRegion);\n xDiff = this.tempPanMove.x - this.panMove.x;\n this.destLeft += xDiff;\n this.destTop += yDiff;\n this.limitPan();\n this.activeObj = tempActObj;\n }\n else if (panRegion === 'vertical') {\n var tempActObj = extend({}, this.activeObj, {}, true);\n this.updateFlipActiveObj(panRegion);\n yDiff = this.tempPanMove.y - this.panMove.y;\n this.destLeft += xDiff;\n this.destTop += yDiff;\n this.limitPan();\n this.activeObj = tempActObj;\n }\n else if (panRegion === 'horizontalVertical') {\n var tempActObj = extend({}, this.activeObj, {}, true);\n this.updateFlipActiveObj(panRegion);\n xDiff = this.tempPanMove.x - this.panMove.x;\n this.destLeft += xDiff;\n this.destTop -= yDiff;\n this.limitPan();\n this.activeObj = tempActObj;\n }\n else if (panRegion === 'verticalHorizontal') {\n var tempActObj = extend({}, this.activeObj, {}, true);\n this.updateFlipActiveObj(panRegion);\n yDiff = this.tempPanMove.y - this.panMove.y;\n this.destLeft -= xDiff;\n this.destTop += yDiff;\n this.limitPan();\n this.activeObj = tempActObj;\n }\n // returns panned difference for manipulating object collection\n return { x: this.destLeft - tempDestLeft, y: this.destTop - tempDestTop };\n };\n ImageEditor.prototype.setCurrentPanRegion = function (region, type) {\n var panRegion = region;\n if (region === '') {\n if (type === 'horizontal') {\n panRegion = 'horizontal';\n }\n else if (type === 'vertical') {\n panRegion = 'vertical';\n }\n }\n else if (region === 'horizontal') {\n if (type === 'horizontal') {\n panRegion = 'horizontalVertical';\n }\n else if (type === 'vertical') {\n panRegion = 'verticalHorizontal';\n }\n else if (type === 90) {\n panRegion = 'vertical';\n }\n else if (type === -90) {\n panRegion = 'horizontal';\n }\n }\n else if (region === 'vertical') {\n if (type === 'horizontal') {\n panRegion = 'horizontalVertical';\n }\n else if (type === 'vertical') {\n panRegion = 'verticalHorizontal';\n }\n else if (type === 90) {\n panRegion = 'horizontal';\n }\n else if (type === -90) {\n panRegion = 'vertical';\n }\n }\n else {\n if (type === 'horizontal') {\n panRegion = 'vertical';\n }\n else if (type === 'vertical') {\n panRegion = 'horizontal';\n }\n }\n return panRegion;\n };\n ImageEditor.prototype.getCurrentPanRegion = function () {\n var panRegion = '';\n this.rotateFlipColl = this.alignRotateFlipColl(this.rotateFlipColl, true);\n for (var i = 0; i < this.rotateFlipColl.length; i++) {\n panRegion = this.setCurrentPanRegion(panRegion, this.rotateFlipColl[i]);\n }\n return panRegion;\n };\n ImageEditor.prototype.drawPannImage = function (point) {\n var destPoints = { startX: this.destLeft, startY: this.destTop, width: this.destWidth, height: this.destHeight };\n this.lowerContext.clearRect(0, 0, this.lowerCanvas.width, this.lowerCanvas.height);\n this.updateCurrentTransformedState('initial');\n this.destLeft = destPoints.startX;\n this.destTop = destPoints.startY;\n this.destWidth = destPoints.width;\n this.destHeight = destPoints.height;\n this.setDestPointsForFlipState();\n this.updateBrightnessFilter();\n this.lowerContext.drawImage(this.baseImg, this.srcLeft, this.srcTop, this.srcWidth, this.srcHeight, this.destLeft, this.destTop, this.destWidth, this.destHeight);\n if ((!isNullOrUndefined(this.currSelectionPoint) && this.currSelectionPoint.shape === 'crop-circle') || this.isCircleCrop) {\n this.cropCircle(this.lowerContext, null, true);\n }\n this.updateCurrentTransformedState('reverse');\n this.destLeft = destPoints.startX;\n this.destTop = destPoints.startY;\n this.destWidth = destPoints.width;\n this.destHeight = destPoints.height;\n var temp = this.lowerContext.filter;\n this.lowerContext.filter = 'none';\n this.panObjColl(point.x, point.y, '');\n this.panFreehandDrawColl(point.x, point.y, '');\n this.lowerContext.filter = temp;\n if (this.isCircleCrop) {\n this.cropCircle(this.lowerContext, null, true);\n }\n };\n ImageEditor.prototype.drawPannedImage = function (xDiff, yDiff) {\n var panEventArgs = { startPoint: this.panDown, endPoint: this.panMove, cancel: false };\n this.trigger('panning', panEventArgs);\n if (panEventArgs.cancel) {\n return;\n }\n var isObjCreated = false;\n if (!isNullOrUndefined(this.activeObj.shape) && this.activeObj.shape === 'shape') {\n this.refreshActiveObj();\n }\n if (isNullOrUndefined(this.activeObj.shape)) {\n isObjCreated = true;\n this.activeObj.activePoint = { startX: this.destLeft, startY: this.destTop,\n endX: this.destLeft + this.destWidth, endY: this.destTop + this.destHeight };\n if (this.activeObj.activePoint.startX < 0) {\n this.activeObj.activePoint.startX = 0;\n }\n if (this.activeObj.activePoint.startY < 0) {\n this.activeObj.activePoint.startY = 0;\n }\n if (this.activeObj.activePoint.endX > this.lowerCanvas.width) {\n this.activeObj.activePoint.endX = this.lowerCanvas.width;\n }\n if (this.activeObj.activePoint.endY > this.lowerCanvas.height) {\n this.activeObj.activePoint.endY = this.lowerCanvas.height;\n }\n this.activeObj.activePoint.width = this.activeObj.activePoint.endX - this.activeObj.activePoint.startX;\n this.activeObj.activePoint.height = this.activeObj.activePoint.endY - this.activeObj.activePoint.startY;\n this.activeObj.shape = 'crop-custom';\n this.activeObj.strokeSettings = this.strokeSettings;\n this.updateActiveObject(this.activeObj.activePoint, this.activeObj);\n this.isCropTab = true;\n }\n if (this.degree === 0) {\n var point = void 0;\n if (isNullOrUndefined(xDiff) && isNullOrUndefined(yDiff)) {\n point = this.updatePanPoints('');\n }\n else {\n point = { x: xDiff, y: yDiff };\n }\n this.totalPannedPoint.x += point.x;\n this.totalPannedPoint.y += point.y;\n var tempSelectionObj = extend({}, this.activeObj, {}, true);\n var temp = this.lowerContext.filter;\n this.drawPannImage(point);\n this.lowerContext.filter = temp;\n this.tempPanMove = extend({}, this.panMove, {}, true);\n this.activeObj = extend({}, tempSelectionObj, {}, true);\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n if (!isNullOrUndefined(this.activeObj.shape)) {\n this.drawObject('duplicate', this.activeObj);\n }\n }\n else {\n var tempFlipState = this.currFlipState;\n this.isCropTab = true;\n if (isNullOrUndefined(xDiff) && isNullOrUndefined(yDiff)) {\n this.currentPannedPoint = this.updatePanPoints('');\n }\n else {\n this.currentPannedPoint = { x: xDiff, y: yDiff };\n }\n this.currFlipState = tempFlipState;\n this.rotatePan();\n this.isCropTab = false;\n this.tempPanMove = extend({}, this.panMove, {}, true);\n }\n if (isObjCreated) {\n this.refreshActiveObj();\n this.isCropTab = false;\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n }\n };\n ImageEditor.prototype.updateFlipPan = function (tempSelectionObj) {\n if (this.currFlipState !== '') {\n var temp = this.lowerContext.filter;\n this.refreshActiveObj();\n this.rotatedFlip();\n this.lowerContext.filter = 'none';\n this.freehandRedraw(this.lowerContext);\n this.lowerContext.filter = temp;\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n if (!isNullOrUndefined(tempSelectionObj)) {\n this.drawObject('duplicate', tempSelectionObj);\n }\n }\n };\n ImageEditor.prototype.updateFlipActiveObj = function (panRegion) {\n if (panRegion === 'horizontal') {\n if (this.activeObj.activePoint.startX > this.lowerCanvas.width / 2) {\n this.activeObj.activePoint.endX = (this.lowerCanvas.width / 2) -\n (this.activeObj.activePoint.startX - (this.lowerCanvas.width / 2));\n }\n else {\n this.activeObj.activePoint.endX = (this.lowerCanvas.width / 2) + ((this.lowerCanvas.width / 2) -\n this.activeObj.activePoint.startX);\n }\n this.activeObj.activePoint.startX = this.activeObj.activePoint.endX - this.activeObj.activePoint.width;\n }\n else if (panRegion === 'vertical') {\n if (this.activeObj.activePoint.startX > this.lowerCanvas.width / 2) {\n this.activeObj.activePoint.endY = (this.lowerCanvas.height / 2) -\n (this.activeObj.activePoint.startY - (this.lowerCanvas.height / 2));\n }\n else {\n this.activeObj.activePoint.endY = (this.lowerCanvas.height / 2) +\n ((this.lowerCanvas.height / 2) - this.activeObj.activePoint.startY);\n }\n this.activeObj.activePoint.startY = this.activeObj.activePoint.endY - this.activeObj.activePoint.height;\n }\n else if (panRegion === 'verticalHorizontal' || panRegion === 'horizontalVertical') {\n if (this.activeObj.activePoint.startX > this.lowerCanvas.width / 2) {\n this.activeObj.activePoint.endX = (this.lowerCanvas.width / 2) -\n (this.activeObj.activePoint.startX - (this.lowerCanvas.width / 2));\n this.activeObj.activePoint.endY = (this.lowerCanvas.height / 2) -\n (this.activeObj.activePoint.startY - (this.lowerCanvas.height / 2));\n }\n else {\n this.activeObj.activePoint.endX = (this.lowerCanvas.width / 2) + ((this.lowerCanvas.width / 2) -\n this.activeObj.activePoint.startX);\n this.activeObj.activePoint.endY = (this.lowerCanvas.height / 2) +\n ((this.lowerCanvas.height / 2) - this.activeObj.activePoint.startY);\n }\n this.activeObj.activePoint.startX = this.activeObj.activePoint.endX - this.activeObj.activePoint.width;\n this.activeObj.activePoint.startY = this.activeObj.activePoint.endY - this.activeObj.activePoint.height;\n }\n this.updateActiveObject(this.activeObj.activePoint, this.activeObj);\n };\n ImageEditor.prototype.resetPanPoints = function () {\n this.totalPannedPoint = { x: 0, y: 0 };\n this.totalPannedClientPoint = { x: 0, y: 0 };\n this.totalPannedInternalPoint = { x: 0, y: 0 };\n };\n ImageEditor.prototype.flipCrop = function () {\n this.isReverseFlip = true;\n this.totalPannedPoint.x += this.tempFlipPanPoint.x;\n this.totalPannedPoint.y += this.tempFlipPanPoint.y;\n var tempCurrFlipState = this.currFlipState;\n var tempFlipColl = this.flipColl;\n this.flipColl = [];\n this.updateImageRatioForActObj();\n this.objColl.push(this.activeObj);\n if (this.zoomFactor > 0) {\n var zoomFactor = this.zoomFactor;\n var isUndoRedo = this.isUndoRedo;\n for (var i = 0; i < (zoomFactor * 10); i++) {\n this.isUndoRedo = true;\n this.zoomAction(-0.1);\n }\n this.isUndoRedo = isUndoRedo;\n this.resetPanPoints();\n }\n this.currSelectionPoint = extend({}, this.objColl[this.objColl.length - 1], {}, true);\n this.lowerContext.clearRect(0, 0, this.lowerCanvas.width, this.lowerCanvas.height);\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n var temp = this.lowerContext.filter;\n this.updateBrightnessFilter();\n this.lowerContext.drawImage(this.baseImg, this.srcLeft, this.srcTop, this.srcWidth, this.srcHeight, this.destLeft, this.destTop, this.destWidth, this.destHeight);\n for (var i = 0; i < this.objColl.length; i++) {\n this.objColl[i].shapeFlip = '';\n }\n for (var i = 0; i < this.freehandCounter; i++) {\n this.pointColl[i].shapeFlip = '';\n }\n this.redrawObj(this.getCurrentPanRegion());\n this.flipFreehandrawColl(this.getCurrentPanRegion());\n this.activeObj = extend({}, this.objColl[this.objColl.length - 1], {}, true);\n this.objColl.pop();\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n this.drawObject('duplicate');\n this.cropImg(true);\n this.isReverseRotate = true;\n this.reverseTransformedState();\n this.setDestinationPoints();\n this.currentTransformedState('initial');\n this.updateBrightnessFilter();\n this.lowerContext.drawImage(this.baseImg, this.srcLeft, this.srcTop, this.srcWidth, this.srcHeight, this.destLeft, this.destTop, this.destWidth, this.destHeight);\n this.lowerContext.filter = temp;\n this.isRotateZoom = false;\n this.updateCurrentTransformedState('reverse');\n this.currFlipState = tempCurrFlipState;\n this.flipColl = tempFlipColl;\n this.lowerContext.filter = 'none';\n for (var i = 0; i < this.objColl.length; i++) {\n this.objColl[i].shapeFlip = '';\n }\n for (var i = 0; i < this.freehandCounter; i++) {\n this.pointColl[i].shapeFlip = '';\n }\n this.redrawObj(this.getCurrentPanRegion());\n this.flipFreehandrawColl(this.getCurrentPanRegion());\n this.zoomObjColl();\n this.zoomFreehandDrawColl();\n this.lowerContext.filter = temp;\n if ((!isNullOrUndefined(this.currSelectionPoint) && this.currSelectionPoint.shape === 'crop-circle') || this.isCircleCrop) {\n this.cropCircle(this.lowerContext);\n }\n this.refreshActiveObj();\n this.clearOuterCanvas(this.lowerContext);\n this.clearOuterCanvas(this.upperContext);\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n this.isReverseFlip = false;\n this.resetPanPoints();\n this.tempFlipPanPoint = { x: 0, y: 0 };\n };\n ImageEditor.prototype.rotateCrop = function () {\n var shape = '';\n if (!isNullOrUndefined(this.activeObj.shape)) {\n shape = this.activeObj.shape;\n }\n var tempDegree = this.degree;\n if (this.degree % 90 === 0 && this.degree % 180 !== 0) {\n this.rotatedDestPoints.startX = this.destLeft;\n this.rotatedDestPoints.startY = this.destTop;\n this.rotatedDestPoints.width = this.destWidth;\n this.rotatedDestPoints.height = this.destHeight;\n this.rotatedDestPoints.startX -= this.totalPannedClientPoint.x;\n this.rotatedDestPoints.startY -= this.totalPannedClientPoint.y;\n }\n this.updateImageRatioForActObj();\n this.currSelectionPoint = extend({}, this.activeObj, {}, true);\n this.objColl.push(this.activeObj);\n this.activeObj = extend({}, this.objColl[this.objColl.length - 1], {}, true);\n this.reverseTransformedState();\n this.setClientTransformedDimension();\n this.lowerContext.clearRect(0, 0, this.lowerCanvas.width, this.lowerCanvas.height);\n var temp = this.lowerContext.filter;\n this.updateBrightnessFilter();\n this.lowerContext.drawImage(this.baseImg, this.srcLeft, this.srcTop, this.srcWidth, this.srcHeight, this.destLeft, this.destTop, this.destWidth, this.destHeight);\n this.lowerContext.filter = temp;\n var length = 0;\n if (tempDegree === 90 || tempDegree === -270) {\n length = 3;\n }\n else if (tempDegree === 180 || tempDegree === -180) {\n length = 2;\n }\n else if (tempDegree === 270 || tempDegree === -90) {\n length = 1;\n }\n for (var i = 0; i < length; i++) {\n this.rotateObjColl();\n this.rotateFreehandDrawColl();\n }\n var activeObj = extend({}, this.objColl[this.objColl.length - 1], {}, true);\n if (this.currFlipState !== '') {\n for (var i = 0; i < this.objColl.length; i++) {\n this.objColl[i].shapeFlip = '';\n }\n for (var i = 0; i < this.freehandCounter; i++) {\n this.pointColl[i].shapeFlip = '';\n }\n var flipState = this.getCurrentCropState('initial');\n this.redrawObj(flipState);\n this.flipFreehandrawColl(flipState);\n }\n this.zoomObjColl();\n this.zoomFreehandDrawColl();\n activeObj = extend({}, this.objColl[this.objColl.length - 1], {}, true);\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n this.drawObject('duplicate', activeObj);\n this.objColl.pop();\n this.degree = 0;\n this.cropImg(true);\n this.isReverseRotate = true;\n this.reverseTransformedState();\n this.degree = tempDegree;\n this.setDestinationPoints();\n this.currentTransformedState('initial');\n this.updateBrightnessFilter();\n this.lowerContext.drawImage(this.baseImg, this.srcLeft, this.srcTop, this.srcWidth, this.srcHeight, this.destLeft, this.destTop, this.destWidth, this.destHeight);\n this.lowerContext.filter = temp;\n this.currentTransformedState('reverse');\n length = 0;\n if (tempDegree === 90 || tempDegree === -270) {\n length = 1;\n }\n else if (tempDegree === 180 || tempDegree === -180) {\n length = 2;\n }\n else if (tempDegree === 270 || tempDegree === -90) {\n length = 3;\n }\n for (var i = 0; i < length; i++) {\n this.rotateObjColl();\n this.rotateFreehandDrawColl();\n }\n if (this.getCurrentPanRegion() !== '') {\n for (var i = 0; i < this.objColl.length; i++) {\n this.objColl[i].shapeFlip = '';\n }\n for (var i = 0; i < this.freehandCounter; i++) {\n this.pointColl[i].shapeFlip = '';\n }\n var flipState = this.getCurrentCropState('reverse');\n this.redrawObj(flipState);\n this.flipFreehandrawColl(flipState);\n }\n this.isReverseRotate = false;\n if (shape === 'crop-circle') {\n this.cropCircle(this.lowerContext);\n }\n this.lowerContext.filter = 'none';\n for (var i = 0; i < this.objColl.length; i++) {\n if (this.isObjInsideCropRegion(this.objColl[i])) {\n this.apply(this.objColl[i].shape, this.objColl[i]);\n this.refreshActiveObj();\n }\n }\n this.zoomFreehandDrawColl();\n this.lowerContext.filter = temp;\n this.clearOuterCanvas(this.lowerContext);\n this.clearOuterCanvas(this.upperContext);\n if (shape === 'crop-circle') {\n this.cropCircle(this.lowerContext);\n }\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n this.resetPanPoints();\n };\n ImageEditor.prototype.getCurrentCropState = function (type, isAllowInvert) {\n var flipState = '';\n var state = [];\n if (type === 'initial') {\n if (this.degree === 180 || this.degree === -180) {\n flipState = this.flipColl.length > 1 ? this.getCurrentPanRegion() : this.currFlipState;\n }\n else {\n for (var i = 0; i < this.rotateFlipColl.length; i++) {\n if (typeof (this.rotateFlipColl[i]) === 'number') {\n state.push('number');\n }\n else if (typeof (this.rotateFlipColl[i]) === 'string') {\n state.push('string');\n }\n }\n if (state.length > 1 && state[state.length - 1] === 'string' && state[state.length - 2] === 'number') {\n if (this.currFlipState === 'horizontal') {\n flipState = 'vertical';\n }\n else if (this.currFlipState === 'vertical') {\n flipState = 'horizontal';\n }\n }\n else if (state.length > 1 && state[state.length - 1] === 'number' && state[state.length - 2] === 'string') {\n flipState = this.flipColl.length > 1 ? this.getCurrentPanRegion() : this.currFlipState;\n }\n }\n }\n else {\n flipState = this.getCurrentPanRegion();\n if (isAllowInvert || !this.isInitialRotate()) {\n if (this.degree === -90 || this.degree === -270) {\n if (flipState === 'horizontal') {\n flipState = 'vertical';\n }\n else if (flipState === 'vertical') {\n flipState = 'horizontal';\n }\n }\n }\n }\n if (flipState === '') {\n flipState = this.flipColl.length > 1 ? this.getCurrentPanRegion() : this.currFlipState;\n }\n return flipState;\n };\n ImageEditor.prototype.isInitialRotate = function () {\n var isRotate = false;\n if (this.rotateFlipColl.length > 0 && typeof (this.rotateFlipColl[0]) === 'number') {\n isRotate = true;\n }\n return isRotate;\n };\n ImageEditor.prototype.updateRotatePanPoints = function () {\n if (isNullOrUndefined(this.currentPannedPoint)) {\n return;\n }\n var panRegion = '';\n if (this.isInitialRotate() && this.degree < 0) {\n panRegion = this.getCurrentCropState('reverse', true);\n }\n else {\n panRegion = this.getCurrentPanRegion();\n }\n if (this.degree % 90 === 0 && this.degree % 180 !== 0) {\n if (this.degree === 90 || (this.degree === -90 && (panRegion === 'horizontal' || panRegion === 'vertical'))\n || (this.degree === -270 && (panRegion === '' || panRegion === 'verticalHorizontal' || panRegion === 'horizontalVertical'))) {\n if (panRegion === '') {\n this.destLeft += this.currentPannedPoint.y;\n this.destTop -= this.currentPannedPoint.x;\n }\n else if (panRegion === 'horizontal') {\n this.destLeft += this.currentPannedPoint.y;\n this.destTop += this.currentPannedPoint.x;\n }\n else if (panRegion === 'vertical') {\n this.destLeft -= this.currentPannedPoint.y;\n this.destTop -= this.currentPannedPoint.x;\n }\n else {\n this.destLeft -= this.currentPannedPoint.y;\n this.destTop += this.currentPannedPoint.x;\n }\n }\n else if (this.degree === 270 || (this.degree === -270 && (panRegion === 'horizontal' || panRegion === 'vertical'))\n || (this.degree === -90 && (panRegion === '' || panRegion === 'verticalHorizontal' || panRegion === 'horizontalVertical'))) {\n if (panRegion === '') {\n this.destLeft -= this.currentPannedPoint.y;\n this.destTop += this.currentPannedPoint.x;\n }\n else if (panRegion === 'horizontal') {\n this.destLeft -= this.currentPannedPoint.y;\n this.destTop -= this.currentPannedPoint.x;\n }\n else if (panRegion === 'vertical') {\n this.destLeft += this.currentPannedPoint.y;\n this.destTop += this.currentPannedPoint.x;\n }\n else {\n this.destLeft += this.currentPannedPoint.y;\n this.destTop -= this.currentPannedPoint.x;\n }\n }\n }\n else {\n if (this.degree === 180 || this.degree === -180) {\n if (panRegion === '') {\n this.destLeft -= this.currentPannedPoint.x;\n this.destTop -= this.currentPannedPoint.y;\n }\n else if (panRegion === 'horizontal') {\n this.destLeft += this.currentPannedPoint.x;\n this.destTop -= this.currentPannedPoint.y;\n }\n else if (panRegion === 'vertical') {\n this.destLeft -= this.currentPannedPoint.x;\n this.destTop += this.currentPannedPoint.y;\n }\n else {\n this.destLeft += this.currentPannedPoint.x;\n this.destTop += this.currentPannedPoint.y;\n }\n }\n }\n };\n ImageEditor.prototype.rotatePan = function (isCropSelection, isDefaultZoom) {\n this.isReverseRotate = true;\n var tempDegree = this.degree;\n var rotatePanActiveObj;\n if (!isNullOrUndefined(this.activeObj.activePoint) && !isNullOrUndefined(this.activeObj.shape)) {\n rotatePanActiveObj = extend({}, this.activeObj, {}, true);\n }\n var tempObjColl = extend([], this.objColl, [], true);\n var tempPointColl = extend([], this.pointColl, [], true);\n this.objColl = [];\n this.pointColl = [];\n this.freehandCounter = 0;\n this.refreshActiveObj();\n this.isRotateZoom = true;\n this.updateCurrentTransformedState('initial');\n var initialDestLeft = this.destLeft;\n var initialDestTop = this.destTop;\n if (this.isCropTab) {\n this.destLeft += this.totalPannedInternalPoint.x;\n this.destTop += this.totalPannedInternalPoint.y;\n }\n this.updateRotatePanPoints();\n if (this.isCropTab) {\n this.totalPannedInternalPoint.x = this.destLeft - initialDestLeft;\n this.totalPannedInternalPoint.y = this.destTop - initialDestTop;\n }\n var temp = this.lowerContext.filter;\n this.updateBrightnessFilter();\n this.lowerContext.drawImage(this.baseImg, this.srcLeft, this.srcTop, this.srcWidth, this.srcHeight, this.destLeft, this.destTop, this.destWidth, this.destHeight);\n this.isRotateZoom = false;\n this.updateCurrentTransformedState('reverse', true, true);\n var destLeft = this.destLeft;\n var destTop = this.destTop;\n this.destLeft += this.totalPannedClientPoint.x;\n this.destTop += this.totalPannedClientPoint.y;\n this.destLeft += this.currentPannedPoint.x;\n this.destTop += this.currentPannedPoint.y;\n this.totalPannedClientPoint.x = this.destLeft - destLeft;\n this.totalPannedClientPoint.y = this.destTop - destTop;\n this.objColl = tempObjColl;\n this.pointColl = tempPointColl;\n this.freehandCounter = this.pointColl.length;\n this.degree = tempDegree;\n this.lowerContext.filter = 'none';\n if (isCropSelection) {\n if (isDefaultZoom) {\n this.totalPannedClientPoint.x = -this.totalPannedClientPoint.x;\n this.totalPannedClientPoint.y = -this.totalPannedClientPoint.y;\n this.currentPannedPoint = extend({}, this.totalPannedClientPoint, {}, true);\n this.totalPannedClientPoint = { x: 0, y: 0 };\n this.destLeft += this.currentPannedPoint.x;\n this.destTop += this.currentPannedPoint.y;\n }\n else {\n this.currentPannedPoint = extend({}, this.totalPannedClientPoint, {}, true);\n }\n }\n this.panObjColl(this.currentPannedPoint.x, this.currentPannedPoint.y, '');\n this.panFreehandDrawColl(this.currentPannedPoint.x, this.currentPannedPoint.y, '');\n this.lowerContext.filter = temp;\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n this.activeObj = extend({}, rotatePanActiveObj, {}, true);\n if (!isNullOrUndefined(this.activeObj.activePoint)) {\n this.drawObject('duplicate', this.activeObj, null, null, true);\n }\n this.isReverseRotate = false;\n };\n ImageEditor.prototype.rotateZoom = function (value) {\n var powerOften = Math.pow(10, 1);\n if ((Math.round(this.zoomFactor * powerOften) / powerOften) === 0.1 && value === -0.1) {\n this.zoomFactor = 0;\n }\n else {\n this.zoomFactor += value;\n }\n if (this.isCropTab) {\n this.cropZoomFactor = this.zoomFactor;\n }\n else {\n this.defaultZoomFactor = this.zoomFactor;\n }\n var tempObjColl = extend([], this.objColl, [], true);\n var tempActiveObj = extend({}, this.activeObj, {}, true);\n this.objColl = [];\n this.refreshActiveObj();\n this.updateCurrentTransformedState('initial');\n this.isRotateZoom = true;\n this.setDestinationPoints();\n var temp = this.lowerContext.filter;\n this.updateBrightnessFilter();\n this.lowerContext.drawImage(this.baseImg, this.srcLeft, this.srcTop, this.srcWidth, this.srcHeight, this.destLeft, this.destTop, this.destWidth, this.destHeight);\n this.lowerContext.filter = temp;\n this.isRotateZoom = false;\n this.updateCurrentTransformedState('reverse');\n this.objColl = tempObjColl;\n this.activeObj = tempActiveObj;\n };\n ImageEditor.prototype.drawZoomImgToCanvas = function (value, selectionObj) {\n var powerOften = Math.pow(10, 1);\n if ((Math.round(this.zoomFactor * powerOften) / powerOften) === 0.1 && value === -0.1) {\n this.zoomFactor = 0;\n }\n else {\n this.zoomFactor += value;\n }\n if (this.isCropTab) {\n this.cropZoomFactor = this.zoomFactor;\n }\n else {\n this.defaultZoomFactor = this.zoomFactor;\n }\n var maxDimension = { width: 0, height: 0 };\n if (this.isCropTab) {\n maxDimension = this.cropZoom(value, selectionObj);\n }\n else {\n maxDimension = this.calcMaxDimension(this.srcWidth, this.srcHeight);\n maxDimension.width += (maxDimension.width * this.zoomFactor);\n maxDimension.height += (maxDimension.height * this.zoomFactor);\n this.destLeft = (this.lowerCanvas.clientWidth - maxDimension.width) / 2;\n this.destTop = (this.lowerCanvas.clientHeight - maxDimension.height) / 2;\n }\n this.drawImgToCanvas(maxDimension);\n };\n ImageEditor.prototype.cropZoom = function (value, selectionObj) {\n var destLeft = this.destLeft;\n var destTop = this.destTop;\n var maxDimension = { width: 0, height: 0 };\n if (this.srcLeft === 0 || this.srcTop === 0) {\n if (isNullOrUndefined(selectionObj)) {\n maxDimension = this.setZoomDimension(value, null);\n }\n else {\n maxDimension = this.setZoomDimension(value, selectionObj);\n }\n }\n else {\n if (this.degree % 90 === 0 && this.degree % 180 !== 0) {\n maxDimension = this.calcMaxDimension(this.srcHeight, this.srcWidth);\n }\n else {\n maxDimension = this.calcMaxDimension(this.srcWidth, this.srcHeight);\n }\n maxDimension.width += (maxDimension.width * this.zoomFactor);\n maxDimension.height += (maxDimension.height * this.zoomFactor);\n }\n this.destLeft = destLeft - ((maxDimension.width - this.destWidth) / 2);\n this.destTop = destTop - ((maxDimension.height - this.destHeight) / 2);\n destLeft = this.destLeft;\n destTop = this.destTop;\n if (!isNullOrUndefined(selectionObj)) {\n if (this.destLeft > selectionObj.activePoint.startX) {\n this.destLeft = selectionObj.activePoint.startX;\n if (this.degree === 0) {\n this.totalPannedPoint.x -= (destLeft - this.destLeft);\n }\n }\n if (this.destTop > selectionObj.activePoint.startY) {\n this.destTop = selectionObj.activePoint.startY;\n if (this.degree === 0) {\n this.totalPannedPoint.y -= (destTop - this.destTop);\n }\n }\n if (this.destLeft + maxDimension.width < selectionObj.activePoint.endX) {\n this.destLeft = selectionObj.activePoint.endX - maxDimension.width;\n if (this.degree === 0) {\n this.totalPannedPoint.x -= (destLeft - this.destLeft);\n }\n }\n if (this.destTop + maxDimension.height < selectionObj.activePoint.endY) {\n this.destTop = selectionObj.activePoint.endY - maxDimension.height;\n if (this.degree === 0) {\n this.totalPannedPoint.y -= (destTop - this.destTop);\n }\n }\n }\n return maxDimension;\n };\n ImageEditor.prototype.updateCanvas = function () {\n var fileOpened = { fileName: this.fileName, fileType: this.fileType };\n this.srcWidth = this.baseImg.width;\n this.srcHeight = this.baseImg.height;\n var maxDimension = this.calcMaxDimension(this.srcWidth, this.srcHeight);\n this.destLeft = (this.lowerCanvas.clientWidth - maxDimension.width) / 2;\n this.destTop = (this.lowerCanvas.clientHeight - maxDimension.height) / 2;\n this.drawImgToCanvas(maxDimension);\n this.cropDestPoints = { startX: this.destLeft, startY: this.destTop, width: this.destWidth, height: this.destHeight };\n var temp = this.lowerContext.filter;\n this.lowerContext.filter = 'none';\n this.iterateObjColl();\n this.zoomFreehandDrawColl();\n this.lowerContext.filter = temp;\n if (this.destWidth > 0 && this.destHeight > 0) {\n this.isImageLoaded = true;\n }\n if (this.isUndoRedo) {\n if (this.currFlipState !== '') {\n this.flipImage(this.toPascalCase(this.currFlipState));\n }\n }\n if (this.disabled) {\n this.element.setAttribute('class', 'e-disabled');\n }\n if (this.isImageLoaded && this.element.style.opacity !== '0.5') {\n this.trigger('fileOpened', fileOpened);\n }\n if (this.zoomSettings.zoomFactor !== 1 || !isNullOrUndefined(this.zoomSettings.zoomPoint)) {\n this.zoom(this.zoomSettings.zoomFactor, this.zoomSettings.zoomPoint);\n }\n if (isNullOrUndefined(this.initialZoomValue)) {\n this.initialZoomValue = this.zoomSettings.zoomFactor;\n }\n };\n ImageEditor.prototype.imageOnLoad = function (src) {\n var _this = this;\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var proxy = this;\n proxy.baseImg.src = src;\n this.baseImg.onload = function () {\n _this.lowerContext.drawImage(_this.baseImg, 0, 0, _this.lowerCanvas.width, _this.lowerCanvas.height);\n hideSpinner(_this.element);\n _this.element.style.opacity = '1';\n _this.updateCanvas();\n if (_this.currObjType.isUndoZoom) {\n _this.currObjType.isUndoZoom = false;\n _this.lowerCanvas.style.display = 'block';\n }\n _this.isUndoRedo = _this.isErrorImage = false;\n if (Browser.isDevice) {\n if (_this.isToolbar() && (!isNullOrUndefined(document.getElementById(_this.element.id + '_toolbar'))) &&\n (!isNullOrUndefined(getComponent(document.getElementById(_this.element.id + '_toolbar'), 'toolbar')))) {\n getComponent(document.getElementById(_this.element.id + '_toolbar'), 'toolbar').destroy();\n }\n if (!isNullOrUndefined(document.getElementById(_this.element.id + '_bottomToolbar')) &&\n (!isNullOrUndefined(getComponent(document.getElementById(_this.element.id + '_bottomToolbar'), 'toolbar')))) {\n getComponent(document.getElementById(_this.element.id + '_bottomToolbar'), 'toolbar').destroy();\n }\n _this.initToolbarItem(false, Browser.isDevice, null);\n _this.createBottomToolbar();\n }\n else {\n if (_this.isToolbar() && (!isNullOrUndefined(document.getElementById(_this.element.id + '_toolbar'))) &&\n (!isNullOrUndefined(getComponent(document.getElementById(_this.element.id + '_toolbar'), 'toolbar')))) {\n getComponent(document.getElementById(_this.element.id + '_toolbar'), 'toolbar').destroy();\n }\n _this.initToolbarItem(false, false, null);\n }\n };\n this.baseImg.onerror = function () {\n hideSpinner(_this.element);\n _this.isErrorImage = true;\n };\n };\n ImageEditor.prototype.refreshActiveObj = function () {\n this.activeObj = {};\n this.activeObj.activePoint = { startX: 0, startY: 0, endX: 0, endY: 0, width: 0, height: 0 };\n this.activeObj.triangle = [];\n this.activeObj.triangleRatio = [];\n this.activeObj.flipObjColl = [];\n this.activeObj.strokeSettings = this.strokeSettings;\n this.activeObj.textSettings = this.textSettings;\n };\n ImageEditor.prototype.redrawText = function () {\n if (this.activeObj.textSettings.bold) {\n this.upperContext.font = 'bold ' + this.activeObj.textSettings.fontSize + 'px' + ' ' + this.activeObj.textSettings.fontFamily;\n }\n if (this.activeObj.textSettings.italic) {\n this.upperContext.font = 'bold ' + this.activeObj.textSettings.fontSize + 'px' + ' ' + this.activeObj.textSettings.fontFamily;\n }\n if (this.activeObj.textSettings.bold && this.activeObj.textSettings.italic) {\n this.upperContext.font = 'italic bold ' + this.activeObj.textSettings.fontSize + 'px' + ' ' + this.activeObj.textSettings.fontFamily;\n }\n if (!this.activeObj.textSettings.bold && !this.activeObj.textSettings.italic) {\n this.upperContext.font = this.activeObj.textSettings.fontSize + 'px' + ' ' + this.activeObj.textSettings.fontFamily;\n }\n var rows = this.activeObj.keyHistory.split('\\n');\n var text = this.textArea.style.display === 'block' ? this.getMaxText(true) : this.getMaxText();\n var width = this.upperContext.measureText(text).width + this.activeObj.textSettings.fontSize * 0.5;\n var height = rows.length * (this.activeObj.textSettings.fontSize + this.activeObj.textSettings.fontSize * 0.25);\n this.setTextSelection(width, height);\n this.updateActiveObject(this.activeObj.activePoint, this.activeObj);\n this.redrawShape(this.activeObj);\n };\n ImageEditor.prototype.setTextSelection = function (width, height) {\n var degree = this.degree;\n if (this.activeObj.shapeDegree === 0) {\n degree = this.degree;\n }\n else {\n degree = this.degree - this.activeObj.shapeDegree;\n }\n if (degree < 0) {\n degree = 360 + degree;\n }\n for (var i = 0; i < this.activeObj.flipObjColl.length; i++) {\n if (degree === 0) {\n if (this.activeObj.flipObjColl[i].toLowerCase() === 'horizontal') {\n this.activeObj.activePoint = { startX: this.activeObj.activePoint.endX - width,\n startY: this.activeObj.activePoint.startY,\n endX: (this.activeObj.activePoint.endX),\n endY: this.activeObj.activePoint.startY + (height ? height : 0) };\n }\n else if (this.activeObj.flipObjColl[i].toLowerCase() === 'vertical') {\n this.activeObj.activePoint.startY = this.activeObj.activePoint.endY - height;\n this.activeObj.activePoint = { startX: this.activeObj.activePoint.startX, startY: this.activeObj.activePoint.startY,\n endX: (this.activeObj.activePoint.startX + (width ? width : 0)),\n endY: this.activeObj.activePoint.endY };\n }\n else {\n this.activeObj.activePoint = { startX: this.activeObj.activePoint.startX, startY: this.activeObj.activePoint.startY,\n endX: (this.activeObj.activePoint.startX + (width ? width : 0)),\n endY: this.activeObj.activePoint.startY + (height ? height : 0) };\n }\n }\n else if (degree === 90) {\n if (this.activeObj.flipObjColl[i].toLowerCase() === 'vertical') {\n this.activeObj.activePoint.startX = this.activeObj.activePoint.endX - height;\n this.activeObj.activePoint = { startX: this.activeObj.activePoint.startX,\n startY: this.activeObj.activePoint.endY - width,\n endX: (this.activeObj.activePoint.endX),\n endY: this.activeObj.activePoint.endY };\n }\n else if (this.activeObj.flipObjColl[i].toLowerCase() === 'horizontal') {\n this.activeObj.activePoint.endX = this.activeObj.activePoint.startX + height;\n this.activeObj.activePoint = { startX: this.activeObj.activePoint.startX, startY: this.activeObj.activePoint.startY,\n endX: (this.activeObj.activePoint.endX),\n endY: this.activeObj.activePoint.startY + (width ? width : 0) };\n }\n else {\n this.activeObj.activePoint.startX = this.activeObj.activePoint.endX - height;\n this.activeObj.activePoint = { startX: this.activeObj.activePoint.startX, startY: this.activeObj.activePoint.startY,\n endX: (this.activeObj.activePoint.endX),\n endY: this.activeObj.activePoint.startY + (width ? width : 0) };\n }\n }\n else if (degree === 180) {\n if (this.activeObj.flipObjColl[i].toLowerCase() === 'horizontal') {\n this.activeObj.activePoint.startY = this.activeObj.activePoint.endY - height;\n this.activeObj.activePoint = { startX: this.activeObj.activePoint.startX,\n startY: this.activeObj.activePoint.startY,\n endX: (this.activeObj.activePoint.startX + width),\n endY: this.activeObj.activePoint.endY };\n }\n else if (this.activeObj.flipObjColl[i].toLowerCase() === 'vertical') {\n this.activeObj.activePoint.endY = this.activeObj.activePoint.startY + height;\n this.activeObj.activePoint = { endX: this.activeObj.activePoint.endX, endY: this.activeObj.activePoint.endY,\n startX: (this.activeObj.activePoint.endX - (width ? width : 0)),\n startY: this.activeObj.activePoint.startY };\n }\n else {\n this.activeObj.activePoint = { endX: this.activeObj.activePoint.endX, endY: this.activeObj.activePoint.endY,\n startX: (this.activeObj.activePoint.endX - (width ? width : 0)),\n startY: this.activeObj.activePoint.endY - (height ? height : 0) };\n }\n }\n else if (degree === 270) {\n if (this.activeObj.flipObjColl[i].toLowerCase() === 'vertical') {\n this.activeObj.activePoint = { startX: this.activeObj.activePoint.startX,\n startY: this.activeObj.activePoint.startY,\n endX: (this.activeObj.activePoint.startX + height),\n endY: this.activeObj.activePoint.startY + (width ? width : 0) };\n }\n else if (this.activeObj.flipObjColl[i].toLowerCase() === 'horizontal') {\n this.activeObj.activePoint.startX = this.activeObj.activePoint.endX - height;\n this.activeObj.activePoint = { startX: this.activeObj.activePoint.startX,\n startY: this.activeObj.activePoint.endY - (width ? width : 0),\n endX: this.activeObj.activePoint.endX,\n endY: this.activeObj.activePoint.endY };\n }\n else {\n this.activeObj.activePoint.endX = this.activeObj.activePoint.startX + height;\n this.activeObj.activePoint = { startX: this.activeObj.activePoint.startX,\n startY: this.activeObj.activePoint.endY - (width ? width : 0),\n endX: this.activeObj.activePoint.endX,\n endY: this.activeObj.activePoint.endY };\n }\n }\n }\n if (this.activeObj.flipObjColl.length === 0) {\n if (degree === 0) {\n this.activeObj.activePoint = { startX: this.activeObj.activePoint.startX, startY: this.activeObj.activePoint.startY,\n endX: (this.activeObj.activePoint.startX + (width ? width : 0)),\n endY: this.activeObj.activePoint.startY + (height ? height : 0) };\n }\n else if (degree === 90) {\n this.activeObj.activePoint.startX = this.activeObj.activePoint.endX - height;\n this.activeObj.activePoint = { startX: this.activeObj.activePoint.startX, startY: this.activeObj.activePoint.startY,\n endX: (this.activeObj.activePoint.endX),\n endY: this.activeObj.activePoint.startY + (width ? width : 0) };\n }\n else if (degree === 180) {\n this.activeObj.activePoint = { endX: this.activeObj.activePoint.endX, endY: this.activeObj.activePoint.endY,\n startX: (this.activeObj.activePoint.endX - (width ? width : 0)),\n startY: this.activeObj.activePoint.endY - (height ? height : 0) };\n }\n else if (degree === 270) {\n this.activeObj.activePoint.endX = this.activeObj.activePoint.startX + height;\n this.activeObj.activePoint = { startX: this.activeObj.activePoint.startX,\n startY: this.activeObj.activePoint.endY - (width ? width : 0),\n endX: this.activeObj.activePoint.endX,\n endY: this.activeObj.activePoint.endY };\n }\n }\n this.activeObj.activePoint.width = this.activeObj.activePoint.endX - this.activeObj.activePoint.startX;\n this.activeObj.activePoint.height = this.activeObj.activePoint.endY - this.activeObj.activePoint.startY;\n if (this.degree === 360 || this.degree === -360) {\n this.degree = 0;\n }\n };\n ImageEditor.prototype.getCurrentObj = function () {\n var obj = { cropZoom: 0, defaultZoom: 0, totalPannedPoint: { x: 0, y: 0 }, totalPannedClientPoint: { x: 0, y: 0 },\n totalPannedInternalPoint: { x: 0, y: 0 }, tempFlipPanPoint: { x: 0, y: 0 }, activeObj: {},\n rotateFlipColl: [], degree: 0, currFlipState: '', zoomFactor: 0, previousZoomValue: 0,\n destPoints: { startX: 0, startY: 0, width: 0, height: 0 },\n srcPoints: { startX: 0, startY: 0, width: 0, height: 0 }, filter: '' };\n obj.cropZoom = this.cropZoomFactor;\n obj.defaultZoom = this.defaultZoomFactor;\n obj.zoomFactor = this.zoomSettings.zoomFactor;\n obj.previousZoomValue = this.previousZoomValue;\n obj.totalPannedPoint = extend({}, this.totalPannedPoint, {}, true);\n obj.totalPannedClientPoint = extend({}, this.totalPannedClientPoint, {}, true);\n obj.totalPannedInternalPoint = extend({}, this.totalPannedInternalPoint, {}, true);\n obj.tempFlipPanPoint = extend({}, this.tempFlipPanPoint, {}, true);\n obj.activeObj = extend({}, this.activeObj, {}, true);\n obj.rotateFlipColl = extend([], this.rotateFlipColl, [], true);\n obj.degree = this.degree;\n obj.currFlipState = this.currFlipState;\n obj.destPoints = { startX: this.destLeft, startY: this.destTop, endX: 0, endY: 0,\n width: this.destWidth, height: this.destHeight };\n obj.srcPoints = { startX: this.srcLeft, startY: this.srcTop, endX: 0, endY: 0,\n width: this.srcWidth, height: this.srcHeight };\n obj.filter = this.lowerContext.filter;\n return obj;\n };\n ImageEditor.prototype.updateUndoRedoColl = function (operation, previousObj, previousObjColl, previousPointColl, previousCropObj, previousText, currentText, previousFilter, isCircleCrop) {\n if (!this.isInitialLoading && this.allowUndoRedo) {\n var currentObj = this.getCurrentObj();\n currentObj.objColl = extend([], this.objColl, [], true);\n currentObj.pointColl = extend([], this.pointColl, [], true);\n currentObj.afterCropActions = extend([], this.afterCropActions, [], true);\n this.undoRedoColl.push({ operation: operation, previousObj: previousObj, currentObj: currentObj,\n previousObjColl: previousObjColl, currentObjColl: currentObj.objColl,\n previousPointColl: previousPointColl, currentPointColl: currentObj.pointColl,\n previousCropObj: previousCropObj, currentCropObj: extend({}, this.cropObj, {}, true),\n previousText: previousText, currentText: currentText, filter: previousFilter, isCircleCrop: isCircleCrop });\n this.enableDisableToolbarBtn();\n }\n };\n ImageEditor.prototype.fileSelect = function (inputElement, args) {\n if (!this.disabled) {\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n var filesData = args.target.files[0];\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n var fileData = filesData;\n if (!isNullOrUndefined(fileData.name.split('.')) &&\n !isNullOrUndefined(fileData.name.split('.')[1]) &&\n fileData.name.split('.')[1].toLowerCase() !== 'jpg' &&\n fileData.name.split('.')[1].toLowerCase() !== 'jpeg' &&\n fileData.name.split('.')[1].toLowerCase() !== 'png' &&\n fileData.name.split('.')[1].toLowerCase() !== 'svg') {\n return;\n }\n showSpinner(this.element);\n this.element.style.opacity = '0.5';\n if (!isNullOrUndefined(fileData.name.split('.')) &&\n !isNullOrUndefined(fileData.name.split('.')[1])) {\n var fileType = this.toPascalCase(fileData.name.split('.')[1]);\n if (fileType === 'JPG' || fileType === 'Jpg') {\n this.fileType = 'Jpeg';\n }\n else {\n this.fileType = fileType;\n }\n }\n else {\n this.fileType = null;\n }\n if (this.isImageLoaded) {\n this.isImageLoaded = false;\n this.reset();\n }\n if (isNullOrUndefined(this.toolbarTemplate)) {\n this.reset();\n this.update();\n }\n this.fileName = inputElement.value.split('\\\\')[inputElement.value.split('\\\\').length - 1];\n this.fileName = this.fileName.split('.')[0];\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n var URL_1 = window.URL;\n var url = URL_1.createObjectURL(filesData);\n this.imageOnLoad(url.toString());\n inputElement.value = '';\n }\n };\n ImageEditor.prototype.findTextPoint = function (e) {\n if (this.activeObj.shape === 'text') {\n this.textArea.style.transformOrigin = '0 0';\n var degree = void 0;\n var scale = '';\n if (this.activeObj.shapeDegree === 0) {\n degree = this.degree;\n }\n else {\n degree = this.degree - this.activeObj.shapeDegree;\n }\n if (degree < 0) {\n degree = 360 + degree;\n }\n if (this.activeObj.flipObjColl.length > 0) {\n // need to add scale value according to length.\n for (var i = 0; i < this.activeObj.flipObjColl.length; i++) {\n if (degree !== 0 && degree % 90 === 0 && degree !== 180) {\n scale += this.activeObj.flipObjColl[i].toLowerCase() === 'horizontal' ? 'scale(1, -1)' :\n 'scale(-1, 1)';\n }\n else {\n scale += this.activeObj.flipObjColl[i].toLowerCase() === 'horizontal' ? 'scale(-1, 1)' :\n 'scale(1, -1)';\n }\n if (this.activeObj.flipObjColl[i].toLowerCase() === 'horizontal') {\n this.textArea.style.transform = 'rotate(' + degree + 'deg)' + scale;\n }\n else if (this.activeObj.flipObjColl[i].toLowerCase() === 'vertical') {\n this.textArea.style.transform = 'rotate(' + degree + 'deg)' + scale;\n }\n }\n }\n else {\n this.textArea.style.transform = 'rotate(' + degree + 'deg)';\n }\n this.findTextTarget(e);\n }\n };\n ImageEditor.prototype.getStrokeWidth = function (text) {\n var strokeWidth;\n var currentWidth = parseInt(text, 10) / 2;\n switch (currentWidth) {\n case 1:\n strokeWidth = this.l10n.getConstant('XSmall');\n break;\n case 2:\n strokeWidth = this.l10n.getConstant('Small');\n break;\n case 3:\n strokeWidth = this.l10n.getConstant('Medium');\n break;\n case 4:\n strokeWidth = this.l10n.getConstant('Large');\n break;\n case 5:\n strokeWidth = this.l10n.getConstant('XLarge');\n break;\n }\n return strokeWidth;\n };\n ImageEditor.prototype.updateToolbarItems = function () {\n var selFillElem = this.element.querySelector('.e-fill.e-template .e-dropdownbtn-preview');\n var selStrokeElem = this.element.querySelector('.e-stroke.e-template .e-dropdownbtn-preview');\n var selTextStrokeElem = this.element.querySelector('.e-text-font-color.e-template .e-dropdownbtn-preview');\n var selPenStrokeElem = this.element.querySelector('.e-pen-stroke-color.e-template .e-dropdownbtn-preview');\n var strokeWidthElem = this.element.querySelector('.e-shape-stroke-width');\n var fontFamilyElem = this.element.querySelector('.e-text-font-family');\n var fontSizeElem = this.element.querySelector('.e-text-font-size');\n var fontStyleElem = this.element.querySelector('.e-text-font-style');\n if (selFillElem) {\n if (this.activeObj.strokeSettings.fillColor === '') {\n selFillElem.classList.add('e-nocolor-item');\n }\n else {\n selFillElem.classList.remove('e-nocolor-item');\n selFillElem.style.background = this.activeObj.strokeSettings.fillColor;\n }\n getComponent(this.element.id + '_shape_fill', 'colorpicker').value\n = this.activeObj.strokeSettings.fillColor + 'ff';\n }\n if (selStrokeElem) {\n selStrokeElem.style.background = this.activeObj.strokeSettings.strokeColor;\n getComponent(this.element.id + '_shape_stroke', 'colorpicker').value\n = this.activeObj.strokeSettings.strokeColor + 'ff';\n }\n if (selTextStrokeElem) {\n selTextStrokeElem.style.background = this.activeObj.strokeSettings.strokeColor;\n getComponent(this.element.id + '_text_font', 'colorpicker').value\n = this.activeObj.strokeSettings.strokeColor + 'ff';\n }\n if (selPenStrokeElem) {\n selPenStrokeElem.style.background = this.activeObj.strokeSettings.strokeColor;\n getComponent(this.element.id + '_pen_stroke', 'colorpicker').value\n = this.activeObj.strokeSettings.strokeColor + 'ff';\n }\n if (fontFamilyElem) {\n if (Browser.isDevice) {\n fontFamilyElem.setAttribute('style', 'font-family:' + this.activeObj.textSettings.fontFamily.toLowerCase());\n }\n else {\n fontFamilyElem.textContent = this.activeObj.textSettings.fontFamily;\n }\n }\n if (fontSizeElem) {\n for (var i = 0; i < this.fontSizeColl.length; i++) {\n if (parseInt(this.fontSizeColl[i].text, 10) >= Math.round(this.activeObj.textSettings.fontSize)) {\n fontSizeElem.textContent = (i + 1).toString();\n break;\n }\n }\n }\n if (fontStyleElem) {\n if (Browser.isDevice) {\n if (!this.activeObj.textSettings.bold && !this.activeObj.textSettings.italic) {\n fontStyleElem.setAttribute('style', '');\n }\n else if (this.activeObj.textSettings.bold && this.activeObj.textSettings.italic) {\n fontStyleElem.setAttribute('style', 'font-style: italic;font-weight: bold');\n }\n else if (this.activeObj.textSettings.bold) {\n fontStyleElem.setAttribute('style', 'font-weight: bold');\n }\n else {\n fontStyleElem.setAttribute('style', 'font-style: italic');\n }\n }\n else {\n if (!this.activeObj.textSettings.bold && !this.activeObj.textSettings.italic) {\n fontStyleElem.textContent = 'Default';\n }\n else if (this.activeObj.textSettings.bold && this.activeObj.textSettings.italic) {\n fontStyleElem.textContent = 'Bold Italic';\n }\n else if (this.activeObj.textSettings.bold) {\n fontStyleElem.textContent = 'Bold';\n }\n else {\n fontStyleElem.textContent = 'Italic';\n }\n }\n }\n if (strokeWidthElem) {\n var strokeWidth = Math.round((this.activeObj.strokeSettings.strokeWidth)).toString();\n strokeWidthElem.textContent = this.getStrokeWidth(strokeWidth);\n }\n };\n ImageEditor.prototype.setTimer = function (e) {\n if (this.timer > 10) {\n clearTimeout(this.timer);\n this.timer = 0;\n this.findTextPoint(e);\n if (Browser.isDevice) {\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n }\n }\n };\n // eslint-disable-next-line\n ImageEditor.prototype.targetTouches = function (touches) {\n var bbox = this.lowerCanvas.getBoundingClientRect();\n var p1 = { x: touches[0].pageX - bbox.left, y: touches[0].pageY - bbox.top };\n var p2 = { x: touches[1].pageX - bbox.left, y: touches[1].pageY - bbox.top };\n var points = [p1, p2];\n return points;\n };\n ImageEditor.prototype.calculateScale = function (startTouches, endTouches) {\n var startDistance = this.getDistance(startTouches[0], startTouches[1]);\n var endDistance = this.getDistance(endTouches[0], endTouches[1]);\n return endDistance / startDistance;\n };\n ImageEditor.prototype.getDistance = function (a, b) {\n var x = 0;\n var y = 0;\n if (!isNullOrUndefined(a) && !isNullOrUndefined(b)) {\n x = a.x - b.x;\n y = a.y - b.y;\n }\n return Math.sqrt(x * x + y * y);\n };\n ImageEditor.prototype.setXYPoints = function (e) {\n e.preventDefault();\n var x;\n var y;\n if (e.type === 'mousedown') {\n x = e.clientX;\n y = e.clientY;\n }\n else {\n this.touchEndPoint.x = x = e.touches[0].clientX;\n this.touchEndPoint.y = y = e.touches[0].clientY;\n }\n var bbox = this.lowerCanvas.getBoundingClientRect();\n x -= bbox.left;\n y -= bbox.top;\n return { x: x, y: y };\n };\n ImageEditor.prototype.touchStartHandler = function (e) {\n e.preventDefault();\n if (e.touches.length === 2) {\n this.isFirstMove = true;\n }\n else {\n this.mouseDownEventHandler(e);\n }\n EventHandler.add(this.lowerCanvas, 'touchend', this.mouseUpEventHandler, this);\n EventHandler.add(this.lowerCanvas, 'touchmove', this.mouseMoveEventHandler, this);\n EventHandler.add(this.upperCanvas, 'touchend', this.mouseUpEventHandler, this);\n EventHandler.add(this.upperCanvas, 'touchmove', this.mouseMoveEventHandler, this);\n };\n ImageEditor.prototype.getCurrentIndex = function () {\n var index;\n for (var i = 0; i < this.objColl.length; i++) {\n if (this.activeObj.currIndex === this.objColl[i].currIndex) {\n index = i;\n break;\n }\n }\n return index;\n };\n ImageEditor.prototype.isShapeClick = function (e, isCropSelection) {\n var isShape = false;\n if (this.togglePen) {\n return isShape;\n }\n if (!isNullOrUndefined(this.activeObj.shape) && this.activeObj.shape === 'text' && this.isShapeInserted) {\n var isTextArea = this.textArea.style.display === 'block' ? true : false;\n var activeObj = extend({}, this.activeObj, null, true);\n this.redrawActObj(null, null, true);\n var points = this.setXYPoints(e);\n var x = points.x;\n var y = points.y;\n isShape = this.findTargetObj(x, y, isCropSelection);\n if (!isCropSelection) {\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n }\n if (isTextArea) {\n this.textArea.value = this.objColl[this.objColl.length - 1].keyHistory;\n this.textArea.style.display = 'block';\n this.activeObj = activeObj;\n var index = this.getCurrentIndex();\n if (isNullOrUndefined(index)) {\n this.objColl.pop();\n }\n else {\n this.objColl.splice(index, 1);\n }\n }\n else if (!isShape && !isNullOrUndefined(activeObj.shape)) {\n this.activeObj = activeObj;\n var index = this.getCurrentIndex();\n if ((!isNullOrUndefined(index) &&\n JSON.stringify(this.activeObj.activePoint) === JSON.stringify(this.objColl[index].activePoint))) {\n this.objColl.splice(index, 1);\n }\n else if (isNullOrUndefined(this.activeObj.currIndex)) {\n this.objColl.pop();\n }\n }\n }\n return isShape;\n };\n ImageEditor.prototype.isShapeTouch = function (e, isCropSelection) {\n var isShape = false;\n if (e.type === 'touchstart' && !this.togglePen) {\n if (!isNullOrUndefined(this.activeObj) && this.activeObj.shape === 'text') {\n this.timer = setTimeout(this.setTimer.bind(this), 1000, e);\n }\n var isTextArea = this.textArea.style.display === 'block' ? true : false;\n var activeObj = extend({}, this.activeObj, null, true);\n this.redrawActObj(null, null, true);\n var points = this.setXYPoints(e);\n var x = points.x;\n var y = points.y;\n isShape = this.findTargetObj(x, y, isCropSelection);\n if (!isCropSelection) {\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n }\n if (isTextArea) {\n this.textArea.value = this.objColl[this.objColl.length - 1].keyHistory;\n this.textArea.style.display = 'block';\n this.activeObj = activeObj;\n var index = this.getCurrentIndex();\n if (isNullOrUndefined(index)) {\n this.objColl.pop();\n }\n else {\n this.objColl.splice(index, 1);\n }\n }\n else if (!isShape && !isNullOrUndefined(activeObj.shape)) {\n this.activeObj = activeObj;\n var index = this.getCurrentIndex();\n if ((!isNullOrUndefined(index) && JSON.stringify(this.activeObj.activePoint) === JSON.stringify(this.objColl[index].activePoint))) {\n this.objColl.splice(index, 1);\n }\n else if (isNullOrUndefined(this.activeObj.currIndex)) {\n this.objColl.pop();\n }\n }\n }\n return isShape;\n };\n ImageEditor.prototype.isFreehandDrawTouch = function (e, isCropSelection) {\n var isFreehandDraw = false;\n if (e.type === 'touchstart' && !isCropSelection && !this.togglePen) {\n var isTextArea = this.textArea.style.display === 'block' ? true : false;\n var activeObj = extend({}, this.activeObj, null, true);\n this.redrawActObj(null, null, true);\n var points = this.setXYPoints(e);\n var x = points.x;\n var y = points.y;\n this.setCursor(x, y);\n if (this.isFreehandDrawingPoint) {\n isFreehandDraw = true;\n }\n if (isTextArea) {\n this.textArea.value = this.objColl[this.objColl.length - 1].keyHistory;\n this.textArea.style.display = 'block';\n this.activeObj = activeObj;\n var index = this.getCurrentIndex();\n if (isNullOrUndefined(index)) {\n this.objColl.pop();\n }\n else {\n this.objColl.splice(index, 1);\n }\n }\n if (!isNullOrUndefined(activeObj.shape)) {\n this.activeObj = activeObj;\n var index = this.getCurrentIndex();\n if ((!isNullOrUndefined(index) && JSON.stringify(this.activeObj.activePoint) === JSON.stringify(this.objColl[index].activePoint))) {\n this.objColl.splice(index, 1);\n }\n else if (isNullOrUndefined(this.activeObj.currIndex)) {\n this.objColl.pop();\n }\n }\n }\n return isFreehandDraw;\n };\n ImageEditor.prototype.selectFreehandDraw = function (index) {\n this.isFreehandDrawEditing = true;\n if (!isNullOrUndefined(index) || index === 0) {\n if (this.isFreehandDrawIndex(index)) {\n this.freehandDrawSelectedIndex = this.freehandDrawHoveredIndex = index;\n this.hoverFreehandraw();\n this.upperCanvas.style.cursor = 'pointer';\n }\n else {\n return;\n }\n }\n this.freehandDrawSelectedIndex = this.freehandDrawHoveredIndex;\n this.pointColl[this.freehandDrawSelectedIndex].isSelected = true;\n this.freehandDrawSelectedId = this.pointColl[this.freehandDrawSelectedIndex].id;\n if (this.pointColl[this.freehandDrawHoveredIndex].strokeColor !== '#42a5f5') {\n this.activeObj.strokeSettings.strokeColor = this.tempFreeHandDrawEditingStyles.strokeColor =\n this.pointColl[this.freehandDrawHoveredIndex].strokeColor;\n }\n this.activeObj.strokeSettings.strokeWidth = this.tempFreeHandDrawEditingStyles.strokeWidth =\n this.pointColl[this.freehandDrawHoveredIndex].strokeWidth;\n if (this.isFreehandDrawEditing) {\n this.refreshToolbar('pen');\n }\n else {\n this.okBtn();\n }\n };\n ImageEditor.prototype.closeContextualToolbar = function () {\n var isContextualToolbar = false;\n if ((!isNullOrUndefined(this.element.querySelector('#' + this.element.id + '_contextualToolbar')) &&\n !this.element.querySelector('#' + this.element.id + '_contextualToolbar').parentElement.classList.contains('e-hide')) ||\n (!isNullOrUndefined(this.element.querySelector('#' + this.element.id + '_headWrapper'))\n && !this.element.querySelector('#' + this.element.id + '_headWrapper').parentElement.classList.contains('e-hide'))) {\n this.element.querySelector('.e-contextual-toolbar-wrapper').classList.add('e-hide');\n this.okBtn();\n this.refreshMainToolbar();\n isContextualToolbar = true;\n }\n return isContextualToolbar;\n };\n ImageEditor.prototype.applyObj = function (x, y) {\n var isApply = false;\n if (!isNullOrUndefined(this.activeObj.shape) && (this.activeObj.shape === 'rectangle' || this.activeObj.shape === 'ellipse' ||\n this.activeObj.shape === 'text' || this.activeObj.shape === 'line' || this.activeObj.shape === 'arrow')) {\n if (x >= (this.activeObj.activePoint.startX - (this.activeObj.topLeftCircle.radius * 2)) &&\n x <= (this.activeObj.activePoint.endX + (this.activeObj.topLeftCircle.radius * 2)) &&\n y >= (this.activeObj.activePoint.startY - (this.activeObj.topLeftCircle.radius * 2)) &&\n y <= (this.activeObj.activePoint.endY + (this.activeObj.topLeftCircle.radius * 2))) {\n isApply = false;\n }\n else {\n isApply = true;\n }\n }\n return isApply;\n };\n ImageEditor.prototype.applyCurrShape = function (isShapeClick) {\n var isApply = false;\n if (this.togglePen) {\n return isApply;\n }\n var obj = extend({}, this.activeObj, null, true);\n if (this.isShapeInserted && this.activeObj.shape === 'text' && isShapeClick) {\n this.isInitialTextEdited = this.isShapeTextInserted = true;\n }\n if (this.textArea.style.display === 'block') {\n var activeObj = extend({}, this.activeObj, null, true);\n this.redrawActObj();\n obj = extend({}, this.objColl[this.objColl.length - 1], null, true);\n this.objColl.pop();\n this.activeObj = extend({}, activeObj, null, true);\n this.textArea.value = obj.keyHistory;\n this.textArea.style.display = 'block';\n var strokeColor = obj.strokeSettings.strokeColor.split('(')[0] === 'rgb' ?\n this.rgbToHex(parseFloat(obj.strokeSettings.strokeColor.split('(')[1].split(',')[0]), parseFloat(obj.strokeSettings.strokeColor.split('(')[1].split(',')[1]), parseFloat(obj.strokeSettings.strokeColor.split('(')[1].split(',')[2])) :\n obj.strokeSettings.strokeColor;\n if (strokeColor === '#ffffff') {\n strokeColor = '#fff';\n }\n if (this.tempActiveObj.strokeSettings.strokeColor === '#ffffff') {\n this.tempActiveObj.strokeSettings.strokeColor = '#fff';\n }\n if (obj.keyHistory !== this.tempActiveObj.keyHistory ||\n strokeColor !== this.tempActiveObj.strokeSettings.strokeColor ||\n obj.textSettings.fontFamily !== this.tempActiveObj.textSettings.fontFamily ||\n Math.round(obj.textSettings.fontSize) !== Math.round(this.tempActiveObj.textSettings.fontSize) ||\n Math.round(obj.textSettings.fontRatio) !== Math.round(this.tempActiveObj.textSettings.fontRatio) ||\n obj.textSettings.bold !== this.tempActiveObj.textSettings.bold ||\n obj.textSettings.italic !== this.tempActiveObj.textSettings.italic ||\n obj.textSettings.underline !== this.tempActiveObj.textSettings.underline) {\n isApply = true;\n }\n if (this.isInitialTextEdited && !isApply) {\n isApply = true;\n this.isInitialTextEdited = false;\n }\n }\n else {\n isApply = JSON.stringify(obj) !== JSON.stringify(this.tempActiveObj);\n }\n return isApply;\n };\n ImageEditor.prototype.mouseDownEventHandler = function (e) {\n if (e.type === 'touchstart') {\n this.isTouch = true;\n }\n else {\n this.isTouch = false;\n }\n if (e.type === 'touchstart' && e.currentTarget === this.lowerCanvas && !this.isImageLoaded) {\n return;\n }\n var isCropSelection = false;\n var splitWords;\n var isPan = true;\n if (this.activeObj.shape !== undefined) {\n splitWords = this.activeObj.shape.split('-');\n }\n if (splitWords !== undefined && splitWords[0] === 'crop') {\n isCropSelection = true;\n }\n if (isCropSelection) {\n this.dragCanvas = this.togglePan = true;\n }\n var imageEditorClickEventArgs = { point: this.setXYPoints(e) };\n this.trigger('click', imageEditorClickEventArgs);\n var x = imageEditorClickEventArgs.point.x;\n var y = imageEditorClickEventArgs.point.y;\n if (isCropSelection && this.dragCanvas) {\n this.setCursor(x, y);\n if (this.upperCanvas.style.cursor !== 'move' && this.upperCanvas.style.cursor !== 'crosshair' &&\n this.upperCanvas.style.cursor !== 'default' && this.upperCanvas.style.cursor !== 'grab') {\n isPan = false;\n }\n }\n if (!isNullOrUndefined(this.activeObj.shape)) {\n this.isObjSelected = true;\n }\n else {\n this.isObjSelected = false;\n }\n var prevObj = this.getCurrentObj();\n var activeObj = extend({}, this.activeObj, null, true);\n var isShape = this.isShapeTouch(e, isCropSelection);\n var isFreehandDraw = this.isFreehandDrawTouch(e, isCropSelection);\n var isShapeClick = isShape ? isShape : this.isShapeClick(e, isCropSelection);\n var allowUndoRedoPush = this.applyCurrShape(isShapeClick);\n if (this.isTouch && !isShape && !isNullOrUndefined(activeObj.shape) && !isCropSelection) {\n if (this.applyObj(x, y)) {\n this.okBtn(true);\n this.prevActObj = null;\n }\n var prevCropObj = extend({}, this.cropObj, {}, true);\n this.updateUndoRedoColl('shapeTransform', prevObj, prevObj.objColl, prevObj.pointColl, prevCropObj);\n if (allowUndoRedoPush) {\n this.updateCurrentUndoRedoColl('ok');\n }\n }\n if (!isShape && !this.togglePen && !isCropSelection) {\n this.refreshMainToolbar();\n this.closeContextualToolbar();\n }\n if (this.dragCanvas && isPan && (this.upperCanvas.style.cursor === 'grab' || this.isTouch)\n && !isShape && !isFreehandDraw && !this.togglePen) {\n if (this.applyObj(x, y)) {\n this.okBtn(true);\n if (allowUndoRedoPush) {\n this.updateCurrentUndoRedoColl('ok');\n }\n this.prevActObj = null;\n }\n if (this.isFreehandDrawEditing) {\n this.applyFreehandDraw();\n }\n this.applyShape();\n this.canvasMouseDownHandler(e);\n }\n else {\n var points = this.setXYPoints(e);\n var x_1 = points.x;\n var y_1 = points.y;\n if (this.applyObj(x_1, y_1)) {\n this.okBtn(true);\n if (allowUndoRedoPush) {\n this.updateCurrentUndoRedoColl('ok');\n }\n this.prevActObj = null;\n }\n this.redrawActObj(x_1, y_1, true);\n if (this.isFreehandDrawingPoint || (this.isFreehandDrawCustomized && !this.togglePen)) {\n if (!isNullOrUndefined(this.freehandDrawSelectedIndex) &&\n this.freehandDrawSelectedIndex !== this.freehandDrawHoveredIndex) {\n var tempHoveredIndex = this.freehandDrawHoveredIndex;\n this.okBtn();\n this.isFreehandDrawCustomized = false;\n this.freehandDrawHoveredIndex = tempHoveredIndex;\n if (this.freehandDrawHoveredIndex > -1) {\n var strokeColor = this.pointColl[this.freehandDrawHoveredIndex].strokeColor;\n this.hoverFreehandraw(strokeColor, this.pointColl[this.freehandDrawHoveredIndex].strokeWidth);\n }\n }\n if (!isNullOrUndefined(this.freehandDrawHoveredIndex) && this.freehandDrawHoveredIndex > -1) {\n this.selectFreehandDraw();\n this.renderQuickAccessToolbar(true);\n }\n else if (this.freehandDrawSelectedIndex) {\n this.okBtn();\n var strokeColor = this.pointColl[this.freehandDrawSelectedIndex].strokeColor;\n this.hoverFreehandraw(strokeColor, this.pointColl[this.freehandDrawSelectedIndex].strokeWidth);\n }\n }\n else {\n if (this.isFreehandDrawEditing) {\n this.cancelFreehandDraw();\n if (!isNullOrUndefined(document.getElementById(this.element.id + '_quickAccessToolbarArea'))) {\n document.getElementById(this.element.id + '_quickAccessToolbarArea').style.display = 'none';\n }\n }\n this.closeContextualToolbar();\n this.isFreehandDrawEditing = false;\n if (this.upperCanvas.style.cursor === 'crosshair' || (Browser.isDevice && this.togglePen)) {\n if (this.togglePen) {\n if (isNullOrUndefined(this.activeObj.strokeSettings)) {\n this.activeObj.strokeSettings = this.strokeSettings;\n }\n if (isNullOrUndefined(this.penStrokeWidth)) {\n this.penStrokeWidth = 2;\n }\n this.upperContext.strokeStyle = this.activeObj.strokeSettings.strokeColor;\n this.upperContext.fillStyle = this.activeObj.strokeSettings.strokeColor;\n this.freehandDownHandler(e, this.upperCanvas); // To handle Freehand drawing\n }\n else {\n this.refreshActiveObj();\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n }\n this.currObjType.isActiveObj = false;\n this.dragElement = '';\n this.dragPoint.startX = this.dragPoint.startY = this.dragPoint.endX = this.dragPoint.endY = 0;\n }\n if ((this.upperCanvas.style.cursor !== 'crosshair' && e.type.toLowerCase() === 'touchstart') ||\n (this.currObjType.isActiveObj && this.upperCanvas.style.cursor !== 'default' && !this.togglePen)) {\n if (this.currObjType.isUndoAction) {\n this.refreshUndoRedoColl();\n }\n this.findTarget(x_1, y_1, e.type);\n }\n else if ((this.currObjType.shape === '' || this.currObjType.isCustomCrop) && !this.togglePen && this.upperCanvas.style.cursor !== 'default') {\n this.setActivePoint(x_1, y_1);\n }\n }\n }\n this.isShapeInserted = false;\n this.tempActiveObj = extend({}, this.activeObj, {}, true);\n };\n ImageEditor.prototype.mouseMoveEventHandler = function (e) {\n e.preventDefault();\n var bbox = this.lowerCanvas.getBoundingClientRect();\n if (e.type === 'touchmove' && e.touches.length === 2) {\n if (this.isFirstMove) {\n this.startTouches = this.targetTouches(e.touches);\n this.tempTouches = [];\n this.tempTouches.push({ x: (e.touches[0].clientX || (e.touches[0].pageX - this.lowerCanvas.offsetLeft) - bbox.left),\n y: (e.touches[0].clientY || (e.touches[0].pageY - this.lowerCanvas.offsetTop)) - bbox.top });\n this.tempTouches.push({ x: (e.touches[1].clientX || (e.touches[1].pageX - this.lowerCanvas.offsetLeft)) - bbox.left,\n y: (e.touches[1].clientY || (e.touches[1].pageY - this.lowerCanvas.offsetTop)) - bbox.top });\n }\n else {\n var firstFingerX = (e.touches[0].clientX || (e.touches[0].pageX - this.lowerCanvas.offsetLeft)) - bbox.left;\n var firstFingerY = (e.touches[0].clientY || (e.touches[0].pageY - this.lowerCanvas.offsetTop)) - bbox.top;\n var secondFingerX = (e.touches[1].clientX || (e.touches[1].pageX - this.lowerCanvas.offsetLeft)) - bbox.left;\n var secondFingerY = (e.touches[1].clientY || (e.touches[1].pageY - this.lowerCanvas.offsetTop)) - bbox.top;\n var center = { x: firstFingerX < secondFingerX ? secondFingerX - ((secondFingerX - firstFingerX) / 2) :\n firstFingerX - ((firstFingerX - secondFingerX) / 2), y: firstFingerY < secondFingerY ?\n secondFingerY - ((secondFingerY - firstFingerY) / 2) : firstFingerY - ((firstFingerY - secondFingerY) / 2) };\n if (this.currentMouseMovePoint.x !== center.x && this.currentMouseMovePoint.y !== center.y) {\n var type = '';\n if (e.type === 'touchmove' && (this.zoomSettings.zoomTrigger & ZoomTrigger.Pinch) === ZoomTrigger.Pinch) {\n this.zoomType = 'Pinch';\n var scale = this.calculateScale(this.startTouches, this.targetTouches(e.touches));\n this.startTouches = this.targetTouches(e.touches);\n if (scale > 1) {\n type = 'zoomIn';\n }\n else if (scale < 1) {\n type = 'zoomOut';\n }\n }\n if (type !== '') {\n this.performPointZoom(center.x, center.y, type);\n }\n this.tempTouches = [];\n this.tempTouches.push({ x: e.touches[0].clientX || (e.touches[0].pageX - this.lowerCanvas.offsetLeft),\n y: e.touches[0].clientY || (e.touches[0].pageY - this.lowerCanvas.offsetTop) });\n this.tempTouches.push({ x: e.touches[1].clientX || (e.touches[1].pageX - this.lowerCanvas.offsetLeft),\n y: e.touches[1].clientY || (e.touches[1].pageY - this.lowerCanvas.offsetTop) });\n this.currentMouseMovePoint.x = center.x;\n this.currentMouseMovePoint.y = center.y;\n }\n }\n this.isFirstMove = false;\n return;\n }\n var x;\n var y;\n if (e.type === 'mousemove') {\n x = e.clientX;\n y = e.clientY;\n }\n else {\n this.touchEndPoint.x = x = e.touches[0].clientX;\n this.touchEndPoint.y = y = e.touches[0].clientY;\n }\n x -= bbox.left;\n y -= bbox.top;\n this.canvasMouseMoveHandler(e);\n var isCropSelection = false;\n var splitWords;\n if (this.activeObj.shape !== undefined) {\n splitWords = this.activeObj.shape.split('-');\n }\n if (splitWords !== undefined && splitWords[0] === 'crop') {\n isCropSelection = true;\n }\n if (isCropSelection && this.zoomFactor > 0) {\n this.disableZoomOutBtn();\n }\n if (this.currObjType.isActiveObj && (this.activeObj.activePoint !== undefined || this.objColl.length > 0) &&\n !this.dragCanvas || this.activeObj.activePoint !== undefined) {\n if (this.dragElement === '') {\n this.setCursor(x, y);\n if ((!isNullOrUndefined(this.activeObj.activePoint) &&\n (this.activeObj.activePoint.width === 0 || (!isNullOrUndefined(this.activeObj.currIndex) &&\n this.cursorTargetObjId !== this.activeObj.currIndex)))\n && this.upperCanvas.style.cursor !== 'default' &&\n this.upperCanvas.style.cursor !== 'move' && this.upperCanvas.style.cursor !== 'crosshair'\n && this.upperCanvas.style.cursor !== 'grab' && this.upperCanvas.style.cursor !== 'pointer') {\n this.upperCanvas.style.cursor = 'move';\n }\n this.findTarget(x, y, e.type);\n }\n }\n if (this.currObjType.isDragging) {\n this.upperContext.clearRect(0, 0, this.lowerCanvas.width, this.lowerCanvas.height);\n this.updateActivePoint(x, y, isCropSelection);\n this.updateTrianglePoints(this.activeObj);\n if (this.isPreventDragging) {\n if ((this.activeObj.activePoint.startX > this.destLeft) &&\n (this.activeObj.activePoint.endX < this.destLeft + this.destWidth) && (this.activeObj.activePoint.startY > this.destTop)\n && (this.activeObj.activePoint.endY < this.destTop + this.destHeight)) {\n this.isPreventDragging = false;\n }\n this.drawObject('duplicate', null, null, null, true);\n }\n else {\n this.drawObject('duplicate');\n }\n if (isCropSelection) {\n this.dragCanvas = this.togglePan = true;\n }\n }\n };\n ImageEditor.prototype.mouseUpEventHandler = function (e) {\n if (e.type === 'touchstart') {\n this.isTouch = false;\n }\n else if (e.type === 'touchend') {\n e.stopImmediatePropagation();\n }\n e.preventDefault();\n if (this.togglePan) {\n this.canvasMouseUpHandler(e);\n }\n var x;\n var y;\n if (e.type === 'mouseup') {\n x = e.clientX;\n y = e.clientY;\n }\n else {\n x = this.touchEndPoint.x;\n y = this.touchEndPoint.y;\n }\n var bbox = this.lowerCanvas.getBoundingClientRect();\n x -= bbox.left;\n y -= bbox.top;\n if (e.type === 'touchend') {\n this.startTouches = this.tempTouches = [];\n this.isFirstMove = false;\n if (this.textArea.style.display === 'none') {\n this.timer = 0;\n }\n }\n var isCropSelection = false;\n var splitWords;\n if (this.activeObj.shape !== undefined) {\n splitWords = this.activeObj.shape.split('-');\n }\n if (splitWords !== undefined && splitWords[0] === 'crop') {\n isCropSelection = true;\n }\n if (e.currentTarget === this.upperCanvas) {\n this.currObjType.shape = this.currObjType.shape.toLowerCase();\n var prevCropObj = extend({}, this.cropObj, {}, true);\n var prevObj = this.getCurrentObj();\n prevObj.objColl = extend([], this.objColl, [], true);\n prevObj.pointColl = extend([], this.pointColl, [], true);\n prevObj.afterCropActions = extend([], this.afterCropActions, [], true);\n if (!this.togglePen && !isCropSelection) {\n if (!isNullOrUndefined(this.tempObjColl) && this.activeObj.activePoint.width !== 0) {\n this.objColl.push(this.activeObj);\n if (JSON.stringify(this.activeObj.activePoint) !== JSON.stringify(this.tempActiveObj.activePoint)) {\n this.updateUndoRedoColl('shapeTransform', prevObj, this.tempObjColl, prevObj.pointColl, prevCropObj);\n }\n this.redrawShape(this.objColl[this.objColl.length - 1]);\n this.tempObjColl = undefined;\n }\n if (!this.isFreehandDrawEditing) {\n this.applyCurrActObj(x, y);\n }\n }\n if (!isNullOrUndefined(this.activeObj)) {\n var isCropSelection_1 = false;\n var splitWords_1;\n if (this.activeObj.shape !== undefined) {\n splitWords_1 = this.activeObj.shape.split('-');\n }\n if (splitWords_1 === undefined && (this.currObjType.isCustomCrop || this.togglePen)) {\n isCropSelection_1 = true;\n }\n else if (splitWords_1 !== undefined && splitWords_1[0] === 'crop') {\n isCropSelection_1 = true;\n }\n if ((this.activeObj.shape === 'rectangle') || (this.activeObj.shape === 'ellipse')\n || (this.activeObj.shape === 'line' || this.activeObj.shape === 'arrow')) {\n this.refreshToolbar('shapes');\n }\n else if (this.activeObj.shape === 'text') {\n this.refreshToolbar('text');\n }\n else if (this.isFreehandDrawEditing) {\n this.refreshToolbar('pen');\n }\n else if (!isCropSelection_1) {\n this.callMainToolbar();\n }\n this.updateToolbarItems();\n }\n }\n if (this.activeObj.shape !== undefined) {\n splitWords = this.activeObj.shape.split('-');\n }\n if (splitWords !== undefined && splitWords[0] === 'crop') {\n isCropSelection = true;\n }\n if (!isNullOrUndefined(this.activeObj.shape) && !isCropSelection && e.currentTarget === this.upperCanvas &&\n this.textArea.style.display === 'none') {\n if (this.activeObj.shape === 'text') {\n this.refreshToolbar('text');\n }\n else {\n this.refreshToolbar('shapes');\n }\n this.updateToolbarItems();\n this.renderQuickAccessToolbar();\n }\n if (this.togglePen && e.currentTarget === this.upperCanvas) {\n this.freehandUpHandler(e, this.upperCanvas, this.upperContext);\n }\n else {\n this.currObjType.shape = '';\n }\n this.dragElement = '';\n this.currObjType.isInitialLine = this.currObjType.isDragging = false;\n this.oldPoint.x = undefined;\n this.oldPoint.y = undefined;\n };\n ImageEditor.prototype.getSquarePointForFreehandDraw = function (idx) {\n var activePoint = { startX: 0, startY: 0, endX: 0, endY: 0, width: 0, height: 0 };\n var sPoints = extend([], this.selPointColl[idx].points, []);\n this.points = extend([], this.pointColl[idx].points);\n this.pointCounter = 0;\n var len = sPoints.length;\n for (var l = 0; l < len; l++) {\n if (activePoint.startX === 0 && activePoint.startY === 0 && activePoint.endX === 0 && activePoint.endY === 0) {\n activePoint.startX = sPoints[l].x;\n activePoint.startY = sPoints[l].y;\n activePoint.endX = sPoints[l].x;\n activePoint.endY = sPoints[l].y;\n }\n if (sPoints[l].x < activePoint.startX) {\n activePoint.startX = sPoints[l].x;\n }\n if (sPoints[l].y < activePoint.startY) {\n activePoint.startY = sPoints[l].y;\n }\n if (sPoints[l].x > activePoint.endX) {\n activePoint.endX = sPoints[l].x;\n }\n if (sPoints[l].y > activePoint.endY) {\n activePoint.endY = sPoints[l].y;\n }\n }\n activePoint.startX -= this.penStrokeWidth;\n activePoint.startY -= this.penStrokeWidth;\n activePoint.endX += this.penStrokeWidth;\n activePoint.endY += this.penStrokeWidth;\n activePoint.width = activePoint.endX - activePoint.startX;\n activePoint.height = activePoint.endY - activePoint.startY;\n return activePoint;\n };\n ImageEditor.prototype.getQuickAccessToolbarItem = function (isPenEdit) {\n var args = { cancel: false, toolbarItems: [] };\n var toolbarItems = [];\n if (isNullOrUndefined(isPenEdit)) {\n toolbarItems.push('Clone');\n toolbarItems.push('Delete');\n if (this.activeObj.shape === 'text') {\n toolbarItems.push('EditText');\n }\n }\n else if (isPenEdit) {\n toolbarItems.push('Remove');\n }\n args.toolbarItems = extend([], toolbarItems, null, true);\n this.trigger('quickAccessToolbarOpening', args);\n var orgToolbarItems = [];\n if (args.cancel) {\n orgToolbarItems = [];\n }\n else {\n for (var i = 0; i < args.toolbarItems.length; i++) {\n if (args.toolbarItems[i] === 'Clone') {\n orgToolbarItems.push({ id: this.element.id + '_duplicate', prefixIcon: 'e-icons e-order', cssClass: 'top-icon e-order',\n tooltipText: this.l10n.getConstant('Duplicate'), align: 'Left' });\n }\n else if (args.toolbarItems[i] === 'Delete') {\n orgToolbarItems.push({ id: this.element.id + '_remove', prefixIcon: 'e-icons e-trash', cssClass: 'top-icon e-trash',\n tooltipText: this.l10n.getConstant('Remove'), align: 'Left' });\n }\n else if (args.toolbarItems[i] === 'EditText') {\n orgToolbarItems.push({ id: this.element.id + '_editText', prefixIcon: 'e-icons e-annotation-edit', cssClass: 'top-icon e-annotation-edit',\n tooltipText: this.l10n.getConstant('EditText'), align: 'Left' });\n }\n else {\n orgToolbarItems.push(args.toolbarItems[i]);\n }\n }\n }\n return orgToolbarItems;\n };\n ImageEditor.prototype.renderQuickAccessToolbar = function (isPenEdit) {\n if (!isNullOrUndefined(this.activeObj) && this.showQuickAccessToolbar) {\n var qtArea = document.getElementById(this.element.id + '_quickAccessToolbarArea');\n if (!isNullOrUndefined(document.getElementById(this.element.id + '_quickAccessToolbarArea'))) {\n document.getElementById(this.element.id + '_quickAccessToolbarArea').style.display = 'block';\n }\n var items = this.getQuickAccessToolbarItem(isPenEdit);\n if (items.length === 0) {\n return;\n }\n new Toolbar({\n items: items,\n clicked: this.defToolbarClicked.bind(this)\n }, '#' + this.element.id + '_quickAccessToolbar');\n if (isNullOrUndefined(isPenEdit)) {\n // 50 for toolbar width and 50 for toolbar height\n qtArea.style.left = (this.activeObj.activePoint.startX + (this.activeObj.activePoint.width / 2)) - 50 + 'px';\n qtArea.style.top = this.activeObj.activePoint.startY - 50 + 'px';\n }\n else if (isPenEdit) {\n var point = this.getSquarePointForFreehandDraw(this.freehandDrawSelectedIndex);\n // 25 for toolbar width and 50 for toolbar height\n qtArea.style.left = (point.startX + (point.width / 2)) - 25 + 'px';\n qtArea.style.top = point.startY - 50 + 'px';\n }\n }\n };\n ImageEditor.prototype.deleteItem = function () {\n var shapeChangingArgs = {};\n var previousShapeSettings = {};\n if (this.isFreehandDrawEditing) {\n this.updateFreehandDrawColorChange();\n var prevCropObj = extend({}, this.cropObj, {}, true);\n var prevObj = this.getCurrentObj();\n prevObj.objColl = extend([], this.objColl, [], true);\n prevObj.pointColl = extend([], this.pointColl, [], true);\n prevObj.afterCropActions = extend([], this.afterCropActions, [], true);\n this.deleteFreehandDraw(parseInt(this.freehandDrawSelectedId.split('_')[1], 10) - 1, true);\n this.updateUndoRedoColl('deleteFreehandDrawing', prevObj, prevObj.objColl, prevObj.pointColl, prevCropObj);\n this.updateCurrentUndoRedoColl('ok');\n }\n else if (this.textArea.style.display === 'none') {\n this.objColl.push(this.activeObj);\n var prevCropObj = extend({}, this.cropObj, {}, true);\n var prevObj = this.getCurrentObj();\n prevObj.objColl = extend([], this.objColl, [], true);\n prevObj.pointColl = extend([], this.pointColl, [], true);\n prevObj.afterCropActions = extend([], this.afterCropActions, [], true);\n this.objColl.pop();\n previousShapeSettings = this.updatePreviousShapeSettings();\n shapeChangingArgs = { action: 'delete', previousShapeSettings: previousShapeSettings, currentShapeSettings: null };\n this.keyHistory = '';\n this.clearSelection();\n this.trigger('shapeChanging', shapeChangingArgs);\n this.refreshMainToolbar();\n if (!isNullOrUndefined(prevObj.objColl[prevObj.objColl.length - 1].currIndex)) {\n this.updateUndoRedoColl('deleteObj', prevObj, prevObj.objColl, prevObj.pointColl, prevCropObj);\n this.updateCurrentUndoRedoColl('ok');\n }\n }\n if (!isNullOrUndefined(document.getElementById(this.element.id + '_quickAccessToolbarArea'))) {\n document.getElementById(this.element.id + '_quickAccessToolbarArea').style.display = 'none';\n }\n };\n ImageEditor.prototype.keyDownEventHandler = function (e) {\n var _this = this;\n if (e.ctrlKey && (e.key === '+' || e.key === '-')) {\n e.preventDefault();\n }\n var beforeSave = { fileName: this.fileName, fileType: this.fileType, cancel: false };\n var splitWords;\n switch (e.key) {\n case (e.ctrlKey && 's'):\n this.trigger('beforeSave', beforeSave, function (observableSaveArgs) {\n if (!beforeSave.cancel) {\n _this.export(observableSaveArgs.fileType, observableSaveArgs.fileName);\n }\n });\n e.preventDefault();\n e.stopImmediatePropagation();\n break;\n case (e.ctrlKey && 'z'):\n if (this.allowUndoRedo) {\n this.callUndo();\n }\n break;\n case (e.ctrlKey && 'y'):\n if (this.allowUndoRedo) {\n this.callRedo();\n }\n break;\n case (e.ctrlKey && '+'):\n if ((this.zoomSettings.zoomTrigger & ZoomTrigger.Commands) === ZoomTrigger.Commands) {\n this.zoomType = 'Commands';\n this.zoomAction(.1);\n }\n break;\n case (e.ctrlKey && '-'):\n if ((this.zoomSettings.zoomTrigger & ZoomTrigger.Commands) === ZoomTrigger.Commands) {\n this.zoomType = 'Commands';\n this.zoomAction(-.1);\n }\n break;\n case 'Delete':\n this.deleteItem();\n break;\n case 'Escape':\n this.performCancel();\n break;\n case 'Enter':\n if (this.activeObj.shape !== undefined) {\n splitWords = this.activeObj.shape.split('-');\n }\n if (this.activeObj.horTopLine !== undefined && (this.activeObj.shape !== undefined && splitWords[0] === 'crop')) {\n this.crop();\n }\n break;\n case 'Tab':\n if (this.textArea.style.display === 'block') {\n var allowUndoRedoPush = this.applyCurrShape(false);\n this.redrawActObj();\n if (allowUndoRedoPush) {\n this.updateCurrentUndoRedoColl('ok');\n }\n }\n break;\n default:\n if (Browser.isDevice && this.textArea.style.display === 'block') {\n setTimeout(this.textKeyDown.bind(this), 1, e);\n }\n break;\n }\n };\n ImageEditor.prototype.keyUpEventHandler = function (e) {\n // eslint-disable-next-line\n if (this.textArea.style.display === 'block' && e.target.id === this.element.id + '_textArea') {\n setTimeout(this.textKeyDown.bind(this), 1, e);\n }\n };\n ImageEditor.prototype.canvasMouseDownHandler = function (e) {\n e.preventDefault();\n var x;\n var y;\n if (e.type === 'mousedown') {\n x = e.offsetX || (e.pageX - this.lowerCanvas.offsetLeft);\n y = e.offsetY || (e.pageY - this.lowerCanvas.offsetTop);\n }\n else {\n x = e.touches[0].clientX || (e.touches[0].pageX - this.lowerCanvas.offsetLeft);\n y = e.touches[0].clientY || (e.touches[0].pageY - this.lowerCanvas.offsetTop);\n }\n var bbox = this.lowerCanvas.getBoundingClientRect();\n x -= bbox.left;\n y -= bbox.top;\n this.panDown = { x: x, y: y };\n if (isNullOrUndefined(this.tempPanMove)) {\n this.tempPanMove = { x: x, y: y };\n }\n };\n ImageEditor.prototype.canvasMouseMoveHandler = function (e) {\n if (this.dragCanvas) {\n this.lowerCanvas.style.cursor = 'grab';\n }\n else {\n this.dragCanvas = this.togglePan = false;\n this.lowerCanvas.style.cursor = this.upperCanvas.style.cursor = 'default';\n }\n var x;\n var y;\n if (e.type === 'mousemove') {\n x = e.offsetX || (e.pageX - this.lowerCanvas.offsetLeft);\n y = e.offsetY || (e.pageY - this.lowerCanvas.offsetTop);\n }\n else {\n x = e.touches[0].clientX || (e.touches[0].pageX - this.lowerCanvas.offsetLeft);\n y = e.touches[0].clientY || (e.touches[0].pageY - this.lowerCanvas.offsetTop);\n }\n var bbox = this.lowerCanvas.getBoundingClientRect();\n x -= bbox.left;\n y -= bbox.top;\n this.panMove = { x: x, y: y };\n if (this.panDown && this.panMove && this.togglePan && this.dragCanvas) {\n this.drawPannedImage();\n }\n };\n ImageEditor.prototype.canvasMouseUpHandler = function (e) {\n e.preventDefault();\n if (this.togglePan) {\n if (this.panDown && this.panMove && this.togglePan && this.dragCanvas) {\n this.panDown = null;\n this.panMove = null;\n this.tempPanMove = null;\n }\n }\n this.currObjType.isDragging = false;\n };\n ImageEditor.prototype.handleScroll = function (e) {\n var x;\n var y;\n var isInsideCanvas = false;\n if (e.type === 'mousewheel') {\n // eslint-disable-next-line\n x = e.clientX;\n y = e.clientY;\n }\n var bbox = this.lowerCanvas.getBoundingClientRect();\n x -= bbox.left;\n y -= bbox.top;\n if (x > this.destLeft && x < this.destLeft + this.destWidth && y > this.destTop && y < this.destTop + this.destHeight) {\n isInsideCanvas = true;\n }\n e.stopPropagation();\n if (e.ctrlKey === true && isInsideCanvas) {\n e.preventDefault();\n if (!this.isCropTab) {\n this.okBtn();\n this.closeContextualToolbar();\n }\n var type = '';\n if (e.type === 'mousewheel' && (this.zoomSettings.zoomTrigger & ZoomTrigger.MouseWheel) === ZoomTrigger.MouseWheel) {\n this.zoomType = 'MouseWheel';\n // eslint-disable-next-line\n if (e.wheelDelta > 0) {\n type = 'zoomIn';\n }\n else {\n type = 'zoomOut';\n }\n }\n if (type !== '') {\n this.performPointZoom(x, y, type);\n }\n }\n };\n ImageEditor.prototype.performPointZoom = function (x, y, type) {\n var ratioX = (x - this.destLeft) / this.destWidth;\n var ratioY = (y - this.destTop) / this.destHeight;\n var isUndoRedo = this.isUndoRedo;\n this.isUndoRedo = true;\n this.setProperties({ zoomSettings: { zoomPoint: { x: x, y: y } } }, true);\n if (type === 'zoomIn') {\n this.zoomAction(.1);\n }\n else if (type === 'zoomOut') {\n this.zoomAction(-.1);\n }\n this.isUndoRedo = isUndoRedo;\n if (this.zoomFactor > 0) {\n var destLeft = this.destLeft;\n var destTop = this.destTop;\n var activeObj = extend({}, this.activeObj, {}, true);\n if (this.degree === 0) {\n this.destLeft = x - (ratioX * this.destWidth);\n this.destTop = y - (ratioY * this.destHeight);\n this.drawZoomPanImage(this.destLeft - destLeft, this.destTop - destTop);\n }\n else {\n var isCropTab = this.isCropTab;\n this.isCropTab = true;\n var objColl = extend([], this.objColl, [], true);\n var pointColl = extend([], this.pointColl, [], true);\n this.objColl = [];\n this.pointColl = [];\n this.freehandCounter = 0;\n this.currentPannedPoint = { x: (x - (ratioX * this.destWidth)) - destLeft,\n y: (y - (ratioY * this.destHeight)) - destTop };\n this.rotatePan();\n this.isCropTab = isCropTab;\n this.objColl = objColl;\n this.pointColl = pointColl;\n this.freehandCounter = this.pointColl.length;\n this.panObjColl(this.currentPannedPoint.x, this.currentPannedPoint.y, '');\n this.panFreehandDrawColl(this.currentPannedPoint.x, this.currentPannedPoint.y, '');\n }\n this.adjustPanning(activeObj);\n this.activeObj = activeObj;\n if (this.activeObj.activePoint.width !== 0 && this.activeObj.activePoint.height !== 0) {\n this.drawObject('duplicate', null, null, null, true);\n }\n }\n };\n ImageEditor.prototype.adjustPanning = function (activeObj) {\n if (activeObj.activePoint.width !== 0 && activeObj.activePoint.height !== 0) {\n var destLeft = this.destLeft;\n var destTop = this.destTop;\n var point = { x: 0, y: 0 };\n if (this.destLeft > activeObj.activePoint.startX) {\n point.x = this.destLeft - activeObj.activePoint.startX;\n }\n else if (this.destLeft + this.destWidth < activeObj.activePoint.startX + activeObj.activePoint.width) {\n point.x = (this.destLeft + this.destWidth) - (activeObj.activePoint.startX + activeObj.activePoint.width);\n }\n if (this.destTop > activeObj.activePoint.startY) {\n point.y = this.destTop - activeObj.activePoint.startY;\n }\n else if (this.destTop + this.destHeight < activeObj.activePoint.startY + activeObj.activePoint.height) {\n point.y = (this.destTop + this.destHeight) - (activeObj.activePoint.startY + activeObj.activePoint.height);\n }\n if (this.degree === 0) {\n this.destLeft -= point.x;\n this.destTop -= point.y;\n this.drawZoomPanImage(this.destLeft - destLeft, this.destTop - destTop);\n }\n else {\n var isCropTab = this.isCropTab;\n this.isCropTab = true;\n var objColl = extend([], this.objColl, [], true);\n var pointColl = extend([], this.pointColl, [], true);\n this.objColl = [];\n this.pointColl = [];\n this.freehandCounter = 0;\n this.destLeft -= point.x;\n this.destTop -= point.y;\n this.currentPannedPoint = { x: this.destLeft - destLeft, y: this.destTop - destTop };\n this.rotatePan();\n this.isCropTab = isCropTab;\n this.objColl = objColl;\n this.pointColl = pointColl;\n this.freehandCounter = this.pointColl.length;\n this.panObjColl(this.currentPannedPoint.x, this.currentPannedPoint.y, '');\n this.panFreehandDrawColl(this.currentPannedPoint.x, this.currentPannedPoint.y, '');\n }\n }\n };\n ImageEditor.prototype.drawZoomPanImage = function (x, y) {\n this.panObjColl(x, y, '');\n this.panFreehandDrawColl(x, y, '');\n this.renderImage(true);\n var maxDimension = this.calcMaxDimension(this.srcWidth, this.srcHeight);\n maxDimension.width += (maxDimension.width * this.zoomFactor);\n maxDimension.height += (maxDimension.height * this.zoomFactor);\n this.totalPannedPoint.x += x;\n this.totalPannedPoint.y += y;\n this.tempFlipPanPoint = { x: 0, y: 0 };\n };\n ImageEditor.prototype.textKeyDown = function (e) {\n if (String.fromCharCode(e.which) === '\\r') {\n this.textRow += 1;\n }\n this.textArea.setAttribute('rows', this.textRow.toString());\n this.textArea.style.height = 'auto';\n this.textArea.style.height = this.textArea.scrollHeight + 'px';\n this.setTextBoxWidth(e);\n if (Browser.isDevice) {\n this.textArea.style.width = parseFloat(this.textArea.style.width) + this.textArea.style.fontSize + 'px';\n }\n var rows = this.textArea.value.split('\\n');\n this.textRow = rows.length;\n this.textArea.setAttribute('rows', this.textRow.toString());\n this.isInitialTextEdited = false;\n };\n ImageEditor.prototype.adjustToScreen = function () {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var proxy = this;\n if ((!isNullOrUndefined(this.element.querySelector('#' + this.element.id + '_contextualToolbar')) &&\n !this.element.querySelector('#' + this.element.id + '_contextualToolbar').parentElement.classList.contains('e-hide')) ||\n (!isNullOrUndefined(this.element.querySelector('#' + this.element.id + '_headWrapper'))\n && !this.element.querySelector('#' + this.element.id + '_headWrapper').parentElement.classList.contains('e-hide'))) {\n this.element.querySelector('.e-contextual-toolbar-wrapper').classList.add('e-hide');\n this.okBtn();\n this.refreshMainToolbar();\n this.destroyQuickAccessToolbar();\n }\n if (this.isFreehandDrawEditing) {\n this.destroyQuickAccessToolbar();\n }\n var isActiveObj = false;\n if (this.activeObj.shape !== undefined) {\n isActiveObj = true;\n if (this.textArea.style.display === 'block') {\n this.redrawActObj();\n this.destroyQuickAccessToolbar();\n }\n else {\n this.updateImageRatioForActObj();\n this.objColl.push(this.activeObj);\n }\n this.refreshActiveObj();\n }\n var tempFilter = this.lowerContext.filter;\n this.update();\n this.applyActObj();\n this.refreshActiveObj();\n this.lowerContext.filter = this.initialAdjustmentValue = tempFilter;\n if (this.isImageLoaded) {\n showSpinner(this.element);\n this.element.style.opacity = '0.5';\n }\n this.lowerContext.clearRect(0, 0, this.lowerCanvas.width, this.lowerCanvas.height);\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n var canvasWrapper = document.querySelector('#' + this.element.id + '_canvasWrapper');\n if (!isNullOrUndefined(canvasWrapper)) {\n canvasWrapper.style.width = this.element.offsetWidth - 2 + 'px';\n canvasWrapper.style.height = this.element.offsetHeight + 'px';\n if (Browser.isDevice) {\n canvasWrapper.style.height = (parseFloat(canvasWrapper.style.height) - (2 * this.toolbarHeight)) - 3 + 'px';\n }\n else {\n canvasWrapper.style.height = (parseFloat(canvasWrapper.style.height) - this.toolbarHeight) - 3 + 'px';\n }\n }\n var maxDimension = this.calcMaxDimension(this.srcWidth, this.srcHeight);\n if (this.defaultZoomFactor > 0) {\n maxDimension.width += (maxDimension.width * this.defaultZoomFactor);\n maxDimension.height += (maxDimension.height * this.defaultZoomFactor);\n }\n this.destLeft = (this.lowerCanvas.clientWidth - maxDimension.width) / 2;\n this.destTop = (this.lowerCanvas.clientHeight - maxDimension.height) / 2;\n if (this.degree === 0 && this.currFlipState === '') {\n if (this.defaultZoomFactor > 0) {\n this.destLeft += this.totalPannedPoint.x;\n this.destTop += this.totalPannedPoint.y;\n }\n this.drawImgToCanvas(maxDimension);\n }\n else {\n this.drawImgToCanvas(maxDimension);\n this.updateCurrentTransformedState('initial');\n var temp = this.lowerContext.filter;\n this.updateBrightnessFilter();\n this.lowerContext.drawImage(this.baseImg, this.srcLeft, this.srcTop, this.srcWidth, this.srcHeight, this.destLeft, this.destTop, this.destWidth, this.destHeight);\n this.lowerContext.filter = temp;\n this.updateCurrentTransformedState('reverse');\n }\n this.zoomObjColl();\n this.zoomFreehandDrawColl();\n if (this.isCircleCrop) {\n this.cropCircle(this.lowerContext);\n }\n hideSpinner(this.element);\n this.element.style.opacity = '1';\n if (this.defToolbarItems.length > 0 && (!isNullOrUndefined(document.getElementById(this.element.id + '_toolbar')))) {\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n var toolbar_11 = getComponent(proxy.element.id + '_toolbar', 'toolbar');\n toolbar_11.refreshOverflow();\n if (!isNullOrUndefined(this.element.querySelector('.e-contextual-toolbar-wrapper'))) {\n this.element.querySelector('.e-contextual-toolbar-wrapper').classList.add('e-hide');\n }\n }\n this.refreshActiveObj();\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n if (isActiveObj) {\n this.activeObj = extend({}, this.objColl[this.objColl.length - 1], null, true);\n this.objColl.pop();\n this.drawObject('duplicate', this.activeObj);\n if (this.activeObj.shape === 'rectangle' || this.activeObj.shape === 'ellipse' || this.activeObj.shape === 'text' ||\n this.activeObj.shape === 'line' || this.activeObj.shape === 'arrow') {\n this.renderQuickAccessToolbar();\n }\n }\n if (this.isFreehandDrawEditing) {\n this.renderQuickAccessToolbar(true);\n }\n if ((this.degree !== 0 || this.currFlipState !== '') && this.defaultZoomFactor > 0) {\n var totalPannedPoint = extend({}, this.totalPannedPoint, null, true);\n var totalPannedInternalPoint = extend({}, this.totalPannedInternalPoint, null, true);\n var totalPannedClientPoint = extend({}, this.totalPannedClientPoint, null, true);\n this.zoomAction(.1);\n this.zoomAction(-.1);\n if (this.degree === 0) {\n this.destLeft += totalPannedPoint.x;\n this.destTop += totalPannedPoint.y;\n this.totalPannedPoint = totalPannedPoint;\n this.updateFlipPan();\n }\n else {\n this.totalPannedInternalPoint = totalPannedInternalPoint;\n this.totalPannedClientPoint = totalPannedClientPoint;\n this.currentPannedPoint = { x: 0, y: 0 };\n this.isCropTab = true;\n this.rotatePan();\n this.isCropTab = false;\n }\n }\n else if (this.degree !== 0 && this.cropZoomFactor > 0) {\n this.zoomFactor = this.cropZoomFactor = 0;\n this.enableDisableToolbarBtn();\n }\n };\n ImageEditor.prototype.screenOrientation = function () {\n if (Browser.isDevice) {\n setTimeout(this.adjustToScreen.bind(this), 100);\n }\n };\n ImageEditor.prototype.windowResizeHandler = function () {\n if (!Browser.isDevice) {\n this.adjustToScreen();\n }\n };\n ImageEditor.prototype.alignTextAreaIntoCanvas = function () {\n var letters = this.textArea.value;\n this.textArea.value = '';\n for (var i = 0; i < letters.length; i++) {\n this.textArea.value += letters[i];\n this.textArea.style.height = 'auto';\n this.textArea.style.height = this.textArea.scrollHeight + 'px';\n this.setTextBoxWidth();\n }\n };\n ImageEditor.prototype.refreshMainToolbar = function () {\n if (this.currToolbar !== 'main') {\n this.refreshToolbar('main');\n }\n };\n ImageEditor.prototype.updatePreviousShapeSettings = function () {\n var fontStyle = [];\n if (this.activeObj.shape === 'text' && !isNullOrUndefined(this.activeObj.textSettings)) {\n if (this.activeObj.textSettings.bold) {\n fontStyle.push('bold');\n }\n if (this.activeObj.textSettings.italic) {\n fontStyle.push('italic');\n }\n if (this.activeObj.textSettings.underline) {\n fontStyle.push('underline');\n }\n }\n return { id: !isNullOrUndefined(this.activeObj.currIndex) ? this.activeObj.currIndex : null,\n type: this.toPascalCase(this.activeObj.shape),\n startX: this.activeObj.activePoint.startX, startY: this.activeObj.activePoint.startY,\n width: this.activeObj.activePoint.width, height: this.activeObj.activePoint.height,\n strokeColor: !isNullOrUndefined(this.activeObj.strokeSettings) ? this.activeObj.strokeSettings.strokeColor : null,\n strokeWidth: !isNullOrUndefined(this.activeObj.strokeSettings) ? this.activeObj.strokeSettings.strokeWidth : null,\n fillColor: !isNullOrUndefined(this.activeObj.strokeSettings) ? this.activeObj.strokeSettings.fillColor : null,\n radius: this.activeObj.shape === 'ellipse' ? this.activeObj.activePoint.width / 2 : null,\n length: this.activeObj.shape === 'line' || this.activeObj.shape === 'arrow' ? this.activeObj.activePoint.width : null,\n text: this.activeObj.shape === 'text' ? (!isNullOrUndefined(this.activeObj.keyHistory) ? this.activeObj.keyHistory : null) : null,\n fontSize: this.activeObj.shape === 'text' ? (!isNullOrUndefined(this.activeObj.textSettings) ? this.activeObj.textSettings.fontSize : null) : null,\n fontStyle: this.activeObj.shape === 'text' ? fontStyle : null,\n color: this.activeObj.shape === 'text' ? (!isNullOrUndefined(this.activeObj.strokeSettings) ? this.activeObj.strokeSettings.strokeColor : null) : null\n };\n };\n ImageEditor.prototype.zoomAction = function (zoomFactor, zoomPoint) {\n if (!this.disabled && this.isImageLoaded) {\n if ((this.zoomFactor === 0 && zoomFactor < 0) ||\n (this.zoomSettings.zoomFactor >= this.zoomSettings.maxZoomFactor && zoomFactor > 0 ||\n (this.zoomSettings.zoomFactor > this.zoomSettings.minZoomFactor && zoomFactor < 0 && this.disableZoomOutBtn()))) {\n this.zoomBtnMouseUpHandler();\n return;\n }\n if (this.previousZoomValue === 1) {\n this.previousZoomValue += zoomFactor > 0 ? zoomFactor * 10 : (zoomFactor * 10) / 2;\n }\n else if (this.previousZoomValue > 1) {\n this.previousZoomValue += (zoomFactor * 10);\n }\n else if (this.previousZoomValue < 1) {\n var length_2 = zoomFactor * 10;\n for (var i = 0; i < Math.abs(length_2); i++) {\n if (zoomFactor > 0) {\n this.previousZoomValue *= 2;\n }\n else {\n this.previousZoomValue /= 2;\n }\n }\n }\n this.setProperties({ zoomSettings: { zoomFactor: this.previousZoomValue } }, true);\n var splitWords = void 0;\n var tempActiveObj = void 0;\n var isShape = false;\n if (this.activeObj.shape !== undefined) {\n if (this.activeObj.shape === 'shape') {\n this.refreshActiveObj();\n }\n else {\n splitWords = this.activeObj.shape.split('-');\n }\n }\n if (splitWords !== undefined && splitWords[0] === 'crop') {\n tempActiveObj = extend({}, this.activeObj, {}, true);\n this.isCropTab = true;\n }\n else if (!isNullOrUndefined(this.activeObj.shape) && splitWords[0] !== 'crop') {\n isShape = true;\n }\n if (isNullOrUndefined(zoomPoint)) {\n if (this.isCropTab && !isNullOrUndefined(tempActiveObj)) {\n zoomPoint = { x: this.activeObj.activePoint.startX + (this.activeObj.activePoint.width / 2),\n y: this.activeObj.activePoint.startY + (this.activeObj.activePoint.height / 2) };\n }\n else {\n zoomPoint = { x: this.lowerCanvas.clientWidth / 2, y: this.lowerCanvas.clientHeight / 2 };\n }\n if (this.zoomType === 'MouseWheel' || this.zoomType === 'Pinch') {\n zoomPoint = { x: this.zoomSettings.zoomPoint.x, y: this.zoomSettings.zoomPoint.y };\n }\n }\n var previousZoomFactor = this.zoomSettings.zoomFactor - (zoomFactor * 10);\n var zoomEventArgs = { zoomPoint: zoomPoint, cancel: false, previousZoomFactor: previousZoomFactor,\n currentZoomFactor: this.zoomSettings.zoomFactor, zoomTrigger: this.zoomType };\n this.trigger('zooming', zoomEventArgs);\n if (zoomEventArgs.cancel) {\n return;\n }\n this.closeContextualToolbar();\n this.redrawActObj(null, null, true);\n this.refreshActiveObj();\n this.upperContext.clearRect(0, 0, this.lowerCanvas.width, this.lowerCanvas.height);\n this.lowerContext.filter = this.canvasFilter;\n this.upperCanvas.style.cursor = 'default';\n var objColl = extend([], this.objColl, [], true);\n if (!this.isCropTab) {\n if (this.degree !== 0) {\n this.redrawActObj();\n this.currentPannedPoint = { x: 0, y: 0 };\n this.rotatePan(true, true);\n }\n else if (this.currFlipState !== '') {\n this.totalPannedPoint = { x: 0, y: 0 };\n }\n this.updateObjAndFreeHandDrawColl();\n }\n if (this.degree === 0) {\n this.drawZoomImgToCanvas(zoomFactor, tempActiveObj);\n if (this.getCurrentPanRegion() !== '') {\n this.tempFlipPanPoint.x += this.totalPannedPoint.x;\n this.tempFlipPanPoint.y += this.totalPannedPoint.y;\n objColl = extend([], this.objColl, [], true);\n this.objColl = [];\n var destLeft = this.destLeft;\n var destTop = this.destTop;\n this.setDestPointsForFlipState();\n this.rotatedFlip();\n this.destLeft = destLeft;\n this.destTop = destTop;\n this.objColl = objColl;\n this.zoomObjColl();\n this.zoomFreehandDrawColl();\n this.updateObjAndFreeHandDrawColl();\n }\n if (this.zoomSettings.zoomFactor <= this.zoomSettings.minZoomFactor && !this.isCropTab) {\n this.totalPannedPoint = { x: 0, y: 0 };\n }\n }\n else {\n this.updateObjAndFreeHandDrawColl();\n this.totalPannedClientPoint = { x: 0, y: 0 };\n this.totalPannedInternalPoint = { x: 0, y: 0 };\n this.rotateZoom(zoomFactor);\n if (this.getCurrentPanRegion() !== '') {\n var temp = this.lowerContext.filter;\n this.lowerContext.filter = 'none';\n this.zoomObjColl();\n this.zoomFreehandDrawColl();\n this.lowerContext.filter = temp;\n }\n }\n var powerOften = Math.pow(10, 1);\n if (this.zoomSettings.zoomFactor <= this.zoomSettings.minZoomFactor ||\n (Math.round(this.zoomFactor * powerOften) / powerOften) === 2) {\n clearInterval(this.zoomBtnHold);\n this.zoomBtnHold = 0;\n }\n if (this.getCurrentPanRegion() === '') {\n var temp = this.lowerContext.filter;\n this.lowerContext.filter = 'none';\n this.zoomObjColl();\n this.zoomFreehandDrawColl();\n this.lowerContext.filter = temp;\n }\n if ((!isNullOrUndefined(this.currSelectionPoint) && this.currSelectionPoint.shape === 'crop-circle') || this.isCircleCrop) {\n this.cropCircle(this.lowerContext);\n }\n this.clearOuterCanvas(this.lowerContext);\n this.refreshActiveObj();\n if (!isNullOrUndefined(tempActiveObj)) {\n this.activeObj = extend({}, tempActiveObj, {}, true);\n this.drawObject('duplicate', this.activeObj);\n if (this.zoomSettings.zoomFactor <= this.zoomSettings.minZoomFactor) {\n this.currSelectionPoint = null;\n }\n }\n this.isUndoRedo = false;\n var zoomOut = document.querySelector('#' + this.element.id + '_zoomOut');\n if (!isNullOrUndefined(zoomOut) && this.zoomSettings.zoomFactor <= this.zoomSettings.minZoomFactor) {\n zoomOut.classList.add('e-disabled');\n zoomOut.parentElement.classList.add('e-overlay');\n }\n else if (!isNullOrUndefined(zoomOut)) {\n zoomOut.classList.remove('e-disabled');\n zoomOut.parentElement.classList.remove('e-overlay');\n }\n this.autoEnablePan();\n if (!isNullOrUndefined(tempActiveObj)) {\n this.activeObj = extend({}, tempActiveObj, {}, true);\n }\n if (this.activeObj.shape === 'crop-custom') {\n this.currObjType.isCustomCrop = true;\n }\n var panBtn = this.element.querySelector('.e-img-pan .e-btn');\n if (!isNullOrUndefined(panBtn) && this.togglePan) {\n panBtn.classList.add('e-selected-btn');\n }\n else if (!isNullOrUndefined(panBtn)) {\n panBtn.classList.remove('e-selected-btn');\n }\n if (isShape) {\n this.activeObj = extend({}, this.objColl[this.objColl.length - 1], {}, true);\n this.objColl.pop();\n this.drawObject('duplicate', this.activeObj);\n this.updateToolbarItems();\n this.renderQuickAccessToolbar();\n }\n this.enableDisableToolbarBtn();\n this.zoomType = 'Toolbar';\n }\n };\n ImageEditor.prototype.getCurrentZoomFactor = function (zoomFactor) {\n return (zoomFactor - this.previousZoomValue) * 0.1;\n };\n ImageEditor.prototype.disableZoomOutBtn = function () {\n var isDisabled = false;\n var zoomOut = document.querySelector('#' + this.element.id + '_zoomOut');\n var destLeft = this.destLeft;\n var destTop = this.destTop;\n var destWidth = this.destWidth;\n var destHeight = this.destHeight;\n if (this.degree === 0 || this.degree === 180) {\n if (!isNullOrUndefined(this.activeObj.shape)) {\n this.setZoomDimension(-0.1, this.activeObj);\n if (!isNullOrUndefined(zoomOut)) {\n if (this.destLeft > this.activeObj.activePoint.startX || this.destTop > this.activeObj.activePoint.startY ||\n this.destLeft + this.destWidth < this.activeObj.activePoint.endX || this.destTop + this.destHeight <\n this.activeObj.activePoint.endY) {\n zoomOut.classList.add('e-disabled');\n zoomOut.parentElement.classList.add('e-overlay');\n isDisabled = true;\n }\n else {\n zoomOut.classList.remove('e-disabled');\n zoomOut.parentElement.classList.remove('e-overlay');\n isDisabled = false;\n }\n }\n }\n else {\n this.setZoomDimension(-0.1, null);\n }\n }\n this.destLeft = destLeft;\n this.destTop = destTop;\n this.destWidth = destWidth;\n this.destHeight = destHeight;\n return isDisabled;\n };\n ImageEditor.prototype.setZoomDimension = function (value, selectionObj) {\n var maxDimension = { width: 0, height: 0 };\n if (this.degree % 90 === 0 && this.degree % 180 !== 0) {\n maxDimension = this.calcMaxDimension(this.srcHeight, this.srcWidth);\n }\n else {\n maxDimension = this.calcMaxDimension(this.srcWidth, this.srcHeight);\n }\n maxDimension.width += (maxDimension.width * this.zoomFactor);\n maxDimension.height += (maxDimension.height * this.zoomFactor);\n this.destLeft += ((this.destWidth - maxDimension.width) / 2);\n this.destTop += ((this.destHeight - maxDimension.height) / 2);\n // While zoom out limit image to draw inside the selection range\n if (value < 0 && !isNullOrUndefined(selectionObj)) {\n if (this.destLeft > selectionObj.activePoint.startX) {\n this.destLeft = selectionObj.activePoint.startX;\n }\n if (this.destTop > selectionObj.activePoint.startY) {\n this.destTop = selectionObj.activePoint.startY;\n }\n if (this.destLeft + maxDimension.width < selectionObj.activePoint.startX + selectionObj.activePoint.width) {\n this.destLeft = this.destLeft + (selectionObj.activePoint.startX + selectionObj.activePoint.width) -\n (this.destLeft + maxDimension.width);\n }\n if (this.destTop + maxDimension.height < selectionObj.activePoint.startY + selectionObj.activePoint.height) {\n this.destTop = this.destTop + (selectionObj.activePoint.startY + selectionObj.activePoint.height) -\n (this.destTop + maxDimension.height);\n }\n }\n else if (value < 0 && isNullOrUndefined(selectionObj)) {\n if (this.destLeft > 0) {\n this.destLeft = 0;\n }\n if (this.destTop > 0) {\n this.destTop = 0;\n }\n if (this.destLeft + maxDimension.width < this.lowerCanvas.width) {\n this.destLeft = this.lowerCanvas.width - this.destWidth;\n }\n if (this.destTop + maxDimension.height < this.lowerCanvas.height) {\n this.destTop = this.lowerCanvas.height - this.destHeight;\n }\n }\n return maxDimension;\n };\n ImageEditor.prototype.applyCurrActObj = function (x, y) {\n var isInside = false;\n var actObj = extend({}, this.activeObj, {}, true);\n if (isNullOrUndefined(actObj.activePoint)) {\n return;\n }\n if ((x >= Math.floor(actObj.activePoint.startX) && x <= Math.ceil(actObj.activePoint.endX) &&\n y >= Math.floor(actObj.activePoint.startY) && y <= Math.ceil(actObj.activePoint.endY))) {\n isInside = true;\n }\n else if (actObj.shape === 'text' && this.dragElement !== '') {\n isInside = true;\n }\n if (!isInside) {\n this.updateImageRatioForActObj();\n if (this.activeObj.horTopLine !== undefined && this.activeObj.horTopLine.startX !== 0 && this.activeObj.horTopLine.endX !== 0\n && !this.currObjType.isCustomCrop && this.currObjType.shape !== '') {\n this.objColl.push(extend({}, this.activeObj, {}, true));\n }\n if (this.activeObj.shape === 'text' || (this.currObjType.shape === 'ellipse' || this.currObjType.shape === 'rectangle' ||\n this.currObjType.shape === 'line' || this.activeObj.shape === 'arrow')) {\n var tempFilter = this.lowerContext.filter;\n this.lowerContext.filter = this.getDefaultFilter();\n for (var i = 0; i < this.objColl.length; i++) {\n if (this.isObjInsideCropRegion(this.objColl[i])) {\n this.apply(this.objColl[i].shape, this.objColl[i]);\n this.refreshActiveObj();\n }\n }\n this.zoomFreehandDrawColl();\n this.lowerContext.filter = tempFilter;\n if (!isNullOrUndefined(this.activeObj.shape)) {\n this.apply();\n }\n this.clearOuterCanvas(this.lowerContext);\n this.clearOuterCanvas(this.upperContext);\n if (this.isCircleCrop) {\n this.cropCircle(this.lowerContext);\n }\n }\n this.refreshMainToolbar();\n }\n };\n ImageEditor.prototype.updateTextFromTextArea = function () {\n if (this.activeObj.keyHistory !== this.textArea.value) {\n var prevCropObj = extend({}, this.cropObj, {}, true);\n var prevObj = this.getCurrentObj();\n prevObj.objColl = extend([], this.objColl, [], true);\n prevObj.pointColl = extend([], this.pointColl, [], true);\n prevObj.afterCropActions = extend([], this.afterCropActions, [], true);\n this.updateUndoRedoColl('text', prevObj, prevObj.objColl, prevObj.pointColl, prevCropObj, this.activeObj.keyHistory, this.textArea.value);\n }\n this.activeObj.keyHistory = this.textArea.value;\n this.textArea.style.display = 'none';\n this.textArea.value = '';\n this.updateFontStyles();\n var width = this.upperContext.measureText(this.activeObj.keyHistory).width +\n this.activeObj.textSettings.fontSize * 0.5;\n var height = this.activeObj.textSettings.fontSize + this.activeObj.textSettings.fontSize * 0.25;\n var rows = this.activeObj.keyHistory.split('\\n');\n if (rows.length > 1) {\n height *= rows.length;\n var widthColl = [];\n for (var i = 0; i < rows.length; i++) {\n widthColl.push(this.upperContext.measureText(rows[i]).width +\n this.activeObj.textSettings.fontSize * 0.5);\n }\n width = Math.max.apply(Math, widthColl);\n }\n this.setTextSelection(width, height);\n this.updateActiveObject(this.activeObj.activePoint, this.activeObj);\n this.updateImageRatioForActObj();\n };\n ImageEditor.prototype.setTextBoxStylesToActObj = function () {\n this.activeObj.textSettings.fontFamily = this.textArea.style.fontFamily;\n this.activeObj.strokeSettings.strokeColor = this.textArea.style.color !== '' ?\n this.rgbToHex(parseFloat(this.textArea.style.color.split('(')[1].split(',')[0]), parseFloat(this.textArea.style.color.split('(')[1].split(',')[1]), parseFloat(this.textArea.style.color.split('(')[1].split(',')[2])) :\n this.textArea.style.color;\n if (this.textArea.style.fontWeight === 'bold') {\n this.activeObj.textSettings.bold = true;\n }\n else {\n this.activeObj.textSettings.bold = false;\n }\n if (this.textArea.style.fontStyle === 'italic') {\n this.activeObj.textSettings.italic = true;\n }\n else {\n this.activeObj.textSettings.italic = false;\n }\n this.activeObj.textSettings.fontSize = (parseFloat(this.textArea.style.fontSize));\n };\n ImageEditor.prototype.redrawActObj = function (x, y, isMouseDown) {\n var splitWords;\n if (this.activeObj.shape !== undefined) {\n splitWords = this.activeObj.shape.split('-');\n }\n if (this.activeObj.horTopLine !== undefined && (this.activeObj.shape !== undefined && splitWords[0] !== 'crop')) {\n if (this.textArea.style.display === 'block') {\n this.setTextBoxStylesToActObj();\n this.updateFontRatio(this.activeObj, true);\n if (x && y) {\n if ((x !== this.activeObj.activePoint.startX) && (y !== this.activeObj.activePoint.startY)) {\n this.updateTextFromTextArea();\n this.applyActObj();\n }\n }\n else {\n this.updateTextFromTextArea();\n this.apply(this.activeObj.shape, this.activeObj);\n this.objColl.push(this.activeObj);\n this.refreshActiveObj();\n this.textArea.style.transform = '';\n this.refreshMainToolbar();\n }\n }\n else {\n this.applyActObj(isMouseDown);\n }\n }\n };\n ImageEditor.prototype.setTextBoxPos = function (actObj, degree, flip, x, y) {\n var point = { x: x, y: y };\n if (degree === 0) {\n if (flip.toLowerCase() === 'horizontal') {\n point.x = actObj.activePoint.endX;\n point.y = actObj.activePoint.startY;\n }\n else if (flip.toLowerCase() === 'vertical') {\n point.x = actObj.activePoint.startX;\n point.y = actObj.activePoint.endY;\n }\n else {\n point.x = actObj.activePoint.startX;\n point.y = actObj.activePoint.startY;\n }\n }\n else if (degree === 90) {\n if (flip.toLowerCase() === 'horizontal') {\n point.x = actObj.activePoint.startX;\n point.y = actObj.activePoint.startY;\n }\n else if (flip.toLowerCase() === 'vertical') {\n point.x = actObj.activePoint.endX;\n point.y = actObj.activePoint.endY;\n }\n else {\n point.x = actObj.activePoint.endX;\n point.y = actObj.activePoint.startY;\n }\n }\n else if (degree === 180) {\n if (flip.toLowerCase() === 'horizontal') {\n point.x = actObj.activePoint.startX;\n point.y = actObj.activePoint.endY;\n }\n else if (flip.toLowerCase() === 'vertical') {\n point.x = actObj.activePoint.endX;\n point.y = actObj.activePoint.startY;\n }\n else {\n point.x = actObj.activePoint.endX;\n point.y = actObj.activePoint.endY;\n }\n }\n else if (degree === 270) {\n if (flip.toLowerCase() === 'horizontal') {\n point.x = actObj.activePoint.endX;\n point.y = actObj.activePoint.endY;\n }\n else if (flip.toLowerCase() === 'vertical') {\n point.x = actObj.activePoint.startX;\n point.y = actObj.activePoint.startY;\n }\n else {\n point.x = actObj.activePoint.startX;\n point.y = actObj.activePoint.endY;\n }\n }\n return point;\n };\n ImageEditor.prototype.setTextBoxPoints = function (actObj, degree, flip, x, y) {\n var point = { x: x, y: y };\n if (degree === 0) {\n if (actObj.flipObjColl[0].toLowerCase() === 'horizontal') {\n if (flip.toLowerCase() === 'horizontal') {\n point.x = (actObj.activePoint.startX);\n point.y = (actObj.activePoint.startY);\n }\n else if (flip.toLowerCase() === 'vertical') {\n point.x = (actObj.activePoint.endX);\n point.y = (actObj.activePoint.endY);\n }\n }\n else {\n if (flip.toLowerCase() === 'horizontal') {\n point.x = (actObj.activePoint.endX);\n point.y = (actObj.activePoint.endY);\n }\n else if (flip.toLowerCase() === 'vertical') {\n point.x = (actObj.activePoint.endX);\n point.y = (actObj.activePoint.startY);\n }\n }\n }\n else if (degree === 90) {\n if (actObj.flipObjColl[0].toLowerCase() === 'horizontal') {\n if (flip.toLowerCase() === 'horizontal') {\n point.x = (actObj.activePoint.endX);\n point.y = (actObj.activePoint.endY);\n }\n else if (flip.toLowerCase() === 'vertical') {\n point.x = (actObj.activePoint.startX);\n point.y = (actObj.activePoint.endY);\n }\n }\n else {\n if (flip.toLowerCase() === 'horizontal') {\n point.x = (actObj.activePoint.startX);\n point.y = (actObj.activePoint.endY);\n }\n else if (flip.toLowerCase() === 'vertical') {\n point.x = (actObj.activePoint.startX);\n point.y = (actObj.activePoint.startY);\n }\n }\n }\n else if (degree === 180) {\n if (actObj.flipObjColl[0].toLowerCase() === 'horizontal') {\n if (flip.toLowerCase() === 'horizontal') {\n point.x = (actObj.activePoint.startX);\n point.y = (actObj.activePoint.startY);\n }\n else if (flip.toLowerCase() === 'vertical') {\n point.x = (actObj.activePoint.startX);\n point.y = (actObj.activePoint.startY);\n }\n }\n else {\n if (flip.toLowerCase() === 'horizontal') {\n point.x = (actObj.activePoint.startX);\n point.y = (actObj.activePoint.startY);\n }\n else if (flip.toLowerCase() === 'vertical') {\n point.x = (actObj.activePoint.startX);\n point.y = (actObj.activePoint.endY);\n }\n }\n }\n else if (degree === 270) {\n if (actObj.flipObjColl[0].toLowerCase() === 'horizontal') {\n if (flip.toLowerCase() === 'horizontal') {\n point.x = (actObj.activePoint.startX);\n point.y = (actObj.activePoint.startY);\n }\n else if (flip.toLowerCase() === 'vertical') {\n point.x = (actObj.activePoint.endX);\n point.y = (actObj.activePoint.startY);\n }\n }\n else {\n if (flip.toLowerCase() === 'horizontal') {\n point.x = (actObj.activePoint.endX);\n point.y = (actObj.activePoint.startY);\n }\n else if (flip.toLowerCase() === 'vertical') {\n point.x = (actObj.activePoint.endX);\n point.y = (actObj.activePoint.endY);\n }\n }\n }\n return point;\n };\n ImageEditor.prototype.findTextTarget = function (e) {\n var x;\n var y;\n if (e.type === 'dblclick') {\n x = e.clientX;\n y = e.clientY;\n }\n else if (e.type === 'touchstart') {\n this.touchEndPoint.x = x = e.touches[0].clientX;\n this.touchEndPoint.y = y = e.touches[0].clientY;\n }\n this.preventZoomBtn = true;\n this.refreshToolbar('text');\n this.preventZoomBtn = false;\n this.updateToolbarItems();\n if (!isNullOrUndefined(x) && !isNullOrUndefined(y)) {\n var bbox = this.lowerCanvas.getBoundingClientRect();\n x -= bbox.left;\n y -= bbox.top;\n var degree = void 0;\n var flip = '';\n if (this.activeObj.shapeDegree === 0) {\n degree = this.degree;\n }\n else {\n degree = this.degree - this.activeObj.shapeDegree;\n }\n if (degree < 0) {\n degree = 360 + degree;\n }\n if (this.activeObj.textFlip === '') {\n if (this.activeObj.textFlip === this.currFlipState) {\n flip = '';\n }\n else {\n flip = this.currFlipState;\n }\n }\n else {\n if (this.activeObj.textFlip === this.currFlipState) {\n flip = '';\n }\n else if (this.currFlipState === '') {\n flip = this.activeObj.textFlip;\n }\n else {\n flip = this.currFlipState;\n }\n }\n var temp = void 0;\n if (this.textArea.style.display === 'none') {\n temp = extend({}, this.activeObj, {}, true);\n for (var i = 0; i < this.objColl.length; i++) {\n if (JSON.stringify(this.activeObj) === JSON.stringify(this.objColl[i])) {\n this.objColl.splice(i, 1);\n }\n }\n this.refreshActiveObj();\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n this.lowerContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n this.redrawImgWithObj();\n if ((!isNullOrUndefined(this.currSelectionPoint) && this.currSelectionPoint.shape === 'crop-circle') || this.isCircleCrop) {\n this.cropCircle(this.lowerContext);\n }\n this.activeObj = temp;\n this.updateFontStyles();\n var actObj = extend({}, this.activeObj, {}, true);\n if (x >= (actObj.activePoint.startX - (actObj.topLeftCircle.radius * 2)) &&\n x <= (actObj.activePoint.endX + (actObj.topLeftCircle.radius * 2)) &&\n y >= (actObj.activePoint.startY - (actObj.topLeftCircle.radius * 2)) &&\n y <= (actObj.activePoint.endY + (actObj.topLeftCircle.radius * 2))) {\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n if (actObj.flipObjColl.length === 4) {\n actObj.flipObjColl = [];\n flip = '';\n }\n if (flip === '' && actObj.flipObjColl.length > 1) {\n flip = actObj.flipObjColl[actObj.flipObjColl.length - 1];\n }\n if (actObj.flipObjColl.length <= 1) {\n var points = this.setTextBoxPos(actObj, degree, flip, x, y);\n x = points.x;\n y = points.y;\n }\n else {\n var points = this.setTextBoxPoints(actObj, degree, flip, x, y);\n x = points.x;\n y = points.y;\n }\n this.renderTextArea(x, y, actObj);\n }\n else {\n this.applyActObj();\n }\n }\n }\n else if (this.textArea.style.display === 'block' && this.selectedText() !== '' && e.type === 'mousedown') {\n var temp = this.textArea.value;\n this.textArea.value += 'a';\n this.textArea.value = temp;\n }\n };\n ImageEditor.prototype.renderTextArea = function (x, y, actObj) {\n var _this = this;\n var degree;\n if (this.activeObj.shapeDegree === 0) {\n degree = this.degree;\n }\n else {\n degree = this.degree - this.activeObj.shapeDegree;\n }\n if (degree < 0) {\n degree = 360 + degree;\n }\n this.destroyQuickAccessToolbar();\n this.textArea.style.display = 'block';\n this.textArea.style.left = x + 'px';\n this.textArea.style.top = y + 'px';\n this.textArea.style.fontFamily = actObj.textSettings.fontFamily;\n this.textArea.style.fontSize = actObj.textSettings.fontSize + 'px';\n this.textArea.style.color = actObj.strokeSettings.strokeColor;\n this.textArea.style.fontWeight = actObj.textSettings.bold ? 'bold' : 'normal';\n this.textArea.style.fontStyle = actObj.textSettings.italic ? 'italic' : 'normal';\n this.textArea.style.border = '2px solid ' + this.themeColl[this.theme]['primaryColor'];\n this.textArea.value = actObj.keyHistory;\n this.textArea.style.overflow = 'hidden';\n this.textArea.style.width = 'auto';\n this.textArea.style.height = 'auto';\n this.textArea.focus();\n if (degree % 90 === 0 && degree % 180 !== 0 && degree !== 0) {\n if (this.zoomFactor === 0) {\n this.textArea.style.width = (actObj.activePoint.height) + 'px';\n this.textArea.style.height = (actObj.activePoint.width) + 'px';\n }\n else {\n this.textArea.style.width = actObj.activePoint.height + 'px';\n this.textArea.style.height = actObj.activePoint.width + 'px';\n }\n }\n else {\n if (this.zoomFactor === 0) {\n this.textArea.style.width = (actObj.activePoint.width) + 'px';\n this.textArea.style.height = (actObj.activePoint.height) + 'px';\n }\n else {\n this.textArea.style.width = actObj.activePoint.width + 'px';\n this.textArea.style.height = actObj.activePoint.height + 'px';\n }\n }\n this.setTextBoxWidth();\n if (this.flipColl.length <= 1) {\n this.setTextBoxHeight();\n }\n if (degree % 90 === 0 && degree % 180 !== 0) {\n if (parseFloat(this.textArea.style.left) + parseFloat(this.textArea.style.width) > this.destTop + this.destHeight) {\n this.alignTextAreaIntoCanvas();\n }\n }\n else {\n if (parseFloat(this.textArea.style.left) + parseFloat(this.textArea.style.width) > this.destLeft + this.destWidth) {\n this.alignTextAreaIntoCanvas();\n }\n }\n if (this.isTouch) {\n setTimeout(function () {\n _this.upperContext.clearRect(0, 0, _this.upperCanvas.width, _this.upperCanvas.height);\n }, 550);\n }\n };\n ImageEditor.prototype.selectedText = function () {\n var start = this.textArea.selectionStart;\n var finish = this.textArea.selectionEnd;\n return this.textArea.value.substring(start, finish);\n };\n ImageEditor.prototype.setTextBoxHeight = function () {\n var textAreaTop;\n var degree;\n var flip = '';\n var actObj = extend({}, this.activeObj, {}, true);\n if (actObj.shapeDegree === 0) {\n degree = this.degree;\n }\n else {\n degree = this.degree - actObj.shapeDegree;\n }\n if (degree < 0) {\n degree = 360 + degree;\n }\n if (actObj.textFlip === '') {\n if (actObj.textFlip === this.currFlipState) {\n flip = '';\n }\n else {\n flip = this.currFlipState;\n }\n }\n else {\n if (actObj.textFlip === this.currFlipState) {\n flip = '';\n }\n else if (this.currFlipState === '') {\n flip = actObj.textFlip;\n }\n else {\n flip = this.currFlipState;\n }\n }\n if (degree === 0) {\n if (flip.toLowerCase() === 'vertical') {\n this.textArea.style.maxHeight = (this.destHeight - (this.destHeight\n - parseFloat(this.textArea.style.top))) + 'px';\n }\n else {\n textAreaTop = parseFloat(this.textArea.style.top) - this.destTop;\n this.textArea.style.maxHeight = (this.destHeight - textAreaTop) + 'px';\n }\n }\n else if (degree === 90) {\n if (flip.toLowerCase() === 'horizontal') {\n this.textArea.style.maxHeight = (this.destWidth - (parseFloat(this.textArea.style.left)\n - this.destLeft)) + 'px';\n }\n else {\n this.textArea.style.maxHeight = (parseFloat(this.textArea.style.left)\n - this.destLeft) + 'px';\n }\n }\n else if (degree === 180) {\n if (flip.toLowerCase() === 'vertical') {\n textAreaTop = parseFloat(this.textArea.style.top) - this.destTop;\n this.textArea.style.maxHeight = (this.destHeight - textAreaTop) + 'px';\n }\n else {\n this.textArea.style.maxHeight = (parseFloat(this.textArea.style.top)\n - this.destTop) + 'px';\n }\n }\n else if (degree === 270) {\n if (flip.toLowerCase() === 'horizontal') {\n this.textArea.style.maxHeight = (parseFloat(this.textArea.style.left)\n - this.destLeft) + 'px';\n }\n else {\n this.textArea.style.maxHeight = this.destWidth - (parseFloat(this.textArea.style.left)\n - this.destLeft) + 'px';\n }\n }\n //this.textArea.style.maxHeight = ((parseFloat(this.textArea.style.maxHeight) - parseFloat(this.textArea.style.fontSize) * 0.5)) + 'px';\n };\n ImageEditor.prototype.setTextBoxWidth = function (e) {\n var text = this.getMaxText(true);\n if (this.textArea.style.display === 'block') {\n this.updateFontStyles(true);\n }\n else {\n this.updateFontStyles();\n }\n var textAreaWidth = (this.upperContext.measureText(text).width + (parseFloat(this.textArea.style.fontSize) / 2));\n var letterWidth = e ? this.upperContext.measureText(String.fromCharCode(e.which)).width : 0;\n var actObj = extend({}, this.activeObj, {}, true);\n var degree;\n var flip = '';\n if (actObj.shapeDegree === 0) {\n degree = this.degree;\n }\n else {\n degree = this.degree - actObj.shapeDegree;\n }\n if (degree < 0) {\n degree = 360 + degree;\n }\n if (actObj.shapeFlip !== this.currFlipState) {\n flip = '';\n }\n else {\n flip = this.currFlipState;\n }\n if ((!isNullOrUndefined(e) && parseFloat(this.textArea.style.width) < (textAreaWidth + letterWidth)) || isNullOrUndefined(e)) {\n if (degree === 0) {\n if (flip.toLowerCase() === 'horizontal') {\n if ((parseFloat(this.textArea.style.left) - this.destLeft) - textAreaWidth - letterWidth > 0) {\n this.textArea.style.width = (textAreaWidth + letterWidth) + 'px';\n }\n }\n else {\n if ((this.destWidth - (parseFloat(this.textArea.style.left)\n - this.destLeft)) > (textAreaWidth + letterWidth)) {\n this.textArea.style.width = (textAreaWidth + letterWidth) + 'px';\n }\n }\n }\n else if (degree === 90) {\n if (flip.toLowerCase() === 'vertical') {\n if ((parseFloat(this.textArea.style.top) - this.destTop) - textAreaWidth - letterWidth > 0) {\n this.textArea.style.width = (textAreaWidth + letterWidth) + 'px';\n }\n }\n else {\n if ((this.destHeight - (parseFloat(this.textArea.style.top)\n - this.destTop)) > (textAreaWidth + letterWidth)) {\n this.textArea.style.width = (textAreaWidth + letterWidth) + 'px';\n }\n }\n }\n else if (degree === 180) {\n if (flip.toLowerCase() === 'horizontal') {\n if ((this.destWidth - (parseFloat(this.textArea.style.left)\n - this.destLeft)) > (textAreaWidth + letterWidth)) {\n this.textArea.style.width = (textAreaWidth + letterWidth) + 'px';\n }\n }\n else {\n if ((parseFloat(this.textArea.style.left) - this.destLeft) - textAreaWidth - letterWidth > 0) {\n this.textArea.style.width = (textAreaWidth + letterWidth) + 'px';\n }\n }\n }\n else if (degree === 270) {\n if (flip.toLowerCase() === 'vertical') {\n if ((this.destHeight - (parseFloat(this.textArea.style.top)\n - this.destTop)) > (textAreaWidth + letterWidth)) {\n this.textArea.style.width = (textAreaWidth + letterWidth) + 'px';\n }\n }\n else {\n if ((parseFloat(this.textArea.style.top) - this.destTop) - textAreaWidth - letterWidth > 0) {\n this.textArea.style.width = (textAreaWidth + letterWidth) + 'px';\n }\n }\n }\n }\n };\n ImageEditor.prototype.setActivePoint = function (startX, startY) {\n if (isNullOrUndefined(this.activeObj.activePoint)) {\n return;\n }\n if (this.currObjType.isText) {\n var textWidth = startX ? startX : 0;\n var textHeight = startY ? startY : this.activeObj.textSettings.fontSize;\n if (this.activeObj.textSettings.fontSize === undefined) {\n this.activeObj.textSettings.fontSize = (Math.abs(this.baseImg.width - this.baseImg.height)) * 0.1;\n }\n this.setTextSelection(textWidth, textHeight);\n this.mouseDownPoint.x = this.activeObj.activePoint.endX;\n this.mouseDownPoint.y = this.activeObj.activePoint.endY;\n if (this.activeObj.horTopLine !== undefined) {\n this.activeObj.activePoint = extend({}, this.activeObj.activePoint, {}, true);\n }\n this.drawObject('duplicate');\n }\n else if (startX && startY) {\n this.activeObj.activePoint.startX = this.mouseDownPoint.x = startX;\n this.activeObj.activePoint.startY = this.mouseDownPoint.y = startY;\n this.currObjType.isDragging = true;\n }\n else {\n var selectInfo = this.activeObj;\n this.activeObj.activePoint = { startX: selectInfo.horTopLine.startX, startY: selectInfo.horTopLine.startY,\n endX: selectInfo.horTopLine.endX, endY: selectInfo.horTopLine.endY };\n this.activeObj.activePoint.width = this.activeObj.activePoint.endX - this.activeObj.activePoint.startX;\n this.activeObj.activePoint.height = this.activeObj.activePoint.endY - this.activeObj.activePoint.startY;\n }\n };\n ImageEditor.prototype.setDragWidth = function (width) {\n var tempWidth = width;\n if (tempWidth >= 0) {\n for (var i = 0; i < tempWidth; i++) {\n width = tempWidth - i;\n this.activeObj.activePoint.startX += width;\n this.activeObj.activePoint.endX += width;\n if (this.activeObj.activePoint.startX >= this.destLeft &&\n this.activeObj.activePoint.endX <= this.destLeft + this.destWidth) {\n break;\n }\n else {\n this.activeObj.activePoint.startX -= width;\n this.activeObj.activePoint.endX -= width;\n }\n }\n }\n else {\n for (var i = 1; i < Math.abs(tempWidth); i++) {\n width = tempWidth + i;\n this.activeObj.activePoint.startX += width;\n this.activeObj.activePoint.endX += width;\n if (this.activeObj.activePoint.startX >= this.destLeft &&\n this.activeObj.activePoint.endX <= this.destLeft + this.destWidth) {\n break;\n }\n else {\n this.activeObj.activePoint.startX -= width;\n this.activeObj.activePoint.endX -= width;\n }\n }\n }\n };\n ImageEditor.prototype.setDragHeight = function (height) {\n var tempHeight = height;\n if (tempHeight >= 0) {\n for (var i = 1; i < tempHeight; i++) {\n height = tempHeight - i;\n this.activeObj.activePoint.startY += height;\n this.activeObj.activePoint.endY += height;\n if (this.activeObj.activePoint.startY >= this.destTop &&\n this.activeObj.activePoint.endY <= this.destTop + this.destHeight) {\n break;\n }\n else {\n this.activeObj.activePoint.startY -= height;\n this.activeObj.activePoint.endY -= height;\n }\n }\n }\n else {\n for (var i = 0; i < Math.abs(tempHeight); i++) {\n height = tempHeight + i;\n this.activeObj.activePoint.startY += height;\n this.activeObj.activePoint.endY += height;\n if (this.activeObj.activePoint.startY >= this.destTop &&\n this.activeObj.activePoint.endY <= this.destTop + this.destHeight) {\n break;\n }\n else {\n this.activeObj.activePoint.startY -= height;\n this.activeObj.activePoint.endY -= height;\n }\n }\n }\n };\n ImageEditor.prototype.triggerShapeChange = function (shapeResizingArgs, shapeMovingArgs, type) {\n this.activeObj.activePoint.width = this.activeObj.activePoint.endX - this.activeObj.activePoint.startX;\n this.activeObj.activePoint.height = this.activeObj.activePoint.endY - this.activeObj.activePoint.startY;\n var currentShapeSettings = this.updatePreviousShapeSettings();\n shapeResizingArgs.currentShapeSettings = currentShapeSettings;\n shapeMovingArgs.currentShapeSettings = currentShapeSettings;\n if (type === 'resize') {\n this.trigger('shapeChanging', shapeResizingArgs);\n this.updateShapeChangeEventArgs(shapeResizingArgs.currentShapeSettings);\n }\n else {\n this.trigger('shapeChanging', shapeMovingArgs);\n this.updateShapeChangeEventArgs(shapeMovingArgs.currentShapeSettings);\n }\n };\n ImageEditor.prototype.updateActivePoint = function (x, y, isCropSelection) {\n var maxDimension = this.calcMaxDimension(this.activeObj.activePoint.width, this.activeObj.activePoint.height);\n var previousShapeSettings = this.updatePreviousShapeSettings();\n var shapeResizingArgs = { action: 'resize', previousShapeSettings: previousShapeSettings };\n var shapeMovingArgs = { action: 'move', previousShapeSettings: previousShapeSettings };\n if (this.activeObj.shape === 'text' && this.dragElement !== '') {\n this.updateFontRatio(this.activeObj);\n }\n switch (this.dragElement.toLowerCase()) {\n case 'nw-resize':\n this.updateNWPoints(x, y, maxDimension);\n this.updateArrowDirection(this.activeObj);\n this.triggerShapeChange(shapeResizingArgs, shapeMovingArgs, 'resize');\n break;\n case 'n-resize':\n this.updateNPoints(x, y);\n this.updateArrowDirection(this.activeObj);\n this.triggerShapeChange(shapeResizingArgs, shapeMovingArgs, 'resize');\n break;\n case 'ne-resize':\n this.updateNEPoints(x, y, maxDimension);\n this.updateArrowDirection(this.activeObj);\n this.triggerShapeChange(shapeResizingArgs, shapeMovingArgs, 'resize');\n break;\n case 'w-resize':\n this.updateWPoints(x, y);\n this.updateArrowDirection(this.activeObj);\n this.triggerShapeChange(shapeResizingArgs, shapeMovingArgs, 'resize');\n break;\n case 'e-resize':\n this.updateEPoints(x, y);\n this.updateArrowDirection(this.activeObj);\n this.triggerShapeChange(shapeResizingArgs, shapeMovingArgs, 'resize');\n break;\n case 'sw-resize':\n this.updateSWPoints(x, y, maxDimension);\n this.updateArrowDirection(this.activeObj);\n this.triggerShapeChange(shapeResizingArgs, shapeMovingArgs, 'resize');\n break;\n case 's-resize':\n this.updateSPoints(x, y);\n this.updateArrowDirection(this.activeObj);\n this.triggerShapeChange(shapeResizingArgs, shapeMovingArgs, 'resize');\n break;\n case 'se-resize':\n this.updateSEPoints(x, y, maxDimension);\n this.updateArrowDirection(this.activeObj);\n this.triggerShapeChange(shapeResizingArgs, shapeMovingArgs, 'resize');\n break;\n default:\n if (!isCropSelection && !this.currObjType.isCustomCrop) {\n if (this.dragPoint.startX) {\n var width = (this.dragPoint.endX - this.previousPoint.x);\n var height = (this.dragPoint.endY - this.previousPoint.y);\n this.activeObj.activePoint.startX += width;\n this.activeObj.activePoint.endX += width;\n this.activeObj.activePoint.startY += height;\n this.activeObj.activePoint.endY += height;\n if (!this.isPreventDragging && (this.activeObj.activePoint.startX < this.destLeft ||\n this.activeObj.activePoint.startY < this.destTop || this.activeObj.activePoint.endX >\n this.destLeft + this.destWidth || this.activeObj.activePoint.endY > this.destTop + this.destHeight)) {\n this.activeObj.activePoint.startX -= width;\n this.activeObj.activePoint.endX -= width;\n this.activeObj.activePoint.startY -= height;\n this.activeObj.activePoint.endY -= height;\n this.setDragWidth(width);\n this.setDragHeight(height);\n }\n }\n else {\n this.activeObj.activePoint.startX = x < this.mouseDownPoint.x ? x : this.mouseDownPoint.x;\n this.activeObj.activePoint.startY = y < this.mouseDownPoint.y ? y : this.mouseDownPoint.y;\n x = x < this.mouseDownPoint.x ? this.mouseDownPoint.x : x;\n y = y < this.mouseDownPoint.y ? this.mouseDownPoint.y : y;\n this.activeObj.activePoint.endX = x;\n this.activeObj.activePoint.endY = y;\n }\n this.triggerShapeChange(shapeResizingArgs, shapeMovingArgs, 'move');\n }\n break;\n }\n };\n ImageEditor.prototype.updateArrowDirection = function (obj, flip, rotatedDegree) {\n if (obj.shape === 'arrow' && (obj.activePoint.width < 0 ||\n obj.activePoint.height < 0 || flip === 'horizontal' || flip === 'vertical' || rotatedDegree === 90)) {\n if (obj.triangleDirection === 'left' && (obj.activePoint.width < 0 ||\n flip === 'horizontal')) {\n obj.triangleDirection = 'right';\n }\n else if (obj.triangleDirection === 'right' && (obj.activePoint.width < 0 ||\n flip === 'horizontal')) {\n obj.triangleDirection = 'left';\n }\n else if (obj.triangleDirection === 'top' && (obj.activePoint.height < 0 ||\n flip === 'vertical')) {\n obj.triangleDirection = 'bottom';\n }\n else if (obj.triangleDirection === 'bottom' && (obj.activePoint.height < 0 ||\n flip === 'vertical')) {\n obj.triangleDirection = 'top';\n }\n if (!isNullOrUndefined(rotatedDegree) && rotatedDegree === 90) {\n if (obj.triangleDirection === 'right') {\n obj.triangleDirection = 'bottom';\n }\n else if (obj.triangleDirection === 'bottom') {\n obj.triangleDirection = 'left';\n }\n else if (obj.triangleDirection === 'left') {\n obj.triangleDirection = 'top';\n }\n else if (obj.triangleDirection === 'top') {\n obj.triangleDirection = 'right';\n }\n }\n }\n };\n ImageEditor.prototype.preventDraggingInvertly = function () {\n if (!this.isPreventDragging) {\n if (this.activeObj.activePoint.startX < this.destLeft) {\n this.activeObj.activePoint.startX = this.destLeft;\n }\n if (this.activeObj.activePoint.startY < this.destTop) {\n this.activeObj.activePoint.startY = this.destTop;\n }\n if (this.activeObj.activePoint.endX > this.destLeft + this.destWidth) {\n this.activeObj.activePoint.endX = this.destLeft + this.destWidth;\n }\n if (this.activeObj.activePoint.endY > this.destTop + this.destHeight) {\n this.activeObj.activePoint.endY = this.destTop + this.destHeight;\n }\n }\n };\n ImageEditor.prototype.preventTextDraggingInvertly = function () {\n var isLimiting = false;\n if (!this.isPreventDragging) {\n if (this.activeObj.activePoint.startX < this.destLeft ||\n this.activeObj.activePoint.startY < this.destTop ||\n this.activeObj.activePoint.endX > this.destLeft + this.destWidth ||\n this.activeObj.activePoint.endY > this.destTop + this.destHeight) {\n isLimiting = true;\n }\n }\n return isLimiting;\n };\n ImageEditor.prototype.updateNWPoints = function (x, y, maxDimension) {\n var diff;\n var width;\n var height;\n var scale;\n var percentage;\n var prevDiffX = this.diffPoint.x;\n var prevDiffY = this.diffPoint.y;\n var tempActiveObj = extend({}, this.activeObj, null, true);\n if (this.activeObj.shape === 'text') {\n if (this.oldPoint.x === undefined && this.oldPoint.y === undefined) {\n this.diffPoint.x = this.activeObj.activePoint.startX - x;\n this.diffPoint.y = this.activeObj.activePoint.startY - y;\n }\n else {\n this.diffPoint.x = this.oldPoint.x - x;\n this.diffPoint.y = this.oldPoint.y - y;\n }\n this.oldPoint.x = x;\n this.oldPoint.y = y;\n if (this.diffPoint.x <= prevDiffX && this.diffPoint.y >= prevDiffY) {\n diff = Math.min(this.diffPoint.x, this.diffPoint.y);\n }\n else {\n diff = Math.max(this.diffPoint.x, this.diffPoint.y);\n }\n percentage = (diff / 10);\n this.activeObj.activePoint.startX -= (maxDimension.width / 100) * percentage;\n this.activeObj.activePoint.startY -= (maxDimension.height / 100) * percentage;\n if (this.preventTextDraggingInvertly()) {\n this.activeObj.activePoint.startX += (maxDimension.width / 100) * percentage;\n this.activeObj.activePoint.startY += (maxDimension.height / 100) * percentage;\n }\n this.activeObj.activePoint.width = this.activeObj.activePoint.endX - this.activeObj.activePoint.startX;\n this.activeObj.activePoint.height = this.activeObj.activePoint.endY - this.activeObj.activePoint.startY;\n this.updateFontSize(this.activeObj);\n }\n else {\n var splitWords = void 0;\n if (this.activeObj.shape !== undefined) {\n splitWords = this.activeObj.shape.split('-');\n }\n if (this.activeObj.shape === 'crop-custom' || (this.activeObj.shape !== undefined && splitWords[0] !== 'crop')) {\n this.activeObj.activePoint.startX = x;\n this.activeObj.activePoint.startY = y;\n if (this.activeObj.activePoint.startX > this.activeObj.activePoint.endX) {\n var temp = this.activeObj.activePoint.startX;\n this.activeObj.activePoint.startX = this.activeObj.activePoint.endX;\n this.activeObj.activePoint.endX = temp;\n this.dragElement = 'ne-resize';\n }\n if (this.activeObj.activePoint.startY > this.activeObj.activePoint.endY) {\n var temp = this.activeObj.activePoint.startY;\n this.activeObj.activePoint.startY = this.activeObj.activePoint.endY;\n this.activeObj.activePoint.endY = temp;\n this.dragElement = 'sw-resize';\n }\n this.preventDraggingInvertly();\n }\n else {\n if (this.activeObj.activePoint.startX < x && this.activeObj.activePoint.startY < y) {\n width = x - this.activeObj.activePoint.startX;\n height = y - this.activeObj.activePoint.startY;\n scale = Math.min(width, height);\n var newScale = this.getScaleRatio(scale);\n this.activeObj.activePoint.startX += newScale.x;\n this.activeObj.activePoint.startY += newScale.y;\n var left = this.destLeft > 0 ? this.destLeft : 0;\n var top_2 = this.destTop > 0 ? this.destTop : 0;\n if (this.activeObj.activePoint.startX < left || this.activeObj.activePoint.startY < top_2) {\n this.activeObj.activePoint.startX -= newScale.x;\n this.activeObj.activePoint.startY -= newScale.y;\n }\n }\n else {\n width = this.activeObj.activePoint.startX - x;\n height = y - this.activeObj.activePoint.endY;\n scale = Math.max(width, height);\n var newScale = this.getScaleRatio(scale);\n this.activeObj.activePoint.startX -= newScale.x;\n this.activeObj.activePoint.startY -= newScale.y;\n var left = this.destLeft > 0 ? this.destLeft : 0;\n var top_3 = this.destTop > 0 ? this.destTop : 0;\n if (this.activeObj.activePoint.startX < left || this.activeObj.activePoint.startY < top_3) {\n this.activeObj.activePoint.startX += newScale.x;\n this.activeObj.activePoint.startY += newScale.y;\n }\n }\n }\n this.activeObj.activePoint.width = this.activeObj.activePoint.endX - this.activeObj.activePoint.startX;\n this.activeObj.activePoint.height = this.activeObj.activePoint.endY - this.activeObj.activePoint.startY;\n this.preventInverseResize(tempActiveObj);\n }\n };\n ImageEditor.prototype.updateNPoints = function (x, y) {\n var width;\n var height;\n var scale;\n if (this.activeObj.shape !== 'text') {\n var splitWords = void 0;\n if (this.activeObj.shape !== undefined) {\n splitWords = this.activeObj.shape.split('-');\n }\n if (this.activeObj.shape === 'crop-custom' || (this.activeObj.shape !== undefined && splitWords[0] !== 'crop')) {\n this.activeObj.activePoint.startY = y;\n this.activeObj.activePoint.height = this.activeObj.activePoint.endY - this.activeObj.activePoint.startY;\n if (this.activeObj.activePoint.startY > this.activeObj.activePoint.endY) {\n var temp = this.activeObj.activePoint.startY;\n this.activeObj.activePoint.startY = this.activeObj.activePoint.endY;\n this.activeObj.activePoint.endY = temp;\n this.dragElement = 's-resize';\n }\n this.preventDraggingInvertly();\n }\n else {\n if (this.activeObj.activePoint.endX > x && this.activeObj.activePoint.startY < y) {\n width = this.activeObj.activePoint.endX - x;\n height = y - this.activeObj.activePoint.startY;\n scale = Math.min(width, height);\n var newScale = this.getScaleRatio(scale);\n this.activeObj.activePoint.endX -= newScale.x;\n this.activeObj.activePoint.startY += newScale.y;\n if (this.activeObj.activePoint.endX > (this.destLeft + this.destWidth) ||\n this.activeObj.activePoint.startY < this.destTop) {\n this.activeObj.activePoint.endX += newScale.x;\n this.activeObj.activePoint.startY -= newScale.y;\n }\n }\n else {\n width = x - this.activeObj.activePoint.endX;\n height = this.activeObj.activePoint.startY - y;\n scale = Math.max(width, height);\n var newScale = this.getScaleRatio(scale);\n this.activeObj.activePoint.endX += newScale.x;\n this.activeObj.activePoint.startY -= newScale.y;\n if (this.activeObj.activePoint.endX > (this.destLeft + this.destWidth) ||\n this.activeObj.activePoint.startY < this.destTop) {\n this.activeObj.activePoint.endX -= newScale.x;\n this.activeObj.activePoint.startY += newScale.y;\n }\n }\n this.activeObj.activePoint.width = this.activeObj.activePoint.endX - this.activeObj.activePoint.startX;\n this.activeObj.activePoint.height = this.activeObj.activePoint.endY - this.activeObj.activePoint.startY;\n }\n }\n };\n ImageEditor.prototype.updateNEPoints = function (x, y, maxDimension) {\n var diff;\n var width;\n var height;\n var scale;\n var percentage;\n var prevDiffX = this.diffPoint.x;\n var prevDiffY = this.diffPoint.y;\n var tempActiveObj = extend({}, this.activeObj, null, true);\n if (this.activeObj.shape === 'text') {\n if (this.oldPoint.x === undefined && this.oldPoint.y === undefined) {\n this.diffPoint.x = x - this.activeObj.activePoint.endX;\n this.diffPoint.y = this.activeObj.activePoint.startY - y;\n }\n else {\n this.diffPoint.x = x - this.oldPoint.x;\n this.diffPoint.y = this.oldPoint.y - y;\n }\n this.oldPoint.x = x;\n this.oldPoint.y = y;\n if (this.diffPoint.x <= prevDiffX && this.diffPoint.y >= prevDiffY) {\n diff = Math.min(this.diffPoint.x, this.diffPoint.y);\n }\n else {\n diff = Math.max(this.diffPoint.x, this.diffPoint.y);\n }\n percentage = (diff / 10);\n this.activeObj.activePoint.endX += (maxDimension.width / 100) * percentage;\n this.activeObj.activePoint.startY -= (maxDimension.height / 100) * percentage;\n if (this.preventTextDraggingInvertly()) {\n this.activeObj.activePoint.endX -= (maxDimension.width / 100) * percentage;\n this.activeObj.activePoint.startY += (maxDimension.height / 100) * percentage;\n }\n this.activeObj.activePoint.width = this.activeObj.activePoint.endX - this.activeObj.activePoint.startX;\n this.activeObj.activePoint.height = this.activeObj.activePoint.endY - this.activeObj.activePoint.startY;\n this.updateFontSize(this.activeObj);\n }\n else {\n var splitWords = void 0;\n if (this.activeObj.shape !== undefined) {\n splitWords = this.activeObj.shape.split('-');\n }\n if (this.currObjType.isCustomCrop || (this.activeObj.shape !== undefined && splitWords[0] !== 'crop')) {\n this.activeObj.activePoint.endX = x;\n this.activeObj.activePoint.startY = y;\n if (this.activeObj.activePoint.endX < this.activeObj.activePoint.startX) {\n var temp = this.activeObj.activePoint.endX;\n this.activeObj.activePoint.endX = this.activeObj.activePoint.startX;\n this.activeObj.activePoint.startX = temp;\n this.dragElement = 'nw-resize';\n }\n if (this.activeObj.activePoint.startY > this.activeObj.activePoint.endY) {\n var temp = this.activeObj.activePoint.startY;\n this.activeObj.activePoint.startY = this.activeObj.activePoint.endY;\n this.activeObj.activePoint.endY = temp;\n this.dragElement = 'se-resize';\n }\n this.preventDraggingInvertly();\n }\n else {\n if (this.activeObj.activePoint.endX > x && this.activeObj.activePoint.startY < y) {\n width = this.activeObj.activePoint.endX - x;\n height = y - this.activeObj.activePoint.startY;\n scale = Math.min(width, height);\n var newScale = this.getScaleRatio(scale);\n this.activeObj.activePoint.endX -= newScale.x;\n this.activeObj.activePoint.startY += newScale.y;\n var endX = this.destLeft + this.destWidth < this.lowerCanvas.width ?\n this.destLeft + this.destWidth : this.lowerCanvas.width;\n var endY = this.destTop > 0 ? this.destTop : 0;\n if (this.activeObj.activePoint.endX > endX || this.activeObj.activePoint.startY < endY) {\n this.activeObj.activePoint.endX += newScale.x;\n this.activeObj.activePoint.startY -= newScale.y;\n }\n }\n else {\n width = x - this.activeObj.activePoint.endX;\n height = this.activeObj.activePoint.startY - y;\n scale = Math.max(width, height);\n var newScale = this.getScaleRatio(scale);\n this.activeObj.activePoint.endX += newScale.x;\n this.activeObj.activePoint.startY -= newScale.y;\n var endX = this.destLeft + this.destWidth < this.lowerCanvas.width ?\n this.destLeft + this.destWidth : this.lowerCanvas.width;\n var endY = this.destTop > 0 ? this.destTop : 0;\n if (this.activeObj.activePoint.endX > endX || this.activeObj.activePoint.startY < endY) {\n this.activeObj.activePoint.endX -= newScale.x;\n this.activeObj.activePoint.startY += newScale.y;\n }\n }\n }\n this.activeObj.activePoint.width = this.activeObj.activePoint.endX - this.activeObj.activePoint.startX;\n this.activeObj.activePoint.height = this.activeObj.activePoint.endY - this.activeObj.activePoint.startY;\n this.preventInverseResize(tempActiveObj);\n }\n };\n ImageEditor.prototype.updateWPoints = function (x, y) {\n var width;\n var height;\n var scale;\n if (this.activeObj.shape !== 'text') {\n var splitWords = void 0;\n if (this.activeObj.shape !== undefined) {\n splitWords = this.activeObj.shape.split('-');\n }\n if (this.activeObj.shape === 'crop-custom' || (this.activeObj.shape !== undefined && splitWords[0] !== 'crop')) {\n this.activeObj.activePoint.startX = x;\n this.activeObj.activePoint.width = this.activeObj.activePoint.endX - this.activeObj.activePoint.startX;\n if (this.activeObj.activePoint.startX > this.activeObj.activePoint.endX) {\n var temp = this.activeObj.activePoint.startX;\n this.activeObj.activePoint.startX = this.activeObj.activePoint.endX;\n this.activeObj.activePoint.endX = temp;\n this.dragElement = 'e-resize';\n }\n this.preventDraggingInvertly();\n }\n else {\n if (this.activeObj.activePoint.startX < x && this.activeObj.activePoint.endY > y) {\n width = x - this.activeObj.activePoint.startX;\n height = this.activeObj.activePoint.endY - y;\n scale = Math.min(width, height);\n var newScale = this.getScaleRatio(scale);\n this.activeObj.activePoint.startX += newScale.x;\n this.activeObj.activePoint.endY -= newScale.y;\n if (this.activeObj.activePoint.startX < this.destLeft || this.activeObj.activePoint.endY >\n (this.destTop + this.destHeight)) {\n this.activeObj.activePoint.startX -= newScale.x;\n this.activeObj.activePoint.endY += newScale.y;\n }\n }\n else {\n width = this.activeObj.activePoint.startX - x;\n height = y - this.activeObj.activePoint.endY;\n scale = Math.max(width, height);\n var newScale = this.getScaleRatio(scale);\n this.activeObj.activePoint.startX -= newScale.x;\n this.activeObj.activePoint.endY += newScale.y;\n if (this.activeObj.activePoint.startX < this.destLeft || this.activeObj.activePoint.endY >\n (this.destTop + this.destHeight)) {\n this.activeObj.activePoint.startX += newScale.x;\n this.activeObj.activePoint.endY -= newScale.y;\n }\n }\n this.activeObj.activePoint.width = this.activeObj.activePoint.endX - this.activeObj.activePoint.startX;\n this.activeObj.activePoint.height = this.activeObj.activePoint.endY - this.activeObj.activePoint.startY;\n }\n }\n };\n ImageEditor.prototype.updateEPoints = function (x, y) {\n var width;\n var height;\n var scale;\n if (this.activeObj.shape !== 'text') {\n var splitWords = void 0;\n if (this.activeObj.shape !== undefined) {\n splitWords = this.activeObj.shape.split('-');\n }\n if (this.activeObj.shape === 'crop-custom' || (this.activeObj.shape !== undefined && splitWords[0] !== 'crop')) {\n this.activeObj.activePoint.endX = x;\n this.activeObj.activePoint.width = this.activeObj.activePoint.endX - this.activeObj.activePoint.startX;\n if (this.activeObj.activePoint.endX < this.activeObj.activePoint.startX) {\n var temp = this.activeObj.activePoint.endX;\n this.activeObj.activePoint.endX = this.activeObj.activePoint.startX;\n this.activeObj.activePoint.startX = temp;\n this.dragElement = 'w-resize';\n }\n this.preventDraggingInvertly();\n }\n else {\n if (this.activeObj.activePoint.endX > x && this.activeObj.activePoint.endY > y) {\n width = this.activeObj.activePoint.endX - x;\n height = this.activeObj.activePoint.endY - y;\n scale = Math.min(width, height);\n var newScale = this.getScaleRatio(scale);\n this.activeObj.activePoint.endX -= newScale.x;\n this.activeObj.activePoint.endY -= newScale.y;\n if (this.activeObj.activePoint.endX > (this.destLeft + this.destWidth) ||\n this.activeObj.activePoint.endY > (this.destTop + this.destHeight)) {\n this.activeObj.activePoint.endX += newScale.x;\n this.activeObj.activePoint.endY += newScale.y;\n }\n }\n else {\n width = x - this.activeObj.activePoint.endX;\n height = y - this.activeObj.activePoint.endY;\n scale = Math.max(width, height);\n var newScale = this.getScaleRatio(scale);\n this.activeObj.activePoint.endX += newScale.x;\n this.activeObj.activePoint.endY += newScale.y;\n if (this.activeObj.activePoint.endX > (this.destLeft + this.destWidth) || this.activeObj.activePoint.endY >\n (this.destTop + this.destHeight)) {\n this.activeObj.activePoint.endX -= newScale.x;\n this.activeObj.activePoint.endY -= newScale.y;\n }\n }\n this.activeObj.activePoint.width = this.activeObj.activePoint.endX - this.activeObj.activePoint.startX;\n this.activeObj.activePoint.height = this.activeObj.activePoint.endY - this.activeObj.activePoint.startY;\n }\n }\n };\n ImageEditor.prototype.updateSWPoints = function (x, y, maxDimension) {\n var diff;\n var width;\n var height;\n var scale;\n var percentage;\n var prevDiffX = this.diffPoint.x;\n var prevDiffY = this.diffPoint.y;\n var tempActiveObj = extend({}, this.activeObj, null, true);\n if (this.activeObj.shape === 'text') {\n if (this.oldPoint.x === undefined && this.oldPoint.y === undefined) {\n this.diffPoint.x = this.activeObj.activePoint.startX - x;\n this.diffPoint.y = y - this.activeObj.activePoint.endY;\n }\n else {\n this.diffPoint.x = this.oldPoint.x - x;\n this.diffPoint.y = y - this.oldPoint.y;\n }\n this.oldPoint.x = x;\n this.oldPoint.y = y;\n if (this.diffPoint.x <= prevDiffX && this.diffPoint.y >= prevDiffY) {\n diff = Math.min(this.diffPoint.x, this.diffPoint.y);\n }\n else {\n diff = Math.max(this.diffPoint.x, this.diffPoint.y);\n }\n percentage = (diff / 10);\n this.activeObj.activePoint.startX -= (maxDimension.width / 100) * percentage;\n this.activeObj.activePoint.endY += (maxDimension.height / 100) * percentage;\n if (this.preventTextDraggingInvertly()) {\n this.activeObj.activePoint.startX += (maxDimension.width / 100) * percentage;\n this.activeObj.activePoint.endY -= (maxDimension.height / 100) * percentage;\n }\n this.activeObj.activePoint.width = this.activeObj.activePoint.endX - this.activeObj.activePoint.startX;\n this.activeObj.activePoint.height = this.activeObj.activePoint.endY - this.activeObj.activePoint.startY;\n this.updateFontSize(this.activeObj);\n }\n else {\n var splitWords = void 0;\n if (this.activeObj.shape !== undefined) {\n splitWords = this.activeObj.shape.split('-');\n }\n if (this.activeObj.shape === 'crop-custom' || (this.activeObj.shape !== undefined && splitWords[0] !== 'crop')) {\n this.activeObj.activePoint.startX = x;\n this.activeObj.activePoint.endY = y;\n if (this.activeObj.activePoint.startX > this.activeObj.activePoint.endX) {\n var temp = this.activeObj.activePoint.startX;\n this.activeObj.activePoint.startX = this.activeObj.activePoint.endX;\n this.activeObj.activePoint.endX = temp;\n this.dragElement = 'se-resize';\n }\n if (this.activeObj.activePoint.endY < this.activeObj.activePoint.startY) {\n var temp = this.activeObj.activePoint.endY;\n this.activeObj.activePoint.endY = this.activeObj.activePoint.startY;\n this.activeObj.activePoint.startY = temp;\n this.dragElement = 'nw-resize';\n }\n this.preventDraggingInvertly();\n }\n else {\n if (this.activeObj.activePoint.startX < x && this.activeObj.activePoint.endY > y) {\n width = x - this.activeObj.activePoint.startX;\n height = this.activeObj.activePoint.endY - y;\n scale = Math.min(width, height);\n var newScale = this.getScaleRatio(scale);\n this.activeObj.activePoint.startX += newScale.x;\n this.activeObj.activePoint.endY -= newScale.y;\n var endX = this.destLeft > 0 ? this.destLeft : 0;\n var endY = this.destTop + this.destHeight < this.lowerCanvas.height ? this.destTop +\n this.destHeight : this.lowerCanvas.height;\n if (this.activeObj.activePoint.startX < endX || this.activeObj.activePoint.endY > endY) {\n this.activeObj.activePoint.startX -= newScale.x;\n this.activeObj.activePoint.endY += newScale.y;\n }\n }\n else {\n width = this.activeObj.activePoint.startX - x;\n height = y - this.activeObj.activePoint.endY;\n scale = Math.max(width, height);\n var newScale = this.getScaleRatio(scale);\n this.activeObj.activePoint.startX -= newScale.x;\n this.activeObj.activePoint.endY += newScale.y;\n var endX = this.destLeft > 0 ? this.destLeft : 0;\n var endY = this.destTop + this.destHeight < this.lowerCanvas.height ? this.destTop +\n this.destHeight : this.lowerCanvas.height;\n if (this.activeObj.activePoint.startX < endX || this.activeObj.activePoint.endY > endY) {\n this.activeObj.activePoint.startX += newScale.x;\n this.activeObj.activePoint.endY -= newScale.y;\n }\n }\n }\n this.activeObj.activePoint.width = this.activeObj.activePoint.endX - this.activeObj.activePoint.startX;\n this.activeObj.activePoint.height = this.activeObj.activePoint.endY - this.activeObj.activePoint.startY;\n this.preventInverseResize(tempActiveObj);\n }\n };\n ImageEditor.prototype.updateSPoints = function (x, y) {\n var width;\n var height;\n var scale;\n if (this.activeObj.shape !== 'text') {\n var splitWords = void 0;\n if (this.activeObj.shape !== undefined) {\n splitWords = this.activeObj.shape.split('-');\n }\n if (this.activeObj.shape === 'crop-custom' || (this.activeObj.shape !== undefined && splitWords[0] !== 'crop')) {\n this.activeObj.activePoint.endY = y;\n this.activeObj.activePoint.height = this.activeObj.activePoint.endY - this.activeObj.activePoint.startY;\n if (this.activeObj.activePoint.endY < this.activeObj.activePoint.startY) {\n var temp = this.activeObj.activePoint.endY;\n this.activeObj.activePoint.endY = this.activeObj.activePoint.startY;\n this.activeObj.activePoint.startY = temp;\n this.dragElement = 'n-resize';\n }\n this.preventDraggingInvertly();\n }\n else {\n if (this.activeObj.activePoint.endX > x && this.activeObj.activePoint.endY > y) {\n width = this.activeObj.activePoint.endX - x;\n height = this.activeObj.activePoint.endY - y;\n scale = Math.min(width, height);\n var newScale = this.getScaleRatio(scale);\n this.activeObj.activePoint.endX -= newScale.x;\n this.activeObj.activePoint.endY -= newScale.y;\n if (this.activeObj.activePoint.endX > (this.destLeft + this.destWidth) ||\n this.activeObj.activePoint.endY > (this.destTop + this.destHeight)) {\n this.activeObj.activePoint.endX += newScale.x;\n this.activeObj.activePoint.endY += newScale.y;\n }\n }\n else {\n width = x - this.activeObj.activePoint.endX;\n height = y - this.activeObj.activePoint.endY;\n scale = Math.max(width, height);\n var newScale = this.getScaleRatio(scale);\n this.activeObj.activePoint.endX += newScale.x;\n this.activeObj.activePoint.endY += newScale.x;\n if (this.activeObj.activePoint.endX > (this.destLeft + this.destWidth) ||\n this.activeObj.activePoint.endY > (this.destTop + this.destHeight)) {\n this.activeObj.activePoint.endX -= newScale.x;\n this.activeObj.activePoint.endY -= newScale.y;\n }\n }\n this.activeObj.activePoint.width = this.activeObj.activePoint.endX - this.activeObj.activePoint.startX;\n this.activeObj.activePoint.height = this.activeObj.activePoint.endY - this.activeObj.activePoint.startY;\n }\n }\n };\n ImageEditor.prototype.updateSEPoints = function (x, y, maxDimension) {\n var diff;\n var width;\n var height;\n var scale;\n var percentage;\n var prevDiffX = this.diffPoint.x;\n var prevDiffY = this.diffPoint.y;\n var tempActiveObj = extend({}, this.activeObj, null, true);\n if (this.activeObj.shape === 'text') {\n if (this.oldPoint.x === undefined && this.oldPoint.y === undefined) {\n this.diffPoint.x = x - this.activeObj.activePoint.endX;\n this.diffPoint.y = y - this.activeObj.activePoint.endY;\n }\n else {\n this.diffPoint.x = x - this.oldPoint.x;\n this.diffPoint.y = y - this.oldPoint.y;\n }\n this.oldPoint.x = x;\n this.oldPoint.y = y;\n if (this.diffPoint.x >= prevDiffX && this.diffPoint.y >= prevDiffY) {\n diff = Math.max(this.diffPoint.x, this.diffPoint.y);\n }\n else {\n diff = Math.min(this.diffPoint.x, this.diffPoint.y);\n }\n percentage = (diff / 10);\n this.activeObj.activePoint.endX += (maxDimension.width / 50) * percentage;\n this.activeObj.activePoint.endY += (maxDimension.height / 50) * percentage;\n if (this.preventTextDraggingInvertly()) {\n this.activeObj.activePoint.endX -= (maxDimension.width / 50) * percentage;\n this.activeObj.activePoint.endY -= (maxDimension.height / 50) * percentage;\n }\n this.activeObj.activePoint.width = this.activeObj.activePoint.endX - this.activeObj.activePoint.startX;\n this.activeObj.activePoint.height = this.activeObj.activePoint.endY - this.activeObj.activePoint.startY;\n this.updateFontSize(this.activeObj);\n }\n else {\n var splitWords = void 0;\n if (this.activeObj.shape !== undefined) {\n splitWords = this.activeObj.shape.split('-');\n }\n if (this.activeObj.shape === 'crop-custom' || (this.activeObj.shape !== undefined && splitWords[0] !== 'crop')) {\n this.activeObj.activePoint.endX = x;\n this.activeObj.activePoint.endY = y;\n if (this.activeObj.activePoint.endX < this.activeObj.activePoint.startX) {\n var temp = this.activeObj.activePoint.endX;\n this.activeObj.activePoint.endX = this.activeObj.activePoint.startX;\n this.activeObj.activePoint.startX = temp;\n this.dragElement = 'sw-resize';\n }\n if (this.activeObj.activePoint.endY < this.activeObj.activePoint.startY) {\n var temp = this.activeObj.activePoint.endY;\n this.activeObj.activePoint.endY = this.activeObj.activePoint.startY;\n this.activeObj.activePoint.startY = temp;\n this.dragElement = 'ne-resize';\n }\n this.preventDraggingInvertly();\n }\n else {\n if (this.activeObj.activePoint.endX > x && this.activeObj.activePoint.endY > y) {\n width = this.activeObj.activePoint.endX - x;\n height = this.activeObj.activePoint.endY - y;\n scale = Math.min(width, height);\n var newScale = this.getScaleRatio(scale);\n this.activeObj.activePoint.endX -= newScale.x;\n this.activeObj.activePoint.endY -= newScale.y;\n var endX = this.destLeft + this.destWidth < this.lowerCanvas.width ?\n this.destLeft + this.destWidth : this.lowerCanvas.width;\n var endY = this.destTop + this.destHeight < this.lowerCanvas.height ?\n this.destTop + this.destHeight : this.lowerCanvas.height;\n if (this.activeObj.activePoint.endX > endX || this.activeObj.activePoint.endY > endY) {\n this.activeObj.activePoint.endX += newScale.x;\n this.activeObj.activePoint.endY += newScale.y;\n }\n }\n else {\n width = x - this.activeObj.activePoint.endX;\n height = y - this.activeObj.activePoint.endY;\n scale = Math.max(width, height);\n var newScale = this.getScaleRatio(scale);\n this.activeObj.activePoint.endX += newScale.x;\n this.activeObj.activePoint.endY += newScale.y;\n var endX = this.destLeft + this.destWidth < this.lowerCanvas.width ? this.destLeft +\n this.destWidth : this.lowerCanvas.width;\n var endY = this.destTop + this.destHeight < this.lowerCanvas.height ? this.destTop +\n this.destHeight : this.lowerCanvas.height;\n if (this.activeObj.activePoint.endX > endX || this.activeObj.activePoint.endY > endY) {\n this.activeObj.activePoint.endX -= newScale.x;\n this.activeObj.activePoint.endY -= newScale.y;\n }\n }\n }\n this.activeObj.activePoint.width = this.activeObj.activePoint.endX - this.activeObj.activePoint.startX;\n this.activeObj.activePoint.height = this.activeObj.activePoint.endY - this.activeObj.activePoint.startY;\n this.preventInverseResize(tempActiveObj);\n }\n };\n ImageEditor.prototype.updateFontRatio = function (obj, isTextArea) {\n var text = this.getMaxText(isTextArea);\n var width = this.upperContext.measureText(text).width +\n this.activeObj.textSettings.fontSize * 0.5;\n var height = (this.activeObj.textSettings.fontSize + this.activeObj.textSettings.fontSize * 0.25);\n var degree;\n if (obj.shapeDegree === 0) {\n degree = this.degree;\n }\n else {\n degree = this.degree - obj.shapeDegree;\n }\n if (isNullOrUndefined(isTextArea)) {\n if (degree === 0 || degree === 180) {\n obj.textSettings.fontRatio = width / obj.textSettings.fontSize;\n }\n else {\n obj.textSettings.fontRatio = height / obj.textSettings.fontSize;\n }\n }\n else if (isTextArea) {\n obj.textSettings.fontRatio = width / parseFloat(this.textArea.style.fontSize);\n }\n };\n ImageEditor.prototype.updateFontSize = function (obj) {\n var degree;\n if (obj.shapeDegree === 0) {\n degree = this.degree;\n }\n else {\n degree = this.degree - obj.shapeDegree;\n }\n if (degree === 0 || degree === 180 || degree === -180) {\n obj.textSettings.fontSize = (obj.activePoint.width / obj.textSettings.fontRatio);\n }\n else {\n obj.textSettings.fontSize = (obj.activePoint.height / obj.textSettings.fontRatio);\n }\n };\n ImageEditor.prototype.preventInverseResize = function (tempActiveObj) {\n if (this.activeObj.activePoint.width < 0) {\n this.activeObj.activePoint.width = 0;\n this.activeObj.activePoint.startX = tempActiveObj.activePoint.startX;\n this.activeObj.activePoint.endX = tempActiveObj.activePoint.endX;\n }\n if (this.activeObj.activePoint.height < 0) {\n this.activeObj.activePoint.height = 0;\n this.activeObj.activePoint.startY = tempActiveObj.activePoint.startY;\n this.activeObj.activePoint.endY = tempActiveObj.activePoint.endY;\n }\n };\n ImageEditor.prototype.getScaleRatio = function (scale) {\n var point = { x: scale, y: scale };\n if (!isNullOrUndefined(this.activeObj.shape) && this.activeObj.shape !== 'crop-custom' &&\n this.activeObj.shape !== 'crop-circle' && this.activeObj.shape !== 'crop-square') {\n var ratio = this.activeObj.shape.split('-');\n if (ratio.length > 1) {\n ratio = ratio[1].split(':');\n var newScale = scale / (parseInt(ratio[1], 10));\n point.x = newScale * (parseInt(ratio[0], 10));\n point.y = newScale * (parseInt(ratio[1], 10));\n }\n }\n return point;\n };\n ImageEditor.prototype.getMaxText = function (isTextBox, text) {\n if (isNullOrUndefined(text)) {\n text = isTextBox ? this.textArea.value : this.activeObj.keyHistory;\n }\n var maxi;\n var rows = text.split('\\n');\n var maxStr = rows[0].length;\n var maxText = rows[0];\n for (var i = 1; i < rows.length; i++) {\n maxi = rows[i].length;\n if (maxi > maxStr) {\n maxText = rows[i];\n maxStr = maxi;\n }\n }\n return maxText;\n };\n ImageEditor.prototype.setDragLimit = function () {\n if (this.activeObj.activePoint) {\n if (this.activeObj.activePoint.startX < this.destLeft) {\n this.activeObj.activePoint.startX = this.destLeft;\n this.activeObj.activePoint.endX = this.activeObj.activePoint.startX + this.activeObj.activePoint.width;\n }\n else if (this.activeObj.activePoint.endX > this.destLeft + this.destWidth) {\n this.activeObj.activePoint.endX = this.destLeft + this.destWidth;\n this.activeObj.activePoint.startX = this.activeObj.activePoint.endX - this.activeObj.activePoint.width;\n }\n if (this.activeObj.activePoint.startY < this.destTop) {\n this.activeObj.activePoint.startY = this.destTop;\n }\n else if (this.activeObj.activePoint.endY > this.destTop + this.destHeight) {\n this.activeObj.activePoint.endY = this.destTop + this.destHeight;\n this.activeObj.activePoint.startY = this.activeObj.activePoint.endY - this.activeObj.activePoint.height;\n }\n this.activeObj.activePoint.width = this.activeObj.activePoint.endX - this.activeObj.activePoint.startX;\n this.activeObj.activePoint.height = this.activeObj.activePoint.endY - this.activeObj.activePoint.startY;\n }\n };\n ImageEditor.prototype.lineDraw = function () {\n if (this.activeObj.activePoint.height < 10) {\n this.activeObj.activePoint.startY -= 10;\n this.activeObj.activePoint.endY += 10;\n this.activeObj.lineDraw = 'horizontal';\n }\n else if (this.activeObj.activePoint.width < 10) {\n this.activeObj.activePoint.startX -= 10;\n this.activeObj.activePoint.endX += 10;\n this.activeObj.lineDraw = 'vertical';\n }\n else if (this.currObjType.isInitialLine) {\n this.activeObj.lineDraw = 'normal';\n this.currObjType.isInitialLine = false;\n }\n this.activeObj.activePoint.width = this.activeObj.activePoint.endX - this.activeObj.activePoint.startX;\n this.activeObj.activePoint.height = this.activeObj.activePoint.endY - this.activeObj.activePoint.startY;\n };\n ImageEditor.prototype.shapeCircle = function (canvasDraw, selectionWidth, selectionHeight) {\n canvasDraw.strokeStyle = this.themeColl[this.theme]['primaryColor'];\n canvasDraw.clearRect(0, 0, this.lowerCanvas.width, this.lowerCanvas.height);\n canvasDraw.fillStyle = 'rgb(0, 0, 0, 0.5)';\n canvasDraw.fillRect(0, 0, this.lowerCanvas.width, this.lowerCanvas.height);\n var tempWidth = canvasDraw.lineWidth;\n canvasDraw.lineWidth = (2);\n canvasDraw.beginPath();\n canvasDraw.ellipse(this.activeObj.horTopLine.startX + (selectionWidth / 2), this.activeObj.horTopLine.startY\n + (selectionHeight / 2), selectionWidth / 2, selectionHeight / 2, 0, 0, 2 * Math.PI, false);\n canvasDraw.stroke();\n canvasDraw.closePath();\n canvasDraw.save();\n canvasDraw.beginPath();\n canvasDraw.arc(((this.activeObj.activePoint.endX - this.activeObj.activePoint.startX) / 2) + this.activeObj.activePoint.startX, ((this.activeObj.activePoint.endY - this.activeObj.activePoint.startY) / 2) + this.activeObj.activePoint.startY, (this.activeObj.activePoint.width / 2), 0, Math.PI * 2);\n canvasDraw.closePath();\n canvasDraw.clip();\n canvasDraw.clearRect(0, 0, this.lowerCanvas.width, this.lowerCanvas.height);\n canvasDraw.restore();\n canvasDraw.lineWidth = tempWidth;\n this.drawOuterSelection(canvasDraw, true);\n this.currObjType.shape = '';\n };\n ImageEditor.prototype.drawOuterSelection = function (canvasDraw, isCropCircle) {\n var splitWords;\n canvasDraw.lineWidth = (0.5);\n if (this.activeObj.shape !== undefined) {\n splitWords = this.activeObj.shape.split('-');\n }\n var tempObj = extend({}, this.activeObj, {}, true);\n if (this.activeObj.shape !== undefined) {\n splitWords = this.activeObj.shape.split('-');\n }\n if (((splitWords !== undefined && splitWords[0] === 'crop') || this.activeObj.shape === undefined) && !isCropCircle) {\n this.upperContext.fillStyle = 'rgb(0, 0, 0, 0.5)';\n this.upperContext.fillRect(0, 0, this.lowerCanvas.width, this.lowerCanvas.height);\n this.upperContext.clearRect(this.activeObj.activePoint.startX, this.activeObj.activePoint.startY, this.activeObj.activePoint.width, this.activeObj.activePoint.height);\n }\n canvasDraw.strokeStyle = this.themeColl[this.theme]['primaryColor'];\n canvasDraw.fillStyle = this.themeColl[this.theme]['secondaryColor'];\n var degree;\n if (tempObj.shapeDegree === 0) {\n degree = this.degree;\n }\n else {\n degree = this.degree - tempObj.shapeDegree;\n }\n if (degree < 0) {\n degree = 360 + degree;\n }\n if (this.activeObj.shape === 'arrow' || this.activeObj.shape === 'line') {\n canvasDraw.beginPath();\n if (degree % 90 === 0 && degree % 180 !== 0) {\n canvasDraw.moveTo(tempObj.topCenterCircle.startX, tempObj.topCenterCircle.startY);\n canvasDraw.lineTo(tempObj.bottomCenterCircle.startX, tempObj.bottomCenterCircle.startY);\n }\n else {\n canvasDraw.moveTo(tempObj.centerLeftCircle.startX, tempObj.centerLeftCircle.startY);\n canvasDraw.lineTo(tempObj.centerRightCircle.startX, tempObj.centerRightCircle.startY);\n }\n canvasDraw.stroke();\n }\n else {\n canvasDraw.beginPath();\n canvasDraw.rect(tempObj.activePoint.startX, tempObj.activePoint.startY, tempObj.activePoint.width, tempObj.activePoint.height);\n canvasDraw.stroke();\n canvasDraw.closePath();\n canvasDraw.lineWidth *= 2;\n canvasDraw.beginPath();\n canvasDraw.moveTo(tempObj.topLeftCircle.startX, tempObj.topLeftCircle.startY);\n canvasDraw.arc(tempObj.topLeftCircle.startX, tempObj.topLeftCircle.startY, tempObj.topLeftCircle.radius, 0, 2 * Math.PI);\n canvasDraw.moveTo(tempObj.topRightCircle.startX, tempObj.topRightCircle.startY);\n canvasDraw.arc(tempObj.topRightCircle.startX, tempObj.topRightCircle.startY, tempObj.topRightCircle.radius, 0, 2 * Math.PI);\n canvasDraw.moveTo(tempObj.bottomLeftCircle.startX, tempObj.bottomLeftCircle.startY);\n canvasDraw.arc(tempObj.bottomLeftCircle.startX, tempObj.bottomLeftCircle.startY, tempObj.bottomLeftCircle.radius, 0, 2 * Math.PI);\n canvasDraw.moveTo(tempObj.bottomRightCircle.startX, tempObj.bottomRightCircle.startY);\n canvasDraw.arc(tempObj.bottomRightCircle.startX, tempObj.bottomRightCircle.startY, tempObj.bottomRightCircle.radius, 0, 2 * Math.PI);\n canvasDraw.stroke();\n canvasDraw.fill();\n canvasDraw.closePath();\n canvasDraw.lineWidth /= 2;\n }\n if ((splitWords === undefined || splitWords[0] !== 'crop') && this.activeObj.shape !== 'text') {\n this.drawCenterCircles(canvasDraw, degree);\n }\n this.activeObj = extend({}, tempObj, {}, true);\n };\n ImageEditor.prototype.drawObject = function (canvas, obj, isCropRatio, points, isPreventDrag, saveContext, isPreventSelection) {\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n var canvasDraw;\n if (canvas.toLowerCase() === 'original') {\n canvasDraw = this.lowerContext;\n }\n else if (canvas.toLowerCase() === 'duplicate') {\n canvasDraw = this.upperContext;\n }\n else if (!isNullOrUndefined(saveContext)) {\n canvasDraw = saveContext;\n }\n if (!isPreventDrag && !isNullOrUndefined(this.activeObj.shape)) {\n this.setDragLimit();\n }\n if (this.currObjType.isLine && canvas !== 'original' && !obj) {\n this.lineDraw();\n }\n var splitWords = this.currObjType.shape.split('-');\n if (splitWords[0].toLowerCase() === 'crop' && isCropRatio) {\n this.drawCropRatio();\n }\n if (points) {\n this.activeObj.activePoint.startX = points.startX;\n this.activeObj.activePoint.startY = points.startY;\n this.activeObj.activePoint.endX = points.endX;\n this.activeObj.activePoint.endY = points.endY;\n this.activeObj.activePoint.width = points.width;\n this.activeObj.activePoint.height = points.height;\n }\n if (isNullOrUndefined(this.activeObj.strokeSettings)) {\n this.activeObj.strokeSettings = this.strokeSettings;\n }\n if (isNullOrUndefined(this.activeObj.strokeSettings.strokeWidth)) {\n this.activeObj.strokeSettings.strokeWidth = 4;\n }\n if (obj) {\n this.activeObj = extend({}, obj, {}, true);\n }\n this.updateActiveObject();\n if (this.currObjType.isText) {\n this.activeObj.keyHistory = this.keyHistory;\n }\n if (canvas.toLowerCase() !== 'original') {\n var splitWords_2;\n var isCrop = false;\n if (this.activeObj.shape) {\n splitWords_2 = this.activeObj.shape.split('-');\n if (splitWords_2[0] === 'crop') {\n isCrop = true;\n }\n }\n if (isCrop) {\n this.upperContext.fillStyle = 'rgb(0, 0, 0, 0.5)';\n this.upperContext.fillRect(0, 0, this.lowerCanvas.width, this.lowerCanvas.height);\n this.upperContext.clearRect(this.activeObj.activePoint.startX, this.activeObj.activePoint.startY, this.activeObj.activePoint.width, this.activeObj.activePoint.height);\n }\n if (isNullOrUndefined(isPreventSelection) && (canvasDraw === this.lowerContext || canvasDraw === this.upperContext)) {\n this.drawOuterSelection(canvasDraw);\n }\n }\n this.currObjType.isActiveObj = true;\n if (obj) {\n this.drawShapeObj(canvas, obj.shape, saveContext, isPreventSelection);\n }\n else if (this.keyHistory !== '' && this.currObjType.isText) {\n this.drawShapeObj(canvas, 'text', saveContext, isPreventSelection);\n }\n else if (this.activeObj.shape) {\n this.drawShapeObj(canvas, this.activeObj.shape, saveContext, isPreventSelection);\n }\n else {\n this.drawShapeObj(canvas, undefined, saveContext, isPreventSelection);\n }\n if (this.isAllowCropPan) {\n this.isAllowCropPan = false;\n this.tempPanMove = extend({}, this.panMove, {}, true);\n this.currentPannedPoint = this.updatePanPoints(this.getCurrentPanRegion());\n this.rotatePan();\n }\n };\n ImageEditor.prototype.updateActiveObject = function (actPoint, obj, isMouseMove, x, y) {\n actPoint = actPoint ? actPoint : extend({}, this.activeObj.activePoint, {}, true);\n obj = obj ? obj : extend({}, this.activeObj, {}, true);\n actPoint.width = actPoint.endX - actPoint.startX;\n actPoint.height = actPoint.endY - actPoint.startY;\n x = x ? x : 0;\n y = y ? y : 0;\n var horCircleWidth = actPoint.width / 2;\n var verCircleHeight = actPoint.height / 2;\n var radius = 7.5;\n obj.horTopLine = { startX: actPoint.startX + x, startY: actPoint.startY - y,\n endX: actPoint.endX + x, endY: actPoint.endY + y };\n obj.horBottomLine = { startX: actPoint.startX - x, startY: actPoint.endY - y,\n endX: actPoint.endX - x, endY: actPoint.endY + y };\n obj.verLeftLine = { startX: actPoint.startX + x, startY: actPoint.startY - y,\n endX: actPoint.startX - y, endY: actPoint.endY - y };\n obj.verRightLine = { startX: actPoint.endX + x, startY: actPoint.startY + y,\n endX: actPoint.endX - x, endY: actPoint.endY + y };\n obj.topLeftCircle = { startX: actPoint.startX, startY: actPoint.startY,\n radius: obj.horTopLine.endX ? (radius) : 0 };\n obj.topCenterCircle = { startX: actPoint.startX + horCircleWidth, startY: actPoint.startY,\n radius: obj.horTopLine.endX ? (radius) : 0 };\n obj.topRightCircle = { startX: actPoint.endX, startY: actPoint.startY,\n radius: obj.horTopLine.endX ? (radius) : 0 };\n obj.centerLeftCircle = { startX: actPoint.startX, startY: actPoint.startY + verCircleHeight,\n radius: obj.horTopLine.endX ? (radius) : 0 };\n obj.centerRightCircle = { startX: actPoint.endX, startY: actPoint.startY + verCircleHeight,\n radius: obj.horTopLine.endX ? (radius) : 0 };\n obj.bottomLeftCircle = { startX: actPoint.startX, startY: actPoint.endY,\n radius: obj.horTopLine.endX ? (radius) : 0 };\n obj.bottomCenterCircle = { startX: actPoint.startX + horCircleWidth, startY: actPoint.endY,\n radius: obj.horTopLine.endX ? (radius) : 0 };\n obj.bottomRightCircle = { startX: actPoint.endX, startY: actPoint.endY,\n radius: obj.horTopLine.endX ? (radius) : 0 };\n obj.activePoint = actPoint;\n if (isNullOrUndefined(isMouseMove)) {\n this.activeObj = extend({}, obj, {}, true);\n }\n };\n ImageEditor.prototype.drawShapeObj = function (canvas, shape, saveContext, isPreventSelection) {\n var currentShape = shape !== undefined ? shape : this.currObjType.shape;\n this.currObjType.shape = currentShape;\n var canvasDraw;\n if (canvas.toLowerCase() === 'original') {\n canvasDraw = this.lowerContext;\n }\n else if (canvas.toLowerCase() === 'duplicate') {\n canvasDraw = this.upperContext;\n }\n else if (!isNullOrUndefined(saveContext)) {\n canvasDraw = saveContext;\n }\n if (this.currObjType.shape.toLowerCase() === 'rectangle' || this.currObjType.shape.toLowerCase() === 'ellipse'\n || this.currObjType.shape.toLowerCase() === 'line' || this.activeObj.shape === 'arrow') {\n this.activeObj.shape = this.currObjType.shape;\n }\n canvasDraw.strokeStyle = this.activeObj.strokeSettings.strokeColor;\n if (shape === 'text' || shape === 'freehanddraw') {\n canvasDraw.fillStyle = this.activeObj.strokeSettings.strokeColor;\n }\n else {\n canvasDraw.fillStyle = this.activeObj.strokeSettings.fillColor;\n }\n var horLineWidth = this.activeObj.activePoint.width / 3;\n var verLineHeight = this.activeObj.activePoint.height / 3;\n var selectionWidth = this.activeObj.activePoint.endX - this.activeObj.activePoint.startX;\n var selectionHeight = this.activeObj.activePoint.endY - this.activeObj.activePoint.startY;\n switch (this.currObjType.shape.toLowerCase()) {\n case 'rectangle':\n this.drawSquareLines(canvasDraw);\n if (isNullOrUndefined(isPreventSelection) && canvasDraw === this.upperContext) {\n this.drawOuterSelection(canvasDraw);\n }\n break;\n case 'ellipse':\n selectionWidth = Math.abs(selectionWidth);\n selectionHeight = Math.abs(selectionHeight);\n canvasDraw.beginPath();\n canvasDraw.ellipse(this.activeObj.activePoint.startX + (selectionWidth / 2), this.activeObj.activePoint.startY + (selectionHeight / 2), selectionWidth / 2, selectionHeight / 2, 0, 0, 2 * Math.PI, false);\n if (this.activeObj.strokeSettings.fillColor !== '') {\n canvasDraw.fillStyle = this.activeObj.strokeSettings.fillColor;\n canvasDraw.fill();\n }\n canvasDraw.ellipse(this.activeObj.activePoint.startX + (selectionWidth / 2), this.activeObj.activePoint.startY + (selectionHeight / 2), Math.abs((selectionWidth / 2) - (this.activeObj.strokeSettings.strokeWidth)), Math.abs((selectionHeight / 2) - (this.activeObj.strokeSettings.strokeWidth)), 0, 0, 2 * Math.PI, false);\n canvasDraw.fillStyle = this.activeObj.strokeSettings.strokeColor;\n canvasDraw.fill('evenodd');\n canvasDraw.closePath();\n if (isNullOrUndefined(isPreventSelection) && canvasDraw === this.upperContext) {\n this.drawOuterSelection(canvasDraw);\n }\n break;\n case 'crop-circle':\n if (canvasDraw === this.lowerContext) {\n canvasDraw = this.upperContext;\n }\n this.shapeCircle(canvasDraw, selectionWidth, selectionHeight);\n break;\n case 'line':\n case 'arrow':\n this.shapeLine(canvasDraw, selectionWidth, selectionHeight);\n if (this.currObjType.shape.toLowerCase() === 'arrow') {\n this.shapeArrow(canvasDraw);\n }\n if (isNullOrUndefined(isPreventSelection) && canvasDraw === this.upperContext) {\n this.drawOuterSelection(canvasDraw);\n }\n break;\n case 'text':\n this.shapeText(canvasDraw);\n break;\n case 'crop-square':\n case 'crop-3:4':\n case 'crop-4:3':\n case 'crop-6:9':\n case 'crop-9:6':\n case 'crop-9:16':\n case 'crop-16:9':\n if (canvasDraw === this.lowerContext) {\n canvasDraw = this.upperContext;\n }\n this.drawSelection(horLineWidth, verLineHeight);\n this.currObjType.shape = '';\n break;\n default:\n this.drawSelection(horLineWidth, verLineHeight);\n break;\n }\n };\n ImageEditor.prototype.shapeLine = function (canvasDraw, selectionWidth, selectionHeight) {\n var startX;\n var startY;\n var endX;\n var endY;\n var degree;\n if (this.activeObj.shapeDegree === 0) {\n degree = this.degree;\n }\n else {\n degree = this.degree - this.activeObj.shapeDegree;\n }\n if (degree === 0 || degree % 180 === 0) {\n startX = this.activeObj.activePoint.startX;\n startY = this.activeObj.activePoint.startY + (selectionHeight / 2);\n endX = this.activeObj.activePoint.endX;\n endY = this.activeObj.activePoint.startY + (selectionHeight / 2);\n }\n else {\n startX = this.activeObj.activePoint.startX + (selectionWidth / 2);\n startY = this.activeObj.activePoint.startY;\n endX = this.activeObj.activePoint.startX + (selectionWidth / 2);\n endY = this.activeObj.activePoint.endY;\n }\n var tempLineWidth = canvasDraw.lineWidth;\n canvasDraw.lineWidth = (this.activeObj.strokeSettings.strokeWidth);\n canvasDraw.beginPath();\n switch (this.activeObj.lineDraw.toLowerCase()) {\n case 'horizontal':\n case 'vertical':\n canvasDraw.moveTo(startX, startY);\n canvasDraw.lineTo(endX, endY);\n break;\n case 'normal':\n canvasDraw.moveTo(this.activeObj.horTopLine.startX, this.activeObj.horTopLine.startY);\n canvasDraw.lineTo(this.activeObj.horBottomLine.endX, this.activeObj.horBottomLine.endY);\n break;\n }\n canvasDraw.stroke();\n canvasDraw.lineWidth = tempLineWidth;\n };\n ImageEditor.prototype.shapeArrow = function (canvasDraw) {\n var tempLineWidth = canvasDraw.lineWidth;\n canvasDraw.lineWidth = (this.activeObj.strokeSettings.strokeWidth);\n canvasDraw.beginPath();\n // First Triangle\n canvasDraw.moveTo(this.activeObj.triangle[0].x, this.activeObj.triangle[0].y);\n canvasDraw.lineTo(this.activeObj.triangle[1].x, this.activeObj.triangle[1].y);\n canvasDraw.lineTo(this.activeObj.triangle[2].x, this.activeObj.triangle[2].y);\n canvasDraw.lineTo(this.activeObj.triangle[0].x, this.activeObj.triangle[0].y);\n canvasDraw.fillStyle = canvasDraw.strokeStyle;\n canvasDraw.fill();\n // Second Triangle\n switch (this.activeObj.triangleDirection) {\n case 'right':\n canvasDraw.moveTo(this.activeObj.triangle[0].x, this.activeObj.triangle[0].y - this.activeObj.strokeSettings.strokeWidth);\n canvasDraw.lineTo(this.activeObj.triangle[1].x + this.activeObj.strokeSettings.strokeWidth, this.activeObj.triangle[1].y);\n canvasDraw.lineTo(this.activeObj.triangle[2].x, this.activeObj.triangle[2].y + this.activeObj.strokeSettings.strokeWidth);\n canvasDraw.lineTo(this.activeObj.triangle[0].x, this.activeObj.triangle[0].y - this.activeObj.strokeSettings.strokeWidth);\n break;\n case 'left':\n canvasDraw.moveTo(this.activeObj.triangle[0].x, this.activeObj.triangle[0].y - this.activeObj.strokeSettings.strokeWidth);\n canvasDraw.lineTo(this.activeObj.triangle[1].x - this.activeObj.strokeSettings.strokeWidth, this.activeObj.triangle[1].y);\n canvasDraw.lineTo(this.activeObj.triangle[2].x, this.activeObj.triangle[2].y + this.activeObj.strokeSettings.strokeWidth);\n canvasDraw.lineTo(this.activeObj.triangle[0].x, this.activeObj.triangle[0].y - this.activeObj.strokeSettings.strokeWidth);\n break;\n case 'top':\n canvasDraw.moveTo(this.activeObj.triangle[0].x - this.activeObj.strokeSettings.strokeWidth, this.activeObj.triangle[0].y);\n canvasDraw.lineTo(this.activeObj.triangle[1].x, this.activeObj.triangle[1].y - this.activeObj.strokeSettings.strokeWidth);\n canvasDraw.lineTo(this.activeObj.triangle[2].x + this.activeObj.strokeSettings.strokeWidth, this.activeObj.triangle[2].y);\n canvasDraw.lineTo(this.activeObj.triangle[0].x - this.activeObj.strokeSettings.strokeWidth, this.activeObj.triangle[0].y);\n break;\n case 'bottom':\n canvasDraw.moveTo(this.activeObj.triangle[0].x + this.activeObj.strokeSettings.strokeWidth, this.activeObj.triangle[0].y);\n canvasDraw.lineTo(this.activeObj.triangle[1].x, this.activeObj.triangle[1].y + this.activeObj.strokeSettings.strokeWidth);\n canvasDraw.lineTo(this.activeObj.triangle[2].x - this.activeObj.strokeSettings.strokeWidth, this.activeObj.triangle[2].y);\n canvasDraw.lineTo(this.activeObj.triangle[0].x + this.activeObj.strokeSettings.strokeWidth, this.activeObj.triangle[0].y);\n break;\n }\n canvasDraw.fillStyle = canvasDraw.strokeStyle;\n canvasDraw.fill('evenodd');\n canvasDraw.closePath();\n canvasDraw.lineWidth = tempLineWidth;\n };\n ImageEditor.prototype.shapeText = function (canvasDraw) {\n var rows = this.activeObj.keyHistory.split('\\n');\n var height = this.activeObj.textSettings.fontSize + this.activeObj.textSettings.fontSize * 0.25;\n var lineHeight = ((height * rows.length) - (this.activeObj.textSettings.fontSize * rows.length)) / rows.length;\n for (var i = 0; i < rows.length; i++) {\n var text = rows[i];\n var yPoint = ((i + 1) * this.activeObj.textSettings.fontSize * 0.85) + (i * lineHeight);\n if (this.degree === -360) {\n this.degree = 0;\n }\n if (this.degree === 0 || this.degree === 180) {\n if (this.activeObj.textSettings.fontSize > this.activeObj.activePoint.height) {\n this.activeObj.textSettings.fontSize = this.activeObj.activePoint.height -\n (this.activeObj.activePoint.height * 0.1);\n }\n }\n else {\n if (this.activeObj.textSettings.fontSize > this.activeObj.activePoint.width) {\n this.activeObj.textSettings.fontSize = this.activeObj.activePoint.width -\n (this.activeObj.activePoint.width * 0.1);\n }\n }\n canvasDraw.strokeStyle = this.activeObj.strokeSettings.strokeColor;\n canvasDraw.fillStyle = this.activeObj.strokeSettings.strokeColor;\n var textStyle = '';\n if (this.activeObj.textSettings.bold) {\n textStyle = 'bold ';\n }\n if (this.activeObj.textSettings.italic) {\n textStyle = 'italic ';\n }\n if (this.activeObj.textSettings.bold && this.activeObj.textSettings.italic) {\n textStyle = 'italic bold ';\n }\n canvasDraw.font = textStyle + this.activeObj.textSettings.fontSize + 'px' + ' ' + this.activeObj.textSettings.fontFamily;\n if (this.activeObj.flipObjColl.length === 4) {\n this.activeObj.flipObjColl = [];\n }\n for (var j = 0; j < this.activeObj.flipObjColl.length; j++) {\n if (this.activeObj.flipObjColl[j].toLowerCase() === 'horizontal') {\n canvasDraw.translate(canvasDraw.canvas.width, 0);\n canvasDraw.scale(-1, 1);\n this.updateActPoint('horizontal', canvasDraw);\n }\n else if (this.activeObj.flipObjColl[j].toLowerCase() === 'vertical') {\n canvasDraw.translate(0, canvasDraw.canvas.height);\n canvasDraw.scale(1, -1);\n this.updateActPoint('vertical', canvasDraw);\n }\n }\n if (this.activeObj.shapeDegree !== this.degree) {\n this.rotateText(canvasDraw);\n }\n else {\n canvasDraw.fillText(text, this.activeObj.activePoint.startX + this.activeObj.textSettings.fontSize * 0.1, this.activeObj.activePoint.startY + yPoint);\n }\n for (var k = 0; k < this.activeObj.flipObjColl.length; k++) {\n if (this.activeObj.flipObjColl[k].toLowerCase() === 'horizontal') {\n canvasDraw.translate(canvasDraw.canvas.width, 0);\n canvasDraw.scale(-1, 1);\n this.updateActPoint('horizontal', canvasDraw);\n }\n else if (this.activeObj.flipObjColl[k].toLowerCase() === 'vertical') {\n canvasDraw.translate(0, canvasDraw.canvas.height);\n canvasDraw.scale(1, -1);\n this.updateActPoint('vertical', canvasDraw);\n }\n }\n }\n this.currObjType.isText = false;\n };\n ImageEditor.prototype.updateActPoint = function (degree, canvasDraw) {\n if (degree.toLowerCase() === 'horizontal') {\n if (this.activeObj.activePoint.startX <= canvasDraw.canvas.width / 2) {\n this.activeObj.activePoint.startX = canvasDraw.canvas.width / 2 + ((canvasDraw.canvas.width / 2) -\n this.activeObj.activePoint.endX);\n this.activeObj.activePoint.endX = this.activeObj.activePoint.startX + this.activeObj.activePoint.width;\n this.updateActiveObject(this.activeObj.activePoint, this.activeObj);\n }\n else if (this.activeObj.activePoint.startX >= canvasDraw.canvas.width / 2) {\n this.activeObj.activePoint.startX = canvasDraw.canvas.width - this.activeObj.activePoint.endX;\n this.activeObj.activePoint.endX = this.activeObj.activePoint.startX + this.activeObj.activePoint.width;\n this.updateActiveObject(this.activeObj.activePoint, this.activeObj);\n }\n }\n else if (degree.toLowerCase() === 'vertical') {\n if (this.activeObj.activePoint.startY <= canvasDraw.canvas.height / 2) {\n this.activeObj.activePoint.startY = canvasDraw.canvas.height / 2 + ((canvasDraw.canvas.height / 2) -\n this.activeObj.activePoint.endY);\n this.activeObj.activePoint.endY = this.activeObj.activePoint.startY + this.activeObj.activePoint.height;\n this.updateActiveObject(this.activeObj.activePoint, this.activeObj);\n }\n else if (this.activeObj.activePoint.startY >= canvasDraw.canvas.height / 2) {\n this.activeObj.activePoint.startY = canvasDraw.canvas.height - this.activeObj.activePoint.endY;\n this.activeObj.activePoint.endY = this.activeObj.activePoint.startY + this.activeObj.activePoint.height;\n this.updateActiveObject(this.activeObj.activePoint, this.activeObj);\n }\n }\n };\n ImageEditor.prototype.drawSquareLines = function (canvasDraw) {\n var splitWords;\n if (this.activeObj.shape !== undefined) {\n splitWords = this.activeObj.shape.split('-');\n }\n if (splitWords[0] === 'crop') {\n canvasDraw.strokeStyle = '#fff';\n }\n else {\n canvasDraw.strokeStyle = this.activeObj.strokeSettings.strokeColor;\n }\n canvasDraw.beginPath();\n canvasDraw.rect(this.activeObj.activePoint.startX, this.activeObj.activePoint.startY, this.activeObj.activePoint.width, this.activeObj.activePoint.height);\n if (this.activeObj.strokeSettings.fillColor !== '') {\n canvasDraw.fillStyle = this.activeObj.strokeSettings.fillColor;\n canvasDraw.fill();\n }\n canvasDraw.rect(this.activeObj.activePoint.startX + this.activeObj.strokeSettings.strokeWidth, this.activeObj.activePoint.startY + this.activeObj.strokeSettings.strokeWidth, this.activeObj.activePoint.width - (2 * this.activeObj.strokeSettings.strokeWidth), this.activeObj.activePoint.height - (2 * this.activeObj.strokeSettings.strokeWidth));\n canvasDraw.fillStyle = this.activeObj.strokeSettings.strokeColor;\n canvasDraw.fill('evenodd');\n canvasDraw.closePath();\n };\n ImageEditor.prototype.drawSelection = function (horLineWidth, verLineHeight) {\n this.upperContext.strokeStyle = this.themeColl[this.theme]['primaryColor'];\n this.upperContext.beginPath();\n this.activeObj.horTopInnerLine = { startX: this.activeObj.activePoint.startX, startY: this.activeObj.activePoint.startY +\n verLineHeight, endX: this.activeObj.activePoint.endX, endY: this.activeObj.activePoint.endY + verLineHeight };\n this.activeObj.horBottomInnerLine = { startX: this.activeObj.activePoint.startX, startY: this.activeObj.activePoint.startY +\n (2 * verLineHeight), endX: this.activeObj.activePoint.endX, endY: this.activeObj.activePoint.endY + (2 * verLineHeight) };\n this.activeObj.verLeftInnerLine = { startX: this.activeObj.activePoint.startX + horLineWidth,\n startY: this.activeObj.activePoint.startY, endX: this.activeObj.activePoint.startX + horLineWidth,\n endY: this.activeObj.activePoint.endY };\n this.activeObj.verRightInnerLine = { startX: this.activeObj.activePoint.startX + (2 * horLineWidth),\n startY: this.activeObj.activePoint.startY, endX: this.activeObj.activePoint.startX + (2 * horLineWidth),\n endY: this.activeObj.activePoint.endY };\n this.upperContext.moveTo(this.activeObj.horTopInnerLine.startX, this.activeObj.horTopInnerLine.startY);\n this.upperContext.lineTo(this.activeObj.horTopInnerLine.endX, this.activeObj.horTopInnerLine.startY);\n this.upperContext.moveTo(this.activeObj.horBottomInnerLine.startX, this.activeObj.horBottomInnerLine.startY);\n this.upperContext.lineTo(this.activeObj.horBottomInnerLine.endX, this.activeObj.horBottomInnerLine.startY);\n this.upperContext.moveTo(this.activeObj.verLeftInnerLine.startX, this.activeObj.verLeftInnerLine.startY);\n this.upperContext.lineTo(this.activeObj.verLeftInnerLine.endX, this.activeObj.verLeftInnerLine.endY);\n this.upperContext.moveTo(this.activeObj.verRightInnerLine.startX, this.activeObj.verRightInnerLine.startY);\n this.upperContext.lineTo(this.activeObj.verRightInnerLine.endX, this.activeObj.verRightInnerLine.endY);\n this.upperContext.stroke();\n this.upperContext.closePath();\n };\n ImageEditor.prototype.drawCenterCircles = function (canvasDraw, degree) {\n canvasDraw.lineWidth *= 2;\n canvasDraw.beginPath();\n if (this.activeObj.shape === 'arrow' || this.activeObj.shape === 'line') {\n if (degree % 90 === 0 && degree % 180 !== 0) {\n canvasDraw.moveTo(this.activeObj.topCenterCircle.startX, this.activeObj.topCenterCircle.startY);\n canvasDraw.arc(this.activeObj.topCenterCircle.startX, this.activeObj.topCenterCircle.startY, this.activeObj.topCenterCircle.radius, 0, 2 * Math.PI);\n canvasDraw.moveTo(this.activeObj.bottomCenterCircle.startX, this.activeObj.bottomCenterCircle.startY);\n canvasDraw.arc(this.activeObj.bottomCenterCircle.startX, this.activeObj.bottomCenterCircle.startY, this.activeObj.bottomCenterCircle.radius, 0, 2 * Math.PI);\n }\n else {\n canvasDraw.moveTo(this.activeObj.centerLeftCircle.startX, this.activeObj.centerLeftCircle.startY);\n canvasDraw.arc(this.activeObj.centerLeftCircle.startX, this.activeObj.centerLeftCircle.startY, this.activeObj.centerLeftCircle.radius, 0, 2 * Math.PI);\n canvasDraw.moveTo(this.activeObj.centerRightCircle.startX, this.activeObj.centerRightCircle.startY);\n canvasDraw.arc(this.activeObj.centerRightCircle.startX, this.activeObj.centerRightCircle.startY, this.activeObj.centerRightCircle.radius, 0, 2 * Math.PI);\n }\n }\n else {\n canvasDraw.moveTo(this.activeObj.topCenterCircle.startX, this.activeObj.topCenterCircle.startY);\n canvasDraw.arc(this.activeObj.topCenterCircle.startX, this.activeObj.topCenterCircle.startY, this.activeObj.topCenterCircle.radius, 0, 2 * Math.PI);\n canvasDraw.moveTo(this.activeObj.centerLeftCircle.startX, this.activeObj.centerLeftCircle.startY);\n canvasDraw.arc(this.activeObj.centerLeftCircle.startX, this.activeObj.centerLeftCircle.startY, this.activeObj.centerLeftCircle.radius, 0, 2 * Math.PI);\n canvasDraw.moveTo(this.activeObj.centerRightCircle.startX, this.activeObj.centerRightCircle.startY);\n canvasDraw.arc(this.activeObj.centerRightCircle.startX, this.activeObj.centerRightCircle.startY, this.activeObj.centerRightCircle.radius, 0, 2 * Math.PI);\n canvasDraw.moveTo(this.activeObj.bottomCenterCircle.startX, this.activeObj.bottomCenterCircle.startY);\n canvasDraw.arc(this.activeObj.bottomCenterCircle.startX, this.activeObj.bottomCenterCircle.startY, this.activeObj.bottomCenterCircle.radius, 0, 2 * Math.PI);\n }\n canvasDraw.stroke();\n canvasDraw.fill();\n canvasDraw.closePath();\n canvasDraw.lineWidth /= 2;\n };\n ImageEditor.prototype.findTarget = function (x, y, type) {\n if (type.toLowerCase() === 'mousedown' || type.toLowerCase() === 'touchstart') {\n var splitWords = void 0;\n var isCrop = false;\n if (this.activeObj.shape) {\n splitWords = this.activeObj.shape.split('-');\n if (splitWords[0] === 'crop') {\n isCrop = true;\n }\n }\n this.findTargetObj(x, y, isCrop);\n this.updateCursorStyles(x, y, type);\n }\n else {\n switch (this.dragElement.toLowerCase()) {\n case 'nw-resize':\n this.activeObj.topLeftCircle.startX = x;\n this.activeObj.topLeftCircle.startY = y;\n break;\n case 'n-resize':\n this.activeObj.topCenterCircle.startX = x;\n this.activeObj.topCenterCircle.startY = y;\n break;\n case 'ne-resize':\n this.activeObj.topRightCircle.startX = x;\n this.activeObj.topRightCircle.startY = y;\n break;\n case 'w-resize':\n this.activeObj.centerLeftCircle.startX = x;\n this.activeObj.centerLeftCircle.startY = y;\n break;\n case 'e-resize':\n this.activeObj.centerRightCircle.startX = x;\n this.activeObj.centerRightCircle.startY = y;\n break;\n case 'sw-resize':\n this.activeObj.bottomLeftCircle.startX = x;\n this.activeObj.bottomLeftCircle.startY = y;\n break;\n case 's-resize':\n this.activeObj.bottomCenterCircle.startX = x;\n this.activeObj.bottomCenterCircle.startY = y;\n break;\n case 'se-resize':\n this.activeObj.bottomRightCircle.startX = x;\n this.activeObj.bottomRightCircle.startY = y;\n break;\n default:\n if (this.dragPoint.startX && this.dragPoint.startY) {\n this.previousPoint.x = this.dragPoint.endX;\n this.previousPoint.y = this.dragPoint.endY;\n this.dragPoint.endX = x;\n this.dragPoint.endY = y;\n }\n break;\n }\n }\n };\n ImageEditor.prototype.findTargetObj = function (x, y, isCrop) {\n var isShape = false;\n if (this.objColl.length !== 0 && !this.currObjType.isCustomCrop && !isCrop) {\n var diffX = 0;\n var i = void 0;\n for (var index = 0; index < this.objColl.length; index++) {\n var actObj = extend({}, this.objColl[index], {}, true);\n if (x >= (actObj.activePoint.startX - (actObj.topLeftCircle.radius * 2)) &&\n x <= (actObj.activePoint.endX + (actObj.topLeftCircle.radius * 2)) &&\n y >= (actObj.activePoint.startY - (actObj.topLeftCircle.radius * 2)) &&\n y <= (actObj.activePoint.endY + (actObj.topLeftCircle.radius * 2))) {\n if (this.isTouch || this.upperCanvas.style.cursor === 'move' || this.upperCanvas.style.cursor === 'grab' || this.isShapeInserted) {\n if (diffX === 0 || diffX > x - actObj.activePoint.startX) {\n diffX = x - this.objColl[index].activePoint.startX;\n i = index;\n }\n }\n else if (this.objColl[index].currIndex === this.tempActiveObj.currIndex) {\n i = index;\n }\n }\n }\n if (isNullOrUndefined(i)) {\n this.refreshActiveObj();\n isShape = false;\n }\n else {\n this.tempObjColl = extend([], this.objColl, [], true);\n this.currObjType.isCustomCrop = false;\n this.activeObj = extend({}, this.objColl[i], {}, true);\n var temp = extend({}, this.objColl[i], {}, true);\n this.objColl.splice(i, 1);\n if (this.degree === 0) {\n var temp_1 = this.lowerContext.filter;\n this.lowerContext.clearRect(0, 0, this.lowerCanvas.width, this.lowerCanvas.height);\n this.updateBrightnessFilter();\n this.lowerContext.drawImage(this.baseImg, this.srcLeft, this.srcTop, this.srcWidth, this.srcHeight, this.destLeft, this.destTop, this.destWidth, this.destHeight);\n this.lowerContext.filter = 'none';\n this.iterateObjColl();\n this.activeObj = extend({}, temp_1, {}, true);\n this.freehandRedraw(this.lowerContext);\n this.lowerContext.filter = temp_1;\n this.getCurrentFlipState();\n }\n else {\n this.callUpdateCurrentTransformedState();\n this.freehandRedraw(this.lowerContext);\n }\n this.clearOuterCanvas(this.lowerContext);\n if ((!isNullOrUndefined(this.currSelectionPoint) && this.currSelectionPoint.shape === 'crop-circle') || this.isCircleCrop) {\n this.cropCircle(this.lowerContext);\n }\n this.setActivePoint();\n this.activeObj = extend({}, temp, {}, true);\n this.tempStrokeSettings = extend({}, this.activeObj.strokeSettings, {}, true);\n this.tempTextSettings = extend({}, this.activeObj.textSettings, {}, true);\n var shapeSettings = this.updatePreviousShapeSettings();\n var shapeChangingArgs = { action: 'select', previousShapeSettings: shapeSettings,\n currentShapeSettings: shapeSettings };\n this.trigger('shapeChanging', shapeChangingArgs);\n this.updateShapeChangeEventArgs(shapeChangingArgs.currentShapeSettings);\n if (this.activeObj.activePoint) {\n if (isNullOrUndefined(this.prevActObj)) {\n this.prevActObj = extend({}, this.activeObj, {}, true);\n }\n this.drawObject('duplicate', this.activeObj, null, null, true, null, true);\n if (!this.isShapeInserted) {\n if (this.activeObj.activePoint.startX < this.destLeft) {\n this.isPreventDragging = true;\n }\n else if (this.activeObj.activePoint.endX > this.destLeft + this.destWidth) {\n this.isPreventDragging = true;\n }\n else if (this.activeObj.activePoint.startY < this.destTop) {\n this.isPreventDragging = true;\n }\n else if (this.activeObj.activePoint.endY > this.destTop + this.destHeight) {\n this.isPreventDragging = true;\n }\n }\n }\n isShape = true;\n }\n }\n return isShape;\n };\n ImageEditor.prototype.getCurrentFlipState = function () {\n if (this.rotateFlipColl.length !== 0) {\n var totalPannedInternalPoint = extend({}, this.totalPannedInternalPoint, {}, true);\n this.callUpdateCurrentTransformedState();\n this.totalPannedInternalPoint = totalPannedInternalPoint;\n }\n else {\n this.callUpdateCurrentTransformedState();\n }\n };\n ImageEditor.prototype.rotateDegree = function (degree) {\n this.lowerContext.save();\n this.lowerContext.clearRect(0, 0, this.lowerCanvas.width, this.lowerCanvas.height);\n this.lowerContext.translate(this.lowerCanvas.width / 2, this.lowerCanvas.height / 2);\n this.lowerContext.rotate(Math.PI / 180 * degree);\n this.lowerContext.translate(-this.lowerCanvas.width / 2, -this.lowerCanvas.height / 2);\n var temp = this.lowerContext.filter;\n this.updateBrightnessFilter();\n this.lowerContext.drawImage(this.baseImg, this.srcLeft, this.srcTop, this.srcWidth, this.srcHeight, this.destLeft, this.destTop, this.destWidth, this.destHeight);\n this.lowerContext.filter = temp;\n this.lowerContext.translate(this.lowerCanvas.width / 2, this.lowerCanvas.height / 2);\n this.lowerContext.rotate(Math.PI / 180 * -degree);\n this.lowerContext.translate(-this.lowerCanvas.width / 2, -this.lowerCanvas.height / 2);\n this.lowerContext.restore();\n };\n ImageEditor.prototype.updateCursorStyles = function (x, y, type) {\n var isResize = false;\n if (this.activeObj.keyHistory !== '' && this.activeObj.shape === undefined && !this.currObjType.isCustomCrop &&\n !this.currObjType.isLine && this.currObjType.isText) {\n this.activeObj.shape = 'text';\n }\n var actObj = extend({}, this.activeObj, {}, true);\n if (isNullOrUndefined(actObj.topLeftCircle)) {\n return;\n }\n var degree;\n if (actObj.shapeDegree === 0) {\n degree = this.degree;\n }\n else {\n degree = this.degree - actObj.shapeDegree;\n }\n if (degree < 0) {\n degree = 360 + degree;\n }\n if (this.isObjSelected) {\n if (x >= (actObj.topLeftCircle.startX - (actObj.topLeftCircle.radius * 2)) &&\n x <= (actObj.topLeftCircle.startX + (actObj.topLeftCircle.radius * 2)) &&\n y >= (actObj.topLeftCircle.startY - (actObj.topLeftCircle.radius * 2)) &&\n y <= (actObj.topLeftCircle.startY + (actObj.topLeftCircle.radius * 2)) && this.dragElement !== 'nw-resize') {\n actObj.topLeftCircle.startX = actObj.topLeftCircle.startY = 0;\n this.upperCanvas.style.cursor = 'nw-resize';\n isResize = true;\n this.dragElement = this.upperCanvas.style.cursor;\n }\n else if (x >= (actObj.topCenterCircle.startX - (actObj.topLeftCircle.radius * 2)) &&\n x <= (actObj.topCenterCircle.startX + (actObj.topLeftCircle.radius * 2)) &&\n y >= (actObj.topCenterCircle.startY - (actObj.topLeftCircle.radius * 2)) &&\n y <= (actObj.topCenterCircle.startY + (actObj.topLeftCircle.radius * 2)) && this.dragElement !== 'n-resize') {\n actObj.topCenterCircle.startX = actObj.topCenterCircle.startY = 0;\n this.upperCanvas.style.cursor = 'n-resize';\n isResize = true;\n this.dragElement = this.upperCanvas.style.cursor;\n }\n else if (x >= (actObj.topRightCircle.startX - (actObj.topLeftCircle.radius * 2)) &&\n x <= (actObj.topRightCircle.startX + (actObj.topLeftCircle.radius * 2)) &&\n y >= (actObj.topRightCircle.startY - (actObj.topLeftCircle.radius * 2)) &&\n y <= (actObj.topRightCircle.startY + (actObj.topLeftCircle.radius * 2)) && this.dragElement !== 'ne-resize') {\n actObj.topRightCircle.startX = actObj.topRightCircle.startY = 0;\n this.upperCanvas.style.cursor = 'ne-resize';\n isResize = true;\n this.dragElement = this.upperCanvas.style.cursor;\n }\n else if (x >= (actObj.centerLeftCircle.startX - (actObj.topLeftCircle.radius * 2)) &&\n x <= (actObj.centerLeftCircle.startX + (actObj.topLeftCircle.radius * 2)) &&\n y >= (actObj.centerLeftCircle.startY - (actObj.topLeftCircle.radius * 2)) &&\n y <= (actObj.centerLeftCircle.startY + (actObj.topLeftCircle.radius * 2)) && this.dragElement !== 'w-resize') {\n actObj.centerLeftCircle.startX = actObj.centerLeftCircle.startY = 0;\n this.upperCanvas.style.cursor = 'w-resize';\n isResize = true;\n this.dragElement = this.upperCanvas.style.cursor;\n }\n else if (x >= (actObj.centerRightCircle.startX - (actObj.topLeftCircle.radius * 2)) &&\n x <= (actObj.centerRightCircle.startX + (actObj.topLeftCircle.radius * 2)) &&\n y >= (actObj.centerRightCircle.startY - (actObj.topLeftCircle.radius * 2)) &&\n y <= (actObj.centerRightCircle.startY + (actObj.topLeftCircle.radius * 2)) && this.dragElement !== 'e-resize') {\n actObj.centerRightCircle.startX = actObj.centerRightCircle.startY = 0;\n this.upperCanvas.style.cursor = 'e-resize';\n isResize = true;\n this.dragElement = this.upperCanvas.style.cursor;\n }\n else if (x >= (actObj.bottomLeftCircle.startX - (actObj.topLeftCircle.radius * 2)) &&\n x <= (actObj.bottomLeftCircle.startX + (actObj.topLeftCircle.radius * 2)) &&\n y >= (actObj.bottomLeftCircle.startY - (actObj.topLeftCircle.radius * 2)) &&\n y <= (actObj.bottomLeftCircle.startY + (actObj.topLeftCircle.radius * 2)) && this.dragElement !== 'sw-resize') {\n actObj.bottomLeftCircle.startX = actObj.bottomLeftCircle.startY = 0;\n this.upperCanvas.style.cursor = 'sw-resize';\n isResize = true;\n this.dragElement = this.upperCanvas.style.cursor;\n }\n else if (x >= (actObj.bottomCenterCircle.startX - (actObj.topLeftCircle.radius * 2)) &&\n x <= (actObj.bottomCenterCircle.startX + (actObj.topLeftCircle.radius * 2)) &&\n y >= (actObj.bottomCenterCircle.startY - (actObj.topLeftCircle.radius * 2)) &&\n y <= (actObj.bottomCenterCircle.startY + (actObj.topLeftCircle.radius * 2)) && this.dragElement !== 's-resize') {\n actObj.bottomCenterCircle.startX = actObj.bottomCenterCircle.startY = 0;\n this.upperCanvas.style.cursor = 's-resize';\n isResize = true;\n this.dragElement = this.upperCanvas.style.cursor;\n }\n else if (x >= (actObj.bottomRightCircle.startX - (actObj.topLeftCircle.radius * 2)) &&\n x <= (actObj.bottomRightCircle.startX + (actObj.topLeftCircle.radius * 2)) &&\n y >= (actObj.bottomRightCircle.startY - (actObj.topLeftCircle.radius * 2)) &&\n y <= (actObj.bottomRightCircle.startY + (actObj.topLeftCircle.radius * 2)) && this.dragElement !== 'se-resize') {\n actObj.bottomRightCircle.startX = actObj.bottomRightCircle.startY = 0;\n this.upperCanvas.style.cursor = 'se-resize';\n isResize = true;\n this.dragElement = this.upperCanvas.style.cursor;\n }\n else {\n this.dragPoint.startX = this.previousPoint.x = this.dragPoint.endX = x;\n this.dragPoint.startY = this.previousPoint.y = this.dragPoint.endY = y;\n }\n }\n else {\n this.dragPoint.startX = this.previousPoint.x = this.dragPoint.endX = x;\n this.dragPoint.startY = this.previousPoint.y = this.dragPoint.endY = y;\n }\n if (actObj.shape === 'arrow' || actObj.shape === 'line') {\n if (degree % 90 === 0 && degree % 180 !== 0) {\n if (this.upperCanvas.style.cursor === 'sw-resize' || this.upperCanvas.style.cursor === 'se-resize') {\n if (x >= (actObj.bottomCenterCircle.startX - (actObj.topLeftCircle.radius * 2)) &&\n x <= (actObj.bottomCenterCircle.startX + (actObj.topLeftCircle.radius * 2)) &&\n y >= (actObj.bottomCenterCircle.startY - (actObj.topLeftCircle.radius * 2)) &&\n y <= (actObj.bottomCenterCircle.startY + (actObj.topLeftCircle.radius * 2)) && this.dragElement !== 's-resize') {\n actObj.bottomCenterCircle.startX = actObj.bottomCenterCircle.startY = 0;\n this.upperCanvas.style.cursor = 's-resize';\n isResize = true;\n this.dragElement = this.upperCanvas.style.cursor;\n }\n }\n else if (this.upperCanvas.style.cursor === 'nw-resize' || this.upperCanvas.style.cursor === 'ne-resize') {\n if (x >= (actObj.topCenterCircle.startX - (actObj.topLeftCircle.radius * 2)) &&\n x <= (actObj.topCenterCircle.startX + (actObj.topLeftCircle.radius * 2)) &&\n y >= (actObj.topCenterCircle.startY - (actObj.topLeftCircle.radius * 2)) &&\n y <= (actObj.topCenterCircle.startY + (actObj.topLeftCircle.radius * 2)) && this.dragElement !== 'n-resize') {\n actObj.topCenterCircle.startX = actObj.topCenterCircle.startY = 0;\n this.upperCanvas.style.cursor = 'n-resize';\n isResize = true;\n this.dragElement = this.upperCanvas.style.cursor;\n }\n }\n }\n else {\n if (this.upperCanvas.style.cursor === 'nw-resize' || this.upperCanvas.style.cursor === 'sw-resize') {\n if (x >= (actObj.centerLeftCircle.startX - (actObj.topLeftCircle.radius * 2)) &&\n x <= (actObj.centerLeftCircle.startX + (actObj.topLeftCircle.radius * 2)) &&\n y >= (actObj.centerLeftCircle.startY - (actObj.topLeftCircle.radius * 2)) &&\n y <= (actObj.centerLeftCircle.startY + (actObj.topLeftCircle.radius * 2)) && this.dragElement !== 'w-resize') {\n actObj.centerLeftCircle.startX = actObj.centerLeftCircle.startY = 0;\n this.upperCanvas.style.cursor = 'w-resize';\n isResize = true;\n this.dragElement = this.upperCanvas.style.cursor;\n }\n }\n else if (this.upperCanvas.style.cursor === 'ne-resize' || this.upperCanvas.style.cursor === 'se-resize') {\n if (x >= (actObj.centerRightCircle.startX - (actObj.topLeftCircle.radius * 2)) &&\n x <= (actObj.centerRightCircle.startX + (actObj.topLeftCircle.radius * 2)) &&\n y >= (actObj.centerRightCircle.startY - (actObj.topLeftCircle.radius * 2)) &&\n y <= (actObj.centerRightCircle.startY + (actObj.topLeftCircle.radius * 2)) && this.dragElement !== 'e-resize') {\n actObj.centerRightCircle.startX = actObj.centerRightCircle.startY = 0;\n this.upperCanvas.style.cursor = 'e-resize';\n isResize = true;\n this.dragElement = this.upperCanvas.style.cursor;\n }\n }\n }\n if (this.upperCanvas.style.cursor === 'nw-resize' || this.upperCanvas.style.cursor === 'ne-resize' ||\n this.upperCanvas.style.cursor === 'sw-resize' || this.upperCanvas.style.cursor === 'se-resize') {\n this.updateCursorStylesForArrow(x, y);\n isResize = false;\n }\n if (degree % 90 === 0 && degree % 180 !== 0) {\n if (this.upperCanvas.style.cursor === 'w-resize' || this.upperCanvas.style.cursor === 'e-resize') {\n this.updateCursorStylesForArrow(x, y);\n isResize = false;\n }\n }\n else {\n if (this.upperCanvas.style.cursor === 'n-resize' || this.upperCanvas.style.cursor === 's-resize') {\n this.updateCursorStylesForArrow(x, y);\n isResize = false;\n }\n }\n }\n this.previousPoint.x = this.previousPoint.y = this.diffPoint.x = this.diffPoint.y = 0;\n if (type === 'touchstart') {\n if (isResize || (x >= actObj.activePoint.startX && x <= actObj.activePoint.endX\n && y >= actObj.activePoint.startY && y <= actObj.activePoint.endY)) {\n this.currObjType.isDragging = true;\n }\n }\n else {\n this.currObjType.isDragging = true;\n }\n };\n ImageEditor.prototype.updateCursorStylesForArrow = function (x, y) {\n this.upperCanvas.style.cursor = 'move';\n this.dragElement = '';\n this.dragPoint.startX = this.previousPoint.x = this.dragPoint.endX = x;\n this.dragPoint.startY = this.previousPoint.y = this.dragPoint.endY = y;\n };\n ImageEditor.prototype.drawCropRatio = function () {\n var x;\n var y;\n var width;\n var height;\n if (this.zoomFactor > 0 && !isNullOrUndefined(this.currentSelectionPoint)) {\n //width = this.currentSelectionPoint.activePoint.width; height = this.currentSelectionPoint.activePoint.height;\n if (this.destLeft + this.destLeft + this.destWidth <= this.lowerCanvas.clientWidth) {\n width = this.destWidth - this.destLeft;\n if (this.destLeft < 0) {\n width += (2 * this.destLeft);\n }\n }\n else {\n width = this.lowerCanvas.clientWidth - this.destLeft;\n }\n if (this.destTop + this.destTop + this.destHeight <= this.lowerCanvas.clientHeight) {\n height = this.destHeight - this.destTop;\n if (this.destTop < 0) {\n height += (2 * this.destTop);\n }\n }\n else {\n height = this.lowerCanvas.clientHeight - this.destTop;\n }\n if (this.degree !== 0) {\n this.isAllowCropPan = true;\n }\n }\n else {\n width = this.destWidth;\n height = this.destHeight;\n if (this.destLeft < 0) {\n width += this.destLeft;\n }\n if (this.destTop < 0) {\n height += this.destTop;\n }\n if (this.currObjType.shape.toLowerCase() !== 'crop-square' && this.currObjType.shape.toLowerCase() !== 'crop-circle') {\n if (this.destLeft + this.destWidth > this.lowerCanvas.width) {\n width -= (this.destLeft + this.destWidth - this.lowerCanvas.width);\n }\n if (this.destTop + this.destHeight > this.lowerCanvas.height) {\n height -= (this.destTop + this.destHeight - this.lowerCanvas.height);\n }\n }\n }\n switch (this.currObjType.shape.toLowerCase()) {\n case 'crop-square':\n case 'crop-circle':\n this.setDragDirection(width, height);\n if (width === this.destWidth && height === this.destHeight) {\n this.activeObj.activePoint.startX += this.destLeft;\n this.activeObj.activePoint.startY += this.destTop;\n this.activeObj.activePoint.endX += this.destLeft;\n this.activeObj.activePoint.endY += this.destTop;\n }\n if (this.lowerCanvas.width > this.lowerCanvas.height) {\n this.activeObj.activePoint.height = this.activeObj.activePoint.endY - this.activeObj.activePoint.startY;\n this.activeObj.activePoint.width = this.activeObj.activePoint.height;\n this.activeObj.activePoint.endX = this.activeObj.activePoint.startX + this.activeObj.activePoint.width;\n }\n else {\n this.activeObj.activePoint.width = this.activeObj.activePoint.endX - this.activeObj.activePoint.startX;\n this.activeObj.activePoint.height = this.activeObj.activePoint.width;\n this.activeObj.activePoint.endY = this.activeObj.activePoint.startY + this.activeObj.activePoint.height;\n }\n break;\n case 'crop-3:2':\n x = 3;\n y = 2;\n break;\n case 'crop-4:3':\n x = 4;\n y = 3;\n break;\n case 'crop-5:4':\n x = 5;\n y = 4;\n break;\n case 'crop-7:5':\n x = 7;\n y = 5;\n break;\n case 'crop-16:9':\n x = 16;\n y = 9;\n break;\n }\n if (x !== undefined && y !== undefined) {\n this.calcShapeRatio(x, y, width, height);\n if (width === this.destWidth && height === this.destHeight) {\n this.updatePoints();\n }\n }\n if (this.activeObj.activePoint.startX < this.destLeft) {\n var diff = (this.destLeft - this.activeObj.activePoint.startX) + 7.5;\n this.activeObj.activePoint.startX += diff;\n this.activeObj.activePoint.endX += diff;\n }\n if (this.activeObj.activePoint.startY < this.destTop) {\n var diff = (this.destTop - this.activeObj.activePoint.startY) + 7.5;\n this.activeObj.activePoint.startY += diff;\n this.activeObj.activePoint.endY += diff;\n }\n this.activeObj.activePoint.width = this.activeObj.activePoint.endX - this.activeObj.activePoint.startX;\n this.activeObj.activePoint.height = this.activeObj.activePoint.endY - this.activeObj.activePoint.startY;\n };\n ImageEditor.prototype.setDragDirection = function (width, height) {\n var arcRadius = (7.5);\n if (this.destWidth > this.destHeight) {\n this.activeObj.activePoint.startX = this.dragPoint.startX = ((width / 2) - (height / 2))\n + arcRadius;\n this.activeObj.activePoint.startY = this.dragPoint.startY = ((height / 2) - (height / 2))\n + arcRadius;\n this.activeObj.activePoint.endX = ((width / 2) + (height / 2)) - arcRadius;\n this.activeObj.activePoint.endY = ((height / 2) + (height / 2)) - arcRadius;\n }\n else {\n this.activeObj.activePoint.startY = this.dragPoint.startX = ((height / 2) - (width) / 2)\n + arcRadius;\n this.activeObj.activePoint.endY = ((height / 2) + (width) / 2) - arcRadius;\n this.activeObj.activePoint.startX = this.dragPoint.startX = arcRadius;\n this.activeObj.activePoint.endX = width - arcRadius;\n }\n };\n ImageEditor.prototype.updatePoints = function () {\n this.activeObj.activePoint.startX += this.destLeft;\n this.activeObj.activePoint.startY += this.destTop;\n this.activeObj.activePoint.endX += this.destLeft;\n this.activeObj.activePoint.endY += this.destTop;\n this.activeObj.activePoint.width = this.activeObj.activePoint.endX - this.activeObj.activePoint.startX;\n this.activeObj.activePoint.height = this.activeObj.activePoint.endY - this.activeObj.activePoint.startY;\n };\n ImageEditor.prototype.calcShapeRatio = function (x, y, imgWidth, imgHeight) {\n var arcRadius = (7.5);\n var originalWidth = imgWidth;\n var originalHeight = imgHeight;\n var presetRatio = x / y;\n var standardSize = originalWidth >= originalHeight ? originalWidth : originalHeight;\n var width = standardSize * presetRatio;\n var height = standardSize;\n var scaleWidth = this.getScale(width, originalWidth);\n var snippetArray = [];\n for (var i = 0; i < 2; i++) {\n if (i === 0) {\n snippetArray.push(width * scaleWidth);\n }\n else {\n snippetArray.push(height * scaleWidth);\n }\n }\n width = snippetArray[0];\n height = snippetArray[1];\n var scaleHeight = this.getScale(height, originalHeight);\n var snippetArray1 = [];\n for (var i = 0; i < 2; i++) {\n if (i === 0) {\n snippetArray1.push(width * scaleHeight);\n }\n else {\n snippetArray1.push(height * scaleHeight);\n }\n }\n width = snippetArray1[0];\n height = snippetArray1[1];\n this.activeObj.activePoint.width = width;\n this.activeObj.activePoint.height = height;\n this.activeObj.activePoint.startX = (this.dragPoint.startX = (originalWidth - width) / 2) + arcRadius;\n this.activeObj.activePoint.startY = (this.dragPoint.startY = (originalHeight - height) / 2) + arcRadius;\n this.activeObj.activePoint.endX = ((originalWidth - width) / 2 + width) - arcRadius;\n this.activeObj.activePoint.endY = ((originalHeight - height) / 2 + height) - arcRadius;\n if (this.activeObj.activePoint.startX < this.destLeft && this.destLeft + this.destWidth > this.lowerCanvas.clientWidth) {\n this.activeObj.activePoint.startX = this.destLeft;\n this.activeObj.activePoint.endX = this.activeObj.activePoint.startX + width - arcRadius;\n }\n if (this.activeObj.activePoint.startY < this.destTop && this.destTop + this.destHeight > this.lowerCanvas.clientHeight) {\n this.activeObj.activePoint.startY = this.destTop;\n this.activeObj.activePoint.endY = this.activeObj.activePoint.startY + height - arcRadius;\n }\n this.activeObj.activePoint.width = this.activeObj.activePoint.endX - this.activeObj.activePoint.startX;\n this.activeObj.activePoint.height = this.activeObj.activePoint.endY - this.activeObj.activePoint.startY;\n };\n ImageEditor.prototype.getScale = function (value, originalValue) {\n return value > originalValue ? originalValue / value : 1;\n };\n ImageEditor.prototype.calcMaxDimension = function (width, height) {\n var canvasMaxWidth = this.element.clientWidth;\n var canvasMaxHeight = this.element.clientHeight - this.toolbarHeight;\n canvasMaxHeight = Browser.isDevice ? canvasMaxHeight - this.toolbarHeight : canvasMaxHeight;\n canvasMaxWidth -= 30;\n canvasMaxHeight -= 30;\n var widthScale = canvasMaxWidth / width;\n var heightScale = canvasMaxHeight / height;\n var cssMaxWidth = Math.min(width, canvasMaxWidth);\n var cssMaxHeight = Math.min(height, canvasMaxHeight);\n if (widthScale < 1 && widthScale < heightScale) {\n cssMaxWidth = width * widthScale;\n cssMaxHeight = height * widthScale;\n }\n else if (heightScale < 1 && heightScale < widthScale) {\n cssMaxWidth = width * heightScale;\n cssMaxHeight = height * heightScale;\n }\n return { width: cssMaxWidth, height: cssMaxHeight };\n };\n ImageEditor.prototype.setMaximumDimension = function (degree, tempCanvas) {\n var newWidth;\n var newHeight;\n if (degree % 90 === 0 && degree % 180 !== 0) {\n newWidth = this.baseImg.height;\n newHeight = this.baseImg.width;\n }\n else if (degree % 180 === 0 || degree === 0) {\n newWidth = this.baseImg.width;\n newHeight = this.baseImg.height;\n }\n tempCanvas.width = newWidth;\n tempCanvas.height = newHeight;\n var maxDimension = this.calcMaxDimension(newWidth, newHeight);\n tempCanvas.style.maxWidth = maxDimension.width + 'px';\n tempCanvas.style.maxHeight = maxDimension.height + 'px';\n };\n ImageEditor.prototype.setCursor = function (x, y) {\n var isCropSelection = false;\n var splitWords;\n if (this.activeObj.horTopLine !== undefined) {\n if (this.activeObj.shape !== undefined) {\n splitWords = this.activeObj.shape.split('-');\n }\n if (splitWords === undefined && this.currObjType.isCustomCrop) {\n isCropSelection = true;\n }\n else if (splitWords !== undefined && splitWords[0] === 'crop') {\n isCropSelection = true;\n }\n if (!isCropSelection && this.togglePan) {\n this.lowerCanvas.style.cursor = this.upperCanvas.style.cursor = 'grab';\n }\n var cursor = this.upperCanvas.style.cursor;\n var actObj = extend({}, this.activeObj, {}, true);\n this.cursorTargetObjId = actObj.currIndex;\n var degree = void 0;\n if (actObj.shapeDegree === 0) {\n degree = this.degree;\n }\n else {\n degree = this.degree - actObj.shapeDegree;\n }\n if (degree < 0) {\n degree = 360 + degree;\n }\n if (x >= (actObj.topLeftCircle.startX - ((actObj.topLeftCircle.radius * 2))) &&\n x <= (actObj.topLeftCircle.startX + ((actObj.topLeftCircle.radius * 2))) &&\n y >= (actObj.topLeftCircle.startY - ((actObj.topLeftCircle.radius * 2))) &&\n y <= (actObj.topLeftCircle.startY + ((actObj.topLeftCircle.radius * 2)))) {\n this.upperCanvas.style.cursor = 'nw-resize';\n }\n else if (x >= (actObj.topCenterCircle.startX - ((actObj.topLeftCircle.radius * 2))) &&\n x <= (actObj.topCenterCircle.startX + ((actObj.topLeftCircle.radius * 2))) &&\n y >= (actObj.topCenterCircle.startY - ((actObj.topLeftCircle.radius * 2))) &&\n y <= (actObj.topCenterCircle.startY + ((actObj.topLeftCircle.radius * 2)))) {\n this.upperCanvas.style.cursor = 'n-resize';\n }\n else if (x >= (actObj.topRightCircle.startX - ((actObj.topLeftCircle.radius * 2))) &&\n x <= (actObj.topRightCircle.startX + ((actObj.topLeftCircle.radius * 2))) &&\n y >= (actObj.topRightCircle.startY - ((actObj.topLeftCircle.radius * 2))) &&\n y <= (actObj.topRightCircle.startY + ((actObj.topLeftCircle.radius * 2)))) {\n this.upperCanvas.style.cursor = 'ne-resize';\n }\n else if (x >= (actObj.centerLeftCircle.startX - ((actObj.topLeftCircle.radius * 2))) &&\n x <= (actObj.centerLeftCircle.startX + ((actObj.topLeftCircle.radius * 2))) &&\n y >= (actObj.centerLeftCircle.startY - ((actObj.topLeftCircle.radius * 2))) &&\n y <= (actObj.centerLeftCircle.startY + ((actObj.topLeftCircle.radius * 2)))) {\n this.upperCanvas.style.cursor = 'w-resize';\n }\n else if (x >= (actObj.centerRightCircle.startX - ((actObj.topLeftCircle.radius * 2))) &&\n x <= (actObj.centerRightCircle.startX + ((actObj.topLeftCircle.radius * 2))) &&\n y >= (actObj.centerRightCircle.startY - ((actObj.topLeftCircle.radius * 2))) &&\n y <= (actObj.centerRightCircle.startY + ((actObj.topLeftCircle.radius * 2)))) {\n this.upperCanvas.style.cursor = 'e-resize';\n }\n else if (x >= (actObj.bottomLeftCircle.startX - ((actObj.topLeftCircle.radius * 2))) &&\n x <= (actObj.bottomLeftCircle.startX + ((actObj.topLeftCircle.radius * 2))) &&\n y >= (actObj.bottomLeftCircle.startY - ((actObj.topLeftCircle.radius * 2))) &&\n y <= (actObj.bottomLeftCircle.startY + ((actObj.topLeftCircle.radius * 2)))) {\n this.upperCanvas.style.cursor = 'sw-resize';\n }\n else if (x >= (actObj.bottomCenterCircle.startX - ((actObj.topLeftCircle.radius * 2))) &&\n x <= (actObj.bottomCenterCircle.startX + ((actObj.topLeftCircle.radius * 2))) &&\n y >= (actObj.bottomCenterCircle.startY - ((actObj.topLeftCircle.radius * 2))) &&\n y <= (actObj.bottomCenterCircle.startY + ((actObj.topLeftCircle.radius * 2)))) {\n this.upperCanvas.style.cursor = 's-resize';\n }\n else if (x >= (actObj.bottomRightCircle.startX - ((actObj.topLeftCircle.radius * 2))) &&\n x <= (actObj.bottomRightCircle.startX + ((actObj.topLeftCircle.radius * 2))) &&\n y >= (actObj.bottomRightCircle.startY - ((actObj.topLeftCircle.radius * 2))) &&\n y <= (actObj.bottomRightCircle.startY + ((actObj.topLeftCircle.radius * 2)))) {\n this.upperCanvas.style.cursor = 'se-resize';\n }\n else if ((x >= actObj.activePoint.startX &&\n x <= actObj.activePoint.endX) && (y >= actObj.activePoint.startY &&\n y <= actObj.activePoint.endY)) {\n if (isCropSelection) {\n this.upperCanvas.style.cursor = 'grab';\n }\n else {\n this.upperCanvas.style.cursor = 'move';\n }\n }\n else {\n if (this.currObjType.isCustomCrop) {\n this.upperCanvas.style.cursor = 'crosshair';\n }\n this.upperCanvas.style.cursor = 'default';\n }\n if (actObj.shape === 'arrow' || actObj.shape === 'line') {\n if (degree % 90 === 0 && degree % 180 !== 0) {\n if (this.upperCanvas.style.cursor === 'sw-resize' || this.upperCanvas.style.cursor === 'se-resize') {\n if (x >= (actObj.bottomCenterCircle.startX - ((actObj.topLeftCircle.radius * 2))) &&\n x <= (actObj.bottomCenterCircle.startX + ((actObj.topLeftCircle.radius * 2))) &&\n y >= (actObj.bottomCenterCircle.startY - ((actObj.topLeftCircle.radius * 2))) &&\n y <= (actObj.bottomCenterCircle.startY + ((actObj.topLeftCircle.radius * 2)))) {\n this.upperCanvas.style.cursor = 's-resize';\n }\n }\n else if (this.upperCanvas.style.cursor === 'nw-resize' || this.upperCanvas.style.cursor === 'ne-resize') {\n if (x >= (actObj.topCenterCircle.startX - ((actObj.topLeftCircle.radius * 2))) &&\n x <= (actObj.topCenterCircle.startX + ((actObj.topLeftCircle.radius * 2))) &&\n y >= (actObj.topCenterCircle.startY - ((actObj.topLeftCircle.radius * 2))) &&\n y <= (actObj.topCenterCircle.startY + ((actObj.topLeftCircle.radius * 2)))) {\n this.upperCanvas.style.cursor = 'n-resize';\n }\n }\n }\n else {\n if (this.upperCanvas.style.cursor === 'nw-resize' || this.upperCanvas.style.cursor === 'sw-resize') {\n if (x >= (actObj.centerLeftCircle.startX - ((actObj.topLeftCircle.radius * 2))) &&\n x <= (actObj.centerLeftCircle.startX + ((actObj.topLeftCircle.radius * 2))) &&\n y >= (actObj.centerLeftCircle.startY - ((actObj.topLeftCircle.radius * 2))) &&\n y <= (actObj.centerLeftCircle.startY + ((actObj.topLeftCircle.radius * 2)))) {\n this.upperCanvas.style.cursor = 'w-resize';\n }\n }\n else if (this.upperCanvas.style.cursor === 'ne-resize' || this.upperCanvas.style.cursor === 'se-resize') {\n if (x >= (actObj.centerRightCircle.startX - ((actObj.topLeftCircle.radius * 2))) &&\n x <= (actObj.centerRightCircle.startX + ((actObj.topLeftCircle.radius * 2))) &&\n y >= (actObj.centerRightCircle.startY - ((actObj.topLeftCircle.radius * 2))) &&\n y <= (actObj.centerRightCircle.startY + ((actObj.topLeftCircle.radius * 2)))) {\n this.upperCanvas.style.cursor = 'e-resize';\n }\n }\n }\n if (this.upperCanvas.style.cursor === 'nw-resize' || this.upperCanvas.style.cursor === 'ne-resize' ||\n this.upperCanvas.style.cursor === 'sw-resize' || this.upperCanvas.style.cursor === 'se-resize') {\n this.upperCanvas.style.cursor = 'move';\n }\n if (degree % 90 === 0 && degree % 180 !== 0) {\n if (this.upperCanvas.style.cursor === 'w-resize' || this.upperCanvas.style.cursor === 'e-resize') {\n this.upperCanvas.style.cursor = 'move';\n }\n }\n else {\n if (this.upperCanvas.style.cursor === 'n-resize' || this.upperCanvas.style.cursor === 's-resize') {\n this.upperCanvas.style.cursor = 'move';\n }\n }\n }\n if (cursor === 'default' && this.upperCanvas.style.cursor === 'default' && isCropSelection) {\n this.upperCanvas.style.cursor = 'grab';\n }\n if (cursor === 'grab' && this.upperCanvas.style.cursor === 'default') {\n this.upperCanvas.style.cursor = 'grab';\n }\n }\n else if (this.togglePan && !this.togglePen) {\n this.lowerCanvas.style.cursor = this.upperCanvas.style.cursor = 'grab';\n }\n else {\n if (this.currObjType.isCustomCrop || this.togglePen) {\n this.upperCanvas.style.cursor = 'crosshair';\n }\n else {\n this.upperCanvas.style.cursor = 'default';\n }\n }\n if (this.upperCanvas.style.cursor === 'default' || this.upperCanvas.style.cursor === 'grab') {\n var cursor = this.upperCanvas.style.cursor;\n if (this.objColl.length > 0 && (this.upperCanvas.style.cursor !== 'grab' || !isCropSelection)) {\n this.setCursorFromObj(x, y, this.objColl);\n }\n if (cursor === 'grab' && this.upperCanvas.style.cursor === 'default') {\n this.upperCanvas.style.cursor = 'grab';\n }\n }\n if ((this.upperCanvas.style.cursor === 'default' || this.upperCanvas.style.cursor === 'grab')\n && !isNullOrUndefined(this.pointColl[0]) && (this.upperCanvas.style.cursor !== 'grab' || !isCropSelection)) {\n this.setCursorForFreehandDrawing(x, y);\n }\n };\n ImageEditor.prototype.setCursorForFreehandDrawing = function (x, y) {\n var isEntered = false;\n this.freehandDrawHoveredIndex = -1;\n var sPoints;\n for (var n = 0; n < this.freehandCounter; n++) {\n sPoints = extend([], this.selPointColl[n].points, []);\n this.points = extend([], this.pointColl[n].points, []);\n this.pointCounter = 0;\n var len = sPoints.length;\n for (var l = 0; l < len; l++) {\n if (l !== 0) {\n var isInside = false;\n if (!isNullOrUndefined(sPoints[l - 1]) && !isNullOrUndefined(sPoints[l])) {\n isInside = this.isInside(x, y, sPoints[l - 1].x, sPoints[l - 1].y, sPoints[l].x, sPoints[l].y);\n }\n if (isInside) {\n this.isFreehandDrawingPoint = true;\n this.freehandDrawHoveredIndex = n;\n this.hoverFreehandraw();\n this.upperCanvas.style.cursor = 'pointer';\n isEntered = true;\n break;\n }\n else if (!this.isFreehandDrawEditing || this.pointColl[n].isSelected) {\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n if (!isNullOrUndefined(this.activeObj.shape) && this.textArea.style.display === 'none') {\n this.drawObject('duplicate', this.activeObj);\n }\n if (this.isFreehandDrawEditing) {\n var strokeColor = this.pointColl[n].strokeColor;\n this.hoverFreehandraw(strokeColor, this.pointColl[n].strokeWidth);\n }\n else {\n this.freehandDrawHoveredIndex = null;\n }\n this.isFreehandDrawingPoint = false;\n }\n }\n else {\n if (x > this.points[l].x - this.pointColl[n].strokeWidth &&\n x < this.points[l].x + this.pointColl[n].strokeWidth &&\n y > this.points[l].y - this.pointColl[n].strokeWidth &&\n y < this.points[l].y + this.pointColl[n].strokeWidth) {\n this.isFreehandDrawingPoint = true;\n this.freehandDrawHoveredIndex = n;\n this.hoverFreehandraw();\n this.upperCanvas.style.cursor = 'pointer';\n isEntered = true;\n break;\n }\n else if (!this.isFreehandDrawEditing || this.pointColl[n].isSelected) {\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n if (!isNullOrUndefined(this.activeObj.shape) && this.textArea.style.display === 'none') {\n this.drawObject('duplicate', this.activeObj);\n }\n if (this.isFreehandDrawEditing) {\n var strokeColor = this.pointColl[n].strokeColor;\n this.hoverFreehandraw(strokeColor, this.pointColl[n].strokeWidth);\n }\n this.isFreehandDrawingPoint = false;\n }\n }\n }\n if (isEntered) {\n break;\n }\n }\n };\n ImageEditor.prototype.setCursorFromObj = function (x, y, obj) {\n for (var i = 0; i < obj.length; i++) {\n var actObj = extend({}, obj[i], {}, true);\n this.cursorTargetObjId = actObj.currIndex;\n if (x >= (actObj.topLeftCircle.startX) &&\n x <= (actObj.topLeftCircle.startX) &&\n y >= (actObj.topLeftCircle.startY) &&\n y <= (actObj.topLeftCircle.startY)) {\n this.upperCanvas.style.cursor = 'nw-resize';\n break;\n }\n else if (x >= (actObj.topCenterCircle.startX) &&\n x <= (actObj.topCenterCircle.startX) &&\n y >= (actObj.topCenterCircle.startY) &&\n y <= (actObj.topCenterCircle.startY)) {\n this.upperCanvas.style.cursor = 'n-resize';\n break;\n }\n else if (x >= (actObj.topRightCircle.startX) &&\n x <= (actObj.topRightCircle.startX) &&\n y >= (actObj.topRightCircle.startY) &&\n y <= (actObj.topRightCircle.startY)) {\n this.upperCanvas.style.cursor = 'ne-resize';\n break;\n }\n else if (x >= (actObj.centerLeftCircle.startX) &&\n x <= (actObj.centerLeftCircle.startX) &&\n y >= (actObj.centerLeftCircle.startY) &&\n y <= (actObj.centerLeftCircle.startY)) {\n this.upperCanvas.style.cursor = 'w-resize';\n break;\n }\n else if (x >= (actObj.centerRightCircle.startX) &&\n x <= (actObj.centerRightCircle.startX) &&\n y >= (actObj.centerRightCircle.startY) &&\n y <= (actObj.centerRightCircle.startY)) {\n this.upperCanvas.style.cursor = 'e-resize';\n break;\n }\n else if (x >= (actObj.bottomLeftCircle.startX) &&\n x <= (actObj.bottomLeftCircle.startX) &&\n y >= (actObj.bottomLeftCircle.startY) &&\n y <= (actObj.bottomLeftCircle.startY)) {\n this.upperCanvas.style.cursor = 'sw-resize';\n break;\n }\n else if (x >= (actObj.bottomCenterCircle.startX) &&\n x <= (actObj.bottomCenterCircle.startX) &&\n y >= (actObj.bottomCenterCircle.startY) &&\n y <= (actObj.bottomCenterCircle.startY)) {\n this.upperCanvas.style.cursor = 's-resize';\n break;\n }\n else if (x >= (actObj.bottomRightCircle.startX) &&\n x <= (actObj.bottomRightCircle.startX) &&\n y >= (actObj.bottomRightCircle.startY) &&\n y <= (actObj.bottomRightCircle.startY)) {\n this.upperCanvas.style.cursor = 'se-resize';\n break;\n }\n else if ((x >= actObj.activePoint.startX &&\n x <= actObj.activePoint.endX) && (y >= actObj.activePoint.startY &&\n y <= actObj.activePoint.endY)) {\n this.upperCanvas.style.cursor = 'move';\n break;\n }\n else {\n if (this.currObjType.isCustomCrop) {\n this.upperCanvas.style.cursor = 'crosshair';\n }\n this.upperCanvas.style.cursor = 'default';\n }\n }\n };\n ImageEditor.prototype.isInside = function (x, y, z1, z2, z3, z4) {\n var x1 = Math.min(z1, z3);\n var x2 = Math.max(z1, z3);\n var y1 = Math.min(z2, z4);\n var y2 = Math.max(z2, z4);\n if ((x1 <= x && x <= x2) && (y1 <= y && y <= y2)) {\n return true;\n }\n else {\n return false;\n }\n };\n ImageEditor.prototype.refreshDropDownBtn = function (isDisabled) {\n if (isNullOrUndefined(isDisabled)) {\n return;\n }\n var annotation = document.querySelector('#' + this.element.id + '_annotationBtn');\n if (!isNullOrUndefined(annotation)) {\n if (isDisabled) {\n annotation.classList.add('e-disabled');\n annotation.parentElement.classList.add('e-overlay');\n }\n else {\n annotation.classList.remove('e-disabled');\n annotation.parentElement.classList.remove('e-overlay');\n }\n getComponent(annotation, 'dropdown-btn').disabled = isDisabled;\n }\n var transform = document.querySelector('#' + this.element.id + '_transformBtn');\n if (!isNullOrUndefined(transform)) {\n if (isDisabled) {\n transform.classList.add('e-disabled');\n transform.parentElement.classList.add('e-overlay');\n }\n else {\n transform.classList.remove('e-disabled');\n transform.parentElement.classList.remove('e-overlay');\n }\n getComponent(transform, 'dropdown-btn').disabled = isDisabled;\n }\n var adjustment = document.querySelector('#' + this.element.id + '_adjustment');\n if (!isNullOrUndefined(adjustment)) {\n if (isDisabled) {\n adjustment.classList.add('e-disabled');\n adjustment.parentElement.classList.add('e-overlay');\n }\n else {\n adjustment.classList.remove('e-disabled');\n adjustment.parentElement.classList.remove('e-overlay');\n }\n getComponent(adjustment, 'btn').disabled = isDisabled;\n }\n var filter = document.querySelector('#' + this.element.id + '_filter');\n if (!isNullOrUndefined(filter)) {\n if (isDisabled) {\n filter.classList.add('e-disabled');\n filter.parentElement.classList.add('e-overlay');\n }\n else {\n filter.classList.remove('e-disabled');\n filter.parentElement.classList.remove('e-overlay');\n }\n getComponent(filter, 'btn').disabled = isDisabled;\n }\n };\n ImageEditor.prototype.downloadImg = function (blob, fileName) {\n var a = document.createElement('a');\n a.href = blob;\n a.target = '_parent';\n a.download = fileName;\n (document.body || document.documentElement).appendChild(a);\n a.click();\n a.parentNode.removeChild(a);\n };\n ImageEditor.prototype.toSVGImg = function (fileName) {\n showSpinner(this.element);\n this.element.style.opacity = '0.5';\n var tempCanvas = this.exportChangesToCanvas();\n var dataUrl = tempCanvas.toDataURL();\n hideSpinner(this.element);\n this.element.style.opacity = '1';\n var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n svg.setAttribute('width', tempCanvas.style.maxWidth);\n svg.setAttribute('height', tempCanvas.style.maxHeight);\n var XLinkNS = 'http://www.w3.org/1999/xlink';\n var img = document.createElementNS('http://www.w3.org/2000/svg', 'image');\n img.setAttributeNS(null, 'height', tempCanvas.height.toString());\n img.setAttributeNS(null, 'width', tempCanvas.width.toString());\n img.setAttributeNS(XLinkNS, 'xlink:href', dataUrl);\n svg.appendChild(img);\n var prefix = 'data:image/svg+xml;base64,';\n var header = '';\n var footer = '';\n var body = svg.innerHTML;\n var data = header + body + footer;\n var svgDataUrl = prefix + btoa(data);\n if (fileName === null) {\n return svgDataUrl;\n }\n else {\n this.downloadImg(svgDataUrl, fileName + '.' + 'svg');\n return null;\n }\n };\n ImageEditor.prototype.toBlobFn = function (fileName, type) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var proxy = this;\n showSpinner(this.element);\n this.element.style.opacity = '0.5';\n var tempCanvas = this.exportChangesToCanvas();\n // eslint-disable-next-line @typescript-eslint/tslint/config\n tempCanvas.toBlob(function (blob) {\n var blobUrl = URL.createObjectURL(blob);\n proxy.downloadImg(blobUrl, fileName + '.' + type);\n hideSpinner(proxy.element);\n proxy.element.style.opacity = '1';\n }, 'image/png');\n };\n ImageEditor.prototype.exportChangesToCanvas = function () {\n var ratio = this.calcRatio();\n var tempContextFilter = this.lowerContext.filter;\n // Manipulating blur value\n if (this.lowerContext.filter !== 'none') {\n var splitWords = this.lowerContext.filter.split(' ');\n var value = parseFloat(splitWords[5].split('(')[1]);\n value *= ((ratio.width + ratio.height) / 2);\n splitWords[5] = 'blur(' + value + 'px)';\n this.lowerContext.filter = splitWords.join(' ');\n }\n var maxDimension;\n var tempCanvas = this.createElement('canvas', {\n id: this.element.id + '_tempCanvas', attrs: { name: 'canvasImage' }\n });\n var tempContext = tempCanvas.getContext('2d');\n tempContext.filter = this.lowerContext.filter;\n if (isNullOrUndefined(this.currSelectionPoint)) {\n tempCanvas.width = this.baseImg.width;\n tempCanvas.height = this.baseImg.height;\n maxDimension = this.calcMaxDimension(this.baseImg.width, this.baseImg.height);\n tempCanvas.style.maxWidth = maxDimension.width + 'px';\n tempCanvas.style.maxHeight = maxDimension.height + 'px';\n tempContext.filter = this.lowerContext.filter;\n var temp = this.lowerContext.filter;\n this.updateBrightnessFilter();\n tempContext.drawImage(this.baseImg, this.srcLeft, this.srcTop, this.srcWidth, this.srcHeight, 0, 0, this.baseImg.width, this.baseImg.height);\n this.lowerContext.filter = temp;\n }\n else {\n tempCanvas.width = this.destWidth;\n tempCanvas.height = this.destHeight;\n tempContext.filter = this.lowerContext.filter;\n var temp = this.lowerContext.filter;\n this.updateBrightnessFilter();\n tempContext.drawImage(this.baseImg, this.srcLeft, this.srcTop, this.srcWidth, this.srcHeight, 0, 0, this.destWidth, this.destHeight);\n this.lowerContext.filter = temp;\n }\n if (this.degree !== 0 || this.currFlipState !== '') {\n this.updateSaveContext(tempContext);\n this.exportTransformedImage(tempContext);\n }\n if (this.objColl.length > 0) {\n var temp = tempContext.filter;\n tempContext.filter = 'none';\n var tempObjColl = extend([], this.objColl, [], true);\n for (var i = 0; i < this.objColl.length; i++) {\n // Subtracting destination left and top points\n this.objColl[i].activePoint.startX -= this.destLeft;\n this.objColl[i].activePoint.startY -= this.destTop;\n this.objColl[i].activePoint.endX -= this.destLeft;\n this.objColl[i].activePoint.endY -= this.destTop;\n this.objColl[i].activePoint.width = this.objColl[i].activePoint.endX -\n this.objColl[i].activePoint.startX;\n this.objColl[i].activePoint.height = this.objColl[i].activePoint.endY -\n this.objColl[i].activePoint.startY;\n // Manipulating points\n if (isNullOrUndefined(this.currSelectionPoint)) {\n this.objColl[i].activePoint.startX *= ratio.width;\n this.objColl[i].activePoint.startY *= ratio.height;\n this.objColl[i].activePoint.endX *= ratio.width;\n this.objColl[i].activePoint.endY *= ratio.height;\n this.objColl[i].activePoint.width = this.objColl[i].activePoint.endX -\n this.objColl[i].activePoint.startX;\n this.objColl[i].activePoint.height = this.objColl[i].activePoint.endY -\n this.objColl[i].activePoint.startY;\n this.objColl[i].strokeSettings.strokeWidth *= ((ratio.width + ratio.height) / 2);\n if (this.objColl[i].shape === 'text') {\n this.objColl[i].textSettings.fontSize *= ((ratio.width + ratio.height) / 2);\n }\n }\n this.drawObject('saveContext', this.objColl[i], null, null, true, tempContext);\n }\n tempContext.filter = temp;\n this.refreshActiveObj();\n this.objColl = tempObjColl;\n }\n if (this.freehandCounter > 0) {\n // eslint-disable-next-line\n var tempPointColl = extend({}, this.pointColl, {}, true);\n for (var n = 0; n < this.freehandCounter; n++) {\n this.points = extend([], this.pointColl[n].points, []);\n this.pointCounter = 0;\n var len = this.points.length;\n if (isNullOrUndefined(this.currSelectionPoint)) {\n this.pointColl[n].strokeWidth *= ((ratio.width + ratio.height) / 2);\n for (var l = 0; l < len; l++) {\n this.points[l].x = (this.points[l].x - this.destLeft) * ratio.width;\n this.points[l].y = (this.points[l].y - this.destTop) * ratio.height;\n }\n }\n else {\n for (var l = 0; l < len; l++) {\n this.points[l].x -= this.destLeft;\n this.points[l].y -= this.destTop;\n }\n }\n }\n this.freehandRedraw(tempContext);\n this.pointColl = tempPointColl;\n }\n if (this.isCircleCrop) {\n this.cropCircle(tempContext, true);\n }\n this.lowerContext.filter = tempContextFilter;\n return tempCanvas;\n };\n ImageEditor.prototype.exportTransformedImage = function (tempContext) {\n var degree = this.degree;\n for (var i = 0; i < this.rotateFlipColl.length; i++) {\n if (typeof (this.rotateFlipColl[i]) === 'number') {\n this.exportRotate(tempContext, this.rotateFlipColl[i]);\n }\n else if (this.rotateFlipColl[i] === 'horizontal') {\n this.exportHorizontalFlip(tempContext);\n }\n else if (this.rotateFlipColl[i] === 'vertical') {\n this.exportVerticalFlip(tempContext);\n }\n }\n this.degree = degree;\n };\n ImageEditor.prototype.exportRotate = function (tempContext, degree) {\n if (isNullOrUndefined(this.currSelectionPoint)) {\n this.setMaximumDimension(this.degree, tempContext.canvas);\n tempContext.translate(tempContext.canvas.width / 2, tempContext.canvas.height / 2);\n tempContext.rotate(Math.PI / 180 * degree);\n tempContext.drawImage(this.inMemoryCanvas, this.srcLeft, this.srcTop, this.srcWidth, this.srcHeight, -tempContext.canvas.height / 2, -tempContext.canvas.width / 2, tempContext.canvas.height, tempContext.canvas.width);\n }\n else {\n tempContext.translate(tempContext.canvas.width / 2, tempContext.canvas.height / 2);\n tempContext.rotate(Math.PI / 180 * degree);\n tempContext.drawImage(this.inMemoryCanvas, -tempContext.canvas.height / 2, -tempContext.canvas.width / 2, tempContext.canvas.height, tempContext.canvas.width);\n }\n this.updateSaveContext(tempContext);\n };\n ImageEditor.prototype.exportHorizontalFlip = function (tempContext) {\n tempContext.translate(tempContext.canvas.width, 0);\n tempContext.scale(-1, 1);\n tempContext.drawImage(this.inMemoryCanvas, 0, 0);\n this.updateSaveContext(tempContext);\n };\n ImageEditor.prototype.exportVerticalFlip = function (tempContext) {\n tempContext.translate(0, tempContext.canvas.height);\n tempContext.scale(1, -1);\n tempContext.drawImage(this.inMemoryCanvas, 0, 0);\n this.updateSaveContext(tempContext);\n };\n ImageEditor.prototype.updateSaveContext = function (tempContext) {\n tempContext.setTransform(1, 0, 0, 1, 0, 0);\n var imageData = tempContext.getImageData(0, 0, tempContext.canvas.width, tempContext.canvas.height);\n this.inMemoryCanvas.width = imageData.width;\n this.inMemoryCanvas.height = imageData.height;\n this.inMemoryContext.putImageData(imageData, 0, 0);\n };\n ImageEditor.prototype.addLetter = function (letter) {\n if (this.textArea.style.display === 'none' && (this.currObjType.isText || this.activeObj.shape === 'text')) {\n if (letter === 'Backspace') {\n this.keyHistory = this.keyHistory.slice(0, -1);\n }\n else {\n this.keyHistory += letter;\n }\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n this.updateFontStyles();\n var width = this.upperContext.measureText(this.keyHistory + this.tempKeyHistory).width\n + this.activeObj.textSettings.fontSize * 0.5;\n var height = this.activeObj.textSettings.fontSize + this.activeObj.textSettings.fontSize * 0.25;\n this.upperContext.fillText(this.keyHistory + this.tempKeyHistory, this.activeObj.activePoint.startX, this.activeObj.activePoint.startY +\n this.activeObj.textSettings.fontSize);\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n this.currObjType.isText = true;\n this.setActivePoint(width, height);\n }\n };\n ImageEditor.prototype.updateFontStyles = function (isTextBox) {\n this.upperContext.strokeStyle = this.activeObj.strokeSettings.strokeColor;\n this.upperContext.fillStyle = this.activeObj.strokeSettings.strokeColor;\n var textStyle = '';\n if (this.activeObj.textSettings.bold) {\n textStyle = 'bold ';\n }\n if (this.activeObj.textSettings.italic) {\n textStyle = 'italic ';\n }\n if (this.activeObj.textSettings.bold && this.activeObj.textSettings.italic) {\n textStyle = 'italic bold ';\n }\n var fontSize = isTextBox ? parseFloat(this.textArea.style.fontSize) : this.activeObj.textSettings.fontSize;\n var fontFamily = this.textArea.style.display === 'block' ? this.textArea.style.fontFamily : this.activeObj.textSettings.fontFamily;\n this.upperContext.font = textStyle + fontSize + 'px' + ' ' + fontFamily;\n };\n ImageEditor.prototype.textFlipDegree = function (canvasDraw, startX, startY) {\n var rows = this.activeObj.keyHistory.split('\\n');\n var height = this.activeObj.textSettings.fontSize;\n var lineHeight = ((height * rows.length) - (this.activeObj.textSettings.fontSize * rows.length)) / rows.length;\n var yPoint = (this.activeObj.textSettings.fontSize * 0.85) + lineHeight;\n for (var i = 0; i < rows.length; i++) {\n var text = rows[i];\n if (i > 0) {\n if (i === 1) {\n yPoint -= (this.activeObj.textSettings.fontSize * 0.85);\n }\n yPoint += this.activeObj.textSettings.fontSize + this.activeObj.textSettings.fontSize * 0.15;\n }\n canvasDraw.fillText(text, startX + this.activeObj.textSettings.fontSize * 0.15, startY +\n yPoint + (i > 0 ? this.activeObj.textSettings.fontSize * 0.25 : -this.activeObj.textSettings.fontSize * 0.35));\n }\n };\n ImageEditor.prototype.rotateText = function (canvasDraw) {\n var startX = this.activeObj.activePoint.startX;\n var startY = this.activeObj.activePoint.startY;\n var degree;\n if (this.activeObj.shapeDegree === 0) {\n degree = this.degree;\n }\n else {\n degree = this.degree - this.activeObj.shapeDegree;\n }\n if (degree < 0) {\n degree = 360 + degree;\n }\n if (degree % 360 === 0 && (this.degree !== -360 || this.currFlipState === '')) {\n startX = this.activeObj.activePoint.startX + this.activeObj.textSettings.fontSize * 0.15;\n startY = this.activeObj.activePoint.startY + (this.activeObj.activePoint.endY - this.activeObj.activePoint.startY);\n var rows = this.activeObj.keyHistory.split('\\n');\n for (var i = 0; i < rows.length; i++) {\n startY = this.activeObj.activePoint.startY + (i * this.activeObj.textSettings.fontSize +\n this.activeObj.textSettings.fontSize * 0.25);\n canvasDraw.fillText(rows[i], startX, startY);\n }\n }\n else if (degree % 90 === 0 && degree % 180 !== 0) {\n canvasDraw.translate(this.lowerCanvas.width / 2, this.lowerCanvas.height / 2);\n canvasDraw.rotate(Math.PI / 180 * degree);\n canvasDraw.translate(-this.lowerCanvas.height / 2, -this.lowerCanvas.width / 2);\n if (degree % 90 === 0 && degree % 270 !== 0) {\n startY = (this.lowerCanvas.width - this.activeObj.activePoint.endX) + this.activeObj.textSettings.fontSize * 0.4;\n startX = this.activeObj.activePoint.startY;\n }\n else if (degree % 270 === 0) {\n startX = this.lowerCanvas.height - this.activeObj.activePoint.endY;\n startY = this.activeObj.activePoint.startX + this.activeObj.textSettings.fontSize * 0.4;\n }\n this.textFlipDegree(canvasDraw, startX, startY);\n canvasDraw.translate(this.lowerCanvas.height / 2, this.lowerCanvas.width / 2);\n canvasDraw.rotate(Math.PI / 180 * -degree);\n canvasDraw.translate(-this.lowerCanvas.width / 2, -this.lowerCanvas.height / 2);\n }\n else {\n canvasDraw.translate(this.lowerCanvas.width / 2, this.lowerCanvas.height / 2);\n canvasDraw.rotate(Math.PI / 180 * degree);\n startX = this.lowerCanvas.width - this.activeObj.activePoint.endX;\n startY = (this.lowerCanvas.height - this.activeObj.activePoint.endY) + this.activeObj.textSettings.fontSize * 0.4;\n canvasDraw.translate(-this.lowerCanvas.width / 2, -this.lowerCanvas.height / 2);\n this.textFlipDegree(canvasDraw, startX, startY);\n canvasDraw.translate(this.lowerCanvas.width / 2, this.lowerCanvas.height / 2);\n canvasDraw.rotate(Math.PI / 180 * -degree);\n canvasDraw.translate(-this.lowerCanvas.width / 2, -this.lowerCanvas.height / 2);\n }\n if (this.degree === 360 || this.degree === -360) {\n this.degree = 0;\n }\n };\n ImageEditor.prototype.redrawObj = function (degree) {\n if (this.objColl.length > 0) {\n if (degree === 'horizontal' || degree === 'vertical' || degree === 'Horizontal' || degree === 'Vertical' ||\n degree === 'horizontalVertical' || degree === 'verticalHorizontal') {\n this.updateCurrentActiveObjPoint(degree.toLowerCase());\n }\n else if (typeof (degree) === 'number') {\n this.updateCurrentActiveObjPoint(degree);\n var tempFilter = this.lowerContext.filter;\n this.lowerContext.filter = this.getDefaultFilter();\n for (var i = 0; i < this.objColl.length; i++) {\n var splitWords = this.objColl[i].shape.split('-');\n if (splitWords[0] !== 'crop') {\n this.apply(this.objColl[i].shape, this.objColl[i]);\n }\n }\n this.lowerContext.filter = tempFilter;\n }\n }\n };\n ImageEditor.prototype.updateCurrentActiveObjPoint = function (degree) {\n var currActObjIndex;\n for (var index = 0; index < this.objColl.length; index++) {\n if (this.activeObj.shape === this.objColl[index].shape &&\n this.activeObj.activePoint.startX === this.objColl[index].activePoint.startX &&\n this.activeObj.activePoint.startY === this.objColl[index].activePoint.startY &&\n this.activeObj.activePoint.endX === this.objColl[index].activePoint.endX &&\n this.activeObj.activePoint.endY === this.objColl[index].activePoint.endY &&\n this.activeObj.currIndex === this.objColl[index].currIndex) {\n currActObjIndex = index;\n break;\n }\n }\n if (degree === 'horizontal' || degree === 'vertical' || degree === 'Horizontal' || degree === 'Vertical' ||\n degree === 'horizontalvertical' || degree === 'verticalhorizontal') {\n if (degree === 'horizontal' || degree === 'Horizontal') {\n for (var i = 0; i < this.objColl.length; i++) {\n if (this.objColl[i].shapeFlip !== this.currFlipState) {\n if (this.objColl[i].activePoint.startX <= this.destLeft + (this.destWidth / 2)) {\n this.objColl[i].activePoint.endX = (this.destLeft + this.destWidth) -\n (this.objColl[i].activePoint.startX - this.destLeft);\n this.objColl[i].activePoint.startX = this.objColl[i].activePoint.endX -\n this.objColl[i].activePoint.width;\n this.updateActiveObject(this.objColl[i].activePoint, this.objColl[i]);\n }\n else if (this.objColl[i].activePoint.startX >= this.destLeft + (this.destWidth / 2)) {\n this.objColl[i].activePoint.startX = this.destLeft + (this.destLeft + this.destWidth -\n this.objColl[i].activePoint.endX);\n this.objColl[i].activePoint.endX = this.objColl[i].activePoint.startX +\n this.objColl[i].activePoint.width;\n this.updateActiveObject(this.objColl[i].activePoint, this.objColl[i]);\n }\n this.objColl[i].shapeFlip = this.currFlipState;\n this.updateArrowDirection(this.objColl[i], 'horizontal');\n this.updateTrianglePoints(this.objColl[i]);\n this.objColl[i].imageRatio = { startX: ((this.objColl[i].activePoint.startX -\n this.destLeft) / this.destWidth),\n startY: ((this.objColl[i].activePoint.startY - this.destTop) / this.destHeight),\n endX: ((this.objColl[i].activePoint.endX - this.destLeft) / this.destWidth),\n endY: ((this.objColl[i].activePoint.endY - this.destTop) / this.destHeight),\n width: this.destWidth / this.objColl[i].activePoint.width,\n height: this.destHeight / this.objColl[i].activePoint.height };\n }\n }\n }\n else if (degree === 'vertical' || degree === 'Vertical') {\n for (var i = 0; i < this.objColl.length; i++) {\n if (this.objColl[i].shapeFlip !== this.currFlipState) {\n if (this.objColl[i].activePoint.startY <= this.destTop + (this.destHeight / 2)) {\n this.objColl[i].activePoint.endY = (this.destTop + this.destHeight) -\n (this.objColl[i].activePoint.startY - this.destTop);\n this.objColl[i].activePoint.startY = this.objColl[i].activePoint.endY -\n this.objColl[i].activePoint.height;\n this.updateActiveObject(this.objColl[i].activePoint, this.objColl[i]);\n }\n else if (this.objColl[i].activePoint.startY >= this.lowerCanvas.height / 2) {\n this.objColl[i].activePoint.startY = this.destTop + (this.destTop + this.destHeight -\n this.objColl[i].activePoint.endY);\n this.objColl[i].activePoint.endY = this.objColl[i].activePoint.startY +\n this.objColl[i].activePoint.height;\n this.updateActiveObject(this.objColl[i].activePoint, this.objColl[i]);\n }\n this.objColl[i].shapeFlip = this.currFlipState;\n this.updateArrowDirection(this.objColl[i], 'vertical');\n this.updateTrianglePoints(this.objColl[i]);\n this.objColl[i].imageRatio = { startX: ((this.objColl[i].activePoint.startX -\n this.destLeft) / this.destWidth),\n startY: ((this.objColl[i].activePoint.startY - this.destTop) / this.destHeight),\n endX: ((this.objColl[i].activePoint.endX - this.destLeft) / this.destWidth),\n endY: ((this.objColl[i].activePoint.endY - this.destTop) / this.destHeight),\n width: this.destWidth / this.objColl[i].activePoint.width,\n height: this.destHeight / this.objColl[i].activePoint.height };\n }\n }\n }\n else if (degree === 'verticalhorizontal' || degree === 'horizontalvertical') {\n for (var i = 0; i < this.objColl.length; i++) {\n if (this.objColl[i].shapeFlip !== this.currFlipState) {\n if (this.objColl[i].activePoint.startX <= this.destLeft + (this.destWidth / 2)) {\n this.objColl[i].activePoint.endX = (this.destLeft + this.destWidth) -\n (this.objColl[i].activePoint.startX - this.destLeft);\n this.objColl[i].activePoint.startX = this.objColl[i].activePoint.endX -\n this.objColl[i].activePoint.width;\n this.updateActiveObject(this.objColl[i].activePoint, this.objColl[i]);\n }\n else if (this.objColl[i].activePoint.startX >= this.destLeft + (this.destWidth / 2)) {\n this.objColl[i].activePoint.startX = this.destLeft + (this.destLeft + this.destWidth -\n this.objColl[i].activePoint.endX);\n this.objColl[i].activePoint.endX = this.objColl[i].activePoint.startX +\n this.objColl[i].activePoint.width;\n this.updateActiveObject(this.objColl[i].activePoint, this.objColl[i]);\n }\n if (this.objColl[i].activePoint.startY <= this.destTop + (this.destHeight / 2)) {\n this.objColl[i].activePoint.endY = (this.destTop + this.destHeight) -\n (this.objColl[i].activePoint.startY - this.destTop);\n this.objColl[i].activePoint.startY = this.objColl[i].activePoint.endY -\n this.objColl[i].activePoint.height;\n this.updateActiveObject(this.objColl[i].activePoint, this.objColl[i]);\n }\n else if (this.objColl[i].activePoint.startY >= this.lowerCanvas.height / 2) {\n this.objColl[i].activePoint.startY = this.destTop + (this.destTop + this.destHeight -\n this.objColl[i].activePoint.endY);\n this.objColl[i].activePoint.endY = this.objColl[i].activePoint.startY +\n this.objColl[i].activePoint.height;\n this.updateActiveObject(this.objColl[i].activePoint, this.objColl[i]);\n }\n this.objColl[i].shapeFlip = this.currFlipState;\n this.updateArrowDirection(this.objColl[i], this.currFlipState);\n this.updateTrianglePoints(this.objColl[i]);\n this.objColl[i].imageRatio = { startX: ((this.objColl[i].activePoint.startX -\n this.destLeft) / this.destWidth),\n startY: ((this.objColl[i].activePoint.startY - this.destTop) / this.destHeight),\n endX: ((this.objColl[i].activePoint.endX - this.destLeft) / this.destWidth),\n endY: ((this.objColl[i].activePoint.endY - this.destTop) / this.destHeight),\n width: this.destWidth / this.objColl[i].activePoint.width,\n height: this.destHeight / this.objColl[i].activePoint.height };\n }\n }\n }\n if (currActObjIndex !== undefined) {\n this.activeObj = extend({}, this.objColl[currActObjIndex], {}, true);\n }\n }\n else if (degree === 90) {\n this.rotateObjColl();\n }\n else if (degree === -90) {\n for (var i = 0; i < 3; i++) {\n this.rotateObjColl();\n }\n }\n else if (typeof (degree) === 'number') {\n if (degree > 0) {\n this.rotateObjColl();\n }\n else {\n for (var i = 0; i < 3; i++) {\n this.rotateObjColl();\n }\n }\n }\n };\n ImageEditor.prototype.rotateObjColl = function () {\n for (var i = 0; i < this.objColl.length; i++) {\n this.objColl[i].activePoint.startY = this.destTop + (this.destHeight * this.objColl[i].imageRatio.startX);\n this.objColl[i].activePoint.endY = this.destTop + (this.destHeight * this.objColl[i].imageRatio.endX);\n this.objColl[i].activePoint.startX = (this.destLeft + this.destWidth) -\n (this.destWidth * this.objColl[i].imageRatio.endY);\n this.objColl[i].activePoint.endX = (this.destLeft + this.destWidth) -\n (this.destWidth * this.objColl[i].imageRatio.startY);\n this.objColl[i].activePoint.width = this.objColl[i].activePoint.endX -\n this.objColl[i].activePoint.startX;\n this.objColl[i].activePoint.height = this.objColl[i].activePoint.endY -\n this.objColl[i].activePoint.startY;\n this.updateFontSize(this.objColl[i]);\n if (this.objColl[i].shape === 'arrow') {\n this.updateArrowDirection(this.objColl[i], null, 90);\n this.updateTrianglePoints(this.objColl[i]);\n }\n }\n for (var i = 0; i < this.objColl.length; i++) {\n this.updateActiveObject(this.objColl[i].activePoint, this.objColl[i]);\n }\n // Update current image ratio for all objects\n for (var i = 0; i < this.objColl.length; i++) {\n this.objColl[i].imageRatio = { startX: ((this.objColl[i].activePoint.startX -\n this.destLeft) / this.destWidth),\n startY: ((this.objColl[i].activePoint.startY - this.destTop) / this.destHeight),\n endX: ((this.objColl[i].activePoint.endX - this.destLeft) / this.destWidth),\n endY: ((this.objColl[i].activePoint.endY - this.destTop) / this.destHeight),\n width: this.destWidth / this.objColl[i].activePoint.width,\n height: this.destHeight / this.objColl[i].activePoint.height };\n }\n };\n ImageEditor.prototype.redrawShape = function (obj) {\n for (var i = 0; i < this.objColl.length; i++) {\n if (JSON.stringify(obj) === JSON.stringify(this.objColl[i])) {\n this.objColl.splice(i, 1);\n break;\n }\n }\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n if (this.isPreventDragging) {\n if (this.activeObj.activePoint.startX > this.destLeft) {\n this.isPreventDragging = false;\n }\n this.drawObject('duplicate', null, null, null, true);\n }\n else {\n this.drawObject('duplicate', null, null, null, true);\n }\n };\n ImageEditor.prototype.applyActObj = function (isMouseDown) {\n var isActObj = false;\n if (this.activeObj.shape !== undefined && this.activeObj.shape === 'text' && this.activeObj.keyHistory === '') {\n this.refreshActiveObj();\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n }\n else {\n var splitWords = void 0;\n var isCropSelection = false;\n if (this.activeObj.shape !== undefined) {\n splitWords = this.activeObj.shape.split('-');\n }\n if (splitWords === undefined && this.currObjType.isCustomCrop) {\n isCropSelection = true;\n }\n else if (splitWords !== undefined && splitWords[0] === 'crop') {\n isCropSelection = true;\n }\n if (!isNullOrUndefined(this.activeObj.shape) && !isCropSelection && this.activeObj.shape !== 'shape') {\n for (var i = 0; i < this.objColl.length; i++) {\n if (JSON.stringify(this.activeObj) === JSON.stringify(this.objColl[i])) {\n isActObj = true;\n break;\n }\n }\n if (!isActObj) {\n if (isNullOrUndefined(this.activeObj.currIndex)) {\n this.activeObj.currIndex = 'shape_' + (this.objColl.length + 1);\n }\n this.updateImageRatioForActObj();\n var splitWords_3 = this.activeObj.currIndex.split('_');\n var tempObjColl = this.objColl.splice(0, parseInt(splitWords_3[1], 10) - 1);\n tempObjColl.push(extend({}, this.activeObj, {}, true));\n for (var i = 0; i < this.objColl.length; i++) {\n tempObjColl.push(this.objColl[i]);\n }\n this.objColl = tempObjColl;\n tempObjColl = [];\n this.refreshActiveObj();\n this.lowerContext.clearRect(0, 0, this.lowerCanvas.width, this.lowerCanvas.height);\n this.redrawImgWithObj();\n this.clearOuterCanvas(this.lowerContext);\n this.clearOuterCanvas(this.upperContext);\n this.currObjType.shape = '';\n this.refreshActiveObj();\n if (this.isCircleCrop) {\n this.cropCircle(this.lowerContext);\n }\n this.destroyQuickAccessToolbar();\n if (isNullOrUndefined(isMouseDown)) {\n this.updateCurrentUndoRedoColl('ok');\n this.prevActObj = null;\n }\n }\n }\n }\n };\n ImageEditor.prototype.destroyQuickAccessToolbar = function () {\n if (!isNullOrUndefined(document.getElementById(this.element.id + '_quickAccessToolbar')) &&\n !isNullOrUndefined(getComponent(document.getElementById(this.element.id + '_quickAccessToolbar'), 'toolbar'))) {\n getComponent(document.getElementById(this.element.id + '_quickAccessToolbar'), 'toolbar').destroy();\n }\n if (!isNullOrUndefined(document.getElementById(this.element.id + '_quickAccessToolbarArea'))) {\n document.getElementById(this.element.id + '_quickAccessToolbarArea').style.display = 'none';\n }\n };\n ImageEditor.prototype.apply = function (shape, obj, canvas) {\n if (!this.disabled) {\n if ((this.togglePen) && !this.currObjType.isCustomCrop) {\n var destLeft = this.destLeft;\n var destTop = this.destTop;\n var destWidth = this.destWidth;\n var destHeight = this.destHeight;\n this.callUpdateCurrentTransformedState();\n var temp = this.lowerContext.filter;\n this.lowerContext.filter = 'none';\n this.togglePen = false;\n this.iterateObjColl();\n this.freehandRedraw(this.lowerContext);\n this.togglePen = false;\n if (this.isCircleCrop || (!isNullOrUndefined(this.currSelectionPoint) && this.currSelectionPoint.shape === 'crop-circle')) {\n this.cropCircle(this.lowerContext);\n }\n this.destLeft = destLeft;\n this.destTop = destTop;\n this.destWidth = destWidth;\n this.destHeight = destHeight;\n this.lowerContext.filter = temp;\n }\n else {\n canvas = canvas ? canvas : 'original';\n this.currObjType.shape = shape !== undefined ? shape : this.currObjType.shape;\n if (this.currObjType.shape !== '') {\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n if (this.activeObj.shape === 'text') {\n this.drawObject(canvas, obj, null, null, true);\n this.clearOuterCanvas(this.lowerContext);\n }\n else {\n this.drawObject(canvas, obj);\n }\n this.activeObj.shape = this.currObjType.shape.toLowerCase();\n if (!shape && this.currObjType.shape !== '' && !this.currObjType.isCustomCrop) {\n this.objColl.push(extend({}, this.activeObj, {}, true));\n }\n this.keyHistory = '';\n }\n }\n }\n };\n ImageEditor.prototype.setCenterPoints = function (text, width, height) {\n var renderWidth;\n var renderHeight;\n if (text && width && height) {\n renderWidth = width;\n renderHeight = height;\n }\n else {\n renderWidth = this.activeObj.activePoint.width;\n renderHeight = this.activeObj.activePoint.height;\n }\n this.activeObj.activePoint.startX = (this.lowerCanvas.width / 2) - renderWidth / 2;\n this.activeObj.activePoint.startY = (this.lowerCanvas.height / 2) - renderHeight / 2;\n this.activeObj.activePoint.endX = (this.lowerCanvas.width / 2) + renderWidth / 2;\n this.activeObj.activePoint.endY = (this.lowerCanvas.height / 2) + renderHeight / 2;\n if (text && width && height) {\n this.textStartPoints.x = this.activeObj.activePoint.startX;\n this.textStartPoints.y = this.activeObj.activePoint.startY;\n }\n };\n ImageEditor.prototype.updateTriangleRatio = function (obj) {\n obj.triangleRatio = [];\n obj.triangleRatio.push({ x: (obj.triangle[0].x - this.destLeft) / this.destWidth,\n y: (obj.triangle[0].y - this.destTop) / this.destHeight });\n obj.triangleRatio.push({ x: (obj.triangle[1].x - this.destLeft) / this.destWidth,\n y: (obj.triangle[1].y - this.destTop) / this.destHeight });\n obj.triangleRatio.push({ x: (obj.triangle[2].x - this.destLeft) / this.destWidth,\n y: (obj.triangle[2].y - this.destTop) / this.destHeight });\n };\n ImageEditor.prototype.updateTrianglePoints = function (obj) {\n if (obj.shape === 'arrow') {\n var degree = void 0;\n var arrowSize = void 0;\n if (obj.shapeDegree === 0) {\n degree = this.degree;\n }\n else {\n degree = this.degree - obj.shapeDegree;\n }\n if (degree < 0) {\n degree = 360 + degree;\n }\n if (degree % 90 === 0 && degree % 180 !== 0) {\n arrowSize = obj.activePoint.width;\n }\n else {\n arrowSize = obj.activePoint.height;\n }\n obj.triangle = [];\n switch (obj.triangleDirection) {\n case 'right':\n obj.triangle.push({ x: obj.activePoint.endX - arrowSize, y: obj.activePoint.startY });\n obj.triangle.push({ x: obj.activePoint.endX, y: obj.activePoint.startY + (arrowSize / 2) });\n obj.triangle.push({ x: obj.activePoint.endX - arrowSize, y: obj.activePoint.endY });\n break;\n case 'left':\n obj.triangle.push({ x: obj.activePoint.startX + arrowSize, y: obj.activePoint.startY });\n obj.triangle.push({ x: obj.activePoint.startX, y: obj.activePoint.startY + (arrowSize / 2) });\n obj.triangle.push({ x: obj.activePoint.startX + arrowSize, y: obj.activePoint.endY });\n break;\n case 'top':\n obj.triangle.push({ x: obj.activePoint.startX, y: obj.activePoint.startY + arrowSize });\n obj.triangle.push({ x: obj.activePoint.startX + (arrowSize / 2), y: obj.activePoint.startY });\n obj.triangle.push({ x: obj.activePoint.startX + arrowSize, y: obj.activePoint.startY + arrowSize });\n break;\n case 'bottom':\n obj.triangle.push({ x: obj.activePoint.endX, y: obj.activePoint.endY - arrowSize });\n obj.triangle.push({ x: obj.activePoint.endX - (arrowSize / 2), y: obj.activePoint.endY });\n obj.triangle.push({ x: obj.activePoint.endX - arrowSize, y: obj.activePoint.endY - arrowSize });\n break;\n }\n this.updateTriangleRatio(obj);\n }\n };\n ImageEditor.prototype.setDimension = function (width, height) {\n if (!isNullOrUndefined(width) && !isNullOrUndefined(height)) {\n this.activeObj.activePoint.width = width;\n this.activeObj.activePoint.height = height;\n if (this.currObjType.shape.toLowerCase() === 'ellipse') {\n this.activeObj.activePoint.width = 2 * width;\n this.activeObj.activePoint.height = 2 * height;\n }\n }\n };\n ImageEditor.prototype.updateUndoRedo = function () {\n var prevCropObj = extend({}, this.cropObj, {}, true);\n var prevObj = this.getCurrentObj();\n prevObj.objColl = extend([], this.objColl, [], true);\n prevObj.pointColl = extend([], this.pointColl, [], true);\n prevObj.afterCropActions = extend([], this.afterCropActions, [], true);\n this.objColl.push(this.activeObj);\n this.updateUndoRedoColl('shapeTransform', prevObj, prevObj.objColl, prevObj.pointColl, prevCropObj);\n this.objColl.pop();\n this.applyActObj();\n this.refreshActiveObj();\n this.refreshMainToolbar();\n };\n ImageEditor.prototype.drawShape = function (type, strokeWidth, strokeColor, fillColor, start, width, height) {\n if (!this.disabled && this.isImageLoaded) {\n this.redrawActObj();\n var objColl = extend([], this.objColl, [], true);\n this.togglePen = false;\n this.keyHistory = '';\n this.upperCanvas.style.display = 'block';\n this.refreshActiveObj();\n this.currObjType.shape = type;\n if (this.currObjType.shape.toLowerCase() !== 'freehanddraw' && this.currObjType.shape.toLowerCase() !== '') {\n this.activeObj.shape = this.currObjType.shape.toLowerCase();\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n if (isNullOrUndefined(this.activeObj.strokeSettings)) {\n this.activeObj.strokeSettings = this.strokeSettings;\n }\n this.activeObj.strokeSettings.strokeWidth = strokeWidth ? strokeWidth : this.activeObj.strokeSettings.strokeWidth;\n this.activeObj.strokeSettings.strokeColor = strokeColor ? strokeColor : this.activeObj.strokeSettings.strokeColor;\n this.activeObj.strokeSettings.fillColor = fillColor ? fillColor : this.activeObj.strokeSettings.fillColor;\n var tempWidth = this.destWidth > 100 ? 100 : this.destWidth / 2;\n var tempHeight = this.destHeight > 100 ? 100 : this.destHeight / 2;\n this.activeObj.activePoint.width = tempWidth;\n this.activeObj.activePoint.height = tempHeight;\n if (this.currObjType.shape.toLowerCase() === 'line' || this.currObjType.shape.toLowerCase() === 'arrow') {\n this.activeObj.lineDraw = 'horizontal';\n this.activeObj.activePoint.height /= 2;\n this.activeObj.activePoint.height -= 20;\n if (this.currObjType.shape.toLowerCase() === 'arrow') {\n this.activeObj.activePoint.width += 50;\n }\n }\n else if (this.currObjType.shape.toLowerCase() === 'rectangle') {\n this.activeObj.activePoint.width += this.activeObj.activePoint.width / 2;\n }\n this.setDimension(width, height);\n if (!isNullOrUndefined(start)) {\n this.activeObj.activePoint.startX = start.x;\n this.activeObj.activePoint.startY = start.y;\n this.activeObj.activePoint.endX = this.activeObj.activePoint.startX + this.activeObj.activePoint.width;\n this.activeObj.activePoint.endY = this.activeObj.activePoint.startY + this.activeObj.activePoint.height;\n }\n else {\n this.setCenterPoints();\n }\n if (this.currObjType.shape.toLowerCase() === 'arrow') {\n this.activeObj.triangleDirection = 'right';\n this.updateTrianglePoints(this.activeObj);\n }\n this.currObjType.isDragging = this.currObjType.isCustomCrop = false;\n this.activeObj.shapeDegree = this.degree;\n this.activeObj.shapeFlip = this.currFlipState;\n this.activeObj.textFlip = this.currFlipState;\n this.activeObj.flipObjColl = [];\n var shapeSettings = this.updatePreviousShapeSettings();\n var shapeChangingArgs = { action: 'insert', previousShapeSettings: shapeSettings,\n currentShapeSettings: shapeSettings };\n this.trigger('shapeChanging', shapeChangingArgs);\n this.updateShapeChangeEventArgs(shapeChangingArgs.currentShapeSettings);\n this.setDimension(width, height);\n this.drawObject('duplicate');\n this.renderQuickAccessToolbar();\n this.isShapeInserted = true;\n this.updateUndoRedoObj(objColl);\n this.refreshToolbar('shapes');\n this.updateToolbarItems();\n }\n }\n };\n ImageEditor.prototype.drawShapeText = function (text, fontFamily, fontSize, bold, italic, strokeColor, x, y) {\n if (!this.disabled && this.isImageLoaded) {\n if (this.currObjType.shape === 'freehanddraw') {\n this.apply();\n this.upperCanvas.style.cursor = 'default';\n this.currObjType.shape = '';\n }\n this.togglePen = false;\n this.redrawActObj();\n var prevObj = this.getCurrentObj();\n prevObj.objColl = extend([], this.objColl, [], true);\n prevObj.pointColl = extend([], this.pointColl, [], true);\n prevObj.afterCropActions = extend([], this.afterCropActions, [], true);\n this.keyHistory = '';\n this.refreshActiveObj();\n this.activeObj.shape = 'text';\n this.currObjType.isCustomCrop = false;\n this.currObjType.isText = this.currObjType.isInitialText = true;\n this.upperCanvas.style.display = 'block';\n this.currObjType.shape = this.activeObj.shape = 'text';\n if (isNullOrUndefined(this.activeObj.textSettings)) {\n this.activeObj.textSettings = this.textSettings;\n }\n if (isNullOrUndefined(this.activeObj.strokeSettings)) {\n this.activeObj.strokeSettings = this.strokeSettings;\n }\n this.activeObj.strokeSettings.strokeColor = strokeColor ? strokeColor : this.activeObj.strokeSettings.strokeColor;\n this.activeObj.textSettings.text = text ? text : this.activeObj.textSettings.text;\n this.activeObj.textSettings.fontFamily = fontFamily ? fontFamily : this.activeObj.textSettings.fontFamily;\n this.activeObj.textSettings.text = text ? text : this.activeObj.textSettings.text;\n this.activeObj.textSettings.fontFamily = fontFamily ? fontFamily : this.activeObj.textSettings.fontFamily;\n this.activeObj.textSettings.fontSize = fontSize ? fontSize : this.activeObj.textSettings.fontSize;\n this.activeObj.textSettings.bold = bold ? bold : this.activeObj.textSettings.bold;\n this.activeObj.textSettings.italic = italic ? italic : this.activeObj.textSettings.italic;\n if (isNullOrUndefined(this.activeObj.textSettings.fontSize)) {\n if (this.destWidth > this.destHeight) {\n this.activeObj.textSettings.fontSize = (this.destWidth / 15);\n }\n else {\n this.activeObj.textSettings.fontSize = (this.destHeight / 15);\n }\n if (this.activeObj.textSettings.fontSize < 20) {\n this.activeObj.textSettings.fontSize = 20;\n }\n }\n if (this.destWidth < 100) {\n this.activeObj.textSettings.fontSize = Math.floor((this.destWidth / 20));\n }\n else if (this.destHeight < 100) {\n this.activeObj.textSettings.fontSize = Math.floor((this.destHeight / 20));\n }\n this.activeObj.shapeDegree = this.degree;\n this.activeObj.shapeFlip = this.currFlipState;\n this.activeObj.flipObjColl = [];\n this.updateFontStyles();\n var width = this.upperContext.measureText(this.activeObj.textSettings.text).width +\n this.activeObj.textSettings.fontSize * 0.5;\n var height = this.activeObj.textSettings.fontSize + this.activeObj.textSettings.fontSize * 0.25;\n if (!isNullOrUndefined(x) && !isNullOrUndefined(y)) {\n this.activeObj.activePoint.startX = x;\n this.activeObj.activePoint.startY = y;\n this.activeObj.activePoint.endX = this.activeObj.activePoint.startX + width;\n this.activeObj.activePoint.endY = this.activeObj.activePoint.startY + height;\n }\n else {\n this.setCenterPoints(true, width, height);\n }\n var shapeSettings = this.updatePreviousShapeSettings();\n var shapeChangingArgs = { action: 'insert', previousShapeSettings: shapeSettings,\n currentShapeSettings: shapeSettings };\n this.trigger('shapeChanging', shapeChangingArgs);\n this.updateShapeChangeEventArgs(shapeChangingArgs.currentShapeSettings);\n this.addLetter(this.activeObj.textSettings.text);\n this.activeObj.textFlip = this.currFlipState;\n this.updateFontRatio(this.activeObj);\n this.objColl.push(this.activeObj);\n var prevCropObj = extend({}, this.cropObj, {}, true);\n this.updateUndoRedoColl('shapeTransform', prevObj, prevObj.objColl, prevObj.pointColl, prevCropObj);\n this.redrawShape(this.objColl[this.objColl.length - 1]);\n this.renderQuickAccessToolbar();\n this.isShapeInserted = true;\n this.refreshToolbar('text');\n this.updateToolbarItems();\n }\n };\n ImageEditor.prototype.updateShapeChangeEventArgs = function (shapeSettings) {\n this.activeObj.currIndex = shapeSettings.id;\n this.activeObj.activePoint.startX = shapeSettings.startX;\n this.activeObj.activePoint.startY = shapeSettings.startY;\n this.activeObj.activePoint.width = shapeSettings.width;\n this.activeObj.activePoint.height = shapeSettings.height;\n this.activeObj.activePoint.endX = this.activeObj.activePoint.startX + this.activeObj.activePoint.width;\n this.activeObj.activePoint.endY = this.activeObj.activePoint.startY + this.activeObj.activePoint.height;\n this.activeObj.strokeSettings.strokeColor = shapeSettings.strokeColor;\n this.activeObj.strokeSettings.fillColor = shapeSettings.fillColor;\n switch (this.activeObj.shape) {\n case 'ellipse':\n this.activeObj.activePoint.width = shapeSettings.radius / 2;\n break;\n case 'line':\n case 'arrow':\n this.activeObj.activePoint.width = shapeSettings.length;\n break;\n case 'text':\n this.activeObj.keyHistory = shapeSettings.text;\n this.activeObj.textSettings.fontSize = shapeSettings.fontSize;\n this.activeObj.strokeSettings.strokeColor = shapeSettings.color;\n break;\n }\n if (this.activeObj.shape === 'text' && !isNullOrUndefined(this.activeObj.textSettings)) {\n for (var i = 0; i < shapeSettings.fontStyle.length; i++) {\n if (shapeSettings.fontStyle[i] === 'bold') {\n this.activeObj.textSettings.bold = true;\n }\n else if (shapeSettings.fontStyle[i] === 'italic') {\n this.activeObj.textSettings.italic = true;\n }\n else if (shapeSettings.fontStyle[i] === 'underline') {\n this.activeObj.textSettings.underline = true;\n }\n }\n }\n };\n ImageEditor.prototype.getObjDetails = function (obj) {\n var shapeDetails = {};\n shapeDetails.id = obj.currIndex;\n shapeDetails.type = this.toPascalCase(obj.shape);\n shapeDetails.startX = obj.activePoint.startX;\n shapeDetails.startY = obj.activePoint.startY;\n if (obj.shape === 'rectangle') {\n shapeDetails.width = obj.activePoint.width;\n shapeDetails.height = obj.activePoint.height;\n shapeDetails.strokeColor = obj.strokeSettings.strokeColor;\n shapeDetails.fillColor = obj.strokeSettings.fillColor;\n shapeDetails.strokeWidth = obj.strokeSettings.strokeWidth;\n }\n else if (obj.shape === 'ellipse') {\n shapeDetails.radius = obj.activePoint.width / 2;\n shapeDetails.strokeColor = obj.strokeSettings.strokeColor;\n shapeDetails.fillColor = obj.strokeSettings.fillColor;\n shapeDetails.strokeWidth = obj.strokeSettings.strokeWidth;\n }\n else if (obj.shape === 'line' || obj.shape === 'arrow') {\n shapeDetails.length = obj.activePoint.width;\n shapeDetails.strokeColor = obj.strokeSettings.strokeColor;\n shapeDetails.strokeWidth = obj.strokeSettings.strokeWidth;\n }\n else if (obj.shape === 'text') {\n shapeDetails.text = obj.keyHistory;\n shapeDetails.fontSize = obj.textSettings.fontSize;\n shapeDetails.color = obj.strokeSettings.strokeColor;\n shapeDetails.fontStyle = [];\n if (obj.textSettings.bold) {\n shapeDetails.fontStyle.push('bold');\n }\n if (obj.textSettings.italic) {\n shapeDetails.fontStyle.push('italic');\n }\n }\n return shapeDetails;\n };\n ImageEditor.prototype.getFreehandDrawDetails = function (index) {\n var shapeDetails = {};\n shapeDetails.id = this.pointColl[index].id;\n shapeDetails.type = ShapeType.FreehandDraw;\n shapeDetails.points = extend([], this.pointColl[index].points);\n shapeDetails.strokeColor = this.pointColl[index].strokeColor;\n shapeDetails.strokeWidth = this.pointColl[index].strokeWidth;\n return shapeDetails;\n };\n ImageEditor.prototype.isPointsInRange = function (x, y) {\n var inRange = false;\n if (!isNullOrUndefined(x) && !isNullOrUndefined(y) && x >= 0 && y >= 0 &&\n x <= this.lowerCanvas.width && y <= this.lowerCanvas.width) {\n inRange = true;\n }\n return inRange;\n };\n ImageEditor.prototype.clearActObj = function () {\n if (this.textArea.style.display === 'none') {\n this.refreshActiveObj();\n this.applyActObj();\n this.refreshActiveObj();\n this.currObjType.isCustomCrop = false;\n }\n };\n ImageEditor.prototype.applyPenDraw = function () {\n if (this.currObjType.shape === 'freehanddraw') {\n this.apply();\n this.upperCanvas.style.cursor = 'default';\n this.currObjType.shape = '';\n }\n this.clearActObj();\n };\n ImageEditor.prototype.drawRotatedImage = function (degree) {\n if (degree === 0) {\n this.degree = 0;\n }\n else {\n this.degree += degree;\n }\n if (this.degree === 360 || this.degree === -360) {\n this.degree = 0;\n }\n this.setDestinationPoints();\n var tempObjColl = extend([], this.objColl, [], true);\n var tempActiveObj = extend({}, this.activeObj, {}, true);\n this.objColl = [];\n this.refreshActiveObj();\n if (!this.isReverseRotate) {\n this.updateCurrentTransformedState('initial');\n }\n this.rotateDegree(degree);\n if (!this.isReverseRotate) {\n this.updateCurrentTransformedState('reverse');\n this.rotateFlipColl.push(degree);\n }\n if (this.rotateFlipColl.length === 1) {\n this.setClientTransformedDimension();\n }\n this.objColl = extend([], tempObjColl, [], true);\n this.activeObj = extend({}, tempActiveObj, {}, true);\n if (this.isCircleCrop) {\n this.cropCircle(this.lowerContext);\n }\n this.redrawObj(degree);\n this.refreshActiveObj();\n if (degree > 0) {\n this.rotateFreehandDrawColl();\n }\n else {\n for (var i = 0; i < 3; i++) {\n this.rotateFreehandDrawColl();\n }\n }\n this.freehandRedraw(this.lowerContext);\n this.updateCurrSelectionPoint(degree);\n };\n ImageEditor.prototype.updateCurrSelectionPoint = function (degree) {\n if (!isNullOrUndefined(this.currSelectionPoint) && !isNullOrUndefined(this.currDestinationPoint)) {\n var activeObj = extend({}, this.activeObj, {}, true);\n var objColl = extend([], this.objColl, [], true);\n var srcPoints = { startX: this.srcLeft, startY: this.srcTop, width: this.srcWidth, height: this.srcHeight };\n var destPoints = { startX: this.destLeft, startY: this.destTop, width: this.destWidth, height: this.destHeight };\n this.objColl = [];\n this.objColl.push(extend({}, this.currSelectionPoint, {}, true));\n this.srcLeft = 0;\n this.srcTop = 0;\n this.srcWidth = this.baseImg.width;\n this.srcHeight = this.baseImg.height;\n this.destLeft = this.currDestinationPoint.startX;\n this.destTop = this.currDestinationPoint.startY;\n this.destWidth = this.currDestinationPoint.width;\n this.destHeight = this.currDestinationPoint.height;\n if (typeof (degree) === 'number') {\n this.setDestinationPoints();\n this.setClientTransformedDimension();\n }\n this.objColl[0].shapeFlip = '';\n this.redrawObj(degree);\n this.currSelectionPoint = extend({}, this.objColl[0], {}, true);\n this.currDestinationPoint = { startX: this.destLeft, startY: this.destTop, width: this.destWidth, height: this.destHeight };\n this.objColl = objColl;\n this.activeObj = activeObj;\n this.srcLeft = srcPoints.startX;\n this.srcTop = srcPoints.startY;\n this.srcWidth = srcPoints.width;\n this.srcHeight = srcPoints.height;\n this.destLeft = destPoints.startX;\n this.destTop = destPoints.startY;\n this.destWidth = destPoints.width;\n this.destHeight = destPoints.height;\n }\n };\n ImageEditor.prototype.setClientTransformedDimension = function (isPreventDimension) {\n if (this.degree % 90 === 0 && this.degree % 180 !== 0) {\n this.destLeft = (this.lowerCanvas.width - this.destHeight) / 2;\n this.destTop = (this.lowerCanvas.height - this.destWidth) / 2;\n var temp = this.destWidth;\n this.destWidth = this.destHeight;\n this.destHeight = temp;\n }\n else {\n if (isNullOrUndefined(isPreventDimension)) {\n this.destLeft = (this.lowerCanvas.width - this.destWidth) / 2;\n this.destTop = (this.lowerCanvas.height - this.destHeight) / 2;\n }\n }\n };\n ImageEditor.prototype.popForDefaultTransformedState = function (collection) {\n var rotateRight = 0;\n var rotateleft = 0;\n var horizontal = 0;\n var vertical = 0;\n for (var i = 0; i < collection.length; i++) {\n if (collection[i] === 90 || collection[i] === 'rotateRight') {\n rotateRight++;\n rotateleft = 0;\n horizontal = 0;\n vertical = 0;\n if (rotateRight === 4) {\n collection.pop();\n collection.pop();\n collection.pop();\n collection.pop();\n }\n }\n else if (collection[i] === -90 || collection[i] === 'rotateLeft') {\n rotateleft++;\n rotateRight = 0;\n horizontal = 0;\n vertical = 0;\n if (rotateleft === 4) {\n collection.pop();\n collection.pop();\n collection.pop();\n collection.pop();\n }\n }\n else if (collection[i] === 'horizontal' || collection[i] === 'horizontalflip') {\n horizontal++;\n rotateleft = 0;\n rotateRight = 0;\n vertical = 0;\n if (horizontal === 2) {\n collection.pop();\n collection.pop();\n }\n }\n else if (collection[i] === 'vertical' || collection[i] === 'verticalflip') {\n vertical++;\n horizontal = 0;\n rotateleft = 0;\n rotateRight = 0;\n if (vertical === 2) {\n collection.pop();\n collection.pop();\n }\n }\n }\n return collection;\n };\n ImageEditor.prototype.popForDefaultFlipState = function (collection) {\n for (var i = 0; i < collection.length; i++) {\n if (!isNullOrUndefined(collection[i + 3])) {\n if ((collection[i] === 'horizontal' || collection[i] === 'horizontalFlip')\n && (collection[i + 1] === 'vertical' || collection[i] === 'verticalFlip') &&\n (collection[i + 2] === 'horizontal' || collection[i] === 'horizontalFlip') &&\n (collection[i + 3] === 'vertical' || collection[i] === 'verticalFlip')) {\n collection.pop();\n collection.pop();\n collection.pop();\n collection.pop();\n }\n else if ((collection[i] === 'vertical' || collection[i] === 'verticalFlip')\n && (collection[i + 1] === 'horizontal' || collection[i + 1] === 'horizontalFlip') &&\n (collection[i + 2] === 'vertical' || collection[i] === 'verticalFlip') &&\n (collection[i + 3] === 'horizontal' || collection[i] === 'horizontalFlip')) {\n collection.pop();\n collection.pop();\n collection.pop();\n collection.pop();\n }\n }\n }\n return collection;\n };\n ImageEditor.prototype.popForDefaultRotateState = function (collection) {\n for (var i = 0; i < collection.length; i++) {\n if (!isNullOrUndefined(collection[i + 1])) {\n if ((collection[i] === 90 || collection[i] === 'rotateRight') &&\n (collection[i + 1] === -90 || collection[i] === 'rotateLeft')) {\n collection.pop();\n collection.pop();\n }\n else if ((collection[i] === -90 || collection[i] === 'rotateLeft') &&\n (collection[i + 1] === 90 || collection[i] === 'rotateRight')) {\n collection.pop();\n collection.pop();\n }\n }\n }\n return collection;\n };\n ImageEditor.prototype.alignRotateFlipColl = function (collection, isRotateFlipCollection) {\n collection = this.popForDefaultTransformedState(collection);\n collection = this.popForDefaultFlipState(collection);\n collection = this.popForDefaultRotateState(collection);\n if (collection.length === 0 && isRotateFlipCollection) {\n this.degree = 0;\n this.currFlipState = '';\n }\n return collection;\n };\n ImageEditor.prototype.updateFlipColl = function (direction) {\n if (this.flipColl.length === 0) {\n this.flipColl.push(direction);\n }\n else {\n if (this.flipColl[this.flipColl.length - 1] === 'direction') {\n this.flipColl.pop();\n }\n else {\n this.flipColl.push(direction);\n }\n }\n if (this.flipColl.length >= 4) {\n if (this.flipColl[this.flipColl.length - 1] === 'horizontal' && this.flipColl[this.flipColl.length - 2] === 'vertical' &&\n this.flipColl[this.flipColl.length - 3] === 'horizontal' && this.flipColl[this.flipColl.length - 4] === 'vertical') {\n for (var i = 0; i < 4; i++) {\n this.flipColl.pop();\n }\n }\n else if (this.flipColl[this.flipColl.length - 1] === 'vertical' && this.flipColl[this.flipColl.length - 2] === 'horizontal' &&\n this.flipColl[this.flipColl.length - 3] === 'vertical' && this.flipColl[this.flipColl.length - 4] === 'horizontal') {\n for (var i = 0; i < 4; i++) {\n this.flipColl.pop();\n }\n }\n }\n };\n ImageEditor.prototype.horizontalFlip = function () {\n this.lowerContext.translate(this.lowerContext.canvas.width, 0);\n this.lowerContext.scale(-1, 1);\n this.upperContext.translate(this.upperContext.canvas.width, 0);\n this.upperContext.scale(-1, 1);\n };\n ImageEditor.prototype.verticalFlip = function () {\n this.lowerContext.translate(0, this.lowerContext.canvas.height);\n this.lowerContext.scale(1, -1);\n this.upperContext.translate(0, this.upperContext.canvas.height);\n this.upperContext.scale(1, -1);\n };\n ImageEditor.prototype.updateFlipState = function (direction) {\n if (direction === 'horizontal' && this.degree % 90 === 0 && this.degree % 180 !== 0) {\n this.verticalFlip();\n }\n else if (direction === 'vertical' && this.degree % 90 === 0 && this.degree % 180 !== 0) {\n this.horizontalFlip();\n }\n else if (direction === 'horizontal') {\n this.horizontalFlip();\n }\n else if (direction === 'vertical') {\n this.verticalFlip();\n }\n };\n ImageEditor.prototype.setDestinationPoints = function () {\n var maxDimension;\n if (this.degree % 90 === 0 && this.degree % 180 !== 0) {\n maxDimension = this.calcMaxDimension(this.srcHeight, this.srcWidth);\n if (this.isRotateZoom) {\n maxDimension.width += (maxDimension.width * this.zoomFactor);\n maxDimension.height += (maxDimension.height * this.zoomFactor);\n this.destWidth = maxDimension.height;\n this.destHeight = maxDimension.width;\n }\n this.destLeft = (this.lowerCanvas.clientWidth - maxDimension.height) / 2;\n this.destTop = (this.lowerCanvas.clientHeight - maxDimension.width) / 2;\n this.destWidth = maxDimension.height;\n this.destHeight = maxDimension.width;\n }\n else {\n maxDimension = this.calcMaxDimension(this.srcWidth, this.srcHeight);\n if (this.isRotateZoom) {\n maxDimension.width += (maxDimension.width * this.zoomFactor);\n maxDimension.height += (maxDimension.height * this.zoomFactor);\n this.destWidth = maxDimension.width;\n this.destHeight = maxDimension.height;\n }\n this.destLeft = (this.lowerCanvas.clientWidth - maxDimension.width) / 2;\n this.destTop = (this.lowerCanvas.clientHeight - maxDimension.height) / 2;\n this.destWidth = maxDimension.width;\n this.destHeight = maxDimension.height;\n }\n };\n ImageEditor.prototype.rotatedFlip = function () {\n this.isReverseFlip = true;\n var tempCurrFlipState = this.currFlipState;\n var tempFlipColl = this.flipColl;\n var tempObjColl = extend([], this.objColl, [], true);\n var tempActiveObj = extend({}, this.activeObj, {}, true);\n this.flipColl = [];\n this.objColl = [];\n this.refreshActiveObj();\n this.currentTransformedState('initial');\n var temp = this.lowerContext.filter;\n this.updateBrightnessFilter();\n this.lowerContext.drawImage(this.baseImg, this.srcLeft, this.srcTop, this.srcWidth, this.srcHeight, this.destLeft, this.destTop, this.destWidth, this.destHeight);\n this.lowerContext.filter = temp;\n this.currentTransformedState('reverse', true);\n if (tempCurrFlipState === '' && this.currFlipState !== '') {\n tempCurrFlipState = this.currFlipState;\n }\n this.currFlipState = tempCurrFlipState;\n this.flipColl = tempFlipColl;\n this.objColl = extend([], tempObjColl, [], true);\n this.lowerContext.filter = 'none';\n this.iterateObjColl();\n this.lowerContext.filter = temp;\n if (tempActiveObj.activePoint.width !== 0) {\n this.activeObj = extend({}, tempActiveObj, {}, true);\n }\n this.isReverseFlip = false;\n };\n ImageEditor.prototype.getFilterValue = function (value) {\n var filterValue;\n if (value === 0) {\n filterValue = 1;\n }\n else {\n filterValue = 1 + ((value * 0.5) / 100);\n }\n return filterValue;\n };\n ImageEditor.prototype.setFilterValue = function (value) {\n var filterValue;\n if (value === 1) {\n filterValue = 0;\n }\n else {\n filterValue = ((value - 1) * 100) / 0.5;\n }\n return Math.round(filterValue);\n };\n ImageEditor.prototype.getSaturationFilterValue = function (value) {\n var filterValue;\n if (value === 0) {\n filterValue = 1;\n }\n else {\n filterValue = 1 + (value / 100);\n }\n return filterValue;\n };\n ImageEditor.prototype.setSaturationFilterValue = function (value) {\n var filterValue;\n if (value === 1) {\n filterValue = 0;\n }\n else {\n filterValue = (value - 1) * 100;\n }\n return Math.round(filterValue);\n };\n ImageEditor.prototype.getBlackAndWhiteData = function (imageData) {\n for (var i = 0; i < imageData.data.length; i += 4) {\n var count = imageData.data[i] + imageData.data[i + 1] + imageData.data[i + 2];\n var colour = 0;\n if (count > 383) {\n colour = 255;\n }\n imageData.data[i] = colour;\n imageData.data[i + 1] = colour;\n imageData.data[i + 2] = colour;\n imageData.data[i + 3] = 255;\n }\n return imageData;\n };\n ImageEditor.prototype.setBrightness = function (value) {\n this.applyPenDraw();\n this.adjustmentLevel.brightness = value;\n value = this.getFilterValue(value);\n var prevCropObj = extend({}, this.cropObj, {}, true);\n var prevObj = this.getCurrentObj();\n prevObj.objColl = extend([], this.objColl, [], true);\n prevObj.pointColl = extend([], this.pointColl, [], true);\n prevObj.afterCropActions = extend([], this.afterCropActions, [], true);\n this.updateAdjustment('brightness', value);\n this.updateUndoRedoColl('brightness', prevObj, prevObj.objColl, prevObj.pointColl, prevCropObj);\n };\n ImageEditor.prototype.setContrast = function (value) {\n this.applyPenDraw();\n this.adjustmentLevel.contrast = value;\n value = this.getFilterValue(value);\n value *= 100;\n var prevCropObj = extend({}, this.cropObj, {}, true);\n var prevObj = this.getCurrentObj();\n prevObj.objColl = extend([], this.objColl, [], true);\n prevObj.pointColl = extend([], this.pointColl, [], true);\n prevObj.afterCropActions = extend([], this.afterCropActions, [], true);\n this.updateAdjustment('contrast', value);\n this.updateUndoRedoColl('contrast', prevObj, prevObj.objColl, prevObj.pointColl, prevCropObj);\n };\n ImageEditor.prototype.setHue = function (value) {\n this.applyPenDraw();\n this.adjustmentLevel.hue = value;\n value *= 3;\n var prevCropObj = extend({}, this.cropObj, {}, true);\n var prevObj = this.getCurrentObj();\n prevObj.objColl = extend([], this.objColl, [], true);\n prevObj.pointColl = extend([], this.pointColl, [], true);\n prevObj.afterCropActions = extend([], this.afterCropActions, [], true);\n this.updateAdjustment('hue', value);\n this.updateUndoRedoColl('hue', prevObj, prevObj.objColl, prevObj.pointColl, prevCropObj);\n };\n ImageEditor.prototype.setSaturation = function (value) {\n this.applyPenDraw();\n this.adjustmentLevel.saturation = value;\n value = this.getSaturationFilterValue(value);\n value *= 100;\n var prevCropObj = extend({}, this.cropObj, {}, true);\n var prevObj = this.getCurrentObj();\n prevObj.objColl = extend([], this.objColl, [], true);\n prevObj.pointColl = extend([], this.pointColl, [], true);\n prevObj.afterCropActions = extend([], this.afterCropActions, [], true);\n this.updateAdjustment('saturation', value);\n this.updateUndoRedoColl('saturation', prevObj, prevObj.objColl, prevObj.pointColl, prevCropObj);\n };\n ImageEditor.prototype.setOpacity = function (value) {\n this.applyPenDraw();\n this.adjustmentLevel.opacity = value;\n if (value >= 50) {\n value /= 100;\n }\n else if (value === 40) {\n value = 0.45;\n }\n else if (value === 30) {\n value = 0.40;\n }\n else if (value === 20) {\n value = 0.35;\n }\n else if (value === 10) {\n value = 0.30;\n }\n else if (value === 0) {\n value = 0.25;\n }\n var prevCropObj = extend({}, this.cropObj, {}, true);\n var prevObj = this.getCurrentObj();\n prevObj.objColl = extend([], this.objColl, [], true);\n prevObj.pointColl = extend([], this.pointColl, [], true);\n prevObj.afterCropActions = extend([], this.afterCropActions, [], true);\n this.updateAdjustment('opacity', value);\n this.updateUndoRedoColl('opacity', prevObj, prevObj.objColl, prevObj.pointColl, prevCropObj);\n };\n ImageEditor.prototype.setBlur = function (value) {\n this.applyPenDraw();\n this.adjustmentLevel.blur = value;\n value /= 20;\n // Since 0.5 is not working in blur we consider from 1\n value += 0.5;\n var prevCropObj = extend({}, this.cropObj, {}, true);\n var prevObj = this.getCurrentObj();\n prevObj.objColl = extend([], this.objColl, [], true);\n prevObj.pointColl = extend([], this.pointColl, [], true);\n prevObj.afterCropActions = extend([], this.afterCropActions, [], true);\n this.updateAdjustment('blur', value);\n this.updateUndoRedoColl('blur', prevObj, prevObj.objColl, prevObj.pointColl, prevCropObj);\n };\n ImageEditor.prototype.setExposure = function (value) {\n this.applyPenDraw();\n this.adjustmentLevel.exposure = value;\n value = this.getFilterValue(value);\n var prevCropObj = extend({}, this.cropObj, {}, true);\n var prevObj = this.getCurrentObj();\n prevObj.objColl = extend([], this.objColl, [], true);\n prevObj.pointColl = extend([], this.pointColl, [], true);\n prevObj.afterCropActions = extend([], this.afterCropActions, [], true);\n this.updateAdjustment('exposure', value);\n this.updateUndoRedoColl('exposure', prevObj, prevObj.objColl, prevObj.pointColl, prevCropObj);\n };\n ImageEditor.prototype.setFilter = function (type) {\n type = type.toLowerCase();\n this.applyPenDraw();\n var prevFilter = this.currentFilter;\n var prevCropObj = extend({}, this.cropObj, {}, true);\n var prevObj = this.getCurrentObj();\n prevObj.objColl = extend([], this.objColl, [], true);\n prevObj.pointColl = extend([], this.pointColl, [], true);\n prevObj.afterCropActions = extend([], this.afterCropActions, [], true);\n this.updateAdjustment(type, null);\n this.updateUndoRedoColl(type, prevObj, prevObj.objColl, prevObj.pointColl, prevCropObj, null, null, prevFilter);\n };\n ImageEditor.prototype.renderImage = function (isMouseWheel) {\n var temp = this.lowerContext.filter;\n this.applyActObj();\n this.upperContext.clearRect(0, 0, this.lowerCanvas.width, this.lowerCanvas.height);\n this.lowerContext.clearRect(0, 0, this.lowerCanvas.width, this.lowerCanvas.height);\n if (isMouseWheel) {\n this.iterateRotateFlipColl(this.lowerContext, 'initial');\n }\n else {\n if (this.zoomFactor > 0) {\n this.isRotateZoom = true;\n }\n this.updateCurrentTransformedState('initial');\n }\n this.updateBrightnessFilter();\n this.setDestPointsForFlipState();\n this.lowerContext.drawImage(this.baseImg, this.srcLeft, this.srcTop, this.srcWidth, this.srcHeight, this.destLeft, this.destTop, this.destWidth, this.destHeight);\n this.setDestPointsForFlipState();\n if (isMouseWheel) {\n this.iterateRotateFlipColl(this.lowerContext, 'reverse');\n }\n else {\n this.updateCurrentTransformedState('reverse');\n this.isRotateZoom = false;\n }\n this.lowerContext.filter = 'none';\n this.iterateObjColl();\n this.freehandRedraw(this.lowerContext);\n this.lowerContext.filter = temp;\n if (this.isCircleCrop || (!isNullOrUndefined(this.currSelectionPoint) && this.currSelectionPoint.shape === 'crop-circle')) {\n this.cropCircle(this.lowerContext);\n }\n };\n ImageEditor.prototype.updateTextBox = function (obj) {\n this.upperContext.clearRect(0, 0, this.lowerCanvas.width, this.lowerCanvas.height);\n this.lowerContext.clearRect(0, 0, this.lowerCanvas.width, this.lowerCanvas.height);\n this.redrawImgWithObj();\n this.destroyQuickAccessToolbar();\n this.textArea.style.display = 'block';\n this.textArea.style.fontFamily = obj.textSettings.fontFamily;\n this.textArea.style.fontSize = obj.textSettings.fontSize + 'px';\n this.textArea.style.color = obj.strokeSettings.strokeColor;\n this.textArea.style.fontWeight = obj.textSettings.bold ? 'bold' : 'normal';\n this.textArea.style.fontStyle = obj.textSettings.italic ? 'italic' : 'normal';\n this.textArea.style.border = '2px solid ' + this.themeColl[this.theme]['primaryColor'];\n this.textArea.value = obj.keyHistory;\n this.activeObj = extend({}, obj, {}, true);\n this.updateFontStyles();\n this.textArea.style.width = this.activeObj.activePoint.width + 'px';\n };\n ImageEditor.prototype.drawNewSelection = function (type, startX, startY, width, height) {\n var points;\n var cropShape = 'crop-' + type;\n if (cropShape.toLowerCase() === 'crop-custom') {\n if (this.currObjType.shape === '' || this.currObjType.shape === 'crop-custom') {\n this.drawCustomSelection('crop-custom', startX, startY, width, height);\n }\n }\n else if (cropShape.toLowerCase() === 'crop-canvas') {\n this.upperCanvas.style.display = 'block';\n this.dragCanvas = true;\n }\n else {\n this.currObjType.isCustomCrop = false;\n this.currObjType.shape = cropShape.toLowerCase();\n if (width && height) {\n points = { startX: startX, startY: startY, endX: startX + width, endY: startY + height,\n width: width, height: height };\n }\n else if (width && cropShape === 'crop-circle') {\n points = { startX: startX, startY: startY, endX: startX + width, endY: startY + width,\n width: width, height: width };\n }\n this.activeObj.shape = cropShape.toLowerCase();\n this.updateSelectionInsert();\n if (this.activeObj.activePoint.startX !== 0 || this.activeObj.activePoint.startY !== 0 ||\n this.activeObj.activePoint.width !== 0 || this.activeObj.activePoint.height !== 0) {\n points = { startX: this.activeObj.activePoint.startX, startY: this.activeObj.activePoint.startY,\n endX: this.activeObj.activePoint.endX, endY: this.activeObj.activePoint.endY,\n width: this.activeObj.activePoint.width, height: this.activeObj.activePoint.height };\n }\n this.drawObject('duplicate', null, true, points);\n }\n };\n ImageEditor.prototype.setDestPointsForFlipState = function () {\n if (this.getCurrentPanRegion() !== '') {\n if (this.getCurrentPanRegion() === 'horizontal') {\n this.destLeft = this.lowerCanvas.clientWidth - (this.destWidth + this.destLeft);\n }\n else if (this.getCurrentPanRegion() === 'vertical') {\n this.destTop = this.lowerCanvas.clientHeight - (this.destHeight + this.destTop);\n }\n else {\n this.destLeft = this.lowerCanvas.clientWidth - (this.destWidth + this.destLeft);\n this.destTop = this.lowerCanvas.clientHeight - (this.destHeight + this.destTop);\n }\n }\n };\n ImageEditor.prototype.performUndoDefaultAction = function (obj) {\n this.lowerContext.filter = obj.previousObj.filter;\n this.objColl = [];\n this.pointColl = [];\n this.freehandCounter = 0;\n this.setCurrentObj(obj.previousObj);\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n this.refreshActiveObj();\n this.destLeft = obj.previousObj.destPoints.startX;\n this.destTop = obj.previousObj.destPoints.startY;\n var activeObj = extend({}, this.activeObj, {}, true);\n this.objColl = extend([], obj.previousObjColl, [], true);\n this.pointColl = extend([], obj.previousPointColl, [], true);\n this.freehandCounter = this.pointColl.length;\n this.lowerContext.filter = 'none';\n this.zoomObjColl();\n this.zoomFreehandDrawColl();\n this.lowerContext.filter = obj.previousObj.filter;\n this.activeObj = activeObj;\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n if (this.activeObj.activePoint.width !== 0 && this.activeObj.activePoint.height !== 0) {\n this.drawObject('duplicate');\n }\n };\n ImageEditor.prototype.setAdjustment = function (type) {\n var splitWords = this.lowerContext.filter.split(' ');\n var value;\n var valueArr;\n switch (type) {\n case 'brightness':\n valueArr = splitWords[0].split('(');\n value = parseFloat(valueArr[1].split(')')[0]);\n this.adjustmentLevel.brightness = this.setFilterValue(value);\n break;\n case 'contrast':\n valueArr = splitWords[1].split('(');\n value = parseFloat(valueArr[1].split(')')[0]);\n value /= 100;\n this.adjustmentLevel.contrast = this.setFilterValue(value);\n break;\n case 'hue':\n valueArr = splitWords[2].split('(');\n value = parseFloat(valueArr[1].split(')')[0]);\n value /= 3;\n this.adjustmentLevel.hue = value;\n break;\n case 'saturation':\n valueArr = splitWords[3].split('(');\n value = parseFloat(valueArr[1].split(')')[0]);\n value /= 100;\n this.adjustmentLevel.saturation = this.setSaturationFilterValue(value);\n break;\n case 'opacity':\n valueArr = splitWords[4].split('(');\n value = parseFloat(valueArr[1].split(')')[0]);\n if (value === 0.45) {\n value = 40;\n }\n else if (value === 0.40) {\n value = 30;\n }\n else if (value === 0.35) {\n value = 20;\n }\n else if (value === 0.30) {\n value = 10;\n }\n else if (value === 0.25) {\n value = 0;\n }\n else {\n value *= 100;\n }\n this.adjustmentLevel.opacity = value;\n break;\n case 'blur':\n valueArr = splitWords[5].split('(');\n value = parseFloat(valueArr[1].split(')')[0]);\n value *= 20;\n this.adjustmentLevel.blur = value;\n break;\n case 'exposure':\n valueArr = splitWords[0].split('(');\n value = parseFloat(valueArr[1].split(')')[0]);\n this.adjustmentLevel.exposure = this.setFilterValue(value);\n break;\n }\n };\n ImageEditor.prototype.updateFilter = function (type, previousFilter) {\n if (type === 'default' || type === 'chrome' || type === 'cold' ||\n type === 'warm' || type === 'grayscale' || type === 'blackandwhite' ||\n type === 'sepia' || type === 'invert' || type === 'sharpen') {\n var selEle = this.element.querySelector('.e-contextual-toolbar-wrapper .e-toolbar-item.e-selected');\n if (selEle) {\n selEle.classList.remove('e-selected');\n }\n var filterCanvas = document.getElementById(this.element.id + '_' + type + 'Canvas');\n if (filterCanvas) {\n filterCanvas.parentElement.classList.add('e-selected');\n }\n if (!isNullOrUndefined(previousFilter)) {\n this.currentFilter = previousFilter;\n }\n else {\n this.currentFilter = this.element.id + '_' + type;\n }\n }\n };\n ImageEditor.prototype.rotateImage = function (degree) {\n var isRotate = false;\n if (!this.disabled && this.isImageLoaded && (degree % 90 === 0)) {\n var transitionArgs = { degree: degree, cancel: false };\n this.trigger('rotating', transitionArgs);\n if (!transitionArgs.cancel) {\n isRotate = true;\n var prevCropObj = extend({}, this.cropObj, {}, true);\n var prevObj = void 0;\n if (isNullOrUndefined(this.transformCurrentObj)) {\n prevObj = this.getCurrentObj();\n prevObj.objColl = extend([], this.objColl, null, true);\n prevObj.pointColl = extend({}, this.pointColl, null, true);\n prevObj.afterCropActions = extend([], this.afterCropActions, [], true);\n }\n this.afterCropActions.push(degree === 90 ? 'rotateRight' : 'rotateLeft');\n var splitWords = [];\n var activeObjShape = void 0;\n if (!isNullOrUndefined(this.activeObj.activePoint) && !isNullOrUndefined(this.activeObj.shape)) {\n if (this.activeObj.shape !== undefined) {\n splitWords = this.activeObj.shape.split('-');\n }\n if (this.currObjType.isCustomCrop || splitWords[0] === 'crop') {\n activeObjShape = this.currObjType.isCustomCrop ? 'custom' : splitWords[1];\n this.updateImageRatioForActObj();\n this.objColl.push(this.activeObj);\n this.refreshActiveObj();\n }\n }\n this.redrawActObj(null, null, true);\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n this.drawRotatedImage(degree);\n this.clearOuterCanvas(this.lowerContext);\n this.clearOuterCanvas(this.upperContext);\n if (this.isCircleCrop) {\n this.cropCircle(this.lowerContext);\n }\n if (!isNullOrUndefined(activeObjShape)) {\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n this.activeObj = extend({}, this.objColl[this.objColl.length - 1], {}, true);\n this.objColl.pop();\n this.drawObject('duplicate', this.activeObj);\n if (!this.isReverseRotate) {\n this.refreshToolbar('main', true, true);\n }\n }\n if (!this.isUndoRedo && isNullOrUndefined(this.transformCurrentObj)) {\n this.updateUndoRedoColl('rotate', prevObj, prevObj.objColl, prevObj.pointColl, prevCropObj);\n }\n this.isUndoRedo = false;\n if (isNullOrUndefined(this.activeObj.shape) && !this.isReverseRotate) {\n this.refreshMainToolbar();\n }\n else if (!this.isReverseRotate) {\n this.refreshToolbar('main', true, true);\n }\n this.rotateFlipColl = this.alignRotateFlipColl(this.rotateFlipColl, true);\n }\n }\n return isRotate;\n };\n ImageEditor.prototype.flipImage = function (direction) {\n if (!this.disabled && this.isImageLoaded) {\n var transitionArgs = { direction: direction, cancel: false };\n this.trigger('flipping', transitionArgs);\n if (transitionArgs.cancel) {\n return;\n }\n var prevCropObj = extend({}, this.cropObj, {}, true);\n var prevObj = void 0;\n if (isNullOrUndefined(this.transformCurrentObj)) {\n prevObj = this.getCurrentObj();\n prevObj.objColl = extend([], this.objColl, null, true);\n prevObj.pointColl = extend({}, this.pointColl, null, true);\n prevObj.afterCropActions = extend([], this.afterCropActions, [], true);\n }\n this.afterCropActions.push(direction.toLowerCase() === 'horizontal' ? 'horizontalflip' : 'verticalflip');\n var splitWords = [];\n var activeObjShape = void 0;\n if (!isNullOrUndefined(this.activeObj.activePoint)) {\n if (this.activeObj.shape !== undefined) {\n splitWords = this.activeObj.shape.split('-');\n }\n if (this.currObjType.isCustomCrop || splitWords[0] === 'crop') {\n activeObjShape = this.currObjType.isCustomCrop ? 'custom' : splitWords[1];\n this.updateImageRatioForActObj();\n this.objColl.push(this.activeObj);\n this.refreshActiveObj();\n }\n }\n this.redrawActObj(null, null, true);\n this.lowerContext.clearRect(0, 0, this.lowerCanvas.height, this.lowerCanvas.width);\n this.lowerContext.clearRect(0, 0, this.lowerCanvas.width, this.lowerCanvas.height);\n this.upperContext.clearRect(0, 0, this.lowerCanvas.height, this.lowerCanvas.width);\n this.upperContext.clearRect(0, 0, this.lowerCanvas.width, this.lowerCanvas.height);\n var tempObjColl = extend([], this.objColl, [], true);\n var tempActiveObj = extend({}, this.activeObj, {}, true);\n this.objColl = [];\n this.refreshActiveObj();\n if (!this.isReverseFlip) {\n this.updateCurrentTransformedState('initial');\n }\n if (direction.toLowerCase() === 'horizontal') {\n this.updateFlipState(direction.toLowerCase());\n if (this.currFlipState.toLowerCase() === 'horizontal') {\n this.currFlipState = '';\n }\n else {\n this.currFlipState = 'horizontal';\n }\n }\n else {\n this.updateFlipState(direction.toLowerCase());\n if (this.currFlipState.toLowerCase() === 'vertical') {\n this.currFlipState = '';\n }\n else {\n this.currFlipState = 'vertical';\n }\n }\n if (this.rotatedFlipCropSelection) {\n this.destLeft += this.totalPannedInternalPoint.x;\n this.destTop += this.totalPannedInternalPoint.y;\n }\n var temp = this.lowerContext.filter;\n this.updateBrightnessFilter();\n this.lowerContext.drawImage(this.baseImg, this.srcLeft, this.srcTop, this.srcWidth, this.srcHeight, this.destLeft, this.destTop, this.destWidth, this.destHeight);\n this.lowerContext.filter = temp;\n this.updateFlipState(direction.toLowerCase());\n if (!this.isReverseFlip) {\n this.updateCurrentTransformedState('reverse');\n this.updateFlipColl(direction.toLocaleLowerCase());\n this.rotateFlipColl.push(direction.toLowerCase());\n }\n if (this.rotateFlipColl.length === 1) {\n if (this.getCurrentPanRegion() === '') {\n this.setClientTransformedDimension();\n }\n else {\n this.setDestPointsForFlipState();\n }\n }\n if (this.isCircleCrop) {\n this.cropCircle(this.lowerContext);\n }\n this.objColl = extend([], tempObjColl, [], true);\n this.activeObj = extend({}, tempActiveObj, {}, true);\n for (var i = 0, len = this.objColl.length; i < len; i++) {\n if (this.objColl[i].flipObjColl.length === 0) {\n this.objColl[i].flipObjColl.push(direction);\n }\n else if (this.objColl[i].flipObjColl[this.objColl[i].flipObjColl.length - 1] === direction) {\n this.objColl[i].flipObjColl.pop();\n }\n else {\n this.objColl[i].flipObjColl.push(direction);\n }\n }\n this.redrawObj(direction.toLowerCase());\n var tempFilter = this.lowerContext.filter;\n this.lowerContext.filter = this.getDefaultFilter();\n this.iterateObjColl();\n if (!isNullOrUndefined(this.currSelectionPoint)) {\n tempObjColl = extend([], this.objColl, [], true);\n this.objColl = [];\n this.objColl.push(this.currSelectionPoint);\n this.redrawObj(direction.toLowerCase());\n this.currSelectionPoint = extend({}, this.objColl[0], {}, true);\n this.objColl = tempObjColl;\n }\n if (direction.toLowerCase() === 'horizontal' || direction.toLowerCase() === 'vertical') {\n this.flipFreehandrawColl(direction.toLowerCase());\n this.freehandRedraw(this.lowerContext);\n }\n else {\n this.freehandRedraw(this.lowerContext);\n }\n this.lowerContext.filter = tempFilter;\n this.refreshActiveObj();\n this.updateCurrSelectionPoint(direction.toLowerCase());\n if (!this.isUndoRedo && isNullOrUndefined(this.transformCurrentObj)) {\n this.updateUndoRedoColl('flip', prevObj, prevObj.objColl, prevObj.pointColl, prevCropObj);\n }\n this.isUndoRedo = false;\n this.clearOuterCanvas(this.lowerContext);\n this.clearOuterCanvas(this.upperContext);\n if (this.isCircleCrop) {\n this.cropCircle(this.lowerContext);\n }\n if (!isNullOrUndefined(activeObjShape)) {\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n this.activeObj = extend({}, this.objColl[this.objColl.length - 1], {}, true);\n this.objColl.pop();\n this.drawObject('duplicate', this.activeObj);\n if (!this.isReverseFlip) {\n this.refreshToolbar('main', true, true);\n }\n }\n if (isNullOrUndefined(this.activeObj.shape) && !this.isReverseFlip) {\n this.refreshMainToolbar();\n }\n else if (!this.isReverseFlip) {\n this.refreshToolbar('main', true, true);\n }\n this.rotateFlipColl = this.alignRotateFlipColl(this.rotateFlipColl, true);\n }\n };\n ImageEditor.prototype.componentToHex = function (rgb) {\n var hex = rgb.toString(16);\n return hex.length === 1 ? '0' + hex : hex;\n };\n ImageEditor.prototype.rgbToHex = function (r, g, b) {\n return '#' + this.componentToHex(r) + this.componentToHex(g) + this.componentToHex(b);\n };\n /**\n * Clears the current selection performed in the image editor.\n *\n * @returns {void}.\n */\n ImageEditor.prototype.clearSelection = function () {\n if (!this.disabled && this.isImageLoaded) {\n this.togglePen = false;\n this.refreshActiveObj();\n this.dragElement = '';\n this.dragPoint.startX = this.dragPoint.startY = this.dragPoint.endX = this.dragPoint.endY = 0;\n this.currObjType.shape = '';\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n this.currObjType.isActiveObj = true;\n this.currObjType.isCustomCrop = false;\n this.upperCanvas.style.cursor = 'default';\n }\n };\n /**\n * Crops an image based on the selection done in the image editor.\n *\n * @remarks\n * The selection can be done through programmatically using the 'select' method or through UI interactions.\n *\n * @returns {boolean}.\n *\n * {% codeBlock src='image-editor/crop/index.md' %}{% endcodeBlock %}\n *\n */\n ImageEditor.prototype.crop = function () {\n var isCrop = false;\n if (!this.disabled && this.isImageLoaded) {\n if (this.currObjType.isUndoAction) {\n this.refreshUndoRedoColl();\n }\n var splitWords = void 0;\n var transitionArgs = { cancel: false, startPoint: { x: this.activeObj.activePoint.startX, y: this.activeObj.activePoint.startY }, endPoint: { x: this.activeObj.activePoint.endX, y: this.activeObj.activePoint.endY } };\n this.trigger('cropping', transitionArgs);\n if (!transitionArgs.cancel) {\n if (this.activeObj.shape !== undefined) {\n splitWords = this.activeObj.shape.split('-');\n }\n if (!this.disabled && this.activeObj.horTopLine !== undefined && (this.currObjType.isCustomCrop || splitWords[0] === 'crop')) {\n isCrop = true;\n var prevCropObj = extend({}, this.cropObj, {}, true);\n var prevObj = extend({}, this.previousCropCurrentObj, {}, true);\n this.cropImg();\n this.zoomFactor = 0;\n this.updateUndoRedoColl('crop', prevObj, prevObj.objColl, prevObj.pointColl, prevCropObj, null, null, null, this.isCircleCrop);\n this.updateCurrentUndoRedoColl('ok');\n this.refreshToolbar('main');\n }\n }\n }\n return isCrop;\n };\n /**\n * Flips an image by horizontally or vertically in the image editor.\n *\n * @param { Direction } direction - Specifies the direction to flip the image.\n * A horizontal direction for horizontal flipping and vertical direction for vertical flipping.\n *\n * @remarks\n * It flips the shapes including rectangle, circle, line, text, and freehand drawings.\n *\n * @returns {void}.\n *\n * {% codeBlock src='image-editor/zoom/index.md' %}{% endcodeBlock %}\n *\n */\n ImageEditor.prototype.flip = function (direction) {\n this.flipImage(direction);\n this.updateCurrentUndoRedoColl('ok');\n };\n /**\n * Returns an image as ImageData to load it in to a canvas.\n *\n * @remarks\n * The data returned from this method is directly drawn in a canvas using 'putImageData' method.\n * And then the user can get the base64 string from the canvas using toDataURL method.\n *\n * @returns {ImageData}.\n */\n ImageEditor.prototype.getImageData = function () {\n var canvas = this.exportChangesToCanvas();\n var data = canvas.getContext('2d').getImageData(0, 0, canvas.width, canvas.height);\n return data;\n };\n /**\n * Opens an image as URL or ImageData for editing in an image editor.\n *\n * @param {string | ImageData } data - Specifies url of the image or image data.\n *\n * @remarks\n * The supported file types are JPG, JPEG, PNG, and SVG.\n *\n * @returns {void}.\n */\n ImageEditor.prototype.open = function (data) {\n if (!this.disabled) {\n showSpinner(this.element);\n this.element.style.opacity = '0.5';\n var toolbar_12 = document.querySelector('#' + this.element.id + '_currPos');\n if (toolbar_12) {\n toolbar_12.style.display = 'none';\n }\n if (this.defToolbarItems.length === 0 &&\n (isNullOrUndefined(document.getElementById(this.element.id + '_toolbar')))) {\n if (isNullOrUndefined(this.toolbarTemplate)) {\n this.toolbarHeight = 0;\n }\n else if (!isNullOrUndefined(this.element.querySelector('#' + this.element.id + '_toolbarArea'))) {\n this.toolbarHeight = this.element.querySelector('#' + this.element.id + '_toolbarArea').clientHeight;\n }\n }\n this.reset();\n this.update();\n this.degree = 0;\n this.zoomFactor = 0;\n this.isImageLoaded = false;\n this.currSelectionPoint = null;\n var type = typeof (data);\n if (type === 'string') {\n var fileName = data.split('.');\n if (fileName.length > 1) {\n fileName = fileName[fileName.length - 2].split('/');\n this.fileName = fileName[fileName.length - 1];\n }\n else {\n this.fileName = 'ImageEditor';\n }\n if (!isNullOrUndefined(data.split('.')) &&\n !isNullOrUndefined(data.split('.')[2])) {\n var fileType = this.toPascalCase(data.split('.')[2]);\n if (fileType === 'JPG' || fileType === 'Jpg') {\n this.fileType = 'Jpeg';\n }\n else {\n this.fileType = fileType;\n }\n }\n else {\n this.fileType = null;\n }\n this.imageOnLoad(data);\n }\n else {\n this.fileName = 'ImageEditor';\n this.fileType = null;\n this.lowerCanvas = document.querySelector('#' + this.element.id + '_lowerCanvas');\n this.upperCanvas = document.querySelector('#' + this.element.id + '_upperCanvas');\n this.lowerContext = this.lowerCanvas.getContext('2d');\n this.upperContext = this.upperCanvas.getContext('2d');\n this.lowerContext.clearRect(0, 0, this.lowerCanvas.width, this.lowerCanvas.height);\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n this.inMemoryContext.clearRect(0, 0, this.inMemoryCanvas.width, this.inMemoryCanvas.height);\n this.inMemoryCanvas.width = this.baseImg.width = data.width;\n this.inMemoryCanvas.height = this.baseImg.height = data.height;\n this.inMemoryContext.putImageData(data, 0, 0);\n this.baseImg.src = this.inMemoryCanvas.toDataURL();\n }\n }\n };\n /**\n * Reset all the changes done in an image editor and revert to original image.\n *\n * @remarks\n * The undo redo collection also cleared while resetting the image editor.\n *\n * @returns {void}.\n */\n ImageEditor.prototype.reset = function () {\n if (!this.disabled && !this.isErrorImage) {\n this.inMemoryContext.clearRect(0, 0, this.lowerCanvas.width, this.lowerCanvas.height);\n this.inMemoryContext.clearRect(0, 0, this.lowerCanvas.height, this.lowerCanvas.width);\n this.lowerContext.clearRect(0, 0, this.lowerCanvas.width, this.lowerCanvas.height);\n this.lowerContext.clearRect(0, 0, this.lowerCanvas.height, this.lowerCanvas.width);\n this.upperContext.clearRect(0, 0, this.lowerCanvas.width, this.lowerCanvas.height);\n this.upperContext.clearRect(0, 0, this.lowerCanvas.height, this.lowerCanvas.width);\n this.lowerContext.filter = this.getDefaultFilter();\n this.refreshActiveObj();\n this.refreshToolbar('main');\n if (Browser.isDevice && document.getElementById(this.element.id + '_bottomToolbar')) {\n getComponent(document.getElementById(this.element.id + '_bottomToolbar'), 'toolbar').destroy();\n this.createBottomToolbar();\n }\n this.objColl = [];\n this.isImageLoaded = false;\n this.degree = this.undoRedoStep = 0;\n this.keyHistory = this.currFlipState = '';\n this.upperCanvas.style.display = 'block';\n this.togglePan = this.togglePen = false;\n this.upperCanvas.style.cursor = this.lowerCanvas.style.cursor = 'default';\n this.undoRedoColl = [];\n this.dragCanvas = this.isUndoRedo = false;\n this.tempKeyHistory = '';\n this.lowerContext.lineWidth = this.upperContext.lineWidth = undefined;\n this.touchEndPoint = {};\n this.currentToolbar = 'main';\n this.textStartPoints = { x: 0, y: 0 };\n this.fontSizeColl = [];\n this.currToolbar = '';\n this.textArea.value = this.textArea.textContent = '';\n this.textArea.style.display = 'none';\n this.strokeSettings = { strokeColor: '#fff', fillColor: '', strokeWidth: null };\n this.textSettings =\n { text: 'Enter Text', fontFamily: 'Arial', fontSize: null, fontRatio: null, bold: false, italic: false, underline: false };\n this.tempStrokeSettings = { strokeColor: '#fff', fillColor: '', strokeWidth: null };\n this.tempTextSettings =\n { text: 'Enter Text', fontFamily: 'Arial', fontSize: null, fontRatio: null, bold: false, italic: false, underline: false };\n this.timer = undefined;\n this.penStrokeWidth = undefined;\n this.currObjType.isUndoAction = this.isShapeInserted = false;\n this.undoRedoStep = 0;\n this.tempObjColl = undefined;\n this.adjustmentLevel = { brightness: 0, contrast: 0, hue: 0, opacity: 100, saturation: 0,\n blur: 0, exposure: 0, sharpen: false, bw: false };\n this.tempAdjustmentLevel = { brightness: 0, contrast: 0, hue: 0, opacity: 100, saturation: 0,\n blur: 0, exposure: 0, sharpen: false, bw: false };\n this.canvasFilter = this.currentFilter = this.tempAdjustmentValue = '';\n this.lowerContext.filter = this.initialAdjustmentValue = this.adjustmentValue = this.getDefaultFilter();\n this.destLeft = this.destTop = this.srcLeft = this.srcTop = 0;\n this.destWidth = this.destHeight = this.srcWidth = this.srcHeight = null;\n this.currSelectionPoint = null;\n this.cropDestPoints = { startX: 0, startY: 0, width: 0, height: 0 };\n this.panDown = null;\n this.panMove = null;\n this.tempPanMove = null;\n this.flipColl = [];\n this.freehandDrawObj.time = this.freehandDrawObj.lastVelocity = 0;\n this.freehandDrawObj.pointX = this.freehandDrawObj.pointY = 0;\n this.points = [];\n this.pointColl = {};\n this.pointCounter = this.freehandCounter = this.tempFreehandCounter = this.tempCurrentFreehandDrawIndex = 0;\n this.isFreehandDrawing = false;\n this.isReverseRotate = this.isReverseFlip = this.isPreventDragging = this.isRotateZoom = false;\n this.currentPannedPoint = { x: 0, y: 0 };\n this.rotateFlipColl = [];\n this.isCircleCrop = false;\n this.isCropTab = false;\n this.rotatedDestPoints = { startX: 0, startY: 0, width: 0, height: 0 };\n this.croppedDegree = 0;\n this.freehandDrawHoveredIndex = this.freehandDrawSelectedIndex = null;\n this.isFreehandDrawingPoint = this.isFreehandDrawEditing = this.isErrorImage = false;\n this.tempFreeHandDrawEditingStyles = { strokeColor: null, fillColor: null, strokeWidth: null };\n this.totalPannedInternalPoint = { x: 0, y: 0 };\n this.totalPannedClientPoint = { x: 0, y: 0 };\n this.lowerCanvas.style.left = this.upperCanvas.style.left = '';\n this.lowerCanvas.style.top = this.upperCanvas.style.top = '';\n this.lowerCanvas.style.maxWidth = this.upperCanvas.style.maxWidth = '';\n this.lowerCanvas.style.maxHeight = this.upperCanvas.style.maxHeight = '';\n this.currentSelectionPoint = null;\n this.totalPannedPoint = { x: 0, y: 0 };\n this.isBrightnessAdjusted = this.isInitialLoading = this.isShapeTextInserted = false;\n this.defaultZoomFactor = this.cropZoomFactor = this.zoomFactor = 0;\n this.tempActObj = null;\n this.currentMouseMovePoint = { x: 0, y: 0 };\n this.selectedFreehandColor = '#42a5f5';\n this.isFreehandDrawCustomized = false;\n this.isObjSelected = false;\n this.isAllowCropPan = false;\n this.currObjType = { shape: '', isDragging: false, isActiveObj: false, isText: false, isInitialText: false, isLine: false,\n isInitialLine: false, isCustomCrop: false, isZoomed: false, isUndoZoom: false,\n isUndoAction: false, isFiltered: false, isSave: false };\n this.cropObj = { cropZoom: 0, defaultZoom: 0, totalPannedPoint: { x: 0, y: 0 }, totalPannedClientPoint: { x: 0, y: 0 },\n totalPannedInternalPoint: { x: 0, y: 0 }, tempFlipPanPoint: { x: 0, y: 0 }, activeObj: {},\n rotateFlipColl: [], degree: 0, currFlipState: '', zoomFactor: 0, previousZoomValue: 0,\n destPoints: { startX: 0, startY: 0, width: 0, height: 0 },\n srcPoints: { startX: 0, startY: 0, width: 0, height: 0 }, filter: '' };\n this.afterCropActions = [];\n this.isCancelAction = this.preventZoomBtn = this.isFreehandPointMoved = false;\n this.isTouch = false;\n this.freehandDownPoint = { x: 0, y: 0 };\n this.tempFlipPanPoint = { x: 0, y: 0 };\n this.currentFreehandDrawIndex = 0;\n this.tempCurrentFreehandDrawIndex = 0;\n this.previousZoomValue = 1;\n this.cancelObjColl = [];\n this.cancelPointColl = [];\n this.freehandDrawSelectedId = null;\n this.transformCurrentObj = null;\n this.rotatedFlipCropSelection = false;\n this.currDestinationPoint = null;\n this.appliedUndoRedoColl = [];\n this.zoomBtnHold = null;\n this.zoomType = 'Toolbar';\n this.cursorTargetObjId = '';\n this.isInitialTextEdited = false;\n this.selPoints = [];\n this.selPointColl = {};\n this.prevActObj = null;\n this.tempCurrSelectionPoint = null;\n if (!isNullOrUndefined(this.initialZoomValue)) {\n this.setProperties({ zoomSettings: { zoomFactor: this.initialZoomValue } }, true);\n }\n if (!isNullOrUndefined(document.getElementById(this.element.id + '_quickAccessToolbarArea'))) {\n document.getElementById(this.element.id + '_quickAccessToolbarArea').style.display = 'none';\n }\n this.isImageLoaded = false;\n this.updateCanvas();\n this.isImageLoaded = true;\n this.refreshDropDownBtn(false);\n this.enableDisableToolbarBtn();\n }\n };\n /**\n * Rotate an image to clockwise and anti-clockwise.\n *\n * @param {number} degree - Specifies a degree to rotate an image.\n * A positive integer value for clockwise and negative integer value for anti-clockwise rotation.\n *\n * @remarks\n * It rotated the shapes including rectangle, circle, line, text, and freehand drawings.\n *\n * @returns {boolean}.\n *\n * {% codeBlock src='image-editor/rotate/index.md' %}{% endcodeBlock %}\n *\n */\n ImageEditor.prototype.rotate = function (degree) {\n var isRotate = this.rotateImage(degree);\n this.updateCurrentUndoRedoColl('ok');\n return isRotate;\n };\n /**\n * Export an image using the specified file name and the extension.\n *\n * @param {string} type - Specifies a format of image to be saved.\n * @param {string} fileName – Specifies a file name to be saved\n *\n * @remarks\n * The supported file types are JPG, JPEG, PNG, and SVG.\n *\n * @returns {void}.\n */\n ImageEditor.prototype.export = function (type, fileName) {\n var _this = this;\n if (!this.disabled && this.isImageLoaded) {\n if (this.isFreehandDrawEditing) {\n this.applyFreehandDraw();\n }\n if (this.togglePen) {\n this.currObjType.isZoomed = true;\n this.apply();\n }\n if (this.textArea.style.display === 'block') {\n this.redrawActObj();\n }\n this.applyActObj();\n this.lowerContext.filter = this.canvasFilter;\n type = type ? type : 'Png';\n this.redrawActObj();\n var beforeSave = { cancel: false, fileName: fileName ? fileName : this.fileName,\n fileType: type };\n var saved_1 = { fileName: fileName ? fileName : this.fileName, fileType: type };\n this.trigger('beforeSave', beforeSave, function (observableSaveArgs) {\n if (!observableSaveArgs.cancel) {\n _this.currObjType.isSave = true;\n fileName = observableSaveArgs.fileName ? observableSaveArgs.fileName : fileName;\n if (type.toLowerCase() === 'svg') {\n fileName = fileName || _this.fileName;\n _this.toSVGImg(fileName);\n }\n else if (type.toLowerCase() === 'jpeg') {\n fileName = fileName || _this.fileName;\n _this.toBlobFn(fileName, type.toLowerCase());\n }\n else {\n fileName = fileName || _this.fileName;\n _this.toBlobFn(fileName, type.toLowerCase());\n }\n _this.trigger('saved', saved_1);\n _this.refreshMainToolbar();\n _this.lowerCanvas.style.left = _this.upperCanvas.style.left = '';\n _this.lowerCanvas.style.top = _this.upperCanvas.style.top = '';\n _this.lowerCanvas.style.maxWidth = _this.upperCanvas.style.maxWidth = '';\n _this.lowerCanvas.style.maxHeight = _this.upperCanvas.style.maxHeight = '';\n }\n });\n }\n };\n /**\n * Perform selection in an image editor. The selection helps to crop an image.\n *\n * @param {string} type - Specifies the shape - circle / square / custom selection / pre-defined ratios.\n * @param {number} startX – Specifies the start x-coordinate point of the selection.\n * @param {number} startY – Specifies the start y-coordinate point of the selection.\n * @param {number} width - Specifies the width of the selection area.\n * @param {number} height - Specifies the height of the selection area.\n *\n * @remarks\n * The selection UI is based on the 'theme' property.\n *\n * @returns {void}.\n *\n * {% codeBlock src='image-editor/select/index.md' %}{% endcodeBlock %}\n *\n */\n ImageEditor.prototype.select = function (type, startX, startY, width, height) {\n if (!this.disabled && this.isImageLoaded) {\n var previousObj = this.getCurrentObj();\n previousObj.objColl = extend([], this.objColl, [], true);\n previousObj.pointColl = extend([], this.pointColl, [], true);\n previousObj.afterCropActions = this.afterCropActions;\n this.previousCropCurrentObj = previousObj;\n if (this.zoomFactor > 0 && !isNullOrUndefined(this.activeObj.shape) && this.activeObj.shape.split('-')[0] === 'crop' && isNullOrUndefined(this.currentSelectionPoint)) {\n this.currentSelectionPoint = extend({}, this.activeObj, {}, true);\n }\n var isPrevent = false;\n var splitWords = void 0;\n if (this.activeObj.shape !== undefined) {\n splitWords = this.activeObj.shape.split('-');\n }\n if (splitWords === undefined && this.currObjType.isCustomCrop) {\n isPrevent = true;\n }\n else if (splitWords !== undefined && splitWords[0] === 'crop') {\n isPrevent = true;\n }\n var prevObj = this.getCurrentObj();\n prevObj.objColl = extend([], this.objColl, [], true);\n prevObj.pointColl = extend([], this.pointColl, [], true);\n prevObj.afterCropActions = extend([], this.afterCropActions, [], true);\n this.redrawActObj();\n this.refreshActiveObj();\n this.keyHistory = '';\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n this.upperCanvas.style.display = 'block';\n if (!isNullOrUndefined(this.currSelectionPoint) || this.defaultZoomFactor > 0 ||\n (this.degree !== 0 && this.totalPannedInternalPoint.x !== 0 && this.totalPannedInternalPoint.y !== 0 && !isPrevent)) {\n this.isCircleCrop = false;\n if (this.defaultZoomFactor > 0) {\n var zoomFactor = this.zoomFactor = this.defaultZoomFactor;\n this.isCropTab = false;\n var isUndoRedo = this.isUndoRedo;\n for (var i = 0; i < (zoomFactor * 10); i++) {\n this.isUndoRedo = true;\n this.zoomAction(-0.1);\n }\n this.isUndoRedo = isUndoRedo;\n this.resetPanPoints();\n }\n this.cancelObjColl = extend([], this.objColl, [], true);\n this.cancelPointColl = extend([], this.pointColl, [], true);\n this.updateObjAndFreeHandDrawColl();\n this.isCropTab = true;\n this.isCircleCrop = false;\n this.setCurrSelectionPoints(true);\n this.zoomFactor = this.cropZoomFactor;\n if (isNullOrUndefined(this.cropObj.activeObj.shape)) {\n this.drawNewSelection(type, startX, startY, width, height);\n }\n }\n else {\n if (type === 'custom') {\n this.currObjType.shape = '';\n }\n this.drawNewSelection(type, startX, startY, width, height);\n }\n }\n };\n ImageEditor.prototype.updateSelectionInsert = function () {\n var shapeSettings = this.updatePreviousShapeSettings();\n var shapeChangingArgs = { action: 'insert', previousShapeSettings: shapeSettings,\n currentShapeSettings: shapeSettings };\n this.trigger('shapeChanging', shapeChangingArgs);\n this.updateShapeChangeEventArgs(shapeChangingArgs.currentShapeSettings);\n };\n /**\n * Enable or disable a freehand drawing option in an Image Editor.\n *\n * @param {boolean} value - Specifies a value whether to enable or disable freehand drawing.\n *\n * @returns {void}.\n * @private\n */\n ImageEditor.prototype.freeHandDraw = function (value) {\n if (value) {\n this.points = [];\n this.refreshActiveObj();\n this.togglePen = true;\n this.upperCanvas.style.cursor = 'crosshair';\n this.upperCanvas.style.display = 'block';\n if (isNullOrUndefined(this.activeObj.strokeSettings)) {\n this.activeObj.strokeSettings = this.strokeSettings;\n }\n if (isNullOrUndefined(this.activeObj.strokeSettings.strokeWidth)) {\n this.activeObj.strokeSettings.strokeWidth = 4;\n }\n this.refreshToolbar('pen');\n }\n else {\n this.upperCanvas.style.cursor = 'default';\n this.apply();\n this.refreshMainToolbar();\n this.currentToolbar = 'main';\n this.isFreehandDrawCustomized = false;\n }\n };\n /**\n * Enable or disable a freehand drawing in an Image Editor.\n *\n * @param {boolean} value - Specifies a value whether to enable or disable freehand drawing.\n *\n * @remarks\n * User can directly drawing on a canvas after enabling this option.\n *\n * @returns {void}.\n */\n ImageEditor.prototype.freehandDraw = function (value) {\n if (!this.disabled && this.isImageLoaded) {\n this.freeHandDraw(value);\n }\n };\n /**\n * Enable or disable a panning on the Image Editor.\n *\n * @param {boolean} value - Specifies a value whether enable or disable panning.\n *\n * @remarks\n * This option will take into effect once the image's visibility is hidden when zooming an image or selection has been performed.\n *\n * @returns {void}.\n */\n ImageEditor.prototype.pan = function (value) {\n if (!this.disabled && this.isImageLoaded) {\n if (value) {\n this.togglePan = true;\n this.redrawActObj();\n this.dragCanvas = true;\n this.lowerCanvas.style.cursor = this.upperCanvas.style.cursor = 'grab';\n this.panDown = null;\n }\n else {\n this.dragCanvas = this.togglePan = this.currObjType.isCustomCrop = false;\n this.lowerCanvas.style.cursor = this.upperCanvas.style.cursor = 'default';\n }\n }\n };\n /**\n * Zoom in or out on a point in the image editor.\n *\n * @param {number} zoomFactor - The percentage-based zoom factor to use (e.g. 20 for 2x zoom).\n * @param {Point} zoomPoint - The point in the image editor to zoom in/out on.\n *\n * @remarks\n * Zooming directly enables the panning option when the image's visibility is hidden.\n * User can disable it by using 'Pan' method.\n * @returns {void}\n *\n */\n ImageEditor.prototype.zoom = function (zoomFactor, zoomPoint) {\n if (!this.disabled && this.isImageLoaded) {\n var value = this.getCurrentZoomFactor(zoomFactor);\n if (isNullOrUndefined(zoomPoint)) {\n this.zoomAction(value, zoomPoint);\n }\n else {\n var type = value > 0 ? 'zoomIn' : 'zoomOut';\n for (var i = 0; i < (Math.abs(value) * 10); i++) {\n this.performPointZoom(zoomPoint.x, zoomPoint.y, type);\n }\n }\n }\n };\n /**\n * Draw ellipse on an image.\n *\n * @param {number} x - Specifies x-coordinate of ellipse.\n * @param {number} y - Specifies y-coordinate of ellipse.\n * @param {number} radiusX - Specifies the radius x point for the ellipse.\n * @param {number} radiusY - Specifies the radius y point for the ellipse.\n * @param {number} strokeWidth - Specifies the stroke width of ellipse.\n * @param {string} strokeColor - Specifies the stroke color of ellipse.\n * @param {string} fillColor - Specifies the fill color of the ellipse.\n * @returns {boolean}.\n *\n * {% codeBlock src='image-editor/ellipse/index.md' %}{% endcodeBlock %}\n *\n */\n ImageEditor.prototype.drawEllipse = function (x, y, radiusX, radiusY, strokeWidth, strokeColor, fillColor) {\n var isEllipse = false;\n var inRange = this.isPointsInRange(x, y);\n if (!this.disabled && this.isImageLoaded && inRange) {\n isEllipse = true;\n this.redrawActObj();\n this.activeObj.shape = 'ellipse';\n if (this.currObjType.shape === 'freehanddraw') {\n this.apply();\n this.upperCanvas.style.cursor = 'default';\n this.currObjType.shape = '';\n }\n this.currObjType.isCustomCrop = false;\n var start = { x: x, y: y };\n this.drawShape('ellipse', strokeWidth, strokeColor, fillColor, start, radiusX, radiusY);\n this.updateUndoRedo();\n }\n return isEllipse;\n };\n /**\n * Draw line on an image.\n *\n * @param {number} startX – Specifies start point x-coordinate of line.\n * @param {number} startY – Specifies start point y-coordinate of line.\n * @param {number} endX - Specifies end point x-coordinates of line.\n * @param {number} endY - Specifies end point y-coordinates of the line.\n * @param {number} strokeWidth - Specifies the stroke width of line.\n * @param {string} strokeColor - Specifies the stroke color of line.\n * @returns {boolean}.\n */\n ImageEditor.prototype.drawLine = function (startX, startY, endX, endY, strokeWidth, strokeColor) {\n var isLine = false;\n var inRange = this.isPointsInRange(startX, startY);\n if (!this.disabled && this.isImageLoaded && inRange) {\n isLine = true;\n this.redrawActObj();\n this.activeObj.shape = 'line';\n if (this.currObjType.shape === 'freehanddraw') {\n this.apply();\n this.upperCanvas.style.cursor = 'default';\n this.currObjType.shape = '';\n }\n this.currObjType.isCustomCrop = false;\n var start = { x: startX, y: startY };\n var width = endX - startX;\n var height = endY - startY;\n this.drawShape('line', strokeWidth, strokeColor, null, start, width, height);\n this.updateUndoRedo();\n }\n return isLine;\n };\n /**\n * Draw arrow on an image.\n *\n * @param {number} startX – Specifies start point x-coordinate of arrow.\n * @param {number} startY – Specifies start point y-coordinate of arrow.\n * @param {number} endX - Specifies end point x-coordinates of arrow.\n * @param {number} endY - Specifies end point y-coordinates of the arrow.\n * @param {number} strokeWidth - Specifies the stroke width of arrow.\n * @param {string} strokeColor - Specifies the stroke color of arrow.\n * @returns {boolean}.\n * @private\n */\n ImageEditor.prototype.drawArrow = function (startX, startY, endX, endY, strokeWidth, strokeColor) {\n var isArrow = false;\n var inRange = this.isPointsInRange(startX, startY);\n if (!this.disabled && this.isImageLoaded && inRange) {\n isArrow = true;\n this.redrawActObj();\n this.activeObj.shape = 'arrow';\n if (this.currObjType.shape === 'freehanddraw') {\n this.apply();\n this.upperCanvas.style.cursor = 'default';\n this.currObjType.shape = '';\n }\n this.currObjType.isCustomCrop = false;\n var start = { x: startX, y: startY };\n var width = endX - startX;\n var height = endY - startY;\n this.drawShape('arrow', strokeWidth, strokeColor, null, start, width, height);\n this.updateUndoRedo();\n }\n return isArrow;\n };\n /**\n * Draw a rectangle on an image.\n *\n * @param {number} x - Specifies x-coordinate of rectangle.\n * @param {number} y - Specifies y-coordinate of rectangle.\n * @param {number} width - Specifies the width of the rectangle.\n * @param {number} height - Specifies the height of the rectangle.\n * @param {number} strokeWidth - Specifies the stroke width of rectangle.\n * @param {string} strokeColor - Specifies the stroke color of rectangle.\n * @param {string} fillColor - Specifies the fill color of the rectangle.\n * @returns {boolean}.\n */\n ImageEditor.prototype.drawRectangle = function (x, y, width, height, strokeWidth, strokeColor, fillColor) {\n var isRectangle = false;\n var inRange = this.isPointsInRange(x, y);\n if (!this.disabled && this.isImageLoaded && inRange) {\n isRectangle = true;\n this.redrawActObj();\n this.activeObj.shape = 'rectangle';\n if (this.currObjType.shape === 'freehanddraw') {\n this.apply();\n this.upperCanvas.style.cursor = 'default';\n this.currObjType.shape = '';\n }\n this.currObjType.isCustomCrop = false;\n var start = { x: x, y: y };\n this.drawShape('rectangle', strokeWidth, strokeColor, fillColor, start, width, height);\n this.updateUndoRedo();\n }\n return isRectangle;\n };\n /**\n * Draw a text on an image.\n *\n * @param {number} x - Specifies x-coordinate of text.\n * @param {number} y - Specifies y-coordinate of text.\n * @param {string} text - Specifies the text to add on an image.\n * @param {string} fontFamily - Specifies the font family of the text.\n * @param {number} fontSize - Specifies the font size of the text.\n * @param {boolean} bold - Specifies whether the text is bold or not.\n * @param {boolean} italic - Specifies whether the text is italic or not.\n * @param {string} color - Specifies font color of the text.\n * @returns {boolean}.\n *\n * {% codeBlock src='image-editor/text/index.md' %}{% endcodeBlock %}\n *\n */\n ImageEditor.prototype.drawText = function (x, y, text, fontFamily, fontSize, bold, italic, color) {\n var isText = false;\n var inRange = this.isPointsInRange(x, y);\n if (!this.disabled && this.isImageLoaded && inRange) {\n isText = true;\n this.drawShapeText(text, fontFamily, fontSize, bold, italic, color, x, y);\n this.updateUndoRedo();\n }\n return isText;\n };\n /**\n * Select a shape based on the given shape id.\n * Use 'getShapeSettings' method to get the shape id which is then passed to perform selection.\n *\n * @param {string} id - Specifies the shape id to select a shape on an image.\n * @returns {boolean}.\n *\n * {% codeBlock src='image-editor/selectShape/index.md' %}{% endcodeBlock %}\n *\n */\n ImageEditor.prototype.selectShape = function (id) {\n var isSelected = false;\n if (!this.disabled && this.isImageLoaded) {\n this.applyActObj();\n if (id.split('_')[0] === 'shape') {\n var obj = void 0;\n for (var i = 0; i < this.objColl.length; i++) {\n if (this.objColl[i].currIndex === id) {\n obj = extend({}, this.objColl[i], {}, true);\n break;\n }\n }\n if (isNullOrUndefined(obj)) {\n isSelected = false;\n }\n else {\n isSelected = true;\n this.activeObj = obj;\n this.lowerContext.filter = this.canvasFilter;\n this.redrawShape(this.activeObj);\n if (this.activeObj.shape === 'text') {\n this.refreshToolbar('text');\n }\n else if (this.activeObj.shape === 'pen') {\n this.refreshToolbar('pen');\n }\n else {\n this.refreshToolbar('shapes');\n }\n this.updateToolbarItems();\n }\n }\n else if (id.split('_')[0] === 'pen') {\n if (this.isFreehandDrawEditing) {\n this.okBtn();\n }\n if (this.isFreehandDrawIndex(parseInt(id.split('_')[1], 10) - 1)) {\n isSelected = true;\n this.selectFreehandDraw(parseInt(id.split('_')[1], 10) - 1);\n this.updateToolbarItems();\n }\n else {\n isSelected = false;\n }\n }\n }\n return isSelected;\n };\n /**\n * Deletes a shape based on the given shape id.\n * Use 'getShapeSettings' method to get the shape id which is then passed to perform selection.\n *\n * @param {string} id - Specifies the shape id to delete the shape on an image.\n * @returns {void}.\n *\n * {% codeBlock src='image-editor/deleteShape/index.md' %}{% endcodeBlock %}\n *\n */\n ImageEditor.prototype.deleteShape = function (id) {\n if (!this.disabled && this.isImageLoaded) {\n this.applyActObj();\n if (id.split('_')[0] === 'shape') {\n for (var i = 0; i < this.objColl.length; i++) {\n if (this.objColl[i].currIndex === id) {\n this.objColl.splice(i, 1);\n break;\n }\n }\n }\n else if (id.split('_')[0] === 'pen') {\n if (this.isFreehandDrawIndex(parseInt(id.split('_')[1], 10) - 1)) {\n this.deleteFreehandDraw(parseInt(id.split('_')[1], 10) - 1, true);\n }\n }\n this.lowerContext.filter = this.canvasFilter;\n this.lowerContext.clearRect(0, 0, this.lowerCanvas.width, this.lowerCanvas.height);\n this.redrawImgWithObj();\n this.refreshMainToolbar();\n }\n };\n /**\n * Get particular shapes details based on id of the shape which is drawn on an image editor.\n *\n * @param {string} id - Specifies the shape id on an image.\n * @returns {ShapeSettings}.\n *\n * {% codeBlock src='image-editor/getShapeSetting/index.md' %}{% endcodeBlock %}\n *\n */\n ImageEditor.prototype.getShapeSetting = function (id) {\n var shapeDetails;\n if (!this.disabled && this.isImageLoaded) {\n this.applyActObj();\n if (id.split('_')[0] === 'shape') {\n var obj = void 0;\n for (var i = 0; i < this.objColl.length; i++) {\n if (this.objColl[i].currIndex === id) {\n obj = extend({}, this.objColl[i], {}, true);\n break;\n }\n }\n shapeDetails = this.getObjDetails(obj);\n }\n else if (id.split('_')[0] === 'pen') {\n shapeDetails = this.getFreehandDrawDetails(parseInt(id.split('_')[1], 10) - 1);\n }\n }\n return shapeDetails;\n };\n /**\n * Get all the shapes details which is drawn on an image editor.\n *\n * @returns {ShapeSettings[]}.\n */\n ImageEditor.prototype.getShapeSettings = function () {\n var shapeDetailsColl = [];\n if (!this.disabled && this.isImageLoaded) {\n this.applyActObj();\n for (var i = 0; i < this.objColl.length; i++) {\n var shapeDetails = this.getObjDetails(this.objColl[i]);\n shapeDetailsColl.push(shapeDetails);\n }\n for (var i = 0; i < this.freehandCounter; i++) {\n var shapeDetails = this.getFreehandDrawDetails(i);\n shapeDetailsColl.push(shapeDetails);\n }\n }\n return shapeDetailsColl;\n };\n /**\n * To refresh the Canvas Wrapper.\n *\n * @returns {void}.\n */\n ImageEditor.prototype.update = function () {\n var canvasWrapper = document.querySelector('#' + this.element.id + '_canvasWrapper');\n if (!isNullOrUndefined(canvasWrapper)) {\n canvasWrapper.style.width = this.element.offsetWidth - 2 + 'px';\n }\n this.lowerCanvas.width = this.upperCanvas.width = this.element.offsetWidth - 2;\n if (Browser.isDevice) {\n if (!isNullOrUndefined(canvasWrapper)) {\n canvasWrapper.style.height = this.element.offsetHeight - (2 * this.toolbarHeight) - 5 + 'px';\n }\n this.lowerCanvas.height = this.upperCanvas.height = this.element.offsetHeight - (2 * this.toolbarHeight) - 5;\n }\n else {\n if (!isNullOrUndefined(canvasWrapper)) {\n canvasWrapper.style.height = this.element.offsetHeight - this.toolbarHeight - 3 + 'px';\n }\n this.lowerCanvas.height = this.upperCanvas.height = this.element.offsetHeight - this.toolbarHeight - 3;\n }\n this.lowerContext.filter = this.canvasFilter = this.initialAdjustmentValue = this.adjustmentValue = this.getDefaultFilter();\n this.lowerContext.clearRect(0, 0, this.lowerCanvas.width, this.lowerCanvas.height);\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n };\n /**\n * Finetuning an image with the given type of finetune and its value in the image editor.\n *\n * @param {ImageFinetuneOption } finetuneOption - Specifies the finetune options to be performed in the image.\n * @param {number } value - Specifies the value for finetuning the image.\n *\n * @remarks\n * The finetuning will not affect the shapes background and border color.\n *\n * @returns {void}.\n *\n */\n ImageEditor.prototype.finetuneImage = function (finetuneOption, value) {\n if (!this.disabled && this.isImageLoaded) {\n switch (finetuneOption.toLowerCase()) {\n case 'brightness':\n this.setBrightness(value);\n break;\n case 'contrast':\n this.setContrast(value);\n break;\n case 'hue':\n this.setHue(value);\n break;\n case 'saturation':\n this.setSaturation(value);\n break;\n case 'opacity':\n this.setOpacity(value);\n break;\n case 'blur':\n this.setBlur(value);\n break;\n case 'exposure':\n this.setExposure(value);\n break;\n }\n this.canvasFilter = this.lowerContext.filter;\n this.updateCurrentUndoRedoColl('ok');\n }\n };\n /**\n * Filtering an image with the given type of filters.\n *\n * @param {ImageFilterOption } filterOption - Specifies the filter options to the image.\n *\n * @remarks\n * The filtering will not affect the shape's background and border color.\n * @returns {void}.\n */\n ImageEditor.prototype.applyImageFilter = function (filterOption) {\n if (!this.disabled && this.isImageLoaded) {\n this.setFilter(filterOption.toString());\n this.canvasFilter = this.lowerContext.filter;\n this.updateCurrentUndoRedoColl('ok');\n }\n };\n /**\n * Reverse the last action which performed by the user in the Image Editor.\n *\n * @remarks\n * This method will take into effect once the 'allowUndoRedo' property is enabled.\n *\n * @returns {void}.\n */\n ImageEditor.prototype.undo = function () {\n if (!this.disabled && this.isImageLoaded) {\n if (this.undoRedoStep > 0) {\n if (!isNullOrUndefined(this.activeObj.shape)) {\n this.refreshToolbar('shapes');\n this.updateToolbarItems();\n }\n else {\n this.refreshMainToolbar();\n }\n if (!isNullOrUndefined(this.activeObj.activePoint) && this.activeObj.activePoint.width !== 0) {\n this.tempActObj = this.activeObj;\n }\n this.refreshActiveObj();\n this.undoRedoStep--;\n this.enableDisableToolbarBtn();\n this.isUndoRedo = true;\n var obj = this.undoRedoColl[this.undoRedoStep];\n if (this.undoRedoColl.length === this.undoRedoStep) {\n this.currObjType.isUndoAction = false;\n }\n else {\n this.currObjType.isUndoAction = true;\n }\n if (obj.operation !== 'textAreaCustomization' && this.textArea.style.display === 'block') {\n this.textArea.style.display = 'none';\n }\n this.element.querySelector('.e-contextual-toolbar-wrapper').classList.add('e-hide');\n this.isCancelAction = true;\n var activeObj = void 0;\n this.cropObj = extend({}, obj.previousCropObj, {}, true);\n this.afterCropActions = obj.previousObj.afterCropActions;\n this.lowerContext.filter = this.canvasFilter = obj.previousObj.filter;\n switch (obj.operation) {\n case 'shapeTransform':\n this.objColl = extend([], obj.previousObjColl, [], true);\n this.zoomObjColl();\n this.lowerContext.clearRect(0, 0, this.lowerCanvas.width, this.lowerCanvas.height);\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n this.isUndoRedo = true;\n this.redrawImgWithObj();\n this.refreshActiveObj();\n break;\n case 'freehanddraw':\n this.pointColl = obj.previousPointColl;\n this.freehandCounter = this.pointColl.length;\n this.zoomFreehandDrawColl();\n this.lowerContext.clearRect(0, 0, this.lowerCanvas.width, this.lowerCanvas.height);\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n this.isUndoRedo = true;\n this.redrawImgWithObj();\n break;\n case 'freehanddrawCustomized':\n this.pointColl = obj.previousPointColl;\n this.zoomFreehandDrawColl();\n this.lowerContext.clearRect(0, 0, this.lowerCanvas.width, this.lowerCanvas.height);\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n this.isUndoRedo = true;\n this.redrawImgWithObj();\n break;\n case 'deleteFreehandDrawing':\n case 'deleteObj':\n if (obj.operation === 'deleteFreehandDrawing') {\n this.pointColl = obj.previousPointColl;\n this.freehandCounter = this.pointColl.length;\n this.zoomFreehandDrawColl();\n }\n else if (obj.operation === 'deleteObj') {\n this.objColl = obj.previousObjColl;\n this.zoomObjColl();\n }\n this.lowerContext.clearRect(0, 0, this.lowerCanvas.width, this.lowerCanvas.height);\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n this.isUndoRedo = true;\n this.redrawImgWithObj();\n break;\n case 'textAreaCustomization':\n this.objColl = extend([], obj.previousObjColl, [], true);\n this.zoomObjColl(true);\n this.lowerContext.clearRect(0, 0, this.lowerCanvas.width, this.lowerCanvas.height);\n this.isUndoRedo = true;\n this.redrawImgWithObj();\n for (var i = 0; i < obj.previousObjColl.length; i++) {\n if (!isNullOrUndefined(this.tempActObj)) {\n if (this.tempActObj.currIndex === obj.previousObjColl[i].currIndex) {\n activeObj = extend({}, obj.previousObjColl[i], {}, true);\n this.objColl.splice(i, 1);\n break;\n }\n }\n else {\n activeObj = extend({}, obj.previousObjColl[obj.previousObjColl.length - 1], {}, true);\n this.objColl.splice(i, 1);\n break;\n }\n }\n if (!isNullOrUndefined(activeObj)) {\n this.updateTextBox(activeObj);\n }\n if (this.textArea.style.display === 'block') {\n this.redrawActObj();\n }\n break;\n case 'text':\n if (!isNullOrUndefined(this.tempActObj)) {\n this.activeObj = extend({}, this.tempActObj, {}, true);\n }\n if (obj.previousObjColl.length === 0 && this.objColl.length === 1) {\n this.tempActObj = extend({}, this.objColl[0], {}, true);\n }\n else {\n for (var i = 0; i < this.objColl.length; i++) {\n if (!isNullOrUndefined(this.objColl[i]) &&\n isNullOrUndefined(obj.previousObjColl[i])) {\n this.tempActObj = extend({}, this.objColl[i], {}, true);\n break;\n }\n if (obj.previousObjColl[i].currIndex !== this.objColl[i].currIndex) {\n this.tempActObj = extend({}, this.objColl[i], {}, true);\n break;\n }\n }\n }\n this.activeObj = extend({}, this.tempActObj, {}, true);\n this.objColl = extend([], obj.previousObjColl, [], true);\n this.zoomObjColl(true);\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n this.lowerContext.clearRect(0, 0, this.lowerCanvas.width, this.lowerCanvas.height);\n this.isUndoRedo = true;\n this.redrawImgWithObj();\n this.refreshActiveObj();\n break;\n default:\n this.performUndoDefaultAction(obj);\n this.setAdjustment(obj.operation);\n this.updateFilter(obj.operation, obj.filter);\n break;\n }\n if (obj.operation === 'crop' && this.isCircleCrop) {\n this.isCircleCrop = false;\n this.tempCurrSelectionPoint = extend({}, this.currSelectionPoint, {}, true);\n this.currSelectionPoint = null;\n }\n if ((!isNullOrUndefined(this.undoRedoColl[this.undoRedoStep - 1])\n && this.undoRedoColl[this.undoRedoStep - 1].isCircleCrop)) {\n this.isCircleCrop = true;\n this.cropCircle(this.lowerContext);\n }\n this.clearOuterCanvas(this.lowerContext);\n if (this.isCircleCrop && obj.operation !== 'crop') {\n this.cropCircle(this.lowerContext);\n }\n if (this.zoomFactor > 0) {\n this.dragCanvas = true;\n }\n this.isCancelAction = false;\n if (!isNullOrUndefined(this.activeObj.shape) && this.activeObj.shape.split('-')[0] === 'crop') {\n this.refreshToolbar('main', true, true);\n }\n else {\n this.refreshMainToolbar();\n }\n if (!isNullOrUndefined(document.getElementById(this.element.id + '_quickAccessToolbarArea'))) {\n document.getElementById(this.element.id + '_quickAccessToolbarArea').style.display = 'none';\n }\n this.enableDisableToolbarBtn();\n }\n }\n };\n /**\n * Redo the last user action that was undone by the user or `undo` method.\n *\n * @remarks\n * This method will take into effect once the 'allowUndoRedo' property is enabled.\n * @returns {void}.\n */\n ImageEditor.prototype.redo = function () {\n if (!this.disabled && this.isImageLoaded) {\n if (this.undoRedoStep < this.appliedUndoRedoColl.length) {\n if (!isNullOrUndefined(this.activeObj.shape)) {\n this.refreshToolbar('shapes');\n this.updateToolbarItems();\n }\n else {\n this.refreshMainToolbar();\n }\n this.undoRedoStep++;\n this.enableDisableToolbarBtn();\n this.isUndoRedo = true;\n var obj = this.undoRedoColl[this.undoRedoStep - 1];\n if (this.undoRedoColl.length === this.undoRedoStep) {\n this.currObjType.isUndoAction = false;\n }\n else {\n this.currObjType.isUndoAction = true;\n }\n if (obj.operation !== 'textAreaCustomization' && this.textArea.style.display === 'block') {\n this.textArea.style.display = 'none';\n }\n this.element.querySelector('.e-contextual-toolbar-wrapper').classList.add('e-hide');\n this.isCancelAction = true;\n this.cropObj = extend({}, obj.currentCropObj, {}, true);\n this.afterCropActions = obj.currentObj.afterCropActions;\n this.lowerContext.filter = this.canvasFilter = obj.currentObj.filter;\n var activeObj = void 0;\n switch (obj.operation) {\n case 'shapeTransform':\n this.objColl = extend([], obj.currentObjColl, [], true);\n this.zoomObjColl();\n this.lowerContext.clearRect(0, 0, this.lowerCanvas.width, this.lowerCanvas.height);\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n this.isUndoRedo = true;\n this.redrawImgWithObj();\n this.refreshActiveObj();\n break;\n case 'freehanddraw':\n this.pointColl = obj.currentPointColl;\n this.freehandCounter = this.pointColl.length;\n this.zoomFreehandDrawColl();\n this.lowerContext.clearRect(0, 0, this.lowerCanvas.width, this.lowerCanvas.height);\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n this.isUndoRedo = true;\n this.redrawImgWithObj();\n break;\n case 'freehanddrawCustomized':\n this.pointColl = obj.currentPointColl;\n this.zoomFreehandDrawColl();\n this.lowerContext.clearRect(0, 0, this.lowerCanvas.width, this.lowerCanvas.height);\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n this.isUndoRedo = true;\n this.redrawImgWithObj();\n break;\n case 'deleteFreehandDrawing':\n case 'deleteObj':\n if (obj.operation === 'deleteFreehandDrawing') {\n this.pointColl = obj.currentPointColl;\n this.freehandCounter = this.pointColl.length;\n this.zoomFreehandDrawColl();\n }\n else if (obj.operation === 'deleteObj') {\n this.objColl = obj.currentObjColl;\n this.zoomObjColl();\n }\n this.lowerContext.clearRect(0, 0, this.lowerCanvas.width, this.lowerCanvas.height);\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n this.isUndoRedo = true;\n this.redrawImgWithObj();\n break;\n case 'textAreaCustomization':\n this.objColl = extend([], obj.currentObjColl, [], true);\n this.zoomObjColl(true);\n this.lowerContext.clearRect(0, 0, this.lowerCanvas.width, this.lowerCanvas.height);\n this.isUndoRedo = true;\n this.redrawImgWithObj();\n for (var i = 0; i < obj.currentObjColl.length; i++) {\n if (!isNullOrUndefined(this.tempActObj)) {\n if (this.tempActObj.currIndex === obj.currentObjColl[i].currIndex) {\n activeObj = extend({}, obj.currentObjColl[i], {}, true);\n this.objColl.splice(i, 1);\n break;\n }\n }\n else {\n activeObj = extend({}, obj.currentObjColl[obj.currentObjColl.length - 1], {}, true);\n this.objColl.splice(i, 1);\n break;\n }\n }\n if (!isNullOrUndefined(activeObj)) {\n this.updateTextBox(activeObj);\n }\n if (this.textArea.style.display === 'block') {\n this.redrawActObj();\n }\n break;\n case 'text':\n if (!isNullOrUndefined(this.tempActObj)) {\n this.activeObj = extend({}, this.tempActObj, {}, true);\n }\n if (obj.previousObjColl.length === 0 && this.objColl.length === 1) {\n this.tempActObj = extend({}, this.objColl[0], {}, true);\n }\n else {\n for (var i = 0; i < this.objColl.length; i++) {\n if (!isNullOrUndefined(this.objColl[i]) &&\n isNullOrUndefined(obj.previousObjColl[i])) {\n this.tempActObj = extend({}, this.objColl[i], {}, true);\n break;\n }\n if (obj.previousObjColl[i].currIndex !== this.objColl[i].currIndex) {\n this.tempActObj = extend({}, this.objColl[i], {}, true);\n break;\n }\n }\n }\n this.objColl = extend([], obj.currentObjColl, [], true);\n this.zoomObjColl(true);\n this.lowerContext.clearRect(0, 0, this.lowerCanvas.width, this.lowerCanvas.height);\n this.isUndoRedo = true;\n this.redrawImgWithObj();\n this.refreshActiveObj();\n break;\n default:\n this.objColl = [];\n this.pointColl = [];\n this.freehandCounter = 0;\n this.setCurrentObj(obj.currentObj);\n this.destLeft = obj.currentObj.destPoints.startX;\n this.destTop = obj.currentObj.destPoints.startY;\n activeObj = extend({}, this.activeObj, {}, true);\n this.objColl = extend([], obj.currentObjColl, [], true);\n this.pointColl = extend([], obj.currentPointColl, [], true);\n this.freehandCounter = this.pointColl.length;\n this.lowerContext.filter = 'none';\n this.zoomObjColl();\n this.zoomFreehandDrawColl();\n this.lowerContext.filter = obj.currentObj.filter;\n this.activeObj = activeObj;\n this.upperContext.clearRect(0, 0, this.upperCanvas.width, this.upperCanvas.height);\n if (this.activeObj.activePoint.width !== 0 && this.activeObj.activePoint.height !== 0) {\n this.drawObject('duplicate');\n }\n this.setAdjustment(obj.operation);\n this.updateFilter(obj.operation);\n break;\n }\n if (obj.operation === 'crop' && obj.isCircleCrop) {\n this.isCircleCrop = true;\n this.currSelectionPoint = extend({}, this.tempCurrSelectionPoint, {}, true);\n this.tempCurrSelectionPoint = null;\n }\n if (obj.operation === 'crop' && !obj.isCircleCrop) {\n this.isCircleCrop = false;\n }\n this.clearOuterCanvas(this.lowerContext);\n if (this.isCircleCrop) {\n this.cropCircle(this.lowerContext);\n }\n if (this.zoomFactor > 0) {\n this.dragCanvas = true;\n }\n this.isCancelAction = false;\n if (this.undoRedoStep === this.undoRedoColl.length) {\n this.isUndoRedo = false;\n }\n if (!isNullOrUndefined(this.activeObj.shape) && this.activeObj.shape.split('-')[0] === 'crop') {\n this.refreshToolbar('main', true, true);\n }\n else {\n this.refreshMainToolbar();\n }\n if (!isNullOrUndefined(document.getElementById(this.element.id + '_quickAccessToolbarArea'))) {\n document.getElementById(this.element.id + '_quickAccessToolbarArea').style.display = 'none';\n }\n this.enableDisableToolbarBtn();\n }\n }\n };\n /**\n * Get the dimension of an image in the image editor such as x, y, width, and height.\n * The method helps to get dimension after cropped an image.\n *\n * @returns {Dimension}.\n * A Dimension object containing the x, y, width, and height of an image.\n */\n ImageEditor.prototype.getImageDimension = function () {\n return { x: this.destLeft, y: this.destTop, width: this.destWidth, height: this.destHeight };\n };\n var ImageEditor_1;\n __decorate([\n Property('')\n ], ImageEditor.prototype, \"cssClass\", void 0);\n __decorate([\n Property(false)\n ], ImageEditor.prototype, \"disabled\", void 0);\n __decorate([\n Property('100%')\n ], ImageEditor.prototype, \"height\", void 0);\n __decorate([\n Property('Bootstrap5')\n ], ImageEditor.prototype, \"theme\", void 0);\n __decorate([\n Property()\n ], ImageEditor.prototype, \"toolbar\", void 0);\n __decorate([\n Property()\n ], ImageEditor.prototype, \"toolbarTemplate\", void 0);\n __decorate([\n Property('100%')\n ], ImageEditor.prototype, \"width\", void 0);\n __decorate([\n Property(true)\n ], ImageEditor.prototype, \"allowUndoRedo\", void 0);\n __decorate([\n Property(false)\n ], ImageEditor.prototype, \"showQuickAccessToolbar\", void 0);\n __decorate([\n Property()\n ], ImageEditor.prototype, \"quickAccessToolbarTemplate\", void 0);\n __decorate([\n Property(false)\n ], ImageEditor.prototype, \"isReadOnly\", void 0);\n __decorate([\n Property(false)\n ], ImageEditor.prototype, \"enableRtl\", void 0);\n __decorate([\n Property(false)\n ], ImageEditor.prototype, \"enablePersistence\", void 0);\n __decorate([\n Complex({}, FinetuneSettings)\n ], ImageEditor.prototype, \"finetuneSettings\", void 0);\n __decorate([\n Complex({}, ZoomSettings)\n ], ImageEditor.prototype, \"zoomSettings\", void 0);\n __decorate([\n Event()\n ], ImageEditor.prototype, \"beforeSave\", void 0);\n __decorate([\n Event()\n ], ImageEditor.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], ImageEditor.prototype, \"destroyed\", void 0);\n __decorate([\n Event()\n ], ImageEditor.prototype, \"zooming\", void 0);\n __decorate([\n Event()\n ], ImageEditor.prototype, \"panning\", void 0);\n __decorate([\n Event()\n ], ImageEditor.prototype, \"cropping\", void 0);\n __decorate([\n Event()\n ], ImageEditor.prototype, \"rotating\", void 0);\n __decorate([\n Event()\n ], ImageEditor.prototype, \"flipping\", void 0);\n __decorate([\n Event()\n ], ImageEditor.prototype, \"shapeChanging\", void 0);\n __decorate([\n Event()\n ], ImageEditor.prototype, \"fileOpened\", void 0);\n __decorate([\n Event()\n ], ImageEditor.prototype, \"saved\", void 0);\n __decorate([\n Event()\n ], ImageEditor.prototype, \"toolbarCreated\", void 0);\n __decorate([\n Event()\n ], ImageEditor.prototype, \"toolbarUpdating\", void 0);\n __decorate([\n Event()\n ], ImageEditor.prototype, \"toolbarItemClicked\", void 0);\n __decorate([\n Event()\n ], ImageEditor.prototype, \"imageFiltering\", void 0);\n __decorate([\n Event()\n ], ImageEditor.prototype, \"finetuneValueChanging\", void 0);\n __decorate([\n Event()\n ], ImageEditor.prototype, \"click\", void 0);\n __decorate([\n Event()\n ], ImageEditor.prototype, \"quickAccessToolbarOpening\", void 0);\n ImageEditor = ImageEditor_1 = __decorate([\n NotifyPropertyChanges\n ], ImageEditor);\n return ImageEditor;\n}(Component));\nexport { ImageEditor };\n/**\n * An enum representing the file types supported by the image editor.\n *\n * @enum {string}\n */\nexport var FileType;\n(function (FileType) {\n /** The PNG file type. */\n FileType[\"Png\"] = \"Png\";\n /** The JPEG file type. */\n FileType[\"Jpeg\"] = \"Jpeg\";\n /** The SVG file type. */\n FileType[\"Svg\"] = \"Svg\";\n})(FileType || (FileType = {}));\n/**\n * An enumeration representing the direction of an image editor operation.\n *\n * @enum {string}\n */\nexport var Direction;\n(function (Direction) {\n /** The horizontal direction. */\n Direction[\"Horizontal\"] = \"Horizontal\";\n /** The vertical direction. */\n Direction[\"Vertical\"] = \"Vertical\";\n})(Direction || (Direction = {}));\n/**\n * An enumeration representing the type of shape to be added in the image editor.\n *\n * @enum {string}\n */\nexport var ShapeType;\n(function (ShapeType) {\n /** A rectangle shape. */\n ShapeType[\"Rectangle\"] = \"Rectangle\";\n /** An ellipse shape. */\n ShapeType[\"Ellipse\"] = \"Ellipse\";\n /** A line shape. */\n ShapeType[\"Line\"] = \"Line\";\n /** An arrow shape. */\n ShapeType[\"Arrow\"] = \"Arrow\";\n /** A text shape. */\n ShapeType[\"Text\"] = \"Text\";\n /** A freehand drawing shape. */\n ShapeType[\"FreehandDraw\"] = \"FreehandDraw\";\n})(ShapeType || (ShapeType = {}));\n/**\n * An enumeration representing the different ways to trigger zooming in the image editor.\n *\n * @aspNumberEnum\n */\nexport var ZoomTrigger;\n(function (ZoomTrigger) {\n /** Zooming triggered by mouse wheel. */\n ZoomTrigger[ZoomTrigger[\"MouseWheel\"] = 1] = \"MouseWheel\";\n /** Zooming triggered by pinch gesture. */\n ZoomTrigger[ZoomTrigger[\"Pinch\"] = 2] = \"Pinch\";\n /** Zooming triggered by command keys. */\n ZoomTrigger[ZoomTrigger[\"Commands\"] = 4] = \"Commands\";\n /** Zooming triggered by toolbar button click. */\n ZoomTrigger[ZoomTrigger[\"Toolbar\"] = 8] = \"Toolbar\";\n})(ZoomTrigger || (ZoomTrigger = {}));\n/**\n * An enum representing the available themes in the image editor.\n */\nexport var Theme;\n(function (Theme) {\n /** The Bootstrap 5 theme. */\n Theme[\"Bootstrap5\"] = \"Bootstrap5\";\n /** The dark variant of the Bootstrap 5 theme. */\n Theme[\"Bootstrap5Dark\"] = \"Bootstrap5Dark\";\n /** The Tailwind CSS theme. */\n Theme[\"Tailwind\"] = \"Tailwind\";\n /** The dark variant of the Tailwind CSS theme. */\n Theme[\"TailwindDark\"] = \"TailwindDark\";\n /** The Fluent UI theme. */\n Theme[\"Fluent\"] = \"Fluent\";\n /** The dark variant of the Fluent UI theme. */\n Theme[\"FluentDark\"] = \"FluentDark\";\n /** The Bootstrap 4 theme. */\n Theme[\"Bootstrap4\"] = \"Bootstrap4\";\n /** The Bootstrap theme. */\n Theme[\"Bootstrap\"] = \"Bootstrap\";\n /** The dark variant of the Bootstrap theme. */\n Theme[\"BootstrapDark\"] = \"BootstrapDark\";\n /** The Material Design theme. */\n Theme[\"Material\"] = \"Material\";\n /** The dark variant of the Material Design theme. */\n Theme[\"MaterialDark\"] = \"MaterialDark\";\n /** The Fabric theme. */\n Theme[\"Fabric\"] = \"Fabric\";\n /** The dark variant of the Fabric theme. */\n Theme[\"FabricDark\"] = \"FabricDark\";\n /** The high contrast theme. */\n Theme[\"Highcontrast\"] = \"Highcontrast\";\n})(Theme || (Theme = {}));\n/**\n * An enum representing the available toolbar commands in the image editor.\n */\nexport var ImageEditorCommand;\n(function (ImageEditorCommand) {\n ImageEditorCommand[\"Crop\"] = \"Crop\";\n ImageEditorCommand[\"Transform\"] = \"Transform\";\n ImageEditorCommand[\"Annotate\"] = \"Annotate\";\n ImageEditorCommand[\"ZoomIn\"] = \"ZoomIn\";\n ImageEditorCommand[\"ZoomOut\"] = \"ZoomOut\";\n ImageEditorCommand[\"Open\"] = \"Open\";\n ImageEditorCommand[\"Reset\"] = \"Reset\";\n ImageEditorCommand[\"Save\"] = \"Save\";\n ImageEditorCommand[\"Pan\"] = \"Pan\";\n ImageEditorCommand[\"Move\"] = \"Move\";\n ImageEditorCommand[\"Pen\"] = \"Pen\";\n ImageEditorCommand[\"Line\"] = \"Line\";\n ImageEditorCommand[\"Arrow\"] = \"Arrow\";\n ImageEditorCommand[\"Rectangle\"] = \"Rectangle\";\n ImageEditorCommand[\"Ellipse\"] = \"Ellipse\";\n ImageEditorCommand[\"Text\"] = \"Text\";\n ImageEditorCommand[\"CustomSelection\"] = \"CustomSelection\";\n ImageEditorCommand[\"CircleSelection\"] = \"CircleSelection\";\n ImageEditorCommand[\"SquareSelection\"] = \"SquareSelection\";\n ImageEditorCommand[\"RatioSelection\"] = \"RatioSelection\";\n ImageEditorCommand[\"RotateLeft\"] = \"RotateLeft\";\n ImageEditorCommand[\"RotateRight\"] = \"RotateRight\";\n ImageEditorCommand[\"FlipHorizontal\"] = \"FlipHorizontal\";\n ImageEditorCommand[\"FlipVertical\"] = \"FlipVertical\";\n})(ImageEditorCommand || (ImageEditorCommand = {}));\n/**\n * An enumeration of available image filter options.\n *\n * @remarks\n * These options can be used with the `applyImageFilter` method of the image editor control to apply filters to an image.\n */\nexport var ImageFilterOption;\n(function (ImageFilterOption) {\n /** Default filter */\n ImageFilterOption[\"Default\"] = \"Default\";\n /** Chrome filter */\n ImageFilterOption[\"Chrome\"] = \"Chrome\";\n /** Cold filter */\n ImageFilterOption[\"Cold\"] = \"Cold\";\n /** Warm filter */\n ImageFilterOption[\"Warm\"] = \"Warm\";\n /** Grayscale filter */\n ImageFilterOption[\"Grayscale\"] = \"Grayscale\";\n /** Sepia filter */\n ImageFilterOption[\"Sepia\"] = \"Sepia\";\n /** Invert filter */\n ImageFilterOption[\"Invert\"] = \"Invert\";\n})(ImageFilterOption || (ImageFilterOption = {}));\n/**\n * An enumeration of available image finetune options.\n *\n * @remarks\n * These options can be used with the `finetuneImage` method of the image editor control to apply finetuning to an image.\n */\nexport var ImageFinetuneOption;\n(function (ImageFinetuneOption) {\n /** Adjust the brightness of the image */\n ImageFinetuneOption[\"Brightness\"] = \"Brightness\";\n /** Adjust the contrast of the image */\n ImageFinetuneOption[\"Contrast\"] = \"Contrast\";\n /** Adjust the hue of the image */\n ImageFinetuneOption[\"Hue\"] = \"Hue\";\n /** Adjust the saturation of the image */\n ImageFinetuneOption[\"Saturation\"] = \"Saturation\";\n /** Adjust the exposure of the image */\n ImageFinetuneOption[\"Exposure\"] = \"Exposure\";\n /** Adjust the opacity of the image */\n ImageFinetuneOption[\"Opacity\"] = \"Opacity\";\n /** Adjust the blur of the image */\n ImageFinetuneOption[\"Blur\"] = \"Blur\";\n})(ImageFinetuneOption || (ImageFinetuneOption = {}));\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { ImageEditor } from '@syncfusion/ej2-image-editor';\nimport { ComponentBase, applyMixins } from '@syncfusion/ej2-react-base';\n/**\n * Represents the React ImageEditor Component\n * ```html\n * \n * ```\n */\nvar ImageEditorComponent = /** @class */ (function (_super) {\n __extends(ImageEditorComponent, _super);\n function ImageEditorComponent(props) {\n var _this = _super.call(this, props) || this;\n _this.initRenderCalled = false;\n _this.checkInjectedModules = false;\n _this.statelessTemplateProps = null;\n _this.templateProps = null;\n _this.immediateRender = false;\n _this.portals = [];\n return _this;\n }\n ImageEditorComponent.prototype.render = function () {\n if (((this.element && !this.initRenderCalled) || this.refreshing) && !this.isReactForeceUpdate) {\n _super.prototype.render.call(this);\n this.initRenderCalled = true;\n }\n else {\n return React.createElement('div', this.getDefaultAttributes(), [].concat(this.props.children, this.portals));\n }\n };\n return ImageEditorComponent;\n}(ImageEditor));\nexport { ImageEditorComponent };\napplyMixins(ImageEditorComponent, [ComponentBase, React.Component]);\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nexport const strShimFunction = \"function\";\r\nexport const strShimObject = \"object\";\r\nexport const strShimUndefined = \"undefined\";\r\nexport const strShimPrototype = \"prototype\";\r\nexport const strShimHasOwnProperty = \"hasOwnProperty\";\r\nexport const strDefault = \"default\";\r\n\r\nexport const ObjClass = Object;\r\nexport const ObjProto = ObjClass[strShimPrototype];\r\nexport const ObjAssign = ObjClass[\"assign\"];\r\nexport const ObjCreate = ObjClass[\"create\"];\r\nexport const ObjDefineProperty = ObjClass[\"defineProperty\"];\r\nexport const ObjHasOwnProperty = ObjProto[strShimHasOwnProperty];\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport { ObjCreate, strShimFunction, strShimObject, strShimPrototype, strShimUndefined } from \"./Constants\";\r\n\r\ndeclare var globalThis: Window;\r\ndeclare var global: Window;\r\n\r\nlet _cachedGlobal: Window = null;\r\n\r\n/**\r\n * Returns the current global scope object, for a normal web page this will be the current\r\n * window, for a Web Worker this will be current worker global scope via \"self\". The internal\r\n * implementation returns the first available instance object in the following order\r\n * - globalThis (New standard)\r\n * - self (Will return the current window instance for supported browsers)\r\n * - window (fallback for older browser implementations)\r\n * - global (NodeJS standard)\r\n * - (When all else fails)\r\n * While the return type is a Window for the normal case, not all environments will support all\r\n * of the properties or functions.\r\n */\r\nexport function getGlobal(useCached: boolean = true): Window {\r\n let result = useCached === false ? null : _cachedGlobal;\r\n\r\n if (!result) {\r\n if (typeof globalThis !== strShimUndefined) {\r\n result = globalThis;\r\n }\r\n\r\n if (!result && typeof self !== strShimUndefined) {\r\n result = self;\r\n }\r\n\r\n if (!result && typeof window !== strShimUndefined) {\r\n result = window;\r\n }\r\n \r\n if (!result && typeof global !== strShimUndefined) {\r\n result = global;\r\n }\r\n\r\n _cachedGlobal = result;\r\n }\r\n\r\n return result;\r\n}\r\n\r\nexport function throwTypeError(message: string): never {\r\n throw new TypeError(message);\r\n}\r\n\r\n/**\r\n * Creates an object that has the specified prototype, and that optionally contains specified properties. This helper exists to avoid adding a polyfil\r\n * for older browsers that do not define Object.create eg. ES3 only, IE8 just in case any page checks for presence/absence of the prototype implementation.\r\n * Note: For consistency this will not use the Object.create implementation if it exists as this would cause a testing requirement to test with and without the implementations\r\n * @param obj Object to use as a prototype. May be null\r\n */\r\nexport function objCreateFn(obj: any): any {\r\n var func = ObjCreate;\r\n // Use build in Object.create\r\n if (func) {\r\n // Use Object create method if it exists\r\n return func(obj);\r\n }\r\n if (obj == null) {\r\n return {};\r\n }\r\n var type = typeof obj;\r\n if (type !== strShimObject && type !== strShimFunction) {\r\n throwTypeError(\"Object prototype may only be an Object:\" + obj);\r\n }\r\n\r\n function tmpFunc() {}\r\n tmpFunc[strShimPrototype] = obj;\r\n\r\n return new (tmpFunc as any)();\r\n}\r\n\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport {\r\n ObjAssign, ObjClass, ObjCreate, ObjDefineProperty, ObjHasOwnProperty, ObjProto,\r\n strDefault, strShimFunction, strShimHasOwnProperty, strShimPrototype\r\n} from \"./Constants\";\r\nimport { getGlobal, objCreateFn, throwTypeError } from \"./Helpers\";\r\n\r\n// Most of these functions have been directly shamelessly \"lifted\" from the https://github.com/@microsoft/tslib and\r\n// modified to be ES3 compatible and applying several minification and tree-shaking techniques so that Application Insights\r\n// can successfully use TypeScript \"importHelpers\" which imports tslib during compilation but it will use these at runtime\r\n// Which is also why all of the functions have not been included as Application Insights currently doesn't use or require\r\n// them.\r\n\r\nexport const SymbolObj = (getGlobal()||{})[\"Symbol\"];\r\nexport const ReflectObj = (getGlobal()||{})[\"Reflect\"];\r\nexport const __hasSymbol = !!SymbolObj;\r\nexport const __hasReflect = !!ReflectObj;\r\n\r\nconst strDecorate = \"decorate\";\r\nconst strMetadata = \"metadata\";\r\nconst strGetOwnPropertySymbols = \"getOwnPropertySymbols\";\r\nconst strIterator = \"iterator\";\r\n\r\nexport declare type ObjAssignFunc = (t: any, ...sources:any[]) => any;\r\n\r\nexport var __objAssignFnImpl: ObjAssignFunc = function(t: any): any {\r\n // tslint:disable-next-line: ban-comma-operator\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) {\r\n if (ObjProto[strShimHasOwnProperty].call(s, p)) {\r\n (t as any)[p] = s[p];\r\n }\r\n }\r\n }\r\n return t;\r\n};\r\n\r\nexport var __assignFn: ObjAssignFunc = ObjAssign || __objAssignFnImpl;\r\n\r\n// tslint:disable-next-line: only-arrow-functions\r\nvar extendStaticsFn = function(d: any, b: any): any {\r\n extendStaticsFn = ObjClass[\"setPrototypeOf\"] ||\r\n // tslint:disable-next-line: only-arrow-functions\r\n ({ __proto__: [] } instanceof Array && function (d: any, b: any) {\r\n d.__proto__ = b;\r\n }) ||\r\n // tslint:disable-next-line: only-arrow-functions\r\n function (d: any, b: any) {\r\n for (var p in b) {\r\n if (b[strShimHasOwnProperty](p)) {\r\n d[p] = b[p];\r\n }\r\n }\r\n };\r\n return extendStaticsFn(d, b);\r\n};\r\n\r\nexport function __extendsFn(d: any, b: any) {\r\n if (typeof b !== strShimFunction && b !== null) {\r\n throwTypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n }\r\n extendStaticsFn(d, b);\r\n function __(this: any) {\r\n this.constructor = d;\r\n }\r\n // tslint:disable-next-line: ban-comma-operator\r\n d[strShimPrototype] = b === null ? objCreateFn(b) : (__[strShimPrototype] = b[strShimPrototype], new (__ as any)());\r\n}\r\n\r\nexport function __restFn(s: any, e: any) {\r\n var t = {};\r\n for (var k in s) {\r\n if (ObjHasOwnProperty.call(s, k) && e.indexOf(k) < 0) {\r\n t[k] = s[k];\r\n }\r\n }\r\n if (s != null && typeof ObjClass[strGetOwnPropertySymbols] === strShimFunction) {\r\n for (var i = 0, p = ObjClass[strGetOwnPropertySymbols](s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && ObjProto[\"propertyIsEnumerable\"].call(s, p[i])) {\r\n t[p[i]] = s[p[i]];\r\n }\r\n }\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorateFn(decorators: any, target: any, key: any, desc: any) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = ObjClass[\"getOwnPropertyDescriptor\"](target, key) : desc, d;\r\n if (__hasReflect && typeof ReflectObj[strDecorate] === strShimFunction) {\r\n r = ReflectObj[strDecorate](decorators, target, key, desc);\r\n } else {\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n // eslint-disable-next-line no-cond-assign\r\n if (d = decorators[i]) {\r\n r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n }\r\n }\r\n }\r\n\r\n // tslint:disable-next-line:ban-comma-operator\r\n return c > 3 && r && ObjDefineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __paramFn(paramIndex: number, decorator: Function) {\r\n return function (target: any, key: any) {\r\n decorator(target, key, paramIndex);\r\n }\r\n}\r\n\r\nexport function __metadataFn(metadataKey: any, metadataValue: any) {\r\n if (__hasReflect && ReflectObj[strMetadata] === strShimFunction) {\r\n return ReflectObj[strMetadata](metadataKey, metadataValue);\r\n }\r\n}\r\n\r\nexport function __exportStarFn(m: any, o: any) {\r\n for (var p in m) {\r\n if (p !== strDefault && !ObjHasOwnProperty.call(o, p)) {\r\n __createBindingFn(o, m, p);\r\n }\r\n }\r\n}\r\n\r\nexport function __createBindingFn(o: any, m: any, k: any, k2?: any) {\r\n if (k2 === undefined) {\r\n k2 = k;\r\n }\r\n \r\n if (!!ObjCreate) {\r\n ObjDefineProperty(o, k2, {\r\n enumerable: true,\r\n get() {\r\n return m[k];\r\n }\r\n });\r\n } else {\r\n o[k2] = m[k];\r\n }\r\n}\r\n\r\nexport function __valuesFn(o: any) {\r\n var s = typeof SymbolObj === strShimFunction && SymbolObj[strIterator], m = s && o[s], i = 0;\r\n if (m) {\r\n return m.call(o);\r\n }\r\n\r\n if (o && typeof o.length === \"number\") {\r\n return {\r\n next () {\r\n if (o && i >= o.length) {\r\n o = void 0;\r\n }\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n }\r\n\r\n throwTypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __readFn(o: any, n: any) {\r\n var m = typeof SymbolObj === strShimFunction && o[SymbolObj[strIterator]];\r\n if (!m) {\r\n return o;\r\n }\r\n\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\r\n ar.push(r.value);\r\n }\r\n } catch (error) {\r\n e = {\r\n error\r\n };\r\n } finally {\r\n try {\r\n // tslint:disable-next-line:no-conditional-assignment\r\n if (r && !r.done && (m = i[\"return\"])) {\r\n m.call(i);\r\n }\r\n } finally {\r\n if (e) {\r\n // eslint-disable-next-line no-unsafe-finally\r\n throw e.error;\r\n }\r\n }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArraysFn() {\r\n var theArgs = arguments;\r\n // Calculate new total size\r\n for (var s = 0, i = 0, il = theArgs.length; i < il; i++) {\r\n s += theArgs[i].length;\r\n }\r\n\r\n // Create new full array\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\r\n for (var a = theArgs[i], j = 0, jl = a.length; j < jl; j++, k++) {\r\n r[k] = a[j];\r\n }\r\n }\r\n\r\n return r;\r\n}\r\n\r\nexport function __spreadArrayFn(to: any, from: any) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) {\r\n to[j] = from[i];\r\n }\r\n\r\n return to;\r\n}\r\n\r\nexport function __makeTemplateObjectFn(cooked: any, raw: any) {\r\n if (ObjDefineProperty) {\r\n ObjDefineProperty(cooked, \"raw\", { value: raw });\r\n } else {\r\n cooked.raw = raw;\r\n }\r\n\r\n return cooked;\r\n}\r\n\r\nexport function __importStarFn(mod: any) {\r\n if (mod && mod.__esModule) {\r\n return mod;\r\n }\r\n\r\n var result = {};\r\n if (mod != null) {\r\n for (var k in mod) {\r\n if (k !== strDefault && Object.prototype.hasOwnProperty.call(mod, k)) {\r\n __createBindingFn(result, mod, k);\r\n }\r\n }\r\n }\r\n\r\n // Set default module\r\n if (!!ObjCreate) {\r\n ObjDefineProperty( result, strDefault, { enumerable: true, value: mod });\r\n } else {\r\n result[strDefault] = mod;\r\n }\r\n\r\n return result;\r\n}\r\n\r\nexport function __importDefaultFn(mod:any) {\r\n return (mod && mod.__esModule) ? mod : { strDefault: mod };\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nvar _a;\r\n;\r\nvar UNDEFINED = \"undefined\";\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar Constructor = 'constructor';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar Prototype = 'prototype';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar strFunction = 'function';\r\n/**\r\n * Used to define the name of the instance function lookup table\r\n * @ignore\r\n */\r\nvar DynInstFuncTable = '_dynInstFuncs';\r\n/**\r\n * Name used to tag the dynamic prototype function\r\n * @ignore\r\n */\r\nvar DynProxyTag = '_isDynProxy';\r\n/**\r\n * Name added to a prototype to define the dynamic prototype \"class\" name used to lookup the function table\r\n * @ignore\r\n */\r\nvar DynClassName = '_dynClass';\r\n/**\r\n * Prefix added to the classname to avoid any name clashes with other instance level properties\r\n * @ignore\r\n */\r\nvar DynClassNamePrefix = '_dynCls$';\r\n/**\r\n * A tag which is used to check if we have already to attempted to set the instance function if one is not present\r\n * @ignore\r\n */\r\nvar DynInstChkTag = '_dynInstChk';\r\n/**\r\n * A tag which is used to check if we are allows to try and set an instance function is one is not present. Using the same\r\n * tag name as the function level but a different const name for readability only.\r\n */\r\nvar DynAllowInstChkTag = DynInstChkTag;\r\n/**\r\n * The global (imported) instances where the global performance options are stored\r\n */\r\nvar DynProtoDefaultOptions = '_dfOpts';\r\n/**\r\n * Value used as the name of a class when it cannot be determined\r\n * @ignore\r\n */\r\nvar UnknownValue = '_unknown_';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar str__Proto = \"__proto__\";\r\n/**\r\n * The polyfill version of __proto__ so that it doesn't cause issues for anyone not expecting it to exist\r\n */\r\nvar DynProtoBaseProto = \"_dyn\" + str__Proto;\r\n/**\r\n * Runtime Global holder for dynamicProto settings\r\n */\r\nvar DynProtoGlobalSettings = \"__dynProto$Gbl\";\r\n/**\r\n * Track the current prototype for IE8 as you can't look back to get the prototype\r\n */\r\nvar DynProtoCurrent = \"_dynInstProto\";\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar strUseBaseInst = 'useBaseInst';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar strSetInstFuncs = 'setInstFuncs';\r\nvar Obj = Object;\r\n/**\r\n * Pre-lookup to check if we are running on a modern browser (i.e. not IE8)\r\n * @ignore\r\n */\r\nvar _objGetPrototypeOf = Obj[\"getPrototypeOf\"];\r\n/**\r\n * Pre-lookup to check for the existence of this function\r\n */\r\nvar _objGetOwnProps = Obj[\"getOwnPropertyNames\"];\r\n/**\r\n * Gets the runtime global reference\r\n * @returns\r\n */\r\nfunction _getGlobal() {\r\n var result;\r\n if (typeof globalThis !== UNDEFINED) {\r\n result = globalThis;\r\n }\r\n if (!result && typeof self !== UNDEFINED) {\r\n result = self;\r\n }\r\n if (!result && typeof window !== UNDEFINED) {\r\n result = window;\r\n }\r\n if (!result && typeof global !== UNDEFINED) {\r\n result = global;\r\n }\r\n return result || {};\r\n}\r\n// Since 1.1.7 moving these to the runtime global to work around mixed version and module issues\r\n// See Issue https://github.com/microsoft/DynamicProto-JS/issues/57 for details\r\nvar _gbl = _getGlobal();\r\nvar _gblInst = _gbl[DynProtoGlobalSettings] || (_gbl[DynProtoGlobalSettings] = {\r\n o: (_a = {},\r\n _a[strSetInstFuncs] = true,\r\n _a[strUseBaseInst] = true,\r\n _a),\r\n n: 1000 // Start new global index @ 1000 so we \"fix\" some cases when mixed with 1.1.6 or earlier\r\n});\r\n/**\r\n * Helper to check if the object contains a property of the name\r\n * @ignore\r\n */\r\nfunction _hasOwnProperty(obj, prop) {\r\n return obj && Obj[Prototype].hasOwnProperty.call(obj, prop);\r\n}\r\n/**\r\n * Helper used to check whether the target is an Object prototype or Array prototype\r\n * @ignore\r\n */\r\nfunction _isObjectOrArrayPrototype(target) {\r\n return target && (target === Obj[Prototype] || target === Array[Prototype]);\r\n}\r\n/**\r\n * Helper used to check whether the target is an Object prototype, Array prototype or Function prototype\r\n * @ignore\r\n */\r\nfunction _isObjectArrayOrFunctionPrototype(target) {\r\n return _isObjectOrArrayPrototype(target) || target === Function[Prototype];\r\n}\r\n/**\r\n * Helper used to get the prototype of the target object as getPrototypeOf is not available in an ES3 environment.\r\n * @ignore\r\n */\r\nfunction _getObjProto(target) {\r\n var newProto;\r\n if (target) {\r\n // This method doesn't exist in older browsers (e.g. IE8)\r\n if (_objGetPrototypeOf) {\r\n return _objGetPrototypeOf(target);\r\n }\r\n var curProto = target[str__Proto] || target[Prototype] || (target[Constructor] ? target[Constructor][Prototype] : null);\r\n // Using the pre-calculated value as IE8 doesn't support looking up the prototype of a prototype and thus fails for more than 1 base class\r\n newProto = target[DynProtoBaseProto] || curProto;\r\n if (!_hasOwnProperty(target, DynProtoBaseProto)) {\r\n // As this prototype doesn't have this property then this is from an inherited class so newProto is the base to return so save it\r\n // so we can look it up value (which for a multiple hierarchy dynamicProto will be the base class)\r\n delete target[DynProtoCurrent]; // Delete any current value allocated to this instance so we pick up the value from prototype hierarchy\r\n newProto = target[DynProtoBaseProto] = target[DynProtoCurrent] || target[DynProtoBaseProto];\r\n target[DynProtoCurrent] = curProto;\r\n }\r\n }\r\n return newProto;\r\n}\r\n/**\r\n * Helper to get the properties of an object, including none enumerable ones as functions on a prototype in ES6\r\n * are not enumerable.\r\n * @param target\r\n */\r\nfunction _forEachProp(target, func) {\r\n var props = [];\r\n if (_objGetOwnProps) {\r\n props = _objGetOwnProps(target);\r\n }\r\n else {\r\n for (var name_1 in target) {\r\n if (typeof name_1 === \"string\" && _hasOwnProperty(target, name_1)) {\r\n props.push(name_1);\r\n }\r\n }\r\n }\r\n if (props && props.length > 0) {\r\n for (var lp = 0; lp < props.length; lp++) {\r\n func(props[lp]);\r\n }\r\n }\r\n}\r\n/**\r\n * Helper function to check whether the provided function name is a potential candidate for dynamic\r\n * callback and prototype generation.\r\n * @param target The target object, may be a prototype or class object\r\n * @param funcName The function name\r\n * @param skipOwn Skips the check for own property\r\n * @ignore\r\n */\r\nfunction _isDynamicCandidate(target, funcName, skipOwn) {\r\n return (funcName !== Constructor && typeof target[funcName] === strFunction && (skipOwn || _hasOwnProperty(target, funcName)) && funcName !== str__Proto && funcName !== Prototype);\r\n}\r\n/**\r\n * Helper to throw a TypeError exception\r\n * @param message the message\r\n * @ignore\r\n */\r\nfunction _throwTypeError(message) {\r\n throw new TypeError(\"DynamicProto: \" + message);\r\n}\r\nfunction _newObject() {\r\n return Object.create ? Object.create(null) : {};\r\n}\r\n/**\r\n * Returns a collection of the instance functions that are defined directly on the thisTarget object, it does\r\n * not return any inherited functions\r\n * @param thisTarget The object to get the instance functions from\r\n * @ignore\r\n */\r\nfunction _getInstanceFuncs(thisTarget) {\r\n // Get the base proto\r\n var instFuncs = _newObject();\r\n // Save any existing instance functions\r\n _forEachProp(thisTarget, function (name) {\r\n // Don't include any dynamic prototype instances - as we only want the real functions\r\n if (!instFuncs[name] && _isDynamicCandidate(thisTarget, name, false)) {\r\n // Create an instance callback for passing the base function to the caller\r\n instFuncs[name] = thisTarget[name];\r\n }\r\n });\r\n return instFuncs;\r\n}\r\n/**\r\n * Returns whether the value is included in the array\r\n * @param values The array of values\r\n * @param value The value\r\n */\r\nfunction _hasVisited(values, value) {\r\n for (var lp = values.length - 1; lp >= 0; lp--) {\r\n if (values[lp] === value) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\n/**\r\n * Returns an object that contains callback functions for all \"base/super\" functions, this is used to \"save\"\r\n * enabling calling super.xxx() functions without requiring that the base \"class\" has defined a prototype references\r\n * @param target The current instance\r\n * @ignore\r\n */\r\nfunction _getBaseFuncs(classProto, thisTarget, instFuncs, useBaseInst) {\r\n function _instFuncProxy(target, funcHost, funcName) {\r\n var theFunc = funcHost[funcName];\r\n if (theFunc[DynProxyTag] && useBaseInst) {\r\n // grab and reuse the hosted looking function (if available) otherwise the original passed function\r\n var instFuncTable = target[DynInstFuncTable] || {};\r\n if (instFuncTable[DynAllowInstChkTag] !== false) {\r\n theFunc = (instFuncTable[funcHost[DynClassName]] || {})[funcName] || theFunc;\r\n }\r\n }\r\n return function () {\r\n // eslint-disable-next-line prefer-rest-params\r\n return theFunc.apply(target, arguments);\r\n };\r\n }\r\n // Start creating a new baseFuncs by creating proxies for the instance functions (as they may get replaced)\r\n var baseFuncs = _newObject();\r\n _forEachProp(instFuncs, function (name) {\r\n // Create an instance callback for passing the base function to the caller\r\n baseFuncs[name] = _instFuncProxy(thisTarget, instFuncs, name);\r\n });\r\n // Get the base prototype functions\r\n var baseProto = _getObjProto(classProto);\r\n var visited = [];\r\n // Don't include base object functions for Object, Array or Function\r\n while (baseProto && !_isObjectArrayOrFunctionPrototype(baseProto) && !_hasVisited(visited, baseProto)) {\r\n // look for prototype functions\r\n _forEachProp(baseProto, function (name) {\r\n // Don't include any dynamic prototype instances - as we only want the real functions\r\n // For IE 7/8 the prototype lookup doesn't provide the full chain so we need to bypass the \r\n // hasOwnProperty check we get all of the methods, main difference is that IE7/8 doesn't return\r\n // the Object prototype methods while bypassing the check\r\n if (!baseFuncs[name] && _isDynamicCandidate(baseProto, name, !_objGetPrototypeOf)) {\r\n // Create an instance callback for passing the base function to the caller\r\n baseFuncs[name] = _instFuncProxy(thisTarget, baseProto, name);\r\n }\r\n });\r\n // We need to find all possible functions that might be overloaded by walking the entire prototype chain\r\n // This avoids the caller from needing to check whether it's direct base class implements the function or not\r\n // by walking the entire chain it simplifies the usage and issues from upgrading any of the base classes.\r\n visited.push(baseProto);\r\n baseProto = _getObjProto(baseProto);\r\n }\r\n return baseFuncs;\r\n}\r\nfunction _getInstFunc(target, funcName, proto, currentDynProtoProxy) {\r\n var instFunc = null;\r\n // We need to check whether the class name is defined directly on this prototype otherwise\r\n // it will walk the proto chain and return any parent proto classname.\r\n if (target && _hasOwnProperty(proto, DynClassName)) {\r\n var instFuncTable = target[DynInstFuncTable] || _newObject();\r\n instFunc = (instFuncTable[proto[DynClassName]] || _newObject())[funcName];\r\n if (!instFunc) {\r\n // Avoid stack overflow from recursive calling the same function\r\n _throwTypeError(\"Missing [\" + funcName + \"] \" + strFunction);\r\n }\r\n // We have the instance function, lets check it we can speed up further calls\r\n // by adding the instance function back directly on the instance (avoiding the dynamic func lookup)\r\n if (!instFunc[DynInstChkTag] && instFuncTable[DynAllowInstChkTag] !== false) {\r\n // If the instance already has an instance function we can't replace it\r\n var canAddInst = !_hasOwnProperty(target, funcName);\r\n // Get current prototype\r\n var objProto = _getObjProto(target);\r\n var visited = [];\r\n // Lookup the function starting at the top (instance level prototype) and traverse down, if the first matching function\r\n // if nothing is found or if the first hit is a dynamic proto instance then we can safely add an instance shortcut\r\n while (canAddInst && objProto && !_isObjectArrayOrFunctionPrototype(objProto) && !_hasVisited(visited, objProto)) {\r\n var protoFunc = objProto[funcName];\r\n if (protoFunc) {\r\n canAddInst = (protoFunc === currentDynProtoProxy);\r\n break;\r\n }\r\n // We need to find all possible initial functions to ensure that we don't bypass a valid override function\r\n visited.push(objProto);\r\n objProto = _getObjProto(objProto);\r\n }\r\n try {\r\n if (canAddInst) {\r\n // This instance doesn't have an instance func and the class hierarchy does have a higher level prototype version\r\n // so it's safe to directly assign for any subsequent calls (for better performance)\r\n target[funcName] = instFunc;\r\n }\r\n // Block further attempts to set the instance function for any\r\n instFunc[DynInstChkTag] = 1;\r\n }\r\n catch (e) {\r\n // Don't crash if the object is readonly or the runtime doesn't allow changing this\r\n // And set a flag so we don't try again for any function\r\n instFuncTable[DynAllowInstChkTag] = false;\r\n }\r\n }\r\n }\r\n return instFunc;\r\n}\r\nfunction _getProtoFunc(funcName, proto, currentDynProtoProxy) {\r\n var protoFunc = proto[funcName];\r\n // Check that the prototype function is not a self reference -- try to avoid stack overflow!\r\n if (protoFunc === currentDynProtoProxy) {\r\n // It is so lookup the base prototype\r\n protoFunc = _getObjProto(proto)[funcName];\r\n }\r\n if (typeof protoFunc !== strFunction) {\r\n _throwTypeError(\"[\" + funcName + \"] is not a \" + strFunction);\r\n }\r\n return protoFunc;\r\n}\r\n/**\r\n * Add the required dynamic prototype methods to the the class prototype\r\n * @param proto - The class prototype\r\n * @param className - The instance classname\r\n * @param target - The target instance\r\n * @param baseInstFuncs - The base instance functions\r\n * @param setInstanceFunc - Flag to allow prototype function to reset the instance function if one does not exist\r\n * @ignore\r\n */\r\nfunction _populatePrototype(proto, className, target, baseInstFuncs, setInstanceFunc) {\r\n function _createDynamicPrototype(proto, funcName) {\r\n var dynProtoProxy = function () {\r\n // Use the instance or prototype function\r\n var instFunc = _getInstFunc(this, funcName, proto, dynProtoProxy) || _getProtoFunc(funcName, proto, dynProtoProxy);\r\n // eslint-disable-next-line prefer-rest-params\r\n return instFunc.apply(this, arguments);\r\n };\r\n // Tag this function as a proxy to support replacing dynamic proxy elements (primary use case is for unit testing\r\n // via which can dynamically replace the prototype function reference)\r\n dynProtoProxy[DynProxyTag] = 1;\r\n return dynProtoProxy;\r\n }\r\n if (!_isObjectOrArrayPrototype(proto)) {\r\n var instFuncTable = target[DynInstFuncTable] = target[DynInstFuncTable] || _newObject();\r\n if (!_isObjectOrArrayPrototype(instFuncTable)) {\r\n var instFuncs_1 = instFuncTable[className] = (instFuncTable[className] || _newObject()); // fetch and assign if as it may not exist yet\r\n // Set whether we are allow to lookup instances, if someone has set to false then do not re-enable\r\n if (instFuncTable[DynAllowInstChkTag] !== false) {\r\n instFuncTable[DynAllowInstChkTag] = !!setInstanceFunc;\r\n }\r\n if (!_isObjectOrArrayPrototype(instFuncs_1)) {\r\n _forEachProp(target, function (name) {\r\n // Only add overridden functions\r\n if (_isDynamicCandidate(target, name, false) && target[name] !== baseInstFuncs[name]) {\r\n // Save the instance Function to the lookup table and remove it from the instance as it's not a dynamic proto function\r\n instFuncs_1[name] = target[name];\r\n delete target[name];\r\n // Add a dynamic proto if one doesn't exist or if a prototype function exists and it's not a dynamic one\r\n if (!_hasOwnProperty(proto, name) || (proto[name] && !proto[name][DynProxyTag])) {\r\n proto[name] = _createDynamicPrototype(proto, name);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n }\r\n}\r\n/**\r\n * Checks whether the passed prototype object appears to be correct by walking the prototype hierarchy of the instance\r\n * @param classProto The class prototype instance\r\n * @param thisTarget The current instance that will be checked whether the passed prototype instance is in the hierarchy\r\n * @ignore\r\n */\r\nfunction _checkPrototype(classProto, thisTarget) {\r\n // This method doesn't existing in older browsers (e.g. IE8)\r\n if (_objGetPrototypeOf) {\r\n // As this is primarily a coding time check, don't bother checking if running in IE8 or lower\r\n var visited = [];\r\n var thisProto = _getObjProto(thisTarget);\r\n while (thisProto && !_isObjectArrayOrFunctionPrototype(thisProto) && !_hasVisited(visited, thisProto)) {\r\n if (thisProto === classProto) {\r\n return true;\r\n }\r\n // This avoids the caller from needing to check whether it's direct base class implements the function or not\r\n // by walking the entire chain it simplifies the usage and issues from upgrading any of the base classes.\r\n visited.push(thisProto);\r\n thisProto = _getObjProto(thisProto);\r\n }\r\n return false;\r\n }\r\n // If objGetPrototypeOf doesn't exist then just assume everything is ok.\r\n return true;\r\n}\r\n/**\r\n * Gets the current prototype name using the ES6 name if available otherwise falling back to a use unknown as the name.\r\n * It's not critical for this to return a name, it's used to decorate the generated unique name for easier debugging only.\r\n * @param target\r\n * @param unknownValue\r\n * @ignore\r\n */\r\nfunction _getObjName(target, unknownValue) {\r\n if (_hasOwnProperty(target, Prototype)) {\r\n // Look like a prototype\r\n return target.name || unknownValue || UnknownValue;\r\n }\r\n return (((target || {})[Constructor]) || {}).name || unknownValue || UnknownValue;\r\n}\r\n/**\r\n * Helper function when creating dynamic (inline) functions for classes, this helper performs the following tasks :-\r\n * - Saves references to all defined base class functions\r\n * - Calls the delegateFunc with the current target (this) and a base object reference that can be used to call all \"super\" functions.\r\n * - Will populate the class prototype for all overridden functions to support class extension that call the prototype instance.\r\n * Callers should use this helper when declaring all function within the constructor of a class, as mentioned above the delegateFunc is\r\n * passed both the target \"this\" and an object that can be used to call any base (super) functions, using this based object in place of\r\n * super.XXX() (which gets expanded to _super.prototype.XXX()) provides a better minification outcome and also ensures the correct \"this\"\r\n * context is maintained as TypeScript creates incorrect references using super.XXXX() for dynamically defined functions i.e. Functions\r\n * defined in the constructor or some other function (rather than declared as complete typescript functions).\r\n * ### Usage\r\n * ```typescript\r\n * import dynamicProto from \"@microsoft/dynamicproto-js\";\r\n * class ExampleClass extends BaseClass {\r\n * constructor() {\r\n * dynamicProto(ExampleClass, this, (_self, base) => {\r\n * // This will define a function that will be converted to a prototype function\r\n * _self.newFunc = () => {\r\n * // Access any \"this\" instance property\r\n * if (_self.someProperty) {\r\n * ...\r\n * }\r\n * }\r\n * // This will define a function that will be converted to a prototype function\r\n * _self.myFunction = () => {\r\n * // Access any \"this\" instance property\r\n * if (_self.someProperty) {\r\n * // Call the base version of the function that we are overriding\r\n * base.myFunction();\r\n * }\r\n * ...\r\n * }\r\n * _self.initialize = () => {\r\n * ...\r\n * }\r\n * // Warnings: While the following will work as _self is simply a reference to\r\n * // this, if anyone overrides myFunction() the overridden will be called first\r\n * // as the normal JavaScript method resolution will occur and the defined\r\n * // _self.initialize() function is actually gets removed from the instance and\r\n * // a proxy prototype version is created to reference the created method.\r\n * _self.initialize();\r\n * });\r\n * }\r\n * }\r\n * ```\r\n * @typeparam DPType This is the generic type of the class, used to keep intellisense valid\r\n * @typeparam DPCls The type that contains the prototype of the current class\r\n * @param theClass - This is the current class instance which contains the prototype for the current class\r\n * @param target - The current \"this\" (target) reference, when the class has been extended this.prototype will not be the 'theClass' value.\r\n * @param delegateFunc - The callback function (closure) that will create the dynamic function\r\n * @param options - Additional options to configure how the dynamic prototype operates\r\n */\r\nexport default function dynamicProto(theClass, target, delegateFunc, options) {\r\n // Make sure that the passed theClass argument looks correct\r\n if (!_hasOwnProperty(theClass, Prototype)) {\r\n _throwTypeError(\"theClass is an invalid class definition.\");\r\n }\r\n // Quick check to make sure that the passed theClass argument looks correct (this is a common copy/paste error)\r\n var classProto = theClass[Prototype];\r\n if (!_checkPrototype(classProto, target)) {\r\n _throwTypeError(\"[\" + _getObjName(theClass) + \"] not in hierarchy of [\" + _getObjName(target) + \"]\");\r\n }\r\n var className = null;\r\n if (_hasOwnProperty(classProto, DynClassName)) {\r\n // Only grab the class name if it's defined on this prototype (i.e. don't walk the prototype chain)\r\n className = classProto[DynClassName];\r\n }\r\n else {\r\n // As not all browser support name on the prototype creating a unique dynamic one if we have not already\r\n // assigned one, so we can use a simple string as the lookup rather than an object for the dynamic instance\r\n // function table lookup.\r\n className = DynClassNamePrefix + _getObjName(theClass, \"_\") + \"$\" + _gblInst.n;\r\n _gblInst.n++;\r\n classProto[DynClassName] = className;\r\n }\r\n var perfOptions = dynamicProto[DynProtoDefaultOptions];\r\n var useBaseInst = !!perfOptions[strUseBaseInst];\r\n if (useBaseInst && options && options[strUseBaseInst] !== undefined) {\r\n useBaseInst = !!options[strUseBaseInst];\r\n }\r\n // Get the current instance functions\r\n var instFuncs = _getInstanceFuncs(target);\r\n // Get all of the functions for any base instance (before they are potentially overridden)\r\n var baseFuncs = _getBaseFuncs(classProto, target, instFuncs, useBaseInst);\r\n // Execute the delegate passing in both the current target \"this\" and \"base\" function references\r\n // Note casting the same type as we don't actually have the base class here and this will provide some intellisense support\r\n delegateFunc(target, baseFuncs);\r\n // Don't allow setting instance functions for older IE instances\r\n var setInstanceFunc = !!_objGetPrototypeOf && !!perfOptions[strSetInstFuncs];\r\n if (setInstanceFunc && options) {\r\n setInstanceFunc = !!options[strSetInstFuncs];\r\n }\r\n // Populate the Prototype for any overridden instance functions\r\n _populatePrototype(classProto, className, target, instFuncs, setInstanceFunc !== false);\r\n}\r\n/**\r\n * Exposes the default global options to allow global configuration, if the global values are disabled these will override\r\n * any passed values. This is primarily exposed to support unit-testing without the need for individual classes to expose\r\n * their internal usage of dynamic proto.\r\n */\r\ndynamicProto[DynProtoDefaultOptions] = _gblInst.o;\r\n//# sourceMappingURL=DynamicProto.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_INITIALIZE = \"initialize\"; // Count: 8\r\nexport var _DYN_NAME = \"name\"; // Count: 11\r\nexport var _DYN_GET_NOTIFY_MGR = \"getNotifyMgr\"; // Count: 3\r\nexport var _DYN_IDENTIFIER = \"identifier\"; // Count: 8\r\nexport var _DYN_PUSH = \"push\"; // Count: 30\r\nexport var _DYN_IS_INITIALIZED = \"isInitialized\"; // Count: 10\r\nexport var _DYN_CONFIG = \"config\"; // Count: 7\r\nexport var _DYN_INSTRUMENTATION_KEY = \"instrumentationKey\"; // Count: 3\r\nexport var _DYN_LOGGER = \"logger\"; // Count: 10\r\nexport var _DYN_LENGTH = \"length\"; // Count: 45\r\nexport var _DYN_TIME = \"time\"; // Count: 5\r\nexport var _DYN_PROCESS_NEXT = \"processNext\"; // Count: 21\r\nexport var _DYN_GET_PROCESS_TEL_CONT0 = \"getProcessTelContext\"; // Count: 2\r\nexport var _DYN_ADD_NOTIFICATION_LIS1 = \"addNotificationListener\"; // Count: 5\r\nexport var _DYN_REMOVE_NOTIFICATION_2 = \"removeNotificationListener\"; // Count: 5\r\nexport var _DYN_STOP_POLLING_INTERNA3 = \"stopPollingInternalLogs\"; // Count: 2\r\nexport var _DYN_ON_COMPLETE = \"onComplete\"; // Count: 6\r\nexport var _DYN_GET_PLUGIN = \"getPlugin\"; // Count: 5\r\nexport var _DYN_FLUSH = \"flush\"; // Count: 5\r\nexport var _DYN__EXTENSIONS = \"_extensions\"; // Count: 4\r\nexport var _DYN_SPLICE = \"splice\"; // Count: 6\r\nexport var _DYN_TEARDOWN = \"teardown\"; // Count: 10\r\nexport var _DYN_MESSAGE_ID = \"messageId\"; // Count: 4\r\nexport var _DYN_MESSAGE = \"message\"; // Count: 7\r\nexport var _DYN_IS_ASYNC = \"isAsync\"; // Count: 7\r\nexport var _DYN__DO_TEARDOWN = \"_doTeardown\"; // Count: 4\r\nexport var _DYN_UPDATE = \"update\"; // Count: 7\r\nexport var _DYN_GET_NEXT = \"getNext\"; // Count: 12\r\nexport var _DYN_DIAG_LOG = \"diagLog\"; // Count: 8\r\nexport var _DYN_SET_NEXT_PLUGIN = \"setNextPlugin\"; // Count: 5\r\nexport var _DYN_CREATE_NEW = \"createNew\"; // Count: 6\r\nexport var _DYN_COOKIE_CFG = \"cookieCfg\"; // Count: 3\r\nexport var _DYN_INDEX_OF = \"indexOf\"; // Count: 7\r\nexport var _DYN_SUBSTRING = \"substring\"; // Count: 10\r\nexport var _DYN_USER_AGENT = \"userAgent\"; // Count: 5\r\nexport var _DYN_SPLIT = \"split\"; // Count: 6\r\nexport var _DYN_SET_ENABLED = \"setEnabled\"; // Count: 5\r\nexport var _DYN_SUBSTR = \"substr\"; // Count: 6\r\nexport var _DYN_NODE_TYPE = \"nodeType\"; // Count: 3\r\nexport var _DYN_APPLY = \"apply\"; // Count: 6\r\nexport var _DYN_REPLACE = \"replace\"; // Count: 10\r\nexport var _DYN_ENABLE_DEBUG_EXCEPTI4 = \"enableDebugExceptions\"; // Count: 2\r\nexport var _DYN_LOG_INTERNAL_MESSAGE = \"logInternalMessage\"; // Count: 2\r\nexport var _DYN_TO_LOWER_CASE = \"toLowerCase\"; // Count: 8\r\nexport var _DYN_CALL = \"call\"; // Count: 18\r\nexport var _DYN_TYPE = \"type\"; // Count: 14\r\nexport var _DYN_HANDLER = \"handler\"; // Count: 5\r\nexport var _DYN_LISTENERS = \"listeners\"; // Count: 6\r\nexport var _DYN_IS_CHILD_EVT = \"isChildEvt\"; // Count: 3\r\nexport var _DYN_GET_CTX = \"getCtx\"; // Count: 6\r\nexport var _DYN_SET_CTX = \"setCtx\"; // Count: 10\r\nexport var _DYN_COMPLETE = \"complete\"; // Count: 3\r\nexport var _DYN_TRACE_ID = \"traceId\"; // Count: 5\r\nexport var _DYN_SPAN_ID = \"spanId\"; // Count: 5\r\nexport var _DYN_TRACE_FLAGS = \"traceFlags\"; // Count: 6\r\nexport var _DYN_VERSION = \"version\"; // Count: 4\r\n//# sourceMappingURL=__DynamicConstants.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n// ###################################################################################################################################################\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// ###################################################################################################################################################\r\nexport var STR_EMPTY = \"\";\r\nexport var STR_CHANNELS = \"channels\";\r\nexport var STR_CORE = \"core\";\r\nexport var STR_CREATE_PERF_MGR = \"createPerfMgr\";\r\nexport var STR_DISABLED = \"disabled\";\r\nexport var STR_EXTENSION_CONFIG = \"extensionConfig\";\r\nexport var STR_EXTENSIONS = \"extensions\";\r\nexport var STR_PROCESS_TELEMETRY = \"processTelemetry\";\r\nexport var STR_PRIORITY = \"priority\";\r\nexport var STR_EVENTS_SENT = \"eventsSent\";\r\nexport var STR_EVENTS_DISCARDED = \"eventsDiscarded\";\r\nexport var STR_EVENTS_SEND_REQUEST = \"eventsSendRequest\";\r\nexport var STR_PERF_EVENT = \"perfEvent\";\r\nexport var STR_ERROR_TO_CONSOLE = \"errorToConsole\";\r\nexport var STR_WARN_TO_CONSOLE = \"warnToConsole\";\r\nexport var STR_GET_PERF_MGR = \"getPerfMgr\";\r\n//# sourceMappingURL=InternalConstants.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { ObjAssign, ObjClass, ObjDefineProperty, ObjHasOwnProperty, ObjProto, strShimFunction, strShimObject, strShimPrototype, strShimUndefined, throwTypeError } from \"@microsoft/applicationinsights-shims\";\r\nimport { _DYN_APPLY, _DYN_CALL, _DYN_INDEX_OF, _DYN_LENGTH, _DYN_NAME, _DYN_PUSH, _DYN_REPLACE } from \"../__DynamicConstants\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\n// RESTRICT and AVOID circular dependencies you should not import other contained modules or export the contents of this file directly\r\n// Added to help with minfication\r\nvar strToISOString = \"toISOString\";\r\nvar cStrEndsWith = \"endsWith\";\r\nvar cStrStartsWith = \"startsWith\";\r\nvar strIndexOf = \"indexOf\";\r\nvar strMap = \"map\";\r\nvar strReduce = \"reduce\";\r\nvar cStrTrim = \"trim\";\r\nvar strToString = \"toString\";\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar str__Proto = \"__proto__\";\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar strConstructor = \"constructor\";\r\nvar _objDefineProperty = ObjDefineProperty;\r\nvar _objFreeze = ObjClass.freeze;\r\nvar _objSeal = ObjClass.seal;\r\nvar _objKeys = ObjClass.keys;\r\nvar StringProto = String[strShimPrototype];\r\nvar _strTrim = StringProto[cStrTrim];\r\nvar _strEndsWith = StringProto[cStrEndsWith];\r\nvar _strStartsWith = StringProto[cStrStartsWith];\r\nvar DateProto = Date[strShimPrototype];\r\nvar _dataToISOString = DateProto[strToISOString];\r\nvar _isArray = Array.isArray;\r\nvar _objToString = ObjProto[strToString];\r\nvar _fnToString = ObjHasOwnProperty[strToString];\r\n// Cache what this browser reports as the object function constructor (as a string)\r\nvar _objFunctionString = _fnToString[_DYN_CALL /* @min:%2ecall */](ObjClass);\r\nvar rCamelCase = /-([a-z])/g;\r\nvar rNormalizeInvalid = /([^\\w\\d_$])/g;\r\nvar rLeadingNumeric = /^(\\d+[\\w\\d_$])/;\r\n/**\r\n * Pre-lookup to check if we are running on a modern browser (i.e. not IE8)\r\n * @ignore\r\n */\r\nvar _objGetPrototypeOf = Object[\"getPrototypeOf\"];\r\n/**\r\n * Helper used to get the prototype of the target object as getPrototypeOf is not available in an ES3 environment.\r\n * @ignore\r\n */\r\nexport function _getObjProto(target) {\r\n if (target) {\r\n // This method doesn't existing in older browsers (e.g. IE8)\r\n if (_objGetPrototypeOf) {\r\n return _objGetPrototypeOf(target);\r\n }\r\n // target[Constructor] May break if the constructor has been changed or removed\r\n var newProto = target[str__Proto] || target[strShimPrototype] || target[strConstructor];\r\n if (newProto) {\r\n return newProto;\r\n }\r\n }\r\n return null;\r\n}\r\nexport function objToString(obj) {\r\n return _objToString[_DYN_CALL /* @min:%2ecall */](obj);\r\n}\r\nexport function isTypeof(value, theType) {\r\n return typeof value === theType;\r\n}\r\nexport function isUndefined(value) {\r\n return value === undefined || typeof value === strShimUndefined;\r\n}\r\nexport function isNotUndefined(value) {\r\n return !isUndefined(value);\r\n}\r\nexport function isNullOrUndefined(value) {\r\n return (value === null || isUndefined(value));\r\n}\r\nexport function isNotNullOrUndefined(value) {\r\n return !isNullOrUndefined(value);\r\n}\r\nexport function hasOwnProperty(obj, prop) {\r\n return !!(obj && ObjHasOwnProperty[_DYN_CALL /* @min:%2ecall */](obj, prop));\r\n}\r\nexport function isObject(value) {\r\n // Changing to inline for performance\r\n return !!(value && typeof value === strShimObject);\r\n}\r\nexport function isFunction(value) {\r\n // Changing to inline for performance\r\n return !!(value && typeof value === strShimFunction);\r\n}\r\nexport function isPromiseLike(value) {\r\n return value && isFunction(value.then);\r\n}\r\n/**\r\n * Validates that the string name conforms to the JS IdentifierName specification and if not\r\n * normalizes the name so that it would. This method does not identify or change any keywords\r\n * meaning that if you pass in a known keyword the same value will be returned.\r\n * This is a simplified version\r\n * @param name The name to validate\r\n */\r\nexport function normalizeJsName(name) {\r\n var value = name;\r\n if (value && isString(value)) {\r\n // CamelCase everything after the \"-\" and remove the dash\r\n value = value[_DYN_REPLACE /* @min:%2ereplace */](rCamelCase, function (_all, letter) {\r\n return letter.toUpperCase();\r\n });\r\n value = value[_DYN_REPLACE /* @min:%2ereplace */](rNormalizeInvalid, \"_\");\r\n value = value[_DYN_REPLACE /* @min:%2ereplace */](rLeadingNumeric, function (_all, match) {\r\n return \"_\" + match;\r\n });\r\n }\r\n return value;\r\n}\r\n/**\r\n * This is a helper function for the equivalent of arForEach(objKeys(target), callbackFn), this is a\r\n * performance optimization to avoid the creation of a new array for large objects\r\n * @param target The target object to find and process the keys\r\n * @param callbackfn The function to call with the details\r\n */\r\nexport function objForEachKey(target, callbackfn) {\r\n if (target) {\r\n for (var prop in target) {\r\n if (ObjHasOwnProperty[_DYN_CALL /* @min:%2ecall */](target, prop)) {\r\n callbackfn[_DYN_CALL /* @min:%2ecall */](target, prop, target[prop]);\r\n }\r\n }\r\n }\r\n}\r\n/**\r\n * The strEndsWith() method determines whether a string ends with the characters of a specified string, returning true or false as appropriate.\r\n * @param value - The value to check whether it ends with the search value.\r\n * @param search - The characters to be searched for at the end of the value.\r\n * @returns true if the given search value is found at the end of the string, otherwise false.\r\n */\r\nexport function strEndsWith(value, search) {\r\n var result = false;\r\n if (value && search && !(result = value === search)) {\r\n // For Performance try and use the native instance, using string lookup of the function to easily pass the ES3 build checks and minification\r\n result = _strEndsWith ? value[cStrEndsWith](search) : _strEndsWithPoly(value, search);\r\n }\r\n return result;\r\n}\r\n/**\r\n * The _strEndsWith() method determines whether a string ends with the characters of a specified string, returning true or false as appropriate.\r\n * @param value - The value to check whether it ends with the search value.\r\n * @param search - The characters to be searched for at the end of the value.\r\n * @returns true if the given search value is found at the end of the string, otherwise false.\r\n */\r\nexport function _strEndsWithPoly(value, search) {\r\n var result = false;\r\n var searchLen = search ? search[_DYN_LENGTH /* @min:%2elength */] : 0;\r\n var valLen = value ? value[_DYN_LENGTH /* @min:%2elength */] : 0;\r\n if (searchLen && valLen && valLen >= searchLen && !(result = value === search)) {\r\n var pos = valLen - 1;\r\n for (var lp = searchLen - 1; lp >= 0; lp--) {\r\n if (value[pos] != search[lp]) {\r\n return false;\r\n }\r\n pos--;\r\n }\r\n result = true;\r\n }\r\n return result;\r\n}\r\n/**\r\n * The strStartsWith() method determines whether a string starts with the characters of the specified string, returning true or false as appropriate.\r\n * @param value - The value to check whether it ends with the search value.\r\n * @param checkValue - The characters to be searched for at the start of the value.\r\n * @returns true if the given search value is found at the start of the string, otherwise false.\r\n */\r\nexport function strStartsWith(value, checkValue) {\r\n var result = false;\r\n if (value && checkValue && !(result = value === checkValue)) {\r\n // For Performance try and use the native instance, using string lookup of the function to easily pass the ES3 build checks and minification\r\n result = _strStartsWith ? value[cStrStartsWith](checkValue) : _strStartsWithPoly(value, checkValue);\r\n }\r\n return result;\r\n}\r\n/**\r\n * The strStartsWith() method determines whether a string starts with the characters of the specified string, returning true or false as appropriate.\r\n * @param value - The value to check whether it ends with the search value.\r\n * @param checkValue - The characters to be searched for at the start of the value.\r\n * @returns true if the given search value is found at the start of the string, otherwise false.\r\n */\r\nexport function _strStartsWithPoly(value, checkValue) {\r\n // Using helper for performance and because string startsWith() is not available on IE\r\n var result = false;\r\n var chkLen = checkValue ? checkValue[_DYN_LENGTH /* @min:%2elength */] : 0;\r\n if (value && chkLen && value[_DYN_LENGTH /* @min:%2elength */] >= chkLen && !(result = value === checkValue)) {\r\n for (var lp = 0; lp < chkLen; lp++) {\r\n if (value[lp] !== checkValue[lp]) {\r\n return false;\r\n }\r\n }\r\n result = true;\r\n }\r\n return result;\r\n}\r\n/**\r\n * A simple wrapper (for minification support) to check if the value contains the search string.\r\n * @param value - The string value to check for the existence of the search value\r\n * @param search - The value search within the value\r\n */\r\nexport function strContains(value, search) {\r\n if (value && search) {\r\n return value[_DYN_INDEX_OF /* @min:%2eindexOf */](search) !== -1;\r\n }\r\n return false;\r\n}\r\n/**\r\n * Check if an object is of type Date\r\n */\r\nexport function isDate(obj) {\r\n return !!(obj && _objToString[_DYN_CALL /* @min:%2ecall */](obj) === \"[object Date]\");\r\n}\r\n/**\r\n * Check if an object is of type Array with optional generic T, the generic type is not validated\r\n * and exists to help with TypeScript validation only.\r\n */\r\nexport var isArray = _isArray || _isArrayPoly;\r\nfunction _isArrayPoly(obj) {\r\n return !!(obj && _objToString[_DYN_CALL /* @min:%2ecall */](obj) === \"[object Array]\");\r\n}\r\n/**\r\n * Check if an object is of type Error\r\n */\r\nexport function isError(obj) {\r\n return !!(obj && _objToString[_DYN_CALL /* @min:%2ecall */](obj) === \"[object Error]\");\r\n}\r\n/**\r\n * Checks if the type of value is a string.\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a string, false otherwise.\r\n */\r\nexport function isString(value) {\r\n // Changing to inline for performance\r\n return typeof value === \"string\";\r\n}\r\n/**\r\n * Checks if the type of value is a number.\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a number, false otherwise.\r\n */\r\nexport function isNumber(value) {\r\n // Changing to inline for performance\r\n return typeof value === \"number\";\r\n}\r\n/**\r\n * Checks if the type of value is a boolean.\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a boolean, false otherwise.\r\n */\r\nexport function isBoolean(value) {\r\n // Changing to inline for performance\r\n return typeof value === \"boolean\";\r\n}\r\n/**\r\n * Checks if the type of value is a Symbol.\r\n * This only returns a boolean as returning value is Symbol will cause issues for older TypeScript consumers\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a Symbol, false otherwise.\r\n */\r\nexport function isSymbol(value) {\r\n return typeof value === \"symbol\";\r\n}\r\n/**\r\n * Checks if the type of the value is a normal plain object (not a null or data)\r\n * @param value\r\n */\r\nexport function isPlainObject(value) {\r\n var result = false;\r\n if (value && typeof value === \"object\") {\r\n // Inlining _objGetPrototypeOf for performance to avoid an additional function call\r\n var proto = _objGetPrototypeOf ? _objGetPrototypeOf(value) : _getObjProto(value);\r\n if (!proto) {\r\n // No prototype found so this is a plain Object eg. 'Object.create(null)'\r\n result = true;\r\n }\r\n else {\r\n // Objects that have a prototype are plain only if they were created using the Object global (native) function\r\n if (proto[strConstructor] && ObjHasOwnProperty[_DYN_CALL /* @min:%2ecall */](proto, strConstructor)) {\r\n proto = proto[strConstructor];\r\n }\r\n result = typeof proto === strShimFunction && _fnToString[_DYN_CALL /* @min:%2ecall */](proto) === _objFunctionString;\r\n }\r\n }\r\n return result;\r\n}\r\n/**\r\n * Convert a date to I.S.O. format in IE8\r\n */\r\nexport function toISOString(date) {\r\n if (date) {\r\n // For Performance try and use the native instance, using string lookup of the function to easily pass the ES3 build checks and minification\r\n return _dataToISOString ? date[strToISOString]() : _toISOStringPoly(date);\r\n }\r\n}\r\n/**\r\n * Convert a date to I.S.O. format in IE8\r\n */\r\nexport function _toISOStringPoly(date) {\r\n if (date && date.getUTCFullYear) {\r\n var pad = function (num) {\r\n var r = String(num);\r\n if (r[_DYN_LENGTH /* @min:%2elength */] === 1) {\r\n r = \"0\" + r;\r\n }\r\n return r;\r\n };\r\n return date.getUTCFullYear()\r\n + \"-\" + pad(date.getUTCMonth() + 1)\r\n + \"-\" + pad(date.getUTCDate())\r\n + \"T\" + pad(date.getUTCHours())\r\n + \":\" + pad(date.getUTCMinutes())\r\n + \":\" + pad(date.getUTCSeconds())\r\n + \".\" + String((date.getUTCMilliseconds() / 1000).toFixed(3)).slice(2, 5)\r\n + \"Z\";\r\n }\r\n}\r\n/**\r\n * Performs the specified action for each element in an array. This helper exists to avoid adding a polyfil for older browsers\r\n * that do not define Array.prototype.xxxx (eg. ES3 only, IE8) just in case any page checks for presence/absence of the prototype\r\n * implementation. Note: For consistency this will not use the Array.prototype.xxxx implementation if it exists as this would\r\n * cause a testing requirement to test with and without the implementations\r\n * @param callbackfn A function that accepts up to three arguments. forEach calls the callbackfn function one time for each element in the array. It can return -1 to break out of the loop\r\n * @param thisArg [Optional] An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\r\n */\r\nexport function arrForEach(arr, callbackfn, thisArg) {\r\n var len = arr[_DYN_LENGTH /* @min:%2elength */];\r\n try {\r\n for (var idx = 0; idx < len; idx++) {\r\n if (idx in arr) {\r\n if (callbackfn[_DYN_CALL /* @min:%2ecall */](thisArg || arr, arr[idx], idx, arr) === -1) {\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // This can happen with some native browser objects, but should not happen for the type we are checking for\r\n }\r\n}\r\n/**\r\n * Returns the index of the first occurrence of a value in an array. This helper exists to avoid adding a polyfil for older browsers\r\n * that do not define Array.prototype.xxxx (eg. ES3 only, IE8) just in case any page checks for presence/absence of the prototype\r\n * implementation. Note: For consistency this will not use the Array.prototype.xxxx implementation if it exists as this would\r\n * cause a testing requirement to test with and without the implementations\r\n * @param searchElement The value to locate in the array.\r\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at index 0.\r\n */\r\nexport function arrIndexOf(arr, searchElement, fromIndex) {\r\n if (arr) {\r\n // For Performance try and use the native instance, using string lookup of the function to easily pass the ES3 build checks and minification\r\n if (arr[strIndexOf]) {\r\n return arr[strIndexOf](searchElement, fromIndex);\r\n }\r\n var len = arr[_DYN_LENGTH /* @min:%2elength */];\r\n var from = fromIndex || 0;\r\n try {\r\n for (var lp = Math.max(from >= 0 ? from : len - Math.abs(from), 0); lp < len; lp++) {\r\n if (lp in arr && arr[lp] === searchElement) {\r\n return lp;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // This can happen with some native browser objects, but should not happen for the type we are checking for\r\n }\r\n }\r\n return -1;\r\n}\r\n/**\r\n * Calls a defined callback function on each element of an array, and returns an array that contains the results. This helper exists\r\n * to avoid adding a polyfil for older browsers that do not define Array.prototype.xxxx (eg. ES3 only, IE8) just in case any page\r\n * checks for presence/absence of the prototype implementation. Note: For consistency this will not use the Array.prototype.xxxx\r\n * implementation if it exists as this would cause a testing requirement to test with and without the implementations\r\n * @param callbackfn A function that accepts up to three arguments. The map method calls the callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\r\n */\r\nexport function arrMap(arr, callbackfn, thisArg) {\r\n var results;\r\n if (arr) {\r\n // For Performance try and use the native instance, using string lookup of the function to easily pass the ES3 build checks and minification\r\n if (arr[strMap]) {\r\n return arr[strMap](callbackfn, thisArg);\r\n }\r\n var len = arr[_DYN_LENGTH /* @min:%2elength */];\r\n var _this = thisArg || arr;\r\n results = new Array(len);\r\n try {\r\n for (var lp = 0; lp < len; lp++) {\r\n if (lp in arr) {\r\n results[lp] = callbackfn[_DYN_CALL /* @min:%2ecall */](_this, arr[lp], arr);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // This can happen with some native browser objects, but should not happen for the type we are checking for\r\n }\r\n }\r\n return results;\r\n}\r\n/**\r\n * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is\r\n * provided as an argument in the next call to the callback function. This helper exists to avoid adding a polyfil for older browsers that do not define\r\n * Array.prototype.xxxx (eg. ES3 only, IE8) just in case any page checks for presence/absence of the prototype implementation. Note: For consistency\r\n * this will not use the Array.prototype.xxxx implementation if it exists as this would cause a testing requirement to test with and without the implementations\r\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\r\n */\r\nexport function arrReduce(arr, callbackfn, initialValue) {\r\n var value;\r\n if (arr) {\r\n // For Performance try and use the native instance, using string lookup of the function to easily pass the ES3 build checks and minification\r\n if (arr[strReduce]) {\r\n return arr[strReduce](callbackfn, initialValue);\r\n }\r\n var len = arr[_DYN_LENGTH /* @min:%2elength */];\r\n var lp = 0;\r\n // Specifically checking the number of passed arguments as the value could be anything\r\n if (arguments[_DYN_LENGTH /* @min:%2elength */] >= 3) {\r\n value = arguments[2];\r\n }\r\n else {\r\n while (lp < len && !(lp in arr)) {\r\n lp++;\r\n }\r\n value = arr[lp++];\r\n }\r\n while (lp < len) {\r\n if (lp in arr) {\r\n value = callbackfn(value, arr[lp], lp, arr);\r\n }\r\n lp++;\r\n }\r\n }\r\n return value;\r\n}\r\n/**\r\n * helper method to trim strings (IE8 does not implement String.prototype.trim)\r\n */\r\nexport function strTrim(str) {\r\n if (str) {\r\n // For Performance try and use the native instance, using string lookup of the function to easily pass the ES3 build checks and minification\r\n str = (_strTrim && str[cStrTrim]) ? str[cStrTrim]() : (str[_DYN_REPLACE /* @min:%2ereplace */] ? str[_DYN_REPLACE /* @min:%2ereplace */](/^\\s+|(?=\\s)\\s+$/g, STR_EMPTY) : str);\r\n }\r\n return str;\r\n}\r\nvar _objKeysHasDontEnumBug = !({ toString: null }).propertyIsEnumerable(\"toString\");\r\nvar _objKeysDontEnums = [\r\n \"toString\",\r\n \"toLocaleString\",\r\n \"valueOf\",\r\n \"hasOwnProperty\",\r\n \"isPrototypeOf\",\r\n \"propertyIsEnumerable\",\r\n \"constructor\"\r\n];\r\n/**\r\n * Returns the names of the enumerable string properties and methods of an object. This helper exists to avoid adding a polyfil for older browsers\r\n * that do not define Object.keys eg. ES3 only, IE8 just in case any page checks for presence/absence of the prototype implementation.\r\n * Note: For consistency this will not use the Object.keys implementation if it exists as this would cause a testing requirement to test with and without the implementations\r\n * @param obj Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.\r\n */\r\nexport function objKeys(obj) {\r\n var objType = typeof obj;\r\n if (objType !== strShimFunction && (objType !== strShimObject || obj === null)) {\r\n throwTypeError(\"objKeys called on non-object\");\r\n }\r\n // For Performance try and use the native instance, using string lookup of the function to easily pass the ES3 build checks and minification\r\n if (!_objKeysHasDontEnumBug && _objKeys) {\r\n return _objKeys(obj);\r\n }\r\n var result = [];\r\n for (var prop in obj) {\r\n if (obj && ObjHasOwnProperty[_DYN_CALL /* @min:%2ecall */](obj, prop)) {\r\n result[_DYN_PUSH /* @min:%2epush */](prop);\r\n }\r\n }\r\n if (_objKeysHasDontEnumBug) {\r\n var dontEnumsLength = _objKeysDontEnums[_DYN_LENGTH /* @min:%2elength */];\r\n for (var lp = 0; lp < dontEnumsLength; lp++) {\r\n if (obj && ObjHasOwnProperty[_DYN_CALL /* @min:%2ecall */](obj, _objKeysDontEnums[lp])) {\r\n result[_DYN_PUSH /* @min:%2epush */](_objKeysDontEnums[lp]);\r\n }\r\n }\r\n }\r\n return result;\r\n}\r\n/**\r\n * Try to define get/set object property accessors for the target object/prototype, this will provide compatibility with\r\n * existing API definition when run within an ES5+ container that supports accessors but still enable the code to be loaded\r\n * and executed in an ES3 container, providing basic IE8 compatibility.\r\n * @param target The object on which to define the property.\r\n * @param prop The name of the property to be defined or modified.\r\n * @param getProp The getter function to wire against the getter.\r\n * @param setProp The setter function to wire against the setter.\r\n * @returns True if it was able to create the accessors otherwise false\r\n */\r\nexport function objDefineAccessors(target, prop, getProp, setProp) {\r\n if (_objDefineProperty) {\r\n try {\r\n var descriptor = {\r\n enumerable: true,\r\n configurable: true\r\n };\r\n if (getProp) {\r\n descriptor.get = getProp;\r\n }\r\n if (setProp) {\r\n descriptor.set = setProp;\r\n }\r\n _objDefineProperty(target, prop, descriptor);\r\n return true;\r\n }\r\n catch (e) {\r\n // IE8 Defines a defineProperty on Object but it's only supported for DOM elements so it will throw\r\n // We will just ignore this here.\r\n }\r\n }\r\n return false;\r\n}\r\nfunction _doNothing(value) {\r\n return value;\r\n}\r\nexport function deepFreeze(obj) {\r\n if (_objFreeze) {\r\n objForEachKey(obj, function (name, value) {\r\n if (isArray(value) || isObject(value)) {\r\n _objFreeze(value);\r\n }\r\n });\r\n }\r\n return objFreeze(obj);\r\n}\r\nexport var objFreeze = _objFreeze || _doNothing;\r\nexport var objSeal = _objSeal || _doNothing;\r\n/**\r\n * Return the current time via the Date now() function (if available) and falls back to (new Date()).getTime() if now() is unavailable (IE8 or less)\r\n * https://caniuse.com/#search=Date.now\r\n */\r\nexport function dateNow() {\r\n var dt = Date;\r\n return dt.now ? dt.now() : new dt().getTime();\r\n}\r\n/**\r\n * Returns the name of object if it's an Error. Otherwise, returns empty string.\r\n */\r\nexport function getExceptionName(object) {\r\n if (isError(object)) {\r\n return object[_DYN_NAME /* @min:%2ename */];\r\n }\r\n return STR_EMPTY;\r\n}\r\n/**\r\n * Sets the provided value on the target instance using the field name when the provided chk function returns true, the chk\r\n * function will only be called if the new value is no equal to the original value.\r\n * @param target - The target object\r\n * @param field - The key of the target\r\n * @param value - The value to set\r\n * @param valChk - [Optional] Callback to check the value that if supplied will be called check if the new value can be set\r\n * @param srcChk - [Optional] Callback to check to original value that if supplied will be called if the new value should be set (if allowed)\r\n * @returns The existing or new value, depending what was set\r\n */\r\nexport function setValue(target, field, value, valChk, srcChk) {\r\n var theValue = value;\r\n if (target) {\r\n theValue = target[field];\r\n if (theValue !== value && (!srcChk || srcChk(theValue)) && (!valChk || valChk(value))) {\r\n theValue = value;\r\n target[field] = theValue;\r\n }\r\n }\r\n return theValue;\r\n}\r\n/**\r\n * Returns the current value from the target object if not null or undefined otherwise sets the new value and returns it\r\n * @param target - The target object to return or set the default value\r\n * @param field - The key for the field to set on the target\r\n * @param defValue - [Optional] The value to set if not already present, when not provided a empty object will be added\r\n */\r\nexport function getSetValue(target, field, defValue) {\r\n var theValue;\r\n if (target) {\r\n theValue = target[field];\r\n if (!theValue && isNullOrUndefined(theValue)) {\r\n // Supports having the default as null\r\n theValue = !isUndefined(defValue) ? defValue : {};\r\n target[field] = theValue;\r\n }\r\n }\r\n else {\r\n // Expanded for performance so we only check defValue if required\r\n theValue = !isUndefined(defValue) ? defValue : {};\r\n }\r\n return theValue;\r\n}\r\n/**\r\n * Get the mapped config value, if null or undefined any supplied defaultValue will be returned.\r\n * @param field - The name of the field as the named enum value (number) or the string name.\r\n * @param defaultValue - The default value to return if the config field is not present, null or undefined.\r\n */\r\nexport function getCfgValue(theValue, defaultValue) {\r\n return !isNullOrUndefined(theValue) ? theValue : defaultValue;\r\n}\r\nexport function isNotTruthy(value) {\r\n return !value;\r\n}\r\nexport function isTruthy(value) {\r\n return !!value;\r\n}\r\nexport function throwError(message) {\r\n throw new Error(message);\r\n}\r\nfunction _createProxyFunction(source, funcName) {\r\n var srcFunc = null;\r\n var src = null;\r\n if (isFunction(source)) {\r\n srcFunc = source;\r\n }\r\n else {\r\n src = source;\r\n }\r\n return function () {\r\n // Capture the original arguments passed to the method\r\n var originalArguments = arguments;\r\n if (srcFunc) {\r\n src = srcFunc();\r\n }\r\n if (src) {\r\n return src[funcName][_DYN_APPLY /* @min:%2eapply */](src, originalArguments);\r\n }\r\n };\r\n}\r\n/**\r\n * Effectively assigns all enumerable properties (not just own properties) and functions (including inherited prototype) from\r\n * the source object to the target, it attempts to use proxy getters / setters (if possible) and proxy functions to avoid potential\r\n * implementation issues by assigning prototype functions as instance ones\r\n *\r\n * This method is the primary method used to \"update\" the snippet proxy with the ultimate implementations.\r\n *\r\n * Special ES3 Notes:\r\n * Updates (setting) of direct property values on the target or indirectly on the source object WILL NOT WORK PROPERLY, updates to the\r\n * properties of \"referenced\" object will work (target.context.newValue = 10 => will be reflected in the source.context as it's the\r\n * same object). ES3 Failures: assigning target.myProp = 3 -> Won't change source.myProp = 3, likewise the reverse would also fail.\r\n * @param target - The target object to be assigned with the source properties and functions\r\n * @param source - The source object which will be assigned / called by setting / calling the targets proxies\r\n * @param chkSet - An optional callback to determine whether a specific property/function should be proxied\r\n */\r\nexport function proxyAssign(target, source, chkSet) {\r\n if (target && source && isObject(target) && isObject(source)) {\r\n var _loop_1 = function (field) {\r\n if (isString(field)) {\r\n var value = source[field];\r\n if (isFunction(value)) {\r\n if (!chkSet || chkSet(field, true, source, target)) {\r\n // Create a proxy function rather than just copying the (possible) prototype to the new object as an instance function\r\n target[field] = _createProxyFunction(source, field);\r\n }\r\n }\r\n else if (!chkSet || chkSet(field, false, source, target)) {\r\n if (hasOwnProperty(target, field)) {\r\n // Remove any previous instance property\r\n delete target[field];\r\n }\r\n if (!objDefineAccessors(target, field, function () {\r\n return source[field];\r\n }, function (theValue) {\r\n source[field] = theValue;\r\n })) {\r\n // Unable to create an accessor, so just assign the values as a fallback\r\n // -- this will (mostly) work for objects\r\n // -- but will fail for accessing primitives (if the source changes it) and all types of \"setters\" as the source won't be modified\r\n target[field] = value;\r\n }\r\n }\r\n }\r\n };\r\n // effectively apply/proxy full source to the target instance\r\n for (var field in source) {\r\n _loop_1(field);\r\n }\r\n }\r\n return target;\r\n}\r\n/**\r\n * Creates a proxy function on the target which internally will call the source version with all arguments passed to the target method.\r\n *\r\n * @param target - The target object to be assigned with the source properties and functions\r\n * @param name - The function name that will be added on the target\r\n * @param source - The source object which will be assigned / called by setting / calling the targets proxies\r\n * @param theFunc - The function name on the source that will be proxied on the target\r\n * @param overwriteTarget - If `false` this will not replace any pre-existing name otherwise (the default) it will overwrite any existing name\r\n */\r\nexport function proxyFunctionAs(target, name, source, theFunc, overwriteTarget) {\r\n if (target && name && source) {\r\n if (overwriteTarget !== false || isUndefined(target[name])) {\r\n target[name] = _createProxyFunction(source, theFunc);\r\n }\r\n }\r\n}\r\n/**\r\n * Creates proxy functions on the target which internally will call the source version with all arguments passed to the target method.\r\n *\r\n * @param target - The target object to be assigned with the source properties and functions\r\n * @param source - The source object which will be assigned / called by setting / calling the targets proxies\r\n * @param functionsToProxy - An array of function names that will be proxied on the target\r\n * @param overwriteTarget - If false this will not replace any pre-existing name otherwise (the default) it will overwrite any existing name\r\n */\r\nexport function proxyFunctions(target, source, functionsToProxy, overwriteTarget) {\r\n if (target && source && isObject(target) && isArray(functionsToProxy)) {\r\n arrForEach(functionsToProxy, function (theFuncName) {\r\n if (isString(theFuncName)) {\r\n proxyFunctionAs(target, theFuncName, source, theFuncName, overwriteTarget);\r\n }\r\n });\r\n }\r\n return target;\r\n}\r\n/**\r\n * Simpler helper to create a dynamic class that implements the interface and populates the values with the defaults.\r\n * Only instance properties (hasOwnProperty) values are copied from the defaults to the new instance\r\n * @param defaults Simple helper\r\n */\r\nexport function createClassFromInterface(defaults) {\r\n return /** @class */ (function () {\r\n function class_1() {\r\n var _this_1 = this;\r\n if (defaults) {\r\n objForEachKey(defaults, function (field, value) {\r\n _this_1[field] = value;\r\n });\r\n }\r\n }\r\n return class_1;\r\n }());\r\n}\r\n/**\r\n * A helper function to assist with JIT performance for objects that have properties added / removed dynamically\r\n * this is primarily for chromium based browsers and has limited effects on Firefox and none of IE. Only call this\r\n * function after you have finished \"updating\" the object, calling this within loops reduces or defeats the benefits.\r\n * This helps when iterating using for..in, objKeys() and objForEach()\r\n * @param theObject - The object to be optimized if possible\r\n */\r\nexport function optimizeObject(theObject) {\r\n // V8 Optimization to cause the JIT compiler to create a new optimized object for looking up the own properties\r\n // primarily for object with <= 19 properties for >= 20 the effect is reduced or non-existent\r\n if (theObject && ObjAssign) {\r\n theObject = ObjClass(ObjAssign({}, theObject));\r\n }\r\n return theObject;\r\n}\r\nexport function objExtend(obj1, obj2, obj3, obj4, obj5, obj6) {\r\n // Variables\r\n var theArgs = arguments;\r\n var extended = theArgs[0] || {};\r\n var argLen = theArgs[_DYN_LENGTH /* @min:%2elength */];\r\n var deep = false;\r\n var idx = 1;\r\n // Check for \"Deep\" flag\r\n if (argLen > 0 && isBoolean(extended)) {\r\n deep = extended;\r\n extended = theArgs[idx] || {};\r\n idx++;\r\n }\r\n // Handle case when target is a string or something (possible in deep copy)\r\n if (!isObject(extended)) {\r\n extended = {};\r\n }\r\n // Loop through each remaining object and conduct a merge\r\n for (; idx < argLen; idx++) {\r\n var arg = theArgs[idx];\r\n var isArgArray = isArray(arg);\r\n var isArgObj = isObject(arg);\r\n for (var prop in arg) {\r\n var propOk = (isArgArray && (prop in arg)) || (isArgObj && (ObjHasOwnProperty[_DYN_CALL /* @min:%2ecall */](arg, prop)));\r\n if (!propOk) {\r\n continue;\r\n }\r\n var newValue = arg[prop];\r\n var isNewArray = void 0;\r\n // If deep merge and property is an object, merge properties\r\n if (deep && newValue && ((isNewArray = isArray(newValue)) || isPlainObject(newValue))) {\r\n // Grab the current value of the extended object\r\n var clone = extended[prop];\r\n if (isNewArray) {\r\n if (!isArray(clone)) {\r\n // We can't \"merge\" an array with a non-array so overwrite the original\r\n clone = [];\r\n }\r\n }\r\n else if (!isPlainObject(clone)) {\r\n // We can't \"merge\" an object with a non-object\r\n clone = {};\r\n }\r\n // Never move the original objects always clone them\r\n newValue = objExtend(deep, clone, newValue);\r\n }\r\n // Assign the new (or previous) value (unless undefined)\r\n if (newValue !== undefined) {\r\n extended[prop] = newValue;\r\n }\r\n }\r\n }\r\n return extended;\r\n}\r\n//# sourceMappingURL=HelperFuncs.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\"use strict\";\r\nimport { getGlobal, strShimObject, strShimPrototype, strShimUndefined } from \"@microsoft/applicationinsights-shims\";\r\nimport { _DYN_CALL, _DYN_INDEX_OF, _DYN_LENGTH, _DYN_NAME, _DYN_SPLIT, _DYN_TO_LOWER_CASE, _DYN_USER_AGENT } from \"../__DynamicConstants\";\r\nimport { isFunction, isString, isUndefined, strContains } from \"./HelperFuncs\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\n/**\r\n * This file exists to hold environment utilities that are required to check and\r\n * validate the current operating environment. Unless otherwise required, please\r\n * only use defined methods (functions) in this class so that users of these\r\n * functions/properties only need to include those that are used within their own modules.\r\n */\r\nvar strWindow = \"window\";\r\nvar strDocument = \"document\";\r\nvar strDocumentMode = \"documentMode\";\r\nvar strNavigator = \"navigator\";\r\nvar strHistory = \"history\";\r\nvar strLocation = \"location\";\r\nvar strConsole = \"console\";\r\nvar strPerformance = \"performance\";\r\nvar strJSON = \"JSON\";\r\nvar strCrypto = \"crypto\";\r\nvar strMsCrypto = \"msCrypto\";\r\nvar strReactNative = \"ReactNative\";\r\nvar strMsie = \"msie\";\r\nvar strTrident = \"trident/\";\r\nvar strXMLHttpRequest = \"XMLHttpRequest\";\r\nvar _isTrident = null;\r\nvar _navUserAgentCheck = null;\r\nvar _enableMocks = false;\r\nvar _useXDomainRequest = null;\r\nvar _beaconsSupported = null;\r\nfunction _hasProperty(theClass, property) {\r\n var supported = false;\r\n if (theClass) {\r\n try {\r\n supported = property in theClass;\r\n if (!supported) {\r\n var proto = theClass[strShimPrototype];\r\n if (proto) {\r\n supported = property in proto;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // Do Nothing\r\n }\r\n if (!supported) {\r\n try {\r\n var tmp = new theClass();\r\n supported = !isUndefined(tmp[property]);\r\n }\r\n catch (e) {\r\n // Do Nothing\r\n }\r\n }\r\n }\r\n return supported;\r\n}\r\n/**\r\n * Enable the lookup of test mock objects if requested\r\n * @param enabled\r\n */\r\nexport function setEnableEnvMocks(enabled) {\r\n _enableMocks = enabled;\r\n}\r\n/**\r\n * Return the named global object if available, will return null if the object is not available.\r\n * @param name The globally named object\r\n */\r\nexport function getGlobalInst(name) {\r\n var gbl = getGlobal();\r\n if (gbl && gbl[name]) {\r\n return gbl[name];\r\n }\r\n // Test workaround, for environments where .window (when global == window) doesn't return the base window\r\n if (name === strWindow && hasWindow()) {\r\n // tslint:disable-next-line: no-angle-bracket-type-assertion\r\n return window;\r\n }\r\n return null;\r\n}\r\n/**\r\n * Checks if window object is available, this is required as we support the API running without a\r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a window\r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: window is not defined\"\r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\r\nexport function hasWindow() {\r\n return Boolean(typeof window === strShimObject && window);\r\n}\r\n/**\r\n * Returns the global window object if it is present otherwise null.\r\n * This helper is used to access the window object without causing an exception\r\n * \"Uncaught ReferenceError: window is not defined\"\r\n */\r\nexport function getWindow() {\r\n if (hasWindow()) {\r\n return window;\r\n }\r\n // Return the global instance or null\r\n return getGlobalInst(strWindow);\r\n}\r\n/**\r\n * Checks if document object is available, this is required as we support the API running without a\r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a document\r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: document is not defined\"\r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\r\nexport function hasDocument() {\r\n return Boolean(typeof document === strShimObject && document);\r\n}\r\n/**\r\n * Returns the global document object if it is present otherwise null.\r\n * This helper is used to access the document object without causing an exception\r\n * \"Uncaught ReferenceError: document is not defined\"\r\n */\r\nexport function getDocument() {\r\n if (hasDocument()) {\r\n return document;\r\n }\r\n return getGlobalInst(strDocument);\r\n}\r\n/**\r\n * Checks if navigator object is available, this is required as we support the API running without a\r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a navigator\r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: navigator is not defined\"\r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\r\nexport function hasNavigator() {\r\n return Boolean(typeof navigator === strShimObject && navigator);\r\n}\r\n/**\r\n * Returns the global navigator object if it is present otherwise null.\r\n * This helper is used to access the navigator object without causing an exception\r\n * \"Uncaught ReferenceError: navigator is not defined\"\r\n */\r\nexport function getNavigator() {\r\n if (hasNavigator()) {\r\n return navigator;\r\n }\r\n return getGlobalInst(strNavigator);\r\n}\r\n/**\r\n * Checks if history object is available, this is required as we support the API running without a\r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a history\r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: history is not defined\"\r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\r\nexport function hasHistory() {\r\n return Boolean(typeof history === strShimObject && history);\r\n}\r\n/**\r\n * Returns the global history object if it is present otherwise null.\r\n * This helper is used to access the history object without causing an exception\r\n * \"Uncaught ReferenceError: history is not defined\"\r\n */\r\nexport function getHistory() {\r\n if (hasHistory()) {\r\n return history;\r\n }\r\n return getGlobalInst(strHistory);\r\n}\r\n/**\r\n * Returns the global location object if it is present otherwise null.\r\n * This helper is used to access the location object without causing an exception\r\n * \"Uncaught ReferenceError: location is not defined\"\r\n */\r\nexport function getLocation(checkForMock) {\r\n if (checkForMock && _enableMocks) {\r\n var mockLocation = getGlobalInst(\"__mockLocation\");\r\n if (mockLocation) {\r\n return mockLocation;\r\n }\r\n }\r\n if (typeof location === strShimObject && location) {\r\n return location;\r\n }\r\n return getGlobalInst(strLocation);\r\n}\r\n/**\r\n * Returns the global console object\r\n */\r\nexport function getConsole() {\r\n if (typeof console !== strShimUndefined) {\r\n return console;\r\n }\r\n return getGlobalInst(strConsole);\r\n}\r\n/**\r\n * Returns the performance object if it is present otherwise null.\r\n * This helper is used to access the performance object from the current\r\n * global instance which could be window or globalThis for a web worker\r\n */\r\nexport function getPerformance() {\r\n return getGlobalInst(strPerformance);\r\n}\r\n/**\r\n * Checks if JSON object is available, this is required as we support the API running without a\r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a history\r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: JSON is not defined\"\r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\r\nexport function hasJSON() {\r\n return Boolean((typeof JSON === strShimObject && JSON) || getGlobalInst(strJSON) !== null);\r\n}\r\n/**\r\n * Returns the global JSON object if it is present otherwise null.\r\n * This helper is used to access the JSON object without causing an exception\r\n * \"Uncaught ReferenceError: JSON is not defined\"\r\n */\r\nexport function getJSON() {\r\n if (hasJSON()) {\r\n return JSON || getGlobalInst(strJSON);\r\n }\r\n return null;\r\n}\r\n/**\r\n * Returns the crypto object if it is present otherwise null.\r\n * This helper is used to access the crypto object from the current\r\n * global instance which could be window or globalThis for a web worker\r\n */\r\nexport function getCrypto() {\r\n return getGlobalInst(strCrypto);\r\n}\r\n/**\r\n * Returns the crypto object if it is present otherwise null.\r\n * This helper is used to access the crypto object from the current\r\n * global instance which could be window or globalThis for a web worker\r\n */\r\nexport function getMsCrypto() {\r\n return getGlobalInst(strMsCrypto);\r\n}\r\n/**\r\n * Returns whether the environment is reporting that we are running in a React Native Environment\r\n */\r\nexport function isReactNative() {\r\n // If running in React Native, navigator.product will be populated\r\n var nav = getNavigator();\r\n if (nav && nav.product) {\r\n return nav.product === strReactNative;\r\n }\r\n return false;\r\n}\r\n/**\r\n * Identifies whether the current environment appears to be IE\r\n */\r\nexport function isIE() {\r\n var nav = getNavigator();\r\n if (nav && (nav[_DYN_USER_AGENT /* @min:%2euserAgent */] !== _navUserAgentCheck || _isTrident === null)) {\r\n // Added to support test mocking of the user agent\r\n _navUserAgentCheck = nav[_DYN_USER_AGENT /* @min:%2euserAgent */];\r\n var userAgent = (_navUserAgentCheck || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n _isTrident = (strContains(userAgent, strMsie) || strContains(userAgent, strTrident));\r\n }\r\n return _isTrident;\r\n}\r\n/**\r\n * Gets IE version returning the document emulation mode if we are running on IE, or null otherwise\r\n */\r\nexport function getIEVersion(userAgentStr) {\r\n if (userAgentStr === void 0) { userAgentStr = null; }\r\n if (!userAgentStr) {\r\n var navigator_1 = getNavigator() || {};\r\n userAgentStr = navigator_1 ? (navigator_1[_DYN_USER_AGENT /* @min:%2euserAgent */] || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() : STR_EMPTY;\r\n }\r\n var ua = (userAgentStr || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n // Also check for documentMode in case X-UA-Compatible meta tag was included in HTML.\r\n if (strContains(ua, strMsie)) {\r\n var doc = getDocument() || {};\r\n return Math.max(parseInt(ua[_DYN_SPLIT /* @min:%2esplit */](strMsie)[1]), (doc[strDocumentMode] || 0));\r\n }\r\n else if (strContains(ua, strTrident)) {\r\n var tridentVer = parseInt(ua[_DYN_SPLIT /* @min:%2esplit */](strTrident)[1]);\r\n if (tridentVer) {\r\n return tridentVer + 4;\r\n }\r\n }\r\n return null;\r\n}\r\n/**\r\n * Returns string representation of an object suitable for diagnostics logging.\r\n */\r\nexport function dumpObj(object) {\r\n var objectTypeDump = Object[strShimPrototype].toString[_DYN_CALL /* @min:%2ecall */](object);\r\n var propertyValueDump = STR_EMPTY;\r\n if (objectTypeDump === \"[object Error]\") {\r\n propertyValueDump = \"{ stack: '\" + object.stack + \"', message: '\" + object.message + \"', name: '\" + object[_DYN_NAME /* @min:%2ename */] + \"'\";\r\n }\r\n else if (hasJSON()) {\r\n propertyValueDump = getJSON().stringify(object);\r\n }\r\n return objectTypeDump + propertyValueDump;\r\n}\r\nexport function isSafari(userAgentStr) {\r\n if (!userAgentStr || !isString(userAgentStr)) {\r\n var navigator_2 = getNavigator() || {};\r\n userAgentStr = navigator_2 ? (navigator_2[_DYN_USER_AGENT /* @min:%2euserAgent */] || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() : STR_EMPTY;\r\n }\r\n var ua = (userAgentStr || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n return (ua[_DYN_INDEX_OF /* @min:%2eindexOf */](\"safari\") >= 0);\r\n}\r\n/**\r\n * Checks if HTML5 Beacons are supported in the current environment.\r\n * @returns True if supported, false otherwise.\r\n */\r\nexport function isBeaconsSupported() {\r\n if (_beaconsSupported === null) {\r\n _beaconsSupported = hasNavigator() && Boolean(getNavigator().sendBeacon);\r\n }\r\n return _beaconsSupported;\r\n}\r\n/**\r\n * Checks if the Fetch API is supported in the current environment.\r\n * @param withKeepAlive - [Optional] If True, check if fetch is available and it supports the keepalive feature, otherwise only check if fetch is supported\r\n * @returns True if supported, otherwise false\r\n */\r\nexport function isFetchSupported(withKeepAlive) {\r\n var isSupported = false;\r\n try {\r\n isSupported = !!getGlobalInst(\"fetch\");\r\n var request = getGlobalInst(\"Request\");\r\n if (isSupported && withKeepAlive && request) {\r\n isSupported = _hasProperty(request, \"keepalive\");\r\n }\r\n }\r\n catch (e) {\r\n // Just Swallow any failure during availability checks\r\n }\r\n return isSupported;\r\n}\r\nexport function useXDomainRequest() {\r\n if (_useXDomainRequest === null) {\r\n _useXDomainRequest = (typeof XDomainRequest !== strShimUndefined);\r\n if (_useXDomainRequest && isXhrSupported()) {\r\n _useXDomainRequest = _useXDomainRequest && !_hasProperty(getGlobalInst(strXMLHttpRequest), \"withCredentials\");\r\n }\r\n }\r\n return _useXDomainRequest;\r\n}\r\n/**\r\n * Checks if XMLHttpRequest is supported\r\n * @returns True if supported, otherwise false\r\n */\r\nexport function isXhrSupported() {\r\n var isSupported = false;\r\n try {\r\n var xmlHttpRequest = getGlobalInst(strXMLHttpRequest);\r\n isSupported = !!xmlHttpRequest;\r\n }\r\n catch (e) {\r\n // Just Swallow any failure during availability checks\r\n }\r\n return isSupported;\r\n}\r\nfunction _getNamedValue(values, name) {\r\n if (values) {\r\n for (var i = 0; i < values[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n var value = values[i];\r\n if (value[_DYN_NAME /* @min:%2ename */]) {\r\n if (value[_DYN_NAME /* @min:%2ename */] === name) {\r\n return value;\r\n }\r\n }\r\n }\r\n }\r\n return {};\r\n}\r\n/**\r\n * Helper function to fetch the named meta-tag from the page.\r\n * @param name\r\n */\r\nexport function findMetaTag(name) {\r\n var doc = getDocument();\r\n if (doc && name) {\r\n // Look for a meta-tag\r\n return _getNamedValue(doc.querySelectorAll(\"meta\"), name).content;\r\n }\r\n return null;\r\n}\r\n/**\r\n * Helper function to fetch the named server timing value from the page response (first navigation event).\r\n * @param name\r\n */\r\nexport function findNamedServerTiming(name) {\r\n var value;\r\n var perf = getPerformance();\r\n if (perf) {\r\n // Try looking for a server-timing header\r\n var navPerf = perf.getEntriesByType(\"navigation\") || [];\r\n value = _getNamedValue((navPerf[_DYN_LENGTH /* @min:%2elength */] > 0 ? navPerf[0] : {}).serverTiming, name).description;\r\n }\r\n return value;\r\n}\r\n// TODO: should reuse this method for analytics plugin\r\nexport function dispatchEvent(target, evnt) {\r\n if (target && target.dispatchEvent && evnt) {\r\n target.dispatchEvent(evnt);\r\n return true;\r\n }\r\n return false;\r\n}\r\nexport function createCustomDomEvent(eventName, details) {\r\n var event = null;\r\n var detail = { detail: details || null };\r\n if (isFunction(CustomEvent)) { // Use CustomEvent constructor when available\r\n event = new CustomEvent(eventName, detail);\r\n }\r\n else { // CustomEvent has no constructor in IE\r\n var doc = getDocument();\r\n if (doc && doc.createEvent) {\r\n event = doc.createEvent(\"CustomEvent\");\r\n event.initCustomEvent(eventName, true, true, detail);\r\n }\r\n }\r\n return event;\r\n}\r\nexport function sendCustomEvent(evtName, cfg, customDetails) {\r\n var global = getGlobal();\r\n if (global && global.CustomEvent) {\r\n try {\r\n var details = { cfg: cfg || null, customDetails: customDetails || null };\r\n return dispatchEvent(global, createCustomDomEvent(evtName, details));\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n return false;\r\n}\r\n//# sourceMappingURL=EnvUtils.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { _DYN_APPLY, _DYN_LENGTH } from \"../__DynamicConstants\";\r\nimport { getGlobalInst } from \"./EnvUtils\";\r\nvar listenerFuncs = [\"eventsSent\", \"eventsDiscarded\", \"eventsSendRequest\", \"perfEvent\"];\r\nvar _aiNamespace = null;\r\nvar _debugListener;\r\nfunction _listenerProxyFunc(name, config) {\r\n return function () {\r\n var args = arguments;\r\n var dbgExt = getDebugExt(config);\r\n if (dbgExt) {\r\n var listener = dbgExt.listener;\r\n if (listener && listener[name]) {\r\n listener[name][_DYN_APPLY /* @min:%2eapply */](listener, args);\r\n }\r\n }\r\n };\r\n}\r\nfunction _getExtensionNamespace() {\r\n // Cache the lookup of the global namespace object\r\n var target = getGlobalInst(\"Microsoft\");\r\n if (target) {\r\n _aiNamespace = target[\"ApplicationInsights\"];\r\n }\r\n return _aiNamespace;\r\n}\r\nexport function getDebugExt(config) {\r\n var ns = _aiNamespace;\r\n if (!ns && config.disableDbgExt !== true) {\r\n ns = _aiNamespace || _getExtensionNamespace();\r\n }\r\n return ns ? ns[\"ChromeDbgExt\"] : null;\r\n}\r\nexport function getDebugListener(config) {\r\n if (!_debugListener) {\r\n _debugListener = {};\r\n for (var lp = 0; lp < listenerFuncs[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n _debugListener[listenerFuncs[lp]] = _listenerProxyFunc(listenerFuncs[lp], config);\r\n }\r\n }\r\n return _debugListener;\r\n}\r\n//# sourceMappingURL=DbgExtensionUtils.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\"use strict\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { _DYN_DIAG_LOG, _DYN_ENABLE_DEBUG_EXCEPTI4, _DYN_LOGGER, _DYN_LOG_INTERNAL_MESSAGE, _DYN_MESSAGE, _DYN_MESSAGE_ID, _DYN_PUSH, _DYN_REPLACE } from \"../__DynamicConstants\";\r\nimport { getDebugExt } from \"./DbgExtensionUtils\";\r\nimport { dumpObj, getConsole, getJSON, hasJSON } from \"./EnvUtils\";\r\nimport { getCfgValue, isFunction, isUndefined } from \"./HelperFuncs\";\r\nimport { STR_EMPTY, STR_ERROR_TO_CONSOLE, STR_WARN_TO_CONSOLE } from \"./InternalConstants\";\r\n/**\r\n * For user non actionable traces use AI Internal prefix.\r\n */\r\nvar AiNonUserActionablePrefix = \"AI (Internal): \";\r\n/**\r\n * Prefix of the traces in portal.\r\n */\r\nvar AiUserActionablePrefix = \"AI: \";\r\n/**\r\n * Session storage key for the prefix for the key indicating message type already logged\r\n */\r\nvar AIInternalMessagePrefix = \"AITR_\";\r\nfunction _sanitizeDiagnosticText(text) {\r\n if (text) {\r\n return \"\\\"\" + text[_DYN_REPLACE /* @min:%2ereplace */](/\\\"/g, STR_EMPTY) + \"\\\"\";\r\n }\r\n return STR_EMPTY;\r\n}\r\nfunction _logToConsole(func, message) {\r\n var theConsole = getConsole();\r\n if (!!theConsole) {\r\n var logFunc = \"log\";\r\n if (theConsole[func]) {\r\n logFunc = func;\r\n }\r\n if (isFunction(theConsole[logFunc])) {\r\n theConsole[logFunc](message);\r\n }\r\n }\r\n}\r\nvar _InternalLogMessage = /** @class */ (function () {\r\n function _InternalLogMessage(msgId, msg, isUserAct, properties) {\r\n if (isUserAct === void 0) { isUserAct = false; }\r\n var _self = this;\r\n _self[_DYN_MESSAGE_ID /* @min:%2emessageId */] = msgId;\r\n _self[_DYN_MESSAGE /* @min:%2emessage */] =\r\n (isUserAct ? AiUserActionablePrefix : AiNonUserActionablePrefix) +\r\n msgId;\r\n var strProps = STR_EMPTY;\r\n if (hasJSON()) {\r\n strProps = getJSON().stringify(properties);\r\n }\r\n var diagnosticText = (msg ? \" message:\" + _sanitizeDiagnosticText(msg) : STR_EMPTY) +\r\n (properties ? \" props:\" + _sanitizeDiagnosticText(strProps) : STR_EMPTY);\r\n _self[_DYN_MESSAGE /* @min:%2emessage */] += diagnosticText;\r\n }\r\n _InternalLogMessage.dataType = \"MessageData\";\r\n return _InternalLogMessage;\r\n}());\r\nexport { _InternalLogMessage };\r\nexport function safeGetLogger(core, config) {\r\n return (core || {})[_DYN_LOGGER /* @min:%2elogger */] || new DiagnosticLogger(config);\r\n}\r\nvar DiagnosticLogger = /** @class */ (function () {\r\n function DiagnosticLogger(config) {\r\n this.identifier = \"DiagnosticLogger\";\r\n /**\r\n * The internal logging queue\r\n */\r\n this.queue = [];\r\n /**\r\n * Count of internal messages sent\r\n */\r\n var _messageCount = 0;\r\n /**\r\n * Holds information about what message types were already logged to console or sent to server.\r\n */\r\n var _messageLogged = {};\r\n var _loggingLevelConsole;\r\n var _loggingLevelTelemetry;\r\n var _maxInternalMessageLimit;\r\n var _enableDebug;\r\n dynamicProto(DiagnosticLogger, this, function (_self) {\r\n _setDefaultsFromConfig(config || {});\r\n _self.consoleLoggingLevel = function () { return _loggingLevelConsole; };\r\n _self.telemetryLoggingLevel = function () { return _loggingLevelTelemetry; };\r\n _self.maxInternalMessageLimit = function () { return _maxInternalMessageLimit; };\r\n _self[_DYN_ENABLE_DEBUG_EXCEPTI4 /* @min:%2eenableDebugExceptions */] = function () { return _enableDebug; };\r\n /**\r\n * This method will throw exceptions in debug mode or attempt to log the error as a console warning.\r\n * @param severity {LoggingSeverity} - The severity of the log message\r\n * @param message {_InternalLogMessage} - The log message.\r\n */\r\n _self.throwInternal = function (severity, msgId, msg, properties, isUserAct) {\r\n if (isUserAct === void 0) { isUserAct = false; }\r\n var message = new _InternalLogMessage(msgId, msg, isUserAct, properties);\r\n if (_enableDebug) {\r\n throw dumpObj(message);\r\n }\r\n else {\r\n // Get the logging function and fallback to warnToConsole of for some reason errorToConsole doesn't exist\r\n var logFunc = severity === 1 /* eLoggingSeverity.CRITICAL */ ? STR_ERROR_TO_CONSOLE : STR_WARN_TO_CONSOLE;\r\n if (!isUndefined(message[_DYN_MESSAGE /* @min:%2emessage */])) {\r\n if (isUserAct) {\r\n // check if this message type was already logged to console for this page view and if so, don't log it again\r\n var messageKey = +message[_DYN_MESSAGE_ID /* @min:%2emessageId */];\r\n if (!_messageLogged[messageKey] && _loggingLevelConsole >= severity) {\r\n _self[logFunc](message[_DYN_MESSAGE /* @min:%2emessage */]);\r\n _messageLogged[messageKey] = true;\r\n }\r\n }\r\n else {\r\n // Only log traces if the console Logging Level is >= the throwInternal severity level\r\n if (_loggingLevelConsole >= severity) {\r\n _self[logFunc](message[_DYN_MESSAGE /* @min:%2emessage */]);\r\n }\r\n }\r\n _logInternalMessage(severity, message);\r\n }\r\n else {\r\n _debugExtMsg(\"throw\" + (severity === 1 /* eLoggingSeverity.CRITICAL */ ? \"Critical\" : \"Warning\"), message);\r\n }\r\n }\r\n };\r\n /**\r\n * This will write a warning to the console if possible\r\n * @param message {string} - The warning message\r\n */\r\n _self[STR_WARN_TO_CONSOLE /* @min:%2ewarnToConsole */] = function (message) {\r\n _logToConsole(\"warn\", message);\r\n _debugExtMsg(\"warning\", message);\r\n };\r\n /**\r\n * This will write an error to the console if possible\r\n * @param message {string} - The error message\r\n */\r\n _self[STR_ERROR_TO_CONSOLE /* @min:%2eerrorToConsole */] = function (message) {\r\n _logToConsole(\"error\", message);\r\n _debugExtMsg(\"error\", message);\r\n };\r\n /**\r\n * Resets the internal message count\r\n */\r\n _self.resetInternalMessageCount = function () {\r\n _messageCount = 0;\r\n _messageLogged = {};\r\n };\r\n /**\r\n * Logs a message to the internal queue.\r\n * @param severity {LoggingSeverity} - The severity of the log message\r\n * @param message {_InternalLogMessage} - The message to log.\r\n */\r\n _self[_DYN_LOG_INTERNAL_MESSAGE /* @min:%2elogInternalMessage */] = _logInternalMessage;\r\n function _logInternalMessage(severity, message) {\r\n if (_areInternalMessagesThrottled()) {\r\n return;\r\n }\r\n // check if this message type was already logged for this session and if so, don't log it again\r\n var logMessage = true;\r\n var messageKey = AIInternalMessagePrefix + message[_DYN_MESSAGE_ID /* @min:%2emessageId */];\r\n // if the session storage is not available, limit to only one message type per page view\r\n if (_messageLogged[messageKey]) {\r\n logMessage = false;\r\n }\r\n else {\r\n _messageLogged[messageKey] = true;\r\n }\r\n if (logMessage) {\r\n // Push the event in the internal queue\r\n if (severity <= _loggingLevelTelemetry) {\r\n _self.queue[_DYN_PUSH /* @min:%2epush */](message);\r\n _messageCount++;\r\n _debugExtMsg((severity === 1 /* eLoggingSeverity.CRITICAL */ ? \"error\" : \"warn\"), message);\r\n }\r\n // When throttle limit reached, send a special event\r\n if (_messageCount === _maxInternalMessageLimit) {\r\n var throttleLimitMessage = \"Internal events throttle limit per PageView reached for this app.\";\r\n var throttleMessage = new _InternalLogMessage(23 /* _eInternalMessageId.MessageLimitPerPVExceeded */, throttleLimitMessage, false);\r\n _self.queue[_DYN_PUSH /* @min:%2epush */](throttleMessage);\r\n if (severity === 1 /* eLoggingSeverity.CRITICAL */) {\r\n _self[STR_ERROR_TO_CONSOLE /* @min:%2eerrorToConsole */](throttleLimitMessage);\r\n }\r\n else {\r\n _self[STR_WARN_TO_CONSOLE /* @min:%2ewarnToConsole */](throttleLimitMessage);\r\n }\r\n }\r\n }\r\n }\r\n function _setDefaultsFromConfig(config) {\r\n _loggingLevelConsole = getCfgValue(config.loggingLevelConsole, 0);\r\n _loggingLevelTelemetry = getCfgValue(config.loggingLevelTelemetry, 1);\r\n _maxInternalMessageLimit = getCfgValue(config.maxMessageLimit, 25);\r\n _enableDebug = getCfgValue(config.enableDebug, getCfgValue(config[_DYN_ENABLE_DEBUG_EXCEPTI4 /* @min:%2eenableDebugExceptions */], false));\r\n }\r\n function _areInternalMessagesThrottled() {\r\n return _messageCount >= _maxInternalMessageLimit;\r\n }\r\n function _debugExtMsg(name, data) {\r\n var dbgExt = getDebugExt(config || {});\r\n if (dbgExt && dbgExt[_DYN_DIAG_LOG /* @min:%2ediagLog */]) {\r\n dbgExt[_DYN_DIAG_LOG /* @min:%2ediagLog */](name, data);\r\n }\r\n }\r\n });\r\n }\r\n /**\r\n * When this is true the SDK will throw exceptions to aid in debugging.\r\n */\r\n DiagnosticLogger.prototype.enableDebugExceptions = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return false;\r\n };\r\n /**\r\n * 0: OFF (default)\r\n * 1: CRITICAL\r\n * 2: >= WARNING\r\n */\r\n DiagnosticLogger.prototype.consoleLoggingLevel = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return 0;\r\n };\r\n /**\r\n * 0: OFF\r\n * 1: CRITICAL (default)\r\n * 2: >= WARNING\r\n */\r\n DiagnosticLogger.prototype.telemetryLoggingLevel = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return 1;\r\n };\r\n /**\r\n * The maximum number of internal messages allowed to be sent per page view\r\n */\r\n DiagnosticLogger.prototype.maxInternalMessageLimit = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return 25;\r\n };\r\n /**\r\n * This method will throw exceptions in debug mode or attempt to log the error as a console warning.\r\n * @param severity {LoggingSeverity} - The severity of the log message\r\n * @param message {_InternalLogMessage} - The log message.\r\n */\r\n DiagnosticLogger.prototype.throwInternal = function (severity, msgId, msg, properties, isUserAct) {\r\n if (isUserAct === void 0) { isUserAct = false; }\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * This will write a warning to the console if possible\r\n * @param message {string} - The warning message\r\n */\r\n DiagnosticLogger.prototype.warnToConsole = function (message) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * This will write an error to the console if possible\r\n * @param message {string} - The warning message\r\n */\r\n DiagnosticLogger.prototype.errorToConsole = function (message) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Resets the internal message count\r\n */\r\n DiagnosticLogger.prototype.resetInternalMessageCount = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Logs a message to the internal queue.\r\n * @param severity {LoggingSeverity} - The severity of the log message\r\n * @param message {_InternalLogMessage} - The message to log.\r\n */\r\n DiagnosticLogger.prototype.logInternalMessage = function (severity, message) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n return DiagnosticLogger;\r\n}());\r\nexport { DiagnosticLogger };\r\nfunction _getLogger(logger) {\r\n return (logger || new DiagnosticLogger());\r\n}\r\n/**\r\n * This is a helper method which will call throwInternal on the passed logger, will throw exceptions in\r\n * debug mode or attempt to log the error as a console warning. This helper is provided mostly to better\r\n * support minification as logger.throwInternal() will not compress the publish \"throwInternal\" used throughout\r\n * the code.\r\n * @param logger - The Diagnostic Logger instance to use.\r\n * @param severity {LoggingSeverity} - The severity of the log message\r\n * @param message {_InternalLogMessage} - The log message.\r\n */\r\nexport function _throwInternal(logger, severity, msgId, msg, properties, isUserAct) {\r\n if (isUserAct === void 0) { isUserAct = false; }\r\n _getLogger(logger).throwInternal(severity, msgId, msg, properties, isUserAct);\r\n}\r\n/**\r\n * This is a helper method which will call warnToConsole on the passed logger with the provided message.\r\n * @param logger - The Diagnostic Logger instance to use.\r\n * @param message {_InternalLogMessage} - The log message.\r\n */\r\nexport function _warnToConsole(logger, message) {\r\n _getLogger(logger)[STR_WARN_TO_CONSOLE /* @min:%2ewarnToConsole */](message);\r\n}\r\n/**\r\n * Logs a message to the internal queue.\r\n * @param logger - The Diagnostic Logger instance to use.\r\n * @param severity {LoggingSeverity} - The severity of the log message\r\n * @param message {_InternalLogMessage} - The message to log.\r\n */\r\nexport function _logInternalMessage(logger, severity, message) {\r\n _getLogger(logger)[_DYN_LOG_INTERNAL_MESSAGE /* @min:%2elogInternalMessage */](severity, message);\r\n}\r\n//# sourceMappingURL=DiagnosticLogger.js.map","import { _DYN_COOKIE_CFG, _DYN_INDEX_OF, _DYN_LENGTH, _DYN_LOGGER, _DYN_SET_ENABLED, _DYN_SPLIT, _DYN_SUBSTRING, _DYN_USER_AGENT } from \"../__DynamicConstants\";\r\nimport { _throwInternal } from \"./DiagnosticLogger\";\r\nimport { dumpObj, getDocument, getLocation, getNavigator, isIE } from \"./EnvUtils\";\r\nimport { arrForEach, dateNow, getExceptionName, isArray, isFunction, isNotNullOrUndefined, isNullOrUndefined, isString, isTruthy, isUndefined, objForEachKey, setValue, strContains, strEndsWith, strTrim } from \"./HelperFuncs\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\nvar strToGMTString = \"toGMTString\";\r\nvar strToUTCString = \"toUTCString\";\r\nvar strCookie = \"cookie\";\r\nvar strExpires = \"expires\";\r\nvar strEnabled = \"enabled\";\r\nvar strIsCookieUseDisabled = \"isCookieUseDisabled\";\r\nvar strDisableCookiesUsage = \"disableCookiesUsage\";\r\nvar strConfigCookieMgr = \"_ckMgr\";\r\nvar _supportsCookies = null;\r\nvar _allowUaSameSite = null;\r\nvar _parsedCookieValue = null;\r\nvar _doc = getDocument();\r\nvar _cookieCache = {};\r\nvar _globalCookieConfig = {};\r\n/**\r\n * @ignore\r\n * DO NOT USE or export from the module, this is exposed as public to support backward compatibility of previous static utility methods only.\r\n * If you want to manager cookies either use the ICookieMgr available from the core instance via getCookieMgr() or create\r\n * your own instance of the CookieMgr and use that.\r\n * Using this directly for enabling / disabling cookie handling will not only affect your usage but EVERY user of cookies.\r\n * Example, if you are using a shared component that is also using Application Insights you will affect their cookie handling.\r\n * @param logger - The DiagnosticLogger to use for reporting errors.\r\n */\r\nexport function _gblCookieMgr(config, logger) {\r\n // Stash the global instance against the BaseCookieMgr class\r\n var inst = createCookieMgr[strConfigCookieMgr] || _globalCookieConfig[strConfigCookieMgr];\r\n if (!inst) {\r\n // Note: not using the getSetValue() helper as that would require always creating a temporary cookieMgr\r\n // that ultimately is never used\r\n inst = createCookieMgr[strConfigCookieMgr] = createCookieMgr(config, logger);\r\n _globalCookieConfig[strConfigCookieMgr] = inst;\r\n }\r\n return inst;\r\n}\r\nfunction _isMgrEnabled(cookieMgr) {\r\n if (cookieMgr) {\r\n return cookieMgr.isEnabled();\r\n }\r\n return true;\r\n}\r\nfunction _createCookieMgrConfig(rootConfig) {\r\n var cookieMgrCfg = rootConfig[_DYN_COOKIE_CFG /* @min:%2ecookieCfg */] = rootConfig[_DYN_COOKIE_CFG /* @min:%2ecookieCfg */] || {};\r\n // Sets the values from the root config if not already present on the cookieMgrCfg\r\n setValue(cookieMgrCfg, \"domain\", rootConfig.cookieDomain, isNotNullOrUndefined, isNullOrUndefined);\r\n setValue(cookieMgrCfg, \"path\", rootConfig.cookiePath || \"/\", null, isNullOrUndefined);\r\n if (isNullOrUndefined(cookieMgrCfg[strEnabled])) {\r\n // Set the enabled from the provided setting or the legacy root values\r\n var cookieEnabled = void 0;\r\n if (!isUndefined(rootConfig[strIsCookieUseDisabled])) {\r\n cookieEnabled = !rootConfig[strIsCookieUseDisabled];\r\n }\r\n if (!isUndefined(rootConfig[strDisableCookiesUsage])) {\r\n cookieEnabled = !rootConfig[strDisableCookiesUsage];\r\n }\r\n cookieMgrCfg[strEnabled] = cookieEnabled;\r\n }\r\n return cookieMgrCfg;\r\n}\r\nfunction _isIgnoredCookie(cookieMgrCfg, name) {\r\n if (name && cookieMgrCfg && isArray(cookieMgrCfg.ignoreCookies)) {\r\n return cookieMgrCfg.ignoreCookies[_DYN_INDEX_OF /* @min:%2eindexOf */](name) !== -1;\r\n }\r\n return false;\r\n}\r\nfunction _isBlockedCookie(cookieMgrCfg, name) {\r\n if (name && cookieMgrCfg && isArray(cookieMgrCfg.blockedCookies)) {\r\n if (cookieMgrCfg.blockedCookies[_DYN_INDEX_OF /* @min:%2eindexOf */](name) !== -1) {\r\n return true;\r\n }\r\n }\r\n return _isIgnoredCookie(cookieMgrCfg, name);\r\n}\r\n/**\r\n * Helper to return the ICookieMgr from the core (if not null/undefined) or a default implementation\r\n * associated with the configuration or a legacy default.\r\n * @param core\r\n * @param config\r\n * @returns\r\n */\r\nexport function safeGetCookieMgr(core, config) {\r\n var cookieMgr;\r\n if (core) {\r\n // Always returns an instance\r\n cookieMgr = core.getCookieMgr();\r\n }\r\n else if (config) {\r\n var cookieCfg = config[_DYN_COOKIE_CFG /* @min:%2ecookieCfg */];\r\n if (cookieCfg[strConfigCookieMgr]) {\r\n cookieMgr = cookieCfg[strConfigCookieMgr];\r\n }\r\n else {\r\n cookieMgr = createCookieMgr(config);\r\n }\r\n }\r\n if (!cookieMgr) {\r\n // Get or initialize the default global (legacy) cookie manager if we couldn't find one\r\n cookieMgr = _gblCookieMgr(config, (core || {})[_DYN_LOGGER /* @min:%2elogger */]);\r\n }\r\n return cookieMgr;\r\n}\r\nexport function createCookieMgr(rootConfig, logger) {\r\n var _a;\r\n var cookieMgrConfig = _createCookieMgrConfig(rootConfig || _globalCookieConfig);\r\n var _path = cookieMgrConfig.path || \"/\";\r\n var _domain = cookieMgrConfig.domain;\r\n // Explicitly checking against false, so that setting to undefined will === true\r\n var _enabled = cookieMgrConfig[strEnabled] !== false;\r\n var cookieMgr = (_a = {\r\n isEnabled: function () {\r\n var enabled = _enabled && areCookiesSupported(logger);\r\n // Using an indirect lookup for any global cookie manager to support tree shaking for SDK's\r\n // that don't use the \"applicationinsights-core\" version of the default cookie function\r\n var gblManager = _globalCookieConfig[strConfigCookieMgr];\r\n if (enabled && gblManager && cookieMgr !== gblManager) {\r\n // Make sure the GlobalCookie Manager instance (if not this instance) is also enabled.\r\n // As the global (deprecated) functions may have been called (for backward compatibility)\r\n enabled = _isMgrEnabled(gblManager);\r\n }\r\n return enabled;\r\n }\r\n },\r\n _a[_DYN_SET_ENABLED /* @min:setEnabled */] = function (value) {\r\n // Explicitly checking against false, so that setting to undefined will === true\r\n _enabled = value !== false;\r\n },\r\n _a.set = function (name, value, maxAgeSec, domain, path) {\r\n var result = false;\r\n if (_isMgrEnabled(cookieMgr) && !_isBlockedCookie(cookieMgrConfig, name)) {\r\n var values = {};\r\n var theValue = strTrim(value || STR_EMPTY);\r\n var idx = theValue[_DYN_INDEX_OF /* @min:%2eindexOf */](\";\");\r\n if (idx !== -1) {\r\n theValue = strTrim(value[_DYN_SUBSTRING /* @min:%2esubstring */](0, idx));\r\n values = _extractParts(value[_DYN_SUBSTRING /* @min:%2esubstring */](idx + 1));\r\n }\r\n // Only update domain if not already present (isUndefined) and the value is truthy (not null, undefined or empty string)\r\n setValue(values, \"domain\", domain || _domain, isTruthy, isUndefined);\r\n if (!isNullOrUndefined(maxAgeSec)) {\r\n var _isIE = isIE();\r\n if (isUndefined(values[strExpires])) {\r\n var nowMs = dateNow();\r\n // Only add expires if not already present\r\n var expireMs = nowMs + (maxAgeSec * 1000);\r\n // Sanity check, if zero or -ve then ignore\r\n if (expireMs > 0) {\r\n var expiry = new Date();\r\n expiry.setTime(expireMs);\r\n setValue(values, strExpires, _formatDate(expiry, !_isIE ? strToUTCString : strToGMTString) || _formatDate(expiry, _isIE ? strToGMTString : strToUTCString) || STR_EMPTY, isTruthy);\r\n }\r\n }\r\n if (!_isIE) {\r\n // Only replace if not already present\r\n setValue(values, \"max-age\", STR_EMPTY + maxAgeSec, null, isUndefined);\r\n }\r\n }\r\n var location_1 = getLocation();\r\n if (location_1 && location_1.protocol === \"https:\") {\r\n setValue(values, \"secure\", null, null, isUndefined);\r\n // Only set same site if not also secure\r\n if (_allowUaSameSite === null) {\r\n _allowUaSameSite = !uaDisallowsSameSiteNone((getNavigator() || {})[_DYN_USER_AGENT /* @min:%2euserAgent */]);\r\n }\r\n if (_allowUaSameSite) {\r\n setValue(values, \"SameSite\", \"None\", null, isUndefined);\r\n }\r\n }\r\n setValue(values, \"path\", path || _path, null, isUndefined);\r\n var setCookieFn = cookieMgrConfig.setCookie || _setCookieValue;\r\n setCookieFn(name, _formatCookieValue(theValue, values));\r\n result = true;\r\n }\r\n return result;\r\n },\r\n _a.get = function (name) {\r\n var value = STR_EMPTY;\r\n if (_isMgrEnabled(cookieMgr) && !_isIgnoredCookie(cookieMgrConfig, name)) {\r\n value = (cookieMgrConfig.getCookie || _getCookieValue)(name);\r\n }\r\n return value;\r\n },\r\n _a.del = function (name, path) {\r\n var result = false;\r\n if (_isMgrEnabled(cookieMgr)) {\r\n // Only remove the cookie if the manager and cookie support has not been disabled\r\n result = cookieMgr.purge(name, path);\r\n }\r\n return result;\r\n },\r\n _a.purge = function (name, path) {\r\n var _a;\r\n var result = false;\r\n if (areCookiesSupported(logger)) {\r\n // Setting the expiration date in the past immediately removes the cookie\r\n var values = (_a = {},\r\n _a[\"path\"] = path ? path : \"/\",\r\n _a[strExpires] = \"Thu, 01 Jan 1970 00:00:01 GMT\",\r\n _a);\r\n if (!isIE()) {\r\n // Set max age to expire now\r\n values[\"max-age\"] = \"0\";\r\n }\r\n var delCookie = cookieMgrConfig.delCookie || _setCookieValue;\r\n delCookie(name, _formatCookieValue(STR_EMPTY, values));\r\n result = true;\r\n }\r\n return result;\r\n },\r\n _a);\r\n // Associated this cookie manager with the config\r\n cookieMgr[strConfigCookieMgr] = cookieMgr;\r\n return cookieMgr;\r\n}\r\n/*\r\n* Helper method to tell if document.cookie object is supported by the runtime\r\n*/\r\nexport function areCookiesSupported(logger) {\r\n if (_supportsCookies === null) {\r\n _supportsCookies = false;\r\n try {\r\n var doc = _doc || {};\r\n _supportsCookies = doc[strCookie] !== undefined;\r\n }\r\n catch (e) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 68 /* _eInternalMessageId.CannotAccessCookie */, \"Cannot access document.cookie - \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return _supportsCookies;\r\n}\r\nfunction _extractParts(theValue) {\r\n var values = {};\r\n if (theValue && theValue[_DYN_LENGTH /* @min:%2elength */]) {\r\n var parts = strTrim(theValue)[_DYN_SPLIT /* @min:%2esplit */](\";\");\r\n arrForEach(parts, function (thePart) {\r\n thePart = strTrim(thePart || STR_EMPTY);\r\n if (thePart) {\r\n var idx = thePart[_DYN_INDEX_OF /* @min:%2eindexOf */](\"=\");\r\n if (idx === -1) {\r\n values[thePart] = null;\r\n }\r\n else {\r\n values[strTrim(thePart[_DYN_SUBSTRING /* @min:%2esubstring */](0, idx))] = strTrim(thePart[_DYN_SUBSTRING /* @min:%2esubstring */](idx + 1));\r\n }\r\n }\r\n });\r\n }\r\n return values;\r\n}\r\nfunction _formatDate(theDate, func) {\r\n if (isFunction(theDate[func])) {\r\n return theDate[func]();\r\n }\r\n return null;\r\n}\r\nfunction _formatCookieValue(value, values) {\r\n var cookieValue = value || STR_EMPTY;\r\n objForEachKey(values, function (name, theValue) {\r\n cookieValue += \"; \" + name + (!isNullOrUndefined(theValue) ? \"=\" + theValue : STR_EMPTY);\r\n });\r\n return cookieValue;\r\n}\r\nfunction _getCookieValue(name) {\r\n var cookieValue = STR_EMPTY;\r\n if (_doc) {\r\n var theCookie = _doc[strCookie] || STR_EMPTY;\r\n if (_parsedCookieValue !== theCookie) {\r\n _cookieCache = _extractParts(theCookie);\r\n _parsedCookieValue = theCookie;\r\n }\r\n cookieValue = strTrim(_cookieCache[name] || STR_EMPTY);\r\n }\r\n return cookieValue;\r\n}\r\nfunction _setCookieValue(name, cookieValue) {\r\n if (_doc) {\r\n _doc[strCookie] = name + \"=\" + cookieValue;\r\n }\r\n}\r\nexport function uaDisallowsSameSiteNone(userAgent) {\r\n if (!isString(userAgent)) {\r\n return false;\r\n }\r\n // Cover all iOS based browsers here. This includes:\r\n // - Safari on iOS 12 for iPhone, iPod Touch, iPad\r\n // - WkWebview on iOS 12 for iPhone, iPod Touch, iPad\r\n // - Chrome on iOS 12 for iPhone, iPod Touch, iPad\r\n // All of which are broken by SameSite=None, because they use the iOS networking stack\r\n if (strContains(userAgent, \"CPU iPhone OS 12\") || strContains(userAgent, \"iPad; CPU OS 12\")) {\r\n return true;\r\n }\r\n // Cover Mac OS X based browsers that use the Mac OS networking stack. This includes:\r\n // - Safari on Mac OS X\r\n // This does not include:\r\n // - Internal browser on Mac OS X\r\n // - Chrome on Mac OS X\r\n // - Chromium on Mac OS X\r\n // Because they do not use the Mac OS networking stack.\r\n if (strContains(userAgent, \"Macintosh; Intel Mac OS X 10_14\") && strContains(userAgent, \"Version/\") && strContains(userAgent, \"Safari\")) {\r\n return true;\r\n }\r\n // Cover Mac OS X internal browsers that use the Mac OS networking stack. This includes:\r\n // - Internal browser on Mac OS X\r\n // This does not include:\r\n // - Safari on Mac OS X\r\n // - Chrome on Mac OS X\r\n // - Chromium on Mac OS X\r\n // Because they do not use the Mac OS networking stack.\r\n if (strContains(userAgent, \"Macintosh; Intel Mac OS X 10_14\") && strEndsWith(userAgent, \"AppleWebKit/605.1.15 (KHTML, like Gecko)\")) {\r\n return true;\r\n }\r\n // Cover Chrome 50-69, because some versions are broken by SameSite=None, and none in this range require it.\r\n // Note: this covers some pre-Chromium Edge versions, but pre-Chromim Edge does not require SameSite=None, so this is fine.\r\n // Note: this regex applies to Windows, Mac OS X, and Linux, deliberately.\r\n if (strContains(userAgent, \"Chrome/5\") || strContains(userAgent, \"Chrome/6\")) {\r\n return true;\r\n }\r\n // Unreal Engine runs Chromium 59, but does not advertise as Chrome until 4.23. Treat versions of Unreal\r\n // that don't specify their Chrome version as lacking support for SameSite=None.\r\n if (strContains(userAgent, \"UnrealEngine\") && !strContains(userAgent, \"Chrome\")) {\r\n return true;\r\n }\r\n // UCBrowser < 12.13.2 ignores Set-Cookie headers with SameSite=None\r\n // NB: this rule isn't complete - you need regex to make a complete rule.\r\n // See: https://www.chromium.org/updates/same-site/incompatible-clients\r\n if (strContains(userAgent, \"UCBrowser/12\") || strContains(userAgent, \"UCBrowser/11\")) {\r\n return true;\r\n }\r\n return false;\r\n}\r\n//# sourceMappingURL=CookieMgr.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { _DYN_COMPLETE, _DYN_GET_CTX, _DYN_IS_ASYNC, _DYN_IS_CHILD_EVT, _DYN_LENGTH, _DYN_NAME, _DYN_PUSH, _DYN_SET_CTX, _DYN_TIME } from \"../__DynamicConstants\";\r\nimport { dateNow, isArray, isFunction, objDefineAccessors } from \"./HelperFuncs\";\r\nimport { STR_GET_PERF_MGR, STR_PERF_EVENT } from \"./InternalConstants\";\r\nvar strExecutionContextKey = \"ctx\";\r\nvar strParentContextKey = \"ParentContextKey\";\r\nvar strChildrenContextKey = \"ChildrenContextKey\";\r\nvar _defaultPerfManager = null;\r\nvar PerfEvent = /** @class */ (function () {\r\n function PerfEvent(name, payloadDetails, isAsync) {\r\n var _self = this;\r\n var accessorDefined = false;\r\n _self.start = dateNow();\r\n _self[_DYN_NAME /* @min:%2ename */] = name;\r\n _self[_DYN_IS_ASYNC /* @min:%2eisAsync */] = isAsync;\r\n _self[_DYN_IS_CHILD_EVT /* @min:%2eisChildEvt */] = function () { return false; };\r\n if (isFunction(payloadDetails)) {\r\n // Create an accessor to minimize the potential performance impact of executing the payloadDetails callback\r\n var theDetails_1;\r\n accessorDefined = objDefineAccessors(_self, \"payload\", function () {\r\n // Delay the execution of the payloadDetails until needed\r\n if (!theDetails_1 && isFunction(payloadDetails)) {\r\n theDetails_1 = payloadDetails();\r\n // clear it out now so the referenced objects can be garbage collected\r\n payloadDetails = null;\r\n }\r\n return theDetails_1;\r\n });\r\n }\r\n _self[_DYN_GET_CTX /* @min:%2egetCtx */] = function (key) {\r\n if (key) {\r\n // The parent and child links are located directly on the object (for better viewing in the DebugPlugin)\r\n if (key === PerfEvent[strParentContextKey] || key === PerfEvent[strChildrenContextKey]) {\r\n return _self[key];\r\n }\r\n return (_self[strExecutionContextKey] || {})[key];\r\n }\r\n return null;\r\n };\r\n _self[_DYN_SET_CTX /* @min:%2esetCtx */] = function (key, value) {\r\n if (key) {\r\n // Put the parent and child links directly on the object (for better viewing in the DebugPlugin)\r\n if (key === PerfEvent[strParentContextKey]) {\r\n // Simple assumption, if we are setting a parent then we must be a child\r\n if (!_self[key]) {\r\n _self[_DYN_IS_CHILD_EVT /* @min:%2eisChildEvt */] = function () { return true; };\r\n }\r\n _self[key] = value;\r\n }\r\n else if (key === PerfEvent[strChildrenContextKey]) {\r\n _self[key] = value;\r\n }\r\n else {\r\n var ctx = _self[strExecutionContextKey] = _self[strExecutionContextKey] || {};\r\n ctx[key] = value;\r\n }\r\n }\r\n };\r\n _self[_DYN_COMPLETE /* @min:%2ecomplete */] = function () {\r\n var childTime = 0;\r\n var childEvts = _self[_DYN_GET_CTX /* @min:%2egetCtx */](PerfEvent[strChildrenContextKey]);\r\n if (isArray(childEvts)) {\r\n for (var lp = 0; lp < childEvts[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n var childEvt = childEvts[lp];\r\n if (childEvt) {\r\n childTime += childEvt[_DYN_TIME /* @min:%2etime */];\r\n }\r\n }\r\n }\r\n _self[_DYN_TIME /* @min:%2etime */] = dateNow() - _self.start;\r\n _self.exTime = _self[_DYN_TIME /* @min:%2etime */] - childTime;\r\n _self[_DYN_COMPLETE /* @min:%2ecomplete */] = function () { };\r\n if (!accessorDefined && isFunction(payloadDetails)) {\r\n // If we couldn't define the property set during complete -- to minimize the perf impact until after the time\r\n _self.payload = payloadDetails();\r\n }\r\n };\r\n }\r\n PerfEvent.ParentContextKey = \"parent\";\r\n PerfEvent.ChildrenContextKey = \"childEvts\";\r\n return PerfEvent;\r\n}());\r\nexport { PerfEvent };\r\nvar PerfManager = /** @class */ (function () {\r\n function PerfManager(manager) {\r\n /**\r\n * General bucket used for execution context set and retrieved via setCtx() and getCtx.\r\n * Defined as private so it can be visualized via the DebugPlugin\r\n */\r\n this.ctx = {};\r\n dynamicProto(PerfManager, this, function (_self) {\r\n _self.create = function (src, payloadDetails, isAsync) {\r\n // TODO (@MSNev): at some point we will want to add additional configuration to \"select\" which events to instrument\r\n // for now this is just a simple do everything.\r\n return new PerfEvent(src, payloadDetails, isAsync);\r\n };\r\n _self.fire = function (perfEvent) {\r\n if (perfEvent) {\r\n perfEvent[_DYN_COMPLETE /* @min:%2ecomplete */]();\r\n if (manager && isFunction(manager[STR_PERF_EVENT /* @min:%2eperfEvent */])) {\r\n manager[STR_PERF_EVENT /* @min:%2eperfEvent */](perfEvent);\r\n }\r\n }\r\n };\r\n _self[_DYN_SET_CTX /* @min:%2esetCtx */] = function (key, value) {\r\n if (key) {\r\n var ctx = _self[strExecutionContextKey] = _self[strExecutionContextKey] || {};\r\n ctx[key] = value;\r\n }\r\n };\r\n _self[_DYN_GET_CTX /* @min:%2egetCtx */] = function (key) {\r\n return (_self[strExecutionContextKey] || {})[key];\r\n };\r\n });\r\n }\r\n /**\r\n * Create a new event and start timing, the manager may return null/undefined to indicate that it does not\r\n * want to monitor this source event.\r\n * @param src The source name of the event\r\n * @param payloadDetails - An optional callback function to fetch the payload details for the event.\r\n * @param isAsync - Is the event occurring from a async event\r\n */\r\n PerfManager.prototype.create = function (src, payload, isAsync) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n /**\r\n * Complete the perfEvent and fire any notifications.\r\n * @param perfEvent Fire the event which will also complete the passed event\r\n */\r\n PerfManager.prototype.fire = function (perfEvent) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Set an execution context value\r\n * @param key - The context key name\r\n * @param value - The value\r\n */\r\n PerfManager.prototype.setCtx = function (key, value) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Get the execution context value\r\n * @param key - The context key\r\n */\r\n PerfManager.prototype.getCtx = function (key) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n return PerfManager;\r\n}());\r\nexport { PerfManager };\r\nvar doPerfActiveKey = \"CoreUtils.doPerf\";\r\n/**\r\n * Helper function to wrap a function with a perf event\r\n * @param mgrSource - The Performance Manager or a Performance provider source (may be null)\r\n * @param getSource - The callback to create the source name for the event (if perf monitoring is enabled)\r\n * @param func - The function to call and measure\r\n * @param details - A function to return the payload details\r\n * @param isAsync - Is the event / function being call asynchronously or synchronously\r\n */\r\nexport function doPerf(mgrSource, getSource, func, details, isAsync) {\r\n if (mgrSource) {\r\n var perfMgr = mgrSource;\r\n if (perfMgr[STR_GET_PERF_MGR]) {\r\n // Looks like a perf manager provider object\r\n perfMgr = perfMgr[STR_GET_PERF_MGR]();\r\n }\r\n if (perfMgr) {\r\n var perfEvt = void 0;\r\n var currentActive = perfMgr[_DYN_GET_CTX /* @min:%2egetCtx */](doPerfActiveKey);\r\n try {\r\n perfEvt = perfMgr.create(getSource(), details, isAsync);\r\n if (perfEvt) {\r\n if (currentActive && perfEvt[_DYN_SET_CTX /* @min:%2esetCtx */]) {\r\n perfEvt[_DYN_SET_CTX /* @min:%2esetCtx */](PerfEvent[strParentContextKey], currentActive);\r\n if (currentActive[_DYN_GET_CTX /* @min:%2egetCtx */] && currentActive[_DYN_SET_CTX /* @min:%2esetCtx */]) {\r\n var children = currentActive[_DYN_GET_CTX /* @min:%2egetCtx */](PerfEvent[strChildrenContextKey]);\r\n if (!children) {\r\n children = [];\r\n currentActive[_DYN_SET_CTX /* @min:%2esetCtx */](PerfEvent[strChildrenContextKey], children);\r\n }\r\n children[_DYN_PUSH /* @min:%2epush */](perfEvt);\r\n }\r\n }\r\n // Set this event as the active event now\r\n perfMgr[_DYN_SET_CTX /* @min:%2esetCtx */](doPerfActiveKey, perfEvt);\r\n return func(perfEvt);\r\n }\r\n }\r\n catch (ex) {\r\n if (perfEvt && perfEvt[_DYN_SET_CTX /* @min:%2esetCtx */]) {\r\n perfEvt[_DYN_SET_CTX /* @min:%2esetCtx */](\"exception\", ex);\r\n }\r\n }\r\n finally {\r\n // fire the perf event\r\n if (perfEvt) {\r\n perfMgr.fire(perfEvt);\r\n }\r\n // Reset the active event to the previous value\r\n perfMgr[_DYN_SET_CTX /* @min:%2esetCtx */](doPerfActiveKey, currentActive);\r\n }\r\n }\r\n }\r\n return func();\r\n}\r\n/**\r\n * Set the global performance manager to use when there is no core instance or it has not been initialized yet.\r\n * @param perfManager - The IPerfManager instance to use when no performance manager is supplied.\r\n */\r\nexport function setGblPerfMgr(perfManager) {\r\n _defaultPerfManager = perfManager;\r\n}\r\n/**\r\n * Get the current global performance manager that will be used with no performance manager is supplied.\r\n * @returns - The current default manager\r\n */\r\nexport function getGblPerfMgr() {\r\n return _defaultPerfManager;\r\n}\r\n//# sourceMappingURL=PerfManager.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { _DYN_LENGTH } from \"../__DynamicConstants\";\r\nimport { getCrypto, getMsCrypto, isIE } from \"./EnvUtils\";\r\nimport { dateNow } from \"./HelperFuncs\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\nvar UInt32Mask = 0x100000000;\r\nvar MaxUInt32 = 0xffffffff;\r\n// MWC based Random generator (for IE)\r\nvar _mwcSeeded = false;\r\nvar _mwcW = 123456789;\r\nvar _mwcZ = 987654321;\r\n// Takes any integer\r\nfunction _mwcSeed(seedValue) {\r\n if (seedValue < 0) {\r\n // Make sure we end up with a positive number and not -ve one.\r\n seedValue >>>= 0;\r\n }\r\n _mwcW = (123456789 + seedValue) & MaxUInt32;\r\n _mwcZ = (987654321 - seedValue) & MaxUInt32;\r\n _mwcSeeded = true;\r\n}\r\nfunction _autoSeedMwc() {\r\n // Simple initialization using default Math.random() - So we inherit any entropy from the browser\r\n // and bitwise XOR with the current milliseconds\r\n try {\r\n var now = dateNow() & 0x7fffffff;\r\n _mwcSeed(((Math.random() * UInt32Mask) ^ now) + now);\r\n }\r\n catch (e) {\r\n // Don't crash if something goes wrong\r\n }\r\n}\r\n/**\r\n * Generate a random value between 0 and maxValue, max value should be limited to a 32-bit maximum.\r\n * So maxValue(16) will produce a number from 0..16 (range of 17)\r\n * @param maxValue\r\n */\r\nexport function randomValue(maxValue) {\r\n if (maxValue > 0) {\r\n return Math.floor((random32() / MaxUInt32) * (maxValue + 1)) >>> 0;\r\n }\r\n return 0;\r\n}\r\n/**\r\n * generate a random 32-bit number (0x000000..0xFFFFFFFF) or (-0x80000000..0x7FFFFFFF), defaults un-unsigned.\r\n * @param signed - True to return a signed 32-bit number (-0x80000000..0x7FFFFFFF) otherwise an unsigned one (0x000000..0xFFFFFFFF)\r\n */\r\nexport function random32(signed) {\r\n var value = 0;\r\n var c = getCrypto() || getMsCrypto();\r\n if (c && c.getRandomValues) {\r\n // Make sure the number is converted into the specified range (-0x80000000..0x7FFFFFFF)\r\n value = c.getRandomValues(new Uint32Array(1))[0] & MaxUInt32;\r\n }\r\n if (value === 0 && isIE()) {\r\n // For IE 6, 7, 8 (especially on XP) Math.random is not very random\r\n if (!_mwcSeeded) {\r\n // Set the seed for the Mwc algorithm\r\n _autoSeedMwc();\r\n }\r\n // Don't use Math.random for IE\r\n // Make sure the number is converted into the specified range (-0x80000000..0x7FFFFFFF)\r\n value = mwcRandom32() & MaxUInt32;\r\n }\r\n if (value === 0) {\r\n // Make sure the number is converted into the specified range (-0x80000000..0x7FFFFFFF)\r\n value = Math.floor((UInt32Mask * Math.random()) | 0);\r\n }\r\n if (!signed) {\r\n // Make sure we end up with a positive number and not -ve one.\r\n value >>>= 0;\r\n }\r\n return value;\r\n}\r\n/**\r\n * Seed the MWC random number generator with the specified seed or a random value\r\n * @param value - optional the number to used as the seed, if undefined, null or zero a random value will be chosen\r\n */\r\nexport function mwcRandomSeed(value) {\r\n if (!value) {\r\n _autoSeedMwc();\r\n }\r\n else {\r\n _mwcSeed(value);\r\n }\r\n}\r\n/**\r\n * Generate a random 32-bit number between (0x000000..0xFFFFFFFF) or (-0x80000000..0x7FFFFFFF), using MWC (Multiply with carry)\r\n * instead of Math.random() defaults to un-signed.\r\n * Used as a replacement random generator for IE to avoid issues with older IE instances.\r\n * @param signed - True to return a signed 32-bit number (-0x80000000..0x7FFFFFFF) otherwise an unsigned one (0x000000..0xFFFFFFFF)\r\n */\r\nexport function mwcRandom32(signed) {\r\n _mwcZ = (36969 * (_mwcZ & 0xFFFF) + (_mwcZ >> 16)) & MaxUInt32;\r\n _mwcW = (18000 * (_mwcW & 0xFFFF) + (_mwcW >> 16)) & MaxUInt32;\r\n var value = (((_mwcZ << 16) + (_mwcW & 0xFFFF)) >>> 0) & MaxUInt32 | 0;\r\n if (!signed) {\r\n // Make sure we end up with a positive number and not -ve one.\r\n value >>>= 0;\r\n }\r\n return value;\r\n}\r\n/**\r\n * Generate random base64 id string.\r\n * The default length is 22 which is 132-bits so almost the same as a GUID but as base64 (the previous default was 5)\r\n * @param maxLength - Optional value to specify the length of the id to be generated, defaults to 22\r\n */\r\nexport function newId(maxLength) {\r\n if (maxLength === void 0) { maxLength = 22; }\r\n var base64chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\r\n // Start with an initial random number, consuming the value in reverse byte order\r\n var number = random32() >>> 0; // Make sure it's a +ve number\r\n var chars = 0;\r\n var result = STR_EMPTY;\r\n while (result[_DYN_LENGTH /* @min:%2elength */] < maxLength) {\r\n chars++;\r\n result += base64chars.charAt(number & 0x3F);\r\n number >>>= 6; // Zero fill with right shift\r\n if (chars === 5) {\r\n // 5 base64 characters === 30 bits so we don't have enough bits for another base64 char\r\n // So add on another 30 bits and make sure it's +ve\r\n number = (((random32() << 2) & 0xFFFFFFFF) | (number & 0x03)) >>> 0;\r\n chars = 0; // We need to reset the number every 5 chars (30 bits)\r\n }\r\n }\r\n return result;\r\n}\r\n//# sourceMappingURL=RandomHelper.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { ObjDefineProperty } from \"@microsoft/applicationinsights-shims\";\r\nimport { _DYN_NODE_TYPE } from \"../__DynamicConstants\";\r\nimport { normalizeJsName } from \"./HelperFuncs\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\nimport { newId } from \"./RandomHelper\";\r\nvar _objDefineProperty = ObjDefineProperty;\r\nvar version = '2.8.18';\r\nvar instanceName = \".\" + newId(6);\r\nvar _dataUid = 0;\r\nfunction _createAccessor(target, prop, value) {\r\n if (_objDefineProperty) {\r\n try {\r\n _objDefineProperty(target, prop, {\r\n value: value,\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return true;\r\n }\r\n catch (e) {\r\n // IE8 Defines a defineProperty on Object but it's only supported for DOM elements so it will throw\r\n // We will just ignore this here.\r\n }\r\n }\r\n return false;\r\n}\r\n// Accepts only:\r\n// - Node\r\n// - Node.ELEMENT_NODE\r\n// - Node.DOCUMENT_NODE\r\n// - Object\r\n// - Any\r\nfunction _canAcceptData(target) {\r\n return target[_DYN_NODE_TYPE /* @min:%2enodeType */] === 1 || target[_DYN_NODE_TYPE /* @min:%2enodeType */] === 9 || !(+target[_DYN_NODE_TYPE /* @min:%2enodeType */]);\r\n}\r\nfunction _getCache(data, target) {\r\n var theCache = target[data.id];\r\n if (!theCache) {\r\n theCache = {};\r\n try {\r\n if (_canAcceptData(target)) {\r\n if (!_createAccessor(target, data.id, theCache)) {\r\n // Environment doesn't support accessor, so just use direct assignment\r\n target[data.id] = theCache;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // Not all environments allow extending all objects, so just ignore the cache in those cases\r\n }\r\n }\r\n return theCache;\r\n}\r\nexport function createUniqueNamespace(name, includeVersion) {\r\n if (includeVersion === void 0) { includeVersion = false; }\r\n return normalizeJsName(name + (_dataUid++) + (includeVersion ? \".\" + version : STR_EMPTY) + instanceName);\r\n}\r\nexport function createElmNodeData(name) {\r\n var data = {\r\n id: createUniqueNamespace(\"_aiData-\" + (name || STR_EMPTY) + \".\" + version),\r\n accept: function (target) {\r\n return _canAcceptData(target);\r\n },\r\n get: function (target, name, defValue, addDefault) {\r\n var theCache = target[data.id];\r\n if (!theCache) {\r\n if (addDefault) {\r\n // Side effect is adds the cache\r\n theCache = _getCache(data, target);\r\n theCache[normalizeJsName(name)] = defValue;\r\n }\r\n return defValue;\r\n }\r\n return theCache[normalizeJsName(name)];\r\n },\r\n kill: function (target, name) {\r\n if (target && target[name]) {\r\n try {\r\n delete target[name];\r\n }\r\n catch (e) {\r\n // Just cleaning up, so if this fails -- ignore\r\n }\r\n }\r\n }\r\n };\r\n return data;\r\n}\r\n//# sourceMappingURL=DataCacheHelper.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { _DYN_HANDLER, _DYN_LENGTH, _DYN_NAME, _DYN_PUSH, _DYN_REPLACE, _DYN_SPLICE, _DYN_SPLIT, _DYN_TYPE } from \"../__DynamicConstants\";\r\nimport { createElmNodeData, createUniqueNamespace } from \"./DataCacheHelper\";\r\nimport { getDocument, getWindow } from \"./EnvUtils\";\r\nimport { arrForEach, arrIndexOf, isArray, objForEachKey, objKeys } from \"./HelperFuncs\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\n// Added to help with minfication\r\nvar strOnPrefix = \"on\";\r\nvar strAttachEvent = \"attachEvent\";\r\nvar strAddEventHelper = \"addEventListener\";\r\nvar strDetachEvent = \"detachEvent\";\r\nvar strRemoveEventListener = \"removeEventListener\";\r\nvar strEvents = \"events\";\r\nvar strVisibilityChangeEvt = \"visibilitychange\";\r\nvar strPageHide = \"pagehide\";\r\nvar strPageShow = \"pageshow\";\r\nvar strUnload = \"unload\";\r\nvar strBeforeUnload = \"beforeunload\";\r\nvar strPageHideNamespace = createUniqueNamespace(\"aiEvtPageHide\");\r\nvar strPageShowNamespace = createUniqueNamespace(\"aiEvtPageShow\");\r\nvar rRemoveEmptyNs = /\\.[\\.]+/g;\r\nvar rRemoveTrailingEmptyNs = /[\\.]+$/;\r\nvar _guid = 1;\r\nvar elmNodeData = createElmNodeData(\"events\");\r\nvar eventNamespace = /^([^.]*)(?:\\.(.+)|)/;\r\nfunction _normalizeNamespace(name) {\r\n if (name && name[_DYN_REPLACE /* @min:%2ereplace */]) {\r\n return name[_DYN_REPLACE /* @min:%2ereplace */](/^[\\s\\.]+|(?=[\\s\\.])[\\.\\s]+$/g, STR_EMPTY);\r\n }\r\n return name;\r\n}\r\nfunction _getEvtNamespace(eventName, evtNamespace) {\r\n var _a;\r\n if (evtNamespace) {\r\n var theNamespace_1 = STR_EMPTY;\r\n if (isArray(evtNamespace)) {\r\n theNamespace_1 = STR_EMPTY;\r\n arrForEach(evtNamespace, function (name) {\r\n name = _normalizeNamespace(name);\r\n if (name) {\r\n if (name[0] !== \".\") {\r\n name = \".\" + name;\r\n }\r\n theNamespace_1 += name;\r\n }\r\n });\r\n }\r\n else {\r\n theNamespace_1 = _normalizeNamespace(evtNamespace);\r\n }\r\n if (theNamespace_1) {\r\n if (theNamespace_1[0] !== \".\") {\r\n theNamespace_1 = \".\" + theNamespace_1;\r\n }\r\n // We may only have the namespace and not an eventName\r\n eventName = (eventName || STR_EMPTY) + theNamespace_1;\r\n }\r\n }\r\n var parsedEvent = (eventNamespace.exec(eventName || STR_EMPTY) || []);\r\n return _a = {},\r\n _a[_DYN_TYPE /* @min:type */] = parsedEvent[1],\r\n _a.ns = ((parsedEvent[2] || STR_EMPTY).replace(rRemoveEmptyNs, \".\").replace(rRemoveTrailingEmptyNs, STR_EMPTY)[_DYN_SPLIT /* @min:%2esplit */](\".\").sort()).join(\".\"),\r\n _a;\r\n}\r\n/**\r\n * Get all of the registered events on the target object, this is primarily used for testing cleanup but may also be used by\r\n * applications to remove their own events\r\n * @param target - The EventTarget that has registered events\r\n * @param eventName - [Optional] The name of the event to return the registered handlers and full name (with namespaces)\r\n * @param evtNamespace - [Optional] Additional namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace,\r\n * if the eventName also includes a namespace the namespace(s) are merged into a single namespace\r\n */\r\nexport function __getRegisteredEvents(target, eventName, evtNamespace) {\r\n var theEvents = [];\r\n var eventCache = elmNodeData.get(target, strEvents, {}, false);\r\n var evtName = _getEvtNamespace(eventName, evtNamespace);\r\n objForEachKey(eventCache, function (evtType, registeredEvents) {\r\n arrForEach(registeredEvents, function (value) {\r\n var _a;\r\n if (!evtName[_DYN_TYPE /* @min:%2etype */] || evtName[_DYN_TYPE /* @min:%2etype */] === value.evtName[_DYN_TYPE /* @min:%2etype */]) {\r\n if (!evtName.ns || evtName.ns === evtName.ns) {\r\n theEvents[_DYN_PUSH /* @min:%2epush */]((_a = {},\r\n _a[_DYN_NAME /* @min:name */] = value.evtName[_DYN_TYPE /* @min:%2etype */] + (value.evtName.ns ? \".\" + value.evtName.ns : STR_EMPTY),\r\n _a.handler = value[_DYN_HANDLER /* @min:%2ehandler */],\r\n _a));\r\n }\r\n }\r\n });\r\n });\r\n return theEvents;\r\n}\r\n// Exported for internal unit testing only\r\nfunction _getRegisteredEvents(target, evtName, addDefault) {\r\n if (addDefault === void 0) { addDefault = true; }\r\n var aiEvts = elmNodeData.get(target, strEvents, {}, addDefault);\r\n var registeredEvents = aiEvts[evtName];\r\n if (!registeredEvents) {\r\n registeredEvents = aiEvts[evtName] = [];\r\n }\r\n return registeredEvents;\r\n}\r\nfunction _doDetach(obj, evtName, handlerRef, useCapture) {\r\n if (obj && evtName && evtName[_DYN_TYPE /* @min:%2etype */]) {\r\n if (obj[strRemoveEventListener]) {\r\n obj[strRemoveEventListener](evtName[_DYN_TYPE /* @min:%2etype */], handlerRef, useCapture);\r\n }\r\n else if (obj[strDetachEvent]) {\r\n obj[strDetachEvent](strOnPrefix + evtName[_DYN_TYPE /* @min:%2etype */], handlerRef);\r\n }\r\n }\r\n}\r\nfunction _doAttach(obj, evtName, handlerRef, useCapture) {\r\n var result = false;\r\n if (obj && evtName && evtName[_DYN_TYPE /* @min:%2etype */] && handlerRef) {\r\n if (obj[strAddEventHelper]) {\r\n // all browsers except IE before version 9\r\n obj[strAddEventHelper](evtName[_DYN_TYPE /* @min:%2etype */], handlerRef, useCapture);\r\n result = true;\r\n }\r\n else if (obj[strAttachEvent]) {\r\n // IE before version 9\r\n obj[strAttachEvent](strOnPrefix + evtName[_DYN_TYPE /* @min:%2etype */], handlerRef);\r\n result = true;\r\n }\r\n }\r\n return result;\r\n}\r\nfunction _doUnregister(target, events, evtName, unRegFn) {\r\n var idx = events[_DYN_LENGTH /* @min:%2elength */];\r\n while (idx--) {\r\n var theEvent = events[idx];\r\n if (theEvent) {\r\n if (!evtName.ns || evtName.ns === theEvent.evtName.ns) {\r\n if (!unRegFn || unRegFn(theEvent)) {\r\n _doDetach(target, theEvent.evtName, theEvent[_DYN_HANDLER /* @min:%2ehandler */], theEvent.capture);\r\n // Remove the registered event\r\n events[_DYN_SPLICE /* @min:%2esplice */](idx, 1);\r\n }\r\n }\r\n }\r\n }\r\n}\r\nfunction _unregisterEvents(target, evtName, unRegFn) {\r\n if (evtName[_DYN_TYPE /* @min:%2etype */]) {\r\n _doUnregister(target, _getRegisteredEvents(target, evtName[_DYN_TYPE /* @min:%2etype */]), evtName, unRegFn);\r\n }\r\n else {\r\n var eventCache = elmNodeData.get(target, strEvents, {});\r\n objForEachKey(eventCache, function (evtType, events) {\r\n _doUnregister(target, events, evtName, unRegFn);\r\n });\r\n // Cleanup\r\n if (objKeys(eventCache)[_DYN_LENGTH /* @min:%2elength */] === 0) {\r\n elmNodeData.kill(target, strEvents);\r\n }\r\n }\r\n}\r\nexport function mergeEvtNamespace(theNamespace, namespaces) {\r\n var newNamespaces;\r\n if (namespaces) {\r\n if (isArray(namespaces)) {\r\n newNamespaces = [theNamespace].concat(namespaces);\r\n }\r\n else {\r\n newNamespaces = [theNamespace, namespaces];\r\n }\r\n // resort the namespaces so they are always in order\r\n newNamespaces = (_getEvtNamespace(\"xx\", newNamespaces).ns)[_DYN_SPLIT /* @min:%2esplit */](\".\");\r\n }\r\n else {\r\n newNamespaces = theNamespace;\r\n }\r\n return newNamespaces;\r\n}\r\n/**\r\n * Binds the specified function to an event, so that the function gets called whenever the event fires on the object\r\n * @param obj Object to add the event too.\r\n * @param eventName String that specifies any of the standard DHTML Events without \"on\" prefix, if may also include an optional (dot \".\" prefixed)\r\n * namespaces \"click\" \"click.mynamespace\" in addition to specific namespaces.\r\n * @param handlerRef Pointer that specifies the function to call when event fires\r\n * @param evtNamespace - [Optional] Additional namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace,\r\n * if the eventName also includes a namespace the namespace(s) are merged into a single namespace\r\n * @param useCapture [Optional] Defaults to false\r\n * @returns True if the function was bound successfully to the event, otherwise false\r\n */\r\nexport function eventOn(target, eventName, handlerRef, evtNamespace, useCapture) {\r\n var _a;\r\n if (useCapture === void 0) { useCapture = false; }\r\n var result = false;\r\n if (target) {\r\n try {\r\n var evtName = _getEvtNamespace(eventName, evtNamespace);\r\n result = _doAttach(target, evtName, handlerRef, useCapture);\r\n if (result && elmNodeData.accept(target)) {\r\n var registeredEvent = (_a = {\r\n guid: _guid++,\r\n evtName: evtName\r\n },\r\n _a[_DYN_HANDLER /* @min:handler */] = handlerRef,\r\n _a.capture = useCapture,\r\n _a);\r\n _getRegisteredEvents(target, evtName.type)[_DYN_PUSH /* @min:%2epush */](registeredEvent);\r\n }\r\n }\r\n catch (e) {\r\n // Just Ignore any error so that we don't break any execution path\r\n }\r\n }\r\n return result;\r\n}\r\n/**\r\n * Removes an event handler for the specified event\r\n * @param Object to remove the event from\r\n * @param eventName {string} - The name of the event, with optional namespaces or just the namespaces,\r\n * such as \"click\", \"click.mynamespace\" or \".mynamespace\"\r\n * @param handlerRef {any} - The callback function that needs to be removed from the given event, when using a\r\n * namespace (with or without a qualifying event) this may be null to remove all previously attached event handlers\r\n * otherwise this will only remove events with this specific handler.\r\n * @param evtNamespace - [Optional] Additional namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace,\r\n * if the eventName also includes a namespace the namespace(s) are merged into a single namespace\r\n * @param useCapture [Optional] Defaults to false\r\n */\r\nexport function eventOff(target, eventName, handlerRef, evtNamespace, useCapture) {\r\n if (useCapture === void 0) { useCapture = false; }\r\n if (target) {\r\n try {\r\n var evtName_1 = _getEvtNamespace(eventName, evtNamespace);\r\n var found_1 = false;\r\n _unregisterEvents(target, evtName_1, function (regEvent) {\r\n if ((evtName_1.ns && !handlerRef) || regEvent[_DYN_HANDLER /* @min:%2ehandler */] === handlerRef) {\r\n found_1 = true;\r\n return true;\r\n }\r\n return false;\r\n });\r\n if (!found_1) {\r\n // fallback to try and remove as requested\r\n _doDetach(target, evtName_1, handlerRef, useCapture);\r\n }\r\n }\r\n catch (e) {\r\n // Just Ignore any error so that we don't break any execution path\r\n }\r\n }\r\n}\r\n/**\r\n * Binds the specified function to an event, so that the function gets called whenever the event fires on the object\r\n * @param obj Object to add the event too.\r\n * @param eventNameWithoutOn String that specifies any of the standard DHTML Events without \"on\" prefix and optional (dot \".\" prefixed) namespaces \"click\" \"click.mynamespace\".\r\n * @param handlerRef Pointer that specifies the function to call when event fires\r\n * @param useCapture [Optional] Defaults to false\r\n * @returns True if the function was bound successfully to the event, otherwise false\r\n */\r\nexport function attachEvent(obj, eventNameWithoutOn, handlerRef, useCapture) {\r\n if (useCapture === void 0) { useCapture = false; }\r\n return eventOn(obj, eventNameWithoutOn, handlerRef, null, useCapture);\r\n}\r\n/**\r\n * Removes an event handler for the specified event\r\n * @param Object to remove the event from\r\n * @param eventNameWithoutOn {string} - The name of the event, with optional namespaces or just the namespaces,\r\n * such as \"click\", \"click.mynamespace\" or \".mynamespace\"\r\n * @param handlerRef {any} - The callback function that needs to be removed from the given event, when using a\r\n * namespace (with or without a qualifying event) this may be null to remove all previously attached event handlers\r\n * otherwise this will only remove events with this specific handler.\r\n * @param useCapture [Optional] Defaults to false\r\n */\r\nexport function detachEvent(obj, eventNameWithoutOn, handlerRef, useCapture) {\r\n if (useCapture === void 0) { useCapture = false; }\r\n eventOff(obj, eventNameWithoutOn, handlerRef, null, useCapture);\r\n}\r\n/**\r\n * Trys to add an event handler for the specified event to the window, body and document\r\n * @param eventName {string} - The name of the event\r\n * @param callback {any} - The callback function that needs to be executed for the given event\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n * @return {boolean} - true if the handler was successfully added\r\n */\r\nexport function addEventHandler(eventName, callback, evtNamespace) {\r\n var result = false;\r\n var w = getWindow();\r\n if (w) {\r\n result = eventOn(w, eventName, callback, evtNamespace);\r\n result = eventOn(w[\"body\"], eventName, callback, evtNamespace) || result;\r\n }\r\n var doc = getDocument();\r\n if (doc) {\r\n result = eventOn(doc, eventName, callback, evtNamespace) || result;\r\n }\r\n return result;\r\n}\r\n/**\r\n * Trys to remove event handler(s) for the specified event/namespace to the window, body and document\r\n * @param eventName {string} - The name of the event, with optional namespaces or just the namespaces,\r\n * such as \"click\", \"click.mynamespace\" or \".mynamespace\"\r\n * @param callback {any} - - The callback function that needs to be removed from the given event, when using a\r\n * namespace (with or without a qualifying event) this may be null to remove all previously attached event handlers\r\n * otherwise this will only remove events with this specific handler.\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n */\r\nexport function removeEventHandler(eventName, callback, evtNamespace) {\r\n var w = getWindow();\r\n if (w) {\r\n eventOff(w, eventName, callback, evtNamespace);\r\n eventOff(w[\"body\"], eventName, callback, evtNamespace);\r\n }\r\n var doc = getDocument();\r\n if (doc) {\r\n eventOff(doc, eventName, callback, evtNamespace);\r\n }\r\n}\r\n/**\r\n * Bind the listener to the array of events\r\n * @param events An string array of event names to bind the listener to\r\n * @param listener The event callback to call when the event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked (if possible), unless no other events can be.\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nfunction _addEventListeners(events, listener, excludeEvents, evtNamespace) {\r\n var added = false;\r\n if (listener && events && events[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n arrForEach(events, function (name) {\r\n if (name) {\r\n if (!excludeEvents || arrIndexOf(excludeEvents, name) === -1) {\r\n added = addEventHandler(name, listener, evtNamespace) || added;\r\n }\r\n }\r\n });\r\n }\r\n return added;\r\n}\r\n/**\r\n * Bind the listener to the array of events\r\n * @param events An string array of event names to bind the listener to\r\n * @param listener The event callback to call when the event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked (if possible), unless no other events can be.\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addEventListeners(events, listener, excludeEvents, evtNamespace) {\r\n var added = false;\r\n if (listener && events && isArray(events)) {\r\n added = _addEventListeners(events, listener, excludeEvents, evtNamespace);\r\n if (!added && excludeEvents && excludeEvents[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n // Failed to add any listeners and we excluded some, so just attempt to add the excluded events\r\n added = _addEventListeners(events, listener, null, evtNamespace);\r\n }\r\n }\r\n return added;\r\n}\r\n/**\r\n * Remove the listener from the array of events\r\n * @param events An string array of event names to bind the listener to\r\n * @param listener The event callback to call when the event is triggered\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n */\r\nexport function removeEventListeners(events, listener, evtNamespace) {\r\n if (events && isArray(events)) {\r\n arrForEach(events, function (name) {\r\n if (name) {\r\n removeEventHandler(name, listener, evtNamespace);\r\n }\r\n });\r\n }\r\n}\r\n/**\r\n * Listen to the 'beforeunload', 'unload' and 'pagehide' events which indicates a page unload is occurring,\r\n * this does NOT listen to the 'visibilitychange' event as while it does indicate that the page is being hidden\r\n * it does not *necessarily* mean that the page is being completely unloaded, it can mean that the user is\r\n * just navigating to a different Tab and may come back (without unloading the page). As such you may also\r\n * need to listen to the 'addPageHideEventListener' and 'addPageShowEventListener' events.\r\n * @param listener - The event callback to call when a page unload event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked, unless no other events can be.\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addPageUnloadEventListener(listener, excludeEvents, evtNamespace) {\r\n // Hook the unload event for the document, window and body to ensure that the client events are flushed to the server\r\n // As just hooking the window does not always fire (on chrome) for page navigation's.\r\n return addEventListeners([strBeforeUnload, strUnload, strPageHide], listener, excludeEvents, evtNamespace);\r\n}\r\n/**\r\n * Remove any matching 'beforeunload', 'unload' and 'pagehide' events that may have been added via addEventListener,\r\n * addEventListeners, addPageUnloadEventListener or addPageHideEventListener.\r\n * @param listener - The specific event callback to to be removed\r\n * @param evtNamespace - [Optional] Namespace(s) uniquely identified and removed based on this namespace.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function removePageUnloadEventListener(listener, evtNamespace) {\r\n removeEventListeners([strBeforeUnload, strUnload, strPageHide], listener, evtNamespace);\r\n}\r\n/**\r\n * Listen to the pagehide and visibility changing to 'hidden' events, because the 'visibilitychange' uses\r\n * an internal proxy to detect the visibility state you SHOULD use a unique namespace when if you plan to call\r\n * removePageShowEventListener as the remove ignores the listener argument for the 'visibilitychange' event.\r\n * @param listener - The event callback to call when a page hide event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked (if possible), unless no other events can be.\r\n * @param evtNamespace - [Optional] A Namespace to append to the event listeners so they can be uniquely identified and removed\r\n * based on this namespace. This call also adds an additional unique \"pageshow\" namespace to the events\r\n * so that only the matching \"removePageHideEventListener\" can remove these events.\r\n * Suggestion: pass as true if you are also calling addPageUnloadEventListener as that also hooks pagehide\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addPageHideEventListener(listener, excludeEvents, evtNamespace) {\r\n function _handlePageVisibility(evt) {\r\n var doc = getDocument();\r\n if (listener && doc && doc.visibilityState === \"hidden\") {\r\n listener(evt);\r\n }\r\n }\r\n // add the unique page show namespace to any provided namespace so we can only remove the ones added by \"pagehide\"\r\n var newNamespaces = mergeEvtNamespace(strPageHideNamespace, evtNamespace);\r\n var pageUnloadAdded = _addEventListeners([strPageHide], listener, excludeEvents, newNamespaces);\r\n if (!excludeEvents || arrIndexOf(excludeEvents, strVisibilityChangeEvt) === -1) {\r\n pageUnloadAdded = _addEventListeners([strVisibilityChangeEvt], _handlePageVisibility, excludeEvents, newNamespaces) || pageUnloadAdded;\r\n }\r\n if (!pageUnloadAdded && excludeEvents) {\r\n // Failed to add any listeners and we where requested to exclude some, so just call again without excluding anything\r\n pageUnloadAdded = addPageHideEventListener(listener, null, evtNamespace);\r\n }\r\n return pageUnloadAdded;\r\n}\r\n/**\r\n * Removes the pageHide event listeners added by addPageHideEventListener, because the 'visibilitychange' uses\r\n * an internal proxy to detect the visibility state you SHOULD use a unique namespace when calling addPageHideEventListener\r\n * as the remove ignores the listener argument for the 'visibilitychange' event.\r\n * @param listener - The specific listener to remove for the 'pageshow' event only (ignored for 'visibilitychange')\r\n * @param evtNamespace - The unique namespace used when calling addPageShowEventListener\r\n */\r\nexport function removePageHideEventListener(listener, evtNamespace) {\r\n // add the unique page show namespace to any provided namespace so we only remove the ones added by \"pagehide\"\r\n var newNamespaces = mergeEvtNamespace(strPageHideNamespace, evtNamespace);\r\n removeEventListeners([strPageHide], listener, newNamespaces);\r\n removeEventListeners([strVisibilityChangeEvt], null, newNamespaces);\r\n}\r\n/**\r\n * Listen to the pageshow and visibility changing to 'visible' events, because the 'visibilitychange' uses\r\n * an internal proxy to detect the visibility state you SHOULD use a unique namespace when if you plan to call\r\n * removePageShowEventListener as the remove ignores the listener argument for the 'visibilitychange' event.\r\n * @param listener - The event callback to call when a page is show event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked (if possible), unless no other events can be.\r\n * @param evtNamespace - [Optional/Recommended] A Namespace to append to the event listeners so they can be uniquely\r\n * identified and removed based on this namespace. This call also adds an additional unique \"pageshow\" namespace to the events\r\n * so that only the matching \"removePageShowEventListener\" can remove these events.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addPageShowEventListener(listener, excludeEvents, evtNamespace) {\r\n function _handlePageVisibility(evt) {\r\n var doc = getDocument();\r\n if (listener && doc && doc.visibilityState === \"visible\") {\r\n listener(evt);\r\n }\r\n }\r\n // add the unique page show namespace to any provided namespace so we can only remove the ones added by \"pageshow\"\r\n var newNamespaces = mergeEvtNamespace(strPageShowNamespace, evtNamespace);\r\n var pageShowAdded = _addEventListeners([strPageShow], listener, excludeEvents, newNamespaces);\r\n pageShowAdded = _addEventListeners([strVisibilityChangeEvt], _handlePageVisibility, excludeEvents, newNamespaces) || pageShowAdded;\r\n if (!pageShowAdded && excludeEvents) {\r\n // Failed to add any listeners and we where requested to exclude some, so just call again without excluding anything\r\n pageShowAdded = addPageShowEventListener(listener, null, evtNamespace);\r\n }\r\n return pageShowAdded;\r\n}\r\n/**\r\n * Removes the pageShow event listeners added by addPageShowEventListener, because the 'visibilitychange' uses\r\n * an internal proxy to detect the visibility state you SHOULD use a unique namespace when calling addPageShowEventListener\r\n * as the remove ignores the listener argument for the 'visibilitychange' event.\r\n * @param listener - The specific listener to remove for the 'pageshow' event only (ignored for 'visibilitychange')\r\n * @param evtNamespace - The unique namespace used when calling addPageShowEventListener\r\n */\r\nexport function removePageShowEventListener(listener, evtNamespace) {\r\n // add the unique page show namespace to any provided namespace so we only remove the ones added by \"pageshow\"\r\n var newNamespaces = mergeEvtNamespace(strPageShowNamespace, evtNamespace);\r\n removeEventListeners([strPageShow], listener, newNamespaces);\r\n removeEventListeners([strVisibilityChangeEvt], null, newNamespaces);\r\n}\r\n//# sourceMappingURL=EventHelpers.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\"use strict\";\r\nimport { objCreateFn, strShimUndefined } from \"@microsoft/applicationinsights-shims\";\r\nimport { _DYN_LENGTH, _DYN_PUSH, _DYN_SET_ENABLED, _DYN_SUBSTR, _DYN_SUBSTRING } from \"../__DynamicConstants\";\r\nimport { _gblCookieMgr } from \"./CookieMgr\";\r\nimport { getPerformance, isIE } from \"./EnvUtils\";\r\nimport { addEventHandler, attachEvent, detachEvent } from \"./EventHelpers\";\r\nimport { arrForEach, arrIndexOf, arrMap, arrReduce, dateNow, hasOwnProperty, isArray, isBoolean, isDate, isError, isFunction, isNullOrUndefined, isNumber, isObject, isString, isTypeof, isUndefined, objDefineAccessors, objKeys, strTrim, toISOString } from \"./HelperFuncs\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\nimport { mwcRandom32, mwcRandomSeed, newId, random32, randomValue } from \"./RandomHelper\";\r\nvar _cookieMgrs = null;\r\nvar _canUseCookies; // legacy supported config\r\n// Added to help with minfication\r\nexport var Undefined = strShimUndefined;\r\nexport function newGuid() {\r\n var uuid = generateW3CId();\r\n return uuid[_DYN_SUBSTRING /* @min:%2esubstring */](0, 8) + \"-\" + uuid[_DYN_SUBSTRING /* @min:%2esubstring */](8, 12) + \"-\" + uuid[_DYN_SUBSTRING /* @min:%2esubstring */](12, 16) + \"-\" + uuid[_DYN_SUBSTRING /* @min:%2esubstring */](16, 20) + \"-\" + uuid[_DYN_SUBSTRING /* @min:%2esubstring */](20);\r\n}\r\n/**\r\n * Return the current value of the Performance Api now() function (if available) and fallback to dateNow() if it is unavailable (IE9 or less)\r\n * https://caniuse.com/#search=performance.now\r\n */\r\nexport function perfNow() {\r\n var perf = getPerformance();\r\n if (perf && perf.now) {\r\n return perf.now();\r\n }\r\n return dateNow();\r\n}\r\n/**\r\n * The strEndsWith() method determines whether a string ends with the characters of a specified string, returning true or false as appropriate.\r\n * @param value - The value to check whether it ends with the search value.\r\n * @param search - The characters to be searched for at the end of the value.\r\n * @returns true if the given search value is found at the end of the string, otherwise false.\r\n */\r\nexport function strEndsWith(value, search) {\r\n if (value && search) {\r\n var len = value[_DYN_LENGTH /* @min:%2elength */];\r\n var start = len - search[_DYN_LENGTH /* @min:%2elength */];\r\n return value[_DYN_SUBSTRING /* @min:%2esubstring */](start >= 0 ? start : 0, len) === search;\r\n }\r\n return false;\r\n}\r\n/**\r\n * generate W3C trace id\r\n */\r\nexport function generateW3CId() {\r\n var hexValues = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\"];\r\n // rfc4122 version 4 UUID without dashes and with lowercase letters\r\n var oct = STR_EMPTY, tmp;\r\n for (var a = 0; a < 4; a++) {\r\n tmp = random32();\r\n oct +=\r\n hexValues[tmp & 0xF] +\r\n hexValues[tmp >> 4 & 0xF] +\r\n hexValues[tmp >> 8 & 0xF] +\r\n hexValues[tmp >> 12 & 0xF] +\r\n hexValues[tmp >> 16 & 0xF] +\r\n hexValues[tmp >> 20 & 0xF] +\r\n hexValues[tmp >> 24 & 0xF] +\r\n hexValues[tmp >> 28 & 0xF];\r\n }\r\n // \"Set the two most significant bits (bits 6 and 7) of the clock_seq_hi_and_reserved to zero and one, respectively\"\r\n var clockSequenceHi = hexValues[8 + (random32() & 0x03) | 0];\r\n return oct[_DYN_SUBSTR /* @min:%2esubstr */](0, 8) + oct[_DYN_SUBSTR /* @min:%2esubstr */](9, 4) + \"4\" + oct[_DYN_SUBSTR /* @min:%2esubstr */](13, 3) + clockSequenceHi + oct[_DYN_SUBSTR /* @min:%2esubstr */](16, 3) + oct[_DYN_SUBSTR /* @min:%2esubstr */](19, 12);\r\n}\r\n/**\r\n * Provides a collection of utility functions, included for backward compatibility with previous releases.\r\n * @deprecated Marking this instance as deprecated in favor of direct usage of the helper functions\r\n * as direct usage provides better tree-shaking and minification by avoiding the inclusion of the unused items\r\n * in your resulting code.\r\n */\r\nexport var CoreUtils = {\r\n _canUseCookies: undefined,\r\n isTypeof: isTypeof,\r\n isUndefined: isUndefined,\r\n isNullOrUndefined: isNullOrUndefined,\r\n hasOwnProperty: hasOwnProperty,\r\n isFunction: isFunction,\r\n isObject: isObject,\r\n isDate: isDate,\r\n isArray: isArray,\r\n isError: isError,\r\n isString: isString,\r\n isNumber: isNumber,\r\n isBoolean: isBoolean,\r\n toISOString: toISOString,\r\n arrForEach: arrForEach,\r\n arrIndexOf: arrIndexOf,\r\n arrMap: arrMap,\r\n arrReduce: arrReduce,\r\n strTrim: strTrim,\r\n objCreate: objCreateFn,\r\n objKeys: objKeys,\r\n objDefineAccessors: objDefineAccessors,\r\n addEventHandler: addEventHandler,\r\n dateNow: dateNow,\r\n isIE: isIE,\r\n disableCookies: disableCookies,\r\n newGuid: newGuid,\r\n perfNow: perfNow,\r\n newId: newId,\r\n randomValue: randomValue,\r\n random32: random32,\r\n mwcRandomSeed: mwcRandomSeed,\r\n mwcRandom32: mwcRandom32,\r\n generateW3CId: generateW3CId\r\n};\r\nvar GuidRegex = /[xy]/g;\r\nexport var EventHelper = {\r\n Attach: attachEvent,\r\n AttachEvent: attachEvent,\r\n Detach: detachEvent,\r\n DetachEvent: detachEvent\r\n};\r\n/**\r\n * Helper to support backward compatibility for users that use the legacy cookie handling functions and the use the internal\r\n * CoreUtils._canUseCookies global flag to enable/disable cookies usage.\r\n * Note: This has the following deliberate side-effects\r\n * - Creates the global (legacy) cookie manager if it does not already exist\r\n * - Attempts to add \"listeners\" to the CoreUtils._canUseCookies property to support the legacy usage\r\n * @param config\r\n * @param logger\r\n * @returns\r\n */\r\nexport function _legacyCookieMgr(config, logger) {\r\n var cookieMgr = _gblCookieMgr(config, logger);\r\n var legacyCanUseCookies = CoreUtils._canUseCookies;\r\n if (_cookieMgrs === null) {\r\n _cookieMgrs = [];\r\n _canUseCookies = legacyCanUseCookies;\r\n // Dynamically create get/set property accessors for backward compatibility for enabling / disabling cookies\r\n // this WILL NOT work for ES3 browsers (< IE8)\r\n objDefineAccessors(CoreUtils, \"_canUseCookies\", function () {\r\n return _canUseCookies;\r\n }, function (value) {\r\n _canUseCookies = value;\r\n arrForEach(_cookieMgrs, function (mgr) {\r\n mgr[_DYN_SET_ENABLED /* @min:%2esetEnabled */](value);\r\n });\r\n });\r\n }\r\n if (arrIndexOf(_cookieMgrs, cookieMgr) === -1) {\r\n _cookieMgrs[_DYN_PUSH /* @min:%2epush */](cookieMgr);\r\n }\r\n if (isBoolean(legacyCanUseCookies)) {\r\n cookieMgr[_DYN_SET_ENABLED /* @min:%2esetEnabled */](legacyCanUseCookies);\r\n }\r\n if (isBoolean(_canUseCookies)) {\r\n cookieMgr[_DYN_SET_ENABLED /* @min:%2esetEnabled */](_canUseCookies);\r\n }\r\n return cookieMgr;\r\n}\r\n/**\r\n * @deprecated - Use the core.getCookieMgr().disable()\r\n * Force the SDK not to store and read any data from cookies.\r\n */\r\nexport function disableCookies() {\r\n _legacyCookieMgr()[_DYN_SET_ENABLED /* @min:%2esetEnabled */](false);\r\n}\r\n/**\r\n * @deprecated - Use the core.getCookieMgr().isEnabled()\r\n * Helper method to tell if document.cookie object is available and whether it can be used.\r\n */\r\nexport function canUseCookies(logger) {\r\n return _legacyCookieMgr(null, logger).isEnabled();\r\n}\r\n/**\r\n * @deprecated - Use the core.getCookieMgr().get()\r\n * helper method to access userId and sessionId cookie\r\n */\r\nexport function getCookie(logger, name) {\r\n return _legacyCookieMgr(null, logger).get(name);\r\n}\r\n/**\r\n * @deprecated - Use the core.getCookieMgr().set()\r\n * helper method to set userId and sessionId cookie\r\n */\r\nexport function setCookie(logger, name, value, domain) {\r\n _legacyCookieMgr(null, logger).set(name, value, null, domain);\r\n}\r\n/**\r\n * @deprecated - Use the core.getCookieMgr().del()\r\n * Deletes a cookie by setting it's expiration time in the past.\r\n * @param name - The name of the cookie to delete.\r\n */\r\nexport function deleteCookie(logger, name) {\r\n return _legacyCookieMgr(null, logger).del(name);\r\n}\r\n//# sourceMappingURL=CoreUtils.js.map","import { _DYN_INDEX_OF, _DYN_LENGTH, _DYN_SPAN_ID, _DYN_SPLIT, _DYN_SUBSTR, _DYN_TO_LOWER_CASE, _DYN_TRACE_FLAGS, _DYN_TRACE_ID, _DYN_VERSION } from \"../__DynamicConstants\";\r\nimport { generateW3CId } from \"./CoreUtils\";\r\nimport { findMetaTag, findNamedServerTiming } from \"./EnvUtils\";\r\nimport { isArray, isString, strTrim } from \"./HelperFuncs\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\n// using {0,16} for leading and trailing whitespace just to constrain the possible runtime of a random string\r\nvar TRACE_PARENT_REGEX = /^([\\da-f]{2})-([\\da-f]{32})-([\\da-f]{16})-([\\da-f]{2})(-[^\\s]{1,64})?$/i;\r\nvar DEFAULT_VERSION = \"00\";\r\nvar INVALID_VERSION = \"ff\";\r\nvar INVALID_TRACE_ID = \"00000000000000000000000000000000\";\r\nvar INVALID_SPAN_ID = \"0000000000000000\";\r\nvar SAMPLED_FLAG = 0x01;\r\nfunction _isValid(value, len, invalidValue) {\r\n if (value && value[_DYN_LENGTH /* @min:%2elength */] === len && value !== invalidValue) {\r\n return !!value.match(/^[\\da-f]*$/i);\r\n }\r\n return false;\r\n}\r\nfunction _formatValue(value, len, defValue) {\r\n if (_isValid(value, len)) {\r\n return value;\r\n }\r\n return defValue;\r\n}\r\nfunction _formatFlags(value) {\r\n if (isNaN(value) || value < 0 || value > 255) {\r\n value = 0x01;\r\n }\r\n var result = value.toString(16);\r\n while (result[_DYN_LENGTH /* @min:%2elength */] < 2) {\r\n result = \"0\" + result;\r\n }\r\n return result;\r\n}\r\n/**\r\n * Create a new ITraceParent instance using the provided values.\r\n * @param traceId - The traceId to use, when invalid a new random W3C id will be generated.\r\n * @param spanId - The parent/span id to use, a new random value will be generated if it is invalid.\r\n * @param flags - The traceFlags to use, defaults to zero (0) if not supplied or invalid\r\n * @param version - The version to used, defaults to version \"01\" if not supplied or invalid.\r\n * @returns\r\n */\r\nexport function createTraceParent(traceId, spanId, flags, version) {\r\n var _a;\r\n return _a = {},\r\n _a[_DYN_VERSION /* @min:version */] = _isValid(version, 2, INVALID_VERSION) ? version : DEFAULT_VERSION,\r\n _a[_DYN_TRACE_ID /* @min:traceId */] = isValidTraceId(traceId) ? traceId : generateW3CId(),\r\n _a.spanId = isValidSpanId(spanId) ? spanId : generateW3CId()[_DYN_SUBSTR /* @min:%2esubstr */](0, 16),\r\n _a.traceFlags = flags >= 0 && flags <= 0xFF ? flags : 1,\r\n _a;\r\n}\r\n/**\r\n * Attempt to parse the provided string as a W3C TraceParent header value (https://www.w3.org/TR/trace-context/#traceparent-header)\r\n *\r\n * @param value - The value to be parsed\r\n * @param selectIdx - If the found value is comma separated which is the preferred entry to select, defaults to the first\r\n * @returns\r\n */\r\nexport function parseTraceParent(value, selectIdx) {\r\n var _a;\r\n if (!value) {\r\n // Don't pass a null/undefined or empty string\r\n return null;\r\n }\r\n if (isArray(value)) {\r\n // The value may have been encoded on the page into an array so handle this automatically\r\n value = value[0] || \"\";\r\n }\r\n if (!value || !isString(value) || value[_DYN_LENGTH /* @min:%2elength */] > 8192) {\r\n // limit potential processing based on total length\r\n return null;\r\n }\r\n if (value[_DYN_INDEX_OF /* @min:%2eindexOf */](\",\") !== -1) {\r\n var values = value[_DYN_SPLIT /* @min:%2esplit */](\",\");\r\n value = values[selectIdx > 0 && values[_DYN_LENGTH /* @min:%2elength */] > selectIdx ? selectIdx : 0];\r\n }\r\n // See https://www.w3.org/TR/trace-context/#versioning-of-traceparent\r\n var match = TRACE_PARENT_REGEX.exec(strTrim(value));\r\n if (!match || // No match\r\n match[1] === INVALID_VERSION || // version ff is forbidden\r\n match[2] === INVALID_TRACE_ID || // All zeros is considered to be invalid\r\n match[3] === INVALID_SPAN_ID) { // All zeros is considered to be invalid\r\n return null;\r\n }\r\n return _a = {\r\n version: (match[1] || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */](),\r\n traceId: (match[2] || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */](),\r\n spanId: (match[3] || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]()\r\n },\r\n _a[_DYN_TRACE_FLAGS /* @min:traceFlags */] = parseInt(match[4], 16),\r\n _a;\r\n}\r\n/**\r\n * Is the provided W3c Trace Id a valid string representation, it must be a 32-character string\r\n * of lowercase hexadecimal characters for example, 4bf92f3577b34da6a3ce929d0e0e4736.\r\n * If all characters as zero (00000000000000000000000000000000) it will be considered an invalid value.\r\n * @param value - The W3c trace Id to be validated\r\n * @returns true if valid otherwise false\r\n */\r\nexport function isValidTraceId(value) {\r\n return _isValid(value, 32, INVALID_TRACE_ID);\r\n}\r\n/**\r\n * Is the provided W3c span id (aka. parent id) a valid string representation, it must be a 16-character\r\n * string of lowercase hexadecimal characters, for example, 00f067aa0ba902b7.\r\n * If all characters are zero (0000000000000000) this is considered an invalid value.\r\n * @param value - The W3c span id to be validated\r\n * @returns true if valid otherwise false\r\n */\r\nexport function isValidSpanId(value) {\r\n return _isValid(value, 16, INVALID_SPAN_ID);\r\n}\r\n/**\r\n * Validates that the provided ITraceParent instance conforms to the currently supported specifications\r\n * @param value\r\n * @returns\r\n */\r\nexport function isValidTraceParent(value) {\r\n if (!value ||\r\n !_isValid(value[_DYN_VERSION /* @min:%2eversion */], 2, INVALID_VERSION) ||\r\n !_isValid(value[_DYN_TRACE_ID /* @min:%2etraceId */], 32, INVALID_TRACE_ID) ||\r\n !_isValid(value[_DYN_SPAN_ID /* @min:%2espanId */], 16, INVALID_SPAN_ID) ||\r\n !_isValid(_formatFlags(value[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */]), 2)) {\r\n // Each known field must contain a valid value\r\n return false;\r\n }\r\n return true;\r\n}\r\n/**\r\n * Is the parsed traceParent indicating that the trace is currently sampled.\r\n * @param value - The parsed traceParent value\r\n * @returns\r\n */\r\nexport function isSampledFlag(value) {\r\n if (isValidTraceParent(value)) {\r\n return (value[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] & SAMPLED_FLAG) === SAMPLED_FLAG;\r\n }\r\n return false;\r\n}\r\n/**\r\n * Format the ITraceParent value as a string using the supported and know version formats.\r\n * So even if the passed traceParent is a later version the string value returned from this\r\n * function will convert it to only the known version formats.\r\n * This currently only supports version \"00\" and invalid \"ff\"\r\n * @param value - The parsed traceParent value\r\n * @returns\r\n */\r\nexport function formatTraceParent(value) {\r\n if (value) {\r\n // Special Note: This only supports formatting as version 00, future versions should encode any known supported version\r\n // So parsing a future version will populate the correct version value but reformatting will reduce it to version 00.\r\n var flags = _formatFlags(value[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */]);\r\n if (!_isValid(flags, 2)) {\r\n flags = \"01\";\r\n }\r\n var version = value[_DYN_VERSION /* @min:%2eversion */] || DEFAULT_VERSION;\r\n if (version !== \"00\" && version !== \"ff\") {\r\n // Reduce version to \"00\"\r\n version = DEFAULT_VERSION;\r\n }\r\n // Format as version 00\r\n return \"\".concat(version.toLowerCase(), \"-\").concat(_formatValue(value.traceId, 32, INVALID_TRACE_ID).toLowerCase(), \"-\").concat(_formatValue(value.spanId, 16, INVALID_SPAN_ID).toLowerCase(), \"-\").concat(flags.toLowerCase());\r\n }\r\n return \"\";\r\n}\r\n/**\r\n * Helper function to fetch the passed traceparent from the page, looking for it as a meta-tag or a Server-Timing header.\r\n * @param selectIdx - If the found value is comma separated which is the preferred entry to select, defaults to the first\r\n * @returns\r\n */\r\nexport function findW3cTraceParent(selectIdx) {\r\n var name = \"traceparent\";\r\n var traceParent = parseTraceParent(findMetaTag(name), selectIdx);\r\n if (!traceParent) {\r\n traceParent = parseTraceParent(findNamedServerTiming(name), selectIdx);\r\n }\r\n return traceParent;\r\n}\r\n//# sourceMappingURL=W3cTraceParent.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\"use strict\";\r\nimport { _DYN_CALL, _DYN_GET_NEXT, _DYN_GET_PLUGIN, _DYN_INITIALIZE, _DYN_IS_INITIALIZED, _DYN_LENGTH, _DYN_NAME, _DYN_PUSH, _DYN_SET_NEXT_PLUGIN, _DYN_SPAN_ID, _DYN_TEARDOWN, _DYN_TRACE_FLAGS, _DYN_TRACE_ID, _DYN__DO_TEARDOWN } from \"../__DynamicConstants\";\r\nimport { createElmNodeData } from \"./DataCacheHelper\";\r\nimport { arrForEach, isFunction } from \"./HelperFuncs\";\r\nimport { STR_CORE, STR_PRIORITY, STR_PROCESS_TELEMETRY } from \"./InternalConstants\";\r\nimport { isValidSpanId, isValidTraceId } from \"./W3cTraceParent\";\r\nvar pluginStateData = createElmNodeData(\"plugin\");\r\nexport function _getPluginState(plugin) {\r\n return pluginStateData.get(plugin, \"state\", {}, true);\r\n}\r\n/**\r\n * Initialize the queue of plugins\r\n * @param plugins - The array of plugins to initialize and setting of the next plugin\r\n * @param config The current config for the instance\r\n * @param core THe current core instance\r\n * @param extensions The extensions\r\n */\r\nexport function initializePlugins(processContext, extensions) {\r\n // Set the next plugin and identified the uninitialized plugins\r\n var initPlugins = [];\r\n var lastPlugin = null;\r\n var proxy = processContext[_DYN_GET_NEXT /* @min:%2egetNext */]();\r\n var pluginState;\r\n while (proxy) {\r\n var thePlugin = proxy[_DYN_GET_PLUGIN /* @min:%2egetPlugin */]();\r\n if (thePlugin) {\r\n if (lastPlugin &&\r\n isFunction(lastPlugin[_DYN_SET_NEXT_PLUGIN /* @min:%2esetNextPlugin */]) &&\r\n isFunction(thePlugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */])) {\r\n // Set this plugin as the next for the previous one\r\n lastPlugin[_DYN_SET_NEXT_PLUGIN /* @min:%2esetNextPlugin */](thePlugin);\r\n }\r\n var isInitialized = false;\r\n if (isFunction(thePlugin[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */])) {\r\n isInitialized = thePlugin[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */]();\r\n }\r\n else {\r\n pluginState = _getPluginState(thePlugin);\r\n isInitialized = pluginState[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */];\r\n }\r\n if (!isInitialized) {\r\n initPlugins[_DYN_PUSH /* @min:%2epush */](thePlugin);\r\n }\r\n lastPlugin = thePlugin;\r\n proxy = proxy[_DYN_GET_NEXT /* @min:%2egetNext */]();\r\n }\r\n }\r\n // Now initialize the plugins\r\n arrForEach(initPlugins, function (thePlugin) {\r\n var core = processContext[STR_CORE]();\r\n thePlugin[_DYN_INITIALIZE /* @min:%2einitialize */](processContext.getCfg(), core, extensions, processContext[_DYN_GET_NEXT /* @min:%2egetNext */]());\r\n pluginState = _getPluginState(thePlugin);\r\n // Only add the core to the state if the plugin didn't set it (doesn't extent from BaseTelemetryPlugin)\r\n if (!thePlugin[STR_CORE] && !pluginState[STR_CORE]) {\r\n pluginState[STR_CORE] = core;\r\n }\r\n pluginState[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */] = true;\r\n delete pluginState[_DYN_TEARDOWN /* @min:%2eteardown */];\r\n });\r\n}\r\nexport function sortPlugins(plugins) {\r\n // Sort by priority\r\n return plugins.sort(function (extA, extB) {\r\n var result = 0;\r\n if (extB) {\r\n var bHasProcess = isFunction(extB[STR_PROCESS_TELEMETRY]);\r\n if (isFunction(extA[STR_PROCESS_TELEMETRY])) {\r\n result = bHasProcess ? extA[STR_PRIORITY] - extB[STR_PRIORITY] : 1;\r\n }\r\n else if (bHasProcess) {\r\n result = -1;\r\n }\r\n }\r\n else {\r\n result = extA ? 1 : -1;\r\n }\r\n return result;\r\n });\r\n // sort complete\r\n}\r\n/**\r\n * Teardown / Unload helper to perform teardown/unloading operations for the provided components synchronously or asynchronously, this will call any\r\n * _doTeardown() or _doUnload() functions on the provided components to allow them to finish removal.\r\n * @param components - The components you want to unload\r\n * @param unloadCtx - This is the context that should be used during unloading.\r\n * @param unloadState - The details / state of the unload process, it holds details like whether it should be unloaded synchronously or asynchronously and the reason for the unload.\r\n * @param asyncCallback - An optional callback that the plugin must call if it returns true to inform the caller that it has completed any async unload/teardown operations.\r\n * @returns boolean - true if the plugin has or will call asyncCallback, this allows the plugin to perform any asynchronous operations.\r\n */\r\nexport function unloadComponents(components, unloadCtx, unloadState, asyncCallback) {\r\n var idx = 0;\r\n function _doUnload() {\r\n while (idx < components[_DYN_LENGTH /* @min:%2elength */]) {\r\n var component = components[idx++];\r\n if (component) {\r\n var func = component._doUnload || component[_DYN__DO_TEARDOWN /* @min:%2e_doTeardown */];\r\n if (isFunction(func)) {\r\n if (func[_DYN_CALL /* @min:%2ecall */](component, unloadCtx, unloadState, _doUnload) === true) {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return _doUnload();\r\n}\r\n/**\r\n * Creates a IDistributedTraceContext which optionally also \"sets\" the value on a parent\r\n * @param parentCtx - An optional parent distributed trace instance\r\n * @returns A new IDistributedTraceContext instance that uses an internal temporary object\r\n */\r\nexport function createDistributedTraceContext(parentCtx) {\r\n var trace = {};\r\n return {\r\n getName: function () {\r\n return trace[_DYN_NAME /* @min:%2ename */];\r\n },\r\n setName: function (newValue) {\r\n parentCtx && parentCtx.setName(newValue);\r\n trace[_DYN_NAME /* @min:%2ename */] = newValue;\r\n },\r\n getTraceId: function () {\r\n return trace[_DYN_TRACE_ID /* @min:%2etraceId */];\r\n },\r\n setTraceId: function (newValue) {\r\n parentCtx && parentCtx.setTraceId(newValue);\r\n if (isValidTraceId(newValue)) {\r\n trace[_DYN_TRACE_ID /* @min:%2etraceId */] = newValue;\r\n }\r\n },\r\n getSpanId: function () {\r\n return trace[_DYN_SPAN_ID /* @min:%2espanId */];\r\n },\r\n setSpanId: function (newValue) {\r\n parentCtx && parentCtx.setSpanId(newValue);\r\n if (isValidSpanId(newValue)) {\r\n trace[_DYN_SPAN_ID /* @min:%2espanId */] = newValue;\r\n }\r\n },\r\n getTraceFlags: function () {\r\n return trace[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */];\r\n },\r\n setTraceFlags: function (newTraceFlags) {\r\n parentCtx && parentCtx.setTraceFlags(newTraceFlags);\r\n trace[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = newTraceFlags;\r\n }\r\n };\r\n}\r\n//# sourceMappingURL=TelemetryHelpers.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\"use strict\";\r\nimport { _DYN_CALL, _DYN_CONFIG, _DYN_CREATE_NEW, _DYN_DIAG_LOG, _DYN_GET_NEXT, _DYN_GET_PLUGIN, _DYN_IDENTIFIER, _DYN_IS_ASYNC, _DYN_IS_INITIALIZED, _DYN_LENGTH, _DYN_LOGGER, _DYN_PROCESS_NEXT, _DYN_PUSH, _DYN_SET_NEXT_PLUGIN, _DYN_TEARDOWN, _DYN_UPDATE } from \"../__DynamicConstants\";\r\nimport { _throwInternal, safeGetLogger } from \"./DiagnosticLogger\";\r\nimport { dumpObj } from \"./EnvUtils\";\r\nimport { arrForEach, isArray, isFunction, isNullOrUndefined, isObject, isUndefined, objExtend, objForEachKey, objFreeze, objKeys, proxyFunctions } from \"./HelperFuncs\";\r\nimport { STR_CORE, STR_DISABLED, STR_EMPTY, STR_EXTENSION_CONFIG, STR_PRIORITY, STR_PROCESS_TELEMETRY } from \"./InternalConstants\";\r\nimport { doPerf } from \"./PerfManager\";\r\nimport { _getPluginState } from \"./TelemetryHelpers\";\r\nvar strTelemetryPluginChain = \"TelemetryPluginChain\";\r\nvar strHasRunFlags = \"_hasRun\";\r\nvar strGetTelCtx = \"_getTelCtx\";\r\nvar _chainId = 0;\r\nfunction _getNextProxyStart(proxy, core, startAt) {\r\n while (proxy) {\r\n if (proxy[_DYN_GET_PLUGIN /* @min:%2egetPlugin */]() === startAt) {\r\n return proxy;\r\n }\r\n proxy = proxy[_DYN_GET_NEXT /* @min:%2egetNext */]();\r\n }\r\n // This wasn't found in the existing chain so create an isolated one with just this plugin\r\n return createTelemetryProxyChain([startAt], core[_DYN_CONFIG /* @min:%2econfig */] || {}, core);\r\n}\r\n/**\r\n * @ignore\r\n * @param telemetryChain\r\n * @param config\r\n * @param core\r\n * @param startAt - Identifies the next plugin to execute, if null there is no \"next\" plugin and if undefined it should assume the start of the chain\r\n * @returns\r\n */\r\nfunction _createInternalContext(telemetryChain, config, core, startAt) {\r\n // We have a special case where we want to start execution from this specific plugin\r\n // or we simply reuse the existing telemetry plugin chain (normal execution case)\r\n var _nextProxy = null; // By Default set as no next plugin\r\n var _onComplete = [];\r\n if (startAt !== null) {\r\n // There is no next element (null) vs not defined (undefined) so use the full chain\r\n _nextProxy = startAt ? _getNextProxyStart(telemetryChain, core, startAt) : telemetryChain;\r\n }\r\n var context = {\r\n _next: _moveNext,\r\n ctx: {\r\n core: function () {\r\n return core;\r\n },\r\n diagLog: function () {\r\n return safeGetLogger(core, config);\r\n },\r\n getCfg: function () {\r\n return config;\r\n },\r\n getExtCfg: _getExtCfg,\r\n getConfig: _getConfig,\r\n hasNext: function () {\r\n return !!_nextProxy;\r\n },\r\n getNext: function () {\r\n return _nextProxy;\r\n },\r\n setNext: function (nextPlugin) {\r\n _nextProxy = nextPlugin;\r\n },\r\n iterate: _iterateChain,\r\n onComplete: _addOnComplete\r\n }\r\n };\r\n function _addOnComplete(onComplete, that) {\r\n var args = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n args[_i - 2] = arguments[_i];\r\n }\r\n if (onComplete) {\r\n _onComplete[_DYN_PUSH /* @min:%2epush */]({\r\n func: onComplete,\r\n self: !isUndefined(that) ? that : context.ctx,\r\n args: args\r\n });\r\n }\r\n }\r\n function _moveNext() {\r\n var nextProxy = _nextProxy;\r\n // Automatically move to the next plugin\r\n _nextProxy = nextProxy ? nextProxy[_DYN_GET_NEXT /* @min:%2egetNext */]() : null;\r\n if (!nextProxy) {\r\n var onComplete = _onComplete;\r\n if (onComplete && onComplete[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n arrForEach(onComplete, function (completeDetails) {\r\n try {\r\n completeDetails.func[_DYN_CALL /* @min:%2ecall */](completeDetails.self, completeDetails.args);\r\n }\r\n catch (e) {\r\n _throwInternal(core[_DYN_LOGGER /* @min:%2elogger */], 2 /* eLoggingSeverity.WARNING */, 73 /* _eInternalMessageId.PluginException */, \"Unexpected Exception during onComplete - \" + dumpObj(e));\r\n }\r\n });\r\n _onComplete = [];\r\n }\r\n }\r\n return nextProxy;\r\n }\r\n function _getExtCfg(identifier, defaultValue, mergeDefault) {\r\n if (defaultValue === void 0) { defaultValue = {}; }\r\n if (mergeDefault === void 0) { mergeDefault = 0 /* GetExtCfgMergeType.None */; }\r\n var theConfig;\r\n if (config) {\r\n var extConfig = config[STR_EXTENSION_CONFIG /* @min:%2eextensionConfig */];\r\n if (extConfig && identifier) {\r\n theConfig = extConfig[identifier];\r\n }\r\n }\r\n if (!theConfig) {\r\n // Just use the defaults\r\n theConfig = defaultValue;\r\n }\r\n else if (isObject(defaultValue)) {\r\n if (mergeDefault !== 0 /* GetExtCfgMergeType.None */) {\r\n // Merge the defaults and configured values\r\n var newConfig_1 = objExtend(true, defaultValue, theConfig);\r\n if (config && mergeDefault === 2 /* GetExtCfgMergeType.MergeDefaultFromRootOrDefault */) {\r\n // Enumerate over the defaultValues and if not already populated attempt to\r\n // find a value from the root config\r\n objForEachKey(defaultValue, function (field) {\r\n // for each unspecified field, set the default value\r\n if (isNullOrUndefined(newConfig_1[field])) {\r\n var cfgValue = config[field];\r\n if (!isNullOrUndefined(cfgValue)) {\r\n newConfig_1[field] = cfgValue;\r\n }\r\n }\r\n });\r\n }\r\n theConfig = newConfig_1;\r\n }\r\n }\r\n return theConfig;\r\n }\r\n function _getConfig(identifier, field, defaultValue) {\r\n if (defaultValue === void 0) { defaultValue = false; }\r\n var theValue;\r\n var extConfig = _getExtCfg(identifier, null);\r\n if (extConfig && !isNullOrUndefined(extConfig[field])) {\r\n theValue = extConfig[field];\r\n }\r\n else if (config && !isNullOrUndefined(config[field])) {\r\n theValue = config[field];\r\n }\r\n return !isNullOrUndefined(theValue) ? theValue : defaultValue;\r\n }\r\n function _iterateChain(cb) {\r\n // Keep processing until we reach the end of the chain\r\n var nextPlugin;\r\n while (!!(nextPlugin = context._next())) {\r\n var plugin = nextPlugin[_DYN_GET_PLUGIN /* @min:%2egetPlugin */]();\r\n if (plugin) {\r\n // callback with the current on\r\n cb(plugin);\r\n }\r\n }\r\n }\r\n return context;\r\n}\r\n/**\r\n * Creates a new Telemetry Item context with the current config, core and plugin execution chain\r\n * @param plugins - The plugin instances that will be executed\r\n * @param config - The current config\r\n * @param core - The current core instance\r\n * @param startAt - Identifies the next plugin to execute, if null there is no \"next\" plugin and if undefined it should assume the start of the chain\r\n */\r\nexport function createProcessTelemetryContext(telemetryChain, config, core, startAt) {\r\n var internalContext = _createInternalContext(telemetryChain, config, core, startAt);\r\n var context = internalContext.ctx;\r\n function _processNext(env) {\r\n var nextPlugin = internalContext._next();\r\n // Run the next plugin which will call \"processNext()\"\r\n nextPlugin && nextPlugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */](env, context);\r\n return !nextPlugin;\r\n }\r\n function _createNew(plugins, startAt) {\r\n if (plugins === void 0) { plugins = null; }\r\n if (isArray(plugins)) {\r\n plugins = createTelemetryProxyChain(plugins, config, core, startAt);\r\n }\r\n return createProcessTelemetryContext(plugins || context[_DYN_GET_NEXT /* @min:%2egetNext */](), config, core, startAt);\r\n }\r\n context[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */] = _processNext;\r\n context[_DYN_CREATE_NEW /* @min:%2ecreateNew */] = _createNew;\r\n return context;\r\n}\r\n/**\r\n * Creates a new Telemetry Item context with the current config, core and plugin execution chain for handling the unloading of the chain\r\n * @param plugins - The plugin instances that will be executed\r\n * @param config - The current config\r\n * @param core - The current core instance\r\n * @param startAt - Identifies the next plugin to execute, if null there is no \"next\" plugin and if undefined it should assume the start of the chain\r\n */\r\nexport function createProcessTelemetryUnloadContext(telemetryChain, core, startAt) {\r\n var config = core[_DYN_CONFIG /* @min:%2econfig */] || {};\r\n var internalContext = _createInternalContext(telemetryChain, config, core, startAt);\r\n var context = internalContext.ctx;\r\n function _processNext(unloadState) {\r\n var nextPlugin = internalContext._next();\r\n nextPlugin && nextPlugin.unload(context, unloadState);\r\n return !nextPlugin;\r\n }\r\n function _createNew(plugins, startAt) {\r\n if (plugins === void 0) { plugins = null; }\r\n if (isArray(plugins)) {\r\n plugins = createTelemetryProxyChain(plugins, config, core, startAt);\r\n }\r\n return createProcessTelemetryUnloadContext(plugins || context[_DYN_GET_NEXT /* @min:%2egetNext */](), core, startAt);\r\n }\r\n context[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */] = _processNext;\r\n context[_DYN_CREATE_NEW /* @min:%2ecreateNew */] = _createNew;\r\n return context;\r\n}\r\n/**\r\n * Creates a new Telemetry Item context with the current config, core and plugin execution chain for updating the configuration\r\n * @param plugins - The plugin instances that will be executed\r\n * @param config - The current config\r\n * @param core - The current core instance\r\n * @param startAt - Identifies the next plugin to execute, if null there is no \"next\" plugin and if undefined it should assume the start of the chain\r\n */\r\nexport function createProcessTelemetryUpdateContext(telemetryChain, core, startAt) {\r\n var config = core[_DYN_CONFIG /* @min:%2econfig */] || {};\r\n var internalContext = _createInternalContext(telemetryChain, config, core, startAt);\r\n var context = internalContext.ctx;\r\n function _processNext(updateState) {\r\n return context.iterate(function (plugin) {\r\n if (isFunction(plugin[_DYN_UPDATE /* @min:%2eupdate */])) {\r\n plugin[_DYN_UPDATE /* @min:%2eupdate */](context, updateState);\r\n }\r\n });\r\n }\r\n function _createNew(plugins, startAt) {\r\n if (plugins === void 0) { plugins = null; }\r\n if (isArray(plugins)) {\r\n plugins = createTelemetryProxyChain(plugins, config, core, startAt);\r\n }\r\n return createProcessTelemetryUpdateContext(plugins || context[_DYN_GET_NEXT /* @min:%2egetNext */](), core, startAt);\r\n }\r\n context[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */] = _processNext;\r\n context[_DYN_CREATE_NEW /* @min:%2ecreateNew */] = _createNew;\r\n return context;\r\n}\r\n/**\r\n * Creates an execution chain from the array of plugins\r\n * @param plugins - The array of plugins that will be executed in this order\r\n * @param defItemCtx - The default execution context to use when no telemetry context is passed to processTelemetry(), this\r\n * should be for legacy plugins only. Currently, only used for passing the current core instance and to provide better error\r\n * reporting (hasRun) when errors occur.\r\n */\r\nexport function createTelemetryProxyChain(plugins, config, core, startAt) {\r\n var firstProxy = null;\r\n var add = startAt ? false : true;\r\n if (isArray(plugins) && plugins[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n // Create the proxies and wire up the next plugin chain\r\n var lastProxy_1 = null;\r\n arrForEach(plugins, function (thePlugin) {\r\n if (!add && startAt === thePlugin) {\r\n add = true;\r\n }\r\n if (add && thePlugin && isFunction(thePlugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */])) {\r\n // Only add plugins that are processors\r\n var newProxy = createTelemetryPluginProxy(thePlugin, config, core);\r\n if (!firstProxy) {\r\n firstProxy = newProxy;\r\n }\r\n if (lastProxy_1) {\r\n // Set this new proxy as the next for the previous one\r\n lastProxy_1._setNext(newProxy);\r\n }\r\n lastProxy_1 = newProxy;\r\n }\r\n });\r\n }\r\n if (startAt && !firstProxy) {\r\n // Special case where the \"startAt\" was not in the original list of plugins\r\n return createTelemetryProxyChain([startAt], config, core);\r\n }\r\n return firstProxy;\r\n}\r\n/**\r\n * Create the processing telemetry proxy instance, the proxy is used to abstract the current plugin to allow monitoring and\r\n * execution plugins while passing around the dynamic execution state (IProcessTelemetryContext), the proxy instance no longer\r\n * contains any execution state and can be reused between requests (this was not the case for 2.7.2 and earlier with the\r\n * TelemetryPluginChain class).\r\n * @param plugin - The plugin instance to proxy\r\n * @param config - The default execution context to use when no telemetry context is passed to processTelemetry(), this\r\n * should be for legacy plugins only. Currently, only used for passing the current core instance and to provide better error\r\n * reporting (hasRun) when errors occur.\r\n * @returns\r\n */\r\nexport function createTelemetryPluginProxy(plugin, config, core) {\r\n var nextProxy = null;\r\n var hasProcessTelemetry = isFunction(plugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */]);\r\n var hasSetNext = isFunction(plugin[_DYN_SET_NEXT_PLUGIN /* @min:%2esetNextPlugin */]);\r\n var chainId;\r\n if (plugin) {\r\n chainId = plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */] + \"-\" + plugin[STR_PRIORITY /* @min:%2epriority */] + \"-\" + _chainId++;\r\n }\r\n else {\r\n chainId = \"Unknown-0-\" + _chainId++;\r\n }\r\n var proxyChain = {\r\n getPlugin: function () {\r\n return plugin;\r\n },\r\n getNext: function () {\r\n return nextProxy;\r\n },\r\n processTelemetry: _processTelemetry,\r\n unload: _unloadPlugin,\r\n update: _updatePlugin,\r\n _id: chainId,\r\n _setNext: function (nextPlugin) {\r\n nextProxy = nextPlugin;\r\n }\r\n };\r\n function _getTelCtx() {\r\n var itemCtx;\r\n // Looks like a plugin didn't pass the (optional) context, so create a new one\r\n if (plugin && isFunction(plugin[strGetTelCtx])) {\r\n // This plugin extends from the BaseTelemetryPlugin so lets use it\r\n itemCtx = plugin[strGetTelCtx]();\r\n }\r\n if (!itemCtx) {\r\n // Create a temporary one\r\n itemCtx = createProcessTelemetryContext(proxyChain, config, core);\r\n }\r\n return itemCtx;\r\n }\r\n function _processChain(itemCtx, processPluginFn, name, details, isAsync) {\r\n var hasRun = false;\r\n var identifier = plugin ? plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */] : strTelemetryPluginChain;\r\n var hasRunContext = itemCtx[strHasRunFlags];\r\n if (!hasRunContext) {\r\n // Assign and populate\r\n hasRunContext = itemCtx[strHasRunFlags] = {};\r\n }\r\n // Ensure that we keep the context in sync\r\n itemCtx.setNext(nextProxy);\r\n if (plugin) {\r\n doPerf(itemCtx[STR_CORE /* @min:%2ecore */](), function () { return identifier + \":\" + name; }, function () {\r\n // Mark this component as having run\r\n hasRunContext[chainId] = true;\r\n try {\r\n // Set a flag on the next plugin so we know if it was attempted to be executed\r\n var nextId = nextProxy ? nextProxy._id : STR_EMPTY;\r\n if (nextId) {\r\n hasRunContext[nextId] = false;\r\n }\r\n hasRun = processPluginFn(itemCtx);\r\n }\r\n catch (error) {\r\n var hasNextRun = nextProxy ? hasRunContext[nextProxy._id] : true;\r\n if (hasNextRun) {\r\n // The next plugin after us has already run so set this one as complete\r\n hasRun = true;\r\n }\r\n if (!nextProxy || !hasNextRun) {\r\n // Either we have no next plugin or the current one did not attempt to call the next plugin\r\n // Which means the current one is the root of the failure so log/report this failure\r\n _throwInternal(itemCtx[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 73 /* _eInternalMessageId.PluginException */, \"Plugin [\" + identifier + \"] failed during \" + name + \" - \" + dumpObj(error) + \", run flags: \" + dumpObj(hasRunContext));\r\n }\r\n }\r\n }, details, isAsync);\r\n }\r\n return hasRun;\r\n }\r\n function _processTelemetry(env, itemCtx) {\r\n itemCtx = itemCtx || _getTelCtx();\r\n function _callProcessTelemetry(itemCtx) {\r\n if (!plugin || !hasProcessTelemetry) {\r\n return false;\r\n }\r\n var pluginState = _getPluginState(plugin);\r\n if (pluginState[_DYN_TEARDOWN /* @min:%2eteardown */] || pluginState[STR_DISABLED]) {\r\n return false;\r\n }\r\n // Ensure that we keep the context in sync (for processNext()), just in case a plugin\r\n // doesn't calls processTelemetry() instead of itemContext.processNext() or some\r\n // other form of error occurred\r\n if (hasSetNext) {\r\n // Backward compatibility setting the next plugin on the instance\r\n plugin[_DYN_SET_NEXT_PLUGIN /* @min:%2esetNextPlugin */](nextProxy);\r\n }\r\n plugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */](env, itemCtx);\r\n // Process Telemetry is expected to call itemCtx.processNext() or nextPlugin.processTelemetry()\r\n return true;\r\n }\r\n if (!_processChain(itemCtx, _callProcessTelemetry, \"processTelemetry\", function () { return ({ item: env }); }, !(env.sync))) {\r\n // The underlying plugin is either not defined, not enabled or does not have a processTelemetry implementation\r\n // so we still want the next plugin to be executed.\r\n itemCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](env);\r\n }\r\n }\r\n function _unloadPlugin(unloadCtx, unloadState) {\r\n function _callTeardown() {\r\n // Setting default of hasRun as false so the proxyProcessFn() is called as teardown() doesn't have to exist or call unloadNext().\r\n var hasRun = false;\r\n if (plugin) {\r\n var pluginState = _getPluginState(plugin);\r\n var pluginCore = plugin[STR_CORE] || pluginState[STR_CORE /* @min:%2ecore */];\r\n // Only teardown the plugin if it was initialized by the current core (i.e. It's not a shared plugin)\r\n if (plugin && (!pluginCore || pluginCore === unloadCtx.core()) && !pluginState[_DYN_TEARDOWN /* @min:%2eteardown */]) {\r\n // Handle plugins that don't extend from the BaseTelemetryPlugin\r\n pluginState[STR_CORE /* @min:%2ecore */] = null;\r\n pluginState[_DYN_TEARDOWN /* @min:%2eteardown */] = true;\r\n pluginState[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */] = false;\r\n if (plugin[_DYN_TEARDOWN /* @min:%2eteardown */] && plugin[_DYN_TEARDOWN /* @min:%2eteardown */](unloadCtx, unloadState) === true) {\r\n // plugin told us that it was going to (or has) call unloadCtx.processNext()\r\n hasRun = true;\r\n }\r\n }\r\n }\r\n return hasRun;\r\n }\r\n if (!_processChain(unloadCtx, _callTeardown, \"unload\", function () { }, unloadState[_DYN_IS_ASYNC /* @min:%2eisAsync */])) {\r\n // Only called if we hasRun was not true\r\n unloadCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](unloadState);\r\n }\r\n }\r\n function _updatePlugin(updateCtx, updateState) {\r\n function _callUpdate() {\r\n // Setting default of hasRun as false so the proxyProcessFn() is called as teardown() doesn't have to exist or call unloadNext().\r\n var hasRun = false;\r\n if (plugin) {\r\n var pluginState = _getPluginState(plugin);\r\n var pluginCore = plugin[STR_CORE] || pluginState[STR_CORE /* @min:%2ecore */];\r\n // Only update the plugin if it was initialized by the current core (i.e. It's not a shared plugin)\r\n if (plugin && (!pluginCore || pluginCore === updateCtx.core()) && !pluginState[_DYN_TEARDOWN /* @min:%2eteardown */]) {\r\n if (plugin[_DYN_UPDATE /* @min:%2eupdate */] && plugin[_DYN_UPDATE /* @min:%2eupdate */](updateCtx, updateState) === true) {\r\n // plugin told us that it was going to (or has) call unloadCtx.processNext()\r\n hasRun = true;\r\n }\r\n }\r\n }\r\n return hasRun;\r\n }\r\n if (!_processChain(updateCtx, _callUpdate, \"update\", function () { }, false)) {\r\n // Only called if we hasRun was not true\r\n updateCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](updateState);\r\n }\r\n }\r\n return objFreeze(proxyChain);\r\n}\r\n/**\r\n * This class will be removed!\r\n * @deprecated use createProcessTelemetryContext() instead\r\n */\r\nvar ProcessTelemetryContext = /** @class */ (function () {\r\n /**\r\n * Creates a new Telemetry Item context with the current config, core and plugin execution chain\r\n * @param plugins - The plugin instances that will be executed\r\n * @param config - The current config\r\n * @param core - The current core instance\r\n */\r\n function ProcessTelemetryContext(pluginChain, config, core, startAt) {\r\n var _self = this;\r\n var context = createProcessTelemetryContext(pluginChain, config, core, startAt);\r\n // Proxy all functions of the context to this object\r\n proxyFunctions(_self, context, objKeys(context));\r\n }\r\n return ProcessTelemetryContext;\r\n}());\r\nexport { ProcessTelemetryContext };\r\n//# sourceMappingURL=ProcessTelemetryContext.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { _DYN_DIAG_LOG, _DYN_PUSH } from \"../__DynamicConstants\";\r\nimport { _throwInternal } from \"./DiagnosticLogger\";\r\nimport { dumpObj } from \"./EnvUtils\";\r\nimport { arrForEach } from \"./HelperFuncs\";\r\nexport function createUnloadHandlerContainer() {\r\n var handlers = [];\r\n function _addHandler(handler) {\r\n if (handler) {\r\n handlers[_DYN_PUSH /* @min:%2epush */](handler);\r\n }\r\n }\r\n function _runHandlers(unloadCtx, unloadState) {\r\n arrForEach(handlers, function (handler) {\r\n try {\r\n handler(unloadCtx, unloadState);\r\n }\r\n catch (e) {\r\n _throwInternal(unloadCtx[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 73 /* _eInternalMessageId.PluginException */, \"Unexpected error calling unload handler - \" + dumpObj(e));\r\n }\r\n });\r\n handlers = [];\r\n }\r\n return {\r\n add: _addHandler,\r\n run: _runHandlers\r\n };\r\n}\r\n//# sourceMappingURL=UnloadHandlerContainer.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\"use strict\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { _DYN_CREATE_NEW, _DYN_DIAG_LOG, _DYN_GET_NEXT, _DYN_GET_PROCESS_TEL_CONT0, _DYN_INITIALIZE, _DYN_IS_ASYNC, _DYN_IS_INITIALIZED, _DYN_PROCESS_NEXT, _DYN_PUSH, _DYN_SET_NEXT_PLUGIN, _DYN_TEARDOWN, _DYN_UPDATE, _DYN__DO_TEARDOWN } from \"../__DynamicConstants\";\r\nimport { arrForEach, isArray, isFunction, isNullOrUndefined, proxyFunctionAs, setValue } from \"./HelperFuncs\";\r\nimport { STR_CORE, STR_EXTENSION_CONFIG, STR_PROCESS_TELEMETRY } from \"./InternalConstants\";\r\nimport { createProcessTelemetryContext, createProcessTelemetryUnloadContext, createProcessTelemetryUpdateContext } from \"./ProcessTelemetryContext\";\r\nimport { createUnloadHandlerContainer } from \"./UnloadHandlerContainer\";\r\nvar strGetPlugin = \"getPlugin\";\r\n/**\r\n * BaseTelemetryPlugin provides a basic implementation of the ITelemetryPlugin interface so that plugins\r\n * can avoid implementation the same set of boiler plate code as well as provide a base\r\n * implementation so that new default implementations can be added without breaking all plugins.\r\n */\r\nvar BaseTelemetryPlugin = /** @class */ (function () {\r\n function BaseTelemetryPlugin() {\r\n var _self = this; // Setting _self here as it's used outside of the dynamicProto as well\r\n // NOTE!: DON'T set default values here, instead set them in the _initDefaults() function as it is also called during teardown()\r\n var _isinitialized;\r\n var _rootCtx; // Used as the root context, holding the current config and initialized core\r\n var _nextPlugin; // Used for backward compatibility where plugins don't call the main pipeline\r\n var _unloadHandlerContainer;\r\n var _hooks;\r\n _initDefaults();\r\n dynamicProto(BaseTelemetryPlugin, _self, function (_self) {\r\n _self[_DYN_INITIALIZE /* @min:%2einitialize */] = function (config, core, extensions, pluginChain) {\r\n _setDefaults(config, core, pluginChain);\r\n _isinitialized = true;\r\n };\r\n _self[_DYN_TEARDOWN /* @min:%2eteardown */] = function (unloadCtx, unloadState) {\r\n var _a;\r\n // If this plugin has already been torn down (not operational) or is not initialized (core is not set)\r\n // or the core being used for unload was not the same core used for initialization.\r\n var core = _self[STR_CORE /* @min:%2ecore */];\r\n if (!core || (unloadCtx && core !== unloadCtx[STR_CORE /* @min:%2ecore */]())) {\r\n // Do Nothing as either the plugin is not initialized or was not initialized by the current core\r\n return;\r\n }\r\n var result;\r\n var unloadDone = false;\r\n var theUnloadCtx = unloadCtx || createProcessTelemetryUnloadContext(null, core, _nextPlugin && _nextPlugin[strGetPlugin] ? _nextPlugin[strGetPlugin]() : _nextPlugin);\r\n var theUnloadState = unloadState || (_a = {\r\n reason: 0 /* TelemetryUnloadReason.ManualTeardown */\r\n },\r\n _a[_DYN_IS_ASYNC /* @min:isAsync */] = false,\r\n _a);\r\n function _unloadCallback() {\r\n if (!unloadDone) {\r\n unloadDone = true;\r\n _unloadHandlerContainer.run(theUnloadCtx, unloadState);\r\n var oldHooks = _hooks;\r\n _hooks = [];\r\n // Remove all instrumentation hooks\r\n arrForEach(oldHooks, function (fn) {\r\n fn.rm();\r\n });\r\n if (result === true) {\r\n theUnloadCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](theUnloadState);\r\n }\r\n _initDefaults();\r\n }\r\n }\r\n if (!_self[_DYN__DO_TEARDOWN /* @min:%2e_doTeardown */] || _self[_DYN__DO_TEARDOWN /* @min:%2e_doTeardown */](theUnloadCtx, theUnloadState, _unloadCallback) !== true) {\r\n _unloadCallback();\r\n }\r\n else {\r\n // Tell the caller that we will be calling processNext()\r\n result = true;\r\n }\r\n return result;\r\n };\r\n _self[_DYN_UPDATE /* @min:%2eupdate */] = function (updateCtx, updateState) {\r\n // If this plugin has already been torn down (not operational) or is not initialized (core is not set)\r\n // or the core being used for unload was not the same core used for initialization.\r\n var core = _self[STR_CORE /* @min:%2ecore */];\r\n if (!core || (updateCtx && core !== updateCtx[STR_CORE /* @min:%2ecore */]())) {\r\n // Do Nothing\r\n return;\r\n }\r\n var result;\r\n var updateDone = false;\r\n var theUpdateCtx = updateCtx || createProcessTelemetryUpdateContext(null, core, _nextPlugin && _nextPlugin[strGetPlugin] ? _nextPlugin[strGetPlugin]() : _nextPlugin);\r\n var theUpdateState = updateState || {\r\n reason: 0 /* TelemetryUpdateReason.Unknown */\r\n };\r\n function _updateCallback() {\r\n if (!updateDone) {\r\n updateDone = true;\r\n _setDefaults(theUpdateCtx.getCfg(), theUpdateCtx.core(), theUpdateCtx[_DYN_GET_NEXT /* @min:%2egetNext */]());\r\n }\r\n }\r\n if (!_self._doUpdate || _self._doUpdate(theUpdateCtx, theUpdateState, _updateCallback) !== true) {\r\n _updateCallback();\r\n }\r\n else {\r\n result = true;\r\n }\r\n return result;\r\n };\r\n _self._addHook = function (hooks) {\r\n if (hooks) {\r\n if (isArray(hooks)) {\r\n _hooks = _hooks.concat(hooks);\r\n }\r\n else {\r\n _hooks[_DYN_PUSH /* @min:%2epush */](hooks);\r\n }\r\n }\r\n };\r\n proxyFunctionAs(_self, \"_addUnloadCb\", function () { return _unloadHandlerContainer; }, \"add\");\r\n });\r\n // These are added after the dynamicProto so that are not moved to the prototype\r\n _self[_DYN_DIAG_LOG /* @min:%2ediagLog */] = function (itemCtx) {\r\n return _getTelCtx(itemCtx)[_DYN_DIAG_LOG /* @min:%2ediagLog */]();\r\n };\r\n _self[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */] = function () {\r\n return _isinitialized;\r\n };\r\n _self.setInitialized = function (isInitialized) {\r\n _isinitialized = isInitialized;\r\n };\r\n // _self.getNextPlugin = () => DO NOT IMPLEMENT\r\n // Sub-classes of this base class *should* not be relying on this value and instead\r\n // should use processNext() function. If you require access to the plugin use the\r\n // IProcessTelemetryContext.getNext().getPlugin() while in the pipeline, Note getNext() may return null.\r\n _self[_DYN_SET_NEXT_PLUGIN /* @min:%2esetNextPlugin */] = function (next) {\r\n _nextPlugin = next;\r\n };\r\n _self[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */] = function (env, itemCtx) {\r\n if (itemCtx) {\r\n // Normal core execution sequence\r\n itemCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](env);\r\n }\r\n else if (_nextPlugin && isFunction(_nextPlugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */])) {\r\n // Looks like backward compatibility or out of band processing. And as it looks\r\n // like a ITelemetryPlugin or ITelemetryPluginChain, just call processTelemetry\r\n _nextPlugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */](env, null);\r\n }\r\n };\r\n _self._getTelCtx = _getTelCtx;\r\n function _getTelCtx(currentCtx) {\r\n if (currentCtx === void 0) { currentCtx = null; }\r\n var itemCtx = currentCtx;\r\n if (!itemCtx) {\r\n var rootCtx = _rootCtx || createProcessTelemetryContext(null, {}, _self[STR_CORE /* @min:%2ecore */]);\r\n // tslint:disable-next-line: prefer-conditional-expression\r\n if (_nextPlugin && _nextPlugin[strGetPlugin]) {\r\n // Looks like a chain object\r\n itemCtx = rootCtx[_DYN_CREATE_NEW /* @min:%2ecreateNew */](null, _nextPlugin[strGetPlugin]);\r\n }\r\n else {\r\n itemCtx = rootCtx[_DYN_CREATE_NEW /* @min:%2ecreateNew */](null, _nextPlugin);\r\n }\r\n }\r\n return itemCtx;\r\n }\r\n function _setDefaults(config, core, pluginChain) {\r\n if (config) {\r\n // Make sure the extensionConfig exists\r\n setValue(config, STR_EXTENSION_CONFIG, [], null, isNullOrUndefined);\r\n }\r\n if (!pluginChain && core) {\r\n // Get the first plugin from the core\r\n pluginChain = core[_DYN_GET_PROCESS_TEL_CONT0 /* @min:%2egetProcessTelContext */]()[_DYN_GET_NEXT /* @min:%2egetNext */]();\r\n }\r\n var nextPlugin = _nextPlugin;\r\n if (_nextPlugin && _nextPlugin[strGetPlugin]) {\r\n // If it looks like a proxy/chain then get the plugin\r\n nextPlugin = _nextPlugin[strGetPlugin]();\r\n }\r\n // Support legacy plugins where core was defined as a property\r\n _self[STR_CORE /* @min:%2ecore */] = core;\r\n _rootCtx = createProcessTelemetryContext(pluginChain, config, core, nextPlugin);\r\n }\r\n function _initDefaults() {\r\n _isinitialized = false;\r\n _self[STR_CORE /* @min:%2ecore */] = null;\r\n _rootCtx = null;\r\n _nextPlugin = null;\r\n _hooks = [];\r\n _unloadHandlerContainer = createUnloadHandlerContainer();\r\n }\r\n }\r\n BaseTelemetryPlugin.prototype.initialize = function (config, core, extensions, pluginChain) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Tear down the plugin and remove any hooked value, the plugin should be removed so that it is no longer initialized and\r\n * therefore could be re-initialized after being torn down. The plugin should ensure that once this has been called any further\r\n * processTelemetry calls are ignored and it just calls the processNext() with the provided context.\r\n * @param unloadCtx - This is the context that should be used during unloading.\r\n * @param unloadState - The details / state of the unload process, it holds details like whether it should be unloaded synchronously or asynchronously and the reason for the unload.\r\n * @returns boolean - true if the plugin has or will call processNext(), this for backward compatibility as previously teardown was synchronous and returned nothing.\r\n */\r\n BaseTelemetryPlugin.prototype.teardown = function (unloadCtx, unloadState) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return false;\r\n };\r\n /**\r\n * The the plugin should re-evaluate configuration and update any cached configuration settings.\r\n * @param updateCtx - This is the context that should be used during updating.\r\n * @param updateState - The details / state of the update process, it holds details like the current and previous configuration.\r\n * @returns boolean - true if the plugin has or will call updateCtx.processNext(), this allows the plugin to perform any asynchronous operations.\r\n */\r\n BaseTelemetryPlugin.prototype.update = function (updateCtx, updateState) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Add an unload handler that will be called when the SDK is being unloaded\r\n * @param handler - the handler\r\n */\r\n BaseTelemetryPlugin.prototype._addUnloadCb = function (handler) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Add this hook so that it is automatically removed during unloading\r\n * @param hooks - The single hook or an array of IInstrumentHook objects\r\n */\r\n BaseTelemetryPlugin.prototype._addHook = function (hooks) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n return BaseTelemetryPlugin;\r\n}());\r\nexport { BaseTelemetryPlugin };\r\n//# sourceMappingURL=BaseTelemetryPlugin.js.map","/**\r\n* ReactPlugin.ts\r\n* @copyright Microsoft 2019\r\n*/\r\nimport { __extends } from \"tslib\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { BaseTelemetryPlugin, _throwInternal, arrForEach, isFunction, objDefineAccessors, proxyFunctions, safeGetCookieMgr } from \"@microsoft/applicationinsights-core-js\";\r\nvar ReactPlugin = /** @class */ (function (_super) {\r\n __extends(ReactPlugin, _super);\r\n function ReactPlugin() {\r\n var _this = _super.call(this) || this;\r\n _this.priority = 185;\r\n _this.identifier = 'ReactPlugin';\r\n var _analyticsPlugin;\r\n var _extensionConfig;\r\n var _unlisten;\r\n var _pageViewTimer;\r\n dynamicProto(ReactPlugin, _this, function (_self, _base) {\r\n _initDefaults();\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n _super.prototype.initialize.call(_this, config, core, extensions, pluginChain);\r\n _extensionConfig =\r\n config.extensionConfig && config.extensionConfig[_self.identifier]\r\n ? config.extensionConfig[_self.identifier]\r\n : { history: null };\r\n arrForEach(extensions, function (ext) {\r\n var identifier = ext.identifier;\r\n if (identifier === 'ApplicationInsightsAnalytics') {\r\n _analyticsPlugin = ext;\r\n }\r\n });\r\n if (_extensionConfig.history) {\r\n _addHistoryListener(_extensionConfig.history);\r\n var pageViewTelemetry = {\r\n uri: _extensionConfig.history.location.pathname\r\n };\r\n _self.trackPageView(pageViewTelemetry);\r\n }\r\n };\r\n _self.getCookieMgr = function () {\r\n return safeGetCookieMgr(_self.core);\r\n };\r\n _self.getAppInsights = _getAnalytics;\r\n _self.processTelemetry = function (event, itemCtx) {\r\n _self.processNext(event, itemCtx);\r\n };\r\n _self._doTeardown = function (unloadCtx, unloadState, asyncCallback) {\r\n if (isFunction(_unlisten)) {\r\n _unlisten();\r\n }\r\n if (_pageViewTimer) {\r\n clearTimeout(_pageViewTimer);\r\n }\r\n _initDefaults();\r\n };\r\n // Proxy the analytics functions\r\n proxyFunctions(_self, _getAnalytics, [\r\n \"trackMetric\",\r\n \"trackPageView\",\r\n \"trackEvent\",\r\n \"trackException\",\r\n \"trackTrace\",\r\n ]);\r\n function _initDefaults() {\r\n _analyticsPlugin = null;\r\n _extensionConfig = null;\r\n _unlisten = null;\r\n _pageViewTimer = null;\r\n }\r\n function _getAnalytics() {\r\n if (!_analyticsPlugin) {\r\n _throwInternal(_self.diagLog(), 1 /* eLoggingSeverity.CRITICAL */, 64 /* _eInternalMessageId.TelemetryInitializerFailed */, \"Analytics plugin is not available, React plugin telemetry will not be sent: \");\r\n }\r\n return _analyticsPlugin;\r\n }\r\n function _addHistoryListener(history) {\r\n var locationListener = function (arg) {\r\n // v4 of the history API passes \"location\" as the first argument, while v5 passes an object that contains location and action \r\n var locn = null;\r\n if (\"location\" in arg) {\r\n // Looks like v5\r\n locn = arg[\"location\"];\r\n }\r\n else {\r\n locn = arg;\r\n }\r\n // Timeout to ensure any changes to the DOM made by route changes get included in pageView telemetry\r\n _pageViewTimer = setTimeout(function () {\r\n _pageViewTimer = null;\r\n var pageViewTelemetry = { uri: locn.pathname };\r\n _self.trackPageView(pageViewTelemetry);\r\n }, 500);\r\n };\r\n _unlisten = history.listen(locationListener);\r\n }\r\n objDefineAccessors(_self, \"_extensionConfig\", function () { return _extensionConfig; });\r\n });\r\n return _this;\r\n }\r\n ReactPlugin.prototype.initialize = function (config, core, extensions, pluginChain) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Get the current cookie manager for this instance\r\n */\r\n ReactPlugin.prototype.getCookieMgr = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n /**\r\n * Get application insights instance.\r\n */\r\n ReactPlugin.prototype.getAppInsights = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n /**\r\n * Add Part A fields to the event\r\n * @param event The event that needs to be processed\r\n */\r\n ReactPlugin.prototype.processTelemetry = function (event, itemCtx) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n ReactPlugin.prototype.trackMetric = function (metric, customProperties) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n ReactPlugin.prototype.trackPageView = function (pageView) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n ReactPlugin.prototype.trackEvent = function (event, customProperties) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n ReactPlugin.prototype.trackException = function (exception, customProperties) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n ReactPlugin.prototype.trackTrace = function (trace, customProperties) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n return ReactPlugin;\r\n}(BaseTelemetryPlugin));\r\nexport default ReactPlugin;\r\n//# sourceMappingURL=ReactPlugin.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { __assign, __extends } from \"tslib\";\r\nimport { dateNow } from '@microsoft/applicationinsights-core-js';\r\nimport * as React from 'react';\r\n/**\r\n * Higher-order component base class to hook Application Insights tracking\r\n * in a React component's lifecycle.\r\n */\r\nvar AITrackedComponentBase = /** @class */ (function (_super) {\r\n __extends(AITrackedComponentBase, _super);\r\n function AITrackedComponentBase(props, reactPlugin, componentName) {\r\n var _this = _super.call(this, props) || this;\r\n _this._mountTimestamp = 0;\r\n _this._firstActiveTimestamp = 0;\r\n _this._idleStartTimestamp = 0;\r\n _this._lastActiveTimestamp = 0;\r\n _this._totalIdleTime = 0;\r\n _this._idleCount = 0;\r\n _this._idleTimeout = 5000;\r\n _this.trackActivity = function (e) {\r\n if (_this._firstActiveTimestamp === 0) {\r\n _this._firstActiveTimestamp = dateNow();\r\n _this._lastActiveTimestamp = _this._firstActiveTimestamp;\r\n }\r\n else {\r\n _this._lastActiveTimestamp = dateNow();\r\n }\r\n if (_this._idleStartTimestamp > 0) {\r\n var lastIdleTime = _this._lastActiveTimestamp - _this._idleStartTimestamp;\r\n _this._totalIdleTime += lastIdleTime;\r\n _this._idleStartTimestamp = 0;\r\n }\r\n };\r\n _this._reactPlugin = reactPlugin;\r\n _this._componentName = componentName;\r\n return _this;\r\n }\r\n AITrackedComponentBase.prototype.componentDidMount = function () {\r\n var _this = this;\r\n this._mountTimestamp = dateNow();\r\n this._firstActiveTimestamp = 0;\r\n this._totalIdleTime = 0;\r\n this._lastActiveTimestamp = 0;\r\n this._idleStartTimestamp = 0;\r\n this._idleCount = 0;\r\n this._intervalId = setInterval(function () {\r\n if (_this._lastActiveTimestamp > 0 && _this._idleStartTimestamp === 0 && dateNow() - _this._lastActiveTimestamp >= _this._idleTimeout) {\r\n _this._idleStartTimestamp = dateNow();\r\n _this._idleCount++;\r\n }\r\n }, 100);\r\n };\r\n AITrackedComponentBase.prototype.componentWillUnmount = function () {\r\n if (this._mountTimestamp === 0) {\r\n throw new Error('withAITracking:componentWillUnmount: mountTimestamp is not initialized.');\r\n }\r\n if (this._intervalId) {\r\n clearInterval(this._intervalId);\r\n }\r\n if (this._firstActiveTimestamp === 0) {\r\n return;\r\n }\r\n var engagementTime = this.getEngagementTimeSeconds();\r\n var metricData = {\r\n average: engagementTime,\r\n name: 'React Component Engaged Time (seconds)',\r\n sampleCount: 1\r\n };\r\n var additionalProperties = { 'Component Name': this._componentName };\r\n this._reactPlugin.trackMetric(metricData, additionalProperties);\r\n };\r\n AITrackedComponentBase.prototype.getEngagementTimeSeconds = function () {\r\n return (dateNow() - this._firstActiveTimestamp - this._totalIdleTime - this._idleCount * this._idleTimeout) / 1000;\r\n };\r\n return AITrackedComponentBase;\r\n}(React.Component));\r\nexport { AITrackedComponentBase };\r\n/**\r\n * Higher-order component function to hook Application Insights tracking\r\n * in a React component's lifecycle.\r\n *\r\n * @param reactPlugin ReactPlugin instance\r\n * @param Component the React component to be instrumented\r\n * @param componentName (optional) component name\r\n * @param className (optional) className of the HOC div\r\n */\r\nexport default function withAITracking(reactPlugin, Component, componentName, className) {\r\n if (componentName === undefined || componentName === null || typeof componentName !== 'string') {\r\n componentName = Component.prototype &&\r\n Component.prototype.constructor &&\r\n Component.prototype.constructor.name ||\r\n 'Unknown';\r\n }\r\n if (className === undefined || className === null || typeof className !== 'string') {\r\n className = '';\r\n }\r\n return /** @class */ (function (_super) {\r\n __extends(class_1, _super);\r\n function class_1(props) {\r\n return _super.call(this, props, reactPlugin, componentName) || this;\r\n }\r\n class_1.prototype.render = function () {\r\n return (React.createElement(\"div\", { onKeyDown: this.trackActivity, onMouseMove: this.trackActivity, onScroll: this.trackActivity, onMouseDown: this.trackActivity, onTouchStart: this.trackActivity, onTouchMove: this.trackActivity, className: className },\r\n React.createElement(Component, __assign({}, this.props))));\r\n };\r\n return class_1;\r\n }(AITrackedComponentBase));\r\n}\r\n//# sourceMappingURL=withAITracking.js.map","/* eslint-disable jsdoc/require-returns */\n/* eslint-disable valid-jsdoc */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * To import utils\n */\nimport { isNullOrUndefined } from '@syncfusion/ej2-base';\nvar SvgRenderer = /** @class */ (function () {\n /* End-Properties */\n function SvgRenderer(rootID) {\n //Internal Variables\n this.svgLink = 'http://www.w3.org/2000/svg';\n this.rootId = rootID;\n }\n // method to get the attributes value\n // tslint:disable-next-line:no-any\n SvgRenderer.prototype.getOptionValue = function (options, key) {\n return options[key];\n }; /* tslint:enable */\n /**\n * To create a Html5 SVG element\n *\n * @param {SVGAttributes} options - Options to create SVG\n * @returns {Element} It returns a appropriate element\n */\n SvgRenderer.prototype.createSvg = function (options) {\n if (isNullOrUndefined(options.id)) {\n options.id = this.rootId + '_svg';\n }\n this.svgObj = document.getElementById(options.id);\n if (isNullOrUndefined(document.getElementById(options.id))) {\n this.svgObj = document.createElementNS(this.svgLink, 'svg');\n }\n this.svgObj = this.setElementAttributes(options, this.svgObj);\n this.setSVGSize(options.width, options.height);\n return this.svgObj;\n };\n // method to set the height and width for the SVG element\n SvgRenderer.prototype.setSVGSize = function (width, height) {\n var element = document.getElementById(this.rootId);\n var size = !isNullOrUndefined(element) ? element.getBoundingClientRect() : null;\n if (isNullOrUndefined(this.width) || this.width <= 0) {\n this.svgObj.setAttribute('width', width ? width.toString() : size.width.toString());\n }\n else {\n this.svgObj.setAttribute('width', this.width.toString());\n }\n if (isNullOrUndefined(this.height) || this.height <= 0) {\n this.svgObj.setAttribute('height', height ? height.toString() : '450');\n }\n else {\n this.svgObj.setAttribute('height', this.height.toString());\n }\n };\n /**\n * To draw a path\n *\n * @param {PathAttributes} options - Options to draw a path in SVG\n * @returns {Element} It returns a appropriate path\n */\n SvgRenderer.prototype.drawPath = function (options) {\n var path = document.getElementById(options.id);\n if (path === null) {\n path = document.createElementNS(this.svgLink, 'path');\n }\n path = this.setElementAttributes(options, path);\n return path;\n };\n /**\n * To draw a line\n *\n * @param {LineAttributes} options - Options to draw a line in SVG\n * @returns {Element} It returns a appropriate element\n */\n SvgRenderer.prototype.drawLine = function (options) {\n var line = document.getElementById(options.id);\n if (line === null) {\n line = document.createElementNS(this.svgLink, 'line');\n }\n line = this.setElementAttributes(options, line);\n return line;\n };\n /**\n * To draw a rectangle\n *\n * @param {BaseAttibutes} options - Required options to draw a rectangle in SVG\n * @returns {Element} It returns a appropriate element\n */\n SvgRenderer.prototype.drawRectangle = function (options) {\n var rectangle = document.getElementById(options.id);\n if (rectangle === null) {\n rectangle = document.createElementNS(this.svgLink, 'rect');\n }\n rectangle = this.setElementAttributes(options, rectangle);\n return rectangle;\n };\n /**\n * To draw a circle\n *\n * @param {CircleAttributes} options - Required options to draw a circle in SVG\n * @returns {Element} It returns a appropriate element\n */\n SvgRenderer.prototype.drawCircle = function (options) {\n var circle = document.getElementById(options.id);\n if (circle === null) {\n circle = document.createElementNS(this.svgLink, 'circle');\n }\n circle = this.setElementAttributes(options, circle);\n return circle;\n };\n /**\n * To draw a polyline\n *\n * @param {PolylineAttributes} options - Options required to draw a polyline\n * @returns {Element} It returns a appropriate element\n */\n SvgRenderer.prototype.drawPolyline = function (options) {\n var polyline = document.getElementById(options.id);\n if (polyline === null) {\n polyline = document.createElementNS(this.svgLink, 'polyline');\n }\n polyline = this.setElementAttributes(options, polyline);\n return polyline;\n };\n /**\n * To draw an ellipse\n *\n * @param {EllipseAttributes} options - Options required to draw an ellipse\n * @returns {Element} It returns a appropriate element\n */\n SvgRenderer.prototype.drawEllipse = function (options) {\n var ellipse = document.getElementById(options.id);\n if (ellipse === null) {\n ellipse = document.createElementNS(this.svgLink, 'ellipse');\n }\n ellipse = this.setElementAttributes(options, ellipse);\n return ellipse;\n };\n /**\n * To draw a polygon\n *\n * @param {PolylineAttributes} options - Options needed to draw a polygon in SVG\n * @returns {Element} It returns a appropriate element\n */\n SvgRenderer.prototype.drawPolygon = function (options) {\n var polygon = document.getElementById(options.id);\n if (polygon === null) {\n polygon = document.createElementNS(this.svgLink, 'polygon');\n }\n polygon = this.setElementAttributes(options, polygon);\n return polygon;\n };\n /**\n * To draw an image\n *\n * @param {ImageAttributes} options - Required options to draw an image in SVG\n * @returns {Element} It returns a appropriate element\n */\n SvgRenderer.prototype.drawImage = function (options) {\n var img = document.createElementNS(this.svgLink, 'image');\n img.setAttributeNS(null, 'height', options.height.toString());\n img.setAttributeNS(null, 'width', options.width.toString());\n img.setAttributeNS('http://www.w3.org/1999/xlink', 'href', options.href);\n img.setAttributeNS(null, 'x', options.x.toString());\n img.setAttributeNS(null, 'y', options.y.toString());\n img.setAttributeNS(null, 'id', options.id);\n img.setAttributeNS(null, 'visibility', options.visibility);\n if (!isNullOrUndefined(this.getOptionValue(options, 'clip-path'))) {\n img.setAttributeNS(null, 'clip-path', this.getOptionValue(options, 'clip-path'));\n }\n if (!isNullOrUndefined(options.preserveAspectRatio)) {\n img.setAttributeNS(null, 'preserveAspectRatio', options.preserveAspectRatio);\n }\n return img;\n };\n /**\n * To draw a text\n *\n * @param {TextAttributes} options - Options needed to draw a text in SVG\n * @param {string} label - Label of the text\n * @returns {Element} It returns a appropriate element\n */\n SvgRenderer.prototype.createText = function (options, label) {\n var text = document.createElementNS(this.svgLink, 'text');\n text = this.setElementAttributes(options, text);\n if (!isNullOrUndefined(label)) {\n text.textContent = label;\n }\n return text;\n };\n /**\n * To create a tSpan\n *\n * @param {TextAttributes} options - Options to create tSpan\n * @param {string} label - The text content which is to be rendered in the tSpan\n * @returns {Element} It returns a appropriate element\n */\n SvgRenderer.prototype.createTSpan = function (options, label) {\n var tSpan = document.createElementNS(this.svgLink, 'tspan');\n tSpan = this.setElementAttributes(options, tSpan);\n if (!isNullOrUndefined(label)) {\n tSpan.textContent = label;\n }\n return tSpan;\n };\n /**\n * To create a title\n *\n * @param {string} text - The text content which is to be rendered in the title\n * @returns {Element} It returns a appropriate element\n */\n SvgRenderer.prototype.createTitle = function (text) {\n var title = document.createElementNS(this.svgLink, 'title');\n title.textContent = text;\n return title;\n };\n /**\n * To create defs element in SVG\n *\n * @returns {Element} It returns a appropriate element\n */\n SvgRenderer.prototype.createDefs = function () {\n var defs = document.createElementNS(this.svgLink, 'defs');\n return defs;\n };\n /**\n * To create clip path in SVG\n *\n * @param {BaseAttibutes} options - Options needed to create clip path\n * @returns {Element} It returns a appropriate element\n */\n SvgRenderer.prototype.createClipPath = function (options) {\n var clipPath = document.createElementNS(this.svgLink, 'clipPath');\n clipPath = this.setElementAttributes(options, clipPath);\n return clipPath;\n };\n /**\n * To create foreign object in SVG\n *\n * @param {BaseAttibutes} options - Options needed to create foreign object\n * @returns {Element} It returns a appropriate element\n */\n SvgRenderer.prototype.createForeignObject = function (options) {\n var foreignObject = document.createElementNS(this.svgLink, 'foreignObject');\n foreignObject = this.setElementAttributes(options, foreignObject);\n return foreignObject;\n };\n /**\n * To create group element in SVG\n *\n * @param {BaseAttibutes} options - Options needed to create group\n * @returns {Element} It returns a appropriate element\n */\n SvgRenderer.prototype.createGroup = function (options) {\n var group = document.createElementNS(this.svgLink, 'g');\n group = this.setElementAttributes(options, group);\n return group;\n };\n /**\n * To create pattern in SVG\n *\n * @param {PatternAttributes} options - Required options to create pattern in SVG\n * @param {string} element - Specifies the name of the pattern\n * @returns {Element} It returns a appropriate element\n */\n SvgRenderer.prototype.createPattern = function (options, element) {\n var pattern = document.createElementNS(this.svgLink, element);\n pattern = this.setElementAttributes(options, pattern);\n return pattern;\n };\n /**\n * To create radial gradient in SVG\n *\n * @param {string[]} colors - Specifies the colors required to create radial gradient\n * @param {string} name - Specifies the name of the gradient\n * @param {RadialGradient} options - value for radial gradient\n * @returns {string} It returns color name\n */\n SvgRenderer.prototype.createRadialGradient = function (colors, name, options) {\n var colorName;\n if (!isNullOrUndefined(colors[0].colorStop)) {\n var newOptions = {\n 'id': this.rootId + '_' + name + 'radialGradient',\n 'cx': options.cx + '%',\n 'cy': options.cy + '%',\n 'r': options.r + '%',\n 'fx': options.fx + '%',\n 'fy': options.fy + '%'\n };\n this.drawGradient('radialGradient', newOptions, colors);\n colorName = 'url(#' + this.rootId + '_' + name + 'radialGradient)';\n }\n else {\n colorName = colors[0].color.toString();\n }\n return colorName;\n };\n /**\n * To create linear gradient in SVG\n *\n * @param {GradientColor[]} colors - Array of string specifies the values for color\n * @param {string} name - Specifies the name of the gradient\n * @param {LinearGradient} options - Specifies the options for gradient\n * @returns {string} It returns color name\n */\n SvgRenderer.prototype.createLinearGradient = function (colors, name, options) {\n var colorName;\n if (!isNullOrUndefined(colors[0].colorStop)) {\n var newOptions = {\n 'id': this.rootId + '_' + name + 'linearGradient',\n 'x1': options.x1 + '%',\n 'y1': options.y1 + '%',\n 'x2': options.x2 + '%',\n 'y2': options.y2 + '%'\n };\n this.drawGradient('linearGradient', newOptions, colors);\n colorName = 'url(#' + this.rootId + '_' + name + 'linearGradient)';\n }\n else {\n colorName = colors[0].color.toString();\n }\n return colorName;\n };\n /**\n * To render the gradient element in SVG\n *\n * @param {string} gradientType - Specifies the type of the gradient\n * @param {RadialGradient | LinearGradient} options - Options required to render a gradient\n * @param {string[]} colors - Array of string specifies the values for color\n * @returns {Element} It returns a appropriate element\n */\n SvgRenderer.prototype.drawGradient = function (gradientType, options, colors) {\n var defs = this.createDefs();\n var gradient = document.createElementNS(this.svgLink, gradientType);\n gradient = this.setElementAttributes(options, gradient);\n for (var i = 0; i < colors.length; i++) {\n var stop_1 = document.createElementNS(this.svgLink, 'stop');\n stop_1.setAttribute('offset', colors[i].colorStop);\n stop_1.setAttribute('stop-color', colors[i].color);\n stop_1.setAttribute('stop-opacity', colors[i].opacity ? (colors[i].opacity) : '1');\n if (!isNullOrUndefined(colors[i].style)) {\n stop_1.style.cssText = colors[i].style;\n }\n gradient.appendChild(stop_1);\n }\n defs.appendChild(gradient);\n return defs;\n };\n /**\n * To render a clip path\n *\n * @param {BaseAttibutes} options - Options required to render a clip path\n * @returns {Element} It returns a appropriate element\n */\n SvgRenderer.prototype.drawClipPath = function (options) {\n var defs = this.createDefs();\n var clipPath = this.createClipPath({ 'id': options.id });\n options.id = options.id + '_Rect';\n var rect = this.drawRectangle(options);\n clipPath.appendChild(rect);\n defs.appendChild(clipPath);\n return defs;\n };\n /**\n * To create circular clip path in SVG\n *\n * @param {CircleAttributes} options - Options required to create circular clip path\n * @returns {Element} It returns a appropriate element\n */\n SvgRenderer.prototype.drawCircularClipPath = function (options) {\n var defs = this.createDefs();\n var clipPath = this.createClipPath({ 'id': options.id });\n options.id = options.id + '_Circle';\n var circle = this.drawCircle(options);\n clipPath.appendChild(circle);\n defs.appendChild(clipPath);\n return defs;\n };\n /**\n * To set the attributes to the element\n *\n * @param {SVGCanvasAttributes} options - Attributes to set for the element\n * @param {Element} element - The element to which the attributes need to be set\n * @returns {Element} It returns a appropriate element\n */\n SvgRenderer.prototype.setElementAttributes = function (options, element) {\n var keys = Object.keys(options);\n for (var i = 0; i < keys.length; i++) {\n if (keys[i] === 'style') {\n element.style.cssText = options[keys[i]];\n }\n else {\n element.setAttribute(keys[i], options[keys[i]]);\n }\n }\n return element;\n };\n /**\n * To create a Html5 canvas element\n * Dummy method for using canvas/svg render in the same variable name in chart control\n */\n SvgRenderer.prototype.createCanvas = function () {\n return null;\n };\n return SvgRenderer;\n}());\nexport { SvgRenderer };\n","/* eslint-disable no-case-declarations */\n/* eslint-disable jsdoc/require-returns */\n/* eslint-disable valid-jsdoc */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * To import utils.\n */\nimport { isNullOrUndefined } from '@syncfusion/ej2-base';\n/**\n * @private\n */\nvar CanvasRenderer = /** @class */ (function () {\n /* End-Properties */\n function CanvasRenderer(rootID) {\n this.rootId = rootID;\n }\n // method to get the attributes value\n // tslint:disable-next-line:no-any\n CanvasRenderer.prototype.getOptionValue = function (options, key) {\n return options[key];\n };\n /* tslint:enable */\n /**\n * To create a Html5 canvas element\n *\n * @param {BaseAttibutes} options - Options to create canvas\n * @returns {HTMLCanvasElement} Creating a canvas\n */\n CanvasRenderer.prototype.createCanvas = function (options) {\n var canvasObj = document.createElement('canvas');\n canvasObj.setAttribute('id', this.rootId + '_canvas');\n this.ctx = canvasObj.getContext('2d');\n this.canvasObj = canvasObj;\n this.setCanvasSize(options.width, options.height);\n return this.canvasObj;\n };\n /**\n * To set the width and height for the Html5 canvas element\n *\n * @param {number} width - width of the canvas\n * @param {number} height - height of the canvas\n * @returns {void} Setting canvas size\n */\n CanvasRenderer.prototype.setCanvasSize = function (width, height) {\n var element = document.getElementById(this.rootId);\n var size = !isNullOrUndefined(element) ? element.getBoundingClientRect() : null;\n if (isNullOrUndefined(this.width)) {\n this.canvasObj.setAttribute('width', width ? width.toString() : size.width.toString());\n }\n else {\n this.canvasObj.setAttribute('width', this.width.toString());\n }\n if (isNullOrUndefined(this.height)) {\n this.canvasObj.setAttribute('height', height ? height.toString() : '450');\n }\n else {\n this.canvasObj.setAttribute('height', this.height.toString());\n }\n };\n // To set the values to the attributes\n CanvasRenderer.prototype.setAttributes = function (options) {\n this.ctx.lineWidth = this.getOptionValue(options, 'stroke-width');\n var dashArray = this.getOptionValue(options, 'stroke-dasharray');\n if (!isNullOrUndefined(dashArray)) {\n var dashArrayString = dashArray.split(',');\n this.ctx.setLineDash([parseInt(dashArrayString[0], 10), parseInt(dashArrayString[1], 10)]);\n }\n this.ctx.strokeStyle = this.getOptionValue(options, 'stroke');\n };\n /**\n * To draw a line\n *\n * @param {LineAttributes} options - required options to draw a line on the canvas\n * @returns {void} To draw a line\n */\n CanvasRenderer.prototype.drawLine = function (options) {\n this.ctx.save();\n this.ctx.beginPath();\n this.ctx.lineWidth = this.getOptionValue(options, 'stroke-width');\n this.ctx.strokeStyle = options.stroke;\n this.ctx.moveTo(options.x1, options.y1);\n this.ctx.lineTo(options.x2, options.y2);\n this.ctx.stroke();\n this.ctx.restore();\n };\n /**\n * To draw a rectangle\n *\n * @param {RectAttributes} options - required options to draw a rectangle on the canvas.\n * @param {Int32Array} canvasTranslate TO get a translate value of canvas.\n * @returns {void} To draw rectangle.\n */\n CanvasRenderer.prototype.drawRectangle = function (options, canvasTranslate) {\n var canvasCtx = this.ctx;\n var cornerRadius = options.rx;\n this.ctx.save();\n this.ctx.beginPath();\n if (canvasTranslate) {\n this.ctx.translate(canvasTranslate[0], canvasTranslate[1]);\n }\n this.ctx.globalAlpha = this.getOptionValue(options, 'opacity');\n this.setAttributes(options);\n this.ctx.rect(options.x, options.y, options.width, options.height);\n if (cornerRadius !== null && cornerRadius >= 0) {\n this.drawCornerRadius(options);\n }\n else {\n if (options.fill === 'none') {\n options.fill = 'transparent';\n }\n this.ctx.fillStyle = options.fill;\n this.ctx.fillRect(options.x, options.y, options.width, options.height);\n this.ctx.stroke();\n }\n this.ctx.restore();\n this.ctx = canvasCtx;\n return (this.canvasObj);\n };\n // To draw the corner of a rectangle\n CanvasRenderer.prototype.drawCornerRadius = function (options) {\n var cornerRadius = options.rx;\n var x = options.x;\n var y = options.y;\n var width = options.width;\n var height = options.height;\n if (options.fill === 'none') {\n options.fill = 'transparent';\n }\n this.ctx.fillStyle = options.fill;\n if (width < 2 * cornerRadius) {\n cornerRadius = width / 2;\n }\n if (height < 2 * cornerRadius) {\n cornerRadius = height / 2;\n }\n this.ctx.beginPath();\n this.ctx.moveTo(x + width - cornerRadius, y);\n this.ctx.arcTo(x + width, y, x + width, y + height, cornerRadius);\n this.ctx.arcTo(x + width, y + height, x, y + height, cornerRadius);\n this.ctx.arcTo(x, y + height, x, y, cornerRadius);\n this.ctx.arcTo(x, y, x + width, y, cornerRadius);\n this.ctx.closePath();\n this.ctx.fill();\n this.ctx.stroke();\n };\n /**\n * To draw a path on the canvas\n *\n * @param {PathAttributes} options - options needed to draw path.\n * @param {Int32Array} canvasTranslate - Array of numbers to translate the canvas.\n * @returns {Element} To draw a path.\n */\n CanvasRenderer.prototype.drawPath = function (options, canvasTranslate) {\n var path = options.d;\n var dataSplit = path.split(' ');\n var borderWidth = this.getOptionValue(options, 'stroke-width');\n var canvasCtx = this.ctx;\n var flag = true;\n this.ctx.save();\n this.ctx.beginPath();\n if (canvasTranslate) {\n this.ctx.translate(canvasTranslate[0], canvasTranslate[1]);\n }\n this.ctx.globalAlpha = options.opacity ? options.opacity : this.getOptionValue(options, 'fill-opacity');\n this.setAttributes(options);\n for (var i = 0; i < dataSplit.length; i = i + 3) {\n var x1 = parseFloat(dataSplit[i + 1]);\n var y1 = parseFloat(dataSplit[i + 2]);\n switch (dataSplit[i]) {\n case 'M':\n if (!options.innerR && !options.cx) {\n this.ctx.moveTo(x1, y1);\n }\n break;\n case 'L':\n if (!options.innerR) {\n this.ctx.lineTo(x1, y1);\n }\n break;\n case 'Q':\n var q1 = parseFloat(dataSplit[i + 3]);\n var q2 = parseFloat(dataSplit[i + 4]);\n this.ctx.quadraticCurveTo(x1, y1, q1, q2);\n i = i + 2;\n break;\n case 'C':\n var c1 = parseFloat(dataSplit[i + 3]);\n var c2 = parseFloat(dataSplit[i + 4]);\n var c3 = parseFloat(dataSplit[i + 5]);\n var c4 = parseFloat(dataSplit[i + 6]);\n this.ctx.bezierCurveTo(x1, y1, c1, c2, c3, c4);\n i = i + 4;\n break;\n case 'A':\n if (!options.innerR) {\n if (options.cx) {\n this.ctx.arc(options.cx, options.cy, options.radius, 0, 2 * Math.PI, options.counterClockWise);\n }\n else {\n this.ctx.moveTo(options.x, options.y);\n this.ctx.arc(options.x, options.y, options.radius, options.start, options.end, options.counterClockWise);\n this.ctx.lineTo(options.x, options.y);\n }\n }\n else if (flag) {\n this.ctx.arc(options.x, options.y, options.radius, options.start, options.end, options.counterClockWise);\n this.ctx.arc(options.x, options.y, options.innerR, options.end, options.start, !options.counterClockWise);\n flag = false;\n }\n i = i + 5;\n break;\n case 'z':\n case 'Z':\n this.ctx.closePath();\n //since for loop is incremented by 3, to get next value after 'z' i is decremented for 2.\n i = i - 2;\n break;\n }\n }\n if (options.fill !== 'none' && options.fill !== undefined) {\n this.ctx.fillStyle = options.fill;\n this.ctx.fill();\n }\n if (borderWidth > 0) {\n this.ctx.stroke();\n }\n this.ctx.restore();\n this.ctx = canvasCtx;\n return this.canvasObj;\n };\n /**\n * To draw a text\n *\n * @param {TextAttributes} options - options required to draw text\n * @param {string} label - Specifies the text which has to be drawn on the canvas\n * @param {number} transX - Specifies the text of translate X\n * @param {number} transY - Specifies the text of translate Y\n * @param {number} dy - Specifies the text of translate dy\n * @param {boolean} isTSpan - Specifies the boolean value of span value\n * @returns {void}\n */\n CanvasRenderer.prototype.createText = function (options, label, transX, transY, dy, isTSpan) {\n var fontWeight = this.getOptionValue(options, 'font-weight');\n if (!isNullOrUndefined(fontWeight) && fontWeight.toLowerCase() === 'regular') {\n fontWeight = 'normal';\n }\n var fontSize = this.getOptionValue(options, 'font-size');\n var fontFamily = this.getOptionValue(options, 'font-family');\n var fontStyle = this.getOptionValue(options, 'font-style').toLowerCase();\n var font = (fontStyle + ' ' + fontWeight + ' ' + fontSize + ' ' + fontFamily);\n var anchor = this.getOptionValue(options, 'text-anchor');\n var opacity = options.opacity !== undefined ? options.opacity : 1;\n if (anchor === 'middle') {\n anchor = 'center';\n }\n this.ctx.save();\n this.ctx.fillStyle = options.fill;\n this.ctx.font = font;\n this.ctx.textAlign = anchor;\n this.ctx.globalAlpha = opacity;\n if (options.baseline) {\n this.ctx.textBaseline = options.baseline;\n }\n if (!isTSpan) {\n var txtlngth = 0;\n this.ctx.translate(options.x + (txtlngth / 2) + (transX ? transX : 0), options.y + (transY ? transY : 0));\n this.ctx.rotate(options.labelRotation * Math.PI / 180);\n }\n this.ctx.fillText(label, isTSpan ? options.x : 0, isTSpan ? dy : 0);\n this.ctx.restore();\n return this.canvasObj;\n };\n /**\n * To draw circle on the canvas\n *\n * @param {CircleAttributes} options - required options to draw the circle\n * @param {Int32Array} canvasTranslate Translate value of canvas\n * @returns {void}\n */\n CanvasRenderer.prototype.drawCircle = function (options, canvasTranslate) {\n var canvasCtx = this.ctx;\n this.ctx.save();\n this.ctx.beginPath();\n this.ctx.arc(options.cx, options.cy, options.r, 0, 2 * Math.PI);\n this.ctx.fillStyle = options.fill;\n this.ctx.globalAlpha = options.opacity;\n this.ctx.fill();\n if (canvasTranslate) {\n this.ctx.translate(canvasTranslate[0], canvasTranslate[1]);\n }\n this.setAttributes(options);\n this.ctx.stroke();\n this.ctx.restore();\n this.ctx = canvasCtx;\n return this.canvasObj;\n };\n /**\n * To draw polyline\n *\n * @param {PolylineAttributes} options - options needed to draw polyline\n * @returns {void}\n */\n CanvasRenderer.prototype.drawPolyline = function (options) {\n this.ctx.save();\n this.ctx.beginPath();\n var points = options.points.split(' ');\n for (var i = 0; i < points.length - 1; i++) {\n var point = points[i].split(',');\n var x = parseFloat(point[0]);\n var y = parseFloat(point[1]);\n if (i === 0) {\n this.ctx.moveTo(x, y);\n }\n else {\n this.ctx.lineTo(x, y);\n }\n }\n this.ctx.lineWidth = this.getOptionValue(options, 'stroke-width');\n this.ctx.strokeStyle = options.stroke;\n this.ctx.stroke();\n this.ctx.restore();\n };\n /**\n * To draw an ellipse on the canvas\n *\n * @param {EllipseAttributes} options - options needed to draw ellipse\n * @param {Int32Array} canvasTranslate Translate value of canvas\n * @returns {void}\n */\n CanvasRenderer.prototype.drawEllipse = function (options, canvasTranslate) {\n var canvasCtx = this.ctx;\n var circumference = Math.max(options.rx, options.ry);\n var scaleX = options.rx / circumference;\n var scaleY = options.ry / circumference;\n this.ctx.save();\n this.ctx.beginPath();\n this.ctx.translate(options.cx, options.cy);\n if (canvasTranslate) {\n this.ctx.translate(canvasTranslate[0], canvasTranslate[1]);\n }\n this.ctx.save();\n this.ctx.scale(scaleX, scaleY);\n this.ctx.arc(0, 0, circumference, 0, 2 * Math.PI, false);\n this.ctx.fillStyle = options.fill;\n this.ctx.fill();\n this.ctx.restore();\n this.ctx.lineWidth = this.getOptionValue(options, 'stroke-width');\n this.ctx.strokeStyle = options.stroke;\n this.ctx.stroke();\n this.ctx.restore();\n this.ctx = canvasCtx;\n };\n /**\n * To draw an image\n *\n * @param {ImageAttributes} options - options required to draw an image on the canvas\n * @returns {void}\n */\n CanvasRenderer.prototype.drawImage = function (options) {\n this.ctx.save();\n var imageObj = new Image();\n if (!isNullOrUndefined(options.href)) {\n imageObj.src = options.href;\n this.ctx.drawImage(imageObj, options.x, options.y, options.width, options.height);\n }\n this.ctx.restore();\n };\n /**\n * To create a linear gradient\n *\n * @param {string[]} colors - Specifies the colors required to create linear gradient\n * @returns {string} It returns color\n */\n CanvasRenderer.prototype.createLinearGradient = function (colors) {\n var myGradient;\n if (!isNullOrUndefined(colors[0].colorStop)) {\n myGradient = this.ctx.createLinearGradient(0, 0, 0, this.canvasObj.height);\n }\n var color = this.setGradientValues(colors, myGradient);\n return color;\n };\n /**\n * To create a radial gradient\n *\n * @param {string[]} colors - Specifies the colors required to create linear gradient\n * @returns {string} It returns gradient color\n */\n CanvasRenderer.prototype.createRadialGradient = function (colors) {\n var myGradient;\n if (!isNullOrUndefined(colors[0].colorStop)) {\n myGradient = this.ctx.createRadialGradient(0, 0, 0, 0, 0, this.canvasObj.height);\n }\n var colorName = this.setGradientValues(colors, myGradient);\n return colorName;\n };\n // To set the gradient values\n CanvasRenderer.prototype.setGradientValues = function (colors, myGradient) {\n var colorName;\n if (!isNullOrUndefined(colors[0].colorStop)) {\n for (var i = 0; i <= colors.length - 1; i++) {\n var color = colors[i].color;\n var newColorStop = (colors[i].colorStop).slice(0, -1);\n var stopColor = parseInt(newColorStop, 10) / 100;\n myGradient.addColorStop(stopColor, color);\n }\n colorName = myGradient.toString();\n }\n else {\n colorName = colors[0].color.toString();\n }\n return colorName;\n };\n /**\n * To set the attributes to the element\n *\n * @param {SVGCanvasAttributes} options - Attributes to set for the element\n * @param {HTMLElement} element - The element to which the attributes need to be set\n * @returns {HTMLElement} It returns null value\n */\n CanvasRenderer.prototype.setElementAttributes = function (options, element) {\n var keys = Object.keys(options);\n var values = Object.keys(options).map(function (key) { return options[key]; });\n for (var i = 0; i < keys.length; i++) {\n element.setAttribute(keys[i], values[i]);\n }\n return null;\n };\n /**\n * To update the values of the canvas element attributes\n *\n * @param {SVGCanvasAttributes} options - Specifies the colors required to create gradient\n * @returns {void}\n */\n CanvasRenderer.prototype.updateCanvasAttributes = function (options) {\n this.setElementAttributes(options, this.canvasObj);\n var ctx = this.ctx;\n if (!isNullOrUndefined(this.dataUrl)) {\n var img_1 = new Image;\n img_1.onload = function () {\n ctx.drawImage(img_1, 0, 0);\n };\n img_1.src = this.dataUrl;\n }\n };\n /**\n * This method clears the given rectangle region\n *\n * @param {Rect} rect The rect parameter as passed\n */\n CanvasRenderer.prototype.clearRect = function (rect) {\n this.ctx.restore();\n this.ctx.clearRect(rect.x, rect.y, rect.width, rect.height);\n };\n /**\n * For canvas rendering in chart\n * Dummy method for using canvas/svg render in the same variable name in chart control\n */\n CanvasRenderer.prototype.createGroup = function () {\n return null;\n };\n /**\n * To render a clip path\n *\n * Dummy method for using canvas/svg render in the same variable name in chart control\n */\n CanvasRenderer.prototype.drawClipPath = function () {\n return null;\n };\n /**\n * To render a Circular clip path\n *\n * Dummy method for using canvas/svg render in the same variable name in chart control\n */\n CanvasRenderer.prototype.drawCircularClipPath = function () {\n return null;\n };\n /**\n * Clip method to perform clip in canvas mode\n *\n * @param {BaseAttibutes} options The canvas clip of options\n */\n CanvasRenderer.prototype.canvasClip = function (options) {\n this.ctx.save();\n this.ctx.fillStyle = 'transparent';\n this.ctx.rect(options.x, options.y, options.width, options.height);\n this.ctx.fill();\n this.ctx.clip();\n };\n /**\n * Tp restore the canvas\n */\n CanvasRenderer.prototype.canvasRestore = function () {\n this.ctx.restore();\n };\n /**\n * To draw a polygon\n * Dummy method for using canvas/svg render in the same variable name in chart control\n */\n CanvasRenderer.prototype.drawPolygon = function () {\n return null;\n };\n /**\n * To create defs element in SVG\n * Dummy method for using canvas/svg render in the same variable name in chart control\n *\n * @returns {Element} It returns null\n */\n CanvasRenderer.prototype.createDefs = function () {\n return null;\n };\n /**\n * To create clip path in SVG\n * Dummy method for using canvas/svg render in the same variable name in chart control\n */\n CanvasRenderer.prototype.createClipPath = function () {\n return null;\n };\n /**\n * To create a Html5 SVG element\n * Dummy method for using canvas/svg render in the same variable name in chart control\n *\n * @returns {Element} It returns null\n */\n CanvasRenderer.prototype.createSvg = function () {\n return null;\n };\n return CanvasRenderer;\n}());\nexport { CanvasRenderer };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { SvgRenderer } from '../svg-render/index';\nimport { createElement, remove, merge } from '@syncfusion/ej2-base';\n/**\n * Function to measure the height and width of the text.\n *\n * @private\n * @param {string} text To get a text\n * @param {FontModel} font To get a font of the text\n * @returns {Size} measureText\n */\nexport function measureText(text, font) {\n var breakText = text || ''; // For avoid NuLL value\n var htmlObject = document.getElementById('chartmeasuretext');\n if (htmlObject === null) {\n htmlObject = createElement('text', { id: 'chartmeasuretext' });\n document.body.appendChild(htmlObject);\n }\n if (typeof (text) === 'string' && (text.indexOf('<') > -1 || text.indexOf('>') > -1)) {\n var textArray = text.split(' ');\n for (var i = 0; i < textArray.length; i++) {\n if (textArray[i].indexOf('
      ') === -1) {\n textArray[i] = textArray[i].replace(/[<>]/g, '&');\n }\n }\n text = textArray.join(' ');\n }\n htmlObject.innerHTML = (breakText.indexOf('
      ') > -1 || breakText.indexOf('
      ') > -1) ? breakText : text;\n htmlObject.style.position = 'fixed';\n htmlObject.style.fontSize = font.size;\n htmlObject.style.fontWeight = font.fontWeight;\n htmlObject.style.fontStyle = font.fontStyle;\n htmlObject.style.fontFamily = font.fontFamily;\n htmlObject.style.visibility = 'hidden';\n htmlObject.style.top = '-100';\n htmlObject.style.left = '0';\n htmlObject.style.whiteSpace = 'nowrap';\n // For bootstrap line height issue\n htmlObject.style.lineHeight = 'normal';\n return new Size(htmlObject.clientWidth, htmlObject.clientHeight);\n}\n/** @private */\nexport function withInAreaBounds(x, y, areaBounds, width, height) {\n if (width === void 0) { width = 0; }\n if (height === void 0) { height = 0; }\n return (x >= areaBounds.x - width && x <= areaBounds.x + areaBounds.width + width && y >= areaBounds.y - height\n && y <= areaBounds.y + areaBounds.height + height);\n}\n/** @private */\nexport function findDirection(rX, rY, rect, arrowLocation, arrowPadding, top, bottom, left, tipX, tipY, controlName) {\n if (controlName === void 0) { controlName = ''; }\n var direction = '';\n var startX = rect.x;\n var startY = rect.y;\n var width = rect.x + rect.width;\n var height = rect.y + rect.height;\n if (top) {\n direction = direction.concat('M' + ' ' + (startX) + ' ' + (startY + rY) + ' Q ' + startX + ' '\n + startY + ' ' + (startX + rX) + ' ' + startY + ' ' +\n ' L' + ' ' + (width - rX) + ' ' + (startY) + ' Q ' + width + ' '\n + startY + ' ' + (width) + ' ' + (startY + rY));\n direction = direction.concat(' L' + ' ' + (width) + ' ' + (height - rY) + ' Q ' + width + ' '\n + (height) + ' ' + (width - rX) + ' ' + (height));\n if (arrowPadding !== 0) {\n if (controlName === 'RangeNavigator') {\n if ((arrowLocation.x - arrowPadding) > width / 2) {\n direction = direction.concat(' L' + ' ' + (arrowLocation.x + arrowPadding) + ' ' + (height));\n direction = direction.concat(' L' + ' ' + (tipX + arrowPadding) + ' ' + (height + arrowPadding)\n + ' L' + ' ' + (arrowLocation.x) + ' ' + height);\n }\n else {\n direction = direction.concat(' L' + ' ' + (arrowLocation.x) + ' ' + (height));\n direction = direction.concat(' L' + ' ' + (tipX - arrowPadding) + ' ' + (height + arrowPadding)\n + ' L' + ' ' + (arrowLocation.x - arrowPadding) + ' ' + height);\n }\n }\n else {\n direction = direction.concat(' L' + ' ' + (arrowLocation.x + arrowPadding) + ' ' + (height));\n direction = direction.concat(' L' + ' ' + (tipX) + ' ' + (height + arrowPadding)\n + ' L' + ' ' + (arrowLocation.x - arrowPadding) + ' ' + height);\n }\n }\n if ((arrowLocation.x - arrowPadding) > startX) {\n direction = direction.concat(' L' + ' ' + (startX + rX) + ' ' + height + ' Q ' + startX + ' '\n + height + ' ' + (startX) + ' ' + (height - rY) + ' z');\n }\n else {\n if (arrowPadding === 0) {\n direction = direction.concat(' L' + ' ' + (startX + rX) + ' ' + height + ' Q ' + startX + ' '\n + height + ' ' + (startX) + ' ' + (height - rY) + ' z');\n }\n else {\n direction = direction.concat(' L' + ' ' + (startX) + ' ' + (height + rY) + ' z');\n }\n }\n }\n else if (bottom) {\n direction = direction.concat('M' + ' ' + (startX) + ' ' + (startY + rY) + ' Q ' + startX + ' '\n + (startY) + ' ' + (startX + rX) + ' ' + (startY) + ' L' + ' ' + (arrowLocation.x - arrowPadding) + ' ' + (startY));\n direction = direction.concat(' L' + ' ' + (tipX) + ' ' + (arrowLocation.y));\n direction = direction.concat(' L' + ' ' + (arrowLocation.x + arrowPadding) + ' ' + (startY));\n direction = direction.concat(' L' + ' ' + (width - rX) + ' ' + (startY)\n + ' Q ' + (width) + ' ' + (startY) + ' ' + (width) + ' ' + (startY + rY));\n direction = direction.concat(' L' + ' ' + (width) + ' ' + (height - rY) + ' Q ' + (width) + ' '\n + (height) + ' ' + (width - rX) + ' ' + (height) +\n ' L' + ' ' + (startX + rX) + ' ' + (height) + ' Q ' + (startX) + ' '\n + (height) + ' ' + (startX) + ' ' + (height - rY) + ' z');\n }\n else if (left) {\n direction = direction.concat('M' + ' ' + (startX) + ' ' + (startY + rY) + ' Q ' + startX + ' '\n + (startY) + ' ' + (startX + rX) + ' ' + (startY));\n direction = direction.concat(' L' + ' ' + (width - rX) + ' ' + (startY) + ' Q ' + (width) + ' '\n + (startY) + ' ' + (width) + ' ' + (startY + rY) + ' L' + ' ' + (width) + ' ' + (arrowLocation.y - arrowPadding));\n direction = (controlName === 'RangeNavigator') ? direction.concat(' L' + ' ' + (width + arrowPadding) + ' ' + (tipY - arrowPadding)) :\n direction.concat(' L' + ' ' + (width + arrowPadding) + ' ' + (tipY));\n direction = (controlName === 'RangeNavigator') ? direction.concat(' L' + ' ' + (width) + ' ' + (arrowLocation.y)) :\n direction.concat(' L' + ' ' + (width) + ' ' + (arrowLocation.y + arrowPadding));\n direction = direction.concat(' L' + ' ' + (width) + ' ' + (height - rY) + ' Q ' + width + ' ' + (height) + ' ' + (width - rX) + ' ' + (height));\n direction = direction.concat(' L' + ' ' + (startX + rX) + ' ' + (height) + ' Q ' + startX + ' '\n + (height) + ' ' + (startX) + ' ' + (height - rY) + ' z');\n }\n else {\n direction = direction.concat('M' + ' ' + (startX + rX) + ' ' + (startY) + ' Q ' + (startX) + ' '\n + (startY) + ' ' + (startX) + ' ' + (startY + rY) + ' L' + ' ' + (startX) + ' ' + (arrowLocation.y - arrowPadding));\n direction = (controlName === 'RangeNavigator') ? direction.concat(' L' + ' ' + (startX - arrowPadding) + ' ' + (tipY - arrowPadding)) :\n direction.concat(' L' + ' ' + (startX - arrowPadding) + ' ' + (tipY));\n direction = (controlName === 'RangeNavigator') ? direction.concat(' L' + ' ' + (startX) + ' ' + (arrowLocation.y)) :\n direction.concat(' L' + ' ' + (startX) + ' ' + (arrowLocation.y + arrowPadding));\n direction = direction.concat(' L' + ' ' + (startX) + ' ' + (height - rY) + ' Q ' + startX + ' '\n + (height) + ' ' + (startX + rX) + ' ' + (height));\n direction = direction.concat(' L' + ' ' + (width - rX) + ' ' + (height) + ' Q ' + width + ' '\n + (height) + ' ' + (width) + ' ' + (height - rY) +\n ' L' + ' ' + (width) + ' ' + (startY + rY) + ' Q ' + width + ' '\n + (startY) + ' ' + (width - rX) + ' ' + (startY) + ' z');\n }\n return direction;\n}\n/** @private */\nvar Size = /** @class */ (function () {\n function Size(width, height) {\n this.width = width;\n this.height = height;\n }\n return Size;\n}());\nexport { Size };\n/** @private */\nvar Rect = /** @class */ (function () {\n function Rect(x, y, width, height) {\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n }\n return Rect;\n}());\nexport { Rect };\nvar Side = /** @class */ (function () {\n function Side(bottom, right) {\n this.isRight = right;\n this.isBottom = bottom;\n }\n return Side;\n}());\nexport { Side };\n/** @private */\nvar CustomizeOption = /** @class */ (function () {\n function CustomizeOption(id) {\n this.id = id;\n }\n return CustomizeOption;\n}());\nexport { CustomizeOption };\n/** @private */\nvar TextOption = /** @class */ (function (_super) {\n __extends(TextOption, _super);\n function TextOption(id, x, y, anchor, text, transform, baseLine, labelRotation) {\n if (transform === void 0) { transform = ''; }\n var _this = _super.call(this, id) || this;\n _this.transform = '';\n _this.baseLine = 'auto';\n _this.labelRotation = 0;\n _this.x = x;\n _this.y = y;\n _this.anchor = anchor;\n _this.text = text;\n _this.transform = transform;\n _this.baseLine = baseLine;\n _this.labelRotation = labelRotation;\n return _this;\n }\n return TextOption;\n}(CustomizeOption));\nexport { TextOption };\n/** @private */\nexport function getElement(id) {\n return document.getElementById(id);\n}\n/** @private */\nexport function removeElement(id) {\n var element = getElement(id);\n if (element) {\n remove(element);\n }\n}\n/** @private */\nexport function drawSymbol(location, shape, size, url, options, label) {\n var renderer = new SvgRenderer('');\n var temp = calculateShapes(location, size, shape, options, url);\n var htmlObject = renderer['draw' + temp.functionName](temp.renderOption);\n htmlObject.setAttribute('aria-label', label);\n return htmlObject;\n}\n/** @private */\nexport function calculateShapes(location, size, shape, options, url) {\n var path;\n var functionName = 'Path';\n var width = size.width;\n var height = size.height;\n var locX = location.x;\n var locY = location.y;\n var x = location.x + (-width / 2);\n var y = location.y + (-height / 2);\n switch (shape) {\n case 'Circle':\n case 'Bubble':\n functionName = 'Ellipse';\n merge(options, { 'rx': width / 2, 'ry': height / 2, 'cx': locX, 'cy': locY });\n break;\n case 'Cross':\n path = 'M' + ' ' + x + ' ' + locY + ' ' + 'L' + ' ' + (locX + (width / 2)) + ' ' + locY + ' ' +\n 'M' + ' ' + locX + ' ' + (locY + (height / 2)) + ' ' + 'L' + ' ' + locX + ' ' +\n (locY + (-height / 2));\n merge(options, { 'd': path });\n break;\n case 'HorizontalLine':\n path = 'M' + ' ' + x + ' ' + locY + ' ' + 'L' + ' ' + (locX + (width / 2)) + ' ' + locY;\n merge(options, { 'd': path });\n break;\n case 'VerticalLine':\n path = 'M' + ' ' + locX + ' ' + (locY + (height / 2)) + ' ' + 'L' + ' ' + locX + ' ' + (locY + (-height / 2));\n merge(options, { 'd': path });\n break;\n case 'Diamond':\n path = 'M' + ' ' + x + ' ' + locY + ' ' +\n 'L' + ' ' + locX + ' ' + (locY + (-height / 2)) + ' ' +\n 'L' + ' ' + (locX + (width / 2)) + ' ' + locY + ' ' +\n 'L' + ' ' + locX + ' ' + (locY + (height / 2)) + ' ' +\n 'L' + ' ' + x + ' ' + locY + ' z';\n merge(options, { 'd': path });\n break;\n case 'Rectangle':\n path = 'M' + ' ' + x + ' ' + (locY + (-height / 2)) + ' ' +\n 'L' + ' ' + (locX + (width / 2)) + ' ' + (locY + (-height / 2)) + ' ' +\n 'L' + ' ' + (locX + (width / 2)) + ' ' + (locY + (height / 2)) + ' ' +\n 'L' + ' ' + x + ' ' + (locY + (height / 2)) + ' ' +\n 'L' + ' ' + x + ' ' + (locY + (-height / 2)) + ' z';\n merge(options, { 'd': path });\n break;\n case 'Triangle':\n path = 'M' + ' ' + x + ' ' + (locY + (height / 2)) + ' ' +\n 'L' + ' ' + locX + ' ' + (locY + (-height / 2)) + ' ' +\n 'L' + ' ' + (locX + (width / 2)) + ' ' + (locY + (height / 2)) + ' ' +\n 'L' + ' ' + x + ' ' + (locY + (height / 2)) + ' z';\n merge(options, { 'd': path });\n break;\n case 'InvertedTriangle':\n path = 'M' + ' ' + (locX + (width / 2)) + ' ' + (locY - (height / 2)) + ' ' +\n 'L' + ' ' + locX + ' ' + (locY + (height / 2)) + ' ' +\n 'L' + ' ' + (locX - (width / 2)) + ' ' + (locY - (height / 2)) + ' ' +\n 'L' + ' ' + (locX + (width / 2)) + ' ' + (locY - (height / 2)) + ' z';\n merge(options, { 'd': path });\n break;\n case 'Pentagon':\n var eq = 72;\n var xValue = void 0;\n var yValue = void 0;\n for (var i = 0; i <= 5; i++) {\n xValue = (width / 2) * Math.cos((Math.PI / 180) * (i * eq));\n yValue = (height / 2) * Math.sin((Math.PI / 180) * (i * eq));\n if (i === 0) {\n path = 'M' + ' ' + (locX + xValue) + ' ' + (locY + yValue) + ' ';\n }\n else {\n path = path.concat('L' + ' ' + (locX + xValue) + ' ' + (locY + yValue) + ' ');\n }\n }\n path = path.concat('Z');\n merge(options, { 'd': path });\n break;\n case 'Image':\n functionName = 'Image';\n merge(options, { 'href': url, 'height': height, 'width': width, x: x, y: y });\n break;\n }\n return { renderOption: options, functionName: functionName };\n}\n/** @private */\nvar PathOption = /** @class */ (function (_super) {\n __extends(PathOption, _super);\n function PathOption(id, fill, width, color, opacity, dashArray, d) {\n var _this = _super.call(this, id) || this;\n _this.opacity = opacity;\n _this.fill = fill;\n _this.stroke = color;\n _this['stroke-width'] = width;\n _this['stroke-dasharray'] = dashArray;\n _this.d = d;\n return _this;\n }\n return PathOption;\n}(CustomizeOption));\nexport { PathOption };\n/** @private */\nexport function textElement(options, font, color, parent) {\n var renderOptions = {};\n var renderer = new SvgRenderer('');\n renderOptions = {\n 'id': options.id,\n 'x': options.x,\n 'y': options.y,\n 'fill': color,\n 'font-size': font.size,\n 'font-style': font.fontStyle,\n 'font-family': font.fontFamily,\n 'font-weight': font.fontWeight,\n 'text-anchor': options.anchor,\n 'transform': options.transform,\n 'opacity': font.opacity,\n 'dominant-baseline': options.baseLine\n };\n var text = typeof options.text === 'string' ? options.text : options.text[0];\n var htmlObject = renderer.createText(renderOptions, text);\n htmlObject.style.fontFamily = font.fontFamily;\n htmlObject.style.fontStyle = font.fontStyle;\n htmlObject.style.fontSize = font.size;\n htmlObject.style.fontWeight = font.fontWeight;\n htmlObject.style.color = font.color;\n parent.appendChild(htmlObject);\n return htmlObject;\n}\nvar TooltipLocation = /** @class */ (function () {\n function TooltipLocation(x, y) {\n this.x = x;\n this.y = y;\n }\n return TooltipLocation;\n}());\nexport { TooltipLocation };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/* eslint-disable no-useless-escape */\n/* eslint-disable security/detect-non-literal-regexp */\n/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable jsdoc/require-param */\n/* eslint-disable jsdoc/require-returns */\n/* eslint-disable valid-jsdoc */\nimport { NotifyPropertyChanges, Property, Event, Complex, updateBlazorTemplate } from '@syncfusion/ej2-base';\nimport { extend, compile as templateComplier, Component, resetBlazorTemplate, isBlazor, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { SvgRenderer } from '../svg-render/index';\nimport { ChildProperty, createElement, remove, Browser, Animation } from '@syncfusion/ej2-base';\nimport { getTooltipThemeColor } from './interface';\nimport { Size, Rect, Side, measureText, getElement, findDirection, drawSymbol, textElement } from './helper';\nimport { removeElement, TextOption, TooltipLocation, PathOption, withInAreaBounds } from './helper';\n/**\n * Configures the fonts in charts.\n *\n * @private\n */\nvar TextStyle = /** @class */ (function (_super) {\n __extends(TextStyle, _super);\n function TextStyle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(null)\n ], TextStyle.prototype, \"size\", void 0);\n __decorate([\n Property('')\n ], TextStyle.prototype, \"color\", void 0);\n __decorate([\n Property('Segoe UI')\n ], TextStyle.prototype, \"fontFamily\", void 0);\n __decorate([\n Property('Normal')\n ], TextStyle.prototype, \"fontWeight\", void 0);\n __decorate([\n Property('Normal')\n ], TextStyle.prototype, \"fontStyle\", void 0);\n __decorate([\n Property(1)\n ], TextStyle.prototype, \"opacity\", void 0);\n return TextStyle;\n}(ChildProperty));\nexport { TextStyle };\n/**\n * Configures the borders in the chart.\n *\n * @private\n */\nvar TooltipBorder = /** @class */ (function (_super) {\n __extends(TooltipBorder, _super);\n function TooltipBorder() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], TooltipBorder.prototype, \"color\", void 0);\n __decorate([\n Property(1)\n ], TooltipBorder.prototype, \"width\", void 0);\n __decorate([\n Property('')\n ], TooltipBorder.prototype, \"dashArray\", void 0);\n return TooltipBorder;\n}(ChildProperty));\nexport { TooltipBorder };\n/**\n * Configures the borders in the chart.\n *\n * @private\n */\nvar AreaBounds = /** @class */ (function (_super) {\n __extends(AreaBounds, _super);\n function AreaBounds() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(0)\n ], AreaBounds.prototype, \"x\", void 0);\n __decorate([\n Property(0)\n ], AreaBounds.prototype, \"y\", void 0);\n __decorate([\n Property(0)\n ], AreaBounds.prototype, \"width\", void 0);\n __decorate([\n Property(0)\n ], AreaBounds.prototype, \"height\", void 0);\n return AreaBounds;\n}(ChildProperty));\nexport { AreaBounds };\n/**\n * Configures the borders in the chart.\n *\n * @private\n */\nvar ToolLocation = /** @class */ (function (_super) {\n __extends(ToolLocation, _super);\n function ToolLocation() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(0)\n ], ToolLocation.prototype, \"x\", void 0);\n __decorate([\n Property(0)\n ], ToolLocation.prototype, \"y\", void 0);\n return ToolLocation;\n}(ChildProperty));\nexport { ToolLocation };\n/**\n * Represents the Tooltip control.\n * ```html\n *
      \n * \n * ```\n *\n * @private\n */\nvar Tooltip = /** @class */ (function (_super) {\n __extends(Tooltip, _super);\n /**\n * Constructor for creating the widget\n *\n * @hidden\n */\n function Tooltip(options, element) {\n return _super.call(this, options, element) || this;\n }\n /**\n * Initialize the event handler.\n *\n * @private\n */\n Tooltip.prototype.preRender = function () {\n this.allowServerDataBinding = false;\n this.initPrivateVariable();\n if (!this.isCanvas) {\n this.removeSVG();\n }\n this.createTooltipElement();\n };\n Tooltip.prototype.initPrivateVariable = function () {\n this.renderer = new SvgRenderer(this.element.id);\n this.themeStyle = getTooltipThemeColor(this.theme);\n this.formattedText = [];\n this.padding = 5;\n this.highlightPadding = 3;\n this.areaMargin = 10;\n this.isFirst = true;\n this.markerPoint = [];\n };\n Tooltip.prototype.removeSVG = function () {\n var svgObject = document.getElementById(this.element.id + '_svg');\n var templateObject = document.getElementById(this.element.id + 'parent_template');\n if (this.blazorTemplate) {\n resetBlazorTemplate(this.element.id + 'parent_template' + '_blazorTemplate');\n }\n if (svgObject && svgObject.parentNode) {\n remove(svgObject);\n }\n if (templateObject && templateObject.parentNode) {\n remove(templateObject);\n }\n };\n /**\n * To Initialize the control rendering.\n */\n Tooltip.prototype.render = function () {\n this.fadeOuted = false;\n if (!this.template) {\n this.renderText(this.isFirst);\n var argsData = {\n cancel: false, name: 'tooltipRender', tooltip: this\n };\n this.trigger('tooltipRender', argsData);\n var markerSide = this.renderTooltipElement(this.areaBounds, this.location);\n this.drawMarker(markerSide.isBottom, markerSide.isRight, this.markerSize);\n }\n else {\n this.updateTemplateFn();\n this.createTemplate(this.areaBounds, this.location);\n }\n this.trigger('loaded', { tooltip: this });\n var element = document.getElementById('chartmeasuretext');\n if (element) {\n remove(element);\n }\n this.allowServerDataBinding = true;\n };\n Tooltip.prototype.createTooltipElement = function () {\n this.textElements = [];\n if (!this.template || this.shared) {\n // SVG element for tooltip\n if (this.enableRTL) {\n this.element.setAttribute('dir', 'ltr');\n }\n var svgObject = this.renderer.createSvg({ id: this.element.id + '_svg' });\n this.element.appendChild(svgObject);\n // Group to hold text and path.\n var groupElement = document.getElementById(this.element.id + '_group');\n if (!groupElement) {\n groupElement = this.renderer.createGroup({ id: this.element.id + '_group' });\n groupElement.setAttribute('transform', 'translate(0,0)');\n }\n svgObject.appendChild(groupElement);\n var pathElement = this.renderer.drawPath({\n 'id': this.element.id + '_path', 'stroke-width': this.border.width,\n 'fill': this.fill || this.themeStyle.tooltipFill, 'opacity': ((this.theme === 'TailwindDark' || this.theme === 'Tailwind' || this.theme === 'Bootstrap5' || this.theme === 'Bootstrap5Dark') && this.opacity === 0.75) ?\n 1 : this.opacity,\n 'stroke': this.border.color\n });\n groupElement.appendChild(pathElement);\n }\n };\n Tooltip.prototype.drawMarker = function (isBottom, isRight, size) {\n if (this.shapes.length <= 0) {\n return null;\n }\n var shapeOption;\n var count = 0;\n var markerGroup = this.renderer.createGroup({ id: this.element.id + '_trackball_group' });\n var groupElement = getElement(this.element.id + '_group');\n var x = ((this.enableRTL) ? this.elementSize.width - (size / 2) :\n (this.marginX * 2) + (size / 2)) + (isRight ? this.arrowPadding : 0);\n for (var _i = 0, _a = this.shapes; _i < _a.length; _i++) {\n var shape = _a[_i];\n if (shape !== 'None') {\n shapeOption = new PathOption(this.element.id + '_Trackball_' + count, this.palette[count], 1, '#cccccc', 1, null);\n if (this.markerPoint[count]) {\n var padding = 0;\n if (this.header.indexOf(' -1) {\n padding = this.header.split(//g).length + count;\n }\n markerGroup.appendChild(drawSymbol(new TooltipLocation(x, this.markerPoint[count] - this.padding + (isBottom ? this.arrowPadding : padding)), shape, new Size(size, size), '', shapeOption, null));\n }\n count++;\n }\n }\n groupElement.appendChild(markerGroup);\n };\n Tooltip.prototype.renderTooltipElement = function (areaBounds, location) {\n var tooltipDiv = getElement(this.element.id);\n var arrowLocation = new TooltipLocation(0, 0);\n var tipLocation = new TooltipLocation(0, 0);\n var svgObject = getElement(this.element.id + '_svg');\n var groupElement = getElement(this.element.id + '_group');\n var pathElement = getElement(this.element.id + '_path');\n var rect;\n var isTop = false;\n var isLeft = false;\n var isBottom = false;\n var x = 0;\n var y = 0;\n if (this.header !== '') {\n this.elementSize.height += this.marginY;\n }\n if (this.content.length > 1) {\n rect = this.sharedTooltipLocation(areaBounds, this.location.x, this.location.y);\n isTop = true;\n }\n else {\n rect = this.tooltipLocation(areaBounds, location, arrowLocation, tipLocation);\n if (!this.inverted) {\n isTop = (rect.y < (location.y + this.clipBounds.y));\n isBottom = !isTop;\n y = (isTop ? 0 : this.arrowPadding);\n }\n else {\n isLeft = (rect.x < (location.x + this.clipBounds.x));\n x = (isLeft ? 0 : this.arrowPadding);\n if (this.allowHighlight) {\n rect.x += isLeft ? this.highlightPadding : -(2 * this.highlightPadding);\n }\n }\n }\n if (this.header !== '') {\n var wrapPadding = 2;\n var padding = 0;\n var wrapHeader = this.isWrap ? this.wrappedText : this.header;\n if (this.isWrap && typeof (wrapHeader) === 'string' && (wrapHeader.indexOf('<') > -1 || wrapHeader.indexOf('>') > -1)) {\n var textArray = wrapHeader.split('
      ');\n wrapPadding = textArray.length;\n }\n if (this.header.indexOf(' -1) {\n padding = 5 * (this.header.split(//g).length - 1);\n }\n var headerSize = measureText(this.isWrap ? this.wrappedText : this.header, this.textStyle).height +\n (this.marginY * wrapPadding) + (isBottom ? this.arrowPadding : 0) + (this.isWrap ? 5 : padding); //header padding;\n var xLength = (this.marginX * 3) + (!isLeft && !isTop && !isBottom ? this.arrowPadding : 0);\n var direction = 'M ' + xLength + ' ' + headerSize +\n 'L ' + (rect.width + (!isLeft && !isTop && !isBottom ? this.arrowPadding : 0) - (this.marginX * 2)) +\n ' ' + headerSize;\n var pathElement_1 = this.renderer.drawPath({\n 'id': this.element.id + '_header_path', 'stroke-width': 1,\n 'fill': null, 'opacity': 0.8, 'stroke': this.themeStyle.tooltipHeaderLine, 'd': direction\n });\n groupElement.appendChild(pathElement_1);\n }\n var start = this.border.width / 2;\n var pointRect = new Rect(start + x, start + y, rect.width - start, rect.height - start);\n groupElement.setAttribute('opacity', '1');\n if (this.enableAnimation && !this.isFirst && !this.crosshair) {\n this.animateTooltipDiv(tooltipDiv, rect);\n }\n else {\n this.updateDiv(tooltipDiv, rect.x, rect.y);\n }\n // eslint-disable-next-line no-extra-boolean-cast\n svgObject.setAttribute('height', (rect.height + this.border.width + (!((!this.inverted)) ? 0 : this.arrowPadding) + 5).toString());\n svgObject.setAttribute('width', (rect.width + this.border.width + (((!this.inverted)) ? 0 : this.arrowPadding) + 5).toString());\n svgObject.setAttribute('opacity', '1');\n if (!isNullOrUndefined(this.tooltipPlacement)) {\n isTop = this.tooltipPlacement.indexOf('Top') > -1;\n isBottom = this.tooltipPlacement.indexOf('Bottom') > -1;\n isLeft = this.tooltipPlacement.indexOf('Left') > -1;\n }\n pathElement.setAttribute('d', findDirection(this.rx, this.ry, pointRect, arrowLocation, this.arrowPadding, isTop, isBottom, isLeft, tipLocation.x, tipLocation.y, this.controlName));\n if (this.enableShadow && this.theme !== 'Bootstrap4') {\n // To fix next chart initial tooltip opacity issue in tab control\n var shadowId = this.element.id + '_shadow';\n if (this.theme === 'Tailwind' || this.theme === 'TailwindDark'\n || this.theme === 'Bootstrap5' || this.theme === 'Bootstrap5Dark') {\n pathElement.setAttribute('box-shadow', '0px 1px 2px rgba(0, 0, 0, 0.06), 0px 1px 3px rgba(0, 0, 0, 0.1)');\n }\n else {\n pathElement.setAttribute('filter', Browser.isIE ? '' : 'url(#' + shadowId + ')');\n }\n var shadow = '';\n shadow += '';\n shadow += '';\n var defElement = this.renderer.createDefs();\n defElement.setAttribute('id', this.element.id + 'SVG_tooltip_definition');\n groupElement.appendChild(defElement);\n defElement.innerHTML = shadow;\n }\n var borderColor = this.theme === 'Fluent' ? '#FFFFFF' : this.theme === 'FluentDark' ? '#323130' : this.border.color;\n pathElement.setAttribute('stroke', borderColor);\n if (!isNullOrUndefined(this.border.dashArray)) {\n pathElement.setAttribute('stroke-dasharray', this.border.dashArray);\n }\n this.changeText(new TooltipLocation(x, y), isBottom, !isLeft && !isTop && !isBottom);\n if (this.revert) {\n this.inverted = !this.inverted;\n this.revert = false;\n }\n return new Side(isBottom, !isLeft && !isTop && !isBottom);\n };\n Tooltip.prototype.changeText = function (point, isBottom, isRight) {\n var element = document.getElementById(this.element.id + '_text');\n if (isBottom) {\n element.setAttribute('transform', 'translate(0,' + this.arrowPadding + ')');\n }\n if (isRight) {\n element.setAttribute('transform', 'translate(' + this.arrowPadding + ' 0)');\n }\n };\n Tooltip.prototype.findFormattedText = function () {\n this.formattedText = [];\n if (this.header.replace(//g, '').replace(/<\\/b>/g, '').trim() !== '') {\n this.formattedText = this.formattedText.concat(this.header);\n }\n this.formattedText = this.formattedText.concat(this.content);\n };\n // tslint:disable-next-line:max-func-body-length\n Tooltip.prototype.renderText = function (isRender) {\n var height = 0;\n var width = 0; // Padding for text;\n var subWidth = 0;\n var lines;\n var key = 'properties';\n var font = extend({}, this.textStyle, null, true)[key];\n var groupElement = getElement(this.element.id + '_group');\n var tspanElement;\n var textCollection;\n var tspanStyle = '';\n var line;\n var tspanOption;\n this.findFormattedText();\n this.isWrap = false;\n var isRtlEnabled = document.body.getAttribute('dir') === 'rtl';\n var anchor = isRtlEnabled && !this.enableRTL ? 'end' : 'start';\n this.leftSpace = this.areaBounds.x + this.location.x;\n this.rightSpace = (this.areaBounds.x + this.areaBounds.width) - this.leftSpace;\n var headerContent = this.header.replace(//g, '').replace(/<\\/b>/g, '').trim();\n var isBoldTag = this.header.indexOf('') > -1 && this.header.indexOf('') > -1;\n var headerWidth = measureText(this.formattedText[0], font).width + (2 * this.marginX) + this.arrowPadding;\n var isLeftSpace = (this.location.x - headerWidth) < this.location.x;\n var isRightSpace = (this.areaBounds.x + this.areaBounds.width) < (this.location.x + headerWidth);\n var header;\n var headerSpace = (headerContent !== '') ? this.marginY : 0;\n var isRow = true;\n var isColumn = true;\n this.markerPoint = [];\n var markerSize = (this.shapes.length > 0) ? 10 : 0;\n var markerPadding = (this.shapes.length > 0) ? 5 : 0;\n var spaceWidth = 4;\n var subStringLength;\n var fontSize = '13px';\n var fontWeight = 'Normal';\n var labelColor = this.themeStyle.tooltipLightLabel;\n var dy = (22 / parseFloat(fontSize)) * (parseFloat(font.size));\n var contentWidth = [];\n if (!isRender || this.isCanvas) {\n removeElement(this.element.id + '_text');\n removeElement(this.element.id + '_header_path');\n removeElement(this.element.id + '_trackball_group');\n removeElement(this.element.id + 'SVG_tooltip_definition');\n }\n var options = new TextOption(this.element.id + '_text', this.marginX * 2, (this.marginY * 2 + this.padding * 2 + (this.marginY === 2 ? 3 : 0)), anchor, '');\n var parentElement = textElement(options, font, null, groupElement);\n var withoutHeader = this.formattedText.length === 1 && this.formattedText[0].indexOf(' : ') > -1;\n var isHeader = this.header !== '';\n var size = isHeader && isBoldTag ? 16 : 13;\n for (var k = 0, pointsLength = this.formattedText.length; k < pointsLength; k++) {\n textCollection = this.formattedText[k].replace(/<(b|strong)>/g, '')\n .replace(/<\\/(b|strong)>/g, '')\n .split(//g);\n if (this.isTextWrap && this.header !== this.formattedText[k] && this.formattedText[k].indexOf(' this.rightSpace ? (this.leftSpace / size) : (this.rightSpace / size));\n textCollection = this.formattedText[k].match(new RegExp('.{1,' + subStringLength + '}', 'g'));\n }\n if (k === 0 && !withoutHeader && this.isTextWrap &&\n (this.leftSpace < headerWidth || isLeftSpace) &&\n (this.rightSpace < headerWidth || isRightSpace)) {\n subStringLength = Math.round(this.leftSpace > this.rightSpace ? (this.leftSpace / size) : (this.rightSpace / size));\n header = headerContent !== '' ? headerContent : this.formattedText[k];\n textCollection = header.match(new RegExp('.{1,' + subStringLength + '}', 'g'));\n this.wrappedText = isBoldTag ? '' + textCollection.join('
      ') + '
      ' : textCollection.join('
      ');\n this.isWrap = textCollection.length > 1;\n }\n if (textCollection[0] === '') {\n continue;\n }\n if ((k !== 0) || (headerContent === '')) {\n this.markerPoint.push((headerContent !== '' ? (this.marginY) : 0) + options.y + height);\n }\n for (var i = 0, len = textCollection.length; i < len; i++) { // string value of unicode for LTR is \\u200E\n lines = textCollection[i].replace(//g, '
      ').replace(/<\\/b>/g, '
      ').replace(/:/g, (this.enableRTL) ? '
      \\u200E:
      ' : '
      \\u200E:
      ')\n .split('
      ');\n if (this.enableRTL && lines.length > 0 && textCollection[i].match(/:/g)) {\n lines[0] = lines[0].trim();\n lines.reverse();\n }\n subWidth = 0;\n isColumn = true;\n height += dy;\n for (var j = 0, len_1 = lines.length; j < len_1; j++) {\n line = lines[j];\n if (this.enableRTL && line !== '' && this.isRTLText(line)) {\n line = line.concat('\\u200E');\n }\n if (!/\\S/.test(line) && line !== '') {\n line = ' '; //to trim multiple white spaces to single white space\n }\n if ((!isColumn && line === ' ') || (line.replace(//g, '').replace(/<\\/b>/g, '').trim() !== '')) {\n subWidth += line !== ' ' ? spaceWidth : 0;\n if (isColumn && !isRow) {\n if (this.header.indexOf(' -1 && k !== 0) {\n headerSpace += this.header.split(//g).length;\n }\n tspanOption = {\n x: (this.marginX * 2) + (markerSize + markerPadding),\n dy: dy + ((isColumn) ? headerSpace : 0), fill: ''\n };\n headerSpace = null;\n }\n else {\n if (isRow && isColumn) {\n tspanOption = {\n x: (headerContent === '') ? ((this.marginX * 2) + (markerSize + markerPadding))\n : (this.marginX * 2) + (this.isWrap ? (markerSize + markerPadding) : 0)\n };\n }\n else {\n tspanOption = {};\n }\n }\n isColumn = false;\n tspanElement = this.renderer.createTSpan(tspanOption, '');\n parentElement.appendChild(tspanElement);\n if (line.indexOf('') > -1 || ((isBoldTag && j === 0 && k === 0) && (isHeader || this.isWrap))) {\n fontWeight = 'bold';\n labelColor = this.themeStyle.tooltipBoldLabel;\n tspanStyle = 'font-weight:' + fontWeight;\n font.fontWeight = fontWeight;\n (tspanElement).setAttribute('fill', this.textStyle.color || labelColor);\n }\n else {\n tspanStyle = fontWeight === 'bold' ? 'font-weight:' + fontWeight : '';\n font.fontWeight = fontWeight;\n (tspanElement).setAttribute('fill', this.textStyle.color || labelColor);\n }\n if (line.indexOf('') > -1 || ((isBoldTag && j === len_1 - 1 && k === 0) && (isHeader || this.isWrap))) {\n fontWeight = 'Normal';\n labelColor = this.themeStyle.tooltipLightLabel;\n }\n // eslint-disable-next-line no-useless-escape\n (tspanElement).textContent = line = this.getTooltipTextContent(line);\n subWidth += measureText(line, font).width;\n if (tspanStyle !== '') {\n tspanElement.style.fontWeight = tspanStyle.split('font-weight:')[1];\n tspanElement.style.color = tspanElement.getAttribute('fill');\n }\n // 'inherit' will apply css style from parent element.\n tspanElement.style.fontFamily = 'inherit';\n tspanElement.style.fontStyle = 'inherit';\n tspanElement.style.fontSize = 'inherit';\n isRow = false;\n }\n }\n subWidth -= spaceWidth;\n width = Math.max(width, subWidth);\n contentWidth.push(subWidth);\n }\n }\n this.elementSize = new Size(width + (width > 0 ? (2 * this.marginX) : 0), height);\n this.elementSize.width += (markerSize + markerPadding); // marker size + marker Spacing\n var element = (parentElement.childNodes[0]);\n if (headerContent !== '' && element && !this.isWrap) {\n font.fontWeight = 'bold';\n var width_1 = (this.elementSize.width + (2 * this.padding)) / 2 - measureText(headerContent, font).width / 2;\n element.setAttribute('x', width_1.toString());\n }\n this.renderContentRTL(parentElement, isHeader, markerSize + markerPadding, contentWidth);\n };\n Tooltip.prototype.renderContentRTL = function (textElement, isHeader, markerSize, contentWidth) {\n if (this.enableRTL) {\n var tspanElement = void 0;\n var contentWidthIndex = isHeader ? 1 : 0;\n for (var i = 0; i < textElement.childNodes.length; i++) {\n tspanElement = (textElement.childNodes[i]);\n if ((!isHeader || i > 0) && !isNullOrUndefined(tspanElement.getAttribute('x'))) {\n tspanElement.setAttribute('x', (this.elementSize.width - (markerSize + contentWidth[contentWidthIndex])).toString());\n contentWidthIndex++;\n }\n }\n }\n };\n Tooltip.prototype.getTooltipTextContent = function (tooltipText) {\n var characterCollection = tooltipText.match(/<[a-zA-Z\\/](.|\\n)*?>/g);\n if (isNullOrUndefined(characterCollection)) {\n return tooltipText;\n }\n var isRtlText = this.isRTLText(tooltipText);\n for (var i = 0; i < characterCollection.length; i++) {\n if (this.isValidHTMLElement(characterCollection[i].replace('<', '').replace('/', '').replace('>', '').trim())) {\n tooltipText = tooltipText.replace(characterCollection[i], isRtlText ? '\\u200E' : '');\n }\n }\n return tooltipText;\n };\n Tooltip.prototype.isValidHTMLElement = function (element) {\n return document.createElement(element).toString() !== '[object HTMLUnknownElement]';\n };\n Tooltip.prototype.isRTLText = function (tooltipContent) {\n return /[\\u0590-\\u07FF\\u200F\\u202B\\u202E\\uFB1D-\\uFDFD\\uFE70-\\uFEFC]/.test(tooltipContent);\n };\n Tooltip.prototype.createTemplate = function (areaBounds, location) {\n var argsData = { cancel: false, name: 'tooltipRender', tooltip: this };\n this.trigger('tooltipRender', argsData);\n var parent = document.getElementById(this.element.id);\n if (this.isCanvas) {\n this.removeSVG();\n }\n var firstElement = parent.firstElementChild;\n if (firstElement) {\n remove(firstElement);\n }\n if (!argsData.cancel) {\n var elem = createElement('div', { id: this.element.id + 'parent_template' });\n var templateElement = this.templateFn(this.data, this.controlInstance, elem.id, elem.id + '_blazorTemplate', '');\n while (templateElement && templateElement.length > 0) {\n if (isBlazor() || templateElement.length === 1) {\n elem.appendChild(templateElement[0]);\n templateElement = null;\n }\n else {\n elem.appendChild(templateElement[0]);\n }\n }\n parent.appendChild(elem);\n var element = this.isCanvas ? elem : this.element;\n var rect = element.getBoundingClientRect();\n this.padding = 0;\n this.elementSize = new Size(rect.width, rect.height);\n var tooltipRect = this.shared ? this.sharedTooltipLocation(areaBounds, this.location.x, this.location.y)\n : this.tooltipLocation(areaBounds, location, new TooltipLocation(0, 0), new TooltipLocation(0, 0));\n if (this.enableAnimation && !this.isFirst && !this.crosshair) {\n this.animateTooltipDiv(this.element, tooltipRect);\n }\n else {\n this.updateDiv(element, tooltipRect.x, tooltipRect.y);\n }\n if (this.blazorTemplate) {\n //Customer issue - F149037 Call back function to handle the blazor tooltip alignment issues\n var tooltipRendered = function () {\n var rect1 = getElement(thisObject_1.element.id).getBoundingClientRect();\n thisObject_1.elementSize = new Size(rect1.width, rect1.height);\n var tooltipRect1 = thisObject_1.tooltipLocation(areaBounds, location, new TooltipLocation(0, 0), new TooltipLocation(0, 0));\n thisObject_1.updateDiv(getElement(thisObject_1.element.id), tooltipRect1.x, tooltipRect1.y);\n };\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var thisObject_1 = this;\n tooltipRendered.bind(thisObject_1, areaBounds, location);\n updateBlazorTemplate(this.element.id + 'parent_template' + '_blazorTemplate', this.blazorTemplate.name, this.blazorTemplate.parent, undefined, tooltipRendered);\n }\n }\n else {\n remove(getElement(this.element.id + '_tooltip'));\n }\n };\n Tooltip.prototype.sharedTooltipLocation = function (bounds, x, y) {\n var width = this.elementSize.width + (2 * this.marginX);\n var height = this.elementSize.height + (2 * this.marginY);\n var tooltipRect = new Rect(x + 2 * this.padding, y - height - this.padding, width, height);\n if (tooltipRect.y < bounds.y) {\n tooltipRect.y += (tooltipRect.height + 2 * this.padding);\n }\n if (tooltipRect.x + tooltipRect.width > bounds.x + bounds.width) {\n tooltipRect.x -= (tooltipRect.width + 4 * this.padding);\n }\n if (tooltipRect.x < bounds.x) {\n tooltipRect.x = bounds.x;\n }\n return tooltipRect;\n };\n Tooltip.prototype.getCurrentPosition = function (bounds, symbolLocation, arrowLocation, tipLocation) {\n var position = this.tooltipPlacement;\n var clipX = this.clipBounds.x;\n var clipY = this.clipBounds.y;\n var markerHeight = this.offset;\n var width = this.elementSize.width + (2 * this.marginX);\n var height = this.elementSize.height + (2 * this.marginY);\n var location = new TooltipLocation(symbolLocation.x, symbolLocation.y);\n if (position === 'Top' || position === 'Bottom') {\n location = new TooltipLocation(location.x + clipX - this.elementSize.width / 2 - this.padding, location.y + clipY - this.elementSize.height - (2 * this.padding) - this.arrowPadding - markerHeight);\n arrowLocation.x = tipLocation.x = width / 2;\n if (position === 'Bottom') {\n location.y = symbolLocation.y + clipY + markerHeight;\n }\n if (bounds.x + bounds.width < location.x + width) {\n location.x = (bounds.width > width) ? ((bounds.x + bounds.width) - width + 6) : bounds.x;\n arrowLocation.x = tipLocation.x = (bounds.width > width) ? (bounds.x + symbolLocation.x - location.x) : symbolLocation.x;\n }\n else if (bounds.x > location.x) {\n location.x = bounds.x;\n arrowLocation.x = tipLocation.x = symbolLocation.x;\n }\n }\n else {\n location = new TooltipLocation(location.x + clipX + markerHeight, location.y + clipY - this.elementSize.height / 2 - (this.padding));\n arrowLocation.y = tipLocation.y = height / 2;\n if (position === 'Left') {\n location.x = symbolLocation.x + clipX - markerHeight - (width + this.arrowPadding);\n }\n if (bounds.y + bounds.height < location.y + height) {\n location.y = (bounds.height > height) ? ((bounds.y + bounds.height) - height + 6) : bounds.y;\n arrowLocation.y = tipLocation.y = (bounds.height > height) ? (bounds.y + symbolLocation.y - location.y) : symbolLocation.y;\n }\n else if (bounds.y > location.y) {\n location.y = bounds.y;\n arrowLocation.y = tipLocation.y = symbolLocation.y;\n }\n }\n return new Rect(location.x, location.y, width, height);\n };\n // tslint:disable-next-line:max-func-body-length\n Tooltip.prototype.tooltipLocation = function (bounds, symbolLocation, arrowLocation, tipLocation) {\n if (!isNullOrUndefined(this.tooltipPlacement)) {\n var tooltipRect = this.getCurrentPosition(bounds, symbolLocation, arrowLocation, tipLocation);\n return tooltipRect;\n }\n var location = new TooltipLocation(symbolLocation.x, symbolLocation.y);\n var width = this.elementSize.width + (2 * this.marginX);\n var height = this.elementSize.height + (2 * this.marginY);\n var markerHeight = this.offset;\n var clipX = this.clipBounds.x;\n var clipY = this.clipBounds.y;\n var boundsX = bounds.x;\n var boundsY = bounds.y;\n this.outOfBounds = false;\n if (!this.inverted) {\n location = new TooltipLocation(location.x + clipX - this.elementSize.width / 2 - this.padding, location.y + clipY - this.elementSize.height - (2 * (this.allowHighlight ? this.highlightPadding : this.padding)) - this.arrowPadding - markerHeight);\n arrowLocation.x = tipLocation.x = width / 2;\n if ((location.y < boundsY || (this.isNegative)) && !(this.controlName === 'Progressbar')) {\n location.y = (symbolLocation.y < 0 ? 0 : symbolLocation.y) + clipY + markerHeight;\n }\n if (location.y + height + this.arrowPadding > boundsY + bounds.height) {\n location.y = Math.min(symbolLocation.y, boundsY + bounds.height) + clipY\n - this.elementSize.height - (2 * this.padding) - this.arrowPadding - markerHeight;\n }\n if (((location.x + width > boundsX + bounds.width) && location.y < boundsY || (this.isNegative)) && !(this.controlName === 'Progressbar')) {\n location.y = (symbolLocation.y < 0 ? 0 : symbolLocation.y) + clipY + markerHeight;\n }\n tipLocation.x = width / 2;\n if (location.x < boundsX && !(this.controlName === 'Progressbar')) {\n arrowLocation.x -= (boundsX - location.x);\n tipLocation.x -= (boundsX - location.x);\n location.x = boundsX;\n }\n if (location.x + width > boundsX + bounds.width && !(this.controlName === 'Progressbar')) {\n arrowLocation.x += ((location.x + width) - (boundsX + bounds.width));\n tipLocation.x += ((location.x + width) - (boundsX + bounds.width));\n location.x -= ((location.x + width) - (boundsX + bounds.width));\n }\n if (location.x < boundsX && !(this.controlName === 'Progressbar')) {\n arrowLocation.x -= (boundsX - location.x);\n tipLocation.x -= (boundsX - location.x);\n location.x = boundsX;\n }\n if (arrowLocation.x + this.arrowPadding > width - this.rx) {\n arrowLocation.x = width - this.rx - this.arrowPadding;\n tipLocation.x = width - this.rx - this.arrowPadding;\n }\n if (arrowLocation.x - this.arrowPadding < this.rx) {\n arrowLocation.x = tipLocation.x = this.rx + this.arrowPadding;\n }\n if (this.controlName === 'Chart') {\n if (((bounds.x + bounds.width) - (location.x + arrowLocation.x)) < this.areaMargin + this.arrowPadding ||\n (location.x + arrowLocation.x) < this.areaMargin + this.arrowPadding) {\n this.outOfBounds = true;\n }\n if (!withInAreaBounds(location.x, location.y, bounds) || this.outOfBounds) {\n this.inverted = !this.inverted;\n this.revert = true;\n location = new TooltipLocation(symbolLocation.x + markerHeight + clipX, symbolLocation.y + clipY - this.elementSize.height / 2 - (this.padding));\n tipLocation.x = arrowLocation.x = 0;\n tipLocation.y = arrowLocation.y = height / 2;\n if ((location.x + this.arrowPadding + width > boundsX + bounds.width) || (this.isNegative)) {\n location.x = (symbolLocation.x > bounds.width ? bounds.width : symbolLocation.x)\n + clipX - markerHeight - (this.arrowPadding + width);\n }\n if (location.x < boundsX) {\n location.x = (symbolLocation.x < 0 ? 0 : symbolLocation.x) + markerHeight + clipX;\n }\n if (location.y <= boundsY) {\n tipLocation.y -= (boundsY - location.y);\n arrowLocation.y -= (boundsY - location.y);\n location.y = boundsY;\n }\n if (location.y + height >= bounds.height + boundsY) {\n arrowLocation.y += ((location.y + height) - (bounds.height + boundsY));\n tipLocation.y += ((location.y + height) - (bounds.height + boundsY));\n location.y -= ((location.y + height) - (bounds.height + boundsY));\n }\n if ((this.arrowPadding) + arrowLocation.y > height - this.ry) {\n arrowLocation.y = height - this.arrowPadding - this.ry;\n tipLocation.y = height;\n }\n if (arrowLocation.y - this.arrowPadding < this.ry) {\n arrowLocation.y = (this.arrowPadding) + this.ry;\n tipLocation.y = 0;\n }\n }\n }\n }\n else {\n location = new TooltipLocation(location.x + clipX + markerHeight, location.y + clipY - this.elementSize.height / 2 - (this.padding));\n arrowLocation.y = tipLocation.y = height / 2;\n if ((location.x + width + this.arrowPadding > boundsX + bounds.width) || (this.isNegative)) {\n location.x = (symbolLocation.x > bounds.width + bounds.x ? bounds.width : symbolLocation.x)\n + clipX - markerHeight - (width + this.arrowPadding);\n }\n if (location.x < boundsX) {\n location.x = (symbolLocation.x < 0 ? 0 : symbolLocation.x) + clipX + markerHeight;\n }\n if ((location.x + width + this.arrowPadding > boundsX + bounds.width)) {\n location.x = (symbolLocation.x > bounds.width + bounds.x ? bounds.width : symbolLocation.x)\n + clipX - markerHeight - (width + this.arrowPadding);\n }\n if (location.y <= boundsY) {\n arrowLocation.y -= (boundsY - location.y);\n tipLocation.y -= (boundsY - location.y);\n location.y = boundsY;\n }\n if (location.y + height >= boundsY + bounds.height) {\n arrowLocation.y += ((location.y + height) - (boundsY + bounds.height));\n tipLocation.y += ((location.y + height) - (boundsY + bounds.height));\n location.y -= ((location.y + height) - (boundsY + bounds.height));\n }\n if (arrowLocation.y + this.arrowPadding > height - this.ry) {\n arrowLocation.y = height - this.ry - this.arrowPadding;\n tipLocation.y = height;\n }\n if (arrowLocation.y - this.arrowPadding < this.ry) {\n arrowLocation.y = tipLocation.y = this.ry + this.arrowPadding;\n }\n if (this.controlName === 'Chart') {\n if ((location.y + arrowLocation.y) < this.areaMargin + this.arrowPadding ||\n ((bounds.y + bounds.height) - (location.y + arrowLocation.y)) < this.areaMargin + this.arrowPadding) {\n this.outOfBounds = true;\n }\n if (!withInAreaBounds(location.x, location.y, bounds) || this.outOfBounds) {\n this.inverted = !this.inverted;\n location = new TooltipLocation(symbolLocation.x + clipX - this.padding - this.elementSize.width / 2, symbolLocation.y + clipY - this.elementSize.height - (2 * this.padding) - markerHeight - this.arrowPadding);\n this.revert = true;\n tipLocation.x = arrowLocation.x = width / 2;\n tipLocation.y = arrowLocation.y = 0;\n if (location.y < boundsY || (this.isNegative)) {\n location.y = (symbolLocation.y < 0 ? 0 : symbolLocation.y) + markerHeight + clipY;\n }\n if (location.y + this.arrowPadding + height > boundsY + bounds.height) {\n location.y = Math.min(symbolLocation.y, boundsY + bounds.height) + clipY\n - this.elementSize.height - (2 * this.padding) - markerHeight - this.arrowPadding;\n }\n tipLocation.x = width / 2;\n if (location.x < boundsX) {\n tipLocation.x -= (boundsX - location.x);\n arrowLocation.x -= (boundsX - location.x);\n location.x = boundsX;\n }\n if (location.x + width > bounds.width + boundsX) {\n arrowLocation.x += ((location.x + width) - (bounds.width + boundsX));\n tipLocation.x += ((location.x + width) - (bounds.width + boundsX));\n location.x -= ((location.x + width) - (bounds.width + boundsX));\n }\n if ((this.arrowPadding) + arrowLocation.x > width - this.rx) {\n tipLocation.x = width - this.rx - (this.arrowPadding);\n arrowLocation.x = width - this.rx - (this.arrowPadding);\n }\n if (arrowLocation.x - (this.arrowPadding) < this.rx) {\n arrowLocation.x = tipLocation.x = this.rx + (this.arrowPadding);\n }\n }\n }\n }\n return new Rect(location.x, location.y, width, height);\n };\n Tooltip.prototype.animateTooltipDiv = function (tooltipDiv, rect) {\n var _this = this;\n var x = parseFloat(tooltipDiv.style.left);\n var y = parseFloat(tooltipDiv.style.top);\n var currenDiff;\n new Animation({}).animate(tooltipDiv, {\n duration: this.duration,\n progress: function (args) {\n currenDiff = (args.timeStamp / args.duration);\n tooltipDiv.style.animation = null;\n if ((_this.controlName === 'Chart' && _this.shared) && !_this.enableRTL) {\n tooltipDiv.style.transition = isBlazor() ? 'transform 0.3s' : 'transform 0.1s';\n tooltipDiv.style.transform = 'translate(' + (x + currenDiff * (rect.x - x)) + 'px,' + (y + currenDiff * (rect.y - y)) + 'px)';\n }\n else {\n tooltipDiv.style.left = (x + currenDiff * (rect.x - x)) + 'px';\n tooltipDiv.style.top = (y + currenDiff * (rect.y - y)) + 'px';\n }\n },\n end: function (model) {\n _this.updateDiv(tooltipDiv, rect.x, rect.y);\n _this.trigger('animationComplete', { tooltip: _this });\n }\n });\n };\n Tooltip.prototype.updateDiv = function (tooltipDiv, x, y) {\n if ((this.controlName === 'Chart' && this.shared && !this.crosshair) && !this.enableRTL) {\n tooltipDiv.style.transform = 'translate(' + x + 'px,' + y + 'px)';\n }\n else {\n tooltipDiv.style.left = x + 'px';\n tooltipDiv.style.top = y + 'px';\n }\n };\n Tooltip.prototype.updateTemplateFn = function () {\n if (this.template) {\n try {\n if (document.querySelectorAll(this.template).length) {\n this.templateFn = templateComplier(document.querySelector(this.template).innerHTML.trim());\n }\n else {\n this.templateFn = templateComplier(this.template);\n }\n }\n catch (e) {\n this.templateFn = templateComplier(this.template);\n }\n }\n };\n /** @private */\n Tooltip.prototype.fadeOut = function () {\n var _this = this;\n var tooltipElement = (this.isCanvas && !this.template) ? getElement(this.element.id + '_svg') :\n getElement(this.element.id);\n var tooltipDiv = getElement(this.element.id);\n if (tooltipElement) {\n var tooltipGroup_1 = tooltipElement.firstChild;\n if (tooltipGroup_1.nodeType !== Node.ELEMENT_NODE) {\n tooltipGroup_1 = tooltipElement.firstElementChild;\n }\n if (this.isCanvas && !this.template) {\n tooltipGroup_1 = document.getElementById(this.element.id + '_group') ? document.getElementById(this.element.id + '_group') :\n tooltipGroup_1;\n }\n if (!tooltipGroup_1) {\n return null;\n }\n var opacity_1 = parseFloat(tooltipGroup_1.getAttribute('opacity'));\n opacity_1 = !isNullOrUndefined(opacity_1) ? opacity_1 : 1;\n new Animation({}).animate(tooltipGroup_1, {\n duration: 200,\n progress: function (args) {\n // tooltipGroup.removeAttribute('e-animate');\n _this.progressAnimation(tooltipGroup_1, opacity_1, (args.timeStamp / args.duration));\n },\n end: function () {\n _this.fadeOuted = true;\n _this.endAnimation(tooltipGroup_1);\n tooltipDiv.style.transition = '';\n }\n });\n }\n };\n Tooltip.prototype.progressAnimation = function (tooltipGroup, opacity, timeStamp) {\n tooltipGroup.style.animation = '';\n tooltipGroup.setAttribute('opacity', (opacity - timeStamp).toString());\n };\n /*\n * @hidden\n */\n Tooltip.prototype.endAnimation = function (tooltipGroup) {\n tooltipGroup.setAttribute('opacity', '0');\n if (this.template) {\n tooltipGroup.style.display = 'none';\n }\n this.trigger('animationComplete', { tooltip: this });\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @private\n */\n Tooltip.prototype.getPersistData = function () {\n var keyEntity = [];\n return this.addOnPersist(keyEntity);\n };\n /**\n * Get component name\n *\n * @private\n */\n Tooltip.prototype.getModuleName = function () {\n return 'tooltip';\n };\n /**\n * To destroy the accumulationcharts\n *\n * @private\n */\n Tooltip.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n this.element.classList.remove('e-tooltip');\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @returns {void}\n * @private\n */\n Tooltip.prototype.onPropertyChanged = function (newProp, oldProp) {\n if (this.blazorTemplate) {\n resetBlazorTemplate(this.element.id + 'parent_template' + '_blazorTemplate');\n }\n this.isFirst = false;\n this.render();\n };\n __decorate([\n Property(false)\n ], Tooltip.prototype, \"enable\", void 0);\n __decorate([\n Property(false)\n ], Tooltip.prototype, \"shared\", void 0);\n __decorate([\n Property(false)\n ], Tooltip.prototype, \"crosshair\", void 0);\n __decorate([\n Property(true)\n ], Tooltip.prototype, \"enableShadow\", void 0);\n __decorate([\n Property(null)\n ], Tooltip.prototype, \"fill\", void 0);\n __decorate([\n Property('')\n ], Tooltip.prototype, \"header\", void 0);\n __decorate([\n Property(0.75)\n ], Tooltip.prototype, \"opacity\", void 0);\n __decorate([\n Complex({ size: '13px', fontWeight: 'Normal', color: null, fontStyle: 'Normal', fontFamily: 'Segoe UI' }, TextStyle)\n ], Tooltip.prototype, \"textStyle\", void 0);\n __decorate([\n Property(null)\n ], Tooltip.prototype, \"template\", void 0);\n __decorate([\n Property(true)\n ], Tooltip.prototype, \"enableAnimation\", void 0);\n __decorate([\n Property(300)\n ], Tooltip.prototype, \"duration\", void 0);\n __decorate([\n Property(false)\n ], Tooltip.prototype, \"inverted\", void 0);\n __decorate([\n Property(false)\n ], Tooltip.prototype, \"isNegative\", void 0);\n __decorate([\n Complex({ color: '#cccccc', width: 0.5 }, TooltipBorder)\n ], Tooltip.prototype, \"border\", void 0);\n __decorate([\n Property([])\n ], Tooltip.prototype, \"content\", void 0);\n __decorate([\n Property(10)\n ], Tooltip.prototype, \"markerSize\", void 0);\n __decorate([\n Complex({ x: 0, y: 0 }, ToolLocation)\n ], Tooltip.prototype, \"clipBounds\", void 0);\n __decorate([\n Property([])\n ], Tooltip.prototype, \"palette\", void 0);\n __decorate([\n Property([])\n ], Tooltip.prototype, \"shapes\", void 0);\n __decorate([\n Complex({ x: 0, y: 0 }, ToolLocation)\n ], Tooltip.prototype, \"location\", void 0);\n __decorate([\n Property(0)\n ], Tooltip.prototype, \"offset\", void 0);\n __decorate([\n Property(4)\n ], Tooltip.prototype, \"rx\", void 0);\n __decorate([\n Property(4)\n ], Tooltip.prototype, \"ry\", void 0);\n __decorate([\n Property(5)\n ], Tooltip.prototype, \"marginX\", void 0);\n __decorate([\n Property(5)\n ], Tooltip.prototype, \"marginY\", void 0);\n __decorate([\n Property(7)\n ], Tooltip.prototype, \"arrowPadding\", void 0);\n __decorate([\n Property(null)\n ], Tooltip.prototype, \"data\", void 0);\n __decorate([\n Property('Material')\n ], Tooltip.prototype, \"theme\", void 0);\n __decorate([\n Complex({ x: 0, y: 0, width: 0, height: 0 }, AreaBounds)\n ], Tooltip.prototype, \"areaBounds\", void 0);\n __decorate([\n Property(null)\n ], Tooltip.prototype, \"availableSize\", void 0);\n __decorate([\n Property()\n ], Tooltip.prototype, \"blazorTemplate\", void 0);\n __decorate([\n Property(false)\n ], Tooltip.prototype, \"isCanvas\", void 0);\n __decorate([\n Property(false)\n ], Tooltip.prototype, \"isTextWrap\", void 0);\n __decorate([\n Property(null)\n ], Tooltip.prototype, \"tooltipPlacement\", void 0);\n __decorate([\n Property(null)\n ], Tooltip.prototype, \"controlInstance\", void 0);\n __decorate([\n Property('')\n ], Tooltip.prototype, \"controlName\", void 0);\n __decorate([\n Event()\n ], Tooltip.prototype, \"tooltipRender\", void 0);\n __decorate([\n Event()\n ], Tooltip.prototype, \"loaded\", void 0);\n __decorate([\n Event()\n ], Tooltip.prototype, \"animationComplete\", void 0);\n __decorate([\n Property(false)\n ], Tooltip.prototype, \"enableRTL\", void 0);\n __decorate([\n Property(false)\n ], Tooltip.prototype, \"allowHighlight\", void 0);\n Tooltip = __decorate([\n NotifyPropertyChanges\n ], Tooltip);\n return Tooltip;\n}(Component));\nexport { Tooltip };\n","/** @private */\nexport function getTooltipThemeColor(theme) {\n var style;\n switch (theme) {\n case 'Highcontrast':\n case 'HighContrast':\n style = {\n tooltipFill: '#ffffff',\n tooltipBoldLabel: '#000000',\n tooltipLightLabel: '#000000',\n tooltipHeaderLine: '#969696'\n };\n break;\n case 'MaterialDark':\n case 'FabricDark':\n case 'BootstrapDark':\n style = {\n tooltipFill: '#F4F4F4',\n tooltipBoldLabel: '#282727',\n tooltipLightLabel: '#333232',\n tooltipHeaderLine: '#9A9A9A'\n };\n break;\n case 'Bootstrap4':\n style = {\n tooltipFill: '#020202',\n tooltipBoldLabel: 'rgba(255, 255, 255)',\n tooltipLightLabel: 'rgba(255, 255, 255, 0.9)',\n tooltipHeaderLine: 'rgba(255, 255, 255, 0.2)'\n };\n break;\n case 'Tailwind':\n style = {\n tooltipFill: '#111827',\n tooltipBoldLabel: '#D1D5DB',\n tooltipLightLabel: '#F9FAFB',\n tooltipHeaderLine: '#6B7280'\n };\n break;\n case 'TailwindDark':\n style = {\n tooltipFill: '#F9FAFB',\n tooltipBoldLabel: '#6B7280',\n tooltipLightLabel: '#1F2937',\n tooltipHeaderLine: '#9CA3AF'\n };\n break;\n case 'Bootstrap5':\n style = {\n tooltipFill: '#212529',\n tooltipBoldLabel: '#F9FAFB',\n tooltipLightLabel: '#F9FAFB',\n tooltipHeaderLine: '#9CA3AF'\n };\n break;\n case 'Bootstrap5Dark':\n style = {\n tooltipFill: '#E9ECEF',\n tooltipBoldLabel: '#212529',\n tooltipLightLabel: '#212529',\n tooltipHeaderLine: '#ADB5BD'\n };\n break;\n case 'Fluent':\n style = {\n tooltipFill: '#FFFFFF',\n tooltipBoldLabel: '#323130',\n tooltipLightLabel: '#323130',\n tooltipHeaderLine: '#D2D0CE'\n };\n break;\n case 'FluentDark':\n style = {\n tooltipFill: '#252423',\n tooltipBoldLabel: '#F3F2F1',\n tooltipLightLabel: '#F3F2F1',\n tooltipHeaderLine: '#3B3A39'\n };\n break;\n default:\n style = {\n tooltipFill: '#000816',\n tooltipBoldLabel: '#ffffff',\n tooltipLightLabel: '#dbdbdb',\n tooltipHeaderLine: '#ffffff'\n };\n break;\n }\n return style;\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/* eslint-disable security/detect-unsafe-regex */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/* eslint-disable valid-jsdoc */\n/* eslint-disable jsdoc/require-returns */\n/* eslint-disable jsdoc/require-param */\nimport { PathOption } from '@syncfusion/ej2-svg-base';\nimport { remove, createElement } from '@syncfusion/ej2-base';\n/**\n * helper for progress bar\n */\n/** @private */\nvar Rect = /** @class */ (function () {\n function Rect(x, y, height, width) {\n this.x = x;\n this.y = y;\n this.height = height;\n this.width = width;\n }\n return Rect;\n}());\nexport { Rect };\n/** @private */\nvar Size = /** @class */ (function () {\n function Size(height, width) {\n this.height = height;\n this.width = width;\n }\n return Size;\n}());\nexport { Size };\n/** @private */\nvar Pos = /** @class */ (function () {\n function Pos(x, y) {\n this.x = x;\n this.y = y;\n }\n return Pos;\n}());\nexport { Pos };\n/** @private */\nvar RectOption = /** @class */ (function (_super) {\n __extends(RectOption, _super);\n function RectOption(id, fill, width, color, opacity, rect, rx, ry, transform, dashArray) {\n var _this = _super.call(this, id, fill, width, color, opacity, dashArray) || this;\n _this.y = rect.y;\n _this.x = rect.x;\n _this.height = rect.height;\n _this.width = rect.width;\n _this.rx = rx ? rx : 0;\n _this.ry = ry ? ry : 0;\n _this.transform = transform ? transform : '';\n _this.stroke = (width !== 0 && _this.stroke !== '') ? color : 'transparent';\n return _this;\n }\n return RectOption;\n}(PathOption));\nexport { RectOption };\n/** @private */\nvar ColorValue = /** @class */ (function () {\n function ColorValue(r, g, b) {\n this.r = r;\n this.g = g;\n this.b = b;\n }\n return ColorValue;\n}());\nexport { ColorValue };\n/** @private */\nexport function convertToHexCode(value) {\n return '#' + componentToHex(value.r) + componentToHex(value.g) + componentToHex(value.b);\n}\n/** @private */\nexport function componentToHex(value) {\n var hex = value.toString(16);\n return hex.length === 1 ? '0' + hex : hex;\n}\n/** @private */\nexport function convertHexToColor(hex) {\n var result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n return result ? new ColorValue(parseInt(result[1], 16), parseInt(result[2], 16), parseInt(result[3], 16)) :\n new ColorValue(255, 255, 255);\n}\n/** @private */\nexport function colorNameToHex(color) {\n color = color === 'transparent' ? 'white' : color;\n document.body.appendChild(createElement('text', { id: 'chartmeasuretext' }));\n var element = document.getElementById('chartmeasuretext');\n element.style.color = color;\n color = window.getComputedStyle(element).color;\n remove(element);\n var exp = /^(rgb|hsl)(a?)[(]\\s*([\\d.]+\\s*%?)\\s*,\\s*([\\d.]+\\s*%?)\\s*,\\s*([\\d.]+\\s*%?)\\s*(?:,\\s*([\\d.]+)\\s*)?[)]$/;\n var isRGBValue = exp.exec(color);\n return convertToHexCode(new ColorValue(parseInt(isRGBValue[3], 10), parseInt(isRGBValue[4], 10), parseInt(isRGBValue[5], 10)));\n}\n/** @private */\nvar TextOption = /** @class */ (function () {\n function TextOption(id, fontSize, fontStyle, fontFamily, fontWeight, textAnchor, fill, x, y, width, height) {\n this.id = id;\n this['font-size'] = fontSize;\n this['font-style'] = fontStyle;\n this['font-family'] = fontFamily;\n this['font-weight'] = fontWeight;\n this['text-anchor'] = textAnchor;\n this.fill = fill;\n this.x = x;\n this.y = y;\n this.width = width ? width : 0;\n this.height = height ? height : 0;\n }\n return TextOption;\n}());\nexport { TextOption };\n/** calculate the start and end point of circle */\nexport function degreeToLocation(centerX, centerY, radius, angleInDegrees) {\n var angleInRadians = (angleInDegrees - 90) * (Math.PI / 180);\n return {\n x: centerX + (radius * Math.cos(angleInRadians)),\n y: centerY + (radius * Math.sin(angleInRadians))\n };\n}\n/** calculate the path of the circle */\nexport function getPathArc(x, y, radius, startAngle, endAngle, enableRtl, pieView) {\n var start = degreeToLocation(x, y, radius, startAngle);\n var end = degreeToLocation(x, y, radius, endAngle);\n var largeArcFlag = '0';\n var sweepFlag = (enableRtl) ? '0' : '1';\n if (!enableRtl) {\n largeArcFlag = ((endAngle >= startAngle) ? endAngle : endAngle + 360) - startAngle <= 180 ? '0' : '1';\n }\n else {\n largeArcFlag = ((startAngle >= endAngle) ? startAngle : startAngle + 360) - endAngle <= 180 ? '0' : '1';\n }\n var d;\n if (pieView) {\n d = 'M ' + x + ' ' + y + ' L ' + start.x + ' ' + start.y + ' A ' + radius + ' ' +\n radius + ' ' + ' 0 ' + ' ' + largeArcFlag + ' ' + sweepFlag + ' ' + end.x + ' ' + end.y + ' ' + 'Z';\n }\n else {\n d = 'M' + start.x + ' ' + start.y +\n 'A' + radius + ' ' + radius + ' ' + '0' + ' ' + largeArcFlag + ' ' + sweepFlag + ' ' + end.x + ' ' + end.y;\n }\n return d;\n}\n/** @private */\nexport function stringToNumber(value, containerSize) {\n if (value !== null && value !== undefined) {\n return value.indexOf('%') !== -1 ? (containerSize / 100) * parseInt(value, 10) : parseInt(value, 10);\n }\n return null;\n}\n/** @private */\nexport function setAttributes(options, element) {\n var keys = Object.keys(options);\n for (var i = 0; i < keys.length; i++) {\n element.setAttribute(keys[i], options[keys[i]]);\n }\n return element;\n}\n/**\n * Animation Effect Calculation\n *\n * @private\n */\nexport function effect(currentTime, startValue, endValue, duration, enableRtl) {\n var start = (enableRtl) ? endValue : -endValue;\n var end = startValue + ((enableRtl) ? -endValue : endValue);\n return start * Math.cos(currentTime / duration * (Math.PI / 2)) + end;\n}\n/**\n * @private\n */\nexport var annotationRender = 'annotationRender';\n/**\n * @private\n */\nexport function getElement(id) {\n return document.getElementById(id);\n}\n/**\n * @private\n */\nexport function removeElement(id) {\n if (!id) {\n return null;\n }\n var element = typeof id === 'string' ? getElement(id) : id;\n if (element) {\n remove(element);\n }\n}\n/**\n * @private\n */\nvar ProgressLocation = /** @class */ (function () {\n function ProgressLocation(x, y) {\n this.x = x;\n this.y = y;\n }\n return ProgressLocation;\n}());\nexport { ProgressLocation };\n","export var Theme;\n(function (Theme) {\n /** @private */\n Theme.tooltipLabelFont = {\n size: '13px',\n fontWeight: 'Normal',\n color: null,\n fontStyle: 'Normal',\n fontFamily: 'Segoe UI'\n };\n})(Theme || (Theme = {}));\n/** @private */\nexport function getProgressThemeColor(theme) {\n var style;\n switch (theme) {\n case 'Material':\n style = {\n linearTrackColor: '#E3165B',\n linearProgressColor: '#E3165B',\n circularTrackColor: '#E3165B',\n circularProgressColor: '#E3165B',\n backgroundColor: 'transparent',\n fontColor: '#000000',\n linearFontFamily: 'Roboto',\n linearFontSize: '12',\n linearFontStyle: 'Regular',\n circularFontFamily: 'Roboto',\n circularFontStyle: 'Normal',\n circularFontSize: '20',\n progressOpacity: 1,\n trackOpacity: 0.26,\n bufferOpacity: 0.4,\n linearGapWidth: 4,\n circularGapWidth: 4,\n linearTrackThickness: 4,\n linearProgressThickness: 4,\n circularTrackThickness: 4,\n circularProgressThickness: 4,\n tooltipFill: '#ffffff',\n tooltipLightLabel: '#000000',\n success: '#4caf50',\n danger: '#ff6652',\n warning: '#ff9800',\n info: '#03a9f4'\n };\n break;\n case 'Bootstrap':\n style = {\n linearTrackColor: '#EEEEEE',\n linearProgressColor: '#317ab9',\n circularTrackColor: '#EEEEEE',\n circularProgressColor: '#317ab9',\n backgroundColor: 'transparent',\n fontColor: '#000000',\n linearFontFamily: 'Helvetica',\n linearFontStyle: 'Regular',\n linearFontSize: '12',\n circularFontFamily: 'Segoe UI',\n circularFontStyle: 'Normal',\n circularFontSize: '20',\n progressOpacity: 1,\n trackOpacity: 1,\n bufferOpacity: 0.44,\n linearGapWidth: 4,\n circularGapWidth: 4,\n linearTrackThickness: 20,\n linearProgressThickness: 20,\n circularTrackThickness: 6,\n circularProgressThickness: 6,\n tooltipFill: '#ffffff',\n tooltipLightLabel: '#000000',\n success: '#48b14c',\n danger: '#d44f4f',\n warning: '#fac168',\n info: '#2aaac0'\n };\n break;\n case 'Bootstrap4':\n style = {\n linearTrackColor: '#E9ECEF',\n linearProgressColor: '#007bff',\n circularTrackColor: '#E9ECEF',\n circularProgressColor: '#007bff',\n backgroundColor: 'transparent',\n fontColor: '#000000',\n linearFontFamily: 'Helvetica',\n linearFontStyle: 'Regular',\n linearFontSize: '12',\n circularFontFamily: 'Helvetica',\n circularFontStyle: 'Normal',\n circularFontSize: '20',\n progressOpacity: 1,\n trackOpacity: 1,\n bufferOpacity: 0.44,\n linearGapWidth: 4,\n circularGapWidth: 4,\n linearTrackThickness: 16,\n linearProgressThickness: 16,\n circularTrackThickness: 6,\n circularProgressThickness: 6,\n tooltipFill: '#ffffff',\n tooltipLightLabel: '#000000',\n success: '#28a745',\n danger: '#dc3545',\n warning: '#ffc107',\n info: '#17a2b8'\n };\n break;\n case 'HighContrast':\n style = {\n linearTrackColor: '#BFBFBF',\n linearProgressColor: '#FFD939',\n circularTrackColor: '#BFBFBF',\n circularProgressColor: '#FFD939',\n backgroundColor: 'transparent',\n fontColor: '#FFFFFF',\n linearFontFamily: 'Segoe UI',\n linearFontSize: '12',\n linearFontStyle: 'Regular',\n circularFontFamily: 'Segoe UI',\n circularFontStyle: 'Normal',\n circularFontSize: '20',\n progressOpacity: 1,\n trackOpacity: 1,\n bufferOpacity: 0.35,\n linearGapWidth: 2,\n circularGapWidth: 4,\n linearTrackThickness: 2,\n linearProgressThickness: 2,\n circularTrackThickness: 4,\n circularProgressThickness: 4,\n tooltipFill: '#ffffff',\n tooltipLightLabel: '#000000',\n success: '#2bc700',\n danger: '#ff6161',\n warning: '#ff7d1a',\n info: '#66b0ff'\n };\n break;\n case 'Tailwind':\n style = {\n linearTrackColor: '#E5E7EB',\n linearProgressColor: '#4F46E5',\n circularTrackColor: '#E5E7EB',\n circularProgressColor: '#4F46E5',\n backgroundColor: 'transparent',\n fontColor: '#FFFFFF',\n linearFontFamily: 'Inter',\n linearFontSize: '12',\n linearFontStyle: 'Regular',\n circularFontFamily: 'Inter',\n circularFontStyle: 'Normal',\n circularFontSize: '14',\n progressOpacity: 1,\n trackOpacity: 1,\n bufferOpacity: 0.35,\n linearGapWidth: 2,\n circularGapWidth: 4,\n linearTrackThickness: 2,\n linearProgressThickness: 2,\n circularTrackThickness: 4,\n circularProgressThickness: 4,\n tooltipFill: '#ffffff',\n tooltipLightLabel: '#000000',\n success: '#15803D',\n danger: '#DC2626',\n warning: '#C2410C',\n info: '#0E7490'\n };\n break;\n case 'TailwindDark':\n style = {\n linearTrackColor: '#4B5563',\n linearProgressColor: '#22D3EE',\n circularTrackColor: '#4B5563',\n circularProgressColor: '#22D3EE',\n backgroundColor: 'transparent',\n fontColor: '#D1D5DB',\n linearFontFamily: 'Inter',\n linearFontSize: '12',\n linearFontStyle: 'Regular',\n circularFontFamily: 'Interr',\n circularFontStyle: 'Normal',\n circularFontSize: '14',\n progressOpacity: 1,\n trackOpacity: 1,\n bufferOpacity: 0.45,\n linearGapWidth: 2,\n circularGapWidth: 4,\n linearTrackThickness: 2,\n linearProgressThickness: 2,\n circularTrackThickness: 4,\n circularProgressThickness: 4,\n tooltipFill: '#ffffff',\n tooltipLightLabel: '#000000',\n success: '#22C55E',\n danger: '#F87171',\n warning: '#ea580c',\n info: '#06B6D4'\n };\n break;\n case 'FabricDark':\n case 'BootstrapDark':\n case 'MaterialDark':\n style = {\n linearTrackColor: '#C8C8C8',\n linearProgressColor: '#9A9A9A',\n circularTrackColor: '#C8C8C8',\n circularProgressColor: '#9A9A9A',\n backgroundColor: 'transparent',\n fontColor: '#000000',\n linearFontFamily: 'Helvetica',\n linearFontStyle: 'Normal',\n linearFontSize: '12',\n circularFontFamily: 'Helvetica',\n circularFontStyle: 'Normal',\n circularFontSize: '14',\n progressOpacity: 1,\n trackOpacity: 1,\n bufferOpacity: 0.44,\n linearGapWidth: 2,\n circularGapWidth: 4,\n linearTrackThickness: 16,\n linearProgressThickness: 16,\n circularTrackThickness: 4,\n circularProgressThickness: 4,\n tooltipFill: '#ffffff',\n tooltipLightLabel: '#000000',\n success: '#22b24b',\n danger: '#ac2a2a',\n warning: '#ffca1c',\n info: '#489bd5'\n };\n break;\n case 'Bootstrap5':\n style = {\n linearTrackColor: '#E9ECEF',\n linearProgressColor: '#0D6EFD',\n circularTrackColor: '#E9ECEF',\n circularProgressColor: '#0D6EFD',\n backgroundColor: 'transparent',\n fontColor: '#0D6EFD',\n linearFontFamily: 'Helvetica Neue',\n linearFontStyle: 'Normal',\n linearFontSize: '12',\n circularFontFamily: 'Helvetica Neue',\n circularFontStyle: 'Normal',\n circularFontSize: '14',\n progressOpacity: 1,\n trackOpacity: 1,\n bufferOpacity: 0.44,\n linearGapWidth: 4,\n circularGapWidth: 4,\n linearTrackThickness: 16,\n linearProgressThickness: 16,\n circularTrackThickness: 4,\n circularProgressThickness: 4,\n tooltipFill: '#ffffff',\n tooltipLightLabel: '#000000',\n success: '#198754',\n danger: '#DC3545',\n warning: '#FFC107',\n info: '#0DCAF0'\n };\n break;\n case 'Bootstrap5Dark':\n style = {\n linearTrackColor: '#3B4248',\n linearProgressColor: '#0D6EFD',\n circularTrackColor: '#3B4248',\n circularProgressColor: '#0D6EFD',\n backgroundColor: 'transparent',\n fontColor: '#0D6EFD',\n linearFontFamily: 'Helvetica Neue',\n linearFontStyle: 'Normal',\n linearFontSize: '12',\n circularFontFamily: 'Helvetica Neue',\n circularFontStyle: 'Normal',\n circularFontSize: '14',\n progressOpacity: 1,\n trackOpacity: 1,\n bufferOpacity: 0.4,\n linearGapWidth: 4,\n circularGapWidth: 4,\n linearTrackThickness: 16,\n linearProgressThickness: 16,\n circularTrackThickness: 4,\n circularProgressThickness: 4,\n tooltipFill: '#ffffff',\n tooltipLightLabel: '#000000',\n success: '#21B26F',\n danger: '#E4606D',\n warning: '#FFC107',\n info: '#0DCAF0'\n };\n break;\n case 'Fluent':\n style = {\n linearTrackColor: '#F3F2F1',\n linearProgressColor: '#0D6EFD',\n circularTrackColor: '#F3F2F1',\n circularProgressColor: '#0D6EFD',\n backgroundColor: 'transparent',\n fontColor: '#0D6EFD',\n linearFontFamily: 'Helvetica Neue',\n linearFontStyle: 'Normal',\n linearFontSize: '12',\n circularFontFamily: 'Helvetica Neue',\n circularFontStyle: 'Normal',\n circularFontSize: '14',\n progressOpacity: 1,\n trackOpacity: 1,\n bufferOpacity: 0.45,\n linearGapWidth: 4,\n circularGapWidth: 4,\n linearTrackThickness: 16,\n linearProgressThickness: 16,\n circularTrackThickness: 4,\n circularProgressThickness: 4,\n tooltipFill: '#ffffff',\n tooltipLightLabel: '#000000',\n success: '#0B6A0B',\n danger: '#D13438',\n warning: '#CA5010',\n info: '#038387'\n };\n break;\n case 'FluentDark':\n style = {\n linearTrackColor: '#3B4248',\n linearProgressColor: '#0D6EFD',\n circularTrackColor: '#3B4248',\n circularProgressColor: '#0D6EFD',\n backgroundColor: 'transparent',\n fontColor: '#0D6EFD',\n linearFontFamily: 'Helvetica Neue',\n linearFontStyle: 'Normal',\n linearFontSize: '12',\n circularFontFamily: 'Helvetica Neue',\n circularFontStyle: 'Normal',\n circularFontSize: '14',\n progressOpacity: 1,\n trackOpacity: 1,\n bufferOpacity: 0.35,\n linearGapWidth: 4,\n circularGapWidth: 4,\n linearTrackThickness: 16,\n linearProgressThickness: 16,\n circularTrackThickness: 4,\n circularProgressThickness: 4,\n tooltipFill: '#ffffff',\n tooltipLightLabel: '#000000',\n success: '#0B6A0B',\n danger: '#D13438',\n warning: '#CA5010',\n info: '#038387'\n };\n break;\n default:\n style = {\n linearTrackColor: '#EAEAEA',\n linearProgressColor: '#0078D6',\n circularTrackColor: '#E6E6E6',\n circularProgressColor: '#0078D6',\n backgroundColor: 'transparent',\n fontColor: '#333333',\n linearFontFamily: 'Segoe UI',\n linearFontStyle: 'Regular',\n linearFontSize: '12',\n circularFontFamily: 'Segoe UI',\n circularFontStyle: 'Normal',\n circularFontSize: '20',\n progressOpacity: 1,\n trackOpacity: 1,\n bufferOpacity: 0.3,\n linearGapWidth: 2,\n circularGapWidth: 4,\n linearTrackThickness: 2,\n linearProgressThickness: 2,\n circularTrackThickness: 4,\n circularProgressThickness: 4,\n tooltipFill: '#ffffff',\n tooltipLightLabel: '#000000',\n success: '#166600',\n danger: '#b30900',\n warning: '#944000',\n info: '#0056b3'\n };\n break;\n }\n return style;\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { ChildProperty, Property, Complex } from '@syncfusion/ej2-base';\nimport { Theme } from '../utils/theme';\n/**\n * progress bar complex interface\n */\nvar Margin = /** @class */ (function (_super) {\n __extends(Margin, _super);\n function Margin() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(10)\n ], Margin.prototype, \"top\", void 0);\n __decorate([\n Property(10)\n ], Margin.prototype, \"bottom\", void 0);\n __decorate([\n Property(10)\n ], Margin.prototype, \"left\", void 0);\n __decorate([\n Property(10)\n ], Margin.prototype, \"right\", void 0);\n return Margin;\n}(ChildProperty));\nexport { Margin };\n/**\n * Configures the fonts in progressbar\n */\nvar Font = /** @class */ (function (_super) {\n __extends(Font, _super);\n function Font() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('Normal')\n ], Font.prototype, \"fontStyle\", void 0);\n __decorate([\n Property('16px')\n ], Font.prototype, \"size\", void 0);\n __decorate([\n Property('Normal')\n ], Font.prototype, \"fontWeight\", void 0);\n __decorate([\n Property('')\n ], Font.prototype, \"color\", void 0);\n __decorate([\n Property('Segoe UI')\n ], Font.prototype, \"fontFamily\", void 0);\n __decorate([\n Property(1)\n ], Font.prototype, \"opacity\", void 0);\n __decorate([\n Property('Far')\n ], Font.prototype, \"textAlignment\", void 0);\n __decorate([\n Property('')\n ], Font.prototype, \"text\", void 0);\n return Font;\n}(ChildProperty));\nexport { Font };\n/**\n * Animation\n */\nvar Animation = /** @class */ (function (_super) {\n __extends(Animation, _super);\n function Animation() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(false)\n ], Animation.prototype, \"enable\", void 0);\n __decorate([\n Property(2000)\n ], Animation.prototype, \"duration\", void 0);\n __decorate([\n Property(0)\n ], Animation.prototype, \"delay\", void 0);\n return Animation;\n}(ChildProperty));\nexport { Animation };\n/**\n * Annotation\n */\nvar ProgressAnnotationSettings = /** @class */ (function (_super) {\n __extends(ProgressAnnotationSettings, _super);\n function ProgressAnnotationSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(null)\n ], ProgressAnnotationSettings.prototype, \"content\", void 0);\n __decorate([\n Property(0)\n ], ProgressAnnotationSettings.prototype, \"annotationAngle\", void 0);\n __decorate([\n Property('0%')\n ], ProgressAnnotationSettings.prototype, \"annotationRadius\", void 0);\n return ProgressAnnotationSettings;\n}(ChildProperty));\nexport { ProgressAnnotationSettings };\n/**\n * Configures the borders .\n */\nvar Border = /** @class */ (function (_super) {\n __extends(Border, _super);\n function Border() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], Border.prototype, \"color\", void 0);\n __decorate([\n Property(1)\n ], Border.prototype, \"width\", void 0);\n return Border;\n}(ChildProperty));\nexport { Border };\n/**\n * Options to customize the tooltip for the progress bar.\n *\n * @default {}\n */\nvar TooltipSettings = /** @class */ (function (_super) {\n __extends(TooltipSettings, _super);\n function TooltipSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(false)\n ], TooltipSettings.prototype, \"enable\", void 0);\n __decorate([\n Property(null)\n ], TooltipSettings.prototype, \"fill\", void 0);\n __decorate([\n Property(null)\n ], TooltipSettings.prototype, \"format\", void 0);\n __decorate([\n Property(false)\n ], TooltipSettings.prototype, \"showTooltipOnHover\", void 0);\n __decorate([\n Complex(Theme.tooltipLabelFont, Font)\n ], TooltipSettings.prototype, \"textStyle\", void 0);\n __decorate([\n Complex({ color: '#cccccc', width: 0.5 }, Border)\n ], TooltipSettings.prototype, \"border\", void 0);\n return TooltipSettings;\n}(ChildProperty));\nexport { TooltipSettings };\n/**\n * RangeColor\n */\nvar RangeColor = /** @class */ (function (_super) {\n __extends(RangeColor, _super);\n function RangeColor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], RangeColor.prototype, \"color\", void 0);\n __decorate([\n Property(null)\n ], RangeColor.prototype, \"start\", void 0);\n __decorate([\n Property(null)\n ], RangeColor.prototype, \"end\", void 0);\n return RangeColor;\n}(ChildProperty));\nexport { RangeColor };\n","/**\n * corner Radius\n */\nexport var lineCapRadius = 0.9;\n/**\n * complete Angle\n */\nexport var completeAngle = 359.99;\n/**\n * valueChanged event\n */\nexport var valueChanged = 'valueChanged';\n/**\n * progressCompleted event\n */\nexport var progressCompleted = 'progressCompleted';\n/**\n * mouseClick event\n */\nexport var mouseClick = 'mouseClick';\n/**\n * mouseDown event\n */\nexport var mouseDown = 'mouseDown';\n/**\n * mouseUp event\n */\nexport var mouseUp = 'mouseUp';\n/**\n * mouseMove event\n */\nexport var mouseMove = 'mouseMove';\n/**\n * mouseLeave event\n */\nexport var mouseLeave = 'mouseLeave';\n/**\n * svgLink\n */\nexport var svgLink = 'http://www.w3.org/2000/svg';\n/**\n * gradient type\n */\nexport var gradientType = 'linearGradient';\n/**\n * stop element\n */\nexport var stopElement = 'stop';\n/**\n * Render for the tooltip.\n */\nexport var tooltipRender = 'tooltipRender';\n","import { Tooltip as SVGTooltip } from '@syncfusion/ej2-svg-base';\nimport { Animation } from '@syncfusion/ej2-base';\nimport { effect, ProgressLocation } from '../utils/helper';\nimport { tooltipRender } from './constant';\n/**\n * class for tooltip.\n */\nvar ProgressTooltip = /** @class */ (function () {\n /**\n * Constructor for progress tooltip.\n *\n * @param {ProgressBar} control\n */\n function ProgressTooltip(control) {\n // Defines text collection passed to svg tooltip.\n this.text = [];\n this.control = control;\n }\n /**\n * Method to render the tooltip for progress bar.\n */\n ProgressTooltip.prototype.tooltip = function (e) {\n var svgElement = document.getElementById(this.control.element.id + '_tooltip');\n var isTooltip = (svgElement && parseInt(svgElement.getAttribute('opacity'), 10) > 0);\n this.renderTooltip(e, this.control, !isTooltip);\n if (this.control.tooltip.enable && this.control.type === 'Circular' && this.control.animation.enable && !(this.control.tooltip.showTooltipOnHover)) {\n svgElement.style.visibility = 'hidden';\n var delay = this.control.secondaryProgress ? this.control.circular.delay + this.control.animation.duration :\n this.control.animation.duration;\n this.tooltipDelay(this.control, svgElement, delay);\n }\n if (this.control.animation.enable && !(this.control.tooltip.showTooltipOnHover) && !(this.control.type === 'Circular')) {\n var delay = this.control.secondaryProgress ? this.control.linear.delay : this.control.animation.delay;\n if (this.control.secondaryProgress) {\n svgElement.style.visibility = 'hidden';\n }\n this.toolTipAnimation(svgElement, this.control, delay);\n }\n };\n /**\n * Function to delay tooltip at initial stage of circular progress.\n */\n ProgressTooltip.prototype.tooltipDelay = function (progress, element, delay) {\n var animation = new Animation({});\n animation.animate(element, {\n duration: progress.animation.duration,\n delay: delay,\n progress: function (args) {\n args.element.style.visibility = 'visible';\n }\n });\n };\n /**\n * Function to animate tooltip.\n */\n ProgressTooltip.prototype.toolTipAnimation = function (element, progress, delay) {\n var _this = this;\n var animation = new Animation({});\n var endValue = parseInt(element.style.left, 10);\n var tooltipSVG = document.getElementById(this.control.element.id + '_tooltip_svg');\n var width = parseInt(tooltipSVG.getAttribute('width'), 10);\n animation.animate(element, {\n duration: progress.animation.duration,\n delay: delay,\n progress: function (args) {\n progress.cancelResize = true;\n args.name = 'SlideRight';\n if (progress.type === 'Linear') {\n if (args.timeStamp >= args.delay) {\n args.element.style.visibility = 'visible';\n var value = effect(args.timeStamp, (0 - (width / 2 - _this.control.progressRect.x - 5)), endValue + (width / 2 - _this.control.progressRect.x - 5), args.duration, progress.enableRtl);\n args.element.style.left = '';\n args.element.style.left = value + 'px'.toString();\n }\n }\n },\n end: function (args) {\n progress.cancelResize = false;\n args.element.style.left = '';\n args.element.style.left = endValue + 'px'.toString();\n }\n });\n };\n ProgressTooltip.prototype.renderTooltip = function (e, chart, isFirst) {\n this.textFormat = this.format((this.control.tooltip.showTooltipOnHover) ? e.target.id.indexOf('Linearbuffer') >= 0 || e.target.id.indexOf('Circularbuffer') >= 0 ? this.control.secondaryProgress : this.control.value : this.control.value);\n this.triggerTooltipRender(e, isFirst, this.textFormat);\n };\n /**\n * Function to get format of tooltip text.\n */\n ProgressTooltip.prototype.format = function (formatValue) {\n var currentFormat = formatValue.toString();\n var value;\n if (this.control.tooltip.format) {\n currentFormat = this.control.tooltip.format;\n value = new RegExp('${value' + '}', 'gm');\n currentFormat = currentFormat.replace(value.source, formatValue.toString());\n }\n return currentFormat;\n };\n /**\n * Function to remove tooltip.\n */\n ProgressTooltip.prototype.removeTooltip = function (duration) {\n var _this = this;\n var tooltipElement = document.getElementById(this.control.element.id + '_tooltip');\n if (tooltipElement) {\n this.fadeInInterval = +setTimeout(function () {\n if (_this.svgTooltip) {\n _this.svgTooltip.fadeOut();\n }\n }, duration);\n }\n };\n /**\n * Function to get arguments of tooltip.\n */\n ProgressTooltip.prototype.triggerTooltipRender = function (e, isFirst, textCollection) {\n var padding = 5;\n var argsData = {\n cancel: false, name: tooltipRender, text: textCollection + '%'\n };\n this.control.trigger(tooltipRender, argsData);\n textCollection = argsData.text;\n if (!argsData.cancel) {\n this.text = [].concat(argsData.text);\n if (this.control.type === 'Linear') {\n var linearEndPointX = (this.control.linear.linearProgressWidth - padding / 2 + (this.control.progressRect.x));\n var linearEndPointY = (this.control.cornerRadius === 'Round4px') ? (this.control.progressRect.y + padding) : (this.control.progressRect.y + (this.control.progressRect.height / 2)) -\n (this.control.progressThickness ? this.control.progressThickness : this.control.themeStyle.linearProgressThickness) / 2 +\n padding;\n this.createTooltip(this.control, isFirst, (this.control.tooltip.enable && !this.control.tooltip.showTooltipOnHover || !(e.target.id.indexOf('Linearbuffer') >= 0)) ? (new ProgressLocation((this.control.cornerRadius === 'Round4px') ? linearEndPointX - padding : linearEndPointX, linearEndPointY)) : (new ProgressLocation(this.control.linear.bufferWidth - (padding / 2) + (this.control.progressRect.x), linearEndPointY)), this.control.initialClipRect);\n }\n else {\n var circularEndPointX = this.control.circular.endPosition.x - padding / 2;\n var circularEndPointY = this.control.circular.endPosition.y + this.control.progressRect.y - padding / 2;\n this.createTooltip(this.control, isFirst, (this.control.tooltip.enable && !this.control.tooltip.showTooltipOnHover || !(e.target.id.indexOf('Circularbuffer') >= 0)) ? (new ProgressLocation(circularEndPointX, circularEndPointY)) : (new ProgressLocation(this.control.circular.bufferEndPosition.x - padding / 2, this.control.circular.bufferEndPosition.y + this.control.progressRect.y - padding / 2)), this.control.initialClipRect);\n }\n }\n this.isRendered = true;\n };\n /**\n * Function to pass arguments into svg tooltip.\n */\n ProgressTooltip.prototype.createTooltip = function (chart, isFirst, location, bounds) {\n if (isFirst) {\n this.svgTooltip = new SVGTooltip({\n opacity: 0.75,\n header: '',\n content: this.text,\n fill: this.control.tooltip.fill,\n border: this.control.tooltip.border,\n enableAnimation: true,\n location: location,\n theme: this.control.theme,\n areaBounds: bounds,\n template: null,\n // To set tooltip location.\n offset: 7.5,\n // To set left and right margin of tooltip.\n marginX: 8,\n // To set top margin of tooltip.\n marginY: 4.5,\n textStyle: this.control.tooltip.textStyle,\n arrowPadding: 7,\n availableSize: this.control.progressSize,\n duration: 300,\n blazorTemplate: { name: 'Template', parent: this.control.tooltip },\n controlInstance: this.control,\n enableRTL: chart.enableRtl,\n controlName: 'Progressbar'\n }, '#' + this.control.element.id + '_tooltip');\n }\n else {\n if (this.svgTooltip) {\n this.svgTooltip.location = location;\n this.svgTooltip.content = this.text;\n this.svgTooltip.header = '';\n this.svgTooltip.offset = 7.5;\n this.svgTooltip.textStyle = this.control.tooltip.textStyle;\n this.svgTooltip.areaBounds = bounds;\n this.svgTooltip.arrowPadding = 7;\n this.svgTooltip.dataBind();\n }\n }\n };\n /**\n * Get module name.\n */\n ProgressTooltip.prototype.getModuleName = function () {\n return 'ProgressTooltip';\n };\n /**\n * To destroy the annotation.\n *\n * @returns {void}\n * @private\n */\n ProgressTooltip.prototype.destroy = function () {\n // Destroy method performed here\n };\n return ProgressTooltip;\n}());\nexport { ProgressTooltip };\n","/* eslint-disable valid-jsdoc */\n/* eslint-disable jsdoc/require-param */\nimport { Animation, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { effect, getPathArc } from '../utils/helper';\nimport { lineCapRadius, completeAngle } from '../model/constant';\n/**\n * Animation for progress bar\n */\nvar ProgressAnimation = /** @class */ (function () {\n function ProgressAnimation() {\n }\n /** Linear Animation */\n ProgressAnimation.prototype.doLinearAnimation = function (element, progress, delay, previousWidth, active) {\n var _this = this;\n var animation = new Animation({});\n var linearPath = element;\n var duration = (progress.isActive) ? 3000 : progress.animation.duration;\n var width = linearPath.getAttribute('width');\n var x = linearPath.getAttribute('x');\n var opacityValue = 0;\n var value = 0;\n var start = (!progress.enableRtl || (progress.cornerRadius === 'Round4px')) ? previousWidth : parseInt(x, 10);\n var end = (!progress.enableRtl || (progress.cornerRadius === 'Round4px')) ? parseInt(width, 10) - start :\n parseInt(width, 10) - previousWidth;\n var rtlX = parseInt(x, 10) - end;\n linearPath.style.visibility = 'hidden';\n animation.animate(linearPath, {\n duration: duration,\n delay: delay,\n progress: function (args) {\n progress.cancelResize = true;\n if (progress.enableRtl && !(progress.cornerRadius === 'Round4px')) {\n if (args.timeStamp >= args.delay) {\n linearPath.style.visibility = 'visible';\n if (progress.isActive) {\n value = _this.activeAnimate((args.timeStamp / args.duration), parseInt(x, 10), parseInt(width, 10), true);\n opacityValue = effect(args.timeStamp, 0.5, 0.5, args.duration, true);\n active.setAttribute('opacity', opacityValue.toString());\n linearPath.setAttribute('x', value.toString());\n }\n else {\n value = effect(args.timeStamp, start, end, args.duration, true);\n linearPath.setAttribute('x', value.toString());\n }\n }\n }\n else {\n if (args.timeStamp >= args.delay) {\n linearPath.style.visibility = 'visible';\n if (progress.isActive) {\n value = _this.activeAnimate((args.timeStamp / args.duration), 0, parseInt(width, 10), false);\n opacityValue = effect(args.timeStamp, 0.5, 0.5, args.duration, true);\n active.setAttribute('opacity', opacityValue.toString());\n linearPath.setAttribute('width', value.toString());\n }\n else {\n value = effect(args.timeStamp, start, end, args.duration, false);\n linearPath.setAttribute('width', value.toString());\n }\n }\n }\n },\n end: function () {\n progress.cancelResize = false;\n linearPath.style.visibility = '';\n if (progress.enableRtl && !(progress.cornerRadius === 'Round4px')) {\n if (progress.isActive) {\n linearPath.setAttribute('x', x.toString());\n _this.doLinearAnimation(element, progress, delay, previousWidth, active);\n }\n else {\n linearPath.setAttribute('x', rtlX.toString());\n }\n }\n else {\n linearPath.setAttribute('width', width);\n if (progress.isActive) {\n _this.doLinearAnimation(element, progress, delay, previousWidth, active);\n }\n }\n progress.trigger('animationComplete', {\n value: progress.value, trackColor: progress.trackColor,\n progressColor: progress.progressColor\n });\n }\n });\n };\n /** Linear Indeterminate */\n ProgressAnimation.prototype.doLinearIndeterminate = function (element, progressWidth, thickness, progress, clipPath) {\n var _this = this;\n var animation = new Animation({});\n var linearPath = element;\n var x = linearPath.getAttribute('x');\n var width = linearPath.getAttribute('width');\n var value = 0;\n var start = (width) ? -(parseInt(width, 10)) : -progressWidth;\n var end = (progress.progressRect.x + progress.progressRect.width) + ((width) ? (parseInt(width, 10)) : progressWidth);\n var duration = (!progress.enableProgressSegments) ? progress.animation.duration : progress.animation.duration + 1000;\n animation.animate(clipPath, {\n duration: duration,\n delay: 0,\n progress: function (args) {\n if (progress.enableRtl && !(progress.cornerRadius === 'Round4px')) {\n value = effect(args.timeStamp, parseInt(x, 10) || progress.progressRect.x + progressWidth, end, args.duration, true);\n if (!progress.enableProgressSegments) {\n linearPath.setAttribute('x', value.toString());\n }\n else {\n linearPath.setAttribute('d', progress.getPathLine(value, progressWidth, thickness));\n }\n }\n else {\n value = effect(args.timeStamp, start, end, args.duration, false);\n if (!progress.enableProgressSegments) {\n linearPath.setAttribute('x', value.toString());\n }\n else {\n linearPath.setAttribute('d', progress.getPathLine(value, progressWidth, thickness));\n }\n }\n },\n end: function () {\n if (progress.enableRtl && !progress.enableProgressSegments && !(progress.cornerRadius === 'Round4px')) {\n linearPath.setAttribute('x', x.toString());\n }\n else if (!progress.enableProgressSegments) {\n linearPath.setAttribute('x', start.toString());\n }\n if (!progress.destroyIndeterminate) {\n _this.doLinearIndeterminate(element, progressWidth, thickness, progress, clipPath);\n }\n }\n });\n };\n /** Linear striped */\n ProgressAnimation.prototype.doStripedAnimation = function (element, progress, value) {\n var _this = this;\n var animation = new Animation({});\n var point = 1000 / progress.animation.duration;\n animation.animate(element, {\n duration: progress.animation.duration,\n delay: progress.animation.delay,\n progress: function () {\n value += (progress.enableRtl) ? -point : point;\n element.setAttribute('gradientTransform', 'translate(' + value + ') rotate(-45)');\n },\n end: function () {\n if (!progress.destroyIndeterminate) {\n _this.doStripedAnimation(element, progress, value);\n }\n }\n });\n };\n /** Circular animation */\n ProgressAnimation.prototype.doCircularAnimation = function (x, y, radius, progressEnd, totalEnd, element, progress, thickness, delay, startValue, previousTotal, active) {\n var _this = this;\n var animation = new Animation({});\n var circularPath = element;\n var start = progress.startAngle;\n var pathRadius = radius + (thickness / 2);\n var end = 0;\n var opacityValue = 0;\n var duration = (progress.isActive) ? 3000 : progress.animation.duration;\n start += (progress.cornerRadius === 'Round' && totalEnd !== completeAngle && totalEnd !== 0) ?\n ((progress.enableRtl) ? (lineCapRadius / 2) * thickness : -(lineCapRadius / 2) * thickness) : 0;\n totalEnd += (progress.cornerRadius === 'Round' && totalEnd !== completeAngle && totalEnd !== 0) ?\n (lineCapRadius / 2) * thickness : 0;\n progressEnd += (progress.cornerRadius === 'Round' && totalEnd !== completeAngle && totalEnd !== 0) ?\n ((progress.enableRtl) ? -(lineCapRadius / 2) * thickness : (lineCapRadius / 2) * thickness) : 0;\n var startPos = (!isNullOrUndefined(startValue)) ? startValue : start;\n var endPos = (!isNullOrUndefined(startValue)) ? totalEnd - previousTotal : totalEnd;\n circularPath.setAttribute('visibility', 'Hidden');\n animation.animate(circularPath, {\n duration: duration,\n delay: delay,\n progress: function (args) {\n progress.cancelResize = true;\n if (args.timeStamp >= args.delay) {\n circularPath.setAttribute('visibility', 'visible');\n if (progress.isActive) {\n end = _this.activeAnimate((args.timeStamp / args.duration), startPos, endPos, progress.enableRtl);\n opacityValue = effect(args.timeStamp, 0.5, 0.5, args.duration, true);\n active.setAttribute('opacity', opacityValue.toString());\n circularPath.setAttribute('d', getPathArc(x, y, pathRadius, start, end % 360, progress.enableRtl, true));\n }\n else {\n end = effect(args.timeStamp, startPos, endPos, args.duration, progress.enableRtl);\n circularPath.setAttribute('d', getPathArc(x, y, pathRadius, start, end % 360, progress.enableRtl, true));\n }\n }\n },\n end: function () {\n progress.cancelResize = false;\n circularPath.setAttribute('visibility', '');\n circularPath.setAttribute('d', getPathArc(x, y, pathRadius, start, progressEnd, progress.enableRtl, true));\n if (progress.isActive) {\n _this.doCircularAnimation(x, y, radius, progressEnd, totalEnd, element, progress, thickness, delay, startValue, previousTotal, active);\n }\n progress.trigger('animationComplete', {\n value: progress.value, trackColor: progress.trackColor,\n progressColor: progress.progressColor\n });\n }\n });\n };\n /** Circular indeterminate */\n ProgressAnimation.prototype.doCircularIndeterminate = function (circularProgress, progress, start, end, x, y, radius, thickness, clipPath) {\n var _this = this;\n var animation = new Animation({});\n var pathRadius = radius + ((!progress.enableProgressSegments) ? (thickness / 2) : 0);\n var duration = progress.animation.duration;\n var value = (!progress.enableProgressSegments) ? 6000 / duration : 4000 / duration;\n animation.animate(clipPath, {\n progress: function () {\n circularProgress.style.visibility = 'visible';\n start += (progress.enableRtl) ? -value : value;\n end += (progress.enableRtl) ? -value : value;\n circularProgress.setAttribute('d', getPathArc(x, y, pathRadius, start % 360, end % 360, progress.enableRtl, !progress.enableProgressSegments));\n },\n end: function () {\n if (!progress.destroyIndeterminate) {\n _this.doCircularIndeterminate(circularProgress, progress, start, end, x, y, radius, thickness, clipPath);\n }\n }\n });\n };\n /** To do the label animation for progress bar */\n ProgressAnimation.prototype.doLabelAnimation = function (labelPath, start, end, progress, delay, textSize) {\n var animation = new Animation({});\n var label = new Animation({});\n var startPos;\n var endPos;\n var text = labelPath.innerHTML;\n var value = 0;\n var xPos = 0;\n var valueChanged = 0;\n var percentage = 100;\n var labelText = progress.labelStyle.text;\n var labelPos = progress.labelStyle.textAlignment;\n var posX = parseInt(labelPath.getAttribute('x'), 10);\n labelPath.setAttribute('visibility', 'Hidden');\n if (progress.type === 'Linear') {\n startPos = (progress.enableRtl) ? (progress.progressRect.x + progress.progressRect.width) + (textSize / 2) :\n start - (textSize / 2);\n startPos = (startPos <= 0) ? 0 : startPos;\n endPos = (progress.enableRtl) ? startPos - posX : posX - startPos;\n }\n animation.animate(labelPath, {\n duration: progress.animation.duration,\n delay: delay,\n progress: function (args) {\n progress.cancelResize = true;\n args.name = 'SlideRight';\n if (progress.type === 'Linear') {\n if (args.timeStamp >= args.delay) {\n if (labelText === '') {\n labelPath.setAttribute('visibility', 'visible');\n value = effect(args.timeStamp, start, end, args.duration, false);\n valueChanged = parseInt((((Math.round(value)) / progress.progressRect.width) * percentage).toString(), 10);\n labelPath.innerHTML = valueChanged.toString() + '%';\n if (labelPos === 'Far' || labelPos === 'Center') {\n xPos = effect(args.timeStamp, startPos, endPos, args.duration, progress.enableRtl);\n labelPath.setAttribute('x', xPos.toString());\n }\n }\n }\n }\n else if (progress.type === 'Circular') {\n if (labelText === '') {\n labelPath.setAttribute('visibility', 'visible');\n value = effect(args.timeStamp, start, end - start, args.duration, false);\n valueChanged = parseInt((((Math.round(value)) / progress.totalAngle) * percentage).toString(), 10);\n labelPath.innerHTML = valueChanged.toString() + '%';\n }\n }\n },\n end: function () {\n progress.cancelResize = false;\n if (labelText === '') {\n labelPath.innerHTML = text;\n labelPath.setAttribute('x', posX.toString());\n }\n else {\n label.animate(labelPath, {\n progress: function (args) {\n labelPath.setAttribute('visibility', 'visible');\n value = effect(args.timeStamp, 0, 1, args.duration, false);\n labelPath.setAttribute('opacity', value.toString());\n },\n end: function () {\n labelPath.setAttribute('opacity', '1');\n }\n });\n }\n }\n });\n };\n /** To do the annotation animation for circular progress bar */\n ProgressAnimation.prototype.doAnnotationAnimation = function (circularPath, progress, previousEnd, previousTotal) {\n var animation = new Animation({});\n var value = 0;\n var percentage = 100;\n var isAnnotation = progress.annotations.length > 0;\n var annotatElementChanged;\n var firstAnnotatElement;\n var start = progress.startAngle;\n var totalAngle = progress.totalAngle;\n var totalEnd;\n var annotateValueChanged;\n var annotateValue;\n if (isAnnotation && progress.progressAnnotationModule) {\n firstAnnotatElement = document.getElementById(progress.element.id + 'Annotation0').children[0];\n if (firstAnnotatElement && firstAnnotatElement.children[0]) {\n if (firstAnnotatElement.children[0].tagName === 'SPAN') {\n annotatElementChanged = firstAnnotatElement.children[0];\n }\n }\n }\n totalEnd = ((progress.argsData.value - progress.minimum) / (progress.maximum - progress.minimum)) * progress.totalAngle;\n progress.annotateTotal = totalEnd =\n (progress.argsData.value < progress.minimum || progress.argsData.value > progress.maximum) ? 0 : totalEnd;\n progress.annotateEnd = start + totalEnd;\n annotateValue = ((progress.argsData.value - progress.minimum) / (progress.maximum - progress.minimum)) * percentage;\n annotateValue = (progress.argsData.value < progress.minimum || progress.argsData.value > progress.maximum) ? 0 :\n Math.round(annotateValue);\n var startValue = (!isNullOrUndefined(previousEnd)) ? previousEnd : start;\n var endValue = (!isNullOrUndefined(previousEnd)) ? totalEnd - previousTotal : totalEnd;\n if (progress.argsData.value <= progress.minimum || progress.argsData.value > progress.maximum) {\n annotatElementChanged.innerHTML = annotateValue + '%';\n }\n else {\n animation.animate(circularPath, {\n duration: progress.animation.duration,\n delay: progress.animation.delay,\n progress: function (args) {\n progress.cancelResize = true;\n if (isAnnotation && annotatElementChanged) {\n value = effect(args.timeStamp, startValue, endValue, args.duration, false);\n annotateValueChanged = parseInt((((Math.round(value) - start) / totalAngle) * percentage).toString(), 10);\n annotatElementChanged.innerHTML = annotateValueChanged ? annotateValueChanged.toString() + '%' : '0%';\n }\n },\n end: function () {\n progress.cancelResize = false;\n annotatElementChanged.innerHTML = annotateValue + '%';\n }\n });\n }\n };\n ProgressAnimation.prototype.activeAnimate = function (t, start, end, enableRtl) {\n var time = 1 - Math.pow(1 - t, 3);\n var attrValue = start + ((!enableRtl) ? (time * end) : -(time * end));\n return attrValue;\n };\n return ProgressAnimation;\n}());\nexport { ProgressAnimation };\n","import { lineCapRadius, completeAngle } from '../model/constant';\nimport { getPathArc, degreeToLocation } from '../utils/helper';\nimport { PathOption } from '@syncfusion/ej2-svg-base';\n/**\n * Progressbar Segment\n */\nvar Segment = /** @class */ (function () {\n function Segment() {\n }\n /** To render the linear segment */\n Segment.prototype.createLinearSegment = function (progress, id, width, opacity, thickness, progressWidth) {\n var locX = (progress.enableRtl) ? ((progress.cornerRadius === 'Round') ?\n (progress.progressRect.x + progress.progressRect.width) - ((lineCapRadius / 2) * thickness) :\n (progress.progressRect.x + progress.progressRect.width)) :\n ((progress.cornerRadius === 'Round') ? (progress.progressRect.x + (lineCapRadius / 2) * thickness) : progress.progressRect.x);\n var locY = (progress.progressRect.y + (progress.progressRect.height / 2));\n var gapWidth = (progress.gapWidth || progress.themeStyle.linearGapWidth);\n var avlWidth = progressWidth / progress.segmentCount;\n var avlSegWidth = (progressWidth - ((progress.segmentCount - 1) * gapWidth));\n avlSegWidth = (avlSegWidth -\n ((progress.cornerRadius === 'Round') ? progress.segmentCount * (lineCapRadius * thickness) : 0)) / progress.segmentCount;\n var gap = (progress.cornerRadius === 'Round') ? (gapWidth + (lineCapRadius * thickness)) : gapWidth;\n var segmentGroup = progress.renderer.createGroup({ 'id': progress.element.id + id });\n var count = Math.ceil(width / avlWidth);\n var segWidth;\n var color;\n var j = 0;\n var option;\n var segmentPath;\n var tolWidth = (progress.cornerRadius === 'Round') ? (width - (lineCapRadius * thickness)) : width;\n var linearThickness = progress.progressThickness || progress.themeStyle.linearProgressThickness;\n for (var i = 0; i < count; i++) {\n segWidth = (tolWidth < avlSegWidth) ? tolWidth : avlSegWidth;\n if (j < progress.segmentColor.length) {\n color = progress.segmentColor[j];\n j++;\n }\n else {\n j = 0;\n color = progress.segmentColor[j];\n j++;\n }\n option = new PathOption(progress.element.id + id + i, 'none', linearThickness, color, opacity, '0', this.getLinearSegmentPath(locX, locY, segWidth, progress.enableRtl));\n segmentPath = progress.renderer.drawPath(option);\n if (progress.cornerRadius === 'Round') {\n segmentPath.setAttribute('stroke-linecap', 'round');\n }\n segmentGroup.appendChild(segmentPath);\n locX += (progress.enableRtl) ? -avlSegWidth - gap : avlSegWidth + gap;\n tolWidth -= avlSegWidth + gap;\n tolWidth = (tolWidth < 0) ? 0 : tolWidth;\n }\n return segmentGroup;\n };\n Segment.prototype.getLinearSegmentPath = function (x, y, width, enableRtl) {\n return 'M' + ' ' + x + ' ' + y + ' ' + 'L' + (x + ((enableRtl) ? -width : width)) + ' ' + y;\n };\n /** To render the circular segment */\n Segment.prototype.createCircularSegment = function (progress, id, x, y, r, value, opacity, thickness, totalAngle, progressWidth) {\n var start = progress.startAngle;\n var end = this.widthToAngle(progress.minimum, progress.maximum, value, progress.totalAngle);\n end -= (progress.cornerRadius === 'Round' && progress.totalAngle === completeAngle) ?\n this.widthToAngle(0, progressWidth, ((lineCapRadius / 2) * thickness), totalAngle) : 0;\n var size = (progressWidth - ((progress.totalAngle === completeAngle) ? progress.segmentCount :\n progress.segmentCount - 1) * (progress.gapWidth || progress.themeStyle.circularGapWidth));\n size = (size -\n ((progress.cornerRadius === 'Round') ?\n (((progress.totalAngle === completeAngle) ?\n progress.segmentCount : progress.segmentCount - 1) * lineCapRadius * thickness) : 0)) / progress.segmentCount;\n var avlTolEnd = this.widthToAngle(0, progressWidth, (progressWidth / progress.segmentCount), totalAngle);\n avlTolEnd -= (progress.cornerRadius === 'Round' && progress.totalAngle === completeAngle) ?\n this.widthToAngle(0, progressWidth, ((lineCapRadius / 2) * thickness), totalAngle) : 0;\n var avlEnd = this.widthToAngle(0, progressWidth, size, totalAngle);\n var gap = this.widthToAngle(0, progressWidth, (progress.gapWidth || progress.themeStyle.circularGapWidth), totalAngle);\n gap += (progress.cornerRadius === 'Round') ? this.widthToAngle(0, progressWidth, (lineCapRadius * thickness), totalAngle) : 0;\n var segmentGroup = progress.renderer.createGroup({ 'id': progress.element.id + id });\n var gapCount = Math.floor(end / avlTolEnd);\n var count = Math.ceil((end - gap * gapCount) / avlEnd);\n var segmentPath;\n var circularSegment;\n var segmentEnd;\n var avlSegEnd = (start + ((progress.enableRtl) ? -avlEnd : avlEnd)) % 360;\n var color;\n var j = 0;\n var option;\n var circularThickness = progress.progressThickness || progress.themeStyle.circularProgressThickness;\n for (var i = 0; i < count; i++) {\n segmentEnd = (progress.enableRtl) ? ((progress.startAngle - end > avlSegEnd) ? progress.startAngle - end : avlSegEnd) :\n ((progress.startAngle + end < avlSegEnd) ? progress.startAngle + end : avlSegEnd);\n segmentPath = getPathArc(x, y, r, start, segmentEnd, progress.enableRtl);\n if (j < progress.segmentColor.length) {\n color = progress.segmentColor[j];\n j++;\n }\n else {\n j = 0;\n color = progress.segmentColor[j];\n j++;\n }\n option = new PathOption(progress.element.id + id + i, 'none', circularThickness, color, opacity, '0', segmentPath);\n circularSegment = progress.renderer.drawPath(option);\n if (progress.cornerRadius === 'Round') {\n circularSegment.setAttribute('stroke-linecap', 'round');\n }\n segmentGroup.appendChild(circularSegment);\n start = segmentEnd + ((progress.enableRtl) ? -gap : gap);\n avlSegEnd += (progress.enableRtl) ? -avlEnd - gap : avlEnd + gap;\n }\n return segmentGroup;\n };\n Segment.prototype.widthToAngle = function (min, max, value, totalAngle) {\n var angle = ((value - min) / (max - min)) * totalAngle;\n return angle;\n };\n Segment.prototype.createLinearRange = function (totalWidth, progress, progressWidth) {\n var posX = progress.progressRect.x + ((progress.enableRtl) ? progress.progressRect.width : 0);\n var startY = (progress.progressRect.y + (progress.progressRect.height / 2));\n var rangeGroup = progress.renderer.createGroup({ 'id': progress.element.id + '_LinearRangeGroup' });\n var range = progress.rangeColors;\n var thickness = progress.progressThickness || progress.themeStyle.linearProgressThickness;\n var opacity = progress.themeStyle.progressOpacity;\n var rangeMin = progress.minimum;\n var rangeMax = progress.value;\n var gradX = (progress.enableRtl) ? 0.1 : -0.1;\n var gradient;\n var validRange;\n var rangePath;\n var option;\n var startPos;\n var endPos;\n var startX;\n var endX;\n var color;\n var endColor;\n for (var i = 0; i < range.length; i++) {\n validRange = (range[i].start >= rangeMin && range[i].start <= rangeMax &&\n range[i].end >= rangeMin && range[i].end <= rangeMax);\n startPos = totalWidth * progress.calculateProgressRange(range[i].start, rangeMin, rangeMax);\n endPos = totalWidth * progress.calculateProgressRange(range[i].end, rangeMin, rangeMax);\n startX = posX + ((progress.enableRtl) ? -startPos : startPos);\n endX = posX + ((progress.enableRtl) ? -endPos : endPos);\n startX = (validRange) ? ((progress.isGradient && i > 0) ? startX + gradX : startX) : posX;\n endX = (validRange) ? endX : posX;\n color = (progress.isGradient) ? 'url(#lineRangeGrad_' + i + ')' : range[i].color;\n option = new PathOption(progress.element.id + '_LinearRange_' + i, 'none', thickness, color, opacity, '0', 'M' + ' ' + startX + ' ' + startY + ' ' + 'L' + endX + ' ' + startY);\n rangePath = progress.renderer.drawPath(option);\n if (progress.cornerRadius === 'Round' && progressWidth) {\n rangePath.setAttribute('stroke-linecap', 'round');\n }\n rangeGroup.appendChild(rangePath);\n if (progress.isGradient) {\n if (range.length - 1 === i) {\n endColor = range[i].color;\n }\n else {\n endColor = range[i + 1].color;\n }\n gradient = this.setLinearGradientColor(i, range[i].color, endColor, startX, endX, progress);\n rangeGroup.appendChild(gradient);\n }\n }\n return rangeGroup;\n };\n Segment.prototype.createCircularRange = function (centerX, centerY, radius, progress) {\n var rangeGroup = progress.renderer.createGroup({ 'id': progress.element.id + '_CircularRangeGroup' });\n var range = progress.rangeColors;\n var thickness = progress.progressThickness || progress.themeStyle.linearProgressThickness;\n var opacity = progress.themeStyle.progressOpacity;\n var rangeMin = progress.minimum;\n var rangeMax = progress.value;\n var start = progress.startAngle;\n var tolAngle = this.widthToAngle(progress.minimum, progress.maximum, progress.value, progress.totalAngle);\n var gradient;\n var startAngle;\n var endAngle;\n var rangePath;\n var isValidRange;\n var option;\n var color;\n var endColor;\n for (var i = 0; i < range.length; i++) {\n isValidRange = (range[i].start >= rangeMin && range[i].start <= rangeMax &&\n range[i].end >= rangeMin && range[i].end <= rangeMax);\n startAngle = this.widthToAngle(rangeMin, rangeMax, range[i].start, tolAngle);\n endAngle = this.widthToAngle(rangeMin, rangeMax, range[i].end, tolAngle);\n startAngle = (isValidRange) ? (start + ((progress.enableRtl) ? -startAngle : startAngle)) % 360 : start;\n endAngle = (isValidRange) ? (start + ((progress.enableRtl) ? -endAngle : endAngle)) % 360 : start;\n color = (progress.isGradient) ? 'url(#circleRangeGrad_' + i + ')' : range[i].color;\n option = new PathOption(progress.element.id + '_CircularRange_' + i, 'none', thickness, color, opacity, '0', getPathArc(centerX, centerY, radius, startAngle, endAngle, progress.enableRtl));\n rangePath = progress.renderer.drawPath(option);\n if (progress.cornerRadius === 'Round' && startAngle !== endAngle) {\n rangePath.setAttribute('stroke-linecap', 'round');\n }\n rangeGroup.appendChild(rangePath);\n if (progress.isGradient) {\n if (range.length - 1 === i) {\n endColor = range[i].color;\n }\n else {\n endColor = range[i + 1].color;\n }\n gradient = this.setCircularGradientColor(i, range[i].color, endColor, startAngle, endAngle, radius, centerX, centerY, progress);\n rangeGroup.appendChild(gradient);\n }\n }\n return rangeGroup;\n };\n Segment.prototype.setLinearGradientColor = function (id, startColor, endColor, start, end, progress) {\n var stopColor = [];\n var option = { id: 'lineRangeGrad_' + id + '', x1: start.toString(), x2: end.toString() };\n stopColor[0] = { color: startColor, colorStop: '50%' };\n stopColor[1] = { color: endColor, colorStop: '100%' };\n var linearGradient = progress.renderer.drawGradient('linearGradient', option, stopColor);\n linearGradient.firstElementChild.setAttribute('gradientUnits', 'userSpaceOnUse');\n return linearGradient;\n };\n Segment.prototype.setCircularGradientColor = function (id, startColor, endColor, start, end, rad, x, y, progress) {\n var stopColor = [];\n var pos1 = degreeToLocation(x, y, rad, start);\n var pos2 = degreeToLocation(x, y, rad, end);\n var option = {\n id: 'circleRangeGrad_' + id + '', x1: pos1.x.toString(), x2: pos2.x.toString(),\n y1: pos1.y.toString(), y2: pos2.y.toString()\n };\n stopColor[0] = { color: startColor, colorStop: '50%' };\n stopColor[1] = { color: endColor, colorStop: '100%' };\n var linearGradient = progress.renderer.drawGradient('linearGradient', option, stopColor);\n linearGradient.firstElementChild.setAttribute('gradientUnits', 'userSpaceOnUse');\n return linearGradient;\n };\n return Segment;\n}());\nexport { Segment };\n","import { ProgressAnimation } from '../utils/progress-animation';\nimport { TextOption, colorNameToHex, convertHexToColor, setAttributes } from '../utils/helper';\nimport { PathOption, getElement, measureText } from '@syncfusion/ej2-svg-base';\nimport { Segment } from './segment-progress';\nimport { svgLink, gradientType, stopElement } from '../model/constant';\n/**\n * Progress Bar of type Linear\n */\nvar Linear = /** @class */ (function () {\n function Linear(progress) {\n this.segment = new Segment();\n this.animation = new ProgressAnimation();\n this.progress = progress;\n }\n /** To render the linear track */\n Linear.prototype.renderLinearTrack = function () {\n var progress = this.progress;\n var linearTrackGroup = progress.renderer.createGroup({ 'id': progress.element.id + '_LinearTrackGroup' });\n var linearTrack;\n var option;\n this.isRange = (this.progress.rangeColors[0].color !== '' || this.progress.rangeColors[0].start !== null ||\n this.progress.rangeColors[0].end !== null);\n var thickness = (progress.trackThickness || progress.themeStyle.linearTrackThickness);\n var stroke = (progress.argsData.trackColor || progress.themeStyle.linearTrackColor);\n if (progress.cornerRadius === 'Round4px') {\n if (progress.segmentCount > 1) {\n linearTrack = this.createRoundCornerSegment('_LinearTrack_', stroke, thickness, true, 0, progress);\n }\n else {\n option = new PathOption(progress.element.id + '_Lineartrack', stroke, 0, 'none', progress.themeStyle.trackOpacity, '0', this.cornerRadius(progress.progressRect.x, progress.progressRect.y, progress.progressRect.width, thickness, 4, ''));\n linearTrack = progress.renderer.drawPath(option);\n }\n }\n else {\n option = new PathOption(progress.element.id + '_Lineartrack', 'none', thickness, stroke, progress.themeStyle.trackOpacity, '0', progress.getPathLine(progress.progressRect.x, progress.progressRect.width, thickness));\n linearTrack = progress.renderer.drawPath(option);\n progress.trackWidth = linearTrack.getTotalLength();\n if (progress.cornerRadius === 'Round' && !this.isRange) {\n linearTrack.setAttribute('stroke-linecap', 'round');\n }\n if (progress.segmentCount > 1 && !this.isRange && !progress.enableProgressSegments) {\n progress.segmentSize = progress.calculateSegmentSize(progress.trackWidth, thickness);\n linearTrack.setAttribute('stroke-dasharray', progress.segmentSize);\n }\n }\n linearTrackGroup.appendChild(linearTrack);\n progress.svgObject.appendChild(linearTrackGroup);\n };\n /** To render the linear progress */\n // tslint:disable-next-line:max-func-body-length\n Linear.prototype.renderLinearProgress = function (refresh, previousWidth) {\n if (previousWidth === void 0) { previousWidth = 0; }\n var progress = this.progress;\n var option;\n var linearProgress;\n var clipPathLinear;\n var clipPathIndeterminate;\n var linearProgressGroup;\n var animationdelay;\n var segmentWidth;\n var strippedStroke;\n var ismaximum = (progress.value === progress.maximum);\n var previousProgressWidth = progress.progressRect.width * progress.calculateProgressRange(progress.value);\n var progressWidth = progress.calculateProgressRange(progress.argsData.value);\n this.linearProgressWidth = progress.progressRect.width *\n ((progress.isIndeterminate && !progress.enableProgressSegments) ? 1 : progressWidth);\n if (!refresh) {\n linearProgressGroup = progress.renderer.createGroup({ 'id': progress.element.id + '_LinearProgressGroup' });\n }\n else {\n linearProgressGroup = getElement(progress.element.id + '_LinearProgressGroup');\n }\n var thickness = (progress.progressThickness || progress.themeStyle.linearProgressThickness);\n var stroke = (!progress.isStriped) ? this.checkingLinearProgressColor() : 'url(#' + progress.element.id + '_LinearStriped)';\n if (progress.cornerRadius === 'Round4px') {\n option = new PathOption(progress.element.id + '_Linearprogress', stroke, 0, 'none', progress.themeStyle.progressOpacity, '0', this.cornerRadius(progress.progressRect.x, progress.progressRect.y, this.linearProgressWidth, thickness, 4, (ismaximum || progress.isIndeterminate) ? '' : 'start'));\n }\n else {\n option = new PathOption(progress.element.id + '_Linearprogress', 'none', thickness, stroke, progress.themeStyle.progressOpacity, '0', progress.getPathLine(progress.progressRect.x, this.linearProgressWidth, thickness));\n }\n progress.progressWidth = progress.renderer.drawPath(option).getTotalLength();\n progress.segmentSize = (!progress.enableProgressSegments) ? progress.segmentSize :\n progress.calculateSegmentSize(progress.progressWidth, thickness);\n if (progress.secondaryProgress !== null && !progress.isIndeterminate) {\n this.renderLinearBuffer(progress);\n }\n if (progress.argsData.value !== null) {\n if (progress.cornerRadius === 'Round4px') {\n if (progress.segmentCount > 1) {\n linearProgress = this.createRoundCornerSegment('_Linearprogress_', stroke, thickness, false, this.linearProgressWidth, progress, progress.themeStyle.progressOpacity);\n }\n else {\n linearProgress = progress.renderer.drawPath(option);\n }\n }\n else {\n if (progress.segmentColor.length !== 0 && !progress.isIndeterminate && !this.isRange) {\n segmentWidth = (!progress.enableProgressSegments) ? progress.trackWidth : progress.progressWidth;\n linearProgress = this.segment.createLinearSegment(progress, '_LinearProgressSegment', this.linearProgressWidth, progress.themeStyle.progressOpacity, thickness, segmentWidth);\n }\n else if (this.isRange && !progress.isIndeterminate) {\n linearProgress = this.segment.createLinearRange(this.linearProgressWidth, progress, progressWidth);\n }\n else {\n if (!refresh) {\n linearProgress = progress.renderer.drawPath(option);\n }\n else {\n linearProgress = getElement(progress.element.id + '_Linearprogress');\n linearProgress.setAttribute('d', progress.getPathLine(progress.progressRect.x, this.linearProgressWidth, thickness));\n linearProgress.setAttribute('stroke', stroke);\n }\n if (progress.segmentCount > 1) {\n linearProgress.setAttribute('stroke-dasharray', progress.segmentSize);\n }\n if (progress.cornerRadius === 'Round' && progressWidth) {\n linearProgress.setAttribute('stroke-linecap', 'round');\n }\n }\n }\n linearProgressGroup.appendChild(linearProgress);\n if (progress.isStriped && !progress.isIndeterminate) {\n strippedStroke = this.checkingLinearProgressColor();\n this.renderLinearStriped(strippedStroke, linearProgressGroup, progress);\n }\n if (progress.isActive && !progress.isIndeterminate && !progress.isStriped) {\n this.renderActiveState(linearProgressGroup, progressWidth, this.linearProgressWidth, thickness, refresh);\n }\n if (progress.animation.enable && !progress.isIndeterminate && !progress.isActive && !progress.isStriped) {\n if ((progress.secondaryProgress !== null)) {\n animationdelay = progress.animation.delay + (this.bufferWidth - this.linearProgressWidth);\n }\n else {\n animationdelay = progress.animation.delay;\n }\n this.delay = animationdelay;\n clipPathLinear = progress.createClipPath(progress.clipPath, progressWidth, null, refresh, thickness, false, (progress.cornerRadius === 'Round4px' && ismaximum));\n linearProgressGroup.appendChild(progress.clipPath);\n linearProgress.setAttribute('style', 'clip-path:url(#' + progress.element.id + '_clippath)');\n this.animation.doLinearAnimation(clipPathLinear, progress, animationdelay, refresh ? previousWidth : 0);\n }\n if (progress.isIndeterminate) {\n clipPathIndeterminate = progress.createClipPath(progress.clipPath, (progress.enableProgressSegments) ? 1 : progressWidth, null, refresh, thickness, progress.enableProgressSegments);\n linearProgressGroup.appendChild(progress.clipPath);\n linearProgress.setAttribute('style', 'clip-path:url(#' + progress.element.id + '_clippath)');\n this.animation.doLinearIndeterminate(((!progress.enableProgressSegments) ? clipPathIndeterminate : linearProgress), this.linearProgressWidth, thickness, progress, clipPathIndeterminate);\n }\n progress.svgObject.appendChild(linearProgressGroup);\n progress.previousWidth = previousProgressWidth;\n }\n };\n /** To render the linear buffer */\n Linear.prototype.renderLinearBuffer = function (progress) {\n var linearBuffer;\n var clipPathBuffer;\n var linearBufferWidth;\n var option;\n var segmentWidth;\n var ismaximum = (progress.secondaryProgress === progress.maximum);\n var secondaryProgressWidth = progress.calculateProgressRange(progress.secondaryProgress);\n this.bufferWidth = linearBufferWidth = progress.progressRect.width * secondaryProgressWidth;\n var linearBufferGroup = progress.renderer.createGroup({ 'id': progress.element.id + '_LinearBufferGroup' });\n var thickness = progress.secondaryProgressThickness ? progress.secondaryProgressThickness\n : (progress.progressThickness || progress.themeStyle.linearProgressThickness);\n var stroke = progress.secondaryProgressColor ? progress.secondaryProgressColor : this.checkingLinearProgressColor();\n if (progress.cornerRadius === 'Round4px') {\n if (progress.segmentCount > 1) {\n linearBuffer = this.createRoundCornerSegment('_Linearbuffer_', stroke, thickness, false, linearBufferWidth, progress, progress.themeStyle.bufferOpacity);\n }\n else {\n option = new PathOption(progress.element.id + '_Linearbuffer', stroke, 0, 'none', progress.themeStyle.bufferOpacity, '0', this.cornerRadius(progress.progressRect.x, progress.progressRect.y, linearBufferWidth, thickness, 4, (ismaximum) ? '' : 'start'));\n linearBuffer = progress.renderer.drawPath(option);\n }\n }\n else {\n option = new PathOption(progress.element.id + '_Linearbuffer', 'none', thickness, stroke, progress.themeStyle.bufferOpacity, '0', progress.getPathLine(progress.progressRect.x, linearBufferWidth, thickness));\n if (progress.segmentColor.length !== 0 && !progress.isIndeterminate && !this.isRange) {\n segmentWidth = (!progress.enableProgressSegments) ? progress.trackWidth : progress.progressWidth;\n linearBuffer = this.segment.createLinearSegment(progress, '_LinearBufferSegment', linearBufferWidth, progress.themeStyle.bufferOpacity, (progress.progressThickness || progress.themeStyle.linearProgressThickness), segmentWidth);\n }\n else {\n linearBuffer = progress.renderer.drawPath(option);\n if (progress.segmentCount > 1 && !this.isRange) {\n linearBuffer.setAttribute('stroke-dasharray', progress.segmentSize);\n }\n if (progress.cornerRadius === 'Round' && !this.isRange) {\n linearBuffer.setAttribute('stroke-linecap', 'round');\n }\n }\n }\n linearBufferGroup.appendChild(linearBuffer);\n if (progress.animation.enable) {\n clipPathBuffer = progress.createClipPath(progress.bufferClipPath, secondaryProgressWidth, null, false, thickness, false, (progress.cornerRadius === 'Round4px' && ismaximum));\n linearBufferGroup.appendChild(progress.bufferClipPath);\n linearBuffer.setAttribute('style', 'clip-path:url(#' + progress.element.id + '_clippathBuffer)');\n this.animation.doLinearAnimation(clipPathBuffer, progress, progress.animation.delay, 0);\n }\n progress.svgObject.appendChild(linearBufferGroup);\n };\n /** Render the Linear Label */\n //tslint:disable-next-line:max-func-body-length\n Linear.prototype.renderLinearLabel = function (isProgressRefresh) {\n if (isProgressRefresh === void 0) { isProgressRefresh = false; }\n var linearlabel;\n var posX;\n var posY;\n var textSize;\n var percentage = 100;\n var option;\n var defaultPos;\n var far;\n var center;\n var pos;\n var clipPath;\n var thickness = (this.progress.progressThickness || this.progress.themeStyle.linearProgressThickness);\n var padding = 5;\n var progress = this.progress;\n var textAlignment = progress.labelStyle.textAlignment;\n var labelText = progress.labelStyle.text;\n var fontBackground = this.checkingLinearProgressColor();\n var progressWidth = progress.progressRect.width * progress.calculateProgressRange(progress.value);\n var linearLabelGroup = progress.renderer.createGroup({ 'id': progress.element.id + '_LinearLabelGroup' });\n if (document.getElementById(linearLabelGroup.id)) {\n document.getElementById(linearLabelGroup.id).remove();\n }\n var labelValue = ((progress.value - progress.minimum) / (progress.maximum - progress.minimum)) * percentage;\n var linearValue = (progress.value < progress.minimum || progress.value > progress.maximum) ? 0 : Math.round(labelValue);\n // Checking the font color\n var rgbValue = convertHexToColor(colorNameToHex(fontBackground));\n var contrast = Math.round((rgbValue.r * 299 + rgbValue.g * 587 + rgbValue.b * 114) / 1000);\n var argsData = {\n cancel: false, text: labelText ? labelText : String(linearValue) + '%', color: progress.labelStyle.color\n };\n progress.trigger('textRender', argsData);\n if (!argsData.cancel) {\n textSize = measureText(argsData.text, progress.labelStyle);\n defaultPos = (progress.enableRtl) ? (progress.progressRect.x + progress.progressRect.width - textSize.width / 2) :\n (progress.progressRect.x + textSize.width / 2);\n if (progress.labelOnTrack) {\n if (textAlignment === 'Near') {\n posX = defaultPos + ((progress.enableRtl) ? -padding : padding);\n }\n else if (textAlignment === 'Center') {\n center = (progress.enableRtl) ? (progress.progressRect.x + progress.progressRect.width - progressWidth / 2) :\n (progress.progressRect.x + progressWidth / 2);\n pos = (progress.enableRtl) ? (center <= defaultPos) : (center >= defaultPos);\n if (pos) {\n posX = center;\n }\n else {\n posX = defaultPos;\n }\n }\n else {\n far = (progress.enableRtl) ?\n ((progress.progressRect.x + progress.progressRect.width - progressWidth) + textSize.width / 2) :\n (progress.progressRect.x + progressWidth - textSize.width / 2);\n far += (progress.enableRtl) ? padding : -padding;\n pos = (progress.enableRtl) ? (far <= defaultPos) : (far >= defaultPos);\n if (pos) {\n posX = far;\n }\n else {\n posX = defaultPos;\n }\n }\n }\n else {\n if (textAlignment === 'Near') {\n posX = defaultPos + ((progress.enableRtl) ? -padding : padding);\n }\n else if (textAlignment === 'Center') {\n posX = (progress.progressRect.x + progress.progressRect.width) / 2;\n }\n else {\n posX = (progress.enableRtl) ?\n (progress.progressRect.x + textSize.width / 2) :\n (progress.progressRect.x + progress.progressRect.width - textSize.width / 2);\n posX += (progress.enableRtl) ? padding : -padding;\n }\n }\n if (this.progress.cornerRadius === 'Round4px') {\n posY = progress.progressRect.y + (thickness / 2) + (textSize.height / 4);\n }\n else {\n posY = progress.progressRect.y + (progress.progressRect.height / 2) + (textSize.height / 4);\n }\n option = new TextOption(progress.element.id + '_linearLabel', progress.labelStyle.size || progress.themeStyle.linearFontSize, progress.labelStyle.fontStyle || progress.themeStyle.linearFontStyle, progress.labelStyle.fontFamily || progress.themeStyle.linearFontFamily, progress.labelStyle.fontWeight, 'middle', argsData.color || ((contrast >= 128) ? 'black' : 'white'), posX, posY);\n linearlabel = progress.renderer.createText(option, argsData.text);\n linearLabelGroup.appendChild(linearlabel);\n if (progress.animation.enable && !progress.isIndeterminate) {\n clipPath = progress.renderer.createClipPath({ 'id': progress.element.id + '_clippathLabel' });\n progress.createClipPath(clipPath, 1, null, false, (progress.progressThickness || progress.themeStyle.linearProgressThickness), true);\n linearLabelGroup.appendChild(clipPath);\n linearlabel.setAttribute('style', 'clip-path:url(#' + progress.element.id + '_clippathLabel)');\n this.animation.doLabelAnimation(linearlabel, (isProgressRefresh ? progress.previousLabelWidth : 0), progressWidth - (isProgressRefresh ? progress.previousLabelWidth : 0), progress, this.delay, textSize.width);\n }\n progress.svgObject.appendChild(linearLabelGroup);\n progress.previousLabelWidth = progressWidth;\n }\n };\n /** To render a progressbar active state */\n Linear.prototype.renderActiveState = function (progressGroup, progressWidth, linearProgressWidth, thickness, refresh) {\n var linearActive;\n var progress = this.progress;\n var option;\n var ismaximum = (progress.value === progress.maximum);\n if (progress.cornerRadius === 'Round4px') {\n if (progress.segmentCount > 1) {\n linearActive = this.createRoundCornerSegment('_LinearActiveProgress_', '#ffffff', thickness, false, linearProgressWidth, progress, 0.5);\n }\n else {\n option = new PathOption(progress.element.id + '_LinearActiveProgress', '#ffffff', 0, 'none', 0.5, '0', this.cornerRadius(progress.progressRect.x, progress.progressRect.y, linearProgressWidth, thickness, 4, ismaximum ? '' : 'start'));\n linearActive = progress.renderer.drawPath(option);\n }\n }\n else {\n if (!refresh) {\n option = new PathOption(progress.element.id + '_LinearActiveProgress', 'none', thickness, '#ffffff', 0.5, '', progress.getPathLine(progress.progressRect.x, linearProgressWidth, thickness));\n linearActive = progress.renderer.drawPath(option);\n }\n else {\n linearActive = getElement(progress.element.id + '_LinearActiveProgress');\n linearActive.setAttribute('d', progress.getPathLine(progress.progressRect.x, linearProgressWidth, thickness));\n }\n if (progress.segmentCount > 1 && !this.isRange) {\n linearActive.setAttribute('stroke-dasharray', progress.segmentSize);\n }\n if (progress.cornerRadius === 'Round' && progressWidth && !this.isRange) {\n linearActive.setAttribute('stroke-linecap', 'round');\n }\n }\n var activeClip = progress.createClipPath(progress.clipPath, progressWidth, null, refresh, thickness, false);\n linearActive.setAttribute('style', 'clip-path:url(#' + progress.element.id + '_clippath)');\n progressGroup.appendChild(linearActive);\n progressGroup.appendChild(progress.clipPath);\n this.animation.doLinearAnimation(activeClip, progress, 0, 0, linearActive);\n };\n /** To render a striped stroke */\n Linear.prototype.renderLinearStriped = function (color, group, progress) {\n var defs = progress.renderer.createDefs();\n var linearGradient = document.createElementNS(svgLink, gradientType);\n var stripWidth = 14;\n var stop;\n var stopOption = [];\n var gradOption = {\n id: progress.element.id + '_LinearStriped', x1: (progress.progressRect.x).toString(),\n x2: (progress.progressRect.x + stripWidth).toString(),\n spreadMethod: 'repeat', gradientUnits: 'userSpaceOnUse', gradientTransform: 'rotate(-45)'\n };\n stopOption = [{ offset: '50%', 'stop-color': color, 'stop-opacity': '1' },\n { offset: '50%', 'stop-color': color, 'stop-opacity': '0.4' }];\n linearGradient = setAttributes(gradOption, linearGradient);\n for (var i = 0; i < stopOption.length; i++) {\n stop = document.createElementNS(svgLink, stopElement);\n stop = setAttributes(stopOption[i], stop);\n linearGradient.appendChild(stop);\n }\n defs.appendChild(linearGradient);\n group.appendChild(defs);\n if (progress.animation.enable) {\n this.animation.doStripedAnimation(linearGradient, progress, 0);\n }\n };\n /** checking progress color */\n Linear.prototype.checkingLinearProgressColor = function () {\n var linearColor;\n var progress = this.progress;\n var role = progress.role;\n switch (role) {\n case 'Success':\n linearColor = progress.themeStyle.success;\n break;\n case 'Info':\n linearColor = progress.themeStyle.info;\n break;\n case 'Warning':\n linearColor = progress.themeStyle.warning;\n break;\n case 'Danger':\n linearColor = progress.themeStyle.danger;\n break;\n default:\n linearColor = (progress.argsData.progressColor || progress.themeStyle.linearProgressColor);\n }\n return linearColor;\n };\n /** Bootstrap 3 & Bootstrap 4 corner path */\n Linear.prototype.cornerRadius = function (x, y, width, height, radius, pathtype) {\n var path = '';\n var endWidth = width;\n var endRadius = radius;\n switch (pathtype) {\n case 'start':\n path = 'M' + x + ',' + y + ' '\n + 'h' + (width) + ' '\n + 'v' + (height) + ' '\n + 'h' + (-width) + ' '\n + 'a' + radius + ',' + radius + ' 0 0 1 ' + -radius + ',' + -radius + ' '\n + 'v' + (2 * radius - height) + ' '\n + 'a' + radius + ',' + radius + ' 0 0 1 ' + radius + ',' + -radius + ' '\n + 'z';\n break;\n case 'end':\n path = 'M' + x + ',' + y + ' '\n + 'h' + (endWidth - endRadius) + ' '\n + 'a' + endRadius + ',' + endRadius + ' 0 0 1 ' + endRadius + ',' + endRadius + ' '\n + 'v' + (height - 2 * endRadius) + ' '\n + 'a' + endRadius + ',' + endRadius + ' 0 0 1 ' + -endRadius + ',' + endRadius + ' '\n + 'h' + (radius - endWidth) + ' '\n + 'v' + (-height) + ' '\n + 'z';\n break;\n case 'none':\n path = 'M' + x + ',' + y + ' '\n + 'h' + (width) + ' '\n + 'v' + (height) + ' '\n + 'h' + (-width) + ' '\n + 'v' + (-height) + ' '\n + 'z';\n break;\n default:\n path = 'M' + x + ',' + y + ' '\n + 'h' + (width - radius) + ' '\n + 'a' + radius + ',' + radius + ' 0 0 1 ' + radius + ',' + radius + ' '\n + 'v' + (height - 2 * radius) + ' '\n + 'a' + radius + ',' + radius + ' 0 0 1 ' + -radius + ',' + radius + ' '\n + 'h' + (radius - width) + ' '\n + 'a' + radius + ',' + radius + ' 0 0 1 ' + -radius + ',' + -radius + ' '\n + 'v' + (2 * radius - height) + ' '\n + 'a' + radius + ',' + radius + ' 0 0 1 ' + radius + ',' + -radius + ' '\n + 'z';\n }\n return path;\n };\n /** Bootstrap 3 & Bootstrap 4 corner segment */\n Linear.prototype.createRoundCornerSegment = function (id, stroke, thickness, isTrack, progressWidth, progress, opacity) {\n var locX = progress.progressRect.x;\n var locY = progress.progressRect.y;\n var width = progress.progressRect.width;\n var option;\n var pathType;\n var avlWidth;\n var gapWidth = (progress.gapWidth || progress.themeStyle.linearGapWidth);\n var segWidth = (width - ((progress.segmentCount - 1) * gapWidth)) / progress.segmentCount;\n var segmentGroup = progress.renderer.createGroup({ 'id': progress.element.id + id + 'SegmentGroup' });\n var segmentPath;\n for (var i = 1; i <= progress.segmentCount; i++) {\n if (i === 1 || i === progress.segmentCount) {\n pathType = (i === 1) ? 'start' : 'end';\n }\n else {\n pathType = 'none';\n }\n if (isTrack) {\n option = new PathOption(progress.element.id + id + i, stroke, 0, 'none', progress.themeStyle.trackOpacity, '0', this.cornerRadius(locX, locY, segWidth, thickness, 4, pathType));\n segmentPath = progress.renderer.drawPath(option);\n segmentGroup.appendChild(segmentPath);\n locX += (segWidth + gapWidth);\n }\n else {\n avlWidth = (progressWidth < segWidth) ? progressWidth : segWidth;\n option = new PathOption(progress.element.id + id + i, stroke, 0, 'none', opacity, '0', this.cornerRadius(locX, locY, avlWidth, thickness, 4, pathType));\n segmentPath = progress.renderer.drawPath(option);\n segmentGroup.appendChild(segmentPath);\n locX += (segWidth + gapWidth);\n progressWidth -= (segWidth + gapWidth);\n if (progressWidth <= 0) {\n break;\n }\n }\n }\n return segmentGroup;\n };\n return Linear;\n}());\nexport { Linear };\n","import { ProgressAnimation } from '../utils/progress-animation';\nimport { PathOption, getElement, measureText } from '@syncfusion/ej2-svg-base';\nimport { stringToNumber, getPathArc, degreeToLocation } from '../utils/helper';\nimport { Segment } from './segment-progress';\nimport { TextOption } from '../utils/helper';\n/**\n * Progressbar of type circular\n */\nvar Circular = /** @class */ (function () {\n function Circular(progress) {\n this.segment = new Segment();\n this.animation = new ProgressAnimation();\n this.progress = progress;\n }\n /** To render the circular track */\n Circular.prototype.renderCircularTrack = function () {\n var progress = this.progress;\n var circularTrackGroup = progress.renderer.createGroup({ 'id': progress.element.id + '_CircularTrackGroup' });\n var radius;\n var endAngle;\n var startAngle = progress.startAngle;\n progress.totalAngle = (progress.endAngle - progress.startAngle) % 360;\n progress.totalAngle = (progress.totalAngle <= 0 ? (360 + progress.totalAngle) : progress.totalAngle);\n progress.totalAngle -= (progress.totalAngle === 360) ? 0.01 : 0;\n this.trackEndAngle = endAngle = (progress.startAngle + ((progress.enableRtl) ? -progress.totalAngle : +progress.totalAngle)) % 360;\n this.centerX = progress.progressRect.x + (progress.progressRect.width / 2);\n this.centerY = progress.progressRect.y + (progress.progressRect.height / 2);\n this.maxThickness = Math.max(progress.trackThickness, progress.progressThickness) ||\n Math.max(progress.themeStyle.circularProgressThickness, progress.themeStyle.circularTrackThickness);\n this.availableSize = (Math.min(progress.progressRect.height, progress.progressRect.width) / 2) - this.maxThickness / 2;\n radius = stringToNumber(progress.radius, this.availableSize);\n radius = (radius === null) ? 0 : radius;\n var stroke = (progress.argsData.trackColor || progress.themeStyle.circularTrackColor);\n var fill = (progress.enablePieProgress) ? (progress.argsData.trackColor || progress.themeStyle.circularTrackColor) : 'none';\n var strokeWidth = (progress.enablePieProgress) ? 0 :\n (progress.trackThickness || progress.themeStyle.circularTrackThickness);\n var circularPath = getPathArc(this.centerX, this.centerY, radius, startAngle, endAngle, progress.enableRtl, progress.enablePieProgress);\n this.isRange = (this.progress.rangeColors[0].color !== '' || this.progress.rangeColors[0].start !== null ||\n this.progress.rangeColors[0].end !== null);\n var option = new PathOption(progress.element.id + '_Circulartrack', fill, strokeWidth, stroke, progress.themeStyle.trackOpacity, '0', circularPath);\n var circularTrack = progress.renderer.drawPath(option);\n progress.trackWidth = circularTrack.getTotalLength();\n if (progress.segmentCount > 1 && !progress.enableProgressSegments && !progress.enablePieProgress && !this.isRange) {\n progress.segmentSize = progress.calculateSegmentSize(progress.trackWidth, strokeWidth);\n circularTrack.setAttribute('stroke-dasharray', progress.segmentSize);\n }\n if (progress.cornerRadius === 'Round' && !progress.enablePieProgress && !this.isRange) {\n circularTrack.setAttribute('stroke-linecap', 'round');\n }\n circularTrackGroup.appendChild(circularTrack);\n progress.svgObject.appendChild(circularTrackGroup);\n };\n /** To render the circular progress */\n Circular.prototype.renderCircularProgress = function (previousEnd, previousTotalEnd, refresh) {\n var progress = this.progress;\n var startAngle = progress.startAngle;\n var endAngle;\n var totalAngle;\n var radius;\n var previousPath;\n var progressTotalAngle;\n var progressEnd;\n var circularProgress;\n var linearClipPath;\n var circularProgressGroup;\n var segmentWidth;\n if (!refresh) {\n circularProgressGroup = progress.renderer.createGroup({ 'id': progress.element.id + '_CircularProgressGroup' });\n }\n else {\n circularProgressGroup = getElement(progress.element.id + '_CircularProgressGroup');\n }\n radius = stringToNumber(progress.innerRadius, this.availableSize);\n radius = (radius === null) ? 0 : radius;\n progress.previousTotalEnd = progressEnd = progress.calculateProgressRange(progress.argsData.value);\n var progressEndAngle = (progress.startAngle + ((progress.enableRtl) ? -progressEnd : progressEnd)) % 360;\n progress.previousEndAngle = endAngle = ((progress.isIndeterminate && !progress.enableProgressSegments) ? (progress.startAngle + ((progress.enableRtl) ? -progress.totalAngle : progress.totalAngle)) % 360 : progressEndAngle);\n progressTotalAngle = (progressEnd - progress.startAngle) % 360;\n progressTotalAngle = (progressTotalAngle <= 0 ? (360 + progressTotalAngle) : progressTotalAngle);\n progressTotalAngle -= (progressTotalAngle === 360) ? 0.01 : 0;\n var circularPath = getPathArc(this.centerX, this.centerY, radius, startAngle, endAngle, progress.enableRtl, progress.enablePieProgress);\n var stroke = this.checkingCircularProgressColor();\n var fill = (progress.enablePieProgress) ? stroke : 'none';\n var thickness = (progress.progressThickness || progress.themeStyle.circularProgressThickness);\n var strokeWidth = (progress.enablePieProgress) ? 0 : thickness;\n var option = new PathOption(progress.element.id + '_Circularprogress', fill, strokeWidth, stroke, progress.themeStyle.progressOpacity, '0', circularPath);\n progress.progressWidth = progress.renderer.drawPath(option).getTotalLength();\n progress.segmentSize = this.validateSegmentSize(progress, thickness);\n this.endPosition = degreeToLocation(this.centerX, this.centerY, radius, endAngle);\n if (progress.secondaryProgress !== null && !progress.isIndeterminate) {\n this.renderCircularBuffer(progress, radius, progressTotalAngle);\n }\n if (progress.argsData.value !== null) {\n if (progress.segmentColor.length !== 0 && !progress.isIndeterminate && !progress.enablePieProgress) {\n totalAngle = (!progress.enableProgressSegments) ? progress.totalAngle : progressTotalAngle;\n segmentWidth = (!progress.enableProgressSegments) ? progress.trackWidth : progress.progressWidth;\n circularProgress = this.segment.createCircularSegment(progress, '_CircularProgressSegment', this.centerX, this.centerY, radius, progress.argsData.value, progress.themeStyle.progressOpacity, thickness, totalAngle, segmentWidth);\n }\n else if (this.isRange && !progress.isIndeterminate) {\n circularProgress = this.segment.createCircularRange(this.centerX, this.centerY, radius, progress);\n }\n else {\n if (!refresh) {\n circularProgress = progress.renderer.drawPath(option);\n }\n else {\n circularProgress = getElement(progress.element.id + '_Circularprogress');\n previousPath = circularProgress.getAttribute('d');\n circularProgress.setAttribute('stroke', stroke);\n circularProgress.setAttribute('d', circularPath);\n }\n if (progress.segmentCount > 1 && !progress.enablePieProgress) {\n circularProgress.setAttribute('stroke-dasharray', progress.segmentSize);\n }\n if (progress.cornerRadius === 'Round' && startAngle !== endAngle) {\n circularProgress.setAttribute('stroke-linecap', 'round');\n }\n }\n circularProgressGroup.appendChild(circularProgress);\n if (progress.isActive && !progress.isIndeterminate && !progress.enablePieProgress) {\n this.renderActiveState(circularProgressGroup, radius, strokeWidth, circularPath, progressEndAngle, progressEnd, refresh);\n }\n if (progress.animation.enable || progress.isIndeterminate) {\n this.delay = (progress.secondaryProgress !== null) ? 300 : progress.animation.delay;\n linearClipPath = progress.createClipPath(progress.clipPath, null, refresh ? previousPath : '', refresh);\n circularProgressGroup.appendChild(progress.clipPath);\n if (progress.animation.enable && !progress.isIndeterminate && !progress.isActive) {\n circularProgress.setAttribute('style', 'clip-path:url(#' + progress.element.id + '_clippath)');\n this.animation.doCircularAnimation(this.centerX, this.centerY, radius, progressEndAngle, progressEnd, linearClipPath, progress, thickness, this.delay, refresh ? previousEnd : null, refresh ? previousTotalEnd : null);\n }\n if (progress.isIndeterminate) {\n if (progress.enableProgressSegments) {\n linearClipPath.setAttribute('d', getPathArc(this.centerX, this.centerY, radius + (thickness / 2), progress.startAngle, this.trackEndAngle, progress.enableRtl, true));\n }\n circularProgress.setAttribute('style', 'clip-path:url(#' + progress.element.id + '_clippath)');\n this.animation.doCircularIndeterminate((!progress.enableProgressSegments) ? linearClipPath : circularProgress, progress, startAngle, progressEndAngle, this.centerX, this.centerY, radius, thickness, linearClipPath);\n }\n }\n progress.svgObject.appendChild(circularProgressGroup);\n }\n };\n /** To render the circular buffer */\n Circular.prototype.renderCircularBuffer = function (progress, radius, progressTotalAngle) {\n var bufferClipPath;\n var circularBuffer;\n var segmentWidth;\n var totalAngle;\n var circularBufferGroup = progress.renderer.createGroup({ 'id': progress.element.id + '_ CircularBufferGroup' });\n var bufferEnd = progress.calculateProgressRange(progress.secondaryProgress);\n var endAngle = (progress.startAngle + ((progress.enableRtl) ? -bufferEnd : bufferEnd)) % 360;\n var circularPath = getPathArc(this.centerX, this.centerY, radius, progress.startAngle, endAngle, progress.enableRtl, progress.enablePieProgress);\n this.bufferEndPosition = degreeToLocation(this.centerX, this.centerY, radius, endAngle);\n var stroke = progress.secondaryProgressColor ? progress.secondaryProgressColor : this.checkingCircularProgressColor();\n var fill = (progress.enablePieProgress) ? stroke : 'none';\n var strokeWidth = (progress.enablePieProgress) ? 0 :\n (progress.secondaryProgressThickness ? progress.secondaryProgressThickness :\n (progress.progressThickness || progress.themeStyle.circularProgressThickness));\n var option = new PathOption(progress.element.id + '_Circularbuffer', fill, strokeWidth, stroke, progress.themeStyle.bufferOpacity, '0', circularPath);\n if (progress.segmentColor.length !== 0 && !progress.isIndeterminate && !progress.enablePieProgress && !this.isRange) {\n totalAngle = (!progress.enableProgressSegments) ? progress.totalAngle : progressTotalAngle;\n segmentWidth = (!progress.enableProgressSegments) ? progress.trackWidth : progress.progressWidth;\n circularBuffer = this.segment.createCircularSegment(progress, '_CircularBufferSegment', this.centerX, this.centerY, radius, progress.secondaryProgress, progress.themeStyle.bufferOpacity, strokeWidth, totalAngle, segmentWidth);\n }\n else {\n circularBuffer = progress.renderer.drawPath(option);\n if (progress.segmentCount > 1 && !progress.enablePieProgress && !this.isRange) {\n circularBuffer.setAttribute('stroke-dasharray', progress.segmentSize);\n }\n if (progress.cornerRadius === 'Round' && !this.isRange) {\n circularBuffer.setAttribute('stroke-linecap', 'round');\n }\n }\n circularBufferGroup.appendChild(circularBuffer);\n if (progress.animation.enable && !progress.isActive) {\n bufferClipPath = progress.createClipPath(progress.bufferClipPath, null, '', false);\n circularBufferGroup.appendChild(progress.bufferClipPath);\n circularBuffer.setAttribute('style', 'clip-path:url(#' + progress.element.id + '_clippathBuffer)');\n this.animation.doCircularAnimation(this.centerX, this.centerY, radius, endAngle, bufferEnd, bufferClipPath, progress, (progress.progressThickness || progress.themeStyle.circularProgressThickness), progress.animation.delay);\n }\n progress.svgObject.appendChild(circularBufferGroup);\n };\n /** To render the circular Label */\n Circular.prototype.renderCircularLabel = function (isProgressRefresh) {\n if (isProgressRefresh === void 0) { isProgressRefresh = false; }\n var end;\n var circularLabel;\n var centerY;\n var textSize;\n var option;\n var percentage = 100;\n var progress = this.progress;\n var labelText = progress.labelStyle.text;\n var circularLabelGroup = progress.renderer.createGroup({ 'id': progress.element.id + '_CircularLabelGroup' });\n if (document.getElementById(circularLabelGroup.id)) {\n document.getElementById(circularLabelGroup.id).remove();\n }\n var labelValue = ((progress.value - progress.minimum) / (progress.maximum - progress.minimum)) * percentage;\n var circularValue = (progress.value < progress.minimum || progress.value > progress.maximum) ? 0 : Math.round(labelValue);\n var argsData = {\n cancel: false, text: labelText ? labelText : String(circularValue) + '%', color: progress.labelStyle.color\n };\n progress.trigger('textRender', argsData);\n if (!argsData.cancel) {\n textSize = measureText(argsData.text, progress.labelStyle);\n centerY = this.centerY + (textSize.height / 2);\n option = new TextOption(progress.element.id + '_circularLabel', progress.labelStyle.size || progress.themeStyle.circularFontSize, progress.labelStyle.fontStyle || progress.themeStyle.circularFontStyle, progress.labelStyle.fontFamily || progress.themeStyle.circularFontFamily, progress.labelStyle.fontWeight, 'middle', argsData.color || progress.themeStyle.fontColor, this.centerX, centerY, progress.progressRect.width, progress.progressRect.height);\n circularLabel = progress.renderer.createText(option, argsData.text);\n circularLabelGroup.appendChild(circularLabel);\n if (progress.animation.enable && !progress.isIndeterminate) {\n end = ((progress.value - progress.minimum) / (progress.maximum - progress.minimum)) * progress.totalAngle;\n end = (progress.value < progress.minimum || progress.value > progress.maximum) ? 0 : end;\n this.animation.doLabelAnimation(circularLabel, isProgressRefresh ? progress.previousWidth :\n progress.startAngle, end, progress, this.delay);\n }\n progress.svgObject.appendChild(circularLabelGroup);\n progress.previousWidth = end;\n }\n };\n /** To render a progressbar active state */\n Circular.prototype.renderActiveState = function (progressGroup, radius, strokeWidth, circularPath, endAngle, totalEnd, refresh) {\n var circularActive;\n var option;\n var progress = this.progress;\n var thickness = strokeWidth + 1;\n if (!refresh) {\n option = new PathOption(progress.element.id + '_CircularActiveProgress', 'none', thickness, '#ffffff', 0.5, '0', circularPath);\n circularActive = progress.renderer.drawPath(option);\n }\n else {\n circularActive = getElement(progress.element.id + '_CircularActiveProgress');\n circularActive.setAttribute('d', circularPath);\n }\n if (progress.segmentCount > 1) {\n circularActive.setAttribute('stroke-dasharray', progress.segmentSize);\n }\n if (progress.cornerRadius === 'Round') {\n circularActive.setAttribute('stroke-linecap', 'round');\n }\n var activeClip = progress.createClipPath(progress.clipPath, null, '', refresh);\n circularActive.setAttribute('style', 'clip-path:url(#' + progress.element.id + '_clippath)');\n progressGroup.appendChild(circularActive);\n progressGroup.appendChild(progress.clipPath);\n this.animation.doCircularAnimation(this.centerX, this.centerY, radius, endAngle, totalEnd, activeClip, progress, thickness, 0, null, null, circularActive);\n };\n /** Checking the segment size */\n Circular.prototype.validateSegmentSize = function (progress, thickness) {\n var validSegment;\n var progressSegment;\n var rDiff = parseInt(progress.radius, 10) - parseInt(progress.innerRadius, 10);\n if (rDiff !== 0 && !progress.enableProgressSegments) {\n progressSegment = progress.trackWidth + ((rDiff < 0) ? (progress.trackWidth * Math.abs(rDiff)) / parseInt(progress.radius, 10) :\n -(progress.trackWidth * Math.abs(rDiff)) / parseInt(progress.radius, 10));\n validSegment = progress.calculateSegmentSize(progressSegment, thickness);\n }\n else if (progress.enableProgressSegments) {\n validSegment = progress.calculateSegmentSize(progress.progressWidth, thickness);\n }\n else {\n validSegment = progress.segmentSize;\n }\n return validSegment;\n };\n /** checking progress color */\n Circular.prototype.checkingCircularProgressColor = function () {\n var circularColor;\n var progress = this.progress;\n var role = progress.role;\n switch (role) {\n case 'Success':\n circularColor = progress.themeStyle.success;\n break;\n case 'Info':\n circularColor = progress.themeStyle.info;\n break;\n case 'Warning':\n circularColor = progress.themeStyle.warning;\n break;\n case 'Danger':\n circularColor = progress.themeStyle.danger;\n break;\n default:\n circularColor = (progress.argsData.progressColor || progress.themeStyle.circularProgressColor);\n }\n return circularColor;\n };\n return Circular;\n}());\nexport { Circular };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/* eslint-disable valid-jsdoc */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, Property, NotifyPropertyChanges, Browser, Complex, Event, Collection, EventHandler } from '@syncfusion/ej2-base';\nimport { createElement, remove, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { Rect, Size, RectOption, stringToNumber } from './utils/helper';\nimport { Margin, Animation, Font, RangeColor, TooltipSettings } from './model/progress-base';\nimport { SvgRenderer, PathOption, getElement } from '@syncfusion/ej2-svg-base';\nimport { getProgressThemeColor } from './utils/theme';\nimport { lineCapRadius, completeAngle, valueChanged, progressCompleted } from './model/constant';\nimport { mouseClick, mouseDown, mouseLeave, mouseMove, mouseUp } from './model/constant';\nimport { ProgressTooltip } from './model/index';\nimport { ProgressAnnotationSettings } from './model/index';\nimport { Linear } from './types/linear-progress';\nimport { Circular } from './types/circular-progress';\nimport { ProgressAnimation } from './utils/progress-animation';\n/**\n * progress bar control\n */\nvar ProgressBar = /** @class */ (function (_super) {\n __extends(ProgressBar, _super);\n function ProgressBar(options, element) {\n var _this = _super.call(this, options, element) || this;\n /** @private */\n _this.linear = new Linear(_this);\n /** @private */\n _this.circular = new Circular(_this);\n /** @private */\n _this.annotateAnimation = new ProgressAnimation();\n /** @private */\n // private resizeTo: number;\n /** @private */\n _this.destroyIndeterminate = false;\n /** @private */\n _this.scaleX = 1;\n /** @private */\n _this.scaleY = 1;\n /** ProgressTooltip module to use tooltip */\n _this.progressTooltipModule = new ProgressTooltip(_this);\n return _this;\n }\n ProgressBar.prototype.getModuleName = function () {\n return 'progressbar';\n };\n ProgressBar.prototype.preRender = function () {\n this.unWireEvents();\n this.initPrivateVariable();\n this.wireEvents();\n };\n ProgressBar.prototype.initPrivateVariable = function () {\n this.progressRect = new Rect(0, 0, 0, 0);\n this.progressSize = new Size(0, 0);\n };\n ProgressBar.prototype.render = function () {\n var _this = this;\n this.trigger('load', { progressBar: this });\n this.element.style.display = 'block';\n this.element.style.position = 'relative';\n this.calculateProgressBarSize();\n this.setTheme();\n this.createSVG();\n this.argsData = { value: this.value, progressColor: this.progressColor, trackColor: this.trackColor };\n if (this.argsData.value === this.maximum) {\n this.trigger(progressCompleted, this.argsData, function () { _this.controlRendering(); });\n }\n else {\n this.trigger(valueChanged, this.argsData, function () { _this.controlRendering(); });\n }\n };\n ProgressBar.prototype.controlRendering = function () {\n this.renderElements();\n this.trigger('loaded', { progressBar: this });\n this.renderComplete();\n this.controlRenderedTimeStamp = new Date().getTime();\n };\n /**\n * calculate size of the progress bar\n */\n ProgressBar.prototype.calculateProgressBarSize = function () {\n var containerWidth = this.element.clientWidth || this.element.offsetWidth;\n var containerHeight = this.element.clientHeight;\n var width = (this.type === 'Linear') ? 200 : 120;\n var height = (this.type === 'Linear') ? 30 : 120;\n var padding = 10;\n var thickness = Math.max(this.progressThickness, this.trackThickness);\n height = (this.type === 'Linear' && thickness > (height - padding)) ? thickness + padding : height;\n this.progressSize.width = stringToNumber(this.width, containerWidth) || containerWidth || width;\n this.progressSize.height = stringToNumber(this.height, containerHeight) || containerHeight || height;\n this.progressRect.x = this.margin.left;\n this.progressRect.y = this.margin.top;\n this.progressRect.width = this.progressSize.width - (this.margin.left + this.margin.right);\n this.progressRect.height = this.progressSize.height - (this.margin.top + this.margin.bottom);\n this.initialClipRect = new Rect(this.progressRect.x, this.progressRect.y, this.progressSize.height, this.progressSize.width);\n };\n /**\n * Render Annotation in progress bar\n */\n ProgressBar.prototype.renderAnnotations = function () {\n this.renderAnnotation();\n };\n /**\n * Render SVG Element\n */\n ProgressBar.prototype.renderElements = function () {\n this.createSecondaryElement();\n this.renderTrack();\n this.renderProgress();\n this.renderLabel();\n if (this.annotations.length > 0) {\n this.renderAnnotations();\n }\n this.setSecondaryElementPosition();\n if (this.tooltip.enable && !(this.tooltip.showTooltipOnHover)) {\n this.progressTooltipModule.tooltip();\n }\n };\n ProgressBar.prototype.createSecondaryElement = function () {\n var secElement = document.getElementById(this.element.id + 'Secondary_Element');\n if (this.tooltip.enable) {\n this.tooltipElement = createElement('div', {\n id: this.element.id + '_tooltip',\n className: 'ejSVGTooltip',\n styles: 'pointer-events: none; position: absolute; zIndex: 1; visibility: visible'\n });\n if (secElement) {\n this.secElement.appendChild(this.tooltipElement);\n }\n }\n var tooltipElement = document.getElementById(this.element.id + '_tooltip');\n if (secElement) {\n secElement.innerHTML = '';\n this.secElement = tooltipElement ? secElement.appendChild(tooltipElement) : secElement;\n return;\n }\n this.secElement = createElement('div', {\n id: this.element.id + 'Secondary_Element',\n styles: 'position: absolute'\n });\n this.element.appendChild(this.secElement);\n if (this.tooltipElement) {\n this.secElement.appendChild(this.tooltipElement);\n }\n };\n /**\n * To set the left and top position for annotation for center aligned\n */\n ProgressBar.prototype.setSecondaryElementPosition = function () {\n var element = this.secElement;\n var rect = this.element.getBoundingClientRect();\n if (getElement(this.svgObject.id)) {\n var svgRect = getElement(this.svgObject.id).getBoundingClientRect();\n element.style.left = Math.max(svgRect.left - rect.left, 0) + 'px';\n element.style.top = Math.max(svgRect.top - rect.top, 0) + 'px';\n }\n };\n ProgressBar.prototype.createSVG = function () {\n this.removeSvg();\n this.renderer = new SvgRenderer(this.element.id);\n this.svgObject = this.renderer.createSvg({\n id: this.element.id + 'SVG',\n width: this.progressSize.width,\n height: this.progressSize.height,\n style: 'background-color:' + this.themeStyle.backgroundColor\n });\n };\n ProgressBar.prototype.clipPathElement = function () {\n this.clipPath = this.renderer.createClipPath({ 'id': this.element.id + '_clippath' });\n this.bufferClipPath = this.renderer.createClipPath({ 'id': this.element.id + '_clippathBuffer' });\n };\n ProgressBar.prototype.renderTrack = function () {\n if (this.type === 'Linear') {\n this.linear.renderLinearTrack();\n }\n else if (this.type === 'Circular') {\n this.circular.renderCircularTrack();\n }\n };\n ProgressBar.prototype.renderProgress = function () {\n this.clipPathElement();\n if (this.type === 'Linear') {\n this.linear.renderLinearProgress();\n }\n else if (this.type === 'Circular') {\n this.circular.renderCircularProgress();\n }\n };\n ProgressBar.prototype.renderLabel = function () {\n if (this.type === 'Linear' && this.showProgressValue && !this.isIndeterminate) {\n this.linear.renderLinearLabel();\n }\n else if (this.type === 'Circular' && this.showProgressValue && !this.isIndeterminate) {\n this.circular.renderCircularLabel();\n }\n this.element.appendChild(this.svgObject);\n };\n ProgressBar.prototype.getPathLine = function (x, width, thickness) {\n var moveTo = (this.enableRtl) ? ((this.cornerRadius === 'Round') ?\n (x + this.progressRect.width) - ((lineCapRadius / 2) * thickness) : (x + this.progressRect.width)) :\n ((this.cornerRadius === 'Round') ? (x + (lineCapRadius / 2) * thickness) : x);\n //TODO : BLAZ-14309 - ProgressBar renders improperly when corner radius is set to \"Round\" and the value between one to four.\n thickness = width < thickness && this.cornerRadius === 'Round' ? width : thickness;\n var lineTo = (this.enableRtl) ? ((this.cornerRadius === 'Round' && width) ?\n (moveTo - width + (lineCapRadius * thickness)) : (moveTo - width)) :\n ((this.cornerRadius === 'Round' && width) ? (moveTo + width - (lineCapRadius * thickness)) : (moveTo + width));\n return 'M' + moveTo + ' ' + (this.progressRect.y + (this.progressRect.height / 2)) +\n 'L' + lineTo + ' ' + (this.progressRect.y + (this.progressRect.height / 2));\n };\n ProgressBar.prototype.calculateProgressRange = function (value, minimum, maximum) {\n var min = minimum || this.minimum;\n var max = maximum || this.maximum;\n var endValue = (value - min) / (max - min) * ((this.type === 'Linear') ? 1 : this.totalAngle);\n var result = (value < min || value > max) ? 0 : endValue;\n return result;\n };\n ProgressBar.prototype.calculateSegmentSize = function (width, thickness) {\n var count = (this.type === 'Circular' && this.totalAngle === completeAngle) ? this.segmentCount : this.segmentCount - 1;\n var cornerCount = (this.totalAngle === completeAngle || this.type === 'Linear') ? this.segmentCount : this.segmentCount - 1;\n var gap = this.gapWidth || ((this.type === 'Linear') ? this.themeStyle.linearGapWidth : this.themeStyle.circularGapWidth);\n var size = (width - count * gap);\n size = (size - ((this.cornerRadius === 'Round') ? (cornerCount * (lineCapRadius * thickness)) : 0)) / this.segmentCount;\n gap += (this.cornerRadius === 'Round') ? lineCapRadius * thickness : 0;\n return ' ' + size + ' ' + gap;\n };\n ProgressBar.prototype.createClipPath = function (clipPath, range, d, refresh, thickness, isLabel, isMaximum) {\n var path;\n var rect;\n var option;\n var posx;\n var posy;\n var pathWidth;\n var x = this.progressRect.x;\n var totalWidth = this.progressRect.width;\n if (this.type === 'Linear') {\n if (this.cornerRadius === 'Round4px') {\n posx = x;\n pathWidth = totalWidth * range;\n posx += (!isLabel) ? (-4) : 0;\n posy = this.progressRect.y;\n pathWidth += ((!isLabel && isMaximum) || this.isIndeterminate) ? 4 : 0;\n }\n else {\n //TODO : BLAZ-14309 - ProgressBar renders improperly when corner radius is set to \"Round\" and the value between one to four.\n posx = (this.enableRtl && !isLabel) ? (x + totalWidth + (this.cornerRadius === 'Round' ? thickness / 10 : 0)) : x - (this.cornerRadius === 'Round' ? thickness / 10 : 0);\n pathWidth = totalWidth * range;\n //TODO : BLAZ-14309 - ProgressBar renders improperly when corner radius is set to \"Round\" and the value between one to four.\n //posx += (this.cornerRadius === 'Round' && !isLabel) ?\n // ((this.enableRtl) ? (lineCapRadius / 2) * thickness : -(lineCapRadius / 2) * thickness) : 0;\n posy = (this.progressRect.y + (this.progressRect.height / 2)) - (thickness / 2);\n pathWidth += (this.cornerRadius === 'Round' && !isLabel) ? (lineCapRadius * thickness) : 0;\n }\n if (!refresh) {\n rect = new RectOption(this.element.id + '_clippathrect' + (isLabel ? 'label' : ''), 'transparent', 1, 'transparent', 1, new Rect(posx, posy, thickness, pathWidth));\n path = this.renderer.drawRectangle(rect);\n clipPath.appendChild(path);\n }\n else {\n path = getElement(this.element.id + '_clippathrect' + (isLabel ? 'label' : ''));\n path.setAttribute('width', (pathWidth).toString());\n if (this.isActive) {\n path.setAttribute('x', (posx).toString());\n }\n }\n }\n else {\n if (!refresh) {\n option = new PathOption(this.element.id + '_clippathcircle', 'transparent', 10, 'transparent', 1, '0', d);\n path = this.renderer.drawPath(option);\n clipPath.appendChild(path);\n }\n else {\n path = getElement(this.element.id + '_clippathcircle');\n path.setAttribute('d', d);\n }\n }\n return path;\n };\n /**\n * Theming for progress bar\n */\n ProgressBar.prototype.setTheme = function () {\n this.themeStyle = getProgressThemeColor(this.theme);\n switch (this.theme) {\n case 'Bootstrap':\n case 'Bootstrap4':\n this.cornerRadius = this.cornerRadius === 'Auto' ?\n ((this.type === 'Linear') ? 'Round4px' : 'Round') : this.cornerRadius;\n break;\n default:\n this.cornerRadius = this.cornerRadius === 'Auto' ? 'Square' : this.cornerRadius;\n }\n };\n /**\n * Annotation for progress bar\n */\n ProgressBar.prototype.renderAnnotation = function () {\n if (this.progressAnnotationModule && this.annotations.length > 0) {\n this.progressAnnotationModule.renderAnnotations(this.secElement);\n }\n };\n /**\n * Handles the progressbar resize.\n *\n * @returns {boolean} false\n * @private\n */\n ProgressBar.prototype.progressResize = function () {\n var _this = this;\n // 800 used as buffer time for resize event preventing from control rendered time\n if (!(new Date().getTime() > this.controlRenderedTimeStamp + 800)) {\n return false;\n }\n var arg = {\n bar: this,\n name: 'resized',\n currentSize: new Size(0, 0),\n previousSize: new Size(this.progressSize.width, this.progressSize.height),\n cancel: (this.cancelResize) ? true : false\n };\n if (this.resizeTo) {\n clearTimeout(this.resizeTo);\n }\n this.resizeTo = setTimeout(function () {\n if (_this.isDestroyed) {\n clearTimeout(_this.resizeTo);\n return;\n }\n arg.currentSize = _this.progressSize;\n _this.trigger('resized', arg);\n if ((_this.width === null || _this.height === null || _this.width.indexOf('%') > -1 || _this.height.indexOf('%') > -1)\n && !arg.cancel) {\n if (_this.secElement) {\n _this.secElement.innerHTML = '';\n }\n _this.calculateProgressBarSize();\n _this.createSVG();\n _this.renderElements();\n }\n }, 500);\n return false;\n };\n ProgressBar.prototype.progressMouseClick = function (e) {\n this.mouseEvent(mouseClick, e);\n };\n ProgressBar.prototype.progressMouseDown = function (e) {\n this.mouseEvent(mouseDown, e);\n };\n ProgressBar.prototype.progressMouseMove = function (e) {\n this.mouseEvent(mouseMove, e);\n var target = e.target;\n if (this.tooltip.enable && this.tooltip.showTooltipOnHover) {\n if (target.id.indexOf('Circularprogress') >= 0 || target.id.indexOf('Circularbuffer') >= 0 || target.id.indexOf('Linearprogress') >= 0 || target.id.indexOf('Linearbuffer') >= 0 || target.id.indexOf('Linearbuffer') >= 0) {\n this.progressTooltipModule.tooltip(e);\n }\n else if (this.progressTooltipModule.isRendered) {\n this.progressTooltipModule.removeTooltip(1000);\n this.progressTooltipModule.isRendered = false;\n }\n }\n };\n ProgressBar.prototype.progressMouseUp = function (e) {\n this.mouseEvent(mouseUp, e);\n };\n ProgressBar.prototype.progressMouseLeave = function (e) {\n this.mouseEvent(mouseLeave, e);\n };\n ProgressBar.prototype.mouseEvent = function (eventName, e) {\n var element = e.target;\n this.trigger(eventName, { target: element.id });\n };\n /**\n * Method to un-bind events for progress bar\n */\n ProgressBar.prototype.unWireEvents = function () {\n var startEvent = Browser.touchStartEvent;\n var moveEvent = Browser.touchMoveEvent;\n var stopEvent = Browser.touchEndEvent;\n /*! Find the Events type */\n var cancelEvent = Browser.isPointer ? 'pointerleave' : 'mouseleave';\n /*! UnBind the Event handler */\n EventHandler.remove(this.element, 'click', this.progressMouseClick);\n EventHandler.remove(this.element, startEvent, this.progressMouseDown);\n EventHandler.remove(this.element, moveEvent, this.progressMouseMove);\n EventHandler.remove(this.element, stopEvent, this.progressMouseUp);\n EventHandler.remove(this.element, cancelEvent, this.progressMouseLeave);\n window.removeEventListener((Browser.isTouch && ('orientation' in window && 'onorientationchange' in window)) ? 'orientationchange' : 'resize', this.resizeBounds);\n };\n /**\n * Method to bind events for bullet chart\n */\n ProgressBar.prototype.wireEvents = function () {\n var startEvent = Browser.touchStartEvent;\n var moveEvent = Browser.touchMoveEvent;\n var stopEvent = Browser.touchEndEvent;\n /*! Find the Events type */\n var cancelEvent = Browser.isPointer ? 'pointerleave' : 'mouseleave';\n /*! Bind the Event handler */\n EventHandler.add(this.element, 'click', this.progressMouseClick, this);\n EventHandler.add(this.element, startEvent, this.progressMouseDown, this);\n EventHandler.add(this.element, moveEvent, this.progressMouseMove, this);\n EventHandler.add(this.element, stopEvent, this.progressMouseUp, this);\n EventHandler.add(this.element, cancelEvent, this.progressMouseLeave, this);\n this.resizeBounds = this.progressResize.bind(this);\n window.addEventListener((Browser.isTouch && ('orientation' in window && 'onorientationchange' in window)) ? 'orientationchange' : 'resize', this.resizeBounds);\n };\n ProgressBar.prototype.removeSvg = function () {\n var svgElement = document.getElementById(this.element.id + 'SVG');\n if (svgElement) {\n remove(svgElement);\n }\n };\n ProgressBar.prototype.onPropertyChanged = function (newProp, oldProp) {\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'annotations':\n this.secElement.innerHTML = '';\n this.renderAnnotation();\n break;\n case 'value':\n this.cancelResize = (this.animation.enable) ? true : false;\n this.argsData = {\n value: this.value,\n progressColor: this.argsData.progressColor,\n trackColor: this.argsData.trackColor\n };\n if (this.argsData.value < oldProp.value && this.animation.enable) {\n this.argsData.value = oldProp.value;\n }\n if (this.argsData.value === this.maximum) {\n this.trigger(progressCompleted, this.argsData);\n }\n else {\n this.trigger(valueChanged, this.argsData);\n }\n if (this.type === 'Circular') {\n this.circular.renderCircularProgress(this.previousEndAngle, this.previousTotalEnd, !isNullOrUndefined(oldProp.value));\n if (this.showProgressValue) {\n this.circular.renderCircularLabel(true);\n }\n if (this.progressAnnotationModule && this.animation.enable && !this.isIndeterminate) {\n this.annotateAnimation.doAnnotationAnimation(this.clipPath, this, this.annotateEnd, this.annotateTotal);\n }\n }\n else {\n this.linear.renderLinearProgress(!isNullOrUndefined(oldProp.value), this.previousWidth);\n if (this.showProgressValue) {\n this.linear.renderLinearLabel(true);\n }\n }\n break;\n case 'animation':\n this.createSVG();\n this.renderElements();\n break;\n }\n }\n };\n ProgressBar.prototype.requiredModules = function () {\n var modules = [];\n var enableAnnotation = false;\n enableAnnotation = this.annotations.some(function (value) {\n return (value.content !== null);\n });\n if (enableAnnotation) {\n modules.push({\n member: 'ProgressAnnotation',\n args: [this]\n });\n }\n if (this.tooltip.enable) {\n modules.push({\n member: 'Tooltip',\n args: [this]\n });\n }\n return modules;\n };\n ProgressBar.prototype.getPersistData = function () {\n return ' ';\n };\n ProgressBar.prototype.show = function () {\n if (!isNullOrUndefined(this.svgObject)) {\n this.svgObject.setAttribute('visibility', 'Visible');\n if (this.isIndeterminate) {\n this.destroyIndeterminate = false;\n if (this.type === 'Linear') {\n this.linear.renderLinearProgress(true);\n }\n else {\n this.circular.renderCircularProgress(null, null, true);\n }\n }\n }\n };\n ProgressBar.prototype.hide = function () {\n if (!isNullOrUndefined(this.svgObject)) {\n this.svgObject.setAttribute('visibility', 'Hidden');\n if (this.isIndeterminate) {\n this.destroyIndeterminate = true;\n }\n }\n };\n /**\n * To destroy the widget\n *\n * @function destroy\n * @returns {void}\n * @member of ProgressBar\n */\n ProgressBar.prototype.destroy = function () {\n this.unWireEvents();\n _super.prototype.destroy.call(this);\n this.removeSvg();\n // tslint:disable-next-line:no-any\n if (this.isReact) {\n this.clearTemplate();\n }\n this.svgObject = null;\n this.element.classList.remove('e-progressbar');\n if (!this.refreshing) {\n this.destroyIndeterminate = true;\n }\n };\n __decorate([\n Property('Linear')\n ], ProgressBar.prototype, \"type\", void 0);\n __decorate([\n Property(null)\n ], ProgressBar.prototype, \"value\", void 0);\n __decorate([\n Property(null)\n ], ProgressBar.prototype, \"secondaryProgress\", void 0);\n __decorate([\n Property('')\n ], ProgressBar.prototype, \"secondaryProgressColor\", void 0);\n __decorate([\n Property(null)\n ], ProgressBar.prototype, \"secondaryProgressThickness\", void 0);\n __decorate([\n Property(0)\n ], ProgressBar.prototype, \"minimum\", void 0);\n __decorate([\n Property(100)\n ], ProgressBar.prototype, \"maximum\", void 0);\n __decorate([\n Property(0)\n ], ProgressBar.prototype, \"startAngle\", void 0);\n __decorate([\n Property(0)\n ], ProgressBar.prototype, \"endAngle\", void 0);\n __decorate([\n Property('100%')\n ], ProgressBar.prototype, \"radius\", void 0);\n __decorate([\n Property('100%')\n ], ProgressBar.prototype, \"innerRadius\", void 0);\n __decorate([\n Property(1)\n ], ProgressBar.prototype, \"segmentCount\", void 0);\n __decorate([\n Property(null)\n ], ProgressBar.prototype, \"gapWidth\", void 0);\n __decorate([\n Property('')\n ], ProgressBar.prototype, \"segmentColor\", void 0);\n __decorate([\n Property('Auto')\n ], ProgressBar.prototype, \"cornerRadius\", void 0);\n __decorate([\n Property(null)\n ], ProgressBar.prototype, \"height\", void 0);\n __decorate([\n Property(null)\n ], ProgressBar.prototype, \"width\", void 0);\n __decorate([\n Property(false)\n ], ProgressBar.prototype, \"isIndeterminate\", void 0);\n __decorate([\n Property(false)\n ], ProgressBar.prototype, \"isActive\", void 0);\n __decorate([\n Property(false)\n ], ProgressBar.prototype, \"isGradient\", void 0);\n __decorate([\n Property(false)\n ], ProgressBar.prototype, \"isStriped\", void 0);\n __decorate([\n Property('Auto')\n ], ProgressBar.prototype, \"role\", void 0);\n __decorate([\n Property(false)\n ], ProgressBar.prototype, \"enableRtl\", void 0);\n __decorate([\n Property(true)\n ], ProgressBar.prototype, \"labelOnTrack\", void 0);\n __decorate([\n Property(null)\n ], ProgressBar.prototype, \"trackColor\", void 0);\n __decorate([\n Property(null)\n ], ProgressBar.prototype, \"progressColor\", void 0);\n __decorate([\n Property(0)\n ], ProgressBar.prototype, \"trackThickness\", void 0);\n __decorate([\n Property(0)\n ], ProgressBar.prototype, \"progressThickness\", void 0);\n __decorate([\n Property(false)\n ], ProgressBar.prototype, \"enablePieProgress\", void 0);\n __decorate([\n Property('Fabric')\n ], ProgressBar.prototype, \"theme\", void 0);\n __decorate([\n Property(false)\n ], ProgressBar.prototype, \"showProgressValue\", void 0);\n __decorate([\n Property(false)\n ], ProgressBar.prototype, \"enableProgressSegments\", void 0);\n __decorate([\n Complex({ size: null, color: null, fontStyle: null, fontWeight: 'Normal', fontFamily: null }, Font)\n ], ProgressBar.prototype, \"labelStyle\", void 0);\n __decorate([\n Complex({}, Margin)\n ], ProgressBar.prototype, \"margin\", void 0);\n __decorate([\n Complex({}, Animation)\n ], ProgressBar.prototype, \"animation\", void 0);\n __decorate([\n Complex({}, TooltipSettings)\n ], ProgressBar.prototype, \"tooltip\", void 0);\n __decorate([\n Event()\n ], ProgressBar.prototype, \"load\", void 0);\n __decorate([\n Event()\n ], ProgressBar.prototype, \"textRender\", void 0);\n __decorate([\n Event()\n ], ProgressBar.prototype, \"loaded\", void 0);\n __decorate([\n Event()\n ], ProgressBar.prototype, \"valueChanged\", void 0);\n __decorate([\n Event()\n ], ProgressBar.prototype, \"progressCompleted\", void 0);\n __decorate([\n Event()\n ], ProgressBar.prototype, \"animationComplete\", void 0);\n __decorate([\n Event()\n ], ProgressBar.prototype, \"mouseClick\", void 0);\n __decorate([\n Event()\n ], ProgressBar.prototype, \"mouseMove\", void 0);\n __decorate([\n Event()\n ], ProgressBar.prototype, \"mouseUp\", void 0);\n __decorate([\n Event()\n ], ProgressBar.prototype, \"mouseDown\", void 0);\n __decorate([\n Event()\n ], ProgressBar.prototype, \"mouseLeave\", void 0);\n __decorate([\n Event()\n ], ProgressBar.prototype, \"tooltipRender\", void 0);\n __decorate([\n Collection([{}], ProgressAnnotationSettings)\n ], ProgressBar.prototype, \"annotations\", void 0);\n __decorate([\n Collection([{}], RangeColor)\n ], ProgressBar.prototype, \"rangeColors\", void 0);\n ProgressBar = __decorate([\n NotifyPropertyChanges\n ], ProgressBar);\n return ProgressBar;\n}(Component));\nexport { ProgressBar };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { ProgressBar } from '@syncfusion/ej2-progressbar';\nimport { ComponentBase, applyMixins } from '@syncfusion/ej2-react-base';\n/**\n * Represents react ProgressBar Component\n * ```tsx\n * \n * ```\n */\nvar ProgressBarComponent = /** @class */ (function (_super) {\n __extends(ProgressBarComponent, _super);\n function ProgressBarComponent(props) {\n var _this = _super.call(this, props) || this;\n _this.initRenderCalled = false;\n _this.checkInjectedModules = true;\n _this.directivekeys = { 'progressBarAnnotations': 'progressBarAnnotation', 'rangeColors': 'rangeColor' };\n _this.statelessTemplateProps = null;\n _this.templateProps = null;\n _this.immediateRender = false;\n _this.portals = [];\n return _this;\n }\n ProgressBarComponent.prototype.render = function () {\n if (((this.element && !this.initRenderCalled) || this.refreshing) && !this.isReactForeceUpdate) {\n _super.prototype.render.call(this);\n this.initRenderCalled = true;\n }\n else {\n return React.createElement('div', this.getDefaultAttributes(), [].concat(this.props.children, this.portals));\n }\n };\n return ProgressBarComponent;\n}(ProgressBar));\nexport { ProgressBarComponent };\napplyMixins(ProgressBarComponent, [ComponentBase, React.Component]);\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n// eslint-disable-next-line @typescript-eslint/triple-slash-reference\n/// \nimport { Property, EventHandler, Internationalization, NotifyPropertyChanges, detach, getUniqueID } from '@syncfusion/ej2-base';\nimport { KeyboardEvents, Event, Browser, L10n, ChildProperty } from '@syncfusion/ej2-base';\nimport { addClass, createElement, remove, closest, select, prepend, removeClass, attributes, Collection } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined, isUndefined, formatUnit, setValue, rippleEffect, merge, extend } from '@syncfusion/ej2-base';\nimport { CalendarBase } from '../calendar/calendar';\nimport { Popup } from '@syncfusion/ej2-popups';\nimport { Button } from '@syncfusion/ej2-buttons';\nimport { Input } from '@syncfusion/ej2-inputs';\nimport { ListBase } from '@syncfusion/ej2-lists';\nvar DATERANGEWRAPPER = 'e-date-range-wrapper';\nvar INPUTCONTAINER = 'e-input-group';\nvar DATERANGEICON = 'e-input-group-icon e-range-icon e-icons';\nvar POPUP = 'e-popup';\nvar LEFTCALENDER = 'e-left-calendar';\nvar RIGHTCALENDER = 'e-right-calendar';\nvar LEFTCONTAINER = 'e-left-container';\nvar RIGHTCONTAINER = 'e-right-container';\nvar ROOT = 'e-daterangepicker';\nvar LIBRARY = 'e-lib';\nvar CONTROL = 'e-control';\nvar ERROR = 'e-error';\nvar ACTIVE = 'e-active';\nvar STARTENDCONTAINER = 'e-start-end';\nvar STARTDATE = 'e-start-date';\nvar ENDDATE = 'e-end-date';\nvar STARTBUTTON = 'e-start-btn';\nvar INPUTFOCUS = 'e-input-focus';\nvar ENDBUTTON = 'e-end-btn';\nvar RANGEHOVER = 'e-range-hover';\nvar OTHERMONTH = 'e-other-month';\nvar STARTLABEL = 'e-start-label';\nvar ENDLABEL = 'e-end-label';\nvar DISABLED = 'e-disabled';\nvar SELECTED = 'e-selected';\nvar CALENDAR = 'e-calendar';\nvar NEXTICON = 'e-next';\nvar PREVICON = 'e-prev';\nvar HEADER = 'e-header';\nvar TITLE = 'e-title';\nvar ICONCONTAINER = 'e-icon-container';\nvar RANGECONTAINER = 'e-date-range-container';\nvar RANGEHEADER = 'e-range-header';\nvar PRESETS = 'e-presets';\nvar FOOTER = 'e-footer';\nvar RANGEBORDER = 'e-range-border';\nvar TODAY = 'e-today';\nvar FOCUSDATE = 'e-focused-date';\nvar CONTENT = 'e-content';\nvar DAYSPAN = 'e-day-span';\nvar WEEKNUMBER = 'e-week-number';\nvar DATEDISABLED = 'e-date-disabled';\nvar ICONDISABLED = 'e-icon-disabled';\nvar CALENDARCONTAINER = 'e-calendar-container';\nvar SEPARATOR = 'e-separator';\nvar APPLY = 'e-apply';\nvar CANCEL = 'e-cancel';\nvar DEVICE = 'e-device';\nvar OVERLAY = 'e-overlay';\nvar CHANGEICON = 'e-change-icon e-icons';\nvar LISTCLASS = 'e-list-item';\nvar RTL = 'e-rtl';\nvar HOVER = 'e-hover';\nvar OVERFLOW = 'e-range-overflow';\nvar OFFSETVALUE = 4;\nvar PRIMARY = 'e-primary';\nvar FLAT = 'e-flat';\nvar CSS = 'e-css';\nvar ZOOMIN = 'e-zoomin';\nvar NONEDITABLE = 'e-non-edit';\nvar DAYHEADERLONG = 'e-daterange-day-header-lg';\nvar HIDDENELEMENT = 'e-daterange-hidden';\nvar wrapperAttr = ['title', 'class', 'style'];\nvar Presets = /** @class */ (function (_super) {\n __extends(Presets, _super);\n function Presets() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property()\n ], Presets.prototype, \"label\", void 0);\n __decorate([\n Property()\n ], Presets.prototype, \"start\", void 0);\n __decorate([\n Property()\n ], Presets.prototype, \"end\", void 0);\n return Presets;\n}(ChildProperty));\nexport { Presets };\n/**\n * Represents the DateRangePicker component that allows user to select the date range from the calendar\n * or entering the range through the input element.\n * ```html\n * \n * ```\n * ```typescript\n * \n * ```\n */\nvar DateRangePicker = /** @class */ (function (_super) {\n __extends(DateRangePicker, _super);\n /**\n * Constructor for creating the widget\n *\n * @param {DateRangePickerModel} options - Specifies the DateRangePicker model.\n * @param {string | HTMLInputElement} element - Specifies the element to render as component.\n * @private\n */\n function DateRangePicker(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.isCustomRange = false;\n _this.isCustomWindow = false;\n _this.presetsItem = [];\n _this.liCollections = [];\n _this.previousEleValue = '';\n _this.isKeyPopup = false;\n _this.dateDisabled = false;\n _this.isRangeIconClicked = false;\n _this.isMaxDaysClicked = false;\n _this.disabledDays = [];\n _this.preventBlur = false;\n _this.preventFocus = false;\n _this.invalidValueString = null;\n _this.isAngular = false;\n _this.preventChange = false;\n _this.dateRangeOptions = options;\n return _this;\n }\n /**\n * To Initialize the control rendering.\n *\n * @returns {void}\n * @private\n */\n DateRangePicker.prototype.render = function () {\n this.initialize();\n this.setProperties({ startDate: this.startValue }, true);\n this.setProperties({ endDate: this.endValue }, true);\n this.setModelValue();\n this.setDataAttribute(false);\n if (this.element.hasAttribute('data-val')) {\n this.element.setAttribute('data-val', 'false');\n }\n Input.calculateWidth(this.inputElement, this.inputWrapper.container);\n if (!isNullOrUndefined(this.inputWrapper.buttons[0]) && !isNullOrUndefined(this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0]) && this.floatLabelType !== 'Never') {\n this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0].classList.add('e-icon');\n }\n if (!isNullOrUndefined(closest(this.element, 'fieldset')) && closest(this.element, 'fieldset').disabled) {\n this.enabled = false;\n }\n this.renderComplete();\n };\n /**\n * Initialize the event handler\n *\n * @returns {void}\n * @private\n */\n DateRangePicker.prototype.preRender = function () {\n this.keyInputConfigs = {\n altDownArrow: 'alt+downarrow',\n escape: 'escape',\n enter: 'enter',\n tab: 'tab',\n altRightArrow: 'alt+rightarrow',\n altLeftArrow: 'alt+leftarrow',\n moveUp: 'uparrow',\n moveDown: 'downarrow',\n spacebar: 'space'\n };\n this.defaultConstant = {\n placeholder: this.placeholder,\n startLabel: 'Start Date',\n endLabel: 'End Date',\n customRange: 'Custom Range',\n applyText: 'Apply',\n cancelText: 'Cancel',\n selectedDays: 'Selected Days',\n days: 'days'\n };\n /**\n * Mobile View\n */\n this.isMobile = window.matchMedia('(max-width:550px)').matches;\n this.inputElement = this.element;\n this.angularTag = null;\n if (this.element.tagName === 'EJS-DATERANGEPICKER') {\n this.angularTag = this.element.tagName;\n this.inputElement = this.createElement('input');\n this.element.appendChild(this.inputElement);\n }\n this.cloneElement = this.element.cloneNode(true);\n removeClass([this.cloneElement], [ROOT, CONTROL, LIBRARY]);\n this.updateHtmlAttributeToElement();\n if (this.element.getAttribute('id')) {\n if (this.angularTag !== null) {\n this.inputElement.id = this.element.getAttribute('id') + '_input';\n }\n }\n else {\n this.element.id = getUniqueID('ej2-datetimepicker');\n if (this.angularTag !== null) {\n attributes(this.inputElement, { 'id': this.element.id + '_input' });\n }\n }\n this.checkInvalidRange(this.value);\n if (!this.invalidValueString && (typeof (this.value) === 'string')) {\n var rangeArray = this.value.split(' ' + this.separator + ' ');\n this.value = [new Date(rangeArray[0]), new Date(rangeArray[1])];\n }\n this.initProperty();\n this.tabIndex = this.element.hasAttribute('tabindex') ? this.element.getAttribute('tabindex') : '0';\n this.element.removeAttribute('tabindex');\n _super.prototype.preRender.call(this);\n this.navNextFunction = this.navNextMonth.bind(this);\n this.navPrevFunction = this.navPrevMonth.bind(this);\n this.deviceNavNextFunction = this.deviceNavNext.bind(this);\n this.deviceNavPrevFunction = this.deviceNavPrevious.bind(this);\n this.initStartDate = this.checkDateValue(this.startValue);\n this.initEndDate = this.checkDateValue(this.endValue);\n this.formElement = closest(this.element, 'form');\n };\n DateRangePicker.prototype.updateValue = function () {\n if (this.value && this.value.length > 0) {\n if (this.value[0] instanceof Date && !isNaN(+this.value[0])) {\n this.setProperties({ startDate: this.value[0] }, true);\n this.startValue = this.value[0];\n }\n else if (typeof this.value[0] === 'string') {\n if (+this.value[0] === 0 || isNaN(+(new Date(this.checkValue(this.value[0]))))) {\n this.startValue = null;\n this.setValue();\n }\n else {\n this.setProperties({ startDate: new Date(this.checkValue(this.value[0])) }, true);\n this.startValue = new Date(this.checkValue(this.value[0]));\n }\n }\n else {\n this.startValue = null;\n this.setValue();\n }\n if (this.value[1] instanceof Date && !isNaN(+this.value[1])) {\n this.setProperties({ endDate: this.value[1] }, true);\n this.endValue = this.value[1];\n }\n else if (typeof this.value[1] === 'string') {\n if (+this.value[0] === 0 || isNaN(+(new Date(this.checkValue(this.value[0]))))) {\n this.setProperties({ endDate: null }, true);\n this.endValue = null;\n this.setValue();\n }\n else {\n this.setProperties({ endDate: new Date(this.checkValue(this.value[1])) }, true);\n this.endValue = new Date(this.checkValue(this.value[1]));\n this.setValue();\n }\n }\n else {\n this.setProperties({ endDate: null }, true);\n this.endValue = null;\n this.setValue();\n }\n }\n else if (this.value && this.value.start) {\n if (this.value.start instanceof Date && !isNaN(+this.value.start)) {\n this.setProperties({ startDate: this.value.start }, true);\n this.startValue = this.value.start;\n }\n else if (typeof this.value.start === 'string') {\n this.setProperties({ startDate: new Date(this.checkValue(this.value.start)) }, true);\n this.startValue = new Date(this.checkValue(this.value.start));\n }\n else {\n this.startValue = null;\n this.setValue();\n }\n if (this.value.end instanceof Date && !isNaN(+this.value.end)) {\n this.setProperties({ endDate: this.value.end }, true);\n this.endValue = this.value.end;\n }\n else if (typeof this.value.end === 'string') {\n this.setProperties({ endDate: new Date(this.checkValue(this.value.end)) }, true);\n this.endValue = new Date(this.checkValue(this.value.end));\n this.setValue();\n }\n else {\n this.setProperties({ endDate: null }, true);\n this.endValue = null;\n this.setValue();\n }\n }\n else if (isNullOrUndefined(this.value)) {\n this.endValue = this.checkDateValue(new Date(this.checkValue(this.endDate)));\n this.startValue = this.checkDateValue(new Date(this.checkValue(this.startDate)));\n this.setValue();\n }\n };\n DateRangePicker.prototype.initProperty = function () {\n this.globalize = new Internationalization(this.locale);\n this.checkFormat();\n this.checkView();\n if (isNullOrUndefined(this.firstDayOfWeek) || this.firstDayOfWeek > 6 || this.firstDayOfWeek < 0) {\n this.setProperties({ firstDayOfWeek: this.globalize.getFirstDayOfWeek() }, true);\n }\n this.updateValue();\n };\n DateRangePicker.prototype.checkFormat = function () {\n if (this.format) {\n if (typeof this.format === 'string') {\n this.formatString = this.format;\n }\n else if (this.format.skeleton !== '' && !isNullOrUndefined(this.format.skeleton)) {\n var skeletonString = this.format.skeleton;\n this.formatString = this.globalize.getDatePattern({ skeleton: skeletonString, type: 'date' });\n }\n else {\n this.formatString = null;\n }\n }\n else {\n this.formatString = null;\n }\n };\n DateRangePicker.prototype.initialize = function () {\n if (this.angularTag !== null) {\n this.validationAttribute(this.element, this.inputElement);\n }\n this.checkHtmlAttributes(false);\n merge(this.defaultKeyConfigs, { shiftTab: 'shift+tab', tab: 'tab' });\n var start = this.checkDateValue(new Date(this.checkValue(this.startValue)));\n this.setProperties({ startDate: start }, true); // persist the value propeerty.\n this.setProperties({ endValue: this.checkDateValue(new Date(this.checkValue(this.endValue))) }, true);\n this.setValue();\n this.setProperties({ min: this.checkDateValue(new Date(this.checkValue(this.min))) }, true);\n this.setProperties({ max: this.checkDateValue(new Date(this.checkValue(this.max))) }, true);\n this.l10n = new L10n('daterangepicker', this.defaultConstant, this.locale);\n this.l10n.setLocale(this.locale);\n this.setProperties({ placeholder: this.placeholder || this.l10n.getConstant('placeholder') }, true);\n this.processPresets();\n this.createInput();\n this.updateHtmlAttributeToWrapper();\n this.setRangeAllowEdit();\n this.bindEvents();\n };\n DateRangePicker.prototype.setDataAttribute = function (isDynamic) {\n var attributes = {};\n if (!isDynamic) {\n for (var i = 0; i < this.element.attributes.length; i++) {\n attributes[this.element.attributes[i].name] =\n this.element.getAttribute(this.element.attributes[i].name);\n }\n }\n else {\n attributes = this.htmlAttributes;\n }\n for (var _i = 0, _a = Object.keys(attributes); _i < _a.length; _i++) {\n var pro = _a[_i];\n if (pro.indexOf('data') === 0) {\n this.firstHiddenChild.setAttribute(pro, attributes[\"\" + pro]);\n this.secondHiddenChild.setAttribute(pro, attributes[\"\" + pro]);\n }\n }\n };\n DateRangePicker.prototype.setRangeAllowEdit = function () {\n if (this.allowEdit) {\n if (!this.readonly) {\n this.inputElement.removeAttribute('readonly');\n }\n }\n else {\n attributes(this.inputElement, { 'readonly': '' });\n }\n this.updateClearIconState();\n };\n DateRangePicker.prototype.updateClearIconState = function () {\n if (!this.allowEdit && this.inputWrapper && !this.readonly) {\n if (this.inputElement.value === '') {\n removeClass([this.inputWrapper.container], [NONEDITABLE]);\n }\n else {\n addClass([this.inputWrapper.container], [NONEDITABLE]);\n }\n }\n else if (this.inputWrapper) {\n removeClass([this.inputWrapper.container], [NONEDITABLE]);\n }\n };\n DateRangePicker.prototype.validationAttribute = function (element, input) {\n var name = element.getAttribute('name') ? element.getAttribute('name') : element.getAttribute('id');\n input.setAttribute('name', name);\n element.removeAttribute('name');\n var attributes = ['required', 'aria-required', 'form'];\n for (var i = 0; i < attributes.length; i++) {\n if (isNullOrUndefined(element.getAttribute(attributes[i]))) {\n continue;\n }\n var attr = element.getAttribute(attributes[i]);\n input.setAttribute(attributes[i], attr);\n element.removeAttribute(attributes[i]);\n }\n };\n DateRangePicker.prototype.updateHtmlAttributeToWrapper = function () {\n if (!isNullOrUndefined(this.htmlAttributes)) {\n for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) {\n var key = _a[_i];\n if (wrapperAttr.indexOf(key) > -1) {\n if (key === 'class') {\n var updatedClassValue = (this.htmlAttributes[\"\" + key].replace(/\\s+/g, ' ')).trim();\n if (updatedClassValue !== '') {\n addClass([this.inputWrapper.container], updatedClassValue.split(' '));\n }\n }\n else if (key === 'style') {\n var dateRangeStyle = this.inputWrapper.container.getAttribute(key);\n dateRangeStyle = !isNullOrUndefined(dateRangeStyle) ? (dateRangeStyle + this.htmlAttributes[\"\" + key]) :\n this.htmlAttributes[\"\" + key];\n this.inputWrapper.container.setAttribute(key, dateRangeStyle);\n }\n else {\n this.inputWrapper.container.setAttribute(key, this.htmlAttributes[\"\" + key]);\n }\n }\n }\n }\n };\n DateRangePicker.prototype.updateHtmlAttributeToElement = function () {\n if (!isNullOrUndefined(this.htmlAttributes)) {\n for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) {\n var key = _a[_i];\n if (wrapperAttr.indexOf(key) < 0) {\n this.inputElement.setAttribute(key, this.htmlAttributes[\"\" + key]);\n }\n }\n }\n };\n DateRangePicker.prototype.updateCssClass = function (cssNewClass, cssOldClass) {\n if (!isNullOrUndefined(cssOldClass)) {\n cssOldClass = (cssOldClass.replace(/\\s+/g, ' ')).trim();\n }\n if (!isNullOrUndefined(cssNewClass)) {\n cssNewClass = (cssNewClass.replace(/\\s+/g, ' ')).trim();\n }\n Input.setCssClass(cssNewClass, [this.inputWrapper.container], cssOldClass);\n if (this.popupWrapper) {\n Input.setCssClass(cssNewClass, [this.popupWrapper], cssOldClass);\n }\n };\n DateRangePicker.prototype.processPresets = function () {\n this.presetsItem = [];\n var i = 0;\n if (!isUndefined(this.presets[0].start && this.presets[0].end && this.presets[0].label)) {\n for (var _i = 0, _a = this.presets; _i < _a.length; _i++) {\n var range = _a[_i];\n var id = range.label.replace(/\\s+/g, '') + '_' + (++i);\n if (typeof range.end === 'string') {\n this.presetsItem.push({\n id: id, text: range.label, end: new Date(this.checkValue(range.end)), start: new Date(this.checkValue(range.start))\n });\n }\n else {\n this.presetsItem.push({ id: id, text: range.label, start: range.start, end: range.end });\n }\n }\n var startDate = isNullOrUndefined(this.startValue) ? null : new Date(+this.startValue);\n var endDate = isNullOrUndefined(this.endValue) ? null : new Date(+this.endValue);\n this.presetsItem.push({ id: 'custom_range', text: this.l10n.getConstant('customRange'), start: startDate, end: endDate });\n if (!isNullOrUndefined(this.startValue) && !isNullOrUndefined(this.endValue)) {\n this.isCustomRange = true;\n this.activeIndex = this.presetsItem.length - 1;\n }\n }\n };\n DateRangePicker.prototype.bindEvents = function () {\n EventHandler.add(this.inputWrapper.buttons[0], 'mousedown', this.rangeIconHandler, this);\n EventHandler.add(this.inputElement, 'focus', this.inputFocusHandler, this);\n EventHandler.add(this.inputElement, 'blur', this.inputBlurHandler, this);\n EventHandler.add(this.inputElement, 'change', this.inputChangeHandler, this);\n if (this.showClearButton && this.inputWrapper.clearButton) {\n EventHandler.add(this.inputWrapper.clearButton, 'mousedown', this.resetHandler, this);\n }\n if (!this.isMobile) {\n this.keyInputConfigs = extend(this.keyInputConfigs, this.keyConfigs);\n this.inputKeyboardModule = new KeyboardEvents(this.inputElement, {\n eventName: 'keydown',\n keyAction: this.inputHandler.bind(this),\n keyConfigs: this.keyInputConfigs\n });\n }\n if (this.formElement) {\n EventHandler.add(this.formElement, 'reset', this.formResetHandler, this);\n }\n if (this.enabled) {\n this.inputElement.setAttribute('tabindex', this.tabIndex);\n }\n else {\n this.inputElement.tabIndex = -1;\n }\n };\n DateRangePicker.prototype.unBindEvents = function () {\n EventHandler.remove(this.inputWrapper.buttons[0], 'mousedown', this.rangeIconHandler);\n EventHandler.remove(this.inputElement, 'blur', this.inputBlurHandler);\n EventHandler.remove(this.inputElement, 'focus', this.inputFocusHandler);\n EventHandler.remove(this.inputElement, 'change', this.inputChangeHandler);\n if (this.showClearButton && this.inputWrapper.clearButton) {\n EventHandler.remove(this.inputWrapper.clearButton, 'mousedown touchstart', this.resetHandler);\n }\n if (!this.isMobile) {\n if (!isNullOrUndefined(this.inputKeyboardModule)) {\n this.inputKeyboardModule.destroy();\n }\n }\n if (this.formElement) {\n EventHandler.remove(this.formElement, 'reset', this.formResetHandler);\n }\n this.inputElement.tabIndex = -1;\n };\n DateRangePicker.prototype.updateHiddenInput = function () {\n if (this.firstHiddenChild && this.secondHiddenChild) {\n var format = { type: 'datetime', skeleton: 'yMd' };\n if (typeof this.startDate === 'string') {\n this.startDate = this.globalize.parseDate(this.startDate, format);\n }\n if (typeof this.endDate === 'string') {\n this.endDate = this.globalize.parseDate(this.endDate, format);\n }\n this.firstHiddenChild.value = (this.startDate && this.globalize.formatDate(this.startDate, format))\n || (this.inputElement.value);\n this.secondHiddenChild.value = (this.endDate && this.globalize.formatDate(this.endDate, format)) ||\n (this.inputElement.value);\n this.dispatchEvent(this.firstHiddenChild, 'focusout');\n this.dispatchEvent(this.firstHiddenChild, 'change');\n }\n };\n DateRangePicker.prototype.inputChangeHandler = function (e) {\n if (!this.enabled) {\n return;\n }\n e.stopPropagation();\n this.updateHiddenInput();\n };\n DateRangePicker.prototype.bindClearEvent = function () {\n if (this.showClearButton && this.inputWrapper.clearButton) {\n EventHandler.add(this.inputWrapper.clearButton, 'mousedown', this.resetHandler, this);\n }\n };\n DateRangePicker.prototype.resetHandler = function (e) {\n if (!this.enabled) {\n return;\n }\n this.valueType = this.value;\n e.preventDefault();\n this.clear();\n var clearedArgs = {\n event: e\n };\n this.setProperties({ endDate: this.checkDateValue(this.endValue) }, true);\n this.setProperties({ startDate: this.checkDateValue(this.startValue) }, true);\n this.trigger('cleared', clearedArgs);\n this.changeTrigger(e);\n this.clearRange();\n this.hide(e);\n if (closest(this.element, 'form')) {\n var element = this.firstHiddenChild;\n var keyupEvent = document.createEvent('KeyboardEvent');\n keyupEvent.initEvent('keyup', false, true);\n element.dispatchEvent(keyupEvent);\n }\n };\n DateRangePicker.prototype.restoreValue = function () {\n this.previousEleValue = this.inputElement.value;\n this.previousStartValue = this.startValue;\n this.previousEndValue = this.endValue;\n this.valueType = null;\n this.initStartDate = this.checkDateValue(this.startValue);\n this.initEndDate = this.checkDateValue(this.endValue);\n this.setValue();\n this.setModelValue();\n };\n DateRangePicker.prototype.formResetHandler = function (e) {\n if (!this.enabled) {\n return;\n }\n if (this.formElement && (e.target === this.formElement) && !this.inputElement.disabled) {\n var val = this.inputElement.getAttribute('value');\n if (!isNullOrUndefined(this.startCopy)) {\n if (!isNullOrUndefined(this.value) && !isNullOrUndefined(this.value.start)) {\n this.setProperties({ value: { start: this.startCopy, end: this.endCopy } }, true);\n this.startValue = this.value.start;\n this.endValue = this.value.end;\n }\n else {\n this.setProperties({ value: [this.startCopy, this.endCopy] }, true);\n this.startValue = this.value[0];\n this.endValue = this.value[1];\n }\n this.setProperties({ startDate: this.startValue, endDate: this.endValue }, true);\n }\n else {\n this.setProperties({ value: null, startDate: null, endDate: null }, true);\n this.startValue = this.endValue = null;\n }\n if (this.element.tagName === 'EJS-DATERANGEPICKER') {\n this.setProperties({ value: null, startDate: null, endDate: null }, true);\n val = '';\n this.startValue = this.endValue = null;\n this.inputElement.setAttribute('value', '');\n }\n this.restoreValue();\n if (this.inputElement) {\n Input.setValue(val, this.inputElement, this.floatLabelType, this.showClearButton);\n this.errorClass();\n }\n }\n };\n DateRangePicker.prototype.clear = function () {\n if (this.startValue !== null) {\n this.startValue = null;\n }\n if (this.endValue !== null) {\n this.endValue = null;\n }\n if (this.value && this.value.start) {\n this.setProperties({ value: { start: null, end: null } }, true);\n }\n if (this.value !== null && this.value.length > 0) {\n this.setProperties({ value: null }, true);\n }\n Input.setValue('', this.inputElement, this.floatLabelType, this.showClearButton);\n if (!(isNullOrUndefined(this.applyButton))) {\n this.applyButton.disabled = this.applyButton.element.disabled = true;\n }\n this.removeSelection();\n };\n DateRangePicker.prototype.rangeIconHandler = function (e) {\n if (!this.enabled) {\n return;\n }\n if (this.isMobile) {\n this.inputElement.setAttribute('readonly', '');\n }\n e.preventDefault();\n this.targetElement = null;\n if (this.isPopupOpen() && document.body.contains(this.popupObj.element)) {\n this.applyFunction(e);\n }\n else {\n this.isRangeIconClicked = true;\n this.inputWrapper.container.children[0].focus();\n this.show(null, e);\n if (!this.isMobile) {\n if (!isNullOrUndefined(this.leftCalendar)) {\n this.isRangeIconClicked = false;\n this.calendarFocus();\n this.isRangeIconClicked = true;\n }\n }\n addClass([this.inputWrapper.container], [INPUTFOCUS]);\n }\n };\n DateRangePicker.prototype.checkHtmlAttributes = function (isDynamic) {\n this.globalize = new Internationalization(this.locale);\n var attributes = isDynamic ? isNullOrUndefined(this.htmlAttributes) ? [] : Object.keys(this.htmlAttributes) :\n ['startDate', 'endDate', 'minDays', 'maxDays', 'min', 'max', 'disabled', 'readonly', 'style', 'name', 'placeholder',\n 'type', 'value'];\n var format = { format: this.formatString, type: 'date', skeleton: 'yMd' };\n for (var _i = 0, attributes_1 = attributes; _i < attributes_1.length; _i++) {\n var prop = attributes_1[_i];\n if (!isNullOrUndefined(this.inputElement.getAttribute(prop))) {\n switch (prop) {\n case 'disabled':\n if ((isNullOrUndefined(this.dateRangeOptions) || (this.dateRangeOptions['enabled'] === undefined)) || isDynamic) {\n var disabled = this.inputElement.getAttribute(prop) === 'disabled' ||\n this.inputElement.getAttribute(prop) === '' || this.inputElement.getAttribute(prop) === 'true' ? true : false;\n this.setProperties({ enabled: !disabled }, !isDynamic);\n }\n break;\n case 'readonly':\n if ((isNullOrUndefined(this.dateRangeOptions) || (this.dateRangeOptions['readonly'] === undefined)) || isDynamic) {\n var readonly = this.inputElement.getAttribute(prop) === 'readonly' ||\n this.inputElement.getAttribute(prop) === 'true' || this.inputElement.getAttribute(prop) === '' ? true : false;\n this.setProperties({ readonly: readonly }, !isDynamic);\n }\n break;\n case 'placeholder':\n if ((isNullOrUndefined(this.dateRangeOptions) || (this.dateRangeOptions['placeholder'] === undefined)) || isDynamic) {\n this.setProperties({ placeholder: this.inputElement.getAttribute(prop) }, !isDynamic);\n }\n break;\n case 'value':\n if ((isNullOrUndefined(this.dateRangeOptions) || (this.dateRangeOptions['value'] === undefined)) || isDynamic) {\n var value = this.inputElement.getAttribute(prop);\n this.setProperties(setValue(prop, value, {}), !isDynamic);\n }\n break;\n case 'style':\n this.inputElement.setAttribute('style', '' + this.inputElement.getAttribute(prop));\n break;\n case 'min':\n if ((isNullOrUndefined(this.min) || +this.min === +new Date(1900, 0, 1)) || isDynamic) {\n var dateValue = this.globalize.parseDate(this.inputElement.getAttribute(prop), format);\n this.setProperties(setValue(prop, dateValue, {}), !isDynamic);\n }\n break;\n case 'name':\n this.inputElement.setAttribute('name', '' + this.inputElement.getAttribute(prop));\n break;\n case 'max':\n if ((isNullOrUndefined(this.max) || +this.max === +new Date(2099, 11, 31)) || isDynamic) {\n var dateValue = this.globalize.parseDate(this.inputElement.getAttribute(prop), format);\n this.setProperties(setValue(prop, dateValue, {}), !isDynamic);\n }\n break;\n case 'startDate':\n if (isNullOrUndefined(this.startDate)) {\n var dateValue = this.globalize.parseDate(this.inputElement.getAttribute(prop), format);\n this.startValue = dateValue;\n this.setValue();\n }\n break;\n case 'endDate':\n if (isNullOrUndefined(this.endDate)) {\n var dateValue = this.globalize.parseDate(this.inputElement.getAttribute(prop), format);\n this.endValue = dateValue;\n this.setValue();\n }\n break;\n case 'minDays':\n if (isNullOrUndefined(this.minDays)) {\n this.setProperties(setValue(prop, parseInt(this.inputElement.getAttribute(prop), 10), {}), true);\n }\n break;\n case 'maxDays':\n if (isNullOrUndefined(this.maxDays)) {\n this.setProperties(setValue(prop, parseInt(this.inputElement.getAttribute(prop), 10), {}), true);\n }\n break;\n case 'type':\n if (this.inputElement.getAttribute(prop) !== 'text') {\n this.inputElement.setAttribute('type', 'text');\n }\n break;\n }\n }\n }\n };\n DateRangePicker.prototype.createPopup = function () {\n for (var i = 0; i < this.presetsItem.length; i++) {\n if ((i !== (this.presetsItem.length - 1)) && this.presetsItem[i].id === 'custom_range') {\n this.presetsItem.splice(i, 1);\n }\n }\n this.activeIndex = this.presetsItem.length - 1;\n this.isCustomRange = true;\n for (var i = 0; i <= this.presetsItem.length - 2; i++) {\n var startDate = this.presetsItem[i].start;\n var endDate = this.presetsItem[i].end;\n if (this.startValue && this.endValue) {\n if ((+new Date(startDate.setHours(0, 0, 0, 0)) === +new Date(this.startValue.setHours(0, 0, 0, 0))) &&\n (+new Date(endDate.setHours(0, 0, 0, 0)) === +new Date(this.endValue.setHours(0, 0, 0, 0)))) {\n this.activeIndex = i;\n this.isCustomRange = false;\n }\n }\n }\n this.popupWrapper = createElement('div', { id: this.element.id + '_popup', className: ROOT + ' ' + POPUP });\n this.adjustLongHeaderWidth();\n var isPreset = (!this.isCustomRange || this.isMobile);\n if (!isUndefined(this.presets[0].start && this.presets[0].end && this.presets[0].label) && isPreset) {\n this.isCustomWindow = false;\n this.createPresets();\n this.listRippleEffect();\n this.renderPopup();\n }\n else {\n this.isCustomWindow = true;\n this.renderControl();\n }\n };\n DateRangePicker.prototype.renderControl = function () {\n this.createControl();\n this.bindCalendarEvents();\n this.updateRange((this.isMobile ? [this.calendarElement] : [this.leftCalendar, this.rightCalendar]));\n if (!isNullOrUndefined(this.endValue) && !isNullOrUndefined(this.startValue) &&\n !isNullOrUndefined(this.renderDayCellArgs) && this.renderDayCellArgs.isDisabled) {\n this.disabledDateRender();\n }\n this.updateHeader();\n };\n DateRangePicker.prototype.clearCalendarEvents = function () {\n if (this.leftCalPrevIcon && this.leftCalNextIcon && this.rightCalPrevIcon && this.rightCalNextIcon) {\n EventHandler.clearEvents(this.leftCalPrevIcon);\n EventHandler.clearEvents(this.leftCalNextIcon);\n EventHandler.clearEvents(this.rightCalPrevIcon);\n EventHandler.clearEvents(this.rightCalNextIcon);\n }\n };\n DateRangePicker.prototype.updateNavIcons = function () {\n _super.prototype.iconHandler.call(this);\n };\n DateRangePicker.prototype.calendarIconEvent = function () {\n this.clearCalendarEvents();\n if (this.leftCalPrevIcon && !this.leftCalPrevIcon.classList.contains(DISABLED)) {\n EventHandler.add(this.leftCalPrevIcon, 'mousedown', this.navPrevFunction);\n }\n if (this.leftCalNextIcon && !this.leftCalNextIcon.classList.contains(DISABLED)) {\n EventHandler.add(this.leftCalNextIcon, 'mousedown', this.navNextFunction);\n }\n if (this.rightCalPrevIcon && !this.rightCalPrevIcon.classList.contains(DISABLED)) {\n EventHandler.add(this.rightCalPrevIcon, 'mousedown', this.navPrevFunction);\n }\n if (this.rightCalNextIcon && !this.rightCalNextIcon.classList.contains(DISABLED)) {\n EventHandler.add(this.rightCalNextIcon, 'mousedown', this.navNextFunction);\n }\n };\n DateRangePicker.prototype.bindCalendarEvents = function () {\n if (!this.isMobile) {\n this.updateNavIcons();\n this.calendarIconEvent();\n this.calendarIconRipple();\n this.headerTitleElement = this.popupObj.element.querySelector('.' + RIGHTCALENDER + ' .' + HEADER + ' .' + TITLE);\n this.headerTitleElement = this.popupObj.element.querySelector('.' + LEFTCALENDER + ' .' + HEADER + ' .' + TITLE);\n this.defaultKeyConfigs = extend(this.defaultKeyConfigs, this.keyConfigs);\n this.leftKeyboardModule = new KeyboardEvents(this.leftCalendar, {\n eventName: 'keydown',\n keyAction: this.keyInputHandler.bind(this),\n keyConfigs: this.defaultKeyConfigs\n });\n this.rightKeyboardModule = new KeyboardEvents(this.rightCalendar, {\n eventName: 'keydown',\n keyAction: this.keyInputHandler.bind(this),\n keyConfigs: this.defaultKeyConfigs\n });\n }\n else {\n this.deviceCalendarEvent();\n EventHandler.add(this.startButton.element, 'click', this.deviceHeaderClick, this);\n EventHandler.add(this.endButton.element, 'click', this.deviceHeaderClick, this);\n }\n if (this.start === this.depth) {\n this.bindCalendarCellEvents();\n }\n this.removeFocusedDate();\n };\n DateRangePicker.prototype.calendarIconRipple = function () {\n rippleEffect(this.leftCalPrevIcon, { selector: '.e-prev', duration: 400, isCenterRipple: true });\n rippleEffect(this.leftCalNextIcon, { selector: '.e-next', duration: 400, isCenterRipple: true });\n rippleEffect(this.rightCalPrevIcon, { selector: '.e-prev', duration: 400, isCenterRipple: true });\n rippleEffect(this.rightCalNextIcon, { selector: '.e-next', duration: 400, isCenterRipple: true });\n };\n DateRangePicker.prototype.deviceCalendarEvent = function () {\n EventHandler.clearEvents(this.nextIcon);\n EventHandler.clearEvents(this.previousIcon);\n rippleEffect(this.nextIcon, { selector: '.e-prev', duration: 400, isCenterRipple: true });\n rippleEffect(this.previousIcon, { selector: '.e-next', duration: 400, isCenterRipple: true });\n if (this.nextIcon && !this.nextIcon.classList.contains(DISABLED)) {\n EventHandler.add(this.nextIcon, 'mousedown', this.deviceNavNextFunction);\n }\n if (this.previousIcon && !this.previousIcon.classList.contains(DISABLED)) {\n EventHandler.add(this.previousIcon, 'mousedown', this.deviceNavPrevFunction);\n }\n };\n DateRangePicker.prototype.deviceNavNext = function (e) {\n var calendar = closest(e.target, '.' + CALENDAR);\n this.updateDeviceCalendar(calendar);\n this.navigateNext(e);\n this.deviceNavigation();\n };\n DateRangePicker.prototype.deviceNavPrevious = function (e) {\n var calendar = closest(e.target, '.' + CALENDAR);\n this.updateDeviceCalendar(calendar);\n this.navigatePrevious(e);\n this.deviceNavigation();\n };\n DateRangePicker.prototype.updateDeviceCalendar = function (calendar) {\n if (calendar) {\n this.previousIcon = calendar.querySelector('.' + PREVICON);\n this.nextIcon = calendar.querySelector('.' + NEXTICON);\n this.calendarElement = calendar;\n this.deviceCalendar = calendar;\n this.contentElement = calendar.querySelector('.' + CONTENT);\n this.tableBodyElement = select('.' + CONTENT + ' tbody', calendar);\n this.table = calendar.querySelector('.' + CONTENT).getElementsByTagName('table')[0];\n this.headerTitleElement = calendar.querySelector('.' + HEADER + ' .' + TITLE);\n this.headerElement = calendar.querySelector('.' + HEADER);\n }\n };\n DateRangePicker.prototype.deviceHeaderClick = function (event) {\n var element = event.currentTarget;\n if (element.classList.contains(STARTBUTTON) && !isNullOrUndefined(this.startValue)) {\n this.endButton.element.classList.remove(ACTIVE);\n this.startButton.element.classList.add(ACTIVE);\n var calendar = this.popupObj.element.querySelector('.' + CALENDAR);\n this.updateDeviceCalendar(calendar);\n if (isNullOrUndefined(this.calendarElement.querySelector('.' + STARTDATE + ':not(.e-other-month)'))) {\n this.currentDate = new Date(+this.startValue);\n remove(this.tableBodyElement);\n this.createContentBody();\n this.deviceNavigation();\n }\n this.removeClassDisabled();\n }\n else if (!isNullOrUndefined(this.startValue) && !isNullOrUndefined(this.endValue)) {\n this.startButton.element.classList.remove(ACTIVE);\n this.endButton.element.classList.add(ACTIVE);\n var calendar = this.popupObj.element.querySelector('.' + CALENDAR);\n this.updateDeviceCalendar(calendar);\n if (isNullOrUndefined(this.calendarElement.querySelector('.' + ENDDATE + ':not(.e-other-month)'))) {\n this.currentDate = new Date(+this.endValue);\n remove(this.tableBodyElement);\n this.createContentBody();\n this.deviceNavigation();\n }\n this.updateMinMaxDays(this.popupObj.element.querySelector('.' + CALENDAR));\n this.selectableDates();\n }\n };\n DateRangePicker.prototype.inputFocusHandler = function () {\n if (!this.enabled) {\n return;\n }\n this.preventBlur = false;\n var focusArguments = {\n model: this\n };\n if (!this.preventFocus) {\n this.trigger('focus', focusArguments);\n }\n this.updateClearIconState();\n this.updateHiddenInput();\n if (this.openOnFocus && !this.preventFocus) {\n this.preventFocus = true;\n this.show();\n }\n else {\n this.preventFocus = true;\n }\n };\n DateRangePicker.prototype.inputBlurHandler = function (e) {\n if (!this.enabled) {\n return;\n }\n if (!this.preventBlur) {\n var value = this.inputElement.value;\n if (!isNullOrUndefined(this.presetsItem)) {\n if (this.presetsItem.length > 0 && this.previousEleValue !== this.inputElement.value) {\n this.activeIndex = this.presetsItem.length - 1;\n this.isCustomRange = true;\n }\n }\n if (!isNullOrUndefined(value) && value.trim() !== '') {\n var range = value.split(' ' + this.separator + ' ');\n if (range.length > 1) {\n this.invalidValueString = null;\n var dateOptions = { format: this.formatString, type: 'date', skeleton: 'yMd' };\n var start = new Date(range[0]);\n var end = new Date(range[1]);\n var startDate = this.getStartEndDate(start, false, range, dateOptions);\n var endDate = this.getStartEndDate(end, true, range, dateOptions);\n if (!isNullOrUndefined(startDate) && !isNaN(+startDate) && !isNullOrUndefined(endDate) && !isNaN(+endDate)) {\n var prevStartVal = this.startValue;\n this.startValue = startDate;\n var prevEndVal = this.endValue;\n this.endValue = endDate;\n this.setValue();\n this.refreshControl();\n if (value !== this.previousEleValue) {\n this.changeTrigger(e);\n }\n if (!this.preventBlur && document.activeElement !== this.inputElement) {\n this.preventFocus = false;\n var blurArguments = {\n model: this\n };\n this.trigger('blur', blurArguments);\n }\n this.updateHiddenInput();\n // For Mobile mode, when a value is present and choose another range and click on console\n // when popup is open, two startvalues and end values are updated in the popup.\n if (this.isMobile && this.isPopupOpen()) {\n this.startValue = prevStartVal;\n this.endValue = prevEndVal;\n }\n return;\n }\n else {\n if (!this.strictMode) {\n this.startValue = null;\n this.endValue = null;\n this.setValue();\n }\n }\n }\n else {\n if (!this.strictMode) {\n this.startValue = null;\n this.endValue = null;\n this.setValue();\n }\n }\n }\n if (!this.strictMode) {\n if (isNullOrUndefined(this.popupObj)) {\n this.currentDate = null;\n }\n this.previousStartValue = this.previousEndValue = null;\n this.startValue = null;\n this.endValue = null;\n this.setValue();\n }\n else {\n if (!isNullOrUndefined(value) && value.trim() === '') {\n this.startValue = null;\n this.endValue = null;\n }\n Input.setValue('', this.inputElement, this.floatLabelType, this.showClearButton);\n this.updateInput();\n }\n this.errorClass();\n this.changeTrigger(e);\n if (!this.preventBlur && document.activeElement !== this.inputElement) {\n this.preventFocus = false;\n var blurArguments = {\n model: this\n };\n this.trigger('blur', blurArguments);\n }\n }\n this.updateHiddenInput();\n };\n // eslint-disable-next-line @typescript-eslint/tslint/config\n DateRangePicker.prototype.getStartEndDate = function (date, isEnd, range, dateOptions) {\n if (this.depth === 'Month') {\n return this.globalize.parseDate(range[isEnd ? 1 : 0].trim(), dateOptions);\n }\n else if (this.depth === 'Year') {\n return new Date(date.getFullYear(), date.getMonth() + (isEnd ? 1 : 0), isEnd ? 0 : 1);\n }\n else {\n return new Date(date.getFullYear(), isEnd ? 11 : 0, isEnd ? 31 : 1);\n }\n };\n DateRangePicker.prototype.clearRange = function () {\n this.previousStartValue = this.previousEndValue = null;\n this.currentDate = null;\n };\n DateRangePicker.prototype.errorClass = function () {\n var inputStr = this.inputElement.value.trim();\n if (((isNullOrUndefined(this.endValue) && isNullOrUndefined(this.startValue) && inputStr !== '') ||\n ((!isNullOrUndefined(this.startValue) && +this.startValue < +this.min)\n || ((!isNullOrUndefined(this.startValue) && !isNullOrUndefined(this.endValue)) && +this.startValue > +this.endValue)\n || (!isNullOrUndefined(this.endValue) && +this.endValue > +this.max))\n || ((this.startValue && this.isDateDisabled(this.startValue))\n || (this.endValue && this.isDateDisabled(this.endValue)))) && inputStr !== '') {\n addClass([this.inputWrapper.container], ERROR);\n attributes(this.inputElement, { 'aria-invalid': 'true' });\n }\n else {\n if (this.inputWrapper) {\n removeClass([this.inputWrapper.container], ERROR);\n attributes(this.inputElement, { 'aria-invalid': 'false' });\n }\n }\n };\n DateRangePicker.prototype.keyCalendarUpdate = function (isLeftCalendar, ele, isRemoveFocus) {\n if (isRemoveFocus === void 0) { isRemoveFocus = true; }\n if (isRemoveFocus) {\n this.removeFocusedDate();\n }\n if (isLeftCalendar) {\n this.leftCalCurrentDate = new Date(+this.currentDate);\n ele = this.leftCalendar;\n }\n else {\n this.rightCalCurrentDate = new Date(+this.currentDate);\n ele = this.rightCalendar;\n }\n this.updateCalendarElement(ele);\n this.table.focus();\n return ele;\n };\n DateRangePicker.prototype.navInCalendar = function (e, isLeftCalendar, leftLimit, rightLimit, ele) {\n var view = this.getViewNumber(this.currentView());\n var date;\n var min = this.min;\n var max;\n if (!isNullOrUndefined(this.maxDays) && this.isMaxDaysClicked && !isNullOrUndefined(this.startValue)) {\n max = new Date(new Date(+this.startValue).setDate(this.startValue.getDate() + (this.maxDays - 1)));\n }\n else {\n max = this.max;\n }\n switch (e.action) {\n case 'moveRight':\n date = new Date(+this.currentDate);\n this.addDay(date, 1, e, max, min);\n if (isLeftCalendar && +date === +rightLimit) {\n ele = this.keyCalendarUpdate(false, ele);\n }\n this.keyboardNavigate(1, view, e, max, min);\n this.keyNavigation(ele, e);\n break;\n case 'moveLeft':\n date = new Date(+this.currentDate);\n this.addDay(date, -1, e, max, min);\n if (!isLeftCalendar) {\n if (+date === +leftLimit) {\n ele = this.keyCalendarUpdate(true, ele);\n }\n }\n this.keyboardNavigate(-1, view, e, max, min);\n this.keyNavigation(ele, e);\n break;\n case 'moveUp':\n if (view === 0) {\n date = new Date(+this.currentDate);\n this.addDay(date, -7, e, max, min);\n if (+date <= +leftLimit && !isLeftCalendar) {\n ele = this.keyCalendarUpdate(true, ele);\n }\n this.keyboardNavigate(-7, view, e, max, min);\n }\n else {\n this.keyboardNavigate(-4, view, e, this.max, this.min); // move the current year to the previous four days.\n }\n this.keyNavigation(ele, e);\n break;\n case 'moveDown':\n if (view === 0) {\n date = new Date(+this.currentDate);\n this.addDay(date, 7, e, max, min);\n if (isLeftCalendar && +date >= +rightLimit) {\n ele = this.keyCalendarUpdate(false, ele);\n }\n this.keyboardNavigate(7, view, e, max, min);\n }\n else {\n this.keyboardNavigate(4, view, e, this.max, this.min);\n }\n this.keyNavigation(ele, e);\n break;\n case 'home':\n this.currentDate = this.firstDay(this.currentDate);\n remove(this.tableBodyElement);\n if (view === 0) {\n this.renderMonths(e);\n }\n else if (view === 1) {\n this.renderYears(e);\n }\n else {\n this.renderDecades(e);\n }\n this.keyNavigation(ele, e);\n break;\n case 'end':\n this.currentDate = this.lastDay(this.currentDate, view);\n remove(this.tableBodyElement);\n if (view === 0) {\n this.renderMonths(e);\n }\n else if (view === 1) {\n this.renderYears(e);\n }\n else {\n this.renderDecades(e);\n }\n this.keyNavigation(ele, e);\n break;\n case 'tab':\n if (this.tabKeyValidation(ele, LEFTCALENDER)) {\n ele = this.keyCalendarUpdate(false, ele, false);\n this.currentDate = this.firstCellToFocus(this.rightCalendar);\n view = this.getViewNumber(this.currentView());\n this.keyboardNavigate(0, view, e, max, min);\n this.keyNavigation(ele, e);\n }\n break;\n case 'shiftTab':\n if (this.tabKeyValidation(ele, RIGHTCALENDER)) {\n ele = this.keyCalendarUpdate(true, ele, false);\n this.currentDate = this.firstCellToFocus(this.leftCalendar);\n this.keyboardNavigate(0, view, e, max, min);\n this.keyNavigation(ele, e);\n }\n break;\n }\n };\n DateRangePicker.prototype.firstCellToFocus = function (calendar) {\n var focusAbleEle = this.getViewNumber(this.currentView()) === 2 ? calendar.children[1].firstElementChild.querySelector('td.e-cell:not(.e-week-number):not(.e-disabled):not(.e-other-year)') : calendar.children[1].firstElementChild.querySelector('td.e-cell:not(.e-week-number):not(.e-disabled):not(.e-other-month)');\n var focusEleID = focusAbleEle && focusAbleEle.id ? focusAbleEle.id.split('_')[0] : null;\n var currentFirstDay = new Date(this.currentDate.getFullYear(), this.currentDate.getMonth(), 1);\n var focusDate = focusEleID ? new Date(+focusEleID) : currentFirstDay;\n return focusDate;\n };\n DateRangePicker.prototype.keyInputHandler = function (e, value) {\n var date;\n var view = this.getViewNumber(this.currentView());\n var rightDateLimit = new Date(this.rightCalCurrentDate.getFullYear(), this.rightCalCurrentDate.getMonth(), 1);\n var leftDateLimit = new Date(this.leftCalCurrentDate.getFullYear(), this.leftCalCurrentDate.getMonth() + 1, 0);\n var ele = closest(e.target, '.' + RIGHTCALENDER);\n ele = isNullOrUndefined(ele) ? this.leftCalendar : ele;\n var isLeftCalendar = ele.classList.contains(LEFTCALENDER);\n this.updateCalendarElement(ele);\n var selectedDate = this.tableBodyElement.querySelector('tr td.e-selected');\n var focusedDate = ele.querySelector('tr td.' + FOCUSDATE);\n var startDate = ele.querySelector('tr td.' + STARTDATE);\n var endDate = ele.querySelector('tr td.' + ENDDATE);\n var depthValue = this.getViewNumber(this.depth);\n var levelRestrict = (view === depthValue && this.getViewNumber(this.start) >= depthValue);\n var leftCalendar = closest(e.target, '.' + LEFTCALENDER);\n var rightCalendar = closest(e.target, '.' + RIGHTCALENDER);\n var presetElement = closest(e.target, '.' + PRESETS);\n if (!isNullOrUndefined(focusedDate)) {\n // eslint-disable-next-line no-self-assign\n this.currentDate = this.currentDate;\n }\n else if (!isNullOrUndefined(endDate) && !this.dateDisabled) {\n this.currentDate = new Date(+this.endValue);\n }\n else if (!isNullOrUndefined(startDate) && !this.dateDisabled) {\n this.currentDate = new Date(+this.startValue);\n }\n else if (!this.dateDisabled) {\n this.currentDate.setDate(1);\n }\n this.effect = '';\n switch (e.action) {\n case 'altUpArrow':\n if (this.isPopupOpen()) {\n this.hide(e);\n this.preventFocus = true;\n this.inputElement.focus();\n addClass([this.inputWrapper.container], [INPUTFOCUS]);\n }\n break;\n case 'select':\n if (levelRestrict) {\n var element = !isNullOrUndefined(focusedDate) ? focusedDate : startDate;\n if (!isNullOrUndefined(element) && !element.classList.contains(DISABLED)) {\n this.selectRange(null, (element));\n }\n }\n else {\n if (!isNullOrUndefined(selectedDate) && !levelRestrict || !isNullOrUndefined(focusedDate)) {\n if (!isNullOrUndefined(this.value)) {\n if (this.calendarElement.classList.contains(LEFTCALENDER)) {\n value = this.startDate;\n }\n else {\n value = this.endDate;\n }\n }\n this.controlDown = e;\n this.contentClick(null, --view, (focusedDate || selectedDate), value);\n }\n }\n e.preventDefault();\n break;\n case 'controlHome':\n {\n var yearDate = new Date(this.currentDate.getFullYear(), 0, 1);\n if (!isLeftCalendar && +yearDate < +leftDateLimit) {\n ele = this.keyCalendarUpdate(true, ele);\n }\n _super.prototype.navigateTo.call(this, 'Month', new Date(this.currentDate.getFullYear(), 0, 1));\n this.keyNavigation(ele, e);\n }\n break;\n case 'altRightArrow':\n if (!isNullOrUndefined(leftCalendar)) {\n this.rightCalendar.children[1].firstElementChild.focus();\n }\n else if (!isNullOrUndefined(rightCalendar)) {\n if (!isNullOrUndefined(this.presetElement)) {\n this.presetElement.focus();\n this.removeFocusedDate();\n }\n else {\n this.cancelButton.element.focus();\n }\n }\n else {\n if (!isNullOrUndefined(presetElement)) {\n this.cancelButton.element.focus();\n }\n }\n e.preventDefault();\n break;\n case 'altLeftArrow':\n if (!isNullOrUndefined(leftCalendar)) {\n if (this.applyButton.element.disabled !== true) {\n this.applyButton.element.focus();\n }\n else {\n this.cancelButton.element.focus();\n }\n }\n else {\n if (!isNullOrUndefined(rightCalendar)) {\n this.leftCalendar.children[1].firstElementChild.focus();\n }\n }\n e.preventDefault();\n break;\n case 'controlUp':\n if (this.calendarElement.classList.contains(LEFTCALENDER)) {\n this.calendarNavigation(e, this.calendarElement);\n }\n else {\n this.calendarNavigation(e, this.calendarElement);\n }\n e.preventDefault();\n break;\n case 'controlDown':\n if ((!isNullOrUndefined(selectedDate) || !isNullOrUndefined(focusedDate)) && !levelRestrict) {\n if (!isNullOrUndefined(this.value)) {\n if (this.calendarElement.classList.contains(LEFTCALENDER)) {\n value = this.startDate;\n }\n else {\n value = this.endDate;\n }\n }\n this.controlDown = e;\n this.contentClick(null, --view, (selectedDate || focusedDate), value);\n }\n e.preventDefault();\n break;\n case 'controlEnd':\n {\n var yearDate = new Date(this.currentDate.getFullYear(), 11, 31);\n if (isLeftCalendar && +yearDate > +rightDateLimit) {\n ele = this.keyCalendarUpdate(false, ele);\n }\n _super.prototype.navigateTo.call(this, 'Month', new Date(this.currentDate.getFullYear(), 11, 31));\n this.keyNavigation(ele, e);\n }\n break;\n case 'pageUp':\n date = new Date(+this.currentDate);\n this.addMonths(date, -1);\n if (!isLeftCalendar && +date <= +leftDateLimit) {\n ele = this.keyCalendarUpdate(true, ele);\n }\n this.addMonths(this.currentDate, -1);\n _super.prototype.navigateTo.call(this, 'Month', this.currentDate);\n this.keyNavigation(ele, e);\n break;\n case 'pageDown':\n date = new Date(+this.currentDate);\n this.addMonths(date, 1);\n if (isLeftCalendar && +date >= +rightDateLimit) {\n ele = this.keyCalendarUpdate(false, ele);\n }\n this.addMonths(this.currentDate, 1);\n _super.prototype.navigateTo.call(this, 'Month', this.currentDate);\n this.keyNavigation(ele, e);\n break;\n case 'shiftPageUp':\n date = new Date(+this.currentDate);\n this.addYears(date, -1);\n if (!isLeftCalendar && +date <= +leftDateLimit) {\n ele = this.keyCalendarUpdate(true, ele);\n }\n this.addYears(this.currentDate, -1);\n _super.prototype.navigateTo.call(this, 'Month', this.currentDate);\n this.keyNavigation(ele, e);\n break;\n case 'shiftPageDown':\n date = new Date(+this.currentDate);\n this.addYears(date, 1);\n if (isLeftCalendar && +date >= +rightDateLimit) {\n ele = this.keyCalendarUpdate(false, ele);\n }\n this.addYears(this.currentDate, 1);\n _super.prototype.navigateTo.call(this, 'Month', this.currentDate);\n this.keyNavigation(ele, e);\n break;\n case 'shiftTab':\n if (!isNullOrUndefined(this.presetElement)) {\n this.presetElement.setAttribute('tabindex', '0');\n this.presetElement.focus();\n this.removeFocusedDate();\n }\n if (isLeftCalendar) {\n e.preventDefault();\n }\n if (this.tabKeyValidation(ele, RIGHTCALENDER)) {\n this.currentDate = new Date(+this.leftCalCurrentDate);\n this.navInCalendar(e, isLeftCalendar, leftDateLimit, rightDateLimit, ele);\n }\n break;\n case 'spacebar':\n if (this.applyButton && !this.applyButton.disabled) {\n this.applyFunction(e);\n }\n break;\n case 'tab':\n if (this.tabKeyValidation(ele, LEFTCALENDER)) {\n this.currentDate = new Date(+this.rightCalCurrentDate);\n this.navInCalendar(e, isLeftCalendar, leftDateLimit, rightDateLimit, ele);\n }\n break;\n default:\n this.navInCalendar(e, isLeftCalendar, leftDateLimit, rightDateLimit, ele);\n this.checkMinMaxDays();\n }\n this.presetHeight();\n };\n DateRangePicker.prototype.tabKeyValidation = function (ele, calendarPos) {\n var isLeftCalendar = ele.classList.contains(calendarPos);\n var rightHeader = this.rightCalendar.querySelector('.e-header');\n var leftHeader = this.leftCalendar.querySelector('.e-header');\n var isRightMonth = rightHeader ? rightHeader.classList.contains('e-month') : false;\n var isLeftMonth = leftHeader ? leftHeader.classList.contains('e-month') : false;\n var isRightYear = rightHeader ? rightHeader.classList.contains('e-year') : false;\n var isLeftYear = leftHeader ? leftHeader.classList.contains('e-year') : false;\n var isRightDecade = rightHeader ? rightHeader.classList.contains('e-decade') : false;\n var isLeftDecade = leftHeader ? leftHeader.classList.contains('e-decade') : false;\n return isLeftCalendar && (isLeftMonth || isLeftYear || isLeftDecade) &&\n (isRightMonth || isRightYear || isRightDecade) && !this.isMobile;\n };\n DateRangePicker.prototype.keyNavigation = function (calendar, e) {\n this.bindCalendarCellEvents(calendar);\n if (calendar.classList.contains(LEFTCALENDER)) {\n this.leftCalCurrentDate = new Date(+this.currentDate);\n }\n else {\n this.rightCalCurrentDate = new Date(+this.currentDate);\n }\n this.updateNavIcons();\n this.calendarIconEvent();\n this.updateRange([calendar]);\n this.dateDisabled = this.isDateDisabled(this.currentDate);\n e.preventDefault();\n };\n DateRangePicker.prototype.inputHandler = function (e) {\n switch (e.action) {\n case 'altDownArrow':\n if (!this.isPopupOpen()) {\n if (this.inputElement.value === '') {\n this.clear();\n this.changeTrigger(e);\n this.clearRange();\n }\n this.show(null, e);\n this.isRangeIconClicked = false;\n if (!this.isMobile) {\n if (!isNullOrUndefined(this.leftCalendar)) {\n this.calendarFocus();\n }\n }\n this.isKeyPopup = true;\n }\n break;\n case 'escape':\n if (this.isPopupOpen()) {\n this.hide(e);\n }\n break;\n case 'enter':\n if (document.activeElement === this.inputElement) {\n this.inputBlurHandler(e);\n this.hide(e);\n }\n break;\n case 'tab':\n if (document.activeElement === this.inputElement && this.isPopupOpen()) {\n this.hide(e);\n e.preventDefault();\n }\n break;\n }\n };\n DateRangePicker.prototype.bindCalendarCellEvents = function (calendar) {\n var tdCells;\n if (calendar) {\n tdCells = calendar.querySelectorAll('.' + CALENDAR + ' td');\n }\n else {\n tdCells = this.popupObj.element.querySelectorAll('.' + CALENDAR + ' td');\n }\n for (var _i = 0, tdCells_1 = tdCells; _i < tdCells_1.length; _i++) {\n var cell = tdCells_1[_i];\n EventHandler.clearEvents(cell);\n var disabledCell = cell.classList.contains(DISABLED) || cell.classList.contains(DATEDISABLED);\n if (!disabledCell && !cell.classList.contains(WEEKNUMBER)) {\n if (!this.isMobile) {\n EventHandler.add(cell, 'mouseover', this.hoverSelection, this);\n }\n EventHandler.add(cell, 'mousedown', this.selectRange, this);\n }\n }\n };\n DateRangePicker.prototype.removeFocusedDate = function () {\n var isDate = !isNullOrUndefined(this.startValue) || !isNullOrUndefined(this.endValue);\n var focusedDate = this.popupObj.element.querySelectorAll('.' + CALENDAR + ' .' + FOCUSDATE);\n for (var _i = 0, focusedDate_1 = focusedDate; _i < focusedDate_1.length; _i++) {\n var ele = focusedDate_1[_i];\n var today = new Date();\n var eleDate = this.getIdValue(null, ele);\n if ((this.depth === 'Month' && this.currentView() === 'Month' &&\n (!ele.classList.contains(TODAY) || (ele.classList.contains(TODAY) && isDate)))\n || (this.depth === 'Year' && this.currentView() === 'Year' &&\n ((!this.isSameMonth(today, eleDate) && !this.isSameYear(today, eleDate)) || isDate))\n || (this.depth === 'Decade' && this.currentView() === 'Decade' &&\n (!this.isSameYear(today, eleDate) || isDate))) {\n ele.classList.remove(FOCUSDATE);\n if (!ele.classList.contains(STARTDATE) && !ele.classList.contains(ENDDATE)) {\n ele.removeAttribute('aria-label');\n }\n }\n }\n };\n DateRangePicker.prototype.hoverSelection = function (event, element) {\n var currentElement = element || event.currentTarget;\n var currentDate = this.getIdValue(null, currentElement);\n if (!isNullOrUndefined(this.startValue) && +this.startValue >= +this.min && +this.startValue <= +this.max) {\n if ((!this.isDateDisabled(this.endValue) && !this.isDateDisabled(this.startValue)\n && isNullOrUndefined(this.endValue) && isNullOrUndefined(this.startValue))\n || (!isNullOrUndefined(this.startValue) && isNullOrUndefined(this.endValue))) {\n var tdCells = this.popupObj.element.querySelectorAll('.' + CALENDAR + ' td');\n for (var _i = 0, tdCells_2 = tdCells; _i < tdCells_2.length; _i++) {\n var ele = tdCells_2[_i];\n var isDisabledCell = (!ele.classList.contains(DISABLED) || ele.classList.contains(DATEDISABLED));\n if (!ele.classList.contains(WEEKNUMBER) && isDisabledCell) {\n var eleDate = this.getIdValue(null, ele);\n var startDateValue = new Date(+this.startValue);\n var eleDateValue = new Date(+eleDate);\n if (eleDateValue.setHours(0, 0, 0, 0) >= startDateValue.setHours(0, 0, 0, 0) && +eleDate <= +currentDate) {\n addClass([ele], RANGEHOVER);\n }\n else {\n removeClass([ele], [RANGEHOVER]);\n }\n }\n }\n }\n }\n };\n DateRangePicker.prototype.isSameStartEnd = function (startVal, endVal) {\n var isSame = false;\n if (this.depth === 'Month') {\n if ((startVal).setHours(0, 0, 0, 0) === (endVal).setHours(0, 0, 0, 0)) {\n isSame = true;\n }\n }\n else if (this.depth === 'Year') {\n if ((startVal.getFullYear() === endVal.getFullYear()) &&\n (startVal.getMonth() === endVal.getMonth())) {\n isSame = true;\n }\n }\n else if (this.depth === 'Decade') {\n if (startVal.getFullYear() === endVal.getFullYear()) {\n isSame = true;\n }\n }\n return isSame;\n };\n DateRangePicker.prototype.updateRange = function (elementCollection) {\n if (!isNullOrUndefined(this.startValue)) {\n for (var _i = 0, elementCollection_1 = elementCollection; _i < elementCollection_1.length; _i++) {\n var calendar = elementCollection_1[_i];\n var tdCells = calendar.querySelectorAll('.' + CALENDAR + ' td');\n for (var _a = 0, tdCells_3 = tdCells; _a < tdCells_3.length; _a++) {\n var ele = tdCells_3[_a];\n if (!ele.classList.contains(WEEKNUMBER) && !ele.classList.contains(DISABLED)) {\n var eleDate = this.getIdValue(null, ele);\n var eleDateValue = this.getIdValue(null, ele);\n if (!isNullOrUndefined(this.endValue)) {\n if (this.currentView() === this.depth &&\n +eleDateValue.setHours(0, 0, 0, 0) >= +new Date(+this.startValue).setHours(0, 0, 0, 0)\n && +eleDateValue.setHours(0, 0, 0, 0) <= +new Date(+this.endValue).setHours(0, 0, 0, 0) &&\n !this.isSameStartEnd(new Date(+this.startValue), new Date(+this.endValue)) &&\n +new Date(+this.startValue).setHours(0, 0, 0, 0) >= +this.min\n && +new Date(+this.endValue).setHours(0, 0, 0, 0) <= +this.max\n && !(this.isDateDisabled(this.startValue) || this.isDateDisabled(this.endValue))) {\n addClass([ele], RANGEHOVER);\n }\n }\n else {\n removeClass([ele], [RANGEHOVER]);\n }\n if (ele.classList.contains(SELECTED) && ele.classList.contains(ENDDATE) &&\n (+eleDateValue !== +this.endValue)) {\n removeClass([ele], [SELECTED]);\n removeClass([ele], [ENDDATE]);\n }\n if (ele.classList.contains(RANGEHOVER) && (+eleDateValue > +this.endValue)) {\n removeClass([ele], [RANGEHOVER]);\n }\n if (!ele.classList.contains(OTHERMONTH)) {\n var startDateValue = new Date(+this.startValue);\n var eleDateValue_1 = new Date(+eleDate);\n if (this.currentView() === this.depth &&\n +eleDateValue_1.setHours(0, 0, 0, 0) === +startDateValue.setHours(0, 0, 0, 0)\n && +eleDateValue_1.setHours(0, 0, 0, 0) >= +startDateValue.setHours(0, 0, 0, 0) &&\n +this.startValue >= +this.min\n && !this.inputWrapper.container.classList.contains('e-error')\n && !(this.isDateDisabled(this.startValue) || this.isDateDisabled(this.endValue))) {\n addClass([ele], [STARTDATE, SELECTED]);\n this.addSelectedAttributes(ele, this.startValue, true);\n }\n var endDateValue = new Date(+this.endValue);\n if (this.currentView() === 'Year') {\n eleDateValue_1 = new Date(eleDateValue_1.getFullYear(), eleDateValue_1.getMonth() + 1, 0);\n }\n else if (this.currentView() === 'Decade') {\n eleDateValue_1 = new Date(eleDateValue_1.getFullYear(), 11, 31);\n }\n if (this.currentView() === this.depth &&\n !isNullOrUndefined(this.endValue) &&\n +eleDateValue_1.setHours(0, 0, 0, 0) === +endDateValue.setHours(0, 0, 0, 0)\n && +eleDateValue_1.setHours(0, 0, 0, 0) <= +endDateValue.setHours(0, 0, 0, 0) &&\n +this.startValue >= +this.min\n && !this.inputWrapper.container.classList.contains('e-error')\n && !(this.isDateDisabled(this.startValue) || this.isDateDisabled(this.endValue))) {\n addClass([ele], [ENDDATE, SELECTED]);\n this.addSelectedAttributes(ele, this.startValue, false);\n }\n if (+eleDate === +this.startValue && !isNullOrUndefined(this.endValue) && +eleDate === +this.endValue) {\n this.addSelectedAttributes(ele, this.endValue, false, true);\n }\n }\n }\n }\n }\n }\n };\n DateRangePicker.prototype.checkMinMaxDays = function () {\n if ((!isNullOrUndefined(this.minDays) && this.minDays > 0) || (!isNullOrUndefined(this.maxDays) && this.maxDays > 0)) {\n if (!this.isMobile) {\n this.updateMinMaxDays(this.popupObj.element.querySelector('.' + LEFTCALENDER));\n this.updateMinMaxDays(this.popupObj.element.querySelector('.' + RIGHTCALENDER));\n }\n else {\n this.updateMinMaxDays(this.popupObj.element.querySelector('.' + CALENDAR));\n }\n }\n };\n DateRangePicker.prototype.rangeArgs = function (e) {\n var inputValue;\n var range;\n var startDate = !isNullOrUndefined(this.startValue) ?\n this.globalize.formatDate(this.startValue, {\n format: this.formatString, type: 'date', skeleton: 'yMd'\n }) : null;\n var endDate = !isNullOrUndefined(this.endValue) ?\n this.globalize.formatDate(this.endValue, {\n format: this.formatString, type: 'date', skeleton: 'yMd'\n }) : null;\n if (!isNullOrUndefined(this.endValue) && !isNullOrUndefined(this.startValue)) {\n inputValue = startDate + ' ' + this.separator + ' ' + endDate;\n range = (Math.round(Math.abs((this.removeTimeValueFromDate(this.startValue).getTime() -\n this.removeTimeValueFromDate(this.endValue).getTime()) / (1000 * 60 * 60 * 24))) + 1);\n }\n else {\n inputValue = '';\n range = 0;\n }\n var args = {\n value: this.value,\n startDate: this.startValue,\n endDate: this.endValue,\n daySpan: range,\n event: e || null,\n element: this.element,\n isInteracted: !isNullOrUndefined(e),\n text: inputValue\n };\n return args;\n };\n DateRangePicker.prototype.otherMonthSelect = function (ele, isStartDate, sameDate) {\n var value = +this.getIdValue(null, ele);\n var dateIdString = '*[id^=\"/id\"]:not(.e-other-month)'.replace('/id', '' + value);\n var tdCell = this.popupObj && this.popupObj.element.querySelector(dateIdString);\n if (!isNullOrUndefined(tdCell)) {\n if (isStartDate) {\n addClass([tdCell], [STARTDATE, SELECTED]);\n this.addSelectedAttributes(tdCell, this.startValue, true);\n }\n else {\n addClass([tdCell], [ENDDATE, SELECTED]);\n this.addSelectedAttributes(tdCell, this.endValue, true);\n }\n if (sameDate) {\n this.addSelectedAttributes(ele, this.endValue, false, true);\n }\n }\n };\n DateRangePicker.prototype.selectRange = function (event, element) {\n var leftCalendar;\n var rightCalendar;\n if (event) {\n event.preventDefault();\n }\n var date = isNullOrUndefined(event) ? this.getIdValue(null, element)\n : this.getIdValue(event, null);\n var y = date.getFullYear();\n var m = date.getMonth();\n var firstDay = new Date(y, m, 1);\n var lastDay = new Date(y, m + 1, 0);\n var firstMonth = new Date(y, 0, 1);\n var lastMonth = new Date(y, 11, 31);\n if (!isNullOrUndefined(this.endValue) && !isNullOrUndefined(this.startValue)) {\n if (!this.isMobile || this.isMobile && !this.endButton.element.classList.contains(ACTIVE)) {\n this.removeSelection();\n }\n }\n else if (this.isMobile && this.startButton.element.classList.contains(ACTIVE)) {\n this.removeSelection();\n }\n var ele = element || event.currentTarget;\n if (isNullOrUndefined(this.startValue)) {\n if (!isNullOrUndefined(this.previousStartValue)) {\n date.setHours(this.previousStartValue.getHours());\n date.setMinutes(this.previousStartValue.getMinutes());\n date.setSeconds(this.previousStartValue.getSeconds());\n }\n this.startValue = (this.depth === 'Month') ? new Date(this.checkValue(date)) :\n (this.depth === 'Year') ? firstDay : firstMonth;\n this.endValue = null;\n this.setValue();\n addClass([ele], STARTDATE);\n this.addSelectedAttributes(ele, this.startValue, true);\n if (ele.classList.contains(OTHERMONTH)) {\n this.otherMonthSelect(ele, true);\n }\n this.checkMinMaxDays();\n this.applyButton.disabled = true;\n this.applyButton.element.disabled = true;\n if (this.isMobile) {\n this.endButton.element.classList.add(ACTIVE);\n this.startButton.element.classList.remove(ACTIVE);\n this.endButton.element.removeAttribute('disabled');\n this.selectableDates();\n }\n this.trigger('select', this.rangeArgs(event));\n }\n else {\n if (+date === +this.startValue || +date > +this.startValue) {\n if (+date === +this.startValue && !isNullOrUndefined(this.minDays) && this.minDays > 1) {\n return;\n }\n this.endValue = null;\n this.setValue();\n if (this.isMobile || element) {\n this.hoverSelection(event, element);\n }\n if (!isNullOrUndefined(this.previousEndValue)) {\n date.setHours(this.previousEndValue.getHours());\n date.setMinutes(this.previousEndValue.getMinutes());\n date.setSeconds(this.previousEndValue.getSeconds());\n }\n this.endValue = (this.depth === 'Month') ? new Date(this.checkValue(date)) :\n (this.depth === 'Year') ? lastDay : lastMonth;\n this.setValue();\n var endEle = this.popupObj.element.querySelectorAll('.' + ENDDATE);\n if (this.isMobile) {\n this.startButton.element.classList.remove(ACTIVE);\n this.endButton.element.classList.add(ACTIVE);\n for (var _i = 0, endEle_1 = endEle; _i < endEle_1.length; _i++) {\n var ele_1 = endEle_1[_i];\n ele_1.removeAttribute('aria-label');\n if (!ele_1.classList.contains(STARTDATE)) {\n ele_1.setAttribute('aria-selected', 'false');\n removeClass([ele_1], [ENDDATE, SELECTED]);\n }\n else {\n this.addSelectedAttributes(ele_1, this.startValue, true);\n removeClass([ele_1], [ENDDATE]);\n }\n }\n }\n addClass([ele], ENDDATE);\n if (+this.endValue === +this.startValue) {\n this.addSelectedAttributes(ele, this.endValue, false, true);\n }\n else {\n this.addSelectedAttributes(ele, this.endValue, false);\n }\n if (ele.classList.contains(OTHERMONTH)) {\n if (+this.endValue === +this.startValue) {\n this.otherMonthSelect(ele, false, true);\n }\n else {\n this.otherMonthSelect(ele, false);\n }\n }\n endEle = this.popupObj.element.querySelectorAll('.' + ENDDATE);\n for (var _a = 0, endEle_2 = endEle; _a < endEle_2.length; _a++) {\n var ele_2 = endEle_2[_a];\n if (ele_2.classList.contains(STARTDATE)) {\n removeClass([ele_2], [RANGEHOVER]);\n }\n }\n this.applyButton.disabled = false;\n this.applyButton.element.disabled = false;\n if (!this.isMobile) {\n this.removeClassDisabled();\n }\n if (!isNullOrUndefined(this.renderDayCellArgs) && this.renderDayCellArgs.isDisabled) {\n this.disabledDateRender();\n }\n this.trigger('select', this.rangeArgs(event));\n }\n else if (+date < +this.startValue) {\n this.removeClassDisabled();\n this.startValue = (this.depth === 'Month') ? new Date(this.checkValue(date)) :\n (this.depth === 'Year') ? firstDay : firstMonth;\n this.setValue();\n this.removeSelectedAttributes();\n removeClass(this.popupObj.element.querySelectorAll('.' + STARTDATE), [STARTDATE, SELECTED]);\n addClass([ele], STARTDATE);\n this.addSelectedAttributes(ele, this.startValue, true);\n if (ele.classList.contains(OTHERMONTH)) {\n this.otherMonthSelect(ele, true);\n }\n this.checkMinMaxDays();\n }\n }\n if (event) {\n leftCalendar = closest(event.target, '.' + LEFTCALENDER);\n }\n if (!isNullOrUndefined(leftCalendar)) {\n this.leftCalendar.children[1].firstElementChild.focus();\n }\n else {\n if (event) {\n rightCalendar = event && closest(event.target, '.' + RIGHTCALENDER);\n }\n if (!isNullOrUndefined(rightCalendar)) {\n this.rightCalendar.children[1].firstElementChild.focus();\n }\n }\n addClass([ele], SELECTED);\n this.calendarIconEvent();\n this.updateHeader();\n this.removeFocusedDate();\n };\n DateRangePicker.prototype.selectableDates = function () {\n if (!isNullOrUndefined(this.startValue)) {\n var tdCells = this.calendarElement.querySelectorAll('.' + CALENDAR + ' td');\n var isStartDate = false;\n if (this.currentView() === this.depth) {\n for (var _i = 0, tdCells_4 = tdCells; _i < tdCells_4.length; _i++) {\n var ele = tdCells_4[_i];\n if (!ele.classList.contains(STARTDATE) && !ele.classList.contains(WEEKNUMBER)) {\n if (!ele.classList.contains(DISABLED)) {\n var eleDate = this.getIdValue(null, ele);\n if (+eleDate < +this.startValue) {\n addClass([ele], [DATEDISABLED, DISABLED, OVERLAY]);\n EventHandler.clearEvents(ele);\n continue;\n }\n else {\n break;\n }\n }\n }\n if (ele.classList.contains(STARTDATE) && !ele.classList.contains(OTHERMONTH)) {\n isStartDate = true;\n break;\n }\n }\n if (isStartDate) {\n if (!this.previousIcon.classList.contains(DISABLED)) {\n addClass([this.previousIcon], [ICONDISABLED, DISABLED, OVERLAY]);\n }\n }\n }\n else {\n for (var _a = 0, tdCells_5 = tdCells; _a < tdCells_5.length; _a++) {\n var ele = tdCells_5[_a];\n var startMonth = this.startValue.getMonth();\n var startYear = this.startValue.getFullYear();\n var element = this.getIdValue(null, ele);\n if (!this.startButton.element.classList.contains(ACTIVE) && ((this.currentView() === 'Year' &&\n (element.getMonth() < startMonth) && (element.getFullYear() <= startYear))\n || (this.currentView() === 'Decade' && (element.getMonth() <= startMonth) &&\n (element.getFullYear() < startYear)))) {\n addClass([ele], [DISABLED]);\n }\n else {\n break;\n }\n }\n if (tdCells[0].classList.contains(DISABLED)) {\n this.previousIconHandler(true);\n }\n else if (tdCells[tdCells.length - 1].classList.contains(DISABLED)) {\n this.nextIconHandler(true);\n }\n }\n }\n };\n DateRangePicker.prototype.updateMinMaxDays = function (calendar) {\n if ((!isNullOrUndefined(this.startValue) && isNullOrUndefined(this.endValue)) ||\n (this.isMobile && this.endButton.element.classList.contains(ACTIVE))) {\n if ((!isNullOrUndefined(this.minDays) && this.minDays > 0) || (!isNullOrUndefined(this.maxDays) && this.maxDays > 0)) {\n var startValueSelected = this.removeTimeValueFromDate(this.startValue);\n var minDate = new Date(new Date(+startValueSelected).setDate(startValueSelected.getDate() + (this.minDays - 1)));\n var maxDate = new Date(new Date(+startValueSelected).setDate(startValueSelected.getDate() + (this.maxDays - 1)));\n minDate = (!isNullOrUndefined(this.minDays) && this.minDays > 0) ? minDate : null;\n maxDate = (!isNullOrUndefined(this.maxDays) && this.maxDays > 0) ? maxDate : null;\n if (this.currentView() === 'Year') {\n minDate = isNullOrUndefined(minDate) ? null : new Date(minDate.getFullYear(), minDate.getMonth(), 0);\n maxDate = isNullOrUndefined(maxDate) ? null : new Date(maxDate.getFullYear(), maxDate.getMonth(), 1);\n }\n else if (this.currentView() === 'Decade') {\n minDate = isNullOrUndefined(minDate) ? null : new Date(minDate.getFullYear() - 1, 11, 1);\n maxDate = isNullOrUndefined(maxDate) ? null : new Date(maxDate.getFullYear(), 0, 1);\n }\n var tdCells = calendar.querySelectorAll('.' + CALENDAR + ' td');\n var maxEle = void 0;\n for (var _i = 0, tdCells_6 = tdCells; _i < tdCells_6.length; _i++) {\n var ele = tdCells_6[_i];\n if (!ele.classList.contains(STARTDATE) && !ele.classList.contains(WEEKNUMBER)) {\n var eleDate = this.getIdValue(null, ele);\n eleDate = this.removeTimeValueFromDate(eleDate);\n if (!isNullOrUndefined(minDate) && +eleDate === +minDate && ele.classList.contains(DISABLED)) {\n minDate.setDate(minDate.getDate() + 1);\n }\n if (!ele.classList.contains(DISABLED)) {\n if (+eleDate <= +startValueSelected) {\n continue;\n }\n if (!isNullOrUndefined(minDate) && +eleDate < +minDate) {\n addClass([ele], [DATEDISABLED, DISABLED, OVERLAY]);\n EventHandler.clearEvents(ele);\n }\n if (!isNullOrUndefined(maxDate) && +eleDate > +maxDate) {\n addClass([ele], [DATEDISABLED, DISABLED, OVERLAY]);\n this.isMaxDaysClicked = true;\n EventHandler.clearEvents(ele);\n if (isNullOrUndefined(maxEle) && !ele.classList.contains(OTHERMONTH)) {\n maxEle = ele;\n }\n }\n }\n }\n }\n if (!isNullOrUndefined(maxEle)) {\n if (this.isMobile) {\n if (!this.nextIcon.classList.contains(DISABLED)) {\n addClass([this.nextIcon], [ICONDISABLED, DISABLED, OVERLAY]);\n }\n }\n else {\n var calendar_1 = closest(maxEle, '.' + RIGHTCALENDER);\n calendar_1 = isNullOrUndefined(calendar_1) ? this.leftCalendar : calendar_1;\n var isLeftCalendar = calendar_1.classList.contains(LEFTCALENDER);\n if (!isLeftCalendar) {\n if (!this.rightCalNextIcon.classList.contains(DISABLED)) {\n addClass([this.rightCalNextIcon], [ICONDISABLED, DISABLED, OVERLAY]);\n }\n }\n else {\n if (!this.rightCalNextIcon.classList.contains(DISABLED)) {\n addClass([this.rightCalNextIcon], [ICONDISABLED, DISABLED, OVERLAY]);\n }\n if (!this.leftCalNextIcon.classList.contains(DISABLED)) {\n addClass([this.leftCalNextIcon], [ICONDISABLED, DISABLED, OVERLAY]);\n }\n if (!this.rightCalPrevIcon.classList.contains(DISABLED)) {\n addClass([this.rightCalPrevIcon], [ICONDISABLED, DISABLED, OVERLAY]);\n }\n }\n }\n }\n }\n }\n else {\n this.isMaxDaysClicked = false;\n }\n };\n DateRangePicker.prototype.removeTimeValueFromDate = function (value) {\n var dateValue = new Date(value.getFullYear(), value.getMonth(), value.getDate());\n return dateValue;\n };\n DateRangePicker.prototype.removeClassDisabled = function () {\n var tdCells = this.popupObj.element.querySelectorAll('.' + CALENDAR + ' td' + '.' + DATEDISABLED);\n for (var _i = 0, tdCells_7 = tdCells; _i < tdCells_7.length; _i++) {\n var ele = tdCells_7[_i];\n if (ele.classList.contains(DATEDISABLED)) {\n removeClass([ele], [DATEDISABLED, DISABLED, OVERLAY]);\n EventHandler.add(ele, 'click', this.selectRange, this);\n if (!this.isMobile) {\n EventHandler.add(ele, 'mouseover', this.hoverSelection, this);\n }\n }\n }\n if (this.isMobile) {\n if (this.nextIcon.classList.contains(ICONDISABLED)) {\n removeClass([this.nextIcon], [ICONDISABLED, DISABLED, OVERLAY]);\n }\n if (this.previousIcon.classList.contains(ICONDISABLED)) {\n removeClass([this.previousIcon], [ICONDISABLED, DISABLED, OVERLAY]);\n }\n }\n else {\n if (this.rightCalNextIcon.classList.contains(ICONDISABLED)) {\n removeClass([this.rightCalNextIcon], [ICONDISABLED, DISABLED, OVERLAY]);\n }\n if (this.rightCalPrevIcon.classList.contains(ICONDISABLED)) {\n removeClass([this.rightCalPrevIcon], [ICONDISABLED, DISABLED, OVERLAY]);\n }\n if (this.leftCalNextIcon.classList.contains(ICONDISABLED)) {\n removeClass([this.leftCalNextIcon], [ICONDISABLED, DISABLED, OVERLAY]);\n }\n }\n };\n DateRangePicker.prototype.updateHeader = function () {\n var format = { type: 'date', skeleton: 'yMMMd' };\n if (!isNullOrUndefined(this.endValue) && !isNullOrUndefined(this.startValue)) {\n var range = (Math.round(Math.abs((this.removeTimeValueFromDate(this.startValue).getTime() -\n this.removeTimeValueFromDate(this.endValue).getTime()) / (1000 * 60 * 60 * 24))) + 1);\n if (!isNullOrUndefined(this.disabledDayCnt)) {\n range = range - this.disabledDayCnt;\n this.disabledDayCnt = null;\n }\n this.popupObj.element.querySelector('.' + DAYSPAN).textContent = range.toString() + ' ' + this.l10n.getConstant('days');\n }\n else {\n this.popupObj.element.querySelector('.' + DAYSPAN).textContent = this.l10n.getConstant('selectedDays');\n }\n if (!this.isMobile) {\n if (!isNullOrUndefined(this.endValue) && !isNullOrUndefined(this.startValue)) {\n this.popupObj.element.querySelector('.' + ENDLABEL).textContent = this.globalize.formatDate(this.endValue, format);\n }\n else {\n this.popupObj.element.querySelector('.' + ENDLABEL).textContent = this.l10n.getConstant('endLabel');\n }\n if (!isNullOrUndefined(this.startValue)) {\n this.popupObj.element.querySelector('.' + STARTLABEL).textContent = this.globalize.formatDate(this.startValue, format);\n }\n else {\n this.popupObj.element.querySelector('.' + STARTLABEL).textContent = this.l10n.getConstant('startLabel');\n }\n }\n else {\n if (!isNullOrUndefined(this.startValue)) {\n this.startButton.element.textContent = this.globalize.formatDate(this.startValue, format);\n }\n else {\n this.startButton.element.textContent = this.l10n.getConstant('startLabel');\n }\n if (!isNullOrUndefined(this.endValue) && !isNullOrUndefined(this.startValue)) {\n this.endButton.element.textContent = this.globalize.formatDate(this.endValue, format);\n }\n else {\n this.endButton.element.textContent = this.l10n.getConstant('endLabel');\n }\n }\n if ((this.isDateDisabled(this.startValue) || this.isDateDisabled(this.endValue)) ||\n ((!isNullOrUndefined(this.startValue) && +this.startValue < +this.min)\n || (!isNullOrUndefined(this.endValue) && +this.endValue > +this.max)\n || ((!isNullOrUndefined(this.startValue) && !isNullOrUndefined(this.endValue))\n && +this.startValue > +this.endValue))) {\n if (!this.isMobile) {\n this.popupObj.element.querySelector('.' + DAYSPAN).textContent = this.l10n.getConstant('selectedDays');\n this.popupObj.element.querySelector('.' + STARTLABEL).textContent = this.l10n.getConstant('startLabel');\n this.popupObj.element.querySelector('.' + ENDLABEL).textContent = this.l10n.getConstant('endLabel');\n }\n else {\n this.startButton.element.textContent = this.l10n.getConstant('startLabel');\n this.endButton.element.textContent = this.l10n.getConstant('endLabel');\n this.popupObj.element.querySelector('.' + DAYSPAN).textContent = this.l10n.getConstant('selectedDays');\n }\n }\n if (this.popupObj.element.querySelector('#custom_range')) {\n this.popupObj.element.querySelector('#custom_range').textContent =\n this.l10n.getConstant('customRange') !== '' ? this.l10n.getConstant('customRange') : 'Custom Range';\n }\n };\n DateRangePicker.prototype.removeSelection = function () {\n this.startValue = null;\n this.endValue = null;\n this.setValue();\n this.removeSelectedAttributes();\n if (this.popupObj) {\n if (this.popupObj.element.querySelectorAll('.' + SELECTED).length > 0) {\n removeClass(this.popupObj.element.querySelectorAll('.' + SELECTED), [STARTDATE, ENDDATE, SELECTED]);\n }\n if (this.popupObj.element.querySelectorAll('.' + FOCUSDATE).length > 0) {\n removeClass(this.popupObj.element.querySelectorAll('.' + FOCUSDATE), FOCUSDATE);\n }\n if (this.popupObj.element.querySelectorAll('.' + RANGEHOVER).length > 0) {\n removeClass(this.popupObj.element.querySelectorAll('.' + RANGEHOVER), [RANGEHOVER]);\n }\n }\n };\n DateRangePicker.prototype.addSelectedAttributes = function (ele, date, isStartDate, sameDate) {\n if (ele) {\n var title = this.globalize.formatDate(date, { type: 'date', skeleton: 'full' });\n if (!isNullOrUndefined(sameDate) && sameDate) {\n ele.setAttribute('aria-label', 'The current start and end date is ' + '' + title);\n }\n else {\n ele.setAttribute('aria-label', 'The current ' + (isStartDate ? 'start' : 'end') + ' date is ' + '' + title);\n }\n ele.setAttribute('aria-selected', 'true');\n }\n };\n DateRangePicker.prototype.removeSelectedAttributes = function () {\n if (this.popupObj) {\n var start = this.popupObj.element.querySelectorAll('.' + STARTDATE);\n for (var _i = 0, start_1 = start; _i < start_1.length; _i++) {\n var ele = start_1[_i];\n ele.setAttribute('aria-selected', 'false');\n ele.removeAttribute('aria-label');\n }\n var end = this.popupObj.element.querySelectorAll('.' + ENDDATE);\n for (var _a = 0, end_1 = end; _a < end_1.length; _a++) {\n var ele = end_1[_a];\n ele.setAttribute('aria-selected', 'false');\n ele.removeAttribute('aria-label');\n }\n }\n };\n DateRangePicker.prototype.updateCalendarElement = function (calendar) {\n if (calendar.classList.contains(LEFTCALENDER)) {\n this.calendarElement = this.leftCalendar;\n this.currentDate = this.leftCalCurrentDate;\n this.previousIcon = this.leftCalPrevIcon;\n this.nextIcon = this.leftCalNextIcon;\n }\n else {\n this.calendarElement = this.rightCalendar;\n this.currentDate = this.rightCalCurrentDate;\n this.previousIcon = this.rightCalPrevIcon;\n this.nextIcon = this.rightCalNextIcon;\n }\n this.contentElement = calendar.querySelector('.' + CONTENT);\n this.tableBodyElement = select('.' + CONTENT + ' tbody', calendar);\n this.table = calendar.querySelector('.' + CONTENT).getElementsByTagName('table')[0];\n this.headerTitleElement = calendar.querySelector('.' + HEADER + ' .' + TITLE);\n this.headerElement = calendar.querySelector('.' + HEADER);\n };\n DateRangePicker.prototype.navPrevMonth = function (e) {\n e.preventDefault();\n var ele = closest(e.target, '.' + LEFTCALENDER);\n ele = isNullOrUndefined(ele) ? closest(e.target, '.' + RIGHTCALENDER) : ele;\n this.updateCalendarElement(ele);\n this.navigatePrevious(e);\n if (!isNullOrUndefined(this.startValue) && isNullOrUndefined(this.endValue)) {\n this.updateMinMaxDays(ele);\n }\n this.updateControl(ele);\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n DateRangePicker.prototype.deviceNavigation = function (ele) {\n this.deviceCalendarEvent();\n this.updateRange([this.popupObj.element.querySelector('.' + CALENDAR)]);\n if (this.endButton.element.classList.contains(ACTIVE)) {\n this.updateMinMaxDays(this.popupObj.element.querySelector('.' + CALENDAR));\n }\n if (this.endButton.element.classList.contains(ACTIVE)) {\n this.selectableDates();\n }\n if (this.currentView() === this.depth) {\n this.bindCalendarCellEvents();\n }\n this.removeFocusedDate();\n };\n DateRangePicker.prototype.updateControl = function (calendar, customDate) {\n if (customDate === void 0) { customDate = null; }\n if (calendar.classList.contains(RIGHTCALENDER)) {\n this.rightCalCurrentDate = new Date(+(customDate ? customDate : this.currentDate));\n }\n else {\n this.leftCalCurrentDate = new Date(+this.currentDate);\n }\n this.calendarIconEvent();\n if ((((this.depth === 'Month')\n && this.leftCalendar.querySelector('.e-content').classList.contains('e-month')\n && this.rightCalendar.querySelector('.e-content').classList.contains('e-month'))\n || ((this.depth === 'Year')\n && this.leftCalendar.querySelector('.e-content').classList.contains('e-year')\n && this.rightCalendar.querySelector('.e-content').classList.contains('e-year'))\n || ((this.depth === 'Decade')\n && this.leftCalendar.querySelector('.e-content').classList.contains('e-decade')\n && this.rightCalendar.querySelector('.e-content').classList.contains('e-decade')))\n || this.isMobile) {\n this.bindCalendarCellEvents();\n }\n this.removeFocusedDate();\n this.updateRange([calendar]);\n };\n DateRangePicker.prototype.navNextMonth = function (event) {\n event.preventDefault();\n var ele = closest(event.target, '.' + LEFTCALENDER);\n ele = isNullOrUndefined(ele) ? closest(event.target, '.' + RIGHTCALENDER) : ele;\n this.updateCalendarElement(ele);\n this.navigateNext(event);\n if (!isNullOrUndefined(this.startValue) && isNullOrUndefined(this.endValue)) {\n this.updateMinMaxDays(ele);\n }\n this.updateControl(ele);\n };\n DateRangePicker.prototype.isPopupOpen = function () {\n if (!isNullOrUndefined(this.popupObj) && this.popupObj.element.classList.contains(POPUP)) {\n return true;\n }\n return false;\n };\n DateRangePicker.prototype.createRangeHeader = function () {\n var labelContainer = this.createElement('div', { className: STARTENDCONTAINER });\n if (!this.isMobile) {\n var startLabel = this.createElement('a', { className: STARTLABEL });\n var endLabel = this.createElement('a', { className: ENDLABEL });\n var changeIcon = this.createElement('span', { className: CHANGEICON });\n attributes(startLabel, { 'aria-atomic': 'true', 'aria-live': 'assertive', 'aria-label': 'Start Date', 'role': 'button' });\n attributes(endLabel, { 'aria-atomic': 'true', 'aria-live': 'assertive', 'aria-label': 'End Date', 'role': 'button' });\n labelContainer.appendChild(startLabel);\n labelContainer.appendChild(changeIcon);\n labelContainer.appendChild(endLabel);\n startLabel.textContent = this.l10n.getConstant('startLabel');\n endLabel.textContent = this.l10n.getConstant('endLabel');\n }\n else {\n var endBtn = this.createElement('button', { className: ENDBUTTON });\n var startBtn = this.createElement('button', { className: STARTBUTTON });\n this.startButton = new Button({ content: this.l10n.getConstant('startLabel') }, startBtn);\n this.endButton = new Button({ content: this.l10n.getConstant('endLabel') }, endBtn);\n labelContainer.appendChild(startBtn);\n labelContainer.appendChild(endBtn);\n }\n return labelContainer;\n };\n DateRangePicker.prototype.disableInput = function () {\n if (this.strictMode) {\n if (!isNullOrUndefined(this.previousStartValue) && !isNullOrUndefined(this.previousEndValue)) {\n this.startValue = this.previousStartValue;\n this.endValue = this.previousEndValue;\n this.setValue();\n this.updateInput();\n }\n }\n else {\n this.updateInput();\n this.clearRange();\n this.setProperties({ startDate: null }, true);\n this.setProperties({ endDate: null }, true);\n this.startValue = null;\n this.endValue = null;\n this.setValue();\n this.errorClass();\n }\n this.setProperties({ enabled: false }, true);\n Input.setEnabled(this.enabled, this.inputElement);\n this.bindEvents();\n };\n DateRangePicker.prototype.validateMinMax = function () {\n this.min = isNullOrUndefined(this.min) || !(+this.min) ? this.min = new Date(1900, 0, 1) : this.min;\n this.max = isNullOrUndefined(this.max) || !(+this.max) ? this.max = new Date(2099, 11, 31) : this.max;\n if (!(this.min <= this.max)) {\n this.disableInput();\n return;\n }\n if (!isNullOrUndefined(this.minDays) && !isNullOrUndefined(this.maxDays)) {\n if (this.maxDays > 0 && this.minDays > 0 && (this.minDays > this.maxDays)) {\n this.maxDays = null;\n }\n }\n if (!isNullOrUndefined(this.minDays) && this.minDays < 0) {\n this.minDays = null;\n }\n if (!isNullOrUndefined(this.maxDays) && this.maxDays < 0) {\n this.maxDays = null;\n }\n };\n DateRangePicker.prototype.validateRangeStrict = function () {\n if (!isNullOrUndefined(this.startValue)) {\n if (+this.startValue <= +this.min) {\n this.startValue = this.min;\n this.setValue();\n }\n else if (+this.startValue >= +this.min && +this.startValue >= +this.max) {\n this.startValue = this.max;\n }\n }\n if (!isNullOrUndefined(this.endValue)) {\n if (+this.endValue > +this.max) {\n this.endValue = this.max;\n this.setValue();\n }\n else if (+this.endValue < +this.min) {\n this.endValue = this.min;\n this.setValue();\n }\n }\n this.validateMinMaxDays();\n };\n DateRangePicker.prototype.validateRange = function () {\n this.validateMinMaxDays();\n };\n DateRangePicker.prototype.validateMinMaxDays = function () {\n if (!isNullOrUndefined(this.startValue) && !isNullOrUndefined(this.endValue)) {\n var range = (Math.round(Math.abs((this.removeTimeValueFromDate(this.startValue).getTime() -\n this.removeTimeValueFromDate(this.endValue).getTime()) / (1000 * 60 * 60 * 24))) + 1);\n if ((!isNullOrUndefined(this.minDays) && this.minDays > 0) && !(range >= this.minDays)) {\n if (this.strictMode) {\n var date = new Date(+this.startValue);\n date.setDate(date.getDate() + (this.minDays - 1));\n if (+date > +this.max) {\n this.endValue = this.max;\n this.setValue();\n }\n else {\n this.endValue = date;\n this.setValue();\n }\n }\n else {\n this.startValue = null;\n this.endValue = null;\n this.setValue();\n }\n }\n if ((!isNullOrUndefined(this.maxDays) && this.maxDays > 0) && !(range <= this.maxDays)) {\n if (this.strictMode) {\n this.endValue = new Date(+this.startValue);\n this.endValue.setDate(this.endValue.getDate() + (this.maxDays - 1));\n this.setValue();\n }\n else {\n this.startValue = null;\n this.endValue = null;\n this.setValue();\n }\n }\n }\n };\n DateRangePicker.prototype.renderCalendar = function () {\n this.calendarElement = this.createElement('div');\n this.calendarElement.classList.add(CALENDAR);\n if (this.enableRtl) {\n this.calendarElement.classList.add(RTL);\n }\n attributes(this.calendarElement, { 'data-role': 'calendar' });\n _super.prototype.createHeader.call(this);\n _super.prototype.createContent.call(this);\n };\n DateRangePicker.prototype.isSameMonth = function (start, end) {\n if (start.getMonth() === end.getMonth() && start.getFullYear() === end.getFullYear()) {\n return true;\n }\n return false;\n };\n DateRangePicker.prototype.isSameYear = function (start, end) {\n if (start.getFullYear() === end.getFullYear()) {\n return true;\n }\n return false;\n };\n DateRangePicker.prototype.isSameDecade = function (start, end) {\n var startYear = start.getFullYear();\n var endYear = end.getFullYear();\n if ((startYear - (startYear % 10)) === (endYear - (endYear % 10))) {\n return true;\n }\n return false;\n };\n DateRangePicker.prototype.startMonthCurrentDate = function () {\n if (this.isSameMonth(this.min, this.max) || +this.currentDate > +this.max || this.isSameMonth(this.currentDate, this.max)) {\n this.currentDate = new Date(+this.max);\n this.currentDate.setDate(1);\n this.currentDate.setMonth(this.currentDate.getMonth() - 1);\n }\n else if (this.currentDate < this.min) {\n this.currentDate = new Date(this.checkValue(this.min));\n }\n };\n DateRangePicker.prototype.selectNextMonth = function () {\n if (!isNullOrUndefined(this.endValue) && !isNullOrUndefined(this.startValue) && !this.isSameMonth(this.endValue, this.currentDate)\n && !this.isDateDisabled(this.endValue) && !this.isDateDisabled(this.startValue)) {\n this.currentDate = new Date(+this.endValue);\n }\n else {\n this.currentDate.setDate(1);\n this.currentDate.setMonth(this.currentDate.getMonth() + 1);\n return;\n }\n if ((!isNullOrUndefined(this.startValue) && +this.startValue < +this.min)\n || (!isNullOrUndefined(this.endValue) && +this.endValue > +this.max)\n || ((!isNullOrUndefined(this.startValue) && !isNullOrUndefined(this.endValue)) && +this.startValue > +this.endValue)) {\n this.currentDate = new Date(new Date().setHours(0, 0, 0, 0));\n this.currentDate.setDate(1);\n var month = this.currentDate.getMonth() + 1;\n this.currentDate.setMonth(month);\n }\n };\n DateRangePicker.prototype.selectNextYear = function () {\n if (!isNullOrUndefined(this.endValue) && !isNullOrUndefined(this.startValue) && !this.isSameYear(this.endValue, this.currentDate)\n && !this.isDateDisabled(this.endValue) && !this.isDateDisabled(this.startValue)) {\n this.currentDate = new Date(+this.endValue);\n }\n else {\n this.currentDate.setMonth(0);\n var yr = this.currentDate.getFullYear() + 1;\n this.currentDate.setFullYear(yr);\n return;\n }\n if ((!isNullOrUndefined(this.endValue) && +this.endValue > +this.max)\n || ((!isNullOrUndefined(this.startValue) && !isNullOrUndefined(this.endValue)) && +this.startValue > +this.endValue)\n || (!isNullOrUndefined(this.startValue) && +this.startValue < +this.min)) {\n this.currentDate = new Date(new Date().setHours(0, 0, 0, 0));\n this.currentDate.setMonth(0);\n this.currentDate.setFullYear(this.currentDate.getFullYear() + 1);\n }\n };\n DateRangePicker.prototype.selectNextDecade = function () {\n if (!isNullOrUndefined(this.endValue) && !isNullOrUndefined(this.startValue) && !this.isSameDecade(this.endValue, this.currentDate)\n && !this.isDateDisabled(this.endValue) && !this.isDateDisabled(this.startValue)) {\n this.currentDate = new Date(+this.endValue);\n }\n else {\n var decyr = this.currentDate.getFullYear() + 10;\n this.currentDate.setFullYear(decyr);\n return;\n }\n if (((!isNullOrUndefined(this.startValue) && !isNullOrUndefined(this.endValue)) && +this.startValue > +this.endValue)\n || (!isNullOrUndefined(this.endValue) && +this.endValue > +this.max)\n || (!isNullOrUndefined(this.startValue) && +this.startValue < +this.min)) {\n this.currentDate = new Date(new Date().setHours(0, 0, 0, 0));\n this.currentDate.setFullYear(this.currentDate.getFullYear() + 10);\n }\n };\n DateRangePicker.prototype.selectStartMonth = function () {\n if (!isNullOrUndefined(this.startValue)) {\n if (!isNullOrUndefined(this.max) && this.isSameMonth(this.startValue, this.max)) {\n this.currentDate = new Date(+this.max);\n this.currentDate.setDate(1);\n this.currentDate.setMonth(this.currentDate.getMonth() - 1);\n }\n else if (!(this.startValue >= this.min && this.startValue <= this.max)\n || this.isDateDisabled(this.startValue)) {\n this.currentDate = new Date(new Date().setHours(0, 0, 0, 0));\n }\n else {\n this.currentDate = new Date(+this.startValue);\n }\n }\n else {\n this.currentDate = new Date(new Date().setHours(0, 0, 0, 0));\n this.startMonthCurrentDate();\n }\n if ((!isNullOrUndefined(this.endValue) && +this.endValue > +this.max)\n || (!isNullOrUndefined(this.startValue) && +this.startValue < +this.min)\n || ((!isNullOrUndefined(this.startValue) && !isNullOrUndefined(this.endValue)) && +this.startValue > +this.endValue)) {\n this.currentDate = new Date(new Date().setHours(0, 0, 0, 0));\n }\n this.startMonthCurrentDate();\n };\n DateRangePicker.prototype.createCalendar = function () {\n var calendarContainer = this.createElement('div', { className: CALENDARCONTAINER });\n if (!this.isMobile) {\n this.selectStartMonth();\n this.renderCalendar();\n this.leftCalCurrentDate = new Date(+this.currentDate);\n this.calendarElement.classList.add(LEFTCALENDER);\n this.leftCalPrevIcon = this.calendarElement.querySelector('.' + LEFTCALENDER + ' .' + PREVICON);\n this.leftCalNextIcon = this.calendarElement.querySelector('.' + LEFTCALENDER + ' .' + NEXTICON);\n this.leftTitle = this.calendarElement.querySelector('.' + LEFTCALENDER + ' .' + TITLE);\n remove(this.calendarElement.querySelector('.' + LEFTCALENDER + ' .' + ICONCONTAINER));\n this.calendarElement.querySelector('.' + LEFTCALENDER + ' .' + HEADER).appendChild(this.leftCalNextIcon);\n this.calendarElement.querySelector('.' + LEFTCALENDER + ' .' + HEADER).appendChild(this.leftCalPrevIcon);\n prepend([this.leftCalPrevIcon], this.calendarElement.querySelector('.' + LEFTCALENDER + ' .' + HEADER));\n this.leftCalendar = this.calendarElement;\n var leftContainer = this.createElement('div', { className: LEFTCONTAINER });\n var rightContainer = this.createElement('div', { className: RIGHTCONTAINER });\n leftContainer.appendChild(this.leftCalendar);\n calendarContainer.appendChild(leftContainer);\n if (!this.isMobile) {\n EventHandler.add(this.leftTitle, 'click', this.leftNavTitle, this);\n }\n if (this.start === 'Month') {\n this.selectNextMonth();\n }\n if (this.start === 'Year') {\n this.selectNextYear();\n }\n if (this.start === 'Decade') {\n this.selectNextDecade();\n }\n this.renderCalendar();\n this.rightCalCurrentDate = new Date(+this.currentDate);\n addClass([this.calendarElement], RIGHTCALENDER);\n this.rightCalendar = this.calendarElement;\n removeClass([this.leftCalendar && this.leftCalendar.querySelector('.e-content tbody')], 'e-zoomin');\n removeClass([this.rightCalendar && this.rightCalendar.querySelector('.e-content tbody')], 'e-zoomin');\n this.rightCalPrevIcon = this.calendarElement.querySelector('.' + RIGHTCALENDER + ' .' + PREVICON);\n this.rightCalNextIcon = this.calendarElement.querySelector('.' + RIGHTCALENDER + ' .' + NEXTICON);\n this.rightTitle = this.calendarElement.querySelector('.' + RIGHTCALENDER + ' .' + TITLE);\n remove(this.calendarElement.querySelector('.' + RIGHTCALENDER + ' .' + ICONCONTAINER));\n this.calendarElement.querySelector('table').setAttribute('tabindex', '0');\n this.calendarElement.querySelector('.' + RIGHTCALENDER + ' .' + HEADER).appendChild(this.rightCalNextIcon);\n this.calendarElement.querySelector('.' + RIGHTCALENDER + ' .' + HEADER).appendChild(this.rightCalPrevIcon);\n prepend([this.rightCalPrevIcon], this.calendarElement.querySelector('.' + RIGHTCALENDER + ' .' + HEADER));\n rightContainer.appendChild(this.rightCalendar);\n calendarContainer.appendChild(rightContainer);\n if (!this.isMobile) {\n EventHandler.add(this.rightTitle, 'click', this.rightNavTitle, this);\n }\n }\n else {\n if (!isNullOrUndefined(this.startValue)) {\n this.currentDate = new Date(+this.startValue);\n }\n _super.prototype.validateDate.call(this);\n _super.prototype.minMaxUpdate.call(this);\n _super.prototype.render.call(this);\n var prevIcon = this.calendarElement.querySelector('.' + CALENDAR + ' .' + PREVICON);\n var nextIcon = this.calendarElement.querySelector('.' + CALENDAR + ' .' + NEXTICON);\n remove(this.calendarElement.querySelector('.' + CALENDAR + ' .' + ICONCONTAINER));\n this.calendarElement.querySelector('.' + CALENDAR + ' .' + HEADER).appendChild(nextIcon);\n this.calendarElement.querySelector('.' + CALENDAR + ' .' + HEADER).appendChild(prevIcon);\n prepend([prevIcon], this.calendarElement.querySelector('.' + CALENDAR + ' .' + HEADER));\n this.deviceCalendar = this.calendarElement;\n calendarContainer.appendChild(this.calendarElement);\n this.headerTitleElement = this.calendarElement.querySelector('.' + CALENDAR + ' .' + HEADER + ' .' + TITLE);\n }\n return calendarContainer;\n };\n DateRangePicker.prototype.leftNavTitle = function (e) {\n if (this.isPopupOpen()) {\n this.calendarElement = this.leftCalendar;\n this.calendarNavigation(e, this.calendarElement);\n }\n };\n DateRangePicker.prototype.calendarNavigation = function (e, element) {\n this.table = element.querySelector('table');\n this.headerTitleElement = element.querySelector('.e-title');\n this.tableBodyElement = element.querySelector('tbody');\n this.tableHeadElement = element.querySelector('thead');\n this.contentElement = element.querySelector('.e-content');\n this.updateCalendarElement(element);\n _super.prototype.navigateTitle.call(this, e);\n this.updateNavIcons();\n };\n DateRangePicker.prototype.rightNavTitle = function (e) {\n if (this.isPopupOpen()) {\n this.calendarElement = this.rightCalendar;\n this.calendarNavigation(e, this.calendarElement);\n }\n };\n DateRangePicker.prototype.clickEventEmitter = function (e) {\n if (!this.isMobile) {\n if (closest(e.target, '.e-calendar.e-left-calendar')) {\n this.calendarElement = this.leftCalendar;\n this.updateCalendarElement(this.leftCalendar);\n }\n else {\n this.calendarElement = this.rightCalendar;\n this.updateCalendarElement(this.rightCalendar);\n }\n }\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Gets the current view of the Calendar.\n *\n * @returns {string}\n * @private\n * @hidden\n */\n DateRangePicker.prototype.currentView = function () {\n return _super.prototype.currentView.call(this);\n };\n /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */\n DateRangePicker.prototype.getCalendarView = function (view) {\n if (view === 'Year') {\n return 'Year';\n }\n else if (view === 'Decade') {\n return 'Decade';\n }\n else {\n return 'Month';\n }\n };\n DateRangePicker.prototype.navigatedEvent = function (e) {\n this.trigger('navigated', this.navigatedArgs);\n if (!isNullOrUndefined(this.popupObj)) {\n var element = void 0;\n var view = this.getCalendarView(this.currentView());\n if (this.isMobile) {\n if (view === this.depth) {\n this.bindCalendarCellEvents();\n this.deviceNavigation();\n this.removeFocusedDate();\n this.checkMinMaxDays();\n }\n else {\n this.selectableDates();\n }\n }\n else {\n if (!this.isMobile && view === this.depth) {\n element = this.calendarElement.classList.contains('e-left-calendar') ? this.leftCalendar : this.rightCalendar;\n if (element === this.leftCalendar && ((e && !e.currentTarget.children[0].classList.contains('e-icons'))\n || (!isNullOrUndefined(this.controlDown)))) {\n this.leftCalCurrentDate = new Date(+this.currentDate);\n this.effect = '';\n this.currentDate = this.leftCalCurrentDate;\n this.updateCalendarElement(this.leftCalendar);\n this.updateControl(this.leftCalendar);\n this.updateCalendarElement(this.rightCalendar);\n _super.prototype.navigateTo.call(this, view, this.rightCalCurrentDate);\n var customDate = this.rightCalCurrentDate ? this.rightCalCurrentDate : this.currentDate;\n this.updateControl(this.rightCalendar, customDate);\n this.updateNavIcons();\n this.calendarIconEvent();\n this.calendarIconRipple();\n this.controlDown = null;\n }\n else if (e && !e.currentTarget.children[0].classList.contains('e-icons')\n || (!isNullOrUndefined(this.controlDown))) {\n this.rightCalCurrentDate = new Date(+this.currentDate);\n this.effect = '';\n this.currentDate = this.rightCalCurrentDate;\n this.updateCalendarElement(this.rightCalendar);\n this.updateControl(this.rightCalendar);\n this.updateCalendarElement(this.leftCalendar);\n if (this.startValue && isNullOrUndefined(this.endValue)) {\n if (view === 'Month' && this.startValue.getMonth() < this.rightCalCurrentDate.getMonth() &&\n this.startValue.getFullYear() <= this.rightCalCurrentDate.getFullYear()) {\n _super.prototype.navigateTo.call(this, view, new Date(+this.startValue));\n }\n else if (view === 'Year' && this.startValue.getFullYear() < this.rightCalCurrentDate.getFullYear()) {\n _super.prototype.navigateTo.call(this, view, new Date(+this.startValue));\n }\n else {\n _super.prototype.navigateTo.call(this, view, this.leftCalCurrentDate);\n }\n }\n else {\n _super.prototype.navigateTo.call(this, view, this.leftCalCurrentDate);\n }\n this.updateControl(this.leftCalendar);\n this.updateNavIcons();\n this.calendarIconEvent();\n this.calendarIconRipple();\n this.controlDown = null;\n }\n this.checkMinMaxDays();\n }\n else {\n this.updateNavIcons();\n this.calendarIconEvent();\n }\n }\n }\n };\n DateRangePicker.prototype.createControl = function () {\n var controlContainer = this.createElement('div', { className: RANGECONTAINER });\n var headerContainer = this.createElement('div', { className: RANGEHEADER });\n var labelContainer = this.createRangeHeader();\n headerContainer.appendChild(labelContainer);\n var daySpan = this.createElement('div', { className: DAYSPAN });\n attributes(daySpan, { 'aria-label': 'Selected Days' });\n daySpan.textContent = this.l10n.getConstant('selectedDays');\n headerContainer.appendChild(daySpan);\n var separator = this.createElement('div', { className: SEPARATOR });\n var calendarContainer = this.createCalendar();\n controlContainer.appendChild(headerContainer);\n controlContainer.appendChild(separator);\n controlContainer.appendChild(calendarContainer);\n var footerSection = this.createElement('div', { className: FOOTER });\n var cancelBtn = this.createElement('button', { className: CANCEL + ' ' + FLAT + ' ' + CSS });\n var applyBtn = this.createElement('button');\n addClass([applyBtn], [APPLY, FLAT, PRIMARY, CSS]);\n footerSection.appendChild(applyBtn);\n footerSection.appendChild(cancelBtn);\n var enable = !isNullOrUndefined(this.startValue) && !isNullOrUndefined(this.endValue);\n this.cancelButton = new Button({ content: this.l10n.getConstant('cancelText') }, cancelBtn);\n this.applyButton = new Button({ content: this.l10n.getConstant('applyText'), disabled: !enable }, applyBtn);\n EventHandler.add(applyBtn, 'click', this.applyFunction, this);\n EventHandler.add(cancelBtn, 'click', this.cancelFunction, this);\n this.popupWrapper.appendChild(controlContainer);\n if (!this.isMobile) {\n if (!isUndefined(this.presets[0].start && this.presets[0].end && this.presets[0].label)) {\n this.createPresets();\n this.listRippleEffect();\n addClass([controlContainer], RANGEBORDER);\n addClass([this.popupWrapper], 'e-preset-wrapper');\n var presets = this.popupWrapper.querySelector('.' + PRESETS);\n presets.style.height = this.popupWrapper.querySelector('.' + RANGECONTAINER).getBoundingClientRect().height + 'px';\n }\n }\n this.popupWrapper.appendChild(footerSection);\n if (this.isMobile) {\n this.deviceHeaderUpdate();\n }\n this.renderPopup();\n };\n DateRangePicker.prototype.cancelFunction = function (eve) {\n if (document.activeElement !== this.inputElement) {\n this.preventFocus = true;\n this.inputElement.focus();\n addClass([this.inputWrapper.container], [INPUTFOCUS]);\n }\n eve.preventDefault();\n if (this.isKeyPopup) {\n this.inputElement.focus();\n this.isKeyPopup = false;\n }\n this.startValue = null;\n this.endValue = null;\n this.removeSelection();\n this.hide(eve);\n };\n DateRangePicker.prototype.deviceHeaderUpdate = function () {\n if (isNullOrUndefined(this.startValue) && isNullOrUndefined(this.endValue)) {\n this.endButton.element.setAttribute('disabled', '');\n this.startButton.element.classList.add(ACTIVE);\n }\n else if (!isNullOrUndefined(this.startValue)) {\n this.startButton.element.classList.add(ACTIVE);\n }\n };\n DateRangePicker.prototype.applyFunction = function (eve) {\n var isValueChanged = false;\n if (eve.type !== 'touchstart') {\n eve.preventDefault();\n }\n if (this.closeEventArgs && this.closeEventArgs.cancel) {\n this.startValue = this.popupWrapper.querySelector('.e-start-date') &&\n this.getIdValue(null, this.popupWrapper.querySelector('.e-start-date'));\n this.endValue = this.popupWrapper.querySelector('.e-end-date') &&\n this.getIdValue(null, this.popupWrapper.querySelector('.e-end-date'));\n this.setValue();\n }\n if (document.activeElement !== this.inputElement) {\n this.preventFocus = true;\n this.inputElement.focus();\n addClass([this.inputWrapper.container], [INPUTFOCUS]);\n }\n if (eve.type !== 'touchstart' &&\n this.closeEventArgs && !this.closeEventArgs.cancel) {\n eve.preventDefault();\n }\n if (!isNullOrUndefined(this.startValue) && !isNullOrUndefined(this.endValue)) {\n this.previousStartValue = new Date(+this.startValue);\n this.previousEndValue = new Date(+this.endValue);\n this.previousEleValue = this.inputElement.value;\n Input.setValue(this.rangeArgs(eve).text, this.inputElement, this.floatLabelType, this.showClearButton);\n if (+this.initStartDate !== +this.startValue || +this.initEndDate !== +this.endValue) {\n isValueChanged = true;\n }\n this.changeTrigger(eve);\n this.hide(eve ? eve : null);\n this.errorClass();\n isValueChanged = true;\n }\n else {\n this.hide(eve ? eve : null);\n }\n if (!(closest(eve.target, '.' + INPUTCONTAINER))\n && (!isValueChanged)) {\n this.focusOut();\n }\n if (!this.isMobile) {\n this.isKeyPopup = false;\n if (this.isRangeIconClicked) {\n this.inputWrapper.container.children[1].focus();\n this.keyInputConfigs = extend(this.keyInputConfigs, this.keyConfigs);\n this.popupKeyboardModule = new KeyboardEvents(this.inputWrapper.container.children[1], {\n eventName: 'keydown',\n keyConfigs: this.keyInputConfigs,\n keyAction: this.popupKeyActionHandle.bind(this)\n });\n }\n }\n };\n DateRangePicker.prototype.onMouseClick = function (event, item) {\n if (event.type === 'touchstart') {\n return;\n }\n var target = item || event.target;\n var li = closest(target, '.' + LISTCLASS);\n var isClick = li && li.classList.contains(ACTIVE);\n if (li && li.classList.contains(LISTCLASS)) {\n this.setListSelection(li, event);\n }\n this.preventFocus = true;\n this.inputElement.focus();\n if (!this.isMobile) {\n this.preventFocus = true;\n if (li && li.classList.contains(LISTCLASS) && li.getAttribute('id') === 'custom_range') {\n this.leftCalendar.children[1].firstElementChild.focus();\n }\n else {\n if (!isClick && event.type === 'keydown') {\n this.inputElement.focus();\n }\n }\n }\n };\n DateRangePicker.prototype.onMouseOver = function (event) {\n var li = closest(event.target, '.' + LISTCLASS);\n if (li && li.classList.contains(LISTCLASS) && !li.classList.contains(HOVER)) {\n addClass([li], HOVER);\n }\n };\n DateRangePicker.prototype.onMouseLeave = function (event) {\n var item = closest(event.target, '.' + HOVER);\n if (!isNullOrUndefined(item)) {\n removeClass([item], HOVER);\n }\n };\n DateRangePicker.prototype.setListSelection = function (li, event) {\n if (li && (!li.classList.contains(ACTIVE) || (this.isMobile && li.classList.contains(ACTIVE)))) {\n if (this.isMobile && li.classList.contains(ACTIVE)) {\n this.activeIndex = Array.prototype.slice.call(this.liCollections).indexOf(li);\n var values_1 = this.presetsItem[this.activeIndex];\n if (values_1.id === 'custom_range') {\n this.renderCustomPopup();\n return;\n }\n return;\n }\n this.removeListSelection();\n this.activeIndex = Array.prototype.slice.call(this.liCollections).indexOf(li);\n addClass([li], ACTIVE);\n li.setAttribute('aria-selected', 'true');\n var values = this.presetsItem[this.activeIndex];\n if (values.id === 'custom_range') {\n this.renderCustomPopup();\n }\n else {\n this.applyPresetRange(values, event);\n }\n }\n };\n DateRangePicker.prototype.removeListSelection = function () {\n var item = this.presetElement.querySelector('.' + ACTIVE);\n if (!isNullOrUndefined(item)) {\n removeClass([item], ACTIVE);\n item.removeAttribute('aria-selected');\n }\n };\n DateRangePicker.prototype.setValue = function () {\n this.modelValue = [this.startValue, this.endValue];\n };\n DateRangePicker.prototype.applyPresetRange = function (values, e) {\n this.hide(null);\n this.presetsItem[this.presetsItem.length - 1].start = null;\n this.presetsItem[this.presetsItem.length - 1].end = null;\n this.startValue = values.start;\n this.endValue = values.end;\n this.setValue();\n this.refreshControl();\n this.trigger('select', this.rangeArgs(e));\n this.changeTrigger(e);\n this.previousEleValue = this.inputElement.value;\n this.isCustomRange = false;\n this.leftCalendar = this.rightCalendar = null;\n if (this.isKeyPopup) {\n this.isRangeIconClicked = false;\n this.inputElement.focus();\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n DateRangePicker.prototype.showPopup = function (element, event) {\n this.presetHeight();\n if (this.zIndex === 1000) {\n this.popupObj.show(null, this.element);\n }\n else {\n this.popupObj.show(null, null);\n }\n if (this.isMobile) {\n this.popupObj.refreshPosition();\n }\n };\n DateRangePicker.prototype.renderCustomPopup = function () {\n this.isCustomWindow = true;\n this.popupObj.hide();\n this.popupWrapper = this.createElement('div', { id: this.element.id + '_popup', className: ROOT + ' ' + POPUP });\n this.renderControl();\n this.openEventArgs.appendTo.appendChild(this.popupWrapper);\n this.showPopup();\n this.isCustomRange = true;\n if (!this.isMobile) {\n this.calendarFocus();\n }\n };\n DateRangePicker.prototype.listRippleEffect = function () {\n for (var _i = 0, _a = this.liCollections; _i < _a.length; _i++) {\n var li = _a[_i];\n rippleEffect(li);\n }\n };\n DateRangePicker.prototype.createPresets = function () {\n if (!isUndefined(this.presets[0].start && this.presets[0].end && this.presets[0].label)) {\n this.presetElement = this.createElement('div', { className: PRESETS, attrs: { 'tabindex': '0' } });\n var listTag = ListBase.createList(this.createElement, this.presetsItem, null, true);\n attributes(listTag, { 'role': 'listbox', 'aria-hidden': 'false', 'id': this.element.id + '_options', 'tabindex': '0' });\n this.presetElement.appendChild(listTag);\n this.popupWrapper.appendChild(this.presetElement);\n var customElement = this.presetElement.querySelector('#custom_range');\n if (!isNullOrUndefined(customElement)) {\n customElement.textContent = this.l10n.getConstant('customRange') !== '' ? this.l10n.getConstant('customRange')\n : 'Custom Range';\n }\n this.liCollections = this.presetElement.querySelectorAll('.' + LISTCLASS);\n this.wireListEvents();\n if (this.isMobile) {\n this.presetElement.style.width = this.inputWrapper.container.getBoundingClientRect().width + 'px';\n }\n if (!isNullOrUndefined(this.activeIndex) && this.activeIndex > -1) {\n addClass([this.liCollections[this.activeIndex]], ACTIVE);\n }\n }\n };\n DateRangePicker.prototype.wireListEvents = function () {\n EventHandler.add(this.presetElement, 'click', this.onMouseClick, this);\n if (!this.isMobile) {\n EventHandler.add(this.presetElement, 'mouseover', this.onMouseOver, this);\n EventHandler.add(this.presetElement, 'mouseout', this.onMouseLeave, this);\n }\n };\n DateRangePicker.prototype.unWireListEvents = function () {\n if (!isNullOrUndefined(this.presetElement)) {\n EventHandler.remove(this.presetElement, 'click touchstart', this.onMouseClick);\n if (!this.isMobile) {\n EventHandler.remove(this.presetElement, 'mouseover', this.onMouseOver);\n EventHandler.remove(this.presetElement, 'mouseout', this.onMouseLeave);\n }\n }\n };\n DateRangePicker.prototype.renderPopup = function () {\n var _this = this;\n this.popupWrapper.classList.add('e-control');\n var popupWidth = this.popupWrapper.getBoundingClientRect().width;\n if (!isNullOrUndefined(this.cssClass) && this.cssClass.trim() !== '') {\n this.popupWrapper.className += ' ' + this.cssClass;\n }\n if (this.isMobile && this.isCustomWindow) {\n this.modal = this.createElement('div');\n document.body.appendChild(this.modal);\n }\n this.popupObj = new Popup(this.popupWrapper, {\n relateTo: this.isMobile && this.isCustomWindow ? document.body :\n (!isNullOrUndefined(this.targetElement) ? this.targetElement : this.inputWrapper.container),\n position: (this.isMobile ?\n (!isUndefined(this.presets[0].start && this.presets[0].end && this.presets[0].label) && !this.isCustomWindow ?\n { X: 'left', Y: 'bottom' } : { X: 'center', Y: 'center' }) :\n this.enableRtl ? { X: 'left', Y: 'bottom' } : { X: 'right', Y: 'bottom' }),\n offsetX: this.isMobile || this.enableRtl ? 0 : -popupWidth,\n offsetY: OFFSETVALUE,\n collision: this.isMobile ?\n (!isUndefined(this.presets[0].start && this.presets[0].end && this.presets[0].label) && !this.isCustomWindow ?\n { X: 'fit' } : { X: 'fit', Y: 'fit' }) : { X: 'fit', Y: 'flip' },\n targetType: this.isMobile && this.isCustomWindow ? 'container' : 'relative',\n enableRtl: this.enableRtl,\n zIndex: this.zIndex,\n open: function () {\n attributes(_this.inputElement, { 'aria-expanded': 'true', 'aria-owns': _this.inputElement.id + '_options' });\n if (_this.value) {\n attributes(_this.inputElement, { 'aria-activedescendant': _this.inputElement.id });\n }\n else {\n _this.inputElement.removeAttribute('aria-activedescendant');\n }\n addClass([_this.inputWrapper.buttons[0]], ACTIVE);\n if (!_this.isMobile) {\n if (_this.cancelButton) {\n _this.btnKeyboardModule = new KeyboardEvents(_this.cancelButton.element, {\n eventName: 'keydown',\n keyAction: _this.popupKeyActionHandle.bind(_this),\n keyConfigs: { tab: 'tab', altRightArrow: 'alt+rightarrow', altLeftArrow: 'alt+leftarrow' }\n });\n _this.btnKeyboardModule = new KeyboardEvents(_this.applyButton.element, {\n eventName: 'keydown',\n keyAction: _this.popupKeyActionHandle.bind(_this),\n keyConfigs: { altRightArrow: 'alt+rightarrow', altLeftArrow: 'alt+leftarrow' }\n });\n }\n if (!isNullOrUndefined(_this.leftCalendar)) {\n if (!_this.isRangeIconClicked) {\n _this.calendarFocus();\n }\n }\n if (!isNullOrUndefined(_this.presetElement)) {\n _this.keyInputConfigs = extend(_this.keyInputConfigs, _this.keyConfigs);\n _this.presetKeyboardModule = new KeyboardEvents(_this.presetElement, {\n eventName: 'keydown',\n keyAction: _this.presetKeyActionHandler.bind(_this),\n keyConfigs: _this.keyInputConfigs\n });\n _this.presetKeyboardModule = new KeyboardEvents(_this.presetElement, {\n eventName: 'keydown',\n keyAction: _this.popupKeyActionHandle.bind(_this),\n keyConfigs: { altRightArrow: 'alt+rightarrow', altLeftArrow: 'alt+leftarrow' }\n });\n if (isNullOrUndefined(_this.leftCalendar)) {\n _this.preventBlur = true;\n _this.presetElement.focus();\n }\n else {\n _this.presetElement.setAttribute('tabindex', '-1');\n }\n }\n _this.popupKeyBoardHandler();\n }\n if (_this.isMobile && !Browser.isDevice) {\n EventHandler.add(document, 'keydown', _this.popupCloseHandler, _this);\n }\n },\n close: function () {\n attributes(_this.inputElement, { 'aria-expanded': 'false' });\n _this.inputElement.removeAttribute('aria-owns');\n _this.inputElement.removeAttribute('aria-activedescendant');\n removeClass([_this.inputWrapper.buttons[0]], ACTIVE);\n if (_this.isRangeIconClicked) {\n _this.inputWrapper.container.children[1].focus();\n }\n if (!isUndefined(_this.presets[0].start && _this.presets[0].end && _this.presets[0].label)) {\n _this.unWireListEvents();\n }\n if (!isNullOrUndefined(_this.popupObj)) {\n if (!isNullOrUndefined(_this.popupObj.element.parentElement)) {\n detach(_this.popupObj.element);\n }\n _this.popupObj.destroy();\n _this.popupObj = null;\n }\n if (_this.isMobile && !Browser.isDevice) {\n EventHandler.remove(document, 'keydown', _this.popupCloseHandler);\n }\n }, targetExitViewport: function () {\n if (!Browser.isDevice) {\n _this.hide();\n }\n }\n });\n if (this.isMobile) {\n this.popupObj.element.classList.add(DEVICE);\n if (!this.isMobile) {\n this.popupObj.element.classList.add('e-bigger');\n }\n }\n if (this.isMobile && this.isCustomWindow) {\n addClass([this.modal], [DEVICE, ROOT, 'e-range-modal']);\n document.body.className += ' ' + OVERFLOW;\n this.modal.style.display = 'block';\n }\n EventHandler.add(document, 'mousedown touchstart', this.documentHandler, this);\n };\n DateRangePicker.prototype.popupCloseHandler = function (e) {\n switch (e.keyCode) {\n case 27:\n this.hide(e);\n break;\n }\n };\n DateRangePicker.prototype.calendarFocus = function () {\n var startDate = this.popupObj && this.popupObj.element.querySelector('.' + STARTDATE);\n if (startDate) {\n var ele = closest(startDate, '.' + RIGHTCALENDER);\n ele = isNullOrUndefined(ele) ? this.leftCalendar : ele;\n if (this.isRangeIconClicked) {\n this.inputWrapper.container.focus();\n }\n else {\n this.preventBlur = true;\n ele.children[1].firstElementChild.focus();\n }\n addClass([startDate], FOCUSDATE);\n }\n else {\n if (this.isRangeIconClicked) {\n this.inputWrapper.container.focus();\n }\n else {\n this.preventBlur = true;\n this.leftCalendar.children[1].firstElementChild.focus();\n }\n }\n };\n DateRangePicker.prototype.presetHeight = function () {\n var presets = this.popupObj && this.popupObj.element.querySelector('.' + PRESETS);\n var rangeContainer = this.popupObj && this.popupObj.element.querySelector('.' + RANGECONTAINER);\n if (!isNullOrUndefined(presets) && !isNullOrUndefined(rangeContainer)) {\n presets.style.height = rangeContainer.getBoundingClientRect().height + 'px';\n }\n };\n DateRangePicker.prototype.presetKeyActionHandler = function (e) {\n switch (e.action) {\n case 'moveDown':\n this.listMoveDown(e);\n this.setScrollPosition();\n e.preventDefault();\n break;\n case 'moveUp':\n this.listMoveUp(e);\n this.setScrollPosition();\n e.preventDefault();\n break;\n case 'enter':\n {\n var hvrItem = this.getHoverLI();\n var actItem = this.getActiveLI();\n if (!isNullOrUndefined(this.leftCalendar) && !isNullOrUndefined(actItem)) {\n if (isNullOrUndefined(hvrItem) || (!isNullOrUndefined(actItem) && actItem === hvrItem)) {\n this.activeIndex = Array.prototype.slice.call(this.liCollections).indexOf(actItem);\n var values = this.presetsItem[this.activeIndex];\n if (values.id === 'custom_range') {\n this.calendarFocus();\n actItem.classList.remove(HOVER);\n e.preventDefault();\n return;\n }\n }\n }\n if (!isNullOrUndefined(hvrItem) || !isNullOrUndefined(actItem)) {\n this.onMouseClick(e, hvrItem || actItem);\n }\n e.preventDefault();\n }\n break;\n case 'tab':\n if (this.leftCalendar) {\n var item = this.getHoverLI();\n if (!isNullOrUndefined(item)) {\n item.classList.remove(HOVER);\n }\n }\n else {\n this.hide(e);\n e.preventDefault();\n }\n break;\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n DateRangePicker.prototype.listMoveDown = function (e) {\n var hvrItem = this.getHoverLI();\n var actItem = this.getActiveLI();\n if (!isNullOrUndefined(hvrItem)) {\n var li = hvrItem.nextElementSibling;\n if (!isNullOrUndefined(li) && li.classList.contains(LISTCLASS)) {\n removeClass([hvrItem], HOVER);\n addClass([li], HOVER);\n }\n }\n else if (!isNullOrUndefined(actItem)) {\n var li = actItem.nextElementSibling;\n if (!isNullOrUndefined(li) && li.classList.contains(LISTCLASS)) {\n addClass([li], HOVER);\n }\n }\n else {\n addClass([this.liCollections[0]], HOVER);\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n DateRangePicker.prototype.listMoveUp = function (e) {\n var hvrItem = this.getHoverLI();\n var actItem = this.getActiveLI();\n if (!isNullOrUndefined(hvrItem)) {\n var li = hvrItem.previousElementSibling;\n if (!isNullOrUndefined(li) && li.classList.contains(LISTCLASS)) {\n removeClass([hvrItem], HOVER);\n addClass([li], HOVER);\n }\n }\n else if (!isNullOrUndefined(actItem)) {\n var li = actItem.previousElementSibling;\n if (!isNullOrUndefined(li) && li.classList.contains(LISTCLASS)) {\n addClass([li], HOVER);\n }\n }\n };\n DateRangePicker.prototype.getHoverLI = function () {\n var item = this.presetElement.querySelector('.' + HOVER);\n return item;\n };\n DateRangePicker.prototype.getActiveLI = function () {\n var item = this.presetElement.querySelector('.' + ACTIVE);\n return item;\n };\n DateRangePicker.prototype.popupKeyBoardHandler = function () {\n this.popupKeyboardModule = new KeyboardEvents(this.popupWrapper, {\n eventName: 'keydown',\n keyAction: this.popupKeyActionHandle.bind(this),\n keyConfigs: { escape: 'escape' }\n });\n this.keyInputConfigs = extend(this.keyInputConfigs, this.keyConfigs);\n this.popupKeyboardModule = new KeyboardEvents(this.inputWrapper.container.children[1], {\n eventName: 'keydown',\n keyAction: this.popupKeyActionHandle.bind(this),\n keyConfigs: this.keyInputConfigs\n });\n };\n DateRangePicker.prototype.setScrollPosition = function () {\n var listHeight = this.presetElement.getBoundingClientRect().height;\n var hover = this.presetElement.querySelector('.' + HOVER);\n var active = this.presetElement.querySelector('.' + ACTIVE);\n var element = !isNullOrUndefined(hover) ? hover : active;\n if (!isNullOrUndefined(element)) {\n var nextEle = element.nextElementSibling;\n var height = nextEle ? nextEle.offsetTop : element.offsetTop;\n var liHeight = element.getBoundingClientRect().height;\n if ((height + element.offsetTop) > listHeight) {\n this.presetElement.scrollTop = nextEle ? (height - (listHeight / 2 + liHeight / 2)) : height;\n }\n else {\n this.presetElement.scrollTop = 0;\n }\n }\n };\n DateRangePicker.prototype.popupKeyActionHandle = function (e) {\n var presetElement = closest(e.target, '.' + PRESETS);\n switch (e.action) {\n case 'escape':\n if (this.isPopupOpen()) {\n if (this.isKeyPopup) {\n this.inputElement.focus();\n this.isKeyPopup = false;\n }\n this.hide(e);\n }\n else {\n this.inputWrapper.container.children[1].blur();\n }\n break;\n case 'enter':\n if (!this.isPopupOpen()) {\n this.show(null, e);\n }\n else {\n this.inputWrapper.container.children[1].focus();\n }\n break;\n case 'tab':\n this.hide(e);\n break;\n case 'altRightArrow':\n if (!isNullOrUndefined(presetElement)) {\n this.cancelButton.element.focus();\n }\n else {\n if (document.activeElement === this.cancelButton.element && this.applyButton.element.disabled !== true) {\n this.applyButton.element.focus();\n }\n else {\n this.leftCalendar.children[1].firstElementChild.focus();\n }\n }\n e.preventDefault();\n break;\n case 'altLeftArrow':\n if (!isNullOrUndefined(presetElement)) {\n this.rightCalendar.children[1].firstElementChild.focus();\n }\n else {\n if (document.activeElement === this.applyButton.element && this.applyButton.element.disabled !== true) {\n this.cancelButton.element.focus();\n }\n else {\n if (!isNullOrUndefined(this.presetElement) && (document.activeElement === this.cancelButton.element)) {\n this.presetElement.focus();\n }\n else {\n this.rightCalendar.children[1].firstElementChild.focus();\n }\n }\n }\n e.preventDefault();\n break;\n }\n };\n DateRangePicker.prototype.documentHandler = function (e) {\n if (isNullOrUndefined(this.popupObj)) {\n return;\n }\n var target = e.target;\n if (!this.inputWrapper.container.contains(target) ||\n (!isNullOrUndefined(this.popupObj) && !closest(target, '[id=\"' + this.popupWrapper.id + '\"]') && e.type !== 'mousedown')) {\n if (e.type !== 'touchstart' && ((e.type === 'mousedown') ||\n this.closeEventArgs && !this.closeEventArgs.cancel)) {\n e.preventDefault();\n }\n }\n if ((isNullOrUndefined(this.targetElement) ||\n (!isNullOrUndefined(this.targetElement) && !(target === this.targetElement))) &&\n !(closest(target, '[id=\"' + this.popupWrapper.id + '\"]'))\n && !(closest(target, '.' + INPUTCONTAINER) === this.inputWrapper.container)\n && !(closest(target, '.e-daterangepicker.e-popup') && (!target.classList.contains('e-day')))) {\n this.preventBlur = false;\n if (this.isPopupOpen() && document.body.contains(this.popupObj.element)) {\n this.applyFunction(e);\n if (!this.isMobile) {\n this.isRangeIconClicked = false;\n }\n }\n }\n };\n DateRangePicker.prototype.createInput = function () {\n var updatedCssClassValue = this.cssClass;\n if (!isNullOrUndefined(this.cssClass) && this.cssClass !== '') {\n updatedCssClassValue = (this.cssClass.replace(/\\s+/g, ' ')).trim();\n }\n this.inputWrapper = Input.createInput({\n floatLabelType: this.floatLabelType,\n element: this.inputElement,\n properties: {\n readonly: this.readonly,\n placeholder: this.placeholder,\n cssClass: updatedCssClassValue,\n enabled: this.enabled,\n enableRtl: this.enableRtl,\n showClearButton: this.showClearButton\n },\n buttons: [DATERANGEICON]\n }, this.createElement);\n attributes(this.inputElement, {\n 'tabindex': '0', 'aria-expanded': 'false', 'role': 'combobox',\n 'autocomplete': 'off', 'aria-disabled': !this.enabled ? 'true' : 'false',\n 'autocorrect': 'off', 'autocapitalize': 'off', 'spellcheck': 'false'\n });\n Input.addAttributes({ 'aria-label': 'select' }, this.inputWrapper.buttons[0]);\n if (!isNullOrUndefined(this.placeholder) && this.placeholder.trim() !== '') {\n Input.addAttributes({ 'aria-placeholder': this.placeholder }, this.inputElement);\n }\n this.setEleWidth(this.width);\n addClass([this.inputWrapper.container], DATERANGEWRAPPER);\n if (isNullOrUndefined(this.inputElement.getAttribute('name'))) {\n attributes(this.inputElement, { 'name': this.element.id });\n }\n if (this.inputElement.type === 'hidden') {\n this.inputWrapper.container.style.display = 'none';\n }\n this.refreshControl();\n this.previousEleValue = this.inputElement.value;\n this.inputElement.setAttribute('value', this.inputElement.value);\n this.startCopy = this.startDate;\n this.endCopy = this.endDate;\n };\n DateRangePicker.prototype.setEleWidth = function (width) {\n if (typeof width === 'string') {\n this.inputWrapper.container.style.width = (this.width);\n }\n else if (typeof width === 'number') {\n this.inputWrapper.container.style.width = formatUnit(this.width);\n }\n else {\n this.inputWrapper.container.style.width = '100%';\n }\n };\n DateRangePicker.prototype.adjustLongHeaderWidth = function () {\n if (this.dayHeaderFormat === 'Wide') {\n addClass([this.popupWrapper], DAYHEADERLONG);\n }\n };\n DateRangePicker.prototype.refreshControl = function () {\n this.validateMinMax();\n if (this.strictMode) {\n this.validateRangeStrict();\n }\n var isDisabled = this.disabledDates();\n if (this.strictMode && (isDisabled)) {\n this.startValue = this.previousStartValue;\n this.setProperties({ startDate: this.startValue }, true);\n this.endValue = this.previousEndValue;\n this.setProperties({ endDate: this.endValue }, true);\n this.setValue();\n }\n this.updateInput();\n if (!this.strictMode) {\n this.validateRange();\n }\n if (!this.strictMode && (isDisabled)) {\n this.clearRange();\n }\n if (!isNullOrUndefined(this.endValue) && !isNullOrUndefined(this.startValue) &&\n !isDisabled && !isNullOrUndefined(this.renderDayCellArgs) && this.renderDayCellArgs.isDisabled) {\n this.disabledDateRender();\n }\n this.errorClass();\n this.previousStartValue = isNullOrUndefined(this.startValue) || isNaN(+this.startValue) ? null : new Date(+this.startValue);\n this.previousEndValue = isNullOrUndefined(this.endValue) || isNaN(+this.endValue) ? null : new Date(+this.endValue);\n };\n DateRangePicker.prototype.updateInput = function () {\n if (!isNullOrUndefined(this.endValue) && !isNullOrUndefined(this.startValue)) {\n var formatOption = { format: this.formatString, type: 'date', skeleton: 'yMd' };\n var startDate = this.globalize.formatDate(this.startValue, formatOption);\n var endDate = this.globalize.formatDate(this.endValue, formatOption);\n Input.setValue(startDate + ' ' + this.separator + ' ' + endDate, this.inputElement, this.floatLabelType, this.showClearButton);\n this.previousStartValue = new Date(+this.startValue);\n this.previousEndValue = new Date(+this.endValue);\n }\n if (!this.strictMode && isNullOrUndefined(this.value) && this.invalidValueString) {\n Input.setValue(this.invalidValueString, this.inputElement, this.floatLabelType, this.showClearButton);\n }\n };\n DateRangePicker.prototype.checkInvalidRange = function (value) {\n if (!isNullOrUndefined(value)) {\n var invalid = false;\n var startinvalue = void 0;\n var endinvalue = void 0;\n var startString = null;\n var endString = null;\n var valueString = null;\n var startObject = false;\n var endObject = false;\n var invalidobject = false;\n if (typeof (value) === 'string') {\n var range = value.split(' ' + this.separator + ' ');\n if (range.length === 2) {\n startString = range[0];\n endString = range[1];\n }\n else {\n invalid = true;\n valueString = value;\n }\n }\n else {\n if (value.length > 0) {\n startinvalue = value[0];\n endinvalue = value[1];\n }\n else {\n startinvalue = value.start;\n endinvalue = value.end;\n }\n if (!(startinvalue instanceof Date) && typeof (startinvalue) !== 'object') {\n startString = this.getstringvalue(startinvalue);\n }\n else if (startinvalue instanceof Date) {\n startObject = true;\n }\n else if (!isNullOrUndefined(startinvalue)) {\n invalidobject = true;\n }\n if (!(endinvalue instanceof Date) && typeof (endinvalue) !== 'object') {\n endString = this.getstringvalue(endinvalue);\n }\n else if (endinvalue instanceof Date) {\n endObject = true;\n }\n else if (!isNullOrUndefined(endinvalue)) {\n invalidobject = true;\n }\n }\n if ((isNullOrUndefined(startString) && !startObject && !isNullOrUndefined(endString)) ||\n (!isNullOrUndefined(startString) && !endObject && isNullOrUndefined(endString))) {\n invalid = true;\n }\n if (invalidobject) {\n startString = endString = valueString = null;\n invalid = true;\n }\n if (startString) {\n invalid = invalid || this.checkInvalidValue(startString);\n }\n if (endString) {\n invalid = invalid || this.checkInvalidValue(endString);\n }\n if (invalid) {\n if (startObject && !invalidobject) {\n startString = startinvalue.toLocaleDateString();\n }\n if (endObject && !invalidobject) {\n endString = endinvalue.toLocaleDateString();\n }\n if (!isNullOrUndefined(startString) && !isNullOrUndefined(endString)) {\n valueString = startString + ' ' + this.separator + ' ' + endString;\n }\n else if (!isNullOrUndefined(startString)) {\n valueString = startString;\n }\n else if (!isNullOrUndefined(endString)) {\n valueString = endString;\n }\n this.invalidValueString = valueString;\n this.setProperties({ value: null }, true);\n this.setProperties({ startValue: null }, true);\n this.setProperties({ endValue: null }, true);\n this.startDate = null;\n this.endDate = null;\n }\n }\n };\n DateRangePicker.prototype.getstringvalue = function (value) {\n var stringValue = null;\n if (!isNullOrUndefined(value) && (typeof value === 'number')) {\n stringValue = (value).toString();\n }\n else if (!isNullOrUndefined(value) && (typeof value === 'string')) {\n stringValue = '' + value;\n }\n return stringValue;\n };\n DateRangePicker.prototype.checkInvalidValue = function (value) {\n var valueString = value;\n var invalid = false;\n var formatOpt = null;\n formatOpt = { format: this.formatString, type: 'date', skeleton: 'yMd' };\n if (typeof valueString !== 'string') {\n invalid = true;\n }\n else {\n var globalize = new Internationalization(this.locale);\n if (!this.checkDateValue(globalize.parseDate(valueString, formatOpt))) {\n var extISOStr = null;\n var basISOString = null;\n // eslint-disable-next-line\n extISOStr = /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?/;\n // eslint-disable-next-line\n basISOString = /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?/;\n if ((!extISOStr.test(valueString) && !basISOString.test(valueString))\n || (/^[a-zA-Z0-9- ]*$/).test(valueString) || isNaN(+new Date(this.checkValue(valueString)))) {\n invalid = true;\n }\n }\n }\n return invalid;\n };\n DateRangePicker.prototype.isDateDisabled = function (date) {\n if (isNullOrUndefined(date)) {\n return false;\n }\n var value = new Date(+date);\n if (+value < +this.min || +value > +this.max) {\n return true;\n }\n this.virtualRenderCellArgs = {\n date: value,\n isDisabled: false\n };\n var args = this.virtualRenderCellArgs;\n this.virtualRenderCellEvent(args);\n if (args.isDisabled) {\n return true;\n }\n return false;\n };\n DateRangePicker.prototype.disabledDateRender = function () {\n this.disabledDays = [];\n this.disabledDayCnt = null;\n var localDate = new Date(+this.startValue);\n var count = 0;\n while (+localDate <= +this.endValue && +this.endValue <= +this.max) {\n this.virtualRenderCellArgs = {\n date: localDate,\n isDisabled: false\n };\n var args = this.virtualRenderCellArgs;\n this.virtualRenderCellEvent(args);\n if (args.isDisabled) {\n this.disabledDays.push(new Date(+args.date));\n if (+localDate > +this.startValue && +localDate < +this.endValue) {\n count++;\n }\n }\n this.addDay(localDate, 1, null, this.max, this.min);\n }\n this.disabledDayCnt = count;\n };\n DateRangePicker.prototype.virtualRenderCellEvent = function (args) {\n extend(this.virtualRenderCellArgs, { name: 'renderDayCell' });\n this.trigger('renderDayCell', args);\n };\n DateRangePicker.prototype.disabledDates = function () {\n var isStartDisabled = false;\n var isEndDisabled = false;\n if (!isNullOrUndefined(this.endValue) && !isNullOrUndefined(this.startValue)) {\n isStartDisabled = this.isDateDisabled(this.startValue);\n isEndDisabled = this.isDateDisabled(this.endValue);\n if (!this.isPopupOpen()) {\n this.currentDate = null;\n }\n this.setValue();\n }\n return (isStartDisabled || isEndDisabled);\n };\n DateRangePicker.prototype.setModelValue = function () {\n if (!this.value && this.startDate === null && this.endDate === null) {\n this.setProperties({ value: null }, true);\n }\n else if (this.value === null || this.value.start === null) {\n if (this.value === null) {\n this.setProperties({ value: [this.startDate, this.endDate] }, true);\n }\n else if (this.value.start === null) {\n this.setProperties({ value: { start: this.startDate, end: this.endDate } }, true);\n }\n }\n else {\n if ((this.value && this.value.length > 0) ||\n this.valueType && this.valueType.length > 0) {\n if (+this.startDate !== +this.value[0] || +this.endDate !== +this.value[1]) {\n this.setProperties({ value: [this.startDate, this.endDate] }, true);\n }\n if (this.value && this.value[0] == null && this.value[1] == null) {\n this.setProperties({ value: null }, true);\n }\n }\n else {\n if ((this.value && this.value.start)) {\n this.setProperties({ value: { start: this.startDate, end: this.endDate } }, true);\n }\n }\n }\n this.createHiddenInput();\n };\n /**\n * To dispatch the event manually\n *\n * @param {HTMLElement} element - Specifies the element to dispatch the event.\n * @param {string} type - Specifies the name of the event.\n * @returns {void}\n */\n DateRangePicker.prototype.dispatchEvent = function (element, type) {\n var evt = document.createEvent('HTMLEvents');\n evt.initEvent(type, false, true);\n element.dispatchEvent(evt);\n this.firstHiddenChild.dispatchEvent(evt);\n };\n DateRangePicker.prototype.changeTrigger = function (e) {\n if (+this.initStartDate !== +this.startValue || +this.initEndDate !== +this.endValue) {\n this.setProperties({ endDate: this.checkDateValue(this.endValue) }, true);\n this.setProperties({ startDate: this.checkDateValue(this.startValue) }, true);\n this.setModelValue();\n if (this.isAngular && this.preventChange) {\n this.preventChange = false;\n }\n else {\n this.trigger('change', this.rangeArgs(e));\n }\n }\n this.previousEleValue = this.inputElement.value;\n this.initStartDate = this.checkDateValue(this.startValue);\n this.initEndDate = this.checkDateValue(this.endValue);\n };\n /**\n * This method is used to navigate to the month/year/decade view of the Calendar.\n *\n * @param {string} view - Specifies the view of the Calendar.\n * @param {Date} date - Specifies the focused date in a view.\n * @returns {void}\n * @hidden\n */\n DateRangePicker.prototype.navigateTo = function (view, date) {\n if (this.isPopupOpen()) {\n if (view.toLowerCase() === 'month') {\n view = 'Month';\n }\n else if (view.toLowerCase() === 'year') {\n view = 'Year';\n }\n else if (view.toLowerCase() === 'decade') {\n view = 'Decade';\n }\n else {\n return;\n }\n if (this.getViewNumber(view) < this.getViewNumber(this.depth)) {\n view = this.depth;\n }\n if (this.isMobile) {\n _super.prototype.navigateTo.call(this, view, date);\n }\n else {\n if (date < this.min) {\n date = new Date(+this.min);\n }\n else if (date >= this.max) {\n date = new Date(+this.max);\n }\n if (view === 'Month' && this.isSameMonth(date, this.max)) {\n date = new Date(this.max.getFullYear(), this.max.getMonth() - 1, this.min.getDate());\n }\n else if (view === 'Year' && this.isSameYear(date, this.max)) {\n date = new Date((this.max.getFullYear() - 1), this.max.getMonth(), this.max.getDate());\n }\n else if (view === 'Decade' && this.isSameDecade(date, this.max)) {\n date = new Date((this.max.getFullYear() - 10), this.max.getMonth(), this.max.getDate());\n }\n this.leftCalCurrentDate = date;\n this.navigate(this.leftCalendar, this.leftCalCurrentDate, view);\n if (view === 'Month') {\n date = new Date(this.currentDate.setMonth(this.currentDate.getMonth() + 1));\n }\n else if (view === 'Year') {\n date = new Date(this.currentDate.setFullYear(this.currentDate.getFullYear() + 1));\n }\n else {\n date = new Date(this.currentDate.setFullYear(this.currentDate.getFullYear() + 10));\n }\n this.rightCalCurrentDate = date;\n this.navigate(this.rightCalendar, this.rightCalCurrentDate, view);\n this.leftKeyboardModule = this.rightKeyboardModule = null;\n this.updateNavIcons();\n }\n if (this.currentView() === this.depth) {\n this.bindCalendarCellEvents();\n }\n this.removeFocusedDate();\n this.updateRange((this.isMobile ? [this.calendarElement] : [this.leftCalendar, this.rightCalendar]));\n }\n };\n DateRangePicker.prototype.navigate = function (calendar, date, view) {\n this.calendarElement = calendar;\n this.table = calendar.querySelector('table');\n this.tableBodyElement = calendar.querySelector('tbody');\n this.headerTitleElement = calendar.querySelector('.e-title');\n this.tableHeadElement = calendar.querySelector('thead');\n this.contentElement = calendar.querySelector('.e-content');\n this.previousIcon = calendar.querySelector('.e-prev');\n this.nextIcon = calendar.querySelector('.e-next');\n this.effect = ZOOMIN;\n _super.prototype.navigateTo.call(this, view, date);\n };\n /**\n * Sets the focus to widget for interaction.\n *\n * @returns {void}\n */\n DateRangePicker.prototype.focusIn = function () {\n if (document.activeElement !== this.inputElement && this.enabled) {\n addClass([this.inputWrapper.container], [INPUTFOCUS]);\n this.inputElement.focus();\n }\n };\n /**\n * Remove the focus from widget, if the widget is in focus state.\n *\n * @returns {void}\n */\n DateRangePicker.prototype.focusOut = function () {\n var isBlur = this.preventBlur;\n if (document.activeElement === this.inputElement) {\n removeClass([this.inputWrapper.container], [INPUTFOCUS]);\n this.preventBlur = false;\n this.inputElement.blur();\n this.preventBlur = isBlur;\n }\n };\n /**\n * To destroy the widget.\n *\n * @returns {void}\n */\n DateRangePicker.prototype.destroy = function () {\n this.unBindEvents();\n this.hide(null);\n var ariaAttrs = {\n 'tabindex': '0', 'aria-expanded': 'false', 'role': 'combobox',\n 'autocomplete': 'off', 'aria-disabled': !this.enabled ? 'true' : 'false',\n 'autocorrect': 'off', 'autocapitalize': 'off', 'aria-invalid': 'false', 'spellcheck': 'false'\n };\n if (this.inputElement) {\n removeClass([this.inputElement], [ROOT]);\n EventHandler.remove(this.inputElement, 'blur', this.inputBlurHandler);\n Input.removeAttributes(ariaAttrs, this.inputElement);\n if (!isNullOrUndefined(this.cloneElement.getAttribute('tabindex'))) {\n this.inputElement.setAttribute('tabindex', this.tabIndex);\n }\n else {\n this.inputElement.removeAttribute('tabindex');\n }\n this.ensureInputAttribute();\n this.inputElement.classList.remove('e-input');\n if (!isNullOrUndefined(this.inputWrapper)) {\n EventHandler.remove(this.inputWrapper.buttons[0], 'mousedown', this.rangeIconHandler);\n if (this.angularTag === null) {\n this.inputWrapper.container.parentElement.appendChild(this.inputElement);\n }\n detach(this.inputWrapper.container);\n }\n }\n if (!isNullOrUndefined(this.inputKeyboardModule) && !this.isMobile) {\n this.inputKeyboardModule.destroy();\n }\n if (this.popupObj) {\n if (!this.isMobile) {\n this.clearCalendarEvents();\n }\n }\n _super.prototype.destroy.call(this);\n this.inputWrapper = this.popupWrapper = this.popupObj = this.cloneElement = this.presetElement = null;\n if (this.formElement) {\n EventHandler.remove(this.formElement, 'reset', this.formResetHandler);\n }\n if ((!isNullOrUndefined(this.firstHiddenChild))\n && (!isNullOrUndefined(this.secondHiddenChild))) {\n detach(this.firstHiddenChild);\n detach(this.secondHiddenChild);\n this.firstHiddenChild = this.secondHiddenChild = null;\n this.inputElement.setAttribute('name', this.element.getAttribute('data-name'));\n this.inputElement.removeAttribute('data-name');\n }\n this.closeEventArgs = null;\n this.leftCalendar = null;\n this.rightTitle = null;\n this.leftTitle = null;\n this.openEventArgs = null;\n this.leftCalNextIcon = null;\n this.rightCalendar = null;\n this.closeEventArgs = null;\n this.rightCalPrevIcon = null;\n this.leftCalPrevIcon = null;\n this.popupKeyboardModule = null;\n this.cancelButton = null;\n this.applyButton = null;\n this.calendarElement = null;\n this.leftKeyboardModule = null;\n this.rightCalNextIcon = null;\n this.leftCalNextIcon = null;\n this.btnKeyboardModule = null;\n this.rightKeyboardModule = null;\n this.leftKeyboardModule = null;\n this.presetKeyboardModule = null;\n this.liCollections = null;\n this.popupObj = null;\n this.popupWrapper = null;\n };\n DateRangePicker.prototype.ensureInputAttribute = function () {\n var attr = [];\n for (var i = 0; i < this.inputElement.attributes.length; i++) {\n attr[i] = this.inputElement.attributes[i].name;\n }\n for (var i = 0; i < attr.length; i++) {\n if (isNullOrUndefined(this.cloneElement.getAttribute(attr[i]))) {\n if (attr[i].toLowerCase() === 'value') {\n this.inputElement.value = '';\n }\n this.inputElement.removeAttribute(attr[i]);\n }\n else {\n if (attr[i].toLowerCase() === 'value') {\n this.inputElement.value = this.cloneElement.getAttribute(attr[i]);\n }\n this.inputElement.setAttribute(attr[i], this.cloneElement.getAttribute(attr[i]));\n }\n }\n };\n /**\n * To get component name\n *\n * @returns {string} Returns the component name.\n * @private\n */\n DateRangePicker.prototype.getModuleName = function () {\n return 'daterangepicker';\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Return the properties that are maintained upon browser refresh.\n *\n * @returns {string}\n */\n DateRangePicker.prototype.getPersistData = function () {\n var keyEntity = ['startDate', 'endDate', 'value'];\n return this.addOnPersist(keyEntity);\n };\n /**\n * Return the selected range and day span in the DateRangePicker.\n *\n * @returns {Object}\n */\n DateRangePicker.prototype.getSelectedRange = function () {\n var range;\n if (!isNullOrUndefined(this.startValue) && !isNullOrUndefined(this.endValue)) {\n range = (Math.round(Math.abs((this.removeTimeValueFromDate(this.startValue).getTime() -\n this.removeTimeValueFromDate(this.endValue).getTime()) / (1000 * 60 * 60 * 24))) + 1);\n if (!isNullOrUndefined(this.renderDayCellArgs) && this.renderDayCellArgs.isDisabled) {\n this.disabledDateRender();\n }\n if (!isNullOrUndefined(this.disabledDayCnt)) {\n range = range - this.disabledDayCnt;\n this.disabledDayCnt = null;\n }\n }\n else {\n range = 0;\n }\n return { startDate: this.startValue, endDate: this.endValue, daySpan: range };\n };\n /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */\n /* eslint-disable valid-jsdoc, jsdoc/require-param */\n /**\n * To open the Popup container in the DateRangePicker component.\n *\n * @param {HTMLElement} element - Specifies element.\n * @returns {void}\n */\n DateRangePicker.prototype.show = function (element, event) {\n var _this = this;\n if (this.isMobile && this.popupObj) {\n this.popupObj.refreshPosition();\n }\n if ((this.enabled && this.readonly) || !this.enabled || this.popupObj) {\n return;\n }\n else {\n if (!this.isPopupOpen()) {\n if (element) {\n this.targetElement = element;\n }\n this.createPopup();\n if (this.isMobile || Browser.isDevice) {\n this.mobileRangePopupWrap = this.createElement('div', { className: 'e-daterangepick-mob-popup-wrap' });\n document.body.appendChild(this.mobileRangePopupWrap);\n }\n this.openEventArgs = {\n popup: this.popupObj || null,\n cancel: false,\n date: this.inputElement.value,\n model: this,\n event: event ? event : null,\n appendTo: this.isMobile || Browser.isDevice ? this.mobileRangePopupWrap : document.body\n };\n var eventArgs = this.openEventArgs;\n this.trigger('open', eventArgs, function (eventArgs) {\n _this.openEventArgs = eventArgs;\n if (!_this.openEventArgs.cancel) {\n _this.openEventArgs.appendTo.appendChild(_this.popupWrapper);\n _this.showPopup(element, event);\n var isPreset = (!_this.isCustomRange || (_this.isMobile && _this.isCustomRange));\n if (!isUndefined(_this.presets[0].start && _this.presets[0].end && _this.presets[0].label) && isPreset) {\n _this.setScrollPosition();\n }\n _this.checkMinMaxDays();\n if ((_this.isMobile) && (!isNullOrUndefined(_this.startDate)) && (isNullOrUndefined(_this.endDate))) {\n _this.endButton.element.classList.add(ACTIVE);\n _this.startButton.element.classList.remove(ACTIVE);\n _this.endButton.element.removeAttribute('disabled');\n _this.selectableDates();\n }\n _super.prototype.setOverlayIndex.call(_this, _this.mobileRangePopupWrap, _this.popupObj.element, _this.modal, \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _this.isMobile || Browser.isDevice);\n }\n });\n }\n }\n };\n /**\n * To close the Popup container in the DateRangePicker component.\n *\n * @returns {void}\n */\n DateRangePicker.prototype.hide = function (event) {\n var _this = this;\n if (this.popupObj) {\n if (isNullOrUndefined(this.previousEndValue) && isNullOrUndefined(this.previousStartValue)) {\n this.clearRange();\n }\n else {\n if (!isNullOrUndefined(this.previousStartValue)) {\n this.startValue = new Date(this.checkValue(this.previousStartValue));\n this.setValue();\n this.currentDate = new Date(this.checkValue(this.startValue));\n }\n else {\n this.startValue = null;\n this.setValue();\n }\n if (!isNullOrUndefined(this.previousEndValue)) {\n this.endValue = new Date(this.checkValue(this.previousEndValue));\n this.setValue();\n }\n else {\n this.endValue = null;\n this.setValue();\n }\n }\n if (this.isPopupOpen()) {\n this.closeEventArgs = {\n cancel: false,\n popup: this.popupObj,\n date: this.inputElement.value,\n model: this,\n event: event ? event : null\n };\n var eventArgs = this.closeEventArgs;\n this.trigger('close', eventArgs, function (eventArgs) {\n _this.closeEventArgs = eventArgs;\n if (!_this.closeEventArgs.cancel) {\n if (_this.isMobile) {\n if (!isNullOrUndefined(_this.startButton) && !isNullOrUndefined(_this.endButton)) {\n EventHandler.remove(_this.startButton.element, 'click touchstart', _this.deviceHeaderClick);\n EventHandler.remove(_this.endButton.element, 'click touchstart', _this.deviceHeaderClick);\n }\n }\n if (_this.popupObj) {\n _this.popupObj.hide();\n if (_this.preventBlur) {\n _this.inputElement.focus();\n addClass([_this.inputWrapper.container], [INPUTFOCUS]);\n }\n }\n if (!_this.isMobile) {\n if (!isNullOrUndefined(_this.leftKeyboardModule) && !isNullOrUndefined(_this.rightKeyboardModule)) {\n _this.leftKeyboardModule.destroy();\n _this.rightKeyboardModule.destroy();\n }\n if (!isNullOrUndefined(_this.presetElement)) {\n _this.presetKeyboardModule.destroy();\n }\n if (!isNullOrUndefined(_this.cancelButton)) {\n _this.btnKeyboardModule.destroy();\n }\n }\n _this.targetElement = null;\n removeClass([document.body], OVERFLOW);\n EventHandler.remove(document, 'mousedown touchstart', _this.documentHandler);\n if (_this.isMobile && _this.modal) {\n _this.modal.style.display = 'none';\n _this.modal.outerHTML = '';\n _this.modal = null;\n }\n if (_this.isMobile || Browser.isDevice) {\n if (!isNullOrUndefined(_this.mobileRangePopupWrap)) {\n _this.mobileRangePopupWrap.remove();\n _this.mobileRangePopupWrap = null;\n }\n }\n _this.isKeyPopup = _this.dateDisabled = false;\n }\n else {\n removeClass([_this.inputWrapper.buttons[0]], ACTIVE);\n }\n _this.updateClearIconState();\n _this.updateHiddenInput();\n if (_this.isMobile && _this.allowEdit && !_this.readonly) {\n _this.inputElement.removeAttribute('readonly');\n }\n });\n }\n }\n else {\n this.updateClearIconState();\n this.updateHiddenInput();\n if (this.isMobile && this.allowEdit && !this.readonly) {\n this.inputElement.removeAttribute('readonly');\n }\n }\n };\n /* eslint-enable valid-jsdoc, jsdoc/require-param */\n DateRangePicker.prototype.setLocale = function () {\n this.globalize = new Internationalization(this.locale);\n this.l10n.setLocale(this.locale);\n this.setProperties({ placeholder: this.l10n.getConstant('placeholder') }, true);\n Input.setPlaceholder(this.placeholder, this.inputElement);\n this.updateInput();\n this.updateHiddenInput();\n this.changeTrigger();\n };\n DateRangePicker.prototype.refreshChange = function () {\n this.checkView();\n this.refreshControl();\n this.changeTrigger();\n };\n DateRangePicker.prototype.setDate = function () {\n Input.setValue('', this.inputElement, this.floatLabelType, this.showClearButton);\n this.refreshChange();\n };\n DateRangePicker.prototype.enableInput = function () {\n if (+this.min <= +this.max) {\n this.setProperties({ enabled: true }, true);\n Input.setEnabled(this.enabled, this.inputElement);\n if (this.element.hasAttribute('disabled')) {\n this.bindEvents();\n }\n }\n };\n DateRangePicker.prototype.clearModelvalue = function (newProp, oldProp) {\n this.setProperties({ startDate: null }, true);\n this.setProperties({ endDate: null }, true);\n if (oldProp.value && oldProp.value.length > 0) {\n this.setProperties({ value: null }, true);\n }\n else if (oldProp.value && oldProp.value.start) {\n this.setProperties({ value: { start: null, end: null } }, true);\n }\n else if (oldProp.value && !oldProp.value.start) {\n this.setProperties({ value: { start: null, end: null } }, true);\n }\n this.updateValue();\n this.setDate();\n };\n DateRangePicker.prototype.createHiddenInput = function () {\n if (isNullOrUndefined(this.firstHiddenChild) && isNullOrUndefined(this.secondHiddenChild)) {\n this.firstHiddenChild = this.createElement('input');\n this.secondHiddenChild = this.createElement('input');\n }\n if (!isNullOrUndefined(this.inputElement.getAttribute('name'))) {\n this.inputElement.setAttribute('data-name', this.inputElement.getAttribute('name'));\n this.inputElement.removeAttribute('name');\n }\n attributes(this.firstHiddenChild, {\n 'type': 'text', 'name': this.inputElement.getAttribute('data-name'), 'class': HIDDENELEMENT\n });\n attributes(this.secondHiddenChild, {\n 'type': 'text', 'name': this.inputElement.getAttribute('data-name'), 'class': HIDDENELEMENT\n });\n var format = { type: 'datetime', skeleton: 'yMd' };\n this.firstHiddenChild.value = this.startDate && this.globalize.formatDate(this.startDate, format);\n this.secondHiddenChild.value = this.endDate && this.globalize.formatDate(this.endDate, format);\n this.inputElement.parentElement.appendChild(this.firstHiddenChild);\n this.inputElement.parentElement.appendChild(this.secondHiddenChild);\n };\n DateRangePicker.prototype.setMinMaxDays = function () {\n if (this.isPopupOpen()) {\n this.removeClassDisabled();\n this.checkMinMaxDays();\n if (this.isMobile) {\n this.selectableDates();\n }\n if (!this.strictMode && (isNullOrUndefined(this.startValue) && isNullOrUndefined(this.endValue))) {\n this.removeSelection();\n }\n else {\n this.updateRange((this.isMobile ? [this.calendarElement] : [this.leftCalendar, this.rightCalendar]));\n }\n this.updateHeader();\n }\n };\n // eslint-disable-next-line @typescript-eslint/tslint/config\n DateRangePicker.prototype.getStartEndValue = function (date, isEnd) {\n if (this.depth === 'Month') {\n return this.checkDateValue(new Date(this.checkValue(date)));\n }\n else if (this.depth === 'Year') {\n return new Date(date.getFullYear(), date.getMonth() + (isEnd ? 1 : 0), isEnd ? 0 : 1);\n }\n else {\n return new Date(date.getFullYear(), isEnd ? 11 : 0, isEnd ? 31 : 1);\n }\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {DateRangePickerModel} newProp - Returns the dynamic property value of the component.\n * @param {DateRangePickerModel} oldProp - Returns the previous property value of the component.\n * @returns {void}\n * @private\n */\n DateRangePicker.prototype.onPropertyChanged = function (newProp, oldProp) {\n var format = { format: this.formatString, type: 'date', skeleton: 'yMd' };\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n var openPopup = ['maxDays', 'minDays', 'value'];\n if (openPopup.indexOf(prop) < 0) {\n this.hide(null);\n }\n switch (prop) {\n case 'width':\n this.setEleWidth(this.width);\n Input.calculateWidth(this.inputElement, this.inputWrapper.container);\n if (!isNullOrUndefined(this.inputWrapper.buttons[0]) && !isNullOrUndefined(this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0]) && this.floatLabelType !== 'Never') {\n this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0].classList.add('e-icon');\n }\n break;\n case 'separator':\n this.previousEleValue = this.inputElement.value;\n this.setProperties({ separator: newProp.separator }, true);\n this.updateInput();\n this.changeTrigger();\n break;\n case 'placeholder':\n Input.setPlaceholder(newProp.placeholder, this.inputElement);\n this.setProperties({ placeholder: newProp.placeholder }, true);\n break;\n case 'readonly':\n Input.setReadonly(this.readonly, this.inputElement);\n this.setRangeAllowEdit();\n break;\n case 'cssClass':\n this.updateCssClass(newProp.cssClass, oldProp.cssClass);\n break;\n case 'enabled':\n this.setProperties({ enabled: newProp.enabled }, true);\n Input.setEnabled(this.enabled, this.inputElement);\n if (this.enabled) {\n this.inputElement.setAttribute('tabindex', this.tabIndex);\n }\n else {\n this.inputElement.tabIndex = -1;\n }\n break;\n case 'allowEdit':\n this.setRangeAllowEdit();\n break;\n case 'enableRtl':\n this.setProperties({ enableRtl: newProp.enableRtl }, true);\n Input.setEnableRtl(this.enableRtl, [this.inputWrapper.container]);\n break;\n case 'zIndex':\n this.setProperties({ zIndex: newProp.zIndex }, true);\n break;\n case 'format':\n this.setProperties({ format: newProp.format }, true);\n this.checkFormat();\n this.updateInput();\n this.changeTrigger();\n break;\n case 'locale':\n this.globalize = new Internationalization(this.locale);\n this.l10n.setLocale(this.locale);\n this.setProperties({ placeholder: this.l10n.getConstant('placeholder') }, true);\n Input.setPlaceholder(this.placeholder, this.inputElement);\n this.setLocale();\n break;\n case 'htmlAttributes':\n this.updateHtmlAttributeToElement();\n this.updateHtmlAttributeToWrapper();\n this.setDataAttribute(true);\n this.checkHtmlAttributes(true);\n break;\n case 'showClearButton':\n Input.setClearButton(this.showClearButton, this.inputElement, this.inputWrapper);\n this.bindClearEvent();\n break;\n case 'startDate':\n if (typeof newProp.startDate === 'string') {\n newProp.startDate = this.globalize.parseDate(newProp.startDate, format);\n }\n if (+this.initStartDate !== +newProp.startDate) {\n this.startValue = this.getStartEndValue(newProp.startDate, false);\n this.setDate();\n this.setValue();\n }\n break;\n case 'endDate':\n if (typeof newProp.endDate === 'string') {\n newProp.endDate = this.globalize.parseDate(newProp.endDate, format);\n }\n if (+this.initEndDate !== +newProp.endDate) {\n this.endValue = this.getStartEndValue(newProp.endDate, true);\n this.setDate();\n this.setValue();\n }\n break;\n case 'value':\n this.invalidValueString = null;\n this.checkInvalidRange(newProp.value);\n if (typeof (newProp.value) === 'string') {\n if (!this.invalidValueString) {\n var rangeArray = newProp.value.split(' ' + this.separator + ' ');\n this.value = [new Date(rangeArray[0]), new Date(rangeArray[1])];\n this.updateValue();\n this.setDate();\n }\n else {\n this.clearModelvalue(newProp, oldProp);\n }\n }\n else {\n if ((!isNullOrUndefined(newProp.value) && newProp.value.length > 0)\n || !isNullOrUndefined(newProp.value) && newProp.value.start) {\n this.valueType = newProp.value;\n if (newProp.value[0] === null || (newProp.value.start === null)) {\n if (newProp.value.length === 1 || (newProp.value.start)) {\n this.clearModelvalue(newProp, oldProp);\n }\n else if (newProp.value[1] === null ||\n (newProp.value.start === null)) {\n this.clearModelvalue(newProp, oldProp);\n }\n }\n else if ((+this.initStartDate !== +newProp.value[0]\n || +this.initEndDate !== +newProp.value[1]) ||\n (+this.initStartDate !== +(newProp.value.start\n || +this.initEndDate !== +newProp.value.start))) {\n if (newProp.value.length === 1) {\n this.modelValue = newProp.value;\n }\n else if (newProp.value.start) {\n this.modelValue = newProp.value;\n }\n this.updateValue();\n this.setDate();\n }\n }\n else {\n if (isNullOrUndefined(this.value)\n || newProp.value.start == null) {\n this.valueType = newProp.value;\n this.startValue = null;\n this.endValue = null;\n this.clearModelvalue(newProp, oldProp);\n }\n }\n }\n if (this.isPopupOpen()) {\n if (isNullOrUndefined(this.startValue) && isNullOrUndefined(this.endValue)) {\n this.removeSelection();\n if (this.isMobile) {\n this.deviceHeaderUpdate();\n }\n return;\n }\n if (this.isMobile) {\n this.navigate(this.deviceCalendar, this.startValue, this.currentView());\n this.deviceHeaderUpdate();\n }\n else {\n this.navigate(this.leftCalendar, this.startValue, this.currentView());\n this.updateControl(this.leftCalendar);\n this.navigate(this.rightCalendar, this.endValue, this.currentView());\n this.updateControl(this.rightCalendar);\n }\n this.updateRange((this.isMobile ? [this.calendarElement] : [this.leftCalendar, this.rightCalendar]));\n this.updateHeader();\n this.applyButton.disabled = this.applyButton.element.disabled = false;\n }\n this.preventChange = this.isAngular && this.preventChange ? !this.preventChange : this.preventChange;\n break;\n case 'minDays':\n this.setProperties({ minDays: newProp.minDays }, true);\n this.refreshChange();\n this.setMinMaxDays();\n break;\n case 'maxDays':\n this.setProperties({ maxDays: newProp.maxDays }, true);\n this.refreshChange();\n this.setMinMaxDays();\n break;\n case 'min':\n this.setProperties({ min: this.checkDateValue(new Date(this.checkValue(newProp.min))) }, true);\n this.previousEleValue = this.inputElement.value;\n this.enableInput();\n this.refreshChange();\n break;\n case 'max':\n this.setProperties({ max: this.checkDateValue(new Date(this.checkValue(newProp.max))) }, true);\n this.enableInput();\n this.refreshChange();\n break;\n case 'strictMode':\n this.invalidValueString = null;\n this.setProperties({ strictMode: newProp.strictMode }, true);\n this.refreshChange();\n break;\n case 'presets':\n this.setProperties({ presets: newProp.presets }, true);\n this.processPresets();\n break;\n case 'floatLabelType':\n this.floatLabelType = newProp.floatLabelType;\n Input.removeFloating(this.inputWrapper);\n Input.addFloating(this.inputElement, this.floatLabelType, this.placeholder);\n if (!isNullOrUndefined(this.inputWrapper.buttons[0]) && !isNullOrUndefined(this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0]) && this.floatLabelType !== 'Never') {\n this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0].classList.add('e-icon');\n }\n break;\n case 'start':\n this.setProperties({ start: newProp.start }, true);\n this.refreshChange();\n break;\n case 'depth':\n this.setProperties({ depth: newProp.depth }, true);\n this.refreshChange();\n break;\n }\n }\n };\n __decorate([\n Property(null)\n ], DateRangePicker.prototype, \"value\", void 0);\n __decorate([\n Property(false)\n ], DateRangePicker.prototype, \"enablePersistence\", void 0);\n __decorate([\n Property(new Date(1900, 0, 1))\n ], DateRangePicker.prototype, \"min\", void 0);\n __decorate([\n Property(new Date(2099, 11, 31))\n ], DateRangePicker.prototype, \"max\", void 0);\n __decorate([\n Property(null)\n ], DateRangePicker.prototype, \"locale\", void 0);\n __decorate([\n Property(null)\n ], DateRangePicker.prototype, \"firstDayOfWeek\", void 0);\n __decorate([\n Property(false)\n ], DateRangePicker.prototype, \"weekNumber\", void 0);\n __decorate([\n Property('Gregorian')\n ], DateRangePicker.prototype, \"calendarMode\", void 0);\n __decorate([\n Property(false)\n ], DateRangePicker.prototype, \"openOnFocus\", void 0);\n __decorate([\n Event()\n ], DateRangePicker.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], DateRangePicker.prototype, \"destroyed\", void 0);\n __decorate([\n Event()\n ], DateRangePicker.prototype, \"change\", void 0);\n __decorate([\n Event()\n ], DateRangePicker.prototype, \"cleared\", void 0);\n __decorate([\n Event()\n ], DateRangePicker.prototype, \"navigated\", void 0);\n __decorate([\n Event()\n ], DateRangePicker.prototype, \"renderDayCell\", void 0);\n __decorate([\n Property(null)\n ], DateRangePicker.prototype, \"startDate\", void 0);\n __decorate([\n Property(null)\n ], DateRangePicker.prototype, \"endDate\", void 0);\n __decorate([\n Collection([{}], Presets)\n ], DateRangePicker.prototype, \"presets\", void 0);\n __decorate([\n Property('')\n ], DateRangePicker.prototype, \"width\", void 0);\n __decorate([\n Property(1000)\n ], DateRangePicker.prototype, \"zIndex\", void 0);\n __decorate([\n Property(true)\n ], DateRangePicker.prototype, \"showClearButton\", void 0);\n __decorate([\n Property(true)\n ], DateRangePicker.prototype, \"showTodayButton\", void 0);\n __decorate([\n Property('Month')\n ], DateRangePicker.prototype, \"start\", void 0);\n __decorate([\n Property('Month')\n ], DateRangePicker.prototype, \"depth\", void 0);\n __decorate([\n Property('')\n ], DateRangePicker.prototype, \"cssClass\", void 0);\n __decorate([\n Property('-')\n ], DateRangePicker.prototype, \"separator\", void 0);\n __decorate([\n Property(null)\n ], DateRangePicker.prototype, \"minDays\", void 0);\n __decorate([\n Property(null)\n ], DateRangePicker.prototype, \"maxDays\", void 0);\n __decorate([\n Property(false)\n ], DateRangePicker.prototype, \"strictMode\", void 0);\n __decorate([\n Property(null)\n ], DateRangePicker.prototype, \"keyConfigs\", void 0);\n __decorate([\n Property(null)\n ], DateRangePicker.prototype, \"format\", void 0);\n __decorate([\n Property(true)\n ], DateRangePicker.prototype, \"enabled\", void 0);\n __decorate([\n Property(false)\n ], DateRangePicker.prototype, \"readonly\", void 0);\n __decorate([\n Property(true)\n ], DateRangePicker.prototype, \"allowEdit\", void 0);\n __decorate([\n Property('Never')\n ], DateRangePicker.prototype, \"floatLabelType\", void 0);\n __decorate([\n Property(null)\n ], DateRangePicker.prototype, \"placeholder\", void 0);\n __decorate([\n Property({})\n ], DateRangePicker.prototype, \"htmlAttributes\", void 0);\n __decorate([\n Event()\n ], DateRangePicker.prototype, \"open\", void 0);\n __decorate([\n Event()\n ], DateRangePicker.prototype, \"close\", void 0);\n __decorate([\n Event()\n ], DateRangePicker.prototype, \"select\", void 0);\n __decorate([\n Event()\n ], DateRangePicker.prototype, \"focus\", void 0);\n __decorate([\n Event()\n ], DateRangePicker.prototype, \"blur\", void 0);\n DateRangePicker = __decorate([\n NotifyPropertyChanges\n ], DateRangePicker);\n return DateRangePicker;\n}(CalendarBase));\nexport { DateRangePicker };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { DateRangePicker } from '@syncfusion/ej2-calendars';\nimport { ComponentBase, applyMixins } from '@syncfusion/ej2-react-base';\n/**\n * Represents the Essential JS 2 React DateRangePicker Component.\n * ```ts\n * \n * ```\n */\nvar DateRangePickerComponent = /** @class */ (function (_super) {\n __extends(DateRangePickerComponent, _super);\n function DateRangePickerComponent(props) {\n var _this = _super.call(this, props) || this;\n _this.initRenderCalled = false;\n _this.checkInjectedModules = false;\n _this.directivekeys = { 'presets': 'preset' };\n _this.statelessTemplateProps = null;\n _this.templateProps = null;\n _this.immediateRender = false;\n _this.portals = [];\n return _this;\n }\n DateRangePickerComponent.prototype.render = function () {\n if (((this.element && !this.initRenderCalled) || this.refreshing) && !this.isReactForeceUpdate) {\n _super.prototype.render.call(this);\n this.initRenderCalled = true;\n }\n else {\n return React.createElement(React.Fragment, null, [].concat(React.createElement(\"input\", this.getDefaultAttributes()), this.portals));\n }\n };\n return DateRangePickerComponent;\n}(DateRangePicker));\nexport { DateRangePickerComponent };\napplyMixins(DateRangePickerComponent, [ComponentBase, React.Component]);\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { SplitButton } from '@syncfusion/ej2-splitbuttons';\nimport { ComponentBase, applyMixins } from '@syncfusion/ej2-react-base';\n/**\n * `SplitButtonComponent` represents the react SplitButton Component.\n * ```ts\n * \n * ```\n */\nvar SplitButtonComponent = /** @class */ (function (_super) {\n __extends(SplitButtonComponent, _super);\n function SplitButtonComponent(props) {\n var _this = _super.call(this, props) || this;\n _this.initRenderCalled = false;\n _this.checkInjectedModules = false;\n _this.directivekeys = { 'splitButtonItems': 'splitButtonItem' };\n _this.statelessTemplateProps = null;\n _this.templateProps = null;\n _this.immediateRender = true;\n _this.portals = [];\n return _this;\n }\n SplitButtonComponent.prototype.render = function () {\n if (((this.element && !this.initRenderCalled) || this.refreshing) && !this.isReactForeceUpdate) {\n _super.prototype.render.call(this);\n this.initRenderCalled = true;\n }\n else {\n return React.createElement('button', this.getDefaultAttributes(), [].concat(this.props.children, this.portals));\n }\n };\n return SplitButtonComponent;\n}(SplitButton));\nexport { SplitButtonComponent };\napplyMixins(SplitButtonComponent, [ComponentBase, React.Component]);\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { RadioButton } from '@syncfusion/ej2-buttons';\nimport { ComponentBase, applyMixins } from '@syncfusion/ej2-react-base';\n/**\n * Represents the react RadioButton Component.\n * ```ts\n * \n * ```\n */\nvar RadioButtonComponent = /** @class */ (function (_super) {\n __extends(RadioButtonComponent, _super);\n function RadioButtonComponent(props) {\n var _this = _super.call(this, props) || this;\n _this.initRenderCalled = false;\n _this.checkInjectedModules = false;\n _this.statelessTemplateProps = null;\n _this.templateProps = null;\n _this.immediateRender = true;\n _this.portals = [];\n return _this;\n }\n RadioButtonComponent.prototype.render = function () {\n if (((this.element && !this.initRenderCalled) || this.refreshing) && !this.isReactForeceUpdate) {\n _super.prototype.render.call(this);\n this.initRenderCalled = true;\n }\n else {\n return React.createElement(React.Fragment, null, [].concat(React.createElement(\"input\", this.getDefaultAttributes()), this.portals));\n }\n };\n return RadioButtonComponent;\n}(RadioButton));\nexport { RadioButtonComponent };\napplyMixins(RadioButtonComponent, [ComponentBase, React.Component]);\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { CheckBox } from '@syncfusion/ej2-buttons';\nimport { ComponentBase, applyMixins } from '@syncfusion/ej2-react-base';\n/**\n * Represents the react CheckBox Component.\n * ```ts\n * \n * ```\n */\nvar CheckBoxComponent = /** @class */ (function (_super) {\n __extends(CheckBoxComponent, _super);\n function CheckBoxComponent(props) {\n var _this = _super.call(this, props) || this;\n _this.initRenderCalled = false;\n _this.checkInjectedModules = false;\n _this.statelessTemplateProps = null;\n _this.templateProps = null;\n _this.immediateRender = true;\n _this.portals = [];\n return _this;\n }\n CheckBoxComponent.prototype.render = function () {\n if (((this.element && !this.initRenderCalled) || this.refreshing) && !this.isReactForeceUpdate) {\n _super.prototype.render.call(this);\n this.initRenderCalled = true;\n }\n else {\n return React.createElement(React.Fragment, null, [].concat(React.createElement(\"input\", this.getDefaultAttributes()), this.portals));\n }\n };\n return CheckBoxComponent;\n}(CheckBox));\nexport { CheckBoxComponent };\napplyMixins(CheckBoxComponent, [ComponentBase, React.Component]);\n","/**\n * Constants\n */\n/** @private */\nexport var cellClick = 'cellClick';\n/** @private */\nexport var cellDoubleClick = 'cellDoubleClick';\n/** @private */\nexport var moreEventsClick = 'moreEventsClick';\n/** @private */\nexport var select = 'select';\n/** @private */\nexport var hover = 'hover';\n/** @private */\nexport var actionBegin = 'actionBegin';\n/** @private */\nexport var actionComplete = 'actionComplete';\n/** @private */\nexport var actionFailure = 'actionFailure';\n/** @private */\nexport var navigating = 'navigating';\n/** @private */\nexport var renderCell = 'renderCell';\n/** @private */\nexport var eventClick = 'eventClick';\n/** @private */\nexport var eventRendered = 'eventRendered';\n/** @private */\nexport var dataBinding = 'dataBinding';\n/** @private */\nexport var dataBound = 'dataBound';\n/** @private */\nexport var popupOpen = 'popupOpen';\n/** @private */\nexport var popupClose = 'popupClose';\n/** @private */\nexport var dragStart = 'dragStart';\n/** @private */\nexport var drag = 'drag';\n/** @private */\nexport var dragStop = 'dragStop';\n/** @private */\nexport var resizeStart = 'resizeStart';\n/** @private */\nexport var resizing = 'resizing';\n/** @private */\nexport var resizeStop = 'resizeStop';\n/** @private */\nexport var inlineClick = 'inlineClick';\n/** @private */\nexport var cellSelect = 'cellSelect';\n/**\n * Specifies schedule internal events\n */\n/** @private */\nexport var initialLoad = 'initial-load';\n/** @private */\nexport var initialEnd = 'initial-end';\n/** @private */\nexport var print = 'print';\n/** @private */\nexport var dataReady = 'data-ready';\n/** @private */\nexport var eventsLoaded = 'events-loaded';\n/** @private */\nexport var contentReady = 'content-ready';\n/** @private */\nexport var scroll = 'scroll';\n/** @private */\nexport var virtualScroll = 'virtual-scroll';\n/** @private */\nexport var scrollUiUpdate = 'scroll-ui-update';\n/** @private */\nexport var uiUpdate = 'ui-update';\n/** @private */\nexport var documentClick = 'document-click';\n/** @private */\nexport var cellMouseDown = 'cell-mouse-down';\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { createElement, remove, isNullOrUndefined } from '@syncfusion/ej2-base';\n/**\n * Schedule common utilities\n */\nexport var WEEK_LENGTH = 7;\nexport var DEFAULT_WEEKS = 6;\nexport var MS_PER_DAY = 86400000;\nexport var MS_PER_MINUTE = 60000;\n/**\n * Method to get height from element\n *\n * @param {Element} container Accepts the DOM element\n * @param {string} elementClass Accepts the element class\n * @returns {number} Returns the height of the element\n */\nexport function getElementHeightFromClass(container, elementClass) {\n var height = 0;\n var el = createElement('div', { className: elementClass }).cloneNode();\n el.style.visibility = 'hidden';\n el.style.position = 'absolute';\n container.appendChild(el);\n height = el.getBoundingClientRect().height;\n remove(el);\n return height;\n}\n/**\n * Method to get width from element\n *\n * @param {Element} container Accepts the DOM element\n * @param {string} elementClass Accepts the element class\n * @returns {number} Returns the width of the element\n */\nexport function getElementWidthFromClass(container, elementClass) {\n var width = 0;\n var el = createElement('div', { className: elementClass }).cloneNode();\n el.style.visibility = 'hidden';\n el.style.position = 'absolute';\n container.appendChild(el);\n width = el.getBoundingClientRect().width;\n remove(el);\n return width;\n}\n/**\n * Method to get translateY value\n *\n * @param {HTMLElement | Element} element Accepts the DOM element\n * @returns {number} Returns the translateY value of given element\n */\nexport function getTranslateY(element) {\n var style = getComputedStyle(element);\n return window.WebKitCSSMatrix ?\n new WebKitCSSMatrix(style.webkitTransform).m42 : 0;\n}\n/**\n * Method to get translateX value\n *\n * @param {HTMLElement | Element} element Accepts the DOM element\n * @returns {number} Returns the translateX value of given element\n */\nexport function getTranslateX(element) {\n var style = getComputedStyle(element);\n return window.WebKitCSSMatrix ?\n new WebKitCSSMatrix(style.webkitTransform).m41 : 0;\n}\n/**\n * Method to get week first date\n *\n * @param {Date} date Accepts the date object\n * @param {number} firstDayOfWeek Accepts the first day of week number\n * @returns {Date} Returns the date object\n */\nexport function getWeekFirstDate(date, firstDayOfWeek) {\n var date1 = new Date(date.getTime());\n firstDayOfWeek = (firstDayOfWeek - date1.getDay() + 7 * (-1)) % 7;\n return new Date(date1.setDate(date1.getDate() + firstDayOfWeek));\n}\n/**\n * Method to get week last date\n *\n * @param {Date} date Accepts the date object\n * @param {number} firstDayOfWeek Accepts the first day of week number\n * @returns {Date} Returns the date object\n */\nexport function getWeekLastDate(date, firstDayOfWeek) {\n var weekFirst = getWeekFirstDate(date, firstDayOfWeek);\n var weekLast = new Date(weekFirst.getFullYear(), weekFirst.getMonth(), weekFirst.getDate() + 6);\n return new Date(weekLast.getTime());\n}\n/**\n * Method to get first date of month\n *\n * @param {Date} date Accepts the date object\n * @returns {Date} Returns the date object\n */\nexport function firstDateOfMonth(date) {\n return new Date(date.getFullYear(), date.getMonth(), 1);\n}\n/**\n * Method to get last date of month\n *\n * @param {Date} date Accepts the date object\n * @returns {Date} Returns the date object\n */\nexport function lastDateOfMonth(date) {\n return new Date(date.getFullYear(), date.getMonth() + 1, 0);\n}\n/**\n * Method to get week number\n *\n * @param {Date} date Accepts the date object\n * @returns {number} Returns the week number\n */\nexport function getWeekNumber(date) {\n var date1 = new Date(date.getFullYear(), 0, 1).valueOf();\n var currentDate = new Date(date.getFullYear(), date.getMonth(), date.getDate()).valueOf();\n var dayOfYear = ((currentDate - date1 + MS_PER_DAY) / MS_PER_DAY);\n return Math.ceil(dayOfYear / 7);\n}\n/**\n * Method to get week middle date\n *\n * @param {Date} weekFirst Accepts the week first date object\n * @param {Date} weekLast Accepts the week last date object\n * @returns {Date} Returns the date object\n */\nexport function getWeekMiddleDate(weekFirst, weekLast) {\n return new Date(weekLast.valueOf() - ((weekLast.valueOf() - weekFirst.valueOf()) / 2));\n}\n/**\n * Method to set time to date object\n *\n * @param {Date} date Accepts the date object\n * @param {number} time Accepts the milliseconds\n * @returns {Date} Returns the date object\n */\nexport function setTime(date, time) {\n var tzOffsetBefore = date.getTimezoneOffset();\n var d = new Date(date.getTime() + time);\n var tzOffsetDiff = d.getTimezoneOffset() - tzOffsetBefore;\n date.setTime(d.getTime() + tzOffsetDiff * MS_PER_MINUTE);\n return date;\n}\n/**\n * Method the reset hours in date object\n *\n * @param {Date} date Accepts the date object\n * @returns {Date} Returns the date object\n */\nexport function resetTime(date) {\n return new Date(date.getFullYear(), date.getMonth(), date.getDate());\n}\n/**\n * Method to get milliseconds from date object\n *\n * @param {Date} date Accepts the date object\n * @returns {number} Returns the milliseconds from date object\n */\nexport function getDateInMs(date) {\n var localOffset = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0).getTimezoneOffset();\n var dateOffset = date.getTimezoneOffset();\n var timezoneOffset = dateOffset - localOffset;\n return ((date.getTime() - new Date(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0).getTime())\n - (timezoneOffset * 60 * 1000));\n}\n/**\n * Method to get date count between two dates\n *\n * @param {Date} startDate Accepts the date object\n * @param {Date} endDate Accepts the date object\n * @returns {number} Returns the date count\n */\nexport function getDateCount(startDate, endDate) {\n return Math.ceil((endDate.getTime() - startDate.getTime()) / MS_PER_DAY);\n}\n/**\n * Method to add no of days in date object\n *\n * @param {Date} date Accepts the date object\n * @param {number} noOfDays Accepts the number of days count\n * @returns {Date} Returns the date object\n */\nexport function addDays(date, noOfDays) {\n date = new Date('' + date);\n return new Date(date.setDate(date.getDate() + noOfDays));\n}\n/**\n * Method to add no of months in date object\n *\n * @param {Date} date Accepts the date object\n * @param {number} noOfMonths Accepts the number of month count\n * @returns {Date} Returns the date object\n */\nexport function addMonths(date, noOfMonths) {\n date = new Date('' + date);\n var day = date.getDate();\n date.setDate(1);\n date.setMonth(date.getMonth() + noOfMonths);\n date.setDate(Math.min(day, getMaxDays(date)));\n return date;\n}\n/**\n * Method to add no of years in date object\n *\n * @param {Date} date Accepts the date object\n * @param {number} noOfYears Accepts the number of month count\n * @returns {Date} Returns the date object\n */\nexport function addYears(date, noOfYears) {\n date = new Date('' + date);\n var day = date.getDate();\n date.setDate(1);\n date.setFullYear(date.getFullYear() + noOfYears);\n date.setDate(Math.min(day, getMaxDays(date)));\n return date;\n}\n/**\n * Method to get start and end hours\n *\n * @param {Date} date Accepts the date object\n * @param {Date} startHour Accepts the start hour date object\n * @param {Date} endHour Accepts the end hour date object\n * @returns {Object} Returns the start and end hour date objects\n */\nexport function getStartEndHours(date, startHour, endHour) {\n var date1 = new Date(date.getTime());\n date1.setHours(startHour.getHours());\n date1.setMinutes(startHour.getMinutes());\n date1.setSeconds(startHour.getSeconds());\n var date2 = new Date(date.getTime());\n if (endHour.getHours() === 0) {\n date2 = addDays(date2, 1);\n }\n else {\n date2.setHours(endHour.getHours());\n date2.setMinutes(endHour.getMinutes());\n date2.setSeconds(endHour.getSeconds());\n }\n return { startHour: date1, endHour: date2 };\n}\n/**\n * Method to get month last date\n *\n * @param {Date} date Accepts the date object\n * @returns {number} Returns the month last date\n */\nexport function getMaxDays(date) {\n return lastDateOfMonth(date).getDate();\n}\n/**\n * Method to get days count between two dates\n *\n * @param {Date} startDate Accepts the date object\n * @param {Date} endDate Accepts the date object\n * @returns {number} Returns the days count\n */\nexport function getDaysCount(startDate, endDate) {\n var strTime = resetTime(new Date(startDate));\n var endTime = resetTime(new Date(endDate));\n return Math.round((endTime.getTime() - strTime.getTime()) / MS_PER_DAY);\n}\n/**\n * Method to get date object from date string\n *\n * @param {string} date Accepts the date string\n * @returns {Date} Returns the date object\n */\nexport function getDateFromString(date) {\n return date.indexOf('Date') !== -1 ? new Date(parseInt(date.match(/\\d+/g).toString(), 10)) :\n date.indexOf('T') !== -1 ? new Date(date) : new Date(date.replace(/-/g, '/'));\n}\n/**\n * Method to get scrollbar width\n *\n * @returns {number} Returns the scrollbar width\n * @private\n */\nexport function getScrollBarWidth() {\n var divNode = createElement('div');\n var value = 0;\n divNode.style.cssText = 'width:100px;height: 100px;overflow: scroll;position: absolute;top: -9999px;';\n document.body.appendChild(divNode);\n var ratio = (devicePixelRatio) ? (devicePixelRatio.toFixed(2) === '1.10' || devicePixelRatio <= 1) ?\n Math.ceil(devicePixelRatio % 1) : Math.floor(devicePixelRatio % 1) : 0;\n value = (divNode.offsetWidth - divNode.clientWidth - ratio) | 0;\n document.body.removeChild(divNode);\n return value;\n}\n/**\n * Method to find the index from data collection\n *\n * @param {Object} data Accepts the data as object\n * @param {string} field Accepts the field name\n * @param {string} value Accepts the value name\n * @param {Object} event Accepts the data as object\n * @param {Object[]} resourceCollection Accepts the data collections\n * @returns {number} Returns the index number\n */\n// eslint-disable-next-line max-len\nexport function findIndexInData(data, field, value, event, resourceCollection) {\n for (var i = 0, length_1 = data.length; i < length_1; i++) {\n if (data[parseInt(i.toString(), 10)][\"\" + field] === value) {\n if (event) {\n var field_1 = resourceCollection.slice(-2)[0].field;\n var res = (event[\"\" + field_1] instanceof Array ? event[\"\" + field_1] : [event[\"\" + field_1]]);\n var resData = res.join(',');\n if (resData.includes(data[parseInt(i.toString(), 10)][resourceCollection.slice(-1)[0].groupIDField])) {\n return i;\n }\n }\n else {\n return i;\n }\n }\n }\n return -1;\n}\n/**\n * Method to get element outer height\n *\n * @param {HTMLElement} element Accepts the DOM element\n * @returns {number} Returns the outer height of the given element\n */\nexport function getOuterHeight(element) {\n var style = getComputedStyle(element);\n return element.offsetHeight + (parseInt(style.marginTop, 10) || 0) + (parseInt(style.marginBottom, 10) || 0);\n}\n/**\n * Method to remove child elements\n *\n * @param {HTMLElement | Element} element Accepts the DOM element\n * @returns {void}\n */\nexport function removeChildren(element) {\n var elementChildren = [].slice.call(element.children);\n for (var _i = 0, elementChildren_1 = elementChildren; _i < elementChildren_1.length; _i++) {\n var elementChild = elementChildren_1[_i];\n element.removeChild(elementChild);\n }\n}\n/**\n * Method to check DST is present or not in date object\n *\n * @param {Date} date Accepts the date object\n * @returns {boolean} Returns the boolean value for either DST is present or not\n */\nexport function isDaylightSavingTime(date) {\n var jan = new Date(date.getFullYear(), 0, 1);\n var jul = new Date(date.getFullYear(), 6, 1);\n return date.getTimezoneOffset() < Math.max(jan.getTimezoneOffset(), jul.getTimezoneOffset());\n}\n/**\n * Method to get UTC time value from date\n *\n * @param {Date} date Accepts the date\n * @returns {number} Returns the UTC time value\n */\nexport function getUniversalTime(date) {\n var year = date.getFullYear();\n var month = date.getMonth();\n var day = date.getDate();\n var hours = date.getHours();\n var minutes = date.getMinutes();\n var seconds = date.getSeconds();\n var milliseconds = date.getMilliseconds();\n return Date.UTC(year, month, day, hours, minutes, seconds, milliseconds);\n}\n/**\n * Method to check the device\n *\n * @returns {boolean} Returns the boolean value for either device is present or not.\n */\nexport function isMobile() {\n return window.navigator.userAgent.toLowerCase().indexOf('mobi') > -1;\n}\n/**\n * Method to check the IPad device\n *\n * @returns {boolean} Returns the boolean value for either IPad device is present or not.\n */\nexport function isIPadDevice() {\n return window.navigator.userAgent.toLowerCase().indexOf('ipad') > -1;\n}\n/**\n * Method to capitalize the first word in string\n *\n * @param {string} inputString Accepts the string value\n * @param {string} type Accepts the string type\n * @returns {string} Returns the output string\n */\nexport function capitalizeFirstWord(inputString, type) {\n if (type === 'multiple') {\n inputString = inputString.split(' ').map(function (e) { return e.charAt(0).toLocaleUpperCase() + e.substring(1); }).join(' ');\n }\n else if (type === 'single') {\n if (inputString[0] >= '0' && inputString[0] <= '9') {\n var array = inputString.match(/[a-zA-Z]/);\n inputString = isNullOrUndefined(array) ? inputString :\n inputString.slice(0, array.index) + inputString[array.index].toLocaleUpperCase() + inputString.slice(array.index + 1);\n }\n inputString = inputString[0].toLocaleUpperCase() + inputString.slice(1);\n }\n return inputString;\n}\n","/**\n * CSS Constants\n */\n/** @private */\nexport var ROOT = 'e-schedule';\n/** @private */\nexport var RTL = 'e-rtl';\n/** @private */\nexport var DEVICE_CLASS = 'e-device';\n/** @private */\nexport var MULTI_DRAG = 'e-multi-drag';\n/** @private */\nexport var ICON = 'e-icons';\n/** @private */\nexport var ENABLE_CLASS = 'e-enable';\n/** @private */\nexport var DISABLE_CLASS = 'e-disable';\n/** @private */\nexport var TABLE_CONTAINER_CLASS = 'e-table-container';\n/** @private */\nexport var SCHEDULE_TABLE_CLASS = 'e-schedule-table';\n/** @private */\nexport var ALLDAY_CELLS_CLASS = 'e-all-day-cells';\n/** @private */\nexport var HEADER_POPUP_CLASS = 'e-header-popup';\n/** @private */\nexport var HEADER_CALENDAR_CLASS = 'e-header-calendar';\n/** @private */\nexport var ALLDAY_ROW_CLASS = 'e-all-day-row';\n/** @private */\nexport var CONTENT_TABLE_CLASS = 'e-content-table';\n/** @private */\nexport var WORK_CELLS_CLASS = 'e-work-cells';\n/** @private */\nexport var WORK_HOURS_CLASS = 'e-work-hours';\n/** @private */\nexport var POPUP_OPEN = 'e-popup-open';\n/** @private */\nexport var POPUP_CLOSE = 'e-popup-close';\n/** @private */\nexport var DATE_HEADER_WRAP_CLASS = 'e-date-header-wrap';\n/** @private */\nexport var DATE_HEADER_CONTAINER_CLASS = 'e-date-header-container';\n/** @private */\nexport var HEADER_CELLS_CLASS = 'e-header-cells';\n/** @private */\nexport var HEADER_WEEK_CELLS_CLASS = 'e-header-week-cell';\n/** @private */\nexport var HEADER_MONTH_CELLS_CLASS = 'e-header-month-cell';\n/** @private */\nexport var HEADER_YEAR_CELLS_CLASS = 'e-header-year-cell';\n/** @private */\nexport var WORKDAY_CLASS = 'e-work-days';\n/** @private */\nexport var OTHERMONTH_CLASS = 'e-other-month';\n/** @private */\nexport var CURRENT_DAY_CLASS = 'e-current-day';\n/** @private */\nexport var CURRENTDATE_CLASS = 'e-current-date';\n/** @private */\nexport var CURRENT_PANEL_CLASS = 'e-current-panel';\n/** @private */\nexport var PREVIOUS_PANEL_CLASS = 'e-previous-panel';\n/** @private */\nexport var NEXT_PANEL_CLASS = 'e-next-panel';\n/** @private */\nexport var PREVIOUS_DATE_CLASS = 'e-prev';\n/** @private */\nexport var NEXT_DATE_CLASS = 'e-next';\n/** @private */\nexport var TRANSLATE_CLASS = 'e-translate';\n/** @private */\nexport var LEFT_INDENT_CLASS = 'e-left-indent';\n/** @private */\nexport var LEFT_INDENT_WRAP_CLASS = 'e-left-indent-wrap';\n/** @private */\nexport var EVENT_TABLE_CLASS = 'e-event-table';\n/** @private */\nexport var RESOURCE_LEFT_TD_CLASS = 'e-resource-left-td';\n/** @private */\nexport var RESOURCE_GROUP_CELLS_CLASS = 'e-resource-group-cells';\n/** @private */\nexport var RESOURCE_TEXT_CLASS = 'e-resource-text';\n/** @private */\nexport var RESOURCE_COLUMN_WRAP_CLASS = 'e-resource-column-wrap';\n/** @private */\nexport var RESOURCE_COLUMN_TABLE_CLASS = 'e-resource-column-table';\n/** @private */\nexport var RESOURCE_CHILD_CLASS = 'e-child-node';\n/** @private */\nexport var RESOURCE_PARENT_CLASS = 'e-parent-node';\n/** @private */\nexport var RESOURCE_EXPAND_CLASS = 'e-resource-expand';\n/** @private */\nexport var RESOURCE_COLLAPSE_CLASS = 'e-resource-collapse';\n/** @private */\nexport var RESOURCE_TREE_ICON_CLASS = 'e-resource-tree-icon';\n/** @private */\nexport var RESOURCE_CELLS_CLASS = 'e-resource-cells';\n/** @private */\nexport var TIME_CELLS_WRAP_CLASS = 'e-time-cells-wrap';\n/** @private */\nexport var TIME_CELLS_CLASS = 'e-time-cells';\n/** @private */\nexport var TIME_SLOT_CLASS = 'e-time-slots';\n/** @private */\nexport var ALTERNATE_CELLS_CLASS = 'e-alternate-cells';\n/** @private */\nexport var CURRENT_TIME_CLASS = 'e-current-time';\n/** @private */\nexport var CURRENT_TIMELINE_CLASS = 'e-current-timeline';\n/** @private */\nexport var PREVIOUS_TIMELINE_CLASS = 'e-previous-timeline';\n/** @private */\nexport var HIDE_CHILDS_CLASS = 'e-hide-childs';\n/** @private */\nexport var SCROLL_CONTAINER_CLASS = 'e-scroll-container';\n/** @private */\nexport var WRAPPER_CLASS = 'e-wrapper';\n/** @private */\nexport var TIMELINE_WRAPPER_CLASS = 'e-timeline-wrapper';\n/** @private */\nexport var APPOINTMENT_WRAPPER_CLASS = 'e-appointment-wrapper';\n/** @private */\nexport var DAY_WRAPPER_CLASS = 'e-day-wrapper';\n/** @private */\nexport var TOOLBAR_CONTAINER = 'e-schedule-toolbar-container';\n/** @private */\nexport var RESOURCE_TOOLBAR_CONTAINER = 'e-schedule-resource-toolbar-container';\n/** @private */\nexport var HEADER_TOOLBAR = 'e-schedule-toolbar';\n/** @private */\nexport var RESOURCE_HEADER_TOOLBAR = 'e-schedule-resource-toolbar';\n/** @private */\nexport var SELECTED_CELL_CLASS = 'e-selected-cell';\n/** @private */\nexport var WEEK_NUMBER_WRAPPER_CLASS = 'e-week-number-wrapper';\n/** @private */\nexport var WEEK_NUMBER_CLASS = 'e-week-number';\n/** @private */\nexport var APPOINTMENT_WRAP_CLASS = 'e-appointment-wrap';\n/** @private */\nexport var WRAPPER_CONTAINER_CLASS = 'e-wrapper-container';\n/** @private */\nexport var APPOINTMENT_CONTAINER_CLASS = 'e-appointment-container';\n/** @private */\nexport var APPOINTMENT_CLASS = 'e-appointment';\n/** @private */\nexport var BLOCK_APPOINTMENT_CLASS = 'e-block-appointment';\n/** @private */\nexport var BLOCK_INDICATOR_CLASS = 'e-block-indicator';\n/** @private */\nexport var APPOINTMENT_BORDER = 'e-appointment-border';\n/** @private */\nexport var APPOINTMENT_DETAILS = 'e-appointment-details';\n/** @private */\nexport var SUBJECT_WRAP = 'e-subject-wrap';\n/** @private */\nexport var RESOURCE_NAME = 'e-resource-name';\n/** @private */\nexport var APPOINTMENT_TIME = 'e-time';\n/** @private */\nexport var TABLE_WRAP_CLASS = 'e-table-wrap';\n/** @private */\nexport var OUTER_TABLE_CLASS = 'e-outer-table';\n/** @private */\nexport var CONTENT_WRAP_CLASS = 'e-content-wrap';\n/** @private */\nexport var VIRTUAL_TRACK_CLASS = 'e-virtual-track';\n/** @private */\nexport var AGENDA_CELLS_CLASS = 'e-agenda-cells';\n/** @private */\nexport var AGENDA_CURRENT_DAY_CLASS = 'e-current-day';\n/** @private */\nexport var AGENDA_SELECTED_CELL = 'e-active-appointment-agenda';\n/** @private */\nexport var MONTH_HEADER_CLASS = 'e-month-header';\n/** @private */\nexport var AGENDA_HEADER_CLASS = 'e-day-date-header';\n/** @private */\nexport var AGENDA_RESOURCE_CLASS = 'e-resource-column';\n/** @private */\nexport var AGENDA_DATE_CLASS = 'e-date-column';\n/** @private */\nexport var NAVIGATE_CLASS = 'e-navigate';\n/** @private */\nexport var DATE_HEADER_CLASS = 'e-date-header';\n/** @private */\nexport var AGENDA_DAY_BORDER_CLASS = 'e-day-border';\n/** @private */\nexport var DATE_BORDER_CLASS = 'e-date-border';\n/** @private */\nexport var AGENDA_DAY_PADDING_CLASS = 'e-day-padding';\n/** @private */\nexport var DATE_TIME_CLASS = 'e-date-time';\n/** @private */\nexport var DATE_TIME_WRAPPER_CLASS = 'e-date-time-wrapper';\n/** @private */\nexport var AGENDA_EMPTY_EVENT_CLASS = 'e-empty-event';\n/** @private */\nexport var AGENDA_NO_EVENT_CLASS = 'e-no-event';\n/** @private */\nexport var APPOINTMENT_INDICATOR_CLASS = 'e-appointment-indicator';\n/** @private */\nexport var EVENT_INDICATOR_CLASS = 'e-indicator';\n/** @private */\nexport var EVENT_ICON_UP_CLASS = 'e-up-icon';\n/** @private */\nexport var EVENT_ICON_DOWN_CLASS = 'e-down-icon';\n/** @private */\nexport var EVENT_ICON_LEFT_CLASS = 'e-left-icon';\n/** @private */\nexport var EVENT_ICON_RIGHT_CLASS = 'e-right-icon';\n/** @private */\nexport var EVENT_ACTION_CLASS = 'e-event-action';\n/** @private */\nexport var NEW_EVENT_CLASS = 'e-new-event';\n/** @private */\nexport var CLONE_ELEMENT_CLASS = 'e-schedule-event-clone';\n/** @private */\nexport var MONTH_CLONE_ELEMENT_CLASS = 'e-month-event';\n/** @private */\nexport var CLONE_TIME_INDICATOR_CLASS = 'e-clone-time-indicator';\n/** @private */\nexport var DRAG_CLONE_CLASS = 'e-drag-clone';\n/** @private */\nexport var EVENT_RESIZE_CLASS = 'e-event-resize';\n/** @private */\nexport var RESIZE_CLONE_CLASS = 'e-resize-clone';\n/** @private */\nexport var LEFT_RESIZE_HANDLER = 'e-left-handler';\n/** @private */\nexport var RIGHT_RESIZE_HANDLER = 'e-right-handler';\n/** @private */\nexport var TOP_RESIZE_HANDLER = 'e-top-handler';\n/** @private */\nexport var BOTTOM_RESIZE_HANDLER = 'e-bottom-handler';\n/** @private */\nexport var EVENT_RECURRENCE_ICON_CLASS = 'e-recurrence-icon';\n/** @private */\nexport var EVENT_RECURRENCE_EDIT_ICON_CLASS = 'e-recurrence-edit-icon';\n/** @private */\nexport var HEADER_ROW_CLASS = 'e-header-row';\n/** @private */\nexport var ALLDAY_APPOINTMENT_WRAPPER_CLASS = 'e-all-day-appointment-wrapper';\n/** @private */\nexport var ALLDAY_APPOINTMENT_CLASS = 'e-all-day-appointment';\n/** @private */\nexport var EVENT_COUNT_CLASS = 'e-appointment-hide';\n/** @private */\nexport var ROW_COUNT_WRAPPER_CLASS = 'e-row-count-wrapper';\n/** @private */\nexport var ALLDAY_APPOINTMENT_SECTION_CLASS = 'e-all-day-appointment-section';\n/** @private */\nexport var APPOINTMENT_ROW_EXPAND_CLASS = 'e-appointment-expand';\n/** @private */\nexport var APPOINTMENT_ROW_COLLAPSE_CLASS = 'e-appointment-collapse';\n/** @private */\nexport var MORE_INDICATOR_CLASS = 'e-more-indicator';\n/** @private */\nexport var CELL_POPUP_CLASS = 'e-cell-popup';\n/** @private */\nexport var EVENT_POPUP_CLASS = 'e-event-popup';\n/** @private */\nexport var MULTIPLE_EVENT_POPUP_CLASS = 'e-multiple-event-popup';\n/** @private */\nexport var POPUP_HEADER_CLASS = 'e-popup-header';\n/** @private */\nexport var POPUP_HEADER_ICON_WRAPPER = 'e-header-icon-wrapper';\n/** @private */\nexport var POPUP_CONTENT_CLASS = 'e-popup-content';\n/** @private */\nexport var POPUP_FOOTER_CLASS = 'e-popup-footer';\n/** @private */\nexport var DATE_TIME_DETAILS_CLASS = 'e-date-time-details';\n/** @private */\nexport var RECURRENCE_SUMMARY_CLASS = 'e-recurrence-summary';\n/** @private */\nexport var QUICK_POPUP_EVENT_DETAILS_CLASS = 'e-event-details';\n/** @private */\nexport var EVENT_CREATE_CLASS = 'e-event-create';\n/** @private */\nexport var EDIT_EVENT_CLASS = 'e-event-edit';\n/** @private */\nexport var DELETE_EVENT_CLASS = 'e-event-delete';\n/** @private */\nexport var TEXT_ELLIPSIS = 'e-text-ellipsis';\n/** @private */\nexport var MORE_POPUP_WRAPPER_CLASS = 'e-more-popup-wrapper';\n/** @private */\nexport var MORE_EVENT_POPUP_CLASS = 'e-more-event-popup';\n/** @private */\nexport var MORE_EVENT_HEADER_CLASS = 'e-more-event-header';\n/** @private */\nexport var MORE_EVENT_DATE_HEADER_CLASS = 'e-more-event-date-header';\n/** @private */\nexport var MORE_EVENT_HEADER_DAY_CLASS = 'e-header-day';\n/** @private */\nexport var MORE_EVENT_HEADER_DATE_CLASS = 'e-header-date';\n/** @private */\nexport var MORE_EVENT_CLOSE_CLASS = 'e-more-event-close';\n/** @private */\nexport var MORE_EVENT_CONTENT_CLASS = 'e-more-event-content';\n/** @private */\nexport var MORE_EVENT_WRAPPER_CLASS = 'e-more-appointment-wrapper';\n/** @private */\nexport var QUICK_DIALOG_CLASS = 'e-quick-dialog';\n/** @private */\nexport var QUICK_DIALOG_OCCURRENCE_CLASS = 'e-quick-dialog-occurrence-event';\n/** @private */\nexport var QUICK_DIALOG_SERIES_CLASS = 'e-quick-dialog-series-event';\n/** @private */\nexport var QUICK_DIALOG_FOLLOWING_EVENTS_CLASS = 'e-quick-dialog-following-events';\n/** @private */\nexport var FOLLOWING_EVENTS_DIALOG = 'e-following-events-dialog';\n/** @private */\nexport var QUICK_DIALOG_DELETE_CLASS = 'e-quick-dialog-delete';\n/** @private */\nexport var QUICK_DIALOG_CANCEL_CLASS = 'e-quick-dialog-cancel';\n/** @private */\nexport var QUICK_DIALOG_ALERT_OK = 'e-quick-alertok';\n/** @private */\nexport var QUICK_DIALOG_ALERT_CANCEL = 'e-quick-alertcancel';\n/** @private */\nexport var QUICK_DIALOG_ALERT_FOLLOWING = 'e-quick-alertfollowing';\n/** @private */\nexport var QUICK_DIALOG_ALERT_BTN_CLASS = 'e-quick-dialog-alert-btn';\n/** @private */\nexport var EVENT_WINDOW_DIALOG_CLASS = 'e-schedule-dialog';\n/** @private */\nexport var FORM_CONTAINER_CLASS = 'e-form-container';\n/** @private */\nexport var FORM_CLASS = 'e-schedule-form';\n/** @private */\nexport var EVENT_WINDOW_ALLDAY_TZ_DIV_CLASS = 'e-all-day-time-zone-row';\n/** @private */\nexport var EVENT_WINDOW_ALL_DAY_CLASS = 'e-all-day';\n/** @private */\nexport var TIME_ZONE_CLASS = 'e-time-zone';\n/** @private */\nexport var TIME_ZONE_ICON_CLASS = 'e-time-zone-icon';\n/** @private */\nexport var TIME_ZONE_DETAILS_CLASS = 'e-time-zone-details';\n/** @private */\nexport var EVENT_WINDOW_REPEAT_DIV_CLASS = 'e-repeat-parent-row';\n/** @private */\nexport var EVENT_WINDOW_REPEAT_CLASS = 'e-repeat';\n/** @private */\nexport var EVENT_WINDOW_TITLE_LOCATION_DIV_CLASS = 'e-title-location-row';\n/** @private */\nexport var SUBJECT_CLASS = 'e-subject';\n/** @private */\nexport var LOCATION_CLASS = 'e-location';\n/** @private */\nexport var LOCATION_ICON_CLASS = 'e-location-icon';\n/** @private */\nexport var LOCATION_DETAILS_CLASS = 'e-location-details';\n/** @private */\nexport var EVENT_WINDOW_START_END_DIV_CLASS = 'e-start-end-row';\n/** @private */\nexport var EVENT_WINDOW_START_CLASS = 'e-start';\n/** @private */\nexport var EVENT_WINDOW_END_CLASS = 'e-end';\n/** @private */\nexport var EVENT_WINDOW_RESOURCES_DIV_CLASS = 'e-resources-row';\n/** @private */\nexport var DESCRIPTION_CLASS = 'e-description';\n/** @private */\nexport var DESCRIPTION_ICON_CLASS = 'e-description-icon';\n/** @private */\nexport var DESCRIPTION_DETAILS_CLASS = 'e-description-details';\n/** @private */\nexport var EVENT_WINDOW_TIME_ZONE_DIV_CLASS = 'e-time-zone-row';\n/** @private */\nexport var EVENT_WINDOW_START_TZ_CLASS = 'e-start-time-zone';\n/** @private */\nexport var EVENT_WINDOW_END_TZ_CLASS = 'e-end-time-zone';\n/** @private */\nexport var EVENT_WINDOW_BACK_ICON_CLASS = 'e-back-icon';\n/** @private */\nexport var EVENT_WINDOW_SAVE_ICON_CLASS = 'e-save-icon';\n/** @private */\nexport var EVENT_WINDOW_CANCEL_BUTTON_CLASS = 'e-event-cancel';\n/** @private */\nexport var EVENT_WINDOW_SAVE_BUTTON_CLASS = 'e-event-save';\n/** @private */\nexport var EVENT_WINDOW_DIALOG_PARENT_CLASS = 'e-dialog-parent';\n/** @private */\nexport var EVENT_WINDOW_TITLE_TEXT_CLASS = 'e-title-text';\n/** @private */\nexport var EVENT_WINDOW_ICON_DISABLE_CLASS = 'e-icon-disable';\n/** @private */\nexport var EDIT_CLASS = 'e-edit';\n/** @private */\nexport var EDIT_ICON_CLASS = 'e-edit-icon';\n/** @private */\nexport var DELETE_CLASS = 'e-delete';\n/** @private */\nexport var DELETE_ICON_CLASS = 'e-delete-icon';\n/** @private */\nexport var CLOSE_CLASS = 'e-close';\n/** @private */\nexport var CLOSE_ICON_CLASS = 'e-close-icon';\n/** @private */\nexport var ERROR_VALIDATION_CLASS = 'e-schedule-error';\n/** @private */\nexport var EVENT_TOOLTIP_ROOT_CLASS = 'e-schedule-event-tooltip';\n/** @private */\nexport var ALLDAY_ROW_ANIMATE_CLASS = 'e-animate';\n/** @private */\nexport var TIMESCALE_DISABLE = 'e-timescale-disable';\n/** @private */\nexport var DISABLE_DATE = 'e-disable-date';\n/** @private */\nexport var HIDDEN_CLASS = 'e-hidden';\n/** @private */\nexport var DISABLE_DATES = 'e-disable-dates';\n/** @private */\nexport var POPUP_WRAPPER_CLASS = 'e-quick-popup-wrapper';\n/** @private */\nexport var POPUP_TABLE_CLASS = 'e-popup-table';\n/** @private */\nexport var RESOURCE_MENU = 'e-resource-menu';\n/** @private */\nexport var RESOURCE_MENU_ICON = 'e-icon-menu';\n/** @private */\nexport var RESOURCE_LEVEL_TITLE = 'e-resource-level-title';\n/** @private */\nexport var RESOURCE_TREE = 'e-resource-tree';\n/** @private */\nexport var RESOURCE_TREE_POPUP_OVERLAY = 'e-resource-tree-popup-overlay';\n/** @private */\nexport var RESOURCE_TREE_POPUP = 'e-resource-tree-popup';\n/** @private */\nexport var RESOURCE_CLASS = 'e-resource';\n/** @private */\nexport var RESOURCE_ICON_CLASS = 'e-resource-icon';\n/** @private */\nexport var RESOURCE_DETAILS_CLASS = 'e-resource-details';\n/** @private */\nexport var DATE_TIME_ICON_CLASS = 'e-date-time-icon';\n/** @private */\nexport var VIRTUAL_SCROLL_CLASS = 'e-virtual-scroll';\n/** @private */\nexport var ICON_DISABLE_CLASS = 'e-icon-disable';\n/** @private */\nexport var AUTO_HEIGHT = 'e-auto-height';\n/** @private */\nexport var IGNORE_WHITESPACE = 'e-ignore-whitespace';\n/** @private */\nexport var EVENT_TEMPLATE = 'e-template';\n/** @private */\nexport var READ_ONLY = 'e-read-only';\n/** @private */\nexport var MONTH_HEADER_WRAPPER = 'e-month-header-wrapper';\n/** @private */\nexport var INLINE_SUBJECT_CLASS = 'e-inline-subject';\n/** @private */\nexport var INLINE_APPOINTMENT_CLASS = 'e-inline-appointment';\n/** @hidden */\nexport var SCROLL_HIDDEN = 'e-scroll-hidden';\n/** @private */\nexport var ALLDAY_APPOINTMENT_SCROLL = 'e-all-day-scroll';\n/** @private */\nexport var ALLDAY_APPOINTMENT_AUTO = 'e-all-day-auto';\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { isNullOrUndefined, createElement, remove, closest, addClass, removeClass, extend, append } from '@syncfusion/ej2-base';\nimport { Toolbar } from '@syncfusion/ej2-navigations';\nimport { Calendar } from '@syncfusion/ej2-calendars';\nimport { Popup } from '@syncfusion/ej2-popups';\nimport * as events from '../base/constant';\nimport * as util from '../base/util';\nimport * as cls from '../base/css-constant';\n/**\n * Header module\n */\nvar HeaderRenderer = /** @class */ (function () {\n function HeaderRenderer(parent) {\n this.parent = parent;\n this.l10n = this.parent.localeObj;\n this.renderHeader();\n this.addEventListener();\n }\n HeaderRenderer.prototype.addEventListener = function () {\n this.parent.on(events.documentClick, this.closeHeaderPopup, this);\n };\n HeaderRenderer.prototype.removeEventListener = function () {\n this.parent.off(events.documentClick, this.closeHeaderPopup);\n };\n HeaderRenderer.prototype.closeHeaderPopup = function (e) {\n var closestEle = closest(e.event.target, '.e-date-range,.e-header-popup,.e-day,.e-selected');\n var closestPop = closest(e.event.target, '.e-hor-nav,.e-toolbar-pop');\n var contentWrap = this.parent.element.querySelector('.' + cls.CONTENT_WRAP_CLASS);\n if (this.parent.isAdaptive) {\n if (!isNullOrUndefined(closestPop) && (closestPop.classList.contains('e-toolbar-pop') ||\n closestPop.classList.contains('e-hor-nav')) && !(closestPop.classList.contains('e-hor-nav') &&\n this.element.querySelector('.e-toolbar-pop').classList.contains(cls.POPUP_OPEN))) {\n addClass([contentWrap], cls.SCROLL_HIDDEN);\n }\n else {\n removeClass([contentWrap], cls.SCROLL_HIDDEN);\n var popupEle = this.element.querySelector('.e-toolbar-pop');\n if (!isNullOrUndefined(popupEle)) {\n var popupObj = popupEle.ej2_instances[0];\n if (popupObj && !(!isNullOrUndefined(closestPop) && closestPop.classList.contains('e-hor-nav') &&\n popupEle.classList.contains(cls.POPUP_OPEN))) {\n popupObj.hide();\n }\n }\n }\n }\n if (!isNullOrUndefined(closestEle)) {\n return;\n }\n this.hideHeaderPopup();\n };\n HeaderRenderer.prototype.hideHeaderPopup = function () {\n if (this.headerPopup) {\n this.headerPopup.hide();\n }\n };\n HeaderRenderer.prototype.renderHeader = function () {\n this.element = createElement('div', { className: cls.TOOLBAR_CONTAINER });\n var toolbarEle = createElement('div', { className: cls.HEADER_TOOLBAR });\n this.element.appendChild(toolbarEle);\n this.parent.element.insertBefore(this.element, this.parent.element.firstElementChild);\n this.renderToolbar();\n };\n HeaderRenderer.prototype.renderToolbar = function () {\n var _this = this;\n var items = this.getItems();\n this.parent.trigger(events.actionBegin, { requestType: 'toolbarItemRendering', items: items }, function (args) {\n _this.toolbarObj = new Toolbar({\n items: args.items,\n overflowMode: 'Popup',\n clicked: _this.toolbarClickHandler.bind(_this),\n enableRtl: _this.parent.enableRtl,\n enableHtmlSanitizer: _this.parent.enableHtmlSanitizer,\n locale: _this.parent.locale\n });\n _this.toolbarObj.appendTo(_this.parent.element.querySelector('.' + cls.HEADER_TOOLBAR));\n var prevNavEle = _this.toolbarObj.element.querySelector('.e-prev');\n if (prevNavEle) {\n prevNavEle.firstElementChild.setAttribute('title', _this.l10n.getConstant('previous'));\n }\n var nextNavEle = _this.toolbarObj.element.querySelector('.e-next');\n if (nextNavEle) {\n nextNavEle.firstElementChild.setAttribute('title', _this.l10n.getConstant('next'));\n }\n _this.updateAddIcon();\n _this.updateActiveView();\n _this.parent.trigger(events.actionComplete, { requestType: 'toolBarItemRendered', items: _this.toolbarObj.items });\n });\n };\n HeaderRenderer.prototype.updateItems = function () {\n var _this = this;\n if (this.toolbarObj) {\n var items = this.getItems();\n this.parent.trigger(events.actionBegin, { requestType: 'toolbarItemRendering', items: items }, function (args) {\n _this.toolbarObj.items = args.items;\n _this.toolbarObj.dataBind();\n _this.parent.trigger(events.actionComplete, { requestType: 'toolBarItemRendered', items: _this.toolbarObj.items });\n });\n }\n };\n HeaderRenderer.prototype.getPopUpRelativeElement = function () {\n if (this.parent.isAdaptive) {\n return this.toolbarObj.element;\n }\n return this.element.querySelector('.e-date-range');\n };\n HeaderRenderer.prototype.setDayOfWeek = function (index) {\n if (this.headerCalendar) {\n this.headerCalendar.firstDayOfWeek = index;\n this.headerCalendar.dataBind();\n }\n };\n HeaderRenderer.prototype.setCalendarDate = function (date) {\n if (this.headerCalendar) {\n this.headerCalendar.value = date;\n this.headerCalendar.dataBind();\n }\n };\n HeaderRenderer.prototype.setCalendarMinMaxDate = function () {\n if (this.headerCalendar) {\n this.headerCalendar.min = this.parent.minDate;\n this.headerCalendar.max = this.parent.maxDate;\n this.headerCalendar.dataBind();\n }\n };\n HeaderRenderer.prototype.getCalendarView = function () {\n if (['Month', 'MonthAgenda', 'TimelineMonth'].indexOf(this.parent.currentView) > -1) {\n return 'Year';\n }\n else if (['Year', 'TimelineYear'].indexOf(this.parent.currentView) > -1) {\n return 'Decade';\n }\n else {\n return 'Month';\n }\n };\n HeaderRenderer.prototype.setCalendarView = function () {\n if (this.headerCalendar) {\n var calendarView = this.getCalendarView();\n this.headerCalendar.depth = calendarView;\n this.headerCalendar.start = calendarView;\n this.headerCalendar.refresh();\n }\n };\n HeaderRenderer.prototype.updateActiveView = function () {\n var selEle = [].slice.call(this.toolbarObj.element.querySelectorAll('.e-views'));\n removeClass(selEle, ['e-active-view']);\n if (selEle.length > 0 && selEle[this.parent.viewIndex]) {\n addClass([selEle[this.parent.viewIndex]], ['e-active-view']);\n }\n };\n HeaderRenderer.prototype.updateDateRange = function (date) {\n var selEle = this.toolbarObj.element.querySelector('.e-date-range');\n if (!selEle) {\n return;\n }\n var textEle = selEle.querySelector('.e-tbar-btn-text');\n if (this.parent.activeViewOptions.dateRangeTemplate) {\n textEle.textContent = '';\n var args = {\n startDate: this.parent.activeView.getStartDate(),\n endDate: this.parent.activeView.getEndDate(), currentView: this.parent.currentView\n };\n var viewName = this.parent.activeViewOptions.dateRangeTemplateName;\n var templateId = this.parent.element.id + '_' + viewName + 'dateRangeTemplate';\n var dateTemplate = [].slice.call(this.parent.getDateRangeTemplate()(args, this.parent, 'dateRangeTemplate', templateId, false));\n append(dateTemplate, textEle);\n }\n else {\n var text = this.parent.activeView.getDateRangeText(date);\n selEle.firstElementChild.setAttribute('aria-label', text);\n textEle.textContent = text;\n }\n this.refresh();\n };\n HeaderRenderer.prototype.refresh = function () {\n if (this.toolbarObj) {\n this.toolbarObj.refreshOverflow();\n }\n };\n HeaderRenderer.prototype.updateAddIcon = function () {\n var addEle = this.toolbarObj.element.querySelector('.e-add');\n if (addEle) {\n if (!this.parent.eventSettings.allowAdding) {\n addClass([addEle], cls.HIDDEN_CLASS);\n }\n else {\n removeClass([addEle], cls.HIDDEN_CLASS);\n }\n }\n };\n HeaderRenderer.prototype.getDateRangeText = function () {\n var dateString = this.parent.globalize.formatDate(this.parent.selectedDate, {\n format: 'MMMM y', calendar: this.parent.getCalendarMode()\n });\n return util.capitalizeFirstWord(dateString, 'single');\n };\n HeaderRenderer.prototype.getItems = function () {\n var items = [];\n items.push({\n align: 'Left', prefixIcon: 'e-icon-prev', tooltipText: 'Previous', overflow: 'Show',\n cssClass: 'e-prev', htmlAttributes: { 'role': 'navigation' }\n });\n items.push({\n align: 'Left', prefixIcon: 'e-icon-next', tooltipText: 'Next', overflow: 'Show',\n cssClass: 'e-next', htmlAttributes: { 'role': 'navigation' }\n });\n items.push({\n align: 'Left', text: this.getDateRangeText(), suffixIcon: 'e-icon-down-arrow', cssClass: 'e-date-range',\n overflow: 'Show',\n htmlAttributes: { 'aria-atomic': 'true', 'aria-live': 'assertive', 'role': 'navigation' }\n });\n if (this.parent.isAdaptive || this.parent.enableAdaptiveUI) {\n items.push({\n align: 'Right', showAlwaysInPopup: (this.parent.isAdaptive || this.parent.enableAdaptiveUI), prefixIcon: 'e-icon-add',\n text: this.l10n.getConstant('newEvent'), cssClass: 'e-add', overflow: 'Show'\n });\n items.push({\n align: 'Right', showAlwaysInPopup: (this.parent.isAdaptive || this.parent.enableAdaptiveUI), prefixIcon: 'e-icon-today',\n text: this.l10n.getConstant('today'), cssClass: 'e-today', overflow: 'Show'\n });\n }\n else {\n items.push({\n align: 'Right', showAlwaysInPopup: (this.parent.isAdaptive || this.parent.enableAdaptiveUI), prefixIcon: 'e-icon-day',\n text: this.l10n.getConstant('today'), cssClass: 'e-today', overflow: 'Show'\n });\n if (this.parent.views.length > 1) {\n items.push({ align: 'Right', type: 'Separator', cssClass: 'e-schedule-seperator' });\n }\n }\n if (this.parent.views.length > 1) {\n for (var _i = 0, _a = this.parent.views; _i < _a.length; _i++) {\n var item = _a[_i];\n items.push(this.getItemObject(item));\n }\n }\n return items;\n };\n HeaderRenderer.prototype.getItemObject = function (item) {\n var viewName;\n var displayName;\n if (typeof (item) === 'string') {\n viewName = item.toLowerCase();\n displayName = null;\n }\n else {\n viewName = item.option.toLowerCase();\n displayName = item.displayName;\n }\n var view;\n var orientationClass;\n var isItemInsidePopup = this.parent.isAdaptive || this.parent.enableAdaptiveUI;\n switch (viewName) {\n case 'day':\n view = {\n align: 'Right', showAlwaysInPopup: isItemInsidePopup, prefixIcon: 'e-icon-day',\n text: displayName || this.l10n.getConstant('day'), cssClass: 'e-views e-day'\n };\n break;\n case 'week':\n view = {\n align: 'Right', showAlwaysInPopup: isItemInsidePopup, prefixIcon: 'e-icon-week',\n text: displayName || this.l10n.getConstant('week'), cssClass: 'e-views e-week'\n };\n break;\n case 'workweek':\n view = {\n align: 'Right', showAlwaysInPopup: isItemInsidePopup, prefixIcon: 'e-icon-workweek',\n text: displayName || this.l10n.getConstant('workWeek'), cssClass: 'e-views e-work-week'\n };\n break;\n case 'month':\n view = {\n align: 'Right', showAlwaysInPopup: isItemInsidePopup, prefixIcon: 'e-icon-month',\n text: displayName || this.l10n.getConstant('month'), cssClass: 'e-views e-month'\n };\n break;\n case 'year':\n view = {\n align: 'Right', showAlwaysInPopup: isItemInsidePopup, prefixIcon: 'e-icon-year',\n text: displayName || this.l10n.getConstant('year'), cssClass: 'e-views e-year'\n };\n break;\n case 'agenda':\n view = {\n align: 'Right', showAlwaysInPopup: isItemInsidePopup, prefixIcon: 'e-icon-agenda',\n text: displayName || this.l10n.getConstant('agenda'), cssClass: 'e-views e-agenda'\n };\n break;\n case 'monthagenda':\n view = {\n align: 'Right', showAlwaysInPopup: isItemInsidePopup, prefixIcon: 'e-icon-month-agenda',\n text: displayName || this.l10n.getConstant('monthAgenda'), cssClass: 'e-views e-month-agenda'\n };\n break;\n case 'timelineday':\n view = {\n align: 'Right', showAlwaysInPopup: isItemInsidePopup, prefixIcon: 'e-icon-timeline-day',\n text: displayName || this.l10n.getConstant('timelineDay'), cssClass: 'e-views e-timeline-day'\n };\n break;\n case 'timelineweek':\n view = {\n align: 'Right', showAlwaysInPopup: isItemInsidePopup, prefixIcon: 'e-icon-timeline-week',\n text: displayName || this.l10n.getConstant('timelineWeek'), cssClass: 'e-views e-timeline-week'\n };\n break;\n case 'timelineworkweek':\n view = {\n align: 'Right', showAlwaysInPopup: isItemInsidePopup, prefixIcon: 'e-icon-timeline-workweek',\n text: displayName || this.l10n.getConstant('timelineWorkWeek'), cssClass: 'e-views e-timeline-work-week'\n };\n break;\n case 'timelinemonth':\n view = {\n align: 'Right', showAlwaysInPopup: isItemInsidePopup, prefixIcon: 'e-icon-timeline-month',\n text: displayName || this.l10n.getConstant('timelineMonth'), cssClass: 'e-views e-timeline-month'\n };\n break;\n case 'timelineyear':\n orientationClass = (item.orientation === 'Vertical') ? 'vertical' : 'horizontal';\n view = {\n align: 'Right', showAlwaysInPopup: isItemInsidePopup, prefixIcon: 'e-icon-timeline-year-' + orientationClass,\n text: displayName || this.l10n.getConstant('timelineYear'), cssClass: 'e-views e-timeline-year'\n };\n break;\n }\n return view;\n };\n HeaderRenderer.prototype.renderHeaderPopup = function () {\n var headerPopupEle = createElement('div', { className: cls.HEADER_POPUP_CLASS });\n var headerCalendarEle = createElement('div', { className: cls.HEADER_CALENDAR_CLASS });\n headerPopupEle.appendChild(headerCalendarEle);\n this.element.appendChild(headerPopupEle);\n this.headerPopup = new Popup(headerPopupEle, {\n actionOnScroll: 'hide',\n targetType: 'relative',\n relateTo: this.getPopUpRelativeElement(),\n position: { X: 'left', Y: 'bottom' },\n enableRtl: this.parent.enableRtl\n });\n var calendarView = this.getCalendarView();\n var isDisplayDate = this.parent.currentView === 'Month' &&\n !isNullOrUndefined(this.parent.activeViewOptions.displayDate) && !this.hasSelectedDate();\n this.headerCalendar = new Calendar({\n value: isDisplayDate ? this.parent.activeViewOptions.displayDate : this.parent.selectedDate,\n min: this.parent.minDate,\n max: this.parent.maxDate,\n firstDayOfWeek: this.parent.activeViewOptions.firstDayOfWeek,\n enableRtl: this.parent.enableRtl,\n locale: this.parent.locale,\n depth: calendarView,\n start: calendarView,\n calendarMode: this.parent.calendarMode,\n change: this.calendarChange.bind(this)\n });\n this.setCalendarTimezone();\n this.headerCalendar.appendTo(headerCalendarEle);\n this.headerPopup.hide();\n };\n HeaderRenderer.prototype.calendarChange = function (args) {\n if (args.value.getTime() !== this.parent.selectedDate.getTime()) {\n var calendarDate = util.resetTime(new Date(args.value));\n this.parent.changeDate(calendarDate);\n }\n this.headerPopup.hide();\n };\n HeaderRenderer.prototype.setCalendarTimezone = function () {\n if (this.headerCalendar) {\n this.headerCalendar.timezone = this.parent.timezone || this.parent.tzModule.getLocalTimezoneName();\n }\n };\n HeaderRenderer.prototype.calculateViewIndex = function (args) {\n var target = closest(args.originalEvent.target, '.e-views');\n var views = [].slice.call(this.element.querySelectorAll('.e-views'));\n return views.indexOf(target);\n };\n HeaderRenderer.prototype.toolbarClickHandler = function (args) {\n if (!args.item) {\n return;\n }\n var strClass = args.item.cssClass.replace('e-views ', '');\n var data;\n var isSameTime;\n var currentTime;\n switch (strClass) {\n case 'e-date-range':\n if (!this.headerPopup) {\n this.renderHeaderPopup();\n }\n if (this.headerPopup.element.classList.contains(cls.POPUP_OPEN)) {\n this.headerPopup.hide();\n }\n else {\n this.headerPopup.show();\n }\n break;\n case 'e-day':\n this.parent.changeView('Day', args.originalEvent, undefined, this.calculateViewIndex(args));\n break;\n case 'e-week':\n this.parent.changeView('Week', args.originalEvent, undefined, this.calculateViewIndex(args));\n break;\n case 'e-work-week':\n this.parent.changeView('WorkWeek', args.originalEvent, undefined, this.calculateViewIndex(args));\n break;\n case 'e-month':\n this.parent.changeView('Month', args.originalEvent, undefined, this.calculateViewIndex(args));\n break;\n case 'e-year':\n this.parent.changeView('Year', args.originalEvent, undefined, this.calculateViewIndex(args));\n break;\n case 'e-agenda':\n this.parent.changeView('Agenda', args.originalEvent, undefined, this.calculateViewIndex(args));\n break;\n case 'e-month-agenda':\n this.parent.changeView('MonthAgenda', args.originalEvent, undefined, this.calculateViewIndex(args));\n break;\n case 'e-timeline-day':\n this.parent.changeView('TimelineDay', args.originalEvent, undefined, this.calculateViewIndex(args));\n break;\n case 'e-timeline-week':\n this.parent.changeView('TimelineWeek', args.originalEvent, undefined, this.calculateViewIndex(args));\n break;\n case 'e-timeline-work-week':\n this.parent.changeView('TimelineWorkWeek', args.originalEvent, undefined, this.calculateViewIndex(args));\n break;\n case 'e-timeline-month':\n this.parent.changeView('TimelineMonth', args.originalEvent, undefined, this.calculateViewIndex(args));\n break;\n case 'e-timeline-year':\n this.parent.changeView('TimelineYear', args.originalEvent, undefined, this.calculateViewIndex(args));\n break;\n case 'e-today':\n currentTime = util.resetTime(this.parent.getCurrentTime());\n if (this.parent.currentView === 'Agenda' || this.parent.currentView === 'MonthAgenda' || !this.parent.isSelectedDate(currentTime) ||\n this.parent.currentView === 'Month' && this.parent.activeViewOptions.displayDate && !this.hasSelectedDate() &&\n util.resetTime(this.parent.activeViewOptions.displayDate) !== currentTime || this.parent.currentView === 'Month' &&\n this.parent.activeViewOptions.numberOfWeeks > 0 && !this.hasSelectedDate()\n && util.resetTime(util.firstDateOfMonth(this.parent.selectedDate)) !== currentTime) {\n this.parent.changeDate(currentTime, args.originalEvent);\n }\n break;\n case 'e-prev':\n this.parent.changeDate(this.parent.activeView.getNextPreviousDate('previous'), args.originalEvent);\n break;\n case 'e-next':\n this.parent.changeDate(this.parent.activeView.getNextPreviousDate('next'), args.originalEvent);\n break;\n case 'e-add':\n isSameTime = this.parent.activeCellsData.startTime.getTime() === this.parent.activeCellsData.endTime.getTime();\n if (this.parent.activeCellsData && !isSameTime) {\n data = this.parent.activeCellsData;\n }\n else {\n var interval = this.parent.activeViewOptions.timeScale.interval;\n var slotCount = this.parent.activeViewOptions.timeScale.slotCount;\n var msInterval = (interval * util.MS_PER_MINUTE) / slotCount;\n var startTime = new Date(this.parent.selectedDate.getTime());\n var currentTime_1 = this.parent.getCurrentTime();\n startTime.setHours(currentTime_1.getHours(), (Math.round(startTime.getMinutes() / msInterval) * msInterval), 0);\n var endTime = new Date(new Date(startTime.getTime()).setMilliseconds(startTime.getMilliseconds() + msInterval));\n data = { startTime: startTime, endTime: endTime, isAllDay: false };\n }\n this.parent.eventWindow.openEditor(extend(data, { cancel: false, event: args.originalEvent }), 'Add');\n break;\n }\n if (isNullOrUndefined(this.toolbarObj)) {\n return;\n }\n var toolbarPopUp = this.toolbarObj.element.querySelector('.e-toolbar-pop');\n if (toolbarPopUp && args.item.type !== 'Input') {\n toolbarPopUp.ej2_instances[0].hide({ name: 'SlideUp', duration: 100 });\n }\n };\n HeaderRenderer.prototype.hasSelectedDate = function () {\n var selectedTime = util.resetTime(this.parent.selectedDate).getTime();\n return selectedTime >= this.parent.activeView.getStartDate().getTime() &&\n selectedTime <= this.parent.activeView.getEndDate().getTime();\n };\n HeaderRenderer.prototype.getHeaderElement = function () {\n return this.toolbarObj.element;\n };\n HeaderRenderer.prototype.updateHeaderItems = function (classType) {\n var prevNavEle = this.toolbarObj.element.querySelector('.e-prev');\n var nextNavEle = this.toolbarObj.element.querySelector('.e-next');\n var dateRangeEle = this.toolbarObj.element.querySelector('.e-date-range');\n if (prevNavEle) {\n if (classType === 'add') {\n addClass([prevNavEle], cls.HIDDEN_CLASS);\n }\n else {\n removeClass([prevNavEle], cls.HIDDEN_CLASS);\n }\n }\n if (nextNavEle) {\n if (classType === 'add') {\n addClass([nextNavEle], cls.HIDDEN_CLASS);\n }\n else {\n removeClass([nextNavEle], cls.HIDDEN_CLASS);\n }\n }\n if (dateRangeEle) {\n if (classType === 'add') {\n addClass([dateRangeEle], cls.TEXT_ELLIPSIS);\n }\n else {\n removeClass([dateRangeEle], cls.TEXT_ELLIPSIS);\n }\n }\n };\n HeaderRenderer.prototype.previousNextIconHandler = function () {\n var dates = (this.parent.currentView === 'Agenda' ?\n [this.parent.getCurrentViewDates()[0]] : this.parent.getCurrentViewDates());\n var prevNavEle = this.toolbarObj.element.querySelector('.' + cls.PREVIOUS_DATE_CLASS);\n var nextNavEle = this.toolbarObj.element.querySelector('.' + cls.NEXT_DATE_CLASS);\n var firstDate = new Date(dates[0].getTime());\n var lastDate = new Date(dates[dates.length - 1].getTime());\n if (this.parent.currentView === 'WorkWeek' || this.parent.currentView === 'TimelineWorkWeek') {\n firstDate = util.getWeekFirstDate(util.resetTime(this.parent.selectedDate), this.parent.firstDayOfWeek);\n lastDate = util.addDays(firstDate, 7 * this.parent.activeViewOptions.interval);\n }\n else if (this.parent.currentView === 'Month') {\n var isCustomMonth = !isNullOrUndefined(this.parent.activeViewOptions.displayDate) ||\n this.parent.activeViewOptions.numberOfWeeks > 0;\n firstDate = isCustomMonth ? this.parent.activeView.getStartDate() : util.firstDateOfMonth(this.parent.selectedDate);\n lastDate = isCustomMonth ? this.parent.activeView.getEndDate() :\n util.lastDateOfMonth(util.addMonths(firstDate, this.parent.activeViewOptions.interval - 1));\n }\n if (!isNullOrUndefined(prevNavEle)) {\n this.toolbarObj.enableItems(prevNavEle, firstDate > util.resetTime(this.parent.minDate));\n }\n if (!isNullOrUndefined(nextNavEle)) {\n this.toolbarObj.enableItems(nextNavEle, lastDate < util.resetTime(this.parent.maxDate));\n }\n this.setCalendarMinMaxDate();\n };\n HeaderRenderer.prototype.getModuleName = function () {\n return 'headerbar';\n };\n HeaderRenderer.prototype.destroy = function () {\n if (this.headerPopup && !this.headerPopup.isDestroyed) {\n this.headerPopup.destroy();\n this.headerPopup = null;\n }\n if (this.headerCalendar && !this.headerCalendar.isDestroyed) {\n this.headerCalendar.destroy();\n this.headerCalendar = null;\n }\n if (this.toolbarObj && !this.toolbarObj.isDestroyed) {\n this.toolbarObj.destroy();\n this.removeEventListener();\n remove(this.element);\n this.toolbarObj = null;\n }\n this.element = null;\n this.parent = null;\n this.l10n = null;\n };\n return HeaderRenderer;\n}());\nexport { HeaderRenderer };\n","import { formatUnit } from '@syncfusion/ej2-base';\nimport { contentReady, uiUpdate, scrollUiUpdate } from '../base/constant';\n/**\n * `Scroll` module\n */\nvar Scroll = /** @class */ (function () {\n /**\n * Constructor for the scrolling.\n *\n * @param {Schedule} parent Accepts the Schedule instance\n */\n function Scroll(parent) {\n this.parent = parent;\n this.addEventListener();\n }\n /**\n * For internal use only - Get the module name.\n *\n * @returns {string} Returns the module name.\n * @private\n */\n Scroll.prototype.getModuleName = function () {\n return 'scroll';\n };\n /**\n * Internal method to set the element width\n *\n * @returns {void}\n * @private\n */\n Scroll.prototype.setWidth = function () {\n this.parent.element.style.width = formatUnit(this.parent.width);\n };\n /**\n * Internal method to set the element height\n *\n * @returns {void}\n * @private\n */\n Scroll.prototype.setHeight = function () {\n this.parent.element.style.height = formatUnit(this.parent.height);\n };\n /**\n * Internal method to bind events\n *\n * @returns {void}\n * @private\n */\n Scroll.prototype.addEventListener = function () {\n this.parent.on(contentReady, this.setDimensions, this);\n this.parent.on(uiUpdate, this.onPropertyChanged, this);\n };\n /**\n * Internal method to unbind events\n *\n * @returns {void}\n * @private\n */\n Scroll.prototype.removeEventListener = function () {\n this.parent.off(contentReady, this.setDimensions);\n this.parent.off(uiUpdate, this.onPropertyChanged);\n };\n /**\n * Internal method to set the dimensions\n *\n * @returns {void}\n * @private\n */\n Scroll.prototype.setDimensions = function () {\n this.setWidth();\n this.setHeight();\n var data = { cssProperties: this.parent.getCssProperties(), module: this.getModuleName() };\n this.parent.notify(scrollUiUpdate, data);\n };\n /**\n * Internal method to set the dimensions dynamically\n *\n * @returns {void}\n * @private\n */\n Scroll.prototype.onPropertyChanged = function () {\n this.setDimensions();\n };\n /**\n * Destroy the scroll module\n *\n * @returns {void}\n * @private\n */\n Scroll.prototype.destroy = function () {\n this.removeEventListener();\n };\n return Scroll;\n}());\nexport { Scroll };\n","import { addClass, removeClass, Touch, remove, EventHandler, Browser } from '@syncfusion/ej2-base';\nimport { closest, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport * as events from '../base/constant';\nimport * as cls from '../base/css-constant';\nimport * as util from '../base/util';\n/**\n * `touch` module is used to handle touch interactions.\n */\nvar ScheduleTouch = /** @class */ (function () {\n function ScheduleTouch(parent) {\n this.parent = parent;\n this.element = this.parent.element.querySelector('.' + cls.TABLE_CONTAINER_CLASS);\n this.touchObj = new Touch(this.element, {\n scroll: this.scrollHandler.bind(this),\n swipe: this.swipeHandler.bind(this),\n tapHold: this.tapHoldHandler.bind(this),\n swipeSettings: { swipeThresholdDistance: 1 }\n });\n EventHandler.add(this.element, 'transitionend', this.onTransitionEnd, this);\n this.touchLeftDirection = this.parent.enableRtl ? 'Right' : 'Left';\n this.touchRightDirection = this.parent.enableRtl ? 'Left' : 'Right';\n }\n ScheduleTouch.prototype.scrollHandler = function (e) {\n if (this.parent.currentView === 'Agenda' || this.parent.uiStateValues.action || !this.parent.allowSwiping ||\n (e.originalEvent && e.originalEvent.target &&\n (e.originalEvent.target.classList.contains(cls.APPOINTMENT_CLASS) ||\n closest(e.originalEvent.target, '.' + cls.APPOINTMENT_CLASS)) && !this.parent.isAdaptive)) {\n return;\n }\n if (!this.timeStampStart) {\n this.timeStampStart = Date.now();\n }\n if (this.element.classList.contains(cls.TRANSLATE_CLASS)) {\n this.onTransitionEnd();\n }\n if (e.scrollDirection === 'Left' || e.scrollDirection === 'Right') {\n var args = { requestType: 'dateNavigate', cancel: false, event: e.originalEvent };\n this.parent.trigger(events.actionBegin, args);\n if (args.cancel) {\n return;\n }\n var scrollDiv = this.element.querySelector('.' + cls.CONTENT_WRAP_CLASS);\n if (scrollDiv && scrollDiv.scrollWidth > scrollDiv.clientWidth) {\n return;\n }\n else {\n this.isScrollTriggered = true;\n e.originalEvent.preventDefault();\n e.originalEvent.stopPropagation();\n }\n }\n if (e.scrollDirection === this.touchLeftDirection) {\n if (!this.nextPanel) {\n this.renderPanel(cls.NEXT_PANEL_CLASS, 'next');\n this.nextPanel = {\n element: this.parent.activeView.getPanel(),\n selectedDate: new Date(this.parent.selectedDate.getTime()),\n renderDates: this.parent.activeView.renderDates,\n colLevels: this.parent.activeView.colLevels\n };\n this.setDimensions(this.nextPanel.element);\n }\n var x = this.parent.enableRtl ? e.distanceX : -e.distanceX;\n this.element.style.transform = 'translatex(' + (this.getTranslateX(this.element) + x) + 'px)';\n }\n else if (e.scrollDirection === this.touchRightDirection) {\n var prevWidth = 0;\n if (!this.previousPanel) {\n this.renderPanel(cls.PREVIOUS_PANEL_CLASS, 'previous');\n this.previousPanel = {\n element: this.parent.activeView.getPanel(),\n selectedDate: new Date(this.parent.selectedDate.getTime()),\n renderDates: this.parent.activeView.renderDates,\n colLevels: this.parent.activeView.colLevels\n };\n this.setDimensions(this.previousPanel.element);\n prevWidth = this.previousPanel.element.offsetWidth;\n }\n var x = this.parent.enableRtl ? prevWidth - e.distanceX : -prevWidth + e.distanceX;\n this.element.style.transform = 'translatex(' + (this.getTranslateX(this.element) + x) + 'px)';\n }\n };\n ScheduleTouch.prototype.swipeHandler = function (e) {\n if (!this.isScrollTriggered || this.parent.uiStateValues.action || !this.parent.allowSwiping) {\n return;\n }\n this.isScrollTriggered = false;\n var swipeDate = e.swipeDirection === 'Left' ?\n this.parent.activeView.renderDates[0] : this.parent.activeView.renderDates.slice(-1)[0];\n if ((e.swipeDirection === 'Left' && swipeDate < this.parent.maxDate) ||\n (e.swipeDirection === 'Right' && swipeDate >= this.parent.minDate)) {\n var time = Date.now() - this.timeStampStart;\n var offsetDist = (e.distanceX * (Browser.isDevice ? 6 : 1.66));\n if (offsetDist > time || (e.distanceX > (this.parent.element.offsetWidth / 2))) {\n this.swapPanels(e.swipeDirection);\n if (offsetDist > time && (e.distanceX > (this.parent.element.offsetWidth / 2))) {\n this.element.style.transitionDuration = (((Browser.isDevice ? e.distanceX : offsetDist) / time) / 10) + 's';\n }\n this.confirmSwipe(e.swipeDirection);\n }\n else {\n this.cancelSwipe();\n }\n var args = { requestType: 'dateNavigate', cancel: false, event: e.originalEvent };\n this.parent.trigger(events.actionComplete, args);\n }\n else {\n this.cancelSwipe();\n }\n this.timeStampStart = null;\n };\n ScheduleTouch.prototype.tapHoldHandler = function (e) {\n var target = closest(e.originalEvent.target, '.' + cls.APPOINTMENT_CLASS);\n if (!isNullOrUndefined(target) && this.parent.isAdaptive) {\n this.parent.quickPopup.tapHoldEventPopup(e.originalEvent);\n return;\n }\n };\n ScheduleTouch.prototype.renderPanel = function (clsName, nextPrevType) {\n if (!this.currentPanel) {\n this.currentPanel = {\n element: this.parent.activeView.getPanel(),\n selectedDate: new Date(this.parent.selectedDate.getTime()),\n renderDates: this.parent.activeView.renderDates,\n colLevels: this.parent.activeView.colLevels\n };\n this.setDimensions(this.currentPanel.element);\n }\n else {\n this.parent.setProperties({ selectedDate: this.currentPanel.selectedDate }, true);\n }\n this.parent.setProperties({ selectedDate: this.parent.activeView.getNextPreviousDate(nextPrevType) }, true);\n if (this.parent.headerModule) {\n this.parent.headerModule.setCalendarDate(this.parent.selectedDate);\n }\n this.parent.activeView.getRenderDates();\n this.parent.activeView.renderLayout(clsName);\n };\n ScheduleTouch.prototype.swapPanels = function (direction) {\n if (direction === this.touchLeftDirection) {\n var temp = this.nextPanel;\n this.nextPanel = this.currentPanel;\n this.currentPanel = temp;\n }\n else {\n var temp = this.previousPanel;\n this.previousPanel = this.currentPanel;\n this.currentPanel = temp;\n }\n };\n ScheduleTouch.prototype.confirmSwipe = function (swipeDirection) {\n var _this = this;\n var previousDate = swipeDirection === this.touchLeftDirection ?\n this.nextPanel.selectedDate : this.previousPanel.selectedDate;\n var args = {\n action: 'date', cancel: false, previousDate: previousDate, currentDate: this.currentPanel.selectedDate\n };\n this.parent.trigger(events.navigating, args, function (navArgs) {\n if (navArgs.cancel) {\n _this.swapPanels(swipeDirection);\n _this.cancelSwipe();\n }\n else {\n _this.parent.activeView.setPanel(_this.currentPanel.element);\n _this.parent.setProperties({ selectedDate: _this.currentPanel.selectedDate }, true);\n var translateX = void 0;\n if (_this.parent.enableRtl) {\n translateX = swipeDirection === _this.touchLeftDirection ?\n (_this.previousPanel ? _this.previousPanel.element.offsetLeft : _this.currentPanel.element.offsetWidth) : 0;\n }\n else {\n translateX = swipeDirection === _this.touchLeftDirection ? -_this.currentPanel.element.offsetLeft : 0;\n }\n _this.parent.activeView.renderDates = _this.currentPanel.renderDates;\n _this.parent.activeView.colLevels = _this.currentPanel.colLevels;\n addClass([_this.element], cls.TRANSLATE_CLASS);\n _this.element.style.transform = 'translatex(' + translateX + 'px)';\n if (_this.parent.headerModule) {\n _this.parent.headerModule.updateDateRange();\n }\n _this.parent.renderTemplates();\n _this.parent.crudModule.refreshDataManager();\n }\n });\n };\n ScheduleTouch.prototype.cancelSwipe = function () {\n this.parent.activeView.setPanel(this.currentPanel.element);\n this.parent.setProperties({ selectedDate: this.currentPanel.selectedDate }, true);\n this.parent.activeView.renderDates = this.currentPanel.renderDates;\n this.parent.activeView.colLevels = this.currentPanel.colLevels;\n addClass([this.element], cls.TRANSLATE_CLASS);\n var prevWidth = this.previousPanel ? this.previousPanel.element.offsetWidth : 0;\n this.element.style.transform = 'translatex(' + (this.parent.enableRtl ? prevWidth : -this.currentPanel.element.offsetLeft) + 'px)';\n };\n ScheduleTouch.prototype.onTransitionEnd = function () {\n removeClass([this.element], cls.TRANSLATE_CLASS);\n this.element.style.transitionDuration = '';\n this.element.style.transform = '';\n if (this.previousPanel) {\n remove(this.previousPanel.element);\n this.previousPanel = null;\n removeClass([this.currentPanel.element], cls.PREVIOUS_PANEL_CLASS);\n addClass([this.currentPanel.element], cls.CURRENT_PANEL_CLASS);\n }\n if (this.nextPanel) {\n remove(this.nextPanel.element);\n this.nextPanel = null;\n removeClass([this.currentPanel.element], cls.NEXT_PANEL_CLASS);\n addClass([this.currentPanel.element], cls.CURRENT_PANEL_CLASS);\n }\n this.currentPanel = null;\n this.parent.activeView.getPanel().style.width = '';\n };\n ScheduleTouch.prototype.getTranslateX = function (element) {\n var style = window.getComputedStyle(element);\n return new WebKitCSSMatrix(style.webkitTransform).m41;\n };\n ScheduleTouch.prototype.setDimensions = function (element) {\n element.style.width = (this.parent.element.clientWidth) + 'px';\n };\n ScheduleTouch.prototype.resetValues = function () {\n this.currentPanel = null;\n this.previousPanel = null;\n this.nextPanel = null;\n this.timeStampStart = null;\n this.element.style.transform = '';\n this.element.style.transitionDuration = '';\n util.removeChildren(this.element);\n removeClass([this.element], cls.TRANSLATE_CLASS);\n };\n ScheduleTouch.prototype.destroy = function () {\n if (this.touchObj) {\n this.touchObj.destroy();\n this.touchObj = null;\n }\n EventHandler.remove(this.element, 'transitionend', this.onTransitionEnd);\n this.resetValues();\n };\n return ScheduleTouch;\n}());\nexport { ScheduleTouch };\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { KeyboardEvents, closest, EventHandler, extend } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined, addClass, removeClass } from '@syncfusion/ej2-base';\nimport * as event from '../base/constant';\nimport * as util from '../base/util';\nimport * as cls from '../base/css-constant';\nimport { cellSelect } from '../base/constant';\n/**\n * Keyboard interaction\n */\nvar KeyboardInteraction = /** @class */ (function () {\n function KeyboardInteraction(parent) {\n this.selectedCells = [];\n this.keyConfigs = {\n downArrow: 'downarrow',\n upArrow: 'uparrow',\n rightArrow: 'rightarrow',\n leftArrow: 'leftarrow',\n shiftDownArrow: 'shift+downarrow',\n shiftUpArrow: 'shift+uparrow',\n shiftRightArrow: 'shift+rightarrow',\n shiftLeftArrow: 'shift+leftarrow',\n ctrlLeftArrow: 'ctrl+leftarrow',\n ctrlRightArrow: 'ctrl+rightarrow',\n altOne: 'alt+1',\n altTwo: 'alt+2',\n altThree: 'alt+3',\n altFour: 'alt+4',\n altFive: 'alt+5',\n altSix: 'alt+6',\n altSeven: 'alt+7',\n altEight: 'alt+8',\n altNine: 'alt+9',\n enter: 'enter',\n escape: 'escape',\n delete: 'delete',\n backspace: 'backspace',\n home: 'home',\n pageUp: 'pageup',\n pageDown: 'pagedown',\n tab: 'tab',\n shiftTab: 'shift+tab',\n ctrlShiftUpArrow: 'ctrl+shift+uparrow',\n ctrlShiftDownArrow: 'ctrl+shift+downarrow',\n ctrlShiftLeftArrow: 'ctrl+shift+leftarrow',\n ctrlShiftRightArrow: 'ctrl+shift+rightarrow'\n };\n this.parent = parent;\n this.parent.element.tabIndex = this.parent.element.tabIndex === -1 ? 0 : this.parent.element.tabIndex;\n this.keyboardModule = new KeyboardEvents(this.parent.element, {\n keyAction: this.keyActionHandler.bind(this),\n keyConfigs: this.keyConfigs,\n eventName: 'keydown'\n });\n this.addEventListener();\n }\n KeyboardInteraction.prototype.keyActionHandler = function (e) {\n switch (e.action) {\n case 'downArrow':\n case 'shiftDownArrow':\n this.processDown(e, e.shiftKey);\n break;\n case 'upArrow':\n case 'shiftUpArrow':\n this.processUp(e, e.shiftKey);\n break;\n case 'leftArrow':\n case 'shiftLeftArrow':\n this.processLeft(e, e.shiftKey);\n break;\n case 'rightArrow':\n case 'shiftRightArrow':\n this.processRight(e, e.shiftKey);\n break;\n case 'ctrlLeftArrow':\n this.parent.changeDate(this.parent.activeView.getNextPreviousDate('previous'), e);\n if (this.parent.headerModule) {\n this.parent.headerModule.element.querySelector('.e-prev button').focus();\n }\n break;\n case 'ctrlRightArrow':\n this.parent.changeDate(this.parent.activeView.getNextPreviousDate('next'), e);\n if (this.parent.headerModule) {\n this.parent.headerModule.element.querySelector('.e-next button').focus();\n }\n break;\n case 'altOne':\n case 'altTwo':\n case 'altThree':\n case 'altFour':\n case 'altFive':\n case 'altSix':\n case 'altSeven':\n case 'altEight':\n case 'altNine':\n this.processViewNavigation(e);\n break;\n case 'enter':\n this.processEnter(e);\n break;\n case 'home':\n this.focusFirstCell();\n break;\n case 'tab':\n case 'shiftTab':\n this.processTab(e, e.shiftKey);\n break;\n case 'delete':\n case 'backspace':\n this.processDelete(e);\n break;\n case 'ctrlShiftUpArrow':\n case 'ctrlShiftDownArrow':\n case 'ctrlShiftLeftArrow':\n case 'ctrlShiftRightArrow':\n this.processCtrlShiftNavigationArrows(e);\n break;\n case 'escape':\n this.processEscape(e);\n break;\n case 'fTwelve':\n if (this.parent.allowInline && this.parent.inlineModule) {\n e.preventDefault();\n this.processFTwelve(e);\n }\n break;\n }\n };\n KeyboardInteraction.prototype.processFTwelve = function (e) {\n var target = e.target;\n if (target.classList.contains(cls.WORK_CELLS_CLASS) || target.classList.contains(cls.ALLDAY_CELLS_CLASS)) {\n this.parent.activeCellsData = this.getSelectedElements(target);\n var args = extend(this.parent.activeCellsData, { cancel: false, event: e });\n var inlineArgs = {\n element: args.element,\n groupIndex: args.groupIndex, type: 'Cell'\n };\n this.parent.notify(event.inlineClick, inlineArgs);\n }\n if (target.classList.contains(cls.APPOINTMENT_CLASS)) {\n target.click();\n return;\n }\n };\n KeyboardInteraction.prototype.addEventListener = function () {\n this.parent.on(event.cellMouseDown, this.onCellMouseDown, this);\n };\n KeyboardInteraction.prototype.removeEventListener = function () {\n this.parent.off(event.cellMouseDown, this.onCellMouseDown);\n };\n KeyboardInteraction.prototype.onCellMouseDown = function (e) {\n if (e.event.shiftKey) {\n return;\n }\n this.initialTarget = this.getClosestCell(e.event);\n if (this.parent.activeViewOptions.readonly || this.parent.currentView === 'MonthAgenda' || !this.initialTarget) {\n return;\n }\n if (e.event.target.classList.contains(cls.WORK_CELLS_CLASS) && e.event.which !== 3) {\n this.parent.removeSelectedClass();\n EventHandler.add(this.parent.getContentTable(), 'mousemove', this.onMouseSelection, this);\n EventHandler.add(this.parent.getContentTable(), 'mouseup', this.onMoveUp, this);\n }\n if (e.event.target.classList.contains(cls.ALLDAY_CELLS_CLASS) && e.event.which !== 3) {\n this.parent.removeSelectedClass();\n var allDayRow = this.parent.getAllDayRow();\n EventHandler.add(allDayRow, 'mousemove', this.onMouseSelection, this);\n EventHandler.add(allDayRow, 'mouseup', this.onMoveUp, this);\n }\n };\n KeyboardInteraction.prototype.onMouseSelection = function (e) {\n var appointments = [].slice.call(this.parent.element.querySelectorAll('.' + cls.APPOINTMENT_CLASS));\n addClass(appointments, 'e-allow-select');\n var selectionEdges = this.parent.boundaryValidation(e.pageY, e.pageX);\n if (selectionEdges.bottom || selectionEdges.top || selectionEdges.left || selectionEdges.right) {\n var parent_1 = this.parent.element.querySelector('.' + cls.CONTENT_WRAP_CLASS);\n var yInBounds = parent_1.offsetHeight <= parent_1.scrollHeight && parent_1.scrollTop >= 0 &&\n parent_1.scrollTop + parent_1.offsetHeight <= parent_1.scrollHeight;\n var xInBounds = parent_1.offsetWidth <= parent_1.scrollWidth && parent_1.scrollLeft >= 0 &&\n parent_1.scrollLeft + parent_1.offsetWidth <= parent_1.scrollWidth;\n if (yInBounds && (selectionEdges.top || selectionEdges.bottom)) {\n parent_1.scrollTop += selectionEdges.top ? -e.target.offsetHeight : e.target.offsetHeight;\n }\n if (xInBounds && (selectionEdges.left || selectionEdges.right)) {\n parent_1.scrollLeft += selectionEdges.left ? -e.target.offsetWidth : e.target.offsetWidth;\n }\n }\n var target = this.getClosestCell(e);\n if (target) {\n this.selectCells(true, target);\n }\n };\n KeyboardInteraction.prototype.getClosestCell = function (e) {\n return closest(e.target, '.' + cls.WORK_CELLS_CLASS + ',.' + cls.ALLDAY_CELLS_CLASS);\n };\n KeyboardInteraction.prototype.onMoveUp = function (e) {\n var _this = this;\n var appointments = [].slice.call(this.parent.element.querySelectorAll('.' + cls.APPOINTMENT_CLASS));\n removeClass(appointments, 'e-allow-select');\n if (e.target.classList.contains(cls.WORK_CELLS_CLASS)) {\n EventHandler.remove(this.parent.getContentTable(), 'mousemove', this.onMouseSelection);\n EventHandler.remove(this.parent.getContentTable(), 'mouseup', this.onMoveUp);\n }\n if (e.target.classList.contains(cls.ALLDAY_CELLS_CLASS)) {\n var allDayRow = this.parent.getAllDayRow();\n EventHandler.remove(allDayRow, 'mousemove', this.onMouseSelection);\n EventHandler.remove(allDayRow, 'mouseup', this.onMoveUp);\n }\n if (this.isPreventAction(e)) {\n return;\n }\n var queryStr = '.' + cls.WORK_CELLS_CLASS + ',.' + cls.ALLDAY_CELLS_CLASS + ',.' + cls.HEADER_CELLS_CLASS;\n var target = closest(e.target, queryStr);\n if (this.parent.currentView === 'TimelineYear' && target.classList.contains(cls.OTHERMONTH_CLASS)) {\n return;\n }\n this.parent.activeCellsData = this.getSelectedElements(target);\n var cellData = {};\n if (this.parent.eventWindow) {\n this.parent.eventWindow.convertToEventData(this.parent.activeCellsData, cellData);\n }\n var selectedCells = this.parent.getSelectedCells();\n var args = {\n data: cellData, element: this.parent.activeCellsData.element, event: e,\n requestType: cellSelect, showQuickPopup: false\n };\n this.parent.trigger(event.select, args, function (selectArgs) {\n var isPopupShow = selectArgs.showQuickPopup || _this.parent.quickInfoOnSelectionEnd;\n if (isPopupShow && selectedCells.length > 1) {\n var cellArgs = extend(_this.parent.activeCellsData, { cancel: false, event: e, name: 'cellClick' });\n _this.parent.notify(event.cellClick, cellArgs);\n }\n });\n };\n KeyboardInteraction.prototype.processEnter = function (e) {\n if ((this.parent.activeViewOptions.readonly && !e.target.classList.contains(cls.APPOINTMENT_CLASS))\n || this.isPreventAction(e)) {\n return;\n }\n if (this.parent.currentView === 'TimelineYear' && e.target.classList.contains(cls.OTHERMONTH_CLASS)) {\n return;\n }\n var target = e.target;\n if (closest(target, '.' + cls.POPUP_WRAPPER_CLASS)) {\n if (target.classList.contains(cls.QUICK_POPUP_EVENT_DETAILS_CLASS) ||\n target.classList.contains(cls.EVENT_CREATE_CLASS) ||\n target.classList.contains(cls.EDIT_EVENT_CLASS) ||\n target.classList.contains(cls.DELETE_EVENT_CLASS) ||\n target.classList.contains(cls.CLOSE_CLASS)) {\n target.click();\n e.preventDefault();\n }\n else if (target.classList.contains(cls.SUBJECT_CLASS)) {\n this.parent.element.querySelector('.' + cls.EVENT_CREATE_CLASS).click();\n e.preventDefault();\n }\n return;\n }\n if (target.classList.contains(cls.RESOURCE_CELLS_CLASS) && target.classList.contains(cls.RESOURCE_PARENT_CLASS)) {\n var resourceIcon = target.querySelector('.' + cls.RESOURCE_TREE_ICON_CLASS);\n if (resourceIcon) {\n resourceIcon.click();\n }\n return;\n }\n if (target.classList.contains(cls.WORK_CELLS_CLASS) || target.classList.contains(cls.ALLDAY_CELLS_CLASS)) {\n this.parent.activeCellsData = this.getSelectedElements(target);\n var args = extend(this.parent.activeCellsData, { cancel: false, event: e });\n if (this.parent.allowInline) {\n var inlineArgs = {\n element: args.element,\n groupIndex: args.groupIndex, type: 'Cell'\n };\n this.parent.notify(event.inlineClick, inlineArgs);\n }\n else {\n if (this.parent.currentView === 'Year') {\n target.click();\n }\n else {\n this.parent.notify(event.cellClick, args);\n }\n }\n return;\n }\n if (target.classList.contains(cls.INLINE_SUBJECT_CLASS) && this.parent.inlineModule) {\n this.parent.inlineModule.inlineCrudActions(target);\n return;\n }\n if (target.classList.contains(cls.APPOINTMENT_CLASS) || target.classList.contains(cls.MORE_EVENT_CLOSE_CLASS) ||\n target.classList.contains(cls.ALLDAY_APPOINTMENT_SECTION_CLASS) || target.classList.contains(cls.MORE_INDICATOR_CLASS)) {\n target.click();\n return;\n }\n if (target.classList.contains(cls.MORE_EVENT_HEADER_DATE_CLASS)) {\n this.parent.setProperties({ selectedDate: this.parent.getDateFromElement(target) }, true);\n this.parent.changeView(this.parent.getNavigateView(), e);\n this.processEscape(e);\n return;\n }\n };\n KeyboardInteraction.prototype.getSelectedElements = function (target) {\n var cellDetails;\n if (this.selectedCells.length > 1 && target.classList.contains(cls.SELECTED_CELL_CLASS)) {\n var start = this.parent.getCellDetails(this.selectedCells[0]);\n var end = this.parent.getCellDetails(this.selectedCells.slice(-1)[0]);\n start.endTime = end.endTime;\n start.element = target;\n cellDetails = start;\n }\n else {\n cellDetails = this.parent.getCellDetails(target);\n }\n return cellDetails;\n };\n KeyboardInteraction.prototype.getCells = function (isInverseTable, start, end) {\n var tableEle = this.parent.getContentTable();\n var isTimelineYear = this.parent.currentView === 'TimelineYear';\n var query = isTimelineYear && !isInverseTable ? '.' + cls.WORK_CELLS_CLASS + ':not(.' + cls.OTHERMONTH_CLASS + ')' : 'td';\n var cells = [].slice.call(tableEle.querySelectorAll(query));\n var maxRow = tableEle.rows.length;\n var maxColumn = tableEle.rows[0].cells.length;\n if (start && start.classList.contains(cls.ALLDAY_CELLS_CLASS)) {\n var allDayRow = this.parent.getAllDayRow();\n cells = [].slice.call(allDayRow.cells);\n maxRow = 1;\n maxColumn = allDayRow.cells.length;\n }\n var startIndex = cells.indexOf(start);\n var endIndex = cells.indexOf(end);\n var inverseCells = [];\n if (isInverseTable) {\n for (var i = 0; i < maxColumn; i++) {\n for (var j = 0; j < maxRow; j++) {\n var cell = cells[maxColumn * j + i];\n if (isTimelineYear && cell.classList.contains(cls.OTHERMONTH_CLASS)) {\n continue;\n }\n inverseCells.push(cell);\n }\n }\n startIndex = inverseCells.indexOf(start);\n endIndex = inverseCells.indexOf(end);\n }\n if (startIndex > endIndex) {\n var temp = startIndex;\n startIndex = endIndex;\n endIndex = temp;\n }\n var sCells = isInverseTable ? inverseCells : cells;\n return sCells.slice(startIndex, endIndex + 1);\n };\n KeyboardInteraction.prototype.focusFirstCell = function () {\n if (this.parent.currentView === 'Agenda') {\n var focusCell = this.parent.getContentTable().querySelector('.' + cls.AGENDA_CELLS_CLASS);\n focusCell.setAttribute('tabindex', '0');\n focusCell.focus();\n return;\n }\n this.parent.eventBase.removeSelectedAppointmentClass();\n if (this.parent.activeView.isTimelineView() && this.parent.currentView !== 'TimelineYear') {\n var cell = this.parent.element.querySelector('.' + cls.CONTENT_TABLE_CLASS +\n ' tr:not(.' + cls.HIDDEN_CLASS + ') .' + cls.WORK_CELLS_CLASS + ':not(.' + cls.RESOURCE_GROUP_CELLS_CLASS + ')');\n this.selectCells(false, cell);\n }\n else if (this.parent.currentView.indexOf('Year') > -1) {\n var query = '.' + cls.WORK_CELLS_CLASS + ':not(.' + cls.OTHERMONTH_CLASS + ')' + ':not(.' + cls.RESOURCE_GROUP_CELLS_CLASS + ')';\n var isVerticalYear = this.parent.currentView === 'TimelineYear' && this.parent.activeViewOptions.orientation === 'Vertical';\n query += isVerticalYear ? '[data-date=\"' + this.parent.activeView.startDate().getTime() + '\"]' : '';\n this.selectCells(false, this.parent.element.querySelector(query));\n }\n else {\n this.selectCells(false, this.parent.getWorkCellElements()[0]);\n }\n };\n KeyboardInteraction.prototype.isInverseTableSelect = function () {\n return this.parent.activeView.isInverseTableSelect;\n };\n /**\n * Internal method to select cells\n *\n * @param {boolean} isMultiple Accepts to select multiple cells or not\n * @param {HTMLTableCellElement} targetCell Accepts the target cells\n * @returns {void}\n * @private\n */\n KeyboardInteraction.prototype.selectCells = function (isMultiple, targetCell) {\n var _this = this;\n this.parent.removeSelectedClass();\n var target = (targetCell instanceof Array) ? targetCell.slice(-1)[0] : targetCell;\n if (isMultiple) {\n var initialId_1;\n var views_1 = ['Day', 'Week', 'WorkWeek', 'TimelineDay', 'TimelineWeek', 'TimelineWorkWeek', 'TimelineMonth', 'TimelineYear'];\n var args = { element: targetCell, requestType: 'mousemove', allowMultipleRow: true };\n this.parent.inlineModule.removeInlineAppointmentElement();\n this.parent.trigger(event.select, args, function (selectArgs) {\n var allowMultipleRow = (!selectArgs.allowMultipleRow) || (!_this.parent.allowMultiRowSelection);\n if (allowMultipleRow) {\n var isTimelineYear = _this.parent.currentView === 'TimelineYear';\n if (isTimelineYear && _this.parent.activeViewOptions.orientation === 'Horizontal' || _this.parent.currentView === 'Month') {\n var isGroupYear = isTimelineYear && _this.parent.activeViewOptions.group.resources.length > 0;\n target = isGroupYear ? _this.initialTarget :\n _this.initialTarget.parentElement.children[target.cellIndex];\n }\n else if (views_1.indexOf(_this.parent.currentView) > -1) {\n target = target.parentElement.children[_this.initialTarget.cellIndex];\n }\n }\n var selectedCells = _this.getCells(_this.isInverseTableSelect(), _this.initialTarget, target);\n if (_this.parent.activeViewOptions.group.resources.length > 0) {\n initialId_1 = _this.initialTarget.getAttribute('data-group-index');\n var resourceSelectedCells = [];\n for (var _i = 0, selectedCells_1 = selectedCells; _i < selectedCells_1.length; _i++) {\n var cell = selectedCells_1[_i];\n if (cell.getAttribute('data-group-index') === initialId_1) {\n resourceSelectedCells.push(cell);\n }\n }\n selectedCells = resourceSelectedCells;\n }\n if (!_this.parent.allowMultiCellSelection) {\n selectedCells = [_this.initialTarget];\n }\n _this.selectedCells = selectedCells;\n if (selectedCells.length > 2 && !target.classList.contains(cls.ALLDAY_CELLS_CLASS)) {\n var allDayCells = _this.getAllDayCells(selectedCells);\n if (_this.parent.activeViewOptions.group.resources.length > 0) {\n var resourceAllDayCells = [];\n for (var _a = 0, allDayCells_1 = allDayCells; _a < allDayCells_1.length; _a++) {\n var cell = allDayCells_1[_a];\n if (cell.getAttribute('data-group-index') === initialId_1) {\n resourceAllDayCells.push(cell);\n }\n }\n allDayCells = resourceAllDayCells;\n }\n selectedCells = selectedCells.concat(allDayCells);\n }\n if ((target.getAttribute('data-group-index') !== initialId_1) && _this.parent.activeViewOptions.group.resources.length > 0) {\n target = _this.selectedCells[_this.selectedCells.length - 1];\n }\n _this.parent.addSelectedClass(selectedCells, target);\n });\n }\n else {\n var args = {\n element: target, requestType: cellSelect\n };\n // activeCellsData is not reset on schedule property changed(group properties)\n // const cellData: Record = {};\n // const cellDetails: CellClickEventArgs = this.parent.getCellDetails(target);\n // if (this.parent.eventWindow && cellDetails) {\n // if (this.parent.activeCellsData.element !== cellDetails.element) {\n // this.parent.activeCellsData = cellDetails;\n // }\n // this.parent.eventWindow.convertToEventData(this.parent.activeCellsData as unknown as Record, cellData);\n // args.data = cellData;\n // }\n this.parent.trigger(event.select, args, function () {\n _this.initialTarget = target;\n _this.selectedCells = [target];\n _this.parent.addSelectedClass([target], target);\n });\n }\n };\n KeyboardInteraction.prototype.selectAppointment = function (isReverse, target) {\n var appointments = this.getAppointmentElements();\n if (appointments.length < 0) {\n return;\n }\n this.parent.eventBase.removeSelectedAppointmentClass();\n var nextAppEle;\n if (target.classList.contains(cls.APPOINTMENT_CLASS)) {\n var targetIndex = appointments.indexOf(target);\n nextAppEle = appointments[(isReverse ? targetIndex - 1 : targetIndex + 1)];\n }\n else {\n nextAppEle = isReverse ? appointments[appointments.length - 1] : appointments[0];\n }\n if (nextAppEle) {\n this.parent.eventBase.addSelectedAppointments([nextAppEle], true);\n nextAppEle.focus();\n addClass([nextAppEle], cls.AGENDA_SELECTED_CELL);\n }\n };\n KeyboardInteraction.prototype.selectAppointmentElementFromWorkCell = function (isReverse, target) {\n var _this = this;\n this.parent.eventBase.removeSelectedAppointmentClass();\n this.parent.removeSelectedClass();\n if (target.classList.contains(cls.WORK_CELLS_CLASS) || target.classList.contains(cls.ALLDAY_CELLS_CLASS)) {\n var appointmentElements_1 = this.getUniqueAppointmentElements();\n var filteredElements_1 = [];\n var selectedDate_1 = this.parent.getDateFromElement(target).getTime();\n var selectedSeriesEvents = this.parent.eventsProcessed.filter(function (eventObject) {\n return (!isReverse ? (eventObject[_this.parent.eventFields.startTime].getTime() >= selectedDate_1) :\n (eventObject[_this.parent.eventFields.startTime].getTime() <= selectedDate_1));\n });\n selectedSeriesEvents.filter(function (event) {\n appointmentElements_1.filter(function (element) {\n if (JSON.stringify(event.Guid) === JSON.stringify(element.getAttribute('data-guid'))) {\n filteredElements_1.push(element);\n }\n });\n });\n if (filteredElements_1.length > 0) {\n var selectedElement = isReverse ? filteredElements_1[filteredElements_1.length - 1] : filteredElements_1[0];\n var focusElements = this.getAppointmentElementsByGuid(selectedElement.getAttribute('data-guid'));\n this.parent.eventBase.addSelectedAppointments(focusElements, true);\n (focusElements[focusElements.length - 1]).focus();\n }\n }\n };\n KeyboardInteraction.prototype.getAllDayCells = function (cells) {\n var allDayRow = this.parent.getAllDayRow();\n if (!allDayRow) {\n return [];\n }\n var startCell = cells[0];\n var endCell = cells[cells.length - 1];\n var start = this.parent.getCellDetails(startCell);\n var end = this.parent.getCellDetails(endCell);\n if (end.endTime.getTime() - start.startTime.getTime() >= util.MS_PER_DAY) {\n var allDayCells = [].slice.call(allDayRow.cells);\n return allDayCells.slice(startCell.cellIndex, endCell.cellIndex + 1);\n }\n return [];\n };\n KeyboardInteraction.prototype.getAppointmentElements = function () {\n return [].slice.call(this.parent.element.querySelectorAll('.' + cls.APPOINTMENT_CLASS));\n };\n KeyboardInteraction.prototype.getAppointmentElementsByGuid = function (guid) {\n return [].slice.call(this.parent.element.querySelectorAll('div[data-guid=\"' + guid + '\"]'));\n };\n KeyboardInteraction.prototype.getUniqueAppointmentElements = function () {\n var appointments = this.getAppointmentElements();\n var appointmentElements = [];\n appointments.map(function (value) { return value.getAttribute('data-guid'); }).filter(function (value, index, self) {\n if (self.indexOf(value) === index) {\n appointmentElements.push(appointments[parseInt(index.toString(), 10)]);\n }\n });\n return appointmentElements;\n };\n KeyboardInteraction.prototype.getWorkCellFromAppointmentElement = function (target) {\n var selectedObject = this.parent.eventBase.getEventByGuid(target.getAttribute('data-guid'));\n return this.parent.eventBase.selectWorkCellByTime([selectedObject]);\n };\n KeyboardInteraction.prototype.processViewNavigation = function (e) {\n var index = parseInt(e.key, 10) - 1;\n if (index < this.parent.views.length) {\n var view = this.parent.viewCollections[parseInt(index.toString(), 10)].option;\n this.parent.changeView(view, e, undefined, index);\n if (this.parent.headerModule) {\n this.parent.headerModule.element.querySelector('.e-active-view button').focus();\n }\n }\n };\n KeyboardInteraction.prototype.cancelUpDownAction = function (isTimelineYear) {\n var isVerticalYear = isTimelineYear && this.parent.activeViewOptions.orientation === 'Vertical';\n var isGroup = this.parent.activeViewOptions.group.resources.length > 0;\n if (isVerticalYear && isGroup || isTimelineYear && this.initialTarget.classList.contains(cls.OTHERMONTH_CLASS)) {\n return true;\n }\n if (this.parent.activeView.isTimelineView() && !isTimelineYear || this.parent.currentView === 'MonthAgenda') {\n return true;\n }\n return false;\n };\n KeyboardInteraction.prototype.processUp = function (e, isMultiple) {\n var isTimelineYear = this.parent.currentView === 'TimelineYear';\n if (isMultiple && this.cancelUpDownAction(isTimelineYear)) {\n return;\n }\n var target = (e.target);\n var selectedElements = this.parent.getSelectedCells();\n var selectedEventElements = this.parent.eventBase.getSelectedAppointments();\n var moreEventWrapper = this.parent.element.querySelector('.' + cls.MORE_POPUP_WRAPPER_CLASS);\n var quickPopupWrapper = this.getQuickPopupElement();\n if (selectedElements.length > 0 && !e.target.classList.contains(cls.WORK_CELLS_CLASS)) {\n target = selectedElements[selectedElements.length - 1];\n }\n if (selectedEventElements.length > 0 && !moreEventWrapper.classList.contains(cls.POPUP_OPEN) &&\n !quickPopupWrapper.classList.contains(cls.POPUP_OPEN) &&\n ['Day', 'Week', 'WorkWeek', 'Month'].indexOf(this.parent.currentView) !== -1) {\n target = this.getWorkCellFromAppointmentElement(selectedEventElements[selectedEventElements.length - 1]);\n this.parent.eventBase.removeSelectedAppointmentClass();\n }\n if (!target) {\n return;\n }\n if (target.classList.contains(cls.WORK_CELLS_CLASS) && !this.parent.element.querySelector('.' + cls.POPUP_OPEN)) {\n var tableRows = this.parent.getTableRows();\n var curRowIndex = tableRows.indexOf(target.parentElement);\n var targetCell = void 0;\n if (isTimelineYear && isMultiple && this.parent.activeViewOptions.group.resources.length === 0) {\n targetCell = this.isInverseTableSelect() ? this.getVerticalUpDownCell(tableRows, target, curRowIndex, true) :\n this.getHorizontalUpDownCell(tableRows, target, curRowIndex, true);\n }\n if ((curRowIndex > 0 || targetCell) && curRowIndex < tableRows.length) {\n targetCell = targetCell ? targetCell : (tableRows[curRowIndex - 1]).cells[target.cellIndex];\n if (this.parent.currentView === 'Year' && targetCell.classList.contains(cls.OTHERMONTH_CLASS)) {\n if (this.parent.activeView.getStartDate().getTime() < +targetCell.getAttribute('data-date')) {\n targetCell = this.getYearUpDownCell(tableRows, curRowIndex - 1, target.cellIndex, true);\n }\n else {\n return;\n }\n }\n this.selectCells(isMultiple, targetCell);\n }\n }\n else if (this.parent.currentView === 'Agenda' || this.parent.currentView === 'MonthAgenda') {\n this.selectAppointment(true, target);\n }\n };\n KeyboardInteraction.prototype.processDown = function (e, isMultiple) {\n var isTimelineYear = this.parent.currentView === 'TimelineYear';\n if (isMultiple && this.cancelUpDownAction(isTimelineYear)) {\n return;\n }\n var target = (e.target);\n var selectedCells = this.parent.getSelectedCells();\n var selectedElements = this.parent.eventBase.getSelectedAppointments();\n var moreEventWrapper = this.parent.element.querySelector('.' + cls.MORE_POPUP_WRAPPER_CLASS);\n var quickPopupWrapper = this.getQuickPopupElement();\n if (selectedCells.length > 0 && !e.target.classList.contains(cls.WORK_CELLS_CLASS)) {\n target = selectedCells[selectedCells.length - 1];\n }\n if (selectedElements.length > 0 && !moreEventWrapper.classList.contains(cls.POPUP_OPEN) &&\n !quickPopupWrapper.classList.contains(cls.POPUP_OPEN) &&\n ['Day', 'Week', 'WorkWeek', 'Month'].indexOf(this.parent.currentView) !== -1) {\n target = this.getWorkCellFromAppointmentElement(selectedElements[selectedElements.length - 1]);\n this.parent.eventBase.removeSelectedAppointmentClass();\n }\n var tableRows = this.parent.getTableRows();\n if (!target) {\n return;\n }\n if (target.classList.contains(cls.WORK_CELLS_CLASS) && !this.parent.element.querySelector('.' + cls.POPUP_OPEN)) {\n var curRowIndex = tableRows.indexOf(target.parentElement);\n var targetCell = void 0;\n if (isTimelineYear && isMultiple && this.parent.activeViewOptions.group.resources.length === 0) {\n targetCell = this.isInverseTableSelect() ? this.getVerticalUpDownCell(tableRows, target, curRowIndex, false)\n : this.getHorizontalUpDownCell(tableRows, target, curRowIndex, false);\n }\n if (curRowIndex >= 0 && ((curRowIndex < tableRows.length - 1) || targetCell)) {\n targetCell = targetCell ? targetCell : (tableRows[curRowIndex + 1]).cells[target.cellIndex];\n if (this.parent.currentView === 'Year' && targetCell.classList.contains(cls.OTHERMONTH_CLASS)) {\n if (this.parent.activeView.getEndDate().getTime() > +targetCell.getAttribute('data-date')) {\n targetCell = this.getYearUpDownCell(tableRows, curRowIndex + 1, target.cellIndex, false);\n }\n else {\n return;\n }\n }\n this.selectCells(isMultiple, targetCell);\n }\n }\n else if (this.parent.currentView === 'Agenda' || this.parent.currentView === 'MonthAgenda') {\n this.selectAppointment(false, target);\n }\n };\n KeyboardInteraction.prototype.getYearUpDownCell = function (tableRows, rowIndex, cellIndex, isUp) {\n while (tableRows[parseInt(rowIndex.toString(), 10)] &&\n tableRows[parseInt(rowIndex.toString(), 10)].cells[parseInt(cellIndex.toString(), 10)].classList.contains(cls.OTHERMONTH_CLASS)) {\n rowIndex = rowIndex + (isUp ? -1 : 1);\n }\n return tableRows[parseInt(rowIndex.toString(), 10)].cells[parseInt(cellIndex.toString(), 10)];\n };\n // eslint-disable-next-line max-len\n KeyboardInteraction.prototype.getHorizontalUpDownCell = function (tableRows, target, curRowIndex, isUp) {\n var row = tableRows[curRowIndex + (isUp ? -1 : 1)];\n var cell = row ? row.cells[target.cellIndex] : target;\n if (cell.classList.contains(cls.OTHERMONTH_CLASS)) {\n var workCell = row.querySelector('.' + cls.WORK_CELLS_CLASS + ':not(.' + cls.OTHERMONTH_CLASS + ')');\n var date = new Date(+workCell.getAttribute('data-date'));\n var query = '[data-date=\"' + new Date(date.getFullYear(), date.getMonth() + 1, 0).getTime() + '\"]';\n cell = cell.cellIndex < workCell.cellIndex ? workCell : row.querySelector(query);\n }\n return cell;\n };\n // eslint-disable-next-line max-len\n KeyboardInteraction.prototype.getVerticalUpDownCell = function (tableRows, target, curRowIndex, isUp) {\n var hasRow = isUp && curRowIndex > 0 || !isUp && curRowIndex < tableRows.length - 1;\n var targetCell = hasRow ? tableRows[curRowIndex + (isUp ? -1 : 1)].cells[target.cellIndex] : undefined;\n if (!targetCell || targetCell.classList.contains(cls.OTHERMONTH_CLASS)) {\n var column = tableRows[parseInt(curRowIndex.toString(), 10)].cells[target.cellIndex - (isUp ? 1 : -1)];\n if (column) {\n var dateAttr = +target.getAttribute('data-date') - (isUp ? util.MS_PER_DAY : -util.MS_PER_DAY);\n return this.parent.getContentTable().querySelector('.' + cls.WORK_CELLS_CLASS + '[data-date=\"' + dateAttr + '\"]');\n }\n targetCell = target;\n }\n return targetCell;\n };\n KeyboardInteraction.prototype.processLeftRight = function (target) {\n var tableEle = (this.parent.currentView === 'Year' ? target.closest('tbody') : this.parent.getContentTable());\n var curRowIndex = target.parentNode.sectionRowIndex;\n var key = {\n element: tableEle,\n rowIndex: curRowIndex,\n columnIndex: target.cellIndex,\n maxIndex: tableEle.rows[parseInt(curRowIndex.toString(), 10)].cells.length\n };\n return key;\n };\n KeyboardInteraction.prototype.getQuickPopupElement = function () {\n return (this.parent.isAdaptive ? document.body : this.parent.element).querySelector('.' + cls.POPUP_WRAPPER_CLASS);\n };\n KeyboardInteraction.prototype.isCancelLeftRightAction = function (e, isMultiple, isTimelineYear) {\n var prevent = this.parent.currentView === 'MonthAgenda' || isTimelineYear && this.initialTarget.classList.contains(cls.OTHERMONTH_CLASS);\n if (this.parent.currentView === 'Agenda' || (isMultiple && prevent)) {\n return true;\n }\n if (this.isPreventAction(e) && isMultiple) {\n return true;\n }\n var moreEventWrapper = this.parent.element.querySelector('.' + cls.MORE_POPUP_WRAPPER_CLASS);\n var quickPopupWrapper = this.getQuickPopupElement();\n if (moreEventWrapper.classList.contains(cls.POPUP_OPEN) || quickPopupWrapper.classList.contains(cls.POPUP_OPEN)) {\n return true;\n }\n return false;\n };\n KeyboardInteraction.prototype.processRight = function (e, isMultiple) {\n var isTimelineYear = this.parent.currentView === 'TimelineYear';\n if (this.isCancelLeftRightAction(e, isMultiple, isTimelineYear)) {\n return;\n }\n var selectedCells = this.parent.getSelectedCells();\n var targetCell;\n var selectedAppointments = this.parent.eventBase.getSelectedAppointments();\n var target = (e.target);\n if (selectedCells.length > 0 && !target.classList.contains(cls.WORK_CELLS_CLASS) &&\n !target.classList.contains(cls.ALLDAY_CELLS_CLASS)) {\n target = selectedCells[selectedCells.length - 1];\n }\n if (selectedAppointments.length > 0) {\n target = this.getWorkCellFromAppointmentElement(selectedAppointments[selectedAppointments.length - 1]);\n this.parent.eventBase.removeSelectedAppointmentClass();\n if (!target) {\n return;\n }\n }\n if (target.classList.contains(cls.WORK_CELLS_CLASS) &&\n (e.target).classList.contains(cls.WORK_CELLS_CLASS)) {\n var key = this.processLeftRight(target);\n var targetDate = new Date(+target.getAttribute('data-date'));\n var isMonthEnd = this.parent.currentView === 'Year' && targetDate.getTime() === util.lastDateOfMonth(targetDate).getTime();\n if (key.columnIndex >= 0 && key.columnIndex < key.maxIndex - 1 && !isMonthEnd) {\n targetCell = this.calculateNextPrevDate(target, key.element.rows[key.rowIndex].cells[target.cellIndex + 1], 'right');\n if (isTimelineYear && isMultiple && targetCell.classList.contains(cls.OTHERMONTH_CLASS)) {\n targetCell = this.getTimelineYearTargetCell(key, target, true);\n }\n if (!isNullOrUndefined(targetCell)) {\n this.selectCells(isMultiple, targetCell);\n }\n }\n else if (key.columnIndex === key.maxIndex - 1 || isMonthEnd) {\n if (!this.isInverseTableSelect() && key.rowIndex < key.element.rows.length - 1 && !isMonthEnd) {\n targetCell = this.calculateNextPrevDate(target, key.element.rows[key.rowIndex + 1].cells[0], 'right');\n var changeTargetCell = isTimelineYear && isMultiple && targetCell.classList.contains(cls.OTHERMONTH_CLASS);\n targetCell = changeTargetCell ? this.getHorizontalLeftRightCell(key, target, true) : targetCell;\n if (!isNullOrUndefined(targetCell)) {\n this.selectCells(isMultiple, targetCell);\n }\n }\n else if (!isMultiple) {\n if (isMonthEnd && targetDate.getTime() !== this.parent.activeView.getEndDate().getTime()) {\n this.selectCells(isMultiple, this.parent.element.querySelector(':not(.' + cls.OTHERMONTH_CLASS + ')[data-date=\"' + (targetDate.getTime() + util.MS_PER_DAY) + '\"]'));\n return;\n }\n var rowIndex = this.isInverseTableSelect() ? key.rowIndex : 0;\n this.parent.changeDate(this.parent.activeView.getNextPreviousDate('next'), e);\n var tableEle = this.parent.getContentTable();\n var cell = isMonthEnd ? tableEle.rows[parseInt(rowIndex.toString(), 10)].querySelector('.' + cls.WORK_CELLS_CLASS + ':not(.' + cls.OTHERMONTH_CLASS + ')')\n : tableEle.rows[parseInt(rowIndex.toString(), 10)].cells[0];\n this.selectCells(false, cell);\n }\n }\n }\n else if (target.classList.contains(cls.ALLDAY_CELLS_CLASS)) {\n var curColIndex = target.cellIndex;\n var allDayRow = this.parent.getAllDayRow();\n var maxColIndex = allDayRow.cells.length;\n if (curColIndex >= 0 && curColIndex < maxColIndex - 1) {\n this.selectCells(isMultiple, allDayRow.cells[curColIndex + 1]);\n }\n else if (curColIndex === maxColIndex - 1 && !isMultiple) {\n this.parent.changeDate(this.parent.activeView.getNextPreviousDate('next'), e);\n var allDayRow_1 = this.parent.getAllDayRow();\n this.selectCells(false, allDayRow_1.cells[0]);\n }\n }\n };\n KeyboardInteraction.prototype.processLeft = function (e, isMultiple) {\n var isTimelineYear = this.parent.currentView === 'TimelineYear';\n if (this.isCancelLeftRightAction(e, isMultiple, isTimelineYear)) {\n return;\n }\n var target = (e.target);\n var selectedCells = this.parent.getSelectedCells();\n var targetCell;\n if (selectedCells.length > 0 && !target.classList.contains(cls.WORK_CELLS_CLASS) &&\n !target.classList.contains(cls.ALLDAY_CELLS_CLASS)) {\n target = selectedCells[selectedCells.length - 1];\n }\n var selectedElements = this.parent.eventBase.getSelectedAppointments();\n if (selectedElements.length > 0) {\n target = this.getWorkCellFromAppointmentElement(selectedElements[selectedElements.length - 1]);\n this.parent.eventBase.removeSelectedAppointmentClass();\n if (!target) {\n return;\n }\n }\n if ((e.target).classList.contains(cls.WORK_CELLS_CLASS) &&\n target.classList.contains(cls.WORK_CELLS_CLASS)) {\n var key = this.processLeftRight(target);\n var targetDate = new Date(+target.getAttribute('data-date'));\n var isMonthStart = this.parent.currentView === 'Year' && targetDate.getTime() === util.firstDateOfMonth(targetDate).getTime();\n if (key.columnIndex > 0 && key.columnIndex < key.maxIndex && !isMonthStart) {\n targetCell = this.calculateNextPrevDate(target, key.element.rows[key.rowIndex].cells[target.cellIndex - 1], 'left');\n if (isTimelineYear && isMultiple && targetCell.classList.contains(cls.OTHERMONTH_CLASS)) {\n targetCell = this.getTimelineYearTargetCell(key, target, false);\n }\n if (!isNullOrUndefined(targetCell)) {\n this.selectCells(isMultiple, targetCell);\n }\n }\n else if (key.columnIndex === 0 || isMonthStart) {\n if (!this.isInverseTableSelect() && key.rowIndex > 0) {\n targetCell = this.calculateNextPrevDate(target, key.element.rows[key.rowIndex - 1].cells[key.maxIndex - 1], 'left');\n var otherMonthCell = isTimelineYear && isMultiple && targetCell.classList.contains(cls.OTHERMONTH_CLASS);\n targetCell = otherMonthCell ? this.getHorizontalLeftRightCell(key, target, false) : targetCell;\n if (!isNullOrUndefined(targetCell)) {\n this.selectCells(isMultiple, targetCell);\n }\n }\n else if (!isMultiple) {\n if (isMonthStart && targetDate.getTime() !== this.parent.activeView.getStartDate().getTime()) {\n this.selectCells(isMultiple, this.parent.element.querySelector('[data-date=\"' + (targetDate.getTime() - util.MS_PER_DAY) + '\"]'));\n return;\n }\n this.parent.changeDate(this.parent.activeView.getNextPreviousDate('previous'), e);\n var tableEle = this.parent.getContentTable();\n var rowIndex = this.isInverseTableSelect() ? key.rowIndex : tableEle.rows.length - 1;\n var cell = tableEle.rows[parseInt(rowIndex.toString(), 10)].cells[key.maxIndex - 1];\n if (isMonthStart) {\n var tbody = this.parent.element.querySelectorAll('.' + cls.CONTENT_TABLE_CLASS + ' tbody');\n cell = tbody.item(tbody.length - 1).querySelector(':not(.' + cls.OTHERMONTH_CLASS + ')[data-date=\"' + this.parent.activeView.getEndDate().getTime() + '\"]');\n }\n this.selectCells(false, cell);\n }\n }\n }\n else if (target.classList.contains(cls.ALLDAY_CELLS_CLASS)) {\n var curColIndex = target.cellIndex;\n var allDayRow = this.parent.getAllDayRow();\n var maxColIndex = allDayRow.cells.length;\n if (curColIndex > 0 && curColIndex < maxColIndex) {\n this.selectCells(isMultiple, allDayRow.cells[curColIndex - 1]);\n }\n else if (curColIndex === 0 && !isMultiple) {\n this.parent.changeDate(this.parent.activeView.getNextPreviousDate('previous'), e);\n var allDayRow_2 = this.parent.getAllDayRow();\n this.selectCells(false, allDayRow_2.cells[maxColIndex - 1]);\n }\n }\n };\n KeyboardInteraction.prototype.getTimelineYearTargetCell = function (key, target, isRight) {\n return this.isInverseTableSelect() ? this.getVerticalLeftRightCell(target, isRight) :\n this.getHorizontalLeftRightCell(key, target, isRight);\n };\n KeyboardInteraction.prototype.getHorizontalLeftRightCell = function (key, target, isRight) {\n var row = key.element.rows[target.parentNode.sectionRowIndex + (isRight ? 1 : -1)];\n if (row) {\n var query = isRight ? '.' + cls.WORK_CELLS_CLASS + ':not(.' + cls.OTHERMONTH_CLASS + ')'\n : '[data-date=\"' + ((+target.getAttribute('data-date')) - util.MS_PER_DAY) + '\"]';\n return row.querySelector(query);\n }\n return target;\n };\n KeyboardInteraction.prototype.getVerticalLeftRightCell = function (target, isRight) {\n var date = new Date(+target.getAttribute('data-date'));\n var start = new Date(date.getFullYear(), date.getMonth() + (isRight ? 1 : -1), 1);\n var tableEle = this.parent.getContentTable();\n var targetCell = tableEle.querySelector('[data-date=\"' + start.getTime() + '\"]');\n if (targetCell.parentNode.sectionRowIndex > target.parentNode.sectionRowIndex) {\n return targetCell;\n }\n return tableEle.querySelector('[data-date=\"' + new Date(start.getFullYear(), start.getMonth() + 1, 0).getTime() + '\"]');\n };\n KeyboardInteraction.prototype.calculateNextPrevDate = function (currentCell, target, type) {\n var initialId = this.initialTarget.getAttribute('data-group-index');\n if (this.parent.activeViewOptions.group.resources.length > 0 && this.parent.currentView === 'Month') {\n if (currentCell && target && target.getAttribute('data-group-index') !== initialId) {\n var currentDate = this.parent.getDateFromElement(currentCell);\n var nextPrevDate = (type === 'right') ? new Date(currentDate.setDate(currentDate.getDate() + 1))\n : new Date(currentDate.setDate(currentDate.getDate() - 1));\n target = [].slice.call(this.parent.element.querySelectorAll('td[data-date=\"'\n + nextPrevDate.getTime().toString() + '\"]' + '[data-group-index=\"' + initialId + '\"]'))[0];\n }\n }\n return target;\n };\n KeyboardInteraction.prototype.getFocusableElements = function (container) {\n var queryString = 'a[href]:not([tabindex=\"-1\"]),input:not([disabled]):not([tabindex=\"-1\"]),' +\n 'textarea:not([disabled]):not([tabindex=\"-1\"]),button:not([disabled]):not([tabindex=\"-1\"]),' +\n 'select:not([disabled]):not([tabindex=\"-1\"]),[tabindex]:not([tabindex=\"-1\"]),[contentEditable=true]:not([tabindex=\"-1\"])';\n return [].slice.call(container.querySelectorAll(queryString));\n };\n KeyboardInteraction.prototype.processTabOnPopup = function (e, popupElement) {\n var _this = this;\n var focusableElements = this.getFocusableElements(popupElement);\n focusableElements = focusableElements.filter(function (element) {\n var footerEle = _this.parent.element.querySelector('.' + cls.POPUP_FOOTER_CLASS);\n if (footerEle && footerEle.offsetParent) {\n return !(element.classList.contains(cls.EDIT_CLASS) || element.classList.contains(cls.DELETE_CLASS));\n }\n else {\n return !(element.classList.contains(cls.EDIT_EVENT_CLASS) || element.classList.contains(cls.DELETE_EVENT_CLASS));\n }\n });\n var firstEle = focusableElements[0];\n var lastEle = focusableElements[focusableElements.length - 1];\n if (!isNullOrUndefined(lastEle) && document.activeElement === lastEle && !e.shiftKey) {\n e.preventDefault();\n firstEle.focus();\n }\n if (!isNullOrUndefined(firstEle) && document.activeElement === firstEle && e.shiftKey) {\n e.preventDefault();\n lastEle.focus();\n }\n };\n KeyboardInteraction.prototype.processTab = function (e, isReverse) {\n var target = e.target;\n if (target.classList.contains(cls.INLINE_SUBJECT_CLASS) && this.parent.inlineModule) {\n target = target.closest('.e-appointment');\n this.parent.inlineModule.inlineCrudActions(e.target);\n }\n if (this.parent.currentView === 'TimelineYear' && target.classList.contains(cls.OTHERMONTH_CLASS)) {\n if (target.classList.contains(cls.SELECTED_CELL_CLASS)) {\n this.parent.removeSelectedClass();\n }\n return;\n }\n var popupWrapper = closest(target, '.' + cls.POPUP_WRAPPER_CLASS + ',.' + cls.MORE_POPUP_WRAPPER_CLASS);\n if (popupWrapper && popupWrapper.classList.contains(cls.POPUP_OPEN)) {\n if (popupWrapper.classList.contains(cls.MORE_POPUP_WRAPPER_CLASS)) {\n this.parent.eventBase.removeSelectedAppointmentClass();\n }\n this.processTabOnPopup(e, popupWrapper);\n return;\n }\n if (target.classList.contains(cls.ROOT)) {\n this.parent.eventBase.removeSelectedAppointmentClass();\n return;\n }\n if (target.classList.contains(cls.RESOURCE_CELLS_CLASS) && this.parent.activeView.isTimelineView()\n && this.parent.activeViewOptions.group.resources.length > 0) {\n var index = parseInt(target.getAttribute('data-group-index'), 10);\n var appSelector = \".\" + cls.APPOINTMENT_CLASS + \"[data-group-index=\\\"\" + (isReverse ? index - 1 : index) + \"\\\"]\";\n var appElements = [].slice.call(this.parent.element.querySelectorAll(appSelector));\n if (appElements.length > 0) {\n this.parent.eventBase.removeSelectedAppointmentClass();\n var focusAppointment = isReverse ? appElements.slice(-1)[0] : appElements[0];\n this.parent.eventBase.addSelectedAppointments([focusAppointment], true);\n focusAppointment.focus();\n e.preventDefault();\n }\n else if (index + 1 === this.parent.resourceBase.lastResourceLevel.length) {\n this.parent.element.focus();\n e.preventDefault();\n }\n else if (this.parent.virtualScrollModule) {\n var virtual = this.parent.element.querySelector('.' + cls.VIRTUAL_TRACK_CLASS);\n var averageRowHeight = Math.round(virtual.offsetHeight / this.parent.resourceBase.expandedResources.length);\n this.parent.element.querySelector('.e-content-wrap').scrollTop = ((isReverse ? index - 1 : index + 1) * averageRowHeight);\n this.parent.virtualScrollModule.virtualScrolling();\n }\n else {\n this.setScrollPosition(index);\n }\n return;\n }\n if (target.classList.contains(cls.APPOINTMENT_CLASS)) {\n var appElements = [].slice.call(this.parent.element.querySelectorAll('.' + cls.APPOINTMENT_CLASS));\n var isTimelineYear = this.parent.currentView === 'TimelineYear';\n var isTimeline = this.parent.activeView.isTimelineView() && !isTimelineYear;\n if ((isTimeline || isTimelineYear && this.parent.activeViewOptions.orientation === 'Vertical') && this.parent.activeViewOptions.group.resources.length > 0) {\n var index = parseInt(target.getAttribute('data-group-index'), 10);\n appElements = [].slice.call(this.parent.element.querySelectorAll(\".\" + cls.APPOINTMENT_CLASS + \"[data-group-index=\\\"\" + index + \"\\\"]\"));\n var resCellSelector = \".\" + cls.RESOURCE_CELLS_CLASS + \"[data-group-index=\\\"\" + (isReverse ? index : index + 1) + \"\\\"]\";\n var resourceCell = this.parent.element.querySelector(resCellSelector);\n if (resourceCell && (isReverse && target.getAttribute('data-guid') === appElements[0].getAttribute('data-guid') ||\n !isReverse && target.getAttribute('data-guid') === appElements.slice(-1)[0].getAttribute('data-guid'))) {\n this.parent.eventBase.removeSelectedAppointmentClass();\n if (this.parent.virtualScrollModule) {\n resourceCell.focus({ preventScroll: true });\n }\n else {\n resourceCell.focus();\n }\n if (this.parent.activeView.isTimelineView() && this.parent.activeViewOptions.group.resources.length > 0 &&\n isNullOrUndefined(this.parent.virtualScrollModule)) {\n this.setScrollPosition(index);\n }\n e.preventDefault();\n return;\n }\n }\n var selectedAppointments = this.parent.eventBase.getSelectedAppointments();\n if (selectedAppointments.length > 0) {\n target = selectedAppointments[selectedAppointments.length - 1];\n }\n this.parent.eventBase.removeSelectedAppointmentClass();\n if (!isReverse && target.getAttribute('data-guid') === appElements[appElements.length - 1].getAttribute('data-guid') ||\n isReverse && target.getAttribute('data-guid') === appElements[0].getAttribute('data-guid')) {\n return;\n }\n if (this.parent.currentView === 'Agenda' || this.parent.currentView === 'MonthAgenda') {\n this.selectAppointment(isReverse, target);\n e.preventDefault();\n }\n return;\n }\n var selectedCells = this.parent.getSelectedCells();\n if (selectedCells.length > 0 && !target.classList.contains(cls.APPOINTMENT_CLASS)) {\n target = selectedCells[selectedCells.length - 1];\n this.selectAppointmentElementFromWorkCell(isReverse, target);\n e.preventDefault();\n return;\n }\n if (target && !target.classList.contains(cls.RESOURCE_CELLS_CLASS) && this.parent.activeView.isTimelineView()\n && this.parent.activeViewOptions.group.resources.length > 0) {\n this.processTabOnResourceCells(target, isReverse);\n }\n };\n KeyboardInteraction.prototype.processDelete = function (e) {\n var activeEle = document.activeElement;\n if (this.parent.currentView === 'MonthAgenda') {\n var selectedEle = this.parent.eventBase.getSelectedEvents().element;\n activeEle = ((selectedEle && isNullOrUndefined(selectedEle.length)) ? selectedEle : selectedEle[0]);\n }\n if (activeEle && activeEle.classList.contains(cls.APPOINTMENT_CLASS)) {\n addClass([activeEle], cls.APPOINTMENT_BORDER);\n this.parent.activeEventData = this.parent.eventBase.getSelectedEvents();\n if (this.parent.activeViewOptions.readonly || activeEle.classList.contains(cls.READ_ONLY) ||\n !this.parent.eventSettings.allowDeleting) {\n return;\n }\n this.parent.quickPopup.deleteClick(e);\n }\n };\n KeyboardInteraction.prototype.processCtrlShiftNavigationArrows = function (e) {\n if (this.parent.activeViewOptions.group.resources.length > 0 && document.activeElement.classList.contains(cls.APPOINTMENT_CLASS)) {\n var groupIndex = parseInt(document.activeElement.getAttribute('data-group-index'), 10);\n var index = (e.action === 'ctrlShiftLeftArrow' || e.action === 'ctrlShiftUpArrow') ? groupIndex - 1 : groupIndex + 1;\n index = index < 0 ? 0 : index > this.parent.resourceBase.lastResourceLevel.length ?\n this.parent.resourceBase.lastResourceLevel.length : index;\n var eventEle = [];\n while (eventEle.length === 0 && index >= 0 && index <= this.parent.resourceBase.lastResourceLevel.length) {\n eventEle = [].slice.call(this.parent.element.querySelectorAll(\".\" + cls.APPOINTMENT_CLASS + \"[data-group-index=\\\"\" + index + \"\\\"]\"));\n index = (e.action === 'ctrlShiftLeftArrow' || e.action === 'ctrlShiftUpArrow') ? index - 1 : index + 1;\n }\n var nextAppEle = eventEle[0];\n if (nextAppEle) {\n this.parent.eventBase.removeSelectedAppointmentClass();\n this.parent.eventBase.addSelectedAppointments([nextAppEle], true);\n nextAppEle.focus();\n }\n }\n else if (this.parent.activeViewOptions.group.resources.length > 0 &&\n !document.activeElement.classList.contains(cls.APPOINTMENT_CLASS)) {\n var index = this.parent.resourceBase.renderedResources[0].groupIndex;\n var appSelector = \".\" + cls.APPOINTMENT_CLASS + \"[data-group-index=\\\"\" + index + \"\\\"]\";\n var appElements = [].slice.call(this.parent.element.querySelectorAll(appSelector));\n if (appElements.length > 0) {\n this.parent.eventBase.removeSelectedAppointmentClass();\n var focusAppointment = appElements[0];\n this.parent.eventBase.addSelectedAppointments([focusAppointment], true);\n focusAppointment.focus();\n e.preventDefault();\n }\n }\n };\n KeyboardInteraction.prototype.processEscape = function (event) {\n this.parent.quickPopup.onClosePopup(event);\n this.parent.quickPopup.morePopup.hide();\n if (this.parent.headerModule) {\n this.parent.headerModule.hideHeaderPopup();\n }\n if (this.parent.inlineModule) {\n this.parent.inlineModule.removeInlineAppointmentElement();\n }\n };\n KeyboardInteraction.prototype.isPreventAction = function (e) {\n var target = closest(e.target, '.' + cls.RESOURCE_GROUP_CELLS_CLASS);\n if (this.parent.activeView.isTimelineView() && !isNullOrUndefined(target)) {\n return true;\n }\n return false;\n };\n KeyboardInteraction.prototype.processTabOnResourceCells = function (target, isReverse) {\n var tabElements = [].slice.call(this.parent.element.querySelectorAll('[tabIndex=\"0\"]'));\n var currentTabIndex = tabElements.indexOf(target);\n var nextTabElement = !isReverse ? tabElements[currentTabIndex + 1] : tabElements[currentTabIndex - 1];\n if (nextTabElement && nextTabElement.classList.contains(cls.RESOURCE_CELLS_CLASS)) {\n var groupIndex = parseInt(nextTabElement.getAttribute('data-group-index'), 10);\n if (this.parent.virtualScrollModule) {\n var resColWrap_1 = this.parent.element.querySelector('.' + cls.RESOURCE_COLUMN_WRAP_CLASS);\n var resCells = [].slice.call(this.parent.element.querySelectorAll('.' + cls.RESOURCE_CELLS_CLASS));\n resCells.forEach(function (element) {\n if (element.getBoundingClientRect().top < resColWrap_1.getBoundingClientRect().top) {\n element.setAttribute('tabindex', '-1');\n }\n });\n }\n else {\n this.setScrollPosition(groupIndex);\n }\n }\n };\n KeyboardInteraction.prototype.setScrollPosition = function (index) {\n var workCell = this.parent.element.querySelector(\".\" + cls.WORK_CELLS_CLASS + \"[data-group-index=\\\"\" + index + \"\\\"]\");\n if (workCell) {\n this.parent.element.querySelector('.' + cls.CONTENT_WRAP_CLASS).scrollTop = workCell.offsetTop;\n }\n };\n /**\n * Get module name.\n *\n * @returns {string} Returns the module name.\n */\n KeyboardInteraction.prototype.getModuleName = function () {\n return 'keyboard';\n };\n /**\n * To destroy the keyboard module.\n *\n * @returns {void}\n * @private\n */\n KeyboardInteraction.prototype.destroy = function () {\n this.removeEventListener();\n this.selectedCells = [];\n this.keyboardModule.destroy();\n };\n return KeyboardInteraction;\n}());\nexport { KeyboardInteraction };\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Query, DataManager, Predicate } from '@syncfusion/ej2-data';\n/**\n * data module is used to generate query and data source.\n *\n * @private\n */\nvar Data = /** @class */ (function () {\n /**\n * Constructor for data module\n *\n * @param {Schedule} parent Accepts the schedule element instance\n * @param {Object | DataManager} dataSource Accepts the datasource as JSON objects or DataManager\n * @param {Query} query Accepts the query to process the data\n * @private\n */\n function Data(parent, dataSource, query) {\n this.parent = parent;\n this.initDataManager(dataSource, query);\n }\n /**\n * The function used to initialize dataManager and query\n *\n * @param {Object | DataManager} dataSource Accepts the datasource as JSON objects or DataManager\n * @param {Query} query Accepts the query to process the data\n * @returns {void}\n * @private\n */\n Data.prototype.initDataManager = function (dataSource, query) {\n this.dataManager = dataSource instanceof DataManager ? dataSource : new DataManager(dataSource);\n this.query = query instanceof Query ? query : new Query();\n };\n /**\n * The function used to generate updated Query from schedule model\n *\n * @param {Date} startDate Accepts the start date\n * @param {Date} endDate Accepts the end date\n * @returns {void}\n * @private\n */\n Data.prototype.generateQuery = function (startDate, endDate) {\n var query = this.query.clone();\n if (this.parent && this.parent.eventSettings.includeFiltersInQuery && startDate && endDate) {\n var dateQuery = this.getStartEndQuery(startDate, endDate);\n var recurrenceQuery = new Predicate(this.parent.eventFields.recurrenceRule, 'notequal', null).and(new Predicate(this.parent.eventFields.recurrenceRule, 'notequal', ''));\n return query.where(dateQuery.or(recurrenceQuery));\n }\n if (startDate) {\n query.addParams('StartDate', startDate.toISOString());\n }\n if (endDate) {\n query.addParams('EndDate', endDate.toISOString());\n }\n return query;\n };\n /**\n * The function used to generate updated Query from schedule model\n *\n * @param {Date} startDate Accepts the start date\n * @param {Date} endDate Accepts the end date\n * @returns {void}\n * @private\n */\n Data.prototype.getStartEndQuery = function (startDate, endDate) {\n var fieldMapping = this.parent.eventFields;\n var dateQuery = new Predicate(fieldMapping.startTime, 'greaterthanorequal', startDate)\n .and(new Predicate(fieldMapping.endTime, 'greaterthanorequal', startDate))\n .and(new Predicate(fieldMapping.startTime, 'lessthan', endDate))\n .or(new Predicate(fieldMapping.startTime, 'lessthanorequal', startDate)\n .and(new Predicate(fieldMapping.endTime, 'greaterthan', startDate)));\n return dateQuery;\n };\n /**\n * The function used to get dataSource by executing given Query\n *\n * @param {Query} query - A Query that specifies to generate dataSource\n * @returns {void}\n * @private\n */\n Data.prototype.getData = function (query) {\n return this.dataManager.executeQuery(query);\n };\n /**\n * To destroy the crud module.\n *\n * @returns {void}\n * @private\n */\n Data.prototype.destroy = function () {\n this.dataManager = null;\n this.query = null;\n };\n return Data;\n}());\nexport { Data };\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { HijriParser, isNullOrUndefined } from '@syncfusion/ej2-base';\n/** @private */\nvar Gregorian = /** @class */ (function () {\n function Gregorian() {\n }\n Gregorian.prototype.firstDateOfMonth = function (date) {\n return new Date(date.getFullYear(), date.getMonth());\n };\n Gregorian.prototype.lastDateOfMonth = function (dt) {\n return new Date(dt.getFullYear(), dt.getMonth() + 1, 0);\n };\n Gregorian.prototype.isMonthStart = function (date) {\n return (date.getDate() === 1);\n };\n Gregorian.prototype.getLeapYearDaysCount = function () {\n return 366;\n };\n Gregorian.prototype.getYearDaysCount = function (date, interval) {\n return ((date.getFullYear() + interval) % 4 === 0) ? 366 : 365;\n };\n Gregorian.prototype.getDate = function (date) {\n return date.getDate();\n };\n Gregorian.prototype.getMonth = function (date) {\n return (date.getMonth() + 1);\n };\n Gregorian.prototype.getFullYear = function (date) {\n return date.getFullYear();\n };\n Gregorian.prototype.getYearLastDate = function (date, interval) {\n return new Date(date.getFullYear() + interval, 0, 0);\n };\n Gregorian.prototype.getMonthDaysCount = function (date) {\n return this.lastDateOfMonth(date).getDate();\n };\n Gregorian.prototype.getMonthStartDate = function (date) {\n return new Date(date.getFullYear(), date.getMonth(), 1, date.getHours(), date.getMinutes());\n };\n Gregorian.prototype.getMonthEndDate = function (date) {\n date.setDate(1);\n return new Date(date.setMonth(date.getMonth() + 1));\n };\n Gregorian.prototype.getExpectedDays = function (date, days) {\n return days;\n };\n Gregorian.prototype.setDate = function (dateObj, date) {\n dateObj.setDate(date);\n };\n Gregorian.prototype.setValidDate = function (date, interval, startDate, monthValue, beginDate) {\n if (!isNullOrUndefined(beginDate)) {\n date.setMonth((beginDate ? monthValue : date.getMonth()) + interval);\n }\n else {\n date.setMonth(date.getMonth() + interval, startDate);\n }\n };\n Gregorian.prototype.setMonth = function (date, interval, startDate) {\n date.setDate(1);\n date.setFullYear(date.getFullYear());\n date.setMonth(interval - 1);\n var maxDay = new Date(date.getFullYear(), date.getMonth() + 1, 0).getDate();\n date.setDate(Math.min(startDate, maxDay));\n };\n Gregorian.prototype.addYears = function (date, interval) {\n date.setFullYear(date.getFullYear() + interval);\n };\n Gregorian.prototype.isSameMonth = function (date1, date2) {\n return (date1.getMonth() === date2.getMonth());\n };\n Gregorian.prototype.checkMonth = function (date, months) {\n return (months.indexOf(date.getMonth() + 1) === -1);\n };\n Gregorian.prototype.compareMonth = function (date1, date2) {\n return (date1.getMonth() > date2.getMonth());\n };\n Gregorian.prototype.isSameYear = function (date1, date2) {\n return (date1.getFullYear() === date2.getFullYear());\n };\n Gregorian.prototype.isLastMonth = function (date) {\n return (date.getMonth() === 11);\n };\n Gregorian.prototype.isLeapYear = function (year, interval) {\n return ((year + interval) % 4 === 0);\n };\n return Gregorian;\n}());\nexport { Gregorian };\n/** @private */\nvar Islamic = /** @class */ (function () {\n function Islamic() {\n }\n Islamic.prototype.firstDateOfMonth = function (date) {\n var hDate = this.getHijriDate(date);\n var gDate = HijriParser.toGregorian(hDate.year, hDate.month, 1);\n return gDate;\n };\n Islamic.prototype.lastDateOfMonth = function (date) {\n var hDate = this.getHijriDate(date);\n var daysInMonth = this.getDaysInMonth(hDate.month, hDate.year);\n var gDate = HijriParser.toGregorian(hDate.year, hDate.month, daysInMonth);\n var finalGDate = new Date(gDate.getTime());\n finalGDate = new Date(finalGDate.setDate(finalGDate.getDate() + 1));\n var finalHDate = this.getHijriDate(finalGDate);\n if (hDate.month === finalHDate.month) {\n return finalGDate;\n }\n finalHDate = this.getHijriDate(gDate);\n if (hDate.month === finalHDate.month) {\n return gDate;\n }\n return new Date(gDate.setDate(gDate.getDate() - 1));\n };\n Islamic.prototype.isMonthStart = function (date) {\n var hijriDate = this.getHijriDate(date);\n return (hijriDate.date === 1);\n };\n Islamic.prototype.getLeapYearDaysCount = function () {\n return 355;\n };\n Islamic.prototype.getYearDaysCount = function (date, interval) {\n var hDate = this.getHijriDate(date);\n return this.isLeapYear(hDate.year, interval) ? 355 : 354;\n };\n Islamic.prototype.getDate = function (date) {\n var hijriDate = this.getHijriDate(date);\n return hijriDate.date;\n };\n Islamic.prototype.getMonth = function (date) {\n var hDate = this.getHijriDate(date);\n return hDate.month;\n };\n Islamic.prototype.getFullYear = function (date) {\n var hDate = this.getHijriDate(date);\n return hDate.year;\n };\n Islamic.prototype.getYearLastDate = function (date, interval) {\n var hDate = this.getHijriDate(date);\n var gDate = HijriParser.toGregorian(hDate.year + interval, 1, 0);\n return gDate;\n };\n Islamic.prototype.getMonthDaysCount = function (date) {\n var maxDate = this.lastDateOfMonth(date);\n var hijriDate = this.getHijriDate(maxDate);\n return hijriDate.date;\n };\n Islamic.prototype.getMonthStartDate = function (date) {\n var firstDate = this.firstDateOfMonth(date);\n return new Date(firstDate.getFullYear(), firstDate.getMonth(), firstDate.getDate(), date.getHours(), date.getMinutes());\n };\n Islamic.prototype.getMonthEndDate = function (date) {\n var lastDate = this.lastDateOfMonth(date);\n lastDate.setDate(lastDate.getDate() + 1);\n return new Date(lastDate.setMonth(lastDate.getMonth()));\n };\n Islamic.prototype.getExpectedDays = function (date, days) {\n var hDate = this.getHijriDate(date);\n var day = [];\n for (var i = 0; i < days.length; i++) {\n var gDate = HijriParser.toGregorian(hDate.year, hDate.month, days[parseInt(i.toString(), 10)]);\n day.push(gDate.getDate());\n }\n return day;\n };\n Islamic.prototype.setDate = function (dateObj, date) {\n var hDate = this.getHijriDate(dateObj);\n var gDate = HijriParser.toGregorian(hDate.year, hDate.month, date);\n this.updateDateObj(dateObj, gDate);\n };\n Islamic.prototype.setValidDate = function (date, interval, startDate, monthValue, beginDate) {\n var firstDate = (!isNullOrUndefined(beginDate)) ? this.firstDateOfMonth(beginDate) : date;\n var hDate = this.getHijriDate(firstDate);\n var gDate = HijriParser.toGregorian(hDate.year, hDate.month + interval, startDate);\n this.updateDateObj(date, gDate);\n };\n Islamic.prototype.setMonth = function (date, interval, startDate) {\n var hDate = this.getHijriDate(date);\n var gDate = HijriParser.toGregorian(hDate.year, interval, startDate);\n this.updateDateObj(date, gDate);\n };\n Islamic.prototype.addYears = function (date, interval, monthValue) {\n var hDate = this.getHijriDate(date);\n var gDate = HijriParser.toGregorian(hDate.year + interval, monthValue, 1);\n this.updateDateObj(date, gDate);\n };\n Islamic.prototype.isSameMonth = function (date1, date2) {\n var currentHijri = this.getHijriDate(date1);\n var tempHijri = this.getHijriDate(date2);\n return (currentHijri.month === tempHijri.month);\n };\n Islamic.prototype.checkMonth = function (date, months) {\n var hDate = this.getHijriDate(date);\n return (months.indexOf(hDate.month) === -1);\n };\n Islamic.prototype.compareMonth = function (date1, date2) {\n var hDate = this.getHijriDate(date1);\n var hDate1 = this.getHijriDate(date2);\n return (hDate.month > hDate1.month);\n };\n Islamic.prototype.isSameYear = function (date1, date2) {\n var hDate = this.getHijriDate(date1);\n var hDate1 = this.getHijriDate(date2);\n return (hDate.year === hDate1.year);\n };\n Islamic.prototype.isLastMonth = function (date) {\n var hDate = this.getHijriDate(date);\n return (hDate.month === 12);\n };\n Islamic.prototype.updateDateObj = function (date, gDate) {\n date.setFullYear(gDate.getFullYear(), gDate.getMonth(), gDate.getDate());\n };\n Islamic.prototype.isLeapYear = function (year, interval) {\n return (14 + 11 * (year + interval)) % 30 < 11;\n };\n Islamic.prototype.getDaysInMonth = function (month, year) {\n var length = 0;\n length = 29 + ((month + 1) % 2);\n if (month === 11 && this.isLeapYear(year, 0)) {\n length++;\n }\n return length;\n };\n Islamic.prototype.getHijriDate = function (date) {\n return HijriParser.getHijriDate(date);\n };\n return Islamic;\n}());\nexport { Islamic };\n","/**\n * Time zone\n */\nvar Timezone = /** @class */ (function () {\n function Timezone() {\n this.timezoneData = [];\n this.timezoneData = this.getTimezoneData();\n }\n Timezone.prototype.offset = function (date, timezone) {\n var localOffset = date.getTimezoneOffset();\n try {\n var convertedDate = new Date(date.toLocaleString('en-US', { timeZone: timezone }));\n if (!isNaN(convertedDate.getTime())) {\n return ((date.getTime() - convertedDate.getTime()) / 60000) + localOffset;\n }\n return 0;\n }\n catch (error) {\n return 0;\n }\n };\n Timezone.prototype.convert = function (date, fromOffset, toOffset) {\n if (typeof fromOffset === 'string') {\n fromOffset = this.offset(date, fromOffset);\n }\n if (typeof toOffset === 'string') {\n toOffset = this.offset(date, toOffset);\n }\n var fromLocalOffset = date.getTimezoneOffset();\n date = new Date(date.getTime() + (fromOffset - toOffset) * 60000);\n var toLocalOffset = date.getTimezoneOffset();\n return new Date(date.getTime() + (toLocalOffset - fromLocalOffset) * 60000);\n };\n Timezone.prototype.add = function (date, timezone) {\n return this.convert(date, date.getTimezoneOffset(), timezone);\n };\n Timezone.prototype.remove = function (date, timezone) {\n return this.convert(date, timezone, date.getTimezoneOffset());\n };\n Timezone.prototype.removeLocalOffset = function (date) {\n return new Date(date.getTime() - (date.getTimezoneOffset() * 60000));\n };\n Timezone.prototype.getLocalTimezoneName = function () {\n return window.Intl ? Intl.DateTimeFormat().resolvedOptions().timeZone || 'UTC' : 'UTC';\n };\n Timezone.prototype.getTimezoneData = function () {\n return timezoneData;\n };\n return Timezone;\n}());\nexport { Timezone };\nexport var timezoneData = [\n { Value: 'Pacific/Niue', Text: '(UTC-11:00) Niue' },\n { Value: 'Pacific/Pago_Pago', Text: '(UTC-11:00) Pago Pago' },\n { Value: 'Pacific/Honolulu', Text: '(UTC-10:00) Hawaii Time' },\n { Value: 'Pacific/Rarotonga', Text: '(UTC-10:00) Rarotonga' },\n { Value: 'Pacific/Tahiti', Text: '(UTC-10:00) Tahiti' },\n { Value: 'Pacific/Marquesas', Text: '(UTC-09:30) Marquesas' },\n { Value: 'America/Anchorage', Text: '(UTC-09:00) Alaska Time' },\n { Value: 'Pacific/Gambier', Text: '(UTC-09:00) Gambier' },\n { Value: 'America/Los_Angeles', Text: '(UTC-08:00) Pacific Time' },\n { Value: 'America/Tijuana', Text: '(UTC-08:00) Pacific Time - Tijuana' },\n { Value: 'America/Vancouver', Text: '(UTC-08:00) Pacific Time - Vancouver' },\n { Value: 'America/Whitehorse', Text: '(UTC-08:00) Pacific Time - Whitehorse' },\n { Value: 'Pacific/Pitcairn', Text: '(UTC-08:00) Pitcairn' },\n { Value: 'America/Denver', Text: '(UTC-07:00) Mountain Time' },\n { Value: 'America/Phoenix', Text: '(UTC-07:00) Mountain Time - Arizona' },\n { Value: 'America/Mazatlan', Text: '(UTC-07:00) Mountain Time - Chihuahua, Mazatlan' },\n { Value: 'America/Dawson_Creek', Text: '(UTC-07:00) Mountain Time - Dawson Creek' },\n { Value: 'America/Edmonton', Text: '(UTC-07:00) Mountain Time - Edmonton' },\n { Value: 'America/Hermosillo', Text: '(UTC-07:00) Mountain Time - Hermosillo' },\n { Value: 'America/Yellowknife', Text: '(UTC-07:00) Mountain Time - Yellowknife' },\n { Value: 'America/Belize', Text: '(UTC-06:00) Belize' },\n { Value: 'America/Chicago', Text: '(UTC-06:00) Central Time' },\n { Value: 'America/Mexico_City', Text: '(UTC-06:00) Central Time - Mexico City' },\n { Value: 'America/Regina', Text: '(UTC-06:00) Central Time - Regina' },\n { Value: 'America/Tegucigalpa', Text: '(UTC-06:00) Central Time - Tegucigalpa' },\n { Value: 'America/Winnipeg', Text: '(UTC-06:00) Central Time - Winnipeg' },\n { Value: 'America/Costa_Rica', Text: '(UTC-06:00) Costa Rica' },\n { Value: 'America/El_Salvador', Text: '(UTC-06:00) El Salvador' },\n { Value: 'Pacific/Galapagos', Text: '(UTC-06:00) Galapagos' },\n { Value: 'America/Guatemala', Text: '(UTC-06:00) Guatemala' },\n { Value: 'America/Managua', Text: '(UTC-06:00) Managua' },\n { Value: 'America/Cancun', Text: '(UTC-05:00) America Cancun' },\n { Value: 'America/Bogota', Text: '(UTC-05:00) Bogota' },\n { Value: 'Pacific/Easter', Text: '(UTC-05:00) Easter Island' },\n { Value: 'America/New_York', Text: '(UTC-05:00) Eastern Time' },\n { Value: 'America/Iqaluit', Text: '(UTC-05:00) Eastern Time - Iqaluit' },\n { Value: 'America/Toronto', Text: '(UTC-05:00) Eastern Time - Toronto' },\n { Value: 'America/Guayaquil', Text: '(UTC-05:00) Guayaquil' },\n { Value: 'America/Havana', Text: '(UTC-05:00) Havana' },\n { Value: 'America/Jamaica', Text: '(UTC-05:00) Jamaica' },\n { Value: 'America/Lima', Text: '(UTC-05:00) Lima' },\n { Value: 'America/Nassau', Text: '(UTC-05:00) Nassau' },\n { Value: 'America/Panama', Text: '(UTC-05:00) Panama' },\n { Value: 'America/Port-au-Prince', Text: '(UTC-05:00) Port-au-Prince' },\n { Value: 'America/Rio_Branco', Text: '(UTC-05:00) Rio Branco' },\n { Value: 'America/Halifax', Text: '(UTC-04:00) Atlantic Time - Halifax' },\n { Value: 'America/Barbados', Text: '(UTC-04:00) Barbados' },\n { Value: 'Atlantic/Bermuda', Text: '(UTC-04:00) Bermuda' },\n { Value: 'America/Boa_Vista', Text: '(UTC-04:00) Boa Vista' },\n { Value: 'America/Caracas', Text: '(UTC-04:00) Caracas' },\n { Value: 'America/Curacao', Text: '(UTC-04:00) Curacao' },\n { Value: 'America/Grand_Turk', Text: '(UTC-04:00) Grand Turk' },\n { Value: 'America/Guyana', Text: '(UTC-04:00) Guyana' },\n { Value: 'America/La_Paz', Text: '(UTC-04:00) La Paz' },\n { Value: 'America/Manaus', Text: '(UTC-04:00) Manaus' },\n { Value: 'America/Martinique', Text: '(UTC-04:00) Martinique' },\n { Value: 'America/Port_of_Spain', Text: '(UTC-04:00) Port of Spain' },\n { Value: 'America/Porto_Velho', Text: '(UTC-04:00) Porto Velho' },\n { Value: 'America/Puerto_Rico', Text: '(UTC-04:00) Puerto Rico' },\n { Value: 'America/Santo_Domingo', Text: '(UTC-04:00) Santo Domingo' },\n { Value: 'America/Thule', Text: '(UTC-04:00) Thule' },\n { Value: 'America/St_Johns', Text: '(UTC-03:30) Newfoundland Time - St. Johns' },\n { Value: 'America/Araguaina', Text: '(UTC-03:00) Araguaina' },\n { Value: 'America/Asuncion', Text: '(UTC-03:00) Asuncion' },\n { Value: 'America/Belem', Text: '(UTC-03:00) Belem' },\n { Value: 'America/Argentina/Buenos_Aires', Text: '(UTC-03:00) Buenos Aires' },\n { Value: 'America/Campo_Grande', Text: '(UTC-03:00) Campo Grande' },\n { Value: 'America/Cayenne', Text: '(UTC-03:00) Cayenne' },\n { Value: 'America/Cuiaba', Text: '(UTC-03:00) Cuiaba' },\n { Value: 'America/Fortaleza', Text: '(UTC-03:00) Fortaleza' },\n { Value: 'America/Godthab', Text: '(UTC-03:00) Godthab' },\n { Value: 'America/Maceio', Text: '(UTC-03:00) Maceio' },\n { Value: 'America/Miquelon', Text: '(UTC-03:00) Miquelon' },\n { Value: 'America/Montevideo', Text: '(UTC-03:00) Montevideo' },\n { Value: 'Antarctica/Palmer', Text: '(UTC-03:00) Palmer' },\n { Value: 'America/Paramaribo', Text: '(UTC-03:00) Paramaribo' },\n { Value: 'America/Punta_Arenas', Text: '(UTC-03:00) Punta Arenas' },\n { Value: 'America/Recife', Text: '(UTC-03:00) Recife' },\n { Value: 'Antarctica/Rothera', Text: '(UTC-03:00) Rothera' },\n { Value: 'America/Bahia', Text: '(UTC-03:00) Salvador' },\n { Value: 'America/Santiago', Text: '(UTC-03:00) Santiago' },\n { Value: 'Atlantic/Stanley', Text: '(UTC-03:00) Stanley' },\n { Value: 'America/Noronha', Text: '(UTC-02:00) Noronha' },\n { Value: 'America/Sao_Paulo', Text: '(UTC-02:00) Sao Paulo' },\n { Value: 'Atlantic/South_Georgia', Text: '(UTC-02:00) South Georgia' },\n { Value: 'Atlantic/Azores', Text: '(UTC-01:00) Azores' },\n { Value: 'Atlantic/Cape_Verde', Text: '(UTC-01:00) Cape Verde' },\n { Value: 'America/Scoresbysund', Text: '(UTC-01:00) Scoresbysund' },\n { Value: 'Africa/Abidjan', Text: '(UTC+00:00) Abidjan' },\n { Value: 'Africa/Accra', Text: '(UTC+00:00) Accra' },\n { Value: 'Africa/Bissau', Text: '(UTC+00:00) Bissau' },\n { Value: 'Atlantic/Canary', Text: '(UTC+00:00) Canary Islands' },\n { Value: 'Africa/Casablanca', Text: '(UTC+00:00) Casablanca' },\n { Value: 'America/Danmarkshavn', Text: '(UTC+00:00) Danmarkshavn' },\n { Value: 'Europe/Dublin', Text: '(UTC+00:00) Dublin' },\n { Value: 'Africa/El_Aaiun', Text: '(UTC+00:00) El Aaiun' },\n { Value: 'Atlantic/Faroe', Text: '(UTC+00:00) Faeroe' },\n { Value: 'Etc/UTC', Text: '(UTC+00:00) UTC (no daylight saving)' },\n { Value: 'Europe/Lisbon', Text: '(UTC+00:00) Lisbon' },\n { Value: 'Europe/London', Text: '(UTC+00:00) London' },\n { Value: 'Africa/Monrovia', Text: '(UTC+00:00) Monrovia' },\n { Value: 'Atlantic/Reykjavik', Text: '(UTC+00:00) Reykjavik' },\n { Value: 'UTC', Text: 'UTC' },\n { Value: 'Africa/Algiers', Text: '(UTC+01:00) Algiers' },\n { Value: 'Europe/Amsterdam', Text: '(UTC+01:00) Amsterdam' },\n { Value: 'Europe/Andorra', Text: '(UTC+01:00) Andorra' },\n { Value: 'Europe/Berlin', Text: '(UTC+01:00) Berlin' },\n { Value: 'Europe/Brussels', Text: '(UTC+01:00) Brussels' },\n { Value: 'Europe/Budapest', Text: '(UTC+01:00) Budapest' },\n { Value: 'Europe/Belgrade', Text: '(UTC+01:00) Central European Time - Belgrade' },\n { Value: 'Europe/Prague', Text: '(UTC+01:00) Central European Time - Prague' },\n { Value: 'Africa/Ceuta', Text: '(UTC+01:00) Ceuta' },\n { Value: 'Europe/Copenhagen', Text: '(UTC+01:00) Copenhagen' },\n { Value: 'Europe/Gibraltar', Text: '(UTC+01:00) Gibraltar' },\n { Value: 'Africa/Lagos', Text: '(UTC+01:00) Lagos' },\n { Value: 'Europe/Luxembourg', Text: '(UTC+01:00) Luxembourg' },\n { Value: 'Europe/Madrid', Text: '(UTC+01:00) Madrid' },\n { Value: 'Europe/Malta', Text: '(UTC+01:00) Malta' },\n { Value: 'Europe/Monaco', Text: '(UTC+01:00) Monaco' },\n { Value: 'Africa/Ndjamena', Text: '(UTC+01:00) Ndjamena' },\n { Value: 'Europe/Oslo', Text: '(UTC+01:00) Oslo' },\n { Value: 'Europe/Paris', Text: '(UTC+01:00) Paris' },\n { Value: 'Europe/Rome', Text: '(UTC+01:00) Rome' },\n { Value: 'Europe/Stockholm', Text: '(UTC+01:00) Stockholm' },\n { Value: 'Europe/Tirane', Text: '(UTC+01:00) Tirane' },\n { Value: 'Africa/Tunis', Text: '(UTC+01:00) Tunis' },\n { Value: 'Europe/Vienna', Text: '(UTC+01:00) Vienna' },\n { Value: 'Europe/Warsaw', Text: '(UTC+01:00) Warsaw' },\n { Value: 'Europe/Zurich', Text: '(UTC+01:00) Zurich' },\n { Value: 'Asia/Amman', Text: '(UTC+02:00) Amman' },\n { Value: 'Europe/Athens', Text: '(UTC+02:00) Athens' },\n { Value: 'Asia/Beirut', Text: '(UTC+02:00) Beirut' },\n { Value: 'Europe/Bucharest', Text: '(UTC+02:00) Bucharest' },\n { Value: 'Africa/Cairo', Text: '(UTC+02:00) Cairo' },\n { Value: 'Europe/Chisinau', Text: '(UTC+02:00) Chisinau' },\n { Value: 'Asia/Damascus', Text: '(UTC+02:00) Damascus' },\n { Value: 'Asia/Gaza', Text: '(UTC+02:00) Gaza' },\n { Value: 'Europe/Helsinki', Text: '(UTC+02:00) Helsinki' },\n { Value: 'Asia/Jerusalem', Text: '(UTC+02:00) Jerusalem' },\n { Value: 'Africa/Johannesburg', Text: '(UTC+02:00) Johannesburg' },\n { Value: 'Africa/Khartoum', Text: '(UTC+02:00) Khartoum' },\n { Value: 'Europe/Kiev', Text: '(UTC+02:00) Kiev' },\n { Value: 'Africa/Maputo', Text: '(UTC+02:00) Maputo' },\n { Value: 'Europe/Kaliningrad', Text: '(UTC+02:00) Moscow-01 - Kaliningrad' },\n { Value: 'Asia/Nicosia', Text: '(UTC+02:00) Nicosia' },\n { Value: 'Europe/Riga', Text: '(UTC+02:00) Riga' },\n { Value: 'Europe/Sofia', Text: '(UTC+02:00) Sofia' },\n { Value: 'Europe/Tallinn', Text: '(UTC+02:00) Tallinn' },\n { Value: 'Africa/Tripoli', Text: '(UTC+02:00) Tripoli' },\n { Value: 'Europe/Vilnius', Text: '(UTC+02:00) Vilnius' },\n { Value: 'Africa/Windhoek', Text: '(UTC+02:00) Windhoek' },\n { Value: 'Asia/Baghdad', Text: '(UTC+03:00) Baghdad' },\n { Value: 'Europe/Istanbul', Text: '(UTC+03:00) Istanbul' },\n { Value: 'Europe/Minsk', Text: '(UTC+03:00) Minsk' },\n { Value: 'Europe/Moscow', Text: '(UTC+03:00) Moscow+00 - Moscow' },\n { Value: 'Africa/Nairobi', Text: '(UTC+03:00) Nairobi' },\n { Value: 'Asia/Qatar', Text: '(UTC+03:00) Qatar' },\n { Value: 'Asia/Riyadh', Text: '(UTC+03:00) Riyadh' },\n { Value: 'Antarctica/Syowa', Text: '(UTC+03:00) Syowa' },\n { Value: 'Asia/Tehran', Text: '(UTC+03:30) Tehran' },\n { Value: 'Asia/Baku', Text: '(UTC+04:00) Baku' },\n { Value: 'Asia/Dubai', Text: '(UTC+04:00) Dubai' },\n { Value: 'Indian/Mahe', Text: '(UTC+04:00) Mahe' },\n { Value: 'Indian/Mauritius', Text: '(UTC+04:00) Mauritius' },\n { Value: 'Europe/Samara', Text: '(UTC+04:00) Moscow+01 - Samara' },\n { Value: 'Indian/Reunion', Text: '(UTC+04:00) Reunion' },\n { Value: 'Asia/Tbilisi', Text: '(UTC+04:00) Tbilisi' },\n { Value: 'Asia/Yerevan', Text: '(UTC+04:00) Yerevan' },\n { Value: 'Asia/Kabul', Text: '(UTC+04:30) Kabul' },\n { Value: 'Asia/Aqtau', Text: '(UTC+05:00) Aqtau' },\n { Value: 'Asia/Aqtobe', Text: '(UTC+05:00) Aqtobe' },\n { Value: 'Asia/Ashgabat', Text: '(UTC+05:00) Ashgabat' },\n { Value: 'Asia/Dushanbe', Text: '(UTC+05:00) Dushanbe' },\n { Value: 'Asia/Karachi', Text: '(UTC+05:00) Karachi' },\n { Value: 'Indian/Kerguelen', Text: '(UTC+05:00) Kerguelen' },\n { Value: 'Indian/Maldives', Text: '(UTC+05:00) Maldives' },\n { Value: 'Antarctica/Mawson', Text: '(UTC+05:00) Mawson' },\n { Value: 'Asia/Yekaterinburg', Text: '(UTC+05:00) Moscow+02 - Yekaterinburg' },\n { Value: 'Asia/Tashkent', Text: '(UTC+05:00) Tashkent' },\n { Value: 'Asia/Colombo', Text: '(UTC+05:30) Colombo' },\n { Value: 'Asia/Kolkata', Text: '(UTC+05:30) India Standard Time' },\n { Value: 'Asia/Katmandu', Text: '(UTC+05:45) Katmandu' },\n { Value: 'Asia/Almaty', Text: '(UTC+06:00) Almaty' },\n { Value: 'Asia/Bishkek', Text: '(UTC+06:00) Bishkek' },\n { Value: 'Indian/Chagos', Text: '(UTC+06:00) Chagos' },\n { Value: 'Asia/Dhaka', Text: '(UTC+06:00) Dhaka' },\n { Value: 'Asia/Omsk', Text: '(UTC+06:00) Moscow+03 - Omsk' },\n { Value: 'Asia/Thimphu', Text: '(UTC+06:00) Thimphu' },\n { Value: 'Antarctica/Vostok', Text: '(UTC+06:00) Vostok' },\n { Value: 'Indian/Cocos', Text: '(UTC+06:30) Cocos' },\n { Value: 'Asia/Yangon', Text: '(UTC+06:30) Rangoon' },\n { Value: 'Asia/Bangkok', Text: '(UTC+07:00) Bangkok' },\n { Value: 'Indian/Christmas', Text: '(UTC+07:00) Christmas' },\n { Value: 'Antarctica/Davis', Text: '(UTC+07:00) Davis' },\n { Value: 'Asia/Saigon', Text: '(UTC+07:00) Hanoi' },\n { Value: 'Asia/Hovd', Text: '(UTC+07:00) Hovd' },\n { Value: 'Asia/Jakarta', Text: '(UTC+07:00) Jakarta' },\n { Value: 'Asia/Krasnoyarsk', Text: '(UTC+07:00) Moscow+04 - Krasnoyarsk' },\n { Value: 'Asia/Brunei', Text: '(UTC+08:00) Brunei' },\n { Value: 'Asia/Shanghai', Text: '(UTC+08:00) China Time - Beijing' },\n { Value: 'Asia/Choibalsan', Text: '(UTC+08:00) Choibalsan' },\n { Value: 'Asia/Hong_Kong', Text: '(UTC+08:00) Hong Kong' },\n { Value: 'Asia/Kuala_Lumpur', Text: '(UTC+08:00) Kuala Lumpur' },\n { Value: 'Asia/Macau', Text: '(UTC+08:00) Macau' },\n { Value: 'Asia/Makassar', Text: '(UTC+08:00) Makassar' },\n { Value: 'Asia/Manila', Text: '(UTC+08:00) Manila' },\n { Value: 'Asia/Irkutsk', Text: '(UTC+08:00) Moscow+05 - Irkutsk' },\n { Value: 'Asia/Singapore', Text: '(UTC+08:00) Singapore' },\n { Value: 'Asia/Taipei', Text: '(UTC+08:00) Taipei' },\n { Value: 'Asia/Ulaanbaatar', Text: '(UTC+08:00) Ulaanbaatar' },\n { Value: 'Australia/Perth', Text: '(UTC+08:00) Western Time - Perth' },\n { Value: 'Asia/Pyongyang', Text: '(UTC+08:30) Pyongyang' },\n { Value: 'Asia/Dili', Text: '(UTC+09:00) Dili' },\n { Value: 'Asia/Jayapura', Text: '(UTC+09:00) Jayapura' },\n { Value: 'Asia/Yakutsk', Text: '(UTC+09:00) Moscow+06 - Yakutsk' },\n { Value: 'Pacific/Palau', Text: '(UTC+09:00) Palau' },\n { Value: 'Asia/Seoul', Text: '(UTC+09:00) Seoul' },\n { Value: 'Asia/Tokyo', Text: '(UTC+09:00) Tokyo' },\n { Value: 'Australia/Darwin', Text: '(UTC+09:30) Central Time - Darwin' },\n { Value: 'Antarctica/DumontDUrville', Text: '(UTC+10:00) Dumont D\"Urville' },\n { Value: 'Australia/Brisbane', Text: '(UTC+10:00) Eastern Time - Brisbane' },\n { Value: 'Pacific/Guam', Text: '(UTC+10:00) Guam' },\n { Value: 'Asia/Vladivostok', Text: '(UTC+10:00) Moscow+07 - Vladivostok' },\n { Value: 'Pacific/Port_Moresby', Text: '(UTC+10:00) Port Moresby' },\n { Value: 'Pacific / Chuuk', Text: '(UTC+10:00) Truk' },\n { Value: 'Australia/Adelaide', Text: '(UTC+10:30) Central Time - Adelaide' },\n { Value: 'Antarctica/Casey', Text: '(UTC+11:00) Casey' },\n { Value: 'Australia/Hobart', Text: '(UTC+11:00) Eastern Time - Hobart' },\n { Value: 'Australia/Sydney', Text: '(UTC+11:00) Eastern Time - Melbourne, Sydney' },\n { Value: 'Pacific/Efate', Text: '(UTC+11:00) Efate' },\n { Value: 'Pacific/Guadalcanal', Text: '(UTC+11:00) Guadalcanal' },\n { Value: 'Pacific/Kosrae', Text: '(UTC+11:00) Kosrae' },\n { Value: 'Asia/Magadan', Text: '(UTC+11:00) Moscow+08 - Magadan' },\n { Value: 'Pacific / Norfolk', Text: '(UTC+11:00) Norfolk' },\n { Value: 'Pacific/Noumea', Text: '(UTC+11:00) Noumea' },\n { Value: 'Pacific/Pohnpei', Text: '(UTC+11:00) Ponape' },\n { Value: 'Pacific/Funafuti', Text: '(UTC+12:00) Funafuti' },\n { Value: 'Pacific/Kwajalein', Text: '(UTC+12:00) Kwajalein' },\n { Value: 'Pacific/Majuro', Text: '(UTC+12:00) Majuro' },\n { Value: 'Asia/Kamchatka', Text: '(UTC+12:00) Moscow+09 - Petropavlovsk - Kamchatskiy' },\n { Value: 'Pacific / Nauru', Text: '(UTC+12:00) Nauru' },\n { Value: 'Pacific/Tarawa', Text: '(UTC+12:00) Tarawa' },\n { Value: 'Pacific/Wake', Text: '(UTC+12:00) Wake' },\n { Value: 'Pacific/Wallis', Text: '(UTC+12:00) Wallis' },\n { Value: 'Pacific/Auckland', Text: '(UTC+13:00) Auckland' },\n { Value: 'Pacific/Enderbury', Text: '(UTC+13:00) Enderbury' },\n { Value: 'Pacific/Fakaofo', Text: '(UTC+13:00) Fakaofo' },\n { Value: 'Pacific/Fiji', Text: '(UTC+13:00) Fiji' },\n { Value: 'Pacific/Tongatapu', Text: '(UTC+13:00) Tongatapu' },\n { Value: 'Pacific/Apia', Text: '(UTC+14:00) Apia' },\n { Value: 'Pacific/Kiritimati', Text: '(UTC+14:00) Kiritimati' }\n];\n","/* eslint-disable max-len */\nimport { isNullOrUndefined, getDefaultDateObject, getValue, cldrData } from '@syncfusion/ej2-base';\nimport { MS_PER_DAY, addDays, resetTime, capitalizeFirstWord } from '../schedule/base/util';\nimport { Islamic, Gregorian } from '../common/calendar-util';\nimport { Timezone } from '../schedule/timezone/timezone';\n/**\n * Date Generator from Recurrence Rule\n */\n/**\n * Generate Summary from Recurrence Rule\n *\n * @param {string} rule Accepts the Recurrence rule\n * @param {L10n} localeObject Accepts the locale object\n * @param {string} locale Accepts the locale name\n * @param {CalendarType} calendarType Accepts the calendar type\n * @returns {string} Returns the summary string from given recurrence rule\n */\nexport function generateSummary(rule, localeObject, locale, calendarType) {\n if (calendarType === void 0) { calendarType = 'Gregorian'; }\n var ruleObject = extractObjectFromRule(rule);\n var summary = localeObject.getConstant(EVERY) + ' ';\n var cldrObj;\n var cldrObj1;\n var calendarMode = calendarType.toLowerCase();\n if (locale === 'en' || locale === 'en-US') {\n var nameSpace1 = 'months.stand-alone.abbreviated';\n var nameSpace = 'days.stand-alone.abbreviated';\n cldrObj1 = (getValue(nameSpace1, getDefaultDateObject(calendarMode)));\n cldrObj = (getValue(nameSpace, getDefaultDateObject(calendarMode)));\n }\n else {\n var nameSpace1 = 'main.' + locale + '.dates.calendars.' + calendarMode + '.months.stand-alone.abbreviated';\n var nameSpace = 'main.' + locale + '.dates.calendars.' + calendarMode + '.days.stand-alone.abbreviated';\n cldrObj1 =\n (getValue(nameSpace1, cldrData));\n cldrObj =\n (getValue(nameSpace, cldrData));\n }\n if (ruleObject.interval > 1) {\n summary += ruleObject.interval + ' ';\n }\n switch (ruleObject.freq) {\n case 'DAILY':\n summary += localeObject.getConstant(DAYS);\n break;\n case 'WEEKLY':\n summary += localeObject.getConstant(WEEKS) + ' ' + localeObject.getConstant(ON) + ' ';\n ruleObject.day.forEach(function (day, index) {\n summary += capitalizeFirstWord(getValue(DAYINDEXOBJECT[\"\" + day], cldrObj), 'single');\n summary += (((ruleObject.day.length - 1) === index) ? '' : ', ');\n });\n break;\n case 'MONTHLY':\n summary += localeObject.getConstant(MONTHS) + ' ' + localeObject.getConstant(ON) + ' ';\n summary += getMonthSummary(ruleObject, cldrObj, localeObject);\n break;\n case 'YEARLY':\n summary += localeObject.getConstant(YEARS) + ' ' + localeObject.getConstant(ON) + ' ';\n summary += capitalizeFirstWord(getValue((ruleObject.month[0]).toString(), cldrObj1), 'single') + ' ';\n summary += getMonthSummary(ruleObject, cldrObj, localeObject);\n break;\n }\n if (ruleObject.count) {\n summary += ', ' + (ruleObject.count) + ' ' + localeObject.getConstant(TIMES);\n }\n else if (ruleObject.until) {\n var tempDate = ruleObject.until;\n summary += ', ' + localeObject.getConstant(UNTIL)\n + ' ' + tempDate.getDate()\n + ' ' + capitalizeFirstWord(getValue((tempDate.getMonth() + 1).toString(), cldrObj1), 'single')\n + ' ' + tempDate.getFullYear();\n }\n return summary;\n}\n/**\n * Generates Month summary\n *\n * @param {RecRule} ruleObject Accepts the recurrence rule object\n * @param {string[]} cldrObj Accepts the collections of month name from calendar\n * @param {L10n} localeObj Accepts the locale object\n * @returns {string} Returns the month summary string from given recurrence rule object\n * @private\n */\nfunction getMonthSummary(ruleObject, cldrObj, localeObj) {\n var summary = '';\n if (ruleObject.monthDay.length) {\n summary += ruleObject.monthDay[0];\n }\n else if (ruleObject.day) {\n var pos = ruleObject.setPosition - 1;\n summary += localeObj.getConstant(WEEKPOS[pos > -1 ? pos : (WEEKPOS.length - 1)])\n + ' ' + capitalizeFirstWord(getValue(DAYINDEXOBJECT[ruleObject.day[0]], cldrObj), 'single');\n }\n return summary;\n}\n/**\n * Generates the date collections from the given recurrence rule\n *\n * @param {Date} startDate Accepts the rule start date\n * @param {string} rule Accepts the recurrence rule\n * @param {string} excludeDate Accepts the exception dates in string format\n * @param {number} startDayOfWeek Accepts the start day index of week\n * @param {number} maximumCount Accepts the maximum number count to generate date collections\n * @param {Date} viewDate Accepts the current date instead of start date\n * @param {CalendarType} calendarMode Accepts the calendar type\n * @param {string} oldTimezone Accepts the timezone name\n * @param {string} newTimezone Accepts the timezone name\n * @returns {number[]} Returns the collection of dates\n */\nexport function generate(startDate, rule, excludeDate, startDayOfWeek, maximumCount, viewDate, calendarMode, oldTimezone, newTimezone) {\n if (maximumCount === void 0) { maximumCount = MAXOCCURRENCE; }\n if (viewDate === void 0) { viewDate = null; }\n if (calendarMode === void 0) { calendarMode = 'Gregorian'; }\n if (oldTimezone === void 0) { oldTimezone = null; }\n if (newTimezone === void 0) { newTimezone = null; }\n var ruleObject = extractObjectFromRule(rule);\n var cacheDate;\n calendarUtil = getCalendarUtil(calendarMode);\n var data = [];\n var modifiedDate = new Date(startDate.getTime());\n tempExcludeDate = [];\n var tempDate = isNullOrUndefined(excludeDate) ? [] : excludeDate.split(',');\n var tz = new Timezone();\n tempDate.forEach(function (content) {\n var parsedDate = getDateFromRecurrenceDateString(content);\n if (oldTimezone && newTimezone) {\n parsedDate = tz.convert(new Date(parsedDate.getTime()), oldTimezone, newTimezone);\n }\n tempExcludeDate.push(new Date(parsedDate.getTime()).setHours(0, 0, 0, 0));\n });\n ruleObject.recExceptionCount = !isNullOrUndefined(ruleObject.count) ? tempExcludeDate.length : 0;\n if (viewDate && viewDate > startDate && !ruleObject.count) {\n tempViewDate = new Date(new Date(viewDate.getTime()).setHours(0, 0, 0));\n }\n else {\n tempViewDate = null;\n }\n if (!ruleObject.until && tempViewDate) {\n cacheDate = new Date(tempViewDate.getTime());\n cacheDate.setDate(tempViewDate.getDate() + maximumCount * (ruleObject.interval));\n ruleObject.until = cacheDate;\n }\n if (ruleObject.until && startDate > ruleObject.until) {\n return data;\n }\n maxOccurrence = maximumCount;\n setFirstDayOfWeek(DAYINDEX[parseInt(startDayOfWeek.toString(), 10)]);\n if (ruleObject.until) {\n var end = resetTime(ruleObject.until);\n ruleObject.until = new Date(end.getFullYear(), end.getMonth(), end.getDate(), 23, 59, 59);\n }\n switch (ruleObject.freq) {\n case 'DAILY':\n dailyType(modifiedDate, ruleObject.until, data, ruleObject);\n break;\n case 'WEEKLY':\n weeklyType(modifiedDate, ruleObject.until, data, ruleObject);\n break;\n case 'MONTHLY':\n monthlyType(modifiedDate, ruleObject.until, data, ruleObject);\n break;\n case 'YEARLY':\n yearlyType(modifiedDate, ruleObject.until, data, ruleObject);\n }\n return data;\n}\n/**\n * Generate date object from given date string\n *\n * @param {string} recDateString Accepts the exception date as string\n * @returns {Date} Returns the date from exception date string\n */\nexport function getDateFromRecurrenceDateString(recDateString) {\n return new Date(recDateString.substr(0, 4) +\n '-' + recDateString.substr(4, 2) +\n '-' + recDateString.substr(6, 5) +\n ':' + recDateString.substr(11, 2) +\n ':' + recDateString.substr(13));\n}\n/**\n * Internal method to handle exclude date\n *\n * @param {number[]} data Accepts the exception date collections\n * @param {number} date Accepts the new exclude date\n * @returns {void}\n * @private\n */\nfunction excludeDateHandler(data, date) {\n var zeroIndex = new Date(date).setHours(0, 0, 0, 0);\n if (tempExcludeDate.indexOf(zeroIndex) === -1 && (!tempViewDate || zeroIndex >= tempViewDate.getTime())) {\n data.push(date);\n }\n}\n/**\n * Internal method for get date count\n *\n * @param {Date} startDate Accepts the date\n * @param {RecRule} ruleObject Accepts the recurrence rule object\n * @returns {number} Returns the number of date count\n * @private\n */\nfunction getDateCount(startDate, ruleObject) {\n var count = maxOccurrence;\n if (ruleObject.count) {\n count = ruleObject.count;\n }\n else if (ruleObject.until) {\n if (ruleObject.freq === 'DAILY' || ruleObject.freq === 'WEEKLY') {\n count = Math.floor((ruleObject.until.getTime() - startDate.getTime()) / MS_PER_DAY) + 1;\n }\n else if (ruleObject.freq === 'MONTHLY' || ruleObject.freq === 'YEARLY') {\n count = Math.floor(((ruleObject.until.getMonth() + 12 * ruleObject.until.getFullYear()) -\n (startDate.getMonth() + 12 * startDate.getFullYear())) / ruleObject.interval) +\n (ruleObject.day.length > 1 ? (Math.floor((ruleObject.until.getTime() - startDate.getTime()) / MS_PER_DAY) + 1) : 1);\n if (ruleObject.freq === 'YEARLY') {\n count = ruleObject.month.length > 1 ? (count * ruleObject.month.length) : count;\n }\n }\n }\n return count;\n}\n/**\n * Internal method for daily type recurrence rule\n *\n * @param {Date} startDate Accepts the strat date\n * @param {Date} endDate Accepts the end date\n * @param {number[]} data Accepts the collection of dates\n * @param {RecRule} ruleObject Accepts the recurrence rule object\n * @returns {void}\n * @private\n */\nfunction dailyType(startDate, endDate, data, ruleObject) {\n var tempDate = new Date(startDate.getTime());\n var interval = ruleObject.interval;\n var expectedCount = getDateCount(startDate, ruleObject);\n var state;\n var expectedDays = ruleObject.day;\n while (compareDates(tempDate, endDate)) {\n state = true;\n state = validateRules(tempDate, ruleObject);\n if (state && (expectedDays.indexOf(DAYINDEX[tempDate.getDay()]) > -1 || expectedDays.length === 0)) {\n excludeDateHandler(data, tempDate.getTime());\n if (expectedCount && (data.length + ruleObject.recExceptionCount) >= expectedCount) {\n break;\n }\n }\n tempDate.setDate(tempDate.getDate() + interval);\n if (tempDate.getHours() !== startDate.getHours()) {\n tempDate.setHours(startDate.getHours());\n }\n }\n}\n/**\n * Internal method for weekly type recurrence rule\n *\n * @param {Date} startDate Accepts the strat date\n * @param {Date} endDate Accepts the end date\n * @param {number[]} data Accepts the collection of dates\n * @param {RecRule} ruleObject Accepts the recurrence rule object\n * @returns {void}\n * @private\n */\nfunction weeklyType(startDate, endDate, data, ruleObject) {\n var tempDate = new Date(startDate.getTime());\n if (!ruleObject.day.length) {\n ruleObject.day.push(DAYINDEX[startDate.getDay()]);\n }\n var interval = ruleObject.interval;\n var expectedDays = ruleObject.day;\n var expectedCount = getDateCount(startDate, ruleObject);\n var weekState = true;\n var wkstIndex;\n var weekCollection = [];\n if (expectedDays.length > 1) {\n if (isNullOrUndefined(ruleObject.wkst) || ruleObject.wkst === '') {\n ruleObject.wkst = dayIndex[0];\n }\n wkstIndex = DAYINDEX.indexOf(ruleObject.wkst);\n while (compareDates(tempDate, endDate)) {\n var startDateDiff = DAYINDEX.indexOf(DAYINDEX[tempDate.getDay()]) - wkstIndex;\n startDateDiff = startDateDiff === -1 ? 6 : startDateDiff;\n var weekstartDate = addDays(tempDate, -startDateDiff);\n var weekendDate = addDays(weekstartDate, 6);\n var compareTempDate = new Date(tempDate.getTime());\n weekendDate = resetTime(weekendDate);\n compareTempDate = resetTime(compareTempDate);\n while (weekendDate >= compareTempDate) {\n if (expectedDays.indexOf(DAYINDEX[tempDate.getDay()]) > -1) {\n weekCollection.push([tempDate.getTime()]);\n }\n if (expectedCount && (data.length + ruleObject.recExceptionCount) >= expectedCount) {\n break;\n }\n tempDate.setDate(tempDate.getDate() + 1);\n if (tempDate.getHours() !== startDate.getHours()) {\n tempDate.setHours(startDate.getHours());\n }\n compareTempDate = new Date(tempDate.getTime());\n compareTempDate = resetTime(compareTempDate);\n }\n tempDate.setDate(tempDate.getDate() - 1);\n if (expectedCount && (data.length + ruleObject.recExceptionCount) >= expectedCount) {\n break;\n }\n tempDate.setDate((tempDate.getDate()) + 1 + ((interval - 1) * 7));\n insertDataCollection(weekCollection, weekState, startDate, endDate, data, ruleObject);\n weekCollection = [];\n }\n }\n else {\n tempDate = getStartDateForWeek(startDate, ruleObject.day);\n while (compareDates(tempDate, endDate)) {\n weekState = validateRules(tempDate, ruleObject);\n if (weekState && (expectedDays.indexOf(DAYINDEX[tempDate.getDay()]) > -1)) {\n excludeDateHandler(data, tempDate.getTime());\n }\n if (expectedCount && (data.length + ruleObject.recExceptionCount) >= expectedCount) {\n break;\n }\n tempDate.setDate(tempDate.getDate() + (interval * 7));\n }\n insertDataCollection(weekCollection, weekState, startDate, endDate, data, ruleObject);\n weekCollection = [];\n }\n}\n/**\n * Internal method for monthly type recurrence rule\n *\n * @param {Date} startDate Accepts the strat date\n * @param {Date} endDate Accepts the end date\n * @param {number[]} data Accepts the collection of dates\n * @param {RecRule} ruleObject Accepts the recurrence rule object\n * @returns {void}\n * @private\n */\nfunction monthlyType(startDate, endDate, data, ruleObject) {\n // Set monthday value if BYDAY, BYMONTH and Month day property is not set based on start date\n if (!ruleObject.month.length && !ruleObject.day.length && !ruleObject.monthDay.length) {\n ruleObject.monthDay.push(startDate.getDate());\n if (ruleObject.freq === 'YEARLY') {\n ruleObject.month.push(startDate.getMonth() + 1);\n }\n }\n else if (ruleObject.month.length > 0 && !ruleObject.day.length && !ruleObject.monthDay.length) {\n ruleObject.monthDay.push(startDate.getDate());\n }\n var ruleType = validateMonthlyRuleType(ruleObject);\n switch (ruleType) {\n case 'day':\n switch (ruleObject.freq) {\n case 'MONTHLY':\n monthlyDayTypeProcessforMonthFreq(startDate, endDate, data, ruleObject);\n break;\n case 'YEARLY':\n monthlyDayTypeProcess(startDate, endDate, data, ruleObject);\n break;\n }\n break;\n case 'both':\n case 'date':\n switch (ruleObject.freq) {\n case 'MONTHLY':\n monthlyDateTypeProcessforMonthFreq(startDate, endDate, data, ruleObject);\n break;\n case 'YEARLY':\n monthlyDateTypeProcess(startDate, endDate, data, ruleObject);\n break;\n }\n break;\n }\n}\n/**\n * Internal method for yearly type recurrence rule\n *\n * @param {Date} startDate Accepts the strat date\n * @param {Date} endDate Accepts the end date\n * @param {number[]} data Accepts the collection of dates\n * @param {RecRule} ruleObject Accepts the recurrence rule object\n * @returns {void}\n * @private\n */\nfunction yearlyType(startDate, endDate, data, ruleObject) {\n var typeValue = checkYearlyType(ruleObject);\n switch (typeValue) {\n case 'MONTH':\n monthlyType(startDate, endDate, data, ruleObject);\n break;\n case 'WEEKNO':\n processWeekNo(startDate, endDate, data, ruleObject);\n break;\n case 'YEARDAY':\n processYearDay(startDate, endDate, data, ruleObject);\n break;\n }\n}\n/**\n * Internal method for process week no\n *\n * @param {Date} startDate Accepts the strat date\n * @param {Date} endDate Accepts the end date\n * @param {number[]} data Accepts the collection of dates\n * @param {RecRule} ruleObject Accepts the recurrence rule object\n * @returns {void}\n * @private\n */\nfunction processWeekNo(startDate, endDate, data, ruleObject) {\n var stDate = calendarUtil.getYearLastDate(startDate, 0);\n var tempDate;\n var expectedCount = getDateCount(startDate, ruleObject);\n var state;\n var startDay;\n var firstWeekSpan;\n var weekNos = ruleObject.weekNo;\n var weekNo;\n var maxDate;\n var minDate;\n var weekCollection = [];\n var expectedDays = ruleObject.day;\n while (compareDates(stDate, endDate)) {\n startDay = dayIndex.indexOf(DAYINDEX[stDate.getDay()]);\n firstWeekSpan = (6 - startDay) + 1;\n for (var index = 0; index < weekNos.length; index++) {\n weekNo = weekNos[parseInt(index.toString(), 10)];\n weekNo = (weekNo > 0) ? weekNo : 53 + weekNo + 1;\n maxDate = (weekNo === 1) ? firstWeekSpan : firstWeekSpan + ((weekNo - 1) * 7);\n minDate = (weekNo === 1) ? firstWeekSpan - 7 : firstWeekSpan + ((weekNo - 2) * 7);\n while (minDate < maxDate) {\n tempDate = new Date(stDate.getTime() + (MS_PER_DAY * minDate));\n if (expectedDays.length === 0 || expectedDays.indexOf(DAYINDEX[tempDate.getDay()]) > -1) {\n if (isNullOrUndefined(ruleObject.setPosition)) {\n insertDateCollection(state, startDate, endDate, data, ruleObject, tempDate.getTime());\n }\n else {\n weekCollection.push([tempDate.getTime()]);\n }\n }\n minDate++;\n }\n }\n if (!isNullOrUndefined(ruleObject.setPosition)) {\n insertDatasIntoExistingCollection(weekCollection, state, startDate, endDate, data, ruleObject);\n }\n if (expectedCount && (data.length + ruleObject.recExceptionCount) >= expectedCount) {\n return;\n }\n stDate = calendarUtil.getYearLastDate(tempDate, ruleObject.interval);\n weekCollection = [];\n }\n}\n/**\n * Internal method for process year day\n *\n * @param {Date} startDate Accepts the strat date\n * @param {Date} endDate Accepts the end date\n * @param {number[]} data Accepts the collection of dates\n * @param {RecRule} ruleObject Accepts the recurrence rule object\n * @returns {void}\n * @private\n */\nfunction processYearDay(startDate, endDate, data, ruleObject) {\n var stDate = calendarUtil.getYearLastDate(startDate, 0);\n var tempDate;\n var expectedCount = getDateCount(startDate, ruleObject);\n var state;\n var dateCollection = [];\n var date;\n var expectedDays = ruleObject.day;\n while (compareDates(stDate, endDate)) {\n for (var index = 0; index < ruleObject.yearDay.length; index++) {\n date = ruleObject.yearDay[parseInt(index.toString(), 10)];\n tempDate = new Date(stDate.getTime());\n if ((date === calendarUtil.getLeapYearDaysCount() || date === -calendarUtil.getLeapYearDaysCount()) &&\n (!calendarUtil.isLeapYear(calendarUtil.getFullYear(tempDate), 1))) {\n tempDate.setDate(tempDate.getDate() + 1);\n continue;\n }\n tempDate.setDate(tempDate.getDate() + ((date < 0) ?\n calendarUtil.getYearDaysCount(tempDate, 1) + 1 + date : date));\n if (expectedDays.length === 0 || expectedDays.indexOf(DAYINDEX[tempDate.getDay()]) > -1) {\n if (ruleObject.setPosition == null) {\n insertDateCollection(state, startDate, endDate, data, ruleObject, tempDate.getTime());\n }\n else {\n dateCollection.push([tempDate.getTime()]);\n }\n }\n }\n if (!isNullOrUndefined(ruleObject.setPosition)) {\n insertDatasIntoExistingCollection(dateCollection, state, startDate, endDate, data, ruleObject);\n }\n if (expectedCount && (data.length + ruleObject.recExceptionCount) >= expectedCount) {\n return;\n }\n stDate = calendarUtil.getYearLastDate(tempDate, ruleObject.interval);\n dateCollection = [];\n }\n}\n/**\n * Internal method to check yearly type\n *\n * @param {RecRule} ruleObject Accepts the recurrence rule object\n * @returns {YearRuleType} Returns the Yearly rule type object\n * @private\n */\nfunction checkYearlyType(ruleObject) {\n if (ruleObject.yearDay.length) {\n return 'YEARDAY';\n }\n else if (ruleObject.weekNo.length) {\n return 'WEEKNO';\n }\n return 'MONTH';\n}\n/**\n * Internal method to initialize recurrence rule variables\n *\n * @param {Date} startDate Accepts the start date\n * @param {RecRule} ruleObject Accepts the recurrence rule object\n * @returns {RuleData} Return the rule data object\n * @private\n */\nfunction initializeRecRuleVariables(startDate, ruleObject) {\n var ruleData = {\n monthCollection: [],\n index: 0,\n tempDate: new Date(startDate.getTime()),\n mainDate: new Date(startDate.getTime()),\n expectedCount: getDateCount(startDate, ruleObject),\n monthInit: 0,\n dateCollection: []\n };\n if (ruleObject.month.length) {\n calendarUtil.setMonth(ruleData.tempDate, ruleObject.month[0], ruleData.tempDate.getDate());\n }\n return ruleData;\n}\n/**\n * Internal method for process monthly date type recurrence rule\n *\n * @param {Date} startDate Accepts the strat date\n * @param {Date} endDate Accepts the end date\n * @param {number[]} data Accepts the collection of dates\n * @param {RecRule} ruleObject Accepts the recurrence rule object\n * @returns {void}\n * @private\n */\nfunction monthlyDateTypeProcess(startDate, endDate, data, ruleObject) {\n if (ruleObject.month.length) {\n monthlyDateTypeProcessforMonthFreq(startDate, endDate, data, ruleObject);\n return;\n }\n var ruleData = initializeRecRuleVariables(startDate, ruleObject);\n var currentMonthDate;\n ruleData.tempDate = ruleData.mainDate = calendarUtil.getMonthStartDate(ruleData.tempDate);\n while (compareDates(ruleData.tempDate, endDate)) {\n currentMonthDate = new Date(ruleData.tempDate.getTime());\n while (calendarUtil.isSameYear(currentMonthDate, ruleData.tempDate) &&\n (ruleData.expectedCount && (data.length + ruleObject.recExceptionCount) <= ruleData.expectedCount)) {\n if (ruleObject.month.length === 0 || (ruleObject.month.length > 0\n && !calendarUtil.checkMonth(ruleData.tempDate, ruleObject.month))) {\n processDateCollectionForByMonthDay(ruleObject, ruleData, endDate, false);\n ruleData.beginDate = new Date(ruleData.tempDate.getTime());\n ruleData.monthInit = setNextValidDate(ruleData.tempDate, ruleObject, ruleData.monthInit, ruleData.beginDate);\n }\n else {\n calendarUtil.setValidDate(ruleData.tempDate, 1, 1);\n ruleData.tempDate = getStartDateForWeek(ruleData.tempDate, ruleObject.day);\n break;\n }\n }\n ruleData.tempDate.setFullYear(currentMonthDate.getFullYear(), currentMonthDate.getMonth(), currentMonthDate.getDate());\n insertDataCollection(ruleData.dateCollection, ruleData.state, startDate, endDate, data, ruleObject);\n if (calendarUtil.isLastMonth(ruleData.tempDate)) {\n calendarUtil.setValidDate(ruleData.tempDate, 1, 1);\n ruleData.tempDate = getStartDateForWeek(ruleData.tempDate, ruleObject.day);\n }\n if (ruleData.expectedCount && (data.length + ruleObject.recExceptionCount) >= ruleData.expectedCount) {\n return;\n }\n ruleData.tempDate.setFullYear(ruleData.tempDate.getFullYear() + ruleObject.interval - 1);\n ruleData.tempDate = getStartDateForWeek(ruleData.tempDate, ruleObject.day);\n ruleData.monthInit = setNextValidDate(ruleData.tempDate, ruleObject, ruleData.monthInit, ruleData.beginDate);\n ruleData.dateCollection = [];\n }\n}\n/**\n * Internal method for process monthly date type with month frequency from recurrence rule\n *\n * @param {Date} startDate Accepts the strat date\n * @param {Date} endDate Accepts the end date\n * @param {number[]} data Accepts the collection of dates\n * @param {RecRule} ruleObject Accepts the recurrence rule object\n * @returns {void}\n * @private\n */\nfunction monthlyDateTypeProcessforMonthFreq(startDate, endDate, data, ruleObject) {\n var ruleData = initializeRecRuleVariables(startDate, ruleObject);\n ruleData.tempDate = ruleData.mainDate = calendarUtil.getMonthStartDate(ruleData.tempDate);\n if (((ruleObject.freq === 'MONTHLY' && ruleObject.interval === 12) || (ruleObject.freq === 'YEARLY')) &&\n calendarUtil.getMonthDaysCount(startDate) < ruleObject.monthDay[0]) {\n return;\n }\n while (compareDates(ruleData.tempDate, endDate)) {\n ruleData.beginDate = new Date(ruleData.tempDate.getTime());\n processDateCollectionForByMonthDay(ruleObject, ruleData, endDate, true, startDate, data);\n if (!isNullOrUndefined(ruleObject.setPosition)) {\n insertDatasIntoExistingCollection(ruleData.dateCollection, ruleData.state, startDate, endDate, data, ruleObject);\n }\n if (ruleData.expectedCount && (data.length + ruleObject.recExceptionCount) >= ruleData.expectedCount) {\n return;\n }\n ruleData.monthInit = setNextValidDate(ruleData.tempDate, ruleObject, ruleData.monthInit, ruleData.beginDate);\n ruleData.dateCollection = [];\n }\n}\n/**\n * To process date collection for Monthly & Yearly based on BYMONTH Day property\n *\n * @param {RecRule} ruleObject Accepts the recurrence rule object\n * @param {RuleData} recRuleVariables Accepts the rule data\n * @param {Date} endDate Accepts the end date\n * @param {boolean} isByMonth Accepts the boolean to validate either month or not\n * @param {Date} startDate Accepts the start date\n * @param {number[]} data Accepts the collection of dates\n * @returns {void}\n * @private\n */\nfunction processDateCollectionForByMonthDay(ruleObject, recRuleVariables, endDate, isByMonth, startDate, data) {\n for (var index = 0; index < ruleObject.monthDay.length; index++) {\n recRuleVariables.date = ruleObject.monthDay[parseInt(index.toString(), 10)];\n recRuleVariables.tempDate = calendarUtil.getMonthStartDate(recRuleVariables.tempDate);\n var maxDate = calendarUtil.getMonthDaysCount(recRuleVariables.tempDate);\n recRuleVariables.date = recRuleVariables.date > 0 ? recRuleVariables.date : (maxDate + recRuleVariables.date + 1);\n if (validateProperDate(recRuleVariables.tempDate, recRuleVariables.date, recRuleVariables.mainDate)\n && (recRuleVariables.date > 0)) {\n calendarUtil.setDate(recRuleVariables.tempDate, recRuleVariables.date);\n if (endDate && recRuleVariables.tempDate > endDate) {\n return;\n }\n if (ruleObject.day.length === 0 || ruleObject.day.indexOf(DAYINDEX[recRuleVariables.tempDate.getDay()]) > -1) {\n if (isByMonth && isNullOrUndefined(ruleObject.setPosition) && (recRuleVariables.expectedCount\n && (data.length + ruleObject.recExceptionCount) < recRuleVariables.expectedCount)) {\n insertDateCollection(recRuleVariables.state, startDate, endDate, data, ruleObject, recRuleVariables.tempDate.getTime());\n }\n else {\n recRuleVariables.dateCollection.push([recRuleVariables.tempDate.getTime()]);\n }\n }\n }\n }\n}\n/**\n * Internal method to set next valid date\n *\n * @param {Date} tempDate Accepts the date\n * @param {RecRule} ruleObject Accepts the recurrence rule object\n * @param {number} monthInit Accepts the initial month\n * @param {Date} beginDate Accepts the initial date\n * @param {number} interval Accepts the interval duration\n * @returns {number} Returnx the next valid date\n * @private\n */\nfunction setNextValidDate(tempDate, ruleObject, monthInit, beginDate, interval) {\n if (beginDate === void 0) { beginDate = null; }\n var monthData = beginDate ? beginDate.getMonth() : 0;\n var startDate = calendarUtil.getMonthStartDate(tempDate);\n interval = isNullOrUndefined(interval) ? ruleObject.interval : interval;\n tempDate.setFullYear(startDate.getFullYear());\n tempDate.setMonth(startDate.getMonth());\n tempDate.setDate(startDate.getDate());\n if (ruleObject.month.length) {\n monthInit++;\n monthInit = monthInit % ruleObject.month.length;\n calendarUtil.setMonth(tempDate, ruleObject.month[parseInt(monthInit.toString(), 10)], 1);\n if (monthInit === 0) {\n calendarUtil.addYears(tempDate, interval, ruleObject.month[0]);\n }\n }\n else {\n if (beginDate && (beginDate.getFullYear() < tempDate.getFullYear())) {\n monthData = tempDate.getMonth() - 1;\n }\n calendarUtil.setValidDate(tempDate, interval, 1, monthData, beginDate);\n }\n return monthInit;\n}\n/**\n * To get month collection when BYDAY property having more than one value in list.\n *\n * @param {Date} startDate Accepts the strat date\n * @param {Date} endDate Accepts the end date\n * @param {number[]} data Accepts the collection of dates\n * @param {RecRule} ruleObject Accepts the recurrence rule object\n * @returns {void}\n * @private\n */\nfunction getMonthCollection(startDate, endDate, data, ruleObject) {\n var expectedDays = ruleObject.day;\n var tempDate = new Date(startDate.getTime());\n tempDate = calendarUtil.getMonthStartDate(tempDate);\n var monthCollection = [];\n var dateCollection = [];\n var dates = [];\n var index;\n var state;\n var expectedCount = getDateCount(startDate, ruleObject);\n var monthInit = 0;\n var beginDate;\n if (ruleObject.month.length) {\n calendarUtil.setMonth(tempDate, ruleObject.month[0], 1);\n }\n tempDate = getStartDateForWeek(tempDate, ruleObject.day);\n while (compareDates(tempDate, endDate)\n && (expectedCount && (data.length + ruleObject.recExceptionCount) < expectedCount)) {\n var currentMonthDate = new Date(tempDate.getTime());\n var isHavingNumber = expectedDays.map(function (item) { return HASNUMBER.test(item); });\n if (isHavingNumber.indexOf(true) > -1) {\n for (var j = 0; j <= expectedDays.length - 1; j++) {\n var expectedDaysArray = expectedDays[parseInt(j.toString(), 10)].match(SPLITNUMBERANDSTRING);\n var position = parseInt(expectedDaysArray[0], 10);\n tempDate = new Date(tempDate.getTime());\n tempDate = calendarUtil.getMonthStartDate(tempDate);\n tempDate = getStartDateForWeek(tempDate, expectedDays);\n currentMonthDate.setFullYear(tempDate.getFullYear(), tempDate.getMonth(), tempDate.getDate());\n while (calendarUtil.isSameYear(currentMonthDate, tempDate) && calendarUtil.isSameMonth(currentMonthDate, tempDate)) {\n if (expectedDaysArray[expectedDaysArray.length - 1] === DAYINDEX[currentMonthDate.getDay()]) {\n monthCollection.push([currentMonthDate.getTime()]);\n }\n currentMonthDate.setDate(currentMonthDate.getDate() + (1));\n }\n currentMonthDate.setDate(currentMonthDate.getDate() - (1));\n if (expectedDaysArray[0].indexOf('-') > -1) {\n index = monthCollection.length - (-1 * position);\n }\n else {\n index = position - 1;\n }\n index = isNaN(index) ? 0 : index;\n if (monthCollection.length > 0) {\n if (isNullOrUndefined(ruleObject.setPosition)) {\n insertDatasIntoExistingCollection(monthCollection, state, startDate, endDate, data, ruleObject, index);\n }\n else {\n dateCollection = [(filterDateCollectionByIndex(monthCollection, index, dates))];\n }\n }\n if (expectedCount && (data.length + ruleObject.recExceptionCount) >= expectedCount) {\n return;\n }\n monthCollection = [];\n }\n if (!isNullOrUndefined(ruleObject.setPosition)) {\n insertDateCollectionBasedonBySetPos(dateCollection, state, startDate, endDate, data, ruleObject);\n dates = [];\n }\n monthInit = setNextValidDate(tempDate, ruleObject, monthInit, beginDate);\n tempDate = getStartDateForWeek(tempDate, ruleObject.day);\n monthCollection = [];\n }\n else {\n var weekCollection = [];\n var dayCycleData = processWeekDays(expectedDays);\n currentMonthDate.setFullYear(tempDate.getFullYear(), tempDate.getMonth(), tempDate.getDate());\n var initialDate = new Date(tempDate.getTime());\n beginDate = new Date(tempDate.getTime());\n while (calendarUtil.isSameMonth(initialDate, tempDate)) {\n weekCollection.push(tempDate.getTime());\n if (expectedDays.indexOf(DAYINDEX[tempDate.getDay()]) > -1) {\n monthCollection.push(weekCollection);\n weekCollection = [];\n }\n tempDate.setDate(tempDate.getDate()\n + dayCycleData[DAYINDEX[tempDate.getDay()]]);\n }\n index = ((ruleObject.setPosition < 1) ? (monthCollection.length + ruleObject.setPosition) : ruleObject.setPosition - 1);\n if (isNullOrUndefined(ruleObject.setPosition)) {\n index = 0;\n var datas = [];\n for (var week = 0; week < monthCollection.length; week++) {\n for (var row = 0; row < monthCollection[parseInt(week.toString(), 10)].length; row++) {\n datas.push(monthCollection[parseInt(week.toString(), 10)][parseInt(row.toString(), 10)]);\n }\n }\n monthCollection = [datas];\n }\n if (monthCollection.length > 0) {\n insertDatasIntoExistingCollection(monthCollection, state, startDate, endDate, data, ruleObject, index);\n }\n if (expectedCount && (data.length + ruleObject.recExceptionCount) >= expectedCount) {\n return;\n }\n monthInit = setNextValidDate(tempDate, ruleObject, monthInit, beginDate);\n tempDate = getStartDateForWeek(tempDate, ruleObject.day);\n monthCollection = [];\n }\n }\n}\n/**\n * To process monday day type for FREQ=MONTHLY\n *\n * @param {Date} startDate Accepts the strat date\n * @param {Date} endDate Accepts the end date\n * @param {number[]} data Accepts the collection of dates\n * @param {RecRule} ruleObject Accepts the recurrence rule object\n * @returns {void}\n * @private\n */\nfunction monthlyDayTypeProcessforMonthFreq(startDate, endDate, data, ruleObject) {\n var expectedDays = ruleObject.day;\n // When BYDAY property having more than 1 value.\n if (expectedDays.length > 1) {\n getMonthCollection(startDate, endDate, data, ruleObject);\n return;\n }\n var tempDate = new Date(startDate.getTime());\n var expectedCount = getDateCount(startDate, ruleObject);\n var monthCollection = [];\n var beginDate;\n var monthInit = 0;\n tempDate = calendarUtil.getMonthStartDate(tempDate);\n if (ruleObject.month.length) {\n calendarUtil.setMonth(tempDate, ruleObject.month[0], 1);\n }\n tempDate = getStartDateForWeek(tempDate, ruleObject.day);\n while (compareDates(tempDate, endDate) && (expectedCount && (data.length + ruleObject.recExceptionCount) < expectedCount)) {\n beginDate = new Date(tempDate.getTime());\n var currentMonthDate = new Date(tempDate.getTime());\n while (calendarUtil.isSameMonth(tempDate, currentMonthDate)) {\n monthCollection.push([currentMonthDate.getTime()]);\n currentMonthDate.setDate(currentMonthDate.getDate() + (7));\n }\n // To filter date collection based on BYDAY Index, then BYSETPOS and to insert datas into existing collection\n insertDateCollectionBasedonIndex(monthCollection, startDate, endDate, data, ruleObject);\n monthInit = setNextValidDate(tempDate, ruleObject, monthInit, beginDate);\n tempDate = getStartDateForWeek(tempDate, ruleObject.day);\n monthCollection = [];\n }\n}\n/**\n * To process monday day type for FREQ=YEARLY\n *\n * @param {Date} startDate Accepts the strat date\n * @param {Date} endDate Accepts the end date\n * @param {number[]} data Accepts the collection of dates\n * @param {RecRule} ruleObject Accepts the recurrence rule object\n * @returns {void}\n * @private\n */\nfunction monthlyDayTypeProcess(startDate, endDate, data, ruleObject) {\n var expectedDays = ruleObject.day;\n var isHavingNumber = expectedDays.map(function (item) { return HASNUMBER.test(item); });\n // If BYDAY property having more than 1 value in list\n if (expectedDays.length > 1 && isHavingNumber.indexOf(true) > -1) {\n processDateCollectionforByDayWithInteger(startDate, endDate, data, ruleObject);\n return;\n }\n else if (ruleObject.month.length && expectedDays.length === 1 && isHavingNumber.indexOf(true) > -1) {\n monthlyDayTypeProcessforMonthFreq(startDate, endDate, data, ruleObject);\n return;\n }\n var tempDate = new Date(startDate.getTime());\n var currentMonthDate;\n var expectedCount = getDateCount(startDate, ruleObject);\n var interval = ruleObject.interval;\n var monthCollection = [];\n if (ruleObject.month.length) {\n calendarUtil.setMonth(tempDate, ruleObject.month[0], tempDate.getDate());\n }\n // Set the date as start date of the yeear if yearly freq having ByDay property alone\n if (isNullOrUndefined(ruleObject.setPosition) && ruleObject.month.length === 0 && ruleObject.weekNo.length === 0) {\n tempDate.setFullYear(startDate.getFullYear(), 0, 1);\n }\n tempDate = calendarUtil.getMonthStartDate(tempDate);\n tempDate = getStartDateForWeek(tempDate, ruleObject.day);\n while (compareDates(tempDate, endDate)) {\n currentMonthDate = new Date(tempDate.getTime());\n while (calendarUtil.isSameYear(currentMonthDate, tempDate) &&\n (expectedCount && (data.length + ruleObject.recExceptionCount) <= expectedCount)) {\n currentMonthDate = new Date(tempDate.getTime());\n while (calendarUtil.isSameYear(currentMonthDate, tempDate)) {\n if (ruleObject.month.length === 0 || (ruleObject.month.length > 0\n && !calendarUtil.checkMonth(tempDate, ruleObject.month))) {\n if (expectedDays.length > 1) {\n if (calendarUtil.compareMonth(currentMonthDate, tempDate)) {\n calendarUtil.setValidDate(tempDate, 1, 1);\n tempDate = getStartDateForWeek(tempDate, ruleObject.day);\n break;\n }\n if (expectedDays.indexOf(DAYINDEX[currentMonthDate.getDay()]) > -1) {\n monthCollection.push([currentMonthDate.getTime()]);\n }\n currentMonthDate.setDate(currentMonthDate.getDate() + (1));\n }\n else {\n // If BYDAY property having 1 value in list\n if (currentMonthDate.getFullYear() > tempDate.getFullYear()) {\n calendarUtil.setValidDate(tempDate, 1, 1);\n tempDate = getStartDateForWeek(tempDate, ruleObject.day);\n break;\n }\n var newstr = getDayString(expectedDays[0]);\n if (DAYINDEX[currentMonthDate.getDay()] === newstr\n && new Date(currentMonthDate.getFullYear(), currentMonthDate.getMonth(), 0)\n > new Date(startDate.getFullYear())) {\n monthCollection.push([currentMonthDate.getTime()]);\n }\n currentMonthDate.setDate(currentMonthDate.getDate() + (7));\n }\n }\n else {\n calendarUtil.setValidDate(tempDate, 1, 1);\n tempDate = getStartDateForWeek(tempDate, ruleObject.day);\n break;\n }\n }\n }\n tempDate.setFullYear(currentMonthDate.getFullYear(), currentMonthDate.getMonth(), currentMonthDate.getDate());\n // To filter date collection based on BYDAY Index, then BYSETPOS and to insert datas into existing collection\n insertDateCollectionBasedonIndex(monthCollection, startDate, endDate, data, ruleObject);\n if (calendarUtil.isLastMonth(tempDate)) {\n calendarUtil.setValidDate(tempDate, 1, 1);\n tempDate = getStartDateForWeek(tempDate, ruleObject.day);\n }\n tempDate.setFullYear(tempDate.getFullYear() + interval - 1);\n if (expectedCount && (data.length + ruleObject.recExceptionCount) >= expectedCount) {\n return;\n }\n tempDate = getStartDateForWeek(tempDate, ruleObject.day);\n monthCollection = [];\n }\n}\n/**\n * To process the recurrence rule when BYDAY property having values with integer\n *\n * @param {Date} startDate Accepts the strat date\n * @param {Date} endDate Accepts the end date\n * @param {number[]} data Accepts the collection of dates\n * @param {RecRule} ruleObject Accepts the recurrence rule object\n * @returns {void}\n * @private\n */\nfunction processDateCollectionforByDayWithInteger(startDate, endDate, data, ruleObject) {\n var expectedDays = ruleObject.day;\n var expectedCount = getDateCount(startDate, ruleObject);\n var tempDate = new Date(startDate.getTime());\n var interval = ruleObject.interval;\n var monthCollection = [];\n var dateCollection = [];\n var index;\n var state;\n var monthInit = 0;\n var currentMonthDate;\n var currentDate;\n var beginDate;\n tempDate = calendarUtil.getMonthStartDate(tempDate);\n var datas = [];\n if (ruleObject.month.length) {\n calendarUtil.setMonth(tempDate, ruleObject.month[0], 1);\n }\n tempDate = getStartDateForWeek(tempDate, ruleObject.day);\n while (compareDates(tempDate, endDate)) {\n currentMonthDate = new Date(tempDate.getTime());\n for (var i = 0; i <= ruleObject.month.length; i++) {\n for (var j = 0; j <= expectedDays.length - 1; j++) {\n tempDate = calendarUtil.getMonthStartDate(tempDate);\n tempDate = getStartDateForWeek(tempDate, ruleObject.day);\n monthCollection = [];\n while (calendarUtil.isSameYear(currentMonthDate, tempDate) &&\n (expectedCount && (data.length + ruleObject.recExceptionCount) <= expectedCount)) {\n while (calendarUtil.isSameYear(currentMonthDate, tempDate)) {\n currentMonthDate = new Date(tempDate.getTime());\n if (ruleObject.month.length === 0 ||\n (ruleObject.month.length > 0 && ruleObject.month[parseInt(i.toString(), 10)] === calendarUtil.getMonth(currentMonthDate))) {\n var expectedDaysArray = expectedDays[parseInt(j.toString(), 10)].match(SPLITNUMBERANDSTRING);\n var position = parseInt(expectedDaysArray[0], 10);\n currentDate = new Date(tempDate.getTime());\n while (calendarUtil.isSameYear(currentDate, tempDate)\n && calendarUtil.isSameMonth(currentDate, tempDate)) {\n if (expectedDaysArray[expectedDaysArray.length - 1] === DAYINDEX[currentDate.getDay()]) {\n monthCollection.push([currentDate.getTime()]);\n }\n currentDate.setDate(currentDate.getDate() + (1));\n }\n currentDate.setDate(currentDate.getDate() - (1));\n if (expectedDaysArray[0].indexOf('-') > -1) {\n index = monthCollection.length - (-1 * position);\n }\n else {\n index = position - 1;\n }\n index = isNaN(index) ? 0 : index;\n }\n monthInit = setNextValidDate(tempDate, ruleObject, monthInit, beginDate, 1);\n tempDate = getStartDateForWeek(tempDate, ruleObject.day);\n }\n }\n tempDate = j === 0 && currentDate ? new Date(currentDate.getTime()) : new Date(currentMonthDate.getTime());\n if (monthCollection.length > 0) {\n if (isNullOrUndefined(ruleObject.setPosition)) {\n insertDatasIntoExistingCollection(monthCollection, state, startDate, endDate, data, ruleObject, index);\n }\n else {\n dateCollection = [(filterDateCollectionByIndex(monthCollection, index, datas))];\n }\n }\n if (expectedCount && (data.length + ruleObject.recExceptionCount) >= expectedCount) {\n return;\n }\n }\n }\n if (!isNullOrUndefined(ruleObject.setPosition)) {\n insertDateCollectionBasedonBySetPos(dateCollection, state, startDate, endDate, data, ruleObject);\n datas = [];\n }\n if (calendarUtil.isLastMonth(tempDate)) {\n calendarUtil.setValidDate(tempDate, 1, 1);\n tempDate.setFullYear(tempDate.getFullYear() + interval - 1);\n }\n else {\n tempDate.setFullYear(tempDate.getFullYear() + interval);\n }\n tempDate = getStartDateForWeek(tempDate, ruleObject.day);\n if (ruleObject.month.length) {\n calendarUtil.setMonth(tempDate, ruleObject.month[0], tempDate.getDate());\n }\n }\n}\n/**\n * To get recurrence collection if BYSETPOS is null\n *\n * @param {number[]} monthCollection Accepts the month collection dates\n * @param {string[]} expectedDays Accepts the exception dates\n * @returns {RuleData} Returns the rule data object\n * @private\n */\nfunction getRecurrenceCollection(monthCollection, expectedDays) {\n var index;\n var recurrenceCollectionObject = { monthCollection: [], index: 0 };\n if (expectedDays.length === 1) {\n // To split numeric value from BYDAY property value\n var expectedDaysArrays = expectedDays[0].match(SPLITNUMBERANDSTRING);\n var arrPosition = void 0;\n if (expectedDaysArrays.length > 1) {\n arrPosition = parseInt(expectedDaysArrays[0], 10);\n index = ((arrPosition < 1) ? (monthCollection.length + arrPosition) : arrPosition - 1);\n }\n else {\n index = 0;\n monthCollection = getDateCollectionforBySetPosNull(monthCollection);\n }\n }\n else {\n index = 0;\n monthCollection = getDateCollectionforBySetPosNull(monthCollection);\n }\n recurrenceCollectionObject.monthCollection = monthCollection;\n recurrenceCollectionObject.index = index;\n return recurrenceCollectionObject;\n}\n/**\n * Internal method to process the data collections\n *\n * @param {number[]} dateCollection Accepts the date collections\n * @param {boolean} state Accepts the state\n * @param {Date} startDate Accepts the start date\n * @param {Date} endDate Accepts the end date\n * @param {number[]} data Accepts the collection of numbers\n * @param {RecRule} ruleObject Accepts the recurrence rule object\n * @returns {void}\n * @private\n */\nfunction insertDataCollection(dateCollection, state, startDate, endDate, data, ruleObject) {\n var index = ((ruleObject.setPosition < 1) ?\n (dateCollection.length + ruleObject.setPosition) : ruleObject.setPosition - 1);\n if (isNullOrUndefined(ruleObject.setPosition)) {\n index = 0;\n dateCollection = getDateCollectionforBySetPosNull(dateCollection);\n }\n if (dateCollection.length > 0) {\n insertDatasIntoExistingCollection(dateCollection, state, startDate, endDate, data, ruleObject, index);\n }\n}\n/**\n * To process month collection if BYSETPOS is null\n *\n * @param {number[]} monthCollection Accepts the month date collections\n * @returns {number[]} Returns the month date collections\n * @private\n */\nfunction getDateCollectionforBySetPosNull(monthCollection) {\n var datas = [];\n for (var week = 0; week < monthCollection.length; week++) {\n for (var row = 0; row < monthCollection[parseInt(week.toString(), 10)].length; row++) {\n datas.push(new Date(monthCollection[parseInt(week.toString(), 10)][parseInt(row.toString(), 10)]).getTime());\n }\n }\n monthCollection = datas.length > 0 ? [datas] : [];\n return monthCollection;\n}\n/**\n * To filter date collection based on BYDAY Index, then BYSETPOS and to insert datas into existing collection\n *\n * @param {number[]} monthCollection Accepts the month date collections\n * @param {Date} startDate Accepts the start date\n * @param {Date} endDate Accepts the end date\n * @param {number[]} data Accepts the date collections\n * @param {RecRule} ruleObject Accepts the recurrence rule object\n * @returns {void}\n * @private\n */\nfunction insertDateCollectionBasedonIndex(monthCollection, startDate, endDate, data, ruleObject) {\n var expectedDays = ruleObject.day;\n var state;\n var datas = [];\n var dateCollection = [];\n var recurrenceCollections = getRecurrenceCollection(monthCollection, expectedDays);\n monthCollection = recurrenceCollections.monthCollection;\n var index = recurrenceCollections.index;\n if (ruleObject.setPosition != null) {\n dateCollection = [(filterDateCollectionByIndex(monthCollection, index, datas))];\n insertDateCollectionBasedonBySetPos(dateCollection, state, startDate, endDate, data, ruleObject);\n }\n else {\n if (monthCollection.length > 0) {\n insertDatasIntoExistingCollection(monthCollection, state, startDate, endDate, data, ruleObject, index);\n }\n }\n datas = [];\n}\n/**\n * To filter date collection when BYDAY property having values with number\n *\n * @param {number[]} monthCollection Accepts the date collections\n * @param {number} index Accepts the index of date collections\n * @param {number[]} datas Accepts the collection of dates\n * @returns {number[]} Returns the collection of dates\n * @private\n */\nfunction filterDateCollectionByIndex(monthCollection, index, datas) {\n for (var week = 0; week < monthCollection[parseInt(index.toString(), 10)].length; week++) {\n datas.push(monthCollection[parseInt(index.toString(), 10)][parseInt(week.toString(), 10)]);\n }\n return datas;\n}\n/**\n * To insert processed date collection in final array element\n *\n * @param {boolean} state Accepts the state of the recurrence rule\n * @param {Date} startDate Accepts the start date\n * @param {Date} endDate Accepts the end date\n * @param {number[]} data Accepts the collection of date\n * @param {RecRule} ruleObject Accepts the recurrence rule object\n * @param {number} dayData Accepts the date index\n * @returns {void}\n * @private\n */\nfunction insertDateCollection(state, startDate, endDate, data, ruleObject, dayData) {\n var expectedCount = getDateCount(startDate, ruleObject);\n var chDate = new Date(dayData);\n state = validateRules(chDate, ruleObject);\n if ((chDate >= startDate) && compareDates(chDate, endDate) && state\n && expectedCount && (data.length + ruleObject.recExceptionCount) < expectedCount) {\n excludeDateHandler(data, dayData);\n }\n}\n/**\n * Return the last week number of given month and year.\n *\n * @param {number} year Accepts the Year in number format\n * @param {number} startDayOfWeek Accepts the start date\n * @param {number[]} monthCollection Accepts the collection of dates\n * @param {number} week Accepts the week in number format\n * @param {RecRule} ruleObject Accepts the recurrence rule object\n * @returns {number} returns week number\n * @private\n */\nfunction weekCount(year, startDayOfWeek, monthCollection, week, ruleObject) {\n var firstDayOfWeek = startDayOfWeek || 0;\n var firstOfMonth = new Date(year, ruleObject.month[0] - 1, 1);\n var lastOfMonth = new Date(year, ruleObject.month[0], 0);\n var numberOfDaysInMonth = lastOfMonth.getDate();\n var firstWeekDay = (firstOfMonth.getDay() - firstDayOfWeek + 7) % 7;\n var used = firstWeekDay + numberOfDaysInMonth;\n var count = Math.ceil(used / 7) - 1;\n var dayData = monthCollection[parseInt(week.toString(), 10)][parseInt(count.toString(), 10)];\n var chDate = new Date(dayData);\n var state = validateRules(chDate, ruleObject);\n return (state) ? count : count - 1;\n}\n/**\n * To process date collection based on Byset position after process the collection based on BYDAY property value index: EX:BYDAY=1SUm-1SU\n *\n * @param {number[]} monthCollection Accepts the collection of dates\n * @param {boolean} state Accepts the state of the recurrence rule\n * @param {Date} startDate Accepts the start date\n * @param {Date} endDate Accepts the end date\n * @param {number[]} data Accepts the collection of date\n * @param {RecRule} ruleObject Accepts the recurrence rule object\n * @returns {void}\n * @private\n */\nfunction insertDateCollectionBasedonBySetPos(monthCollection, state, startDate, endDate, data, ruleObject) {\n if (monthCollection.length > 0) {\n for (var week = 0; week < monthCollection.length; week++) {\n monthCollection[parseInt(week.toString(), 10)].sort();\n var expectedDays = ruleObject.day;\n var isHavingNumber = expectedDays.map(function (item) { return HASNUMBER.test(item); });\n var weekIndex = (ruleObject.freq === 'YEARLY' && (ruleObject.validRules.indexOf('BYMONTH') > -1) &&\n !(isHavingNumber.indexOf(true) > -1)) ?\n weekCount(new Date(monthCollection[0][0]).getFullYear(), 0, monthCollection, week, ruleObject)\n : (monthCollection[parseInt(week.toString(), 10)].length + ruleObject.setPosition);\n var index = ((ruleObject.setPosition < 1) ? weekIndex : ruleObject.setPosition - 1);\n var dayData = monthCollection[parseInt(week.toString(), 10)][parseInt(index.toString(), 10)];\n insertDateCollection(state, startDate, endDate, data, ruleObject, dayData);\n }\n }\n}\n/**\n * To insert datas into existing collection which is processed from previous loop.\n *\n * @param {number[]} monthCollection Accepts the collection of dates\n * @param {boolean} state Accepts the state of the recurrence rule\n * @param {Date} startDate Accepts the start date\n * @param {Date} endDate Accepts the end date\n * @param {number[]} data Accepts the collection of date\n * @param {RecRule} ruleObject Accepts the recurrence rule object\n * @param {number} index Accepts the index value\n * @returns {void}\n * @private\n */\nfunction insertDatasIntoExistingCollection(monthCollection, state, startDate, endDate, data, ruleObject, index) {\n if (monthCollection.length > 0) {\n index = !isNullOrUndefined(index) ? index :\n ((ruleObject.setPosition < 1)\n ? (monthCollection.length + ruleObject.setPosition) : ruleObject.setPosition - 1);\n monthCollection[parseInt(index.toString(), 10)].sort();\n for (var week = 0; week < monthCollection[parseInt(index.toString(), 10)].length; week++) {\n var dayData = monthCollection[parseInt(index.toString(), 10)][parseInt(week.toString(), 10)];\n insertDateCollection(state, startDate, endDate, data, ruleObject, dayData);\n }\n }\n}\n/**\n * Internal method to compare dates\n *\n * @param {Date} startDate Accepts the start date\n * @param {Date} endDate Accepts the end date\n * @returns {boolean} Returns the result of checking start and end dates\n * @private\n */\nfunction compareDates(startDate, endDate) {\n return endDate ? (startDate <= endDate) : true;\n}\n/**\n * Internal method to get day string\n *\n * @param {string} expectedDays Accepts the exception date string\n * @returns {string} Returns the valid string\n * @private\n */\nfunction getDayString(expectedDays) {\n // To get BYDAY value without numeric value\n var newstr = expectedDays.replace(REMOVENUMBERINSTRING, '');\n return newstr;\n}\n/**\n * Internal method to check day index\n *\n * @param {number} day Accepts the day index\n * @param {string[]} expectedDays Accepts the exception dates\n * @returns {boolean} Returns the index date\n * @private\n */\nfunction checkDayIndex(day, expectedDays) {\n var sortedExpectedDays = [];\n expectedDays.forEach(function (element) {\n var expectedDaysNumberSplit = element.match(SPLITNUMBERANDSTRING);\n if (expectedDaysNumberSplit.length === 2) {\n sortedExpectedDays.push(expectedDaysNumberSplit[1]);\n }\n else {\n sortedExpectedDays.push(expectedDaysNumberSplit[0]);\n }\n });\n return (sortedExpectedDays.indexOf(DAYINDEX[parseInt(day.toString(), 10)]) === -1);\n}\n/**\n * Internal method to get start date of week\n *\n * @param {Date} startDate Accepts the start date\n * @param {string[]} expectedDays Accepts the exception dates\n * @returns {Date} Return the week start date\n * @private\n */\nfunction getStartDateForWeek(startDate, expectedDays) {\n var tempDate = new Date(startDate.getTime());\n var newstr;\n if (expectedDays.length > 0) {\n var expectedDaysArr = [];\n for (var i = 0; i <= expectedDays.length - 1; i++) {\n newstr = getDayString(expectedDays[parseInt(i.toString(), 10)]);\n expectedDaysArr.push(newstr);\n }\n if (expectedDaysArr.indexOf(DAYINDEX[tempDate.getDay()]) === -1) {\n do {\n tempDate.setDate(tempDate.getDate() + 1);\n } while (expectedDaysArr.indexOf(DAYINDEX[tempDate.getDay()]) === -1);\n }\n }\n return tempDate;\n}\n/**\n * Method to generate recurrence rule object from given rule\n *\n * @param {string} rules Accepts the recurrence rule\n * @returns {RecRule} Returns the recurrence rule object\n */\nexport function extractObjectFromRule(rules) {\n var ruleObject = {\n freq: null,\n interval: 1,\n count: null,\n until: null,\n day: [],\n wkst: null,\n month: [],\n weekNo: [],\n monthDay: [],\n yearDay: [],\n setPosition: null,\n validRules: []\n };\n var rulesList = rules.split(';');\n var splitData = [];\n var temp;\n rulesList.forEach(function (data) {\n splitData = data.split('=');\n switch (splitData[0]) {\n case 'UNTIL':\n temp = splitData[1];\n ruleObject.until = getDateFromRecurrenceDateString(temp);\n break;\n case 'BYDAY':\n ruleObject.day = splitData[1].split(',');\n ruleObject.validRules.push(splitData[0]);\n break;\n case 'BYMONTHDAY':\n ruleObject.monthDay = splitData[1].split(',').map(Number);\n ruleObject.validRules.push(splitData[0]);\n break;\n case 'BYMONTH':\n ruleObject.month = splitData[1].split(',').map(Number);\n ruleObject.validRules.push(splitData[0]);\n break;\n case 'BYYEARDAY':\n ruleObject.yearDay = splitData[1].split(',').map(Number);\n ruleObject.validRules.push(splitData[0]);\n break;\n case 'BYWEEKNO':\n ruleObject.weekNo = splitData[1].split(',').map(Number);\n ruleObject.validRules.push(splitData[0]);\n break;\n case 'INTERVAL':\n ruleObject.interval = parseInt(splitData[1], 10);\n break;\n case 'COUNT':\n ruleObject.count = parseInt(splitData[1], 10);\n break;\n case 'BYSETPOS':\n ruleObject.setPosition = parseInt(splitData[1], 10) > 4 ? -1 : parseInt(splitData[1], 10);\n break;\n case 'FREQ':\n ruleObject.freq = splitData[1];\n break;\n case 'WKST':\n ruleObject.wkst = splitData[1];\n break;\n }\n });\n if ((ruleObject.freq === 'MONTHLY') && (ruleObject.monthDay.length === 0)) {\n var index = ruleObject.validRules.indexOf('BYDAY');\n ruleObject.validRules.splice(index, 1);\n }\n return ruleObject;\n}\n/**\n * Internal method to validate proper date\n *\n * @param {Date} tempDate Accepts the date value\n * @param {number} data Accepts the data value\n * @param {Date} startDate Accepts the start date\n * @returns {boolean} Returns the result of date validate\n * @private\n */\nfunction validateProperDate(tempDate, data, startDate) {\n var maxDate = calendarUtil.getMonthDaysCount(tempDate);\n return (data <= maxDate) && (tempDate >= startDate);\n}\n/**\n * Internal method to process week days\n *\n * @param {string[]} expectedDays Accepts the expection dates\n * @returns {Object} Returns the weekdays object\n * @private\n */\nfunction processWeekDays(expectedDays) {\n var dayCycle = {};\n expectedDays.forEach(function (element, index) {\n if (index === expectedDays.length - 1) {\n var startIndex = dayIndex.indexOf(element);\n var temp = startIndex;\n while (temp % 7 !== dayIndex.indexOf(expectedDays[0])) {\n temp++;\n }\n dayCycle[\"\" + element] = temp - startIndex;\n }\n else {\n dayCycle[\"\" + element] = dayIndex.indexOf(expectedDays[(index + 1)]) - dayIndex.indexOf(element);\n }\n });\n return dayCycle;\n}\n/**\n * Internal method to check date\n *\n * @param {Date} tempDate Accepts the date value\n * @param {number[]} expectedDate Accepts the exception dates\n * @returns {boolean} Returns the boolean value\n * @private\n */\nfunction checkDate(tempDate, expectedDate) {\n var temp = expectedDate.slice(0);\n var data;\n var maxDate = calendarUtil.getMonthDaysCount(tempDate);\n data = temp.shift();\n while (data) {\n if (data < 0) {\n data = data + maxDate + 1;\n }\n if (data === tempDate.getDate()) {\n return false;\n }\n data = temp.shift();\n }\n return true;\n}\n/**\n * Internal method to check the year value\n *\n * @param {Date} tempDate Accepts the date value\n * @param {number[]} expectedyearDay Accepts the exception dates in year\n * @returns {boolean} Returns the boolean value\n * @private\n */\nfunction checkYear(tempDate, expectedyearDay) {\n var temp = expectedyearDay.slice(0);\n var data;\n var yearDay = getYearDay(tempDate);\n data = temp.shift();\n while (data) {\n if (data < 0) {\n data = data + calendarUtil.getYearDaysCount(tempDate, 0) + 1;\n }\n if (data === yearDay) {\n return false;\n }\n data = temp.shift();\n }\n return true;\n}\n/**\n * Internal method to get the year day\n *\n * @param {Date} currentDate Accepts the date value\n * @returns {number} Returns the boolean value\n * @private\n */\nfunction getYearDay(currentDate) {\n if (!startDateCollection[calendarUtil.getFullYear(currentDate)]) {\n startDateCollection[calendarUtil.getFullYear(currentDate)] = calendarUtil.getYearLastDate(currentDate, 0);\n }\n var tempDate = startDateCollection[calendarUtil.getFullYear(currentDate)];\n var diff = currentDate.getTime() - tempDate.getTime();\n return Math.ceil(diff / MS_PER_DAY);\n}\n/**\n * Internal method to validate monthly rule type\n *\n * @param {RecRule} ruleObject Accepts the recurrence rule object\n * @returns {MonthlyType} Returns the monthly type object\n * @private\n */\nfunction validateMonthlyRuleType(ruleObject) {\n if (ruleObject.monthDay.length && !ruleObject.day.length) {\n return 'date';\n }\n else if (!ruleObject.monthDay.length && ruleObject.day.length) {\n return 'day';\n }\n return 'both';\n}\n/**\n * Internal method to re-order the week days based on first day of week\n *\n * @param {string[]} days Accepts the week days value\n * @returns {void}\n * @private\n */\nfunction rotate(days) {\n var data = days.shift();\n days.push(data);\n}\n/**\n * Internal method to set first day of week\n *\n * @param {string} day Accepts the first day string\n * @returns {void}\n * @private\n */\nfunction setFirstDayOfWeek(day) {\n while (dayIndex[0] !== day) {\n rotate(dayIndex);\n }\n}\n/**\n * Internal method to validate recurrence rule\n *\n * @param {Date} tempDate Accepts the date value\n * @param {RecRule} ruleObject Accepts the recurrence rule object\n * @returns {boolean} Returns the boolean value\n * @private\n */\nfunction validateRules(tempDate, ruleObject) {\n var state = true;\n var expectedDays = ruleObject.day;\n var expectedMonth = ruleObject.month;\n var expectedDate = calendarUtil.getExpectedDays(tempDate, ruleObject.monthDay);\n var expectedyearDay = ruleObject.yearDay;\n ruleObject.validRules.forEach(function (rule) {\n switch (rule) {\n case 'BYDAY':\n if (checkDayIndex(tempDate.getDay(), expectedDays)) {\n state = false;\n }\n break;\n case 'BYMONTH':\n if (calendarUtil.checkMonth(tempDate, expectedMonth)) {\n state = false;\n }\n break;\n case 'BYMONTHDAY':\n if (checkDate(tempDate, expectedDate)) {\n state = false;\n }\n break;\n case 'BYYEARDAY':\n if (checkYear(tempDate, expectedyearDay)) {\n state = false;\n }\n break;\n }\n });\n return state;\n}\n/**\n * Internal method to get calendar util\n *\n * @param {CalendarType} calendarMode Accepts the calendar type object\n * @returns {CalendarUtil} Returns the calendar util object\n * @private\n */\nexport function getCalendarUtil(calendarMode) {\n if (calendarMode === 'Islamic') {\n return new Islamic();\n }\n return new Gregorian();\n}\nvar startDateCollection = {};\nvar tempExcludeDate;\nvar dayIndex = ['SU', 'MO', 'TU', 'WE', 'TH', 'FR', 'SA'];\nvar maxOccurrence;\nvar tempViewDate;\nvar calendarUtil;\nvar DAYINDEX = ['SU', 'MO', 'TU', 'WE', 'TH', 'FR', 'SA'];\nvar MAXOCCURRENCE = 43;\nvar WEEKPOS = ['first', 'second', 'third', 'fourth', 'last'];\nvar TIMES = 'summaryTimes';\nvar ON = 'summaryOn';\nvar EVERY = 'every';\nvar UNTIL = 'summaryUntil';\nvar DAYS = 'summaryDay';\nvar WEEKS = 'summaryWeek';\nvar MONTHS = 'summaryMonth';\nvar YEARS = 'summaryYear';\nvar DAYINDEXOBJECT = {\n SU: 'sun',\n MO: 'mon',\n TU: 'tue',\n WE: 'wed',\n TH: 'thu',\n FR: 'fri',\n SA: 'sat'\n};\n// To check string has number\nvar HASNUMBER = /\\d/;\n// To find the numbers in string\nvar REMOVENUMBERINSTRING = /[^A-Z]+/;\n// To split number and string\nvar SPLITNUMBERANDSTRING = /[a-z]+|[^a-z]+/gi;\n/**\n * Method to generate string from date\n *\n * @param {Date} date Accepts the date value\n * @returns {string} Returns the string value\n */\nexport function getRecurrenceStringFromDate(date) {\n return [date.getUTCFullYear(),\n roundDateValues(date.getUTCMonth() + 1),\n roundDateValues(date.getUTCDate()),\n 'T',\n roundDateValues(date.getUTCHours()),\n roundDateValues(date.getUTCMinutes()),\n roundDateValues(date.getUTCSeconds()),\n 'Z'].join('');\n}\n/**\n * Internal method to round the date values\n *\n * @param {string | number} date Accepts the date value in either string or number format\n * @returns {string} Returns the date value in string format\n * @private\n */\nfunction roundDateValues(date) {\n return ('0' + date).slice(-2);\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable max-len */\nimport { isNullOrUndefined, closest, extend, EventHandler } from '@syncfusion/ej2-base';\nimport { createElement, prepend, append, addClass, removeClass } from '@syncfusion/ej2-base';\nimport { DataManager, Query, Predicate } from '@syncfusion/ej2-data';\nimport { generate, getDateFromRecurrenceDateString } from '../../recurrence-editor/date-generator';\nimport * as util from '../base/util';\nimport * as cls from '../base/css-constant';\nimport * as event from '../base/constant';\n/**\n * EventBase for appointment rendering\n */\nvar EventBase = /** @class */ (function () {\n /**\n * Constructor for EventBase\n *\n * @param {Schedule} parent Accepts the schedule instance\n */\n function EventBase(parent) {\n this.slots = [];\n this.isDoubleTapped = false;\n this.parent = parent;\n }\n EventBase.prototype.processData = function (events, timeZonePropChanged, oldTimezone) {\n var _this = this;\n var start = this.parent.activeView.startDate();\n var end = this.parent.activeView.endDate();\n var fields = this.parent.eventFields;\n var processed = [];\n var temp = 1;\n var generateID = false;\n var resourceCollection = this.parent.resourceBase ? this.parent.resourceBase.resourceCollection : [];\n if (events.length > 0 && isNullOrUndefined(events[0][fields.id])) {\n generateID = true;\n }\n var _loop_1 = function (event_1) {\n if (generateID) {\n event_1[fields.id] = temp++;\n }\n event_1 = this_1.updateEventDateTime(event_1);\n if (timeZonePropChanged) {\n this_1.processTimezoneChange(event_1, oldTimezone);\n }\n else if (!this_1.parent.isPrinting && !this_1.parent.uiStateValues.isPreventTimezone) {\n event_1 = this_1.processTimezone(event_1);\n }\n for (var level = 0; level < resourceCollection.length; level++) {\n if (event_1[resourceCollection[parseInt(level.toString(), 10)].field] === null || event_1[resourceCollection[parseInt(level.toString(), 10)].field] === 0) {\n event_1[resourceCollection[parseInt(level.toString(), 10)].field] = undefined;\n }\n }\n if (!isNullOrUndefined(event_1[fields.recurrenceRule]) && event_1[fields.recurrenceRule] === '') {\n event_1[fields.recurrenceRule] = null;\n }\n if (!isNullOrUndefined(event_1[fields.recurrenceRule]) && isNullOrUndefined(event_1[fields.recurrenceID]) &&\n !(this_1.parent.crudModule && this_1.parent.crudModule.crudObj.isCrudAction)) {\n processed = processed.concat(this_1.generateOccurrence(event_1, null, oldTimezone, true));\n }\n else {\n if (this_1.parent.crudModule && this_1.parent.crudModule.crudObj.isCrudAction) {\n if (!isNullOrUndefined(event_1[fields.recurrenceRule]) && isNullOrUndefined(event_1[fields.recurrenceID])) {\n var recurrenceEvent = this_1.generateOccurrence(event_1, null, oldTimezone, true);\n var _loop_2 = function (occurrence) {\n var app = this_1.parent.eventsProcessed.filter(function (data) {\n return data[fields.startTime].getTime() - occurrence[fields.startTime].getTime() === 0 &&\n data[fields.id] === occurrence[fields.id];\n });\n occurrence.Guid = (app.length > 0) ? app[0].Guid : this_1.generateGuid();\n processed.push(occurrence);\n };\n for (var _i = 0, recurrenceEvent_1 = recurrenceEvent; _i < recurrenceEvent_1.length; _i++) {\n var occurrence = recurrenceEvent_1[_i];\n _loop_2(occurrence);\n }\n }\n else {\n var app = this_1.parent.eventsProcessed.filter(function (data) {\n return data[_this.parent.eventFields.id] === event_1[_this.parent.eventFields.id];\n });\n event_1.Guid = (app.length > 0) ? app[0].Guid : this_1.generateGuid();\n processed.push(event_1);\n }\n }\n else {\n event_1.Guid = this_1.generateGuid();\n processed.push(event_1);\n }\n }\n };\n var this_1 = this;\n for (var _i = 0, events_1 = events; _i < events_1.length; _i++) {\n var event_1 = events_1[_i];\n _loop_1(event_1);\n }\n this.parent.eventsProcessed = [];\n var eventData = processed.filter(function (data) {\n return !data[_this.parent.eventFields.isBlock];\n });\n this.parent.eventsProcessed = this.filterEvents(start, end, eventData);\n var blockData = processed.filter(function (data) {\n return data[_this.parent.eventFields.isBlock];\n });\n for (var _a = 0, blockData_1 = blockData; _a < blockData_1.length; _a++) {\n var eventObj = blockData_1[_a];\n if (eventObj[fields.isAllDay]) {\n var isDifferentDate = util.resetTime(new Date(eventObj[fields.startTime].getTime())) <\n util.resetTime(new Date(eventObj[fields.endTime].getTime()));\n if (!isDifferentDate) {\n eventObj[fields.startTime] = util.resetTime(eventObj[fields.startTime]);\n eventObj[fields.endTime] = util.addDays(util.resetTime(eventObj[fields.endTime]), 1);\n }\n }\n }\n this.parent.blockProcessed = blockData;\n return eventData;\n };\n EventBase.prototype.updateEventDateTime = function (eventData) {\n if (typeof eventData[this.parent.eventFields.startTime] === 'string') {\n eventData[this.parent.eventFields.startTime] = util.getDateFromString(eventData[this.parent.eventFields.startTime]);\n }\n if (typeof eventData[this.parent.eventFields.endTime] === 'string') {\n eventData[this.parent.eventFields.endTime] = util.getDateFromString(eventData[this.parent.eventFields.endTime]);\n }\n return eventData;\n };\n EventBase.prototype.getProcessedEvents = function (eventCollection) {\n if (eventCollection === void 0) { eventCollection = this.parent.eventsData; }\n var processed = [];\n for (var _i = 0, eventCollection_1 = eventCollection; _i < eventCollection_1.length; _i++) {\n var event_2 = eventCollection_1[_i];\n if (!isNullOrUndefined(event_2[this.parent.eventFields.recurrenceRule]) &&\n isNullOrUndefined(event_2[this.parent.eventFields.recurrenceID])) {\n processed = processed.concat(this.generateOccurrence(event_2));\n }\n else {\n processed.push(event_2);\n }\n }\n return processed;\n };\n EventBase.prototype.timezonePropertyChange = function (oldTimezone) {\n var data = this.parent.eventsData.concat(this.parent.blockData);\n var processed = this.processData(data, true, oldTimezone);\n this.parent.notify(event.dataReady, { processedData: processed });\n };\n EventBase.prototype.timezoneConvert = function (eventData) {\n var fields = this.parent.eventFields;\n eventData[fields.startTimezone] = eventData[fields.startTimezone] || eventData[fields.endTimezone];\n eventData[fields.endTimezone] = eventData[fields.endTimezone] || eventData[fields.startTimezone];\n if (this.parent.timezone) {\n var startTz = eventData[fields.startTimezone];\n var endTz = eventData[fields.endTimezone];\n eventData[fields.startTime] = this.parent.tzModule.convert(eventData[fields.startTime], this.parent.timezone, startTz);\n eventData[fields.endTime] = this.parent.tzModule.convert(eventData[fields.endTime], this.parent.timezone, endTz);\n }\n };\n EventBase.prototype.processTimezoneChange = function (event, oldTimezone) {\n var fields = this.parent.eventFields;\n if (event[fields.isAllDay]) {\n return;\n }\n if (oldTimezone && this.parent.timezone) {\n event[fields.startTime] = this.parent.tzModule.convert(event[fields.startTime], oldTimezone, this.parent.timezone);\n event[fields.endTime] = this.parent.tzModule.convert(event[fields.endTime], oldTimezone, this.parent.timezone);\n }\n else if (!oldTimezone && this.parent.timezone) {\n event[fields.startTime] = this.parent.tzModule.add(event[fields.startTime], this.parent.timezone);\n event[fields.endTime] = this.parent.tzModule.add(event[fields.endTime], this.parent.timezone);\n }\n else if (oldTimezone && !this.parent.timezone) {\n event[fields.startTime] = this.parent.tzModule.remove(event[fields.startTime], oldTimezone);\n event[fields.endTime] = this.parent.tzModule.remove(event[fields.endTime], oldTimezone);\n }\n };\n EventBase.prototype.processTimezone = function (event, isReverse) {\n if (isReverse === void 0) { isReverse = false; }\n var fields = this.parent.eventFields;\n if (event[fields.startTimezone] || event[fields.endTimezone]) {\n var startTimezone = event[fields.startTimezone] || event[fields.endTimezone];\n var endTimezone = event[fields.endTimezone] || event[fields.startTimezone];\n if (isReverse) {\n if (this.parent.timezone) {\n event[fields.startTime] = this.parent.tzModule.convert(event[fields.startTime], startTimezone, this.parent.timezone);\n event[fields.endTime] = this.parent.tzModule.convert(event[fields.endTime], endTimezone, this.parent.timezone);\n event[fields.startTime] = this.parent.tzModule.remove(event[fields.startTime], this.parent.timezone);\n event[fields.endTime] = this.parent.tzModule.remove(event[fields.endTime], this.parent.timezone);\n }\n else {\n event[fields.startTime] = this.parent.tzModule.remove(event[fields.startTime], startTimezone);\n event[fields.endTime] = this.parent.tzModule.remove(event[fields.endTime], endTimezone);\n }\n }\n else {\n event[fields.startTime] = this.parent.tzModule.add(event[fields.startTime], startTimezone);\n event[fields.endTime] = this.parent.tzModule.add(event[fields.endTime], endTimezone);\n if (this.parent.timezone) {\n event[fields.startTime] = this.parent.tzModule.convert(event[fields.startTime], startTimezone, this.parent.timezone);\n event[fields.endTime] = this.parent.tzModule.convert(event[fields.endTime], endTimezone, this.parent.timezone);\n }\n }\n }\n else if (this.parent.timezone) {\n if (isReverse) {\n event[fields.startTime] = this.parent.tzModule.remove(event[fields.startTime], this.parent.timezone);\n event[fields.endTime] = this.parent.tzModule.remove(event[fields.endTime], this.parent.timezone);\n }\n else {\n event[fields.startTime] = this.parent.tzModule.add(event[fields.startTime], this.parent.timezone);\n event[fields.endTime] = this.parent.tzModule.add(event[fields.endTime], this.parent.timezone);\n }\n }\n return event;\n };\n EventBase.prototype.filterBlockEvents = function (eventObj) {\n var fields = this.parent.eventFields;\n var eStart = eventObj[fields.startTime];\n var eEnd = eventObj[fields.endTime];\n var resourceData;\n if (this.parent.activeViewOptions.group.resources.length > 0) {\n var data = this.getGroupIndexFromEvent(eventObj);\n resourceData = this.parent.resourceBase.lastResourceLevel[parseInt(data.toString(), 10)];\n }\n var blockEvents = extend([], this.parent.blockProcessed, null, true);\n for (var _i = 0, blockEvents_1 = blockEvents; _i < blockEvents_1.length; _i++) {\n var eventObj_1 = blockEvents_1[_i];\n if (eventObj_1[fields.isAllDay]) {\n var isDifferentTime = eventObj_1[fields.endTime].getTime() >\n util.resetTime(new Date(eventObj_1[fields.endTime].getTime())).getTime();\n if (isDifferentTime) {\n eventObj_1[fields.startTime] = util.resetTime(eventObj_1[fields.startTime]);\n eventObj_1[fields.endTime] = util.addDays(util.resetTime(eventObj_1[fields.endTime]), 1);\n }\n }\n }\n return this.filterEvents(eStart, eEnd, blockEvents, resourceData);\n };\n EventBase.prototype.filterEvents = function (startDate, endDate, appointments, resourceTdData) {\n if (appointments === void 0) { appointments = this.parent.eventsProcessed; }\n var predicate = this.parent.dataModule.getStartEndQuery(startDate, endDate);\n var filter = new DataManager({ json: appointments }).executeLocal(new Query().where(predicate));\n if (resourceTdData) {\n filter = this.filterEventsByResource(resourceTdData, filter);\n }\n return this.sortByTime(filter);\n };\n EventBase.prototype.filterEventsByRange = function (eventCollection, startDate, endDate) {\n var _this = this;\n var filteredEvents = [];\n if (startDate && endDate) {\n filteredEvents = this.filterEvents(startDate, endDate, eventCollection);\n }\n else if (startDate && !endDate) {\n filteredEvents = eventCollection.filter(function (e) { return e[_this.parent.eventFields.startTime] >= startDate; });\n }\n else if (!startDate && endDate) {\n filteredEvents = eventCollection.filter(function (e) { return e[_this.parent.eventFields.endTime] <= endDate; });\n }\n else {\n filteredEvents = eventCollection;\n }\n return this.sortByTime(filteredEvents);\n };\n EventBase.prototype.filterEventsByResource = function (resourceTdData, appointments) {\n if (appointments === void 0) { appointments = this.parent.eventsProcessed; }\n var predicate = {};\n var resourceCollection = this.parent.resourceBase.resourceCollection;\n for (var level = 0; level < resourceCollection.length; level++) {\n predicate[resourceCollection[parseInt(level.toString(), 10)].field] = resourceTdData.groupOrder[parseInt(level.toString(), 10)];\n }\n var keys = Object.keys(predicate);\n var filteredCollection = appointments.filter(function (eventObj) { return keys.every(function (key) {\n if (eventObj[\"\" + key] instanceof Array) {\n return eventObj[\"\" + key].indexOf(predicate[\"\" + key]) > -1;\n }\n else {\n return eventObj[\"\" + key] === predicate[\"\" + key];\n }\n }); });\n return filteredCollection;\n };\n EventBase.prototype.sortByTime = function (appointmentsCollection) {\n if (this.parent.eventSettings.sortComparer && (typeof (this.parent.eventSettings.sortComparer) === 'function' || typeof (this.parent.eventSettings.sortComparer) === 'string')) {\n appointmentsCollection = this.customSorting(appointmentsCollection);\n }\n else {\n var fieldMappings_1 = this.parent.eventFields;\n appointmentsCollection.sort(function (a, b) {\n var d1 = a[fieldMappings_1.startTime];\n var d2 = b[fieldMappings_1.startTime];\n return d1.getTime() - d2.getTime();\n });\n }\n return appointmentsCollection;\n };\n EventBase.prototype.sortByDateTime = function (appointments) {\n if (this.parent.eventSettings.sortComparer && (typeof (this.parent.eventSettings.sortComparer) === 'function' || typeof (this.parent.eventSettings.sortComparer) === 'string')) {\n appointments = this.customSorting(appointments);\n }\n else {\n var fieldMapping_1 = this.parent.eventFields;\n appointments.sort(function (object1, object2) {\n var d3 = object1[fieldMapping_1.startTime];\n var d4 = object2[fieldMapping_1.startTime];\n var d5 = object1[fieldMapping_1.endTime];\n var d6 = object2[fieldMapping_1.endTime];\n var d1 = d5.getTime() - d3.getTime();\n var d2 = d6.getTime() - d4.getTime();\n return (d3.getTime() - d4.getTime() || d2 - d1);\n });\n }\n return appointments;\n };\n EventBase.prototype.customSorting = function (appointments) {\n if (typeof (this.parent.eventSettings.sortComparer) === 'function') {\n return this.parent.eventSettings.sortComparer.call(this.parent, appointments);\n }\n else if (typeof (this.parent.eventSettings.sortComparer) === 'string') {\n var splits = this.parent.eventSettings.sortComparer.split('.');\n var sortFn = void 0;\n if (!isNullOrUndefined(window)) {\n sortFn = window[splits[splits.length - 1]];\n }\n if (sortFn) {\n return sortFn(appointments);\n }\n }\n return appointments;\n };\n EventBase.prototype.getSmallestMissingNumber = function (array) {\n var large = Math.max.apply(Math, array);\n for (var i = 0; i < large; i++) {\n if (array.indexOf(i) === -1) {\n return i;\n }\n }\n return large + 1;\n };\n EventBase.prototype.splitEventByDay = function (event) {\n var eventFields = this.parent.eventFields;\n var data = [];\n var eventStartTime = event[eventFields.startTime];\n var eventEndTime = event[eventFields.endTime];\n var isDifferentDate = util.resetTime(new Date(eventStartTime.getTime())) <\n util.resetTime(new Date(eventEndTime.getTime()));\n if (isDifferentDate) {\n var start = new Date(eventStartTime.getTime());\n var end = util.addDays(util.resetTime(new Date(eventStartTime.getTime())), 1);\n var endDate = (eventEndTime.getHours() === 0 && eventEndTime.getMinutes() === 0) ?\n eventEndTime : util.addDays(eventEndTime, 1);\n var index = 1;\n var eventLength = util.getDaysCount(eventStartTime.getTime(), endDate.getTime());\n while (end <= eventEndTime && start.getTime() !== end.getTime()) {\n var app = extend({}, event);\n app[eventFields.startTime] = start;\n app[eventFields.endTime] = end;\n app.data = { index: index, count: eventLength };\n app.Guid = this.generateGuid();\n app.isSpanned = true;\n data.push(app);\n start = end;\n if ((util.resetTime(new Date(start.getTime())).getTime() === util.resetTime(new Date(eventEndTime.getTime())).getTime())\n && !(end.getTime() === eventEndTime.getTime())) {\n end = new Date(start.getTime());\n end = new Date(end.setHours(eventEndTime.getHours(), eventEndTime.getMinutes(), eventEndTime.getSeconds()));\n }\n else {\n end = util.addDays(util.resetTime(new Date(start.getTime())), 1);\n }\n index++;\n }\n }\n else {\n data.push(event);\n }\n return data;\n };\n EventBase.prototype.splitEvent = function (event, dateRender) {\n var fields = this.parent.eventFields;\n var start = util.resetTime(event[fields.startTime]).getTime();\n var end = util.resetTime(event[fields.endTime]).getTime();\n if (util.getDateInMs(event[fields.endTime]) <= 0) {\n var temp = util.addDays(util.resetTime(event[fields.endTime]), -1).getTime();\n end = start > temp ? start : temp;\n }\n var orgStart = start;\n var orgEnd = end;\n var ranges = [];\n if (start !== end) {\n if (start < dateRender[0].getTime()) {\n start = dateRender[0].getTime();\n }\n if (end > dateRender[dateRender.length - 1].getTime()) {\n end = dateRender[dateRender.length - 1].getTime();\n }\n var cStart = start;\n for (var level = 0; level < this.slots.length; level++) {\n var slot = this.slots[parseInt(level.toString(), 10)];\n if (this.parent.currentView === 'WorkWeek' || this.parent.currentView === 'TimelineWorkWeek'\n || this.parent.activeViewOptions.group.byDate || this.parent.activeViewOptions.showWeekend) {\n var slotDates = [];\n for (var _i = 0, slot_1 = slot; _i < slot_1.length; _i++) {\n var s = slot_1[_i];\n slotDates.push(new Date(s));\n }\n var renderedDates = this.getRenderedDates(slotDates);\n if (!isNullOrUndefined(renderedDates) && renderedDates.length > 0) {\n slot = [];\n for (var _a = 0, renderedDates_1 = renderedDates; _a < renderedDates_1.length; _a++) {\n var date = renderedDates_1[_a];\n slot.push(date.getTime());\n }\n }\n }\n if (typeof (slot) === 'number') {\n var temp = slot;\n slot = [];\n slot.push(temp);\n }\n var firstSlot = slot[0];\n cStart = (cStart <= firstSlot && end >= firstSlot) ? firstSlot : cStart;\n if (cStart > end || firstSlot > end) {\n break;\n }\n if (!this.parent.activeViewOptions.group.byDate && this.parent.activeViewOptions.showWeekend &&\n this.parent.currentView !== 'WorkWeek' && this.parent.currentView !== 'TimelineWorkWeek') {\n var startIndex = slot.indexOf(cStart);\n if (startIndex !== -1) {\n var endIndex = slot.indexOf(end);\n var hasBreak = endIndex !== -1;\n endIndex = hasBreak ? endIndex : slot.length - 1;\n var count = ((endIndex - startIndex) + 1);\n var isLeft = (slot[parseInt(startIndex.toString(), 10)] !== orgStart);\n var isRight = (slot[parseInt(endIndex.toString(), 10)] !== orgEnd);\n ranges.push(this.cloneEventObject(event, slot[parseInt(startIndex.toString(), 10)], slot[parseInt(endIndex.toString(), 10)], count, isLeft, isRight));\n if (hasBreak) {\n break;\n }\n }\n }\n else {\n if (this.dateInRange(cStart, slot[0], slot[slot.length - 1])) {\n var availSlot = [];\n for (var i = 0; i < slot.length; i++) {\n if (this.dateInRange(slot[parseInt(i.toString(), 10)], orgStart, orgEnd)) {\n availSlot.push(slot[parseInt(i.toString(), 10)]);\n }\n }\n if (availSlot.length > 0) {\n if (!this.parent.activeViewOptions.group.byDate) {\n var isLeft = (availSlot[0] !== orgStart);\n var isRight = (availSlot[availSlot.length - 1] !== orgEnd);\n ranges.push(this.cloneEventObject(event, availSlot[0], availSlot[availSlot.length - 1], availSlot.length, isLeft, isRight));\n }\n else {\n for (var _b = 0, availSlot_1 = availSlot; _b < availSlot_1.length; _b++) {\n var slot_2 = availSlot_1[_b];\n ranges.push(this.cloneEventObject(event, slot_2, slot_2, 1, (slot_2 !== orgStart), (slot_2 !== orgEnd)));\n }\n }\n }\n }\n }\n }\n }\n else {\n ranges.push(this.cloneEventObject(event, start, end, 1, false, false));\n }\n return ranges;\n };\n EventBase.prototype.cloneEventObject = function (event, start, end, count, isLeft, isRight) {\n var fields = this.parent.eventFields;\n var e = extend({}, event, null, true);\n var data = { count: count, isLeft: isLeft, isRight: isRight };\n data[fields.startTime] = event[fields.startTime];\n data[fields.endTime] = event[fields.endTime];\n e.data = data;\n e[fields.startTime] = new Date(start);\n e[fields.endTime] = new Date(end);\n return e;\n };\n EventBase.prototype.dateInRange = function (date, start, end) {\n return start <= date && date <= end;\n };\n EventBase.prototype.getSelectedEventElements = function (target) {\n this.removeSelectedAppointmentClass();\n if (this.parent.selectedElements.length <= 0) {\n this.parent.selectedElements.push(target);\n }\n else {\n var isAlreadySelected = this.parent.selectedElements.filter(function (element) {\n return element.getAttribute('data-guid') === target.getAttribute('data-guid');\n });\n if (isAlreadySelected.length <= 0) {\n var elementSelector = 'div[data-guid=\"' + target.getAttribute('data-guid') + '\"]';\n var focusElements = [].slice.call(this.parent.element.querySelectorAll(elementSelector));\n for (var _i = 0, focusElements_1 = focusElements; _i < focusElements_1.length; _i++) {\n var element = focusElements_1[_i];\n this.parent.selectedElements.push(element);\n }\n }\n else {\n var selectedElements = this.parent.selectedElements.filter(function (element) {\n return element.getAttribute('data-guid') !== target.getAttribute('data-guid');\n });\n this.parent.selectedElements = selectedElements;\n }\n }\n if (target && this.parent.selectedElements.length > 0) {\n this.addSelectedAppointments(this.parent.selectedElements, false);\n }\n return this.parent.selectedElements;\n };\n EventBase.prototype.getSelectedEvents = function () {\n var _this = this;\n var eventSelect = [];\n var elementSelect = [];\n var selectAppointments = [].slice.call(this.parent.element.querySelectorAll('.' + cls.APPOINTMENT_BORDER));\n selectAppointments.filter(function (element) {\n var isAlreadyAdded = eventSelect.filter(function (event) {\n return event.Guid === element.getAttribute('data-guid');\n });\n if (isAlreadyAdded.length === 0) {\n eventSelect.push(_this.getEventByGuid(element.getAttribute('data-guid')));\n }\n elementSelect.push(element);\n });\n return {\n event: eventSelect.length > 1 ? eventSelect : eventSelect[0],\n element: elementSelect.length > 1 ? elementSelect : elementSelect[0]\n };\n };\n EventBase.prototype.removeSelectedAppointmentClass = function () {\n var selectedAppointments = this.getSelectedAppointments();\n removeClass(selectedAppointments, cls.APPOINTMENT_BORDER);\n if (this.parent.currentView === 'Agenda' || this.parent.currentView === 'MonthAgenda') {\n removeClass(selectedAppointments, cls.AGENDA_SELECTED_CELL);\n }\n };\n EventBase.prototype.addSelectedAppointments = function (cells, preventFocus) {\n if (this.parent.currentView !== 'MonthAgenda') {\n this.parent.removeSelectedClass();\n }\n addClass(cells, cls.APPOINTMENT_BORDER);\n if (cells.length > 0 && !preventFocus) {\n cells[cells.length - 1].focus();\n }\n };\n EventBase.prototype.getSelectedAppointments = function () {\n return [].slice.call(this.parent.element.querySelectorAll('.' + cls.APPOINTMENT_BORDER + ',.' + cls.APPOINTMENT_CLASS + ':focus'));\n };\n EventBase.prototype.focusElement = function (isFocused) {\n if (this.parent.eventWindow.dialogObject && this.parent.eventWindow.dialogObject.visible) {\n return;\n }\n var activeEle = document.activeElement;\n var selectedCell = this.parent.getSelectedCells();\n if (selectedCell.length > 0 && ((activeEle && (this.parent.element.contains(activeEle) ||\n selectedCell.indexOf(activeEle) !== -1)) || isFocused)) {\n if (this.parent.keyboardInteractionModule) {\n var target = ((!isNullOrUndefined(this.parent.activeCellsData) &&\n this.parent.activeCellsData.element) || selectedCell[selectedCell.length - 1]);\n this.parent.keyboardInteractionModule.selectCells(target instanceof Array, target);\n }\n return;\n }\n var selectedAppointments = this.getSelectedAppointments();\n if (selectedAppointments.length > 0) {\n if (this.parent.activeEventData && this.parent.activeEventData.element && selectedAppointments.indexOf(this.parent.activeEventData.element) > -1) {\n this.parent.activeEventData.element.focus();\n return;\n }\n selectedAppointments[selectedAppointments.length - 1].focus();\n return;\n }\n };\n EventBase.prototype.selectWorkCellByTime = function (eventsData) {\n var target;\n if (this.parent.currentView === 'Agenda' || this.parent.currentView === 'MonthAgenda') {\n return target;\n }\n if (eventsData.length > 0) {\n var selectedObject = eventsData[eventsData.length - 1];\n var eventStartTime = selectedObject[this.parent.eventFields.startTime];\n var nearestTime = new Date(+eventStartTime).setMinutes(0, 0, 0);\n var isAllDay = this.isAllDayAppointment(selectedObject);\n if (this.parent.currentView === 'Month' || isAllDay) {\n nearestTime = new Date(+eventStartTime).setHours(0, 0, 0, 0);\n }\n var targetArea = void 0;\n if (isAllDay && ['Day', 'Week', 'WorkWeek'].indexOf(this.parent.currentView) !== -1) {\n targetArea = this.parent.getAllDayRow();\n }\n else {\n targetArea = this.parent.getContentTable();\n }\n var queryString = '[data-date=\"' + new Date(nearestTime).getTime() + '\"]';\n if (this.parent.activeViewOptions.group.resources.length > 0) {\n queryString += '[data-group-index=\"' + this.getGroupIndexFromEvent(selectedObject) + '\"]';\n }\n target = targetArea.querySelector(queryString);\n if (target) {\n this.parent.activeCellsData = this.parent.getCellDetails(target);\n if (this.parent.keyboardInteractionModule) {\n this.parent.keyboardInteractionModule.selectCells(false, target);\n }\n return target;\n }\n }\n return target;\n };\n EventBase.prototype.getGroupIndexFromEvent = function (eventData) {\n var levelIndex;\n var resource;\n var levelName;\n var idField;\n for (var i = this.parent.resourceBase.resourceCollection.length - 1; i >= 0; i--) {\n var resourceData = eventData[this.parent.resourceBase.resourceCollection[parseInt(i.toString(), 10)].field];\n if (!isNullOrUndefined(resourceData)) {\n resource = this.parent.resourceBase.resourceCollection[parseInt(i.toString(), 10)];\n levelIndex = i;\n levelName = resource.name;\n idField = resource.field;\n break;\n }\n }\n if (isNullOrUndefined(levelName) && isNullOrUndefined(levelIndex)) {\n levelName = this.parent.resourceCollection.slice(-1)[0].name;\n levelIndex = this.parent.resourceCollection.length - 1;\n idField = this.parent.resourceCollection.slice(-1)[0].field;\n resource = this.parent.resourceCollection.filter(function (e, index) {\n if (e.name === levelName) {\n levelIndex = index;\n return e;\n }\n return null;\n })[0];\n }\n var id = ((eventData[\"\" + idField] instanceof Array) ?\n eventData[\"\" + idField][0] : eventData[\"\" + idField]);\n if (levelIndex > 0) {\n var parentField = this.parent.resourceCollection[levelIndex - 1].field;\n return this.parent.resourceBase.getIndexFromResourceId(id, levelName, resource, eventData, parentField);\n }\n else {\n return this.parent.resourceBase.getIndexFromResourceId(id, levelName, resource);\n }\n };\n EventBase.prototype.isAllDayAppointment = function (event) {\n var fieldMapping = this.parent.eventFields;\n var isAllDay = event[fieldMapping.isAllDay];\n var isFullDay = ((util.getUniversalTime(event[fieldMapping.endTime]) - util.getUniversalTime(event[fieldMapping.startTime]))\n / util.MS_PER_DAY) >= 1;\n return (isAllDay || (this.parent.eventSettings.spannedEventPlacement !== 'TimeSlot' && isFullDay)) ? true : false;\n };\n EventBase.prototype.addEventListener = function () {\n this.parent.on(event.documentClick, this.appointmentBorderRemove, this);\n };\n EventBase.prototype.removeEventListener = function () {\n this.parent.off(event.documentClick, this.appointmentBorderRemove);\n };\n EventBase.prototype.appointmentBorderRemove = function (event) {\n var element = event.event.target;\n if (closest(element, '.' + cls.APPOINTMENT_CLASS)) {\n if (this.parent.currentView !== 'MonthAgenda') {\n this.parent.removeSelectedClass();\n }\n }\n else if (!closest(element, '.' + cls.POPUP_OPEN)) {\n this.removeSelectedAppointmentClass();\n this.parent.selectedElements = [];\n }\n };\n EventBase.prototype.wireAppointmentEvents = function (element, event, isPreventCrud) {\n if (isPreventCrud === void 0) { isPreventCrud = false; }\n var isReadOnly = (!isNullOrUndefined(event)) ? event[this.parent.eventFields.isReadonly] : false;\n EventHandler.add(element, 'click', this.eventClick, this);\n if (!this.parent.isAdaptive && !this.parent.activeViewOptions.readonly && !isReadOnly) {\n EventHandler.add(element, 'touchstart', this.eventTouchClick, this);\n EventHandler.add(element, 'dblclick', this.eventDoubleClick, this);\n }\n if (!this.parent.activeViewOptions.readonly && !isReadOnly && !isPreventCrud) {\n if (this.parent.resizeModule) {\n this.parent.resizeModule.wireResizeEvent(element);\n }\n if (this.parent.dragAndDropModule) {\n this.parent.dragAndDropModule.wireDragEvent(element);\n }\n }\n };\n EventBase.prototype.eventTouchClick = function (e) {\n var _this = this;\n setTimeout(function () { return _this.isDoubleTapped = false; }, 250);\n e.preventDefault();\n if (this.isDoubleTapped) {\n this.eventDoubleClick(e);\n }\n else if (!this.isDoubleTapped) {\n this.isDoubleTapped = true;\n this.eventClick(e);\n }\n };\n EventBase.prototype.renderResizeHandler = function (element, spanEvent, isReadOnly) {\n if (!this.parent.resizeModule || !this.parent.allowResizing || this.parent.activeViewOptions.readonly || isReadOnly) {\n return;\n }\n for (var _i = 0, _a = Object.keys(spanEvent); _i < _a.length; _i++) {\n var resizeEdge = _a[_i];\n var resizeHandler = createElement('div', { className: cls.EVENT_RESIZE_CLASS });\n switch (resizeEdge) {\n case 'isLeft':\n if (!spanEvent.isLeft) {\n resizeHandler.appendChild(createElement('div', { className: 'e-left-right-resize' }));\n addClass([resizeHandler], this.parent.enableRtl ? cls.RIGHT_RESIZE_HANDLER : cls.LEFT_RESIZE_HANDLER);\n prepend([resizeHandler], element);\n }\n break;\n case 'isRight':\n if (!spanEvent.isRight) {\n resizeHandler.appendChild(createElement('div', { className: 'e-left-right-resize' }));\n addClass([resizeHandler], this.parent.enableRtl ? cls.LEFT_RESIZE_HANDLER : cls.RIGHT_RESIZE_HANDLER);\n append([resizeHandler], element);\n }\n break;\n case 'isTop':\n if (!spanEvent.isTop) {\n resizeHandler.appendChild(createElement('div', { className: 'e-top-bottom-resize' }));\n addClass([resizeHandler], cls.TOP_RESIZE_HANDLER);\n prepend([resizeHandler], element);\n }\n break;\n case 'isBottom':\n if (!spanEvent.isBottom) {\n resizeHandler.appendChild(createElement('div', { className: 'e-top-bottom-resize' }));\n addClass([resizeHandler], cls.BOTTOM_RESIZE_HANDLER);\n append([resizeHandler], element);\n }\n break;\n }\n }\n };\n EventBase.prototype.eventClick = function (eventData) {\n var _this = this;\n var target = eventData.target;\n if (target.classList.contains(cls.DRAG_CLONE_CLASS) || target.classList.contains(cls.RESIZE_CLONE_CLASS) ||\n target.classList.contains(cls.INLINE_SUBJECT_CLASS)) {\n return;\n }\n if ((eventData.ctrlKey || eventData.metaKey) && eventData.which === 1 && this.parent.keyboardInteractionModule) {\n this.parent.quickPopup.quickPopup.hide();\n this.parent.selectedElements = [].slice.call(this.parent.element.querySelectorAll('.' + cls.APPOINTMENT_BORDER));\n var target_1 = closest(eventData.target, '.' + cls.APPOINTMENT_CLASS);\n this.getSelectedEventElements(target_1);\n this.activeEventData(eventData, false);\n var selectArgs = {\n data: this.parent.activeEventData.event,\n element: this.parent.activeEventData.element,\n event: eventData, requestType: 'eventSelect'\n };\n this.parent.trigger(event.select, selectArgs);\n var args = extend(this.parent.activeEventData, { cancel: false, originalEvent: eventData });\n this.parent.trigger(event.eventClick, args);\n }\n else {\n this.removeSelectedAppointmentClass();\n this.activeEventData(eventData, true);\n var selectEventArgs = {\n data: this.parent.activeEventData.event,\n element: this.parent.activeEventData.element,\n event: eventData, requestType: 'eventSelect'\n };\n this.parent.trigger(event.select, selectEventArgs);\n var args = extend(this.parent.activeEventData, { cancel: false, originalEvent: eventData });\n this.parent.trigger(event.eventClick, args, function (eventClickArgs) {\n if (eventClickArgs.cancel) {\n _this.removeSelectedAppointmentClass();\n _this.parent.selectedElements = [];\n if (_this.parent.quickPopup) {\n _this.parent.quickPopup.quickPopupHide();\n }\n }\n else {\n if (_this.parent.currentView === 'Agenda' || _this.parent.currentView === 'MonthAgenda') {\n addClass([_this.parent.activeEventData.element], cls.AGENDA_SELECTED_CELL);\n }\n if (_this.parent.allowInline) {\n var inlineArgs = {\n data: eventClickArgs.event,\n element: eventClickArgs.element,\n type: 'Event'\n };\n _this.parent.notify(event.inlineClick, inlineArgs);\n }\n else {\n _this.parent.notify(event.eventClick, eventClickArgs);\n }\n }\n });\n }\n };\n EventBase.prototype.eventDoubleClick = function (e) {\n if (this.parent.quickPopup) {\n this.parent.quickPopup.quickPopupHide(true);\n }\n if (e.type === 'touchstart') {\n this.activeEventData(e, true);\n }\n this.removeSelectedAppointmentClass();\n this.parent.selectedElements = [];\n if (this.parent.activeEventData.element.classList.contains(cls.INLINE_APPOINTMENT_CLASS) ||\n this.parent.activeEventData.element.querySelector('.' + cls.INLINE_SUBJECT_CLASS)) {\n return;\n }\n if (!isNullOrUndefined(this.parent.activeEventData.event) &&\n isNullOrUndefined(this.parent.activeEventData.event[this.parent.eventFields.recurrenceID])) {\n this.parent.eventWindow.openEditor(this.parent.activeEventData.event, 'Save');\n }\n else {\n this.parent.currentAction = 'EditOccurrence';\n this.parent.quickPopup.openRecurrenceAlert();\n }\n };\n EventBase.prototype.getEventByGuid = function (guid) {\n return this.parent.eventsProcessed.filter(function (data) { return data.Guid === guid; })[0];\n };\n EventBase.prototype.getEventById = function (id) {\n var _this = this;\n return this.parent.eventsData.filter(function (data) {\n return data[_this.parent.eventFields.id] === id;\n })[0];\n };\n EventBase.prototype.generateGuid = function () {\n return 'xyxxxxyx-xxxy-yxxx-xyxx-xxyxxxxyyxxx'.replace(/[xy]/g, function (c) {\n var r = Math.random() * 16 | 0;\n var v = (c === 'x') ? r : (r & 0x3 | 0x8);\n return v.toString(16);\n });\n };\n EventBase.prototype.getEventIDType = function () {\n if (this.parent.eventsData.length !== 0) {\n return typeof (this.parent.eventsData[0][this.parent.eventFields.id]);\n }\n if (this.parent.blockData.length !== 0) {\n return typeof (this.parent.blockData[0][this.parent.eventFields.id]);\n }\n return 'string';\n };\n EventBase.prototype.getEventMaxID = function (resourceId) {\n var _this = this;\n if (this.parent.eventsData.length < 1 && this.parent.blockData.length < 1) {\n return 1;\n }\n var eventId;\n var idType = this.getEventIDType();\n if (idType === 'string') {\n eventId = this.generateGuid();\n }\n if (idType === 'number') {\n var datas = this.parent.eventsData.concat(this.parent.blockData);\n var appIds = datas.map(function (event) { return event[_this.parent.eventFields.id]; });\n var maxId = appIds.reduce(function (a, b) { return Math.max(a, b); });\n maxId = isNullOrUndefined(resourceId) ? maxId : maxId + resourceId;\n eventId = maxId + 1;\n }\n return eventId;\n };\n EventBase.prototype.activeEventData = function (eventData, isMultiple) {\n var _this = this;\n var target = closest(eventData.target, '.' + cls.APPOINTMENT_CLASS);\n var guid = target.getAttribute('data-guid');\n if (isMultiple) {\n this.addSelectedAppointments([].slice.call(this.parent.element.querySelectorAll('div[data-guid=\"' + guid + '\"]')), true);\n target.focus();\n }\n var eventObject = this.getEventByGuid(guid);\n if (eventObject && eventObject.isSpanned) {\n eventObject = this.parent.eventsData.filter(function (obj) {\n return obj[_this.parent.eventFields.id] === eventObject[_this.parent.eventFields.id];\n })[0];\n }\n this.parent.activeEventData = { event: eventObject, element: target };\n };\n EventBase.prototype.generateOccurrence = function (event, viewDate, oldTimezone, isMaxCount) {\n var startDate = event[this.parent.eventFields.startTime];\n var endDate = event[this.parent.eventFields.endTime];\n var eventRule = event[this.parent.eventFields.recurrenceRule];\n var timeZoneDiff = endDate.getTimezoneOffset() - startDate.getTimezoneOffset();\n var duration = (endDate.getTime() - startDate.getTime()) - (timeZoneDiff * 60000);\n viewDate = new Date((viewDate || this.parent.activeView.startDate()).getTime() - duration);\n var exception = event[this.parent.eventFields.recurrenceException];\n var maxCount;\n if (this.parent.currentView !== 'Agenda' && isMaxCount) {\n maxCount = util.getDateCount(viewDate, this.parent.activeView.endDate()) + 1;\n }\n var newTimezone = this.parent.timezone || this.parent.tzModule.getLocalTimezoneName();\n var firstDay = this.parent.activeViewOptions.firstDayOfWeek;\n var calendarMode = this.parent.calendarMode;\n var dates = generate(startDate, eventRule, exception, firstDay, maxCount, viewDate, calendarMode, oldTimezone, newTimezone);\n if (this.parent.currentView === 'Agenda' && eventRule.indexOf('COUNT') === -1 && eventRule.indexOf('UNTIL') === -1) {\n if (isNullOrUndefined(event.generatedDates)) {\n event.generatedDates = { start: new Date(dates[0]), end: new Date(dates[dates.length - 1]) };\n }\n else {\n if (dates[0] < event.generatedDates.start.getTime()) {\n event.generatedDates.start = new Date(dates[0]);\n }\n if (dates[dates.length - 1] > event.generatedDates.end.getTime()) {\n event.generatedDates.end = new Date(dates[dates.length - 1]);\n }\n }\n }\n var occurrenceCollection = [];\n for (var _i = 0, dates_1 = dates; _i < dates_1.length; _i++) {\n var date = dates_1[_i];\n var clonedObject = extend({}, event, null, true);\n date = this.getDSTAdjustedTime(date, clonedObject);\n clonedObject[this.parent.eventFields.startTime] = new Date(date);\n clonedObject[this.parent.eventFields.endTime] = new Date(new Date(date).setMilliseconds(duration));\n clonedObject[this.parent.eventFields.recurrenceID] = clonedObject[this.parent.eventFields.id];\n delete clonedObject[this.parent.eventFields.recurrenceException];\n delete clonedObject[this.parent.eventFields.followingID];\n clonedObject.Guid = this.generateGuid();\n occurrenceCollection.push(clonedObject);\n }\n return occurrenceCollection;\n };\n EventBase.prototype.getDSTAdjustedTime = function (date, event) {\n var occurDate = date;\n if (this.parent.timezone &&\n (event[this.parent.eventFields.startTimezone] || event[this.parent.eventFields.endTimezone])) {\n var eventOffset = this.getDSTDiff(event[this.parent.eventFields.startTime], new Date(date), event[this.parent.eventFields.startTimezone]);\n var schOffset = this.getDSTDiff(event[this.parent.eventFields.startTime], new Date(date), this.parent.timezone);\n occurDate = (new Date(date).getTime() - (eventOffset - schOffset) * 60000);\n }\n return occurDate;\n };\n EventBase.prototype.getDSTDiff = function (startDate, occurDate, timezone) {\n var startOffset = this.parent.tzModule.offset(new Date(startDate), timezone);\n var occurOffset = this.parent.tzModule.offset(new Date(occurDate), timezone);\n return startOffset - occurOffset;\n };\n EventBase.prototype.getParentEvent = function (eventObj, isParent) {\n if (isParent === void 0) { isParent = false; }\n var parentEvent;\n do {\n eventObj = this.getFollowingEvent(eventObj);\n if (eventObj) {\n parentEvent = extend({}, eventObj, null, true);\n }\n } while (eventObj && isParent);\n if (isParent && parentEvent) {\n var collection = this.getEventCollections(parentEvent);\n var followObj = collection.follow.slice(-1)[0];\n if (collection.occurrence.length > 0 && !parentEvent[this.parent.eventFields.recurrenceException]) {\n followObj = collection.occurrence.slice(-1)[0];\n }\n if (followObj) {\n parentEvent[this.parent.eventFields.recurrenceRule] = followObj[this.parent.eventFields.recurrenceRule];\n }\n }\n return parentEvent;\n };\n EventBase.prototype.getEventCollections = function (parentObj, childObj) {\n var followingCollection = [];\n var occurrenceCollection = [];\n var followingEvent = parentObj;\n do {\n followingEvent = this.getFollowingEvent(followingEvent, true);\n if (followingEvent) {\n followingCollection.push(followingEvent);\n }\n occurrenceCollection = occurrenceCollection.concat(this.getOccurrenceEvent(followingEvent || parentObj));\n } while (followingEvent);\n var collections = {};\n if (childObj) {\n var fields_1 = this.parent.eventFields;\n collections = {\n follow: followingCollection.filter(function (eventData) {\n return eventData[fields_1.startTime] >= childObj[fields_1.startTime];\n }),\n occurrence: occurrenceCollection.filter(function (eventData) {\n return eventData[fields_1.startTime] >= childObj[fields_1.startTime];\n })\n };\n }\n else {\n collections = { follow: followingCollection, occurrence: occurrenceCollection };\n }\n return collections;\n };\n EventBase.prototype.getFollowingEvent = function (parentObj, isReverse) {\n var fields = this.parent.eventFields;\n var fieldValue;\n if (isReverse) {\n fieldValue = parentObj[fields.id];\n }\n else {\n fieldValue = (parentObj[fields.recurrenceID] || parentObj[fields.followingID]);\n }\n var parentApp = this.parent.eventsData.filter(function (data) {\n return data[isReverse ? fields.followingID : fields.id] === fieldValue;\n });\n return parentApp.shift();\n };\n EventBase.prototype.isFollowingEvent = function (parentObj, childObj) {\n var parentStart = parentObj[this.parent.eventFields.startTime];\n var childStart = childObj[this.parent.eventFields.startTime];\n return parentStart.getHours() === childStart.getHours() && parentStart.getMinutes() === childStart.getMinutes() &&\n parentStart.getSeconds() === childStart.getSeconds();\n };\n EventBase.prototype.getOccurrenceEvent = function (eventObj, isGuid, isFollowing) {\n if (isGuid === void 0) { isGuid = false; }\n if (isFollowing === void 0) { isFollowing = false; }\n var idField = isGuid ? 'Guid' : (isFollowing) ? this.parent.eventFields.followingID : this.parent.eventFields.recurrenceID;\n var fieldKey = isGuid ? 'Guid' : this.parent.eventFields.id;\n var dataSource = isGuid ? this.parent.eventsProcessed : this.parent.eventsData;\n return dataSource.filter(function (data) { return data[\"\" + idField] === eventObj[\"\" + fieldKey]; });\n };\n EventBase.prototype.getOccurrencesByID = function (id) {\n var fields = this.parent.eventFields;\n var occurrenceCollection = [];\n var parentObject = this.parent.eventsData.filter(function (obj) { return obj[fields.id] === id; });\n for (var _i = 0, parentObject_1 = parentObject; _i < parentObject_1.length; _i++) {\n var event_3 = parentObject_1[_i];\n if (!isNullOrUndefined(event_3[fields.recurrenceRule])) {\n occurrenceCollection = occurrenceCollection.concat(this.generateOccurrence(event_3));\n }\n }\n return occurrenceCollection;\n };\n EventBase.prototype.getOccurrencesByRange = function (startTime, endTime) {\n var fields = this.parent.eventFields;\n var occurrenceCollection = [];\n for (var _i = 0, _a = this.parent.eventsData; _i < _a.length; _i++) {\n var event_4 = _a[_i];\n if (!isNullOrUndefined(event_4[fields.recurrenceRule])) {\n occurrenceCollection = occurrenceCollection.concat(this.generateOccurrence(event_4));\n }\n }\n var filter = occurrenceCollection.filter(function (obj) {\n return obj[fields.startTime] >= startTime && obj[fields.endTime] <= endTime && !isNullOrUndefined(obj[fields.recurrenceID]);\n });\n return filter;\n };\n EventBase.prototype.getDeletedOccurrences = function (recurrenceData) {\n var fields = this.parent.eventFields;\n var parentObject;\n var deletedOccurrences = [];\n if (typeof recurrenceData === 'string' || typeof recurrenceData === 'number') {\n parentObject = this.parent.eventsData.filter(function (obj) {\n return obj[fields.id] === recurrenceData;\n })[0];\n }\n else {\n parentObject = extend({}, recurrenceData, null, true);\n }\n if (parentObject[fields.recurrenceException]) {\n var exDateString_1 = parentObject[fields.recurrenceException].split(',');\n var _loop_3 = function (i, len) {\n var edited = this_2.parent.eventsData.filter(function (eventObj) {\n return eventObj[fields.recurrenceID] === parentObject[fields.id] && eventObj[fields.recurrenceException] === exDateString_1[parseInt(i.toString(), 10)];\n });\n if (edited.length === 0) {\n var exDate = getDateFromRecurrenceDateString(exDateString_1[parseInt(i.toString(), 10)]);\n var childObject = extend({}, recurrenceData, null, true);\n childObject[fields.recurrenceID] = parentObject[fields.id];\n delete childObject[fields.followingID];\n childObject[fields.recurrenceException] = exDateString_1[parseInt(i.toString(), 10)];\n var startDate = new Date(exDate.getTime());\n var time = parentObject[fields.endTime].getTime() - parentObject[fields.startTime].getTime();\n var endDate = new Date(startDate.getTime());\n endDate.setMilliseconds(time);\n childObject[fields.startTime] = new Date(startDate.getTime());\n childObject[fields.endTime] = new Date(endDate.getTime());\n deletedOccurrences.push(childObject);\n }\n };\n var this_2 = this;\n for (var i = 0, len = exDateString_1.length; i < len; i++) {\n _loop_3(i, len);\n }\n }\n return deletedOccurrences;\n };\n EventBase.prototype.applyResourceColor = function (element, data, type, index, alpha) {\n if (!this.parent.resourceBase) {\n return;\n }\n var alphaColor = function (color, alpha) {\n color = color.replace('#', '');\n var r = parseInt(color.substring(0, color.length / 3), 16);\n var g = parseInt(color.substring(color.length / 3, 2 * color.length / 3), 16);\n var b = parseInt(color.substring(2 * color.length / 3, 3 * color.length / 3), 16);\n return \"rgba(\" + r + \", \" + g + \", \" + b + \", \" + alpha + \")\";\n };\n // index refers groupOrder\n var color = this.parent.resourceBase.getResourceColor(data, index);\n if (color) {\n element.style[type] = !isNullOrUndefined(alpha) ? alphaColor(color, alpha) : color;\n }\n };\n EventBase.prototype.createBlockAppointmentElement = function (record, resIndex, isResourceEventTemplate) {\n var eventSubject = (record[this.parent.eventFields.subject] || this.parent.eventSettings.fields.subject.default);\n var appointmentWrapper = createElement('div', {\n className: cls.BLOCK_APPOINTMENT_CLASS,\n attrs: {\n 'data-id': 'Appointment_' + record[this.parent.eventFields.id],\n 'aria-disabled': 'true'\n }\n });\n var templateElement;\n if (!isNullOrUndefined(this.parent.activeViewOptions.eventTemplate)) {\n var scheduleId = this.parent.element.id + '_';\n var viewName = this.parent.activeViewOptions.eventTemplateName;\n var templateId = scheduleId + viewName + 'eventTemplate';\n var templateName = 'eventTemplate' + (isResourceEventTemplate &&\n this.parent.currentView.indexOf('Year') === -1 ? '_' + resIndex : '');\n templateElement = this.parent.getAppointmentTemplate()(record, this.parent, templateName, templateId, false);\n }\n else {\n var appointmentSubject = createElement('div', { className: cls.SUBJECT_CLASS });\n this.parent.sanitize(eventSubject, appointmentSubject);\n templateElement = [appointmentSubject];\n }\n append(templateElement, appointmentWrapper);\n this.setWrapperAttributes(appointmentWrapper, resIndex);\n return appointmentWrapper;\n };\n EventBase.prototype.setWrapperAttributes = function (appointmentWrapper, resIndex) {\n if (!isNullOrUndefined(this.cssClass)) {\n addClass([appointmentWrapper], this.cssClass);\n }\n if (this.parent.activeViewOptions.group.resources.length > 0) {\n appointmentWrapper.setAttribute('data-group-index', resIndex.toString());\n }\n };\n EventBase.prototype.getReadonlyAttribute = function (event) {\n return (event[this.parent.eventFields.isReadonly] || this.parent.readonly).toString();\n };\n EventBase.prototype.isBlockRange = function (eventData) {\n var eventCollection = (eventData instanceof Array) ? eventData : [eventData];\n var isBlockAlert = false;\n var fields = this.parent.eventFields;\n for (var _i = 0, _a = eventCollection; _i < _a.length; _i++) {\n var event_5 = _a[_i];\n var dataCol = [];\n if (!isNullOrUndefined(event_5[fields.recurrenceRule]) &&\n (isNullOrUndefined(event_5[fields.recurrenceID]) || event_5[fields.id] === event_5[fields.recurrenceID])) {\n dataCol = this.generateOccurrence(event_5);\n }\n else {\n dataCol.push(event_5);\n }\n for (var _b = 0, dataCol_1 = dataCol; _b < dataCol_1.length; _b++) {\n var data = dataCol_1[_b];\n var filterBlockEvents = this.filterBlockEvents(data);\n if (filterBlockEvents.length > 0) {\n isBlockAlert = true;\n break;\n }\n }\n }\n this.parent.uiStateValues.isBlock = isBlockAlert;\n return isBlockAlert;\n };\n EventBase.prototype.getFilterEventsList = function (dataSource, query) {\n return new DataManager(dataSource).executeLocal(new Query().where(query));\n };\n EventBase.prototype.getSeriesEvents = function (parentEvent, startTime) {\n var fields = this.parent.eventFields;\n startTime = isNullOrUndefined(startTime) ? parentEvent[fields.startTime] : startTime;\n var deleteFutureEditEvents;\n var futureEvents;\n var deleteFutureEditEventList = [];\n var delId = parentEvent[fields.id];\n var followingId = parentEvent[fields.followingID];\n var deleteFutureEvent;\n var startTimeQuery = this.parent.currentAction === 'EditSeries' ? 'greaterthan' : 'greaterthanorequal';\n do {\n deleteFutureEvent = ((new Predicate(fields.followingID, 'equal', delId))).\n and(new Predicate(fields.startTime, startTimeQuery, startTime));\n futureEvents = this.getFilterEventsList(this.parent.eventsData, deleteFutureEvent);\n deleteFutureEditEvents = futureEvents.slice(-1)[0];\n if (!isNullOrUndefined(deleteFutureEditEvents) && deleteFutureEditEvents[fields.id] !== followingId) {\n deleteFutureEditEventList.push(deleteFutureEditEvents);\n delId = deleteFutureEditEvents[fields.id];\n followingId = deleteFutureEditEvents[fields.followingID];\n }\n else {\n followingId = null;\n }\n } while (futureEvents.length === 1 && !isNullOrUndefined(deleteFutureEditEvents[fields.followingID]));\n return deleteFutureEditEventList;\n };\n EventBase.prototype.getEditedOccurrences = function (deleteFutureEditEventList, startTime) {\n var fields = this.parent.eventFields;\n var deleteRecurrenceEventList = [];\n var delEditedEvents;\n for (var _i = 0, deleteFutureEditEventList_1 = deleteFutureEditEventList; _i < deleteFutureEditEventList_1.length; _i++) {\n var event_6 = deleteFutureEditEventList_1[_i];\n var delEventQuery = new Predicate(fields.recurrenceID, 'equal', event_6[fields.id]).\n or(new Predicate(fields.recurrenceID, 'equal', event_6[fields.followingID]).\n and(new Predicate(fields.recurrenceID, 'notequal', undefined)).\n and(new Predicate(fields.recurrenceID, 'notequal', null)));\n if (this.parent.currentAction === 'EditFollowingEvents' || this.parent.currentAction === 'DeleteFollowingEvents') {\n delEventQuery = delEventQuery.and(new Predicate(fields.startTime, 'greaterthanorequal', startTime));\n }\n delEditedEvents = this.getFilterEventsList(this.parent.eventsData, delEventQuery);\n deleteRecurrenceEventList = deleteRecurrenceEventList.concat(delEditedEvents);\n }\n return deleteRecurrenceEventList;\n };\n EventBase.prototype.getRenderedDates = function (dateRender) {\n var firstDate = 0;\n var lastDate = dateRender.length;\n var filteredDates;\n if (dateRender[0] < this.parent.minDate && dateRender[dateRender.length - 1] > this.parent.maxDate) {\n for (var i = 0; i < dateRender.length; i++) {\n if (util.resetTime(dateRender[parseInt(i.toString(), 10)]).getTime() === util.resetTime(new Date(this.parent.minDate)).getTime()) {\n firstDate = i;\n }\n if (util.resetTime(dateRender[parseInt(i.toString(), 10)]).getTime() === util.resetTime(new Date(this.parent.maxDate)).getTime()) {\n lastDate = i;\n }\n }\n filteredDates = dateRender.filter(function (date) { return date >= dateRender[parseInt(firstDate.toString(), 10)] && date <= dateRender[parseInt(lastDate.toString(), 10)]; });\n }\n return filteredDates;\n };\n EventBase.prototype.isValidEvent = function (eventObj, start, end, schedule) {\n var isHourRange = end.getTime() > schedule.startHour.getTime() && start.getTime() < schedule.endHour.getTime();\n var isSameRange = schedule.startHour.getTime() <= start.getTime() &&\n eventObj[this.parent.eventFields.startTime].getTime() >= schedule.startHour.getTime() &&\n eventObj[this.parent.eventFields.endTime].getTime() < schedule.endHour.getTime() && start.getTime() === end.getTime();\n return isHourRange || isSameRange;\n };\n EventBase.prototype.allDayExpandScroll = function (dateHeader) {\n var indentHeight = 0;\n var headerRows = [].slice.call(this.parent.element.querySelectorAll('.' + cls.HEADER_ROW_CLASS));\n headerRows.forEach(function (element) {\n var tdEle = [].slice.call(element.children);\n tdEle.forEach(function (ele) { ele.style.top = indentHeight + 'px'; });\n indentHeight += element.offsetHeight;\n });\n indentHeight = dateHeader.offsetHeight - indentHeight;\n this.parent.element.querySelector('.' + cls.ALLDAY_CELLS_CLASS).style.height = (indentHeight / 12) + 'em';\n if (this.parent.uiStateValues.expand) {\n addClass([dateHeader], cls.ALLDAY_APPOINTMENT_SCROLL);\n }\n else {\n removeClass([dateHeader], cls.ALLDAY_APPOINTMENT_SCROLL);\n }\n };\n EventBase.prototype.updateEventMinimumDuration = function (startEndHours, startTime, endTime) {\n if (startTime.getTime() < endTime.getTime()) {\n var eventDuration = (util.getUniversalTime(endTime) - util.getUniversalTime(startTime)) / util.MS_PER_MINUTE;\n if (eventDuration < this.parent.eventSettings.minimumEventDuration) {\n var tempEnd = new Date(startTime);\n tempEnd.setMinutes(tempEnd.getMinutes() + this.parent.eventSettings.minimumEventDuration);\n endTime = tempEnd;\n if (endTime.getTime() > startEndHours.endHour.getTime()) {\n var tempStart = new Date(startEndHours.endHour.getTime());\n tempStart.setMinutes(tempStart.getMinutes() - this.parent.eventSettings.minimumEventDuration);\n startTime = tempStart;\n endTime = startEndHours.endHour;\n }\n }\n }\n return { startDate: startTime, endDate: endTime };\n };\n EventBase.prototype.createEventWrapper = function (type, index) {\n if (type === void 0) { type = ''; }\n if (index === void 0) { index = 0; }\n var tr = createElement('tr');\n var levels = this.parent.activeView.colLevels.slice(-1)[0];\n for (var i = 0, len = levels.length; i < len; i++) {\n var col = levels[parseInt(i.toString(), 10)];\n var appointmentWrap = createElement('td', {\n className: (type === 'allDay') ? cls.ALLDAY_APPOINTMENT_WRAPPER_CLASS : (type === 'timeIndicator') ?\n cls.TIMELINE_WRAPPER_CLASS : cls.DAY_WRAPPER_CLASS, attrs: { 'data-date': col.date.getTime().toString() }\n });\n if (!isNullOrUndefined(col.groupIndex)) {\n appointmentWrap.setAttribute('data-group-index', col.groupIndex.toString());\n }\n if (type === '') {\n var innerWrapper = createElement('div', {\n id: cls.APPOINTMENT_WRAPPER_CLASS + '-' + index.toString(),\n className: cls.APPOINTMENT_WRAPPER_CLASS\n });\n appointmentWrap.appendChild(innerWrapper);\n }\n tr.appendChild(appointmentWrap);\n index = index + 1;\n }\n return tr;\n };\n EventBase.prototype.getPageCoordinates = function (e) {\n if (isNullOrUndefined(e)) {\n return e;\n }\n var eventArgs = e.event;\n return eventArgs && eventArgs.changedTouches ? eventArgs.changedTouches[0] : e.changedTouches ? e.changedTouches[0] :\n eventArgs || e;\n };\n EventBase.prototype.renderSpannedIcon = function (element, spanEvent) {\n var iconElement = createElement('div', { className: cls.EVENT_INDICATOR_CLASS + ' ' + cls.ICON });\n if (spanEvent.isLeft) {\n var iconLeft = iconElement.cloneNode();\n addClass([iconLeft], cls.EVENT_ICON_LEFT_CLASS);\n prepend([iconLeft], element);\n }\n if (spanEvent.isRight) {\n var iconRight = iconElement.cloneNode();\n addClass([iconRight], cls.EVENT_ICON_RIGHT_CLASS);\n append([iconRight], element);\n }\n if (spanEvent.isTop) {\n var iconTop = iconElement.cloneNode();\n addClass([iconTop], cls.EVENT_ICON_UP_CLASS);\n prepend([iconTop], element);\n }\n if (spanEvent.isBottom) {\n var iconBottom = iconElement.cloneNode();\n addClass([iconBottom], cls.EVENT_ICON_DOWN_CLASS);\n append([iconBottom], element);\n }\n };\n EventBase.prototype.unWireEvents = function () {\n var appElements = [].slice.call(this.parent.element.querySelectorAll('.' + cls.APPOINTMENT_CLASS));\n for (var _i = 0, appElements_1 = appElements; _i < appElements_1.length; _i++) {\n var element = appElements_1[_i];\n EventHandler.clearEvents(element);\n }\n };\n EventBase.prototype.destroy = function () {\n this.unWireEvents();\n this.parent = null;\n };\n return EventBase;\n}());\nexport { EventBase };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { append, createElement, extend, EventHandler, Animation, formatUnit } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined, setStyleAttribute, remove, removeClass, addClass } from '@syncfusion/ej2-base';\nimport { EventBase } from './event-base';\nimport * as util from '../base/util';\nimport * as events from '../base/constant';\nimport * as cls from '../base/css-constant';\n/**\n * Vertical view appointment rendering\n */\nvar VerticalEvent = /** @class */ (function (_super) {\n __extends(VerticalEvent, _super);\n function VerticalEvent(parent) {\n var _this = _super.call(this, parent) || this;\n _this.dateRender = [];\n _this.renderedEvents = [];\n _this.renderedAllDayEvents = [];\n _this.overlapEvents = [];\n _this.moreEvents = [];\n _this.overlapList = [];\n _this.allDayEvents = [];\n _this.slotCount = _this.parent.activeViewOptions.timeScale.slotCount;\n _this.interval = _this.parent.activeViewOptions.timeScale.interval;\n _this.allDayLevel = 0;\n _this.startHour = _this.parent.activeView.getStartHour();\n _this.endHour = _this.parent.activeView.getEndHour();\n _this.element = _this.parent.activeView.getPanel();\n _this.fields = _this.parent.eventFields;\n _this.animation = new Animation({ progress: _this.animationUiUpdate.bind(_this) });\n _this.addEventListener();\n return _this;\n }\n VerticalEvent.prototype.renderAppointments = function () {\n if (isNullOrUndefined(this.parent)) {\n return;\n }\n if (this.parent.dragAndDropModule) {\n this.parent.dragAndDropModule.setDragArea();\n }\n this.isResourceEventTemplate = this.parent.isSpecificResourceEvents();\n var wrapperElements = [].slice.call(this.parent.element.querySelectorAll('.' + cls.BLOCK_APPOINTMENT_CLASS +\n ',.' + cls.APPOINTMENT_CLASS + ',.' + cls.ROW_COUNT_WRAPPER_CLASS));\n var isDragging = (this.parent.crudModule && this.parent.crudModule.crudObj.isCrudAction) ? true : false;\n for (var _i = 0, wrapperElements_1 = wrapperElements; _i < wrapperElements_1.length; _i++) {\n var wrapper = wrapperElements_1[_i];\n if (isDragging && !(wrapper.classList.contains(cls.ALLDAY_APPOINTMENT_CLASS) ||\n wrapper.classList.contains(cls.ROW_COUNT_WRAPPER_CLASS))) {\n var groupIndex = parseInt(wrapper.getAttribute('data-group-index'), 10);\n for (var j = 0, len = this.parent.crudModule.crudObj.sourceEvent.length; j < len; j++) {\n if (groupIndex === this.parent.crudModule.crudObj.sourceEvent[parseInt(j.toString(), 10)].groupIndex ||\n groupIndex === this.parent.crudModule.crudObj.targetEvent[parseInt(j.toString(), 10)].groupIndex) {\n remove(wrapper);\n }\n }\n }\n else {\n remove(wrapper);\n }\n }\n if (!this.element.querySelector('.' + cls.WORK_CELLS_CLASS)) {\n return;\n }\n if (this.parent.virtualScrollModule) {\n this.parent.virtualScrollModule.updateFocusedWorkCell();\n }\n this.allDayElement = [].slice.call(this.element.querySelectorAll('.' + cls.ALLDAY_CELLS_CLASS));\n this.setAllDayRowHeight(0);\n if (this.parent.eventsProcessed.length === 0 && this.parent.blockProcessed.length === 0) {\n return;\n }\n var expandCollapse = this.element.querySelector('.' + cls.ALLDAY_APPOINTMENT_SECTION_CLASS);\n EventHandler.remove(expandCollapse, 'click', this.rowExpandCollapse);\n EventHandler.add(expandCollapse, 'click', this.rowExpandCollapse, this);\n this.renderedEvents = [];\n this.renderedAllDayEvents = [];\n this.initializeValues();\n this.processBlockEvents();\n this.renderEvents('normalEvents');\n if (this.allDayEvents.length > 0) {\n this.allDayEvents = this.allDayEvents.filter(function (item, index, arr) {\n return index === arr.map(function (item) { return item.Guid; }).indexOf(item.Guid);\n });\n removeClass(this.allDayElement, cls.ALLDAY_ROW_ANIMATE_CLASS);\n this.slots.push(this.parent.activeView.renderDates.map(function (date) { return +date; }));\n this.renderEvents('allDayEvents');\n this.animation.animate(this.allDayElement[0]);\n }\n this.parent.notify(events.contentReady, {});\n addClass(this.allDayElement, cls.ALLDAY_ROW_ANIMATE_CLASS);\n if (isDragging) {\n this.parent.crudModule.crudObj.isCrudAction = false;\n }\n this.parent.renderTemplates();\n };\n VerticalEvent.prototype.initializeValues = function () {\n this.resources = (this.parent.activeViewOptions.group.resources.length > 0) ? this.parent.uiStateValues.isGroupAdaptive ?\n [this.parent.resourceBase.lastResourceLevel[this.parent.uiStateValues.groupIndex]] :\n this.parent.resourceBase.lastResourceLevel : [];\n if (this.resources.length > 0 && this.parent.activeViewOptions.allowVirtualScrolling && this.parent.virtualScrollModule) {\n this.resources = this.parent.resourceBase.renderedResources;\n }\n this.cellHeight =\n parseFloat(this.parent.element.querySelector('.e-content-wrap tbody tr').getBoundingClientRect().height.toFixed(2));\n this.dateRender[0] = this.parent.activeView.renderDates;\n if (this.parent.activeViewOptions.group.resources.length > 0) {\n for (var i = 0, len = this.resources.length; i < len; i++) {\n this.dateRender[parseInt(i.toString(), 10)] = this.resources[parseInt(i.toString(), 10)].renderDates;\n }\n }\n };\n VerticalEvent.prototype.getHeight = function (start, end) {\n var appHeight = (util.getUniversalTime(end) - util.getUniversalTime(start)) /\n util.MS_PER_MINUTE * (this.cellHeight * this.slotCount) / this.interval;\n appHeight = (appHeight <= 0) ? this.cellHeight : appHeight;\n return appHeight;\n };\n VerticalEvent.prototype.appendEvent = function (eventObj, appointmentElement, index, appLeft) {\n var appointmentWrap = this.element.querySelector('.' + cls.APPOINTMENT_WRAPPER_CLASS + '[id=\"' + cls.APPOINTMENT_WRAPPER_CLASS + '-' + index + '\"]');\n if (this.parent.enableRtl) {\n setStyleAttribute(appointmentElement, { 'right': appLeft });\n }\n else {\n setStyleAttribute(appointmentElement, { 'left': appLeft });\n }\n var eventType = appointmentElement.classList.contains(cls.BLOCK_APPOINTMENT_CLASS) ? 'blockEvent' : 'event';\n var args = {\n data: extend({}, eventObj, null, true),\n element: appointmentElement, cancel: false, type: eventType\n };\n this.parent.trigger(events.eventRendered, args, function (eventArgs) {\n if (!eventArgs.cancel) {\n appointmentWrap.appendChild(appointmentElement);\n }\n });\n };\n VerticalEvent.prototype.processBlockEvents = function () {\n var resources = this.getResourceList();\n var dateCount = this.getStartCount();\n for (var _i = 0, resources_1 = resources; _i < resources_1.length; _i++) {\n var resource = resources_1[_i];\n var renderDates = this.dateRender[parseInt(resource.toString(), 10)];\n for (var day = 0, length_1 = renderDates.length; day < length_1; day++) {\n var startDate = new Date(renderDates[parseInt(day.toString(), 10)].getTime());\n var endDate = util.addDays(renderDates[parseInt(day.toString(), 10)], 1);\n var filterEvents = this.filterEvents(startDate, endDate, this.parent.blockProcessed, this.resources[parseInt(resource.toString(), 10)]);\n for (var _a = 0, filterEvents_1 = filterEvents; _a < filterEvents_1.length; _a++) {\n var event_1 = filterEvents_1[_a];\n if (this.parent.resourceBase) {\n this.setValues(event_1, resource);\n }\n this.renderBlockEvents(event_1, day, resource, dateCount);\n this.cssClass = null;\n this.groupOrder = null;\n }\n dateCount += 1;\n }\n }\n };\n VerticalEvent.prototype.renderBlockEvents = function (eventObj, dayIndex, resource, dayCount) {\n var spannedData = this.isSpannedEvent(eventObj, dayIndex, resource);\n var eStart = spannedData[this.fields.startTime];\n var eEnd = spannedData[this.fields.endTime];\n var currentDate = util.resetTime(new Date(this.dateRender[parseInt(resource.toString(), 10)][parseInt(dayIndex.toString(), 10)].getTime()));\n var schedule = util.getStartEndHours(currentDate, this.startHour, this.endHour);\n if (eStart <= eEnd && this.isValidEvent(eventObj, eStart, eEnd, schedule) && this.isWorkDayAvailable(resource, eStart)) {\n var blockTop = void 0;\n var blockHeight = void 0;\n if (spannedData[this.fields.isAllDay]) {\n var contentWrap = this.parent.element.querySelector('.' + cls.CONTENT_WRAP_CLASS + ' table');\n blockHeight = formatUnit(contentWrap.offsetHeight);\n blockTop = formatUnit(0);\n }\n else {\n blockHeight = formatUnit(this.getHeight(eStart, eEnd));\n blockTop = formatUnit(this.getTopValue(eStart, dayIndex, resource));\n }\n var appointmentElement = this.createBlockAppointmentElement(eventObj, resource, this.isResourceEventTemplate);\n setStyleAttribute(appointmentElement, { 'width': '100%', 'height': blockHeight, 'top': blockTop });\n var index = this.getDayIndex(dayIndex, resource, dayCount);\n this.appendEvent(eventObj, appointmentElement, index, '0px');\n }\n };\n VerticalEvent.prototype.renderEvents = function (eventType) {\n removeClass(this.allDayElement, cls.ALLDAY_ROW_ANIMATE_CLASS);\n var eventCollection = (eventType === 'allDayEvents') ? this.sortByDateTime(this.allDayEvents) : undefined;\n var resources = this.getResourceList();\n var dateCount = this.getStartCount();\n var isRender;\n var appHeight = eventType === 'allDayEvents' ? util.getElementHeightFromClass(this.element.querySelector('.' + cls.ALLDAY_APPOINTMENT_WRAPPER_CLASS), cls.APPOINTMENT_CLASS) : 0;\n var allDayRowTop = eventType === 'allDayEvents' && this.allDayElement.length > 0 ? this.allDayElement[0].offsetTop : 0;\n var _loop_1 = function (resource) {\n isRender = true;\n if (this_1.parent.crudModule && this_1.parent.crudModule.crudObj.isCrudAction && eventType !== 'allDayEvents'\n && !this_1.parent.uiStateValues.isGroupAdaptive) {\n if (this_1.parent.crudModule.crudObj.sourceEvent.filter(function (data) { return data.groupIndex === resource; }).length === 0 &&\n this_1.parent.crudModule.crudObj.targetEvent.filter(function (data) { return data.groupIndex === resource; }).length === 0) {\n isRender = false;\n }\n }\n this_1.slots = [];\n var renderDates = this_1.dateRender[parseInt(resource.toString(), 10)];\n var renderedDate = this_1.getRenderedDates(renderDates) || renderDates;\n this_1.slots.push(renderDates.map(function (date) { return +date; }));\n for (var day = 0, length_2 = renderDates.length; day < length_2 &&\n renderDates[parseInt(day.toString(), 10)] <= renderedDate[renderedDate.length - 1]; day++) {\n this_1.renderedEvents = [];\n var startDate = new Date(renderDates[parseInt(day.toString(), 10)].getTime());\n var endDate = util.addDays(renderDates[parseInt(day.toString(), 10)], 1);\n var filterEvents = this_1.filterEvents(startDate, endDate, eventCollection, this_1.resources[parseInt(resource.toString(), 10)]);\n if (isRender) {\n for (var _i = 0, filterEvents_2 = filterEvents; _i < filterEvents_2.length; _i++) {\n var event_2 = filterEvents_2[_i];\n if (this_1.parent.resourceBase) {\n this_1.setValues(event_2, resource);\n }\n if (eventType === 'allDayEvents') {\n this_1.renderAllDayEvents(event_2, day, resource, dateCount, false, allDayRowTop, appHeight);\n }\n else {\n if (this_1.isAllDayAppointment(event_2)) {\n this_1.allDayEvents.push(extend({}, event_2, null, true));\n }\n else {\n if (this_1.parent.eventSettings.enableMaxHeight) {\n if (this_1.getOverlapIndex(event_2, day, false, resource) > 0) {\n continue;\n }\n }\n this_1.renderNormalEvents(event_2, day, resource, dateCount);\n }\n }\n this_1.cssClass = null;\n this_1.groupOrder = null;\n }\n }\n else {\n for (var _a = 0, filterEvents_3 = filterEvents; _a < filterEvents_3.length; _a++) {\n var event_3 = filterEvents_3[_a];\n if (this_1.isAllDayAppointment(event_3)) {\n this_1.allDayEvents.push(extend({}, event_3, null, true));\n }\n }\n }\n dateCount += 1;\n }\n };\n var this_1 = this;\n for (var _i = 0, resources_2 = resources; _i < resources_2.length; _i++) {\n var resource = resources_2[_i];\n _loop_1(resource);\n }\n };\n VerticalEvent.prototype.getStartCount = function () {\n return this.parent.virtualScrollModule && this.parent.activeViewOptions.allowVirtualScrolling && this.parent.timeScale.enable ?\n parseInt(this.element.querySelector('.' + cls.APPOINTMENT_WRAPPER_CLASS).getAttribute('id').split('-').slice(-1)[0], 10) : 0;\n };\n VerticalEvent.prototype.getDayIndex = function (dayIndex, resource, dayCount) {\n var _this = this;\n if (!this.parent.activeViewOptions.group.byDate) {\n return dayCount;\n }\n if (this.parent.activeViewOptions.group.byDate && !this.parent.activeViewOptions.group.hideNonWorkingDays) {\n var renderedIndex = this.parent.resourceBase.lastResourceLevel[0].renderDates.indexOf(this.dateRender[parseInt(resource.toString(), 10)][parseInt(dayIndex.toString(), 10)]);\n return (this.resources.length * renderedIndex) + resource;\n }\n var dateIndex = 0;\n var firstColumn = this.parent.activeView.colLevels[0];\n var currentDate = this.dateRender[parseInt(resource.toString(), 10)][parseInt(dayIndex.toString(), 10)].getTime();\n var currentResources = [];\n for (var i = 0; i < firstColumn.length; i++) {\n currentResources = this.parent.resourceBase.resourceDateTree[parseInt(i.toString(), 10)];\n if (currentDate === firstColumn[parseInt(i.toString(), 10)].date.getTime()) {\n break;\n }\n dateIndex = dateIndex + firstColumn[parseInt(i.toString(), 10)].colSpan;\n }\n var resIndex = currentResources.findIndex(function (x) { return x.groupOrder.toString() ===\n _this.resources[parseInt(resource.toString(), 10)].groupOrder.toString(); });\n if (resIndex < 0) {\n return dateIndex;\n }\n return dateIndex + resIndex;\n };\n VerticalEvent.prototype.setValues = function (event, resourceIndex) {\n if (this.parent.activeViewOptions.group.resources.length > 0) {\n this.cssClass = this.resources[parseInt(resourceIndex.toString(), 10)].cssClass;\n this.groupOrder = this.resources[parseInt(resourceIndex.toString(), 10)].groupOrder;\n }\n else {\n this.cssClass = this.parent.resourceBase.getCssClass(event);\n }\n };\n VerticalEvent.prototype.getResourceList = function () {\n // eslint-disable-next-line prefer-spread\n var resources = Array.apply(null, {\n length: (this.parent.activeViewOptions.group.resources.length > 0 && !this.parent.uiStateValues.isGroupAdaptive) ?\n this.resources.length : 1\n }).map(function (value, index) { return index; });\n return resources;\n };\n // eslint-disable-next-line max-len\n VerticalEvent.prototype.createAppointmentElement = function (record, isAllDay, data, resource) {\n var fieldMapping = this.parent.eventFields;\n var recordSubject = (record[fieldMapping.subject] || this.parent.eventSettings.fields.subject.default\n || this.parent.localeObj.getConstant('addTitle'));\n var appointmentWrapper = createElement('div', {\n className: cls.APPOINTMENT_CLASS,\n attrs: {\n 'data-id': 'Appointment_' + record[fieldMapping.id],\n 'data-guid': record.Guid,\n 'role': 'button',\n 'tabindex': '0',\n 'aria-disabled': this.parent.eventBase.getReadonlyAttribute(record),\n 'aria-label': this.parent.getAnnouncementString(record)\n }\n });\n if (record[this.fields.isReadonly]) {\n addClass([appointmentWrapper], 'e-read-only');\n }\n var appointmentDetails = createElement('div', { className: cls.APPOINTMENT_DETAILS });\n appointmentWrapper.appendChild(appointmentDetails);\n if (this.parent.activeViewOptions.group.resources.length > 0) {\n var resourceIndex = this.parent.uiStateValues.isGroupAdaptive ? this.parent.uiStateValues.groupIndex : resource;\n appointmentWrapper.setAttribute('data-group-index', resourceIndex.toString());\n }\n var templateElement;\n var eventData = data;\n if (!isNullOrUndefined(this.parent.activeViewOptions.eventTemplate)) {\n var elementId = this.parent.element.id + '_';\n var viewName = this.parent.activeViewOptions.eventTemplateName;\n var templateId = elementId + viewName + 'eventTemplate';\n var resIndex = this.parent.uiStateValues.isGroupAdaptive ? this.parent.uiStateValues.groupIndex : resource;\n var templateName = 'eventTemplate' + (this.isResourceEventTemplate ? '_' + resIndex : '');\n templateElement = this.parent.getAppointmentTemplate()(record, this.parent, templateName, templateId, false);\n }\n else {\n var appointmentSubject = createElement('div', { className: cls.SUBJECT_CLASS });\n this.parent.sanitize(recordSubject, appointmentSubject);\n if (isAllDay) {\n if (record[fieldMapping.isAllDay]) {\n templateElement = [appointmentSubject];\n }\n else {\n templateElement = [];\n var appointmentStartTime = createElement('div', {\n className: cls.APPOINTMENT_TIME + (this.parent.isAdaptive ? ' ' + cls.DISABLE_CLASS : ''),\n innerHTML: this.parent.getTimeString(record[fieldMapping.startTime])\n });\n var appointmentEndTime = createElement('div', {\n className: cls.APPOINTMENT_TIME + (this.parent.isAdaptive ? ' ' + cls.DISABLE_CLASS : ''),\n innerHTML: this.parent.getTimeString(record[fieldMapping.endTime])\n });\n addClass([appointmentSubject], 'e-text-center');\n if (!eventData.isLeft) {\n templateElement.push(appointmentStartTime);\n }\n templateElement.push(appointmentSubject);\n if (!eventData.isRight) {\n templateElement.push(appointmentEndTime);\n }\n }\n }\n else {\n var timeStr = this.parent.getTimeString(record[fieldMapping.startTime]) + ' - ' +\n this.parent.getTimeString(record[fieldMapping.endTime]);\n var appointmentTime = createElement('div', {\n className: cls.APPOINTMENT_TIME + (this.parent.isAdaptive ? ' ' + cls.DISABLE_CLASS : ''),\n innerHTML: timeStr\n });\n var appointmentLocation = createElement('div', { className: cls.LOCATION_CLASS });\n this.parent.sanitize((record[fieldMapping.location] || this.parent.eventSettings.fields.location.default || ''), appointmentLocation);\n templateElement = [appointmentSubject, appointmentTime, appointmentLocation];\n }\n }\n append(templateElement, appointmentDetails);\n if (!this.parent.isAdaptive &&\n (!isNullOrUndefined(record[fieldMapping.recurrenceRule]) || !isNullOrUndefined(record[fieldMapping.recurrenceID]))) {\n var iconClass = (record[fieldMapping.id] === record[fieldMapping.recurrenceID]) ?\n cls.EVENT_RECURRENCE_ICON_CLASS : cls.EVENT_RECURRENCE_EDIT_ICON_CLASS;\n var recurrenceIcon = createElement('div', { className: cls.ICON + ' ' + iconClass });\n if (isAllDay) {\n appointmentDetails.appendChild(recurrenceIcon);\n }\n else {\n appointmentWrapper.appendChild(recurrenceIcon);\n }\n }\n this.parent.eventBase.renderSpannedIcon(isAllDay ? appointmentDetails : appointmentWrapper, eventData);\n if (!isNullOrUndefined(this.cssClass)) {\n addClass([appointmentWrapper], this.cssClass);\n }\n this.applyResourceColor(appointmentWrapper, record, 'backgroundColor', this.groupOrder);\n this.renderResizeHandler(appointmentWrapper, eventData, record[this.fields.isReadonly]);\n return appointmentWrapper;\n };\n VerticalEvent.prototype.createMoreIndicator = function (allDayRow, count, currentDay) {\n var index = currentDay + count;\n var countWrapper = allDayRow[parseInt(index.toString(), 10)];\n if (countWrapper.childElementCount <= 0) {\n var innerCountWrap = createElement('div', {\n className: cls.ROW_COUNT_WRAPPER_CLASS,\n id: cls.ROW_COUNT_WRAPPER_CLASS + '-' + index.toString()\n });\n var moreIndicatorElement = createElement('div', {\n className: cls.MORE_INDICATOR_CLASS,\n attrs: { 'tabindex': '0', 'data-index': index.toString(), 'data-count': '1' },\n innerHTML: '+1 ' + (this.parent.isAdaptive ? '' : this.parent.localeObj.getConstant('more'))\n });\n innerCountWrap.appendChild(moreIndicatorElement);\n countWrapper.appendChild(innerCountWrap);\n EventHandler.add(moreIndicatorElement, 'click', this.rowExpandCollapse, this);\n }\n else {\n var countCell = countWrapper.querySelector('.' + cls.MORE_INDICATOR_CLASS);\n var moreCount = parseInt(countCell.getAttribute('data-count'), 10) + 1;\n countCell.setAttribute('data-count', moreCount.toString());\n countCell.innerHTML = '+' + this.parent.globalize.formatNumber(moreCount) + ' ' + (this.parent.isAdaptive ? '' : this.parent.localeObj.getConstant('more'));\n }\n };\n VerticalEvent.prototype.isSpannedEvent = function (record, day, resource) {\n var currentDate = util.resetTime(this.dateRender[parseInt(resource.toString(), 10)][parseInt(day.toString(), 10)]);\n var renderedDate = this.getRenderedDates(this.dateRender[parseInt(resource.toString(), 10)]) || [currentDate];\n var currentDay = renderedDate.filter(function (date) { return date.getDay() === day; });\n if (currentDay.length === 0) {\n currentDate = util.resetTime(renderedDate[0]);\n }\n var field = this.parent.eventFields;\n var schedule = util.getStartEndHours(currentDate, this.startHour, this.endHour);\n var event = extend({}, record, null, true);\n event.isSpanned = { isBottom: false, isTop: false };\n if (record[field.startTime].getTime() < schedule.startHour.getTime()) {\n event[field.startTime] = schedule.startHour;\n event.isSpanned.isTop = true;\n }\n if (record[field.endTime].getTime() > schedule.endHour.getTime()) {\n event[field.endTime] = schedule.endHour;\n event.isSpanned.isBottom = true;\n }\n var eventDates = this.updateEventMinimumDuration(schedule, event[field.startTime], event[field.endTime]);\n event[field.startTime] = eventDates.startDate;\n event[field.endTime] = eventDates.endDate;\n return event;\n };\n VerticalEvent.prototype.isWorkDayAvailable = function (resource, start) {\n if (this.parent.activeViewOptions.group.hideNonWorkingDays && this.resources.length > 0) {\n var workDays = this.resources[parseInt(resource.toString(), 10)].\n resourceData[this.resources[parseInt(resource.toString(), 10)].resource.workDaysField] ||\n this.parent.activeViewOptions.workDays;\n return workDays && workDays.indexOf(start.getDay()) >= 0;\n }\n return true;\n };\n // eslint-disable-next-line max-len\n VerticalEvent.prototype.renderAllDayEvents = function (eventObj, dayIndex, resource, dayCount, inline, cellTop, eventHeight) {\n var _this = this;\n var currentDates = this.getRenderedDates(this.dateRender[parseInt(resource.toString(), 10)]) ||\n this.dateRender[parseInt(resource.toString(), 10)];\n if (this.parent.activeViewOptions.group.byDate) {\n this.slots[0] = [this.dateRender[parseInt(resource.toString(), 10)][parseInt(dayIndex.toString(), 10)].getTime()];\n currentDates = [this.dateRender[parseInt(resource.toString(), 10)][parseInt(dayIndex.toString(), 10)]];\n }\n var record = this.splitEvent(eventObj, currentDates)[0];\n var eStart = new Date(record[this.parent.eventFields.startTime].getTime());\n var eEnd = new Date(record[this.parent.eventFields.endTime].getTime());\n var appWidth = 0;\n var topValue = 1;\n var isDateRange = currentDates[0].getTime() <= eStart.getTime() &&\n util.addDays(currentDates.slice(-1)[0], 1).getTime() >= eStart.getTime();\n if (eStart <= eEnd && isDateRange && this.isWorkDayAvailable(resource, eStart)) {\n var isAlreadyRendered = [];\n if (this.renderedAllDayEvents[parseInt(resource.toString(), 10)]) {\n isAlreadyRendered = this.renderedAllDayEvents[parseInt(resource.toString(), 10)].filter(function (event) {\n return event.Guid === eventObj.Guid;\n });\n if (this.parent.activeViewOptions.group.byDate) {\n isAlreadyRendered = isAlreadyRendered.filter(function (event) {\n return event[_this.parent.eventFields.startTime] >= currentDates[parseInt(dayIndex.toString(), 10)] &&\n event[_this.parent.eventFields.endTime] <=\n util.addDays(new Date(+currentDates[parseInt(dayIndex.toString(), 10)]), 1);\n });\n }\n }\n if (isAlreadyRendered.length === 0) {\n var allDayDifference_1 = record.data.count;\n var allDayIndex_1 = this.getOverlapIndex(record, dayIndex, true, resource);\n record.Index = allDayIndex_1;\n this.allDayLevel = (this.allDayLevel < allDayIndex_1) ? allDayIndex_1 : this.allDayLevel;\n var widthAdjustment = record.data.isRight ? 0 :\n this.parent.currentView === 'Day' ? 4 : 7;\n if (allDayDifference_1 >= 0) {\n appWidth = (allDayDifference_1 * 100) - widthAdjustment;\n }\n if (isNullOrUndefined(this.renderedAllDayEvents[parseInt(resource.toString(), 10)])) {\n this.renderedAllDayEvents[parseInt(resource.toString(), 10)] = [];\n }\n this.renderedAllDayEvents[parseInt(resource.toString(), 10)].push(extend({}, record, null, true));\n var allDayRow_1 = [].slice.call(this.element.querySelector('.' + cls.ALLDAY_ROW_CLASS).children);\n var wIndex_1 = this.getDayIndex(dayIndex, resource, dayCount);\n var eventWrapper_1 = this.element.querySelector('.' + cls.ALLDAY_APPOINTMENT_WRAPPER_CLASS +\n ':nth-child(' + (wIndex_1 + 1) + ')');\n var appointmentElement_1;\n if (inline) {\n appointmentElement_1 = this.parent.inlineModule.createInlineAppointmentElement(eventObj);\n }\n else {\n appointmentElement_1 = this.createAppointmentElement(eventObj, true, record.data, resource);\n }\n addClass([appointmentElement_1], cls.ALLDAY_APPOINTMENT_CLASS);\n var eventData = extend({}, record.data, null, true);\n eventObj.data = eventData;\n var args = { data: eventObj, element: appointmentElement_1, cancel: false };\n this.parent.trigger(events.eventRendered, args, function (eventArgs) {\n if (!eventArgs.cancel) {\n eventWrapper_1.appendChild(appointmentElement_1);\n topValue += (allDayIndex_1 === 0 ? cellTop : (cellTop + (allDayIndex_1 * eventHeight))) + 1;\n setStyleAttribute(appointmentElement_1, { 'width': appWidth + '%', 'top': formatUnit(topValue) });\n if (allDayIndex_1 > 1) {\n _this.moreEvents.push(appointmentElement_1);\n for (var count = 0, length_3 = allDayDifference_1; count < length_3; count++) {\n _this.createMoreIndicator(allDayRow_1, count, wIndex_1);\n }\n }\n _this.allDayElement[0].setAttribute('data-count', _this.allDayLevel.toString());\n var allDayRowHeight = ((!_this.parent.uiStateValues.expand && _this.allDayLevel > 2) ?\n (3 * eventHeight) : ((_this.allDayLevel + 1) * eventHeight)) + 4;\n _this.setAllDayRowHeight(allDayRowHeight);\n _this.addOrRemoveClass();\n _this.wireAppointmentEvents(appointmentElement_1, eventObj);\n }\n });\n }\n }\n };\n VerticalEvent.prototype.renderNormalEvents = function (eventObj, dayIndex, resource, dayCount, inline) {\n var record = this.isSpannedEvent(eventObj, dayIndex, resource);\n var eStart = record[this.fields.startTime];\n var eEnd = record[this.fields.endTime];\n var appWidth = '0%';\n var appLeft = '0%';\n var topValue = 0;\n var currentDate = util.resetTime(new Date(this.dateRender[parseInt(resource.toString(), 10)][parseInt(dayIndex.toString(), 10)].getTime()));\n var schedule = util.getStartEndHours(currentDate, this.startHour, this.endHour);\n var isValidEvent = this.isValidEvent(eventObj, eStart, eEnd, schedule);\n if ((eStart.getTime() < this.parent.minDate.getTime()) || (eEnd.getTime() > this.parent.maxDate.getTime())) {\n return;\n }\n if (eStart <= eEnd && isValidEvent && this.isWorkDayAvailable(resource, eStart)) {\n var appHeight = this.getHeight(eStart, eEnd);\n if (eStart.getTime() > schedule.startHour.getTime()) {\n topValue = this.getTopValue(eStart, dayIndex, resource);\n }\n var appIndex = this.getOverlapIndex(record, dayIndex, false, resource);\n record.Index = appIndex;\n this.overlapList.push(record);\n if (this.overlapList.length > 1) {\n if (isNullOrUndefined(this.overlapEvents[parseInt(appIndex.toString(), 10)])) {\n this.overlapEvents[parseInt(appIndex.toString(), 10)] = [];\n }\n this.overlapEvents[parseInt(appIndex.toString(), 10)].push(record);\n }\n else {\n this.overlapEvents = [];\n this.overlapEvents.push([record]);\n }\n appWidth = this.getEventWidth();\n var argsData = {\n index: appIndex, left: appLeft, width: appWidth,\n day: dayCount, dayIndex: dayIndex, record: record, resource: resource\n };\n var tempData = this.adjustOverlapElements(argsData);\n appWidth = (tempData.appWidth);\n if (isNullOrUndefined(this.renderedEvents[parseInt(resource.toString(), 10)])) {\n this.renderedEvents[parseInt(resource.toString(), 10)] = [];\n }\n this.renderedEvents[parseInt(resource.toString(), 10)].push(extend({}, record, null, true));\n var appointmentElement = void 0;\n if (inline) {\n appointmentElement = this.parent.inlineModule.createInlineAppointmentElement(eventObj);\n }\n else {\n appointmentElement = this.createAppointmentElement(eventObj, false, record.isSpanned, resource);\n }\n setStyleAttribute(appointmentElement, {\n 'width': (this.parent.eventSettings.enableMaxHeight ? '100%' : tempData.appWidth),\n 'height': appHeight + 'px', 'top': topValue + 'px'\n });\n var iconHeight = appointmentElement.querySelectorAll('.' + cls.EVENT_INDICATOR_CLASS).length * 15;\n var maxHeight = appHeight - 40 - iconHeight;\n var subjectElement = appointmentElement.querySelector('.' + cls.SUBJECT_CLASS);\n if (!this.parent.isAdaptive && subjectElement) {\n subjectElement.style.maxHeight = formatUnit(maxHeight);\n }\n var index = this.getDayIndex(dayIndex, resource, dayCount);\n var eventData = {};\n eventData[this.fields.startTime] = eventObj[this.fields.startTime];\n eventData[this.fields.endTime] = eventObj[this.fields.endTime];\n record.data = eventData;\n this.appendEvent(record, appointmentElement, index, tempData.appLeft);\n this.wireAppointmentEvents(appointmentElement, eventObj);\n }\n };\n VerticalEvent.prototype.getEventWidth = function () {\n var width = this.parent.currentView === 'Day' ? 97 : 94;\n var tempWidth = ((width - this.overlapEvents.length) / this.overlapEvents.length);\n return (tempWidth < 0 ? 0 : tempWidth) + '%';\n };\n VerticalEvent.prototype.getEventLeft = function (appWidth, index) {\n var tempLeft = (parseFloat(appWidth) + 1) * index;\n return (tempLeft > 99 ? 99 : tempLeft) + '%';\n };\n VerticalEvent.prototype.getTopValue = function (date, day, resource) {\n var startEndHours = util.getStartEndHours(util.resetTime(this.dateRender[parseInt(resource.toString(), 10)][parseInt(day.toString(), 10)]), this.startHour, this.endHour);\n var startHour = startEndHours.startHour;\n var diffInMinutes = ((date.getHours() - startHour.getHours()) * 60) + (date.getMinutes() - startHour.getMinutes());\n return (this.parent.activeViewOptions.timeScale.enable) ? ((diffInMinutes * this.cellHeight * this.slotCount) / this.interval) : 0;\n };\n VerticalEvent.prototype.getOverlapIndex = function (record, day, isAllDay, resource) {\n var _this = this;\n var fieldMapping = this.parent.eventFields;\n var eventsList = [];\n var appIndex = -1;\n this.overlapEvents = [];\n if (isAllDay) {\n if (!isNullOrUndefined(this.renderedAllDayEvents[parseInt(resource.toString(), 10)])) {\n var date_1 = util.resetTime(new Date(this.dateRender[parseInt(resource.toString(), 10)][parseInt(day.toString(), 10)].getTime()));\n eventsList = this.renderedAllDayEvents[parseInt(resource.toString(), 10)].filter(function (app) {\n return util.resetTime(app[fieldMapping.startTime]).getTime() <= date_1.getTime() &&\n util.resetTime(app[fieldMapping.endTime]).getTime() >= date_1.getTime();\n });\n if (this.parent.activeViewOptions.group.resources.length > 0) {\n eventsList = this.filterEventsByResource(this.resources[parseInt(resource.toString(), 10)], eventsList);\n }\n }\n }\n else {\n var appointmentList_1 = !isNullOrUndefined(this.renderedEvents[parseInt(resource.toString(), 10)]) ?\n this.renderedEvents[parseInt(resource.toString(), 10)] : [];\n var appointment_1 = [];\n var recordStart_1 = record[fieldMapping.startTime];\n var recordEnd_1 = record[fieldMapping.endTime];\n this.overlapList = appointmentList_1.filter(function (data) {\n return (data[fieldMapping.endTime] > recordStart_1 && data[fieldMapping.startTime] <= recordEnd_1) ||\n (data[fieldMapping.startTime] >= recordEnd_1 && data[fieldMapping.endTime] <= recordStart_1) ||\n (data[fieldMapping.endTime].getTime() === data[fieldMapping.startTime].getTime() &&\n data[fieldMapping.startTime].getTime() === recordStart_1.getTime() && data[fieldMapping.endTime] < recordEnd_1);\n });\n if (this.parent.activeViewOptions.group.resources.length > 0) {\n this.overlapList = this.filterEventsByResource(this.resources[parseInt(resource.toString(), 10)], this.overlapList);\n }\n this.overlapList.forEach(function (obj) {\n var filterList = appointmentList_1.filter(function (data) {\n return data[fieldMapping.endTime] > obj[fieldMapping.startTime] && data[fieldMapping.startTime] <= obj[fieldMapping.endTime];\n });\n if (_this.parent.activeViewOptions.group.resources.length > 0) {\n filterList = _this.filterEventsByResource(_this.resources[parseInt(resource.toString(), 10)], filterList);\n }\n var collection = filterList.filter(function (val) {\n return _this.overlapList.indexOf(val) === -1;\n });\n if (collection.length > 0) {\n appointment_1 = appointment_1.concat(collection);\n }\n });\n for (var i = 0; i < appointment_1.length - 1; i++) {\n for (var j = i + 1; j < appointment_1.length; j++) {\n if (appointment_1[parseInt(i.toString(), 10)][fieldMapping.id] ===\n appointment_1[parseInt(j.toString(), 10)][fieldMapping.id]) {\n appointment_1.splice(j, 1);\n j--;\n }\n }\n }\n this.overlapList = this.overlapList.concat(appointment_1);\n eventsList = this.overlapList;\n for (var _i = 0, eventsList_1 = eventsList; _i < eventsList_1.length; _i++) {\n var event_4 = eventsList_1[_i];\n var record_1 = event_4;\n var index = record_1.Index;\n if (isNullOrUndefined(this.overlapEvents[parseInt(index.toString(), 10)])) {\n this.overlapEvents[parseInt(index.toString(), 10)] = [event_4];\n }\n else {\n this.overlapEvents[parseInt(index.toString(), 10)].push(event_4);\n }\n }\n }\n if (!isAllDay) {\n eventsList = eventsList.filter(function (obj) { return (obj[fieldMapping.startTime] === record[fieldMapping.startTime] &&\n obj[fieldMapping.endTime] > record[fieldMapping.endTime] || obj[fieldMapping.endTime] > record[fieldMapping.startTime] &&\n obj[fieldMapping.startTime] < record[fieldMapping.endTime] || obj[fieldMapping.endTime] === record[fieldMapping.startTime]\n && obj[fieldMapping.startTime] === record[fieldMapping.endTime]) ||\n ((obj[fieldMapping.startTime].getTime() === record[fieldMapping.startTime].getTime() &&\n obj[fieldMapping.endTime].getTime() === record[fieldMapping.endTime].getTime())\n || (obj[fieldMapping.startTime].getTime() === record[fieldMapping.startTime].getTime() &&\n obj[fieldMapping.endTime].getTime() < record[fieldMapping.endTime].getTime() ||\n obj[fieldMapping.endTime].getTime() > record[fieldMapping.endTime].getTime())); });\n }\n if (eventsList.length > 0) {\n var appLevel = eventsList.map(function (obj) { return obj.Index; });\n appIndex = (appLevel.length > 0) ? this.getSmallestMissingNumber(appLevel) : 0;\n }\n return (appIndex === -1) ? 0 : appIndex;\n };\n VerticalEvent.prototype.adjustOverlapElements = function (args) {\n var data = { appWidth: args.width, appLeft: args.left };\n for (var i = 0, length1 = this.overlapEvents.length; i < length1; i++) {\n if (!isNullOrUndefined(this.overlapEvents[parseInt(i.toString(), 10)])) {\n for (var j = 0, length2 = this.overlapEvents[parseInt(i.toString(), 10)].length; j < length2; j++) {\n var dayCount = this.getDayIndex(args.dayIndex, args.resource, args.day);\n var element = this.element.querySelector('#e-appointment-wrapper-' + dayCount);\n if (element && element.childElementCount > 0) {\n var eleGuid = this.overlapEvents[parseInt(i.toString(), 10)][parseInt(j.toString(), 10)].Guid;\n if (element.querySelectorAll('div[data-guid=\"' + eleGuid + '\"]').length > 0 && eleGuid !== args.record.Guid) {\n var apps = element.querySelector('div[data-guid=\"' + eleGuid + '\"]');\n if (parseFloat(args.width) <= parseFloat(apps.style.width)) {\n if (this.parent.enableRtl) {\n apps.style.right = this.getEventLeft(args.width, i);\n }\n else {\n apps.style.left = this.getEventLeft(args.width, i);\n }\n apps.style.width = ((parseFloat(args.width))) + '%';\n data.appWidth = apps.style.width;\n }\n else {\n data.appWidth = apps.style.width;\n }\n }\n else {\n var appWidth = args.width;\n if (isNullOrUndefined(this.overlapEvents[i - 1])) {\n appWidth = this.getEventWidth();\n }\n data.appWidth = appWidth;\n data.appLeft = this.getEventLeft(appWidth, args.index);\n }\n }\n }\n }\n }\n return data;\n };\n VerticalEvent.prototype.setAllDayRowHeight = function (height) {\n var dateHeader = this.parent.element.querySelector('.' + cls.DATE_HEADER_WRAP_CLASS);\n if (this.parent.height === 'auto' || !this.parent.enableAllDayScroll) {\n addClass([dateHeader], cls.ALLDAY_APPOINTMENT_AUTO);\n }\n var allDayRow = this.parent.element.querySelector('.' + cls.ALLDAY_ROW_CLASS);\n allDayRow.style.height = '';\n if (this.parent.uiStateValues.expand && this.parent.height !== 'auto' && this.parent.enableAllDayScroll) {\n allDayRow.style.height = (height / 12) + 'em';\n this.parent.eventBase.allDayExpandScroll(dateHeader);\n }\n else {\n for (var _i = 0, _a = this.allDayElement; _i < _a.length; _i++) {\n var element = _a[_i];\n element.style.height = (height / 12) + 'em';\n }\n removeClass([dateHeader], cls.ALLDAY_APPOINTMENT_SCROLL);\n }\n };\n VerticalEvent.prototype.addOrRemoveClass = function () {\n var _this = this;\n this.moreEvents.filter(function (element) {\n if (!_this.parent.uiStateValues.expand && _this.allDayLevel > 2) {\n addClass([element], cls.EVENT_COUNT_CLASS);\n element.setAttribute('tabindex', '-1');\n }\n else {\n removeClass([element], cls.EVENT_COUNT_CLASS);\n element.setAttribute('tabindex', '0');\n }\n });\n var moreEventCount = this.element.querySelector('.' + cls.ALLDAY_APPOINTMENT_SECTION_CLASS);\n if (this.parent.uiStateValues.expand) {\n removeClass([moreEventCount], cls.APPOINTMENT_ROW_EXPAND_CLASS);\n addClass([moreEventCount], cls.APPOINTMENT_ROW_COLLAPSE_CLASS);\n }\n else {\n removeClass([moreEventCount], cls.APPOINTMENT_ROW_COLLAPSE_CLASS);\n addClass([moreEventCount], cls.APPOINTMENT_ROW_EXPAND_CLASS);\n }\n if (this.allDayLevel > 2) {\n removeClass([moreEventCount], cls.DISABLE_CLASS);\n }\n else {\n addClass([moreEventCount], cls.DISABLE_CLASS);\n }\n var countCell = [].slice.call(this.element.querySelectorAll('.' + cls.ROW_COUNT_WRAPPER_CLASS));\n countCell.forEach(function (element) {\n if (!_this.parent.uiStateValues.expand && _this.allDayLevel > 2) {\n removeClass([element], cls.DISABLE_CLASS);\n }\n else {\n addClass([element], cls.DISABLE_CLASS);\n }\n });\n };\n VerticalEvent.prototype.getEventHeight = function () {\n var eventElement = createElement('div', { className: cls.APPOINTMENT_CLASS, styles: 'visibility:hidden' });\n var eventWrapper = this.element.querySelector('.' + cls.ALLDAY_APPOINTMENT_WRAPPER_CLASS + ':first-child');\n eventWrapper.appendChild(eventElement);\n var height = eventElement.offsetHeight;\n remove(eventElement);\n return height;\n };\n VerticalEvent.prototype.rowExpandCollapse = function () {\n var target = this.element.querySelector('.' + cls.ALLDAY_APPOINTMENT_SECTION_CLASS);\n this.parent.uiStateValues.expand = target.classList.contains(cls.APPOINTMENT_ROW_EXPAND_CLASS);\n var rowHeight;\n if (this.parent.uiStateValues.expand) {\n target.setAttribute('title', this.parent.localeObj.getConstant('collapseAllDaySection'));\n target.setAttribute('aria-label', 'Collapse section');\n rowHeight = ((this.allDayLevel + 1) * this.getEventHeight()) + 4;\n }\n else {\n target.setAttribute('title', this.parent.localeObj.getConstant('expandAllDaySection'));\n target.setAttribute('aria-label', 'Expand section');\n rowHeight = (3 * this.getEventHeight()) + 4;\n this.parent.element.querySelector('.' + cls.DATE_HEADER_WRAP_CLASS).scrollTop = 0;\n }\n this.setAllDayRowHeight(rowHeight);\n this.animation.animate(this.allDayElement[0]);\n this.addOrRemoveClass();\n this.animation.animate(target);\n };\n VerticalEvent.prototype.animationUiUpdate = function () {\n this.parent.notify(events.contentReady, {});\n };\n VerticalEvent.prototype.destroy = function () {\n if (!this.parent || this.parent && this.parent.isDestroyed) {\n return;\n }\n this.removeEventListener();\n this.allDayElement = null;\n this.renderedAllDayEvents = null;\n this.renderedEvents = null;\n this.slotCount = null;\n this.interval = null;\n this.startHour = null;\n this.endHour = null;\n this.element = null;\n this.fields = null;\n this.animation = null;\n _super.prototype.destroy.call(this);\n };\n return VerticalEvent;\n}(EventBase));\nexport { VerticalEvent };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { append, prepend, createElement, extend, EventHandler, closest, addClass } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined, setStyleAttribute, remove } from '@syncfusion/ej2-base';\nimport { EventBase } from './event-base';\nimport * as cls from '../base/css-constant';\nimport * as events from '../base/constant';\nimport * as util from '../base/util';\nvar EVENT_GAP = 0;\n/**\n * Month view events render\n */\nvar MonthEvent = /** @class */ (function (_super) {\n __extends(MonthEvent, _super);\n function MonthEvent(parent) {\n var _this = _super.call(this, parent) || this;\n _this.renderedEvents = [];\n _this.monthHeaderHeight = 0;\n _this.moreIndicatorHeight = 19;\n _this.renderType = 'day';\n _this.element = _this.parent.activeView.getPanel();\n _this.fields = _this.parent.eventFields;\n _this.maxHeight = _this.parent.eventSettings.enableMaxHeight && !_this.parent.eventSettings.enableIndicator\n && !_this.parent.rowAutoHeight;\n _this.withIndicator = _this.parent.eventSettings.enableMaxHeight && _this.parent.eventSettings.enableIndicator\n && !_this.parent.rowAutoHeight;\n _this.maxOrIndicator = (_this.maxHeight || _this.withIndicator);\n _this.moreIndicatorHeight =\n (_this.parent.rowAutoHeight && _this.parent.eventSettings.ignoreWhitespace) ? 0 : _this.moreIndicatorHeight;\n _this.addEventListener();\n return _this;\n }\n MonthEvent.prototype.removeEventWrapper = function (appElement) {\n if (appElement.length > 0) {\n appElement = (this.parent.currentView === 'Month' || (!this.parent.activeView.isTimelineView() &&\n !this.parent.activeViewOptions.timeScale.enable)) ? appElement : [appElement[0]];\n for (var _i = 0, appElement_1 = appElement; _i < appElement_1.length; _i++) {\n var wrap = appElement_1[_i];\n if (wrap.parentElement && wrap.parentElement.parentNode) {\n remove(wrap.parentElement);\n }\n }\n }\n };\n MonthEvent.prototype.renderAppointments = function () {\n if (this.parent.dragAndDropModule) {\n this.parent.dragAndDropModule.setDragArea();\n }\n this.isResourceEventTemplate = this.parent.isSpecificResourceEvents();\n var conWrap = this.parent.element.querySelector('.' + cls.CONTENT_WRAP_CLASS);\n if (this.parent.rowAutoHeight) {\n this.parent.uiStateValues.top = conWrap.scrollTop;\n this.parent.uiStateValues.left = conWrap.scrollLeft;\n }\n var appointmentWrapper = [].slice.call(this.element.querySelectorAll('.' + cls.APPOINTMENT_WRAPPER_CLASS));\n if (this.parent.crudModule && this.parent.crudModule.crudObj.isCrudAction) {\n for (var i = 0, len = this.parent.crudModule.crudObj.sourceEvent.length; i < len; i++) {\n var appElement = [].slice.call(this.element.querySelectorAll('.e-appointment-wrapper ' + '[data-group-index=\"' +\n this.parent.crudModule.crudObj.sourceEvent[parseInt(i.toString(), 10)].groupIndex + '\"]'));\n this.removeEventWrapper(appElement);\n if (this.parent.crudModule.crudObj.targetEvent[parseInt(i.toString(), 10)] &&\n this.parent.crudModule.crudObj.sourceEvent[parseInt(i.toString(), 10)].groupIndex !==\n this.parent.crudModule.crudObj.targetEvent[parseInt(i.toString(), 10)].groupIndex) {\n var ele = [].slice.call(this.element.querySelectorAll('.e-appointment-wrapper ' + '[data-group-index=\"' +\n this.parent.crudModule.crudObj.targetEvent[parseInt(i.toString(), 10)].groupIndex + '\"]'));\n this.removeEventWrapper(ele);\n }\n }\n }\n else {\n for (var _i = 0, appointmentWrapper_1 = appointmentWrapper; _i < appointmentWrapper_1.length; _i++) {\n var wrap = appointmentWrapper_1[_i];\n remove(wrap);\n }\n }\n this.removeHeightProperty(cls.CONTENT_TABLE_CLASS);\n if (!this.element.querySelector('.' + cls.WORK_CELLS_CLASS)) {\n return;\n }\n if (this.parent.currentView === 'Month') {\n var wrapper = createElement('div', { className: cls.APPOINTMENT_WRAPPER_CLASS });\n var cellTd = this.parent.element.querySelector('.' + cls.WORK_CELLS_CLASS);\n cellTd.appendChild(wrapper);\n this.monthHeaderHeight = wrapper.offsetTop - cellTd.offsetTop;\n cellTd.removeChild(wrapper);\n }\n this.eventHeight = util.getElementHeightFromClass(this.element, cls.APPOINTMENT_CLASS);\n var scrollTop = conWrap.scrollTop;\n if (this.parent.rowAutoHeight && this.parent.virtualScrollModule && !this.parent.virtualScrollModule.isHorizontalScroll\n && !isNullOrUndefined(this.parent.currentAction)) {\n conWrap.scrollTop = conWrap.scrollTop - 1;\n }\n if (this.parent.activeViewOptions.group.resources.length > 0) {\n this.renderResourceEvents();\n if (this.parent.virtualScrollModule) {\n this.parent.virtualScrollModule.updateFocusedWorkCell();\n }\n }\n else {\n this.renderEventsHandler(this.parent.activeView.renderDates, this.parent.activeViewOptions.workDays);\n }\n if (this.parent.rowAutoHeight) {\n this.updateBlockElements();\n var data = {\n cssProperties: this.parent.getCssProperties(),\n module: this.parent.getModuleName(),\n isPreventScrollUpdate: true,\n scrollPosition: { left: this.parent.uiStateValues.left, top: this.parent.uiStateValues.top }\n };\n if (this.parent.virtualScrollModule && !this.parent.virtualScrollModule.isHorizontalScroll) {\n if (this.parent.currentAction) {\n conWrap.scrollTop = scrollTop;\n this.parent.currentAction = null;\n }\n else {\n this.parent.virtualScrollModule.updateVirtualScrollHeight();\n }\n }\n if (!this.parent.enablePersistence) {\n this.parent.notify(events.contentReady, {});\n }\n this.parent.notify(events.scrollUiUpdate, data);\n if (this.parent.currentView === 'Month' && this.parent.showWeekNumber) {\n var totalCells_1 = [].slice.call(this.parent.element.querySelectorAll('.e-content-wrap table tr td:first-child'));\n var weekNumberCells = [].slice.call(this.parent.element.querySelectorAll('.' + cls.WEEK_NUMBER_CLASS));\n weekNumberCells.forEach(function (cell, i) {\n var height = totalCells_1[parseInt(i.toString(), 10)].offsetHeight;\n setStyleAttribute(cell, { 'height': height + 'px' });\n });\n this.parent.element.querySelector('.' + cls.WEEK_NUMBER_WRAPPER_CLASS).scrollTop =\n this.parent.element.querySelector('.' + cls.CONTENT_WRAP_CLASS).scrollTop;\n }\n }\n this.parent.renderTemplates();\n };\n MonthEvent.prototype.renderEventsHandler = function (dateRender, workDays, resData) {\n this.renderedEvents = [];\n var eventsList;\n var blockList;\n var resIndex = 0;\n if (resData) {\n resIndex = resData.groupIndex;\n this.cssClass = resData.cssClass;\n this.groupOrder = resData.groupOrder;\n eventsList = this.parent.eventBase.filterEventsByResource(resData, this.parent.eventsProcessed);\n blockList = this.parent.eventBase.filterEventsByResource(resData, this.parent.blockProcessed);\n this.workCells = [].slice.call(this.element.querySelectorAll('.' + cls.WORK_CELLS_CLASS + '[data-group-index=\"' + resIndex + '\"]'));\n }\n else {\n eventsList = this.parent.eventsProcessed;\n blockList = this.parent.blockProcessed;\n this.workCells = [].slice.call(this.element.querySelectorAll('.' + cls.WORK_CELLS_CLASS));\n }\n this.sortByDateTime(eventsList);\n this.sortByDateTime(blockList);\n if (this.parent.currentView === 'Month' && this.parent.rowAutoHeight && this.parent.activeViewOptions.group.resources.length === 0) {\n var totalCells = [].slice.call(this.parent.element.querySelectorAll('.e-content-wrap table tr td:first-child'));\n var height_1 = this.parent.element.querySelector('.' + cls.CONTENT_TABLE_CLASS).clientHeight / totalCells.length;\n totalCells.forEach(function (cell) {\n setStyleAttribute(cell, { 'height': height_1 + 'px' });\n });\n }\n var cellDetail = this.workCells[this.parent.activeView.isTimelineView() ?\n 0 : this.workCells.length - 1].getBoundingClientRect();\n this.cellWidth = cellDetail.width;\n this.cellHeight = cellDetail.height;\n this.dateRender = dateRender;\n var filteredDates = this.getRenderedDates(dateRender);\n this.getSlotDates(workDays || this.parent.activeViewOptions.workDays);\n this.processBlockEvents(blockList, resIndex, resData);\n var events = [];\n for (var _i = 0, eventsList_1 = eventsList; _i < eventsList_1.length; _i++) {\n var event_1 = eventsList_1[_i];\n if (this.parent.resourceBase && !resData) {\n this.cssClass = this.parent.resourceBase.getCssClass(event_1);\n }\n events = events.concat(this.splitEvent(event_1, filteredDates || this.dateRender));\n }\n for (var level = 0; level < this.slots.length; level++) {\n this.renderedEvents = [];\n var slot = this.slots[parseInt(level.toString(), 10)];\n var endDate = util.addDays(new Date(slot[slot.length - 1]), 1);\n var spannedEvents = this.filterEvents(new Date(slot[0]), endDate, events);\n for (var _a = 0, spannedEvents_1 = spannedEvents; _a < spannedEvents_1.length; _a++) {\n var event_2 = spannedEvents_1[_a];\n if (this.maxHeight) {\n var sDate = this.parent.currentView === 'Month' ? event_2[this.fields.startTime] :\n this.getStartTime(event_2, event_2.data);\n if (this.getIndex(sDate) > 0) {\n continue;\n }\n }\n this.updateIndicatorIcon(event_2);\n this.renderEvents(event_2, resIndex, eventsList);\n }\n }\n this.cssClass = null;\n this.groupOrder = null;\n };\n MonthEvent.prototype.processBlockEvents = function (blockEvents, resIndex, resData) {\n for (var _i = 0, blockEvents_1 = blockEvents; _i < blockEvents_1.length; _i++) {\n var event_3 = blockEvents_1[_i];\n if (this.parent.resourceBase && !resData) {\n this.cssClass = this.parent.resourceBase.getCssClass(event_3);\n }\n var blockSpannedList = [];\n if (this.renderType === 'day' && !event_3[this.fields.isAllDay]) {\n var temp = extend({}, event_3, null, true);\n var isSameDate = this.isSameDate(temp[this.fields.startTime], temp[this.fields.endTime]);\n temp.isBlockIcon = isSameDate;\n if (!isSameDate && util.getDateInMs(temp[this.fields.startTime]) > 0) {\n var e = extend({}, event_3, null, true);\n e[this.fields.endTime] = util.addDays(util.resetTime(new Date(event_3[this.fields.startTime] + '')), 1);\n e.isBlockIcon = true;\n temp[this.fields.startTime] = e[this.fields.endTime];\n blockSpannedList.push(e);\n }\n isSameDate = this.isSameDate(temp[this.fields.startTime], temp[this.fields.endTime]);\n if (!isSameDate && util.getDateInMs(temp[this.fields.endTime]) > 0) {\n var e = extend({}, event_3, null, true);\n e[this.fields.startTime] = util.resetTime(new Date(event_3[this.fields.endTime] + ''));\n e.isBlockIcon = true;\n blockSpannedList.push(e);\n temp[this.fields.endTime] = e[this.fields.startTime];\n }\n blockSpannedList.push(temp);\n }\n else {\n blockSpannedList.push(event_3);\n }\n for (var _a = 0, blockSpannedList_1 = blockSpannedList; _a < blockSpannedList_1.length; _a++) {\n var blockEvent = blockSpannedList_1[_a];\n var spannedEvents = this.splitEvent(blockEvent, this.dateRender);\n for (var _b = 0, spannedEvents_2 = spannedEvents; _b < spannedEvents_2.length; _b++) {\n var event_4 = spannedEvents_2[_b];\n this.renderBlockEvents(event_4, resIndex, !!blockEvent.isBlockIcon);\n }\n }\n }\n };\n MonthEvent.prototype.isSameDate = function (start, end) {\n return new Date(+start).setHours(0, 0, 0, 0) === new Date(+end).setHours(0, 0, 0, 0);\n };\n MonthEvent.prototype.renderBlockEvents = function (event, resIndex, isIcon) {\n var eventData = event.data;\n var startTime = this.getStartTime(event, eventData);\n var endTime = this.getEndTime(event, eventData);\n var day = this.parent.getIndexOfDate(this.dateRender, util.resetTime(new Date(startTime.getTime())));\n if (day < 0 || startTime > endTime) {\n return;\n }\n var cellTd = this.getCellTd(day);\n var position = this.getPosition(startTime, endTime, event[this.fields.isAllDay], day);\n if (!isIcon) {\n var diffInDays = eventData.count;\n var appWidth = this.getEventWidth(startTime, endTime, event[this.fields.isAllDay], diffInDays);\n appWidth = (appWidth <= 0) ? this.cellWidth : appWidth;\n var appLeft = (this.parent.enableRtl) ? 0 : position;\n var appRight = (this.parent.enableRtl) ? position : 0;\n var appHeight = this.cellHeight - this.monthHeaderHeight;\n var appTop = this.getRowTop(resIndex);\n var blockElement = this.createBlockAppointmentElement(event, resIndex, this.isResourceEventTemplate);\n setStyleAttribute(blockElement, {\n 'width': appWidth + 'px', 'height': appHeight + 'px', 'left': appLeft + 'px',\n 'right': appRight + 'px', 'top': appTop + 'px'\n });\n this.renderEventElement(event, blockElement, cellTd);\n }\n else {\n this.renderBlockIndicator(cellTd, position, resIndex);\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n MonthEvent.prototype.renderBlockIndicator = function (cellTd, position, resIndex) {\n var blockIndicator = createElement('div', { className: 'e-icons ' + cls.BLOCK_INDICATOR_CLASS });\n if (isNullOrUndefined(cellTd.querySelector('.' + cls.BLOCK_INDICATOR_CLASS))) {\n cellTd.appendChild(blockIndicator);\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n MonthEvent.prototype.getStartTime = function (event, eventData) {\n return event[this.fields.startTime];\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n MonthEvent.prototype.getEndTime = function (event, eventData) {\n return event[this.fields.endTime];\n };\n MonthEvent.prototype.getCellTd = function (day) {\n return this.workCells[parseInt(day.toString(), 10)];\n };\n MonthEvent.prototype.getEventWidth = function (startDate, endDate, isAllDay, count) {\n return count * this.cellWidth - 1;\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n MonthEvent.prototype.getPosition = function (startTime, endTime, isAllDay, day) {\n return 0;\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n MonthEvent.prototype.getRowTop = function (resIndex) {\n return 0;\n };\n MonthEvent.prototype.updateIndicatorIcon = function (event) {\n if (this.parent.currentView.indexOf('Timeline') === -1 || this.parent.currentView === 'TimelineMonth'\n || event[this.fields.isAllDay]) {\n return;\n }\n var cloneData = event.data;\n var start = this.parent.activeView.getStartHour();\n var end = this.parent.activeView.getEndHour();\n var startHour = util.getStartEndHours(event[this.fields.startTime], start, end);\n var endHour = util.getStartEndHours(event[this.fields.endTime], start, end);\n var actualStartTime = cloneData[this.fields.startTime];\n var actualEndTime = cloneData[this.fields.endTime];\n cloneData.isLeft = cloneData.isLeft || actualStartTime.getTime() < startHour.startHour.getTime();\n cloneData.isRight = cloneData.isRight || actualEndTime.getTime() > endHour.endHour.getTime();\n if (util.resetTime(actualStartTime).getTime() !== util.resetTime(actualEndTime).getTime()) {\n var actualStartHour = startHour.startHour;\n var actualEndHour = endHour.endHour;\n var startTime = new Date(util.resetTime(actualStartTime));\n startTime.setHours(actualEndHour.getHours(), actualEndHour.getMinutes(), actualEndHour.getSeconds());\n cloneData.isLeft = cloneData.isLeft || actualStartTime.getTime() >= (actualStartHour.getDate() === startHour.endHour.getDate() ?\n startTime.getTime() : util.addDays(startTime, 1).getTime());\n if (actualEndTime.getTime() !== util.resetTime(actualEndTime).getTime()) {\n var endTime = new Date(util.resetTime(actualEndTime));\n cloneData.isRight = cloneData.isRight || actualEndTime.getTime() <=\n endTime.setHours(actualStartHour.getHours(), actualStartHour.getMinutes(), actualStartHour.getSeconds());\n }\n }\n };\n MonthEvent.prototype.renderResourceEvents = function () {\n var resources = this.parent.uiStateValues.isGroupAdaptive ?\n [this.parent.resourceBase.lastResourceLevel[this.parent.uiStateValues.groupIndex]] :\n this.parent.resourceBase.renderedResources;\n if (this.parent.crudModule && this.parent.crudModule.crudObj.isCrudAction) {\n for (var i = 0, len = this.parent.crudModule.crudObj.sourceEvent.length; i < len; i++) {\n var sourceRes = this.parent.crudModule.crudObj.sourceEvent[parseInt(i.toString(), 10)];\n this.renderEventsHandler(sourceRes.renderDates, sourceRes.workDays, sourceRes);\n if (this.parent.crudModule.crudObj.sourceEvent[parseInt(i.toString(), 10)].groupIndex !==\n this.parent.crudModule.crudObj.targetEvent[parseInt(i.toString(), 10)].groupIndex) {\n var target = this.parent.crudModule.crudObj.targetEvent[parseInt(i.toString(), 10)];\n this.renderEventsHandler(target.renderDates, target.workDays, target);\n }\n }\n this.parent.crudModule.crudObj.isCrudAction = false;\n }\n else {\n for (var _i = 0, resources_1 = resources; _i < resources_1.length; _i++) {\n var slotData = resources_1[_i];\n this.renderEventsHandler(slotData.renderDates, slotData.workDays, slotData);\n }\n }\n };\n MonthEvent.prototype.getSlotDates = function (workDays) {\n this.slots = [];\n var dates = this.dateRender.map(function (date) { return +date; });\n var noOfDays = !this.parent.activeViewOptions.showWeekend || (this.parent.activeViewOptions.group.byDate &&\n this.parent.activeViewOptions.group.hideNonWorkingDays) ? workDays.length : util.WEEK_LENGTH;\n while (dates.length > 0) {\n this.slots.push(dates.splice(0, noOfDays));\n }\n };\n MonthEvent.prototype.createAppointmentElement = function (record, resIndex, isCloneElement) {\n if (isCloneElement === void 0) { isCloneElement = false; }\n var eventSubject = (record[this.fields.subject] || this.parent.eventSettings.fields.subject.default ||\n this.parent.localeObj.getConstant('addTitle'));\n var newRecord = extend({}, record, record.data, true);\n var attrs = {\n 'data-id': 'Appointment_' + record[this.fields.id],\n 'role': 'button', 'tabindex': '0',\n 'aria-disabled': this.parent.eventBase.getReadonlyAttribute(record),\n 'aria-label': this.parent.getAnnouncementString(newRecord, eventSubject)\n };\n if (!isCloneElement) {\n attrs['data-guid'] = record.Guid;\n }\n if (this.parent.activeViewOptions.group.resources.length > 0) {\n attrs['data-group-index'] = resIndex.toString();\n }\n var appointmentWrapper = createElement('div', { className: cls.APPOINTMENT_CLASS, attrs: attrs });\n if (!isNullOrUndefined(this.cssClass)) {\n addClass([appointmentWrapper], this.cssClass);\n }\n if (record[this.fields.isReadonly]) {\n addClass([appointmentWrapper], 'e-read-only');\n }\n var appointmentDetails = createElement('div', { className: cls.APPOINTMENT_DETAILS });\n appointmentWrapper.appendChild(appointmentDetails);\n var templateElement;\n var eventData = record.data;\n var eventObj = this.getEventData(record);\n if (!isNullOrUndefined(this.parent.activeViewOptions.eventTemplate)) {\n var scheduleId = this.parent.element.id + '_';\n var viewName = this.parent.activeViewOptions.eventTemplateName;\n var templateId = scheduleId + viewName + 'eventTemplate';\n var eventTemplate = 'eventTemplate' + (this.isResourceEventTemplate ? '_' + resIndex : '');\n templateElement = this.parent.getAppointmentTemplate()(eventObj, this.parent, eventTemplate, templateId, false);\n }\n else {\n var eventLocation = (record[this.fields.location] || this.parent.eventSettings.fields.location.default || '');\n var appointmentSubject = createElement('div', { className: cls.SUBJECT_CLASS });\n this.parent.sanitize((eventSubject + (eventLocation ? '; ' + eventLocation : '')), appointmentSubject);\n var appointmentStartTime = createElement('div', {\n className: cls.APPOINTMENT_TIME + (this.parent.isAdaptive ? ' ' + cls.DISABLE_CLASS : ''),\n innerHTML: this.parent.getTimeString(eventData[this.fields.startTime])\n });\n var appointmentEndTime = createElement('div', {\n className: cls.APPOINTMENT_TIME + (this.parent.isAdaptive ? ' ' + cls.DISABLE_CLASS : ''),\n innerHTML: this.parent.getTimeString(eventData[this.fields.endTime])\n });\n if (this.parent.currentView === 'Month') {\n if (record[this.fields.isAllDay]) {\n templateElement = [appointmentSubject];\n addClass([appointmentSubject], 'e-text-center');\n }\n else if (eventData.count <= 1 && !eventData.isLeft && !eventData.isRight) {\n templateElement = [appointmentStartTime, appointmentSubject];\n }\n else {\n templateElement = [];\n addClass([appointmentSubject], 'e-text-center');\n if (!eventData.isLeft) {\n templateElement.push(appointmentStartTime);\n }\n templateElement.push(appointmentSubject);\n if (!eventData.isRight) {\n templateElement.push(appointmentEndTime);\n }\n }\n }\n else {\n var innerElement = void 0;\n if (record[this.fields.isAllDay]) {\n var allDayString = createElement('div', {\n className: cls.APPOINTMENT_TIME, innerHTML: this.parent.localeObj.getConstant('allDay')\n });\n innerElement = [appointmentSubject, allDayString];\n }\n else {\n var timeString = this.parent.getTimeString(eventData[this.fields.startTime])\n + ' - ' + this.parent.getTimeString(eventData[this.fields.endTime]);\n var appTime = createElement('div', {\n className: cls.APPOINTMENT_TIME + (this.parent.isAdaptive ? ' ' + cls.DISABLE_CLASS : ''), innerHTML: timeString\n });\n var appLocation = createElement('div', { className: cls.LOCATION_CLASS });\n this.parent.sanitize(eventLocation, appLocation);\n innerElement = [appointmentSubject, appTime, appLocation];\n }\n var wrap = createElement('div', { className: 'e-inner-wrap' });\n append(innerElement, wrap);\n templateElement = [wrap];\n }\n }\n append(templateElement, appointmentDetails);\n this.appendEventIcons(record, appointmentDetails);\n this.renderResizeHandler(appointmentWrapper, record.data, record[this.fields.isReadonly]);\n return appointmentWrapper;\n };\n MonthEvent.prototype.appendEventIcons = function (record, appointmentDetails) {\n var eventData = record.data;\n if (!isNullOrUndefined(record[this.fields.recurrenceRule]) || !isNullOrUndefined(record[this.fields.recurrenceID])) {\n var iconClass = (record[this.fields.id] === record[this.fields.recurrenceID]) ?\n cls.EVENT_RECURRENCE_ICON_CLASS : cls.EVENT_RECURRENCE_EDIT_ICON_CLASS;\n appointmentDetails.appendChild(createElement('div', {\n className: cls.ICON + ' ' + iconClass + (this.parent.isAdaptive ? ' ' + cls.DISABLE_CLASS : '')\n }));\n }\n if (eventData.isLeft) {\n var iconLeft = createElement('div', {\n className: cls.EVENT_INDICATOR_CLASS + ' ' + cls.ICON + ' ' + cls.EVENT_ICON_LEFT_CLASS\n });\n prepend([iconLeft], appointmentDetails);\n }\n if (eventData.isRight) {\n var iconRight = createElement('div', {\n className: cls.EVENT_INDICATOR_CLASS + ' ' + cls.ICON + ' ' + cls.EVENT_ICON_RIGHT_CLASS\n });\n append([iconRight], appointmentDetails);\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n MonthEvent.prototype.renderEvents = function (event, resIndex, eventsList) {\n var startTime = event[this.fields.startTime];\n var endTime = event[this.fields.endTime];\n var day = this.parent.getIndexOfDate(this.dateRender, util.resetTime(startTime));\n if ((day < 0) || (startTime.getTime() < this.parent.minDate.getTime()) || (endTime.getTime() > this.parent.maxDate.getTime())) {\n return;\n }\n var overlapCount = this.getIndex(startTime);\n event.Index = overlapCount;\n var diffInDays = event.data.count;\n if (startTime.getTime() <= endTime.getTime()) {\n var appWidth = (diffInDays * this.cellWidth) - 5;\n var cellTd = this.workCells[parseInt(day.toString(), 10)];\n var appTop = (overlapCount * (this.eventHeight + EVENT_GAP));\n var height = this.monthHeaderHeight + ((overlapCount + 1) * (this.eventHeight + EVENT_GAP)) + this.moreIndicatorHeight;\n var enableAppRender = this.maxOrIndicator ? overlapCount < 1 ? true : false : this.cellHeight > height;\n if (this.parent.rowAutoHeight || enableAppRender) {\n this.renderedEvents.push(extend({}, event, null, true));\n var appointmentElement = void 0;\n if (this.inlineValue) {\n appointmentElement = this.parent.inlineModule.createInlineAppointmentElement();\n }\n else {\n appointmentElement = this.createAppointmentElement(event, resIndex);\n }\n this.applyResourceColor(appointmentElement, event, 'backgroundColor', this.groupOrder);\n this.wireAppointmentEvents(appointmentElement, event);\n setStyleAttribute(appointmentElement, { 'width': appWidth + 'px', 'top': appTop + 'px' });\n this.renderEventElement(event, appointmentElement, cellTd);\n if (this.parent.rowAutoHeight) {\n var firstChild = cellTd.parentElement.firstElementChild;\n this.updateCellHeight(firstChild, height);\n }\n }\n else {\n for (var i = 0; i < diffInDays; i++) {\n if (this.workCells[day + i]) {\n var indicator = this.workCells[day + i].querySelector('.' + cls.MORE_INDICATOR_CLASS);\n if (indicator) {\n var count = parseInt(indicator.getAttribute('data-count'), 10) + 1;\n indicator.setAttribute('data-count', count.toString());\n indicator.innerHTML = this.getMoreIndicatorText(count);\n }\n else {\n var startDate = new Date(this.dateRender[day + i].getTime());\n var endDate = util.addDays(this.dateRender[day + i], 1);\n var groupIndex = this.workCells[day + i].getAttribute('data-group-index');\n var moreIndicatorElement = this.getMoreIndicatorElement(1, startDate, endDate);\n if (!isNullOrUndefined(groupIndex)) {\n moreIndicatorElement.setAttribute('data-group-index', groupIndex);\n }\n moreIndicatorElement.style.top = (this.cellHeight - this.monthHeaderHeight - this.moreIndicatorHeight) + 'px';\n moreIndicatorElement.style.width = this.cellWidth - 2 + 'px';\n this.renderElement(this.workCells[day + i], moreIndicatorElement);\n EventHandler.add(moreIndicatorElement, 'click', this.moreIndicatorClick, this);\n }\n }\n }\n }\n }\n };\n MonthEvent.prototype.updateCellHeight = function (cell, height) {\n if ((height > cell.offsetHeight)) {\n setStyleAttribute(cell, { 'height': height + 'px' });\n }\n };\n MonthEvent.prototype.updateBlockElements = function () {\n var blockElement = [].slice.call(this.element.querySelectorAll('.' + cls.BLOCK_APPOINTMENT_CLASS));\n for (var _i = 0, blockElement_1 = blockElement; _i < blockElement_1.length; _i++) {\n var element = blockElement_1[_i];\n var target = closest(element, 'tr');\n this.monthHeaderHeight = element.offsetParent.offsetTop - target.offsetTop;\n element.style.height = ((target.offsetHeight - 1) - this.monthHeaderHeight) + 'px';\n var firstChild = target.firstElementChild;\n var width = Math.round(element.offsetWidth / firstChild.offsetWidth);\n element.style.width = (firstChild.offsetWidth * width) + 'px';\n }\n };\n // eslint-disable-next-line max-len\n MonthEvent.prototype.getFilteredEvents = function (startDate, endDate, groupIndex, eventsList) {\n var filteredEvents;\n if (isNullOrUndefined(groupIndex)) {\n filteredEvents = this.filterEvents(startDate, endDate);\n }\n else {\n var data = this.parent.resourceBase.lastResourceLevel[parseInt(groupIndex, 10)];\n filteredEvents = this.filterEvents(startDate, endDate, isNullOrUndefined(eventsList) ? undefined : eventsList, data);\n }\n return filteredEvents;\n };\n MonthEvent.prototype.getOverlapEvents = function (date, appointments) {\n var appointmentsList = [];\n var dateTime = util.resetTime(date).getTime();\n for (var _i = 0, appointments_1 = appointments; _i < appointments_1.length; _i++) {\n var app = appointments_1[_i];\n if ((util.resetTime(app[this.fields.startTime]).getTime() <= dateTime) &&\n (util.resetTime(app[this.fields.endTime]).getTime() >= dateTime)) {\n appointmentsList.push(app);\n }\n }\n return appointmentsList;\n };\n MonthEvent.prototype.getIndex = function (date) {\n var appIndex = -1;\n var appointments = this.renderedEvents;\n if (appointments.length > 0) {\n var appointmentsList = this.getOverlapEvents(date, appointments);\n var appLevel = appointmentsList.map(function (obj) { return obj.Index; });\n appIndex = (appLevel.length > 0) ? this.getSmallestMissingNumber(appLevel) : 0;\n }\n return (appIndex === -1) ? 0 : appIndex;\n };\n MonthEvent.prototype.moreIndicatorClick = function (event) {\n var _this = this;\n var target = closest(event.target, '.' + cls.MORE_INDICATOR_CLASS);\n var startDate = new Date(parseInt(target.getAttribute('data-start-date'), 10));\n var endDate = new Date(parseInt(target.getAttribute('data-end-date'), 10));\n var groupIndex = target.getAttribute('data-group-index');\n var moreArgs = {\n cancel: false, event: event, element: target, isPopupOpen: true,\n startTime: startDate, endTime: endDate, viewName: this.parent.getNavigateView()\n };\n if (groupIndex) {\n moreArgs.groupIndex = parseInt(groupIndex, 10);\n }\n this.parent.trigger(events.moreEventsClick, moreArgs, function (clickArgs) {\n if (!clickArgs.cancel) {\n if (clickArgs.isPopupOpen) {\n var filteredEvents = _this.getFilteredEvents(startDate, endDate, groupIndex);\n var moreArgs_1 = { date: startDate, event: filteredEvents, element: event.target };\n _this.parent.quickPopup.moreEventClick(moreArgs_1, endDate, groupIndex);\n }\n else {\n _this.parent.setProperties({ selectedDate: startDate }, true);\n _this.parent.changeView(clickArgs.viewName, event);\n }\n }\n });\n };\n MonthEvent.prototype.renderEventElement = function (event, appointmentElement, cellTd) {\n var _this = this;\n var eventType = appointmentElement.classList.contains(cls.BLOCK_APPOINTMENT_CLASS) ? 'blockEvent' : 'event';\n var isAppointment = appointmentElement.classList.contains(cls.APPOINTMENT_CLASS);\n var eventObj = this.getEventData(event);\n var args = { data: eventObj, element: appointmentElement, cancel: false, type: eventType };\n this.parent.trigger(events.eventRendered, args, function (eventArgs) {\n if (eventArgs.cancel) {\n _this.renderedEvents.pop();\n }\n else {\n _this.renderElement(cellTd, appointmentElement, isAppointment);\n }\n });\n };\n MonthEvent.prototype.getEventData = function (event) {\n var eventObj = extend({}, event, null, true);\n eventObj[this.fields.startTime] = event.data[this.fields.startTime];\n eventObj[this.fields.endTime] = event.data[this.fields.endTime];\n return eventObj;\n };\n MonthEvent.prototype.renderElement = function (cellTd, element, isAppointment) {\n if (isAppointment === void 0) { isAppointment = false; }\n if (this.maxOrIndicator && isAppointment) {\n this.setMaxEventHeight(element, cellTd);\n }\n var wrapperEle = cellTd.querySelector('.' + cls.APPOINTMENT_WRAPPER_CLASS);\n if (wrapperEle) {\n wrapperEle.appendChild(element);\n }\n else {\n var wrapper = createElement('div', { className: cls.APPOINTMENT_WRAPPER_CLASS });\n wrapper.appendChild(element);\n cellTd.appendChild(wrapper);\n }\n };\n MonthEvent.prototype.getMoreIndicatorElement = function (count, startDate, endDate) {\n var moreIndicatorElement = createElement('div', {\n className: cls.MORE_INDICATOR_CLASS,\n innerHTML: this.getMoreIndicatorText(count),\n attrs: {\n 'tabindex': '0',\n 'data-count': count.toString(),\n 'data-start-date': startDate.getTime().toString(),\n 'data-end-date': endDate.getTime().toString()\n }\n });\n return moreIndicatorElement;\n };\n MonthEvent.prototype.getMoreIndicatorText = function (count) {\n return '+' + this.parent.globalize.formatNumber(count) + ' ' + (this.parent.isAdaptive ? '' : this.parent.localeObj.getConstant('more'));\n };\n MonthEvent.prototype.removeHeightProperty = function (selector) {\n var rows = [].slice.call(this.element.querySelectorAll('.' + selector + ' tbody tr'));\n for (var _i = 0, rows_1 = rows; _i < rows_1.length; _i++) {\n var row = rows_1[_i];\n row.firstElementChild.style.height = '';\n }\n };\n MonthEvent.prototype.setMaxEventHeight = function (event, cell) {\n var headerHeight = util.getOuterHeight(cell.querySelector('.' + cls.DATE_HEADER_CLASS));\n var height = (cell.offsetHeight - headerHeight) - (this.maxHeight ? 0 : this.moreIndicatorHeight);\n setStyleAttribute(event, { 'height': height + 'px', 'align-items': 'center' });\n };\n MonthEvent.prototype.destroy = function () {\n this.element = null;\n this.fields = null;\n this.maxHeight = null;\n this.withIndicator = null;\n this.maxOrIndicator = null;\n this.moreIndicatorHeight = null;\n this.removeEventListener();\n _super.prototype.destroy.call(this);\n };\n return MonthEvent;\n}(EventBase));\nexport { MonthEvent };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/* eslint-disable max-len */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { isNullOrUndefined, setStyleAttribute, extend, EventHandler, createElement } from '@syncfusion/ej2-base';\nimport * as cls from '../base/css-constant';\nimport * as util from '../base/util';\nimport { MonthEvent } from './month';\nvar EVENT_GAP = 2;\nvar BLOCK_INDICATOR_WIDTH = 22;\nvar BLOCK_INDICATOR_HEIGHT = 18;\n/**\n * Timeline view events render\n */\nvar TimelineEvent = /** @class */ (function (_super) {\n __extends(TimelineEvent, _super);\n function TimelineEvent(parent, type) {\n var _this = _super.call(this, parent) || this;\n _this.startHour = _this.parent.activeView.getStartHour();\n _this.endHour = _this.parent.activeView.getEndHour();\n _this.slotCount = _this.parent.activeViewOptions.timeScale.slotCount;\n _this.interval = _this.parent.activeViewOptions.timeScale.interval;\n _this.day = 0;\n _this.rowIndex = 0;\n _this.cellTops = [];\n _this.renderType = type;\n _this.eventContainers = [].slice.call(_this.element.querySelectorAll('.' + cls.APPOINTMENT_CONTAINER_CLASS));\n var tr = [].slice.call(_this.element.querySelectorAll('.' + cls.CONTENT_TABLE_CLASS + ' tbody tr'));\n _this.dayLength = tr.length === 0 ? 0 : tr[0].children.length;\n _this.content = _this.parent.element.querySelector('.' + cls.CONTENT_TABLE_CLASS);\n return _this;\n }\n TimelineEvent.prototype.getSlotDates = function () {\n this.slots = [];\n this.slots.push(this.parent.activeView.renderDates.map(function (date) { return +date; }));\n if (this.parent.activeViewOptions.headerRows.length > 0 &&\n this.parent.activeViewOptions.headerRows.slice(-1)[0].option !== 'Hour') {\n this.renderType = 'day';\n var workCell = this.content.querySelector('.' + cls.WORK_CELLS_CLASS);\n this.cellWidth = workCell.getBoundingClientRect().width / +(workCell.getAttribute('colspan') || 1);\n this.slotsPerDay = 1;\n }\n else {\n this.slotsPerDay = (this.dayLength / this.dateRender.length);\n }\n };\n TimelineEvent.prototype.getOverlapEvents = function (date, appointments) {\n var appointmentsList = [];\n if (this.renderType === 'day') {\n for (var _i = 0, appointments_1 = appointments; _i < appointments_1.length; _i++) {\n var app = appointments_1[_i];\n if ((util.resetTime(app[this.fields.startTime]).getTime() <= util.resetTime(new Date(date.getTime())).getTime()) &&\n (util.resetTime(app[this.fields.endTime]).getTime() >= util.resetTime(new Date(date.getTime())).getTime())) {\n appointmentsList.push(app);\n }\n }\n }\n else {\n for (var _a = 0, appointments_2 = appointments; _a < appointments_2.length; _a++) {\n var app = appointments_2[_a];\n var eventData = app.data;\n if (eventData.trimStartTime.getTime() <= date.getTime() &&\n eventData.trimEndTime.getTime() > date.getTime()) {\n appointmentsList.push(app);\n }\n }\n }\n return appointmentsList;\n };\n TimelineEvent.prototype.getSortComparerIndex = function (startDate, endDate) {\n var appIndex = -1;\n var appointments = this.renderedEvents;\n if (appointments.length > 0) {\n var appointmentsList = this.getOverlapSortComparerEvents(startDate, endDate, appointments);\n var appLevel = appointmentsList.map(function (obj) { return obj.Index; });\n appIndex = (appLevel.length > 0) ? this.getSmallestMissingNumber(appLevel) : 0;\n }\n return (appIndex === -1) ? 0 : appIndex;\n };\n TimelineEvent.prototype.getOverlapSortComparerEvents = function (startDate, endDate, appointmentsCollection) {\n var appointments = [];\n for (var _i = 0, appointmentsCollection_1 = appointmentsCollection; _i < appointmentsCollection_1.length; _i++) {\n var app = appointmentsCollection_1[_i];\n if (this.renderType === 'day') {\n if ((util.resetTime(app[this.fields.startTime]).getTime() <= util.resetTime(new Date(startDate.getTime())).getTime()) &&\n (util.resetTime(app[this.fields.endTime]).getTime() >= util.resetTime(new Date(startDate.getTime())).getTime())) {\n appointments.push(app);\n }\n }\n else {\n var eventData = app.data;\n if (((eventData.trimStartTime.getTime() <= startDate.getTime()) && (startDate.getTime() < eventData.trimEndTime.getTime())) ||\n ((startDate.getTime() <= eventData.trimStartTime.getTime()) && (eventData.trimStartTime.getTime() < endDate.getTime()))) {\n appointments.push(app);\n }\n }\n }\n return appointments;\n };\n TimelineEvent.prototype.renderResourceEvents = function () {\n this.removeHeightProperty(cls.RESOURCE_COLUMN_TABLE_CLASS);\n var resources = this.parent.uiStateValues.isGroupAdaptive ?\n [this.parent.resourceBase.lastResourceLevel[this.parent.uiStateValues.groupIndex]] :\n this.parent.resourceBase.renderedResources;\n if (this.parent.crudModule && this.parent.crudModule.crudObj.isCrudAction) {\n for (var i = 0, len = this.parent.crudModule.crudObj.sourceEvent.length; i < len; i++) {\n var source = this.parent.crudModule.crudObj.sourceEvent[parseInt(i.toString(), 10)];\n this.rowIndex = source.groupIndex;\n this.renderEventsHandler(this.parent.activeView.renderDates, this.parent.activeViewOptions.workDays, source);\n if (this.parent.crudModule.crudObj.targetEvent[parseInt(i.toString(), 10)] && this.parent.crudModule.crudObj.sourceEvent[parseInt(i.toString(), 10)].groupIndex !==\n this.parent.crudModule.crudObj.targetEvent[parseInt(i.toString(), 10)].groupIndex) {\n var target = this.parent.crudModule.crudObj.targetEvent[parseInt(i.toString(), 10)];\n this.rowIndex = target.groupIndex;\n this.renderEventsHandler(this.parent.activeView.renderDates, this.parent.activeViewOptions.workDays, target);\n }\n }\n this.parent.crudModule.crudObj.isCrudAction = false;\n }\n else {\n for (var i = 0; i < resources.length; i++) {\n this.rowIndex = i;\n this.renderEventsHandler(this.parent.activeView.renderDates, this.parent.activeViewOptions.workDays, resources[parseInt(i.toString(), 10)]);\n }\n }\n };\n TimelineEvent.prototype.renderEvents = function (event, resIndex, appointmentsList) {\n var startTime = event[this.fields.startTime];\n var endTime = event[this.fields.endTime];\n if ((startTime.getTime() < this.parent.minDate.getTime()) || (endTime.getTime() > this.parent.maxDate.getTime())) {\n return;\n }\n var eventData = event.data;\n startTime = this.getStartTime(event, eventData);\n endTime = this.getEndTime(event, eventData);\n var startEndHours = util.getStartEndHours(event[this.fields.startTime], this.startHour, this.endHour);\n var eventDates = this.updateEventMinimumDuration(startEndHours, startTime, endTime);\n startTime = eventDates.startDate;\n endTime = eventDates.endDate;\n this.day = this.parent.getIndexOfDate(this.dateRender, util.resetTime(new Date(startTime.getTime())));\n if (this.day < 0) {\n return;\n }\n var cellTd = this.getCellTd();\n var overlapCount = (isNullOrUndefined(this.parent.eventSettings.sortComparer)) ? this.getIndex(startTime) : this.getSortComparerIndex(startTime, endTime);\n event.Index = overlapCount;\n var appHeight = this.eventHeight;\n var diffInDays = eventData.count;\n var eventObj = extend({}, event, null, true);\n eventObj[this.fields.startTime] = eventData[this.fields.startTime];\n eventObj[this.fields.endTime] = eventData[this.fields.endTime];\n var currentDate = util.resetTime(new Date(this.dateRender[this.day].getTime()));\n var schedule = util.getStartEndHours(currentDate, this.startHour, this.endHour);\n var isValidEvent = true;\n if (this.isDayProcess() || eventObj[this.fields.isAllDay]) {\n isValidEvent = true;\n }\n else {\n isValidEvent = this.isValidEvent(eventObj, startTime, endTime, schedule);\n }\n if (startTime <= endTime && isValidEvent) {\n var appWidth = this.getEventWidth(startTime, endTime, event[this.fields.isAllDay], diffInDays);\n appWidth = this.renderType === 'day' ? appWidth - 2 : appWidth;\n var appLeft = 0;\n var appRight = 0;\n var position = this.getPosition(startTime, endTime, event[this.fields.isAllDay], this.day);\n appWidth = (appWidth <= 0) ? this.cellWidth : appWidth; // appWidth 0 when start and end time as same\n this.renderedEvents.push(extend({}, event, null, true));\n if (isNullOrUndefined(this.cellTops[parseInt(resIndex.toString(), 10)])) {\n this.cellTops[parseInt(resIndex.toString(), 10)] = this.getRowTop(resIndex);\n }\n var top_1 = this.cellTops[parseInt(resIndex.toString(), 10)];\n var appTop = (top_1 + (this.maxHeight ? 0 : EVENT_GAP)) + (overlapCount * (appHeight + EVENT_GAP));\n appLeft = (this.parent.enableRtl) ? 0 : position;\n appRight = (this.parent.enableRtl) ? position : 0;\n var height = ((overlapCount + 1) * (appHeight + EVENT_GAP)) + this.moreIndicatorHeight;\n var renderApp = this.maxOrIndicator ? overlapCount < 1 ? true : false : this.cellHeight > height;\n if (this.parent.rowAutoHeight || renderApp) {\n var appointmentElement = void 0;\n if (isNullOrUndefined(this.inlineValue)) {\n appointmentElement = this.createAppointmentElement(event, resIndex);\n }\n else {\n appointmentElement = this.parent.inlineModule.createInlineAppointmentElement();\n }\n this.applyResourceColor(appointmentElement, event, 'backgroundColor', this.groupOrder);\n setStyleAttribute(appointmentElement, {\n 'width': appWidth + 'px', 'left': appLeft + 'px', 'right': appRight + 'px', 'top': appTop + 'px'\n });\n this.wireAppointmentEvents(appointmentElement, event);\n if (this.parent.rowAutoHeight) {\n var conWrap = this.parent.element.querySelector('.' + cls.CONTENT_WRAP_CLASS);\n var conWidth = conWrap.getBoundingClientRect().width;\n var isWithoutScroll = conWrap.offsetHeight === conWrap.clientHeight &&\n conWrap.offsetWidth === conWrap.clientWidth;\n this.renderEventElement(event, appointmentElement, cellTd);\n var firstChild = this.getFirstChild(resIndex);\n this.updateCellHeight(firstChild, height);\n if (isWithoutScroll &&\n (conWrap.offsetWidth > conWrap.clientWidth || conWidth !== conWrap.getBoundingClientRect().width)) {\n this.adjustAppointments(conWidth);\n }\n }\n else {\n this.renderEventElement(event, appointmentElement, cellTd);\n }\n }\n else {\n for (var i = 0; i < diffInDays; i++) {\n var moreIndicator = cellTd.querySelector('.' + cls.MORE_INDICATOR_CLASS);\n var appPos = (this.parent.enableRtl) ? appRight : appLeft;\n appPos = (Math.floor(appPos / this.cellWidth) * this.cellWidth);\n var interval = this.interval / this.slotCount;\n var startDate = (this.parent.activeViewOptions.option === 'TimelineMonth' || this.renderType === 'day' || i !== 0) ?\n new Date(this.dateRender[this.day + i].getTime()) : new Date(startTime);\n var endDate = util.addDays(this.dateRender[this.day + i], 1);\n if (this.parent.activeViewOptions.option === 'TimelineMonth' || this.renderType === 'day') {\n var position_1 = this.getPosition(startDate, endDate, event[this.fields.isAllDay], (this.day + i));\n this.renderTimelineMoreIndicator(startTime, startDate, endDate, appHeight, interval, resIndex, appointmentsList, top_1, appLeft, appRight, cellTd, moreIndicator, appPos, position_1);\n }\n else {\n var slotCount = (util.getUniversalTime(endTime) - util.getUniversalTime(startTime)) / util.MS_PER_MINUTE *\n this.slotCount / this.interval;\n for (var k = 0; k < slotCount; k++) {\n startDate = (k === 0) ? new Date(startDate.getTime()) : new Date(startDate.getTime() + (60000 * interval));\n endDate = new Date(startDate.getTime() + (60000 * interval));\n if (endDate.getTime() > endTime.getTime()) {\n break;\n }\n var position_2 = this.getPosition(startDate, endDate, false, (this.day + i));\n if (appPos > position_2) {\n break;\n }\n appPos = position_2;\n this.renderTimelineMoreIndicator(startTime, startDate, endDate, appHeight, interval, resIndex, appointmentsList, top_1, appLeft, appRight, cellTd, moreIndicator, appPos, position_2);\n }\n }\n }\n }\n }\n this.parent.renderTemplates();\n };\n TimelineEvent.prototype.renderTimelineMoreIndicator = function (startTime, startDate, endDate, appHeight, interval, resIndex, appointmentsList, top, appLeft, appRight, cellTd, moreIndicator, appPos, position) {\n appLeft = (this.parent.enableRtl) ? appRight = position : position;\n appPos = (this.parent.enableRtl) ? appRight : appLeft;\n appPos = (Math.floor(appPos / this.cellWidth) * this.cellWidth);\n if ((cellTd && isNullOrUndefined(moreIndicator)) ||\n (!this.isAlreadyAvail(appPos, cellTd))) {\n var startDateTime = (this.parent.activeViewOptions.option === 'TimelineMonth' || this.renderType === 'day') ? new Date(+startTime) : startDate;\n var slotStartTime = (new Date(startDateTime.setMinutes(Math.floor(startDateTime.getMinutes() / interval) * interval)));\n var slotEndTime = new Date(slotStartTime.getTime() + (60000 * interval));\n var groupIndex = void 0;\n if (this.parent.activeViewOptions.group.resources.length > 0 && !isNullOrUndefined(resIndex)) {\n groupIndex = resIndex.toString();\n }\n var filterEvents = this.getFilterEvents(startDate, endDate, slotStartTime, slotEndTime, groupIndex, appointmentsList);\n var appArea = this.cellHeight - this.moreIndicatorHeight;\n appHeight = this.withIndicator ? appArea - EVENT_GAP : appHeight;\n var renderedAppCount = Math.floor(appArea / (appHeight + EVENT_GAP));\n var count = (filterEvents.length - renderedAppCount) <= 0 ? 1 : (filterEvents.length - renderedAppCount);\n var moreIndicatorElement = void 0;\n if (this.renderType === 'day') {\n moreIndicatorElement = this.getMoreIndicatorElement(count, startDate, endDate);\n }\n else {\n moreIndicatorElement = this.getMoreIndicatorElement(count, slotStartTime, slotEndTime);\n }\n if (!isNullOrUndefined(groupIndex)) {\n moreIndicatorElement.setAttribute('data-group-index', groupIndex);\n }\n moreIndicatorElement.style.top = top + appArea + 'px';\n moreIndicatorElement.style.width = this.cellWidth + 'px';\n moreIndicatorElement.style.left = (Math.floor(appLeft / this.cellWidth) * this.cellWidth) + 'px';\n moreIndicatorElement.style.right = (Math.floor(appRight / this.cellWidth) * this.cellWidth) + 'px';\n this.renderElement(cellTd, moreIndicatorElement);\n EventHandler.add(moreIndicatorElement, 'click', this.moreIndicatorClick, this);\n }\n };\n TimelineEvent.prototype.updateCellHeight = function (cell, height) {\n var cellHeight = cell.style.height === '' ? this.cellHeight : parseInt(cell.style.height, 10);\n if (height > cellHeight) {\n setStyleAttribute(cell, { 'height': height + 'px' });\n if (this.parent.activeViewOptions.group.resources.length > 0) {\n var resourceCell = this.parent.element.querySelector('.' + cls.RESOURCE_COLUMN_TABLE_CLASS + ' ' + 'tbody td[data-group-index=\"' +\n cell.getAttribute('data-group-index') + '\"]');\n if (resourceCell) {\n setStyleAttribute(resourceCell, { 'height': height + 'px' });\n }\n }\n var monthHeader = this.parent.element.querySelector('.e-month-header-wrapper table tr:nth-child(' +\n (cell.parentElement.rowIndex + 1) + ') td');\n if (monthHeader) {\n setStyleAttribute(monthHeader, { 'height': height + 'px' });\n }\n }\n };\n TimelineEvent.prototype.adjustAppointments = function (conWidth) {\n var _this = this;\n var tr = this.parent.element.querySelector('.' + cls.CONTENT_TABLE_CLASS + ' tbody tr');\n this.cellWidth = this.workCells[0].getBoundingClientRect().width;\n var currentPercentage = (this.cellWidth * tr.children.length) / (conWidth / 100);\n var apps = [].slice.call(this.parent.element.querySelectorAll('.' + cls.APPOINTMENT_CLASS));\n apps.forEach(function (app) {\n if (_this.parent.enableRtl && app.style.right !== '0px') {\n app.style.right = ((parseFloat(app.style.right) / 100) * currentPercentage) + 'px';\n }\n else if (app.style.left !== '0px') {\n app.style.left = ((parseFloat(app.style.left) / 100) * currentPercentage) + 'px';\n }\n app.style.width = ((parseFloat(app.style.width) / 100) * currentPercentage) + 'px';\n });\n };\n TimelineEvent.prototype.getFirstChild = function (index) {\n var query = '.' + cls.CONTENT_TABLE_CLASS + ' tbody td';\n var groupIndex = '';\n if (this.parent.activeViewOptions.group.resources.length > 0) {\n groupIndex = '[data-group-index=\"' + index.toString() + '\"]';\n }\n var td = this.parent.element.querySelector(query + groupIndex);\n return td;\n };\n TimelineEvent.prototype.updateBlockElements = function () {\n var blockElement = [].slice.call(this.element.querySelectorAll('.' + cls.BLOCK_APPOINTMENT_CLASS));\n for (var _i = 0, blockElement_1 = blockElement; _i < blockElement_1.length; _i++) {\n var element = blockElement_1[_i];\n var resIndex = parseInt(element.getAttribute('data-group-index'), 10);\n var firstChild = this.getFirstChild(resIndex);\n element.style.height = firstChild.offsetHeight + 'px';\n var width = Math.round(element.offsetWidth / firstChild.offsetWidth);\n element.style.width = (firstChild.offsetWidth * width) + 'px';\n }\n var blockIndicator = [].slice.call(this.element.querySelectorAll('.' + cls.BLOCK_INDICATOR_CLASS));\n for (var _a = 0, blockIndicator_1 = blockIndicator; _a < blockIndicator_1.length; _a++) {\n var element = blockIndicator_1[_a];\n var resIndex = parseInt(element.getAttribute('data-group-index'), 10);\n element.style.top = this.getRowTop(resIndex) +\n this.getFirstChild(resIndex).offsetHeight - BLOCK_INDICATOR_HEIGHT + 'px';\n }\n };\n TimelineEvent.prototype.getStartTime = function (event, eventData) {\n var startTime = event[this.fields.startTime];\n var schedule = util.getStartEndHours(startTime, this.startHour, this.endHour);\n if (this.isDayProcess()) {\n startTime = event[this.fields.startTime];\n }\n else {\n if (schedule.startHour.getTime() >= eventData[this.fields.startTime]) {\n startTime = schedule.startHour;\n }\n else if (schedule.endHour.getTime() <= eventData[this.fields.startTime]) {\n startTime = this.getNextDay(schedule.startHour, eventData);\n }\n else {\n startTime = eventData[this.fields.startTime];\n }\n }\n // To overcome the overflow\n eventData.trimStartTime = (event[this.fields.isAllDay]) ? schedule.startHour : eventData[this.fields.startTime];\n return startTime;\n };\n TimelineEvent.prototype.getNextDay = function (startTime, eventData) {\n var startDate;\n for (var i = 1; i <= this.dateRender.length; i++) {\n startDate = util.addDays(startTime, i);\n if (this.parent.getIndexOfDate(this.dateRender, util.resetTime(new Date(startTime.getTime()))) !== -1) {\n eventData.count = eventData.count - 1;\n return startDate;\n }\n }\n return startDate;\n };\n TimelineEvent.prototype.getEndTime = function (event, eventData) {\n var endTime = event[this.fields.endTime];\n var schedule = util.getStartEndHours(endTime, this.startHour, this.endHour);\n if (this.isDayProcess()) {\n endTime = eventData[this.fields.endTime];\n }\n else {\n endTime = eventData[this.fields.endTime];\n if (schedule.endHour.getTime() <= eventData[this.fields.endTime] || event[this.fields.isAllDay]) {\n endTime = schedule.endHour;\n }\n if (schedule.startHour.getTime() >= eventData[this.fields.endTime].getTime() && !event[this.fields.isAllDay]) {\n endTime = this.getPreviousDay(schedule.startHour, schedule.endHour, eventData);\n }\n }\n // To overcome the overflow\n eventData.trimEndTime = (event[this.fields.isAllDay]) ? schedule.endHour : eventData[this.fields.endTime];\n return endTime;\n };\n TimelineEvent.prototype.getPreviousDay = function (startTime, endTime, eventData) {\n for (var i = 1; i <= this.dateRender.length; i++) {\n var endDate = util.addDays(endTime, -i);\n if (this.parent.getIndexOfDate(this.dateRender, util.resetTime(new Date(startTime.getTime()))) !== -1) {\n endDate = util.resetTime(new Date(endDate.getTime()));\n endDate.setHours(endTime.getHours(), endTime.getMinutes(), endTime.getSeconds());\n var count = eventData.count;\n var actualEndTime = eventData[this.fields.endTime];\n eventData.count = actualEndTime.getHours() !== 0 || actualEndTime.getMinutes() !== 0 ? count - 1 : count;\n return endDate;\n }\n }\n return eventData[this.fields.endTime];\n };\n TimelineEvent.prototype.getEventWidth = function (startDate, endDate, isAllDay, count) {\n if (this.renderType === 'day' || isAllDay) {\n return (count * this.slotsPerDay) * this.cellWidth;\n }\n if (this.isSameDay(startDate, endDate)) {\n return this.getSameDayEventsWidth(startDate, endDate);\n }\n else {\n return this.getSpannedEventsWidth(startDate, endDate, count);\n }\n };\n TimelineEvent.prototype.getSameDayEventsWidth = function (startDate, endDate) {\n return ((util.getUniversalTime(endDate) - util.getUniversalTime(startDate)) /\n util.MS_PER_MINUTE * (this.cellWidth * this.slotCount) / this.interval);\n };\n TimelineEvent.prototype.getSpannedEventsWidth = function (startDate, endDate, diffInDays) {\n var width = (diffInDays * this.slotsPerDay) * this.cellWidth;\n var endWidth;\n var start = util.getStartEndHours(util.resetTime(new Date(startDate.getTime())), this.startHour, this.endHour);\n var startWidth = this.getSameDayEventsWidth(start.startHour, startDate);\n if (this.parent.getIndexOfDate(this.dateRender, util.resetTime(new Date(endDate.getTime()))) === -1) {\n endWidth = 0;\n }\n else {\n var end = util.getStartEndHours(util.resetTime(new Date(endDate.getTime())), this.startHour, this.endHour);\n endWidth = this.getSameDayEventsWidth(endDate, end.endHour);\n endWidth = ((this.slotsPerDay * this.cellWidth) === endWidth) ? 0 : endWidth;\n }\n var spannedWidth = startWidth + endWidth;\n return (width > spannedWidth) ? width - spannedWidth : width - startWidth;\n };\n TimelineEvent.prototype.isSameDay = function (startTime, endTime) {\n var startDay = this.parent.getIndexOfDate(this.dateRender, util.resetTime(new Date(startTime.getTime())));\n var endDay = this.parent.getIndexOfDate(this.dateRender, util.resetTime(new Date(endTime.getTime())));\n return (startDay === endDay);\n };\n TimelineEvent.prototype.getAppointmentLeft = function (schedule, startTime, day) {\n var slotTd = (this.isSameDay(startTime, schedule.startHour)) ?\n ((util.getUniversalTime(startTime) - util.getUniversalTime(schedule.startHour)) /\n (util.MS_PER_MINUTE * this.interval)) * this.slotCount : 0;\n if (day === 0) {\n return slotTd;\n }\n else {\n var daySlot = Math.round((((util.getUniversalTime(schedule.endHour) - util.getUniversalTime(schedule.startHour)) /\n util.MS_PER_MINUTE) / this.interval) * this.slotCount);\n return (daySlot * day) + slotTd;\n }\n };\n TimelineEvent.prototype.getPosition = function (startTime, endTime, isAllDay, day) {\n if (this.renderType === 'day' || isAllDay) {\n return (day * this.slotsPerDay) * this.cellWidth;\n }\n var currentDate = util.resetTime(new Date(this.dateRender[parseInt(day.toString(), 10)].getTime()));\n var schedule = util.getStartEndHours(currentDate, this.startHour, this.endHour);\n var cellIndex;\n if (schedule.endHour.getTime() <= endTime.getTime() && schedule.startHour.getTime() >= startTime.getTime()) {\n cellIndex = this.getAppointmentLeft(schedule, schedule.startHour, day);\n }\n else if (schedule.endHour.getTime() <= endTime.getTime()) {\n cellIndex = this.getAppointmentLeft(schedule, startTime, day);\n }\n else if (schedule.startHour.getTime() >= startTime.getTime()) {\n cellIndex = this.getAppointmentLeft(schedule, schedule.startHour, day);\n }\n else {\n cellIndex = this.getAppointmentLeft(schedule, startTime, day);\n }\n return cellIndex * this.cellWidth;\n };\n TimelineEvent.prototype.getFilterEvents = function (startDate, endDate, startTime, endTime, gIndex, eventsList) {\n if (this.renderType === 'day') {\n return this.getFilteredEvents(startDate, endDate, gIndex, eventsList);\n }\n else {\n return this.getFilteredEvents(startTime, endTime, gIndex, eventsList);\n }\n };\n TimelineEvent.prototype.isAlreadyAvail = function (appPos, cellTd) {\n var moreIndicator = [].slice.call(cellTd.querySelectorAll('.' + cls.MORE_INDICATOR_CLASS));\n for (var i = 0; i < moreIndicator.length; i++) {\n var indicatorPos = void 0;\n if (moreIndicator) {\n indicatorPos = (this.parent.enableRtl) ? moreIndicator[parseInt(i.toString(), 10)].style.right : moreIndicator[parseInt(i.toString(), 10)].style.left;\n }\n if (parseInt(indicatorPos, 10) === Math.floor(appPos)) {\n return true;\n }\n }\n return false;\n };\n TimelineEvent.prototype.getRowTop = function (resIndex) {\n if (this.parent.activeViewOptions.group.resources.length > 0 && !this.parent.uiStateValues.isGroupAdaptive) {\n return this.parent.element.querySelector('.' + cls.CONTENT_WRAP_CLASS +\n ' ' + 'tbody td[data-group-index=\"' + resIndex.toString() + '\"]').offsetTop;\n }\n return 0;\n };\n TimelineEvent.prototype.getCellTd = function () {\n var wrapIndex = this.parent.uiStateValues.isGroupAdaptive ? 0 : this.rowIndex;\n return this.eventContainers[parseInt(wrapIndex.toString(), 10)];\n };\n TimelineEvent.prototype.renderBlockIndicator = function (cellTd, position, resIndex) {\n // No need to render block icon for Year, Month and Week header rows\n if (this.parent.headerRows.length > 0 &&\n (this.parent.headerRows[this.parent.headerRows.length - 1].option !== 'Hour' ||\n this.parent.headerRows[this.parent.headerRows.length - 1].option !== 'Date')) {\n return;\n }\n position = (Math.floor(position / this.cellWidth) * this.cellWidth) + this.cellWidth - BLOCK_INDICATOR_WIDTH;\n if (!this.isAlreadyAvail(position, cellTd)) {\n var blockIndicator = createElement('div', { className: 'e-icons ' + cls.BLOCK_INDICATOR_CLASS });\n if (this.parent.activeViewOptions.group.resources.length > 0) {\n blockIndicator.setAttribute('data-group-index', resIndex.toString());\n }\n if (this.parent.enableRtl) {\n blockIndicator.style.right = position + 'px';\n }\n else {\n blockIndicator.style.left = position + 'px';\n }\n blockIndicator.style.top = this.getRowTop(resIndex) + this.cellHeight - BLOCK_INDICATOR_HEIGHT + 'px';\n this.renderElement(cellTd, blockIndicator);\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n TimelineEvent.prototype.setMaxEventHeight = function (event, cell) {\n setStyleAttribute(event, {\n 'height': (this.cellHeight - (this.maxHeight ? 0 : EVENT_GAP) - (this.maxHeight ? 0 : this.moreIndicatorHeight)) + 'px'\n });\n };\n TimelineEvent.prototype.isDayProcess = function () {\n if (this.parent.currentView === 'TimelineMonth' || !this.parent.activeViewOptions.timeScale.enable ||\n (this.parent.activeViewOptions.headerRows.length > 0 &&\n this.parent.activeViewOptions.headerRows.slice(-1)[0].option !== 'Hour')) {\n return true;\n }\n return false;\n };\n TimelineEvent.prototype.destroy = function () {\n this.renderType = null;\n this.eventContainers = null;\n this.dayLength = null;\n this.content = null;\n _super.prototype.destroy.call(this);\n this.parent = null;\n };\n return TimelineEvent;\n}(MonthEvent));\nexport { TimelineEvent };\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { addClass, createElement, closest, remove, removeClass, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { VerticalEvent } from '../event-renderer/vertical-view';\nimport { MonthEvent } from '../event-renderer/month';\nimport { TimelineEvent } from '../event-renderer/timeline-view';\nimport * as cls from '../base/css-constant';\nimport * as events from '../base/constant';\nimport * as util from '../base/util';\n/**\n * Inline Edit interactions\n */\nvar InlineEdit = /** @class */ (function () {\n function InlineEdit(parent) {\n this.parent = parent;\n this.parent.on(events.inlineClick, this.inlineEdit, this);\n }\n InlineEdit.prototype.inlineEdit = function (args) {\n if (this.parent.quickPopup) {\n this.parent.quickPopup.quickPopupHide();\n }\n if (args.type === 'Cell') {\n var moreWrapper = this.parent.element.querySelector('.' + cls.MORE_POPUP_WRAPPER_CLASS);\n if (moreWrapper && moreWrapper.classList.contains(cls.POPUP_OPEN)) {\n this.parent.quickPopup.morePopup.hide();\n }\n this.removeInlineAppointmentElement();\n this.cellEdit(args);\n }\n else {\n if (this.parent.element.querySelector('.' + cls.INLINE_SUBJECT_CLASS) !==\n args.element.querySelector('.' + cls.INLINE_SUBJECT_CLASS)) {\n this.removeInlineAppointmentElement();\n }\n this.eventEdit(args);\n }\n };\n InlineEdit.prototype.cellEdit = function (args) {\n var saveObj = this.generateEventData();\n var cellIndex = args.element.cellIndex;\n var count = this.getEventDaysCount(saveObj);\n if (count > 1) {\n count = Math.round(count);\n count--;\n cellIndex = cellIndex - count;\n }\n var start = util.resetTime(new Date('' + saveObj[this.parent.eventFields.startTime])).getTime();\n var end = util.resetTime(new Date('' + saveObj[this.parent.eventFields.endTime])).getTime();\n var resIndex = args.groupIndex || 0;\n var isVertical = this.parent.currentView === 'Day' || this.parent.currentView === 'Week' || this.parent.currentView === 'WorkWeek';\n if (this.parent.activeViewOptions.timeScale.enable && isVertical) {\n var dayIndex = saveObj[this.parent.eventFields.startTime].getDay();\n this.createVerticalViewInline(saveObj, dayIndex, resIndex, cellIndex);\n }\n else if (this.parent.currentView === 'Month' || (!this.parent.activeViewOptions.timeScale.enable && isVertical)) {\n this.createMonthViewInline(saveObj, resIndex, start, end);\n }\n else {\n this.createTimelineViewInline(saveObj, start, end, resIndex);\n }\n var inlineSubject = this.parent.element.querySelector('.' + cls.INLINE_SUBJECT_CLASS);\n if (inlineSubject) {\n inlineSubject.focus();\n }\n };\n InlineEdit.prototype.eventEdit = function (args) {\n var inlineSubject = args.element.querySelector('.' + cls.INLINE_SUBJECT_CLASS);\n var subject;\n if (inlineSubject) {\n subject = inlineSubject.value;\n }\n else {\n var subEle = args.element.querySelector('.' + cls.SUBJECT_CLASS);\n if (!isNullOrUndefined(subEle)) {\n addClass([subEle], cls.DISABLE_CLASS);\n subject = subEle.innerText;\n }\n else {\n subject = args.data[this.parent.eventFields.subject];\n }\n inlineSubject = createElement('input', { className: cls.INLINE_SUBJECT_CLASS, attrs: { value: subject } });\n if (closest(args.element, '.' + cls.MORE_POPUP_WRAPPER_CLASS)) {\n args.element.insertBefore(inlineSubject, subEle);\n }\n else if (['Agenda', 'MonthAgenda'].indexOf(this.parent.currentView) > -1) {\n var subjectWrap = args.element.querySelector('.' + cls.SUBJECT_WRAP);\n if (isNullOrUndefined(subjectWrap)) {\n subjectWrap = createElement('div', { className: cls.SUBJECT_WRAP });\n args.element.prepend(subjectWrap);\n }\n subjectWrap.insertBefore(inlineSubject, subjectWrap.firstChild);\n }\n else {\n args.element.querySelector('.e-appointment-details').prepend(inlineSubject);\n }\n inlineSubject.focus();\n }\n inlineSubject.setSelectionRange(subject.length, subject.length);\n };\n InlineEdit.prototype.createVerticalViewInline = function (saveObj, dayIndex, resIndex, daysCount) {\n var _a;\n var count = this.getEventDaysCount(saveObj);\n var verticalEvent = new VerticalEvent(this.parent);\n verticalEvent.initializeValues();\n var index = verticalEvent.dateRender[parseInt(resIndex.toString(), 10)].map(function (date) { return date.getDay(); }).indexOf(dayIndex);\n if (count >= 1) {\n verticalEvent.allDayElement = [].slice.call(this.parent.element.querySelectorAll('.' + cls.ALLDAY_CELLS_CLASS));\n (_a = verticalEvent.slots).push.apply(_a, this.parent.activeView.renderDates.map(function (date) { return +date; }));\n var allDayElements = [].slice.call(this.parent.element.querySelectorAll('.' + cls.ALLDAY_APPOINTMENT_CLASS));\n var allDayLevel = 0;\n if (allDayElements.length > 0) {\n allDayLevel = Math.floor(this.parent.element.querySelector('.' + cls.ALLDAY_ROW_CLASS).getBoundingClientRect().height /\n allDayElements[0].offsetHeight) - 1;\n }\n verticalEvent.allDayLevel = allDayLevel;\n var appHeight = util.getElementHeightFromClass(this.parent.element.querySelector('.' + cls.ALLDAY_APPOINTMENT_WRAPPER_CLASS), cls.APPOINTMENT_CLASS);\n var cellTop = verticalEvent.allDayElement.length > 0 ? verticalEvent.allDayElement[0].offsetTop : 0;\n verticalEvent.renderAllDayEvents(saveObj, index, resIndex, daysCount, this.parent.allowInline, cellTop, appHeight);\n }\n else {\n verticalEvent.renderNormalEvents(saveObj, index, resIndex, daysCount, this.parent.allowInline);\n }\n };\n InlineEdit.prototype.createMonthViewInline = function (saveObj, index, start, end) {\n var count = this.getEventDaysCount(saveObj);\n var saveObject = this.parent.eventBase.cloneEventObject(saveObj, start, end, count, false, false);\n var monthEvent = new MonthEvent(this.parent);\n monthEvent.dateRender = this.parent.activeView.renderDates;\n monthEvent.inlineValue = this.parent.allowInline;\n var renderDates = this.parent.activeView.renderDates;\n var workDays = this.parent.activeViewOptions.workDays;\n var monthCellSelector = '.' + cls.WORK_CELLS_CLASS;\n if (this.parent.activeViewOptions.group.resources.length > 0) {\n monthCellSelector += '[data-group-index=\"' + index + '\"]';\n var resourceData = this.parent.resourceBase.lastResourceLevel[parseInt(index.toString(), 10)];\n renderDates = resourceData.renderDates;\n workDays = resourceData.workDays;\n }\n monthEvent.dateRender = renderDates;\n monthEvent.workCells = [].slice.call(this.parent.element.querySelectorAll(monthCellSelector));\n monthEvent.cellWidth = monthEvent.workCells[0].offsetWidth;\n monthEvent.cellHeight = monthEvent.workCells[0].offsetHeight;\n monthEvent.eventHeight =\n util.getElementHeightFromClass(this.parent.monthModule.element || monthEvent.element, cls.APPOINTMENT_CLASS);\n monthEvent.getSlotDates(workDays);\n var filteredDates = monthEvent.getRenderedDates(renderDates);\n var spannedEvents = monthEvent.splitEvent(saveObject, filteredDates || renderDates);\n for (var _i = 0, spannedEvents_1 = spannedEvents; _i < spannedEvents_1.length; _i++) {\n var eventData = spannedEvents_1[_i];\n monthEvent.renderEvents(eventData, index);\n }\n var inlineSubject = this.parent.element.querySelector('.' + cls.INLINE_SUBJECT_CLASS);\n inlineSubject.focus();\n };\n InlineEdit.prototype.createTimelineViewInline = function (saveObj, start, end, resIndex) {\n var count = this.getEventDaysCount(saveObj);\n var saveObject = this.parent.eventBase.cloneEventObject(saveObj, start, end, count, false, false);\n var timelineView = new TimelineEvent(this.parent, this.parent.activeViewOptions.timeScale.enable ? 'hour' : 'day');\n timelineView.dateRender = this.parent.activeView.renderDates;\n timelineView.eventContainers = [].slice.call(this.parent.element.querySelectorAll('.' + cls.APPOINTMENT_CONTAINER_CLASS));\n var workCell = this.parent.element.querySelector('.' + cls.WORK_CELLS_CLASS);\n timelineView.inlineValue = this.parent.allowInline;\n timelineView.cellWidth = workCell.offsetWidth;\n timelineView.cellHeight = workCell.offsetHeight;\n var dayLength = this.parent.element.querySelectorAll('.' + cls.CONTENT_TABLE_CLASS + ' tbody tr').length === 0 ?\n 0 : this.parent.element.querySelectorAll('.' + cls.CONTENT_TABLE_CLASS + ' tbody tr')[0].children.length;\n timelineView.slotsPerDay = dayLength / timelineView.dateRender.length;\n timelineView.eventHeight = util.getElementHeightFromClass(timelineView.element, cls.APPOINTMENT_CLASS);\n timelineView.renderEvents(saveObject, resIndex);\n };\n InlineEdit.prototype.getEventDaysCount = function (saveObj) {\n var startDate = saveObj[this.parent.eventFields.startTime];\n var endDate = saveObj[this.parent.eventFields.endTime];\n var daysCount = Math.abs(endDate.getTime() - startDate.getTime()) / util.MS_PER_DAY;\n return daysCount;\n };\n InlineEdit.prototype.generateEventData = function (target) {\n var inlineElement = this.parent.element.querySelector('.' + cls.INLINE_SUBJECT_CLASS);\n var subject = inlineElement ? inlineElement.value : target ? target.innerHTML : '';\n var saveObj = {};\n saveObj[this.parent.eventFields.id] = this.parent.eventBase.getEventMaxID();\n saveObj[this.parent.eventFields.subject] = subject;\n saveObj[this.parent.eventFields.startTime] = this.parent.activeCellsData.startTime;\n saveObj[this.parent.eventFields.endTime] = this.parent.activeCellsData.endTime;\n saveObj[this.parent.eventFields.isAllDay] = this.parent.activeCellsData.isAllDay;\n this.parent.eventWindow.setDefaultValueToObject(saveObj);\n if (this.parent.resourceBase) {\n this.parent.resourceBase.setResourceValues(saveObj, this.parent.activeCellsData.groupIndex);\n }\n return saveObj;\n };\n InlineEdit.prototype.documentClick = function () {\n var target = this.parent.element.querySelector('.' + cls.INLINE_SUBJECT_CLASS);\n if (target && target.value !== '') {\n this.inlineCrudActions(target);\n }\n else {\n this.removeInlineAppointmentElement();\n }\n };\n InlineEdit.prototype.inlineCrudActions = function (target) {\n if (closest(target, '.' + cls.INLINE_APPOINTMENT_CLASS)) {\n var saveObj = this.generateEventData(target);\n this.parent.addEvent(saveObj);\n }\n else {\n var eventTarget = closest(target, '.' + cls.APPOINTMENT_CLASS);\n var eventDetails = this.parent.getEventDetails(eventTarget);\n eventDetails[this.parent.eventFields.subject] = target.value;\n var currentAction = void 0;\n if (eventDetails[this.parent.eventFields.id] === eventDetails[this.parent.eventFields.recurrenceID]) {\n currentAction = 'EditOccurrence';\n eventDetails[this.parent.eventFields.id] = this.parent.eventBase.getEventMaxID();\n }\n this.parent.saveEvent(eventDetails, currentAction);\n }\n this.removeInlineAppointmentElement();\n };\n InlineEdit.prototype.createInlineAppointmentElement = function (inlineData) {\n var inlineAppointmentElement = createElement('div', {\n className: cls.APPOINTMENT_CLASS + ' ' + cls.INLINE_APPOINTMENT_CLASS\n });\n var inlineDetails = createElement('div', { className: cls.APPOINTMENT_DETAILS });\n inlineAppointmentElement.appendChild(inlineDetails);\n var inline = createElement('input', { className: cls.INLINE_SUBJECT_CLASS });\n inlineDetails.appendChild(inline);\n if (inlineData) {\n this.parent.eventBase.applyResourceColor(inlineAppointmentElement, inlineData, 'backgroundColor');\n }\n return inlineAppointmentElement;\n };\n InlineEdit.prototype.removeInlineAppointmentElement = function () {\n var inlineAppointment = [].slice.call(this.parent.element.querySelectorAll('.' + cls.INLINE_APPOINTMENT_CLASS));\n if (inlineAppointment.length > 0) {\n inlineAppointment.forEach(function (node) { return remove(node); });\n }\n var inlineSubject = this.parent.element.querySelector('.' + cls.INLINE_SUBJECT_CLASS);\n if (inlineSubject) {\n var appointmentSubject = closest(inlineSubject, '.' + cls.APPOINTMENT_CLASS);\n var subject = appointmentSubject.querySelector('.' + cls.SUBJECT_CLASS);\n if (!isNullOrUndefined(subject)) {\n removeClass([subject], cls.DISABLE_CLASS);\n }\n remove(inlineSubject);\n }\n };\n InlineEdit.prototype.destroy = function () {\n this.parent.off(events.inlineClick, this.inlineEdit);\n };\n return InlineEdit;\n}());\nexport { InlineEdit };\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { createElement, isNullOrUndefined, remove } from '@syncfusion/ej2-base';\nimport { FormValidator } from '@syncfusion/ej2-inputs';\nimport * as cls from '../base/css-constant';\n/**\n * Appointment window field validation\n */\nvar FieldValidator = /** @class */ (function () {\n function FieldValidator() {\n }\n FieldValidator.prototype.renderFormValidator = function (form, rules, element, locale) {\n var _this = this;\n this.element = element;\n this.formObj = new FormValidator(form, {\n locale: locale,\n customPlacement: function (inputElement, error) {\n _this.errorPlacement(inputElement, error);\n },\n rules: rules,\n validationComplete: function (args) {\n _this.validationComplete(args);\n },\n focusout: function (args) {\n _this.focusOut(args);\n }\n });\n };\n FieldValidator.prototype.focusOut = function (args) {\n var target = args.relatedTarget;\n if (target && (target.classList.contains('e-dlg-closeicon-btn') || target.classList.contains('e-close')\n || target.classList.contains(cls.ALLDAY_CELLS_CLASS) || target.classList.contains(cls.HEADER_CELLS_CLASS)\n || target.classList.contains(cls.QUICK_POPUP_EVENT_DETAILS_CLASS) || target.classList.contains(cls.WORK_CELLS_CLASS)\n || target.classList.contains(cls.EVENT_WINDOW_CANCEL_BUTTON_CLASS))) {\n this.ignoreError = true;\n }\n else {\n this.ignoreError = false;\n }\n };\n FieldValidator.prototype.validationComplete = function (args) {\n var elem = this.element.querySelector('#' + args.inputName + '_Error');\n if (elem) {\n elem.style.display = (args.status === 'failure') ? '' : 'none';\n }\n };\n FieldValidator.prototype.errorPlacement = function (inputElement, error) {\n var id = error.getAttribute('for');\n var elem = this.element.querySelector('#' + id + '_Error');\n if (!elem && !this.ignoreError) {\n this.createTooltip(inputElement, error, id, '');\n }\n if (!isNullOrUndefined(elem)) {\n elem.querySelector('.e-error').innerHTML = error.innerHTML;\n }\n };\n FieldValidator.prototype.createTooltip = function (element, error, name, display) {\n var dlgContent;\n var client;\n var inputClient = element.getBoundingClientRect();\n if (this.element.classList.contains(cls.POPUP_WRAPPER_CLASS)) {\n dlgContent = this.element;\n client = this.element.getBoundingClientRect();\n }\n else {\n dlgContent = this.element.querySelector('.e-schedule-dialog .e-dlg-content');\n client = dlgContent.getBoundingClientRect();\n }\n var div = createElement('div', {\n className: 'e-tooltip-wrap e-popup ' + cls.ERROR_VALIDATION_CLASS,\n id: name + '_Error',\n styles: 'display:' + display + ';top:' +\n (inputClient.bottom - client.top + dlgContent.scrollTop + 9) + 'px;left:' +\n (inputClient.left - client.left + dlgContent.scrollLeft + inputClient.width / 2) + 'px;'\n });\n var content = createElement('div', { className: 'e-tip-content' });\n content.appendChild(error);\n var arrow = createElement('div', { className: 'e-arrow-tip e-tip-top' });\n arrow.appendChild(createElement('div', { className: 'e-arrow-tip-outer e-tip-top' }));\n arrow.appendChild(createElement('div', { className: 'e-arrow-tip-inner e-tip-top' }));\n div.appendChild(content);\n div.appendChild(arrow);\n dlgContent.appendChild(div);\n div.style.left = (parseInt(div.style.left, 10) - div.offsetWidth / 2) + 'px';\n };\n FieldValidator.prototype.destroyToolTip = function () {\n if (this.element) {\n var elements = [].slice.call(this.element.querySelectorAll('.' + cls.ERROR_VALIDATION_CLASS));\n for (var _i = 0, elements_1 = elements; _i < elements_1.length; _i++) {\n var elem = elements_1[_i];\n remove(elem);\n }\n }\n if (this.formObj && this.formObj.element) {\n this.formObj.reset();\n }\n };\n FieldValidator.prototype.destroy = function () {\n if (this.formObj && this.formObj.element && !this.formObj.isDestroyed) {\n this.formObj.destroy();\n }\n this.formObj = null;\n this.element = null;\n };\n return FieldValidator;\n}());\nexport { FieldValidator };\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { closest, EventHandler, isNullOrUndefined, formatUnit, append } from '@syncfusion/ej2-base';\nimport { addClass, removeClass, createElement, remove, extend } from '@syncfusion/ej2-base';\nimport { Dialog, Popup, isCollide } from '@syncfusion/ej2-popups';\nimport { Button } from '@syncfusion/ej2-buttons';\nimport { Input } from '@syncfusion/ej2-inputs';\nimport { FieldValidator } from './form-validator';\nimport * as event from '../base/constant';\nimport * as cls from '../base/css-constant';\nimport * as util from '../base/util';\nvar EVENT_FIELD = 'e-field';\n/**\n * Quick Popups interactions\n */\nvar QuickPopups = /** @class */ (function () {\n function QuickPopups(parent) {\n this.isMultipleEventSelect = false;\n this.isCrudAction = false;\n this.parent = parent;\n this.l10n = this.parent.localeObj;\n this.fieldValidator = new FieldValidator();\n this.render();\n this.addEventListener();\n }\n QuickPopups.prototype.render = function () {\n this.renderQuickPopup();\n this.renderMorePopup();\n this.renderQuickDialog();\n };\n QuickPopups.prototype.renderQuickPopup = function () {\n var quickPopupWrapper = createElement('div', { className: cls.POPUP_WRAPPER_CLASS + ' e-popup-close' });\n if (this.parent.isAdaptive) {\n document.body.appendChild(quickPopupWrapper);\n addClass([quickPopupWrapper], cls.DEVICE_CLASS);\n }\n else {\n this.parent.element.appendChild(quickPopupWrapper);\n }\n this.quickPopup = new Popup(quickPopupWrapper, {\n targetType: (this.parent.isAdaptive ? 'container' : 'relative'),\n enableRtl: this.parent.enableRtl,\n open: this.quickPopupOpen.bind(this),\n close: this.quickPopupClose.bind(this),\n hideAnimation: (this.parent.isAdaptive ? { name: 'ZoomOut' } : { name: 'FadeOut', duration: 150 }),\n showAnimation: (this.parent.isAdaptive ? { name: 'ZoomIn' } : { name: 'FadeIn', duration: 150 }),\n collision: (this.parent.isAdaptive ? { X: 'fit', Y: 'fit' } :\n (this.parent.enableRtl ? { X: 'flip', Y: 'fit' } : { X: 'none', Y: 'fit' })),\n position: (this.parent.isAdaptive || this.parent.enableRtl ? { X: 'left', Y: 'top' } : { X: 'right', Y: 'top' }),\n viewPortElement: (this.parent.isAdaptive ? document.body : this.parent.element),\n zIndex: (this.parent.isAdaptive ? 1004 : 3)\n });\n };\n QuickPopups.prototype.renderMorePopup = function () {\n var moreEventPopup = \"
      \" +\n (\"
      \") +\n (\"
      \") +\n (\"
      \");\n var moreEventWrapper = createElement('div', {\n className: cls.MORE_POPUP_WRAPPER_CLASS + ' e-popup-close',\n innerHTML: moreEventPopup\n });\n if (this.parent.isAdaptive) {\n document.body.appendChild(moreEventWrapper);\n addClass([moreEventWrapper], cls.DEVICE_CLASS);\n }\n else {\n this.parent.element.appendChild(moreEventWrapper);\n }\n this.morePopup = new Popup(moreEventWrapper, {\n targetType: (this.parent.isAdaptive ? 'container' : 'relative'),\n enableRtl: this.parent.enableRtl,\n hideAnimation: { name: 'ZoomOut', duration: 300 },\n showAnimation: { name: 'ZoomIn', duration: 300 },\n open: this.morePopupOpen.bind(this),\n close: this.morePopupClose.bind(this),\n collision: (this.parent.isAdaptive ? { X: 'fit', Y: 'fit' } :\n (this.parent.enableRtl ? { X: 'flip', Y: 'fit' } : { X: 'flip', Y: 'flip' })),\n viewPortElement: (this.parent.isAdaptive ? document.body : this.parent.element),\n zIndex: (this.parent.isAdaptive ? 1002 : 2)\n });\n var closeButton = this.morePopup.element.querySelector('.' + cls.MORE_EVENT_CLOSE_CLASS);\n this.renderButton('e-round', cls.ICON + ' ' + cls.CLOSE_ICON_CLASS, false, closeButton, this.closeClick);\n EventHandler.add(this.morePopup.element.querySelector('.' + cls.MORE_EVENT_HEADER_DATE_CLASS), 'click', this.navigationClick, this);\n };\n QuickPopups.prototype.renderQuickDialog = function () {\n var buttonModel = [\n { buttonModel: { cssClass: 'e-quick-alertok e-flat', isPrimary: true }, click: this.dialogButtonClick.bind(this) },\n { buttonModel: { cssClass: 'e-quick-alertcancel e-flat', isPrimary: false }, click: this.dialogButtonClick.bind(this) },\n {\n buttonModel: { cssClass: 'e-quick-dialog-cancel e-disable e-flat', isPrimary: false },\n click: this.dialogButtonClick.bind(this)\n }\n ];\n if (this.parent.eventSettings.editFollowingEvents) {\n var followingSeriesButton = {\n buttonModel: { cssClass: 'e-quick-alertfollowing e-flat', isPrimary: false }, click: this.dialogButtonClick.bind(this)\n };\n buttonModel.splice(1, 0, followingSeriesButton);\n }\n this.quickDialog = new Dialog({\n animationSettings: { effect: 'Zoom' },\n buttons: buttonModel,\n cssClass: cls.QUICK_DIALOG_CLASS,\n closeOnEscape: true,\n enableRtl: this.parent.enableRtl,\n enableHtmlSanitizer: this.parent.enableHtmlSanitizer,\n beforeClose: this.beforeQuickDialogClose.bind(this),\n isModal: true,\n position: { X: 'center', Y: 'center' },\n showCloseIcon: true,\n target: document.body,\n visible: false,\n width: 'auto'\n });\n var dialogElement = createElement('div', { id: this.parent.element.id + 'QuickDialog' });\n this.parent.element.appendChild(dialogElement);\n this.quickDialog.appendTo(dialogElement);\n var okButton = this.quickDialog.element.querySelector('.' + cls.QUICK_DIALOG_ALERT_OK);\n if (okButton) {\n okButton.setAttribute('aria-label', this.l10n.getConstant('occurrence'));\n okButton.setAttribute('aria-label', okButton.innerHTML);\n }\n var cancelButton = this.quickDialog.element.querySelector('.' + cls.QUICK_DIALOG_ALERT_CANCEL);\n if (cancelButton) {\n cancelButton.setAttribute('aria-label', this.l10n.getConstant('series'));\n cancelButton.setAttribute('aria-label', cancelButton.innerHTML);\n }\n if (this.quickDialog.element.querySelector('.e-dlg-closeicon-btn')) {\n this.quickDialog.element.querySelector('.e-dlg-closeicon-btn').setAttribute('title', this.l10n.getConstant('close'));\n }\n };\n // eslint-disable-next-line max-len\n QuickPopups.prototype.renderButton = function (className, iconName, isDisabled, element, clickEvent) {\n var buttonObj = new Button({\n cssClass: className,\n disabled: isDisabled,\n enableRtl: this.parent.enableRtl,\n enableHtmlSanitizer: this.parent.enableHtmlSanitizer,\n iconCss: iconName\n });\n buttonObj.appendTo(element);\n EventHandler.add(element, 'click', clickEvent, this);\n removeClass([element], cls.ICON);\n };\n QuickPopups.prototype.quickDialogClass = function (action) {\n var classList = [\n cls.QUICK_DIALOG_OCCURRENCE_CLASS, cls.QUICK_DIALOG_SERIES_CLASS, cls.QUICK_DIALOG_DELETE_CLASS,\n cls.QUICK_DIALOG_CANCEL_CLASS, cls.QUICK_DIALOG_ALERT_BTN_CLASS, cls.DISABLE_CLASS\n ];\n var okButton = this.quickDialog.element.querySelector('.' + cls.QUICK_DIALOG_ALERT_OK);\n var cancelButton = this.quickDialog.element.querySelector('.' + cls.QUICK_DIALOG_ALERT_CANCEL);\n var followingEventButton = this.quickDialog.element.querySelector('.' + cls.QUICK_DIALOG_ALERT_FOLLOWING);\n removeClass([okButton, cancelButton], classList);\n addClass([this.quickDialog.element.querySelector('.' + cls.QUICK_DIALOG_CANCEL_CLASS)], cls.DISABLE_CLASS);\n if (this.parent.eventSettings.editFollowingEvents) {\n addClass([followingEventButton], cls.DISABLE_CLASS);\n removeClass([this.quickDialog.element], cls.FOLLOWING_EVENTS_DIALOG);\n }\n switch (action) {\n case 'Recurrence':\n addClass([okButton], cls.QUICK_DIALOG_OCCURRENCE_CLASS);\n addClass([cancelButton], cls.QUICK_DIALOG_SERIES_CLASS);\n if (this.parent.eventSettings.editFollowingEvents) {\n removeClass([followingEventButton], cls.DISABLE_CLASS);\n addClass([this.quickDialog.element], cls.FOLLOWING_EVENTS_DIALOG);\n addClass([followingEventButton], cls.QUICK_DIALOG_FOLLOWING_EVENTS_CLASS);\n }\n break;\n case 'Delete':\n addClass([okButton], cls.QUICK_DIALOG_DELETE_CLASS);\n addClass([cancelButton], cls.QUICK_DIALOG_CANCEL_CLASS);\n break;\n case 'Alert':\n addClass([okButton], [cls.QUICK_DIALOG_ALERT_OK, cls.QUICK_DIALOG_ALERT_BTN_CLASS]);\n addClass([cancelButton], [cls.QUICK_DIALOG_ALERT_CANCEL, cls.DISABLE_CLASS]);\n break;\n }\n };\n QuickPopups.prototype.applyFormValidation = function () {\n var form = this.quickPopup.element.querySelector('.' + cls.FORM_CLASS);\n var rules = {};\n rules[this.parent.eventSettings.fields.subject.name] = this.parent.eventSettings.fields.subject.validation;\n this.fieldValidator.renderFormValidator(form, rules, this.quickPopup.element, this.parent.locale);\n };\n QuickPopups.prototype.openRecurrenceAlert = function () {\n var editDeleteOnly = this.quickDialog.element.querySelector('.' + cls.QUICK_DIALOG_ALERT_OK);\n if (editDeleteOnly) {\n editDeleteOnly.innerHTML = this.l10n.getConstant(this.parent.currentAction === 'Delete' ? 'deleteEvent' : 'editEvent');\n editDeleteOnly.setAttribute('aria-label', editDeleteOnly.innerHTML);\n }\n var editFollowingEventsOnly = this.quickDialog.element.querySelector('.' + cls.QUICK_DIALOG_ALERT_FOLLOWING);\n if (editFollowingEventsOnly) {\n editFollowingEventsOnly.innerHTML = this.l10n.getConstant('editFollowingEvent');\n editFollowingEventsOnly.setAttribute('aria-label', editFollowingEventsOnly.innerHTML);\n }\n var editDeleteSeries = this.quickDialog.element.querySelector('.' + cls.QUICK_DIALOG_ALERT_CANCEL);\n if (editDeleteSeries) {\n editDeleteSeries.innerHTML = this.l10n.getConstant(this.parent.currentAction === 'Delete' ? 'deleteSeries' : 'editSeries');\n editDeleteSeries.setAttribute('aria-label', editDeleteSeries.innerHTML);\n }\n this.quickDialog.content = this.l10n.getConstant('editContent');\n this.quickDialog.header = this.l10n.getConstant(this.parent.currentAction === 'Delete' ? 'deleteTitle' : 'editTitle');\n this.quickDialogClass('Recurrence');\n this.showQuickDialog('RecurrenceAlert');\n };\n QuickPopups.prototype.openRecurrenceValidationAlert = function (type) {\n this.quickDialogClass('Alert');\n var okButton = this.quickDialog.element.querySelector('.' + cls.QUICK_DIALOG_ALERT_OK);\n okButton.innerHTML = this.l10n.getConstant('ok');\n okButton.setAttribute('aria-label', okButton.innerHTML);\n var cancelButton = this.quickDialog.element.querySelector('.' + cls.QUICK_DIALOG_ALERT_CANCEL);\n cancelButton.innerHTML = this.l10n.getConstant('cancel');\n cancelButton.setAttribute('aria-label', cancelButton.innerHTML);\n this.quickDialog.header = this.l10n.getConstant('alert');\n var dialogCancel;\n switch (type) {\n case 'wrongPattern':\n addClass([cancelButton], cls.DISABLE_CLASS);\n this.quickDialog.content = this.l10n.getConstant('wrongPattern');\n break;\n case 'createError':\n addClass([cancelButton], cls.DISABLE_CLASS);\n this.quickDialog.content = this.l10n.getConstant('createError');\n break;\n case 'sameDayAlert':\n addClass([cancelButton], cls.DISABLE_CLASS);\n this.quickDialog.content = this.l10n.getConstant('sameDayAlert');\n break;\n case 'seriesChangeAlert':\n dialogCancel = this.quickDialog.element.querySelector('.' + cls.QUICK_DIALOG_CANCEL_CLASS);\n removeClass([cancelButton, dialogCancel], cls.DISABLE_CLASS);\n this.quickDialog.content = this.l10n.getConstant('seriesChangeAlert');\n okButton.innerHTML = this.l10n.getConstant('yes');\n cancelButton.innerHTML = this.l10n.getConstant('no');\n dialogCancel.innerHTML = this.l10n.getConstant('cancel');\n break;\n case 'occurrenceAlert':\n addClass([cancelButton], cls.DISABLE_CLASS);\n this.quickDialog.content = this.l10n.getConstant('occurenceAlert');\n break;\n }\n if ((!this.parent.enableRecurrenceValidation && type === 'wrongPattern') || this.parent.enableRecurrenceValidation) {\n this.showQuickDialog('RecurrenceValidationAlert');\n }\n };\n QuickPopups.prototype.openDeleteAlert = function () {\n if (this.parent.activeViewOptions.readonly) {\n return;\n }\n var okButton = this.quickDialog.element.querySelector('.' + cls.QUICK_DIALOG_ALERT_OK);\n if (okButton) {\n okButton.innerHTML = this.l10n.getConstant('delete');\n okButton.setAttribute('aria-label', okButton.innerHTML);\n }\n var cancelButton = this.quickDialog.element.querySelector('.' + cls.QUICK_DIALOG_ALERT_CANCEL);\n if (cancelButton) {\n cancelButton.innerHTML = this.l10n.getConstant('cancel');\n cancelButton.setAttribute('aria-label', cancelButton.innerHTML);\n }\n this.quickDialog.content = (this.parent.activeEventData.event.length > 1) ?\n this.l10n.getConstant('deleteMultipleContent') : this.l10n.getConstant('deleteContent');\n this.quickDialog.header = (this.parent.activeEventData.event.length > 1) ?\n this.l10n.getConstant('deleteMultipleEvent') : this.l10n.getConstant('deleteEvent');\n this.quickDialogClass('Delete');\n this.showQuickDialog('DeleteAlert');\n };\n QuickPopups.prototype.openValidationError = function (type, eventData) {\n this.quickDialog.header = this.l10n.getConstant('alert');\n this.quickDialog.content = this.l10n.getConstant(type);\n var okButton = this.quickDialog.element.querySelector('.' + cls.QUICK_DIALOG_ALERT_OK);\n if (okButton) {\n okButton.innerHTML = this.l10n.getConstant('ok');\n okButton.setAttribute('aria-label', okButton.innerHTML);\n }\n var cancelButton = this.quickDialog.element.querySelector('.' + cls.QUICK_DIALOG_ALERT_CANCEL);\n if (cancelButton) {\n cancelButton.innerHTML = this.l10n.getConstant('cancel');\n okButton.setAttribute('aria-label', cancelButton.innerHTML);\n }\n this.quickDialogClass('Alert');\n this.showQuickDialog('ValidationAlert', eventData);\n };\n QuickPopups.prototype.showQuickDialog = function (popupType, eventData) {\n var _this = this;\n this.quickDialog.dataBind();\n var eventProp = {\n type: popupType, cancel: false, element: this.quickDialog.element,\n data: extend({}, (eventData || this.parent.activeEventData.event), null, true)\n };\n this.parent.trigger(event.popupOpen, eventProp, function (popupArgs) {\n if (!popupArgs.cancel) {\n _this.quickDialog.show();\n }\n });\n };\n QuickPopups.prototype.createMoreEventList = function (eventCollection, groupOrder, groupIndex) {\n var _this = this;\n var fields = this.parent.eventFields;\n var moreEventContentEle = createElement('div', { className: cls.MORE_EVENT_CONTENT_CLASS });\n var moreEventWrapperEle = createElement('div', { className: cls.MORE_EVENT_WRAPPER_CLASS });\n if (eventCollection.length === 0) {\n moreEventWrapperEle = createElement('div', {\n className: cls.MORE_EVENT_CONTENT_CLASS,\n innerHTML: this.l10n.getConstant('emptyContainer')\n });\n }\n else {\n var _loop_1 = function (eventData) {\n var eventText = (eventData[fields.subject] || this_1.parent.eventSettings.fields.subject.default\n || this_1.parent.localeObj.getConstant('addTitle'));\n var appointmentElement = createElement('div', {\n className: cls.APPOINTMENT_CLASS,\n attrs: {\n 'data-id': '' + eventData[fields.id],\n 'data-guid': eventData.Guid, 'role': 'button', 'tabindex': '0',\n 'aria-disabled': this_1.parent.eventBase.getReadonlyAttribute(eventData),\n 'aria-label': this_1.parent.getAnnouncementString(eventData)\n }\n });\n var templateElement = void 0;\n if (!isNullOrUndefined(this_1.parent.activeViewOptions.eventTemplate)) {\n var tempId = this_1.parent.element.id + '_' + this_1.parent.activeViewOptions.eventTemplateName + 'eventTemplate';\n templateElement = this_1.parent.getAppointmentTemplate()(eventData, this_1.parent, 'eventTemplate', tempId, false);\n append(templateElement, appointmentElement);\n }\n else {\n appointmentElement.appendChild(createElement('div', { className: cls.SUBJECT_CLASS }));\n this_1.parent.sanitize(eventText, appointmentElement.firstElementChild);\n }\n if (!isNullOrUndefined(groupIndex)) {\n appointmentElement.setAttribute('data-group-index', groupIndex);\n }\n if (!isNullOrUndefined(eventData[fields.recurrenceRule])) {\n var iconClass = (eventData[fields.id] === eventData[fields.recurrenceID]) ?\n cls.EVENT_RECURRENCE_ICON_CLASS : cls.EVENT_RECURRENCE_EDIT_ICON_CLASS;\n appointmentElement.appendChild(createElement('div', { className: cls.ICON + ' ' + iconClass }));\n }\n var args = {\n data: extend({}, eventData, null, true),\n element: appointmentElement, cancel: false\n };\n this_1.parent.trigger(event.eventRendered, args, function (eventArgs) {\n if (!eventArgs.cancel) {\n moreEventWrapperEle.appendChild(appointmentElement);\n var isPreventCrud = _this.parent.isAdaptive || _this.parent.currentView === 'Year';\n _this.parent.eventBase.wireAppointmentEvents(appointmentElement, eventData, isPreventCrud);\n _this.parent.eventBase.applyResourceColor(appointmentElement, eventData, 'backgroundColor', groupOrder);\n }\n });\n };\n var this_1 = this;\n for (var _i = 0, eventCollection_1 = eventCollection; _i < eventCollection_1.length; _i++) {\n var eventData = eventCollection_1[_i];\n _loop_1(eventData);\n }\n }\n moreEventContentEle.appendChild(moreEventWrapperEle);\n return moreEventContentEle;\n };\n QuickPopups.prototype.tapHoldEventPopup = function (e) {\n var target = closest(e.target, '.' + cls.APPOINTMENT_CLASS);\n this.isMultipleEventSelect = false;\n this.parent.selectedElements = [];\n this.isMultipleEventSelect = true;\n this.parent.eventBase.getSelectedEventElements(target);\n this.parent.activeEventData = this.parent.eventBase.getSelectedEvents();\n var guid = target.getAttribute('data-guid');\n var eventObj = this.parent.eventBase.getEventByGuid(guid);\n if (isNullOrUndefined(eventObj)) {\n return;\n }\n var eventTitle = (eventObj[this.parent.eventFields.subject] || this.l10n.getConstant('noTitle'));\n var eventTemplate = \"
      \" +\n (\"\") +\n (\"
      \" + eventTitle + \"
      \") +\n (\"\") +\n (\"
      \");\n this.quickPopup.element.innerHTML = eventTemplate;\n var closeIcon = this.quickPopup.element.querySelector('.' + cls.CLOSE_CLASS);\n this.renderButton('e-flat e-round e-small', cls.ICON + ' ' + cls.CLOSE_ICON_CLASS, false, closeIcon, this.closeClick);\n var readonly = this.parent.activeViewOptions.readonly || eventObj[this.parent.eventFields.isReadonly];\n var editAction = !this.parent.eventSettings.allowEditing || readonly;\n var deleteAction = !this.parent.eventSettings.allowDeleting || readonly;\n var editIcon = this.quickPopup.element.querySelector('.' + cls.EDIT_CLASS);\n if (editIcon) {\n this.renderButton('e-flat e-round e-small', cls.ICON + ' ' + cls.EDIT_ICON_CLASS, editAction, editIcon, this.editClick);\n }\n var deleteIcon = this.quickPopup.element.querySelector('.' + cls.DELETE_CLASS);\n if (deleteIcon) {\n this.renderButton('e-flat e-round e-small', cls.ICON + ' ' + cls.DELETE_ICON_CLASS, deleteAction, deleteIcon, this.deleteClick);\n }\n this.beforeQuickPopupOpen(target, this.parent.eventBase.getPageCoordinates(e));\n };\n QuickPopups.prototype.isCellBlocked = function (args) {\n var tempObj = {};\n tempObj[this.parent.eventFields.startTime] = this.parent.activeCellsData.startTime;\n tempObj[this.parent.eventFields.endTime] = this.parent.activeCellsData.endTime;\n tempObj[this.parent.eventFields.isAllDay] = this.parent.activeCellsData.isAllDay;\n if (this.parent.activeViewOptions.group.resources.length > 0) {\n var targetCell = args.element instanceof Array ? args.element[0] : args.element;\n var groupIndex = parseInt(targetCell.getAttribute('data-group-index'), 10);\n this.parent.resourceBase.setResourceValues(tempObj, isNaN(groupIndex) ? null : groupIndex);\n }\n return this.parent.eventBase.isBlockRange(tempObj);\n };\n QuickPopups.prototype.cellClick = function (args) {\n var date = new Date(args.startTime.getTime());\n if (!this.parent.showQuickInfo || !this.parent.eventSettings.allowAdding ||\n this.parent.currentView === 'MonthAgenda' || this.isCellBlocked(args) ||\n !this.parent.isMinMaxDate(new Date(date.setHours(0, 0, 0, 0)))) {\n this.quickPopupHide();\n return;\n }\n var targetEle = !isNullOrUndefined(args.event) ? args.event.target : args.element;\n if (this.parent.isAdaptive) {\n this.quickPopupHide();\n var newEventClone = this.parent.element.querySelector('.' + cls.NEW_EVENT_CLASS);\n if (isNullOrUndefined(newEventClone)) {\n newEventClone = createElement('div', {\n className: cls.NEW_EVENT_CLASS,\n innerHTML: \"
      + \" + this.l10n.getConstant('newEvent') + \"
      \"\n });\n }\n var targetCell = closest(targetEle, '.' + cls.WORK_CELLS_CLASS + ',.' + cls.ALLDAY_CELLS_CLASS);\n if (targetCell) {\n targetCell.appendChild(newEventClone);\n }\n return;\n }\n var target = closest(targetEle, '.' + cls.WORK_CELLS_CLASS + ',.' + cls.ALLDAY_CELLS_CLASS + ',.' +\n cls.HEADER_CELLS_CLASS);\n if (isNullOrUndefined(target) || targetEle.classList.contains(cls.MORE_INDICATOR_CLASS)) {\n return;\n }\n var isSameTarget = this.quickPopup.relateTo === target;\n if (isSameTarget && this.quickPopup.element.classList.contains(cls.POPUP_OPEN)) {\n var subjectElement_1 = this.quickPopup.element.querySelector('.' + cls.SUBJECT_CLASS);\n if (subjectElement_1) {\n subjectElement_1.focus();\n }\n return;\n }\n else if (this.quickPopup.element) {\n this.destroyPopupButtons('quickPopup');\n }\n var temp = {};\n temp[this.parent.eventFields.startTime] = this.parent.activeCellsData.startTime;\n temp[this.parent.eventFields.endTime] = this.parent.activeCellsData.endTime;\n temp[this.parent.eventFields.isAllDay] = this.parent.activeCellsData.isAllDay;\n var quickCellPopup = createElement('div', { className: cls.CELL_POPUP_CLASS });\n quickCellPopup.appendChild(this.getPopupHeader('Cell', temp));\n quickCellPopup.appendChild(this.getPopupContent('Cell', args, temp));\n quickCellPopup.appendChild(this.getPopupFooter('Cell', temp));\n var subjectElement = quickCellPopup.querySelector('.' + cls.SUBJECT_CLASS);\n if (subjectElement) {\n Input.createInput({ element: subjectElement, properties: { placeholder: this.l10n.getConstant('addTitle') } });\n }\n if (!isNullOrUndefined(this.parent.eventSettings.fields.subject.default)) {\n subjectElement.value = this.parent.eventSettings.fields.subject.default;\n }\n var closeIcon = quickCellPopup.querySelector('.' + cls.CLOSE_CLASS);\n if (closeIcon) {\n this.renderButton('e-flat e-round e-small', cls.ICON + ' ' + cls.CLOSE_ICON_CLASS, false, closeIcon, this.popupClose);\n }\n var moreButton = quickCellPopup.querySelector('.' + cls.QUICK_POPUP_EVENT_DETAILS_CLASS);\n if (moreButton) {\n this.renderButton('e-flat', '', false, moreButton, this.detailsClick);\n }\n var saveButton = quickCellPopup.querySelector('.' + cls.EVENT_CREATE_CLASS);\n if (saveButton) {\n this.renderButton('e-flat e-primary', '', this.parent.activeViewOptions.readonly, saveButton, this.saveClick);\n }\n if (this.morePopup) {\n this.morePopup.hide();\n }\n this.quickPopup.content = quickCellPopup;\n this.quickPopup.relateTo = target;\n this.quickPopup.dataBind();\n this.beforeQuickPopupOpen(target, this.parent.eventBase.getPageCoordinates(args.event));\n };\n QuickPopups.prototype.isSameEventClick = function (events) {\n var isSameTarget = this.quickPopup.relateTo === closest(events.element, '.' + cls.APPOINTMENT_CLASS);\n if (isSameTarget && this.quickPopup.element.classList.contains(cls.POPUP_OPEN)) {\n var editIcon = this.quickPopup.element.querySelector('.' + cls.EDIT_CLASS);\n if (editIcon) {\n editIcon.focus();\n }\n if (!this.parent.isAdaptive) {\n var editButton = this.quickPopup.element.querySelector('.' + cls.EDIT_EVENT_CLASS);\n if (editButton) {\n editButton.focus();\n }\n }\n return true;\n }\n return false;\n };\n QuickPopups.prototype.isQuickTemplate = function (type) {\n return this.parent.quickInfoTemplates.templateType === 'Both' || this.parent.quickInfoTemplates.templateType === type;\n };\n QuickPopups.prototype.eventClick = function (events) {\n if (this.parent.eventTooltip) {\n this.parent.eventTooltip.close();\n }\n if (!this.parent.showQuickInfo) {\n return;\n }\n if (this.parent.isAdaptive && this.isMultipleEventSelect) {\n this.updateTapHoldEventPopup(closest(events.element, '.' + cls.APPOINTMENT_CLASS));\n }\n else {\n var isSameTarget = this.isSameEventClick(events);\n this.parent.selectedElements = [];\n if (isSameTarget) {\n return;\n }\n else if (this.quickPopup.element) {\n this.destroyPopupButtons('quickPopup');\n }\n var eventData = events.event;\n var quickEventPopup = createElement('div', { className: cls.EVENT_POPUP_CLASS });\n quickEventPopup.appendChild(this.getPopupHeader('Event', eventData));\n quickEventPopup.appendChild(this.getPopupContent('Event', events, eventData));\n quickEventPopup.appendChild(this.getPopupFooter('Event', eventData));\n var readonly = this.parent.activeViewOptions.readonly || eventData[this.parent.eventFields.isReadonly];\n var editAction = !this.parent.eventSettings.allowEditing || readonly;\n var deleteAction = !this.parent.eventSettings.allowDeleting || readonly;\n var editIcon = quickEventPopup.querySelector('.' + cls.EDIT_CLASS);\n var buttonClass = 'e-flat e-round e-small';\n if (editIcon) {\n this.renderButton(buttonClass, cls.ICON + ' ' + cls.EDIT_ICON_CLASS, editAction, editIcon, this.editClick);\n }\n var deleteIcon = quickEventPopup.querySelector('.' + cls.DELETE_CLASS);\n if (deleteIcon) {\n this.renderButton(buttonClass, cls.ICON + ' ' + cls.DELETE_ICON_CLASS, deleteAction, deleteIcon, this.deleteClick);\n }\n var closeIcon = quickEventPopup.querySelector('.' + cls.CLOSE_CLASS);\n if (closeIcon) {\n this.renderButton(buttonClass, cls.ICON + ' ' + cls.CLOSE_ICON_CLASS, false, closeIcon, this.popupClose);\n }\n var editButton = quickEventPopup.querySelector('.' + cls.EDIT_EVENT_CLASS);\n if (editButton) {\n this.renderButton('e-flat e-primary', '', editAction, editButton, this.editClick);\n }\n var deleteButton = quickEventPopup.querySelector('.' + cls.DELETE_EVENT_CLASS);\n if (deleteButton) {\n this.renderButton('e-flat', '', deleteAction, deleteButton, this.deleteClick);\n }\n if (this.morePopup && !closest(events.element, '.' + cls.MORE_EVENT_WRAPPER_CLASS)) {\n this.morePopup.hide();\n }\n this.quickPopup.content = quickEventPopup;\n this.quickPopup.relateTo = this.parent.isAdaptive ? document.body :\n closest(events.element, '.' + cls.APPOINTMENT_CLASS);\n this.quickPopup.dataBind();\n this.beforeQuickPopupOpen(events.element, this.parent.eventBase.getPageCoordinates(events.originalEvent));\n }\n };\n QuickPopups.prototype.getPopupHeader = function (headerType, headerData) {\n var headerTemplate = createElement('div', { className: cls.POPUP_HEADER_CLASS });\n if (this.isQuickTemplate(headerType) && this.parent.quickInfoTemplates.header) {\n var headerArgs = extend({}, headerData, { elementType: headerType.toLowerCase() }, true);\n var templateId = this.parent.element.id;\n var headerTemp = [].slice.call(this.parent.getQuickInfoTemplatesHeader()(headerArgs, this.parent, 'header', templateId + '_headerTemplate', false));\n append([].slice.call(headerTemp), headerTemplate);\n }\n else {\n var header = void 0;\n var args = void 0;\n switch (headerType) {\n case 'Cell':\n header = \"
      \");\n break;\n case 'Event':\n args = this.getFormattedString(headerData);\n header = \"
      \" +\n (\"\") +\n (\"\") +\n (\"
      \") +\n (\"
      \");\n break;\n }\n var templateWrapper = createElement('div', { innerHTML: header });\n if (headerType === 'Event') {\n var subjectText = templateWrapper.querySelector('.' + cls.SUBJECT_CLASS);\n this.parent.sanitize(args.eventSubject, subjectText);\n }\n append([].slice.call(templateWrapper.childNodes), headerTemplate);\n }\n return headerTemplate;\n };\n QuickPopups.prototype.getPopupContent = function (type, args, data) {\n var contentTemplate = createElement('div', { className: cls.POPUP_CONTENT_CLASS });\n if (this.isQuickTemplate(type) && this.parent.quickInfoTemplates.content) {\n var contentArgs = extend({}, data, { elementType: type.toLowerCase() }, true);\n var templateId = this.parent.element.id;\n var contentTemp = [].slice.call(this.parent.getQuickInfoTemplatesContent()(contentArgs, this.parent, 'content', templateId + '_contentTemplate', false));\n append([].slice.call(contentTemp), contentTemplate);\n }\n else {\n var content = void 0;\n var cellDetails = void 0;\n var argsData = void 0;\n var resourceText = this.getResourceText(args, type.toLowerCase());\n switch (type) {\n case 'Cell':\n cellDetails = this.getFormattedString(data);\n content = \"
      A
      A
      \") +\n (\"
      \" + cellDetails.details + \"
      \") +\n ((this.parent.activeViewOptions.group.resources.length > 0 ? \"
      \" +\n (\"
      \") : '') + \"
      \");\n break;\n case 'Event':\n argsData = this.getFormattedString(data);\n content = '
      ' + argsData.details + '
      ';\n if (data[this.parent.eventFields.recurrenceRule]) {\n content += '
      ' +\n this.getRecurrenceSummary(data) + '
      ';\n }\n content += '
      ';\n if (data[this.parent.eventFields.location]) {\n content += '
      ';\n }\n if (data[this.parent.eventFields.startTimezone] || data[this.parent.eventFields.endTimezone]) {\n content += '
      ' +\n this.getTimezone(data) + '
      ';\n }\n if (data[this.parent.eventFields.description]) {\n content += '
      ';\n }\n if (this.parent.resourceCollection.length > 0) {\n content += '
      ';\n }\n break;\n }\n var templateWrapper = createElement('div', { innerHTML: content });\n if (data[this.parent.eventFields.location]) {\n var locationDetails = templateWrapper.querySelector('.' + cls.LOCATION_DETAILS_CLASS);\n if (!isNullOrUndefined(locationDetails)) {\n this.parent.sanitize(data[this.parent.eventFields.location], locationDetails);\n }\n }\n if (data[this.parent.eventFields.description]) {\n var descriptionDetails = templateWrapper.querySelector('.' + cls.DESCRIPTION_DETAILS_CLASS);\n if (!isNullOrUndefined(descriptionDetails)) {\n this.parent.sanitize(data[this.parent.eventFields.description], descriptionDetails);\n }\n }\n if (resourceText) {\n var resourceDetails = templateWrapper.querySelector('.' + cls.RESOURCE_DETAILS_CLASS);\n if (!isNullOrUndefined(resourceDetails)) {\n this.parent.sanitize(resourceText, resourceDetails);\n }\n }\n append([].slice.call(templateWrapper.childNodes), contentTemplate);\n }\n return contentTemplate;\n };\n QuickPopups.prototype.getPopupFooter = function (footerType, footerData) {\n var footerTemplate = createElement('div', { className: cls.POPUP_FOOTER_CLASS });\n if (this.isQuickTemplate(footerType) && this.parent.quickInfoTemplates.footer) {\n var footerArgs = extend({}, footerData, { elementType: footerType.toLowerCase() }, true);\n var templateId = this.parent.element.id;\n var footerTemp = [].slice.call(this.parent.getQuickInfoTemplatesFooter()(footerArgs, this.parent, 'footer', templateId + '_footerTemplate', false));\n append([].slice.call(footerTemp), footerTemplate);\n }\n else {\n var footer = void 0;\n switch (footerType) {\n case 'Cell':\n footer = \"\") +\n (\"\");\n break;\n case 'Event':\n footer = \"\" + (this.parent.isAdaptive ? '' : \"\") +\n (\"\"));\n break;\n }\n var templateWrapper = createElement('div', { innerHTML: footer });\n append([].slice.call(templateWrapper.childNodes), footerTemplate);\n }\n return footerTemplate;\n };\n QuickPopups.prototype.getResourceText = function (args, type) {\n if (this.parent.resourceCollection.length === 0) {\n return null;\n }\n var resourceValue = '';\n if (this.parent.activeViewOptions.group.resources.length === 0) {\n var resourceCollection_1 = this.parent.resourceBase.resourceCollection.slice(-1)[0];\n var resourceData = resourceCollection_1.dataSource;\n if (type === 'event') {\n var eventData = args.event;\n var _loop_2 = function (data) {\n var resourceId = eventData[resourceCollection_1.field];\n if (resourceId instanceof Array) {\n if (resourceId.indexOf(data[resourceCollection_1.idField]) > -1) {\n var id_1 = resourceId[resourceId.indexOf(data[resourceCollection_1.idField])];\n var resource = resourceData.filter(function (e) {\n return e[resourceCollection_1.idField] === id_1;\n })[0];\n resourceValue += (resourceValue === '') ? resource[resourceCollection_1.textField] :\n ', ' + resource[resourceCollection_1.textField];\n }\n }\n else if (data[resourceCollection_1.idField] === resourceId) {\n resourceValue = data[resourceCollection_1.textField].toString();\n }\n };\n for (var _i = 0, resourceData_1 = resourceData; _i < resourceData_1.length; _i++) {\n var data = resourceData_1[_i];\n _loop_2(data);\n }\n }\n else {\n resourceValue = resourceData[0][resourceCollection_1.textField].toString();\n }\n }\n else {\n if (type === 'event') {\n var eventData = args.event;\n var resourceData = void 0;\n var lastResource_1;\n for (var i = this.parent.resourceBase.resourceCollection.length - 1; i >= 0; i--) {\n resourceData = eventData[this.parent.resourceBase.resourceCollection[parseInt(i.toString(), 10)].field];\n if (!isNullOrUndefined(resourceData)) {\n lastResource_1 = this.parent.resourceBase.resourceCollection[parseInt(i.toString(), 10)];\n break;\n }\n }\n if (!Array.isArray(resourceData)) {\n resourceData = [resourceData];\n }\n var resNames_1 = [];\n var lastResourceData_1 = lastResource_1.dataSource;\n resourceData.forEach(function (value) {\n var text;\n var i = util.findIndexInData(lastResourceData_1, lastResource_1.idField, value);\n if (i > -1) {\n text = lastResourceData_1[parseInt(i.toString(), 10)][lastResource_1.textField];\n }\n if (text) {\n resNames_1.push(text);\n }\n });\n resourceValue = resNames_1.join(', ');\n }\n else {\n var argsData = args;\n var groupIndex = !isNullOrUndefined(argsData.groupIndex) ? argsData.groupIndex : 0;\n var resourceDetails = this.parent.resourceBase.lastResourceLevel[parseInt(groupIndex.toString(), 10)];\n resourceValue = resourceDetails.resourceData[resourceDetails.resource.textField];\n }\n }\n return resourceValue;\n };\n QuickPopups.prototype.getFormattedString = function (eventData) {\n var fields = this.parent.eventFields;\n var eventSubject = (eventData[fields.subject] || this.l10n.getConstant('noTitle'));\n var startDate = eventData[fields.startTime];\n var endDate = eventData[fields.endTime];\n var startDateDetails = this.getDateFormat(startDate, 'long');\n var endDateDetails = (eventData[fields.isAllDay] && endDate.getHours() === 0 && endDate.getMinutes() === 0) ?\n this.getDateFormat(util.addDays(new Date(endDate.getTime()), -1), 'long') :\n this.getDateFormat(endDate, 'long');\n var startTimeDetail = this.parent.getTimeString(startDate);\n var endTimeDetail = this.parent.getTimeString(endDate);\n var details = '';\n var spanLength = endDate.getDate() !== startDate.getDate() &&\n (endDate.getTime() - startDate.getTime()) / (60 * 60 * 1000) < 24 ? 1 : 0;\n if (eventData[fields.isAllDay]) {\n details = startDateDetails + ' (' + this.l10n.getConstant('allDay') + ')';\n if (((util.getUniversalTime(endDate) - util.getUniversalTime(startDate)) / util.MS_PER_DAY) > 1) {\n details += ' - ' + endDateDetails + ' (' + this.l10n.getConstant('allDay') + ')';\n }\n }\n else if ((((util.getUniversalTime(endDate) - util.getUniversalTime(startDate)) / util.MS_PER_DAY) >= 1) || spanLength > 0) {\n details = startDateDetails + ' (' + startTimeDetail + ')' + ' - ' + endDateDetails + ' (' + endTimeDetail + ')';\n }\n else {\n details = startDateDetails + ' (' + (startTimeDetail + ' - ' + endTimeDetail) + ')';\n }\n return { eventSubject: eventSubject, details: details };\n };\n QuickPopups.prototype.moreEventClick = function (data, endDate, groupIndex) {\n var _this = this;\n this.quickPopupHide(true);\n var moreEventContentEle = this.morePopup.element.querySelector('.' + cls.MORE_EVENT_CONTENT_CLASS);\n if (moreEventContentEle) {\n remove(moreEventContentEle);\n }\n var selectedDate = ((data.date).getTime()).toString();\n var target = closest(data.element, '.' + cls.MORE_INDICATOR_CLASS + ',.' + cls.WORK_CELLS_CLASS);\n var day = this.parent.globalize.formatDate(data.date, { format: 'E', calendar: this.parent.getCalendarMode() });\n this.morePopup.element.querySelector('.' + cls.MORE_EVENT_HEADER_DAY_CLASS).innerHTML = util.capitalizeFirstWord(day, 'single');\n var dateElement = this.morePopup.element.querySelector('.' + cls.MORE_EVENT_HEADER_DATE_CLASS);\n dateElement.innerHTML = this.getDateFormat(data.date, 'd');\n dateElement.setAttribute('data-date', selectedDate);\n dateElement.setAttribute('data-end-date', endDate.getTime().toString());\n var groupOrder;\n if (!isNullOrUndefined(groupIndex)) {\n dateElement.setAttribute('data-group-index', groupIndex);\n groupOrder = this.parent.resourceBase.lastResourceLevel[parseInt(groupIndex, 10)].groupOrder;\n }\n var moreEventElements = this.createMoreEventList(data.event, groupOrder, groupIndex);\n this.morePopup.element.querySelector('.' + cls.MORE_EVENT_POPUP_CLASS).appendChild(moreEventElements);\n removeClass(this.morePopup.element.querySelector('.' + cls.MORE_EVENT_DATE_HEADER_CLASS).childNodes, cls.CURRENTDATE_CLASS);\n if (util.resetTime(data.date).getTime() === util.resetTime(this.parent.getCurrentTime()).getTime()) {\n addClass(this.morePopup.element.querySelector('.' + cls.MORE_EVENT_DATE_HEADER_CLASS).childNodes, cls.CURRENTDATE_CLASS);\n }\n if (!this.parent.isAdaptive) {\n if (this.parent.currentView.indexOf('Timeline') !== -1) {\n var gIndex = target.getAttribute('data-group-index');\n var startDate = new Date(parseInt(target.getAttribute('data-start-date'), 10));\n startDate.setHours(startDate.getHours(), startDate.getMinutes(), 0);\n var tdDate = startDate.getTime().toString();\n if (isNullOrUndefined(gIndex)) {\n this.morePopup.relateTo = this.parent.element.querySelector('.' + cls.CONTENT_WRAP_CLASS +\n ' tbody tr td[data-date=\"' + tdDate + '\"]');\n }\n else {\n this.morePopup.relateTo = this.parent.element.querySelector('.' + cls.CONTENT_WRAP_CLASS +\n ' tbody tr td[data-group-index=\"' + gIndex + '\"][data-date=\"' + tdDate + '\"]');\n if (isNullOrUndefined(this.morePopup.relateTo)) {\n var workCells = [].slice.call(this.parent.element.querySelectorAll('.' + cls.CONTENT_WRAP_CLASS +\n ' tbody tr td[data-group-index=\"' + gIndex + '\"]'));\n for (var i = 0; i < workCells.length; i++) {\n var date = workCells[parseInt(i.toString(), 10)].getAttribute('data-date');\n if (date < tdDate) {\n this.morePopup.relateTo = workCells[parseInt(i.toString(), 10)];\n }\n }\n }\n }\n }\n else {\n this.morePopup.relateTo = closest(target, '.' + cls.WORK_CELLS_CLASS);\n }\n }\n this.parent.renderTemplates(function () {\n var eventProp = {\n type: 'EventContainer', cancel: false,\n element: _this.morePopup.element, data: data\n };\n _this.parent.trigger(event.popupOpen, eventProp, function (popupArgs) {\n if (!popupArgs.cancel) {\n _this.morePopup.show();\n }\n });\n });\n };\n QuickPopups.prototype.saveClick = function (event) {\n this.applyFormValidation();\n this.dialogEvent = event;\n this.isCrudAction = true;\n this.quickPopupHide();\n };\n QuickPopups.prototype.detailsClick = function (event) {\n var subjectEle = this.quickPopup.element.querySelector('.' + cls.SUBJECT_CLASS);\n if (subjectEle && subjectEle.value !== '') {\n extend(this.parent.activeCellsData, { subject: subjectEle.value });\n }\n this.dialogEvent = event;\n this.isCrudAction = false;\n this.fieldValidator.destroyToolTip();\n this.quickPopupHide();\n this.parent.eventWindow.openEditor(this.parent.activeCellsData, 'Add');\n };\n QuickPopups.prototype.editClick = function (event) {\n this.dialogEvent = event;\n this.quickPopupHide(true);\n var data = this.parent.activeEventData.event;\n this.parent.currentAction = 'EditSeries';\n if (!isNullOrUndefined(data[this.parent.eventFields.recurrenceRule])) {\n this.parent.currentAction = 'EditOccurrence';\n this.openRecurrenceAlert();\n }\n else {\n this.parent.eventWindow.openEditor(data, this.parent.currentAction);\n }\n };\n QuickPopups.prototype.deleteClick = function (event) {\n this.dialogEvent = event;\n this.quickPopupHide(true);\n this.parent.currentAction = 'Delete';\n if (this.parent.activeEventData.event[this.parent.eventFields.recurrenceRule]) {\n this.openRecurrenceAlert();\n }\n else {\n this.openDeleteAlert();\n }\n };\n QuickPopups.prototype.updateMoreEventContent = function () {\n if (this.morePopup.element.classList.contains('e-popup-close')) {\n return;\n }\n var moreEventContentEle = this.morePopup.element.querySelector('.' + cls.MORE_EVENT_CONTENT_CLASS);\n if (moreEventContentEle) {\n remove(moreEventContentEle);\n }\n var dateElement = this.morePopup.element.querySelector('.' + cls.MORE_EVENT_HEADER_DATE_CLASS);\n var startDate = new Date(parseInt(dateElement.getAttribute('data-date'), 10));\n var endDate = new Date(parseInt(dateElement.getAttribute('data-end-date'), 10));\n var groupIndex = dateElement.getAttribute('data-group-index');\n var data;\n var groupOrder;\n if (!isNullOrUndefined(groupIndex)) {\n data = this.parent.resourceBase.lastResourceLevel[parseInt(groupIndex, 10)];\n groupOrder = data.groupOrder;\n }\n var events = this.parent.eventBase.filterEvents(startDate, endDate, this.parent.eventsProcessed, data);\n var moreElement = this.createMoreEventList(events, groupOrder, groupIndex);\n this.morePopup.element.querySelector('.' + cls.MORE_EVENT_POPUP_CLASS).appendChild(moreElement);\n };\n QuickPopups.prototype.closeClick = function (event) {\n this.dialogEvent = event;\n if (this.parent.currentView === 'Year' && this.parent.activeCellsData && this.parent.activeCellsData.element) {\n this.parent.selectCell(this.parent.activeCellsData.element);\n }\n this.quickPopupHide();\n this.morePopup.hide();\n };\n QuickPopups.prototype.dialogButtonClick = function (event) {\n this.dialogEvent = event;\n this.quickDialog.hide();\n var target = event.target;\n var cancelBtn = this.quickDialog.element.querySelector('.' + cls.QUICK_DIALOG_ALERT_CANCEL);\n var eventData = this.parent.activeEventData.event;\n if (target.classList.contains(cls.QUICK_DIALOG_OCCURRENCE_CLASS)) {\n this.parent.currentAction = (this.parent.currentAction === 'Delete') ? 'DeleteOccurrence' : 'EditOccurrence';\n switch (this.parent.currentAction) {\n case 'EditOccurrence':\n this.parent.eventWindow.openEditor(eventData, this.parent.currentAction);\n break;\n case 'DeleteOccurrence':\n this.parent.crudModule.deleteEvent(eventData, this.parent.currentAction);\n break;\n }\n }\n else if (target.classList.contains(cls.QUICK_DIALOG_FOLLOWING_EVENTS_CLASS)) {\n this.parent.currentAction = (this.parent.currentAction === 'Delete') ? 'DeleteFollowingEvents' : 'EditFollowingEvents';\n switch (this.parent.currentAction) {\n case 'EditFollowingEvents':\n this.parent.eventWindow.openEditor(eventData, this.parent.currentAction);\n break;\n case 'DeleteFollowingEvents':\n this.parent.crudModule.deleteEvent(eventData, this.parent.currentAction);\n break;\n }\n }\n else if (target.classList.contains(cls.QUICK_DIALOG_SERIES_CLASS)) {\n this.parent.currentAction = (this.parent.currentAction === 'Delete') ? 'DeleteSeries' : 'EditSeries';\n switch (this.parent.currentAction) {\n case 'EditSeries':\n this.parent.eventWindow.openEditor(this.parent.eventBase.getParentEvent(eventData, true), this.parent.currentAction);\n break;\n case 'DeleteSeries':\n this.parent.crudModule.deleteEvent(eventData, this.parent.currentAction);\n break;\n }\n }\n else if (target.classList.contains(cls.QUICK_DIALOG_DELETE_CLASS)) {\n this.parent.crudModule.deleteEvent(eventData, this.parent.currentAction);\n }\n else if (!cancelBtn.classList.contains(cls.DISABLE_CLASS) && (target.classList.contains(cls.QUICK_DIALOG_ALERT_OK) ||\n (target.classList.contains(cls.QUICK_DIALOG_ALERT_CANCEL) && !cancelBtn.classList.contains(cls.QUICK_DIALOG_CANCEL_CLASS)))) {\n this.parent.uiStateValues.isIgnoreOccurrence = target.classList.contains(cls.QUICK_DIALOG_ALERT_CANCEL);\n this.parent.eventWindow.eventSave(event, this.l10n.getConstant('ok'));\n }\n };\n QuickPopups.prototype.updateTapHoldEventPopup = function (target) {\n var selectedElements = this.parent.eventBase.getSelectedEventElements(target);\n this.parent.activeEventData = this.parent.eventBase.getSelectedEvents();\n if (selectedElements.length > 0) {\n var eventObj = this.parent.eventBase.getEventByGuid(selectedElements[0].getAttribute('data-guid'));\n var titleContent = (selectedElements.length === 1) ?\n (eventObj[this.parent.eventFields.subject] || this.l10n.getConstant('noTitle')) :\n '(' + selectedElements.length + ')' + ' ' + this.l10n.getConstant('selectedItems');\n this.quickPopup.element.querySelector('.' + cls.SUBJECT_CLASS).innerHTML = titleContent;\n if (selectedElements.length > 1) {\n addClass([this.quickPopup.element.querySelector('.' + cls.EDIT_ICON_CLASS)], cls.HIDDEN_CLASS);\n }\n else {\n removeClass([this.quickPopup.element.querySelector('.' + cls.EDIT_ICON_CLASS)], cls.HIDDEN_CLASS);\n }\n }\n else {\n this.parent.selectedElements = [];\n this.quickPopupHide();\n }\n };\n QuickPopups.prototype.getTimezone = function (event) {\n var zoneDetails = '';\n zoneDetails += event[this.parent.eventFields.startTimezone] || '';\n zoneDetails += zoneDetails === '' ? '' : ' - ';\n zoneDetails += event[this.parent.eventFields.endTimezone] || '';\n return zoneDetails;\n };\n QuickPopups.prototype.getRecurrenceSummary = function (event) {\n var recurrenceEditor = this.parent.eventWindow.getRecurrenceEditorInstance();\n if (recurrenceEditor) {\n var ruleSummary = recurrenceEditor.getRuleSummary(event[this.parent.eventFields.recurrenceRule]);\n return ruleSummary.charAt(0).toUpperCase() + ruleSummary.slice(1);\n }\n return '';\n };\n QuickPopups.prototype.getDateFormat = function (date, skeletonString) {\n return util.capitalizeFirstWord(this.parent.globalize.formatDate(date, { skeleton: skeletonString, calendar: this.parent.getCalendarMode() }), 'single');\n };\n QuickPopups.prototype.getDataFromTarget = function (target) {\n if (target.classList.contains(cls.APPOINTMENT_CLASS)) {\n return this.parent.activeEventData.event;\n }\n // Deprecated cells data in quick popups\n var eventObj = {\n startTime: this.parent.activeCellsData.startTime,\n endTime: this.parent.activeCellsData.endTime,\n isAllDay: this.parent.activeCellsData.isAllDay,\n groupIndex: this.parent.activeCellsData.groupIndex\n };\n var cellsData = this.parent.activeCellsData;\n this.parent.eventWindow.convertToEventData(cellsData, eventObj);\n return eventObj;\n };\n QuickPopups.prototype.beforeQuickDialogClose = function (e) {\n var _this = this;\n var args = {\n event: e.event || this.dialogEvent,\n type: (isNullOrUndefined(this.parent.activeEventData.event)) ? 'ValidationAlert' :\n !isNullOrUndefined(this.parent.activeEventData.event[this.parent.eventFields.recurrenceRule])\n ? 'RecurrenceAlert' : 'DeleteAlert', cancel: false, data: this.parent.activeEventData.event,\n element: this.quickDialog.element\n };\n this.parent.trigger(event.popupClose, args, function (popupCloseArgs) {\n if (!popupCloseArgs.cancel) {\n _this.parent.eventBase.focusElement(true);\n }\n });\n };\n QuickPopups.prototype.beforeQuickPopupOpen = function (target, originalEvent) {\n var _this = this;\n this.parent.renderTemplates(function () {\n var isEventPopup = _this.quickPopup.element.querySelector('.' + cls.EVENT_POPUP_CLASS);\n var popupType = _this.parent.isAdaptive ? isEventPopup ? 'ViewEventInfo' : 'EditEventInfo' : 'QuickInfo';\n var eventProp = {\n type: popupType, cancel: false, data: extend({}, _this.getDataFromTarget(target), null, true),\n target: target, element: _this.quickPopup.element\n };\n _this.parent.trigger(event.popupOpen, eventProp, function (popupArgs) {\n if (popupArgs.cancel) {\n _this.quickPopupHide();\n _this.destroyPopupButtons('quickPopup');\n if (popupArgs.element.classList.contains(cls.POPUP_OPEN)) {\n _this.quickPopupClose();\n }\n util.removeChildren(_this.quickPopup.element);\n _this.isMultipleEventSelect = false;\n }\n else {\n var display = _this.quickPopup.element.style.display;\n _this.quickPopup.element.style.display = 'block';\n if (_this.parent.isAdaptive) {\n _this.quickPopup.element.removeAttribute('style');\n _this.quickPopup.element.style.display = 'block';\n _this.quickPopup.element.style.height = formatUnit((popupType === 'EditEventInfo') ? 65 : window.innerHeight);\n }\n else {\n var isVirtualScroll = _this.parent.virtualScrollModule && _this.parent.virtualScrollModule.isHorizontalScroll\n && !isNullOrUndefined(closest(target, '.' + cls.CONTENT_TABLE_CLASS));\n var conTable = _this.parent.element.querySelector('.' + cls.CONTENT_WRAP_CLASS + ' table');\n _this.quickPopup.offsetX = isVirtualScroll && !_this.parent.enableRtl ? (util.getTranslateX(conTable) + 10) : 10;\n _this.quickPopup.offsetY = _this.parent.virtualScrollModule && !_this.parent.virtualScrollModule.isHorizontalScroll ?\n _this.quickPopup.offsetY : 0;\n _this.quickPopup.collision = { X: _this.parent.enableRtl ? 'flip' : 'none', Y: 'fit' };\n _this.quickPopup.position = { X: _this.parent.enableRtl ? 'left' : 'right', Y: _this.parent.enableRtl ? 'bottom' : 'top' };\n _this.quickPopup.dataBind();\n _this.quickPopup.refreshPosition(null, true);\n var collide = isCollide(_this.quickPopup.element, _this.parent.element);\n if (collide.indexOf(_this.parent.enableRtl ? 'left' : 'right') > -1) {\n _this.quickPopup.offsetX = -target.offsetWidth - 10 - _this.quickPopup.element.offsetWidth;\n if (isVirtualScroll && !_this.parent.enableRtl) {\n _this.quickPopup.offsetX = util.getTranslateX(conTable) + _this.quickPopup.offsetX;\n }\n _this.quickPopup.dataBind();\n _this.quickPopup.refreshPosition(null, true);\n var leftCollide = isCollide(_this.quickPopup.element, _this.parent.element);\n if (leftCollide.indexOf('left') > -1) {\n _this.quickPopup.position = { X: 'center', Y: 'center' };\n _this.quickPopup.collision = { X: 'fit', Y: 'fit' };\n _this.quickPopup.offsetX = -(_this.quickPopup.element.offsetWidth / 2);\n _this.quickPopup.dataBind();\n }\n }\n if (_this.parent.virtualScrollModule && !_this.parent.virtualScrollModule.isHorizontalScroll && (collide.indexOf('top') > -1 || collide.indexOf('bottom') > -1)) {\n var translateY = util.getTranslateY(conTable);\n _this.quickPopup.offsetY = translateY;\n _this.quickPopup.dataBind();\n _this.quickPopup.refreshPosition(null, true);\n }\n if (_this.quickPopup.position.X === 'center' && _this.quickPopup.position.Y === 'center' && !isNullOrUndefined(originalEvent) &&\n originalEvent.clientX && originalEvent.clientY) {\n var clientX = originalEvent.clientX;\n var clientY = originalEvent.clientY;\n var targetRect = target.getBoundingClientRect();\n var offsetY = originalEvent.offsetY || Math.ceil(clientY - targetRect.y);\n var previousOffset = _this.quickPopup.offsetY;\n var collision = isCollide(_this.quickPopup.element, target);\n var popupRect = _this.quickPopup.element.getBoundingClientRect();\n var targetEle = document.elementFromPoint(clientX, clientY);\n if (collision.indexOf('top') > -1 || collision.indexOf('bottom') > -1 || closest(targetEle, '.' + cls.POPUP_WRAPPER_CLASS)) {\n if (popupRect.top <= clientY &&\n clientY <= popupRect.top + popupRect.height) {\n _this.quickPopup.offsetY = previousOffset - popupRect.height - 10;\n _this.quickPopup.dataBind();\n collision = isCollide(_this.quickPopup.element, _this.parent.element);\n if (collision.indexOf('top') > -1) {\n _this.quickPopup.offsetY = previousOffset + offsetY + 10;\n _this.quickPopup.dataBind();\n }\n }\n else if (isCollide(_this.quickPopup.element, _this.parent.element).indexOf('bottom') > -1) {\n _this.quickPopup.offsetY =\n previousOffset - offsetY - Math.ceil(popupRect.height) - 10;\n _this.quickPopup.dataBind();\n }\n }\n }\n }\n if (isEventPopup) {\n _this.applyEventColor();\n }\n _this.quickPopup.element.style.display = display;\n _this.quickPopup.dataBind();\n _this.quickPopup.show();\n }\n });\n });\n };\n QuickPopups.prototype.applyEventColor = function () {\n var colorField = '';\n if (this.parent.currentView === 'Agenda' || this.parent.currentView === 'MonthAgenda') {\n colorField = this.parent.enableRtl ? 'border-right-color' : 'border-left-color';\n }\n else {\n colorField = 'background-color';\n }\n var color = this.parent.activeEventData.element.style[colorField];\n if (color === '') {\n return;\n }\n var colorEle = this.quickPopup.element.querySelector('.' + cls.POPUP_HEADER_CLASS);\n var footerEle = this.quickPopup.element.querySelector('.' + cls.POPUP_FOOTER_CLASS);\n if (footerEle && footerEle.offsetParent) {\n colorEle = this.quickPopup.element.querySelector('.' + cls.SUBJECT_CLASS);\n if (colorEle) {\n colorEle.style.borderLeftColor = color;\n color = \"rgba(\" + color.match(/\\d+/g).join() + \",0.3)\";\n }\n }\n if (colorEle) {\n colorEle.style.backgroundColor = color;\n }\n };\n QuickPopups.prototype.quickPopupOpen = function () {\n if (this.parent.isAdaptive) {\n this.quickPopup.element.style.top = '0px';\n return;\n }\n if (this.quickPopup.element.querySelector('.' + cls.CELL_POPUP_CLASS)) {\n var subjectElement = this.quickPopup.element.querySelector('.' + cls.SUBJECT_CLASS);\n if (subjectElement) {\n subjectElement.focus();\n }\n }\n else {\n var editElement = this.quickPopup.element.querySelector('.' + cls.EDIT_EVENT_CLASS);\n if (editElement) {\n editElement.focus();\n }\n var editIcon = this.quickPopup.element.querySelector('.' + cls.EDIT_CLASS);\n if (editIcon) {\n editIcon.focus();\n }\n }\n };\n QuickPopups.prototype.quickPopupClose = function () {\n this.parent.eventBase.focusElement();\n this.quickPopup.relateTo = '.' + cls.WORK_CELLS_CLASS;\n this.fieldValidator.destroyToolTip();\n if (this.quickPopup.element.querySelectorAll('.e-formvalidator').length) {\n this.fieldValidator.destroy();\n }\n this.destroyPopupButtons('quickPopup');\n util.removeChildren(this.quickPopup.element);\n };\n QuickPopups.prototype.morePopupOpen = function () {\n if (this.parent.isAdaptive) {\n this.morePopup.element.style.top = '0px';\n this.morePopup.element.style.left = '0px';\n this.morePopup.element.style.height = formatUnit(window.innerHeight);\n return;\n }\n this.morePopup.element.querySelector('.' + cls.MORE_EVENT_HEADER_DATE_CLASS).focus();\n this.morePopup.refreshPosition();\n };\n QuickPopups.prototype.morePopupClose = function () {\n var moreWrapper = this.parent.element.querySelector('.' + cls.MORE_EVENT_WRAPPER_CLASS);\n if (moreWrapper) {\n remove(moreWrapper);\n }\n };\n QuickPopups.prototype.popupClose = function (event) {\n this.dialogEvent = event;\n this.isCrudAction = false;\n this.quickPopupHide(true);\n };\n QuickPopups.prototype.quickPopupHide = function (hideAnimation) {\n var _this = this;\n if (!this.quickPopup.element.classList.contains(cls.POPUP_OPEN)) {\n return;\n }\n var isCellPopup = this.quickPopup.element.querySelector('.' + cls.CELL_POPUP_CLASS);\n var popupData;\n if (isCellPopup) {\n var formvalidator = this.quickPopup.element.querySelector('.e-formvalidator');\n if (this.isCrudAction && formvalidator &&\n !formvalidator.ej2_instances[0].validate()) {\n return;\n }\n var fields = this.parent.eventFields;\n var saveObj = this.parent.eventWindow.getObjectFromFormData(cls.POPUP_WRAPPER_CLASS);\n this.parent.eventWindow.setDefaultValueToObject(saveObj);\n saveObj[fields.id] = this.parent.eventBase.getEventMaxID();\n saveObj[fields.startTime] = this.parent.activeCellsData.startTime;\n saveObj[fields.endTime] = this.parent.activeCellsData.endTime;\n saveObj[fields.isAllDay] = this.parent.activeCellsData.isAllDay;\n if (this.parent.resourceBase) {\n this.parent.resourceBase.setResourceValues(saveObj);\n }\n popupData = saveObj;\n }\n else {\n popupData = this.parent.activeEventData.event;\n }\n var isEventPopup = this.quickPopup.element.querySelector('.' + cls.EVENT_POPUP_CLASS);\n var args = {\n event: this.dialogEvent,\n type: this.parent.isAdaptive ? isEventPopup ? 'ViewEventInfo' : 'EditEventInfo' : 'QuickInfo',\n cancel: false, data: popupData, element: this.quickPopup.element,\n target: (isCellPopup ? this.parent.activeCellsData.element : this.parent.activeEventData.element)\n };\n this.parent.trigger(event.popupClose, args, function (popupCloseArgs) {\n if (!popupCloseArgs.cancel) {\n if (_this.quickPopup.element.classList.contains('e-popup-open')) {\n if (isCellPopup && _this.isCrudAction) {\n _this.parent.currentAction = 'Add';\n _this.parent.crudModule.addEvent(popupCloseArgs.data);\n }\n if (hideAnimation) {\n var animation = _this.quickPopup.hideAnimation;\n _this.quickPopup.hideAnimation = null;\n _this.quickPopup.hide();\n _this.quickPopup.hideAnimation = animation;\n }\n else {\n _this.quickPopup.hide();\n }\n _this.isMultipleEventSelect = false;\n _this.isCrudAction = false;\n }\n }\n });\n };\n QuickPopups.prototype.navigationClick = function (e) {\n var navigateEle = closest(e.target, '.' + cls.NAVIGATE_CLASS);\n if (!isNullOrUndefined(navigateEle)) {\n var date = this.parent.getDateFromElement(e.currentTarget);\n if (!isNullOrUndefined(date)) {\n this.closeClick(e);\n this.parent.setProperties({ selectedDate: date }, true);\n this.parent.changeView(this.parent.getNavigateView(), e);\n }\n }\n };\n QuickPopups.prototype.documentClick = function (e) {\n var target = e.event.target;\n var classNames = '.' + cls.POPUP_WRAPPER_CLASS + ',.' + cls.HEADER_CELLS_CLASS + ',.' + cls.ALLDAY_CELLS_CLASS +\n ',.' + cls.WORK_CELLS_CLASS + ',.' + cls.APPOINTMENT_CLASS + ',.e-popup';\n var popupWrap = this.parent.element.querySelector('.' + cls.POPUP_WRAPPER_CLASS);\n if ((popupWrap && popupWrap.childElementCount > 0 && !closest(target, classNames)) || !closest(target, classNames)) {\n this.quickPopupHide();\n this.parent.removeNewEventElement();\n }\n var tar = this.parent.element.querySelector('.' + cls.INLINE_SUBJECT_CLASS);\n if (tar && tar !== target && this.parent.allowInline) {\n this.parent.inlineModule.documentClick();\n }\n if (closest(target, '.' + cls.APPOINTMENT_CLASS + ',.' + cls.HEADER_CELLS_CLASS)) {\n this.parent.removeNewEventElement();\n }\n if (!closest(target, '.' + cls.MORE_POPUP_WRAPPER_CLASS) && (target.classList &&\n !target.classList.contains(cls.MORE_INDICATOR_CLASS))\n && (!closest(target, '.' + cls.POPUP_OPEN)) && !closest(target, '.' + cls.WORK_CELLS_CLASS)) {\n this.morePopup.hide();\n }\n };\n QuickPopups.prototype.onClosePopup = function (event) {\n if (!isNullOrUndefined(event)) {\n this.dialogEvent = event;\n }\n this.quickPopupHide();\n this.parent.eventBase.focusElement();\n };\n QuickPopups.prototype.addEventListener = function () {\n this.parent.on(event.cellClick, this.cellClick, this);\n this.parent.on(event.eventClick, this.eventClick, this);\n this.parent.on(event.documentClick, this.documentClick, this);\n this.parent.on(event.dataReady, this.updateMoreEventContent, this);\n };\n QuickPopups.prototype.removeEventListener = function () {\n this.parent.off(event.cellClick, this.cellClick);\n this.parent.off(event.eventClick, this.eventClick);\n this.parent.off(event.documentClick, this.documentClick);\n this.parent.off(event.dataReady, this.updateMoreEventContent);\n };\n QuickPopups.prototype.destroyPopupButtons = function (popupName) {\n var popup = popupName === 'quickPopup' ? this.quickPopup : this.morePopup;\n var buttonCollections = [].slice.call(popup.element.querySelectorAll('.e-control.e-btn'));\n for (var _i = 0, buttonCollections_1 = buttonCollections; _i < buttonCollections_1.length; _i++) {\n var button = buttonCollections_1[_i];\n var instance = button.ej2_instances[0];\n if (instance) {\n instance.destroy();\n }\n }\n };\n QuickPopups.prototype.refreshQuickDialog = function () {\n this.destroyQuickDialog();\n this.renderQuickDialog();\n };\n QuickPopups.prototype.refreshQuickPopup = function () {\n this.destroyQuickPopup();\n this.renderQuickPopup();\n };\n QuickPopups.prototype.refreshMorePopup = function () {\n this.destroyMorePopup();\n this.renderMorePopup();\n };\n QuickPopups.prototype.destroyQuickDialog = function () {\n if (this.quickDialog.element) {\n this.quickDialog.destroy();\n remove(this.quickDialog.element);\n this.quickDialog = null;\n }\n };\n QuickPopups.prototype.destroyQuickPopup = function () {\n if (this.quickPopup.element) {\n this.destroyPopupButtons('quickPopup');\n this.quickPopup.destroy();\n remove(this.quickPopup.element);\n this.quickPopup = null;\n }\n };\n QuickPopups.prototype.destroyMorePopup = function () {\n if (this.morePopup.element) {\n this.destroyPopupButtons('morePopup');\n this.morePopup.destroy();\n remove(this.morePopup.element);\n this.morePopup = null;\n }\n };\n QuickPopups.prototype.destroy = function () {\n if (this.quickPopup.element.querySelectorAll('.e-formvalidator').length) {\n this.fieldValidator.destroy();\n }\n this.removeEventListener();\n this.destroyQuickPopup();\n this.destroyMorePopup();\n this.destroyQuickDialog();\n this.dialogEvent = null;\n this.parent = null;\n this.l10n = null;\n this.isCrudAction = null;\n this.fieldValidator = null;\n this.isMultipleEventSelect = null;\n };\n return QuickPopups;\n}());\nexport { QuickPopups };\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { isNullOrUndefined, append, createElement, addClass } from '@syncfusion/ej2-base';\nimport { Tooltip } from '@syncfusion/ej2-popups';\nimport * as cls from '../base/css-constant';\nimport * as util from '../base/util';\n/**\n * Tooltip for Schedule\n */\nvar EventTooltip = /** @class */ (function () {\n function EventTooltip(parent) {\n this.parent = parent;\n this.tooltipObj = new Tooltip({\n animation: { close: { effect: 'FadeOut' } },\n content: 'No title',\n position: 'BottomRight',\n offsetY: 10,\n mouseTrail: this.parent.isAdaptive ? false : true,\n showTipPointer: false,\n cssClass: this.parent.cssClass + ' ' + cls.EVENT_TOOLTIP_ROOT_CLASS,\n target: this.getTargets(),\n beforeRender: this.onBeforeRender.bind(this),\n beforeClose: this.onBeforeClose.bind(this),\n enableRtl: this.parent.enableRtl,\n enableHtmlSanitizer: this.parent.enableHtmlSanitizer\n });\n this.tooltipObj.appendTo(this.parent.element);\n }\n EventTooltip.prototype.getTargets = function () {\n var targets = [];\n if (this.parent.activeViewOptions.group.headerTooltipTemplate) {\n targets.push('.' + cls.RESOURCE_CELLS_CLASS);\n }\n if (this.parent.eventSettings.enableTooltip) {\n targets.push('.' + cls.APPOINTMENT_CLASS);\n }\n return targets.join(',');\n };\n EventTooltip.prototype.onBeforeRender = function (args) {\n if (!isNullOrUndefined(args.target.getAttribute('data-tooltip-id'))) {\n return;\n }\n if (args.target.classList.contains(cls.RESOURCE_CELLS_CLASS) && this.parent.activeViewOptions.group.resources.length > 0) {\n var resCollection = void 0;\n if (this.parent.activeView.isTimelineView()) {\n var index = parseInt(args.target.getAttribute('data-group-index'), 10);\n resCollection = this.parent.resourceBase.lastResourceLevel[parseInt(index.toString(), 10)];\n }\n else {\n var rowIndex = args.target.parentNode.sectionRowIndex;\n var cellIndex = args.target.cellIndex;\n resCollection =\n this.parent.activeView.getColumnLevels()[parseInt(rowIndex.toString(), 10)][parseInt(cellIndex.toString(), 10)];\n }\n var data = {\n resource: resCollection.resource,\n resourceData: resCollection.resourceData\n };\n var contentContainer = createElement('div');\n var templateId = this.parent.element.id + '_headerTooltipTemplate';\n var tooltipTemplate = [].slice.call(this.parent.getHeaderTooltipTemplate()(data, this.parent, 'headerTooltipTemplate', templateId, false));\n append(tooltipTemplate, contentContainer);\n this.setContent(contentContainer);\n this.parent.renderTemplates();\n return;\n }\n var record = this.parent.eventBase.getEventByGuid(args.target.getAttribute('data-guid'));\n if (isNullOrUndefined(record)) {\n return;\n }\n if (!isNullOrUndefined(this.parent.eventSettings.tooltipTemplate)) {\n var contentContainer = createElement('div');\n var templateId = this.parent.element.id + '_tooltipTemplate';\n var tooltipTemplate = [].slice.call(this.parent.getEventTooltipTemplate()(record, this.parent, 'tooltipTemplate', templateId, false));\n append(tooltipTemplate, contentContainer);\n this.setContent(contentContainer);\n }\n else {\n var globalize = this.parent.globalize;\n var fields = this.parent.eventFields;\n var eventStart = new Date('' + record[fields.startTime]);\n var eventEnd = new Date('' + record[fields.endTime]);\n eventEnd = (eventEnd.getHours() === 0 && eventEnd.getMinutes() === 0) ? new Date(eventEnd.setMilliseconds(-1000)) : eventEnd;\n var startDate = util.resetTime(new Date('' + eventStart));\n var endDate = util.resetTime(new Date('' + eventEnd));\n var tooltipSubject = (record[fields.subject] || this.parent.eventSettings.fields.subject.default\n || this.parent.localeObj.getConstant('addTitle'));\n var tooltipLocation = !isNullOrUndefined(record[fields.location]) ? record[fields.location] : '';\n var startMonthDate = '';\n var startMonthYearDate = '';\n var endMonthYearDate = '';\n startMonthDate = globalize.formatDate(eventStart, {\n type: 'date', skeleton: 'MMMd', calendar: this.parent.getCalendarMode()\n });\n startMonthYearDate = globalize.formatDate(eventStart, {\n type: 'date', skeleton: 'medium', calendar: this.parent.getCalendarMode()\n });\n endMonthYearDate = globalize.formatDate(eventEnd, {\n type: 'date', skeleton: 'medium', calendar: this.parent.getCalendarMode()\n });\n startMonthDate = util.capitalizeFirstWord(startMonthDate, 'single');\n startMonthYearDate = util.capitalizeFirstWord(startMonthYearDate, 'single');\n endMonthYearDate = util.capitalizeFirstWord(endMonthYearDate, 'single');\n var startTime = this.parent.getTimeString(eventStart);\n var endTime = this.parent.getTimeString(eventEnd);\n var tooltipDetails = void 0;\n if (startDate.getTime() === endDate.getTime()) {\n tooltipDetails =\n globalize.formatDate(eventStart, {\n type: 'date', skeleton: 'long', calendar: this.parent.getCalendarMode()\n });\n tooltipDetails = util.capitalizeFirstWord(tooltipDetails, 'single');\n }\n else {\n tooltipDetails = (startDate.getFullYear() === endDate.getFullYear()) ? (startMonthDate + ' - ' + endMonthYearDate) :\n (startMonthYearDate + ' - ' + endMonthYearDate);\n }\n var tooltipTime = (record[fields.isAllDay]) ? this.parent.localeObj.getConstant('allDay') :\n (startTime + ' - ' + endTime);\n var content = '
      ' + tooltipSubject + '
      ' +\n '
      ' + tooltipLocation + '
      ' +\n '
      ' + tooltipDetails + '
      ' +\n '
      ' + tooltipTime + '
      ';\n this.setContent(content);\n }\n this.parent.renderTemplates();\n };\n EventTooltip.prototype.onBeforeClose = function () {\n this.parent.resetTemplates(['tooltipTemplate', 'headerTooltipTemplate']);\n };\n EventTooltip.prototype.setContent = function (content) {\n this.tooltipObj.setProperties({ content: content }, true);\n };\n EventTooltip.prototype.close = function () {\n this.tooltipObj.close();\n };\n EventTooltip.prototype.destroy = function () {\n this.tooltipObj.destroy();\n addClass([this.parent.element], 'e-control');\n this.tooltipObj = null;\n this.parent = null;\n };\n return EventTooltip;\n}());\nexport { EventTooltip };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component, Property, NotifyPropertyChanges, Event, Browser, detach } from '@syncfusion/ej2-base';\nimport { getDefaultDateObject, getValue, cldrData, L10n, isNullOrUndefined, removeClass, addClass } from '@syncfusion/ej2-base';\nimport { DropDownList } from '@syncfusion/ej2-dropdowns';\nimport { NumericTextBox } from '@syncfusion/ej2-inputs';\nimport { DatePicker } from '@syncfusion/ej2-calendars';\nimport { Button, RadioButton } from '@syncfusion/ej2-buttons';\nimport { EventHandler, classList } from '@syncfusion/ej2-base';\nimport { extractObjectFromRule, generate, generateSummary, getRecurrenceStringFromDate, getCalendarUtil } from './date-generator';\nimport { capitalizeFirstWord } from '../schedule/base/util';\nvar HEADER = 'e-editor';\nvar INPUTWARAPPER = 'e-input-wrapper';\nvar INPUTWARAPPERSIDE = 'e-input-wrapper-side';\nvar REPEATELEMENT = 'e-repeat-element';\nvar REPEATINTERVAL = 'e-repeat-interval';\nvar INTERVALCLASS = 'e-interval';\nvar DAYWRAPPER = 'e-days';\nvar WEEKWRAPPER = 'e-non-week';\nvar WEEKPOSITION = 'e-week-position';\nvar DAYPOSITION = 'e-day-position';\nvar YEAREXPANDERWRAPPER = 'e-year-expander';\nvar YEAREXPANDERELEMENT = 'e-year-expander-element';\nvar MONETHEXPANDERWRAPPER = 'e-month-expander';\nvar MONETHEXPANDWRAPPER = 'e-month-expand-wrapper';\nvar MONTHEXPANDERELEMENT = 'e-month-expander-element';\nvar MONTHEXPANDERCHECKBOXWRAPPER = 'e-month-expander-checkbox-wrapper';\nvar FORMLEFT = 'e-form-left';\nvar FORMRIGHT = 'e-form-right';\nvar MONTHDAYWRAPPER = 'e-month-day';\nvar MONTHEXPANNDERELEM = 'e-month-expander-wrapper';\nvar MONTHPOS = 'e-month-pos';\nvar MONTHWEEK = 'e-month-week';\nvar ENDON = 'e-end-on';\nvar MONTHEXPANDERLABEL = 'e-month-expander-label';\nvar WEEKEXPANDERLABEL = 'e-week-expander-label';\nvar ENDONLABEL = 'e-end-on-label';\nvar ENDONLEFT = 'e-end-on-left';\nvar MONTHDAYELEMENT = 'e-monthday-element';\nvar ENDONELEMENT = 'e-end-on-element';\nvar ENDONDATE = 'e-end-on-date';\nvar UNTILDATE = 'e-until-date';\nvar ENDONCOUNTWRAPPER = 'e-end-on-count';\nvar ENDONCOUNT = 'e-recurrence-count';\nvar HIDEWRAPPER = 'e-hide-recurrence-element';\nvar RTLCLASS = 'e-rtl';\nvar PRIMARY = 'e-primary';\nvar ACTIVE = 'e-active';\nvar RECURRENCETABLE = 'e-recurrence-table';\nvar REPEATCONTENT = 'e-repeat-content';\nvar REPEATCONTENTWRAPPER = 'e-repeat-content-wrapper';\nvar NONE = 'none';\nvar DAILY = 'daily';\nvar WEEKLY = 'weekly';\nvar MONTHLY = 'monthly';\nvar YEARLY = 'yearly';\nvar NEVER = 'never';\nvar UNTIL = 'until';\nvar COUNT = 'count';\nvar TEXTFIELD = 'text';\nvar VALUEFIELD = 'value';\nvar LAST = 'last';\nvar REPEAT = 'repeat';\nvar REPEATEVERY = 'repeatEvery';\nvar ON = 'on';\nvar END = 'end';\nvar RADIOLABEL = 'onDay';\nvar RULEUNTIL = 'UNTIL';\nvar RULEBYDAY = 'BYDAY';\nvar RULEBYMONTHDAY = 'BYMONTHDAY';\nvar RULEBYMONTH = 'BYMONTH';\nvar RULEINTERVAL = 'INTERVAL';\nvar RULECOUNT = 'COUNT';\nvar RULESETPOS = 'BYSETPOS';\nvar RULEFREQ = 'FREQ';\nvar RULEDAILY = 'DAILY';\nvar RULEWEEKLY = 'WEEKLY';\nvar RULEMONTHLY = 'MONTHLY';\nvar RULEYEARLY = 'YEARLY';\nvar RULESUNDAY = 'SU';\nvar RULEMONDAY = 'MO';\nvar RULETUESDAY = 'TU';\nvar RULEWEDNESDAY = 'WE';\nvar RULETHURSDAY = 'TH';\nvar RULEFRIDAY = 'FR';\nvar RULESATURDAY = 'SA';\nvar KEYSUNDAY = 'sun';\nvar KEYMONDAY = 'mon';\nvar KEYTUESDAY = 'tue';\nvar KEYWEDNESDAY = 'wed';\nvar KEYTHURSDAY = 'thu';\nvar KEYFRIDAY = 'fri';\nvar KEYSATURDAY = 'sat';\nvar EQUAL = '=';\nvar SEMICOLON = ';';\nvar COMMA = ',';\nvar FIRST = 'first';\nvar SECOND = 'second';\nvar THIRD = 'third';\nvar FOURTH = 'fourth';\nvar contentType = {\n none: '',\n daily: 'days',\n weekly: 'weeks',\n monthly: 'months',\n yearly: 'years'\n};\nvar valueData = {\n 'sun': RULESUNDAY,\n 'mon': RULEMONDAY,\n 'tue': RULETUESDAY,\n 'wed': RULEWEDNESDAY,\n 'thu': RULETHURSDAY,\n 'fri': RULEFRIDAY,\n 'sat': RULESATURDAY\n};\nvar neverClassList = [DAYWRAPPER, WEEKWRAPPER, ENDON, INTERVALCLASS, YEAREXPANDERWRAPPER, MONETHEXPANDERWRAPPER];\nvar weekClassList = [WEEKWRAPPER];\nvar monthClassList = [DAYWRAPPER, YEAREXPANDERWRAPPER];\nvar yearClassList = [DAYWRAPPER];\nvar dailyClassList = [DAYWRAPPER, WEEKWRAPPER, YEAREXPANDERWRAPPER, MONETHEXPANDERWRAPPER];\nvar noEndClassList = [ENDONDATE, ENDONCOUNTWRAPPER];\nvar endOnCountClassList = [ENDONDATE];\nvar endOnDateClassList = [ENDONCOUNTWRAPPER];\n/**\n * Represents the RecurrenceEditor component.\n * ```html\n *
      \n * ```\n * ```typescript\n * \n * ```\n */\nvar RecurrenceEditor = /** @class */ (function (_super) {\n __extends(RecurrenceEditor, _super);\n /**\n * Constructor for creating the widget\n *\n * @param {RecurrenceEditorModel} options Accepts the recurrence editor model properties to initiate the rendering\n * @param {string | HTMLElement} element Accepts the DOM element reference\n */\n function RecurrenceEditor(options, element) {\n var _this = _super.call(this, options, element) || this;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _this.defaultLocale = {\n none: 'None',\n daily: 'Daily',\n weekly: 'Weekly',\n monthly: 'Monthly',\n month: 'Month',\n yearly: 'Yearly',\n never: 'Never',\n until: 'Until',\n count: 'Count',\n first: 'First',\n second: 'Second',\n third: 'Third',\n fourth: 'Fourth',\n last: 'Last',\n repeat: 'Repeat',\n repeatEvery: 'Repeat every',\n on: 'Repeat On',\n end: 'End',\n onDay: 'Day',\n days: 'Day(s)',\n weeks: 'Week(s)',\n months: 'Month(s)',\n years: 'Year(s)',\n every: 'every',\n summaryTimes: 'time(s)',\n summaryOn: 'on',\n summaryUntil: 'until',\n summaryRepeat: 'Repeats',\n summaryDay: 'day(s)',\n summaryWeek: 'week(s)',\n summaryMonth: 'month(s)',\n summaryYear: 'year(s)',\n monthWeek: 'Month Week',\n monthPosition: 'Month Position',\n monthExpander: 'Month Expander',\n yearExpander: 'Year Expander',\n repeatInterval: 'Repeat Interval'\n };\n _this.renderStatus = false;\n _this.dayButtons = [];\n _this.monthButtons = [];\n return _this;\n }\n RecurrenceEditor.prototype.startState = function (freq, endOn, startDate) {\n this.showFormElement();\n this.updateForm(freq);\n this.freshOnEndForm();\n this.updateEndOnForm(endOn);\n this.selectMonthDay(startDate);\n this.updateUntilDate(startDate);\n this.onMonthDay.setProperties({ checked: true });\n };\n RecurrenceEditor.prototype.preRender = function () {\n this.localeObj = new L10n(this.getModuleName(), this.defaultLocale, this.locale);\n this.calendarUtil = getCalendarUtil(this.calendarMode);\n };\n RecurrenceEditor.prototype.applyCustomClass = function (cssClass) {\n if (cssClass) {\n addClass([this.element], cssClass.split(' '));\n }\n };\n RecurrenceEditor.prototype.initialize = function () {\n addClass([this.element], 'e-' + this.getModuleName());\n this.renderComponent();\n if (!isNullOrUndefined(this.value) && this.value !== '') {\n this.setRecurrenceRule(this.value);\n }\n else {\n if (!isNullOrUndefined(this.repeatType.value)) {\n this.startState(this.repeatType.value.toString().toUpperCase(), NEVER, this.startDate);\n this.updateForm(this.repeatType.value.toString());\n }\n if (this.selectedType > 0) {\n this.setProperties({ value: this.getRecurrenceRule() }, false);\n }\n }\n this.applyCustomClass(this.cssClass);\n };\n RecurrenceEditor.prototype.triggerChangeEvent = function () {\n var _this = this;\n if (this.renderStatus) {\n var value = this.getRecurrenceRule();\n this.trigger('change', { value: value }, function (args) { return _this.setProperties({ value: args.value }, false); });\n }\n };\n RecurrenceEditor.prototype.resetDayButton = function () {\n var elements = [].slice.call(this.element.querySelectorAll('.' + DAYWRAPPER + ' button'));\n elements.forEach(function (element) { return removeClass([element], [ACTIVE, PRIMARY]); });\n };\n RecurrenceEditor.prototype.daySelection = function (dayIndex) {\n this.resetDayButton();\n var days = [0, 1, 2, 3, 4, 5, 6];\n this.rotateArray(days, this.firstDayOfWeek);\n var element = this.element.querySelector('.' + DAYWRAPPER + ' button[data-index=\"' + days.indexOf(dayIndex) + '\"]');\n if (element) {\n addClass([element], [ACTIVE, PRIMARY]);\n }\n };\n RecurrenceEditor.prototype.rtlClass = function (status) {\n if (status) {\n addClass([this.element], RTLCLASS);\n }\n else {\n removeClass([this.element], RTLCLASS);\n }\n };\n RecurrenceEditor.prototype.updateUntilDate = function (date) {\n var tempDate = new Date(date.getTime());\n tempDate.setDate(tempDate.getDate() + 60);\n this.untilDateObj.setProperties({ value: tempDate });\n };\n RecurrenceEditor.prototype.selectMonthDay = function (date) {\n var weekday = [KEYSUNDAY, KEYMONDAY, KEYTUESDAY, KEYWEDNESDAY, KEYTHURSDAY, KEYFRIDAY, KEYSATURDAY];\n this.monthDate.setProperties({ value: this.calendarUtil.getDate(date) });\n this.monthWeekDays.setProperties({ value: valueData[weekday[date.getDay()]] });\n this.monthValue.setProperties({ value: '' + this.calendarUtil.getMonth(date) });\n this.monthWeekPos.setProperties({ value: this.getDayPosition(date) });\n this.daySelection(date.getDay());\n };\n RecurrenceEditor.prototype.updateForm = function (state) {\n var _this = this;\n this.repeatType.setProperties({ value: state });\n var end = this.element.querySelector('.' + ENDON);\n if (state === DAILY) {\n classList(end, [FORMLEFT], [FORMRIGHT]);\n }\n else {\n classList(end, [FORMRIGHT], [FORMLEFT]);\n }\n switch (state) {\n case NONE:\n neverClassList.forEach(function (className) { return addClass([_this.element.querySelector('.' + className)], HIDEWRAPPER); });\n break;\n case WEEKLY:\n weekClassList.forEach(function (className) { return addClass([_this.element.querySelector('.' + className)], HIDEWRAPPER); });\n break;\n case MONTHLY:\n monthClassList.forEach(function (className) { return addClass([_this.element.querySelector('.' + className)], HIDEWRAPPER); });\n break;\n case YEARLY:\n yearClassList.forEach(function (className) { return addClass([_this.element.querySelector('.' + className)], HIDEWRAPPER); });\n break;\n case DAILY:\n dailyClassList.forEach(function (className) { return addClass([_this.element.querySelector('.' + className)], HIDEWRAPPER); });\n break;\n }\n };\n RecurrenceEditor.prototype.updateEndOnForm = function (state) {\n var _this = this;\n this.endType.setProperties({ value: state });\n switch (state) {\n case NEVER:\n noEndClassList.forEach(function (className) { return addClass([_this.element.querySelector('.' + className)], HIDEWRAPPER); });\n break;\n case UNTIL:\n endOnDateClassList.forEach(function (className) { return addClass([_this.element.querySelector('.' + className)], HIDEWRAPPER); });\n break;\n case COUNT:\n endOnCountClassList.forEach(function (className) { return addClass([_this.element.querySelector('.' + className)], HIDEWRAPPER); });\n break;\n }\n };\n RecurrenceEditor.prototype.freshOnEndForm = function () {\n var _this = this;\n noEndClassList.forEach(function (className) {\n var element = _this.element.querySelector('.' + className);\n if (element) {\n removeClass([element], HIDEWRAPPER);\n }\n });\n };\n RecurrenceEditor.prototype.showFormElement = function () {\n var _this = this;\n neverClassList.forEach(function (className) {\n var hideElement = _this.element.querySelector('.' + className);\n if (hideElement) {\n removeClass([hideElement], HIDEWRAPPER);\n }\n });\n };\n RecurrenceEditor.prototype.renderDropdowns = function () {\n var _this = this;\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var self = this;\n this.repeatType = new DropDownList({\n //set the data to dataSource property\n dataSource: this.getRepeatData(),\n floatLabelType: 'Always',\n enableRtl: this.enableRtl,\n index: this.selectedType,\n fields: {\n text: TEXTFIELD,\n value: VALUEFIELD\n },\n placeholder: this.localeObj.getConstant(REPEAT),\n htmlAttributes: { 'title': this.localeObj.getConstant(REPEAT), role: 'option' },\n change: function (args) {\n self.setProperties({ selectedType: _this.frequencies.indexOf(args.value) }, false);\n self.element.querySelector('.' + REPEATCONTENT).innerHTML =\n self.localeObj.getConstant(contentType[args.value]);\n self.showFormElement();\n self.updateForm(args.value);\n self.resetFormValues();\n self.triggerChangeEvent();\n }\n });\n // set placeholder to DropDownList input element\n this.repeatType.appendTo(this.element.querySelector('.' + REPEATELEMENT));\n this.endType = new DropDownList({\n dataSource: this.getEndData(),\n popupWidth: this.getPopupWidth(),\n enableRtl: this.enableRtl,\n index: 1,\n fields: {\n text: TEXTFIELD,\n value: VALUEFIELD\n },\n htmlAttributes: { role: 'option' },\n change: function (args) {\n self.freshOnEndForm();\n self.updateEndOnForm(args.value);\n self.resetFormValues();\n self.triggerChangeEvent();\n }\n });\n this.endType.appendTo(this.element.querySelector('.' + ENDONELEMENT));\n var renderDropDownList = function (dropDownData) {\n return new DropDownList({\n dataSource: dropDownData,\n popupWidth: _this.getPopupWidth(),\n enableRtl: _this.enableRtl,\n fields: {\n text: TEXTFIELD,\n value: VALUEFIELD\n },\n htmlAttributes: { role: 'option' },\n index: 1,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n change: function (args) {\n self.onWeekDay.setProperties({ checked: true });\n self.resetFormValues();\n self.triggerChangeEvent();\n }\n });\n };\n this.monthWeekPos = renderDropDownList(this.getMonthPosData());\n this.monthWeekPos.appendTo(this.element.querySelector('.' + MONTHPOS));\n this.monthWeekDays = renderDropDownList(this.getDayData('wide'));\n this.monthWeekDays.appendTo(this.element.querySelector('.' + MONTHWEEK));\n this.monthValue = new DropDownList({\n dataSource: this.getMonthData(),\n fields: {\n text: TEXTFIELD,\n value: VALUEFIELD\n },\n htmlAttributes: { role: 'option' },\n enableRtl: this.enableRtl,\n index: 7,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n change: function (args) {\n self.resetFormValues();\n self.triggerChangeEvent();\n }\n });\n this.monthValue.appendTo(this.element.querySelector('.' + YEAREXPANDERELEMENT));\n };\n RecurrenceEditor.prototype.setDefaultValue = function () {\n var formelement = [].slice.call(this.element.querySelectorAll('.e-control .e-numerictextbox'));\n for (var _i = 0, formelement_1 = formelement; _i < formelement_1.length; _i++) {\n var element = formelement_1[_i];\n var instance = element.ej2_instances[0];\n if (instance.element.classList.contains(REPEATINTERVAL)) {\n instance.value = 1;\n instance.dataBind();\n }\n else if (instance.element.classList.contains(ENDONCOUNT)) {\n instance.value = 10;\n instance.dataBind();\n }\n }\n };\n RecurrenceEditor.prototype.resetFormValues = function () {\n var recurreneElement = [].slice.call(this.element.querySelectorAll('.e-control [type=\"text\"]'));\n for (var _i = 0, recurreneElement_1 = recurreneElement; _i < recurreneElement_1.length; _i++) {\n var element = recurreneElement_1[_i];\n var instance = void 0;\n if (element.classList.contains('e-datepicker')) {\n instance = element.ej2_instances[0];\n if (instance.value) {\n // eslint-disable-next-line no-self-assign\n instance.value = instance.value;\n instance.dataBind();\n }\n else {\n this.updateUntilDate(this.startDate);\n }\n }\n else if (element.classList.contains('e-dropdownlist')) {\n instance = element.ej2_instances[0];\n instance.index = instance.index || 0;\n instance.dataBind();\n }\n else if (element.classList.contains('e-numerictextbox')) {\n instance = element.ej2_instances[0];\n var value = void 0;\n if (instance.element.classList.contains(REPEATINTERVAL)) {\n value = 1;\n }\n else if (instance.element.classList.contains(ENDONCOUNT)) {\n value = 10;\n }\n else {\n value = this.startDate.getDate();\n }\n instance.value = instance.value || value;\n instance.dataBind();\n }\n }\n };\n RecurrenceEditor.prototype.getPopupWidth = function () {\n return Browser.isDevice ? '100%' : 'auto';\n };\n RecurrenceEditor.prototype.renderDatePickers = function () {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var self = this;\n this.untilDateObj = new DatePicker({\n firstDayOfWeek: this.firstDayOfWeek,\n enableRtl: this.enableRtl,\n locale: this.locale,\n min: this.minDate,\n max: this.maxDate,\n format: (isNullOrUndefined(this.dateFormat) ? this.getFormat('dateFormats') : this.dateFormat),\n change: function (args) {\n if (args.value) {\n self.triggerChangeEvent();\n }\n }\n });\n this.untilDateObj.appendTo(this.element.querySelector('.' + UNTILDATE));\n };\n RecurrenceEditor.prototype.getFormat = function (formatType) {\n var format;\n if (this.locale === 'en' || this.locale === 'en-US') {\n format = getValue(formatType + '.short', getDefaultDateObject(this.getCalendarMode()));\n }\n else {\n format = getValue('main.' + '' + this.locale + '.dates.calendars.' + this.getCalendarMode() + '.' + formatType + '.short', cldrData);\n }\n return format;\n };\n RecurrenceEditor.prototype.dayButtonRender = function () {\n var _this = this;\n var btns = [].slice.call(this.element.querySelectorAll('.' + DAYWRAPPER + ' button'));\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var self = this;\n for (var _i = 0, btns_1 = btns; _i < btns_1.length; _i++) {\n var btn = btns_1[_i];\n var button = new Button({ isToggle: true, enableRtl: this.enableRtl }, btn);\n this.dayButtons.push(button);\n EventHandler.add(btn, 'click', function (args) {\n var btns = [].slice.call(_this.element.querySelectorAll('.' + DAYWRAPPER + ' button.' + PRIMARY));\n var element = args.target;\n if (!element.classList.contains(PRIMARY)) {\n addClass([element], PRIMARY);\n self.triggerChangeEvent();\n }\n else if (btns.length > 1) {\n removeClass([element], PRIMARY);\n self.triggerChangeEvent();\n }\n });\n }\n };\n RecurrenceEditor.prototype.radioButtonRender = function () {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var self = this;\n this.onMonthDay = new RadioButton({\n label: this.localeObj.getConstant(RADIOLABEL),\n enableRtl: this.enableRtl,\n name: 'monthType',\n value: 'day',\n change: function () {\n self.resetFormValues();\n self.triggerChangeEvent();\n }\n });\n this.onMonthDay.appendTo(this.element.querySelector('.' + MONTHEXPANDERELEMENT));\n this.monthButtons.push(this.onMonthDay);\n this.onWeekDay = new RadioButton({\n label: this.localeObj.getConstant('monthExpander'),\n cssClass: 'e-month-type',\n name: 'monthType',\n enableRtl: this.enableRtl,\n value: 'daypos',\n change: function () {\n self.resetFormValues();\n self.triggerChangeEvent();\n }\n });\n this.onWeekDay.appendTo(this.element.querySelector('.' + MONTHEXPANNDERELEM));\n this.monthButtons.push(this.onWeekDay);\n };\n RecurrenceEditor.prototype.numericTextboxRender = function () {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var self = this;\n this.recurrenceCount = new NumericTextBox({\n value: 10,\n format: '#',\n enableRtl: this.enableRtl,\n min: 1,\n max: 999,\n change: function () {\n self.triggerChangeEvent();\n }\n });\n this.recurrenceCount.appendTo(this.element.querySelector('.' + ENDONCOUNT));\n this.monthDate = new NumericTextBox({\n value: 1,\n format: '#',\n enableRtl: this.enableRtl,\n min: 1,\n max: 31,\n change: function () {\n self.onMonthDay.setProperties({ checked: true });\n self.triggerChangeEvent();\n }\n });\n this.monthDate.appendTo(this.element.querySelector('.' + MONTHDAYWRAPPER));\n this.repeatInterval = new NumericTextBox({\n value: 1,\n format: '#',\n min: 1,\n max: 999,\n enableRtl: this.enableRtl,\n floatLabelType: 'Always',\n placeholder: this.localeObj.getConstant(REPEATEVERY),\n change: function () {\n self.triggerChangeEvent();\n }\n });\n this.repeatInterval.appendTo(this.element.querySelector('.' + REPEATINTERVAL));\n };\n RecurrenceEditor.prototype.renderComponent = function () {\n this.setTemplate();\n this.renderDropdowns();\n this.renderDatePickers();\n this.dayButtonRender();\n this.radioButtonRender();\n this.numericTextboxRender();\n };\n RecurrenceEditor.prototype.rotateArray = function (data, count) {\n var temp;\n for (var index = 0; index < count; index++) {\n temp = data.shift();\n data.push(temp);\n }\n };\n RecurrenceEditor.prototype.getEndData = function () {\n var endData = [NEVER, UNTIL, COUNT];\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var self = this;\n var dataSource = [];\n endData.forEach(function (data) {\n dataSource.push({ text: self.localeObj.getConstant(data), value: data });\n });\n return dataSource;\n };\n RecurrenceEditor.prototype.getDayPosition = function (date) {\n var temp = new Date(date.getTime());\n var endDate = new Date(date.getTime());\n var day = date.getDay();\n var positionCollection = [];\n temp = this.calendarUtil.getMonthStartDate(temp);\n endDate = this.calendarUtil.getMonthEndDate(endDate);\n while (temp < endDate) {\n if (temp.getDay() === day) {\n positionCollection.push(temp.getTime());\n }\n temp.setDate(temp.getDate() + 1);\n }\n if (positionCollection.indexOf(date.getTime()) === positionCollection.length - 1) {\n return -1;\n }\n return (positionCollection.indexOf(date.getTime()) + 1);\n };\n RecurrenceEditor.prototype.getRepeatData = function () {\n var data = [];\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var self = this;\n this.frequencies.forEach(function (element) {\n var textValue = (element === NONE) ? NEVER : element;\n data.push({ text: self.localeObj.getConstant(textValue), value: element });\n });\n return data;\n };\n RecurrenceEditor.prototype.getMonthPosData = function () {\n var monthpos = [FIRST, SECOND, THIRD, FOURTH, LAST];\n var monthposValue = {\n first: 1,\n second: 2,\n third: 3,\n fourth: 4,\n last: -1\n };\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var self = this;\n var dataSource = [];\n monthpos.forEach(function (data) {\n dataSource.push({ text: self.localeObj.getConstant(data), value: monthposValue[\"\" + data] });\n });\n return dataSource;\n };\n RecurrenceEditor.prototype.getDayData = function (format) {\n var weekday = [KEYSUNDAY, KEYMONDAY, KEYTUESDAY, KEYWEDNESDAY, KEYTHURSDAY, KEYFRIDAY, KEYSATURDAY];\n var dayData = [];\n var cldrObj;\n this.rotateArray(weekday, this.firstDayOfWeek);\n if (this.locale === 'en' || this.locale === 'en-US') {\n var nameSpaceString = 'days.stand-alone.';\n cldrObj = (getValue(nameSpaceString + format, getDefaultDateObject(this.getCalendarMode())));\n }\n else {\n var nameSpaceString = 'main.' + '' + this.locale + '.dates.calendars.' + this.getCalendarMode() + '.days.stand-alone.' + format;\n cldrObj = (getValue(nameSpaceString, cldrData));\n }\n for (var _i = 0, weekday_1 = weekday; _i < weekday_1.length; _i++) {\n var obj = weekday_1[_i];\n var day = getValue(obj, cldrObj);\n dayData.push({ text: format === 'narrow' ? day : capitalizeFirstWord(day, 'single'), value: valueData[\"\" + obj] });\n }\n return dayData;\n };\n RecurrenceEditor.prototype.getMonthData = function () {\n var monthData = [];\n var cldrObj;\n if (this.locale === 'en' || this.locale === 'en-US') {\n var nameSpaceString = 'months.stand-alone.wide';\n cldrObj = (getValue(nameSpaceString, getDefaultDateObject(this.getCalendarMode())));\n }\n else {\n var nameSpaceString = 'main.' + '' + this.locale + '.dates.calendars.' + this.getCalendarMode() + '.months.stand-alone.wide';\n cldrObj = (getValue(nameSpaceString, cldrData));\n }\n for (var _i = 0, _a = Object.keys(cldrObj); _i < _a.length; _i++) {\n var obj = _a[_i];\n monthData.push({\n text: capitalizeFirstWord(getValue(obj, cldrObj), 'single'),\n value: obj\n });\n }\n return monthData;\n };\n RecurrenceEditor.prototype.setTemplate = function () {\n var dayData = this.getDayData('narrow');\n var fullDay = this.getDayData('wide');\n this.element.innerHTML = '
      ' +\n '
      ' +\n '' +\n '
      ' +\n '' +\n '' +\n '
      ' +\n '
      ' + this.localeObj.getConstant(ON) + '
      ' +\n '' +\n '' +\n '' +\n '' +\n '' +\n '' +\n '
      ' +\n '
      ' +\n '
      ' + this.localeObj.getConstant(ON) + '
      ' +\n '
      ' +\n '' +\n '
      ' +\n '
      ' +\n '' +\n '' +\n '' +\n '' +\n '
      ' +\n '
      ' +\n '' +\n '
      ' +\n '' +\n '
      ' +\n '
      ' +\n '' +\n '
      ' +\n '' +\n '
      ' +\n '' +\n '
      ' +\n '
      ' +\n '
      ' +\n '
      ' + this.localeObj.getConstant(END) + '
      ' +\n '
      ' +\n '' +\n '
      ' +\n '
      ' +\n '' +\n '
      ' +\n '
      ' +\n '' +\n '
      ' +\n '
      ';\n };\n RecurrenceEditor.prototype.getSelectedDaysData = function () {\n var ruleData = RULEBYDAY + EQUAL;\n var elements = [].slice.call(this.element.querySelectorAll('.' + DAYWRAPPER + ' button.' + PRIMARY));\n var weekday = [RULESUNDAY, RULEMONDAY, RULETUESDAY, RULEWEDNESDAY, RULETHURSDAY, RULEFRIDAY, RULESATURDAY];\n this.rotateArray(weekday, this.firstDayOfWeek);\n for (var index = 0; index < elements.length; index++) {\n ruleData += weekday[parseInt(elements[parseInt(index.toString(), 10)].getAttribute('data-index'), 10)] + (index === (elements.length - 1) ? '' : COMMA);\n }\n return ruleData + SEMICOLON;\n };\n RecurrenceEditor.prototype.getSelectedMonthData = function () {\n var ruleData;\n if (this.onWeekDay.checked) {\n ruleData = RULEBYDAY + EQUAL + this.monthWeekDays.value + SEMICOLON\n + RULESETPOS + EQUAL + this.monthWeekPos.value + SEMICOLON;\n }\n else {\n ruleData = RULEBYMONTHDAY + EQUAL + this.monthDate.value + SEMICOLON;\n }\n return ruleData;\n };\n RecurrenceEditor.prototype.getIntervalData = function () {\n return RULEINTERVAL + EQUAL + this.repeatInterval.value + SEMICOLON;\n };\n RecurrenceEditor.prototype.getEndOnCount = function () {\n return RULECOUNT + EQUAL + this.recurrenceCount.value + SEMICOLON;\n };\n RecurrenceEditor.prototype.getYearMonthRuleData = function () {\n return RULEBYMONTH + EQUAL + this.monthValue.value + SEMICOLON;\n };\n RecurrenceEditor.prototype.updateWeekButton = function (keys) {\n var weekday = [RULESUNDAY, RULEMONDAY, RULETUESDAY, RULEWEDNESDAY, RULETHURSDAY, RULEFRIDAY, RULESATURDAY];\n this.rotateArray(weekday, this.firstDayOfWeek);\n for (var _i = 0, _a = this.dayButtons; _i < _a.length; _i++) {\n var obj = _a[_i];\n var index = parseInt(obj.element.getAttribute('data-index'), 10);\n if (keys.indexOf(weekday[parseInt(index.toString(), 10)]) !== -1) {\n obj.setProperties({ isPrimary: true });\n }\n else {\n obj.setProperties({ isPrimary: false });\n }\n }\n };\n RecurrenceEditor.prototype.updateMonthUI = function () {\n if (this.ruleObject.monthDay.length) {\n this.monthDate.setProperties({ value: this.ruleObject.monthDay[0] });\n this.onMonthDay.setProperties({ checked: true });\n }\n else {\n this.onWeekDay.setProperties({ checked: true });\n this.monthWeekPos.setProperties({ value: this.ruleObject.setPosition });\n for (var _i = 0, _a = Object.keys(valueData); _i < _a.length; _i++) {\n var key = _a[_i];\n if (valueData[\"\" + key] === this.ruleObject.day[0]) {\n this.monthWeekDays.setProperties({ value: this.ruleObject.day[0] });\n break;\n }\n }\n }\n };\n RecurrenceEditor.prototype.updateUI = function (repeat, state) {\n this.repeatInterval.setProperties({ value: this.ruleObject.interval });\n switch (state) {\n case UNTIL:\n this.untilDateObj.setProperties({ value: this.ruleObject.until });\n break;\n case COUNT:\n this.recurrenceCount.setProperties({ value: this.ruleObject.count });\n break;\n }\n switch (repeat) {\n case WEEKLY:\n this.updateWeekButton(this.ruleObject.day);\n break;\n case YEARLY:\n this.monthValue.setProperties({ index: (this.ruleObject.month[0] - 1) });\n this.updateMonthUI();\n break;\n case MONTHLY:\n this.updateMonthUI();\n break;\n }\n };\n RecurrenceEditor.prototype.getUntilData = function () {\n if (!this.untilDateObj.value) {\n return '';\n }\n var tempStr = getRecurrenceStringFromDate(this.untilDateObj.value);\n return RULEUNTIL + EQUAL + tempStr + SEMICOLON;\n };\n RecurrenceEditor.prototype.destroyComponents = function () {\n if (!this.recurrenceCount.isDestroyed) {\n this.recurrenceCount.destroy();\n this.recurrenceCount = null;\n }\n if (!this.monthDate.isDestroyed) {\n this.monthDate.destroy();\n this.monthDate = null;\n }\n if (!this.repeatInterval.isDestroyed) {\n this.repeatInterval.destroy();\n this.repeatInterval = null;\n }\n if (!this.untilDateObj.isDestroyed) {\n this.untilDateObj.destroy();\n this.untilDateObj = null;\n }\n if (!this.repeatType.isDestroyed) {\n this.repeatType.destroy();\n this.repeatType = null;\n }\n if (!this.endType.isDestroyed) {\n this.endType.destroy();\n this.endType = null;\n }\n if (!this.monthWeekPos.isDestroyed) {\n this.monthWeekPos.destroy();\n this.monthWeekPos = null;\n }\n if (!this.monthWeekDays.isDestroyed) {\n this.monthWeekDays.destroy();\n this.monthWeekDays = null;\n }\n if (!this.monthValue.isDestroyed) {\n this.monthValue.destroy();\n this.monthValue = null;\n }\n if (!this.onMonthDay.isDestroyed) {\n this.onMonthDay.destroy();\n this.onMonthDay = null;\n }\n if (!this.onWeekDay.isDestroyed) {\n this.onWeekDay.destroy();\n this.onWeekDay = null;\n }\n this.dayButtons.forEach(function (element) {\n if (!element.isDestroyed) {\n element.destroy();\n }\n });\n this.dayButtons = [];\n this.monthButtons.forEach(function (element) {\n if (!element.isDestroyed) {\n element.destroy();\n }\n });\n this.monthButtons = [];\n };\n RecurrenceEditor.prototype.resetFields = function () {\n this.startState(NONE, NEVER, this.startDate);\n this.setDefaultValue();\n };\n RecurrenceEditor.prototype.updateRuleUntilDate = function (startDate) {\n if (this.untilDateObj.value && startDate) {\n var untilDate = this.untilDateObj.value;\n var newUntilDate = new Date(untilDate.getFullYear(), untilDate.getMonth(), untilDate.getDate(), startDate.getHours(), startDate.getMinutes(), startDate.getMilliseconds());\n this.untilDateObj.setProperties({ value: newUntilDate });\n }\n };\n RecurrenceEditor.prototype.getCalendarMode = function () {\n return this.calendarMode.toLowerCase();\n };\n RecurrenceEditor.prototype.getRuleSummary = function (rule) {\n if (rule === void 0) { rule = this.getRecurrenceRule(); }\n return generateSummary(rule, this.localeObj, this.locale, this.calendarMode);\n };\n RecurrenceEditor.prototype.getRecurrenceDates = function (startDate, rule, excludeDate, maximumCount, viewDate) {\n viewDate = isNullOrUndefined(viewDate) ? this.startDate : viewDate;\n return generate(startDate, rule, excludeDate, this.firstDayOfWeek, maximumCount, viewDate, this.calendarMode);\n };\n RecurrenceEditor.prototype.getRecurrenceRule = function () {\n var ruleData = RULEFREQ + EQUAL;\n switch (this.repeatType.value) {\n case DAILY:\n ruleData += RULEDAILY + SEMICOLON;\n break;\n case WEEKLY:\n ruleData += RULEWEEKLY + SEMICOLON + this.getSelectedDaysData();\n break;\n case MONTHLY:\n ruleData += RULEMONTHLY + SEMICOLON + this.getSelectedMonthData();\n break;\n case YEARLY:\n ruleData += RULEYEARLY + SEMICOLON + this.getSelectedMonthData() + this.getYearMonthRuleData();\n break;\n case NONE:\n return '';\n }\n ruleData += this.getIntervalData();\n switch (this.endType.value) {\n case UNTIL:\n ruleData += this.getUntilData();\n break;\n case COUNT:\n ruleData += this.getEndOnCount();\n break;\n }\n return ruleData;\n };\n RecurrenceEditor.prototype.setRecurrenceRule = function (rule, startDate) {\n if (startDate === void 0) { startDate = this.startDate; }\n if (!rule) {\n this.repeatType.setProperties({ value: NONE });\n return;\n }\n this.renderStatus = false;\n this.ruleObject = extractObjectFromRule(rule);\n var endon = this.ruleObject.count ? COUNT : (this.ruleObject.until ? UNTIL : NEVER);\n switch (this.ruleObject.freq) {\n case RULEDAILY:\n this.startState(DAILY, endon, startDate);\n this.updateUI(DAILY, endon);\n break;\n case RULEWEEKLY:\n this.startState(WEEKLY, endon, startDate);\n this.updateUI(WEEKLY, endon);\n break;\n case RULEMONTHLY:\n this.startState(MONTHLY, endon, startDate);\n this.updateUI(MONTHLY, endon);\n break;\n case RULEYEARLY:\n this.startState(YEARLY, endon, startDate);\n this.updateUI(YEARLY, endon);\n break;\n }\n this.renderStatus = true;\n this.triggerChangeEvent();\n };\n RecurrenceEditor.prototype.detachInputs = function () {\n var inputElements = [].slice.call(this.element.querySelectorAll('input'));\n for (var _i = 0, inputElements_1 = inputElements; _i < inputElements_1.length; _i++) {\n var element = inputElements_1[_i];\n detach(element);\n }\n };\n /**\n * Destroys the widget.\n *\n * @returns {void}\n */\n RecurrenceEditor.prototype.destroy = function () {\n if (!this.isDestroyed) {\n this.destroyComponents();\n _super.prototype.destroy.call(this);\n var removeClasses = ['e-' + this.getModuleName()];\n if (this.cssClass) {\n removeClasses = removeClasses.concat(this.cssClass.split(' '));\n }\n removeClass([this.element], removeClasses);\n this.detachInputs();\n while (this.element.firstElementChild) {\n this.element.removeChild(this.element.firstElementChild);\n }\n }\n };\n /**\n * Get component name.\n *\n * @returns {string} Returns the module name\n * @private\n */\n RecurrenceEditor.prototype.getModuleName = function () {\n return 'recurrenceeditor';\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @returns {string} Returns the persisted state\n */\n RecurrenceEditor.prototype.getPersistData = function () {\n return this.addOnPersist([]);\n };\n /**\n * Initialize the control rendering\n *\n * @returns {void}\n * @private\n */\n RecurrenceEditor.prototype.render = function () {\n this.initialize();\n this.rtlClass(this.enableRtl);\n this.renderStatus = true;\n this.renderComplete();\n };\n /**\n * Called internally, if any of the property value changed.\n *\n * @param {RecurrenceEditorModel} newProp Accepts the changed properties new values\n * @param {RecurrenceEditorModel} oldProp Accepts the changed properties old values\n * @returns {void}\n * @private\n */\n RecurrenceEditor.prototype.onPropertyChanged = function (newProp, oldProp) {\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'startDate':\n this.selectMonthDay(newProp.startDate);\n this.updateUntilDate(newProp.startDate);\n this.endType.setProperties({ index: 0 });\n break;\n case 'enableRtl':\n this.rtlClass(newProp.enableRtl);\n break;\n case 'cssClass':\n if (oldProp.cssClass) {\n removeClass([this.element], oldProp.cssClass.split(' '));\n }\n if (newProp.cssClass) {\n addClass([this.element], newProp.cssClass.split(' '));\n }\n break;\n case 'selectedType':\n this.repeatType.setProperties({ index: this.selectedType });\n break;\n case 'minDate':\n this.untilDateObj.setProperties({ minDate: this.minDate });\n break;\n case 'maxDate':\n this.untilDateObj.setProperties({ maxDate: this.maxDate });\n break;\n case 'value':\n if (this.getRecurrenceRule() !== this.value) {\n this.setRecurrenceRule(this.value);\n }\n break;\n case 'calendarMode':\n this.calendarMode = newProp.calendarMode;\n this.calendarUtil = getCalendarUtil(newProp.calendarMode);\n break;\n case 'locale':\n case 'frequencies':\n case 'firstDayOfWeek':\n this.refresh();\n break;\n case 'dateFormat':\n this.untilDateObj.setProperties({ format: newProp.dateFormat });\n break;\n }\n }\n };\n __decorate([\n Property(['none', 'daily', 'weekly', 'monthly', 'yearly'])\n ], RecurrenceEditor.prototype, \"frequencies\", void 0);\n __decorate([\n Property(0)\n ], RecurrenceEditor.prototype, \"firstDayOfWeek\", void 0);\n __decorate([\n Property(new Date())\n ], RecurrenceEditor.prototype, \"startDate\", void 0);\n __decorate([\n Property()\n ], RecurrenceEditor.prototype, \"dateFormat\", void 0);\n __decorate([\n Property('Gregorian')\n ], RecurrenceEditor.prototype, \"calendarMode\", void 0);\n __decorate([\n Property()\n ], RecurrenceEditor.prototype, \"cssClass\", void 0);\n __decorate([\n Property()\n ], RecurrenceEditor.prototype, \"value\", void 0);\n __decorate([\n Property(new Date(1900, 0, 1))\n ], RecurrenceEditor.prototype, \"minDate\", void 0);\n __decorate([\n Property(new Date(2099, 11, 31))\n ], RecurrenceEditor.prototype, \"maxDate\", void 0);\n __decorate([\n Property(0)\n ], RecurrenceEditor.prototype, \"selectedType\", void 0);\n __decorate([\n Event()\n ], RecurrenceEditor.prototype, \"change\", void 0);\n RecurrenceEditor = __decorate([\n NotifyPropertyChanges\n ], RecurrenceEditor);\n return RecurrenceEditor;\n}(Component));\nexport { RecurrenceEditor };\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { createElement, isNullOrUndefined, addClass, remove, EventHandler, extend, append, detach } from '@syncfusion/ej2-base';\nimport { cldrData, removeClass, getValue, getDefaultDateObject, closest, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\nimport { Query, Deferred } from '@syncfusion/ej2-data';\nimport { CheckBox, Button } from '@syncfusion/ej2-buttons';\nimport { Dialog } from '@syncfusion/ej2-popups';\nimport { DropDownList, MultiSelect } from '@syncfusion/ej2-dropdowns';\nimport { Input } from '@syncfusion/ej2-inputs';\nimport { DateTimePicker } from '@syncfusion/ej2-calendars';\nimport { FieldValidator } from './form-validator';\nimport { RecurrenceEditor } from '../../recurrence-editor/recurrence-editor';\nimport * as cls from '../base/css-constant';\nimport * as event from '../base/constant';\nimport * as util from '../base/util';\nvar EVENT_FIELD = 'e-field';\nvar REPEAT_CONTAINER_CLASS = 'e-recurrence-container';\nvar REPEAT_BUTTON_ICON_CLASS = 'e-recurrence-edit';\nvar REPEAT_BUTTON_CLASS = 'e-recurrence-edit-button';\nvar REPEAT_DIALOG_CLASS = 'e-recurrence-dialog';\nvar HIDE_STYLE_CLASS = 'e-hide';\n/**\n * Event editor window\n */\nvar EventWindow = /** @class */ (function () {\n function EventWindow(parent) {\n this.parent = parent;\n this.l10n = this.parent.localeObj;\n this.fields = this.parent.eventFields;\n this.eventWindowTime = { startTime: new Date(), endTime: new Date() };\n this.renderEventWindow();\n }\n EventWindow.prototype.renderEventWindow = function () {\n this.element = createElement('div', { id: this.parent.element.id + '_dialog_wrapper' });\n this.parent.element.appendChild(this.element);\n var dialogModel = {\n animationSettings: { effect: 'Zoom' },\n content: this.getEventWindowContent(),\n cssClass: cls.EVENT_WINDOW_DIALOG_CLASS,\n enableRtl: this.parent.enableRtl,\n enableHtmlSanitizer: this.parent.enableHtmlSanitizer,\n height: this.parent.isAdaptive ? '100%' : 'auto',\n minHeight: '300px',\n isModal: true,\n showCloseIcon: this.parent.isAdaptive ? false : true,\n target: document.body,\n visible: false,\n width: '500px',\n beforeOpen: this.onBeforeOpen.bind(this),\n beforeClose: this.onBeforeClose.bind(this)\n };\n if (this.parent.isAdaptive) {\n dialogModel.cssClass = cls.EVENT_WINDOW_DIALOG_CLASS + ' ' + cls.DEVICE_CLASS;\n dialogModel.header = '
      ' +\n this.l10n.getConstant('newEvent') + '
      ';\n }\n else {\n dialogModel.buttons = [{\n buttonModel: {\n content: this.l10n.getConstant('deleteButton'), cssClass: cls.DELETE_EVENT_CLASS,\n disabled: !this.parent.eventSettings.allowDeleting || this.parent.readonly\n },\n click: this.eventDelete.bind(this)\n }, {\n buttonModel: {\n content: this.l10n.getConstant('saveButton'), cssClass: 'e-primary ' + cls.EVENT_WINDOW_SAVE_BUTTON_CLASS,\n isPrimary: true, disabled: !this.parent.eventSettings.allowAdding || this.parent.readonly\n },\n click: this.eventSave.bind(this)\n }, {\n buttonModel: { cssClass: cls.EVENT_WINDOW_CANCEL_BUTTON_CLASS, content: this.l10n.getConstant('cancelButton') },\n click: this.dialogClose.bind(this)\n }];\n dialogModel.header = '
      ' + this.l10n.getConstant('newEvent') + '
      ';\n }\n this.dialogObject = new Dialog(dialogModel, this.element);\n if (this.dialogObject.element.querySelector('.e-dlg-closeicon-btn')) {\n this.dialogObject.element.querySelector('.e-dlg-closeicon-btn').setAttribute('title', this.l10n.getConstant('close'));\n }\n addClass([this.element.parentElement], cls.EVENT_WINDOW_DIALOG_CLASS + '-container');\n if (this.parent.isAdaptive) {\n EventHandler.add(this.element.querySelector('.' + cls.EVENT_WINDOW_BACK_ICON_CLASS), 'click', this.dialogClose, this);\n EventHandler.add(this.element.querySelector('.' + cls.EVENT_WINDOW_SAVE_ICON_CLASS), 'click', this.eventSave, this);\n }\n EventHandler.add(this.dialogObject.element, 'keydown', this.preventEventSave, this);\n this.applyFormValidation();\n };\n EventWindow.prototype.refresh = function () {\n this.destroy(true);\n this.renderEventWindow();\n };\n EventWindow.prototype.refreshRecurrenceEditor = function () {\n if (this.recurrenceEditor) {\n var recurrenceEditor = this.recurrenceEditor.element;\n this.recurrenceEditor.destroy();\n this.createRecurrenceEditor(recurrenceEditor);\n }\n };\n EventWindow.prototype.setRecurrenceEditor = function (recurrenceEditor) {\n if (this.parent.editorTemplate) {\n this.recurrenceEditor = recurrenceEditor;\n }\n };\n EventWindow.prototype.openEditor = function (data, type, isEventData, repeatType) {\n this.parent.currentAction = type;\n this.parent.removeNewEventElement();\n if (this.parent.quickPopup) {\n this.parent.quickPopup.quickPopupHide(true);\n }\n this.parent.inlineModule.removeInlineAppointmentElement();\n if (type === 'Add') {\n var eventObj = {};\n this.cellClickAction = !isEventData;\n this.parent.activeCellsData = data;\n var event_1 = data;\n if (this.cellClickAction) {\n this.convertToEventData(event_1, eventObj);\n }\n else {\n this.parent.activeCellsData = {\n startTime: (event_1.startTime || event_1[this.fields.startTime]),\n endTime: (event_1.endTime || event_1[this.fields.endTime]),\n isAllDay: (event_1.isAllDay || event_1[this.fields.isAllDay]),\n element: event_1.element,\n groupIndex: event_1.groupIndex\n };\n eventObj = event_1;\n }\n data = eventObj;\n }\n if (!isNullOrUndefined(this.parent.editorTemplate)) {\n this.renderFormElements(this.element.querySelector('.e-schedule-form'), data);\n }\n if (!this.parent.isAdaptive && isNullOrUndefined(this.parent.editorTemplate)) {\n removeClass([this.dialogObject.element.querySelector('.e-recurrenceeditor')], cls.DISABLE_CLASS);\n }\n if (this.recurrenceEditor) {\n this.recurrenceEditor.firstDayOfWeek = this.parent.activeViewOptions.firstDayOfWeek;\n }\n switch (type) {\n case 'Add':\n this.onCellDetailsUpdate(data, repeatType);\n break;\n case 'Save':\n case 'EditOccurrence':\n case 'EditSeries':\n case 'EditFollowingEvents':\n if (type === 'EditOccurrence' && !this.parent.isAdaptive && isNullOrUndefined(this.parent.editorTemplate)) {\n addClass([this.dialogObject.element.querySelector('.e-recurrenceeditor')], cls.DISABLE_CLASS);\n }\n this.cellClickAction = false;\n this.onEventDetailsUpdate(data);\n break;\n }\n };\n EventWindow.prototype.setDialogContent = function () {\n this.dialogObject.content = this.getEventWindowContent();\n this.dialogObject.dataBind();\n this.applyFormValidation();\n };\n EventWindow.prototype.preventEventSave = function (e) {\n if (this.parent && !this.parent.allowKeyboardInteraction && e.code === 'Enter') {\n this.isEnterKey = true;\n }\n };\n EventWindow.prototype.onBeforeOpen = function (args) {\n var _this = this;\n var endTime = this.eventData[this.fields.endTime].getTime();\n var eventProp = {\n type: 'Editor',\n data: this.eventData,\n cancel: false,\n element: this.element,\n target: (this.cellClickAction ? this.parent.activeCellsData.element : this.parent.activeEventData.element)\n };\n if (this.cellClickAction) {\n eventProp.duration = this.getSlotDuration();\n }\n var saveObj = this.getInstance(cls.EVENT_WINDOW_SAVE_BUTTON_CLASS);\n if (saveObj) {\n saveObj.disabled = !(this.cellClickAction ? this.parent.eventSettings.allowAdding : this.parent.eventSettings.allowEditing);\n saveObj.dataBind();\n }\n var deleteObj = this.getInstance(cls.DELETE_EVENT_CLASS);\n if (deleteObj) {\n deleteObj.disabled = !this.parent.eventSettings.allowDeleting;\n deleteObj.dataBind();\n }\n var callBackPromise = new Deferred();\n this.parent.trigger(event.popupOpen, eventProp, function (popupArgs) {\n args.cancel = popupArgs.cancel;\n _this.duration = _this.cellClickAction ? popupArgs.duration : null;\n if (_this.eventData[_this.fields.endTime].getTime() === endTime && !_this.cellClickAction &&\n _this.eventData[_this.fields.endTime].getHours() === 0 &&\n _this.eventData[_this.fields.endTime].getMinutes() === 0) {\n _this.eventData = extend({}, _this.eventData, null, true);\n _this.trimAllDay(_this.eventData);\n }\n _this.refreshDateTimePicker(_this.duration);\n if (_this.cellClickAction && popupArgs.duration !== _this.getSlotDuration() && isNullOrUndefined(_this.parent.editorTemplate)) {\n var startObj = _this.getInstance(cls.EVENT_WINDOW_START_CLASS);\n var endObj = _this.getInstance(cls.EVENT_WINDOW_END_CLASS);\n endObj.value = new Date(startObj.value.getTime() + (util.MS_PER_MINUTE * popupArgs.duration));\n endObj.dataBind();\n }\n if (_this.parent.editorTemplate && _this.element.querySelector('.e-recurrenceeditor') && !_this.recurrenceEditor) {\n _this.recurrenceEditor = _this.getInstance('e-recurrenceeditor');\n }\n callBackPromise.resolve(args);\n });\n return callBackPromise;\n };\n EventWindow.prototype.onBeforeClose = function (args) {\n var _this = this;\n if (args.isInteracted) {\n this.isCrudAction = false;\n }\n var eventProp = {\n type: 'Editor',\n event: args.event || this.dialogEvent,\n data: this.eventCrudData,\n cancel: false,\n element: this.element,\n target: (this.cellClickAction ? this.parent.activeCellsData.element : this.parent.activeEventData.element)\n };\n var callBackPromise = new Deferred();\n this.parent.trigger(event.popupClose, eventProp, function (popupArgs) {\n args.cancel = popupArgs.cancel;\n if (!popupArgs.cancel) {\n if (_this.isCrudAction) {\n args.cancel = _this.processCrudActions(popupArgs.data);\n _this.isCrudAction = args.cancel;\n }\n if (!_this.isCrudAction) {\n _this.resetForm();\n _this.parent.eventBase.focusElement(true);\n _this.eventCrudData = null;\n }\n }\n callBackPromise.resolve(args);\n });\n return callBackPromise;\n };\n EventWindow.prototype.getEventWindowContent = function () {\n var container = createElement('div', { className: cls.FORM_CONTAINER_CLASS });\n var form = createElement('form', {\n id: this.parent.element.id + 'EditForm',\n className: cls.FORM_CLASS,\n attrs: { onsubmit: 'return false;' }\n });\n this.renderFormElements(form);\n container.appendChild(form);\n return container;\n };\n EventWindow.prototype.renderFormElements = function (form, args) {\n var _this = this;\n if (!isNullOrUndefined(this.parent.editorTemplate)) {\n if (args) {\n if (this.fieldValidator) {\n this.fieldValidator.destroy();\n this.fieldValidator = null;\n }\n if (this.recurrenceEditor) {\n this.recurrenceEditor.destroy();\n this.recurrenceEditor = null;\n }\n this.destroyComponents();\n var formElements = [].slice.call(form.children);\n for (var _i = 0, formElements_1 = formElements; _i < formElements_1.length; _i++) {\n var element = formElements_1[_i];\n remove(element);\n }\n this.parent.resetTemplates(['editorTemplate']);\n }\n var templateId = this.parent.element.id + '_editorTemplate';\n var tempEle = [].slice.call(this.parent.getEditorTemplate()(args || {}, this.parent, 'editorTemplate', templateId, false));\n append(tempEle, form);\n this.parent.renderTemplates(function () {\n if (_this.element) {\n _this.applyFormValidation();\n }\n });\n }\n else {\n form.appendChild(this.getDefaultEventWindowContent());\n }\n };\n EventWindow.prototype.getDefaultEventWindowContent = function () {\n var parentDiv = this.createDivElement(cls.EVENT_WINDOW_DIALOG_PARENT_CLASS);\n var titleLocationDiv = this.createDivElement(cls.EVENT_WINDOW_TITLE_LOCATION_DIV_CLASS);\n parentDiv.appendChild(titleLocationDiv);\n titleLocationDiv.appendChild(this.renderTextBox(cls.SUBJECT_CLASS));\n titleLocationDiv.querySelector('.' + cls.SUBJECT_CLASS).setAttribute('title', this.parent.editorTitles.subject);\n titleLocationDiv.appendChild(this.renderTextBox(cls.LOCATION_CLASS));\n titleLocationDiv.querySelector('.' + cls.LOCATION_CLASS).setAttribute('title', this.parent.editorTitles.location);\n var startEndDateTimeDiv = this.createDivElement(cls.EVENT_WINDOW_START_END_DIV_CLASS);\n parentDiv.appendChild(startEndDateTimeDiv);\n startEndDateTimeDiv.appendChild(this.renderDateTimePicker(cls.EVENT_WINDOW_START_CLASS, this.onTimeChange.bind(this)));\n startEndDateTimeDiv.querySelector('.' + cls.EVENT_WINDOW_START_CLASS).setAttribute('title', this.parent.editorTitles.startTime);\n startEndDateTimeDiv.appendChild(this.renderDateTimePicker(cls.EVENT_WINDOW_END_CLASS));\n startEndDateTimeDiv.querySelector('.' + cls.EVENT_WINDOW_END_CLASS).setAttribute('title', this.parent.editorTitles.endTime);\n var allDayTimezoneDiv = this.createDivElement(cls.EVENT_WINDOW_ALLDAY_TZ_DIV_CLASS);\n parentDiv.appendChild(allDayTimezoneDiv);\n allDayTimezoneDiv.appendChild(this.renderCheckBox(cls.EVENT_WINDOW_ALL_DAY_CLASS));\n allDayTimezoneDiv.appendChild(this.renderCheckBox(cls.TIME_ZONE_CLASS));\n var timezoneParentDiv = this.createDivElement(cls.EVENT_WINDOW_TIME_ZONE_DIV_CLASS);\n parentDiv.appendChild(timezoneParentDiv);\n timezoneParentDiv.appendChild(this.renderDropDown(cls.EVENT_WINDOW_START_TZ_CLASS));\n timezoneParentDiv.appendChild(this.renderDropDown(cls.EVENT_WINDOW_END_TZ_CLASS));\n var repeatParentDiv = this.createDivElement(cls.EVENT_WINDOW_REPEAT_DIV_CLASS);\n parentDiv.appendChild(repeatParentDiv);\n var repeatDiv = this.renderCheckBox(cls.EVENT_WINDOW_REPEAT_CLASS);\n var repeatEditContainer = createElement('span', { className: REPEAT_CONTAINER_CLASS });\n var button = createElement('button', {\n className: REPEAT_BUTTON_CLASS,\n attrs: { type: 'button', 'title': this.l10n.getConstant('editRecurrence') }\n });\n this.buttonObj = new Button({ iconCss: REPEAT_BUTTON_ICON_CLASS + ' e-icons', cssClass: 'e-medium ' + this.parent.cssClass });\n repeatEditContainer.appendChild(button);\n this.buttonObj.appendTo(button);\n repeatDiv.appendChild(repeatEditContainer);\n repeatParentDiv.appendChild(repeatDiv);\n if (this.parent.isAdaptive) {\n EventHandler.add(button, 'click', this.loadRecurrenceEditor, this);\n }\n else {\n this.createRecurrenceEditor(parentDiv);\n }\n if (this.parent.resourceCollection.length > 0) {\n var resourceParentDiv = this.createDivElement(cls.EVENT_WINDOW_RESOURCES_DIV_CLASS);\n for (var _i = 0, _a = this.parent.resourceBase.resourceCollection; _i < _a.length; _i++) {\n var resource = _a[_i];\n resourceParentDiv.appendChild(this.renderResourceDetails(resource));\n }\n parentDiv.appendChild(resourceParentDiv);\n }\n var description = this.createDivElement(cls.DESCRIPTION_CLASS + '-row');\n description.appendChild(this.renderTextBox(cls.DESCRIPTION_CLASS));\n description.querySelector('.' + cls.DESCRIPTION_CLASS).setAttribute('title', this.parent.editorTitles.description);\n parentDiv.appendChild(description);\n var submit = createElement('button', { attrs: { type: 'hidden', title: 'submit', style: 'display:none' } });\n parentDiv.appendChild(submit);\n return parentDiv;\n };\n EventWindow.prototype.createRecurrenceEditor = function (parentDiv) {\n var recurrenceEditor = createElement('div', { id: this.parent.element.id + '_recurrence_editor' });\n parentDiv.appendChild(recurrenceEditor);\n this.recurrenceEditor = this.renderRecurrenceEditor();\n this.recurrenceEditor.appendTo(recurrenceEditor);\n this.updateMinMaxDateToEditor();\n };\n EventWindow.prototype.createDivElement = function (className) {\n return createElement('div', { className: className });\n };\n EventWindow.prototype.createInputElement = function (className, fieldName, type) {\n return createElement(type || 'input', {\n className: className, attrs: {\n type: 'text', name: fieldName, value: '', id: fieldName,\n title: ((this.l10n.getConstant(fieldName.charAt(0).toLowerCase() + fieldName.slice(1))) === '') ?\n fieldName : this.l10n.getConstant(fieldName.charAt(0).toLowerCase() + fieldName.slice(1))\n }\n });\n };\n EventWindow.prototype.getSlotDuration = function () {\n return this.parent.activeViewOptions.timeScale.interval / this.parent.activeViewOptions.timeScale.slotCount;\n };\n EventWindow.prototype.renderDateTimePicker = function (value, changeEvent) {\n var dateTimeDiv = this.createDivElement(value + '-container');\n var fieldName = this.getFieldName(value);\n var dateTimeInput = this.createInputElement(value + ' ' + EVENT_FIELD, fieldName);\n dateTimeDiv.appendChild(dateTimeInput);\n var dateTimePicker = new DateTimePicker({\n change: changeEvent,\n firstDayOfWeek: this.parent.activeViewOptions.firstDayOfWeek,\n calendarMode: this.parent.calendarMode,\n min: this.parent.minDate,\n max: new Date(new Date(+this.parent.maxDate).setHours(23, 59, 59)),\n cssClass: this.parent.cssClass,\n enableRtl: this.parent.enableRtl,\n locale: this.parent.locale,\n floatLabelType: 'Always',\n timeFormat: this.parent.activeViewOptions.timeFormat,\n format: (isNullOrUndefined(this.parent.dateFormat) ?\n this.getFormat('dateFormats') : this.parent.dateFormat) + ' ' + this.parent.activeViewOptions.timeFormat,\n placeholder: this.getFieldLabel(value),\n step: this.getSlotDuration(),\n width: '100%'\n });\n dateTimePicker.appendTo(dateTimeInput);\n return dateTimeDiv;\n };\n EventWindow.prototype.refreshDateTimePicker = function (duration) {\n var elementSelector = '.' + cls.EVENT_WINDOW_START_CLASS + ',.' + cls.EVENT_WINDOW_END_CLASS;\n var startEndElement = [].slice.call(this.element.querySelectorAll(elementSelector));\n for (var _i = 0, startEndElement_1 = startEndElement; _i < startEndElement_1.length; _i++) {\n var element = startEndElement_1[_i];\n var instance = element.ej2_instances[0];\n instance.firstDayOfWeek = this.parent.activeViewOptions.firstDayOfWeek;\n instance.timeFormat = this.parent.activeViewOptions.timeFormat;\n instance.step = duration || this.getSlotDuration();\n instance.dataBind();\n }\n };\n EventWindow.prototype.onTimeChange = function () {\n var startObj = this.getInstance(cls.EVENT_WINDOW_START_CLASS);\n if (startObj.element.parentElement.classList.contains('e-input-focus')) {\n var endObj = this.getInstance(cls.EVENT_WINDOW_END_CLASS);\n var duration = 0;\n if (this.cellClickAction) {\n duration = util.MS_PER_MINUTE * this.duration;\n this.eventWindowTime.startTime = startObj.value;\n }\n else {\n duration = this.eventData[this.fields.endTime].getTime() - this.eventData[this.fields.startTime].getTime();\n }\n var endDate = (isNullOrUndefined(startObj.value)) ? null : new Date(startObj.value.getTime() + duration);\n if (this.cellClickAction) {\n this.eventWindowTime.endTime = endDate;\n }\n endObj.value = endDate;\n endObj.dataBind();\n }\n if (this.recurrenceEditor) {\n this.recurrenceEditor.updateRuleUntilDate(this.eventWindowTime.startTime);\n }\n };\n EventWindow.prototype.renderResourceDetails = function (resourceData) {\n var fieldName = resourceData.field;\n var value = 'e-' + fieldName;\n var labelValue = resourceData.title;\n var resourceDiv = this.createDivElement(value + '-container' + ' ' + 'e-resources');\n var resourceInput = this.createInputElement(value + ' ' + EVENT_FIELD, fieldName);\n resourceDiv.appendChild(resourceInput);\n var resourceTemplate = '
      ${' + resourceData.textField + '}
      ';\n if (resourceData.allowMultiple) {\n var listObj = new MultiSelect({\n enableRtl: this.parent.enableRtl,\n enableHtmlSanitizer: this.parent.enableHtmlSanitizer,\n cssClass: this.parent.cssClass || '',\n dataSource: resourceData.dataSource,\n change: this.onMultiselectResourceChange.bind(this),\n itemTemplate: resourceTemplate,\n fields: {\n text: resourceData.textField,\n value: resourceData.idField\n },\n htmlAttributes: { 'title': labelValue, 'name': fieldName },\n floatLabelType: 'Always',\n placeholder: labelValue,\n popupHeight: '230px',\n popupWidth: '447px',\n mode: 'Box'\n });\n listObj.appendTo(resourceInput);\n }\n else {\n var dropDownList = new DropDownList({\n cssClass: this.parent.cssClass || '',\n change: this.onDropdownResourceChange.bind(this),\n dataSource: resourceData.dataSource,\n enableRtl: this.parent.enableRtl,\n fields: {\n text: resourceData.textField,\n value: resourceData.idField\n },\n htmlAttributes: { 'title': labelValue, 'name': fieldName },\n floatLabelType: 'Always',\n placeholder: labelValue,\n popupHeight: '230px',\n popupWidth: '447px',\n itemTemplate: resourceTemplate\n });\n dropDownList.appendTo(resourceInput);\n }\n return resourceDiv;\n };\n EventWindow.prototype.renderDropDown = function (value) {\n var _this = this;\n var fieldName = this.getFieldName(value);\n var timezoneDiv = this.createDivElement(value + '-container');\n var timezoneInput = this.createInputElement(value + ' ' + EVENT_FIELD, fieldName);\n timezoneDiv.appendChild(timezoneInput);\n var dropDownList = new DropDownList({\n allowFiltering: true,\n change: this.onTimezoneChange.bind(this),\n cssClass: this.parent.cssClass || '',\n dataSource: this.parent.timezoneDataSource,\n enableRtl: this.parent.enableRtl,\n fields: { text: 'Text', value: 'Value' },\n filterBarPlaceholder: this.parent.localeObj.getConstant('searchTimezone'),\n noRecordsTemplate: this.parent.localeObj.getConstant('noRecords'),\n filtering: function (e) {\n var query = new Query();\n query = (e.text !== '') ? query.where('Text', 'contains', e.text, true) : query;\n e.updateData(_this.parent.timezoneDataSource, query);\n },\n htmlAttributes: { 'title': this.getFieldLabel(value), 'name': fieldName, role: 'option' },\n floatLabelType: 'Always',\n placeholder: this.getFieldLabel(value),\n popupHeight: '230px'\n });\n dropDownList.appendTo(timezoneInput);\n return timezoneDiv;\n };\n EventWindow.prototype.onMultiselectResourceChange = function (args) {\n if (!args.value || !this.parent.activeViewOptions.group.byGroupID || this.parent.resourceCollection.length <= 1) {\n return;\n }\n var resourceCollection = this.parent.resourceBase.resourceCollection;\n var fieldName = args.element.getAttribute('name') || this.getColumnName(args.element);\n for (var i = 0; i < resourceCollection.length; i++) {\n if (resourceCollection[parseInt(i.toString(), 10)].field === fieldName && i < resourceCollection.length - 1) {\n var resObject = this.createInstance(i);\n var datasource = [];\n var _loop_1 = function (j) {\n var resourceModel = resourceCollection[i + 1];\n // eslint-disable-next-line max-len\n var filter = resourceModel.dataSource.filter(function (data) {\n return data[resourceModel.groupIDField] === args.value[parseInt(j.toString(), 10)];\n })[0];\n var groupId = (!isNullOrUndefined(filter)) ?\n filter[resourceCollection[i + 1].groupIDField] : null;\n var filterRes = this_1.filterDatasource(i, groupId);\n datasource = datasource.concat(filterRes);\n };\n var this_1 = this;\n for (var j = 0; j < args.value.length; j++) {\n _loop_1(j);\n }\n resObject.dataSource = datasource;\n resObject.dataBind();\n }\n }\n };\n EventWindow.prototype.createInstance = function (index) {\n var resourceData = this.parent.resourceBase.resourceCollection[index + 1];\n var resObject = this.element.querySelector('.e-' + resourceData.field).\n ej2_instances[0];\n resObject.clear();\n return resObject;\n };\n EventWindow.prototype.onDropdownResourceChange = function (args) {\n if (!args.value || this.parent.resourceCollection.length <= 1 || !this.parent.activeViewOptions.group.byGroupID) {\n return;\n }\n var fieldName = args.element.getAttribute('name') || this.getColumnName(args.element);\n var resourceCollection = this.parent.resourceBase.resourceCollection;\n for (var i = 0; i < resourceCollection.length; i++) {\n if ((i < resourceCollection.length - 1) && resourceCollection[parseInt(i.toString(), 10)].field === fieldName) {\n var resObj = this.createInstance(i);\n var groupId = args.itemData[resourceCollection[parseInt(i.toString(), 10)].idField];\n resObj.dataSource = this.filterDatasource(i, groupId);\n resObj.dataBind();\n var resValue = (resObj.dataSource.length > 0) ?\n resObj.dataSource[0][resourceCollection[i + 1].idField] : null;\n resObj.value = (resourceCollection[i + 1].allowMultiple) ? [resValue] : resValue;\n resObj.dataBind();\n }\n }\n };\n EventWindow.prototype.filterDatasource = function (index, groupId) {\n var resourceData = this.parent.resourceBase.resourceCollection[index + 1];\n return resourceData.dataSource.filter(function (data) {\n return data[resourceData.groupIDField] === groupId;\n });\n };\n EventWindow.prototype.onTimezoneChange = function (args) {\n var fieldName = args.element.getAttribute('name') || this.getColumnName(args.element);\n if (fieldName === this.parent.eventFields.startTimezone) {\n var startTimezoneObj = this.getInstance(cls.EVENT_WINDOW_START_TZ_CLASS);\n var endTimezoneObj = this.getInstance(cls.EVENT_WINDOW_END_TZ_CLASS);\n endTimezoneObj.value = startTimezoneObj.value;\n endTimezoneObj.dataBind();\n }\n };\n EventWindow.prototype.renderCheckBox = function (value) {\n var checkBoxDiv = this.createDivElement(value + '-container');\n var fieldName = this.getFieldName(value);\n var checkBoxInput = this.createInputElement(value + ' ' + EVENT_FIELD, fieldName);\n checkBoxDiv.appendChild(checkBoxInput);\n var checkBox = new CheckBox({\n change: this.onChange.bind(this),\n cssClass: value + ' ' + this.parent.cssClass,\n enableRtl: this.parent.enableRtl,\n enableHtmlSanitizer: this.parent.enableHtmlSanitizer,\n label: this.getFieldLabel(value)\n });\n checkBox.appendTo(checkBoxInput);\n checkBoxInput.setAttribute('name', fieldName);\n if (fieldName === 'Repeat') {\n this.repeatStatus = checkBox;\n }\n return checkBoxDiv;\n };\n EventWindow.prototype.renderTextBox = function (value) {\n var textBoxDiv = this.createDivElement(value + '-container');\n var fieldName = this.getFieldName(value);\n var elementType = (value === cls.DESCRIPTION_CLASS) ? 'textarea' : 'input';\n var textBoxInput = this.createInputElement(value + ' ' + EVENT_FIELD, fieldName, elementType);\n textBoxDiv.appendChild(textBoxInput);\n Input.createInput({\n element: textBoxInput,\n floatLabelType: 'Always',\n properties: {\n enableRtl: this.parent.enableRtl,\n placeholder: this.getFieldLabel(value)\n }\n });\n return textBoxDiv;\n };\n EventWindow.prototype.getFieldName = function (name) {\n var fieldName = '';\n switch (name) {\n case cls.SUBJECT_CLASS:\n fieldName = this.fields.subject;\n break;\n case cls.LOCATION_CLASS:\n fieldName = this.fields.location;\n break;\n case cls.EVENT_WINDOW_START_CLASS:\n fieldName = this.fields.startTime;\n break;\n case cls.EVENT_WINDOW_END_CLASS:\n fieldName = this.fields.endTime;\n break;\n case cls.DESCRIPTION_CLASS:\n fieldName = this.fields.description;\n break;\n case cls.EVENT_WINDOW_ALL_DAY_CLASS:\n fieldName = this.fields.isAllDay;\n break;\n case cls.EVENT_WINDOW_START_TZ_CLASS:\n fieldName = this.fields.startTimezone;\n break;\n case cls.EVENT_WINDOW_END_TZ_CLASS:\n fieldName = this.fields.endTimezone;\n break;\n case cls.TIME_ZONE_CLASS:\n fieldName = 'Timezone';\n break;\n case cls.EVENT_WINDOW_REPEAT_CLASS:\n fieldName = 'Repeat';\n break;\n }\n return fieldName;\n };\n EventWindow.prototype.getFieldLabel = function (fieldName) {\n var labelText = '';\n switch (fieldName) {\n case cls.SUBJECT_CLASS:\n labelText = this.parent.editorTitles.subject;\n break;\n case cls.LOCATION_CLASS:\n labelText = this.parent.editorTitles.location;\n break;\n case cls.DESCRIPTION_CLASS:\n labelText = this.parent.editorTitles.description;\n break;\n case cls.EVENT_WINDOW_START_CLASS:\n labelText = this.parent.editorTitles.startTime;\n break;\n case cls.EVENT_WINDOW_END_CLASS:\n labelText = this.parent.editorTitles.endTime;\n break;\n case cls.EVENT_WINDOW_START_TZ_CLASS:\n labelText = this.parent.editorTitles.startTimezone;\n break;\n case cls.EVENT_WINDOW_END_TZ_CLASS:\n labelText = this.parent.editorTitles.endTimezone;\n break;\n case cls.EVENT_WINDOW_REPEAT_CLASS:\n labelText = this.parent.editorTitles.recurrenceRule;\n break;\n case cls.EVENT_WINDOW_ALL_DAY_CLASS:\n labelText = this.parent.editorTitles.isAllDay;\n break;\n case cls.TIME_ZONE_CLASS:\n labelText = this.l10n.getConstant('timezone');\n break;\n }\n return labelText;\n };\n EventWindow.prototype.onChange = function (args) {\n var targetSelector = \".\" + cls.EVENT_WINDOW_ALL_DAY_CLASS + \",.\" + cls.TIME_ZONE_CLASS + \",.\" + cls.EVENT_WINDOW_REPEAT_CLASS;\n var target = closest(args.event.target, targetSelector);\n if (target.classList.contains(cls.EVENT_WINDOW_ALL_DAY_CLASS)) {\n this.onAllDayChange(args.checked);\n }\n else if (target.classList.contains(cls.TIME_ZONE_CLASS)) {\n this.timezoneChangeStyle(args.checked);\n }\n else if (target.classList.contains(cls.EVENT_WINDOW_REPEAT_CLASS)) {\n this.onRepeatChange(args.checked);\n }\n };\n EventWindow.prototype.renderRepeatDialog = function () {\n var element = createElement('div');\n this.repeatDialogObject = new Dialog({\n header: this.l10n.getConstant('recurrence'),\n visible: false,\n content: '
      ',\n closeOnEscape: true,\n width: '90%',\n buttons: [{\n click: this.repeatSaveDialog.bind(this),\n buttonModel: { content: this.l10n.getConstant('save'), cssClass: 'e-save', isPrimary: true }\n },\n { click: this.repeatCancelDialog.bind(this), buttonModel: { cssClass: 'e-cancel', content: this.l10n.getConstant('cancel') } }],\n target: this.element,\n animationSettings: { effect: 'Zoom' },\n enableRtl: this.parent.enableRtl,\n enableHtmlSanitizer: this.parent.enableHtmlSanitizer,\n isModal: true,\n cssClass: REPEAT_DIALOG_CLASS,\n open: this.repeatOpenDialog.bind(this)\n });\n this.element.appendChild(element);\n this.repeatDialogObject.appendTo(element);\n this.createRecurrenceEditor(this.repeatDialogObject.element.querySelector('.e-rec-editor'));\n };\n EventWindow.prototype.loadRecurrenceEditor = function () {\n this.repeatDialogObject.show();\n if (this.recurrenceEditor && this.repeatRule) {\n this.recurrenceEditor.setRecurrenceRule(this.repeatRule);\n }\n };\n EventWindow.prototype.onRepeatChange = function (state) {\n if (state) {\n if (!this.repeatDialogObject) {\n this.renderRepeatDialog();\n }\n this.recurrenceEditor.setProperties({ startDate: this.repeatStartDate, selectedType: 0 });\n this.loadRecurrenceEditor();\n }\n else {\n if (this.repeatDialogObject) {\n this.repeatDialogObject.hide();\n }\n this.repeatRule = '';\n if (this.recurrenceEditor) {\n this.recurrenceEditor.setRecurrenceRule(this.repeatRule);\n this.updateRepeatLabel(this.repeatRule);\n }\n var element = this.element.querySelector('.' + REPEAT_CONTAINER_CLASS);\n addClass([element], HIDE_STYLE_CLASS);\n }\n };\n EventWindow.prototype.repeatSaveDialog = function () {\n this.repeatRule = this.recurrenceEditor.getRecurrenceRule();\n var element = this.element.querySelector('.' + REPEAT_CONTAINER_CLASS);\n if (this.recurrenceEditor.getRecurrenceRule()) {\n removeClass([element], HIDE_STYLE_CLASS);\n }\n else {\n addClass([element], HIDE_STYLE_CLASS);\n this.repeatStatus.setProperties({ checked: false });\n }\n this.updateRepeatLabel(this.repeatRule);\n this.closeRepeatDialog();\n };\n EventWindow.prototype.closeRepeatDialog = function () {\n this.repeatDialogObject.hide();\n };\n EventWindow.prototype.repeatCancelDialog = function () {\n this.closeRepeatDialog();\n if (this.recurrenceEditor) {\n this.recurrenceEditor.setRecurrenceRule(this.repeatTempRule);\n }\n if (!this.repeatTempRule) {\n this.repeatStatus.setProperties({ checked: false });\n }\n };\n EventWindow.prototype.repeatOpenDialog = function () {\n this.repeatTempRule = this.recurrenceEditor.getRecurrenceRule();\n };\n EventWindow.prototype.onCellDetailsUpdate = function (eventObj, repeatType) {\n if (!this.parent.eventSettings.allowAdding) {\n return;\n }\n if (this.parent.isAdaptive && repeatType && !this.repeatDialogObject) {\n this.renderRepeatDialog();\n }\n this.element.querySelector('.' + cls.FORM_CLASS).removeAttribute('data-id');\n this.element.querySelector('.' + cls.EVENT_WINDOW_TITLE_TEXT_CLASS).innerHTML = this.l10n.getConstant('newEvent');\n eventObj.Timezone = false;\n this.repeatStartDate = eventObj[this.fields.startTime];\n this.repeatRule = '';\n if (!isNullOrUndefined(this.parent.eventSettings.fields.subject.default)) {\n eventObj[this.fields.subject] = this.parent.eventSettings.fields.subject.default;\n }\n if (!isNullOrUndefined(this.parent.eventSettings.fields.location.default)) {\n eventObj[this.fields.location] = this.parent.eventSettings.fields.location.default;\n }\n if (!isNullOrUndefined(this.parent.eventSettings.fields.description.default)) {\n eventObj[this.fields.description] = this.parent.eventSettings.fields.description.default;\n }\n this.showDetails(eventObj);\n if (eventObj[this.fields.recurrenceRule] && this.recurrenceEditor) {\n this.recurrenceEditor.setRecurrenceRule(eventObj[this.fields.recurrenceRule], eventObj[this.fields.startTime]);\n this.repeatRule = eventObj[this.fields.recurrenceRule];\n }\n var deleteButton = this.element.querySelector('.' + cls.DELETE_EVENT_CLASS);\n if (deleteButton) {\n addClass([deleteButton], cls.DISABLE_CLASS);\n }\n if (this.recurrenceEditor) {\n this.recurrenceEditor.setProperties({\n startDate: eventObj[this.fields.startTime],\n selectedType: !isNullOrUndefined(repeatType) ? repeatType : !isNullOrUndefined(eventObj[this.fields.recurrenceRule]) ?\n this.recurrenceEditor.selectedType : 0\n });\n this.repeatRule = this.recurrenceEditor.value;\n }\n if (this.parent.isAdaptive && isNullOrUndefined(this.parent.editorTemplate)) {\n var element = this.element.querySelector('.' + REPEAT_CONTAINER_CLASS);\n if (eventObj[this.fields.recurrenceRule] || repeatType) {\n removeClass([element], HIDE_STYLE_CLASS);\n this.repeatStatus.setProperties({ checked: true });\n }\n else {\n addClass([element], HIDE_STYLE_CLASS);\n this.repeatStatus.setProperties({ checked: false });\n }\n this.updateRepeatLabel(this.repeatRule);\n }\n else {\n var saveButton = this.element.querySelector('.' + cls.EVENT_WINDOW_SAVE_BUTTON_CLASS);\n this.disableButton(saveButton, false);\n }\n this.dialogObject.show();\n };\n EventWindow.prototype.convertToEventData = function (cellsData, eventObj) {\n if (cellsData.subject) {\n eventObj[this.fields.subject] = cellsData.subject;\n }\n eventObj[this.fields.startTime] = cellsData.startTime;\n eventObj[this.fields.endTime] = cellsData.endTime;\n eventObj[this.fields.isAllDay] = cellsData.isAllDay;\n if (cellsData.RecurrenceRule) {\n eventObj[this.fields.recurrenceRule] = cellsData.RecurrenceRule;\n }\n if (this.parent.resourceCollection.length > 0 || this.parent.activeViewOptions.group.resources.length > 0) {\n this.parent.resourceBase.setResourceValues(eventObj);\n }\n };\n EventWindow.prototype.applyFormValidation = function () {\n var form = this.element.querySelector('.' + cls.FORM_CLASS);\n if (!form) {\n return;\n }\n var getValidationRule = function (rules) {\n return (rules && Object.keys(rules).length > 0) ? rules : undefined;\n };\n var rules = {};\n var subjectRule = getValidationRule(this.parent.eventSettings.fields.subject.validation);\n if (!isNullOrUndefined(subjectRule)) {\n rules[this.parent.eventSettings.fields.subject.name] = subjectRule;\n }\n var locationRule = getValidationRule(this.parent.eventSettings.fields.location.validation);\n if (!isNullOrUndefined(locationRule)) {\n rules[this.parent.eventSettings.fields.location.name] = locationRule;\n }\n var startTimeRule = getValidationRule(this.parent.eventSettings.fields.startTime.validation);\n if (!isNullOrUndefined(startTimeRule)) {\n rules[this.parent.eventSettings.fields.startTime.name] = startTimeRule;\n }\n var endTimeRule = getValidationRule(this.parent.eventSettings.fields.endTime.validation);\n if (!isNullOrUndefined(endTimeRule)) {\n rules[this.parent.eventSettings.fields.endTime.name] = endTimeRule;\n }\n var descriptionRule = getValidationRule(this.parent.eventSettings.fields.description.validation);\n if (!isNullOrUndefined(descriptionRule)) {\n rules[this.parent.eventSettings.fields.description.name] = descriptionRule;\n }\n this.fieldValidator = new FieldValidator();\n this.fieldValidator.renderFormValidator(form, rules, this.element, this.parent.locale);\n };\n EventWindow.prototype.showDetails = function (eventData) {\n this.eventData = eventData;\n var eventObj = extend({}, eventData, null, true);\n if ((!this.cellClickAction || this.cellClickAction && !isNullOrUndefined(this.parent.editorTemplate)) &&\n eventObj[this.fields.endTime].getHours() === 0 && eventObj[this.fields.endTime].getMinutes() === 0) {\n this.trimAllDay(eventObj);\n }\n var formElements = this.getFormElements(cls.EVENT_WINDOW_DIALOG_CLASS);\n var keyNames = Object.keys(eventObj);\n for (var _i = 0, formElements_2 = formElements; _i < formElements_2.length; _i++) {\n var curElement = formElements_2[_i];\n var columnName = curElement.name || this.getColumnName(curElement);\n if (!isNullOrUndefined(columnName) && columnName !== '') {\n if (keyNames.indexOf(columnName) !== -1) {\n this.setValueToElement(curElement, eventObj[\"\" + columnName]);\n }\n else {\n this.setDefaultValueToElement(curElement);\n }\n }\n }\n if (isNullOrUndefined(this.parent.editorTemplate)) {\n this.onAllDayChange(eventObj[this.fields.isAllDay]);\n var timezoneObj = this.getInstance(cls.TIME_ZONE_CLASS + '.' + EVENT_FIELD);\n if (!(isNullOrUndefined(eventObj[this.fields.startTimezone]) && isNullOrUndefined(eventObj[this.fields.endTimezone]))) {\n timezoneObj.checked = true;\n timezoneObj.dataBind();\n }\n this.timezoneChangeStyle(timezoneObj.checked);\n delete eventObj.Timezone;\n }\n };\n EventWindow.prototype.getColumnName = function (element) {\n var attrName = element.getAttribute('data-name') || '';\n if (attrName === '') {\n var isDropDowns = false;\n var fieldSelector = '';\n if (element.classList.contains('e-dropdownlist')) {\n fieldSelector = 'e-ddl';\n isDropDowns = true;\n }\n else if (element.classList.contains('e-multiselect')) {\n fieldSelector = 'e-multiselect';\n isDropDowns = true;\n }\n else if (element.classList.contains('e-datetimepicker')) {\n fieldSelector = 'e-datetimepicker';\n }\n else if (element.classList.contains('e-datepicker')) {\n fieldSelector = 'e-datepicker';\n }\n else if (element.classList.contains('e-checkbox')) {\n fieldSelector = 'e-checkbox';\n }\n var classSelector = isDropDowns ? \".\" + fieldSelector + \":not(.e-control)\" : \".\" + fieldSelector;\n var control = closest(element, classSelector) || element.querySelector(\".\" + fieldSelector);\n if (control) {\n var attrEle = control.querySelector('[name]');\n if (attrEle) {\n attrName = attrEle.name;\n }\n }\n }\n return attrName;\n };\n EventWindow.prototype.onAllDayChange = function (allDayStatus) {\n var startObj = this.getInstance(cls.EVENT_WINDOW_START_CLASS);\n var endObj = this.getInstance(cls.EVENT_WINDOW_END_CLASS);\n var timezoneDiv = this.element.querySelector('.e-time-zone-container');\n var format;\n if (allDayStatus) {\n format = (isNullOrUndefined(this.parent.dateFormat)) ? this.getFormat('dateFormats') : this.parent.dateFormat;\n addClass(this.element.querySelectorAll('.e-time-icon'), cls.EVENT_WINDOW_ICON_DISABLE_CLASS);\n addClass([timezoneDiv], cls.DISABLE_CLASS);\n if (this.element.querySelector('.' + cls.EVENT_WINDOW_TIME_ZONE_DIV_CLASS)) {\n removeClass([this.element.querySelector('.' + cls.EVENT_WINDOW_TIME_ZONE_DIV_CLASS)], cls.ENABLE_CLASS);\n }\n startObj.format = endObj.format = format;\n }\n else {\n format = (isNullOrUndefined(this.parent.dateFormat)) ? this.getFormat('dateFormats') + ' ' +\n this.parent.activeViewOptions.timeFormat : this.parent.dateFormat + ' ' + this.parent.activeViewOptions.timeFormat;\n removeClass(this.element.querySelectorAll('.e-time-icon'), cls.EVENT_WINDOW_ICON_DISABLE_CLASS);\n removeClass([timezoneDiv], cls.DISABLE_CLASS);\n if (this.element.querySelector('.e-checkbox-wrapper .e-time-zone').checked) {\n addClass([this.element.querySelector('.' + cls.EVENT_WINDOW_TIME_ZONE_DIV_CLASS)], cls.ENABLE_CLASS);\n }\n startObj.format = endObj.format = format;\n }\n if (this.cellClickAction) {\n this.updateDateTime(allDayStatus, startObj, endObj);\n }\n startObj.dataBind();\n endObj.dataBind();\n if (!isNullOrUndefined(this.recurrenceEditor)) {\n this.recurrenceEditor.updateRuleUntilDate(startObj.value);\n }\n };\n EventWindow.prototype.updateDateTime = function (allDayStatus, startObj, endObj) {\n var startDate;\n var endDate;\n if (allDayStatus) {\n startDate = util.resetTime(new Date(this.eventWindowTime.startTime.getTime()));\n if (this.parent.activeCellsData.isAllDay) {\n var temp = util.addDays(new Date(this.eventWindowTime.endTime.getTime()), -1).getTime();\n endDate = (+this.eventWindowTime.startTime > temp) ? this.eventWindowTime.endTime : new Date(temp);\n }\n else {\n endDate = util.resetTime(new Date(this.eventWindowTime.endTime.getTime()));\n }\n }\n else {\n var start = this.parent.activeCellsData.startTime;\n startDate = new Date(this.eventWindowTime.startTime.getTime());\n startDate.setHours(start.getHours(), start.getMinutes(), start.getSeconds());\n if (this.parent.activeCellsData.isAllDay) {\n var startHour = this.parent.getStartEndTime(this.parent.workHours.start);\n startDate.setHours(startHour.getHours(), startHour.getMinutes(), startHour.getSeconds());\n endDate = new Date(startDate.getTime());\n endDate.setMilliseconds(util.MS_PER_MINUTE * this.getSlotDuration());\n }\n else {\n endDate = new Date(startDate.getTime());\n endDate.setMilliseconds(this.parent.activeCellsData.endTime.getTime() - this.parent.activeCellsData.startTime.getTime());\n }\n }\n this.eventWindowTime = { startTime: new Date(startDate.getTime()), endTime: new Date(endDate.getTime()) };\n startObj.value = startDate;\n endObj.value = endDate;\n startObj.dataBind();\n endObj.dataBind();\n };\n EventWindow.prototype.getFormat = function (formatType) {\n var format;\n if (this.parent.locale === 'en' || this.parent.locale === 'en-US') {\n format = getValue(formatType + '.short', getDefaultDateObject(this.parent.getCalendarMode()));\n }\n else {\n format = getValue(\"main.\" + this.parent.locale + \".dates.calendars.\" + this.parent.getCalendarMode() + \".\" + formatType + \".short\", cldrData);\n }\n return format;\n };\n EventWindow.prototype.onEventDetailsUpdate = function (eventObj) {\n if (!this.parent.eventSettings.allowEditing) {\n return;\n }\n if (!this.parent.isAdaptive) {\n removeClass([this.element.querySelector('.' + cls.DELETE_EVENT_CLASS)], cls.DISABLE_CLASS);\n }\n this.element.querySelector('.' + cls.EVENT_WINDOW_TITLE_TEXT_CLASS).innerHTML = this.l10n.getConstant('editEvent');\n this.element.querySelector('.' + cls.FORM_CLASS).setAttribute('data-id', eventObj[this.fields.id].toString());\n if (isNullOrUndefined(this.parent.editorTemplate)) {\n eventObj = extend({}, eventObj, null, true);\n var timezoneObj = this.getInstance(cls.TIME_ZONE_CLASS + '.' + EVENT_FIELD);\n var timezoneValue = void 0;\n if (eventObj[this.fields.startTimezone] || eventObj[this.fields.endTimezone]) {\n timezoneValue = true;\n this.parent.eventBase.timezoneConvert(eventObj);\n }\n else {\n timezoneValue = false;\n }\n eventObj.Timezone = timezoneValue;\n timezoneObj.checked = timezoneValue;\n timezoneObj.dataBind();\n }\n this.showDetails(eventObj);\n if (eventObj[this.fields.recurrenceRule] && this.recurrenceEditor) {\n this.recurrenceEditor.setRecurrenceRule(eventObj[this.fields.recurrenceRule], eventObj[this.fields.startTime]);\n }\n else if (!this.parent.isAdaptive && this.recurrenceEditor) {\n this.recurrenceEditor.setProperties({ startDate: eventObj[this.fields.startTime] });\n this.recurrenceEditor.setRecurrenceRule('');\n }\n this.repeatStartDate = eventObj[this.fields.startTime];\n this.repeatRule = '';\n if (eventObj[this.fields.recurrenceRule]) {\n if (this.recurrenceEditor) {\n this.recurrenceEditor.setRecurrenceRule(eventObj[this.fields.recurrenceRule], eventObj[this.fields.startTime]);\n }\n this.repeatRule = eventObj[this.fields.recurrenceRule];\n }\n if (this.parent.isAdaptive && isNullOrUndefined(this.parent.editorTemplate)) {\n var element = this.element.querySelector('.' + REPEAT_CONTAINER_CLASS);\n if (eventObj[this.fields.recurrenceRule]) {\n removeClass([element], HIDE_STYLE_CLASS);\n this.repeatStatus.setProperties({ checked: true });\n }\n else {\n addClass([element], HIDE_STYLE_CLASS);\n this.repeatStatus.setProperties({ checked: false });\n }\n this.updateRepeatLabel(this.repeatRule);\n }\n var isDisable = (this.parent.readonly || eventObj[this.fields.isReadonly]);\n if (!this.parent.isAdaptive) {\n var saveButton = this.element.querySelector('.' + cls.EVENT_WINDOW_SAVE_BUTTON_CLASS);\n var deleteButton = this.element.querySelector('.' + cls.DELETE_EVENT_CLASS);\n this.disableButton(saveButton, isDisable);\n this.disableButton(deleteButton, isDisable);\n }\n else {\n var saveIcon = this.element.querySelector('.' + cls.EVENT_WINDOW_SAVE_ICON_CLASS);\n if (saveIcon) {\n if (isDisable) {\n addClass([saveIcon], cls.ICON_DISABLE_CLASS);\n }\n else {\n removeClass([saveIcon], cls.ICON_DISABLE_CLASS);\n }\n }\n }\n this.dialogObject.show();\n };\n EventWindow.prototype.disableButton = function (element, value) {\n if (element) {\n element.ej2_instances[0].disabled = value;\n }\n };\n EventWindow.prototype.renderRecurrenceEditor = function () {\n return new RecurrenceEditor({\n calendarMode: this.parent.calendarMode,\n cssClass: this.parent.cssClass,\n dateFormat: this.parent.dateFormat,\n enableRtl: this.parent.enableRtl,\n firstDayOfWeek: this.parent.activeViewOptions.firstDayOfWeek,\n locale: this.parent.locale\n });\n };\n EventWindow.prototype.updateMinMaxDateToEditor = function () {\n var startDate = this.element.querySelector('.e-start');\n var endDate = this.element.querySelector('.e-end');\n if (startDate && endDate) {\n var startObj = startDate.ej2_instances[0];\n var endObj = endDate.ej2_instances[0];\n startObj.min = this.parent.minDate;\n startObj.max = this.parent.maxDate;\n endObj.min = this.parent.minDate;\n endObj.max = this.parent.maxDate;\n startObj.dataBind();\n endObj.dataBind();\n }\n if (this.recurrenceEditor) {\n var untilDate = this.recurrenceEditor.element.querySelector('.e-until-date');\n if (untilDate) {\n var untilObj = untilDate.ej2_instances[0];\n untilObj.min = this.parent.minDate;\n untilObj.max = this.parent.maxDate;\n untilObj.dataBind();\n }\n }\n };\n EventWindow.prototype.updateRepeatLabel = function (repeatRule) {\n if (this.parent.isAdaptive && !this.repeatDialogObject) {\n this.renderRepeatDialog();\n }\n var data = repeatRule ?\n (this.l10n.getConstant('repeats') + ' ' + this.recurrenceEditor.getRuleSummary(repeatRule)) : this.l10n.getConstant('repeat');\n this.repeatStatus.setProperties({ label: data });\n };\n EventWindow.prototype.dialogClose = function (event) {\n if (this.isEnterKey) {\n this.isEnterKey = false;\n return;\n }\n this.dialogEvent = event;\n this.isCrudAction = false;\n this.parent.activeEventData = { event: undefined, element: undefined };\n this.parent.currentAction = null;\n this.dialogObject.hide();\n };\n EventWindow.prototype.resetForm = function () {\n this.fieldValidator.destroyToolTip();\n this.resetFormFields();\n if (!this.parent.isAdaptive && this.recurrenceEditor && !this.recurrenceEditor.isDestroyed) {\n this.recurrenceEditor.resetFields();\n }\n };\n EventWindow.prototype.timezoneChangeStyle = function (value) {\n var timezoneDiv = this.element.querySelector('.' + cls.EVENT_WINDOW_TIME_ZONE_DIV_CLASS);\n var localTimezoneName = this.parent.tzModule.getLocalTimezoneName();\n if (value) {\n addClass([timezoneDiv], cls.ENABLE_CLASS);\n var startTimezoneObj = this.getInstance(cls.EVENT_WINDOW_START_TZ_CLASS);\n var endTimezoneObj = this.getInstance(cls.EVENT_WINDOW_END_TZ_CLASS);\n var timezone = startTimezoneObj.dataSource;\n if (!startTimezoneObj.value || !this.parent.timezone) {\n var found = timezone.some(function (tz) { return tz.Value === localTimezoneName; });\n if (!found) {\n timezone.push({ Value: localTimezoneName, Text: localTimezoneName });\n startTimezoneObj.dataSource = timezone;\n endTimezoneObj.dataSource = timezone;\n startTimezoneObj.dataBind();\n endTimezoneObj.dataBind();\n }\n }\n startTimezoneObj.value = startTimezoneObj.value || this.parent.timezone || localTimezoneName;\n endTimezoneObj.value = endTimezoneObj.value || this.parent.timezone || localTimezoneName;\n startTimezoneObj.dataBind();\n endTimezoneObj.dataBind();\n }\n else {\n removeClass([timezoneDiv], cls.ENABLE_CLASS);\n }\n };\n EventWindow.prototype.resetFormFields = function () {\n var formElement = this.getFormElements(cls.EVENT_WINDOW_DIALOG_CLASS);\n for (var _i = 0, formElement_1 = formElement; _i < formElement_1.length; _i++) {\n var currentElement = formElement_1[_i];\n var columnName = currentElement.name || this.getColumnName(currentElement);\n if (!isNullOrUndefined(columnName) && columnName !== '') {\n this.setDefaultValueToElement(currentElement);\n }\n }\n };\n EventWindow.prototype.eventSave = function (event, alert) {\n if (this.isEnterKey) {\n this.isEnterKey = false;\n return;\n }\n var formElement = this.element.querySelector('.' + cls.FORM_CLASS);\n if (formElement && formElement.classList.contains('e-formvalidator') &&\n !formElement.ej2_instances[0].validate()) {\n return;\n }\n var dataCollection = this.getEventDataFromEditor();\n if (this.processEventValidation(dataCollection.tempData, alert)) {\n return;\n }\n this.eventCrudData = dataCollection.eventData;\n this.dialogEvent = event;\n this.isCrudAction = true;\n this.dialogObject.hide();\n };\n EventWindow.prototype.getEventDataFromEditor = function () {\n var eventObj = extend({}, this.getObjectFromFormData(cls.EVENT_WINDOW_DIALOG_CLASS));\n if (!eventObj.Timezone) {\n eventObj[this.fields.startTimezone] = null;\n eventObj[this.fields.endTimezone] = null;\n }\n delete eventObj.Timezone;\n delete eventObj.Repeat;\n this.setDefaultValueToObject(eventObj);\n eventObj[this.fields.recurrenceRule] = this.recurrenceEditor ? this.recurrenceEditor.getRecurrenceRule() || null : undefined;\n var tempObj = extend({}, eventObj, null, true);\n if (eventObj[this.fields.isAllDay]) {\n eventObj[this.fields.startTime] = (isNullOrUndefined(eventObj[this.fields.startTime])) ? null\n : util.resetTime(new Date(eventObj[this.fields.startTime].getTime()));\n eventObj[this.fields.endTime] = (isNullOrUndefined(eventObj[this.fields.endTime])) ? null\n : util.addDays(util.resetTime(new Date(eventObj[this.fields.endTime].getTime())), 1);\n }\n return { eventData: eventObj, tempData: tempObj };\n };\n EventWindow.prototype.processEventValidation = function (eventObj, alert) {\n var alertType;\n if (isNullOrUndefined(this.parent.editorTemplate)) {\n if (!eventObj[this.fields.startTime] || !eventObj[this.fields.endTime]) {\n this.parent.quickPopup.openValidationError('invalidDateError');\n return true;\n }\n if (eventObj[this.fields.startTime] > eventObj[this.fields.endTime]) {\n this.parent.quickPopup.openValidationError('startEndError');\n return true;\n }\n }\n if (this.recurrenceEditor && this.recurrenceEditor.value && this.recurrenceEditor.value !== '') {\n if (this.parent.currentAction !== 'EditOccurrence') {\n alertType = this.recurrenceValidation(eventObj[this.fields.startTime], eventObj[this.fields.endTime], alert);\n }\n var isShowAlert = true;\n if (alertType === 'seriesChangeAlert' && this.parent.uiStateValues.isIgnoreOccurrence) {\n isShowAlert = false;\n }\n if (!isNullOrUndefined(alertType) && isShowAlert\n && ((!this.parent.enableRecurrenceValidation && alertType === 'wrongPattern') || this.parent.enableRecurrenceValidation)) {\n this.parent.quickPopup.openRecurrenceValidationAlert(alertType);\n return true;\n }\n }\n return false;\n };\n EventWindow.prototype.processCrudActions = function (eventObj) {\n var _this = this;\n this.parent.uiStateValues.isBlock = false;\n var resourceData = this.getResourceData(eventObj);\n var isResourceEventExpand = (this.parent.activeViewOptions.group.resources.length > 0 ||\n this.parent.resourceCollection.length > 0) && !this.parent.activeViewOptions.group.allowGroupEdit\n && !isNullOrUndefined(resourceData);\n var eventId = this.getEventIdFromForm();\n if (!isNullOrUndefined(eventId)) {\n var eveId_1 = this.parent.eventBase.getEventIDType() === 'string' ? eventId : parseInt(eventId, 10);\n var editedData = this.parent.eventsData.filter(function (data) {\n return data[_this.fields.id] === eveId_1;\n })[0];\n if (isNullOrUndefined(editedData)) {\n editedData = this.parent.blockData.filter(function (data) {\n return data[_this.fields.id] === eveId_1;\n })[0];\n }\n eventObj = extend({}, editedData, eventObj);\n if (eventObj[this.fields.isReadonly]) {\n return false;\n }\n var currentAction = void 0;\n if (!isNullOrUndefined(editedData[this.fields.recurrenceRule])) {\n currentAction = this.parent.currentAction;\n eventObj.Guid = this.parent.activeEventData.event.Guid;\n if (this.parent.currentAction === 'EditOccurrence') {\n if (!eventObj[this.fields.recurrenceID]) {\n eventObj[this.fields.id] = this.parent.eventBase.getEventMaxID();\n eventObj.Guid = this.parent.activeEventData.event.Guid;\n }\n else {\n eveId_1 = eventObj[this.fields.recurrenceID];\n currentAction = null;\n }\n if (this.parent.enableRecurrenceValidation && this.editOccurrenceValidation(eveId_1, eventObj)) {\n return true;\n }\n }\n if (this.parent.currentAction === 'EditSeries' || eventObj[this.fields.id] !== editedData[this.fields.id]) {\n eventObj[this.fields.recurrenceID] = editedData[this.fields.id];\n }\n else if (this.parent.currentAction === 'EditFollowingEvents') {\n eventObj[this.fields.id] = this.parent.eventBase.getEventMaxID();\n eventObj[this.fields.followingID] = editedData[this.fields.id];\n }\n }\n if (isResourceEventExpand) {\n this.resourceSaveEvent(eventObj, 'Save', currentAction);\n }\n else {\n this.parent.saveEvent(eventObj, currentAction);\n }\n }\n else {\n this.parent.currentAction = 'Add';\n if (isResourceEventExpand) {\n this.resourceSaveEvent(eventObj, this.parent.currentAction);\n }\n else {\n eventObj[this.fields.id] = this.parent.eventBase.getEventMaxID();\n this.parent.addEvent(eventObj);\n }\n }\n return this.parent.uiStateValues.isBlock;\n };\n EventWindow.prototype.getResourceData = function (eventObj) {\n var resourceData = null;\n if (!isNullOrUndefined(this.parent.resourceBase) && !isNullOrUndefined(this.parent.resourceBase.resourceCollection)\n && this.parent.resourceBase.resourceCollection.length > 0) {\n var lastResourceData = this.parent.resourceBase.resourceCollection.slice(-1)[0];\n resourceData = eventObj[lastResourceData.field];\n }\n return resourceData;\n };\n EventWindow.prototype.getObjectFromFormData = function (className) {\n var formElement = this.getFormElements(className);\n var eventObj = {};\n for (var _i = 0, formElement_2 = formElement; _i < formElement_2.length; _i++) {\n var currentElement = formElement_2[_i];\n var columnName = currentElement.name || this.getColumnName(currentElement);\n if (!isNullOrUndefined(columnName) && columnName !== '') {\n eventObj[\"\" + columnName] = this.getValueFromElement(currentElement);\n }\n }\n return eventObj;\n };\n EventWindow.prototype.setDefaultValueToObject = function (eventObj) {\n if (!isNullOrUndefined(eventObj[this.fields.subject])) {\n eventObj[this.fields.subject] = eventObj[this.fields.subject] || this.parent.eventSettings.fields.subject.default\n || this.l10n.getConstant('addTitle');\n }\n if (!isNullOrUndefined(eventObj[this.fields.location])) {\n eventObj[this.fields.location] = eventObj[this.fields.location] || this.parent.eventSettings.fields.location.default;\n }\n if (!isNullOrUndefined(eventObj[this.fields.description])) {\n eventObj[this.fields.description] = eventObj[this.fields.description] || this.parent.eventSettings.fields.description.default;\n }\n };\n EventWindow.prototype.recurrenceValidation = function (startDate, endDate, alert) {\n var alertMessage;\n var recEditor = this.recurrenceEditor;\n var interval = this.getInstance('e-repeat-interval.e-numerictextbox').value;\n if (alert !== this.l10n.getConstant('ok')) {\n var activeEvent = this.parent.activeEventData.event;\n var excludedEvents = [];\n if ((this.parent.currentAction === 'EditSeries' || this.parent.currentAction === 'EditFollowingEvents')\n && !isNullOrUndefined(activeEvent)) {\n var eventStartTime = activeEvent[this.parent.eventFields.startTime];\n var seriesEvents = this.parent.eventBase.getSeriesEvents(this.eventData, eventStartTime);\n if (seriesEvents.length > 0) {\n excludedEvents = this.parent.eventBase.getEditedOccurrences(seriesEvents, eventStartTime);\n }\n else {\n var event_2 = this.parent.eventBase.getEventById(activeEvent[this.parent.eventFields.id]);\n excludedEvents = this.parent.eventBase.getEditedOccurrences([event_2], eventStartTime);\n }\n if (this.parent.currentAction === 'EditSeries'\n && !isNullOrUndefined(this.eventData[this.parent.eventFields.recurrenceException])) {\n excludedEvents.push(this.eventData);\n }\n }\n if (excludedEvents.length > 0) {\n alertMessage = 'seriesChangeAlert';\n }\n if (this.getInstance('e-end-on-left .e-ddl .e-dropdownlist').value === 'until' &&\n this.getInstance('e-end-on-date .e-datepicker').value < startDate) {\n alertMessage = 'wrongPattern';\n }\n if (isNullOrUndefined(alertMessage)) {\n var types = recEditor.value.split(';')[1].split('=')[1].split(',');\n var obj = { 'SU': 0, 'MO': 1, 'TU': 2, 'WE': 3, 'TH': 4, 'FR': 5, 'SA': 6 };\n var temp = [];\n var tempDiff = [];\n var tempValue = void 0;\n switch (recEditor.value.split(';')[0].split('=')[1]) {\n case 'DAILY':\n if ((((endDate.getTime() - startDate.getTime()) / (1000 * 3600)) > (interval * 24))) {\n alertMessage = 'createError';\n }\n break;\n case 'WEEKLY':\n types = recEditor.value.split(';')[1].split('=')[1].split(',');\n for (var index = 0; index < types.length * (interval + 1); index++) {\n temp[parseInt(index.toString(), 10)] =\n (types.length > index) ? obj[types[parseInt(index.toString(), 10)]] :\n temp[index - types.length] + (7 * interval);\n }\n tempValue = temp.sort(function (a, b) { return a - b; });\n for (var index = 1; index < tempValue.length; index++) {\n tempDiff.push(tempValue[parseInt(index.toString(), 10)] - tempValue[index - 1]);\n }\n if ((((endDate.getTime() - startDate.getTime()) / (1000 * 3600)) >= Math.min.apply(Math, tempDiff) * 24)\n || isNullOrUndefined(interval)) {\n alertMessage = 'createError';\n }\n break;\n case 'MONTHLY':\n if (endDate.getTime() >= new Date(+startDate).setMonth(startDate.getMonth() + interval)) {\n alertMessage = 'createError';\n }\n break;\n case 'YEARLY':\n if (endDate.getTime() >= new Date(+startDate).setFullYear(startDate.getFullYear() + interval)) {\n alertMessage = 'createError';\n }\n break;\n }\n }\n }\n else {\n if (endDate.getTime() >= new Date(+startDate).setMonth(startDate.getMonth() + interval)) {\n alertMessage = 'createError';\n }\n if (isNullOrUndefined(alertMessage)) {\n this.parent.quickPopup.quickDialog.hide();\n }\n }\n if (isNullOrUndefined(interval)) {\n alertMessage = 'createError';\n }\n return alertMessage;\n };\n EventWindow.prototype.getRecurrenceIndex = function (recColl, event) {\n var recIndex;\n for (var index = 0; index < recColl.length; index++) {\n if (event[this.fields.startTime].valueOf() === recColl[parseInt(index.toString(), 10)][this.fields.startTime].valueOf()) {\n recIndex = index;\n break;\n }\n }\n return recIndex;\n };\n EventWindow.prototype.trimAllDay = function (data) {\n if (data[this.fields.isAllDay]) {\n var temp = util.addDays(new Date(+data[this.fields.endTime]), -1).getTime();\n data[this.fields.endTime] = (+data[this.fields.startTime] > temp) ? data[this.fields.endTime] : new Date(temp);\n }\n };\n EventWindow.prototype.editOccurrenceValidation = function (eventId, currentData, editData) {\n var _this = this;\n if (editData === void 0) {\n editData = this.eventData;\n }\n var recurColl = this.parent.getOccurrencesByID(eventId);\n var excludedDatas = this.parent.eventsData.filter(function (data) {\n return data[_this.fields.recurrenceID] === eventId;\n });\n excludedDatas.map(function (data) { return recurColl.push(extend({}, data)); });\n currentData = extend({}, currentData);\n this.trimAllDay(currentData);\n for (var _i = 0, recurColl_1 = recurColl; _i < recurColl_1.length; _i++) {\n var data = recurColl_1[_i];\n this.trimAllDay(data);\n }\n this.parent.eventBase.sortByTime(recurColl);\n var index = this.getRecurrenceIndex(recurColl, editData);\n if (isNullOrUndefined(index)) {\n return false;\n }\n var currentStartTime = new Date(+currentData[this.fields.startTime]);\n var currentEndTime = new Date(+currentData[this.fields.endTime]);\n var nextStartTime;\n var nextEndTime;\n if (index !== recurColl.length - 1) {\n nextStartTime = new Date(+recurColl[index + 1][this.fields.startTime]);\n nextEndTime = new Date(+recurColl[index + 1][this.fields.endTime]);\n }\n var lastEndTime = new Date(+recurColl[recurColl.length - 1][this.fields.endTime]);\n if (index === 0) {\n if (!isNullOrUndefined(recurColl[index + 1])) {\n if (!(nextStartTime.getTime() >= currentEndTime.getTime()) &&\n (util.resetTime(lastEndTime).getTime() >=\n util.resetTime(currentStartTime).getTime()) ||\n util.resetTime(lastEndTime).getTime() < util.resetTime(currentStartTime).getTime()) {\n this.parent.quickPopup.openRecurrenceValidationAlert('occurrenceAlert');\n return true;\n }\n else if (!(util.resetTime(currentStartTime).getTime() <\n util.resetTime(nextStartTime).getTime())) {\n this.parent.quickPopup.openRecurrenceValidationAlert('sameDayAlert');\n return true;\n }\n }\n return false;\n }\n else {\n var previousStartTime = new Date(+recurColl[index - 1][this.fields.startTime]);\n var previousEndTime = new Date(+recurColl[index - 1][this.fields.endTime]);\n if (index === recurColl.length - 1) {\n if (util.resetTime(new Date(+recurColl[(recurColl.length - 1) - index][this.fields.startTime])).getTime() >\n util.resetTime(currentStartTime).getTime()) {\n this.parent.quickPopup.openRecurrenceValidationAlert('occurrenceAlert');\n return true;\n }\n else if (!((previousEndTime.getTime() <= currentStartTime.getTime()) &&\n (util.resetTime(currentStartTime).getTime() > util.resetTime(previousStartTime).getTime()))) {\n this.parent.quickPopup.openRecurrenceValidationAlert('sameDayAlert');\n return true;\n }\n }\n else if (!(((util.resetTime(previousStartTime).getTime() < util.resetTime(currentStartTime).getTime()) ||\n util.resetTime(new Date(+recurColl[0][this.fields.startTime])).getTime() >\n util.resetTime(currentStartTime).getTime()) &&\n ((util.resetTime(nextStartTime).getTime() > util.resetTime(currentStartTime).getTime()) ||\n (lastEndTime.getTime() < currentStartTime.getTime())))) {\n this.parent.quickPopup.openRecurrenceValidationAlert('sameDayAlert');\n return true;\n }\n else if (!(previousEndTime.getTime() <= currentStartTime.getTime() && nextStartTime.getTime() >\n currentEndTime.getTime()) || (util.resetTime(nextEndTime).getTime() <\n util.resetTime(currentStartTime).getTime()) ||\n (util.resetTime(previousStartTime).getTime() > util.resetTime(currentEndTime).getTime()) ||\n !(util.resetTime(currentStartTime).getTime() < util.resetTime(nextStartTime).getTime())) {\n this.parent.quickPopup.openRecurrenceValidationAlert('occurrenceAlert');\n return true;\n }\n }\n return false;\n };\n EventWindow.prototype.resourceSaveEvent = function (eventObj, action, currentAction) {\n var _this = this;\n var lastResourceData = this.parent.resourceBase.resourceCollection.slice(-1)[0];\n var resourceData = eventObj[lastResourceData.field];\n resourceData = (resourceData instanceof Array) ? resourceData.reverse() : [resourceData].reverse();\n var lastLevel = this.parent.resourceBase.lastResourceLevel;\n var eventList = [];\n var _loop_2 = function (i) {\n var events = extend({}, eventObj, null, true);\n events[this_2.fields.id] = this_2.parent.eventBase.getEventMaxID();\n var temp = [];\n var addValues = function () {\n if (action === 'Save' && i === resourceData.length - 1) {\n if (temp.length > 0) {\n temp[0][_this.fields.id] = eventObj[_this.fields.id];\n for (var k = 1; k < temp.length; k++) {\n temp[parseInt(k.toString(), 10)][_this.fields.id] = _this.parent.eventBase.getEventMaxID(i);\n eventList.push(temp[parseInt(k.toString(), 10)]);\n _this.parent.saveEvent(temp[0], currentAction);\n }\n }\n else {\n events[_this.fields.id] = eventObj[_this.fields.id];\n _this.parent.saveEvent(events, currentAction);\n }\n }\n else {\n if (temp.length > 0) {\n for (var j = 0; j < temp.length; j++) {\n temp[parseInt(j.toString(), 10)][_this.fields.id] = _this.parent.eventBase.getEventMaxID(j);\n eventList.push(temp[parseInt(j.toString(), 10)]);\n }\n }\n else {\n events[_this.fields.id] = _this.parent.eventBase.getEventMaxID(i);\n eventList.push(events);\n }\n }\n };\n if (this_2.parent.activeViewOptions.group.byGroupID && (!isNullOrUndefined(lastLevel))) {\n var lastResource = lastResourceData.dataSource;\n var resCol = this_2.parent.resourceCollection;\n var index = void 0;\n if (resCol.length > 1) {\n index =\n util.findIndexInData(lastResource, lastResourceData.idField, resourceData[parseInt(i.toString(), 10)], events, resCol);\n }\n else {\n index =\n util.findIndexInData(lastResource, lastResourceData.idField, resourceData[parseInt(i.toString(), 10)]);\n }\n if (index < 0) {\n return { value: void 0 };\n }\n var groupId_1 = lastResource[parseInt(index.toString(), 10)][lastResourceData.groupIDField];\n var filter = lastLevel.filter(function (obj) { return obj.resourceData[lastResourceData.idField] ===\n resourceData[parseInt(i.toString(), 10)]; }).\n filter(function (obj) { return obj.resourceData[lastResourceData.groupIDField] === groupId_1; })[0];\n var groupOrder = filter.groupOrder;\n for (var index_1 = 0; index_1 < this_2.parent.resourceBase.resourceCollection.length; index_1++) {\n var field = this_2.parent.resourceBase.resourceCollection[parseInt(index_1.toString(), 10)].field;\n events[\"\" + field] = (groupOrder[parseInt(index_1.toString(), 10)] instanceof Array) ? groupOrder[parseInt(index_1.toString(), 10)][0] :\n groupOrder[parseInt(index_1.toString(), 10)];\n }\n addValues();\n }\n else {\n for (var index = 0; index < this_2.parent.resourceBase.resourceCollection.length - 1; index++) {\n var field = this_2.parent.resourceBase.resourceCollection[parseInt(index.toString(), 10)].field;\n if (events[\"\" + field] instanceof Array && events[\"\" + field].length > 1) {\n for (var k = 0; k < events[\"\" + field].length; k++) {\n var event_3 = extend({}, events, null, true);\n event_3[\"\" + field] = eventObj[\"\" + field][parseInt(k.toString(), 10)];\n event_3[lastResourceData.field] = resourceData[parseInt(i.toString(), 10)];\n temp.push(event_3);\n }\n }\n else {\n if (temp.length === 0) {\n events[\"\" + field] = (eventObj[\"\" + field] instanceof Array) ?\n eventObj[\"\" + field][0] : eventObj[\"\" + field];\n events[lastResourceData.field] = resourceData[parseInt(i.toString(), 10)];\n }\n else {\n for (var l = 0; l < temp.length; l++) {\n temp[parseInt(l.toString(), 10)][\"\" + field] = (eventObj[\"\" + field] instanceof Array) ?\n eventObj[\"\" + field][0] : eventObj[\"\" + field];\n }\n }\n }\n }\n events[lastResourceData.field] = resourceData[parseInt(i.toString(), 10)];\n addValues();\n }\n };\n var this_2 = this;\n for (var i = 0; i < resourceData.length; i++) {\n var state_1 = _loop_2(i);\n if (typeof state_1 === \"object\")\n return state_1.value;\n }\n if (eventList.length > 0) {\n for (var _i = 0, eventList_1 = eventList; _i < eventList_1.length; _i++) {\n var event_4 = eventList_1[_i];\n event_4[this.fields.recurrenceException] = null;\n event_4[this.fields.recurrenceID] = null;\n }\n this.parent.addEvent(eventList);\n }\n };\n EventWindow.prototype.getEventIdFromForm = function () {\n return this.element.querySelector('.' + cls.FORM_CLASS).getAttribute('data-id');\n };\n EventWindow.prototype.getFormElements = function (className) {\n var elements = [];\n if (className === cls.EVENT_WINDOW_DIALOG_CLASS) {\n elements = [].slice.call(this.element.querySelectorAll('.' + EVENT_FIELD));\n }\n else {\n elements = [].slice.call(this.parent.element.querySelectorAll('.' + className + ' .' + EVENT_FIELD));\n }\n return elements;\n };\n EventWindow.prototype.getValueFromElement = function (element) {\n var value;\n if (element.classList.contains('e-datepicker')) {\n value = element.ej2_instances[0].value;\n }\n else if (element.classList.contains('e-datetimepicker')) {\n value = element.ej2_instances[0].value;\n }\n else if (element.classList.contains('e-dropdownlist')) {\n value = element.ej2_instances[0].value;\n }\n else if (element.classList.contains('e-multiselect')) {\n value = element.ej2_instances[0].value;\n }\n else if (element.classList.contains('e-checkbox')) {\n value = element.ej2_instances[0].checked;\n }\n else {\n if (element.type === 'checkbox') {\n value = element.checked;\n }\n else {\n value = this.parent.enableHtmlSanitizer ?\n SanitizeHtmlHelper.sanitize(element.value) : element.value;\n }\n }\n return value;\n };\n EventWindow.prototype.setValueToElement = function (element, value) {\n if (element.classList.contains('e-datepicker')) {\n var instance = element.ej2_instances[0];\n instance.value = value;\n instance.dataBind();\n }\n else if (element.classList.contains('e-datetimepicker')) {\n var instance = element.ej2_instances[0];\n if (instance.element.classList.contains(cls.EVENT_WINDOW_START_CLASS)) {\n this.eventWindowTime.startTime = new Date('' + value);\n }\n else {\n this.eventWindowTime.endTime = new Date('' + value);\n }\n instance.value = value;\n instance.dataBind();\n }\n else if (element.classList.contains('e-dropdownlist')) {\n var instance = element.ej2_instances[0];\n instance.value = value;\n instance.dataBind();\n }\n else if (element.classList.contains('e-multiselect')) {\n var instance = element.ej2_instances[0];\n instance.value = [];\n instance.value = ((value instanceof Array) ? value : [value]);\n instance.dataBind();\n }\n else if (element.classList.contains('e-checkbox')) {\n var instance = element.ej2_instances[0];\n instance.checked = value;\n instance.dataBind();\n }\n else {\n if (element.type !== 'checkbox') {\n element.value = value || '';\n }\n else {\n element.checked = value;\n }\n }\n };\n EventWindow.prototype.setDefaultValueToElement = function (element) {\n if (element.classList.contains('e-datepicker')) {\n var instance = element.ej2_instances[0];\n instance.value = this.parent.getCurrentTime();\n instance.dataBind();\n }\n else if (element.classList.contains('e-datetimepicker')) {\n var instance = element.ej2_instances[0];\n var dateValue = this.parent.getCurrentTime();\n this.eventWindowTime = { startTime: dateValue, endTime: dateValue };\n instance.value = dateValue;\n instance.dataBind();\n }\n else if (element.classList.contains('e-dropdownlist')) {\n var instance = element.ej2_instances[0];\n instance.value = null;\n instance.dataBind();\n }\n else if (element.classList.contains('e-multiselect')) {\n var instance = element.ej2_instances[0];\n instance.value = [];\n instance.dataBind();\n }\n else if (element.classList.contains('e-checkbox')) {\n var instance = element.ej2_instances[0];\n instance.checked = false;\n instance.dataBind();\n }\n else {\n if (element.type === 'checkbox') {\n element.checked = false;\n }\n else {\n element.value = '';\n }\n }\n };\n EventWindow.prototype.getInstance = function (className) {\n var element = this.element.querySelector('.' + className);\n return element ? element.ej2_instances[0] : null;\n };\n EventWindow.prototype.eventDelete = function (event) {\n if (this.isEnterKey) {\n this.isEnterKey = false;\n return;\n }\n switch (this.parent.currentAction) {\n case 'EditOccurrence':\n if (!isNullOrUndefined(this.parent.activeEventData.event[this.parent.eventFields.recurrenceRule])) {\n this.parent.currentAction = 'DeleteOccurrence';\n }\n else {\n this.parent.currentAction = 'Delete';\n }\n break;\n case 'EditSeries':\n this.parent.currentAction = 'DeleteSeries';\n break;\n case 'Save':\n this.parent.currentAction = 'Delete';\n break;\n case 'EditFollowingEvents':\n if (!isNullOrUndefined(this.parent.activeEventData.event[this.parent.eventFields.recurrenceRule])) {\n this.parent.currentAction = 'DeleteFollowingEvents';\n }\n break;\n }\n this.dialogEvent = event;\n this.isCrudAction = false;\n this.dialogObject.hide();\n this.parent.quickPopup.openDeleteAlert();\n };\n EventWindow.prototype.getRecurrenceEditorInstance = function () {\n if (this.parent.isAdaptive && !this.repeatDialogObject) {\n this.renderRepeatDialog();\n }\n return this.recurrenceEditor;\n };\n EventWindow.prototype.destroyComponents = function () {\n var formElements = this.getFormElements(cls.EVENT_WINDOW_DIALOG_CLASS);\n for (var _i = 0, formElements_3 = formElements; _i < formElements_3.length; _i++) {\n var element = formElements_3[_i];\n var instance = void 0;\n if (element.classList.contains('e-datetimepicker')) {\n instance = element.ej2_instances;\n }\n else if (element.classList.contains('e-datepicker')) {\n instance = element.ej2_instances;\n }\n else if (element.classList.contains('e-checkbox')) {\n instance = element.ej2_instances;\n }\n else if (element.classList.contains('e-dropdownlist')) {\n instance = element.ej2_instances;\n }\n else if (element.classList.contains('e-multiselect')) {\n instance = element.ej2_instances;\n }\n else if (element.classList.contains('e-numerictextbox')) {\n instance = element.ej2_instances;\n }\n if (instance && instance[0]) {\n instance[0].destroy();\n }\n }\n if (this.buttonObj) {\n this.buttonObj.destroy();\n }\n };\n EventWindow.prototype.detachComponents = function () {\n var formElements = this.getFormElements(cls.EVENT_WINDOW_DIALOG_CLASS);\n for (var _i = 0, formElements_4 = formElements; _i < formElements_4.length; _i++) {\n var element = formElements_4[_i];\n detach(element);\n }\n };\n EventWindow.prototype.destroy = function (isIgnore) {\n if (this.parent && !this.parent.isDestroyed) {\n this.parent.resetTemplates(['editorTemplate']);\n }\n this.destroyComponents();\n if (this.recurrenceEditor) {\n this.recurrenceEditor.destroy();\n detach(this.recurrenceEditor.element);\n this.recurrenceEditor = null;\n }\n if (this.fieldValidator) {\n this.fieldValidator.destroy();\n this.fieldValidator = null;\n }\n if (this.repeatDialogObject) {\n this.repeatDialogObject.destroy();\n this.repeatDialogObject = null;\n }\n this.detachComponents();\n if (this.dialogObject) {\n if (this.dialogObject.element) {\n var form = this.dialogObject.element.querySelector('form');\n util.removeChildren(form);\n detach(form);\n EventHandler.remove(this.dialogObject.element, 'keydown', this.preventEventSave);\n }\n this.dialogObject.destroy();\n this.dialogObject = null;\n }\n if (this.element) {\n remove(this.element);\n this.element = null;\n }\n if (!isIgnore) {\n this.l10n = null;\n this.parent = null;\n this.fields = null;\n this.buttonObj = null;\n this.repeatStatus = null;\n this.eventWindowTime = null;\n this.dialogEvent = null;\n }\n };\n return EventWindow;\n}());\nexport { EventWindow };\n","import { append, addClass, remove, isNullOrUndefined, setStyleAttribute, createElement, prepend } from '@syncfusion/ej2-base';\nimport * as events from '../base/constant';\nimport * as cls from '../base/css-constant';\nimport * as util from '../base/util';\n/**\n * Virtual Scroll\n */\nvar VirtualScroll = /** @class */ (function () {\n function VirtualScroll(parent) {\n this.translateY = 0;\n this.itemSize = 60;\n this.bufferCount = 3;\n this.renderedLength = 0;\n this.averageRowHeight = 0;\n this.startIndex = 0;\n this.parent = parent;\n this.addEventListener();\n }\n VirtualScroll.prototype.addEventListener = function () {\n if (!this.parent || this.parent && this.parent.isDestroyed) {\n return;\n }\n this.parent.on(events.virtualScroll, this.virtualScrolling, this);\n };\n VirtualScroll.prototype.removeEventListener = function () {\n if (!this.parent || this.parent && this.parent.isDestroyed) {\n return;\n }\n this.parent.off(events.virtualScroll, this.virtualScrolling);\n };\n VirtualScroll.prototype.getRenderedCount = function () {\n this.setItemSize();\n var containerSize = this.isHorizontalScroll ? this.parent.element.clientWidth : this.parent.element.clientHeight;\n this.renderedLength = Math.ceil(containerSize / this.itemSize) + this.bufferCount;\n return this.renderedLength;\n };\n VirtualScroll.prototype.renderVirtualTrack = function (contentWrap) {\n var wrap = createElement('div', { className: cls.VIRTUAL_TRACK_CLASS });\n if (this.isHorizontalScroll) {\n var colCount = this.parent.activeView.colLevels[this.parent.activeView.colLevels.length - 1].length;\n wrap.style.width = (colCount * this.itemSize) + 'px';\n }\n else {\n wrap.style.height = (this.parent.resourceBase.expandedResources.length * this.itemSize) + 'px';\n }\n contentWrap.appendChild(wrap);\n };\n VirtualScroll.prototype.updateVirtualScrollHeight = function () {\n var virtual = this.parent.element.querySelector('.' + cls.VIRTUAL_TRACK_CLASS);\n var lastResourceIndex = this.parent.resourceBase.expandedResources[this.parent.resourceBase.expandedResources.length - 1].groupIndex;\n var lastRenderIndex = this.parent.resourceBase.renderedResources[this.parent.resourceBase.renderedResources.length - 1].groupIndex;\n if (lastRenderIndex !== lastResourceIndex) {\n var conTable = this.parent.element.querySelector('.' + cls.CONTENT_TABLE_CLASS);\n this.renderedLength = conTable.querySelector('tbody').children.length;\n virtual.style.height = (conTable.offsetHeight + (this.parent.resourceBase.expandedResources.length - (this.renderedLength)) *\n conTable.offsetHeight / this.renderedLength) + 'px';\n }\n else {\n virtual.style.height = '';\n }\n this.averageRowHeight = virtual.offsetHeight / this.parent.resourceBase.expandedResources.length;\n };\n VirtualScroll.prototype.updateVirtualTrackHeight = function (wrap) {\n var resourceCount = this.parent.resourceBase.renderedResources.length;\n if (resourceCount !== this.getRenderedCount()) {\n wrap.style.height = this.parent.element.querySelector('.e-content-wrap').clientHeight + 'px';\n var resWrap = this.parent.element.querySelector('.' + cls.RESOURCE_COLUMN_WRAP_CLASS);\n var conWrap = this.parent.element.querySelector('.' + cls.CONTENT_WRAP_CLASS);\n var eventWrap = this.parent.element.querySelector('.' + cls.EVENT_TABLE_CLASS);\n this.translateY = 0;\n this.setTranslate(resWrap, conWrap, eventWrap);\n }\n else {\n var lastRenderIndex = this.parent.resourceBase.renderedResources[resourceCount - 1].groupIndex;\n var lastCollIndex = this.parent.resourceBase.expandedResources[this.parent.resourceBase.expandedResources.length - 1].groupIndex;\n var renderedResCount = resourceCount + (lastCollIndex - lastRenderIndex);\n renderedResCount = (renderedResCount > this.parent.resourceBase.expandedResources.length) ?\n this.parent.resourceBase.expandedResources.length : renderedResCount;\n wrap.style.height = (renderedResCount * this.itemSize) + 'px';\n }\n };\n VirtualScroll.prototype.setItemSize = function () {\n if (this.isHorizontalScroll) {\n this.itemSize = util.getElementWidthFromClass(this.parent.activeView.element, cls.WORK_CELLS_CLASS) || this.itemSize;\n }\n else {\n this.itemSize = util.getElementHeightFromClass(this.parent.activeView.element, cls.WORK_CELLS_CLASS) || this.itemSize;\n }\n };\n VirtualScroll.prototype.renderEvents = function () {\n this.setTabIndex();\n if (this.parent.crudModule) {\n this.parent.crudModule.refreshProcessedData(true);\n }\n if (this.parent.currentView !== 'Month') {\n this.parent.notify(events.contentReady, {});\n }\n this.parent.hideSpinner();\n };\n VirtualScroll.prototype.virtualScrolling = function () {\n var _this = this;\n if (this.parent.quickPopup) {\n this.parent.quickPopup.quickPopupHide();\n this.parent.quickPopup.morePopup.hide();\n }\n var conWrap = this.parent.element.querySelector('.' + cls.CONTENT_WRAP_CLASS);\n if (this.isHorizontalScroll) {\n this.horizontalScrolling(conWrap);\n }\n else {\n var resWrap = this.parent.element.querySelector('.' + cls.RESOURCE_COLUMN_WRAP_CLASS);\n var eventWrap = this.parent.element.querySelector('.' + cls.EVENT_TABLE_CLASS);\n var timeIndicator = this.parent.element.querySelector('.' + cls.CURRENT_TIMELINE_CLASS);\n var conTable = this.parent.element.querySelector('.' + cls.CONTENT_TABLE_CLASS);\n addClass([conWrap], 'e-transition');\n this.renderedLength = resWrap.querySelector('tbody').children.length;\n var firstTDIndex = parseInt(resWrap.querySelector('tbody td').getAttribute('data-group-index'), 10);\n var scrollHeight = this.parent.rowAutoHeight ?\n (conTable.offsetHeight - conWrap.offsetHeight) : this.bufferCount * this.itemSize;\n var resCollection = [];\n if ((conWrap.scrollTop) - this.translateY < 0) {\n resCollection = this.upScroll(conWrap, firstTDIndex);\n }\n else if (conWrap.scrollTop - this.translateY > scrollHeight) {\n resCollection = this.downScroll(conWrap, firstTDIndex);\n }\n if (!isNullOrUndefined(resCollection) && resCollection.length > 0) {\n this.parent.showSpinner();\n var selectedEle = this.parent.getSelectedCells();\n this.focusedEle = selectedEle[selectedEle.length - 1] || this.focusedEle;\n this.updateContent(resWrap, conWrap, eventWrap, resCollection);\n this.setTranslate(resWrap, conWrap, eventWrap, timeIndicator);\n if (this.parent.dragAndDropModule && this.parent.dragAndDropModule.actionObj.action === 'drag') {\n this.parent.dragAndDropModule.navigationWrapper();\n }\n window.clearTimeout(this.timeValue);\n this.timeValue = window.setTimeout(function () { _this.renderEvents(); }, 250);\n }\n }\n };\n VirtualScroll.prototype.horizontalScrolling = function (conWrap) {\n var _this = this;\n var resCollection = [];\n var scrollWidth = this.bufferCount * this.itemSize;\n if (Math.abs(conWrap.scrollLeft) - Math.abs(this.translateY) < 0) {\n resCollection = this.leftScroll(conWrap);\n }\n else if (Math.abs(conWrap.scrollLeft) - Math.abs(this.translateY) > scrollWidth) {\n resCollection = this.rightScroll(conWrap);\n }\n if (!isNullOrUndefined(resCollection) && resCollection.length > 0) {\n if (this.parent.resourceBase.expandedResources.length !== resCollection.length ||\n this.parent.resourceBase.expandedResources[0] !== resCollection[0] ||\n this.parent.resourceBase.expandedResources[this.parent.resourceBase.expandedResources.length - 1] !==\n resCollection[resCollection.length - 1]) {\n this.parent.showSpinner();\n var colLevels = this.parent.activeView.colLevels.slice(0);\n this.updateHorizontalContent(conWrap, resCollection);\n setStyleAttribute(conWrap.querySelector('table'), { transform: \"translateX(\" + this.translateY + \"px)\" });\n this.parent.activeView.colLevels = colLevels;\n if (this.parent.dragAndDropModule && this.parent.dragAndDropModule.actionObj.action === 'drag') {\n this.parent.dragAndDropModule.navigationWrapper();\n }\n }\n window.clearTimeout(this.timeValue);\n this.timeValue = window.setTimeout(function () { _this.renderEvents(); }, 250);\n }\n };\n VirtualScroll.prototype.upScroll = function (conWrap, firstTDIndex) {\n var index = 0;\n index = (~~(conWrap.scrollTop / this.itemSize) + Math.ceil(conWrap.clientHeight / this.itemSize)) - this.renderedLength;\n if (this.parent.rowAutoHeight) {\n index = (index > firstTDIndex) ? firstTDIndex - this.bufferCount : index;\n }\n index = (index > 0) ? index : 0;\n var prevSetCollection = this.getBufferCollection(index, index + this.renderedLength);\n this.parent.resourceBase.renderedResources = prevSetCollection;\n if (firstTDIndex === 0) {\n this.translateY = conWrap.scrollTop;\n }\n else {\n var height = (this.parent.rowAutoHeight) ? this.averageRowHeight : this.itemSize;\n height = (height > 0) ? height : this.itemSize;\n this.translateY = (conWrap.scrollTop - (this.bufferCount * height) > 0) ?\n conWrap.scrollTop - (this.bufferCount * height) : 0;\n }\n return prevSetCollection;\n };\n VirtualScroll.prototype.downScroll = function (conWrap, firstTDIndex) {\n var lastResource = this.parent.resourceBase.\n renderedResources[this.parent.resourceBase.renderedResources.length - 1].groupIndex;\n var lastResourceIndex = this.parent.resourceBase.expandedResources[this.parent.resourceBase.expandedResources.length - 1].groupIndex;\n if (lastResource === lastResourceIndex) {\n return null;\n }\n var nextSetResIndex = 0;\n nextSetResIndex = ~~(conWrap.scrollTop / this.itemSize);\n if (this.parent.rowAutoHeight) {\n nextSetResIndex = ~~((conWrap.scrollTop - this.translateY) / this.averageRowHeight) + firstTDIndex;\n nextSetResIndex = (nextSetResIndex > firstTDIndex + this.bufferCount) ? nextSetResIndex : firstTDIndex + this.bufferCount;\n }\n var lastIndex = nextSetResIndex + this.renderedLength;\n lastIndex = (lastIndex > this.parent.resourceBase.expandedResources.length) ?\n nextSetResIndex + (this.parent.resourceBase.expandedResources.length - nextSetResIndex) : lastIndex;\n var nextSetCollection = this.getBufferCollection(lastIndex - this.renderedLength, lastIndex);\n this.translateY = conWrap.scrollTop;\n return nextSetCollection;\n };\n VirtualScroll.prototype.leftScroll = function (conWrap) {\n var index = 0;\n index = (~~(Math.abs(conWrap.scrollLeft) / this.itemSize) + Math.ceil(conWrap.clientWidth / this.itemSize)) - this.renderedLength;\n index = (index > 0) ? index : 0;\n return this.getCollection(index, index + this.renderedLength);\n };\n VirtualScroll.prototype.rightScroll = function (conWrap) {\n var lastLevel = this.parent.activeView.colLevels[this.parent.activeView.colLevels.length - 1];\n var nextSetIndex = 0;\n nextSetIndex = ~~(Math.abs(conWrap.scrollLeft) / this.itemSize);\n var lastIndex = nextSetIndex + this.renderedLength;\n lastIndex = (lastIndex > lastLevel.length - 1) ? lastLevel.length - 1 : lastIndex;\n return this.getCollection(lastIndex - this.renderedLength, lastIndex);\n };\n VirtualScroll.prototype.getCollection = function (startIndex, endIndex) {\n this.translateY = startIndex * this.itemSize;\n var lastLevel = this.getResCollection(startIndex, endIndex);\n if (this.parent.enableRtl) {\n this.translateY = -this.translateY;\n }\n return lastLevel;\n };\n VirtualScroll.prototype.getResCollection = function (startIndex, endIndex) {\n var lastLevel = this.parent.activeView.colLevels[this.parent.activeView.colLevels.length - 1];\n var resCollection = [];\n var index = { startIndex: 0, endIndex: 0 };\n if (this.parent.activeViewOptions.group.byDate) {\n if (lastLevel[parseInt(startIndex.toString(), 10)].date.getTime() ===\n this.parent.resourceBase.expandedResources[0].date.getTime() &&\n lastLevel[parseInt(endIndex.toString(), 10)].date.getTime() ===\n this.parent.resourceBase.expandedResources[this.parent.resourceBase.expandedResources.length - 1].date.getTime()) {\n return this.parent.resourceBase.expandedResources;\n }\n resCollection =\n this.getByDateCollection(lastLevel[parseInt(startIndex.toString(), 10)], lastLevel[parseInt(endIndex.toString(), 10)], index);\n this.setRenderedDates(resCollection);\n }\n else {\n if (lastLevel[parseInt(startIndex.toString(), 10)].groupIndex === this.parent.resourceBase.expandedResources[0].groupIndex &&\n lastLevel[parseInt(endIndex.toString(), 10)].groupIndex ===\n this.parent.resourceBase.expandedResources[this.parent.resourceBase.expandedResources.length - 1].groupIndex) {\n return this.parent.resourceBase.expandedResources;\n }\n resCollection =\n this.getByIdCollection(lastLevel[parseInt(startIndex.toString(), 10)], lastLevel[parseInt(endIndex.toString(), 10)], index);\n }\n if (this.parent.currentView !== 'Month') {\n this.startIndex = index.startIndex;\n resCollection = lastLevel.slice(index.startIndex, index.endIndex);\n }\n this.translateY = index.startIndex * this.itemSize;\n return resCollection;\n };\n VirtualScroll.prototype.getByDateCollection = function (firstItem, lastItem, index) {\n var resCollection = this.parent.activeView.colLevels[0].filter(function (data) {\n return firstItem.date.getTime() <= data.date.getTime() &&\n data.date.getTime() <= lastItem.date.getTime();\n });\n this.setStartEndIndex(this.parent.activeView.colLevels[0], resCollection[0], resCollection[resCollection.length - 1], index);\n return resCollection;\n };\n VirtualScroll.prototype.getByIdCollection = function (firstItem, lastItem, index) {\n var resCollection = this.parent.resourceBase.lastResourceLevel.filter(function (data) {\n return firstItem.groupIndex <= data.groupIndex && data.groupIndex <= lastItem.groupIndex;\n });\n this.parent.resourceBase.renderedResources = resCollection;\n this.setStartEndIndex(this.parent.resourceBase.lastResourceLevel, resCollection[0], resCollection[resCollection.length - 1], index);\n return resCollection;\n };\n VirtualScroll.prototype.setStartEndIndex = function (data, firstItem, lastItem, colIndex) {\n var index = 0;\n data.filter(function (data) {\n if (firstItem === data) {\n colIndex.startIndex = index;\n }\n else if (lastItem === data) {\n colIndex.endIndex = index + data.colSpan;\n }\n index += data.colSpan;\n });\n if (firstItem === lastItem) {\n colIndex.endIndex = colIndex.startIndex + lastItem.colSpan;\n }\n };\n VirtualScroll.prototype.updateContent = function (resWrap, conWrap, eventWrap, resCollection) {\n var renderedLength = resWrap.querySelector('tbody').children.length;\n if (document.activeElement && document.activeElement.classList.contains(cls.RESOURCE_CELLS_CLASS)) {\n this.isResourceCell = true;\n this.parent.element.focus();\n }\n for (var i = 0; i < renderedLength; i++) {\n remove(resWrap.querySelector('tbody tr'));\n remove(conWrap.querySelector('tbody tr'));\n remove(eventWrap.querySelector('div'));\n }\n this.parent.resourceBase.renderedResources = resCollection;\n var resourceRows = this.parent.resourceBase.getContentRows(resCollection, true);\n var contentRows = this.parent.activeView.getContentRows();\n var eventRows = this.parent.activeView.getEventRows(resCollection.length);\n append(resourceRows, resWrap.querySelector('tbody'));\n append(contentRows, conWrap.querySelector('tbody'));\n append(eventRows, eventWrap);\n };\n VirtualScroll.prototype.updateHorizontalContent = function (conWrap, resCollection) {\n this.parent.resourceBase.expandedResources = resCollection;\n var selectedEle = this.parent.getSelectedCells();\n this.focusedEle = selectedEle[selectedEle.length - 1] || this.focusedEle;\n var renderedLength = conWrap.querySelectorAll('tbody tr').length;\n for (var i = 0; i < renderedLength; i++) {\n remove(conWrap.querySelector('tbody tr'));\n }\n if (this.parent.currentView === 'Month') {\n if (this.parent.activeViewOptions.group.byDate) {\n this.parent.activeView.colLevels[0] = resCollection;\n }\n else {\n this.parent.activeView.colLevels[this.parent.activeView.colLevels.length - 2] = resCollection;\n }\n var contentRows = this.parent.activeView.getContentRows();\n append(contentRows, conWrap.querySelector('tbody'));\n }\n else {\n var col = [].slice.call(conWrap.querySelector('colgroup').children);\n for (var i = 0; i < col.length; i++) {\n remove(col[parseInt(i.toString(), 10)]);\n }\n this.parent.activeView.colLevels[this.parent.activeView.colLevels.length - 1] = resCollection;\n var contentRows = this.parent.activeView.getContentRows();\n var table = conWrap.querySelector('table');\n var thead = conWrap.querySelector('thead');\n var colGroupEle_1 = conWrap.querySelector('colgroup');\n resCollection.forEach(function () {\n colGroupEle_1.appendChild(createElement('col'));\n });\n thead.appendChild(this.parent.eventBase.createEventWrapper('', this.startIndex > 0 ? this.startIndex : 0));\n if (this.parent.activeViewOptions.timeScale.enable) {\n thead.appendChild(this.parent.eventBase.createEventWrapper('timeIndicator'));\n }\n prepend([thead], table);\n append(contentRows, conWrap.querySelector('tbody'));\n }\n };\n VirtualScroll.prototype.getBufferCollection = function (startIndex, endIndex) {\n return this.parent.resourceBase.expandedResources.slice(startIndex, endIndex);\n };\n VirtualScroll.prototype.setTranslate = function (resWrap, conWrap, eventWrap, timeIndicator) {\n setStyleAttribute(resWrap.querySelector('table'), { transform: \"translateY(\" + this.translateY + \"px)\" });\n setStyleAttribute(conWrap.querySelector('table'), { transform: \"translateY(\" + this.translateY + \"px)\" });\n setStyleAttribute(eventWrap, { transform: \"translateY(\" + this.translateY + \"px)\" });\n if (!isNullOrUndefined(timeIndicator)) {\n setStyleAttribute(timeIndicator, { transform: \"translateY(\" + this.translateY + \"px)\" });\n }\n };\n VirtualScroll.prototype.updateFocusedWorkCell = function () {\n if (this.focusedEle) {\n var date = parseInt(this.focusedEle.getAttribute('data-date'), 10);\n var groupIndex = parseInt(this.focusedEle.getAttribute('data-group-index'), 10);\n var ele = this.parent.element.querySelector(\".\" + cls.WORK_CELLS_CLASS + \"[data-date=\\\"\" + date + \"\\\"][data-group-index=\\\"\" + groupIndex + \"\\\"]\");\n if (ele) {\n this.parent.addSelectedClass([ele], ele, true);\n }\n this.focusedEle = null;\n }\n };\n VirtualScroll.prototype.setRenderedDates = function (resCollection) {\n if (this.parent.currentView !== 'Month') {\n var dateCol_1 = resCollection.map(function (x) { return x.date; });\n this.parent.resourceBase.renderedResources.forEach(function (x) { return x.renderDates = dateCol_1; });\n }\n else {\n var dateCol_2 = resCollection.map(function (x) { return x.date.getDay(); });\n var renderDates_1 = this.parent.activeView.renderDates.filter(function (x) { return dateCol_2.indexOf(x.getDay()) >= 0; });\n this.parent.resourceBase.renderedResources.forEach(function (x) { return x.renderDates = renderDates_1; });\n }\n };\n VirtualScroll.prototype.setTabIndex = function () {\n var resColWrap = this.parent.element.querySelector('.' + cls.RESOURCE_COLUMN_WRAP_CLASS);\n var resCells = [].slice.call(this.parent.element.querySelectorAll('.' + cls.RESOURCE_CELLS_CLASS));\n if (resCells && resColWrap) {\n resCells.forEach(function (element) {\n if (element.getBoundingClientRect().top >= resColWrap.getBoundingClientRect().top) {\n element.setAttribute('tabindex', '0');\n }\n });\n }\n var focusResCell = this.parent.element.querySelector(\".\" + cls.RESOURCE_CELLS_CLASS + \"[tabindex=\\\"\" + 0 + \"\\\"]\");\n if (this.isResourceCell && focusResCell) {\n focusResCell.focus();\n this.isResourceCell = false;\n }\n };\n VirtualScroll.prototype.destroy = function () {\n this.removeEventListener();\n this.focusedEle = null;\n };\n return VirtualScroll;\n}());\nexport { VirtualScroll };\n","import { isNullOrUndefined, addClass, removeClass } from '@syncfusion/ej2-base';\nimport { VirtualScroll } from '../actions/virtual-scroll';\nimport { EventTooltip } from '../popups/event-tooltip';\nimport * as cls from '../base/css-constant';\n/**\n * Schedule DOM rendering\n */\nvar Render = /** @class */ (function () {\n function Render(parent) {\n this.parent = parent;\n }\n Render.prototype.render = function (viewName, isDataRefresh) {\n if (isDataRefresh === void 0) { isDataRefresh = true; }\n this.initializeLayout(viewName);\n if (this.parent.activeView && isDataRefresh) {\n this.parent.crudModule.refreshDataManager();\n }\n };\n Render.prototype.initializeLayout = function (viewName) {\n if (this.parent.activeView) {\n var templates = [\n 'cellTemplate', 'eventTemplate', 'tooltipTemplate', 'majorSlotTemplate', 'minorSlotTemplate',\n 'headerTooltipTemplate', 'dateHeaderTemplate', 'dayHeaderTemplate', 'monthHeaderTemplate',\n 'headerIndentTemplate', 'resourceHeaderTemplate', 'cellHeaderTemplate', 'dateRangeTemplate'\n ];\n this.parent.resetTemplates(templates);\n this.parent.activeView.removeEventListener();\n this.parent.activeView.destroy();\n }\n switch (viewName) {\n case 'Day':\n this.parent.activeView = this.parent.dayModule;\n break;\n case 'Week':\n this.parent.activeView = this.parent.weekModule;\n break;\n case 'WorkWeek':\n this.parent.activeView = this.parent.workWeekModule;\n break;\n case 'Month':\n this.parent.activeView = this.parent.monthModule;\n break;\n case 'Year':\n this.parent.activeView = this.parent.yearModule;\n break;\n case 'Agenda':\n this.parent.activeView = this.parent.agendaModule;\n break;\n case 'MonthAgenda':\n this.parent.activeView = this.parent.monthAgendaModule;\n break;\n case 'TimelineDay':\n this.parent.activeView = this.parent.timelineViewsModule;\n this.parent.activeView.viewClass = 'e-timeline-day-view';\n break;\n case 'TimelineWorkWeek':\n this.parent.activeView = this.parent.timelineViewsModule;\n this.parent.activeView.viewClass = 'e-timeline-work-week-view';\n break;\n case 'TimelineWeek':\n this.parent.activeView = this.parent.timelineViewsModule;\n this.parent.activeView.viewClass = 'e-timeline-week-view';\n break;\n case 'TimelineMonth':\n this.parent.activeView = this.parent.timelineMonthModule;\n break;\n case 'TimelineYear':\n this.parent.activeView = this.parent.timelineYearModule;\n break;\n }\n if (isNullOrUndefined(this.parent.activeView)) {\n var firstView = this.parent.viewCollections[0].option;\n if (firstView) {\n this.parent.setProperties({ currentView: firstView }, true);\n if (this.parent.headerModule) {\n this.parent.headerModule.updateActiveView();\n this.parent.headerModule.setCalendarView();\n }\n return this.initializeLayout(firstView);\n }\n throw Error('Inject required modules');\n }\n this.parent.activeView.viewIndex = this.parent.viewIndex;\n this.updateLabelText(viewName);\n this.parent.activeView.addEventListener();\n this.parent.activeView.getRenderDates();\n this.parent.uiStateValues.isGroupAdaptive = this.parent.activeViewOptions.group.resources.length > 0 &&\n (this.parent.enableAdaptiveUI && !this.parent.isAdaptive ||\n this.parent.isAdaptive && this.parent.activeViewOptions.group.enableCompactView);\n if (this.parent.virtualScrollModule) {\n this.parent.virtualScrollModule.destroy();\n this.parent.virtualScrollModule = null;\n }\n if ((['Agenda', 'MonthAgenda', 'Year', 'TimelineYear'].indexOf(this.parent.currentView) === -1 ||\n (this.parent.currentView === 'TimelineYear' && this.parent.activeViewOptions.orientation === 'Vertical'))\n && this.parent.activeViewOptions.allowVirtualScrolling\n && this.parent.activeViewOptions.group.resources.length > 0 && !this.parent.uiStateValues.isGroupAdaptive) {\n this.parent.virtualScrollModule = new VirtualScroll(this.parent);\n if (this.parent.activeView.isTimelineView()) {\n this.parent.uiStateValues.top = 0;\n }\n else {\n this.parent.virtualScrollModule.isHorizontalScroll = true;\n this.parent.uiStateValues.left = 0;\n }\n }\n this.updateHeader();\n this.parent.currentTimezoneDate = this.parent.getCurrentTime();\n this.parent.activeView.renderLayout(cls.CURRENT_PANEL_CLASS);\n this.parent.renderTemplates();\n if (this.parent.eventTooltip) {\n this.parent.eventTooltip.destroy();\n this.parent.eventTooltip = null;\n }\n if (this.parent.eventSettings.enableTooltip || (this.parent.activeViewOptions.group.resources.length > 0\n && this.parent.activeViewOptions.group.headerTooltipTemplate)) {\n this.parent.eventTooltip = new EventTooltip(this.parent);\n }\n };\n Render.prototype.updateHeader = function () {\n if (this.parent.headerModule) {\n this.parent.headerModule.setDayOfWeek(this.parent.activeViewOptions.firstDayOfWeek);\n if (this.parent.activeViewOptions.readonly) {\n addClass([this.parent.element], cls.READ_ONLY);\n }\n else if (this.parent.element.classList.contains(cls.READ_ONLY)) {\n removeClass([this.parent.element], cls.READ_ONLY);\n }\n this.parent.headerModule.updateDateRange();\n this.parent.headerModule.updateHeaderItems('remove');\n }\n };\n Render.prototype.updateLabelText = function (view) {\n var content = this.parent.activeView.getLabelText(view);\n this.parent.element.setAttribute('role', 'main');\n this.parent.element.setAttribute('aria-label', content);\n };\n return Render;\n}());\nexport { Render };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, ChildProperty } from '@syncfusion/ej2-base';\n/**\n * A class that represents the configuration of working hours related options of scheduler.\n */\nvar WorkHours = /** @class */ (function (_super) {\n __extends(WorkHours, _super);\n function WorkHours() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(true)\n ], WorkHours.prototype, \"highlight\", void 0);\n __decorate([\n Property('09:00')\n ], WorkHours.prototype, \"start\", void 0);\n __decorate([\n Property('18:00')\n ], WorkHours.prototype, \"end\", void 0);\n return WorkHours;\n}(ChildProperty));\nexport { WorkHours };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, ChildProperty } from '@syncfusion/ej2-base';\n/**\n * A class that represents the configuration of options related to timescale on scheduler.\n */\nvar TimeScale = /** @class */ (function (_super) {\n __extends(TimeScale, _super);\n function TimeScale() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(true)\n ], TimeScale.prototype, \"enable\", void 0);\n __decorate([\n Property(60)\n ], TimeScale.prototype, \"interval\", void 0);\n __decorate([\n Property(2)\n ], TimeScale.prototype, \"slotCount\", void 0);\n __decorate([\n Property()\n ], TimeScale.prototype, \"minorSlotTemplate\", void 0);\n __decorate([\n Property()\n ], TimeScale.prototype, \"majorSlotTemplate\", void 0);\n return TimeScale;\n}(ChildProperty));\nexport { TimeScale };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, ChildProperty } from '@syncfusion/ej2-base';\n/**\n * A class that defines the template options available to customize the quick popup of scheduler.\n */\nvar QuickInfoTemplates = /** @class */ (function (_super) {\n __extends(QuickInfoTemplates, _super);\n function QuickInfoTemplates() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('Both')\n ], QuickInfoTemplates.prototype, \"templateType\", void 0);\n __decorate([\n Property()\n ], QuickInfoTemplates.prototype, \"header\", void 0);\n __decorate([\n Property()\n ], QuickInfoTemplates.prototype, \"content\", void 0);\n __decorate([\n Property()\n ], QuickInfoTemplates.prototype, \"footer\", void 0);\n return QuickInfoTemplates;\n}(ChildProperty));\nexport { QuickInfoTemplates };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, ChildProperty } from '@syncfusion/ej2-base';\n/**\n * A class that represents the header rows related configurations on timeline views.\n */\nvar HeaderRows = /** @class */ (function (_super) {\n __extends(HeaderRows, _super);\n function HeaderRows() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property()\n ], HeaderRows.prototype, \"option\", void 0);\n __decorate([\n Property()\n ], HeaderRows.prototype, \"template\", void 0);\n return HeaderRows;\n}(ChildProperty));\nexport { HeaderRows };\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable max-len */\nimport { isNullOrUndefined, extend, removeClass } from '@syncfusion/ej2-base';\nimport { getRecurrenceStringFromDate, generate } from '../../recurrence-editor/date-generator';\nimport * as events from '../base/constant';\nimport * as util from '../base/util';\n/**\n * Schedule CRUD operations\n */\nvar Crud = /** @class */ (function () {\n function Crud(parent) {\n this.parent = parent;\n this.crudObj = { sourceEvent: null, targetEvent: null, isCrudAction: false };\n }\n Crud.prototype.getQuery = function () {\n var start = this.parent.activeView.startDate();\n var end = this.parent.activeView.endDate();\n return this.parent.dataModule.generateQuery(start, end);\n };\n Crud.prototype.getTable = function () {\n if (this.parent.eventSettings.query) {\n var query = this.parent.eventSettings.query.clone();\n return query.fromTable;\n }\n return null;\n };\n Crud.prototype.refreshDataManager = function () {\n var _this = this;\n if (!this.parent.activeView) {\n return;\n }\n var start = this.parent.activeView.startDate();\n var end = this.parent.activeView.endDate();\n var dataManager = this.parent.dataModule.getData(this.parent.dataModule.generateQuery(start, end));\n dataManager.then(function (e) { return _this.dataManagerSuccess(e); }).catch(function (e) { return _this.dataManagerFailure(e); });\n };\n Crud.prototype.dataManagerSuccess = function (e) {\n var _this = this;\n if (!this.parent || this.parent && this.parent.isDestroyed) {\n return;\n }\n this.parent.trigger(events.dataBinding, e, function (args) {\n var resultData = extend([], args.result, null, true);\n _this.parent.eventsData = resultData.filter(function (data) { return !data[_this.parent.eventFields.isBlock]; });\n _this.parent.blockData = resultData.filter(function (data) { return data[_this.parent.eventFields.isBlock]; });\n _this.refreshProcessedData();\n if (_this.parent.dragAndDropModule && _this.parent.dragAndDropModule.actionObj.action === 'drag') {\n _this.parent.dragAndDropModule.navigationWrapper();\n }\n _this.parent.trigger(events.dataBound, null, function () {\n _this.parent.hideSpinner();\n if (_this.parent.isPrinting) {\n _this.parent.notify(events.print, {});\n }\n });\n });\n };\n Crud.prototype.dataManagerFailure = function (e) {\n var _this = this;\n if (!this.parent || this.parent && this.parent.isDestroyed) {\n return;\n }\n this.parent.trigger(events.actionFailure, { error: e }, function () { return _this.parent.hideSpinner(); });\n };\n Crud.prototype.refreshProcessedData = function (isVirtualScrollAction) {\n if (isVirtualScrollAction === void 0) { isVirtualScrollAction = false; }\n if (this.parent.dragAndDropModule) {\n this.parent.dragAndDropModule.actionObj.action = '';\n removeClass([this.parent.element], 'e-event-action');\n }\n if (this.parent.activeViewOptions && this.parent.activeViewOptions.eventTemplate) {\n var templateNames = ['eventTemplate'];\n if (this.crudObj.isCrudAction &&\n ['Agenda', 'MonthAgenda', 'Year', 'TimelineYear'].indexOf(this.parent.currentView) === -1) {\n templateNames = [];\n for (var i = 0, len = this.crudObj.sourceEvent.length; i < len; i++) {\n templateNames.push('eventTemplate_' + this.crudObj.sourceEvent[parseInt(i.toString(), 10)].groupIndex);\n if (this.crudObj.targetEvent[parseInt(i.toString(), 10)] && this.crudObj.sourceEvent[parseInt(i.toString(), 10)].groupIndex !==\n this.crudObj.targetEvent[parseInt(i.toString(), 10)].groupIndex) {\n templateNames.push('eventTemplate_' + this.crudObj.targetEvent[parseInt(i.toString(), 10)].groupIndex);\n }\n }\n }\n if (templateNames.length > 0) {\n this.parent.resetTemplates(templateNames);\n }\n }\n if (isVirtualScrollAction) {\n this.parent.notify(events.dataReady, { processedData: this.parent.eventsProcessed });\n return;\n }\n var eventsData = this.parent.eventsData || [];\n var blockData = this.parent.blockData || [];\n var data = eventsData.concat(blockData);\n this.parent.notify(events.dataReady, { processedData: this.parent.eventBase ? this.parent.eventBase.processData(data) : [] });\n };\n Crud.prototype.refreshData = function (args) {\n var _this = this;\n var actionArgs = {\n requestType: args.requestType, cancel: false, data: args.data,\n addedRecords: args.editParams.addedRecords, changedRecords: args.editParams.changedRecords,\n deletedRecords: args.editParams.deletedRecords\n };\n if (this.parent.dragAndDropModule && this.parent.dragAndDropModule.actionObj && this.parent.dragAndDropModule.actionObj.element) {\n this.parent.dragAndDropModule.actionObj.element.style.display = 'none';\n }\n if (this.parent.resizeModule && this.parent.resizeModule.actionObj && this.parent.resizeModule.actionObj.element) {\n this.parent.resizeModule.actionObj.element.style.display = 'none';\n }\n if (this.parent.isSpecificResourceEvents()) {\n if (args.requestType === 'eventCreated' || args.requestType === 'eventRemoved') {\n this.crudObj.isCrudAction = true;\n this.crudObj.sourceEvent = [];\n var crudData = args.data instanceof Array ? (args.data.length === 0 &&\n args.requestType === 'eventRemoved' ? args.editParams.deletedRecords : args.data) :\n ((typeof args.data === 'string' || typeof args.data === 'number') && args.requestType === 'eventRemoved') ?\n args.editParams.deletedRecords : [args.data];\n var _loop_1 = function (data) {\n this_1.crudObj.isCrudAction = !(args.requestType === 'eventRemoved' && !isNullOrUndefined(data.parent));\n var groupIndex = this_1.parent.eventBase.getGroupIndexFromEvent(data);\n if (groupIndex > -1 && this_1.parent.crudModule.crudObj.sourceEvent.filter(function (tdData) { return tdData.groupIndex === groupIndex; }).length === 0\n && this_1.crudObj.isCrudAction) {\n this_1.crudObj.sourceEvent.push(this_1.parent.resourceBase.lastResourceLevel[parseInt(groupIndex.toString(), 10)]);\n }\n };\n var this_1 = this;\n for (var _i = 0, crudData_1 = crudData; _i < crudData_1.length; _i++) {\n var data = crudData_1[_i];\n _loop_1(data);\n }\n this.crudObj.targetEvent = this.crudObj.sourceEvent;\n }\n }\n if (this.parent.dataModule.dataManager.dataSource.offline) {\n this.parent.trigger(events.actionComplete, actionArgs, function (offlineArgs) {\n if (!offlineArgs.cancel) {\n _this.refreshDataManager();\n }\n });\n }\n else {\n args.promise.then(function () {\n if (!_this.parent || _this.parent && _this.parent.isDestroyed) {\n return;\n }\n _this.parent.trigger(events.actionComplete, actionArgs, function (onlineArgs) {\n if (!onlineArgs.cancel) {\n _this.refreshDataManager();\n }\n });\n }).catch(function (e) {\n if (!_this.parent || _this.parent && _this.parent.isDestroyed) {\n return;\n }\n _this.parent.trigger(events.actionFailure, { error: e });\n });\n }\n };\n Crud.prototype.addEvent = function (eventData) {\n var _this = this;\n if (this.parent.eventSettings.allowAdding && !this.parent.activeViewOptions.readonly) {\n if (!this.isBlockEvent(eventData) && this.parent.eventBase.isBlockRange(eventData)) {\n this.parent.quickPopup.openValidationError('blockAlert', eventData);\n return;\n }\n var addEvents = (eventData instanceof Array) ? eventData : [eventData];\n if (addEvents.length === 0) {\n return;\n }\n var args = {\n requestType: 'eventCreate', cancel: false, data: addEvents,\n addedRecords: addEvents, changedRecords: [], deletedRecords: []\n };\n this.parent.trigger(events.actionBegin, args, function (addArgs) {\n if (!addArgs.cancel) {\n var fields = _this.parent.eventFields;\n var editParams = { addedRecords: [], changedRecords: [], deletedRecords: [] };\n var promise = void 0;\n if (addArgs.addedRecords instanceof Array) {\n for (var _i = 0, _a = addArgs.addedRecords; _i < _a.length; _i++) {\n var event_1 = _a[_i];\n event_1 = _this.parent.eventBase.updateEventDateTime(event_1);\n var eventData_1 = extend({}, _this.parent.eventBase.processTimezone(event_1, true), null, true);\n editParams.addedRecords.push(eventData_1);\n }\n promise = _this.parent.dataModule.dataManager.saveChanges(editParams, fields.id, _this.getTable(), _this.getQuery());\n }\n else {\n var event_2 = _this.parent.eventBase.processTimezone(addArgs.addedRecords, true);\n editParams.addedRecords.push(event_2);\n promise = _this.parent.dataModule.dataManager.insert(event_2, _this.getTable(), _this.getQuery());\n }\n var crudArgs = {\n requestType: 'eventCreated', cancel: false, data: addArgs.addedRecords, promise: promise, editParams: editParams\n };\n _this.refreshData(crudArgs);\n }\n });\n }\n };\n Crud.prototype.saveEvent = function (eventData, action) {\n var _this = this;\n if (this.parent.eventSettings.allowEditing && !this.parent.activeViewOptions.readonly) {\n if (this.parent.currentAction !== 'EditFollowingEvents' && !this.isBlockEvent(eventData)\n && this.parent.eventBase.isBlockRange(eventData)) {\n this.parent.quickPopup.openValidationError('blockAlert', eventData);\n this.parent.crudModule.crudObj.isCrudAction = false;\n return;\n }\n var updateEvents = (eventData instanceof Array) ? eventData : [eventData];\n if (updateEvents.length === 0) {\n return;\n }\n this.parent.currentAction = action;\n if (action) {\n switch (action) {\n case 'Save':\n this.processSave(eventData);\n break;\n case 'EditOccurrence':\n this.processOccurrences(eventData, action);\n break;\n case 'EditFollowingEvents':\n this.processFollowSeries(eventData, action);\n break;\n case 'EditSeries':\n this.processEntireSeries(eventData, action);\n break;\n }\n }\n else {\n var args = {\n requestType: 'eventChange', cancel: false, data: eventData,\n addedRecords: [], changedRecords: updateEvents, deletedRecords: []\n };\n this.parent.trigger(events.actionBegin, args, function (saveArgs) {\n if (!saveArgs.cancel) {\n var promise = void 0;\n var fields = _this.parent.eventFields;\n var editParams = { addedRecords: [], changedRecords: [], deletedRecords: [] };\n if (saveArgs.changedRecords instanceof Array) {\n for (var _i = 0, _a = saveArgs.changedRecords; _i < _a.length; _i++) {\n var event_3 = _a[_i];\n event_3 = _this.parent.eventBase.updateEventDateTime(event_3);\n var eventData_2 = extend({}, _this.parent.eventBase.processTimezone(event_3, true), null, true);\n editParams.changedRecords.push(eventData_2);\n }\n promise = _this.parent.dataModule.dataManager.saveChanges(editParams, fields.id, _this.getTable(), _this.getQuery());\n }\n else {\n var event_4 = _this.parent.eventBase.processTimezone(saveArgs.changedRecords, true);\n editParams.changedRecords.push(event_4);\n promise = _this.parent.dataModule.dataManager.update(fields.id, event_4, _this.getTable(), _this.getQuery());\n }\n var crudArgs = {\n requestType: 'eventChanged', cancel: false,\n data: saveArgs.changedRecords, promise: promise, editParams: editParams\n };\n _this.refreshData(crudArgs);\n }\n });\n }\n }\n };\n Crud.prototype.deleteEvent = function (eventData, action) {\n var _this = this;\n if (this.parent.eventSettings.allowDeleting && !this.parent.activeViewOptions.readonly) {\n this.parent.currentAction = action;\n var deleteEvents = [];\n if (typeof eventData === 'string' || typeof eventData === 'number') {\n deleteEvents = this.parent.eventsData.filter(function (eventObj) {\n return eventObj[_this.parent.eventFields.id] === eventData;\n });\n }\n else {\n deleteEvents = (eventData instanceof Array ? eventData : [eventData]);\n }\n if (deleteEvents.length === 0) {\n return;\n }\n if (action) {\n switch (action) {\n case 'Delete':\n this.processDelete(deleteEvents);\n break;\n case 'DeleteOccurrence':\n this.processOccurrences(deleteEvents, action);\n break;\n case 'DeleteFollowingEvents':\n this.processFollowSeries(deleteEvents, action);\n break;\n case 'DeleteSeries':\n this.processEntireSeries(deleteEvents, action);\n break;\n }\n }\n else {\n var args = {\n requestType: 'eventRemove', cancel: false, data: eventData,\n addedRecords: [], changedRecords: [], deletedRecords: deleteEvents\n };\n this.parent.trigger(events.actionBegin, args, function (deleteArgs) {\n if (!deleteArgs.cancel) {\n var promise = void 0;\n var fields = _this.parent.eventFields;\n var editParams = { addedRecords: [], changedRecords: [], deletedRecords: [] };\n if (deleteArgs.deletedRecords.length > 1) {\n editParams.deletedRecords = editParams.deletedRecords.concat(deleteArgs.deletedRecords);\n promise = _this.parent.dataModule.dataManager.saveChanges(editParams, fields.id, _this.getTable(), _this.getQuery());\n }\n else {\n editParams.deletedRecords.push(deleteArgs.deletedRecords[0]);\n promise = _this.parent.dataModule.dataManager.remove(fields.id, deleteArgs.deletedRecords[0], _this.getTable(), _this.getQuery());\n }\n _this.parent.eventBase.selectWorkCellByTime(deleteArgs.deletedRecords);\n var crudArgs = {\n requestType: 'eventRemoved', cancel: false,\n data: deleteArgs.deletedRecords, promise: promise, editParams: editParams\n };\n _this.refreshData(crudArgs);\n }\n });\n }\n }\n };\n Crud.prototype.processOccurrences = function (eventData, action) {\n var _this = this;\n var occurrenceData = [];\n var isDeletedRecords = false;\n if (eventData instanceof Array) {\n for (var _i = 0, eventData_3 = eventData; _i < eventData_3.length; _i++) {\n var event_5 = eventData_3[_i];\n occurrenceData.push({ occurrence: event_5, parent: this.getParentEvent(event_5) });\n }\n }\n else {\n occurrenceData = { occurrence: eventData, parent: this.getParentEvent(eventData) };\n }\n var updateEvents = (eventData instanceof Array) ? eventData : [eventData];\n var args = {\n requestType: action === 'EditOccurrence' ? 'eventChange' : 'eventRemove', cancel: false,\n addedRecords: [], changedRecords: updateEvents, deletedRecords: []\n };\n args.data = occurrenceData;\n this.parent.trigger(events.actionBegin, args, function (occurrenceArgs) {\n if (!occurrenceArgs.cancel) {\n var fields = _this.parent.eventFields;\n var editParams = { addedRecords: [], changedRecords: [], deletedRecords: [] };\n var occurrenceEvents = (occurrenceData instanceof Array ? occurrenceData : [occurrenceData]);\n var _loop_2 = function (a, count) {\n var childEvent = occurrenceArgs.changedRecords[parseInt(a.toString(), 10)];\n var parentEvent = occurrenceEvents[parseInt(a.toString(), 10)].parent;\n var parentException = parentEvent[fields.recurrenceException];\n var editedData = void 0;\n var exceptionDate = void 0;\n switch (action) {\n case 'EditOccurrence':\n editedData = _this.parent.eventsProcessed.filter(function (event) { return event.Guid === childEvent.Guid; })[0];\n exceptionDate = _this.excludeDateCheck(editedData[fields.startTime], parentException);\n if (exceptionDate !== parentEvent[fields.recurrenceException]) {\n parentEvent[fields.recurrenceException] = exceptionDate;\n childEvent[fields.recurrenceException] = getRecurrenceStringFromDate(editedData[fields.startTime]);\n childEvent[fields.recurrenceID] = parentEvent[fields.id];\n childEvent[fields.followingID] = null;\n editParams.changedRecords.push(_this.parent.eventBase.processTimezone(parentEvent, true));\n editParams.addedRecords.push(_this.parent.eventBase.processTimezone(childEvent, true));\n }\n else {\n editParams.changedRecords.push(_this.parent.eventBase.processTimezone(childEvent, true));\n }\n break;\n case 'DeleteOccurrence':\n if (!childEvent[fields.recurrenceException]) {\n parentEvent[fields.recurrenceException] =\n _this.excludeDateCheck(childEvent[fields.startTime], parentException);\n editParams.changedRecords.push(_this.parent.eventBase.processTimezone(parentEvent, true));\n }\n if (childEvent[fields.id] !== parentEvent[fields.id]) {\n editParams.deletedRecords.push(childEvent);\n isDeletedRecords = true;\n }\n break;\n }\n };\n for (var a = 0, count = occurrenceArgs.changedRecords.length; a < count; a++) {\n _loop_2(a, count);\n }\n var promise = _this.parent.dataModule.dataManager.saveChanges(editParams, fields.id, _this.getTable(), _this.getQuery());\n _this.parent.eventBase.selectWorkCellByTime(occurrenceArgs.changedRecords);\n var crudArgs = {\n requestType: action === 'EditOccurrence' ? 'eventChanged' : 'eventRemoved',\n cancel: false, data: isDeletedRecords ? occurrenceArgs.deletedRecords : occurrenceArgs.changedRecords,\n promise: promise, editParams: editParams\n };\n _this.refreshData(crudArgs);\n }\n });\n };\n Crud.prototype.processFollowSeries = function (eventData, action) {\n var _this = this;\n var followData = [];\n if (eventData instanceof Array) {\n for (var _i = 0, eventData_4 = eventData; _i < eventData_4.length; _i++) {\n var event_6 = eventData_4[_i];\n followData.push({ occurrence: event_6, parent: this.getParentEvent(event_6) });\n }\n }\n else {\n followData = { occurrence: eventData, parent: this.getParentEvent(eventData) };\n }\n var updateFollowEvents = (eventData instanceof Array) ? eventData : [eventData];\n var args = {\n requestType: action === 'EditFollowingEvents' ? 'eventChange' : 'eventRemove', cancel: false,\n addedRecords: [], changedRecords: updateFollowEvents, deletedRecords: []\n };\n args.data = followData;\n this.parent.trigger(events.actionBegin, args, function (followArgs) {\n if (!followArgs.cancel) {\n var fields_1 = _this.parent.eventFields;\n var editParams = { addedRecords: [], changedRecords: [], deletedRecords: [] };\n var followEvents = followData instanceof Array ? followData : [followData];\n var _loop_3 = function (a, count) {\n var childEvent = followArgs.changedRecords[parseInt(a.toString(), 10)];\n var parentEvent = followEvents[parseInt(a.toString(), 10)].parent;\n var followData_1 = _this.parent.eventBase.getEventCollections(parentEvent, childEvent);\n var isSpanned = void 0;\n switch (action) {\n case 'EditFollowingEvents':\n _this.processRecurrenceRule(parentEvent, childEvent);\n isSpanned = !_this.parent.eventBase.isFollowingEvent(parentEvent, childEvent);\n childEvent[fields_1.followingID] = isSpanned ? null : parentEvent[fields_1.id];\n childEvent[fields_1.recurrenceID] = null;\n editParams.addedRecords.push(_this.parent.eventBase.processTimezone(childEvent, true));\n editParams.changedRecords.push(_this.parent.eventBase.processTimezone(parentEvent, true));\n if (!_this.parent.uiStateValues.isIgnoreOccurrence) {\n childEvent[fields_1.recurrenceException] = null;\n if (followData_1.occurrence.length > 0) {\n var rule = followData_1.occurrence.slice(-1)[0][fields_1.recurrenceRule];\n if (rule.indexOf('COUNT') === -1) {\n childEvent[fields_1.recurrenceRule] = rule;\n }\n }\n if (followData_1.follow.length > 0) {\n childEvent[fields_1.recurrenceRule] = followData_1.follow.slice(-1)[0][fields_1.recurrenceRule];\n editParams.deletedRecords = editParams.deletedRecords.concat(followData_1.follow);\n }\n if (isSpanned) {\n followData_1.occurrence = followData_1.occurrence.filter(function (eventObj) {\n return eventObj[fields_1.recurrenceID] === childEvent[fields_1.id];\n });\n }\n editParams.deletedRecords = editParams.deletedRecords.concat(followData_1.occurrence);\n }\n break;\n case 'DeleteFollowingEvents':\n _this.processRecurrenceRule(parentEvent, childEvent[fields_1.startTime]);\n editParams.changedRecords.push(_this.parent.eventBase.processTimezone(parentEvent, true));\n editParams.deletedRecords = editParams.deletedRecords.concat(followData_1.occurrence).concat(followData_1.follow);\n break;\n }\n };\n for (var a = 0, count = followArgs.changedRecords.length; a < count; a++) {\n _loop_3(a, count);\n }\n var promise = _this.parent.dataModule.dataManager.saveChanges(editParams, fields_1.id, _this.getTable(), _this.getQuery());\n _this.parent.eventBase.selectWorkCellByTime(followArgs.changedRecords);\n var crudArgs = {\n requestType: action === 'EditFollowingEvents' ? 'eventChanged' : 'eventRemoved',\n cancel: false, data: followArgs.changedRecords, promise: promise, editParams: editParams\n };\n _this.refreshData(crudArgs);\n }\n });\n };\n Crud.prototype.processEntireSeries = function (eventData, action) {\n var _this = this;\n var seriesData = [];\n var isDeletedRecords = false;\n if (eventData instanceof Array) {\n for (var _i = 0, eventData_5 = eventData; _i < eventData_5.length; _i++) {\n var event_7 = eventData_5[_i];\n seriesData.push(this.getParentEvent(event_7, true));\n }\n }\n else {\n seriesData = this.getParentEvent(eventData, true);\n }\n var updateSeriesEvents = (eventData instanceof Array) ? eventData : [eventData];\n var args = {\n requestType: action === 'EditSeries' ? 'eventChange' : 'eventRemove', cancel: false,\n addedRecords: [], changedRecords: updateSeriesEvents, deletedRecords: []\n };\n args.data = seriesData;\n this.parent.trigger(events.actionBegin, args, function (seriesArgs) {\n if (!seriesArgs.cancel) {\n var fields_2 = _this.parent.eventFields;\n var editParams = { addedRecords: [], changedRecords: [], deletedRecords: [] };\n var seriesEvents = seriesData instanceof Array ? seriesData : [seriesData];\n var _loop_4 = function (a, count) {\n var childEvent = seriesArgs.changedRecords[parseInt(a.toString(), 10)];\n var parentEvent = seriesEvents[parseInt(a.toString(), 10)];\n var eventCollections = _this.parent.eventBase.getEventCollections(parentEvent);\n var deletedEvents = eventCollections.follow.concat(eventCollections.occurrence);\n switch (action) {\n case 'EditSeries':\n childEvent[fields_2.id] = parentEvent[fields_2.id];\n childEvent[fields_2.recurrenceID] = null;\n childEvent[fields_2.followingID] = null;\n if (_this.parent.uiStateValues.isIgnoreOccurrence && childEvent[fields_2.recurrenceException]) {\n var originalParent = _this.parent.eventsData.filter(function (eventObj) {\n return eventObj[fields_2.id] === childEvent[fields_2.id];\n });\n if (originalParent.length > 0) {\n childEvent[fields_2.recurrenceRule] = originalParent[0][fields_2.recurrenceRule];\n }\n }\n else {\n childEvent[fields_2.recurrenceException] = null;\n editParams.deletedRecords = editParams.deletedRecords.concat(deletedEvents);\n }\n editParams.changedRecords.push(_this.parent.eventBase.processTimezone(childEvent, true));\n _this.parent.uiStateValues.isIgnoreOccurrence = false;\n break;\n case 'DeleteSeries':\n editParams.deletedRecords = editParams.deletedRecords.concat(deletedEvents.concat(parentEvent));\n isDeletedRecords = true;\n break;\n }\n };\n for (var a = 0, count = seriesArgs.changedRecords.length; a < count; a++) {\n _loop_4(a, count);\n }\n var promise = _this.parent.dataModule.dataManager.saveChanges(editParams, fields_2.id, _this.getTable(), _this.getQuery());\n _this.parent.eventBase.selectWorkCellByTime(seriesArgs.changedRecords);\n var crudArgs = {\n requestType: action === 'EditSeries' ? 'eventChanged' : 'eventRemoved',\n cancel: false, data: isDeletedRecords ? seriesArgs.deletedRecords : seriesArgs.changedRecords,\n promise: promise, editParams: editParams\n };\n _this.refreshData(crudArgs);\n }\n });\n };\n Crud.prototype.processDelete = function (eventData) {\n var _this = this;\n var deleteData = [];\n for (var _i = 0, eventData_6 = eventData; _i < eventData_6.length; _i++) {\n var eventObj = eventData_6[_i];\n if (eventObj[this.parent.eventFields.recurrenceRule]) {\n deleteData.push({ occurrence: eventObj, parent: this.getParentEvent(eventObj) });\n }\n else {\n deleteData.push(eventObj);\n }\n }\n var args = {\n requestType: 'eventRemove', cancel: false,\n addedRecords: [], changedRecords: [], deletedRecords: eventData\n };\n args.data = deleteData;\n this.parent.trigger(events.actionBegin, args, function (deleteArgs) {\n if (!deleteArgs.cancel) {\n var fields_3 = _this.parent.eventFields;\n var editParams = { addedRecords: [], changedRecords: [], deletedRecords: [] };\n var _loop_5 = function (a, count) {\n var isDelete = isNullOrUndefined(deleteArgs.deletedRecords[parseInt(a.toString(), 10)][_this.parent.eventFields.recurrenceRule]);\n if (!isDelete) {\n var parentEvent_1 = deleteData[parseInt(a.toString(), 10)].parent;\n var isEdited = editParams.changedRecords.filter(function (obj) {\n return obj[fields_3.id] === parentEvent_1[fields_3.id];\n });\n var editedDate = deleteArgs.deletedRecords[parseInt(a.toString(), 10)][fields_3.startTime];\n if (isEdited.length > 0) {\n var editedData = isEdited[0];\n editedData[fields_3.recurrenceException] =\n _this.excludeDateCheck(editedDate, editedData[fields_3.recurrenceException]);\n }\n else {\n parentEvent_1[fields_3.recurrenceException] =\n _this.excludeDateCheck(editedDate, parentEvent_1[fields_3.recurrenceException]);\n }\n if (isEdited.length === 0) {\n editParams.changedRecords.push(_this.parent.eventBase.processTimezone(parentEvent_1, true));\n }\n isDelete = deleteArgs.deletedRecords[parseInt(a.toString(), 10)][fields_3.id] !== parentEvent_1[fields_3.id];\n }\n if (isDelete) {\n editParams.deletedRecords.push(deleteArgs.deletedRecords[parseInt(a.toString(), 10)]);\n }\n };\n for (var a = 0, count = deleteArgs.deletedRecords.length; a < count; a++) {\n _loop_5(a, count);\n }\n var promise = _this.parent.dataModule.dataManager.saveChanges(editParams, fields_3.id, _this.getTable(), _this.getQuery());\n var crudArgs = {\n requestType: 'eventRemoved', cancel: false, data: deleteArgs.deletedRecords, promise: promise, editParams: editParams\n };\n _this.refreshData(crudArgs);\n }\n });\n };\n Crud.prototype.processSave = function (data) {\n var _this = this;\n var eventData = (data instanceof Array) ? data : [data];\n var editData = [];\n for (var _i = 0, eventData_7 = eventData; _i < eventData_7.length; _i++) {\n var eventObj = eventData_7[_i];\n if (eventObj[this.parent.eventFields.recurrenceRule]) {\n editData.push({ occurrence: eventObj, parent: this.getParentEvent(eventObj) });\n }\n else {\n editData.push(eventObj);\n }\n }\n var args = { requestType: 'eventChange', cancel: false, addedRecords: [], changedRecords: eventData, deletedRecords: [] };\n args.data = editData;\n this.parent.trigger(events.actionBegin, args, function (editArgs) {\n if (!editArgs.cancel) {\n var fields = _this.parent.eventFields;\n var editParams = { addedRecords: [], changedRecords: [], deletedRecords: [] };\n for (var _i = 0, _a = editArgs.changedRecords; _i < _a.length; _i++) {\n var record = _a[_i];\n if (!isNullOrUndefined(record[fields.recurrenceRule]) && isNullOrUndefined(record[fields.recurrenceException])) {\n var exceptionString = getRecurrenceStringFromDate(record[fields.startTime]);\n var parentEle = _this.getParentEvent(record);\n parentEle[fields.recurrenceException] = isNullOrUndefined(parentEle[fields.recurrenceException]) ?\n exceptionString : parentEle[fields.recurrenceException].concat(',' + exceptionString);\n record[fields.id] = _this.parent.getEventMaxID();\n record[fields.recurrenceException] = exceptionString;\n editParams.addedRecords.push(_this.parent.eventBase.processTimezone(record, true));\n editParams.changedRecords.push(_this.parent.eventBase.processTimezone(parentEle, true));\n }\n else {\n editParams.changedRecords.push(_this.parent.eventBase.processTimezone(record, true));\n }\n }\n var promise = _this.parent.dataModule.dataManager.saveChanges(editParams, fields.id, _this.getTable(), _this.getQuery());\n var crudArgs = { requestType: 'eventChanged', cancel: false, data: editArgs.changedRecords, promise: promise, editParams: editParams };\n _this.refreshData(crudArgs);\n }\n });\n };\n Crud.prototype.getParentEvent = function (event, isParent) {\n if (isParent === void 0) { isParent = false; }\n var parentEvent = this.parent.eventBase.getParentEvent(event, isParent) || event;\n if (parentEvent[this.parent.eventFields.startTimezone] || parentEvent[this.parent.eventFields.endTimezone]) {\n this.parent.eventBase.timezoneConvert(parentEvent);\n }\n return parentEvent;\n };\n Crud.prototype.excludeDateCheck = function (eventStartTime, exceptionDateList) {\n var exDate = getRecurrenceStringFromDate(eventStartTime);\n if (!isNullOrUndefined(exceptionDateList)) {\n if (exceptionDateList.indexOf(exDate) === -1) {\n exceptionDateList = !(isNullOrUndefined(exceptionDateList)) ? exceptionDateList + ',' + exDate : exDate;\n }\n }\n else {\n exceptionDateList = exDate;\n }\n return exceptionDateList;\n };\n Crud.prototype.processRecurrenceRule = function (parentEvent, followEvent) {\n var fields = this.parent.eventFields;\n var recurrenceRule = parentEvent[fields.recurrenceRule];\n var endDate;\n if (followEvent instanceof Date) {\n endDate = new Date(+followEvent);\n }\n else {\n endDate = new Date(+followEvent[fields.startTime]);\n var newRecurrenceRule = followEvent[fields.recurrenceRule];\n if (newRecurrenceRule) {\n var startDate = parentEvent[fields.startTime];\n var ruleException = (this.parent.currentAction === 'DeleteFollowingEvents') ? followEvent[fields.recurrenceException] : null;\n var dateCollection = generate(startDate, newRecurrenceRule, ruleException, this.parent.activeViewOptions.firstDayOfWeek);\n var untilDate = new Date(dateCollection.slice(-1)[0]);\n untilDate.setHours(endDate.getHours(), endDate.getMinutes(), endDate.getSeconds());\n endDate.setHours(startDate.getHours(), startDate.getMinutes(), startDate.getSeconds());\n followEvent[fields.recurrenceRule] = this.getUpdatedRecurrenceRule(newRecurrenceRule, new Date(+untilDate), false);\n }\n }\n parentEvent[fields.recurrenceRule] = this.getUpdatedRecurrenceRule(recurrenceRule, util.addDays(new Date(endDate.getTime()), -1), true);\n };\n Crud.prototype.getUpdatedRecurrenceRule = function (recurrenceRule, untilDate, isParent) {\n var splitRule = recurrenceRule.split(';');\n var updatedRule = '';\n for (var _i = 0, splitRule_1 = splitRule; _i < splitRule_1.length; _i++) {\n var rule = splitRule_1[_i];\n if (rule !== '') {\n var ruleKey = rule.split('=')[0];\n var ruleValue = rule.split('=')[1];\n if (ruleKey === 'COUNT' || ruleKey === 'UNTIL') {\n ruleValue = getRecurrenceStringFromDate(untilDate);\n rule = rule.replace(rule, 'UNTIL=' + ruleValue);\n }\n updatedRule += rule + ';';\n }\n }\n if (isParent && updatedRule.indexOf('UNTIL') === -1) {\n updatedRule += 'UNTIL=' + getRecurrenceStringFromDate(untilDate);\n }\n return updatedRule;\n };\n Crud.prototype.isBlockEvent = function (eventData) {\n var eventCollection = (eventData instanceof Array) ? eventData : [eventData];\n var value = false;\n for (var _i = 0, eventCollection_1 = eventCollection; _i < eventCollection_1.length; _i++) {\n var event_8 = eventCollection_1[_i];\n value = event_8[this.parent.eventFields.isBlock] || false;\n }\n return value;\n };\n /**\n * To destroy the crud module.\n *\n * @returns {void}\n * @private\n */\n Crud.prototype.destroy = function () {\n this.crudObj = null;\n this.parent = null;\n };\n return Crud;\n}());\nexport { Crud };\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { extend, closest, isNullOrUndefined, EventHandler } from '@syncfusion/ej2-base';\nimport * as event from '../base/constant';\nimport * as cls from '../base/css-constant';\n/**\n * Work cell interactions\n */\nvar WorkCellInteraction = /** @class */ (function () {\n function WorkCellInteraction(parent) {\n this.parent = parent;\n EventHandler.add(this.parent.element, 'mouseover', this.onHover, this);\n }\n WorkCellInteraction.prototype.cellMouseDown = function (e) {\n if (this.isPreventAction(e)) {\n return;\n }\n this.parent.notify(event.cellMouseDown, { event: e });\n };\n WorkCellInteraction.prototype.cellClick = function (e) {\n var _this = this;\n if (this.isPreventAction(e)) {\n return;\n }\n var queryStr = '.' + cls.WORK_CELLS_CLASS + ',.' + cls.ALLDAY_CELLS_CLASS + ',.' + cls.HEADER_CELLS_CLASS;\n var target = closest(e.target, queryStr);\n if (isNullOrUndefined(target)) {\n return;\n }\n if (!isNullOrUndefined(closest(e.target, '.' + cls.NEW_EVENT_CLASS))) {\n this.parent.eventWindow.openEditor(this.parent.activeCellsData, 'Add');\n return;\n }\n var navigateEle = closest(e.target, '.' + cls.NAVIGATE_CLASS);\n var navigateView = this.parent.getNavigateView();\n var sameView = this.parent.currentView === navigateView;\n if (isNullOrUndefined(navigateEle) || sameView ||\n isNullOrUndefined(this.parent.viewOptions[navigateView.charAt(0).toLowerCase() + navigateView.slice(1)])) {\n if (this.parent.activeViewOptions.readonly && this.parent.currentView !== 'MonthAgenda') {\n if (this.parent.quickPopup) {\n this.parent.quickPopup.quickPopupHide();\n }\n return;\n }\n if (this.parent.isAdaptive && (e.target.classList.contains(cls.MORE_INDICATOR_CLASS) ||\n closest(e.target, '.' + cls.MORE_INDICATOR_CLASS))) {\n return;\n }\n var isWorkCell_1 = target.classList.contains(cls.WORK_CELLS_CLASS) ||\n target.classList.contains(cls.ALLDAY_CELLS_CLASS);\n if (isWorkCell_1 && e.shiftKey && e.which === 1 && this.parent.keyboardInteractionModule) {\n this.parent.keyboardInteractionModule.onMouseSelection(e);\n return;\n }\n this.parent.activeCellsData = this.parent.getCellDetails(target);\n var args = extend(this.parent.activeCellsData, { cancel: false, event: e, name: 'cellClick' });\n this.parent.trigger(event.cellClick, args, function (clickArgs) {\n if (!clickArgs.cancel) {\n if (isWorkCell_1) {\n _this.parent.selectCell(target);\n }\n if (_this.parent.allowInline) {\n var inlineArgs = {\n element: clickArgs.element,\n groupIndex: clickArgs.groupIndex, type: 'Cell'\n };\n _this.parent.notify(event.inlineClick, inlineArgs);\n }\n else {\n _this.parent.notify(event.cellClick, clickArgs);\n }\n }\n else {\n if (_this.parent.quickPopup) {\n _this.parent.quickPopup.quickPopupHide();\n }\n }\n });\n }\n else {\n var date = this.parent.getDateFromElement(target);\n if (!isNullOrUndefined(date) && !this.parent.isAdaptive && this.parent.isMinMaxDate(date)) {\n this.parent.setProperties({ selectedDate: date }, true);\n this.parent.changeView(this.parent.getNavigateView(), e);\n }\n }\n };\n WorkCellInteraction.prototype.cellDblClick = function (e) {\n var _this = this;\n var queryStr = '.' + cls.WORK_CELLS_CLASS + ',.' + cls.ALLDAY_CELLS_CLASS + ',.' + cls.HEADER_CELLS_CLASS;\n var target = closest(e.target, queryStr);\n if (this.parent.activeViewOptions.readonly || this.isPreventAction(e) || isNullOrUndefined(target)) {\n return;\n }\n var args = extend(this.parent.activeCellsData, { cancel: false, event: e, name: 'cellDoubleClick' });\n this.parent.trigger(event.cellDoubleClick, args, function (clickArgs) {\n var date = new Date(clickArgs.startTime.getTime());\n if (!_this.parent.isMinMaxDate(new Date(date.setHours(0, 0, 0, 0)))) {\n return;\n }\n if (!clickArgs.cancel) {\n _this.parent.eventWindow.openEditor(_this.parent.activeCellsData, 'Add');\n }\n });\n };\n WorkCellInteraction.prototype.onHover = function (e) {\n var targetSelector = '.' + cls.WORK_CELLS_CLASS + ',.' + cls.TIME_SLOT_CLASS + ',.' + cls.ALLDAY_CELLS_CLASS + ',.' +\n cls.HEADER_CELLS_CLASS + ',.' + cls.RESOURCE_CELLS_CLASS + ',.' + cls.APPOINTMENT_CLASS + ',.' + cls.WEEK_NUMBER_CLASS +\n ',.' + cls.MONTH_HEADER_CLASS;\n var hoverTarget = closest(e.target, targetSelector);\n if (hoverTarget) {\n var hoverArgs = { element: hoverTarget, event: e };\n this.parent.trigger(event.hover, hoverArgs);\n }\n };\n WorkCellInteraction.prototype.isPreventAction = function (e) {\n if (closest(e.target, '.' + cls.NAVIGATE_CLASS)) {\n return false;\n }\n if (closest(e.target, '.' + cls.APPOINTMENT_WRAPPER_CLASS) &&\n !closest(e.target, '.' + cls.MORE_INDICATOR_CLASS)) {\n return true;\n }\n var target = closest(e.target, '.' + cls.APPOINTMENT_CLASS + ',.' + cls.RESOURCE_GROUP_CELLS_CLASS);\n if (!isNullOrUndefined(target)) {\n return true;\n }\n target = closest(e.target, '.' + cls.HEADER_CELLS_CLASS);\n if (this.parent.activeView.isTimelineView() && !isNullOrUndefined(target)) {\n return true;\n }\n return false;\n };\n WorkCellInteraction.prototype.destroy = function () {\n EventHandler.remove(this.parent.element, 'mouseover', this.onHover);\n };\n return WorkCellInteraction;\n}());\nexport { WorkCellInteraction };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Property, ChildProperty } from '@syncfusion/ej2-base';\n/**\n * Configuration that applies on each appointment field options of scheduler.\n */\nvar FieldOptions = /** @class */ (function (_super) {\n __extends(FieldOptions, _super);\n function FieldOptions() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property()\n ], FieldOptions.prototype, \"name\", void 0);\n __decorate([\n Property()\n ], FieldOptions.prototype, \"default\", void 0);\n __decorate([\n Property()\n ], FieldOptions.prototype, \"title\", void 0);\n __decorate([\n Property({})\n ], FieldOptions.prototype, \"validation\", void 0);\n return FieldOptions;\n}(ChildProperty));\nexport { FieldOptions };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, ChildProperty, Complex } from '@syncfusion/ej2-base';\nimport { FieldOptions } from './field-options';\n/**\n * A class that holds the collection of event fields that requires to be mapped with the dataSource\n * fields along with its available configuration settings. Each field in it accepts both string and object\n * data type. When each of the field is assigned with simple `string` value, it is assumed that the dataSource field\n * name is mapped with it. If the `object` type is defined on each fields, then the validation related settings and mapping of\n * those fields with dataSource can be given altogether within it.\n */\nvar Field = /** @class */ (function (_super) {\n __extends(Field, _super);\n function Field() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('Id')\n ], Field.prototype, \"id\", void 0);\n __decorate([\n Property('IsBlock')\n ], Field.prototype, \"isBlock\", void 0);\n __decorate([\n Complex({ name: 'Subject' }, FieldOptions)\n ], Field.prototype, \"subject\", void 0);\n __decorate([\n Complex({ name: 'StartTime' }, FieldOptions)\n ], Field.prototype, \"startTime\", void 0);\n __decorate([\n Complex({ name: 'EndTime' }, FieldOptions)\n ], Field.prototype, \"endTime\", void 0);\n __decorate([\n Complex({ name: 'StartTimezone' }, FieldOptions)\n ], Field.prototype, \"startTimezone\", void 0);\n __decorate([\n Complex({ name: 'EndTimezone' }, FieldOptions)\n ], Field.prototype, \"endTimezone\", void 0);\n __decorate([\n Complex({ name: 'Location' }, FieldOptions)\n ], Field.prototype, \"location\", void 0);\n __decorate([\n Complex({ name: 'Description' }, FieldOptions)\n ], Field.prototype, \"description\", void 0);\n __decorate([\n Complex({ name: 'IsAllDay' }, FieldOptions)\n ], Field.prototype, \"isAllDay\", void 0);\n __decorate([\n Complex({ name: 'RecurrenceID' }, FieldOptions)\n ], Field.prototype, \"recurrenceID\", void 0);\n __decorate([\n Complex({ name: 'RecurrenceRule' }, FieldOptions)\n ], Field.prototype, \"recurrenceRule\", void 0);\n __decorate([\n Complex({ name: 'RecurrenceException' }, FieldOptions)\n ], Field.prototype, \"recurrenceException\", void 0);\n __decorate([\n Property('IsReadonly')\n ], Field.prototype, \"isReadonly\", void 0);\n __decorate([\n Property('FollowingID')\n ], Field.prototype, \"followingID\", void 0);\n return Field;\n}(ChildProperty));\nexport { Field };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Property, ChildProperty, Complex } from '@syncfusion/ej2-base';\nimport { Field } from './fields';\n/**\n * Holds the configuration of event related options and dataSource binding to Schedule.\n */\nvar EventSettings = /** @class */ (function (_super) {\n __extends(EventSettings, _super);\n function EventSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property()\n ], EventSettings.prototype, \"template\", void 0);\n __decorate([\n Property([])\n ], EventSettings.prototype, \"dataSource\", void 0);\n __decorate([\n Property()\n ], EventSettings.prototype, \"query\", void 0);\n __decorate([\n Complex({}, Field)\n ], EventSettings.prototype, \"fields\", void 0);\n __decorate([\n Property(false)\n ], EventSettings.prototype, \"enableTooltip\", void 0);\n __decorate([\n Property('AllDayRow')\n ], EventSettings.prototype, \"spannedEventPlacement\", void 0);\n __decorate([\n Property(1)\n ], EventSettings.prototype, \"minimumEventDuration\", void 0);\n __decorate([\n Property()\n ], EventSettings.prototype, \"tooltipTemplate\", void 0);\n __decorate([\n Property()\n ], EventSettings.prototype, \"resourceColorField\", void 0);\n __decorate([\n Property(false)\n ], EventSettings.prototype, \"editFollowingEvents\", void 0);\n __decorate([\n Property(true)\n ], EventSettings.prototype, \"allowAdding\", void 0);\n __decorate([\n Property(true)\n ], EventSettings.prototype, \"allowEditing\", void 0);\n __decorate([\n Property(true)\n ], EventSettings.prototype, \"allowDeleting\", void 0);\n __decorate([\n Property(false)\n ], EventSettings.prototype, \"enableMaxHeight\", void 0);\n __decorate([\n Property(false)\n ], EventSettings.prototype, \"enableIndicator\", void 0);\n __decorate([\n Property(false)\n ], EventSettings.prototype, \"ignoreWhitespace\", void 0);\n __decorate([\n Property()\n ], EventSettings.prototype, \"sortComparer\", void 0);\n __decorate([\n Property()\n ], EventSettings.prototype, \"includeFiltersInQuery\", void 0);\n return EventSettings;\n}(ChildProperty));\nexport { EventSettings };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, ChildProperty } from '@syncfusion/ej2-base';\n/**\n * A class that holds the resource grouping related configurations on Schedule.\n */\nvar Group = /** @class */ (function (_super) {\n __extends(Group, _super);\n function Group() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(false)\n ], Group.prototype, \"byDate\", void 0);\n __decorate([\n Property(true)\n ], Group.prototype, \"byGroupID\", void 0);\n __decorate([\n Property(false)\n ], Group.prototype, \"allowGroupEdit\", void 0);\n __decorate([\n Property([])\n ], Group.prototype, \"resources\", void 0);\n __decorate([\n Property(true)\n ], Group.prototype, \"enableCompactView\", void 0);\n __decorate([\n Property()\n ], Group.prototype, \"headerTooltipTemplate\", void 0);\n __decorate([\n Property(false)\n ], Group.prototype, \"hideNonWorkingDays\", void 0);\n return Group;\n}(ChildProperty));\nexport { Group };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Property, ChildProperty } from '@syncfusion/ej2-base';\n/**\n * A class that represents the resource related configurations and its data binding options.\n */\nvar Resources = /** @class */ (function (_super) {\n __extends(Resources, _super);\n function Resources() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property()\n ], Resources.prototype, \"field\", void 0);\n __decorate([\n Property()\n ], Resources.prototype, \"title\", void 0);\n __decorate([\n Property()\n ], Resources.prototype, \"name\", void 0);\n __decorate([\n Property(false)\n ], Resources.prototype, \"allowMultiple\", void 0);\n __decorate([\n Property([])\n ], Resources.prototype, \"dataSource\", void 0);\n __decorate([\n Property()\n ], Resources.prototype, \"query\", void 0);\n __decorate([\n Property('Id')\n ], Resources.prototype, \"idField\", void 0);\n __decorate([\n Property('Text')\n ], Resources.prototype, \"textField\", void 0);\n __decorate([\n Property('Expanded')\n ], Resources.prototype, \"expandedField\", void 0);\n __decorate([\n Property('GroupID')\n ], Resources.prototype, \"groupIDField\", void 0);\n __decorate([\n Property('Color')\n ], Resources.prototype, \"colorField\", void 0);\n __decorate([\n Property('StartHour')\n ], Resources.prototype, \"startHourField\", void 0);\n __decorate([\n Property('EndHour')\n ], Resources.prototype, \"endHourField\", void 0);\n __decorate([\n Property('WorkDays')\n ], Resources.prototype, \"workDaysField\", void 0);\n __decorate([\n Property('CssClass')\n ], Resources.prototype, \"cssClassField\", void 0);\n return Resources;\n}(ChildProperty));\nexport { Resources };\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable max-len */\nimport { extend, isNullOrUndefined, createElement, EventHandler, addClass, append, removeClass, remove, closest, classList } from '@syncfusion/ej2-base';\nimport { DataManager, Query } from '@syncfusion/ej2-data';\nimport { TreeView } from '@syncfusion/ej2-navigations';\nimport { Popup } from '@syncfusion/ej2-popups';\nimport { Data } from '../actions/data';\nimport * as cls from '../base/css-constant';\nimport * as events from '../base/constant';\nimport * as util from '../base/util';\nvar ResourceBase = /** @class */ (function () {\n function ResourceBase(parent) {\n this.resourceCollection = [];\n this.leftPixel = 25;\n this.resourceDateTree = [];\n this.parent = parent;\n }\n ResourceBase.prototype.renderResourceHeaderIndent = function (tr) {\n var resColTd = createElement('td', { className: cls.RESOURCE_LEFT_TD_CLASS });\n var resColDiv = createElement('div', { className: cls.RESOURCE_TEXT_CLASS });\n if (this.parent.activeViewOptions.headerIndentTemplate) {\n var data = { className: [resColTd.className], type: 'emptyCells' };\n this.parent.renderHeaderIndentTemplate(data, resColTd);\n }\n else {\n resColTd.appendChild(resColDiv);\n }\n var args = { elementType: 'emptyCells', element: resColTd };\n this.parent.trigger(events.renderCell, args);\n tr.appendChild(resColTd);\n };\n ResourceBase.prototype.hideResourceRows = function (tBody) {\n if (this.resourceCollection.length <= 1 || this.parent.virtualScrollModule) {\n return;\n }\n var trCount = this.lastResourceLevel.length;\n for (var i = 0; i < trCount; i++) {\n var resData = this.lastResourceLevel[parseInt(i.toString(), 10)].resourceData;\n var res = this.lastResourceLevel[parseInt(i.toString(), 10)].resource;\n if (resData.ClassName === cls.RESOURCE_PARENT_CLASS && !resData[res.expandedField] &&\n !isNullOrUndefined(resData[res.expandedField])) {\n var trCollection = [].slice.call(tBody.children);\n var slicedCollection = trCollection.slice(i + 1, i + (parseInt(resData.Count, 10) + 1));\n addClass(slicedCollection, cls.HIDDEN_CLASS);\n }\n }\n };\n ResourceBase.prototype.createResourceColumn = function () {\n var resColl = this.resourceCollection;\n var resDiv = createElement('div', { className: cls.RESOURCE_COLUMN_WRAP_CLASS });\n var tbl = this.parent.activeView.createTableLayout(cls.RESOURCE_COLUMN_TABLE_CLASS);\n if (!this.parent.uiStateValues.isGroupAdaptive && this.parent.rowAutoHeight && this.parent.activeView.isTimelineView()\n && this.parent.activeViewOptions.group.resources.length > 0) {\n addClass([tbl], cls.AUTO_HEIGHT);\n }\n var tBody = tbl.querySelector('tbody');\n var resData = this.generateTreeData(true);\n this.countCalculation(resColl.slice(0, -2), resColl.slice(0, -1));\n this.renderedResources = this.lastResourceLevel;\n if (this.parent.virtualScrollModule) {\n var resourceCount = this.parent.virtualScrollModule.getRenderedCount();\n this.setExpandedResources();\n resData = this.expandedResources.slice(0, resourceCount);\n this.renderedResources = resData;\n }\n append(this.getContentRows(resData), tBody);\n this.hideResourceRows(tBody);\n tbl.appendChild(tBody);\n resDiv.appendChild(tbl);\n return resDiv;\n };\n ResourceBase.prototype.setRenderedResources = function () {\n var resColl = this.resourceCollection;\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var temp = this.generateTreeData(true);\n this.countCalculation(resColl.slice(0, -2), resColl.slice(0, -1));\n this.renderedResources = this.lastResourceLevel;\n };\n ResourceBase.prototype.setExpandedResources = function () {\n var resources = [];\n for (var i = 0; i < this.lastResourceLevel.length; i++) {\n var resource = this.lastResourceLevel[parseInt(i.toString(), 10)].resourceData;\n var count = resource.Count;\n resources.push(this.lastResourceLevel[parseInt(i.toString(), 10)]);\n var isExpanded = resource[this.lastResourceLevel[parseInt(i.toString(), 10)].resource.expandedField];\n if (!isNullOrUndefined(isExpanded) && !isExpanded && count > 0) {\n i = i + count;\n }\n }\n this.expandedResources = resources;\n };\n ResourceBase.prototype.getContentRows = function (resData, isVirtualScroll) {\n var resRows = [];\n var left;\n var rIndex;\n var resColl = this.resourceCollection;\n var tr = createElement('tr');\n var td = createElement('td', { attrs: { tabindex: isVirtualScroll ? '-1' : '0' } });\n for (var i = 0; i < resData.length; i++) {\n var ntd = td.cloneNode();\n rIndex = util.findIndexInData(resColl, 'name', resData[parseInt(i.toString(), 10)].resource.name);\n if (rIndex === resColl.length - 1) {\n extend(resData[parseInt(i.toString(), 10)].resourceData, { ClassName: cls.RESOURCE_CHILD_CLASS });\n this.renderedResources[parseInt(i.toString(), 10)].className = [cls.RESOURCE_CHILD_CLASS];\n }\n else {\n extend(resData[parseInt(i.toString(), 10)].resourceData, { ClassName: cls.RESOURCE_PARENT_CLASS });\n this.renderedResources[parseInt(i.toString(), 10)].className = [cls.RESOURCE_PARENT_CLASS];\n }\n left = (rIndex * this.leftPixel) + 'px';\n if (resData[parseInt(i.toString(), 10)].resourceData.ClassName === cls.RESOURCE_PARENT_CLASS\n && !isNullOrUndefined(resData[parseInt(i.toString(), 10)].resourceData.Count) && (resData[parseInt(i.toString(), 10)].resourceData.Count > 0)) {\n var iconClass = void 0;\n if (resData[parseInt(i.toString(), 10)].resourceData[resColl[parseInt(rIndex.toString(), 10)].expandedField] ||\n isNullOrUndefined(resData[parseInt(i.toString(), 10)].resourceData[resColl[parseInt(rIndex.toString(), 10)].expandedField])) {\n iconClass = cls.RESOURCE_COLLAPSE_CLASS;\n }\n else {\n iconClass = cls.RESOURCE_EXPAND_CLASS;\n }\n var iconDiv = createElement('div');\n addClass([iconDiv], [cls.RESOURCE_TREE_ICON_CLASS, iconClass]);\n this.setMargin(iconDiv, left);\n ntd.appendChild(iconDiv);\n if (this.resourceCollection.length > 1) {\n EventHandler.add(iconDiv, 'click', this.onTreeIconClick, this);\n }\n }\n this.parent.activeView.setResourceHeaderContent(ntd, resData[parseInt(i.toString(), 10)], cls.RESOURCE_TEXT_CLASS);\n ntd.setAttribute('data-group-index', resData[parseInt(i.toString(), 10)].groupIndex.toString());\n ntd.setAttribute('aria-label', resData[parseInt(i.toString(), 10)].resourceData[resData[parseInt(i.toString(), 10)].resource.textField] + ' resource');\n if (!this.parent.activeViewOptions.resourceHeaderTemplate) {\n this.setMargin(ntd.querySelector('.' + cls.RESOURCE_TEXT_CLASS), left);\n }\n var classCollection = [cls.RESOURCE_CELLS_CLASS, resData[parseInt(i.toString(), 10)].resourceData.ClassName];\n addClass([ntd], classCollection);\n var args = { elementType: 'resourceHeader', element: ntd, groupIndex: resData[parseInt(i.toString(), 10)].groupIndex };\n this.parent.trigger(events.renderCell, args);\n var ntr = tr.cloneNode();\n ntr.appendChild(ntd);\n resRows.push(ntr);\n }\n return resRows;\n };\n ResourceBase.prototype.setMargin = function (element, value) {\n if (!this.parent.enableRtl) {\n element.style.marginLeft = value;\n }\n else {\n element.style.marginRight = value;\n }\n };\n ResourceBase.prototype.countCalculation = function (parentCollection, wholeCollection) {\n var collection;\n for (var y = 0; y < parentCollection.length; y++) {\n var data = parentCollection[parentCollection.length - (y + 1)].dataSource;\n for (var x = 0; x < data.length; x++) {\n var totalCount = 0;\n if (this.parent.activeViewOptions.group.byGroupID) {\n var query = new Query().where(wholeCollection[wholeCollection.length - 1].groupIDField, 'equal', data[parseInt(x.toString(), 10)][parentCollection[parentCollection.length - (y + 1)].idField]);\n collection = new DataManager(wholeCollection[wholeCollection.length - 1].dataSource).executeLocal(query);\n }\n else {\n collection = wholeCollection[wholeCollection.length - 1].dataSource;\n }\n for (var z = 0; z < collection.length; z++) {\n totalCount = totalCount + parseInt(collection[parseInt(z.toString(), 10)].Count, 10);\n }\n totalCount = totalCount + parseInt(data[parseInt(x.toString(), 10)].Count, 10);\n extend(data[parseInt(x.toString(), 10)], { Count: totalCount });\n }\n wholeCollection = wholeCollection.slice(0, -1);\n }\n };\n ResourceBase.prototype.onTreeIconClick = function (e) {\n var _this = this;\n if (this.parent.eventTooltip) {\n this.parent.eventTooltip.close();\n }\n var target = e.target;\n var hide;\n var trElement = closest(target, '.' + cls.RESOURCE_PARENT_CLASS)\n .parentElement;\n var index = parseInt(trElement.children[0].getAttribute('data-group-index'), 10);\n var args = {\n cancel: false, event: e, groupIndex: index,\n requestType: !target.classList.contains(cls.RESOURCE_COLLAPSE_CLASS) ? 'resourceExpand' : 'resourceCollapse'\n };\n this.parent.trigger(events.actionBegin, args, function (actionArgs) {\n if (!actionArgs.cancel) {\n if (target.classList.contains(cls.RESOURCE_COLLAPSE_CLASS)) {\n classList(target, [cls.RESOURCE_EXPAND_CLASS], [cls.RESOURCE_COLLAPSE_CLASS]);\n hide = true;\n }\n else {\n classList(target, [cls.RESOURCE_COLLAPSE_CLASS], [cls.RESOURCE_EXPAND_CLASS]);\n hide = false;\n }\n var eventElements = [].slice.call(_this.parent.element.querySelectorAll('.' + cls.APPOINTMENT_CLASS + ',.' + cls.MORE_INDICATOR_CLASS));\n for (var _i = 0, eventElements_1 = eventElements; _i < eventElements_1.length; _i++) {\n var element = eventElements_1[_i];\n remove(element);\n }\n if (_this.parent.virtualScrollModule) {\n _this.updateVirtualContent(index, hide, e, target);\n }\n else {\n _this.updateContent(index, hide);\n }\n var data = { cssProperties: _this.parent.getCssProperties(), module: 'scroll' };\n _this.parent.notify(events.scrollUiUpdate, data);\n args = {\n cancel: false, event: e, groupIndex: index,\n requestType: target.classList.contains(cls.RESOURCE_COLLAPSE_CLASS) ? 'resourceExpanded' : 'resourceCollapsed'\n };\n _this.parent.refreshEvents(false);\n _this.parent.trigger(events.actionComplete, args);\n }\n });\n };\n ResourceBase.prototype.updateContent = function (index, hide) {\n var rowCollection = [];\n var workCellCollection = [];\n var headerRowCollection = [];\n var pNode;\n var clickedRes = this.lastResourceLevel[parseInt(index.toString(), 10)].resourceData;\n var resRows = [].slice.call(this.parent.element.querySelectorAll('.' + cls.RESOURCE_COLUMN_WRAP_CLASS + ' ' + 'tr'));\n var contentRows = [].slice.call(this.parent.element.querySelectorAll('.' + cls.CONTENT_WRAP_CLASS + ' ' + 'tbody tr'));\n var eventRows = [].slice.call(this.parent.element.querySelectorAll('.' + cls.CONTENT_WRAP_CLASS + ' .' + cls.APPOINTMENT_CONTAINER_CLASS));\n for (var j = 0; j < clickedRes.Count; j++) {\n rowCollection.push(resRows[index + j + 1]);\n workCellCollection.push(contentRows[index + j + 1]);\n headerRowCollection.push(eventRows[index + j + 1]);\n }\n var clonedCollection = this.lastResourceLevel;\n for (var i = 0; i < rowCollection.length; i++) {\n var expanded = true;\n pNode = rowCollection[parseInt(i.toString(), 10)].children[0].classList.contains(cls.RESOURCE_PARENT_CLASS);\n clonedCollection[parseInt(index.toString(), 10)].resourceData[clonedCollection[parseInt(index.toString(), 10)].resource.expandedField] = !hide;\n if (hide) {\n if (pNode) {\n var trElem = rowCollection[parseInt(i.toString(), 10)].querySelector('.' + cls.RESOURCE_TREE_ICON_CLASS);\n if (trElem) {\n classList(trElem, [cls.RESOURCE_EXPAND_CLASS], [cls.RESOURCE_COLLAPSE_CLASS]);\n }\n }\n if (!rowCollection[parseInt(i.toString(), 10)].classList.contains(cls.HIDDEN_CLASS)) {\n addClass([rowCollection[parseInt(i.toString(), 10)], workCellCollection[parseInt(i.toString(), 10)], headerRowCollection[parseInt(i.toString(), 10)]], cls.HIDDEN_CLASS);\n }\n }\n else {\n if (pNode) {\n var rowIndex = rowCollection[parseInt(i.toString(), 10)].rowIndex;\n if (!clonedCollection[parseInt(rowIndex.toString(), 10)].resourceData[clonedCollection[parseInt(rowIndex.toString(), 10)].resource.expandedField]\n && !isNullOrUndefined(clonedCollection[parseInt(rowIndex.toString(), 10)].resourceData[clonedCollection[parseInt(rowIndex.toString(), 10)].resource.expandedField])) {\n rowCollection.splice(i + 1, (parseInt(clonedCollection[parseInt(rowIndex.toString(), 10)].resourceData.Count, 10)));\n workCellCollection.splice(i + 1, (parseInt(clonedCollection[parseInt(rowIndex.toString(), 10)].resourceData.Count, 10)));\n headerRowCollection.splice(i + 1, (parseInt(clonedCollection[parseInt(rowIndex.toString(), 10)].resourceData.Count, 10)));\n expanded = false;\n }\n if (expanded) {\n var trElem = rowCollection[parseInt(i.toString(), 10)].querySelector('.' + cls.RESOURCE_TREE_ICON_CLASS);\n if (trElem) {\n classList(trElem, [cls.RESOURCE_COLLAPSE_CLASS], [cls.RESOURCE_EXPAND_CLASS]);\n }\n }\n }\n if (rowCollection[parseInt(i.toString(), 10)].classList.contains(cls.HIDDEN_CLASS)) {\n removeClass([rowCollection[parseInt(i.toString(), 10)], workCellCollection[parseInt(i.toString(), 10)], headerRowCollection[parseInt(i.toString(), 10)]], cls.HIDDEN_CLASS);\n }\n }\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n ResourceBase.prototype.updateVirtualContent = function (index, expand, e, target) {\n this.lastResourceLevel[parseInt(index.toString(), 10)].resourceData[this.lastResourceLevel[parseInt(index.toString(), 10)].resource.expandedField] = !expand;\n this.setExpandedResources();\n var resourceCount = this.parent.virtualScrollModule.getRenderedCount();\n var startIndex = this.expandedResources.indexOf(this.renderedResources[0]);\n this.renderedResources = this.expandedResources.slice(startIndex, startIndex + resourceCount);\n if (this.renderedResources.length < resourceCount) {\n var sIndex = this.expandedResources.length - resourceCount;\n sIndex = (sIndex > 0) ? sIndex : 0;\n this.renderedResources = this.expandedResources.slice(sIndex, this.expandedResources.length);\n }\n var virtualTrack = this.parent.element.querySelector('.' + cls.VIRTUAL_TRACK_CLASS);\n this.parent.virtualScrollModule.updateVirtualTrackHeight(virtualTrack);\n var resTable = this.parent.element.querySelector('.' + cls.RESOURCE_COLUMN_WRAP_CLASS + ' ' + 'table');\n var contentTable = this.parent.element.querySelector('.' + cls.CONTENT_WRAP_CLASS + ' ' + 'table');\n var eventTable = this.parent.element.querySelector('.' + cls.EVENT_TABLE_CLASS);\n this.parent.virtualScrollModule.updateContent(resTable, contentTable, eventTable, this.renderedResources);\n var timeIndicator = this.parent.element.querySelector('.' + cls.CURRENT_TIMELINE_CLASS);\n if (!isNullOrUndefined(timeIndicator)) {\n timeIndicator.style.height =\n this.parent.element.querySelector('.' + cls.CONTENT_TABLE_CLASS).offsetHeight + 'px';\n }\n };\n ResourceBase.prototype.renderResourceHeader = function () {\n var resourceWrapper = createElement('div', { className: cls.RESOURCE_TOOLBAR_CONTAINER });\n resourceWrapper.innerHTML = '
      ' +\n '
      ';\n if (this.parent.currentView === 'MonthAgenda') {\n var target = this.parent.activeView.getPanel().querySelector('.' + cls.CONTENT_WRAP_CLASS);\n target.insertBefore(resourceWrapper, target.querySelector('.' + cls.WRAPPER_CONTAINER_CLASS));\n }\n else {\n this.parent.element.insertBefore(resourceWrapper, this.parent.element.querySelector('.' + cls.TABLE_CONTAINER_CLASS));\n }\n this.renderResourceHeaderText();\n EventHandler.add(resourceWrapper.querySelector('.' + cls.RESOURCE_MENU_ICON), 'click', this.menuClick, this);\n };\n ResourceBase.prototype.renderResourceTree = function () {\n this.popupOverlay = createElement('div', { className: cls.RESOURCE_TREE_POPUP_OVERLAY });\n var treeWrapper = createElement('div', { className: cls.RESOURCE_TREE_POPUP + ' e-popup-close' });\n if (this.parent.currentView === 'MonthAgenda') {\n var target = this.parent.activeView.getPanel().querySelector('.' + cls.WRAPPER_CONTAINER_CLASS);\n target.insertBefore(treeWrapper, target.children[0]);\n target.appendChild(this.popupOverlay);\n }\n else {\n this.parent.element.querySelector('.' + cls.TABLE_CONTAINER_CLASS).appendChild(treeWrapper);\n this.parent.element.querySelector('.' + cls.TABLE_CONTAINER_CLASS).appendChild(this.popupOverlay);\n }\n var resourceTree = createElement('div', { className: cls.RESOURCE_TREE });\n treeWrapper.appendChild(resourceTree);\n this.treeViewObj = new TreeView({\n cssClass: this.parent.cssClass,\n enableRtl: this.parent.enableRtl,\n enableHtmlSanitizer: this.parent.enableHtmlSanitizer,\n fields: {\n dataSource: [].slice.call(this.generateTreeData()),\n id: 'resourceId',\n text: 'resourceName',\n child: 'resourceChild'\n },\n nodeTemplate: this.parent.resourceHeaderTemplate,\n nodeClicked: this.resourceClick.bind(this),\n created: this.resourceTreeCreated.bind(this)\n });\n this.treeViewObj.appendTo(resourceTree);\n this.treeViewObj.expandAll();\n this.treePopup = new Popup(treeWrapper, {\n targetType: 'relative',\n actionOnScroll: 'none',\n content: this.treeViewObj.element,\n relateTo: this.parent.element.querySelector('.' + cls.TABLE_CONTAINER_CLASS),\n enableRtl: this.parent.enableRtl,\n hideAnimation: { name: 'SlideLeftOut', duration: 500 },\n showAnimation: { name: 'SlideLeftIn', duration: 500 },\n viewPortElement: this.parent.element.querySelector('.' + (this.parent.currentView === 'MonthAgenda' ?\n cls.WRAPPER_CONTAINER_CLASS : cls.TABLE_CONTAINER_CLASS))\n });\n this.parent.on(events.documentClick, this.documentClick, this);\n };\n ResourceBase.prototype.resourceTreeCreated = function () {\n if (this.parent.activeViewOptions.resourceHeaderTemplate && this.parent.portals && this.treeViewObj.portals) {\n this.parent.portals = this.parent.portals.concat(this.treeViewObj.portals);\n this.parent.renderTemplates();\n }\n };\n ResourceBase.prototype.generateTreeData = function (isTimeLine) {\n var _this = this;\n var treeCollection = [];\n var resTreeColl = [];\n var groupIndex = 0;\n var _loop_1 = function (i, len) {\n var treeHandler = function (treeLevel, index, levelId) {\n var resource = _this.resourceCollection[parseInt(index.toString(), 10)];\n var treeArgs;\n var resObj;\n if (!isTimeLine) {\n treeArgs = {\n resourceId: levelId,\n resourceName: treeLevel.resourceData[resource.textField],\n resource: treeLevel.resource,\n resourceData: treeLevel.resourceData\n };\n }\n else {\n resObj = {\n type: 'resourceHeader', resource: treeLevel.resource,\n resourceData: treeLevel.resourceData, groupIndex: groupIndex,\n groupOrder: treeLevel.groupOrder\n };\n resTreeColl.push(resObj);\n groupIndex++;\n }\n if (treeLevel.child.length > 0 && !isTimeLine) {\n treeArgs.resourceChild = [];\n }\n var count = 1;\n for (var _i = 0, _a = treeLevel.child; _i < _a.length; _i++) {\n var tree = _a[_i];\n if (!isTimeLine) {\n treeArgs.resourceChild.push(treeHandler(tree, index + 1, levelId + '-' + count));\n }\n else {\n treeHandler(tree, index + 1, levelId + '-' + count);\n }\n count += 1;\n }\n if (isTimeLine) {\n extend(resObj.resourceData, { Count: count - 1 });\n }\n return treeArgs;\n };\n if (!isTimeLine) {\n treeCollection.push(treeHandler(this_1.resourceTreeLevel[parseInt(i.toString(), 10)], 0, (i + 1).toString()));\n }\n else {\n treeHandler(this_1.resourceTreeLevel[parseInt(i.toString(), 10)], 0, (i + 1).toString());\n }\n };\n var this_1 = this;\n for (var i = 0, len = this.resourceTreeLevel.length; i < len; i++) {\n _loop_1(i, len);\n }\n if (isTimeLine) {\n this.lastResourceLevel = resTreeColl;\n return resTreeColl;\n }\n else {\n return treeCollection;\n }\n };\n ResourceBase.prototype.renderResourceHeaderText = function () {\n var resource = this.lastResourceLevel[this.parent.uiStateValues.groupIndex];\n var headerCollection = [];\n var _loop_2 = function (i, len) {\n var resourceLevel = this_2.resourceCollection[parseInt(i.toString(), 10)];\n var resourceText = resourceLevel.dataSource.filter(function (resData) {\n return resData[resourceLevel.idField] === resource.groupOrder[parseInt(i.toString(), 10)];\n });\n var resourceName = createElement('div', { className: cls.RESOURCE_NAME });\n this_2.parent.sanitize(resourceText[0][resourceLevel.textField], resourceName);\n headerCollection.push(resourceName);\n var levelIcon = createElement('div', { className: 'e-icons e-icon-next' });\n headerCollection.push(levelIcon);\n };\n var this_2 = this;\n for (var i = 0, len = resource.groupOrder.length; i < len; i++) {\n _loop_2(i, len);\n }\n headerCollection.pop();\n var target = (this.parent.currentView === 'MonthAgenda') ? this.parent.activeView.getPanel() : this.parent.element;\n var headerWrapper = target.querySelector('.' + cls.RESOURCE_LEVEL_TITLE);\n util.removeChildren(headerWrapper);\n for (var _i = 0, headerCollection_1 = headerCollection; _i < headerCollection_1.length; _i++) {\n var header = headerCollection_1[_i];\n headerWrapper.appendChild(header);\n }\n if (this.lastResourceLevel.length === 1) {\n addClass([this.parent.element.querySelector('.' + cls.RESOURCE_MENU)], cls.DISABLE_CLASS);\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n ResourceBase.prototype.menuClick = function (event) {\n if (this.parent.element.querySelector('.' + cls.RESOURCE_TREE_POPUP).classList.contains(cls.POPUP_OPEN)) {\n this.treePopup.hide();\n removeClass([this.popupOverlay], cls.ENABLE_CLASS);\n }\n else {\n var treeNodes = [].slice.call(this.treeViewObj.element.querySelectorAll('.e-list-item:not(.e-has-child)'));\n removeClass(treeNodes, 'e-active');\n addClass([treeNodes[this.parent.uiStateValues.groupIndex]], 'e-active');\n this.treePopup.show();\n addClass([this.popupOverlay], cls.ENABLE_CLASS);\n }\n };\n ResourceBase.prototype.selectResourceByIndex = function (groupIndex) {\n if (this.lastResourceLevel && groupIndex > -1 && groupIndex < this.lastResourceLevel.length) {\n this.triggerEvents(groupIndex);\n }\n };\n ResourceBase.prototype.resourceClick = function (event) {\n if (!event.node.classList.contains('e-has-child')) {\n this.treePopup.hide();\n removeClass([this.popupOverlay], cls.ENABLE_CLASS);\n var treeNodes = [].slice.call(this.treeViewObj.element.querySelectorAll('.e-list-item:not(.e-has-child)'));\n var groupIndex = treeNodes.indexOf(event.node);\n this.triggerEvents(groupIndex, event);\n event.event.preventDefault();\n }\n };\n ResourceBase.prototype.triggerEvents = function (groupIndex, event) {\n var _this = this;\n var args = { cancel: false, event: (event) ? event.event : null, groupIndex: groupIndex, requestType: 'resourceChange' };\n this.parent.trigger(events.actionBegin, args, function (actionArgs) {\n if (!actionArgs.cancel) {\n _this.parent.uiStateValues.groupIndex = actionArgs.groupIndex;\n _this.parent.renderModule.render(_this.parent.currentView);\n args = {\n cancel: false, event: (event) ? event.event : null, groupIndex: _this.parent.uiStateValues.groupIndex, requestType: 'resourceChanged'\n };\n _this.parent.trigger(events.actionComplete, args);\n }\n });\n };\n ResourceBase.prototype.documentClick = function (args) {\n if (closest(args.event.target, '.' + cls.RESOURCE_TREE_POPUP)) {\n return;\n }\n var treeWrapper = this.parent.element.querySelector('.' + cls.RESOURCE_TREE_POPUP);\n if (treeWrapper && treeWrapper.classList.contains(cls.POPUP_OPEN)) {\n this.treePopup.hide();\n removeClass([this.popupOverlay], cls.ENABLE_CLASS);\n }\n };\n ResourceBase.prototype.bindResourcesData = function (isSetModel) {\n var _this = this;\n this.parent.showSpinner();\n var promises = [];\n for (var _i = 0, _a = this.parent.resources; _i < _a.length; _i++) {\n var resource = _a[_i];\n var dataModule = new Data(this.parent, resource.dataSource, resource.query);\n promises.push(dataModule.getData(dataModule.generateQuery()));\n }\n Promise.all(promises).then(function (e) { return _this.dataManagerSuccess(e, isSetModel); })\n .catch(function (e) { return _this.parent.crudModule.dataManagerFailure(e); });\n };\n ResourceBase.prototype.dataManagerSuccess = function (e, isSetModel) {\n if (!this.parent || this.parent && this.parent.isDestroyed) {\n return;\n }\n this.parent.resourceCollection = [];\n for (var i = 0, length_1 = e.length; i < length_1; i++) {\n var resource = this.parent.resources[parseInt(i.toString(), 10)];\n var resourceObj = this.getResourceModel(resource, e[parseInt(i.toString(), 10)].result);\n this.parent.resourceCollection.push(resourceObj);\n }\n this.refreshLayout(isSetModel);\n };\n ResourceBase.prototype.getResourceModel = function (resource, resourceData) {\n var resourceObj = {\n field: resource.field,\n title: resource.title,\n name: resource.name,\n allowMultiple: resource.allowMultiple,\n dataSource: resourceData || resource.dataSource,\n idField: resource.idField,\n textField: resource.textField,\n groupIDField: resource.groupIDField,\n colorField: resource.colorField,\n startHourField: resource.startHourField,\n endHourField: resource.endHourField,\n workDaysField: resource.workDaysField,\n expandedField: resource.expandedField,\n cssClassField: resource.cssClassField\n };\n return resourceObj;\n };\n ResourceBase.prototype.refreshLayout = function (isSetModel) {\n if (isNullOrUndefined(this.parent.uiStateValues.groupIndex) || !(this.parent.enablePersistence)) {\n this.parent.uiStateValues.groupIndex = 0;\n }\n this.parent.renderElements(isSetModel);\n };\n ResourceBase.prototype.setResourceCollection = function () {\n var requiredResources = [];\n this.resourceCollection = [];\n this.colorIndex = null;\n if (this.parent.activeViewOptions.group.resources.length > 0) {\n for (var _i = 0, _a = this.parent.activeViewOptions.group.resources; _i < _a.length; _i++) {\n var resource = _a[_i];\n var index_1 = util.findIndexInData(this.parent.resourceCollection, 'name', resource);\n if (index_1 >= 0) {\n requiredResources.push(this.parent.resourceCollection[parseInt(index_1.toString(), 10)]);\n }\n }\n }\n else if (this.parent.resourceCollection.length > 0) {\n requiredResources = this.parent.resourceCollection;\n }\n var index = 0;\n for (var _b = 0, requiredResources_1 = requiredResources; _b < requiredResources_1.length; _b++) {\n var resource = requiredResources_1[_b];\n var resources = this.getResourceModel(resource);\n if (resource.name === this.parent.eventSettings.resourceColorField) {\n this.colorIndex = index;\n }\n index++;\n this.resourceCollection.push(resources);\n }\n if (isNullOrUndefined(this.colorIndex)) {\n this.colorIndex = this.resourceCollection.length - 1;\n }\n };\n ResourceBase.prototype.generateResourceLevels = function (innerDates, isTimeLine) {\n var _this = this;\n var resources = this.resourceCollection;\n var resTreeGroup = [];\n var lastColumnDates = [];\n var group = function (resources, index, prevResource, prevResourceData, prevOrder) {\n var resTree = [];\n var resource = resources[0];\n if (resource) {\n var data = void 0;\n if (prevResourceData && _this.parent.activeViewOptions.group.byGroupID) {\n var id_1 = prevResourceData[prevResource.idField];\n data = resource.dataSource.filter(function (e) {\n return e[resource.groupIDField] === id_1;\n });\n }\n else {\n data = resource.dataSource;\n }\n for (var i = 0; i < data.length; i++) {\n var groupOrder = [];\n if (prevOrder && prevOrder.length > 0) {\n groupOrder = groupOrder.concat(prevOrder);\n }\n groupOrder.push(data[parseInt(i.toString(), 10)][resource.idField]);\n var items = group(resources.slice(1), index + 1, resource, data[parseInt(i.toString(), 10)], groupOrder);\n // Here validate child item empty top level resource only\n if (index === 0 && items.length === 0 && _this.resourceCollection.length > 1) {\n continue;\n }\n var dateCol = [];\n var renderDates = _this.parent.activeView.renderDates;\n var resWorkDays = void 0;\n if (!_this.parent.activeViewOptions.group.byDate && index + 1 === _this.resourceCollection.length) {\n var workDays = data[parseInt(i.toString(), 10)][resource.workDaysField];\n var resStartHour = data[parseInt(i.toString(), 10)][resource.startHourField];\n var resEndHour = data[parseInt(i.toString(), 10)][resource.endHourField];\n if (workDays && workDays.length > 0) {\n renderDates = _this.parent.activeView.getRenderDates(workDays);\n resWorkDays = workDays;\n dateCol = _this.parent.activeView.getDateSlots(renderDates, workDays);\n }\n else {\n resWorkDays = _this.parent.activeViewOptions.workDays;\n dateCol = innerDates;\n }\n var dateSlots = _this.generateCustomHours(dateCol, resStartHour, resEndHour, groupOrder);\n lastColumnDates = lastColumnDates.concat(dateSlots);\n }\n var resCssClass = data[parseInt(i.toString(), 10)][resource.cssClassField];\n var slotData = {\n type: 'resourceHeader', className: ['e-resource-cells'],\n resourceLevelIndex: index, groupOrder: groupOrder,\n resource: resource, resourceData: data[parseInt(i.toString(), 10)],\n colSpan: _this.parent.activeViewOptions.group.byDate ? 1 : dateCol.length,\n renderDates: renderDates, workDays: resWorkDays, cssClass: resCssClass,\n child: items\n };\n resTree.push(slotData);\n }\n if (!resTreeGroup[parseInt(index.toString(), 10)]) {\n resTreeGroup[parseInt(index.toString(), 10)] = [];\n }\n if (resTree.length > 0) {\n resTreeGroup[parseInt(index.toString(), 10)].push(resTree);\n }\n return resTree;\n }\n return [];\n };\n this.resourceTreeLevel = group(resources, 0);\n return (isTimeLine) ? [] : this.generateHeaderLevels(resTreeGroup, lastColumnDates, innerDates);\n };\n ResourceBase.prototype.generateCustomHours = function (renderDates, startHour, endHour, groupOrder) {\n var dateSlots = extend([], renderDates, null, true);\n for (var _i = 0, dateSlots_1 = dateSlots; _i < dateSlots_1.length; _i++) {\n var dateSlot = dateSlots_1[_i];\n if (startHour) {\n dateSlot.startHour = this.parent.getStartEndTime(startHour);\n }\n if (endHour) {\n dateSlot.endHour = this.parent.getStartEndTime(endHour);\n }\n if (groupOrder) {\n dateSlot.groupOrder = groupOrder;\n }\n }\n return dateSlots;\n };\n ResourceBase.prototype.generateHeaderLevels = function (resTreeGroup, lastColumnDates, headerDates) {\n var headerLevels = [];\n for (var i = resTreeGroup.length - 1; i >= 0; i--) {\n var temp = 0;\n for (var _i = 0, _a = resTreeGroup[parseInt(i.toString(), 10)]; _i < _a.length; _i++) {\n var currentLevelChilds = _a[_i];\n for (var _b = 0, currentLevelChilds_1 = currentLevelChilds; _b < currentLevelChilds_1.length; _b++) {\n var currentLevelChild = currentLevelChilds_1[_b];\n if (resTreeGroup[i + 1] && resTreeGroup[i + 1].length > 0) {\n var nextLevelChilds = resTreeGroup[parseInt((i + 1).toString(), 10)][parseInt(temp.toString(), 10)];\n if (!nextLevelChilds) {\n continue;\n }\n var colSpan = 0;\n for (var _c = 0, nextLevelChilds_1 = nextLevelChilds; _c < nextLevelChilds_1.length; _c++) {\n var nextLevelChild = nextLevelChilds_1[_c];\n if (!this.parent.activeViewOptions.group.byGroupID || (this.parent.activeViewOptions.group.byGroupID &&\n nextLevelChild.resourceData[nextLevelChild.resource.groupIDField] ===\n currentLevelChild.resourceData[currentLevelChild.resource.idField])) {\n colSpan += nextLevelChild.colSpan;\n }\n }\n currentLevelChild.colSpan = colSpan;\n }\n currentLevelChild.groupIndex = temp;\n temp++;\n headerLevels[currentLevelChild.resourceLevelIndex] = headerLevels[currentLevelChild.resourceLevelIndex] || [];\n headerLevels[currentLevelChild.resourceLevelIndex].push(currentLevelChild);\n }\n }\n }\n this.lastResourceLevel = headerLevels.slice(-1)[0] || [];\n if (!this.parent.activeViewOptions.group.byDate) {\n var index = 0;\n for (var _d = 0, _e = this.lastResourceLevel; _d < _e.length; _d++) {\n var lastLevelResource = _e[_d];\n for (var i = 0; i < lastLevelResource.colSpan; i++) {\n lastColumnDates[parseInt(index.toString(), 10)].groupIndex = lastLevelResource.groupIndex;\n index++;\n }\n }\n headerLevels.push(lastColumnDates);\n return headerLevels;\n }\n var dateHeaderLevels = [];\n var levels = extend([], headerLevels, null, true);\n var datesColumn = [];\n if (this.parent.activeViewOptions.group.hideNonWorkingDays) {\n var renderDates_1 = [];\n var dateIndex = 0;\n var _loop_3 = function (headerDate) {\n this_3.resourceDateTree[parseInt(dateIndex.toString(), 10)] = [];\n var currentDateLevels = [];\n var _loop_4 = function (j) {\n var workDays = this_3.lastResourceLevel[parseInt(j.toString(), 10)].resourceData[this_3.lastResourceLevel[parseInt(j.toString(), 10)].resource.workDaysField];\n if (!workDays) {\n workDays = this_3.parent.activeViewOptions.workDays;\n }\n if (workDays.indexOf(headerDate.date.getDay()) !== -1) {\n var resTd_1 = extend({}, this_3.lastResourceLevel[parseInt(j.toString(), 10)], null, true);\n resTd_1.date = headerDate.date;\n this_3.lastResourceLevel[parseInt(j.toString(), 10)].workDays = workDays;\n resTd_1.startHour = this_3.parent.getStartEndTime(resTd_1.resourceData[resTd_1.resource.startHourField]) ||\n headerDate.startHour;\n resTd_1.endHour = this_3.parent.getStartEndTime(resTd_1.resourceData[resTd_1.resource.endHourField]) ||\n headerDate.endHour;\n this_3.resourceDateTree[parseInt(dateIndex.toString(), 10)].push(resTd_1);\n var _loop_5 = function (k) {\n if (!currentDateLevels[parseInt(k.toString(), 10)]) {\n currentDateLevels[parseInt(k.toString(), 10)] = [];\n }\n if (k === resTd_1.groupOrder.length - 1) {\n if (!renderDates_1[parseInt(j.toString(), 10)]) {\n renderDates_1[parseInt(j.toString(), 10)] = [];\n }\n var filterDates = resTd_1.renderDates.filter(function (x) { return x.getDay() === headerDate.date.getDay(); });\n renderDates_1[parseInt(j.toString(), 10)] = renderDates_1[parseInt(j.toString(), 10)].concat(filterDates);\n currentDateLevels[parseInt(k.toString(), 10)].push(resTd_1);\n return \"continue\";\n }\n var currentLevel = levels[parseInt(k.toString(), 10)];\n var filteredResource = currentLevel.filter(function (data) {\n return data.resourceData[data.resource.idField] === resTd_1.groupOrder[parseInt(k.toString(), 10)];\n });\n if (filteredResource && filteredResource.length > 0) {\n var existedResource = currentDateLevels[parseInt(k.toString(), 10)].filter(function (data) {\n return data.resourceData[data.resource.idField] === resTd_1.groupOrder[parseInt(k.toString(), 10)];\n });\n if (existedResource && existedResource.length > 0) {\n existedResource[0].colSpan += 1;\n }\n else {\n var filteredTd = extend({}, filteredResource[0], null, true);\n filteredTd.colSpan = 1;\n currentDateLevels[parseInt(k.toString(), 10)].push(filteredTd);\n }\n }\n };\n for (var k = 0; k < resTd_1.groupOrder.length; k++) {\n _loop_5(k);\n }\n }\n };\n for (var j = 0; j < this_3.lastResourceLevel.length; j++) {\n _loop_4(j);\n }\n if (currentDateLevels.length > 0) {\n for (var l = 0; l < levels.length; l++) {\n if (!dateHeaderLevels[parseInt(l.toString(), 10)]) {\n dateHeaderLevels[parseInt(l.toString(), 10)] = [];\n }\n dateHeaderLevels[parseInt(l.toString(), 10)] = dateHeaderLevels[parseInt(l.toString(), 10)].concat(currentDateLevels[parseInt(l.toString(), 10)]);\n }\n headerDate.colSpan = currentDateLevels[currentDateLevels.length - 1].length;\n datesColumn.push(headerDate);\n }\n dateIndex++;\n };\n var this_3 = this;\n for (var _f = 0, headerDates_1 = headerDates; _f < headerDates_1.length; _f++) {\n var headerDate = headerDates_1[_f];\n _loop_3(headerDate);\n }\n this.resourceDateTree = this.resourceDateTree.filter(function (data) { return data.length > 0; });\n this.lastResourceLevel.forEach(function (x, index) {\n if (renderDates_1[parseInt(index.toString(), 10)]) {\n x.renderDates = renderDates_1[parseInt(index.toString(), 10)].sort(function (a, b) { return a.getTime() - b.getTime(); });\n }\n });\n dateHeaderLevels.unshift(datesColumn);\n return dateHeaderLevels;\n }\n var dateColSpan = 0;\n for (var _g = 0, _h = levels[0]; _g < _h.length; _g++) {\n var firstRowTd = _h[_g];\n dateColSpan += firstRowTd.colSpan;\n }\n for (var _j = 0, headerDates_2 = headerDates; _j < headerDates_2.length; _j++) {\n var headerDate = headerDates_2[_j];\n headerDate.colSpan = dateColSpan;\n datesColumn.push(headerDate);\n var resGroup = extend([], levels, null, true);\n for (var k = 0, length_2 = resGroup.length; k < length_2; k++) {\n if (k === resGroup.length - 1) {\n for (var _k = 0, _l = resGroup[parseInt(k.toString(), 10)]; _k < _l.length; _k++) {\n var resTd = _l[_k];\n resTd.date = headerDate.date;\n resTd.workDays = headerDate.workDays;\n resTd.startHour = this.parent.getStartEndTime(resTd.resourceData[resTd.resource.startHourField]) ||\n headerDate.startHour;\n resTd.endHour = this.parent.getStartEndTime(resTd.resourceData[resTd.resource.endHourField]) ||\n headerDate.endHour;\n }\n }\n if (!dateHeaderLevels[parseInt(k.toString(), 10)]) {\n dateHeaderLevels[parseInt(k.toString(), 10)] = [];\n }\n dateHeaderLevels[parseInt(k.toString(), 10)] = dateHeaderLevels[parseInt(k.toString(), 10)].concat(resGroup[parseInt(k.toString(), 10)]);\n }\n }\n dateHeaderLevels.unshift(datesColumn);\n return dateHeaderLevels;\n };\n ResourceBase.prototype.setResourceValues = function (eventObj, groupIndex) {\n var _this = this;\n var setValues = function (index, field, value) {\n if (_this.resourceCollection[parseInt(index.toString(), 10)].allowMultiple && _this.parent.activeViewOptions.group.allowGroupEdit) {\n eventObj[\"\" + field] = [value];\n }\n else {\n eventObj[\"\" + field] = value;\n }\n };\n if (groupIndex === void 0) {\n groupIndex = this.parent.uiStateValues.isGroupAdaptive ? this.parent.uiStateValues.groupIndex :\n this.parent.activeCellsData.groupIndex;\n }\n if (this.parent.activeViewOptions.group.resources.length > 0 && !isNullOrUndefined(groupIndex)) {\n var groupOrder = this.lastResourceLevel[parseInt(groupIndex.toString(), 10)].groupOrder;\n for (var index = 0; index < this.resourceCollection.length; index++) {\n setValues(index, this.resourceCollection[parseInt(index.toString(), 10)].field, groupOrder[parseInt(index.toString(), 10)]);\n }\n }\n else if (this.parent.resourceCollection.length > 0) {\n for (var index = 0; index < this.resourceCollection.length; index++) {\n var data = this.resourceCollection[parseInt(index.toString(), 10)].dataSource[0];\n if (data) {\n setValues(index, this.resourceCollection[parseInt(index.toString(), 10)].field, data[this.resourceCollection[parseInt(index.toString(), 10)].idField]);\n }\n }\n }\n };\n ResourceBase.prototype.getResourceColor = function (eventObj, groupOrder) {\n var colorFieldIndex = (!isNullOrUndefined(groupOrder) &&\n this.colorIndex > groupOrder.length - 1) ? groupOrder.length - 1 : this.colorIndex;\n var resource = this.resourceCollection[parseInt(colorFieldIndex.toString(), 10)];\n if (isNullOrUndefined(groupOrder) && this.parent.activeViewOptions.group.allowGroupEdit && resource.allowMultiple) {\n return undefined;\n }\n var id = isNullOrUndefined(groupOrder) ? eventObj[resource.field] : groupOrder[parseInt(colorFieldIndex.toString(), 10)];\n var data = this.filterData(resource.dataSource, resource.idField, id);\n if (data.length > 0) {\n return data[0][resource.colorField];\n }\n return undefined;\n };\n ResourceBase.prototype.getCssClass = function (eventObj) {\n var resource = this.resourceCollection.slice(-1)[0];\n if (this.parent.activeViewOptions.group.allowGroupEdit && resource.allowMultiple) {\n return undefined;\n }\n var data = this.filterData(resource.dataSource, resource.idField, eventObj[resource.field]);\n if (data.length > 0) {\n return data[0][resource.cssClassField];\n }\n return undefined;\n };\n ResourceBase.prototype.getResourceRenderDates = function () {\n // eslint-disable-next-line prefer-spread\n var resourceDates = [].concat.apply([], this.lastResourceLevel.map(function (e) { return e.renderDates; }));\n var removeDuplicateDates = function (dateColl) { return dateColl.filter(function (date, index, dates) {\n return dates.map(function (dateObj) { return dateObj.getTime(); }).indexOf(date.getTime()) === index;\n }); };\n var renderDates = removeDuplicateDates(resourceDates);\n renderDates.sort(function (a, b) { return a.getTime() - b.getTime(); });\n return renderDates;\n };\n ResourceBase.prototype.filterData = function (dataSource, field, value) {\n return dataSource.filter(function (data) { return data[\"\" + field] === value; });\n };\n ResourceBase.prototype.getResourceData = function (eventObj, index, groupEditIndex) {\n if (this.parent.activeViewOptions.group.allowGroupEdit) {\n var resourceObj = {};\n for (var _i = 0, groupEditIndex_1 = groupEditIndex; _i < groupEditIndex_1.length; _i++) {\n var groupIndex = groupEditIndex_1[_i];\n var resourceLevel = this.lastResourceLevel[parseInt(groupIndex.toString(), 10)].groupOrder;\n for (var level = 0, length_3 = resourceLevel.length; level < length_3; level++) {\n var fieldName = this.resourceCollection[parseInt(level.toString(), 10)].field;\n if (isNullOrUndefined(resourceObj[\"\" + fieldName])) {\n resourceObj[\"\" + fieldName] = [];\n }\n resourceObj[\"\" + fieldName].push(resourceLevel[parseInt(level.toString(), 10)]);\n }\n }\n eventObj = extend(eventObj, resourceObj);\n }\n else {\n for (var level = 0, length_4 = this.resourceCollection.length; level < length_4; level++) {\n if (this.lastResourceLevel[parseInt(index.toString(), 10)]) {\n eventObj[this.resourceCollection[parseInt(level.toString(), 10)].field] = this.lastResourceLevel[parseInt(index.toString(), 10)].groupOrder[parseInt(level.toString(), 10)];\n }\n }\n }\n };\n ResourceBase.prototype.addResource = function (resources, name, index) {\n var resourceCollection = (resources instanceof Array) ? resources : [resources];\n var _loop_6 = function (resource) {\n if (resource.name === name) {\n resourceCollection.forEach(function (addObj, i) {\n return new DataManager({ json: resource.dataSource }).insert(addObj, null, null, index + i);\n });\n return \"break\";\n }\n };\n for (var _i = 0, _a = this.parent.resourceCollection; _i < _a.length; _i++) {\n var resource = _a[_i];\n var state_1 = _loop_6(resource);\n if (state_1 === \"break\")\n break;\n }\n this.refreshLayout(true);\n };\n ResourceBase.prototype.removeResource = function (resourceId, name) {\n var resourceCollection = (resourceId instanceof Array) ? resourceId : [resourceId];\n var _loop_7 = function (resource) {\n if (resource.name === name) {\n resourceCollection.forEach(function (removeObj) {\n return new DataManager({ json: resource.dataSource }).remove(resource.idField, removeObj);\n });\n return \"break\";\n }\n };\n for (var _i = 0, _a = this.parent.resourceCollection; _i < _a.length; _i++) {\n var resource = _a[_i];\n var state_2 = _loop_7(resource);\n if (state_2 === \"break\")\n break;\n }\n this.refreshLayout(true);\n };\n ResourceBase.prototype.getIndexFromResourceId = function (id, name, resourceData, event, parentField) {\n name = name || this.parent.resourceCollection.slice(-1)[0].name;\n if (isNullOrUndefined(resourceData)) {\n resourceData = this.resourceCollection.filter(function (e) { return e.name === name; })[0];\n if (isNullOrUndefined(resourceData)) {\n return null;\n }\n }\n var resource = resourceData.dataSource.filter(function (e) {\n if (event && e[resourceData.idField] === id) {\n if (e[resourceData.groupIDField] === event[\"\" + parentField]) {\n return e[resourceData.idField] === id;\n }\n return null;\n }\n else {\n return e[resourceData.idField] === id;\n }\n })[0];\n return (this.lastResourceLevel.map(function (e) { return e.resourceData; }).indexOf(resource));\n };\n ResourceBase.prototype.resourceExpand = function (id, name, hide) {\n var resource = this.parent.resourceCollection.filter(function (e) {\n if (e.name === name) {\n return e;\n }\n return null;\n })[0];\n var index = 0;\n var resourceData = resource.dataSource.filter(function (e) { return e[resource.idField] === id; })[0];\n if (!this.parent.activeViewOptions.group.byGroupID) {\n index = this.getIndexFromResourceId(id, name, resource);\n }\n else {\n index = this.lastResourceLevel.map(function (e) { return e.resourceData; }).indexOf(resourceData);\n }\n var target = this.parent.element.querySelector('.' + cls.RESOURCE_COLUMN_WRAP_CLASS + ' ' + (\"[data-group-index=\\\"\" + index + \"\\\"]\") +\n ' ' + '.' + cls.RESOURCE_TREE_ICON_CLASS);\n if (target) {\n if (target.classList.contains(cls.RESOURCE_EXPAND_CLASS) && !hide) {\n target.click();\n }\n else if (target.classList.contains(cls.RESOURCE_COLLAPSE_CLASS) && hide) {\n target.click();\n }\n }\n };\n ResourceBase.prototype.resourceScroll = function (id, name) {\n if (this.parent.isAdaptive || ['Agenda', 'MonthAgenda'].indexOf(this.parent.currentView) > -1) {\n return;\n }\n var levelName = name || this.parent.resourceCollection.slice(-1)[0].name;\n var levelIndex = this.parent.resourceCollection.length - 1;\n var resource = this.parent.resourceCollection.filter(function (e, index) {\n if (e.name === levelName) {\n levelIndex = index;\n return e;\n }\n return null;\n })[0];\n var scrollElement = this.parent.element.querySelector('.' + cls.CONTENT_WRAP_CLASS);\n var index = 0;\n if (this.parent.activeView.isTimelineView()) {\n if (!this.parent.activeViewOptions.group.byGroupID) {\n index = this.getIndexFromResourceId(id, levelName, resource);\n }\n else {\n var resourceData = resource.dataSource.filter(function (e) {\n return e[resource.idField] === id;\n })[0];\n index = this.lastResourceLevel.map(function (e) { return e.resourceData; }).indexOf(resourceData);\n }\n if (this.parent.virtualScrollModule) {\n var virtual = this.parent.element.querySelector('.' + cls.VIRTUAL_TRACK_CLASS);\n var averageRowHeight = Math.round(virtual.offsetHeight / this.expandedResources.length);\n if (this.parent.rowAutoHeight) {\n scrollElement.scrollTop = 0;\n this.parent.virtualScrollModule.virtualScrolling();\n }\n scrollElement.scrollTop = (index * averageRowHeight) - (((this.parent.virtualScrollModule.bufferCount - 1) * averageRowHeight));\n this.parent.virtualScrollModule.virtualScrolling();\n if (this.parent.rowAutoHeight) {\n var td = this.parent.element.querySelector(\".\" + cls.WORK_CELLS_CLASS + \"[data-group-index=\\\"\" + index + \"\\\"]\");\n if (td && !td.parentElement.classList.contains(cls.HIDDEN_CLASS)) {\n scrollElement.scrollTop =\n (scrollElement.scrollTop < td.offsetTop) ? td.offsetTop : scrollElement.scrollTop + td.offsetTop;\n }\n }\n else {\n scrollElement.scrollTop = (index * averageRowHeight);\n }\n }\n else {\n var td = this.parent.element.querySelector(\".\" + cls.WORK_CELLS_CLASS + \"[data-group-index=\\\"\" + index + \"\\\"]\");\n if (td && !td.parentElement.classList.contains(cls.HIDDEN_CLASS)) {\n scrollElement.scrollTop = td.offsetTop;\n }\n }\n }\n else {\n if (!this.parent.activeViewOptions.group.byGroupID) {\n index = this.getIndexFromResourceId(id, levelName, resource);\n }\n else {\n if (levelName === this.parent.resourceCollection.slice(-1)[0].name) {\n index = this.lastResourceLevel.map(function (e) { return e.resourceData[resource.idField]; }).indexOf(id);\n }\n else {\n index = resource.dataSource.map(function (e) { return e[resource.idField]; }).indexOf(id);\n }\n }\n var offsetTarget = this.parent.element.querySelector(\".\" + cls.HEADER_ROW_CLASS + \":nth-child(\" + (levelIndex + 1) + \")\");\n var offset = [].slice.call(offsetTarget.children).map(function (node) { return node.offsetLeft; });\n scrollElement.scrollLeft = offset[parseInt(index.toString(), 10)];\n }\n };\n ResourceBase.prototype.destroy = function () {\n this.parent.off(events.documentClick, this.documentClick);\n if (this.treeViewObj) {\n if (this.treeViewObj.portals && this.treeViewObj.portals.length > 0) {\n var treeViewTemplates = this.treeViewObj.portals.map(function (x) { return x.propName; });\n if (treeViewTemplates.length > 0) {\n this.parent.resetTemplates(treeViewTemplates);\n }\n }\n this.treeViewObj.destroy();\n this.treeViewObj = null;\n }\n if (this.treePopup) {\n this.treePopup.destroy();\n this.treePopup = null;\n remove(this.parent.element.querySelector('.' + cls.RESOURCE_TREE_POPUP));\n remove(this.parent.element.querySelector('.' + cls.RESOURCE_TREE_POPUP_OVERLAY));\n }\n var resToolBarEle = this.parent.element.querySelector('.' + cls.RESOURCE_TOOLBAR_CONTAINER);\n if (resToolBarEle) {\n remove(resToolBarEle);\n }\n };\n return ResourceBase;\n}());\nexport { ResourceBase };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, Property, Event, Animation, Collection, append } from '@syncfusion/ej2-base';\nimport { EventHandler, Browser, Internationalization, getDefaultDateObject, cldrData, L10n } from '@syncfusion/ej2-base';\nimport { getValue, compile, extend, isNullOrUndefined, NotifyPropertyChanges, Complex } from '@syncfusion/ej2-base';\nimport { getElement, removeClass, addClass, classList, remove, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\nimport { createSpinner, hideSpinner, showSpinner } from '@syncfusion/ej2-popups';\nimport { HeaderRenderer } from '../renderer/header-renderer';\nimport { Scroll } from '../actions/scroll';\nimport { ScheduleTouch } from '../actions/touch';\nimport { KeyboardInteraction } from '../actions/keyboard';\nimport { Data } from '../actions/data';\nimport { EventBase } from '../event-renderer/event-base';\nimport { InlineEdit } from '../event-renderer/inline-edit';\nimport { QuickPopups } from '../popups/quick-popups';\nimport { EventTooltip } from '../popups/event-tooltip';\nimport { EventWindow } from '../popups/event-window';\nimport { Render } from '../renderer/renderer';\nimport { WorkHours } from '../models/work-hours';\nimport { TimeScale } from '../models/time-scale';\nimport { QuickInfoTemplates } from '../models/quick-info-templates';\nimport { HeaderRows } from '../models/header-rows';\nimport { Crud } from '../actions/crud';\nimport { WorkCellInteraction } from '../actions/work-cells';\nimport { EventSettings } from '../models/event-settings';\nimport { Group } from '../models/group';\nimport { Resources } from '../models/resources';\nimport { Gregorian, Islamic } from '../../common/calendar-util';\nimport { ResourceBase } from '../base/resource';\nimport { Timezone, timezoneData } from '../timezone/timezone';\nimport * as events from '../base/constant';\nimport * as cls from '../base/css-constant';\nimport * as util from '../base/util';\n/**\n * Represents the Schedule component that displays a list of events scheduled against specific date and timings,\n * thus helping us to plan and manage it properly.\n * ```html\n *
      \n * ```\n * ```typescript\n * \n * ```\n */\nvar Schedule = /** @class */ (function (_super) {\n __extends(Schedule, _super);\n /**\n * Constructor for creating the Schedule widget\n *\n * @param {ScheduleModel} options Accepts the schedule model properties to initiate the rendering\n * @param {string | HTMLElement} element Accepts the DOM element reference\n */\n function Schedule(options, element) {\n return _super.call(this, options, element) || this;\n }\n /**\n * Core method that initializes the control rendering.\n *\n * @returns {void}\n * @private\n */\n Schedule.prototype.render = function () {\n var addClasses = [];\n var removeClasses = [];\n addClasses.push(cls.ROOT);\n if (this.enableRtl) {\n addClasses.push(cls.RTL);\n }\n else {\n removeClasses.push(cls.RTL);\n }\n if (this.isAdaptive) {\n addClasses.push(cls.DEVICE_CLASS);\n }\n else {\n removeClasses.push(cls.DEVICE_CLASS);\n }\n if (this.allowMultiDrag) {\n addClasses.push(cls.MULTI_DRAG);\n }\n else {\n removeClasses.push(cls.MULTI_DRAG);\n }\n if (this.cssClass) {\n var cssClass = this.cssClass.split(' ');\n for (var _i = 0, cssClass_1 = cssClass; _i < cssClass_1.length; _i++) {\n var cls_1 = cssClass_1[_i];\n addClasses.push(cls_1);\n }\n }\n classList(this.element, addClasses, removeClasses);\n this.validateDate();\n createSpinner({ target: this.element });\n this.scrollModule = new Scroll(this);\n this.scrollModule.setWidth();\n this.scrollModule.setHeight();\n this.renderModule = new Render(this);\n this.eventBase = new EventBase(this);\n this.workCellAction = new WorkCellInteraction(this);\n if (this.allowKeyboardInteraction) {\n this.keyboardInteractionModule = new KeyboardInteraction(this);\n }\n this.inlineModule = new InlineEdit(this);\n this.initializeDataModule();\n this.renderTableContainer();\n this.activeViewOptions = this.getActiveViewOptions();\n this.initializeResources();\n this.wireEvents();\n };\n Schedule.prototype.renderTableContainer = function () {\n if (!this.element.querySelector('.' + cls.TABLE_CONTAINER_CLASS)) {\n this.element.appendChild(this.createElement('div', { className: cls.TABLE_CONTAINER_CLASS }));\n }\n };\n /**\n * Method to render react templates\n *\n * @param {Function} callback - Specifies the callBack method\n * @returns {void}\n * @private\n */\n Schedule.prototype.renderTemplates = function (callback) {\n if (this.isReact) {\n this.renderReactTemplates(callback);\n }\n else if (callback) {\n callback();\n }\n };\n /**\n * Method to reset react templates\n *\n * @param {string[]} templates Accepts the template ID\n * @returns {void}\n * @private\n */\n Schedule.prototype.resetTemplates = function (templates) {\n if (this.isAngular || this.isReact) {\n this.clearTemplate(templates);\n }\n };\n /**\n * This method renders untrusted strings and scripts securely by sanitizing them first.\n *\n * @param {string} value - A string value representing the HTML string value to be sanitized.\n * @param {HTMLElement} element - An HTML element to which the sanitized or unsanitized HTML string will be assigned.\n * @returns {void}\n * @private\n */\n Schedule.prototype.sanitize = function (value, element) {\n if (this.enableHtmlSanitizer) {\n element.innerText = SanitizeHtmlHelper.sanitize(value);\n }\n else {\n element.innerHTML = value;\n }\n };\n Schedule.prototype.initializeResources = function (isSetModel) {\n if (isSetModel === void 0) { isSetModel = false; }\n if (this.resources.length > 0) {\n this.resourceBase = new ResourceBase(this);\n this.resourceBase.bindResourcesData(isSetModel);\n }\n else {\n this.resourceBase = null;\n this.resourceCollection = [];\n this.renderElements(isSetModel);\n }\n };\n /**\n * Method to render the layout elements\n *\n * @param {boolean} isLayoutOnly Accepts the boolean value to render layout or not\n * @returns {void}\n * @private\n */\n Schedule.prototype.renderElements = function (isLayoutOnly) {\n if (isLayoutOnly) {\n this.initializeView(this.currentView);\n this.eventWindow.refresh();\n return;\n }\n this.destroyHeaderModule();\n if (this.showHeaderBar) {\n this.headerModule = new HeaderRenderer(this);\n }\n this.renderTableContainer();\n if (Browser.isDevice || Browser.isTouch) {\n this.scheduleTouchModule = new ScheduleTouch(this);\n }\n this.initializeView(this.currentView);\n this.destroyPopups();\n if (!this.isPrinting) {\n this.initializePopups();\n }\n };\n Schedule.prototype.validateDate = function (selectedDate) {\n if (selectedDate === void 0) { selectedDate = this.selectedDate; }\n // persist the selected date value\n var date = selectedDate instanceof Date ? new Date(selectedDate.getTime()) : new Date(selectedDate);\n var minDate = this.minDate instanceof Date ? new Date(this.minDate.getTime()) : new Date(this.minDate);\n var maxDate = this.maxDate instanceof Date ? new Date(this.maxDate.getTime()) : new Date(this.maxDate);\n if (minDate <= maxDate) {\n if (date < minDate) {\n date = minDate;\n }\n if (date > maxDate) {\n date = maxDate;\n }\n this.setProperties({ selectedDate: new Date('' + date), minDate: new Date('' + minDate), maxDate: new Date('' + maxDate) }, true);\n if (this.eventWindow) {\n this.eventWindow.updateMinMaxDateToEditor();\n }\n }\n else {\n throw Error('minDate should be equal or less than maxDate');\n }\n };\n Schedule.prototype.getViewIndex = function (viewName) {\n for (var item = 0; item < this.viewCollections.length; item++) {\n var checkIndex = this.viewCollections[parseInt(item.toString(), 10)].option;\n if (checkIndex === viewName) {\n return item;\n }\n }\n return -1;\n };\n Schedule.prototype.setViewOptions = function (isModuleLoad) {\n if (isModuleLoad === void 0) { isModuleLoad = false; }\n this.viewOptions = {};\n this.viewCollections = [];\n var viewName;\n var selectedView;\n var prevIndex = this.viewIndex;\n var count = 0;\n this.viewIndex = -1;\n for (var _i = 0, _a = this.views; _i < _a.length; _i++) {\n var view = _a[_i];\n var isOptions = (typeof view === 'string') ? false : true;\n if (typeof view === 'string') {\n viewName = view;\n if (this.currentView === viewName) {\n selectedView = viewName;\n this.viewIndex = count;\n }\n }\n else {\n viewName = view.option;\n if (view.isSelected) {\n selectedView = viewName;\n this.viewIndex = count;\n }\n }\n var obj = extend({ option: viewName }, isOptions ? view : {});\n var fieldViewName = viewName.charAt(0).toLowerCase() + viewName.slice(1);\n obj.cellHeaderTemplateName = obj.cellHeaderTemplate ? obj.option : '';\n obj.dateHeaderTemplateName = obj.dateHeaderTemplate ? obj.option : '';\n obj.dateRangeTemplateName = obj.dateRangeTemplate ? obj.option : '';\n obj.cellTemplateName = obj.cellTemplate ? obj.option : '';\n obj.dayHeaderTemplateName = obj.dayHeaderTemplate ? obj.option : '';\n obj.monthHeaderTemplateName = obj.monthHeaderTemplate ? obj.option : '';\n obj.resourceHeaderTemplateName = obj.resourceHeaderTemplate ? obj.option : '';\n obj.headerIndentTemplateName = obj.headerIndentTemplate ? obj.option : '';\n obj.eventTemplateName = obj.eventTemplate ? obj.option : '';\n if (!isNullOrUndefined(obj.firstDayOfWeek) && obj.firstDayOfWeek === 0) {\n delete obj.firstDayOfWeek;\n }\n if (!isNullOrUndefined(obj.interval) && obj.interval === 1) {\n delete obj.interval;\n }\n this.viewCollections.push(obj);\n if (isNullOrUndefined(this.viewOptions[\"\" + fieldViewName])) {\n this.viewOptions[\"\" + fieldViewName] = [obj];\n }\n else {\n this.viewOptions[\"\" + fieldViewName].push(obj);\n }\n count++;\n }\n if (!isModuleLoad && selectedView) {\n this.setProperties({ currentView: selectedView }, true);\n }\n if (this.viewIndex === -1) {\n var currentIndex = this.getViewIndex(this.currentView);\n this.viewIndex = ((typeof this.views[0] !== 'string') && (!isNullOrUndefined(prevIndex) && prevIndex !== -1)) ? prevIndex :\n (currentIndex === -1) ? 0 : currentIndex;\n }\n };\n Schedule.prototype.getActiveViewOptions = function () {\n var timeScale = {\n enable: this.timeScale.enable,\n interval: this.timeScale.interval,\n slotCount: this.timeScale.slotCount,\n majorSlotTemplate: this.timeScale.majorSlotTemplate,\n minorSlotTemplate: this.timeScale.minorSlotTemplate\n };\n var isYearView = this.viewCollections[this.viewIndex].option.indexOf('Year') > -1;\n var group = {\n byDate: isYearView ? false : this.group.byDate,\n byGroupID: this.group.byGroupID,\n allowGroupEdit: this.group.allowGroupEdit,\n resources: this.group.resources,\n headerTooltipTemplate: this.group.headerTooltipTemplate,\n enableCompactView: this.group.enableCompactView,\n hideNonWorkingDays: ['Day', 'Week', 'WorkWeek', 'Month'].indexOf(this.currentView) > -1 ? this.group.hideNonWorkingDays : false\n };\n var workDays = this.viewCollections[this.viewIndex].workDays ? [] : this.workDays;\n var scheduleOptions = {\n dateFormat: this.dateFormat,\n endHour: this.endHour,\n isSelected: false,\n option: null,\n readonly: this.readonly,\n startHour: this.startHour,\n allowVirtualScrolling: false,\n cellHeaderTemplate: this.cellHeaderTemplate,\n dayHeaderTemplate: this.dayHeaderTemplate,\n monthHeaderTemplate: this.monthHeaderTemplate,\n cellTemplate: this.cellTemplate,\n eventTemplate: this.eventSettings.template,\n dateHeaderTemplate: this.dateHeaderTemplate,\n dateRangeTemplate: this.dateRangeTemplate,\n resourceHeaderTemplate: this.resourceHeaderTemplate,\n headerIndentTemplate: this.headerIndentTemplate,\n firstMonthOfYear: this.firstMonthOfYear,\n firstDayOfWeek: this.firstDayOfWeek,\n workDays: workDays,\n monthsCount: this.monthsCount,\n showWeekend: this.showWeekend,\n showWeekNumber: this.showWeekNumber,\n displayName: null,\n interval: 1,\n timeScale: timeScale,\n timeFormat: this.internalTimeFormat,\n group: group,\n headerRows: this.headerRows,\n orientation: 'Horizontal',\n numberOfWeeks: 0,\n displayDate: null\n };\n var viewOptions = this.viewCollections[this.viewIndex];\n var viewsData = extend(scheduleOptions, viewOptions, undefined, true);\n if (this.firstDayOfWeek !== 0 && viewOptions.firstDayOfWeek && this.firstDayOfWeek !== viewOptions.firstDayOfWeek) {\n viewsData.firstDayOfWeek = this.firstDayOfWeek;\n }\n if (viewsData.displayDate) {\n viewsData.displayDate = viewsData.displayDate instanceof Date ? new Date(viewsData.displayDate.getTime()) :\n new Date(viewsData.displayDate);\n }\n return viewsData;\n };\n Schedule.prototype.initializeDataModule = function () {\n this.eventFields = {\n id: this.eventSettings.fields.id,\n isBlock: this.eventSettings.fields.isBlock,\n subject: this.eventSettings.fields.subject.name,\n startTime: this.eventSettings.fields.startTime.name,\n endTime: this.eventSettings.fields.endTime.name,\n startTimezone: this.eventSettings.fields.startTimezone.name,\n endTimezone: this.eventSettings.fields.endTimezone.name,\n location: this.eventSettings.fields.location.name,\n description: this.eventSettings.fields.description.name,\n isAllDay: this.eventSettings.fields.isAllDay.name,\n recurrenceID: this.eventSettings.fields.recurrenceID.name,\n recurrenceRule: this.eventSettings.fields.recurrenceRule.name,\n recurrenceException: this.eventSettings.fields.recurrenceException.name,\n isReadonly: this.eventSettings.fields.isReadonly,\n followingID: this.eventSettings.fields.followingID\n };\n this.setEditorTitles();\n this.dataModule = new Data(this, this.eventSettings.dataSource, this.eventSettings.query);\n this.crudModule = new Crud(this);\n };\n Schedule.prototype.setEditorTitles = function () {\n this.editorTitles = {\n subject: this.eventSettings.fields.subject.title || this.localeObj.getConstant('title'),\n startTime: this.eventSettings.fields.startTime.title || this.localeObj.getConstant('start'),\n endTime: this.eventSettings.fields.endTime.title || this.localeObj.getConstant('end'),\n isAllDay: this.eventSettings.fields.isAllDay.title || this.localeObj.getConstant('allDay'),\n startTimezone: this.eventSettings.fields.startTimezone.title || this.localeObj.getConstant('startTimezone'),\n endTimezone: this.eventSettings.fields.endTimezone.title || this.localeObj.getConstant('endTimezone'),\n location: this.eventSettings.fields.location.title || this.localeObj.getConstant('location'),\n description: this.eventSettings.fields.description.title || this.localeObj.getConstant('description'),\n recurrenceRule: this.eventSettings.fields.recurrenceRule.title || this.localeObj.getConstant('repeat')\n };\n };\n Schedule.prototype.initializeView = function (viewName) {\n this.showSpinner();\n this.activeViewOptions = this.getActiveViewOptions();\n if (this.resourceBase) {\n this.resourceBase.setResourceCollection();\n }\n this.initializeTemplates();\n this.renderModule.render(viewName);\n };\n Schedule.prototype.initializeTemplates = function () {\n this.cellHeaderTemplateFn = this.templateParser(this.activeViewOptions.cellHeaderTemplate);\n this.dayHeaderTemplateFn = this.templateParser(this.activeViewOptions.dayHeaderTemplate);\n this.monthHeaderTemplateFn = this.templateParser(this.activeViewOptions.monthHeaderTemplate);\n this.cellTemplateFn = this.templateParser(this.activeViewOptions.cellTemplate);\n this.dateHeaderTemplateFn = this.templateParser(this.activeViewOptions.dateHeaderTemplate);\n this.dateRangeTemplateFn = this.templateParser(this.activeViewOptions.dateRangeTemplate);\n this.majorSlotTemplateFn = this.templateParser(this.activeViewOptions.timeScale.majorSlotTemplate);\n this.minorSlotTemplateFn = this.templateParser(this.activeViewOptions.timeScale.minorSlotTemplate);\n this.appointmentTemplateFn = this.templateParser(this.activeViewOptions.eventTemplate);\n this.resourceHeaderTemplateFn = this.templateParser(this.activeViewOptions.resourceHeaderTemplate);\n this.headerIndentTemplateFn = this.templateParser(this.activeViewOptions.headerIndentTemplate);\n this.headerTooltipTemplateFn = this.templateParser(this.activeViewOptions.group.headerTooltipTemplate);\n this.eventTooltipTemplateFn = this.templateParser(this.eventSettings.tooltipTemplate);\n this.editorTemplateFn = this.templateParser(this.editorTemplate);\n this.quickInfoTemplatesHeaderFn = this.templateParser(this.quickInfoTemplates.header);\n this.quickInfoTemplatesContentFn = this.templateParser(this.quickInfoTemplates.content);\n this.quickInfoTemplatesFooterFn = this.templateParser(this.quickInfoTemplates.footer);\n };\n Schedule.prototype.initializePopups = function () {\n this.eventWindow = new EventWindow(this);\n this.quickPopup = new QuickPopups(this);\n };\n /**\n * Method to get day names\n *\n * @param {string} type Accepts the day name\n * @returns {string[]} Returns the collection of day names\n * @private\n */\n Schedule.prototype.getDayNames = function (type) {\n var culShortNames = [];\n var cldrObj;\n var nameSpace = '';\n if (this.locale === 'en' || this.locale === 'en-US') {\n nameSpace = 'days.stand-alone.';\n cldrObj = (getValue(nameSpace + type, getDefaultDateObject(this.getCalendarMode())));\n }\n else {\n nameSpace = 'main.' + '' + this.locale + '.dates.calendars.' + this.getCalendarMode() + '.days.format.' + type;\n cldrObj = (getValue(nameSpace, cldrData));\n }\n for (var _i = 0, _a = Object.keys(cldrObj); _i < _a.length; _i++) {\n var obj = _a[_i];\n culShortNames.push(getValue(obj, cldrObj));\n }\n return culShortNames;\n };\n Schedule.prototype.setCldrTimeFormat = function () {\n if (!isNullOrUndefined(this.timeFormat)) {\n this.internalTimeFormat = this.timeFormat;\n return;\n }\n if (this.locale === 'en' || this.locale === 'en-US') {\n this.internalTimeFormat = (getValue('timeFormats.short', getDefaultDateObject(this.getCalendarMode())));\n }\n else {\n this.internalTimeFormat = (getValue('main.' + '' + this.locale + '.dates.calendars.' + this.getCalendarMode() + '.timeFormats.short', cldrData));\n }\n };\n /**\n * Method to get calendar mode\n *\n * @returns {string} Returns the calendar mode\n * @private\n */\n Schedule.prototype.getCalendarMode = function () {\n return this.calendarMode.toLowerCase();\n };\n /**\n * Method to get time in string\n *\n * @param {Date} date Accepts the date object\n * @returns {string} Returns the time in string\n * @private\n */\n Schedule.prototype.getTimeString = function (date) {\n var time = this.globalize.formatDate(date, {\n format: this.activeViewOptions.timeFormat,\n type: 'time', calendar: this.getCalendarMode()\n });\n return time.toLocaleUpperCase();\n };\n /**\n * Method to get date object\n *\n * @param {Date} date Accepts the date object\n * @returns {Date} Returns the date object\n * @private\n */\n Schedule.prototype.getDateTime = function (date) {\n return date instanceof Date ? new Date(date.getTime()) : new Date(date);\n };\n Schedule.prototype.setCalendarMode = function () {\n if (this.calendarMode === 'Islamic') {\n this.calendarUtil = new Islamic();\n }\n else {\n this.calendarUtil = new Gregorian();\n }\n };\n /**\n * Method to change the current view\n *\n * @param {View} view Accepts the view name\n * @param {Event} event Accepts the event object\n * @param {boolean} muteOnChange Accepts the value to enable or disable mute on change\n * @param {number} index Accepts the index value\n * @returns {void}\n * @private\n */\n Schedule.prototype.changeView = function (view, event, muteOnChange, index) {\n var _this = this;\n if (isNullOrUndefined(index)) {\n index = this.getViewIndex(view);\n }\n if (!muteOnChange && index === this.viewIndex && this.currentView === view || index < 0) {\n return;\n }\n var previousView = this.activeViewOptions ? this.activeViewOptions.option : this.currentView;\n var args = { requestType: 'viewNavigate', cancel: false, event: event };\n this.trigger(events.actionBegin, args, function (actionArgs) {\n if (!actionArgs.cancel) {\n var navArgs = {\n action: 'view', cancel: false, currentDate: _this.selectedDate, previousView: previousView, currentView: view, viewIndex: index\n };\n _this.trigger(events.navigating, navArgs, function (navigationArgs) {\n if (!navigationArgs.cancel) {\n var isVertical = ['Day', 'Week', 'WorkWeek'].indexOf(view) > -1 && ['Day', 'Week', 'WorkWeek'].indexOf(previousView) < 0;\n _this.uiStateValues.isInitial = isVertical || view.indexOf('Timeline') > -1 || view.indexOf('Year') > -1;\n _this.uiStateValues.top = view.indexOf('Timeline') > -1 && previousView.indexOf('Timeline') < 0 ? 0 : _this.uiStateValues.top;\n _this.viewIndex = navigationArgs.viewIndex;\n _this.setProperties({ currentView: view }, true);\n if (_this.headerModule) {\n _this.headerModule.updateActiveView();\n _this.headerModule.setCalendarDate(_this.selectedDate);\n _this.headerModule.setCalendarView();\n }\n _this.initializeView(_this.currentView);\n _this.animateLayout();\n args = { requestType: 'viewNavigate', cancel: false, event: event };\n _this.trigger(events.actionComplete, args);\n }\n else {\n _this.currentView = previousView;\n }\n });\n }\n else {\n _this.currentView = previousView;\n }\n });\n };\n /**\n * Method to change the view date\n *\n * @param {Date} selectedDate Accepts the selected date\n * @param {Event} event Accepts the event object\n * @returns {void}\n * @private\n */\n Schedule.prototype.changeDate = function (selectedDate, event) {\n var _this = this;\n var args = { requestType: 'dateNavigate', cancel: false, event: event };\n this.trigger(events.actionBegin, args, function (actionArgs) {\n if (!actionArgs.cancel) {\n var navArgs = {\n action: 'date', cancel: false, previousDate: _this.selectedDate, currentDate: selectedDate\n };\n _this.trigger(events.navigating, navArgs, function (navigationArgs) {\n if (!navigationArgs.cancel) {\n _this.uiStateValues.isInitial = _this.activeView.isTimelineView() && _this.currentView !== 'TimelineYear';\n _this.validateDate(navigationArgs.currentDate);\n if (_this.headerModule) {\n _this.headerModule.setCalendarDate(navigationArgs.currentDate);\n }\n if (_this.currentView === 'MonthAgenda' && _this.monthAgendaModule) {\n _this.monthAgendaModule.monthAgendaDate = new Date('' + _this.selectedDate);\n }\n _this.initializeView(_this.currentView);\n _this.animateLayout();\n args = { requestType: 'dateNavigate', cancel: false, event: event };\n _this.trigger(events.actionComplete, args);\n }\n });\n }\n });\n };\n /**\n * Method to validate min and max date\n *\n * @param {Date} date Accepts the date object\n * @returns {boolean} Returns the boolean result to validate the min and max date\n * @private\n */\n Schedule.prototype.isMinMaxDate = function (date) {\n if (date === void 0) { date = this.selectedDate; }\n return ((date.getTime() >= this.minDate.getTime()) && (date.getTime() <= this.maxDate.getTime()));\n };\n /**\n * Method to validate the selected date\n *\n * @param {Date} date Accepts the date object\n * @returns {boolean} Returns the boolean value for given date is selected date or not\n * @private\n */\n Schedule.prototype.isSelectedDate = function (date) {\n return date.setHours(0, 0, 0, 0) === new Date('' + this.selectedDate).setHours(0, 0, 0, 0);\n };\n /**\n * Method to get the current time\n *\n * @param {Date} date Accepts the date object\n * @returns {Date} Returns the date object after performing the timezone conversion\n * @private\n */\n Schedule.prototype.getCurrentTime = function (date) {\n if (date === void 0) { date = new Date(); }\n if (this.timezone) {\n return this.tzModule.convert(date, this.tzModule.getLocalTimezoneName(), this.timezone);\n }\n return date;\n };\n /** Method to get navigate view\n *\n * @returns {View} Return the navigate view name\n * @private\n */\n Schedule.prototype.getNavigateView = function () {\n if (this.activeView.isTimelineView()) {\n return this.currentView === 'TimelineMonth' || this.currentView === 'TimelineYear' ? 'TimelineDay' : 'Agenda';\n }\n return 'Day';\n };\n Schedule.prototype.animateLayout = function () {\n if (!this.activeView.element) {\n return;\n }\n new Animation({ duration: 600, name: 'FadeIn', timingFunction: 'easeIn' }).animate(this.activeView.element);\n };\n /**\n * To provide the array of modules needed for control rendering\n *\n * @returns {ModuleDeclaration[]} Returns the declared modules\n * @private\n */\n Schedule.prototype.requiredModules = function () {\n var modules = [];\n this.setViewOptions(true);\n for (var _i = 0, _a = Object.keys(this.viewOptions); _i < _a.length; _i++) {\n var view = _a[_i];\n view = (view === 'timelineDay' || view === 'timelineWeek' || view === 'timelineWorkWeek') ? 'timelineViews' : view;\n modules.push({ member: view, args: [this] });\n }\n if (this.allowDragAndDrop) {\n modules.push({ member: 'dragAndDrop', args: [this] });\n }\n if (this.allowResizing) {\n modules.push({ member: 'resize', args: [this] });\n }\n modules.push({ member: 'excelExport', args: [this] });\n modules.push({ member: 'iCalendarExport', args: [this] });\n modules.push({ member: 'iCalendarImport', args: [this] });\n modules.push({ member: 'print', args: [this] });\n return modules;\n };\n /**\n * Initializes the values of private members.\n *\n * @returns {void}\n * @private\n */\n Schedule.prototype.preRender = function () {\n this.isAdaptive = Browser.isDevice || util.isIPadDevice();\n this.globalize = new Internationalization(this.locale);\n this.tzModule = new Timezone();\n if (this && isNullOrUndefined(this.uiStateValues) || !(this.enablePersistence)) {\n this.uiStateValues = {\n expand: false, isInitial: true, left: 0, top: 0, isGroupAdaptive: false,\n isIgnoreOccurrence: false, groupIndex: 0, action: false, isBlock: false, isCustomMonth: true, isPreventTimezone: false\n };\n }\n this.currentTimezoneDate = this.getCurrentTime();\n this.activeCellsData = { startTime: new Date(this.currentTimezoneDate), endTime: new Date(this.currentTimezoneDate), isAllDay: false };\n this.activeEventData = { event: undefined, element: undefined };\n this.getDefaultLocale();\n this.localeObj = new L10n(this.getModuleName(), this.defaultLocale, this.locale);\n this.setCldrTimeFormat();\n this.setCalendarMode();\n this.eventsData = [];\n this.eventsProcessed = [];\n this.blockData = [];\n this.blockProcessed = [];\n this.resourceCollection = [];\n this.currentAction = null;\n this.selectedElements = [];\n this.setViewOptions();\n };\n Schedule.prototype.getDefaultLocale = function () {\n this.defaultLocale = {\n day: 'Day',\n week: 'Week',\n workWeek: 'Work Week',\n month: 'Month',\n year: 'Year',\n agenda: 'Agenda',\n weekAgenda: 'Week Agenda',\n workWeekAgenda: 'Work Week Agenda',\n monthAgenda: 'Month Agenda',\n today: 'Today',\n noEvents: 'No events',\n emptyContainer: 'There are no events scheduled on this day.',\n allDay: 'All day',\n start: 'Start',\n end: 'End',\n more: 'more',\n close: 'Close',\n cancel: 'Cancel',\n noTitle: '(No Title)',\n delete: 'Delete',\n deleteEvent: 'Delete Event',\n deleteMultipleEvent: 'Delete Multiple Events',\n selectedItems: 'Items selected',\n deleteSeries: 'Entire Series',\n edit: 'Edit',\n editSeries: 'Entire Series',\n editEvent: 'Edit Event',\n createEvent: 'Create',\n subject: 'Subject',\n addTitle: 'Add title',\n moreDetails: 'More Details',\n save: 'Save',\n editContent: 'How would you like to change the appointment in the series?',\n deleteContent: 'Are you sure you want to delete this event?',\n deleteMultipleContent: 'Are you sure you want to delete the selected events?',\n newEvent: 'New Event',\n title: 'Title',\n location: 'Location',\n description: 'Description',\n timezone: 'Timezone',\n startTimezone: 'Start Timezone',\n endTimezone: 'End Timezone',\n repeat: 'Repeat',\n saveButton: 'Save',\n cancelButton: 'Cancel',\n deleteButton: 'Delete',\n recurrence: 'Recurrence',\n wrongPattern: 'The recurrence pattern is not valid.',\n seriesChangeAlert: 'Do you want to cancel the changes made to specific ' +\n 'instances of this series and match it to the whole series again?',\n createError: 'The duration of the event must be shorter than how frequently it occurs. ' +\n 'Shorten the duration, or change the recurrence pattern in the recurrence event editor.',\n sameDayAlert: 'Two occurrences of the same event cannot occur on the same day.',\n occurenceAlert: 'Cannot reschedule an occurrence of the recurring appointment if it skips over ' +\n 'a later occurrence of the same appointment.',\n editRecurrence: 'Edit Recurrence',\n repeats: 'Repeats',\n alert: 'Alert',\n startEndError: 'The selected end date occurs before the start date.',\n invalidDateError: 'The entered date value is invalid.',\n blockAlert: 'Events cannot be scheduled within the blocked time range.',\n ok: 'Ok',\n yes: 'Yes',\n no: 'No',\n occurrence: 'Occurrence',\n series: 'Series',\n previous: 'Previous',\n next: 'Next',\n timelineDay: 'Timeline Day',\n timelineWeek: 'Timeline Week',\n timelineWorkWeek: 'Timeline Work Week',\n timelineMonth: 'Timeline Month',\n timelineYear: 'Timeline Year',\n editFollowingEvent: 'Following Events',\n deleteTitle: 'Delete Event',\n editTitle: 'Edit Event',\n beginFrom: 'Begin From',\n endAt: 'Ends At',\n expandAllDaySection: 'Expand-all-day-section',\n collapseAllDaySection: 'Collapse-all-day-section',\n searchTimezone: 'Search Timezone',\n noRecords: 'No records found'\n };\n };\n Schedule.prototype.wireEvents = function () {\n EventHandler.add(window, 'resize', this.onScheduleResize, this);\n EventHandler.add(window, 'orientationchange', this.onScheduleResize, this);\n EventHandler.add(document, Browser.touchStartEvent, this.onDocumentClick, this);\n };\n /**\n * Method to remove selected class\n *\n * @returns {void}\n * @private\n */\n Schedule.prototype.removeSelectedClass = function () {\n var selectedCells = this.getSelectedCells();\n for (var _i = 0, selectedCells_1 = selectedCells; _i < selectedCells_1.length; _i++) {\n var cell = selectedCells_1[_i];\n if (this.currentView !== 'Year') {\n cell.setAttribute('aria-selected', 'false');\n }\n cell.removeAttribute('tabindex');\n }\n removeClass(selectedCells, cls.SELECTED_CELL_CLASS);\n if (this.keyboardInteractionModule && this.keyboardInteractionModule.selectedCells.length > 0) {\n this.keyboardInteractionModule.selectedCells = [];\n }\n };\n /**\n * Method to add selected class\n *\n * @param {HTMLTableCellElement[]} cells Accepts the collection of elements\n * @param {HTMLTableCellElement} focusCell Accepts the focus element\n * @param {boolean} isPreventScroll Accepts the boolean value to prevent scroll\n * @returns {void}\n * @private\n */\n Schedule.prototype.addSelectedClass = function (cells, focusCell, isPreventScroll) {\n if (this.currentView !== 'Year') {\n for (var _i = 0, cells_1 = cells; _i < cells_1.length; _i++) {\n var cell = cells_1[_i];\n cell.setAttribute('aria-selected', 'true');\n }\n }\n addClass(cells, cls.SELECTED_CELL_CLASS);\n if (focusCell) {\n focusCell.setAttribute('tabindex', '0');\n focusCell.focus({ preventScroll: isPreventScroll || false });\n }\n };\n /**\n * Method to select cell\n *\n * @param {HTMLElement | HTMLTableCellElement} element Accepts the select element\n * @returns {void}\n * @private\n */\n Schedule.prototype.selectCell = function (element) {\n this.removeSelectedClass();\n this.addSelectedClass([element], element);\n };\n /**\n * Method to get all day row element\n *\n * @returns {Element} Returns the all day row element\n * @private\n */\n Schedule.prototype.getAllDayRow = function () {\n return this.element.querySelector('.' + cls.ALLDAY_ROW_CLASS);\n };\n /**\n * Method to get content table element\n *\n * @returns {HTMLElement} Returns the content table element\n * @private\n */\n Schedule.prototype.getContentTable = function () {\n return this.activeView.element.querySelector('.' + cls.CONTENT_TABLE_CLASS + ' tbody');\n };\n /**\n * Method to get all content table rows\n *\n * @returns {HTMLElement[]} Returns the content table rows\n * @private\n */\n Schedule.prototype.getTableRows = function () {\n return [].slice.call(this.element.querySelectorAll('.' + cls.CONTENT_TABLE_CLASS + ' tbody tr:not(.' + cls.HIDDEN_CLASS + ')'));\n };\n /**\n * Method to get work cell elements\n *\n * @returns {Element[]} Returns the all work cell elements\n * @private\n */\n Schedule.prototype.getWorkCellElements = function () {\n return [].slice.call(this.element.querySelectorAll('.' + cls.WORK_CELLS_CLASS));\n };\n /**\n * Method to get the index from date collection\n *\n * @param {Date[]} collection Accepts the collections of date\n * @param {Date} date Accepts the date object\n * @returns {number} Returns the index compared date with date collections\n * @private\n */\n Schedule.prototype.getIndexOfDate = function (collection, date) {\n return collection.map(Number).indexOf(+date);\n };\n /**\n * Method to find all day cell\n *\n * @param {Element} td Accepts the DOM Element\n * @returns {boolean} Returns the boolean value\n * @private\n */\n Schedule.prototype.isAllDayCell = function (td) {\n if (['Month', 'TimelineMonth', 'TimelineYear', 'MonthAgenda'].indexOf(this.currentView) > -1 ||\n td.classList.contains(cls.ALLDAY_CELLS_CLASS) ||\n td.classList.contains(cls.HEADER_CELLS_CLASS) || !this.activeViewOptions.timeScale.enable) {\n return true;\n }\n if (this.activeView.isTimelineView() && this.activeViewOptions.headerRows.length > 0 &&\n this.activeViewOptions.headerRows.slice(-1)[0].option !== 'Hour') {\n return true;\n }\n return false;\n };\n /**\n * Method to get date from element\n *\n * @param {Element} td Accepts the DOM element\n * @returns {Date} Returns the date object\n * @private\n */\n Schedule.prototype.getDateFromElement = function (td) {\n var dateString;\n if (!isNullOrUndefined(td)) {\n dateString = td.getAttribute('data-date');\n }\n if (!isNullOrUndefined(dateString)) {\n var dateInMS = parseInt(dateString, 10);\n var date = new Date(dateInMS);\n return date;\n }\n return undefined;\n };\n /**\n * Method to get target element from given selector\n *\n * @param {string} selector Accepts the element selector\n * @param {number} left Accepts the pageX value\n * @param {number} top Accepts the pageY value\n * @returns {Element[]} Returns the collection of elements based on the given selector\n * @private\n */\n Schedule.prototype.getTargetElement = function (selector, left, top) {\n var element = document.elementFromPoint(left, top);\n var targetElement;\n if (element) {\n targetElement = element.closest(selector);\n }\n return (targetElement) ? [targetElement] : null;\n };\n /**\n * Method to process cell header template\n *\n * @returns {CallbackFunction} Returns the callback function\n * @private\n */\n Schedule.prototype.getCellHeaderTemplate = function () {\n return this.cellHeaderTemplateFn;\n };\n /**\n * Method to process cell header template in year view.\n *\n * @returns {CallbackFunction} Returns the callback function\n * @private\n */\n Schedule.prototype.getDayHeaderTemplate = function () {\n return this.dayHeaderTemplateFn;\n };\n /**\n * Method to process cell header template in year view.\n *\n * @returns {CallbackFunction} Returns the callback function\n * @private\n */\n Schedule.prototype.getMonthHeaderTemplate = function () {\n return this.monthHeaderTemplateFn;\n };\n /**\n * Method to process cell template\n *\n * @returns {CallbackFunction} Returns the callback function\n * @private\n */\n Schedule.prototype.getCellTemplate = function () {\n return this.cellTemplateFn;\n };\n /**\n * Method to process date header template\n *\n * @returns {CallbackFunction} Returns the callback function\n * @private\n */\n Schedule.prototype.getDateHeaderTemplate = function () {\n return this.dateHeaderTemplateFn;\n };\n /**\n * Method to process date range template\n *\n * @returns {CallbackFunction} Returns the callback function\n * @private\n */\n Schedule.prototype.getDateRangeTemplate = function () {\n return this.dateRangeTemplateFn;\n };\n /**\n * Method to process major slot template\n *\n * @returns {CallbackFunction} Returns the callback function\n * @private\n */\n Schedule.prototype.getMajorSlotTemplate = function () {\n return this.majorSlotTemplateFn;\n };\n /**\n * Method to process minor slot template\n *\n * @returns {CallbackFunction} Returns the callback function\n * @private\n */\n Schedule.prototype.getMinorSlotTemplate = function () {\n return this.minorSlotTemplateFn;\n };\n /**\n * Method to process appointment template\n *\n * @returns {CallbackFunction} Returns the callback function\n * @private\n */\n Schedule.prototype.getAppointmentTemplate = function () {\n return this.appointmentTemplateFn;\n };\n /**\n * Method to process appointment tooltip template\n *\n * @returns {CallbackFunction} Returns the callback function\n * @private\n */\n Schedule.prototype.getEventTooltipTemplate = function () {\n return this.eventTooltipTemplateFn;\n };\n /**\n * Method to process header tooltip template\n *\n * @returns {CallbackFunction} Returns the callback function\n * @private\n */\n Schedule.prototype.getHeaderTooltipTemplate = function () {\n return this.headerTooltipTemplateFn;\n };\n /**\n * Method to process editor template\n *\n * @returns {CallbackFunction} Returns the callback function\n * @private\n */\n Schedule.prototype.getEditorTemplate = function () {\n return this.editorTemplateFn;\n };\n /**\n * Method to process quick info header template\n *\n * @returns {CallbackFunction} Returns the callback function\n * @private\n */\n Schedule.prototype.getQuickInfoTemplatesHeader = function () {\n return this.quickInfoTemplatesHeaderFn;\n };\n /**\n * Method to process quick info content template\n *\n * @returns {CallbackFunction} Returns the callback function\n * @private\n */\n Schedule.prototype.getQuickInfoTemplatesContent = function () {\n return this.quickInfoTemplatesContentFn;\n };\n /**\n * Method to process quick info footer template\n *\n * @returns {CallbackFunction} Returns the callback function\n * @private\n */\n Schedule.prototype.getQuickInfoTemplatesFooter = function () {\n return this.quickInfoTemplatesFooterFn;\n };\n /**\n * Method to process resource header template\n *\n * @returns {CallbackFunction} Returns the callback function\n * @private\n */\n Schedule.prototype.getResourceHeaderTemplate = function () {\n return this.resourceHeaderTemplateFn;\n };\n /**\n * Method to process indent template\n *\n * @returns {CallbackFunction} Returns the callback function\n * @private\n */\n Schedule.prototype.getHeaderIndentTemplate = function () {\n return this.headerIndentTemplateFn;\n };\n /**\n * Method to get dynamic CSS properties\n *\n * @returns {ScrollCss} Returns the CSS properties dynamically\n * @private\n */\n Schedule.prototype.getCssProperties = function () {\n var cssProps = {\n border: this.enableRtl ? 'borderLeftWidth' : 'borderRightWidth',\n padding: this.enableRtl ? 'paddingLeft' : 'paddingRight',\n rtlBorder: this.enableRtl ? 'borderRightWidth' : 'borderLeftWidth',\n rtlPadding: this.enableRtl ? 'paddingRight' : 'paddingLeft'\n };\n return cssProps;\n };\n /**\n * Method to remove new event element in adaptive mode\n *\n * @returns {void}\n * @private\n */\n Schedule.prototype.removeNewEventElement = function () {\n var eventClone = this.element.querySelector('.' + cls.NEW_EVENT_CLASS);\n if (!isNullOrUndefined(eventClone)) {\n remove(eventClone);\n }\n };\n /**\n * Method to get start end time from string\n *\n * @param {string} startEndTime Accepts the start end time string value\n * @returns {Date} Returns the date object\n * @private\n */\n Schedule.prototype.getStartEndTime = function (startEndTime) {\n if (!isNullOrUndefined(startEndTime) && startEndTime !== '') {\n var startEndDate = util.resetTime(new Date(this.currentTimezoneDate) || this.getCurrentTime());\n var timeString = startEndTime.split(':');\n if (timeString.length === 2) {\n startEndDate.setHours(parseInt(timeString[0], 10), parseInt(timeString[1], 10), 0);\n }\n return startEndDate;\n }\n return null;\n };\n Schedule.prototype.onDocumentClick = function (args) {\n this.notify(events.documentClick, { event: args });\n };\n Schedule.prototype.onScheduleResize = function () {\n if (isNullOrUndefined(this.activeView) || ((this.isAdaptive || util.isMobile()) && document.activeElement\n && document.activeElement.classList.contains(cls.SUBJECT_CLASS))) {\n return;\n }\n if (this.activeViewOptions.timeScale.enable && this.activeView) {\n this.activeView.highlightCurrentTime();\n }\n if (this.quickPopup) {\n this.quickPopup.onClosePopup();\n }\n if (this.currentView === 'Month' || ((this.currentView !== 'Agenda' && this.currentView !== 'MonthAgenda')\n && !this.activeViewOptions.timeScale.enable) || this.activeView.isTimelineView()) {\n this.activeView.resetColWidth();\n this.notify(events.scrollUiUpdate, { cssProperties: this.getCssProperties(), isPreventScrollUpdate: true });\n this.refreshEvents(false);\n }\n else {\n this.notify(events.contentReady, {});\n }\n };\n /**\n * Method to process the templates\n *\n * @param {string} template Accepts the template in string\n * @returns {CallbackFunction} Returns the callback function\n * @private\n */\n Schedule.prototype.templateParser = function (template) {\n if (template) {\n try {\n if (document.querySelectorAll(template).length) {\n return compile(document.querySelector(template).innerHTML.trim());\n }\n else {\n return compile(template);\n }\n }\n catch (error) {\n return compile(template);\n }\n }\n return undefined;\n };\n /**\n * Retrieves the selected cells.\n *\n * @returns {Element[]} The elements of currently selected cells will be returned.\n * @private\n */\n Schedule.prototype.getSelectedCells = function () {\n return [].slice.call(this.element.querySelectorAll('.' + cls.SELECTED_CELL_CLASS));\n };\n /**\n * Method to generate the announcement string\n *\n * @param {Object} event Accepts the event object\n * @param {string} subject Accepts the subject text\n * @returns {string} Returns the announcement string\n * @private\n */\n Schedule.prototype.getAnnouncementString = function (event, subject) {\n var resourceName;\n if (this.quickPopup && this.activeViewOptions.group.resources.length > 0) {\n var constantText = '\"s event - ';\n resourceName = this.quickPopup.getResourceText({ event: event }, 'event') + constantText;\n }\n var recordSubject = (subject || (event[this.eventFields.subject] || this.eventSettings.fields.subject.default));\n var skeleton = 'full';\n var startDateText = this.globalize.formatDate(event[this.eventFields.startTime], {\n type: 'dateTime', skeleton: skeleton, calendar: this.getCalendarMode()\n });\n var endDateText = this.globalize.formatDate(event[this.eventFields.endTime], {\n type: 'dateTime', skeleton: skeleton, calendar: this.getCalendarMode()\n });\n var announcementString = recordSubject + ' ' + this.localeObj.getConstant('beginFrom') + ' '\n + startDateText + ' ' + this.localeObj.getConstant('endAt') + ' ' + endDateText;\n if (resourceName) {\n announcementString = resourceName + ' ' + announcementString;\n }\n return announcementString;\n };\n /**\n * Method to process the element boundary validation\n *\n * @param {number} pageY Accepts the pageY value\n * @param {number} pageX Accepts the pageX value\n * @returns {ResizeEdges} Returns the boundary validation object\n * @private\n */\n Schedule.prototype.boundaryValidation = function (pageY, pageX) {\n var autoScrollDistance = 30;\n var scrollEdges = { left: false, right: false, top: false, bottom: false };\n var viewBoundaries = this.element.querySelector('.' + cls.CONTENT_WRAP_CLASS).getBoundingClientRect();\n if ((pageY < viewBoundaries.top + autoScrollDistance + window.pageYOffset) &&\n (pageY > viewBoundaries.top + window.pageYOffset)) {\n scrollEdges.top = true;\n }\n if ((pageY > (viewBoundaries.bottom - autoScrollDistance) + window.pageYOffset) &&\n (pageY < viewBoundaries.bottom + window.pageYOffset)) {\n scrollEdges.bottom = true;\n }\n if ((pageX < viewBoundaries.left + autoScrollDistance + window.pageXOffset) &&\n (pageX > viewBoundaries.left + window.pageXOffset)) {\n scrollEdges.left = true;\n }\n if ((pageX > (viewBoundaries.right - autoScrollDistance) + window.pageXOffset) &&\n (pageX < viewBoundaries.right + window.pageXOffset)) {\n scrollEdges.right = true;\n }\n return scrollEdges;\n };\n /**\n * Method to get the week number.\n *\n * @param {Date[]} dates Accepts the date collections\n * @returns {number} Returns the week number\n * @private\n */\n Schedule.prototype.getWeekNumberContent = function (dates) {\n var weekNumber;\n if (this.weekRule === 'FirstDay') {\n var weekNumberDate = util.getWeekLastDate(dates.slice(-1)[0], this.firstDayOfWeek);\n weekNumber = this.globalize.formatNumber(util.getWeekNumber(weekNumberDate));\n }\n else if (this.weekRule === 'FirstFourDayWeek') {\n var weekFirstDate = util.getWeekFirstDate(dates.slice(-1)[0], this.firstDayOfWeek);\n var weekLastDate = util.getWeekLastDate(dates.slice(-1)[0], this.firstDayOfWeek);\n var weekMidDate = util.getWeekMiddleDate(weekFirstDate, weekLastDate);\n weekNumber = this.globalize.formatNumber(util.getWeekNumber(weekMidDate));\n }\n else if (this.weekRule === 'FirstFullWeek') {\n var weekFirstDate = util.getWeekFirstDate(dates.slice(-1)[0], this.firstDayOfWeek);\n weekNumber = this.globalize.formatNumber(util.getWeekNumber(weekFirstDate));\n }\n return weekNumber;\n };\n /**\n * Method to render the header indent template.\n *\n * @param {TdData} data Accepts the td data\n * @param {Element} td Accepts the td element\n * @returns {void}\n * @private\n */\n Schedule.prototype.renderHeaderIndentTemplate = function (data, td) {\n if (this.activeViewOptions.headerIndentTemplate) {\n var scheduleId = this.element.id + '_';\n var viewName = this.activeViewOptions.headerIndentTemplateName;\n var templateId = scheduleId + viewName + 'headerIndentTemplate';\n var indentTemplate = [].slice.call(this.getHeaderIndentTemplate()(data, this, 'headerIndentTemplate', templateId, false));\n append(indentTemplate, td);\n }\n };\n /**\n * Method to check for refreshing the targeted resource row events.\n *\n * @returns {boolean} Returns the boolean value\n * @private\n */\n Schedule.prototype.isSpecificResourceEvents = function () {\n return this.activeViewOptions.group.resources.length > 0 && !this.activeViewOptions.group.allowGroupEdit &&\n !this.rowAutoHeight && !this.virtualScrollModule && this.activeViewOptions.group.byGroupID;\n };\n Schedule.prototype.unWireEvents = function () {\n EventHandler.remove(window, 'resize', this.onScheduleResize);\n EventHandler.remove(window, 'orientationchange', this.onScheduleResize);\n EventHandler.remove(document, Browser.touchStartEvent, this.onDocumentClick);\n };\n /**\n * Core method to return the component name.\n *\n * @returns {string} Returns the module name\n * @private\n */\n Schedule.prototype.getModuleName = function () {\n return 'schedule';\n };\n /**\n * Returns the properties to be maintained in the persisted state.\n *\n * @returns {string} Returns the persistance data\n * @private\n */\n Schedule.prototype.getPersistData = function () {\n return this.addOnPersist(['currentView', 'selectedDate', 'scrollTop', 'scrollLeft']);\n };\n /**\n * Called internally, if any of the property value changed.\n *\n * @returns {void}\n * @private\n */\n Schedule.prototype.onPropertyChanged = function (newProp, oldProp) {\n if (this.isReact && isNullOrUndefined(this.activeView)) {\n return;\n }\n var state = {\n isRefresh: false, isResource: false, isDate: false, isView: false, isLayout: false, isDataManager: false\n };\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'views':\n this.setViewOptions();\n if (this.headerModule) {\n this.headerModule.updateItems();\n }\n state.isView = true;\n break;\n case 'currentView':\n state.isView = true;\n break;\n case 'minDate':\n case 'maxDate':\n case 'selectedDate':\n state.isDate = true;\n break;\n case 'dateFormat':\n this.activeViewOptions = this.getActiveViewOptions();\n if (this.headerModule) {\n this.headerModule.updateDateRange();\n }\n break;\n case 'showHeaderBar':\n this.destroyHeaderModule();\n if (newProp.showHeaderBar) {\n this.headerModule = new HeaderRenderer(this);\n this.headerModule.updateDateRange();\n }\n this.notify(events.scrollUiUpdate, { cssProperties: this.getCssProperties() });\n if (this.activeView.isTimelineView()) {\n this.refreshEvents(false);\n }\n break;\n case 'workDays':\n if (JSON.stringify(oldProp.workDays) !== JSON.stringify(newProp.workDays)) {\n state.isLayout = true;\n }\n break;\n case 'showWeekend':\n case 'startHour':\n case 'endHour':\n case 'workHours':\n case 'readonly':\n case 'headerRows':\n case 'showWeekNumber':\n case 'rowAutoHeight':\n state.isLayout = true;\n break;\n case 'locale':\n case 'calendarMode':\n this.globalize = new Internationalization(this.locale);\n this.localeObj = new L10n(this.getModuleName(), this.defaultLocale, this.locale);\n this.setCldrTimeFormat();\n this.setCalendarMode();\n state.isRefresh = true;\n break;\n case 'firstDayOfWeek':\n this.activeViewOptions.firstDayOfWeek = newProp.firstDayOfWeek;\n if (this.eventWindow) {\n this.eventWindow.refreshRecurrenceEditor();\n }\n state.isLayout = true;\n break;\n case 'showTimeIndicator':\n if (this.activeViewOptions.timeScale.enable && this.activeView) {\n this.activeView.highlightCurrentTime();\n }\n break;\n case 'cellHeaderTemplate':\n this.activeViewOptions.cellHeaderTemplate = newProp.cellHeaderTemplate;\n this.cellHeaderTemplateFn = this.templateParser(this.activeViewOptions.cellHeaderTemplate);\n state.isLayout = true;\n break;\n case 'cellTemplate':\n this.activeViewOptions.cellTemplate = newProp.cellTemplate;\n this.cellTemplateFn = this.templateParser(this.activeViewOptions.cellTemplate);\n state.isLayout = true;\n break;\n case 'dateHeaderTemplate':\n this.activeViewOptions.dateHeaderTemplate = newProp.dateHeaderTemplate;\n this.dateHeaderTemplateFn = this.templateParser(this.activeViewOptions.dateHeaderTemplate);\n state.isLayout = true;\n break;\n case 'dateRangeTemplate':\n this.activeViewOptions.dateRangeTemplate = newProp.dateRangeTemplate;\n this.dateRangeTemplateFn = this.templateParser(this.activeViewOptions.dateRangeTemplate);\n if (this.headerModule) {\n this.headerModule.updateDateRange();\n }\n break;\n case 'dayHeaderTemplate':\n this.activeViewOptions.dayHeaderTemplate = newProp.dayHeaderTemplate;\n this.dayHeaderTemplateFn = this.templateParser(this.activeViewOptions.dayHeaderTemplate);\n state.isLayout = true;\n break;\n case 'monthHeaderTemplate':\n this.activeViewOptions.monthHeaderTemplate = newProp.monthHeaderTemplate;\n this.monthHeaderTemplateFn = this.templateParser(this.activeViewOptions.monthHeaderTemplate);\n state.isLayout = true;\n break;\n case 'resourceHeaderTemplate':\n this.activeViewOptions.resourceHeaderTemplate = newProp.resourceHeaderTemplate;\n this.resourceHeaderTemplateFn = this.templateParser(this.activeViewOptions.resourceHeaderTemplate);\n state.isLayout = true;\n break;\n case 'timezone':\n this.eventBase.timezonePropertyChange(oldProp.timezone);\n this.headerModule.setCalendarTimezone();\n break;\n case 'enableRtl':\n this.setRtlClass();\n state.isRefresh = true;\n break;\n default:\n this.extendedPropertyChange(prop, newProp, oldProp, state);\n break;\n }\n }\n this.propertyChangeAction(state);\n };\n Schedule.prototype.propertyChangeAction = function (state) {\n if (state.isRefresh) {\n this.refresh();\n }\n else if (state.isResource) {\n this.initializeResources(true);\n }\n else if (state.isView) {\n this.changeView(this.currentView, null, true);\n }\n else if (state.isDate) {\n this.changeDate(this.selectedDate);\n }\n else if (state.isLayout) {\n this.activeCellsData = null;\n this.initializeView(this.currentView);\n }\n else if (state.isDataManager && this.crudModule) {\n if (this.dragAndDropModule) {\n this.dragAndDropModule.actionObj.action = '';\n removeClass([this.element], cls.EVENT_ACTION_CLASS);\n }\n this.crudModule.refreshDataManager();\n }\n };\n Schedule.prototype.allDayRowScrollUpdate = function () {\n var dateHeader = this.element.querySelector('.' + cls.DATE_HEADER_WRAP_CLASS);\n var allDayRow = this.element.querySelector('.' + cls.ALLDAY_ROW_CLASS);\n if (this.height === 'auto' || !this.enableAllDayScroll) {\n addClass([dateHeader], cls.ALLDAY_APPOINTMENT_AUTO);\n if (dateHeader.classList.contains(cls.ALLDAY_APPOINTMENT_SCROLL)) {\n removeClass([dateHeader], cls.ALLDAY_APPOINTMENT_SCROLL);\n }\n if (this.uiStateValues.expand) {\n var allDayCells = [].slice.call(this.element.querySelectorAll('.' + cls.ALLDAY_CELLS_CLASS));\n allDayCells[0].style.height = (allDayRow.style.height) ? allDayRow.style.height : allDayCells[1].style.height;\n }\n }\n else {\n if (dateHeader.classList.contains(cls.ALLDAY_APPOINTMENT_AUTO)) {\n removeClass([dateHeader], cls.ALLDAY_APPOINTMENT_AUTO);\n }\n this.eventBase.allDayExpandScroll(dateHeader);\n }\n if (!this.uiStateValues.expand) {\n allDayRow.style.height = '';\n }\n };\n Schedule.prototype.extendedPropertyChange = function (prop, newProp, oldProp, state) {\n switch (prop) {\n case 'width':\n case 'height':\n case 'enableAllDayScroll':\n if (['Day', 'Week', 'WorkWeek'].indexOf(this.currentView) > -1) {\n this.allDayRowScrollUpdate();\n }\n this.notify(events.uiUpdate, { module: 'scroll', properties: { width: newProp.width, height: newProp.height } });\n break;\n case 'cssClass':\n if (oldProp.cssClass) {\n removeClass([this.element], oldProp.cssClass.split(' '));\n }\n if (newProp.cssClass) {\n addClass([this.element], newProp.cssClass.split(' '));\n }\n break;\n case 'hideEmptyAgendaDays':\n case 'agendaDaysCount':\n this.activeViewOptions = this.getActiveViewOptions();\n state.isView = true;\n break;\n case 'eventSettings':\n this.onEventSettingsPropertyChanged(newProp.eventSettings, oldProp.eventSettings, state);\n break;\n case 'allowKeyboardInteraction':\n if (this.keyboardInteractionModule) {\n this.keyboardInteractionModule.destroy();\n this.keyboardInteractionModule = null;\n }\n if (newProp.allowKeyboardInteraction) {\n this.keyboardInteractionModule = new KeyboardInteraction(this);\n }\n break;\n case 'timezoneDataSource':\n if (this.eventWindow) {\n this.eventWindow.refresh();\n }\n break;\n case 'editorTemplate':\n if (!isNullOrUndefined(this.editorTemplate)) {\n this.editorTemplateFn = this.templateParser(this.editorTemplate);\n }\n if (this.eventWindow) {\n this.eventWindow.setDialogContent();\n }\n break;\n case 'quickInfoTemplates':\n if (this.quickInfoTemplates.header) {\n this.quickInfoTemplatesHeaderFn = this.templateParser(this.quickInfoTemplates.header);\n }\n if (this.quickInfoTemplates.content) {\n this.quickInfoTemplatesContentFn = this.templateParser(this.quickInfoTemplates.content);\n }\n if (this.quickInfoTemplates.footer) {\n this.quickInfoTemplatesFooterFn = this.templateParser(this.quickInfoTemplates.footer);\n }\n break;\n case 'group':\n this.onGroupSettingsPropertyChanged(newProp.group, oldProp.group, state);\n break;\n case 'resources':\n state.isResource = true;\n break;\n case 'timeScale':\n this.activeViewOptions.timeScale.interval = newProp.timeScale.interval || this.activeViewOptions.timeScale.interval;\n this.activeViewOptions.timeScale.slotCount = newProp.timeScale.slotCount || this.activeViewOptions.timeScale.slotCount;\n if (this.eventWindow) {\n this.eventWindow.refreshDateTimePicker();\n }\n state.isLayout = true;\n break;\n case 'allowDragAndDrop':\n case 'allowResizing':\n case 'eventDragArea':\n this.refreshEvents(false);\n break;\n case 'weekRule':\n state.isLayout = true;\n break;\n case 'firstMonthOfYear':\n this.activeViewOptions.firstMonthOfYear = newProp.firstMonthOfYear;\n this.viewIndex = this.activeView.viewIndex;\n state.isLayout = true;\n break;\n case 'monthsCount':\n this.activeViewOptions.monthsCount = newProp.monthsCount;\n this.viewIndex = this.activeView.viewIndex;\n state.isLayout = true;\n break;\n case 'timeFormat':\n this.internalTimeFormat = newProp.timeFormat || this.activeViewOptions.timeFormat;\n if (this.eventWindow) {\n this.eventWindow.refreshDateTimePicker();\n }\n state.isLayout = true;\n break;\n case 'enableAdaptiveUI':\n if (this.showHeaderBar && this.headerModule) {\n this.destroyHeaderModule();\n this.headerModule = new HeaderRenderer(this);\n this.headerModule.updateDateRange();\n }\n state.isLayout = true;\n break;\n case 'headerIndentTemplate':\n this.activeViewOptions.headerIndentTemplate = newProp.headerIndentTemplate;\n this.headerIndentTemplateFn = this.templateParser(this.activeViewOptions.headerIndentTemplate);\n state.isLayout = true;\n break;\n }\n };\n Schedule.prototype.setRtlClass = function () {\n if (this.enableRtl) {\n addClass([this.element], 'e-rtl');\n }\n else {\n removeClass([this.element], 'e-rtl');\n }\n };\n Schedule.prototype.onGroupSettingsPropertyChanged = function (newProp, oldProp, state) {\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n if (prop === 'headerTooltipTemplate') {\n this.headerTooltipTemplateFn = this.templateParser(newProp.headerTooltipTemplate);\n }\n else {\n state.isLayout = true;\n if (this.eventWindow) {\n this.eventWindow.refresh();\n }\n }\n }\n };\n Schedule.prototype.onEventSettingsPropertyChanged = function (newProp, oldProp, state) {\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'dataSource':\n case 'query':\n case 'fields':\n case 'includeFiltersInQuery':\n this.initializeDataModule();\n state.isDataManager = true;\n break;\n case 'template':\n this.activeViewOptions.eventTemplate = newProp.template;\n this.appointmentTemplateFn = this.templateParser(this.activeViewOptions.eventTemplate);\n state.isDataManager = true;\n break;\n case 'enableTooltip':\n if (this.eventTooltip) {\n this.eventTooltip.destroy();\n this.eventTooltip = null;\n }\n if (newProp.enableTooltip) {\n this.eventTooltip = new EventTooltip(this);\n }\n break;\n case 'tooltipTemplate':\n this.eventTooltipTemplateFn = this.templateParser(this.eventSettings.tooltipTemplate);\n break;\n case 'resourceColorField':\n if (this.resourceBase) {\n this.resourceBase.setResourceCollection();\n }\n state.isDataManager = true;\n break;\n case 'editFollowingEvents':\n if (this.quickPopup) {\n this.quickPopup.refreshQuickDialog();\n }\n break;\n case 'allowAdding':\n case 'allowEditing':\n case 'allowDeleting':\n if (this.showHeaderBar && this.headerModule) {\n this.headerModule.updateAddIcon();\n }\n if (this.eventWindow) {\n this.eventWindow.refresh();\n }\n break;\n case 'spannedEventPlacement':\n case 'minimumEventDuration':\n case 'enableMaxHeight':\n case 'enableIndicator':\n this.refreshEvents(false);\n break;\n case 'ignoreWhitespace':\n state.isLayout = true;\n break;\n }\n }\n };\n Schedule.prototype.destroyHeaderModule = function () {\n if (this.headerModule) {\n this.headerModule.destroy();\n this.headerModule = null;\n }\n };\n Schedule.prototype.destroyPopups = function () {\n if (this.quickPopup) {\n this.quickPopup.destroy();\n this.quickPopup = null;\n }\n if (this.eventWindow) {\n this.eventWindow.destroy();\n this.eventWindow = null;\n }\n };\n /**\n * Allows to show the spinner on schedule at the required scenarios.\n *\n * @function showSpinner\n * @returns {void}\n */\n Schedule.prototype.showSpinner = function () {\n showSpinner(this.element);\n };\n /**\n * When the spinner is shown manually using `showSpinner` method, it can be hidden using this `hideSpinner` method.\n *\n * @function hideSpinner\n * @returns {void}\n */\n Schedule.prototype.hideSpinner = function () {\n hideSpinner(this.element);\n };\n /**\n * Sets different working hours on the required working days by accepting the required start and end time as well as the date collection\n * as its parameters.\n *\n * @function setWorkHours\n * @param {Date} dates Collection of dates on which the given start and end hour range needs to be applied.\n * @param {string} start Defines the work start hour.\n * @param {string} end Defines the work end hour.\n * @param {number} groupIndex Defines the resource index from last level.\n * @returns {void}\n */\n Schedule.prototype.setWorkHours = function (dates, start, end, groupIndex) {\n var cells = [];\n cells = this.getWorkHourCells(dates, start, end, groupIndex);\n addClass(cells, cls.WORK_HOURS_CLASS);\n };\n /**\n * Removes or resets different working hours on the required working days by accepting the required start and end time as well as the\n * date collection as its parameters.\n * if no parameters has been passed to this function, it will remove all the work hours.\n *\n * @param {Date} dates Collection of dates on which the given start and end hour range need to be applied.\n * @param {string} start Defines the work start hour.\n * @param {string} end Defines the work end hour.\n * @param {number} groupIndex Defines the resource index from last level.\n * @returns {void}\n */\n Schedule.prototype.resetWorkHours = function (dates, start, end, groupIndex) {\n if (dates === void 0) { dates = this.activeView.renderDates; }\n if (dates && start && end) {\n var cells = this.getWorkHourCells(dates, start, end, groupIndex);\n removeClass(cells, cls.WORK_HOURS_CLASS);\n }\n else {\n var workHourCells = [].slice.call(this.element.querySelectorAll('.' + cls.WORK_HOURS_CLASS));\n removeClass(workHourCells, cls.WORK_HOURS_CLASS);\n }\n };\n Schedule.prototype.getWorkHourCells = function (dates, start, end, groupIndex) {\n if (['Agenda', 'MonthAgenda', 'Month', 'TimelineMonth'].indexOf(this.currentView) > -1) {\n return [];\n }\n var startHour = this.getStartEndTime(start);\n var endHour = this.getStartEndTime(end);\n var tableEle = this.getContentTable();\n if (isNullOrUndefined(startHour) || isNullOrUndefined(endHour) || !tableEle) {\n return [];\n }\n startHour.setMilliseconds(0);\n endHour.setMilliseconds(0);\n var viewStartHour = this.activeView.getStartHour();\n if (startHour < viewStartHour) {\n startHour = viewStartHour;\n }\n var viewEndHour = this.activeView.getEndHour();\n if (endHour > viewEndHour) {\n endHour = viewEndHour;\n }\n var msMajorInterval = this.activeViewOptions.timeScale.interval * util.MS_PER_MINUTE;\n var msInterval = msMajorInterval / this.activeViewOptions.timeScale.slotCount;\n var startIndex = Math.round((startHour.getTime() - viewStartHour.getTime()) / msInterval);\n var endIndex = Math.ceil((endHour.getTime() - viewStartHour.getTime()) / msInterval);\n var tempStartIndex = startIndex;\n var tempEndIndex = endIndex;\n var cells = [];\n for (var _i = 0, dates_1 = dates; _i < dates_1.length; _i++) {\n var date = dates_1[_i];\n date = this.getDateTime(date);\n util.resetTime(date);\n var renderDates = this.activeView.renderDates;\n if (!isNullOrUndefined(groupIndex) && this.resourceBase && !this.activeView.isTimelineView()) {\n renderDates = this.resourceBase.lastResourceLevel[parseInt(groupIndex.toString(), 10)].renderDates;\n }\n var colIndex = this.getIndexOfDate(renderDates, date);\n if (colIndex >= 0) {\n if (this.activeView.isTimelineView()) {\n var slotsPerDay = Math.round((viewEndHour.getTime() - viewStartHour.getTime()) / msInterval);\n startIndex = tempStartIndex + (colIndex * slotsPerDay);\n endIndex = tempEndIndex + (colIndex * slotsPerDay);\n }\n for (var i = startIndex; i < endIndex; i++) {\n if (this.activeView.isTimelineView()) {\n var rowIndex = (!isNullOrUndefined(groupIndex)) ? groupIndex : 0;\n cells.push(tableEle.rows[parseInt(rowIndex.toString(), 10)].cells[parseInt(i.toString(), 10)]);\n }\n else {\n if (!isNullOrUndefined(groupIndex)) {\n var selector = '.' + cls.WORK_CELLS_CLASS + '[data-group-index=\"' + groupIndex + '\"]';\n var tds = [].slice.call(tableEle.rows[parseInt(i.toString(), 10)].querySelectorAll(selector));\n cells.push(tds[parseInt(colIndex.toString(), 10)]);\n }\n else {\n cells.push(tableEle.rows[parseInt(i.toString(), 10)].cells[parseInt(colIndex.toString(), 10)]);\n }\n }\n }\n }\n }\n return cells;\n };\n /**\n * Retrieves the start and end time information of the specific cell element.\n *\n * @function getCellDetails\n * @param {Element | Element[]} tdCol Accepts the single or collection of elements.\n * @returns {CellClickEventArgs} Object An object holding the startTime, endTime and all-day information along with the target HTML element will be returned.\n */\n Schedule.prototype.getCellDetails = function (tdCol) {\n var td = (tdCol instanceof Array) ? tdCol : [tdCol];\n var firstTd = getElement(td[0]);\n var lastTd = getElement(td.slice(-1)[0]);\n var startTime = this.getDateFromElement(firstTd);\n var endTime = this.getDateFromElement(lastTd);\n if (isNullOrUndefined(startTime) || isNullOrUndefined(endTime)) {\n return undefined;\n }\n var endDateFromColSpan = this.activeView.isTimelineView() && !isNullOrUndefined(lastTd.getAttribute('colSpan')) &&\n this.headerRows.length > 0;\n var duration = endDateFromColSpan ? parseInt(lastTd.getAttribute('colSpan'), 10) : 1;\n if (!this.activeViewOptions.timeScale.enable || endDateFromColSpan || lastTd.classList.contains(cls.ALLDAY_CELLS_CLASS) ||\n lastTd.classList.contains(cls.HEADER_CELLS_CLASS)) {\n endTime = util.addDays(new Date(endTime.getTime()), duration);\n }\n else {\n endTime = this.activeView.getEndDateFromStartDate(endTime);\n }\n var data = {\n startTime: startTime,\n endTime: endTime,\n isAllDay: this.isAllDayCell(firstTd),\n element: tdCol\n };\n var groupIndex = firstTd.getAttribute('data-group-index');\n if (!isNullOrUndefined(groupIndex)) {\n data.groupIndex = parseInt(groupIndex, 10);\n }\n return data;\n };\n /**\n * Retrieves the selected cell elements.\n *\n * @function getSelectedElements\n * @returns {Element[]} The elements of currently selected cells will be returned.\n */\n Schedule.prototype.getSelectedElements = function () {\n if (this.keyboardInteractionModule && this.keyboardInteractionModule.selectedCells.length > 0) {\n return this.keyboardInteractionModule.selectedCells;\n }\n return this.getSelectedCells();\n };\n /**\n * To get the resource collection\n *\n * @function getResourceCollections\n * @returns {ResourcesModel[]} Returns the resource collections\n */\n Schedule.prototype.getResourceCollections = function () {\n return this.resourceCollection;\n };\n /**\n * To set the resource collection\n *\n * @function setResourceCollections\n * @param {ResourcesModel[]} resourceCol Accepts the resource collections in ResourcesModel type\n * @returns {void}\n */\n Schedule.prototype.setResourceCollections = function (resourceCol) {\n this.setProperties({ resources: resourceCol }, false);\n };\n /**\n * Current View could be change based on the provided parameters.\n *\n * @function changeCurrentView\n * @param {View} viewName Accept the view in the viewCollections.\n * @param {number} viewIndex Accept the viewIndex in the viewCollections.\n * @returns {void}\n */\n Schedule.prototype.changeCurrentView = function (viewName, viewIndex) {\n var index = this.getViewIndex(viewName);\n var view = viewName.charAt(0).toLowerCase() + viewName.slice(1);\n var viewOptions = this.viewOptions[\"\" + view];\n if (viewOptions) {\n index = this.viewCollections.indexOf(viewOptions[viewIndex || 0]);\n }\n if (index === -1 || index === this.viewIndex) {\n return;\n }\n this.changeView(viewName, null, null, index);\n };\n /**\n * Return the current view Index.\n *\n * @function getCurrentViewIndex\n * @returns {number} Returns the view index\n */\n Schedule.prototype.getCurrentViewIndex = function () {\n return this.viewIndex;\n };\n /**\n * Retrieves the resource details based on the provided resource index.\n *\n * @param {number} index index of the resources at the last level.\n * @returns {ResourceDetails} Object An object holding the details of resource and resourceData.\n */\n Schedule.prototype.getResourcesByIndex = function (index) {\n if (this.resourceBase && this.resourceBase.lastResourceLevel) {\n if (index < 0 || index >= this.resourceBase.lastResourceLevel.length) {\n return undefined;\n }\n var data = this.resourceBase.lastResourceLevel[parseInt(index.toString(), 10)];\n var groupData = {};\n this.resourceBase.setResourceValues(groupData, index);\n return { resource: data.resource, resourceData: data.resourceData, groupData: groupData };\n }\n return undefined;\n };\n /**\n * This method allows to expand the resource that available on the scheduler.\n *\n * @function expandResource\n * @param {string | number} resourceId Accepts the resource id in either string or number type\n * @param {string} name Accepts the name of the resource collection\n * @returns {void}\n */\n Schedule.prototype.expandResource = function (resourceId, name) {\n if (this.activeView.isTimelineView() && this.resourceBase && this.resourceCollection.length > 1) {\n this.resourceBase.resourceExpand(resourceId, name, false);\n }\n };\n /**\n * This method allows to collapse the resource that available on the scheduler.\n *\n * @function collapseResource\n * @param {string | number} resourceId Accepts the resource id in either string or number type\n * @param {string} name Accepts the name of the resource collection\n * @returns {void}\n */\n Schedule.prototype.collapseResource = function (resourceId, name) {\n if (this.activeView.isTimelineView() && this.resourceBase && this.resourceCollection.length > 1) {\n this.resourceBase.resourceExpand(resourceId, name, true);\n }\n };\n /**\n * Scrolls the Schedule content area to the specified time.\n *\n * @function scrollTo\n * @param {string} hour Accepts the time value in the skeleton format of 'Hm'.\n * @param {Date} scrollDate Accepts the date object value.\n * @returns {void}\n */\n Schedule.prototype.scrollTo = function (hour, scrollDate) {\n if (this.activeView.scrollToDate && isNullOrUndefined(hour) && scrollDate) {\n this.activeView.scrollToDate(scrollDate);\n }\n else if (this.activeView.scrollToHour) {\n this.activeView.scrollToHour(hour, scrollDate);\n }\n };\n /**\n * This method allows scroll to the position of the any resources that available on the scheduler.\n * This method is applicable for without Agenda and Month agenda views of the schedule.\n *\n * @function scrollToResource\n * @param {string | number} resourceId Accepts the resource id in either string or number type\n * @param {string} groupName Accepts the name of the resource collection\n * @returns {void}\n */\n Schedule.prototype.scrollToResource = function (resourceId, groupName) {\n if (this.resourceBase && this.resourceBase.lastResourceLevel) {\n this.resourceBase.resourceScroll(resourceId, groupName);\n }\n };\n /**\n * Exports the Scheduler events to a calendar (.ics) file. By default, the calendar is exported with a file name `Calendar.ics`.\n * To change this file name on export, pass the custom string value as `fileName` to get the file downloaded with this provided name.\n *\n * @function exportToICalendar\n * @param {string} fileName Accepts the string value.\n * @param {Object[]} customData Accepts the collection of objects.\n * @returns {void}\n */\n Schedule.prototype.exportToICalendar = function (fileName, customData) {\n if (this.iCalendarExportModule) {\n this.iCalendarExportModule.initializeCalendarExport(fileName, customData);\n }\n else {\n throw Error('Inject ICalendarExport module');\n }\n };\n /**\n * Imports the events from an .ics file downloaded from any of the calendars like Google or Outlook into the Scheduler.\n * This method accepts the blob object or string format of an .ics file to be imported as a mandatory argument.\n *\n * @function importICalendar\n * @param {Blob | string} fileContent Accepts the file object or string format of an .ics file.\n * @returns {void}\n */\n Schedule.prototype.importICalendar = function (fileContent) {\n if (this.iCalendarImportModule) {\n this.iCalendarImportModule.initializeCalendarImport(fileContent);\n }\n else {\n throw Error('Inject ICalendarImport module');\n }\n };\n /**\n * Adds the newly created event into the Schedule dataSource.\n *\n * @function addEvent\n * @param {Object | Object[]} data Single or collection of event objects to be added into Schedule.\n * @returns {void}\n */\n Schedule.prototype.addEvent = function (data) {\n this.crudModule.addEvent(data);\n };\n /**\n * Generates the occurrences of a single recurrence event based on the provided event.\n *\n * @function generateEventOccurrences\n * @param {Object} event Accepts the parent recurrence event from which the occurrences are generated.\n * @param {Date} startDate Accepts the start date for the event occurrences. If not provided, the event's start date will be used.\n * @returns {Object[]} Returns the collection of occurrence event objects.\n */\n Schedule.prototype.generateEventOccurrences = function (event, startDate) {\n return (this.eventBase) ? this.eventBase.generateOccurrence(event, startDate) : [];\n };\n /**\n * Allows the Scheduler events data to be exported as an Excel file either in .xlsx or .csv file formats.\n * By default, the whole event collection bound to the Scheduler gets exported as an Excel file.\n * To export only the specific events of Scheduler, you need to pass the custom data collection as\n * a parameter to this `exportToExcel` method. This method accepts the export options as arguments such as fileName,\n * exportType, fields, customData, and includeOccurrences. The `fileName` denotes the name to be given for the exported\n * file and the `exportType` allows you to set the format of an Excel file to be exported either as .xlsx or .csv.\n * The custom or specific field collection of event dataSource to be exported can be provided through `fields` option\n * and the custom data collection can be exported by passing them through the `customData` option. There also exists\n * option to export each individual instances of the recurring events to an Excel file, by setting true or false to the\n * `includeOccurrences` option, denoting either to include or exclude the occurrences as separate instances on an exported Excel file.\n *\n * @function exportToExcel\n * @param {ExportOptions} excelExportOptions The export options to be set before start with exporting the Scheduler events to an Excel file.\n * @returns {void}\n */\n Schedule.prototype.exportToExcel = function (excelExportOptions) {\n if (this.excelExportModule) {\n this.excelExportModule.initializeExcelExport(excelExportOptions);\n }\n else {\n throw Error('Inject ExcelExport module');\n }\n };\n /**\n * Method allows to print the scheduler.\n *\n * @function print\n * @param {ScheduleModel} printOptions The export options to be set before start with exporting\n * the Scheduler events to the print window.\n * @returns {void}\n */\n Schedule.prototype.print = function (printOptions) {\n if (this.printModule) {\n this.printModule.print(printOptions);\n }\n else {\n throw Error('Inject Print module');\n }\n };\n /**\n * Updates the changes made in the event object by passing it as an parameter into the dataSource.\n *\n * @function saveEvent\n * @param {Object | Object[]} data Single or collection of event objects to be saved into Schedule.\n * @param {CurrentAction} currentAction Denotes the action that takes place either for editing occurrence or series.\n * The valid current action names are `EditOccurrence` or `EditSeries`.\n * @returns {void}\n */\n Schedule.prototype.saveEvent = function (data, currentAction) {\n this.crudModule.saveEvent(data, currentAction);\n };\n /**\n * Deletes the events based on the provided ID or event collection in the argument list.\n *\n * @function deleteEvent\n * @param {string | number | Object | Object[]} id Accepts the ID as string or number type or single or collection of the event object which needs to be removed from the Schedule.\n * @param {CurrentAction} currentAction Denotes the delete action that takes place either on occurrence or series events.\n * The valid current action names are `Delete`, `DeleteOccurrence` or `DeleteSeries`.\n * @returns {void}\n */\n Schedule.prototype.deleteEvent = function (id, currentAction) {\n this.crudModule.deleteEvent(id, currentAction);\n };\n /**\n * Retrieves the entire collection of events bound to the Schedule.\n *\n * @function getEvents\n * @param {Date} startDate Accepts the start date.\n * @param {Date} endDate Accepts te end date.\n * @param {boolean} includeOccurrences Accepts the boolean value to process the occurrence from recurrence series.\n * @returns {Object[]} Returns the collection of event objects from the Schedule.\n */\n Schedule.prototype.getEvents = function (startDate, endDate, includeOccurrences) {\n var eventCollections = [];\n if (includeOccurrences) {\n eventCollections = this.eventBase.getProcessedEvents();\n }\n else {\n eventCollections = this.eventsData;\n }\n if (startDate) {\n startDate = this.getDateTime(startDate);\n }\n if (endDate) {\n endDate = this.getDateTime(endDate);\n }\n eventCollections = this.eventBase.filterEventsByRange(eventCollections, startDate, endDate);\n return eventCollections;\n };\n /**\n * Retrieves the entire collection of block events bound to the Schedule.\n *\n * @function getBlockEvents\n * @param {Date} startDate Accepts the start date.\n * @param {Date} endDate Accepts te end date.\n * @param {boolean} includeOccurrences Accepts the boolean value to process the occurrence from recurrence series.\n * @returns {Object[]} Returns the collection of block event objects from the Schedule.\n */\n Schedule.prototype.getBlockEvents = function (startDate, endDate, includeOccurrences) {\n var eventCollections = [];\n if (includeOccurrences) {\n eventCollections = this.eventBase.getProcessedEvents(this.blockData);\n }\n else {\n eventCollections = this.blockData;\n }\n if (startDate) {\n startDate = this.getDateTime(startDate);\n }\n if (endDate) {\n endDate = this.getDateTime(endDate);\n }\n eventCollections = this.eventBase.filterEventsByRange(eventCollections, startDate, endDate);\n return eventCollections;\n };\n /**\n * Retrieves the occurrences of a single recurrence event based on the provided parent ID.\n *\n * @function getOccurrencesByID\n * @param {number} eventID ID of the parent recurrence data from which the occurrences are fetched.\n * @returns {Object[]} Returns the collection of occurrence event objects.\n */\n Schedule.prototype.getOccurrencesByID = function (eventID) {\n return this.eventBase.getOccurrencesByID(eventID);\n };\n /**\n * Retrieves all the occurrences that lies between the specific start and end time range.\n *\n * @function getOccurrencesByRange\n * @param {Date} startTime Denotes the start time range.\n * @param {Date} endTime Denotes the end time range.\n * @returns {Object[]} Returns the collection of occurrence event objects that lies between the provided start and end time.\n */\n Schedule.prototype.getOccurrencesByRange = function (startTime, endTime) {\n startTime = this.getDateTime(startTime);\n endTime = this.getDateTime(endTime);\n return this.eventBase.getOccurrencesByRange(startTime, endTime);\n };\n /**\n * Retrieves the dates that lies on active view of Schedule.\n *\n * @function getCurrentViewDates\n * @returns {Date[]} Returns the collection of dates.\n */\n Schedule.prototype.getCurrentViewDates = function () {\n return this.activeView ? this.activeView.renderDates : [];\n };\n /**\n * Set the recurrence editor instance from custom editor template.\n *\n * @function setRecurrenceEditor\n * @param {RecurrenceEditor} recurrenceEditor instance has passed to fetch the instance in event window.\n * @returns {void}\n */\n Schedule.prototype.setRecurrenceEditor = function (recurrenceEditor) {\n this.eventWindow.setRecurrenceEditor(recurrenceEditor);\n };\n /**\n * Get the maximum id of an event.\n *\n * @function getEventMaxID\n * @returns {number | string} Returns the maximum ID from scheduler data collections.\n */\n Schedule.prototype.getEventMaxID = function () {\n return this.eventBase.getEventMaxID();\n };\n /**\n * Get deleted occurrences from given recurrence series.\n *\n * @function getDeletedOccurrences\n * @param {string | number | Object} recurrenceData Accepts the parent ID of the event object or parent event object\n * @returns {Object[]} Returns the collection of deleted occurrence events.\n */\n Schedule.prototype.getDeletedOccurrences = function (recurrenceData) {\n return this.eventBase.getDeletedOccurrences(recurrenceData);\n };\n /**\n * Retrieves the events that lies on the current date range of the active view of Schedule.\n *\n * @function getCurrentViewEvents\n * @returns {Object[]} Returns the collection of events.\n */\n Schedule.prototype.getCurrentViewEvents = function () {\n return this.eventsProcessed;\n };\n /**\n * Refreshes the event dataSource. This method may be useful when the events alone in the schedule needs to be re-rendered.\n *\n * @function refreshEvents\n * @param {boolean} isRemoteRefresh Accepts the boolean to refresh data from remote or local\n * @returns {void}\n */\n Schedule.prototype.refreshEvents = function (isRemoteRefresh) {\n if (isRemoteRefresh === void 0) { isRemoteRefresh = true; }\n if (isRemoteRefresh) {\n if (this.dragAndDropModule) {\n this.dragAndDropModule.actionObj.action = '';\n removeClass([this.element], cls.EVENT_ACTION_CLASS);\n }\n this.crudModule.refreshDataManager();\n }\n else {\n if (this.uiStateValues) {\n this.uiStateValues.isPreventTimezone = true;\n }\n if (this.crudModule) {\n this.crudModule.refreshProcessedData();\n }\n if (this.uiStateValues) {\n this.uiStateValues.isPreventTimezone = false;\n }\n }\n };\n /**\n * Method to refresh the given Schedule templates\n *\n * @param {string} templateName Accepts the template name\n * @returns {void}\n */\n Schedule.prototype.refreshTemplates = function (templateName) {\n if (templateName) {\n this.resetTemplates([templateName]);\n }\n else {\n this.resetTemplates();\n }\n switch (templateName) {\n case 'eventTemplate':\n this.appointmentTemplateFn = this.templateParser(this.activeViewOptions.eventTemplate);\n this.refreshEvents(false);\n break;\n case 'dateHeaderTemplate':\n this.dateHeaderTemplateFn = this.templateParser(this.activeViewOptions.dateHeaderTemplate);\n this.activeView.refreshHeader();\n break;\n case 'dateRangeTemplate':\n this.dateRangeTemplateFn = this.templateParser(this.activeViewOptions.dateRangeTemplate);\n if (this.headerModule) {\n this.headerModule.refresh();\n }\n break;\n case 'resourceHeaderTemplate':\n this.resourceHeaderTemplateFn = this.templateParser(this.activeViewOptions.resourceHeaderTemplate);\n if (this.activeView.isTimelineView()) {\n this.activeView.refreshResourceHeader();\n }\n else {\n this.activeView.refreshHeader();\n }\n break;\n case 'quickInfoTemplates':\n if (this.quickPopup) {\n this.quickPopup.destroy();\n this.quickPopup = null;\n }\n this.quickPopup = new QuickPopups(this);\n this.quickInfoTemplatesHeaderFn = this.templateParser(this.quickInfoTemplates.header);\n this.quickInfoTemplatesContentFn = this.templateParser(this.quickInfoTemplates.content);\n this.quickInfoTemplatesFooterFn = this.templateParser(this.quickInfoTemplates.footer);\n break;\n case 'editorTemplate':\n if (this.eventWindow) {\n this.eventWindow.destroy();\n this.eventWindow = null;\n }\n this.eventWindow = new EventWindow(this);\n this.editorTemplateFn = this.templateParser(this.editorTemplate);\n break;\n case 'tooltipTemplate':\n case 'headerTooltipTemplate':\n if (this.eventTooltip) {\n this.eventTooltip.destroy();\n this.eventTooltip = null;\n }\n this.eventTooltip = new EventTooltip(this);\n this.eventTooltipTemplateFn = this.templateParser(this.eventSettings.tooltipTemplate);\n this.headerTooltipTemplateFn = this.templateParser(this.activeViewOptions.group.headerTooltipTemplate);\n break;\n default:\n this.initializeView(this.currentView);\n break;\n }\n };\n /**\n * Refreshes the Schedule layout without re-render.\n *\n * @function refreshLayout\n * @returns {void}\n */\n Schedule.prototype.refreshLayout = function () {\n this.onScheduleResize();\n if (this.headerModule) {\n this.headerModule.refresh();\n }\n if (this.eventWindow) {\n this.eventWindow.refresh();\n }\n };\n /**\n * To retrieve the appointment object from element.\n *\n * @function getEventDetails\n * @param {Element} element Denotes the event UI element on the Schedule.\n * @returns {Object} Returns the event details.\n */\n Schedule.prototype.getEventDetails = function (element) {\n element = getElement(element);\n var guid = element.getAttribute('data-guid');\n if (guid) {\n return this.eventBase.getEventByGuid(guid);\n }\n return {};\n };\n /**\n * To check whether the given time range slots are available for event creation or already occupied by other events.\n *\n * @function isSlotAvailable\n * @param {Date | Object} startTime Denotes the start time of the slot.\n * @param {Date} endTime Denotes the end time of the slot.\n * @param {number} groupIndex Defines the resource index from last level.\n * @returns {boolean} Returns true, if the slot that lies in the provided time range does not contain any other events.\n */\n Schedule.prototype.isSlotAvailable = function (startTime, endTime, groupIndex) {\n var _this = this;\n var eventStart;\n var eventEnd;\n var eventObj = this.activeEventData.event;\n if (startTime instanceof Date || typeof (startTime) === 'string') {\n eventStart = startTime;\n eventEnd = endTime;\n }\n else {\n eventObj = startTime;\n eventStart = startTime[this.eventFields.startTime];\n eventEnd = startTime[this.eventFields.endTime];\n if (this.resourceBase) {\n groupIndex = this.eventBase.getGroupIndexFromEvent(startTime);\n }\n }\n if (isNullOrUndefined(eventStart) || isNullOrUndefined(eventEnd)) {\n return true;\n }\n eventStart = this.getDateTime(eventStart);\n eventEnd = this.getDateTime(eventEnd);\n var eventCollection = this.eventBase.filterEvents(eventStart, eventEnd);\n if (!isNullOrUndefined(groupIndex) && this.resourceBase && this.resourceBase.lastResourceLevel.length > 0) {\n eventCollection =\n this.eventBase.filterEventsByResource(this.resourceBase.lastResourceLevel[parseInt(groupIndex.toString(), 10)], eventCollection);\n }\n if (eventObj) {\n if (eventObj.Guid) {\n eventCollection = eventCollection.filter(function (event) { return event.Guid !== eventObj.Guid; });\n }\n else {\n eventCollection = eventCollection.filter(function (event) {\n return event[_this.eventFields.id] !== eventObj[_this.eventFields.id];\n });\n }\n }\n return (eventCollection.length > 0) ? false : true;\n };\n /**\n * To manually open the event editor on specific time or on certain events.\n *\n * @function openEditor\n * @param {Object} data It can be either cell data or event data.\n * @param {CurrentAction} action Defines the action for which the editor needs to be opened such as either for new event creation or\n * for editing of existing events. The applicable action names that can be used here are `Add`, `Save`, `EditOccurrence`\n * and `EditSeries`.\n * @param {boolean} isEventData It allows to decide whether the editor needs to be opened with the clicked cell details or with the\n * passed event details.\n * @param {number} repeatType It opens the editor with the recurrence options based on the provided repeat type.\n * @returns {void}\n */\n Schedule.prototype.openEditor = function (data, action, isEventData, repeatType) {\n if (action === 'Add' && !isEventData) {\n data.startTime = this.getDateTime(data.startTime);\n data.endTime = this.getDateTime(data.endTime);\n if (!isNullOrUndefined(data.element)) {\n data.element = getElement(data.element);\n }\n }\n else {\n data[this.eventFields.startTime] = this.getDateTime(data[this.eventFields.startTime]);\n data[this.eventFields.endTime] = this.getDateTime(data[this.eventFields.endTime]);\n }\n this.currentAction = action;\n if (action !== 'Add') {\n this.activeEventData.event = data;\n }\n this.eventWindow.openEditor(data, action, isEventData, repeatType);\n };\n /**\n * To manually close the event editor window\n *\n * @function closeEditor\n * @returns {void}\n */\n Schedule.prototype.closeEditor = function () {\n if (this.eventWindow) {\n this.eventWindow.dialogClose();\n }\n };\n /**\n * To manually open the quick info popup based on cell or event details.\n *\n * @param {object} data Defines the cell or event data. If the data contains valid ID, it will open event quick info popup,\n * otherwise cell quick info popup displayed.\n * @returns {void}\n */\n Schedule.prototype.openQuickInfoPopup = function (data) {\n var _this = this;\n if (this.currentView === 'Year' || isNullOrUndefined(data)) {\n return;\n }\n if (isNullOrUndefined(data[this.eventFields.id])) {\n if (this.currentView === 'Agenda' || this.currentView === 'MonthAgenda' || isNullOrUndefined(this.activeView)) {\n return;\n }\n var cellData = {\n startTime: this.activeCellsData.startTime = this.getDateTime(data[this.eventFields.startTime]),\n endTime: this.activeCellsData.endTime = this.getDateTime(data[this.eventFields.endTime]),\n isAllDay: this.activeCellsData.isAllDay =\n !isNullOrUndefined(data[this.eventFields.isAllDay]) ? data[this.eventFields.isAllDay] : false\n };\n var startTime = this.activeView.getAdjustedDate(new Date(cellData.startTime));\n if (startTime) {\n var query = '.' + cls.WORK_CELLS_CLASS + '[data-date=\"' + startTime.getTime() + '\"]';\n if (this.activeViewOptions.group.resources.length > 0 && !this.uiStateValues.isGroupAdaptive\n && this.resourceBase && this.eventBase) {\n cellData.groupIndex = this.eventBase.getGroupIndexFromEvent(data);\n query = '.' + cls.WORK_CELLS_CLASS + '[data-date=\"' + startTime.getTime() + '\"][data-group-index=\"' + cellData.groupIndex + '\"]';\n }\n var workCell = this.element.querySelector(query);\n if (workCell) {\n workCell.focus();\n cellData.element = workCell;\n this.notify(events.cellClick, cellData);\n }\n }\n }\n else {\n var app = this.getCurrentViewEvents().filter(function (item) {\n return data[_this.eventFields.id] === item[_this.eventFields.id];\n });\n if (app.length <= 0) {\n return;\n }\n var selectEvent = app[0];\n if (data[this.eventFields.recurrenceRule]) {\n var occurence = app.filter(function (x) {\n return x[_this.eventFields.startTime].getTime() === data[_this.eventFields.startTime].getTime();\n });\n if (occurence.length > 0) {\n selectEvent = occurence[0];\n }\n }\n var element = this.element.querySelector('div[data-guid=\"' + selectEvent.Guid + '\"]');\n if (element) {\n this.eventBase.removeSelectedAppointmentClass();\n this.eventBase.addSelectedAppointments([element], false);\n this.activeEventData = { event: selectEvent, element: element };\n if (this.currentView === 'Agenda' || this.currentView === 'MonthAgenda') {\n addClass([this.activeEventData.element], cls.AGENDA_SELECTED_CELL);\n }\n this.notify(events.eventClick, this.activeEventData);\n }\n }\n };\n /**\n * To manually close the quick info popup\n *\n * @function closeQuickInfoPopup\n * @returns {void}\n */\n Schedule.prototype.closeQuickInfoPopup = function () {\n if (this.quickPopup) {\n this.quickPopup.quickPopupHide(true);\n }\n };\n /**\n * Closes the tooltip.\n * For example, when the context menu is opened for an event,\n * the tooltip can be closed by calling this method.\n *\n * @function closeTooltip\n * @returns {void}\n */\n Schedule.prototype.closeTooltip = function () {\n if (this.eventTooltip) {\n this.eventTooltip.close();\n }\n };\n /**\n * Select the resource based on group index in mobile mode.\n *\n * @param {number} groupIndex Defines the resource index based on last level.\n * @returns {void}\n */\n Schedule.prototype.selectResourceByIndex = function (groupIndex) {\n if (this.resourceBase && this.uiStateValues.isGroupAdaptive) {\n this.resourceBase.selectResourceByIndex(groupIndex);\n }\n };\n /**\n * Select the resources to the based on id.\n *\n * @param {string | number} id id of the resource defined in resources collection.\n * @param {string} name Name of the resource defined in resources collection.\n * @returns {number} Returns the group index\n */\n Schedule.prototype.getIndexFromResourceId = function (id, name) {\n if (this.resourceBase) {\n return this.resourceBase.getIndexFromResourceId(id, name);\n }\n return null;\n };\n /**\n * Adds the resources to the specified index.\n *\n * @param {Object | Object[]} resources Accepts the resource data in single or collection of data.\n * @param {string} name Name of the resource defined in resources collection.\n * @param {number} index Index or position where the resource should be added.\n * @returns {void}\n */\n Schedule.prototype.addResource = function (resources, name, index) {\n this.resourceBase.addResource(resources, name, index);\n };\n /**\n * Removes the specified resource.\n *\n * @param {string | string[] | number | number[]} resourceId Specifies the resource id to be removed.\n * @param {string} name Specifies the resource name from which the id should be referred.\n * @returns {void}\n */\n Schedule.prototype.removeResource = function (resourceId, name) {\n this.resourceBase.removeResource(resourceId, name);\n };\n /**\n * Destroys the Schedule component.\n *\n * @function destroy\n * @returns {void}\n */\n Schedule.prototype.destroy = function () {\n if (this.eventTooltip) {\n this.eventTooltip.destroy();\n this.eventTooltip = null;\n }\n this.destroyPopups();\n this.hideSpinner();\n this.unWireEvents();\n this.destroyHeaderModule();\n if (this.eventBase) {\n this.eventBase.destroy();\n this.eventBase = null;\n }\n if (this.workCellAction) {\n this.workCellAction.destroy();\n this.workCellAction = null;\n }\n if (this.inlineModule) {\n this.inlineModule.destroy();\n this.inlineModule = null;\n }\n if (this.keyboardInteractionModule) {\n this.keyboardInteractionModule.destroy();\n this.keyboardInteractionModule = null;\n }\n if (this.scrollModule) {\n this.scrollModule.destroy();\n this.scrollModule = null;\n }\n if (this.printModule) {\n this.printModule.destroy();\n }\n if (this.activeView) {\n this.resetTemplates();\n this.activeView.removeEventListener();\n this.activeView.destroy();\n this.activeView = null;\n }\n if (this.scheduleTouchModule) {\n this.scheduleTouchModule.destroy();\n this.scheduleTouchModule = null;\n }\n if (this.crudModule) {\n this.crudModule.destroy();\n this.crudModule = null;\n }\n if (this.dataModule) {\n this.dataModule.destroy();\n this.dataModule = null;\n }\n _super.prototype.destroy.call(this);\n var modules = [\n 'dayModule', 'weekModule', 'workWeekModule', 'monthModule', 'monthAgendaModule', 'yearModule', 'agendaModule',\n 'timelineViewsModule', 'timelineMonthModule', 'timelineYearModule', 'resizeModule', 'dragAndDropModule',\n 'excelExportModule', 'printModule', 'iCalendarExportModule', 'iCalendarImportModule', 'tzModule', 'eventsData',\n 'eventsProcessed', 'blockData', 'blockProcessed', 'uiStateValues', 'viewCollections', 'viewOptions', 'defaultLocale',\n 'localeObj', 'selectedElements', 'resourceCollection', 'editorTitles', 'eventFields', 'activeViewOptions',\n 'activeEventData', 'activeCellsData', 'renderModule'\n ];\n for (var _i = 0, modules_1 = modules; _i < modules_1.length; _i++) {\n var module = modules_1[_i];\n this[\"\" + module] = null;\n }\n util.removeChildren(this.element);\n var removeClasses = [cls.ROOT, cls.RTL, cls.DEVICE_CLASS, cls.MULTI_DRAG];\n if (this.cssClass) {\n removeClasses = removeClasses.concat(this.cssClass.split(' '));\n }\n removeClass([this.element], removeClasses);\n };\n __decorate([\n Property('auto')\n ], Schedule.prototype, \"width\", void 0);\n __decorate([\n Property('auto')\n ], Schedule.prototype, \"height\", void 0);\n __decorate([\n Property(true)\n ], Schedule.prototype, \"showHeaderBar\", void 0);\n __decorate([\n Property(true)\n ], Schedule.prototype, \"showTimeIndicator\", void 0);\n __decorate([\n Property(true)\n ], Schedule.prototype, \"allowSwiping\", void 0);\n __decorate([\n Property('Week')\n ], Schedule.prototype, \"currentView\", void 0);\n __decorate([\n Property(['Day', 'Week', 'WorkWeek', 'Month', 'Agenda'])\n ], Schedule.prototype, \"views\", void 0);\n __decorate([\n Property(new Date())\n ], Schedule.prototype, \"selectedDate\", void 0);\n __decorate([\n Property(new Date(1900, 0, 1))\n ], Schedule.prototype, \"minDate\", void 0);\n __decorate([\n Property(new Date(2099, 11, 31))\n ], Schedule.prototype, \"maxDate\", void 0);\n __decorate([\n Property()\n ], Schedule.prototype, \"dateFormat\", void 0);\n __decorate([\n Property('Gregorian')\n ], Schedule.prototype, \"calendarMode\", void 0);\n __decorate([\n Property(true)\n ], Schedule.prototype, \"showWeekend\", void 0);\n __decorate([\n Property(0)\n ], Schedule.prototype, \"firstDayOfWeek\", void 0);\n __decorate([\n Property('FirstDay')\n ], Schedule.prototype, \"weekRule\", void 0);\n __decorate([\n Property([1, 2, 3, 4, 5])\n ], Schedule.prototype, \"workDays\", void 0);\n __decorate([\n Property(12)\n ], Schedule.prototype, \"monthsCount\", void 0);\n __decorate([\n Property('00:00')\n ], Schedule.prototype, \"startHour\", void 0);\n __decorate([\n Property('24:00')\n ], Schedule.prototype, \"endHour\", void 0);\n __decorate([\n Property(null)\n ], Schedule.prototype, \"timeFormat\", void 0);\n __decorate([\n Property(true)\n ], Schedule.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Property(false)\n ], Schedule.prototype, \"enableAllDayScroll\", void 0);\n __decorate([\n Property(false)\n ], Schedule.prototype, \"enableAdaptiveUI\", void 0);\n __decorate([\n Property(true)\n ], Schedule.prototype, \"allowResizing\", void 0);\n __decorate([\n Complex({}, WorkHours)\n ], Schedule.prototype, \"workHours\", void 0);\n __decorate([\n Complex({}, TimeScale)\n ], Schedule.prototype, \"timeScale\", void 0);\n __decorate([\n Property(true)\n ], Schedule.prototype, \"allowKeyboardInteraction\", void 0);\n __decorate([\n Property(true)\n ], Schedule.prototype, \"allowDragAndDrop\", void 0);\n __decorate([\n Property()\n ], Schedule.prototype, \"dateHeaderTemplate\", void 0);\n __decorate([\n Property()\n ], Schedule.prototype, \"dateRangeTemplate\", void 0);\n __decorate([\n Property()\n ], Schedule.prototype, \"cellHeaderTemplate\", void 0);\n __decorate([\n Property()\n ], Schedule.prototype, \"dayHeaderTemplate\", void 0);\n __decorate([\n Property()\n ], Schedule.prototype, \"monthHeaderTemplate\", void 0);\n __decorate([\n Property()\n ], Schedule.prototype, \"cellTemplate\", void 0);\n __decorate([\n Property(false)\n ], Schedule.prototype, \"readonly\", void 0);\n __decorate([\n Property(true)\n ], Schedule.prototype, \"showQuickInfo\", void 0);\n __decorate([\n Property(false)\n ], Schedule.prototype, \"allowInline\", void 0);\n __decorate([\n Property(true)\n ], Schedule.prototype, \"allowMultiCellSelection\", void 0);\n __decorate([\n Property(true)\n ], Schedule.prototype, \"allowMultiRowSelection\", void 0);\n __decorate([\n Property(false)\n ], Schedule.prototype, \"quickInfoOnSelectionEnd\", void 0);\n __decorate([\n Property(false)\n ], Schedule.prototype, \"showWeekNumber\", void 0);\n __decorate([\n Property(false)\n ], Schedule.prototype, \"rowAutoHeight\", void 0);\n __decorate([\n Property(false)\n ], Schedule.prototype, \"allowMultiDrag\", void 0);\n __decorate([\n Property(0)\n ], Schedule.prototype, \"firstMonthOfYear\", void 0);\n __decorate([\n Property()\n ], Schedule.prototype, \"editorTemplate\", void 0);\n __decorate([\n Complex({}, QuickInfoTemplates)\n ], Schedule.prototype, \"quickInfoTemplates\", void 0);\n __decorate([\n Property(7)\n ], Schedule.prototype, \"agendaDaysCount\", void 0);\n __decorate([\n Property(true)\n ], Schedule.prototype, \"hideEmptyAgendaDays\", void 0);\n __decorate([\n Property(true)\n ], Schedule.prototype, \"enableRecurrenceValidation\", void 0);\n __decorate([\n Property()\n ], Schedule.prototype, \"timezone\", void 0);\n __decorate([\n Complex({}, EventSettings)\n ], Schedule.prototype, \"eventSettings\", void 0);\n __decorate([\n Property(timezoneData)\n ], Schedule.prototype, \"timezoneDataSource\", void 0);\n __decorate([\n Property()\n ], Schedule.prototype, \"resourceHeaderTemplate\", void 0);\n __decorate([\n Property()\n ], Schedule.prototype, \"headerIndentTemplate\", void 0);\n __decorate([\n Complex({}, Group)\n ], Schedule.prototype, \"group\", void 0);\n __decorate([\n Collection([], Resources)\n ], Schedule.prototype, \"resources\", void 0);\n __decorate([\n Collection([], HeaderRows)\n ], Schedule.prototype, \"headerRows\", void 0);\n __decorate([\n Property()\n ], Schedule.prototype, \"cssClass\", void 0);\n __decorate([\n Property()\n ], Schedule.prototype, \"eventDragArea\", void 0);\n __decorate([\n Event()\n ], Schedule.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], Schedule.prototype, \"destroyed\", void 0);\n __decorate([\n Event()\n ], Schedule.prototype, \"cellClick\", void 0);\n __decorate([\n Event()\n ], Schedule.prototype, \"cellDoubleClick\", void 0);\n __decorate([\n Event()\n ], Schedule.prototype, \"moreEventsClick\", void 0);\n __decorate([\n Event()\n ], Schedule.prototype, \"hover\", void 0);\n __decorate([\n Event()\n ], Schedule.prototype, \"select\", void 0);\n __decorate([\n Event()\n ], Schedule.prototype, \"actionBegin\", void 0);\n __decorate([\n Event()\n ], Schedule.prototype, \"actionComplete\", void 0);\n __decorate([\n Event()\n ], Schedule.prototype, \"actionFailure\", void 0);\n __decorate([\n Event()\n ], Schedule.prototype, \"navigating\", void 0);\n __decorate([\n Event()\n ], Schedule.prototype, \"renderCell\", void 0);\n __decorate([\n Event()\n ], Schedule.prototype, \"eventClick\", void 0);\n __decorate([\n Event()\n ], Schedule.prototype, \"eventRendered\", void 0);\n __decorate([\n Event()\n ], Schedule.prototype, \"dataBinding\", void 0);\n __decorate([\n Event()\n ], Schedule.prototype, \"popupOpen\", void 0);\n __decorate([\n Event()\n ], Schedule.prototype, \"popupClose\", void 0);\n __decorate([\n Event()\n ], Schedule.prototype, \"dragStart\", void 0);\n __decorate([\n Event()\n ], Schedule.prototype, \"drag\", void 0);\n __decorate([\n Event()\n ], Schedule.prototype, \"dragStop\", void 0);\n __decorate([\n Event()\n ], Schedule.prototype, \"resizeStart\", void 0);\n __decorate([\n Event()\n ], Schedule.prototype, \"resizing\", void 0);\n __decorate([\n Event()\n ], Schedule.prototype, \"resizeStop\", void 0);\n __decorate([\n Event()\n ], Schedule.prototype, \"dataBound\", void 0);\n Schedule = __decorate([\n NotifyPropertyChanges\n ], Schedule);\n return Schedule;\n}(Component));\nexport { Schedule };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { Schedule } from '@syncfusion/ej2-schedule';\nimport { ComponentBase, applyMixins } from '@syncfusion/ej2-react-base';\n/**\n * `ScheduleComponent` represents the react Schedule.\n * ```tsx\n * \n * ```\n */\nvar ScheduleComponent = /** @class */ (function (_super) {\n __extends(ScheduleComponent, _super);\n function ScheduleComponent(props) {\n var _this = _super.call(this, props) || this;\n _this.initRenderCalled = false;\n _this.checkInjectedModules = true;\n _this.directivekeys = { 'views': 'view', 'resources': 'resource', 'headerRows': 'headerRow' };\n _this.statelessTemplateProps = null;\n _this.templateProps = null;\n _this.immediateRender = false;\n _this.portals = [];\n return _this;\n }\n ScheduleComponent.prototype.render = function () {\n if (((this.element && !this.initRenderCalled) || this.refreshing) && !this.isReactForeceUpdate) {\n _super.prototype.render.call(this);\n this.initRenderCalled = true;\n }\n else {\n return React.createElement('div', this.getDefaultAttributes(), [].concat(this.props.children, this.portals));\n }\n };\n return ScheduleComponent;\n}(Schedule));\nexport { ScheduleComponent };\napplyMixins(ScheduleComponent, [ComponentBase, React.Component]);\n","import { createElement, append, prepend, isNullOrUndefined, getValue, getDefaultDateObject, cldrData, addClass, setStyleAttribute, formatUnit, EventHandler, remove } from '@syncfusion/ej2-base';\nimport * as cls from '../base/css-constant';\nimport * as event from '../base/constant';\nimport * as util from '../base/util';\n/**\n * view base\n */\nvar ViewBase = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param {Schedule} parent Accepts the schedule instance\n */\n function ViewBase(parent) {\n this.previousNextAction = 'next';\n this.parent = parent;\n }\n ViewBase.prototype.isTimelineView = function () {\n return this.parent.currentView.indexOf('Timeline') !== -1;\n };\n ViewBase.prototype.getContentRows = function () {\n return [];\n };\n ViewBase.prototype.refreshHeader = function () {\n // Method to refresh the date header\n };\n ViewBase.prototype.refreshResourceHeader = function () {\n remove(this.element.querySelector('tbody').lastElementChild.firstElementChild);\n var resTd = createElement('td');\n resTd.appendChild(this.parent.resourceBase.createResourceColumn());\n prepend([resTd], this.element.querySelector('tbody').lastElementChild);\n this.parent.notify(event.contentReady, {});\n };\n ViewBase.prototype.getDayName = function (date) {\n return this.parent.getDayNames('abbreviated')[date.getDay()];\n };\n ViewBase.prototype.getDate = function (date) {\n return this.parent.globalize.formatDate(date, { format: 'd', calendar: this.parent.getCalendarMode() });\n };\n ViewBase.prototype.getTime = function (date) {\n if (this.parent.isAdaptive) {\n if (this.parent.activeViewOptions.timeFormat === 'HH:mm' || this.parent.activeViewOptions.timeFormat === 'HH.mm') {\n return this.parent.globalize.formatDate(date, { format: 'H', calendar: this.parent.getCalendarMode() });\n }\n return this.parent.globalize.formatDate(date, { skeleton: 'h', calendar: this.parent.getCalendarMode() });\n }\n return this.parent.getTimeString(date);\n };\n ViewBase.prototype.getTimelineDate = function (date) {\n var text = this.parent.globalize.formatDate(date, { skeleton: 'MMMd', calendar: this.parent.getCalendarMode() }) + ', ' +\n this.parent.getDayNames('wide')[date.getDay()];\n return util.capitalizeFirstWord(text, 'multiple');\n };\n ViewBase.prototype.createEventTable = function (trCount) {\n var eventTable = createElement('div', { className: cls.EVENT_TABLE_CLASS });\n append(this.getEventRows(trCount), eventTable);\n return eventTable;\n };\n ViewBase.prototype.getEventRows = function (trCount) {\n var eventRows = [];\n var eventContainer;\n for (var row = 0; row < trCount; row++) {\n eventContainer = createElement('div', { className: cls.APPOINTMENT_CONTAINER_CLASS });\n if (this.parent.resourceBase && !this.parent.uiStateValues.isGroupAdaptive && this.parent.resourceBase.renderedResources) {\n eventContainer.setAttribute('data-group-index', this.parent.resourceBase.renderedResources[parseInt(row.toString(), 10)].groupIndex.toString());\n }\n eventRows.push(eventContainer);\n }\n return eventRows;\n };\n ViewBase.prototype.collapseRows = function (wrap) {\n if (this.parent.activeViewOptions.group.resources.length > 0 && !this.parent.uiStateValues.isGroupAdaptive) {\n this.parent.resourceBase.hideResourceRows(wrap.querySelector('tbody'));\n this.parent.resourceBase.hideResourceRows(wrap.querySelector('.' + cls.EVENT_TABLE_CLASS));\n }\n };\n ViewBase.prototype.createTableLayout = function (className) {\n var clsName = className || '';\n var table = createElement('table', { className: cls.SCHEDULE_TABLE_CLASS + ' ' + clsName });\n var tbody = createElement('tbody');\n table.appendChild(tbody);\n return table;\n };\n ViewBase.prototype.setAriaAttributes = function (table) {\n table.setAttribute('role', 'grid');\n table.setAttribute('aria-label', this.getLabelText(this.parent.currentView));\n };\n ViewBase.prototype.createColGroup = function (table, lastRow) {\n var length = lastRow.length;\n if (lastRow[0] && lastRow[0].colSpan) {\n length = lastRow.map(function (value) { return value.colSpan; }).reduce(function (prev, next) { return prev + next; });\n }\n var colGroupEle = createElement('colgroup');\n for (var i = 0; i < length; i++) {\n colGroupEle.appendChild(createElement('col'));\n }\n prepend([colGroupEle], table);\n };\n ViewBase.prototype.getScrollXIndent = function (content) {\n return content.offsetHeight - content.clientHeight > 0 ? util.getScrollBarWidth() : 0;\n };\n ViewBase.prototype.scrollTopPanel = function (target) {\n this.getDatesHeaderElement().firstElementChild.scrollLeft = target.scrollLeft;\n };\n ViewBase.prototype.scrollHeaderLabels = function (target) {\n var headerTable = this.element.querySelector('.e-date-header-wrap table');\n var colWidth = headerTable.offsetWidth / headerTable.querySelectorAll('colgroup col').length;\n var applyLeft = function (headerCells, isRtl) {\n var currentCell;\n var tdLeft = 0;\n var colSpan = 0;\n var hiddenLeft = isRtl ? -(target.scrollLeft) : target.scrollLeft;\n for (var _i = 0, headerCells_2 = headerCells; _i < headerCells_2.length; _i++) {\n var cell = headerCells_2[_i];\n colSpan += parseInt(cell.getAttribute('colSpan'), 10);\n if (colSpan > Math.floor(hiddenLeft / colWidth)) {\n currentCell = cell;\n break;\n }\n tdLeft += cell.offsetWidth;\n }\n if (!isNullOrUndefined(currentCell)) {\n currentCell.children[0].style[isRtl ? 'right' : 'left'] = (hiddenLeft - tdLeft) + 'px';\n }\n };\n var classNames = ['.e-header-year-cell', '.e-header-month-cell', '.e-header-week-cell', '.e-header-cells'];\n for (var _i = 0, classNames_1 = classNames; _i < classNames_1.length; _i++) {\n var className = classNames_1[_i];\n var headerCells = [].slice.call(this.element.querySelectorAll(className));\n if (headerCells.length > 0) {\n for (var _a = 0, headerCells_1 = headerCells; _a < headerCells_1.length; _a++) {\n var element = headerCells_1[_a];\n element.children[0].style[this.parent.enableRtl ? 'right' : 'left'] = '';\n }\n applyLeft(headerCells, this.parent.enableRtl);\n }\n }\n };\n ViewBase.prototype.addAttributes = function (td, element) {\n if (td.template) {\n append(td.template, element);\n }\n if (td.colSpan) {\n element.setAttribute('colspan', td.colSpan.toString());\n }\n if (td.className) {\n addClass([element], td.className);\n }\n };\n ViewBase.prototype.getHeaderBarHeight = function () {\n var headerBarHeight = 2;\n if (this.parent.headerModule) {\n headerBarHeight += util.getOuterHeight(this.parent.headerModule.getHeaderElement());\n }\n if (this.parent.uiStateValues.isGroupAdaptive) {\n var resHeader = this.parent.element.querySelector('.' + cls.RESOURCE_HEADER_TOOLBAR);\n if (resHeader) {\n headerBarHeight += resHeader.offsetHeight;\n }\n }\n return headerBarHeight;\n };\n ViewBase.prototype.renderPanel = function (type) {\n if (type === cls.PREVIOUS_PANEL_CLASS) {\n prepend([this.element], this.parent.element.querySelector('.' + cls.TABLE_CONTAINER_CLASS));\n }\n else {\n this.parent.element.querySelector('.' + cls.TABLE_CONTAINER_CLASS).appendChild(this.element);\n }\n };\n ViewBase.prototype.setPanel = function (panel) {\n this.element = panel;\n };\n ViewBase.prototype.getPanel = function () {\n return this.element;\n };\n ViewBase.prototype.getDatesHeaderElement = function () {\n return this.element.querySelector('.' + cls.DATE_HEADER_CONTAINER_CLASS);\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n ViewBase.prototype.getDateSlots = function (renderDates, workDays) {\n return []; // Here getDateSlots only need in vertical and month views\n };\n ViewBase.prototype.generateColumnLevels = function () {\n return []; // Here generateColumnLevels only need in vertical and month views\n };\n ViewBase.prototype.getColumnLevels = function () {\n return this.colLevels;\n };\n ViewBase.prototype.highlightCurrentTime = function () {\n // Here showTimeIndicator functionalities\n };\n ViewBase.prototype.getStartDate = function () {\n return this.renderDates[0];\n };\n ViewBase.prototype.getEndDate = function () {\n return this.renderDates[this.renderDates.length - 1];\n };\n ViewBase.prototype.startDate = function () {\n return this.renderDates[0];\n };\n ViewBase.prototype.endDate = function () {\n return util.addDays(this.renderDates[this.renderDates.length - 1], 1);\n };\n ViewBase.prototype.getStartHour = function () {\n var startHour = this.parent.getStartEndTime(this.parent.activeViewOptions.startHour);\n if (isNullOrUndefined(startHour)) {\n startHour = new Date(2000, 0, 0, 0);\n }\n return startHour;\n };\n ViewBase.prototype.getEndHour = function () {\n var endHour = this.parent.getStartEndTime(this.parent.activeViewOptions.endHour);\n if (isNullOrUndefined(endHour)) {\n endHour = new Date(2000, 0, 0, 0);\n }\n return endHour;\n };\n ViewBase.prototype.isCurrentDate = function (date) {\n return date.setHours(0, 0, 0, 0) === new Date(this.parent.currentTimezoneDate).setHours(0, 0, 0, 0);\n };\n ViewBase.prototype.isCurrentMonth = function (date) {\n if (this.parent.activeViewOptions.displayDate || this.parent.activeViewOptions.numberOfWeeks > 0) {\n return this.parent.activeView.getStartDate().getTime() <= this.parent.getCurrentTime().getTime() &&\n this.parent.activeView.getEndDate().getTime() >= this.parent.getCurrentTime().getTime();\n }\n return date.getFullYear() ===\n this.parent.getCurrentTime().getFullYear() && date.getMonth() === this.parent.getCurrentTime().getMonth();\n };\n ViewBase.prototype.isWorkDay = function (date, workDays) {\n if (workDays === void 0) { workDays = this.parent.activeViewOptions.workDays; }\n if (workDays.indexOf(date.getDay()) >= 0) {\n return true;\n }\n return false;\n };\n ViewBase.prototype.isWorkHour = function (date, startHour, endHour, workDays) {\n if (isNullOrUndefined(startHour) || isNullOrUndefined(endHour)) {\n return false;\n }\n startHour.setMilliseconds(0);\n endHour.setMilliseconds(0);\n return !(util.getDateInMs(date) < util.getDateInMs(startHour) || util.getDateInMs(date) >= util.getDateInMs(endHour) ||\n !this.isWorkDay(date, workDays));\n };\n ViewBase.prototype.getRenderDates = function (workDays) {\n var renderDates = [];\n // Due to same code for vertical and time line, week & work week views, if condition has used\n if (this.parent.currentView === 'Week' || this.parent.currentView === 'TimelineWeek') {\n var selectedDate = util.resetTime(this.parent.selectedDate);\n var start = util.getWeekFirstDate(selectedDate, this.parent.activeViewOptions.firstDayOfWeek);\n for (var i = 0, length_1 = util.WEEK_LENGTH * this.parent.activeViewOptions.interval; i < length_1; i++) {\n if (this.parent.activeViewOptions.showWeekend) {\n renderDates.push(start);\n }\n else {\n if (this.isWorkDay(start, workDays)) {\n renderDates.push(start);\n }\n }\n start = util.addDays(start, 1);\n }\n }\n else if (this.parent.currentView === 'WorkWeek' || this.parent.currentView === 'TimelineWorkWeek') {\n var start = util.getWeekFirstDate(util.resetTime(this.parent.selectedDate), this.parent.activeViewOptions.firstDayOfWeek);\n for (var i = 0, length_2 = util.WEEK_LENGTH * this.parent.activeViewOptions.interval; i < length_2; i++) {\n if (this.isWorkDay(start, workDays)) {\n renderDates.push(start);\n }\n start = util.addDays(start, 1);\n }\n }\n else {\n var dayCount = this.parent.currentView === 'Agenda' ? this.parent.agendaDaysCount :\n this.parent.activeViewOptions.interval;\n var start = util.resetTime(this.parent.selectedDate);\n do {\n if (this.parent.activeViewOptions.showWeekend) {\n renderDates.push(start);\n }\n else {\n if (this.isWorkDay(start, workDays)) {\n renderDates.push(start);\n }\n }\n start = util.addDays(start, 1);\n } while (dayCount !== renderDates.length);\n }\n if (!workDays) {\n this.renderDates = renderDates;\n }\n if (this.parent.headerModule) {\n this.parent.headerModule.previousNextIconHandler();\n }\n return renderDates;\n };\n ViewBase.prototype.getNextPreviousDate = function (type) {\n this.previousNextAction = type;\n if (this.parent.currentView === 'Day' || this.parent.currentView === 'TimelineDay') {\n if (this.parent.activeViewOptions.showWeekend) {\n var daysCount = this.parent.activeViewOptions.interval;\n return util.addDays(this.parent.selectedDate, type === 'next' ? daysCount : -daysCount);\n }\n else {\n var date = void 0;\n if (type === 'next') {\n date = util.addDays(this.renderDates.slice(-1)[0], 1);\n while (!this.isWorkDay(date)) {\n date = util.addDays(date, 1);\n }\n }\n else {\n date = util.addDays(this.renderDates[0], -1);\n var count = 0;\n do {\n if (this.isWorkDay(date)) {\n count += 1;\n }\n if (this.parent.activeViewOptions.interval !== count) {\n date = util.addDays(date, -1);\n }\n } while (this.parent.activeViewOptions.interval !== count);\n }\n return date;\n }\n }\n var weekLength = type === 'next' ? util.WEEK_LENGTH : -util.WEEK_LENGTH;\n return util.addDays(this.parent.selectedDate, weekLength * this.parent.activeViewOptions.interval);\n };\n ViewBase.prototype.getLabelText = function (view) {\n var viewStr = view.charAt(0).toLowerCase() + view.substring(1);\n return this.parent.localeObj.getConstant(viewStr) + ' of ' + util.capitalizeFirstWord(this.parent.globalize.formatDate(this.parent.selectedDate, { skeleton: 'long', calendar: this.parent.getCalendarMode() }), 'single');\n };\n ViewBase.prototype.getDateRangeText = function () {\n if (this.parent.isAdaptive) {\n var formatDate = (this.parent.activeViewOptions.dateFormat) ? this.parent.activeViewOptions.dateFormat : 'MMMM y';\n return util.capitalizeFirstWord(this.parent.globalize.formatDate(this.parent.selectedDate, { format: formatDate, calendar: this.parent.getCalendarMode() }), 'single');\n }\n return this.formatDateRange(this.renderDates[0], this.renderDates[this.renderDates.length - 1]);\n };\n ViewBase.prototype.formatDateRange = function (startDate, endDate) {\n var globalize = this.parent.globalize;\n var mode = this.parent.getCalendarMode();\n if (startDate === endDate) {\n endDate = null;\n }\n if (!isNullOrUndefined(this.parent.activeViewOptions.dateFormat)) {\n var text = '';\n if (!endDate) {\n text = globalize.formatDate(startDate, { format: this.parent.activeViewOptions.dateFormat, calendar: mode });\n return util.capitalizeFirstWord(text, 'multiple');\n }\n text = (globalize.formatDate(startDate, { format: this.parent.activeViewOptions.dateFormat, calendar: mode }) +\n ' - ' + globalize.formatDate(endDate, { format: this.parent.activeViewOptions.dateFormat, calendar: mode }));\n return util.capitalizeFirstWord(text, 'multiple');\n }\n var formattedStr;\n var longDateFormat;\n if (this.parent.locale === 'en' || this.parent.locale === 'en-US') {\n longDateFormat = getValue('dateFormats.long', getDefaultDateObject(mode));\n }\n else {\n longDateFormat = getValue('main.' + '' + this.parent.locale + '.dates.calendars.' + mode + '.dateFormats.long', cldrData);\n }\n if (!endDate) {\n return util.capitalizeFirstWord(globalize.formatDate(startDate, { format: longDateFormat, calendar: mode }), 'single');\n }\n var dateFormat = longDateFormat.trim().toLocaleLowerCase();\n if (dateFormat.substr(0, 1) === 'd') {\n if (startDate.getFullYear() === endDate.getFullYear()) {\n if (startDate.getMonth() === endDate.getMonth()) {\n formattedStr = globalize.formatDate(startDate, { format: 'dd', calendar: mode }) + ' - ' +\n globalize.formatDate(endDate, { format: 'dd MMMM yyyy', calendar: mode });\n }\n else {\n formattedStr = globalize.formatDate(startDate, { format: 'dd MMM', calendar: mode }) + ' - ' +\n globalize.formatDate(endDate, { format: 'dd MMM yyyy', calendar: mode });\n }\n }\n else {\n formattedStr = globalize.formatDate(startDate, { format: 'dd MMM yyyy', calendar: mode }) + ' - ' +\n globalize.formatDate(endDate, { format: 'dd MMM yyyy', calendar: mode });\n }\n }\n else if (dateFormat.substr(0, 1) === 'm') {\n if (startDate.getFullYear() === endDate.getFullYear()) {\n if (startDate.getMonth() === endDate.getMonth()) {\n formattedStr = globalize.formatDate(startDate, { format: 'MMMM dd', calendar: mode }) + ' - ' +\n globalize.formatDate(endDate, { format: 'dd, yyyy', calendar: mode });\n }\n else {\n formattedStr = globalize.formatDate(startDate, { format: 'MMM dd', calendar: mode }) + ' - ' +\n globalize.formatDate(endDate, { format: 'MMM dd, yyyy', calendar: mode });\n }\n }\n else {\n formattedStr = globalize.\n formatDate(startDate, { format: 'MMM dd, yyyy', calendar: mode }) + ' - ' +\n globalize.formatDate(endDate, { format: 'MMM dd, yyyy', calendar: mode });\n }\n }\n else {\n formattedStr = globalize.formatDate(startDate, { format: longDateFormat, calendar: mode }) + ' - ' +\n globalize.formatDate(endDate, { format: longDateFormat, calendar: mode });\n }\n return util.capitalizeFirstWord(formattedStr, 'multiple');\n };\n ViewBase.prototype.getMobileDateElement = function (date, className) {\n var wrap = createElement('div', {\n className: className,\n innerHTML: '
      ' + this.parent.globalize.formatDate(date, { format: 'd', calendar: this.parent.getCalendarMode() }) + '
      ' + '
      ' +\n util.capitalizeFirstWord(this.parent.globalize.formatDate(date, { format: 'E', calendar: this.parent.getCalendarMode() }), 'single') + '
      '\n });\n return wrap;\n };\n ViewBase.prototype.setResourceHeaderContent = function (tdElement, tdData, className) {\n if (className === void 0) { className = cls.TEXT_ELLIPSIS; }\n if (this.parent.activeViewOptions.resourceHeaderTemplate) {\n var data = { resource: tdData.resource, resourceData: tdData.resourceData };\n var scheduleId = this.parent.element.id + '_';\n var viewName = this.parent.activeViewOptions.resourceHeaderTemplateName;\n var templateId = scheduleId + viewName + 'resourceHeaderTemplate';\n var quickTemplate = [].slice.call(this.parent.getResourceHeaderTemplate()(data, this.parent, 'resourceHeaderTemplate', templateId, false));\n append(quickTemplate, tdElement);\n }\n else {\n var resourceText = createElement('div', { className: className });\n this.parent.sanitize(tdData.resourceData[tdData.resource.textField], resourceText);\n tdElement.appendChild(resourceText);\n }\n };\n ViewBase.prototype.renderResourceMobileLayout = function () {\n if (this.parent.resourceBase.lastResourceLevel && this.parent.resourceBase.lastResourceLevel.length <= 0) {\n return;\n }\n this.parent.resourceBase.renderResourceHeader();\n this.parent.resourceBase.renderResourceTree();\n };\n ViewBase.prototype.addAutoHeightClass = function (element) {\n if (!this.parent.uiStateValues.isGroupAdaptive && this.parent.rowAutoHeight && this.isTimelineView()\n && this.parent.activeViewOptions.group.resources.length > 0) {\n addClass([element], cls.AUTO_HEIGHT);\n }\n };\n ViewBase.prototype.getColElements = function () {\n return [].slice.call(this.element.querySelectorAll('.' + cls.CONTENT_WRAP_CLASS + ' col, .' + cls.DATE_HEADER_WRAP_CLASS + ' col'));\n };\n ViewBase.prototype.setColWidth = function (content) {\n if (this.isTimelineView()) {\n var colElements = this.getColElements();\n var contentBody = this.element.querySelector('.' + cls.CONTENT_TABLE_CLASS + ' tbody');\n var colWidth_1 = (contentBody.getBoundingClientRect().width / (colElements.length / 2));\n if (content.offsetHeight !== content.clientHeight) {\n var resourceColumn = this.parent.element.querySelector('.' + cls.RESOURCE_COLUMN_WRAP_CLASS);\n if (!isNullOrUndefined(resourceColumn)) {\n setStyleAttribute(resourceColumn, { 'height': formatUnit(content.clientHeight) });\n }\n }\n var cssClass = \".\" + cls.HEADER_CELLS_CLASS + \",.\" + cls.TIME_SLOT_CLASS + \",.\" + cls.HEADER_WEEK_CELLS_CLASS + \",.\" + cls.HEADER_MONTH_CELLS_CLASS + \",.\" + cls.HEADER_YEAR_CELLS_CLASS;\n var headerCellElements = [].slice.call(this.element.querySelectorAll(cssClass));\n headerCellElements.forEach(function (ele) {\n var colSpan = isNullOrUndefined(ele.getAttribute('colspan')) ? '1' : ele.getAttribute('colspan');\n var headerCellColSpan = parseInt(colSpan, 10);\n setStyleAttribute(ele, { 'width': formatUnit(colWidth_1 * headerCellColSpan) });\n });\n }\n };\n ViewBase.prototype.resetColWidth = function () {\n var colElements = this.getColElements();\n for (var _i = 0, colElements_1 = colElements; _i < colElements_1.length; _i++) {\n var col = colElements_1[_i];\n col.style.width = '';\n }\n };\n ViewBase.prototype.getContentAreaElement = function () {\n return this.element.querySelector('.' + cls.CONTENT_WRAP_CLASS);\n };\n ViewBase.prototype.wireExpandCollapseIconEvents = function () {\n if (this.parent.resourceBase && this.parent.resourceBase.resourceCollection.length > 1) {\n var treeIcons = [].slice.call(this.element.querySelectorAll('.' + cls.RESOURCE_TREE_ICON_CLASS));\n for (var _i = 0, treeIcons_1 = treeIcons; _i < treeIcons_1.length; _i++) {\n var icon = treeIcons_1[_i];\n EventHandler.clearEvents(icon);\n EventHandler.add(icon, 'click', this.parent.resourceBase.onTreeIconClick, this.parent.resourceBase);\n }\n }\n };\n ViewBase.prototype.scrollToDate = function (scrollDate) {\n if (['Month', 'TimelineMonth'].indexOf(this.parent.currentView) === -1 || isNullOrUndefined(scrollDate)) {\n return;\n }\n var scrollWrap = this.getContentAreaElement();\n var tdDate = new Date(util.resetTime(new Date(+scrollDate)).getTime()).getTime();\n var dateElement = scrollWrap.querySelector(\".\" + cls.WORK_CELLS_CLASS + \"[data-date=\\\"\" + tdDate + \"\\\"]\");\n if (this.parent.currentView === 'Month' && dateElement) {\n if (scrollWrap.scrollWidth > scrollWrap.clientWidth) {\n if (!this.parent.enableRtl) {\n scrollWrap.scrollLeft = dateElement.offsetLeft;\n }\n else {\n scrollWrap.scrollLeft = -(this.parent.getContentTable().offsetWidth - dateElement.offsetLeft - dateElement.offsetWidth);\n }\n }\n scrollWrap.scrollTop = dateElement.offsetTop;\n }\n if (this.parent.currentView === 'TimelineMonth' && dateElement) {\n if (!this.parent.enableRtl) {\n scrollWrap.scrollLeft = dateElement.offsetLeft;\n }\n else {\n scrollWrap.scrollLeft = -(this.parent.getContentTable().offsetWidth - dateElement.offsetLeft - dateElement.offsetWidth);\n }\n }\n };\n ViewBase.prototype.setPersistence = function () {\n if (this.parent.enablePersistence) {\n var contentWrap = this.element.querySelector('.e-content-wrap');\n if (!isNullOrUndefined(contentWrap)) {\n this.parent.scrollLeft = contentWrap.scrollLeft;\n this.parent.scrollTop = contentWrap.scrollTop;\n }\n }\n };\n ViewBase.prototype.retainScrollPosition = function () {\n if (this.parent.enablePersistence) {\n var conWrap = this.parent.element.querySelector('.e-content-wrap');\n if (!isNullOrUndefined(conWrap) && !isNullOrUndefined(this.parent.scrollLeft) && !isNullOrUndefined(this.parent.scrollTop)) {\n conWrap.scrollTop = this.parent.scrollTop;\n conWrap.scrollLeft = this.parent.scrollLeft;\n }\n }\n };\n ViewBase.prototype.getViewStartDate = function () {\n var startDate = this.renderDates[0];\n if (this.parent.activeViewOptions.group.resources.length > 0 && this.parent.resourceBase.lastResourceLevel.length > 0) {\n startDate = this.parent.resourceBase.getResourceRenderDates()[0];\n }\n return startDate;\n };\n ViewBase.prototype.getViewEndDate = function () {\n var endDate = util.addDays(this.renderDates[this.renderDates.length - 1], 1);\n if (this.parent.activeViewOptions.group.resources.length > 0 && this.parent.resourceBase.lastResourceLevel.length > 0) {\n endDate = util.addDays(this.parent.resourceBase.getResourceRenderDates().slice(-1)[0], 1);\n }\n return endDate;\n };\n ViewBase.prototype.getAdjustedDate = function (startTime) {\n if (!this.parent.activeViewOptions.timeScale.enable || this.parent.currentView === 'Month' ||\n (this.parent.currentView === 'TimelineYear' && this.parent.activeViewOptions.group.resources.length === 0)) {\n return new Date(startTime.setHours(0, 0, 0, 0));\n }\n else if (this.parent.currentView === 'TimelineYear' && this.parent.activeViewOptions.group.resources.length > 0) {\n startTime.setHours(0, 0, 0, 0);\n return new Date(startTime.setDate(1));\n }\n return null;\n };\n ViewBase.prototype.resetColLevels = function () {\n this.parent.resourceBase.expandedResources = [];\n var renderedCount = this.parent.virtualScrollModule.getRenderedCount();\n var lastLevel = this.parent.activeViewOptions.group.byDate ? this.colLevels[0] :\n this.parent.resourceBase.renderedResources;\n var index = 0;\n for (var i = 0; i < lastLevel.length; i++) {\n if (index >= renderedCount) {\n break;\n }\n index += lastLevel[parseInt(i.toString(), 10)].colSpan;\n this.parent.resourceBase.expandedResources.push(lastLevel[parseInt(i.toString(), 10)]);\n }\n if (this.parent.activeViewOptions.group.byDate) {\n this.colLevels[0] = this.parent.resourceBase.expandedResources;\n this.parent.virtualScrollModule.setRenderedDates(this.parent.resourceBase.expandedResources);\n }\n else {\n this.colLevels[this.colLevels.length - 2] = this.parent.resourceBase.expandedResources;\n this.parent.resourceBase.renderedResources = this.parent.resourceBase.expandedResources;\n }\n if (this.parent.currentView !== 'Month') {\n this.colLevels[this.colLevels.length - 1] = this.colLevels[this.colLevels.length - 1].slice(0, index);\n this.parent.resourceBase.expandedResources = this.colLevels[this.colLevels.length - 1];\n }\n };\n ViewBase.prototype.destroy = function () {\n if (this.element && this.element.parentNode) {\n remove(this.element);\n }\n this.element = null;\n this.renderDates = null;\n this.colLevels = null;\n };\n return ViewBase;\n}());\nexport { ViewBase };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { isNullOrUndefined, extend, EventHandler, formatUnit, Browser } from '@syncfusion/ej2-base';\nimport { createElement, remove, addClass, removeClass, append, prepend } from '@syncfusion/ej2-base';\nimport { ViewBase } from './view-base';\nimport { VerticalEvent } from '../event-renderer/vertical-view';\nimport { MonthEvent } from '../event-renderer/month';\nimport * as util from '../base/util';\nimport * as event from '../base/constant';\nimport * as cls from '../base/css-constant';\n/**\n * vertical view\n */\nvar VerticalView = /** @class */ (function (_super) {\n __extends(VerticalView, _super);\n function VerticalView(parent) {\n var _this = _super.call(this, parent) || this;\n _this.viewClass = 'e-day-view';\n _this.isInverseTableSelect = true;\n _this.baseCssClass = 'e-vertical-view';\n _this.appointment = null;\n return _this;\n }\n VerticalView.prototype.getModuleName = function () {\n return 'verticalView';\n };\n VerticalView.prototype.addEventListener = function () {\n this.parent.on(event.scrollUiUpdate, this.scrollUiUpdate, this);\n this.parent.on(event.dataReady, this.renderEvents, this);\n };\n VerticalView.prototype.removeEventListener = function () {\n if (this.parent) {\n this.parent.off(event.scrollUiUpdate, this.scrollUiUpdate);\n this.parent.off(event.dataReady, this.renderEvents);\n }\n };\n VerticalView.prototype.renderEvents = function () {\n this.appointment = this.parent.activeViewOptions.timeScale.enable ?\n new VerticalEvent(this.parent) : new MonthEvent(this.parent);\n this.appointment.renderAppointments();\n this.parent.notify(event.eventsLoaded, {});\n };\n VerticalView.prototype.onContentScroll = function (e) {\n this.parent.removeNewEventElement();\n var target = e.target;\n this.parent.notify(event.virtualScroll, e);\n this.scrollLeftPanel(target);\n this.scrollTopPanel(target);\n if (!this.parent.isAdaptive) {\n this.parent.uiStateValues.top = target.scrollTop;\n }\n this.parent.uiStateValues.left = target.scrollLeft;\n if (!isNullOrUndefined(this.parent.quickPopup)) {\n this.parent.quickPopup.quickPopupHide();\n }\n this.setPersistence();\n };\n VerticalView.prototype.onAdaptiveMove = function (e) {\n if (this.parent.uiStateValues.action) {\n e.preventDefault();\n }\n };\n VerticalView.prototype.onAdaptiveScroll = function (e) {\n if (this.parent && !this.parent.isDestroyed) {\n this.parent.removeNewEventElement();\n this.parent.uiStateValues.top = e.target.scrollTop;\n }\n };\n VerticalView.prototype.scrollLeftPanel = function (target) {\n var leftPanel = this.getLeftPanelElement();\n if (!isNullOrUndefined(leftPanel)) {\n leftPanel.scrollTop = target.scrollTop;\n }\n };\n VerticalView.prototype.scrollUiUpdate = function (args) {\n if (!this.parent) {\n return;\n }\n var dateHeader = this.parent.element.querySelector('.' + cls.DATE_HEADER_WRAP_CLASS);\n var headerBarHeight = this.getHeaderBarHeight();\n var timeCells = this.getLeftPanelElement();\n var content = this.getScrollableElement();\n var header = this.getDatesHeaderElement();\n var scrollerHeight = this.parent.element.offsetHeight - headerBarHeight - header.offsetHeight;\n this.setContentHeight(content, timeCells, scrollerHeight);\n this.setColWidth(content);\n var scrollBarWidth = util.getScrollBarWidth();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n header.firstElementChild.style[args.cssProperties.rtlBorder] = '';\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n header.style[args.cssProperties.rtlPadding] = '';\n var isDateHeaderScroll = this.parent.enableAllDayScroll ? !((content.offsetWidth - content.clientWidth) <=\n (dateHeader.offsetWidth - dateHeader.clientWidth) && dateHeader.classList.contains('e-all-day-scroll')) : true;\n if (content.offsetWidth - content.clientWidth > 0 && isDateHeaderScroll) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n header.firstElementChild.style[args.cssProperties.border] = scrollBarWidth > 0 ? '1px' : '0px';\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n header.style[args.cssProperties.padding] = scrollBarWidth > 0 ? scrollBarWidth - 1 + 'px' : '0px';\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n header.firstElementChild.style[args.cssProperties.border] = '';\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n header.style[args.cssProperties.padding] = '';\n }\n if (!args.isPreventScrollUpdate) {\n if (this.parent.uiStateValues.isInitial) {\n if (this.parent.currentView.indexOf('Timeline') > -1) {\n content.scrollTop = this.parent.uiStateValues.top;\n }\n this.scrollToWorkHour();\n this.parent.uiStateValues.isInitial = false;\n }\n else {\n if (timeCells) {\n timeCells.scrollTop = this.parent.uiStateValues.top;\n }\n content.scrollTop = this.parent.uiStateValues.top;\n content.scrollLeft = this.parent.uiStateValues.left;\n }\n }\n if (this.parent.activeViewOptions.timeScale.enable) {\n this.highlightCurrentTime();\n }\n this.retainScrollPosition();\n };\n VerticalView.prototype.setContentHeight = function (element, leftPanelElement, height) {\n if (this.parent.isAdaptive && !this.isTimelineView()) {\n element.style.height = (this.parent.height === 'auto') ? 'auto' : formatUnit(height);\n }\n else {\n if (!isNullOrUndefined(leftPanelElement)) {\n leftPanelElement.style.height = (this.parent.height === 'auto') ? 'auto'\n : formatUnit(height - this.getScrollXIndent(element));\n }\n element.style.height = (this.parent.height === 'auto') ? 'auto' : formatUnit(height);\n }\n };\n VerticalView.prototype.scrollToWorkHour = function () {\n if (this.parent.workHours.highlight) {\n var firstWorkHourCell = this.element.querySelector('.' + cls.WORK_HOURS_CLASS);\n if (firstWorkHourCell) {\n this.getScrollableElement().scrollTop = firstWorkHourCell.offsetTop;\n this.parent.uiStateValues.top = firstWorkHourCell.offsetTop;\n this.parent.uiStateValues.left = 0;\n }\n }\n };\n VerticalView.prototype.scrollToHour = function (hour, scrollDate) {\n var date = this.parent.getStartEndTime(hour);\n if (!isNullOrUndefined(scrollDate)) {\n var headerElement = this.element.querySelector('.' + cls.HEADER_CELLS_CLASS + '[data-date=\"' + new Date(util.resetTime(scrollDate)).getTime() + '\"]');\n if (headerElement) {\n if (this.parent.enableRtl) {\n var conWrap = this.element.querySelector('.' + cls.CONTENT_TABLE_CLASS);\n this.getScrollableElement().scrollLeft = -(conWrap.offsetWidth - headerElement.offsetLeft - headerElement.offsetWidth);\n }\n else {\n this.getScrollableElement().scrollLeft = headerElement.offsetLeft;\n }\n }\n }\n if (isNullOrUndefined(date)) {\n return;\n }\n this.getScrollableElement().scrollTop = this.getTopFromDateTime(date);\n };\n VerticalView.prototype.scrollToDate = function (scrollDate) {\n this.scrollToHour(null, scrollDate);\n };\n VerticalView.prototype.generateColumnLevels = function () {\n var level = this.getDateSlots(this.renderDates, this.parent.activeViewOptions.workDays);\n var columnLevels = [];\n if (this.parent.activeViewOptions.group.resources.length > 0) {\n columnLevels = this.parent.resourceBase.generateResourceLevels(level);\n if (this.parent.activeViewOptions.group.hideNonWorkingDays) {\n while (columnLevels[0].length === 0) {\n this.parent.setProperties({ selectedDate: this.parent.activeView.getNextPreviousDate(this.previousNextAction) }, true);\n this.parent.activeView.getRenderDates();\n if (this.parent.headerModule) {\n this.parent.headerModule.setCalendarDate(this.parent.selectedDate);\n this.parent.headerModule.updateDateRange();\n }\n level = this.getDateSlots(this.renderDates, this.parent.activeViewOptions.workDays);\n columnLevels = this.parent.resourceBase.generateResourceLevels(level);\n }\n }\n if (this.parent.uiStateValues.isGroupAdaptive && this.parent.resourceBase.lastResourceLevel.length > 0) {\n var resourceLevel = this.parent.resourceBase.lastResourceLevel[this.parent.uiStateValues.groupIndex];\n var resStartHour = resourceLevel.resourceData[resourceLevel.resource.startHourField];\n var resEndHour = resourceLevel.resourceData[resourceLevel.resource.endHourField];\n var dateSlots = this.getDateSlots(resourceLevel.renderDates, resourceLevel.workDays, resStartHour, resEndHour);\n columnLevels = [dateSlots];\n }\n }\n else {\n columnLevels.push(level);\n }\n this.colLevels = columnLevels;\n return columnLevels;\n };\n // eslint-disable-next-line max-len\n VerticalView.prototype.getDateSlots = function (renderDates, workDays, workStartHour, workEndHour) {\n if (workStartHour === void 0) { workStartHour = this.parent.workHours.start; }\n if (workEndHour === void 0) { workEndHour = this.parent.workHours.end; }\n var dateCol = [];\n var start = this.parent.getStartEndTime(workStartHour);\n var end = this.parent.getStartEndTime(workEndHour);\n for (var _i = 0, renderDates_1 = renderDates; _i < renderDates_1.length; _i++) {\n var col = renderDates_1[_i];\n var classList = [cls.HEADER_CELLS_CLASS];\n if (this.isCurrentDate(col)) {\n classList.push(cls.CURRENT_DAY_CLASS);\n }\n dateCol.push({\n date: col, type: 'dateHeader', className: classList, colSpan: 1,\n workDays: workDays, startHour: new Date(+start), endHour: new Date(+end)\n });\n }\n return dateCol;\n };\n VerticalView.prototype.isWorkHourRange = function (date) {\n return (this.getStartHour().getTime() <= date.getTime()) && (this.getEndHour().getTime() >= date.getTime());\n };\n VerticalView.prototype.highlightCurrentTime = function () {\n var _this = this;\n if (this.parent.activeViewOptions.headerRows.length > 0 &&\n this.parent.activeViewOptions.headerRows.slice(-1)[0].option !== 'Hour') {\n return;\n }\n var currentDate = this.parent.getCurrentTime();\n if (this.parent.showTimeIndicator && this.isWorkHourRange(currentDate)) {\n var currentDateIndex = this.getCurrentTimeIndicatorIndex();\n if (currentDateIndex.length > 0) {\n var workCells = [].slice.call(this.element.querySelectorAll('.' + cls.WORK_CELLS_CLASS));\n if (workCells.length > 0) {\n this.changeCurrentTimePosition();\n }\n if (isNullOrUndefined(this.currentTimeIndicatorTimer)) {\n var interval = util.MS_PER_MINUTE - ((currentDate.getSeconds() * 1000) + currentDate.getMilliseconds());\n if (interval <= (util.MS_PER_MINUTE - 1000)) {\n window.setTimeout(function () {\n if (!isNullOrUndefined(_this.currentTimeIndicatorTimer)) {\n _this.clearCurrentTimeIndicatorTimer();\n _this.changeCurrentTimePosition();\n _this.updateCurrentTimeIndicatorTimer();\n }\n }, interval);\n }\n this.updateCurrentTimeIndicatorTimer();\n }\n }\n else {\n this.clearCurrentTimeIndicatorTimer();\n }\n }\n else {\n this.clearCurrentTimeIndicatorTimer();\n }\n };\n VerticalView.prototype.getCurrentTimeIndicatorIndex = function () {\n var currentDateIndex = [];\n if (!isNullOrUndefined(this.parent.resourceBase) && (this.parent.activeViewOptions.group.resources.length > 0) &&\n !this.parent.uiStateValues.isGroupAdaptive) {\n var count = 0;\n var currentDate = util.resetTime(this.parent.getCurrentTime());\n if (this.parent.virtualScrollModule && this.parent.activeViewOptions.allowVirtualScrolling &&\n this.parent.activeViewOptions.group.byDate) {\n for (var _i = 0, _a = this.parent.resourceBase.expandedResources; _i < _a.length; _i++) {\n var resource = _a[_i];\n if (util.resetTime(resource.date).getTime() === currentDate.getTime()) {\n currentDateIndex.push(count);\n }\n count += 1;\n }\n }\n else {\n for (var _b = 0, _c = this.parent.resourceBase.renderedResources; _b < _c.length; _b++) {\n var resource = _c[_b];\n var index = this.parent.getIndexOfDate(resource.renderDates, currentDate);\n if (index >= 0) {\n var resIndex = this.parent.activeViewOptions.group.byDate ?\n (this.parent.resourceBase.lastResourceLevel.length * index) + count : count + index;\n currentDateIndex.push(resIndex);\n }\n count += this.parent.activeViewOptions.group.byDate ? 1 : resource.renderDates.length;\n }\n }\n }\n else {\n var renderDates = (this.parent.uiStateValues.isGroupAdaptive && this.parent.resourceBase.lastResourceLevel.length > 0)\n ? this.parent.resourceBase.lastResourceLevel[this.parent.uiStateValues.groupIndex].renderDates : this.renderDates;\n var index = this.parent.getIndexOfDate(renderDates, util.resetTime(this.parent.getCurrentTime()));\n if (index >= 0) {\n currentDateIndex.push(index);\n }\n }\n return currentDateIndex;\n };\n VerticalView.prototype.clearCurrentTimeIndicatorTimer = function () {\n if (!isNullOrUndefined(this.currentTimeIndicatorTimer)) {\n window.clearInterval(this.currentTimeIndicatorTimer);\n this.currentTimeIndicatorTimer = null;\n this.removeCurrentTimeIndicatorElements();\n }\n };\n VerticalView.prototype.updateCurrentTimeIndicatorTimer = function () {\n var _this = this;\n this.currentTimeIndicatorTimer = window.setInterval(function () { _this.changeCurrentTimePosition(); }, util.MS_PER_MINUTE);\n };\n VerticalView.prototype.removeCurrentTimeIndicatorElements = function () {\n var queryString = '.' + cls.PREVIOUS_TIMELINE_CLASS + ',.' + cls.CURRENT_TIMELINE_CLASS + ',.' + cls.CURRENT_TIME_CLASS;\n var timeIndicator = [].slice.call(this.element.querySelectorAll(queryString));\n for (var _i = 0, timeIndicator_1 = timeIndicator; _i < timeIndicator_1.length; _i++) {\n var indicator = timeIndicator_1[_i];\n remove(indicator);\n }\n };\n VerticalView.prototype.changeCurrentTimePosition = function () {\n if (!this.parent || this.parent && this.parent.isDestroyed) {\n return;\n }\n this.removeCurrentTimeIndicatorElements();\n var currentDateIndex = this.getCurrentTimeIndicatorIndex();\n var firstRow = this.parent.getContentTable().rows[0];\n var top = this.getTopFromDateTime(this.parent.getCurrentTime());\n var topInPx = formatUnit(top);\n var rowIndex = Math.floor(top / firstRow.cells[0].offsetHeight);\n var timeCellsWrap = this.getLeftPanelElement();\n var timeTrs = [].slice.call(timeCellsWrap.querySelectorAll('tr'));\n if (isNullOrUndefined(rowIndex) || isNaN(rowIndex) || rowIndex === timeTrs.length) {\n return;\n }\n var curTimeWrap = [].slice.call(this.element.querySelectorAll('.' + cls.TIMELINE_WRAPPER_CLASS));\n for (var i = 0, length_1 = currentDateIndex[0]; i < length_1; i++) {\n curTimeWrap[parseInt(i.toString(), 10)].appendChild(createElement('div', { className: cls.PREVIOUS_TIMELINE_CLASS, styles: 'top:' + topInPx }));\n }\n for (var _i = 0, currentDateIndex_1 = currentDateIndex; _i < currentDateIndex_1.length; _i++) {\n var day = currentDateIndex_1[_i];\n curTimeWrap[parseInt(day.toString(), 10)].appendChild(createElement('div', { className: cls.CURRENT_TIMELINE_CLASS, styles: 'top:' + topInPx }));\n }\n var currentTimeEle = createElement('div', {\n innerHTML: this.parent.getTimeString(this.parent.getCurrentTime()),\n className: cls.CURRENT_TIME_CLASS,\n styles: 'top:' + topInPx\n });\n if (rowIndex <= timeTrs.length) {\n removeClass(timeCellsWrap.querySelectorAll('.' + cls.HIDE_CHILDS_CLASS), cls.HIDE_CHILDS_CLASS);\n if (timeTrs[parseInt(rowIndex.toString(), 10)]) {\n addClass([timeTrs[parseInt(rowIndex.toString(), 10)].lastElementChild], cls.HIDE_CHILDS_CLASS);\n }\n prepend([currentTimeEle], timeCellsWrap);\n currentTimeEle.style.top = formatUnit(currentTimeEle.offsetTop - (currentTimeEle.offsetHeight / 2));\n }\n };\n VerticalView.prototype.getTopFromDateTime = function (date) {\n var startHour = this.getStartHour();\n var diffInMinutes = ((date.getHours() - startHour.getHours()) * 60) + (date.getMinutes() - startHour.getMinutes());\n return (diffInMinutes * this.getWorkCellHeight() * this.parent.activeViewOptions.timeScale.slotCount) /\n this.parent.activeViewOptions.timeScale.interval;\n };\n VerticalView.prototype.getWorkCellHeight = function () {\n return parseFloat(this.element.querySelector('.' + cls.WORK_CELLS_CLASS).getBoundingClientRect().height.toFixed(2));\n };\n VerticalView.prototype.getTdContent = function (date, type, groupIndex) {\n var cntEle;\n var wrapper = createElement('div');\n var templateName = '';\n var templateId = this.parent.element.id + '_';\n switch (type) {\n case 'dateHeader':\n if (this.parent.activeViewOptions.dateHeaderTemplate) {\n templateName = 'dateHeaderTemplate';\n var args = { date: date, type: type };\n var viewName = this.parent.activeViewOptions.dateHeaderTemplateName;\n cntEle = [].slice.call(this.parent.getDateHeaderTemplate()(args, this.parent, templateName, templateId + viewName + templateName, false));\n }\n else {\n wrapper.innerHTML = this.parent.activeView.isTimelineView() ?\n \"\" + this.getTimelineDate(date) + \"\" :\n \"
      \" + util.capitalizeFirstWord(this.getDayName(date), 'single') + \"
      \" +\n (\"
      \" + this.getDate(date) + \"
      \");\n cntEle = [].slice.call(wrapper.childNodes);\n }\n break;\n case 'majorSlot':\n if (this.parent.activeViewOptions.timeScale.majorSlotTemplate) {\n templateName = 'majorSlotTemplate';\n var args = { date: date, type: type };\n cntEle = [].slice.call(this.parent.getMajorSlotTemplate()(args, this.parent, templateName, templateId + templateName, false));\n }\n else {\n wrapper.innerHTML = \"\" + this.getTime(date) + \"\";\n cntEle = [].slice.call(wrapper.childNodes);\n }\n break;\n case 'minorSlot':\n if (this.parent.activeViewOptions.timeScale.minorSlotTemplate) {\n templateName = 'minorSlotTemplate';\n var args = { date: date, type: type };\n cntEle = [].slice.call(this.parent.getMinorSlotTemplate()(args, this.parent, templateName, templateId + templateName, false));\n }\n else {\n cntEle = [].slice.call(wrapper.childNodes);\n }\n break;\n case 'alldayCells':\n if (this.parent.activeViewOptions.cellTemplate) {\n var viewName = this.parent.activeViewOptions.cellTemplateName;\n templateName = 'cellTemplate';\n var args = { date: date, type: type, groupIndex: groupIndex };\n cntEle = [].slice.call(this.parent.getCellTemplate()(args, this.parent, templateName, templateId + viewName + templateName, false));\n }\n break;\n }\n return cntEle;\n };\n VerticalView.prototype.refreshHeader = function () {\n remove(this.element.querySelector('tbody tr'));\n this.renderHeader();\n this.parent.notify(event.contentReady, {});\n };\n VerticalView.prototype.renderLayout = function (type) {\n this.setPanel(createElement('div', { className: cls.TABLE_WRAP_CLASS }));\n var clsList = [this.baseCssClass, this.viewClass];\n clsList.push(type);\n if (this.parent.activeViewOptions.group.byDate) {\n clsList.push('e-by-date');\n }\n if (!this.parent.activeViewOptions.timeScale.enable) {\n addClass([this.element], [cls.TIMESCALE_DISABLE, this.viewClass]);\n }\n if (this.parent.activeViewOptions.allowVirtualScrolling && !this.parent.uiStateValues.isGroupAdaptive) {\n clsList.push(cls.VIRTUAL_SCROLL_CLASS);\n }\n if (this.parent.rowAutoHeight && this.parent.eventSettings.ignoreWhitespace) {\n clsList.push(cls.IGNORE_WHITESPACE);\n }\n this.renderPanel(type);\n addClass([this.element], clsList);\n this.element.appendChild(this.createTableLayout(cls.OUTER_TABLE_CLASS));\n this.element.querySelector('table').setAttribute('role', 'presentation');\n this.colLevels = this.generateColumnLevels();\n this.renderHeader();\n this.renderContent();\n if (this.parent.uiStateValues.isGroupAdaptive && !this.parent.element.querySelector('.' + cls.RESOURCE_TOOLBAR_CONTAINER)) {\n this.renderResourceMobileLayout();\n }\n this.parent.notify(event.contentReady, {});\n };\n VerticalView.prototype.renderHeader = function () {\n var tr = createElement('tr');\n var dateTd = createElement('td');\n dateTd.appendChild(this.renderDatesHeader());\n if (this.parent.activeViewOptions.timeScale.enable) {\n var indentTd = createElement('td', { className: cls.LEFT_INDENT_CLASS });\n indentTd.appendChild(this.renderLeftIndent());\n tr.appendChild(indentTd);\n }\n tr.appendChild(dateTd);\n prepend([tr], this.element.querySelector('tbody'));\n };\n VerticalView.prototype.renderContent = function () {\n if (this.parent.activeViewOptions.group.resources.length > 0) {\n this.parent.resourceBase.renderedResources = extend([], this.parent.resourceBase.lastResourceLevel, null, true);\n }\n var tr = createElement('tr');\n var workTd = createElement('td');\n if (this.parent.isAdaptive) {\n workTd.setAttribute('colspan', (this.parent.activeViewOptions.timeScale.enable ? '2' : '1'));\n var scrollContainer = createElement('div', { className: cls.SCROLL_CONTAINER_CLASS });\n if (this.parent.activeViewOptions.timeScale.enable) {\n scrollContainer.appendChild(this.renderTimeCells());\n }\n scrollContainer.appendChild(this.renderContentArea());\n workTd.appendChild(scrollContainer);\n EventHandler.add(scrollContainer, 'scroll', this.onAdaptiveScroll, this);\n EventHandler.add(scrollContainer, Browser.touchMoveEvent, this.onAdaptiveMove, this);\n tr.appendChild(workTd);\n }\n else {\n var levels = this.colLevels.slice(0);\n if (this.parent.virtualScrollModule) {\n this.resetColLevels();\n }\n var wrap = this.renderContentArea();\n workTd.appendChild(wrap);\n if (this.parent.activeViewOptions.timeScale.enable) {\n var timesTd = createElement('td');\n timesTd.appendChild(this.renderTimeCells());\n tr.appendChild(timesTd);\n }\n tr.appendChild(workTd);\n if (this.parent.virtualScrollModule) {\n this.colLevels = levels;\n this.parent.virtualScrollModule.renderVirtualTrack(wrap);\n }\n }\n this.element.querySelector('tbody').appendChild(tr);\n };\n VerticalView.prototype.renderLeftIndent = function () {\n var wrap = createElement('div', { className: cls.LEFT_INDENT_WRAP_CLASS });\n var tbl = this.createTableLayout();\n var trEle = createElement('tr');\n var rowCount = this.colLevels.length;\n var nth;\n for (var i = 0; i < rowCount; i++) {\n var ntr_1 = trEle.cloneNode();\n var data_1 = { className: [(this.colLevels[parseInt(i.toString(), 10)][0] && this.colLevels[parseInt(i.toString(), 10)][0].className[0])], type: 'emptyCells' };\n if (this.parent.activeViewOptions.showWeekNumber && data_1.className.indexOf(cls.HEADER_CELLS_CLASS) !== -1) {\n data_1.className.push(cls.WEEK_NUMBER_CLASS);\n var weekNo = this.parent.getWeekNumberContent(this.renderDates);\n data_1.template = [createElement('span', {\n innerHTML: '' + weekNo,\n attrs: { title: this.parent.localeObj.getConstant('week') + ' ' + weekNo }\n })];\n }\n nth = this.createTd(data_1);\n this.parent.renderHeaderIndentTemplate(data_1, nth);\n ntr_1.appendChild(nth);\n tbl.querySelector('tbody').appendChild(ntr_1);\n }\n var ntr = trEle.cloneNode();\n var appointmentExpandCollapse = createElement('div', {\n attrs: {\n 'tabindex': '0', 'role': 'list',\n title: this.parent.localeObj.getConstant('expandAllDaySection'), 'aria-disabled': 'false', 'aria-label': 'Expand section'\n },\n className: cls.ALLDAY_APPOINTMENT_SECTION_CLASS + ' ' + cls.APPOINTMENT_ROW_EXPAND_CLASS + ' ' +\n cls.ICON + ' ' + cls.DISABLE_CLASS\n });\n var data = { className: [cls.ALLDAY_CELLS_CLASS], type: 'emptyCells' };\n nth = this.createTd(data);\n nth.appendChild(appointmentExpandCollapse);\n this.parent.renderHeaderIndentTemplate(data, nth);\n ntr.appendChild(nth);\n tbl.querySelector('tbody').appendChild(ntr);\n wrap.appendChild(tbl);\n return wrap;\n };\n VerticalView.prototype.renderDatesHeader = function () {\n var container = createElement('div', { className: cls.DATE_HEADER_CONTAINER_CLASS });\n var wrap = createElement('div', { className: cls.DATE_HEADER_WRAP_CLASS });\n container.appendChild(wrap);\n var tbl = this.createTableLayout();\n var trEle = createElement('tr', { className: cls.HEADER_ROW_CLASS });\n var rowCount = this.colLevels.length;\n var lastLevel = this.colLevels[rowCount - 1];\n for (var i = 0; i < rowCount; i++) {\n var ntr = trEle.cloneNode();\n var level = this.colLevels[parseInt(i.toString(), 10)];\n for (var j = 0; j < level.length; j++) {\n ntr.appendChild(this.createTd(level[parseInt(j.toString(), 10)]));\n }\n tbl.querySelector('tbody').appendChild(ntr);\n }\n this.createAllDayRow(tbl, lastLevel);\n this.createColGroup(tbl, lastLevel);\n wrap.appendChild(tbl);\n return container;\n };\n VerticalView.prototype.createAllDayRow = function (table, tdData) {\n var ntr = createElement('tr', { className: cls.ALLDAY_ROW_CLASS });\n for (var j = 0; j < tdData.length; j++) {\n var td = extend({}, tdData[parseInt(j.toString(), 10)]);\n td.className = [cls.ALLDAY_CELLS_CLASS];\n td.type = 'alldayCells';\n var ntd = this.createTd(td);\n ntd.setAttribute('data-date', td.date.getTime().toString());\n if (!isNullOrUndefined(td.groupIndex)) {\n ntd.setAttribute('data-group-index', '' + td.groupIndex);\n }\n else if (this.parent.uiStateValues.isGroupAdaptive) {\n ntd.setAttribute('data-group-index', '' + this.parent.uiStateValues.groupIndex);\n }\n this.wireCellEvents(ntd);\n ntr.appendChild(ntd);\n }\n table.querySelector('tbody').appendChild(ntr);\n var thead = createElement('thead');\n thead.appendChild(this.parent.eventBase.createEventWrapper('allDay'));\n prepend([thead], table);\n };\n VerticalView.prototype.createTd = function (td) {\n var tdEle = createElement('td');\n this.addAttributes(td, tdEle);\n if (td.date && td.type) {\n var ele = this.getTdContent(td.date, td.type, td.groupIndex);\n if (ele && ele.length) {\n append(ele, tdEle);\n }\n }\n if (!this.parent.isMinMaxDate(util.resetTime(new Date('' + td.date)))) {\n addClass([tdEle], cls.DISABLE_DATES);\n }\n if (td.type === 'resourceHeader') {\n this.setResourceHeaderContent(tdEle, td);\n }\n if (td.type === 'dateHeader' && td.className.indexOf(cls.HEADER_CELLS_CLASS) >= 0) {\n tdEle.setAttribute('data-date', td.date.getTime().toString());\n if (!isNullOrUndefined(td.groupIndex)) {\n tdEle.setAttribute('data-group-index', '' + td.groupIndex);\n }\n this.wireMouseEvents(tdEle);\n }\n var args = { elementType: td.type, element: tdEle, date: td.date, groupIndex: td.groupIndex };\n this.parent.trigger(event.renderCell, args);\n return tdEle;\n };\n VerticalView.prototype.wireCellEvents = function (element) {\n EventHandler.add(element, 'mousedown', this.parent.workCellAction.cellMouseDown, this.parent.workCellAction);\n this.wireMouseEvents(element);\n };\n VerticalView.prototype.wireMouseEvents = function (element) {\n EventHandler.add(element, 'click', this.parent.workCellAction.cellClick, this.parent.workCellAction);\n if (!this.parent.isAdaptive) {\n EventHandler.add(element, 'dblclick', this.parent.workCellAction.cellDblClick, this.parent.workCellAction);\n }\n };\n VerticalView.prototype.renderTimeCells = function () {\n var _this = this;\n var wrap = createElement('div', { className: cls.TIME_CELLS_WRAP_CLASS });\n var tbl = this.createTableLayout();\n var trEle = createElement('tr');\n var handler = function (r) {\n r.type = r.first ? 'majorSlot' : 'minorSlot';\n r.className = r.last ? [cls.TIME_CELLS_CLASS, cls.TIME_SLOT_CLASS] : [cls.TIME_SLOT_CLASS];\n var ntr = trEle.cloneNode();\n var data = { date: r.date, type: r.type, className: r.className };\n ntr.appendChild(_this.createTd(data));\n tbl.querySelector('tbody').appendChild(ntr);\n return r;\n };\n this.getTimeSlotRows(handler);\n wrap.appendChild(tbl);\n return wrap;\n };\n VerticalView.prototype.renderContentArea = function () {\n var wrap = createElement('div', { className: cls.CONTENT_WRAP_CLASS });\n var tbl = this.createTableLayout(cls.CONTENT_TABLE_CLASS);\n this.setAriaAttributes(tbl);\n this.addAutoHeightClass(tbl);\n this.renderContentTable(tbl);\n this.createColGroup(tbl, this.colLevels.slice(-1)[0]);\n wrap.appendChild(tbl);\n this.wireCellEvents(tbl.querySelector('tbody'));\n EventHandler.add(wrap, 'scroll', this.onContentScroll, this);\n EventHandler.add(wrap, Browser.touchMoveEvent, this.onAdaptiveMove, this);\n return wrap;\n };\n VerticalView.prototype.renderContentTable = function (table) {\n var tBody = table.querySelector('tbody');\n append(this.getContentRows(), tBody);\n this.renderContentTableHeader(table);\n };\n VerticalView.prototype.getContentRows = function () {\n var _this = this;\n var rows = [];\n var tr = createElement('tr');\n var td = createElement('td', { attrs: { 'aria-selected': 'false' } });\n var handler = function (r) {\n var ntr = tr.cloneNode();\n for (var _i = 0, _a = _this.colLevels[_this.colLevels.length - 1]; _i < _a.length; _i++) {\n var tdData = _a[_i];\n var ntd = _this.createContentTd(tdData, r, td);\n ntr.appendChild(ntd);\n }\n rows.push(ntr);\n return r;\n };\n this.getTimeSlotRows(handler);\n return rows;\n };\n VerticalView.prototype.createContentTd = function (tdData, r, td) {\n var ntd = td.cloneNode();\n if (tdData.colSpan) {\n ntd.setAttribute('colspan', tdData.colSpan.toString());\n }\n var clsName = this.getContentTdClass(r);\n var cellDate = util.resetTime(tdData.date);\n if (!this.parent.isMinMaxDate(cellDate)) {\n clsName.push(cls.DISABLE_DATES);\n }\n util.setTime(cellDate, util.getDateInMs(r.date));\n var type = 'workCells';\n if (tdData.className.indexOf(cls.RESOURCE_PARENT_CLASS) !== -1) {\n clsName.push(cls.RESOURCE_GROUP_CELLS_CLASS);\n type = 'resourceGroupCells';\n }\n if (this.parent.workHours.highlight && ((this.parent.activeViewOptions.timeScale.enable &&\n this.isWorkHour(cellDate, tdData.startHour, tdData.endHour, tdData.workDays)) ||\n (!this.parent.activeViewOptions.timeScale.enable && this.isWorkDay(cellDate, tdData.workDays)))) {\n clsName.push(cls.WORK_HOURS_CLASS);\n }\n addClass([ntd], clsName);\n if (this.parent.activeViewOptions.cellTemplate) {\n var args_1 = { date: cellDate, type: type, groupIndex: tdData.groupIndex };\n var scheduleId = this.parent.element.id + '_';\n var viewName = this.parent.activeViewOptions.cellTemplateName;\n var templateId = scheduleId + viewName + 'cellTemplate';\n var tooltipTemplate = [].slice.call(this.parent.getCellTemplate()(args_1, this.parent, 'cellTemplate', templateId, false));\n append(tooltipTemplate, ntd);\n }\n ntd.setAttribute('data-date', cellDate.getTime().toString());\n if (!isNullOrUndefined(tdData.groupIndex) || this.parent.uiStateValues.isGroupAdaptive) {\n var groupIndex = this.parent.uiStateValues.isGroupAdaptive ? this.parent.uiStateValues.groupIndex :\n tdData.groupIndex;\n ntd.setAttribute('data-group-index', '' + groupIndex);\n }\n var args = { elementType: type, element: ntd, date: cellDate, groupIndex: tdData.groupIndex };\n this.parent.trigger(event.renderCell, args);\n return ntd;\n };\n VerticalView.prototype.getContentTdClass = function (r) {\n return r.last ? [cls.WORK_CELLS_CLASS] : [cls.WORK_CELLS_CLASS, cls.ALTERNATE_CELLS_CLASS];\n };\n VerticalView.prototype.renderContentTableHeader = function (table) {\n var thead = createElement('thead');\n thead.appendChild(this.parent.eventBase.createEventWrapper());\n if (this.parent.activeViewOptions.timeScale.enable) {\n thead.appendChild(this.parent.eventBase.createEventWrapper('timeIndicator'));\n }\n prepend([thead], table);\n };\n VerticalView.prototype.getScrollableElement = function () {\n if (this.parent.isAdaptive && !this.isTimelineView()) {\n return this.element.querySelector('.' + cls.SCROLL_CONTAINER_CLASS);\n }\n else {\n return this.getContentAreaElement();\n }\n };\n VerticalView.prototype.getLeftPanelElement = function () {\n return this.element.querySelector('.' + cls.TIME_CELLS_WRAP_CLASS);\n };\n VerticalView.prototype.getEndDateFromStartDate = function (start) {\n var msMajorInterval = this.parent.activeViewOptions.timeScale.interval * util.MS_PER_MINUTE;\n var msInterval = msMajorInterval / this.parent.activeViewOptions.timeScale.slotCount;\n var end = new Date(start.getTime());\n end.setMilliseconds(end.getMilliseconds() + msInterval);\n return end;\n };\n VerticalView.prototype.getTimeSlotRows = function (handler) {\n var rows = [];\n var startHour = this.getStartHour();\n var endHour = this.getEndHour();\n var msMajorInterval = this.parent.activeViewOptions.timeScale.interval * util.MS_PER_MINUTE;\n var msInterval = msMajorInterval / this.parent.activeViewOptions.timeScale.slotCount;\n var length = Math.round(util.MS_PER_DAY / msInterval);\n var msStartHour = startHour.getTime();\n var msEndHour = endHour.getTime();\n if (msStartHour !== msEndHour) {\n var duration = this.parent.activeViewOptions.timeScale.interval / this.parent.activeViewOptions.timeScale.slotCount;\n length = (Math.abs(msEndHour - msStartHour) / msInterval) - ((new Date(msEndHour).getTimezoneOffset()\n - new Date(msStartHour).getTimezoneOffset()) / duration);\n }\n if (!this.parent.activeViewOptions.timeScale.enable) {\n length = 1;\n }\n var start = this.parent.getStartEndTime(this.parent.workHours.start);\n var end = this.parent.getStartEndTime(this.parent.workHours.end);\n for (var i = 0; i < length; i++) {\n var dt = new Date(msStartHour + (msInterval * i));\n if (util.isDaylightSavingTime(dt) || new Date(msStartHour).getTimezoneOffset() !== dt.getTimezoneOffset()) {\n var timeOffset = new Date(msStartHour).getTimezoneOffset() - dt.getTimezoneOffset();\n dt = new Date(dt.getTime() - (1000 * 60 * timeOffset));\n }\n var majorTickDivider = i % (msMajorInterval / msInterval);\n var row = {\n date: new Date('' + dt),\n startHour: start,\n endHour: end,\n first: (majorTickDivider === 0),\n middle: (majorTickDivider < this.parent.activeViewOptions.timeScale.slotCount - 1),\n last: (majorTickDivider === this.parent.activeViewOptions.timeScale.slotCount - 1),\n type: ''\n };\n if (handler) {\n handler(row);\n }\n rows.push(row);\n }\n return rows;\n };\n VerticalView.prototype.getAdjustedDate = function (startTime) {\n if (!this.parent.activeViewOptions.timeScale.enable) {\n return new Date(startTime.setHours(0, 0, 0, 0));\n }\n else {\n var timeSlots = this.getTimeSlotRows();\n var startDate = new Date(new Date(timeSlots[0].date.getTime()).\n setHours(startTime.getHours(), startTime.getMinutes(), startTime.getMilliseconds()));\n for (var i = 0; i < timeSlots.length; i++) {\n if (timeSlots[parseInt(i.toString(), 10)].date.getTime() > startDate.getTime()) {\n startTime.setHours(timeSlots[i - 1].date.getHours(), timeSlots[i - 1].date.getMinutes(), timeSlots[i - 1].date.getMilliseconds());\n return new Date(startTime);\n }\n }\n }\n return null;\n };\n VerticalView.prototype.destroy = function () {\n if (!this.parent || this.parent && this.parent.isDestroyed) {\n return;\n }\n this.clearCurrentTimeIndicatorTimer();\n if (this.element) {\n if (this.appointment) {\n this.appointment.destroy();\n this.appointment = null;\n }\n var contentScrollableEle = this.getContentAreaElement();\n if (contentScrollableEle) {\n EventHandler.remove(contentScrollableEle, 'scroll', this.onContentScroll);\n EventHandler.remove(contentScrollableEle, Browser.touchMoveEvent, this.onAdaptiveMove);\n }\n if (this.parent.resourceBase) {\n this.parent.resourceBase.destroy();\n }\n if (this.parent.scheduleTouchModule) {\n this.parent.scheduleTouchModule.resetValues();\n }\n _super.prototype.destroy.call(this);\n }\n };\n return VerticalView;\n}(ViewBase));\nexport { VerticalView };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { VerticalView } from './vertical-view';\n/**\n * day view\n */\nvar Day = /** @class */ (function (_super) {\n __extends(Day, _super);\n /**\n * Constructor for day view\n *\n * @param {Schedule} parent Accepts the schedule instance\n */\n function Day(parent) {\n var _this = _super.call(this, parent) || this;\n _this.viewClass = 'e-day-view';\n return _this;\n }\n /**\n * Get module name.\n *\n * @returns {string} Returns the module name.\n */\n Day.prototype.getModuleName = function () {\n return 'day';\n };\n return Day;\n}(VerticalView));\nexport { Day };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { VerticalView } from './vertical-view';\n/**\n * week view\n */\nvar Week = /** @class */ (function (_super) {\n __extends(Week, _super);\n /**\n * Constructor for week view\n *\n * @param {Schedule} parent Accepts the schedule instance\n */\n function Week(parent) {\n var _this = _super.call(this, parent) || this;\n _this.viewClass = 'e-week-view';\n return _this;\n }\n Week.prototype.startDate = function () {\n return this.getViewStartDate();\n };\n Week.prototype.endDate = function () {\n return this.getViewEndDate();\n };\n /**\n * Get module name.\n *\n * @returns {string} Returns the module name.\n */\n Week.prototype.getModuleName = function () {\n return 'week';\n };\n return Week;\n}(VerticalView));\nexport { Week };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { EventHandler, formatUnit, isNullOrUndefined, createElement, addClass, append, prepend, remove, extend } from '@syncfusion/ej2-base';\nimport { ViewBase } from './view-base';\nimport { MonthEvent } from '../event-renderer/month';\nimport * as util from '../base/util';\nimport * as event from '../base/constant';\nimport * as cls from '../base/css-constant';\n/**\n * month view\n */\nvar Month = /** @class */ (function (_super) {\n __extends(Month, _super);\n function Month(parent) {\n var _this = _super.call(this, parent) || this;\n _this.dayNameFormat = 'wide';\n _this.viewClass = 'e-month-view';\n _this.isInverseTableSelect = false;\n _this.monthEvent = null;\n _this.monthDates = {};\n return _this;\n }\n Month.prototype.addEventListener = function () {\n this.parent.on(event.scrollUiUpdate, this.onScrollUIUpdate, this);\n this.parent.on(event.dataReady, this.onDataReady, this);\n this.parent.on(event.cellClick, this.onCellClick, this);\n };\n Month.prototype.removeEventListener = function () {\n if (this.parent) {\n this.parent.off(event.scrollUiUpdate, this.onScrollUIUpdate);\n this.parent.off(event.dataReady, this.onDataReady);\n this.parent.off(event.cellClick, this.onCellClick);\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n Month.prototype.onDataReady = function (args) {\n this.monthEvent = new MonthEvent(this.parent);\n this.monthEvent.renderAppointments();\n this.parent.notify(event.eventsLoaded, {});\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n Month.prototype.onCellClick = function (event) { };\n Month.prototype.onContentScroll = function (e) {\n this.parent.removeNewEventElement();\n this.parent.notify(event.virtualScroll, e);\n this.scrollTopPanel(e.target);\n this.scrollLeftPanel(e.target);\n this.parent.uiStateValues.top = e.target.scrollTop;\n this.parent.uiStateValues.left = e.target.scrollLeft;\n this.setPersistence();\n };\n Month.prototype.scrollLeftPanel = function (target) {\n var leftPanel = this.getLeftPanelElement();\n if (leftPanel) {\n leftPanel.scrollTop = target.scrollTop;\n }\n };\n Month.prototype.getLeftPanelElement = function () {\n return this.element.querySelector('.' + cls.WEEK_NUMBER_WRAPPER_CLASS);\n };\n Month.prototype.onScrollUIUpdate = function (args) {\n var headerHeight = this.getHeaderBarHeight();\n var header = this.getDatesHeaderElement();\n var content = this.getContentAreaElement();\n var height = this.parent.element.offsetHeight - headerHeight - header.offsetHeight;\n var leftPanel = this.getLeftPanelElement();\n if (this.parent.height !== 'auto') {\n this.setContentHeight(content, leftPanel, height);\n }\n var scrollBarWidth = util.getScrollBarWidth();\n header.firstElementChild.style[args.cssProperties.rtlBorder] = '';\n header.style[args.cssProperties.rtlPadding] = '';\n if (content.offsetWidth - content.clientWidth > 0) {\n header.firstElementChild.style[args.cssProperties.border] = scrollBarWidth > 0 ? '1px' : '0px';\n header.style[args.cssProperties.padding] = scrollBarWidth > 0 ? scrollBarWidth - 1 + 'px' : '0px';\n }\n else {\n header.firstElementChild.style[args.cssProperties.border] = '';\n header.style[args.cssProperties.padding] = '';\n }\n this.setColWidth(content);\n if (args.scrollPosition || !args.isPreventScrollUpdate && this.parent.currentView === 'TimelineMonth') {\n var top_1 = this.parent.currentView === 'TimelineMonth' ? this.parent.uiStateValues.top : args.scrollPosition.top;\n if (leftPanel) {\n leftPanel.scrollTop = top_1;\n }\n content.scrollTop = top_1;\n if (this.parent.uiStateValues.isInitial) {\n this.scrollToSelectedDate();\n this.parent.uiStateValues.isInitial = false;\n }\n else {\n content.scrollLeft = this.parent.currentView === 'TimelineMonth' ? this.parent.uiStateValues.left :\n args.scrollPosition.left;\n }\n }\n else {\n this.scrollToSelectedDate();\n }\n this.retainScrollPosition();\n };\n Month.prototype.scrollToSelectedDate = function () {\n var headerCell = this.element.querySelector('.' + cls.HEADER_CELLS_CLASS + '[data-date=\"'\n + this.parent.selectedDate.getTime().toString() + '\"]');\n var content = this.getContentAreaElement();\n if (!isNullOrUndefined(headerCell)) {\n content.scrollLeft = !this.parent.enableRtl ?\n headerCell.offsetLeft : -(this.parent.getContentTable().offsetWidth - headerCell.offsetLeft - headerCell.offsetWidth);\n }\n else {\n content.scrollLeft = 0;\n }\n if (content.scrollLeft === 0 && this.parent.uiStateValues.isInitial) {\n this.parent.uiStateValues.left = 0;\n }\n };\n Month.prototype.setContentHeight = function (content, leftPanelElement, height) {\n content.style.height = 'auto';\n if (this.parent.currentView === 'Month') {\n content.style.height = formatUnit(height);\n }\n if (leftPanelElement) {\n if (this.parent.currentView === 'MonthAgenda') {\n height = (this.parent.activeViewOptions.interval > 1) ?\n this.getContentAreaElement().firstElementChild.offsetHeight :\n this.element.querySelector('.' + cls.CONTENT_TABLE_CLASS).offsetHeight;\n }\n leftPanelElement.style.height = 'auto';\n leftPanelElement.style.height = formatUnit(height - this.getScrollXIndent(content));\n }\n };\n Month.prototype.generateColumnLevels = function () {\n var colLevels = [];\n var level = this.getDateSlots(this.renderDates, this.parent.activeViewOptions.workDays);\n if (this.parent.activeViewOptions.group.resources.length > 0) {\n colLevels = this.parent.resourceBase.generateResourceLevels(level);\n if (this.parent.currentView === 'MonthAgenda') {\n colLevels = [level];\n }\n if (this.parent.uiStateValues.isGroupAdaptive && this.parent.resourceBase.lastResourceLevel.length > 0) {\n var resourceLevel = this.parent.resourceBase.lastResourceLevel[this.parent.uiStateValues.groupIndex];\n var levels_1 = this.getDateSlots(resourceLevel.renderDates, resourceLevel.workDays);\n if (this.parent.activeViewOptions.group.byDate && this.parent.activeViewOptions.group.hideNonWorkingDays) {\n var index = levels_1.findIndex(function (x, index) {\n return index !== 0 && x.date.getDay() === levels_1[0].date.getDay();\n });\n levels_1 = index > -1 ? levels_1.slice(0, index) : levels_1;\n }\n colLevels = [levels_1];\n }\n }\n else {\n colLevels.push(level);\n }\n this.colLevels = colLevels;\n return colLevels;\n };\n Month.prototype.getDateSlots = function (renderDates, workDays) {\n var count = this.parent.activeViewOptions.showWeekend ? util.WEEK_LENGTH : workDays.length;\n var dateSlots = [];\n var isCurrentMonth = this.isCurrentMonth(this.parent.selectedDate);\n for (var col = 0; col < count; col++) {\n var classList = [cls.HEADER_CELLS_CLASS];\n var currentDateIndex = renderDates.slice(0, count).map(function (date) { return date.getDay(); });\n if (isCurrentMonth && currentDateIndex.indexOf(this.parent.currentTimezoneDate.getDay()) === col) {\n classList.push(cls.CURRENT_DAY_CLASS);\n }\n dateSlots.push({ date: renderDates[parseInt(col.toString(), 10)], type: 'monthDay', className: classList, colSpan: 1, workDays: workDays });\n }\n return dateSlots;\n };\n Month.prototype.getDayNameFormat = function () {\n if (this.parent.isAdaptive || this.parent.activeViewOptions.group.resources.length > 0) {\n return 'abbreviated';\n }\n return 'wide';\n };\n Month.prototype.renderLayout = function (type) {\n this.dayNameFormat = this.getDayNameFormat();\n this.setPanel(createElement('div', { className: cls.TABLE_WRAP_CLASS }));\n var clsList = [this.viewClass];\n clsList.push(type);\n if (this.parent.activeViewOptions.group.byDate) {\n clsList.push('e-by-date');\n if (this.parent.currentView !== 'Month') {\n this.parent.activeViewOptions.group.hideNonWorkingDays = false;\n }\n }\n if (this.parent.activeViewOptions.allowVirtualScrolling && !this.parent.uiStateValues.isGroupAdaptive) {\n clsList.push(cls.VIRTUAL_SCROLL_CLASS);\n }\n if (this.parent.rowAutoHeight && this.parent.eventSettings.ignoreWhitespace) {\n clsList.push(cls.IGNORE_WHITESPACE);\n }\n addClass([this.element], clsList);\n this.renderPanel(type);\n this.element.appendChild(this.createTableLayout(cls.OUTER_TABLE_CLASS));\n this.element.querySelector('table').setAttribute('role', 'presentation');\n this.colLevels = this.generateColumnLevels();\n this.renderHeader();\n this.renderContent();\n var target = (this.parent.currentView === 'MonthAgenda') ? this.parent.activeView.getPanel() : this.parent.element;\n if (this.parent.uiStateValues.isGroupAdaptive && !target.querySelector('.' + cls.RESOURCE_TOOLBAR_CONTAINER)) {\n this.renderResourceMobileLayout();\n }\n this.parent.notify(event.contentReady, {});\n if (this.parent.uiStateValues.isCustomMonth) {\n this.parent.uiStateValues.isCustomMonth = false;\n }\n };\n Month.prototype.refreshHeader = function () {\n remove(this.element.querySelector('tbody tr'));\n this.renderHeader();\n this.parent.notify(event.contentReady, {});\n };\n Month.prototype.wireCellEvents = function (element) {\n EventHandler.add(element, 'mousedown', this.parent.workCellAction.cellMouseDown, this.parent.workCellAction);\n EventHandler.add(element, 'click', this.parent.workCellAction.cellClick, this.parent.workCellAction);\n if (!this.parent.isAdaptive) {\n EventHandler.add(element, 'dblclick', this.parent.workCellAction.cellDblClick, this.parent.workCellAction);\n }\n };\n Month.prototype.renderHeader = function () {\n var tr = createElement('tr');\n this.renderLeftIndent(tr);\n var dateTd = createElement('td');\n dateTd.appendChild(this.renderDatesHeader());\n tr.appendChild(dateTd);\n prepend([tr], this.element.querySelector('tbody'));\n };\n Month.prototype.renderLeftIndent = function (tr) {\n if (this.parent.activeViewOptions.showWeekNumber) {\n tr.appendChild(createElement('td', { className: 'e-left-indent' }));\n }\n };\n Month.prototype.renderContent = function () {\n if (this.parent.activeViewOptions.group.resources.length > 0) {\n this.parent.resourceBase.renderedResources = extend([], this.parent.resourceBase.lastResourceLevel, null, true);\n }\n var tr = createElement('tr');\n if (this.parent.activeViewOptions.showWeekNumber) {\n tr.appendChild(this.renderWeekNumberContent());\n }\n var workTd = createElement('td');\n var levels = this.colLevels.slice(0);\n if (this.parent.virtualScrollModule) {\n this.resetColLevels();\n }\n var wrap = createElement('div', { className: cls.CONTENT_WRAP_CLASS });\n var contentArea = this.renderContentArea();\n if (this.parent.currentView === 'Month') {\n wrap.appendChild(contentArea);\n }\n else {\n var monthAgendaWrapper = createElement('div', { className: cls.TABLE_CONTAINER_CLASS });\n monthAgendaWrapper.appendChild(contentArea);\n wrap.appendChild(monthAgendaWrapper);\n }\n EventHandler.add(wrap, 'scroll', this.onContentScroll, this);\n workTd.appendChild(wrap);\n tr.appendChild(workTd);\n if (this.parent.virtualScrollModule) {\n this.colLevels = levels;\n this.parent.virtualScrollModule.renderVirtualTrack(wrap);\n }\n this.element.querySelector('tbody').appendChild(tr);\n this.renderAppointmentContainer();\n };\n Month.prototype.renderWeekNumberContent = function () {\n var dateCol = this.renderDates.map(function (date) { return new Date(+date); });\n var td = createElement('td');\n var contentWrapper = createElement('div', { className: cls.WEEK_NUMBER_WRAPPER_CLASS });\n td.appendChild(contentWrapper);\n var contentWrapTable = this.createTableLayout();\n contentWrapper.appendChild(contentWrapTable);\n var noOfDays = this.parent.activeViewOptions.showWeekend ? util.WEEK_LENGTH :\n this.parent.activeViewOptions.workDays.length;\n for (var i = 0, length_1 = (this.renderDates.length / noOfDays); i < length_1; i++) {\n var dates = dateCol.splice(0, noOfDays);\n var weekNumber = this.parent.getWeekNumberContent(dates);\n contentWrapTable.querySelector('tbody').appendChild(this.createWeekNumberElement(weekNumber));\n }\n return td;\n };\n Month.prototype.renderAppointmentContainer = function () {\n //Here needs to render mobile view appointment details on selected date\n };\n Month.prototype.renderDatesHeader = function () {\n var container = createElement('div', { className: cls.DATE_HEADER_CONTAINER_CLASS });\n var wrap = createElement('div', { className: cls.DATE_HEADER_WRAP_CLASS });\n container.appendChild(wrap);\n var table = this.createTableLayout();\n if (this.parent.currentView === 'Month') {\n var thead = createElement('thead');\n thead.appendChild(createElement('tr'));\n prepend([thead], table);\n }\n this.createColGroup(table, this.colLevels[this.colLevels.length - 1]);\n var trEle = createElement('tr');\n for (var i = 0; i < this.colLevels.length; i++) {\n var level = this.colLevels[parseInt(i.toString(), 10)];\n var ntr = trEle.cloneNode();\n for (var j = 0; j < level.length; j++) {\n var td = level[parseInt(j.toString(), 10)];\n ntr.appendChild(this.createHeaderCell(td));\n }\n table.querySelector('tbody').appendChild(ntr);\n }\n wrap.appendChild(table);\n return container;\n };\n Month.prototype.createHeaderCell = function (td) {\n var tdEle = createElement('td');\n this.addAttributes(td, tdEle);\n if (td.type === 'monthDay') {\n var ele = createElement('span', { innerHTML: util.capitalizeFirstWord(this.parent.getDayNames(this.dayNameFormat)[td.date.getDay()], 'single') });\n tdEle.appendChild(ele);\n }\n if (td.type === 'resourceHeader') {\n this.setResourceHeaderContent(tdEle, td);\n }\n if (td.type === 'dateHeader') {\n addClass([tdEle], cls.DATE_HEADER_CLASS);\n tdEle.setAttribute('data-date', td.date.getTime().toString());\n if (this.parent.activeViewOptions.dateHeaderTemplate) {\n var cellArgs = { date: td.date, type: td.type };\n var elementId = this.parent.element.id + '_';\n var viewName = this.parent.activeViewOptions.dateHeaderTemplateName;\n var templateId = elementId + viewName + 'dateHeaderTemplate';\n var dateTemplate = [].slice.call(this.parent.getDateHeaderTemplate()(cellArgs, this.parent, 'dateHeaderTemplate', templateId, false));\n if (dateTemplate && dateTemplate.length) {\n append(dateTemplate, tdEle);\n }\n }\n else {\n var ele = createElement('span', { className: cls.NAVIGATE_CLASS });\n var skeleton = 'full';\n var title = this.parent.globalize.formatDate(td.date, { skeleton: skeleton, calendar: this.parent.getCalendarMode() });\n ele.setAttribute('title', util.capitalizeFirstWord(title, 'multiple'));\n var innerText = (this.parent.calendarUtil.isMonthStart(td.date) && !this.isCurrentDate(td.date) && !this.parent.isAdaptive) ?\n this.parent.globalize.formatDate(td.date, { format: 'MMM d', calendar: this.parent.getCalendarMode() }) :\n this.parent.globalize.formatDate(td.date, { skeleton: 'd', calendar: this.parent.getCalendarMode() });\n ele.innerHTML = util.capitalizeFirstWord(innerText, 'single');\n tdEle.appendChild(ele);\n }\n this.wireCellEvents(tdEle);\n }\n var args = { elementType: td.type, element: tdEle, date: td.date, groupIndex: td.groupIndex };\n this.parent.trigger(event.renderCell, args);\n return tdEle;\n };\n Month.prototype.getContentSlots = function () {\n if (!(this.colLevels[this.colLevels.length - 1] && this.colLevels[this.colLevels.length - 1][0])) {\n return [];\n }\n var slotDatas = [];\n var prepareSlots = function (rowIndex, renderDate, resData, classList) {\n var data = {\n date: new Date(+renderDate), groupIndex: resData.groupIndex, workDays: resData.workDays,\n type: 'monthCells', className: classList || [cls.WORK_CELLS_CLASS]\n };\n if (!slotDatas[parseInt(rowIndex.toString(), 10)]) {\n slotDatas[parseInt(rowIndex.toString(), 10)] = [];\n }\n slotDatas[parseInt(rowIndex.toString(), 10)].push(data);\n };\n var includeResource = this.parent.currentView !== 'MonthAgenda' &&\n this.parent.activeViewOptions.group.resources.length > 0;\n if (includeResource && !this.parent.uiStateValues.isGroupAdaptive && !this.parent.activeViewOptions.group.byDate) {\n for (var _i = 0, _a = this.colLevels[this.colLevels.length - 2]; _i < _a.length; _i++) {\n var res = _a[_i];\n var dates = res.renderDates.map(function (date) { return new Date(+date); });\n var count = this.parent.activeViewOptions.showWeekend ? util.WEEK_LENGTH : res.workDays.length;\n for (var i = 0; i < (res.renderDates.length / count); i++) {\n var colDates = dates.splice(0, count);\n for (var _b = 0, colDates_1 = colDates; _b < colDates_1.length; _b++) {\n var colDate = colDates_1[_b];\n prepareSlots(i, colDate, res);\n }\n }\n }\n }\n else {\n var dates = this.renderDates.map(function (date) { return new Date(+date); });\n var count = this.parent.activeViewOptions.showWeekend ? util.WEEK_LENGTH :\n this.parent.activeViewOptions.workDays.length;\n var level = this.colLevels.slice(0, 1)[0];\n var startIndex = this.renderDates.map(Number).indexOf(+level[0].date);\n for (var i = 0; i < (this.renderDates.length / count); i++) {\n var colDates = dates.splice(0, count);\n var k = startIndex;\n var _loop_1 = function (j) {\n var colDate = colDates[parseInt(k.toString(), 10)];\n k++;\n if (includeResource) {\n var lastRow = this_1.colLevels[(this_1.colLevels.length - 1)];\n var rowCount = lastRow.length / count;\n var resourcesTd = lastRow.slice(0, rowCount);\n if (this_1.parent.activeViewOptions.group.hideNonWorkingDays) {\n resourcesTd = lastRow.filter(function (x) { return x.date.getDay() === colDate.getDay(); });\n if (resourcesTd.length === 0) {\n j = j - 1;\n return out_j_1 = j, \"continue\";\n }\n }\n for (var resIndex = 0; resIndex < resourcesTd.length; resIndex++) {\n var clsList = void 0;\n if (resIndex !== 0) {\n clsList = [cls.WORK_CELLS_CLASS, cls.DISABLE_DATE];\n }\n prepareSlots(i, colDate, resourcesTd[parseInt(resIndex.toString(), 10)], clsList);\n }\n }\n else {\n prepareSlots(i, colDate, this_1.colLevels[this_1.colLevels.length - 1][0]);\n }\n out_j_1 = j;\n };\n var this_1 = this, out_j_1;\n for (var j = startIndex; j < (this.colLevels[0].length + startIndex) && j < colDates.length; j++) {\n _loop_1(j);\n j = out_j_1;\n }\n }\n }\n return slotDatas;\n };\n Month.prototype.updateClassList = function (data) {\n if (!this.isCustomMonth() && this.isOtherMonth(data.date)) {\n data.className.push(cls.OTHERMONTH_CLASS);\n }\n if (!this.parent.isMinMaxDate(data.date)) {\n data.className.push(cls.DISABLE_DATES);\n }\n this.updateSelectedCellClass(data);\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n Month.prototype.updateSelectedCellClass = function (data) {\n return;\n };\n Month.prototype.isOtherMonth = function (date) {\n return date.getTime() < this.monthDates.start.getTime() || date.getTime() > this.monthDates.end.getTime();\n };\n Month.prototype.renderContentArea = function () {\n var tbl = this.createTableLayout(cls.CONTENT_TABLE_CLASS);\n this.setAriaAttributes(tbl);\n this.addAutoHeightClass(tbl);\n if (this.parent.currentView === 'TimelineMonth') {\n this.createColGroup(tbl, this.colLevels[this.colLevels.length - 1]);\n }\n var monthDate = new Date(this.parent.selectedDate.getTime());\n this.monthDates = {\n start: this.parent.calendarUtil.firstDateOfMonth(monthDate),\n end: this.parent.calendarUtil.lastDateOfMonth(util.addMonths(monthDate, this.parent.activeViewOptions.interval - 1))\n };\n var tBody = tbl.querySelector('tbody');\n append(this.getContentRows(), tBody);\n this.wireCellEvents(tBody);\n return tbl;\n };\n Month.prototype.getContentRows = function () {\n var trows = [];\n var tr = createElement('tr');\n var td = createElement('td', { attrs: { 'aria-selected': 'false' } });\n var slotDatas = this.getContentSlots();\n for (var row = 0; row < slotDatas.length; row++) {\n var ntr = tr.cloneNode();\n for (var col = 0; col < slotDatas[parseInt(row.toString(), 10)].length; col++) {\n var ntd = this.createContentTd(slotDatas[parseInt(row.toString(), 10)][parseInt(col.toString(), 10)], td);\n ntr.appendChild(ntd);\n }\n trows.push(ntr);\n }\n return trows;\n };\n Month.prototype.createContentTd = function (data, td) {\n var ntd = td.cloneNode();\n if (data.colSpan) {\n ntd.setAttribute('colspan', data.colSpan.toString());\n }\n this.updateClassList(data);\n var type = data.type;\n if (data.className.indexOf(cls.RESOURCE_PARENT_CLASS) !== -1) {\n data.className.push(cls.RESOURCE_GROUP_CELLS_CLASS);\n type = 'resourceGroupCells';\n }\n if (this.parent.workHours.highlight && this.isWorkDay(data.date, data.workDays)) {\n data.className.push(cls.WORKDAY_CLASS);\n }\n if (this.isCurrentDate(data.date)) {\n data.className.push(cls.CURRENTDATE_CLASS);\n }\n addClass([ntd], data.className);\n ntd.setAttribute('data-date', data.date.getTime().toString());\n if (!isNullOrUndefined(data.groupIndex) || this.parent.uiStateValues.isGroupAdaptive) {\n var groupIndex = this.parent.uiStateValues.isGroupAdaptive ? this.parent.uiStateValues.groupIndex :\n data.groupIndex;\n ntd.setAttribute('data-group-index', '' + groupIndex);\n }\n this.renderDateHeaderElement(data, ntd);\n if (this.parent.activeViewOptions.cellTemplate) {\n var args_1 = { date: data.date, type: type, groupIndex: data.groupIndex };\n var scheduleId = this.parent.element.id + '_';\n var viewName = this.parent.activeViewOptions.cellTemplateName;\n var templateId = scheduleId + viewName + 'cellTemplate';\n var cellTemplate = [].slice.call(this.parent.getCellTemplate()(args_1, this.parent, 'cellTemplate', templateId, false));\n append(cellTemplate, ntd);\n }\n var args = { elementType: type, element: ntd, date: data.date, groupIndex: data.groupIndex };\n this.parent.trigger(event.renderCell, args);\n return ntd;\n };\n Month.prototype.renderDateHeaderElement = function (data, ntd) {\n if (this.parent.currentView === 'TimelineMonth') {\n return;\n }\n var dateHeader = createElement('div', { className: cls.DATE_HEADER_CLASS });\n if (this.parent.activeViewOptions.cellHeaderTemplate) {\n var args = { date: data.date, type: data.type, groupIndex: data.groupIndex };\n var scheduleId = this.parent.element.id + '_';\n var viewName = this.parent.activeViewOptions.cellHeaderTemplateName;\n var templateId = scheduleId + viewName + 'cellHeaderTemplate';\n var cellHeaderTemplate = [].slice.call(this.parent.getCellHeaderTemplate()(args, this.parent, 'cellHeaderTemplate', templateId, false));\n append(cellHeaderTemplate, dateHeader);\n }\n else {\n var innerText = (this.parent.calendarUtil.isMonthStart(data.date) && !this.isCurrentDate(data.date) && !this.parent.isAdaptive) ?\n this.parent.globalize.formatDate(data.date, { format: 'MMM d', calendar: this.parent.getCalendarMode() }) :\n this.parent.globalize.formatDate(data.date, { skeleton: 'd', calendar: this.parent.getCalendarMode() });\n dateHeader.innerHTML = util.capitalizeFirstWord(innerText, 'single');\n }\n ntd.appendChild(dateHeader);\n if (this.getModuleName() === 'month') {\n addClass([dateHeader], cls.NAVIGATE_CLASS);\n var skeleton = 'full';\n var announcementText = this.parent.globalize.formatDate(data.date, { skeleton: skeleton, calendar: this.parent.getCalendarMode() });\n ntd.setAttribute('aria-label', announcementText);\n }\n };\n Month.prototype.getMonthStart = function (currentDate) {\n var useDisplayDate = this.parent.currentView === 'Month' && !isNullOrUndefined(this.parent.activeViewOptions.displayDate) && (this.parent.uiStateValues.isCustomMonth || this.isCustomRange());\n var date = useDisplayDate ? this.parent.activeViewOptions.displayDate : !(this.parent.uiStateValues.isCustomMonth ||\n this.isCustomRange()) && this.isCustomMonth() ? currentDate : this.parent.calendarUtil.firstDateOfMonth(currentDate);\n var monthStart = util.getWeekFirstDate(date, this.parent.activeViewOptions.firstDayOfWeek);\n return new Date(monthStart.getFullYear(), monthStart.getMonth(), monthStart.getDate());\n };\n Month.prototype.getMonthEnd = function (currentDate) {\n if (this.isCustomMonth()) {\n var start = this.getMonthStart(currentDate);\n var numberOfDays = util.WEEK_LENGTH * (this.parent.activeViewOptions.numberOfWeeks > 0 ?\n this.parent.activeViewOptions.numberOfWeeks : util.DEFAULT_WEEKS);\n return util.addDays(start, (numberOfDays - 1));\n }\n else {\n var endDate = util.addMonths(currentDate, this.parent.activeViewOptions.interval - 1);\n var lastWeekOfMonth = util.getWeekFirstDate(this.parent.calendarUtil.lastDateOfMonth(endDate), this.parent.activeViewOptions.firstDayOfWeek);\n return util.addDays(lastWeekOfMonth, util.WEEK_LENGTH - 1);\n }\n };\n Month.prototype.isCustomRange = function () {\n var dates = this.parent.getCurrentViewDates();\n if (dates && dates.length > 0) {\n var selectedTime = util.resetTime(this.parent.selectedDate).getTime();\n var weekFirstDate = util.getWeekFirstDate(dates[dates.length - 1], this.parent.activeViewOptions.firstDayOfWeek);\n return !(selectedTime >= util.getWeekFirstDate(dates[0], this.parent.activeViewOptions.firstDayOfWeek).getTime() &&\n selectedTime <= util.addDays(weekFirstDate, 6).getTime());\n }\n return false;\n };\n Month.prototype.getRenderDates = function (workDays) {\n var renderDates = [];\n var currentDate = util.resetTime(this.parent.selectedDate);\n var start = this.getMonthStart(currentDate);\n var monthEnd = this.getMonthEnd(currentDate);\n do {\n if (this.parent.activeViewOptions.showWeekend) {\n renderDates.push(start);\n }\n else {\n if (this.isWorkDay(start, workDays)) {\n renderDates.push(start);\n }\n }\n start = util.addDays(start, 1);\n if (start.getHours() > 0) {\n start = util.resetTime(start);\n }\n } while (start.getTime() <= monthEnd.getTime());\n if (!workDays) {\n this.renderDates = renderDates;\n }\n if (this.parent.headerModule) {\n this.parent.headerModule.previousNextIconHandler();\n }\n return renderDates;\n };\n Month.prototype.getNextPreviousDate = function (type) {\n if (this.isCustomMonth()) {\n var dates = this.parent.getCurrentViewDates();\n var date = util.getWeekFirstDate(type === 'next' ? dates[dates.length - 1]\n : dates[0], this.parent.activeViewOptions.firstDayOfWeek);\n return util.addDays(date, type === 'next' ? util.WEEK_LENGTH : -(this.parent.activeViewOptions.numberOfWeeks > 0 ?\n this.parent.activeViewOptions.numberOfWeeks : util.DEFAULT_WEEKS) * util.WEEK_LENGTH);\n }\n else {\n return util.addMonths(this.parent.selectedDate, ((type === 'next' ? 1 : -1) * this.parent.activeViewOptions.interval));\n }\n };\n Month.prototype.getStartDate = function () {\n return this.getMonthStart(this.parent.selectedDate);\n };\n Month.prototype.getEndDate = function () {\n return this.getMonthEnd(this.parent.selectedDate);\n };\n Month.prototype.getEndDateFromStartDate = function (start) {\n return util.addDays(new Date(start.getTime()), 1);\n };\n Month.prototype.getDateRangeText = function () {\n if (this.parent.isAdaptive || isNullOrUndefined(this.parent.activeViewOptions.dateFormat)) {\n var startDate = this.parent.selectedDate;\n var endDate = void 0;\n var updateCustomRange = false;\n if (this.isCustomMonth()) {\n var dates = this.parent.getCurrentViewDates();\n updateCustomRange = dates[0].getMonth() !== dates[dates.length - 1].getMonth() ||\n dates[0].getFullYear() !== dates[dates.length - 1].getFullYear();\n if (updateCustomRange) {\n startDate = dates[0];\n endDate = dates[dates.length - 1];\n }\n }\n var isUpdateDateRange = (this.parent.currentView !== 'Month' || !this.isCustomMonth());\n if (this.parent.activeViewOptions.interval > 1 && isUpdateDateRange || updateCustomRange) {\n endDate = endDate ? endDate : util.addMonths(util.lastDateOfMonth(startDate), this.parent.activeViewOptions.interval - 1);\n if (startDate.getFullYear() === endDate.getFullYear()) {\n var monthNames = (this.parent.globalize.formatDate(startDate, { format: 'MMMM', calendar: this.parent.getCalendarMode() })) + ' - ' +\n (this.parent.globalize.formatDate(endDate, { format: 'MMMM ', calendar: this.parent.getCalendarMode() })) +\n this.parent.globalize.formatDate(endDate, { skeleton: 'y', calendar: this.parent.getCalendarMode() });\n return util.capitalizeFirstWord(monthNames, 'single');\n }\n var text = (this.parent.globalize.formatDate(startDate, { format: 'MMMM', calendar: this.parent.getCalendarMode() })) + ' ' +\n startDate.getFullYear() + ' - ' +\n this.parent.globalize.formatDate(endDate, { format: 'MMMM ', calendar: this.parent.getCalendarMode() }) +\n this.parent.globalize.formatDate(endDate, { skeleton: 'y', calendar: this.parent.getCalendarMode() });\n return util.capitalizeFirstWord(text, 'single');\n }\n var format = (this.parent.activeViewOptions.dateFormat) ? this.parent.activeViewOptions.dateFormat : 'MMMM y';\n return util.capitalizeFirstWord(this.parent.globalize.formatDate(startDate, { format: format, calendar: this.parent.getCalendarMode() }), 'single');\n }\n return this.formatDateRange(this.parent.selectedDate);\n };\n Month.prototype.getLabelText = function (view) {\n return this.parent.localeObj.getConstant(view) + ' of ' + util.capitalizeFirstWord(this.parent.globalize.formatDate(this.parent.selectedDate, { format: 'MMMM y', calendar: this.parent.getCalendarMode() }), 'single');\n };\n Month.prototype.createWeekNumberElement = function (text) {\n var tr = createElement('tr');\n var td = createElement('td', {\n className: cls.WEEK_NUMBER_CLASS,\n attrs: { 'title': (text ? this.parent.localeObj.getConstant('week') + ' ' + text : '') },\n innerHTML: (text || '')\n });\n tr.appendChild(td);\n var args = { elementType: 'weekNumberCell', element: td };\n this.parent.trigger(event.renderCell, args);\n return tr;\n };\n Month.prototype.unWireEvents = function () {\n var contentScrollableEle = this.element.querySelector('.' + cls.CONTENT_WRAP_CLASS);\n if (contentScrollableEle) {\n EventHandler.remove(contentScrollableEle, 'scroll', this.onContentScroll);\n }\n };\n Month.prototype.isCustomMonth = function () {\n return this.parent.currentView === 'Month' &&\n (!isNullOrUndefined(this.parent.activeViewOptions.displayDate) || this.parent.activeViewOptions.numberOfWeeks > 0);\n };\n Month.prototype.getModuleName = function () {\n return 'month';\n };\n Month.prototype.destroy = function () {\n if (!this.parent || this.parent && this.parent.isDestroyed) {\n return;\n }\n if (this.element) {\n if (this.monthEvent) {\n this.monthEvent.destroy();\n this.monthEvent = null;\n }\n this.unWireEvents();\n if (this.parent.resourceBase) {\n this.parent.resourceBase.destroy();\n }\n if (this.parent.scheduleTouchModule) {\n this.parent.scheduleTouchModule.resetValues();\n }\n _super.prototype.destroy.call(this);\n }\n };\n return Month;\n}(ViewBase));\nexport { Month };\n","import { createElement } from '@syncfusion/ej2-base';\nimport { MS_PER_DAY, capitalizeFirstWord } from '../base/util';\n/**\n * timeline header rows\n */\nvar TimelineHeaderRow = /** @class */ (function () {\n function TimelineHeaderRow(parent, renderDates) {\n this.parent = parent;\n this.renderDates = renderDates;\n }\n TimelineHeaderRow.prototype.groupByYear = function (dates) {\n var result = {};\n for (var _i = 0, dates_1 = dates; _i < dates_1.length; _i++) {\n var d = dates_1[_i];\n var key = d.getFullYear();\n result[parseInt(key.toString(), 10)] = result[parseInt(key.toString(), 10)] || [];\n result[parseInt(key.toString(), 10)].push(d);\n }\n return result;\n };\n TimelineHeaderRow.prototype.groupByMonth = function (dates) {\n var result = {};\n for (var _i = 0, dates_2 = dates; _i < dates_2.length; _i++) {\n var d = dates_2[_i];\n var key = (d.getFullYear() - 1970) * 12 + d.getMonth();\n result[parseInt(key.toString(), 10)] = result[parseInt(key.toString(), 10)] || [];\n result[parseInt(key.toString(), 10)].push(d);\n }\n return result;\n };\n TimelineHeaderRow.prototype.groupByWeek = function (dates) {\n var result = {};\n for (var _i = 0, dates_3 = dates; _i < dates_3.length; _i++) {\n var d = dates_3[_i];\n var jsDate = +new Date(1970, 0, 1);\n var tzOffsetDiff = d.getTimezoneOffset() - new Date(1970, 0, 1).getTimezoneOffset();\n var key = Math.ceil(((((+d - jsDate) - (tzOffsetDiff * 60 * 1000)) / MS_PER_DAY) + new Date(jsDate).getDay() + 1) / 7);\n if (this.parent.firstDayOfWeek && this.parent.firstDayOfWeek > new Date(+d).getDay()) {\n key = key - 1;\n }\n result[parseInt(key.toString(), 10)] = result[parseInt(key.toString(), 10)] || [];\n result[parseInt(key.toString(), 10)].push(d);\n }\n return result;\n };\n TimelineHeaderRow.prototype.generateSlots = function (data, colspan, row, cls, type) {\n var _this = this;\n var dateParser = function (date, format) {\n return _this.parent.globalize.formatDate(date, { format: format, calendar: _this.parent.getCalendarMode() });\n };\n var tdDatas = [];\n var keys = Object.keys(data);\n for (var i = 0; i < keys.length; i++) {\n var dates = data[keys[parseInt(i.toString(), 10)]];\n var htmlCol = void 0;\n if (row.template) {\n var args = { date: dates[0], type: type };\n var templateId = this.parent.element.id + '_headerRowTemplate';\n htmlCol = [].slice.call(this.parent.templateParser(row.template)(args, this.parent, 'template', templateId, false));\n }\n else {\n var viewTemplate = void 0;\n switch (row.option) {\n case 'Year':\n viewTemplate = \"\" + dateParser(dates[0], 'y') + \"\";\n break;\n case 'Month':\n viewTemplate = \"\" + capitalizeFirstWord(dateParser(dates[0], 'MMMM'), 'single') + \"\";\n break;\n case 'Week':\n viewTemplate = \"\" + this.parent.getWeekNumberContent(dates) + \"\";\n }\n var headerWrapper = createElement('div', { innerHTML: viewTemplate });\n htmlCol = [].slice.call(headerWrapper.childNodes);\n }\n tdDatas.push({ date: dates[0], type: type, className: [cls], colSpan: dates.length * colspan, template: htmlCol });\n }\n return tdDatas;\n };\n TimelineHeaderRow.prototype.generateColumnLevels = function (dateSlots, hourSlots) {\n var levels = [];\n var rows = this.parent.activeViewOptions.headerRows;\n var lastLevelColspan = 1;\n if (rows[rows.length - 1].option === 'Hour' && hourSlots.length > 0) {\n lastLevelColspan = hourSlots.length / dateSlots.length;\n }\n var tdDatas = [];\n var byYear;\n var byMonth;\n var byWeek;\n for (var _i = 0, rows_1 = rows; _i < rows_1.length; _i++) {\n var row = rows_1[_i];\n switch (row.option) {\n case 'Year':\n byYear = this.groupByYear(this.renderDates);\n tdDatas = this.generateSlots(byYear, lastLevelColspan, row, 'e-header-year-cell', 'yearHeader');\n levels.push(tdDatas);\n break;\n case 'Month':\n byMonth = this.groupByMonth(this.renderDates);\n tdDatas = this.generateSlots(byMonth, lastLevelColspan, row, 'e-header-month-cell', 'monthHeader');\n levels.push(tdDatas);\n break;\n case 'Week':\n byWeek = this.groupByWeek(this.renderDates);\n tdDatas = this.generateSlots(byWeek, lastLevelColspan, row, 'e-header-week-cell', 'weekHeader');\n levels.push(tdDatas);\n break;\n case 'Date':\n tdDatas = dateSlots;\n tdDatas = tdDatas.map(function (value) {\n value.colSpan = lastLevelColspan;\n return value;\n });\n levels.push(tdDatas);\n break;\n case 'Hour':\n if (hourSlots.length > 0) {\n levels.push(hourSlots);\n }\n break;\n }\n }\n return levels;\n };\n return TimelineHeaderRow;\n}());\nexport { TimelineHeaderRow };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { isNullOrUndefined, createElement, prepend, extend, formatUnit, append, setStyleAttribute } from '@syncfusion/ej2-base';\nimport { VerticalView } from './vertical-view';\nimport { TimelineEvent } from '../event-renderer/timeline-view';\nimport { TimelineHeaderRow } from './timeline-header-row';\nimport * as event from '../base/constant';\nimport * as cls from '../base/css-constant';\nimport * as util from '../base/util';\n/**\n * timeline views\n */\nvar TimelineViews = /** @class */ (function (_super) {\n __extends(TimelineViews, _super);\n function TimelineViews(parent) {\n var _this = _super.call(this, parent) || this;\n _this.timelineAppointment = null;\n _this.baseCssClass = 'e-timeline-view';\n return _this;\n }\n TimelineViews.prototype.getModuleName = function () {\n return 'timelineViews';\n };\n TimelineViews.prototype.getLeftPanelElement = function () {\n return this.element.querySelector('.' + cls.RESOURCE_COLUMN_WRAP_CLASS);\n };\n TimelineViews.prototype.scrollTopPanel = function (target) {\n _super.prototype.scrollTopPanel.call(this, target);\n this.scrollHeaderLabels(target);\n };\n TimelineViews.prototype.scrollToWorkHour = function () {\n var start = this.parent.getStartEndTime(this.parent.workHours.start);\n var currDateTime = this.isWorkDay(this.parent.selectedDate) && this.parent.workHours.highlight &&\n !isNullOrUndefined(start) ? new Date(+this.parent.selectedDate).setHours(start.getHours(), start.getMinutes(), 0, 0)\n : new Date(+this.parent.selectedDate).setHours(0, 0, 0, 0);\n var queryString = '[data-date=\"' + new Date(currDateTime).getTime().toString() + '\"]';\n var firstWorkHourCell = this.element.querySelector(queryString);\n if (firstWorkHourCell) {\n this.getContentAreaElement().scrollLeft = !this.parent.enableRtl ? firstWorkHourCell.offsetLeft :\n -(this.parent.getContentTable().offsetWidth - firstWorkHourCell.offsetLeft - firstWorkHourCell.offsetWidth);\n }\n };\n TimelineViews.prototype.scrollToHour = function (hour, scrollDate) {\n var date;\n var index;\n if (scrollDate) {\n index = this.parent.getIndexOfDate(this.renderDates, util.resetTime(scrollDate));\n if (index >= 0) {\n date = scrollDate;\n if (!isNullOrUndefined(hour)) {\n var timeString = hour.split(':');\n if (timeString.length === 2) {\n date = new Date(scrollDate.setHours(parseInt(timeString[0], 10), parseInt(timeString[1], 10), 0));\n }\n }\n }\n }\n date = isNullOrUndefined(scrollDate) ? this.parent.getStartEndTime(hour) : date;\n if (isNullOrUndefined(date)) {\n return;\n }\n var scrollLeft;\n if (isNullOrUndefined(hour) || !this.parent.activeViewOptions.timeScale.enable) {\n scrollLeft = index * this.getWorkCellWidth();\n }\n else {\n scrollLeft = isNullOrUndefined(scrollDate) ? this.getLeftFromDateTime(null, date) :\n this.getLeftFromDateTime([index], date);\n }\n this.getScrollableElement().scrollLeft = !this.parent.enableRtl ? scrollLeft : -scrollLeft;\n };\n TimelineViews.prototype.generateColumnLevels = function () {\n var levels = [];\n var dateSlots = this.getDateSlots(this.renderDates, this.parent.activeViewOptions.workDays);\n levels.push(dateSlots);\n if (this.parent.activeViewOptions.group.resources.length > 0) {\n this.parent.resourceBase.generateResourceLevels(dateSlots, !this.parent.uiStateValues.isGroupAdaptive);\n }\n var hourSlots = [];\n if (this.parent.activeViewOptions.timeScale.enable) {\n hourSlots = this.generateTimeSlots(levels[levels.length - 1]);\n levels.push(hourSlots);\n }\n if (this.parent.activeViewOptions.headerRows.length > 0) {\n var renderGn = new TimelineHeaderRow(this.parent, this.renderDates);\n levels = renderGn.generateColumnLevels(dateSlots, hourSlots);\n }\n return levels;\n };\n TimelineViews.prototype.generateTimeSlots = function (dateSlots) {\n var _this = this;\n var handler = function (r) {\n r.type = r.first ? 'majorSlot' : 'minorSlot';\n r.className = r.first ? [cls.TIME_SLOT_CLASS] : [cls.TIME_SLOT_CLASS, cls.TIME_CELLS_CLASS];\n r.workDays = _this.parent.activeViewOptions.workDays;\n return r;\n };\n var timeSlotData = this.getTimeSlotRows(handler);\n var slots = [];\n for (var _i = 0, dateSlots_1 = dateSlots; _i < dateSlots_1.length; _i++) {\n var data = dateSlots_1[_i];\n data.colSpan = timeSlotData.length;\n var tempTimeSlots = extend([], timeSlotData, null, true);\n for (var _a = 0, tempTimeSlots_1 = tempTimeSlots; _a < tempTimeSlots_1.length; _a++) {\n var slot = tempTimeSlots_1[_a];\n var cellDate = util.resetTime(new Date('' + data.date));\n slot.date = util.setTime(cellDate, util.getDateInMs(slot.date));\n slots.push(slot);\n }\n }\n return slots;\n };\n TimelineViews.prototype.changeCurrentTimePosition = function () {\n if (!this.parent || this.parent && this.parent.isDestroyed) {\n return;\n }\n this.removeCurrentTimeIndicatorElements();\n var currentDateIndex = this.getCurrentTimeIndicatorIndex();\n var left = this.getLeftFromDateTime(currentDateIndex, this.parent.getCurrentTime());\n var height = this.element.querySelector('.' + cls.CONTENT_TABLE_CLASS).offsetHeight;\n var headerWrap = this.element.querySelector('.' + cls.DATE_HEADER_WRAP_CLASS);\n var contentWrap = this.element.querySelector('.' + cls.CONTENT_WRAP_CLASS);\n contentWrap.appendChild(createElement('div', {\n className: cls.CURRENT_TIMELINE_CLASS,\n styles: (this.parent.enableRtl ? 'right' : 'left') + ':' + formatUnit(left) + '; height:' + formatUnit(height)\n }));\n if (this.parent.virtualScrollModule) {\n var timeIndicator = this.parent.element.querySelector('.' + cls.CURRENT_TIMELINE_CLASS);\n var element = this.parent.element.querySelector('.' + cls.CONTENT_WRAP_CLASS + ' table');\n setStyleAttribute(timeIndicator, {\n transform: element.style.transform\n });\n }\n var currentTimeEle = createElement('div', {\n innerHTML: this.parent.getTimeString(this.parent.getCurrentTime()),\n className: cls.CURRENT_TIME_CLASS\n });\n headerWrap.appendChild(currentTimeEle);\n currentTimeEle.style[this.parent.enableRtl ? 'right' : 'left'] = formatUnit(left - (currentTimeEle.offsetWidth / 2));\n };\n TimelineViews.prototype.getLeftFromDateTime = function (currentDateIndex, date) {\n var startHour = this.getStartHour();\n var diffInDates = 0;\n var diffInMinutes = ((date.getHours() - startHour.getHours()) * 60) + (date.getMinutes() - startHour.getMinutes());\n if (!isNullOrUndefined(currentDateIndex)) {\n if (currentDateIndex[0] !== 0) {\n if (this.parent.activeView.colLevels[0] && this.parent.activeView.colLevels[0][0].colSpan) {\n diffInDates = currentDateIndex[0] * this.parent.activeView.colLevels[0][0].colSpan * this.getWorkCellWidth();\n }\n else {\n var endHour = this.getEndHour();\n var end = (endHour.getHours() === 0) ? 24 : endHour.getHours();\n diffInMinutes = diffInMinutes + ((currentDateIndex[0]) * (((end - startHour.getHours()) * 60) + (endHour.getMinutes() - startHour.getMinutes())));\n }\n }\n }\n return diffInDates + ((diffInMinutes * this.getWorkCellWidth() * this.parent.activeViewOptions.timeScale.slotCount) /\n this.parent.activeViewOptions.timeScale.interval);\n };\n TimelineViews.prototype.getWorkCellWidth = function () {\n return this.element.querySelector('.e-work-cells').getBoundingClientRect().width;\n };\n TimelineViews.prototype.renderHeader = function () {\n var tr = createElement('tr');\n if (this.parent.activeViewOptions.group.resources.length > 0 && !this.parent.uiStateValues.isGroupAdaptive) {\n this.parent.resourceBase.renderResourceHeaderIndent(tr);\n }\n var dateTd = createElement('td');\n dateTd.appendChild(this.renderDatesHeader());\n tr.appendChild(dateTd);\n prepend([tr], this.element.querySelector('tbody'));\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n TimelineViews.prototype.createAllDayRow = function (table, tdData) { };\n TimelineViews.prototype.getCurrentTimeIndicatorIndex = function () {\n var currentDateIndex = [];\n var index = this.parent.getIndexOfDate(this.renderDates, util.resetTime(this.parent.getCurrentTime()));\n if (index >= 0) {\n currentDateIndex.push(index);\n }\n return currentDateIndex;\n };\n TimelineViews.prototype.renderContent = function () {\n var tr = createElement('tr');\n if (this.parent.activeViewOptions.group.resources.length > 0 && !this.parent.uiStateValues.isGroupAdaptive) {\n var resTd = createElement('td');\n resTd.appendChild(this.parent.resourceBase.createResourceColumn());\n tr.appendChild(resTd);\n }\n var workTd = createElement('td');\n var wrap = this.renderContentArea();\n wrap.appendChild(this.createEventTable(this.getRowCount()));\n this.collapseRows(wrap);\n workTd.appendChild(wrap);\n tr.appendChild(workTd);\n if (this.parent.virtualScrollModule) {\n this.parent.virtualScrollModule.renderVirtualTrack(wrap);\n }\n this.element.querySelector('tbody').appendChild(tr);\n };\n TimelineViews.prototype.getRowCount = function () {\n if (this.parent.activeViewOptions.group.resources.length > 0 && !this.parent.uiStateValues.isGroupAdaptive) {\n return this.parent.resourceBase.renderedResources.length;\n }\n return 1;\n };\n TimelineViews.prototype.getResourceTdData = function (i, tdData) {\n var resLevel = this.parent.resourceBase.renderedResources[parseInt(i.toString(), 10)];\n var resSHr = resLevel.resourceData[resLevel.resource.startHourField] || this.parent.workHours.start;\n var resEHr = resLevel.resourceData[resLevel.resource.endHourField] || this.parent.workHours.end;\n tdData.startHour = this.parent.getStartEndTime(resSHr);\n tdData.endHour = this.parent.getStartEndTime(resEHr);\n tdData.workDays = resLevel.resourceData[resLevel.resource.workDaysField] || this.parent.workDays;\n tdData.className = resLevel.className;\n tdData.groupIndex = resLevel.groupIndex;\n tdData.groupOrder = resLevel.groupOrder;\n return tdData;\n };\n TimelineViews.prototype.renderContentTable = function (table) {\n var tBody = table.querySelector('tbody');\n append(this.getContentRows(), tBody);\n };\n TimelineViews.prototype.getContentRows = function () {\n var rows = [];\n var tr = createElement('tr');\n var td = createElement('td', { attrs: { 'aria-selected': 'false' } });\n var trCount = this.getRowCount();\n for (var i = 0; i < trCount; i++) {\n var ntr = tr.cloneNode();\n for (var _i = 0, _a = this.colLevels[this.colLevels.length - 1]; _i < _a.length; _i++) {\n var tdData = _a[_i];\n if (this.parent.activeViewOptions.group.resources.length > 0 && !this.parent.uiStateValues.isGroupAdaptive) {\n tdData = this.getResourceTdData(i, tdData);\n }\n var ntd = this.createContentTd(tdData, tdData, td);\n ntr.appendChild(ntd);\n }\n rows.push(ntr);\n }\n return rows;\n };\n TimelineViews.prototype.getContentTdClass = function (r) {\n return (r.first || !this.parent.activeViewOptions.timeScale.enable) ? [cls.WORK_CELLS_CLASS] :\n [cls.WORK_CELLS_CLASS, cls.ALTERNATE_CELLS_CLASS];\n };\n TimelineViews.prototype.renderEvents = function () {\n this.timelineAppointment = new TimelineEvent(this.parent, this.parent.activeViewOptions.timeScale.enable ? 'hour' : 'day');\n this.timelineAppointment.renderAppointments();\n this.parent.notify(event.eventsLoaded, {});\n };\n TimelineViews.prototype.getAdjustedDate = function (date) {\n if (!this.parent.activeViewOptions.timeScale.enable) {\n return new Date(date.setHours(0, 0, 0, 0));\n }\n else {\n var timeSlots = this.colLevels[this.colLevels.length - 1];\n for (var i = 0; i < timeSlots.length; i++) {\n if (timeSlots[parseInt(i.toString(), 10)].date.getTime() > date.getTime()) {\n return timeSlots[i - 1].date;\n }\n }\n }\n return null;\n };\n TimelineViews.prototype.destroy = function () {\n if (!this.parent || this.parent && this.parent.isDestroyed) {\n return;\n }\n if (this.timelineAppointment) {\n this.timelineAppointment.destroy();\n this.timelineAppointment = null;\n }\n _super.prototype.destroy.call(this);\n };\n return TimelineViews;\n}(VerticalView));\nexport { TimelineViews };\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { addClass, createElement, extend, isNullOrUndefined, closest, setStyleAttribute } from '@syncfusion/ej2-base';\nimport { formatUnit, remove, removeClass } from '@syncfusion/ej2-base';\nimport * as cls from '../base/css-constant';\nimport * as util from '../base/util';\n/**\n * Base class for the common drag and resize related actions\n */\nvar ActionBase = /** @class */ (function () {\n function ActionBase(parent) {\n this.daysVariation = 0;\n this.parent = parent;\n this.actionObj = {\n X: 0, Y: 0, groupIndex: 0, cellWidth: 0, cellHeight: 0, slotInterval: 0, interval: 0, actionIndex: 0,\n cloneElement: [], originalElement: [], action: null, isAllDay: null, excludeSelectors: null,\n index: 0, navigationInterval: null, scrollInterval: null\n };\n this.scrollArgs = { element: null, width: 0, height: 0 };\n this.resizeEdges = { left: false, right: false, top: false, bottom: false };\n this.scrollEdges = { left: false, right: false, top: false, bottom: false };\n }\n ActionBase.prototype.getChangedData = function (multiData) {\n var _this = this;\n var eventObj = extend({}, this.actionObj.event, null, true);\n eventObj[this.parent.eventFields.startTime] = this.actionObj.start;\n eventObj[this.parent.eventFields.endTime] = this.actionObj.end;\n if (!isNullOrUndefined(this.actionObj.isAllDay)) {\n eventObj[this.parent.eventFields.isAllDay] = this.actionObj.isAllDay;\n }\n if (this.parent.activeViewOptions.group.resources.length > 0) {\n var originalElement = this.getOriginalElement(this.actionObj.element);\n if (originalElement) {\n var indexCol_1 = originalElement.map(function (element) { return parseInt(element.getAttribute('data-group-index'), 10); });\n if (indexCol_1.indexOf(this.actionObj.groupIndex) === -1 || (!isNullOrUndefined(multiData) && multiData.length > 0)) {\n var cloneIndex_1 = parseInt(this.actionObj.clone.getAttribute('data-group-index'), 10);\n indexCol_1 = indexCol_1.filter(function (index) { return index !== cloneIndex_1; });\n indexCol_1.push(this.actionObj.groupIndex);\n if (multiData && multiData.length > 0) {\n multiData.forEach(function (data) {\n _this.parent.resourceBase.getResourceData(data, _this.actionObj.groupIndex, indexCol_1);\n });\n }\n else {\n this.parent.resourceBase.getResourceData(eventObj, this.actionObj.groupIndex, indexCol_1);\n }\n }\n }\n }\n return eventObj;\n };\n ActionBase.prototype.saveChangedData = function (eventArgs, isMultiSelect) {\n if (isMultiSelect === void 0) { isMultiSelect = false; }\n this.parent.activeEventData.event = this.actionObj.event;\n this.parent.currentAction = 'Save';\n var currentAction;\n var eventsCollection = [eventArgs.data];\n if (isMultiSelect) {\n eventsCollection = eventArgs.selectedData;\n }\n for (var _i = 0, eventsCollection_1 = eventsCollection; _i < eventsCollection_1.length; _i++) {\n var eventObj = eventsCollection_1[_i];\n var isSameResource = (this.parent.activeViewOptions.group.resources.length > 0) ?\n parseInt(this.actionObj.element.getAttribute('data-group-index'), 10) === this.actionObj.groupIndex : true;\n if (+eventObj[this.parent.eventFields.startTime] === +this.actionObj.event[this.parent.eventFields.startTime] &&\n +eventObj[this.parent.eventFields.endTime] === +this.actionObj.event[this.parent.eventFields.endTime] && isSameResource) {\n this.parent.crudModule.crudObj.isCrudAction = false;\n return;\n }\n if (eventObj[this.parent.eventFields.recurrenceRule]) {\n var eveId = (eventObj[this.parent.eventFields.recurrenceID] || eventObj[this.parent.eventFields.id]);\n if (eventObj[this.parent.eventFields.id] === eventObj[this.parent.eventFields.recurrenceID]) {\n eventObj[this.parent.eventFields.id] = this.parent.eventBase.getEventMaxID();\n currentAction = 'EditOccurrence';\n }\n if (this.parent.enableRecurrenceValidation\n && this.parent.eventWindow.editOccurrenceValidation(eveId, eventObj, this.actionObj.event)) {\n return;\n }\n }\n else {\n currentAction = null;\n }\n if (eventObj[this.parent.eventFields.startTimezone] || eventObj[this.parent.eventFields.endTimezone]) {\n this.parent.eventBase.timezoneConvert(eventObj);\n }\n this.parent.crudModule.saveEvent(eventObj, currentAction);\n }\n };\n ActionBase.prototype.calculateIntervalTime = function (date) {\n var intervalTime = new Date(+date);\n intervalTime.setMinutes(Math.floor(intervalTime.getMinutes() / this.actionObj.interval) * this.actionObj.interval);\n return intervalTime;\n };\n ActionBase.prototype.getContentAreaDimension = function () {\n var viewElement = this.parent.element.querySelector('.' + cls.CONTENT_WRAP_CLASS);\n var trElement = [].slice.call(viewElement.querySelector('tr').children);\n if (!this.parent.activeView.isTimelineView() && this.parent.activeViewOptions.group.resources.length > 0 &&\n !this.parent.isAdaptive && !this.parent.enableAdaptiveUI && !this.parent.virtualScrollModule) {\n trElement = this.getResourceElements(trElement);\n }\n var leftOffset = trElement[0].getBoundingClientRect();\n var rightOffset = trElement.slice(-1)[0].getBoundingClientRect();\n var viewDimension = {\n bottom: viewElement.scrollHeight - 5,\n left: this.parent.enableRtl ? rightOffset.left : leftOffset.left,\n right: this.parent.enableRtl ? leftOffset.right : rightOffset.right,\n top: 0,\n leftOffset: this.parent.enableRtl ? rightOffset.right : leftOffset.right,\n rightOffset: this.parent.enableRtl ? leftOffset.left : rightOffset.left\n };\n return viewDimension;\n };\n ActionBase.prototype.getIndex = function (index) {\n var contentElements = [].slice.call(this.parent.getContentTable().querySelector('tr').children);\n var indexes = { minIndex: 0, maxIndex: contentElements.length - 1 };\n if (this.actionObj.action === 'resize' && this.parent.activeViewOptions.group.resources.length > 0 &&\n !this.parent.uiStateValues.isGroupAdaptive && !this.parent.activeView.isTimelineView()) {\n var groupElements = this.getResourceElements(contentElements);\n indexes.minIndex = groupElements[0].cellIndex;\n indexes.maxIndex = groupElements.slice(-1)[0].cellIndex;\n }\n if (index < indexes.minIndex) {\n index = indexes.minIndex;\n }\n if (index > indexes.maxIndex) {\n index = indexes.maxIndex;\n }\n return index;\n };\n ActionBase.prototype.updateTimePosition = function (date, multiData) {\n var index = 0;\n for (var _i = 0, _a = this.actionObj.cloneElement; _i < _a.length; _i++) {\n var cloneElement = _a[_i];\n var timeElement = cloneElement.querySelector('.' + cls.APPOINTMENT_TIME);\n if (timeElement) {\n var startTime = this.actionObj.start;\n var endTime = this.actionObj.end;\n if (multiData && multiData.length > 0) {\n startTime = multiData[parseInt(index.toString(), 10)][this.parent.eventFields.startTime];\n endTime = multiData[parseInt(index.toString(), 10)][this.parent.eventFields.endTime];\n }\n timeElement.innerHTML = this.parent.getTimeString(startTime) + ' - ' +\n this.parent.getTimeString(endTime);\n }\n index++;\n }\n if (!this.parent.activeViewOptions.timeScale.enable || !this.parent.isAdaptive || this.parent.currentView === 'Month' ||\n this.parent.currentView === 'TimelineMonth') {\n return;\n }\n var timeIndicator = this.parent.element.querySelector('.' + cls.CLONE_TIME_INDICATOR_CLASS);\n if (!timeIndicator) {\n timeIndicator = createElement('div', { className: cls.CLONE_TIME_INDICATOR_CLASS });\n var wrapperClass = this.parent.activeView.isTimelineView() ? cls.DATE_HEADER_WRAP_CLASS : cls.TIME_CELLS_WRAP_CLASS;\n this.parent.element.querySelector('.' + wrapperClass).appendChild(timeIndicator);\n }\n timeIndicator.innerHTML = this.parent.getTimeString(date);\n var offsetValue = 0;\n if (this.parent.activeView.isTimelineView()) {\n if (this.parent.enableRtl) {\n var rightValue = parseInt(this.actionObj.clone.style.right, 10);\n offsetValue = this.actionObj.action === 'drag' || this.resizeEdges.left ?\n rightValue + this.actionObj.clone.offsetWidth : rightValue;\n timeIndicator.style.right = formatUnit(offsetValue);\n }\n else {\n var leftValue = parseInt(this.actionObj.clone.style.left, 10);\n offsetValue = this.actionObj.action === 'drag' || this.resizeEdges.left ?\n leftValue : leftValue + this.actionObj.clone.offsetWidth;\n timeIndicator.style.left = formatUnit(offsetValue);\n }\n }\n else {\n offsetValue = this.actionObj.action === 'drag' || this.resizeEdges.top ? this.actionObj.clone.offsetTop :\n this.actionObj.clone.offsetTop + this.actionObj.clone.offsetHeight;\n timeIndicator.style.top = formatUnit(offsetValue);\n }\n };\n ActionBase.prototype.getResourceElements = function (table) {\n var _this = this;\n return table.filter(function (element) {\n return parseInt(element.getAttribute('data-group-index'), 10) === _this.actionObj.groupIndex;\n });\n };\n ActionBase.prototype.getOriginalElement = function (element) {\n var originalElement;\n var guid = element.getAttribute('data-guid');\n var isMorePopup = element.offsetParent && element.offsetParent.classList.contains(cls.MORE_EVENT_POPUP_CLASS);\n if (isMorePopup || this.parent.activeView.isTimelineView() || (this.actionObj.action !== 'resize' && this.parent.virtualScrollModule)) {\n originalElement = [].slice.call(this.parent.element.querySelectorAll('[data-guid=\"' + guid + '\"]'));\n }\n else {\n var tr = closest(element, 'tr');\n if (tr) {\n originalElement = [].slice.call(tr.querySelectorAll('[data-guid=\"' + guid + '\"]'));\n }\n }\n return originalElement;\n };\n ActionBase.prototype.createCloneElement = function (element) {\n var cloneWrapper = createElement('div', { innerHTML: element.outerHTML });\n var cloneElement = cloneWrapper.children[0];\n var cloneClassLists = [cls.CLONE_ELEMENT_CLASS];\n cloneClassLists.push((this.actionObj.action === 'drag') ? cls.DRAG_CLONE_CLASS : cls.RESIZE_CLONE_CLASS);\n if (this.parent.currentView === 'Month' || this.parent.currentView === 'TimelineMonth') {\n cloneClassLists.push(cls.MONTH_CLONE_ELEMENT_CLASS);\n }\n addClass([cloneElement], cloneClassLists);\n addClass([element], cls.EVENT_ACTION_CLASS);\n if (!isNullOrUndefined(element.parentElement)) {\n element.parentElement.appendChild(cloneElement);\n }\n cloneElement.style.width = formatUnit(cloneElement.offsetWidth - 2);\n var dragElement = document.querySelector(this.parent.eventDragArea);\n if (this.parent.eventDragArea && this.actionObj.action === 'drag' && dragElement) {\n dragElement.appendChild(cloneElement);\n }\n setStyleAttribute(cloneElement, { border: '0px' });\n return cloneElement;\n };\n ActionBase.prototype.removeCloneElementClasses = function () {\n var elements = this.actionObj.originalElement;\n if (this.parent.currentView === 'Month' || this.parent.currentView === 'TimelineYear' ||\n this.parent.currentView === 'Day' || this.parent.currentView === 'Week' || this.parent.currentView === 'WorkWeek') {\n elements = [].slice.call(this.parent.element.querySelectorAll('.' + cls.EVENT_ACTION_CLASS));\n }\n removeClass(elements, cls.EVENT_ACTION_CLASS);\n };\n ActionBase.prototype.removeCloneElement = function () {\n this.actionObj.originalElement = [];\n var dynamicEle = [].slice.call(this.parent.element.querySelectorAll('.e-dynamic-clone'));\n for (var _i = 0, dynamicEle_1 = dynamicEle; _i < dynamicEle_1.length; _i++) {\n var cloneEle = dynamicEle_1[_i];\n remove(cloneEle);\n }\n for (var _a = 0, _b = this.actionObj.cloneElement; _a < _b.length; _a++) {\n var cloneElement = _b[_a];\n if (!isNullOrUndefined(cloneElement.parentNode)) {\n remove(cloneElement);\n }\n }\n this.actionObj.cloneElement = [];\n var timeIndicator = this.parent.element.querySelector('.' + cls.CLONE_TIME_INDICATOR_CLASS);\n if (timeIndicator) {\n remove(timeIndicator);\n }\n };\n ActionBase.prototype.getCursorElement = function (e) {\n var pages = this.parent.eventBase.getPageCoordinates(e);\n return document.elementFromPoint(pages.clientX, pages.clientY);\n };\n ActionBase.prototype.autoScroll = function () {\n var parent = this.parent.element.querySelector('.' + cls.CONTENT_WRAP_CLASS);\n var yIsScrollable = parent.offsetHeight <= parent.scrollHeight;\n var xIsScrollable = parent.offsetWidth <= parent.scrollWidth;\n var yInBounds = yIsScrollable && parent.scrollTop >= 0 && parent.scrollTop + parent.offsetHeight <= parent.scrollHeight;\n var xInBounds = xIsScrollable && parent.scrollLeft >= 0 && parent.scrollLeft + parent.offsetWidth <= parent.scrollWidth;\n if (this.actionObj.action === 'resize' && this.scrollEdges.right && (parent.scrollLeft + parent.offsetWidth) > parent.scrollWidth) {\n var tdCollections = ([].slice.call(this.parent.getContentTable().querySelector('tr').children)).length - 1;\n var cellIndex = Math.ceil((this.actionObj.clone.offsetLeft + (this.actionObj.clone.offsetWidth)) /\n this.actionObj.cellWidth);\n xInBounds = cellIndex === tdCollections;\n }\n if (yInBounds && (this.scrollEdges.top || this.scrollEdges.bottom)) {\n parent.scrollTop += this.scrollEdges.top ? -this.actionObj.scroll.scrollBy : this.actionObj.scroll.scrollBy;\n if (this.actionObj.action === 'resize') {\n if (parent.scrollHeight !== parent.offsetHeight + parent.scrollTop && parent.scrollTop > 0) {\n this.actionObj.Y += this.scrollEdges.top ? this.actionObj.scroll.scrollBy : -this.actionObj.scroll.scrollBy;\n }\n }\n }\n if (xInBounds && (this.scrollEdges.left || this.scrollEdges.right)) {\n parent.scrollLeft += this.scrollEdges.left ? -this.actionObj.scroll.scrollBy : this.actionObj.scroll.scrollBy;\n if (this.actionObj.action === 'resize') {\n if (parent.scrollWidth !== parent.offsetWidth + parent.scrollLeft && parent.scrollLeft > 0) {\n this.actionObj.X += this.scrollEdges.left ? this.actionObj.scroll.scrollBy : -this.actionObj.scroll.scrollBy;\n }\n }\n }\n };\n ActionBase.prototype.autoScrollValidation = function () {\n if (!this.actionObj.scroll.enable) {\n return false;\n }\n var res = this.parent.boundaryValidation(this.actionObj.pageY, this.actionObj.pageX);\n this.scrollEdges = res;\n return res.bottom || res.top || res.left || res.right;\n };\n ActionBase.prototype.actionClass = function (type) {\n if (type === 'addClass') {\n addClass([this.parent.element], cls.EVENT_ACTION_CLASS);\n }\n else {\n removeClass([this.parent.element], cls.EVENT_ACTION_CLASS);\n }\n };\n ActionBase.prototype.updateScrollPosition = function (e) {\n var _this = this;\n this.scrollEventArgs = e;\n if (this.actionObj.scroll.enable && isNullOrUndefined(this.actionObj.scrollInterval)) {\n this.actionObj.scrollInterval = window.setInterval(function () {\n if (_this.autoScrollValidation() && !_this.actionObj.clone.classList.contains(cls.ALLDAY_APPOINTMENT_CLASS)) {\n if (_this.parent.activeView.isTimelineView() && _this.parent.activeViewOptions.group.resources.length > 0\n && _this.actionObj.groupIndex < 0) {\n return;\n }\n _this.autoScroll();\n if (_this.actionObj.action === 'drag') {\n _this.parent.dragAndDropModule.updateDraggingDateTime(_this.scrollEventArgs);\n }\n else {\n _this.parent.resizeModule.updateResizingDirection(_this.scrollEventArgs);\n }\n }\n }, this.actionObj.scroll.timeDelay);\n }\n };\n ActionBase.prototype.updateOriginalElement = function (cloneElement) {\n var query = '[data-id=\"' + cloneElement.getAttribute('data-id') + '\"]';\n if (this.parent.activeViewOptions.group.resources.length > 0) {\n query = query.concat('[data-group-index = \"' + cloneElement.getAttribute('data-group-index') + '\"]');\n }\n var elements = [].slice.call(this.parent.element.querySelectorAll(query));\n addClass(elements, cls.EVENT_ACTION_CLASS);\n var eventWrappers = [].slice.call(this.parent.element.querySelectorAll('.' + cls.CLONE_ELEMENT_CLASS));\n removeClass(eventWrappers, cls.EVENT_ACTION_CLASS);\n };\n ActionBase.prototype.getUpdatedEvent = function (startTime, endTime, eventObj) {\n var event = JSON.parse(JSON.stringify(eventObj));\n event[this.parent.eventFields.startTime] = startTime;\n event[this.parent.eventFields.endTime] = endTime;\n return event;\n };\n ActionBase.prototype.dynamicYearlyEventsRendering = function (event, isResize) {\n if (isResize === void 0) { isResize = false; }\n if (!isNullOrUndefined(this.parent.eventDragArea)) {\n return;\n }\n var appWidth = this.actionObj.cellWidth - 7;\n if (isResize && (this.resizeEdges.left || this.resizeEdges.right)) {\n appWidth = this.actionObj.cellWidth * event.count;\n }\n if (!isResize && (this.parent.activeViewOptions.orientation === 'Horizontal' && this.parent.activeViewOptions.group.resources.length === 0)) {\n var eventObj = this.yearEvent.isSpannedEvent(event, event[this.parent.eventFields.startTime]);\n if (eventObj[this.parent.eventFields.startTime].getTime() ===\n eventObj[this.parent.eventFields.endTime].getTime()) {\n eventObj.isSpanned.count = 1;\n }\n appWidth = eventObj.isSpanned.count * this.actionObj.cellWidth;\n }\n if (!isResize && this.parent.activeViewOptions.orientation === 'Vertical' && this.parent.activeViewOptions.group.resources.length !== 0) {\n var eventObj = this.yearEvent.isSpannedEvent(event, event[this.parent.eventFields.startTime]);\n appWidth = eventObj.isSpanned.count * this.actionObj.cellWidth;\n }\n var appointmentElement = this.createAppointmentElement(this.actionObj.groupIndex, event[this.parent.eventFields.subject]);\n appointmentElement.setAttribute('drag', 'true');\n addClass([appointmentElement], cls.CLONE_ELEMENT_CLASS);\n setStyleAttribute(appointmentElement, {\n 'width': appWidth + 'px', 'border': '0px', 'pointer-events': 'none',\n 'position': 'absolute', 'overflow': 'hidden', 'padding': '3px'\n });\n if (this.actionObj.clone.style.backgroundColor !== '') {\n setStyleAttribute(appointmentElement, { 'backgroundColor': this.actionObj.clone.style.backgroundColor });\n }\n var date = util.resetTime(event[this.parent.eventFields.startTime]).getTime();\n var query = '.' + cls.WORK_CELLS_CLASS + '[data-date=\"' + date + '\"]';\n if (this.parent.activeViewOptions.group.resources.length > 0 && !this.parent.uiStateValues.isGroupAdaptive) {\n query = '.' + cls.WORK_CELLS_CLASS + '[data-date=\"' + date + '\"][data-group-index=\"' + this.actionObj.groupIndex + '\"]';\n }\n var cellTd = this.parent.element.querySelector(query);\n if (isNullOrUndefined(cellTd)) {\n return;\n }\n if (isResize) {\n var dateHeader = cellTd.querySelector('.' + cls.DATE_HEADER_CLASS);\n var appHeight = this.actionObj.cellHeight * event.count -\n (dateHeader ? dateHeader.offsetHeight : 0) - 7;\n if (this.resizeEdges.right || this.resizeEdges.left) {\n appHeight = parseInt(this.actionObj.clone.style.height, 10);\n }\n setStyleAttribute(appointmentElement, { 'height': appHeight + 'px' });\n }\n this.renderDynamicElement(cellTd, appointmentElement, true);\n this.actionObj.cloneElement.push(appointmentElement);\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n ActionBase.prototype.renderDynamicElement = function (cellTd, element, isAppointment) {\n if (isAppointment === void 0) { isAppointment = false; }\n if (cellTd.querySelector('.' + cls.APPOINTMENT_WRAPPER_CLASS)) {\n cellTd.querySelector('.' + cls.APPOINTMENT_WRAPPER_CLASS).appendChild(element);\n }\n else {\n var wrapper = createElement('div', { className: cls.APPOINTMENT_WRAPPER_CLASS });\n wrapper.appendChild(element);\n cellTd.appendChild(wrapper);\n }\n };\n ActionBase.prototype.createAppointmentElement = function (resIndex, innerText) {\n var appointmentWrapper = createElement('div', {\n className: cls.APPOINTMENT_CLASS,\n innerHTML: innerText\n });\n if (this.parent.activeViewOptions.group.resources.length > 0) {\n appointmentWrapper.setAttribute('data-group-index', resIndex.toString());\n }\n return appointmentWrapper;\n };\n ActionBase.prototype.dynamicEventsRendering = function (event) {\n var _this = this;\n if (!isNullOrUndefined(this.parent.eventDragArea)) {\n return;\n }\n var dateRender = this.parent.activeView.renderDates;\n var workCells = [].slice.call(this.parent.element.querySelectorAll('.' + cls.WORK_CELLS_CLASS));\n var workDays = this.parent.activeViewOptions.workDays;\n var groupOrder;\n if (this.parent.activeViewOptions.group.resources.length > 0) {\n var renderedResource = this.parent.virtualScrollModule && this.parent.virtualScrollModule.isHorizontalScroll ?\n this.parent.resourceBase.renderedResources : this.parent.resourceBase.lastResourceLevel;\n var resources = renderedResource.\n filter(function (res) { return res.groupIndex === _this.actionObj.groupIndex; });\n dateRender = resources[0].renderDates;\n var elementSelector = \".\" + cls.WORK_CELLS_CLASS + \"[data-group-index=\\\"\" + this.actionObj.groupIndex + \"\\\"]\";\n workCells = [].slice.call(this.parent.element.querySelectorAll(elementSelector));\n workDays = resources[0].workDays;\n groupOrder = resources[0].groupOrder;\n }\n this.monthEvent.dateRender = dateRender;\n this.monthEvent.getSlotDates(workDays);\n if (this.resizeEdges.left || this.resizeEdges.right) {\n var eventWrappers = [].slice.call(this.parent.element.querySelectorAll('.' + cls.CLONE_ELEMENT_CLASS));\n for (var _i = 0, eventWrappers_1 = eventWrappers; _i < eventWrappers_1.length; _i++) {\n var wrapper = eventWrappers_1[_i];\n remove(wrapper);\n }\n }\n var spannedEvents = this.monthEvent.splitEvent(event, dateRender);\n for (var _a = 0, spannedEvents_1 = spannedEvents; _a < spannedEvents_1.length; _a++) {\n var event_1 = spannedEvents_1[_a];\n var day = this.parent.getIndexOfDate(dateRender, util.resetTime(event_1[this.monthEvent.fields.startTime]));\n var diffInDays = event_1.data.count;\n var appWidth = (diffInDays * this.actionObj.cellWidth) - 7;\n var appointmentElement = this.monthEvent.createAppointmentElement(event_1, this.actionObj.groupIndex, true);\n appointmentElement.setAttribute('drag', 'true');\n addClass([appointmentElement], cls.CLONE_ELEMENT_CLASS);\n this.monthEvent.applyResourceColor(appointmentElement, event_1, 'backgroundColor', groupOrder);\n setStyleAttribute(appointmentElement, { 'width': appWidth + 'px', 'border': '0px', 'pointer-events': 'none' });\n var cellTd = workCells[parseInt(day.toString(), 10)];\n if (cellTd) {\n this.monthEvent.renderElement(cellTd, appointmentElement, true);\n this.actionObj.cloneElement.push(appointmentElement);\n }\n }\n };\n ActionBase.prototype.destroy = function () {\n if (!this.parent || this.parent && this.parent.isDestroyed) {\n return;\n }\n this.actionObj = {};\n this.scrollArgs = {};\n this.resizeEdges = { left: false, right: false, top: false, bottom: false };\n this.scrollEdges = { left: false, right: false, top: false, bottom: false };\n };\n return ActionBase;\n}());\nexport { ActionBase };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { addClass, append, createElement, extend, remove, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { setStyleAttribute, EventHandler } from '@syncfusion/ej2-base';\nimport { TimelineEvent } from './timeline-view';\nimport * as util from '../base/util';\nimport * as events from '../base/constant';\nimport * as cls from '../base/css-constant';\nvar EVENT_GAP = 2;\n/**\n * Year view events render\n */\nvar YearEvent = /** @class */ (function (_super) {\n __extends(YearEvent, _super);\n function YearEvent(parent) {\n var _this = _super.call(this, parent, 'day') || this;\n _this.isResource = false;\n return _this;\n }\n YearEvent.prototype.renderAppointments = function () {\n if (this.parent.dragAndDropModule) {\n this.parent.dragAndDropModule.setDragArea();\n }\n this.fields = this.parent.eventFields;\n var elementSelector = (this.parent.currentView === 'Year') ? '.' + cls.APPOINTMENT_CLASS :\n '.' + cls.APPOINTMENT_WRAPPER_CLASS + ',.' + cls.MORE_INDICATOR_CLASS;\n var eventWrappers = [].slice.call(this.parent.element.querySelectorAll(elementSelector));\n for (var _i = 0, eventWrappers_1 = eventWrappers; _i < eventWrappers_1.length; _i++) {\n var wrapper = eventWrappers_1[_i];\n remove(wrapper);\n }\n this.renderedEvents = [];\n if (this.parent.currentView === 'Year') {\n this.yearViewEvents();\n }\n else {\n this.removeCellHeight();\n if (this.parent.activeViewOptions.group.resources.length > 0 && !this.parent.uiStateValues.isGroupAdaptive) {\n this.isResource = true;\n this.timelineResourceEvents();\n }\n else {\n this.timelineYearViewEvents();\n }\n }\n this.parent.renderTemplates();\n this.parent.notify(events.contentReady, {});\n };\n YearEvent.prototype.yearViewEvents = function () {\n var months = this.getMonths();\n for (var _i = 0, months_1 = months; _i < months_1.length; _i++) {\n var month = months_1[_i];\n var queryString = \".e-month-calendar:nth-child(\" + (months.indexOf(month) + 1) + \") td.e-work-cells\";\n var workCells = [].slice.call(this.parent.element.querySelectorAll(queryString));\n var monthDate = new Date(this.parent.selectedDate.getFullYear(), month, 1);\n var monthStart = this.parent.calendarUtil.getMonthStartDate(new Date(monthDate.getTime()));\n var monthEnd = this.parent.calendarUtil.getMonthEndDate(new Date(monthDate.getTime()));\n var startDate = util.getWeekFirstDate(monthStart, this.parent.firstDayOfWeek);\n var endDate = util.addDays(util.getWeekLastDate(monthEnd, this.parent.firstDayOfWeek), 1);\n for (var index = 0; startDate.getTime() < endDate.getTime(); index++) {\n var start = util.resetTime(new Date(startDate.getTime()));\n var end = util.addDays(new Date(start.getTime()), 1);\n startDate = util.addDays(new Date(startDate.getTime()), 1);\n if (!this.parent.isMinMaxDate(start)) {\n continue;\n }\n var filterEvents = this.parent.eventBase.filterEvents(start, end);\n if (filterEvents.length > 0) {\n var workCell = workCells[parseInt(index.toString(), 10)];\n if (workCell) {\n workCell.appendChild(createElement('div', { className: cls.APPOINTMENT_CLASS }));\n }\n }\n }\n }\n };\n YearEvent.prototype.timelineYearViewEvents = function () {\n var _this = this;\n var workCell = this.parent.element.querySelector('.' + cls.WORK_CELLS_CLASS + ':not(.' + cls.OTHERMONTH_CLASS + ')');\n this.cellWidth = workCell.getBoundingClientRect().width;\n this.cellHeader = util.getOuterHeight(workCell.querySelector('.' + cls.DATE_HEADER_CLASS));\n var eventTable = this.parent.element.querySelector('.' + cls.EVENT_TABLE_CLASS);\n this.eventHeight = util.getElementHeightFromClass(eventTable, cls.APPOINTMENT_CLASS);\n var wrapperCollection = [].slice.call(this.parent.element.querySelectorAll('.' + cls.APPOINTMENT_CONTAINER_CLASS));\n var months = this.getMonths();\n var groupIndex = (this.parent.activeViewOptions.group.resources.length > 0 && this.parent.uiStateValues.isGroupAdaptive) ?\n this.parent.uiStateValues.groupIndex : undefined;\n for (var row = 0; row < months.length; row++) {\n var wrapper = wrapperCollection[parseInt(row.toString(), 10)];\n var td = row + 1;\n var eventWrapper = createElement('div', { className: cls.APPOINTMENT_WRAPPER_CLASS });\n wrapper.appendChild(eventWrapper);\n var monthStart = new Date(this.parent.selectedDate.getFullYear(), months[parseInt(row.toString(), 10)], 1);\n var monthEnd = new Date(monthStart.getFullYear(), monthStart.getMonth() + 1, 0);\n var dayIndex = monthStart.getDay();\n var isSpannedCollection = [];\n if (this.parent.activeViewOptions.orientation === 'Horizontal') {\n this.renderedEvents = [];\n }\n while (monthStart.getTime() <= monthEnd.getTime()) {\n var leftValue = void 0;\n var rightValue = void 0;\n if (this.parent.activeViewOptions.orientation === 'Vertical') {\n var wrapper_1 = wrapperCollection[parseInt(dayIndex.toString(), 10)];\n td = dayIndex + 1;\n eventWrapper = wrapper_1.querySelector('.' + cls.APPOINTMENT_WRAPPER_CLASS);\n if (!eventWrapper) {\n eventWrapper = createElement('div', { className: cls.APPOINTMENT_WRAPPER_CLASS });\n wrapper_1.appendChild(eventWrapper);\n }\n if (this.parent.enableRtl) {\n rightValue = row * this.cellWidth;\n }\n else {\n leftValue = row * this.cellWidth;\n }\n }\n else {\n if (this.parent.enableRtl) {\n rightValue = ((dayIndex + monthStart.getDate()) - 1) * this.cellWidth;\n }\n else {\n leftValue = ((dayIndex + monthStart.getDate()) - 1) * this.cellWidth;\n }\n }\n var rowTd = this.parent.element.querySelector(\".e-content-wrap tr:nth-child(\" + td + \") td\");\n this.cellHeight = rowTd.offsetHeight;\n var dayStart = util.resetTime(new Date(monthStart.getTime()));\n var dayEnd = util.addDays(new Date(dayStart.getTime()), 1);\n var resource = void 0;\n if (this.parent.uiStateValues.isGroupAdaptive) {\n resource = this.parent.resourceBase.lastResourceLevel[this.parent.uiStateValues.groupIndex];\n }\n var dayEvents = this.parent.eventBase.filterEvents(dayStart, dayEnd, undefined, resource);\n dayEvents = this.parent.eventBase.sortByDateTime(dayEvents);\n var _loop_1 = function (index, count) {\n var eventData = extend({}, dayEvents[parseInt(index.toString(), 10)], null, true);\n this_1.updateSpannedEvents(eventData, dayStart, dayEnd);\n var overlapIndex = this_1.getIndex(dayStart);\n eventData.Index = overlapIndex;\n var availedHeight = this_1.cellHeader + (this_1.eventHeight * (overlapIndex + 1)) + EVENT_GAP +\n this_1.moreIndicatorHeight;\n var appArea = this_1.cellHeight - this_1.cellHeader - this_1.moreIndicatorHeight;\n var renderedAppCount = Math.floor(appArea / (this_1.eventHeight + EVENT_GAP));\n var moreIndicatorCount = (count - renderedAppCount) <= 0 ? 1 : (count - renderedAppCount);\n if (this_1.parent.activeViewOptions.orientation === 'Horizontal') {\n var isRendered = this_1.renderedEvents.filter(function (eventObj) {\n return eventObj.Guid === eventData.Guid;\n });\n var isSpanned = isSpannedCollection.filter(function (eventObj) {\n return eventObj.Guid === eventData.Guid;\n });\n if (isRendered.length > 0 && isRendered[0].MoreIndicator || isSpanned.length > 0 && isSpanned[0].MoreIndicator) {\n var moreIndex = this_1.parent.activeViewOptions.orientation === 'Horizontal' ? row : dayIndex;\n this_1.renderMoreIndicator(eventWrapper, moreIndicatorCount, dayStart, moreIndex, leftValue, rightValue, groupIndex);\n return \"continue\";\n }\n else if (isRendered.length > 0 || isSpanned.length > 0) {\n return \"continue\";\n }\n }\n if (this_1.parent.rowAutoHeight || this_1.cellHeight > availedHeight) {\n this_1.renderEvent(eventWrapper, eventData, row, leftValue, rightValue, monthStart, dayIndex);\n this_1.updateCellHeight(rowTd, availedHeight);\n isSpannedCollection.push(eventData);\n }\n else {\n var moreIndex = this_1.parent.activeViewOptions.orientation === 'Horizontal' ? row : dayIndex;\n this_1.renderMoreIndicator(eventWrapper, moreIndicatorCount, dayStart, moreIndex, leftValue, rightValue, groupIndex);\n if (this_1.parent.activeViewOptions.orientation === 'Horizontal') {\n eventData.MoreIndicator = true;\n this_1.renderedEvents.push(eventData);\n isSpannedCollection.push(eventData);\n }\n }\n };\n var this_1 = this;\n for (var index = 0, count = dayEvents.length; index < count; index++) {\n _loop_1(index, count);\n }\n monthStart = util.addDays(new Date(monthStart.getTime()), 1);\n if (this.parent.activeViewOptions.orientation === 'Vertical') {\n dayIndex++;\n this.renderedEvents = [];\n }\n }\n }\n if (this.parent.rowAutoHeight && this.parent.activeViewOptions.orientation === 'Vertical') {\n var appContainer = [].slice.call(this.parent.element.querySelectorAll('.' + cls.APPOINTMENT_CONTAINER_CLASS));\n var tr_1 = [].slice.call(this.parent.element.querySelectorAll('.' + cls.CONTENT_TABLE_CLASS + ' tbody tr'));\n appContainer.forEach(function (ele, index) {\n var app = [].slice.call(ele.querySelectorAll('.' + cls.APPOINTMENT_CLASS));\n var appTop = tr_1[parseInt(index.toString(), 10)].offsetTop + _this.cellHeader + EVENT_GAP;\n app.forEach(function (app) {\n var overlap = parseInt(app.getAttribute('data-index'), 10);\n app.style.top = appTop + (overlap * _this.eventHeight) + 'px';\n app.removeAttribute('data-index');\n });\n });\n }\n };\n YearEvent.prototype.updateSpannedEvents = function (eventObj, dayStart, dayEnd) {\n var isLeftRightResize = (this.isResource && this.parent.activeViewOptions.orientation === 'Vertical') ||\n (!this.isResource && this.parent.activeViewOptions.orientation === 'Horizontal');\n var data = { isLeft: true, isRight: true, isBottom: true, isTop: true };\n if (dayStart.getTime() <= eventObj[this.fields.startTime].getTime()) {\n if (isLeftRightResize) {\n data.isLeft = false;\n }\n else {\n data.isTop = false;\n }\n }\n if ((dayEnd.getTime() >= eventObj[this.fields.endTime].getTime()) || (isLeftRightResize && !this.isResource &&\n util.addDays(dayEnd, -1).getMonth() === eventObj[this.fields.endTime].getMonth()) ||\n (isLeftRightResize && this.isResource && (dayEnd.getTime() <= eventObj[this.fields.endTime].getTime()))) {\n if (isLeftRightResize) {\n data.isRight = false;\n }\n else {\n data.isBottom = false;\n }\n }\n eventObj.data = data;\n };\n YearEvent.prototype.timelineResourceEvents = function () {\n var _this = this;\n var contentTable = this.parent.element.querySelector('.' + cls.CONTENT_WRAP_CLASS);\n var isVerticalScrollbarAvail = contentTable.offsetWidth > contentTable.clientWidth;\n var workCell = this.parent.element.querySelector('.' + cls.WORK_CELLS_CLASS);\n this.cellWidth = workCell.getBoundingClientRect().width;\n this.cellHeader = 0;\n var eventTable = this.parent.element.querySelector('.' + cls.EVENT_TABLE_CLASS);\n this.eventHeight = util.getElementHeightFromClass(eventTable, cls.APPOINTMENT_CLASS);\n var wrapperCollection = [].slice.call(this.parent.element.querySelectorAll('.' + cls.APPOINTMENT_CONTAINER_CLASS));\n var resources = this.parent.uiStateValues.isGroupAdaptive ?\n [this.parent.resourceBase.lastResourceLevel[this.parent.uiStateValues.groupIndex]] :\n this.parent.activeViewOptions.allowVirtualScrolling ? this.parent.resourceBase.renderedResources :\n this.parent.resourceBase.lastResourceLevel;\n var months = this.getMonths();\n if (this.parent.activeViewOptions.orientation === 'Horizontal') {\n for (var month = 0; month < months.length; month++) {\n var monthStart = new Date(this.parent.selectedDate.getFullYear(), months[parseInt(month.toString(), 10)], 1);\n for (var i = 0, len = resources.length; i < len; i++) {\n this.renderedEvents = [];\n this.renderResourceEvent(wrapperCollection[parseInt(month.toString(), 10)], resources[parseInt(i.toString(), 10)], month, i, monthStart);\n }\n }\n }\n else {\n for (var i = 0, len = resources.length; i < len; i++) {\n this.renderedEvents = [];\n for (var month = 0; month < months.length; month++) {\n var monthStart = new Date(this.parent.selectedDate.getFullYear(), months[parseInt(month.toString(), 10)], 1);\n this.renderResourceEvent(wrapperCollection[parseInt(i.toString(), 10)], resources[parseInt(i.toString(), 10)], month, i, monthStart);\n }\n }\n }\n if (this.parent.rowAutoHeight && !isVerticalScrollbarAvail && contentTable.offsetWidth > contentTable.clientWidth) {\n var appointments = [].slice.call(this.parent.element.querySelectorAll('.' + cls.APPOINTMENT_CLASS));\n appointments.forEach(function (ele) {\n ele.style.removeProperty('left');\n ele.style.removeProperty('right');\n });\n var appContainer = [].slice.call(this.parent.element.querySelectorAll('.' + cls.APPOINTMENT_CONTAINER_CLASS));\n var conTable_1 = this.parent.element.querySelector('.' + cls.CONTENT_TABLE_CLASS);\n var tr_2 = [].slice.call(conTable_1.querySelectorAll('tbody tr'));\n appContainer.forEach(function (ele, index) {\n var appWrapper = [].slice.call(ele.children);\n var row = tr_2[parseInt(index.toString(), 10)];\n appWrapper.forEach(function (appWrap, cellIndex) {\n var td = row.querySelector(\"td:nth-child(\" + (cellIndex + 1) + \")\");\n var app = [].slice.call(appWrap.children);\n var width = td.getBoundingClientRect().width;\n var left = td.offsetLeft;\n if (_this.parent.enableRtl) {\n var right_1 = conTable_1.offsetWidth - left - td.offsetWidth;\n app.forEach(function (app) {\n app.style.width = Math.floor(parseInt(app.style.width, 10) / width) * width + 'px';\n app.style.right = right_1 + 'px';\n });\n }\n else {\n app.forEach(function (app) {\n app.style.width = Math.floor(parseInt(app.style.width, 10) / width) * width + 'px';\n app.style.left = left + 'px';\n });\n }\n });\n });\n }\n };\n YearEvent.prototype.renderResourceEvent = function (wrapper, resource, month, index, monthStart) {\n var eventWrapper = createElement('div', { className: cls.APPOINTMENT_WRAPPER_CLASS });\n wrapper.appendChild(eventWrapper);\n var monthEnd = util.addDays(util.lastDateOfMonth(new Date(monthStart.getTime())), 1);\n var eventDatas = this.parent.eventBase.filterEvents(monthStart, monthEnd, undefined, resource);\n var rowIndex = this.parent.activeViewOptions.orientation === 'Vertical' ? index : month;\n var td = this.parent.element.querySelector(\".e-content-wrap tr:nth-child(\" + (rowIndex + 1) + \") td\");\n this.cellHeight = td.offsetHeight;\n this.groupOrder = resource.groupOrder;\n var isSpannedCollection = [];\n var _loop_2 = function (a) {\n var data = eventDatas[parseInt(a.toString(), 10)];\n var overlapIndex = void 0;\n var eventData = extend({}, data, null, true);\n if (this_2.parent.activeViewOptions.group.resources.length > 0) {\n var eventObj = this_2.isSpannedEvent(eventData, monthStart);\n overlapIndex = this_2.getIndex(eventObj[this_2.fields.startTime]);\n eventData.Index = overlapIndex;\n }\n else {\n overlapIndex = this_2.getIndex(eventData[this_2.fields.startTime]);\n eventData.Index = overlapIndex;\n }\n var availedHeight = this_2.cellHeader + (this_2.eventHeight * (a + 1)) + EVENT_GAP + this_2.moreIndicatorHeight;\n var leftValue = (this_2.parent.activeViewOptions.orientation === 'Vertical') ?\n month * this_2.cellWidth : index * this_2.cellWidth;\n if (!this_2.parent.isMinMaxDate(eventData[this_2.fields.startTime])) {\n return { value: void 0 };\n }\n if (this_2.parent.activeViewOptions.orientation === 'Vertical' && this_2.parent.activeViewOptions.group.resources.length > 0) {\n var isRendered = this_2.renderedEvents.filter(function (eventObj) {\n return eventObj.Guid === eventData.Guid;\n });\n var isSpanned = isSpannedCollection.filter(function (eventObj) {\n return eventObj.Guid === eventData.Guid;\n });\n if (isRendered.length > 0 || isSpanned.length > 0) {\n return \"continue\";\n }\n }\n if (this_2.parent.rowAutoHeight || this_2.cellHeight > availedHeight) {\n this_2.renderEvent(eventWrapper, eventData, month, leftValue, leftValue, monthStart, index);\n this_2.updateCellHeight(td, availedHeight);\n isSpannedCollection.push(eventData);\n }\n else {\n var moreIndex = this_2.parent.activeViewOptions.orientation === 'Horizontal' ? month : index;\n this_2.renderMoreIndicator(eventWrapper, eventDatas.length - a, monthStart, moreIndex, leftValue, leftValue, index);\n if (this_2.parent.activeViewOptions.orientation === 'Horizontal') {\n for (var i = index; i < eventDatas.length; i++) {\n this_2.renderedEvents.push(extend({}, eventDatas[parseInt(i.toString(), 10)], { Index: overlapIndex + i }, true));\n }\n }\n return \"break\";\n }\n };\n var this_2 = this;\n for (var a = 0; a < eventDatas.length; a++) {\n var state_1 = _loop_2(a);\n if (typeof state_1 === \"object\")\n return state_1.value;\n if (state_1 === \"break\")\n break;\n }\n };\n // eslint-disable-next-line max-len\n YearEvent.prototype.renderEvent = function (wrapper, eventData, row, left, right, monthDate, rowIndex) {\n var _this = this;\n var eventObj = this.isSpannedEvent(eventData, monthDate);\n var wrap = this.createEventElement(eventObj);\n var width;\n var index;\n if (eventObj.isSpanned.count === 1) {\n var endTime = util.addDays(eventObj[this.fields.endTime], -1);\n eventObj[this.fields.endTime] = (endTime > eventObj[this.fields.startTime]) ? endTime : eventObj[this.fields.endTime];\n }\n if (eventObj[this.fields.startTime] > eventObj[this.fields.endTime]) {\n return;\n }\n if (this.parent.activeViewOptions.orientation === 'Horizontal') {\n index = row + 1;\n if (eventObj[this.fields.startTime].getTime() === eventObj[this.fields.endTime].getTime()) {\n eventObj.isSpanned.count = 1;\n }\n width = eventObj.isSpanned.count * this.cellWidth;\n }\n else {\n index = rowIndex + 1;\n width = this.isResource ? eventObj.isSpanned.count * this.cellWidth : this.cellWidth;\n }\n var rowTd = this.parent.element.querySelector(\".e-content-wrap tr:nth-child(\" + index + \") td\");\n var top = rowTd.offsetTop + this.cellHeader + (this.eventHeight * eventObj.Index) + EVENT_GAP;\n setStyleAttribute(wrap, {\n 'width': width + 'px', 'height': this.eventHeight + 'px', 'left': left + 'px', 'right': right + 'px', 'top': top + 'px'\n });\n if (!this.isResource && this.parent.rowAutoHeight && this.parent.activeViewOptions.orientation === 'Vertical') {\n wrap.setAttribute('data-index', eventObj.Index.toString());\n }\n var args = { data: eventObj, element: wrap, cancel: false, type: 'event' };\n this.parent.trigger(events.eventRendered, args, function (eventArgs) {\n if (!eventArgs.cancel) {\n wrapper.appendChild(wrap);\n _this.wireAppointmentEvents(wrap, eventObj);\n if (_this.parent.activeViewOptions.group.resources.length > 0) {\n _this.renderedEvents.push(extend({}, eventObj, null, true));\n }\n else if (_this.parent.activeViewOptions.orientation === 'Vertical') {\n _this.renderedEvents.push(extend({}, eventObj, null, true));\n }\n else if ((eventObj.isSpanned.isRight || eventObj.isSpanned.isLeft) && _this.parent.activeViewOptions.orientation === 'Horizontal'\n || !eventObj.isSpanned.isRight) {\n _this.renderedEvents.push(extend({}, eventObj, null, true));\n }\n }\n });\n };\n // eslint-disable-next-line max-len\n YearEvent.prototype.renderMoreIndicator = function (wrapper, count, startDate, row, left, right, index) {\n if (this.parent.activeViewOptions.group.resources.length === 0 && wrapper.querySelector('[data-start-date=\"' + startDate.getTime() + '\"]')) {\n return;\n }\n var endDate;\n if (this.parent.activeViewOptions.group.resources.length > 0 && !this.parent.uiStateValues.isGroupAdaptive) {\n endDate = util.addDays(util.lastDateOfMonth(new Date(startDate.getTime())), 1);\n }\n else {\n endDate = util.addDays(new Date(startDate.getTime()), 1);\n }\n var moreIndicator = this.getMoreIndicatorElement(count, startDate, endDate);\n var rowTr = this.parent.element.querySelector(\".e-content-wrap tr:nth-child(\" + (row + 1) + \")\");\n var top = rowTr.offsetTop + (this.cellHeight - this.moreIndicatorHeight);\n left = (Math.floor(left / this.cellWidth) * this.cellWidth);\n right = (Math.floor(right / this.cellWidth) * this.cellWidth);\n setStyleAttribute(moreIndicator, { 'width': this.cellWidth + 'px', 'left': left + 'px', 'right': right + 'px', 'top': top + 'px' });\n if (!isNullOrUndefined(index)) {\n moreIndicator.setAttribute('data-group-index', index.toString());\n }\n wrapper.appendChild(moreIndicator);\n EventHandler.add(moreIndicator, 'click', this.moreIndicatorClick, this);\n };\n YearEvent.prototype.createEventElement = function (record) {\n var eventSubject = (record[this.fields.subject] || this.parent.eventSettings.fields.subject.default\n || this.parent.localeObj.getConstant('addTitle'));\n var eventWrapper = createElement('div', {\n className: cls.APPOINTMENT_CLASS,\n attrs: {\n 'data-id': 'Appointment_' + record[this.fields.id],\n 'data-guid': record.Guid,\n 'role': 'button', 'tabindex': '0',\n 'aria-disabled': this.parent.eventBase.getReadonlyAttribute(record),\n 'aria-label': this.parent.getAnnouncementString(record)\n }\n });\n if (this.cssClass) {\n addClass([eventWrapper], this.cssClass);\n }\n if (record[this.fields.isReadonly]) {\n addClass([eventWrapper], cls.READ_ONLY);\n }\n if (this.parent.activeViewOptions.group.resources.length > 0) {\n var resIndex = this.getGroupIndexFromEvent(record);\n eventWrapper.setAttribute('data-group-index', resIndex.toString());\n }\n var templateElement = [];\n var eventObj = extend({}, record, null, true);\n if (this.parent.activeViewOptions.eventTemplate) {\n var templateId = this.parent.element.id + '_' + this.parent.activeViewOptions.eventTemplateName + 'eventTemplate';\n templateElement = this.parent.getAppointmentTemplate()(eventObj, this.parent, 'eventTemplate', templateId, false);\n }\n else {\n var locationEle = (record[this.fields.location] || this.parent.eventSettings.fields.location.default || '');\n var subjectEle = createElement('div', {\n className: cls.SUBJECT_CLASS,\n innerHTML: (eventSubject + (locationEle ? '; ' + locationEle : ''))\n });\n var startTimeEle = createElement('div', {\n className: cls.APPOINTMENT_TIME + (this.parent.isAdaptive ? ' ' + cls.DISABLE_CLASS : ''),\n innerHTML: this.parent.getTimeString(eventObj[this.fields.startTime])\n });\n var endTimeEle = createElement('div', {\n className: cls.APPOINTMENT_TIME + (this.parent.isAdaptive ? ' ' + cls.DISABLE_CLASS : ''),\n innerHTML: this.parent.getTimeString(eventObj[this.fields.endTime])\n });\n addClass([subjectEle], 'e-text-center');\n if (record[this.fields.isAllDay]) {\n templateElement = [subjectEle];\n }\n else if (!eventObj.isLeft && !eventObj.isRight) {\n templateElement = [startTimeEle, subjectEle, endTimeEle];\n }\n else {\n if (!eventObj.isLeft) {\n templateElement.push(startTimeEle);\n }\n templateElement.push(subjectEle);\n if (!eventObj.isRight) {\n templateElement.push(endTimeEle);\n }\n }\n }\n var appointmentDetails = createElement('div', { className: cls.APPOINTMENT_DETAILS });\n append(templateElement, appointmentDetails);\n eventWrapper.appendChild(appointmentDetails);\n this.parent.eventBase.renderSpannedIcon(eventWrapper, record.isSpanned);\n this.renderResizeHandler(eventWrapper, record.data, record[this.fields.isReadonly]);\n this.applyResourceColor(eventWrapper, eventObj, 'backgroundColor', this.groupOrder);\n return eventWrapper;\n };\n YearEvent.prototype.isSpannedEvent = function (eventObj, monthDate) {\n var monthStart = new Date(monthDate.getFullYear(), monthDate.getMonth(), 1);\n var monthEnd = util.addDays(new Date(monthDate.getFullYear(), monthDate.getMonth() + 1, 0), 1);\n var eventData = extend({}, eventObj, null, true);\n var eventStart = eventData[this.fields.startTime];\n var eventEnd = eventData[this.fields.endTime];\n var isSpanned = { isLeft: false, isRight: false, count: 1 };\n var yearStart = new Date(this.parent.selectedDate.getFullYear(), this.parent.firstMonthOfYear, 1);\n var yearEnd = util.addMonths(yearStart, this.parent.monthsCount);\n if (this.isResource) {\n this.updateSpannedEvents(eventObj, monthStart, monthEnd);\n }\n if (this.parent.activeViewOptions.orientation === 'Vertical' && this.parent.activeViewOptions.group.resources.length > 0) {\n this.updateSpannedEventDetails(eventStart, eventEnd, yearStart, yearEnd, eventData, isSpanned);\n var originalStartTime = eventData[this.fields.startTime];\n var originalEndTime = new Date(eventData[this.fields.endTime] - 1);\n isSpanned.count = (originalEndTime.getMonth() - originalStartTime.getMonth()) +\n (this.parent.monthsCount * (originalEndTime.getFullYear() - originalStartTime.getFullYear())) + 1;\n }\n else {\n this.updateSpannedEventDetails(eventStart, eventEnd, monthStart, monthEnd, eventData, isSpanned);\n if (this.parent.activeViewOptions.group.resources.length === 0 || this.parent.uiStateValues.isGroupAdaptive) {\n var end = util.resetTime(eventData[this.fields.endTime]).getTime();\n var start = util.resetTime(eventData[this.fields.startTime]).getTime();\n if (eventObj[this.fields.isAllDay] && end === eventObj[this.fields.endTime].getTime() || isSpanned.isRight) {\n end = util.addDays(new Date(end), -1).getTime();\n }\n isSpanned.count = Math.ceil((end - start) / util.MS_PER_DAY) + 1;\n }\n }\n eventData.isSpanned = isSpanned;\n if (util.resetTime(eventStart).getTime() < util.resetTime(this.parent.minDate).getTime()) {\n eventData[this.fields.startTime] = this.parent.minDate;\n }\n if (util.resetTime(eventEnd).getTime() > util.resetTime(this.parent.maxDate).getTime()) {\n eventData[this.fields.endTime] = this.parent.maxDate;\n }\n return eventData;\n };\n YearEvent.prototype.updateSpannedEventDetails = function (eventStart, eventEnd, viewStart, viewEnd, eventObj, isSpanned) {\n if (eventStart.getTime() < viewStart.getTime()) {\n eventObj[this.fields.startTime] = viewStart;\n isSpanned.isLeft = true;\n }\n if (eventEnd.getTime() > viewEnd.getTime()) {\n eventObj[this.fields.endTime] = viewEnd;\n isSpanned.isRight = true;\n }\n };\n YearEvent.prototype.getOverlapEvents = function (date, appointments) {\n var appointmentsList = [];\n var dateStart;\n var dateEnd;\n if (this.parent.activeViewOptions.group.resources.length > 0 && !this.parent.uiStateValues.isGroupAdaptive) {\n var monthStart = this.parent.calendarUtil.getMonthStartDate(new Date(date.getTime()));\n var monthEnd = util.addDays(this.parent.calendarUtil.getMonthEndDate(new Date(date.getTime())), -1);\n dateStart = util.resetTime(new Date(monthStart.getTime())).getTime();\n dateEnd = util.resetTime(new Date(monthEnd.getTime())).getTime();\n }\n else {\n if (this.parent.rowAutoHeight) {\n dateStart = util.resetTime(new Date(date.getTime())).getTime();\n dateEnd = util.addDays(util.resetTime(new Date(date.getTime())), 1).getTime();\n }\n else {\n dateStart = dateEnd = util.resetTime(new Date(date.getTime())).getTime();\n }\n }\n for (var _i = 0, appointments_1 = appointments; _i < appointments_1.length; _i++) {\n var app = appointments_1[_i];\n var appStart = new Date(app[this.fields.startTime].getTime());\n var appEnd = new Date(app[this.fields.endTime].getTime());\n var timeCondition = app[this.fields.isAllDay] ? util.resetTime(appEnd).getTime() > dateStart :\n util.resetTime(appEnd).getTime() >= dateStart;\n if (((util.resetTime(appStart).getTime() <= dateStart) && (timeCondition)) ||\n (util.resetTime(appStart).getTime() >= dateStart) && (util.resetTime(appEnd).getTime() <= dateEnd)) {\n appointmentsList.push(app);\n }\n }\n return appointmentsList;\n };\n YearEvent.prototype.getMonths = function () {\n var _this = this;\n // eslint-disable-next-line prefer-spread\n return Array.apply(null, { length: this.parent.monthsCount }).map(function (value, index) {\n return _this.parent.firstMonthOfYear + index;\n });\n };\n YearEvent.prototype.removeCellHeight = function () {\n var elementSelector = \".\" + cls.MONTH_HEADER_WRAPPER + \" tbody tr,.\" + cls.RESOURCE_COLUMN_TABLE_CLASS + \" tbody tr,.\" + cls.CONTENT_TABLE_CLASS + \" tbody tr\";\n var rows = [].slice.call(this.element.querySelectorAll(elementSelector));\n for (var _i = 0, rows_1 = rows; _i < rows_1.length; _i++) {\n var row = rows_1[_i];\n row.firstElementChild.style.height = '';\n }\n };\n YearEvent.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n this.parent = null;\n };\n return YearEvent;\n}(TimelineEvent));\nexport { YearEvent };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { createElement, closest, Draggable, extend, formatUnit, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { addClass, remove, removeClass, setStyleAttribute } from '@syncfusion/ej2-base';\nimport { ActionBase } from '../actions/action-base';\nimport { MonthEvent } from '../event-renderer/month';\nimport { TimelineEvent } from '../event-renderer/timeline-view';\nimport { YearEvent } from '../event-renderer/year';\nimport { VerticalEvent } from '../event-renderer/vertical-view';\nimport * as cls from '../base/css-constant';\nimport * as events from '../base/constant';\nimport * as util from '../base/util';\nvar MINUTES_PER_DAY = 1440;\n/**\n * Schedule events drag actions\n */\nvar DragAndDrop = /** @class */ (function (_super) {\n __extends(DragAndDrop, _super);\n function DragAndDrop() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.widthUptoCursorPoint = 0;\n _this.heightUptoCursorPoint = 0;\n _this.cursorPointIndex = 0;\n _this.isHeaderRows = false;\n _this.isTimelineDayProcess = false;\n _this.widthPerMinute = 0;\n _this.heightPerMinute = 0;\n _this.minDiff = 0;\n _this.isStepDragging = false;\n _this.isMorePopupOpened = false;\n _this.isAllDayDrag = false;\n _this.isMultiSelect = false;\n _this.multiData = [];\n _this.updatedData = [];\n _this.swagData = [];\n _this.startTime = 0;\n _this.isAllDayTarget = false;\n _this.targetTd = null;\n _this.isCursorAhead = false;\n return _this;\n }\n DragAndDrop.prototype.wireDragEvent = function (element) {\n new Draggable(element, {\n abort: '.' + cls.EVENT_RESIZE_CLASS,\n clone: true,\n isDragScroll: true,\n enableTapHold: this.parent.isAdaptive,\n enableTailMode: (this.parent.eventDragArea) ? true : false,\n cursorAt: (this.parent.eventDragArea) ? { left: -20, top: -20 } : { left: 0, top: 0 },\n dragArea: this.dragArea,\n dragStart: this.dragStart.bind(this),\n drag: this.drag.bind(this),\n dragStop: this.dragStop.bind(this),\n enableAutoScroll: false,\n helper: this.dragHelper.bind(this),\n queryPositionInfo: this.dragPosition.bind(this)\n });\n };\n DragAndDrop.prototype.setDragArea = function () {\n var dragElement = document.querySelector(this.parent.eventDragArea);\n this.dragArea = this.parent.eventDragArea && dragElement ? dragElement :\n this.parent.element.querySelector('.' + cls.CONTENT_TABLE_CLASS);\n };\n DragAndDrop.prototype.dragHelper = function (e) {\n var _this = this;\n this.setDragActionDefaultValues();\n this.actionObj.element = e.element;\n this.actionObj.action = 'drag';\n var elements = [];\n if (!this.parent.allowMultiDrag || isNullOrUndefined(this.parent.selectedElements) || this.parent.selectedElements.length === 0 ||\n (this.parent.selectedElements.length > 0 && this.parent.selectedElements.indexOf(this.actionObj.element) === -1)) {\n elements = [e.element];\n }\n else {\n elements = this.parent.selectedElements;\n this.isMultiSelect = true;\n }\n elements.forEach(function (ele) {\n var cloneElement = _this.createCloneElement(ele);\n if (ele.getAttribute('data-guid') === _this.actionObj.element.getAttribute('data-guid')) {\n _this.actionObj.clone = cloneElement;\n if (!_this.parent.eventDragArea && _this.parent.currentView !== 'Month' &&\n _this.parent.activeViewOptions.timeScale.enable && !_this.parent.activeView.isTimelineView() &&\n !_this.actionObj.element.classList.contains(cls.ALLDAY_APPOINTMENT_CLASS)) {\n setStyleAttribute(_this.actionObj.clone, { cursor: 'move', left: '0%', right: '0%', width: '100%' });\n }\n _this.actionObj.clone.style.top = formatUnit(_this.actionObj.element.offsetTop);\n }\n _this.actionObj.cloneElement.push(cloneElement);\n _this.actionObj.originalElement.push(ele);\n });\n return this.actionObj.clone;\n };\n DragAndDrop.prototype.dragPosition = function (e) {\n if (this.parent.eventDragArea) {\n return { left: e.left, top: e.top };\n }\n var cellHeight = (this.actionObj.cellHeight / this.actionObj.slotInterval) * this.actionObj.interval;\n var leftValue = formatUnit(0);\n if (this.parent.currentView === 'Month') {\n leftValue = e.left;\n }\n var cloneRight;\n if (this.isStepDragging) {\n cloneRight = Math.ceil(this.actionObj.clone.getBoundingClientRect().right) + this.actionObj.interval;\n }\n else {\n cloneRight = this.actionObj.clone.getBoundingClientRect().right;\n }\n var dragArea = this.parent.element.querySelector('.' + cls.CONTENT_WRAP_CLASS);\n var contentWrapRight = dragArea.getBoundingClientRect().right;\n if (this.parent.activeView.isTimelineView() && this.parent.currentView !== 'TimelineYear' && !this.parent.enableRtl &&\n this.actionObj.pageX > cloneRight && !this.isMorePopupOpened && !(this.actionObj.pageX > contentWrapRight)) {\n this.isCursorAhead = true;\n }\n if (this.parent.activeView.isTimelineView()) {\n leftValue = formatUnit(this.actionObj.clone.offsetLeft);\n }\n var topValue;\n if ((this.parent.activeView.isTimelineView() || !this.parent.timeScale.enable ||\n (!isNullOrUndefined(this.actionObj.clone.offsetParent) &&\n this.actionObj.clone.offsetParent.classList.contains(cls.MORE_EVENT_POPUP_CLASS)))) {\n topValue = formatUnit(this.actionObj.clone.offsetTop);\n }\n else if (this.parent.currentView === 'Month') {\n topValue = formatUnit(0);\n }\n else if (this.actionObj.clone.classList.contains(cls.ALLDAY_APPOINTMENT_CLASS)) {\n topValue = formatUnit(this.parent.element.querySelector('.' + cls.ALLDAY_ROW_CLASS).offsetTop);\n setStyleAttribute(this.actionObj.clone, {\n width: formatUnit(Math.ceil(this.actionObj.clone.offsetWidth / this.actionObj.cellWidth) * this.actionObj.cellWidth),\n right: this.parent.enableRtl && formatUnit(0)\n });\n }\n else {\n if (this.actionObj.element.classList.contains(cls.ALLDAY_APPOINTMENT_CLASS) &&\n !this.actionObj.clone.classList.contains(cls.ALLDAY_APPOINTMENT_CLASS)) {\n setStyleAttribute(this.actionObj.clone, {\n height: formatUnit(this.actionObj.cellHeight),\n width: formatUnit(this.actionObj.cellWidth - 1),\n pointerEvents: 'none'\n });\n }\n var top_1 = parseInt(e.top, 10);\n top_1 = top_1 < 0 ? 0 : top_1;\n topValue = formatUnit(Math.ceil(top_1 / cellHeight) * cellHeight);\n var scrollHeight = this.parent.element.querySelector('.e-content-wrap').scrollHeight;\n var cloneBottom = parseInt(topValue, 10) + this.actionObj.clone.offsetHeight;\n if (cloneBottom > scrollHeight) {\n topValue = (parseInt(topValue, 10) - (cloneBottom - scrollHeight)) + 'px';\n }\n }\n return { left: leftValue, top: topValue };\n };\n DragAndDrop.prototype.setDragActionDefaultValues = function () {\n this.actionObj.action = 'drag';\n this.actionObj.isAllDay = null;\n this.actionObj.slotInterval = this.parent.activeViewOptions.timeScale.interval / this.parent.activeViewOptions.timeScale.slotCount;\n this.actionObj.interval = this.actionObj.slotInterval;\n var workCell = this.parent.element.querySelector('.' + cls.WORK_CELLS_CLASS);\n this.actionObj.cellWidth = workCell.offsetWidth;\n this.actionObj.cellHeight = workCell.offsetHeight;\n };\n DragAndDrop.prototype.dragStart = function (e) {\n var _this = this;\n var eventGuid = this.actionObj.element.getAttribute('data-guid');\n this.actionObj.event = this.parent.eventBase.getEventByGuid(eventGuid);\n var eventObj = extend({}, this.actionObj.event, null, true);\n if (!isNullOrUndefined(eventObj)) {\n this.startTime = eventObj[this.parent.eventFields.startTime].getTime();\n }\n var dragArgs = {\n cancel: false,\n data: eventObj,\n selectedData: this.getSelectedData(),\n event: e,\n excludeSelectors: null,\n element: this.actionObj.element,\n interval: this.actionObj.interval,\n navigation: { enable: false, timeDelay: 2000 },\n scroll: { enable: true, scrollBy: 30, timeDelay: 100 }\n };\n this.parent.trigger(events.dragStart, dragArgs, function (dragEventArgs) {\n if (dragEventArgs.cancel || (!isNullOrUndefined(_this.actionObj.element) &&\n isNullOrUndefined(_this.actionObj.element.parentElement))) {\n var dragObj = _this.actionObj.element.ej2_instances[0];\n if (!isNullOrUndefined(dragObj)) {\n dragObj.intDestroy(e.event);\n }\n _this.actionObj.action = '';\n _this.removeCloneElementClasses();\n _this.removeCloneElement();\n return;\n }\n _this.actionClass('addClass');\n _this.parent.uiStateValues.action = true;\n _this.actionObj.start = eventObj[_this.parent.eventFields.startTime];\n _this.actionObj.end = eventObj[_this.parent.eventFields.endTime];\n _this.actionObj.groupIndex = parseInt(_this.actionObj.element.getAttribute('data-group-index') || '0', 10);\n _this.actionObj.interval = dragEventArgs.interval;\n _this.actionObj.navigation = dragEventArgs.navigation;\n _this.actionObj.scroll = dragEventArgs.scroll;\n _this.actionObj.excludeSelectors = dragEventArgs.excludeSelectors;\n var viewElement = _this.parent.element.querySelector('.' + cls.CONTENT_WRAP_CLASS);\n _this.scrollArgs = { element: viewElement, width: viewElement.scrollWidth, height: viewElement.scrollHeight };\n _this.widthPerMinute = (_this.actionObj.cellWidth / _this.actionObj.slotInterval) * _this.actionObj.interval;\n _this.heightPerMinute = (_this.actionObj.cellHeight / _this.actionObj.slotInterval) * _this.actionObj.interval;\n _this.widthUptoCursorPoint = 0;\n _this.heightUptoCursorPoint = 0;\n _this.cursorPointIndex = -1;\n _this.isHeaderRows = false;\n _this.isTimelineDayProcess = false;\n _this.minDiff = 0;\n _this.isMorePopupOpened = false;\n _this.daysVariation = -1;\n _this.isAllDayTarget = _this.actionObj.clone.classList.contains(cls.ALLDAY_APPOINTMENT_CLASS);\n if ((_this.parent.activeView.isTimelineView() || !_this.parent.timeScale.enable) && _this.parent.currentView !== 'TimelineYear') {\n if (!isNullOrUndefined(_this.actionObj.clone.offsetParent) &&\n _this.actionObj.clone.offsetParent.classList.contains(cls.MORE_EVENT_POPUP_CLASS)) {\n _this.isMorePopupOpened = true;\n }\n _this.actionObj.pageX = e.event.pageX;\n var rows = _this.parent.activeViewOptions.headerRows;\n _this.isHeaderRows = rows.length > 0 && rows[rows.length - 1].option !== 'Hour' &&\n rows[rows.length - 1].option !== 'Date';\n _this.isTimelineDayProcess = !_this.parent.activeViewOptions.timeScale.enable || _this.isHeaderRows ||\n _this.parent.currentView === 'TimelineMonth' || (rows.length > 0 && rows[rows.length - 1].option === 'Date');\n _this.isStepDragging = !_this.isTimelineDayProcess && (_this.actionObj.slotInterval !== _this.actionObj.interval);\n if (_this.isTimelineDayProcess) {\n _this.timelineEventModule = new TimelineEvent(_this.parent, 'day');\n }\n else {\n _this.timelineEventModule = new TimelineEvent(_this.parent, 'hour');\n }\n }\n if (_this.parent.currentView === 'TimelineYear') {\n _this.yearEvent = new YearEvent(_this.parent);\n }\n if (_this.parent.currentView === 'Month') {\n _this.startTime = util.resetTime(new Date(_this.startTime)).getTime();\n _this.updateOriginalElement(_this.actionObj.clone);\n _this.monthEvent = new MonthEvent(_this.parent);\n }\n if (_this.parent.currentView === 'Day' || _this.parent.currentView === 'Week' || _this.parent.currentView === 'WorkWeek') {\n _this.verticalEvent = new VerticalEvent(_this.parent);\n _this.verticalEvent.initializeValues();\n var splitEvents = _this.splitEvent(_this.actionObj.event);\n splitEvents.forEach(function (event) {\n var query = \".e-day-wrapper[data-date=\\\"\" + util.resetTime(event[_this.parent.eventFields.startTime]).getTime() + \"\\\"]\";\n if (_this.parent.activeViewOptions.group.resources.length > 0) {\n query = query.concat('[data-group-index = \"' + _this.actionObj.groupIndex + '\"]');\n }\n var appWrap = _this.parent.element.querySelector(query);\n if (appWrap) {\n var appEle = appWrap.querySelector('[data-id=\"' + _this.actionObj.clone.getAttribute('data-id') + '\"]');\n if (appEle) {\n addClass([appEle], cls.EVENT_ACTION_CLASS);\n }\n }\n });\n }\n });\n };\n DragAndDrop.prototype.getSelectedData = function () {\n if (this.isMultiSelect && this.multiData.length === 0 && this.parent.selectedElements.length > 0) {\n for (var _i = 0, _a = this.parent.selectedElements; _i < _a.length; _i++) {\n var element = _a[_i];\n var eventGuid = element.getAttribute('data-guid');\n var data = this.parent.eventBase.getEventByGuid(eventGuid);\n this.multiData.push(extend({}, data, null, true));\n }\n }\n return this.multiData;\n };\n DragAndDrop.prototype.drag = function (e) {\n if (this.parent.quickPopup) {\n this.parent.quickPopup.quickPopupHide(true);\n }\n if ((!isNullOrUndefined(e.target)) && e.target.classList.contains(cls.DISABLE_DATES)) {\n return;\n }\n var eventObj = extend({}, this.actionObj.event, null, true);\n var eventArgs = this.parent.eventBase.getPageCoordinates(e);\n this.actionObj.Y = this.actionObj.pageY = eventArgs.pageY;\n this.actionObj.X = this.actionObj.pageX = eventArgs.pageX;\n this.actionObj.target = e.target;\n this.widthUptoCursorPoint = (this.widthUptoCursorPoint === 0) ?\n Math.ceil((Math.abs(this.actionObj.clone.getBoundingClientRect().left - this.actionObj.X) / this.widthPerMinute)) *\n this.widthPerMinute : this.widthUptoCursorPoint;\n this.widthUptoCursorPoint = this.isMorePopupOpened ? this.actionObj.cellWidth : this.widthUptoCursorPoint;\n this.heightUptoCursorPoint = (this.heightUptoCursorPoint === 0) ?\n Math.ceil((Math.abs(this.actionObj.clone.getBoundingClientRect().top - this.actionObj.Y) / this.heightPerMinute)) *\n this.heightPerMinute : this.heightUptoCursorPoint;\n this.isAllDayDrag = (this.parent.activeViewOptions.timeScale.enable) ?\n this.actionObj.clone.classList.contains(cls.ALLDAY_APPOINTMENT_CLASS) :\n this.actionObj.event[this.parent.eventFields.isAllDay];\n if (this.isStepDragging && this.minDiff === 0) {\n this.calculateMinutesDiff(eventObj);\n }\n if ((this.parent.currentView === 'Month' || this.isAllDayDrag) && this.daysVariation < 0) {\n var date = this.parent.getDateFromElement(this.actionObj.target);\n if (!isNullOrUndefined(date)) {\n var currentDate = util.resetTime(date);\n var startDate = util.resetTime(new Date(eventObj[this.parent.eventFields.startTime].getTime()));\n this.daysVariation = (currentDate.getTime() - startDate.getTime()) / util.MS_PER_DAY;\n }\n else {\n this.daysVariation = 0;\n }\n }\n else {\n this.daysVariation = 0;\n }\n if (this.parent.eventDragArea) {\n var targetElement = eventArgs.target;\n this.actionObj.clone.style.top = formatUnit(targetElement.offsetTop);\n this.actionObj.clone.style.left = formatUnit(targetElement.offsetLeft);\n var currentTarget = closest(targetElement, '.' + cls.ROOT);\n if (!currentTarget) {\n this.actionObj.clone.style.height = '';\n this.actionObj.clone.style.width = '';\n }\n else {\n if (!(this.parent.currentView === 'Week' || this.parent.currentView === 'WorkWeek' || this.parent.currentView === 'Day')) {\n this.actionObj.clone.style.width = formatUnit(this.actionObj.element.offsetWidth);\n }\n }\n }\n this.updateScrollPosition(e);\n this.updateNavigatingPosition(e);\n this.updateDraggingDateTime(e);\n var dragArgs = {\n data: eventObj, event: e, element: this.actionObj.element, startTime: this.actionObj.start,\n endTime: this.actionObj.end, selectedData: this.updatedData\n };\n if (this.parent.group.resources.length > 0) {\n dragArgs.groupIndex = this.actionObj.groupIndex;\n }\n this.parent.trigger(events.drag, dragArgs);\n };\n DragAndDrop.prototype.calculateMinutesDiff = function (eventObj) {\n if (this.parent.enableRtl) {\n this.minDiff =\n ((this.actionObj.clone.offsetWidth - this.widthUptoCursorPoint) / this.widthPerMinute) * this.actionObj.interval;\n }\n else {\n this.minDiff = (this.widthUptoCursorPoint / this.widthPerMinute) * this.actionObj.interval;\n }\n var startDate = eventObj[this.parent.eventFields.startTime];\n var startTime = this.parent.activeView.renderDates[0];\n var startEndHours = util.getStartEndHours(startTime, this.parent.activeView.getStartHour(), this.parent.activeView.getEndHour());\n if (startEndHours.startHour.getTime() > startDate.getTime()) {\n this.minDiff = this.minDiff + ((startEndHours.startHour.getTime() - startDate.getTime()) / util.MS_PER_MINUTE);\n }\n };\n DragAndDrop.prototype.dragStop = function (e) {\n var _this = this;\n this.isCursorAhead = false;\n this.removeCloneElementClasses();\n this.removeCloneElement();\n clearInterval(this.actionObj.navigationInterval);\n this.actionObj.navigationInterval = null;\n clearInterval(this.actionObj.scrollInterval);\n this.actionObj.scrollInterval = null;\n this.actionClass('removeClass');\n this.parent.uiStateValues.action = false;\n if (this.isAllowDrop(e)) {\n return;\n }\n var target = ((!e.target.classList.contains('e-work-cells') && this.parent.cellTemplate) ?\n closest(e.target, '.e-work-cells') : e.target);\n var dragArgs = {\n cancel: false, data: this.getChangedData(this.updatedData), selectedData: this.updatedData,\n event: e, element: this.actionObj.element, target: target\n };\n this.actionObj.action = null;\n this.parent.trigger(events.dragStop, dragArgs, function (dragEventArgs) {\n if (dragEventArgs.cancel) {\n return;\n }\n if (_this.parent.isSpecificResourceEvents()) {\n _this.parent.crudModule.crudObj.isCrudAction = true;\n _this.parent.crudModule.crudObj.sourceEvent =\n [_this.parent.resourceBase.lastResourceLevel[parseInt(dragArgs.element.getAttribute('data-group-index'), 10)]];\n var currentGroupIndex = parseInt(dragArgs.target.getAttribute('data-group-index'), 10) || _this.actionObj.groupIndex;\n _this.parent.crudModule.crudObj.targetEvent =\n [_this.parent.resourceBase.lastResourceLevel[parseInt(currentGroupIndex.toString(), 10)]];\n }\n _this.saveChangedData(dragEventArgs, _this.isMultiSelect);\n });\n this.updatedData = [];\n this.multiData = [];\n this.isMultiSelect = false;\n this.parent.selectedElements = [];\n };\n DragAndDrop.prototype.updateNavigatingPosition = function (e) {\n var _this = this;\n if (this.actionObj.navigation.enable) {\n var currentDate_1 = this.parent.getCurrentTime();\n if (isNullOrUndefined(this.actionObj.navigationInterval)) {\n this.actionObj.navigationInterval = window.setInterval(function () {\n if (currentDate_1) {\n var crtDate = _this.parent.getCurrentTime();\n var end = crtDate.getSeconds();\n var start = currentDate_1.getSeconds() + (_this.actionObj.navigation.timeDelay / 1000);\n start = (start >= 60) ? start - 60 : start;\n if (start === end) {\n currentDate_1 = _this.parent.getCurrentTime();\n _this.viewNavigation(e);\n _this.updateDraggingDateTime(e);\n }\n }\n }, this.actionObj.navigation.timeDelay);\n }\n }\n };\n DragAndDrop.prototype.updateDraggingDateTime = function (e) {\n if (!isNullOrUndefined(this.actionObj.clone.offsetParent) &&\n this.actionObj.clone.offsetParent.classList.contains(cls.MORE_EVENT_POPUP_CLASS)) {\n this.morePopupEventDragging(e);\n }\n else if (this.parent.activeView.isTimelineView() && this.parent.currentView !== 'TimelineYear') {\n this.timelineEventModule.dateRender = this.parent.activeView.renderDates;\n this.timelineEventModule.cellWidth = this.actionObj.cellWidth;\n this.timelineEventModule.getSlotDates();\n this.actionObj.cellWidth = this.isHeaderRows ? this.timelineEventModule.cellWidth :\n this.parent.element.querySelector('.' + cls.WORK_CELLS_CLASS).getBoundingClientRect().width;\n this.calculateTimelineTime(e);\n }\n else {\n if (this.parent.currentView === 'Month' || this.parent.currentView === 'TimelineYear') {\n this.calculateVerticalDate(e);\n }\n else {\n this.calculateVerticalTime(e);\n }\n }\n };\n DragAndDrop.prototype.navigationWrapper = function () {\n if (!this.parent.activeView.isTimelineView()) {\n if (this.parent.currentView === 'Month' || !this.parent.timeScale.enable) {\n var outerWrapperCls = [].slice.call(this.parent.element.querySelectorAll('.' + cls.WORK_CELLS_CLASS));\n this.actionObj.index = (this.parent.activeView.renderDates.length < this.actionObj.index) ?\n this.parent.activeView.renderDates.length - 1 : this.actionObj.index;\n var targetWrapper = outerWrapperCls[this.actionObj.index].querySelector('.' + cls.APPOINTMENT_WRAPPER_CLASS);\n if (!targetWrapper) {\n targetWrapper = createElement('div', { className: cls.APPOINTMENT_WRAPPER_CLASS });\n outerWrapperCls[this.actionObj.index].appendChild(targetWrapper);\n }\n targetWrapper.appendChild(this.actionObj.clone);\n }\n else {\n var wrapperClass = this.actionObj.clone.classList.contains(cls.ALLDAY_APPOINTMENT_CLASS) ?\n '.' + cls.ALLDAY_APPOINTMENT_WRAPPER_CLASS : '.' + cls.APPOINTMENT_WRAPPER_CLASS;\n this.parent.element.querySelectorAll(wrapperClass)\n .item(this.actionObj.index).appendChild(this.actionObj.clone);\n if (wrapperClass === '.' + cls.ALLDAY_APPOINTMENT_WRAPPER_CLASS) {\n var elementHeight = this.getAllDayEventHeight();\n var event_2 = [].slice.call(this.parent.element.querySelectorAll('.' + cls.ALLDAY_CELLS_CLASS + ':first-child'));\n if (event_2[0].offsetHeight < elementHeight) {\n for (var _i = 0, event_1 = event_2; _i < event_1.length; _i++) {\n var e = event_1[_i];\n e.style.height = ((elementHeight + 2) / 12) + 'em';\n }\n }\n this.actionObj.clone.style.height = formatUnit(elementHeight);\n }\n this.actionObj.height = parseInt(this.actionObj.clone.style.height, 10);\n }\n }\n else {\n var outWrapper = void 0;\n if (this.parent.activeViewOptions.group.resources.length > 0) {\n outWrapper = this.parent.element.querySelectorAll('.e-appointment-container:not(.e-hidden)').item(this.actionObj.index);\n }\n else {\n outWrapper = this.parent.element.querySelector('.' + cls.APPOINTMENT_CONTAINER_CLASS);\n }\n if (!isNullOrUndefined(outWrapper)) {\n var tarWrapper_1 = outWrapper.querySelector('.' + cls.APPOINTMENT_WRAPPER_CLASS);\n if (!tarWrapper_1) {\n tarWrapper_1 = createElement('div', { className: cls.APPOINTMENT_WRAPPER_CLASS });\n outWrapper.appendChild(tarWrapper_1);\n }\n this.actionObj.cloneElement.forEach(function (ele) {\n tarWrapper_1.appendChild(ele);\n });\n }\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n DragAndDrop.prototype.viewNavigation = function (e) {\n var navigationType;\n var dragArea = this.parent.element.querySelector('.' + cls.CONTENT_WRAP_CLASS);\n if (dragArea && ((!this.scrollEdges.top && !this.scrollEdges.bottom) ||\n closest(this.actionObj.clone, '.' + cls.ALLDAY_APPOINTMENT_WRAPPER_CLASS))) {\n if ((dragArea.scrollLeft === 0) &&\n (Math.round(this.actionObj.X) <=\n Math.round(dragArea.getBoundingClientRect().left + this.actionObj.cellWidth + window.pageXOffset))) {\n navigationType = this.parent.enableRtl ? 'next' : 'previous';\n }\n else if ((Math.round(dragArea.scrollLeft) + dragArea.clientWidth === dragArea.scrollWidth) &&\n (Math.round(this.actionObj.X) >=\n Math.round(dragArea.getBoundingClientRect().right - this.actionObj.cellWidth + window.pageXOffset))) {\n navigationType = this.parent.enableRtl ? 'previous' : 'next';\n }\n if (navigationType) {\n this.parent.changeDate(this.parent.activeView.getNextPreviousDate(navigationType));\n }\n }\n };\n DragAndDrop.prototype.morePopupEventDragging = function (e) {\n if (isNullOrUndefined(e.target) || (e.target && isNullOrUndefined(closest(e.target, 'td')))) {\n return;\n }\n var eventObj = extend({}, this.actionObj.event, null, true);\n var eventDuration = eventObj[this.parent.eventFields.endTime].getTime() -\n eventObj[this.parent.eventFields.startTime].getTime();\n var td = closest(e.target, 'td');\n if (this.parent.currentView === 'TimelineYear' && (!td.classList.contains(cls.WORK_CELLS_CLASS) || td.classList.contains(cls.OTHERMONTH_CLASS))) {\n return;\n }\n var dragStart = this.parent.getDateFromElement(td);\n var dragEnd = new Date(dragStart.getTime());\n dragEnd.setMilliseconds(eventDuration);\n if (this.parent.activeViewOptions.group.resources.length > 0) {\n this.actionObj.groupIndex = parseInt(td.getAttribute('data-group-index'), 10);\n }\n this.actionObj.start = new Date(dragStart.getTime());\n this.actionObj.end = new Date(dragEnd.getTime());\n this.actionObj.clone.style.top = formatUnit(td.offsetParent.offsetTop);\n this.actionObj.clone.style.left = formatUnit(td.offsetLeft);\n this.actionObj.clone.style.width = formatUnit(td.offsetWidth);\n var eventContainer = td;\n var eventWrapper;\n if (this.parent.activeView.isTimelineView()) {\n var rowIndex = closest(td, 'tr').rowIndex;\n eventContainer = this.parent.element.querySelectorAll('.e-appointment-container').item(rowIndex);\n }\n eventWrapper = eventContainer.querySelector('.' + cls.APPOINTMENT_WRAPPER_CLASS);\n if (!eventWrapper) {\n eventWrapper = createElement('div', { className: cls.APPOINTMENT_WRAPPER_CLASS });\n eventContainer.appendChild(eventWrapper);\n }\n this.appendCloneElement(eventWrapper);\n };\n DragAndDrop.prototype.calculateVerticalTime = function (e) {\n var _this = this;\n if (isNullOrUndefined(this.actionObj.target) ||\n (this.actionObj.target && isNullOrUndefined(closest(this.actionObj.target, 'tr'))) ||\n (!(closest(this.actionObj.target, 'td').classList.contains(cls.WORK_CELLS_CLASS)) &&\n !(closest(this.actionObj.target, 'td').classList.contains(cls.ALLDAY_CELLS_CLASS)))) {\n return;\n }\n if (this.parent.activeViewOptions.timeScale.enable) {\n this.swapDragging(e);\n }\n var dragArea = this.parent.element.querySelector('.' + cls.CONTENT_WRAP_CLASS);\n var eventObj = extend({}, this.actionObj.event, null, true);\n var eventStart = eventObj[this.parent.eventFields.startTime];\n var eventEnd = eventObj[this.parent.eventFields.endTime];\n var eventDuration = util.getUniversalTime(eventEnd) - util.getUniversalTime(eventStart);\n var offsetTop = Math.floor(parseInt(this.actionObj.clone.style.top, 10) / this.actionObj.cellHeight)\n * this.actionObj.cellHeight;\n offsetTop = offsetTop < 0 ? 0 : offsetTop;\n if (this.scrollEdges.top || this.scrollEdges.bottom) {\n offsetTop = this.scrollEdges.top ? dragArea.scrollTop - this.heightUptoCursorPoint +\n this.actionObj.cellHeight + window.pageYOffset :\n (dragArea.scrollTop + dragArea.offsetHeight - this.actionObj.clone.offsetHeight + window.pageYOffset) +\n (this.actionObj.clone.offsetHeight - this.heightUptoCursorPoint);\n offsetTop = Math.round(offsetTop / this.actionObj.cellHeight) * this.actionObj.cellHeight;\n if (dragArea.scrollTop > 0) {\n this.actionObj.clone.style.top = formatUnit(offsetTop);\n }\n }\n var rowIndex = (this.parent.activeViewOptions.timeScale.enable) ? (offsetTop / this.actionObj.cellHeight) : 0;\n var heightPerMinute = this.actionObj.cellHeight / this.actionObj.slotInterval;\n var diffInMinutes = parseInt(this.actionObj.clone.style.top, 10) - offsetTop;\n var tr;\n if (this.isAllDayDrag) {\n tr = this.parent.element.querySelector('.' + cls.ALLDAY_ROW_CLASS);\n }\n else {\n var trCollections = [].slice.call(this.parent.getContentTable().querySelectorAll('tr'));\n tr = trCollections[parseInt(rowIndex.toString(), 10)];\n }\n var index;\n if (closest(this.actionObj.target, 'td').classList.contains(cls.WORK_CELLS_CLASS) ||\n closest(this.actionObj.target, 'td').classList.contains(cls.ALLDAY_CELLS_CLASS)) {\n index = closest(this.actionObj.target, 'td').cellIndex;\n }\n var colIndex = isNullOrUndefined(index) ? closest(this.actionObj.clone, 'td').cellIndex : index;\n this.actionObj.index = colIndex;\n if (isNullOrUndefined(tr)) {\n return;\n }\n var td = tr.children[parseInt(colIndex.toString(), 10)];\n if (this.parent.activeViewOptions.group.resources.length > 0 && !this.parent.uiStateValues.isGroupAdaptive) {\n this.actionObj.groupIndex = parseInt(td.getAttribute('data-group-index'), 10);\n }\n var dragStart;\n var dragEnd;\n if (this.parent.activeViewOptions.timeScale.enable && !this.isAllDayDrag) {\n this.appendCloneElement(this.getEventWrapper(colIndex));\n dragStart = this.parent.getDateFromElement(td);\n dragStart.setMinutes(dragStart.getMinutes() + (diffInMinutes / heightPerMinute));\n dragEnd = new Date(dragStart.getTime());\n if (this.actionObj.element.classList.contains(cls.ALLDAY_APPOINTMENT_CLASS)) {\n dragEnd.setMinutes(dragEnd.getMinutes() + this.actionObj.slotInterval);\n }\n else {\n dragEnd.setMilliseconds(eventDuration);\n }\n }\n else {\n dragStart = this.parent.getDateFromElement(td);\n dragStart.setDate(dragStart.getDate() - this.daysVariation);\n dragStart.setHours(eventStart.getHours(), eventStart.getMinutes(), eventStart.getSeconds());\n dragEnd = new Date(dragStart.getTime());\n dragEnd.setMilliseconds(eventDuration);\n if (!this.actionObj.element.classList.contains(cls.ALLDAY_APPOINTMENT_CLASS) &&\n this.actionObj.clone.classList.contains(cls.ALLDAY_APPOINTMENT_CLASS)) {\n dragEnd = util.addDays(util.resetTime(dragEnd), 1);\n }\n var index_1 = this.parent.activeViewOptions.group.byDate || (this.parent.virtualScrollModule &&\n !this.parent.activeViewOptions.timeScale.enable) ? colIndex : undefined;\n this.updateAllDayEvents(dragStart, dragEnd, index_1);\n }\n this.actionObj.start = new Date(+dragStart);\n this.actionObj.end = new Date(+dragEnd);\n var event = this.getUpdatedEvent(this.actionObj.start, this.actionObj.end, this.actionObj.event);\n var dynamicWrappers = [].slice.call(this.parent.element.querySelectorAll('.e-dynamic-clone'));\n for (var _i = 0, dynamicWrappers_1 = dynamicWrappers; _i < dynamicWrappers_1.length; _i++) {\n var wrapper = dynamicWrappers_1[_i];\n remove(wrapper);\n }\n if (this.multiData.length > 0) {\n if (this.isAllDayTarget && this.isAllDayDrag && !isNullOrUndefined(this.actionObj.isAllDay) && !this.actionObj.isAllDay) {\n var targetCellTime_1 = parseInt((closest(this.actionObj.target, 'td')).getAttribute('data-date'), 10);\n this.multiData.forEach(function (data) {\n _this.swagData.push(extend({}, data, null, true));\n if (data[_this.parent.eventFields.isAllDay]) {\n data[_this.parent.eventFields.startTime] =\n new Date(data[_this.parent.eventFields.startTime].getTime() + (targetCellTime_1 - _this.startTime));\n var startTime = new Date(data[_this.parent.eventFields.startTime]);\n var endTime = new Date(startTime.setMinutes(startTime.getMinutes() + _this.actionObj.slotInterval));\n data[_this.parent.eventFields.endTime] = endTime;\n data[_this.parent.eventFields.isAllDay] = false;\n }\n });\n this.startTime = targetCellTime_1;\n }\n if (this.isAllDayTarget && this.isAllDayDrag &&\n !isNullOrUndefined(this.actionObj.isAllDay) && this.actionObj.isAllDay && this.swagData.length > 0) {\n this.multiData = this.swagData;\n this.swagData = [];\n var eventObj_1 = extend({}, this.actionObj.event, null, true);\n this.startTime = eventObj_1[this.parent.eventFields.startTime].getTime();\n }\n var startTimeDiff = event[this.parent.eventFields.startTime].getTime() - this.startTime;\n for (var index_2 = 0; index_2 < this.multiData.length; index_2++) {\n this.updatedData[parseInt(index_2.toString(), 10)] =\n this.updateMultipleData(this.multiData[parseInt(index_2.toString(), 10)], startTimeDiff);\n var dayIndex = this.getDayIndex(this.updatedData[parseInt(index_2.toString(), 10)]);\n if (dayIndex >= 0) {\n var wrapper = this.getEventWrapper(dayIndex, this.updatedData[parseInt(index_2.toString(), 10)][this.parent.eventFields.isAllDay]);\n this.appendCloneElement(wrapper, this.actionObj.cloneElement[parseInt(index_2.toString(), 10)]);\n this.updateEventHeight(this.updatedData[parseInt(index_2.toString(), 10)], index_2, dayIndex);\n }\n else {\n if (!isNullOrUndefined(this.actionObj.cloneElement[parseInt(index_2.toString(), 10)].parentNode)) {\n remove(this.actionObj.cloneElement[parseInt(index_2.toString(), 10)]);\n }\n }\n }\n }\n else {\n this.updateEventHeight(event);\n }\n this.updateTimePosition(this.actionObj.start, this.updatedData);\n };\n DragAndDrop.prototype.splitEvent = function (event) {\n var eventFields = this.parent.eventFields;\n var eventData = [];\n var startTime = event[eventFields.startTime];\n var endTime = event[eventFields.endTime];\n if (util.resetTime(new Date(startTime.getTime())) < util.resetTime(new Date(endTime.getTime()))) {\n var startReferenceDate = util.resetTime(new Date(startTime.getTime()));\n var endReferenceDate = new Date(startReferenceDate.getTime());\n for (var i = 0; startReferenceDate < new Date(endTime.getTime()); i++) {\n endReferenceDate = new Date(endReferenceDate.setDate(startReferenceDate.getDate() + 1));\n var eventObj = extend({}, event, null, true);\n eventObj[eventFields.startTime] = new Date(startReferenceDate);\n eventObj[eventFields.endTime] = new Date(endReferenceDate);\n startReferenceDate = new Date(startReferenceDate.setDate(startReferenceDate.getDate() + 1));\n eventData.push(eventObj);\n }\n var index = eventData.length - 1;\n eventData[0][eventFields.startTime] = startTime;\n eventData[parseInt(index.toString(), 10)][eventFields.endTime] = endTime;\n }\n else {\n eventData.push(event);\n }\n return eventData;\n };\n DragAndDrop.prototype.updateMultipleData = function (data, timeDifference) {\n var eventObj = extend({}, data, null, true);\n if (!isNullOrUndefined(this.actionObj.isAllDay) && this.parent.activeViewOptions.timeScale.enable &&\n ((this.isAllDayTarget && eventObj[this.parent.eventFields.isAllDay]) ||\n (!this.isAllDayTarget && !eventObj[this.parent.eventFields.isAllDay]))) {\n eventObj[this.parent.eventFields.isAllDay] = this.actionObj.isAllDay;\n }\n var endTimeDiff = eventObj[this.parent.eventFields.endTime].getTime() -\n eventObj[this.parent.eventFields.startTime].getTime();\n if (eventObj[this.parent.eventFields.isAllDay]) {\n var differInDays = Math.ceil(timeDifference / (1000 * 3600 * 24));\n var day = Math.ceil(endTimeDiff / (1000 * 3600 * 24));\n var startTime = new Date(eventObj[this.parent.eventFields.startTime]);\n eventObj[this.parent.eventFields.startTime] = util.resetTime(new Date(startTime.setDate(startTime.getDate() + differInDays)));\n eventObj[this.parent.eventFields.endTime] = util.addDays(eventObj[this.parent.eventFields.startTime], day);\n }\n else {\n eventObj[this.parent.eventFields.startTime] =\n new Date(eventObj[this.parent.eventFields.startTime].getTime() + timeDifference);\n eventObj[this.parent.eventFields.endTime] =\n new Date(eventObj[this.parent.eventFields.startTime].getTime() + endTimeDiff);\n }\n return eventObj;\n };\n DragAndDrop.prototype.getDayIndex = function (event) {\n var eventObj = extend({}, event, null, true);\n var startDate = util.resetTime(eventObj[this.parent.eventFields.startTime]);\n if (this.parent.activeViewOptions.timeScale.enable && !eventObj[this.parent.eventFields.isAllDay]) {\n var startHour = this.parent.activeView.getStartHour();\n startDate.setMilliseconds(startHour.getTime() - util.resetTime(startHour).getTime());\n }\n var startTime = startDate.getTime();\n var query = '';\n var wrapper = cls.DAY_WRAPPER_CLASS;\n if (this.parent.activeViewOptions.timeScale.enable && (eventObj[this.parent.eventFields.isAllDay])) {\n wrapper = cls.ALLDAY_APPOINTMENT_WRAPPER_CLASS;\n }\n else {\n wrapper = cls.WORK_CELLS_CLASS;\n }\n query = '.' + wrapper + '[data-date=\"' + startTime + '\"]';\n if (this.parent.activeViewOptions.group.resources.length > 0) {\n query = query + '[data-group-index=\"' + this.actionObj.groupIndex + '\"]';\n }\n this.targetTd = this.parent.element.querySelector(query);\n if (isNullOrUndefined(this.targetTd)) {\n return -1;\n }\n return this.targetTd.cellIndex;\n };\n DragAndDrop.prototype.updateEventHeight = function (event, index, colIndex) {\n this.verticalEvent.initializeValues();\n var datesCount = this.verticalEvent.getStartCount();\n if (!this.parent.uiStateValues.isGroupAdaptive) {\n for (var i = 0; i < this.actionObj.groupIndex; i++) {\n if (this.verticalEvent.dateRender[parseInt(i.toString(), 10)]) {\n datesCount = datesCount + this.verticalEvent.dateRender[parseInt(i.toString(), 10)].length;\n }\n }\n }\n var indexGroup = this.parent.uiStateValues.isGroupAdaptive ? datesCount : this.actionObj.groupIndex;\n var target = (this.parent.activeViewOptions.group.byDate &&\n !isNullOrUndefined(this.parent.getDateFromElement(this.actionObj.target))) ? true : false;\n if (target || !this.parent.activeViewOptions.group.byDate) {\n var dynamicIndex = -1;\n var dayIndex = !this.parent.activeViewOptions.group.byDate ?\n isNullOrUndefined(index) ? this.actionObj.index - datesCount : colIndex - datesCount\n : this.parent.getIndexOfDate(this.verticalEvent.dateRender[parseInt(indexGroup.toString(), 10)], util.resetTime(\n // eslint-disable-next-line max-len\n this.parent.getDateFromElement(isNullOrUndefined(index) ? this.actionObj.target : this.targetTd)));\n var splitEvents = this.splitEvent(event);\n var events_1 = this.parent.eventBase.isAllDayAppointment(event) || splitEvents.length > 2 ||\n this.parent.eventSettings.spannedEventPlacement !== 'TimeSlot' ? [event] : splitEvents;\n for (var i = 0; i < events_1.length; i++) {\n if (i > 0) {\n var filterQuery = \".e-day-wrapper[data-date=\\\"\" + util.resetTime(events_1[parseInt(i.toString(), 10)][this.parent.eventFields.startTime]).getTime() + \"\\\"]\";\n if (this.parent.activeViewOptions.group.resources.length > 0) {\n filterQuery = filterQuery.concat('[data-group-index = \"' + this.actionObj.groupIndex + '\"]');\n }\n var appWrap = this.parent.element.querySelector(filterQuery);\n if (appWrap) {\n dayIndex = dayIndex + 1;\n dynamicIndex = appWrap.cellIndex;\n }\n else {\n dayIndex = -1;\n }\n }\n if (dayIndex >= 0) {\n var record = this.verticalEvent.isSpannedEvent(events_1[parseInt(i.toString(), 10)], dayIndex, indexGroup);\n var eStart = record[this.verticalEvent.fields.startTime];\n var eEnd = record[this.verticalEvent.fields.endTime];\n var appHeight = this.parent.activeViewOptions.timeScale.enable ? this.verticalEvent.getHeight(eStart, eEnd) :\n this.actionObj.element.offsetHeight;\n var topValue = this.parent.activeViewOptions.timeScale.enable ?\n this.verticalEvent.getTopValue(eStart, dayIndex, indexGroup) : this.actionObj.element.offsetTop;\n if (isNullOrUndefined(index)) {\n if (i === 0) {\n this.actionObj.clone.style.top = formatUnit(topValue);\n this.actionObj.clone.style.height = formatUnit(appHeight);\n }\n else {\n this.renderSpannedEvents(record, dynamicIndex, topValue, appHeight);\n }\n }\n else {\n var appWidth = this.actionObj.cellWidth;\n if (event[this.parent.eventFields.isAllDay]) {\n topValue = this.parent.element.querySelector('.' + cls.ALLDAY_ROW_CLASS).offsetTop;\n appHeight = this.getAllDayEventHeight();\n var timeDiff = event[this.parent.eventFields.endTime].getTime() -\n event[this.parent.eventFields.startTime].getTime();\n var allDayDifference = Math.ceil(timeDiff / (1000 * 3600 * 24));\n if (allDayDifference >= 0) {\n appWidth = (allDayDifference * this.actionObj.cellWidth);\n }\n }\n if (this.actionObj.cloneElement[parseInt(index.toString(), 10)]) {\n if (i === 0) {\n this.actionObj.cloneElement[parseInt(index.toString(), 10)].style.top = formatUnit(topValue);\n this.actionObj.cloneElement[parseInt(index.toString(), 10)].style.height = formatUnit(appHeight);\n this.actionObj.cloneElement[parseInt(index.toString(), 10)].style.width = formatUnit(appWidth);\n this.actionObj.cloneElement[parseInt(index.toString(), 10)].style.left = formatUnit(0);\n }\n else {\n this.renderSpannedEvents(record, dynamicIndex, topValue, appHeight);\n }\n }\n }\n }\n }\n }\n };\n DragAndDrop.prototype.renderSpannedEvents = function (record, index, top, height) {\n var startTime = record[this.parent.eventFields.startTime].getTime();\n var endTime = record[this.parent.eventFields.endTime].getTime();\n if (startTime !== endTime) {\n var appointmentElement = this.verticalEvent.\n createAppointmentElement(record, false, record.isSpanned, this.actionObj.groupIndex);\n addClass([appointmentElement], [cls.CLONE_ELEMENT_CLASS, 'e-dynamic-clone']);\n setStyleAttribute(appointmentElement, {\n 'width': '100%',\n 'height': height + 'px',\n 'top': top + 'px',\n 'border': '0px'\n });\n var appointmentWrap = [].slice.call(this.parent.element.querySelectorAll('.' + cls.APPOINTMENT_WRAPPER_CLASS));\n appointmentWrap[parseInt(index.toString(), 10)].appendChild(appointmentElement);\n }\n };\n DragAndDrop.prototype.getRenderedDates = function () {\n var _this = this;\n var _a, _b;\n var renderDates = this.parent.activeView.renderDates;\n (_a = this.parent.eventBase.slots).push.apply(_a, this.parent.activeView.renderDates.map(function (date) { return +date; }));\n if (this.parent.activeViewOptions.group.resources.length > 0) {\n this.parent.eventBase.slots = [];\n var resources = this.parent.resourceBase.lastResourceLevel.\n filter(function (res) { return res.groupIndex === _this.actionObj.groupIndex; });\n renderDates = resources[0].renderDates;\n (_b = this.parent.eventBase.slots).push.apply(_b, renderDates.map(function (date) { return +date; }));\n }\n return renderDates;\n };\n DragAndDrop.prototype.updateAllDayEvents = function (startDate, endDate, colIndex) {\n this.parent.eventBase.slots = [];\n var event = this.getUpdatedEvent(startDate, endDate, this.actionObj.event);\n var renderDates = this.getRenderedDates();\n var events = this.parent.eventBase.splitEvent(event, renderDates);\n var query = \".e-all-day-cells[data-date=\\\"\" + events[0][this.parent.eventFields.startTime].getTime() + \"\\\"]\";\n if (this.parent.activeViewOptions.group.resources.length > 0 && !this.parent.uiStateValues.isGroupAdaptive) {\n query = query.concat('[data-group-index = \"' + this.actionObj.groupIndex + '\"]');\n }\n var cell = [].slice.call(this.parent.element.querySelectorAll(query));\n if (cell.length > 0 || !isNullOrUndefined(colIndex)) {\n var cellIndex = !isNullOrUndefined(colIndex) ? colIndex : cell[0].cellIndex;\n this.appendCloneElement(this.getEventWrapper(cellIndex));\n // eslint-disable-next-line max-len\n this.actionObj.clone.style.width = formatUnit(events[0].data.count * this.actionObj.cellWidth);\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n DragAndDrop.prototype.swapDragging = function (e) {\n var colIndex = closest(this.actionObj.target, 'td').cellIndex;\n if (closest(this.actionObj.target, '.' + cls.DATE_HEADER_WRAP_CLASS) &&\n !closest(this.actionObj.clone, '.' + cls.ALLDAY_APPOINTMENT_WRAPPER_CLASS)) {\n addClass([this.actionObj.clone], cls.ALLDAY_APPOINTMENT_CLASS);\n this.appendCloneElement(this.getEventWrapper(colIndex));\n this.actionObj.isAllDay = true;\n var eventHeight = this.getAllDayEventHeight();\n var allDayElement = [].slice.call(this.parent.element.querySelectorAll('.' + cls.ALLDAY_CELLS_CLASS + ':first-child'));\n if (allDayElement[0].offsetHeight < eventHeight) {\n for (var _i = 0, allDayElement_1 = allDayElement; _i < allDayElement_1.length; _i++) {\n var element = allDayElement_1[_i];\n element.style.height = ((eventHeight + 2) / 12) + 'em';\n }\n }\n setStyleAttribute(this.actionObj.clone, {\n width: formatUnit(this.actionObj.cellWidth),\n height: formatUnit(eventHeight),\n top: formatUnit(this.parent.element.querySelector('.' + cls.ALLDAY_ROW_CLASS).offsetTop)\n });\n }\n if (closest(this.actionObj.target, '.' + cls.WORK_CELLS_CLASS) &&\n !closest(this.actionObj.clone, '.' + cls.DAY_WRAPPER_CLASS)) {\n removeClass([this.actionObj.clone], cls.ALLDAY_APPOINTMENT_CLASS);\n this.appendCloneElement(this.getEventWrapper(colIndex));\n this.actionObj.isAllDay = false;\n // eslint-disable-next-line max-len\n var height = (this.actionObj.element.offsetHeight === 0) ? this.actionObj.height : this.actionObj.element.offsetHeight;\n setStyleAttribute(this.actionObj.clone, {\n left: formatUnit(0),\n height: formatUnit(height),\n width: formatUnit(this.actionObj.cellWidth)\n });\n }\n };\n DragAndDrop.prototype.calculateVerticalDate = function (e) {\n if (isNullOrUndefined(e.target) || (e.target && isNullOrUndefined(closest(e.target, 'tr'))) ||\n (e.target && e.target.tagName === 'DIV')) {\n return;\n }\n var eventObj = extend({}, this.actionObj.event, null, true);\n if (isNullOrUndefined(this.parent.eventDragArea)) {\n this.removeCloneElement();\n }\n var eventDuration = util.getUniversalTime(eventObj[this.parent.eventFields.endTime]) -\n util.getUniversalTime(eventObj[this.parent.eventFields.startTime]);\n var td = closest(this.actionObj.target, 'td');\n if (!isNullOrUndefined(td)) {\n var tr = td.parentElement;\n this.actionObj.index = (tr.rowIndex * tr.children.length) + td.cellIndex;\n var workCells = [].slice.call(this.parent.element.querySelectorAll('.' + cls.WORK_CELLS_CLASS));\n td = workCells[this.actionObj.index];\n var currentDate = this.parent.getDateFromElement(td);\n if (!isNullOrUndefined(currentDate)) {\n if (this.parent.activeViewOptions.group.resources.length > 0) {\n this.actionObj.groupIndex = parseInt(td.getAttribute('data-group-index'), 10);\n }\n var timeString = new Date(currentDate.setDate(currentDate.getDate() - this.daysVariation));\n var dragStart = new Date(timeString.getTime());\n var startTimeDiff = util.getUniversalTime(eventObj[this.parent.eventFields.startTime]) -\n util.getUniversalTime(util.resetTime(new Date(+eventObj[this.parent.eventFields.startTime])));\n dragStart.setMilliseconds(startTimeDiff);\n var dragEnd = new Date(dragStart.getTime());\n dragEnd.setMilliseconds(eventDuration);\n this.actionObj.start = new Date(dragStart.getTime());\n this.actionObj.end = new Date(dragEnd.getTime());\n }\n }\n var event = this.getUpdatedEvent(this.actionObj.start, this.actionObj.end, this.actionObj.event);\n if (isNullOrUndefined(this.parent.eventDragArea)) {\n var eventWrappers = [].slice.call(this.parent.element.querySelectorAll('.' + cls.CLONE_ELEMENT_CLASS));\n for (var _i = 0, eventWrappers_1 = eventWrappers; _i < eventWrappers_1.length; _i++) {\n var wrapper = eventWrappers_1[_i];\n remove(wrapper);\n }\n }\n if (this.multiData && this.multiData.length > 0) {\n var startTime = util.resetTime(new Date(event[this.parent.eventFields.startTime]));\n var startTimeDiff = startTime.getTime() - this.startTime;\n if (this.parent.currentView === 'TimelineYear' && this.parent.group.resources.length > 0) {\n startTimeDiff = (startTime.getFullYear() - new Date(this.startTime).getFullYear()) * 12;\n startTimeDiff -= new Date(this.startTime).getMonth();\n startTimeDiff += startTime.getMonth();\n }\n for (var index = 0; index < this.multiData.length; index++) {\n this.updatedData[parseInt(index.toString(), 10)] =\n this.updateMultipleVerticalDate(this.multiData[parseInt(index.toString(), 10)], startTimeDiff);\n if (this.parent.currentView === 'TimelineYear') {\n this.dynamicYearlyEventsRendering(this.updatedData[parseInt(index.toString(), 10)]);\n }\n else {\n this.dynamicEventsRendering(this.updatedData[parseInt(index.toString(), 10)]);\n }\n }\n }\n else {\n if (this.parent.currentView === 'TimelineYear') {\n this.dynamicYearlyEventsRendering(event);\n }\n else {\n this.dynamicEventsRendering(event);\n }\n }\n };\n DragAndDrop.prototype.updateMultipleVerticalDate = function (data, timeDifference) {\n var eventObj = extend({}, data, null, true);\n var eventDuration = eventObj[this.parent.eventFields.endTime].getTime() -\n eventObj[this.parent.eventFields.startTime].getTime();\n var startDate = new Date(eventObj[this.parent.eventFields.startTime]);\n if (this.parent.currentView === 'TimelineYear' && this.parent.group.resources.length > 0) {\n eventObj[this.parent.eventFields.startTime] = new Date(startDate.setMonth(startDate.getMonth() + timeDifference));\n }\n else {\n var differInDays = Math.ceil(timeDifference / util.MS_PER_DAY);\n eventObj[this.parent.eventFields.startTime] = new Date(startDate.setDate(startDate.getDate() + differInDays));\n }\n eventObj[this.parent.eventFields.endTime] =\n new Date(eventObj[this.parent.eventFields.startTime].getTime() + eventDuration);\n return eventObj;\n };\n DragAndDrop.prototype.calculateTimelineTime = function (e) {\n var eventObj = extend({}, this.actionObj.event, null, true);\n var eventDuration = util.getUniversalTime(eventObj[this.parent.eventFields.endTime]) -\n util.getUniversalTime(eventObj[this.parent.eventFields.startTime]);\n var offsetLeft = this.parent.enableRtl ? Math.abs(this.actionObj.clone.offsetLeft) - this.actionObj.clone.offsetWidth :\n parseInt(this.actionObj.clone.style.left, 10);\n offsetLeft = Math.floor(offsetLeft / Math.trunc(this.actionObj.cellWidth)) * this.actionObj.cellWidth;\n var rightOffset;\n if (this.parent.enableRtl) {\n rightOffset = Math.abs(parseInt(this.actionObj.clone.style.right, 10));\n this.actionObj.clone.style.right = formatUnit(rightOffset);\n }\n offsetLeft = this.getOffsetValue(offsetLeft, rightOffset);\n var colIndex = this.getColumnIndex(offsetLeft);\n var dragArea = this.parent.element.querySelector('.' + cls.CONTENT_WRAP_CLASS);\n var contentWrapRight = dragArea.getBoundingClientRect().right;\n var cursorDrag = this.parent.activeView.isTimelineView() && !this.parent.enableRtl &&\n this.actionObj.pageX > this.actionObj.clone.getBoundingClientRect().right &&\n !this.isMorePopupOpened && !(this.actionObj.pageX > contentWrapRight);\n var leftVal = (this.parent.eventDragArea) ? dragArea.scrollLeft - dragArea.offsetLeft : 0;\n if ((this.isCursorAhead || cursorDrag) && !this.isStepDragging) {\n this.isCursorAhead = true;\n }\n var cloneIndex = Math.floor((this.actionObj.pageX - this.actionObj.clone.getBoundingClientRect().left + leftVal) / this.actionObj.cellWidth);\n if (this.parent.enableRtl) {\n cloneIndex = Math.abs(Math.floor((this.actionObj.pageX - this.actionObj.clone.getBoundingClientRect().right) /\n this.actionObj.cellWidth)) - 1;\n }\n if (this.cursorPointIndex < 0) {\n this.cursorIndex(e, eventObj, offsetLeft, cloneIndex);\n }\n var tr = this.parent.getContentTable().querySelector('tr');\n var index = this.getCursorCurrentIndex(colIndex, cloneIndex, tr);\n index = index < 0 ? 0 : index;\n var eventStart = this.isHeaderRows ? new Date(this.timelineEventModule.dateRender[parseInt(index.toString(), 10)].getTime()) :\n this.parent.getDateFromElement(tr.children[parseInt(index.toString(), 10)]);\n if (this.isStepDragging) {\n var widthDiff = this.getWidthDiff(tr, index);\n if (widthDiff !== 0) {\n var timeDiff = Math.round(widthDiff / this.widthPerMinute);\n eventStart.setMinutes(eventStart.getMinutes() + (timeDiff * this.actionObj.interval));\n if (this.isCursorAhead || cursorDrag) {\n eventStart.setMilliseconds(-(eventDuration));\n }\n else {\n eventStart.setMinutes(eventStart.getMinutes() - this.minDiff);\n }\n }\n else {\n eventStart = this.actionObj.start;\n }\n }\n else {\n if (this.isCursorAhead || cursorDrag) {\n var minutes = this.isTimelineDayProcess ? MINUTES_PER_DAY : this.actionObj.slotInterval;\n eventStart.setMinutes(eventStart.getMinutes() + minutes);\n eventStart.setMilliseconds(-(eventDuration));\n if (eventStart.getTime() === util.resetTime(eventStart).getTime() && eventStart.getMinutes() === 0 && eventDuration === 0) {\n eventStart.setMinutes(-minutes);\n }\n }\n else {\n eventStart.setMinutes(eventStart.getMinutes() -\n (this.cursorPointIndex * (this.isTimelineDayProcess ? MINUTES_PER_DAY : this.actionObj.slotInterval)));\n }\n }\n eventStart = this.calculateIntervalTime(eventStart);\n if (this.isTimelineDayProcess) {\n var eventSrt = eventObj[this.parent.eventFields.startTime];\n eventStart.setHours(eventSrt.getHours(), eventSrt.getMinutes(), eventSrt.getSeconds());\n }\n if (this.parent.eventDragArea) {\n var targetDate = this.parent.getDateFromElement(e.target);\n if (!isNullOrUndefined(targetDate)) {\n if (!this.parent.activeViewOptions.timeScale.enable || (this.parent.currentView === 'TimelineMonth')) {\n var eventSrt = eventObj[this.parent.eventFields.startTime];\n eventStart = new Date(targetDate.setHours(eventSrt.getHours(), eventSrt.getMinutes(), eventSrt.getSeconds()));\n }\n else {\n eventStart = targetDate;\n }\n }\n }\n var eventEnd = new Date(eventStart.getTime());\n eventEnd.setMilliseconds(eventDuration);\n var eventsData = [this.getUpdatedEvent(eventStart, eventEnd, this.actionObj.event)];\n if (this.multiData.length > 0) {\n var startTimeDiff = eventsData[0][this.parent.eventFields.startTime].getTime() - this.startTime;\n for (var i = 0; i < this.multiData.length; i++) {\n this.updatedData[parseInt(i.toString(), 10)] =\n this.updateMultipleData(this.multiData[parseInt(i.toString(), 10)], startTimeDiff);\n }\n eventsData = this.updatedData;\n }\n for (var dataIndex = 0; dataIndex < eventsData.length; dataIndex++) {\n var cloneElement = this.multiData.length > 0 ? this.actionObj.cloneElement[parseInt(dataIndex.toString(), 10)] : this.actionObj.clone;\n if (isNullOrUndefined(this.parent.eventDragArea)) {\n var events_2 = this.timelineEventModule.splitEvent(eventsData[parseInt(dataIndex.toString(), 10)], this.timelineEventModule.dateRender);\n var eventData = events_2[0].data;\n var startTime = this.timelineEventModule.getStartTime(events_2[0], eventData);\n var endTime = this.timelineEventModule.getEndTime(events_2[0], eventData);\n // eslint-disable-next-line max-len\n var width = this.timelineEventModule.getEventWidth(startTime, endTime, eventObj[this.parent.eventFields.isAllDay], eventData.count);\n // eslint-disable-next-line max-len\n var day = this.parent.getIndexOfDate(this.timelineEventModule.dateRender, util.resetTime(new Date(startTime.getTime())));\n day = day < 0 ? 0 : day;\n var left = this.timelineEventModule.getPosition(startTime, endTime, eventObj[this.parent.eventFields.isAllDay], day);\n if (this.parent.enableRtl) {\n cloneElement.style.right = formatUnit(left);\n }\n else {\n cloneElement.style.left = formatUnit(left);\n }\n if (!this.isMorePopupOpened) {\n cloneElement.style.width = formatUnit(width);\n }\n }\n if (this.parent.activeViewOptions.group.resources.length > 0) {\n this.calculateResourceGroupingPosition(e, cloneElement);\n }\n this.actionObj.start = new Date(eventStart.getTime());\n this.actionObj.end = new Date(eventEnd.getTime());\n this.updateTimePosition(this.actionObj.start, this.updatedData);\n }\n };\n DragAndDrop.prototype.getOffsetValue = function (offsetLeft, rightOffset) {\n if (this.scrollEdges.left || this.scrollEdges.right) {\n var viewEle = this.parent.element.querySelector('.' + cls.CONTENT_WRAP_CLASS);\n if (this.parent.enableRtl) {\n rightOffset = viewEle.offsetWidth - viewEle.scrollLeft;\n if (this.scrollEdges.right) {\n rightOffset = (rightOffset - viewEle.offsetWidth + this.actionObj.clone.offsetWidth) -\n (this.actionObj.clone.offsetWidth - this.widthUptoCursorPoint);\n }\n else {\n rightOffset = rightOffset + this.widthUptoCursorPoint;\n if (rightOffset - this.widthUptoCursorPoint >= viewEle.scrollWidth) {\n this.actionObj.clone.style.width =\n formatUnit(this.actionObj.clone.offsetWidth - this.widthUptoCursorPoint + this.actionObj.cellWidth);\n rightOffset = (viewEle.scrollLeft - viewEle.scrollWidth);\n }\n }\n if (isNullOrUndefined(this.parent.eventDragArea)) {\n this.actionObj.clone.style.left = formatUnit(rightOffset);\n }\n }\n else {\n if (this.scrollEdges.left) {\n offsetLeft = viewEle.scrollLeft - this.widthUptoCursorPoint + this.actionObj.cellWidth;\n if (viewEle.scrollLeft + viewEle.offsetWidth >= viewEle.offsetWidth) {\n viewEle.scrollLeft = viewEle.scrollLeft - 1;\n }\n else if (this.actionObj.clone.offsetLeft === 0) {\n offsetLeft = viewEle.scrollLeft;\n }\n }\n else {\n offsetLeft = (viewEle.scrollLeft + viewEle.offsetWidth -\n this.actionObj.clone.offsetWidth) + (this.actionObj.clone.offsetWidth - this.widthUptoCursorPoint);\n }\n offsetLeft = offsetLeft < 0 ? 0 : offsetLeft;\n if (isNullOrUndefined(this.parent.eventDragArea)) {\n this.actionObj.clone.style.left = formatUnit(offsetLeft);\n }\n }\n }\n return offsetLeft;\n };\n DragAndDrop.prototype.getWidthDiff = function (tr, index) {\n var pages = this.scrollArgs.element.getBoundingClientRect();\n if (pages.left <= this.actionObj.pageX && pages.right >= this.actionObj.pageX) {\n var targetLeft = tr.children[parseInt(index.toString(), 10)].offsetLeft;\n var pageX = this.actionObj.pageX - pages.left;\n if (this.parent.enableRtl) {\n return (targetLeft + this.actionObj.cellWidth) - (this.scrollArgs.element.scrollLeft + pageX);\n }\n else {\n return (this.scrollArgs.element.scrollLeft + pageX) - targetLeft;\n }\n }\n return 0;\n };\n DragAndDrop.prototype.getColumnIndex = function (offsetLeft) {\n var index = Math.floor(offsetLeft / Math.trunc(this.actionObj.cellWidth));\n if (this.isHeaderRows) {\n return index;\n }\n return this.getIndex(index);\n };\n DragAndDrop.prototype.getCursorCurrentIndex = function (colIndex, cloneIndex, tr) {\n var index = colIndex + cloneIndex;\n if (this.isHeaderRows) {\n var dateLength = Math.floor(tr.offsetWidth / this.actionObj.cellWidth);\n return (index > dateLength - 1) ? dateLength - 1 : index;\n }\n return (index > tr.children.length - 1) ? tr.children.length - 1 : index;\n };\n DragAndDrop.prototype.cursorIndex = function (e, event, left, index) {\n var td = closest(e.target, '.e-work-cells');\n if (!isNullOrUndefined(td) && !this.isMorePopupOpened) {\n var targetDate = this.parent.getDateFromElement(td);\n if (this.isHeaderRows) {\n var currentIndex = Math.floor(left / this.actionObj.cellWidth);\n targetDate = new Date(this.timelineEventModule.dateRender[currentIndex + index].getTime());\n }\n var timeDiff = targetDate.getTime() - event[this.parent.eventFields.startTime].getTime();\n if (this.isTimelineDayProcess) {\n this.cursorPointIndex = Math.abs(Math.ceil(timeDiff / (util.MS_PER_DAY)));\n }\n else {\n var widthDiff = Math.floor((timeDiff / util.MS_PER_MINUTE) / (this.actionObj.slotInterval / this.actionObj.cellWidth));\n this.cursorPointIndex = Math.floor(widthDiff / this.actionObj.cellWidth);\n this.cursorPointIndex = this.cursorPointIndex < 0 ? 0 : this.cursorPointIndex;\n }\n }\n else {\n this.cursorPointIndex = 0;\n }\n };\n DragAndDrop.prototype.calculateResourceGroupingPosition = function (e, cloneElement) {\n var dragArea = this.parent.element.querySelector('.' + cls.CONTENT_WRAP_CLASS);\n var trCollection = [].slice.call(this.parent.element.querySelectorAll('.e-content-wrap .e-content-table tr:not(.e-hidden)'));\n var translateY = util.getTranslateY(dragArea.querySelector('table'));\n translateY = (isNullOrUndefined(translateY)) ? 0 : translateY;\n var rowHeight = (this.parent.rowAutoHeight) ?\n ~~(dragArea.querySelector('table').offsetHeight / trCollection.length) : this.actionObj.cellHeight;\n var rowIndex = Math.floor(Math.floor((this.actionObj.Y +\n (dragArea.scrollTop - translateY - (window.scrollY || window.pageYOffset))) -\n dragArea.getBoundingClientRect().top) / rowHeight);\n rowIndex = (rowIndex < 0) ? 0 : (rowIndex > trCollection.length - 1) ? trCollection.length - 1 : rowIndex;\n this.actionObj.index = rowIndex;\n var eventContainer = this.parent.element.querySelectorAll('.e-appointment-container:not(.e-hidden)').item(rowIndex);\n var eventWrapper = eventContainer.querySelector('.' + cls.APPOINTMENT_WRAPPER_CLASS);\n if (!eventWrapper) {\n eventWrapper = createElement('div', { className: cls.APPOINTMENT_WRAPPER_CLASS });\n eventContainer.appendChild(eventWrapper);\n }\n this.appendCloneElement(eventWrapper, cloneElement);\n var td = closest(this.actionObj.target, 'td');\n this.actionObj.groupIndex = (td && !isNaN(parseInt(td.getAttribute('data-group-index'), 10)))\n ? parseInt(td.getAttribute('data-group-index'), 10) : this.actionObj.groupIndex;\n if (!isNullOrUndefined(this.parent.eventDragArea)) {\n return;\n }\n var top = trCollection[parseInt(rowIndex.toString(), 10)].getBoundingClientRect().height * rowIndex;\n if (this.parent.rowAutoHeight) {\n var cursorElement = this.getCursorElement(e);\n if (cursorElement) {\n top = cursorElement.classList.contains(cls.WORK_CELLS_CLASS) ? cursorElement.offsetTop :\n (cursorElement.offsetParent && cursorElement.offsetParent.classList.contains(cls.APPOINTMENT_CLASS)) ?\n cursorElement.offsetParent.offsetTop : top;\n }\n }\n cloneElement.style.top = formatUnit(top);\n };\n DragAndDrop.prototype.appendCloneElement = function (element, cloneElement) {\n if (cloneElement === void 0) { cloneElement = null; }\n cloneElement = isNullOrUndefined(cloneElement) ? this.actionObj.clone : cloneElement;\n var dragElement = document.querySelector(this.parent.eventDragArea);\n if (this.parent.eventDragArea && dragElement) {\n dragElement.appendChild(cloneElement);\n }\n else {\n element.appendChild(cloneElement);\n }\n };\n DragAndDrop.prototype.getEventWrapper = function (index, isAllDayDrag) {\n var eventWrapper;\n if (isNullOrUndefined(isAllDayDrag)) {\n isAllDayDrag = this.actionObj.clone.classList.contains(cls.ALLDAY_APPOINTMENT_CLASS);\n }\n if (this.parent.activeViewOptions.timeScale.enable) {\n var wrapperClass = isAllDayDrag ? '.' + cls.ALLDAY_APPOINTMENT_WRAPPER_CLASS : '.' + cls.APPOINTMENT_WRAPPER_CLASS;\n eventWrapper = this.parent.element.querySelectorAll(wrapperClass).item(index);\n }\n else {\n var targetWrapper = this.parent.element.querySelectorAll('.' + cls.WORK_CELLS_CLASS).item(index);\n eventWrapper = targetWrapper.querySelector('.' + cls.APPOINTMENT_WRAPPER_CLASS);\n if (!eventWrapper) {\n eventWrapper = createElement('div', { className: cls.APPOINTMENT_WRAPPER_CLASS });\n targetWrapper.appendChild(eventWrapper);\n }\n }\n return eventWrapper;\n };\n DragAndDrop.prototype.getAllDayEventHeight = function () {\n var eventWrapper = createElement('div', { className: cls.APPOINTMENT_CLASS });\n this.parent.element.querySelector('.' + cls.ALLDAY_APPOINTMENT_WRAPPER_CLASS).appendChild(eventWrapper);\n var eventHeight = eventWrapper.offsetHeight;\n remove(eventWrapper);\n return eventHeight;\n };\n DragAndDrop.prototype.isAllowDrop = function (e) {\n if (!this.actionObj.excludeSelectors) {\n return false;\n }\n var dropSelectors = this.actionObj.excludeSelectors.split(',');\n var isAllowDrop = false;\n for (var _i = 0, dropSelectors_1 = dropSelectors; _i < dropSelectors_1.length; _i++) {\n var selector = dropSelectors_1[_i];\n if (e.target.classList.contains(selector)) {\n isAllowDrop = true;\n break;\n }\n }\n return isAllowDrop;\n };\n /**\n * Get module name.\n *\n * @returns {string} Returns the module name\n */\n DragAndDrop.prototype.getModuleName = function () {\n return 'dragAndDrop';\n };\n return DragAndDrop;\n}(ActionBase));\nexport { DragAndDrop };\n","import { createElement, isNullOrUndefined, Browser, isBlazor } from '@syncfusion/ej2-base';\nimport { Dialog } from '@syncfusion/ej2-popups';\n/**\n * TextLayer module is used to handle the text content on the control.\n *\n * @hidden\n */\nvar TextLayer = /** @class */ (function () {\n /**\n * @param {PdfViewer} pdfViewer - The PdfViewer.\n * @param {PdfViewerBase} pdfViewerBase - The PdfViewerBase.\n * @private\n */\n function TextLayer(pdfViewer, pdfViewerBase) {\n var _this = this;\n // eslint-disable-next-line\n this.textBoundsArray = [];\n /**\n * @private\n */\n // eslint-disable-next-line\n this.characterBound = [];\n /**\n * @returns {void}\n */\n this.closeNotification = function () {\n _this.notifyDialog.hide();\n };\n this.pdfViewer = pdfViewer;\n this.pdfViewerBase = pdfViewerBase;\n }\n /**\n * @param {number} pageNumber - The pageNumber.\n * @param {number} pageWidth - The pageWidth.\n * @param {number} pageHeight - The pageHeight.\n * @param {HTMLElement} pageDiv - The pageDiv.\n * @returns {HTMLElement} - The HTMLElement.\n * @private\n */\n TextLayer.prototype.addTextLayer = function (pageNumber, pageWidth, pageHeight, pageDiv) {\n var textDiv = document.getElementById(this.pdfViewer.element.id + '_textLayer_' + pageNumber);\n var textLayer;\n if (!textDiv) {\n textLayer = createElement('div', { id: this.pdfViewer.element.id + '_textLayer_' + pageNumber, className: 'e-pv-text-layer' });\n textLayer.style.width = pageWidth + 'px';\n textLayer.style.height = pageHeight + 'px';\n if (pageDiv) {\n pageDiv.appendChild(textLayer);\n }\n }\n this.pdfViewerBase.applyElementStyles(textLayer, pageNumber);\n return textLayer;\n };\n /**\n * @param {number} pageNumber - The pageNumber.\n * @param {any} textContents - The textContents.\n * @param {any} textBounds - The textBounds.\n * @param {any} rotation - The rotation.\n * @returns {void}\n * @private\n */\n // eslint-disable-next-line\n TextLayer.prototype.renderTextContents = function (pageNumber, textContents, textBounds, rotation, rtldoc) {\n var textLayer = document.getElementById(this.pdfViewer.element.id + '_textLayer_' + pageNumber);\n var canvasElement = createElement(\"canvas\");\n var linebounds = [];\n var lineContent = [];\n var yValue;\n var heightValue;\n if (textBounds.length > 1) {\n if (textBounds[0].Width === 0 && textBounds.length > 2) {\n yValue = textBounds[1].Y;\n heightValue = textBounds[1].Height;\n }\n else {\n yValue = textBounds[0].Y;\n heightValue = textBounds[0].Height;\n }\n }\n var idNumber = 0;\n if (canvasElement && textLayer && textLayer.childNodes.length === 0) {\n for (var i = 0; i < textContents.length; i++) {\n // eslint-disable-next-line\n if ((!(textContents[i].includes(\"\\r\\n\")) && !(textContents[i].includes(\"\\u0002\"))) && i != textBounds.length - 1 && rotation === 0 && !rtldoc) {\n linebounds.push(textBounds[parseInt(i.toString(), 10)]);\n lineContent.push(textContents[parseInt(i.toString(), 10)]);\n if (yValue > textBounds[parseInt(i.toString(), 10)].Y && textBounds[parseInt(i.toString(), 10)].Width !== 0) {\n yValue = textBounds[parseInt(i.toString(), 10)].Y;\n }\n if (heightValue < textBounds[parseInt(i.toString(), 10)].Height && textBounds[parseInt(i.toString(), 10)].Width !== 0) {\n heightValue = textBounds[parseInt(i.toString(), 10)].Height;\n }\n }\n else {\n linebounds.push(textBounds[parseInt(i.toString(), 10)]);\n lineContent.push(textContents[parseInt(i.toString(), 10)]);\n if (yValue > textBounds[parseInt(i.toString(), 10)].Y && textBounds[parseInt(i.toString(), 10)].Width !== 0) {\n yValue = textBounds[parseInt(i.toString(), 10)].Y;\n }\n if (heightValue < textBounds[parseInt(i.toString(), 10)].Height && textBounds[parseInt(i.toString(), 10)].Width !== 0) {\n heightValue = textBounds[parseInt(i.toString(), 10)].Height;\n }\n for (var j = 0; j < linebounds.length; j++) {\n var bounds = linebounds[parseInt(j.toString(), 10)];\n // eslint-disable-next-line max-len\n var textDiv = createElement('div', { id: this.pdfViewer.element.id + '_text_' + pageNumber + '_' + idNumber, className: 'e-pv-text', attrs: { 'tabindex': '-1' } });\n var textContent = lineContent[parseInt(j.toString(), 10)];\n if (textContent === \" \" && j != linebounds.length - 1 && j != 0) {\n bounds.Height = linebounds[j - 1].Height;\n bounds.Y = linebounds[j - 1].Y;\n }\n textDiv.textContent = textContent.replace(/ /g, ' ');\n // eslint-disable-next-line\n var newLine = lineContent[j].replace(/ +/g, ' ');\n if (newLine !== ' ') {\n textDiv.style.whiteSpace = 'pre';\n }\n if (bounds.Width === 0 && j != linebounds.length - 1 && j != 0) {\n if (linebounds[j + 1].X - (linebounds[j - 1].X + linebounds[j - 1].Width) < 30 && (!lineContent[j - 1].includes(\"\\r\\n\") && !(textContents[parseInt(j.toString(), 10)].includes(\"\\u0002\")))) {\n bounds.Width = linebounds[j + 1].X - (linebounds[j - 1].X + linebounds[j - 1].Width);\n bounds.X = linebounds[j - 1].X + linebounds[j - 1].Width;\n if (bounds.Width < 0) {\n bounds.Width = 0;\n }\n else {\n textDiv.style.whiteSpace = 'pre';\n }\n }\n }\n if ((j != 0 || linebounds.length - 1 === 0 || (bounds.Y - yValue) > 20 && bounds.Width != 0) && idNumber != 0 && ((textBounds[idNumber - 1].Y - textBounds[parseInt(idNumber.toString(), 10)].Y) > 11 || ((textBounds[parseInt(idNumber.toString(), 10)].Y - textBounds[idNumber - 1].Y) > 11)) && lineContent[parseInt(j.toString(), 10)] != \" \") {\n yValue = linebounds[parseInt(j.toString(), 10)].Y;\n heightValue = linebounds[parseInt(j.toString(), 10)].Height;\n }\n if (bounds) {\n if (bounds.Rotation !== 270) {\n bounds.Y = yValue;\n bounds.Height = heightValue;\n }\n this.setStyleToTextDiv(textDiv, bounds.X, bounds.Y, bounds.Bottom, bounds.Width, bounds.Height, bounds.Rotation);\n }\n this.setTextElementProperties(textDiv);\n var context = canvasElement.getContext('2d');\n context.font = textDiv.style.fontSize + ' ' + textDiv.style.fontFamily;\n var contextWidth = context.measureText(lineContent[parseInt(j.toString(), 10)].replace(/(\\r\\n|\\n|\\r)/gm, '')).width;\n if (bounds) {\n var scale = void 0;\n if (bounds.Rotation === 90) {\n scale = bounds.Height * this.pdfViewerBase.getZoomFactor() / contextWidth;\n }\n else {\n scale = bounds.Width * this.pdfViewerBase.getZoomFactor() / contextWidth;\n }\n this.applyTextRotation(scale, textDiv, rotation, bounds.Rotation, bounds);\n }\n textLayer.appendChild(textDiv);\n this.resizeExcessDiv(textLayer, textDiv);\n // eslint-disable-next-line max-len\n if (this.pdfViewer.textSelectionModule && this.pdfViewer.enableTextSelection && !this.pdfViewerBase.isTextSelectionDisabled && textDiv.className !== 'e-pdfviewer-formFields'\n && textDiv.className !== 'e-pdfviewer-signatureformfields' && textDiv.className !== 'e-pdfviewer-signatureformfields-signature') {\n textDiv.classList.add('e-pv-cursor');\n }\n idNumber++;\n }\n linebounds = [];\n lineContent = [];\n if (i < textBounds.length - 1) {\n if (textBounds[i + 1].Width === 0 && !isNullOrUndefined(textBounds[i + 2])) {\n yValue = textBounds[i + 2].Y;\n heightValue = textBounds[i + 2].Height;\n }\n else {\n yValue = textBounds[i + 1].Y;\n heightValue = textBounds[i + 1].Height;\n }\n }\n }\n }\n }\n };\n /**\n * @param pageNumber\n * @param textContents\n * @param textBounds\n * @param rotation\n * @param isTextSearch\n * @param pageNumber\n * @param textContents\n * @param textBounds\n * @param rotation\n * @param isTextSearch\n * @private\n */\n // eslint-disable-next-line\n TextLayer.prototype.resizeTextContents = function (pageNumber, textContents, textBounds, rotation, isTextSearch) {\n var textLayer = this.pdfViewerBase.getElement('_textLayer_' + pageNumber);\n var canvasElement = createElement(\"canvas\");\n if (canvasElement) {\n for (var i = 0; i < textLayer.childNodes.length; i++) {\n // eslint-disable-next-line\n var bounds = void 0;\n var textDiv = this.pdfViewerBase.getElement('_text_' + pageNumber + '_' + i);\n if (isNullOrUndefined(textDiv)) {\n break;\n }\n if (textBounds) {\n bounds = textBounds[parseInt(i.toString(), 10)];\n if (bounds) {\n this.setStyleToTextDiv(textDiv, bounds.X, bounds.Y, bounds.Bottom, bounds.Width, bounds.Height, bounds.Rotation);\n }\n }\n this.setTextElementProperties(textDiv);\n var context = canvasElement.getContext('2d');\n context.font = textDiv.style.fontSize + ' ' + textDiv.style.fontFamily;\n var contextWidth = void 0;\n if (textContents) {\n var textContent = textContents[parseInt(i.toString(), 10)];\n if (textContent) {\n contextWidth = context.measureText(textContent.replace(/(\\r\\n|\\n|\\r)/gm, '')).width;\n }\n }\n else {\n contextWidth = context.measureText(textDiv.textContent.replace(/(\\r\\n|\\n|\\r)/gm, '')).width;\n }\n if (bounds) {\n var scale = void 0;\n if (bounds.Rotation === 90) {\n scale = bounds.Height * this.pdfViewerBase.getZoomFactor() / contextWidth;\n }\n else {\n scale = bounds.Width * this.pdfViewerBase.getZoomFactor() / contextWidth;\n }\n this.applyTextRotation(scale, textDiv, rotation, bounds.Rotation, bounds);\n }\n this.resizeExcessDiv(textLayer, textDiv);\n }\n }\n else {\n textLayer.parentElement.removeChild(textLayer);\n }\n if (this.pdfViewer.textSearch) {\n if (!isTextSearch) {\n this.pdfViewer.textSearch.resizeSearchElements(pageNumber);\n }\n }\n };\n TextLayer.prototype.applyTextRotation = function (scale, textDiv, rotation, textRotation, bounds) {\n var scaleString = 'scaleX(' + scale + ')';\n if (rotation === 0) {\n if (textRotation >= 0 && textRotation < 90) {\n textDiv.style.transform = scaleString;\n }\n else if ((textRotation == 90) || (textRotation == 270)) {\n if ((textRotation == 270)) {\n textDiv.style.left = (bounds.X * this.pdfViewerBase.getZoomFactor()) + \"px\";\n textDiv.style.top = ((bounds.Y + bounds.Width) * this.pdfViewerBase.getZoomFactor()) + \"px\";\n textDiv.style.height = (bounds.Height * this.pdfViewerBase.getZoomFactor()) + \"px\";\n textDiv.style.fontSize = (bounds.Height * this.pdfViewerBase.getZoomFactor()) + \"px\";\n }\n else {\n textDiv.style.left = ((bounds.X + bounds.Width) * this.pdfViewerBase.getZoomFactor()) + \"px\";\n textDiv.style.top = (bounds.Y * this.pdfViewerBase.getZoomFactor()) + \"px\";\n textDiv.style.height = (bounds.Width * this.pdfViewerBase.getZoomFactor()) + \"px\";\n textDiv.style.fontSize = (bounds.Width * this.pdfViewerBase.getZoomFactor()) + \"px\";\n textDiv.style.transformOrigin = '0% 0%';\n }\n textDiv.style.transform = 'rotate(' + textRotation + 'deg) ' + scaleString;\n }\n else {\n textDiv.style.transform = 'rotate(' + textRotation + 'deg) ' + scaleString;\n }\n }\n else if (rotation === 1) {\n if (textRotation === 0) {\n textDiv.style.transform = 'rotate(90deg) ' + scaleString;\n }\n else if (textRotation === -90) {\n textDiv.style.transform = scaleString;\n }\n else {\n textRotation = textRotation + 90;\n textDiv.style.transform = 'rotate(' + textRotation + 'deg) ' + scaleString;\n }\n }\n else if (rotation === 2) {\n if (textRotation === 0) {\n textDiv.style.transform = 'rotate(180deg) ' + scaleString;\n }\n else if (textRotation === 180) {\n textDiv.style.transform = scaleString;\n }\n else {\n textDiv.style.transform = 'rotate(' + textRotation + 'deg) ' + scaleString;\n }\n }\n else if (rotation === 3) {\n if (textRotation === 0) {\n textDiv.style.transform = 'rotate(-90deg) ' + scaleString;\n }\n else if (textRotation === 90) {\n textDiv.style.transform = scaleString;\n }\n else {\n textDiv.style.transform = 'rotate(' + textRotation + 'deg) ' + scaleString;\n }\n }\n };\n TextLayer.prototype.setTextElementProperties = function (textDiv) {\n textDiv.style.fontFamily = 'serif';\n textDiv.style.transformOrigin = '0%';\n };\n /**\n * @param {number} pageNumber - The pageNumber.\n * @returns {void}\n * @private\n */\n TextLayer.prototype.resizeTextContentsOnZoom = function (pageNumber) {\n // eslint-disable-next-line max-len\n var renderObject = window.sessionStorage.getItem(this.pdfViewerBase.getDocumentId() + '_' + pageNumber + '_' + this.getPreviousZoomFactor());\n // eslint-disable-next-line\n var textBounds = [];\n var textContents = [];\n // eslint-disable-next-line\n var rotation;\n if (renderObject) {\n // eslint-disable-next-line\n var data = JSON.parse(renderObject);\n // eslint-disable-next-line\n textBounds = data['textBounds'];\n // eslint-disable-next-line\n textContents = data['textContent'];\n // eslint-disable-next-line\n rotation = data['rotation'];\n }\n if (textBounds.length !== 0) {\n this.textBoundsArray.push({ pageNumber: pageNumber, textBounds: textBounds });\n this.resizeTextContents(pageNumber, textContents, textBounds, rotation);\n }\n else {\n // eslint-disable-next-line\n var textElements = this.textBoundsArray.filter(function (obj) {\n return obj.pageNumber === pageNumber;\n });\n if (textElements) {\n if (textElements.length !== 0) {\n // eslint-disable-next-line\n textBounds = textElements[0]['textBounds'];\n this.resizeTextContents(pageNumber, null, textBounds, rotation);\n }\n }\n }\n };\n TextLayer.prototype.resizeExcessDiv = function (textLayer, textDiv) {\n var textLayerPosition = textLayer.getBoundingClientRect();\n var textDivPosition = textDiv.getBoundingClientRect();\n // eslint-disable-next-line max-len\n if ((textDivPosition.width + textDivPosition.left) >= (textLayerPosition.width + textLayerPosition.left) || (textDivPosition.width > textLayerPosition.width)) {\n // 'auto' width is set to reset the size of the div to its contents.\n textDiv.style.width = 'auto';\n // Client width gets reset by 'auto' width property which has the width of the content.\n textDiv.style.width = textDiv.clientWidth + 'px';\n }\n };\n /**\n * @private\n * @param {boolean} isPinchZoomed - The isPinchZoomed.\n * @returns {void}\n */\n TextLayer.prototype.clearTextLayers = function (isPinchZoomed) {\n var lowerPageValue = this.pdfViewerBase.currentPageNumber - 3;\n lowerPageValue = (lowerPageValue > 0) ? lowerPageValue : 0;\n var higherPageValue = this.pdfViewerBase.currentPageNumber + 1;\n higherPageValue = (higherPageValue < this.pdfViewerBase.pageCount) ? higherPageValue : (this.pdfViewerBase.pageCount - 1);\n var textLayers = document.querySelectorAll('div[id*=\"' + this.pdfViewer.element.id + '_textLayer_\"]');\n for (var i = 0; i < textLayers.length; i++) {\n textLayers[parseInt(i.toString(), 10)].style.display = 'block';\n if (this.pdfViewerBase.getMagnified() && (this.getTextSelectionStatus() || this.getTextSearchStatus())) {\n // eslint-disable-next-line radix\n var pageNumber = parseInt(textLayers[parseInt(i.toString(), 10)].id.split('_textLayer_')[1]);\n if (!(((lowerPageValue + 1) <= pageNumber) && (pageNumber <= (higherPageValue - 1)))) {\n this.removeElement(textLayers[parseInt(i.toString(), 10)], isPinchZoomed);\n }\n }\n else if (this.pdfViewerBase.getPinchZoomed()) {\n this.removeElement(textLayers[parseInt(i.toString(), 10)], isPinchZoomed);\n }\n else {\n this.removeElement(textLayers[parseInt(i.toString(), 10)], isPinchZoomed);\n }\n }\n };\n TextLayer.prototype.removeElement = function (element, isPinchZoomed) {\n if (isPinchZoomed) {\n this.removeForeignObjects(element);\n }\n else {\n if (Browser.isIE) {\n if (element.parentElement) {\n element.parentElement.removeChild(element);\n }\n else if (element.parentNode) {\n element.parentNode.removeChild(element);\n }\n }\n else {\n element.remove();\n }\n }\n };\n TextLayer.prototype.removeForeignObjects = function (element) {\n // eslint-disable-next-line\n var childElement = element.getElementsByClassName('foreign-object');\n if (childElement) {\n for (var i = 0; i < childElement.length; i++) {\n if (Browser.isDevice) {\n //Remove the outer div element of checkbox and other formfields in pichzoom\n if (childElement[parseInt(i.toString(), 10)].parentElement.className === 'e-pv-text-layer' && childElement[0].parentElement.className !== 'e-pv-checkbox-outer-div') {\n element.removeChild(childElement[0]);\n }\n else if (childElement[parseInt(i.toString(), 10)].parentElement.className === 'e-pv-checkbox-outer-div') {\n var outerDivParent = document.getElementById(childElement[0].parentElement.id);\n if (outerDivParent) {\n outerDivParent.parentElement.remove();\n }\n }\n }\n else {\n if (childElement[parseInt(i.toString(), 10)].parentElement.className === 'e-pv-text-layer') {\n element.removeChild(childElement[0]);\n }\n }\n }\n }\n };\n /**\n * @param pageNumber\n * @param divId\n * @param fromOffset\n * @param toOffset\n * @param textString\n * @param className\n * @private\n */\n // eslint-disable-next-line max-len\n TextLayer.prototype.convertToSpan = function (pageNumber, divId, fromOffset, toOffset, textString, className) {\n var textDiv = this.pdfViewerBase.getElement('_text_' + pageNumber + '_' + divId);\n var textContent = textString.substring(fromOffset, toOffset);\n var node = document.createTextNode(textContent);\n if (className) {\n var spanElement = createElement('span');\n spanElement.className = className + ' e-pv-text';\n spanElement.appendChild(node);\n textDiv.appendChild(spanElement);\n }\n else {\n textDiv.appendChild(node);\n }\n };\n /**\n * @param startPage\n * @param endPage\n * @param anchorOffsetDiv\n * @param focusOffsetDiv\n * @param anchorOffset\n * @param focusOffset\n * @private\n */\n // eslint-disable-next-line max-len\n TextLayer.prototype.applySpanForSelection = function (startPage, endPage, anchorOffsetDiv, focusOffsetDiv, anchorOffset, focusOffset) {\n if (this.pdfViewer.textSelectionModule) {\n for (var i = startPage; i <= endPage; i++) {\n var startId = void 0;\n var endId = void 0;\n // eslint-disable-next-line\n var textDivs = this.pdfViewerBase.getElement('_textLayer_' + i).childNodes;\n if (i === startPage) {\n startId = anchorOffsetDiv;\n endId = textDivs.length - 1;\n }\n else if (i === endPage) {\n startId = 0;\n endId = focusOffsetDiv;\n }\n else {\n startId = 0;\n endId = textDivs.length - 1;\n }\n if (startPage === endPage) {\n startId = anchorOffsetDiv;\n endId = focusOffsetDiv;\n }\n for (var j = startId; j <= endId; j++) {\n var textDiv = this.pdfViewerBase.getElement('_text_' + i + '_' + j);\n var initId = void 0;\n var lastId = void 0;\n var length_1 = void 0;\n if (textDiv && textDiv.textContent) {\n length_1 = textDiv.textContent.length;\n var textContent = textDiv.textContent;\n textDiv.textContent = '';\n if (j === startId) {\n if (i === startPage) {\n initId = anchorOffset;\n }\n else {\n initId = 0;\n }\n lastId = length_1;\n this.convertToSpan(i, j, 0, initId, textContent, null);\n }\n else if (j === endId && i === endPage) {\n initId = 0;\n lastId = focusOffset;\n }\n else {\n initId = 0;\n lastId = length_1;\n }\n if (startId === endId && startPage === endPage) {\n initId = anchorOffset;\n lastId = focusOffset;\n }\n this.convertToSpan(i, j, initId, lastId, textContent, 'e-pv-maintaincontent');\n if (j === endId && i === endPage) {\n this.convertToSpan(i, j, lastId, textContent.length, textContent, null);\n }\n }\n }\n }\n }\n };\n /**\n * @private\n * @returns {void}\n */\n TextLayer.prototype.clearDivSelection = function () {\n var textLayers = document.querySelectorAll('div[id*=\"' + this.pdfViewer.element.id + '_textLayer_\"]');\n for (var i = 0; i < textLayers.length; i++) {\n var childNodes = textLayers[parseInt(i.toString(), 10)].childNodes;\n for (var j = 0; j < childNodes.length; j++) {\n var textDiv = childNodes[parseInt(j.toString(), 10)];\n // eslint-disable-next-line max-len\n if (textDiv.className !== 'e-pdfviewer-formFields' && textDiv.className !== 'e-pdfviewer-signatureformfields' && textDiv.className !== 'e-pdfviewer-signatureformfields-signature') {\n var textContent = textDiv.textContent;\n // eslint-disable-next-line max-len\n if (textDiv.childNodes.length > 1 || textDiv.childNodes.length === 1 && (textDiv.childNodes[0].tagName === 'SPAN')) {\n textDiv.textContent = '';\n textDiv.textContent = textContent;\n }\n }\n }\n }\n };\n // eslint-disable-next-line\n TextLayer.prototype.setStyleToTextDiv = function (textDiv, left, top, bottom, width, height, rotation) {\n textDiv.style.left = left * this.pdfViewerBase.getZoomFactor() + 'px';\n textDiv.style.top = top * this.pdfViewerBase.getZoomFactor() + 'px';\n var textHeight;\n if (rotation === 90) {\n textHeight = width * this.pdfViewerBase.getZoomFactor();\n }\n else {\n textHeight = height * this.pdfViewerBase.getZoomFactor();\n }\n textDiv.style.height = textHeight + 'px';\n textDiv.style.fontSize = textHeight + 'px';\n };\n TextLayer.prototype.getTextSelectionStatus = function () {\n if (this.pdfViewer.textSelectionModule) {\n return this.pdfViewer.textSelectionModule.isTextSelection;\n }\n else {\n return false;\n }\n };\n /**\n * @param {boolean} isAdd - The isAdd.\n * @returns {void}\n * @private\n */\n TextLayer.prototype.modifyTextCursor = function (isAdd) {\n var textLayerList = document.querySelectorAll('div[id*=\"' + this.pdfViewer.element.id + '_textLayer_\"]');\n for (var i = 0; i < textLayerList.length; i++) {\n var childNodes = textLayerList[parseInt(i.toString(), 10)].childNodes;\n for (var j = 0; j < childNodes.length; j++) {\n var textElement = childNodes[parseInt(j.toString(), 10)];\n // eslint-disable-next-line max-len\n if (isAdd && textElement.className !== 'e-pdfviewer-formFields' && textElement.className !== 'e-pdfviewer-signatureformfields' && textElement.className !== 'e-pdfviewer-signatureformfields-signature') {\n textElement.classList.add('e-pv-cursor');\n }\n else {\n textElement.classList.remove('e-pv-cursor');\n }\n }\n }\n };\n /**\n * @param {Selection} selection - The Selection.\n * @returns {boolean} - Returns true or false.\n * @private\n */\n TextLayer.prototype.isBackWardSelection = function (selection) {\n var position = selection.anchorNode.compareDocumentPosition(selection.focusNode);\n var backward = false;\n if (!position && selection.anchorOffset > selection.focusOffset || position === Node.DOCUMENT_POSITION_PRECEDING) {\n backward = true;\n }\n return backward;\n };\n /**\n * @param {Node} element - The element.\n * @returns {number} - Returns number.\n * @private\n */\n TextLayer.prototype.getPageIndex = function (element) {\n var pageId;\n // eslint-disable-next-line\n var parentElement = element.parentElement;\n if (!parentElement) {\n parentElement = element.parentNode;\n }\n if (parentElement.className === 'e-pv-text-layer') {\n // eslint-disable-next-line radix\n pageId = parseInt(element.id.split('_text_')[1]);\n }\n else {\n // eslint-disable-next-line radix\n pageId = parseInt(parentElement.id.split('_text_')[1]);\n }\n return pageId;\n };\n /**\n * @param {Node} element - The element.\n * @param {number} pageIndex - The pageIndex.\n * @returns {number} - Returns number.\n * @private\n */\n TextLayer.prototype.getTextIndex = function (element, pageIndex) {\n var textIndex;\n // eslint-disable-next-line\n var parentElement = element.parentElement;\n if (!parentElement) {\n parentElement = element.parentNode;\n }\n if (parentElement.className === 'e-pv-text-layer') {\n // eslint-disable-next-line radix\n textIndex = parseInt(element.id.split('_text_' + pageIndex + '_')[1]);\n }\n else {\n // eslint-disable-next-line radix\n textIndex = parseInt(parentElement.id.split('_text_' + pageIndex + '_')[1]);\n }\n return textIndex;\n };\n TextLayer.prototype.getPreviousZoomFactor = function () {\n if (this.pdfViewer.magnificationModule) {\n return this.pdfViewer.magnificationModule.previousZoomFactor;\n }\n else {\n return 1;\n }\n };\n /**\n * @private\n * @returns {boolean} - Returns true or false.\n */\n TextLayer.prototype.getTextSearchStatus = function () {\n if (this.pdfViewer.textSearchModule) {\n return this.pdfViewer.textSearchModule.isTextSearch;\n }\n else {\n return false;\n }\n };\n /**\n * @param {string} text - The text.\n * @returns {void}\n * @private\n */\n TextLayer.prototype.createNotificationPopup = function (text) {\n var _this = this;\n if (!this.isMessageBoxOpen) {\n if (!isBlazor()) {\n // eslint-disable-next-line max-len\n var popupElement_1 = createElement('div', { id: this.pdfViewer.element.id + '_notify', className: 'e-pv-notification-popup' });\n this.pdfViewerBase.viewerContainer.appendChild(popupElement_1);\n this.notifyDialog = new Dialog({\n showCloseIcon: true, closeOnEscape: false, isModal: true, header: this.pdfViewer.localeObj.getConstant('PdfViewer'),\n buttons: [{\n buttonModel: { content: this.pdfViewer.localeObj.getConstant('OK'), isPrimary: true },\n click: this.closeNotification.bind(this)\n }],\n // eslint-disable-next-line max-len\n content: '
      ' + text + '
      ', target: this.pdfViewer.element,\n beforeClose: function () {\n _this.notifyDialog.destroy();\n if (_this.pdfViewer.element) {\n try {\n _this.pdfViewer.element.removeChild(popupElement_1);\n }\n catch (error) {\n popupElement_1.parentElement.removeChild(popupElement_1);\n }\n }\n if (_this.pdfViewer.textSearchModule) {\n _this.pdfViewer.textSearch.isMessagePopupOpened = false;\n }\n _this.isMessageBoxOpen = false;\n }\n });\n if (this.pdfViewer.enableRtl) {\n this.notifyDialog.enableRtl = true;\n }\n this.notifyDialog.appendTo(popupElement_1);\n this.isMessageBoxOpen = true;\n }\n else {\n // eslint-disable-next-line\n var notificationElement = document.getElementById(this.pdfViewer.element.id + '_notification_popup_content');\n if (notificationElement) {\n notificationElement.textContent = text;\n notificationElement.innerHTML = text;\n }\n if (this.pdfViewer.textSearchModule) {\n this.pdfViewer.textSearch.isMessagePopupOpened = false;\n }\n this.pdfViewer._dotnetInstance.invokeMethodAsync('OpenNotificationPopup', text);\n }\n }\n };\n return TextLayer;\n}());\nexport { TextLayer };\n","import { createElement } from '@syncfusion/ej2-base';\n/**\n * The 'AccessibilityTags' module helps to access the tagged layers in a PDF document for the users with disabilities.\n */\nvar AccessibilityTags = /** @class */ (function () {\n /**\n * @param {PdfViewer} pdfViewer - The PdfViewer.\n * @param {PdfViewerBase} pdfViewerBase - The PdfViewerBase.\n * @private\n */\n function AccessibilityTags(pdfViewer, pdfViewerBase) {\n this.createTag = function (taggedTextResponse) {\n var _this = this;\n var tagType = taggedTextResponse.TagType;\n var parentTagType = taggedTextResponse.ParentTagType;\n var text = taggedTextResponse.Text;\n var altText = taggedTextResponse.AltText;\n var bounds = taggedTextResponse.Bounds;\n var childTags = taggedTextResponse.ChildElements;\n var textTag = document.createElement(this.getTag(tagType));\n textTag.style = \"padding:0px;margin:0px\";\n if (parentTagType != \"Document\" && parentTagType != \"Part\") {\n textTag.style.position = 'absolute';\n }\n if (bounds) {\n this.setStyleToTaggedTextDiv(textTag, bounds, taggedTextResponse.FontSize, taggedTextResponse.FontName, taggedTextResponse.FontStyle);\n this.setTextElementProperties(textTag);\n }\n if (text.trim() != \"\") {\n textTag.innerText = text;\n }\n if (altText && altText.trim() !== \"\" && (tagType === \"Image\" || tagType === \"Figure\")) {\n textTag.alt = altText;\n textTag.src = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNgYAAAAAMAASsJTYQAAAAASUVORK5CYII=\";\n }\n if (childTags && childTags.length > 0) {\n childTags.forEach(function (element) {\n if (tagType === \"Table\") {\n if (element.ChildElements) {\n element.ChildElements.forEach(function (newelement) {\n textTag.appendChild(_this.createTag(newelement));\n });\n }\n }\n else {\n textTag.appendChild(_this.createTag(element));\n }\n });\n }\n return textTag;\n };\n this.pdfViewer = pdfViewer;\n this.pdfViewerBase = pdfViewerBase;\n }\n AccessibilityTags.prototype.addTaggedLayer = function (pageIndex) {\n var taggedLayer;\n if (this.pdfViewer.enableAccessibilityTags && this.pdfViewerBase.isTaggedPdf) {\n var pageDiv = document.getElementById(this.pdfViewer.element.id + '_pageDiv_' + pageIndex);\n taggedLayer = document.getElementById(this.pdfViewer.element.id + '_taggedLayer_' + pageIndex);\n var textLayer = document.getElementById(this.pdfViewer.element.id + '_textLayer_' + pageIndex);\n if (textLayer) {\n textLayer.setAttribute('aria-hidden', 'true');\n }\n if (!taggedLayer) {\n taggedLayer = createElement('div', { id: this.pdfViewer.element.id + '_taggedLayer_' + pageIndex, className: 'e-pv-tagged-layer e-pv-text-layer' });\n }\n taggedLayer.innerHTML = \"\";\n taggedLayer.style.width = this.pdfViewerBase.pageSize[parseInt(pageIndex.toString(), 10)].width * this.pdfViewerBase.getZoomFactor() + 'px';\n taggedLayer.style.height = this.pdfViewerBase.pageSize[parseInt(pageIndex.toString(), 10)].height * this.pdfViewerBase.getZoomFactor() + 'px';\n taggedLayer.style.pointerEvents = \"none\";\n if (pageDiv) {\n pageDiv.appendChild(taggedLayer);\n }\n }\n return taggedLayer;\n };\n /**\n * @param pageIndex\n * @private\n */\n AccessibilityTags.prototype.renderAccessibilityTags = function (pageIndex, taggedTextResponse) {\n var taggedLayer = this.addTaggedLayer(pageIndex);\n for (var i = 0; i < taggedTextResponse.length; i++) {\n var textDiv = createElement('div', { id: this.pdfViewer.element.id + '_taggedText_' + pageIndex + '_' + parseInt(i.toString(), 10), className: 'e-pv-text', attrs: { 'tabindex': '-1' } });\n var bounds = taggedTextResponse[parseInt(i.toString(), 10)].Bounds;\n if (taggedTextResponse[parseInt(parseInt(i.toString(), 10).toString(), 10)].TagType === \"Paragraph\" && taggedTextResponse[parseInt(i.toString(), 10)].ChildElements === null && taggedTextResponse[parseInt(i.toString(), 10)].Text.trim() === \"\") {\n continue;\n }\n else {\n textDiv.appendChild(this.createTag(taggedTextResponse[parseInt(i.toString(), 10)]));\n }\n textDiv.style.display = \"inline\";\n // eslint-disable-next-line max-len\n this.setStyleToTaggedTextDiv(textDiv, bounds, taggedTextResponse[parseInt(i.toString(), 10)].FontSize, taggedTextResponse[parseInt(i.toString(), 10)].FontName, taggedTextResponse[parseInt(i.toString(), 10)].FontStyle);\n this.setTextElementProperties(textDiv);\n taggedLayer.appendChild(textDiv);\n }\n };\n AccessibilityTags.prototype.getTag = function (tagType) {\n switch (tagType) {\n case \"Paragraph\":\n return \"p\";\n case \"Figure\":\n return \"img\";\n case \"Article\":\n return \"art\";\n case \"Annotation\":\n return \"annot\";\n case \"BibliographyEntry\":\n return \"bibentry\";\n case \"BlockQuotation\":\n return \"blockQuote\";\n case \"Caption\":\n return \"caption\";\n case \"Code\":\n return \"code\";\n case \"Division\":\n return \"div\";\n case \"Document\":\n return \"document\";\n case \"Form\":\n return \"form\";\n case \"Formula\":\n return \"formula\";\n case \"Index\":\n return \"index\";\n case \"Heading\":\n return \"h\";\n case \"HeadingLevel1\":\n return \"h1\";\n case \"HeadingLevel2\":\n return \"h2\";\n case \"HeadingLevel3\":\n return \"h3\";\n case \"HeadingLevel4\":\n return \"h4\";\n case \"HeadingLevel5\":\n return \"h5\";\n case \"HeadingLevel6\":\n return \"h6\";\n case \"Label\":\n return \"label\";\n case \"Link\":\n return \"a\";\n case \"List\":\n return \"ul\";\n case \"ListItem\":\n return \"li\";\n case \"ListBody\":\n return \"p\";\n case \"Note\":\n return \"note\";\n case \"Part\":\n return \"part\";\n case \"Quotation\":\n return \"quote\";\n case \"Reference\":\n return \"reference\";\n case \"Section\":\n return \"sect\";\n case \"Span\":\n return \"span\";\n case \"Table\":\n return \"table\";\n case \"TableDataCell\":\n return \"td\";\n case \"TableHeader\":\n return \"th\";\n case \"TableOfContent\":\n return \"toc\";\n case \"TableOfContentItem\":\n return \"toci\";\n case \"TableRow\":\n return \"tr\";\n case \"Image\":\n return \"img\";\n default:\n return \"p\";\n }\n };\n AccessibilityTags.prototype.setStyleToTaggedTextDiv = function (textDiv, bounds, fontSize, fontName, fontStyle) {\n var zoomFactor = this.pdfViewerBase.getZoomFactor();\n textDiv.style.left = this.pdfViewerBase.ConvertPointToPixel(bounds.X) * zoomFactor + 'px';\n textDiv.style.top = this.pdfViewerBase.ConvertPointToPixel(bounds.Y) * zoomFactor + 'px';\n textDiv.style.width = this.pdfViewerBase.ConvertPointToPixel(bounds.Width) * zoomFactor + 'px';\n var textHeight = this.pdfViewerBase.ConvertPointToPixel(bounds.Height) * zoomFactor;\n textDiv.style.height = textHeight + 'px';\n textDiv.style.fontSize = this.pdfViewerBase.ConvertPointToPixel(fontSize) * zoomFactor + 'px';\n if (fontName && (fontName === \"Wingdings\" || fontName === \"Symbol\")) {\n textDiv.style.fontFamily = \"Verdana\";\n }\n else if (fontName) {\n textDiv.style.fontFamily = fontName;\n }\n if (fontStyle) {\n textDiv.style.fontWeight = fontStyle;\n }\n textDiv.style.color = 'transparent';\n };\n AccessibilityTags.prototype.setTextElementProperties = function (textDiv) {\n textDiv.style.transformOrigin = '0%';\n };\n /**\n * @private\n */\n AccessibilityTags.prototype.getModuleName = function () {\n return 'AccessibilityTags';\n };\n /**\n * @private\n */\n AccessibilityTags.prototype.destroy = function () {\n return true;\n };\n return AccessibilityTags;\n}());\nexport { AccessibilityTags };\n","/**\n * These utility methods help to process the data and to convert it to desired dimensions\n */\n/** @private */\nexport function processPathData(data) {\n var collection = [];\n var j;\n var arrayCollection = parsePathData(data);\n if (arrayCollection.length > 0) {\n for (var i = 0; i < arrayCollection.length; i++) {\n var ob = arrayCollection[parseInt(i.toString(), 10)];\n var char = '';\n char = ob[0];\n switch (char.toLowerCase()) {\n case 'm':\n for (j = 1; j < ob.length; j++) {\n collection.push({ command: char, x: ob[parseInt(j.toString(), 10)], y: ob[j + 1] });\n j = j + 1;\n if (char === 'm') {\n char = 'l';\n }\n else if (char === 'M') {\n char = 'L';\n }\n }\n break;\n case 'l':\n case 't':\n for (j = 1; j < ob.length; j++) {\n collection.push({ command: char, x: ob[parseInt(j.toString(), 10)], y: ob[j + 1] });\n j = j + 1;\n }\n break;\n case 'h':\n for (j = 1; j < ob.length; j++) {\n collection.push({ command: char, x: ob[parseInt(j.toString(), 10)] });\n }\n break;\n case 'v':\n for (j = 1; j < ob.length; j++) {\n collection.push({ command: char, y: ob[parseInt(j.toString(), 10)] });\n }\n break;\n case 'z':\n collection.push({ command: char });\n break;\n case 'c':\n for (j = 1; j < ob.length; j++) {\n collection.push({\n command: char, x1: ob[parseInt(j.toString(), 10)], y1: ob[j + 1], x2: ob[j + 2], y2: ob[j + 3], x: ob[j + 4], y: ob[j + 5]\n });\n j = j + 5;\n }\n break;\n case 's':\n for (j = 1; j < ob.length; j++) {\n collection.push({ command: char, x2: ob[parseInt(j.toString(), 10)], y2: ob[j + 1], x: ob[j + 2], y: ob[j + 3] });\n j = j + 3;\n }\n break;\n case 'q':\n for (j = 1; j < ob.length; j++) {\n collection.push({ command: char, x1: ob[parseInt(j.toString(), 10)], y1: ob[j + 1], x: ob[j + 2], y: ob[j + 3] });\n j = j + 3;\n }\n break;\n case 'a':\n for (j = 1; j < ob.length; j++) {\n collection.push({\n command: char, r1: ob[parseInt(j.toString(), 10)], r2: ob[j + 1], angle: ob[j + 2], largeArc: ob[j + 3],\n sweep: ob[j + 4], x: ob[j + 5], y: ob[j + 6]\n });\n j = j + 6;\n }\n break;\n }\n }\n }\n return collection;\n}\n/** @private */\nexport function parsePathData(data) {\n var tokenizer = /([a-z]+)|([+-]?(?:\\d+\\.?\\d*|\\.\\d+))/gi;\n var current = [];\n var commands = [];\n var match = {};\n tokenizer.lastIndex = 0;\n var isExponential = false;\n match = tokenizer.exec(data);\n while (match) {\n if (match[1] === 'e') {\n var s1 = '';\n isExponential = true;\n }\n else if (match[1]) {\n if (match[1].toLowerCase() === 'zm') {\n if (current.length) {\n commands.push(current);\n }\n commands.push(['Z']);\n current = [match[1].substring(1, 2)];\n }\n else {\n if (current.length) {\n commands.push(current);\n }\n current = [match[1]];\n }\n isExponential = false;\n }\n else {\n if (!current.length) {\n current = [];\n }\n if (!isExponential) {\n current.push(Number(match[2]));\n }\n isExponential = false;\n }\n match = tokenizer.exec(data);\n }\n if (current.length) {\n commands.push(current);\n }\n return commands;\n}\n/**\n * Used to find the path for rounded rect\n */\nexport function getRectanglePath(cornerRadius, height, width) {\n if (cornerRadius > height / 2) {\n cornerRadius = height / 2;\n }\n if (cornerRadius > width / 2) {\n cornerRadius = width / 2;\n }\n var x = 0;\n var y = 0;\n var path = '';\n var points = [{ x: x + cornerRadius, y: y }, { x: x + width - cornerRadius, y: y },\n { x: x + width, y: y + cornerRadius }, { x: x + width, y: y + height - cornerRadius },\n { x: x + width - cornerRadius, y: y + height }, { x: x + cornerRadius, y: y + height },\n { x: x, y: y + height - cornerRadius }, { x: x, y: y + cornerRadius }\n ];\n var corners = [{ x: x + width, y: y }, { x: x + width, y: y + height }, { x: x, y: y + height }, { x: x, y: y }];\n var corner = 0;\n var point2;\n var next;\n path = 'M' + points[0].x + ' ' + points[0].y;\n var i;\n for (i = 0; i < points.length; i = i + 2) {\n point2 = points[i + 1];\n path += 'L' + point2.x + ' ' + point2.y;\n next = points[i + 2] || points[0];\n // eslint-disable-next-line\n path += 'Q' + corners[corner].x + ' ' + corners[corner].y + ' ' + next.x + ' ' + next.y;\n corner++;\n }\n return path;\n}\n/** @private */\nexport function pathSegmentCollection(collection) {\n var x0;\n var y0;\n var x1;\n var y1;\n var x2;\n var y2;\n var x;\n var y;\n var length;\n var i;\n var initx;\n var inity;\n var segments = [];\n for (x = 0, y = 0, i = 0, length = collection.length; i < length; ++i) {\n var obj = collection[parseInt(i.toString(), 10)];\n var seg = obj;\n var char = '';\n char = seg.command;\n if ('y1' in seg) {\n y1 = seg.y1;\n }\n if ('y2' in seg) {\n y2 = seg.y2;\n }\n if ('x1' in seg) {\n x1 = seg.x1;\n }\n if ('x2' in seg) {\n x2 = seg.x2;\n }\n if ('x' in seg) {\n x = seg.x;\n }\n if ('y' in seg) {\n y = seg.y;\n }\n var prev = segments[segments.length - 1];\n switch (char) {\n case 'M':\n segments.push({ command: 'M', x: x, y: y });\n break;\n case 'L':\n segments.push({ command: 'L', x0: x0, y0: y0, x: x, y: y });\n break;\n case 'H':\n segments.push({ command: 'L', x0: x0, y0: y0, x: x, y: y0 });\n break;\n case 'V':\n segments.push({ command: 'L', x0: x0, y0: y0, x: x0, y: y });\n break;\n case 'C':\n segments.push({ command: 'C', x0: x0, y0: y0, x1: x1, y1: y1, x2: x2, y2: y2, x: x, y: y });\n break;\n case 'S':\n if (prev) {\n var ctrl = void 0;\n if (prev.command === 'C' || prev.command === 'S') {\n ctrl = { x: prev.x2, y: prev.y2 };\n }\n else {\n ctrl = { x: x0, y: y0 };\n }\n var cpt2 = { x: 2 * x0 - ctrl.x, y: 2 * y0 - ctrl.y };\n segments.push({ command: 'C', x0: x0, y0: y0, x1: cpt2.x, y1: cpt2.y, x2: x2, y2: y2, x: x, y: y });\n }\n break;\n case 'Q':\n //ctx.quadraticCurveTo(x1, y1, x, y);\n segments.push({ command: 'Q', x0: x0, y0: y0, x1: x1, y1: y1, x: x, y: y });\n break;\n case 'T':\n if (prev) {\n var ctrl = void 0;\n if (prev.command === 'Q') {\n ctrl = { x: prev.x1, y: prev.y1 };\n }\n else {\n ctrl = { x: x0, y: y0 };\n }\n var cpt2 = { x: 2 * x0 - ctrl.x, y: 2 * y0 - ctrl.y };\n segments.push({ command: 'Q', x0: x0, y0: y0, x1: cpt2.x, y1: cpt2.y, x: x, y: y });\n }\n break;\n case 'A':\n var newSeg = seg;\n newSeg.command = 'A';\n segments.push(newSeg);\n break;\n case 'Z':\n case 'z':\n segments.push({ command: 'Z' });\n x = x0;\n y = y0;\n break;\n }\n if (char === 'M' || char === 'm') {\n initx = x;\n inity = y;\n }\n x0 = x;\n y0 = y;\n }\n return segments;\n}\n/** @private */\nexport function transformPath(arr, sX, sY, s, bX, bY, iX, iY) {\n var x0;\n var y0;\n var x1;\n var y1;\n var x2;\n var y2;\n var x;\n var y;\n var length;\n var i;\n var newSeg;\n for (x = 0, y = 0, i = 0, length = arr.length; i < length; ++i) {\n var obj = arr[parseInt(i.toString(), 10)];\n var seg = obj;\n var char = seg.command;\n if ('x' in seg) {\n x = seg.x;\n }\n if ('y' in seg) {\n y = seg.y;\n }\n if ('y1' in seg) {\n y1 = seg.y1;\n }\n if ('y2' in seg) {\n y2 = seg.y2;\n }\n if ('x1' in seg) {\n x1 = seg.x1;\n }\n if ('x2' in seg) {\n x2 = seg.x2;\n }\n if (s) {\n if (x !== undefined) {\n x = scalePathData(x, sX, bX, iX);\n }\n if (y !== undefined) {\n y = scalePathData(y, sY, bY, iY);\n }\n if (x1 !== undefined) {\n x1 = scalePathData(x1, sX, bX, iX);\n }\n if (y1 !== undefined) {\n y1 = scalePathData(y1, sY, bY, iY);\n }\n if (x2 !== undefined) {\n x2 = scalePathData(x2, sX, bX, iX);\n }\n if (y2 !== undefined) {\n y2 = scalePathData(y2, sY, bY, iY);\n }\n }\n else {\n if (x !== undefined) {\n x = Number((x + sX).toFixed(2));\n }\n if (y !== undefined) {\n y = Number((y + sY).toFixed(2));\n }\n if (x1 !== undefined) {\n x1 = Number((x1 + sX).toFixed(2));\n }\n if (y1 !== undefined) {\n y1 = Number((y1 + sY).toFixed(2));\n }\n if (x2 !== undefined) {\n x2 = Number((x2 + sX).toFixed(2));\n }\n if (y2 !== undefined) {\n y2 = Number((y2 + sY).toFixed(2));\n }\n }\n var scaledPath = { x: x, y: y, x1: x1, y1: y1, x2: x2, y2: y2, r1: seg.r1, r2: seg.r2 };\n newSeg = updatedSegment(seg, char, scaledPath, s, sX, sY);\n if (newSeg) {\n arr[parseInt(i.toString(), 10)] = newSeg;\n }\n // Record the start of a subpath\n if (char === 'M' || char === 'm') {\n x0 = x;\n y0 = y;\n }\n }\n var pathData = getPathString(arr);\n return pathData;\n}\n/** @private */\nexport function updatedSegment(segment, char, obj, isScale, sX, sY) {\n switch (char) {\n case 'M':\n segment.x = obj.x;\n segment.y = obj.y;\n break;\n case 'L':\n segment.x = obj.x;\n segment.y = obj.y;\n break;\n case 'H':\n segment.x = obj.x;\n break;\n case 'V':\n segment.y = obj.y;\n break;\n case 'C':\n segment.x = obj.x;\n segment.y = obj.y;\n segment.x1 = obj.x1;\n segment.y1 = obj.y1;\n segment.x2 = obj.x2;\n segment.y2 = obj.y2;\n break;\n case 'S':\n segment.x = obj.x;\n segment.y = obj.y;\n segment.x2 = obj.x2;\n segment.y2 = obj.y2;\n break;\n case 'Q':\n segment.x = obj.x;\n segment.y = obj.y;\n segment.x1 = obj.x1;\n segment.y1 = obj.y1;\n break;\n case 'T':\n segment.x = obj.x;\n segment.y = obj.y;\n break;\n case 'A':\n var r1 = obj.r1;\n var r2 = obj.r2;\n if (isScale) {\n obj.r1 = r1 = (r1 * sX);\n obj.r2 = r2 = (r2 * sY);\n }\n segment.x = obj.x;\n segment.y = obj.y;\n segment.r1 = obj.r1;\n segment.r2 = obj.r2;\n break;\n case 'z':\n case 'Z':\n segment = { command: 'Z' };\n break;\n }\n return segment;\n}\n/** @private */\nexport function scalePathData(val, scaleFactor, oldOffset, newOffset) {\n if (val !== oldOffset) {\n if (newOffset !== oldOffset) {\n val = (((val * scaleFactor) - (Number(oldOffset) * scaleFactor - Number(oldOffset)))\n + (newOffset - Number(oldOffset)));\n }\n else {\n val = ((Number(val) * scaleFactor) - (Number(oldOffset) * scaleFactor - Number(oldOffset)));\n }\n }\n else {\n if (newOffset !== oldOffset) {\n val = newOffset;\n }\n }\n return Number(val.toFixed(2));\n}\n/** @private */\nexport function splitArrayCollection(arrayCollection) {\n var x0;\n var y0;\n var x1;\n var y1;\n var x2;\n var y2;\n var x;\n var y;\n var length;\n var i;\n for (x = 0, y = 0, i = 0, length = arrayCollection.length; i < length; ++i) {\n var path = arrayCollection[parseInt(i.toString(), 10)];\n var seg = path;\n var char = seg.command;\n if (/[MLHVCSQTA]/.test(char)) {\n if ('x' in seg) {\n seg.x = x = seg.x;\n }\n if ('y' in seg) {\n seg.y = y = seg.y;\n }\n }\n else {\n if ('x1' in seg) {\n seg.x1 = x1 = x + seg.x1;\n }\n if ('x2' in seg) {\n seg.x2 = x2 = x + seg.x2;\n }\n if ('y1' in seg) {\n seg.y1 = y1 = y + seg.y1;\n }\n if ('y2' in seg) {\n seg.y2 = y2 = y + seg.y2;\n }\n if ('x' in seg) {\n seg.x = x += seg.x;\n }\n if ('y' in seg) {\n seg.y = y += seg.y;\n }\n var newSeg = void 0;\n switch (char) {\n case 'm':\n case 'M':\n newSeg = { command: 'M', x: x, y: y };\n break;\n case 'l':\n case 'L':\n newSeg = { command: 'L', x: x, y: y };\n break;\n case 'h':\n case 'H':\n newSeg = { command: 'H', x: x };\n break;\n case 'v':\n case 'V':\n newSeg = { command: 'V', y: y };\n break;\n case 'c':\n case 'C':\n newSeg = { command: 'C', x: x, y: y, x1: x1, y1: y1, x2: x2, y2: y2 };\n break;\n case 's':\n case 'S':\n newSeg = { command: 'S', x: x, y: y, x2: x2, y2: y2 };\n break;\n case 'q':\n case 'Q':\n newSeg = { command: 'Q', x: x, y: y, x1: x1, y1: y1 };\n break;\n case 't':\n case 'T':\n newSeg = { command: 'T', x: x, y: y };\n break;\n case 'a':\n case 'A':\n newSeg = { command: 'A', x: x, y: y };\n newSeg.r1 = seg.r1;\n newSeg.r2 = seg.r2;\n newSeg.angle = seg.angle;\n newSeg.largeArc = seg.largeArc;\n newSeg.sweep = seg.sweep;\n break;\n case 'z':\n case 'Z':\n newSeg = { command: 'Z' };\n x = x0;\n y = y0;\n newSeg = arrayCollection[parseInt(i.toString(), 10)];\n break;\n }\n if (newSeg) {\n arrayCollection[parseInt(i.toString(), 10)] = newSeg;\n }\n }\n if (char === 'M' || char === 'm') {\n x0 = x;\n y0 = y;\n }\n }\n return arrayCollection;\n}\n/** @private */\nexport function getPathString(arrayCollection) {\n var getNewString = '';\n var i;\n for (i = 0; i < arrayCollection.length; i++) {\n if (i === 0) {\n getNewString += getString(arrayCollection[parseInt(i.toString(), 10)]);\n }\n else {\n getNewString += ' ' + getString(arrayCollection[parseInt(i.toString(), 10)]);\n }\n }\n return getNewString;\n}\n/** @private */\nexport function getString(obj) {\n var string = '';\n switch (obj.command) {\n case 'Z':\n case 'z':\n string = obj.command;\n break;\n case 'M':\n case 'm':\n case 'L':\n case 'l':\n string = obj.command + ' ' + obj.x + ' ' + obj.y;\n break;\n case 'C':\n case 'c':\n string = obj.command + ' ' + obj.x1 + ' ' + obj.y1 + ' ' + obj.x2 + ' ' + obj.y2 + ' ' + obj.x + ' ' + obj.y;\n break;\n case 'Q':\n case 'q':\n string = obj.command + ' ' + obj.x1 + ' ' + obj.y1 + ' ' + obj.x + ' ' + obj.y;\n break;\n case 'A':\n case 'a':\n var cmd = obj.command;\n var ang = obj.angle;\n var l = (obj.largeArc ? '1' : '0');\n var s = (obj.sweep ? '1' : '0');\n string = cmd + ' ' + obj.r1 + ' ' + obj.r2 + ' ' + ang + ' ' + l + ' ' + s + ' ' + obj.x + ' ' + obj.y;\n break;\n case 'H':\n case 'h':\n string = obj.command + ' ' + obj.x;\n break;\n case 'V':\n case 'v':\n string = obj.command + ' ' + obj.y;\n break;\n case 'S':\n case 's':\n string = obj.command + ' ' + obj.x2 + ' ' + obj.y2 + ' ' + obj.x + ' ' + obj.y;\n break;\n case 'T':\n case 't':\n string = obj.command + ' ' + obj.x + ' ' + obj.y;\n }\n return string;\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component, Property, Event, EventHandler, L10n, setValue, getValue, isNullOrUndefined, Browser } from '@syncfusion/ej2-base';\nimport { NotifyPropertyChanges, detach, Internationalization, getUniqueID, closest } from '@syncfusion/ej2-base';\nimport { addClass, removeClass } from '@syncfusion/ej2-base';\nimport { Input } from '../input/input';\nvar HIDE_CLEAR = 'e-clear-icon-hide';\nvar TEXTBOX_FOCUS = 'e-input-focus';\nvar containerAttr = ['title', 'style', 'class'];\n/**\n * Represents the TextBox component that allows the user to enter the values based on it's type.\n * ```html\n * \n * ```\n * ```typescript\n * \n * ```\n */\nvar TextBox = /** @class */ (function (_super) {\n __extends(TextBox, _super);\n /**\n *\n * @param {TextBoxModel} options - Specifies the TextBox model.\n * @param {string | HTMLInputElement | HTMLTextAreaElement} element - Specifies the element to render as component.\n * @private\n */\n function TextBox(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.previousValue = null;\n _this.isAngular = false;\n _this.isHiddenInput = false;\n _this.isForm = false;\n _this.inputPreviousValue = null;\n _this.isVue = false;\n _this.textboxOptions = options;\n return _this;\n }\n /**\n * Calls internally if any of the property value is changed.\n *\n * @param {TextBoxModel} newProp - Returns the dynamic property value of the component.\n * @param {TextBoxModel} oldProp - Returns the previous property value of the component.\n * @returns {void}\n * @private\n */\n TextBox.prototype.onPropertyChanged = function (newProp, oldProp) {\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'floatLabelType':\n Input.removeFloating(this.textboxWrapper);\n Input.addFloating(this.respectiveElement, this.floatLabelType, this.placeholder);\n break;\n case 'enabled':\n Input.setEnabled(this.enabled, this.respectiveElement, this.floatLabelType, this.textboxWrapper.container);\n this.bindClearEvent();\n break;\n case 'width':\n Input.setWidth(newProp.width, this.textboxWrapper.container);\n break;\n case 'value':\n {\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n if (!this.isBlank(this.value)) {\n this.value = this.value.toString();\n }\n this.isProtectedOnChange = prevOnChange;\n Input.setValue(this.value, this.respectiveElement, this.floatLabelType, this.showClearButton);\n if (this.isHiddenInput) {\n this.element.value = this.respectiveElement.value;\n }\n this.inputPreviousValue = this.respectiveElement.value;\n /* istanbul ignore next */\n if ((this.isAngular || this.isVue) && this.preventChange === true) {\n this.previousValue = this.isAngular ? this.value : this.previousValue;\n this.preventChange = false;\n }\n else if (isNullOrUndefined(this.isAngular) || !this.isAngular\n || (this.isAngular && !this.preventChange) || (this.isAngular && isNullOrUndefined(this.preventChange))) {\n this.raiseChangeEvent();\n }\n }\n break;\n case 'htmlAttributes':\n {\n this.updateHTMLAttrToElement();\n this.updateHTMLAttrToWrapper();\n this.checkAttributes(true);\n this.multiline && !isNullOrUndefined(this.textarea) ? Input.validateInputType(this.textboxWrapper.container, this.textarea) : Input.validateInputType(this.textboxWrapper.container, this.element);\n }\n break;\n case 'readonly':\n Input.setReadonly(this.readonly, this.respectiveElement);\n break;\n case 'type':\n if (this.respectiveElement.tagName !== 'TEXTAREA') {\n this.respectiveElement.setAttribute('type', this.type);\n Input.validateInputType(this.textboxWrapper.container, this.element);\n this.raiseChangeEvent();\n }\n break;\n case 'showClearButton':\n if (this.respectiveElement.tagName !== 'TEXTAREA') {\n Input.setClearButton(this.showClearButton, this.respectiveElement, this.textboxWrapper);\n this.bindClearEvent();\n }\n break;\n case 'enableRtl':\n Input.setEnableRtl(this.enableRtl, [this.textboxWrapper.container]);\n break;\n case 'placeholder':\n Input.setPlaceholder(this.placeholder, this.respectiveElement);\n Input.calculateWidth(this.respectiveElement, this.textboxWrapper.container);\n break;\n case 'autocomplete':\n if (this.autocomplete !== 'on' && this.autocomplete !== '') {\n this.respectiveElement.autocomplete = this.autocomplete;\n }\n else {\n this.removeAttributes(['autocomplete']);\n }\n break;\n case 'cssClass':\n this.updateCssClass(newProp.cssClass, oldProp.cssClass);\n break;\n case 'locale':\n this.globalize = new Internationalization(this.locale);\n this.l10n.setLocale(this.locale);\n this.setProperties({ placeholder: this.l10n.getConstant('placeholder') }, true);\n Input.setPlaceholder(this.placeholder, this.respectiveElement);\n break;\n }\n }\n };\n /**\n * Gets the component name\n *\n * @returns {string} Returns the component name.\n * @private\n */\n TextBox.prototype.getModuleName = function () {\n return 'textbox';\n };\n TextBox.prototype.isBlank = function (str) {\n return (!str || /^\\s*$/.test(str));\n };\n TextBox.prototype.preRender = function () {\n this.cloneElement = this.element.cloneNode(true);\n this.formElement = closest(this.element, 'form');\n if (!isNullOrUndefined(this.formElement)) {\n this.isForm = true;\n }\n /* istanbul ignore next */\n if (this.element.tagName === 'EJS-TEXTBOX') {\n var ejInstance = getValue('ej2_instances', this.element);\n var inputElement = this.multiline ?\n this.createElement('textarea') :\n this.createElement('input');\n var index = 0;\n for (index; index < this.element.attributes.length; index++) {\n var attributeName = this.element.attributes[index].nodeName;\n if (attributeName !== 'id' && attributeName !== 'class') {\n inputElement.setAttribute(attributeName, this.element.attributes[index].nodeValue);\n inputElement.innerHTML = this.element.innerHTML;\n if (attributeName === 'name') {\n this.element.removeAttribute('name');\n }\n }\n else if (attributeName === 'class') {\n inputElement.setAttribute(attributeName, this.element.className.split(' ').filter(function (item) { return item.indexOf('ng-') !== 0; }).join(' '));\n }\n }\n this.element.appendChild(inputElement);\n this.element = inputElement;\n setValue('ej2_instances', ejInstance, this.element);\n }\n this.updateHTMLAttrToElement();\n this.checkAttributes(false);\n if ((isNullOrUndefined(this.textboxOptions) || (this.textboxOptions['value'] === undefined)) && this.element.value !== '') {\n this.setProperties({ value: this.element.value }, true);\n }\n if (this.element.tagName !== 'TEXTAREA') {\n this.element.setAttribute('type', this.type);\n }\n if (this.type === 'text') {\n this.element.setAttribute('role', 'textbox');\n }\n this.globalize = new Internationalization(this.locale);\n var localeText = { placeholder: this.placeholder };\n this.l10n = new L10n('textbox', localeText, this.locale);\n if (this.l10n.getConstant('placeholder') !== '') {\n this.setProperties({ placeholder: this.placeholder || this.l10n.getConstant('placeholder') }, true);\n }\n if (!this.element.hasAttribute('id')) {\n this.element.setAttribute('id', getUniqueID('textbox'));\n }\n if (!this.element.hasAttribute('name')) {\n this.element.setAttribute('name', this.element.getAttribute('id'));\n }\n if (this.element.tagName === 'INPUT' && this.multiline) {\n this.isHiddenInput = true;\n this.textarea = this.createElement('textarea');\n this.element.parentNode.insertBefore(this.textarea, this.element);\n this.element.setAttribute('type', 'hidden');\n this.textarea.setAttribute('name', this.element.getAttribute('name'));\n this.element.removeAttribute('name');\n this.textarea.setAttribute('role', this.element.getAttribute('role'));\n this.element.removeAttribute('role');\n this.textarea.setAttribute('id', getUniqueID('textarea'));\n var apiAttributes = ['placeholder', 'disabled', 'value', 'readonly', 'type', 'autocomplete'];\n for (var index = 0; index < this.element.attributes.length; index++) {\n var attributeName = this.element.attributes[index].nodeName;\n if (this.element.hasAttribute(attributeName) && containerAttr.indexOf(attributeName) < 0 &&\n !(attributeName === 'id' || attributeName === 'type' || attributeName === 'e-mappinguid')) {\n // e-mappinguid attribute is handled for Grid component.\n this.textarea.setAttribute(attributeName, this.element.attributes[index].nodeValue);\n if (apiAttributes.indexOf(attributeName) < 0) {\n this.element.removeAttribute(attributeName);\n index--;\n }\n }\n }\n }\n };\n TextBox.prototype.checkAttributes = function (isDynamic) {\n var attrs = isDynamic ? isNullOrUndefined(this.htmlAttributes) ? [] : Object.keys(this.htmlAttributes) :\n ['placeholder', 'disabled', 'value', 'readonly', 'type', 'autocomplete'];\n for (var _i = 0, attrs_1 = attrs; _i < attrs_1.length; _i++) {\n var key = attrs_1[_i];\n if (!isNullOrUndefined(this.element.getAttribute(key))) {\n switch (key) {\n case 'disabled':\n if ((isNullOrUndefined(this.textboxOptions) || (this.textboxOptions['enabled'] === undefined)) || isDynamic) {\n var enabled = this.element.getAttribute(key) === 'disabled' || this.element.getAttribute(key) === '' ||\n this.element.getAttribute(key) === 'true' ? false : true;\n this.setProperties({ enabled: enabled }, !isDynamic);\n }\n break;\n case 'readonly':\n if ((isNullOrUndefined(this.textboxOptions) || (this.textboxOptions['readonly'] === undefined)) || isDynamic) {\n var readonly = this.element.getAttribute(key) === 'readonly' || this.element.getAttribute(key) === ''\n || this.element.getAttribute(key) === 'true' ? true : false;\n this.setProperties({ readonly: readonly }, !isDynamic);\n }\n break;\n case 'placeholder':\n if ((isNullOrUndefined(this.textboxOptions) || (this.textboxOptions['placeholder'] === undefined)) || isDynamic) {\n this.setProperties({ placeholder: this.element.placeholder }, !isDynamic);\n }\n break;\n case 'autocomplete':\n if ((isNullOrUndefined(this.textboxOptions) || (this.textboxOptions['autocomplete'] === undefined)) || isDynamic) {\n var autoCompleteTxt = this.element.autocomplete === 'off' ? 'off' : 'on';\n this.setProperties({ autocomplete: autoCompleteTxt }, !isDynamic);\n }\n break;\n case 'value':\n if (((isNullOrUndefined(this.textboxOptions) || (this.textboxOptions['value'] === undefined)) || isDynamic) && this.element.value !== '') {\n this.setProperties({ value: this.element.value }, !isDynamic);\n }\n break;\n case 'type':\n if ((isNullOrUndefined(this.textboxOptions) || (this.textboxOptions['type'] === undefined)) || isDynamic) {\n this.setProperties({ type: this.element.type }, !isDynamic);\n }\n break;\n }\n }\n }\n };\n /**\n * To Initialize the control rendering\n *\n * @returns {void}\n * @private\n */\n TextBox.prototype.render = function () {\n var updatedCssClassValue = this.cssClass;\n if (!isNullOrUndefined(this.cssClass) && this.cssClass !== '') {\n updatedCssClassValue = this.getInputValidClassList(this.cssClass);\n }\n this.respectiveElement = (this.isHiddenInput) ? this.textarea : this.element;\n this.textboxWrapper = Input.createInput({\n element: this.respectiveElement,\n floatLabelType: this.floatLabelType,\n properties: {\n enabled: this.enabled,\n enableRtl: this.enableRtl,\n cssClass: updatedCssClassValue,\n readonly: this.readonly,\n placeholder: this.placeholder,\n showClearButton: this.showClearButton\n }\n });\n this.updateHTMLAttrToWrapper();\n if (this.isHiddenInput) {\n this.respectiveElement.parentNode.insertBefore(this.element, this.respectiveElement);\n }\n this.wireEvents();\n if (!isNullOrUndefined(this.value)) {\n Input.setValue(this.value, this.respectiveElement, this.floatLabelType, this.showClearButton);\n if (this.isHiddenInput) {\n this.element.value = this.respectiveElement.value;\n }\n }\n if (!isNullOrUndefined(this.value)) {\n this.initialValue = this.value;\n this.setInitialValue();\n }\n if (this.autocomplete !== 'on' && this.autocomplete !== '') {\n this.respectiveElement.autocomplete = this.autocomplete;\n }\n else if (!isNullOrUndefined(this.textboxOptions) && (this.textboxOptions['autocomplete'] !== undefined)) {\n this.removeAttributes(['autocomplete']);\n }\n this.previousValue = this.value;\n this.inputPreviousValue = this.value;\n this.respectiveElement.defaultValue = this.respectiveElement.value;\n Input.setWidth(this.width, this.textboxWrapper.container);\n if (!isNullOrUndefined(closest(this.element, 'fieldset')) && closest(this.element, 'fieldset').disabled) {\n this.enabled = false;\n }\n this.renderComplete();\n };\n TextBox.prototype.updateHTMLAttrToWrapper = function () {\n if (!isNullOrUndefined(this.htmlAttributes)) {\n for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) {\n var key = _a[_i];\n if (containerAttr.indexOf(key) > -1) {\n if (key === 'class') {\n var updatedClassValues = this.getInputValidClassList(this.htmlAttributes[\"\" + key]);\n if (updatedClassValues !== '') {\n addClass([this.textboxWrapper.container], updatedClassValues.split(' '));\n }\n }\n else if (key === 'style') {\n var setStyle = this.textboxWrapper.container.getAttribute(key);\n setStyle = !isNullOrUndefined(setStyle) ? (setStyle + this.htmlAttributes[\"\" + key]) :\n this.htmlAttributes[\"\" + key];\n this.textboxWrapper.container.setAttribute(key, setStyle);\n }\n else {\n this.textboxWrapper.container.setAttribute(key, this.htmlAttributes[\"\" + key]);\n }\n }\n }\n }\n };\n TextBox.prototype.updateHTMLAttrToElement = function () {\n if (!isNullOrUndefined(this.htmlAttributes)) {\n for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) {\n var key = _a[_i];\n if (containerAttr.indexOf(key) < 0) {\n this.multiline && !isNullOrUndefined(this.textarea) ? this.textarea.setAttribute(key, this.htmlAttributes[\"\" + key]) : this.element.setAttribute(key, this.htmlAttributes[\"\" + key]);\n }\n }\n }\n };\n TextBox.prototype.updateCssClass = function (newClass, oldClass) {\n Input.setCssClass(this.getInputValidClassList(newClass), [this.textboxWrapper.container], this.getInputValidClassList(oldClass));\n };\n TextBox.prototype.getInputValidClassList = function (inputClassName) {\n var result = inputClassName;\n if (!isNullOrUndefined(inputClassName) && inputClassName !== '') {\n result = (inputClassName.replace(/\\s+/g, ' ')).trim();\n }\n return result;\n };\n TextBox.prototype.setInitialValue = function () {\n if (!this.isAngular) {\n this.respectiveElement.setAttribute('value', this.initialValue);\n }\n };\n TextBox.prototype.wireEvents = function () {\n EventHandler.add(this.respectiveElement, 'focus', this.focusHandler, this);\n EventHandler.add(this.respectiveElement, 'blur', this.focusOutHandler, this);\n EventHandler.add(this.respectiveElement, 'input', this.inputHandler, this);\n EventHandler.add(this.respectiveElement, 'change', this.changeHandler, this);\n if (this.isForm) {\n EventHandler.add(this.formElement, 'reset', this.resetForm, this);\n }\n this.bindClearEvent();\n if (!isNullOrUndefined(this.textboxWrapper.container.querySelector('.e-float-text')) && this.floatLabelType === 'Auto'\n && this.textboxWrapper.container.classList.contains('e-autofill') &&\n this.textboxWrapper.container.classList.contains('e-outline')) {\n EventHandler.add((this.textboxWrapper.container.querySelector('.e-float-text')), 'animationstart', this.animationHandler, this);\n }\n };\n TextBox.prototype.animationHandler = function () {\n this.textboxWrapper.container.classList.add('e-valid-input');\n var label = this.textboxWrapper.container.querySelector('.e-float-text');\n if (!isNullOrUndefined(label)) {\n label.classList.add('e-label-top');\n if (label.classList.contains('e-label-bottom')) {\n label.classList.remove('e-label-bottom');\n }\n }\n };\n TextBox.prototype.resetValue = function (value) {\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.value = value;\n this.isProtectedOnChange = prevOnChange;\n };\n TextBox.prototype.resetForm = function () {\n if (this.isAngular) {\n this.resetValue('');\n }\n else {\n this.resetValue(this.initialValue);\n }\n if (!isNullOrUndefined(this.textboxWrapper)) {\n var label = this.textboxWrapper.container.querySelector('.e-float-text');\n if (!isNullOrUndefined(label) && this.floatLabelType !== 'Always') {\n if ((isNullOrUndefined(this.initialValue) || this.initialValue === '')) {\n label.classList.add('e-label-bottom');\n label.classList.remove('e-label-top');\n }\n else if (this.initialValue !== '') {\n label.classList.add('e-label-top');\n label.classList.remove('e-label-bottom');\n }\n }\n }\n };\n TextBox.prototype.focusHandler = function (args) {\n var eventArgs = {\n container: this.textboxWrapper.container,\n event: args,\n value: this.value\n };\n this.trigger('focus', eventArgs);\n };\n TextBox.prototype.focusOutHandler = function (args) {\n if (!(this.previousValue === null && this.value === null && this.respectiveElement.value === '') &&\n (this.previousValue !== this.value)) {\n this.raiseChangeEvent(args, true);\n }\n var eventArgs = {\n container: this.textboxWrapper.container,\n event: args,\n value: this.value\n };\n this.trigger('blur', eventArgs);\n };\n TextBox.prototype.inputHandler = function (args) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-this-alias\n var textboxObj = this;\n var eventArgs = {\n event: args,\n value: this.respectiveElement.value,\n previousValue: this.inputPreviousValue,\n container: this.textboxWrapper.container\n };\n this.inputPreviousValue = this.respectiveElement.value;\n /* istanbul ignore next */\n if (this.isAngular) {\n textboxObj.localChange({ value: this.respectiveElement.value });\n this.preventChange = true;\n }\n if (this.isVue) {\n this.preventChange = true;\n }\n this.trigger('input', eventArgs);\n args.stopPropagation();\n };\n TextBox.prototype.changeHandler = function (args) {\n this.setProperties({ value: this.respectiveElement.value }, true);\n if (this.previousValue != this.value) {\n this.raiseChangeEvent(args, true);\n }\n args.stopPropagation();\n };\n TextBox.prototype.raiseChangeEvent = function (event, interaction) {\n var eventArgs = {\n event: event,\n value: this.value,\n previousValue: this.previousValue,\n container: this.textboxWrapper.container,\n isInteraction: interaction ? interaction : false,\n isInteracted: interaction ? interaction : false\n };\n this.preventChange = false;\n this.trigger('change', eventArgs);\n this.previousValue = this.value;\n //EJ2CORE-738:For this task we update the textarea value to the input when input tag with multiline is present\n if (this.element.tagName === 'INPUT' && this.multiline && Browser.info.name === 'mozilla') {\n this.element.value = this.respectiveElement.value;\n }\n };\n TextBox.prototype.bindClearEvent = function () {\n if (this.showClearButton && this.respectiveElement.tagName !== 'TEXTAREA') {\n if (this.enabled) {\n EventHandler.add(this.textboxWrapper.clearButton, 'mousedown touchstart', this.resetInputHandler, this);\n }\n else {\n EventHandler.remove(this.textboxWrapper.clearButton, 'mousedown touchstart', this.resetInputHandler);\n }\n }\n };\n TextBox.prototype.resetInputHandler = function (event) {\n event.preventDefault();\n if (!(this.textboxWrapper.clearButton.classList.contains(HIDE_CLEAR)) || this.textboxWrapper.container.classList.contains('e-static-clear')) {\n Input.setValue('', this.respectiveElement, this.floatLabelType, this.showClearButton);\n if (this.isHiddenInput) {\n this.element.value = this.respectiveElement.value;\n }\n this.setProperties({ value: this.respectiveElement.value }, true);\n var eventArgs = {\n event: event,\n value: this.respectiveElement.value,\n previousValue: this.inputPreviousValue,\n container: this.textboxWrapper.container\n };\n this.trigger('input', eventArgs);\n this.inputPreviousValue = this.respectiveElement.value;\n this.raiseChangeEvent(event, true);\n if (closest(this.element, 'form')) {\n var element = this.element;\n var keyupEvent = document.createEvent('KeyboardEvent');\n keyupEvent.initEvent('keyup', false, true);\n element.dispatchEvent(keyupEvent);\n }\n }\n };\n TextBox.prototype.unWireEvents = function () {\n EventHandler.remove(this.respectiveElement, 'focus', this.focusHandler);\n EventHandler.remove(this.respectiveElement, 'blur', this.focusOutHandler);\n EventHandler.remove(this.respectiveElement, 'input', this.inputHandler);\n EventHandler.remove(this.respectiveElement, 'change', this.changeHandler);\n if (this.isForm) {\n EventHandler.remove(this.formElement, 'reset', this.resetForm);\n }\n if (!isNullOrUndefined(this.textboxWrapper.container.querySelector('.e-float-text')) && this.floatLabelType === 'Auto'\n && this.textboxWrapper.container.classList.contains('e-outline') &&\n this.textboxWrapper.container.classList.contains('e-autofill')) {\n EventHandler.remove((this.textboxWrapper.container.querySelector('.e-float-text')), 'animationstart', this.animationHandler);\n }\n };\n /**\n * Removes the component from the DOM and detaches all its related event handlers.\n * Also, it maintains the initial TextBox element from the DOM.\n *\n * @method destroy\n * @returns {void}\n */\n TextBox.prototype.destroy = function () {\n this.unWireEvents();\n if (this.element.tagName === 'INPUT' && this.multiline) {\n detach(this.textboxWrapper.container.getElementsByTagName('textarea')[0]);\n this.respectiveElement = this.element;\n this.element.removeAttribute('type');\n }\n this.respectiveElement.value = this.respectiveElement.defaultValue;\n this.respectiveElement.classList.remove('e-input');\n this.removeAttributes(['aria-disabled', 'aria-readonly', 'aria-labelledby']);\n if (!isNullOrUndefined(this.textboxWrapper)) {\n this.textboxWrapper.container.insertAdjacentElement('afterend', this.respectiveElement);\n detach(this.textboxWrapper.container);\n }\n this.textboxWrapper = null;\n Input.destroy();\n _super.prototype.destroy.call(this);\n };\n /**\n * Adding the icons to the TextBox component.\n *\n * @param { string } position - Specify the icon placement on the TextBox. Possible values are append and prepend.\n * @param { string | string[] } icons - Icon classes which are need to add to the span element which is going to created.\n * Span element acts as icon or button element for TextBox.\n * @returns {void}\n */\n TextBox.prototype.addIcon = function (position, icons) {\n Input.addIcon(position, icons, this.textboxWrapper.container, this.respectiveElement, this.createElement);\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-returns */\n /**\n * Gets the properties to be maintained in the persisted state.\n *\n */\n TextBox.prototype.getPersistData = function () {\n var keyEntity = ['value'];\n return this.addOnPersist(keyEntity);\n };\n /* eslint-enable valid-jsdoc, jsdoc/require-returns */\n /**\n * Adding the multiple attributes as key-value pair to the TextBox element.\n *\n * @param {string} attributes - Specifies the attributes to be add to TextBox element.\n * @returns {void}\n */\n TextBox.prototype.addAttributes = function (attributes) {\n for (var _i = 0, _a = Object.keys(attributes); _i < _a.length; _i++) {\n var key = _a[_i];\n if (key === 'disabled') {\n this.setProperties({ enabled: false }, true);\n Input.setEnabled(this.enabled, this.respectiveElement, this.floatLabelType, this.textboxWrapper.container);\n }\n else if (key === 'readonly') {\n this.setProperties({ readonly: true }, true);\n Input.setReadonly(this.readonly, this.respectiveElement);\n }\n else if (key === 'class') {\n this.respectiveElement.classList.add(attributes[\"\" + key]);\n }\n else if (key === 'placeholder') {\n this.setProperties({ placeholder: attributes[\"\" + key] }, true);\n Input.setPlaceholder(this.placeholder, this.respectiveElement);\n }\n else if (key === 'rows' && this.respectiveElement.tagName === 'TEXTAREA') {\n this.respectiveElement.setAttribute(key, attributes[\"\" + key]);\n }\n else {\n this.respectiveElement.setAttribute(key, attributes[\"\" + key]);\n }\n }\n };\n /**\n * Removing the multiple attributes as key-value pair to the TextBox element.\n *\n * @param { string[] } attributes - Specifies the attributes name to be removed from TextBox element.\n * @returns {void}\n */\n TextBox.prototype.removeAttributes = function (attributes) {\n for (var _i = 0, attributes_1 = attributes; _i < attributes_1.length; _i++) {\n var key = attributes_1[_i];\n if (key === 'disabled') {\n this.setProperties({ enabled: true }, true);\n Input.setEnabled(this.enabled, this.respectiveElement, this.floatLabelType, this.textboxWrapper.container);\n }\n else if (key === 'readonly') {\n this.setProperties({ readonly: false }, true);\n Input.setReadonly(this.readonly, this.respectiveElement);\n }\n else if (key === 'placeholder') {\n this.setProperties({ placeholder: null }, true);\n Input.setPlaceholder(this.placeholder, this.respectiveElement);\n }\n else {\n this.respectiveElement.removeAttribute(key);\n }\n }\n };\n /**\n * Sets the focus to widget for interaction.\n *\n * @returns {void}\n */\n TextBox.prototype.focusIn = function () {\n if (document.activeElement !== this.respectiveElement && this.enabled) {\n this.respectiveElement.focus();\n if (this.textboxWrapper.container.classList.contains('e-input-group')\n || this.textboxWrapper.container.classList.contains('e-outline')\n || this.textboxWrapper.container.classList.contains('e-filled')) {\n addClass([this.textboxWrapper.container], [TEXTBOX_FOCUS]);\n }\n }\n };\n /**\n * Remove the focus from widget, if the widget is in focus state.\n *\n * @returns {void}\n */\n TextBox.prototype.focusOut = function () {\n if (document.activeElement === this.respectiveElement && this.enabled) {\n this.respectiveElement.blur();\n if (this.textboxWrapper.container.classList.contains('e-input-group')\n || this.textboxWrapper.container.classList.contains('e-outline')\n || this.textboxWrapper.container.classList.contains('e-filled')) {\n removeClass([this.textboxWrapper.container], [TEXTBOX_FOCUS]);\n }\n }\n };\n __decorate([\n Property('text')\n ], TextBox.prototype, \"type\", void 0);\n __decorate([\n Property(false)\n ], TextBox.prototype, \"readonly\", void 0);\n __decorate([\n Property(null)\n ], TextBox.prototype, \"value\", void 0);\n __decorate([\n Property('Never')\n ], TextBox.prototype, \"floatLabelType\", void 0);\n __decorate([\n Property('')\n ], TextBox.prototype, \"cssClass\", void 0);\n __decorate([\n Property(null)\n ], TextBox.prototype, \"placeholder\", void 0);\n __decorate([\n Property('on')\n ], TextBox.prototype, \"autocomplete\", void 0);\n __decorate([\n Property({})\n ], TextBox.prototype, \"htmlAttributes\", void 0);\n __decorate([\n Property(false)\n ], TextBox.prototype, \"multiline\", void 0);\n __decorate([\n Property(true)\n ], TextBox.prototype, \"enabled\", void 0);\n __decorate([\n Property(false)\n ], TextBox.prototype, \"showClearButton\", void 0);\n __decorate([\n Property(false)\n ], TextBox.prototype, \"enablePersistence\", void 0);\n __decorate([\n Property(null)\n ], TextBox.prototype, \"width\", void 0);\n __decorate([\n Event()\n ], TextBox.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], TextBox.prototype, \"destroyed\", void 0);\n __decorate([\n Event()\n ], TextBox.prototype, \"change\", void 0);\n __decorate([\n Event()\n ], TextBox.prototype, \"blur\", void 0);\n __decorate([\n Event()\n ], TextBox.prototype, \"focus\", void 0);\n __decorate([\n Event()\n ], TextBox.prototype, \"input\", void 0);\n TextBox = __decorate([\n NotifyPropertyChanges\n ], TextBox);\n return TextBox;\n}(Component));\nexport { TextBox };\n","/**\n * Matrix module is used to transform points based on offsets, angle\n */\n/** @private */\nexport var MatrixTypes;\n(function (MatrixTypes) {\n MatrixTypes[MatrixTypes[\"Identity\"] = 0] = \"Identity\";\n MatrixTypes[MatrixTypes[\"Translation\"] = 1] = \"Translation\";\n MatrixTypes[MatrixTypes[\"Scaling\"] = 2] = \"Scaling\";\n MatrixTypes[MatrixTypes[\"Unknown\"] = 4] = \"Unknown\";\n})(MatrixTypes || (MatrixTypes = {}));\n/** @private */\nvar Matrix = /** @class */ (function () {\n function Matrix(m11, m12, m21, m22, offsetX, offsetY, type) {\n this.m11 = m11;\n this.m12 = m12;\n this.m21 = m21;\n this.m22 = m22;\n this.offsetX = offsetX;\n this.offsetY = offsetY;\n // if (type === undefined) {\n // this.type = MatrixTypes.Unknown;\n // } else {\n // this.type = type;\n // }\n this.type = type;\n }\n return Matrix;\n}());\nexport { Matrix };\n/** @private */\nexport function identityMatrix() {\n return new Matrix(1, 0, 0, 1, 0, 0, MatrixTypes.Identity);\n}\n/** @private */\nexport function transformPointByMatrix(matrix, point) {\n var pt = multiplyPoint(matrix, point.x, point.y);\n return { x: Math.round(pt.x * 100) / 100, y: Math.round(pt.y * 100) / 100 };\n}\n/** @private */\nexport function transformPointsByMatrix(matrix, points) {\n var transformedPoints = [];\n for (var _i = 0, points_1 = points; _i < points_1.length; _i++) {\n var point = points_1[_i];\n transformedPoints.push(transformPointByMatrix(matrix, point));\n }\n return transformedPoints;\n}\n/** @private */\nexport function rotateMatrix(matrix, angle, centerX, centerY) {\n angle %= 360.0;\n multiplyMatrix(matrix, createRotationRadians(angle * 0.017453292519943295, centerX ? centerX : 0, centerY ? centerY : 0));\n}\n/** @private */\nexport function scaleMatrix(matrix, scaleX, scaleY, centerX, centerY) {\n if (centerX === void 0) { centerX = 0; }\n if (centerY === void 0) { centerY = 0; }\n multiplyMatrix(matrix, createScaling(scaleX, scaleY, centerX, centerY));\n}\n/** @private */\nexport function translateMatrix(matrix, offsetX, offsetY) {\n if (matrix.type & MatrixTypes.Identity) {\n matrix.type = MatrixTypes.Translation;\n setMatrix(matrix, 1.0, 0.0, 0.0, 1.0, offsetX, offsetY);\n return;\n }\n if (matrix.type & MatrixTypes.Unknown) {\n matrix.offsetX += offsetX;\n matrix.offsetY += offsetY;\n return;\n }\n matrix.offsetX += offsetX;\n matrix.offsetY += offsetY;\n matrix.type |= MatrixTypes.Translation;\n}\n/** @private */\nfunction createScaling(scaleX, scaleY, centerX, centerY) {\n var result = identityMatrix();\n result.type = !(centerX || centerY) ? MatrixTypes.Scaling : MatrixTypes.Scaling | MatrixTypes.Translation;\n setMatrix(result, scaleX, 0.0, 0.0, scaleY, centerX - scaleX * centerX, centerY - scaleY * centerY);\n return result;\n}\n/** @private */\nfunction createRotationRadians(angle, centerX, centerY) {\n var result = identityMatrix();\n var num = Math.sin(angle);\n var num2 = Math.cos(angle);\n var offsetX = centerX * (1.0 - num2) + centerY * num;\n var offsetY = centerY * (1.0 - num2) - centerX * num;\n result.type = MatrixTypes.Unknown;\n setMatrix(result, num2, num, -num, num2, offsetX, offsetY);\n return result;\n}\n/** @private */\nfunction multiplyPoint(matrix, x, y) {\n switch (matrix.type) {\n case MatrixTypes.Identity: break;\n case MatrixTypes.Translation:\n x += matrix.offsetX;\n y += matrix.offsetY;\n break;\n case MatrixTypes.Scaling:\n x *= matrix.m11;\n y *= matrix.m22;\n break;\n case MatrixTypes.Translation | MatrixTypes.Scaling:\n x *= matrix.m11;\n x += matrix.offsetX;\n y *= matrix.m22;\n y += matrix.offsetY;\n break;\n default:\n var num = y * matrix.m21 + matrix.offsetX;\n var num2 = x * matrix.m12 + matrix.offsetY;\n x *= matrix.m11;\n x += num;\n y *= matrix.m22;\n y += num2;\n break;\n }\n return { x: x, y: y };\n}\n/** @private */\nexport function multiplyMatrix(matrix1, matrix2) {\n var type = matrix1.type;\n var type2 = matrix2.type;\n if (type2 === MatrixTypes.Identity) {\n return;\n }\n if (type === MatrixTypes.Identity) {\n assignMatrix(matrix1, matrix2);\n matrix1.type = matrix2.type;\n return;\n }\n if (type2 === MatrixTypes.Translation) {\n matrix1.offsetX += matrix2.offsetX;\n matrix1.offsetY += matrix2.offsetY;\n if (type !== MatrixTypes.Unknown) {\n matrix1.type |= MatrixTypes.Translation;\n }\n return;\n }\n if (type !== MatrixTypes.Translation) {\n var num = type << 4 | type2;\n switch (num) {\n case 34:\n matrix1.m11 *= matrix2.m11;\n matrix1.m22 *= matrix2.m22;\n return;\n case 35:\n matrix1.m11 *= matrix2.m11;\n matrix1.m22 *= matrix2.m22;\n matrix1.offsetX = matrix2.offsetX;\n matrix1.offsetY = matrix2.offsetY;\n matrix1.type = (MatrixTypes.Translation | MatrixTypes.Scaling);\n return;\n case 36: break;\n default:\n {\n switch (num) {\n case 50:\n matrix1.m11 *= matrix2.m11;\n matrix1.m22 *= matrix2.m22;\n matrix1.offsetX *= matrix2.m11;\n matrix1.offsetY *= matrix2.m22;\n return;\n case 51:\n matrix1.m11 *= matrix2.m11;\n matrix1.m22 *= matrix2.m22;\n matrix1.offsetX = matrix2.m11 * matrix1.offsetX + matrix2.offsetX;\n matrix1.offsetY = matrix2.m22 * matrix1.offsetY + matrix2.offsetY;\n return;\n case 52: break;\n default:\n switch (num) {\n case 66:\n case 67:\n case 68: break;\n default: return;\n }\n break;\n }\n break;\n }\n }\n var result = identityMatrix();\n var m11New = matrix1.m11 * matrix2.m11 + matrix1.m12 * matrix2.m21;\n var m12New = matrix1.m11 * matrix2.m12 + matrix1.m12 * matrix2.m22;\n var m21New = matrix1.m21 * matrix2.m11 + matrix1.m22 * matrix2.m21;\n var m22New = matrix1.m21 * matrix2.m12 + matrix1.m22 * matrix2.m22;\n var offsetX_1 = matrix1.offsetX * matrix2.m11 + matrix1.offsetY * matrix2.m21 + matrix2.offsetX;\n var offsetY_1 = matrix1.offsetX * matrix2.m12 + matrix1.offsetY * matrix2.m22 + matrix2.offsetY;\n setMatrix(result, m11New, m12New, m21New, m22New, offsetX_1, offsetY_1);\n if (result.m21 || result.m12) {\n result.type = MatrixTypes.Unknown;\n }\n else {\n if (result.m11 && result.m11 !== 1.0 || result.m22 && result.m22 !== 1.0) {\n result.type = MatrixTypes.Scaling;\n }\n if (result.offsetX || result.offsetY) {\n result.type |= MatrixTypes.Translation;\n }\n if ((result.type & (MatrixTypes.Translation | MatrixTypes.Scaling)) === MatrixTypes.Identity) {\n result.type = MatrixTypes.Identity;\n }\n result.type = MatrixTypes.Scaling | MatrixTypes.Translation;\n }\n assignMatrix(matrix1, result);\n matrix1.type = result.type;\n return;\n }\n var offsetX = matrix1.offsetX;\n var offsetY = matrix1.offsetY;\n matrix1.offsetX = offsetX * matrix2.m11 + offsetY * matrix2.m21 + matrix2.offsetX;\n matrix1.offsetY = offsetX * matrix2.m12 + offsetY * matrix2.m22 + matrix2.offsetY;\n if (type2 === MatrixTypes.Unknown) {\n matrix1.type = MatrixTypes.Unknown;\n return;\n }\n matrix1.type = (MatrixTypes.Translation | MatrixTypes.Scaling);\n}\n/** @private */\nfunction setMatrix(mat, m11, m12, m21, m22, x, y) {\n mat.m11 = m11;\n mat.m12 = m12;\n mat.m21 = m21;\n mat.m22 = m22;\n mat.offsetX = x;\n mat.offsetY = y;\n}\n/** @private */\nfunction assignMatrix(matrix1, matrix2) {\n matrix1.m11 = matrix2.m11;\n matrix1.m12 = matrix2.m12;\n matrix1.m21 = matrix2.m21;\n matrix1.m22 = matrix2.m22;\n matrix1.offsetX = matrix2.offsetX;\n matrix1.offsetY = matrix2.offsetY;\n matrix1.type = matrix2.type;\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, ChildProperty } from '@syncfusion/ej2-base';\n/**\n * Defines and processes coordinates\n */\nvar Point = /** @class */ (function (_super) {\n __extends(Point, _super);\n function Point() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /** @private */\n Point.equals = function (point1, point2) {\n if (point1 === point2) {\n return true;\n }\n if (!point1 || !point2) {\n return false;\n }\n return !point1 || !point2 || point1.x === point2.x && point1.y === point2.y;\n };\n /**\n * check whether the points are given\n */\n Point.isEmptyPoint = function (point) {\n if (point.x && point.y) {\n return false;\n }\n return true;\n };\n /** @private */\n Point.transform = function (point, angle, length) {\n var pt = { x: 0, y: 0 };\n pt.x = Math.round((point.x + length * Math.cos(angle * Math.PI / 180)) * 100) / 100;\n pt.y = Math.round((point.y + length * Math.sin(angle * Math.PI / 180)) * 100) / 100;\n return pt;\n };\n /** @private */\n Point.findLength = function (s, e) {\n var length = Math.sqrt(Math.pow((s.x - e.x), 2) + Math.pow((s.y - e.y), 2));\n return length;\n };\n /** @private */\n Point.findAngle = function (point1, point2) {\n var angle = Math.atan2(point2.y - point1.y, point2.x - point1.x);\n angle = (180 * angle / Math.PI);\n angle %= 360;\n if (angle < 0) {\n angle += 360;\n }\n return angle;\n };\n /** @private */\n Point.distancePoints = function (pt1, pt2) {\n return Math.sqrt(Math.pow(pt2.x - pt1.x, 2) + Math.pow(pt2.y - pt1.y, 2));\n };\n /** @private */\n Point.getLengthFromListOfPoints = function (points) {\n var length = 0;\n for (var j = 0; j < points.length - 1; j++) {\n length += this.distancePoints(points[parseInt(j.toString(), 10)], points[j + 1]);\n }\n return length;\n };\n /** @private */\n Point.adjustPoint = function (source, target, isStart, length) {\n var pt = isStart ? { x: source.x, y: source.y } : { x: target.x, y: target.y };\n var angle;\n if (source.x === target.x) {\n if (source.y < target.y && isStart || source.y > target.y && !isStart) {\n pt.y += length;\n }\n else {\n pt.y -= length;\n }\n }\n else if (source.y === target.y) {\n if (source.x < target.x && isStart || source.x > target.x && !isStart) {\n pt.x += length;\n }\n else {\n pt.x -= length;\n }\n }\n else {\n if (isStart) {\n angle = this.findAngle(source, target);\n pt = this.transform(source, angle, length);\n }\n else {\n angle = this.findAngle(target, source);\n pt = this.transform(target, angle, length);\n }\n }\n return pt;\n };\n /** @private */\n Point.direction = function (pt1, pt2) {\n if (Math.abs(pt2.x - pt1.x) > Math.abs(pt2.y - pt1.y)) {\n return pt1.x < pt2.x ? 'Right' : 'Left';\n }\n else {\n return pt1.y < pt2.y ? 'Bottom' : 'Top';\n }\n };\n /**\n * @private\n * Returns the name of class Point\n */\n Point.prototype.getClassName = function () {\n return 'Point';\n };\n __decorate([\n Property(0)\n ], Point.prototype, \"x\", void 0);\n __decorate([\n Property(0)\n ], Point.prototype, \"y\", void 0);\n return Point;\n}(ChildProperty));\nexport { Point };\n","/**\n * Enum for comment status of the annotation\n */\nexport var CommentStatus;\n(function (CommentStatus) {\n CommentStatus[CommentStatus[\"None\"] = 1] = \"None\";\n CommentStatus[CommentStatus[\"Accepted\"] = 2] = \"Accepted\";\n CommentStatus[CommentStatus[\"Canceled\"] = 3] = \"Canceled\";\n CommentStatus[CommentStatus[\"Completed\"] = 4] = \"Completed\";\n CommentStatus[CommentStatus[\"Rejected\"] = 5] = \"Rejected\";\n})(CommentStatus || (CommentStatus = {}));\n/**\n * Enum for font styles\n */\nexport var FontStyle;\n(function (FontStyle) {\n FontStyle[FontStyle[\"None\"] = 0] = \"None\";\n FontStyle[FontStyle[\"Bold\"] = 1] = \"Bold\";\n FontStyle[FontStyle[\"Italic\"] = 2] = \"Italic\";\n FontStyle[FontStyle[\"Underline\"] = 4] = \"Underline\";\n FontStyle[FontStyle[\"Strikethrough\"] = 8] = \"Strikethrough\";\n})(FontStyle || (FontStyle = {}));\n/**\n * Enum for context menu items\n */\nexport var ContextMenuItem;\n(function (ContextMenuItem) {\n ContextMenuItem[ContextMenuItem[\"Copy\"] = 0] = \"Copy\";\n ContextMenuItem[ContextMenuItem[\"Highlight\"] = 1] = \"Highlight\";\n ContextMenuItem[ContextMenuItem[\"Cut\"] = 2] = \"Cut\";\n ContextMenuItem[ContextMenuItem[\"Underline\"] = 4] = \"Underline\";\n ContextMenuItem[ContextMenuItem[\"Paste\"] = 8] = \"Paste\";\n ContextMenuItem[ContextMenuItem[\"Delete\"] = 16] = \"Delete\";\n ContextMenuItem[ContextMenuItem[\"ScaleRatio\"] = 32] = \"ScaleRatio\";\n ContextMenuItem[ContextMenuItem[\"Strikethrough\"] = 64] = \"Strikethrough\";\n ContextMenuItem[ContextMenuItem[\"Properties\"] = 128] = \"Properties\";\n ContextMenuItem[ContextMenuItem[\"Comment\"] = 256] = \"Comment\";\n})(ContextMenuItem || (ContextMenuItem = {}));\n/**\n * Enum for signature type\n */\nexport var SignatureType;\n(function (SignatureType) {\n SignatureType[\"Draw\"] = \"Draw\";\n SignatureType[\"Type\"] = \"Type\";\n SignatureType[\"Image\"] = \"Image\";\n})(SignatureType || (SignatureType = {}));\n/**\n * Enum for annotation resizer location\n */\nexport var AnnotationResizerLocation;\n(function (AnnotationResizerLocation) {\n AnnotationResizerLocation[AnnotationResizerLocation[\"Corners\"] = 1] = \"Corners\";\n AnnotationResizerLocation[AnnotationResizerLocation[\"Edges\"] = 2] = \"Edges\";\n})(AnnotationResizerLocation || (AnnotationResizerLocation = {}));\n/**\n * Enum for displaying the signature dialog\n */\nexport var DisplayMode;\n(function (DisplayMode) {\n /** Draw - Display only the draw option in the signature dialog. */\n DisplayMode[DisplayMode[\"Draw\"] = 1] = \"Draw\";\n /** Text - Display only the type option in the signature dialog. */\n DisplayMode[DisplayMode[\"Text\"] = 2] = \"Text\";\n /** Upload - Display only the upload option in the signature dialog. */\n DisplayMode[DisplayMode[\"Upload\"] = 4] = \"Upload\";\n})(DisplayMode || (DisplayMode = {}));\n/**\n * Enum for cursor type\n */\nexport var CursorType;\n(function (CursorType) {\n CursorType[\"auto\"] = \"auto\";\n CursorType[\"crossHair\"] = \"crosshair\";\n // eslint-disable-next-line\n CursorType[\"e_resize\"] = \"e-resize\";\n // eslint-disable-next-line\n CursorType[\"ew_resize\"] = \"ew-resize\";\n CursorType[\"grab\"] = \"grab\";\n CursorType[\"grabbing\"] = \"grabbing\";\n CursorType[\"move\"] = \"move\";\n // eslint-disable-next-line\n CursorType[\"n_resize\"] = \"n-resize\";\n // eslint-disable-next-line\n CursorType[\"ne_resize\"] = \"ne-resize\";\n // eslint-disable-next-line\n CursorType[\"ns_resize\"] = \"ns-resize\";\n // eslint-disable-next-line\n CursorType[\"nw_resize\"] = \"nw-resize\";\n CursorType[\"pointer\"] = \"pointer\";\n // eslint-disable-next-line\n CursorType[\"s_resize\"] = \"s-resize\";\n // eslint-disable-next-line\n CursorType[\"se_resize\"] = \"se-resize\";\n // eslint-disable-next-line\n CursorType[\"sw_resize\"] = \"sw-resize\";\n CursorType[\"text\"] = \"text\";\n // eslint-disable-next-line\n CursorType[\"w_resize\"] = \"w-resize\";\n})(CursorType || (CursorType = {}));\n/**\n * Enum type for Dynamic Stamp Items\n */\nexport var DynamicStampItem;\n(function (DynamicStampItem) {\n DynamicStampItem[\"Revised\"] = \"Revised\";\n DynamicStampItem[\"Reviewed\"] = \"Reviewed\";\n DynamicStampItem[\"Received\"] = \"Received\";\n DynamicStampItem[\"Approved\"] = \"Approved\";\n DynamicStampItem[\"Confidential\"] = \"Confidential\";\n DynamicStampItem[\"NotApproved\"] = \"NotApproved\";\n})(DynamicStampItem || (DynamicStampItem = {}));\n/**\n * Enum type for Sign Stamp Items\n */\nexport var SignStampItem;\n(function (SignStampItem) {\n SignStampItem[\"Witness\"] = \"Witness\";\n SignStampItem[\"InitialHere\"] = \"InitialHere\";\n SignStampItem[\"SignHere\"] = \"SignHere\";\n SignStampItem[\"Accepted\"] = \"Accepted\";\n SignStampItem[\"Rejected\"] = \"Rejected\";\n})(SignStampItem || (SignStampItem = {}));\n/**\n * Enum type for Standard Business Stamp Items\n */\nexport var StandardBusinessStampItem;\n(function (StandardBusinessStampItem) {\n StandardBusinessStampItem[\"Approved\"] = \"Approved\";\n StandardBusinessStampItem[\"NotApproved\"] = \"NotApproved\";\n StandardBusinessStampItem[\"Draft\"] = \"Draft\";\n StandardBusinessStampItem[\"Final\"] = \"Final\";\n StandardBusinessStampItem[\"Completed\"] = \"Completed\";\n StandardBusinessStampItem[\"Confidential\"] = \"Confidential\";\n StandardBusinessStampItem[\"ForPublicRelease\"] = \"ForPublicRelease\";\n StandardBusinessStampItem[\"NotForPublicRelease\"] = \"NotForPublicRelease\";\n StandardBusinessStampItem[\"ForComment\"] = \"ForComment\";\n StandardBusinessStampItem[\"Void\"] = \"Void\";\n StandardBusinessStampItem[\"PreliminaryResults\"] = \"PreliminaryResults\";\n StandardBusinessStampItem[\"InformationOnly\"] = \"InformationOnly\";\n})(StandardBusinessStampItem || (StandardBusinessStampItem = {}));\n/**\n * Enum type for allowed interactions for locked annotations\n */\nexport var AllowedInteraction;\n(function (AllowedInteraction) {\n AllowedInteraction[\"Select\"] = \"Select\";\n AllowedInteraction[\"Move\"] = \"Move\";\n AllowedInteraction[\"Resize\"] = \"Resize\";\n AllowedInteraction[\"Delete\"] = \"Delete\";\n AllowedInteraction[\"None\"] = \"None\";\n AllowedInteraction[\"PropertyChange\"] = \"PropertyChange\";\n})(AllowedInteraction || (AllowedInteraction = {}));\n/**\n * Enum type for export annotation file types\n */\nexport var AnnotationDataFormat;\n(function (AnnotationDataFormat) {\n AnnotationDataFormat[\"Json\"] = \"Json\";\n AnnotationDataFormat[\"Xfdf\"] = \"Xfdf\";\n})(AnnotationDataFormat || (AnnotationDataFormat = {}));\n/**\n * Represents the format type of form data.\n */\nexport var FormFieldDataFormat;\n(function (FormFieldDataFormat) {\n FormFieldDataFormat[\"Xml\"] = \"Xml\";\n FormFieldDataFormat[\"Fdf\"] = \"Fdf\";\n FormFieldDataFormat[\"Xfdf\"] = \"Xfdf\";\n FormFieldDataFormat[\"Json\"] = \"Json\";\n})(FormFieldDataFormat || (FormFieldDataFormat = {}));\n","import { Point, rotateMatrix, identityMatrix, transformPointByMatrix } from '@syncfusion/ej2-drawings';\nimport { getValue } from '@syncfusion/ej2-base';\n/**\n * @param {PdfAnnotationBaseModel} obj - Specified the shape annotation object.\n * @hidden\n * @returns {void}\n */\nexport function isLineShapes(obj) {\n if (obj.shapeAnnotationType === 'Line' || obj.shapeAnnotationType === 'LineWidthArrowHead'\n || obj.shapeAnnotationType === 'Distance' || obj.shapeAnnotationType === 'Polygon') {\n return true;\n }\n return false;\n}\n/**\n * @param {PdfAnnotationBaseModel | PdfFormFieldBaseModel} obj - Specified the annotation or form fields object.\n * @param {DrawingElement} element - Specified the annotation drawing element.\n * @returns {void}\n * @hidden\n */\nexport function setElementStype(obj, element) {\n if (obj && element) {\n if (obj.formFieldAnnotationType) {\n if (obj.id.indexOf('diagram_helper') !== -1) {\n element.style.fill = 'transparent';\n element.style.strokeWidth = 1;\n element.style.strokeDashArray = obj.borderDashArray;\n }\n else {\n element.style.fill = 'transparent';\n element.style.strokeWidth = 0;\n }\n }\n else {\n var fillColor = (obj.fillColor === '#ffffff00' ? 'transparent' : obj.fillColor);\n element.style.fill = fillColor ? fillColor : 'white';\n // eslint-disable-next-line max-len\n element.style.strokeColor = obj.strokeColor ? obj.strokeColor : obj.borderColor;\n // eslint-disable-next-line max-len\n element.style.color = obj.strokeColor ? obj.strokeColor : obj.borderColor;\n element.style.strokeWidth = obj.thickness;\n if (obj.shapeAnnotationType === 'Image' || obj.shapeAnnotationType === 'SignatureText' || obj.shapeAnnotationType === 'SignatureImage') {\n element.style.strokeWidth = 0;\n }\n element.style.strokeDashArray = obj.borderDashArray;\n element.style.opacity = obj.opacity;\n }\n }\n}\n/**\n * @param {PointModel[]} points - Specified the annotation points value.\n * @hidden\n * @returns {number} - Returns the points length.\n */\nexport function findPointsLength(points) {\n var length = 0;\n for (var i = 0; i < points.length - 1; i++) {\n length += Point.findLength(points[parseInt(i.toString(), 10)], points[i + 1]);\n }\n return length;\n}\n/**\n * @param {PointModel[]} points - Specified the annotation points value.\n * @hidden\n * @returns {number} - Returns the points length.\n */\nexport function findPerimeterLength(points) {\n var length = Point.getLengthFromListOfPoints(points);\n return length;\n}\n/**\n * @private\n * @param {DrawingElement} element - Specified the drawing element.\n * @param {Transforms} transform - Specified the transform value.\n * @returns {BaseAttributes} - Returns the base attributes value.\n */\nexport function getBaseShapeAttributes(element, transform) {\n var baseShapeAttributes = {\n width: element.actualSize.width, height: element.actualSize.height,\n x: element.offsetX - element.actualSize.width * element.pivot.x + 0.5,\n y: element.offsetY - element.actualSize.height * element.pivot.y + 0.5,\n angle: element.rotateAngle + element.parentTransform, fill: element.style.fill, stroke: element.style.strokeColor,\n pivotX: element.pivot.x, pivotY: element.pivot.y, strokeWidth: 1,\n opacity: element.style.opacity, dashArray: element.style.strokeDashArray || '',\n visible: element.visible, id: element.id\n };\n if (transform) {\n baseShapeAttributes.x += transform.tx;\n baseShapeAttributes.y += transform.ty;\n }\n return baseShapeAttributes;\n}\n/**\n * Get function\n *\n * @private\n * @param {Function | string} value - Type of the function.\n * @returns {Function} - Returns the function.\n */\nexport function getFunction(value) {\n if (value !== undefined) {\n if (typeof value === 'string') {\n value = getValue(value, window);\n }\n }\n return value;\n}\n/**\n * @private\n * @param {any} obj - Specified the annotation object.\n * @param {Function | string} additionalProp - Specified the annotation additional properties.\n * @param {string} key - Specified the annotation key value.\n * @returns {Object} - Returns the cloned object.\n */\n// eslint-disable-next-line\nexport function cloneObject(obj, additionalProp, key) {\n // eslint-disable-next-line\n var newObject = {};\n var keys = 'properties';\n var prop = 'propName';\n if (obj) {\n key = obj[\"\" + prop];\n var sourceObject = obj[\"\" + keys] || obj;\n var properties = [];\n properties = properties.concat(Object.keys(sourceObject));\n var customProperties = [];\n properties.push('version');\n if (key) {\n var propAdditional = getFunction(additionalProp);\n if (propAdditional) {\n customProperties = propAdditional(key);\n }\n else {\n customProperties = [];\n }\n properties = properties.concat(customProperties);\n }\n var internalProp = getInternalProperties(key);\n properties = properties.concat(internalProp);\n for (var _i = 0, properties_1 = properties; _i < properties_1.length; _i++) {\n var property = properties_1[_i];\n if (property !== 'historyManager') {\n if (property !== 'wrapper') {\n // eslint-disable-next-line\n var isEventEmmitter = obj[property] && obj.hasOwnProperty('observers') ? true : false;\n if (!isEventEmmitter) {\n if (obj[\"\" + property] instanceof Array) {\n newObject[\"\" + property] = cloneArray((internalProp.indexOf(property) === -1 && obj[\"\" + key]) ? obj[\"\" + key][\"\" + property] : obj[\"\" + property], additionalProp, property);\n }\n else if (obj[\"\" + property] instanceof Array === false && obj[\"\" + property] instanceof HTMLElement) {\n newObject[\"\" + property] = obj[\"\" + property].cloneNode(true).innerHtml;\n }\n else if (obj[\"\" + property] instanceof Array === false && obj[\"\" + property] instanceof Object) {\n newObject[\"\" + property] = cloneObject((internalProp.indexOf(property) === -1 && obj[\"\" + key]) ? obj[\"\" + key][\"\" + property] : obj[\"\" + property]);\n }\n else {\n newObject[\"\" + property] = obj[\"\" + property];\n }\n }\n }\n else {\n if (obj[\"\" + property]) {\n newObject[\"\" + property] = {\n actualSize: {\n width: obj[\"\" + property].actualSize.width, height: obj[\"\" + property].actualSize.height\n }, offsetX: obj[\"\" + property].offsetX, offsetY: obj[\"\" + property].offsetY\n };\n }\n }\n }\n }\n }\n return newObject;\n}\n/**\n * @private\n * @param {Object[]} sourceArray - Specified the annotation source collections.\n * @param {Function | string} additionalProp - Specified the annotation additional properties.\n * @param {string} key - Specified the annotation key value.\n * @returns {Object[]} - Returns the cloned object array.\n */\nexport function cloneArray(sourceArray, additionalProp, key) {\n var clonedArray;\n if (sourceArray) {\n clonedArray = [];\n for (var i = 0; i < sourceArray.length; i++) {\n if (sourceArray[parseInt(i.toString(), 10)] instanceof Array) {\n clonedArray.push(sourceArray[parseInt(i.toString(), 10)]);\n }\n else if (sourceArray[parseInt(i.toString(), 10)] instanceof Object) {\n clonedArray.push(cloneObject(sourceArray[parseInt(i.toString(), 10)], additionalProp, key));\n }\n else {\n clonedArray.push(sourceArray[parseInt(i.toString(), 10)]);\n }\n }\n }\n return clonedArray;\n}\n/**\n * @private\n * @param {string} propName - Specified the annotation property name.\n * @returns {string[]} - Returns the internal properties.\n */\nexport function getInternalProperties(propName) {\n switch (propName) {\n case 'nodes':\n case 'children':\n return ['inEdges', 'outEdges', 'parentId', 'processId', 'nodeId', 'umlIndex', 'isPhase', 'isLane'];\n case 'connectors':\n return ['parentId'];\n case 'annotation':\n return ['nodeId'];\n case 'annotations':\n return ['nodeId'];\n case 'shape':\n return ['hasHeader'];\n }\n return [];\n}\n/**\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @param {string} position - Specified the annotation position.\n * @hidden\n * @returns {Leader} - Returns the leader value.\n */\nexport function isLeader(obj, position) {\n var rotatedPoint;\n if (obj.shapeAnnotationType === 'Distance') {\n var leaderCount = 0;\n var newPoint1 = void 0;\n for (var i = 0; i < obj.wrapper.children.length; i++) {\n var angle = Point.findAngle(obj.sourcePoint, obj.targetPoint);\n // eslint-disable-next-line\n var segment = obj.wrapper.children[i];\n if (segment.id.indexOf('leader') > -1) {\n var center = obj.wrapper.children[0].bounds.center;\n if (leaderCount === 0) {\n newPoint1 = { x: obj.sourcePoint.x, y: obj.sourcePoint.y - obj.leaderHeight };\n center = obj.sourcePoint;\n }\n else {\n newPoint1 = { x: obj.targetPoint.x, y: obj.targetPoint.y - obj.leaderHeight };\n center = obj.targetPoint;\n }\n var matrix = identityMatrix();\n rotateMatrix(matrix, angle, center.x, center.y);\n rotatedPoint = transformPointByMatrix(matrix, { x: newPoint1.x, y: newPoint1.y });\n if (position === 'Leader' + leaderCount) {\n return { leader: 'leader' + leaderCount, point: rotatedPoint };\n }\n leaderCount++;\n }\n }\n }\n return { leader: '', point: rotatedPoint };\n}\n","import { createElement, isNullOrUndefined, isBlazor } from '@syncfusion/ej2-base';\nimport { Dialog } from '@syncfusion/ej2-popups';\nimport { splitArrayCollection, processPathData, getPathString } from '@syncfusion/ej2-drawings';\nimport { TextBox } from '@syncfusion/ej2-inputs';\nimport { cloneObject } from '../drawing/drawing-util';\nimport { CheckBox } from '@syncfusion/ej2-buttons';\nimport { Tab } from '@syncfusion/ej2-navigations';\nimport { Button } from '@syncfusion/ej2-buttons';\nimport { DisplayMode } from './types';\n/**\n * @hidden\n */\nvar Signature = /** @class */ (function () {\n /**\n * Initialize the constructor of blazorUIadapater.\n * @private\n * @param { PdfViewer } pdfViewer - Specified PdfViewer class.\n * @param { PdfViewerBase } pdfViewerBase - The pdfViewerBase.\n */\n function Signature(pdfViewer, pdfViewerBase) {\n var _this = this;\n this.mouseMoving = true;\n this.canvasTouched = false;\n this.imageSignatureDataUrl = '';\n this.drawSignatureDataUrl = '';\n // eslint-disable-next-line\n this.newObject = [];\n /**\n * @private\n */\n this.outputString = '';\n /**\n * @private\n */\n this.drawOutputString = '';\n /**\n * @private\n */\n this.imageOutputString = '';\n /**\n * @private\n */\n // eslint-disable-next-line\n this.signaturecollection = [];\n /**\n * @private\n */\n // eslint-disable-next-line\n this.outputcollection = [];\n /**\n * @private\n */\n // eslint-disable-next-line\n this.signAnnotationIndex = [];\n // eslint-disable-next-line\n this.fontsign = [];\n // eslint-disable-next-line\n this.signfontStyle = [];\n this.isSaveSignature = false;\n this.isSaveInitial = false;\n this.isInitialFiledSaveSignature = false;\n this.isSignatureFieldsSaveSignature = false;\n this.issaveTypeSignature = false;\n this.issaveImageSignature = false;\n this.issaveTypeInitial = false;\n this.issaveImageInitial = false;\n this.saveSignatureTypeString = '';\n this.saveInitialTypeString = '';\n this.saveTypeString = '';\n this.signatureTypeString = '';\n this.initialTypeString = '';\n this.saveUploadString = '';\n this.saveSignatureUploadString = '';\n this.saveInitialUploadString = '';\n this.signatureUploadString = '';\n this.initialUploadString = '';\n this.clearUploadString = false;\n this.textValue = '';\n this.signatureDrawString = '';\n this.initialDrawString = '';\n // eslint-disable-next-line\n this.saveSignatureString = '';\n // eslint-disable-next-line\n this.saveInitialString = '';\n /**\n * @private\n */\n // eslint-disable-next-line\n this.saveImageString = '';\n this.signatureImageString = '';\n this.initialImageString = '';\n /**\n * @private\n */\n // eslint-disable-next-line\n this.maxSaveLimit = 5;\n this.select = function (e) {\n if (this.canvasTouched) {\n this.mouseMoving = true;\n this.canvasTouched = false;\n }\n if (e.isSwiped && this.signaturetype == 'Draw' && this.mouseMoving) {\n e.cancel = true;\n this.mouseMoving = false;\n }\n };\n // eslint-disable-next-line\n this.addStampImage = function (args) {\n // eslint-disable-next-line\n var proxy = _this;\n // eslint-disable-next-line\n var upoadedFiles = args.target.files;\n if (args.target.files[0] !== null) {\n var uploadedFile = upoadedFiles[0];\n if (uploadedFile.type.split('/')[0] === 'image') {\n var reader = new FileReader();\n // eslint-disable-next-line\n reader.onload = function (e) {\n // eslint-disable-next-line\n var canvas = document.getElementById(_this.pdfViewer.element.id + '_signatureuploadCanvas_');\n // eslint-disable-next-line\n var context = canvas.getContext('2d');\n // eslint-disable-next-line\n var image = new Image();\n // eslint-disable-next-line\n var proxy = _this;\n image.onload = function () {\n // eslint-disable-next-line\n var signbutton = document.getElementById(_this.pdfViewer.element.id + '_e-pv-upload-button');\n signbutton.style.visibility = 'hidden';\n context.drawImage(image, 0, 0, canvas.width, canvas.height);\n proxy.enableCreateButton(false);\n proxy.outputString = image.src;\n proxy.signatureImageHeight = image.naturalHeight;\n proxy.signatureImageWidth = image.naturalWidth;\n };\n image.src = e.currentTarget.result;\n proxy.outputString = e.currentTarget.result;\n proxy.switchTabImageSignature = e.currentTarget.result;\n };\n reader.readAsDataURL(uploadedFile);\n }\n }\n args.target.value = '';\n args.currentTarget.value = '';\n };\n this.pdfViewer = pdfViewer;\n this.pdfViewerBase = pdfViewerBase;\n }\n /**\n * @private\n * @returns {void}\n */\n Signature.prototype.createSignaturePanel = function () {\n var _this = this;\n var maximumWidth = 750;\n this.imageSignatureDataUrl = \"\";\n this.drawSignatureDataUrl = \"\";\n if (!isBlazor()) {\n var elementID = this.pdfViewer.element.id;\n var dialogDiv = createElement('div', { id: elementID + '_signature_window', className: 'e-pv-signature-window' });\n dialogDiv.style.display = 'block';\n this.pdfViewerBase.pageContainer.appendChild(dialogDiv);\n var appearanceTab = this.createSignatureCanvas();\n var signaturePanelHeader = void 0;\n if (!this.pdfViewerBase.isToolbarSignClicked) {\n if (this.pdfViewerBase.isInitialField) {\n signaturePanelHeader = this.pdfViewer.localeObj.getConstant('HandwrittenInitialDialogHeaderText');\n }\n else {\n signaturePanelHeader = this.pdfViewer.localeObj.getConstant('HandwrittenSignatureDialogHeaderText');\n }\n }\n else {\n if (this.pdfViewerBase.isInitialField) {\n signaturePanelHeader = this.pdfViewer.localeObj.getConstant('InitialFieldDialogHeaderText');\n }\n else {\n signaturePanelHeader = this.pdfViewer.localeObj.getConstant('SignatureFieldDialogHeaderText');\n }\n }\n if (this.signatureDialog) {\n this.signatureDialog.content = appearanceTab;\n }\n else {\n this.signatureDialog = new Dialog({\n // eslint-disable-next-line max-len\n showCloseIcon: true, closeOnEscape: false, isModal: true, header: signaturePanelHeader, cssClass: 'e-pv-signature-dialog-height',\n target: this.pdfViewer.element, content: appearanceTab, width: '750px', visible: true, allowDragging: true,\n beforeClose: function () {\n _this.clearSignatureCanvas();\n _this.signatureDialog.destroy();\n _this.signatureDialog = null;\n if (_this.tabObj) {\n _this.tabObj.destroy();\n }\n // eslint-disable-next-line\n var signatureWindow = document.getElementById(_this.pdfViewer.element.id + '_signature_window');\n if (signatureWindow) {\n // eslint-disable-next-line\n signatureWindow.parentNode ? signatureWindow.parentNode.removeChild(signatureWindow) : signatureWindow.parentElement.removeChild(signatureWindow);\n }\n // eslint-disable-next-line max-len\n if (!_this.pdfViewerBase.isToolbarSignClicked && !_this.pdfViewerBase.drawSignatureWithTool && !isNullOrUndefined(_this.pdfViewer.formFieldsModule.currentTarget)) {\n _this.pdfViewer.fireFocusOutFormField(_this.pdfViewer.formFieldsModule.currentTarget.name, '');\n }\n _this.pdfViewerBase.isToolbarSignClicked = false;\n _this.pdfViewer.formFieldsModule.setFocus();\n }\n });\n this.signatureDialog.buttons = [\n // eslint-disable-next-line max-len\n { buttonModel: { content: this.pdfViewer.localeObj.getConstant('Clear'), disabled: true, cssClass: 'e-pv-clearbtn' }, click: this.clearSignatureCanvas.bind(this) },\n // eslint-disable-next-line max-len\n { buttonModel: { content: this.pdfViewer.localeObj.getConstant('Cancel'), cssClass: 'e-pv-cancelbtn' }, click: this.closeSignaturePanel.bind(this) },\n // eslint-disable-next-line max-len\n { buttonModel: { content: this.pdfViewer.localeObj.getConstant('Create'), isPrimary: true, disabled: true, cssClass: 'e-pv-createbtn' }, click: this.addSignatureInPage.bind(this) }\n ];\n this.signatureDialog.appendTo(dialogDiv);\n }\n if (this.pdfViewer.element.offsetWidth < maximumWidth)\n this.updateCanvasSize();\n if (this.pdfViewer.enableRtl) {\n this.signatureDialog.enableRtl = this.pdfViewer.enableRtl;\n }\n var checkboxItem = this.signatureDialog.content.ej2_instances[0].items[0];\n if (checkboxItem.header.label === 'DRAW') {\n var drawCheckbox = document.getElementById(\"checkbox\");\n this.hideSignatureCheckbox(drawCheckbox);\n }\n else if (checkboxItem.header.label === 'TYPE') {\n var typeCheckbox = document.getElementById(\"checkbox1\");\n this.hideSignatureCheckbox(typeCheckbox);\n }\n else {\n var imageCheckbox = document.getElementById(\"checkbox2\");\n this.hideSignatureCheckbox(imageCheckbox);\n }\n }\n else {\n // eslint-disable-next-line\n var canvas = document.getElementById(this.pdfViewer.element.id + '_signatureCanvas_');\n if (canvas) {\n if (!this.pdfViewerBase.pageContainer.querySelector('.e-pv-signature-window')) {\n var elementID = this.pdfViewer.element.id;\n // eslint-disable-next-line max-len\n var dialogDiv = createElement('div', { id: elementID + '_signature_window', className: 'e-pv-signature-window' });\n dialogDiv.style.display = 'block';\n this.pdfViewerBase.pageContainer.appendChild(dialogDiv);\n }\n canvas.addEventListener('mousedown', this.signaturePanelMouseDown.bind(this));\n canvas.addEventListener('mousemove', this.signaturePanelMouseMove.bind(this));\n canvas.addEventListener('mouseup', this.signaturePanelMouseUp.bind(this));\n canvas.addEventListener('mouseleave', this.signaturePanelMouseUp.bind(this));\n canvas.addEventListener('touchstart', this.signaturePanelMouseDown.bind(this));\n canvas.addEventListener('touchmove', this.signaturePanelMouseMove.bind(this));\n canvas.addEventListener('touchend', this.signaturePanelMouseUp.bind(this));\n this.clearSignatureCanvas();\n }\n this.pdfViewer._dotnetInstance.invokeMethodAsync('OpenSignaturePanel', this.pdfViewerBase.isToolbarSignClicked);\n }\n this.drawSavedSignature();\n };\n Signature.prototype.drawSavedSignature = function () {\n if (!this.pdfViewerBase.isToolbarSignClicked && (this.isSaveSignature || this.isSaveInitial)) {\n if (!this.pdfViewerBase.isInitialField && this.isSaveSignature) {\n this.outputString = this.saveSignatureString;\n }\n else if (this.pdfViewerBase.isInitialField && this.isSaveInitial) {\n this.outputString = this.saveInitialString;\n }\n // eslint-disable-next-line\n var canvas = document.getElementById(this.pdfViewer.element.id + '_signatureCanvas_');\n // eslint-disable-next-line\n var context_1 = canvas.getContext('2d');\n // eslint-disable-next-line\n var image_1 = new Image();\n image_1.onload = function () {\n context_1.drawImage(image_1, 0, 0);\n };\n if (!this.pdfViewerBase.isInitialField && this.isSaveSignature) {\n image_1.src = this.signatureDrawString;\n }\n else if (this.pdfViewerBase.isInitialField && this.isSaveInitial) {\n image_1.src = this.initialDrawString;\n }\n // eslint-disable-next-line\n var checkbox = document.getElementById(this.pdfViewer.element.id + '_signatureCheckBox');\n if (checkbox) {\n checkbox.checked = true;\n }\n this.enableCreateButton(false);\n this.enableClearbutton(false);\n }\n };\n Signature.prototype.drawSavedTypeSignature = function () {\n var output = '';\n if (!this.pdfViewerBase.isToolbarSignClicked && (this.issaveTypeSignature || this.issaveTypeInitial)) {\n if (!this.pdfViewerBase.isInitialField && this.issaveTypeSignature) {\n output = this.saveSignatureTypeString;\n }\n else {\n output = this.saveInitialTypeString;\n }\n }\n return output;\n };\n ;\n Signature.prototype.drawSavedImageSignature = function () {\n var output = '';\n if (!this.pdfViewerBase.isToolbarSignClicked && (this.issaveImageSignature || this.issaveImageInitial)) {\n if (!this.pdfViewerBase.isInitialField && this.issaveImageSignature) {\n output = this.saveSignatureUploadString;\n }\n else {\n output = this.saveInitialUploadString;\n }\n }\n return output;\n };\n ;\n Signature.prototype.hideSignatureCheckbox = function (checkbox) {\n if (this.pdfViewerBase.isToolbarSignClicked) {\n if (this.pdfViewerBase.isInitialField) {\n if (this.pdfViewer.handWrittenSignatureSettings.initialDialogSettings && this.pdfViewer.handWrittenSignatureSettings.initialDialogSettings.hideSaveSignature) {\n this.hideCheckboxParent(checkbox);\n }\n }\n else if (this.pdfViewer.handWrittenSignatureSettings.signatureDialogSettings && this.pdfViewer.handWrittenSignatureSettings.signatureDialogSettings.hideSaveSignature) {\n this.hideCheckboxParent(checkbox);\n }\n }\n else {\n if (this.pdfViewerBase.isInitialField) {\n if (this.pdfViewer.initialFieldSettings.initialDialogSettings && this.pdfViewer.initialFieldSettings.initialDialogSettings.hideSaveSignature) {\n this.hideCheckboxParent(checkbox);\n }\n }\n else {\n if (this.pdfViewer.signatureFieldSettings.signatureDialogSettings && this.pdfViewer.signatureFieldSettings.signatureDialogSettings.hideSaveSignature) {\n this.hideCheckboxParent(checkbox);\n }\n }\n }\n };\n Signature.prototype.saveSignatureCheckbox = function () {\n if (this.pdfViewerBase.isToolbarSignClicked) {\n return false;\n }\n else {\n if (this.pdfViewerBase.isInitialField) {\n if (this.pdfViewer.initialFieldSettings.initialDialogSettings && this.pdfViewer.initialFieldSettings.initialDialogSettings.hideSaveSignature) {\n return false;\n }\n else {\n return this.isInitialFiledSaveSignature;\n }\n }\n else {\n if (this.pdfViewer.signatureFieldSettings.signatureDialogSettings && this.pdfViewer.signatureFieldSettings.signatureDialogSettings.hideSaveSignature) {\n return false;\n }\n else {\n return this.isSignatureFieldsSaveSignature;\n }\n }\n }\n };\n Signature.prototype.hideCheckboxParent = function (checkbox) {\n if (checkbox) {\n checkbox.parentElement.style.display = 'none';\n }\n };\n Signature.prototype.saveSignatureImage = function () {\n // eslint-disable-next-line\n var checkbox = document.getElementById(this.pdfViewer.element.id + '_signatureCheckBox');\n if (checkbox && checkbox.checked) {\n if (this.outputString !== '') {\n if (!this.pdfViewerBase.isInitialField) {\n this.isSaveSignature = true;\n this.saveSignatureString = this.outputString;\n }\n else {\n this.isSaveInitial = true;\n this.saveInitialString = this.outputString;\n }\n // eslint-disable-next-line\n var canvas = document.getElementById(this.pdfViewer.element.id + '_signatureCanvas_');\n this.saveImageString = canvas.toDataURL();\n if (!this.pdfViewerBase.isInitialField) {\n this.signatureImageString = this.saveImageString;\n }\n else {\n this.initialImageString = this.saveImageString;\n }\n }\n }\n else {\n if (this.isSaveSignature && !this.pdfViewerBase.isInitialField) {\n this.isSaveSignature = false;\n this.saveSignatureString = '';\n this.saveImageString = '';\n this.signatureImageString = '';\n }\n else if (this.isSaveInitial && this.pdfViewerBase.isInitialField) {\n this.isSaveInitial = false;\n this.saveInitialString = '';\n this.saveImageString = '';\n this.initialImageString = '';\n }\n this.clearSignatureCanvas();\n }\n };\n /**\n * @param type\n * @private\n */\n // eslint-disable-next-line\n Signature.prototype.addSignature = function (type) {\n var annot;\n if (this.pdfViewerBase.isToolbarSignClicked) {\n var annotationName = this.pdfViewer.annotation.createGUID();\n this.pdfViewerBase.currentSignatureAnnot = null;\n this.pdfViewerBase.isSignatureAdded = true;\n var pageIndex = this.pdfViewerBase.currentPageNumber - 1;\n // eslint-disable-next-line max-len\n var thickness = this.pdfViewer.handWrittenSignatureSettings.thickness ? this.pdfViewer.handWrittenSignatureSettings.thickness : 1;\n // eslint-disable-next-line max-len\n var opacity = this.pdfViewer.handWrittenSignatureSettings.opacity ? this.pdfViewer.handWrittenSignatureSettings.opacity : 1;\n // eslint-disable-next-line max-len\n var strokeColor = this.pdfViewer.handWrittenSignatureSettings.strokeColor ? this.pdfViewer.handWrittenSignatureSettings.strokeColor : '#000000';\n var fontSize = 16;\n var fontFamily = 'Helvetica';\n var signatureBounds = this.pdfViewer.formFieldsModule.updateSignatureAspectRatio(this.outputString, true);\n // eslint-disable-next-line\n var canvas = document.getElementById(this.pdfViewer.element.id + '_signatureCanvas_');\n this.saveImageString = canvas.toDataURL();\n if (!this.pdfViewerBase.isInitialField) {\n this.signatureImageString = this.saveImageString;\n }\n else {\n this.initialImageString = this.saveImageString;\n }\n annot = {\n // eslint-disable-next-line max-len\n id: 'sign' + this.pdfViewerBase.signatureCount, bounds: signatureBounds, pageIndex: pageIndex, data: this.outputString, fontFamily: fontFamily, fontSize: fontSize,\n shapeAnnotationType: 'HandWrittenSignature', opacity: opacity, strokeColor: strokeColor, thickness: thickness, signatureName: annotationName\n };\n this.pdfViewerBase.currentSignatureAnnot = annot;\n // eslint-disable-next-line\n var checkbox = void 0;\n if (isBlazor()) {\n checkbox = document.getElementById(this.pdfViewer.element.id + '_signatureCheckBox');\n }\n else {\n checkbox = document.getElementById('checkbox');\n }\n if (checkbox && checkbox.checked) {\n this.addSignatureCollection();\n }\n this.hideSignaturePanel();\n this.pdfViewerBase.isToolbarSignClicked = false;\n }\n else {\n // eslint-disable-next-line\n var checkbox = document.getElementById('checkbox');\n var typeCheckbox = document.getElementById('checkbox1');\n var imageCheckbox = document.getElementById('checkbox2');\n var isSignatureAdded = false;\n if (!isSignatureAdded) {\n // eslint-disable-next-line\n var canvas = document.getElementById(this.pdfViewer.element.id + '_signatureCanvas_');\n this.saveImageString = canvas.toDataURL();\n if (checkbox) {\n if (checkbox.checked) {\n if (!this.pdfViewerBase.isInitialField) {\n this.isSaveSignature = true;\n this.signatureDrawString = this.saveImageString;\n this.saveSignatureString = this.outputString;\n }\n else {\n this.isSaveInitial = true;\n this.initialDrawString = this.saveImageString;\n this.saveInitialString = this.outputString;\n }\n this.checkSaveFiledSign(this.pdfViewerBase.isInitialField, true);\n }\n else {\n if (!this.pdfViewerBase.isInitialField) {\n this.isSaveSignature = false;\n this.saveSignatureString = '';\n }\n else {\n this.isSaveInitial = false;\n this.saveInitialString = '';\n }\n this.checkSaveFiledSign(this.pdfViewerBase.isInitialField, false);\n }\n }\n this.saveTypeSignature(typeCheckbox);\n this.saveUploadSignature(imageCheckbox);\n if (!this.pdfViewerBase.isInitialField) {\n this.signatureImageString = this.saveImageString;\n }\n else {\n this.initialImageString = this.saveImageString;\n }\n this.pdfViewer.formFieldsModule.drawSignature(null, null, this.pdfViewerBase.currentTarget, null);\n isSignatureAdded = true;\n }\n }\n };\n Signature.prototype.checkSaveFiledSign = function (initialField, saveSign) {\n if (initialField) {\n this.isInitialFiledSaveSignature = saveSign;\n }\n else {\n this.isSignatureFieldsSaveSignature = saveSign;\n }\n };\n Signature.prototype.addSignatureInPage = function () {\n if (this.signaturetype === 'Draw') {\n this.addSignature();\n }\n else if (this.signaturetype === 'Type') {\n this.typeAddSignature();\n }\n else {\n this.imageAddSignature();\n }\n this.drawOutputString = '';\n this.imageOutputString = '';\n };\n Signature.prototype.typeAddSignature = function (type) {\n if (this.pdfViewerBase.isToolbarSignClicked) {\n var zoomvalue = this.pdfViewerBase.getZoomFactor();\n // eslint-disable-next-line\n var annot = null;\n var annotationName = this.pdfViewer.annotation.createGUID();\n this.pdfViewerBase.currentSignatureAnnot = null;\n this.pdfViewerBase.isSignatureAdded = true;\n var pageIndex = this.pdfViewerBase.currentPageNumber - 1;\n var pageDiv = document.getElementById(this.pdfViewer.element.id + '_pageDiv_' + pageIndex);\n var thickness = this.pdfViewer.handWrittenSignatureSettings.thickness ? this.pdfViewer.handWrittenSignatureSettings.thickness : 1;\n var opacity = this.pdfViewer.handWrittenSignatureSettings.opacity ? this.pdfViewer.handWrittenSignatureSettings.opacity : 1;\n var strokeColor = this.pdfViewer.handWrittenSignatureSettings.strokeColor ? this.pdfViewer.handWrittenSignatureSettings.strokeColor : '#000000';\n var fontSize = 16;\n var currentLeft = 0;\n var currentTop = 0;\n var currentHeight = 65;\n var currentWidth = 200;\n currentLeft = ((parseFloat(pageDiv.style.width) / 2) - (currentWidth / 2)) / zoomvalue;\n currentTop = ((parseFloat(pageDiv.style.height) / 2) - (currentHeight / 2)) / zoomvalue;\n var zoomFactor = this.pdfViewerBase.getZoomFactor();\n if (!this.signtypevalue) {\n this.updateSignatureTypeValue(true);\n }\n var inputValue = this.signtypevalue;\n annot = {\n // eslint-disable-next-line max-len\n id: 'Typesign' + this.pdfViewerBase.signatureCount, bounds: {\n left: currentLeft / zoomFactor, top: currentTop / zoomFactor, x: currentLeft / zoomFactor,\n // eslint-disable-next-line max-len\n y: currentTop / zoomFactor, width: currentWidth, height: currentHeight\n }, pageIndex: pageIndex, dynamicText: inputValue, data: this.pdfViewerBase.signatureModule.outputString, shapeAnnotationType: 'SignatureText',\n opacity: opacity, strokeColor: strokeColor, thickness: thickness, fontSize: fontSize, fontFamily: this.fontName, signatureName: annotationName\n };\n this.pdfViewerBase.currentSignatureAnnot = annot;\n // eslint-disable-next-line\n var checkbox = void 0;\n if (isBlazor()) {\n checkbox = document.getElementById(this.pdfViewer.element.id + '_signatureCheckBox');\n }\n else {\n checkbox = document.getElementById('checkbox1');\n }\n if (checkbox && checkbox.checked) {\n this.addSignatureCollection();\n }\n this.signtypevalue = '';\n this.hideSignaturePanel();\n this.pdfViewerBase.isToolbarSignClicked = false;\n }\n else {\n var checkbox = document.getElementById('checkbox');\n var typeCheckbox = document.getElementById('checkbox1');\n var imageCheckbox = document.getElementById('checkbox2');\n var isSignatureAdded = false;\n if (!isSignatureAdded) {\n this.saveDrawSignature(checkbox);\n this.saveUploadSignature(imageCheckbox);\n var canvas = document.getElementById(this.pdfViewer.element.id + '_signatureCanvas_');\n this.saveTypeString = canvas.toDataURL();\n this.updateSignatureTypeValue();\n if (typeCheckbox && typeCheckbox.checked) {\n if (!this.pdfViewerBase.isInitialField) {\n this.isSaveSignature = true;\n this.signatureImageString = this.saveTypeString;\n this.saveSignatureTypeString = this.textValue;\n this.issaveTypeSignature = true;\n }\n else {\n this.isSaveInitial = true;\n this.initialImageString = this.saveTypeString;\n this.saveInitialTypeString = this.textValue;\n this.issaveTypeInitial = true;\n }\n }\n else {\n if (!this.pdfViewerBase.isInitialField) {\n this.isSaveSignature = false;\n this.saveSignatureTypeString = '';\n this.issaveTypeSignature = false;\n }\n else {\n this.isSaveInitial = false;\n this.saveInitialTypeString = '';\n this.issaveTypeInitial = false;\n }\n }\n if (!this.pdfViewerBase.isInitialField) {\n this.signatureTypeString = this.saveTypeString;\n }\n else {\n this.initialTypeString = this.saveTypeString;\n }\n this.pdfViewer.formFieldsModule.drawSignature('Type', this.textValue, this.pdfViewerBase.currentTarget);\n isSignatureAdded = true;\n this.hideSignaturePanel();\n }\n }\n };\n Signature.prototype.imageAddSignature = function (type) {\n if (this.pdfViewerBase.isToolbarSignClicked) {\n var zoomvalue = this.pdfViewerBase.getZoomFactor();\n // eslint-disable-next-line\n var annot = null;\n var annotationName = this.pdfViewer.annotation.createGUID();\n this.pdfViewerBase.currentSignatureAnnot = null;\n this.pdfViewerBase.isSignatureAdded = true;\n var pageIndex = this.pdfViewerBase.currentPageNumber - 1;\n var pageDiv = document.getElementById(this.pdfViewer.element.id + '_pageDiv_' + pageIndex);\n var thickness = this.pdfViewer.handWrittenSignatureSettings.thickness ? this.pdfViewer.handWrittenSignatureSettings.thickness : 1;\n var opacity = this.pdfViewer.handWrittenSignatureSettings.opacity ? this.pdfViewer.handWrittenSignatureSettings.opacity : 1;\n var strokeColor = this.pdfViewer.handWrittenSignatureSettings.strokeColor ? this.pdfViewer.handWrittenSignatureSettings.strokeColor : '#000000';\n var fontSize = 16;\n var currentLeft = 0;\n var currentTop = 0;\n var standardImageRatio = 100;\n var currentHeight = 0;\n var currentWidth = 0;\n // eslint-disable-next-line max-len\n if (this.signatureImageHeight >= this.signatureImageWidth) {\n currentHeight = ((this.signatureImageHeight / this.signatureImageHeight) * standardImageRatio);\n currentWidth = ((this.signatureImageWidth / this.signatureImageHeight) * standardImageRatio);\n }\n else {\n currentHeight = ((this.signatureImageHeight / this.signatureImageWidth) * standardImageRatio);\n currentWidth = ((this.signatureImageWidth / this.signatureImageWidth) * standardImageRatio);\n }\n currentLeft = ((parseFloat(pageDiv.style.width) / 2) - (currentWidth / 2)) / zoomvalue;\n currentTop = ((parseFloat(pageDiv.style.height) / 2) - (currentHeight / 2)) / zoomvalue;\n var zoomFactor = this.pdfViewerBase.getZoomFactor();\n var inputValue = this.signtypevalue;\n annot = {\n // eslint-disable-next-line max-len\n id: 'Typesign' + this.pdfViewerBase.signatureCount, bounds: {\n left: currentLeft / zoomFactor, top: currentTop / zoomFactor, x: currentLeft / zoomFactor,\n // eslint-disable-next-line max-len\n y: currentTop / zoomFactor, width: currentWidth, height: currentHeight\n }, pageIndex: pageIndex, dynamicText: inputValue, data: this.pdfViewerBase.signatureModule.outputString, shapeAnnotationType: 'SignatureImage',\n opacity: opacity, strokeColor: strokeColor, thickness: thickness, fontSize: fontSize, fontFamily: this.fontName, signatureName: annotationName\n };\n this.pdfViewerBase.currentSignatureAnnot = annot;\n // eslint-disable-next-line\n var checkbox = void 0;\n if (isBlazor()) {\n checkbox = document.getElementById(this.pdfViewer.element.id + '_signatureCheckBox');\n }\n else {\n checkbox = document.getElementById('checkbox2');\n }\n if (checkbox && checkbox.checked) {\n this.addSignatureCollection();\n }\n this.hideSignaturePanel();\n this.pdfViewerBase.isToolbarSignClicked = false;\n }\n else {\n var checkbox = document.getElementById('checkbox');\n var typeCheckbox = document.getElementById('checkbox1');\n var imageCheckbox = document.getElementById('checkbox2');\n var isSignatureAdded = false;\n if (!isSignatureAdded) {\n this.saveDrawSignature(checkbox);\n this.saveTypeSignature(typeCheckbox);\n var canvas = document.getElementById(this.pdfViewer.element.id + '_signatureCanvas_');\n this.saveUploadString = canvas.toDataURL();\n if (imageCheckbox && imageCheckbox.checked) {\n if (!this.pdfViewerBase.isInitialField) {\n this.isSaveSignature = true;\n this.signatureImageString = this.saveUploadString;\n this.saveSignatureUploadString = this.outputString;\n this.issaveImageSignature = true;\n }\n else {\n this.isSaveInitial = true;\n this.initialImageString = this.saveUploadString;\n this.saveInitialUploadString = this.outputString;\n this.issaveImageInitial = true;\n }\n }\n else {\n if (!this.pdfViewerBase.isInitialField) {\n this.isSaveSignature = false;\n this.saveSignatureUploadString = '';\n this.issaveImageSignature = false;\n }\n else {\n this.isSaveInitial = false;\n this.saveInitialUploadString = '';\n this.issaveImageInitial = false;\n }\n }\n if (!this.pdfViewerBase.isInitialField) {\n this.signatureUploadString = this.saveUploadString;\n }\n else {\n this.initialUploadString = this.saveUploadString;\n }\n this.pdfViewer.formFieldsModule.drawSignature('Image', '', this.pdfViewerBase.currentTarget);\n isSignatureAdded = true;\n this.hideSignaturePanel();\n }\n }\n };\n Signature.prototype.saveDrawSignature = function (checkbox) {\n if (checkbox) {\n if (checkbox.checked) {\n if (this.drawOutputString !== '') {\n var canvas = document.getElementById(this.pdfViewer.element.id + '_signatureCanvas_');\n this.saveImageString = canvas.toDataURL();\n if (!this.pdfViewerBase.isInitialField) {\n this.saveSignatureString = this.drawOutputString;\n this.signatureDrawString = this.saveImageString;\n }\n else {\n this.saveInitialString = this.drawOutputString;\n this.initialDrawString = this.saveImageString;\n }\n this.checkSaveFiledSign(this.pdfViewerBase.isInitialField, true);\n }\n }\n else {\n if (!this.pdfViewerBase.isInitialField) {\n this.saveSignatureString = '';\n }\n else {\n this.saveInitialString = '';\n }\n this.checkSaveFiledSign(this.pdfViewerBase.isInitialField, false);\n }\n }\n };\n Signature.prototype.saveTypeSignature = function (typeCheckbox) {\n if (typeCheckbox) {\n if (typeCheckbox.checked) {\n this.updateSignatureTypeValue();\n if (this.textValue !== '') {\n if (!this.pdfViewerBase.isInitialField) {\n this.issaveTypeSignature = true;\n this.saveSignatureTypeString = this.textValue;\n }\n else {\n this.issaveTypeInitial = true;\n this.saveInitialTypeString = this.textValue;\n }\n }\n }\n else {\n if (!this.pdfViewerBase.isInitialField) {\n this.saveSignatureTypeString = '';\n this.issaveTypeSignature = false;\n }\n else {\n this.saveInitialTypeString = '';\n this.issaveTypeInitial = false;\n }\n }\n }\n };\n Signature.prototype.saveUploadSignature = function (imageCheckbox) {\n if (imageCheckbox) {\n if (imageCheckbox.checked) {\n var imageCanvas = document.getElementById(this.pdfViewer.element.id + '_signatureuploadCanvas_');\n var uploadString = imageCanvas.toDataURL();\n var imageString = document.getElementById(this.pdfViewer.element.id + '_e-pv-upload-button').style.visibility === 'hidden' ? uploadString : '';\n if (imageString !== '') {\n if (!this.pdfViewerBase.isInitialField) {\n this.issaveImageSignature = true;\n this.saveSignatureUploadString = imageString;\n }\n else {\n this.issaveImageInitial = true;\n this.saveInitialUploadString = imageString;\n }\n }\n }\n else {\n if (!this.pdfViewerBase.isInitialField) {\n this.saveSignatureUploadString = '';\n this.issaveImageSignature = false;\n }\n else {\n this.saveInitialUploadString = '';\n this.issaveImageInitial = false;\n }\n }\n }\n };\n Signature.prototype.updateSignatureTypeValue = function (isType) {\n // eslint-disable-next-line\n var fontElements = document.querySelectorAll('.e-pv-font-sign');\n if (fontElements) {\n for (var j = 0; j < fontElements.length; j++) {\n if (fontElements[parseInt(j.toString(), 10)] && fontElements[parseInt(j.toString(), 10)].style.borderColor === 'red') {\n if (this.pdfViewerBase.isToolbarSignClicked) {\n if (isType) {\n this.signtypevalue = fontElements[parseInt(j.toString(), 10)].textContent;\n this.outputString = fontElements[parseInt(j.toString(), 10)].textContent;\n }\n else {\n this.outputString = fontElements[parseInt(j.toString(), 10)].textContent;\n }\n }\n else {\n if (isType) {\n this.signtypevalue = fontElements[parseInt(j.toString(), 10)].textContent;\n this.textValue = fontElements[parseInt(j.toString(), 10)].textContent;\n }\n else {\n this.textValue = fontElements[parseInt(j.toString(), 10)].textContent;\n }\n }\n try {\n this.fontName = JSON.parse(fontElements[parseInt(j.toString(), 10)].style.fontFamily);\n }\n catch (e) {\n this.fontName = fontElements[parseInt(j.toString(), 10)].style.fontFamily;\n }\n }\n }\n }\n };\n /**\n * @private\n * @returns {void}\n */\n Signature.prototype.hideSignaturePanel = function () {\n if (this.signatureDialog) {\n this.signatureDialog.hide();\n }\n };\n Signature.prototype.bindTypeSignatureClickEvent = function () {\n if (isBlazor()) {\n for (var i = 0; i < 4; i++) {\n // eslint-disable-next-line\n var fontElement = document.querySelector('#' + this.pdfViewer.element.id + '_font_signature' + i);\n if (fontElement) {\n fontElement.addEventListener('click', this.typeSignatureclicked.bind(this));\n }\n }\n }\n };\n Signature.prototype.bindDrawSignatureClickEvent = function () {\n // eslint-disable-next-line\n var canvas = document.getElementById(this.pdfViewer.element.id + '_signatureCanvas_');\n if (canvas) {\n canvas.addEventListener('mousedown', this.signaturePanelMouseDown.bind(this));\n canvas.addEventListener('mousemove', this.signaturePanelMouseMove.bind(this));\n canvas.addEventListener('mouseup', this.signaturePanelMouseUp.bind(this));\n canvas.addEventListener('mouseleave', this.signaturePanelMouseUp.bind(this));\n canvas.addEventListener('touchstart', this.signaturePanelMouseDown.bind(this));\n canvas.addEventListener('touchmove', this.signaturePanelMouseMove.bind(this));\n canvas.addEventListener('touchend', this.signaturePanelMouseUp.bind(this));\n }\n };\n // eslint-disable-next-line\n Signature.prototype.typeSignatureclicked = function (event) {\n var eventTarget = event.target;\n if (eventTarget) {\n for (var i = 0; i < 4; i++) {\n // eslint-disable-next-line\n var fontElement = document.querySelector('#' + this.pdfViewer.element.id + '_font_signature' + i);\n if (fontElement) {\n fontElement.style.borderColor = '';\n }\n }\n eventTarget.style.borderColor = 'red';\n this.outputString = eventTarget.textContent;\n try {\n this.fontName = JSON.parse(eventTarget.style.fontFamily);\n }\n catch (e) {\n this.fontName = eventTarget.style.fontFamily;\n }\n this.enableCreateButton(false);\n }\n };\n // eslint-disable-next-line\n Signature.prototype.createSignatureCanvas = function () {\n // eslint-disable-next-line\n var previousField = document.getElementById(this.pdfViewer.element.id + '_signatureCanvas_');\n // eslint-disable-next-line\n var field = document.getElementById(this.pdfViewer.element.id + 'Signature_appearance');\n if (previousField) {\n previousField.remove();\n }\n if (field) {\n field.remove();\n }\n // eslint-disable-next-line max-len\n var appearanceDiv = createElement('div', { id: this.pdfViewer.element.id + 'Signature_appearance', className: 'e-pv-signature-apperance', styles: 'margin-top:30px' });\n // eslint-disable-next-line max-len\n var canvas = createElement('canvas', { id: this.pdfViewer.element.id + '_signatureCanvas_', className: 'e-pv-signature-canvas' });\n if (this.pdfViewer.element.offsetWidth > 750) {\n canvas.width = 714;\n }\n else {\n canvas.width = this.pdfViewer.element.offsetWidth - 35;\n }\n canvas.classList.add('e-pv-canvas-signature');\n canvas.height = 305;\n canvas.style.height = '305px';\n canvas.style.border = '1px dotted #bdbdbd';\n canvas.style.backgroundColor = 'white';\n canvas.style.boxSizing = 'border-box';\n canvas.style.borderRadius = '2px';\n canvas.addEventListener('mousedown', this.signaturePanelMouseDown.bind(this));\n canvas.addEventListener('mousemove', this.signaturePanelMouseMove.bind(this));\n canvas.addEventListener('mouseup', this.signaturePanelMouseUp.bind(this));\n canvas.addEventListener('mouseleave', this.signaturePanelMouseLeave.bind(this));\n canvas.addEventListener('touchstart', this.signaturePanelMouseDown.bind(this));\n canvas.addEventListener('touchmove', this.signaturePanelMouseMove.bind(this));\n canvas.addEventListener('touchend', this.signaturePanelMouseUp.bind(this));\n appearanceDiv.appendChild(canvas);\n // eslint-disable-next-line\n var checkBoxObj;\n // eslint-disable-next-line\n var input;\n var saveCheckBoxContent;\n if (this.pdfViewerBase.isToolbarSignClicked && !this.pdfViewerBase.isInitialField) {\n saveCheckBoxContent = this.pdfViewer.localeObj.getConstant('Save Signature');\n }\n else {\n saveCheckBoxContent = this.pdfViewerBase.isInitialField ? this.pdfViewer.localeObj.getConstant('Save Initial') : this.pdfViewer.localeObj.getConstant('Save Signature');\n }\n if (!this.pdfViewer.hideSaveSignature) {\n // eslint-disable-next-line\n input = document.createElement('input');\n input.type = 'checkbox';\n input.id = 'checkbox';\n appearanceDiv.appendChild(input);\n checkBoxObj = new CheckBox({ label: saveCheckBoxContent, disabled: false, checked: false });\n checkBoxObj.appendTo(input);\n }\n if (!this.pdfViewerBase.isInitialField) {\n this.isSaveSignature = this.saveSignatureCheckbox();\n }\n else {\n this.isSaveInitial = this.saveSignatureCheckbox();\n }\n if (this.isSaveSignature && !this.pdfViewerBase.isInitialField) {\n checkBoxObj.checked = true;\n }\n else if (this.isSaveInitial && this.pdfViewerBase.isInitialField) {\n checkBoxObj.checked = true;\n }\n //if (!this.pdfViewerBase.isToolbarSignClicked) {\n // eslint-disable-next-line\n var typeDiv = createElement('div', { id: this.pdfViewer.element.id + 'type_appearance', className: 'e-pv-signature-apperance', styles: 'margin-top:6px' });\n // eslint-disable-next-line\n var inputText = document.createElement('input');\n if (!this.pdfViewerBase.isInitialField && this.issaveTypeSignature && !this.pdfViewerBase.isToolbarSignClicked) {\n inputText.value = this.drawSavedTypeSignature();\n }\n else if (this.pdfViewerBase.isInitialField && this.issaveTypeInitial && !this.pdfViewerBase.isToolbarSignClicked) {\n inputText.value = this.drawSavedTypeSignature();\n }\n inputText.type = 'text';\n inputText.id = this.pdfViewer.element.id + '_e-pv-Signtext-box';\n typeDiv.appendChild(inputText);\n // eslint-disable-next-line\n var inputobj = new TextBox({\n placeholder: this.pdfViewer.localeObj.getConstant('Enter Signature as Name'),\n floatLabelType: 'Auto'\n });\n inputobj.appendTo(inputText);\n // eslint-disable-next-line\n var fontDiv = createElement('div', { id: this.pdfViewer.element.id + '_font_appearance', className: 'e-pv-font-appearance-style' });\n fontDiv.classList.add('e-pv-canvas-signature');\n fontDiv.style.height = '270px';\n fontDiv.style.border = '1px dotted #bdbdbd';\n fontDiv.style.boxSizing = 'border-box';\n fontDiv.style.borderRadius = '2px';\n fontDiv.style.backgroundColor = 'white';\n fontDiv.style.color = 'black';\n fontDiv.style.marginTop = '8px';\n fontDiv.style.paddingRight = '0px';\n typeDiv.appendChild(fontDiv);\n input = document.createElement('input');\n input.type = 'checkbox';\n input.id = 'checkbox1';\n typeDiv.appendChild(input);\n checkBoxObj = new CheckBox({ label: saveCheckBoxContent, disabled: false, checked: false });\n checkBoxObj.appendTo(input);\n if (this.issaveTypeSignature && !this.pdfViewerBase.isInitialField && !this.pdfViewerBase.isToolbarSignClicked) {\n checkBoxObj.checked = true;\n }\n else if (this.issaveTypeInitial && this.pdfViewerBase.isInitialField && !this.pdfViewerBase.isToolbarSignClicked) {\n checkBoxObj.checked = true;\n }\n inputobj.addEventListener('input', this.renderSignatureText.bind(this));\n this.enableCreateButton(true);\n // eslint-disable-next-line\n var tab = createElement('div', { id: this.pdfViewer.element.id + 'Signature_tab' });\n var uploadDiv = createElement('div', { id: this.pdfViewer.element.id + 'upload_appearance', className: 'e-pv-signature-apperance', styles: 'padding-top:30px' });\n // eslint-disable-next-line\n var button = document.createElement('div');\n button.id = this.pdfViewer.element.id + '_e-pv-upload-button';\n uploadDiv.appendChild(button);\n // eslint-disable-next-line\n var uploadButton = new Button({ cssClass: 'e-pv-sign-upload', content: this.pdfViewer.localeObj.getConstant('Browse Signature Image') });\n uploadButton.appendTo(button);\n uploadButton.element.style.position = 'absolute';\n // eslint-disable-next-line max-len\n var uploadCanvas = createElement('canvas', { id: this.pdfViewer.element.id + '_signatureuploadCanvas_', className: 'e-pv-signature-uploadcanvas' });\n if (this.pdfViewer.element.offsetWidth > 750) {\n uploadCanvas.width = 714;\n }\n else {\n uploadCanvas.width = this.pdfViewer.element.offsetWidth - 35;\n }\n uploadCanvas.classList.add('e-pv-canvas-signature');\n uploadCanvas.height = 305;\n uploadCanvas.style.height = '305px';\n uploadButton.element.style.left = ((uploadCanvas.width / 2) - 50) + 'px';\n uploadButton.element.style.top = ((parseFloat(uploadCanvas.style.height) / 2) + 20) + 'px';\n uploadCanvas.style.border = '1px dotted #bdbdbd';\n uploadCanvas.style.backgroundColor = 'white';\n uploadCanvas.style.boxSizing = 'border-box';\n uploadCanvas.style.borderRadius = '2px';\n uploadCanvas.style.zIndex = '0';\n var imageUploadString = '';\n if (!this.pdfViewerBase.isInitialField && this.issaveImageSignature && !this.pdfViewerBase.isToolbarSignClicked) {\n imageUploadString = this.drawSavedImageSignature();\n }\n else if (this.pdfViewerBase.isInitialField && this.issaveImageInitial && !this.pdfViewerBase.isToolbarSignClicked) {\n imageUploadString = this.drawSavedImageSignature();\n }\n if (imageUploadString !== '' && !this.pdfViewerBase.isToolbarSignClicked) {\n this.clearUploadString = false;\n var ctx_1 = uploadCanvas.getContext('2d');\n var image_2 = new Image();\n image_2.src = imageUploadString;\n image_2.onload = function () {\n ctx_1.drawImage(image_2, 0, 0, uploadCanvas.width, uploadCanvas.height);\n };\n uploadButton.element.style.display = 'hidden';\n }\n uploadDiv.appendChild(uploadCanvas);\n input = document.createElement('input');\n input.type = 'checkbox';\n input.id = 'checkbox2';\n uploadDiv.appendChild(input);\n checkBoxObj = new CheckBox({ label: saveCheckBoxContent, disabled: false, checked: false });\n checkBoxObj.appendTo(input);\n if (this.issaveImageSignature && !this.pdfViewerBase.isInitialField && !this.pdfViewerBase.isToolbarSignClicked) {\n checkBoxObj.checked = true;\n }\n else if (this.issaveImageInitial && this.pdfViewerBase.isInitialField && !this.pdfViewerBase.isToolbarSignClicked) {\n checkBoxObj.checked = true;\n }\n button.addEventListener('click', this.uploadSignatureImage.bind(this));\n // eslint-disable-next-line max-len\n this.signfontStyle = [{ FontName: 'Helvetica' }, { FontName: 'Times New Roman' }, { FontName: 'Courier' }, { FontName: 'Symbol' }];\n // eslint-disable-next-line\n var fontSignature = [];\n if (this.pdfViewerBase.isToolbarSignClicked && !isNullOrUndefined(this.pdfViewer.handWrittenSignatureSettings.typeSignatureFonts)) {\n for (var j = 0; j < 4; j++) {\n if (!isNullOrUndefined(this.pdfViewer.handWrittenSignatureSettings.typeSignatureFonts[parseInt(j.toString(), 10)])) {\n this.signfontStyle[parseInt(j.toString(), 10)].FontName = this.pdfViewer.handWrittenSignatureSettings.typeSignatureFonts[parseInt(j.toString(), 10)];\n }\n }\n }\n for (var i = 0; i < this.signfontStyle.length; i++) {\n fontSignature[parseInt(i.toString(), 10)] = document.createElement('div');\n fontSignature[parseInt(i.toString(), 10)].id = '_font_signature' + i + '';\n fontSignature[parseInt(i.toString(), 10)].classList.add('e-pv-font-sign');\n }\n this.fontsign = fontSignature;\n // eslint-disable-next-line\n var proxy = this;\n var items = [];\n if (this.pdfViewerBase.isToolbarSignClicked) {\n if (this.pdfViewerBase.isInitialField) {\n items = this.showHideSignatureTab(this.pdfViewer.handWrittenSignatureSettings.initialDialogSettings && this.pdfViewer.handWrittenSignatureSettings.initialDialogSettings.displayMode, appearanceDiv, typeDiv, uploadDiv);\n }\n else {\n items = this.showHideSignatureTab(this.pdfViewer.handWrittenSignatureSettings.signatureDialogSettings && this.pdfViewer.handWrittenSignatureSettings.signatureDialogSettings.displayMode, appearanceDiv, typeDiv, uploadDiv);\n }\n }\n else {\n if (this.pdfViewerBase.isInitialField) {\n items = this.showHideSignatureTab((this.pdfViewer.initialFieldSettings.initialDialogSettings ? this.pdfViewer.initialFieldSettings.initialDialogSettings.displayMode : 7), appearanceDiv, typeDiv, uploadDiv);\n }\n else {\n items = this.showHideSignatureTab((this.pdfViewer.signatureFieldSettings.signatureDialogSettings ? this.pdfViewer.signatureFieldSettings.signatureDialogSettings.displayMode : 7), appearanceDiv, typeDiv, uploadDiv);\n }\n }\n // eslint-disable-next-line\n this.tabObj = new Tab({\n selected: function (args) {\n proxy.handleSelectEvent(args);\n },\n selecting: function (args) {\n proxy.select(args);\n },\n items: items\n });\n this.tabObj.appendTo(tab);\n if (tab && tab.lastElementChild) {\n tab.lastElementChild.style.overflow = 'hidden';\n }\n if (items[0].header.label === 'DRAW') {\n this.signaturetype = 'Draw';\n }\n else if (items[0].header.label === 'TYPE') {\n this.signaturetype = 'Type';\n }\n else {\n this.signaturetype = 'Image';\n }\n return tab;\n // } else {\n // return appearanceDiv;\n // }\n };\n Signature.prototype.handleSelectEvent = function (e) {\n // eslint-disable-next-line\n var headerText = '';\n var maximumWidth = 750;\n var tabInstance = document.getElementById(this.pdfViewer.element.id + 'Signature_tab').ej2_instances[0];\n if (tabInstance) {\n if (tabInstance.items.length > 0) {\n for (var i = 0; i < tabInstance.items.length; i++) {\n var headerValue = tabInstance.items[parseInt(i.toString(), 10)].header.text;\n if (headerValue === e.selectedItem.textContent) {\n headerText = tabInstance.items[parseInt(i.toString(), 10)].header.label;\n }\n }\n }\n }\n this.clearSignatureCanvas(e);\n // eslint-disable-next-line\n if (headerText.toLocaleLowerCase() === 'draw') {\n this.signaturetype = 'Draw';\n this.enableCreateSignatureButton();\n var drawCheckbox = document.getElementById(\"checkbox\");\n this.hideSignatureCheckbox(drawCheckbox);\n }\n else if (headerText.toLocaleLowerCase() === 'type') {\n var canvas = document.getElementById(this.pdfViewer.element.id + '_signatureCanvas_');\n this.drawSignatureDataUrl = canvas.toDataURL();\n this.updateSignatureTypeValue();\n this.signaturetype = 'Type';\n this.enableCreateSignatureButton();\n var typeCheckbox = document.getElementById(\"checkbox1\");\n this.hideSignatureCheckbox(typeCheckbox);\n var textbox = document.getElementById(this.pdfViewer.element.id + '_e-pv-Signtext-box');\n if (!this.pdfViewerBase.isInitialField && this.saveSignatureTypeString !== '' && textbox.value !== '' && !this.pdfViewerBase.isToolbarSignClicked) {\n this.renderSignatureText();\n }\n else if (this.pdfViewerBase.isInitialField && this.saveInitialTypeString !== '' && textbox.value !== '' && !this.pdfViewerBase.isToolbarSignClicked) {\n this.renderSignatureText();\n }\n }\n else if (headerText.toLocaleLowerCase() === 'upload') {\n var canvas = document.getElementById(this.pdfViewer.element.id + '_signatureCanvas_');\n this.drawSignatureDataUrl = canvas.toDataURL();\n this.signaturetype = 'Image';\n this.enableCreateSignatureButton();\n var imageCheckbox = document.getElementById(\"checkbox2\");\n this.hideSignatureCheckbox(imageCheckbox);\n var signbutton = document.getElementById(this.pdfViewer.element.id + '_e-pv-upload-button');\n if (this.saveSignatureUploadString !== \"\" && !this.pdfViewerBase.isInitialField && !this.clearUploadString && !this.pdfViewerBase.isToolbarSignClicked) {\n this.enableCreateButton(false);\n signbutton.style.visibility = 'hidden';\n this.outputString = this.saveSignatureUploadString;\n }\n if (this.saveInitialUploadString !== \"\" && this.pdfViewerBase.isInitialField && !this.clearUploadString && !this.pdfViewerBase.isToolbarSignClicked) {\n this.enableCreateButton(false);\n signbutton.style.visibility = 'hidden';\n this.outputString = this.saveInitialUploadString;\n }\n }\n if (this.pdfViewer.element.offsetWidth < maximumWidth)\n this.updateCanvasSize();\n this.drawSignOnTabSwitch();\n if (headerText.toLocaleLowerCase() === 'upload' && this.imageSignatureDataUrl) {\n this.imageSignOnTabSwitch();\n }\n };\n Signature.prototype.enableCreateSignatureButton = function () {\n if (this.pdfViewerBase.isToolbarSignClicked || this.signaturetype !== 'Type') {\n if (this.outputString !== \"\") {\n this.enableCreateButton(false);\n }\n else {\n this.enableCreateButton(true);\n }\n }\n else {\n if (this.textValue !== \"\") {\n this.enableCreateButton(false);\n }\n else {\n this.enableCreateButton(true);\n }\n }\n };\n Signature.prototype.showHideSignatureTab = function (displayMode, appearanceDiv, typeDiv, uploadDiv) {\n var items = [];\n if (displayMode & DisplayMode.Draw) {\n items.push({\n header: { 'text': this.pdfViewer.localeObj.getConstant('Draw-hand Signature'), 'label': 'DRAW' },\n content: appearanceDiv\n });\n }\n if (displayMode & DisplayMode.Text) {\n items.push({\n header: { 'text': this.pdfViewer.localeObj.getConstant('Type Signature'), 'label': 'TYPE' },\n content: typeDiv\n });\n }\n if (displayMode & DisplayMode.Upload) {\n items.push({\n header: { 'text': this.pdfViewer.localeObj.getConstant('Upload Signature'), 'label': 'UPLOAD' },\n content: uploadDiv\n });\n }\n return items;\n };\n /**\n * @private\n * @returns {void}\n */\n Signature.prototype.createSignatureFileElement = function () {\n // eslint-disable-next-line\n var signImage = createElement('input', { id: this.pdfViewer.element.id + '_signElement', attrs: { 'type': 'file' } });\n signImage.setAttribute('accept', '.jpg,.jpeg,.png');\n signImage.style.position = 'absolute';\n signImage.style.left = '0px';\n signImage.style.top = '0px';\n signImage.style.visibility = 'hidden';\n document.body.appendChild(signImage);\n signImage.addEventListener('change', this.addStampImage);\n };\n Signature.prototype.uploadSignatureImage = function () {\n // eslint-disable-next-line\n var signImage = document.getElementById(this.pdfViewer.element.id + '_signElement');\n if (signImage) {\n signImage.click();\n }\n };\n Signature.prototype.renderSignatureText = function () {\n var maximumWidth = 750;\n // eslint-disable-next-line\n var fontDiv = document.getElementById(this.pdfViewer.element.id + '_font_appearance');\n // eslint-disable-next-line\n var textBox = document.getElementById(this.pdfViewer.element.id + '_e-pv-Signtext-box');\n for (var i = 0; i < this.signfontStyle.length; i++) {\n this.fontsign[parseInt(i.toString(), 10)].innerHTML = textBox.value;\n this.fontsign[parseInt(i.toString(), 10)].style.fontFamily = this.signfontStyle[parseInt(i.toString(), 10)].FontName;\n if (this.fontName !== \"\" && this.signfontStyle[parseInt(i.toString(), 10)].FontName === this.fontName) {\n this.fontsign[parseInt(i.toString(), 10)].style.borderColor = 'red';\n }\n else if (isNullOrUndefined(this.fontName) && this.signfontStyle[parseInt(i.toString(), 10)].FontName === 'Helvetica') {\n this.fontsign[parseInt(i.toString(), 10)].style.borderColor = 'red';\n }\n fontDiv.appendChild(this.fontsign[parseInt(i.toString(), 10)]);\n }\n for (var i = 0; i < this.signfontStyle.length; i++) {\n // eslint-disable-next-line\n var clickSign = document.getElementById('_font_signature' + i + '');\n clickSign.addEventListener('click', this.typeSignatureclick.bind(this));\n }\n this.enableCreateButton(false);\n this.enableClearbutton(false);\n if (this.pdfViewer.element.offsetWidth < maximumWidth)\n this.updateCanvasSize();\n this.drawSignOnTabSwitch();\n };\n Signature.prototype.typeSignatureclick = function () {\n var eventTarget = event.target;\n // eslint-disable-next-line\n var createButton = document.getElementsByClassName('e-pv-createbtn')[0];\n createButton.disabled = false;\n for (var i = 0; i < 4; i++) {\n // eslint-disable-next-line\n var fontElement = document.getElementById('_font_signature' + i + '');\n if (fontElement) {\n fontElement.style.borderColor = '';\n }\n }\n eventTarget.style.borderColor = 'red';\n this.outputString = eventTarget.textContent;\n try {\n this.fontName = JSON.parse(eventTarget.style.fontFamily);\n }\n catch (e) {\n this.fontName = eventTarget.style.fontFamily;\n }\n };\n /**\n * @param bounds\n * @param position\n * @private\n */\n // eslint-disable-next-line\n Signature.prototype.addSignatureCollection = function (bounds, position) {\n var minimumX = -1;\n var minimumY = -1;\n var maximumX = -1;\n var maximumY = -1;\n // eslint-disable-next-line\n var collectionData = processPathData(this.outputString);\n // eslint-disable-next-line\n var newCanvas = document.createElement('canvas');\n // eslint-disable-next-line\n var context = newCanvas.getContext('2d');\n // eslint-disable-next-line\n var imageString;\n var signatureType = this.pdfViewerBase.currentSignatureAnnot.shapeAnnotationType;\n if (signatureType === 'HandWrittenSignature') {\n if (collectionData.length !== 0) {\n // eslint-disable-next-line\n for (var k = 0; k < collectionData.length; k++) {\n // eslint-disable-next-line\n var val = collectionData[k];\n if (minimumX === -1) {\n // eslint-disable-next-line\n minimumX = (val['x']);\n // eslint-disable-next-line\n maximumX = (val['x']);\n // eslint-disable-next-line\n minimumY = (val['y']);\n // eslint-disable-next-line\n maximumY = (val['y']);\n }\n else {\n // eslint-disable-next-line\n var point1 = (val['x']);\n // eslint-disable-next-line\n var point2 = (val['y']);\n if (minimumX >= point1) {\n minimumX = point1;\n }\n if (minimumY >= point2) {\n minimumY = point2;\n }\n if (maximumX <= point1) {\n maximumX = point1;\n }\n if (maximumY <= point2) {\n maximumY = point2;\n }\n }\n }\n var newdifferenceX = maximumX - minimumX;\n var newdifferenceY = maximumY - minimumY;\n var differenceX = newdifferenceX / 100;\n var differenceY = newdifferenceY / 100;\n var left = 0;\n var top_1 = 0;\n if (bounds) {\n newCanvas.width = position.currentWidth;\n newCanvas.height = position.currentHeight;\n differenceX = newdifferenceX / (bounds.width);\n differenceY = newdifferenceY / (bounds.height);\n left = bounds.x - position.currentLeft;\n top_1 = bounds.y - position.currentTop;\n }\n else {\n newCanvas.width = 100;\n newCanvas.height = 100;\n }\n context.beginPath();\n for (var n = 0; n < collectionData.length; n++) {\n // eslint-disable-next-line\n var val = collectionData[n];\n // eslint-disable-next-line\n var point1 = ((val['x'] - minimumX) / differenceX) + left;\n // eslint-disable-next-line\n var point2 = ((val['y'] - minimumY) / differenceY) + top_1;\n // eslint-disable-next-line\n if (val['command'] === 'M') {\n context.moveTo(point1, point2);\n // eslint-disable-next-line\n }\n else if (val['command'] === 'L') {\n context.lineTo(point1, point2);\n }\n }\n context.stroke();\n context.closePath();\n imageString = newCanvas.toDataURL();\n }\n }\n else if (signatureType === 'SignatureText') {\n imageString = this.outputString;\n }\n else {\n imageString = this.outputString;\n }\n if (bounds) {\n this.saveImageString = imageString;\n }\n else {\n // eslint-disable-next-line\n var signCollection = {};\n signCollection['sign_' + this.pdfViewerBase.imageCount] = this.outputString;\n this.outputcollection.push(signCollection);\n // eslint-disable-next-line\n var signature = [];\n signature.push({ id: 'sign_' + this.pdfViewerBase.imageCount, imageData: imageString, signatureType: signatureType, fontFamily: this.pdfViewerBase.currentSignatureAnnot.fontFamily });\n this.signaturecollection.push({ image: signature, isInitial: this.pdfViewerBase.isInitialField });\n this.pdfViewerBase.imageCount++;\n }\n };\n /**\n * @private]\n * @param {number} limit - The limit.\n * @returns {number} - Returns number.\n */\n Signature.prototype.getSaveLimit = function (limit) {\n if (limit > this.maxSaveLimit) {\n limit = this.maxSaveLimit;\n }\n else if (limit < 1) {\n limit = 1;\n }\n return limit;\n };\n /**\n * @private\n * @returns {void}\n */\n Signature.prototype.RenderSavedSignature = function () {\n this.pdfViewerBase.signatureCount++;\n var zoomvalue = this.pdfViewerBase.getZoomFactor();\n var annot;\n if (this.pdfViewerBase.isAddedSignClicked) {\n var annotationName = this.pdfViewer.annotation.createGUID();\n this.pdfViewerBase.currentSignatureAnnot = null;\n this.pdfViewerBase.isSignatureAdded = true;\n var pageIndex = this.pdfViewerBase.currentPageNumber - 1;\n var pageDiv = document.getElementById(this.pdfViewer.element.id + '_pageDiv_' + pageIndex);\n var currentLeft = 0;\n var currentTop = 0;\n // eslint-disable-next-line max-len\n var currentWidth = this.pdfViewer.handWrittenSignatureSettings.width ? this.pdfViewer.handWrittenSignatureSettings.width : 100;\n // eslint-disable-next-line max-len\n var currentHeight = this.pdfViewer.handWrittenSignatureSettings.height ? this.pdfViewer.handWrittenSignatureSettings.height : 100;\n // eslint-disable-next-line max-len\n var thickness = this.pdfViewer.handWrittenSignatureSettings.thickness ? this.pdfViewer.handWrittenSignatureSettings.thickness : 1;\n // eslint-disable-next-line max-len\n var opacity = this.pdfViewer.handWrittenSignatureSettings.opacity ? this.pdfViewer.handWrittenSignatureSettings.opacity : 1;\n // eslint-disable-next-line max-len\n var strokeColor = this.pdfViewer.handWrittenSignatureSettings.strokeColor ? this.pdfViewer.handWrittenSignatureSettings.strokeColor : '#000000';\n currentLeft = ((parseFloat(pageDiv.style.width) / 2) - (currentWidth / 2)) / zoomvalue;\n // eslint-disable-next-line max-len\n currentTop = ((parseFloat(pageDiv.style.height) / 2) - (currentHeight / 2)) / zoomvalue;\n var keyString = '';\n var signatureType = void 0;\n var signatureFontFamily = void 0;\n for (var collection = 0; collection < this.outputcollection.length; collection++) {\n // eslint-disable-next-line\n var collectionAddedsign = this.outputcollection[collection];\n // eslint-disable-next-line\n var eventTarget = event.target;\n // eslint-disable-next-line max-len\n if (eventTarget && eventTarget.id === 'sign_' + collection || eventTarget && eventTarget.id === 'sign_border' + collection) {\n keyString = collectionAddedsign['sign_' + collection];\n break;\n }\n }\n for (var signatureIndex = 0; signatureIndex < this.signaturecollection.length; signatureIndex++) {\n var eventTarget = event.target;\n var signatureId = this.signaturecollection[parseInt(signatureIndex.toString(), 10)].image[0].id.split('_')[1];\n if (eventTarget && eventTarget.id === 'sign_' + signatureId || eventTarget && eventTarget.id === 'sign_border' + signatureId) {\n signatureType = this.signaturecollection[parseInt(signatureIndex.toString(), 10)].image[0].signatureType;\n signatureFontFamily = this.signaturecollection[parseInt(signatureIndex.toString(), 10)].image[0].fontFamily;\n break;\n }\n }\n if (signatureType === 'HandWrittenSignature') {\n // eslint-disable-next-line\n var signatureBounds = this.pdfViewer.formFieldsModule.updateSignatureAspectRatio(keyString, true);\n // eslint-disable-next-line max-len\n currentWidth = signatureBounds.width ? signatureBounds.width : currentWidth;\n // eslint-disable-next-line max-len\n currentHeight = signatureBounds.height ? signatureBounds.height : currentHeight;\n }\n else {\n currentWidth = currentWidth === 150 ? 200 : this.pdfViewer.handWrittenSignatureSettings.width;\n // eslint-disable-next-line max-len\n currentHeight = currentHeight === 100 ? 65 : this.pdfViewer.handWrittenSignatureSettings.height;\n }\n annot = {\n // eslint-disable-next-line max-len\n id: 'sign' + this.pdfViewerBase.signatureCount, bounds: { x: currentLeft, y: currentTop, width: currentWidth, height: currentHeight }, pageIndex: pageIndex, data: keyString,\n // eslint-disable-next-line max-len\n shapeAnnotationType: signatureType, opacity: opacity, fontFamily: signatureFontFamily, strokeColor: strokeColor, thickness: thickness, signatureName: annotationName\n };\n this.pdfViewerBase.currentSignatureAnnot = annot;\n this.pdfViewerBase.isAddedSignClicked = false;\n }\n else {\n this.pdfViewer.formFieldsModule.drawSignature();\n }\n };\n /**\n * @private\n * @returns {void}\n */\n Signature.prototype.updateCanvasSize = function () {\n // eslint-disable-next-line\n var canvas = document.getElementById(this.pdfViewer.element.id + '_signatureCanvas_');\n this.setTabItemWidth(canvas);\n var uploadCanvas = document.getElementById(this.pdfViewer.element.id + '_signatureuploadCanvas_');\n this.setTabItemWidth(uploadCanvas);\n var fontAppearance = document.getElementById(this.pdfViewer.element.id + '_font_appearance');\n this.setTabItemWidth(fontAppearance);\n };\n Signature.prototype.setTabItemWidth = function (canvas) {\n var padding = 2;\n var maximumWidth = 750;\n var canvasWidth = 714;\n var margin = 50;\n var elem = document.querySelector('.e-dlg-content');\n if (elem) {\n var style = getComputedStyle(elem);\n padding = padding + parseInt(style.paddingLeft, 10) + parseInt(style.paddingRight, 10);\n }\n if (canvas && this.signatureDialog && this.signatureDialog.visible) {\n var context_2 = canvas.getContext('2d');\n var canvasContent = canvas.toDataURL();\n if (this.pdfViewer.element.offsetWidth > maximumWidth) {\n canvas.width = canvasWidth;\n canvas.style.width = canvasWidth + 'px';\n }\n else {\n canvas.width = this.pdfViewer.element.offsetWidth - padding;\n canvas.style.width = canvas.width + 'px';\n }\n var image_3 = new Image();\n image_3.src = canvasContent;\n image_3.onload = function () {\n context_2.drawImage(image_3, 0, 0, canvas.width, canvas.height);\n };\n }\n var fontInnerDiv = document.getElementsByClassName('e-pv-font-sign');\n if (canvas && fontInnerDiv && fontInnerDiv.length > 0) {\n for (var i = 0; i < fontInnerDiv.length; i++) {\n var fontDiv = fontInnerDiv[parseInt(i.toString(), 10)];\n fontDiv.style.width = ((canvas.width / 2) - margin) + 'px';\n }\n }\n };\n Signature.prototype.drawSignOnTabSwitch = function () {\n var proxy = this;\n var image = new Image();\n image.onload = function () {\n var canvas = document.getElementById(proxy.pdfViewer.element.id + '_signatureCanvas_');\n if (canvas) {\n var context = canvas.getContext('2d');\n context.drawImage(image, 0, 0);\n }\n };\n image.src = this.drawSignatureDataUrl;\n };\n Signature.prototype.imageSignOnTabSwitch = function () {\n var proxy = this;\n var image = new Image();\n image.onload = function () {\n var canvas = document.getElementById(proxy.pdfViewer.element.id + '_signatureuploadCanvas_');\n if (canvas) {\n var context = canvas.getContext('2d');\n var signbutton = document.getElementById(proxy.pdfViewer.element.id + '_e-pv-upload-button');\n signbutton.style.visibility = 'hidden';\n context.drawImage(image, 0, 0, canvas.width, canvas.height);\n proxy.enableCreateButton(false);\n proxy.signatureImageHeight = image.naturalHeight;\n proxy.signatureImageWidth = image.naturalWidth;\n }\n };\n image.src = this.imageSignatureDataUrl;\n };\n Signature.prototype.signaturePanelMouseDown = function (e) {\n if (e.type !== 'contextmenu') {\n e.preventDefault();\n this.findMousePosition(e);\n this.mouseDetection = true;\n this.oldX = this.mouseX;\n this.oldY = this.mouseY;\n this.newObject = [];\n this.drawMousePosition(e);\n this.mouseMoving = true;\n }\n };\n Signature.prototype.enableCreateButton = function (isEnable) {\n // eslint-disable-next-line\n var createbtn = document.getElementsByClassName('e-pv-createbtn')[0];\n if (createbtn) {\n createbtn.disabled = isEnable;\n }\n this.enableClearbutton(isEnable);\n };\n Signature.prototype.enableClearbutton = function (isEnable) {\n // eslint-disable-next-line\n var clearbtn = document.getElementsByClassName('e-pv-clearbtn')[0];\n if (clearbtn) {\n clearbtn.disabled = isEnable;\n }\n };\n Signature.prototype.signaturePanelMouseMove = function (e) {\n if (this.mouseDetection && this.signaturetype === 'Draw') {\n this.findMousePosition(e);\n this.enableCreateButton(false);\n this.drawMousePosition(e);\n }\n };\n Signature.prototype.findMousePosition = function (event) {\n var offsetX;\n var offsetY;\n if (event.type.indexOf('touch') !== -1) {\n event = event;\n var element = event.target;\n // eslint-disable-next-line\n var currentRect = element.getBoundingClientRect();\n this.mouseX = event.changedTouches[0].clientX - currentRect.left;\n this.mouseY = event.changedTouches[0].clientY - currentRect.top;\n }\n else {\n event = event;\n this.mouseX = event.offsetX;\n this.mouseY = event.offsetY;\n }\n };\n Signature.prototype.drawMousePosition = function (event) {\n if (this.mouseDetection) {\n this.drawSignatureInCanvas();\n this.oldX = this.mouseX;\n this.oldY = this.mouseY;\n }\n };\n Signature.prototype.drawSignatureInCanvas = function () {\n // eslint-disable-next-line\n var canvas = document.getElementById(this.pdfViewer.element.id + '_signatureCanvas_');\n // eslint-disable-next-line\n var context = canvas.getContext('2d');\n context.beginPath();\n context.moveTo(this.oldX, this.oldY);\n context.lineTo(this.mouseX, this.mouseY);\n context.stroke();\n context.lineWidth = 2;\n context.arc(this.oldX, this.oldY, 2 / 2, 0, Math.PI * 2, true);\n context.closePath();\n this.newObject.push(this.mouseX, this.mouseY);\n };\n Signature.prototype.signaturePanelMouseUp = function () {\n if (this.mouseDetection) {\n this.convertToPath(this.newObject);\n }\n this.mouseDetection = false;\n if (event.type == 'touchend') {\n this.canvasTouched = true;\n }\n };\n Signature.prototype.signaturePanelMouseLeave = function () {\n if (this.mouseDetection) {\n this.convertToPath(this.newObject);\n }\n this.mouseDetection = false;\n this.mouseMoving = false;\n };\n ;\n // eslint-disable-next-line\n Signature.prototype.convertToPath = function (newObject) {\n this.movePath(newObject[0], newObject[1]);\n this.linePath(newObject[0], newObject[1]);\n for (var n = 2; n < newObject.length; n = n + 2) {\n this.linePath(newObject[parseInt(n.toString(), 10)], newObject[n + 1]);\n }\n };\n Signature.prototype.linePath = function (x, y) {\n this.outputString += 'L' + x + ',' + y + ' ';\n };\n Signature.prototype.movePath = function (x, y) {\n this.outputString += 'M' + x + ',' + y + ' ';\n };\n /**\n * @private\n * @returns {void}\n */\n Signature.prototype.clearSignatureCanvas = function (type) {\n var isCanvasClear = true;\n var drawObject = [];\n if (type && !isNullOrUndefined(type.previousIndex) && !isNullOrUndefined(type.selectedIndex)) {\n isCanvasClear = false;\n if (type.previousIndex === 0) {\n this.drawOutputString = this.outputString;\n drawObject = this.newObject;\n }\n else if (type.previousIndex === 2) {\n this.imageOutputString = this.outputString;\n }\n this.outputString = '';\n this.newObject = [];\n if (type.selectedIndex === 0) {\n this.outputString = this.drawOutputString;\n this.newObject = drawObject;\n }\n else if (type.selectedIndex === 2) {\n this.outputString = this.imageOutputString;\n }\n }\n else {\n this.outputString = '';\n this.newObject = [];\n }\n var isClearDrawTab = false;\n var isClearTypeTab = false;\n var isClearImageTab = false;\n if (type && type.currentTarget && type.currentTarget.classList.contains(\"e-pv-clearbtn\")) {\n isCanvasClear = false;\n if (this.signaturetype === 'Draw') {\n isClearDrawTab = true;\n var checkbox = document.getElementById('checkbox');\n var checkBoxElement = document.getElementById('checkbox');\n if (checkbox && checkBoxElement.nextElementSibling) {\n checkBoxElement.nextElementSibling.classList.remove('e-check');\n checkbox.checked = false;\n }\n }\n else if (this.signaturetype === 'Type') {\n isClearTypeTab = true;\n var checkbox = document.getElementById('checkbox1');\n var checkBoxElement = document.getElementById('checkbox1');\n if (checkbox && checkBoxElement.nextElementSibling) {\n checkBoxElement.nextElementSibling.classList.remove('e-check');\n checkbox.checked = false;\n this.textValue = '';\n }\n }\n else {\n isClearImageTab = true;\n this.clearUploadString = true;\n var checkbox = document.getElementById('checkbox2');\n var checkBoxElement = document.getElementById('checkbox2');\n if (checkbox && checkBoxElement.nextElementSibling) {\n checkBoxElement.nextElementSibling.classList.remove('e-check');\n checkbox.checked = false;\n }\n }\n }\n // eslint-disable-next-line\n var canvas = document.getElementById(this.pdfViewer.element.id + '_signatureCanvas_');\n // eslint-disable-next-line\n if ((canvas && isCanvasClear) || (isClearDrawTab)) {\n // eslint-disable-next-line\n var context = canvas.getContext('2d');\n context.clearRect(0, 0, canvas.width, canvas.height);\n }\n // eslint-disable-next-line\n var imageCanvas = document.getElementById(this.pdfViewer.element.id + '_signatureuploadCanvas_');\n if (imageCanvas && isCanvasClear || (isClearImageTab)) {\n // eslint-disable-next-line\n var context = imageCanvas.getContext('2d');\n context.clearRect(0, 0, imageCanvas.width, imageCanvas.height);\n // eslint-disable-next-line\n var signbutton = document.getElementById(this.pdfViewer.element.id + '_e-pv-upload-button');\n if (signbutton) {\n signbutton.style.visibility = '';\n }\n }\n // eslint-disable-next-line\n var fontdiv = document.getElementById(this.pdfViewer.element.id + '_font_appearance');\n // eslint-disable-next-line\n var textbox = document.getElementById(this.pdfViewer.element.id + '_e-pv-Signtext-box');\n if ((fontdiv && textbox && isCanvasClear) || (isClearTypeTab)) {\n textbox.value = '';\n if (!isBlazor()) {\n fontdiv.innerHTML = '';\n }\n }\n this.enableCreateButton(true);\n };\n /**\n * @private\n * @returns {void}\n */\n Signature.prototype.closeSignaturePanel = function () {\n if (this.pdfViewerBase.currentTarget) {\n this.pdfViewerBase.drawSignatureWithTool = true;\n }\n this.clearSignatureCanvas();\n if (!isBlazor()) {\n this.signatureDialog.hide();\n }\n this.pdfViewerBase.isToolbarSignClicked = false;\n this.pdfViewerBase.drawSignatureWithTool = false;\n this.drawOutputString = '';\n this.imageOutputString = '';\n };\n /**\n * @private\n * @returns {string} - Returns the string.\n */\n Signature.prototype.saveSignature = function () {\n // eslint-disable-next-line\n var storeObject = null;\n if (this.pdfViewerBase.isStorageExceed) {\n storeObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_sign'];\n }\n else {\n storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_sign');\n }\n // eslint-disable-next-line\n var annotations = new Array();\n for (var j = 0; j < this.pdfViewerBase.pageCount; j++) {\n annotations[parseInt(j.toString(), 10)] = [];\n }\n if (storeObject) {\n var annotationCollection = JSON.parse(storeObject);\n for (var i = 0; i < annotationCollection.length; i++) {\n var newArray = [];\n var pageAnnotationObject = annotationCollection[parseInt(i.toString(), 10)];\n if (pageAnnotationObject) {\n for (var z = 0; pageAnnotationObject.annotations.length > z; z++) {\n if (this.pdfViewer.isSignatureEditable) {\n // eslint-disable-next-line max-len\n var signatureSettings = this.pdfViewer.handWrittenSignatureSettings;\n var annotationSettings = this.pdfViewer.annotationSettings;\n var annotationAuthor = (signatureSettings.author !== 'Guest') ? signatureSettings.author : annotationSettings.author ? annotationSettings.author : 'Guest';\n // eslint-disable-next-line max-len\n pageAnnotationObject.annotations[parseInt(z.toString(), 10)].author = annotationAuthor;\n }\n // eslint-disable-next-line max-len\n var strokeColorString = pageAnnotationObject.annotations[parseInt(z.toString(), 10)].strokeColor ? pageAnnotationObject.annotations[parseInt(z.toString(), 10)].strokeColor : \"black\";\n pageAnnotationObject.annotations[parseInt(z.toString(), 10)].strokeColor = JSON.stringify(this.getRgbCode(strokeColorString));\n // eslint-disable-next-line max-len\n pageAnnotationObject.annotations[parseInt(z.toString(), 10)].bounds = JSON.stringify(this.pdfViewer.annotation.getBounds(pageAnnotationObject.annotations[parseInt(z.toString(), 10)].bounds, pageAnnotationObject.pageIndex));\n if (pageAnnotationObject.annotations[parseInt(z.toString(), 10)].shapeAnnotationType === 'HandWrittenSignature' || pageAnnotationObject.annotations[parseInt(z.toString(), 10)].signatureName === 'ink') {\n // eslint-disable-next-line\n var collectionData = processPathData(pageAnnotationObject.annotations[parseInt(z.toString(), 10)].data);\n // eslint-disable-next-line\n var csData = splitArrayCollection(collectionData);\n pageAnnotationObject.annotations[parseInt(z.toString(), 10)].data = JSON.stringify(csData);\n }\n else {\n if (pageAnnotationObject.annotations[parseInt(z.toString(), 10)].shapeAnnotationType === 'SignatureText' && !this.checkDefaultFont(pageAnnotationObject.annotations[parseInt(z.toString(), 10)].fontFamily)) {\n var signTypeCanvas = createElement('canvas');\n var bounds = JSON.parse(pageAnnotationObject.annotations[parseInt(z.toString(), 10)].bounds);\n signTypeCanvas.width = (bounds && bounds.width) || 150;\n signTypeCanvas.height = (bounds && bounds.height) || pageAnnotationObject.annotations[parseInt(z.toString(), 10)].fontSize * 2;\n // eslint-disable-next-line\n var canvasContext = signTypeCanvas.getContext('2d');\n var x = signTypeCanvas.width / 2;\n var y = (signTypeCanvas.height / 2) + pageAnnotationObject.annotations[parseInt(z.toString(), 10)].fontSize / 2 - 10;\n canvasContext.textAlign = 'center';\n canvasContext.font = pageAnnotationObject.annotations[parseInt(z.toString(), 10)].fontSize + 'px ' + pageAnnotationObject.annotations[parseInt(z.toString(), 10)].fontFamily;\n canvasContext.fillText(pageAnnotationObject.annotations[parseInt(z.toString(), 10)].data, x, y);\n pageAnnotationObject.annotations[parseInt(z.toString(), 10)].data = JSON.stringify(signTypeCanvas.toDataURL('image/png'));\n pageAnnotationObject.annotations[parseInt(z.toString(), 10)].shapeAnnotationType = 'SignatureImage';\n }\n else {\n pageAnnotationObject.annotations[parseInt(z.toString(), 10)].data = JSON.stringify(pageAnnotationObject.annotations[parseInt(z.toString(), 10)].data);\n }\n }\n }\n newArray = pageAnnotationObject.annotations;\n }\n annotations[pageAnnotationObject.pageIndex] = newArray;\n }\n }\n return JSON.stringify(annotations);\n };\n Signature.prototype.checkDefaultFont = function (fontName) {\n // eslint-disable-next-line\n [{ FontName: 'Helvetica' }, { FontName: 'Times New Roman' }, { FontName: 'Courier' }, { FontName: 'Symbol' }];\n if (fontName === 'Helvetica' || fontName === 'Times New Roman' || fontName === 'Courier' || fontName === 'Symbol') {\n return true;\n }\n return false;\n };\n /**\n * @param colorString\n * @private\n */\n // eslint-disable-next-line\n Signature.prototype.getRgbCode = function (colorString) {\n /* eslint-disable-next-line security/detect-unsafe-regex */\n if (!colorString.match(/#([a-z0-9]+)/gi) && !colorString.match(/^rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+)(?:,\\s*(\\d+(?:\\.\\d+)?))?\\)$/)) {\n colorString = this.pdfViewer.annotationModule.nameToHash(colorString);\n }\n var stringArray = colorString.split(',');\n if (isNullOrUndefined(stringArray[1])) {\n colorString = this.pdfViewer.annotationModule.getValue(colorString, 'rgba');\n stringArray = colorString.split(',');\n }\n // eslint-disable-next-line radix\n var r = parseInt(stringArray[0].split('(')[1]);\n // eslint-disable-next-line radix\n var g = parseInt(stringArray[1]);\n // eslint-disable-next-line radix\n var b = parseInt(stringArray[2]);\n // eslint-disable-next-line radix\n var a = parseInt(stringArray[3]);\n return { r: r, g: g, b: b, a: a };\n };\n /**\n * @private\n * @param {number} left - The left.\n * @param {number} top - The top.\n * @returns {void}\n */\n Signature.prototype.renderSignature = function (left, top) {\n var annot;\n // eslint-disable-next-line\n var currentAnnotation = this.pdfViewerBase.currentSignatureAnnot;\n var annotationName = this.pdfViewer.annotation.createGUID();\n if (currentAnnotation) {\n if (this.pdfViewerBase.currentSignatureAnnot.shapeAnnotationType === 'HandWrittenSignature') {\n annot = {\n // eslint-disable-next-line max-len\n id: currentAnnotation.id, bounds: { x: left, y: top, width: currentAnnotation.bounds.width, height: currentAnnotation.bounds.height }, pageIndex: currentAnnotation.pageIndex, data: currentAnnotation.data,\n shapeAnnotationType: 'HandWrittenSignature', opacity: currentAnnotation.opacity, fontFamily: currentAnnotation.fontFamily, fontSize: currentAnnotation.fontSize, strokeColor: currentAnnotation.strokeColor, thickness: currentAnnotation.thickness, signatureName: annotationName\n };\n }\n if (this.pdfViewerBase.currentSignatureAnnot.shapeAnnotationType === 'SignatureText') {\n annot = {\n // eslint-disable-next-line max-len\n id: currentAnnotation.id, bounds: { x: left, y: top, width: currentAnnotation.bounds.width, height: currentAnnotation.bounds.height }, pageIndex: currentAnnotation.pageIndex, data: currentAnnotation.data,\n shapeAnnotationType: 'SignatureText', opacity: currentAnnotation.opacity, fontFamily: currentAnnotation.fontFamily, fontSize: currentAnnotation.fontSize, strokeColor: currentAnnotation.strokeColor, thickness: currentAnnotation.thickness, signatureName: annotationName\n };\n }\n else if (this.pdfViewerBase.currentSignatureAnnot.shapeAnnotationType === 'SignatureImage') {\n annot = {\n // eslint-disable-next-line max-len\n id: currentAnnotation.id, bounds: { x: left, y: top, width: currentAnnotation.bounds.width, height: currentAnnotation.bounds.height }, pageIndex: currentAnnotation.pageIndex, data: currentAnnotation.data,\n shapeAnnotationType: 'SignatureImage', opacity: currentAnnotation.opacity, fontFamily: currentAnnotation.fontFamily, fontSize: currentAnnotation.fontSize, strokeColor: currentAnnotation.strokeColor, thickness: currentAnnotation.thickness, signatureName: annotationName\n };\n }\n this.pdfViewer.add(annot);\n // eslint-disable-next-line\n var canvass = document.getElementById(this.pdfViewer.element.id + '_annotationCanvas_' + currentAnnotation.pageIndex);\n // eslint-disable-next-line\n this.pdfViewer.renderDrawing(canvass, currentAnnotation.pageIndex);\n this.pdfViewerBase.signatureAdded = true;\n // eslint-disable-next-line max-len\n this.storeSignatureData(currentAnnotation.pageIndex, annot);\n this.pdfViewer.fireSignatureAdd(currentAnnotation.pageIndex, currentAnnotation.signatureName, currentAnnotation.shapeAnnotationType, currentAnnotation.bounds, currentAnnotation.opacity, currentAnnotation.strokeColor, currentAnnotation.thickness);\n this.pdfViewerBase.currentSignatureAnnot = null;\n this.pdfViewerBase.signatureCount++;\n }\n };\n /**\n * @param annotationCollection\n * @param pageIndex\n * @param isImport\n * @private\n */\n // eslint-disable-next-line\n Signature.prototype.renderExistingSignature = function (annotationCollection, pageIndex, isImport) {\n var annot;\n var isAnnotationAdded = false;\n if (!isImport) {\n for (var p = 0; p < this.signAnnotationIndex.length; p++) {\n if (this.signAnnotationIndex[parseInt(p.toString(), 10)] === pageIndex) {\n isAnnotationAdded = true;\n break;\n }\n }\n }\n if (annotationCollection && !isAnnotationAdded) {\n if (annotationCollection.length > 0 && this.signAnnotationIndex.indexOf(pageIndex) === -1) {\n this.signAnnotationIndex.push(pageIndex);\n }\n for (var n = 0; n < annotationCollection.length; n++) {\n // eslint-disable-next-line\n var currentAnnotation = annotationCollection[n];\n if (currentAnnotation) {\n // eslint-disable-next-line\n var data = currentAnnotation.PathData;\n if (isImport) {\n if (currentAnnotation.IsSignature) {\n data = currentAnnotation.PathData;\n }\n else if (currentAnnotation.AnnotationType === 'SignatureImage' || currentAnnotation.AnnotationType === 'SignatureText') {\n data = JSON.parse(JSON.stringify(currentAnnotation.PathData));\n }\n else {\n if (data.includes('command')) {\n data = getPathString(JSON.parse(currentAnnotation.PathData));\n }\n else {\n data = currentAnnotation.PathData;\n }\n }\n }\n this.outputString = data;\n this.outputString = '';\n var rectDiff = 0;\n var rectDifference = 1;\n var bounds = currentAnnotation.Bounds;\n var currentLeft = !isNullOrUndefined(bounds.X) ? bounds.X + (rectDiff / 2) : bounds.x + (rectDiff / 2);\n var currentTop = !isNullOrUndefined(bounds.Y) ? bounds.Y + (rectDiff / 2) : bounds.y + (rectDiff / 2);\n var currentWidth = bounds.Width ? bounds.Width - (rectDifference - 1) : bounds.width - (rectDifference - 1);\n var currentHeight = bounds.Height ? bounds.Height - (rectDifference - 1) : bounds.height - (rectDifference - 1);\n if (currentAnnotation.AnnotationType === 'SignatureText') {\n annot = {\n id: 'sign' + this.pdfViewerBase.signatureCount, bounds: { x: currentLeft, y: currentTop, width: currentWidth, height: currentHeight }, pageIndex: pageIndex, data: data, fontFamily: currentAnnotation.FontFamily, fontSize: currentAnnotation.FontSize,\n shapeAnnotationType: 'SignatureText', opacity: currentAnnotation.Opacity, strokeColor: currentAnnotation.StrokeColor, thickness: currentAnnotation.Thickness, signatureName: currentAnnotation.SignatureName\n };\n }\n else if (currentAnnotation.AnnotationType === 'SignatureImage') {\n annot = {\n id: 'sign' + this.pdfViewerBase.signatureCount, bounds: { x: currentLeft, y: currentTop, width: currentWidth, height: currentHeight }, pageIndex: pageIndex, data: data, shapeAnnotationType: 'SignatureImage', opacity: currentAnnotation.Opacity, strokeColor: currentAnnotation.StrokeColor, thickness: currentAnnotation.Thickness, signatureName: currentAnnotation.SignatureName\n };\n }\n else {\n annot = {\n id: 'sign' + this.pdfViewerBase.signatureCount, bounds: { x: currentLeft, y: currentTop, width: currentWidth, height: currentHeight }, pageIndex: pageIndex, data: data, shapeAnnotationType: 'HandWrittenSignature', opacity: currentAnnotation.Opacity, strokeColor: currentAnnotation.StrokeColor, thickness: currentAnnotation.Thickness, signatureName: currentAnnotation.SignatureName ? currentAnnotation.SignatureName : \"ink\"\n };\n }\n }\n this.pdfViewer.add(annot);\n // eslint-disable-next-line\n var canvass = document.getElementById(this.pdfViewer.element.id + '_annotationCanvas_' + currentAnnotation.pageIndex);\n // eslint-disable-next-line\n this.pdfViewer.renderDrawing(canvass, annot.pageIndex);\n this.storeSignatureData(annot.pageIndex, annot);\n this.pdfViewerBase.currentSignatureAnnot = null;\n this.pdfViewerBase.signatureCount++;\n // eslint-disable-next-line max-len\n if (this.pdfViewerBase.navigationPane && this.pdfViewerBase.navigationPane.annotationMenuObj && this.pdfViewer.isSignatureEditable) {\n // eslint-disable-next-line max-len\n this.pdfViewerBase.navigationPane.annotationMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Export Annotations')], true);\n // eslint-disable-next-line max-len\n this.pdfViewerBase.navigationPane.annotationMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Export XFDF')], true);\n }\n }\n }\n };\n /**\n * @param pageNumber\n * @param annotations\n * @private\n */\n // eslint-disable-next-line\n Signature.prototype.storeSignatureData = function (pageNumber, annotations) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(annotations.pageIndex ? annotations.pageIndex : annotations.PageIndex, null, annotations, 'Addition', '', annotations, annotations);\n var annotation = null;\n var left;\n var top;\n var width;\n var height;\n var pageIndex;\n if (annotations.bounds) {\n left = annotations.bounds.left ? annotations.bounds.left : annotations.bounds.x;\n top = annotations.bounds.top ? annotations.bounds.top : annotations.bounds.y;\n width = annotations.bounds.width;\n height = annotations.bounds.height;\n pageIndex = annotations.pageIndex;\n }\n else {\n left = annotations.Bounds.left ? annotations.Bounds.left : annotations.Bounds.x;\n top = annotations.Bounds.top ? annotations.Bounds.top : annotations.Bounds.y;\n width = annotations.LineBounds.Width;\n height = annotations.LineBounds.Height;\n pageIndex = annotations.PageIndex;\n }\n if (annotations.wrapper && annotations.wrapper.bounds) {\n left = annotations.wrapper.bounds.left;\n top = annotations.wrapper.bounds.top;\n }\n annotation = {\n id: annotations.id ? annotations.id : null, bounds: { left: left, top: top, width: width, height: height }, shapeAnnotationType: annotations.shapeAnnotationType ? annotations.shapeAnnotationType : \"ink\", opacity: annotations.opacity ? annotations.opacity : 1, thickness: annotations.thickness ? annotations.thickness : 1, strokeColor: annotations.strokeColor ? annotations.strokeColor : null, pageIndex: pageIndex, data: annotations.data ? annotations.data : annotations.Value, fontSize: annotations.fontSize ? annotations.fontSize : null, fontFamily: annotations.fontFamily ? annotations.fontFamily : null, signatureName: annotations.signatureName ? annotations.signatureName : annotations.Name\n };\n // eslint-disable-next-line\n var sessionSize = Math.round(JSON.stringify(window.sessionStorage).length / 1024);\n // eslint-disable-next-line\n var currentAnnotation = Math.round(JSON.stringify(annotation).length / 1024);\n if ((sessionSize + currentAnnotation) > 4500) {\n this.pdfViewerBase.isStorageExceed = true;\n this.pdfViewer.annotationModule.clearAnnotationStorage();\n if (!(this.pdfViewerBase.isFormStorageExceed)) {\n this.pdfViewer.formFieldsModule.clearFormFieldStorage();\n }\n }\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_sign');\n var index = 0;\n if (!storeObject) {\n this.storeSignatureCollections(annotation, pageNumber);\n var shapeAnnotation = { pageIndex: pageNumber, annotations: [] };\n shapeAnnotation.annotations.push(annotation);\n index = shapeAnnotation.annotations.indexOf(annotation);\n var annotationCollection = [];\n annotationCollection.push(shapeAnnotation);\n var annotationStringified = JSON.stringify(annotationCollection);\n if (this.pdfViewerBase.isStorageExceed) {\n this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_sign'] = annotationStringified;\n }\n else {\n window.sessionStorage.setItem(this.pdfViewerBase.documentId + '_annotations_sign', annotationStringified);\n }\n }\n else {\n this.storeSignatureCollections(annotation, pageNumber);\n var annotObject = JSON.parse(storeObject);\n window.sessionStorage.removeItem(this.pdfViewerBase.documentId + '_annotations_sign');\n var pageIndex_1 = this.pdfViewer.annotationModule.getPageCollection(annotObject, pageNumber);\n if (!isNullOrUndefined(pageIndex_1) && annotObject[parseInt(pageIndex_1.toString(), 10)]) {\n annotObject[parseInt(pageIndex_1.toString(), 10)].annotations.push(annotation);\n index = annotObject[parseInt(pageIndex_1.toString(), 10)].annotations.indexOf(annotation);\n }\n else {\n var markupAnnotation = { pageIndex: pageNumber, annotations: [] };\n markupAnnotation.annotations.push(annotation);\n index = markupAnnotation.annotations.indexOf(annotation);\n annotObject.push(markupAnnotation);\n }\n var annotationStringified = JSON.stringify(annotObject);\n if (this.pdfViewerBase.isStorageExceed) {\n this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_sign'] = annotationStringified;\n }\n else {\n window.sessionStorage.setItem(this.pdfViewerBase.documentId + '_annotations_sign', annotationStringified);\n }\n }\n };\n /**\n * @param property\n * @param pageNumber\n * @param annotationBase\n * @param isSignatureEdited\n * @private\n */\n // eslint-disable-next-line\n Signature.prototype.modifySignatureCollection = function (property, pageNumber, annotationBase, isSignatureEdited) {\n this.pdfViewerBase.updateDocumentEditedProperty(true);\n var currentAnnotObject = null;\n var pageAnnotations = this.getAnnotations(pageNumber, null);\n if (pageAnnotations != null && annotationBase) {\n for (var i = 0; i < pageAnnotations.length; i++) {\n if (annotationBase.id === pageAnnotations[parseInt(i.toString(), 10)].id) {\n if (property === 'bounds') {\n // eslint-disable-next-line max-len\n pageAnnotations[parseInt(i.toString(), 10)].bounds = { left: annotationBase.wrapper.bounds.left, top: annotationBase.wrapper.bounds.top, width: annotationBase.bounds.width, height: annotationBase.bounds.height };\n pageAnnotations[parseInt(i.toString(), 10)].fontSize = annotationBase.fontSize;\n }\n else if (property === 'stroke') {\n pageAnnotations[parseInt(i.toString(), 10)].strokeColor = annotationBase.wrapper.children[0].style.strokeColor;\n }\n else if (property === 'opacity') {\n pageAnnotations[parseInt(i.toString(), 10)].opacity = annotationBase.wrapper.children[0].style.opacity;\n }\n else if (property === 'thickness') {\n pageAnnotations[parseInt(i.toString(), 10)].thickness = annotationBase.wrapper.children[0].style.strokeWidth;\n }\n else if (property === 'delete') {\n this.updateSignatureCollection(pageAnnotations[parseInt(i.toString(), 10)]);\n currentAnnotObject = pageAnnotations.splice(i, 1)[0];\n break;\n }\n if (property && property !== 'delete') {\n this.storeSignatureCollections(pageAnnotations[parseInt(i.toString(), 10)], pageNumber);\n }\n if (isSignatureEdited) {\n pageAnnotations[parseInt(i.toString(), 10)].opacity = annotationBase.wrapper.children[0].style.opacity;\n pageAnnotations[parseInt(i.toString(), 10)].strokeColor = annotationBase.wrapper.children[0].style.strokeColor;\n pageAnnotations[parseInt(i.toString(), 10)].thickness = annotationBase.wrapper.children[0].style.strokeWidth;\n this.storeSignatureCollections(pageAnnotations[parseInt(i.toString(), 10)], pageNumber);\n break;\n }\n }\n }\n this.manageAnnotations(pageAnnotations, pageNumber);\n }\n return currentAnnotObject;\n };\n /**\n * @param annotation\n * @param pageNumber\n * @private\n */\n // eslint-disable-next-line\n Signature.prototype.storeSignatureCollections = function (annotation, pageNumber) {\n // eslint-disable-next-line\n var collectionDetails = this.checkSignatureCollection(annotation);\n // eslint-disable-next-line\n var selectAnnotation = cloneObject(annotation);\n selectAnnotation.annotationId = annotation.signatureName;\n selectAnnotation.pageNumber = pageNumber;\n delete selectAnnotation.annotName;\n if (annotation.id) {\n selectAnnotation.uniqueKey = annotation.id;\n delete selectAnnotation.id;\n }\n if (collectionDetails.isExisting) {\n this.pdfViewer.signatureCollection.splice(collectionDetails.position, 0, selectAnnotation);\n }\n else {\n this.pdfViewer.signatureCollection.push(selectAnnotation);\n }\n };\n // eslint-disable-next-line\n Signature.prototype.checkSignatureCollection = function (signature) {\n // eslint-disable-next-line\n var collections = this.pdfViewer.signatureCollection;\n if (collections && signature) {\n for (var i = 0; i < collections.length; i++) {\n if (collections[parseInt(i.toString(), 10)].annotationId === signature.signatureName) {\n this.pdfViewer.signatureCollection.splice(i, 1);\n return { isExisting: true, position: i };\n }\n }\n }\n return { isExisting: false, position: null };\n };\n /**\n * @param signature\n * @private\n */\n // eslint-disable-next-line\n Signature.prototype.updateSignatureCollection = function (signature) {\n // eslint-disable-next-line\n var collections = this.pdfViewer.signatureCollection;\n if (collections && signature) {\n for (var i = 0; i < collections.length; i++) {\n if (collections[parseInt(i.toString(), 10)].annotationId === signature.signatureName) {\n this.pdfViewer.signatureCollection.splice(i, 1);\n break;\n }\n }\n }\n };\n /**\n * @param pageNumber\n * @param signature\n * @private\n */\n // eslint-disable-next-line\n Signature.prototype.addInCollection = function (pageNumber, signature) {\n if (signature) {\n this.storeSignatureCollections(signature, pageNumber);\n // eslint-disable-next-line\n var pageSignatures = this.getAnnotations(pageNumber, null);\n if (pageSignatures) {\n pageSignatures.push(signature);\n }\n this.manageAnnotations(pageSignatures, pageNumber);\n }\n };\n // eslint-disable-next-line\n Signature.prototype.getAnnotations = function (pageIndex, shapeAnnotations) {\n // eslint-disable-next-line\n var annotationCollection;\n // eslint-disable-next-line\n var storeObject = null;\n if (this.pdfViewerBase.isStorageExceed) {\n storeObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_sign'];\n }\n else {\n storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_sign');\n }\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n var index = this.pdfViewer.annotationModule.getPageCollection(annotObject, pageIndex);\n if (!isNullOrUndefined(index) && annotObject[parseInt(index.toString(), 10)]) {\n annotationCollection = annotObject[parseInt(index.toString(), 10)].annotations;\n }\n else {\n annotationCollection = shapeAnnotations;\n }\n }\n else {\n annotationCollection = shapeAnnotations;\n }\n return annotationCollection;\n };\n Signature.prototype.manageAnnotations = function (pageAnnotations, pageNumber) {\n // eslint-disable-next-line\n var storeObject = null;\n if (this.pdfViewerBase.isStorageExceed) {\n storeObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_sign'];\n }\n else {\n storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_sign');\n }\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n window.sessionStorage.removeItem(this.pdfViewerBase.documentId + '_annotations_sign');\n var index = this.pdfViewer.annotationModule.getPageCollection(annotObject, pageNumber);\n if (annotObject[parseInt(index.toString(), 10)]) {\n annotObject[parseInt(index.toString(), 10)].annotations = pageAnnotations;\n }\n var annotationStringified = JSON.stringify(annotObject);\n if (this.pdfViewerBase.isStorageExceed) {\n this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_sign'] = annotationStringified;\n }\n else {\n window.sessionStorage.setItem(this.pdfViewerBase.documentId + '_annotations_sign', annotationStringified);\n }\n }\n };\n /**\n * @private\n * @param {boolean} isShow - Returns the true or false.\n * @returns {void}\n */\n Signature.prototype.showSignatureDialog = function (isShow) {\n if (isShow) {\n this.createSignaturePanel();\n }\n };\n /**\n * @private\n * @returns {void}\n */\n Signature.prototype.setAnnotationMode = function () {\n this.pdfViewerBase.isToolbarSignClicked = true;\n this.showSignatureDialog(true);\n };\n /**\n * @private\n * @returns {void}\n */\n Signature.prototype.setInitialMode = function () {\n this.pdfViewerBase.isToolbarSignClicked = true;\n this.pdfViewerBase.isInitialField = true;\n this.showSignatureDialog(true);\n };\n /**\n * @param number\n * @private\n */\n // eslint-disable-next-line\n Signature.prototype.ConvertPointToPixel = function (number) {\n return (number * (96 / 72));\n };\n /**\n * @param signature\n * @param pageIndex\n * @param isImport\n * @private\n */\n // eslint-disable-next-line\n Signature.prototype.updateSignatureCollections = function (signature, pageIndex, isImport) {\n var annot;\n // eslint-disable-next-line\n if (signature) {\n // eslint-disable-next-line\n var bounds = signature.Bounds;\n var currentLeft = bounds.X;\n var currentTop = bounds.Y;\n var currentWidth = bounds.Width;\n var currentHeight = bounds.Height;\n // eslint-disable-next-line\n var data = signature.PathData;\n if (isImport) {\n data = getPathString(JSON.parse(signature.PathData));\n }\n annot = {\n // eslint-disable-next-line max-len\n id: 'sign' + signature.SignatureName, bounds: { x: currentLeft, y: currentTop, width: currentWidth, height: currentHeight }, pageIndex: pageIndex, data: data,\n shapeAnnotationType: 'HandWrittenSignature', opacity: signature.Opacity, strokeColor: signature.StrokeColor, thickness: signature.Thickness, signatureName: signature.SignatureName\n };\n return annot;\n }\n };\n /**\n * @private\n * @returns {void}\n */\n Signature.prototype.destroy = function () {\n window.sessionStorage.removeItem('_annotations_sign');\n // eslint-disable-next-line\n var signImage = document.getElementById(this.pdfViewer.element.id + '_signElement');\n if (signImage) {\n signImage.removeEventListener('change', this.addStampImage);\n if (signImage.parentElement)\n signImage.parentElement.removeChild(signImage);\n }\n if (this.signatureDialog)\n this.signatureDialog.destroy();\n };\n return Signature;\n}());\nexport { Signature };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component, Property, ChildProperty, NotifyPropertyChanges, Animation, createElement } from '@syncfusion/ej2-base';\nimport { Browser, isNullOrUndefined as isNOU, getUniqueID, formatUnit, EventHandler } from '@syncfusion/ej2-base';\nimport { Collection, Complex, setStyleAttribute, Event, detach, L10n } from '@syncfusion/ej2-base';\nimport { attributes, extend, closest, compile as templateCompiler, classList, isUndefined } from '@syncfusion/ej2-base';\nimport { Touch, isBlazor, SanitizeHtmlHelper, removeClass } from '@syncfusion/ej2-base';\nimport { Button } from '@syncfusion/ej2-buttons';\nimport { getZindexPartial } from '@syncfusion/ej2-popups';\nvar ROOT = 'e-toast';\nvar CONTAINER = 'e-toast-container';\nvar TITLE = 'e-toast-title';\nvar WIDTHFULL = 'e-toast-full-width';\nvar CONTENT = 'e-toast-content';\nvar MESSAGE = 'e-toast-message';\nvar ICON = 'e-toast-icon';\nvar PROGRESS = 'e-toast-progress';\nvar ACTIOBUTTONS = 'e-toast-actions';\nvar CLOSEBTN = 'e-toast-close-icon';\nvar RTL = 'e-rtl';\n// eslint-disable-next-line\nvar TOAST_REF_ELEMENT = 'e-toast-ref-element';\nvar TOAST_BLAZOR_HIDDEN = 'e-blazor-toast-hidden';\n/**\n * An object that is used to configure the Toast X Y positions.\n */\nvar ToastPosition = /** @class */ (function (_super) {\n __extends(ToastPosition, _super);\n function ToastPosition() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('Left')\n ], ToastPosition.prototype, \"X\", void 0);\n __decorate([\n Property('Top')\n ], ToastPosition.prototype, \"Y\", void 0);\n return ToastPosition;\n}(ChildProperty));\nexport { ToastPosition };\n/**\n * An object that is used to configure the action button model properties and event.\n */\nvar ButtonModelProps = /** @class */ (function (_super) {\n __extends(ButtonModelProps, _super);\n function ButtonModelProps() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(null)\n ], ButtonModelProps.prototype, \"model\", void 0);\n __decorate([\n Property(null)\n ], ButtonModelProps.prototype, \"click\", void 0);\n return ButtonModelProps;\n}(ChildProperty));\nexport { ButtonModelProps };\n/**\n * An object that is used to configure the animation object of Toast.\n */\nvar ToastAnimations = /** @class */ (function (_super) {\n __extends(ToastAnimations, _super);\n function ToastAnimations() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('FadeIn')\n ], ToastAnimations.prototype, \"effect\", void 0);\n __decorate([\n Property(600)\n ], ToastAnimations.prototype, \"duration\", void 0);\n __decorate([\n Property('ease')\n ], ToastAnimations.prototype, \"easing\", void 0);\n return ToastAnimations;\n}(ChildProperty));\nexport { ToastAnimations };\n/**\n * An object that is used to configure the show/hide animation settings of Toast.\n */\nvar ToastAnimationSettings = /** @class */ (function (_super) {\n __extends(ToastAnimationSettings, _super);\n function ToastAnimationSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Complex({ effect: 'FadeIn', duration: 600, easing: 'ease' }, ToastAnimations)\n ], ToastAnimationSettings.prototype, \"show\", void 0);\n __decorate([\n Complex({ effect: 'FadeOut', duration: 600, easing: 'ease' }, ToastAnimations)\n ], ToastAnimationSettings.prototype, \"hide\", void 0);\n return ToastAnimationSettings;\n}(ChildProperty));\nexport { ToastAnimationSettings };\n/**\n * The Toast is a notification pop-up that showing on desired position which can provide an information to the user.\n * ```html\n *
      \n * \n * ```\n */\nvar Toast = /** @class */ (function (_super) {\n __extends(Toast, _super);\n /**\n * Initializes a new instance of the Toast class.\n *\n * @param {ToastModel} options - Specifies Toast model properties as options.\n * @param {HTMLElement} element - Specifies the element that is rendered as a Toast.\n */\n function Toast(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.toastCollection = [];\n _this.needsID = true;\n return _this;\n }\n /**\n * Gets the Component module name.\n *\n * @returns {string} - returns the string\n * @private\n */\n Toast.prototype.getModuleName = function () {\n return 'toast';\n };\n /**\n * Gets the persisted state properties of the Component.\n *\n * @returns {string} - returns the string\n */\n Toast.prototype.getPersistData = function () {\n return this.addOnPersist([]);\n };\n /**\n * Removes the component from the DOM and detaches all its related event handlers, attributes and classes.\n *\n * @returns {void}\n */\n Toast.prototype.destroy = function () {\n this.hide('All');\n this.element.classList.remove(CONTAINER);\n setStyleAttribute(this.element, { 'position': '', 'z-index': '' });\n if (!isNOU(this.refElement) && !isNOU(this.refElement.parentElement)) {\n this.refElement.parentElement.insertBefore(this.element, this.refElement);\n detach(this.refElement);\n this.refElement = undefined;\n }\n if (!this.isBlazorServer()) {\n _super.prototype.destroy.call(this);\n }\n };\n /**\n * Initialize the event handler\n *\n * @returns {void}\n * @private\n */\n Toast.prototype.preRender = function () {\n //There is no event handler\n this.isDevice = Browser.isDevice;\n if (this.width === '300px') {\n this.width = (this.isDevice && screen.width < 768) ? '100%' : '300px';\n }\n if (isNOU(this.target)) {\n this.target = document.body;\n }\n if (this.enableRtl && !this.isBlazorServer()) {\n this.element.classList.add(RTL);\n }\n };\n /**\n * Initialize the component rendering\n *\n * @returns {void}\n * @private\n */\n Toast.prototype.render = function () {\n this.progressObj = [];\n this.intervalId = [];\n this.contentTemplate = null;\n this.toastTemplate = null;\n this.renderComplete();\n this.initRenderClass = this.element.className;\n };\n /**\n * To show Toast element on a document with the relative position.\n *\n * @param {ToastModel} toastObj - To show Toast element on screen.\n * @returns {void}\n\n */\n Toast.prototype.show = function (toastObj) {\n var collectionObj;\n if (!isNOU(toastObj)) {\n this.templateChanges(toastObj);\n collectionObj = JSON.parse(JSON.stringify(toastObj));\n extend(this, this, toastObj);\n }\n if (isNOU(this.toastContainer)) {\n this.toastContainer = this.getContainer();\n var target = typeof (this.target) === 'string' ? document.querySelector(this.target) :\n (typeof (this.target) === 'object' ? this.target : document.body);\n if (isNOU(target)) {\n return;\n }\n if (target.tagName === 'BODY') {\n this.toastContainer.style.position = 'fixed';\n }\n else {\n this.toastContainer.style.position = 'absolute';\n target.style.position = 'relative';\n }\n this.setPositioning(this.position);\n target.appendChild(this.toastContainer);\n }\n if (this.isBlazorServer() && this.element.classList.contains('e-control')) {\n this.isToastModel(toastObj);\n return;\n }\n this.toastEle = this.createElement('div', { className: ROOT, id: getUniqueID('toast') });\n this.setWidthHeight();\n this.setCSSClass(this.cssClass);\n // eslint-disable-next-line\n (isNOU(this.template) || this.template === '') ? this.personalizeToast() : this.templateRendering();\n this.setProgress();\n this.setCloseButton();\n this.setAria();\n this.appendToTarget(toastObj);\n if (this.isDevice && screen.width < 768) {\n new Touch(this.toastEle, { swipe: this.swipeHandler.bind(this) });\n }\n if (!isNOU(collectionObj)) {\n extend(collectionObj, { element: [this.toastEle] }, true);\n this.toastCollection.push(collectionObj);\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n /**\n * @param {string} id - specifies the id\n * @param {ToastModel} toastObj - specifies the model\n * @returns {void}\n * @hidden\n\n * This method applicable for blazor alone.\n */\n Toast.prototype.showToast = function (id, toastObj) {\n this.toastEle = this.element.querySelector('#' + id);\n this.show(toastObj);\n };\n Toast.prototype.isToastModel = function (toastObj) {\n this.toastContainer = this.element;\n this.setPositioning(this.position);\n // eslint-disable-next-line\n var proxy = this;\n if (!isNOU(proxy.element.lastElementChild)) {\n this.setProgress();\n }\n this.setAria();\n this.appendToTarget(toastObj);\n };\n Toast.prototype.swipeHandler = function (e) {\n var toastEle = closest(e.originalEvent.target, '.' + ROOT + ':not(.' + CONTAINER + ')');\n var hideAnimation = this.animation.hide.effect;\n if (!isNOU(toastEle)) {\n if (e.swipeDirection === 'Right') {\n this.animation.hide.effect = 'SlideRightOut';\n this.hideToast('swipe', toastEle);\n }\n else if (e.swipeDirection === 'Left') {\n this.animation.hide.effect = 'SlideLeftOut';\n this.hideToast('swipe', toastEle);\n }\n this.animation.hide.effect = hideAnimation;\n }\n };\n Toast.prototype.templateChanges = function (toastObj) {\n if (!isUndefined(toastObj.content) && !isNOU(this.contentTemplate) && this.content !== toastObj.content) {\n this.clearContentTemplate();\n }\n if (!isUndefined(toastObj.template) && !isNOU(this.toastTemplate) && this.template !== toastObj.template) {\n this.clearToastTemplate();\n }\n };\n Toast.prototype.setCSSClass = function (cssClass) {\n if (cssClass) {\n var split = cssClass.indexOf(',') !== -1 ? ',' : ' ';\n classList(this.toastEle, cssClass.split(split), []);\n if (this.toastContainer) {\n classList(this.toastContainer, cssClass.split(split), []);\n }\n }\n };\n Toast.prototype.setWidthHeight = function () {\n if (this.width === '300px') {\n this.toastEle.style.width = formatUnit(this.width);\n }\n else if (this.width === '100%') {\n this.toastContainer.classList.add(WIDTHFULL);\n }\n else {\n this.toastEle.style.width = formatUnit(this.width);\n this.toastContainer.classList.remove(WIDTHFULL);\n }\n this.toastEle.style.height = formatUnit(this.height);\n };\n Toast.prototype.templateRendering = function () {\n this.fetchEle(this.toastEle, this.template, 'template');\n };\n /**\n * @param {string} value - specifies the string value.\n * @returns {string} - returns the string\n * @hidden\n */\n Toast.prototype.sanitizeHelper = function (value) {\n if (this.enableHtmlSanitizer) {\n var item = SanitizeHtmlHelper.beforeSanitize();\n var beforeEvent = {\n cancel: false,\n helper: null\n };\n extend(item, item, beforeEvent);\n this.trigger('beforeSanitizeHtml', item);\n if (item.cancel && !isNOU(item.helper)) {\n value = item.helper(value);\n }\n else if (!item.cancel) {\n value = SanitizeHtmlHelper.serializeValue(item, value);\n }\n }\n return value;\n };\n /**\n * To Hide Toast element on a document.\n * To Hide all toast element when passing 'All'.\n *\n * @param {HTMLElement} element - To Hide Toast element on screen.\n * @returns {void}\n */\n Toast.prototype.hide = function (element) {\n this.hideToast('', element);\n };\n Toast.prototype.hideToast = function (interactionType, element) {\n if (isNOU(this.toastContainer) || this.toastContainer.childElementCount === 0) {\n return;\n }\n if (typeof element === 'string' && element === 'All') {\n for (var i = 0; i < this.toastContainer.childElementCount; i++) {\n this.destroyToast(this.toastContainer.children[i], interactionType);\n }\n return;\n }\n if (isNOU(element)) {\n element = (this.newestOnTop ? this.toastContainer.lastElementChild : this.toastContainer.firstElementChild);\n }\n this.destroyToast(element, interactionType);\n };\n Toast.prototype.fetchEle = function (ele, value, prob) {\n value = typeof (value) === 'string' ? this.sanitizeHelper(value) : value;\n // eslint-disable-next-line\n var templateFn;\n var tempVar;\n var tmpArray;\n var templateProps;\n if (ele.classList.contains(TITLE)) {\n templateProps = this.element.id + 'title';\n }\n else if (ele.classList.contains(CONTENT)) {\n templateProps = this.element.id + 'content';\n }\n else {\n templateProps = this.element.id + 'template';\n }\n // eslint-disable-next-line\n prob === 'content' ? tempVar = this.contentTemplate : tempVar = this.toastTemplate;\n if (!isNOU(tempVar)) {\n ele.appendChild(tempVar.cloneNode(true));\n return ele;\n }\n try {\n if (document.querySelectorAll(value).length > 0) {\n var elem = null;\n if (prob !== 'title') {\n elem = document.querySelector(value);\n ele.appendChild(elem);\n elem.style.display = '';\n }\n var clo = isNOU(elem) ? tempVar : elem.cloneNode(true);\n // eslint-disable-next-line\n prob === 'content' ? this.contentTemplate = clo : this.toastTemplate = clo;\n }\n else {\n templateFn = templateCompiler(value);\n }\n }\n catch (e) {\n templateFn = templateCompiler(value);\n // eslint-disable-next-line\n var templateValue = value;\n }\n if (!isNOU(templateFn)) {\n if (!this.isBlazorServer()) {\n tmpArray = templateFn({}, this, prob, null, true);\n }\n else {\n var isString = true;\n tmpArray = templateFn({}, this, prob, templateProps, isString);\n }\n }\n if (!isNOU(tmpArray) && tmpArray.length > 0 && !(isNOU(tmpArray[0].tagName) && tmpArray.length === 1)) {\n [].slice.call(tmpArray).forEach(function (el) {\n if (!isNOU(el.tagName)) {\n el.style.display = '';\n }\n ele.appendChild(el);\n });\n }\n else if (ele.childElementCount === 0) {\n ele.innerHTML = value;\n }\n return ele;\n };\n Toast.prototype.clearProgress = function (intervalId) {\n if (!isNOU(this.intervalId[intervalId])) {\n clearInterval(this.intervalId[intervalId]);\n delete this.intervalId[intervalId];\n }\n if (!isNOU(this.progressObj[intervalId])) {\n clearInterval(this.progressObj[intervalId].intervalId);\n delete this.progressObj[intervalId];\n }\n };\n Toast.prototype.removeToastContainer = function (isClosed) {\n if (isClosed && this.toastContainer.classList.contains('e-toast-util')) {\n detach(this.toastContainer);\n }\n };\n Toast.prototype.clearContainerPos = function (isClosed) {\n var _this = this;\n if (this.isBlazorServer()) {\n this.toastContainer = null;\n return;\n }\n if (this.customPosition) {\n setStyleAttribute(this.toastContainer, { 'left': '', 'top': '' });\n this.removeToastContainer(isClosed);\n this.toastContainer = null;\n this.customPosition = false;\n }\n else {\n [ROOT + '-top-left',\n ROOT + '-top-right',\n ROOT + '-bottom-left',\n ROOT + '-bottom-right',\n ROOT + '-bottom-center',\n ROOT + '-top-center',\n ROOT + '-full-width'].forEach(function (pos) {\n if (!isNOU(_this.toastContainer) && _this.toastContainer.classList.contains(pos)) {\n _this.toastContainer.classList.remove(pos);\n }\n });\n this.removeToastContainer(isClosed);\n this.toastContainer = null;\n }\n if (!isNOU(this.contentTemplate)) {\n this.clearContentTemplate();\n }\n if (!isNOU(this.toastTemplate)) {\n this.clearToastTemplate();\n }\n };\n Toast.prototype.clearContentTemplate = function () {\n this.contentTemplate.style.display = 'none';\n document.body.appendChild(this.contentTemplate);\n this.contentTemplate = null;\n };\n Toast.prototype.clearToastTemplate = function () {\n this.toastTemplate.style.display = 'none';\n document.body.appendChild(this.toastTemplate);\n this.toastTemplate = null;\n };\n Toast.prototype.isBlazorServer = function () {\n return (isBlazor() && this.isServerRendered);\n };\n Toast.prototype.destroyToast = function (toastEle, interactionType) {\n var _this = this;\n var toastObj;\n for (var i = 0; i < this.toastCollection.length; i++) {\n if (this.toastCollection[i].element[0] === toastEle) {\n toastObj = this.toastCollection[i];\n this.toastCollection.splice(i, 1);\n }\n }\n var toastBeforeClose = {\n options: this,\n cancel: false,\n type: interactionType,\n element: toastEle,\n toastContainer: this.toastContainer\n };\n var hideAnimate = this.animation.hide;\n var animate = {\n duration: hideAnimate.duration, name: hideAnimate.effect, timingFunction: hideAnimate.easing\n };\n var intervalId = parseInt(toastEle.id.split('toast_')[1], 10);\n var toastClose = this.isBlazorServer() ? {\n options: toastObj,\n toastContainer: this.toastContainer\n } : {\n options: toastObj,\n toastContainer: this.toastContainer,\n toastObj: this\n };\n this.trigger('beforeClose', toastBeforeClose, function (toastBeforeCloseArgs) {\n if (!toastBeforeCloseArgs.cancel) {\n if (!isNOU(_this.progressObj[intervalId]) && !isNOU(toastEle.querySelector('.' + PROGRESS))) {\n _this.progressObj[intervalId].progressEle.style.width = '0%';\n }\n animate.end = function () {\n _this.clearProgress(intervalId);\n if (!_this.isBlazorServer() || isNOU(toastObj)) {\n detach(toastEle);\n }\n _this.trigger('close', toastClose);\n if (_this.toastContainer.childElementCount === 0) {\n _this.clearContainerPos(true);\n }\n hideAnimate = null;\n animate = null;\n };\n new Animation(animate).animate(toastEle);\n }\n });\n };\n Toast.prototype.personalizeToast = function () {\n this.setIcon();\n this.setTitle();\n this.setContent();\n this.actionButtons();\n };\n Toast.prototype.setAria = function () {\n attributes(this.toastEle, { 'role': 'alert' });\n };\n Toast.prototype.setPositioning = function (pos) {\n if (this.isBlazorServer()) {\n return;\n }\n if (!isNaN(parseFloat(pos.X)) || !isNaN(parseFloat(pos.Y))) {\n this.customPosition = true;\n setStyleAttribute(this.toastContainer, { 'left': formatUnit(pos.X), 'top': formatUnit(pos.Y) });\n }\n else {\n this.toastContainer.classList.add(ROOT + '-' + pos.Y.toString().toLowerCase() + '-' + pos.X.toString().toLowerCase());\n }\n };\n Toast.prototype.setCloseButton = function () {\n if (!this.showCloseButton) {\n return;\n }\n // eslint-disable-next-line\n var localeText = { close: 'Close' };\n this.l10n = new L10n('toast', localeText, this.locale);\n this.l10n.setLocale(this.locale);\n var closeIconTitle = this.l10n.getConstant('close');\n var closeBtn = this.createElement('div', { className: CLOSEBTN + ' e-icons ', attrs: { tabindex: '0', 'aria-label': closeIconTitle, 'role': 'button' } });\n this.toastEle.classList.add('e-toast-header-close-icon');\n this.toastEle.appendChild(closeBtn);\n };\n Toast.prototype.setProgress = function () {\n if (this.timeOut > 0) {\n var id = parseInt(this.toastEle.id.split('toast_')[1], 10);\n this.intervalId[id] = window.setTimeout(this.destroyToast.bind(this, this.toastEle), this.timeOut);\n this.progressObj[id] = { hideEta: null, intervalId: null, maxHideTime: null,\n element: null, timeOutId: null, progressEle: null };\n this.progressObj[id].maxHideTime = parseFloat(this.timeOut + '');\n this.progressObj[id].hideEta = new Date().getTime() + this.progressObj[id].maxHideTime;\n this.progressObj[id].element = this.toastEle;\n if (this.extendedTimeout > 0) {\n EventHandler.add(this.toastEle, 'mouseover', this.toastHoverAction.bind(this, id));\n EventHandler.add(this.toastEle, 'mouseleave', this.delayedToastProgress.bind(this, id));\n this.progressObj[id].timeOutId = this.intervalId[id];\n }\n if (this.showProgressBar) {\n this.progressBarEle = this.createElement('div', { className: PROGRESS });\n this.toastEle.insertBefore(this.progressBarEle, this.toastEle.children[0]);\n // eslint-disable-next-line max-len\n this.progressObj[id].intervalId = setInterval(this.updateProgressBar.bind(this, this.progressObj[id]), 10);\n this.progressObj[id].progressEle = this.progressBarEle;\n }\n }\n };\n Toast.prototype.toastHoverAction = function (id) {\n clearTimeout(this.progressObj[id].timeOutId);\n clearInterval(this.progressObj[id].intervalId);\n this.progressObj[id].hideEta = 0;\n var toastEle = this.progressObj[id].element;\n if (!isNOU(toastEle.querySelector('.' + PROGRESS))) {\n this.progressObj[id].progressEle.style.width = '0%';\n }\n };\n Toast.prototype.delayedToastProgress = function (id) {\n var progress = this.progressObj[id];\n var toastEle = progress.element;\n progress.timeOutId = window.setTimeout(this.destroyToast.bind(this, toastEle), this.extendedTimeout);\n progress.maxHideTime = parseFloat(this.extendedTimeout + '');\n progress.hideEta = new Date().getTime() + progress.maxHideTime;\n if (!isNOU(toastEle.querySelector('.' + PROGRESS))) {\n progress.intervalId = setInterval(this.updateProgressBar.bind(this, progress), 10);\n }\n };\n Toast.prototype.updateProgressBar = function (progressObj) {\n var percentage = ((progressObj.hideEta - (new Date().getTime())) / progressObj.maxHideTime) * 100;\n percentage = this.progressDirection === 'Ltr' ? 100 - percentage : percentage;\n progressObj.progressEle.style.width = percentage + '%';\n };\n Toast.prototype.setIcon = function () {\n if (isNOU(this.icon) || this.icon.length === 0) {\n return;\n }\n var iconEle = this.createElement('div', { className: ICON + ' e-icons ' + this.icon });\n this.toastEle.classList.add('e-toast-header-icon');\n this.toastEle.appendChild(iconEle);\n };\n Toast.prototype.setTitle = function () {\n if (isNOU(this.title)) {\n return;\n }\n var titleEle = this.createElement('div', { className: TITLE });\n titleEle = this.fetchEle(titleEle, this.title, 'title');\n var msgContainer = this.createElement('div', { className: MESSAGE });\n msgContainer.appendChild(titleEle);\n this.toastEle.appendChild(msgContainer);\n };\n Toast.prototype.setContent = function () {\n var contentEle = this.createElement('div', { className: CONTENT });\n var ele = this.element;\n if (isNOU(this.content) || this.content === '') {\n var isContent = this.element.innerHTML.replace(/\\s/g, '') !== '';\n if ((ele.children.length > 0 || isContent) && !(ele.firstElementChild && ele.firstElementChild.classList.contains(ROOT))) {\n this.innerEle = document.createDocumentFragment();\n var tempEle_1 = this.createElement('div');\n while (ele.childNodes.length !== 0) {\n this.innerEle.appendChild(this.element.childNodes[0]);\n }\n contentEle.appendChild(this.innerEle);\n [].slice.call(contentEle.children).forEach(function (ele) {\n tempEle_1.appendChild(ele.cloneNode(true));\n });\n this.content = tempEle_1;\n this.appendMessageContainer(contentEle);\n }\n }\n else {\n if (typeof (this.content) === 'object' && !isNOU(this.content.tagName)) {\n contentEle.appendChild(this.content);\n this.content = this.content.cloneNode(true);\n this.appendMessageContainer(contentEle);\n }\n else {\n contentEle = this.fetchEle(contentEle, this.content, 'content');\n this.appendMessageContainer(contentEle);\n }\n }\n };\n Toast.prototype.appendMessageContainer = function (element) {\n if (this.toastEle.querySelectorAll('.' + MESSAGE).length > 0) {\n this.toastEle.querySelector('.' + MESSAGE).appendChild(element);\n }\n else {\n var msgContainer = this.createElement('div', { className: MESSAGE });\n msgContainer.appendChild(element);\n this.toastEle.appendChild(msgContainer);\n }\n };\n Toast.prototype.actionButtons = function () {\n var _this = this;\n var actionBtnContainer = this.createElement('div', { className: ACTIOBUTTONS });\n [].slice.call(this.buttons).forEach(function (actionBtn) {\n if (isNOU(actionBtn.model)) {\n return;\n }\n var btnDom = _this.createElement('button');\n btnDom.setAttribute('type', 'button');\n if (isNOU(actionBtn.model.cssClass) || actionBtn.model.cssClass.length === 0) {\n actionBtn.model.cssClass = 'e-primary' + ' ' + _this.cssClass;\n }\n btnDom.classList.add('e-small');\n new Button(actionBtn.model, btnDom);\n if (!isNOU(actionBtn.click) && typeof (actionBtn.click) === 'function') {\n EventHandler.add(btnDom, 'click', actionBtn.click);\n }\n actionBtnContainer.appendChild(btnDom);\n });\n if (actionBtnContainer.childElementCount > 0) {\n this.appendMessageContainer(actionBtnContainer);\n }\n };\n Toast.prototype.appendToTarget = function (toastObj) {\n var _this = this;\n var toastBeforeOpen = this.isBlazorServer() ? {\n options: toastObj,\n element: this.toastEle,\n cancel: false\n } : {\n options: toastObj,\n toastObj: this,\n element: this.toastEle,\n cancel: false\n };\n this.trigger('beforeOpen', toastBeforeOpen, function (toastBeforeOpenArgs) {\n if (!toastBeforeOpenArgs.cancel) {\n if (!_this.isBlazorServer()) {\n _this.toastEle.style.display = 'none';\n }\n if (_this.newestOnTop && _this.toastContainer.childElementCount !== 0) {\n _this.toastContainer.insertBefore(_this.toastEle, _this.toastContainer.children[0]);\n }\n else if (!_this.isBlazorServer()) {\n _this.toastContainer.appendChild(_this.toastEle);\n }\n removeClass([_this.toastEle], TOAST_BLAZOR_HIDDEN);\n EventHandler.add(_this.toastEle, 'click', _this.clickHandler, _this);\n EventHandler.add(_this.toastEle, 'keydown', _this.keyDownHandler, _this);\n _this.toastContainer.style.zIndex = getZindexPartial(_this.toastContainer) + '';\n _this.displayToast(_this.toastEle, toastObj);\n }\n else if (_this.isBlazorServer()) {\n var intervalId = parseInt(_this.toastEle.id.split('toast_')[1], 10);\n _this.clearProgress(intervalId);\n detach(_this.toastEle);\n if (_this.toastContainer.childElementCount === 0) {\n _this.clearContainerPos();\n }\n }\n });\n };\n Toast.prototype.clickHandler = function (e) {\n var _this = this;\n if (!this.isBlazorServer()) {\n e.stopPropagation();\n }\n var target = e.target;\n var toastEle = closest(target, '.' + ROOT);\n var clickArgs = this.isBlazorServer() ? {\n element: toastEle, cancel: false, clickToClose: false, originalEvent: e\n } : {\n element: toastEle, cancel: false, clickToClose: false, originalEvent: e, toastObj: this\n };\n var isCloseIcon = target.classList.contains(CLOSEBTN);\n this.trigger('click', clickArgs, function (toastClickArgs) {\n if ((isCloseIcon && !toastClickArgs.cancel) || toastClickArgs.clickToClose) {\n _this.destroyToast(toastEle, 'click');\n }\n });\n };\n Toast.prototype.keyDownHandler = function (e) {\n if (e.target.classList.contains(CLOSEBTN) &&\n (e.keyCode === 13 || e.keyCode === 32)) {\n var target = e.target;\n var toastEle = closest(target, '.' + ROOT);\n this.destroyToast(toastEle, 'key');\n }\n };\n Toast.prototype.displayToast = function (toastEle, toastObj) {\n var _this = this;\n var showAnimate = this.animation.show;\n var animate = {\n duration: showAnimate.duration, name: showAnimate.effect, timingFunction: showAnimate.easing\n };\n var toastOpen = this.isBlazorServer() ? {\n options: toastObj,\n element: this.toastEle\n } : {\n options: toastObj,\n toastObj: this,\n element: this.toastEle\n };\n animate.begin = function () {\n toastEle.style.display = '';\n };\n animate.end = function () {\n _this.trigger('open', toastOpen);\n };\n new Animation(animate).animate(toastEle);\n };\n Toast.prototype.getContainer = function () {\n this.element.classList.add(CONTAINER);\n return this.element;\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {ToastModel} newProp - specifies the new property\n * @param {ToastModel} oldProp - specifies the old property\n * @returns {void}\n * @private\n */\n // eslint-disable-next-line\n Toast.prototype.onPropertyChanged = function (newProp, oldProp) {\n var container = this.element;\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'enableRtl':\n // eslint-disable-next-line\n newProp.enableRtl ? container.classList.add(RTL) : container.classList.remove(RTL);\n break;\n }\n }\n };\n __decorate([\n Property('300px')\n ], Toast.prototype, \"width\", void 0);\n __decorate([\n Property('auto')\n ], Toast.prototype, \"height\", void 0);\n __decorate([\n Property(null)\n ], Toast.prototype, \"title\", void 0);\n __decorate([\n Property(null)\n ], Toast.prototype, \"content\", void 0);\n __decorate([\n Property(true)\n ], Toast.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Property(null)\n ], Toast.prototype, \"icon\", void 0);\n __decorate([\n Property(null)\n ], Toast.prototype, \"cssClass\", void 0);\n __decorate([\n Property(null)\n ], Toast.prototype, \"template\", void 0);\n __decorate([\n Property(true)\n ], Toast.prototype, \"newestOnTop\", void 0);\n __decorate([\n Property(false)\n ], Toast.prototype, \"showCloseButton\", void 0);\n __decorate([\n Property(false)\n ], Toast.prototype, \"showProgressBar\", void 0);\n __decorate([\n Property(5000)\n ], Toast.prototype, \"timeOut\", void 0);\n __decorate([\n Property('Rtl')\n ], Toast.prototype, \"progressDirection\", void 0);\n __decorate([\n Property(1000)\n ], Toast.prototype, \"extendedTimeout\", void 0);\n __decorate([\n Complex({}, ToastAnimationSettings)\n ], Toast.prototype, \"animation\", void 0);\n __decorate([\n Complex({}, ToastPosition)\n ], Toast.prototype, \"position\", void 0);\n __decorate([\n Collection([{}], ButtonModelProps)\n ], Toast.prototype, \"buttons\", void 0);\n __decorate([\n Property(null)\n ], Toast.prototype, \"target\", void 0);\n __decorate([\n Event()\n ], Toast.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], Toast.prototype, \"beforeSanitizeHtml\", void 0);\n __decorate([\n Event()\n ], Toast.prototype, \"destroyed\", void 0);\n __decorate([\n Event()\n ], Toast.prototype, \"open\", void 0);\n __decorate([\n Event()\n ], Toast.prototype, \"beforeOpen\", void 0);\n __decorate([\n Event()\n ], Toast.prototype, \"beforeClose\", void 0);\n __decorate([\n Event()\n ], Toast.prototype, \"close\", void 0);\n __decorate([\n Event()\n ], Toast.prototype, \"click\", void 0);\n Toast = __decorate([\n NotifyPropertyChanges\n ], Toast);\n return Toast;\n}(Component));\nexport { Toast };\n/**\n * Base for creating Toast through utility method.\n */\n// eslint-disable-next-line\nexport var ToastUtility;\n(function (ToastUtility) {\n /**\n * To display a simple toast using the 'ToastUtility' with 'ToastModal' or\n * as string with toast content, type, timeOut.\n * ```\n * Eg : ToastUtility.show('Toast Content Message', 'Information', 7000);\n *\n * ```\n */\n /* istanbul ignore next */\n /**\n *\n * @param { ToastModel | string } content - Specifies the toast modal or the content of the Toast.\n * @param {string} type - Specifies the type of toast.\n * @param { number } timeOut - Specifies the timeOut of the toast.\n * @returns {Toast} - returns the element\n */\n function show(content, type, timeOut) {\n var toastContainerElement;\n if (document.querySelector('.' + CONTAINER)) {\n toastContainerElement = document.querySelector('.' + CONTAINER);\n }\n else {\n toastContainerElement = createElement('div', { 'className': ROOT + ' ' + CONTAINER + ' e-toast-util' });\n document.body.appendChild(toastContainerElement);\n }\n var untilToastsModel;\n if (typeof (content) === 'string') {\n var cssClass = void 0;\n var icon = void 0;\n if (!isNOU(type)) {\n switch (type) {\n case 'Warning':\n cssClass = 'e-toast-warning';\n icon = 'e-toast-warning-icon';\n break;\n case 'Success':\n cssClass = 'e-toast-success';\n icon = 'e-toast-success-icon';\n break;\n case 'Error':\n cssClass = 'e-toast-danger';\n icon = 'e-toast-error-icon';\n break;\n case 'Information':\n cssClass = 'e-toast-info';\n icon = 'e-toast-info-icon';\n break;\n }\n }\n else {\n cssClass = '';\n icon = '';\n }\n untilToastsModel = {\n content: content,\n cssClass: cssClass,\n icon: icon,\n timeOut: !isNOU(timeOut) ? timeOut : 5000\n };\n }\n else {\n untilToastsModel = content;\n }\n var toastObj = new Toast(untilToastsModel);\n toastObj.appendTo(toastContainerElement);\n toastObj.show();\n return toastObj;\n }\n ToastUtility.show = show;\n})(ToastUtility || (ToastUtility = {}));\n","import { createElement, Browser, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { ContextMenu as Context } from '@syncfusion/ej2-navigations';\nimport { ContextMenuItem } from './types';\n/**\n * ContextMenu module is used to handle the context menus used in the control.\n *\n * @hidden\n */\nvar ContextMenu = /** @class */ (function () {\n /**\n * Initialize the constructor of ontextmenu\n *\n * @param { PdfViewer } pdfViewer - Specified PdfViewer class.\n * @param { PdfViewerBase } pdfViewerBase - The pdfViewerBase.\n */\n function ContextMenu(pdfViewer, pdfViewerBase) {\n this.copyContextMenu = [];\n this.contextMenuList = [];\n this.pdfViewer = pdfViewer;\n this.pdfViewerBase = pdfViewerBase;\n this.copyContextMenu = [{ text: this.pdfViewer.localeObj.getConstant('Cut'), iconCss: 'e-pv-cut-icon' },\n { text: this.pdfViewer.localeObj.getConstant('Copy'), iconCss: 'e-pv-copy-icon' },\n { text: this.pdfViewer.localeObj.getConstant('Highlight context'), iconCss: 'e-pv-highlight-icon' },\n { text: this.pdfViewer.localeObj.getConstant('Underline context'), iconCss: 'e-pv-underline-icon' },\n { text: this.pdfViewer.localeObj.getConstant('Strikethrough context'), iconCss: 'e-pv-strikethrough-icon' },\n { text: this.pdfViewer.localeObj.getConstant('Paste'), iconCss: 'e-pv-paste-icon' },\n { text: this.pdfViewer.localeObj.getConstant('Delete Context'), iconCss: 'e-pv-delete-icon' },\n { text: this.pdfViewer.localeObj.getConstant('Scale Ratio'), iconCss: 'e-pv-scale-ratio-icon' },\n { separator: true, id: pdfViewer.element.id + '_context_menu_comment_separator' },\n { text: this.pdfViewer.localeObj.getConstant('Comment'), iconCss: 'e-pv-comment-icon' },\n { separator: true, id: pdfViewer.element.id + '_context_menu_separator' },\n { text: this.pdfViewer.localeObj.getConstant('Properties'), iconCss: 'e-pv-property-icon' }\n ];\n }\n /**\n * @private\n * @returns {void}\n */\n ContextMenu.prototype.createContextMenu = function () {\n this.contextMenuElement = createElement('ul', { id: this.pdfViewer.element.id + '_context_menu', className: 'e-pv-context-menu' });\n this.pdfViewer.element.appendChild(this.contextMenuElement);\n this.contextMenuObj = new Context({\n target: '#' + this.pdfViewerBase.viewerContainer.id, items: this.copyContextMenu,\n beforeOpen: this.contextMenuOnBeforeOpen.bind(this), select: this.onMenuItemSelect.bind(this),\n created: this.contextMenuOnCreated.bind(this)\n });\n if (this.pdfViewer.enableRtl) {\n this.contextMenuObj.enableRtl = true;\n }\n this.contextMenuObj.appendTo(this.contextMenuElement);\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n this.contextMenuObj.animationSettings.effect = 'ZoomIn';\n }\n else {\n this.contextMenuObj.animationSettings.effect = 'SlideDown';\n }\n };\n ContextMenu.prototype.contextMenuOnCreated = function (args) {\n // eslint-disable-next-line max-len\n var items = [this.pdfViewer.localeObj.getConstant('Highlight context'), this.pdfViewer.localeObj.getConstant('Underline context'),\n this.pdfViewer.localeObj.getConstant('Strikethrough context')];\n if (this.pdfViewer.annotationModule) {\n if (!this.pdfViewer.annotationModule.textMarkupAnnotationModule) {\n this.contextMenuObj.enableItems(items, false);\n }\n }\n else {\n this.contextMenuObj.enableItems(items, false);\n }\n };\n ContextMenu.prototype.setTarget = function (args) {\n var target = null;\n if (args.event && args.event.target) {\n target = args.event.target;\n this.currentTarget = target;\n }\n return target;\n };\n ContextMenu.prototype.contextMenuOnBeforeOpen = function (args) {\n if (this.pdfViewerBase.preventContextmenu) {\n args.cancel = true;\n }\n var target = this.setTarget(args);\n var currentAnnotSettings = this.pdfViewer.selectedItems.annotations.length !== 0 ? this.pdfViewer.selectedItems.annotations[0].annotationSettings : null;\n // eslint-disable-next-line max-len\n if (this.pdfViewer.annotationModule && this.pdfViewer.annotationModule.freeTextAnnotationModule && this.pdfViewer.annotationModule.freeTextAnnotationModule.isInuptBoxInFocus && target && target.className === 'free-text-input' && target.tagName === 'TEXTAREA') {\n this.pdfViewerBase.isFreeTextContextMenu = true;\n }\n // eslint-disable-next-line max-len\n this.contextMenuObj.showItems([this.pdfViewer.localeObj.getConstant('Cut'), this.pdfViewer.localeObj.getConstant('Copy'), this.pdfViewer.localeObj.getConstant('Paste'),\n // eslint-disable-next-line max-len\n this.pdfViewer.localeObj.getConstant('Highlight context'), this.pdfViewer.localeObj.getConstant('Underline context'), this.pdfViewer.localeObj.getConstant('Strikethrough context'),\n // eslint-disable-next-line max-len\n this.pdfViewer.localeObj.getConstant('Delete Context'), this.pdfViewer.localeObj.getConstant('Scale Ratio'), this.pdfViewer.localeObj.getConstant('Comment'), this.pdfViewer.localeObj.getConstant('Properties')]);\n this.pdfViewerBase.getElement('_context_menu_separator').classList.remove('e-menu-hide');\n this.pdfViewerBase.getElement('_context_menu_comment_separator').classList.remove('e-menu-hide');\n // eslint-disable-next-line max-len\n this.contextMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Cut'), this.pdfViewer.localeObj.getConstant('Copy'), this.pdfViewer.localeObj.getConstant('Paste'), this.pdfViewer.localeObj.getConstant('Delete Context')], true);\n if (this.pdfViewer.annotationModule) {\n this.pdfViewer.annotationModule.checkContextMenuDeleteItem(this.contextMenuObj);\n }\n if (this.pdfViewer.textSelectionModule || this.pdfViewerBase.isShapeBasedAnnotationsEnabled()) {\n if (args.event || this.pdfViewerBase.isTouchDesignerMode) {\n var isClickWithinSelectionBounds = this.pdfViewerBase.isClickWithinSelectionBounds(args.event);\n // eslint-disable-next-line max-len\n if (this.pdfViewerBase.isFreeTextContextMenu) {\n this.contextMenuObj.hideItems([this.pdfViewer.localeObj.getConstant('Highlight context'), this.pdfViewer.localeObj.getConstant('Underline context'), this.pdfViewer.localeObj.getConstant('Strikethrough context'), this.pdfViewer.localeObj.getConstant('Properties'), this.pdfViewer.localeObj.getConstant('Comment'),\n this.pdfViewer.localeObj.getConstant('Scale Ratio'), this.pdfViewer.localeObj.getConstant('Delete Context')]);\n this.pdfViewerBase.getElement('_context_menu_separator').classList.add('e-menu-hide');\n this.pdfViewerBase.getElement('_context_menu_comment_separator').classList.add('e-menu-hide');\n // eslint-disable-next-line max-len\n if (this.pdfViewer.annotation.freeTextAnnotationModule && this.pdfViewer.annotation.freeTextAnnotationModule.isTextSelected) {\n this.contextMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Copy')], true);\n this.contextMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Cut')], true);\n }\n else {\n this.contextMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Copy')], false);\n this.contextMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Cut')], false);\n window.getSelection().removeAllRanges();\n }\n // eslint-disable-next-line max-len\n if (this.pdfViewer.annotation.freeTextAnnotationModule && this.pdfViewer.annotation.freeTextAnnotationModule.selectedText !== '') {\n this.contextMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Paste')], true);\n }\n else {\n this.contextMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Paste')], false);\n }\n }\n else if (isClickWithinSelectionBounds && this.pdfViewer.textSelectionModule) {\n // eslint-disable-next-line max-len\n if ((!args.event.target.classList.contains('e-pv-maintaincontent') && args.event.target.classList.contains('e-pv-text') || args.event.target.classList.contains('e-pv-text-layer'))) {\n if (this.pdfViewerBase.checkIsNormalText()) {\n args.cancel = true;\n }\n // eslint-disable-next-line max-len\n }\n else if ((Browser.isIE || Browser.info.name === 'edge') && args.event.target.classList.contains('e-pv-page-container')) {\n args.cancel = true;\n }\n // eslint-disable-next-line max-len\n this.contextMenuObj.hideItems([this.pdfViewer.localeObj.getConstant('Cut'), this.pdfViewer.localeObj.getConstant('Paste'), this.pdfViewer.localeObj.getConstant('Delete Context'), this.pdfViewer.localeObj.getConstant('Scale Ratio'), this.pdfViewer.localeObj.getConstant('Comment'), this.pdfViewer.localeObj.getConstant('Properties')]);\n this.pdfViewerBase.getElement('_context_menu_separator').classList.add('e-menu-hide');\n this.pdfViewerBase.getElement('_context_menu_comment_separator').classList.add('e-menu-hide');\n // eslint-disable-next-line max-len\n }\n else if (this.pdfViewer.selectedItems.annotations.length !== 0 && (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'HandWrittenSignature' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'SignatureText' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'SignatureImage' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Path')) {\n this.onOpeningForShape(false, true);\n // eslint-disable-next-line max-len\n }\n else if (this.pdfViewer.selectedItems.annotations.length !== 0 && this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType !== 'Path' && !currentAnnotSettings.isLock) {\n this.onOpeningForShape(true);\n // eslint-disable-next-line max-len\n }\n else if (this.pdfViewer.selectedItems.formFields.length !== 0 && this.pdfViewer.selectedItems.formFields[0].formFieldAnnotationType && this.pdfViewer.designerMode) {\n this.onOpeningForShape(true);\n // eslint-disable-next-line max-len\n if (!isNullOrUndefined(this.pdfViewer.toolbar) && !isNullOrUndefined(this.pdfViewer.toolbar.formDesignerToolbarModule)) {\n this.pdfViewer.toolbar.formDesignerToolbarModule.showHideDeleteIcon(true);\n }\n }\n else {\n // eslint-disable-next-line\n var target_1 = this.pdfViewerBase.designerModetarget;\n var annotationModule = this.pdfViewer.annotationModule;\n if (args.event && args.event.target) {\n target_1 = args.event.target;\n }\n // eslint-disable-next-line max-len\n if (this.pdfViewer.annotation && this.pdfViewer.annotation.isShapeCopied && ((target_1).classList.contains('e-pv-text-layer') ||\n (target_1).classList.contains('e-pv-text')) && !this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n this.onOpeningForShape(false);\n // eslint-disable-next-line max-len\n }\n else if (this.pdfViewer.formDesigner && this.pdfViewer.formDesigner.isShapeCopied && ((target_1).classList.contains('e-pv-text-layer') ||\n (target_1).classList.contains('e-pv-text'))) {\n this.onOpeningForShape(false);\n // eslint-disable-next-line max-len\n }\n else if (this.pdfViewerBase.isCalibrateAnnotationModule() && this.pdfViewer.annotationModule.measureAnnotationModule.currentAnnotationMode && !currentAnnotSettings) {\n // eslint-disable-next-line max-len\n this.contextMenuObj.hideItems([this.pdfViewer.localeObj.getConstant('Highlight context'), this.pdfViewer.localeObj.getConstant('Underline context'), this.pdfViewer.localeObj.getConstant('Strikethrough context'), this.pdfViewer.localeObj.getConstant('Properties')]);\n this.pdfViewerBase.getElement('_context_menu_separator').classList.add('e-menu-hide');\n this.pdfViewerBase.getElement('_context_menu_comment_separator').classList.remove('e-menu-hide');\n // eslint-disable-next-line max-len\n this.contextMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Cut'), this.pdfViewer.localeObj.getConstant('Copy'), this.pdfViewer.localeObj.getConstant('Paste'), this.pdfViewer.localeObj.getConstant('Delete Context'), this.pdfViewer.localeObj.getConstant('Comment')], false);\n // eslint-disable-next-line max-len\n }\n else if (annotationModule && annotationModule.textMarkupAnnotationModule && annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation && !annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation.annotationSettings.isLock) {\n // eslint-disable-next-line max-len\n this.contextMenuObj.hideItems([this.pdfViewer.localeObj.getConstant('Highlight context'), this.pdfViewer.localeObj.getConstant('Underline context'), this.pdfViewer.localeObj.getConstant('Strikethrough context'), this.pdfViewer.localeObj.getConstant('Properties'), this.pdfViewer.localeObj.getConstant('Cut'),\n this.pdfViewer.localeObj.getConstant('Copy'), this.pdfViewer.localeObj.getConstant('Paste'), this.pdfViewer.localeObj.getConstant('Scale Ratio')]);\n this.pdfViewerBase.getElement('_context_menu_separator').classList.add('e-menu-hide');\n this.pdfViewerBase.getElement('_context_menu_comment_separator').classList.remove('e-menu-hide');\n // eslint-disable-next-line max-len\n this.contextMenuObj.showItems([this.pdfViewer.localeObj.getConstant('Delete Context'), this.pdfViewer.localeObj.getConstant('Comment')], false);\n }\n else {\n args.cancel = true;\n }\n }\n }\n else if (this.pdfViewer.textSelectionModule && (this.pdfViewer.contextMenuOption === 'MouseUp')) {\n // eslint-disable-next-line max-len\n this.contextMenuObj.hideItems([this.pdfViewer.localeObj.getConstant('Cut'), this.pdfViewer.localeObj.getConstant('Paste'), this.pdfViewer.localeObj.getConstant('Delete Context'), this.pdfViewer.localeObj.getConstant('Scale Ratio'), this.pdfViewer.localeObj.getConstant('Comment'), this.pdfViewer.localeObj.getConstant('Properties')]);\n this.pdfViewerBase.getElement('_context_menu_separator').classList.add('e-menu-hide');\n this.pdfViewerBase.getElement('_context_menu_comment_separator').classList.add('e-menu-hide');\n }\n else {\n this.hideContextItems();\n }\n this.enableCommentPanelItem();\n }\n else {\n args.cancel = true;\n }\n if (this.pdfViewer.contextMenuOption === 'None') {\n args.cancel = true;\n }\n else {\n this.contextMenuItems(args);\n }\n if (this.pdfViewer.annotationModule && this.pdfViewer.annotationModule.restrictContextMenu()) {\n args.cancel = true;\n }\n this.pdfViewerBase.isTouchDesignerMode = false;\n };\n ContextMenu.prototype.contextMenuItems = function (args) {\n if (this.pdfViewer.contextMenuSettings.contextMenuItems.length) {\n var hideMenuItems = [];\n var contextMenuList = this.contextMenuCollection();\n var ul = this.contextMenuObj.getRootElement();\n for (var j = 0; j < this.pdfViewer.contextMenuSettings.contextMenuItems.length; j++) {\n for (var i = 0; i < this.contextMenuList.length; i++) {\n var menuItem = this.contextMenuList[parseInt(i.toString(), 10)].text;\n switch (menuItem) {\n case 'Highlight':\n menuItem = 'Highlight context';\n break;\n case 'Underline':\n menuItem = 'Underline context';\n break;\n case 'Strikethrough':\n menuItem = 'Strikethrough context';\n break;\n case 'Delete':\n menuItem = 'Delete Context';\n break;\n case 'Scale Ratio':\n menuItem = 'Scale Ratio';\n break;\n case 'Comment':\n this.pdfViewerBase.getElement('_context_menu_comment_separator').classList.add('e-menu-hide');\n break;\n case 'Properties':\n this.pdfViewerBase.getElement('_context_menu_separator').classList.add('e-menu-hide');\n break;\n }\n var menuName = this.contextMenuList[parseInt(i.toString(), 10)].text;\n if (j === 0 && menuName !== ContextMenuItem[this.pdfViewer.contextMenuSettings.contextMenuItems[parseInt(j.toString(), 10)]]) {\n hideMenuItems.push(menuName);\n }\n if (j > 0 && menuName === ContextMenuItem[this.pdfViewer.contextMenuSettings.contextMenuItems[parseInt(j.toString(), 10)]]) {\n for (var k = 0; k < hideMenuItems.length; k++) {\n if (hideMenuItems[parseInt(k.toString(), 10)] === menuName) {\n if (this.pdfViewer.disableContextMenuItems && this.pdfViewer.disableContextMenuItems.length > 0) {\n var isDisabled = false;\n for (var l = 0; l < this.pdfViewer.disableContextMenuItems.length; l++) {\n if (hideMenuItems[parseInt(k.toString(), 10)] === ContextMenuItem[this.pdfViewer.disableContextMenuItems[parseInt(l.toString(), 10)]]) {\n isDisabled = true;\n }\n }\n if (!isDisabled) {\n hideMenuItems.splice(k, 1);\n }\n }\n else {\n hideMenuItems.splice(k, 1);\n }\n }\n }\n }\n }\n }\n var hideLocaleItem = this.processLocaleContent(hideMenuItems);\n this.contextMenuObj.hideItems(hideLocaleItem);\n if (this.getEnabledItemCount(ul) === 0) {\n args.cancel = true;\n }\n }\n };\n ContextMenu.prototype.processLocaleContent = function (hideMenuItems) {\n var contextMenuLocaleContent = [];\n if (hideMenuItems.length > 0) {\n for (var i = 0; i < hideMenuItems.length; i++) {\n var menuItem = hideMenuItems[parseInt(i.toString(), 10)];\n switch (menuItem) {\n case 'Highlight':\n menuItem = 'Highlight context';\n break;\n case 'Underline':\n menuItem = 'Underline context';\n break;\n case 'Strikethrough':\n menuItem = 'Strikethrough context';\n break;\n case 'Delete':\n menuItem = 'Delete Context';\n break;\n case 'ScaleRatio':\n menuItem = 'Scale Ratio';\n break;\n }\n contextMenuLocaleContent.push(this.pdfViewer.localeObj.getConstant(menuItem));\n }\n }\n return contextMenuLocaleContent;\n };\n ContextMenu.prototype.contextMenuCollection = function () {\n return this.contextMenuList = [{ text: 'Cut' }, { text: 'Copy' }, { text: 'Highlight' }, { text: 'Underline' }, { text: 'Strikethrough' },\n { text: 'Paste' }, { text: 'Delete' }, { text: 'ScaleRatio' }, { text: 'Comment' }, { text: 'Properties' }];\n };\n ContextMenu.prototype.getEnabledItemCount = function (ul) {\n var enabledItemCount = this.copyContextMenu.length;\n var liCollection = ul.children;\n for (var i = 0; i < liCollection.length; i++) {\n // eslint-disable-next-line\n var li = liCollection[i];\n if (li.classList.contains('e-menu-hide') || li.classList.contains('e-disabled')) {\n enabledItemCount = enabledItemCount - 1;\n }\n }\n return enabledItemCount;\n };\n ContextMenu.prototype.hideContextItems = function () {\n if (this.pdfViewer.selectedItems.annotations.length === 0) {\n // eslint-disable-next-line max-len\n this.contextMenuObj.hideItems([this.pdfViewer.localeObj.getConstant('Cut'), this.pdfViewer.localeObj.getConstant('Paste'), this.pdfViewer.localeObj.getConstant('Delete Context'), this.pdfViewer.localeObj.getConstant('Scale Ratio'), this.pdfViewer.localeObj.getConstant('Properties')]);\n this.pdfViewerBase.getElement('_context_menu_separator').classList.add('e-menu-hide');\n }\n };\n ContextMenu.prototype.enableCommentPanelItem = function () {\n if (this.pdfViewer.enableCommentPanel) {\n this.contextMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Comment')], true);\n }\n else {\n this.contextMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Comment')], false);\n }\n if (this.pdfViewer.selectedItems.formFields.length !== 0) {\n this.contextMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Comment')], false);\n }\n };\n ContextMenu.prototype.onOpeningForShape = function (isProp, isSignature) {\n if (this.pdfViewer.annotation && this.pdfViewer.annotation.isShapeCopied) {\n this.contextMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Paste')], true);\n }\n else if (this.pdfViewer.formDesigner && this.pdfViewer.formDesigner.isShapeCopied) {\n this.contextMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Paste')], true);\n }\n else {\n this.contextMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Paste')], false);\n }\n // eslint-disable-next-line max-len\n this.contextMenuObj.hideItems([this.pdfViewer.localeObj.getConstant('Highlight context'), this.pdfViewer.localeObj.getConstant('Underline context'), this.pdfViewer.localeObj.getConstant('Strikethrough context'), this.pdfViewer.localeObj.getConstant('Scale Ratio')]);\n if (isProp) {\n // eslint-disable-next-line max-len\n if (this.pdfViewer.selectedItems.annotations.length !== 0 && (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Line' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'LineWidthArrowHead' ||\n this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Distance')) {\n this.contextMenuObj.showItems([this.pdfViewer.localeObj.getConstant('Properties')]);\n // eslint-disable-next-line max-len\n }\n else if (this.pdfViewer.selectedItems.formFields.length !== 0 && this.pdfViewer.selectedItems.formFields[0].formFieldAnnotationType) {\n this.contextMenuObj.hideItems([this.pdfViewer.localeObj.getConstant('Comment')]);\n this.pdfViewerBase.getElement('_context_menu_separator').classList.add('e-menu-hide');\n this.contextMenuObj.showItems([this.pdfViewer.localeObj.getConstant('Properties')]);\n }\n else if (isNullOrUndefined(isSignature) && this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === \"Image\" && !this.pdfViewer.selectedItems.annotations[0].id.startsWith(\"stamp\")) {\n this.contextMenuObj.hideItems([this.pdfViewer.localeObj.getConstant('Properties'), this.pdfViewer.localeObj.getConstant('Comment'), this.pdfViewer.localeObj.getConstant('Cut'), this.pdfViewer.localeObj.getConstant('Copy'), this.pdfViewer.localeObj.getConstant('Paste')]);\n this.pdfViewerBase.getElement('_context_menu_separator').classList.add('e-menu-hide');\n this.pdfViewerBase.getElement('_context_menu_comment_separator').classList.add('e-menu-hide');\n }\n else {\n this.contextMenuObj.hideItems([this.pdfViewer.localeObj.getConstant('Properties')]);\n this.pdfViewerBase.getElement('_context_menu_separator').classList.add('e-menu-hide');\n }\n }\n else if (isSignature) {\n if ((this.pdfViewer.selectedItems.annotations[0].annotName === \"SignatureField\" || this.pdfViewer.selectedItems.annotations[0].annotName === \"InitialField\" || this.pdfViewer.selectedItems.annotations[0].annotName === \"SignatureText\")) {\n this.contextMenuObj.hideItems([this.pdfViewer.localeObj.getConstant('Properties'), this.pdfViewer.localeObj.getConstant('Comment'), this.pdfViewer.localeObj.getConstant('Cut'), this.pdfViewer.localeObj.getConstant('Copy'), this.pdfViewer.localeObj.getConstant('Paste')]);\n this.pdfViewerBase.getElement('_context_menu_separator').classList.add('e-menu-hide');\n this.pdfViewerBase.getElement('_context_menu_comment_separator').classList.add('e-menu-hide');\n }\n else {\n this.contextMenuObj.hideItems([this.pdfViewer.localeObj.getConstant('Properties'), this.pdfViewer.localeObj.getConstant('Comment')]);\n this.pdfViewerBase.getElement('_context_menu_separator').classList.add('e-menu-hide');\n this.pdfViewerBase.getElement('_context_menu_comment_separator').classList.add('e-menu-hide');\n }\n }\n else {\n this.contextMenuObj.hideItems([this.pdfViewer.localeObj.getConstant('Cut'), this.pdfViewer.localeObj.getConstant('Copy'),\n // eslint-disable-next-line max-len\n this.pdfViewer.localeObj.getConstant('Delete Context'), this.pdfViewer.localeObj.getConstant('Properties'), this.pdfViewer.localeObj.getConstant('Comment')]);\n this.pdfViewerBase.getElement('_context_menu_separator').classList.add('e-menu-hide');\n this.pdfViewerBase.getElement('_context_menu_comment_separator').classList.add('e-menu-hide');\n }\n };\n ContextMenu.prototype.OnItemSelected = function (selectedMenu) {\n this.pdfViewerBase.OnItemSelected(selectedMenu);\n };\n ContextMenu.prototype.onMenuItemSelect = function (args) {\n this.pdfViewerBase.OnItemSelected(args.item.text);\n };\n /**\n * @private\n * @returns {void}\n */\n ContextMenu.prototype.destroy = function () {\n if (this.contextMenuObj) {\n this.previousAction = '';\n this.contextMenuObj.destroy();\n }\n };\n /**\n * @private\n * @returns {void}\n */\n ContextMenu.prototype.close = function () {\n this.contextMenuObj.close();\n };\n /**\n * open the context menu.\n * @param {number} top - The top.\n * @param {number} left - The left.\n * @param {HTMLElement} target - The target.\n * @returns {void}\n */\n ContextMenu.prototype.open = function (top, left, target) {\n /* eslint-disable */\n this.contextMenuObj.open(top, left, target);\n /* eslint-enable */\n };\n return ContextMenu;\n}());\nexport { ContextMenu };\n","/**\n * Size defines and processes the size(width/height) of the objects\n */\nvar Size = /** @class */ (function () {\n function Size(width, height) {\n this.width = width;\n this.height = height;\n }\n // /** @private */\n // public isEmpty(): boolean {\n // return this.height === 0 && this.width === 0;\n // }\n /** @private */\n Size.prototype.clone = function () {\n return new Size(this.width, this.height);\n };\n return Size;\n}());\nexport { Size };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { ChildProperty, Property, Complex } from '@syncfusion/ej2-base';\nimport { Point } from '@syncfusion/ej2-drawings';\nimport { Size } from '@syncfusion/ej2-drawings';\n/**\n * The `PdfBounds` is base for annotation bounds.\n *\n * @hidden\n */\nvar PdfBounds = /** @class */ (function (_super) {\n __extends(PdfBounds, _super);\n function PdfBounds() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(0)\n ], PdfBounds.prototype, \"x\", void 0);\n __decorate([\n Property(0)\n ], PdfBounds.prototype, \"y\", void 0);\n __decorate([\n Property(0)\n ], PdfBounds.prototype, \"width\", void 0);\n __decorate([\n Property(0)\n ], PdfBounds.prototype, \"height\", void 0);\n __decorate([\n Property(0)\n ], PdfBounds.prototype, \"left\", void 0);\n __decorate([\n Property(0)\n ], PdfBounds.prototype, \"top\", void 0);\n __decorate([\n Property(0)\n ], PdfBounds.prototype, \"right\", void 0);\n __decorate([\n Property(0)\n ], PdfBounds.prototype, \"bottom\", void 0);\n __decorate([\n Complex({ x: 0, y: 0 }, Point)\n ], PdfBounds.prototype, \"location\", void 0);\n __decorate([\n Complex(new Size(0, 0), Size)\n ], PdfBounds.prototype, \"size\", void 0);\n return PdfBounds;\n}(ChildProperty));\nexport { PdfBounds };\n/**\n * The `PdfFont` is base for annotation Text styles.\n *\n * @hidden\n */\nvar PdfFont = /** @class */ (function (_super) {\n __extends(PdfFont, _super);\n function PdfFont() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(false)\n ], PdfFont.prototype, \"isBold\", void 0);\n __decorate([\n Property(false)\n ], PdfFont.prototype, \"isItalic\", void 0);\n __decorate([\n Property(false)\n ], PdfFont.prototype, \"isUnderline\", void 0);\n __decorate([\n Property(false)\n ], PdfFont.prototype, \"isStrikeout\", void 0);\n return PdfFont;\n}(ChildProperty));\nexport { PdfFont };\n/**\n * Defines the common behavior of PdfAnnotationBase\n *\n * @hidden\n */\nvar PdfAnnotationBase = /** @class */ (function (_super) {\n __extends(PdfAnnotationBase, _super);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function PdfAnnotationBase(parent, propName, defaultValue, isArray) {\n return _super.call(this, parent, propName, defaultValue, isArray) || this;\n }\n __decorate([\n Property('')\n ], PdfAnnotationBase.prototype, \"id\", void 0);\n __decorate([\n Property('Rectangle')\n ], PdfAnnotationBase.prototype, \"shapeAnnotationType\", void 0);\n __decorate([\n Property(null)\n ], PdfAnnotationBase.prototype, \"formFieldAnnotationType\", void 0);\n __decorate([\n Property('')\n ], PdfAnnotationBase.prototype, \"measureType\", void 0);\n __decorate([\n Property('')\n ], PdfAnnotationBase.prototype, \"author\", void 0);\n __decorate([\n Property('')\n ], PdfAnnotationBase.prototype, \"modifiedDate\", void 0);\n __decorate([\n Property('')\n ], PdfAnnotationBase.prototype, \"subject\", void 0);\n __decorate([\n Property('')\n ], PdfAnnotationBase.prototype, \"notes\", void 0);\n __decorate([\n Property(false)\n ], PdfAnnotationBase.prototype, \"isCommentLock\", void 0);\n __decorate([\n Property('black')\n ], PdfAnnotationBase.prototype, \"strokeColor\", void 0);\n __decorate([\n Property('#ffffff00')\n ], PdfAnnotationBase.prototype, \"fillColor\", void 0);\n __decorate([\n Property('#ffffff00')\n ], PdfAnnotationBase.prototype, \"stampFillColor\", void 0);\n __decorate([\n Property('black')\n ], PdfAnnotationBase.prototype, \"stampStrokeColor\", void 0);\n __decorate([\n Property('')\n ], PdfAnnotationBase.prototype, \"data\", void 0);\n __decorate([\n Property(1)\n ], PdfAnnotationBase.prototype, \"opacity\", void 0);\n __decorate([\n Property(1)\n ], PdfAnnotationBase.prototype, \"thickness\", void 0);\n __decorate([\n Property('')\n ], PdfAnnotationBase.prototype, \"borderStyle\", void 0);\n __decorate([\n Property('')\n ], PdfAnnotationBase.prototype, \"borderDashArray\", void 0);\n __decorate([\n Property(0)\n ], PdfAnnotationBase.prototype, \"rotateAngle\", void 0);\n __decorate([\n Property(false)\n ], PdfAnnotationBase.prototype, \"isCloudShape\", void 0);\n __decorate([\n Property(0)\n ], PdfAnnotationBase.prototype, \"cloudIntensity\", void 0);\n __decorate([\n Property(40)\n ], PdfAnnotationBase.prototype, \"leaderHeight\", void 0);\n __decorate([\n Property(null)\n ], PdfAnnotationBase.prototype, \"lineHeadStart\", void 0);\n __decorate([\n Property(null)\n ], PdfAnnotationBase.prototype, \"lineHeadEnd\", void 0);\n __decorate([\n Property([])\n ], PdfAnnotationBase.prototype, \"vertexPoints\", void 0);\n __decorate([\n Property(null)\n ], PdfAnnotationBase.prototype, \"sourcePoint\", void 0);\n __decorate([\n Property('None')\n ], PdfAnnotationBase.prototype, \"sourceDecoraterShapes\", void 0);\n __decorate([\n Property('None')\n ], PdfAnnotationBase.prototype, \"taregetDecoraterShapes\", void 0);\n __decorate([\n Property(null)\n ], PdfAnnotationBase.prototype, \"targetPoint\", void 0);\n __decorate([\n Property([])\n ], PdfAnnotationBase.prototype, \"segments\", void 0);\n __decorate([\n Complex({ x: 0, y: 0 }, PdfBounds)\n ], PdfAnnotationBase.prototype, \"bounds\", void 0);\n __decorate([\n Property(0)\n ], PdfAnnotationBase.prototype, \"pageIndex\", void 0);\n __decorate([\n Property(-1)\n ], PdfAnnotationBase.prototype, \"zIndex\", void 0);\n __decorate([\n Property(null)\n ], PdfAnnotationBase.prototype, \"wrapper\", void 0);\n __decorate([\n Property(false)\n ], PdfAnnotationBase.prototype, \"isDynamicStamp\", void 0);\n __decorate([\n Property('')\n ], PdfAnnotationBase.prototype, \"dynamicText\", void 0);\n __decorate([\n Property('')\n ], PdfAnnotationBase.prototype, \"annotName\", void 0);\n __decorate([\n Property({})\n ], PdfAnnotationBase.prototype, \"review\", void 0);\n __decorate([\n Property([])\n ], PdfAnnotationBase.prototype, \"comments\", void 0);\n __decorate([\n Property('#000')\n ], PdfAnnotationBase.prototype, \"fontColor\", void 0);\n __decorate([\n Property(16)\n ], PdfAnnotationBase.prototype, \"fontSize\", void 0);\n __decorate([\n Property('Helvetica')\n ], PdfAnnotationBase.prototype, \"fontFamily\", void 0);\n __decorate([\n Property('None')\n ], PdfAnnotationBase.prototype, \"fontStyle\", void 0);\n __decorate([\n Property(false)\n ], PdfAnnotationBase.prototype, \"enableShapeLabel\", void 0);\n __decorate([\n Property('label')\n ], PdfAnnotationBase.prototype, \"labelContent\", void 0);\n __decorate([\n Property('#ffffff00')\n ], PdfAnnotationBase.prototype, \"labelFillColor\", void 0);\n __decorate([\n Property(15)\n ], PdfAnnotationBase.prototype, \"labelMaxLength\", void 0);\n __decorate([\n Property(1)\n ], PdfAnnotationBase.prototype, \"labelOpacity\", void 0);\n __decorate([\n Property('')\n ], PdfAnnotationBase.prototype, \"annotationSelectorSettings\", void 0);\n __decorate([\n Property('#ffffff00')\n ], PdfAnnotationBase.prototype, \"labelBorderColor\", void 0);\n __decorate([\n Property('left')\n ], PdfAnnotationBase.prototype, \"textAlign\", void 0);\n __decorate([\n Property('')\n ], PdfAnnotationBase.prototype, \"signatureName\", void 0);\n __decorate([\n Property(0)\n ], PdfAnnotationBase.prototype, \"minHeight\", void 0);\n __decorate([\n Property(0)\n ], PdfAnnotationBase.prototype, \"minWidth\", void 0);\n __decorate([\n Property(0)\n ], PdfAnnotationBase.prototype, \"maxHeight\", void 0);\n __decorate([\n Property(0)\n ], PdfAnnotationBase.prototype, \"maxWidth\", void 0);\n __decorate([\n Property(false)\n ], PdfAnnotationBase.prototype, \"isLock\", void 0);\n __decorate([\n Property('UI Drawn Annotation')\n ], PdfAnnotationBase.prototype, \"annotationAddMode\", void 0);\n __decorate([\n Property('')\n ], PdfAnnotationBase.prototype, \"annotationSettings\", void 0);\n __decorate([\n Property(16)\n ], PdfAnnotationBase.prototype, \"previousFontSize\", void 0);\n __decorate([\n Complex({ isBold: false, isItalic: false, isStrikeout: false, isUnderline: false }, PdfFont)\n ], PdfAnnotationBase.prototype, \"font\", void 0);\n __decorate([\n Complex({ x: 0, y: 0 }, PdfBounds)\n ], PdfAnnotationBase.prototype, \"labelBounds\", void 0);\n __decorate([\n Property(null)\n ], PdfAnnotationBase.prototype, \"customData\", void 0);\n __decorate([\n Property(['None'])\n ], PdfAnnotationBase.prototype, \"allowedInteractions\", void 0);\n __decorate([\n Property(true)\n ], PdfAnnotationBase.prototype, \"isPrint\", void 0);\n __decorate([\n Property(false)\n ], PdfAnnotationBase.prototype, \"isReadonly\", void 0);\n __decorate([\n Property(0)\n ], PdfAnnotationBase.prototype, \"pageRotation\", void 0);\n __decorate([\n Property(false)\n ], PdfAnnotationBase.prototype, \"isAddAnnotationProgrammatically\", void 0);\n return PdfAnnotationBase;\n}(ChildProperty));\nexport { PdfAnnotationBase };\n/**\n * Defines the common behavior of PdfFormFieldBase\n *\n * @hidden\n */\nvar PdfFormFieldBase = /** @class */ (function (_super) {\n __extends(PdfFormFieldBase, _super);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function PdfFormFieldBase(parent, propName, defaultValue, isArray) {\n return _super.call(this, parent, propName, defaultValue, isArray) || this;\n }\n __decorate([\n Property('')\n ], PdfFormFieldBase.prototype, \"id\", void 0);\n __decorate([\n Property('')\n ], PdfFormFieldBase.prototype, \"signatureType\", void 0);\n __decorate([\n Property('')\n ], PdfFormFieldBase.prototype, \"name\", void 0);\n __decorate([\n Property('')\n ], PdfFormFieldBase.prototype, \"value\", void 0);\n __decorate([\n Property(null)\n ], PdfFormFieldBase.prototype, \"formFieldAnnotationType\", void 0);\n __decorate([\n Property('#daeaf7ff')\n ], PdfFormFieldBase.prototype, \"backgroundColor\", void 0);\n __decorate([\n Property('black')\n ], PdfFormFieldBase.prototype, \"color\", void 0);\n __decorate([\n Property('#303030')\n ], PdfFormFieldBase.prototype, \"borderColor\", void 0);\n __decorate([\n Property('')\n ], PdfFormFieldBase.prototype, \"tooltip\", void 0);\n __decorate([\n Property(1)\n ], PdfFormFieldBase.prototype, \"opacity\", void 0);\n __decorate([\n Property(1)\n ], PdfFormFieldBase.prototype, \"thickness\", void 0);\n __decorate([\n Property(0)\n ], PdfFormFieldBase.prototype, \"rotateAngle\", void 0);\n __decorate([\n Complex({ x: 0, y: 0 }, PdfBounds)\n ], PdfFormFieldBase.prototype, \"bounds\", void 0);\n __decorate([\n Property(0)\n ], PdfFormFieldBase.prototype, \"pageIndex\", void 0);\n __decorate([\n Property(1)\n ], PdfFormFieldBase.prototype, \"pageNumber\", void 0);\n __decorate([\n Property(-1)\n ], PdfFormFieldBase.prototype, \"zIndex\", void 0);\n __decorate([\n Property(null)\n ], PdfFormFieldBase.prototype, \"wrapper\", void 0);\n __decorate([\n Property(16)\n ], PdfFormFieldBase.prototype, \"fontSize\", void 0);\n __decorate([\n Property('Helvetica')\n ], PdfFormFieldBase.prototype, \"fontFamily\", void 0);\n __decorate([\n Property('None')\n ], PdfFormFieldBase.prototype, \"fontStyle\", void 0);\n __decorate([\n Property('left')\n ], PdfFormFieldBase.prototype, \"alignment\", void 0);\n __decorate([\n Property(0)\n ], PdfFormFieldBase.prototype, \"minHeight\", void 0);\n __decorate([\n Property(0)\n ], PdfFormFieldBase.prototype, \"minWidth\", void 0);\n __decorate([\n Property(0)\n ], PdfFormFieldBase.prototype, \"maxHeight\", void 0);\n __decorate([\n Property(0)\n ], PdfFormFieldBase.prototype, \"maxWidth\", void 0);\n __decorate([\n Property(0)\n ], PdfFormFieldBase.prototype, \"maxLength\", void 0);\n __decorate([\n Property('visible')\n ], PdfFormFieldBase.prototype, \"visibility\", void 0);\n __decorate([\n Property(true)\n ], PdfFormFieldBase.prototype, \"isPrint\", void 0);\n __decorate([\n Property(false)\n ], PdfFormFieldBase.prototype, \"isReadonly\", void 0);\n __decorate([\n Property(false)\n ], PdfFormFieldBase.prototype, \"isChecked\", void 0);\n __decorate([\n Property(false)\n ], PdfFormFieldBase.prototype, \"isSelected\", void 0);\n __decorate([\n Property(false)\n ], PdfFormFieldBase.prototype, \"isRequired\", void 0);\n __decorate([\n Property(false)\n ], PdfFormFieldBase.prototype, \"isMultiline\", void 0);\n __decorate([\n Property(false)\n ], PdfFormFieldBase.prototype, \"isTransparent\", void 0);\n __decorate([\n Property(false)\n ], PdfFormFieldBase.prototype, \"insertSpaces\", void 0);\n __decorate([\n Property('')\n ], PdfFormFieldBase.prototype, \"options\", void 0);\n __decorate([\n Property()\n ], PdfFormFieldBase.prototype, \"signatureIndicatorSettings\", void 0);\n __decorate([\n Complex({ isBold: false, isItalic: false, isStrikeout: false, isUnderline: false }, PdfFont)\n ], PdfFormFieldBase.prototype, \"font\", void 0);\n __decorate([\n Property()\n ], PdfFormFieldBase.prototype, \"selectedIndex\", void 0);\n return PdfFormFieldBase;\n}(ChildProperty));\nexport { PdfFormFieldBase };\n/**\n * @hidden\n */\nvar ZOrderPageTable = /** @class */ (function () {\n function ZOrderPageTable() {\n this.pageIdTemp = 0;\n this.zIndexTemp = -1;\n this.childNodesTemp = [];\n this.objects = [];\n this.zIndexTemp = -1;\n this.pageIdTemp = 0;\n }\n Object.defineProperty(ZOrderPageTable.prototype, \"pageId\", {\n /**\n * @private\n * @returns {number} - Returns the page Id.\n */\n get: function () {\n return this.pageIdTemp;\n },\n /**\n * @private\n * @param {number} offset - The page offset value.\n */\n set: function (offset) {\n this.pageIdTemp = offset;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ZOrderPageTable.prototype, \"zIndex\", {\n /**\n * @private\n * @returns {number} - Returns the z-index value.\n */\n get: function () {\n return this.zIndexTemp;\n },\n /**\n * @private\n * @param {number} offset - The page offset value.\n */\n set: function (offset) {\n this.zIndexTemp = offset;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ZOrderPageTable.prototype, \"objects\", {\n /**\n * @private\n * @returns {PdfAnnotationBaseModel[]} - Returns the annotation childNodes.\n */\n get: function () {\n return this.childNodesTemp;\n },\n /**\n * @private\n * @param {PdfAnnotationBaseModel[]} childNodes - Specified the annotation child nodes.\n */\n set: function (childNodes) {\n this.childNodesTemp = childNodes;\n },\n enumerable: true,\n configurable: true\n });\n return ZOrderPageTable;\n}());\nexport { ZOrderPageTable };\n","import { AnnotationDataFormat } from '../index';\nimport { createElement, Browser, isBlazor } from '@syncfusion/ej2-base';\nimport { Toolbar as Tool, ContextMenu as Context } from '@syncfusion/ej2-navigations';\nimport { Tooltip } from '@syncfusion/ej2-popups';\nimport { Toast } from '@syncfusion/ej2-notifications';\n/**\n * The `NavigationPane` module is used to handle navigation pane for thumbnail and bookmark navigation of PDF viewer.\n *\n * @hidden\n */\nvar NavigationPane = /** @class */ (function () {\n /**\n * Initialize the constructor of navigationPane.\n *\n * @param { PdfViewer } viewer - Specified PdfViewer class.\n * @param { PdfViewerBase } base - The pdfViewerBase.\n */\n function NavigationPane(viewer, base) {\n var _this = this;\n this.thumbnailWidthMin = 200;\n this.contentContainerScrollWidth = 33;\n this.closeButtonLeft = 170;\n this.isTooltipCreated = false;\n this.isThumbnail = false;\n this.annotationContextMenu = [];\n this.isCommentPanelShow = false;\n this.commentPanelWidthMin = 300;\n /**\n * @private\n */\n this.isNavigationToolbarVisible = false;\n /**\n * @private\n */\n this.isBookmarkListOpen = false;\n /**\n * @private\n */\n this.isNavigationPaneResized = false;\n /**\n * @private\n */\n this.isBookmarkOpen = false;\n /**\n * @private\n */\n this.isThumbnailOpen = false;\n /**\n * @private\n */\n this.restrictUpdateZoomValue = true;\n // eslint-disable-next-line\n this.loadImportAnnotation = function (args) {\n // eslint-disable-next-line\n var upoadedFiles = args.target.files;\n if (args.target.files[0] !== null) {\n var uploadedFile = upoadedFiles[0];\n if (uploadedFile) {\n _this.pdfViewer.fireImportStart(uploadedFile);\n // eslint-disable-next-line\n var uploadedFileType = uploadedFile.type;\n if (uploadedFile.name.split('.json').length > 1 && uploadedFileType.includes('json')) {\n var reader = new FileReader();\n reader.readAsDataURL(uploadedFile);\n // eslint-disable-next-line\n reader.onload = function (e) {\n if (e.currentTarget.result) {\n var importFile = e.currentTarget.result.split(',')[1];\n // eslint-disable-next-line\n var annotationData = atob(importFile);\n if (annotationData) {\n // eslint-disable-next-line\n var jsonData = JSON.parse(annotationData);\n var firstAnnotation = jsonData.pdfAnnotation[Object.keys(jsonData.pdfAnnotation)[0]];\n if ((Object.keys(jsonData.pdfAnnotation).length >= 1) && (firstAnnotation.textMarkupAnnotation || firstAnnotation.measureShapeAnnotation || firstAnnotation.freeTextAnnotation || firstAnnotation.stampAnnotations || firstAnnotation.signatureInkAnnotation || (firstAnnotation.shapeAnnotation && firstAnnotation.shapeAnnotation[0].Bounds))) {\n _this.pdfViewerBase.isPDFViewerJson = true;\n _this.pdfViewerBase.importAnnotations(jsonData, AnnotationDataFormat.Json);\n }\n else {\n _this.pdfViewerBase.isPDFViewerJson = false;\n _this.pdfViewerBase.importAnnotations(importFile, AnnotationDataFormat.Json);\n }\n }\n }\n };\n }\n else if (uploadedFile.name.split('.xfdf').length > 1 && (uploadedFileType.includes('xfdf') || args.target.accept.includes('xfdf'))) {\n var reader = new FileReader();\n reader.readAsDataURL(uploadedFile);\n // eslint-disable-next-line\n reader.onload = function (e) {\n if (e.currentTarget.result) {\n var importFile = e.currentTarget.result.split(',')[1];\n // eslint-disable-next-line\n var annotationData = atob(importFile);\n if (annotationData) {\n // eslint-disable-next-line max-len\n _this.pdfViewerBase.importAnnotations(importFile, AnnotationDataFormat.Xfdf, true);\n }\n }\n };\n }\n else {\n _this.pdfViewer.fireImportFailed(uploadedFile, _this.pdfViewer.localeObj.getConstant('Import Failed'));\n if (isBlazor()) {\n var promise = _this.pdfViewer._dotnetInstance.invokeMethodAsync('GetLocaleText', 'PdfViewer_ImportFailed');\n promise.then(function (value) {\n _this.pdfViewerBase.openImportExportNotificationPopup(value);\n });\n }\n else {\n _this.pdfViewerBase.openImportExportNotificationPopup(_this.pdfViewer.localeObj.getConstant('Import Failed'));\n }\n }\n }\n args.target.value = \"\";\n }\n };\n /**\n * @param {MouseEvent} event - The event.\n * @returns {void}\n */\n this.resizeIconMouseOver = function (event) {\n event.srcElement.style.cursor = 'e-resize';\n };\n /**\n * @param {MouseEvent} event - The event.\n * @returns {void}\n */\n this.resizePanelMouseDown = function (event) {\n var proxy = null;\n proxy = _this;\n proxy.offset = [\n proxy.sideBarResizer.offsetLeft - event.clientX,\n proxy.sideBarResizer.offsetTop - event.clientY,\n proxy.sideBarResizer.offsetParent.clientWidth\n ];\n _this.previousX = event.clientX;\n proxy.isDown = true;\n proxy.isNavigationPaneResized = true;\n proxy.pdfViewerBase.viewerContainer.style.cursor = 'e-resize';\n if (proxy.sideBarContentContainer) {\n proxy.sideBarContentContainer.style.cursor = 'e-resize';\n }\n };\n /**\n * @param {MouseEvent} event - The event.\n * @returns {void}\n */\n this.resizeViewerMouseLeave = function (event) {\n var proxy = null;\n proxy = _this;\n proxy.isDown = false;\n if (proxy.isNavigationPaneResized && proxy.sideBarContentContainer) {\n proxy.pdfViewerBase.viewerContainer.style.cursor = 'default';\n proxy.sideBarContentContainer.style.cursor = 'default';\n proxy.isNavigationPaneResized = false;\n }\n if (proxy.commentPanelContainer && proxy.isCommentPanelShow) {\n _this.commentPanelMouseLeave(event);\n proxy.isCommentPanelShow = false;\n }\n };\n /**\n * @param {MouseEvent} event - The event.\n * @returns {void}\n */\n this.resizePanelMouseMove = function (event) {\n var proxy = null;\n proxy = _this;\n if (!_this.pdfViewerBase.getPopupNoteVisibleStatus()) {\n var target = event.target;\n // eslint-disable-next-line max-len\n if (_this.pdfViewerBase.skipPreventDefault(target)) {\n event.preventDefault();\n }\n if (proxy.isDown && _this.sideBarContentContainer) {\n // prevent the sidebar from becoming too narrow, or from occupying more\n // than half of the available viewer width.\n if (_this.pdfViewer.enableRtl) {\n var currentWidth = _this.previousX - event.clientX;\n var width = currentWidth + proxy.offset[2];\n var maxWidth = Math.floor(_this.outerContainerWidth / 2);\n if (width > maxWidth) {\n width = maxWidth;\n }\n if (width < _this.thumbnailWidthMin) {\n width = _this.thumbnailWidthMin;\n }\n proxy.sideBarResizer.style.right = width + 'px';\n proxy.sideBarContentContainer.style.width = width + 'px';\n proxy.sideBarContent.style.width = width + 'px';\n proxy.sideBarContentSplitter.style.width = width + 'px';\n proxy.sideBarTitleContainer.style.width = width + 'px';\n // eslint-disable-next-line max-len\n proxy.pdfViewerBase.viewerContainer.style.right = proxy.getViewerContainerLeft() + 'px';\n proxy.pdfViewerBase.viewerContainer.style.left = proxy.getViewerContainerRight() + 'px';\n }\n else {\n var width = event.clientX + proxy.offset[0];\n var maxWidth = Math.floor(_this.outerContainerWidth / 2);\n if (width > maxWidth) {\n width = maxWidth;\n }\n if (width < _this.thumbnailWidthMin) {\n width = _this.thumbnailWidthMin;\n }\n proxy.sideBarResizer.style.left = width + 'px';\n proxy.closeDiv.style.left = width - proxy.contentContainerScrollWidth + 'px';\n proxy.sideBarContentContainer.style.width = width + 'px';\n proxy.sideBarContent.style.width = width + 'px';\n proxy.sideBarContentSplitter.style.width = width + 'px';\n proxy.sideBarTitleContainer.style.width = width + 'px';\n // eslint-disable-next-line max-len\n proxy.pdfViewerBase.viewerContainer.style.left = proxy.getViewerContainerLeft() + 'px';\n proxy.pdfViewerBase.viewerContainer.style.right = proxy.getViewerContainerRight() + 'px';\n }\n // eslint-disable-next-line max-len\n var viewerWidth = (proxy.pdfViewer.element.clientWidth - proxy.getViewerContainerLeft() - proxy.getViewerContainerRight());\n proxy.pdfViewerBase.viewerContainer.style.width = viewerWidth + 'px';\n proxy.pdfViewerBase.pageContainer.style.width = proxy.pdfViewerBase.viewerContainer.clientWidth + 'px';\n proxy.pdfViewer.thumbnailViewModule.gotoThumbnailImage(proxy.pdfViewerBase.currentPageNumber - 1);\n proxy.pdfViewerBase.updateZoomValue();\n if (!proxy.bookmarkButton.children[0].classList.contains('e-pv-bookmark-disable-icon')) {\n proxy.pdfViewer.bookmarkViewModule.setBookmarkContentHeight();\n }\n }\n else if (proxy.isCommentPanelShow && _this.commentPanelContainer) {\n _this.updateCommentPanelContainer(event);\n }\n }\n };\n /**\n * @param {MouseEvent} event - The event.\n * @returns {void}\n */\n this.sideToolbarOnClose = function (event) {\n var proxy = null;\n proxy = _this;\n proxy.removeThumbnailSelectionIconTheme();\n proxy.removeBookmarkSelectionIconTheme();\n proxy.updateViewerContainerOnClose();\n };\n /**\n * @param {MouseEvent} event - The event.\n * @returns {void}\n */\n this.sideToolbarOnClick = function (event) {\n _this.sideBarTitle.textContent = _this.pdfViewer.localeObj.getConstant('Page Thumbnails');\n _this.sideBarContent.setAttribute('aria-label', 'Thumbnail View Panel');\n var proxy = null;\n proxy = _this;\n var isblazor = isBlazor();\n // eslint-disable-next-line max-len\n var bookmarkPane = isblazor ? _this.pdfViewer.element.querySelector('.e-pv-bookmark-view') : document.getElementById(_this.pdfViewer.element.id + '_bookmark_view');\n if (bookmarkPane) {\n proxy.removeBookmarkSelectionIconTheme();\n bookmarkPane.style.display = 'none';\n }\n document.getElementById(_this.pdfViewer.element.id + '_thumbnail_view').style.display = 'flex';\n if (proxy.sideBarContentContainer) {\n if (proxy.sideBarContentContainer.style.display !== 'none') {\n if (proxy.isBookmarkOpen) {\n proxy.isThumbnailOpen = true;\n proxy.setThumbnailSelectionIconTheme();\n _this.updateViewerContainerOnExpand();\n }\n else {\n proxy.isThumbnailOpen = false;\n proxy.removeThumbnailSelectionIconTheme();\n _this.updateViewerContainerOnClose();\n }\n }\n else {\n _this.sideBarContent.focus();\n proxy.isThumbnailOpen = true;\n proxy.setThumbnailSelectionIconTheme();\n _this.updateViewerContainerOnExpand();\n }\n }\n proxy.isBookmarkOpen = false;\n if (_this.pdfViewer.annotationModule && _this.pdfViewer.annotationModule.inkAnnotationModule) {\n // eslint-disable-next-line\n var currentPageNumber = parseInt(_this.pdfViewer.annotationModule.inkAnnotationModule.currentPageNumber);\n _this.pdfViewer.annotationModule.inkAnnotationModule.drawInkAnnotation(currentPageNumber);\n }\n };\n /**\n * @private\n * @returns {void}\n */\n this.openThumbnailPane = function () {\n var proxy = null;\n proxy = _this;\n var sideBarContent = document.getElementById(_this.pdfViewer.element.id + '_sideBarContent');\n var sideBarContentContainer = document.getElementById(_this.pdfViewer.element.id + '_sideBarContentContainer');\n var viewerContainer = document.getElementById(_this.pdfViewer.element.id + '_viewerContainer');\n var pageContainer = document.getElementById(_this.pdfViewer.element.id + '_pageViewContainer');\n document.getElementById(_this.pdfViewer.element.id + '_thumbnail_view').style.display = 'block';\n document.getElementById(_this.pdfViewer.element.id + '_sideBarResizer').style.display = 'none';\n document.getElementById(_this.pdfViewer.element.id + '_sideBarTitleContainer').style.display = 'none';\n document.getElementById(_this.pdfViewer.element.id + '_sideBarContentSplitter').style.display = 'none';\n sideBarContent.classList.add('e-thumbnail');\n sideBarContentContainer.classList.add('e-thumbnail');\n if (sideBarContentContainer) {\n if (proxy.isThumbnail) {\n sideBarContentContainer.style.display = 'none';\n viewerContainer.style.width = proxy.pdfViewer.element.clientWidth + 'px';\n pageContainer.style.width = viewerContainer.clientWidth + 'px';\n viewerContainer.style.left = sideBarContentContainer.clientWidth + 'px';\n proxy.pdfViewerBase.updateZoomValue();\n proxy.isThumbnail = false;\n }\n else {\n sideBarContent.focus();\n sideBarContentContainer.style.display = 'block';\n // eslint-disable-next-line max-len\n viewerContainer.style.width = (proxy.pdfViewer.element.clientWidth - sideBarContentContainer.clientWidth) + 'px';\n pageContainer.style.width = viewerContainer.clientWidth + 'px';\n viewerContainer.style.left = (sideBarContentContainer.clientWidth) + 'px';\n proxy.pdfViewerBase.updateZoomValue();\n proxy.pdfViewer.thumbnailViewModule.gotoThumbnailImage(proxy.pdfViewerBase.currentPageNumber - 1);\n proxy.isThumbnail = true;\n }\n }\n if (_this.pdfViewer.annotationModule && _this.pdfViewer.annotationModule.inkAnnotationModule) {\n // eslint-disable-next-line\n var currentPageNumber = parseInt(_this.pdfViewer.annotationModule.inkAnnotationModule.currentPageNumber);\n _this.pdfViewer.annotationModule.inkAnnotationModule.drawInkAnnotation(currentPageNumber);\n }\n };\n /**\n * @param {MouseEvent} event - The event.\n * @returns {void}\n */\n this.bookmarkButtonOnClick = function (event) {\n _this.openBookmarkcontentInitially();\n };\n /**\n * @param {MouseEvent} event - The event.\n * @returns {void}\n */\n this.commentPanelMouseDown = function (event) {\n var proxy = null;\n proxy = _this;\n proxy.offset = [\n proxy.commentPanelResizer.offsetLeft - event.clientX,\n proxy.commentPanelResizer.offsetTop - event.clientY,\n proxy.getViewerContainerRight()\n ];\n _this.isCommentPanelShow = true;\n _this.previousX = event.clientX;\n proxy.pdfViewerBase.viewerContainer.style.cursor = 'e-resize';\n proxy.commentPanelResizer.style.cursor = 'e-resize';\n };\n /**\n * @param {MouseEvent} event - The event.\n * @returns {void}\n */\n this.updateCommentPanelContainer = function (event) {\n var proxy = null;\n proxy = _this;\n // prevent the commentPanel from becoming too narrow, or from occupying more\n // than half of the available viewer width.\n if (_this.pdfViewer.enableRtl) {\n var width = event.clientX + proxy.offset[0];\n var maxWidth = Math.floor(_this.outerContainerWidth / 2);\n if (width > maxWidth) {\n width = maxWidth;\n }\n if (width < _this.commentPanelWidthMin) {\n width = _this.commentPanelWidthMin;\n }\n proxy.commentPanelResizer.style.left = width + 'px';\n proxy.commentPanelContainer.style.width = width + 'px';\n // eslint-disable-next-line max-len\n proxy.pdfViewerBase.viewerContainer.style.left = proxy.getViewerContainerRight() + 'px';\n proxy.pdfViewerBase.viewerContainer.style.right = proxy.getViewerContainerLeft() + 'px';\n }\n else {\n var currentWidth = _this.previousX - event.clientX;\n var width = currentWidth + proxy.offset[2];\n var maxWidth = Math.floor(_this.outerContainerWidth / 2);\n if (width > maxWidth) {\n width = maxWidth;\n }\n if (width < _this.commentPanelWidthMin) {\n width = _this.commentPanelWidthMin;\n }\n proxy.commentPanelResizer.style.right = width + 'px';\n proxy.commentPanelContainer.style.width = width + 'px';\n // eslint-disable-next-line max-len\n proxy.pdfViewerBase.viewerContainer.style.right = proxy.getViewerContainerRight() + 'px';\n proxy.pdfViewerBase.viewerContainer.style.left = proxy.getViewerContainerLeft() + 'px';\n }\n _this.pdfViewer.annotation.stickyNotesAnnotationModule.updateCommentPanelTextTop();\n // eslint-disable-next-line max-len\n var viewerWidth = (proxy.pdfViewer.element.clientWidth - proxy.getViewerContainerLeft() - proxy.getViewerContainerRight());\n proxy.pdfViewerBase.viewerContainer.style.width = viewerWidth + 'px';\n proxy.pdfViewerBase.pageContainer.style.width = proxy.pdfViewerBase.viewerContainer.clientWidth + 'px';\n proxy.pdfViewerBase.updateZoomValue();\n };\n /**\n * @param {MouseEvent} event - The event.\n * @returns {void}\n */\n this.commentPanelMouseLeave = function (event) {\n var proxy = null;\n proxy = _this;\n if (proxy.commentPanelContainer) {\n proxy.pdfViewerBase.viewerContainer.style.cursor = 'default';\n proxy.commentPanelContainer.style.cursor = 'default';\n }\n };\n this.pdfViewer = viewer;\n this.pdfViewerBase = base;\n }\n /**\n * @private\n * @returns {void}\n */\n NavigationPane.prototype.initializeNavigationPane = function () {\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.createNavigationPane();\n }\n else {\n // eslint-disable-next-line max-len\n this.commentPanelContainer = createElement('div', { id: this.pdfViewer.element.id + '_commantPanel', className: 'e-pv-mobile-comments-container' });\n this.pdfViewerBase.mainContainer.appendChild(this.commentPanelContainer);\n if (this.pdfViewer.enableRtl) {\n this.commentPanelContainer.style.left = 0 + 'px';\n }\n else {\n this.commentPanelContainer.style.right = 0 + 'px';\n }\n this.commentPanelContainer.style.bottom = 0 + 'px';\n this.createCommentPanelTitleContainer();\n this.commentPanelContainer.style.display = 'none';\n // eslint-disable-next-line max-len\n this.commentsContentContainer = createElement('div', { id: this.pdfViewer.element.id + '_commentscontentcontainer', className: 'e-pv-comments-content-container' });\n this.commentPanelContainer.appendChild(this.commentsContentContainer);\n this.createFileElement(this.commentPanelContainer);\n this.createXFdfFileElement(this.commentPanelContainer);\n }\n };\n NavigationPane.prototype.createNavigationPane = function () {\n var isblazor = isBlazor();\n if (!isblazor) {\n // eslint-disable-next-line max-len\n this.sideBarToolbar = createElement('div', { id: this.pdfViewer.element.id + '_sideBarToolbar', className: 'e-pv-sidebar-toolbar', attrs: { 'role': 'toolbar', 'aria-orientation': 'vertical', 'tabindex': '-1', 'aria-label': 'Sidebar Toolbar' } });\n // eslint-disable-next-line max-len\n this.sideBarToolbarSplitter = createElement('div', { id: this.pdfViewer.element.id + '_sideBarToolbarSplitter', className: 'e-pv-sidebar-toolbar-splitter' });\n // eslint-disable-next-line max-len\n this.sideBarContentContainer = createElement('div', { id: this.pdfViewer.element.id + '_sideBarContentContainer', className: 'e-pv-sidebar-content-container' });\n // eslint-disable-next-line max-len\n this.sideBarContentSplitter = createElement('div', { id: this.pdfViewer.element.id + '_sideBarContentSplitter', className: 'e-pv-sidebar-content-splitter' });\n // eslint-disable-next-line max-len\n this.sideBarContent = createElement('div', { id: this.pdfViewer.element.id + '_sideBarContent', className: 'e-pv-sidebar-content', attrs: { 'tabindex': '0' } });\n // eslint-disable-next-line max-len\n this.sideBarTitleContainer = createElement('div', { id: this.pdfViewer.element.id + '_sideBarTitleContainer', className: 'e-pv-sidebar-title-container' });\n // eslint-disable-next-line max-len\n this.sideBarTitle = createElement('div', { id: this.pdfViewer.element.id + '_sideBarTitle', className: 'e-pv-sidebar-title', attrs: { 'tabindex': '-1' } });\n // eslint-disable-next-line max-len\n this.sideBarResizer = createElement('div', { id: this.pdfViewer.element.id + '_sideBarResizer', className: 'e-pv-sidebar-resizer' });\n }\n else {\n this.sideBarToolbar = this.pdfViewer.element.querySelector('.e-pv-sidebar-toolbar');\n this.sideBarToolbarSplitter = this.pdfViewer.element.querySelector('.e-pv-sidebar-toolbar-splitter');\n this.sideBarContentContainer = this.pdfViewer.element.querySelector('.e-pv-sidebar-content-container');\n this.sideBarContentSplitter = this.pdfViewer.element.querySelector('.e-pv-sidebar-content-splitter');\n this.sideBarContent = this.pdfViewer.element.querySelector('.e-pv-sidebar-content');\n this.sideBarTitleContainer = this.pdfViewer.element.querySelector('.e-pv-sidebar-title-container');\n this.sideBarTitle = this.pdfViewer.element.querySelector('.e-pv-sidebar-title');\n this.sideBarResizer = this.pdfViewer.element.querySelector('.e-pv-sidebar-resizer');\n }\n this.pdfViewerBase.mainContainer.appendChild(this.sideBarToolbar);\n if (this.pdfViewer.enableRtl) {\n this.sideBarToolbar.style.cssFloat = 'right';\n this.sideBarToolbar.style.right = 1 + 'px';\n this.sideBarToolbar.style.position = 'relative';\n }\n this.pdfViewerBase.mainContainer.appendChild(this.sideBarToolbarSplitter);\n if (this.pdfViewer.enableRtl) {\n this.sideBarToolbarSplitter.classList.add('e-right');\n }\n else {\n this.sideBarToolbarSplitter.classList.add('e-left');\n }\n if (this.pdfViewer.enableRtl) {\n this.sideBarContentContainer.classList.add('e-right');\n }\n else {\n this.sideBarContentContainer.classList.add('e-left');\n }\n this.pdfViewerBase.mainContainer.appendChild(this.sideBarContentContainer);\n if (this.pdfViewer.enableRtl) {\n this.sideBarContentSplitter.style.right = 0 + 'px';\n }\n this.sideBarContentContainer.appendChild(this.sideBarContentSplitter);\n if (this.pdfViewer.enableRtl) {\n this.sideBarContent.style.right = 0 + 'px';\n this.sideBarContent.style.direction = 'rtl';\n }\n this.sideBarContentContainer.appendChild(this.sideBarContent);\n if (this.pdfViewer.enableRtl) {\n this.sideBarTitleContainer.style.right = 0 + 'px';\n }\n if (this.pdfViewer.enableRtl) {\n this.sideBarTitle.classList.add('e-right');\n }\n else {\n this.sideBarTitle.classList.add('e-left');\n }\n this.sideBarTitleContainer.appendChild(this.sideBarTitle);\n this.sideBarContentContainer.appendChild(this.sideBarTitleContainer);\n this.sideBarResizer.addEventListener('mousedown', this.resizePanelMouseDown);\n this.pdfViewerBase.mainContainer.addEventListener('mousemove', this.resizePanelMouseMove);\n this.pdfViewerBase.mainContainer.addEventListener('mouseup', this.resizeViewerMouseLeave);\n if (this.pdfViewer.enableRtl) {\n this.sideBarResizer.classList.add('e-right');\n }\n else {\n this.sideBarResizer.classList.add('e-left');\n }\n this.sideBarContentContainer.appendChild(this.sideBarResizer);\n this.createCommentPanel();\n var controlLeft = this.getViewerContainerLeft();\n var controlRight = this.getViewerContainerRight();\n if (!this.pdfViewer.enableRtl) {\n this.pdfViewerBase.viewerContainer.style.left = controlLeft + 'px';\n this.pdfViewerBase.viewerContainer.style.right = controlRight + 'px';\n }\n // eslint-disable-next-line max-len\n this.pdfViewerBase.viewerContainer.style.width = (this.pdfViewer.element.clientWidth - controlLeft - this.commentPanelContainer.clientWidth) + 'px';\n this.sideBarContentContainer.style.display = 'none';\n this.createSidebarToolBar();\n this.createSidebarTitleCloseButton();\n this.createResizeIcon();\n this.sideBarToolbar.addEventListener('mouseup', this.sideToolbarOnMouseup.bind(this));\n this.sideBarContentContainer.addEventListener('mouseup', this.sideBarTitleOnMouseup.bind(this));\n };\n /**\n * @private\n * @returns {void}\n */\n NavigationPane.prototype.adjustPane = function () {\n if (isBlazor()) {\n var splitterElement = this.pdfViewer.element.querySelector('.e-pv-sidebar-toolbar-splitter');\n var sideToolbarElement = this.pdfViewer.element.querySelector('.e-pv-sidebar-toolbar');\n var sideToolbarContent = this.pdfViewer.element.querySelector('.e-pv-sidebar-content-container');\n var toolbarContainer = this.pdfViewer.element.querySelector('.e-pv-toolbar');\n var toolbarHeight = toolbarContainer.getBoundingClientRect().height;\n if (toolbarHeight === 0) {\n // eslint-disable-next-line\n toolbarHeight = parseFloat(window.getComputedStyle(toolbarContainer)['height']) + 1;\n }\n if (!this.pdfViewer.enableToolbar) {\n toolbarHeight = 0;\n }\n sideToolbarElement.style.top = toolbarHeight + 'px';\n sideToolbarContent.style.top = toolbarHeight + 'px';\n splitterElement.style.top = toolbarHeight + 'px';\n sideToolbarElement.style.height = this.getSideToolbarHeight(toolbarHeight);\n sideToolbarContent.style.height = this.getSideToolbarHeight(toolbarHeight);\n splitterElement.style.height = this.getSideToolbarHeight(toolbarHeight);\n this.pdfViewerBase.viewerContainer.style.height = this.getSideToolbarHeight(toolbarHeight);\n }\n else {\n var splitterElement = this.pdfViewerBase.getElement('_sideBarToolbarSplitter');\n var toolbarContainer = this.pdfViewerBase.getElement('_toolbarContainer');\n var toolbarHeight = toolbarContainer.getBoundingClientRect().height;\n if (toolbarHeight === 0) {\n // eslint-disable-next-line\n toolbarHeight = parseFloat(window.getComputedStyle(toolbarContainer)['height']) + 1;\n }\n // eslint-disable-next-line max-len\n this.sideBarToolbar.style.top = toolbarHeight + 'px';\n this.sideBarContentContainer.style.top = toolbarHeight + 'px';\n splitterElement.style.top = toolbarHeight + 'px';\n }\n };\n NavigationPane.prototype.getSideToolbarHeight = function (toolbarHeight) {\n var height = this.pdfViewer.element.getBoundingClientRect().height;\n return (height !== 0) ? height - toolbarHeight + 'px' : '';\n };\n NavigationPane.prototype.createCommentPanel = function () {\n // eslint-disable-next-line max-len\n this.commentPanelContainer = createElement('div', { id: this.pdfViewer.element.id + '_commantPanel', className: 'e-pv-comment-panel' });\n this.pdfViewerBase.mainContainer.appendChild(this.commentPanelContainer);\n if (this.pdfViewer.enableRtl) {\n this.commentPanelContainer.style.left = 0 + 'px';\n }\n else {\n this.commentPanelContainer.style.right = 0 + 'px';\n }\n this.commentPanelContainer.style.bottom = 0 + 'px';\n this.createCommentPanelTitleContainer();\n this.commentPanelContainer.style.display = 'none';\n // eslint-disable-next-line max-len\n this.commentsContentContainer = createElement('div', { id: this.pdfViewer.element.id + '_commentscontentcontainer', className: 'e-pv-comments-content-container' });\n this.commentPanelContainer.appendChild(this.commentsContentContainer);\n // eslint-disable-next-line max-len\n this.commentPanelResizer = createElement('div', { id: this.pdfViewer.element.id + '_commentPanelResizer', className: 'e-pv-comment-panel-resizer' });\n if (this.pdfViewer.enableRtl) {\n this.commentPanelResizer.classList.add('e-left');\n }\n else {\n this.commentPanelResizer.classList.add('e-right');\n }\n this.commentPanelResizer.style.display = 'none';\n this.commentPanelResizer.addEventListener('mousedown', this.commentPanelMouseDown);\n this.pdfViewerBase.mainContainer.appendChild(this.commentPanelResizer);\n this.createCommentPanelResizeIcon();\n this.createFileElement(this.commentPanelContainer);\n this.createXFdfFileElement(this.commentPanelContainer);\n };\n NavigationPane.prototype.createCommentPanelTitleContainer = function () {\n // eslint-disable-next-line max-len\n var commentPanelTitleContainer = createElement('div', { id: this.pdfViewer.element.id + '_commentPanelTitleContainer', className: 'e-pv-comment-panel-title-container' });\n // eslint-disable-next-line max-len\n var commentpanelTilte = createElement('div', { id: this.pdfViewer.element.id + '_commentPanelTitle', className: 'e-pv-comment-panel-title', attrs: { 'tabindex': '-1' } });\n if (isBlazor()) {\n var promise = this.pdfViewer._dotnetInstance.invokeMethodAsync('GetLocaleText', 'PdfViewer_Comments');\n promise.then(function (value) {\n commentpanelTilte.innerText = value;\n });\n }\n else {\n commentpanelTilte.innerText = this.pdfViewer.localeObj.getConstant('Comments');\n }\n var annotationButton = createElement('button', { id: this.pdfViewer.element.id + '_annotations_btn' });\n annotationButton.setAttribute('aria-label', 'annotation button');\n annotationButton.setAttribute('type', 'button');\n annotationButton.className = 'e-btn e-pv-tbar-btn e-pv-comment-panel-title-close-div e-btn';\n // eslint-disable-next-line max-len\n var moreOptionButtonSpan = createElement('span', { id: this.pdfViewer.element.id + '_annotation_more_icon', className: 'e-pv-more-icon e-pv-icon' });\n annotationButton.appendChild(moreOptionButtonSpan);\n if (Browser.isDevice && !isBlazor()) {\n var commentCloseIconDiv = createElement('button');\n commentCloseIconDiv.setAttribute('aria-label', 'annotation button');\n commentCloseIconDiv.setAttribute('type', 'button');\n commentCloseIconDiv.style.borderColor = 'transparent';\n commentCloseIconDiv.style.paddingTop = '11px';\n commentCloseIconDiv.style.paddingBottom = '11px';\n commentCloseIconDiv.style.backgroundColor = '#fafafa';\n commentCloseIconDiv.addEventListener('click', this.closeCommentPanelContainer.bind(this));\n commentpanelTilte.style.left = '37px';\n var commentCloseIcon = createElement('span', { className: 'e-pv-annotation-tools-close-icon e-pv-icon' });\n commentCloseIconDiv.appendChild(commentCloseIcon);\n commentPanelTitleContainer.appendChild(commentCloseIconDiv);\n }\n commentPanelTitleContainer.appendChild(commentpanelTilte);\n commentPanelTitleContainer.appendChild(annotationButton);\n this.commentPanelContainer.appendChild(commentPanelTitleContainer);\n this.createAnnotationContextMenu();\n annotationButton.addEventListener('click', this.openAnnotationContextMenu.bind(this));\n };\n NavigationPane.prototype.createCommentPanelResizeIcon = function () {\n // eslint-disable-next-line max-len\n this.commentPanelResizeIcon = createElement('div', { id: this.pdfViewer.element.id + '_commentPanel_resize', className: 'e-pv-resize-icon e-pv-icon' });\n this.setCommentPanelResizeIconTop();\n this.commentPanelResizeIcon.style.position = 'absolute';\n this.commentPanelResizer.appendChild(this.commentPanelResizeIcon);\n };\n // eslint-disable-next-line\n NavigationPane.prototype.openAnnotationContextMenu = function (event) {\n /* eslint-disable */\n this.annotationMenuObj.open(event.clientY, event.clientX, event.currentTarget);\n /* eslint-enable */\n };\n /**\n * @private\n * @returns {void}\n */\n NavigationPane.prototype.createAnnotationContextMenu = function () {\n // eslint-disable-next-line max-len\n this.annotationContextMenu = [\n { text: this.pdfViewer.localeObj.getConstant('Export Annotations') },\n { text: this.pdfViewer.localeObj.getConstant('Import Annotations') },\n { text: this.pdfViewer.localeObj.getConstant('Export XFDF') },\n { text: this.pdfViewer.localeObj.getConstant('Import XFDF') }\n ];\n var annotationMenuElement = createElement('ul', { id: this.pdfViewer.element.id + '_annotation_context_menu' });\n this.pdfViewer.element.appendChild(annotationMenuElement);\n this.annotationMenuObj = new Context({\n target: '#' + this.pdfViewer.element.id + '_annotations_btn', items: this.annotationContextMenu,\n select: this.annotationMenuItemSelect.bind(this)\n });\n if (this.pdfViewer.enableRtl) {\n this.annotationMenuObj.enableRtl = true;\n }\n this.annotationMenuObj.appendTo(annotationMenuElement);\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n this.annotationMenuObj.animationSettings.effect = 'ZoomIn';\n }\n else {\n this.annotationMenuObj.animationSettings.effect = 'SlideDown';\n }\n };\n // eslint-disable-next-line\n NavigationPane.prototype.annotationMenuItemSelect = function (args) {\n if (this.pdfViewer.annotationModule && this.pdfViewer.annotationModule.inkAnnotationModule) {\n // eslint-disable-next-line\n var currentPageNumber = parseInt(this.pdfViewer.annotationModule.inkAnnotationModule.currentPageNumber);\n this.pdfViewer.annotationModule.inkAnnotationModule.drawInkAnnotation(currentPageNumber);\n }\n if (args.item) {\n switch (args.item.text) {\n case this.pdfViewer.localeObj.getConstant('Export Annotations'):\n this.pdfViewerBase.exportAnnotations(AnnotationDataFormat.Json);\n break;\n case this.pdfViewer.localeObj.getConstant('Import Annotations'):\n this.importAnnotationIconClick(args);\n break;\n case this.pdfViewer.localeObj.getConstant('Export XFDF'):\n this.pdfViewerBase.exportAnnotations(AnnotationDataFormat.Xfdf);\n break;\n case this.pdfViewer.localeObj.getConstant('Import XFDF'):\n this.importXFdfAnnotationIconClick(args);\n break;\n default:\n break;\n }\n }\n };\n NavigationPane.prototype.createFileElement = function (toolbarElement) {\n // eslint-disable-next-line max-len\n this.annotationInputElement = createElement('input', { id: this.pdfViewer.element.id + '_annotationUploadElement', styles: 'position:fixed; left:-100em', attrs: { 'type': 'file', 'aria-label': 'upload elements' } });\n this.annotationInputElement.setAttribute('accept', '.json');\n toolbarElement.appendChild(this.annotationInputElement);\n this.annotationInputElement.addEventListener('change', this.loadImportAnnotation);\n };\n NavigationPane.prototype.createXFdfFileElement = function (toolbarElement) {\n // eslint-disable-next-line max-len\n this.annotationXFdfInputElement = createElement('input', { id: this.pdfViewer.element.id + '_annotationXFdfUploadElement', styles: 'position:fixed; left:-100em', attrs: { 'type': 'file', 'aria-label': 'upload elements' } });\n this.annotationXFdfInputElement.setAttribute('accept', '.xfdf');\n toolbarElement.appendChild(this.annotationXFdfInputElement);\n this.annotationXFdfInputElement.addEventListener('change', this.loadImportAnnotation);\n };\n NavigationPane.prototype.importAnnotationIconClick = function (args) {\n this.annotationInputElement.click();\n };\n NavigationPane.prototype.importXFdfAnnotationIconClick = function (args) {\n this.annotationXFdfInputElement.click();\n };\n /**\n * @private\n * @returns {void}\n */\n NavigationPane.prototype.closeCommentPanelContainer = function () {\n var proxy = null;\n proxy = this;\n var viewerContainer = document.getElementById(this.pdfViewer.element.id + '_viewerContainer');\n var pageContainer = document.getElementById(this.pdfViewer.element.id + '_pageViewContainer');\n var commentPanel = document.getElementById(this.pdfViewer.element.id + '_commantPanel');\n if (commentPanel) {\n commentPanel.style.display = 'none';\n if (proxy.commentPanelResizer) {\n proxy.commentPanelResizer.style.display = 'none';\n }\n if (viewerContainer) {\n if (this.pdfViewer.enableRtl) {\n viewerContainer.style.left = proxy.getViewerContainerRight() + 'px';\n }\n else {\n viewerContainer.style.right = proxy.getViewerContainerRight() + 'px';\n }\n // eslint-disable-next-line max-len\n viewerContainer.style.width = (proxy.pdfViewer.element.clientWidth - proxy.getViewerContainerLeft() - proxy.getViewerContainerRight()) + 'px';\n pageContainer.style.width = (proxy.pdfViewerBase.viewerContainer.offsetWidth - proxy.getViewerContainerScrollbarWidth()) + 'px';\n }\n if (proxy.pdfViewerBase) {\n proxy.pdfViewerBase.updateZoomValue();\n }\n if (this.pdfViewer.annotation && this.pdfViewer.annotation.textMarkupAnnotationModule) {\n this.pdfViewer.annotation.textMarkupAnnotationModule.showHideDropletDiv(true);\n }\n if (Browser.isDevice && !isBlazor()) {\n if (this.pdfViewer.toolbarModule.annotationToolbarModule.toolbar) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.toolbar.element.style.display = 'block';\n if (this.pdfViewer.toolbarModule.annotationToolbarModule.propertyToolbar) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.propertyToolbar.element.style.display = 'block';\n }\n }\n }\n }\n };\n /**\n * @private\n * @param {string} option - The option.\n * @returns {void}\n */\n NavigationPane.prototype.createNavigationPaneMobile = function (option) {\n var _this = this;\n this.isNavigationToolbarVisible = true;\n this.toolbarElement = createElement('div', { id: this.pdfViewer.element.id + '_navigationToolbar', className: 'e-pv-nav-toolbar' });\n this.pdfViewerBase.viewerMainContainer.insertBefore(this.toolbarElement, this.pdfViewerBase.viewerContainer);\n var items;\n if (option === 'search') {\n var searchTemplate = '
      ';\n items = [\n // eslint-disable-next-line max-len\n { prefixIcon: 'e-pv-backward-icon e-pv-icon', tooltipText: this.pdfViewer.localeObj.getConstant('Go Back'), id: this.pdfViewer.element.id + '_backward', click: this.goBackToToolbar.bind(this) },\n { template: searchTemplate },\n {\n prefixIcon: 'e-pv-search-icon e-pv-icon', id: this.pdfViewer.element.id + '_search_box-icon',\n click: function () {\n var iconElement = _this.pdfViewerBase.getElement('_search_box-icon').firstElementChild;\n if (iconElement.classList.contains('e-pv-search-close')) {\n _this.enableSearchItems(false);\n }\n _this.pdfViewer.textSearchModule.searchButtonClick(iconElement, _this.searchInput);\n }\n },\n {\n prefixIcon: 'e-pv-prev-search-icon e-pv-icon', id: this.pdfViewer.element.id + '_prev_occurrence',\n click: function (args) {\n _this.pdfViewer.textSearchModule.searchPrevious();\n }\n },\n {\n prefixIcon: 'e-pv-next-search-icon e-pv-icon', id: this.pdfViewer.element.id + '_next_occurrence',\n click: function (args) {\n _this.pdfViewer.textSearchModule.searchNext();\n }\n }\n ];\n }\n else {\n items = [\n // eslint-disable-next-line max-len\n { prefixIcon: 'e-pv-backward-icon e-pv-icon', id: this.pdfViewer.element.id + '_backward', click: this.goBackToToolbar.bind(this) },\n { text: this.pdfViewer.localeObj.getConstant('Bookmarks') }\n ];\n }\n this.toolbar = new Tool({ items: items, width: '', height: '', overflowMode: 'Popup' });\n if (this.pdfViewer.enableRtl) {\n this.toolbar.enableRtl = true;\n }\n this.toolbar.isStringTemplate = true;\n this.toolbar.appendTo(this.toolbarElement);\n if (option === 'search') {\n this.initiateSearchBox();\n }\n else {\n this.initiateBookmarks();\n }\n };\n NavigationPane.prototype.initiateSearchBox = function () {\n var _this = this;\n this.searchInput = this.pdfViewerBase.getElement('_search_input');\n this.pdfViewer.textSearchModule.searchBtn = this.pdfViewerBase.getElement('_search_box-icon').firstElementChild;\n this.searchInput.addEventListener('keyup', function (event) {\n _this.enableSearchItems(true);\n var searchString = _this.searchInput.value;\n if (event.which === 13) {\n _this.initiateTextSearch();\n }\n else {\n _this.pdfViewer.textSearchModule.resetVariables();\n }\n });\n this.pdfViewer.textSearchModule.searchInput = this.searchInput;\n this.setSearchInputWidth();\n this.enableSearchItems(false);\n this.searchInput.focus();\n };\n NavigationPane.prototype.enableSearchItems = function (isEnable) {\n if (!isBlazor()) {\n this.toolbar.enableItems(this.pdfViewerBase.getElement('_prev_occurrence').parentElement, isEnable);\n this.toolbar.enableItems(this.pdfViewerBase.getElement('_next_occurrence').parentElement, isEnable);\n }\n else {\n this.pdfViewer._dotnetInstance.invokeMethodAsync('EnableSearchItems', isEnable);\n }\n };\n NavigationPane.prototype.initiateBookmarks = function () {\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n this.pdfViewerBase.mobileScrollerContainer.style.display = 'none';\n // eslint-disable-next-line\n var mobileTool = document.querySelectorAll('.e-pv-mobile-annotation-toolbar');\n for (var i = 0; i < mobileTool.length; i++) {\n mobileTool[parseInt(i.toString(), 10)].style.display = 'none';\n }\n }\n // eslint-disable-next-line max-len\n var bookmarkContainer = createElement('div', { id: this.pdfViewer.element.id + '_bookmarks_container', className: 'e-pv-bookmark-container' });\n bookmarkContainer.style.width = '100%';\n bookmarkContainer.style.height = this.pdfViewerBase.viewerContainer.style.height;\n this.pdfViewerBase.getElement('_viewerMainContainer').appendChild(bookmarkContainer);\n this.pdfViewerBase.viewerContainer.style.display = 'none';\n this.isBookmarkListOpen = true;\n this.pdfViewer.bookmarkViewModule.renderBookmarkContentMobile();\n };\n NavigationPane.prototype.initiateTextSearch = function () {\n var inputString = this.searchInput.value;\n this.pdfViewer.textSearchModule.initiateSearch(inputString);\n };\n /**\n * @private\n * @returns {void}\n */\n NavigationPane.prototype.goBackToToolbar = function () {\n this.isNavigationToolbarVisible = false;\n if (isBlazor() && (!Browser.isDevice || this.pdfViewer.enableDesktopMode) || !isBlazor()) {\n this.pdfViewer.textSearchModule.cancelTextSearch();\n }\n this.searchInput = null;\n if (this.pdfViewer.bookmarkViewModule.childNavigateCount !== 0) {\n this.pdfViewer.bookmarkViewModule.bookmarkList.back();\n this.pdfViewer.bookmarkViewModule.childNavigateCount--;\n }\n else {\n if (this.toolbar != null) {\n this.toolbar.destroy();\n this.toolbar = null;\n }\n var bookmarkContainer = this.pdfViewerBase.getElement('_bookmarks_container');\n if (bookmarkContainer) {\n bookmarkContainer.parentElement.removeChild(bookmarkContainer);\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n this.pdfViewerBase.mobileScrollerContainer.style.display = '';\n }\n }\n if (this.toolbarElement && this.toolbarElement.parentElement != null) {\n this.toolbarElement.parentElement.removeChild(this.toolbarElement);\n }\n this.pdfViewerBase.viewerContainer.style.display = 'block';\n this.isBookmarkListOpen = false;\n if (!isBlazor()) {\n if (!this.pdfViewer.toolbar.annotationToolbarModule.isMobileAnnotEnabled) {\n this.pdfViewer.toolbarModule.showToolbar(true);\n }\n }\n else {\n this.pdfViewerBase.onWindowResize();\n }\n }\n };\n NavigationPane.prototype.setSearchInputWidth = function () {\n var searchInputParent = this.searchInput.parentElement;\n var padding = window.getComputedStyle(searchInputParent.parentElement, null).getPropertyValue('padding-left');\n if (isBlazor() && (Browser.isDevice && !this.pdfViewer.enableDesktopMode)) {\n this.toolbarElement = this.pdfViewerBase.getElement('_navigationToolbar');\n }\n // eslint-disable-next-line max-len\n var width = this.toolbarElement.clientWidth - this.getParentElementSearchBox('_backward').clientWidth\n - this.getParentElementSearchBox('_search_box-icon').clientWidth - this.getParentElementSearchBox('_prev_occurrence').clientWidth\n - this.getParentElementSearchBox('_next_occurrence').clientWidth - 6;\n if (padding !== '') {\n width = width - (parseFloat(padding) * 2);\n }\n searchInputParent.style.width = width + 'px';\n };\n NavigationPane.prototype.getParentElementSearchBox = function (idString) {\n return this.pdfViewerBase.getElement(idString).parentElement;\n };\n /**\n * @private\n * @param {string} text - The text.\n * @returns {void}\n */\n NavigationPane.prototype.createTooltipMobile = function (text) {\n if (!this.isTooltipCreated) {\n //boolean to prevent again toast creation.\n this.createMobileTooltip(text);\n }\n else {\n if (this.toastObject) {\n this.toastObject.title = text;\n var tooltipElement = this.pdfViewerBase.getElement('_container_tooltip');\n var tooltipChild = tooltipElement.firstElementChild;\n if (tooltipChild) {\n tooltipChild.style.width = 'auto';\n tooltipChild.firstElementChild.firstElementChild.textContent = text;\n }\n else {\n this.isTooltipCreated = false;\n var tooltipElement_1 = this.pdfViewerBase.getElement('_container_tooltip');\n if (this.toastObject) {\n this.toastObject.destroy();\n }\n tooltipElement_1.parentElement.removeChild(tooltipElement_1);\n this.toastObject = null;\n this.createMobileTooltip(text);\n }\n }\n }\n };\n NavigationPane.prototype.createMobileTooltip = function (text) {\n // eslint-disable-next-line max-len\n var tooltipDiv = createElement('div', { className: 'e-pv-container-tooltip', id: this.pdfViewer.element.id + '_container_tooltip' });\n this.pdfViewer.element.appendChild(tooltipDiv);\n // eslint-disable-next-line max-len\n this.toastObject = new Toast({ title: text, target: this.pdfViewer.element, close: this.onTooltipClose.bind(this), position: { X: 0, Y: 0 }, animation: { hide: { duration: 200, effect: 'FadeOut' } } });\n this.toastObject.appendTo(tooltipDiv);\n var y = this.pdfViewer.element.clientHeight * 0.65;\n var x = (this.pdfViewer.element.clientWidth - tooltipDiv.clientWidth) / 2;\n this.isTooltipCreated = true;\n this.toastObject.show({ position: { X: x, Y: y } });\n var tooltipChild = tooltipDiv.firstElementChild;\n if (tooltipChild) {\n tooltipChild.style.width = 'auto';\n }\n };\n NavigationPane.prototype.onTooltipClose = function (args) {\n if (this.pdfViewer.textSearchModule) {\n this.isTooltipCreated = false;\n var tooltipElement = this.pdfViewerBase.getElement('_container_tooltip');\n this.pdfViewer.textSearchModule.isMessagePopupOpened = false;\n if (this.toastObject) {\n this.toastObject.destroy();\n }\n tooltipElement.parentElement.removeChild(tooltipElement);\n this.toastObject = null;\n }\n };\n /**\n * @private\n * @returns {void}\n */\n NavigationPane.prototype.toolbarResize = function () {\n if (this.searchInput) {\n this.searchInput.style.width = 'auto';\n this.setSearchInputWidth();\n }\n };\n NavigationPane.prototype.createSidebarToolBar = function () {\n if (!isBlazor()) {\n // eslint-disable-next-line max-len\n this.thumbnailButton = createElement('button', { id: this.pdfViewer.element.id + '_thumbnail-view', attrs: { 'disabled': 'disabled', 'aria-label': 'Page Thumbnails', 'tabindex': '-1' } });\n this.thumbnailButton.className = 'e-pv-tbar-btn e-pv-thumbnail-view-button e-btn';\n this.thumbnailButton.setAttribute('type', 'button');\n // eslint-disable-next-line max-len\n var thumbnailButtonSpan = createElement('span', { id: this.pdfViewer.element.id + '_thumbnail-view' + '_icon', className: 'e-pv-thumbnail-view-disable-icon e-pv-icon' });\n this.thumbnailButton.appendChild(thumbnailButtonSpan);\n // eslint-disable-next-line max-len\n var thumbnailTooltip = new Tooltip({ content: this.pdfViewer.localeObj.getConstant('Page Thumbnails'), opensOn: 'Hover', beforeOpen: this.onTooltipBeforeOpen.bind(this) });\n thumbnailTooltip.appendTo(this.thumbnailButton);\n // eslint-disable-next-line max-len\n this.bookmarkButton = createElement('button', { id: this.pdfViewer.element.id + '_bookmark', attrs: { 'disabled': 'disabled', 'aria-label': 'Bookmarks', 'tabindex': '-1' } });\n this.bookmarkButton.setAttribute('type', 'button');\n this.bookmarkButton.className = 'e-pv-tbar-btn e-pv-bookmark-button e-btn';\n // eslint-disable-next-line max-len\n var buttonSpan = createElement('span', { id: this.pdfViewer.element.id + '_bookmark' + '_icon', className: 'e-pv-bookmark-disable-icon e-pv-icon' });\n this.bookmarkButton.appendChild(buttonSpan);\n // eslint-disable-next-line max-len\n var bookMarkTooltip = new Tooltip({ content: this.pdfViewer.localeObj.getConstant('Bookmarks'), opensOn: 'Hover', beforeOpen: this.onTooltipBeforeOpen.bind(this) });\n bookMarkTooltip.appendTo(this.bookmarkButton);\n this.sideBarToolbar.appendChild(this.thumbnailButton);\n this.sideBarToolbar.appendChild(this.bookmarkButton);\n }\n else {\n this.thumbnailButton = this.pdfViewer.element.querySelector('.e-pv-thumbnail-view-button');\n this.bookmarkButton = this.pdfViewer.element.querySelector('.e-pv-bookmark-button');\n }\n this.thumbnailButton.addEventListener('click', this.sideToolbarOnClick);\n this.bookmarkButton.addEventListener('click', this.bookmarkButtonOnClick);\n };\n NavigationPane.prototype.onTooltipBeforeOpen = function (args) {\n if (!this.pdfViewer.toolbarSettings.showTooltip) {\n args.cancel = true;\n }\n };\n /**\n * @private\n * @returns {void}\n */\n NavigationPane.prototype.enableThumbnailButton = function () {\n if (this.thumbnailButton) {\n this.thumbnailButton.removeAttribute('disabled');\n this.thumbnailButton.children[0].classList.remove('e-pv-thumbnail-view-disable-icon');\n this.thumbnailButton.children[0].classList.add('e-pv-thumbnail-view-icon');\n }\n };\n /**\n * @private\n * @returns {void}\n */\n NavigationPane.prototype.enableBookmarkButton = function () {\n if (this.bookmarkButton) {\n this.bookmarkButton.removeAttribute('disabled');\n this.bookmarkButton.children[0].classList.remove('e-pv-bookmark-disable-icon');\n this.bookmarkButton.children[0].classList.add('e-pv-bookmark-icon');\n }\n };\n NavigationPane.prototype.createSidebarTitleCloseButton = function () {\n this.closeDiv = createElement('button', { id: this.pdfViewer.element.id + '_close_btn' });\n this.closeDiv.setAttribute('aria-label', 'close button');\n this.closeDiv.setAttribute('type', 'button');\n this.closeDiv.className = 'e-btn e-pv-tbar-btn e-pv-title-close-div e-btn';\n if (this.pdfViewer.enableRtl) {\n this.closeDiv.style.left = 8 + 'px';\n }\n else {\n this.closeDiv.style.left = this.closeButtonLeft + 'px';\n }\n // eslint-disable-next-line max-len\n var buttonSpan = createElement('span', { id: this.pdfViewer.element.id + '_close' + '_icon', className: 'e-pv-title-close-icon e-pv-icon' });\n this.closeDiv.appendChild(buttonSpan);\n this.sideBarTitleContainer.appendChild(this.closeDiv);\n this.closeDiv.addEventListener('click', this.sideToolbarOnClose);\n };\n NavigationPane.prototype.createResizeIcon = function () {\n // eslint-disable-next-line max-len\n this.resizeIcon = createElement('div', { id: this.pdfViewer.element.id + '_resize', className: 'e-pv-resize-icon e-pv-icon' });\n this.setResizeIconTop();\n this.resizeIcon.style.position = 'absolute';\n this.resizeIcon.addEventListener('click', this.sideToolbarOnClose);\n this.resizeIcon.addEventListener('mouseover', this.resizeIconMouseOver);\n this.sideBarResizer.appendChild(this.resizeIcon);\n };\n /**\n * @private\n * @returns {void}\n */\n NavigationPane.prototype.setResizeIconTop = function () {\n // eslint-disable-next-line max-len\n if (this.sideBarToolbar && this.sideBarToolbar.clientHeight && this.resizeIcon.style.top === '') {\n this.resizeIcon.style.top = (this.sideBarToolbar.clientHeight) / 2 + 'px';\n }\n };\n /**\n * @private\n * @returns {void}\n */\n NavigationPane.prototype.setCommentPanelResizeIconTop = function () {\n // eslint-disable-next-line max-len\n if (this.commentPanelContainer && this.commentPanelContainer.clientHeight && this.commentPanelResizeIcon && this.commentPanelResizeIcon.style.top === '') {\n this.commentPanelResizeIcon.style.top = (this.commentPanelContainer.clientHeight) / 2 + 'px';\n }\n };\n Object.defineProperty(NavigationPane.prototype, \"outerContainerWidth\", {\n /**\n * @private\n * @returns {number} - Returns the number.\n */\n get: function () {\n if (!this.mainContainerWidth) {\n this.mainContainerWidth = this.pdfViewerBase.mainContainer.clientWidth;\n }\n return this.mainContainerWidth;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @private\n * @returns {number} - Returns the number.\n */\n NavigationPane.prototype.getViewerContainerScrollbarWidth = function () {\n // eslint-disable-next-line max-len\n return (this.pdfViewerBase.viewerContainer.offsetWidth + this.pdfViewerBase.viewerContainer.offsetLeft) - (this.pdfViewerBase.viewerContainer.clientWidth + this.pdfViewerBase.viewerContainer.offsetLeft);\n };\n Object.defineProperty(NavigationPane.prototype, \"sideToolbarWidth\", {\n /**\n * @private\n * @returns {number} - Returns the number.\n */\n get: function () {\n if (this.sideBarToolbar) {\n return this.sideBarToolbar.clientWidth;\n }\n else {\n return 0;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(NavigationPane.prototype, \"sideBarContentContainerWidth\", {\n /**\n * @private\n * @returns {number} - Returns the number.\n */\n get: function () {\n if (this.sideBarContentContainer) {\n return this.sideBarContentContainer.clientWidth;\n }\n else {\n return 0;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(NavigationPane.prototype, \"commentPanelContainerWidth\", {\n /**\n * @private\n * @returns {number} - Returns the number.\n */\n get: function () {\n if (this.commentPanelContainer) {\n return this.commentPanelContainer.offsetWidth;\n }\n else {\n return 0;\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @private\n * @returns {void}\n */\n NavigationPane.prototype.updateViewerContainerOnClose = function () {\n var proxy = null;\n proxy = this;\n if (proxy.sideBarContentContainer) {\n proxy.sideBarContentContainer.style.display = 'none';\n if (this.pdfViewer.enableRtl) {\n proxy.pdfViewerBase.viewerContainer.style.right = (proxy.sideToolbarWidth) + 'px';\n }\n else {\n proxy.pdfViewerBase.viewerContainer.style.left = (proxy.sideToolbarWidth) + 'px';\n }\n // eslint-disable-next-line max-len\n proxy.pdfViewerBase.viewerContainer.style.width = (proxy.pdfViewer.element.clientWidth - proxy.sideToolbarWidth - proxy.getViewerContainerRight()) + 'px';\n // eslint-disable-next-line max-len\n proxy.pdfViewerBase.pageContainer.style.width = (proxy.pdfViewerBase.viewerContainer.offsetWidth - proxy.getViewerContainerScrollbarWidth()) + 'px';\n if (this.restrictUpdateZoomValue) {\n proxy.pdfViewerBase.updateZoomValue();\n }\n }\n };\n /**\n * @private\n * @returns {void}\n */\n NavigationPane.prototype.updateViewerContainerOnExpand = function () {\n var proxy = null;\n proxy = this;\n if (proxy.sideBarContentContainer) {\n proxy.sideBarContentContainer.style.display = 'block';\n if (this.pdfViewer.enableRtl) {\n // eslint-disable-next-line max-len\n proxy.pdfViewerBase.viewerContainer.style.right = proxy.getViewerContainerLeft() + 'px';\n }\n else {\n // eslint-disable-next-line max-len\n proxy.pdfViewerBase.viewerContainer.style.left = proxy.getViewerContainerLeft() + 'px';\n }\n // eslint-disable-next-line max-len\n proxy.pdfViewerBase.viewerContainer.style.width = (proxy.pdfViewer.element.clientWidth - this.getViewerContainerLeft() - this.getViewerContainerRight()) + 'px';\n proxy.pdfViewerBase.pageContainer.style.width = proxy.pdfViewerBase.viewerContainer.clientWidth + 'px';\n proxy.pdfViewerBase.updateZoomValue();\n if (proxy.pdfViewer.enableThumbnail) {\n proxy.pdfViewer.thumbnailViewModule.gotoThumbnailImage(proxy.pdfViewerBase.currentPageNumber - 1);\n }\n }\n };\n /**\n * @private\n * @returns {number} - Returns the number.\n */\n NavigationPane.prototype.getViewerContainerLeft = function () {\n if (this.sideToolbarWidth) {\n return (this.sideToolbarWidth + this.sideBarContentContainerWidth);\n }\n else {\n return 0;\n }\n };\n /**\n * @private\n * @returns {number} - Returns the number.\n */\n NavigationPane.prototype.getViewerContainerRight = function () {\n if (this.commentPanelResizer) {\n return (this.commentPanelContainerWidth + this.commentPanelResizer.clientWidth);\n }\n else {\n return 0;\n }\n };\n /**\n * @private\n * @returns {number} - Returns the number.\n */\n NavigationPane.prototype.getViewerMainContainerWidth = function () {\n return this.pdfViewer.element.clientWidth - this.sideToolbarWidth;\n };\n /**\n * @private\n * @returns {void}\n */\n NavigationPane.prototype.setThumbnailSelectionIconTheme = function () {\n if (this.thumbnailButton) {\n this.thumbnailButton.children[0].classList.remove('e-pv-thumbnail-view-icon');\n this.thumbnailButton.children[0].classList.add('e-pv-thumbnail-view-selection-icon');\n this.thumbnailButton.classList.add('e-pv-thumbnail-view-button-selection');\n }\n };\n NavigationPane.prototype.removeThumbnailSelectionIconTheme = function () {\n if (this.thumbnailButton && this.thumbnailButton.children[0]) {\n this.thumbnailButton.children[0].classList.add('e-pv-thumbnail-view-icon');\n this.thumbnailButton.children[0].classList.remove('e-pv-thumbnail-view-selection-icon');\n this.thumbnailButton.classList.remove('e-pv-thumbnail-view-button-selection');\n }\n };\n NavigationPane.prototype.resetThumbnailIcon = function () {\n if (this.thumbnailButton && this.thumbnailButton.children[0]) {\n this.thumbnailButton.children[0].classList.remove('e-pv-thumbnail-view-icon');\n this.thumbnailButton.children[0].classList.add('e-pv-thumbnail-view-disable-icon');\n }\n };\n /**\n * @private\n * @returns {void}\n */\n NavigationPane.prototype.resetThumbnailView = function () {\n if (this.sideBarContentContainer) {\n this.sideBarContentContainer.style.display = 'none';\n if (this.pdfViewer.enableRtl) {\n this.pdfViewerBase.viewerContainer.style.left = 1 + 'px';\n }\n else {\n this.pdfViewerBase.viewerContainer.style.left = (this.sideToolbarWidth) + 'px';\n }\n // eslint-disable-next-line max-len\n this.pdfViewerBase.viewerContainer.style.width = (this.pdfViewer.element.clientWidth - this.sideToolbarWidth - this.getViewerContainerRight()) + 'px';\n if (this.pdfViewerBase.pageContainer) {\n this.pdfViewerBase.pageContainer.style.width = this.pdfViewerBase.viewerContainer.clientWidth + 'px';\n }\n this.thumbnailButton.setAttribute('disabled', 'disabled');\n this.removeThumbnailSelectionIconTheme();\n this.resetThumbnailIcon();\n }\n };\n NavigationPane.prototype.setBookmarkSelectionIconTheme = function () {\n if (this.bookmarkButton) {\n this.bookmarkButton.children[0].classList.remove('e-pv-bookmark-icon');\n this.bookmarkButton.children[0].classList.add('e-pv-bookmark-selection-icon');\n this.bookmarkButton.classList.add('e-pv-bookmark-button-selection');\n }\n };\n NavigationPane.prototype.removeBookmarkSelectionIconTheme = function () {\n if (this.bookmarkButton && this.bookmarkButton.children[0]) {\n this.bookmarkButton.children[0].classList.add('e-pv-bookmark-icon');\n this.bookmarkButton.children[0].classList.remove('e-pv-bookmark-selection-icon');\n this.bookmarkButton.classList.remove('e-pv-bookmark-button-selection');\n }\n };\n NavigationPane.prototype.sideToolbarOnMouseup = function (event) {\n if (event.target === this.sideBarToolbar) {\n this.pdfViewerBase.focusViewerContainer();\n }\n };\n NavigationPane.prototype.sideBarTitleOnMouseup = function (event) {\n this.pdfViewerBase.focusViewerContainer();\n };\n /**\n * @private\n * @returns {void}\n */\n NavigationPane.prototype.openBookmarkcontentInitially = function () {\n var proxy = null;\n proxy = this;\n if (document.getElementById(this.pdfViewer.element.id + '_thumbnail_view')) {\n document.getElementById(this.pdfViewer.element.id + '_thumbnail_view').style.display = 'none';\n }\n this.removeThumbnailSelectionIconTheme();\n this.sideBarTitle.textContent = this.pdfViewer.localeObj.getConstant('Bookmarks');\n this.sideBarContent.setAttribute('aria-label', 'Bookmark View Panel');\n this.pdfViewer.bookmarkViewModule.renderBookmarkcontent();\n if (this.sideBarContentContainer) {\n if (proxy.sideBarContentContainer.style.display !== 'none') {\n if (this.isThumbnailOpen) {\n this.setBookmarkSelectionIconTheme();\n this.isBookmarkOpen = true;\n this.updateViewerContainerOnExpand();\n }\n else {\n this.removeBookmarkSelectionIconTheme();\n this.isBookmarkOpen = false;\n this.updateViewerContainerOnClose();\n }\n }\n else {\n this.sideBarContent.focus();\n this.setBookmarkSelectionIconTheme();\n this.isBookmarkOpen = true;\n this.updateViewerContainerOnExpand();\n }\n }\n this.isThumbnailOpen = false;\n if (this.pdfViewer.annotationModule && this.pdfViewer.annotationModule.inkAnnotationModule) {\n // eslint-disable-next-line\n var currentPageNumber = parseInt(this.pdfViewer.annotationModule.inkAnnotationModule.currentPageNumber);\n this.pdfViewer.annotationModule.inkAnnotationModule.drawInkAnnotation(currentPageNumber);\n }\n };\n /**\n * @private\n * @returns {void}\n */\n NavigationPane.prototype.disableBookmarkButton = function () {\n if (this.sideBarContentContainer && this.bookmarkButton && this.bookmarkButton.children[0]) {\n this.sideBarContentContainer.style.display = 'none';\n this.bookmarkButton.setAttribute('disabled', 'disabled');\n this.bookmarkButton.children[0].classList.add('e-pv-bookmark-disable-icon');\n }\n };\n /**\n * @private\n * @returns {void}\n */\n NavigationPane.prototype.clear = function () {\n if (!Browser.isDevice) {\n this.removeBookmarkSelectionIconTheme();\n this.removeThumbnailSelectionIconTheme();\n this.closeCommentPanelContainer();\n }\n if (this.commentsContentContainer) {\n this.commentsContentContainer.innerHTML = '';\n }\n };\n /**\n * @private\n * @returns {void}\n */\n NavigationPane.prototype.destroy = function () {\n var bookmarkButtonInstance = this.bookmarkButton;\n var thumbnailButtonInstance = this.thumbnailButton;\n if (bookmarkButtonInstance && bookmarkButtonInstance.ej2_instances && bookmarkButtonInstance.ej2_instances.length > 0) {\n bookmarkButtonInstance.ej2_instances[0].destroy();\n }\n if (thumbnailButtonInstance && thumbnailButtonInstance.ej2_instances && thumbnailButtonInstance.ej2_instances.length > 0) {\n thumbnailButtonInstance.ej2_instances[0].destroy();\n }\n if (this.annotationMenuObj) {\n var annotationMenuElement = this.annotationMenuObj.element;\n annotationMenuElement && annotationMenuElement.ej2_instances && annotationMenuElement.ej2_instances.length > 0 ? this.annotationMenuObj.destroy() : null;\n }\n };\n /**\n * @returns {string} - Returns the string.\n */\n NavigationPane.prototype.getModuleName = function () {\n return 'NavigationPane';\n };\n return NavigationPane;\n}());\nexport { NavigationPane };\n","/**\n * enum module defines the public enumerations\n */\n/**\n * Defines the container/canvas transform\n * Self - Sets the transform type as Self\n * Parent - Sets the transform type as Parent\n */\nexport var RotateTransform;\n(function (RotateTransform) {\n /** Self - Sets the transform type as Self */\n RotateTransform[RotateTransform[\"Self\"] = 1] = \"Self\";\n /** Parent - Sets the transform type as Parent */\n RotateTransform[RotateTransform[\"Parent\"] = 2] = \"Parent\";\n})(RotateTransform || (RotateTransform = {}));\n/** Enables/Disables The element actions\n * None - Diables all element actions are none\n * ElementIsPort - Enable element action is port\n * ElementIsGroup - Enable element action as Group\n * @private\n */\nexport var ElementAction;\n(function (ElementAction) {\n /** Disables all element actions are none */\n ElementAction[ElementAction[\"None\"] = 0] = \"None\";\n /** Enable the element action is Port */\n ElementAction[ElementAction[\"ElementIsPort\"] = 2] = \"ElementIsPort\";\n /** Enable the element action as Group */\n ElementAction[ElementAction[\"ElementIsGroup\"] = 4] = \"ElementIsGroup\";\n})(ElementAction || (ElementAction = {}));\n/**\n * Defines the constraints to enable/disable certain features of connector.\n * * None - Interaction of the connectors cannot be done.\n * * Select - Selects the connector.\n * * Delete - Delete the connector.\n * * Drag - Drag the connector.\n * * DragSourceEnd - Drag the source end of the connector.\n * * DragTargetEnd - Drag the target end of the connector.\n * * DragSegmentThump - Drag the segment thumb of the connector.\n * * AllowDrop - Allow to drop a node.\n * * Bridging - Creates bridge on intersection of two connectors.\n * * BridgeObstacle -\n * * InheritBridging - Creates bridge on intersection of two connectors.\n * * PointerEvents - Sets the pointer events.\n * * Tooltip - Displays a tooltip for the connectors.\n * * InheritToolTip - Displays a tooltip for the connectors.\n * * Interaction - Features of the connector used for interaction.\n * * ReadOnly - Enables ReadOnly\n * * Default - Default features of the connector.\n * @aspNumberEnum\n * @IgnoreSingular\n */\nexport var ConnectorConstraints;\n(function (ConnectorConstraints) {\n /** Disable all connector Constraints. */\n ConnectorConstraints[ConnectorConstraints[\"None\"] = 1] = \"None\";\n /** Enables connector to be selected. */\n ConnectorConstraints[ConnectorConstraints[\"Select\"] = 2] = \"Select\";\n /** Enables connector to be Deleted. */\n ConnectorConstraints[ConnectorConstraints[\"Delete\"] = 4] = \"Delete\";\n /** Enables connector to be Dragged. */\n ConnectorConstraints[ConnectorConstraints[\"Drag\"] = 8] = \"Drag\";\n /** Enables connectors source end to be selected. */\n ConnectorConstraints[ConnectorConstraints[\"DragSourceEnd\"] = 16] = \"DragSourceEnd\";\n /** Enables connectors target end to be selected. */\n ConnectorConstraints[ConnectorConstraints[\"DragTargetEnd\"] = 32] = \"DragTargetEnd\";\n /** Enables control point and end point of every segment in a connector for editing. */\n ConnectorConstraints[ConnectorConstraints[\"DragSegmentThumb\"] = 64] = \"DragSegmentThumb\";\n /** Enables AllowDrop constraints to the connector. */\n ConnectorConstraints[ConnectorConstraints[\"AllowDrop\"] = 128] = \"AllowDrop\";\n /** Enables bridging to the connector. */\n ConnectorConstraints[ConnectorConstraints[\"Bridging\"] = 256] = \"Bridging\";\n /** Enables or Disables Bridge Obstacles with overlapping of connectors. */\n ConnectorConstraints[ConnectorConstraints[\"BridgeObstacle\"] = 512] = \"BridgeObstacle\";\n /** Enables bridging to the connector. */\n ConnectorConstraints[ConnectorConstraints[\"InheritBridging\"] = 1024] = \"InheritBridging\";\n /** Used to set the pointer events. */\n ConnectorConstraints[ConnectorConstraints[\"PointerEvents\"] = 2048] = \"PointerEvents\";\n /** Enables or disables tool tip for the connectors */\n ConnectorConstraints[ConnectorConstraints[\"Tooltip\"] = 4096] = \"Tooltip\";\n /** Enables or disables tool tip for the connectors */\n ConnectorConstraints[ConnectorConstraints[\"InheritTooltip\"] = 8192] = \"InheritTooltip\";\n /** Enables Interaction. */\n ConnectorConstraints[ConnectorConstraints[\"Interaction\"] = 4218] = \"Interaction\";\n /** Enables ReadOnly */\n ConnectorConstraints[ConnectorConstraints[\"ReadOnly\"] = 16384] = \"ReadOnly\";\n /** Enables all constraints. */\n ConnectorConstraints[ConnectorConstraints[\"Default\"] = 11838] = \"Default\";\n})(ConnectorConstraints || (ConnectorConstraints = {}));\n/** Enables/Disables the handles of the selector\n * Rotate - Enable Rotate Thumb\n * ConnectorSource - Enable Connector source point\n * ConnectorTarget - Enable Connector target point\n * ResizeNorthEast - Enable ResizeNorthEast Resize\n * ResizeEast - Enable ResizeEast Resize\n * ResizeSouthEast - Enable ResizeSouthEast Resize\n * ResizeSouth - Enable ResizeSouth Resize\n * ResizeSouthWest - Enable ResizeSouthWest Resize\n * ResizeWest - Enable ResizeWest Resize\n * ResizeNorthWest - Enable ResizeNorthWest Resize\n * ResizeNorth - Enable ResizeNorth Resize\n * Default - Enables all constraints\n * @private\n */\nexport var ThumbsConstraints;\n(function (ThumbsConstraints) {\n /** Enable Rotate Thumb */\n ThumbsConstraints[ThumbsConstraints[\"Rotate\"] = 2] = \"Rotate\";\n /** Enable Connector source point */\n ThumbsConstraints[ThumbsConstraints[\"ConnectorSource\"] = 4] = \"ConnectorSource\";\n /** Enable Connector target point */\n ThumbsConstraints[ThumbsConstraints[\"ConnectorTarget\"] = 8] = \"ConnectorTarget\";\n /** Enable ResizeNorthEast Resize */\n ThumbsConstraints[ThumbsConstraints[\"ResizeNorthEast\"] = 16] = \"ResizeNorthEast\";\n /** Enable ResizeEast Resize */\n ThumbsConstraints[ThumbsConstraints[\"ResizeEast\"] = 32] = \"ResizeEast\";\n /** Enable ResizeSouthEast Resize */\n ThumbsConstraints[ThumbsConstraints[\"ResizeSouthEast\"] = 64] = \"ResizeSouthEast\";\n /** Enable ResizeSouth Resize */\n ThumbsConstraints[ThumbsConstraints[\"ResizeSouth\"] = 128] = \"ResizeSouth\";\n /** Enable ResizeSouthWest Resize */\n ThumbsConstraints[ThumbsConstraints[\"ResizeSouthWest\"] = 256] = \"ResizeSouthWest\";\n /** Enable ResizeWest Resize */\n ThumbsConstraints[ThumbsConstraints[\"ResizeWest\"] = 512] = \"ResizeWest\";\n /** Enable ResizeNorthWest Resize */\n ThumbsConstraints[ThumbsConstraints[\"ResizeNorthWest\"] = 1024] = \"ResizeNorthWest\";\n /** Enable ResizeNorth Resize */\n ThumbsConstraints[ThumbsConstraints[\"ResizeNorth\"] = 2048] = \"ResizeNorth\";\n /** Enables all constraints */\n ThumbsConstraints[ThumbsConstraints[\"Default\"] = 4094] = \"Default\";\n})(ThumbsConstraints || (ThumbsConstraints = {}));\n/**\n * Defines the visibility of the selector handles\n * None - Hides all the selector elements\n * ConnectorSourceThumb - Shows/hides the source thumb of the connector\n * ConnectorTargetThumb - Shows/hides the target thumb of the connector\n * ResizeSouthEast - Shows/hides the bottom right resize handle of the selector\n * ResizeSouthWest - Shows/hides the bottom left resize handle of the selector\n * ResizeNorthEast - Shows/hides the top right resize handle of the selector\n * ResizeNorthWest - Shows/hides the top left resize handle of the selector\n * ResizeEast - Shows/hides the middle right resize handle of the selector\n * ResizeWest - Shows/hides the middle left resize handle of the selector\n * ResizeSouth - Shows/hides the bottom center resize handle of the selector\n * ResizeNorth - Shows/hides the top center resize handle of the selector\n * Rotate - Shows/hides the rotate handle of the selector\n * UserHandles - Shows/hides the user handles of the selector\n * Resize - Shows/hides all resize handles of the selector\n * @aspNumberEnum\n * @IgnoreSingular\n */\nexport var SelectorConstraints;\n(function (SelectorConstraints) {\n /** Hides all the selector elements */\n SelectorConstraints[SelectorConstraints[\"None\"] = 1] = \"None\";\n /** Shows/hides the source thumb of the connector */\n SelectorConstraints[SelectorConstraints[\"ConnectorSourceThumb\"] = 2] = \"ConnectorSourceThumb\";\n /** Shows/hides the target thumb of the connector */\n SelectorConstraints[SelectorConstraints[\"ConnectorTargetThumb\"] = 4] = \"ConnectorTargetThumb\";\n /** Shows/hides the bottom right resize handle of the selector */\n SelectorConstraints[SelectorConstraints[\"ResizeSouthEast\"] = 8] = \"ResizeSouthEast\";\n /** Shows/hides the bottom left resize handle of the selector */\n SelectorConstraints[SelectorConstraints[\"ResizeSouthWest\"] = 16] = \"ResizeSouthWest\";\n /** Shows/hides the top right resize handle of the selector */\n SelectorConstraints[SelectorConstraints[\"ResizeNorthEast\"] = 32] = \"ResizeNorthEast\";\n /** Shows/hides the top left resize handle of the selector */\n SelectorConstraints[SelectorConstraints[\"ResizeNorthWest\"] = 64] = \"ResizeNorthWest\";\n /** Shows/hides the middle right resize handle of the selector */\n SelectorConstraints[SelectorConstraints[\"ResizeEast\"] = 128] = \"ResizeEast\";\n /** Shows/hides the middle left resize handle of the selector */\n SelectorConstraints[SelectorConstraints[\"ResizeWest\"] = 256] = \"ResizeWest\";\n /** Shows/hides the bottom center resize handle of the selector */\n SelectorConstraints[SelectorConstraints[\"ResizeSouth\"] = 512] = \"ResizeSouth\";\n /** Shows/hides the top center resize handle of the selector */\n SelectorConstraints[SelectorConstraints[\"ResizeNorth\"] = 1024] = \"ResizeNorth\";\n /** Shows/hides the rotate handle of the selector */\n SelectorConstraints[SelectorConstraints[\"Rotate\"] = 2048] = \"Rotate\";\n /** Shows/hides the user handles of the selector */\n SelectorConstraints[SelectorConstraints[\"UserHandle\"] = 4096] = \"UserHandle\";\n /** Shows/hides the default tooltip of nodes and connectors */\n SelectorConstraints[SelectorConstraints[\"ToolTip\"] = 8192] = \"ToolTip\";\n /** Shows/hides all resize handles of the selector */\n SelectorConstraints[SelectorConstraints[\"ResizeAll\"] = 2046] = \"ResizeAll\";\n /** Shows all handles of the selector */\n SelectorConstraints[SelectorConstraints[\"All\"] = 16382] = \"All\";\n})(SelectorConstraints || (SelectorConstraints = {}));\n/** @private */\nexport var NoOfSegments;\n(function (NoOfSegments) {\n NoOfSegments[NoOfSegments[\"Zero\"] = 0] = \"Zero\";\n NoOfSegments[NoOfSegments[\"One\"] = 1] = \"One\";\n NoOfSegments[NoOfSegments[\"Two\"] = 2] = \"Two\";\n NoOfSegments[NoOfSegments[\"Three\"] = 3] = \"Three\";\n NoOfSegments[NoOfSegments[\"Four\"] = 4] = \"Four\";\n NoOfSegments[NoOfSegments[\"Five\"] = 5] = \"Five\";\n})(NoOfSegments || (NoOfSegments = {}));\n","/**\n * @hidden\n */\nvar AjaxHandler = /** @class */ (function () {\n /**\n * Constructor for Ajax class\n * @param {PdfViewer} pdfviewer - The pdfviewer.\n * @private\n */\n function AjaxHandler(pdfviewer) {\n /**\n * Specifies the URL to which request to be sent.\n *\n * @default 'POST'\n */\n this.type = 'POST';\n /**\n * A boolean value indicating whether the request should be sent asynchronous or not.\n *\n * @default true\n * @private\n */\n this.mode = true;\n /**\n * Specifies the ContentType to which request to be sent\n *\n * @default null\n * @private\n */\n this.contentType = 'application/json;charset=UTF-8';\n this.pdfViewer = pdfviewer;\n this.retryCount = pdfviewer.retryCount;\n this.retryStatusCodes = pdfviewer.retryStatusCodes;\n }\n /**\n * Send the request to server\n *\n * @param {object} jsonObj - To send to service\n * @returns {void}\n * @private\n */\n AjaxHandler.prototype.send = function (jsonObj) {\n var _this = this;\n this.httpRequest = new XMLHttpRequest();\n if (!this.mode) {\n setTimeout(function () {\n _this.sendRequest(jsonObj);\n });\n }\n else {\n this.sendRequest(jsonObj);\n }\n this.httpRequest.onreadystatechange = function () {\n var isSkip = false;\n // eslint-disable-next-line\n var viewerBase = _this.pdfViewer.viewerBase;\n if (viewerBase && viewerBase.isPasswordAvailable && viewerBase.passwordData === '') {\n isSkip = true;\n _this.retryCount = 0;\n }\n if (_this.retryCount > 0) {\n isSkip = _this.resendRequest(_this, jsonObj);\n }\n if (!isSkip) {\n _this.stateChange(_this);\n }\n };\n this.httpRequest.onerror = function () {\n _this.error(_this);\n };\n };\n /**\n * Clear the http request\n * @returns {void}\n * @private\n */\n AjaxHandler.prototype.clear = function () {\n this.httpRequest && this.httpRequest.abort();\n this.onSuccess = null;\n this.onFailure = null;\n this.onError = null;\n };\n // eslint-disable-next-line\n AjaxHandler.prototype.resendRequest = function (proxy, jsonObj) {\n var isSkip = false;\n var status = proxy.httpRequest.status;\n var statusString = this.retryStatusCodes.indexOf(status) !== -1;\n if (proxy.httpRequest.readyState === 4 && status === 200) {\n // eslint-disable-next-line\n var data = void 0;\n if (this.responseType !== null) {\n data = proxy.httpRequest.response;\n }\n else {\n data = proxy.httpRequest.responseText;\n }\n if (data) {\n if (typeof data !== 'object') {\n try {\n data = JSON.parse(data);\n }\n catch (error) {\n // eslint-disable-next-line max-len\n if (data === 'Document stream does not exist in the cache' || data === 'Document Reference pointer does not exist in the cache') {\n isSkip = true;\n }\n }\n }\n }\n }\n if (statusString || isSkip) {\n isSkip = true;\n this.retryCount--;\n proxy.pdfViewer.fireAjaxRequestFailed(status, proxy.httpRequest.statusText, jsonObj.action, true);\n proxy.send(jsonObj);\n }\n return isSkip;\n };\n AjaxHandler.prototype.sendRequest = function (jsonObj) {\n /* eslint-disable */\n this.httpRequest.open(this.type, this.url, this.mode);\n /* eslint-enable */\n this.httpRequest.withCredentials = this.pdfViewer.ajaxRequestSettings.withCredentials;\n this.httpRequest.setRequestHeader('Content-Type', this.contentType);\n jsonObj = this.addExtraData(jsonObj);\n this.setCustomAjaxHeaders();\n if (this.responseType !== null) {\n this.httpRequest.responseType = this.responseType;\n }\n this.httpRequest.send(JSON.stringify(jsonObj)); // jshint ignore:line\n };\n AjaxHandler.prototype.addExtraData = function (jsonObject) {\n this.pdfViewer.viewerBase.ajaxData = '';\n this.pdfViewer.fireAjaxRequestInitiate(jsonObject);\n if (this.pdfViewer.viewerBase.ajaxData && this.pdfViewer.viewerBase.ajaxData !== '') {\n jsonObject = this.pdfViewer.viewerBase.ajaxData;\n }\n return jsonObject;\n };\n AjaxHandler.prototype.stateChange = function (proxy) {\n var status = proxy.httpRequest.status;\n var statusString = status.toString().split('')[0];\n if (proxy.httpRequest.readyState === 4 && status === 200) {\n // eslint-disable-next-line\n var data = void 0;\n if (this.responseType !== null) {\n data = proxy.httpRequest.response;\n }\n else {\n data = proxy.httpRequest.responseText;\n }\n // eslint-disable-next-line\n var result = {\n name: 'onSuccess',\n data: data,\n readyState: proxy.httpRequest.readyState,\n status: proxy.httpRequest.status\n };\n proxy.successHandler(result);\n }\n else if (proxy.httpRequest.readyState === 4 && (statusString === '4' || statusString === '5')) { // jshint ignore:line)\n // For handling 4xx and 5xx errors.\n // eslint-disable-next-line\n var result = {\n name: 'onFailure',\n status: proxy.httpRequest.status,\n statusText: proxy.httpRequest.statusText\n };\n proxy.failureHandler(result);\n }\n };\n AjaxHandler.prototype.error = function (proxy) {\n // eslint-disable-next-line\n var result = {\n name: 'onError',\n status: this.httpRequest.status,\n statusText: this.httpRequest.statusText\n };\n proxy.errorHandler(result);\n };\n // eslint-disable-next-line\n AjaxHandler.prototype.successHandler = function (response) {\n if (this.onSuccess) {\n this.onSuccess(response);\n }\n return response;\n };\n // eslint-disable-next-line\n AjaxHandler.prototype.failureHandler = function (response) {\n if (this.onFailure) {\n this.onFailure(response);\n }\n return response;\n };\n // eslint-disable-next-line\n AjaxHandler.prototype.errorHandler = function (response) {\n if (this.onError) {\n this.onError(response);\n }\n return response;\n };\n AjaxHandler.prototype.setCustomAjaxHeaders = function () {\n for (var i = 0; i < this.pdfViewer.ajaxRequestSettings.ajaxHeaders.length; i++) {\n // eslint-disable-next-line max-len\n this.httpRequest.setRequestHeader(this.pdfViewer.ajaxRequestSettings.ajaxHeaders[parseInt(i.toString(), 10)].headerName, this.pdfViewer.ajaxRequestSettings.ajaxHeaders[parseInt(i.toString(), 10)].headerValue);\n }\n };\n return AjaxHandler;\n}());\nexport { AjaxHandler };\n","/**\n * Rect defines and processes rectangular regions\n */\nvar Rect = /** @class */ (function () {\n function Rect(x, y, width, height) {\n /**\n * Sets the x-coordinate of the starting point of a rectangular region\n * @default 0\n */\n this.x = Number.MAX_VALUE;\n /**\n * Sets the y-coordinate of the starting point of a rectangular region\n * @default 0\n */\n this.y = Number.MAX_VALUE;\n /**\n * Sets the width of a rectangular region\n * @default 0\n */\n this.width = 0;\n /**\n * Sets the height of a rectangular region\n * @default 0\n */\n this.height = 0;\n if (x === undefined || y === undefined) {\n x = y = Number.MAX_VALUE;\n width = height = 0;\n }\n else {\n if (width === undefined) {\n width = 0;\n }\n if (height === undefined) {\n height = 0;\n }\n }\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n }\n Object.defineProperty(Rect.prototype, \"left\", {\n /** @private */\n get: function () {\n return this.x;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"right\", {\n /** @private */\n get: function () {\n return this.x + this.width;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"top\", {\n /** @private */\n get: function () {\n return this.y;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"bottom\", {\n /** @private */\n get: function () {\n return this.y + this.height;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"topLeft\", {\n /** @private */\n get: function () {\n return { x: this.left, y: this.top };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"topRight\", {\n /** @private */\n get: function () {\n return { x: this.right, y: this.top };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"bottomLeft\", {\n /** @private */\n get: function () {\n return { x: this.left, y: this.bottom };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"bottomRight\", {\n /** @private */\n get: function () {\n return { x: this.right, y: this.bottom };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"middleLeft\", {\n /** @private */\n get: function () {\n return { x: this.left, y: this.y + this.height / 2 };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"middleRight\", {\n /** @private */\n get: function () {\n return { x: this.right, y: this.y + this.height / 2 };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"topCenter\", {\n /** @private */\n get: function () {\n return { x: this.x + this.width / 2, y: this.top };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"bottomCenter\", {\n /** @private */\n get: function () {\n return { x: this.x + this.width / 2, y: this.bottom };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"center\", {\n /** @private */\n get: function () {\n return { x: this.x + this.width / 2, y: this.y + this.height / 2 };\n },\n enumerable: true,\n configurable: true\n });\n /** @private */\n Rect.prototype.equals = function (rect1, rect2) {\n return rect1.x === rect2.x && rect1.y === rect2.y && rect1.width === rect2.width && rect1.height === rect2.height;\n };\n /** @private */\n Rect.prototype.uniteRect = function (rect) {\n var right = Math.max(Number.NaN === this.right || this.x === Number.MAX_VALUE ? rect.right : this.right, rect.right);\n var bottom = Math.max(Number.NaN === this.bottom || this.y === Number.MAX_VALUE ? rect.bottom : this.bottom, rect.bottom);\n this.x = Math.min(this.left, rect.left);\n this.y = Math.min(this.top, rect.top);\n this.width = right - this.x;\n this.height = bottom - this.y;\n return this;\n };\n /** @private */\n Rect.prototype.unitePoint = function (point) {\n if (this.x === Number.MAX_VALUE) {\n this.x = point.x;\n this.y = point.y;\n return;\n }\n var x = Math.min(this.left, point.x);\n var y = Math.min(this.top, point.y);\n var right = Math.max(this.right, point.x);\n var bottom = Math.max(this.bottom, point.y);\n this.x = x;\n this.y = y;\n this.width = right - this.x;\n this.height = bottom - this.y;\n };\n Rect.prototype.intersection = function (rect) {\n if (this.intersects(rect)) {\n var left = Math.max(this.left, rect.left);\n var top_1 = Math.max(this.top, rect.top);\n var right = Math.min(this.right, rect.right);\n var bottom = Math.min(this.bottom, rect.bottom);\n return new Rect(left, top_1, right - left, bottom - top_1);\n }\n return Rect.empty;\n };\n /** @private */\n Rect.prototype.Inflate = function (padding) {\n this.x -= padding;\n this.y -= padding;\n this.width += padding * 2;\n this.height += padding * 2;\n return this;\n };\n // public Inflate(size: Size): Rect {\n // this.x -= size.Width;\n // this.y -= size.Height;\n // this.width += size.Width * 2;\n // this.height += size.Height * 2;\n // return this;\n // }\n // public inflate(width: number, height: number): void {\n // this.x -= width;\n // this.y -= height;\n // this.width += width * 2;\n // this.height += height * 2;\n // }\n /** @private */\n Rect.prototype.intersects = function (rect) {\n if (this.right < rect.left || this.left > rect.right || this.top > rect.bottom || this.bottom < rect.top) {\n return false;\n }\n return true;\n };\n /** @private */\n Rect.prototype.containsRect = function (rect) {\n return this.left <= rect.left && this.right >= rect.right && this.top <= rect.top && this.bottom >= rect.bottom;\n };\n /** @private */\n Rect.prototype.containsPoint = function (point, padding) {\n if (padding === void 0) { padding = 0; }\n return this.left - padding <= point.x && this.right + padding >= point.x\n && this.top - padding <= point.y && this.bottom + padding >= point.y;\n };\n Rect.prototype.toPoints = function () {\n var points = [];\n points.push(this.topLeft);\n points.push(this.topRight);\n points.push(this.bottomLeft);\n points.push(this.bottomRight);\n return points;\n };\n /** @private */\n Rect.toBounds = function (points) {\n var rect = new Rect();\n for (var _i = 0, points_1 = points; _i < points_1.length; _i++) {\n var pt = points_1[_i];\n rect.unitePoint(pt);\n }\n return rect;\n };\n Rect.prototype.scale = function (scaleX, scaleY) {\n this.width *= scaleX;\n this.height *= scaleY;\n };\n Rect.prototype.offset = function (offsetX, offsetY) {\n this.x += offsetX;\n this.y += offsetY;\n };\n /** @private */\n Rect.empty = new Rect(Number.MAX_VALUE, Number.MIN_VALUE, 0, 0);\n return Rect;\n}());\nexport { Rect };\n","import { identityMatrix, rotateMatrix, transformPointByMatrix } from './../primitives/matrix';\nimport { Container } from './../core/containers/container';\nimport { StrokeStyle } from './../core/appearance';\nimport { Point } from './../primitives/point';\nimport { TextElement } from '../core/elements/text-element';\nimport { rotatePoint } from './base-util';\n/**\n * Implements the drawing functionalities\n */\n/** @private */\nexport function findNearestPoint(reference, start, end) {\n var shortestPoint;\n var shortest = Point.findLength(start, reference);\n var shortest1 = Point.findLength(end, reference);\n if (shortest > shortest1) {\n shortestPoint = end;\n }\n else {\n shortestPoint = start;\n }\n var angleBWStAndEnd = Point.findAngle(start, end);\n var angleBWStAndRef = Point.findAngle(shortestPoint, reference);\n var r = Point.findLength(shortestPoint, reference);\n var vaAngle = angleBWStAndRef + ((angleBWStAndEnd - angleBWStAndRef) * 2);\n return {\n x: (shortestPoint.x + r * Math.cos(vaAngle * Math.PI / 180)),\n y: (shortestPoint.y + r * Math.sin(vaAngle * Math.PI / 180))\n };\n}\n/** @private */\nexport function findElementUnderMouse(obj, position, padding) {\n return findTargetElement(obj.wrapper, position, padding);\n}\n/** @private */\nexport function findTargetElement(container, position, padding) {\n for (var i = container.children.length - 1; i >= 0; i--) {\n var element = container.children[parseInt(i.toString(), 10)];\n if (element && element.bounds.containsPoint(position, 0)) {\n if (element instanceof Container) {\n var target = this.findTargetElement(element, position);\n if (target) {\n return target;\n }\n }\n if (element.bounds.containsPoint(position, 0)) {\n return element;\n }\n }\n }\n if (container.bounds.containsPoint(position, padding) && container.style.fill !== 'none') {\n return container;\n }\n return null;\n}\n/** @private */\nexport function intersect3(lineUtil1, lineUtil2) {\n var point = { x: 0, y: 0 };\n var l1 = lineUtil1;\n var l2 = lineUtil2;\n var d = (l2.y2 - l2.y1) * (l1.x2 - l1.x1) - (l2.x2 - l2.x1) * (l1.y2 - l1.y1);\n var na = (l2.x2 - l2.x1) * (l1.y1 - l2.y1) - (l2.y2 - l2.y1) * (l1.x1 - l2.x1);\n var nb = (l1.x2 - l1.x1) * (l1.y1 - l2.y1) - (l1.y2 - l1.y1) * (l1.x1 - l2.x1);\n if (d === 0) {\n return { enabled: false, intersectPt: point };\n }\n var ua = na / d;\n var ub = nb / d;\n if (ua >= 0 && ua <= 1 && ub >= 0 && ub <= 1) {\n point.x = l1.x1 + (ua * (l1.x2 - l1.x1));\n point.y = l1.y1 + (ua * (l1.y2 - l1.y1));\n return { enabled: true, intersectPt: point };\n }\n return { enabled: false, intersectPt: point };\n}\n/** @private */\nexport function intersect2(start1, end1, start2, end2) {\n var point = { x: 0, y: 0 };\n var lineUtil1 = getLineSegment(start1.x, start1.y, end1.x, end1.y);\n var lineUtil2 = getLineSegment(start2.x, start2.y, end2.x, end2.y);\n var line3 = intersect3(lineUtil1, lineUtil2);\n if (line3.enabled) {\n return line3.intersectPt;\n }\n else {\n return point;\n }\n}\n/** @private */\nexport function getLineSegment(x1, y1, x2, y2) {\n return { 'x1': Number(x1) || 0, 'y1': Number(y1) || 0, 'x2': Number(x2) || 0, 'y2': Number(y2) || 0 };\n}\n/** @private */\nexport function getPoints(element, corners, padding) {\n var line = [];\n padding = padding || 0;\n var left = { x: corners.topLeft.x - padding, y: corners.topLeft.y };\n var right = { x: corners.topRight.x + padding, y: corners.topRight.y };\n var top = { x: corners.bottomRight.x, y: corners.bottomRight.y - padding };\n var bottom = { x: corners.bottomLeft.x, y: corners.bottomLeft.y + padding };\n line.push(left);\n line.push(right);\n line.push(top);\n line.push(bottom);\n return line;\n}\n/** @private */\nexport function getBezierDirection(src, tar) {\n if (Math.abs(tar.x - src.x) > Math.abs(tar.y - src.y)) {\n return src.x < tar.x ? 'right' : 'left';\n }\n else {\n return src.y < tar.y ? 'bottom' : 'top';\n }\n}\n/** @private */\nexport function updateStyle(changedObject, target) {\n //since text style model is the super set of shape style model, we used text style model\n var style = target.style;\n var textElement = target;\n for (var _i = 0, _a = Object.keys(changedObject); _i < _a.length; _i++) {\n var key = _a[_i];\n switch (key) {\n case 'fill':\n style.fill = changedObject.fill;\n if (style instanceof StrokeStyle) {\n /* tslint:disable:no-string-literal */\n style['fill'] = 'transparent';\n }\n break;\n case 'textOverflow':\n style.textOverflow = changedObject.textOverflow;\n break;\n case 'opacity':\n style.opacity = changedObject.opacity;\n break;\n case 'strokeColor':\n style.strokeColor = changedObject.strokeColor;\n break;\n case 'strokeDashArray':\n style.strokeDashArray = changedObject.strokeDashArray;\n break;\n case 'strokeWidth':\n style.strokeWidth = changedObject.strokeWidth;\n break;\n case 'bold':\n style.bold = changedObject.bold;\n break;\n case 'color':\n style.color = changedObject.color;\n break;\n case 'textWrapping':\n style.textWrapping = changedObject.textWrapping;\n break;\n case 'fontFamily':\n style.fontFamily = changedObject.fontFamily;\n break;\n case 'fontSize':\n style.fontSize = changedObject.fontSize;\n break;\n case 'italic':\n style.italic = changedObject.italic;\n break;\n case 'textAlign':\n style.textAlign = changedObject.textAlign;\n break;\n case 'whiteSpace':\n style.whiteSpace = changedObject.whiteSpace;\n break;\n case 'textDecoration':\n style.textDecoration = changedObject.textDecoration;\n break;\n }\n }\n if (target instanceof TextElement) {\n textElement.refreshTextElement();\n }\n}\n/** @private */\nexport function scaleElement(element, sw, sh, refObject) {\n if (element.width !== undefined && element.height !== undefined) {\n element.width *= sw;\n element.height *= sh;\n }\n if (element instanceof Container) {\n var matrix = identityMatrix();\n var width = refObject.width || refObject.actualSize.width;\n var height = refObject.height || refObject.actualSize.height;\n if (width !== undefined && height !== undefined) {\n var x = refObject.offsetX - width * refObject.pivot.x;\n var y = refObject.offsetY - height * refObject.pivot.y;\n var refPoint = {\n x: x + width * refObject.pivot.x,\n y: y + height * refObject.pivot.y\n };\n refPoint = rotatePoint(refObject.rotateAngle, refObject.offsetX, refObject.offsetY, refPoint);\n rotateMatrix(matrix, -refObject.rotateAngle, refPoint.x, refPoint.y);\n // scaleMatrix(matrix, sw, sh, refPoint.x, refPoint.y);\n rotateMatrix(matrix, refObject.rotateAngle, refPoint.x, refPoint.y);\n for (var _i = 0, _a = element.children; _i < _a.length; _i++) {\n var child = _a[_i];\n if (child.width !== undefined && child.height !== undefined) {\n var newPosition = transformPointByMatrix(matrix, { x: child.offsetX, y: child.offsetY });\n child.offsetX = newPosition.x;\n child.offsetY = newPosition.y;\n scaleElement(child, sw, sh, refObject);\n }\n }\n }\n }\n}\n/** @private */\nexport function contains(mousePosition, corner, padding) {\n if (mousePosition.x >= corner.x - padding && mousePosition.x <= corner.x + padding) {\n if (mousePosition.y >= corner.y - padding && mousePosition.y <= corner.y + padding) {\n return true;\n }\n }\n return false;\n}\n/** @private */\nexport function getPoint(x, y, w, h, angle, offsetX, offsetY, cornerPoint) {\n var pivot = { x: 0, y: 0 };\n var trans = identityMatrix();\n rotateMatrix(trans, angle, offsetX, offsetY);\n switch (cornerPoint.x) {\n case 0:\n switch (cornerPoint.y) {\n case 0:\n pivot = transformPointByMatrix(trans, ({ x: x, y: y }));\n break;\n case 0.5:\n pivot = transformPointByMatrix(trans, ({ x: x, y: y + h / 2 }));\n break;\n case 1:\n pivot = transformPointByMatrix(trans, ({ x: x, y: y + h }));\n break;\n }\n break;\n case 0.5:\n switch (cornerPoint.y) {\n case 0:\n pivot = transformPointByMatrix(trans, ({ x: x + w / 2, y: y }));\n break;\n case 0.5:\n pivot = transformPointByMatrix(trans, ({ x: x + w / 2, y: y + h / 2 }));\n break;\n case 1:\n pivot = transformPointByMatrix(trans, ({ x: x + w / 2, y: y + h }));\n break;\n }\n break;\n case 1:\n switch (cornerPoint.y) {\n case 0:\n pivot = transformPointByMatrix(trans, ({ x: x + w, y: y }));\n break;\n case 0.5:\n pivot = transformPointByMatrix(trans, ({ x: x + w, y: y + h / 2 }));\n break;\n case 1:\n pivot = transformPointByMatrix(trans, ({ x: x + w, y: y + h }));\n break;\n }\n break;\n }\n return { x: pivot.x, y: pivot.y };\n}\n","import { Rect } from '../primitives/rect';\nimport { Size } from '../primitives/size';\nimport { whiteSpaceToString, wordBreakToString, textAlignToString, bBoxText } from './base-util';\nimport { identityMatrix, transformPointByMatrix, rotateMatrix } from '../primitives/matrix';\nimport { createElement, Browser } from '@syncfusion/ej2-base';\n/**\n * Defines the functionalities that need to access DOM\n */\nexport function getChildNode(node) {\n var child;\n var collection = [];\n if (Browser.info.name === 'msie' || Browser.info.name === 'edge') {\n for (var i = 0; i < node.childNodes.length; i++) {\n child = node.childNodes[parseInt(i.toString(), 10)];\n if (child.nodeType === 1) {\n collection.push(child);\n }\n }\n }\n else {\n collection = node.children;\n }\n return collection;\n}\nexport function translatePoints(element, points) {\n var translatedPts = [];\n for (var _i = 0, points_1 = points; _i < points_1.length; _i++) {\n var point = points_1[_i];\n var pt1 = {\n x: element.offsetX - element.actualSize.width * element.pivot.x + point.x,\n y: element.offsetY - element.actualSize.height * element.pivot.y + point.y\n };\n var matrix = void 0;\n var angle = element.rotateAngle + element.parentTransform;\n if (angle) {\n matrix = identityMatrix();\n rotateMatrix(matrix, angle, element.offsetX, element.offsetY);\n }\n if (matrix) {\n pt1 = transformPointByMatrix(matrix, pt1);\n }\n translatedPts.push(pt1);\n }\n return translatedPts;\n}\n/** @private */\nexport function measurePath(data) {\n var path = 'pathTable';\n // eslint-disable-next-line\n if (!window[path]) {\n // eslint-disable-next-line\n window[path] = {};\n }\n if (data) {\n var measureElement = 'measureElement';\n // eslint-disable-next-line\n window[measureElement].style.visibility = 'visible';\n // eslint-disable-next-line\n var svg = window[measureElement].children[2];\n var element = getChildNode(svg)[0];\n element.setAttribute('d', data);\n //let bounds: SVGRect = element.getBBox();\n var bounds = void 0;\n // eslint-disable-next-line\n if (window[path][data]) {\n // eslint-disable-next-line\n bounds = window[path][data];\n }\n else {\n // eslint-disable-next-line\n window[path][data] = bounds = element.getBBox();\n if ((bounds.x === 0 || bounds.y === 0) && (bounds.width === 0 || bounds.height === 0)) {\n // eslint-disable-next-line\n window[path][data] = bounds = getBBox(data);\n }\n }\n var svgBounds = new Rect(bounds.x, bounds.y, bounds.width, bounds.height);\n // eslint-disable-next-line\n window[measureElement].style.visibility = 'hidden';\n return svgBounds;\n }\n return new Rect(0, 0, 0, 0);\n}\n// tslint:disable-next-line\nfunction getBBox(path) {\n var xmin = 0;\n var xmax = 0;\n var ymin = 0;\n var ymax = 0;\n // tslint:disable-next-line\n var currentValue;\n // tslint:disable-next-line\n var currentpath = path;\n currentpath = currentpath.replace(/[a-z].*/g, ' ').replace(/[\\sA-Z]+/gi, ' ').trim().split(' ');\n for (var i = 0; i < currentpath.length; i++) {\n if (currentpath[parseInt(i.toString(), 10)].length > 1) {\n currentValue = currentpath[parseInt(i.toString(), 10)].split(',');\n xmin = xmax = currentValue[0];\n ymin = ymax = currentValue[1];\n }\n }\n for (var i = 0; i < currentpath.length; i++) {\n currentValue = currentpath[parseInt(i.toString(), 10)].split(',');\n if (!currentValue[1]) {\n currentValue[0] = xmin;\n currentValue[1] = ymin;\n }\n xmin = Math.min(xmin, currentValue[0]);\n xmax = Math.max(xmax, currentValue[0]);\n ymin = Math.min(ymin, currentValue[1]);\n ymax = Math.max(ymax, currentValue[1]);\n }\n return { x: xmin, y: ymin, width: xmax - xmin, height: ymax - ymin };\n}\nfunction getTextOptions(element, maxWidth) {\n var options = {\n fill: element.style.fill, stroke: element.style.strokeColor, angle: element.rotateAngle + element.parentTransform,\n pivotX: element.pivot.x, pivotY: element.pivot.y, strokeWidth: element.style.strokeWidth,\n dashArray: element.style.strokeDashArray, opacity: element.style.opacity,\n visible: element.visible, id: element.id,\n width: maxWidth || element.actualSize.width, height: element.actualSize.height,\n x: element.offsetX - element.actualSize.width * element.pivot.x + 0.5,\n y: element.offsetY - element.actualSize.height * element.pivot.y + 0.5\n };\n options.fontSize = element.style.fontSize;\n options.fontFamily = element.style.fontFamily;\n options.textOverflow = element.style.textOverflow;\n options.textDecoration = element.style.textDecoration;\n options.doWrap = element.doWrap;\n options.whiteSpace = whiteSpaceToString(element.style.whiteSpace, element.style.textWrapping);\n options.content = element.content;\n options.textWrapping = element.style.textWrapping;\n options.breakWord = wordBreakToString(element.style.textWrapping);\n options.textAlign = textAlignToString(element.style.textAlign);\n options.color = element.style.color;\n options.italic = element.style.italic;\n options.bold = element.style.bold;\n options.dashArray = '';\n options.strokeWidth = 0;\n options.fill = '';\n return options;\n}\nfunction wrapSvgText(text, textValue) {\n var childNodes = [];\n var k = 0;\n var txtValue;\n var bounds1;\n var content = textValue || text.content;\n if (text.whiteSpace !== 'nowrap' && text.whiteSpace !== 'pre') {\n if (text.breakWord === 'breakall') {\n txtValue = '';\n txtValue += content[0];\n for (k = 0; k < content.length; k++) {\n bounds1 = bBoxText(txtValue, text);\n if (bounds1 >= text.width && txtValue.length > 0) {\n childNodes[childNodes.length] = { text: txtValue, x: 0, dy: 0, width: bounds1 };\n txtValue = '';\n }\n else {\n txtValue = txtValue + (content[k + 1] || '');\n // if (txtValue.indexOf('\\n') > -1) {\n // txtValue = txtValue.replace('\\n', '');\n // }\n var width = bBoxText(txtValue, text);\n if ((Math.ceil(width) + 2 >= text.width && txtValue.length > 0) || (txtValue.indexOf('\\n') > -1)) {\n childNodes[childNodes.length] = { text: txtValue, x: 0, dy: 0, width: width };\n txtValue = '';\n }\n if (k === content.length - 1 && txtValue.length > 0) {\n childNodes[childNodes.length] = { text: txtValue, x: 0, dy: 0, width: width };\n txtValue = '';\n }\n }\n }\n }\n else {\n childNodes = wordWrapping(text, textValue);\n }\n }\n else {\n childNodes[childNodes.length] = { text: content, x: 0, dy: 0, width: bBoxText(content, text) };\n }\n return childNodes;\n}\nfunction wordWrapping(text, textValue) {\n var childNodes = [];\n var txtValue = '';\n var j = 0;\n var i = 0;\n var wrap = text.whiteSpace !== 'nowrap' ? true : false;\n var content = textValue || text.content;\n var bounds1;\n var eachLine = content.split('\\n');\n var txt;\n var words;\n var newText;\n var existingWidth;\n var existingText;\n for (j = 0; j < eachLine.length; j++) {\n txt = '';\n words = text.textWrapping !== 'NoWrap' ? eachLine[parseInt(j.toString(), 10)].split(' ') : eachLine;\n for (i = 0; i < words.length; i++) {\n bounds1 = bBoxText(words[parseInt(i.toString(), 10)], text);\n if (bounds1 > text.width && words[parseInt(i.toString(), 10)].length > 0 && text.textWrapping !== 'NoWrap') {\n if (eachLine.length > 1) {\n words[parseInt(i.toString(), 10)] = words[parseInt(i.toString(), 10)] + '\\n';\n }\n text.content = words[parseInt(i.toString(), 10)];\n childNodes = wrapText(text, txtValue, childNodes);\n }\n else {\n txtValue += (((i !== 0 || words.length === 1) && wrap && txtValue.length > 0) ? ' ' : '') + words[parseInt(i.toString(), 10)];\n newText = txtValue + (words[i + 1] || '');\n var width = bBoxText(newText, text);\n if (eachLine.length > 1 && i === words.length - 1) {\n txtValue = txtValue + '\\n';\n }\n if (Math.floor(width) > text.width - 2 && txtValue.length > 0) {\n textValue = txtValue;\n childNodes[childNodes.length] = {\n text: (txtValue.indexOf('\\n') === -1) ? txtValue + ' ' : textValue, x: 0, dy: 0,\n width: newText === txtValue ? width : (txtValue === existingText) ? existingWidth : bBoxText(txtValue, text)\n };\n txtValue = '';\n }\n else {\n if (i === words.length - 1) {\n childNodes[childNodes.length] = { text: txtValue, x: 0, dy: 0, width: width };\n txtValue = '';\n }\n }\n existingText = newText;\n existingWidth = width;\n }\n }\n }\n return childNodes;\n}\nfunction wrapText(txt, textValue, childNode) {\n var k = 0;\n var txtValue;\n var bounds1;\n var content = textValue || txt.content;\n txtValue = '';\n txtValue += content[0];\n for (k = 0; k < content.length; k++) {\n bounds1 = bBoxText(txtValue, txt);\n if (bounds1 >= txt.width && txtValue.length > 0) {\n childNode[childNode.length] = { text: txtValue, x: 0, dy: 0, width: bounds1 };\n txtValue = '';\n }\n else {\n txtValue = txtValue + (content[k + 1] || '');\n var width = bBoxText(txtValue, txt);\n if ((Math.ceil(width) + 2 >= txt.width && txtValue.length > 0) || (txtValue.indexOf('\\n') > -1)) {\n txtValue = txtValue.slice(0, -1);\n childNode[childNode.length] = { text: txtValue, x: 0, dy: 0, width: width };\n txtValue = content[k + 1] || '';\n }\n if (k === content.length - 1 && txtValue.length > 0) {\n childNode[childNode.length] = { text: txtValue, x: 0, dy: 0, width: width };\n txtValue = '';\n }\n }\n }\n return childNode;\n}\nfunction wrapSvgTextAlign(text, childNodes) {\n var wrapBounds = { x: 0, width: 0 };\n var k = 0;\n var txtWidth;\n var width;\n for (k = 0; k < childNodes.length; k++) {\n txtWidth = childNodes[parseInt(k.toString(), 10)].width;\n width = txtWidth;\n if (text.textAlign === 'left') {\n txtWidth = 0;\n }\n else if (text.textAlign === 'center') {\n if (txtWidth > text.width && (text.textOverflow === 'Ellipsis' || text.textOverflow === 'Clip')) {\n txtWidth = 0;\n }\n else {\n txtWidth = -txtWidth / 2;\n }\n }\n else if (text.textAlign === 'right') {\n txtWidth = -txtWidth;\n }\n else {\n txtWidth = childNodes.length > 1 ? 0 : -txtWidth / 2;\n }\n childNodes[parseInt(k.toString(), 10)].dy = text.fontSize * 1.2;\n childNodes[parseInt(k.toString(), 10)].x = txtWidth;\n if (!wrapBounds) {\n wrapBounds = {\n x: txtWidth,\n width: width\n };\n }\n else {\n wrapBounds.x = Math.min(wrapBounds.x, txtWidth);\n wrapBounds.width = Math.max(wrapBounds.width, width);\n }\n }\n return wrapBounds;\n}\n/** @private */\nexport function measureText(text, style, content, maxWidth, textValue) {\n var bounds = new Size(0, 0);\n var childNodes;\n var wrapBounds;\n var options = getTextOptions(text, maxWidth);\n text.childNodes = childNodes = wrapSvgText(options, textValue);\n text.wrapBounds = wrapBounds = wrapSvgTextAlign(options, childNodes);\n bounds.width = wrapBounds.width;\n if (text.wrapBounds.width >= maxWidth && options.textOverflow !== 'Wrap') {\n bounds.width = maxWidth;\n }\n bounds.height = childNodes.length * text.style.fontSize * 1.2;\n return bounds;\n}\n/** @private */\nexport function getDiagramElement(elementId, contentId) {\n var diagramElement;\n var element;\n if (contentId) {\n element = document.getElementById(contentId);\n }\n diagramElement = (element) ? element.querySelector('#' + elementId) : document.getElementById(elementId);\n return diagramElement;\n}\n/** @private */\nexport function createHtmlElement(elementType, attribute) {\n var element = createElement(elementType);\n setAttributeHtml(element, attribute);\n return element;\n}\n/** @private */\nexport function setAttributeHtml(element, attributes) {\n var keys = Object.keys(attributes);\n for (var i = 0; i < keys.length; i++) {\n element.setAttribute(keys[parseInt(i.toString(), 10)], attributes[keys[parseInt(i.toString(), 10)]]);\n }\n}\n/**\n * @private\n */\nexport function getAdornerLayerSvg(diagramId, index) {\n var adornerLayerSvg = null;\n var diagramElement = getDiagramElement(diagramId + index + '_diagramAdornerLayer');\n var elementcoll;\n if (diagramElement) {\n elementcoll = diagramElement.getElementsByClassName('e-adorner-layer' + index);\n adornerLayerSvg = elementcoll[0];\n }\n return adornerLayerSvg;\n}\n/** @private */\nexport function getSelectorElement(diagramId, index) {\n var adornerLayer = null;\n var adornerSvg = getAdornerLayerSvg(diagramId, index);\n if (adornerSvg) {\n adornerLayer = adornerSvg.getElementById(diagramId + '_SelectorElement');\n }\n return adornerLayer;\n}\n/** @private */\nexport function createMeasureElements() {\n var measureElement = 'measureElement';\n // eslint-disable-next-line\n if (!window[measureElement]) {\n var divElement = createHtmlElement('div', {\n id: 'measureElement',\n style: 'visibility:hidden ; height: 0px ; width: 0px; overflow: hidden;'\n });\n var text = createHtmlElement('span', { 'style': 'display:inline-block ; line-height: normal' });\n divElement.appendChild(text);\n var imageElement = void 0;\n imageElement = createHtmlElement('img', {});\n divElement.appendChild(imageElement);\n var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n svg.setAttribute('xlink', 'http://www.w3.org/1999/xlink');\n divElement.appendChild(svg);\n var element = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n svg.appendChild(element);\n var data = document.createTextNode('');\n var tSpan = document.createElementNS('http://www.w3.org/2000/svg', 'text');\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n svg.appendChild(tSpan);\n // eslint-disable-next-line\n window[measureElement] = divElement;\n // eslint-disable-next-line\n window[measureElement].usageCount = 1;\n document.body.appendChild(divElement);\n }\n else {\n // eslint-disable-next-line\n window[measureElement].usageCount += 1;\n }\n}\n/** @private */\nexport function measureImage(source, contentSize) {\n var measureElement = 'measureElement';\n // eslint-disable-next-line\n window[measureElement].style.visibility = 'visible';\n // eslint-disable-next-line\n var imageElement = window[measureElement].children[1];\n imageElement.setAttribute('src', source);\n var bounds = imageElement.getBoundingClientRect();\n var width = bounds.width;\n var height = bounds.height;\n contentSize = new Size(width, height);\n // eslint-disable-next-line\n window[measureElement].style.visibility = 'hidden';\n return contentSize;\n}\n","import { Rect } from '../primitives/rect';\nimport { identityMatrix, transformPointByMatrix, rotateMatrix } from '../primitives/matrix';\nimport { getChildNode } from './dom-util';\nimport { Size } from '../primitives/size';\n/**\n * Implements the basic functionalities\n */\n/** @private */\nexport function randomId() {\n var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz';\n var id = '';\n var num;\n for (var i = 0; i < 5; i++) {\n if ('crypto' in window && 'getRandomValues' in crypto) {\n var count = new Uint16Array(1);\n // tslint:disable-next-line:no-any\n var intCrypto = window.msCrypto || window.crypto;\n num = intCrypto.getRandomValues(count)[0] % (chars.length - 1);\n }\n else {\n num = Math.floor(Math.random() * chars.length);\n }\n if (i === 0 && num < 10) {\n i--;\n continue;\n }\n id += chars.substring(num, num + 1);\n }\n return id;\n}\n/** @private */\nexport function cornersPointsBeforeRotation(ele) {\n var bounds = new Rect();\n var top = ele.offsetY - ele.actualSize.height * ele.pivot.y;\n var bottom = ele.offsetY + ele.actualSize.height * (1 - ele.pivot.y);\n var left = ele.offsetX - ele.actualSize.width * ele.pivot.x;\n var right = ele.offsetX + ele.actualSize.width * (1 - ele.pivot.x);\n var topLeft = { x: left, y: top };\n var topCenter = { x: (left + right) / 2, y: top };\n var topRight = { x: right, y: top };\n var middleLeft = { x: left, y: (top + bottom) / 2 };\n var middleRight = { x: right, y: (top + bottom) / 2 };\n var bottomLeft = { x: left, y: bottom };\n var bottomCenter = { x: (left + right) / 2, y: bottom };\n var bottomRight = { x: right, y: bottom };\n bounds = Rect.toBounds([topLeft, topRight, bottomLeft, bottomRight]);\n return bounds;\n}\n/** @private */\nexport function rotateSize(size, angle) {\n var matrix = identityMatrix();\n rotateMatrix(matrix, angle, 0, 0);\n var topLeft = transformPointByMatrix(matrix, { x: 0, y: 0 });\n var topRight = transformPointByMatrix(matrix, { x: size.width, y: 0 });\n var bottomLeft = transformPointByMatrix(matrix, { x: 0, y: size.height });\n var bottomRight = transformPointByMatrix(matrix, { x: size.width, y: size.height });\n var minX = Math.min(topLeft.x, topRight.x, bottomLeft.x, bottomRight.x);\n var minY = Math.min(topLeft.y, topRight.y, bottomLeft.y, bottomRight.y);\n var maxX = Math.max(topLeft.x, topRight.x, bottomLeft.x, bottomRight.x);\n var maxY = Math.max(topLeft.y, topRight.y, bottomLeft.y, bottomRight.y);\n return new Size(maxX - minX, maxY - minY);\n}\n/** @private */\nexport function getBounds(element) {\n var bounds = new Rect();\n var corners;\n corners = cornersPointsBeforeRotation(element);\n var middleLeft = corners.middleLeft;\n var topCenter = corners.topCenter;\n var bottomCenter = corners.bottomCenter;\n var middleRight = corners.middleRight;\n var topLeft = corners.topLeft;\n var topRight = corners.topRight;\n var bottomLeft = corners.bottomLeft;\n var bottomRight = corners.bottomRight;\n element.corners = {\n topLeft: topLeft, topCenter: topCenter, topRight: topRight, middleLeft: middleLeft,\n middleRight: middleRight, bottomLeft: bottomLeft, bottomCenter: bottomCenter, bottomRight: bottomRight\n };\n if (element.rotateAngle !== 0 || element.parentTransform !== 0) {\n var matrix = identityMatrix();\n rotateMatrix(matrix, element.rotateAngle + element.parentTransform, element.offsetX, element.offsetY);\n element.corners.topLeft = topLeft = transformPointByMatrix(matrix, topLeft);\n element.corners.topCenter = topCenter = transformPointByMatrix(matrix, topCenter);\n element.corners.topRight = topRight = transformPointByMatrix(matrix, topRight);\n element.corners.middleLeft = middleLeft = transformPointByMatrix(matrix, middleLeft);\n element.corners.middleRight = middleRight = transformPointByMatrix(matrix, middleRight);\n element.corners.bottomLeft = bottomLeft = transformPointByMatrix(matrix, bottomLeft);\n element.corners.bottomCenter = bottomCenter = transformPointByMatrix(matrix, bottomCenter);\n element.corners.bottomRight = bottomRight = transformPointByMatrix(matrix, bottomRight);\n //Set corners based on rotate angle\n }\n bounds = Rect.toBounds([topLeft, topRight, bottomLeft, bottomRight]);\n element.corners.left = bounds.left;\n element.corners.right = bounds.right;\n element.corners.top = bounds.top;\n element.corners.bottom = bounds.bottom;\n element.corners.center = bounds.center;\n element.corners.width = bounds.width;\n element.corners.height = bounds.height;\n return bounds;\n}\n/** @private */\nexport function textAlignToString(value) {\n var state = '';\n switch (value) {\n case 'Center':\n state = 'center';\n break;\n case 'Left':\n state = 'left';\n break;\n case 'Right':\n state = 'right';\n break;\n }\n return state;\n}\n/** @private */\nexport function wordBreakToString(value) {\n var state = '';\n switch (value) {\n case 'Wrap':\n state = 'breakall';\n break;\n case 'NoWrap':\n state = 'keepall';\n break;\n case 'WrapWithOverflow':\n state = 'normal';\n break;\n case 'LineThrough':\n state = 'line-through';\n break;\n }\n return state;\n}\nexport function bBoxText(textContent, options) {\n var measureElement = 'measureElement';\n // eslint-disable-next-line\n window[measureElement].style.visibility = 'visible';\n // eslint-disable-next-line\n var svg = window[measureElement].children[2];\n var text = getChildNode(svg)[1];\n text.textContent = textContent;\n text.setAttribute('style', 'font-size:' + options.fontSize + 'px; font-family:'\n + options.fontFamily + ';font-weight:' + (options.bold ? 'bold' : 'normal'));\n var bBox = text.getBBox().width;\n // eslint-disable-next-line\n window[measureElement].style.visibility = 'hidden';\n return bBox;\n}\n/** @private */\nexport function middleElement(i, j) {\n var m = 0;\n m = (i + j) / 2;\n return m;\n}\n/** @private */\nexport function whiteSpaceToString(value, wrap) {\n if (wrap === 'NoWrap' && value === 'PreserveAll') {\n return 'pre';\n }\n var state = '';\n switch (value) {\n case 'CollapseAll':\n state = 'nowrap';\n break;\n case 'CollapseSpace':\n state = 'pre-line';\n break;\n case 'PreserveAll':\n state = 'pre-wrap';\n break;\n }\n return state;\n}\n/** @private */\nexport function rotatePoint(angle, pivotX, pivotY, point) {\n if (angle !== 0) {\n var matrix = identityMatrix();\n rotateMatrix(matrix, angle, pivotX, pivotY);\n return transformPointByMatrix(matrix, point);\n }\n return point;\n}\n/** @private */\nexport function getOffset(topLeft, obj) {\n var offX = topLeft.x + obj.desiredSize.width * obj.pivot.x;\n var offY = topLeft.y + obj.desiredSize.height * obj.pivot.y;\n return {\n x: offX, y: offY\n };\n}\n","import { RotateTransform, ElementAction } from '../../enum/enum';\nimport { Size } from '../../primitives/size';\nimport { Rect } from '../../primitives/rect';\nimport { getBounds } from '../../utility/base-util';\n/**\n * DiagramElement module defines the basic unit of diagram\n */\nvar DrawingElement = /** @class */ (function () {\n function DrawingElement() {\n /**\n * Sets/Gets the reference point of the element\n * ```html\n *
      \n * ```\n * ```typescript\n * let stackPanel: StackPanel = new StackPanel();\n * stackPanel.offsetX = 300; stackPanel.offsetY = 200;\n * stackPanel.width = 100; stackPanel.height = 100;\n * stackPanel.style.fill = 'red';\n * stackPanel.pivot = { x: 0.5, y: 0.5 };\n * let diagram: Diagram = new Diagram({\n * ...\n * basicElements: [stackPanel],\n * ...\n * });\n * diagram.appendTo('#diagram');\n * ```\n */\n this.pivot = { x: 0.5, y: 0.5 };\n this.rotateValue = { x: 0, y: 0, angle: 0 };\n /**\n * Sets or gets whether the content of the element needs to be measured\n */\n this.isDirt = true;\n /**\n * Sets/Gets the x-coordinate of the element\n */\n this.offsetX = 0;\n /**\n * Sets/Gets the y-coordinate of the element\n */\n this.offsetY = 0;\n /**\n * Set the corner of the element\n */\n this.cornerRadius = 0;\n /**\n * Sets/Gets the minimum height of the element\n */\n this.minHeight = undefined;\n /**\n * Sets/Gets the minimum width of the element\n */\n this.minWidth = undefined;\n /**\n * Sets/Gets the maximum width of the element\n */\n this.maxWidth = undefined;\n /**\n * Sets/Gets the maximum height of the element\n */\n this.maxHeight = undefined;\n /**\n * Sets/Gets the width of the element\n */\n this.width = undefined;\n /**\n * Sets/Gets the height of the element\n */\n this.height = undefined;\n /**\n * Sets/Gets how the element has to be horizontally arranged with respect to its immediate parent\n * * Stretch - Stretches the diagram element throughout its immediate parent\n * * Left - Aligns the diagram element at the left of its immediate parent\n * * Right - Aligns the diagram element at the right of its immediate parent\n * * Center - Aligns the diagram element at the center of its immediate parent\n * * Auto - Aligns the diagram element based on the characteristics of its immediate parent\n */\n this.horizontalAlignment = 'Auto';\n /**\n * Sets/Gets how the element has to be vertically arranged with respect to its immediate parent\n * * Stretch - Stretches the diagram element throughout its immediate parent\n * * Top - Aligns the diagram element at the top of its immediate parent\n * * Bottom - Aligns the diagram element at the bottom of its immediate parent\n * * Center - Aligns the diagram element at the center of its immediate parent\n * * Auto - Aligns the diagram element based on the characteristics of its immediate parent\n */\n this.verticalAlignment = 'Auto';\n /**\n * Sets or gets whether the content of the element to be visible\n */\n this.visible = true;\n /**\n * Sets/Gets the rotate angle of the element\n */\n this.rotateAngle = 0;\n /**\n * Sets/Gets the margin of the element\n */\n this.margin = { left: 0, right: 0, top: 0, bottom: 0 };\n /**\n * Sets whether the element has to be aligned with respect to a point/with respect to its immediate parent\n * * Point - Diagram elements will be aligned with respect to a point\n * * Object - Diagram elements will be aligned with respect to its immediate parent\n */\n this.relativeMode = 'Point';\n /**\n * Sets whether the element has to be transformed based on its parent or not\n * * Self - Sets the transform type as Self\n * * Parent - Sets the transform type as Parent\n */\n /** @private */\n this.transform = RotateTransform.Self | RotateTransform.Parent;\n /**\n * Sets the style of the element\n */\n this.style = { fill: 'white', strokeColor: 'black', opacity: 1, strokeWidth: 1 };\n /**\n * Gets the minimum size that is required by the element\n */\n this.desiredSize = new Size();\n /**\n * Gets the size that the element will be rendered\n */\n this.actualSize = new Size();\n /**\n * Gets the rotate angle that is set to the immediate parent of the element\n */\n this.parentTransform = 0;\n /** @private */\n this.preventContainer = false;\n /**\n * Gets/Sets the boundary of the element\n */\n this.bounds = new Rect(0, 0, 0, 0);\n /**\n * Defines whether the element has to be measured or not\n */\n this.staticSize = false;\n /**\n * check whether the element is rect or not\n */\n /** @private */\n this.isRectElement = false;\n /** @private */\n this.isCalculateDesiredSize = true;\n /**\n * Defines whether the element is group or port\n */\n /** @private */\n this.elementActions = ElementAction.None;\n //private variables\n this.position = undefined;\n this.unitMode = undefined;\n /** @private */\n this.float = false;\n this.floatingBounds = undefined;\n }\n // public constructor() {\n // this.id = randomId();\n // }\n /**\n * Sets the offset of the element with respect to its parent\n * @param x\n * @param y\n * @param mode\n */\n DrawingElement.prototype.setOffsetWithRespectToBounds = function (x, y, mode) {\n this.unitMode = mode;\n this.position = { x: x, y: y };\n };\n /**\n * Gets the position of the element with respect to its parent\n * @param size\n */\n DrawingElement.prototype.getAbsolutePosition = function (size) {\n if (this.position !== undefined) {\n if (this.unitMode === 'Absolute') {\n return this.position;\n }\n else {\n return {\n x: this.position.x * size.width, y: this.position.y * size.height\n };\n }\n }\n return undefined;\n };\n Object.defineProperty(DrawingElement.prototype, \"outerBounds\", {\n get: function () {\n return this.floatingBounds || this.bounds;\n },\n /**\n * used to set the outer bounds value\n * @private\n */\n set: function (bounds) {\n this.floatingBounds = bounds;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Measures the minimum space that the element requires\n * @param availableSize\n */\n DrawingElement.prototype.measure = function (availableSize) {\n var width = this.width !== undefined ? this.width : (availableSize.width || 0) - this.margin.left - this.margin.right;\n var height = this.height !== undefined ? this.height : (availableSize.height || 0) - this.margin.top - this.margin.bottom;\n this.desiredSize = new Size(width, height);\n if (this.isCalculateDesiredSize) {\n this.desiredSize = this.validateDesiredSize(this.desiredSize, availableSize);\n }\n return this.desiredSize;\n };\n /**\n * Arranges the element\n * @param desiredSize\n */\n DrawingElement.prototype.arrange = function (desiredSize) {\n this.actualSize = desiredSize;\n this.updateBounds();\n return this.actualSize;\n };\n /**\n * Updates the bounds of the element\n */\n DrawingElement.prototype.updateBounds = function () {\n this.bounds = getBounds(this);\n };\n /**\n * Validates the size of the element with respect to its minimum and maximum size\n * @param desiredSize\n * @param availableSize\n */\n DrawingElement.prototype.validateDesiredSize = function (desiredSize, availableSize) {\n //Empty canvas\n if (this.isRectElement && !this.width && !this.minWidth && !this.maxWidth) {\n desiredSize.width = 50;\n }\n if (this.isRectElement && !this.height && !this.minHeight && !this.maxHeight) {\n desiredSize.height = 50;\n }\n if (desiredSize === undefined || this.width !== undefined &&\n this.height !== undefined) {\n desiredSize = desiredSize || new Size();\n desiredSize.width = this.width === undefined ? (availableSize.width || 0)\n - this.margin.left - this.margin.right : this.width;\n desiredSize.height = this.height === undefined ? (availableSize.height || 0)\n - this.margin.top - this.margin.bottom : this.height;\n }\n //Considering min values\n if (this.minWidth !== undefined) {\n desiredSize.width = Math.max(desiredSize.width, this.minWidth);\n }\n if (this.minHeight !== undefined) {\n desiredSize.height = Math.max(desiredSize.height, this.minHeight);\n }\n //Considering max values\n if (this.maxWidth !== undefined) {\n desiredSize.width = Math.min(desiredSize.width, this.maxWidth);\n }\n if (this.maxHeight !== undefined) {\n desiredSize.height = Math.min(desiredSize.height, this.maxHeight);\n }\n return desiredSize;\n };\n return DrawingElement;\n}());\nexport { DrawingElement };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { Size } from '../../primitives/size';\nimport { DrawingElement } from './drawing-element';\nimport { measureText } from './../../utility/dom-util';\n/**\n * TextElement is used to display text/annotations\n */\nvar TextElement = /** @class */ (function (_super) {\n __extends(TextElement, _super);\n /**\n * set the id for each element\n */\n function TextElement() {\n var _this = _super.call(this) || this;\n /**\n * sets or gets the image source\n */\n _this.textContent = '';\n /** @private */\n _this.canMeasure = true;\n /** @private */\n _this.canConsiderBounds = true;\n /** @private */\n _this.doWrap = true;\n _this.textNodes = [];\n /**\n * Defines the appearance of the text element\n */\n _this.style = {\n color: 'black', fill: 'transparent', strokeColor: 'black',\n strokeWidth: 1, fontFamily: 'Arial', fontSize: 12, whiteSpace: 'CollapseSpace',\n textWrapping: 'WrapWithOverflow', textAlign: 'Center', italic: false, bold: false,\n textDecoration: 'None', strokeDashArray: '', opacity: 1,\n textOverflow: 'Wrap'\n };\n _this.style.fill = 'transparent';\n _this.style.strokeColor = 'transparent';\n return _this;\n }\n Object.defineProperty(TextElement.prototype, \"content\", {\n /**\n * gets the content for the text element\n */\n get: function () {\n return this.textContent;\n },\n /**\n * sets the content for the text element\n */\n set: function (value) {\n if (this.textContent !== value) {\n this.textContent = value;\n this.isDirt = true;\n this.doWrap = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TextElement.prototype, \"childNodes\", {\n /**\n * sets the content for the text element\n */\n get: function () {\n return this.textNodes;\n },\n /**\n * gets the content for the text element\n */\n set: function (value) {\n this.textNodes = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TextElement.prototype, \"wrapBounds\", {\n /**\n * gets the wrapBounds for the text\n */\n get: function () {\n return this.textWrapBounds;\n },\n /**\n * sets the wrapBounds for the text\n */\n set: function (value) {\n this.textWrapBounds = value;\n },\n enumerable: true,\n configurable: true\n });\n /** @private */\n TextElement.prototype.refreshTextElement = function () {\n this.isDirt = true;\n };\n /**\n * Measures the minimum size that is required for the text element\n * @param availableSize\n */\n TextElement.prototype.measure = function (availableSize) {\n var size;\n if (this.isDirt && this.canMeasure) {\n size = measureText(this, this.style, this.content, this.width || availableSize.width);\n }\n else {\n size = this.desiredSize;\n }\n if (this.width === undefined || this.height === undefined) {\n this.desiredSize = new Size(size.width, size.height);\n }\n else {\n this.desiredSize = new Size(this.width, this.height);\n }\n this.desiredSize = this.validateDesiredSize(this.desiredSize, availableSize);\n return this.desiredSize;\n };\n /**\n * Arranges the text element\n * @param desiredSize\n */\n TextElement.prototype.arrange = function (desiredSize) {\n if (desiredSize.width !== this.actualSize.width || desiredSize.height !== this.actualSize.height || this.isDirt) {\n this.doWrap = true;\n }\n this.actualSize = desiredSize;\n this.updateBounds();\n this.isDirt = false;\n return this.actualSize;\n };\n return TextElement;\n}(DrawingElement));\nexport { TextElement };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { DrawingElement } from '../elements/drawing-element';\nimport { Size } from '../../primitives/size';\nimport { Rect } from '../../primitives/rect';\nimport { rotatePoint, getOffset } from '../../utility/base-util';\n/**\n * Container module is used to group related objects\n */\nvar Container = /** @class */ (function (_super) {\n __extends(Container, _super);\n function Container() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n //private members \n _this.desiredBounds = undefined;\n /** @private */\n _this.measureChildren = true;\n /** @private */\n _this.prevRotateAngle = 0;\n return _this;\n }\n /**\n * returns whether the container has child elements or not\n */\n Container.prototype.hasChildren = function () {\n if (this.children !== undefined && this.children.length > 0) {\n return true;\n }\n return false;\n };\n /**\n * Measures the minimum space that the container requires\n *\n * @param availableSize\n */\n Container.prototype.measure = function (availableSize) {\n // measure the element and find the desired size\n this.desiredBounds = undefined;\n var desired = undefined;\n var child;\n var center = { x: 0, y: 0 };\n var y;\n var x;\n var childBounds;\n if (this.hasChildren()) {\n //Measuring the children\n for (var i = 0; i < this.children.length; i++) {\n child = this.children[parseInt(i.toString(), 10)];\n if (child.horizontalAlignment === 'Stretch' && !availableSize.width) {\n availableSize.width = child.bounds.width;\n }\n if (child.verticalAlignment === 'Stretch' && !availableSize.height) {\n availableSize.height = child.bounds.height;\n }\n var force = child.horizontalAlignment === 'Stretch' || child.verticalAlignment === 'Stretch';\n if (this.measureChildren || force || (child instanceof Container && child.measureChildren !== undefined)) {\n child.measure(availableSize);\n }\n childBounds = this.GetChildrenBounds(child);\n if (child.horizontalAlignment !== 'Stretch' && child.verticalAlignment !== 'Stretch') {\n if (this.desiredBounds === undefined) {\n this.desiredBounds = childBounds;\n }\n else {\n this.desiredBounds.uniteRect(childBounds);\n }\n }\n else if (this.actualSize && !this.actualSize.width && !this.actualSize.height &&\n !child.preventContainer && child.horizontalAlignment === 'Stretch' && child.verticalAlignment === 'Stretch') {\n if (this.desiredBounds === undefined) {\n this.desiredBounds = child.bounds;\n }\n else {\n this.desiredBounds.uniteRect(child.bounds);\n }\n }\n }\n if (this.desiredBounds !== undefined && this.rotateAngle !== 0) {\n var offsetPt = {\n x: this.desiredBounds.x + this.desiredBounds.width * this.pivot.x,\n y: this.desiredBounds.y + this.desiredBounds.height * this.pivot.y\n };\n var newPoint = rotatePoint(this.rotateAngle, undefined, undefined, offsetPt);\n this.desiredBounds.x = newPoint.x - this.desiredBounds.width * this.pivot.x;\n this.desiredBounds.y = newPoint.y - this.desiredBounds.height * this.pivot.y;\n }\n if (this.desiredBounds) {\n desired = new Size(this.desiredBounds.width, this.desiredBounds.height);\n }\n }\n desired = this.validateDesiredSize(desired, availableSize);\n this.stretchChildren(desired);\n this.desiredSize = desired;\n return desired;\n };\n /**\n * Arranges the container and its children\n * @param desiredSize\n */\n Container.prototype.arrange = function (desiredSize) {\n var child;\n var bounds;\n var childBounds = this.desiredBounds;\n if (childBounds) {\n var x = this.offsetX;\n var y = this.offsetY;\n this.offsetX = childBounds.x + childBounds.width * this.pivot.x;\n this.offsetY = childBounds.y + childBounds.height * this.pivot.y;\n // container has rotateAngle\n if (this.hasChildren()) {\n //Measuring the children\n for (var i = 0; i < this.children.length; i++) {\n child = this.children[parseInt(i.toString(), 10)];\n var arrange = false;\n if (child.horizontalAlignment === 'Stretch') {\n child.offsetX = this.offsetX;\n child.parentTransform = this.parentTransform + this.rotateAngle;\n arrange = true;\n }\n if (child.verticalAlignment === 'Stretch') {\n child.offsetY = this.offsetY;\n child.parentTransform = this.parentTransform + this.rotateAngle;\n arrange = true;\n }\n if (arrange || this.measureChildren || (child instanceof Container && child.measureChildren !== undefined)) {\n child.arrange(child.desiredSize);\n }\n }\n }\n }\n this.actualSize = desiredSize;\n this.updateBounds();\n this.prevRotateAngle = this.rotateAngle;\n return desiredSize;\n };\n //protected methods\n /**\n * Stretches the child elements based on the size of the container\n * @param size\n */\n Container.prototype.stretchChildren = function (size) {\n if (this.hasChildren()) {\n for (var _i = 0, _a = this.children; _i < _a.length; _i++) {\n var child = _a[_i];\n if (child.horizontalAlignment === 'Stretch' || child.desiredSize.width === undefined) {\n child.desiredSize.width = size.width - child.margin.left - child.margin.right;\n }\n if (child.verticalAlignment === 'Stretch' || child.desiredSize.height === undefined) {\n child.desiredSize.height = size.height - child.margin.top - child.margin.bottom;\n }\n if (child instanceof Container) {\n child.stretchChildren(child.desiredSize);\n }\n }\n }\n };\n /**\n * Finds the offset of the child element with respect to the container\n * @param child\n * @param center\n */\n Container.prototype.findChildOffsetFromCenter = function (child, center) {\n var topLeft = { x: center.x - child.desiredSize.width / 2, y: center.y - child.desiredSize.height / 2 };\n var offset = getOffset(topLeft, child);\n //Rotate based on child rotate angle\n offset = rotatePoint(child.rotateAngle, center.x, center.y, offset);\n //Rotate based on parent pivot\n offset = rotatePoint(this.rotateAngle + this.parentTransform, this.offsetX, this.offsetY, offset);\n child.offsetX = offset.x;\n child.offsetY = offset.y;\n };\n //private methods - check its need\n Container.prototype.GetChildrenBounds = function (child) {\n var childBounds;\n var childSize;\n childSize = child.desiredSize.clone();\n var diffAngle = child.rotateAngle - this.rotateAngle;\n var refPoint = { x: child.offsetX, y: child.offsetY };\n var left = refPoint.x - childSize.width * child.pivot.x;\n var top = refPoint.y - childSize.height * child.pivot.y;\n var right = left + childSize.width;\n var bottom = top + childSize.height;\n var topLeft = { x: left, y: top };\n var topRight = { x: right, y: top };\n var bottomLeft = { x: left, y: bottom };\n var bottomRight = { x: right, y: bottom };\n topLeft = rotatePoint(child.rotateAngle, child.offsetX, child.offsetY, topLeft);\n topRight = rotatePoint(child.rotateAngle, child.offsetX, child.offsetY, topRight);\n bottomLeft = rotatePoint(child.rotateAngle, child.offsetX, child.offsetY, bottomLeft);\n bottomRight = rotatePoint(child.rotateAngle, child.offsetX, child.offsetY, bottomRight);\n if (this.rotateAngle !== 0) {\n topLeft = rotatePoint(-this.rotateAngle, undefined, undefined, topLeft);\n topRight = rotatePoint(-this.rotateAngle, undefined, undefined, topRight);\n bottomLeft = rotatePoint(-this.rotateAngle, undefined, undefined, bottomLeft);\n bottomRight = rotatePoint(-this.rotateAngle, undefined, undefined, bottomRight);\n }\n return Rect.toBounds([topLeft, topRight, bottomLeft, bottomRight]);\n };\n return Container;\n}(DrawingElement));\nexport { Container };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, ChildProperty, Collection, Complex, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { Container } from '@syncfusion/ej2-drawings';\nimport { Point } from '@syncfusion/ej2-drawings';\nimport { PdfAnnotationBase, PdfFormFieldBase } from './pdf-annotation';\n/**\n * Defines the size and position of selected items and defines the appearance of selector\n *\n * @hidden\n */\nvar Selector = /** @class */ (function (_super) {\n __extends(Selector, _super);\n function Selector() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Initializes the UI of the container\n *\n * @param {any} diagram - diagram element.\n * @returns {Container} - Returns the container element.\n */\n // eslint-disable-next-line\n Selector.prototype.init = function (diagram) {\n var container = new Container();\n container.measureChildren = false;\n container.children = [];\n if (this.formFields && this.formFields.length > 0) {\n for (var i = 0; i < this.formFields.length; i++) {\n var node = diagram.pdfViewer.nameTable[this.formFields[parseInt(i.toString(), 10)].id];\n var wrapper = node.wrapper;\n container.children.push(wrapper);\n }\n }\n else if (this.annotations) {\n for (var i = 0; i < this.annotations.length; i++) {\n if (!isNullOrUndefined(this.annotations[parseInt(i.toString(), 10)])) {\n var node = diagram.pdfViewer.nameTable[this.annotations[parseInt(i.toString(), 10)].id];\n var wrapper = node.wrapper;\n container.children.push(wrapper);\n }\n }\n }\n this.wrapper = container;\n return container;\n };\n __decorate([\n Property(null)\n ], Selector.prototype, \"wrapper\", void 0);\n __decorate([\n Collection([], PdfAnnotationBase)\n ], Selector.prototype, \"annotations\", void 0);\n __decorate([\n Collection([], PdfFormFieldBase)\n ], Selector.prototype, \"formFields\", void 0);\n __decorate([\n Property()\n ], Selector.prototype, \"width\", void 0);\n __decorate([\n Property()\n ], Selector.prototype, \"height\", void 0);\n __decorate([\n Property(0)\n ], Selector.prototype, \"rotateAngle\", void 0);\n __decorate([\n Property(0)\n ], Selector.prototype, \"offsetX\", void 0);\n __decorate([\n Property(0)\n ], Selector.prototype, \"offsetY\", void 0);\n __decorate([\n Complex({ x: 0.5, y: 0.5 }, Point)\n ], Selector.prototype, \"pivot\", void 0);\n return Selector;\n}(ChildProperty));\nexport { Selector };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { Size } from '../../primitives/size';\nimport { DrawingElement } from './drawing-element';\nimport { Rect } from '../../primitives/rect';\nimport { measurePath } from './../../utility/dom-util';\nimport { processPathData, splitArrayCollection, transformPath, getPathString } from '../../utility/path-util';\n/**\n * PathElement takes care of how to align the path based on offsetX and offsetY\n */\nvar PathElement = /** @class */ (function (_super) {\n __extends(PathElement, _super);\n /**\n * set the id for each element\n */\n function PathElement() {\n var _this = _super.call(this) || this;\n /**\n * Gets or sets the geometry of the path element\n */\n _this.pathData = '';\n /**\n * Gets/Sets whether the path has to be transformed to fit the given x,y, width, height\n */\n _this.transformPath = true;\n /**\n * Gets/Sets the equivalent path, that will have the origin as 0,0\n */\n _this.absolutePath = '';\n /** @private */\n _this.canMeasurePath = false;\n //Private variables\n /** @private */\n _this.absoluteBounds = new Rect();\n return _this;\n }\n Object.defineProperty(PathElement.prototype, \"data\", {\n /**\n * Gets the geometry of the path element\n */\n get: function () {\n return this.pathData;\n },\n /**\n * Sets the geometry of the path element\n */\n set: function (value) {\n if (this.pathData !== value) {\n this.pathData = value;\n this.isDirt = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Measures the minimum space that is required to render the element\n * @param availableSize\n */\n PathElement.prototype.measure = function (availableSize) {\n //Performance issue - Avoiding measuring the connector path\n if (this.staticSize && this.width !== undefined && this.height !== undefined) {\n this.absoluteBounds = new Rect(this.offsetX - this.width * this.pivot.x, this.offsetY - this.height * this.pivot.y, this.width, this.height);\n }\n else if (this.isDirt && (this.transformPath || (this.width === undefined || this.height === undefined))\n && (!this.absoluteBounds || this.absoluteBounds.height === 0) || this.canMeasurePath) {\n //Measure the element only whent the path data is changed/ size is not specified\n this.absoluteBounds = measurePath(this.data ? this.data : '');\n }\n if (this.width === undefined) {\n this.desiredSize = new Size(this.absoluteBounds.width, this.height || this.absoluteBounds.height);\n }\n else if (this.height === undefined) {\n this.desiredSize = new Size(this.width || this.absoluteBounds.width, this.absoluteBounds.height);\n }\n else {\n this.desiredSize = new Size(this.width, this.height);\n }\n this.desiredSize = this.validateDesiredSize(this.desiredSize, availableSize);\n this.canMeasurePath = false;\n return this.desiredSize;\n };\n /**\n * Arranges the path element\n * @param desiredSize\n */\n PathElement.prototype.arrange = function (desiredSize) {\n if (this.isDirt || this.actualSize.width !== desiredSize.width || this.actualSize.height !== desiredSize.height) {\n this.isDirt = true;\n this.absolutePath = this.updatePath(this.data, this.absoluteBounds, desiredSize);\n if (!this.staticSize) {\n this.points = null;\n }\n }\n this.actualSize = this.desiredSize;\n this.updateBounds();\n this.isDirt = false;\n return this.actualSize;\n };\n /**\n * Translates the path to 0,0 and scales the path based on the actual size\n * @param pathData\n * @param bounds\n * @param actualSize\n */\n PathElement.prototype.updatePath = function (pathData, bounds, actualSize) {\n var isScale = false;\n var newPathString = '';\n var scaleX = -bounds.x;\n var scaleY = -bounds.y;\n var arrayCollection = [];\n if (actualSize.width !== bounds.width || actualSize.height !== bounds.height) {\n scaleX = actualSize.width / Number(bounds.width ? bounds.width : 1);\n scaleY = actualSize.height / Number(bounds.height ? bounds.height : 1);\n isScale = true;\n }\n arrayCollection = processPathData(pathData);\n arrayCollection = splitArrayCollection(arrayCollection);\n if ((isScale || this.isDirt) && this.transformPath) {\n newPathString = transformPath(arrayCollection, scaleX, scaleY, isScale, bounds.x, bounds.y, 0, 0);\n }\n else {\n newPathString = getPathString(arrayCollection);\n }\n isScale = false;\n return newPathString;\n };\n return PathElement;\n}(DrawingElement));\nexport { PathElement };\n","import { PathElement, Rect, Point, Size, RotateTransform, TextElement, randomId, identityMatrix, rotateMatrix, transformPointByMatrix, intersect3 } from '@syncfusion/ej2-drawings';\nimport { setElementStype, findPointsLength } from './drawing-util';\nimport { isNullOrUndefined } from '@syncfusion/ej2-base';\n/**\n * @private\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @param {PointModel[]} points - Specified the annotation points.\n * @returns {PointModel[]} - Returns the annotation points model array.\n */\nexport function getConnectorPoints(obj, points) {\n points = obj.vertexPoints;\n var newPoints = points.slice(0);\n if (newPoints && newPoints.length > 0) {\n obj.sourcePoint = newPoints[0];\n obj.targetPoint = newPoints[newPoints.length - 1];\n }\n return newPoints;\n}\n/**\n * @private\n * @param {PdfAnnotationBaseModel} connector - Specified the annotation connector model.\n * @param {PointModel[]} points - Specified the annotation points.\n * @returns {string} - Returns the annotation path value.\n */\nexport function getSegmentPath(connector, points) {\n var path = '';\n var getPt;\n var pts = [];\n var j = 0;\n while (j < points.length) {\n pts.push({ x: points[parseInt(j.toString(), 10)].x, y: points[parseInt(j.toString(), 10)].y });\n j++;\n }\n pts = clipDecorators(connector, pts);\n for (var k = 0; k < pts.length; k++) {\n getPt = pts[parseInt(k.toString(), 10)];\n if (k === 0) {\n path = 'M' + getPt.x + ' ' + getPt.y;\n }\n if (k > 0) {\n path += ' ' + 'L' + getPt.x + ' ' + getPt.y;\n }\n }\n return path;\n}\n/**\n * @private\n * @param {PdfAnnotationBaseModel} connector - Specified the annotation connector model.\n * @param {PointModel[]} points - Specified the annotation points.\n * @param {PathElement} element - Specified the annotation element.\n * @returns {PathElement} - Returns the annotation path element.\n */\nexport function updateSegmentElement(connector, points, element) {\n var bounds = new Rect();\n var segmentPath = getSegmentPath(connector, points);\n bounds = Rect.toBounds(points);\n element.width = bounds.width;\n element.height = bounds.height;\n element.offsetX = bounds.x + element.width / 2;\n element.offsetY = bounds.y + element.height / 2;\n element.data = segmentPath;\n if (connector.wrapper) {\n connector.wrapper.offsetX = element.offsetX;\n connector.wrapper.offsetY = element.offsetY;\n connector.wrapper.width = bounds.width;\n connector.wrapper.height = bounds.height;\n }\n return element;\n}\n/**\n * @private\n * @param {PdfAnnotationBaseModel} connector - Specified the annotation connector model.\n * @param {PathElement} segmentElement - Specified the annotation segment element.\n * @returns {PathElement} - Returns the annotation path element.\n */\nexport function getSegmentElement(connector, segmentElement) {\n var points = [];\n points = getConnectorPoints(connector);\n segmentElement.staticSize = true;\n segmentElement = updateSegmentElement(connector, points, segmentElement);\n setElementStype(connector, segmentElement);\n return segmentElement;\n}\n/**\n * @private\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @param {DrawingElement} element - Specified the annotation drawing element.\n * @param {PointModel} pt - Specified the annotation point.\n * @param {PointModel} adjacentPoint - Specified the annotation adjacent point.\n * @param {boolean} isSource - Specified the is source value or not.\n * @returns {void}\n */\nexport function updateDecoratorElement(obj, element, pt, adjacentPoint, isSource) {\n element.offsetX = pt.x;\n element.offsetY = pt.y;\n var angle = Point.findAngle(pt, adjacentPoint);\n var getPath = getDecoratorShape(isSource ? obj.sourceDecoraterShapes : obj.taregetDecoraterShapes);\n var thickness = 0;\n var size;\n if (obj.shapeAnnotationType === 'LineWidthArrowHead') {\n thickness = obj.thickness;\n size = new Size(thickness * 12, thickness * 12);\n }\n else {\n thickness = obj.thickness <= 5 ? 5 : obj.thickness;\n size = new Size(thickness * 2, thickness * 2);\n }\n element.transform = RotateTransform.Self;\n setElementStype(obj, element);\n element.style.fill = (obj.fillColor !== 'tranparent') ? obj.fillColor : 'white';\n element.rotateAngle = angle;\n element.data = getPath;\n element.canMeasurePath = true;\n element.width = size.width;\n element.height = size.height;\n if (obj.sourceDecoraterShapes === 'Butt') {\n element.width = size.width - 10;\n element.height = size.height + 10;\n }\n}\n/**\n * @private\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @param {PointModel} offsetPoint - Specified the annotation offset point.\n * @param {PointModel} adjacentPoint - Specified the annotation adjacent point.\n * @param {boolean} isSource - Specified the is source value or not.\n * @returns {PathElement} - Returns the annotation path element.\n */\nexport function getDecoratorElement(obj, offsetPoint, adjacentPoint, isSource) {\n var decEle = new PathElement();\n updateDecoratorElement(obj, decEle, offsetPoint, adjacentPoint, isSource);\n return decEle;\n}\n/**\n * @private\n * @param {PdfAnnotationBaseModel} connector - Specified the annotation object.\n * @param {PointModel[]} pts - Specified the annotation point model array.\n * @returns {PointModel[]} - Returns the annotation point model array.\n */\nexport function clipDecorators(connector, pts) {\n pts[0] = clipDecorator(connector, pts, true);\n pts[pts.length - 1] = clipDecorator(connector, pts, false);\n return pts;\n}\n/**\n * @private\n * @param {PdfAnnotationBaseModel} connector - Specified the annotation connector object.\n * @param {PointModel[]} points - Specified the annotation offset point.\n * @param {boolean} isSource - Specified the is source value or not.\n * @returns {PointModel} - Returns the annotation point model.\n */\nexport function clipDecorator(connector, points, isSource) {\n var point = { x: 0, y: 0 };\n var start = { x: 0, y: 0 };\n var end = { x: 0, y: 0 };\n var length = points.length;\n start = !isSource ? points[length - 1] : points[0];\n end = !isSource ? points[length - 2] : points[1];\n var len = Point.distancePoints(start, end);\n len = (len === 0) ? 1 : len;\n var width = connector.thickness;\n point.x = (Math.round(start.x + width * (end.x - start.x) / len));\n point.y = (Math.round(start.y + width * (end.y - start.y) / len));\n var strokeWidth = 1;\n point = Point.adjustPoint(point, end, true, (strokeWidth / 2));\n return point;\n}\n/**\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @param {PointModel[]} points - Specified the annotation point model array.\n * @param {MeasureAnnotation} measure - Specified the measure annotation object.\n * @param {PdfViewer} pdfviewer - Specified the pdfviewer element.\n * @hidden\n * @returns {TextElement[]} - Returns the text element collections.\n */\n// eslint-disable-next-line max-len\nexport function initDistanceLabel(obj, points, measure, pdfviewer) {\n var labels = [];\n var angle = Point.findAngle(points[0], points[1]);\n var textele = textElement(obj, angle);\n if (!pdfviewer.enableImportAnnotationMeasurement && obj.notes && obj.notes !== '') {\n textele.content = obj.notes;\n }\n else {\n textele.content = measure.setConversion(findPointsLength([points[0], points[1]]) * measure.pixelToPointFactor, obj);\n }\n textele.rotateValue = { y: -10, angle: angle };\n if (obj.enableShapeLabel === true) {\n textele.style.strokeColor = obj.labelBorderColor;\n textele.style.fill = obj.labelFillColor;\n textele.style.fontSize = obj.fontSize;\n textele.style.color = obj.fontColor;\n textele.style.fontFamily = obj.fontFamily;\n }\n labels.push(textele);\n return labels;\n}\n/**\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @param {PointModel[]} points - Specified the annotation point model array.\n * @param {MeasureAnnotation} measure - Specified the measure annotation object.\n * @hidden\n * @returns {string} - Returns the distance value.\n */\nexport function updateDistanceLabel(obj, points, measure) {\n var distance;\n for (var i = 0; i < obj.wrapper.children.length; i++) {\n var textElement_1 = obj.wrapper.children[parseInt(i.toString(), 10)];\n if (textElement_1 && !isNullOrUndefined(textElement_1.content)) {\n distance = measure.setConversion(findPointsLength([points[0], points[1]]) * measure.pixelToPointFactor, obj);\n textElement_1.content = distance;\n textElement_1.childNodes[0].text = textElement_1.content;\n textElement_1.refreshTextElement();\n }\n }\n return distance;\n}\n/**\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @param {MeasureAnnotation} measure - Specified the measure annotation object.\n * @hidden\n * @returns {string} - Returns the radius label value.\n */\nexport function updateRadiusLabel(obj, measure) {\n var radius;\n for (var i = 0; i < obj.wrapper.children.length; i++) {\n var textElement_2 = obj.wrapper.children[parseInt(i.toString(), 10)];\n if (textElement_2 && !isNullOrUndefined(textElement_2.content)) {\n radius = measure.setConversion((obj.bounds.width / 2) * measure.pixelToPointFactor, obj);\n textElement_2.content = radius;\n if (textElement_2.childNodes.length === 2) {\n textElement_2.childNodes[0].text = radius;\n textElement_2.childNodes.splice(textElement_2.childNodes.length - 1, 1);\n }\n else {\n textElement_2.childNodes[0].text = radius;\n }\n textElement_2.refreshTextElement();\n }\n }\n return radius;\n}\n/**\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @param {PointModel[]} points - Specified the annotation point model array.\n * @param {MeasureAnnotation} measure - Specified the measure annotation object.\n * @param {PdfViewer} pdfviewer - Specified the pdfviewer element.\n * @hidden\n * @returns {TextElement[]} - Returns the text element collections.\n */\n// eslint-disable-next-line max-len\nexport function initPerimeterLabel(obj, points, measure, pdfviewer) {\n var labels = [];\n var angle = Point.findAngle(points[0], points[1]);\n var textele = textElement(obj, angle);\n if (!pdfviewer.enableImportAnnotationMeasurement && obj.notes && obj.notes !== '') {\n textele.content = obj.notes;\n }\n else {\n textele.content = measure.calculatePerimeter(obj);\n }\n if (obj.enableShapeLabel === true) {\n textele.style.strokeColor = obj.labelBorderColor;\n textele.style.fill = obj.labelFillColor;\n textele.style.fontSize = obj.fontSize;\n textele.style.color = obj.fontColor;\n textele.style.fontFamily = obj.fontFamily;\n }\n textele.rotateValue = { y: -10, angle: angle };\n labels.push(textele);\n return labels;\n}\n/**\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @param {PointModel[]} points - Specified the annotation point model array.\n * @param {MeasureAnnotation} measure - Specified the measure annotation object.\n * @hidden\n * @returns {string} - Returns the perimeter label value.\n */\nexport function updatePerimeterLabel(obj, points, measure) {\n var perimeter;\n for (var i = 0; i < obj.wrapper.children.length; i++) {\n var textElement_3 = obj.wrapper.children[parseInt(i.toString(), 10)];\n if (textElement_3 && !isNullOrUndefined(textElement_3.content)) {\n perimeter = measure.calculatePerimeter(obj);\n textElement_3.content = perimeter;\n textElement_3.childNodes[0].text = textElement_3.content;\n textElement_3.refreshTextElement();\n }\n }\n return perimeter;\n}\n/**\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @hidden\n * @returns {void}\n */\nexport function removePerimeterLabel(obj) {\n for (var i = 0; i < obj.wrapper.children.length; i++) {\n var textElement_4 = obj.wrapper.children[parseInt(i.toString(), 10)];\n if (textElement_4 && !isNullOrUndefined(textElement_4.content)) {\n obj.wrapper.children.splice(i, 1);\n }\n }\n}\n/**\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @hidden\n * @returns {void}\n */\nexport function updateCalibrateLabel(obj) {\n if (obj.wrapper && obj.wrapper.children) {\n for (var i = 0; i < obj.wrapper.children.length; i++) {\n var textElement_5 = obj.wrapper.children[parseInt(i.toString(), 10)];\n if (textElement_5 && !isNullOrUndefined(textElement_5.content)) {\n textElement_5.content = obj.notes;\n textElement_5.childNodes[0].text = textElement_5.content;\n textElement_5.refreshTextElement();\n }\n }\n }\n}\n/**\n * Used to find the path for polygon shapes\n *\n * @param {PointModel[]} collection - Specified the polygon annotaion points collection.\n * @hidden\n * @returns {string} - Returns the polygon annotation path.\n */\nexport function getPolygonPath(collection) {\n var path = '';\n var seg;\n path = 'M' + collection[0].x + ' ' + collection[0].y;\n var i;\n for (i = 1; i < collection.length; i++) {\n seg = collection[parseInt(i.toString(), 10)];\n path += 'L' + seg.x + ' ' + seg.y;\n }\n path += 'Z';\n return path;\n}\n/**\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @param {number} angle - Specified the annotaion rotation angle.\n * @hidden\n * @returns {TextElement} - Returns the annotation text element.\n */\nexport function textElement(obj, angle) {\n var textele = new TextElement();\n setElementStype(obj, textele);\n textele.style.fill = 'transparent';\n textele.id = randomId();\n textele.horizontalAlignment = 'Center';\n textele.rotateValue = { y: 10, angle: angle };\n textele.verticalAlignment = 'Top';\n textele.relativeMode = 'Object';\n textele.setOffsetWithRespectToBounds(.5, .5, 'Absolute');\n // eslint-disable-next-line\n textele.offsetX;\n textele.style.textWrapping = 'NoWrap';\n return textele;\n}\n/**\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @param {PointModel[]} points - Specified the annotaion leader points.\n * @hidden\n * @returns {PathElement[]} - Returns the annotation path elements.\n */\nexport function initLeaders(obj, points) {\n var leaders = [];\n var leader = initLeader(obj, points[0], points[1]);\n leaders.push(leader);\n leader = initLeader(obj, points[1], points[0], true);\n leaders.push(leader);\n return leaders;\n}\n/**\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @param {PointModel} point1 - Specified the annotaion leader point1.\n * @param {PointModel} point2 - Specified the annotaion leader point2.\n * @param {boolean} isSecondLeader - Specified the is second leader or not.\n * @hidden\n * @returns {PathElement} - Returns the annotation path element.\n */\nexport function initLeader(obj, point1, point2, isSecondLeader) {\n var element = new PathElement();\n element.offsetX = point1.x;\n element.offsetY = point1.y;\n var angle = Point.findAngle(point1, point2);\n var center = { x: (point1.x + point2.x) / 2, y: (point1.y + point2.y) / 2 };\n var matrix = identityMatrix();\n rotateMatrix(matrix, 0 - angle, center.x, center.y);\n var rotatedPoint = transformPointByMatrix(matrix, point1);\n var newPoint1 = { x: rotatedPoint.x, y: rotatedPoint.y - obj.leaderHeight };\n matrix = identityMatrix();\n rotateMatrix(matrix, angle, element.offsetX, element.offsetY);\n rotatedPoint = transformPointByMatrix(matrix, newPoint1);\n var finalPoint = { x: point1.x, y: point1.y };\n element.offsetX = finalPoint.x;\n element.offsetY = finalPoint.y;\n element.transform = RotateTransform.Self;\n var getPath = 'M' + point1.x + ',' + point1.y + ',L' + rotatedPoint.x + ',' + rotatedPoint.y + 'Z';\n var size = new Size(0, obj.leaderHeight);\n element.pivot.x = .5;\n if (isSecondLeader) {\n element.id = 'leader2_' + randomId();\n element.pivot.y = 0;\n }\n else {\n element.id = 'leader1_' + randomId();\n element.pivot.y = 1;\n }\n setElementStype(obj, element);\n element.rotateAngle = angle;\n element.data = getPath;\n element.canMeasurePath = true;\n element.width = size.width;\n element.height = size.height;\n return element;\n}\n/**\n * @private\n * @param {PdfAnnotationBaseModel} connector - Specified the annotation connector object.\n * @param {PointModel} reference - Specified the pointer reference value.\n * @returns {boolean} - Returns true or false.\n */\nexport function isPointOverConnector(connector, reference) {\n var vertexPoints = connector.vertexPoints;\n if (!isNullOrUndefined(vertexPoints)) {\n for (var i = 0; i < vertexPoints.length - 1; i++) {\n var start = vertexPoints[parseInt(i.toString(), 10)];\n var end = vertexPoints[i + 1];\n var rect = Rect.toBounds([start, end]);\n rect.Inflate(10);\n if (rect.containsPoint(reference)) {\n var intersectinPt = findNearestPoint(reference, start, end);\n var segment1 = { x1: start.x, x2: end.x, y1: start.y, y2: end.y };\n var segment2 = { x1: reference.x, x2: intersectinPt.x, y1: reference.y, y2: intersectinPt.y };\n var intersectDetails = intersect3(segment1, segment2);\n if (intersectDetails.enabled) {\n var distance = Point.findLength(reference, intersectDetails.intersectPt);\n if (Math.abs(distance) < 10) {\n return true;\n }\n }\n else {\n var rect_1 = Rect.toBounds([reference, reference]);\n rect_1.Inflate(3);\n if (rect_1.containsPoint(start) || rect_1.containsPoint(end)) {\n return true;\n }\n }\n if (Point.equals(reference, intersectinPt)) {\n return true;\n }\n }\n }\n }\n return false;\n}\n/**\n * @param {PointModel} reference - Specified the pointer reference value.\n * @param {PointModel} start - Specified the pointer start value.\n * @param {PointModel} end - Specified the pointer end value.\n * @private\n * @returns {PointModel} - Returns annotation point model.\n */\nexport function findNearestPoint(reference, start, end) {\n var shortestPoint;\n var shortest = Point.findLength(start, reference);\n var shortest1 = Point.findLength(end, reference);\n if (shortest > shortest1) {\n shortestPoint = end;\n }\n else {\n shortestPoint = start;\n }\n var angleBWStAndEnd = Point.findAngle(start, end);\n var angleBWStAndRef = Point.findAngle(shortestPoint, reference);\n var r = Point.findLength(shortestPoint, reference);\n var vaAngle = angleBWStAndRef + ((angleBWStAndEnd - angleBWStAndRef) * 2);\n return {\n x: (shortestPoint.x + r * Math.cos(vaAngle * Math.PI / 180)),\n y: (shortestPoint.y + r * Math.sin(vaAngle * Math.PI / 180))\n };\n}\n/**\n * @param {DecoratorShapes} shape - Specified the annotation decorator shapes.\n * @hidden\n * @returns {string} - Returns the annotation decorator shape value.\n */\nexport function getDecoratorShape(shape) {\n // eslint-disable-next-line\n return decoratorShapes[shape];\n}\nvar decoratorShapes = {\n 'OpenArrow': 'M15.9,23 L5,16 L15.9,9 L17,10.7 L8.7,16 L17,21.3Z',\n 'Square': 'M0,0 L10,0 L10,10 L0,10 z',\n 'Fletch': 'M14.8,10c0,0-3.5,6,0.2,12c0,0-2.5-6-10.9-6C4.1,16,11.3,16,14.8,10z',\n 'OpenFetch': 'M6,17c-0.6,0-1-0.4-1-1s0.4-1,1-1c10.9,0,11-5,11-5' +\n 'c0-0.6,0.4-1,1-1s1,0.4,1,1C19,10.3,18.9,17,6,17C6,17,6,17,6,17z ' +\n 'M18,23c-0.5,0-1-0.4-1-1c0-0.2-0.3-5-11-5c-0.6,0-1-0.5-1-1s0.4-1,1-1c0,0,0,0,0,0' +\n 'c12.9,0,13,6.7,13,7 C19,22.6,18.6,23,18,23z',\n 'IndentedArrow': 'M17,10c0,0-4.5,5.5,0,12L5,16L17,10z',\n 'OutdentedArrow': 'M14.6,10c0,0,5.4,6,0,12L5,16L14.6,10z',\n 'DoubleArrow': 'M19,10 L19,22 L13,16Z M12,10 L12,22 L6,16Z',\n 'Arrow': 'M15,10 L15,22 L5,16Z',\n 'Diamond': 'M12,23l-7-7l7-7l6.9,7L12,23z',\n 'Circle': 'M0,50 A50,50,0 1 1 100,50 A50,50,0 1 1 0,50 Z',\n 'Butt': 'M0,0 L0,90'\n};\n","import { contains } from '@syncfusion/ej2-drawings';\nimport { Rect } from '@syncfusion/ej2-drawings';\nimport { Point, identityMatrix, rotateMatrix } from '@syncfusion/ej2-drawings';\nimport { Container, transformPointByMatrix } from '@syncfusion/ej2-drawings';\nimport { isPointOverConnector } from './connector-util';\nimport { LineTool, NodeDrawingTool, StampTool } from './tools';\nimport { isNullOrUndefined } from '@syncfusion/ej2-base';\n/**\n * @private\n * @param {MouseEvent | TouchEvent} event - Specified the annotaion event.\n * @param {PdfViewerBase} pdfBase - Specified the pdfviewer base element.\n * @param {PdfViewer} pdfViewer - Specified the pdfviewer element.\n * @param {boolean} isOverlapped - Specified the overlapped element or not.\n * @returns {any} - Returns the active element.\n */\n// eslint-disable-next-line\nexport function findActiveElement(event, pdfBase, pdfViewer, isOverlapped) {\n if (pdfViewer && pdfBase.activeElements.activePageID > -1) {\n var objects = findObjectsUnderMouse(pdfBase, pdfViewer, event);\n var object = findObjectUnderMouse(objects, event, pdfBase, pdfViewer);\n if (isOverlapped) {\n return objects;\n }\n return object;\n }\n return undefined;\n}\n/**\n * @private\n * @param {PdfViewerBase} pdfBase - Specified the pdfviewer base element.\n * @param {PdfViewer} pdfViewer - Specified the pdfviewer element.\n * @param {MouseEvent} event - Specified the annotaion event.\n * @returns {IElement[]} - Returns the annotaion elements.\n */\nexport function findObjectsUnderMouse(pdfBase, pdfViewer, event) {\n var pt = pdfBase.currentPosition || { x: event.offsetX, y: event.offsetY };\n pt = { x: pt.x / pdfBase.getZoomFactor(), y: pt.y / pdfBase.getZoomFactor() };\n var pageTable = pdfViewer.getPageTable(pdfBase.activeElements.activePageID);\n var objArray = findObjects(pt, pageTable.objects, pdfViewer.touchPadding);\n return objArray;\n}\n/**\n * @private\n * @param {PdfAnnotationBaseModel[]} objects - Specified the annotaion object model.\n * @param {any} event - Specified the annotaion event.\n * @param {PdfViewerBase} pdfBase - Specified the pdfviewer base element.\n * @param {PdfViewer} pdfViewer - Specified the pdfviewer element.\n * @returns {IElement} - Returns the annotaion element.\n */\nexport function findObjectUnderMouse(\n// eslint-disable-next-line\nobjects, event, pdfBase, pdfViewer) {\n var actualTarget = null;\n var touchArg;\n var offsetX;\n var offsetY;\n if (event && event.type && event.type.indexOf('touch') !== -1) {\n touchArg = event;\n if (pdfViewer.annotation) {\n var pageDiv = pdfBase.getElement('_pageDiv_' + pdfViewer.annotation.getEventPageNumber(event));\n if (pageDiv) {\n var pageCurrentRect = pageDiv.getBoundingClientRect();\n offsetX = touchArg.changedTouches[0].clientX - pageCurrentRect.left;\n offsetY = touchArg.changedTouches[0].clientY - pageCurrentRect.top;\n }\n }\n // eslint-disable-next-line\n }\n else if (event && event.target && event.path && event.target.parentElement && event.target.parentElement.classList.contains('foreign-object')) {\n // eslint-disable-next-line\n var targetParentRect = event.path[4].getBoundingClientRect();\n offsetX = event.clientX - targetParentRect.left;\n offsetY = event.clientY - targetParentRect.top;\n }\n else if (event.target && event.target.parentElement && event.target.parentElement.classList.contains('foreign-object')) {\n // eslint-disable-next-line\n var targetParentRect = event.target.offsetParent.offsetParent.offsetParent.getBoundingClientRect();\n offsetX = event.clientX - targetParentRect.left;\n offsetY = event.clientY - targetParentRect.top;\n // eslint-disable-next-line\n }\n else if (event.target && event.target.parentElement && event.target.parentElement.parentElement && event.target.parentElement.parentElement.classList.contains('foreign-object')) {\n var targetParentRect = void 0;\n if (event.target.offsetParent && event.target.offsetParent.offsetParent && event.target.offsetParent.offsetParent.offsetParent && event.target.offsetParent.offsetParent.offsetParent.offsetParent) {\n // eslint-disable-next-line\n targetParentRect = event.target.offsetParent.offsetParent.offsetParent.offsetParent.getBoundingClientRect();\n offsetX = event.clientX - targetParentRect.left;\n offsetY = event.clientY - targetParentRect.top;\n }\n else if (event.target.parentElement.offsetParent && event.target.parentElement.offsetParent.offsetParent) {\n // eslint-disable-next-line\n targetParentRect = event.target.parentElement.offsetParent.offsetParent.getBoundingClientRect();\n offsetX = event.clientX - targetParentRect.left;\n offsetY = event.clientY - targetParentRect.top;\n // eslint-disable-next-line\n }\n }\n else {\n offsetX = !isNaN(event.offsetX) ? event.offsetX : (event.position ? event.position.x : 0);\n offsetY = !isNaN(event.offsetY) ? event.offsetY : (event.position ? event.position.y : 0);\n }\n //EJ2-63562 - Reduced the offset selector by half to improve selection of fields in mobile devices\n var offsetForSelector = pdfViewer.touchPadding / 2;\n var boundsDiff = 0;\n for (var i = 0; i < objects.length; i++) {\n if (!(objects[parseInt(i.toString(), 10)].shapeAnnotationType === 'Distance' || objects[parseInt(i.toString(), 10)].shapeAnnotationType === 'Line' || objects[parseInt(i.toString(), 10)].shapeAnnotationType === 'LineWidthArrowHead' || pdfBase.tool instanceof LineTool)) {\n var bounds = objects[parseInt(i.toString(), 10)].wrapper.bounds;\n var rotationValue = 0;\n if (objects[parseInt(i.toString(), 10)].shapeAnnotationType === 'Stamp' || objects[parseInt(i.toString(), 10)].shapeAnnotationType === 'Image') {\n rotationValue = 25;\n }\n // eslint-disable-next-line max-len\n if ((((bounds.x - offsetForSelector) * pdfBase.getZoomFactor()) < offsetX) && (((bounds.x + bounds.width + offsetForSelector) * pdfBase.getZoomFactor()) > offsetX) &&\n // eslint-disable-next-line max-len\n (((bounds.y - offsetForSelector - rotationValue) * pdfBase.getZoomFactor()) < offsetY) && (((bounds.y + bounds.height + offsetForSelector) * pdfBase.getZoomFactor()) > offsetY)) {\n if (pdfBase.tool instanceof NodeDrawingTool || pdfBase.tool instanceof StampTool) {\n actualTarget = objects[parseInt(i.toString(), 10)];\n }\n else {\n if (!boundsDiff) {\n actualTarget = objects[parseInt(i.toString(), 10)];\n // eslint-disable-next-line max-len\n boundsDiff = (offsetX - ((bounds.x - offsetForSelector) * pdfBase.getZoomFactor())) + (((bounds.x + bounds.width + offsetForSelector) * pdfBase.getZoomFactor()) - offsetX) +\n // eslint-disable-next-line max-len\n (offsetY - ((bounds.y - offsetForSelector - rotationValue) * pdfBase.getZoomFactor())) + (((bounds.y + bounds.height + offsetForSelector) * pdfBase.getZoomFactor()) - offsetY);\n }\n else {\n // eslint-disable-next-line max-len\n var objectBounds = (offsetX - ((bounds.x - offsetForSelector) * pdfBase.getZoomFactor())) + (((bounds.x + bounds.width + offsetForSelector) * pdfBase.getZoomFactor()) - offsetX) +\n // eslint-disable-next-line max-len\n (offsetY - ((bounds.y - offsetForSelector - rotationValue) * pdfBase.getZoomFactor())) + (((bounds.y + bounds.height + offsetForSelector) * pdfBase.getZoomFactor()) - offsetY);\n if (boundsDiff > objectBounds) {\n actualTarget = objects[parseInt(i.toString(), 10)];\n boundsDiff = objectBounds;\n }\n else if (boundsDiff === objectBounds) {\n actualTarget = objects[parseInt(i.toString(), 10)];\n boundsDiff = objectBounds;\n }\n else if ((objects[parseInt(i.toString(), 10)].shapeAnnotationType === \"Image\") || (objects[parseInt(i.toString(), 10)].shapeAnnotationType === \"Stamp\")) {\n actualTarget = objects[parseInt(i.toString(), 10)];\n }\n }\n }\n }\n }\n else {\n var pt = { x: offsetX / pdfBase.getZoomFactor(), y: offsetY / pdfBase.getZoomFactor() };\n var obj = findElementUnderMouse(objects[parseInt(i.toString(), 10)], pt, offsetForSelector);\n var isOver = isPointOverConnector(objects[parseInt(i.toString(), 10)], pt);\n if (obj && !isOver) {\n var newpoint = CalculateLeaderPoints(objects[parseInt(i.toString(), 10)], obj);\n if (newpoint) {\n var rect = Rect.toBounds([newpoint, newpoint]);\n rect.Inflate(10);\n if (rect.containsPoint(pt)) {\n isOver = true;\n }\n }\n }\n if (obj && isOver) {\n actualTarget = objects[parseInt(i.toString(), 10)];\n }\n }\n }\n return actualTarget;\n}\n/**\n * @private\n * @param {any} selector - Specified the annotaion selctor.\n * @param {any} currentobject - Specified the current annotaion object.\n * @returns {any} - Returns the leader points.\n */\n// eslint-disable-next-line\nexport function CalculateLeaderPoints(selector, currentobject) {\n var leaderCount = 0;\n var sourcePoint = selector.sourcePoint;\n var targetPoint = selector.targetPoint;\n if (selector.shapeAnnotationType === 'Distance') {\n var segment = currentobject;\n var newPoint1 = void 0;\n var angle = Point.findAngle(selector.sourcePoint, selector.targetPoint);\n if (segment.id.indexOf('leader') > -1) {\n var center = selector.wrapper.children[0].bounds.center;\n if (leaderCount === 0 && segment.id.indexOf('leader1') > -1) {\n newPoint1 = { x: selector.sourcePoint.x, y: selector.sourcePoint.y - selector.leaderHeight };\n center = sourcePoint;\n }\n else {\n newPoint1 = { x: selector.targetPoint.x, y: selector.targetPoint.y - selector.leaderHeight };\n center = targetPoint;\n }\n var matrix = identityMatrix();\n rotateMatrix(matrix, angle, center.x, center.y);\n var rotatedPoint = transformPointByMatrix(matrix, { x: newPoint1.x, y: newPoint1.y });\n return rotatedPoint;\n }\n }\n}\n/**\n * @private\n * @param {IElement} obj - Specified the annotation element.\n * @param {PointModel} position - Specified the annotation position value.\n * @param {number} padding - Specified the annotation padding.\n * @returns {DrawingElement} - Returns the annotation drawing element.\n */\nexport function findElementUnderMouse(obj, position, padding) {\n return findTargetShapeElement(obj.wrapper, position, padding);\n}\n/**\n * @private\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object model.\n * @param {string} key - Specified the annotation key value.\n * @param {Object[]} collection - Specified the annotation collection.\n * @returns {void}\n */\nexport function insertObject(obj, key, collection) {\n if (collection.length === 0) {\n collection.push(obj);\n }\n else if (collection.length === 1) {\n // eslint-disable-next-line\n if (collection[0][key] > obj[key]) {\n collection.splice(0, 0, obj);\n }\n else {\n collection.push(obj);\n }\n }\n else if (collection.length > 1) {\n var low = 0;\n var high = collection.length - 1;\n var mid = Math.floor((low + high) / 2);\n while (mid !== low) {\n // eslint-disable-next-line\n if (collection[mid][key] < obj[key]) {\n low = mid;\n mid = Math.floor((low + high) / 2);\n // eslint-disable-next-line\n }\n else if (collection[mid][key] > obj[key]) {\n high = mid;\n mid = Math.floor((low + high) / 2);\n }\n }\n // eslint-disable-next-line\n if (collection[high][key] < obj[key]) {\n collection.push(obj);\n // eslint-disable-next-line\n }\n else if (collection[low][key] > obj[key]) {\n collection.splice(low, 0, obj);\n // eslint-disable-next-line\n }\n else if ((collection[low][key] < obj[key]) && collection[high][key] > obj[key]) {\n collection.splice(high, 0, obj);\n }\n }\n}\n/**\n * @private\n * @param {Container} container - Specified the annotaion container.\n * @param {PointModel} position - Specified the annotation position.\n * @param {number} padding - Specified the annotaion padding value.\n * @returns {DrawingElement} - Returns the annotation drawing element.\n */\nexport function findTargetShapeElement(container, position, padding) {\n if (container && container.children) {\n for (var i = container.children.length - 1; i >= 0; i--) {\n var shapeElement = container.children[parseInt(i.toString(), 10)];\n var touchPadding = padding;\n // eslint-disable-next-line\n if (!isNullOrUndefined(shapeElement.children) && shapeElement.children.length > 0) {\n // eslint-disable-next-line\n for (var j = shapeElement.children.length - 1; j >= 0; j--) {\n // eslint-disable-next-line\n var currentTarget = shapeElement.children[j];\n if (currentTarget && currentTarget.bounds.containsPoint(position, touchPadding)) {\n if (currentTarget instanceof Container) {\n var targetElement = this.findTargetElement(currentTarget, position);\n if (targetElement) {\n return targetElement;\n }\n }\n if (currentTarget.bounds.containsPoint(position, touchPadding)) {\n return currentTarget;\n }\n }\n }\n }\n else {\n if (shapeElement && shapeElement.bounds.containsPoint(position, touchPadding)) {\n if (shapeElement instanceof Container) {\n var targetElement = this.findTargetElement(shapeElement, position);\n if (targetElement) {\n return targetElement;\n }\n }\n if (shapeElement.bounds.containsPoint(position, touchPadding)) {\n return shapeElement;\n }\n }\n }\n }\n }\n if (container && container.bounds.containsPoint(position, padding) && container.style.fill !== 'none') {\n var element = container;\n var paddingValue = 10;\n var rotateThumbDistance = 30;\n var matrix = identityMatrix();\n rotateMatrix(matrix, element.parentTransform, element.offsetX, element.offsetY);\n var x = element.offsetX - element.pivot.x * element.actualSize.width;\n var y = element.offsetY - element.pivot.y * element.actualSize.height;\n var rotateThumb = {\n x: x + ((element.pivot.x === 0.5 ? element.pivot.x * 2 : element.pivot.x) * element.actualSize.width / 2),\n y: y - rotateThumbDistance\n };\n rotateThumb = transformPointByMatrix(matrix, rotateThumb);\n if (contains(position, rotateThumb, paddingValue)) {\n return container;\n }\n }\n return null;\n}\n/**\n * @private\n * @param {PointModel} region - Specified the annotation region point model.\n * @param {PdfAnnotationBaseModel[]} objCollection - Specified the annotation object collections.\n * @returns {PdfAnnotationBaseModel[]} - Returns the annotation object collections.\n */\nexport function findObjects(region, objCollection, touchPadding) {\n var objects = [];\n for (var _i = 0, objCollection_1 = objCollection; _i < objCollection_1.length; _i++) {\n var obj = objCollection_1[_i];\n if (findElementUnderMouse(obj, region, touchPadding) || ((obj.shapeAnnotationType === 'Stamp') && findElementUnderMouse(obj, region, 40))) {\n insertObject(obj, 'zIndex', objects);\n }\n }\n return objects;\n}\n/**\n * @private\n * @param {MouseEvent} event - Specified the annotaion mouse event.\n * @param {PdfViewerBase} pdfBase - Specified the pdfBase element.\n * @returns {number} - Returns the active page Id.\n */\nexport function findActivePage(event, pdfBase) {\n var activePageID = undefined;\n if (event.target && event.target.wrapper) {\n return event.target.pageIndex;\n }\n if (event.target) {\n var elementIdColl = event.target.id.split('_');\n if (elementIdColl.length > 0) {\n // eslint-disable-next-line radix\n activePageID = parseInt(elementIdColl[elementIdColl.length - 1]);\n }\n }\n return activePageID;\n}\n/**\n * @hidden\n */\nvar ActiveElements = /** @class */ (function () {\n function ActiveElements() {\n this.activePage = undefined;\n this.activePageID = undefined;\n }\n Object.defineProperty(ActiveElements.prototype, \"activePageID\", {\n /**\n * @private\n * @returns {number} - Returns the active page Id.\n */\n get: function () {\n return this.activePage;\n },\n /**\n * @private\n * @param {number} offset - The page offset value.\n */\n set: function (offset) {\n this.activePage = offset;\n // eslint-disable-next-line\n if (offset !== this.activePage) { }\n },\n enumerable: true,\n configurable: true\n });\n return ActiveElements;\n}());\nexport { ActiveElements };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { randomId, Point } from '@syncfusion/ej2-drawings';\nimport { rotatePoint } from '@syncfusion/ej2-drawings';\nimport { Rect } from '@syncfusion/ej2-drawings';\nimport { transformPointByMatrix, rotateMatrix, identityMatrix } from '@syncfusion/ej2-drawings';\nimport { TextElement } from '@syncfusion/ej2-drawings';\nimport { Selector } from './selector';\nimport { findActiveElement } from './action';\nimport { cloneObject, isLineShapes } from './drawing-util';\nimport { isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { updatePerimeterLabel } from './connector-util';\nimport { Browser } from '@syncfusion/ej2-base';\n/**\n * Defines the interactive tools\n *\n * @hidden\n */\nvar ToolBase = /** @class */ (function () {\n /**\n * Initializes the tool\n *\n * @param {PdfViewer} pdfViewer - Specified the pdfviewer component.\n * @param {PdfViewerBase} pdfViewerBase - Specified the pdfViewer base component.\n * @param {boolean} protectChange - Set the default value as false.\n */\n function ToolBase(pdfViewer, pdfViewerBase, protectChange) {\n if (protectChange === void 0) { protectChange = false; }\n /**\n * Command that is corresponding to the current action\n */\n this.commandHandler = null;\n /**\n * Sets/Gets whether the interaction is being done\n */\n this.inAction = false;\n /**\n * Sets/Gets the protect change\n */\n this.pdfViewerBase = null;\n /**\n * Sets/Gets the current element that is under mouse\n */\n /** @private */\n this.currentElement = null;\n /** @private */\n this.blocked = false;\n this.isTooltipVisible = false;\n /** @private */\n this.childTable = {};\n /** @private */\n this.helper = undefined;\n /**\n * Sets/Gets the previous object when mouse down\n */\n this.undoElement = { annotations: [] };\n this.undoParentElement = { annotations: [] };\n this.commandHandler = pdfViewer;\n this.pdfViewerBase = pdfViewerBase;\n }\n /**\n * @param {IElement} currentElement - Specified the current element.\n * @returns {void}\n */\n ToolBase.prototype.startAction = function (currentElement) {\n this.currentElement = currentElement;\n this.inAction = true;\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Mouse up event arguments.\n * @returns {void}\n */\n ToolBase.prototype.mouseDown = function (args) {\n this.currentElement = args.source;\n this.startPosition = this.currentPosition = this.prevPosition = args.position;\n this.isTooltipVisible = true;\n this.startAction(args.source);\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Mouse up event arguments.\n * @returns {boolean} - Returns true or false.\n */\n ToolBase.prototype.mouseMove = function (args) {\n this.currentPosition = args.position;\n //this.currentElement = currentElement;\n this.prevPageId = this.pdfViewerBase.activeElements.activePageID;\n return !this.blocked;\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Mouse up event arguments.\n * @returns {void}\n */\n ToolBase.prototype.mouseUp = function (args) {\n this.currentPosition = args.position;\n // this.currentElement = currentElement;\n this.isTooltipVisible = false;\n //At the end\n this.endAction();\n this.helper = null;\n };\n ToolBase.prototype.endAction = function () {\n //remove helper\n if (this.commandHandler) {\n this.commandHandler.tool = '';\n if (this.helper) {\n this.commandHandler.remove(this.helper);\n }\n }\n this.commandHandler = null;\n this.currentElement = null;\n this.currentPosition = null;\n this.inAction = false;\n this.blocked = false;\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Mouse wheel event arguments.\n * @returns {void}\n */\n ToolBase.prototype.mouseWheel = function (args) {\n this.currentPosition = args.position;\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Mouse leave event arguments.\n * @returns {void}\n */\n ToolBase.prototype.mouseLeave = function (args) {\n this.mouseUp(args);\n };\n // eslint-disable-next-line\n ToolBase.prototype.updateSize = function (shape, startPoint, endPoint, corner, initialBounds, angle, isMouseUp) {\n var zoom = this.commandHandler.viewerBase.getZoomFactor();\n var difx = this.currentPosition.x / zoom - this.startPosition.x / zoom;\n var dify = this.currentPosition.y / zoom - this.startPosition.y / zoom;\n var rotateAngle = (shape instanceof TextElement) ? angle : shape.rotateAngle;\n var matrix = identityMatrix();\n rotateMatrix(matrix, -rotateAngle, 0, 0);\n var deltaWidth = 0;\n var deltaHeight = 0;\n var diff;\n var width = (shape instanceof TextElement) ? shape.actualSize.width : shape.wrapper.bounds.width;\n var height = (shape instanceof TextElement) ? shape.actualSize.height : shape.wrapper.bounds.height;\n // eslint-disable-next-line\n var obj = shape;\n if (!shape.formFieldAnnotationType) {\n if (!shape.annotName && !shape.shapeAnnotationType) {\n if (shape) {\n // eslint-disable-next-line\n obj = shape.annotations[0];\n }\n }\n }\n // eslint-disable-next-line\n var annotationSettings = this.commandHandler.annotationModule ? this.commandHandler.annotationModule.findAnnotationSettings(obj) : {};\n var annotationMaxHeight = 0;\n var annotationMaxWidth = 0;\n var annotationMinHeight = 0;\n var annotationMinWidth = 0;\n if (annotationSettings.minWidth || annotationSettings.maxWidth || annotationSettings.minHeight || annotationSettings.maxHeight) {\n annotationMaxHeight = annotationSettings.maxHeight ? annotationSettings.maxHeight : 2000;\n annotationMaxWidth = annotationSettings.maxWidth ? annotationSettings.maxWidth : 2000;\n annotationMinHeight = annotationSettings.minHeight ? annotationSettings.minHeight : 0;\n annotationMinWidth = annotationSettings.minWidth ? annotationSettings.minWidth : 0;\n }\n var isAnnotationSet = false;\n if (annotationMinHeight || annotationMinWidth || annotationMaxHeight || annotationMaxWidth) {\n isAnnotationSet = true;\n }\n if (isAnnotationSet && isMouseUp) {\n // eslint-disable-next-line\n var size = this.getPositions(corner, difx, dify);\n var newWidth = width + size.x;\n var newHeight = height + size.y;\n // eslint-disable-next-line max-len\n if ((newHeight > annotationMinHeight && newHeight < annotationMaxHeight) && (newWidth > annotationMinWidth && newWidth < annotationMaxWidth)) {\n // eslint-disable-next-line\n difx = difx;\n // eslint-disable-next-line\n dify = dify;\n }\n else {\n if (newHeight < annotationMinHeight || newHeight > annotationMaxHeight) {\n if (newHeight < annotationMinHeight) {\n dify = annotationMinHeight - height;\n }\n else {\n dify = annotationMaxHeight - height;\n }\n }\n if (newWidth < annotationMinWidth || newWidth > annotationMaxWidth) {\n if (newWidth < annotationMinWidth) {\n difx = annotationMinWidth - width;\n }\n else {\n difx = annotationMaxWidth - width;\n }\n }\n }\n }\n switch (corner) {\n case 'ResizeWest':\n diff = transformPointByMatrix(matrix, ({ x: difx, y: dify }));\n difx = diff.x;\n dify = diff.y;\n deltaHeight = 1;\n // eslint-disable-next-line\n difx = difx;\n dify = 0;\n if (isAnnotationSet) {\n if (initialBounds.width - difx > annotationMaxWidth) {\n difx = annotationMaxWidth - initialBounds.width;\n }\n }\n deltaWidth = (initialBounds.width - difx) / width;\n break;\n case 'ResizeEast':\n diff = transformPointByMatrix(matrix, ({ x: difx, y: dify }));\n difx = diff.x;\n dify = diff.y;\n dify = 0;\n if (isAnnotationSet) {\n if (initialBounds.width + difx > annotationMaxWidth) {\n difx = annotationMaxWidth - initialBounds.width;\n }\n }\n deltaWidth = (initialBounds.width + difx) / width;\n deltaHeight = 1;\n break;\n case 'ResizeNorth':\n deltaWidth = 1;\n diff = transformPointByMatrix(matrix, ({ x: difx, y: dify }));\n difx = diff.x;\n dify = diff.y;\n if (isAnnotationSet) {\n if (initialBounds.height - dify > annotationMaxHeight) {\n dify = annotationMaxHeight - initialBounds.height;\n }\n }\n deltaHeight = (initialBounds.height - dify) / height;\n break;\n case 'ResizeSouth':\n deltaWidth = 1;\n diff = transformPointByMatrix(matrix, ({ x: difx, y: dify }));\n difx = diff.x;\n dify = diff.y;\n if (isAnnotationSet) {\n if (initialBounds.height + dify > annotationMaxHeight) {\n dify = annotationMaxHeight - initialBounds.height;\n }\n }\n deltaHeight = (initialBounds.height + dify) / height;\n break;\n case 'ResizeNorthEast':\n diff = transformPointByMatrix(matrix, ({ x: difx, y: dify }));\n difx = diff.x;\n dify = diff.y;\n if (isAnnotationSet) {\n if (initialBounds.width + difx > annotationMaxWidth) {\n difx = annotationMaxWidth - initialBounds.width;\n }\n if (initialBounds.height - dify > annotationMaxHeight) {\n dify = annotationMaxHeight - initialBounds.height;\n }\n }\n deltaWidth = (initialBounds.width + difx) / width;\n deltaHeight = (initialBounds.height - dify) / height;\n break;\n case 'ResizeNorthWest':\n diff = transformPointByMatrix(matrix, ({ x: difx, y: dify }));\n difx = diff.x;\n dify = diff.y;\n if (isAnnotationSet) {\n if (initialBounds.width - difx > annotationMaxWidth) {\n difx = annotationMaxWidth - initialBounds.width;\n }\n if (initialBounds.height - dify > annotationMaxHeight) {\n dify = annotationMaxHeight - initialBounds.height;\n }\n }\n deltaWidth = (initialBounds.width - difx) / width;\n deltaHeight = (initialBounds.height - dify) / height;\n break;\n case 'ResizeSouthEast':\n diff = transformPointByMatrix(matrix, ({ x: difx, y: dify }));\n difx = diff.x;\n dify = diff.y;\n if (isAnnotationSet) {\n if (initialBounds.width + difx > annotationMaxWidth) {\n difx = annotationMaxWidth - initialBounds.width;\n }\n if (initialBounds.height + dify > annotationMaxHeight) {\n dify = annotationMaxHeight - initialBounds.height;\n }\n }\n deltaHeight = (initialBounds.height + dify) / height;\n deltaWidth = (initialBounds.width + difx) / width;\n break;\n case 'ResizeSouthWest':\n diff = transformPointByMatrix(matrix, ({ x: difx, y: dify }));\n difx = diff.x;\n dify = diff.y;\n if (isAnnotationSet) {\n if (initialBounds.width - difx > annotationMaxWidth) {\n difx = annotationMaxWidth - initialBounds.width;\n }\n if (initialBounds.height + dify > annotationMaxHeight) {\n dify = annotationMaxHeight - initialBounds.height;\n }\n }\n deltaWidth = (initialBounds.width - difx) / width;\n deltaHeight = (initialBounds.height + dify) / height;\n break;\n }\n return { width: deltaWidth, height: deltaHeight };\n };\n ToolBase.prototype.getPivot = function (corner) {\n switch (corner) {\n case 'ResizeWest':\n return { x: 1, y: 0.5 };\n case 'ResizeEast':\n return { x: 0, y: 0.5 };\n case 'ResizeNorth':\n return { x: 0.5, y: 1 };\n case 'ResizeSouth':\n return { x: 0.5, y: 0 };\n case 'ResizeNorthEast':\n return { x: 0, y: 1 };\n case 'ResizeNorthWest':\n return { x: 1, y: 1 };\n case 'ResizeSouthEast':\n return { x: 0, y: 0 };\n case 'ResizeSouthWest':\n return { x: 1, y: 0 };\n }\n return { x: 0.5, y: 0.5 };\n };\n ToolBase.prototype.getPositions = function (corner, x, y) {\n switch (corner) {\n case 'ResizeEast':\n return { x: x, y: 0 };\n case 'ResizeSouthEast':\n return { x: x, y: y };\n case 'ResizeSouth':\n return { x: 0, y: y };\n case 'ResizeNorth':\n return { x: 0, y: -y };\n case 'ResizeNorthEast':\n return { x: x, y: -y };\n case 'ResizeNorthWest':\n return { x: -x, y: -y };\n case 'ResizeWest':\n return { x: -x, y: 0 };\n case 'ResizeSouthWest':\n return { x: -x, y: y };\n }\n return { x: x, y: y };\n };\n return ToolBase;\n}());\nexport { ToolBase };\n/**\n * Helps to select the objects\n *\n * @hidden\n */\nvar SelectTool = /** @class */ (function (_super) {\n __extends(SelectTool, _super);\n function SelectTool(commandHandler, base) {\n return _super.call(this, commandHandler, base, true) || this;\n // this.action = action;\n }\n /**\n * @private\n * @param {MouseEventArgs} args - Mouse down event arguments.\n * @returns {void}\n */\n SelectTool.prototype.mouseDown = function (args) {\n this.inAction = true;\n this.mouseEventHelper(args);\n _super.prototype.mouseDown.call(this, args);\n };\n SelectTool.prototype.mouseEventHelper = function (args) {\n if (this.commandHandler && this.commandHandler.annotationModule) {\n // eslint-disable-next-line\n this.commandHandler.annotationModule.overlappedCollections = findActiveElement(args, this.pdfViewerBase, this.commandHandler, true);\n }\n // eslint-disable-next-line\n var object = findActiveElement(args, this.pdfViewerBase, this.commandHandler);\n // if (!isNullOrUndefined(object) && (object as any).shapeAnnotationType != 'Path'){\n var isLock = false;\n // eslint-disable-next-line\n if (object && object.shapeAnnotationType === 'StickyNotes') {\n // eslint-disable-next-line\n if (object.annotationSettings && object.annotationSettings.isLock) {\n if (this.commandHandler.annotationModule.checkAllowedInteractions('Select', object)) {\n isLock = false;\n }\n else {\n isLock = true;\n }\n }\n }\n if (!isLock) {\n // eslint-disable-next-line\n var currentSelctor = void 0;\n if (args.source && args.annotationSelectorSettings !== null) {\n currentSelctor = args.source.annotationSelectorSettings;\n }\n else {\n currentSelctor = '';\n }\n if (this.commandHandler) {\n var selectedObject = this.commandHandler.selectedItems;\n if (selectedObject) {\n // eslint-disable-next-line\n var annotation = selectedObject.annotations[0];\n // eslint-disable-next-line\n var formField = selectedObject.formFields[0];\n var currentAnnot = this.commandHandler.selectedItems.annotations[0];\n var currentSource = args.source;\n if ((selectedObject.annotations.length) && args.info && !args.info.ctrlKey\n // eslint-disable-next-line\n && this.commandHandler.annotationModule && this.commandHandler.annotationModule.freeTextAnnotationModule.isInuptBoxInFocus === false) {\n this.commandHandler.clearSelection(this.pdfViewerBase.activeElements.activePageID);\n }\n else if (args.info && args.info.ctrlKey && ((currentSource && currentSource.shapeAnnotationType === 'FreeText') || (currentAnnot && currentAnnot.shapeAnnotationType === 'FreeText'))) {\n this.commandHandler.clearSelection(this.pdfViewerBase.activeElements.activePageID);\n }\n else if (isNullOrUndefined(object) && this.commandHandler.formDesignerModule && !((currentSource && currentSource.shapeAnnotationType === 'FreeText') || (currentAnnot && (currentAnnot.shapeAnnotationType === 'FreeText' || currentAnnot.shapeAnnotationType === 'Image' || currentAnnot.shapeAnnotationType === 'StickyNotes')))) {\n this.commandHandler.clearSelection(this.pdfViewerBase.activeElements.activePageID);\n }\n if (object) {\n if (!isNullOrUndefined(this.pdfViewerBase.isFreeTextSelected) && !this.pdfViewerBase.isFreeTextSelected) {\n this.commandHandler.select([object.id], currentSelctor);\n this.commandHandler.viewerBase.isAnnotationMouseDown = true;\n }\n this.pdfViewerBase.isFreeTextSelected = false;\n this.commandHandler.viewerBase.isFormFieldMouseDown = true;\n }\n if (selectedObject.annotations.length === 0 && annotation && annotation.shapeAnnotationType !== 'HandWrittenSignature' && annotation.shapeAnnotationType !== 'SignatureText' && annotation.shapeAnnotationType !== 'SignatureImage' && annotation.shapeAnnotationType !== 'Path' && !annotation.formFieldAnnotationType) {\n if (this.commandHandler.enableToolbar && Browser.isDevice && !this.commandHandler.enableDesktopMode) {\n this.commandHandler.toolbarModule.showToolbar(true);\n }\n this.commandHandler.fireAnnotationUnSelect(annotation.annotName, annotation.pageIndex, annotation);\n }\n // eslint-disable-next-line max-len\n if (selectedObject.formFields.length === 0 && this.commandHandler.formDesignerModule && formField && formField.formFieldAnnotationType) {\n // eslint-disable-next-line\n var field = { name: formField.name, id: formField.id, value: formField.value, fontFamily: formField.fontFamily, fontSize: formField.fontSize, fontStyle: formField.fontStyle,\n // eslint-disable-next-line\n color: formField.color, backgroundColor: formField.backgroundColor, alignment: formField.alignment, isReadonly: formField.isReadOnly, visibility: formField.visibility,\n // eslint-disable-next-line\n maxLength: formField.maxLength, isRequired: formField.isRequired, isPrint: formField.isPrint, rotation: formField.rotation, tooltip: formField.tooltip,\n // eslint-disable-next-line\n options: formField.options, isChecked: formField.isChecked, isSelected: formField.isSelected };\n this.commandHandler.fireFormFieldUnselectEvent('formFieldUnselect', field, formField.pageIndex);\n }\n else if (this.pdfViewerBase.currentTarget && this.pdfViewerBase.currentTarget.id && this.commandHandler.formFields && event.type === 'mousedown') {\n for (var i = 0; i < this.commandHandler.formFields.length; i++) {\n var formField_1 = this.commandHandler.formFields[parseInt(i.toString(), 10)];\n if (this.pdfViewerBase.currentTarget && this.pdfViewerBase.currentTarget.id === formField_1.id) {\n // eslint-disable-next-line\n var field = {\n value: formField_1.value, fontFamily: formField_1.fontFamily, fontSize: formField_1.fontSize, fontStyle: formField_1.fontStyle,\n // eslint-disable-next-line\n color: formField_1.color, backgroundColor: formField_1.backgroundColor, alignment: formField_1.alignment, isReadonly: formField_1.isReadonly, visibility: formField_1.visibility,\n // eslint-disable-next-line\n maxLength: formField_1.maxLength, isRequired: formField_1.isRequired, isPrint: formField_1.isPrint, rotation: formField_1.rotateAngle, tooltip: formField_1.tooltip,\n // eslint-disable-next-line\n options: formField_1.options, isChecked: formField_1.isChecked, isSelected: formField_1.isSelected\n };\n if (!object) {\n this.commandHandler.fireFocusOutFormField(field, formField_1.pageIndex);\n this.pdfViewerBase.currentTarget = null;\n }\n else {\n if (this.pdfViewerBase.currentTarget.id != event.target.id && event.target.className != 'e-pv-text-layer') {\n this.commandHandler.fireFocusOutFormField(field, formField_1.pageIndex);\n this.pdfViewerBase.currentTarget = null;\n }\n }\n }\n }\n }\n }\n }\n }\n // } else {\n // if (!isNullOrUndefined(this.commandHandler))\n // this.commandHandler.clearSelection(this.pdfViewerBase.activeElements.activePageID);\n // }\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Mouse move event arguments.\n * @returns {boolean} - Returns true or false.\n */\n SelectTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n //draw selected region\n return !this.blocked;\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Mouse up event arguments.\n * @returns {void}\n */\n SelectTool.prototype.mouseUp = function (args) {\n this.mouseEventHelper(args);\n this.inAction = false;\n _super.prototype.mouseUp.call(this, args);\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Mouse leave event arguments.\n * @returns {void}\n */\n SelectTool.prototype.mouseLeave = function (args) {\n if (this.inAction) {\n this.mouseUp(args);\n }\n };\n return SelectTool;\n}(ToolBase));\nexport { SelectTool };\n/** @hidden */\nvar MoveTool = /** @class */ (function (_super) {\n __extends(MoveTool, _super);\n function MoveTool(commandHandler, base) {\n var _this = _super.call(this, commandHandler, base) || this;\n /** @private */\n _this.currentTarget = null;\n /** @private */\n _this.prevNode = null;\n return _this;\n }\n /**\n * @private\n * @param {MouseEventArgs} args - Mouse down event arguments.\n * @returns {void}\n */\n MoveTool.prototype.mouseDown = function (args) {\n _super.prototype.mouseDown.call(this, args);\n this.offset = { x: args.source.wrapper.offsetX, y: args.source.wrapper.offsetY };\n this.startPosition = args.position;\n var nodeMouseDown = cloneObject(args.source);\n this.redoElement = {\n bounds: {\n x: nodeMouseDown.wrapper.offsetX, y: nodeMouseDown.wrapper.offsetY,\n width: nodeMouseDown.wrapper.actualSize.width, height: nodeMouseDown.wrapper.actualSize.height\n }\n // eslint-disable-next-line\n };\n if (isLineShapes(nodeMouseDown)) {\n this.redoElement.vertexPoints = nodeMouseDown.vertexPoints;\n this.redoElement.leaderHeight = nodeMouseDown.leaderHeight;\n }\n this.inAction = true;\n };\n /**\n * @private\n * @param {any} args - Specified the mouse event arguments.\n * @returns {void}\n */\n // eslint-disable-next-line\n MoveTool.prototype.mouseUp = function (args) {\n if (this.commandHandler && args.source) {\n this.checkisAnnotationMove(args);\n var currentSelctor = args.source.annotationSelectorSettings;\n this.commandHandler.clearSelection(this.pdfViewerBase.activeElements.activePageID);\n this.commandHandler.select([args.source.id], currentSelctor);\n // eslint-disable-next-line max-len\n if (this.pdfViewerBase.activeElements.activePageID == args.source.pageIndex) {\n this.commandHandler.dragSelectedObjects(this.calculateMouseActionXDiff(args), this.calculateMouseActionYDiff(args), this.pdfViewerBase.activeElements.activePageID, currentSelctor, null);\n }\n if (args.source && (args.source.formFieldAnnotationType === 'Textbox' || args.source.formFieldAnnotationType === 'Checkbox'\n || args.source.formFieldAnnotationType === 'RadioButton' || args.source.formFieldAnnotationType === 'ListBox'\n || args.source.formFieldAnnotationType === 'SignatureField' || args.source.formFieldAnnotationType === 'InitialField' || args.source.formFieldAnnotationType === 'DropdownList'\n || args.source.formFieldAnnotationType === 'PasswordField')) {\n this.commandHandler.formDesignerModule.updateHTMLElement(args.source);\n }\n this.commandHandler.renderSelector(this.pdfViewerBase.activeElements.activePageID, currentSelctor);\n this.commandHandler.viewerBase.isAnnotationMouseMove = false;\n this.commandHandler.viewerBase.isFormFieldMouseMove = false;\n // eslint-disable-next-line\n var newShapeObject = {\n bounds: {\n x: args.source.wrapper.offsetX, y: args.source.wrapper.offsetY,\n width: args.source.wrapper.actualSize.width, height: args.source.wrapper.actualSize.height\n }, modifiedDate: args.source.modifiedDate\n };\n if (isLineShapes(args.source)) {\n newShapeObject.vertexPoints = args.source.vertexPoints;\n newShapeObject.leaderHeight = args.source.leaderHeight;\n }\n if (args.target && args.target.formFieldAnnotationType) {\n var node = args.target;\n var field = {\n // eslint-disable-next-line\n value: node.value, fontFamily: node.fontFamily, fontSize: node.fontSize, fontStyle: node.fontStyle,\n // eslint-disable-next-line\n color: node.color, backgroundColor: node.backgroundColor, borderColor: node.borderColor,\n // eslint-disable-next-line\n thickness: node.thickness, alignment: node.alignment, isReadonly: node.isReadonly, visibility: node.visibility,\n // eslint-disable-next-line\n maxLength: node.maxLength, isRequired: node.isRequired, isPrint: node.isPrint, rotation: node.rotateAngle, tooltip: node.tooltip, options: node.options,\n // eslint-disable-next-line\n isChecked: node.isChecked, isSelected: node.isSelected\n };\n // eslint-disable-next-line max-len\n var currentPosition = { X: args.source.wrapper.offsetX, Y: args.source.wrapper.offsetY, Width: args.source.wrapper.actualSize.width, Height: args.source.wrapper.actualSize.height };\n // eslint-disable-next-line max-len\n var previousPosition = { X: this.offset.x, Y: this.offset.y, Width: args.source.wrapper.actualSize.width, Height: args.source.wrapper.actualSize.height };\n this.commandHandler.fireFormFieldMoveEvent('formFieldMove', field, node.pageIndex, previousPosition, currentPosition);\n }\n if (this.commandHandler.annotation) {\n // eslint-disable-next-line\n this.commandHandler.annotation.addAction(this.pageIndex, null, args.source, 'Drag', '', this.redoElement, newShapeObject);\n this.commandHandler.annotation.stampAnnotationModule.updateSessionStorage(args.source, null, 'Drag');\n this.commandHandler.annotation.stickyNotesAnnotationModule.updateStickyNotes(args.source, null);\n }\n }\n var shapeAnnotationType = this.commandHandler && this.commandHandler.selectedItems && this.commandHandler.selectedItems.annotations && this.commandHandler.selectedItems.annotations.length > 0 ? this.commandHandler.selectedItems.annotations[0].shapeAnnotationType : null;\n if (shapeAnnotationType && shapeAnnotationType !== 'Image' && shapeAnnotationType !== 'SignatureImage') {\n _super.prototype.mouseUp.call(this, args);\n }\n else if (shapeAnnotationType === 'Image' || shapeAnnotationType === 'SignatureImage') {\n this.inAction = false;\n }\n else if (this.commandHandler && this.commandHandler.selectedItems && this.commandHandler.selectedItems.formFields && this.commandHandler.selectedItems.formFields.length > 0) {\n _super.prototype.mouseUp.call(this, args);\n }\n };\n MoveTool.prototype.calculateMouseXDiff = function () {\n if (this.currentPosition && this.startPosition) {\n return this.currentPosition.x - this.startPosition.x;\n }\n else {\n return 0;\n }\n };\n MoveTool.prototype.calculateMouseYDiff = function () {\n if (this.currentPosition && this.startPosition) {\n return this.currentPosition.y - this.startPosition.y;\n }\n else {\n return 0;\n }\n };\n MoveTool.prototype.calculateMouseActionXDiff = function (args) {\n var x = this.calculateMouseXDiff() / this.commandHandler.viewerBase.getZoomFactor();\n // let y: number = this.calculateMouseYDiff() / this.commandHandler.magnification.zoomFactor;\n if (this.offset) {\n var requiredX = this.offset.x + x;\n // let requiredY: number = this.offset.y + y;\n return requiredX - args.source.wrapper.offsetX;\n //let diffY: number = requiredY - args.source.wrapper.offsetY;\n }\n else {\n return 0;\n }\n };\n MoveTool.prototype.calculateMouseActionYDiff = function (args) {\n // let x: number = this.calculateMouseXDiff() / this.commandHandler.magnification.zoomFactor;\n var y = this.calculateMouseYDiff() / this.commandHandler.viewerBase.getZoomFactor();\n if (this.offset) {\n // let requiredX: number = this.offset.x + x;\n var requiredY = this.offset.y + y;\n // let diffX: number = requiredX - args.source.wrapper.offsetX;\n return requiredY - args.source.wrapper.offsetY;\n }\n else {\n return 0;\n }\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @param {boolean} isStamp - Specified the stamp annotation or not.\n * @param {boolean} isSkip - Specified the annotation skip or not.\n * @returns {boolean} - Returns the true or false.\n */\n MoveTool.prototype.mouseMove = function (args, isStamp, isSkip) {\n _super.prototype.mouseMove.call(this, args);\n if (this.inAction) {\n this.currentPosition = args.position;\n this.currentTarget = args.target;\n var currentSelctor = args.source.annotationSelectorSettings;\n var x = this.calculateMouseXDiff() / this.commandHandler.viewerBase.getZoomFactor();\n var y = this.calculateMouseYDiff() / this.commandHandler.viewerBase.getZoomFactor();\n var requiredX = this.offset.x + x;\n var requiredY = this.offset.y + y;\n var diffX = this.calculateMouseActionXDiff(args);\n var diffY = this.calculateMouseActionYDiff(args);\n var selectedItem = this.commandHandler.selectedItems.annotations[0];\n var cobject = void 0;\n if (!this.helper) {\n // eslint-disable-next-line\n cobject = this.commandHandler.selectedItems.annotations.length > 0 ? cloneObject(this.commandHandler.selectedItems.annotations[0]) : cloneObject(this.commandHandler.selectedItems.formFields[0]);\n if (cobject.wrapper) {\n diffX = requiredX - cobject.wrapper.offsetX;\n diffY = requiredY - cobject.wrapper.offsetY;\n // eslint-disable-next-line max-len\n cobject.bounds = this.commandHandler.selectedItems.annotations.length > 0 ? this.commandHandler.selectedItems.annotations[0].wrapper.bounds : this.commandHandler.selectedItems.formFields[0].wrapper.bounds;\n }\n cobject.wrapper = undefined;\n cobject.id = 'diagram_helper';\n if (cobject.shapeAnnotationType === 'Stamp') {\n cobject.strokeColor = '';\n cobject.borderDashArray = '';\n cobject.fillColor = 'transparent';\n cobject.stampFillColor = 'transparent';\n cobject.data = '';\n }\n else if (cobject.shapeAnnotationType === 'FreeText') {\n cobject.strokeColor = 'blue';\n cobject.fillColor = 'transparent';\n cobject.thickness = 1;\n cobject.opacity = 1;\n cobject.dynamicText = '';\n }\n else if (cobject.shapeAnnotationType === 'SignatureText') {\n cobject.strokeColor = 'red';\n cobject.borderDashArray = '5,5';\n cobject.fillColor = 'transparent';\n cobject.thickness = 2;\n cobject.opacity = 1;\n cobject.data = '';\n }\n else {\n cobject.strokeColor = 'red';\n cobject.borderDashArray = '5,5';\n cobject.fillColor = 'transparent';\n cobject.thickness = 2;\n cobject.opacity = 1;\n }\n if (cobject.enableShapeLabel === true) {\n cobject.labelContent = '';\n }\n var shapeAnnotationType = cobject.shapeAnnotationType;\n if (!isStamp && shapeAnnotationType !== 'Image' && shapeAnnotationType !== 'SignatureImage') {\n this.helper = cobject = this.commandHandler.add(cobject);\n }\n else {\n cobject = this.helper = args.source;\n }\n if (this.commandHandler.selectedItems.annotations.length > 0) {\n this.commandHandler.selectedItems.annotations = [cobject];\n }\n else {\n this.commandHandler.selectedItems.formFields = [cobject];\n }\n }\n else {\n diffX = requiredX - this.helper.wrapper.offsetX;\n diffY = requiredY - this.helper.wrapper.offsetY;\n }\n if (this.helper && this.helper.shapeAnnotationType === 'Stamp') {\n isStamp = true;\n }\n // eslint-disable-next-line max-len\n if (this.commandHandler.checkBoundaryConstraints(diffX, diffY, this.pdfViewerBase.activeElements.activePageID, this.helper.wrapper.bounds, isStamp, isSkip)) {\n var shapeAnnotationType = this.helper.shapeAnnotationType;\n if (this.helper && (shapeAnnotationType === 'Image' || shapeAnnotationType === 'SignatureImage')) {\n this.checkisAnnotationMove(args);\n // eslint-disable-next-line max-len\n var currentSelctor_1 = args.source.annotationSelectorSettings;\n this.commandHandler.clearSelection(this.pdfViewerBase.activeElements.activePageID);\n this.commandHandler.select([args.source.id], currentSelctor_1);\n // eslint-disable-next-line max-len\n this.commandHandler.dragSelectedObjects(diffX, diffY, this.pdfViewerBase.activeElements.activePageID, currentSelctor_1, this.helper);\n this.commandHandler.renderSelector(this.pdfViewerBase.activeElements.activePageID, currentSelctor_1);\n }\n else {\n this.commandHandler.dragSelectedObjects(diffX, diffY, this.pdfViewerBase.activeElements.activePageID, currentSelctor, this.helper);\n }\n this.prevNode = this.helper;\n this.prevPosition = this.currentPosition;\n }\n else {\n this.currentPosition = this.prevPosition;\n }\n if (selectedItem && selectedItem.annotName) {\n this.commandHandler.annotation.triggerAnnotationMove(selectedItem, true);\n }\n }\n return true;\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {void}\n */\n MoveTool.prototype.mouseLeave = function (args) {\n var currentSelctor = args.source.annotationSelectorSettings;\n var requiredX = this.offset.x + this.calculateMouseXDiff();\n var requiredY = this.offset.y + this.calculateMouseYDiff();\n var diffX = requiredX - args.source.wrapper.offsetX;\n var diffY = requiredY - args.source.wrapper.offsetY;\n this.commandHandler.dragSelectedObjects(diffX, diffY, this.prevPageId, currentSelctor, null);\n this.commandHandler.renderSelector(this.prevPageId, currentSelctor);\n _super.prototype.mouseLeave.call(this, args);\n };\n /**\n * @private\n * @returns {void}\n */\n MoveTool.prototype.endAction = function () {\n _super.prototype.endAction.call(this);\n this.currentTarget = null;\n this.prevPosition = null;\n };\n MoveTool.prototype.checkisAnnotationMove = function (args) {\n // eslint-disable-next-line max-len\n if (this.commandHandler.selectedItems && this.commandHandler.selectedItems.annotations && this.commandHandler.selectedItems.annotations.length > 0) {\n if (this.commandHandler.selectedItems.annotations[0].annotName === args.source.annotName) {\n this.commandHandler.viewerBase.isAnnotationMouseMove = true;\n }\n }\n else {\n this.commandHandler.viewerBase.isAnnotationMouseMove = false;\n }\n // eslint-disable-next-line max-len\n if (this.commandHandler.selectedItems && this.commandHandler.selectedItems.formFields && this.commandHandler.selectedItems.formFields.length > 0) {\n if (this.commandHandler.selectedItems.formFields[0].name === args.source.name) {\n this.commandHandler.viewerBase.isFormFieldMouseMove = true;\n }\n }\n else {\n this.commandHandler.viewerBase.isFormFieldMouseMove = false;\n }\n };\n return MoveTool;\n}(ToolBase));\nexport { MoveTool };\n/** @hidden */\nvar StampTool = /** @class */ (function (_super) {\n __extends(StampTool, _super);\n function StampTool() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {any} - Returns the mouse up event.\n */\n // eslint-disable-next-line\n StampTool.prototype.mouseDown = function (args) {\n _super.prototype.mouseUp.call(this, args);\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {boolean} - Returns the true or false.\n */\n StampTool.prototype.mouseMove = function (args) {\n // eslint-disable-next-line\n var newObject;\n if (!this.inAction) {\n var pageIndex = this.pdfViewerBase.activeElements.activePageID;\n this.commandHandler.clearSelection(this.pdfViewerBase.activeElements.activePageID);\n // eslint-disable-next-line max-len\n var nodeElement = this.commandHandler.annotation.stampAnnotationModule.moveStampElement(args.position.x, args.position.y, pageIndex);\n if (nodeElement.shapeAnnotationType === 'SignatureText') {\n var textWidth = this.getTextWidth(nodeElement.data, nodeElement.fontSize, nodeElement.fontFamily);\n var widthRatio = 1;\n if (textWidth > nodeElement.bounds.width)\n widthRatio = nodeElement.bounds.width / textWidth;\n nodeElement.fontSize = this.getFontSize(Math.floor((nodeElement.fontSize * widthRatio)));\n var defaultFontSize = 32; // default font size.\n nodeElement.bounds.height = nodeElement.fontSize < defaultFontSize ? nodeElement.fontSize * 2 : nodeElement.bounds.height;\n nodeElement.thickness = 0;\n }\n newObject = this.commandHandler.add(nodeElement);\n args.source = this.commandHandler.annotations[this.commandHandler.annotations.length - 1];\n args.sourceWrapper = args.source.wrapper;\n this.inAction = true;\n // eslint-disable-next-line\n var currentSource = args.source;\n if (currentSource && (currentSource.shapeAnnotationType === 'HandWrittenSignature' || currentSource.shapeAnnotationType === 'SignatureText' || currentSource.shapeAnnotationType === 'SignatureImage')) {\n this['offset'] = { x: args.source.wrapper.offsetX - (args.source.wrapper.bounds.width / 2), y: args.source.wrapper.offsetY - (args.source.wrapper.bounds.height / 2) };\n }\n else {\n this['offset'] = { x: args.source.wrapper.offsetX, y: args.source.wrapper.offsetY };\n }\n this.startPosition = args.position;\n this.commandHandler.select([newObject.id]);\n }\n var currentSelctor = args.source.annotationSelectorSettings;\n _super.prototype.mouseMove.call(this, args, true, true);\n this.commandHandler.renderSelector(args.source.pageIndex, currentSelctor);\n return this.inAction;\n };\n StampTool.prototype.getTextWidth = function (text, font, fontFamily) {\n var canvas = document.createElement('canvas');\n var context = canvas.getContext('2d');\n var fontName;\n if (font) {\n fontName = font + 'px' + ' ' + fontFamily;\n }\n context.font = fontName || getComputedStyle(document.body).font;\n return context.measureText(text).width;\n };\n /**\n * @param {number} fontSize - Font size.\n * @returns {number} - Returns the font size.\n */\n StampTool.prototype.getFontSize = function (fontSize) {\n return (fontSize % 2 === 0) ? fontSize : --fontSize;\n };\n return StampTool;\n}(MoveTool));\nexport { StampTool };\n/**\n * Draws a node that is defined by the user\n *\n * @hidden\n */\nvar InkDrawingTool = /** @class */ (function (_super) {\n __extends(InkDrawingTool, _super);\n function InkDrawingTool(commandHandler, base, sourceObject) {\n var _this = _super.call(this, commandHandler, base) || this;\n _this.sourceObject = sourceObject;\n return _this;\n }\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {void}\n */\n InkDrawingTool.prototype.mouseDown = function (args) {\n this.pdfViewerBase.disableTextSelectionMode();\n _super.prototype.mouseDown.call(this, args);\n this.inAction = true;\n // eslint-disable-next-line\n var node = { currentPosition: this.currentPosition, prevPosition: this.prevPosition };\n this.commandHandler.annotation.inkAnnotationModule.drawInkInCanvas(node, this.pdfViewerBase.activeElements.activePageID);\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {boolean} - Returns true or false.\n */\n InkDrawingTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n if (this.inAction) {\n // eslint-disable-next-line\n var node = { currentPosition: this.currentPosition, prevPosition: this.pdfViewerBase.prevPosition };\n this.commandHandler.annotation.inkAnnotationModule.drawInkInCanvas(node, this.pdfViewerBase.activeElements.activePageID);\n }\n return this.inAction;\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {boolean} - Returns true.\n */\n InkDrawingTool.prototype.mouseUp = function (args) {\n this.commandHandler.annotation.inkAnnotationModule.storePathData();\n return true;\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {void}\n */\n InkDrawingTool.prototype.mouseLeave = function (args) {\n //this.mouseUp(args);\n };\n /**\n * @private\n * @returns {void}\n */\n InkDrawingTool.prototype.endAction = function () {\n _super.prototype.endAction.call(this);\n };\n return InkDrawingTool;\n}(ToolBase));\nexport { InkDrawingTool };\n/**\n * Helps to edit the selected connectors\n *\n * @hidden\n */\nvar ConnectTool = /** @class */ (function (_super) {\n __extends(ConnectTool, _super);\n function ConnectTool(commandHandler, base, endPoint) {\n var _this = _super.call(this, commandHandler, base, true) || this;\n _this.endPoint = endPoint;\n return _this;\n }\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {void}\n */\n ConnectTool.prototype.mouseDown = function (args) {\n this.inAction = true;\n this.undoElement = undefined;\n _super.prototype.mouseDown.call(this, args);\n var oldValue;\n var connectors;\n if (args.source && args.source.annotations) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n oldValue = { x: this.prevPosition.x, y: this.prevPosition.y };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n connectors = args.source.annotations[0];\n }\n this.initialPosition = args.position;\n this.prevSource = this.commandHandler.selectedItems.annotations[0];\n var nodeElement = cloneObject(args.source);\n this.redoElement = {\n bounds: {\n x: nodeElement.wrapper.offsetX, y: nodeElement.wrapper.offsetY,\n width: nodeElement.wrapper.actualSize.width, height: nodeElement.wrapper.actualSize.height\n }\n // eslint-disable-next-line\n };\n if (isLineShapes(nodeElement)) {\n this.redoElement.vertexPoints = nodeElement.vertexPoints;\n this.redoElement.leaderHeight = nodeElement.leaderHeight;\n if (nodeElement.measureType === 'Distance' || nodeElement.measureType === 'Perimeter' || nodeElement.measureType === 'Area' || nodeElement.measureType === 'Volume') {\n this.redoElement.notes = nodeElement.notes;\n }\n }\n this.currentPosition = args.position;\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {void}\n */\n ConnectTool.prototype.mouseUp = function (args) {\n if (this.commandHandler) {\n var node = this.commandHandler.selectedItems.annotations[0];\n if (node) {\n // eslint-disable-next-line\n var annotationSettings = this.commandHandler.annotationModule.findAnnotationSettings(node);\n var annotationMaxHeight = 0;\n var annotationMaxWidth = 0;\n var annotationMinHeight = 0;\n var annotationMinWidth = 0;\n // eslint-disable-next-line max-len\n if (annotationSettings.minWidth || annotationSettings.maxWidth || annotationSettings.minHeight || annotationSettings.maxHeight) {\n annotationMaxHeight = annotationSettings.maxHeight ? annotationSettings.maxHeight : 2000;\n annotationMaxWidth = annotationSettings.maxWidth ? annotationSettings.maxWidth : 2000;\n annotationMinHeight = annotationSettings.minHeight ? annotationSettings.minHeight : 0;\n annotationMinWidth = annotationSettings.minWidth ? annotationSettings.minWidth : 0;\n }\n if (node.vertexPoints.length > 3) {\n // eslint-disable-next-line\n var sizeObject = this.commandHandler.viewerBase.checkAnnotationWidth(node.vertexPoints);\n var width = sizeObject.width;\n var height = sizeObject.height;\n if (annotationMinHeight || annotationMinWidth || annotationMaxHeight || annotationMaxWidth) {\n // eslint-disable-next-line max-len\n if ((height > annotationMinHeight && height < annotationMaxHeight) || (width > annotationMinWidth && width < annotationMaxWidth)) {\n // eslint-disable-next-line max-len\n this.commandHandler.nodePropertyChange(this.prevSource, { vertexPoints: node.vertexPoints, leaderHeight: node.leaderHeight });\n }\n }\n else {\n // eslint-disable-next-line max-len\n this.commandHandler.nodePropertyChange(this.prevSource, { vertexPoints: node.vertexPoints, leaderHeight: node.leaderHeight });\n }\n }\n else {\n if (annotationMinHeight || annotationMinWidth || annotationMaxHeight || annotationMaxWidth) {\n if (node.shapeAnnotationType === 'Line' || node.shapeAnnotationType === 'Distance' || node.shapeAnnotationType === 'LineWidthArrowHead') {\n var x = 0;\n var y = 0;\n if (node.vertexPoints[0].x > node.vertexPoints[1].x) {\n x = node.vertexPoints[0].x - node.vertexPoints[1].x;\n }\n else {\n x = node.vertexPoints[1].x - node.vertexPoints[0].x;\n }\n if (node.vertexPoints[0].y > node.vertexPoints[1].y) {\n y = node.vertexPoints[0].y - node.vertexPoints[1].y;\n }\n else {\n y = node.vertexPoints[1].y - node.vertexPoints[0].y;\n }\n var diff = (x > y) ? x : y;\n if (diff < (annotationMaxHeight || annotationMaxWidth) && diff > (annotationMinHeight || annotationMinWidth)) {\n // eslint-disable-next-line max-len\n this.commandHandler.nodePropertyChange(this.prevSource, { vertexPoints: node.vertexPoints, leaderHeight: node.leaderHeight });\n }\n }\n else {\n // eslint-disable-next-line max-len\n this.commandHandler.nodePropertyChange(this.prevSource, { vertexPoints: node.vertexPoints, leaderHeight: node.leaderHeight });\n }\n }\n else {\n // eslint-disable-next-line max-len\n this.commandHandler.nodePropertyChange(this.prevSource, { vertexPoints: node.vertexPoints, leaderHeight: node.leaderHeight });\n }\n }\n var currentSelctor = args.source.annotationSelectorSettings;\n this.commandHandler.clearSelection(this.pdfViewerBase.activeElements.activePageID);\n this.commandHandler.select([this.prevSource.id], currentSelctor);\n this.commandHandler.renderSelector(this.pdfViewerBase.activeElements.activePageID, currentSelctor);\n // eslint-disable-next-line\n var newShapeElementObject = {\n bounds: {\n x: args.source.wrapper.offsetX, y: args.source.wrapper.offsetY,\n width: args.source.wrapper.actualSize.width, height: args.source.wrapper.actualSize.height\n }\n };\n if (node.measureType === 'Distance' || node.measureType === 'Perimeter' || node.measureType === 'Area' || node.measureType === 'Volume') {\n this.commandHandler.annotation.updateCalibrateValues(this.commandHandler.selectedItems.annotations[0]);\n newShapeElementObject.notes = args.source.notes;\n }\n if (isLineShapes(args.source)) {\n newShapeElementObject.vertexPoints = args.source.vertexPoints;\n newShapeElementObject.leaderHeight = args.source.leaderHeight;\n }\n // eslint-disable-next-line\n this.commandHandler.annotation.addAction(this.pageIndex, null, this.prevSource, 'Resize', '', this.redoElement, newShapeElementObject);\n }\n }\n _super.prototype.mouseUp.call(this, args);\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {boolean} - Returns true or false.\n */\n ConnectTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n var connector;\n this.currentPosition = args.position;\n if (this.currentPosition && this.prevPosition) {\n var diffX = this.currentPosition.x - this.prevPosition.x;\n var diffY = this.currentPosition.y - this.prevPosition.y;\n var newValue = void 0;\n var oldValue = void 0;\n if (args.source && args.source.annotations) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n newValue = {\n x: this.currentPosition.x, y: this.currentPosition.y\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n oldValue = {\n x: this.prevPosition.x, y: this.prevPosition.y\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n connector = args.source.annotations[0];\n }\n if (this.inAction && this.endPoint !== undefined && diffX !== 0 || diffY !== 0) {\n if (!this.helper) {\n // eslint-disable-next-line\n var cloneShapebject = cloneObject(this.commandHandler.selectedItems.annotations[0]);\n cloneShapebject.id = 'diagram_helper';\n cloneShapebject.strokeColor = 'red';\n cloneShapebject.borderDashArray = '5,5';\n cloneShapebject.fillColor = 'transparent';\n cloneShapebject.thickness = 2;\n cloneShapebject.opacity = 1;\n if (cloneShapebject.enableShapeLabel === true) {\n cloneShapebject.labelContent = '';\n }\n this.helper = cloneShapebject = this.commandHandler.add(cloneShapebject);\n this.commandHandler.selectedItems.annotations = [cloneShapebject];\n }\n var currentSelctor = args.source.annotationSelectorSettings;\n this.blocked = !this.commandHandler.dragConnectorEnds(this.endPoint, this.helper, this.currentPosition, this.selectedSegment, args.target, null, currentSelctor);\n this.commandHandler.renderSelector(this.pdfViewerBase.activeElements.activePageID, currentSelctor);\n }\n }\n this.prevPosition = this.currentPosition;\n return !this.blocked;\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {void}\n */\n ConnectTool.prototype.mouseLeave = function (args) {\n this.mouseUp(args);\n };\n /**\n * @private\n * @returns {void}\n */\n ConnectTool.prototype.endAction = function () {\n _super.prototype.endAction.call(this);\n this.prevPosition = null;\n this.endPoint = null;\n };\n return ConnectTool;\n}(ToolBase));\nexport { ConnectTool };\n/**\n * Scales the selected objects\n *\n * @hidden\n */\nvar ResizeTool = /** @class */ (function (_super) {\n __extends(ResizeTool, _super);\n function ResizeTool(commandHandler, base, corner) {\n var _this = _super.call(this, commandHandler, base, true) || this;\n /** @private */\n _this.initialBounds = new Rect();\n _this.corner = corner;\n return _this;\n }\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {void} - Returns true or false.\n */\n ResizeTool.prototype.mouseDown = function (args) {\n _super.prototype.mouseDown.call(this, args);\n this.initialBounds.x = args.source.wrapper.offsetX;\n this.initialBounds.y = args.source.wrapper.offsetY;\n this.initialBounds.height = args.source.wrapper.actualSize.height;\n this.initialBounds.width = args.source.wrapper.actualSize.width;\n this.initialPosition = args.position;\n var node = cloneObject(args.source);\n this.redoElement = {\n bounds: {\n x: node.wrapper.offsetX, y: node.wrapper.offsetY,\n width: node.wrapper.actualSize.width, height: node.wrapper.actualSize.height\n }\n // eslint-disable-next-line\n };\n if (isLineShapes(node)) {\n this.redoElement.vertexPoints = node.vertexPoints;\n this.redoElement.leaderHeight = node.leaderHeight;\n }\n if (node.measureType === 'Radius') {\n this.redoElement.notes = node.notes;\n }\n // eslint-disable-next-line max-len\n this.prevSource = this.commandHandler.selectedItems.annotations.length > 0 ? this.commandHandler.selectedItems.annotations[0] : this.commandHandler.selectedItems.formFields[0];\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @param {boolean} isPreventHistory - Specified the prevent history value.\n * @returns {boolean} - Returns true or false.\n */\n ResizeTool.prototype.mouseUp = function (args, isPreventHistory) {\n var object = args.source;\n var oldObject = cloneObject(args.source);\n if (this.commandHandler && this.prevSource) {\n this.commandHandler.clearSelection(this.pdfViewerBase.activeElements.activePageID);\n this.commandHandler.viewerBase.isAnnotationSelect = true;\n this.commandHandler.viewerBase.isFormFieldSelect = true;\n this.commandHandler.select([this.prevSource.id], this.prevSource.annotationSelectorSettings);\n // eslint-disable-next-line max-len\n var deltaValues = this.updateSize(this.prevSource, this.currentPosition, this.initialPosition, this.corner, this.initialBounds, null, true);\n this.blocked = this.scaleObjects(deltaValues.width, deltaValues.height, this.corner, this.currentPosition, this.initialPosition, this.prevSource, args.info.ctrlKey);\n if (this.commandHandler.selectedItems && this.commandHandler.selectedItems.annotations &&\n this.commandHandler.selectedItems.annotations[0] && this.commandHandler.selectedItems.annotations[0].shapeAnnotationType === 'Stamp') {\n if (this.commandHandler.stampSettings.minHeight || this.commandHandler.stampSettings.minWidth) {\n this.commandHandler.select([this.prevSource.id], this.prevSource.annotationSelectorSettings);\n }\n }\n if (this.commandHandler.selectedItems.formFields.length > 0 && (this.commandHandler.selectedItems.formFields[0].formFieldAnnotationType === 'Textbox' || this.commandHandler.selectedItems.formFields[0].formFieldAnnotationType === 'Checkbox'\n || this.commandHandler.selectedItems.formFields[0].formFieldAnnotationType === 'RadioButton' || this.commandHandler.selectedItems.formFields[0].formFieldAnnotationType === 'InitialField' || this.commandHandler.selectedItems.formFields[0].formFieldAnnotationType === 'SignatureField'\n || this.commandHandler.selectedItems.formFields[0].formFieldAnnotationType === 'DropdownList' || this.commandHandler.selectedItems.formFields[0].formFieldAnnotationType === 'ListBox' || this.commandHandler.selectedItems.formFields[0].formFieldAnnotationType === 'PasswordField')) {\n if (this.commandHandler.selectedItems.formFields[0].formFieldAnnotationType === 'SignatureField') {\n this.commandHandler.selectedItems.formFields[0].signatureIndicatorSettings = this.commandHandler.selectedItems.formFields[0].signatureIndicatorSettings ? this.commandHandler.selectedItems.formFields[0].signatureIndicatorSettings : { opacity: 1, backgroundColor: 'rgba(255, 228, 133, 0.35)', width: 19, height: 10, fontSize: 10, text: null, color: 'black' };\n }\n this.commandHandler.formDesignerModule.updateHTMLElement(this.commandHandler.selectedItems.formFields[0]);\n }\n this.commandHandler.renderSelector(this.prevPageId, this.prevSource.annotationSelectorSettings);\n if (this.commandHandler.annotation && args.source.wrapper) {\n // eslint-disable-next-line\n var newObject = {\n bounds: {\n x: args.source.wrapper.offsetX, y: args.source.wrapper.offsetY,\n width: args.source.wrapper.actualSize.width, height: args.source.wrapper.actualSize.height\n }\n };\n if (isLineShapes(args.source)) {\n newObject.vertexPoints = args.source.vertexPoints;\n newObject.leaderHeight = args.source.leaderHeight;\n }\n if (this.prevSource.measureType === 'Radius') {\n newObject.notes = args.source.notes;\n this.commandHandler.annotation.updateCalibrateValues(this.prevSource);\n }\n if (this.prevSource.shapeAnnotationType === 'SignatureText') {\n var boundsRatio = newObject.bounds.width / oldObject.width;\n newObject.fontSize = this.prevSource.wrapper.children[1].style.fontSize * boundsRatio;\n if (args.target != null) {\n args.target.fontSize = newObject.fontSize;\n // eslint-disable-next-line\n args.target.wrapper.children[1].style.fontSize = newObject.fontSize;\n args.target.wrapper.children[1].horizontalAlignment = 'Center';\n args.target.wrapper.children[1].verticalAlignment = 'Center';\n args.target.wrapper.children[1].setOffsetWithRespectToBounds(0, 0, 'Absolute');\n // eslint-disable-next-line\n this.commandHandler.selectedItems.annotations[0].wrapper.children[1].style.fontSize = newObject.fontSize;\n this.commandHandler.selectedItems.annotations[0].wrapper.children[1].horizontalAlignment = 'Center';\n this.commandHandler.selectedItems.annotations[0].wrapper.children[1].verticalAlignment = 'Center';\n this.commandHandler.selectedItems.annotations[0].wrapper.children[1].setOffsetWithRespectToBounds(0, 0, 'Absolute');\n this.commandHandler.selectedItems.annotations[0].fontSize = newObject.fontSize;\n }\n }\n if ((this.prevSource.shapeAnnotationType === 'SignatureText') && this.commandHandler.selectedItems.annotations && this.commandHandler.selectedItems.annotations.length > 0) {\n // eslint-disable-next-line max-len\n this.commandHandler.nodePropertyChange(this.commandHandler.selectedItems.annotations[0], { fontSize: newObject.fontSize });\n }\n // eslint-disable-next-line\n this.commandHandler.annotation.addAction(this.pageIndex, null, this.prevSource, 'Resize', '', this.redoElement, newObject);\n }\n if (args.target && args.target.formFieldAnnotationType) {\n var node = args.target;\n // eslint-disable-next-line\n var field = { value: node.value, fontFamily: node.fontFamily, fontSize: node.fontSize, fontStyle: node.fontStyle,\n // eslint-disable-next-line\n color: node.color, backgroundColor: node.backgroundColor, alignment: node.alignment, isReadonly: node.isReadonly, visibility: node.visibility,\n // eslint-disable-next-line\n maxLength: node.maxLength, isRequired: node.isRequired, isPrint: node.isPrint, rotation: node.rotateAngle, tooltip: node.tooltip,\n // eslint-disable-next-line\n options: node.options, isChecked: node.isChecked, isSelected: node.isSelected };\n // eslint-disable-next-line max-len\n var currentPosition = { X: args.source.wrapper.offsetX, Y: args.source.wrapper.offsetY, Width: args.source.wrapper.actualSize.width, Height: args.source.wrapper.actualSize.height };\n // eslint-disable-next-line max-len\n var previousPosition = { X: this.initialBounds.x, Y: this.initialBounds.y, Width: this.initialBounds.width, Height: this.initialBounds.height };\n this.commandHandler.fireFormFieldResizeEvent('formFieldResize', field, node.pageIndex, previousPosition, currentPosition);\n }\n if (this.commandHandler.annotation && this.commandHandler.annotation.stampAnnotationModule) {\n this.commandHandler.annotation.stampAnnotationModule.updateSessionStorage(args.source, this.prevSource.id, 'Resize');\n }\n }\n _super.prototype.mouseUp.call(this, args);\n return !this.blocked;\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {boolean} - Returns true or false.\n */\n ResizeTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n var object = args.source;\n this.currentPosition = args.position;\n var x = this.currentPosition.x - this.startPosition.x;\n var y = this.currentPosition.y - this.startPosition.y;\n x = x / this.commandHandler.viewerBase.getZoomFactor();\n y = y / this.commandHandler.viewerBase.getZoomFactor();\n // eslint-disable-next-line\n var annotationElement = args.source;\n // eslint-disable-next-line\n var size = this.getPoints(x, y);\n var width = annotationElement.width + size.x;\n var height = annotationElement.height + size.y;\n // eslint-disable-next-line\n var obj = object;\n if (object && object.annotations) {\n // eslint-disable-next-line\n obj = object.annotations[0];\n }\n // eslint-disable-next-line\n var annotationSettings = this.commandHandler.annotationModule ? this.commandHandler.annotationModule.findAnnotationSettings(obj) : {};\n var annotationMaxHeight = 0;\n var annotationMaxWidth = 0;\n var annotationMinHeight = 0;\n var annotationMinWidth = 0;\n if (annotationSettings.minWidth || annotationSettings.maxWidth || annotationSettings.minHeight || annotationSettings.maxHeight) {\n annotationMaxHeight = annotationSettings.maxHeight ? annotationSettings.maxHeight : 2000;\n annotationMaxWidth = annotationSettings.maxWidth ? annotationSettings.maxWidth : 2000;\n annotationMinHeight = annotationSettings.minHeight ? annotationSettings.minHeight : 0;\n annotationMinWidth = annotationSettings.minWidth ? annotationSettings.minWidth : 0;\n }\n if (annotationMinHeight || annotationMinWidth || annotationMaxHeight || annotationMaxWidth) {\n // eslint-disable-next-line max-len\n if ((height >= annotationMinHeight && height <= annotationMaxHeight) && (width >= annotationMinWidth && width <= annotationMaxWidth)) {\n // eslint-disable-next-line\n x = x;\n // eslint-disable-next-line\n y = y;\n }\n else {\n if (height < annotationMinHeight || height > annotationMaxHeight) {\n if (height < annotationMinHeight) {\n y = annotationMinHeight - annotationElement.height;\n }\n else {\n y = annotationMaxHeight - annotationElement.height;\n }\n }\n if (width < annotationMinWidth || width > annotationMaxWidth) {\n if (width < annotationMinWidth) {\n x = annotationMinWidth - annotationElement.width;\n }\n else {\n x = annotationMaxWidth - annotationElement.width;\n }\n }\n }\n }\n var changes = { x: x, y: y };\n if (this.currentElement.wrapper) {\n changes = rotatePoint(-this.currentElement.wrapper.rotateAngle, undefined, undefined, changes);\n }\n changes = this.getChanges(changes);\n this.commandHandler.renderSelector(this.prevPageId, this.prevSource.annotationSelectorSettings);\n if (!this.helper) {\n // eslint-disable-next-line\n var cobject = this.commandHandler.selectedItems.annotations.length > 0 ? cloneObject(this.commandHandler.selectedItems.annotations[0]) : cloneObject(this.commandHandler.selectedItems.formFields[0]);\n cobject.id = 'diagram_helper';\n if (cobject.shapeAnnotationType === 'Stamp') {\n cobject.strokeColor = '';\n cobject.borderDashArray = '';\n cobject.fillColor = 'transparent';\n cobject.stampFillColor = 'transparent';\n cobject.data = '';\n }\n else if (cobject.shapeAnnotationType === 'FreeText') {\n cobject.strokeColor = 'blue';\n cobject.fillColor = 'transparent';\n cobject.thickness = 1;\n cobject.opacity = 1;\n cobject.dynamicText = '';\n }\n else {\n // eslint-disable-next-line max-len\n cobject.bounds = this.commandHandler.selectedItems.annotations.length > 0 ? this.commandHandler.selectedItems.annotations[0].wrapper.bounds : this.commandHandler.selectedItems.formFields[0].wrapper.bounds;\n cobject.strokeColor = 'red';\n cobject.borderDashArray = '5,5';\n cobject.fillColor = 'transparent';\n cobject.thickness = 2;\n cobject.opacity = 1;\n }\n if (cobject.enableShapeLabel === true) {\n cobject.labelContent = '';\n }\n if (cobject.shapeAnnotationType === 'SignatureText') {\n cobject.fillColor = 'transparent';\n cobject.thickness = 1;\n cobject.opacity = 1;\n cobject.data = '';\n }\n this.helper = cobject = this.commandHandler.add(cobject);\n if (this.commandHandler.selectedItems.annotations.length > 0) {\n this.commandHandler.selectedItems.annotations = [cobject];\n }\n else {\n this.commandHandler.selectedItems.formFields = [cobject];\n }\n }\n var deltaValues = this.updateSize(this.helper, this.startPosition, this.currentPosition, this.corner, this.initialBounds);\n // eslint-disable-next-line max-len\n this.blocked = !(this.scaleObjects(deltaValues.width, deltaValues.height, this.corner, this.startPosition, this.currentPosition, this.helper, args.info.ctrlKey));\n this.prevPosition = this.currentPosition;\n return !this.blocked;\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {void}\n */\n ResizeTool.prototype.mouseLeave = function (args) {\n this.mouseUp(args);\n };\n ResizeTool.prototype.getTooltipContent = function (pdfAnnotationBaseModel) {\n return 'W:' + Math.round(pdfAnnotationBaseModel.wrapper.bounds.width) + ' ' + 'H:' + Math.round(pdfAnnotationBaseModel.wrapper.bounds.height);\n };\n ResizeTool.prototype.getChanges = function (change) {\n switch (this.corner) {\n case 'ResizeEast':\n return { x: change.x, y: 0 };\n case 'ResizeSouthEast':\n return change;\n case 'ResizeSouth':\n return { x: 0, y: change.y };\n case 'ResizeNorth':\n return { x: 0, y: -change.y };\n case 'ResizeNorthEast':\n return { x: change.x, y: -change.y };\n case 'ResizeNorthWest':\n return { x: -change.x, y: -change.y };\n case 'ResizeWest':\n return { x: -change.x, y: 0 };\n case 'ResizeSouthWest':\n return { x: -change.x, y: change.y };\n }\n return change;\n };\n ResizeTool.prototype.getPoints = function (x, y) {\n switch (this.corner) {\n case 'ResizeEast':\n return { x: x, y: 0 };\n case 'ResizeSouthEast':\n return { x: x, y: y };\n case 'ResizeSouth':\n return { x: 0, y: y };\n case 'ResizeNorth':\n return { x: 0, y: -y };\n case 'ResizeNorthEast':\n return { x: x, y: -y };\n case 'ResizeNorthWest':\n return { x: -x, y: -y };\n case 'ResizeWest':\n return { x: -x, y: 0 };\n case 'ResizeSouthWest':\n return { x: -x, y: y };\n }\n return { x: x, y: y };\n };\n /**\n * Updates the size with delta width and delta height using scaling.\n * Aspect ratio used to resize the width or height based on resizing the height or width.\n *\n * @param {number} deltaWidth - Specified the delta width.\n * @param {number} deltaHeight - Specified the delta height.\n * @param {string} corner - Specified the corner value.\n * @param {PointModel} startPoint - Specified the start point of the annotation.\n * @param {PointModel} endPoint - Specified the end point of the annotation.\n * @param {SelectorModel | PdfAnnotationBaseModel} source - Specified the annotation object.\n * @param {boolean} isCtrlKeyPressed - becomes true when ctrl Key is pressed.\n * @returns {boolean} - Returns true or false.\n */\n ResizeTool.prototype.scaleObjects = function (deltaWidth, deltaHeight, corner, startPoint, endPoint, source, isCtrlKeyPressed) {\n // eslint-disable-next-line\n var annotationSettings = this.commandHandler.annotationModule ? this.commandHandler.annotationModule.findAnnotationSettings(source) : {};\n var annotationMaxHeight = 0;\n var annotationMaxWidth = 0;\n var annotationMinHeight = 0;\n var annotationMinWidth = 0;\n var x = this.currentPosition.x - this.startPosition.x;\n var y = this.currentPosition.y - this.startPosition.y;\n x = x / this.commandHandler.viewerBase.getZoomFactor();\n y = y / this.commandHandler.viewerBase.getZoomFactor();\n // eslint-disable-next-line\n var annotationElement = source;\n // eslint-disable-next-line\n var size = this.getPoints(x, y);\n var width = annotationElement.bounds.width + size.x;\n var height = annotationElement.bounds.height + size.y;\n if (annotationSettings.minWidth || annotationSettings.maxWidth || annotationSettings.minHeight || annotationSettings.maxHeight) {\n annotationMaxHeight = annotationSettings.maxHeight ? annotationSettings.maxHeight : 2000;\n annotationMaxWidth = annotationSettings.maxWidth ? annotationSettings.maxWidth : 2000;\n annotationMinHeight = annotationSettings.minHeight ? annotationSettings.minHeight : 0;\n annotationMinWidth = annotationSettings.minWidth ? annotationSettings.minWidth : 0;\n }\n if (source instanceof Selector && source.annotations.length === 1 &&\n (source.annotations[0].shapeAnnotationType === 'Perimeter' || source.annotations[0].shapeAnnotationType === 'Radius' || source.shapeAnnotationType === 'Stamp')) {\n if (!(deltaHeight === 1 && deltaWidth === 1)) {\n deltaHeight = deltaWidth = Math.max(deltaHeight === 1 ? 0 : deltaHeight, deltaWidth === 1 ? 0 : deltaWidth);\n }\n else if (startPoint !== endPoint) {\n deltaHeight = deltaWidth = Math.max(deltaHeight, deltaWidth);\n }\n else {\n deltaHeight = deltaWidth = 0;\n }\n }\n else if (source.shapeAnnotationType === 'Image' || (source.shapeAnnotationType === 'HandWrittenSignature' || source.shapeAnnotationType === 'SignatureText' || source.shapeAnnotationType === 'SignatureImage')) {\n if (!(deltaHeight === 1 && deltaWidth === 1)) {\n if (isCtrlKeyPressed) {\n if (width >= annotationMaxWidth && height < annotationMaxHeight) {\n deltaHeight = Math.max(deltaHeight, deltaWidth);\n }\n if (height >= annotationMaxHeight && width < annotationMaxWidth) {\n deltaWidth = Math.max(deltaHeight, deltaWidth);\n }\n if (width < annotationMaxWidth && height < annotationMaxHeight) {\n deltaHeight = deltaWidth = Math.max(deltaHeight, deltaWidth);\n }\n }\n }\n if (!isCtrlKeyPressed) {\n deltaHeight = deltaWidth = Math.max(deltaHeight, deltaWidth);\n }\n }\n else {\n if (source.shapeAnnotationType === 'Perimeter' || source.shapeAnnotationType === 'Radius'\n || source.shapeAnnotationType === 'Stamp') {\n if (source.shapeAnnotationType === 'Stamp') {\n if (!annotationMaxHeight && !deltaHeight) {\n deltaHeight = Math.max(deltaHeight === 1 ? 0 : deltaHeight);\n }\n if (!annotationMaxWidth && !deltaWidth) {\n deltaWidth = Math.max(deltaWidth === 1 ? 0 : deltaWidth);\n }\n }\n else {\n if (!annotationMaxHeight || !annotationMaxWidth) {\n if (!(deltaHeight === 1 && deltaWidth === 1)) {\n deltaHeight = deltaWidth = Math.max(deltaHeight === 1 ? 0 : deltaHeight, deltaWidth === 1 ? 0 : deltaWidth);\n }\n }\n }\n }\n }\n this.blocked = this.commandHandler.scaleSelectedItems(deltaWidth, deltaHeight, this.getPivot(this.corner));\n return this.blocked;\n };\n return ResizeTool;\n}(ToolBase));\nexport { ResizeTool };\n/**\n * Draws a node that is defined by the user\n *\n * @hidden\n */\nvar NodeDrawingTool = /** @class */ (function (_super) {\n __extends(NodeDrawingTool, _super);\n function NodeDrawingTool(commandHandler, base, sourceObject) {\n var _this = _super.call(this, commandHandler, base) || this;\n _this.sourceObject = sourceObject;\n return _this;\n }\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {void}\n */\n NodeDrawingTool.prototype.mouseDown = function (args) {\n if (!isNaN(this.pdfViewerBase.activeElements.activePageID) && event.target.className != 'e-pv-page-container') {\n _super.prototype.mouseDown.call(this, args);\n this.inAction = true;\n var node = { bounds: { x: 100, y: 300, width: 100, height: 100 }, pageIndex: 0, strokeColor: 'red', thickness: 3 };\n node.id = randomId();\n this.sourceObject.pageIndex = node.pageIndex = this.pdfViewerBase.activeElements.activePageID || 0;\n this.sourceObject.enableShapeLabel = this.commandHandler.enableShapeLabel;\n this.pdfViewerBase.updateFreeTextProperties(this.sourceObject);\n this.isFormDesign = false;\n // eslint-disable-next-line\n var formFieldElement = document.getElementById('FormField_helper_html_element');\n if (formFieldElement) {\n formFieldElement.remove();\n }\n // eslint-disable-next-line\n this.commandHandler.drawingObject = this.drawingObject = this.commandHandler.add(this.sourceObject || node);\n if (this.drawingObject.formFieldAnnotationType === 'Textbox' || this.drawingObject.formFieldAnnotationType === 'SignatureField' || this.drawingObject.formFieldAnnotationType === 'InitialField' ||\n this.drawingObject.formFieldAnnotationType === 'Checkbox' || this.drawingObject.formFieldAnnotationType === 'ListBox' || this.drawingObject.formFieldAnnotationType === 'RadioButton' ||\n this.drawingObject.formFieldAnnotationType === 'DropdownList' || this.drawingObject.formFieldAnnotationType === 'PasswordField') {\n this.inAction = false;\n // eslint-disable-next-line\n this.drawingObject.pageNumber = this.pdfViewerBase.getActivePage(true);\n // eslint-disable-next-line\n var bounds = this.commandHandler.formDesignerModule.updateFormFieldInitialSize(this.drawingObject.wrapper.children[0], this.drawingObject.formFieldAnnotationType);\n var pageWidth = this.pdfViewerBase.pageContainer.firstElementChild.clientWidth - bounds.width;\n var pageHeight = this.pdfViewerBase.pageContainer.firstElementChild.clientHeight - bounds.height;\n // eslint-disable-next-line\n var left = this.pdfViewerBase.pageContainer.firstElementChild.offsetLeft;\n var offsetX = void 0;\n // eslint-disable-next-line\n if (this.currentPosition.y >= pageHeight && event.target && event.target.parentElement && event.target.parentElement.classList.contains('foreign-object')) {\n // eslint-disable-next-line\n var targetParentRect = event.path[3].getBoundingClientRect();\n // eslint-disable-next-line\n offsetX = event.clientX - targetParentRect.left;\n }\n else {\n offsetX = this.currentPosition.x - left;\n }\n // eslint-disable-next-line\n var rect = void 0;\n if (this.currentPosition.x >= pageWidth && this.currentPosition.y >= pageHeight) {\n // eslint-disable-next-line max-len\n rect = { x: pageWidth, y: pageHeight, width: this.drawingObject.wrapper.children[0].width, height: this.drawingObject.wrapper.children[0].height };\n }\n else if (this.currentPosition.x >= pageWidth) {\n // eslint-disable-next-line max-len\n rect = { x: pageWidth, y: this.currentPosition.y, width: this.drawingObject.wrapper.children[0].width, height: this.drawingObject.wrapper.children[0].height };\n }\n else if (this.currentPosition.y >= pageHeight) {\n // eslint-disable-next-line max-len\n rect = { x: offsetX, y: pageHeight, width: this.drawingObject.wrapper.children[0].width, height: this.drawingObject.wrapper.children[0].height };\n }\n else {\n // eslint-disable-next-line max-len\n rect = { x: this.currentPosition.x, y: this.currentPosition.y, width: this.drawingObject.wrapper.children[0].width, height: this.drawingObject.wrapper.children[0].height };\n }\n this.updateNodeDimension(this.drawingObject, rect);\n this.drawingObject.bounds.x = this.drawingObject.bounds.x - (this.drawingObject.bounds.width / 2);\n this.drawingObject.bounds.y = this.drawingObject.bounds.y - (this.drawingObject.bounds.height / 2);\n this.commandHandler.formFieldCollection.push(this.drawingObject);\n var drawingObject = this.drawingObject;\n // eslint-disable-next-line max-len\n var formField = {\n id: drawingObject.id, name: drawingObject.name, value: drawingObject.value,\n // eslint-disable-next-line max-len\n type: drawingObject.formFieldAnnotationType, isReadOnly: drawingObject.isReadonly, fontFamily: drawingObject.fontFamily,\n // eslint-disable-next-line max-len\n fontSize: drawingObject.fontSize, fontStyle: drawingObject.fontStyle, color: drawingObject.color, backgroundColor: drawingObject.backgroundColor,\n // eslint-disable-next-line max-len\n alignment: drawingObject.alignment, visibility: drawingObject.visibility, maxLength: drawingObject.maxLength, isRequired: drawingObject.isRequired,\n // eslint-disable-next-line max-len\n isPrint: drawingObject.isPrint, isSelected: drawingObject.isSelected, isChecked: drawingObject.isChecked, tooltip: drawingObject.tooltip, bounds: drawingObject.bounds, thickness: drawingObject.thickness, borderColor: drawingObject.borderColor,\n signatureIndicatorSettings: drawingObject.signatureIndicatorSettings, pageIndex: drawingObject.pageIndex\n };\n this.commandHandler.formFieldCollections.push(formField);\n // eslint-disable-next-line max-len\n this.commandHandler.formDesignerModule.drawHTMLContent(this.drawingObject.formFieldAnnotationType, this.drawingObject.wrapper.children[0], this.drawingObject, this.drawingObject.pageIndex, this.commandHandler);\n this.commandHandler.select([this.commandHandler.drawingObject.id], this.commandHandler.annotationSelectorSettings);\n if (this.commandHandler.annotation) {\n this.commandHandler.annotation.addAction(this.pdfViewerBase.getActivePage(true), null, this.drawingObject, 'Addition', '', this.drawingObject, this.drawingObject);\n }\n this.endAction();\n this.pdfViewerBase.tool = null;\n this.pdfViewerBase.action = 'Select';\n this.drawingObject = null;\n this.pdfViewerBase.isMouseDown = false;\n this.pdfViewerBase.pdfViewer.drawingObject = null;\n this.isFormDesign = true;\n }\n }\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {boolean} - Returns true or false.\n */\n NodeDrawingTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n if (this.inAction && Point.equals(this.currentPosition, this.prevPosition) === false) {\n this.dragging = true;\n var rect = Rect.toBounds([this.prevPosition, this.currentPosition]);\n this.updateNodeDimension(this.drawingObject, rect);\n if (this.drawingObject.shapeAnnotationType === 'Radius') {\n this.updateRadiusLinePosition(this.drawingObject.wrapper.children[1], this.drawingObject);\n }\n }\n return true;\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {void}\n */\n NodeDrawingTool.prototype.mouseUp = function (args) {\n if (this.drawingObject && this.dragging) {\n this.commandHandler.clearSelection(this.pdfViewerBase.activeElements.activePageID);\n this.commandHandler.select([this.drawingObject.id], this.commandHandler.annotationSelectorSettings);\n var drawnAnnotation = this.commandHandler.selectedItems.annotations[0];\n if (!isNullOrUndefined(drawnAnnotation) && !isNullOrUndefined(drawnAnnotation.wrapper)) {\n this.commandHandler.nodePropertyChange(drawnAnnotation, { bounds: { x: drawnAnnotation.wrapper.offsetX, y: drawnAnnotation.wrapper.offsetY } });\n this.commandHandler.annotation.updateCalibrateValues(this.drawingObject, true);\n if (this.commandHandler && !this.isFormDesign) {\n // eslint-disable-next-line\n this.commandHandler.annotation.addAction(this.pageIndex, null, this.drawingObject, 'Addition', '', this.drawingObject, this.drawingObject);\n }\n this.dragging = false;\n _super.prototype.mouseUp.call(this, args);\n this.inAction = false;\n }\n }\n else {\n _super.prototype.mouseUp.call(this, args);\n }\n this.drawingObject = null;\n };\n /**\n * @private\n * @returns {void}\n */\n NodeDrawingTool.prototype.endAction = function () {\n _super.prototype.endAction.call(this);\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @param {Rect} rect - Specified the annotation rect element.\n * @returns {void}\n */\n NodeDrawingTool.prototype.updateNodeDimension = function (obj, rect) {\n var zoom = this.commandHandler.viewerBase.getZoomFactor();\n obj.bounds.x = (rect.x / zoom) + rect.width / zoom;\n obj.bounds.y = (rect.y / zoom) + rect.height / zoom;\n obj.bounds.width = rect.width / zoom;\n obj.bounds.height = rect.height / zoom;\n // eslint-disable-next-line\n var annotationSettings = this.commandHandler.annotationModule ? this.commandHandler.annotationModule.findAnnotationSettings(obj) : {};\n var annotationMaxHeight = 0;\n var annotationMaxWidth = 0;\n if (annotationSettings.maxWidth || annotationSettings.maxHeight) {\n annotationMaxHeight = annotationSettings.maxHeight ? annotationSettings.maxHeight : 2000;\n annotationMaxWidth = annotationSettings.maxWidth ? annotationSettings.maxWidth : 2000;\n if (obj.bounds.width > annotationMaxWidth) {\n obj.bounds.width = annotationMaxWidth;\n }\n if (obj.bounds.height > annotationMaxHeight) {\n obj.bounds.height = annotationMaxHeight;\n }\n if (obj.bounds.height <= annotationMaxHeight && obj.bounds.width <= annotationMaxWidth) {\n this.commandHandler.nodePropertyChange(obj, { bounds: obj.bounds });\n }\n }\n else {\n this.commandHandler.nodePropertyChange(obj, { bounds: obj.bounds });\n }\n };\n /**\n * @private\n * @param {DrawingElement} obj - Specified the drawing element.\n * @param {PdfAnnotationBaseModel} node - Specified the annotation object.\n * @returns {void}\n */\n NodeDrawingTool.prototype.updateRadiusLinePosition = function (obj, node) {\n var trasPoint = { x: node.bounds.x + (node.bounds.width / 4), y: node.bounds.y };\n var center = { x: (node.bounds.x + (node.bounds.width / 2)), y: (node.bounds.y + (node.bounds.height / 2)) };\n var matrix = identityMatrix();\n rotateMatrix(matrix, node.rotateAngle, center.x, center.y);\n var rotatedPoint = transformPointByMatrix(matrix, trasPoint);\n var newPoint1 = { x: rotatedPoint.x, y: rotatedPoint.y };\n obj.offsetX = newPoint1.x;\n obj.offsetY = newPoint1.y;\n obj.width = node.bounds.width / 2;\n // eslint-disable-next-line\n var annotationSettings = this.commandHandler.annotationModule.findAnnotationSettings(node);\n var annotationMaxWidth = 0;\n if (annotationSettings.maxWidth) {\n annotationMaxWidth = annotationSettings.maxWidth ? annotationSettings.maxWidth : 2000;\n if (node.bounds.width > annotationMaxWidth) {\n node.bounds.width = annotationMaxWidth;\n obj.width = node.bounds.width / 2;\n }\n }\n this.commandHandler.renderDrawing(undefined, node.pageIndex);\n };\n return NodeDrawingTool;\n}(ToolBase));\nexport { NodeDrawingTool };\n/**\n * Draws a Polygon shape node dynamically using polygon Tool\n *\n * @hidden\n */\nvar PolygonDrawingTool = /** @class */ (function (_super) {\n __extends(PolygonDrawingTool, _super);\n function PolygonDrawingTool(commandHandler, base, action) {\n var _this = _super.call(this, commandHandler, base) || this;\n _this.action = action;\n return _this;\n }\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {void}\n */\n PolygonDrawingTool.prototype.mouseDown = function (args) {\n _super.prototype.mouseDown.call(this, args);\n this.inAction = true;\n if (!this.drawingObject) {\n this.startPoint = { x: this.startPosition.x, y: this.startPosition.y };\n var nodeAnnotElement = {\n bounds: { x: this.currentPosition.x, y: this.currentPosition.y, width: 5, height: 5 },\n // eslint-disable-next-line max-len\n vertexPoints: [{ x: this.startPoint.x / this.pdfViewerBase.getZoomFactor(), y: this.startPoint.y / this.pdfViewerBase.getZoomFactor() }, { x: this.currentPosition.x / this.pdfViewerBase.getZoomFactor(), y: this.currentPosition.y / this.pdfViewerBase.getZoomFactor() }],\n shapeAnnotationType: 'Line', fillColor: this.commandHandler.drawingObject.fillColor,\n strokeColor: this.commandHandler.drawingObject.strokeColor, pageIndex: this.pdfViewerBase.activeElements.activePageID,\n // eslint-disable-next-line max-len\n notes: this.commandHandler.drawingObject.notes, thickness: this.commandHandler.drawingObject.thickness, author: this.commandHandler.drawingObject.author,\n subject: this.commandHandler.drawingObject.subject, borderDashArray: this.commandHandler.drawingObject.borderDashArray,\n modifiedDate: this.commandHandler.drawingObject.modifiedDate, borderStyle: this.commandHandler.drawingObject.borderStyle,\n // eslint-disable-next-line max-len\n measureType: this.commandHandler.drawingObject.measureType, enableShapeLabel: this.commandHandler.enableShapeLabel, opacity: this.commandHandler.drawingObject.opacity\n };\n this.pdfViewerBase.updateFreeTextProperties(nodeAnnotElement);\n // eslint-disable-next-line\n this.drawingObject = this.commandHandler.add(nodeAnnotElement);\n }\n else {\n var pt = void 0;\n var obj = (this.drawingObject);\n pt = obj.vertexPoints[obj.vertexPoints.length - 1];\n pt = { x: pt.x, y: pt.y };\n var lastPoint = this.drawingObject.vertexPoints[this.drawingObject.vertexPoints.length - 1];\n if (!(lastPoint.x === pt.x && lastPoint.x === pt.y)) {\n this.drawingObject.vertexPoints.push(pt);\n }\n this.commandHandler.nodePropertyChange(obj, { vertexPoints: obj.vertexPoints });\n }\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {boolean} - Returns true or false.\n */\n PolygonDrawingTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n if (this.inAction && Point.equals(this.currentPosition, this.prevPosition) === false) {\n this.dragging = true;\n var obj = (this.drawingObject);\n if (this.drawingObject && this.currentPosition) {\n obj.vertexPoints[obj.vertexPoints.length - 1].x = this.currentPosition.x / this.pdfViewerBase.getZoomFactor();\n obj.vertexPoints[obj.vertexPoints.length - 1].y = this.currentPosition.y / this.pdfViewerBase.getZoomFactor();\n this.commandHandler.nodePropertyChange(obj, { vertexPoints: obj.vertexPoints });\n }\n if (obj.measureType === 'Perimeter') {\n updatePerimeterLabel(obj, obj.vertexPoints, this.commandHandler.annotation.measureAnnotationModule);\n }\n }\n return true;\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @param {boolean} isDoubleClineck - Specified the double click event or not.\n * @param {boolean} isMouseLeave - Specified the mouse leave event or not.\n * @returns {void}\n */\n PolygonDrawingTool.prototype.mouseUp = function (args, isDoubleClineck, isMouseLeave) {\n _super.prototype.mouseMove.call(this, args);\n // eslint-disable-next-line\n var currentSelector;\n if (args.source && args.annotationSelectorSettings !== null) {\n currentSelector = args.source.annotationSelectorSettings;\n }\n if (this.drawingObject) {\n // eslint-disable-next-line max-len\n var bounds = new Rect(this.drawingObject.vertexPoints[this.drawingObject.vertexPoints.length - 1].x - 20, this.drawingObject.vertexPoints[this.drawingObject.vertexPoints.length - 1].y - 20, 40, 40);\n var point = { x: this.drawingObject.vertexPoints[0].x, y: this.drawingObject.vertexPoints[0].y };\n if ((bounds.containsPoint(point) || isDoubleClineck) && this.dragging) {\n if (this.inAction) {\n this.inAction = false;\n if (this.drawingObject) {\n if (!isMouseLeave) {\n if (this.drawingObject.vertexPoints.length > 2) {\n this.drawingObject.vertexPoints.splice(this.drawingObject.vertexPoints.length - 1, 1);\n }\n }\n if (this.action === 'Polygon') {\n if (!isMouseLeave) {\n // eslint-disable-next-line max-len\n this.drawingObject.vertexPoints[this.drawingObject.vertexPoints.length - 1] = this.drawingObject.vertexPoints[0];\n }\n else {\n // eslint-disable-next-line max-len\n this.drawingObject.vertexPoints[this.drawingObject.vertexPoints.length] = this.drawingObject.vertexPoints[0];\n }\n this.commandHandler.nodePropertyChange(this.drawingObject, { vertexPoints: this.drawingObject.vertexPoints });\n var cobject = cloneObject(this.drawingObject);\n cobject.shapeAnnotationType = 'Polygon';\n cobject.bounds.width = cobject.wrapper.actualSize.width;\n cobject.bounds.height = cobject.wrapper.actualSize.height;\n cobject.bounds.x = this.drawingObject.wrapper.bounds.x;\n cobject.bounds.y = this.drawingObject.wrapper.bounds.y;\n this.commandHandler.add(cobject);\n this.commandHandler.remove(this.drawingObject);\n this.commandHandler.select([cobject.id], currentSelector);\n var drawingObject = this.commandHandler.selectedItems.annotations[0];\n if (drawingObject) {\n if (this.commandHandler.enableShapeAnnotation && (isNullOrUndefined(drawingObject.measureType) || drawingObject.measureType === '')) {\n // eslint-disable-next-line max-len\n this.commandHandler.annotation.shapeAnnotationModule.renderShapeAnnotations(drawingObject, drawingObject.pageIndex);\n }\n if (this.commandHandler.enableMeasureAnnotation && (drawingObject.measureType === 'Area' || drawingObject.measureType === 'Volume')) {\n if (drawingObject.measureType === 'Area') {\n // eslint-disable-next-line max-len\n drawingObject.notes = this.commandHandler.annotation.measureAnnotationModule.calculateArea(drawingObject.vertexPoints);\n // eslint-disable-next-line max-len\n this.commandHandler.annotation.stickyNotesAnnotationModule.addTextToComments(drawingObject.annotName, drawingObject.notes);\n }\n else if (drawingObject.measureType === 'Volume') {\n // eslint-disable-next-line max-len\n drawingObject.notes = this.commandHandler.annotation.measureAnnotationModule.calculateVolume(drawingObject.vertexPoints);\n // eslint-disable-next-line max-len\n this.commandHandler.annotation.stickyNotesAnnotationModule.addTextToComments(drawingObject.annotName, drawingObject.notes);\n }\n if (drawingObject.enableShapeLabel) {\n drawingObject.labelContent = drawingObject.notes;\n // eslint-disable-next-line max-len\n this.commandHandler.nodePropertyChange(drawingObject, { vertexPoints: drawingObject.vertexPoints, notes: drawingObject.notes });\n }\n // eslint-disable-next-line max-len\n this.commandHandler.annotation.measureAnnotationModule.renderMeasureShapeAnnotations(drawingObject, drawingObject.pageIndex);\n }\n }\n }\n else {\n if (!isMouseLeave) {\n if (isDoubleClineck) {\n this.drawingObject.vertexPoints.splice(this.drawingObject.vertexPoints.length - 1, 1);\n }\n }\n this.commandHandler.nodePropertyChange(this.drawingObject, {\n // eslint-disable-next-line max-len\n vertexPoints: this.drawingObject.vertexPoints, sourceDecoraterShapes: this.commandHandler.drawingObject.sourceDecoraterShapes,\n taregetDecoraterShapes: this.commandHandler.drawingObject.taregetDecoraterShapes\n });\n this.commandHandler.select([this.drawingObject.id], currentSelector);\n if (this.commandHandler.enableMeasureAnnotation && this.drawingObject.measureType === 'Perimeter') {\n this.commandHandler.renderDrawing(null, this.drawingObject.pageIndex);\n // eslint-disable-next-line max-len\n this.drawingObject.notes = this.commandHandler.annotation.measureAnnotationModule.calculatePerimeter(this.drawingObject);\n if (this.drawingObject.enableShapeLabel) {\n this.drawingObject.labelContent = this.drawingObject.notes;\n // eslint-disable-next-line max-len\n this.commandHandler.nodePropertyChange(this.drawingObject, { vertexPoints: this.drawingObject.vertexPoints, notes: this.drawingObject.notes });\n }\n // eslint-disable-next-line max-len\n this.commandHandler.annotation.stickyNotesAnnotationModule.addTextToComments(this.drawingObject.annotName, this.drawingObject.notes);\n // eslint-disable-next-line max-len\n this.commandHandler.annotation.measureAnnotationModule.renderMeasureShapeAnnotations(this.drawingObject, this.drawingObject.pageIndex);\n }\n }\n var annotationObject = this.commandHandler.selectedItems.annotations[0];\n // eslint-disable-next-line\n this.commandHandler.annotation.addAction(this.pageIndex, null, annotationObject, 'Addition', '', annotationObject, annotationObject);\n this.drawingObject = null;\n }\n }\n this.endAction();\n }\n else if (this.inAction && !this.dragging) {\n this.commandHandler.remove(this.drawingObject);\n }\n }\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {void}\n */\n PolygonDrawingTool.prototype.mouseLeave = function (args) {\n this.mouseUp(args, true, true);\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {void}\n */\n PolygonDrawingTool.prototype.mouseWheel = function (args) {\n _super.prototype.mouseWheel.call(this, args);\n this.mouseMove(args);\n };\n /**\n * @private\n * @returns {void}\n */\n PolygonDrawingTool.prototype.endAction = function () {\n this.inAction = false;\n this.drawingObject = null;\n this.commandHandler.tool = '';\n };\n return PolygonDrawingTool;\n}(ToolBase));\nexport { PolygonDrawingTool };\n/**\n * Helps to edit the selected connectors\n *\n * @hidden\n */\nvar LineTool = /** @class */ (function (_super) {\n __extends(LineTool, _super);\n function LineTool(commandHandler, base, endPoint, drawingObject) {\n var _this = _super.call(this, commandHandler, base, true) || this;\n _this.endPoint = endPoint;\n _this.drawingObject = drawingObject;\n return _this;\n }\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {void}\n */\n LineTool.prototype.mouseDown = function (args) {\n this.inAction = true;\n this.undoElement = undefined;\n _super.prototype.mouseDown.call(this, args);\n var oldPointValue;\n var connectorsShape;\n if (args.source && args.source.annotations) {\n oldPointValue = { x: this.prevPosition.x, y: this.prevPosition.y };\n connectorsShape = this.drawingObject;\n }\n this.initialPosition = args.position;\n this.prevSource = this.drawingObject;\n this.currentPosition = args.position;\n if (!this.drawingObject) {\n var measureModule = this.commandHandler.annotation.measureAnnotationModule;\n var annotationNode = {\n // eslint-disable-next-line max-len\n vertexPoints: [{ x: this.startPosition.x / this.pdfViewerBase.getZoomFactor(), y: this.startPosition.y / this.pdfViewerBase.getZoomFactor() }, { x: this.currentPosition.x / this.pdfViewerBase.getZoomFactor(), y: this.currentPosition.y / this.pdfViewerBase.getZoomFactor() }],\n bounds: { x: this.currentPosition.x, y: this.currentPosition.y, width: 5, height: 5 },\n sourceDecoraterShapes: this.commandHandler.drawingObject.sourceDecoraterShapes,\n taregetDecoraterShapes: this.commandHandler.drawingObject.taregetDecoraterShapes, measureType: 'Distance',\n // eslint-disable-next-line max-len\n fillColor: this.commandHandler.drawingObject.fillColor, notes: this.commandHandler.drawingObject.notes, strokeColor: this.commandHandler.drawingObject.strokeColor,\n // eslint-disable-next-line max-len\n opacity: this.commandHandler.drawingObject.opacity, thickness: this.commandHandler.drawingObject.thickness, borderDashArray: this.commandHandler.drawingObject.borderDashArray,\n shapeAnnotationType: 'Distance', pageIndex: this.pdfViewerBase.activeElements.activePageID,\n author: this.commandHandler.drawingObject.author, subject: this.commandHandler.drawingObject.subject,\n enableShapeLabel: this.commandHandler.enableShapeLabel, leaderHeight: measureModule.leaderLength\n };\n this.pdfViewerBase.updateFreeTextProperties(annotationNode);\n // eslint-disable-next-line\n this.drawingObject = this.commandHandler.add(annotationNode);\n }\n else if (!this.dragging) {\n var nodeAnnot = {\n bounds: { x: this.currentPosition.x, y: this.currentPosition.y, width: 5, height: 5 },\n // eslint-disable-next-line max-len\n vertexPoints: [{ x: this.startPosition.x / this.pdfViewerBase.getZoomFactor(), y: this.startPosition.y / this.pdfViewerBase.getZoomFactor() }, { x: this.currentPosition.x / this.pdfViewerBase.getZoomFactor(), y: this.currentPosition.y / this.pdfViewerBase.getZoomFactor() }],\n // eslint-disable-next-line max-len\n shapeAnnotationType: this.drawingObject.shapeAnnotationType, sourceDecoraterShapes: this.drawingObject.sourceDecoraterShapes,\n taregetDecoraterShapes: this.drawingObject.taregetDecoraterShapes, fillColor: this.drawingObject.fillColor,\n strokeColor: this.drawingObject.strokeColor, pageIndex: this.pdfViewerBase.activeElements.activePageID,\n // eslint-disable-next-line max-len\n opacity: this.drawingObject.opacity || 1, borderDashArray: this.drawingObject.borderDashArray, thickness: this.drawingObject.thickness,\n modifiedDate: this.drawingObject.modifiedDate, author: this.drawingObject.author, subject: this.drawingObject.subject,\n lineHeadEnd: this.drawingObject.lineHeadEnd, lineHeadStart: this.drawingObject.lineHeadStart,\n measureType: this.commandHandler.drawingObject.measureType, enableShapeLabel: this.commandHandler.enableShapeLabel\n };\n this.pdfViewerBase.updateFreeTextProperties(nodeAnnot);\n // eslint-disable-next-line\n this.drawingObject = this.commandHandler.add(nodeAnnot);\n }\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {void}\n */\n LineTool.prototype.mouseUp = function (args) {\n if (this.dragging) {\n _super.prototype.mouseMove.call(this, args);\n if (this.commandHandler) {\n // eslint-disable-next-line\n var currentSelector = void 0;\n if (args.source && args.annotationSelectorSettings !== null) {\n currentSelector = args.source.annotationSelectorSettings;\n }\n else {\n currentSelector = '';\n }\n // eslint-disable-next-line\n var node = this.drawingObject;\n this.commandHandler.nodePropertyChange(node, { vertexPoints: node.vertexPoints, leaderHeight: node.leaderHeight });\n this.commandHandler.clearSelection(this.pdfViewerBase.activeElements.activePageID);\n this.commandHandler.select([node.id], currentSelector);\n this.commandHandler.renderSelector(this.pdfViewerBase.activeElements.activePageID, currentSelector);\n }\n if (this.endPoint && this.endPoint.indexOf('ConnectorSegmentPoint') > -1 && this.dragging) {\n this.commandHandler.annotation.updateCalibrateValues(this.drawingObject);\n // eslint-disable-next-line\n this.commandHandler.annotation.addAction(this.pageIndex, null, this.drawingObject, 'Addition', '', this.drawingObject, this.drawingObject);\n this.drawingObject = null;\n this.dragging = false;\n _super.prototype.mouseUp.call(this, args);\n }\n if (this.drawingObject) {\n this.endPoint = 'ConnectorSegmentPoint_1';\n }\n }\n else {\n if (this.drawingObject) {\n this.commandHandler.remove(this.drawingObject);\n }\n }\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {boolean} - Returns true or false.\n */\n LineTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n if (this.inAction && Point.equals(this.currentPosition, this.prevPosition) === false) {\n this.currentPosition = args.position;\n this.dragging = true;\n if (this.currentPosition && this.prevPosition) {\n var diffX = this.currentPosition.x - this.prevPosition.x;\n var diffY = this.currentPosition.y - this.prevPosition.y;\n // eslint-disable-next-line\n var currentSelector = void 0;\n if (args.source && args.annotationSelectorSettings !== null) {\n currentSelector = args.source.annotationSelectorSettings;\n }\n else {\n currentSelector = '';\n }\n // eslint-disable-next-line max-len\n if (this.inAction && this.commandHandler && this.drawingObject && this.endPoint !== undefined && diffX !== 0 || diffY !== 0) {\n // eslint-disable-next-line max-len\n this.blocked = !this.commandHandler.dragConnectorEnds(this.endPoint, this.drawingObject, this.currentPosition, this.selectedSegment, args.target, null, currentSelector);\n this.commandHandler.renderSelector(this.pdfViewerBase.activeElements.activePageID, currentSelector);\n }\n }\n this.prevPosition = this.currentPosition;\n }\n return !this.blocked;\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {void}\n */\n LineTool.prototype.mouseLeave = function (args) {\n this.mouseUp(args);\n };\n /**\n * @private\n * @returns {void}\n */\n LineTool.prototype.endAction = function () {\n _super.prototype.endAction.call(this);\n this.prevPosition = null;\n this.endPoint = null;\n };\n return LineTool;\n}(ToolBase));\nexport { LineTool };\n/**\n * Rotates the selected objects\n *\n * @hidden\n */\nvar RotateTool = /** @class */ (function (_super) {\n __extends(RotateTool, _super);\n function RotateTool(commandHandler, base) {\n return _super.call(this, commandHandler, base, true) || this;\n }\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {void}\n */\n RotateTool.prototype.mouseDown = function (args) {\n var nodeMouseDown = cloneObject(args.source);\n this.undoElement = {\n bounds: {\n x: nodeMouseDown.wrapper.offsetX, y: nodeMouseDown.wrapper.offsetY,\n width: nodeMouseDown.wrapper.actualSize.width, height: nodeMouseDown.wrapper.actualSize.height\n }, rotateAngle: nodeMouseDown.rotateAngle\n // eslint-disable-next-line\n };\n _super.prototype.mouseDown.call(this, args);\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {void}\n */\n RotateTool.prototype.mouseUp = function (args) {\n var object = args.source;\n // eslint-disable-next-line\n var newShapeObject;\n if (this.undoElement.rotateAngle !== object.wrapper.rotateAngle) {\n // eslint-disable-next-line\n var currentSelector = args.source.annotations[0].annotationSelectorSettings;\n this.commandHandler.renderSelector(this.pdfViewerBase.activeElements.activePageID, currentSelector);\n newShapeObject = {\n bounds: {\n x: args.source.wrapper.offsetX, y: args.source.wrapper.offsetY,\n width: args.source.wrapper.actualSize.width, height: args.source.wrapper.actualSize.height\n }, rotateAngle: args.source.wrapper.rotateAngle\n };\n }\n // eslint-disable-next-line\n this.commandHandler.annotation.addAction(this.pageIndex, null, args.source, 'Rotate', '', this.undoElement, newShapeObject);\n this.commandHandler.annotation.stampAnnotationModule.updateSessionStorage(args.source, null, 'Rotate');\n this.commandHandler.annotation.stickyNotesAnnotationModule.updateStickyNotes(args.source, null);\n _super.prototype.mouseUp.call(this, args);\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {boolean} - Returns true or false.\n */\n RotateTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n var object = args.source;\n // eslint-disable-next-line\n var currentSelector = args.source.annotations[0].annotationSelectorSettings;\n this.currentPosition = args.position;\n if (object.wrapper) {\n var refPoint = { x: object.wrapper.offsetX, y: object.wrapper.offsetY };\n var angle = Point.findAngle(refPoint, this.currentPosition) + 90;\n angle = (angle + 360) % 360;\n this.blocked = !(this.commandHandler.rotate(angle - object.wrapper.rotateAngle, currentSelector));\n }\n return !this.blocked;\n };\n RotateTool.prototype.getTooltipContent = function (node) {\n return Math.round((node.rotateAngle % 360)).toString() + '\\xB0';\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {void}\n */\n RotateTool.prototype.mouseLeave = function (args) {\n this.mouseUp(args);\n };\n /**\n * @private\n * @returns {void}\n */\n RotateTool.prototype.endAction = function () {\n _super.prototype.endAction.call(this);\n };\n return RotateTool;\n}(ToolBase));\nexport { RotateTool };\n","import { Size } from './../primitives/size';\nimport { pathSegmentCollection, getRectanglePath, processPathData } from './../utility/path-util';\n// import { overFlow } from './../utility/base-util';\nimport { createHtmlElement } from './../utility/dom-util';\n/**\n * Canvas Renderer\n */\n/** @private */\nvar CanvasRenderer = /** @class */ (function () {\n function CanvasRenderer() {\n }\n /** @private */\n CanvasRenderer.getContext = function (canvas) {\n return canvas.getContext('2d');\n };\n CanvasRenderer.prototype.setStyle = function (canvas, style) {\n var ctx = CanvasRenderer.getContext(canvas);\n if (style.fill === 'none') {\n style.fill = 'transparent';\n }\n if (style.stroke === 'none') {\n style.stroke = 'transparent';\n }\n ctx.strokeStyle = style.stroke;\n ctx.lineWidth = style.strokeWidth;\n if (style.strokeWidth === 0) {\n ctx.strokeStyle = 'transparent';\n }\n ctx.globalAlpha = style.opacity;\n var dashArray = [];\n if (style.dashArray) {\n dashArray = this.parseDashArray(style.dashArray);\n }\n ctx.setLineDash(dashArray);\n ctx.fillStyle = style.fill;\n };\n CanvasRenderer.prototype.rotateContext = function (canvas, angle, x, y) {\n var ctx = CanvasRenderer.getContext(canvas);\n ctx.translate(x, y);\n ctx.rotate(angle * Math.PI / 180);\n ctx.translate(-x, -y);\n };\n CanvasRenderer.prototype.setFontStyle = function (canvas, text) {\n var ctx = CanvasRenderer.getContext(canvas);\n var font = '';\n if (text.italic) {\n font += 'italic ';\n }\n if (text.bold) {\n font += 'bold ';\n }\n font += (text.fontSize) + 'px ';\n font += text.fontFamily;\n ctx.font = font;\n };\n /** @private */\n CanvasRenderer.prototype.parseDashArray = function (dashArray) {\n var dashes = [];\n var separator = dashArray.indexOf(' ') !== -1 ? ' ' : ',';\n var splittedDashes = dashArray.split(separator);\n for (var _i = 0, splittedDashes_1 = splittedDashes; _i < splittedDashes_1.length; _i++) {\n var i = splittedDashes_1[_i];\n dashes.push(Number(i));\n }\n return dashes;\n };\n //Rendering Part\n /** @private */\n CanvasRenderer.prototype.drawRectangle = function (canvas, options) {\n if (options.visible === true) {\n if (options.cornerRadius) {\n options.data = getRectanglePath(options.cornerRadius, options.height, options.width);\n this.drawPath(canvas, options);\n }\n else {\n var ctx = CanvasRenderer.getContext(canvas);\n ctx.save();\n ctx.beginPath();\n var cornerRadius = options.cornerRadius;\n var pivotX = options.x + options.width * options.pivotX;\n var pivotY = options.y + options.height * options.pivotY;\n this.rotateContext(canvas, options.angle, pivotX, pivotY);\n this.setStyle(canvas, options);\n ctx.rect(options.x, options.y, options.width, options.height);\n ctx.fillRect(options.x, options.y, options.width, options.height);\n ctx.fill();\n ctx.stroke();\n ctx.closePath();\n ctx.restore();\n }\n }\n };\n /** @private */\n CanvasRenderer.prototype.drawPath = function (canvas, options) {\n var collection = [];\n collection = processPathData(options.data);\n collection = pathSegmentCollection(collection);\n var ctx = CanvasRenderer.getContext(canvas);\n ctx.save();\n ctx.beginPath();\n var pivotY = options.y + options.height * options.pivotY;\n var pivotX = options.x + options.width * options.pivotX;\n this.rotateContext(canvas, options.angle, pivotX, pivotY);\n this.setStyle(canvas, options);\n ctx.translate(options.x, options.y);\n this.renderPath(canvas, options, collection);\n ctx.fill();\n ctx.translate(-options.x, -options.y);\n ctx.stroke();\n ctx.restore();\n };\n /** @private */\n CanvasRenderer.prototype.renderPath = function (canvas, options, collection) {\n if (options.visible === true) {\n var ctx = CanvasRenderer.getContext(canvas);\n var x0 = void 0;\n var y0 = void 0;\n var x1 = void 0;\n var y1 = void 0;\n var x2 = void 0;\n var y2 = void 0;\n var x = void 0;\n var y = void 0;\n var length_1;\n var i = void 0;\n var newSeg = void 0;\n var segs = collection;\n for (x = 0, y = 0, i = 0, length_1 = segs.length; i < length_1; ++i) {\n var obj = segs[parseInt(i.toString(), 10)];\n var seg = obj;\n var char = seg.command;\n if ('x1' in seg) {\n x1 = seg.x1;\n }\n if ('x2' in seg) {\n x2 = seg.x2;\n }\n if ('y1' in seg) {\n y1 = seg.y1;\n }\n if ('y2' in seg) {\n y2 = seg.y2;\n }\n if ('x' in seg) {\n x = seg.x;\n }\n if ('y' in seg) {\n y = seg.y;\n }\n switch (char) {\n case 'M':\n ctx.moveTo(x, y);\n seg.x = x;\n seg.y = y;\n break;\n case 'L':\n ctx.lineTo(x, y);\n seg.x = x;\n seg.y = y;\n break;\n case 'C':\n ctx.bezierCurveTo(x1, y1, x2, y2, x, y);\n seg.x = x;\n seg.y = y;\n seg.x1 = x1;\n seg.y1 = y1;\n seg.x2 = x2;\n seg.y2 = y2;\n break;\n case 'Q':\n ctx.quadraticCurveTo(x1, y1, x, y);\n seg.x = x;\n seg.y = y;\n seg.x1 = x1;\n seg.y1 = y1;\n break;\n case 'A':\n var curr = { x: x0, y: y0 };\n var rx = seg.r1;\n var ry = seg.r2;\n var xAxisRotation = seg.angle * (Math.PI / 180.0);\n var largeArc = seg.largeArc;\n var sweep = seg.sweep;\n var cp = { x: x, y: y };\n var currp = {\n x: Math.cos(xAxisRotation) * (curr.x - cp.x) / 2.0 + Math.sin(xAxisRotation) * (curr.y - cp.y) / 2.0,\n y: -Math.sin(xAxisRotation) * (curr.x - cp.x) / 2.0 + Math.cos(xAxisRotation) * (curr.y - cp.y) / 2.0\n };\n var l = Math.pow(currp.x, 2) / Math.pow(rx, 2) + Math.pow(currp.y, 2) / Math.pow(ry, 2);\n if (l > 1) {\n rx *= Math.sqrt(l);\n ry *= Math.sqrt(l);\n }\n var k = (Math.pow(ry, 2) * Math.pow(currp.x, 2));\n var s = (largeArc === sweep ? -1 : 1) * Math.sqrt(((Math.pow(rx, 2) * Math.pow(ry, 2)) - (Math.pow(rx, 2) * Math.pow(currp.y, 2)) - k) /\n (Math.pow(rx, 2) * Math.pow(currp.y, 2) + Math.pow(ry, 2) * Math.pow(currp.x, 2)));\n if (isNaN(s)) {\n s = 0;\n }\n var cpp = { x: s * rx * currp.y / ry, y: s * -ry * currp.x / rx };\n var centp = {\n x: (curr.x + cp.x) / 2.0 + Math.cos(xAxisRotation) * cpp.x - Math.sin(xAxisRotation) * cpp.y,\n y: (curr.y + cp.y) / 2.0 + Math.sin(xAxisRotation) * cpp.x + Math.cos(xAxisRotation) * cpp.y\n };\n var a1 = this.a([1, 0], [(currp.x - cpp.x) / rx, (currp.y - cpp.y) / ry]);\n var u = [(currp.x - cpp.x) / rx, (currp.y - cpp.y) / ry];\n var v = [(-currp.x - cpp.x) / rx, (-currp.y - cpp.y) / ry];\n var ad = this.a(u, v);\n if (this.r(u, v) <= -1) {\n ad = Math.PI;\n }\n if (this.r(u, v) >= 1) {\n ad = 0;\n }\n var dir = !sweep ? -1.0 : 1.0;\n var ah = a1 + dir * (ad / 2.0);\n var halfWay = {\n x: centp.x + rx * Math.cos(ah),\n y: centp.y + ry * Math.sin(ah)\n };\n seg.centp = centp;\n seg.xAxisRotation = xAxisRotation;\n seg.rx = rx;\n seg.ry = ry;\n seg.a1 = a1;\n seg.ad = ad;\n seg.sweep = sweep;\n if (ctx != null) {\n var ra = rx > ry ? rx : ry;\n var sx = rx > ry ? 1 : rx / ry;\n var sy = rx > ry ? ry / rx : 1;\n ctx.save();\n ctx.translate(centp.x, centp.y);\n ctx.rotate(xAxisRotation);\n ctx.scale(sx, sy);\n ctx.arc(0, 0, ra, a1, a1 + ad, !sweep);\n ctx.scale(1 / sx, 1 / sy);\n ctx.rotate(-xAxisRotation);\n ctx.translate(-centp.x, -centp.y);\n ctx.restore();\n }\n break;\n case 'Z':\n case 'z':\n ctx.closePath();\n x = x0;\n y = y0;\n break;\n }\n x0 = x;\n y0 = y;\n }\n }\n };\n /** @private */\n CanvasRenderer.prototype.drawText = function (canvas, options) {\n if (options.content && options.visible === true) {\n var ctx = CanvasRenderer.getContext(canvas);\n ctx.save();\n this.setStyle(canvas, options);\n var pivotX = options.x + options.width * options.pivotX;\n var pivotY = options.y + options.height * options.pivotY;\n this.rotateContext(canvas, options.angle, pivotX, pivotY);\n this.setFontStyle(canvas, options);\n var i = 0;\n var childNodes = [];\n childNodes = options.childNodes;\n var wrapBounds = options.wrapBounds;\n ctx.fillStyle = options.color;\n if (wrapBounds) {\n var position = this.labelAlign(options, wrapBounds, childNodes);\n for (i = 0; i < childNodes.length; i++) {\n var child = childNodes[parseInt(i.toString(), 10)];\n var offsetX = position.x + child.x - wrapBounds.x;\n var offsetY = position.y + child.dy * i + ((options.fontSize) * 0.8);\n // if (wrapBounds.width > options.width && options.textOverflow !== 'Wrap') {\n // child.text = overFlow(child.text, options);\n // }\n ctx.fillText(child.text, offsetX, offsetY);\n if (options.textDecoration === 'Underline'\n || options.textDecoration === 'Overline'\n || options.textDecoration === 'LineThrough') {\n var startPointX = offsetX;\n var startPointY = void 0;\n var textlength = ctx.measureText(child.text).width;\n var endPointX = offsetX + textlength;\n var endPointY = void 0;\n switch (options.textDecoration) {\n case 'Underline':\n startPointY = offsetY + 2;\n endPointY = offsetY + 2;\n break;\n case 'Overline':\n startPointY = (position.y + child.dy * i);\n endPointY = (position.y + child.dy * i);\n break;\n case 'LineThrough':\n startPointY = ((offsetY + position.y + child.dy * i) / 2) + 2;\n endPointY = ((offsetY + position.y + child.dy * i) / 2) + 2;\n }\n ctx.beginPath();\n ctx.moveTo(startPointX, startPointY);\n ctx.lineTo(endPointX, endPointY);\n ctx.strokeStyle = options.color;\n ctx.lineWidth = options.fontSize * .08;\n ctx.globalAlpha = options.opacity;\n ctx.stroke();\n }\n }\n }\n ctx.restore();\n }\n };\n //end region\n // vector magnitude\n CanvasRenderer.prototype.m = function (v) { return Math.sqrt(Math.pow(v[0], 2) + Math.pow(v[1], 2)); };\n // ratio between two vectors\n CanvasRenderer.prototype.r = function (u, v) { return (u[0] * v[0] + u[1] * v[1]) / (this.m(u) * this.m(v)); };\n // angle between two vectors\n CanvasRenderer.prototype.a = function (u, v) { return (u[0] * v[1] < u[1] * v[0] ? -1 : 1) * Math.acos(this.r(u, v)); };\n CanvasRenderer.prototype.getMeetOffset = function (arg, res, dest) {\n var max = Math.max(res, dest);\n var min = Math.min(res, dest);\n switch (arg) {\n case 'min': return 0;\n case 'mid': return (max - min) / 2;\n case 'max': return max - min;\n default: return 0;\n }\n };\n CanvasRenderer.prototype.getSliceOffset = function (arg, res, dest, src) {\n switch (arg) {\n case 'min': return 0;\n case 'mid': return (res - dest) / 2 * src / res;\n case 'max': return (res - dest) * src / res;\n default: return 0;\n }\n };\n CanvasRenderer.prototype.image = function (ctx, image, x, y, width, height, alignOptions) {\n ctx.beginPath();\n var srcWidth = image.width;\n var srcHeight = image.height;\n var destinationW = width;\n var destinationH = height;\n var resultWidth = 0;\n var resultHeight = 0;\n ctx.globalAlpha = alignOptions.opacity;\n if (alignOptions && alignOptions.alignment !== 'None') {\n var xalign = alignOptions.alignment.toLowerCase().substr(1, 3);\n var yalign = alignOptions.alignment.toLowerCase().substr(5, 3);\n if (alignOptions.scale === 'Slice') {\n var a = function () {\n resultWidth = destinationW;\n resultHeight = srcHeight * destinationW / srcWidth;\n };\n var b = function () {\n resultWidth = srcWidth * destinationH / srcHeight;\n resultHeight = destinationH;\n };\n if (destinationW > destinationH) {\n a();\n if (destinationH > resultHeight) {\n b();\n }\n }\n else if (destinationW === destinationH) {\n if (srcWidth > srcHeight) {\n b();\n }\n else {\n a();\n }\n }\n else {\n b();\n if (destinationW > resultWidth) {\n a();\n }\n }\n var x1 = this.getSliceOffset(xalign, resultWidth, destinationW, srcWidth);\n var y1 = this.getSliceOffset(yalign, resultHeight, destinationH, srcHeight);\n var sWidth = srcWidth - x1;\n var sHeight = srcHeight - y1;\n var dWidth = resultWidth - (x1 * (resultWidth / srcWidth));\n var dHeight = resultHeight - (y1 * (resultHeight / srcHeight));\n var canvas1 = createHtmlElement('canvas', { 'width': width.toString(), 'height': height.toString() });\n var ctx1 = canvas1.getContext('2d');\n ctx1.drawImage(image, x1, y1, sWidth, sHeight, 0, 0, dWidth, dHeight);\n ctx.drawImage(canvas1, x, y, width, height);\n }\n else if (alignOptions.scale === 'Meet') {\n var srcRatio = (srcHeight / srcWidth);\n var destRatio = (destinationH / destinationW);\n resultWidth = destRatio > srcRatio ? destinationW : destinationH / srcRatio;\n resultHeight = destRatio > srcRatio ? destinationW * srcRatio : destinationH;\n x += this.getMeetOffset(xalign, resultWidth, destinationW);\n y += this.getMeetOffset(yalign, resultHeight, destinationH);\n ctx.drawImage(image, 0, 0, srcWidth, srcHeight, x, y, resultWidth, resultHeight);\n }\n else {\n ctx.drawImage(image, x, y, width, height);\n }\n }\n else {\n if (image.complete) {\n ctx.drawImage(image, x, y, width, height);\n }\n else {\n var transform_1 = ctx.getTransform();\n image.onload = function () {\n ctx.setTransform(transform_1.a, transform_1.b, transform_1.c, transform_1.d, transform_1.e, transform_1.f);\n ctx.drawImage(image, x, y, width, height);\n };\n }\n }\n ctx.closePath();\n };\n // text utility\n CanvasRenderer.prototype.loadImage = function (ctx, obj, canvas, pivotX, pivotY) {\n this.rotateContext(canvas, obj.angle, pivotX, pivotY);\n var image;\n if (window.customStampCollection && window.customStampCollection.get(obj.printID)) {\n image = window.customStampCollection.get(obj.printID);\n }\n else {\n image = new Image();\n image.src = obj.source;\n }\n this.image(ctx, image, obj.x, obj.y, obj.width, obj.height, obj);\n };\n /** @private */\n CanvasRenderer.prototype.drawImage = function (canvas, obj, parentSvg, fromPalette) {\n var _this = this;\n if (obj.visible) {\n var ctx_1 = CanvasRenderer.getContext(canvas);\n ctx_1.save();\n var pivotX_1 = obj.x + obj.width * obj.pivotX;\n var pivotY_1 = obj.y + obj.height * obj.pivotY;\n var imageObj = new Image();\n imageObj.src = obj.source;\n var id = ctx_1.canvas.id.split('_');\n var value = id[id.length - 1] === ('diagram' || 'diagramLayer') ? true : false;\n /**\n * Since Clipping portion for node with slice option is not calculated properly\n * if (obj.sourceX !== undefined && obj.sourceY !== undefined && obj.sourceWidth !== undefined\n * && obj.sourceHeight !== undefined) {\n * ctx.drawImage(imageObj, obj.sourceX, obj.sourceY, obj.sourceWidth, obj.sourceHeight, obj.x, obj.y, obj.width, obj.height);\n * } else {\n * ctx.drawImage(imageObj, obj.x, obj.y, obj.width, obj.height);\n * }\n */\n if (!fromPalette) {\n this.loadImage(ctx_1, obj, canvas, pivotX_1, pivotY_1);\n }\n else {\n imageObj.onload = function () {\n _this.loadImage(ctx_1, obj, canvas, pivotX_1, pivotY_1);\n };\n }\n ctx_1.restore();\n }\n };\n /** @private */\n CanvasRenderer.prototype.labelAlign = function (text, wrapBounds, childNodes) {\n var bounds = new Size(wrapBounds.width, childNodes.length * (text.fontSize * 1.2));\n var position = { x: 0, y: 0 };\n var labelX = text.x;\n var labelY = text.y;\n var offsetx = text.width * 0.5;\n var offsety = text.height * 0.5;\n var pointx = offsetx;\n var pointy = offsety;\n if (text.textAlign === 'left') {\n pointx = 0;\n }\n else if (text.textAlign === 'center') {\n if (wrapBounds.width > text.width && (text.textOverflow === 'Ellipsis' || text.textOverflow === 'Clip')) {\n pointx = 0;\n }\n else {\n pointx = text.width * 0.5;\n }\n }\n else if (text.textAlign === 'right') {\n pointx = (text.width * 1);\n }\n position.x = labelX + pointx + (wrapBounds ? wrapBounds.x : 0);\n position.y = labelY + pointy - bounds.height / 2;\n return position;\n };\n return CanvasRenderer;\n}());\nexport { CanvasRenderer };\nexport function refreshDiagramElements(canvas, drawingObjects, renderer) {\n for (var i = 0; i < drawingObjects.length; i++) {\n renderer.renderElement(drawingObjects[parseInt(i.toString(), 10)], canvas, undefined);\n }\n}\n","import { Size } from './../primitives/size';\nimport { CanvasRenderer } from './../rendering/canvas-renderer';\nimport { processPathData, pathSegmentCollection } from '../utility/path-util';\n/**\n * SVG Renderer\n */\n/** @private */\nvar SvgRenderer = /** @class */ (function () {\n function SvgRenderer() {\n }\n /** @private */\n SvgRenderer.prototype.parseDashArray = function (dashArray) {\n var dashes = [];\n return dashes;\n };\n /** @private */\n SvgRenderer.prototype.drawRectangle = function (svg, options, diagramId, onlyRect, isSelector, parentSvg, ariaLabel) {\n var id;\n if (options.id === svg.id) {\n id = options.id + '_container';\n }\n else {\n id = options.id;\n }\n var rect;\n if (!rect || isSelector) {\n rect = document.createElementNS('http://www.w3.org/2000/svg', 'rect');\n svg.appendChild(rect);\n }\n var attr = {\n 'id': id, 'x': options.x.toString(), 'y': options.y.toString(), 'width': options.width.toString(),\n 'height': options.height.toString(), 'visibility': options.visible ? 'visible' : 'hidden',\n 'transform': 'rotate(' + options.angle + ','\n + (options.x + options.width * options.pivotX) + ',' + (options.y + options.height * options.pivotY) + ')',\n 'rx': options.cornerRadius || 0, 'ry': options.cornerRadius || 0, 'opacity': options.opacity,\n 'aria-label': ariaLabel ? ariaLabel : ''\n };\n if (options.class) {\n attr['class'] = options.class;\n }\n var poiterEvents = 'pointer-events';\n if (!ariaLabel) {\n // eslint-disable-next-line\n attr[poiterEvents] = 'none';\n }\n setAttributeSvg(rect, attr);\n this.setSvgStyle(rect, options, diagramId);\n };\n /** @private */\n SvgRenderer.prototype.updateSelectionRegion = function (gElement, options) {\n var rect;\n rect = gElement.parentNode.getElementById(options.id);\n var attr;\n attr = {\n 'id': options.id, 'x': options.x.toString(), 'y': options.y.toString(), 'width': options.width.toString(),\n 'height': options.height.toString(), 'transform': 'rotate(' + options.angle + ','\n + (options.x + options.width * options.pivotX) + ',' + (options.y + options.height * options.pivotY) + ')',\n class: 'e-diagram-selected-region'\n };\n if (!rect) {\n rect = document.createElementNS('http://www.w3.org/2000/svg', 'rect');\n gElement.appendChild(rect);\n }\n this.setSvgStyle(rect, options);\n setAttributeSvg(rect, attr);\n };\n /** @private */\n SvgRenderer.prototype.createGElement = function (elementType, attribute) {\n var gElement = createSvgElement(elementType, attribute);\n return gElement;\n };\n /** @private */\n SvgRenderer.prototype.drawCircle = function (gElement, options, enableSelector, ariaLabel) {\n var circle = document.createElementNS('http://www.w3.org/2000/svg', 'circle');\n this.setSvgStyle(circle, options);\n var classval = options.class || '';\n if (!enableSelector) {\n classval += ' e-disabled';\n }\n var attr = {\n 'id': options.id,\n 'cx': options.centerX,\n 'cy': options.centerY,\n 'r': options.radius,\n 'visibility': options.visible ? 'visible' : 'hidden',\n 'class': classval,\n 'aria-label': ariaLabel ? ariaLabel['aria-label'] : ''\n };\n var pointerEvents = 'pointer-events';\n if (attr['aria-label'] === '') {\n // eslint-disable-next-line\n attr[pointerEvents] = 'none';\n }\n circle.style.display = options.visible ? 'block' : 'none';\n setAttributeSvg(circle, attr);\n gElement.appendChild(circle);\n };\n /** @private */\n SvgRenderer.prototype.setSvgStyle = function (svg, style, diagramId) {\n if (style.canApplyStyle || style.canApplyStyle === undefined) {\n if (style.fill === 'none') {\n style.fill = 'transparent';\n }\n if (style.stroke === 'none') {\n style.stroke = 'transparent';\n }\n var dashArray = [];\n var fill = void 0;\n if (style.dashArray !== undefined) {\n var canvasRenderer = new CanvasRenderer();\n dashArray = canvasRenderer.parseDashArray(style.dashArray);\n }\n fill = style.fill;\n if (style.stroke) {\n svg.setAttribute('stroke', style.stroke);\n }\n if (style.strokeWidth !== undefined && style.strokeWidth !== null) {\n svg.setAttribute('stroke-width', style.strokeWidth.toString());\n }\n if (dashArray) {\n svg.setAttribute('stroke-dasharray', dashArray.toString());\n }\n if (fill) {\n svg.setAttribute('fill', fill);\n }\n }\n };\n //end region\n // text utility\n /** @private */\n SvgRenderer.prototype.svgLabelAlign = function (text, wrapBound, childNodes) {\n var bounds = new Size(wrapBound.width, childNodes.length * (text.fontSize * 1.2));\n var pos = { x: 0, y: 0 };\n var x = 0;\n var y = 1.2;\n var offsetX = text.width * 0.5;\n var offsety = text.height * 0.5;\n var pointX = offsetX;\n var pointY = offsety;\n if (text.textAlign === 'left') {\n pointX = 0;\n }\n else if (text.textAlign === 'center') {\n if (wrapBound.width > text.width && (text.textOverflow === 'Ellipsis' || text.textOverflow === 'Clip')) {\n pointX = 0;\n }\n else {\n pointX = text.width * 0.5;\n }\n }\n else if (text.textAlign === 'right') {\n pointX = (text.width * 1);\n }\n pos.x = x + pointX + (wrapBound ? wrapBound.x : 0);\n pos.y = y + pointY - bounds.height / 2;\n return pos;\n };\n /** @private */\n SvgRenderer.prototype.drawLine = function (gElement, options) {\n var line = document.createElementNS('http://www.w3.org/2000/svg', 'line');\n this.setSvgStyle(line, options);\n var pivotX = options.x + options.width * options.pivotX;\n var pivotY = options.y + options.height * options.pivotY;\n var kk = '';\n var attr = {\n 'id': options.id,\n 'x1': options.startPoint.x + options.x,\n 'y1': options.startPoint.y + options.y,\n 'x2': options.endPoint.x + options.x,\n 'y2': options.endPoint.y + options.y,\n 'stroke': options.stroke,\n 'stroke-width': options.strokeWidth.toString(), 'opacity': options.opacity.toString(),\n 'transform': 'rotate(' + options.angle + ' ' + pivotX + ' ' + pivotY + ')',\n 'visibility': options.visible ? 'visible' : 'hidden',\n };\n if (options.class) {\n attr['class'] = options.class;\n }\n setAttributeSvg(line, attr);\n gElement.appendChild(line);\n };\n /** @private */\n SvgRenderer.prototype.drawPath = function (svg, options, diagramId, isSelector, parentSvg, ariaLabel) {\n var id;\n var x = Math.floor((Math.random() * 10) + 1);\n id = svg.id + '_shape' + x.toString();\n var collection = [];\n collection = processPathData(options.data);\n collection = pathSegmentCollection(collection);\n var shadowElement;\n if (parentSvg) {\n shadowElement = parentSvg.getElementById(options.id + '_groupElement_shadow');\n if (shadowElement) {\n shadowElement.parentNode.removeChild(shadowElement);\n }\n }\n var path;\n if (parentSvg) {\n path = parentSvg.getElementById(options.id);\n }\n if (!path || isSelector) {\n path = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n svg.appendChild(path);\n }\n this.renderPath(path, options, collection);\n var attr = {\n 'id': options.id, 'transform': 'rotate(' + options.angle + ',' + (options.x + options.width * options.pivotX) + ','\n + (options.y + options.height * options.pivotY) + ')' + 'translate(' + (options.x) + ',' + (options.y) + ')',\n 'visibility': options.visible ? 'visible' : 'hidden', 'opacity': options.opacity,\n 'aria-label': ariaLabel ? ariaLabel : ''\n };\n if (options.class) {\n attr['class'] = options.class;\n }\n setAttributeSvg(path, attr);\n this.setSvgStyle(path, options, diagramId);\n };\n /** @private */\n SvgRenderer.prototype.renderPath = function (svg, options, collection) {\n var x1;\n var y1;\n var x2;\n var y2;\n var x;\n var y;\n var length;\n var i;\n var segments = collection;\n var d = '';\n for (x = 0, y = 0, i = 0, length = segments.length; i < length; ++i) {\n var obj = segments[parseInt(i.toString(), 10)];\n var segment = obj;\n var char = segment.command;\n if ('x1' in segment) {\n x1 = segment.x1;\n }\n if ('x2' in segment) {\n x2 = segment.x2;\n }\n if ('y1' in segment) {\n y1 = segment.y1;\n }\n if ('y2' in segment) {\n y2 = segment.y2;\n }\n if ('x' in segment) {\n x = segment.x;\n }\n if ('y' in segment) {\n y = segment.y;\n }\n switch (char) {\n case 'M':\n d = d + 'M' + x.toString() + ',' + y.toString() + ' ';\n break;\n case 'L':\n d = d + 'L' + x.toString() + ',' + y.toString() + ' ';\n break;\n case 'C':\n d = d + 'C' + x1.toString() + ',' + y1.toString() + ',' + x2.toString() + ',' + y2.toString() + ',';\n d += x.toString() + ',' + y.toString() + ' ';\n break;\n case 'Q':\n d = d + 'Q' + x1.toString() + ',' + y1.toString() + ',' + x.toString() + ',' + y.toString() + ' ';\n break;\n case 'A':\n d = d + 'A' + segment.r1.toString() + ',' + segment.r2.toString() + ',' + segment.angle.toString() + ',';\n d += segment.largeArc.toString() + ',' + segment.sweep + ',' + x.toString() + ',' + y.toString() + ' ';\n break;\n case 'Z':\n case 'z':\n d = d + 'Z' + ' ';\n break;\n }\n }\n svg.setAttribute('d', d);\n };\n return SvgRenderer;\n}());\nexport { SvgRenderer };\n/** @private */\nexport function setAttributeSvg(svg, attributes) {\n var keys = Object.keys(attributes);\n for (var i = 0; i < keys.length; i++) {\n svg.setAttribute(keys[parseInt(i.toString(), 10)], attributes[keys[parseInt(i.toString(), 10)]]);\n }\n}\n/** @private */\nexport function createSvgElement(elementType, attribute) {\n var element = document.createElementNS('http://www.w3.org/2000/svg', elementType);\n setAttributeSvg(element, attribute);\n return element;\n}\n/** @private */\nexport function createSvg(id, width, height) {\n var svgObj = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n setAttributeSvg(svgObj, { 'id': id, 'width': width, 'height': height });\n return svgObj;\n}\nexport function getParentSvg(element, targetElement, canvas) {\n if (element && element.id) {\n if (targetElement && targetElement === 'selector') {\n return this.pdfViewer.adornerSvgLayer;\n }\n }\n return canvas;\n}\n","import { createHtmlElement, getDiagramElement } from '@syncfusion/ej2-drawings';\nimport { setAttributeSvg, createSvgElement } from '@syncfusion/ej2-drawings';\n/**\n * @param {ClientRect} bounds - Specified the bounds of the annotation.\n * @param {string} commonStyle - Specified the annotation styles.\n * @param {HTMLElement} cavas - Specified the annotation canvas element.\n * @param {number} index - Specified the page index value.\n * @param {PdfViewer} pdfViewer - Specified the pdfviewer element.\n * @hidden\n * @returns {void}\n */\nexport function renderAdornerLayer(bounds, commonStyle, cavas, index, pdfViewer) {\n var divElement = createHtmlElement('div', {\n 'id': pdfViewer.element.id + index + '_diagramAdornerLayer',\n 'style': 'width:' + bounds.width + 'px;height:' + bounds.height + 'px;' + commonStyle\n });\n if (!getDiagramElement(divElement.id)) {\n var nextElement = pdfViewer.viewerBase.getElement('_pageDiv_' + index);\n var pageBound = nextElement.getBoundingClientRect();\n var svgAdornerSvg = createSvg(pdfViewer.element.id + index + '_diagramAdorner_svg', pageBound.width, pageBound.height);\n svgAdornerSvg.setAttribute('class', 'e-adorner-layer' + index);\n svgAdornerSvg.setAttribute('style', 'pointer-events:none;');\n pdfViewer.adornerSvgLayer = createSvgElement('g', { 'id': pdfViewer.element.id + index + '_diagramAdorner' });\n pdfViewer.adornerSvgLayer.setAttribute('style', ' pointer-events: all; ');\n svgAdornerSvg.appendChild(pdfViewer.adornerSvgLayer);\n divElement.appendChild(svgAdornerSvg);\n divElement.style.width = pageBound.width + 'px';\n divElement.style.height = pageBound.height + 'px';\n if (nextElement) {\n nextElement.insertBefore(divElement, nextElement.childNodes[0]);\n }\n else {\n cavas.parentElement.appendChild(divElement);\n }\n var svgSelector = createSvgElement('g', { 'id': pdfViewer.element.id + index + '_SelectorElement' });\n pdfViewer.adornerSvgLayer.appendChild(svgSelector);\n setAttributeSvg(svgAdornerSvg, { style: 'pointer-events:none;' });\n }\n pdfViewer.viewerBase.applyElementStyles(divElement, index);\n}\n/**\n * @param {string} id - Specified the Id of the svg element.\n * @param {string | number} width - Specified the width of the svg element.\n * @param {string | number} height - Specified the height of the svg element.\n * @hidden\n * @returns {SVGElement} - Returns the svg element.\n */\nexport function createSvg(id, width, height) {\n var svgObj = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n setAttributeSvg(svgObj, { 'id': id, 'width': width, 'height': height });\n return svgObj;\n}\n","/**\n * ContextMenu module is used to handle the context menus used in the control.\n *\n * @hidden\n */\nvar BlazorContextMenu = /** @class */ (function () {\n /**\n * Initialize the constructor of blazorcontext\n *\n * @param { PdfViewer } pdfViewer - Specified PdfViewer class.\n * @param { PdfViewerBase } pdfViewerBase - The pdfViewerBase.\n */\n function BlazorContextMenu(pdfViewer, pdfViewerBase) {\n this.pdfViewer = pdfViewer;\n this.pdfViewerBase = pdfViewerBase;\n }\n /**\n * Create the context menu.\n * @returns {void}\n */\n BlazorContextMenu.prototype.createContextMenu = function () {\n var htmlCollection = document.getElementsByClassName(this.pdfViewer.element.id + '_context_menu');\n if (htmlCollection) {\n this.contextMenuElement = htmlCollection[0];\n if (this.contextMenuElement.children && this.contextMenuElement.children.length > 0) {\n var htmlElement = this.contextMenuElement.children[0];\n htmlElement.className = htmlElement.className + ' ' + 'e-pv-context-menu';\n }\n }\n };\n /**\n * open the context menu.\n * @param {number} top - The top.\n * @param {number} left - The left.\n * @param {HTMLElement} target - The target.\n * @returns {void}\n */\n BlazorContextMenu.prototype.open = function (top, left, target) {\n this.pdfViewer._dotnetInstance.invokeMethodAsync('OpenContextMenu', top, left);\n };\n /**\n * close the context menu.\n * @returns {void}\n */\n BlazorContextMenu.prototype.close = function () {\n this.pdfViewer._dotnetInstance.invokeMethodAsync('CloseContextMenu');\n };\n /**\n * destroy the context menu.\n * @returns {void}\n */\n BlazorContextMenu.prototype.destroy = function () {\n this.previousAction = '';\n this.contextMenuElement = null;\n };\n // eslint-disable-next-line\n BlazorContextMenu.prototype.OnItemSelected = function (selectedMenu) {\n if (typeof selectedMenu === 'string') {\n this.pdfViewerBase.OnItemSelected(selectedMenu);\n }\n else {\n this.pdfViewerBase.OnItemSelected(selectedMenu[0]);\n }\n };\n return BlazorContextMenu;\n}());\nexport { BlazorContextMenu };\n","import { isNullOrUndefined, classList, createElement } from '@syncfusion/ej2-base';\nvar globalTimeOut = {};\nvar spinTemplate = null;\nvar spinCSSClass = null;\nvar DEFT_MAT_WIDTH = 30;\nvar DEFT_FAB_WIDTH = 30;\nvar DEFT_BOOT_WIDTH = 30;\nvar DEFT_BOOT4_WIDTH = 36;\nvar CLS_SHOWSPIN = 'e-spin-show';\nvar CLS_HIDESPIN = 'e-spin-hide';\nvar CLS_MATERIALSPIN = 'e-spin-material';\nvar CLS_FABRICSPIN = 'e-spin-fabric';\nvar CLS_BOOTSPIN = 'e-spin-bootstrap';\nvar CLS_BOOT4SPIN = 'e-spin-bootstrap4';\nvar CLS_BOOT5SPIN = 'e-spin-bootstrap5';\nvar CLS_TAILWIND = 'e-spin-tailwind';\nvar CLS_Fluent = 'e-spin-fluent';\nvar CLS_HIGHCONTRASTSPIN = 'e-spin-high-contrast';\nvar CLS_SPINWRAP = 'e-spinner-pane';\nvar CLS_SPININWRAP = 'e-spinner-inner';\nvar CLS_SPINCIRCLE = 'e-path-circle';\nvar CLS_SPINARC = 'e-path-arc';\nvar CLS_SPINLABEL = 'e-spin-label';\nvar CLS_SPINTEMPLATE = 'e-spin-template';\n/**\n * Function to change the Spinners in a page globally from application end.\n * ```\n * E.g : blazorSpinner({ action: \"Create\", options: {target: targetElement}, type: \"\" });\n * ```\n *\n * @private\n * @param {string} action - The action.\n * @param {CreateArgs} options - The options\n * @param {string} target - The target\n * @param {string} type - the type\n * @returns {void}\n */\nexport function Spinner(action, options, target, type) {\n switch (action) {\n case 'Create':\n // eslint-disable-next-line\n var element = document.querySelector(options.target);\n // eslint-disable-next-line\n var args = { type: type, target: element, cssClass: options.cssClass,\n label: options.label, width: options.width };\n createSpinner(args);\n break;\n case 'Show':\n showSpinner(document.querySelector(target));\n break;\n case 'Hide':\n hideSpinner(document.querySelector(target));\n break;\n case 'Set':\n // eslint-disable-next-line\n var setArgs = { cssClass: options.cssClass, type: type };\n setSpinner(setArgs);\n break;\n }\n}\n/**\n * Create a spinner for the specified target element.\n * ```\n * E.g : createSpinner({ target: targetElement, width: '34px', label: 'Loading..' });\n * ```\n * @private\n * @param {SpinnerArgs} args - The SpinnerArgs.\n * @param {createElementParams} internalCreateElement - The internalCreateElement\n * @returns {void}\n */\nexport function createSpinner(args, internalCreateElement) {\n if (!args.target) {\n return;\n }\n var radius;\n var makeElement = !isNullOrUndefined(internalCreateElement) ? internalCreateElement : createElement;\n var container = createSpinnerContainer(args.target, makeElement);\n if (!isNullOrUndefined(args.cssClass)) {\n container.wrap.classList.add(args.cssClass);\n }\n if (!isNullOrUndefined(args.template) || !isNullOrUndefined(spinTemplate)) {\n var template = !isNullOrUndefined(args.template) ? args.template : spinTemplate;\n container.wrap.classList.add(CLS_SPINTEMPLATE);\n replaceContent(container.wrap, template, spinCSSClass);\n }\n else {\n var theme = !isNullOrUndefined(args.type) ? args.type : getTheme(container.wrap);\n var width = !isNullOrUndefined(args.width) ? args.width : undefined;\n radius = calculateRadius(width, theme);\n setTheme(theme, container.wrap, radius, makeElement);\n if (!isNullOrUndefined(args.label)) {\n createLabel(container.innerWrap, args.label, makeElement);\n }\n }\n container.wrap.classList.add(CLS_HIDESPIN);\n container = null;\n}\n/**\n * @param {HTMLElement} container - The HTMLElement.\n * @param {number} label - The label.\n * @param {createElementParams} makeElement - The makeElement.\n * @returns {HTMLElement} - Returns HTMLElement.\n */\nfunction createLabel(container, label, makeElement) {\n var labelEle = makeElement('div', {});\n labelEle.classList.add(CLS_SPINLABEL);\n labelEle.textContent = label;\n container.appendChild(labelEle);\n return labelEle;\n}\n/**\n * @param {HTMLElement} container - The HTMLElement.\n * @param {number} radius - The radius.\n * @param {createElementParams} makeElement - The makeElement.\n * @returns {void}\n */\nfunction createMaterialSpinner(container, radius, makeElement) {\n var uniqueID = randomGenerator();\n globalTimeOut[\"\" + uniqueID] = { timeOut: 0, type: 'Material', radius: radius };\n createMaterialElement(container, uniqueID, makeElement, CLS_MATERIALSPIN);\n matCalculateAttributes(radius, container, 'Material', CLS_MATERIALSPIN);\n}\n/**\n * @param {HTMLElement} container - The HTMLElement.\n * @param {number} radius - The radius.\n * @param {createElementParams} makeElement - The makeElement.\n * @returns {void}\n */\nfunction createBootstrap4Spinner(container, radius, makeElement) {\n var uniqueID = randomGenerator();\n globalTimeOut[\"\" + uniqueID] = { timeOut: 0, type: 'Bootstrap4', radius: radius };\n createMaterialElement(container, uniqueID, makeElement, CLS_BOOT4SPIN);\n matCalculateAttributes(radius, container, 'Bootstrap4', CLS_BOOT4SPIN);\n}\n/**\n * @param {HTMLElement} container - The HTMLElement.\n * @param {number} radius - The radius.\n * @param {createElementParams} makeElement - The makeElement.\n * @returns {void}\n */\nfunction createBootstrap5Spinner(container, radius, makeElement) {\n var uniqueID = randomGenerator();\n globalTimeOut[\"\" + uniqueID] = { timeOut: 0, type: 'Bootstrap5', radius: radius };\n createMaterialElement(container, uniqueID, makeElement, CLS_BOOT5SPIN);\n matCalculateAttributes(radius, container, 'Bootstrap5', CLS_BOOT5SPIN);\n}\n/**\n * @param {HTMLElement} container - The HTMLElement.\n * @param {number} radius - The radius.\n * @param {createElementParams} makeElement - The makeElement.\n * @returns {void}\n */\nfunction createTailwindSpinner(container, radius, makeElement) {\n var uniqueID = randomGenerator();\n globalTimeOut[\"\" + uniqueID] = { timeOut: 0, type: 'Tailwind', radius: radius };\n createFabricElement(container, uniqueID, CLS_TAILWIND, makeElement);\n fbCalculateAttributes(radius, container, CLS_TAILWIND);\n}\n/**\n * @param {HTMLElement} container - The HTMLElement.\n * @param {number} radius - The radius.\n * @param {createElementParams} makeElement - The makeElement.\n * @returns {void}\n */\nfunction createFluentSpinner(container, radius, makeElement) {\n var uniqueID = randomGenerator();\n globalTimeOut[\"\" + uniqueID] = { timeOut: 0, type: 'Fluent', radius: radius };\n createFabricElement(container, uniqueID, CLS_Fluent, makeElement);\n fbCalculateAttributes(radius, container, CLS_Fluent);\n}\n/**\n * @param {HTMLElement} container - The HTMLElement.\n * @param {string} uniqueID - The uniqueID.\n * @param {number} radius - The radius.\n * @returns {void}\n */\nfunction startMatAnimate(container, uniqueID, radius) {\n var globalObject = {};\n var timeOutVar = 0;\n globalTimeOut[\"\" + uniqueID].timeOut = 0;\n globalObject[\"\" + uniqueID] = globalVariables(uniqueID, radius, 0, 0);\n var spinnerInfo = { uniqueID: uniqueID, container: container, globalInfo: globalObject, timeOutVar: timeOutVar };\n animateMaterial(spinnerInfo);\n}\n/**\n * @param {HTMLElement} container - The HTMLElement.\n * @param {number} radius - The radius.\n * @param {createElementParams} makeElement - The makeElement.\n * @returns {void}\n */\nfunction createFabricSpinner(container, radius, makeElement) {\n var uniqueID = randomGenerator();\n globalTimeOut[\"\" + uniqueID] = { timeOut: 0, type: 'Fabric', radius: radius };\n createFabricElement(container, uniqueID, CLS_FABRICSPIN, makeElement);\n fbCalculateAttributes(radius, container, CLS_FABRICSPIN);\n}\n/**\n * @param {HTMLElement} container - The HTMLElement.\n * @param {number} radius - The radius.\n * @param {createElementParams} makeElement - The makeElement.\n * @returns {void}\n */\nfunction createHighContrastSpinner(container, radius, makeElement) {\n var uniqueID = randomGenerator();\n globalTimeOut[\"\" + uniqueID] = { timeOut: 0, type: 'HighContrast', radius: radius };\n createFabricElement(container, uniqueID, CLS_HIGHCONTRASTSPIN, makeElement);\n fbCalculateAttributes(radius, container, CLS_HIGHCONTRASTSPIN);\n}\n/**\n * @param {HTMLElement} container - The container\n * @returns {string} - Returns the string\n */\nfunction getTheme(container) {\n var theme = window.getComputedStyle(container, ':after').getPropertyValue('content');\n return theme.replace(/['\"]+/g, '');\n}\n/**\n * @param {string} theme - The theme.\n * @param {HTMLElement} container - The HTMLElement.\n * @param {number} radius - The radius.\n * @param {createElementParams} makeElement - The makeElement.\n * @returns {void}\n */\nfunction setTheme(theme, container, radius, makeElement) {\n var innerContainer = container.querySelector('.' + CLS_SPININWRAP);\n var svg = innerContainer.querySelector('svg');\n if (!isNullOrUndefined(svg)) {\n innerContainer.removeChild(svg);\n }\n switch (theme) {\n case 'Material':\n createMaterialSpinner(innerContainer, radius, makeElement);\n break;\n case 'Fabric':\n createFabricSpinner(innerContainer, radius, makeElement);\n break;\n case 'Bootstrap':\n createBootstrapSpinner(innerContainer, radius, makeElement);\n break;\n case 'HighContrast':\n createHighContrastSpinner(innerContainer, radius, makeElement);\n break;\n case 'Bootstrap4':\n createBootstrap4Spinner(innerContainer, radius, makeElement);\n break;\n case 'Bootstrap5':\n createBootstrap5Spinner(innerContainer, radius, makeElement);\n break;\n case 'Tailwind':\n createTailwindSpinner(innerContainer, radius, makeElement);\n break;\n case 'Fluent':\n createFluentSpinner(innerContainer, radius, makeElement);\n break;\n }\n}\n/**\n * @param {HTMLElement} innerContainer - The innerContainer.\n * @param {number} radius - The radius.\n * @param {createElementParams} makeElement - The makeElement.\n * @returns {void}\n */\nfunction createBootstrapSpinner(innerContainer, radius, makeElement) {\n var uniqueID = randomGenerator();\n globalTimeOut[\"\" + uniqueID] = { timeOut: 0, type: 'Bootstrap', radius: radius };\n createBootstrapElement(innerContainer, uniqueID, makeElement);\n bootCalculateAttributes(innerContainer, radius);\n}\n/**\n * @param {HTMLElement} innerContainer - The HTMLElement.\n * @param {string} uniqueID - The uniqueID.\n * @param {createElementParams} makeElement - The createElementParams.\n * @returns {void}\n */\nfunction createBootstrapElement(innerContainer, uniqueID, makeElement) {\n var svgBoot = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n var viewBoxValue = 64;\n var trans = 32;\n var defaultRadius = 2;\n svgBoot.setAttribute('id', uniqueID);\n svgBoot.setAttribute('class', CLS_BOOTSPIN);\n svgBoot.setAttribute('viewBox', '0 0 ' + viewBoxValue + ' ' + viewBoxValue);\n innerContainer.insertBefore(svgBoot, innerContainer.firstChild);\n for (var item = 0; item <= 7; item++) {\n var bootCircle = document.createElementNS('http://www.w3.org/2000/svg', 'circle');\n bootCircle.setAttribute('class', CLS_SPINCIRCLE + '_' + item);\n bootCircle.setAttribute('r', defaultRadius + '');\n bootCircle.setAttribute('transform', 'translate(' + trans + ',' + trans + ')');\n svgBoot.appendChild(bootCircle);\n }\n}\n/**\n * @param {HTMLElement} innerContainer - The innerContainer.\n * @param {number} radius - The radius.\n * @returns {void}\n */\nfunction bootCalculateAttributes(innerContainer, radius) {\n var svg = innerContainer.querySelector('svg.e-spin-bootstrap');\n svg.style.width = svg.style.height = radius + 'px';\n var x = 0;\n var y = 0;\n var rad = 24;\n var startArc = 90;\n for (var item = 0; item <= 7; item++) {\n var start = defineArcPoints(x, y, rad, startArc);\n var circleEle = svg.querySelector('.' + CLS_SPINCIRCLE + '_' + item);\n circleEle.setAttribute('cx', start.x + '');\n circleEle.setAttribute('cy', start.y + '');\n startArc = startArc >= 360 ? 0 : startArc;\n startArc = startArc + 45;\n }\n}\n/**\n * @param {number} begin - The begin.\n * @param {number} stop - The stop.\n * @returns {number[]} - Returns the number.\n */\nfunction generateSeries(begin, stop) {\n var series = [];\n var start = begin;\n var end = stop;\n var increment = false;\n var count = 1;\n formSeries(start);\n /**\n * @param {number} i - The number\n * @returns {void}\n */\n function formSeries(i) {\n series.push(i);\n if (i !== end || count === 1) {\n if (i <= start && i > 1 && !increment) {\n i = parseFloat((i - 0.2).toFixed(2));\n }\n else if (i === 1) {\n i = 7;\n i = parseFloat((i + 0.2).toFixed(2));\n increment = true;\n }\n else if (i < 8 && increment) {\n i = parseFloat((i + 0.2).toFixed(2));\n if (i === 8) {\n increment = false;\n }\n }\n else if (i <= 8 && !increment) {\n i = parseFloat((i - 0.2).toFixed(2));\n }\n ++count;\n formSeries(i);\n }\n }\n return series;\n}\n/**\n * @param {HTMLElement} innerContainer - The innerContainer.\n * @returns {void}\n */\nfunction animateBootstrap(innerContainer) {\n var svg = innerContainer.querySelector('svg.e-spin-bootstrap');\n var id = svg.getAttribute('id');\n for (var i = 1; i <= 8; i++) {\n var circleEle = (innerContainer.getElementsByClassName('e-path-circle_' +\n (i === 8 ? 0 : i))[0]);\n rotation(circleEle, i, i, generateSeries(i, i), id);\n }\n /**\n * @param {SVGCircleElement} circle - The circle.\n * @param {number} start - The start.\n * @param {number} end - The end.\n * @param {number[]} series - The series\n * @param {string} id - The id.\n * @returns {void}\n */\n function rotation(circle, start, end, series, id) {\n var count = 0;\n bootAnimate(start);\n /**\n * @param {number} radius - The radisu.\n * @returns {void}\n */\n function bootAnimate(radius) {\n if (globalTimeOut[\"\" + id].isAnimate) {\n ++count;\n circle.setAttribute('r', radius + '');\n if (count >= series.length) {\n count = 0;\n }\n globalTimeOut[\"\" + id].timeOut = setTimeout(bootAnimate.bind(null, series[parseInt(count.toString(), 10)]), 18);\n }\n }\n }\n}\n/**\n * @param {HTMLElement} container - The container.\n * @param {string} template - The template.\n * @param {string} cssClass - The cssClass.\n * @returns {void}\n */\nfunction replaceContent(container, template, cssClass) {\n if (!isNullOrUndefined(cssClass)) {\n container.classList.add(cssClass);\n }\n var inner = container.querySelector('.e-spinner-inner');\n inner.innerHTML = template;\n}\n/**\n * @param {string | number} width - The width\n * @param {string} theme - The theme.\n * @returns {number} - Returns the number.\n */\nfunction calculateRadius(width, theme) {\n var defaultSize;\n switch (theme) {\n case 'Material':\n defaultSize = DEFT_MAT_WIDTH;\n break;\n case 'Fabric':\n defaultSize = DEFT_FAB_WIDTH;\n break;\n case 'Bootstrap4':\n defaultSize = DEFT_BOOT4_WIDTH;\n break;\n default:\n defaultSize = DEFT_BOOT_WIDTH;\n }\n width = width ? parseFloat(width + '') : defaultSize;\n return theme === 'Bootstrap' ? width : width / 2;\n}\n/**\n * @param {string} id - The id.\n * @param {number} radius - The radius.\n * @param {number} count - The count.\n * @param {number} previousId - The previousId.\n * @returns {GlobalVariables} - Returns GlobalVariables.\n */\nfunction globalVariables(id, radius, count, previousId) {\n return {\n radius: radius,\n count: count,\n previousId: previousId\n };\n}\n/**\n * @returns {string} - Returns string.\n */\nfunction randomGenerator() {\n var random = '';\n var combine = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n for (var i = 0; i < 5; i++) {\n random += combine.charAt(Math.floor(Math.random() * combine.length));\n }\n return random;\n}\n/**\n * @param {HTMLElement} innerCon - The innerContainer.\n * @param {string} uniqueID - The uniqueID.\n * @param {string} themeClass - The themeClass\n * @param {createElementParams} makeElement - The makeElement.\n * @returns {void}\n */\nfunction createFabricElement(innerCon, uniqueID, themeClass, makeElement) {\n var svgFabric = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n svgFabric.setAttribute('id', uniqueID);\n svgFabric.setAttribute('class', themeClass);\n var fabricCirclePath = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n fabricCirclePath.setAttribute('class', CLS_SPINCIRCLE);\n var fabricCircleArc = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n fabricCircleArc.setAttribute('class', CLS_SPINARC);\n innerCon.insertBefore(svgFabric, innerCon.firstChild);\n svgFabric.appendChild(fabricCirclePath);\n svgFabric.appendChild(fabricCircleArc);\n}\n/**\n * @param {HTMLElement} innerContainer - The innerContainer.\n * @param {string} uniqueID - The uniqueID.\n * @param {createElementParams} makeElement - The makeElement.\n * @param {string} cls - The class\n * @returns {void}\n */\nfunction createMaterialElement(innerContainer, uniqueID, makeElement, cls) {\n var svgMaterial = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n svgMaterial.setAttribute('class', cls);\n svgMaterial.setAttribute('id', uniqueID);\n var matCirclePath = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n matCirclePath.setAttribute('class', CLS_SPINCIRCLE);\n innerContainer.insertBefore(svgMaterial, innerContainer.firstChild);\n svgMaterial.appendChild(matCirclePath);\n}\n/**\n * @param {HTMLElement} target - The target.\n * @param {createElementParams} makeElement - The makeElement.\n * @returns {HTMLElement;HTMLElement} - Retruns the HTMLElement.\n */\nfunction createSpinnerContainer(target, makeElement) {\n var spinnerContainer = makeElement('div', {});\n spinnerContainer.classList.add(CLS_SPINWRAP);\n var spinnerInnerContainer = makeElement('div', {});\n spinnerInnerContainer.classList.add(CLS_SPININWRAP);\n target.appendChild(spinnerContainer);\n spinnerContainer.appendChild(spinnerInnerContainer);\n return { wrap: spinnerContainer, innerWrap: spinnerInnerContainer };\n}\n/**\n * @param {SpinnerInfo} spinnerInfo - The SpinnerInfo.\n * @returns {void}\n */\nfunction animateMaterial(spinnerInfo) {\n var start = 1;\n var end = 149;\n var duration = 1333;\n var max = 75;\n createCircle(start, end, easeAnimation, duration, spinnerInfo.globalInfo[spinnerInfo.uniqueID].count, max, spinnerInfo);\n spinnerInfo.globalInfo[spinnerInfo.uniqueID].count = ++spinnerInfo.globalInfo[spinnerInfo.uniqueID].count % 4;\n}\n/**\n * @param {number} start - The start.\n * @param {number} end - The end.\n * @param {Function} easing - The easing.\n * @param {number} duration - The duration.\n * @param {number} count - The count.\n * @param {number} max - The max.\n * @param {SpinnerInfo} spinnerInfo - The SpinnerInfo.\n * @returns {void}\n */\nfunction createCircle(start, end, easing, duration, count, max, spinnerInfo) {\n var id = ++spinnerInfo.globalInfo[spinnerInfo.uniqueID].previousId;\n var startTime = new Date().getTime();\n var change = end - start;\n var diameter = getSize((spinnerInfo.globalInfo[spinnerInfo.uniqueID].radius * 2) + '');\n var strokeSize = getStrokeSize(diameter);\n var rotate = -90 * (spinnerInfo.globalInfo[spinnerInfo.uniqueID].count || 0);\n matAnimation(spinnerInfo);\n /**\n * @param {SpinnerInfo} spinnerInfo - The SpinnerInfo.\n * @returns {void}\n */\n function matAnimation(spinnerInfo) {\n var currentTime = Math.max(0, Math.min(new Date().getTime() - startTime, duration));\n updatePath(easing(currentTime, start, change, duration), spinnerInfo.container);\n if (id === spinnerInfo.globalInfo[spinnerInfo.uniqueID].previousId && currentTime < duration) {\n globalTimeOut[spinnerInfo.uniqueID].timeOut = setTimeout(matAnimation.bind(null, spinnerInfo), 1);\n }\n else {\n animateMaterial(spinnerInfo);\n }\n }\n /**\n * @param {number} value - The value.\n * @param {HTMLElement} container - The container.\n * @returns {void}\n */\n function updatePath(value, container) {\n if ((!isNullOrUndefined(container.querySelector('svg.e-spin-material')))\n && (!isNullOrUndefined(container.querySelector('svg.e-spin-material').querySelector('path.e-path-circle')))) {\n var svg = container.querySelector('svg.e-spin-material');\n var path = svg.querySelector('path.e-path-circle');\n path.setAttribute('stroke-dashoffset', getDashOffset(diameter, strokeSize, value, max) + '');\n path.setAttribute('transform', 'rotate(' + (rotate) + ' ' + diameter / 2 + ' ' + diameter / 2 + ')');\n }\n }\n}\n/**\n * @param {number} radius - The radius.\n * @param {HTMLElement} container - The container.\n * @param {string} type - The type.\n * @param {string} cls - The class\n * @returns {void}\n */\nfunction matCalculateAttributes(radius, container, type, cls) {\n var diameter = radius * 2;\n var svg = container.querySelector('svg.' + cls);\n var path = svg.querySelector('path.e-path-circle');\n var strokeSize = getStrokeSize(diameter);\n var transformOrigin = (diameter / 2) + 'px';\n svg.setAttribute('viewBox', '0 0 ' + diameter + ' ' + diameter);\n svg.style.width = svg.style.height = diameter + 'px';\n svg.style.transformOrigin = transformOrigin + ' ' + transformOrigin + ' ' + transformOrigin;\n path.setAttribute('d', drawArc(diameter, strokeSize));\n if (type === 'Material') {\n path.setAttribute('stroke-width', strokeSize + '');\n path.setAttribute('stroke-dasharray', ((diameter - strokeSize) * Math.PI * 0.75) + '');\n path.setAttribute('stroke-dashoffset', getDashOffset(diameter, strokeSize, 1, 75) + '');\n }\n}\n/**\n * @param {string} value - The value.\n * @returns {number} - Returns number.\n */\nfunction getSize(value) {\n var parsed = parseFloat(value);\n return parsed;\n}\n/**\n * @param {number} diameter - The diameter.\n * @param {number} strokeSize - The strokeSize.\n * @returns {string} - Returns string.\n */\nfunction drawArc(diameter, strokeSize) {\n var radius = diameter / 2;\n var offset = strokeSize / 2;\n return 'M' + radius + ',' + offset\n + 'A' + (radius - offset) + ',' + (radius - offset) + ' 0 1 1 ' + offset + ',' + radius;\n}\n/**\n * @param {number} diameter - The diameter.\n * @returns {number} - Returns number.\n */\nfunction getStrokeSize(diameter) {\n return 10 / 100 * diameter;\n}\n/**\n * @param {number} diameter - The diameter.\n * @param {number} strokeSize - The strokeSize.\n * @param {number} value - The value.\n * @param {number} max - The max.\n * @returns {number} - Returns number.\n */\nfunction getDashOffset(diameter, strokeSize, value, max) {\n return (diameter - strokeSize) * Math.PI * ((3 * (max) / 100) - (value / 100));\n}\n/**\n * @param {number} current - The current.\n * @param {number} start - The start.\n * @param {number} change - The change.\n * @param {number} duration - The duration\n * @returns {number} - Returns number.\n */\nfunction easeAnimation(current, start, change, duration) {\n var timestamp = (current /= duration) * current;\n var timecount = timestamp * current;\n return start + change * (6 * timecount * timestamp + -15 * timestamp * timestamp + 10 * timecount);\n}\n/**\n * @param {number} radius - The radius.\n * @param {HTMLElement} innerConainer - The innerConainer.\n * @param {string} trgClass - The trgClass.\n * @returns {void}\n */\nfunction fbCalculateAttributes(radius, innerConainer, trgClass) {\n var centerX = radius;\n var centerY = radius;\n var diameter = radius * 2;\n var startArc = 315;\n var endArc = 45;\n var svg = innerConainer.querySelector('.' + trgClass);\n var circle = svg.querySelector('.e-path-circle');\n var path = svg.querySelector('.e-path-arc');\n var transformOrigin = (diameter / 2) + 'px';\n circle.setAttribute('d', defineCircle(centerX, centerY, radius));\n path.setAttribute('d', defineArc(centerX, centerY, radius, startArc, endArc));\n svg.setAttribute('viewBox', '0 0 ' + diameter + ' ' + diameter);\n svg.style.transformOrigin = transformOrigin + ' ' + transformOrigin + ' ' + transformOrigin;\n svg.style.width = svg.style.height = diameter + 'px';\n}\n/**\n * @param {number} centerX - The centerX.\n * @param {number} centerY - The centerY.\n * @param {number} radius - The radius.\n * @param {number} angle - The angle.\n * @returns {number;number} - Returns number.\n */\nfunction defineArcPoints(centerX, centerY, radius, angle) {\n var radians = (angle - 90) * Math.PI / 180.0;\n return {\n x: centerX + (radius * Math.cos(radians)),\n y: centerY + (radius * Math.sin(radians))\n };\n}\n/**\n * @param {number} x - The x.\n * @param {number} y - The y.\n * @param {number} radius - The radius.\n * @param {number} startArc - The startArc.\n * @param {number} endArc - The endArc.\n * @returns {string} - Returns string.\n */\nfunction defineArc(x, y, radius, startArc, endArc) {\n var start = defineArcPoints(x, y, radius, endArc);\n var end = defineArcPoints(x, y, radius, startArc);\n var d = [\n 'M', start.x, start.y,\n 'A', radius, radius, 0, 0, 0, end.x, end.y\n ].join(' ');\n return d;\n}\n/**\n * @param {number} x - The x.\n * @param {number} y - The y.\n * @param {number} radius - The radius.\n * @returns {void}\n */\nfunction defineCircle(x, y, radius) {\n var d = [\n 'M', x, y,\n 'm', -radius, 0,\n 'a', radius, radius, 0, 1, 0, radius * 2, 0,\n 'a', radius, radius, 0, 1, 0, -radius * 2, 0\n ].join(' ');\n return d;\n}\n/**\n * Function to show the Spinner.\n * @private\n * @param {HTMLElement} container - The container.\n * @returns {void}\n */\nexport function showSpinner(container) {\n showHideSpinner(container, false);\n container = null;\n}\n/**\n * @param {HTMLElement} container - The container.\n * @param {boolean} isHide - To show or hide.\n * @returns {void}\n */\nfunction showHideSpinner(container, isHide) {\n var spinnerWrap;\n if (container) {\n spinnerWrap = container.classList.contains(CLS_SPINWRAP) ? container :\n container.querySelector('.' + CLS_SPINWRAP);\n }\n if (container && spinnerWrap) {\n var inner = spinnerWrap.querySelector('.' + CLS_SPININWRAP);\n // eslint-disable-next-line max-len\n var spinCheck = isHide ? !spinnerWrap.classList.contains(CLS_SPINTEMPLATE) && !spinnerWrap.classList.contains(CLS_HIDESPIN) :\n !spinnerWrap.classList.contains(CLS_SPINTEMPLATE) && !spinnerWrap.classList.contains(CLS_SHOWSPIN);\n if (spinCheck) {\n var svgEle = spinnerWrap.querySelector('svg');\n if (isNullOrUndefined(svgEle)) {\n return;\n }\n var id = svgEle.getAttribute('id');\n globalTimeOut[\"\" + id].isAnimate = !isHide;\n switch (globalTimeOut[\"\" + id].type) {\n case 'Material':\n // eslint-disable-next-line\n isHide ? clearTimeout(globalTimeOut[id].timeOut) : startMatAnimate(inner, id, globalTimeOut[id].radius);\n break;\n case 'Bootstrap':\n // eslint-disable-next-line\n isHide ? clearTimeout(globalTimeOut[id].timeOut) : animateBootstrap(inner);\n break;\n }\n }\n // eslint-disable-next-line\n isHide ? classList(spinnerWrap, [CLS_HIDESPIN], [CLS_SHOWSPIN]) : classList(spinnerWrap, [CLS_SHOWSPIN], [CLS_HIDESPIN]);\n container = null;\n }\n}\n/**\n * Function to hide the Spinner.\n * @private\n * @param {HTMLElement} container - Specify the target of the Spinner.\n * @returns {void}\n */\nexport function hideSpinner(container) {\n showHideSpinner(container, true);\n container = null;\n}\n/**\n * Function to change the Spinners in a page globally from application end.\n * ```\n * E.g : setSpinner({ cssClass: 'custom-css'; type: 'Material' });\n * ```\n * @private\n * @param {SetSpinnerArgs} args - The args.\n * @param {createElementParams} internalCreateElement - The internalCreateElement.\n * @returns {void}\n */\nexport function setSpinner(args, internalCreateElement) {\n var makeElement = !isNullOrUndefined(internalCreateElement) ? internalCreateElement : createElement;\n if (args.template !== undefined) {\n spinTemplate = args.template;\n if (args.template !== undefined) {\n spinCSSClass = args.cssClass;\n }\n }\n var container = document.querySelectorAll('.' + CLS_SPINWRAP);\n for (var index = 0; index < container.length; index++) {\n ensureTemplate(args.template, container[parseInt(index.toString(), 10)], args.type, args.cssClass, makeElement);\n }\n}\n/**\n * @param {string} template - The template.\n * @param {HTMLElement} container - The container.\n * @param {string} theme - The theme.\n * @param {string} cssClass - The cssClass.\n * @param {createElementParams} makeEle - The makeEle.\n * @returns {void}\n */\nfunction ensureTemplate(template, container, theme, cssClass, makeEle) {\n if (isNullOrUndefined(template) && !container.classList.contains(CLS_SPINTEMPLATE)) {\n replaceTheme(container, theme, cssClass, makeEle);\n if (container.classList.contains(CLS_SHOWSPIN)) {\n container.classList.remove(CLS_SHOWSPIN);\n showSpinner(container);\n }\n else {\n container.classList.remove(CLS_HIDESPIN);\n hideSpinner(container);\n }\n }\n else {\n spinTemplate = template;\n if (!isNullOrUndefined(cssClass)) {\n spinCSSClass = cssClass;\n }\n }\n}\n/**\n * @param {HTMLElement} container - The container.\n * @param {string} theme - The theme.\n * @param {string} cssClass - The cssClass.\n * @param {createElementParams} makeEle - The makeEle.\n * @returns {void}\n */\nfunction replaceTheme(container, theme, cssClass, makeEle) {\n if (!isNullOrUndefined(cssClass)) {\n container.classList.add(cssClass);\n }\n var svgElement = container.querySelector('svg');\n var radius = theme === 'Bootstrap' ? parseFloat(svgElement.style.height) : parseFloat(svgElement.style.height) / 2;\n var classNames = svgElement.getAttribute('class');\n var svgClassList = classNames.split(/\\s/);\n if (svgClassList.indexOf('e-spin-material') >= 0) {\n var id = svgElement.getAttribute('id');\n clearTimeout(globalTimeOut[\"\" + id].timeOut);\n }\n setTheme(theme, container, radius, makeEle);\n}\n","/**\n * The `BlazorUIAdaptor` module is used to handle the UI update of native components.\n * @hidden\n */\nvar BlazorUiAdaptor = /** @class */ (function () {\n /**\n * Initialize the constructor of blazorUIadapater.\n *\n * @param { PdfViewer } pdfviewer - Specified PdfViewer class.\n * @param { PdfViewerBase } pdfViewerBase - The pdfViewerBase.\n */\n function BlazorUiAdaptor(pdfviewer, pdfViewerBase) {\n this.pdfViewer = null;\n this.pdfViewerBase = null;\n /**\n * @private\n */\n this.totalPageElement = null;\n this.currentPageBoxElementContainer = null;\n this.currentPageBoxElement = null;\n this.firstPageElement = null;\n this.previousPageElement = null;\n this.nextPageElement = null;\n this.lastPageElement = null;\n this.zommOutElement = null;\n this.zoomInElement = null;\n this.zoomDropDownElement = null;\n this.selectToolElement = null;\n this.handToolElement = null;\n this.undoElement = null;\n this.redoElement = null;\n this.commentElement = null;\n this.submitFormButton = null;\n this.searchElement = null;\n this.annotationElement = null;\n this.printElement = null;\n this.downloadElement = null;\n this.highlightElement = null;\n this.underlineElement = null;\n this.strikeThroughElement = null;\n this.shapeElement = null;\n this.calibrateElement = null;\n this.stampElement = null;\n this.freeTextElement = null;\n this.signatureElement = null;\n this.inkElement = null;\n this.annotationFontSizeInputElement = null;\n this.annotationFontFamilyInputElement = null;\n this.annotationColorElement = null;\n this.annotationStrokeColorElement = null;\n this.annotationThicknessElement = null;\n this.annotationOpacityElement = null;\n this.annotationFontColorElement = null;\n this.annotationFontFamilyElement = null;\n this.annotationFontSizeElement = null;\n this.annotationTextAlignElement = null;\n this.annotationTextColorElement = null;\n this.annotationTextPropertiesElement = null;\n this.annotationDeleteElement = null;\n this.annotationCloseElement = null;\n this.annotationCommentPanelElement = null;\n this.mobileToolbarContainerElement = null;\n this.mobileSearchPreviousOccurenceElement = null;\n this.mobileSearchNextOccurenceElement = null;\n this.cssClass = 'e-overlay';\n this.disableClass = ' e-overlay';\n this.editAnnotationButtonElement = null;\n this.pdfViewer = pdfviewer;\n this.pdfViewerBase = pdfViewerBase;\n this.findToolbarElements();\n }\n BlazorUiAdaptor.prototype.findToolbarElements = function () {\n this.totalPageElement = this.pdfViewerBase.getElement('_totalPage').children[0];\n this.currentPageBoxElementContainer = this.pdfViewerBase.getElement('_currentPageInput');\n this.currentPageBoxElement = this.pdfViewerBase.getElement('_currentPageInput').children[0].children[0];\n this.firstPageElement = this.pdfViewerBase.getElement('_firstPage');\n this.previousPageElement = this.pdfViewerBase.getElement('_previousPage');\n this.nextPageElement = this.pdfViewerBase.getElement('_nextPage');\n this.lastPageElement = this.pdfViewerBase.getElement('_lastPage');\n this.zommOutElement = this.pdfViewerBase.getElement('_zoomOut');\n this.zoomInElement = this.pdfViewerBase.getElement('_zoomIn');\n this.zoomDropDownElement = this.pdfViewerBase.getElement('_zoomDropDown');\n this.selectToolElement = this.pdfViewerBase.getElement('_selectTool');\n this.handToolElement = this.pdfViewerBase.getElement('_handTool');\n this.undoElement = this.pdfViewerBase.getElement('_undo');\n this.redoElement = this.pdfViewerBase.getElement('_redo');\n this.commentElement = this.pdfViewerBase.getElement('_comment');\n this.submitFormButton = this.pdfViewerBase.getElement('_submitFormButton');\n this.searchElement = this.pdfViewerBase.getElement('_search');\n this.annotationElement = this.pdfViewerBase.getElement('_annotation');\n this.editAnnotationButtonElement = this.annotationElement.children[0];\n this.editAnnotationButtonElement.classList.add('e-pv-tbar-btn');\n this.printElement = this.pdfViewerBase.getElement('_print');\n this.downloadElement = this.pdfViewerBase.getElement('_download');\n this.highlightElement = this.pdfViewerBase.getElement('_highLight');\n this.underlineElement = this.pdfViewerBase.getElement('_underline');\n this.strikeThroughElement = this.pdfViewerBase.getElement('_strikethrough');\n this.shapeElement = this.pdfViewerBase.getElement('_annotation_shapes');\n this.calibrateElement = this.pdfViewerBase.getElement('_annotation_calibrate');\n this.stampElement = this.pdfViewerBase.getElement('_annotation_stamp');\n this.freeTextElement = this.pdfViewerBase.getElement('_annotation_freeTextEdit');\n this.signatureElement = this.pdfViewerBase.getElement('_annotation_signature');\n this.inkElement = this.pdfViewerBase.getElement('_annotation_ink');\n // tslint:disable-next-line:max-line-length\n this.annotationFontSizeInputElement = this.pdfViewerBase.getElement('_annotation_fontsize').children[0].children[0];\n // tslint:disable-next-line:max-line-length\n this.annotationFontFamilyInputElement = this.pdfViewerBase.getElement('_annotation_fontname').children[0].children[0];\n this.annotationColorElement = this.pdfViewerBase.getElement('_annotation_color');\n this.annotationStrokeColorElement = this.pdfViewerBase.getElement('_annotation_stroke');\n this.annotationThicknessElement = this.pdfViewerBase.getElement('_annotation_thickness');\n this.annotationOpacityElement = this.pdfViewerBase.getElement('_annotation_opacity');\n this.annotationFontColorElement = this.pdfViewerBase.getElement('_annotation_textcolor');\n this.annotationFontFamilyElement = this.pdfViewerBase.getElement('_annotation_fontname');\n this.annotationFontSizeElement = this.pdfViewerBase.getElement('_annotation_fontsize');\n this.annotationTextAlignElement = this.pdfViewerBase.getElement('_annotation_textalign');\n this.annotationTextColorElement = this.pdfViewerBase.getElement('_annotation_textcolor');\n this.annotationTextPropertiesElement = this.pdfViewerBase.getElement('_annotation_textproperties');\n this.annotationDeleteElement = this.pdfViewerBase.getElement('_annotation_delete');\n this.annotationCommentPanelElement = this.pdfViewerBase.getElement('_annotation_commentPanel');\n this.annotationCloseElement = this.pdfViewerBase.getElement('_annotation_close');\n this.mobileToolbarContainerElement = this.pdfViewerBase.getElement('_mobileToolbarContainer');\n this.mobileSearchPreviousOccurenceElement = this.pdfViewerBase.getElement('_prev_occurrence');\n this.mobileSearchNextOccurenceElement = this.pdfViewerBase.getElement('_next_occurrence');\n };\n /**\n * Update the total page.\n * @returns {void}\n */\n BlazorUiAdaptor.prototype.updateTotalPage = function () {\n this.totalPageElement.textContent = this.pdfViewer.localeObj.getConstant('of') + this.pdfViewerBase.pageCount.toString();\n };\n /**\n * Update current page.\n * @param {number} pageNumber - The pageNumber.\n * @returns {void}\n */\n BlazorUiAdaptor.prototype.updateCurrentPage = function (pageNumber) {\n this.currentPageBoxElement.value = pageNumber.toString();\n };\n /**\n * Load the PDF document.\n * @returns {void}\n */\n BlazorUiAdaptor.prototype.loadDocument = function () {\n if (this.pdfViewer.enableNavigation) {\n this.currentPageBoxElementContainer.classList.remove(this.cssClass);\n this.currentPageBoxElement.value = '1';\n this.totalPageElement.textContent = this.pdfViewer.localeObj.getConstant('of') + this.pdfViewerBase.pageCount.toString();\n if (!this.isEnabled(this.firstPageElement)) {\n this.firstPageElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.previousPageElement)) {\n this.previousPageElement.className += this.disableClass;\n }\n this.nextPageElement.classList.remove(this.cssClass);\n this.lastPageElement.classList.remove(this.cssClass);\n if (this.pdfViewerBase.pageCount === 1) {\n if (!this.nextPageElement.classList.contains(this.cssClass)) {\n this.nextPageElement.className += this.disableClass;\n }\n if (!this.lastPageElement.classList.contains(this.cssClass)) {\n this.lastPageElement.className += this.disableClass;\n }\n }\n }\n if (this.pdfViewer.enableMagnification) {\n this.zoomInElement.classList.remove(this.cssClass);\n this.zommOutElement.classList.remove(this.cssClass);\n this.zoomDropDownElement.classList.remove(this.cssClass);\n }\n if (this.pdfViewer.enableTextSelection) {\n this.selectToolElement.classList.remove(this.cssClass);\n this.selectItem(this.pdfViewer.toolbar.SelectToolElement);\n }\n this.handToolElement.classList.remove(this.cssClass);\n if (this.pdfViewer.enableStickyNotesAnnotation) {\n this.commentElement.classList.remove(this.cssClass);\n }\n if (this.pdfViewer.enableTextSearch) {\n this.searchElement.classList.remove(this.cssClass);\n }\n if (this.pdfViewer.isFormFieldDocument) {\n this.submitFormButton.classList.remove(this.cssClass);\n }\n if (this.pdfViewer.enableAnnotation && this.pdfViewer.enableAnnotationToolbar) {\n this.annotationElement.classList.remove(this.cssClass);\n }\n if (this.pdfViewer.enablePrint) {\n this.printElement.classList.remove(this.cssClass);\n }\n if (this.pdfViewer.enableDownload) {\n this.downloadElement.classList.remove(this.cssClass);\n }\n if (this.pdfViewer.enableAnnotation && this.pdfViewer.enableTextMarkupAnnotation) {\n this.highlightElement.classList.remove(this.cssClass);\n this.underlineElement.classList.remove(this.cssClass);\n this.strikeThroughElement.classList.remove(this.cssClass);\n }\n if (this.pdfViewer.enableAnnotation && this.pdfViewer.enableShapeAnnotation) {\n this.shapeElement.classList.remove(this.cssClass);\n }\n if (this.pdfViewer.enableAnnotation && this.pdfViewer.enableMeasureAnnotation) {\n this.calibrateElement.classList.remove(this.cssClass);\n }\n if (this.pdfViewer.enableAnnotation && this.pdfViewer.enableStampAnnotations) {\n this.stampElement.classList.remove(this.cssClass);\n }\n if (this.pdfViewer.enableFreeText) {\n this.freeTextElement.classList.remove(this.cssClass);\n }\n if (this.pdfViewer.enableHandwrittenSignature) {\n this.signatureElement.classList.remove(this.cssClass);\n }\n if (this.pdfViewer.enableInkAnnotation) {\n this.inkElement.classList.remove(this.cssClass);\n }\n if (this.pdfViewer.enableCommentPanel) {\n this.annotationCommentPanelElement.classList.remove(this.cssClass);\n }\n };\n BlazorUiAdaptor.prototype.selectItem = function (element) {\n if (element) {\n element.classList.add(\"e-pv-select\");\n }\n };\n BlazorUiAdaptor.prototype.deselectItem = function (element) {\n if (element) {\n element.classList.remove(\"e-pv-select\");\n }\n };\n BlazorUiAdaptor.prototype.showAnnotationToolbar = function (isToolbarVisible) {\n this.pdfViewer.toolbar.annotationToolbarModule.adjustViewer(isToolbarVisible[0]);\n if (isToolbarVisible[0]) {\n this.pdfViewer.toolbar.selectItem(this.editAnnotationButtonElement);\n }\n else {\n this.pdfViewer.toolbar.deSelectItem(this.editAnnotationButtonElement);\n this.pdfViewerBase.focusViewerContainer();\n }\n };\n BlazorUiAdaptor.prototype.closeAnnotationToolbar = function () {\n this.pdfViewer.toolbar.annotationToolbarModule.adjustViewer(false);\n this.pdfViewer.toolbar.deSelectItem(this.editAnnotationButtonElement);\n this.pdfViewerBase.navigationPane.closeCommentPanelContainer();\n };\n /**\n * Reset the toolbar.\n * @returns {void}\n */\n BlazorUiAdaptor.prototype.resetToolbar = function () {\n if (this.pdfViewer.enableToolbar) {\n this.currentPageBoxElement.value = '0';\n this.totalPageElement.textContent = this.pdfViewer.localeObj.getConstant('of') + '0';\n if (!this.isEnabled(this.currentPageBoxElementContainer)) {\n this.currentPageBoxElementContainer.className += this.disableClass;\n }\n if (!this.isEnabled(this.firstPageElement)) {\n this.firstPageElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.previousPageElement)) {\n this.previousPageElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.nextPageElement)) {\n this.nextPageElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.lastPageElement)) {\n this.lastPageElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.zoomInElement)) {\n this.zoomInElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.zommOutElement)) {\n this.zommOutElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.zoomDropDownElement)) {\n this.zoomDropDownElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.selectToolElement)) {\n this.selectToolElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.handToolElement)) {\n this.handToolElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.undoElement)) {\n this.undoElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.redoElement)) {\n this.redoElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.commentElement)) {\n this.commentElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.searchElement)) {\n this.searchElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.submitFormButton)) {\n this.submitFormButton.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationElement)) {\n this.annotationElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.printElement)) {\n this.printElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.downloadElement)) {\n this.downloadElement.className += this.disableClass;\n }\n }\n if (this.pdfViewer.enableAnnotationToolbar) {\n if (!this.isEnabled(this.highlightElement)) {\n this.highlightElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.underlineElement)) {\n this.underlineElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.strikeThroughElement)) {\n this.strikeThroughElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.shapeElement)) {\n this.shapeElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.calibrateElement)) {\n this.calibrateElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.stampElement)) {\n this.stampElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.freeTextElement)) {\n this.freeTextElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.signatureElement)) {\n this.signatureElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.inkElement)) {\n this.inkElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationFontFamilyElement)) {\n this.annotationFontFamilyElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationFontSizeElement)) {\n this.annotationFontSizeElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationTextColorElement)) {\n this.annotationTextColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationTextAlignElement)) {\n this.annotationTextAlignElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationTextPropertiesElement)) {\n this.annotationTextPropertiesElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationColorElement)) {\n this.annotationColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationStrokeColorElement)) {\n this.annotationStrokeColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationThicknessElement)) {\n this.annotationThicknessElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationOpacityElement)) {\n this.annotationOpacityElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationDeleteElement)) {\n this.annotationDeleteElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationCommentPanelElement)) {\n this.annotationCommentPanelElement.className += this.disableClass;\n }\n }\n };\n /**\n * When annotation selection changed.\n * @param {boolean} currentPageNumber - The current page number.\n * @returns {void}\n */\n BlazorUiAdaptor.prototype.EnableDeleteOption = function (isEnable) {\n if (this.annotationDeleteElement !== null) {\n if (isEnable) {\n this.annotationDeleteElement.classList.remove(this.cssClass);\n }\n else {\n if (!this.isEnabled(this.annotationDeleteElement)) {\n this.annotationDeleteElement.className += this.disableClass;\n }\n }\n }\n };\n /**\n * when the page changes.\n * @param {number} currentPageNumber - The current page number.\n * @returns {void}\n */\n BlazorUiAdaptor.prototype.pageChanged = function (currentPageNumber) {\n if (this.pdfViewer.enableNavigation) {\n this.currentPageBoxElement.value = currentPageNumber.toString();\n }\n if (currentPageNumber === this.pdfViewer.pageCount) {\n if (!this.isEnabled(this.nextPageElement)) {\n this.nextPageElement.className += this.disableClass;\n }\n this.previousPageElement.classList.remove(this.cssClass);\n if (!this.isEnabled(this.lastPageElement)) {\n this.lastPageElement.className += this.disableClass;\n }\n this.firstPageElement.classList.remove(this.cssClass);\n }\n if (currentPageNumber < this.pdfViewer.pageCount && currentPageNumber !== 1) {\n this.firstPageElement.classList.remove(this.cssClass);\n this.previousPageElement.classList.remove(this.cssClass);\n this.nextPageElement.classList.remove(this.cssClass);\n this.lastPageElement.classList.remove(this.cssClass);\n }\n if (currentPageNumber === 1) {\n this.nextPageElement.classList.remove(this.cssClass);\n this.lastPageElement.classList.remove(this.cssClass);\n if (!this.isEnabled(this.firstPageElement)) {\n this.firstPageElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.previousPageElement)) {\n this.previousPageElement.className += this.disableClass;\n }\n }\n };\n /**\n * @param {string} item - The current item.\n * @param {boolean} enable - To enable the item or not.\n * @returns {void}\n */\n BlazorUiAdaptor.prototype.updateUndoRedoButton = function (item, enable) {\n if (item === 'undo') {\n if (enable) {\n this.undoElement.classList.remove(this.cssClass);\n }\n else {\n if (!this.isEnabled(this.undoElement)) {\n this.undoElement.className += this.disableClass;\n }\n }\n }\n if (item === 'redo') {\n if (enable) {\n this.redoElement.classList.remove(this.cssClass);\n }\n else {\n if (!this.isEnabled(this.redoElement)) {\n this.redoElement.className += this.disableClass;\n }\n }\n }\n };\n /**\n * @returns {void}\n */\n BlazorUiAdaptor.prototype.disableUndoRedoButton = function () {\n if (!this.isEnabled(this.undoElement)) {\n this.undoElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.redoElement)) {\n this.redoElement.className += this.disableClass;\n }\n };\n /**\n * @returns {void}\n */\n BlazorUiAdaptor.prototype.enableTextMarkupAnnotationPropertiesTools = function (isEnable) {\n if (isEnable) {\n this.annotationColorElement.classList.remove(this.cssClass);\n this.annotationOpacityElement.classList.remove(this.cssClass);\n }\n else {\n if (!this.isEnabled(this.annotationOpacityElement)) {\n this.annotationOpacityElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationColorElement)) {\n this.annotationColorElement.className += this.disableClass;\n }\n }\n if (!this.isEnabled(this.annotationFontColorElement)) {\n this.annotationFontColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationFontFamilyElement)) {\n this.annotationFontFamilyElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationFontSizeElement)) {\n this.annotationFontSizeElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationTextAlignElement)) {\n this.annotationTextAlignElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationTextPropertiesElement)) {\n this.annotationTextPropertiesElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationStrokeColorElement)) {\n this.annotationStrokeColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationThicknessElement)) {\n this.annotationThicknessElement.className += this.disableClass;\n }\n };\n /**\n * @param {boolean} isEnable - To enable the item or not.\n * @param {boolean} isProperitiesChange - To enable the item or not.\n * @returns {void}\n */\n BlazorUiAdaptor.prototype.enableAnnotationPropertiesTool = function (isEnable, isProperitiesChange) {\n if (isProperitiesChange) {\n if (isEnable) {\n this.annotationColorElement.classList.remove(this.cssClass);\n this.annotationStrokeColorElement.classList.remove(this.cssClass);\n this.annotationThicknessElement.classList.remove(this.cssClass);\n this.annotationOpacityElement.classList.remove(this.cssClass);\n if (this.pdfViewer.enableShapeLabel) {\n this.annotationFontColorElement.classList.remove(this.cssClass);\n this.annotationFontFamilyElement.classList.remove(this.cssClass);\n this.annotationFontSizeElement.classList.remove(this.cssClass);\n }\n if (!this.isEnabled(this.annotationTextAlignElement)) {\n this.annotationTextAlignElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationTextPropertiesElement)) {\n this.annotationTextPropertiesElement.className += this.disableClass;\n }\n }\n else {\n if (!this.isEnabled(this.annotationColorElement)) {\n this.annotationColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationStrokeColorElement)) {\n this.annotationStrokeColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationThicknessElement)) {\n this.annotationThicknessElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationOpacityElement)) {\n this.annotationOpacityElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationDeleteElement)) {\n this.annotationDeleteElement.className += this.disableClass;\n }\n }\n }\n };\n /**\n * @param {boolean} isEnable - To enable the item or not.\n * @param {boolean} isProperitiesChange - To enable the item or not.\n * @returns {void}\n */\n BlazorUiAdaptor.prototype.enableFreeTextAnnotationPropertiesTools = function (isEnable, isProperitiesChange) {\n if (isProperitiesChange && isEnable) {\n this.annotationColorElement.classList.remove(this.cssClass);\n this.annotationStrokeColorElement.classList.remove(this.cssClass);\n this.annotationThicknessElement.classList.remove(this.cssClass);\n this.annotationOpacityElement.classList.remove(this.cssClass);\n this.annotationFontColorElement.classList.remove(this.cssClass);\n this.annotationFontFamilyElement.classList.remove(this.cssClass);\n this.annotationFontSizeElement.classList.remove(this.cssClass);\n this.annotationTextAlignElement.classList.remove(this.cssClass);\n this.annotationTextPropertiesElement.classList.remove(this.cssClass);\n this.annotationDeleteElement.classList.remove(this.cssClass);\n this.annotationCommentPanelElement.classList.remove(this.cssClass);\n }\n };\n /**\n * @param {boolean} isEnable - To enable the item or not.\n * @param {boolean} isPropertiesChange - To enable the item or not.\n * @returns {void}\n */\n BlazorUiAdaptor.prototype.enableStampAnnotationPropertiesTools = function (isEnable, isPropertiesChange) {\n if (isEnable) {\n this.annotationOpacityElement.classList.remove(this.cssClass);\n this.annotationDeleteElement.classList.remove(this.cssClass);\n this.annotationCommentPanelElement.classList.remove(this.cssClass);\n }\n else {\n if (!this.isEnabled(this.annotationOpacityElement)) {\n this.annotationOpacityElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationDeleteElement)) {\n this.annotationDeleteElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationCommentPanelElement)) {\n this.annotationCommentPanelElement.className += this.disableClass;\n }\n }\n if (!this.isEnabled(this.annotationColorElement)) {\n this.annotationColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationStrokeColorElement)) {\n this.annotationStrokeColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationThicknessElement)) {\n this.annotationThicknessElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationOpacityElement)) {\n this.annotationOpacityElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationFontColorElement)) {\n this.annotationFontColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationFontFamilyElement)) {\n this.annotationFontFamilyElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationFontSizeElement)) {\n this.annotationFontSizeElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationTextAlignElement)) {\n this.annotationTextAlignElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationTextPropertiesElement)) {\n this.annotationTextPropertiesElement.className += this.disableClass;\n }\n };\n /**\n * @param {boolean} isEnable - To enable the item or not.\n * @param {boolean} isProperitiesChange - To enable the item or not.\n * @returns {void}\n */\n BlazorUiAdaptor.prototype.enableSignaturePropertiesTools = function (isEnable, isProperitiesChange) {\n if (isEnable) {\n this.annotationStrokeColorElement.classList.remove(this.cssClass);\n this.annotationThicknessElement.classList.remove(this.cssClass);\n this.annotationOpacityElement.classList.remove(this.cssClass);\n this.annotationDeleteElement.classList.remove(this.cssClass);\n this.annotationCommentPanelElement.classList.remove(this.cssClass);\n }\n else {\n if (!this.isEnabled(this.annotationStrokeColorElement)) {\n this.annotationStrokeColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationThicknessElement)) {\n this.annotationThicknessElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationOpacityElement)) {\n this.annotationOpacityElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationDeleteElement)) {\n this.annotationDeleteElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationCommentPanelElement)) {\n this.annotationCommentPanelElement.className += this.disableClass;\n }\n }\n if (!this.isEnabled(this.annotationColorElement)) {\n this.annotationColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationFontColorElement)) {\n this.annotationFontColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationFontFamilyElement)) {\n this.annotationFontFamilyElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationFontSizeElement)) {\n this.annotationFontSizeElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationTextAlignElement)) {\n this.annotationTextAlignElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationTextPropertiesElement)) {\n this.annotationTextPropertiesElement.className += this.disableClass;\n }\n };\n /**\n * @returns {void}\n */\n BlazorUiAdaptor.prototype.annotationAdd = function () {\n if (!this.isEnabled(this.annotationColorElement)) {\n this.annotationColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationStrokeColorElement)) {\n this.annotationStrokeColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationThicknessElement)) {\n this.annotationThicknessElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationOpacityElement)) {\n this.annotationOpacityElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationFontColorElement)) {\n this.annotationFontColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationFontFamilyElement)) {\n this.annotationFontFamilyElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationFontSizeElement)) {\n this.annotationFontSizeElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationTextAlignElement)) {\n this.annotationTextAlignElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationTextPropertiesElement)) {\n this.annotationTextPropertiesElement.className += this.disableClass;\n }\n };\n /**\n * @returns {void}\n */\n BlazorUiAdaptor.prototype.annotationUnSelect = function () {\n if (!this.isEnabled(this.annotationColorElement)) {\n this.annotationColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationStrokeColorElement)) {\n this.annotationStrokeColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationThicknessElement)) {\n this.annotationThicknessElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationOpacityElement)) {\n this.annotationOpacityElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationFontColorElement)) {\n this.annotationFontColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationFontFamilyElement)) {\n this.annotationFontFamilyElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationFontSizeElement)) {\n this.annotationFontSizeElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationTextAlignElement)) {\n this.annotationTextAlignElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationTextPropertiesElement)) {\n this.annotationTextPropertiesElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationDeleteElement)) {\n this.annotationDeleteElement.className += this.disableClass;\n }\n };\n /**\n * @param {string} annotationType - The annotationType.\n * @returns {void}\n */\n BlazorUiAdaptor.prototype.annotationSelect = function (annotationType) {\n if (annotationType === 'FreeText') {\n this.annotationColorElement.classList.remove(this.cssClass);\n this.annotationStrokeColorElement.classList.remove(this.cssClass);\n this.annotationThicknessElement.classList.remove(this.cssClass);\n this.annotationOpacityElement.classList.remove(this.cssClass);\n this.annotationFontColorElement.classList.remove(this.cssClass);\n this.annotationFontFamilyElement.classList.remove(this.cssClass);\n this.annotationFontSizeElement.classList.remove(this.cssClass);\n this.annotationTextAlignElement.classList.remove(this.cssClass);\n this.annotationTextPropertiesElement.classList.remove(this.cssClass);\n }\n if (annotationType === 'Shape' || annotationType === 'Measure') {\n this.annotationColorElement.classList.remove(this.cssClass);\n this.annotationStrokeColorElement.classList.remove(this.cssClass);\n this.annotationThicknessElement.classList.remove(this.cssClass);\n this.annotationOpacityElement.classList.remove(this.cssClass);\n if (!this.isEnabled(this.annotationFontColorElement)) {\n this.annotationFontColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationFontFamilyElement)) {\n this.annotationFontFamilyElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationFontSizeElement)) {\n this.annotationFontSizeElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationTextAlignElement)) {\n this.annotationTextAlignElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationTextPropertiesElement)) {\n this.annotationTextPropertiesElement.className += this.disableClass;\n }\n }\n if (annotationType === 'TextMarkup') {\n this.annotationColorElement.classList.remove(this.cssClass);\n if (!this.isEnabled(this.annotationStrokeColorElement)) {\n this.annotationStrokeColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationThicknessElement)) {\n this.annotationThicknessElement.className += this.disableClass;\n }\n this.annotationOpacityElement.classList.remove(this.cssClass);\n if (!this.isEnabled(this.annotationFontColorElement)) {\n this.annotationFontColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationFontFamilyElement)) {\n this.annotationFontFamilyElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationFontSizeElement)) {\n this.annotationFontSizeElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationTextAlignElement)) {\n this.annotationTextAlignElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationTextPropertiesElement)) {\n this.annotationTextPropertiesElement.className += this.disableClass;\n }\n }\n this.annotationDeleteElement.classList.remove(this.cssClass);\n this.annotationCommentPanelElement.classList.remove(this.cssClass);\n };\n /**\n * @param {string} fontFamily - The fontFamily.\n * @returns {void}\n */\n BlazorUiAdaptor.prototype.updateFontFamilyInIcon = function (fontFamily) {\n this.annotationFontFamilyInputElement.value = fontFamily;\n };\n /**\n * @param {number} fontSize - The fontSize.\n * @returns {void}\n */\n BlazorUiAdaptor.prototype.updateFontSizeInIcon = function (fontSize) {\n var fontValue = fontSize.toString() + 'px';\n this.annotationFontSizeInputElement.value = fontValue;\n };\n /**\n * @param {boolean} isEnable - To enable or disable.\n * @returns {void}\n */\n BlazorUiAdaptor.prototype.enableSearchItems = function (isEnable) {\n if (isEnable) {\n this.mobileSearchPreviousOccurenceElement.classList.remove(this.cssClass);\n this.mobileSearchNextOccurenceElement.classList.remove(this.cssClass);\n }\n else {\n if (!this.isEnabled(this.mobileSearchPreviousOccurenceElement)) {\n this.mobileSearchPreviousOccurenceElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.mobileSearchNextOccurenceElement)) {\n this.mobileSearchNextOccurenceElement.className += this.disableClass;\n }\n }\n };\n /**\n * @param {boolean} isTapHidden - To enable or disable.\n * @returns {void}\n */\n BlazorUiAdaptor.prototype.tapOnMobileDevice = function (isTapHidden) {\n if (this.mobileToolbarContainerElement != null) {\n if (isTapHidden) {\n this.mobileToolbarContainerElement.style.display = 'none';\n }\n else {\n this.mobileToolbarContainerElement.style.display = 'block';\n }\n }\n };\n /**\n * @param {HTMLElement} element - The HTMLElement.\n * @returns {boolean} - Returns trur or false.\n */\n BlazorUiAdaptor.prototype.isEnabled = function (element) {\n return element.classList.contains(this.cssClass);\n };\n return BlazorUiAdaptor;\n}());\nexport { BlazorUiAdaptor };\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { createElement, Browser, isNullOrUndefined, isBlazor, Internationalization } from '@syncfusion/ej2-base';\nimport { Dialog } from '@syncfusion/ej2-popups';\nimport { TextLayer, ContextMenu, Signature, PdfFormFieldBase, AccessibilityTags } from '../index';\nimport { NavigationPane } from './navigation-pane';\nimport { NumericTextBox } from '@syncfusion/ej2-inputs';\nimport { AjaxHandler } from '../index';\nimport { Point, Rect, identityMatrix, transformPointByMatrix, contains, rotateMatrix } from '@syncfusion/ej2-drawings';\nimport { SelectTool, MoveTool, ResizeTool, ConnectTool, NodeDrawingTool, PolygonDrawingTool, LineTool, RotateTool, StampTool, InkDrawingTool } from '../drawing/tools';\nimport { Selector } from '../drawing/selector';\nimport { ActiveElements, findActiveElement } from '../drawing/action';\nimport { renderAdornerLayer } from '../drawing/dom-util';\nimport { AnnotationDataFormat } from './types';\nimport { cloneObject } from '../drawing/drawing-util';\nimport { BlazorContextMenu } from './blazor-context-menu';\nimport { createSpinner, showSpinner, hideSpinner } from './spinner';\nimport { BlazorUiAdaptor } from './blazor-ui-adaptor';\n/**\n * The `PdfViewerBase` module is used to handle base methods of PDF viewer.\n *\n * @hidden\n */\nvar PdfViewerBase = /** @class */ (function () {\n /**\n * Initialize the constructor of PDFViewerBase\n *\n * @param { PdfViewer } viewer - Specified PdfViewer class.\n */\n function PdfViewerBase(viewer) {\n var _this = this;\n /**\n * @private\n */\n this.pageSize = [];\n /**\n * @private\n */\n this.pageCount = 0;\n /**\n * @private\n */\n this.isReRenderRequired = true;\n /**\n * @private\n */\n this.currentPageNumber = 0;\n /**\n * @private\n */\n this.activeElements = new ActiveElements();\n /**\n * @private\n */\n this.mouseDownEvent = null;\n /**\n * @private\n */\n this.isDocumentLoaded = false;\n /**\n * @private\n */\n this.renderedPagesList = [];\n /**\n * @private\n */\n this.pageGap = 8;\n /**\n * @private\n */\n this.signatureAdded = false;\n /**\n * @private\n */\n this.isFreeTextSelected = false;\n this.pageLeft = 5;\n this.sessionLimit = 1000;\n this.pageStopValue = 300;\n /**\n * @private\n */\n this.toolbarHeight = 56;\n this.pageLimit = 0;\n this.previousPage = 0;\n this.isViewerMouseDown = false;\n this.isViewerMouseWheel = false;\n this.scrollPosition = 0;\n this.sessionStorage = [];\n /**\n * @private\n */\n this.isLoadedFormFieldAdded = false;\n this.pointerCount = 0;\n this.pointersForTouch = [];\n /**\n * @private\n */\n this.isPasswordAvailable = false;\n /**\n * @private\n */\n this.passwordData = '';\n /**\n * @private\n */\n this.reRenderedCount = 0;\n this.mouseX = 0;\n this.mouseY = 0;\n /**\n * @private\n */\n this.mouseLeft = 0;\n /**\n * @private\n */\n this.mouseTop = 0;\n this.touchClientX = 0;\n this.touchClientY = 0;\n this.previousTime = 0;\n this.currentTime = 0;\n this.isTouchScrolled = false;\n this.isLongTouchPropagated = false;\n // eslint-disable-next-line\n this.longTouchTimer = null;\n this.isViewerContainerDoubleClick = false;\n // eslint-disable-next-line\n this.dblClickTimer = null;\n /**\n * @private\n */\n this.pinchZoomStorage = [];\n /**\n * @private\n */\n this.isTextSelectionDisabled = false;\n /**\n * @private\n */\n this.isPanMode = false;\n this.dragX = 0;\n this.dragY = 0;\n this.isScrollbarMouseDown = false;\n this.scrollX = 0;\n this.scrollY = 0;\n this.ispageMoved = false;\n this.isThumb = false;\n this.isTapHidden = false;\n // eslint-disable-next-line\n this.singleTapTimer = null;\n this.tapCount = 0;\n this.inputTapCount = 0;\n /**\n * @private\n */\n this.isInitialLoaded = false;\n this.annotationPageList = [];\n this.importPageList = [];\n /**\n * @private\n */\n this.isImportAction = false;\n this.isImportedAnnotation = false;\n /**\n * @private\n */\n this.isAnnotationCollectionRemoved = false;\n /**\n * @private\n */\n this.tool = null;\n // eslint-disable-next-line\n this.action = 'Select';\n /**\n * @private\n */\n this.eventArgs = null;\n /**\n * @private\n */\n this.inAction = false;\n /**\n * @private\n */\n this.isMouseDown = false;\n /**\n * @private\n */\n this.isStampMouseDown = false;\n /**\n * @private\n */\n this.stampAdded = false;\n /**\n * @private\n */\n this.customStampCount = 0;\n /**\n * @private\n */\n this.isDynamicStamp = false;\n /**\n * @private\n */\n this.isMixedSizeDocument = false;\n /**\n * @private\n */\n this.highestWidth = 0;\n /**\n * @private\n */\n this.highestHeight = 0;\n /**\n * @private\n */\n this.customStampCollection = [];\n /**\n * @private\n */\n this.isAlreadyAdded = false;\n /**\n * @private\n */\n this.isWebkitMobile = false;\n /**\n * @private\n */\n this.isFreeTextContextMenu = false;\n /**\n * @private\n */\n this.isSelection = false;\n /**\n * @private\n */\n this.isAddAnnotation = false;\n /**\n * @private\n */\n // eslint-disable-next-line\n this.annotationComments = null;\n /**\n * @private\n */\n this.isToolbarSignClicked = false;\n /**\n * @private\n */\n this.signatureCount = 0;\n /**\n * @private\n */\n this.isSignatureAdded = false;\n /**\n * @private\n */\n this.isNewSignatureAdded = false;\n /**\n * @private\n */\n this.isInitialPageMode = false;\n /**\n * @private\n */\n // eslint-disable-next-line\n this.documentAnnotationCollections = null;\n /**\n * @private\n */\n this.annotationRenderredList = [];\n /**\n * @private\n */\n // eslint-disable-next-line\n this.annotationStorage = {};\n /**\n * @private\n */\n // eslint-disable-next-line\n this.formFieldStorage = {};\n /**\n * @private\n */\n this.isStorageExceed = false;\n /**\n * @private\n */\n this.isFormStorageExceed = false;\n /**\n * @private\n */\n this.isNewStamp = false;\n /**\n * @private\n */\n // eslint-disable-next-line\n this.downloadCollections = {};\n /**\n * @private\n */\n this.isAnnotationAdded = false;\n /**\n * @private\n */\n // eslint-disable-next-line\n this.annotationEvent = null;\n /**\n * @private\n */\n this.isAnnotationDrawn = false;\n /**\n * @private\n */\n this.isAnnotationSelect = false;\n /**\n * @private\n */\n this.isAnnotationMouseDown = false;\n /**\n * @private\n */\n this.isAnnotationMouseMove = false;\n /**\n * @private\n */\n this.validateForm = false;\n /**\n * @private\n */\n this.isMinimumZoom = false;\n /**\n * @private\n */\n this.documentLoaded = false;\n this.tileRenderCount = 0;\n this.tileRequestCount = 0;\n /**\n * @private\n */\n this.isTileImageRendered = false;\n this.isDataExits = false;\n this.requestLists = [];\n this.tilerequestLists = [];\n this.textrequestLists = [];\n this.renderThumbnailImages = false;\n /**\n * @private\n */\n this.pageRenderCount = 2;\n /**\n * @private\n */\n this.isInkAdded = false;\n /**\n * @private\n */\n this.inkCount = 0;\n /**\n * @private\n */\n this.isAddedSignClicked = false;\n /**\n * @private\n */\n this.imageCount = 0;\n /**\n * @private\n */\n this.isMousedOver = false;\n /**\n * @private\n */\n this.isFormFieldSelect = false;\n /**\n * @private\n */\n this.isFormFieldMouseDown = false;\n /**\n * @private\n */\n this.isFormFieldMouseMove = false;\n /**\n * @private\n */\n this.isFormFieldMousedOver = false;\n /**\n * @private\n */\n this.isPassword = false;\n /**\n * @private\n */\n // eslint-disable-next-line\n this.digitalSignaturePages = [];\n this.isDrawnCompletely = false;\n /**\n * @private\n */\n this.isAddComment = false;\n /**\n * @private\n */\n this.drawSignatureWithTool = false;\n /**\n * @private\n */\n // eslint-disable-next-line\n this.formFieldCollection = [];\n /**\n * @private\n */\n // eslint-disable-next-line\n this.nonFillableFields = {};\n /**\n * @private\n */\n this.isInitialField = false;\n /**\n * @private\n */\n this.isTouchDesignerMode = false;\n /**\n * @private\n */\n this.isPrint = false;\n /**\n * @private\n */\n this.isPDFViewerJson = false;\n /**\n * @private\n */\n this.isJsonImported = false;\n /**\n * @private\n */\n this.isJsonExported = false;\n /**\n * @private\n */\n this.isPageRotated = false;\n this.downloadFileName = '';\n /**\n * @private\n */\n // eslint-disable-next-line\n this.isFocusField = false;\n /**\n * @private\n */\n // eslint-disable-next-line\n this.isTouchPad = false;\n /**\n * @private\n */\n // eslint-disable-next-line\n this.isMacGestureActive = false;\n /**\n * @private\n */\n // eslint-disable-next-line\n this.macGestureStartScale = 0;\n /**\n * @private\n */\n // eslint-disable-next-line\n this.zoomInterval = 5;\n /**\n * @private\n */\n // eslint-disable-next-line\n this.isTaggedPdf = false;\n this.accessibilityTagsHandler = null;\n this.accessibilityTagsCollection = [];\n this.pageRequestListForAccessibilityTags = [];\n this.enableAccessibilityMultiPageRequest = true;\n /**\n * @private\n */\n // eslint-disable-next-line\n this.focusField = [];\n /**\n * EJ2CORE-813 - This flag is represent current device is 'iPad' or 'iPhone' or'iPod' device.\n * @private\n */\n // eslint-disable-next-line\n this.isDeviceiOS = (['iPad Simulator', 'iPhone Simulator', 'iPod Simulator', 'iPad', 'iPhone', 'iPod'].includes(navigator.platform) || (navigator.userAgent.includes(\"Mac\") && \"ontouchend\" in document));\n /**\n * @private\n */\n // eslint-disable-next-line\n this.isMacSafari = navigator.userAgent.indexOf(\"Safari\") > -1 && navigator.userAgent.indexOf(\"Chrome\") === -1 && !this.isDeviceiOS;\n /**\n * @returns {void}\n */\n this.clearSessionStorage = function () {\n var documentId = '';\n if (Browser.isIE || Browser.info.name === 'edge') {\n documentId = decodeURI(window.sessionStorage.getItem('hashId'));\n }\n else {\n documentId = window.sessionStorage.getItem('hashId');\n }\n var documentLiveCount = window.sessionStorage.getItem('documentLiveCount');\n if (documentId !== null) {\n // eslint-disable-next-line max-len\n var jsonObject = { hashId: documentId, documentLiveCount: documentLiveCount, action: 'Unload', elementId: _this.pdfViewer.element.id };\n var actionName = window.sessionStorage.getItem('unload');\n var serviceUrl = window.sessionStorage.getItem('serviceURL');\n if (serviceUrl && serviceUrl !== 'undefined') {\n // eslint-disable-next-line\n var browserSupportsKeepalive = 'keepalive' in new Request('');\n if (browserSupportsKeepalive) {\n // eslint-disable-next-line\n var headerValue = _this.setUnloadRequestHeaders();\n var credentialsData = _this.pdfViewer.ajaxRequestSettings.withCredentials ? 'include' : 'omit';\n fetch(serviceUrl + '/' + actionName, {\n method: 'POST',\n credentials: credentialsData,\n headers: headerValue,\n body: JSON.stringify(jsonObject)\n });\n }\n }\n else if (isBlazor()) {\n _this.clearCache(actionName, jsonObject, _this);\n }\n }\n window.sessionStorage.removeItem(_this.documentId + '_annotations_textMarkup');\n window.sessionStorage.removeItem(_this.documentId + '_annotations_shape');\n window.sessionStorage.removeItem(_this.documentId + '_annotations_shape_measure');\n window.sessionStorage.removeItem(_this.documentId + '_annotations_stamp');\n window.sessionStorage.removeItem(_this.documentId + '_annotations_sticky');\n window.sessionStorage.removeItem(_this.documentId + '_annotations_freetext');\n window.sessionStorage.removeItem(_this.documentId + '_formfields');\n window.sessionStorage.removeItem(_this.documentId + '_formDesigner');\n window.sessionStorage.removeItem(_this.documentId + '_annotations_sign');\n window.sessionStorage.removeItem(_this.documentId + '_pagedata');\n window.sessionStorage.removeItem('hashId');\n window.sessionStorage.removeItem('documentLiveCount');\n window.sessionStorage.removeItem('currentDocument');\n window.sessionStorage.removeItem('serviceURL');\n window.sessionStorage.removeItem('unload');\n };\n /**\n * @private\n * @param {MouseEvent} event - Mouse event.\n * @returns {void}\n */\n this.onWindowResize = function (event) {\n var proxy = null;\n proxy = _this;\n if (_this.pdfViewer.enableRtl) {\n // eslint-disable-next-line max-len\n proxy.viewerContainer.style.right = (proxy.navigationPane.sideBarToolbar ? proxy.navigationPane.getViewerContainerLeft() : 0) + 'px';\n // eslint-disable-next-line max-len\n proxy.viewerContainer.style.left = (proxy.navigationPane.commentPanelContainer ? proxy.navigationPane.commentPanelContainer.offsetWidth : 0) + 'px';\n }\n else {\n // eslint-disable-next-line max-len\n proxy.viewerContainer.style.left = (proxy.navigationPane.sideBarToolbar ? proxy.navigationPane.getViewerContainerLeft() : 0) + 'px';\n // eslint-disable-next-line max-len\n proxy.viewerContainer.style.right = (proxy.navigationPane.commentPanelContainer ? proxy.navigationPane.commentPanelContainer.offsetWidth : 0) + 'px';\n }\n // eslint-disable-next-line\n var viewerElementWidth = (proxy.pdfViewer.element.clientWidth > 0 ? proxy.pdfViewer.element.clientWidth : proxy.pdfViewer.element.style.width);\n // eslint-disable-next-line\n var viewerWidth = (viewerElementWidth - (proxy.navigationPane.sideBarToolbar ? proxy.navigationPane.getViewerContainerLeft() : 0) - (proxy.navigationPane.commentPanelContainer ? proxy.navigationPane.getViewerContainerRight() : 0));\n proxy.viewerContainer.style.width = viewerWidth + 'px';\n if (proxy.pdfViewer.toolbarModule) {\n // eslint-disable-next-line\n var toolbarContainer = isBlazor() ? proxy.pdfViewer.element.querySelector('.e-pv-toolbar') : proxy.getElement('_toolbarContainer');\n var toolbarHeight = 0;\n var formDesignerToolbarHeight = 0;\n if (toolbarContainer) {\n toolbarHeight = toolbarContainer.getBoundingClientRect().height;\n }\n if (proxy.isAnnotationToolbarHidden() || (Browser.isDevice && !_this.pdfViewer.enableDesktopMode)) {\n if (toolbarHeight === 0) {\n if (_this.navigationPane.isNavigationToolbarVisible) {\n // eslint-disable-next-line\n var navigationToolbar = proxy.getElement('_navigationToolbar');\n toolbarHeight = navigationToolbar.getBoundingClientRect().height;\n }\n }\n if (!proxy.isFormDesignerToolbarHidded()) {\n var formDesignerToolbar = proxy.getElement('_formdesigner_toolbar');\n formDesignerToolbarHeight = formDesignerToolbar ? formDesignerToolbar.getBoundingClientRect().height : 0;\n }\n // eslint-disable-next-line max-len\n proxy.viewerContainer.style.height = proxy.updatePageHeight(proxy.pdfViewer.element.getBoundingClientRect().height, toolbarHeight + formDesignerToolbarHeight);\n }\n else {\n // eslint-disable-next-line\n var annotationToolbarContainer = isBlazor() ? proxy.pdfViewer.element.querySelector('.e-pv-annotation-toolbar') : proxy.getElement('_annotation_toolbar');\n var annotationToolbarHeight = 0;\n if (annotationToolbarContainer) {\n annotationToolbarHeight = annotationToolbarContainer.getBoundingClientRect().height;\n }\n // eslint-disable-next-line max-len\n proxy.viewerContainer.style.height = proxy.updatePageHeight(proxy.pdfViewer.element.getBoundingClientRect().height, toolbarHeight + annotationToolbarHeight);\n }\n }\n else {\n proxy.viewerContainer.style.height = proxy.updatePageHeight(proxy.pdfViewer.element.getBoundingClientRect().height, 0);\n }\n if (proxy.pdfViewer.bookmarkViewModule && (Browser.isDevice && !_this.pdfViewer.enableDesktopMode)) {\n var bookmarkContainer = proxy.getElement('_bookmarks_container');\n if (bookmarkContainer) {\n bookmarkContainer.style.height = proxy.updatePageHeight(proxy.pdfViewer.element.getBoundingClientRect().height, 0);\n }\n }\n if (proxy.viewerContainer.style.height === '0px') {\n if (proxy.pdfViewer.height.toString() === 'auto') {\n proxy.pdfViewer.height = 500;\n proxy.viewerContainer.style.height = proxy.pdfViewer.height + 'px';\n }\n else {\n proxy.viewerContainer.style.height = proxy.pdfViewer.element.style.height;\n }\n }\n if (proxy.viewerContainer.style.width === '0px') {\n if (proxy.pdfViewer.width.toString() === 'auto') {\n proxy.pdfViewer.width = 500;\n proxy.viewerContainer.style.width = proxy.pdfViewer.width + 'px';\n }\n else {\n proxy.viewerContainer.style.width = proxy.pdfViewer.element.style.width;\n }\n }\n proxy.pageContainer.style.width = proxy.viewerContainer.clientWidth + 'px';\n if (proxy.viewerContainer.clientWidth === 0) {\n proxy.pageContainer.style.width = proxy.pdfViewer.element.style.width;\n }\n if (!isBlazor()) {\n if (proxy.pdfViewer.toolbarModule) {\n // eslint-disable-next-line max-len\n proxy.pdfViewer.toolbarModule.onToolbarResize((proxy.navigationPane.sideBarToolbar ? proxy.navigationPane.getViewerMainContainerWidth() : proxy.pdfViewer.element.clientWidth));\n }\n }\n if (_this.pdfViewer.enableToolbar && _this.pdfViewer.thumbnailViewModule) {\n proxy.pdfViewer.thumbnailViewModule.gotoThumbnailImage(proxy.currentPageNumber - 1);\n }\n if (proxy.pdfViewer.textSearchModule && (!Browser.isDevice || _this.pdfViewer.enableDesktopMode)) {\n proxy.pdfViewer.textSearchModule.textSearchBoxOnResize();\n }\n if (viewerWidth !== 0) {\n if (!proxy.navigationPane.isBookmarkListOpen) {\n proxy.updateZoomValue();\n }\n }\n if (Browser.isDevice && !_this.pdfViewer.enableDesktopMode) {\n proxy.mobileScrollerContainer.style.left = (viewerWidth - parseFloat(proxy.mobileScrollerContainer.style.width)) + 'px';\n proxy.mobilePageNoContainer.style.left = (viewerWidth / 2) - (parseFloat(proxy.mobilePageNoContainer.style.width) / 2) + 'px';\n proxy.mobilePageNoContainer.style.top = (proxy.pdfViewer.element.clientHeight / 2) + 'px';\n proxy.updateMobileScrollerPosition();\n }\n else {\n proxy.navigationPane.setResizeIconTop();\n proxy.navigationPane.setCommentPanelResizeIconTop();\n if (event && event.type === 'resize') {\n proxy.signatureModule.updateCanvasSize();\n }\n }\n if (proxy.navigationPane.sideBarToolbar) {\n proxy.navigationPane.sideBarToolbar.style.height = proxy.viewerContainer.style.height;\n }\n };\n /**\n * @param {MouseEvent} event - The MouseEvent.\n * @returns {void}\n */\n this.viewerContainerOnMousedown = function (event) {\n _this.isFreeTextContextMenu = false;\n var isUpdate = false;\n _this.isSelection = true;\n var target = event.target;\n if (event.button === 0 && !_this.getPopupNoteVisibleStatus() && !_this.isClickedOnScrollBar(event, false)) {\n _this.isViewerMouseDown = true;\n // eslint-disable-next-line\n if (event.detail === 1 && target.className !== 'e-pdfviewer-formFields' && target.className !== 'free-text-input') {\n isUpdate = true;\n _this.focusViewerContainer(true);\n }\n _this.scrollPosition = _this.viewerContainer.scrollTop / _this.getZoomFactor();\n _this.mouseX = event.clientX;\n _this.mouseY = event.clientY;\n _this.mouseLeft = event.clientX;\n _this.mouseTop = event.clientY;\n // eslint-disable-next-line\n var isIE = !!document.documentMode;\n if (_this.pdfViewer.textSelectionModule && !_this.isClickedOnScrollBar(event, true) && !_this.isTextSelectionDisabled) {\n if (!isIE && target.className !== 'e-pdfviewer-formFields' && target.className !== 'e-pdfviewer-ListBox' && target.className !== 'e-pv-formfield-dropdown'\n && target.className !== 'e-pv-formfield-listbox') {\n event.preventDefault();\n }\n if (target.className !== 'e-pv-droplet') {\n _this.pdfViewer.textSelectionModule.clearTextSelection();\n }\n }\n }\n if (_this.isClickedOnScrollBar(event, false)) {\n _this.isViewerMouseDown = true;\n }\n if (_this.isPanMode) {\n _this.dragX = event.pageX;\n _this.dragY = event.pageY;\n // eslint-disable-next-line max-len\n if (_this.viewerContainer.contains(event.target) && (event.target !== _this.viewerContainer) && (event.target !== _this.pageContainer) && _this.isPanMode) {\n _this.viewerContainer.style.cursor = 'grabbing';\n }\n }\n if (_this.isShapeBasedAnnotationsEnabled() && (_this.isAnnotationDrawn || !(target.className === 'e-pv-page-container' || (target.className === 'foreign-object' && isNaN(_this.activeElements.activePageID))))) {\n _this.diagramMouseDown(event);\n }\n if (_this.pdfViewer.annotation && _this.pdfViewer.annotation.stickyNotesAnnotationModule.accordionContainer) {\n if (!isUpdate) {\n _this.pdfViewer.annotationModule.stickyNotesAnnotationModule.isEditableElement = false;\n _this.updateCommentPanel();\n isUpdate = true;\n }\n }\n if (isBlazor()) {\n _this.mouseDownHandler(event);\n }\n };\n /**\n * @param {MouseEvent} event - The MouseEvent.\n * @returns {void}\n */\n this.viewerContainerOnMouseup = function (event) {\n if (!_this.getPopupNoteVisibleStatus()) {\n if (_this.isViewerMouseDown) {\n if (_this.scrollHoldTimer) {\n clearTimeout(_this.scrollHoldTimer);\n _this.scrollHoldTimer = null;\n }\n if ((_this.scrollPosition * _this.getZoomFactor()) !== _this.viewerContainer.scrollTop) {\n _this.pageViewScrollChanged(_this.currentPageNumber);\n }\n }\n var isSignatureFieldReadOnly = false;\n if (event.target) {\n if (event.target.className == 'e-pv-show-designer-name' && event.target.id.split('_', 1) != '') {\n isSignatureFieldReadOnly = document.getElementById(event.target.id.split('_', 1)).disabled;\n }\n if (event.target.className == 'foreign-object' && event.target.children[0]) {\n isSignatureFieldReadOnly = event.target.children[0].disabled;\n }\n }\n if (isSignatureFieldReadOnly && _this.pdfViewer.annotation) {\n _this.pdfViewer.annotation.clearSelection();\n }\n if (_this.isShapeBasedAnnotationsEnabled() && !isSignatureFieldReadOnly && (_this.isAnnotationDrawn || _this.action !== \"DrawTool\")) {\n _this.diagramMouseUp(event);\n if (_this.pdfViewer.annotation) {\n _this.pdfViewer.annotation.onAnnotationMouseUp();\n }\n }\n if (_this.pdfViewer.selectedItems.formFields.length > 0) {\n // eslint-disable-next-line max-len\n if (!isNullOrUndefined(_this.pdfViewer.toolbar) && !isNullOrUndefined(_this.pdfViewer.toolbar.formDesignerToolbarModule) && !Browser.isDevice) {\n _this.pdfViewer.toolbar.formDesignerToolbarModule.showHideDeleteIcon(true);\n }\n }\n else {\n // eslint-disable-next-line max-len\n if (!isNullOrUndefined(_this.pdfViewer.toolbar) && !isNullOrUndefined(_this.pdfViewer.toolbar.formDesignerToolbarModule) && !Browser.isDevice) {\n _this.pdfViewer.toolbar.formDesignerToolbarModule.showHideDeleteIcon(false);\n }\n }\n _this.isSelection = false;\n // eslint-disable-next-line max-len\n var commentElement = document.getElementById(_this.pdfViewer.element.id + '_commantPanel');\n if (commentElement && commentElement.style.display === 'block') {\n if (_this.pdfViewer.selectedItems) {\n if (_this.pdfViewer.selectedItems.annotations.length !== 0) {\n // eslint-disable-next-line\n var accordionExpand = document.getElementById(_this.pdfViewer.element.id + '_accordionContainer' + _this.pdfViewer.currentPageNumber);\n if (accordionExpand) {\n accordionExpand.ej2_instances[0].expandItem(true);\n }\n // eslint-disable-next-line\n var commentsDiv = document.getElementById(_this.pdfViewer.selectedItems.annotations[0].annotName);\n if (commentsDiv) {\n if (!commentsDiv.classList.contains('e-pv-comments-border')) {\n commentsDiv.firstChild.click();\n }\n }\n }\n }\n }\n if (event.button === 0 && !_this.isClickedOnScrollBar(event, false)) {\n // 0 is for left button.\n var eventTarget_1 = event.target;\n var offsetX = event.clientX;\n var offsetY = event.clientY;\n var zoomFactor = _this.getZoomFactor();\n var pageIndex = _this.currentPageNumber;\n if (eventTarget_1) {\n // eslint-disable-next-line\n var pageString = eventTarget_1.id.split('_text_')[1] || eventTarget_1.id.split('_textLayer_')[1] || eventTarget_1.id.split('_annotationCanvas_')[1] || eventTarget_1.id.split('_pageDiv_')[1] || eventTarget_1.id.split('_freeText_')[1] || eventTarget_1.id.split('_')[1];\n // eslint-disable-next-line\n pageIndex = parseInt(pageString);\n if (isNaN(pageIndex) && _this.pdfViewer.formFieldCollection) {\n var formFieldsTargetId = _this.pdfViewer.formFieldCollection.filter(function (targetFormField) { return (targetFormField.id == eventTarget_1.id) || (targetFormField.id == eventTarget_1.id.split('_')[0]); });\n if (formFieldsTargetId.length > 0) {\n pageIndex = formFieldsTargetId[0].pageIndex;\n }\n }\n }\n var pageDiv = _this.getElement('_pageDiv_' + pageIndex);\n if (pageDiv) {\n var pageCurrentRect = pageDiv.getBoundingClientRect();\n offsetX = (event.clientX - pageCurrentRect.left) / zoomFactor;\n offsetY = (event.clientY - pageCurrentRect.top) / zoomFactor;\n }\n // eslint-disable-next-line max-len\n if (eventTarget_1 && eventTarget_1.classList && !eventTarget_1.classList.contains('e-pv-hyperlink') && !eventTarget_1.classList.contains('e-pv-page-container')) {\n // eslint-disable-next-line\n _this.pdfViewer.firePageClick(offsetX, offsetY, pageIndex + 1);\n if (_this.pdfViewer.formFieldsModule && !_this.pdfViewer.formDesignerModule) {\n _this.pdfViewer.formFieldsModule.removeFocus();\n }\n }\n if (_this.isTextMarkupAnnotationModule() && !_this.isToolbarInkClicked) {\n _this.pdfViewer.annotationModule.textMarkupAnnotationModule.onTextMarkupAnnotationMouseUp(event);\n }\n if (_this.pdfViewer.formDesignerModule && !_this.pdfViewer.annotationModule) {\n _this.pdfViewer.formDesignerModule.updateCanvas(pageIndex);\n }\n // eslint-disable-next-line max-len\n if (_this.viewerContainer.contains(event.target) && (event.target !== _this.viewerContainer) && (event.target !== _this.pageContainer) && _this.isPanMode) {\n _this.viewerContainer.style.cursor = 'move';\n _this.viewerContainer.style.cursor = '-webkit-grab';\n _this.viewerContainer.style.cursor = '-moz-grab';\n _this.viewerContainer.style.cursor = 'grab';\n }\n }\n _this.isViewerMouseDown = false;\n }\n };\n /**\n * @param {any} event - The Wheel event.\n * @returns {void}\n */\n this.detectTouchPad = function (event) {\n // eslint-disable-next-line max-len\n _this.isTouchPad = event.wheelDeltaY ? (event.wheelDeltaY === (event.deltaY * -3) ? true : Math.abs(event.deltaY) < 60) : (event.deltaMode === 0);\n };\n /**\n * @param {any} event - The Wheel event.\n * @returns {void}\n */\n this.handleMacGestureStart = function (event) {\n event.preventDefault();\n event.stopPropagation();\n _this.macGestureStartScale = _this.pdfViewer.magnification.zoomFactor;\n };\n /**\n * @param {any} event - The Wheel event.\n * @returns {void}\n */\n this.handleMacGestureChange = function (event) {\n event.preventDefault();\n event.stopPropagation();\n var macX = event.clientX;\n var macY = event.clientY;\n var scale = Number((_this.macGestureStartScale * event.scale).toFixed(2));\n if (!_this.isMacGestureActive) {\n _this.isMacGestureActive = true;\n _this.pdfViewer.magnification.initiateMouseZoom(macX, macY, scale * 100);\n setTimeout(function () {\n _this.isMacGestureActive = false;\n }, 50);\n }\n };\n /**\n * @param {any} event - The Wheel event.\n * @returns {void}\n */\n this.handleMacGestureEnd = function (event) {\n event.preventDefault();\n event.stopPropagation();\n };\n /**\n * @param {WheelEvent} event - The MouseEvent.\n * @returns {void}\n */\n this.viewerContainerOnMouseWheel = function (event) {\n _this.isViewerMouseWheel = true;\n if (_this.getRerenderCanvasCreated()) {\n event.preventDefault();\n }\n if (event.ctrlKey) {\n var zoomDifference = 25;\n if (_this.pdfViewer.magnificationModule ? _this.pdfViewer.magnification.zoomFactor : _this.pdfViewer.zoomValue < 1) {\n zoomDifference = 10;\n }\n if (_this.pdfViewer.magnificationModule ? _this.pdfViewer.magnification.zoomFactor : _this.pdfViewer.zoomValue >= 2) {\n zoomDifference = 50;\n }\n if (_this.isTouchPad && !_this.isMacSafari) {\n zoomDifference = zoomDifference / _this.zoomInterval;\n }\n // eslint-disable-next-line\n if (_this.pdfViewer.magnificationModule) {\n if (event.wheelDelta > 0) {\n _this.pdfViewer.magnification.initiateMouseZoom(event.x, event.y, (_this.pdfViewer.magnification.zoomFactor * 100) + zoomDifference);\n }\n else {\n _this.pdfViewer.magnification.initiateMouseZoom(event.x, event.y, (_this.pdfViewer.magnification.zoomFactor * 100) - zoomDifference);\n }\n }\n _this.isTouchPad = false;\n }\n if (_this.pdfViewer.magnificationModule) {\n _this.pdfViewer.magnificationModule.pageRerenderOnMouseWheel();\n if (event.ctrlKey) {\n event.preventDefault();\n }\n _this.pdfViewer.magnificationModule.fitPageScrollMouseWheel(event);\n }\n if (_this.pdfViewer.textSelectionModule && !_this.isTextSelectionDisabled) {\n if (_this.isViewerMouseDown) {\n if (!event.target.classList.contains('e-pv-text')) {\n _this.pdfViewer.textSelectionModule.textSelectionOnMouseWheel(_this.currentPageNumber - 1);\n }\n }\n }\n };\n /**\n * @param {KeyboardEvent} event - The KeyboardEvent.\n * @returns {void}\n */\n this.onWindowKeyDown = function (event) {\n var isMac = navigator.platform.match(/(Mac|iPhone|iPod|iPad)/i) ? true : false;\n var isCommandKey = isMac ? event.metaKey : false;\n if ((_this.isFreeTextAnnotationModule() && _this.pdfViewer.annotationModule\n && (_this.pdfViewer.annotationModule.freeTextAnnotationModule.isInuptBoxInFocus === true\n || _this.pdfViewer.annotationModule.inputElementModule.isInFocus === true))) {\n return;\n }\n if (!event.ctrlKey || !isCommandKey) {\n switch (event.keyCode) {\n case 46:\n var activeElement = document.activeElement;\n if (activeElement.tagName !== 'INPUT' && activeElement.tagName !== 'TEXTAREA' && !activeElement.isContentEditable) {\n _this.DeleteKeyPressed(event);\n }\n break;\n case 27:\n if (_this.pdfViewer.toolbar) {\n _this.pdfViewer.toolbar.addInkAnnotation();\n _this.pdfViewer.toolbar.deSelectCommentAnnotation();\n _this.pdfViewer.toolbar.updateStampItems();\n if (_this.pdfViewer.toolbar.annotationToolbarModule) {\n if (isBlazor()) {\n _this.pdfViewer.toolbar.annotationToolbarModule.deselectAllItemsInBlazor();\n }\n else {\n _this.pdfViewer.toolbar.annotationToolbarModule.deselectAllItems();\n }\n }\n if (_this.pdfViewer.isFormDesignerToolbarVisible && document.getElementById('FormField_helper_html_element')) {\n var formFieldElement = document.getElementById('FormField_helper_html_element');\n if (formFieldElement) {\n formFieldElement.remove();\n }\n }\n _this.pdfViewer.tool = '';\n _this.focusViewerContainer();\n }\n break;\n case 13:\n if (_this.pdfViewer.formDesignerModule) {\n if ((event.type === 'keydown' && event.keyCode === 13)) {\n if (event.target && (event.target.id || event.target.tabIndex) && _this.pdfViewer.formFieldCollections) {\n var fieldId = void 0;\n var currentTarget = event.target;\n if ((event.target.tabIndex && !event.target.id)) {\n currentTarget = event.target.parentElement;\n fieldId = currentTarget.id.split(\"_content_html_element\")[0];\n }\n else {\n currentTarget = event.target;\n fieldId = currentTarget.id.split(\"_\")[0];\n }\n for (var i = 0; i < _this.pdfViewer.formFieldCollections.length; i++) {\n var formfield = _this.pdfViewer.formFieldCollections[parseInt(i.toString(), 10)];\n if (fieldId === formfield.id && (formfield.type === 'SignatureField' || formfield.type === 'InitialField')) {\n _this.pdfViewer.fireFormFieldClickEvent('formFieldClicked', _this.pdfViewer.formFieldCollections[parseInt(i.toString(), 10)]);\n event.preventDefault();\n }\n }\n }\n }\n }\n break;\n case 32:\n if (_this.pdfViewer.formDesignerModule) {\n if ((event.type === 'keydown' && event.keyCode === 32)) {\n if (event.target && event.target.id && _this.pdfViewer.formFields) {\n for (var i = 0; i < _this.pdfViewer.formFields.length; i++) {\n var formField = _this.pdfViewer.formFields[parseInt(i.toString(), 10)];\n if (event.target.id.split(\"_\")[0] === formField.id && (formField.formFieldAnnotationType === \"Checkbox\")) {\n _this.pdfViewer.formDesignerModule.setCheckBoxState(event);\n event.preventDefault();\n break;\n }\n }\n }\n }\n }\n break;\n case 9:\n if (event.target && (event.target.id || event.target.tabIndex) && _this.pdfViewer.formFieldCollections) {\n {\n if (event.target.className === 'e-pv-formfield-input' || event.target.id === _this.pdfViewer.element.id + '_viewerContainer') {\n var nextField = void 0;\n var fieldIndex = void 0;\n var currentTarget_1 = event.target;\n var id_1;\n if ((event.target.tabIndex && !event.target.id)) {\n currentTarget_1 = event.target.parentElement;\n id_1 = currentTarget_1.id.split(\"_content_html_element\")[0];\n }\n else {\n currentTarget_1 = event.target;\n id_1 = currentTarget_1.id.split(\"_input\")[0];\n }\n if (_this.pdfViewer.formDesignerModule) {\n if ((event.shiftKey && event.key === \"Tab\")) {\n fieldIndex = _this.pdfViewer.formFieldCollections.findIndex(function (field) { return field.id === id_1; });\n nextField = fieldIndex > 0 ? _this.pdfViewer.formFieldCollections[fieldIndex - 1] : _this.pdfViewer.formFieldCollections[_this.pdfViewer.formFieldCollections.length - 1];\n }\n else {\n fieldIndex = _this.pdfViewer.formFieldCollections.findIndex(function (field) { return field.id === id_1; });\n nextField = fieldIndex + 1 < _this.pdfViewer.formFieldCollections.length ? _this.pdfViewer.formFieldCollections[fieldIndex + 1] : _this.pdfViewer.formFieldCollections[0];\n }\n _this.pdfViewer.focusFormField(nextField);\n event.preventDefault();\n }\n if (!_this.pdfViewer.formDesigner) {\n if (!(currentTarget_1.className === 'e-pdfviewer-formFields')) {\n if ((event.shiftKey && event.key === \"Tab\")) {\n fieldIndex = _this.pdfViewer.formFieldCollections.findIndex(function (field) { return field.id === currentTarget_1.id; });\n nextField = fieldIndex > 0 ? _this.pdfViewer.formFieldCollections[fieldIndex - 1] : _this.pdfViewer.formFieldCollections[_this.pdfViewer.formFieldCollections.length - 1];\n }\n else {\n fieldIndex = _this.pdfViewer.formFieldCollections.findIndex(function (field) { return field.id === currentTarget_1.id; });\n nextField = fieldIndex + 1 < _this.pdfViewer.formFieldCollections.length ? _this.pdfViewer.formFieldCollections[fieldIndex + 1] : _this.pdfViewer.formFieldCollections[0];\n }\n _this.pdfViewer.focusFormField(nextField);\n event.preventDefault();\n }\n }\n }\n }\n }\n if (event.target && event.target.id && _this.pdfViewer.formFields) {\n for (var i = 0; i < _this.pdfViewer.formFields.length; i++) {\n var formField_1 = _this.pdfViewer.formFields[parseInt(i.toString(), 10)];\n if (event.target.id === formField_1.id) {\n // eslint-disable-next-line\n var field = {\n value: formField_1.value, fontFamily: formField_1.fontFamily, fontSize: formField_1.fontSize, fontStyle: formField_1.fontStyle,\n // eslint-disable-next-line\n color: formField_1.color, backgroundColor: formField_1.backgroundColor, alignment: formField_1.alignment, isReadonly: formField_1.isReadonly, visibility: formField_1.visibility,\n // eslint-disable-next-line\n maxLength: formField_1.maxLength, isRequired: formField_1.isRequired, isPrint: formField_1.isPrint, rotation: formField_1.rotateAngle, tooltip: formField_1.tooltip,\n // eslint-disable-next-line\n options: formField_1.options, isChecked: formField_1.isChecked, isSelected: formField_1.isSelected\n };\n _this.pdfViewer.fireFocusOutFormField(field, formField_1.pageIndex);\n }\n }\n }\n break;\n }\n }\n };\n /**\n * @param {KeyboardEvent} event - The KeyboardEvent.\n * @returns {void}\n */\n this.viewerContainerOnKeyDown = function (event) {\n var isMac = navigator.platform.match(/(Mac|iPhone|iPod|iPad)/i) ? true : false;\n var isCommandKey = isMac ? event.metaKey : false;\n if ((_this.isFreeTextAnnotationModule() && _this.pdfViewer.annotationModule\n && (_this.pdfViewer.annotationModule.freeTextAnnotationModule.isInuptBoxInFocus === true\n || _this.pdfViewer.annotationModule.inputElementModule.isInFocus === true))) {\n return;\n }\n if (event.ctrlKey || isCommandKey) {\n // add keycodes if shift key is used.\n if ((event.shiftKey && !isMac) || (isMac && !event.shiftKey)) {\n switch (event.keyCode) {\n case 38: // up arrow\n case 33: // page up\n event.preventDefault();\n if (_this.currentPageNumber !== 1) {\n _this.updateScrollTop(0);\n }\n break;\n case 40: // down arrow\n case 34: // page down\n event.preventDefault();\n if (_this.currentPageNumber !== _this.pageCount) {\n _this.updateScrollTop(_this.pageCount - 1);\n }\n break;\n default:\n break;\n }\n }\n switch (event.keyCode) {\n case 79: // o key\n if (_this.pdfViewer.toolbarModule && _this.pdfViewer.enableToolbar) {\n _this.pdfViewer.toolbarModule.openFileDialogBox(event);\n }\n break;\n case 67: // c key\n if (_this.pdfViewer.textSelectionModule && _this.pdfViewer.enableTextSelection && !_this.isTextSelectionDisabled) {\n event.preventDefault();\n _this.pdfViewer.textSelectionModule.copyText();\n }\n if (_this.pdfViewer.selectedItems.annotations.length || _this.pdfViewer.selectedItems.formFields.length) {\n _this.pdfViewer.copy();\n _this.contextMenuModule.previousAction = 'Copy';\n }\n break;\n case 70: // f key\n if (_this.pdfViewer.textSearchModule && _this.pdfViewer.enableTextSearch) {\n event.preventDefault();\n _this.pdfViewer.toolbarModule.textSearchButtonHandler();\n }\n break;\n case 80: // p key\n if (_this.pdfViewer.printModule && _this.pdfViewer.enablePrint) {\n event.preventDefault();\n _this.pdfViewer.print.print();\n }\n break;\n case 90: //z key\n if (_this.pdfViewer.annotationModule) {\n _this.pdfViewer.annotationModule.undo();\n }\n break;\n case 88: //x key\n if (_this.pdfViewer.selectedItems.annotations.length || _this.pdfViewer.selectedItems.formFields.length) {\n _this.pdfViewer.cut();\n _this.contextMenuModule.previousAction = 'Cut';\n }\n break;\n case 89: //y key\n if (_this.pdfViewer.annotationModule) {\n _this.pdfViewer.annotationModule.redo();\n }\n break;\n case 86: //v key\n // eslint-disable-next-line max-len\n if ((_this.pdfViewer.annotation && _this.pdfViewer.annotation.isShapeCopied) || (_this.pdfViewer.formFields && _this.pdfViewer.formDesigner && _this.pdfViewer.formDesigner.isShapeCopied)) {\n var isSearchboxDialogOpen = void 0;\n var searchBoxId = document.getElementById(_this.pdfViewer.element.id + \"_search_box\");\n if (searchBoxId) {\n isSearchboxDialogOpen = searchBoxId.style.display !== \"none\";\n }\n if (!isSearchboxDialogOpen && _this.pdfViewer.formDesigner && !_this.pdfViewer.formDesigner.isPropertyDialogOpen) {\n _this.pdfViewer.paste();\n _this.contextMenuModule.previousAction = 'Paste';\n }\n }\n break;\n default:\n break;\n }\n }\n if (_this.pdfViewer.magnificationModule) {\n _this.pdfViewer.magnificationModule.magnifyBehaviorKeyDown(event);\n }\n };\n /**\n * @param {MouseEvent} event - The MouseEvent.\n * @returns {void}\n */\n this.viewerContainerOnMousemove = function (event) {\n _this.mouseX = event.clientX;\n _this.mouseY = event.clientY;\n // eslint-disable-next-line\n var isIE = !!document.documentMode;\n var target = event.target;\n if (_this.action === 'Drag') {\n event.preventDefault();\n }\n // eslint-disable-next-line max-len\n if (_this.isViewerMouseDown && !(_this.action === 'Perimeter' || _this.action === 'Polygon' || _this.action === 'Line' || _this.action === 'DrawTool' || _this.action === 'Distance')) {\n // eslint-disable-next-line max-len\n if (_this.pdfViewer.textSelectionModule && _this.pdfViewer.enableTextSelection && !_this.isTextSelectionDisabled && !_this.getPopupNoteVisibleStatus()) {\n // text selection won't perform if we start the selection from hyperlink content by commenting this line.\n // this region block the toc/hyperlink navigation on sometimes.\n // if ((event.target as HTMLElement).classList.contains('e-pv-hyperlink') && this.pdfViewer.linkAnnotationModule) {\n // this.pdfViewer.linkAnnotationModule.modifyZindexForHyperlink((event.target as HTMLElement), true);\n // }\n if (!isIE) {\n if (event.target.className != 'e-pdfviewer-formFields')\n event.preventDefault();\n _this.mouseX = event.clientX;\n _this.mouseY = event.clientY;\n // eslint-disable-next-line\n var annotationModule = _this.pdfViewer.annotationModule;\n // eslint-disable-next-line max-len\n if (annotationModule && annotationModule.textMarkupAnnotationModule && annotationModule.textMarkupAnnotationModule.isDropletClicked && annotationModule.textMarkupAnnotationModule.isEnableTextMarkupResizer(annotationModule.textMarkupAnnotationModule.currentTextMarkupAddMode)) {\n annotationModule.textMarkupAnnotationModule.textSelect(event.target, _this.mouseX, _this.mouseY);\n }\n else {\n _this.pdfViewer.textSelectionModule.textSelectionOnMouseMove(event.target, _this.mouseX, _this.mouseY);\n }\n }\n else {\n var selection = window.getSelection();\n if (!selection.type && !selection.isCollapsed && selection.anchorNode !== null) {\n _this.pdfViewer.textSelectionModule.isTextSelection = true;\n }\n }\n }\n else if (_this.skipPreventDefault(target)) {\n event.preventDefault();\n }\n }\n if (_this.isTextMarkupAnnotationModule() && !_this.getPopupNoteVisibleStatus()) {\n _this.pdfViewer.annotationModule.textMarkupAnnotationModule.onTextMarkupAnnotationMouseMove(event);\n }\n if (_this.isPanMode) {\n _this.panOnMouseMove(event);\n }\n if (_this.isShapeBasedAnnotationsEnabled()) {\n var canvas = void 0;\n // eslint-disable-next-line max-len\n if (event.target && (event.target.id.indexOf('_text') > -1 || (event.target.parentElement.classList.contains('foreign-object')) || event.target.id.indexOf('_annotationCanvas') > -1 || event.target.classList.contains('e-pv-hyperlink')) && _this.pdfViewer.annotation || event.target.classList.contains('e-pdfviewer-formFields')) {\n var pageIndex = _this.pdfViewer.annotation.getEventPageNumber(event);\n var diagram = document.getElementById(_this.pdfViewer.element.id + '_annotationCanvas_' + pageIndex);\n if (diagram) {\n var canvas1 = diagram.getBoundingClientRect();\n var left = canvas1.x ? canvas1.x : canvas1.left;\n var top_1 = canvas1.y ? canvas1.y : canvas1.top;\n // eslint-disable-next-line max-len\n if (_this.pdfViewer.annotationModule.stampAnnotationModule.currentStampAnnotation && _this.pdfViewer.annotationModule.stampAnnotationModule.currentStampAnnotation.shapeAnnotationType === 'Image') {\n canvas = new Rect(left, top_1, canvas1.width - 10, canvas1.height - 10);\n }\n else {\n canvas = new Rect(left + 1, top_1 + 1, canvas1.width - 3, canvas1.height - 3);\n }\n }\n }\n else if (!_this.pdfViewer.annotationModule && _this.pdfViewer.formDesignerModule) {\n var pageIndex = _this.pdfViewer.formDesignerModule.getEventPageNumber(event);\n var diagram = document.getElementById(_this.pdfViewer.element.id + '_annotationCanvas_' + pageIndex);\n if (diagram) {\n var canvas1 = diagram.getBoundingClientRect();\n var left = canvas1.x ? canvas1.x : canvas1.left;\n var top_2 = canvas1.y ? canvas1.y : canvas1.top;\n canvas = new Rect(left + 10, top_2 + 10, canvas1.width - 10, canvas1.height - 10);\n }\n }\n // eslint-disable-next-line max-len\n var stampModule = _this.pdfViewer.annotationModule ? _this.pdfViewer.annotationModule.stampAnnotationModule : null;\n if (canvas && canvas.containsPoint({ x: _this.mouseX, y: _this.mouseY }) && !(stampModule && stampModule.isStampAnnotSelected)) {\n _this.diagramMouseMove(event);\n _this.annotationEvent = event;\n }\n else {\n _this.diagramMouseLeave(event);\n if (_this.isAnnotationDrawn && !_this.pdfViewer.isFormDesignerToolbarVisible) {\n _this.diagramMouseUp(event);\n _this.isAnnotationAdded = true;\n }\n }\n if (_this.pdfViewer.enableStampAnnotations) {\n if (stampModule && stampModule.isStampAnnotSelected) {\n _this.pdfViewer.tool = 'Stamp';\n _this.tool = new StampTool(_this.pdfViewer, _this);\n _this.isMouseDown = true;\n stampModule.isStampAnnotSelected = false;\n stampModule.isNewStampAnnot = true;\n }\n }\n if (_this.isSignatureAdded && _this.pdfViewer.enableHandwrittenSignature) {\n _this.pdfViewer.tool = 'Stamp';\n _this.tool = new StampTool(_this.pdfViewer, _this);\n _this.isMouseDown = true;\n _this.isSignatureAdded = false;\n _this.isNewSignatureAdded = true;\n }\n }\n };\n /**\n * @param {MouseEvent} event - The MouseEvent.\n * @returns {void}\n */\n this.panOnMouseMove = function (event) {\n var isStampMode = false;\n // eslint-disable-next-line max-len\n if (_this.action === 'Ink' || _this.action === \"Line\" || _this.action === 'Perimeter' || _this.action === 'Polygon' || _this.action === 'DrawTool' || _this.action === 'Drag' || _this.action.indexOf('Rotate') !== -1 || _this.action.indexOf('Resize') !== -1) {\n isStampMode = true;\n }\n // eslint-disable-next-line max-len\n if (_this.viewerContainer.contains(event.target) && (event.target !== _this.viewerContainer) && (event.target !== _this.pageContainer) && !isStampMode) {\n if (_this.isViewerMouseDown) {\n var deltaX = _this.dragX - event.pageX;\n var deltaY = _this.dragY - event.pageY;\n _this.viewerContainer.scrollTop = _this.viewerContainer.scrollTop + deltaY;\n _this.viewerContainer.scrollLeft = _this.viewerContainer.scrollLeft + deltaX;\n _this.viewerContainer.style.cursor = 'move';\n _this.viewerContainer.style.cursor = '-webkit-grabbing';\n _this.viewerContainer.style.cursor = '-moz-grabbing';\n _this.viewerContainer.style.cursor = 'grabbing';\n _this.dragX = event.pageX;\n _this.dragY = event.pageY;\n }\n else {\n if (!_this.navigationPane.isNavigationPaneResized) {\n _this.viewerContainer.style.cursor = 'move';\n _this.viewerContainer.style.cursor = '-webkit-grab';\n _this.viewerContainer.style.cursor = '-moz-grab';\n _this.viewerContainer.style.cursor = 'grab';\n }\n }\n }\n else {\n if (!_this.navigationPane.isNavigationPaneResized) {\n _this.viewerContainer.style.cursor = 'auto';\n }\n }\n };\n /**\n * @param {MouseEvent} event - The MouseEvent.\n * @returns {void}\n */\n this.viewerContainerOnMouseLeave = function (event) {\n if (_this.isViewerMouseDown) {\n if (_this.pdfViewer.textSelectionModule && !_this.isTextSelectionDisabled) {\n _this.pdfViewer.textSelectionModule.textSelectionOnMouseLeave(event);\n }\n }\n if (_this.pdfViewer.textSelectionModule && _this.pdfViewer.textSelectionModule.isTextSelection) {\n event.preventDefault();\n }\n if (_this.action === 'Ink') {\n _this.diagramMouseUp(event);\n _this.isAnnotationAdded = true;\n }\n };\n /**\n * @param {MouseEvent} event - The MouseEvent.\n * @returns {void}\n */\n this.viewerContainerOnMouseEnter = function (event) {\n if (_this.pdfViewer.textSelectionModule && !_this.isTextSelectionDisabled) {\n _this.pdfViewer.textSelectionModule.clear();\n }\n };\n /**\n * @param {MouseEvent} event - The MouseEvent.\n * @returns {void}\n */\n this.viewerContainerOnMouseOver = function (event) {\n // eslint-disable-next-line\n var isIE = !!document.documentMode;\n if (_this.isViewerMouseDown) {\n if (!isIE) {\n event.preventDefault();\n }\n }\n };\n /**\n * @param {MouseEvent} event - The MouseEvent.\n * @returns {void}\n */\n this.viewerContainerOnClick = function (event) {\n if (event.type === 'dblclick') {\n if (_this.pdfViewer.textSelectionModule && !_this.isTextSelectionDisabled && !_this.getCurrentTextMarkupAnnotation()) {\n if (event.target.classList.contains('e-pv-text')) {\n _this.isViewerContainerDoubleClick = true;\n if (!_this.getTextMarkupAnnotationMode()) {\n var pageNumber = parseFloat(event.target.id.split('_')[2]);\n _this.pdfViewer.fireTextSelectionStart(pageNumber + 1);\n }\n _this.pdfViewer.textSelectionModule.selectAWord(event.target, event.clientX, event.clientY, false);\n if (_this.pdfViewer.contextMenuSettings.contextMenuAction === 'MouseUp') {\n _this.pdfViewer.textSelectionModule.calculateContextMenuPosition(event.clientY, event.clientX);\n }\n if (!_this.getTextMarkupAnnotationMode()) {\n _this.pdfViewer.textSelectionModule.maintainSelectionOnZoom(true, false);\n _this.dblClickTimer = setTimeout(function () {\n _this.applySelection();\n }, 100);\n _this.pdfViewer.textSelectionModule.fireTextSelectEnd();\n }\n else if (_this.isTextMarkupAnnotationModule() && _this.getTextMarkupAnnotationMode()) {\n // eslint-disable-next-line max-len\n _this.pdfViewer.annotationModule.textMarkupAnnotationModule.drawTextMarkupAnnotations(_this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAddMode);\n }\n }\n }\n else if (_this.getCurrentTextMarkupAnnotation()) {\n // this.pdfViewer.annotationModule.showAnnotationPopup(event);\n }\n if (_this.action && (_this.action === 'Perimeter' || _this.action === 'Polygon') && _this.tool) {\n _this.eventArgs.position = _this.currentPosition;\n _this.getMouseEventArgs(_this.currentPosition, _this.eventArgs, event, _this.eventArgs.source);\n var ctrlKey = _this.isMetaKey(event);\n var info = { ctrlKey: event.ctrlKey, shiftKey: event.shiftKey };\n _this.eventArgs.info = info;\n _this.eventArgs.clickCount = event.detail;\n _this.tool.mouseUp(_this.eventArgs, true);\n }\n if (_this.pdfViewer.selectedItems ||\n (_this.pdfViewer.annotation && _this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation)) {\n if (_this.pdfViewer.selectedItems.annotations.length !== 0) {\n // eslint-disable-next-line\n var currentAnnotation = _this.pdfViewer.selectedItems.annotations[0];\n // eslint-disable-next-line max-len\n if (_this.pdfViewer.annotationModule && !currentAnnotation.formFieldAnnotationType) {\n // eslint-disable-next-line max-len\n _this.pdfViewer.annotationModule.annotationSelect(currentAnnotation.annotName, currentAnnotation.pageIndex, currentAnnotation, null, true);\n if (_this.pdfViewer.annotationModule.freeTextAnnotationModule.isInuptBoxInFocus === false) {\n if (_this.isFreeTextAnnotation(_this.pdfViewer.selectedItems.annotations) === true) {\n var elmtPosition = {};\n elmtPosition.x = _this.pdfViewer.selectedItems.annotations[0].bounds.x;\n elmtPosition.y = _this.pdfViewer.selectedItems.annotations[0].bounds.y;\n // eslint-disable-next-line max-len\n _this.pdfViewer.annotation.freeTextAnnotationModule.addInuptElemet(elmtPosition, _this.pdfViewer.selectedItems.annotations[0]);\n }\n else if (_this.pdfViewer.selectedItems.annotations[0].enableShapeLabel === true) {\n var elmtPosition = {};\n elmtPosition.x = _this.pdfViewer.selectedItems.annotations[0].bounds.x;\n elmtPosition.y = _this.pdfViewer.selectedItems.annotations[0].bounds.y;\n // eslint-disable-next-line max-len\n _this.pdfViewer.annotation.inputElementModule.editLabel(elmtPosition, _this.pdfViewer.selectedItems.annotations[0]);\n }\n else {\n // eslint-disable-next-line\n var accordionExpand = document.getElementById(_this.pdfViewer.element.id + '_accordionContainer' + _this.pdfViewer.currentPageNumber);\n if (accordionExpand) {\n accordionExpand.ej2_instances[0].expandItem(true);\n }\n // eslint-disable-next-line\n var commentsDiv = document.getElementById(_this.pdfViewer.selectedItems.annotations[0].annotName);\n if (commentsDiv) {\n if (!commentsDiv.classList.contains('e-pv-comments-border')) {\n commentsDiv.firstChild.click();\n }\n }\n }\n }\n }\n }\n else {\n // eslint-disable-next-line max-len\n var annotation = _this.pdfViewer.annotation;\n var annotationModule = _this.pdfViewer.annotationModule;\n if (annotation && annotationModule.textMarkupAnnotationModule && annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n // eslint-disable-next-line\n var annotation_1 = _this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation;\n // eslint-disable-next-line max-len\n _this.pdfViewer.annotationModule.annotationSelect(annotation_1.annotName, _this.pdfViewer.annotationModule.textMarkupAnnotationModule.selectTextMarkupCurrentPage, annotation_1, null, true);\n // eslint-disable-next-line\n var accordionExpand = document.getElementById(_this.pdfViewer.element.id + '_accordionContainer' + _this.currentPageNumber);\n if (accordionExpand) {\n accordionExpand.ej2_instances[0].expandItem(true);\n }\n // eslint-disable-next-line\n var comments = document.getElementById(annotation_1.annotName);\n if (comments) {\n comments.firstChild.click();\n }\n }\n }\n }\n if (_this.pdfViewer.designerMode && _this.pdfViewer.selectedItems.formFields.length > 0) {\n var eventArgs = { name: \"formFieldDoubleClick\", field: _this.pdfViewer.selectedItems.formFields[0], cancel: false };\n _this.pdfViewer.fireFormFieldDoubleClickEvent(eventArgs);\n if (!eventArgs.cancel) {\n _this.pdfViewer.formDesigner.createPropertiesWindow();\n }\n }\n }\n else {\n if (event.detail === 3) {\n if (_this.isViewerContainerDoubleClick) {\n clearTimeout(_this.dblClickTimer);\n _this.isViewerContainerDoubleClick = false;\n }\n if (_this.pdfViewer.textSelectionModule && !_this.isTextSelectionDisabled && !_this.getTextMarkupAnnotationMode()) {\n _this.pdfViewer.textSelectionModule.selectEntireLine(event);\n _this.pdfViewer.textSelectionModule.maintainSelectionOnZoom(true, false);\n _this.pdfViewer.textSelectionModule.fireTextSelectEnd();\n _this.applySelection();\n }\n }\n }\n };\n /**\n * @param {DragEvent} event - The DragEvent.\n * @returns {void}\n */\n this.viewerContainerOnDragStart = function (event) {\n // eslint-disable-next-line\n var isIE = !!document.documentMode;\n if (!isIE) {\n event.preventDefault();\n }\n };\n // eslint-disable-next-line\n this.viewerContainerOnContextMenuClick = function (event) {\n _this.isViewerMouseDown = false;\n };\n // eslint-disable-next-line\n this.onWindowMouseUp = function (event) {\n _this.isFreeTextContextMenu = false;\n _this.isNewStamp = false;\n _this.signatureAdded = false;\n // eslint-disable-next-line\n var annotationModule = _this.pdfViewer.annotationModule;\n // eslint-disable-next-line max-len\n if (annotationModule && annotationModule.textMarkupAnnotationModule && annotationModule.textMarkupAnnotationModule.isEnableTextMarkupResizer(annotationModule.textMarkupAnnotationModule.currentTextMarkupAddMode)) {\n // eslint-disable-next-line\n var modules = annotationModule.textMarkupAnnotationModule;\n modules.isLeftDropletClicked = false;\n modules.isDropletClicked = false;\n modules.isRightDropletClicked = false;\n if (!modules.currentTextMarkupAnnotation && window.getSelection().anchorNode === null) {\n modules.showHideDropletDiv(true);\n }\n else if (!modules.currentTextMarkupAnnotation && modules.currentTextMarkupAddMode === '') {\n modules.isTextMarkupAnnotationMode = false;\n }\n }\n if (!_this.getPopupNoteVisibleStatus()) {\n if (event.button === 0) {\n // eslint-disable-next-line max-len\n if (_this.isNewFreeTextAnnotation()) {\n if (_this.pdfViewer.textSelectionModule && !_this.isTextSelectionDisabled && !_this.getTextMarkupAnnotationMode()) {\n // eslint-disable-next-line max-len\n if (event.detail === 1 && !_this.viewerContainer.contains(event.target) && !_this.contextMenuModule.contextMenuElement.contains(event.target)) {\n if (window.getSelection().anchorNode !== null) {\n _this.pdfViewer.textSelectionModule.textSelectionOnMouseup(event);\n }\n }\n // eslint-disable-next-line\n var target = event.target;\n if (_this.viewerContainer.contains(event.target) && target.className !== 'e-pdfviewer-formFields' && target.className !== 'e-pv-formfield-input') {\n if (!_this.isClickedOnScrollBar(event, true) && !_this.isScrollbarMouseDown) {\n _this.pdfViewer.textSelectionModule.textSelectionOnMouseup(event);\n }\n else {\n if (window.getSelection().anchorNode !== null) {\n _this.pdfViewer.textSelectionModule.applySpanForSelection();\n }\n }\n }\n }\n else if (_this.getTextMarkupAnnotationMode()) {\n // eslint-disable-next-line\n var viewerElement = _this.pdfViewer.element;\n // eslint-disable-next-line\n var targetElement = event.target;\n if (viewerElement && targetElement) {\n if (viewerElement.id.split('_')[0] === targetElement.id.split('_')[0]) {\n // eslint-disable-next-line max-len\n _this.pdfViewer.annotationModule.textMarkupAnnotationModule.drawTextMarkupAnnotations(_this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAddMode);\n }\n }\n }\n }\n }\n else if (event.button === 2) {\n if (_this.viewerContainer.contains(event.target) && _this.skipPreventDefault(event.target)) {\n if (_this.checkIsNormalText()) {\n window.getSelection().removeAllRanges();\n }\n }\n }\n if (_this.isViewerMouseDown) {\n _this.isViewerMouseDown = false;\n if (_this.pdfViewer.textSelectionModule && !_this.isTextSelectionDisabled) {\n _this.pdfViewer.textSelectionModule.clear();\n _this.pdfViewer.textSelectionModule.selectionStartPage = null;\n }\n event.preventDefault();\n event.stopPropagation();\n return false;\n }\n else {\n return true;\n }\n }\n };\n /**\n * @param {TouchEvent} event - The DragEvent.\n * @returns {void}\n */\n this.onWindowTouchEnd = function (event) {\n _this.signatureAdded = false;\n // eslint-disable-next-line max-len\n if (!_this.pdfViewer.element.contains(event.target) && !_this.contextMenuModule.contextMenuElement.contains(event.target)) {\n if (_this.pdfViewer.textSelectionModule && !_this.isTextSelectionDisabled) {\n _this.pdfViewer.textSelectionModule.clearTextSelection();\n }\n }\n };\n /**\n * @param {TouchEvent} event - The TouchEvent.\n * @returns {void}\n */\n this.viewerContainerOnTouchStart = function (event) {\n var touchPoints = event.touches;\n if (_this.pdfViewer.magnificationModule) {\n _this.pdfViewer.magnificationModule.setTouchPoints(touchPoints[0].clientX, touchPoints[0].clientY);\n }\n var target = event.target;\n // eslint-disable-next-line max-len\n if (touchPoints.length === 1 && !(target.classList.contains('e-pv-hyperlink')) && _this.skipPreventDefault(target)) {\n _this.preventTouchEvent(event);\n }\n if (event.touches.length === 1 && _this.isTextMarkupAnnotationModule() && !_this.getPopupNoteVisibleStatus()) {\n if (!_this.isToolbarInkClicked) {\n _this.pdfViewer.annotationModule.textMarkupAnnotationModule.onTextMarkupAnnotationTouchEnd(event);\n }\n }\n _this.touchClientX = touchPoints[0].clientX;\n _this.touchClientY = touchPoints[0].clientY;\n _this.scrollY = touchPoints[0].clientY;\n _this.previousTime = new Date().getTime();\n // eslint-disable-next-line max-len\n if (touchPoints.length === 1 && !(event.target.classList.contains('e-pv-touch-select-drop') || event.target.classList.contains('e-pv-touch-ellipse'))) {\n if ((Browser.isDevice && !_this.pdfViewer.enableDesktopMode) && _this.pageCount > 0 && !_this.isThumb && !(event.target.classList.contains('e-pv-hyperlink'))) {\n _this.handleTaps(touchPoints, event);\n }\n if (!isBlazor() || !Browser.isDevice || _this.pdfViewer.enableDesktopMode) {\n _this.handleTextBoxTaps(touchPoints);\n }\n var designerMode = _this.isDesignerMode(target);\n if (designerMode) {\n _this.contextMenuModule.close();\n // event.preventDefault();\n if (!_this.isLongTouchPropagated) {\n _this.longTouchTimer = setTimeout(function () {\n if (!_this.isMoving) {\n _this.isTouchDesignerMode = true;\n /* eslint-disable */\n _this.contextMenuModule.open(_this.touchClientY, _this.touchClientX, _this.viewerContainer);\n /* eslint-enable */\n }\n }, 1000);\n }\n _this.isLongTouchPropagated = true;\n _this.isMoving = false;\n }\n else if ((_this.pdfViewer.textSelectionModule && !_this.isTextSelectionDisabled)) {\n _this.pdfViewer.textSelectionModule.clearTextSelection();\n _this.contextMenuModule.close();\n // event.preventDefault();\n if (!_this.isLongTouchPropagated) {\n _this.longTouchTimer = setTimeout(function () {\n _this.viewerContainerOnLongTouch(event);\n }, 1000);\n }\n _this.isLongTouchPropagated = true;\n }\n }\n // eslint-disable-next-line\n var toolbarModule = _this.pdfViewer.toolbarModule ? _this.pdfViewer.toolbarModule.annotationToolbarModule : 'null';\n if (target.classList.contains('e-pv-text') && (!toolbarModule || !toolbarModule.textMarkupToolbarElement || toolbarModule.textMarkupToolbarElement.children.length === 0)) {\n target.classList.add('e-pv-text-selection-none');\n }\n _this.diagramMouseDown(event);\n // eslint-disable-next-line max-len\n if (_this.action === 'Perimeter' || _this.action === 'Polygon' || _this.action === 'DrawTool' || _this.action === 'Drag' || _this.action.indexOf('Rotate') !== -1 || _this.action.indexOf('Resize') !== -1) {\n event.preventDefault();\n }\n };\n /**\n * @param {TouchEvent} event - The TouchEvent.\n * @returns {void}\n */\n this.viewerContainerOnLongTouch = function (event) {\n _this.touchClientX = event.touches[0].clientX;\n _this.touchClientY = event.touches[0].clientY;\n event.preventDefault();\n if (_this.pdfViewer.textSelectionModule) {\n var target = event.target;\n if (target.classList.contains('e-pv-text-selection-none')) {\n target.classList.remove('e-pv-text-selection-none');\n }\n _this.pdfViewer.textSelectionModule.initiateTouchSelection(event, _this.touchClientX, _this.touchClientY);\n if (Browser.isDevice && !_this.pdfViewer.enableDesktopMode) {\n clearTimeout(_this.singleTapTimer);\n _this.tapCount = 0;\n }\n }\n };\n /**\n * @param {PointerEvent} event - The PointerEvent.\n * @returns {void}\n */\n this.viewerContainerOnPointerDown = function (event) {\n if (event.pointerType === 'touch') {\n _this.pointerCount++;\n if (_this.pointerCount <= 2) {\n event.preventDefault();\n _this.pointersForTouch.push(event);\n if (_this.pointerCount === 2) {\n _this.pointerCount = 0;\n }\n if (_this.pdfViewer.magnificationModule) {\n _this.pdfViewer.magnificationModule.setTouchPoints(event.clientX, event.clientY);\n }\n }\n }\n };\n /**\n * @param {TouchEvent} event - The TouchEvent.\n * @returns {void}\n */\n this.viewerContainerOnTouchMove = function (event) {\n if (_this.action === 'Drag') {\n _this.isMoving = true;\n }\n if (Browser.isDevice && !_this.pdfViewer.enableDesktopMode) {\n clearTimeout(_this.singleTapTimer);\n _this.singleTapTimer = null;\n _this.tapCount = 0;\n }\n _this.preventTouchEvent(event);\n if (_this.isToolbarInkClicked) {\n event.preventDefault();\n }\n var touchPoints = event.touches;\n if (_this.pdfViewer.magnificationModule) {\n _this.isTouchScrolled = true;\n if (touchPoints.length > 1 && _this.pageCount > 0) {\n if (Browser.isDevice && !_this.pdfViewer.enableDesktopMode) {\n _this.isTouchScrolled = false;\n }\n if (_this.pdfViewer.enablePinchZoom) {\n // eslint-disable-next-line max-len\n _this.pdfViewer.magnificationModule.initiatePinchMove(touchPoints[0].clientX, touchPoints[0].clientY, touchPoints[1].clientX, touchPoints[1].clientY);\n }\n }\n else if (touchPoints.length === 1 && _this.getPagesPinchZoomed()) {\n if (Browser.isDevice && !_this.pdfViewer.enableDesktopMode) {\n _this.isTouchScrolled = false;\n }\n _this.pdfViewer.magnificationModule.pinchMoveScroll();\n }\n }\n _this.mouseX = touchPoints[0].clientX;\n _this.mouseY = touchPoints[0].clientY;\n var canvas;\n // eslint-disable-next-line max-len\n if (event.target && (event.target.id.indexOf('_text') > -1 || event.target.id.indexOf('_annotationCanvas') > -1 || event.target.classList.contains('e-pv-hyperlink')) && _this.pdfViewer.annotation) {\n var pageIndex = _this.pdfViewer.annotation.getEventPageNumber(event);\n var diagram = document.getElementById(_this.pdfViewer.element.id + '_annotationCanvas_' + pageIndex);\n if (diagram) {\n var canvas1 = diagram.getBoundingClientRect();\n var left = canvas1.x ? canvas1.x : canvas1.left;\n var top_3 = canvas1.y ? canvas1.y : canvas1.top;\n canvas = new Rect(left + 10, top_3 + 10, canvas1.width - 10, canvas1.height - 10);\n }\n }\n if (canvas && canvas.containsPoint({ x: _this.mouseX, y: _this.mouseY }) || _this.action === 'Ink') {\n _this.diagramMouseMove(event);\n _this.annotationEvent = event;\n }\n else {\n _this.diagramMouseLeave(event);\n if (_this.isAnnotationDrawn) {\n _this.diagramMouseUp(event);\n _this.isAnnotationAdded = true;\n }\n }\n touchPoints = null;\n };\n /**\n * @param {PointerEvent} event - The TouchEvent.\n * @returns {void}\n */\n this.viewerContainerOnPointerMove = function (event) {\n if (event.pointerType === 'touch' && _this.pageCount > 0) {\n event.preventDefault();\n if (_this.pointersForTouch.length === 2) {\n for (var i = 0; i < _this.pointersForTouch.length; i++) {\n if (event.pointerId === _this.pointersForTouch[parseInt(i.toString(), 10)].pointerId) {\n _this.pointersForTouch[parseInt(i.toString(), 10)] = event;\n break;\n }\n }\n if (_this.pdfViewer.magnificationModule && _this.pdfViewer.enablePinchZoom) {\n // eslint-disable-next-line max-len\n _this.pdfViewer.magnificationModule.initiatePinchMove(_this.pointersForTouch[0].clientX, _this.pointersForTouch[0].clientY, _this.pointersForTouch[1].clientX, _this.pointersForTouch[1].clientY);\n }\n }\n }\n };\n /**\n * @param {TouchEvent} event - The TouchEvent.\n * @returns {void}\n */\n this.viewerContainerOnTouchEnd = function (event) {\n if (_this.pdfViewer.magnificationModule) {\n _this.pdfViewer.magnificationModule.pinchMoveEnd();\n }\n if (event.cancelable && !event.target.classList.contains('e-pv-touch-ellipse') && _this.pdfViewer.textSelectionModule && _this.pdfViewer.textSelectionModule.isTextSelection) {\n event.preventDefault();\n }\n _this.isLongTouchPropagated = false;\n clearInterval(_this.longTouchTimer);\n _this.longTouchTimer = null;\n if ((Browser.isDevice && !_this.pdfViewer.enableDesktopMode) && _this.isTouchScrolled) {\n _this.currentTime = new Date().getTime();\n var duration = _this.currentTime - _this.previousTime;\n // eslint-disable-next-line\n var difference = _this.scrollY - event.changedTouches[0].pageY;\n // eslint-disable-next-line\n var speed = (difference) / (duration);\n if (Math.abs(speed) > 1.5) {\n // eslint-disable-next-line\n var scrollTop = (difference) + ((duration) * speed);\n if (scrollTop > 0) {\n _this.viewerContainer.scrollTop += scrollTop;\n _this.updateMobileScrollerPosition();\n }\n }\n }\n _this.diagramMouseUp(event);\n _this.renderStampAnnotation(event);\n if (!Browser.isDevice) {\n _this.focusViewerContainer();\n }\n };\n /**\n * @param {PointerEvent} event - The PointerEvent.\n * @returns {void}\n */\n this.viewerContainerOnPointerEnd = function (event) {\n if (event.pointerType === 'touch') {\n event.preventDefault();\n if (_this.pdfViewer.magnificationModule) {\n _this.pdfViewer.magnificationModule.pinchMoveEnd();\n }\n _this.pointersForTouch = [];\n _this.pointerCount = 0;\n }\n };\n // eslint-disable-next-line\n this.viewerContainerOnScroll = function (event) {\n var proxy = null;\n proxy = _this;\n var allowServerDataBind = proxy.pdfViewer.allowServerDataBinding;\n proxy.pdfViewer.enableServerDataBinding(false);\n var scrollposX = 0;\n var scrollposY = 0;\n if (event.touches && (Browser.isDevice && !_this.pdfViewer.enableDesktopMode)) {\n // eslint-disable-next-line\n var ratio = (_this.viewerContainer.scrollHeight - _this.viewerContainer.clientHeight) / (_this.viewerContainer.clientHeight - _this.toolbarHeight);\n if (_this.isThumb) {\n _this.ispageMoved = true;\n event.preventDefault();\n _this.mobilePageNoContainer.style.display = 'block';\n scrollposX = event.touches[0].pageX - _this.scrollX;\n scrollposY = event.touches[0].pageY - _this.viewerContainer.offsetTop;\n _this.viewerContainer.scrollTop = scrollposY * ratio;\n // eslint-disable-next-line\n var containerValue = event.touches[0].pageY;\n // eslint-disable-next-line\n var toolbarHeight = _this.pdfViewer.toolbarModule ? 0 : 50;\n if (_this.viewerContainer.scrollTop !== 0 && ((containerValue) <= (_this.viewerContainer.clientHeight - toolbarHeight))) {\n _this.mobileScrollerContainer.style.top = containerValue + 'px';\n }\n }\n else if (event.touches[0].target.className !== 'e-pv-touch-ellipse') {\n if (!(_this.isWebkitMobile && (Browser.isDevice && !_this.pdfViewer.enableDesktopMode))) {\n _this.mobilePageNoContainer.style.display = 'none';\n scrollposY = _this.touchClientY - event.touches[0].pageY;\n scrollposX = _this.touchClientX - event.touches[0].pageX;\n _this.viewerContainer.scrollTop = _this.viewerContainer.scrollTop + (scrollposY);\n _this.viewerContainer.scrollLeft = _this.viewerContainer.scrollLeft + (scrollposX);\n }\n // eslint-disable-next-line\n _this.updateMobileScrollerPosition();\n _this.touchClientY = event.touches[0].pageY;\n _this.touchClientX = event.touches[0].pageX;\n }\n }\n if (_this.scrollHoldTimer) {\n clearTimeout(_this.scrollHoldTimer);\n }\n var pageIndex = _this.currentPageNumber;\n _this.scrollHoldTimer = null;\n _this.contextMenuModule.close();\n var verticalScrollValue = _this.viewerContainer.scrollTop;\n // eslint-disable-next-line max-len\n for (var i = 0; i < _this.pageCount; i++) {\n if (_this.pageSize[parseInt(i.toString(), 10)] != null) {\n var pageHeight = _this.getPageHeight(i);\n if (pageHeight < 150) {\n _this.pageStopValue = 75;\n }\n else if (pageHeight >= 150 && pageHeight < 300) {\n _this.pageStopValue = 125;\n }\n else if (pageHeight >= 300 && pageHeight < 500) {\n _this.pageStopValue = 200;\n }\n else {\n _this.pageStopValue = 300;\n }\n // eslint-disable-next-line max-len\n if ((verticalScrollValue + _this.pageStopValue) <= (_this.getPageTop(i) + pageHeight)) {\n _this.currentPageNumber = i + 1;\n _this.pdfViewer.currentPageNumber = i + 1;\n break;\n }\n }\n }\n // eslint-disable-next-line max-len\n if (_this.pdfViewer.magnificationModule && _this.pdfViewer.magnificationModule.fitType === 'fitToPage' && _this.currentPageNumber > 0) {\n if (_this.pageSize[_this.currentPageNumber - 1]) {\n if (!_this.isPanMode && (!Browser.isDevice && _this.pdfViewer.enableDesktopMode)) {\n _this.viewerContainer.scrollTop = _this.pageSize[_this.currentPageNumber - 1].top * _this.getZoomFactor();\n }\n }\n }\n _this.renderElementsVirtualScroll(_this.currentPageNumber);\n // eslint-disable-next-line max-len\n if (!_this.isViewerMouseDown && !_this.getPinchZoomed() && !_this.getPinchScrolled() && !_this.getPagesPinchZoomed() || _this.isViewerMouseWheel) {\n _this.pageViewScrollChanged(_this.currentPageNumber);\n _this.isViewerMouseWheel = false;\n }\n else {\n _this.showPageLoadingIndicator(_this.currentPageNumber - 1, false);\n }\n if (_this.pdfViewer.toolbarModule) {\n if (!isBlazor()) {\n _this.pdfViewer.toolbarModule.updateCurrentPage(_this.currentPageNumber);\n }\n _this.viewerContainer.setAttribute('aria-labelledby', _this.pdfViewer.element.id + '_pageDiv_' + (_this.currentPageNumber - 1));\n if (!isBlazor()) {\n if (!Browser.isDevice || _this.pdfViewer.enableDesktopMode) {\n _this.pdfViewer.toolbarModule.updateNavigationButtons();\n }\n }\n }\n if (Browser.isDevice && !_this.pdfViewer.enableDesktopMode) {\n _this.mobileSpanContainer.innerHTML = _this.currentPageNumber.toString();\n _this.mobilecurrentPageContainer.innerHTML = _this.currentPageNumber.toString();\n }\n if (pageIndex !== _this.currentPageNumber) {\n if (proxy.pdfViewer.thumbnailViewModule && (!Browser.isDevice || _this.pdfViewer.enableDesktopMode)) {\n proxy.pdfViewer.thumbnailViewModule.gotoThumbnailImage(proxy.currentPageNumber - 1);\n proxy.pdfViewer.thumbnailViewModule.isThumbnailClicked = false;\n }\n _this.pdfViewer.firePageChange(pageIndex);\n }\n if (_this.pdfViewer.magnificationModule) {\n if (!_this.isPanMode && (!Browser.isDevice && _this.pdfViewer.enableDesktopMode)) {\n _this.pdfViewer.magnificationModule.updatePagesForFitPage(_this.currentPageNumber - 1);\n }\n }\n var currentPage = _this.getElement('_pageDiv_' + (_this.currentPageNumber - 1));\n if (currentPage) {\n currentPage.style.visibility = 'visible';\n }\n if (_this.isViewerMouseDown) {\n if (_this.getRerenderCanvasCreated() && !_this.isPanMode) {\n _this.pdfViewer.magnificationModule.clearIntervalTimer();\n }\n // eslint-disable-next-line\n var data = _this.getStoredData(_this.currentPageNumber);\n if (data) {\n _this.isDataExits = true;\n _this.initiatePageViewScrollChanged();\n _this.isDataExits = false;\n }\n else {\n // eslint-disable-next-line max-len\n var timer = _this.pdfViewer.scrollSettings.delayPageRequestTimeOnScroll ? _this.pdfViewer.scrollSettings.delayPageRequestTimeOnScroll : 100;\n _this.scrollHoldTimer = setTimeout(function () {\n _this.initiatePageViewScrollChanged();\n }, timer);\n }\n }\n if (_this.pdfViewer.annotation && _this.navigationPane.commentPanelContainer) {\n _this.pdfViewer.annotation.stickyNotesAnnotationModule.updateCommentPanelScrollTop(_this.currentPageNumber);\n }\n // eslint-disable-next-line max-len\n if ((Browser.isDevice && !_this.pdfViewer.enableDesktopMode) && event.touches && event.touches[0].target.className !== 'e-pv-touch-ellipse') {\n setTimeout(function () {\n _this.updateMobileScrollerPosition();\n }, 500);\n }\n proxy.pdfViewer.enableServerDataBinding(allowServerDataBind, true);\n };\n this.pdfViewer = viewer;\n this.navigationPane = new NavigationPane(this.pdfViewer, this);\n this.textLayer = new TextLayer(this.pdfViewer, this);\n this.accessibilityTags = new AccessibilityTags(this.pdfViewer, this);\n this.signatureModule = new Signature(this.pdfViewer, this);\n this.isWebkitMobile = /Chrome/.test(navigator.userAgent) || /Google Inc/.test(navigator.vendor) || (navigator.userAgent.indexOf('Safari') !== -1);\n }\n /**\n * @private\n * @returns {void}\n */\n PdfViewerBase.prototype.initializeComponent = function () {\n var element = document.getElementById(this.pdfViewer.element.id);\n if (element) {\n this.blazorUIAdaptor = isBlazor() ? new BlazorUiAdaptor(this.pdfViewer, this) : null;\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n this.pdfViewer.element.classList.add('e-pv-mobile-view');\n }\n var controlWidth = '100%';\n var toolbarDiv = void 0;\n this.viewerMainContainer = isBlazor() ? element.querySelector('.e-pv-viewer-main-container') : createElement('div', { id: this.pdfViewer.element.id + '_viewerMainContainer', className: 'e-pv-viewer-main-container' });\n this.viewerContainer = isBlazor() ? element.querySelector('.e-pv-viewer-container') : createElement('div', { id: this.pdfViewer.element.id + '_viewerContainer', className: 'e-pv-viewer-container', attrs: { 'aria-label': 'pdfviewer scroll view' } });\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n this.createMobilePageNumberContainer();\n }\n // eslint-disable-next-line\n this.viewerContainer.tabIndex = 0;\n if (this.pdfViewer.enableRtl) {\n this.viewerContainer.style.direction = 'rtl';\n }\n element.style.touchAction = 'pan-x pan-y';\n this.setMaximumHeight(element);\n this.mainContainer = isBlazor() ? element.querySelector('.e-pv-main-container') : createElement('div', { id: this.pdfViewer.element.id + '_mainContainer', className: 'e-pv-main-container' });\n this.mainContainer.appendChild(this.viewerMainContainer);\n element.appendChild(this.mainContainer);\n this.applyViewerHeight(this.mainContainer);\n if (this.pdfViewer.toolbarModule) {\n this.navigationPane.initializeNavigationPane();\n toolbarDiv = this.pdfViewer.toolbarModule.intializeToolbar(controlWidth);\n }\n else {\n if (isBlazor()) {\n this.navigationPane.initializeNavigationPane();\n toolbarDiv = this.pdfViewer.element.querySelector('.e-pv-toolbar');\n if (!this.pdfViewer.enableToolbar) {\n this.toolbarHeight = 0;\n toolbarDiv.style.display = 'none';\n }\n if (!this.pdfViewer.enableNavigationToolbar && ((Browser.isDevice && this.pdfViewer.enableDesktopMode) || (!Browser.isDevice))) {\n this.navigationPane.sideBarToolbar.style.display = 'none';\n this.navigationPane.sideBarToolbarSplitter.style.display = 'none';\n if (this.navigationPane.isBookmarkOpen || this.navigationPane.isThumbnailOpen) {\n this.navigationPane.updateViewerContainerOnClose();\n }\n }\n }\n }\n if (toolbarDiv) {\n this.viewerContainer.style.height = this.updatePageHeight(this.pdfViewer.element.getBoundingClientRect().height, 56);\n }\n else {\n this.viewerContainer.style.height = this.updatePageHeight(this.pdfViewer.element.getBoundingClientRect().height, 0);\n }\n var viewerWidth = this.pdfViewer.element.clientWidth;\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n viewerWidth = viewerWidth - (this.navigationPane.sideBarToolbar ? this.navigationPane.getViewerContainerLeft() : 0) -\n (this.navigationPane.commentPanelContainer ? this.navigationPane.getViewerContainerRight() : 0);\n }\n this.viewerContainer.style.width = viewerWidth + 'px';\n this.viewerMainContainer.appendChild(this.viewerContainer);\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n this.mobileScrollerContainer.style.left = (viewerWidth - parseFloat(this.mobileScrollerContainer.style.width)) + 'px';\n this.mobilePageNoContainer.style.left = (viewerWidth / 2) - (parseFloat(this.mobilePageNoContainer.style.width) / 2) + 'px';\n this.mobilePageNoContainer.style.top = (this.pdfViewer.element.clientHeight / 2) + 'px';\n this.mobilePageNoContainer.style.display = 'none';\n this.mobilePageNoContainer.appendChild(this.mobilecurrentPageContainer);\n this.mobilePageNoContainer.appendChild(this.mobilenumberContainer);\n this.mobilePageNoContainer.appendChild(this.mobiletotalPageContainer);\n this.viewerContainer.appendChild(this.mobilePageNoContainer);\n this.viewerMainContainer.appendChild(this.mobileScrollerContainer);\n this.mobileScrollerContainer.appendChild(this.mobileSpanContainer);\n }\n this.pageContainer = createElement('div', { id: this.pdfViewer.element.id + '_pageViewContainer', className: 'e-pv-page-container', attrs: { 'tabindex': '0', 'aria-label': 'pdfviewer Page View' } });\n if (this.pdfViewer.enableRtl) {\n this.pageContainer.style.direction = 'ltr';\n }\n this.viewerContainer.appendChild(this.pageContainer);\n this.pageContainer.style.width = this.viewerContainer.clientWidth + 'px';\n if (toolbarDiv && this.pdfViewer.thumbnailViewModule && (!Browser.isDevice || this.pdfViewer.enableDesktopMode)) {\n this.pdfViewer.thumbnailViewModule.createThumbnailContainer();\n }\n this.createPrintPopup();\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n this.createGoToPagePopup();\n }\n var waitingPopup = createElement('div', { id: this.pdfViewer.element.id + '_loadingIndicator' });\n this.viewerContainer.appendChild(waitingPopup);\n createSpinner({ target: waitingPopup, cssClass: 'e-spin-center' });\n this.setLoaderProperties(waitingPopup);\n if (isBlazor()) {\n this.contextMenuModule = new BlazorContextMenu(this.pdfViewer, this);\n // eslint-disable-next-line\n var spinnerElement = document.getElementsByClassName(this.pdfViewer.element.id + '_spinner');\n if (spinnerElement && spinnerElement[0] && (!spinnerElement[0].classList.contains('e-spin-hide'))) {\n spinnerElement[0].classList.remove('e-spin-show');\n spinnerElement[0].classList.add('e-spin-hide');\n }\n }\n else {\n this.contextMenuModule = new ContextMenu(this.pdfViewer, this);\n }\n this.contextMenuModule.createContextMenu();\n this.createFileInputElement();\n this.wireEvents();\n if (this.pdfViewer.textSearchModule && (!Browser.isDevice || this.pdfViewer.enableDesktopMode)) {\n this.pdfViewer.textSearchModule.createTextSearchBox();\n }\n if (this.pdfViewer.documentPath) {\n if (isBlazor()) {\n this.pdfViewer._dotnetInstance.invokeMethodAsync('LoadDocumentFromClient', this.pdfViewer.documentPath);\n }\n else {\n this.pdfViewer.load(this.pdfViewer.documentPath, null);\n }\n }\n if (this.pdfViewer.annotationModule) {\n this.pdfViewer.annotationModule.initializeCollection();\n }\n }\n if (Browser.isDevice && this.pdfViewer.enableDesktopMode && this.pdfViewer.toolbarModule) {\n this.pdfViewer.interactionMode = 'Pan';\n }\n };\n PdfViewerBase.prototype.createMobilePageNumberContainer = function () {\n this.mobilePageNoContainer = createElement('div', { id: this.pdfViewer.element.id + '_mobilepagenoContainer', className: 'e-pv-mobilepagenoscroll-container' });\n this.mobilecurrentPageContainer = createElement('span', { id: this.pdfViewer.element.id + '_mobilecurrentpageContainer', className: 'e-pv-mobilecurrentpage-container' });\n this.mobilenumberContainer = createElement('span', { id: this.pdfViewer.element.id + '_mobiledashedlineContainer', className: 'e-pv-mobiledashedline-container' });\n this.mobiletotalPageContainer = createElement('span', { id: this.pdfViewer.element.id + '_mobiletotalpageContainer', className: 'e-pv-mobiletotalpage-container' });\n this.mobileScrollerContainer = createElement('div', { id: this.pdfViewer.element.id + '_mobilescrollContainer', className: 'e-pv-mobilescroll-container' });\n this.mobileSpanContainer = createElement('span', { id: this.pdfViewer.element.id + '_mobilespanContainer', className: 'e-pv-mobilespanscroll-container' });\n this.mobileSpanContainer.innerHTML = '1';\n this.mobilecurrentPageContainer.innerHTML = '1';\n this.mobilenumberContainer.innerHTML = '―――――';\n this.mobileScrollerContainer.style.cssFloat = 'right';\n this.mobileScrollerContainer.style.width = '40px';\n this.mobileScrollerContainer.style.height = '32px';\n this.mobileScrollerContainer.style.zIndex = '100';\n this.mobilePageNoContainer.style.width = '120px';\n this.mobilePageNoContainer.style.height = '100px';\n this.mobilePageNoContainer.style.zIndex = '100';\n this.mobilePageNoContainer.style.position = 'fixed';\n this.mobileScrollerContainer.addEventListener('touchstart', this.mobileScrollContainerDown.bind(this));\n this.mobileScrollerContainer.addEventListener('touchend', this.mobileScrollContainerEnd.bind(this));\n this.mobileScrollerContainer.style.display = 'none';\n };\n /**\n * @private\n * @param {string} documentData - file name or base64 string.\n * @param {string} password - password of the PDF document.\n * @returns {void}\n */\n PdfViewerBase.prototype.initiatePageRender = function (documentData, password) {\n this.loadedData = documentData;\n this.documentId = this.createGUID();\n if (this.viewerContainer) {\n this.viewerContainer.scrollTop = 0;\n }\n this.showLoadingIndicator(true);\n this.hashId = ' ';\n this.isFileName = false;\n this.saveDocumentInfo();\n if (this.pdfViewer.interactionMode === 'Pan') {\n this.initiatePanning();\n }\n documentData = this.checkDocumentData(documentData);\n this.setFileName();\n if (this.pdfViewer.downloadFileName) {\n this.downloadFileName = this.pdfViewer.downloadFileName;\n }\n else {\n this.downloadFileName = this.pdfViewer.fileName;\n }\n var jsonObject = this.constructJsonObject(documentData, password);\n this.createAjaxRequest(jsonObject, documentData, password);\n };\n /**\n * @private\n */\n PdfViewerBase.prototype.initiateLoadDocument = function (documentId, isFileName, fileName) {\n if (documentId) {\n this.documentId = documentId;\n }\n if (this.viewerContainer) {\n this.viewerContainer.scrollTop = 0;\n }\n this.showLoadingIndicator(true);\n this.hashId = ' ';\n this.isFileName = isFileName;\n this.saveDocumentInfo();\n if (this.pdfViewer.interactionMode === 'Pan') {\n this.initiatePanning();\n }\n this.setFileName();\n if (this.pdfViewer.fileName === null) {\n if (isFileName && fileName) {\n this.pdfViewer.fileName = fileName;\n this.jsonDocumentId = this.pdfViewer.fileName;\n }\n else {\n this.pdfViewer.fileName = 'undefined.pdf';\n this.jsonDocumentId = null;\n }\n }\n if (this.pdfViewer.downloadFileName) {\n this.downloadFileName = this.pdfViewer.downloadFileName;\n }\n else {\n this.downloadFileName = this.pdfViewer.fileName;\n }\n };\n /**\n * @private\n */\n PdfViewerBase.prototype.loadSuccess = function (documentDetails, password) {\n // eslint-disable-next-line\n var data = documentDetails;\n if (data) {\n if (typeof data !== 'object') {\n try {\n data = JSON.parse(data);\n }\n catch (error) {\n this.onControlError(500, data, this.pdfViewer.serverActionSettings.load);\n data = null;\n }\n }\n if (data) {\n while (typeof data !== 'object') {\n data = JSON.parse(data);\n // eslint-disable-next-line\n if (typeof parseInt(data) === 'number' && !isNaN(parseInt(data))) {\n // eslint-disable-next-line\n data = parseInt(data);\n break;\n }\n }\n if (data.StatusText && (data.StatusText === 'File Does not Exist')) {\n this.showLoadingIndicator(false);\n }\n // eslint-disable-next-line\n if (data.uniqueId === this.documentId || (typeof parseInt(data) === 'number' && !isNaN(parseInt(data)))) {\n this.pdfViewer.fireAjaxRequestSuccess(this.pdfViewer.serverActionSettings.load, data);\n this.requestSuccess(data, null, password);\n }\n }\n }\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.mobileScrollContainerDown = function (event) {\n this.ispageMoved = false;\n this.isThumb = true;\n if (this.isTextMarkupAnnotationModule()) {\n // eslint-disable-next-line max-len\n if (this.pdfViewer.annotationModule.textMarkupAnnotationModule.selectTextMarkupCurrentPage != null && (Browser.isDevice && !this.pdfViewer.enableDesktopMode)) {\n var pageNumber = this.pdfViewer.annotationModule.textMarkupAnnotationModule.selectTextMarkupCurrentPage;\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.selectTextMarkupCurrentPage = null;\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.clearAnnotationSelection(pageNumber);\n this.pdfViewer.toolbar.showToolbar(true);\n }\n }\n this.mobileScrollerContainer.addEventListener('touchmove', this.viewerContainerOnScroll.bind(this), true);\n };\n /**\n * @private\n * @param {MouseEvent} e - default mouse event.\n * @returns {PointModel} - retuns the bounds.\n */\n PdfViewerBase.prototype.relativePosition = function (e) {\n // eslint-disable-next-line\n var currentRect = this.viewerContainer.getBoundingClientRect();\n var left = e.clientX - currentRect.left;\n var top = e.clientY - currentRect.top;\n return { x: left, y: top };\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.setMaximumHeight = function (element) {\n // eslint-disable-next-line\n var currentRect = element.getBoundingClientRect();\n if ((!Browser.isDevice || this.pdfViewer.enableDesktopMode) || (currentRect && currentRect.height === 0)) {\n element.style.minHeight = '500px';\n }\n this.updateWidth();\n this.updateHeight();\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.applyViewerHeight = function (element) {\n // eslint-disable-next-line\n var currentRect = element.getBoundingClientRect();\n if ((Browser.isDevice && !this.pdfViewer.enableDesktopMode) && currentRect && currentRect.height === 0) {\n element.style.minHeight = '500px';\n }\n };\n /**\n * @private\n * @returns {void}\n */\n PdfViewerBase.prototype.updateWidth = function () {\n if (this.pdfViewer.width.toString() !== 'auto') {\n // eslint-disable-next-line\n this.pdfViewer.element.style.width = this.pdfViewer.width;\n }\n };\n /**\n * @private\n * @returns {void}\n */\n PdfViewerBase.prototype.updateHeight = function () {\n if (this.pdfViewer.height.toString() !== 'auto') {\n // eslint-disable-next-line\n this.pdfViewer.element.style.height = this.pdfViewer.height;\n }\n };\n /**\n * @private\n * @returns {void}\n */\n PdfViewerBase.prototype.updateViewerContainer = function () {\n var sideBarContentContainer = this.getElement('_sideBarContentContainer');\n if (sideBarContentContainer && sideBarContentContainer.style.display === 'none') {\n this.navigationPane.updateViewerContainerOnClose();\n }\n else if (sideBarContentContainer && sideBarContentContainer.style.display === 'block') {\n this.navigationPane.updateViewerContainerOnExpand();\n }\n else {\n this.updateViewerContainerSize();\n }\n // eslint-disable-next-line\n var toolbarModule = this.pdfViewer.toolbarModule;\n if (toolbarModule) {\n if (isBlazor()) {\n if (this.pdfViewer.enableToolbar || this.pdfViewer.enableAnnotationToolbar) {\n this.pdfViewer._dotnetInstance.invokeMethodAsync('RefreshToolbarItems');\n }\n }\n else {\n if (this.pdfViewer.enableToolbar) {\n toolbarModule.toolbar.refreshOverflow();\n }\n if (this.pdfViewer.enableAnnotationToolbar && toolbarModule.annotationToolbarModule) {\n toolbarModule.annotationToolbarModule.toolbar.refreshOverflow();\n }\n }\n }\n };\n PdfViewerBase.prototype.updateViewerContainerSize = function () {\n this.viewerContainer.style.width = this.pdfViewer.element.clientWidth + 'px';\n this.pageContainer.style.width = this.viewerContainer.offsetWidth + 'px';\n this.updateZoomValue();\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.mobileScrollContainerEnd = function (event) {\n if (!this.ispageMoved) {\n this.goToPagePopup.show();\n }\n this.isThumb = false;\n this.ispageMoved = false;\n this.mobileScrollerContainer.removeEventListener('touchmove', this.viewerContainerOnScroll.bind(this), true);\n this.mobilePageNoContainer.style.display = 'none';\n };\n /**\n * @private\n * @param {any} data - data.\n * @returns {boolean}\n */\n PdfViewerBase.prototype.checkRedirection = function (data) {\n var redirect = false;\n if (data && typeof (data) === 'object' && (data.redirectUrl || data.redirectUri || data.redirectUrl === \"\" || data.redirectUri === \"\")) {\n if (data.redirectUrl === \"\" || data.redirectUri === \"\") {\n redirect = true;\n }\n else {\n data.redirectUrl ? window.location.href = data.redirectUrl : window.location.href = data.redirectUri;\n }\n }\n else if (data && typeof (data) === 'string' && (data.includes('redirectUrl') || data.includes('redirectUri'))) {\n if (JSON.parse(data).redirectUrl === \"\" || JSON.parse(data).redirectUri === \"\") {\n redirect = true;\n }\n else {\n data.includes('redirectUrl') ? window.location.href = JSON.parse(data).redirectUrl : window.location.href = JSON.parse(data).redirectUri;\n }\n }\n return redirect;\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.createAjaxRequest = function (jsonObject, documentData, password) {\n var proxy = null;\n proxy = this;\n if (this.pdfViewer.serverActionSettings) {\n this.loadRequestHandler = new AjaxHandler(this.pdfViewer);\n this.loadRequestHandler.url = this.pdfViewer.serviceUrl + '/' + this.pdfViewer.serverActionSettings.load;\n this.loadRequestHandler.responseType = 'json';\n this.loadRequestHandler.mode = true;\n // eslint-disable-next-line\n jsonObject['action'] = 'Load';\n // eslint-disable-next-line\n jsonObject['elementId'] = this.pdfViewer.element.id;\n this.loadRequestHandler.send(jsonObject);\n // eslint-disable-next-line\n this.loadRequestHandler.onSuccess = function (result) {\n // eslint-disable-next-line\n var data = result.data;\n var redirect = proxy.checkRedirection(data);\n if (redirect) {\n proxy.showLoadingIndicator(false);\n }\n else {\n if (data) {\n if (typeof data !== 'object') {\n try {\n data = JSON.parse(data);\n }\n catch (error) {\n proxy.onControlError(500, data, this.pdfViewer.serverActionSettings.load);\n data = null;\n }\n }\n if (data) {\n while (typeof data !== 'object') {\n data = JSON.parse(data);\n // eslint-disable-next-line\n if (typeof parseInt(data) === 'number' && !isNaN(parseInt(data))) {\n // eslint-disable-next-line\n data = parseInt(data);\n break;\n }\n }\n // eslint-disable-next-line\n if (data.uniqueId === proxy.documentId || (typeof parseInt(data) === 'number' && !isNaN(parseInt(data)))) {\n proxy.updateFormFieldName(data);\n proxy.pdfViewer.fireAjaxRequestSuccess(this.pdfViewer.serverActionSettings.load, data);\n if (!isNullOrUndefined(data['isTaggedPdf']) && data['isTaggedPdf']) {\n proxy.isTaggedPdf = true;\n }\n proxy.requestSuccess(data, documentData, password);\n }\n }\n }\n else {\n proxy.showLoadingIndicator(false);\n proxy.openImportExportNotificationPopup(proxy.pdfViewer.localeObj.getConstant('Import PDF Failed'));\n }\n }\n };\n // eslint-disable-next-line\n this.loadRequestHandler.onFailure = function (result) {\n var statusString = result.status.toString().split('')[0];\n if (statusString === '4') {\n proxy.openNotificationPopup('Client error');\n }\n else {\n proxy.openNotificationPopup();\n }\n proxy.showLoadingIndicator(false);\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText, proxy.pdfViewer.serverActionSettings.load);\n };\n // eslint-disable-next-line\n this.loadRequestHandler.onError = function (result) {\n proxy.openNotificationPopup();\n proxy.showLoadingIndicator(false);\n // eslint-disable-next-line\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText, proxy.pdfViewer.serverActionSettings.load);\n };\n }\n };\n // EJ2-60380 - As of now, in form designer the element name is taken fromfield.ActualFieldName (with hypen) but for\n // Form fields it is taken from field.FieldName (without hypen).\n // For this reason when user taken the form feilds on button click, name of the form feilds are different with and without form designer module\n // eslint-disable-next-line\n PdfViewerBase.prototype.updateFormFieldName = function (data) {\n if (data && data.PdfRenderedFormFields && data.PdfRenderedFormFields.length > 0) {\n var field = void 0;\n for (var i = 0; i < data.PdfRenderedFormFields.length; i++) {\n field = data.PdfRenderedFormFields[parseInt(i.toString(), 10)];\n if (field) {\n if (field.ActualFieldName) {\n field.FieldName = field.ActualFieldName;\n }\n }\n }\n }\n };\n /**\n * @private\n * @param {string} errorString - The message to be displayed.\n * @returns {void}\n */\n PdfViewerBase.prototype.openNotificationPopup = function (errorString) {\n var _this = this;\n if (this.pdfViewer.showNotificationDialog) {\n if (errorString === 'Client error') {\n if (isBlazor()) {\n var promise = this.pdfViewer._dotnetInstance.invokeMethodAsync('GetLocaleText', 'PdfViewer_Clienterror');\n promise.then(function (value) {\n _this.textLayer.createNotificationPopup(value);\n });\n }\n else {\n this.textLayer.createNotificationPopup(this.pdfViewer.localeObj.getConstant('Client error'));\n }\n }\n else {\n if (isBlazor()) {\n var promise = this.pdfViewer._dotnetInstance.invokeMethodAsync('GetLocaleText', 'PdfViewer_Servererror');\n promise.then(function (value) {\n _this.textLayer.createNotificationPopup(value);\n });\n }\n else {\n this.textLayer.createNotificationPopup(this.pdfViewer.localeObj.getConstant('Server error'));\n }\n }\n if (this.getElement('_notify')) {\n this.getElement('_notify').classList.add('e-pv-notification-large-content');\n }\n }\n };\n /**\n * @private\n * @param {string} errorString - The message to be shown.\n * @returns {void}\n */\n PdfViewerBase.prototype.showNotificationPopup = function (errorString) {\n if (!this.pdfViewer.showNotificationDialog && errorString !== '') {\n this.textLayer.createNotificationPopup(errorString);\n if (this.getElement('_notify')) {\n this.getElement('_notify').classList.add('e-pv-notification-large-content');\n }\n }\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.requestSuccess = function (data, documentData, password) {\n if (data && data.pageCount !== undefined) {\n if (isBlazor() && this.isPassword) {\n this.isPassword = false;\n this.isPasswordAvailable = false;\n this.pdfViewer._dotnetInstance.invokeMethodAsync('ClosePasswordDialog');\n }\n if (password && password != '') {\n this.passwordData = password;\n }\n this.pdfViewer.allowServerDataBinding = false;\n this.pageCount = data.pageCount;\n this.pdfViewer.pageCount = data.pageCount;\n this.hashId = data.hashId;\n this.documentLiveCount = data.documentLiveCount;\n this.isAnnotationCollectionRemoved = false;\n this.saveDocumentHashData();\n this.saveFormfieldsData(data);\n this.pdfViewer.allowServerDataBinding = true;\n this.digitalSignaturePages = data.digitalSignaturePages;\n this.pageRender(data);\n // eslint-disable-next-line\n var pageData = { pageCount: data.pageCount, pageSizes: data.pageSizes };\n window.sessionStorage.setItem(this.documentId + '_pagedata', JSON.stringify(pageData));\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n this.mobileScrollerContainer.style.display = '';\n // eslint-disable-next-line\n var toolbarHeight = this.pdfViewer.toolbarModule ? this.toolbarHeight : 0;\n this.mobileScrollerContainer.style.top = (toolbarHeight) + 'px';\n }\n this.restrictionList = data.RestrictionSummary;\n this.RestrictionEnabled(this.restrictionList, false);\n }\n else {\n this.pageCount = 0;\n this.currentPageNumber = 0;\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n this.mobileScrollerContainer.style.display = 'none';\n }\n if (data === 4) {\n if (!isBlazor()) {\n // 4 is error code for encrypted document.\n this.renderPasswordPopup(documentData, password);\n }\n }\n else if (data === 3) {\n if (!isBlazor()) {\n // 3 is error code for corrupted document.\n this.renderCorruptPopup();\n }\n }\n if (this.pdfViewer.toolbarModule) {\n this.pdfViewer.toolbarModule.updateToolbarItems();\n }\n }\n // eslint-disable-next-line\n var annotationModule = this.pdfViewer.annotationModule;\n // eslint-disable-next-line max-len\n if (annotationModule && annotationModule.textMarkupAnnotationModule && annotationModule.textMarkupAnnotationModule.isEnableTextMarkupResizer(annotationModule.textMarkupAnnotationModule.currentTextMarkupAddMode)) {\n annotationModule.textMarkupAnnotationModule.createAnnotationSelectElement();\n }\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.RestrictionEnabled = function (restrictionSummary, isEnable) {\n if (restrictionSummary) {\n for (var i = 0; i < restrictionSummary.length; i++) {\n this.EnableRestriction(restrictionSummary[parseInt(i.toString(), 10)], isEnable);\n if (!isBlazor()) {\n if (this.pdfViewer.toolbarModule) {\n this.pdfViewer.toolbarModule.DisableToolbarItems(restrictionSummary[parseInt(i.toString(), 10)], isEnable);\n }\n }\n else {\n if (this.pdfViewer.toolbarModule) {\n this.pdfViewer._dotnetInstance.invokeMethodAsync('RestrictToolbarItems', restrictionSummary, isEnable);\n }\n }\n }\n }\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.EnableRestriction = function (restrictionSummary, isEnable) {\n switch (restrictionSummary) {\n case 'Print':\n this.pdfViewer.enablePrint = isEnable;\n break;\n case 'CopyContent':\n this.pdfViewer.enableTextSelection = isEnable;\n break;\n case 'FillFields':\n this.pdfViewer.enableFormFields = isEnable;\n this.enableFormFieldButton(isEnable);\n break;\n case 'EditAnnotations':\n this.pdfViewer.enableAnnotation = isEnable;\n break;\n }\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.pageRender = function (data) {\n this.document = null;\n this.passwordDialogReset();\n if (this.passwordPopup) {\n this.passwordPopup.hide();\n }\n var pageIndex = 0;\n this.initPageDiv(data);\n this.currentPageNumber = pageIndex + 1;\n this.pdfViewer.currentPageNumber = pageIndex + 1;\n this.previousZoomValue = this.pdfViewer.zoomValue;\n var isZoomMode = false;\n if (this.pdfViewer.magnificationModule) {\n this.pdfViewer.magnificationModule.isAutoZoom = true;\n if (this.pdfViewer.zoomValue && this.pdfViewer.zoomValue > 0) {\n if (this.pdfViewer.zoomValue !== 100) {\n isZoomMode = true;\n }\n this.isInitialPageMode = true;\n this.pdfViewer.magnification.zoomTo(this.pdfViewer.zoomValue);\n }\n if (this.pdfViewer.zoomMode === 'FitToWidth') {\n this.isInitialPageMode = true;\n this.pdfViewer.magnificationModule.fitToWidth();\n }\n else if (this.pdfViewer.zoomMode === 'FitToPage') {\n this.isInitialPageMode = true;\n this.pdfViewer.magnificationModule.fitToPage();\n }\n this.documentLoaded = true;\n this.pdfViewer.magnificationModule.isInitialLoading = true;\n this.onWindowResize();\n this.documentLoaded = false;\n this.pdfViewer.magnificationModule.isInitialLoading = false;\n }\n this.isDocumentLoaded = true;\n // eslint-disable-next-line\n var viewPortWidth = 816;\n // eslint-disable-next-line radix\n viewPortWidth = parseInt(viewPortWidth);\n var pageWidth = this.pageSize[parseInt(pageIndex.toString(), 10)].width;\n if (this.renderedPagesList.indexOf(pageIndex) === -1 && !isZoomMode) {\n this.createRequestForRender(pageIndex);\n var pageNumber = pageIndex + 1;\n var renderLimit = this.pdfViewer.initialRenderPages <= this.pageCount ? (this.pdfViewer.initialRenderPages > this.pageRenderCount) ? this.pdfViewer.initialRenderPages : 2 : this.pageCount;\n for (var i = 1; i < renderLimit; i++) {\n this.createRequestForRender(i);\n pageNumber = pageNumber + 1;\n }\n if (this.pageSize[parseInt(pageNumber.toString(), 10)]) {\n var pageTop = this.getPageTop(pageNumber);\n var viewerHeight = this.viewerContainer.clientHeight;\n while (viewerHeight > pageTop) {\n if (this.pageSize[parseInt(pageNumber.toString(), 10)]) {\n this.renderPageElement(pageNumber);\n this.createRequestForRender(pageNumber);\n pageTop = this.getPageTop(pageNumber);\n pageNumber = pageNumber + 1;\n }\n else {\n break;\n }\n }\n }\n }\n this.showLoadingIndicator(false);\n if (!isBlazor()) {\n if (this.pdfViewer.toolbarModule) {\n this.pdfViewer.toolbarModule.uploadedDocumentName = null;\n this.pdfViewer.toolbarModule.updateCurrentPage(this.currentPageNumber);\n this.pdfViewer.toolbarModule.updateToolbarItems();\n if (this.pdfViewer.toolbar && this.pdfViewer.toolbar.annotationToolbarModule) {\n this.pdfViewer.toolbar.annotationToolbarModule.enableAnnotationAddTools(true);\n }\n // eslint-disable-next-line max-len\n this.viewerContainer.setAttribute('aria-labelledby', this.pdfViewer.element.id + '_pageDiv_' + (this.currentPageNumber - 1));\n }\n }\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n this.mobileSpanContainer.innerHTML = this.currentPageNumber.toString();\n this.mobilecurrentPageContainer.innerHTML = this.currentPageNumber.toString();\n }\n };\n PdfViewerBase.prototype.renderPasswordPopup = function (documentData, password) {\n var _this = this;\n if (!isBlazor()) {\n if (!this.isPasswordAvailable) {\n if (this.isFileName) {\n this.document = documentData;\n }\n else {\n this.document = 'data:application/pdf;base64,' + documentData;\n }\n this.isPasswordAvailable = true;\n this.createPasswordPopup();\n this.pdfViewer.fireDocumentLoadFailed(true, null);\n this.passwordPopup.show();\n }\n else {\n this.pdfViewer.fireDocumentLoadFailed(true, password);\n this.promptElement.classList.add('e-pv-password-error');\n this.promptElement.textContent = this.pdfViewer.localeObj.getConstant('Invalid Password');\n this.promptElement.focus();\n if (this.isFileName) {\n this.document = documentData;\n }\n else {\n this.document = 'data:application/pdf;base64,' + documentData;\n }\n this.passwordPopup.show();\n }\n }\n else {\n // eslint-disable-next-line\n var promptElement_1 = document.getElementById(this.pdfViewer.element.id + '_prompt');\n var promise = this.pdfViewer._dotnetInstance.invokeMethodAsync('GetLocaleText', 'PdfViewer_EnterPassword');\n promise.then(function (value) {\n promptElement_1.textContent = value;\n });\n // eslint-disable-next-line\n var passwordInput_1 = document.querySelector('#' + this.pdfViewer.element.id + '_password_input');\n passwordInput_1.addEventListener('keyup', function () {\n if (passwordInput_1.value === '') {\n _this.passwordDialogReset();\n }\n });\n passwordInput_1.addEventListener('focus', function () {\n passwordInput_1.parentElement.classList.add('e-input-focus');\n });\n passwordInput_1.addEventListener('blur', function () {\n passwordInput_1.parentElement.classList.remove('e-input-focus');\n });\n if (!this.isPasswordAvailable) {\n if (this.isFileName) {\n this.document = documentData;\n }\n else {\n this.document = 'data:application/pdf;base64,' + documentData;\n }\n this.isPasswordAvailable = true;\n this.pdfViewer.fireDocumentLoadFailed(true, null);\n }\n else {\n this.pdfViewer.fireDocumentLoadFailed(true, password);\n promptElement_1.classList.add('e-pv-password-error');\n var promise_1 = this.pdfViewer._dotnetInstance.invokeMethodAsync('GetLocaleText', 'PdfViewer_InvalidPassword');\n promise_1.then(function (value) {\n promptElement_1.textContent = value;\n });\n promptElement_1.focus();\n if (this.isFileName) {\n this.document = documentData;\n }\n else {\n this.document = 'data:application/pdf;base64,' + documentData;\n }\n }\n this.pdfViewer._dotnetInstance.invokeMethodAsync('OpenPasswordDialog');\n }\n };\n PdfViewerBase.prototype.renderCorruptPopup = function () {\n this.pdfViewer.fireDocumentLoadFailed(false, null);\n this.documentId = null;\n if (this.pdfViewer.showNotificationDialog) {\n if (!isBlazor()) {\n this.createCorruptedPopup();\n this.corruptPopup.show();\n }\n else {\n this.pdfViewer._dotnetInstance.invokeMethodAsync('OpenCorruptedDialog');\n }\n }\n };\n PdfViewerBase.prototype.constructJsonObject = function (documentData, password) {\n var jsonObject;\n if (password) {\n this.isPasswordAvailable = true;\n this.passwordData = password;\n // eslint-disable-next-line max-len\n jsonObject = { document: documentData, password: password, zoomFactor: \"1\", isFileName: this.isFileName.toString(), uniqueId: this.documentId, showDigitalSignatureAppearance: this.pdfViewer.showDigitalSignatureAppearance };\n }\n else {\n this.isPasswordAvailable = false;\n this.passwordData = '';\n jsonObject = { document: documentData, zoomFactor: \"1\", isFileName: this.isFileName.toString(), uniqueId: this.documentId, hideEmptyDigitalSignatureFields: this.pdfViewer.hideEmptyDigitalSignatureFields, showDigitalSignatureAppearance: this.pdfViewer.showDigitalSignatureAppearance };\n }\n return jsonObject;\n };\n PdfViewerBase.prototype.checkDocumentData = function (documentData) {\n var base64String = documentData.split('base64,')[1];\n if (base64String === undefined) {\n this.isFileName = true;\n this.jsonDocumentId = documentData;\n if (this.pdfViewer.fileName === null) {\n // eslint-disable-next-line max-len\n var documentStringArray = (documentData.indexOf('\\\\') !== -1) ? documentData.split('\\\\') : documentData.split('/');\n this.pdfViewer.fileName = documentStringArray[documentStringArray.length - 1];\n this.jsonDocumentId = this.pdfViewer.fileName;\n base64String = documentData;\n }\n }\n else {\n this.jsonDocumentId = null;\n }\n return base64String;\n };\n PdfViewerBase.prototype.setFileName = function () {\n if (this.pdfViewer.fileName === null) {\n if (this.pdfViewer.toolbarModule && this.pdfViewer.toolbarModule.uploadedDocumentName) {\n this.pdfViewer.fileName = this.pdfViewer.toolbarModule.uploadedDocumentName;\n this.jsonDocumentId = this.pdfViewer.fileName;\n }\n else {\n this.pdfViewer.fileName = 'undefined.pdf';\n this.jsonDocumentId = null;\n }\n }\n };\n PdfViewerBase.prototype.saveDocumentInfo = function () {\n window.sessionStorage.setItem('currentDocument', this.documentId);\n window.sessionStorage.setItem('serviceURL', this.pdfViewer.serviceUrl);\n if (this.pdfViewer.serverActionSettings) {\n window.sessionStorage.setItem('unload', this.pdfViewer.serverActionSettings.unload);\n }\n };\n PdfViewerBase.prototype.saveDocumentHashData = function () {\n var hashId = '';\n if (Browser.isIE || Browser.info.name === 'edge') {\n hashId = encodeURI(this.hashId);\n }\n else {\n hashId = this.hashId;\n }\n window.sessionStorage.setItem('hashId', hashId);\n if (this.documentLiveCount) {\n window.sessionStorage.setItem('documentLiveCount', this.documentLiveCount.toString());\n }\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.saveFormfieldsData = function (data) {\n this.pdfViewer.isFormFieldDocument = false;\n this.enableFormFieldButton(false);\n if (data && data.PdfRenderedFormFields && data.PdfRenderedFormFields.length > 0) {\n if (this.formfieldvalue) {\n if (this.pdfViewer.formFieldsModule) {\n this.setItemInSessionStorage(this.formfieldvalue, '_formfields');\n }\n this.formfieldvalue = null;\n }\n else if (this.pdfViewer.formFieldsModule) {\n for (var i = 0; i < data.PdfRenderedFormFields.length; i++) {\n if (data.PdfRenderedFormFields[parseInt(i.toString(), 10)].FieldName == '') {\n data.PdfRenderedFormFields.splice(i, 1);\n }\n }\n this.setItemInSessionStorage(data.PdfRenderedFormFields, '_formfields');\n }\n if (this.pdfViewer.enableFormFields && this.pdfViewer.formFieldsModule) {\n this.pdfViewer.formFieldsModule.formFieldCollections();\n }\n if (this.pdfViewer.formFieldCollections.length > 0) {\n this.pdfViewer.isFormFieldDocument = true;\n this.enableFormFieldButton(true);\n }\n }\n };\n /**\n * @param {boolean} isEnable - Enable or disable the toolbar itema.\n * @returns {void}\n * @private\n */\n PdfViewerBase.prototype.enableFormFieldButton = function (isEnable) {\n if (isEnable) {\n this.pdfViewer.isFormFieldDocument = true;\n }\n if (this.pdfViewer.toolbarModule && this.pdfViewer.toolbarModule.submitItem) {\n this.pdfViewer.toolbarModule.toolbar.enableItems(this.pdfViewer.toolbarModule.submitItem.parentElement, isEnable);\n }\n };\n PdfViewerBase.prototype.updateWaitingPopup = function (pageNumber) {\n if (this.pageSize[parseInt(pageNumber.toString(), 10)].top != null) {\n // eslint-disable-next-line max-len\n var pageCurrentRect = this.getElement('_pageDiv_' + pageNumber).getBoundingClientRect();\n var waitingPopup = this.getElement('_pageDiv_' + pageNumber).firstChild.firstChild;\n if (pageCurrentRect.top < 0) {\n if (this.toolbarHeight + (this.viewerContainer.clientHeight / 2) - pageCurrentRect.top < pageCurrentRect.height) {\n waitingPopup.style.top = ((this.viewerContainer.clientHeight / 2) - pageCurrentRect.top) - this.toolbarHeight + 'px';\n }\n else {\n if (this.toolbarHeight + (pageCurrentRect.bottom / 2) - pageCurrentRect.top < pageCurrentRect.height) {\n waitingPopup.style.top = ((pageCurrentRect.bottom / 2) - pageCurrentRect.top) - this.toolbarHeight + 'px';\n }\n }\n }\n else {\n waitingPopup.style.top = this.viewerContainer.clientHeight / 2 + 'px';\n }\n if ((Browser.isDevice && !this.pdfViewer.enableDesktopMode) && pageCurrentRect.width > this.viewerContainer.clientWidth) {\n waitingPopup.style.left = (this.viewerContainer.clientWidth / 2) + (this.viewerContainer.scrollLeft) + 'px';\n }\n else if (this.getZoomFactor() > 1.25 && pageCurrentRect.width > this.viewerContainer.clientWidth) {\n waitingPopup.style.left = this.viewerContainer.clientWidth / 2 + 'px';\n }\n else {\n waitingPopup.style.left = pageCurrentRect.width / 2 + 'px';\n }\n }\n };\n /**\n * @private\n * @returns {number} - returned the page value.\n */\n PdfViewerBase.prototype.getActivePage = function (isPageNumber) {\n if (this.activeElements && !isNullOrUndefined(this.activeElements.activePageID)) {\n if (isPageNumber) {\n return this.activeElements.activePageID + 1;\n }\n else {\n return this.activeElements.activePageID;\n }\n }\n else {\n if (isPageNumber) {\n return this.currentPageNumber;\n }\n else {\n return this.currentPageNumber - 1;\n }\n }\n };\n PdfViewerBase.prototype.createWaitingPopup = function (pageNumber) {\n // eslint-disable-next-line max-len\n var waitingPopup = document.getElementById(this.pdfViewer.element.id + '_pageDiv_' + pageNumber);\n if (waitingPopup) {\n createSpinner({ target: waitingPopup });\n this.setLoaderProperties(waitingPopup);\n }\n };\n PdfViewerBase.prototype.showLoadingIndicator = function (isShow) {\n var waitingPopup = this.getElement('_loadingIndicator');\n if (waitingPopup) {\n if (isShow) {\n waitingPopup.style.display = 'block';\n showSpinner(waitingPopup);\n }\n else {\n waitingPopup.style.display = 'none';\n hideSpinner(waitingPopup);\n }\n }\n };\n PdfViewerBase.prototype.showPageLoadingIndicator = function (pageIndex, isShow) {\n var waitingPopup = this.getElement('_pageDiv_' + pageIndex);\n if (waitingPopup != null) {\n if (isShow) {\n showSpinner(waitingPopup);\n }\n else {\n hideSpinner(waitingPopup);\n }\n this.updateWaitingPopup(pageIndex);\n }\n };\n /**\n * @param {boolean} isShow - Show or hide print loading indicator.\n * @returns {void}\n * @private\n */\n PdfViewerBase.prototype.showPrintLoadingIndicator = function (isShow) {\n var printWaitingPopup = this.getElement('_printLoadingIndicator');\n if (printWaitingPopup != null) {\n if (isShow) {\n this.printMainContainer.style.display = 'block';\n showSpinner(printWaitingPopup);\n }\n else {\n this.printMainContainer.style.display = 'none';\n hideSpinner(printWaitingPopup);\n }\n }\n };\n PdfViewerBase.prototype.setLoaderProperties = function (element) {\n var spinnerElement = element.firstChild.firstChild.firstChild;\n if (spinnerElement) {\n spinnerElement.style.height = '48px';\n spinnerElement.style.width = '48px';\n spinnerElement.style.transformOrigin = '24px 24px 24px';\n }\n };\n /**\n * @param {number} pageNumber - Specify the pageNumber.\n * @returns {void}\n * @private\n */\n PdfViewerBase.prototype.updateScrollTop = function (pageNumber) {\n var _this = this;\n // eslint-disable-next-line\n if (this.pageSize[pageNumber] != null) {\n this.renderElementsVirtualScroll(pageNumber);\n this.viewerContainer.scrollTop = this.getPageTop(pageNumber);\n if (this.renderedPagesList.indexOf(pageNumber) === -1) {\n this.createRequestForRender(pageNumber);\n }\n setTimeout(function () {\n var currentPageNumber = pageNumber + 1;\n if (currentPageNumber !== _this.currentPageNumber) {\n _this.pdfViewer.currentPageNumber = currentPageNumber;\n _this.currentPageNumber = currentPageNumber;\n if (_this.pdfViewer.toolbarModule) {\n _this.pdfViewer.toolbarModule.updateCurrentPage(currentPageNumber);\n }\n }\n }, 100);\n }\n };\n /**\n * @private\n * @returns {number} - Returns the zoom factor value.\n */\n PdfViewerBase.prototype.getZoomFactor = function () {\n if (this.pdfViewer.magnificationModule) {\n return this.pdfViewer.magnificationModule.zoomFactor;\n }\n else {\n // default value\n return 1;\n }\n };\n /**\n * @private\n * @returns {boolean} - Returns whether the pinch zoom is performed or not.\n */\n PdfViewerBase.prototype.getPinchZoomed = function () {\n if (this.pdfViewer.magnificationModule) {\n return this.pdfViewer.magnificationModule.isPinchZoomed;\n }\n else {\n // default value\n return false;\n }\n };\n /**\n * @private\n * @returns {boolean} -Returns whether the zoom is performed or not.\n */\n PdfViewerBase.prototype.getMagnified = function () {\n if (this.pdfViewer.magnificationModule) {\n return this.pdfViewer.magnificationModule.isMagnified;\n }\n else {\n // default value\n return false;\n }\n };\n PdfViewerBase.prototype.getPinchScrolled = function () {\n if (this.pdfViewer.magnificationModule) {\n return this.pdfViewer.magnificationModule.isPinchScrolled;\n }\n else {\n // default value\n return false;\n }\n };\n PdfViewerBase.prototype.getPagesPinchZoomed = function () {\n if (this.pdfViewer.magnificationModule) {\n return this.pdfViewer.magnificationModule.isPagePinchZoomed;\n }\n else {\n // default value\n return false;\n }\n };\n PdfViewerBase.prototype.getPagesZoomed = function () {\n if (this.pdfViewer.magnificationModule) {\n return this.pdfViewer.magnificationModule.isPagesZoomed;\n }\n else {\n // default value\n return false;\n }\n };\n PdfViewerBase.prototype.getRerenderCanvasCreated = function () {\n if (this.pdfViewer.magnificationModule) {\n return this.pdfViewer.magnificationModule.isRerenderCanvasCreated;\n }\n else {\n // default value\n return false;\n }\n };\n /**\n * @private\n * @returns {string} - retrun the docuumentid.\n */\n PdfViewerBase.prototype.getDocumentId = function () {\n return this.documentId;\n };\n /**\n * @private\n * @returns {void}\n */\n PdfViewerBase.prototype.download = function () {\n if (this.pageCount > 0) {\n this.createRequestForDownload();\n }\n };\n /**\n * @private\n * @returns {promise} - Returns the blob object.\n */\n PdfViewerBase.prototype.saveAsBlob = function () {\n var _this = this;\n if (this.pageCount > 0) {\n return new Promise(function (resolve, reject) {\n _this.saveAsBlobRequest().then(function (value) {\n resolve(value);\n });\n });\n }\n return null;\n };\n PdfViewerBase.prototype.saveAsBlobRequest = function () {\n var _this = this;\n var proxy = null;\n proxy = this;\n var promise = new Promise(function (resolve, reject) {\n // eslint-disable-next-line\n var jsonObject = proxy.constructJsonDownload();\n _this.dowonloadRequestHandler = new AjaxHandler(_this.pdfViewer);\n _this.dowonloadRequestHandler.url = proxy.pdfViewer.serviceUrl + '/' + proxy.pdfViewer.serverActionSettings.download;\n _this.dowonloadRequestHandler.responseType = 'text';\n _this.dowonloadRequestHandler.send(jsonObject);\n // eslint-disable-next-line\n _this.dowonloadRequestHandler.onSuccess = function (result) {\n // eslint-disable-next-line\n var data = result.data;\n if (data) {\n if (typeof data === 'object') {\n data = JSON.parse(data);\n }\n if (typeof data !== 'object' && data.indexOf('data:application/pdf') === -1) {\n proxy.onControlError(500, data, proxy.pdfViewer.serverActionSettings.download);\n data = null;\n }\n if (data) {\n proxy.pdfViewer.fireAjaxRequestSuccess(proxy.pdfViewer.serverActionSettings.download, data);\n var blobUrl = proxy.createBlobUrl(data.split('base64,')[1], 'application/pdf');\n resolve(blobUrl);\n }\n }\n };\n // eslint-disable-next-line\n _this.dowonloadRequestHandler.onFailure = function (result) {\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText, proxy.pdfViewer.serverActionSettings.download);\n };\n // eslint-disable-next-line\n _this.dowonloadRequestHandler.onError = function (result) {\n proxy.openNotificationPopup();\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText, proxy.pdfViewer.serverActionSettings.download);\n };\n });\n return promise;\n };\n /**\n * @param {boolean} isTriggerEvent - check to trigger the event.\n * @returns {void}\n * @private\n */\n PdfViewerBase.prototype.clear = function (isTriggerEvent) {\n var proxy = this;\n var pdfViewer = proxy.pdfViewer;\n var printModule = pdfViewer.printModule;\n var textSearchModule = pdfViewer.textSearchModule;\n var bookmarkViewModule = pdfViewer.bookmarkViewModule;\n var thumbnailViewModule = pdfViewer.thumbnailView;\n var annotationModule = pdfViewer.annotation;\n var magnificationModule = pdfViewer.magnificationModule;\n var textSelectionModule = pdfViewer.textSelectionModule;\n var formFieldsModule = pdfViewer.formFieldsModule;\n var signatureModule = proxy.signatureModule;\n proxy.isPasswordAvailable = false;\n proxy.isDocumentLoaded = false;\n proxy.isInitialLoaded = false;\n proxy.isImportAction = false;\n proxy.annotationPageList = [];\n proxy.annotationComments = null;\n pdfViewer.annotationCollection = [];\n pdfViewer.signatureCollection = [];\n pdfViewer.formFieldCollection = [];\n proxy.isAnnotationCollectionRemoved = false;\n proxy.documentAnnotationCollections = null;\n proxy.isDrawnCompletely = false;\n proxy.annotationRenderredList = [];\n proxy.isImportAction = false;\n proxy.isImportedAnnotation = false;\n proxy.importedAnnotation = [];\n proxy.isStorageExceed = false;\n proxy.annotationStorage = {};\n proxy.formFieldStorage = {};\n proxy.downloadCollections = {};\n proxy.annotationEvent = null;\n proxy.highestWidth = 0;\n proxy.highestHeight = 0;\n proxy.requestLists = [];\n proxy.tilerequestLists = [];\n proxy.isToolbarInkClicked = false;\n pdfViewer.formFieldCollections = [];\n proxy.passwordData = '';\n proxy.isFocusField = false;\n proxy.focusField = [];\n proxy.updateDocumentEditedProperty(false);\n pdfViewer.clipboardData.clipObject = {};\n proxy.isTaggedPdf = false;\n if (pdfViewer.formDesignerModule) {\n pdfViewer.formDesignerModule.formFieldIndex = 0;\n if (proxy.activeElements) {\n pdfViewer.clearSelection(proxy.activeElements.activePageID);\n }\n pdfViewer.zIndexTable = [];\n }\n proxy.initiateTextSelectMode();\n proxy.RestrictionEnabled(proxy.restrictionList, true);\n proxy.restrictionList = null;\n if (!Browser.isDevice || pdfViewer.enableDesktopMode) {\n if (proxy.navigationPane.sideBarToolbar) {\n proxy.navigationPane.clear();\n }\n }\n if (!isBlazor() && Browser.isDevice || !pdfViewer.enableDesktopMode) {\n proxy.navigationPane.clear();\n }\n if (thumbnailViewModule) {\n thumbnailViewModule.clear();\n }\n if (bookmarkViewModule) {\n bookmarkViewModule.clear();\n }\n if (magnificationModule) {\n magnificationModule.isMagnified = false;\n magnificationModule.clearIntervalTimer();\n }\n if (textSelectionModule) {\n textSelectionModule.clearTextSelection();\n }\n if (textSearchModule) {\n textSearchModule.resetTextSearch();\n }\n if (annotationModule) {\n annotationModule.clear();\n annotationModule.initializeCollection();\n }\n if (formFieldsModule) {\n formFieldsModule.readOnlyCollection = [];\n formFieldsModule.signatureFieldCollection = [];\n formFieldsModule.renderedPageList = [];\n formFieldsModule.currentTarget = null;\n }\n if (signatureModule) {\n signatureModule.signaturecollection = [];\n signatureModule.outputcollection = [];\n signatureModule.signAnnotationIndex = [];\n }\n if (proxy.pageSize) {\n proxy.pageSize = [];\n }\n if (proxy.renderedPagesList) {\n proxy.renderedPagesList = [];\n }\n if (proxy.accessibilityTagsCollection) {\n proxy.accessibilityTagsCollection = [];\n }\n if (proxy.pageRequestListForAccessibilityTags) {\n proxy.pageRequestListForAccessibilityTags = [];\n }\n if (proxy.pageContainer) {\n while (proxy.pageContainer.hasChildNodes()) {\n proxy.pageContainer.removeChild(proxy.pageContainer.lastChild);\n }\n }\n if (proxy.pageCount > 0) {\n proxy.unloadDocument(proxy);\n // eslint-disable-next-line\n proxy.textLayer.characterBound = new Array();\n proxy.loadRequestHandler && proxy.loadRequestHandler.clear();\n proxy.virtualLoadRequestHandler && proxy.virtualLoadRequestHandler.clear();\n proxy.pageRequestHandler && proxy.pageRequestHandler.clear();\n proxy.dowonloadRequestHandler && proxy.dowonloadRequestHandler.clear();\n proxy.importAnnotationRequestHandler && proxy.importAnnotationRequestHandler.clear();\n proxy.exportAnnotationRequestHandler && proxy.exportAnnotationRequestHandler.clear();\n proxy.importFormFieldsRequestHandler && proxy.importFormFieldsRequestHandler.clear();\n proxy.exportFormFieldsRequestHandler && proxy.exportFormFieldsRequestHandler.clear();\n if (printModule && printModule.printRequestHandler) {\n printModule.printRequestHandler.clear();\n }\n }\n proxy.windowSessionStorageClear();\n if (proxy.pinchZoomStorage) {\n proxy.pinchZoomStorage = [];\n }\n if ((proxy.previousZoomValue || proxy.previousZoomValue === 0) && proxy.previousZoomValue !== pdfViewer.zoomValue) {\n pdfViewer.zoomValue = proxy.previousZoomValue;\n }\n if (isTriggerEvent && proxy.pageCount > 0) {\n pdfViewer.fireDocumentUnload(this.pdfViewer.fileName);\n }\n this.pdfViewer.fileName = null;\n };\n /**\n * @private\n * @returns {void}\n */\n PdfViewerBase.prototype.destroy = function () {\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n this.pdfViewer.element.classList.remove('e-pv-mobile-view');\n }\n this.unWireEvents();\n this.clear(false);\n this.pageContainer.parentNode ? this.pageContainer.parentNode.removeChild(this.pageContainer) : null;\n this.viewerContainer.parentNode ? this.viewerContainer.parentNode.removeChild(this.viewerContainer) : null;\n if (this.contextMenuModule) {\n var contextMenuElement = this.contextMenuModule.contextMenuElement;\n contextMenuElement && contextMenuElement.ej2_instances && contextMenuElement.ej2_instances.length > 0 ? this.contextMenuModule.destroy() : null;\n }\n if (this.pdfViewer.toolbarModule) {\n this.navigationPane.destroy();\n }\n var measureElement = document.getElementById('measureElement');\n if (measureElement) {\n measureElement = undefined;\n }\n };\n /**\n * @param {PdfViewerBase} proxy - PdfviewerBase class.\n * @returns {void}\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.unloadDocument = function (proxy) {\n var documentId = '';\n if (Browser.isIE || Browser.info.name === 'edge') {\n documentId = decodeURI(window.sessionStorage.getItem('hashId'));\n }\n else {\n documentId = proxy.hashId ? proxy.hashId : window.sessionStorage.getItem('hashId');\n }\n var documentLiveCount = window.sessionStorage.getItem('documentLiveCount');\n if (documentId !== null) {\n // eslint-disable-next-line max-len\n var jsonObject = { hashId: documentId, documentLiveCount: documentLiveCount, action: 'Unload', elementId: proxy.pdfViewer.element.id };\n var actionName = window.sessionStorage.getItem('unload');\n if (window.sessionStorage.getItem('serviceURL') && window.sessionStorage.getItem('serviceURL') !== 'undefined') {\n try {\n // eslint-disable-next-line\n var browserSupportsKeepalive = 'keepalive' in new Request('');\n if (browserSupportsKeepalive) {\n // eslint-disable-next-line\n var headerValue = this.setUnloadRequestHeaders();\n var credentialsData = this.pdfViewer.ajaxRequestSettings.withCredentials ? 'include' : 'omit';\n fetch(window.sessionStorage.getItem('serviceURL') + '/' + actionName, {\n method: 'POST',\n credentials: credentialsData,\n headers: headerValue,\n body: JSON.stringify(jsonObject)\n });\n }\n }\n catch (error) {\n this.unloadRequestHandler = new AjaxHandler(this.pdfViewer);\n this.unloadRequestHandler.send(jsonObject);\n }\n }\n else if (isBlazor()) {\n this.clearCache(actionName, jsonObject, proxy);\n }\n }\n if (this.pdfViewer.magnificationModule) {\n this.pdfViewer.magnificationModule.zoomFactor = 1;\n }\n this.formFieldCollection = [];\n this.textrequestLists = [];\n window.sessionStorage.removeItem('hashId');\n window.sessionStorage.removeItem('documentLiveCount');\n if (this.documentId) {\n window.sessionStorage.removeItem(this.documentId + '_formfields');\n window.sessionStorage.removeItem(this.documentId + '_formDesigner');\n window.sessionStorage.removeItem(this.documentId + '_annotations_shape');\n window.sessionStorage.removeItem(this.documentId + '_annotations_shape_measure');\n window.sessionStorage.removeItem(this.documentId + '_annotations_stamp');\n window.sessionStorage.removeItem(this.documentId + '_annotations_sticky');\n window.sessionStorage.removeItem(this.documentId + '_annotations_textMarkup');\n window.sessionStorage.removeItem(this.documentId + '_annotations_freetext');\n window.sessionStorage.removeItem(this.documentId + '_formfields');\n window.sessionStorage.removeItem(this.documentId + '_annotations_sign');\n window.sessionStorage.removeItem(this.documentId + '_annotations_ink');\n window.sessionStorage.removeItem(this.documentId + '_pagedata');\n for (var i = 0; i < this.sessionStorage.length; i++) {\n window.sessionStorage.removeItem(this.sessionStorage[parseInt(i.toString(), 10)]);\n }\n }\n };\n PdfViewerBase.prototype.clearCache = function (actionName, jsonObject, proxy) {\n this.unloadRequestHandler = new AjaxHandler(this.pdfViewer);\n this.unloadRequestHandler.url = window.sessionStorage.getItem('serviceURL') + '/' + actionName;\n this.unloadRequestHandler.mode = false;\n this.unloadRequestHandler.responseType = null;\n this.unloadRequestHandler.send(jsonObject);\n // eslint-disable-next-line\n this.unloadRequestHandler.onSuccess = function (result) {\n // eslint-disable-next-line\n var data = result.data;\n if (data) {\n if (typeof data !== 'object') {\n if (data.indexOf('Document') === -1) {\n proxy.onControlError(500, data, actionName);\n data = null;\n }\n }\n if (data) {\n proxy.pdfViewer.fireAjaxRequestSuccess(proxy.pdfViewer.serverActionSettings.unload, data);\n }\n }\n };\n // eslint-disable-next-line\n this.unloadRequestHandler.onFailure = function (result) {\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText, actionName);\n };\n // eslint-disable-next-line\n this.unloadRequestHandler.onError = function (result) {\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText, actionName);\n };\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.setUnloadRequestHeaders = function () {\n // eslint-disable-next-line\n var myHeaders = new Headers();\n myHeaders.append('Content-Type', 'application/json;charset=UTF-8');\n for (var i = 0; i < this.pdfViewer.ajaxRequestSettings.ajaxHeaders.length; i++) {\n // eslint-disable-next-line max-len\n myHeaders.append(this.pdfViewer.ajaxRequestSettings.ajaxHeaders[parseInt(i.toString(), 10)].headerName, this.pdfViewer.ajaxRequestSettings.ajaxHeaders[parseInt(i.toString(), 10)].headerValue);\n }\n return myHeaders;\n };\n PdfViewerBase.prototype.windowSessionStorageClear = function () {\n window.sessionStorage.removeItem('currentDocument');\n window.sessionStorage.removeItem('serviceURL');\n window.sessionStorage.removeItem('unload');\n for (var i = 0; i < this.sessionStorage.length; i++) {\n window.sessionStorage.removeItem(this.sessionStorage[parseInt(i.toString(), 10)]);\n }\n };\n PdfViewerBase.prototype.updateCommentPanel = function () {\n // eslint-disable-next-line\n var moreOptionsButton = document.querySelectorAll('.e-pv-more-options-button');\n for (var i = 0; i < moreOptionsButton.length; i++) {\n moreOptionsButton[parseInt(i.toString(), 10)].style.visibility = 'hidden';\n }\n // eslint-disable-next-line\n var commentTextBox = document.querySelectorAll('.e-pv-new-comments-div');\n for (var j = 0; j < commentTextBox.length; j++) {\n commentTextBox[parseInt(j.toString(), 10)].style.display = 'none';\n }\n // eslint-disable-next-line\n var commentContainer = document.querySelectorAll('.e-pv-comments-border');\n for (var j = 0; j < commentContainer.length; j++) {\n commentContainer[parseInt(j.toString(), 10)].classList.remove('e-pv-comments-border');\n }\n // eslint-disable-next-line\n var editableElement = document.querySelectorAll('.e-editable-inline');\n for (var j = 0; j < editableElement.length; j++) {\n editableElement[parseInt(j.toString(), 10)].style.display = 'none';\n }\n // eslint-disable-next-line\n var commentSelect = document.querySelectorAll('.e-pv-comments-select');\n for (var z = 0; z < commentSelect.length; z++) {\n commentSelect[parseInt(z.toString(), 10)].classList.remove('e-pv-comments-select');\n }\n // eslint-disable-next-line\n var commentsDiv = document.querySelectorAll('.e-pv-comments-div');\n for (var j = 0; j < commentsDiv.length; j++) {\n commentsDiv[parseInt(j.toString(), 10)].style.minHeight = 60 + 'px';\n }\n };\n /**\n * @param {boolean} isMouseDown - check whether the mouse down is triggered.\n * @returns {void}\n * @private\n */\n PdfViewerBase.prototype.focusViewerContainer = function (isMouseDown) {\n var scrollX = window.scrollX;\n var scrollY = window.scrollY;\n // eslint-disable-next-line\n var parentNode = this.getScrollParent(this.viewerContainer);\n var scrollNodeX = 0;\n var scrollNodeY = 0;\n if (parentNode !== null) {\n scrollNodeX = parentNode.scrollLeft;\n scrollNodeY = parentNode.scrollTop;\n }\n this.viewerContainer.focus();\n if (this.currentPageNumber > 0) {\n this.viewerContainer.setAttribute('aria-labelledby', this.pdfViewer.element.id + '_pageDiv_' + (this.currentPageNumber - 1));\n }\n if (this.pdfViewer.annotation && this.pdfViewer.annotation.stickyNotesAnnotationModule.accordionContainer) {\n this.updateCommentPanel();\n }\n // eslint-disable-next-line max-len\n if ((navigator.userAgent.indexOf('MSIE') !== -1 || navigator.appVersion.indexOf('Trident/') > -1 || navigator.userAgent.indexOf('Edge') !== -1) && parentNode !== null) {\n parentNode.scrollLeft = scrollNodeX;\n parentNode.scrollTop = scrollNodeY;\n }\n else if (parentNode !== null) {\n parentNode.scrollTo(scrollNodeX, scrollNodeY);\n }\n window.scrollTo(scrollX, scrollY);\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.getScrollParent = function (node) {\n if (node === null || node.nodeName === 'HTML') {\n return null;\n }\n var style = getComputedStyle(node);\n if (this.viewerContainer.id !== node.id && (style.overflowY === 'scroll' || style.overflowY === 'auto')) {\n return node;\n }\n else {\n return this.getScrollParent(node.parentNode);\n }\n };\n PdfViewerBase.prototype.createCorruptedPopup = function () {\n var _this = this;\n // eslint-disable-next-line max-len\n var popupElement = createElement('div', { id: this.pdfViewer.element.id + '_corrupted_popup', className: 'e-pv-corrupted-popup' });\n this.pageContainer.appendChild(popupElement);\n this.corruptPopup = new Dialog({\n showCloseIcon: true, closeOnEscape: true, isModal: true,\n // eslint-disable-next-line max-len\n header: '
      ' + this.pdfViewer.localeObj.getConstant('File Corrupted') + '
      ', visible: false,\n // eslint-disable-next-line max-len\n buttons: [{ buttonModel: { content: this.pdfViewer.localeObj.getConstant('OK'), isPrimary: true }, click: this.closeCorruptPopup.bind(this) }],\n target: this.pdfViewer.element, beforeClose: function () {\n _this.corruptPopup.destroy();\n _this.getElement('_corrupted_popup').remove();\n _this.corruptPopup = null;\n var waitingPopup = _this.getElement('_loadingIndicator');\n if (waitingPopup != null) {\n hideSpinner(waitingPopup);\n }\n }\n });\n if (this.pdfViewer.enableRtl) {\n // eslint-disable-next-line max-len\n this.corruptPopup.content = '
      ' + this.pdfViewer.localeObj.getConstant('File Corrupted Content') + '
      ';\n this.corruptPopup.enableRtl = true;\n }\n else {\n // eslint-disable-next-line max-len\n this.corruptPopup.content = '
      ' + this.pdfViewer.localeObj.getConstant('File Corrupted Content') + '
      ';\n }\n this.corruptPopup.appendTo(popupElement);\n };\n /**\n * @private\n * @returns {void}\n */\n PdfViewerBase.prototype.hideLoadingIndicator = function () {\n var waitingPopup = this.getElement('_loadingIndicator');\n if (waitingPopup !== null) {\n hideSpinner(waitingPopup);\n }\n };\n PdfViewerBase.prototype.closeCorruptPopup = function () {\n this.corruptPopup.hide();\n var waitingPopup = this.getElement('_loadingIndicator');\n if (waitingPopup !== null) {\n hideSpinner(waitingPopup);\n }\n };\n PdfViewerBase.prototype.createPrintPopup = function () {\n var element = document.getElementById(this.pdfViewer.element.id);\n this.printMainContainer = createElement('div', {\n id: this.pdfViewer.element.id + '_printcontainer',\n className: 'e-pv-print-popup-container'\n });\n element.appendChild(this.printMainContainer);\n this.printMainContainer.style.display = 'none';\n var printWaitingPopup = createElement('div', {\n id: this.pdfViewer.element.id + '_printLoadingIndicator',\n className: 'e-pv-print-loading-container'\n });\n this.printMainContainer.appendChild(printWaitingPopup);\n createSpinner({ target: printWaitingPopup, cssClass: 'e-spin-center' });\n this.setLoaderProperties(printWaitingPopup);\n };\n PdfViewerBase.prototype.createGoToPagePopup = function () {\n var _this = this;\n // eslint-disable-next-line max-len\n var popupElement = createElement('div', { id: this.pdfViewer.element.id + '_goTopage_popup', className: 'e-pv-gotopage-popup' });\n this.goToPageElement = createElement('span', { id: this.pdfViewer.element.id + '_prompt' });\n this.goToPageElement.textContent = this.pdfViewer.localeObj.getConstant('Enter pagenumber');\n popupElement.appendChild(this.goToPageElement);\n var inputContainer = createElement('span', { className: 'e-pv-text-input' });\n // eslint-disable-next-line max-len\n this.goToPageInput = createElement('input', { id: this.pdfViewer.element.id + '_page_input', className: 'e-input' });\n this.goToPageInput.type = 'text';\n this.goToPageInput.style.maxWidth = '80%';\n this.pageNoContainer = createElement('span', { className: '.e-pv-number-ofpages' });\n inputContainer.appendChild(this.goToPageInput);\n inputContainer.appendChild(this.pageNoContainer);\n popupElement.appendChild(inputContainer);\n this.pageContainer.appendChild(popupElement);\n this.goToPagePopup = new Dialog({\n showCloseIcon: true, closeOnEscape: false, isModal: true,\n header: this.pdfViewer.localeObj.getConstant('GoToPage'), visible: false, buttons: [\n {\n buttonModel: { content: this.pdfViewer.localeObj.getConstant('Cancel') },\n click: this.GoToPageCancelClick.bind(this)\n },\n // eslint-disable-next-line max-len\n {\n buttonModel: { content: this.pdfViewer.localeObj.getConstant('Apply'), disabled: true, cssClass: 'e-pv-gotopage-apply-btn', isPrimary: true },\n click: this.GoToPageApplyClick.bind(this)\n }\n ], close: this.closeGoToPagePopUp.bind(this)\n });\n if (this.pdfViewer.enableRtl) {\n this.goToPagePopup.enableRtl = true;\n }\n this.goToPagePopup.appendTo(popupElement);\n if (!isBlazor()) {\n var goToPageTextBox = new NumericTextBox({ format: '##', showSpinButton: false });\n goToPageTextBox.appendTo(this.goToPageInput);\n }\n this.goToPageInput.addEventListener('keyup', function () {\n // eslint-disable-next-line\n var inputValue = _this.goToPageInput.value;\n if (inputValue !== '' && parseFloat(inputValue) > 0 && (_this.pdfViewer.pageCount + 1) > parseFloat(inputValue)) {\n _this.EnableApplyButton();\n }\n else {\n _this.DisableApplyButton();\n }\n });\n };\n PdfViewerBase.prototype.closeGoToPagePopUp = function () {\n this.goToPageInput.value = '';\n this.DisableApplyButton();\n };\n PdfViewerBase.prototype.EnableApplyButton = function () {\n // eslint-disable-next-line\n var popupElements = document.getElementsByClassName('e-pv-gotopage-apply-btn')[0];\n popupElements.removeAttribute('disabled');\n };\n PdfViewerBase.prototype.DisableApplyButton = function () {\n // eslint-disable-next-line\n var popupElements = document.getElementsByClassName('e-pv-gotopage-apply-btn')[0];\n popupElements.setAttribute('disabled', true);\n };\n PdfViewerBase.prototype.GoToPageCancelClick = function () {\n this.goToPagePopup.hide();\n };\n PdfViewerBase.prototype.GoToPageApplyClick = function () {\n this.goToPagePopup.hide();\n // eslint-disable-next-line\n var pageNumber = this.goToPageInput.value;\n this.pdfViewer.navigation.goToPage(pageNumber);\n this.updateMobileScrollerPosition();\n };\n /**\n * @private\n * @returns {void}\n */\n PdfViewerBase.prototype.updateMobileScrollerPosition = function () {\n if ((Browser.isDevice && !this.pdfViewer.enableDesktopMode) && this.mobileScrollerContainer) {\n // eslint-disable-next-line\n var ratio = (this.viewerContainer.scrollHeight - this.viewerContainer.clientHeight) / (this.viewerContainer.clientHeight - 56);\n // eslint-disable-next-line\n var differenceRatio = (this.viewerContainer.scrollTop) / ratio;\n // eslint-disable-next-line\n var toolbarHeight = this.pdfViewer.toolbarModule ? this.toolbarHeight : 0;\n this.mobileScrollerContainer.style.top = (toolbarHeight + differenceRatio) + 'px';\n }\n };\n PdfViewerBase.prototype.createPasswordPopup = function () {\n var _this = this;\n // eslint-disable-next-line max-len\n var popupElement = createElement('div', { id: this.pdfViewer.element.id + '_password_popup', className: 'e-pv-password-popup', attrs: { 'tabindex': '-1' } });\n this.promptElement = createElement('span', { id: this.pdfViewer.element.id + '_prompt', attrs: { 'tabindex': '-1' } });\n this.promptElement.textContent = this.pdfViewer.localeObj.getConstant('Enter Password');\n popupElement.appendChild(this.promptElement);\n var inputContainer = createElement('span', { className: 'e-input-group e-pv-password-input' });\n // eslint-disable-next-line max-len\n this.passwordInput = createElement('input', { id: this.pdfViewer.element.id + '_password_input', className: 'e-input' });\n this.passwordInput.type = 'password';\n this.passwordInput.name = 'Required';\n inputContainer.appendChild(this.passwordInput);\n popupElement.appendChild(inputContainer);\n this.pageContainer.appendChild(popupElement);\n this.passwordPopup = new Dialog({\n showCloseIcon: true, closeOnEscape: false, isModal: true,\n header: this.pdfViewer.localeObj.getConstant('Password Protected'), visible: false,\n close: this.passwordCancel.bind(this), target: this.pdfViewer.element, beforeClose: function () {\n _this.passwordPopup.destroy();\n _this.getElement('_password_popup').remove();\n _this.passwordPopup = null;\n var waitingPopup = _this.getElement('_loadingIndicator');\n if (waitingPopup != null) {\n hideSpinner(waitingPopup);\n }\n }\n });\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.passwordPopup.buttons = [\n {\n buttonModel: { content: this.pdfViewer.localeObj.getConstant('OK'), isPrimary: true },\n click: this.applyPassword.bind(this)\n },\n { buttonModel: { content: this.pdfViewer.localeObj.getConstant('Cancel') }, click: this.passwordCancelClick.bind(this) }\n ];\n }\n else {\n this.passwordPopup.buttons = [\n { buttonModel: { content: this.pdfViewer.localeObj.getConstant('Cancel') }, click: this.passwordCancelClick.bind(this) },\n {\n buttonModel: { content: this.pdfViewer.localeObj.getConstant('OK'), isPrimary: true },\n click: this.applyPassword.bind(this)\n }\n ];\n }\n if (this.pdfViewer.enableRtl) {\n this.passwordPopup.enableRtl = true;\n }\n this.passwordPopup.appendTo(popupElement);\n this.passwordInput.addEventListener('keyup', function () {\n if (_this.passwordInput.value === '') {\n _this.passwordDialogReset();\n }\n });\n this.passwordInput.addEventListener('focus', function () {\n _this.passwordInput.parentElement.classList.add('e-input-focus');\n });\n this.passwordInput.addEventListener('blur', function () {\n _this.passwordInput.parentElement.classList.remove('e-input-focus');\n });\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.passwordCancel = function (args) {\n if (args.isInteraction) {\n this.clear(false);\n this.passwordDialogReset();\n this.passwordInput.value = '';\n }\n var waitingPopup = this.getElement('_loadingIndicator');\n if (waitingPopup !== null) {\n hideSpinner(waitingPopup);\n }\n };\n PdfViewerBase.prototype.passwordCancelClick = function () {\n this.clear(false);\n this.passwordDialogReset();\n this.passwordPopup.hide();\n var waitingPopup = this.getElement('_loadingIndicator');\n if (waitingPopup !== null) {\n hideSpinner(waitingPopup);\n }\n };\n PdfViewerBase.prototype.passwordDialogReset = function () {\n if (!isBlazor()) {\n if (this.promptElement) {\n this.promptElement.classList.remove('e-pv-password-error');\n this.promptElement.textContent = this.pdfViewer.localeObj.getConstant('Enter Password');\n this.passwordInput.value = '';\n }\n }\n };\n /**\n * @private\n * @returns {void}\n */\n PdfViewerBase.prototype.applyPassword = function () {\n if (!isBlazor()) {\n var password = this.passwordInput.value;\n if (!isNullOrUndefined(password) && password.length > 0) {\n this.pdfViewer.load(this.document, password);\n }\n }\n this.focusViewerContainer();\n };\n PdfViewerBase.prototype.createFileInputElement = function () {\n if (Browser.isDevice || !this.pdfViewer.enableDesktopMode) {\n // eslint-disable-next-line max-len\n if (this.pdfViewer.enableAnnotationToolbar && this.pdfViewer.toolbarModule && this.pdfViewer.toolbarModule.annotationToolbarModule) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.createCustomStampElement();\n }\n if (this.signatureModule) {\n this.signatureModule.createSignatureFileElement();\n }\n }\n };\n PdfViewerBase.prototype.wireEvents = function () {\n var _this = this;\n this.viewerContainer.addEventListener('scroll', this.viewerContainerOnScroll, true);\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n this.viewerContainer.addEventListener('touchmove', this.viewerContainerOnScroll, true);\n }\n this.viewerContainer.addEventListener('mousedown', this.viewerContainerOnMousedown);\n this.viewerContainer.addEventListener('mouseup', this.viewerContainerOnMouseup);\n this.viewerContainer.addEventListener(\"wheel\", this.detectTouchPad, false);\n this.viewerContainer.addEventListener('wheel', this.viewerContainerOnMouseWheel);\n if (this.isMacSafari) {\n window.addEventListener('gesturestart', function (e) { return e.preventDefault(); });\n window.addEventListener('gesturechange', function (e) { return e.preventDefault(); });\n window.addEventListener('gestureend', function (e) { return e.preventDefault(); });\n this.viewerContainer.addEventListener('gesturestart', this.handleMacGestureStart, false);\n this.viewerContainer.addEventListener('gesturechange', this.handleMacGestureChange, false);\n this.viewerContainer.addEventListener('gestureend', this.handleMacGestureEnd, false);\n }\n this.viewerContainer.addEventListener('mousemove', this.viewerContainerOnMousemove);\n this.viewerContainer.addEventListener('mouseleave', this.viewerContainerOnMouseLeave);\n this.viewerContainer.addEventListener('mouseenter', this.viewerContainerOnMouseEnter);\n this.viewerContainer.addEventListener('mouseover', this.viewerContainerOnMouseOver);\n this.viewerContainer.addEventListener('click', this.viewerContainerOnClick);\n this.viewerContainer.addEventListener('dblclick', this.viewerContainerOnClick);\n this.viewerContainer.addEventListener('dragstart', this.viewerContainerOnDragStart);\n this.pdfViewer.element.addEventListener('keydown', this.viewerContainerOnKeyDown);\n window.addEventListener('keydown', this.onWindowKeyDown);\n window.addEventListener('mouseup', this.onWindowMouseUp);\n window.addEventListener('touchend', this.onWindowTouchEnd);\n this.unload = function () { return _this.unloadDocument(_this); };\n window.addEventListener('unload', this.unload);\n window.addEventListener('beforeunload', this.clearSessionStorage);\n window.addEventListener('resize', this.onWindowResize);\n // eslint-disable-next-line max-len\n if (navigator.userAgent.indexOf('MSIE') !== -1 || navigator.userAgent.indexOf('Edge') !== -1 || navigator.userAgent.indexOf('Trident') !== -1) {\n this.viewerContainer.addEventListener('pointerdown', this.viewerContainerOnPointerDown);\n this.viewerContainer.addEventListener('pointermove', this.viewerContainerOnPointerMove);\n this.viewerContainer.addEventListener('pointerup', this.viewerContainerOnPointerEnd);\n this.viewerContainer.addEventListener('pointerleave', this.viewerContainerOnPointerEnd);\n }\n else {\n this.viewerContainer.addEventListener('touchstart', this.viewerContainerOnTouchStart);\n if (this.isWebkitMobile && this.isDeviceiOS) {\n // eslint-disable-next-line max-len\n this.viewerContainer.addEventListener(\"touchmove\", function (e) { if (e.scale !== 1) {\n e.preventDefault();\n } }, { passive: false });\n }\n this.viewerContainer.addEventListener('touchmove', this.viewerContainerOnTouchMove);\n this.viewerContainer.addEventListener('touchend', this.viewerContainerOnTouchEnd);\n this.viewerContainer.addEventListener('touchleave', this.viewerContainerOnTouchEnd);\n this.viewerContainer.addEventListener('touchcancel', this.viewerContainerOnTouchEnd);\n }\n };\n PdfViewerBase.prototype.unWireEvents = function () {\n this.viewerContainer.removeEventListener('scroll', this.viewerContainerOnScroll, true);\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n this.viewerContainer.removeEventListener('touchmove', this.viewerContainerOnScroll, true);\n }\n this.viewerContainer.removeEventListener('mousedown', this.viewerContainerOnMousedown);\n this.viewerContainer.removeEventListener('mouseup', this.viewerContainerOnMouseup);\n this.viewerContainer.removeEventListener(\"wheel\", this.detectTouchPad, false);\n this.viewerContainer.removeEventListener('wheel', this.viewerContainerOnMouseWheel);\n if (this.isMacSafari) {\n window.removeEventListener('gesturestart', function (e) { return e.preventDefault(); });\n window.removeEventListener('gesturechange', function (e) { return e.preventDefault(); });\n window.removeEventListener('gestureend', function (e) { return e.preventDefault(); });\n this.viewerContainer.removeEventListener('gesturestart', this.handleMacGestureStart, false);\n this.viewerContainer.removeEventListener('gesturechange', this.handleMacGestureChange, false);\n this.viewerContainer.removeEventListener('gestureend', this.handleMacGestureEnd, false);\n }\n this.viewerContainer.removeEventListener('mousemove', this.viewerContainerOnMousemove);\n this.viewerContainer.removeEventListener('mouseleave', this.viewerContainerOnMouseLeave);\n this.viewerContainer.removeEventListener('mouseenter', this.viewerContainerOnMouseEnter);\n this.viewerContainer.removeEventListener('mouseover', this.viewerContainerOnMouseOver);\n this.viewerContainer.removeEventListener('click', this.viewerContainerOnClick);\n this.viewerContainer.removeEventListener('dragstart', this.viewerContainerOnDragStart);\n this.viewerContainer.removeEventListener('contextmenu', this.viewerContainerOnContextMenuClick);\n this.pdfViewer.element.removeEventListener('keydown', this.viewerContainerOnKeyDown);\n window.addEventListener('keydown', this.onWindowKeyDown);\n window.removeEventListener('mouseup', this.onWindowMouseUp);\n window.removeEventListener('unload', this.unload);\n window.removeEventListener('resize', this.onWindowResize);\n // eslint-disable-next-line max-len\n if (navigator.userAgent.indexOf('MSIE') !== -1 || navigator.userAgent.indexOf('Edge') !== -1 || navigator.userAgent.indexOf('Trident') !== -1) {\n this.viewerContainer.removeEventListener('pointerdown', this.viewerContainerOnPointerDown);\n this.viewerContainer.removeEventListener('pointermove', this.viewerContainerOnPointerMove);\n this.viewerContainer.removeEventListener('pointerup', this.viewerContainerOnPointerEnd);\n this.viewerContainer.removeEventListener('pointerleave', this.viewerContainerOnPointerEnd);\n }\n else {\n this.viewerContainer.removeEventListener('touchstart', this.viewerContainerOnTouchStart);\n if (this.isWebkitMobile && this.isDeviceiOS) {\n // eslint-disable-next-line max-len\n this.viewerContainer.removeEventListener(\"touchmove\", function (e) { if (e.scale !== 1) {\n e.preventDefault();\n } }, false);\n }\n this.viewerContainer.removeEventListener('touchmove', this.viewerContainerOnTouchMove);\n this.viewerContainer.removeEventListener('touchend', this.viewerContainerOnTouchEnd);\n this.viewerContainer.removeEventListener('touchleave', this.viewerContainerOnTouchEnd);\n this.viewerContainer.removeEventListener('touchcancel', this.viewerContainerOnTouchEnd);\n }\n };\n /**\n * @private\n * @returns {void}\n */\n PdfViewerBase.prototype.updateZoomValue = function () {\n if (this.pdfViewer.magnificationModule) {\n if (this.pdfViewer.magnificationModule.isAutoZoom) {\n this.pdfViewer.magnificationModule.fitToAuto();\n }\n else if (this.pdfViewer.zoomMode !== 'FitToWidth' && this.pdfViewer.magnificationModule.fitType === 'fitToWidth') {\n this.pdfViewer.magnificationModule.fitToWidth();\n }\n else if (this.pdfViewer.magnificationModule.fitType === 'fitToPage') {\n this.pdfViewer.magnificationModule.fitToPage();\n }\n }\n for (var i = 0; i < this.pageCount; i++) {\n this.applyLeftPosition(i);\n }\n };\n /**\n * @private\n * @param {any} annotation - The annotation type of any.\n * @returns {void}\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.updateFreeTextProperties = function (annotation) {\n if (this.pdfViewer.enableShapeLabel) {\n if (this.pdfViewer.shapeLabelSettings.fillColor) {\n annotation.labelFillColor = this.pdfViewer.shapeLabelSettings.fillColor;\n }\n if (this.pdfViewer.shapeLabelSettings.fontColor) {\n annotation.fontColor = this.pdfViewer.shapeLabelSettings.fontColor;\n }\n if (this.pdfViewer.shapeLabelSettings.fontSize) {\n annotation.fontSize = this.pdfViewer.shapeLabelSettings.fontSize;\n }\n if (this.pdfViewer.shapeLabelSettings.fontFamily) {\n annotation.fontFamily = this.pdfViewer.shapeLabelSettings.fontFamily;\n }\n if (this.pdfViewer.shapeLabelSettings.opacity) {\n annotation.labelOpacity = this.pdfViewer.shapeLabelSettings.opacity;\n }\n if (this.pdfViewer.shapeLabelSettings.labelContent) {\n annotation.labelContent = this.pdfViewer.shapeLabelSettings.labelContent;\n }\n }\n };\n /**\n * @private\n * @param {MouseEvent} event - The mouse event.\n * @returns {void}\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.mouseDownHandler = function (event) {\n var isEnableDelete = false;\n var isCancel;\n var hidenItems = [];\n var disabledItems = [];\n if (event && event.target) {\n this.mouseDownEvent = event;\n this.contextMenuModule.currentTarget = event.target;\n }\n if (this.pdfViewer.annotationModule) {\n isEnableDelete = this.pdfViewer.annotationModule.isEnableDelete();\n }\n if (!isEnableDelete) {\n disabledItems.push('DeleteContext');\n }\n if (this.pdfViewer.contextMenuOption === 'None') {\n isCancel = true;\n }\n else if (this.pdfViewer.textSelectionModule || this.isShapeBasedAnnotationsEnabled()) {\n if (event) {\n var isClickWithinSelectionBounds = this.isClickWithinSelectionBounds(event);\n // eslint-disable-next-line max-len\n if (this.pdfViewer.annotationModule && this.pdfViewer.annotationModule.freeTextAnnotationModule && this.pdfViewer.annotationModule.freeTextAnnotationModule.isInuptBoxInFocus) {\n this.isFreeTextContextMenu = true;\n // eslint-disable-next-line max-len\n if (this.pdfViewer.annotation.freeTextAnnotationModule && !this.pdfViewer.annotation.freeTextAnnotationModule.isTextSelected) {\n disabledItems.push('Cut');\n disabledItems.push('Copy');\n }\n // eslint-disable-next-line max-len\n if (this.pdfViewer.annotation.freeTextAnnotationModule && this.pdfViewer.annotation.freeTextAnnotationModule.selectedText === '') {\n disabledItems.push('Paste');\n }\n hidenItems.push('HighlightContext');\n hidenItems.push('UnderlineContext');\n hidenItems.push('StrikethroughContext');\n hidenItems.push('ScaleRatio');\n hidenItems.push('Properties');\n hidenItems.push('Comment');\n hidenItems.push('DeleteContext');\n }\n else if (isClickWithinSelectionBounds && this.pdfViewer.textSelectionModule) {\n // eslint-disable-next-line max-len\n if ((!event.target.classList.contains('e-pv-maintaincontent') && event.target.classList.contains('e-pv-text') || event.target.classList.contains('e-pv-text-layer'))) {\n if (this.checkIsNormalText()) {\n isCancel = true;\n }\n // eslint-disable-next-line max-len\n }\n else if ((Browser.isIE || Browser.info.name === 'edge') && event.target.classList.contains('e-pv-page-container')) {\n isCancel = true;\n }\n hidenItems.push('Cut');\n hidenItems.push('Paste');\n hidenItems.push('DeleteContext');\n hidenItems.push('ScaleRatio');\n hidenItems.push('Comment');\n hidenItems.push('Properties');\n // eslint-disable-next-line max-len\n }\n else if (this.pdfViewer.selectedItems.annotations.length !== 0 && (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'HandWrittenSignature' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'SignatureText' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'SignatureImage')) {\n this.shapeMenuItems(hidenItems, disabledItems, false, true);\n // eslint-disable-next-line max-len\n }\n else if (this.pdfViewer.selectedItems.annotations.length !== 0 && this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType !== 'Path') {\n this.shapeMenuItems(hidenItems, disabledItems, true);\n }\n else {\n // eslint-disable-next-line max-len\n if (this.pdfViewer.annotation && this.pdfViewer.annotation.isShapeCopied && (event.target.classList.contains('e-pv-text-layer') ||\n event.target.classList.contains('e-pv-text')) && !this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n hidenItems.push('Properties');\n this.shapeMenuItems(hidenItems, disabledItems, false);\n // eslint-disable-next-line max-len\n }\n else if (this.isCalibrateAnnotationModule() && this.pdfViewer.annotationModule.measureAnnotationModule.currentAnnotationMode) {\n hidenItems.push('HighlightContext');\n hidenItems.push('UnderlineContext');\n hidenItems.push('StrikethroughContext');\n hidenItems.push('Properties');\n disabledItems.push('Cut');\n disabledItems.push('Copy');\n disabledItems.push('Paste');\n disabledItems.push('DeleteContext');\n disabledItems.push('Comment');\n // eslint-disable-next-line max-len\n }\n else if (this.pdfViewer.annotationModule && this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n hidenItems.push('HighlightContext');\n hidenItems.push('UnderlineContext');\n hidenItems.push('StrikethroughContext');\n hidenItems.push('Properties');\n hidenItems.push('Cut');\n hidenItems.push('Copy');\n hidenItems.push('Paste');\n hidenItems.push('ScaleRatio');\n }\n else {\n isCancel = true;\n }\n }\n }\n else if (this.pdfViewer.textSelectionModule && (this.pdfViewer.contextMenuOption === 'MouseUp')) {\n hidenItems.push('Cut');\n hidenItems.push('Paste');\n hidenItems.push('DeleteContext');\n hidenItems.push('ScaleRatio');\n hidenItems.push('Comment');\n hidenItems.push('Properties');\n }\n else if (this.pdfViewer.selectedItems.annotations.length === 0) {\n hidenItems.push('Cut');\n hidenItems.push('Paste');\n hidenItems.push('DeleteContext');\n hidenItems.push('ScaleRatio');\n hidenItems.push('Properties');\n }\n if (!this.pdfViewer.enableCommentPanel) {\n disabledItems.push('Comment');\n }\n }\n else {\n isCancel = true;\n }\n var eventArgs = { hidenItems: hidenItems, disabledItems: disabledItems, isCancel: isCancel };\n this.pdfViewer._dotnetInstance.invokeMethodAsync('MouseDownHandler', eventArgs);\n };\n /**\n * @private\n * @param {string} selectedMenu - The selected menu.\n * @returns {void}\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.OnItemSelected = function (selectedMenu) {\n // eslint-disable-next-line\n var target = this.contextMenuModule.currentTarget;\n switch (selectedMenu) {\n case this.pdfViewer.localeObj.getConstant('Copy'):\n this.CopyItemSelected();\n break;\n case this.pdfViewer.localeObj.getConstant('Highlight context'):\n this.TextMarkUpSelected('Highlight');\n break;\n case this.pdfViewer.localeObj.getConstant('Underline context'):\n this.TextMarkUpSelected('Underline');\n break;\n case this.pdfViewer.localeObj.getConstant('Strikethrough context'):\n this.TextMarkUpSelected('Strikethrough');\n break;\n case this.pdfViewer.localeObj.getConstant('Properties'):\n this.PropertiesItemSelected();\n break;\n case this.pdfViewer.localeObj.getConstant('Cut'):\n this.CutItemSelected(target);\n break;\n case this.pdfViewer.localeObj.getConstant('Paste'):\n this.pasteItemSelected(target);\n break;\n case this.pdfViewer.localeObj.getConstant('Delete Context'):\n this.DeleteItemSelected();\n break;\n case this.pdfViewer.localeObj.getConstant('Scale Ratio'):\n this.ScaleRatioSelected();\n break;\n case this.pdfViewer.localeObj.getConstant('Comment'):\n this.CommentItemSelected();\n break;\n default:\n break;\n }\n };\n PdfViewerBase.prototype.CommentItemSelected = function () {\n if (this.pdfViewer.annotation) {\n this.pdfViewer.annotation.showCommentsPanel();\n if (this.pdfViewer.selectedItems.annotations.length !== 0 ||\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n // eslint-disable-next-line\n var currentAnnotation = void 0;\n if (this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n currentAnnotation = this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation;\n }\n else {\n currentAnnotation = this.pdfViewer.selectedItems.annotations[0];\n }\n // eslint-disable-next-line\n var accordionExpand = document.getElementById(this.pdfViewer.element.id + '_accordionContainer' + this.pdfViewer.currentPageNumber);\n if (accordionExpand) {\n accordionExpand.ej2_instances[0].expandItem(true);\n }\n // eslint-disable-next-line\n var commentsDiv = document.getElementById(currentAnnotation.annotName);\n if (commentsDiv) {\n if (!commentsDiv.classList.contains('e-pv-comments-border')) {\n commentsDiv.firstChild.click();\n }\n }\n }\n }\n };\n PdfViewerBase.prototype.ScaleRatioSelected = function () {\n if (this.isCalibrateAnnotationModule()) {\n this.pdfViewer.annotation.measureAnnotationModule.createScaleRatioWindow();\n }\n };\n PdfViewerBase.prototype.DeleteItemSelected = function () {\n if (this.pdfViewer.formDesignerModule && this.pdfViewer.selectedItems.formFields.length !== 0) {\n this.pdfViewer.formDesignerModule.deleteFormField(this.pdfViewer.selectedItems.formFields[0].id);\n }\n else if (this.pdfViewer.annotation) {\n this.pdfViewer.annotation.deleteAnnotation();\n }\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.pasteItemSelected = function (target) {\n // eslint-disable-next-line max-len\n if (this.isFreeTextContextMenu || (this.pdfViewer.annotationModule && this.pdfViewer.annotationModule.freeTextAnnotationModule.isInuptBoxInFocus) && (target && target.className === 'free-text-input' && target.tagName === 'TEXTAREA')) {\n this.pdfViewer.annotation.freeTextAnnotationModule.pasteSelectedText(target);\n this.contextMenuModule.close();\n }\n else {\n this.pdfViewer.paste();\n this.contextMenuModule.previousAction = 'Paste';\n }\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.CutItemSelected = function (target) {\n // eslint-disable-next-line max-len\n if (this.isFreeTextContextMenu || (this.pdfViewer.annotationModule && this.pdfViewer.annotationModule.freeTextAnnotationModule.isInuptBoxInFocus) && (target && target.className === 'free-text-input' && target.tagName === 'TEXTAREA')) {\n this.pdfViewer.annotation.freeTextAnnotationModule.cutSelectedText(target);\n this.contextMenuModule.close();\n }\n else if (this.pdfViewer.selectedItems.annotations.length === 1) {\n var pageIndex = this.pdfViewer.selectedItems.annotations[0].pageIndex;\n this.pdfViewer.cut();\n this.contextMenuModule.previousAction = 'Cut';\n }\n else if (this.pdfViewer.selectedItems.formFields.length === 1) {\n this.pdfViewer.cut();\n this.contextMenuModule.previousAction = 'Cut';\n }\n };\n PdfViewerBase.prototype.CopyItemSelected = function () {\n var isSkip = false;\n // eslint-disable-next-line max-len\n if (this.isFreeTextContextMenu || (this.pdfViewer.annotationModule && this.pdfViewer.annotationModule.freeTextAnnotationModule.isInuptBoxInFocus)) {\n this.pdfViewer.annotation.freeTextAnnotationModule.copySelectedText();\n this.contextMenuModule.close();\n isSkip = true;\n }\n else if (this.pdfViewer.textSelectionModule) {\n this.pdfViewer.textSelectionModule.copyText();\n this.contextMenuModule.close();\n }\n if (this.pdfViewer.selectedItems.annotations.length && !isSkip) {\n this.pdfViewer.copy();\n this.contextMenuModule.previousAction = 'Copy';\n }\n else if (this.pdfViewer.selectedItems.formFields.length > 0) {\n this.pdfViewer.copy();\n this.contextMenuModule.previousAction = 'Copy';\n }\n };\n PdfViewerBase.prototype.PropertiesItemSelected = function () {\n // eslint-disable-next-line max-len\n if (this.pdfViewer.selectedItems.annotations.length !== 0 && (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Line' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'LineWidthArrowHead' ||\n this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Distance')) {\n this.pdfViewer.annotation.createPropertiesWindow();\n // eslint-disable-next-line max-len\n }\n else if (this.pdfViewer.selectedItems.formFields.length !== 0 && this.pdfViewer.selectedItems.formFields[0].formFieldAnnotationType) {\n this.pdfViewer.formDesigner.createPropertiesWindow();\n }\n };\n PdfViewerBase.prototype.TextMarkUpSelected = function (type) {\n if (this.pdfViewer.annotation && this.pdfViewer.annotation.textMarkupAnnotationModule) {\n this.pdfViewer.annotation.textMarkupAnnotationModule.isSelectionMaintained = false;\n this.pdfViewer.annotation.textMarkupAnnotationModule.drawTextMarkupAnnotations(type);\n this.pdfViewer.annotation.textMarkupAnnotationModule.isTextMarkupAnnotationMode = false;\n this.pdfViewer.annotation.textMarkupAnnotationModule.currentTextMarkupAddMode = '';\n this.pdfViewer.annotation.textMarkupAnnotationModule.isSelectionMaintained = true;\n }\n };\n PdfViewerBase.prototype.shapeMenuItems = function (hidenItems, disabledItems, enableProperties, isSignature) {\n if (this.pdfViewer.annotation && !this.pdfViewer.annotation.isShapeCopied) {\n disabledItems.push('Paste');\n }\n hidenItems.push('HighlightContext');\n hidenItems.push('UnderlineContext');\n hidenItems.push('StrikethroughContext');\n hidenItems.push('ScaleRatio');\n if (enableProperties) {\n // eslint-disable-next-line max-len\n if (!(this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Line' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'LineWidthArrowHead' ||\n this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Distance')) {\n hidenItems.push('Properties');\n }\n }\n else if (isSignature) {\n hidenItems.push('Properties');\n hidenItems.push('Comment');\n }\n else {\n hidenItems.push('Cut');\n hidenItems.push('Copy');\n hidenItems.push('DeleteContext');\n hidenItems.push('Comment');\n }\n };\n PdfViewerBase.prototype.checkIsRtlText = function (text) {\n // eslint-disable-next-line max-len\n var ltrChars = 'A-Za-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02B8\\\\u0300-\\\\u0590\\\\u0800-\\\\u1FFF' + '\\\\u2C00-\\\\uFB1C\\\\uFDFE-\\\\uFE6F\\\\uFEFD-\\\\uFFFF';\n var rtlChars = '\\\\u0591-\\\\u07FF\\\\uFB1D-\\\\uFDFD\\\\uFE70-\\\\uFEFC';\n // eslint-disable-next-line\n var rtlDirCheck = new RegExp('^[^' + ltrChars + ']*[' + rtlChars + ']');\n return rtlDirCheck.test(text);\n };\n /**\n * @private\n * @param {any} event - Specifies the event.\n * @returns {boolean} - retruned the beolean value.\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.isClickWithinSelectionBounds = function (event) {\n var bounds;\n var isWithin = false;\n var diCount = 5;\n var negativeCount = ((this.currentPageNumber - diCount) < 0) ? 0 : this.currentPageNumber - diCount;\n var positiveCount = ((this.currentPageNumber - diCount) > this.pageCount) ? this.pageCount : this.currentPageNumber + diCount;\n if (this.pdfViewer.textSelectionModule) {\n for (var i = negativeCount; i < positiveCount; i++) {\n if (i >= 0) {\n bounds = this.pdfViewer.textSelectionModule.getCurrentSelectionBounds(i);\n if (bounds) {\n var currentBound = bounds;\n if (this.getHorizontalValue(currentBound.left, i) < event.clientX && this.getHorizontalValue(currentBound.right, i) >\n event.clientX && this.getVerticalValue(currentBound.top, i) < event.clientY &&\n this.getVerticalValue(currentBound.bottom, i) > event.clientY) {\n isWithin = true;\n break;\n }\n }\n }\n }\n if ((Browser.isIE || Browser.info.name === 'edge') && bounds) {\n isWithin = true;\n }\n }\n return isWithin;\n };\n PdfViewerBase.prototype.getHorizontalClientValue = function (value) {\n var pageDiv = this.getElement('_pageDiv_' + (this.currentPageNumber - 1));\n var pageBounds = pageDiv.getBoundingClientRect();\n return (value - pageBounds.left);\n };\n PdfViewerBase.prototype.getVerticalClientValue = function (value) {\n var pageDiv = this.getElement('_pageDiv_' + (this.currentPageNumber - 1));\n var pageBounds = pageDiv.getBoundingClientRect();\n return (value - pageBounds.top);\n };\n PdfViewerBase.prototype.getHorizontalValue = function (value, pageNumber) {\n var pageDiv = this.getElement('_pageDiv_' + (pageNumber || this.currentPageNumber - 1));\n var pageBounds = pageDiv.getBoundingClientRect();\n return (value * this.getZoomFactor()) + pageBounds.left;\n };\n PdfViewerBase.prototype.getVerticalValue = function (value, pageNumber) {\n var pageDiv = this.getElement('_pageDiv_' + (pageNumber || this.currentPageNumber - 1));\n var pageBounds = pageDiv.getBoundingClientRect();\n return (value * this.getZoomFactor()) + pageBounds.top;\n };\n /**\n * @private\n * @returns {boolean} - retruned the beolean value.\n */\n PdfViewerBase.prototype.checkIsNormalText = function () {\n var isText = true;\n var currentText = '';\n // eslint-disable-next-line\n var textSelectionModule = this.pdfViewer.textSelectionModule;\n if (textSelectionModule && textSelectionModule.selectionRangeArray && textSelectionModule.selectionRangeArray.length === 1) {\n currentText = textSelectionModule.selectionRangeArray[0].textContent;\n }\n else if (window.getSelection() && window.getSelection().anchorNode) {\n currentText = window.getSelection().toString();\n }\n if (currentText !== '' && this.checkIsRtlText(currentText)) {\n isText = false;\n }\n return isText;\n };\n PdfViewerBase.prototype.DeleteKeyPressed = function (event) {\n var isSearchboxDialogOpen;\n var searchBoxId = document.getElementById(this.pdfViewer.element.id + \"_search_box\");\n if (searchBoxId) {\n isSearchboxDialogOpen = searchBoxId.style.display !== \"none\";\n }\n if (this.pdfViewer.formDesignerModule && !this.pdfViewer.formDesigner.isPropertyDialogOpen && this.pdfViewer.designerMode && this.pdfViewer.selectedItems.formFields.length !== 0 && !isSearchboxDialogOpen) {\n this.pdfViewer.formDesignerModule.deleteFormField(this.pdfViewer.selectedItems.formFields[0].id);\n }\n else if (this.pdfViewer.annotation && !this.pdfViewer.designerMode && event.srcElement.parentElement.classList && !event.srcElement.parentElement.classList.contains(\"e-input-focus\")) {\n if (this.isTextMarkupAnnotationModule() && !this.getPopupNoteVisibleStatus() && !isSearchboxDialogOpen) {\n this.pdfViewer.annotationModule.deleteAnnotation();\n }\n if (this.pdfViewer.selectedItems.annotations.length > 0) {\n // eslint-disable-next-line\n var annotation = this.pdfViewer.selectedItems.annotations[0];\n var isReadOnly = true;\n var type = annotation.shapeAnnotationType;\n if (type === 'Path' || annotation.formFieldAnnotationType === 'SignatureField' || annotation.formFieldAnnotationType === 'InitialField' || type === 'HandWrittenSignature' || type === 'SignatureText' || type === 'SignatureImage') {\n var inputFields = document.getElementById(annotation.id);\n if (inputFields && inputFields.disabled) {\n isReadOnly = true;\n }\n }\n if (!isReadOnly) {\n if (annotation.annotationSettings && annotation.annotationSettings.isLock) {\n if (this.pdfViewer.annotationModule.checkAllowedInteractions('Delete', annotation)) {\n this.pdfViewer.remove(annotation);\n this.pdfViewer.renderSelector(this.pdfViewer.annotation.getEventPageNumber(event));\n }\n }\n else {\n this.pdfViewer.remove(annotation);\n this.pdfViewer.renderSelector(this.pdfViewer.annotation.getEventPageNumber(event));\n }\n }\n }\n }\n };\n /**\n * @private\n * @returns {void}\n */\n PdfViewerBase.prototype.initiatePanning = function () {\n this.isPanMode = true;\n this.textLayer.modifyTextCursor(false);\n this.disableTextSelectionMode();\n if (this.pdfViewer.toolbar && this.pdfViewer.toolbar.annotationToolbarModule) {\n this.pdfViewer.toolbar.annotationToolbarModule.deselectAllItems();\n }\n };\n /**\n * @private\n * @returns {void}\n */\n PdfViewerBase.prototype.initiateTextSelectMode = function () {\n this.isPanMode = false;\n if (this.viewerContainer) {\n this.viewerContainer.style.cursor = 'auto';\n if (this.pdfViewer.textSelectionModule) {\n this.textLayer.modifyTextCursor(true);\n this.pdfViewer.textSelectionModule.enableTextSelectionMode();\n }\n if ((!Browser.isDevice || this.pdfViewer.enableDesktopMode) && !isBlazor()) {\n this.enableAnnotationAddTools(true);\n }\n }\n };\n /**\n * @private\n * @returns {void}\n */\n PdfViewerBase.prototype.initiateTextSelection = function () {\n if (this.pdfViewer.toolbar && !this.pdfViewer.toolbar.isSelectionToolDisabled) {\n this.initiateTextSelectMode();\n this.pdfViewer.toolbar.updateInteractionTools(true);\n }\n };\n PdfViewerBase.prototype.enableAnnotationAddTools = function (isEnable) {\n if (this.pdfViewer.toolbarModule) {\n if (this.pdfViewer.toolbarModule.annotationToolbarModule) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.enableAnnotationAddTools(isEnable);\n }\n }\n };\n PdfViewerBase.prototype.applySelection = function () {\n if (window.getSelection().anchorNode !== null) {\n this.pdfViewer.textSelectionModule.applySpanForSelection();\n }\n this.isViewerContainerDoubleClick = false;\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.isDesignerMode = function (target) {\n var isDesignerMode = false;\n if (this.pdfViewer.selectedItems.annotations.length !== 0 && (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'HandWrittenSignature' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'SignatureText' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'SignatureImage')) {\n isDesignerMode = true;\n // eslint-disable-next-line max-len\n }\n else if (this.pdfViewer.selectedItems.annotations.length !== 0 && this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType !== 'Path') {\n isDesignerMode = true;\n // eslint-disable-next-line max-len\n }\n else if (this.pdfViewer.selectedItems.formFields.length !== 0 && this.pdfViewer.selectedItems.formFields[0].formFieldAnnotationType && this.pdfViewer.designerMode) {\n isDesignerMode = true;\n }\n else {\n // eslint-disable-next-line max-len\n if (this.pdfViewer.annotation && this.pdfViewer.annotation.isShapeCopied && (target.classList.contains('e-pv-text-layer') ||\n // eslint-disable-next-line max-len\n target.classList.contains('e-pv-text')) && !this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n isDesignerMode = true;\n // eslint-disable-next-line max-len\n }\n else if (this.pdfViewer.formDesigner && this.pdfViewer.formDesigner.isShapeCopied && (target.classList.contains('e-pv-text-layer') ||\n target.classList.contains('e-pv-text'))) {\n isDesignerMode = true;\n }\n }\n this.designerModetarget = target;\n return isDesignerMode;\n };\n PdfViewerBase.prototype.handleTaps = function (touchPoints, event) {\n var _this = this;\n //EJ2CORE-813 - Implemented focus removing logic for iOS devices\n if (this.isDeviceiOS) {\n var obj = findActiveElement(event, this, this.pdfViewer);\n // eslint-disable-next-line\n var isRemoveFocus_1 = (!isNullOrUndefined(this.pdfViewer.annotation) && !isNullOrUndefined(this.pdfViewer.annotation.freeTextAnnotationModule) && !this.pdfViewer.annotation.freeTextAnnotationModule.isNewFreeTextAnnot) && (obj && this.pdfViewer.selectedItems.annotations[0] ? obj.id !== this.pdfViewer.selectedItems.annotations[0].id : true) && document.activeElement.classList.contains('free-text-input') && this.isFreeTextAnnotation(this.pdfViewer.selectedItems.annotations);\n if (!this.singleTapTimer) {\n this.singleTapTimer = setTimeout(function () {\n if (isRemoveFocus_1) {\n _this.pdfViewer.clearSelection(_this.pdfViewer.selectedItems.annotations[0].pageIndex);\n _this.focusViewerContainer(true);\n }\n _this.onSingleTap(touchPoints);\n // eslint-disable-next-line\n }, 300);\n this.tapCount++;\n }\n else {\n if (this.pdfViewer.enablePinchZoom) {\n this.tapCount++;\n if (this.tapCount > 2) {\n this.tapCount = 2;\n }\n clearTimeout(this.singleTapTimer);\n this.singleTapTimer = null;\n this.onDoubleTap(touchPoints);\n }\n }\n }\n else {\n if (!this.singleTapTimer) {\n this.singleTapTimer = setTimeout(function () {\n _this.onSingleTap(touchPoints);\n // eslint-disable-next-line\n }, 300);\n this.tapCount++;\n }\n else {\n if (this.pdfViewer.enablePinchZoom) {\n this.tapCount++;\n if (this.tapCount > 2) {\n this.tapCount = 2;\n }\n clearTimeout(this.singleTapTimer);\n this.singleTapTimer = null;\n this.onDoubleTap(touchPoints);\n }\n }\n }\n };\n PdfViewerBase.prototype.handleTextBoxTaps = function (touchPoints) {\n var _this = this;\n setTimeout(function () {\n _this.inputTapCount = 0;\n }, 300);\n this.inputTapCount++;\n //EJ2CORE-813 - Removing timer function for iOS Devices\n if (this.isDeviceiOS) {\n // eslint-disable-next-line\n this.onTextBoxDoubleTap(touchPoints);\n }\n else {\n var timer = setTimeout(function () {\n _this.onTextBoxDoubleTap(touchPoints);\n }, 200);\n }\n if (this.inputTapCount > 2) {\n this.inputTapCount = 0;\n }\n };\n PdfViewerBase.prototype.onTextBoxDoubleTap = function (touches) {\n var target = touches[0].target;\n if (this.inputTapCount === 2) {\n if (this.pdfViewer.selectedItems.annotations.length !== 0) {\n if (this.pdfViewer.annotationModule) {\n var currentAnnotation = this.pdfViewer.selectedItems.annotations[0];\n //EJ2CORE-813 - Removing focus from all active free text elements before focusing on free text annotation on iOS devices\n if (this.isDeviceiOS && document.activeElement.classList.contains('free-text-input') && (this.isFreeTextAnnotation(this.pdfViewer.selectedItems.annotations))) {\n this.focusViewerContainer(true);\n }\n this.pdfViewer.annotationModule.annotationSelect(currentAnnotation.annotName, currentAnnotation.pageIndex, currentAnnotation, null, true);\n }\n if (this.isFreeTextAnnotation(this.pdfViewer.selectedItems.annotations) && !(this.pdfViewer.annotationModule.freeTextAnnotationModule.isInuptBoxInFocus)) {\n var elmtPosition = {};\n elmtPosition.x = this.pdfViewer.selectedItems.annotations[0].bounds.x;\n elmtPosition.y = this.pdfViewer.selectedItems.annotations[0].bounds.y;\n var targetAnnotation = void 0;\n if (this.pdfViewer.selectedItems.annotations[0].id == 'diagram_helper') {\n targetAnnotation = this.pdfViewer.nameTable[this.eventArgs.source.id];\n }\n else {\n targetAnnotation = this.pdfViewer.selectedItems.annotations[0];\n }\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.freeTextAnnotationModule.addInuptElemet(elmtPosition, targetAnnotation);\n }\n else if (this.pdfViewer.selectedItems.annotations[0] && this.pdfViewer.selectedItems.annotations[0].enableShapeLabel && !(this.pdfViewer.annotationModule.freeTextAnnotationModule.isInuptBoxInFocus)) {\n var elmtPosition = {};\n elmtPosition.x = this.pdfViewer.selectedItems.annotations[0].bounds.x;\n elmtPosition.y = this.pdfViewer.selectedItems.annotations[0].bounds.y;\n this.pdfViewer.annotation.inputElementModule.editLabel(elmtPosition, this.pdfViewer.selectedItems.annotations[0]);\n }\n }\n }\n };\n PdfViewerBase.prototype.onSingleTap = function (touches) {\n var target = touches[0].target;\n var isFormfields = false;\n this.singleTapTimer = null;\n if (target && (target.classList.contains('e-pdfviewer-formFields')\n || target.classList.contains('e-pdfviewer-ListBox') || target.classList.contains('e-pdfviewer-signatureformfields'))) {\n isFormfields = true;\n }\n if (!this.isLongTouchPropagated && !this.navigationPane.isNavigationToolbarVisible && !isFormfields) {\n if (this.pdfViewer.toolbarModule) {\n if ((this.touchClientX >= touches[0].clientX - 10) && (this.touchClientX <= touches[0].clientX + 10) &&\n (this.touchClientY >= touches[0].clientY - 10) && (this.touchClientY <= touches[0].clientY + 10)) {\n if (!this.isTapHidden) {\n if (isBlazor()) {\n // eslint-disable-next-line max-len\n this.viewerContainer.scrollTop -= this.pdfViewer.element.querySelector('.e-pv-mobile-toolbar').clientHeight * this.getZoomFactor();\n }\n if (this.pdfViewer.toolbar.moreDropDown) {\n var dropDown = this.getElement('_more_option-popup');\n if (dropDown.firstElementChild) {\n dropDown.classList.remove('e-popup-open');\n dropDown.classList.add('e-popup-close');\n dropDown.removeChild(dropDown.firstElementChild);\n }\n }\n }\n else {\n if (isBlazor()) {\n // eslint-disable-next-line max-len\n this.viewerContainer.scrollTop += this.pdfViewer.element.querySelector('.e-pv-mobile-toolbar').clientHeight * this.getZoomFactor();\n }\n }\n if (this.isTapHidden && (Browser.isDevice && !this.pdfViewer.enableDesktopMode)) {\n this.mobileScrollerContainer.style.display = '';\n this.updateMobileScrollerPosition();\n // eslint-disable-next-line max-len\n }\n else if ((Browser.isDevice && !this.pdfViewer.enableDesktopMode) && this.getSelectTextMarkupCurrentPage() == null) {\n this.mobileScrollerContainer.style.display = 'none';\n }\n if (this.getSelectTextMarkupCurrentPage() == null) {\n if (!isBlazor()) {\n if (this.pdfViewer.enableToolbar) {\n this.pdfViewer.toolbarModule.showToolbar(true);\n }\n }\n else {\n //this.pdfViewer._dotnetInstance.invokeMethodAsync('TapOnMobileDevice', this.isTapHidden);\n this.blazorUIAdaptor.tapOnMobileDevice(this.isTapHidden);\n }\n this.isTapHidden = !this.isTapHidden;\n }\n }\n this.tapCount = 0;\n }\n }\n };\n PdfViewerBase.prototype.onDoubleTap = function (touches) {\n var target = touches[0].target;\n var isFormfields = false;\n if (target && (target.classList.contains('e-pdfviewer-formFields')\n || target.classList.contains('e-pdfviewer-ListBox') || target.classList.contains('e-pdfviewer-signatureformfields'))) {\n isFormfields = true;\n }\n if (this.tapCount === 2 && !isFormfields) {\n this.tapCount = 0;\n /**\n * Sometimes the values gets differ by some decimal points. So converted the decimal points values to Integer values.\n */\n // eslint-disable-next-line\n if ((this.touchClientX >= parseInt((touches[0].clientX - 10).toString())) && (this.touchClientX <= touches[0].clientX + 10) &&\n (this.touchClientY >= touches[0].clientY - 10) && (this.touchClientY <= touches[0].clientY + 30)) {\n if (this.pdfViewer.magnification && this.pdfViewer.selectedItems.annotations.length !== 1) {\n this.pdfViewer.magnification.onDoubleTapMagnification();\n }\n this.viewerContainer.style.height = this.updatePageHeight(this.pdfViewer.element.getBoundingClientRect().height, this.toolbarHeight);\n this.isTapHidden = false;\n clearTimeout(this.singleTapTimer);\n this.singleTapTimer = null;\n }\n }\n };\n PdfViewerBase.prototype.preventTouchEvent = function (event) {\n if (this.pdfViewer.textSelectionModule) {\n // eslint-disable-next-line max-len\n if (!this.isPanMode && this.pdfViewer.enableTextSelection && !this.isTextSelectionDisabled && this.getSelectTextMarkupCurrentPage() == null) {\n if (!(this.isWebkitMobile && (Browser.isDevice && !this.pdfViewer.enableDesktopMode))) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n }\n };\n PdfViewerBase.prototype.renderStampAnnotation = function (event) {\n if (this.pdfViewer.annotation) {\n var zoomFactor = this.getZoomFactor();\n var pageIndex = this.pdfViewer.annotation.getEventPageNumber(event);\n var pageDiv = this.getElement('_pageDiv_' + pageIndex);\n if (this.pdfViewer.enableStampAnnotations) {\n var stampModule = this.pdfViewer.annotationModule.stampAnnotationModule;\n if (stampModule && stampModule.isStampAnnotSelected) {\n if (pageDiv) {\n var pageCurrentRect = pageDiv.getBoundingClientRect();\n // eslint-disable-next-line max-len\n if (event.type === 'touchend' && this.pdfViewer.annotationModule.stampAnnotationModule.currentStampAnnotation.shapeAnnotationType === 'Image') {\n var currentStampObj = this.pdfViewer.annotationModule.stampAnnotationModule.currentStampAnnotation;\n currentStampObj.pageIndex = pageIndex;\n currentStampObj.bounds.x = (event.changedTouches[0].clientX - pageCurrentRect.left) / zoomFactor;\n currentStampObj.bounds.y = (event.changedTouches[0].clientY - pageCurrentRect.top) / zoomFactor;\n stampModule.updateDeleteItems(pageIndex, currentStampObj, currentStampObj.opacity);\n this.pdfViewer.add(currentStampObj);\n var canvas = document.getElementById(this.pdfViewer.element.id + '_annotationCanvas_' + pageIndex);\n this.pdfViewer.renderDrawing(canvas, pageIndex);\n }\n else {\n // eslint-disable-next-line max-len\n stampModule.renderStamp((event.changedTouches[0].clientX - pageCurrentRect.left) / zoomFactor, (event.changedTouches[0].clientY - pageCurrentRect.top) / zoomFactor, null, null, pageIndex, null, null, null, null);\n }\n stampModule.isStampAnnotSelected = false;\n }\n }\n this.pdfViewer.annotation.onAnnotationMouseDown();\n }\n if (this.pdfViewer.enableHandwrittenSignature && this.isSignatureAdded && pageDiv) {\n var pageCurrentRect = pageDiv.getBoundingClientRect();\n this.currentSignatureAnnot.pageIndex = pageIndex;\n // eslint-disable-next-line max-len\n this.signatureModule.renderSignature((event.changedTouches[0].clientX - pageCurrentRect.left) / zoomFactor, (event.changedTouches[0].clientY - pageCurrentRect.top) / zoomFactor);\n this.isSignatureAdded = false;\n }\n if (event.touches.length === 1 && this.isTextMarkupAnnotationModule() && !this.getPopupNoteVisibleStatus()) {\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.onTextMarkupAnnotationTouchEnd(event);\n }\n }\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.initPageDiv = function (pageValues) {\n if (!isBlazor()) {\n if (this.pdfViewer.toolbarModule) {\n this.pdfViewer.toolbarModule.updateTotalPage();\n }\n }\n if ((Browser.isDevice && !this.pdfViewer.enableDesktopMode) && this.mobiletotalPageContainer) {\n this.mobiletotalPageContainer.innerHTML = this.pageCount.toString();\n this.pageNoContainer.innerHTML = '(1-' + this.pageCount.toString() + ')';\n }\n if (this.pageCount > 0) {\n var topValue = 0;\n var pageLimit = 0;\n this.isMixedSizeDocument = false;\n if (this.pageCount > 100) {\n // to render 100 pages intially.\n pageLimit = 100;\n this.pageLimit = pageLimit;\n }\n else {\n pageLimit = this.pageCount;\n }\n var isPortrait = false;\n var isLandscape = false;\n var differentPageSize = false;\n for (var i = 0; i < pageLimit; i++) {\n if (typeof pageValues.pageSizes[parseInt(i.toString(), 10)] !== 'object') {\n var pageSize = pageValues.pageSizes[parseInt(i.toString(), 10)].split(',');\n if (pageValues.pageSizes[i - 1] !== null && i !== 0) {\n var previousPageHeight = pageValues.pageSizes[i - 1].split(',');\n topValue = this.pageGap + parseFloat(previousPageHeight[1]) + topValue;\n }\n else {\n topValue = this.pageGap;\n }\n var size = { width: parseFloat(pageSize[0]), height: parseFloat(pageSize[1]), top: topValue };\n this.pageSize.push(size);\n }\n else {\n if (pageValues.pageSizes[i - 1] !== null && i !== 0) {\n // eslint-disable-next-line\n var previousPageHeight = pageValues.pageSizes[i - 1];\n topValue = this.pageGap + parseFloat(previousPageHeight.Height) + topValue;\n }\n else {\n topValue = this.pageGap;\n }\n var size = { width: pageValues.pageSizes[parseInt(i.toString(), 10)].Width, height: pageValues.pageSizes[parseInt(i.toString(), 10)].Height, top: topValue };\n this.pageSize.push(size);\n }\n if (this.pageSize[parseInt(i.toString(), 10)].height > this.pageSize[parseInt(i.toString(), 10)].width) {\n isPortrait = true;\n }\n if (this.pageSize[parseInt(i.toString(), 10)].width > this.pageSize[parseInt(i.toString(), 10)].height) {\n isLandscape = true;\n }\n if (i > 0 && this.pageSize[parseInt(i.toString(), 10)].width !== this.pageSize[i - 1].width) {\n differentPageSize = true;\n }\n var pageWidth = this.pageSize[parseInt(i.toString(), 10)].width;\n if (pageWidth > this.highestWidth) {\n this.highestWidth = pageWidth;\n }\n var pageHeight = this.pageSize[parseInt(i.toString(), 10)].height;\n if (pageHeight > this.highestHeight) {\n this.highestHeight = pageHeight;\n }\n }\n if ((isPortrait && isLandscape) || differentPageSize) {\n this.isMixedSizeDocument = true;\n }\n var limit = void 0;\n if (this.pdfViewer.initialRenderPages > 10) {\n if (this.pdfViewer.initialRenderPages > 100) {\n limit = pageLimit;\n }\n else {\n limit = this.pdfViewer.initialRenderPages <= this.pageCount ? this.pdfViewer.initialRenderPages : this.pageCount;\n }\n }\n else {\n limit = this.pageCount < 10 ? this.pageCount : 10;\n }\n for (var i = 0; i < limit; i++) {\n this.renderPageContainer(i, this.getPageWidth(i), this.getPageHeight(i), this.getPageTop(i));\n }\n // eslint-disable-next-line max-len\n this.pageContainer.style.height = this.getPageTop(this.pageSize.length - 1) + this.getPageHeight(this.pageSize.length - 1) + 'px';\n this.pageContainer.style.position = 'relative';\n if (this.pageLimit === 100) {\n var pageDiv = this.getElement('_pageDiv_' + this.pageLimit);\n if (pageDiv === null && this.pageLimit < this.pageCount) {\n Promise.all([this.renderPagesVirtually()]);\n }\n }\n }\n };\n PdfViewerBase.prototype.renderElementsVirtualScroll = function (pageNumber) {\n var lowerLimit = 1;\n var higherLimit = 3;\n if (this.pageStopValue <= 200) {\n lowerLimit = 4;\n higherLimit = 4;\n }\n else {\n lowerLimit = 2;\n higherLimit = 3;\n }\n var pageValue = pageNumber + lowerLimit;\n if (pageValue > this.pageCount) {\n pageValue = this.pageCount;\n }\n for (var i = pageNumber - 1; i <= pageValue; i++) {\n if (i !== -1) {\n this.renderPageElement(i);\n }\n }\n var lowerPageValue = pageNumber - 3;\n if (lowerPageValue < 0) {\n lowerPageValue = 0;\n }\n for (var i = pageNumber - 1; i >= lowerPageValue; i--) {\n if (i !== -1) {\n this.renderPageElement(i);\n }\n }\n for (var j = 0; j < this.pageCount; j++) {\n if (!((lowerPageValue <= j) && (j <= pageValue))) {\n var pageDiv = this.getElement('_pageDiv_' + j);\n var pageCanvas = this.getElement('_pageCanvas_' + j);\n var textLayer = this.getElement('_textLayer_' + j);\n var initialLoadedPages = this.pdfViewer.initialRenderPages > this.pageRenderCount ? (this.pdfViewer.initialRenderPages <= this.pageCount) ? (this.pdfViewer.initialRenderPages - 1) : this.pageCount : -1;\n if (pageCanvas && j > initialLoadedPages) {\n pageCanvas.parentNode.removeChild(pageCanvas);\n if (textLayer) {\n if (this.pdfViewer.textSelectionModule && textLayer.childNodes.length !== 0 && !this.isTextSelectionDisabled) {\n this.pdfViewer.textSelectionModule.maintainSelectionOnScroll(j, true);\n }\n textLayer.parentNode.removeChild(textLayer);\n }\n var indexInArray = this.renderedPagesList.indexOf(j);\n if (indexInArray !== -1) {\n this.renderedPagesList.splice(indexInArray, 1);\n }\n }\n if (pageDiv && j > initialLoadedPages) {\n pageDiv.parentNode.removeChild(pageDiv);\n var indexInArray = this.renderedPagesList.indexOf(j);\n if (indexInArray !== -1) {\n this.renderedPagesList.splice(indexInArray, 1);\n }\n }\n }\n }\n if (isBlazor())\n this.pdfViewer._dotnetInstance.invokeMethodAsync('UpdateCurrentPageNumber', this.currentPageNumber);\n };\n PdfViewerBase.prototype.renderPageElement = function (i) {\n var pageDiv = this.getElement('_pageDiv_' + i);\n var canvas = this.getElement('_pageCanvas_' + i);\n if (canvas == null && pageDiv == null && i < this.pageSize.length) {\n // eslint-disable-next-line\n this.renderPageContainer(i, this.getPageWidth(i), this.getPageHeight(i), this.getPageTop(i));\n }\n };\n PdfViewerBase.prototype.renderPagesVirtually = function () {\n return __awaiter(this, void 0, void 0, function () {\n var proxy;\n var _this = this;\n return __generator(this, function (_a) {\n proxy = this;\n setTimeout(function () {\n _this.initiateRenderPagesVirtually(proxy);\n }, 500);\n return [2 /*return*/];\n });\n });\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.initiateRenderPagesVirtually = function (proxy) {\n var jsonObject = { hashId: proxy.hashId, isCompletePageSizeNotReceived: true, action: 'VirtualLoad', elementId: proxy.pdfViewer.element.id, uniqueId: proxy.documentId, password: proxy.passwordData };\n if (proxy.jsonDocumentId) {\n // eslint-disable-next-line\n jsonObject.documentId = proxy.jsonDocumentId;\n }\n this.virtualLoadRequestHandler = new AjaxHandler(this.pdfViewer);\n this.virtualLoadRequestHandler.url = proxy.pdfViewer.serviceUrl + '/' + proxy.pdfViewer.serverActionSettings.load;\n this.virtualLoadRequestHandler.responseType = 'json';\n this.virtualLoadRequestHandler.mode = true;\n this.virtualLoadRequestHandler.send(jsonObject);\n // eslint-disable-next-line\n this.virtualLoadRequestHandler.onSuccess = function (result) {\n // eslint-disable-next-line\n var data = result.data;\n if (data) {\n if (typeof data !== 'object') {\n try {\n data = JSON.parse(data);\n }\n catch (error) {\n proxy.onControlError(500, data, 'VirtualLoad');\n }\n }\n }\n if (data) {\n while (typeof data !== 'object') {\n data = JSON.parse(data);\n }\n if (proxy.documentId === data.uniqueId) {\n proxy.pdfViewer.fireAjaxRequestSuccess('VirtualLoad', data);\n // eslint-disable-next-line\n var pageValues = data;\n if (proxy.pageSize[proxy.pageLimit - 1]) {\n var topValue = proxy.pageSize[proxy.pageLimit - 1].top;\n for (var i_1 = proxy.pageLimit; i_1 < proxy.pageCount; i_1++) {\n if (typeof (pageValues.pageSizes[parseInt(i_1.toString(), 10)]) !== 'object') {\n var pageSize = pageValues.pageSizes[parseInt(i_1.toString(), 10)].split(',');\n if (proxy.pageSize[i_1 - 1] !== null && i_1 !== 0) {\n var previousPageHeight = proxy.pageSize[i_1 - 1].height;\n topValue = proxy.pageGap + parseFloat(previousPageHeight) + topValue;\n }\n var size = { width: parseFloat(pageSize[0]), height: parseFloat(pageSize[1]), top: topValue };\n proxy.pageSize.push(size);\n }\n else {\n if (proxy.pageSize[i_1 - 1] !== null && i_1 !== 0) {\n var previousPageHeight = proxy.pageSize[i_1 - 1].height;\n topValue = proxy.pageGap + parseFloat(previousPageHeight) + topValue;\n }\n var size = { width: parseFloat(pageValues.pageSizes[parseInt(i_1.toString(), 10)].Width), height: parseFloat(pageValues.pageSizes[parseInt(i_1.toString(), 10)].Height), top: topValue };\n proxy.pageSize.push(size);\n }\n }\n // eslint-disable-next-line max-len\n proxy.pageContainer.style.height = proxy.getPageTop(proxy.pageSize.length - 1) + proxy.getPageHeight(proxy.pageSize.length - 1) + 'px';\n // eslint-disable-next-line\n var pageData = window.sessionStorage.getItem(proxy.documentId + '_pagedata');\n if (proxy.pageCount > 100) {\n if (this.pdfViewer.initialRenderPages > 100) {\n var limit = this.pdfViewer.initialRenderPages <= proxy.pageCount ? this.pdfViewer.initialRenderPages : proxy.pageCount;\n for (var i = 100; i < limit; i++) {\n proxy.renderPageContainer(i, proxy.getPageWidth(i), proxy.getPageHeight(i), proxy.getPageTop(i));\n proxy.createRequestForRender(i);\n }\n }\n proxy.pdfViewer.fireDocumentLoad(pageData);\n var linkAnnotationModule = proxy.pdfViewer.linkAnnotationModule;\n if (linkAnnotationModule && linkAnnotationModule.linkAnnotation && linkAnnotationModule.linkAnnotation.length > 0 && linkAnnotationModule.linkPage.length > 0) {\n linkAnnotationModule.renderDocumentLink(linkAnnotationModule.linkAnnotation, linkAnnotationModule.linkPage, linkAnnotationModule.annotationY, proxy.currentPageNumber - 1);\n }\n }\n }\n }\n }\n };\n // eslint-disable-next-line\n this.virtualLoadRequestHandler.onFailure = function (result) {\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText);\n };\n // eslint-disable-next-line\n this.virtualLoadRequestHandler.onError = function (result) {\n proxy.openNotificationPopup();\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText);\n };\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.tileRenderPage = function (data, pageIndex) {\n var _this = this;\n var proxy = null;\n proxy = this;\n if (data && this.pageSize[parseInt(pageIndex.toString(), 10)]) {\n var pageWidth = this.getPageWidth(pageIndex);\n var pageHeight = this.getPageHeight(pageIndex);\n // eslint-disable-next-line max-len\n var canvas_1 = this.getElement('_pageCanvas_' + pageIndex);\n var pageDiv_1 = this.getElement('_pageDiv_' + pageIndex);\n var tileX = data.tileX ? data.tileX : 0;\n var tileY = data.tileY ? data.tileY : 0;\n if (pageDiv_1) {\n pageDiv_1.style.width = pageWidth + 'px';\n pageDiv_1.style.height = pageHeight + 'px';\n pageDiv_1.style.background = '#fff';\n pageDiv_1.style.top = this.getPageTop(pageIndex) + 'px';\n if (this.pdfViewer.enableRtl) {\n pageDiv_1.style.right = this.updateLeftPosition(pageIndex) + 'px';\n }\n else {\n pageDiv_1.style.left = this.updateLeftPosition(pageIndex) + 'px';\n }\n }\n if (canvas_1) {\n canvas_1.style.background = '#fff';\n }\n var imageData = data['image'];\n var zoomFactor = this.retrieveCurrentZoomFactor();\n if (this.isReRenderRequired) {\n if (data.zoomFactor) {\n zoomFactor = data.zoomFactor;\n }\n var currentString = this.documentId + '_' + pageIndex + '_' + zoomFactor + '_' + data.tileX + '_' + data.tileY;\n // eslint-disable-next-line max-len\n this.tilerequestLists.push(currentString);\n // eslint-disable-next-line\n var matrix = data['transformationMatrix'];\n // eslint-disable-next-line\n var width = data['width'];\n if (imageData) {\n var tileX_1 = data.tileX ? data.tileX : 0;\n var tileY_1 = data.tileY ? data.tileY : 0;\n var scaleFactor = (!isNullOrUndefined(data.scaleFactor)) ? data.scaleFactor : 1.5;\n var image_1 = document.getElementById(this.pdfViewer.element.id + '_tileimg_' + pageIndex + '_' + this.getZoomFactor() + '_' + tileX_1 + '_' + tileY_1);\n if (!image_1) {\n image_1 = new Image();\n image_1.id = this.pdfViewer.element.id + '_tileimg_' + pageIndex + '_' + this.getZoomFactor() + '_' + tileX_1 + '_' + tileY_1;\n if (pageDiv_1) {\n pageDiv_1.append(image_1);\n }\n }\n image_1.src = imageData;\n image_1.setAttribute('alt', '');\n image_1.onload = function () {\n proxy.showPageLoadingIndicator(pageIndex, false);\n proxy.tileRenderCount = proxy.tileRenderCount + 1;\n if ((tileX_1 === 0) && (tileY_1 === 0)) {\n if (pageIndex === 0 && _this.isDocumentLoaded) {\n proxy.renderPDFInformations();\n proxy.isInitialLoaded = true;\n // eslint-disable-next-line\n var pageData = window.sessionStorage.getItem(proxy.documentId + '_pagedata');\n if (proxy.pageCount <= 100) {\n proxy.pdfViewer.fireDocumentLoad(pageData);\n }\n proxy.isDocumentLoaded = false;\n if (proxy.pdfViewer.textSearch && proxy.pdfViewer.isExtractText) {\n proxy.pdfViewer.textSearchModule.getPDFDocumentTexts();\n }\n }\n }\n if (proxy.tileRenderCount === proxy.tileRequestCount) {\n if (proxy.isTextMarkupAnnotationModule()) {\n proxy.pdfViewer.annotationModule.textMarkupAnnotationModule.rerenderAnnotations(pageIndex);\n }\n if (canvas_1) {\n canvas_1.style.display = 'none';\n canvas_1.src = '#';\n }\n var oldPageDiv = document.querySelectorAll('img[id*=\"' + proxy.pdfViewer.element.id + '_oldCanvas\"]');\n for (var i = 0; i < oldPageDiv.length; i++) {\n pageDiv_1.removeChild(oldPageDiv[parseInt(i.toString(), 10)]);\n }\n proxy.isTileImageRendered = false;\n proxy.tileRenderCount = 0;\n if (proxy.pdfViewer.magnificationModule) {\n proxy.pdfViewer.magnificationModule.rerenderCountIncrement();\n }\n proxy.isDrawnCompletely = true;\n }\n image_1.setAttribute('alt', 'Page ' + (pageIndex + 1));\n };\n var currentImageWidth = (((width * this.getZoomFactor()) / zoomFactor) / scaleFactor);\n var matrixElements = matrix.Elements ? matrix.Elements : matrix.Values;\n var currentImageTop = (((matrixElements[5] * this.getZoomFactor()) / zoomFactor) / scaleFactor);\n var currentImageLeft = (((matrixElements[4] * this.getZoomFactor()) / zoomFactor) / scaleFactor);\n image_1.width = currentImageWidth;\n image_1.style.width = currentImageWidth + 'px';\n image_1.style.top = currentImageTop + 'px';\n image_1.style.left = currentImageLeft + 'px';\n image_1.style.position = 'absolute';\n }\n if ((tileX === 0) && (tileY === 0)) {\n this.onPageRender(data, pageIndex, pageDiv_1);\n }\n }\n else {\n var oldCanvases = document.querySelectorAll('img[id*=\"' + proxy.pdfViewer.element.id + '_tileimg_' + pageIndex + '_\"]');\n var _loop_1 = function (l) {\n var tileImgId = oldCanvases[parseInt(l.toString(), 10)].id.split('_');\n var zoomFactor_1 = proxy.retrieveCurrentZoomFactor();\n // eslint-disable-next-line\n var tileData = JSON.parse(proxy.getWindowSessionStorageTile(pageIndex, parseFloat(tileImgId[tileImgId.length - 2]), parseFloat(tileImgId[tileImgId.length - 1]), zoomFactor_1));\n if (tileData && tileData.zoomFactor) {\n zoomFactor_1 = tileData.zoomFactor;\n }\n if (parseFloat(tileImgId[tileImgId.length - 4]) === pageIndex) {\n var node_1 = oldCanvases[parseInt(l.toString(), 10)];\n // Make sure it's really an Element\n if (node_1.nodeType == Node.ELEMENT_NODE) {\n node_1.onload = function () {\n proxy.showPageLoadingIndicator(pageIndex, false);\n proxy.tileRenderCount = proxy.tileRenderCount + 1;\n if ((tileX_2 === 0) && (tileY_2 === 0)) {\n if (pageIndex === 0 && _this.isDocumentLoaded) {\n _this.renderPDFInformations();\n _this.isInitialLoaded = true;\n // eslint-disable-next-line\n var pageData = window.sessionStorage.getItem(proxy.documentId + '_pagedata');\n if (proxy.pageCount <= 100) {\n proxy.pdfViewer.fireDocumentLoad(pageData);\n }\n proxy.isDocumentLoaded = false;\n if (proxy.pdfViewer.textSearch && proxy.pdfViewer.isExtractText) {\n proxy.pdfViewer.textSearchModule.getPDFDocumentTexts();\n }\n }\n }\n if (proxy.tileRenderCount === proxy.tileRequestCount) {\n canvas_1.style.display = 'none';\n canvas_1.src = '#';\n if (proxy.isTextMarkupAnnotationModule()) {\n proxy.pdfViewer.annotationModule.textMarkupAnnotationModule.rerenderAnnotations(pageIndex);\n }\n var oldPageDiv = document.querySelectorAll('img[id*=\"' + proxy.pdfViewer.element.id + '_oldCanvas\"]');\n for (var i = 0; i < oldPageDiv.length; i++) {\n pageDiv_1.removeChild(oldPageDiv[parseInt(i.toString(), 10)]);\n }\n proxy.isTileImageRendered = false;\n proxy.tileRenderCount = 0;\n if (proxy.pdfViewer.magnificationModule) {\n proxy.pdfViewer.magnificationModule.rerenderCountIncrement();\n }\n proxy.isDrawnCompletely = true;\n }\n node_1.setAttribute('alt', 'Page ' + (pageIndex + 1));\n };\n if (tileData)\n node_1.src = tileData.image;\n }\n }\n };\n for (var l = 0; l < oldCanvases.length; l++) {\n _loop_1(l);\n }\n var tileX_2 = data.tileX ? data.tileX : 0;\n var tileY_2 = data.tileY ? data.tileY : 0;\n if ((tileX_2 === 0) && (tileY_2 === 0)) {\n this.onPageRender(data, pageIndex, pageDiv_1);\n }\n }\n }\n };\n PdfViewerBase.prototype.renderTileCanvas = function (pageWidth, pageHeight, pageIndex, pageDiv, zoomFactor, scaleFactor) {\n var pageCanvas = this.getElement('_pageTileCanvas_' + pageIndex);\n if (!pageCanvas) {\n pageCanvas = createElement('canvas', { id: this.pdfViewer.element.id + '_pageTileCanvas_' + pageIndex, className: 'e-pv-pageTile-canvas' });\n pageCanvas.style.width = pageWidth + 'px';\n pageCanvas.style.height = pageHeight + 'px';\n pageCanvas.style.display = 'none';\n pageCanvas.style.backgroundColor = '#fff';\n if (this.isMixedSizeDocument && this.highestWidth > 0) {\n pageCanvas.style.marginLeft = 'auto';\n pageCanvas.style.marginRight = 'auto';\n }\n pageDiv.appendChild(pageCanvas);\n }\n return pageCanvas;\n };\n PdfViewerBase.prototype.calculateImageWidth = function (pageWidth, zoomFactor, scaleFactor, imageWidth) {\n var width = (pageWidth / this.getZoomFactor()) * zoomFactor * scaleFactor;\n // eslint-disable-next-line\n if ((parseInt(imageWidth.toString())) === (parseInt(width.toString()))) {\n imageWidth = width;\n }\n imageWidth = ((imageWidth * this.getZoomFactor()) / zoomFactor);\n return imageWidth;\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.renderPage = function (data, pageIndex, imageSource) {\n var _this = this;\n var proxy = this;\n if (data && this.pageSize[parseInt(pageIndex.toString(), 10)]) {\n var pageWidth = this.getPageWidth(pageIndex);\n var pageHeight = this.getPageHeight(pageIndex);\n // eslint-disable-next-line max-len\n var canvas_2 = this.getElement('_pageCanvas_' + pageIndex);\n var pageDiv_2 = this.getElement('_pageDiv_' + pageIndex);\n if (pageDiv_2) {\n pageDiv_2.style.width = pageWidth + 'px';\n pageDiv_2.style.height = pageHeight + 'px';\n pageDiv_2.style.top = this.getPageTop(pageIndex) + 'px';\n if (this.pdfViewer.enableRtl) {\n pageDiv_2.style.right = this.updateLeftPosition(pageIndex) + 'px';\n }\n else {\n pageDiv_2.style.left = this.updateLeftPosition(pageIndex) + 'px';\n }\n }\n if (canvas_2) {\n canvas_2.style.background = '#fff';\n canvas_2.style.display = 'block';\n canvas_2.style.width = pageWidth + 'px';\n canvas_2.style.height = pageHeight + 'px';\n if (pageWidth < parseFloat(pageDiv_2.style.width)) {\n pageDiv_2.style.boxShadow = 'none';\n }\n // eslint-disable-next-line\n var imageData = this.renderThumbnailImages ? imageSource : data['image'];\n if (imageData) {\n canvas_2.onload = function () {\n var oldCanvases = document.querySelectorAll('img[id*=\"' + proxy.pdfViewer.element.id + '_tileimg_' + pageIndex + '_\"]');\n var pageCanvas = proxy.getElement('_pageDiv_' + pageIndex);\n for (var i = 0; i < oldCanvases.length; i++) {\n var tileImgId = oldCanvases[parseInt(i.toString(), 10)].id.split('_');\n if (parseFloat(tileImgId[tileImgId.length - 3]) != proxy.getZoomFactor())\n pageCanvas.removeChild(oldCanvases[parseInt(i.toString(), 10)]);\n }\n var oldPageDiv = document.querySelectorAll('img[id*=\"' + proxy.pdfViewer.element.id + '_oldCanvas\"]');\n for (var i = 0; i < oldPageDiv.length; i++) {\n pageDiv_2.removeChild(oldPageDiv[parseInt(i.toString(), 10)]);\n }\n if (_this.pdfViewer.magnificationModule) {\n _this.pdfViewer.magnificationModule.rerenderCountIncrement();\n }\n _this.showPageLoadingIndicator(pageIndex, false);\n if (pageIndex === 0 && _this.isDocumentLoaded) {\n _this.renderPDFInformations();\n _this.isInitialLoaded = true;\n // eslint-disable-next-line\n var pageData = window.sessionStorage.getItem(_this.documentId + '_pagedata');\n if (_this.pageCount <= 100) {\n _this.pdfViewer.fireDocumentLoad(pageData);\n }\n _this.isDocumentLoaded = false;\n if (_this.pdfViewer.textSearch && _this.pdfViewer.isExtractText) {\n _this.pdfViewer.textSearchModule.getPDFDocumentTexts();\n }\n }\n if (_this.pdfViewer.magnificationModule) {\n _this.pdfViewer.magnificationModule.pushImageObjects(canvas_2);\n }\n canvas_2.setAttribute('alt', 'Page ' + (pageIndex + 1));\n };\n canvas_2.src = imageData;\n }\n this.onPageRender(data, pageIndex, pageDiv_2);\n }\n }\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.onPageRender = function (data, pageIndex, pageDiv) {\n // eslint-disable-next-line\n var aElement = pageDiv && pageDiv.getElementsByTagName('a');\n var isAnnotationRendered = false;\n if (aElement && aElement.length !== 0) {\n for (var index = aElement.length - 1; index >= 0; index--) {\n aElement[parseInt(index.toString(), 10)].parentNode.removeChild(aElement[parseInt(index.toString(), 10)]);\n }\n }\n if (this.pdfViewer.textSearchModule || this.pdfViewer.textSelectionModule || this.pdfViewer.annotationModule) {\n this.renderTextContent(data, pageIndex);\n }\n if (this.pdfViewer.formFieldsModule && !(this.pdfViewer.magnificationModule ? this.pdfViewer.magnificationModule.isFormFieldPageZoomed : false)) {\n this.pdfViewer.formFieldsModule.renderFormFields(pageIndex, false);\n }\n if (this.pdfViewer.accessibilityTagsModule && this.pdfViewer.enableAccessibilityTags && this.isTaggedPdf) {\n if (this.accessibilityTagsCollection[pageIndex.toString()]) {\n this.renderAccessibilityTags(pageIndex, this.accessibilityTagsCollection[pageIndex.toString()]);\n }\n else if (this.pageRequestListForAccessibilityTags.indexOf(pageIndex) === -1) {\n this.createRequestForAccessibilityTags(pageIndex);\n }\n }\n if (this.pdfViewer.formDesignerModule && !this.isDocumentLoaded) {\n this.pdfViewer.formDesignerModule.rerenderFormFields(pageIndex);\n }\n if (this.pdfViewer.formFieldsModule && !this.isDocumentLoaded && !this.pdfViewer.formDesignerModule) {\n this.pdfViewer.formFieldsModule.renderFormFields(pageIndex, false);\n }\n if (this.pdfViewer.formDesignerModule && this.isDocumentLoaded && (this.pdfViewer.magnificationModule ? this.pdfViewer.magnificationModule.isFormFieldPageZoomed : true)) {\n this.pdfViewer.formFieldsModule.renderFormFields(pageIndex, false);\n if (this.pdfViewer.magnificationModule) {\n this.pdfViewer.magnificationModule.isFormFieldPageZoomed = false;\n }\n }\n if (this.pdfViewer.enableHyperlink && this.pdfViewer.linkAnnotationModule) {\n this.pdfViewer.linkAnnotationModule.renderHyperlinkContent(data, pageIndex);\n }\n if (this.pdfViewer.textSelectionModule && !this.isTextSelectionDisabled) {\n this.pdfViewer.textSelectionModule.applySelectionRangeOnScroll(pageIndex);\n }\n if (this.documentAnnotationCollections) {\n var isAnnotationAdded = false;\n for (var i = 0; i < this.annotationRenderredList.length; i++) {\n if (this.annotationRenderredList[parseInt(i.toString(), 10)] === pageIndex) {\n isAnnotationAdded = true;\n }\n }\n // eslint-disable-next-line\n var pageAnnotations = this.documentAnnotationCollections[pageIndex];\n if (pageAnnotations && !isAnnotationAdded) {\n data.shapeAnnotation = pageAnnotations.shapeAnnotation;\n data.measureShapeAnnotation = pageAnnotations.measureShapeAnnotation;\n data.textMarkupAnnotation = pageAnnotations.textMarkupAnnotation;\n data.freeTextAnnotation = pageAnnotations.freeTextAnnotation;\n data.stampAnnotations = pageAnnotations.stampAnnotations;\n data.stickyNotesAnnotation = pageAnnotations.stickyNotesAnnotation;\n data.signatureAnnotation = pageAnnotations.signatureAnnotation;\n data.signatureInkAnnotation = pageAnnotations.signatureInkAnnotation;\n this.annotationRenderredList.push(pageIndex);\n }\n }\n if (this.isImportAction) {\n // eslint-disable-next-line\n var pageAnnotations = this.checkDocumentCollectionData(pageIndex);\n if (pageAnnotations) {\n data.shapeAnnotation = pageAnnotations.shapeAnnotation;\n data.measureShapeAnnotation = pageAnnotations.measureShapeAnnotation;\n data.textMarkupAnnotation = pageAnnotations.textMarkupAnnotation;\n data.freeTextAnnotation = pageAnnotations.freeTextAnnotation;\n data.stampAnnotations = pageAnnotations.stampAnnotations;\n data.stickyNotesAnnotation = pageAnnotations.stickyNotesAnnotation;\n data.signatureInkAnnotation = pageAnnotations.signatureInkAnnotation;\n isAnnotationRendered = true;\n }\n }\n if (this.pdfViewer.annotationModule && (this.isTextMarkupAnnotationModule() || this.isShapeBasedAnnotationsEnabled())) {\n if (this.isStampAnnotationModule()) {\n // eslint-disable-next-line\n var stampData = data['stampAnnotations'];\n if (isAnnotationRendered) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stampAnnotationModule.renderStampAnnotations(stampData, pageIndex, null, true);\n }\n else {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stampAnnotationModule.renderStampAnnotations(stampData, pageIndex);\n }\n }\n if (isAnnotationRendered) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.renderAnnotations(pageIndex, data.shapeAnnotation, data.measureShapeAnnotation, data.textMarkupAnnotation, null, true);\n }\n else {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.renderAnnotations(pageIndex, data.shapeAnnotation, data.measureShapeAnnotation, data.textMarkupAnnotation);\n }\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.renderStickyNotesAnnotations(data.stickyNotesAnnotation, pageIndex);\n }\n if (this.pdfViewer.formDesignerModule && !this.pdfViewer.annotationModule) {\n this.pdfViewer.formDesignerModule.updateCanvas(pageIndex);\n }\n if (this.pdfViewer.textSearchModule) {\n if (this.pdfViewer.textSearchModule.isTextSearch) {\n this.pdfViewer.textSearchModule.highlightOtherOccurrences(pageIndex);\n }\n }\n if (this.isShapeBasedAnnotationsEnabled()) {\n var canvas1 = this.getElement('_annotationCanvas_' + pageIndex);\n var commonStyle = 'position:absolute;top:0px;left:0px;overflow:hidden;pointer-events:none;z-index:1000';\n if (canvas1) {\n var bounds = canvas1.getBoundingClientRect();\n renderAdornerLayer(bounds, commonStyle, canvas1, pageIndex, this.pdfViewer);\n this.pdfViewer.renderSelector(pageIndex, this.pdfViewer.annotationSelectorSettings);\n }\n }\n if (this.pdfViewer.annotationModule) {\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.selectCommentsAnnotation(pageIndex);\n }\n if (this.isFreeTextAnnotationModule() && data.freeTextAnnotation) {\n if (isAnnotationRendered) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.freeTextAnnotationModule.renderFreeTextAnnotations(data.freeTextAnnotation, pageIndex);\n }\n else {\n this.pdfViewer.annotationModule.freeTextAnnotationModule.renderFreeTextAnnotations(data.freeTextAnnotation, pageIndex);\n }\n }\n if (this.isInkAnnotationModule() && data && data.signatureInkAnnotation) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.inkAnnotationModule.renderExistingInkSignature(data.signatureInkAnnotation, pageIndex, isAnnotationRendered);\n }\n if (data && data.signatureAnnotation && this.signatureModule) {\n this.signatureModule.renderExistingSignature(data.signatureAnnotation, pageIndex, false);\n }\n // eslint-disable-next-line max-len\n if (this.pdfViewer.annotationModule && this.pdfViewer.annotationModule.isAnnotationSelected && this.pdfViewer.annotationModule.annotationPageIndex === pageIndex) {\n this.pdfViewer.annotationModule.selectAnnotationFromCodeBehind();\n }\n this.isLoadedFormFieldAdded = false;\n };\n /**\n * @private\n * @param {number} pageIndex - page index for rendering the annotation.\n * @returns {void}\n */\n PdfViewerBase.prototype.renderAnnotations = function (pageIndex, isAddedProgrammatically) {\n // eslint-disable-next-line\n var data = {};\n if (this.documentAnnotationCollections) {\n var isAnnotationAdded = false;\n for (var i = 0; i < this.annotationRenderredList.length; i++) {\n if (this.annotationRenderredList[parseInt(i.toString(), 10)] === pageIndex) {\n isAnnotationAdded = true;\n }\n }\n // eslint-disable-next-line\n var pageAnnotations = this.documentAnnotationCollections[pageIndex];\n if (pageAnnotations && !isAnnotationAdded) {\n data.shapeAnnotation = pageAnnotations.shapeAnnotation;\n data.measureShapeAnnotation = pageAnnotations.measureShapeAnnotation;\n data.textMarkupAnnotation = pageAnnotations.textMarkupAnnotation;\n data.freeTextAnnotation = pageAnnotations.freeTextAnnotation;\n data.stampAnnotations = pageAnnotations.stampAnnotations;\n data.stickyNotesAnnotation = pageAnnotations.stickyNotesAnnotation;\n data.signatureAnnotation = pageAnnotations.signatureAnnotation;\n data.signatureInkAnnotation = pageAnnotations.signatureInkAnnotation;\n this.annotationRenderredList.push(pageIndex);\n }\n }\n if (this.isAnnotationCollectionRemoved) {\n data.shapeAnnotation = [];\n data.measureShapeAnnotation = [];\n data.textMarkupAnnotation = [];\n data.freeTextAnnotation = [];\n data.stampAnnotations = [];\n data.stickyNotesAnnotation = [];\n data.signatureInkAnnotation = [];\n }\n if (this.isTextMarkupAnnotationModule() || this.isShapeBasedAnnotationsEnabled()) {\n if (this.isStampAnnotationModule()) {\n // eslint-disable-next-line\n var stampData = data['stampAnnotations'];\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stampAnnotationModule.renderStampAnnotations(stampData, pageIndex);\n }\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.renderAnnotations(pageIndex, data.shapeAnnotation, data.measureShapeAnnotation, data.textMarkupAnnotation);\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.renderStickyNotesAnnotations(data.stickyNotesAnnotation, pageIndex);\n }\n if (this.pdfViewer.textSearchModule) {\n if (this.pdfViewer.textSearchModule.isTextSearch) {\n this.pdfViewer.textSearchModule.highlightOtherOccurrences(pageIndex);\n }\n }\n if (this.isImportAction) {\n var isAnnotationAdded = false;\n for (var i = 0; i < this.annotationPageList.length; i++) {\n if (this.annotationPageList[parseInt(i.toString(), 10)] === pageIndex) {\n isAnnotationAdded = true;\n }\n }\n if (!isAnnotationAdded) {\n if (this.importedAnnotation) {\n this.drawPageAnnotations(this.importedAnnotation, pageIndex, true);\n this.annotationPageList[this.annotationPageList.length] = pageIndex;\n }\n }\n }\n if (this.isShapeBasedAnnotationsEnabled()) {\n var canvas1 = this.getElement('_annotationCanvas_' + pageIndex);\n var commonStyle = 'position:absolute;top:0px;left:0px;overflow:hidden;pointer-events:none;z-index:1000';\n if (canvas1) {\n var bounds = canvas1.getBoundingClientRect();\n renderAdornerLayer(bounds, commonStyle, canvas1, pageIndex, this.pdfViewer);\n this.pdfViewer.renderSelector(pageIndex);\n }\n }\n if (this.pdfViewer.annotationModule) {\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.selectCommentsAnnotation(pageIndex);\n }\n if (this.isFreeTextAnnotationModule() && data.freeTextAnnotation) {\n this.pdfViewer.annotationModule.freeTextAnnotationModule.renderFreeTextAnnotations(data.freeTextAnnotation, pageIndex, undefined);\n }\n if (data && data.signatureAnnotation) {\n this.signatureModule.renderExistingSignature(data.signatureAnnotation, pageIndex, false);\n }\n if (this.isInkAnnotationModule() && data && data.signatureInkAnnotation) {\n this.pdfViewer.annotationModule.inkAnnotationModule.renderExistingInkSignature(data.signatureInkAnnotation, pageIndex, false);\n }\n if (this.pdfViewer.annotationModule && this.pdfViewer.annotationModule.isAnnotationSelected) {\n this.pdfViewer.annotationModule.selectAnnotationFromCodeBehind();\n }\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.renderTextContent = function (data, pageIndex) {\n // eslint-disable-next-line\n var texts = data['textContent'];\n // eslint-disable-next-line\n var bounds = data['textBounds'];\n // eslint-disable-next-line\n var rotation = data['rotation'];\n var rtldoc = data.documentTextCollection ? this.checkIsRtlText(data.documentTextCollection[0][parseInt(pageIndex.toString(), 10)].PageText) : this.checkIsRtlText(data.pageText);\n var textLayer = this.getElement('_textLayer_' + pageIndex);\n if (!textLayer) {\n // eslint-disable-next-line max-len\n textLayer = this.textLayer.addTextLayer(pageIndex, this.getPageWidth(pageIndex), this.getPageHeight(pageIndex), this.getElement('_pageDiv_' + pageIndex));\n }\n if (textLayer && texts && bounds) {\n textLayer.style.display = 'block';\n if (textLayer.childNodes.length === 0) {\n this.textLayer.renderTextContents(pageIndex, texts, bounds, rotation, rtldoc);\n }\n else {\n this.textLayer.resizeTextContents(pageIndex, texts, bounds, rotation, true);\n }\n }\n };\n PdfViewerBase.prototype.renderAccessibilityTags = function (pageIndex, taggedTextResponse) {\n this.accessibilityTags.renderAccessibilityTags(pageIndex, taggedTextResponse);\n };\n PdfViewerBase.prototype.returnPageListForAccessibilityTags = function (pageIndex) {\n var pageList = [];\n if (!this.enableAccessibilityMultiPageRequest) {\n return [pageIndex];\n }\n var minPage = pageIndex - 2 > 0 ? pageIndex - 2 : 0;\n var maxPage = pageIndex + 4 < this.pageCount - 1 ? pageIndex + 4 : this.pageCount - 1;\n for (var i = minPage; i <= maxPage; i++) {\n if (this.accessibilityTagsCollection[parseInt(i.toString(), 10)] === undefined) {\n pageList.push(parseInt(i.toString(), 10));\n }\n else {\n maxPage = maxPage + 1 < this.pageCount - 1 ? maxPage + 1 : this.pageCount - 1;\n }\n }\n this.pageRequestListForAccessibilityTags = pageList;\n return pageList;\n };\n PdfViewerBase.prototype.createRequestForAccessibilityTags = function (pageIndex) {\n var jsonObject;\n var proxy = this;\n jsonObject = { action: 'RenderTaggedContent', elementId: this.pdfViewer.element.id, hashId: this.hashId, uniqueId: this.documentId, pageList: JSON.stringify(this.returnPageListForAccessibilityTags(pageIndex)) };\n if (this.jsonDocumentId) {\n jsonObject.document = this.jsonDocumentId;\n }\n var url = this.pdfViewer.serviceUrl + '/' + \"RenderTaggedContent\";\n this.accessibilityTagsHandler = new AjaxHandler(this.pdfViewer);\n this.accessibilityTagsHandler.url = url;\n this.accessibilityTagsHandler.mode = true;\n this.accessibilityTagsHandler.responseType = 'text';\n this.accessibilityTagsHandler.send(jsonObject);\n this.accessibilityTagsHandler.onSuccess = function (result) {\n var data = JSON.parse(result.data);\n var pageData;\n for (var i = 0; i < data.length; i++) {\n pageData = data[parseInt(i.toString(), 10)];\n proxy.accessibilityTagsCollection[pageData[0]] = pageData[1];\n }\n proxy.pageRequestListForAccessibilityTags = [];\n if (proxy.accessibilityTagsCollection[parseInt(pageIndex.toString(), 10)]) {\n proxy.renderAccessibilityTags(pageIndex, proxy.accessibilityTagsCollection[parseInt(pageIndex.toString(), 10)]);\n }\n if (proxy.accessibilityTagsCollection[pageIndex - 1 <= 0 ? parseInt((pageIndex - 1).toString(), 10) : 0]) {\n proxy.renderAccessibilityTags(pageIndex - 1 <= 0 ? pageIndex - 1 : 0, proxy.accessibilityTagsCollection[pageIndex - 1 <= 0 ? parseInt((pageIndex - 1).toString(), 10) : 0]);\n }\n };\n };\n PdfViewerBase.prototype.renderPageContainer = function (pageNumber, pageWidth, pageHeight, topValue) {\n // eslint-disable-next-line max-len\n var pageDiv = createElement('div', { id: this.pdfViewer.element.id + '_pageDiv_' + pageNumber, className: 'e-pv-page-div', attrs: { 'tabindex': '-1' } });\n pageDiv.style.width = pageWidth + 'px';\n pageDiv.style.height = pageHeight + 'px';\n if (this.pdfViewer.enableRtl) {\n pageDiv.style.right = this.updateLeftPosition(pageNumber) + 'px';\n }\n else {\n pageDiv.style.left = this.updateLeftPosition(pageNumber) + 'px';\n }\n pageDiv.style.top = topValue + 'px';\n this.pageContainer.appendChild(pageDiv);\n this.pageContainer.style.width = (this.isMixedSizeDocument && (this.highestWidth * this.getZoomFactor()) > this.viewerContainer.clientWidth) ? (this.highestWidth * this.getZoomFactor()) + 'px' : this.viewerContainer.clientWidth + 'px';\n this.createWaitingPopup(pageNumber);\n this.orderPageDivElements(pageDiv, pageNumber);\n this.renderPageCanvas(pageDiv, pageWidth, pageHeight, pageNumber, 'block');\n if ((Browser.isDevice && !this.pdfViewer.enableDesktopMode) && !this.isThumb) {\n this.updateMobileScrollerPosition();\n }\n };\n PdfViewerBase.prototype.renderPDFInformations = function () {\n if (this.pdfViewer.thumbnailViewModule && (!Browser.isDevice || this.pdfViewer.enableDesktopMode)) {\n this.pdfViewer.thumbnailViewModule.createRequestForThumbnails();\n }\n if (this.pdfViewer.bookmarkViewModule) {\n this.pdfViewer.bookmarkViewModule.createRequestForBookmarks();\n }\n if (this.pdfViewer.annotationModule) {\n if (this.pdfViewer.toolbarModule) {\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.initializeAcccordionContainer();\n }\n if (this.pdfViewer.isCommandPanelOpen) {\n this.pdfViewer.annotation.showCommentsPanel();\n }\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.createRequestForComments();\n }\n };\n PdfViewerBase.prototype.orderPageDivElements = function (pageDiv, pageIndex) {\n var nextElement = this.getElement('_pageDiv_' + (pageIndex + 1));\n if (nextElement) {\n this.pageContainer.insertBefore(pageDiv, nextElement);\n }\n else {\n this.pageContainer.appendChild(pageDiv);\n }\n };\n /**\n * @param pageDiv\n * @param pageWidth\n * @param pageHeight\n * @param pageNumber\n * @param displayMode\n * @param pageDiv\n * @param pageWidth\n * @param pageHeight\n * @param pageNumber\n * @param displayMode\n * @param pageDiv\n * @param pageWidth\n * @param pageHeight\n * @param pageNumber\n * @param displayMode\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.renderPageCanvas = function (pageDiv, pageWidth, pageHeight, pageNumber, displayMode) {\n if (pageDiv) {\n // eslint-disable-next-line\n var pageCanvas = this.getElement('_pageCanvas_' + pageNumber);\n if (pageCanvas) {\n pageCanvas.width = pageWidth;\n pageCanvas.height = pageHeight;\n pageCanvas.style.display = 'block';\n if (this.isMixedSizeDocument && this.highestWidth > 0) {\n pageCanvas.style.marginLeft = 'auto';\n pageCanvas.style.marginRight = 'auto';\n }\n }\n else {\n // eslint-disable-next-line max-len\n pageCanvas = createElement('img', { id: this.pdfViewer.element.id + '_pageCanvas_' + pageNumber, className: 'e-pv-page-canvas' });\n pageCanvas.width = pageWidth;\n pageCanvas.height = pageHeight;\n pageCanvas.style.display = displayMode;\n if (this.isMixedSizeDocument && this.highestWidth > 0) {\n pageCanvas.style.marginLeft = 'auto';\n pageCanvas.style.marginRight = 'auto';\n }\n pageDiv.appendChild(pageCanvas);\n }\n pageCanvas.setAttribute('alt', '');\n if (this.pdfViewer.annotationModule && this.pdfViewer.annotation) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.createAnnotationLayer(pageDiv, pageWidth, pageHeight, pageNumber, displayMode);\n }\n if (this.pdfViewer.textSearchModule || this.pdfViewer.textSelectionModule || this.pdfViewer.annotationModule) {\n this.textLayer.addTextLayer(pageNumber, pageWidth, pageHeight, pageDiv);\n }\n if (this.pdfViewer.formDesignerModule && !this.pdfViewer.annotationModule) {\n this.pdfViewer.formDesignerModule.createAnnotationLayer(pageDiv, pageWidth, pageHeight, pageNumber, displayMode);\n }\n return pageCanvas;\n }\n };\n /**\n * @private\n * @param {any} pageCanvas - The canvas for rendering the page.\n * @param {any} pageNumber - The page number for adding styles.\n * @returns {void}\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.applyElementStyles = function (pageCanvas, pageNumber) {\n if (this.isMixedSizeDocument && pageCanvas) {\n var canvasElement = document.getElementById(this.pdfViewer.element.id + '_pageCanvas_' + pageNumber);\n var oldCanvas = document.getElementById(this.pdfViewer.element.id + '_oldCanvas_' + pageNumber);\n if (pageCanvas && canvasElement && canvasElement.offsetLeft > 0) {\n pageCanvas.style.marginLeft = canvasElement.offsetLeft + 'px';\n pageCanvas.style.marginRight = canvasElement.offsetLeft + 'px';\n }\n else if (oldCanvas && oldCanvas.offsetLeft > 0) {\n pageCanvas.style.marginLeft = oldCanvas.offsetLeft + 'px';\n pageCanvas.style.marginRight = oldCanvas.offsetLeft + 'px';\n }\n else {\n pageCanvas.style.marginLeft = 'auto';\n pageCanvas.style.marginRight = 'auto';\n }\n }\n };\n /**\n * @private\n * @param {number} pageIndex - page index for updating positon.\n * @returns {void}\n */\n PdfViewerBase.prototype.updateLeftPosition = function (pageIndex) {\n var leftPosition;\n var width = this.viewerContainer.getBoundingClientRect().width;\n if (width === 0) {\n width = parseFloat(this.pdfViewer.width.toString());\n }\n // eslint-disable-next-line max-len\n if (this.isMixedSizeDocument && this.highestWidth > 0) {\n if (this.viewerContainer.clientWidth > 0) {\n leftPosition = (this.viewerContainer.clientWidth - (this.highestWidth * this.getZoomFactor())) / 2;\n }\n else {\n leftPosition = (width - (this.highestWidth * this.getZoomFactor())) / 2;\n }\n var pageDiff = (this.highestWidth * this.getZoomFactor() - this.getPageWidth(pageIndex)) / 2;\n if (leftPosition > 0) {\n leftPosition += pageDiff;\n }\n else {\n leftPosition = pageDiff;\n }\n this.pageContainer.style.width = ((this.highestWidth * this.getZoomFactor()) > this.viewerContainer.clientWidth) ? (this.highestWidth * this.getZoomFactor()) + 'px' : this.viewerContainer.clientWidth + 'px';\n }\n else {\n if (this.viewerContainer.clientWidth > 0) {\n leftPosition = (this.viewerContainer.clientWidth - this.getPageWidth(pageIndex)) / 2;\n }\n else {\n leftPosition = (width - this.getPageWidth(pageIndex)) / 2;\n }\n }\n var isLandscape = false;\n if (this.pageSize[parseInt(pageIndex.toString(), 10)].width > this.pageSize[parseInt(pageIndex.toString(), 10)].height) {\n isLandscape = true;\n }\n // eslint-disable-next-line max-len\n if (leftPosition < 0 || (this.pdfViewer.magnificationModule ? ((this.pdfViewer.magnificationModule.isAutoZoom && this.getZoomFactor() < 1) || this.pdfViewer.magnificationModule.fitType === 'fitToWidth') : false)) {\n var leftValue = leftPosition;\n if (leftPosition > 0 && (Browser.isDevice && !this.pdfViewer.enableDesktopMode)) {\n // eslint-disable-next-line\n leftPosition = leftValue;\n }\n else {\n leftPosition = this.pageLeft;\n }\n if ((leftPosition > 0) && this.isMixedSizeDocument) {\n if (leftValue > 0) {\n leftPosition = leftValue;\n }\n }\n }\n return leftPosition;\n };\n /**\n * @private\n * @param {number} pageIndex - The page index for positon.\n * @returns {void}\n */\n PdfViewerBase.prototype.applyLeftPosition = function (pageIndex) {\n var leftPosition;\n if (this.pageSize[parseInt(pageIndex.toString(), 10)]) {\n if (this.isMixedSizeDocument && this.highestWidth > 0) {\n if (this.viewerContainer.clientWidth > 0) {\n // eslint-disable-next-line max-len\n leftPosition = (this.viewerContainer.clientWidth - (this.highestWidth * this.getZoomFactor())) / 2;\n }\n else {\n // eslint-disable-next-line max-len\n leftPosition = (this.viewerContainer.getBoundingClientRect().width - (this.highestWidth * this.getZoomFactor())) / 2;\n }\n var pageDiff = (this.highestWidth * this.getZoomFactor() - this.getPageWidth(pageIndex)) / 2;\n if (leftPosition > 0) {\n leftPosition += pageDiff;\n }\n else {\n leftPosition = pageDiff;\n }\n }\n else {\n if (this.viewerContainer.clientWidth > 0) {\n // eslint-disable-next-line max-len\n leftPosition = (this.viewerContainer.clientWidth - this.pageSize[parseInt(pageIndex.toString(), 10)].width * this.getZoomFactor()) / 2;\n }\n else {\n // eslint-disable-next-line max-len\n leftPosition = (this.viewerContainer.getBoundingClientRect().width - this.pageSize[parseInt(pageIndex.toString(), 10)].width * this.getZoomFactor()) / 2;\n }\n }\n var isLandscape = false;\n if (this.pageSize[parseInt(pageIndex.toString(), 10)].width > this.pageSize[parseInt(pageIndex.toString(), 10)].height) {\n isLandscape = true;\n }\n // eslint-disable-next-line max-len\n if (leftPosition < 0 || (this.pdfViewer.magnificationModule ? ((this.pdfViewer.magnificationModule.isAutoZoom && this.getZoomFactor() < 1) || this.pdfViewer.magnificationModule.fitType === 'fitToWidth') : false)) {\n var leftValue = leftPosition;\n leftPosition = this.pageLeft;\n // eslint-disable-next-line max-len\n if ((leftValue > 0) && this.isMixedSizeDocument) {\n leftPosition = leftValue;\n }\n }\n // eslint-disable-next-line max-len\n var pageDiv = document.getElementById(this.pdfViewer.element.id + '_pageDiv_' + pageIndex);\n if (pageDiv) {\n if (!this.pdfViewer.enableRtl) {\n pageDiv.style.left = leftPosition + 'px';\n }\n else {\n pageDiv.style.right = leftPosition + 'px';\n }\n }\n }\n };\n PdfViewerBase.prototype.updatePageHeight = function (viewerHeight, toolbarHeight) {\n return ((viewerHeight - toolbarHeight) / viewerHeight) * 100 + '%';\n };\n /**\n * @private\n * @param {Point} clientPoint - The user should provide a x, y coordinates.\n * @returns {number}\n */\n PdfViewerBase.prototype.getPageNumberFromClientPoint = function (clientPoint) {\n var pointX = clientPoint.x + this.viewerContainer.scrollLeft;\n var pointY = clientPoint.y + this.viewerContainer.scrollTop;\n for (var i = 0; i < this.pageCount; i++) {\n var pageTop = this.pageSize[parseInt(i.toString(), 10)].height + this.viewerContainer.scrollTop;\n if (pointY < (this.pageSize[parseInt(i.toString(), 10)].top + pageTop)) {\n var viewerContainerBounds = this.getElement('_pageViewContainer').getBoundingClientRect();\n var pageLeft = ((viewerContainerBounds.width - this.pageSize[parseInt(i.toString(), 10)].width) / 2) + viewerContainerBounds.x;\n var verticalScrollPosition = 0;\n if (pointY > this.pageSize[parseInt(i.toString(), 10)].top) {\n verticalScrollPosition = (pointY - this.pageSize[parseInt(i.toString(), 10)].top);\n }\n else {\n verticalScrollPosition = (this.pageSize[parseInt(i.toString(), 10)].top - pointY);\n }\n if (verticalScrollPosition > 0) {\n if (this.pageSize[parseInt(i.toString(), 10)] != null) {\n var pageHeight = this.getPageHeight(i);\n if (pageLeft >= 0) {\n if ((pointX < pageLeft) || (pointX > (pageLeft + (this.pageSize[parseInt(i.toString(), 10)].width)))) {\n return -1;\n }\n }\n if (verticalScrollPosition <= (this.getPageTop(i) + pageTop)) {\n return i + 1;\n }\n }\n }\n }\n }\n return -1;\n };\n /**\n * @private\n * @param {Point} clientPoint - The user should provide a x, y coordinates.\n * @param {number} pageNumber - We need to pass pageNumber.\n * @returns {Point}\n */\n PdfViewerBase.prototype.convertClientPointToPagePoint = function (clientPoint, pageNumber) {\n if (pageNumber !== -1) {\n var viewerContainerBounds = this.getElement('_pageViewContainer').getBoundingClientRect();\n var pageLeft = ((viewerContainerBounds.width - this.pageSize[pageNumber - 1].width) / 2) + viewerContainerBounds.x;\n var pagePoint = { x: (clientPoint.x + this.viewerContainer.scrollLeft) - pageLeft, y: (clientPoint.y + this.viewerContainer.scrollTop) - this.pageSize[pageNumber - 1].top };\n return pagePoint;\n }\n return null;\n };\n /**\n * @private\n * @param {Point} pagePoint - The user needs to provide a page x, y position.\n * @param {number} pageNumber - We need to pass pageNumber.\n * @returns {Point}\n */\n PdfViewerBase.prototype.convertPagePointToClientPoint = function (pagePoint, pageNumber) {\n if (pageNumber !== -1) {\n var viewerContainerBounds = this.getElement('_pageViewContainer').getBoundingClientRect();\n var pageLeft = ((viewerContainerBounds.width - this.pageSize[pageNumber - 1].width) / 2) + viewerContainerBounds.x;\n var clientPoint = { x: pagePoint.x + pageLeft, y: pagePoint.y + this.pageSize[pageNumber - 1].top };\n return clientPoint;\n }\n return null;\n };\n /**\n * @private\n * @param {Point} pagePoint - The user needs to provide a page x, y position.\n * @param {number} pageNumber - We need to pass pageNumber.\n * @returns {Point}\n */\n PdfViewerBase.prototype.convertPagePointToScrollingPoint = function (pagePoint, pageNumber) {\n if (pageNumber !== -1) {\n var scrollingPoint = { x: pagePoint.x + this.viewerContainer.scrollLeft, y: pagePoint.y + this.viewerContainer.scrollTop };\n return scrollingPoint;\n }\n return null;\n };\n PdfViewerBase.prototype.initiatePageViewScrollChanged = function () {\n if (this.scrollHoldTimer) {\n clearTimeout(this.scrollHoldTimer);\n }\n this.scrollHoldTimer = null;\n if ((this.scrollPosition * this.getZoomFactor()) !== this.viewerContainer.scrollTop) {\n this.scrollPosition = this.viewerContainer.scrollTop;\n this.pageViewScrollChanged(this.currentPageNumber);\n }\n };\n PdfViewerBase.prototype.renderCountIncrement = function () {\n if (this.pdfViewer.magnificationModule) {\n this.pdfViewer.magnificationModule.renderCountIncrement();\n }\n };\n /**\n * @private\n * @param {number} currentPageNumber - The current pagenumber.\n * @returns {void}\n */\n PdfViewerBase.prototype.pageViewScrollChanged = function (currentPageNumber) {\n if (this.isPanMode) {\n if (this.renderedPagesList.indexOf(currentPageNumber - 1) === -1) {\n this.reRenderedCount = 0;\n }\n }\n else {\n this.reRenderedCount = 0;\n }\n var currentPageIndex = currentPageNumber - 1;\n if (currentPageNumber !== this.previousPage && currentPageNumber <= this.pageCount) {\n var isSkip = false;\n if (this.isDataExits && !this.getStoredData(currentPageIndex)) {\n isSkip = true;\n }\n if (this.renderedPagesList.indexOf(currentPageIndex) === -1 && !this.getMagnified() && !isSkip) {\n this.renderCountIncrement();\n this.createRequestForRender(currentPageIndex);\n }\n }\n if (!(this.getMagnified() || this.getPagesPinchZoomed())) {\n var previous = currentPageIndex - 1;\n var isSkip = false;\n var canvas = this.getElement('_pageCanvas_' + previous);\n if (this.isDataExits && !this.getStoredData(previous)) {\n isSkip = true;\n }\n if (canvas !== null && !isSkip) {\n if (this.renderedPagesList.indexOf(previous) === -1 && !this.getMagnified()) {\n this.renderCountIncrement();\n this.createRequestForRender(previous);\n }\n }\n if (this.isMinimumZoom) {\n this.renderPreviousPagesInScroll(previous);\n }\n var next = currentPageIndex + 1;\n var pageHeight = 0;\n if (next < this.pageCount) {\n pageHeight = this.getPageHeight(next);\n var allowPageRendering = this.isMinimumZoom ? this.isMinimumZoom : this.renderedPagesList.indexOf(next) === -1;\n if (allowPageRendering && !this.getMagnified() && pageHeight) {\n if (this.isDocumentLoaded && this.pdfViewer.initialRenderPages > this.pageRenderCount && (this.getPageHeight(this.pdfViewer.initialRenderPages - 1) + this.getPageTop(this.pdfViewer.initialRenderPages - 1)) > this.viewerContainer.clientHeight) {\n var renderLimit = this.pdfViewer.initialRenderPages <= this.pageCount ? this.pdfViewer.initialRenderPages : this.pageCount;\n for (var i = 1; i < renderLimit; i++) {\n this.createRequestForRender(i);\n }\n }\n else {\n this.createRequestForRender(next);\n this.renderCountIncrement();\n while (this.viewerContainer.clientHeight > pageHeight) {\n next = next + 1;\n if (next < this.pageCount) {\n this.renderPageElement(next);\n this.createRequestForRender(next);\n pageHeight += this.getPageHeight(next);\n this.renderCountIncrement();\n }\n else {\n break;\n }\n }\n }\n }\n }\n }\n };\n PdfViewerBase.prototype.renderPreviousPagesInScroll = function (pageIndex) {\n var next = pageIndex - 1;\n var pageNumber = next - 1;\n if (next > 0) {\n if (this.renderedPagesList.indexOf(next) === -1 && !this.getMagnified()) {\n this.createRequestForRender(next);\n this.renderCountIncrement();\n }\n if (pageNumber > 0) {\n if (this.renderedPagesList.indexOf(pageNumber) === -1 && !this.getMagnified()) {\n this.createRequestForRender(pageNumber);\n this.renderCountIncrement();\n }\n }\n }\n };\n PdfViewerBase.prototype.downloadDocument = function (blobUrl) {\n // eslint-disable-next-line\n var Url = URL || webkitURL;\n blobUrl = Url.createObjectURL(blobUrl);\n var anchorElement = createElement('a');\n if (anchorElement.click) {\n anchorElement.href = blobUrl;\n anchorElement.target = '_parent';\n if ('download' in anchorElement) {\n anchorElement.download = this.downloadFileName;\n }\n (document.body || document.documentElement).appendChild(anchorElement);\n anchorElement.click();\n anchorElement.parentNode.removeChild(anchorElement);\n }\n else {\n if (window.top === window &&\n blobUrl.split('#')[0] === window.location.href.split('#')[0]) {\n var padCharacter = blobUrl.indexOf('?') === -1 ? '?' : '&';\n blobUrl = blobUrl.replace(/#|$/, padCharacter + '$&');\n }\n /* eslint-disable */\n window.open(blobUrl, '_parent');\n /* eslint-enable */\n }\n };\n PdfViewerBase.prototype.downloadExportFormat = function (blobUrl, annotationDataFormat, formFieldDataFormat, isForm) {\n var isJson = annotationDataFormat === 'Json' || formFieldDataFormat === 'Json';\n // eslint-disable-next-line max-len\n var extension = isJson ? '.json' : formFieldDataFormat === 'Fdf' ? '.fdf' : formFieldDataFormat === 'Xml' ? '.xml' : (annotationDataFormat === 'Xfdf' || formFieldDataFormat === 'Xfdf') ? '.xfdf' : null;\n if (!isNullOrUndefined(extension)) {\n // eslint-disable-next-line\n var Url = URL || webkitURL;\n blobUrl = Url.createObjectURL(blobUrl);\n var anchorElement = createElement('a');\n if (anchorElement.click) {\n anchorElement.href = blobUrl;\n anchorElement.target = '_parent';\n if ('download' in anchorElement) {\n if (this.pdfViewer.exportAnnotationFileName !== null) {\n anchorElement.download = this.pdfViewer.exportAnnotationFileName.split('.')[0] + extension;\n }\n else {\n anchorElement.download = this.pdfViewer.fileName.split('.')[0] + extension;\n }\n }\n (document.body || document.documentElement).appendChild(anchorElement);\n anchorElement.click();\n anchorElement.parentNode.removeChild(anchorElement);\n if (isForm) {\n this.pdfViewer.fireFormExportSuccess(blobUrl, anchorElement.download);\n }\n else {\n this.pdfViewer.fireExportSuccess(blobUrl, anchorElement.download);\n }\n }\n else if (isJson) {\n if (window.top === window &&\n blobUrl.split('#')[0] === window.location.href.split('#')[0]) {\n var padCharacter = blobUrl.indexOf('?') === -1 ? '?' : '&';\n blobUrl = blobUrl.replace(/#|$/, padCharacter + '$&');\n }\n /* eslint-disable */\n window.open(blobUrl, '_parent');\n /* eslint-enable */\n if (isForm) {\n this.pdfViewer.fireFormExportSuccess(blobUrl, this.pdfViewer.fileName.split('.')[0] + extension);\n }\n else {\n this.pdfViewer.fireExportSuccess(blobUrl, this.pdfViewer.fileName.split('.')[0] + extension);\n }\n }\n }\n };\n /**\n * @private\n * @param {string} data - The data for exporting the fields.\n * @returns {void}\n */\n PdfViewerBase.prototype.exportFormFields = function (data, formFieldDataFormat) {\n this.createRequestForExportFormfields(false, formFieldDataFormat, data);\n };\n /**\n * @param data\n * @param formFieldDataFormat\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.importFormFields = function (data, formFieldDataFormat) {\n this.createRequestForImportingFormfields(data, formFieldDataFormat);\n };\n /**\n * @param {boolean} isObject\n * @param {FormFieldDataFormat} formFieldDataFormat\n * @param {string} data - The data for exporting the fields.\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.createRequestForExportFormfields = function (isObject, formFieldDataFormat, data) {\n var _this = this;\n var proxy = null;\n proxy = this;\n var promise = new Promise(function (resolve, reject) {\n // eslint-disable-next-line\n var jsonObject = proxy.createFormfieldsJsonData();\n if (formFieldDataFormat === 'Json' || formFieldDataFormat === 'Fdf' || formFieldDataFormat === 'Xfdf' || formFieldDataFormat === \"Xml\") {\n jsonObject.formFieldDataFormat = formFieldDataFormat;\n proxy.pdfViewer.fireFormExportStarted(jsonObject);\n }\n jsonObject.action = 'ExportFormFields';\n // eslint-disable-next-line\n jsonObject['hashId'] = proxy.hashId;\n // eslint-disable-next-line\n jsonObject['fileName'] = proxy.pdfViewer.fileName;\n if (data && data !== '' && !isObject) {\n // eslint-disable-next-line\n jsonObject['filePath'] = data;\n }\n // eslint-disable-next-line\n jsonObject['elementId'] = _this.pdfViewer.element.id;\n // eslint-disable-next-line max-len\n if (proxy.jsonDocumentId) {\n // eslint-disable-next-line\n jsonObject.document = proxy.jsonDocumentId;\n }\n var formFieldsPageList = _this.getFormFieldsPageList(jsonObject[\"formDesigner\"]);\n jsonObject['formFieldsPageList'] = JSON.stringify(formFieldsPageList);\n jsonObject['isFormFieldAnnotationsExist'] = _this.isAnnotationsExist(jsonObject[\"formDesigner\"]) || _this.isFieldsDataExist(jsonObject[\"fieldsData\"]) || formFieldsPageList.length > 0;\n var url = proxy.pdfViewer.serviceUrl + '/' + proxy.pdfViewer.serverActionSettings.exportFormFields;\n proxy.exportFormFieldsRequestHandler = new AjaxHandler(_this.pdfViewer);\n proxy.exportFormFieldsRequestHandler.url = url;\n proxy.exportFormFieldsRequestHandler.mode = true;\n proxy.exportFormFieldsRequestHandler.responseType = 'text';\n proxy.exportFormFieldsRequestHandler.send(jsonObject);\n // eslint-disable-next-line\n proxy.exportFormFieldsRequestHandler.onSuccess = function (result) {\n // eslint-disable-next-line\n var data = result.data;\n var redirect = proxy.checkRedirection(data);\n if (!redirect) {\n if (data) {\n if (data) {\n proxy.pdfViewer.fireAjaxRequestSuccess(proxy.pdfViewer.serverActionSettings.exportFormFields, data);\n if (isObject) {\n // eslint-disable-next-line\n var annotationJson = decodeURIComponent(escape(atob(data.split(',')[1])));\n resolve(annotationJson);\n proxy.pdfViewer.fireFormExportSuccess(annotationJson, proxy.pdfViewer.fileName);\n }\n else if (data.split('base64,')[1]) {\n var blobUrl = proxy.createBlobUrl(data.split('base64,')[1], 'application/json');\n if (Browser.isIE || Browser.info.name === 'edge') {\n window.navigator.msSaveOrOpenBlob(blobUrl, proxy.pdfViewer.fileName.split('.')[0] + '.json');\n }\n else if (jsonObject.formFieldDataFormat === 'Json' || jsonObject.formFieldDataFormat === 'Fdf' || jsonObject.formFieldDataFormat === 'Xfdf' || jsonObject.formFieldDataFormat === 'Xml') {\n proxy.downloadExportFormat(blobUrl, null, formFieldDataFormat, true);\n }\n }\n }\n }\n }\n };\n // eslint-disable-next-line\n proxy.exportFormFieldsRequestHandler.onFailure = function (result) {\n proxy.pdfViewer.fireFormExportFailed(jsonObject.pdfAnnotation, result.statusText);\n };\n // eslint-disable-next-line\n proxy.exportFormFieldsRequestHandler.onError = function (result) {\n proxy.pdfViewer.fireFormExportFailed(jsonObject.pdfAnnotation, result.statusText);\n };\n });\n if (isObject) {\n return promise;\n }\n else {\n return true;\n }\n };\n /**\n * @param {string} fileName - Gets the name of the file name for slicing the last index\n * @param {string} sliceBy - A type to slice the file name; example (\".\", \"_\")\n * @returns {string}\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.getLastIndexValue = function (fileName, sliceBy) {\n var indexName = fileName.slice(fileName.lastIndexOf(sliceBy) + 1);\n return indexName;\n };\n /**\n * @param source\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.createRequestForImportingFormfields = function (source, formFieldDataFormat) {\n var proxy = null;\n var index = \".\";\n proxy = this;\n // eslint-disable-next-line\n var jsonObject = {};\n var sourceName = this.getLastIndexValue(source, index);\n if (typeof source !== 'object' && (sourceName === 'json' || sourceName === 'fdf' || sourceName === 'xfdf' || sourceName === 'xml')) {\n jsonObject.data = source;\n jsonObject['fileName'] = proxy.pdfViewer.fileName;\n jsonObject.formFieldDataFormat = formFieldDataFormat;\n }\n else {\n jsonObject.formFieldDataFormat = formFieldDataFormat;\n if (formFieldDataFormat === 'Json') {\n jsonObject.data = JSON.stringify(source);\n }\n else {\n jsonObject.data = source;\n }\n }\n proxy.pdfViewer.fireFormImportStarted(source);\n // eslint-disable-next-line\n jsonObject['hashId'] = proxy.hashId;\n // eslint-disable-next-line\n jsonObject['elementId'] = this.pdfViewer.element.id;\n // eslint-disable-next-line max-len\n if (proxy.jsonDocumentId) {\n // eslint-disable-next-line\n jsonObject.document = proxy.jsonDocumentId;\n }\n jsonObject = Object.assign(jsonObject, this.constructJsonDownload());\n // eslint-disable-next-line\n jsonObject.action = 'ImportFormFields';\n var url = proxy.pdfViewer.serviceUrl + '/' + proxy.pdfViewer.serverActionSettings.importFormFields;\n proxy.importFormFieldsRequestHandler = new AjaxHandler(this.pdfViewer);\n proxy.importFormFieldsRequestHandler.url = url;\n proxy.importFormFieldsRequestHandler.mode = true;\n proxy.importFormFieldsRequestHandler.responseType = 'text';\n proxy.importFormFieldsRequestHandler.send(jsonObject);\n // eslint-disable-next-line\n proxy.importFormFieldsRequestHandler.onSuccess = function (result) {\n // eslint-disable-next-line\n var data = result.data;\n var redirect = proxy.checkRedirection(data);\n if (!redirect) {\n if (data && data !== 'null') {\n if (typeof data !== 'object') {\n try {\n data = JSON.parse(data);\n if (typeof data !== 'object') {\n proxy.onControlError(500, data, proxy.pdfViewer.serverActionSettings.importFormFields);\n proxy.pdfViewer.fireFormImportFailed(source, result.statusText);\n data = null;\n }\n }\n catch (error) {\n proxy.pdfViewer.fireFormImportFailed(source, proxy.pdfViewer.localeObj.getConstant('File not found'));\n if (isBlazor()) {\n var promise = this.pdfViewer._dotnetInstance.invokeMethodAsync('GetLocaleText', 'PdfViewer_FileNotFound');\n promise.then(function (value) {\n proxy.openImportExportNotificationPopup(value);\n });\n }\n else {\n proxy.openImportExportNotificationPopup(proxy.pdfViewer.localeObj.getConstant('File not found'));\n }\n proxy.onControlError(500, data, proxy.pdfViewer.serverActionSettings.importFormFields);\n data = null;\n }\n }\n proxy.pdfViewer.fireAjaxRequestSuccess(proxy.pdfViewer.serverActionSettings.importFormFields, data);\n proxy.pdfViewer.fireFormImportSuccess(source);\n window.sessionStorage.removeItem(this.documentId + '_formfields');\n this.pdfViewer.formFieldsModule.removeExistingFormFields();\n window.sessionStorage.removeItem(this.documentId + '_formDesigner');\n proxy.saveFormfieldsData(data);\n for (var i = 0; i < proxy.renderedPagesList.length; i++) {\n this.pdfViewer.formFieldsModule.renderFormFields(proxy.renderedPagesList[parseInt(i.toString(), 10)], true);\n }\n }\n else {\n proxy.pdfViewer.fireFormImportFailed(source, result.statusText);\n if (isBlazor()) {\n var promise = this.pdfViewer._dotnetInstance.invokeMethodAsync('GetLocaleText', 'PdfViewer_FileNotFound');\n promise.then(function (value) {\n proxy.openImportExportNotificationPopup(value);\n });\n }\n else {\n proxy.openImportExportNotificationPopup(proxy.pdfViewer.localeObj.getConstant('File not found'));\n }\n }\n }\n };\n // eslint-disable-next-line\n proxy.importFormFieldsRequestHandler.onFailure = function (result) {\n proxy.pdfViewer.fireFormImportFailed(source, result.statusText);\n };\n // eslint-disable-next-line\n proxy.importFormFieldsRequestHandler.onError = function (result) {\n proxy.pdfViewer.fireFormImportFailed(source, result.statusText);\n };\n };\n /**\n * @public\n * @returns {any} - Returns the Json data.\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.createFormfieldsJsonData = function () {\n // eslint-disable-next-line\n var jsonObject = {};\n if (this.pdfViewer.formDesignerModule) {\n var fieldsData = this.pdfViewer.formDesignerModule.downloadFormDesigner();\n // eslint-disable-next-line\n jsonObject['formDesigner'] = fieldsData;\n }\n else if (this.pdfViewer.formFieldsModule) {\n var fieldsData = this.pdfViewer.formFieldsModule.downloadFormFieldsData();\n // eslint-disable-next-line\n jsonObject['fieldsData'] = fieldsData;\n }\n return jsonObject;\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.constructJsonDownload = function () {\n // eslint-disable-next-line\n var jsonObject = { hashId: this.hashId };\n if (this.jsonDocumentId) {\n jsonObject.documentId = this.jsonDocumentId;\n }\n jsonObject.uniqueId = this.documentId;\n this.importPageList = [];\n if (this.pdfViewer.annotationModule) {\n this.saveImportedAnnotations();\n }\n if (this.isTextMarkupAnnotationModule()) {\n this.isJsonExported = false;\n // eslint-disable-next-line max-len\n var textMarkupAnnotationCollection = this.pdfViewer.annotationModule.textMarkupAnnotationModule.saveTextMarkupAnnotations();\n // eslint-disable-next-line\n jsonObject['textMarkupAnnotations'] = textMarkupAnnotationCollection;\n }\n if (this.isShapeAnnotationModule()) {\n this.isJsonExported = false;\n // eslint-disable-next-line max-len\n var shapeAnnotations = this.pdfViewer.annotationModule.shapeAnnotationModule.saveShapeAnnotations();\n // eslint-disable-next-line\n jsonObject['shapeAnnotations'] = shapeAnnotations;\n }\n if (this.isCalibrateAnnotationModule()) {\n this.isJsonExported = false;\n // eslint-disable-next-line max-len\n var calibrateAnnotations = this.pdfViewer.annotationModule.measureAnnotationModule.saveMeasureShapeAnnotations();\n // eslint-disable-next-line\n jsonObject['measureShapeAnnotations'] = calibrateAnnotations;\n }\n if (this.isStampAnnotationModule()) {\n // eslint-disable-next-line max-len\n var stampAnnotationCollection = this.pdfViewer.annotationModule.stampAnnotationModule.saveStampAnnotations();\n // eslint-disable-next-line\n jsonObject['stampAnnotations'] = stampAnnotationCollection;\n }\n if (this.isCommentAnnotationModule()) {\n // eslint-disable-next-line max-len\n var stickyAnnotationCollection = this.pdfViewer.annotationModule.stickyNotesAnnotationModule.saveStickyAnnotations();\n // eslint-disable-next-line\n jsonObject['stickyNotesAnnotation'] = stickyAnnotationCollection;\n }\n if (this.isImportAction) {\n var importList = JSON.stringify(this.importPageList);\n // eslint-disable-next-line\n jsonObject['importPageList'] = importList;\n }\n if (this.pdfViewer.formDesignerModule) {\n var fieldsData = this.pdfViewer.formDesignerModule.downloadFormDesigner();\n // eslint-disable-next-line\n jsonObject['formDesigner'] = fieldsData;\n }\n else if (this.pdfViewer.formFieldsModule) {\n var fieldsData = this.pdfViewer.formFieldsModule.downloadFormFieldsData();\n // eslint-disable-next-line\n jsonObject['fieldsData'] = fieldsData;\n }\n var signatureData = this.signatureModule.saveSignature();\n // eslint-disable-next-line\n jsonObject['signatureData'] = signatureData;\n if (this.pdfViewer.isSignatureEditable) {\n // eslint-disable-next-line\n jsonObject['isSignatureEdited'] = this.pdfViewer.isSignatureEditable;\n }\n if (this.isFreeTextAnnotationModule()) {\n // eslint-disable-next-line max-len\n var freeTextAnnotationCollection = this.pdfViewer.annotationModule.freeTextAnnotationModule.saveFreeTextAnnotations();\n // eslint-disable-next-line\n jsonObject['freeTextAnnotation'] = freeTextAnnotationCollection;\n }\n if (this.isInkAnnotationModule()) {\n var inkSignatureData = this.pdfViewer.annotationModule.inkAnnotationModule.saveInkSignature();\n // eslint-disable-next-line\n jsonObject['inkSignatureData'] = inkSignatureData;\n }\n // eslint-disable-next-line\n jsonObject['action'] = 'Download';\n // eslint-disable-next-line\n jsonObject['elementId'] = this.pdfViewer.element.id;\n if (this.pdfViewer.annotationModule) {\n var annotationsPageList = this.getAnnotationsPageList();\n jsonObject['isAnnotationsExist'] = this.isAnnotationsExist(jsonObject[\"textMarkupAnnotations\"]) || this.isAnnotationsExist(jsonObject[\"shapeAnnotations\"]) || this.isAnnotationsExist(jsonObject[\"measureShapeAnnotations\"]) || this.isAnnotationsExist(jsonObject[\"stampAnnotations\"]) || this.isAnnotationsExist(jsonObject[\"stickyNotesAnnotation\"]) || this.isAnnotationsExist(jsonObject[\"signatureData\"]) || this.isAnnotationsExist(jsonObject[\"freeTextAnnotation\"]) || this.isAnnotationsExist(jsonObject[\"inkSignatureData\"]) || annotationsPageList.length > 0;\n jsonObject['annotationsPageList'] = JSON.stringify(annotationsPageList);\n }\n if (this.pdfViewer.formDesignerModule || this.pdfViewer.formFieldsModule) {\n var formFieldsPageList = this.getFormFieldsPageList(jsonObject[\"formDesigner\"]);\n jsonObject['isFormFieldAnnotationsExist'] = this.isAnnotationsExist(jsonObject[\"formDesigner\"]) || this.isFieldsDataExist(jsonObject[\"fieldsData\"]) || formFieldsPageList.length > 0;\n jsonObject['formFieldsPageList'] = JSON.stringify(formFieldsPageList);\n }\n if (this.pdfViewer.annotationCollection) {\n jsonObject['annotationCollection'] = JSON.stringify(this.pdfViewer.annotationCollection);\n }\n return jsonObject;\n };\n /**\n * @private\n * @returns {boolean} - Returns whether annotation is present.\n */\n PdfViewerBase.prototype.isAnnotationsExist = function (annotationInfo) {\n // eslint-disable-next-line max-len\n return !isNullOrUndefined(annotationInfo) ? JSON.parse(annotationInfo).flat(1).length > 0 : false;\n };\n /**\n * @private\n * @returns {boolean} - Returns whether fields data is present.\n */\n PdfViewerBase.prototype.isFieldsDataExist = function (fieldsData) {\n // eslint-disable-next-line max-len\n return !isNullOrUndefined(fieldsData) ? Object.entries(JSON.parse(fieldsData)).length !== 0 : false;\n };\n /**\n * @private\n * @returns {boolean} - Returns annotations page number list.\n */\n PdfViewerBase.prototype.getAnnotationsPageList = function () {\n // eslint-disable-next-line max-len\n var annotCollection = this.pdfViewer.annotationCollection.map(function (a) { return a.pageNumber; });\n var annotActionCollection = this.pdfViewer.annotationModule.actionCollection.filter(function (value, index, self) { return value.annotation.propName !== \"formFields\" && value.annotation.formFieldAnnotationType == undefined; }).map(function (a) { return a.pageIndex; });\n var fullPageList = annotCollection.concat(annotActionCollection);\n return fullPageList.filter(function (value, index, self) { return self.indexOf(value) === index && value !== undefined; });\n };\n /**\n * @private\n * @returns {boolean} - Returns form fields page number list.\n */\n PdfViewerBase.prototype.getFormFieldsPageList = function (formDesignerData) {\n // eslint-disable-next-line max-len\n var formFieldsCollection = this.pdfViewer.formFieldCollection.map(function (item) {\n if (!isNullOrUndefined(item.properties)) {\n return item.properties.pageNumber;\n }\n else {\n return item.pageNumber + 1;\n }\n });\n var annotActionCollection = !isNullOrUndefined(this.pdfViewer.annotationModule) ? this.pdfViewer.annotationModule.actionCollection.filter(function (value, index, self) { return value.annotation.propName == \"formFields\" || value.annotation.formFieldAnnotationType != undefined; }).map(function (a) { return a.pageIndex; }) : [];\n var fullPageList = formFieldsCollection.concat(annotActionCollection);\n var designerDataList;\n if (!isNullOrUndefined(formDesignerData)) {\n designerDataList = JSON.parse(formDesignerData).map(function (item) {\n return item.FormField.pageNumber;\n });\n }\n var totalPageList = fullPageList.concat(designerDataList);\n return totalPageList.filter(function (value, index, self) { return self.indexOf(value) === index && value !== undefined; });\n };\n /**\n * @private\n * @param {string} annotationID - The annotationID.\n * @returns {any} - Returns collection of type.\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.checkFormFieldCollection = function (annotationID) {\n var isFormFieldAnnotation = false;\n // eslint-disable-next-line\n var formDesignerData = null;\n formDesignerData = this.getItemFromSessionStorage('_formDesigner');\n if (formDesignerData) {\n // eslint-disable-next-line\n var formFieldsData = JSON.parse(formDesignerData);\n for (var i = 0; i < formFieldsData.length; i++) {\n if (formFieldsData[parseInt(i.toString(), 10)].FormField.formFieldAnnotationType === 'RadioButton') {\n for (var j = 0; j < formFieldsData[parseInt(i.toString(), 10)].FormField.radiobuttonItem.length; j++) {\n if (annotationID === formFieldsData[parseInt(i.toString(), 10)].FormField.radiobuttonItem[parseInt(j.toString(), 10)].id.split('_')[0]) {\n isFormFieldAnnotation = true;\n break;\n }\n }\n }\n else if (formFieldsData[parseInt(i.toString(), 10)].Key.split('_')[0] === annotationID) {\n isFormFieldAnnotation = true;\n break;\n }\n }\n }\n return isFormFieldAnnotation;\n };\n /**\n * @private\n * @returns {boolean} - Returns whether freetext module is enabled.\n */\n PdfViewerBase.prototype.isFreeTextAnnotationModule = function () {\n // eslint-disable-next-line max-len\n if (this.pdfViewer.annotation) {\n if (this.pdfViewer.annotation && this.pdfViewer.annotation.freeTextAnnotationModule) {\n return true;\n }\n else {\n return false;\n }\n }\n else {\n return false;\n }\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.createRequestForDownload = function () {\n var proxy = null;\n proxy = this;\n proxy.pdfViewer.fireDownloadStart(proxy.downloadFileName);\n // eslint-disable-next-line\n var jsonObject = this.constructJsonDownload();\n if (proxy.digitalSignaturePages && proxy.digitalSignaturePages.length !== 0) {\n if (proxy.pdfViewer.isDocumentEdited) {\n jsonObject['digitalSignatureDocumentEdited'] = true;\n }\n else {\n jsonObject['digitalSignatureDocumentEdited'] = false;\n }\n }\n this.dowonloadRequestHandler = new AjaxHandler(this.pdfViewer);\n this.dowonloadRequestHandler.url = proxy.pdfViewer.serviceUrl + '/' + proxy.pdfViewer.serverActionSettings.download;\n this.dowonloadRequestHandler.responseType = 'text';\n if (this.validateForm && this.pdfViewer.enableFormFieldsValidation) {\n this.pdfViewer.fireValidatedFailed(proxy.pdfViewer.serverActionSettings.download);\n this.validateForm = false;\n }\n else {\n this.dowonloadRequestHandler.send(jsonObject);\n }\n // eslint-disable-next-line\n this.dowonloadRequestHandler.onSuccess = function (result) {\n // eslint-disable-next-line\n var data = result.data;\n var redirect = proxy.checkRedirection(data);\n if (!redirect) {\n if (data) {\n if (typeof data !== 'object' && data.indexOf('data:application/pdf') === -1) {\n proxy.onControlError(500, data, proxy.pdfViewer.serverActionSettings.download);\n data = null;\n }\n if (typeof data === 'object') {\n data = JSON.parse(data);\n }\n if (data) {\n if (proxy.pdfViewer.downloadFileName && (proxy.pdfViewer.downloadFileName !== proxy.downloadFileName)) {\n proxy.downloadFileName = proxy.pdfViewer.downloadFileName;\n }\n proxy.pdfViewer.fireAjaxRequestSuccess(proxy.pdfViewer.serverActionSettings.download, data);\n var blobUrl = proxy.createBlobUrl(data.split('base64,')[1], 'application/pdf');\n if (Browser.isIE || Browser.info.name === 'edge') {\n window.navigator.msSaveOrOpenBlob(blobUrl, proxy.downloadFileName);\n }\n else {\n proxy.downloadDocument(blobUrl);\n }\n proxy.pdfViewer.fireDownloadEnd(proxy.downloadFileName, data);\n }\n proxy.updateDocumentAnnotationCollections();\n }\n else {\n proxy.pdfViewer.fireDownloadEnd(proxy.downloadFileName, 'PDF Document saved in server side successfully');\n }\n }\n };\n // eslint-disable-next-line\n this.dowonloadRequestHandler.onFailure = function (result) {\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText, proxy.pdfViewer.serverActionSettings.download);\n };\n // eslint-disable-next-line\n this.dowonloadRequestHandler.onError = function (result) {\n proxy.openNotificationPopup();\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText, proxy.pdfViewer.serverActionSettings.download);\n };\n };\n /**\n * @param pageWidth\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.getTileCount = function (pageWidth) {\n if (pageWidth && typeof pageWidth === 'number') {\n var defaultWidth = 816;\n var tileCount = 1;\n if (this.getZoomFactor() > 2 && pageWidth <= 1200) {\n tileCount = 2;\n }\n else {\n tileCount = pageWidth / defaultWidth;\n }\n // eslint-disable-next-line radix\n var tileValue = parseInt(tileCount.toFixed());\n if (tileValue <= 0) {\n return 1;\n }\n else {\n if (this.pdfViewer.tileRenderingSettings.enableTileRendering) {\n return tileValue;\n }\n else {\n return 1;\n }\n }\n }\n else {\n return 1;\n }\n };\n PdfViewerBase.prototype.createRequestForRender = function (pageIndex) {\n var proxy = null;\n proxy = this;\n var canvas = proxy.getElement('_pageCanvas_' + pageIndex);\n var oldCanvas = proxy.getElement('_oldCanvas_' + pageIndex);\n if (this.pageSize && this.pageSize[parseInt(pageIndex.toString(), 10)]) {\n var pageWidth_1 = this.pageSize[parseInt(pageIndex.toString(), 10)].width;\n var pageHeight = this.pageSize[parseInt(pageIndex.toString(), 10)].height;\n var tilecanvas = this.getElement('_pageCanvas_' + pageIndex);\n // eslint-disable-next-line\n var viewPortWidth_1 = 1200; // On diving the value greater than 1200 we will get the tile count as 2.\n // eslint-disable-next-line\n var viewPortHeight = proxy.pdfViewer.element.clientHeight > 0 ? proxy.pdfViewer.element.clientHeight : proxy.pdfViewer.element.style.height;\n // eslint-disable-next-line radix\n viewPortWidth_1 = parseInt(viewPortWidth_1);\n // eslint-disable-next-line radix\n viewPortHeight = parseInt(viewPortHeight) ? parseInt(viewPortHeight) : 500; //we have applied minimum-height as 500.\n var noTileX = void 0;\n var noTileY = void 0;\n var thumbnailImageElement = void 0;\n var imageSource = void 0;\n var object = new Object();\n if ((this.isMinimumZoom && document.getElementById(this.pdfViewer.element.id + '_thumbnail_Selection_Ring_' + pageIndex))) {\n this.renderThumbnailImages = true;\n thumbnailImageElement = document.getElementById(this.pdfViewer.element.id + '_thumbnail_Selection_Ring_' + pageIndex).children[0];\n imageSource = thumbnailImageElement.src;\n }\n else {\n this.renderThumbnailImages = false;\n }\n var tileCount = this.getTileCount(pageWidth_1);\n if (canvas) {\n if (!isNaN(parseFloat(canvas.style.width)) || oldCanvas) {\n if (proxy.isInitialLoaded) {\n proxy.showPageLoadingIndicator(pageIndex, false);\n }\n }\n // eslint-disable-next-line\n var data = proxy.getStoredData(pageIndex);\n noTileX = noTileY = tileCount;\n var tileSettings = proxy.pdfViewer.tileRenderingSettings;\n if (tileSettings.enableTileRendering && tileSettings.x > 0 && tileSettings.y > 0) {\n if ((viewPortWidth_1 < pageWidth_1 || this.getZoomFactor() > 2)) {\n noTileX = tileSettings.x;\n noTileY = tileSettings.y;\n }\n }\n proxy.tileRequestCount = noTileX * noTileY;\n var zoomFactor = this.retrieveCurrentZoomFactor();\n var isPageRequestSent = void 0;\n if (tileCount === 1) {\n data = proxy.getStoredData(pageIndex);\n isPageRequestSent = proxy.pageRequestSent(pageIndex, 0, 0);\n }\n else {\n // eslint-disable-next-line\n var tileData = JSON.parse(proxy.getWindowSessionStorageTile(pageIndex, 0, 0, zoomFactor));\n if (tileData) {\n data = tileData;\n }\n }\n if (data && data.uniqueId === proxy.documentId && (data['image'] || this.isMinimumZoom)) {\n canvas.style.backgroundColor = '#fff';\n if ((proxy.pdfViewer.magnification && proxy.pdfViewer.magnification.isPinchZoomed) || !this.pageSize[parseInt(pageIndex.toString(), 10)]) {\n return;\n }\n var zoomFactor_2 = this.retrieveCurrentZoomFactor();\n if (zoomFactor_2 > 2 && pageWidth_1 <= 1200) {\n viewPortWidth_1 = 700;\n }\n else {\n viewPortWidth_1 = 1200;\n }\n if (!proxy.pdfViewer.tileRenderingSettings.enableTileRendering) {\n viewPortWidth_1 = 1200;\n }\n if ((viewPortWidth_1 >= pageWidth_1) || !proxy.pdfViewer.tileRenderingSettings.enableTileRendering) {\n if (this.renderThumbnailImages) {\n proxy.renderPage(data, pageIndex, imageSource);\n }\n else {\n proxy.renderPage(data, pageIndex);\n }\n }\n else {\n proxy.isTileImageRendered = true;\n proxy.tileRenderCount = 0;\n if (this.renderThumbnailImages) {\n proxy.renderPage(data, pageIndex, imageSource);\n }\n else {\n proxy.tileRenderPage(data, pageIndex);\n for (var k = 0; k < noTileX; k++) {\n for (var l = 0; l < noTileY; l++) {\n if (k === 0 && l === 0) {\n continue;\n }\n data = JSON.parse(this.getWindowSessionStorageTile(pageIndex, k, l, zoomFactor_2));\n if (data) {\n proxy.tileRenderPage(data, pageIndex);\n }\n }\n }\n }\n }\n data = null;\n }\n else if (data === null || !isPageRequestSent) {\n if (!this.renderThumbnailImages) {\n if (this.getPagesPinchZoomed()) {\n proxy.showPageLoadingIndicator(pageIndex, false);\n }\n else {\n proxy.showPageLoadingIndicator(pageIndex, true);\n }\n if (proxy.getPagesZoomed()) {\n if (proxy.isInitialLoaded) {\n proxy.showPageLoadingIndicator(pageIndex, false);\n }\n }\n }\n if (proxy.pdfViewer.magnification && proxy.pdfViewer.magnification.isPinchZoomed) {\n return;\n }\n if (!proxy.pdfViewer.tileRenderingSettings.enableTileRendering || this.renderThumbnailImages) {\n noTileX = 1;\n noTileY = 1;\n }\n proxy.tileRenderCount = 0;\n proxy.isTileImageRendered = true;\n for (var x = 0; x < noTileX; x++) {\n for (var y = 0; y < noTileY; y++) {\n var jsonObject = null;\n var zoomFactor_3 = this.retrieveCurrentZoomFactor();\n if (zoomFactor_3 > 2 && pageWidth_1 <= 1200) {\n viewPortWidth_1 = 700;\n }\n else {\n viewPortWidth_1 = 1200;\n }\n if (!proxy.pdfViewer.tileRenderingSettings.enableTileRendering) {\n viewPortWidth_1 = 1200;\n }\n if (this.renderThumbnailImages) {\n proxy.renderPage(object, pageIndex, imageSource);\n if (this.textrequestLists.indexOf(pageIndex) == -1) {\n jsonObject = { pageStartIndex: pageIndex, pageEndIndex: pageIndex + 1, documentId: proxy.getDocumentId(), hashId: proxy.hashId, action: 'RenderPdfTexts', elementId: proxy.pdfViewer.element.id, uniqueId: proxy.documentId };\n if (this.jsonDocumentId) {\n jsonObject.documentId = this.jsonDocumentId;\n }\n this.textRequestHandler = new AjaxHandler(this.pdfViewer);\n this.textRequestHandler.url = this.pdfViewer.serviceUrl + '/' + this.pdfViewer.serverActionSettings.renderTexts;\n this.textRequestHandler.responseType = 'json';\n this.textRequestHandler.send(jsonObject);\n this.textrequestLists.push(pageIndex);\n proxy.textRequestHandler.onSuccess = function (result) {\n // eslint-disable-next-line max-len\n if ((proxy.pdfViewer.magnification && proxy.pdfViewer.magnification.isPinchZoomed) || !proxy.pageSize[parseInt(pageIndex.toString(), 10)]) {\n return;\n }\n // eslint-disable-next-line\n var data = result.data;\n if (data) {\n if (typeof data !== 'object') {\n try {\n data = JSON.parse(data);\n }\n catch (error) {\n proxy.onControlError(500, data, proxy.pdfViewer.serverActionSettings.renderTexts);\n data = null;\n }\n }\n }\n if (data) {\n while (typeof data !== 'object') {\n data = JSON.parse(data);\n }\n if (data.documentTextCollection && data.uniqueId === proxy.documentId) {\n proxy.pdfViewer.fireAjaxRequestSuccess(proxy.pdfViewer.serverActionSettings.renderTexts, data);\n var pageNumber = (data.pageNumber !== undefined) ? data.pageNumber : pageIndex;\n proxy.storeWinData(data, pageNumber);\n proxy.renderPage(data, pageIndex);\n }\n }\n };\n // eslint-disable-next-line\n this.textRequestHandler.onFailure = function (result) {\n // eslint-disable-next-line max-len\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText, proxy.pdfViewer.serverActionSettings.renderTexts);\n };\n // eslint-disable-next-line\n this.textRequestHandler.onError = function (result) {\n proxy.openNotificationPopup();\n // eslint-disable-next-line max-len\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText, proxy.pdfViewer.serverActionSettings.renderTexts);\n };\n }\n }\n else {\n // eslint-disable-next-line max-len\n jsonObject = {\n xCoordinate: (x).toString(), yCoordinate: (y).toString(), viewPortWidth: (viewPortWidth_1).toString(), viewPortHeight: (viewPortHeight).toString(),\n pageNumber: (pageIndex).toString(), hashId: proxy.hashId, tilecount: (tileCount).toString(), tileXCount: (noTileX).toString(), tileYCount: (noTileY).toString(),\n // eslint-disable-next-line max-len\n zoomFactor: (zoomFactor_3).toString(), action: 'RenderPdfPages', uniqueId: this.documentId, elementId: proxy.pdfViewer.element.id, digitalSignaturePresent: proxy.digitalSignaturePresent(pageIndex)\n };\n if (this.jsonDocumentId) {\n // eslint-disable-next-line\n jsonObject.documentId = this.jsonDocumentId;\n }\n proxy.pageRequestHandler = new AjaxHandler(this.pdfViewer);\n // eslint-disable-next-line max-len\n proxy.pageRequestHandler.url = proxy.pdfViewer.serviceUrl + '/' + proxy.pdfViewer.serverActionSettings.renderPages;\n proxy.pageRequestHandler.responseType = 'json';\n proxy.pageRequestHandler.send(jsonObject);\n proxy.requestLists.push(proxy.documentId + '_' + pageIndex + '_' + x + '_' + y + '_' + zoomFactor_3);\n // eslint-disable-next-line\n proxy.pageRequestHandler.onSuccess = function (result) {\n // eslint-disable-next-line max-len\n if ((proxy.pdfViewer.magnification && proxy.pdfViewer.magnification.isPinchZoomed) || !proxy.pageSize[parseInt(pageIndex.toString(), 10)]) {\n return;\n }\n // eslint-disable-next-line\n var data = result.data;\n var redirect = proxy.checkRedirection(data);\n if (redirect) {\n proxy.showLoadingIndicator(false);\n }\n else {\n if (data) {\n if (typeof data !== 'object') {\n try {\n data = JSON.parse(data);\n }\n catch (error) {\n proxy.onControlError(500, data, proxy.pdfViewer.serverActionSettings.renderPages);\n data = null;\n }\n }\n }\n if (data) {\n while (typeof data !== 'object') {\n data = JSON.parse(data);\n }\n if (data.image && data.uniqueId === proxy.documentId) {\n var currentPageWidth = (data.pageWidth && data.pageWidth > 0) ? data.pageWidth : pageWidth_1;\n proxy.pdfViewer.fireAjaxRequestSuccess(proxy.pdfViewer.serverActionSettings.renderPages, data);\n var pageNumber = (data.pageNumber !== undefined) ? data.pageNumber : pageIndex;\n if ((viewPortWidth_1 >= currentPageWidth) || !proxy.pdfViewer.tileRenderingSettings.enableTileRendering) {\n proxy.storeWinData(data, pageNumber);\n }\n else {\n proxy.storeWinData(data, pageNumber, data.tileX, data.tileY);\n }\n if ((viewPortWidth_1 >= currentPageWidth) || !proxy.pdfViewer.tileRenderingSettings.enableTileRendering) {\n proxy.renderPage(data, pageNumber);\n }\n else {\n proxy.tileRenderPage(data, pageNumber);\n }\n }\n }\n }\n };\n // eslint-disable-next-line\n this.pageRequestHandler.onFailure = function (result) {\n // eslint-disable-next-line max-len\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText, proxy.pdfViewer.serverActionSettings.renderPages);\n };\n // eslint-disable-next-line\n this.pageRequestHandler.onError = function (result) {\n proxy.openNotificationPopup();\n // eslint-disable-next-line max-len\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText, proxy.pdfViewer.serverActionSettings.renderPages);\n };\n }\n }\n }\n }\n if (this.renderedPagesList.indexOf(pageIndex) === -1) {\n proxy.renderedPagesList.push(pageIndex);\n }\n }\n }\n };\n /**\n * @private\n */\n PdfViewerBase.prototype.requestForTextExtraction = function (pageIndex, annotationObject) {\n var jsonObject;\n var proxy = this;\n jsonObject = { pageStartIndex: pageIndex, pageEndIndex: pageIndex + 1, documentId: proxy.getDocumentId(), hashId: proxy.hashId, action: 'RenderPdfTexts', elementId: proxy.pdfViewer.element.id, uniqueId: proxy.documentId };\n if (this.jsonDocumentId) {\n jsonObject.documentId = this.jsonDocumentId;\n }\n this.textRequestHandler = new AjaxHandler(this.pdfViewer);\n this.textRequestHandler.url = this.pdfViewer.serviceUrl + '/' + this.pdfViewer.serverActionSettings.renderTexts;\n this.textRequestHandler.responseType = 'json';\n this.textRequestHandler.send(jsonObject);\n this.textrequestLists.push(pageIndex);\n proxy.textRequestHandler.onSuccess = function (result) {\n // eslint-disable-next-line max-len\n if ((proxy.pdfViewer.magnification && proxy.pdfViewer.magnification.isPinchZoomed) || !proxy.pageSize[parseInt(pageIndex.toString(), 10)]) {\n return;\n }\n // eslint-disable-next-line\n var data = result.data;\n var redirect = proxy.checkRedirection(data);\n if (!redirect) {\n if (data) {\n if (typeof data !== 'object') {\n try {\n data = JSON.parse(data);\n }\n catch (error) {\n proxy.onControlError(500, data, proxy.pdfViewer.serverActionSettings.renderTexts);\n data = null;\n }\n }\n }\n if (data) {\n while (typeof data !== 'object') {\n data = JSON.parse(data);\n }\n if (data.documentTextCollection && data.uniqueId === proxy.documentId) {\n proxy.pdfViewer.fireAjaxRequestSuccess(proxy.pdfViewer.serverActionSettings.renderTexts, data);\n var pageNumber = (data.pageNumber !== undefined) ? data.pageNumber : pageIndex;\n proxy.storeWinData(data, pageNumber);\n if (!isNullOrUndefined(annotationObject)) {\n var markedBounds = annotationObject.bounds[0];\n var pageCharText = data.documentTextCollection[0][parseInt(pageIndex.toString(), 10)].PageText.split('');\n var characterBounds = data.characterBounds;\n var textMarkupContent = proxy.textMarkUpContent(markedBounds, pageCharText, characterBounds);\n annotationObject.textMarkupContent = textMarkupContent;\n this.pdfViewer.annotationModule.storeAnnotations(pageIndex, annotationObject, '_annotations_textMarkup');\n }\n else {\n proxy.renderPage(data, pageIndex);\n }\n }\n }\n }\n };\n // eslint-disable-next-line\n this.textRequestHandler.onFailure = function (result) {\n // eslint-disable-next-line max-len\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText, proxy.pdfViewer.serverActionSettings.renderTexts);\n };\n // eslint-disable-next-line\n this.textRequestHandler.onError = function (result) {\n proxy.openNotificationPopup();\n // eslint-disable-next-line max-len\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText, proxy.pdfViewer.serverActionSettings.renderTexts);\n };\n };\n /**\n * @private\n */\n PdfViewerBase.prototype.textMarkUpContent = function (markedBounds, pageCharText, characterBounds) {\n var textMarkupContent = '';\n for (var j = 0; j < characterBounds.length; j++) {\n var buffer = 0.5;\n if (characterBounds[parseInt(j.toString(), 10)].Y >= markedBounds.Y - buffer && characterBounds[parseInt(j.toString(), 10)].X >= markedBounds.X - buffer && characterBounds[parseInt(j.toString(), 10)].Y <= markedBounds.Y + markedBounds.Height + buffer && characterBounds[parseInt(j.toString(), 10)].X <= markedBounds.X + markedBounds.Width + buffer) {\n textMarkupContent += pageCharText[parseInt(j.toString(), 10)];\n }\n }\n return textMarkupContent.replace((/(\\r\\n)/gm), '');\n };\n /**\n * @private\n * @returns {boolean}\n */\n PdfViewerBase.prototype.digitalSignaturePresent = function (pageIndex) {\n var digitalSignaturePresent = false;\n if (this.digitalSignaturePages && (this.digitalSignaturePages.length !== 0) && (this.digitalSignaturePages.indexOf(pageIndex) != -1)) {\n digitalSignaturePresent = true;\n }\n return digitalSignaturePresent;\n };\n PdfViewerBase.prototype.pageRequestSent = function (pageIndex, tileX, tileY) {\n var zoomFactor = this.retrieveCurrentZoomFactor();\n var currentString = this.documentId + '_' + pageIndex + '_' + tileX + '_' + tileY + '_' + zoomFactor;\n if (this.requestLists && this.requestLists.indexOf(currentString) > -1) {\n return true;\n }\n return false;\n };\n /**\n * @private\n * @param {string} status - The status message.\n * @param {string} errorMessage - The error message.\n * @param {string} action - The action.\n * @returns {void}\n */\n PdfViewerBase.prototype.onControlError = function (status, errorMessage, action) {\n this.openNotificationPopup();\n this.pdfViewer.fireAjaxRequestFailed(status, errorMessage, action);\n };\n /**\n * @param pageIndex\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.getStoredData = function (pageIndex, isTextSearch) {\n var zoomFactor = this.retrieveCurrentZoomFactor();\n if (this.pdfViewer.restrictZoomRequest && !this.pdfViewer.tileRenderingSettings.enableTileRendering) {\n zoomFactor = 1;\n }\n // eslint-disable-next-line\n var storedData = this.getWindowSessionStorage(pageIndex, zoomFactor) ? this.getWindowSessionStorage(pageIndex, zoomFactor) : this.getPinchZoomPage(pageIndex);\n if (!storedData && isTextSearch) {\n // eslint-disable-next-line\n var storedTileData = this.getWindowSessionStorageTile(pageIndex, 0, 0, zoomFactor);\n if (storedTileData) {\n storedData = storedTileData;\n }\n }\n // eslint-disable-next-line\n var data = null;\n if (storedData) {\n // eslint-disable-next-line\n data = storedData;\n if (!this.isPinchZoomStorage) {\n data = JSON.parse(storedData);\n }\n this.isPinchZoomStorage = false;\n }\n return data;\n };\n /**\n * @private\n * @param {any} data - The data.\n * @param {number} pageIndex - The pageIndex.\n * @param {number} tileX - The tileX.\n * @param {number} tileY - The tileY.\n * @returns {void}\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.storeWinData = function (data, pageIndex, tileX, tileY) {\n var storeObject;\n if (!data['image']) {\n var pageItems = data.documentTextCollection[0][parseInt(pageIndex.toString(), 10)];\n storeObject = {\n // eslint-disable-next-line\n textContent: data['textContent'], textBounds: data['textBounds'], pageText: pageItems.PageText, rotation: data['rotation'], uniqueId: data['uniqueId']\n };\n if (this.pageSize[parseInt(pageIndex.toString(), 10)]) {\n // eslint-disable-next-line\n this.pageSize[pageIndex].rotation = parseFloat(data['rotation']);\n }\n // eslint-disable-next-line\n this.textLayer.characterBound[pageIndex] = data['characterBounds'];\n }\n else {\n // eslint-disable-next-line\n var blobObj = this.createBlobUrl(data['image'].split('base64,')[1], 'image/png');\n // eslint-disable-next-line\n var Url = URL || webkitURL;\n var blobUrl = Url.createObjectURL(blobObj);\n // eslint-disable-next-line\n if ((isNaN(tileX) && isNaN(tileY)) || (tileX === 0 && tileY === 0)) {\n storeObject = {\n // eslint-disable-next-line\n image: blobUrl, transformationMatrix: data['transformationMatrix'], hyperlinks: data['hyperlinks'], hyperlinkBounds: data['hyperlinkBounds'], linkAnnotation: data['linkAnnotation'], linkPage: data['linkPage'], annotationLocation: data['annotationLocation'],\n // eslint-disable-next-line\n textContent: data['textContent'], width: data['width'], textBounds: data['textBounds'], pageText: data['pageText'], rotation: data['rotation'], scaleFactor: data['scaleFactor'], uniqueId: data['uniqueId'], zoomFactor: data['zoomFactor'], tileX: tileX, tileY: tileY\n };\n if (this.pageSize[parseInt(pageIndex.toString(), 10)]) {\n // eslint-disable-next-line\n this.pageSize[pageIndex].rotation = parseFloat(data['rotation']);\n }\n // eslint-disable-next-line\n this.textLayer.characterBound[pageIndex] = data['characterBounds'];\n }\n else {\n storeObject = {\n // eslint-disable-next-line\n image: blobUrl, transformationMatrix: data['transformationMatrix'], tileX: tileX, tileY: tileY, width: data['width'], zoomFactor: data['zoomFactor']\n };\n }\n }\n // eslint-disable-next-line\n var viewPortWidth = 816;\n var pageWidth = 0;\n if (this.pageSize[parseInt(pageIndex.toString(), 10)]) {\n pageWidth = this.pageSize[parseInt(pageIndex.toString(), 10)].width;\n }\n this.manageSessionStorage(pageIndex, storeObject, tileX, tileY);\n };\n /**\n * @private\n * @param {XMLHttpRequest} request - The Xml request.\n * @returns {void}\n */\n PdfViewerBase.prototype.setCustomAjaxHeaders = function (request) {\n for (var i = 0; i < this.pdfViewer.ajaxRequestSettings.ajaxHeaders.length; i++) {\n // eslint-disable-next-line max-len\n request.setRequestHeader(this.pdfViewer.ajaxRequestSettings.ajaxHeaders[parseInt(i.toString(), 10)].headerName, this.pdfViewer.ajaxRequestSettings.ajaxHeaders[parseInt(i.toString(), 10)].headerValue);\n }\n };\n /**\n * @private\n * @param {number} pageIndex - Page index.\n * @returns {object}\n */\n PdfViewerBase.prototype.getPinchZoomPage = function (pageIndex) {\n // eslint-disable-next-line\n for (var key in this.pinchZoomStorage) {\n // eslint-disable-next-line\n if (this.pinchZoomStorage.hasOwnProperty(key)) {\n /* eslint-disable-next-line security/detect-object-injection */\n if (this.pinchZoomStorage[key].index === pageIndex) {\n this.isPinchZoomStorage = true;\n /* eslint-disable-next-line security/detect-object-injection */\n return this.pinchZoomStorage[key].pinchZoomStorage;\n }\n }\n }\n return null;\n };\n /**\n * @private\n * @param {number} pageIndex - current page index.\n * @param {number} zoomFactor - cuurent zoom factor\n * @returns {string}\n */\n PdfViewerBase.prototype.getWindowSessionStorage = function (pageIndex, zoomFactor) {\n return window.sessionStorage.getItem(this.documentId + '_' + pageIndex + '_' + zoomFactor);\n };\n /**\n * @private\n * @param {number} pageIndex - current page index.\n * @param {number} tileX - cuurent tile x\n * @param {number} tileY - cuurent tile y\n * @param {number} zoomFactor - cuurent zoom factor\n * @returns {string}\n */\n PdfViewerBase.prototype.getWindowSessionStorageTile = function (pageIndex, tileX, tileY, zoomFactor) {\n return window.sessionStorage.getItem(this.documentId + '_' + pageIndex + '_' + tileX + '_' + tileY + '_' + zoomFactor);\n };\n /**\n * @private\n * @returns {number}\n */\n PdfViewerBase.prototype.retrieveCurrentZoomFactor = function () {\n var zoomFactor = this.getZoomFactor();\n if (this.pdfViewer.enableZoomOptimization) {\n if ((zoomFactor) <= 1) {\n zoomFactor = 1;\n }\n else if ((zoomFactor) > 1 && zoomFactor <= 2) {\n zoomFactor = 2;\n }\n else if ((zoomFactor) > 2 && zoomFactor <= 3) {\n zoomFactor = 3;\n }\n else if ((zoomFactor) > 3 && zoomFactor <= 4) {\n zoomFactor = 4;\n }\n return zoomFactor;\n }\n else {\n if (zoomFactor <= 0) {\n zoomFactor = 1;\n }\n return zoomFactor;\n }\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.manageSessionStorage = function (pageIndex, storeObject, tileX, tileY) {\n // eslint-disable-next-line\n var sessionSize = Math.round(JSON.stringify(window.sessionStorage).length / 1024);\n var maxSessionSize = 5000;\n if (sessionSize >= maxSessionSize) {\n if (!this.isStorageExceed) {\n // eslint-disable-next-line\n var annotationList = [];\n var formFieldsList = [];\n for (var i = 0; i < window.sessionStorage.length; i++) {\n if (window.sessionStorage.key(i) && window.sessionStorage.key(i).split('_')[3]) {\n if (window.sessionStorage.key(i).split('_')[3] === 'annotations') {\n // eslint-disable-next-line max-len\n this.annotationStorage[window.sessionStorage.key(i)] = window.sessionStorage.getItem(window.sessionStorage.key(i));\n annotationList.push(window.sessionStorage.key(i));\n }\n else if (window.sessionStorage.key(i).split('_')[3] === 'formfields') {\n // eslint-disable-next-line max-len\n this.formFieldStorage[window.sessionStorage.key(i)] = window.sessionStorage.getItem(window.sessionStorage.key(i));\n formFieldsList.push(window.sessionStorage.key(i));\n }\n else if (window.sessionStorage.key(i).split('_')[3] === 'formDesigner') {\n this.formFieldStorage[window.sessionStorage.key(i)] = window.sessionStorage.getItem(window.sessionStorage.key(i));\n formFieldsList.push(window.sessionStorage.key(i));\n }\n }\n }\n if (annotationList) {\n for (var i = 0; i < annotationList.length; i++) {\n window.sessionStorage.removeItem(annotationList[parseInt(i.toString(), 10)]);\n }\n }\n if (formFieldsList) {\n for (var i = 0; i < formFieldsList.length; i++) {\n window.sessionStorage.removeItem(formFieldsList[parseInt(i.toString(), 10)]);\n }\n }\n }\n this.isStorageExceed = true;\n sessionSize = Math.round(JSON.stringify(window.sessionStorage).length / 1024);\n if (sessionSize >= 5000) {\n var storageLength = window.sessionStorage.length;\n if (storageLength > 200) {\n storageLength = 200;\n }\n for (var i = 0; i < storageLength; i++) {\n if (window.sessionStorage.key(i) && window.sessionStorage.key(i).split('_')[3]) {\n if (window.sessionStorage.key(i).split('_')[3] !== 'annotations') {\n window.sessionStorage.removeItem(window.sessionStorage.key(i));\n }\n }\n }\n }\n }\n var zoomFactor = this.retrieveCurrentZoomFactor();\n if (isNaN(tileX) && isNaN(tileY)) {\n // eslint-disable-next-line max-len\n window.sessionStorage.setItem(this.documentId + '_' + pageIndex + '_' + zoomFactor, JSON.stringify(storeObject));\n this.sessionStorage.push(this.documentId + '_' + pageIndex + '_' + zoomFactor);\n }\n else {\n this.sessionStorage.push(this.documentId + '_' + pageIndex + '_' + tileX + '_' + tileY + '_' + zoomFactor);\n // eslint-disable-next-line max-len\n window.sessionStorage.setItem(this.documentId + '_' + pageIndex + '_' + tileX + '_' + tileY + '_' + zoomFactor, JSON.stringify(storeObject));\n }\n };\n PdfViewerBase.prototype.createBlobUrl = function (base64String, contentType) {\n var sliceSize = 512;\n var byteCharacters = atob(base64String);\n // eslint-disable-next-line\n var byteArrays = [];\n for (var offset = 0; offset < byteCharacters.length; offset += sliceSize) {\n var slice = byteCharacters.slice(offset, offset + sliceSize);\n // eslint-disable-next-line\n var byteNumbers = new Array(slice.length);\n for (var i = 0; i < slice.length; i++) {\n /* eslint-disable-next-line security/detect-object-injection */\n byteNumbers[i] = slice.charCodeAt(i);\n }\n // eslint-disable-next-line\n var byteArray = new Uint8Array(byteNumbers);\n byteArrays.push(byteArray);\n }\n // eslint-disable-next-line\n var blob = new Blob(byteArrays, { type: contentType });\n return blob;\n };\n PdfViewerBase.prototype.getRandomNumber = function () {\n // eslint-disable-next-line\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n // eslint-disable-next-line\n var random = Math.random() * 16 | 0, v = c == 'x' ? random : (random & 0x3 | 0x8);\n return random.toString(16);\n });\n };\n PdfViewerBase.prototype.createGUID = function () {\n // eslint-disable-next-line max-len\n return 'Sync_PdfViewer_' + this.getRandomNumber();\n };\n /**\n * @private\n * @param {MouseEvent} event - The mouse event.\n * @param {boolean} isNeedToSet - Is need to test.\n * @returns {boolean} - Returns true or false.\n */\n PdfViewerBase.prototype.isClickedOnScrollBar = function (event, isNeedToSet) {\n var isScrollBar = false;\n if (isNeedToSet) {\n this.setScrollDownValue(event.type, false);\n }\n // eslint-disable-next-line max-len\n if ((this.viewerContainer.clientWidth + this.viewerContainer.offsetLeft) < event.clientX && event.clientX < (this.viewerContainer.offsetWidth + this.viewerContainer.offsetLeft)) {\n isScrollBar = true;\n if (isNeedToSet) {\n this.setScrollDownValue(event.type, true);\n }\n }\n // eslint-disable-next-line max-len\n if ((this.viewerContainer.clientHeight + this.viewerContainer.offsetTop) < event.clientY && event.clientY < (this.viewerContainer.offsetHeight + this.viewerContainer.offsetTop)) {\n isScrollBar = true;\n if (isNeedToSet) {\n this.setScrollDownValue(event.type, true);\n }\n }\n return isScrollBar;\n };\n PdfViewerBase.prototype.setScrollDownValue = function (eventType, boolValue) {\n if (eventType === 'mousedown') {\n this.isScrollbarMouseDown = boolValue;\n }\n };\n /**\n * @private\n * @returns {void}\n */\n PdfViewerBase.prototype.disableTextSelectionMode = function () {\n this.isTextSelectionDisabled = true;\n this.viewerContainer.classList.remove('e-enable-text-selection');\n if (this.pdfViewer.textSelectionModule) {\n this.pdfViewer.textSelectionModule.clearTextSelection();\n }\n this.viewerContainer.classList.add('e-disable-text-selection');\n this.viewerContainer.addEventListener('selectstart', function () {\n return false;\n });\n };\n /**\n * @private\n * @param {string} idString - The Id string.\n * @returns {HTMLElement} - The html element.\n */\n PdfViewerBase.prototype.getElement = function (idString) {\n return document.getElementById(this.pdfViewer.element.id + idString);\n };\n /**\n * @private\n * @param {number} pageIndex - The pageIndex\n * @returns {number} - Returns number\n */\n PdfViewerBase.prototype.getPageWidth = function (pageIndex) {\n if (this.pageSize[parseInt(pageIndex.toString(), 10)]) {\n return this.pageSize[parseInt(pageIndex.toString(), 10)].width * this.getZoomFactor();\n }\n else {\n return 0;\n }\n };\n /**\n * @private\n * @param {number} pageIndex - The pageIndex\n * @returns {number} - Returns number\n */\n PdfViewerBase.prototype.getPageHeight = function (pageIndex) {\n if (this.pageSize[parseInt(pageIndex.toString(), 10)]) {\n return this.pageSize[parseInt(pageIndex.toString(), 10)].height * this.getZoomFactor();\n }\n else {\n return 0;\n }\n };\n /**\n * @private\n * @param {number} pageIndex - The pageIndex.\n * @returns {number} - Returns number\n */\n PdfViewerBase.prototype.getPageTop = function (pageIndex) {\n if (this.pageSize[parseInt(pageIndex.toString(), 10)]) {\n return this.pageSize[parseInt(pageIndex.toString(), 10)].top * this.getZoomFactor();\n }\n else {\n return 0;\n }\n };\n PdfViewerBase.prototype.isAnnotationToolbarHidden = function () {\n if (this.pdfViewer.toolbarModule.annotationToolbarModule) {\n return this.pdfViewer.toolbarModule.annotationToolbarModule.isToolbarHidden;\n }\n else {\n return true;\n }\n };\n PdfViewerBase.prototype.isFormDesignerToolbarHidded = function () {\n var formDesignerToolbar = this.pdfViewer.toolbarModule.formDesignerToolbarModule;\n if (formDesignerToolbar) {\n return formDesignerToolbar.isToolbarHidden;\n }\n else {\n return true;\n }\n };\n /**\n * @private\n * @returns {boolean} - Returns true or false.\n */\n PdfViewerBase.prototype.getTextMarkupAnnotationMode = function () {\n if (this.isTextMarkupAnnotationModule()) {\n return this.pdfViewer.annotationModule.textMarkupAnnotationModule.isTextMarkupAnnotationMode;\n }\n else {\n return false;\n }\n };\n PdfViewerBase.prototype.isNewFreeTextAnnotation = function () {\n // eslint-disable-next-line max-len\n if (this.pdfViewer.annotationModule && this.pdfViewer.annotationModule.freeTextAnnotationModule) {\n if (!this.pdfViewer.annotationModule.freeTextAnnotationModule.isNewFreeTextAnnot) {\n return true;\n }\n else {\n return false;\n }\n }\n else {\n return true;\n }\n };\n PdfViewerBase.prototype.getCurrentTextMarkupAnnotation = function () {\n if (this.isTextMarkupAnnotationModule()) {\n if (this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n return true;\n }\n else {\n return false;\n }\n }\n else {\n return false;\n }\n };\n /**\n * @private\n * @returns {number} - Returns page number.\n */\n PdfViewerBase.prototype.getSelectTextMarkupCurrentPage = function () {\n if (this.isTextMarkupAnnotationModule()) {\n return this.pdfViewer.annotationModule.textMarkupAnnotationModule.selectTextMarkupCurrentPage;\n }\n else {\n return null;\n }\n };\n /**\n * @private\n * @returns {boolean} - Retunrs true or false.\n */\n PdfViewerBase.prototype.getAnnotationToolStatus = function () {\n if (this.pdfViewer.toolbarModule) {\n return this.pdfViewer.toolbarModule.annotationToolbarModule.isAnnotationButtonsEnabled();\n }\n else {\n return false;\n }\n };\n /**\n * @private\n * @returns {boolean} - Retunrs true or false.\n */\n PdfViewerBase.prototype.getPopupNoteVisibleStatus = function () {\n if (this.pdfViewer.annotationModule) {\n return this.pdfViewer.annotationModule.isPopupNoteVisible;\n }\n else {\n return false;\n }\n };\n /**\n * @private\n * @returns {TextMarkupAnnotation} - TextMarkupAnnotation.\n */\n PdfViewerBase.prototype.isTextMarkupAnnotationModule = function () {\n if (this.pdfViewer.annotationModule) {\n return this.pdfViewer.annotationModule.textMarkupAnnotationModule;\n }\n else {\n return null;\n }\n };\n /**\n * @private\n * @returns {boolean} - Returns true or false.\n */\n PdfViewerBase.prototype.isShapeAnnotationModule = function () {\n if (this.pdfViewer.annotation) {\n if (this.pdfViewer.annotation && this.pdfViewer.annotation.shapeAnnotationModule) {\n return true;\n }\n else {\n return false;\n }\n }\n else {\n return false;\n }\n };\n /**\n * @private\n * @returns {boolean} - Retunrs true or false.\n */\n PdfViewerBase.prototype.isFormDesignerModule = function () {\n if (this.pdfViewer.formDesignerModule) {\n return true;\n }\n else {\n return false;\n }\n };\n /**\n * @private\n * @returns {boolean} - Retunrs true or false.\n */\n PdfViewerBase.prototype.isCalibrateAnnotationModule = function () {\n if (this.pdfViewer.annotation) {\n if (this.pdfViewer.annotation && this.pdfViewer.annotation.measureAnnotationModule) {\n return true;\n }\n else {\n return false;\n }\n }\n else {\n return false;\n }\n };\n /**\n * @private\n * @returns {boolean} - Retunrs true or false.\n */\n PdfViewerBase.prototype.isStampAnnotationModule = function () {\n if (this.pdfViewer.annotation) {\n if (this.pdfViewer.annotation && this.pdfViewer.annotation.stampAnnotationModule) {\n return true;\n }\n else {\n return false;\n }\n }\n else {\n return false;\n }\n };\n /**\n * @private\n * @returns {boolean} - Retunrs true or false.\n */\n PdfViewerBase.prototype.isInkAnnotationModule = function () {\n if (this.pdfViewer.annotation) {\n if (this.pdfViewer.annotation && this.pdfViewer.annotation.inkAnnotationModule) {\n return true;\n }\n else {\n return false;\n }\n }\n else {\n return false;\n }\n };\n /**\n * @private\n * @returns {boolean} - Retunrs true or false.\n */\n PdfViewerBase.prototype.isCommentAnnotationModule = function () {\n if (this.pdfViewer.annotation) {\n if (this.pdfViewer.annotation && this.pdfViewer.annotation.stickyNotesAnnotationModule) {\n return true;\n }\n else {\n return false;\n }\n }\n else {\n return false;\n }\n };\n /**\n * @private\n * @returns {boolean} - Retunrs true or false.\n */\n PdfViewerBase.prototype.isShapeBasedAnnotationsEnabled = function () {\n // eslint-disable-next-line max-len\n if (this.isShapeAnnotationModule() || this.isCalibrateAnnotationModule() || this.isStampAnnotationModule() || this.isCommentAnnotationModule() || this.isFormDesignerModule()) {\n return true;\n }\n else {\n return false;\n }\n };\n /**\n * @private\n * @param {MouseEvent | PointerEvent | TouchEvent} e - Returns event.\n * @returns {PointModel} - Returns points.\n */\n PdfViewerBase.prototype.getMousePosition = function (e) {\n var touchArg;\n var offsetX;\n var offsetY;\n var currentTarget = e.target.parentElement;\n if (e.type.indexOf('touch') !== -1) {\n touchArg = e;\n if (this.pdfViewer.annotation) {\n var pageDiv = this.getElement('_pageDiv_' + this.pdfViewer.annotation.getEventPageNumber(e));\n if (pageDiv) {\n var pageCurrentRect = pageDiv.getBoundingClientRect();\n offsetX = touchArg.changedTouches[0].clientX - pageCurrentRect.left;\n offsetY = touchArg.changedTouches[0].clientY - pageCurrentRect.top;\n }\n }\n }\n else {\n if (e.target.classList.contains('e-pv-hyperlink')) {\n offsetX = e.offsetX + e.target.offsetLeft;\n offsetY = e.offsetY + e.target.offsetTop;\n }\n else if (e.target.classList.contains('e-pv-text') && currentTarget) {\n var targetParentRect = currentTarget.getBoundingClientRect();\n offsetX = e.clientX - targetParentRect.left;\n offsetY = e.clientY - targetParentRect.top;\n // eslint-disable-next-line\n }\n else if (e.target && (e && e.path) && currentTarget && (currentTarget.classList.contains('foreign-object') || currentTarget.parentElement.classList.contains('foreign-object'))) {\n // eslint-disable-next-line\n var targetParentRect = void 0;\n if (e.path[4].className === 'e-pv-page-div') {\n targetParentRect = e.path[4].getBoundingClientRect();\n }\n else {\n for (var i = 0; i < e.path.length; i++) {\n if (e.path[parseInt(i.toString(), 10)].className === 'e-pv-page-div') {\n targetParentRect = e.path[parseInt(i.toString(), 10)].getBoundingClientRect();\n break;\n }\n }\n }\n offsetX = e.clientX - targetParentRect.left;\n offsetY = e.clientY - targetParentRect.top;\n // eslint-disable-next-line\n }\n else if (e.target && currentTarget && currentTarget.classList.contains('foreign-object') || (e.target.classList.contains('e-pv-checkbox-div'))) {\n // eslint-disable-next-line\n var targetParentRect = void 0;\n if ((e.target.classList.contains('e-pv-checkbox-div'))) {\n targetParentRect = e.target.offsetParent.offsetParent.offsetParent.offsetParent.getBoundingClientRect();\n }\n else {\n targetParentRect = e.target.offsetParent.offsetParent.offsetParent.getBoundingClientRect();\n }\n offsetX = e.clientX - targetParentRect.left;\n offsetY = e.clientY - targetParentRect.top;\n }\n else {\n offsetX = e.offsetX;\n offsetY = e.offsetY;\n }\n }\n return { x: offsetX, y: offsetY };\n };\n PdfViewerBase.prototype.getMouseEventArgs = function (position, args, evt, source) {\n args.position = position;\n var obj;\n var objects;\n if (!source) {\n if (this.action === 'Drag' || this.action === 'ConnectorSourceEnd' || this.action === 'SegmentEnd' ||\n this.action === 'OrthoThumb' || this.action === 'BezierSourceThumb' || this.action === 'BezierTargetThumb' ||\n this.action === 'ConnectorTargetEnd' || this.action.indexOf('Rotate') !== -1 || this.action.indexOf('Resize') !== -1) {\n obj = this.pdfViewer.selectedItems;\n if (this.action === 'Drag' && obj && this.pdfViewer.selectedItems.annotations.length > 0) {\n obj = findActiveElement(evt, this, this.pdfViewer);\n }\n else if (this.action === 'Drag' && obj && this.pdfViewer.selectedItems.formFields.length > 0) {\n obj = findActiveElement(evt, this, this.pdfViewer);\n }\n }\n else {\n obj = findActiveElement(evt, this, this.pdfViewer);\n }\n }\n else {\n // objects = this.diagram.findObjectsUnderMouse(this.currentPosition, source);\n obj = findActiveElement(evt, this, this.pdfViewer);\n }\n var wrapper;\n if (obj) {\n wrapper = obj.wrapper;\n }\n if (!source) {\n args.source = obj;\n args.sourceWrapper = wrapper;\n }\n else {\n args.target = obj;\n args.targetWrapper = wrapper;\n }\n args.actualObject = this.eventArgs.actualObject;\n //args.startTouches = this.touchStartList;\n //args.moveTouches = this.touchMoveList;\n return args;\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} obj - The object.\n * @param {PointModel} position - The position.\n * @returns {Actions | string} - Returns the string.\n */\n PdfViewerBase.prototype.findToolToActivate = function (obj, position) {\n position = { x: position.x / this.getZoomFactor(), y: position.y / this.getZoomFactor() };\n var element = this.pdfViewer.selectedItems.wrapper;\n if (element && obj) {\n var selectorBnds = element.bounds; //let handle: SelectorModel = diagram.selectedItems;\n var paddedBounds = new Rect(selectorBnds.x, selectorBnds.y, selectorBnds.width, selectorBnds.height);\n if (obj.shapeAnnotationType === 'Line' || obj.shapeAnnotationType === 'LineWidthArrowHead' ||\n obj.shapeAnnotationType === 'Distance' || obj.shapeAnnotationType === 'Polygon') {\n var conn = this.pdfViewer.selectedItems.annotations[0];\n if (conn) {\n for (var i = 0; i < conn.vertexPoints.length; i++) {\n if (contains(position, conn.vertexPoints[parseInt(i.toString(), 10)], 10) && conn.leaderHeight !== 0) {\n return 'ConnectorSegmentPoint_' + i;\n }\n }\n }\n }\n if (obj.shapeAnnotationType === 'Distance') {\n var leaderCount = 0;\n var newPoint1 = void 0;\n if (obj && obj.wrapper) {\n for (var i = 0; i < obj.wrapper.children.length; i++) {\n var elementAngle = Point.findAngle(obj.sourcePoint, obj.targetPoint);\n // eslint-disable-next-line\n var segment = obj.wrapper.children[i];\n if (segment.id.indexOf('leader') > -1) {\n var centerPoint = obj.wrapper.children[0].bounds.center;\n if (leaderCount === 0) {\n newPoint1 = { x: obj.sourcePoint.x, y: obj.sourcePoint.y - obj.leaderHeight };\n centerPoint = obj.sourcePoint;\n }\n else {\n newPoint1 = { x: obj.targetPoint.x, y: obj.targetPoint.y - obj.leaderHeight };\n centerPoint = obj.targetPoint;\n }\n var matrix_1 = identityMatrix();\n rotateMatrix(matrix_1, elementAngle, centerPoint.x, centerPoint.y);\n var rotatedPoint = transformPointByMatrix(matrix_1, { x: newPoint1.x, y: newPoint1.y });\n if (contains(position, rotatedPoint, 10)) {\n return 'Leader' + leaderCount;\n }\n leaderCount++;\n }\n }\n }\n }\n var ten = this.pdfViewer.touchPadding;\n if (this.getZoomFactor() <= 1.5) {\n ten = ten / this.getZoomFactor();\n }\n var matrix = identityMatrix();\n rotateMatrix(matrix, obj.rotateAngle + element.parentTransform, element.offsetX, element.offsetY);\n //check for resizing tool\n var x = element.offsetX - element.pivot.x * element.actualSize.width;\n var y = element.offsetY - element.pivot.y * element.actualSize.height;\n var rotateThumb = {\n x: x + ((element.pivot.x === 0.5 ? element.pivot.x * 2 : element.pivot.x) * element.actualSize.width / 2),\n y: y - 30 / this.getZoomFactor()\n };\n rotateThumb = transformPointByMatrix(matrix, rotateThumb);\n if (obj.shapeAnnotationType === 'Stamp' && contains(position, rotateThumb, ten)) {\n return 'Rotate';\n }\n paddedBounds = this.inflate(ten, paddedBounds);\n if (paddedBounds.containsPoint(position, 0)) {\n var action = this.checkResizeHandles(this.pdfViewer, element, position, matrix, x, y);\n if (action) {\n return action;\n }\n }\n if (this.pdfViewer.selectedItems.annotations.indexOf(obj) > -1) {\n return 'Drag';\n }\n else if (this.pdfViewer.selectedItems.formFields.indexOf(obj) > -1 && this.pdfViewer.designerMode) {\n return 'Drag';\n }\n return 'Select';\n }\n return this.pdfViewer.tool || 'Select';\n };\n PdfViewerBase.prototype.inflate = function (padding, bound) {\n bound.x -= padding;\n bound.y -= padding;\n bound.width += padding * 2;\n bound.height += padding * 2;\n return bound;\n };\n PdfViewerBase.prototype.checkResizeHandles = function (diagram, element, position, matrix, x, y) {\n var action;\n if (!action) {\n action = this.checkForResizeHandles(diagram, element, position, matrix, x, y);\n }\n if (action) {\n return action;\n }\n return null;\n };\n PdfViewerBase.prototype.checkForResizeHandles = function (diagram, element, position, matrix, x, y) {\n var forty = 40 / 1;\n var ten = this.pdfViewer.touchPadding / 1;\n // Resizer cursor adjustment factor for higher zoom values\n var resizerBuffer = 1.9;\n if (this.getZoomFactor() >= 2.0 && !Browser.isDevice) {\n ten = ten / (this.getZoomFactor() / resizerBuffer);\n }\n if (element.actualSize.width < 40 || element.actualSize.height < 40 && Browser.isDevice) {\n ten = ten / 2 * this.getZoomFactor() / 1;\n }\n var selectedItems = diagram.selectedItems;\n var isStamp = false;\n var isSticky = false;\n var isNodeShape = false;\n var isInk = false;\n var resizerLocation = this.pdfViewer.annotationSelectorSettings.resizerLocation;\n if (resizerLocation < 1 || resizerLocation > 3) {\n resizerLocation = 3;\n }\n // eslint-disable-next-line max-len\n if (this.pdfViewer.selectedItems.annotations[0] && (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Stamp'\n || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'FreeText' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Image' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'HandWrittenSignature'\n || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'SignatureText' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'SignatureImage')) {\n isStamp = true;\n }\n // eslint-disable-next-line max-len\n if (this.pdfViewer.selectedItems.annotations[0] && this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'StickyNotes') {\n isSticky = true;\n }\n // eslint-disable-next-line max-len\n if (this.pdfViewer.selectedItems.annotations[0] && this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Ink') {\n isInk = true;\n }\n // eslint-disable-next-line max-len\n if (this.pdfViewer.selectedItems.annotations[0] && (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Ellipse' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Radius' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Rectangle')) {\n isNodeShape = true;\n }\n if (!isSticky) {\n // eslint-disable-next-line max-len\n if ((isInk || isStamp || (this.pdfViewer.selectedItems.annotations[0] && (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'HandWrittenSignature' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'SignatureText' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'SignatureImage')) || ((element.actualSize.width >= forty && element.actualSize.height >= forty) && isNodeShape && (resizerLocation === 1 || resizerLocation === 3)))) {\n if (contains(position, transformPointByMatrix(matrix, { x: x + element.actualSize.width, y: y + element.actualSize.height }), ten)) {\n return 'ResizeSouthEast';\n }\n if (contains(position, transformPointByMatrix(matrix, { x: x, y: y + element.actualSize.height }), ten)) {\n return 'ResizeSouthWest';\n }\n if (contains(position, transformPointByMatrix(matrix, { x: x + element.actualSize.width, y: y }), ten)) {\n return 'ResizeNorthEast';\n }\n if (contains(position, transformPointByMatrix(matrix, { x: x, y: y }), ten)) {\n return 'ResizeNorthWest';\n }\n }\n // eslint-disable-next-line max-len\n if (isInk || !isNodeShape || (isNodeShape && (resizerLocation === 2 || resizerLocation === 3 || (!(element.actualSize.width >= forty && element.actualSize.height >= forty) && resizerLocation === 1)))) {\n if (contains(\n // eslint-disable-next-line max-len\n position, transformPointByMatrix(matrix, { x: x + element.actualSize.width, y: y + element.actualSize.height / 2 }), ten) && !isStamp) {\n return 'ResizeEast';\n }\n // eslint-disable-next-line max-len\n if (contains(position, transformPointByMatrix(matrix, { x: x, y: y + element.actualSize.height / 2 }), ten) && !isStamp) {\n return 'ResizeWest';\n }\n if (contains(\n // eslint-disable-next-line max-len\n position, transformPointByMatrix(matrix, { x: x + element.actualSize.width / 2, y: y + element.actualSize.height }), ten) && !isStamp) {\n return 'ResizeSouth';\n }\n // eslint-disable-next-line max-len\n if (contains(position, transformPointByMatrix(matrix, { x: x + element.actualSize.width / 2, y: y }), ten) && !isStamp) {\n return 'ResizeNorth';\n }\n }\n }\n return null;\n };\n /**\n * @private\n * @param {string} fieldID - The fieldID\n * @returns {boolean} - Returns true or false.\n */\n PdfViewerBase.prototype.checkSignatureFormField = function (fieldID) {\n var isFormFieldSign = false;\n if (this.pdfViewer.formDesignerModule) {\n fieldID = fieldID.split('_')[0];\n }\n // eslint-disable-next-line\n var formField = this.pdfViewer.nameTable[fieldID];\n if (formField) {\n if (formField.formFieldAnnotationType === 'SignatureField' || formField.formFieldAnnotationType === 'InitialField' || formField.annotName === 'SignatureField') {\n isFormFieldSign = true;\n }\n }\n return isFormFieldSign;\n };\n /**\n * @private\n * @param {MouseEvent | TouchEvent} evt - The event.\n * @returns {void}\n */\n PdfViewerBase.prototype.diagramMouseMove = function (evt) {\n var allowServerDataBind = this.pdfViewer.allowServerDataBinding;\n this.pdfViewer.enableServerDataBinding(false);\n this.currentPosition = this.getMousePosition(evt);\n this.pdfViewer.firePageMouseover(this.currentPosition.x, this.currentPosition.y);\n if (this.pdfViewer.annotation) {\n this.activeElements.activePageID = this.pdfViewer.annotation.getEventPageNumber(evt);\n }\n else if (this.pdfViewer.formDesignerModule) {\n this.activeElements.activePageID = this.pdfViewer.formDesignerModule.getEventPageNumber(evt);\n }\n var obj = findActiveElement(evt, this, this.pdfViewer);\n if ((this.tool instanceof NodeDrawingTool) || (this.tool instanceof LineTool)) {\n obj = this.pdfViewer.drawingObject;\n }\n var target;\n var isFormFieldSign = this.pdfViewer.selectedItems.annotations.length > 0 ? this.checkSignatureFormField(this.pdfViewer.selectedItems.annotations[0].id) : false;\n if ((Point.equals(this.currentPosition, this.prevPosition) === false || this.inAction)) {\n if (this.isMouseDown === false) {\n this.eventArgs = {};\n var sourceDrawingElement = null;\n if (obj) {\n this.tool = this.getTool(this.action);\n if (obj.wrapper) {\n sourceDrawingElement = obj.wrapper.children[0];\n if (sourceDrawingElement) {\n target = obj;\n }\n }\n }\n var eventTarget = evt.target;\n this.action = this.findToolToActivate(obj, this.currentPosition);\n // eslint-disable-next-line\n if (obj && obj.annotationSettings && obj.annotationSettings.isLock) {\n if (this.action === 'Select') {\n if (!this.pdfViewer.annotationModule.checkAllowedInteractions('Select', obj)) {\n this.action = '';\n }\n }\n if (this.action === 'Drag') {\n if (!this.pdfViewer.annotationModule.checkAllowedInteractions('Move', obj)) {\n this.action = 'Select';\n }\n }\n // eslint-disable-next-line max-len\n if (this.action === 'ResizeSouthEast' || this.action === 'ResizeNorthEast' || this.action === 'ResizeNorthWest' || this.action === 'ResizeSouthWest' ||\n // eslint-disable-next-line max-len\n this.action === 'ResizeNorth' || this.action === 'ResizeWest' || this.action === 'ResizeEast' || this.action === 'ResizeSouth' || this.action.includes('ConnectorSegmentPoint') || this.action.includes('Leader')) {\n if (!this.pdfViewer.annotationModule.checkAllowedInteractions('Resize', obj)) {\n this.action = 'Select';\n }\n }\n }\n // eslint-disable-next-line max-len\n if (!this.pdfViewer.designerMode && ((!isNullOrUndefined(target) && (!isNullOrUndefined(target.formFieldAnnotationType))) || isFormFieldSign)) {\n if (this.action === 'ResizeSouthEast' || this.action === 'ResizeNorthEast' || this.action === 'ResizeNorthWest' || this.action === 'ResizeSouthWest' ||\n // eslint-disable-next-line max-len\n this.action === 'ResizeNorth' || this.action === 'Drag' || this.action === 'ResizeWest' || this.action === 'ResizeEast' || this.action === 'ResizeSouth' || this.action.includes('ConnectorSegmentPoint') || this.action.includes('Leader')) {\n this.action = '';\n }\n }\n this.tool = this.getTool(this.action);\n this.setCursor(eventTarget, evt);\n if (this.pdfViewer.linkAnnotationModule) {\n this.pdfViewer.linkAnnotationModule.disableHyperlinkNavigationUnderObjects(eventTarget, evt, this);\n }\n }\n else {\n if (!this.tool && this.action && this.action === 'Rotate') {\n this.tool = this.getTool(this.action);\n if (evt.target) {\n this.setCursor(evt.target, evt);\n }\n }\n // eslint-disable-next-line max-len\n if (!this.pdfViewer.designerMode && ((!isNullOrUndefined(target) && (!isNullOrUndefined(target.formFieldAnnotationType))) || isFormFieldSign)) {\n if (this.action === 'ResizeSouthEast' || this.action === 'ResizeNorthEast' || this.action === 'ResizeNorthWest' || this.action === 'ResizeSouthWest' ||\n // eslint-disable-next-line max-len\n this.action === 'ResizeNorth' || this.action === 'Drag' || this.action === 'ResizeWest' || this.action === 'ResizeEast' || this.action === 'ResizeSouth' || this.action.includes('ConnectorSegmentPoint') || this.action.includes('Leader')) {\n this.action = '';\n this.tool = null;\n }\n }\n if (this.eventArgs && this.eventArgs.source) {\n var eventTarget = evt.target;\n this.updateDefaultCursor(this.eventArgs.source, eventTarget, evt);\n }\n else {\n this.setCursor(evt.target, evt);\n }\n this.diagramMouseActionHelper(evt);\n if (this.tool) {\n var currentObject = obj;\n if (currentObject && currentObject.shapeAnnotationType === 'FreeText') {\n if (this.pdfViewer.freeTextSettings.allowEditTextOnly && this.action !== \"Ink\" &&\n (this.eventArgs.source && this.eventArgs.source.shapeAnnotationType === \"FreeText\")) {\n var eventTarget = event.target;\n eventTarget.style.cursor = 'default';\n this.tool = null;\n }\n }\n if (this.tool != null) {\n var info = { ctrlKey: evt.ctrlKey, shiftKey: evt.shiftKey };\n this.eventArgs.info = info;\n this.tool.mouseMove(this.eventArgs);\n }\n }\n }\n if (this.pdfViewer.drawingObject && this.pdfViewer.drawingObject.formFieldAnnotationType && this.action !== 'Drag') {\n if (!(this.tool instanceof ResizeTool)) {\n this.tool = this.getTool(this.action);\n if (this.tool instanceof NodeDrawingTool) {\n var obj_1 = this.pdfViewer.drawingObject;\n // eslint-disable-next-line\n var bounds = this.pdfViewer.formDesignerModule.updateFormFieldInitialSize(obj_1, obj_1.formFieldAnnotationType);\n var pageWidth = this.pageContainer.firstElementChild.clientWidth - bounds.width;\n var pageHeight = this.pageContainer.firstElementChild.clientHeight - bounds.height;\n if (this.pdfViewer.formDesignerModule && obj_1.formFieldAnnotationType\n && this.currentPosition.x < pageWidth && this.currentPosition.y < pageHeight) {\n // eslint-disable-next-line\n var formFieldElement = document.getElementById('FormField_helper_html_element');\n if (!formFieldElement) {\n // eslint-disable-next-line max-len\n this.pdfViewer.formDesignerModule.drawHelper(obj_1.formFieldAnnotationType, obj_1, evt);\n }\n else if (formFieldElement) {\n var previousActivePage = formFieldElement.parentElement.id.split(\"_text_\")[1] || formFieldElement.parentElement.id.split(\"_textLayer_\")[1] || formFieldElement.parentElement.id.split(\"_annotationCanvas_\")[1] || formFieldElement.parentElement.id.split(\"_pageDiv_\")[1];\n if (parseInt(previousActivePage) !== this.activeElements.activePageID) {\n formFieldElement.remove(\"FormField_helper_html_element\");\n }\n else {\n // eslint-disable-next-line\n var point = this.getMousePosition(event);\n if (obj_1.formFieldAnnotationType === 'Checkbox') {\n formFieldElement.firstElementChild.firstElementChild.lastElementChild.style.visibility = 'visible';\n }\n else if (obj_1.formFieldAnnotationType === 'SignatureField' || obj_1.formFieldAnnotationType === 'InitialField') {\n formFieldElement.firstElementChild.firstElementChild.style.visibility = 'visible';\n formFieldElement.firstElementChild.lastElementChild.style.visibility = 'visible';\n }\n else {\n formFieldElement.firstElementChild.firstElementChild.style.visibility = 'visible';\n }\n formFieldElement.setAttribute('style', 'height:' + bounds.height + 'px; width:' + bounds.width + 'px;left:' + point.x + 'px; top:' + point.y + 'px;' +\n 'position:absolute;opacity: 0.5;');\n }\n }\n }\n else if (this.currentPosition.x > pageWidth || this.currentPosition.y > pageHeight) {\n // eslint-disable-next-line\n var formFieldElement = document.getElementById('FormField_helper_html_element');\n if (!formFieldElement) {\n // eslint-disable-next-line max-len\n this.pdfViewer.formDesignerModule.drawHelper(obj_1.formFieldAnnotationType, obj_1, evt);\n }\n else if (formFieldElement) {\n // eslint-disable-next-line\n var point = this.getMousePosition(event);\n formFieldElement.setAttribute('style', 'height:' + bounds.height + 'px; width:' + bounds.width + 'px;left:' + point.x + 'px; top:' + point.y + 'px;' +\n 'position:absolute;opacity: 0.5;');\n if (obj_1.formFieldAnnotationType === 'Checkbox') {\n formFieldElement.firstElementChild.firstElementChild.lastElementChild.style.visibility = 'hidden';\n }\n else if (obj_1.formFieldAnnotationType === 'SignatureField' || obj_1.formFieldAnnotationType === 'InitialField') {\n formFieldElement.firstElementChild.firstElementChild.style.visibility = 'hidden';\n formFieldElement.firstElementChild.lastElementChild.style.visibility = 'hidden';\n }\n else {\n formFieldElement.firstElementChild.firstElementChild.style.visibility = 'hidden';\n }\n }\n }\n }\n }\n }\n this.prevPosition = this.currentPosition;\n }\n this.pdfViewer.enableServerDataBinding(allowServerDataBind, true);\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.updateDefaultCursor = function (source, target, event) {\n // eslint-disable-next-line max-len\n if (source && source.pageIndex !== undefined && source.pageIndex !== this.activeElements.activePageID && target) {\n // eslint-disable-next-line\n this.isPanMode ? target.style.cursor = 'grab' : target.style.cursor = 'default';\n }\n else {\n this.setCursor(target, event);\n }\n };\n /**\n * @private\n * @param {MouseEvent | TouchEvent} evt - The event.\n * @returns {void}\n */\n PdfViewerBase.prototype.diagramMouseLeave = function (evt) {\n this.currentPosition = this.getMousePosition(evt);\n if (this.pdfViewer.annotation) {\n this.activeElements.activePageID = this.pdfViewer.annotation.getEventPageNumber(evt);\n }\n if (isNaN(this.activeElements.activePageID) && this.pdfViewer.formDesignerModule) {\n this.activeElements.activePageID = this.pdfViewer.formDesignerModule.getEventPageNumber(evt);\n }\n var shapeElement = findActiveElement(evt, this, this.pdfViewer);\n var mouseMoveforce = false;\n var target;\n if (Point.equals(this.currentPosition, this.prevPosition) === false || this.inAction) {\n if (this.isMouseDown === false || mouseMoveforce) {\n this.eventArgs = {};\n var sourceElement = null;\n if (shapeElement) {\n sourceElement = shapeElement.wrapper.children[0];\n if (sourceElement) {\n target = shapeElement;\n }\n mouseMoveforce = false;\n }\n }\n else {\n this.diagramMouseActionHelper(evt);\n // eslint-disable-next-line max-len\n if (this.tool && this.action !== 'Drag' && this.pdfViewer.tool !== 'Stamp' && this.tool.currentElement && this.tool.currentElement.shapeAnnotationType !== 'Stamp') {\n this.tool.mouseLeave(this.eventArgs);\n this.tool = null;\n if (this.pdfViewer.annotation) {\n this.pdfViewer.annotationModule.renderAnnotations(this.previousPage, null, null, null);\n }\n }\n }\n this.prevPosition = this.currentPosition;\n }\n };\n PdfViewerBase.prototype.diagramMouseActionHelper = function (evt) {\n this.eventArgs.position = this.currentPosition;\n if (this.action === 'Drag' &&\n this.eventArgs.source instanceof Selector) {\n this.getMouseEventArgs(this.currentPosition, this.eventArgs, evt);\n }\n this.getMouseEventArgs(this.currentPosition, this.eventArgs, evt, this.eventArgs.source);\n this.inAction = true;\n this.initialEventArgs = null;\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.setCursor = function (eventTarget, event) {\n // eslint-disable-next-line max-len\n var freeTextAnnotModule = this.pdfViewer.annotationModule ? this.pdfViewer.annotationModule.freeTextAnnotationModule : null;\n var cursorType;\n if (this.tool instanceof ResizeTool) {\n if (this.tool.corner === 'ResizeNorthWest') {\n cursorType = this.setResizerCursorType();\n eventTarget.style.cursor = isNullOrUndefined(cursorType) ? 'nw-resize' : cursorType;\n }\n else if (this.tool.corner === 'ResizeNorthEast') {\n cursorType = this.setResizerCursorType();\n eventTarget.style.cursor = isNullOrUndefined(cursorType) ? 'ne-resize' : cursorType;\n }\n else if (this.tool.corner === 'ResizeSouthWest') {\n cursorType = this.setResizerCursorType();\n eventTarget.style.cursor = isNullOrUndefined(cursorType) ? 'sw-resize' : cursorType;\n }\n else if (this.tool.corner === 'ResizeSouthEast') {\n cursorType = this.setResizerCursorType();\n eventTarget.style.cursor = isNullOrUndefined(cursorType) ? 'se-resize' : cursorType;\n }\n else if (this.tool.corner === 'ResizeNorth') {\n cursorType = this.setResizerCursorType();\n eventTarget.style.cursor = isNullOrUndefined(cursorType) ? 'n-resize' : cursorType;\n }\n else if (this.tool.corner === 'ResizeWest') {\n cursorType = this.setResizerCursorType();\n eventTarget.style.cursor = isNullOrUndefined(cursorType) ? 'w-resize' : cursorType;\n }\n else if (this.tool.corner === 'ResizeEast') {\n cursorType = this.setResizerCursorType();\n eventTarget.style.cursor = isNullOrUndefined(cursorType) ? 'e-resize' : cursorType;\n }\n else if (this.tool.corner === 'ResizeSouth') {\n cursorType = this.setResizerCursorType();\n eventTarget.style.cursor = isNullOrUndefined(cursorType) ? 's-resize' : cursorType;\n }\n }\n else if (this.isCommentIconAdded && this.isAddComment) {\n eventTarget.style.cursor = 'crosshair';\n }\n else if (this.pdfViewer.enableHandwrittenSignature && this.isNewSignatureAdded && this.tool instanceof StampTool) {\n eventTarget.style.cursor = 'crosshair';\n }\n else if (this.tool instanceof MoveTool) {\n eventTarget.style.cursor = 'move';\n // eslint-disable-next-line max-len\n }\n else if (this.tool instanceof NodeDrawingTool || this.tool instanceof LineTool || this.tool instanceof PolygonDrawingTool || (freeTextAnnotModule && freeTextAnnotModule.isNewAddedAnnot) || this.tool instanceof InkDrawingTool) {\n eventTarget.style.cursor = 'crosshair';\n }\n else if (this.tool instanceof ConnectTool) {\n if (this.tool.endPoint && this.tool.endPoint.indexOf('Leader0')) {\n cursorType = this.setResizerCursorType();\n eventTarget.style.cursor = isNullOrUndefined(cursorType) ? 'nw-resize' : cursorType;\n }\n else if (this.tool.endPoint && this.tool.endPoint.indexOf('Leader1')) {\n cursorType = this.setResizerCursorType();\n eventTarget.style.cursor = isNullOrUndefined(cursorType) ? 'ne-resize' : cursorType;\n }\n else if (this.tool.endPoint && this.tool.endPoint.indexOf('ConnectorSegmentPoint')) {\n eventTarget.style.cursor = 'sw-resize';\n }\n }\n else {\n if (eventTarget.classList.contains('e-pv-text')) {\n eventTarget.style.cursor = 'text';\n }\n else if (eventTarget.classList.contains('e-pv-hyperlink')) {\n eventTarget.style.cursor = 'pointer';\n }\n else if (this.isPanMode) {\n if (this.isViewerMouseDown && event.type === 'mousemove') {\n eventTarget.style.cursor = 'grabbing';\n }\n else {\n var obj = findActiveElement(event, this, this.pdfViewer);\n if (obj && event.type === 'mousemove') {\n eventTarget.style.cursor = 'pointer';\n // eslint-disable-next-line max-len\n var currentObject = obj;\n // eslint-disable-next-line\n var currentPosition = this.getMousePosition(event);\n // eslint-disable-next-line\n var relativePosition = this.relativePosition(event);\n // eslint-disable-next-line\n var viewerPositions = { left: relativePosition.x, top: relativePosition.y };\n // eslint-disable-next-line\n var mousePositions = { left: currentPosition.x, top: currentPosition.y };\n // eslint-disable-next-line\n var annotationSettings = { opacity: currentObject.opacity, fillColor: currentObject.fillColor, strokeColor: currentObject.strokeColor, thicknes: currentObject.thickness, author: currentObject.author, subject: currentObject.subject, modifiedDate: currentObject.modifiedDate };\n // eslint-disable-next-line max-len\n this.isMousedOver = true;\n var isFormField = this.checkSignatureFormField(currentObject.id);\n if (currentObject.formFieldAnnotationType) {\n this.isFormFieldMousedOver = true;\n var field_1 = {\n // eslint-disable-next-line\n value: currentObject.value, fontFamily: currentObject.fontFamily, fontSize: currentObject.fontSize, fontStyle: currentObject.fontStyle,\n // eslint-disable-next-line max-len\n color: currentObject.color, backgroundColor: currentObject.backgroundColor, borderColor: currentObject.borderColor,\n // eslint-disable-next-line\n thickness: currentObject.thickness, alignment: currentObject.alignment, isReadonly: currentObject.isReadonly, visibility: currentObject.visibility,\n // eslint-disable-next-line\n maxLength: currentObject.maxLength, isRequired: currentObject.isRequired, isPrint: currentObject.isPrint, rotation: currentObject.rotateAngle, tooltip: currentObject.tooltip, options: currentObject.options,\n // eslint-disable-next-line\n isChecked: currentObject.isChecked, isSelected: currentObject.isSelected\n };\n this.pdfViewer.fireFormFieldMouseoverEvent('formFieldMouseover', field_1, currentObject.pageIndex, relativePosition.x, relativePosition.y, currentPosition.x, currentPosition.y);\n }\n else {\n if (!isFormField)\n // eslint-disable-next-line max-len\n this.pdfViewer.fireAnnotationMouseover(currentObject.annotName, currentObject.pageIndex, currentObject.shapeAnnotationType, currentObject.bounds, annotationSettings, mousePositions, viewerPositions);\n }\n }\n else {\n eventTarget.style.cursor = 'grab';\n if (this.isMousedOver) {\n var pageIndex = void 0;\n if (this.pdfViewer.formDesignerModule) {\n pageIndex = this.pdfViewer.formDesignerModule.getEventPageNumber(event);\n }\n else {\n pageIndex = this.pdfViewer.annotation.getEventPageNumber(event);\n }\n if (this.isFormFieldMousedOver) {\n this.pdfViewer.fireFormFieldMouseLeaveEvent('formFieldMouseLeave', null, pageIndex);\n }\n else {\n this.pdfViewer.fireAnnotationMouseLeave(pageIndex);\n }\n this.isMousedOver = false;\n this.isFormFieldMousedOver = false;\n }\n }\n }\n }\n else {\n var obj = findActiveElement(event, this, this.pdfViewer);\n if (obj && this.pdfViewer.selectedItems.annotations.length === 0 && event.type === 'mousemove') {\n var currentObject = obj;\n // eslint-disable-next-line\n var annotationObject = this.pdfViewer.nameTable[currentObject.id];\n // eslint-disable-next-line max-len\n if (annotationObject.shapeAnnotationType !== 'HandWrittenSignature' && annotationObject.shapeAnnotationType !== 'Ink' && annotationObject.annotationSettings && annotationObject.annotationSettings.isLock !== undefined) {\n annotationObject.annotationSettings.isLock = JSON.parse(annotationObject.annotationSettings.isLock);\n }\n if (annotationObject.annotationSettings && annotationObject.annotationSettings.isLock) {\n eventTarget.style.cursor = 'default';\n }\n else {\n eventTarget.style.cursor = 'pointer';\n }\n // eslint-disable-next-line\n var currentPosition = this.getMousePosition(event);\n // eslint-disable-next-line\n var relativePosition = this.relativePosition(event);\n // eslint-disable-next-line\n var viewerPositions = { left: relativePosition.x, top: relativePosition.y };\n // eslint-disable-next-line\n var mousePositions = { left: currentPosition.x, top: currentPosition.y };\n // eslint-disable-next-line\n var annotationSettings = { opacity: currentObject.opacity, fillColor: currentObject.fillColor, strokeColor: currentObject.strokeColor, thicknes: currentObject.thickness, author: currentObject.author, subject: currentObject.subject, modifiedDate: currentObject.modifiedDate };\n // eslint-disable-next-line max-len\n this.isMousedOver = true;\n var isFormField = this.checkSignatureFormField(currentObject.id);\n if (currentObject.formFieldAnnotationType) {\n this.isFormFieldMousedOver = true;\n var field_2 = {\n // eslint-disable-next-line\n value: currentObject.value, fontFamily: currentObject.fontFamily, fontSize: currentObject.fontSize, fontStyle: currentObject.fontStyle,\n // eslint-disable-next-line max-len\n color: currentObject.color, backgroundColor: currentObject.backgroundColor, borderColor: currentObject.borderColor,\n // eslint-disable-next-line\n thickness: currentObject.thickness, alignment: currentObject.alignment, isReadonly: currentObject.isReadonly, visibility: currentObject.visibility,\n // eslint-disable-next-line\n maxLength: currentObject.maxLength, isRequired: currentObject.isRequired, isPrint: currentObject.isPrint, rotation: currentObject.rotateAngle, tooltip: currentObject.tooltip, options: currentObject.options,\n // eslint-disable-next-line\n isChecked: currentObject.isChecked, isSelected: currentObject.isSelected\n };\n this.fromTarget = currentObject;\n this.pdfViewer.fireFormFieldMouseoverEvent('formFieldMouseover', field_2, currentObject.pageIndex, relativePosition.x, relativePosition.y, currentPosition.x, currentPosition.y);\n }\n else {\n if (!isFormField)\n // eslint-disable-next-line max-len\n this.pdfViewer.fireAnnotationMouseover(currentObject.annotName, currentObject.pageIndex, currentObject.shapeAnnotationType, currentObject.bounds, annotationSettings, mousePositions, viewerPositions);\n }\n }\n else if (!this.pdfViewer.formDesignerModule && event.target.classList.contains('e-pdfviewer-formFields')) {\n var pageIndex = this.pdfViewer.annotation.getEventPageNumber(event);\n var currentPosition = this.getMousePosition(event);\n var relativePosition = this.relativePosition(event);\n var viewerPositions = { left: relativePosition.x, top: relativePosition.y };\n var mousePositions = { left: currentPosition.x, top: currentPosition.y };\n var dataJson = this.getItemFromSessionStorage('_formfields');\n var data = JSON.parse(dataJson);\n for (var i = 0; i < data.length; i++) {\n if (data[parseInt(i.toString(), 10)].FieldName === event.target.name) {\n var field = { name: data[parseInt(i.toString(), 10)].FieldName };\n }\n }\n this.isMousedOver = true;\n this.isFormFieldMousedOver = true;\n this.pdfViewer.fireFormFieldMouseoverEvent('formFieldMouseover', field, pageIndex, relativePosition.x, relativePosition.y, currentPosition.x, currentPosition.y);\n }\n else {\n if (this.isMousedOver) {\n var pageIndex = void 0;\n if (this.pdfViewer.formDesignerModule) {\n pageIndex = this.pdfViewer.formDesignerModule.getEventPageNumber(event);\n }\n else {\n pageIndex = this.pdfViewer.annotation.getEventPageNumber(event);\n }\n if (this.isFormFieldMousedOver) {\n if (this.fromTarget) {\n var field_3 = {\n // eslint-disable-next-line\n name: this.fromTarget.name, id: this.fromTarget.id, value: this.fromTarget.value, fontFamily: this.fromTarget.fontFamily, fontSize: this.fromTarget.fontSize, fontStyle: this.fromTarget.fontStyle,\n // eslint-disable-next-line max-len\n color: this.fromTarget.color, backgroundColor: this.fromTarget.backgroundColor, borderColor: this.fromTarget.borderColor,\n // eslint-disable-next-line\n thickness: this.fromTarget.thickness, alignment: this.fromTarget.alignment, isReadonly: this.fromTarget.isReadonly, visibility: this.fromTarget.visibility,\n // eslint-disable-next-line\n maxLength: this.fromTarget.maxLength, isRequired: this.fromTarget.isRequired, isPrint: this.fromTarget.isPrint, rotation: this.fromTarget.rotateAngle, tooltip: this.fromTarget.tooltip, options: this.fromTarget.options,\n // eslint-disable-next-line\n isChecked: this.fromTarget.isChecked, isSelected: this.fromTarget.isSelected\n };\n this.pdfViewer.fireFormFieldMouseLeaveEvent('formFieldMouseLeave', field_3, pageIndex);\n }\n else {\n this.pdfViewer.fireFormFieldMouseLeaveEvent('formFieldMouseLeave', null, pageIndex);\n }\n }\n else {\n this.pdfViewer.fireAnnotationMouseLeave(pageIndex);\n }\n this.isMousedOver = false;\n this.isFormFieldMousedOver = false;\n eventTarget.style.cursor = 'default';\n }\n if (obj && this.pdfViewer.selectedItems.annotations.length === 1 && event.type === 'mousemove') {\n eventTarget.style.cursor = 'pointer';\n }\n else {\n eventTarget.style.cursor = 'default';\n }\n }\n }\n }\n };\n PdfViewerBase.prototype.setResizerCursorType = function () {\n var cursorType;\n // eslint-disable-next-line max-len\n if (this.pdfViewer.selectedItems.annotations[0] && isNullOrUndefined(this.pdfViewer.selectedItems.annotations[0].annotationSelectorSettings.resizerCursorType)) {\n if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'FreeText') {\n // eslint-disable-next-line max-len\n cursorType = !isNullOrUndefined(this.pdfViewer.freeTextSettings.annotationSelectorSettings) ? this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerCursorType : null;\n }\n else if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Stamp') {\n // eslint-disable-next-line max-len\n cursorType = !isNullOrUndefined(this.pdfViewer.stampSettings.annotationSelectorSettings) ? this.pdfViewer.stampSettings.annotationSelectorSettings.resizerCursorType : null;\n }\n else if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'HandWrittenSignature' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'SignatureText' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'SignatureImage') {\n // eslint-disable-next-line max-len\n cursorType = !isNullOrUndefined(this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings) ? this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerCursorType : null;\n }\n else if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Ink') {\n // eslint-disable-next-line max-len\n cursorType = !isNullOrUndefined(this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings) ? this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerCursorType : null;\n }\n else if (!this.pdfViewer.selectedItems.annotations[0].measureType) {\n if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Line') {\n // eslint-disable-next-line max-len\n cursorType = !isNullOrUndefined(this.pdfViewer.lineSettings.annotationSelectorSettings) ? this.pdfViewer.lineSettings.annotationSelectorSettings.resizerCursorType : null;\n }\n else if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'LineWidthArrowHead') {\n // eslint-disable-next-line max-len\n cursorType = !isNullOrUndefined(this.pdfViewer.arrowSettings.annotationSelectorSettings) ? this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerCursorType : null;\n }\n else if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Rectangle') {\n // eslint-disable-next-line max-len\n cursorType = !isNullOrUndefined(this.pdfViewer.rectangleSettings.annotationSelectorSettings) ? this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerCursorType : null;\n }\n else if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Ellipse') {\n // eslint-disable-next-line max-len\n cursorType = !isNullOrUndefined(this.pdfViewer.circleSettings.annotationSelectorSettings) ? this.pdfViewer.circleSettings.annotationSelectorSettings.resizerCursorType : null;\n }\n else if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Polygon') {\n // eslint-disable-next-line max-len\n cursorType = !isNullOrUndefined(this.pdfViewer.polygonSettings.annotationSelectorSettings) ? this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerCursorType : null;\n }\n }\n else if (this.pdfViewer.selectedItems.annotations[0].measureType) {\n if (this.pdfViewer.selectedItems.annotations[0].subject === 'Distance calculation') {\n // eslint-disable-next-line max-len\n cursorType = !isNullOrUndefined(this.pdfViewer.distanceSettings.annotationSelectorSettings) ? this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerCursorType : null;\n }\n else if (this.pdfViewer.selectedItems.annotations[0].subject === 'Perimeter calculation') {\n // eslint-disable-next-line max-len\n cursorType = !isNullOrUndefined(this.pdfViewer.perimeterSettings.annotationSelectorSettings) ? this.pdfViewer.perimeterSettings.annotationSelectorSettings.resizerCursorType : null;\n }\n else if (this.pdfViewer.selectedItems.annotations[0].subject === 'Area calculation') {\n // eslint-disable-next-line max-len\n cursorType = !isNullOrUndefined(this.pdfViewer.areaSettings.annotationSelectorSettings) ? this.pdfViewer.areaSettings.annotationSelectorSettings.resizerCursorType : null;\n }\n else if (this.pdfViewer.selectedItems.annotations[0].subject === 'Radius calculation') {\n // eslint-disable-next-line max-len\n cursorType = !isNullOrUndefined(this.pdfViewer.radiusSettings.annotationSelectorSettings) ? this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerCursorType : null;\n }\n else if (this.pdfViewer.selectedItems.annotations[0].subject === 'Volume calculation') {\n // eslint-disable-next-line max-len\n cursorType = !isNullOrUndefined(this.pdfViewer.volumeSettings.annotationSelectorSettings) ? this.pdfViewer.volumeSettings.annotationSelectorSettings.resizerCursorType : null;\n }\n }\n }\n else {\n if (this.pdfViewer.selectedItems.annotations[0]) {\n cursorType = this.pdfViewer.selectedItems.annotations[0].annotationSelectorSettings.resizerCursorType;\n }\n }\n if (!cursorType) {\n cursorType = this.pdfViewer.annotationSelectorSettings.resizerCursorType;\n }\n return cursorType;\n };\n /**\n * @private\n * @param {Actions | string} action - The actions.\n * @returns {ToolBase} - Returns tools.\n */\n PdfViewerBase.prototype.getTool = function (action) {\n switch (action) {\n case 'Select':\n return new SelectTool(this.pdfViewer, this);\n case 'Drag':\n return new MoveTool(this.pdfViewer, this);\n case 'ResizeSouthEast':\n case 'ResizeSouthWest':\n case 'ResizeNorthEast':\n case 'ResizeNorthWest':\n case 'ResizeSouth':\n case 'ResizeNorth':\n case 'ResizeWest':\n case 'ResizeEast':\n return new ResizeTool(this.pdfViewer, this, action);\n case 'ConnectorSourceEnd':\n case 'ConnectorTargetEnd':\n case 'Leader':\n case 'ConnectorSegmentPoint':\n return new ConnectTool(this.pdfViewer, this, action);\n case 'DrawTool':\n return new NodeDrawingTool(this.pdfViewer, this, this.pdfViewer.drawingObject);\n case 'Polygon':\n return new PolygonDrawingTool(this.pdfViewer, this, 'Polygon');\n case 'Distance':\n return new LineTool(this.pdfViewer, this, 'Leader1', undefined);\n case 'Line':\n return new LineTool(this.pdfViewer, this, 'ConnectorSegmentPoint_1', this.pdfViewer.drawingObject);\n case 'Perimeter':\n return new PolygonDrawingTool(this.pdfViewer, this, 'Perimeter');\n case 'Rotate':\n return new RotateTool(this.pdfViewer, this);\n case 'Stamp':\n return new StampTool(this.pdfViewer, this);\n case 'Ink':\n return new InkDrawingTool(this.pdfViewer, this, this.pdfViewer.drawingObject);\n }\n if (action.indexOf('ConnectorSegmentPoint') > -1 || action.indexOf('Leader') > -1) {\n return new ConnectTool(this.pdfViewer, this, action);\n }\n return null;\n };\n /**\n * @private\n * @param {MouseEvent | TouchEvent} evt - The events.\n * @returns {void}\n */\n PdfViewerBase.prototype.diagramMouseUp = function (evt) {\n var allowServerDataBind = this.pdfViewer.allowServerDataBinding;\n this.pdfViewer.enableServerDataBinding(false);\n var touches;\n var isAnnotResized = (this.action.toLowerCase().includes('resize') || this.action.toLowerCase().includes('connectorsegmentpoint'));\n var isAnnotationDrawn = (this.action === 'Drag' || isAnnotResized) || ((this.tool instanceof NodeDrawingTool || this.tool instanceof LineTool || this.tool instanceof PolygonDrawingTool) && (this.tool.dragging && this.tool.drawingObject));\n if (this.tool) {\n if (!this.inAction && evt.which !== 3) {\n if (this.action === 'Drag') {\n this.action = 'Select';\n var obj = findActiveElement(evt, this, this.pdfViewer);\n var isMultipleSelect = true;\n }\n }\n var isGroupAction = void 0;\n if (!(this.tool instanceof PolygonDrawingTool) && !(this.tool instanceof LineTool) && !(this.tool instanceof NodeDrawingTool)) {\n this.inAction = false;\n this.isMouseDown = false;\n }\n this.currentPosition = this.getMousePosition(evt);\n if (this.tool) {\n this.eventArgs.position = this.currentPosition;\n this.getMouseEventArgs(this.currentPosition, this.eventArgs, evt, this.eventArgs.source);\n var ctrlKey = this.isMetaKey(evt);\n var info = { ctrlKey: evt.ctrlKey, shiftKey: evt.shiftKey };\n this.eventArgs.info = info;\n this.eventArgs.clickCount = evt.detail;\n this.tool.mouseUp(this.eventArgs);\n this.isAnnotationMouseDown = false;\n this.isFormFieldMouseDown = false;\n // eslint-disable-next-line max-len\n if ((this.tool instanceof NodeDrawingTool || this.tool instanceof LineTool || this.tool instanceof PolygonDrawingTool) && !this.tool.dragging) {\n this.inAction = false;\n this.isMouseDown = false;\n }\n if (isAnnotationDrawn) {\n var obj = findActiveElement(evt, this, this.pdfViewer);\n // eslint-disable-next-line max-len\n if ((this.isShapeAnnotationModule() || this.isCalibrateAnnotationModule())) {\n this.pdfViewer.annotation.onShapesMouseup(obj, evt);\n }\n }\n this.isAnnotationDrawn = false;\n }\n }\n var target = evt.target;\n // eslint-disable-next-line max-len\n if (!touches && evt.cancelable && this.skipPreventDefault(target) && (!Browser.isDevice || this.pdfViewer.enableDesktopMode)) {\n evt.preventDefault();\n }\n this.eventArgs = {};\n this.pdfViewer.enableServerDataBinding(allowServerDataBind, true);\n };\n /**\n * @private\n * @param {HTMLElement} target - The target.\n * @returns {boolean} - Returns true or false.\n */\n PdfViewerBase.prototype.skipPreventDefault = function (target) {\n var isSkipped = false;\n var isSkip = false;\n // eslint-disable-next-line max-len\n if (this.pdfViewer.annotationModule && this.pdfViewer.annotationModule.freeTextAnnotationModule && this.pdfViewer.annotationModule.freeTextAnnotationModule.isInuptBoxInFocus) {\n isSkip = true;\n }\n // eslint-disable-next-line max-len\n if (target.parentElement && target.parentElement.className !== 'foreign-object' && !target.classList.contains('e-pv-radio-btn') && !target.classList.contains('e-pv-radiobtn-span') && !target.classList.contains('e-pv-checkbox-div') && !target.classList.contains('e-pdfviewer-formFields')\n && !target.classList.contains('e-pdfviewer-ListBox') && !target.classList.contains('e-pdfviewer-signatureformfields')\n && !((target).className === 'free-text-input' && (target).tagName === 'TEXTAREA')\n && !isSkip && !((target).className === 'e-pv-hyperlink') && target.parentElement.classList.length > 0 && !target.parentElement.classList.contains(\"e-editable-elements\")) {\n isSkipped = true;\n }\n return isSkipped;\n };\n PdfViewerBase.prototype.isMetaKey = function (evt) {\n return navigator.platform.match('Mac') ? evt.metaKey : evt.ctrlKey;\n };\n /**\n * @private\n * @param {MouseEvent | TouchEvent} evt - The events.\n * @returns {void}\n */\n PdfViewerBase.prototype.diagramMouseDown = function (evt) {\n var _this = this;\n if (this.tool instanceof MoveTool && !(this.tool instanceof StampTool) && this.tool['inAction']) {\n this.diagramMouseUp(evt);\n if (evt.which === 1) {\n this.preventContextmenu = true;\n setTimeout(function () {\n _this.preventContextmenu = false;\n }, 200);\n }\n }\n var allowServerDataBind = this.pdfViewer.allowServerDataBinding;\n this.pdfViewer.enableServerDataBinding(false);\n var touches = null;\n touches = evt.touches;\n this.isMouseDown = true;\n this.isAnnotationAdded = false;\n this.currentPosition = this.prevPosition = this.getMousePosition(evt);\n this.eventArgs = {};\n var isStamp = false;\n if (this.pdfViewer.tool === 'Stamp') {\n this.pdfViewer.tool = '';\n isStamp = true;\n }\n var target;\n if (Browser.isDevice && this.pdfViewer.annotation) {\n this.activeElements.activePageID = this.pdfViewer.annotation.getEventPageNumber(evt);\n }\n var obj = findActiveElement(evt, this, this.pdfViewer);\n if ((Browser.isDevice && !this.pdfViewer.enableDesktopMode) && (obj && !(obj instanceof PdfFormFieldBase))) {\n evt.preventDefault();\n }\n if (this.pdfViewer.annotation && this.pdfViewer.enableStampAnnotations) {\n var stampModule = this.pdfViewer.annotationModule.stampAnnotationModule;\n if (stampModule && stampModule.isNewStampAnnot) {\n var stampObj = obj;\n if (!stampObj && this.pdfViewer.selectedItems.annotations[0]) {\n stampObj = this.pdfViewer.selectedItems.annotations[0];\n }\n if (stampObj) {\n this.isViewerMouseDown = false;\n stampObj.opacity = this.pdfViewer.stampSettings.opacity;\n this.isNewStamp = true;\n var opacity = void 0;\n if (stampObj.shapeAnnotationType === 'Image') {\n opacity = this.pdfViewer.customStampSettings.opacity;\n }\n else {\n opacity = this.pdfViewer.stampSettings.opacity;\n }\n // eslint-disable-next-line max-len\n this.pdfViewer.nodePropertyChange(stampObj, { opacity: opacity });\n this.pdfViewer.annotation.stampAnnotationModule.isStampAddMode = false;\n if (stampObj.shapeAnnotationType === 'Image' && !this.isAlreadyAdded) {\n this.stampAdded = true;\n var stampName = stampObj.id;\n if (stampModule.currentStampAnnotation && stampModule.currentStampAnnotation.signatureName) {\n stampName = stampModule.currentStampAnnotation.signatureName;\n }\n var isSkip = false;\n for (var i = 0; i < this.customStampCollection.length; i++) {\n if (this.customStampCollection[parseInt(i.toString(), 10)].customStampName === stampName) {\n isSkip = true;\n break;\n }\n }\n if (isSkip) {\n stampName = stampObj.id;\n }\n stampName = stampModule.customStampName ? stampModule.customStampName : stampModule.currentStampAnnotation.signatureName;\n this.customStampCollection.push({ customStampName: stampName, customStampImageSource: stampObj.data });\n if (isBlazor()) {\n this.pdfViewer._dotnetInstance.invokeMethodAsync(\"UpdateCustomStampCollection\", stampName, stampObj.data);\n }\n }\n if (this.pdfViewer.customStampSettings.enableCustomStamp && this.pdfViewer.customStampSettings.isAddToMenu) {\n this.stampAdded = true;\n }\n this.isAlreadyAdded = false;\n stampModule.updateDeleteItems(stampObj.pageIndex, stampObj, stampObj.opacity);\n stampModule.resetAnnotation();\n stampModule.isNewStampAnnot = false;\n }\n }\n }\n if (this.isNewSignatureAdded) {\n this.signatureCount++;\n this.currentSignatureAnnot = null;\n var signObject = obj;\n if (isNullOrUndefined(signObject) && this.pdfViewer.selectedItems.annotations[0]) {\n signObject = this.pdfViewer.selectedItems.annotations[0];\n }\n if (signObject) {\n this.signatureAdded = true;\n this.signatureModule.storeSignatureData(signObject.pageIndex, signObject);\n // eslint-disable-next-line\n var bounds = { left: signObject.bounds.x, top: signObject.bounds.y, width: signObject.bounds.width, height: signObject.bounds.height };\n // eslint-disable-next-line max-len\n this.pdfViewer.fireSignatureAdd(signObject.pageIndex, signObject.signatureName, signObject.shapeAnnotationType, bounds, signObject.opacity, signObject.strokeColor, signObject.thickness, this.signatureModule.saveImageString);\n }\n this.isNewSignatureAdded = false;\n }\n if (this.pdfViewer.annotationModule) {\n var freeTextAnnotModule = this.pdfViewer.annotationModule.freeTextAnnotationModule;\n var canvasPaddingLeft = 5, canvasPaddingWidth = 10;\n // eslint-disable-next-line\n if (freeTextAnnotModule.isNewFreeTextAnnot === true) {\n var canvas = void 0;\n // eslint-disable-next-line max-len\n if (evt.target && (evt.target.id.indexOf('_text') > -1 || evt.target.id.indexOf('_annotationCanvas') > -1 || evt.target.classList.contains('e-pv-hyperlink')) && this.pdfViewer.annotation) {\n var pageIndex = this.pdfViewer.annotation.getEventPageNumber(evt);\n var diagram = document.getElementById(this.pdfViewer.element.id + '_annotationCanvas_' + pageIndex);\n if (diagram) {\n var canvas1 = diagram.getBoundingClientRect();\n var left = canvas1.x ? canvas1.x : canvas1.left;\n var top_4 = canvas1.y ? canvas1.y : canvas1.top;\n canvas = new Rect(left + canvasPaddingLeft, top_4 + canvasPaddingLeft, canvas1.width - canvasPaddingWidth, canvas1.height - canvasPaddingWidth);\n }\n }\n if (touches) {\n this.mouseX = touches[0].clientX;\n this.mouseY = touches[0].clientY;\n }\n if (canvas && canvas.containsPoint({ x: this.mouseX, y: this.mouseY }) && freeTextAnnotModule.isNewAddedAnnot) {\n var pageIndex = this.pdfViewer.annotation.getEventPageNumber(evt);\n if (!this.pdfViewer.freeTextSettings.enableAutoFit) {\n var zoomFactor = this.getZoomFactor();\n var width = this.currentPosition.x + (freeTextAnnotModule.defautWidth * zoomFactor);\n var pageWidth = this.getPageWidth(pageIndex);\n if (width >= pageWidth) {\n this.currentPosition.x = pageWidth - (freeTextAnnotModule.defautWidth * zoomFactor);\n this.currentPosition.x <= 0 ? this.currentPosition.x = canvasPaddingLeft : this.currentPosition.x;\n freeTextAnnotModule.defautWidth = (freeTextAnnotModule.defautWidth * zoomFactor) >= pageWidth ? pageWidth - canvasPaddingWidth : freeTextAnnotModule.defautWidth;\n }\n }\n freeTextAnnotModule.addInuptElemet(this.currentPosition, null, pageIndex);\n if (this.pdfViewer.toolbar && this.pdfViewer.toolbar.annotationToolbarModule) {\n // eslint-disable-next-line\n var annotModule = this.pdfViewer.toolbar.annotationToolbarModule;\n if (!isBlazor()) {\n annotModule.primaryToolbar.deSelectItem(annotModule.freeTextEditItem);\n }\n }\n evt.preventDefault();\n freeTextAnnotModule.isNewAddedAnnot = false;\n }\n }\n }\n var sourceElement = null;\n if (obj) {\n sourceElement = obj.wrapper.children[0];\n if (sourceElement) {\n target = obj;\n }\n }\n if (!this.tool || (this.tool && !this.tool.drawingObject)) {\n if (!isStamp) {\n this.action = this.findToolToActivate(obj, this.currentPosition);\n // eslint-disable-next-line\n if (obj && obj.annotationSettings && obj.annotationSettings.isLock) {\n if (this.action === 'Select') {\n if (!this.pdfViewer.annotationModule.checkAllowedInteractions('Select', obj)) {\n this.action = '';\n }\n }\n if (this.action === 'Drag') {\n if (!this.pdfViewer.annotationModule.checkAllowedInteractions('Move', obj)) {\n this.action = 'Select';\n }\n }\n if (this.action === 'Rotate') {\n this.action = 'Select';\n }\n // eslint-disable-next-line max-len\n if (this.action === 'ResizeSouthEast' || this.action === 'ResizeNorthEast' || this.action === 'ResizeNorthWest' || this.action === 'ResizeSouthWest' || this.action === 'ResizeSouth' || // eslint-disable-next-line max-len\n this.action === 'ResizeNorth' || this.action === 'ResizeWest' || this.action === 'ResizeEast' || this.action.includes('ConnectorSegmentPoint') || this.action.includes('Leader')) {\n if (!this.pdfViewer.annotationModule.checkAllowedInteractions('Resize', obj)) {\n this.action = 'Select';\n }\n }\n }\n this.tool = this.getTool(this.action);\n if (!this.tool) {\n this.action = this.pdfViewer.tool || 'Select';\n this.tool = this.getTool(this.action);\n }\n }\n else {\n this.action = 'Select';\n this.tool = this.getTool(this.action);\n }\n }\n this.getMouseEventArgs(this.currentPosition, this.eventArgs, evt);\n this.eventArgs.position = this.currentPosition;\n if (this.tool) {\n this.isAnnotationMouseDown = false;\n this.isFormFieldMouseDown = false;\n this.isAnnotationMouseMove = false;\n this.isFormFieldMouseMove = false;\n this.tool.mouseDown(this.eventArgs);\n this.isAnnotationDrawn = true;\n this.signatureAdded = true;\n }\n if (this.pdfViewer.annotation) {\n this.pdfViewer.annotation.onAnnotationMouseDown();\n }\n if (this.pdfViewer.selectedItems && this.pdfViewer.selectedItems.formFields.length === 1) {\n if (!isNullOrUndefined(this.pdfViewer.toolbar) && !isNullOrUndefined(this.pdfViewer.toolbar.formDesignerToolbarModule)) {\n this.pdfViewer.toolbar.formDesignerToolbarModule.showHideDeleteIcon(true);\n }\n }\n var signatureFieldAnnotation = this.pdfViewer.selectedItems.annotations.length === 1 ? this.pdfViewer.nameTable[this.pdfViewer.selectedItems.annotations[0].id.split('_')[0] + '_content'] : null;\n if (!signatureFieldAnnotation) {\n signatureFieldAnnotation = this.pdfViewer.selectedItems.annotations.length === 1 ? this.pdfViewer.nameTable[this.pdfViewer.selectedItems.annotations[0].id] : null;\n }\n // eslint-disable-next-line max-len\n if (this.eventArgs && this.eventArgs.source && (this.eventArgs.source.formFieldAnnotationType || signatureFieldAnnotation) && !this.pdfViewer.designerMode) {\n var currentObject = void 0;\n if (signatureFieldAnnotation) {\n currentObject = this.pdfViewer.nameTable[this.pdfViewer.selectedItems.annotations[0].id.split('_')[0]];\n }\n else {\n currentObject = this.eventArgs.source;\n }\n if (!currentObject) {\n currentObject = this.pdfViewer.formFieldCollections[this.pdfViewer.formFieldCollections.findIndex(function (el) { return el.id === signatureFieldAnnotation.id; })];\n }\n if (currentObject) {\n // eslint-disable-next-line\n var field = {\n // eslint-disable-next-line max-len\n name: currentObject.name, id: currentObject.id, fontFamily: currentObject.fontFamily, fontSize: currentObject.fontSize, fontStyle: currentObject.fontStyle,\n // eslint-disable-next-line\n color: currentObject.color, value: currentObject.value, type: currentObject.formFieldAnnotationType ? currentObject.formFieldAnnotationType : currentObject.type, backgroundColor: currentObject.backgroundColor, alignment: currentObject.alignment\n };\n var target_1 = document.getElementById(currentObject.id);\n target_1 = target_1 ? target_1 : (document.getElementById(currentObject.id + '_content_html_element') ? document.getElementById(currentObject.id + '_content_html_element').children[0].children[0] : null);\n if (target_1) {\n this.currentTarget = target_1;\n this.pdfViewer.fireFormFieldClickEvent('formFieldClicked', field, false, evt.button === 0);\n }\n }\n }\n this.initialEventArgs = { source: this.eventArgs.source, sourceWrapper: this.eventArgs.sourceWrapper };\n this.initialEventArgs.position = this.currentPosition;\n this.initialEventArgs.info = this.eventArgs.info;\n this.pdfViewer.enableServerDataBinding(allowServerDataBind, true);\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.exportAnnotationsAsObject = function () {\n var _this = this;\n if (this.pdfViewer.annotationModule) {\n var isAnnotations = this.updateExportItem();\n if (isAnnotations) {\n return new Promise(function (resolve, reject) {\n _this.createRequestForExportAnnotations(true, AnnotationDataFormat.Json).then(function (value) {\n resolve(value);\n });\n });\n }\n }\n };\n /**\n * @private\n * @param {string} type - The type.\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.getItemFromSessionStorage = function (type) {\n if (this.isStorageExceed) {\n return this.formFieldStorage[this.documentId + type];\n }\n else {\n return window.sessionStorage.getItem(this.documentId + type);\n }\n };\n /**\n * @param textDiv\n * @param left\n * @param top\n * @param fontHeight\n * @param width\n * @param height\n * @param isPrint\n * @param textDiv\n * @param left\n * @param top\n * @param fontHeight\n * @param width\n * @param height\n * @param isPrint\n * @param textDiv\n * @param left\n * @param top\n * @param fontHeight\n * @param width\n * @param height\n * @param isPrint\n * @param textDiv\n * @param left\n * @param top\n * @param fontHeight\n * @param width\n * @param height\n * @param isPrint\n * @param textDiv\n * @param left\n * @param top\n * @param fontHeight\n * @param width\n * @param height\n * @param isPrint\n * @private\n */\n // eslint-disable-next-line max-len\n PdfViewerBase.prototype.setStyleToTextDiv = function (textDiv, left, top, fontHeight, width, height, isPrint) {\n var zoomvalue = this.getZoomFactor();\n if (isPrint) {\n zoomvalue = 1;\n textDiv.style.position = 'absolute';\n }\n textDiv.style.left = left * zoomvalue + 'px';\n textDiv.style.top = top * zoomvalue + 'px';\n textDiv.style.height = height * zoomvalue + 'px';\n textDiv.style.width = width * zoomvalue + 'px';\n textDiv.style.margin = '0px';\n if (fontHeight > 0) {\n textDiv.style.fontSize = fontHeight * zoomvalue + 'px';\n }\n };\n /**\n * @param number\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.ConvertPointToPixel = function (number) {\n return (number * (96 / 72));\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.setItemInSessionStorage = function (formFieldsData, type) {\n // eslint-disable-next-line\n var formFieldsSize = Math.round(JSON.stringify(formFieldsData).length / 1024);\n var sessionSize = Math.round(JSON.stringify(window.sessionStorage).length / 1024);\n if (formFieldsSize > 4500) {\n this.isStorageExceed = true;\n if (this.pdfViewer.formFieldsModule) {\n if (!(this.isFormStorageExceed)) {\n this.pdfViewer.formFieldsModule.clearFormFieldStorage();\n this.isFormStorageExceed = true;\n }\n }\n }\n if (this.isStorageExceed) {\n this.formFieldStorage[this.documentId + type] = JSON.stringify(formFieldsData);\n }\n else if ((formFieldsSize + sessionSize) > 4500) {\n this.isStorageExceed = true;\n if (this.pdfViewer.formFieldsModule) {\n this.pdfViewer.formFieldsModule.clearFormFieldStorage();\n }\n this.isFormStorageExceed = true;\n if (this.pdfViewer.annotationModule) {\n this.pdfViewer.annotationModule.clearAnnotationStorage();\n }\n this.formFieldStorage[this.documentId + type] = JSON.stringify(formFieldsData);\n }\n else {\n window.sessionStorage.setItem(this.documentId + type, JSON.stringify(formFieldsData));\n }\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.exportFormFieldsAsObject = function (formFieldDataFormat) {\n var _this = this;\n if (this.pdfViewer.formFieldsModule) {\n return new Promise(function (resolve, reject) {\n _this.createRequestForExportFormfields(true, formFieldDataFormat).then(function (value) {\n resolve(value);\n });\n });\n }\n };\n /**\n * @param importData\n * @param annotationDataFormat\n * @param isXfdf\n * @param importData\n * @param annotationDataFormat\n * @param isXfdf\n * @param importData\n * @param annotationDataFormat\n * @param isXfdf\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.importAnnotations = function (importData, annotationDataFormat, isXfdf) {\n if (this.pdfViewer.annotationModule) {\n this.createRequestForImportAnnotations(importData, annotationDataFormat, isXfdf);\n }\n };\n /**\n * @private\n * @param {AnnotationDataFormat} annotationDataFormat - The annotationDataFormat.\n * @returns {void}\n */\n PdfViewerBase.prototype.exportAnnotations = function (annotationDataFormat) {\n if (this.pdfViewer.annotationModule) {\n var isAnnotations = this.updateExportItem();\n if (isAnnotations) {\n this.createRequestForExportAnnotations(false, annotationDataFormat);\n }\n }\n };\n /**\n * @param isObject\n * @param annotationDataFormat\n * @param isBase64String\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.createRequestForExportAnnotations = function (isObject, annotationDataFormat, isBase64String) {\n var _this = this;\n var proxy = null;\n proxy = this;\n var promise = new Promise(function (resolve, reject) {\n // eslint-disable-next-line\n var jsonObject;\n jsonObject = _this.constructJsonDownload();\n jsonObject.annotationDataFormat = annotationDataFormat;\n // eslint-disable-next-line\n jsonObject['action'] = 'ExportAnnotations';\n proxy.pdfViewer.fireExportStart(jsonObject);\n if (proxy.jsonDocumentId) {\n // eslint-disable-next-line\n jsonObject.document = proxy.jsonDocumentId;\n }\n var url = proxy.pdfViewer.serviceUrl + '/' + proxy.pdfViewer.serverActionSettings.exportAnnotations;\n proxy.exportAnnotationRequestHandler = new AjaxHandler(_this.pdfViewer);\n proxy.exportAnnotationRequestHandler.url = url;\n proxy.exportAnnotationRequestHandler.mode = true;\n proxy.exportAnnotationRequestHandler.responseType = 'text';\n proxy.exportAnnotationRequestHandler.send(jsonObject);\n // eslint-disable-next-line\n proxy.exportAnnotationRequestHandler.onSuccess = function (result) {\n // eslint-disable-next-line\n var data = result.data;\n var redirect = proxy.checkRedirection(data);\n if (!redirect) {\n if (data) {\n if (typeof data === 'object') {\n data = JSON.parse(data);\n }\n if (data) {\n var isCancel = proxy.pdfViewer.fireAjaxRequestSuccess(proxy.pdfViewer.serverActionSettings.exportAnnotations, data);\n if (isObject || (isBase64String && !isBlazor())) {\n if (data.split('base64,')[1]) {\n var exportObject = data;\n // eslint-disable-next-line \n var annotationJson = atob(data.split(',')[1]);\n if (isObject) {\n if (jsonObject.annotationDataFormat === 'Json') {\n exportObject = JSON.parse(annotationJson);\n }\n else {\n exportObject = annotationJson;\n }\n }\n if (proxy.pdfViewer.exportAnnotationFileName !== null) {\n proxy.pdfViewer.fireExportSuccess(exportObject, proxy.pdfViewer.exportAnnotationFileName);\n }\n else {\n proxy.pdfViewer.fireExportSuccess(exportObject, proxy.pdfViewer.fileName);\n }\n proxy.updateDocumentAnnotationCollections();\n if (isBase64String) {\n resolve(data);\n }\n else {\n resolve(annotationJson);\n }\n }\n else {\n // eslint-disable-next-line max-len\n proxy.pdfViewer.fireExportFailed(jsonObject.pdfAnnotation, proxy.pdfViewer.localeObj.getConstant('Export Failed'));\n }\n }\n else {\n if (annotationDataFormat === 'Json') {\n if (data.split('base64,')[1]) {\n if (!isCancel) {\n var blobUrl = proxy.createBlobUrl(data.split('base64,')[1], 'application/json');\n if (Browser.isIE || Browser.info.name === 'edge') {\n if (proxy.pdfViewer.exportAnnotationFileName !== null) {\n // eslint-disable-next-line max-len\n window.navigator.msSaveOrOpenBlob(blobUrl, proxy.pdfViewer.exportAnnotationFileName.split('.')[0] + '.json');\n }\n else {\n window.navigator.msSaveOrOpenBlob(blobUrl, proxy.pdfViewer.fileName.split('.')[0] + '.json');\n }\n }\n else {\n proxy.downloadExportFormat(blobUrl, annotationDataFormat);\n }\n proxy.updateDocumentAnnotationCollections();\n }\n else {\n return data;\n }\n }\n else {\n if (isBlazor()) {\n var promise_2 = this.pdfViewer._dotnetInstance.invokeMethodAsync('GetLocaleText', 'PdfViewer_ExportFailed');\n promise_2.then(function (value) {\n proxy.openImportExportNotificationPopup(value);\n });\n }\n else {\n proxy.openImportExportNotificationPopup(proxy.pdfViewer.localeObj.getConstant('Export Failed'));\n }\n // eslint-disable-next-line max-len\n proxy.pdfViewer.fireExportFailed(jsonObject.pdfAnnotation, proxy.pdfViewer.localeObj.getConstant('Export Failed'));\n }\n }\n else {\n if (data.split('base64,')[1]) {\n if (!isCancel) {\n var blobUrl = proxy.createBlobUrl(data.split('base64,')[1], 'application/vnd.adobe.xfdf');\n if (Browser.isIE || Browser.info.name === 'edge') {\n window.navigator.msSaveOrOpenBlob(blobUrl, proxy.pdfViewer.fileName.split('.')[0] + '.xfdf');\n }\n else {\n proxy.downloadExportFormat(blobUrl, annotationDataFormat);\n }\n proxy.updateDocumentAnnotationCollections();\n }\n else {\n return data;\n }\n }\n else {\n if (isBlazor()) {\n var promise_3 = this.pdfViewer._dotnetInstance.invokeMethodAsync('GetLocaleText', 'PdfViewer_ExportFailed');\n promise_3.then(function (value) {\n proxy.openImportExportNotificationPopup(value);\n });\n }\n else {\n proxy.openImportExportNotificationPopup(proxy.pdfViewer.localeObj.getConstant('Export Failed'));\n }\n // eslint-disable-next-line max-len\n proxy.pdfViewer.fireExportFailed(jsonObject, proxy.pdfViewer.localeObj.getConstant('Export Failed'));\n }\n }\n }\n }\n if (typeof data !== 'string') {\n try {\n if (typeof data === 'string') {\n proxy.onControlError(500, data, proxy.pdfViewer.serverActionSettings.exportAnnotations);\n data = null;\n }\n }\n catch (error) {\n // eslint-disable-next-line max-len\n proxy.pdfViewer.fireExportFailed(jsonObject.pdfAnnotation, proxy.pdfViewer.localeObj.getConstant('Export Failed'));\n proxy.onControlError(500, data, proxy.pdfViewer.serverActionSettings.exportAnnotations);\n data = null;\n }\n }\n }\n else {\n var fileName = void 0;\n if (proxy.pdfViewer.exportAnnotationFileName !== null) {\n fileName = proxy.pdfViewer.exportAnnotationFileName;\n }\n else {\n fileName = proxy.pdfViewer.fileName;\n }\n proxy.pdfViewer.fireExportSuccess('Exported data saved in server side successfully', fileName);\n }\n }\n };\n // eslint-disable-next-line\n proxy.exportAnnotationRequestHandler.onFailure = function (result) {\n proxy.pdfViewer.fireExportFailed(jsonObject.pdfAnnotation, result.statusText);\n };\n // eslint-disable-next-line\n proxy.exportAnnotationRequestHandler.onError = function (result) {\n proxy.pdfViewer.fireExportFailed(jsonObject.pdfAnnotation, result.statusText);\n };\n });\n if (isObject || isBase64String) {\n return promise;\n }\n else {\n return true;\n }\n };\n /**\n * @private\n */\n PdfViewerBase.prototype.updateModifiedDateToLocalDate = function (newData, annotationType) {\n if (newData[\"\" + annotationType] && newData[\"\" + annotationType].length > 0) {\n var data = newData[\"\" + annotationType];\n if (data) {\n for (var j = 0; j < data.length; j++) {\n data[parseInt(j.toString(), 10)].ModifiedDate = this.convertUTCDateTimeToLocalDateTime(data[parseInt(j.toString(), 10)].ModifiedDate);\n if (data[parseInt(j.toString(), 10)].Comments) {\n for (var i = 0; i < data[parseInt(j.toString(), 10)].Comments.length; i++) {\n data[parseInt(j.toString(), 10)].Comments[parseInt(i.toString(), 10)].ModifiedDate = this.convertUTCDateTimeToLocalDateTime(data[parseInt(j.toString(), 10)].Comments[parseInt(i.toString(), 10)].ModifiedDate);\n }\n }\n }\n }\n }\n };\n /**\n * @private\n */\n PdfViewerBase.prototype.convertUTCDateTimeToLocalDateTime = function (date) {\n var dateTime;\n // We have globalized the date and time based on the given locale.\n this.globalize = new Internationalization(this.pdfViewer.locale);\n if (date !== null && date !== undefined && date !== '') {\n dateTime = new Date(Date.parse(date + ' ' + 'UTC'));\n }\n else {\n var now = new Date();\n var now_utc = Date.UTC(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate(), now.getUTCHours(), now.getUTCMinutes(), now.getUTCSeconds());\n dateTime = new Date(now_utc);\n }\n var dateTimeValue = this.globalize.formatDate(dateTime, { format: this.pdfViewer.dateTimeFormat, type: 'dateTime' });\n return dateTimeValue;\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.createRequestForImportAnnotations = function (importData, annotationDataFormat, isXfdf) {\n var jsonObject;\n var proxy = null;\n proxy = this;\n if (!isXfdf && proxy.isPDFViewerJson) {\n this.isJsonImported = true;\n }\n else {\n this.isJsonImported = false;\n }\n if (typeof importData === 'object') {\n if (importData && importData.pdfAnnotation) {\n var newArray = Object.keys(importData.pdfAnnotation);\n for (var i = 0; i < newArray.length; i++) {\n var newData = importData.pdfAnnotation[newArray[parseInt(i.toString(), 10)]];\n this.updateModifiedDateToLocalDate(newData, \"freeTextAnnotation\");\n this.updateModifiedDateToLocalDate(newData, \"measureShapeAnnotation\");\n this.updateModifiedDateToLocalDate(newData, \"shapeAnnotation\");\n this.updateModifiedDateToLocalDate(newData, \"signatureAnnotation\");\n this.updateModifiedDateToLocalDate(newData, \"signatureInkAnnotation\");\n this.updateModifiedDateToLocalDate(newData, \"stampAnnotations\");\n this.updateModifiedDateToLocalDate(newData, \"stickyNotesAnnotation\");\n this.updateModifiedDateToLocalDate(newData, \"textMarkupAnnotation\");\n }\n }\n proxy.reRenderAnnotations(importData.pdfAnnotation);\n proxy.isImportedAnnotation = true;\n proxy.updateDocumentEditedProperty(true);\n if (!this.isAddAnnotation) {\n proxy.pdfViewer.fireImportSuccess(importData.pdfAnnotation);\n }\n }\n else {\n proxy.pdfViewer.fireImportStart(importData);\n if (annotationDataFormat === 'Json') {\n // eslint-disable-next-line max-len\n if (proxy.isPDFViewerJson) {\n jsonObject = { fileName: importData, action: 'ImportAnnotations', elementId: proxy.pdfViewer.element.id, hashId: proxy.hashId, uniqueId: proxy.documentId };\n }\n else {\n jsonObject = { importedData: importData, action: 'ImportAnnotations', elementId: proxy.pdfViewer.element.id, hashId: proxy.hashId, uniqueId: proxy.documentId, annotationDataFormat: annotationDataFormat };\n }\n }\n else {\n if (!isXfdf) {\n importData = btoa(importData);\n }\n importData = importData.split(',')[1] ? importData.split(',')[1] : importData.split(',')[0];\n // eslint-disable-next-line max-len\n jsonObject = { importedData: importData, action: 'ImportAnnotations', elementId: proxy.pdfViewer.element.id, hashId: proxy.hashId, uniqueId: proxy.documentId, annotationDataFormat: annotationDataFormat };\n }\n jsonObject = Object.assign(jsonObject, this.constructJsonDownload());\n jsonObject[\"action\"] = 'ImportAnnotations';\n if (proxy.jsonDocumentId) {\n // eslint-disable-next-line\n if (jsonObject.documentId) {\n delete jsonObject['documentId'];\n }\n jsonObject.document = proxy.jsonDocumentId;\n }\n var url = proxy.pdfViewer.serviceUrl + '/' + proxy.pdfViewer.serverActionSettings.importAnnotations;\n proxy.importAnnotationRequestHandler = new AjaxHandler(proxy.pdfViewer);\n proxy.importAnnotationRequestHandler.url = url;\n proxy.importAnnotationRequestHandler.mode = true;\n proxy.importAnnotationRequestHandler.responseType = 'text';\n proxy.importAnnotationRequestHandler.send(jsonObject);\n // eslint-disable-next-line\n proxy.importAnnotationRequestHandler.onSuccess = function (result) {\n // eslint-disable-next-line\n var data = result.data;\n var redirect = proxy.checkRedirection(data);\n if (!redirect) {\n if (data) {\n if (typeof data !== 'object') {\n try {\n data = JSON.parse(data);\n if (typeof data !== 'object') {\n proxy.onControlError(500, data, proxy.pdfViewer.serverActionSettings.importAnnotations);\n data = null;\n }\n }\n catch (error) {\n proxy.pdfViewer.fireImportFailed(importData, proxy.pdfViewer.localeObj.getConstant('File not found'));\n if (isBlazor()) {\n var promise = this.pdfViewer._dotnetInstance.invokeMethodAsync('GetLocaleText', 'PdfViewer_FileNotFound');\n promise.then(function (value) {\n proxy.openImportExportNotificationPopup(value);\n });\n }\n else {\n proxy.openImportExportNotificationPopup(proxy.pdfViewer.localeObj.getConstant('File not found'));\n }\n proxy.onControlError(500, data, proxy.pdfViewer.serverActionSettings.importAnnotations);\n data = null;\n }\n }\n if (data) {\n proxy.pdfViewer.fireAjaxRequestSuccess(proxy.pdfViewer.serverActionSettings.importAnnotations, data);\n if (data.pdfAnnotation) {\n for (var i = 0; i < Object.keys(data.pdfAnnotation).length; i++) {\n var newData = data.pdfAnnotation[parseInt(i.toString(), 10)];\n proxy.updateModifiedDateToLocalDate(newData, \"freeTextAnnotation\");\n proxy.updateModifiedDateToLocalDate(newData, \"measureShapeAnnotation\");\n proxy.updateModifiedDateToLocalDate(newData, \"shapeAnnotation\");\n proxy.updateModifiedDateToLocalDate(newData, \"signatureAnnotation\");\n proxy.updateModifiedDateToLocalDate(newData, \"signatureInkAnnotation\");\n proxy.updateModifiedDateToLocalDate(newData, \"stampAnnotations\");\n proxy.updateModifiedDateToLocalDate(newData, \"stickyNotesAnnotation\");\n proxy.updateModifiedDateToLocalDate(newData, \"textMarkupAnnotation\");\n }\n proxy.reRenderAnnotations(data.pdfAnnotation);\n proxy.isImportedAnnotation = true;\n proxy.updateDocumentEditedProperty(true);\n proxy.pdfViewer.fireImportSuccess(data.pdfAnnotation);\n }\n }\n }\n }\n };\n // eslint-disable-next-line\n proxy.importAnnotationRequestHandler.onFailure = function (result) {\n proxy.pdfViewer.fireImportFailed(importData, result.statusText);\n };\n // eslint-disable-next-line\n proxy.importAnnotationRequestHandler.onError = function (result) {\n proxy.pdfViewer.fireImportFailed(importData, result.statusText);\n };\n }\n };\n /**\n * @private\n * @param {string} errorDetails - The error details.\n * @returns {void}\n */\n PdfViewerBase.prototype.openImportExportNotificationPopup = function (errorDetails) {\n if (this.pdfViewer.showNotificationDialog) {\n this.textLayer.createNotificationPopup(errorDetails);\n }\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.reRenderAnnotations = function (annotation) {\n if (annotation) {\n this.isImportAction = true;\n var count = 0;\n if (this.isImportedAnnotation) {\n this.importedAnnotation = this.combineImportedData(this.importedAnnotation, annotation);\n }\n else {\n if (this.pageCount > 0) {\n this.importedAnnotation = annotation;\n }\n }\n if (!this.isImportedAnnotation) {\n count = 0;\n }\n for (var i = 0; i < this.pageCount; i++) {\n if (annotation[parseInt(i.toString(), 10)]) {\n // eslint-disable-next-line\n var importPageCollections = [];\n // eslint-disable-next-line\n var textMarkupObject = window.sessionStorage.getItem(this.documentId + '_annotations_textMarkup');\n // eslint-disable-next-line\n var shapeObject = window.sessionStorage.getItem(this.documentId + '_annotations_shape');\n // eslint-disable-next-line\n var measureShapeObject = window.sessionStorage.getItem(this.documentId + '_annotations_shape_measure');\n // eslint-disable-next-line\n var stampObject = window.sessionStorage.getItem(this.documentId + '_annotations_stamp');\n // eslint-disable-next-line\n var stickyObject = window.sessionStorage.getItem(this.documentId + '_annotations_sticky');\n // eslint-disable-next-line\n var freeTextObject = window.sessionStorage.getItem(this.documentId + '_annotations_freetext');\n // eslint-disable-next-line\n var signatureObject = window.sessionStorage.getItem(this.documentId + '_annotations_sign');\n // eslint-disable-next-line\n var inkObject = window.sessionStorage.getItem(this.documentId + '_annotations_ink');\n if (this.isStorageExceed) {\n textMarkupObject = this.annotationStorage[this.documentId + '_annotations_textMarkup'];\n shapeObject = this.annotationStorage[this.documentId + '_annotations_shape'];\n measureShapeObject = this.annotationStorage[this.documentId + '_annotations_shape_measure'];\n stampObject = this.annotationStorage[this.documentId + '_annotations_stamp'];\n stickyObject = this.annotationStorage[this.documentId + '_annotations_sticky'];\n freeTextObject = this.annotationStorage[this.documentId + '_annotations_freetext'];\n inkObject = this.annotationStorage[this.documentId + '_annotations_ink'];\n }\n var annotationCanvas = this.getElement('_annotationCanvas_' + i);\n if (annotationCanvas) {\n this.drawPageAnnotations(annotation[parseInt(i.toString(), 10)], i);\n if (this.isImportedAnnotation) {\n var isAdded = false;\n for (var j = 0; j < this.annotationPageList.length; j++) {\n if (this.annotationPageList[parseInt(j.toString(), 10)] === i) {\n isAdded = true;\n }\n }\n if (isAdded) {\n this.annotationPageList[parseInt(count.toString(), 10)] = i;\n count = count + 1;\n }\n }\n else {\n this.annotationPageList[parseInt(count.toString(), 10)] = i;\n count = count + 1;\n }\n }\n if (annotation[parseInt(i.toString(), 10)].textMarkupAnnotation && annotation[parseInt(i.toString(), 10)].textMarkupAnnotation.length !== 0) {\n if (textMarkupObject) {\n var annotObject = JSON.parse(textMarkupObject);\n // eslint-disable-next-line max-len\n annotation[parseInt(i.toString(), 10)].textMarkupAnnotation = this.checkAnnotationCollections(annotObject, annotation[parseInt(i.toString(), 10)].textMarkupAnnotation, i);\n }\n annotation[parseInt(i.toString(), 10)].textMarkupAnnotation = this.checkAnnotationCommentsCollections(annotation[parseInt(i.toString(), 10)].textMarkupAnnotation, i);\n importPageCollections.textMarkupAnnotation = annotation[parseInt(i.toString(), 10)].textMarkupAnnotation;\n if (annotation[parseInt(i.toString(), 10)].textMarkupAnnotation.length !== 0) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.renderAnnotationComments(annotation[parseInt(i.toString(), 10)].textMarkupAnnotation, i);\n for (var j = 0; j < annotation[parseInt(i.toString(), 10)].textMarkupAnnotation.length; j++) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateCollections(this.pdfViewer.annotationModule.textMarkupAnnotationModule.updateTextMarkupAnnotationCollections(annotation[parseInt(i.toString(), 10)].textMarkupAnnotation[parseInt(j.toString(), 10)], i));\n }\n }\n }\n if (annotation[parseInt(i.toString(), 10)].shapeAnnotation && annotation[parseInt(i.toString(), 10)].shapeAnnotation.length !== 0) {\n if (shapeObject) {\n var annotObject = JSON.parse(shapeObject);\n annotation[parseInt(i.toString(), 10)].shapeAnnotation = this.checkAnnotationCollections(annotObject, annotation[parseInt(i.toString(), 10)].shapeAnnotation, i);\n }\n annotation[parseInt(i.toString(), 10)].shapeAnnotation = this.checkAnnotationCommentsCollections(annotation[parseInt(i.toString(), 10)].shapeAnnotation, i);\n importPageCollections.shapeAnnotation = annotation[parseInt(i.toString(), 10)].shapeAnnotation;\n if (annotation[parseInt(i.toString(), 10)].shapeAnnotation.length !== 0) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.renderAnnotationComments(annotation[parseInt(i.toString(), 10)].shapeAnnotation, i);\n for (var j = 0; j < annotation[parseInt(i.toString(), 10)].shapeAnnotation.length; j++) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateCollections(this.pdfViewer.annotationModule.shapeAnnotationModule.updateShapeAnnotationCollections(annotation[parseInt(i.toString(), 10)].shapeAnnotation[parseInt(j.toString(), 10)], i));\n }\n }\n }\n if (annotation[parseInt(i.toString(), 10)].measureShapeAnnotation && annotation[parseInt(i.toString(), 10)].measureShapeAnnotation.length !== 0) {\n if (measureShapeObject) {\n var annotObject = JSON.parse(measureShapeObject);\n // eslint-disable-next-line max-len\n annotation[parseInt(i.toString(), 10)].measureShapeAnnotation = this.checkAnnotationCollections(annotObject, annotation[parseInt(i.toString(), 10)].measureShapeAnnotation, i);\n }\n // eslint-disable-next-line max-len\n annotation[parseInt(i.toString(), 10)].measureShapeAnnotation = this.checkAnnotationCommentsCollections(annotation[parseInt(i.toString(), 10)].measureShapeAnnotation, i);\n importPageCollections.measureShapeAnnotation = annotation[parseInt(i.toString(), 10)].measureShapeAnnotation;\n if (annotation[parseInt(i.toString(), 10)].measureShapeAnnotation.length !== 0) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.renderAnnotationComments(annotation[parseInt(i.toString(), 10)].measureShapeAnnotation, i);\n for (var j = 0; j < annotation[parseInt(i.toString(), 10)].measureShapeAnnotation.length; j++) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateCollections(this.pdfViewer.annotationModule.measureAnnotationModule.updateMeasureAnnotationCollections(annotation[parseInt(i.toString(), 10)].measureShapeAnnotation[parseInt(j.toString(), 10)], i));\n }\n }\n }\n if (annotation[parseInt(i.toString(), 10)].stampAnnotations && annotation[parseInt(i.toString(), 10)].stampAnnotations.length !== 0) {\n if (stampObject) {\n var annotObject = JSON.parse(stampObject);\n // eslint-disable-next-line max-len\n annotation[parseInt(i.toString(), 10)].stampAnnotations = this.checkAnnotationCollections(annotObject, annotation[parseInt(i.toString(), 10)].stampAnnotations, i);\n }\n annotation[parseInt(i.toString(), 10)].stampAnnotations = this.checkAnnotationCommentsCollections(annotation[parseInt(i.toString(), 10)].stampAnnotations, i);\n importPageCollections.stampAnnotations = annotation[parseInt(i.toString(), 10)].stampAnnotations;\n if (annotation[parseInt(i.toString(), 10)].stampAnnotations.length !== 0) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.renderAnnotationComments(annotation[parseInt(i.toString(), 10)].stampAnnotations, i);\n for (var j = 0; j < annotation[parseInt(i.toString(), 10)].stampAnnotations.length; j++) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateCollections(this.pdfViewer.annotationModule.stampAnnotationModule.updateStampAnnotationCollections(annotation[parseInt(i.toString(), 10)].stampAnnotations[parseInt(j.toString(), 10)], i));\n }\n }\n }\n if (annotation[parseInt(i.toString(), 10)].stickyNotesAnnotation && annotation[parseInt(i.toString(), 10)].stickyNotesAnnotation.length !== 0) {\n if (stickyObject) {\n var annotObject = JSON.parse(stickyObject);\n // eslint-disable-next-line max-len\n annotation[parseInt(i.toString(), 10)].stickyNotesAnnotation = this.checkAnnotationCollections(annotObject, annotation[parseInt(i.toString(), 10)].stickyNotesAnnotation, i);\n }\n // eslint-disable-next-line max-len\n annotation[parseInt(i.toString(), 10)].stickyNotesAnnotation = this.checkAnnotationCommentsCollections(annotation[parseInt(i.toString(), 10)].stickyNotesAnnotation, i);\n importPageCollections.stickyNotesAnnotation = annotation[parseInt(i.toString(), 10)].stickyNotesAnnotation;\n if (annotation[parseInt(i.toString(), 10)].stickyNotesAnnotation.length !== 0) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.renderAnnotationComments(annotation[parseInt(i.toString(), 10)].stickyNotesAnnotation, i);\n for (var j = 0; j < annotation[parseInt(i.toString(), 10)].stickyNotesAnnotation.length; j++) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateCollections(this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateStickyNotesAnnotationCollections(annotation[parseInt(i.toString(), 10)].stickyNotesAnnotation[parseInt(j.toString(), 10)], i));\n }\n }\n }\n if (annotation[parseInt(i.toString(), 10)].freeTextAnnotation && annotation[parseInt(i.toString(), 10)].freeTextAnnotation.length !== 0) {\n if (freeTextObject) {\n var annotObject = JSON.parse(freeTextObject);\n // eslint-disable-next-line max-len\n annotation[parseInt(i.toString(), 10)].freeTextAnnotation = this.checkAnnotationCollections(annotObject, annotation[parseInt(i.toString(), 10)].freeTextAnnotation, i);\n }\n annotation[parseInt(i.toString(), 10)].freeTextAnnotation = this.checkAnnotationCommentsCollections(annotation[parseInt(i.toString(), 10)].freeTextAnnotation, i);\n importPageCollections.freeTextAnnotation = annotation[parseInt(i.toString(), 10)].freeTextAnnotation;\n if (annotation[parseInt(i.toString(), 10)].freeTextAnnotation.length !== 0) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.renderAnnotationComments(annotation[parseInt(i.toString(), 10)].freeTextAnnotation, i);\n for (var j = 0; j < annotation[parseInt(i.toString(), 10)].freeTextAnnotation.length; j++) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateCollections(this.pdfViewer.annotationModule.freeTextAnnotationModule.updateFreeTextAnnotationCollections(annotation[parseInt(i.toString(), 10)].freeTextAnnotation[parseInt(j.toString(), 10)], i));\n }\n }\n }\n if (annotation[parseInt(i.toString(), 10)].signatureAnnotation && annotation[parseInt(i.toString(), 10)].signatureAnnotation.length !== 0) {\n if (signatureObject) {\n var annotObject = JSON.parse(signatureObject);\n // eslint-disable-next-line max-len\n annotation[parseInt(i.toString(), 10)].signatureAnnotation = this.checkSignatureCollections(annotObject, annotation[parseInt(i.toString(), 10)].signatureAnnotation, i);\n }\n importPageCollections.signatureAnnotation = annotation[parseInt(i.toString(), 10)].signatureAnnotation;\n if (annotation[parseInt(i.toString(), 10)].signatureAnnotation.length !== 0) {\n for (var j = 0; j < annotation[parseInt(i.toString(), 10)].signatureAnnotation.length; j++) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateCollections(this.signatureModule.updateSignatureCollections(annotation[parseInt(i.toString(), 10)].signatureAnnotation[parseInt(j.toString(), 10)], i), true);\n }\n }\n }\n if (annotation[parseInt(i.toString(), 10)].signatureInkAnnotation && annotation[parseInt(i.toString(), 10)].signatureInkAnnotation.length !== 0) {\n if (inkObject) {\n var annotObject = JSON.parse(inkObject);\n // eslint-disable-next-line max-len\n annotation[parseInt(i.toString(), 10)].signatureInkAnnotation = this.checkAnnotationCollections(annotObject, annotation[parseInt(i.toString(), 10)].signatureInkAnnotation, i);\n }\n // eslint-disable-next-line max-len\n annotation[parseInt(i.toString(), 10)].signatureInkAnnotation = this.checkAnnotationCommentsCollections(annotation[parseInt(i.toString(), 10)].signatureInkAnnotation, i);\n importPageCollections.signatureInkAnnotation = annotation[parseInt(i.toString(), 10)].signatureInkAnnotation;\n if (annotation[parseInt(i.toString(), 10)].signatureInkAnnotation.length !== 0) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.renderAnnotationComments(annotation[parseInt(i.toString(), 10)].signatureInkAnnotation, i);\n for (var j = 0; j < annotation[parseInt(i.toString(), 10)].signatureInkAnnotation.length; j++) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateCollections(this.pdfViewer.annotationModule.inkAnnotationModule.updateInkCollections(annotation[parseInt(i.toString(), 10)].signatureInkAnnotation[parseInt(j.toString(), 10)], i));\n }\n }\n }\n this.updateImportedAnnotationsInDocumentCollections(importPageCollections, i);\n }\n }\n if (this.pageCount > 0) {\n // eslint-disable-next-line max-len\n if (this.pdfViewer.annotationModule.stickyNotesAnnotationModule && !this.pdfViewer.annotationModule.stickyNotesAnnotationModule.isAnnotationRendered) {\n // eslint-disable-next-line\n var annotationCollection = this.createAnnotationsCollection();\n if (annotationCollection) {\n // eslint-disable-next-line max-len\n this.documentAnnotationCollections = this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateAnnotationsInDocumentCollections(this.importedAnnotation, annotationCollection);\n }\n }\n }\n }\n };\n /**\n * @param importedAnnotations\n * @param pageNumber\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.updateImportedAnnotationsInDocumentCollections = function (importedAnnotations, pageNumber) {\n if (this.documentAnnotationCollections) {\n // eslint-disable-next-line\n var documentAnnotationCollection = this.documentAnnotationCollections;\n // eslint-disable-next-line\n var pageCollections = documentAnnotationCollection[pageNumber];\n if (pageCollections) {\n if (importedAnnotations.textMarkupAnnotation && importedAnnotations.textMarkupAnnotation.length !== 0) {\n for (var i = 0; i < importedAnnotations.textMarkupAnnotation.length; i++) {\n pageCollections.textMarkupAnnotation.push(importedAnnotations.textMarkupAnnotation[parseInt(i.toString(), 10)]);\n }\n }\n if (importedAnnotations.shapeAnnotation && importedAnnotations.shapeAnnotation.length !== 0) {\n for (var i = 0; i < importedAnnotations.shapeAnnotation.length; i++) {\n pageCollections.shapeAnnotation.push(importedAnnotations.shapeAnnotation[parseInt(i.toString(), 10)]);\n }\n }\n if (importedAnnotations.measureShapeAnnotation && importedAnnotations.measureShapeAnnotation.length !== 0) {\n for (var i = 0; i < importedAnnotations.measureShapeAnnotation.length; i++) {\n pageCollections.measureShapeAnnotation.push(importedAnnotations.measureShapeAnnotation[parseInt(i.toString(), 10)]);\n }\n }\n if (importedAnnotations.stampAnnotations && importedAnnotations.stampAnnotations.length !== 0) {\n for (var i = 0; i < importedAnnotations.stampAnnotations.length; i++) {\n pageCollections.stampAnnotations.push(importedAnnotations.stampAnnotations[parseInt(i.toString(), 10)]);\n }\n }\n if (importedAnnotations.stickyNotesAnnotation && importedAnnotations.stickyNotesAnnotation.length !== 0) {\n for (var i = 0; i < importedAnnotations.stickyNotesAnnotation.length; i++) {\n pageCollections.stickyNotesAnnotation.push(importedAnnotations.stickyNotesAnnotation[parseInt(i.toString(), 10)]);\n }\n }\n if (importedAnnotations.freeTextAnnotation && importedAnnotations.freeTextAnnotation.length !== 0) {\n for (var i = 0; i < importedAnnotations.freeTextAnnotation.length; i++) {\n pageCollections.freeTextAnnotation.push(importedAnnotations.freeTextAnnotation[parseInt(i.toString(), 10)]);\n }\n }\n if (importedAnnotations.signatureAnnotation && importedAnnotations.signatureAnnotation.length !== 0) {\n for (var i = 0; i < importedAnnotations.signatureAnnotation.length; i++) {\n pageCollections.signatureAnnotation.push(importedAnnotations.signatureAnnotation[parseInt(i.toString(), 10)]);\n }\n }\n if (importedAnnotations.signatureInkAnnotation && importedAnnotations.signatureInkAnnotation.length !== 0) {\n for (var i = 0; i < importedAnnotations.signatureInkAnnotation.length; i++) {\n pageCollections.signatureInkAnnotation.push(importedAnnotations.signatureInkAnnotation[parseInt(i.toString(), 10)]);\n }\n }\n this.documentAnnotationCollections[parseInt(pageNumber.toString(), 10)] = pageCollections;\n }\n }\n };\n /**\n * @param pageIndex\n * @param pageCollections\n * @param pageIndex\n * @param pageCollections\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.checkDocumentCollectionData = function (pageIndex, pageCollections) {\n // eslint-disable-next-line\n var importPageCollections;\n if (pageCollections) {\n importPageCollections = pageCollections;\n }\n else if (this.documentAnnotationCollections) {\n // eslint-disable-next-line\n var documetCollections = this.documentAnnotationCollections[pageIndex];\n if (documetCollections) {\n importPageCollections = cloneObject(documetCollections);\n }\n }\n if (importPageCollections) {\n // eslint-disable-next-line\n var textMarkupObject = window.sessionStorage.getItem(this.documentId + '_annotations_textMarkup');\n // eslint-disable-next-line\n var shapeObject = window.sessionStorage.getItem(this.documentId + '_annotations_shape');\n // eslint-disable-next-line\n var measureShapeObject = window.sessionStorage.getItem(this.documentId + '_annotations_shape_measure');\n // eslint-disable-next-line\n var stampObject = window.sessionStorage.getItem(this.documentId + '_annotations_stamp');\n // eslint-disable-next-line\n var stickyObject = window.sessionStorage.getItem(this.documentId + '_annotations_sticky');\n // eslint-disable-next-line\n var freeTextObject = window.sessionStorage.getItem(this.documentId + '_annotations_freetext');\n // eslint-disable-next-line\n var inkObject = window.sessionStorage.getItem(this.documentId + '_annotations_ink');\n // eslint-disable-next-line\n var signatureObject = window.sessionStorage.getItem(this.documentId + '_annotations_sign');\n if (this.isStorageExceed) {\n textMarkupObject = this.annotationStorage[this.documentId + '_annotations_textMarkup'];\n shapeObject = this.annotationStorage[this.documentId + '_annotations_shape'];\n measureShapeObject = this.annotationStorage[this.documentId + '_annotations_shape_measure'];\n stampObject = this.annotationStorage[this.documentId + '_annotations_stamp'];\n stickyObject = this.annotationStorage[this.documentId + '_annotations_sticky'];\n freeTextObject = this.annotationStorage[this.documentId + '_annotations_freetext'];\n inkObject = this.annotationStorage[this.documentId + '_annotations_ink'];\n signatureObject = this.annotationStorage[this.documentId + '_annotations_sign'];\n }\n if (importPageCollections.textMarkupAnnotation && importPageCollections.textMarkupAnnotation.length !== 0) {\n if (textMarkupObject) {\n var annotationObject = JSON.parse(textMarkupObject);\n if (annotationObject) {\n // eslint-disable-next-line max-len\n importPageCollections.textMarkupAnnotation = this.findImportedAnnotations(annotationObject, importPageCollections.textMarkupAnnotation, pageIndex);\n }\n }\n }\n if (importPageCollections.shapeAnnotation && importPageCollections.shapeAnnotation.length !== 0) {\n if (shapeObject) {\n var annotationObject = JSON.parse(shapeObject);\n if (annotationObject) {\n // eslint-disable-next-line max-len\n importPageCollections.shapeAnnotation = this.findImportedAnnotations(annotationObject, importPageCollections.shapeAnnotation, pageIndex);\n }\n }\n }\n if (importPageCollections.measureShapeAnnotation && importPageCollections.measureShapeAnnotation.length !== 0) {\n if (measureShapeObject) {\n var annotationObject = JSON.parse(measureShapeObject);\n if (annotationObject) {\n // eslint-disable-next-line max-len\n importPageCollections.measureShapeAnnotation = this.findImportedAnnotations(annotationObject, importPageCollections.measureShapeAnnotation, pageIndex);\n }\n }\n }\n if (importPageCollections.stampAnnotations && importPageCollections.stampAnnotations.length !== 0) {\n if (stampObject) {\n var annotationObject = JSON.parse(stampObject);\n if (annotationObject) {\n // eslint-disable-next-line max-len\n importPageCollections.stampAnnotations = this.findImportedAnnotations(annotationObject, importPageCollections.stampAnnotations, pageIndex);\n }\n }\n }\n if (importPageCollections.stickyNotesAnnotation && importPageCollections.stickyNotesAnnotation.length !== 0) {\n if (stickyObject) {\n var annotationObject = JSON.parse(stickyObject);\n if (annotationObject) {\n // eslint-disable-next-line max-len\n importPageCollections.stickyNotesAnnotation = this.findImportedAnnotations(annotationObject, importPageCollections.stickyNotesAnnotation, pageIndex);\n }\n }\n }\n if (importPageCollections.freeTextAnnotation && importPageCollections.freeTextAnnotation.length !== 0) {\n if (freeTextObject) {\n var annotationObject = JSON.parse(freeTextObject);\n if (annotationObject) {\n // eslint-disable-next-line max-len\n importPageCollections.freeTextAnnotation = this.findImportedAnnotations(annotationObject, importPageCollections.freeTextAnnotation, pageIndex);\n }\n }\n }\n if (importPageCollections.signatureInkAnnotation && importPageCollections.signatureInkAnnotation.length !== 0) {\n if (inkObject) {\n var annotationObject = JSON.parse(inkObject);\n if (annotationObject) {\n // eslint-disable-next-line max-len\n importPageCollections.signatureInkAnnotation = this.findImportedAnnotations(annotationObject, importPageCollections.signatureInkAnnotation, pageIndex);\n }\n }\n }\n if (importPageCollections.signatureAnnotation && importPageCollections.signatureAnnotation.length !== 0) {\n if (signatureObject) {\n var annotationObject = JSON.parse(inkObject);\n if (annotationObject) {\n // eslint-disable-next-line max-len\n importPageCollections.signatureAnnotation = this.findImportedAnnotations(annotationObject, importPageCollections.signatureAnnotation, pageIndex);\n }\n }\n }\n return importPageCollections;\n }\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.findImportedAnnotations = function (annotationCollection, importAnnotations, pageNumber) {\n // eslint-disable-next-line\n var pageCollections = null;\n for (var a = 0; a < annotationCollection.length; a++) {\n if (annotationCollection[parseInt(a.toString(), 10)].pageIndex === pageNumber) {\n pageCollections = annotationCollection[parseInt(a.toString(), 10)].annotations;\n }\n }\n if (pageCollections) {\n for (var i = 0; i < pageCollections.length; i++) {\n for (var j = 0; j < importAnnotations.length; j++) {\n if (pageCollections[parseInt(i.toString(), 10)].annotName === importAnnotations[parseInt(j.toString(), 10)].AnnotName) {\n importAnnotations.splice(j, 1);\n j = j - 1;\n }\n }\n }\n }\n pageCollections = null;\n return importAnnotations;\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.drawPageAnnotations = function (annotation, pageIndex, isNewlyAdded) {\n if (isNewlyAdded) {\n annotation = annotation[parseInt(pageIndex.toString(), 10)];\n }\n if (annotation) {\n if (annotation.textMarkupAnnotation && annotation.textMarkupAnnotation.length !== 0) {\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.documentId + '_annotations_textMarkup');\n if (this.isStorageExceed) {\n storeObject = this.annotationStorage[this.documentId + '_annotations_textMarkup'];\n }\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n if (annotObject) {\n // eslint-disable-next-line max-len\n annotation.textMarkupAnnotation = this.checkAnnotationCollections(annotObject, annotation.textMarkupAnnotation, pageIndex);\n }\n }\n annotation.textMarkupAnnotation = this.checkAnnotationCommentsCollections(annotation.textMarkupAnnotation, pageIndex);\n if (annotation.textMarkupAnnotation.length !== 0) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.renderAnnotations(pageIndex, null, null, annotation.textMarkupAnnotation, null, true);\n }\n }\n if (annotation.shapeAnnotation && annotation.shapeAnnotation.length !== 0) {\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.documentId + '_annotations_shape');\n if (this.isStorageExceed) {\n storeObject = this.annotationStorage[this.documentId + '_annotations_shape'];\n }\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n annotation.shapeAnnotation = this.checkAnnotationCollections(annotObject, annotation.shapeAnnotation, pageIndex);\n }\n annotation.shapeAnnotation = this.checkAnnotationCommentsCollections(annotation.shapeAnnotation, pageIndex);\n if (annotation.shapeAnnotation.length !== 0) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.renderAnnotations(pageIndex, annotation.shapeAnnotation, null, null, null, true);\n }\n }\n if (annotation.measureShapeAnnotation && annotation.measureShapeAnnotation.length !== 0) {\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.documentId + '_annotations_shape_measure');\n if (this.isStorageExceed) {\n storeObject = this.annotationStorage[this.documentId + '_annotations_shape_measure'];\n }\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n // eslint-disable-next-line max-len\n annotation.measureShapeAnnotation = this.checkAnnotationCollections(annotObject, annotation.measureShapeAnnotation, pageIndex);\n }\n annotation.measureShapeAnnotation = this.checkAnnotationCommentsCollections(annotation.measureShapeAnnotation, pageIndex);\n if (annotation.measureShapeAnnotation.length !== 0) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.renderAnnotations(pageIndex, null, annotation.measureShapeAnnotation, null, null, true);\n }\n }\n if (annotation.stampAnnotations && annotation.stampAnnotations.length !== 0) {\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.documentId + '_annotations_stamp');\n if (this.isStorageExceed) {\n storeObject = this.annotationStorage[this.documentId + '_annotations_stamp'];\n }\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n annotation.stampAnnotations = this.checkAnnotationCollections(annotObject, annotation.stampAnnotations, pageIndex);\n }\n annotation.stampAnnotations = this.checkAnnotationCommentsCollections(annotation.stampAnnotations, pageIndex);\n if (annotation.stampAnnotations.length !== 0) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stampAnnotationModule.renderStampAnnotations(annotation.stampAnnotations, pageIndex, null, true);\n }\n }\n if (annotation.stickyNotesAnnotation && annotation.stickyNotesAnnotation.length !== 0) {\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.documentId + '_annotations_sticky');\n if (this.isStorageExceed) {\n storeObject = this.annotationStorage[this.documentId + '_annotations_sticky'];\n }\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n // eslint-disable-next-line max-len\n annotation.stickyNotesAnnotation = this.checkAnnotationCollections(annotObject, annotation.stickyNotesAnnotation, pageIndex);\n }\n annotation.stickyNotesAnnotation = this.checkAnnotationCommentsCollections(annotation.stickyNotesAnnotation, pageIndex);\n if (annotation.stickyNotesAnnotation.length !== 0) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.renderStickyNotesAnnotations(annotation.stickyNotesAnnotation, pageIndex);\n }\n }\n if (annotation.freeTextAnnotation && annotation.freeTextAnnotation.length !== 0) {\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.documentId + '_annotations_freetext');\n if (this.isStorageExceed) {\n storeObject = this.annotationStorage[this.documentId + '_annotations_freetext'];\n }\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n annotation.freeTextAnnotation = this.checkAnnotationCollections(annotObject, annotation.freeTextAnnotation, pageIndex);\n }\n annotation.freeTextAnnotation = this.checkAnnotationCommentsCollections(annotation.freeTextAnnotation, pageIndex);\n if (annotation.freeTextAnnotation.length !== 0) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.freeTextAnnotationModule.renderFreeTextAnnotations(annotation.freeTextAnnotation, pageIndex, true);\n }\n }\n if (annotation.signatureAnnotation && annotation.signatureAnnotation.length !== 0) {\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.documentId + '_annotations_sign');\n var annotObject = JSON.parse(storeObject);\n if (annotObject) {\n annotation.signatureAnnotation = this.checkSignatureCollections(annotObject, annotation.signatureAnnotation, pageIndex);\n }\n this.signatureModule.renderExistingSignature(annotation.signatureAnnotation, pageIndex, true);\n }\n if (annotation.signatureInkAnnotation && annotation.signatureInkAnnotation.length !== 0) {\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.documentId + '_annotations_ink');\n if (this.isStorageExceed) {\n storeObject = this.annotationStorage[this.documentId + '_annotations_ink'];\n }\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n // eslint-disable-next-line max-len\n annotation.signatureInkAnnotation = this.checkAnnotationCollections(annotObject, annotation.signatureInkAnnotation, pageIndex);\n }\n annotation.signatureInkAnnotation = this.checkAnnotationCommentsCollections(annotation.signatureInkAnnotation, pageIndex);\n if (annotation.signatureInkAnnotation.length !== 0) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.inkAnnotationModule.renderExistingInkSignature(annotation.signatureInkAnnotation, pageIndex, true);\n }\n }\n }\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.checkSignatureCollections = function (annotationCollection, annotation, pageNumber) {\n // eslint-disable-next-line\n var pageCollections = null;\n for (var a = 0; a < annotationCollection.length; a++) {\n if (annotationCollection[parseInt(a.toString(), 10)].pageIndex === pageNumber) {\n pageCollections = annotationCollection[parseInt(a.toString(), 10)].annotations;\n }\n }\n if (pageCollections) {\n for (var i = 0; i < pageCollections.length; i++) {\n for (var j = 0; j < annotation.length; j++) {\n if (pageCollections[parseInt(i.toString(), 10)].signatureName === annotation[parseInt(j.toString(), 10)].SignatureName) {\n annotation.splice(j, 1);\n j = j - 1;\n }\n }\n }\n }\n pageCollections = null;\n return annotation;\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.checkAnnotationCollections = function (annotationCollection, annotation, pageNumber) {\n // eslint-disable-next-line\n var pageCollections = null;\n for (var a = 0; a < annotationCollection.length; a++) {\n if (annotationCollection[parseInt(a.toString(), 10)].pageIndex === pageNumber) {\n pageCollections = annotationCollection[parseInt(a.toString(), 10)].annotations;\n }\n }\n if (pageCollections) {\n for (var i = 0; i < pageCollections.length; i++) {\n for (var j = 0; j < annotation.length; j++) {\n if (pageCollections[parseInt(i.toString(), 10)].annotName === annotation[parseInt(j.toString(), 10)].AnnotName) {\n annotation.splice(j, 1);\n j = j - 1;\n }\n }\n }\n }\n pageCollections = null;\n return annotation;\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.checkAnnotationCommentsCollections = function (annotation, pageNumber) {\n if (this.annotationComments) {\n // eslint-disable-next-line\n var annotationCollections = this.annotationComments[pageNumber];\n annotationCollections = this.selectAnnotationCollections(annotationCollections);\n if (annotationCollections) {\n for (var i = 0; i < annotationCollections.length; i++) {\n for (var j = 0; j < annotation.length; j++) {\n if (annotationCollections[parseInt(i.toString(), 10)].AnnotName === annotation[parseInt(j.toString(), 10)].AnnotName) {\n annotation.splice(j, 1);\n j = j - 1;\n }\n }\n }\n }\n annotationCollections = null;\n }\n return annotation;\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.selectAnnotationCollections = function (pageAnnotations) {\n // eslint-disable-next-line\n var pageCollections = [];\n if (pageAnnotations) {\n if (pageAnnotations.textMarkupAnnotation && pageAnnotations.textMarkupAnnotation.length !== 0) {\n for (var i = 0; i < pageAnnotations.textMarkupAnnotation.length; i++) {\n pageCollections.push(pageAnnotations.textMarkupAnnotation[parseInt(i.toString(), 10)]);\n }\n }\n if (pageAnnotations.shapeAnnotation && pageAnnotations.shapeAnnotation.length !== 0) {\n for (var i = 0; i < pageAnnotations.shapeAnnotation.length; i++) {\n pageCollections.push(pageAnnotations.shapeAnnotation[parseInt(i.toString(), 10)]);\n }\n }\n if (pageAnnotations.measureShapeAnnotation && pageAnnotations.measureShapeAnnotation.length !== 0) {\n for (var i = 0; i < pageAnnotations.measureShapeAnnotation.length; i++) {\n pageCollections.push(pageAnnotations.measureShapeAnnotation[parseInt(i.toString(), 10)]);\n }\n }\n if (pageAnnotations.stampAnnotations && pageAnnotations.stampAnnotations.length !== 0) {\n for (var i = 0; i < pageAnnotations.stampAnnotations.length; i++) {\n pageCollections.push(pageAnnotations.stampAnnotations[parseInt(i.toString(), 10)]);\n }\n }\n if (pageAnnotations.stickyNotesAnnotation && pageAnnotations.stickyNotesAnnotation.length !== 0) {\n for (var i = 0; i < pageAnnotations.stickyNotesAnnotation.length; i++) {\n pageCollections.push(pageAnnotations.stickyNotesAnnotation[parseInt(i.toString(), 10)]);\n }\n }\n if (pageAnnotations.freeTextAnnotation && pageAnnotations.freeTextAnnotation.length !== 0) {\n for (var i = 0; i < pageAnnotations.freeTextAnnotation.length; i++) {\n pageCollections.push(pageAnnotations.freeTextAnnotation[parseInt(i.toString(), 10)]);\n }\n }\n if (pageAnnotations.signatureInkAnnotation && pageAnnotations.signatureInkAnnotation.length !== 0) {\n for (var i = 0; i < pageAnnotations.signatureInkAnnotation.length; i++) {\n pageCollections.push(pageAnnotations.signatureInkAnnotation[parseInt(i.toString(), 10)]);\n }\n }\n }\n return pageCollections;\n };\n PdfViewerBase.prototype.saveImportedAnnotations = function () {\n // eslint-disable-next-line\n var textMarkupObject = window.sessionStorage.getItem(this.documentId + '_annotations_textMarkup');\n // eslint-disable-next-line\n var shapeObject = window.sessionStorage.getItem(this.documentId + '_annotations_shape');\n // eslint-disable-next-line\n var measureShapeObject = window.sessionStorage.getItem(this.documentId + '_annotations_shape_measure');\n // eslint-disable-next-line\n var stampObject = window.sessionStorage.getItem(this.documentId + '_annotations_stamp');\n // eslint-disable-next-line\n var stickyObject = window.sessionStorage.getItem(this.documentId + '_annotations_sticky');\n // eslint-disable-next-line\n var freeTextObject = window.sessionStorage.getItem(this.documentId + '_annotations_freetext');\n // eslint-disable-next-line\n var inkObject = window.sessionStorage.getItem(this.documentId + '_annotations_ink');\n // eslint-disable-next-line\n var signatureObject = window.sessionStorage.getItem(this.documentId + '_annotations_sign');\n if (this.isStorageExceed) {\n textMarkupObject = this.annotationStorage[this.documentId + '_annotations_textMarkup'];\n shapeObject = this.annotationStorage[this.documentId + '_annotations_shape'];\n measureShapeObject = this.annotationStorage[this.documentId + '_annotations_shape_measure'];\n stampObject = this.annotationStorage[this.documentId + '_annotations_stamp'];\n stickyObject = this.annotationStorage[this.documentId + '_annotations_sticky'];\n freeTextObject = this.annotationStorage[this.documentId + '_annotations_freetext'];\n inkObject = this.annotationStorage[this.documentId + '_annotations_ink'];\n signatureObject = this.annotationStorage[this.documentId + '_annotations_sign'];\n }\n // eslint-disable-next-line max-len\n this.downloadCollections = { textMarkupObject: textMarkupObject, shapeObject: shapeObject, measureShapeObject: measureShapeObject, stampObject: stampObject, stickyObject: stickyObject, freeTextObject: freeTextObject, inkObject: inkObject, signatureObject: signatureObject };\n if (this.documentAnnotationCollections) {\n for (var i = 0; i < this.pageCount; i++) {\n if (this.documentAnnotationCollections[parseInt(i.toString(), 10)]) {\n // eslint-disable-next-line\n var pageCollections = cloneObject(this.documentAnnotationCollections[i]);\n pageCollections = this.checkDocumentCollectionData(i, pageCollections);\n this.savePageAnnotations(pageCollections, i);\n }\n }\n }\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.savePageAnnotations = function (annotation, pageIndex) {\n if (annotation.textMarkupAnnotation.length !== 0) {\n for (var s = 0; s < annotation.textMarkupAnnotation.length; s++) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.saveImportedTextMarkupAnnotations(annotation.textMarkupAnnotation[parseInt(s.toString(), 10)], pageIndex);\n }\n }\n if (annotation.shapeAnnotation.length !== 0) {\n for (var s = 0; s < annotation.shapeAnnotation.length; s++) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.shapeAnnotationModule.saveImportedShapeAnnotations(annotation.shapeAnnotation[parseInt(s.toString(), 10)], pageIndex);\n }\n }\n if (annotation.measureShapeAnnotation.length !== 0) {\n for (var s = 0; s < annotation.measureShapeAnnotation.length; s++) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.measureAnnotationModule.saveImportedMeasureAnnotations(annotation.measureShapeAnnotation[parseInt(s.toString(), 10)], pageIndex);\n }\n }\n if (annotation.stampAnnotations.length !== 0) {\n for (var s = 0; s < annotation.stampAnnotations.length; s++) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stampAnnotationModule.saveImportedStampAnnotations(annotation.stampAnnotations[parseInt(s.toString(), 10)], pageIndex);\n }\n }\n if (annotation.stickyNotesAnnotation.length !== 0) {\n for (var s = 0; s < annotation.stickyNotesAnnotation.length; s++) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.saveImportedStickyNotesAnnotations(annotation.stickyNotesAnnotation[parseInt(s.toString(), 10)], pageIndex);\n }\n }\n if (annotation.freeTextAnnotation.length !== 0) {\n for (var s = 0; s < annotation.freeTextAnnotation.length; s++) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.freeTextAnnotationModule.saveImportedFreeTextAnnotations(annotation.freeTextAnnotation[parseInt(s.toString(), 10)], pageIndex);\n }\n }\n if (annotation.signatureInkAnnotation.length !== 0) {\n for (var s = 0; s < annotation.signatureInkAnnotation.length; s++) {\n this.pdfViewer.annotationModule.inkAnnotationModule.saveImportedInkAnnotation(annotation.signatureInkAnnotation[parseInt(s.toString(), 10)], pageIndex);\n }\n }\n };\n PdfViewerBase.prototype.updateDocumentAnnotationCollections = function () {\n window.sessionStorage.removeItem(this.documentId + '_annotations_textMarkup');\n window.sessionStorage.removeItem(this.documentId + '_annotations_shape');\n window.sessionStorage.removeItem(this.documentId + '_annotations_shape_measure');\n window.sessionStorage.removeItem(this.documentId + '_annotations_stamp');\n window.sessionStorage.removeItem(this.documentId + '_annotations_sticky');\n window.sessionStorage.removeItem(this.documentId + '_annotations_freetext');\n window.sessionStorage.removeItem(this.documentId + '_annotations_ink');\n if (this.downloadCollections) {\n if (this.isStorageExceed) {\n this.annotationStorage[this.documentId + '_annotations_textMarkup'] = this.downloadCollections.textMarkupObject;\n this.annotationStorage[this.documentId + '_annotations_shape'] = this.downloadCollections.shapeObject;\n this.annotationStorage[this.documentId + '_annotations_shape_measure'] = this.downloadCollections.measureShapeObject;\n this.annotationStorage[this.documentId + '_annotations_stamp'] = this.downloadCollections.stampObject;\n this.annotationStorage[this.documentId + '_annotations_sticky'] = this.downloadCollections.stickyObject;\n this.annotationStorage[this.documentId + '_annotations_freetext'] = this.downloadCollections.freeTextObject;\n this.annotationStorage[this.documentId + '_annotations_ink'] = this.downloadCollections.inkObject;\n }\n else {\n if (this.downloadCollections.textMarkupObject) {\n window.sessionStorage.setItem(this.documentId + '_annotations_textMarkup', this.downloadCollections.textMarkupObject);\n }\n if (this.downloadCollections.shapeObject) {\n window.sessionStorage.setItem(this.documentId + '_annotations_shape', this.downloadCollections.shapeObject);\n }\n if (this.downloadCollections.measureShapeObject) {\n window.sessionStorage.setItem(this.documentId + '_annotations_shape_measure', this.downloadCollections.measureShapeObject);\n }\n if (this.downloadCollections.stampObject) {\n window.sessionStorage.setItem(this.documentId + '_annotations_stamp', this.downloadCollections.stampObject);\n }\n if (this.downloadCollections.stickyObject) {\n window.sessionStorage.setItem(this.documentId + '_annotations_sticky', this.downloadCollections.stickyObject);\n }\n if (this.downloadCollections.freeTextObject) {\n window.sessionStorage.setItem(this.documentId + '_annotations_freetext', this.downloadCollections.freeTextObject);\n }\n if (this.downloadCollections.inkObject) {\n window.sessionStorage.setItem(this.documentId + '_annotations_ink', this.downloadCollections.inkObject);\n }\n }\n }\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.createAnnotationJsonData = function () {\n // eslint-disable-next-line\n var annotationCollection = {};\n var textMarkupAnnotationCollection;\n var shapeAnnotations;\n var calibrateAnnotations;\n var stampAnnotationCollection;\n var stickyAnnotationCollection;\n var freeTextAnnotationCollection;\n var signaturCollection;\n var signaturInkCollection;\n this.saveImportedAnnotations();\n if (this.isTextMarkupAnnotationModule()) {\n this.isJsonExported = true;\n // eslint-disable-next-line max-len\n textMarkupAnnotationCollection = this.pdfViewer.annotationModule.textMarkupAnnotationModule.saveTextMarkupAnnotations();\n }\n if (this.isShapeAnnotationModule()) {\n this.isJsonExported = true;\n // eslint-disable-next-line max-len\n shapeAnnotations = this.pdfViewer.annotationModule.shapeAnnotationModule.saveShapeAnnotations();\n }\n if (this.isCalibrateAnnotationModule()) {\n this.isJsonExported = true;\n // eslint-disable-next-line max-len\n calibrateAnnotations = this.pdfViewer.annotationModule.measureAnnotationModule.saveMeasureShapeAnnotations();\n }\n if (this.isStampAnnotationModule()) {\n // eslint-disable-next-line max-len\n stampAnnotationCollection = this.pdfViewer.annotationModule.stampAnnotationModule.saveStampAnnotations();\n }\n if (this.isCommentAnnotationModule()) {\n // eslint-disable-next-line max-len\n stickyAnnotationCollection = this.pdfViewer.annotationModule.stickyNotesAnnotationModule.saveStickyAnnotations();\n }\n if (this.isFreeTextAnnotationModule()) {\n // eslint-disable-next-line max-len\n freeTextAnnotationCollection = this.pdfViewer.annotationModule.freeTextAnnotationModule.saveFreeTextAnnotations();\n }\n if (this.isInkAnnotationModule()) {\n // eslint-disable-next-line\n signaturInkCollection = this.pdfViewer.annotationModule.inkAnnotationModule.saveInkSignature();\n }\n if (this.pdfViewer.isSignatureEditable) {\n // eslint-disable-next-line\n signaturCollection = this.signatureModule.saveSignature();\n }\n else {\n // eslint-disable-next-line\n var annotations = new Array();\n for (var j = 0; j < this.pageCount; j++) {\n annotations[parseInt(j.toString(), 10)] = [];\n }\n signaturCollection = JSON.stringify(annotations);\n }\n for (var s = 0; s < this.pageCount; s++) {\n // eslint-disable-next-line max-len\n var annotation = {\n textMarkupAnnotation: JSON.parse(textMarkupAnnotationCollection)[parseInt(s.toString(), 10)], shapeAnnotation: JSON.parse(shapeAnnotations)[parseInt(s.toString(), 10)],\n measureShapeAnnotation: JSON.parse(calibrateAnnotations)[parseInt(s.toString(), 10)], stampAnnotations: JSON.parse(stampAnnotationCollection)[parseInt(s.toString(), 10)],\n // eslint-disable-next-line max-len\n stickyNotesAnnotation: JSON.parse(stickyAnnotationCollection)[parseInt(s.toString(), 10)], freeTextAnnotation: JSON.parse(freeTextAnnotationCollection)[parseInt(s.toString(), 10)], signatureAnnotation: JSON.parse(signaturCollection)[parseInt(s.toString(), 10)], signatureInkAnnotation: JSON.parse(signaturInkCollection)[parseInt(s.toString(), 10)]\n };\n annotationCollection[parseInt(s.toString(), 10)] = annotation;\n }\n return JSON.stringify(annotationCollection);\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.combineImportedData = function (excistingImportAnnotation, newlyImportAnnotation) {\n for (var i = 0; i < this.pageCount; i++) {\n if (newlyImportAnnotation[parseInt(i.toString(), 10)]) {\n if (excistingImportAnnotation[parseInt(i.toString(), 10)]) {\n if (newlyImportAnnotation[parseInt(i.toString(), 10)].textMarkupAnnotation && newlyImportAnnotation[parseInt(i.toString(), 10)].textMarkupAnnotation.length !== 0) {\n if (excistingImportAnnotation[parseInt(i.toString(), 10)].textMarkupAnnotation) {\n // eslint-disable-next-line max-len\n newlyImportAnnotation[parseInt(i.toString(), 10)].textMarkupAnnotation = this.checkImportedData(excistingImportAnnotation[parseInt(i.toString(), 10)].textMarkupAnnotation, newlyImportAnnotation[parseInt(i.toString(), 10)].textMarkupAnnotation, i);\n if (newlyImportAnnotation[parseInt(i.toString(), 10)].textMarkupAnnotation.length !== 0) {\n // eslint-disable-next-line max-len\n excistingImportAnnotation[parseInt(i.toString(), 10)].textMarkupAnnotation = excistingImportAnnotation[parseInt(i.toString(), 10)].textMarkupAnnotation.concat(newlyImportAnnotation[parseInt(i.toString(), 10)].textMarkupAnnotation);\n }\n }\n else {\n excistingImportAnnotation[parseInt(i.toString(), 10)].textMarkupAnnotation = newlyImportAnnotation[parseInt(i.toString(), 10)].textMarkupAnnotation;\n }\n }\n if (newlyImportAnnotation[parseInt(i.toString(), 10)].shapeAnnotation && newlyImportAnnotation[parseInt(i.toString(), 10)].shapeAnnotation.length !== 0) {\n if (excistingImportAnnotation[parseInt(i.toString(), 10)].shapeAnnotation) {\n // eslint-disable-next-line max-len\n newlyImportAnnotation[parseInt(i.toString(), 10)].shapeAnnotation = this.checkImportedData(excistingImportAnnotation[parseInt(i.toString(), 10)].shapeAnnotation, newlyImportAnnotation[parseInt(i.toString(), 10)].shapeAnnotation, i);\n if (newlyImportAnnotation[parseInt(i.toString(), 10)].shapeAnnotation.length !== 0) {\n // eslint-disable-next-line max-len\n excistingImportAnnotation[parseInt(i.toString(), 10)].shapeAnnotation = excistingImportAnnotation[parseInt(i.toString(), 10)].shapeAnnotation.concat(newlyImportAnnotation[parseInt(i.toString(), 10)].shapeAnnotation);\n }\n }\n else {\n excistingImportAnnotation[parseInt(i.toString(), 10)].shapeAnnotation = newlyImportAnnotation[parseInt(i.toString(), 10)].shapeAnnotation;\n }\n }\n if (newlyImportAnnotation[parseInt(i.toString(), 10)].measureShapeAnnotation && newlyImportAnnotation[parseInt(i.toString(), 10)].measureShapeAnnotation.length !== 0) {\n if (excistingImportAnnotation[parseInt(i.toString(), 10)].measureShapeAnnotation) {\n // eslint-disable-next-line max-len\n newlyImportAnnotation[parseInt(i.toString(), 10)].measureShapeAnnotation = this.checkImportedData(excistingImportAnnotation[parseInt(i.toString(), 10)].measureShapeAnnotation, newlyImportAnnotation[parseInt(i.toString(), 10)].measureShapeAnnotation, i);\n if (newlyImportAnnotation[parseInt(i.toString(), 10)].measureShapeAnnotation.length !== 0) {\n // eslint-disable-next-line max-len\n excistingImportAnnotation[parseInt(i.toString(), 10)].measureShapeAnnotation = excistingImportAnnotation[parseInt(i.toString(), 10)].measureShapeAnnotation.concat(newlyImportAnnotation[parseInt(i.toString(), 10)].measureShapeAnnotation);\n }\n }\n else {\n excistingImportAnnotation[parseInt(i.toString(), 10)].measureShapeAnnotation = newlyImportAnnotation[parseInt(i.toString(), 10)].measureShapeAnnotation;\n }\n }\n if (newlyImportAnnotation[parseInt(i.toString(), 10)].stampAnnotations && newlyImportAnnotation[parseInt(i.toString(), 10)].stampAnnotations.length !== 0) {\n if (excistingImportAnnotation[parseInt(i.toString(), 10)].stampAnnotations) {\n // eslint-disable-next-line max-len\n newlyImportAnnotation[parseInt(i.toString(), 10)].stampAnnotations = this.checkImportedData(excistingImportAnnotation[parseInt(i.toString(), 10)].stampAnnotations, newlyImportAnnotation[parseInt(i.toString(), 10)].stampAnnotations, i);\n if (newlyImportAnnotation[parseInt(i.toString(), 10)].stampAnnotations.length !== 0) {\n // eslint-disable-next-line max-len\n excistingImportAnnotation[parseInt(i.toString(), 10)].stampAnnotations = excistingImportAnnotation[parseInt(i.toString(), 10)].stampAnnotations.concat(newlyImportAnnotation[parseInt(i.toString(), 10)].stampAnnotations);\n }\n }\n else {\n excistingImportAnnotation[parseInt(i.toString(), 10)].stampAnnotations = newlyImportAnnotation[parseInt(i.toString(), 10)].stampAnnotations;\n }\n }\n if (newlyImportAnnotation[parseInt(i.toString(), 10)].stickyNotesAnnotation && newlyImportAnnotation[parseInt(i.toString(), 10)].stickyNotesAnnotation.length !== 0) {\n if (excistingImportAnnotation[parseInt(i.toString(), 10)].stickyNotesAnnotation) {\n // eslint-disable-next-line max-len\n newlyImportAnnotation[parseInt(i.toString(), 10)].stickyNotesAnnotation = this.checkImportedData(excistingImportAnnotation[parseInt(i.toString(), 10)].stickyNotesAnnotation, newlyImportAnnotation[parseInt(i.toString(), 10)].stickyNotesAnnotation, i);\n if (newlyImportAnnotation[parseInt(i.toString(), 10)].stickyNotesAnnotation.length !== 0) {\n // eslint-disable-next-line max-len\n excistingImportAnnotation[parseInt(i.toString(), 10)].stickyNotesAnnotation = excistingImportAnnotation[parseInt(i.toString(), 10)].stickyNotesAnnotation.concat(newlyImportAnnotation[parseInt(i.toString(), 10)].stickyNotesAnnotation);\n }\n }\n else {\n excistingImportAnnotation[parseInt(i.toString(), 10)].stickyNotesAnnotation = newlyImportAnnotation[parseInt(i.toString(), 10)].stickyNotesAnnotation;\n }\n }\n if (newlyImportAnnotation[parseInt(i.toString(), 10)].freeTextAnnotation && newlyImportAnnotation[parseInt(i.toString(), 10)].freeTextAnnotation.length !== 0) {\n if (excistingImportAnnotation[parseInt(i.toString(), 10)].freeTextAnnotation) {\n // eslint-disable-next-line max-len\n newlyImportAnnotation[parseInt(i.toString(), 10)].freeTextAnnotation = this.checkImportedData(excistingImportAnnotation[parseInt(i.toString(), 10)].freeTextAnnotation, newlyImportAnnotation[parseInt(i.toString(), 10)].freeTextAnnotation, i);\n if (newlyImportAnnotation[parseInt(i.toString(), 10)].freeTextAnnotation.length !== 0) {\n // eslint-disable-next-line max-len\n excistingImportAnnotation[parseInt(i.toString(), 10)].freeTextAnnotation = excistingImportAnnotation[parseInt(i.toString(), 10)].freeTextAnnotation.concat(newlyImportAnnotation[parseInt(i.toString(), 10)].freeTextAnnotation);\n }\n }\n else {\n excistingImportAnnotation[parseInt(i.toString(), 10)].freeTextAnnotation = newlyImportAnnotation[parseInt(i.toString(), 10)].freeTextAnnotation;\n }\n }\n if (newlyImportAnnotation[parseInt(i.toString(), 10)].signatureInkAnnotation && newlyImportAnnotation[parseInt(i.toString(), 10)].signatureInkAnnotation.length !== 0) {\n if (excistingImportAnnotation[parseInt(i.toString(), 10)].signatureInkAnnotation) {\n // eslint-disable-next-line max-len\n newlyImportAnnotation[parseInt(i.toString(), 10)].signatureInkAnnotation = this.checkImportedData(excistingImportAnnotation[parseInt(i.toString(), 10)].signatureInkAnnotation, newlyImportAnnotation[parseInt(i.toString(), 10)].signatureInkAnnotation, i);\n if (newlyImportAnnotation[parseInt(i.toString(), 10)].signatureInkAnnotation.length !== 0) {\n // eslint-disable-next-line max-len\n excistingImportAnnotation[parseInt(i.toString(), 10)].signatureInkAnnotation = excistingImportAnnotation[parseInt(i.toString(), 10)].signatureInkAnnotation.concat(newlyImportAnnotation[parseInt(i.toString(), 10)].signatureInkAnnotation);\n }\n }\n else {\n excistingImportAnnotation[parseInt(i.toString(), 10)].signatureInkAnnotation = newlyImportAnnotation[parseInt(i.toString(), 10)].signatureInkAnnotation;\n }\n }\n }\n else {\n // eslint-disable-next-line max-len\n var annotation = {\n // eslint-disable-next-line max-len\n textMarkupAnnotation: newlyImportAnnotation[parseInt(i.toString(), 10)].textMarkupAnnotation, shapeAnnotation: newlyImportAnnotation[parseInt(i.toString(), 10)].shapeAnnotation,\n // eslint-disable-next-line max-len\n measureShapeAnnotation: newlyImportAnnotation[parseInt(i.toString(), 10)].measureShapeAnnotation, stampAnnotations: newlyImportAnnotation[parseInt(i.toString(), 10)].stampAnnotations,\n // eslint-disable-next-line max-len\n stickyNotesAnnotation: newlyImportAnnotation[parseInt(i.toString(), 10)].stickyNotesAnnotation, freeTextAnnotation: newlyImportAnnotation[parseInt(i.toString(), 10)].freeTextAnnotation,\n signatureInkAnnotation: newlyImportAnnotation[parseInt(i.toString(), 10)].signatureInkAnnotation\n };\n excistingImportAnnotation[parseInt(i.toString(), 10)] = annotation;\n }\n }\n }\n return excistingImportAnnotation;\n };\n /**\n * @private\n * @returns {boolean} - Returns true or false.\n */\n PdfViewerBase.prototype.updateExportItem = function () {\n // eslint-disable-next-line\n var shapeObject = window.sessionStorage.getItem(this.documentId + '_annotations_shape');\n // eslint-disable-next-line\n var measureObject = window.sessionStorage.getItem(this.documentId + '_annotations_shape_measure');\n // eslint-disable-next-line\n var stampObject = window.sessionStorage.getItem(this.documentId + '_annotations_stamp');\n // eslint-disable-next-line\n var stickyObject = window.sessionStorage.getItem(this.documentId + '_annotations_sticky');\n // eslint-disable-next-line\n var textMarkupObject = window.sessionStorage.getItem(this.documentId + '_annotations_textMarkup');\n // eslint-disable-next-line\n var freeTextObject = window.sessionStorage.getItem(this.documentId + '_annotations_freetext');\n var isSignatureEditable = false;\n // eslint-disable-next-line\n var inkAnnotationObjct = window.sessionStorage.getItem(this.documentId + '_annotations_ink');\n if (this.pdfViewer.isSignatureEditable) {\n // eslint-disable-next-line\n var signatureObject = window.sessionStorage.getItem(this.documentId + '_annotations_sign');\n if (signatureObject) {\n isSignatureEditable = true;\n }\n }\n // eslint-disable-next-line max-len\n if (shapeObject || measureObject || stampObject || stickyObject || textMarkupObject || freeTextObject || this.isImportAction || this.isStorageExceed || isSignatureEditable || inkAnnotationObjct) {\n return true;\n }\n else {\n return false;\n }\n };\n PdfViewerBase.prototype.isFreeTextAnnotation = function (annotations) {\n var resut = false;\n if (annotations && annotations.length > 0) {\n resut = annotations.some(function (s) { return s.shapeAnnotationType === 'FreeText' && s.subject === 'Text Box'; });\n }\n return resut;\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.checkImportedData = function (existingCollection, newCollection, pageIndex) {\n for (var i = 0; i < existingCollection.length; i++) {\n for (var j = 0; j < newCollection.length; j++) {\n if (existingCollection[parseInt(i.toString(), 10)].AnnotName === newCollection[parseInt(j.toString(), 10)].AnnotName) {\n var len = this.pdfViewer.annotationCollection.length;\n for (var x = 0; x < len; x++) {\n if (this.pdfViewer.annotationCollection[parseInt(x.toString(), 10)].annotationId === newCollection[parseInt(j.toString(), 10)].AnnotName) {\n // To update the comment panel values in a collections while importing the annotation with the same name. (EJ2-62092)\n this.pdfViewer.annotationCollection[parseInt(x.toString(), 10)].comments = this.pdfViewer.annotationModule.getAnnotationComments(newCollection[parseInt(j.toString(), 10)].Comments, newCollection[parseInt(j.toString(), 10)], newCollection[parseInt(j.toString(), 10)].Author);\n this.pdfViewer.annotationCollection[parseInt(x.toString(), 10)].review = { state: newCollection[parseInt(j.toString(), 10)].State, stateModel: newCollection[parseInt(j.toString(), 10)].StateModel, modifiedDate: newCollection[parseInt(j.toString(), 10)].ModifiedDate, author: newCollection[parseInt(j.toString(), 10)].Author };\n this.pdfViewer.annotationCollection[parseInt(x.toString(), 10)].note = newCollection[parseInt(j.toString(), 10)].Note;\n var annot = this.pdfViewer.annotationCollection[parseInt(x.toString(), 10)];\n if (existingCollection[parseInt(i.toString(), 10)].AnnotType === \"shape\" && this.pdfViewer.annotationModule.shapeAnnotationModule) {\n this.documentAnnotationCollections[parseInt(pageIndex.toString(), 10)].shapeAnnotation[parseInt(i.toString(), 10)] = newCollection[parseInt(j.toString(), 10)];\n this.updateAnnotationsInSessionStorage(newCollection[parseInt(j.toString(), 10)], annot, \"_annotations_shape\");\n }\n else if (existingCollection[parseInt(i.toString(), 10)].AnnotType === \"textMarkup\" && this.pdfViewer.annotationModule.textMarkupAnnotationModule) {\n this.documentAnnotationCollections[parseInt(pageIndex.toString(), 10)].textMarkupAnnotation[parseInt(i.toString(), 10)] = newCollection[parseInt(j.toString(), 10)];\n this.updateAnnotationsInSessionStorage(newCollection[parseInt(j.toString(), 10)], annot, \"_annotations_textMarkup\");\n }\n else if (existingCollection[parseInt(i.toString(), 10)].AnnotType === \"shape_measure\" && this.pdfViewer.annotationModule.measureAnnotationModule) {\n this.documentAnnotationCollections[parseInt(pageIndex.toString(), 10)].measureShapeAnnotation[parseInt(i.toString(), 10)] = newCollection[parseInt(j.toString(), 10)];\n this.updateAnnotationsInSessionStorage(newCollection[parseInt(j.toString(), 10)], annot, \"_annotations_shape_measure\");\n }\n else if (existingCollection[parseInt(i.toString(), 10)].AnnotType === \"stamp\" && this.pdfViewer.annotationModule.stampAnnotationModule) {\n this.documentAnnotationCollections[parseInt(pageIndex.toString(), 10)].stampAnnotations[parseInt(i.toString(), 10)] = newCollection[parseInt(j.toString(), 10)];\n this.updateAnnotationsInSessionStorage(newCollection[parseInt(j.toString(), 10)], annot, \"_annotations_stamp\");\n }\n else if (existingCollection[parseInt(i.toString(), 10)].AnnotType === \"freeText\" && this.pdfViewer.annotationModule.freeTextAnnotationModule) {\n this.documentAnnotationCollections[parseInt(pageIndex.toString(), 10)].freeTextAnnotation[parseInt(i.toString(), 10)] = newCollection[parseInt(j.toString(), 10)];\n this.updateAnnotationsInSessionStorage(newCollection[parseInt(j.toString(), 10)], annot, \"_annotations_freetext\");\n }\n else if (existingCollection[parseInt(i.toString(), 10)].AnnotType === \"ink\" && this.pdfViewer.annotationModule.inkAnnotationModule) {\n this.documentAnnotationCollections[parseInt(pageIndex.toString(), 10)].signatureInkAnnotation[parseInt(i.toString(), 10)] = newCollection[parseInt(j.toString(), 10)];\n this.updateAnnotationsInSessionStorage(newCollection[parseInt(j.toString(), 10)], annot, \"_annotations_ink\");\n }\n else if (existingCollection[parseInt(i.toString(), 10)].AnnotType === \"sticky\") {\n this.documentAnnotationCollections[parseInt(pageIndex.toString(), 10)].stickyNotesAnnotation[parseInt(i.toString(), 10)] = newCollection[parseInt(j.toString(), 10)];\n this.updateAnnotationsInSessionStorage(newCollection[parseInt(j.toString(), 10)], annot, \"_annotations_sticky\");\n }\n break;\n }\n }\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.createCommentControlPanel(newCollection[parseInt(j.toString(), 10)], (pageIndex + 1), null, null, true);\n newCollection.splice(j, 1);\n j = j - 1;\n }\n }\n }\n if (this.annotationComments) {\n // eslint-disable-next-line\n var annotationCollections = this.annotationComments[pageIndex];\n annotationCollections = this.selectAnnotationCollections(annotationCollections);\n if (annotationCollections) {\n for (var i = 0; i < annotationCollections.length; i++) {\n for (var j = 0; j < newCollection.length; j++) {\n if (annotationCollections[parseInt(i.toString(), 10)].AnnotName === newCollection[parseInt(j.toString(), 10)].AnnotName) {\n newCollection.splice(j, 1);\n j = j - 1;\n }\n }\n }\n }\n }\n return newCollection;\n };\n // To update the comment panel values in a session storage while importing the annotation with the same name. (EJ2-62092)\n PdfViewerBase.prototype.updateAnnotationsInSessionStorage = function (newCollection, annot, type) {\n var annotation = window.sessionStorage.getItem(this.documentId + type);\n var annotObject = JSON.parse(annotation);\n if (annotObject) {\n for (var b = 0; b < annotObject.length; b++) {\n if (annotObject[parseInt(b.toString(), 10)].annotations) {\n for (var z = 0; z < annotObject[parseInt(b.toString(), 10)].annotations.length; z++) {\n if (annotObject[parseInt(b.toString(), 10)].annotations[parseInt(z.toString(), 10)].annotName === newCollection.AnnotName) {\n annotObject[parseInt(b.toString(), 10)].annotations[parseInt(z.toString(), 10)].comments = annot.comments;\n annotObject[parseInt(b.toString(), 10)].annotations[parseInt(z.toString(), 10)].review = annot.review;\n annotObject[parseInt(b.toString(), 10)].annotations[parseInt(z.toString(), 10)].note = annot.note;\n break;\n }\n }\n }\n }\n window.sessionStorage.setItem(this.documentId + type, JSON.stringify(annotObject));\n }\n };\n /**\n * @param points\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.checkAnnotationWidth = function (points) {\n var width = 0;\n var height = 0;\n var minWidth;\n var maxWidth;\n var minHeight;\n var maxHeight;\n for (var i = 0; i < points.length; i++) {\n if (!minWidth) {\n minWidth = points[parseInt(i.toString(), 10)].x;\n maxWidth = points[parseInt(i.toString(), 10)].x;\n minHeight = points[parseInt(i.toString(), 10)].y;\n maxHeight = points[parseInt(i.toString(), 10)].y;\n }\n else {\n if (minWidth > points[parseInt(i.toString(), 10)].x) {\n minWidth = points[parseInt(i.toString(), 10)].x;\n }\n else if (maxWidth < points[parseInt(i.toString(), 10)].x) {\n maxWidth = points[parseInt(i.toString(), 10)].x;\n }\n if (minHeight > points[parseInt(i.toString(), 10)].y) {\n minHeight = points[parseInt(i.toString(), 10)].y;\n }\n else if (maxHeight < points[parseInt(i.toString(), 10)].y) {\n maxHeight = points[parseInt(i.toString(), 10)].y;\n }\n }\n }\n width = maxWidth - minWidth;\n height = maxHeight - minHeight;\n return { width: width, height: height };\n };\n PdfViewerBase.prototype.deleteAnnotations = function () {\n if (this.pdfViewer.annotationModule) {\n this.pdfViewer.annotations = [];\n this.pdfViewer.zIndexTable = [];\n this.pdfViewer.annotationCollection = [];\n this.pdfViewer.signatureCollection = [];\n // eslint-disable-next-line\n var annotationCollection = this.createAnnotationsCollection();\n this.annotationComments = annotationCollection;\n this.documentAnnotationCollections = annotationCollection;\n this.annotationRenderredList = [];\n window.sessionStorage.removeItem(this.documentId + '_annotations_shape');\n window.sessionStorage.removeItem(this.documentId + '_annotations_shape_measure');\n window.sessionStorage.removeItem(this.documentId + '_annotations_stamp');\n window.sessionStorage.removeItem(this.documentId + '_annotations_sticky');\n window.sessionStorage.removeItem(this.documentId + '_annotations_textMarkup');\n window.sessionStorage.removeItem(this.documentId + '_annotations_freetext');\n window.sessionStorage.removeItem(this.documentId + '_annotations_sign');\n window.sessionStorage.removeItem(this.documentId + '_annotations_ink');\n for (var i = 0; i < this.pageCount; i++) {\n this.pdfViewer.annotationModule.renderAnnotations(i, null, null, null);\n this.pdfViewer.renderDrawing(undefined, i);\n this.pdfViewer.clearSelection(i);\n var accordionContent = document.getElementById(this.pdfViewer.element.id + '_accordionContainer' + (i + 1));\n if (accordionContent) {\n accordionContent.remove();\n }\n // eslint-disable-next-line max-len\n var accordionContentContainer = document.getElementById(this.pdfViewer.element.id + '_accordionContentContainer');\n if (accordionContentContainer) {\n if (accordionContentContainer.childElementCount === 0) {\n accordionContentContainer.style.display = 'none';\n if (document.getElementById(this.pdfViewer.element.id + '_commentsPanelText')) {\n // eslint-disable-next-line max-len\n this.navigationPane.annotationMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Export Annotations')], false);\n document.getElementById(this.pdfViewer.element.id + '_commentsPanelText').style.display = 'block';\n }\n }\n }\n }\n this.isImportedAnnotation = false;\n this.isImportAction = false;\n this.importedAnnotation = [];\n this.annotationPageList = [];\n this.pdfViewer.annotationModule.freeTextAnnotationModule.freeTextPageNumbers = [];\n this.pdfViewer.annotationModule.stampAnnotationModule.stampPageNumber = [];\n this.pdfViewer.annotation.inkAnnotationModule.inkAnnotationindex = [];\n this.isAnnotationCollectionRemoved = true;\n }\n };\n /**\n * @param pageNumber\n * @param isObject\n * @param pageNumber\n * @param isObject\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.createAnnotationsCollection = function (pageNumber, isObject) {\n // eslint-disable-next-line\n var annotationCollectionList = [];\n if (!isObject) {\n for (var i = 0; i < this.pageCount; i++) {\n var annotation = {\n // eslint-disable-next-line max-len\n textMarkupAnnotation: [], shapeAnnotation: [], measureShapeAnnotation: [], stampAnnotations: [], stickyNotesAnnotation: [], freeTextAnnotation: [], signatureAnnotation: [], signatureInkAnnotation: []\n };\n annotationCollectionList.push(annotation);\n }\n }\n else {\n annotationCollectionList = {};\n var annotation = {\n // eslint-disable-next-line max-len\n textMarkupAnnotation: [], shapeAnnotation: [], measureShapeAnnotation: [], stampAnnotations: [], stickyNotesAnnotation: [], freeTextAnnotation: [], signatureAnnotation: [], signatureInkAnnotation: []\n };\n annotationCollectionList[parseInt(pageNumber.toString(), 10)] = annotation;\n }\n return annotationCollectionList;\n };\n /**\n * @param importAnnotation\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.addAnnotation = function (importAnnotation) {\n // eslint-disable-next-line\n var pdfAnnotation = {};\n // eslint-disable-next-line\n var documentCollections;\n if (importAnnotation) {\n var isAnnotationObject = false;\n var annotationCount = 1;\n if (importAnnotation.shapeAnnotationType || importAnnotation.author) {\n isAnnotationObject = true;\n documentCollections = this.createAnnotationsCollection(importAnnotation.pageNumber, true);\n }\n else {\n if (importAnnotation.length) {\n annotationCount = importAnnotation.length;\n documentCollections = this.createAnnotationsCollection();\n }\n else {\n isAnnotationObject = true;\n documentCollections = this.createAnnotationsCollection(importAnnotation.pageNumber, true);\n }\n }\n for (var a = 0; a < annotationCount; a++) {\n // eslint-disable-next-line\n var annotation = void 0;\n if (isAnnotationObject) {\n annotation = importAnnotation;\n }\n else {\n annotation = importAnnotation[parseInt(a.toString(), 10)];\n }\n // eslint-disable-next-line\n var newAnnotation = {};\n newAnnotation.ShapeAnnotationType = annotation.shapeAnnotationType;\n newAnnotation.AnnotationAddMode = annotation.annotationAddMode;\n newAnnotation.Author = annotation.author;\n newAnnotation.AnnotationSelectorSettings = annotation.annotationSelectorSettings;\n newAnnotation.AnnotationSettings = annotation.annotationSettings;\n newAnnotation.PageNumber = annotation.pageNumber;\n newAnnotation.ModifiedDate = annotation.modifiedDate;\n newAnnotation.Subject = annotation.subject;\n newAnnotation.Note = annotation.note;\n newAnnotation.AnnotName = annotation.annotationId;\n newAnnotation.IsCommentLock = annotation.isCommentLock;\n newAnnotation.Comments = annotation.comments;\n if (annotation.comments && annotation.comments.length > 0) {\n // eslint-disable-next-line\n var comments = [];\n for (var i = 0; i < annotation.comments.length; i++) {\n comments.push(this.updateComments(annotation, annotation.comments[parseInt(i.toString(), 10)]));\n }\n newAnnotation.Comments = comments;\n }\n if (annotation.review) {\n newAnnotation.State = annotation.review.state;\n newAnnotation.StateModel = annotation.review.stateModel;\n }\n newAnnotation.CustomData = annotation.customData;\n newAnnotation.Opacity = annotation.opacity;\n if (annotation.shapeAnnotationType === 'textMarkup') {\n newAnnotation.AnnotType = 'textMarkup';\n newAnnotation.Color = annotation.color;\n newAnnotation.IsMultiSelect = annotation.isMultiSelect;\n newAnnotation.TextMarkupAnnotationType = annotation.textMarkupAnnotationType;\n newAnnotation.TextMarkupContent = annotation.textMarkupContent;\n newAnnotation.TextMarkupStartIndex = annotation.textMarkupStartIndex;\n newAnnotation.TextMarkupEndIndex = annotation.textMarkupEndIndex;\n if (annotation.rect) {\n newAnnotation.Rect = this.convertBounds(annotation.rect, true);\n }\n if (annotation.bounds && annotation.bounds.length >= 1) {\n // eslint-disable-next-line\n var bounds = new Array();\n for (var i = 0; i < annotation.bounds.length; i++) {\n bounds.push(this.convertBounds(annotation.bounds[parseInt(i.toString(), 10)]));\n }\n newAnnotation.Bounds = bounds;\n }\n documentCollections[annotation.pageNumber].textMarkupAnnotation.push(newAnnotation);\n }\n else if (annotation.shapeAnnotationType === 'sticky') {\n newAnnotation.AnnotType = 'sticky';\n newAnnotation.Icon = 'Comment';\n newAnnotation.Bounds = this.convertBounds(annotation.bounds);\n newAnnotation.StrokeColor = annotation.strokeColor;\n newAnnotation.Color = annotation.color;\n documentCollections[annotation.pageNumber].stickyNotesAnnotation.push(newAnnotation);\n }\n else if (annotation.shapeAnnotationType === 'FreeText') {\n newAnnotation.AnnotType = 'freeText';\n newAnnotation.Name = annotation.annotationId;\n newAnnotation.MarkupText = annotation.dynamicText;\n newAnnotation.Text = annotation.dynamicText;\n newAnnotation.Note = annotation.dynamicText;\n newAnnotation.TextAlign = annotation.textAlign;\n newAnnotation.Thickness = annotation.thicknes;\n newAnnotation.StrokeColor = annotation.strokeColor;\n newAnnotation.FillColor = annotation.fillColor;\n newAnnotation.FontColor = annotation.fontColor;\n newAnnotation.FontSize = annotation.fontSize;\n newAnnotation.FontFamily = annotation.fontFamily;\n newAnnotation.Rotate = annotation.rotateAngle;\n newAnnotation.Bounds = this.convertBounds(annotation.bounds);\n // eslint-disable-next-line max-len\n newAnnotation.Font = { 'Name': annotation.fontFamily, 'Size': annotation.fontSize, 'Bold': annotation.font.isBold, 'Italic': annotation.font.isItalic, 'Strikeout': annotation.font.isStrikeout, 'Underline': annotation.font.isUnderline };\n documentCollections[annotation.pageNumber].freeTextAnnotation.push(newAnnotation);\n }\n else if (annotation.shapeAnnotationType === 'stamp') {\n newAnnotation.AnnotType = 'stamp';\n newAnnotation.Icon = annotation.icon;\n newAnnotation.isDynamic = false;\n newAnnotation.Rect = this.convertBounds(annotation.bounds, false, true);\n newAnnotation.RotateAngle = annotation.rotateAngle;\n newAnnotation.FillColor = annotation.fillColor;\n newAnnotation.StrokeColor = annotation.strokeColor;\n newAnnotation.StampAnnotationType = annotation.stampAnnotationType;\n newAnnotation.CreationDate = annotation.creationDate;\n if (annotation.stampAnnotationType === 'image') {\n // eslint-disable-next-line\n var apperarance = [];\n // eslint-disable-next-line\n var imageData = { 'imagedata': annotation.stampAnnotationPath };\n apperarance.push(imageData);\n newAnnotation.Apperarance = apperarance;\n }\n if (annotation.isDynamicStamp) {\n newAnnotation.IsDynamic = true;\n newAnnotation.StrokeColor = annotation.stampFillcolor;\n // eslint-disable-next-line\n var apperarance = [];\n // eslint-disable-next-line\n var imageData = { 'type': 'string', 'text': annotation.dynamicText, 'currentFontname': '95b303ab-d397-438a-83af-e2ff8a9900f1', 'baseFontName': 'Helvetica-BoldOblique', 'fontSize': 10, 'isImport': true };\n apperarance.push(imageData);\n newAnnotation.Apperarance = apperarance;\n }\n documentCollections[annotation.pageNumber].stampAnnotations.push(newAnnotation);\n }\n else if (annotation.shapeAnnotationType === 'Ink' || annotation.shapeAnnotationType === 'Signature') {\n newAnnotation.StrokeColor = annotation.strokeColor;\n newAnnotation.FillColor = annotation.fillColor;\n newAnnotation.Thickness = annotation.thickness;\n newAnnotation.Bounds = this.convertBounds(annotation.bounds);\n newAnnotation.PathData = annotation.data;\n newAnnotation.pageIndex = annotation.pageNumber;\n if (annotation.shapeAnnotationType === 'Ink') {\n newAnnotation.AnnotType = 'Ink';\n newAnnotation.IsPathData = true;\n documentCollections[annotation.pageNumber].signatureInkAnnotation.push(newAnnotation);\n }\n if (annotation.shapeAnnotationType === 'Signature') {\n newAnnotation.AnnotType = 'Signature';\n newAnnotation.SignatureName = annotation.annotationId;\n newAnnotation.IsSignature = true;\n documentCollections[annotation.pageNumber].signatureAnnotation.push(newAnnotation);\n }\n }\n else {\n // eslint-disable-next-line max-len\n if (annotation.shapeAnnotationType === 'Line' || annotation.shapeAnnotationType === 'LineWidthArrowHead' || annotation.shapeAnnotationType === 'Polyline' || annotation.shapeAnnotationType === 'Polygon' || annotation.shapeAnnotationType === 'Polyline' || annotation.shapeAnnotationType === 'Circle' || annotation.shapeAnnotationType === 'Oval' || annotation.shapeAnnotationType === 'Rectangle' || annotation.shapeAnnotationType === 'Square' || annotation.shapeAnnotationType === 'Ellipse') {\n newAnnotation.AnnotType = 'shape';\n newAnnotation.StrokeColor = annotation.strokeColor;\n newAnnotation.FillColor = annotation.fillColor;\n newAnnotation.Thickness = annotation.thickness;\n newAnnotation.BorderStyle = annotation.borderStyle;\n newAnnotation.BorderDashArray = annotation.borderDashArray;\n newAnnotation.RotateAngle = annotation.rotateAngle;\n newAnnotation.IsCloudShape = annotation.isCloudShape;\n newAnnotation.CloudIntensity = annotation.cloudIntensity;\n newAnnotation.RectangleDifference = annotation.rectangleDifference;\n newAnnotation.LineHeadStart = annotation.lineHeadStart;\n newAnnotation.LineHeadEnd = annotation.lineHeadEnd;\n newAnnotation.IsLocked = annotation.isLocked;\n newAnnotation.EnableShapeLabel = annotation.enableShapeLabel;\n newAnnotation.LabelContent = annotation.labelContent;\n newAnnotation.LabelFillColor = annotation.labelFillColor;\n newAnnotation.LabelBorderColor = annotation.labelBorderColor;\n newAnnotation.FontColor = annotation.fontColor;\n newAnnotation.FontSize = annotation.fontSize;\n newAnnotation.LabelBounds = this.convertBounds(annotation.labelBounds);\n newAnnotation.LabelSettings = annotation.labelSettings;\n newAnnotation.Bounds = this.convertBounds(annotation.bounds);\n newAnnotation.LeaderLength = annotation.leaderLength;\n newAnnotation.LeaderLineExtenstion = annotation.leaderLineExtension;\n if (annotation.vertexPoints && annotation.vertexPoints.length >= 1) {\n // eslint-disable-next-line\n var points = new Array();\n for (var i = 0; i < annotation.vertexPoints.length; i++) {\n points.push(this.convertVertexPoints(annotation.vertexPoints[parseInt(i.toString(), 10)]));\n }\n newAnnotation.VertexPoints = points;\n }\n newAnnotation.EnableShapeLabel = annotation.enableShapeLabel;\n // eslint-disable-next-line max-len\n if (annotation.subject === 'Distance calculation' || annotation.subject === 'Perimeter calculation' || annotation.subject === 'Area calculation' || annotation.subject === 'Radius calculation' || annotation.subject === 'Volume calculation') {\n newAnnotation.AnnotType = 'shape_measure';\n // eslint-disable-next-line\n var calibrate = annotation.calibrate;\n if (calibrate) {\n // eslint-disable-next-line\n newAnnotation.Calibrate = {\n 'Ratio': calibrate.ratio, 'X': [{ 'Unit': calibrate.x[0].unit, 'ConversionFactor': calibrate.x[0].conversionFactor, 'FractionalType': calibrate.x[0].fractionalType, 'Denominator': calibrate.x[0].denominator, 'FormatDenominator': calibrate.x[0].formatDenominator }],\n // eslint-disable-next-line\n 'Distance': [{ 'Unit': calibrate.distance[0].unit, 'ConversionFactor': calibrate.distance[0].conversionFactor, 'FractionalType': calibrate.distance[0].fractionalType, 'Denominator': calibrate.distance[0].denominator, 'FormatDenominator': calibrate.distance[0].formatDenominator }],\n // eslint-disable-next-line\n 'Area': [{ 'Unit': calibrate.area[0].unit, 'ConversionFactor': calibrate.area[0].conversionFactor, 'FractionalType': calibrate.area[0].fractionalType, 'Denominator': calibrate.area[0].denominator, 'FormatDenominator': calibrate.area[0].formatDenominator }],\n // eslint-disable-next-line\n 'Angle': null, 'Volume': null, 'TargetUnitConversion': calibrate.targetUnitConversion, 'Depth': calibrate.depth\n };\n }\n newAnnotation.Indent = annotation.indent;\n newAnnotation.Caption = annotation.caption;\n newAnnotation.CaptionPosition = annotation.captionPosition;\n newAnnotation.LeaderLineExtension = annotation.leaderLineExtension;\n newAnnotation.LeaderLength = annotation.leaderLength;\n newAnnotation.LeaderLineOffset = annotation.leaderLineOffset;\n documentCollections[annotation.pageNumber].measureShapeAnnotation.push(newAnnotation);\n }\n else {\n documentCollections[annotation.pageNumber].shapeAnnotation.push(newAnnotation);\n }\n }\n }\n }\n pdfAnnotation.pdfAnnotation = documentCollections;\n this.pdfViewer.importAnnotation(pdfAnnotation);\n }\n };\n /**\n * @param bounds\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.convertBounds = function (bounds, isRect, isStamp) {\n if (bounds) {\n if (isRect) {\n var left = bounds.left ? bounds.left : bounds.Left ? bounds.Left : 0;\n var right = bounds.right ? bounds.right : bounds.Right ? bounds.Right : 0;\n var bottom = bounds.bottom ? bounds.bottom : bounds.Bottom ? bounds.Bottom : 0;\n var top_5 = bounds.top ? bounds.top : bounds.Top ? bounds.Top : 0;\n return { left: left, right: right, bottom: bottom, top: top_5 };\n }\n else {\n var x = bounds.x ? bounds.x : bounds.left ? bounds.left : bounds.Left ? bounds.Left : 0;\n var y = bounds.y ? bounds.y : bounds.top ? bounds.top : bounds.Top ? bounds.Top : 0;\n var width = bounds.width ? bounds.width : bounds.Width ? bounds.Width : 0;\n var height = bounds.height ? bounds.height : bounds.Height ? bounds.Height : 0;\n if (isStamp) {\n return { X: this.ConvertPixelToPoint(x), Y: this.ConvertPixelToPoint(y), Left: this.ConvertPixelToPoint(x), Top: this.ConvertPixelToPoint(y), Height: this.ConvertPixelToPoint(height), Width: this.ConvertPixelToPoint(width) };\n }\n else {\n return { X: x, Y: y, Left: x, Top: y, Height: height, Width: width };\n }\n }\n }\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.ConvertPixelToPoint = function (number) {\n return (number * (72 / 96));\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.convertVertexPoints = function (points) {\n if (points) {\n var x = points.x ? points.x : points.X ? points.X : 0;\n var y = points.y ? points.y : points.Y ? points.Y : 0;\n return { X: x, Y: y, Left: x, Top: y };\n }\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.updateComments = function (annotation, comments) {\n if (annotation && comments) {\n // eslint-disable-next-line\n var newAnnotation = {};\n newAnnotation.ShapeAnnotationType = annotation.shapeAnnotationType;\n newAnnotation.Author = comments.author;\n newAnnotation.AnnotationSelectorSettings = annotation.annotationSelectorSettings;\n newAnnotation.AnnotationSettings = annotation.annotationSettings;\n newAnnotation.PageNumber = annotation.pageNumber;\n newAnnotation.ModifiedDate = comments.modifiedDate;\n newAnnotation.Subject = annotation.subject;\n newAnnotation.Note = comments.note;\n newAnnotation.AnnotName = comments.annotName;\n newAnnotation.Comments = comments.comments;\n newAnnotation.State = comments.review.state;\n newAnnotation.StateModel = comments.review.stateModel;\n newAnnotation.CustomData = annotation.customData;\n newAnnotation.IsLock = comments.isLock;\n return newAnnotation;\n }\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.removeFocus = function () {\n if (isBlazor()) {\n // eslint-disable-next-line\n var currentPageContainer = this.pdfViewer.element.querySelector('#' + this.pdfViewer.element.id + '_totalPage');\n // eslint-disable-next-line max-len\n if (currentPageContainer && currentPageContainer.firstElementChild && currentPageContainer.firstElementChild.firstElementChild) {\n currentPageContainer.firstElementChild.firstElementChild.blur();\n }\n }\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.updateDocumentEditedProperty = function (isEdited) {\n this.pdfViewer.allowServerDataBinding = true;\n this.pdfViewer.isDocumentEdited = isEdited;\n this.pdfViewer.allowServerDataBinding = false;\n };\n /**\n * @private\n */\n PdfViewerBase.prototype.getWindowDevicePixelRatio = function () {\n var devicePixelRatio = window.devicePixelRatio;\n if (!Browser.isDevice) {\n return devicePixelRatio;\n }\n else {\n return devicePixelRatio = 2;\n }\n };\n /**\n * @private\n */\n PdfViewerBase.prototype.getZoomRatio = function (zoom) {\n var zoomFactor = this.getZoomFactor();\n var zoomValue = zoom ? zoom : 1;\n var ratio;\n var devicePixelRatio = this.getWindowDevicePixelRatio();\n if (!Browser.isDevice || (Browser.isDevice && zoomFactor <= 0.7)) {\n ratio = zoomValue * devicePixelRatio;\n }\n else {\n ratio = zoomValue;\n }\n return ratio;\n };\n /**\n * @private\n */\n PdfViewerBase.prototype.importJsonForRotatedDocuments = function (Rotate, pageNumber, bounds, originalRotation) {\n // eslint-disable-next-line\n var rotateAngle = Math.abs(Rotate);\n var pageDetails = this.pageSize[parseInt(pageNumber.toString(), 10)];\n //originalRotation = !isNullOrUndefined(originalRotation) ? originalRotation : pageDetails.rotation;\n if (originalRotation !== pageDetails.rotation) {\n rotateAngle = this.getRotationAngle(originalRotation, pageNumber);\n this.isPageRotated = true;\n }\n else {\n rotateAngle = 0;\n this.isPageRotated = false;\n }\n if (rotateAngle === 1) {\n return { X: pageDetails.width - bounds.Y - bounds.Height, Y: bounds.X, Height: bounds.Width, Width: bounds.Height };\n }\n else if (rotateAngle === 2) {\n return { X: pageDetails.width - bounds.X - bounds.Width, Y: pageDetails.height - bounds.Y - bounds.Height, Height: bounds.Height, Width: bounds.Width };\n }\n else if (rotateAngle === 3) {\n return { X: bounds.Y, Y: pageDetails.height - bounds.X - bounds.Width, Height: bounds.Width, Width: bounds.Height };\n }\n else {\n return bounds;\n }\n };\n PdfViewerBase.prototype.getRotationAngle = function (originalRotation, pageNumber) {\n var pageDetails = this.pageSize[parseInt(pageNumber.toString(), 10)];\n originalRotation = Math.abs(originalRotation);\n var rotateAngle;\n if (originalRotation === 0) {\n return rotateAngle = pageDetails.rotation;\n }\n else if (originalRotation === 1 || originalRotation === 90) {\n if (pageDetails.rotation == 0) {\n return rotateAngle = 3;\n }\n else if (pageDetails.rotation === 2) {\n return rotateAngle = 1;\n }\n else if (pageDetails.rotation === 3) {\n return rotateAngle = 2;\n }\n }\n else if (originalRotation === 2 || originalRotation === 180) {\n if (pageDetails.rotation == 0) {\n return rotateAngle = 2;\n }\n else if (pageDetails.rotation === 1) {\n return rotateAngle = 3;\n }\n else if (pageDetails.rotation === 3) {\n return rotateAngle = 1;\n }\n }\n else if (originalRotation === 3 || originalRotation === 270) {\n if (pageDetails.rotation == 0) {\n return rotateAngle = 1;\n }\n else if (pageDetails.rotation === 2) {\n return rotateAngle = 3;\n }\n else if (pageDetails.rotation === 1) {\n return rotateAngle = 2;\n }\n }\n };\n /**\n * @private\n */\n PdfViewerBase.prototype.calculateVertexPoints = function (Rotate, pageNumber, vertexPoints, originalRotation) {\n // eslint-disable-next-line\n var rotateAngle = Math.abs(Rotate);\n var vPoints = [];\n var pageDetails = this.pageSize[parseInt(pageNumber.toString(), 10)];\n var x;\n var y;\n var point;\n //originalRotation = !isNullOrUndefined(originalRotation) ? originalRotation : pageDetails.rotation;\n if (originalRotation !== pageDetails.rotation) {\n rotateAngle = this.getRotationAngle(originalRotation, pageNumber);\n }\n else {\n rotateAngle = 0;\n }\n for (var j = 0; j < vertexPoints.length; j++) {\n if (rotateAngle === 1) {\n x = vertexPoints[parseInt(j.toString(), 10)].Y ? pageDetails.width - vertexPoints[parseInt(j.toString(), 10)].Y : pageDetails.width - vertexPoints[parseInt(j.toString(), 10)].y;\n y = vertexPoints[parseInt(j.toString(), 10)].X ? vertexPoints[parseInt(j.toString(), 10)].X : vertexPoints[parseInt(j.toString(), 10)].x;\n point = { x: x, y: y };\n vPoints.push(point);\n }\n else if (rotateAngle === 2) {\n x = vertexPoints[parseInt(j.toString(), 10)].X ? pageDetails.width - vertexPoints[parseInt(j.toString(), 10)].X : pageDetails.width - vertexPoints[parseInt(j.toString(), 10)].x;\n y = vertexPoints[parseInt(j.toString(), 10)].Y ? pageDetails.height - vertexPoints[parseInt(j.toString(), 10)].Y : pageDetails.height - vertexPoints[parseInt(j.toString(), 10)].y;\n var point_1 = { x: x, y: y };\n vPoints.push(point_1);\n }\n else if (rotateAngle == 3) {\n x = vertexPoints[parseInt(j.toString(), 10)].Y ? vertexPoints[parseInt(j.toString(), 10)].Y : vertexPoints[parseInt(j.toString(), 10)].y;\n y = vertexPoints[parseInt(j.toString(), 10)].X ? pageDetails.height - vertexPoints[parseInt(j.toString(), 10)].X : pageDetails.height - vertexPoints[parseInt(j.toString(), 10)].x;\n point = { x: x, y: y };\n vPoints.push(point);\n }\n else {\n x = vertexPoints[parseInt(j.toString(), 10)].X ? vertexPoints[parseInt(j.toString(), 10)].X : vertexPoints[parseInt(j.toString(), 10)].x;\n y = vertexPoints[parseInt(j.toString(), 10)].Y ? vertexPoints[parseInt(j.toString(), 10)].Y : vertexPoints[parseInt(j.toString(), 10)].y;\n var point_2 = { x: x, y: y };\n vPoints.push(point_2);\n }\n }\n return vPoints;\n };\n /**\n * @private\n */\n PdfViewerBase.prototype.isSignaturePathData = function (data) {\n // eslint-disable-next-line\n var pathRegex = /^([Mm]\\s*\\d+(\\.\\d+)?\\s*,\\s*\\d+(\\.\\d+)?(\\s+[Ll]\\s*\\d+(\\.\\d+)?\\s*,\\s*\\d+(\\.\\d+)?)*\\s*)+$/;\n return pathRegex.test(data);\n };\n /**\n * @private\n */\n PdfViewerBase.prototype.isSignatureImageData = function (data) {\n // eslint-disable-next-line\n var base64ImageRegex = /^data:image\\/([a-z]+);base64,/;\n return base64ImageRegex.test(data);\n };\n return PdfViewerBase;\n}());\nexport { PdfViewerBase };\n","import { Browser, isBlazor, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { splitArrayCollection, processPathData, cornersPointsBeforeRotation } from '@syncfusion/ej2-drawings';\nimport { Tooltip } from '@syncfusion/ej2-popups';\n/**\n * The `FormFields` module is to render formfields in the PDF document.\n *\n * @hidden\n */\nvar FormFields = /** @class */ (function () {\n /**\n * @param viewer\n * @param base\n * @param viewer\n * @param base\n * @private\n */\n function FormFields(viewer, base) {\n // eslint-disable-next-line\n this.maintainTabIndex = {};\n // eslint-disable-next-line\n this.maintanMinTabindex = {};\n this.isSignatureField = false;\n this.paddingDifferenceValue = 10;\n this.indicatorPaddingValue = 4;\n this.isKeyDownCheck = false;\n /**\n * @private\n */\n // eslint-disable-next-line\n this.readOnlyCollection = [];\n this.isSignatureRendered = false;\n /**\n * @private\n */\n // eslint-disable-next-line\n this.signatureFieldCollection = [];\n this.selectedIndex = [];\n /**\n * @private\n */\n // eslint-disable-next-line\n this.renderedPageList = [];\n this.pdfViewer = viewer;\n this.pdfViewerBase = base;\n }\n /**\n * @param pageIndex\n * @private\n */\n FormFields.prototype.renderFormFields = function (pageIndex, isImportFormField) {\n this.maxTabIndex = 0;\n this.minTabIndex = -1;\n // eslint-disable-next-line \n if (this.renderedPageList.indexOf(pageIndex) !== -1 && !isImportFormField) {\n this.data = this.pdfViewerBase.getItemFromSessionStorage('_formDesigner');\n if (!this.data || this.data === '[]') {\n this.data = this.pdfViewerBase.getItemFromSessionStorage('_formfields');\n }\n }\n else {\n this.data = this.pdfViewerBase.getItemFromSessionStorage('_formfields');\n }\n if (this.data) {\n // eslint-disable-next-line\n this.formFieldsData = JSON.parse(this.data);\n var textLayer = document.getElementById(this.pdfViewer.element.id + '_textLayer_' + pageIndex);\n var canvasElement = document.getElementById(this.pdfViewer.element.id + '_pageCanvas_' + pageIndex);\n var count = void 0;\n if (this.formFieldsData !== null && canvasElement !== null && textLayer !== null) {\n var flag = false;\n for (var i = 0; i < this.formFieldsData.length; i++) {\n var formField = this.formFieldsData[i];\n if (!flag && isNullOrUndefined(formField.ActualFieldName) && formField.PageIndex === pageIndex) {\n count = parseInt(formField.FieldName.slice(formField.FieldName.lastIndexOf(\"_\") + 1));\n flag = true;\n }\n }\n if (this.renderedPageList.indexOf(pageIndex) === -1) {\n this.renderedPageList.push(pageIndex);\n }\n var _loop_1 = function (i_1) {\n // eslint-disable-next-line\n var currentData = this_1.formFieldsData[i_1];\n if (currentData.FieldName !== '') {\n if (currentData.IsInitialField) {\n currentData.Name = 'InitialField';\n }\n // eslint-disable-next-line\n var font = currentData['Font'];\n if (this_1.pdfViewer.formDesigner) {\n if (parseFloat(currentData['PageIndex']) == pageIndex) {\n var fontFamily = void 0;\n var fontStyle = void 0;\n var fontSize = void 0;\n if (font !== null && font.Height) {\n fontFamily = font.Name;\n if (font.Italic) {\n fontStyle = 'Italic';\n }\n if (font.Bold) {\n fontStyle = 'Bold';\n }\n if (font.Strikeout) {\n fontStyle = 'Strikethrough';\n }\n if (font.Underline) {\n fontStyle = 'Underline';\n }\n fontSize = this_1.ConvertPointToPixel(font.Size);\n }\n var textAlignment = currentData.Alignment === 2 ? 'right' : (currentData.Alignment === 1 ? 'center' : 'left');\n var backgroundColor = currentData['BackColor'];\n var bounds = currentData['LineBounds'];\n var backColor = 'rgba(' + backgroundColor.R + ',' + backgroundColor.G + ',' + backgroundColor.B + ',' + 1 + ')';\n if (currentData.IsTransparent === true) {\n backColor = \"rgba(0,0,0,0)\";\n }\n backColor = this_1.rgbaToHex(backColor);\n // set default color if field have black color as bg.\n if (backColor === '#000000ff') {\n backColor = '#daeaf7ff';\n }\n // eslint-disable-next-line\n var fontColor = currentData['FontColor'];\n var left = this_1.ConvertPointToPixel(bounds.X);\n var top_1 = this_1.ConvertPointToPixel(bounds.Y);\n var width = this_1.ConvertPointToPixel(bounds.Width);\n var height = this_1.ConvertPointToPixel(bounds.Height);\n var boundArray = { left: left, top: top_1, width: width, height: height };\n var isFieldRotated = false;\n var rotateFieldAngle = 0;\n if (currentData[\"Rotation\"] !== 0) {\n if (currentData[\"RotationAngle\"] === -90 || currentData[\"RotationAngle\"] === -270 || currentData[\"RotationAngle\"] === -180) {\n boundArray = this_1.getBounds(boundArray, pageIndex, 0, isFieldRotated);\n }\n }\n else {\n isFieldRotated = true;\n boundArray = this_1.getBounds(boundArray, pageIndex, 0, isFieldRotated);\n rotateFieldAngle = this_1.getAngle(pageIndex);\n }\n var foreColor = 'rgba(' + fontColor.R + ',' + fontColor.G + ',' + fontColor.B + ',' + 1 + ')';\n foreColor = this_1.rgbaToHex(foreColor);\n var borderColor = currentData['BorderColor'];\n var borderRGB = 'rgba(' + borderColor.R + ',' + borderColor.G + ',' + borderColor.B + ',' + 1 + ')';\n borderRGB = this_1.rgbaToHex(borderRGB);\n var borderWidth = currentData['BorderWidth'];\n this_1.selectedIndex = [];\n elementValue = \"\";\n if (currentData.Name === 'RadioButton' || currentData.Name === 'CheckBox') {\n elementValue = currentData['Text'] ? currentData['Text'] : currentData['Value'];\n }\n else {\n elementValue = currentData['Text'];\n }\n var fieldProperties = {\n bounds: { X: boundArray.left, Y: boundArray.top, Width: boundArray.width, Height: boundArray.height }, pageNumber: parseFloat(currentData['PageIndex']) + 1, name: currentData['ActualFieldName'], tooltip: currentData['ToolTip'],\n value: elementValue, insertSpaces: currentData['InsertSpaces'], isChecked: currentData['Selected'], isSelected: currentData['Selected'], fontFamily: fontFamily, fontStyle: fontStyle, backgroundColor: backColor, color: foreColor, borderColor: borderRGB, thickness: borderWidth, fontSize: fontSize, isMultiline: currentData.Multiline, rotateAngle: rotateFieldAngle,\n isReadOnly: currentData['IsReadonly'], isRequired: currentData['IsRequired'], alignment: textAlignment, options: this_1.getListValues(currentData), selectedIndex: this_1.selectedIndex, maxLength: currentData.MaxLength, visibility: currentData.Visible === 1 ? \"hidden\" : \"visible\", font: { isItalic: !isNullOrUndefined(font) ? font.Italic : false, isBold: !isNullOrUndefined(font) ? font.Bold : false, isStrikeout: !isNullOrUndefined(font) ? font.Strikeout : false, isUnderline: !isNullOrUndefined(font) ? font.Underline : false }, isTransparent: currentData.IsTransparent\n };\n if (!currentData.id && this_1.pdfViewer.formFieldCollections[i_1] && !isNullOrUndefined(currentData['ActualFieldName'])) {\n fieldProperties.id = this_1.pdfViewer.formFieldCollections[i_1].id;\n }\n if (currentData.Name === 'DropDown' || currentData.Name === 'ListBox') {\n fieldProperties.value = currentData['SelectedValue'];\n }\n // eslint-disable-next-line\n var fieldType = this_1.getFormFieldType(currentData);\n if (currentData.Name !== 'SignatureText' || currentData.Name !== 'SignatureImage') {\n if (!isNullOrUndefined(this_1.getFormFieldType(currentData))) {\n if (currentData.IsRequired) {\n var thickness = fieldProperties.thickness;\n thickness = thickness > 0 ? thickness : 1;\n fieldProperties.thickness = thickness;\n }\n var addedElement1 = this_1.pdfViewer.formDesignerModule.addFormField(fieldType, fieldProperties, false, fieldProperties.id);\n if (addedElement1 && addedElement1.parentElement) {\n currentData.id = addedElement1.parentElement.id.split('_')[0];\n }\n if (addedElement1 && addedElement1.style.visibility === \"hidden\") {\n addedElement1.childNodes[0].disabled = true;\n }\n }\n }\n if (fieldType === 'SignatureField' || fieldType === 'InitialField') {\n this_1.addSignaturePath(currentData, count);\n if (!isNullOrUndefined(currentData.Value)) {\n this_1.renderExistingAnnnot(currentData, parseFloat(currentData['PageIndex']) + 1, null, isFieldRotated);\n this_1.isSignatureRendered = true;\n count++;\n }\n }\n if (currentData.ActualFieldName === null && this_1.formFieldsData.filter(function (item) { return item.FieldName.includes(currentData.FieldName.replace(/_\\d$/, '')); }).filter(function (value) { return value.Name != 'ink'; }).length === 0) {\n this_1.renderExistingAnnnot(currentData, parseFloat(currentData['PageIndex']) + 1, null, isFieldRotated);\n this_1.pdfViewerBase.signatureModule.storeSignatureData(pageIndex, currentData);\n this_1.isSignatureRendered = true;\n count++;\n }\n this_1.pdfViewerBase.isLoadedFormFieldAdded = true;\n }\n }\n else {\n // eslint-disable-next-line\n if (parseFloat(currentData['PageIndex']) == pageIndex) {\n // eslint-disable-next-line\n var field = this_1.createFormFields(currentData, pageIndex, i_1, null, count);\n var inputField = field.currentField;\n var signCount = field.count;\n var isFieldRotated = false;\n if (currentData.ActualFieldName === null && this_1.formFieldsData.filter(function (item) { return item.FieldName.includes(currentData.FieldName.replace(/_\\d$/, '')); }).filter(function (value) { return value.Name != 'ink'; }).length === 0) {\n this_1.renderExistingAnnnot(currentData, parseFloat(currentData['PageIndex']) + 1, null, isFieldRotated);\n this_1.pdfViewerBase.signatureModule.storeSignatureData(pageIndex, currentData);\n this_1.isSignatureRendered = true;\n count++;\n }\n if (inputField) {\n // eslint-disable-next-line\n var divElement = this_1.createParentElement(currentData, pageIndex);\n // eslint-disable-next-line\n var bounds = currentData['LineBounds'];\n // eslint-disable-next-line\n var font_1 = currentData['Font'];\n // eslint-disable-next-line\n rotateAngle = 0;\n if (currentData['Rotation'] === 0) {\n isFieldRotated = true;\n rotateAngle = this_1.getAngle(pageIndex);\n if (divElement) {\n divElement.style.transform = 'rotate(' + rotateAngle + 'deg)';\n }\n else {\n inputField.style.transform = 'rotate(' + rotateAngle + 'deg)';\n }\n }\n else {\n if (divElement) {\n divElement.style.transform = 'rotate(' + rotateAngle + 'deg)';\n }\n else {\n inputField.style.transform = 'rotate(' + rotateAngle + 'deg)';\n }\n }\n this_1.applyPosition(inputField, bounds, font_1, pageIndex, 0, isFieldRotated);\n inputField.InsertSpaces = currentData.InsertSpaces;\n if (inputField.InsertSpaces) {\n var zoomFactor = this_1.pdfViewerBase.getZoomFactor();\n // eslint-disable-next-line\n var font_2 = ((parseInt(inputField.style.width) / inputField.maxLength) - (parseFloat(inputField.style.fontSize) / 2)) - (0.6 * zoomFactor);\n // eslint-disable-next-line\n inputField.style.letterSpacing = '' + font_2 + 'px';\n inputField.style.fontFamily = 'monospace';\n inputField.style.paddingLeft = (font_2 / 2) + 'px';\n }\n // eslint-disable-next-line\n currentData['uniqueID'] = this_1.pdfViewer.element.id + 'input_' + pageIndex + '_' + i_1;\n for (var j = 0; j < this_1.pdfViewer.formFieldCollections.length; j++) {\n if ((inputField.type === 'text' || inputField.type === 'password' || inputField.type === 'textarea') && currentData.Name !== 'SignatureField') {\n if (currentData['uniqueID'] === this_1.pdfViewer.formFieldCollections[j].id) {\n this_1.pdfViewer.formFieldCollections[j].value = currentData['Text'];\n }\n }\n }\n if (isNullOrUndefined(currentData.Value)) {\n currentData.Value = currentData['Text'];\n }\n if (currentData.ToolTip) {\n this_1.setToolTip(currentData.ToolTip, inputField);\n }\n this_1.applyCommonProperties(inputField, pageIndex, i_1, currentData, isFieldRotated);\n this_1.checkIsReadonly(currentData, inputField);\n this_1.applyTabIndex(currentData, inputField, pageIndex);\n this_1.checkIsRequiredField(currentData, inputField);\n this_1.applyDefaultColor(inputField);\n this_1.updateFormFieldsCollection(currentData);\n if (divElement) {\n divElement.appendChild(inputField);\n textLayer.appendChild(divElement);\n }\n else {\n inputField.style.position = 'absolute';\n textLayer.appendChild(inputField);\n }\n inputField.addEventListener('focus', this_1.focusFormFields.bind(this_1));\n inputField.addEventListener('blur', this_1.blurFormFields.bind(this_1));\n inputField.addEventListener('click', this_1.updateFormFields.bind(this_1));\n inputField.addEventListener('change', this_1.changeFormFields.bind(this_1));\n inputField.addEventListener('keydown', this_1.updateFormFieldsValue.bind(this_1));\n inputField.addEventListener('keyup', this_1.updateSameFieldsValue.bind(this_1));\n count = signCount;\n }\n }\n }\n }\n };\n var this_1 = this, elementValue, rotateAngle;\n for (var i_1 = 0; i_1 < this.formFieldsData.length; i_1++) {\n _loop_1(i_1);\n }\n if (!this.pdfViewer.formDesigner) {\n window.sessionStorage.removeItem(this.pdfViewerBase.documentId + '_formfields');\n this.pdfViewerBase.setItemInSessionStorage(this.formFieldsData, '_formfields');\n }\n }\n }\n if (this.pdfViewerBase.isFocusField && this.pdfViewerBase.focusField) {\n var currentField = document.getElementById(this.pdfViewerBase.focusField.id);\n if (currentField) {\n if ((this.pdfViewerBase.focusField.type === \"SignatureField\" || this.pdfViewerBase.focusField.type === \"InitialField\") && this.pdfViewer.formDesignerModule) {\n var y = this.pdfViewerBase.focusField.bounds.y;\n var height = this.pdfViewerBase.pageSize[pageIndex].height;\n this.pdfViewer.bookmark.goToBookmark(this.pdfViewerBase.focusField.pageIndex, height - y);\n }\n else {\n currentField.focus();\n }\n this.pdfViewerBase.isFocusField = false;\n this.pdfViewerBase.focusField = [];\n }\n }\n };\n FormFields.prototype.setToolTip = function (tooltipContent, targetElement) {\n //initialize tooltip component\n var tooltip = new Tooltip({\n content: tooltipContent\n });\n // render initialized tooltip\n tooltip.appendTo(targetElement);\n };\n FormFields.prototype.trim = function (str) {\n return str.replace(/^\\s+|\\s+$/gm, '');\n };\n FormFields.prototype.rgbaToHex = function (rgba) {\n var inParts = rgba.substring(rgba.indexOf(\"(\")).split(\",\");\n var r = parseInt(this.trim(inParts[0].substring(1)), 10);\n var g = parseInt(this.trim(inParts[1]), 10);\n var b = parseInt(this.trim(inParts[2]), 10);\n var a = parseFloat(parseFloat(this.trim(inParts[3].substring(0, inParts[3].length - 1))).toFixed(2));\n var outParts = [\n r.toString(16),\n g.toString(16),\n b.toString(16),\n Math.round(a * 255).toString(16).substring(0, 2)\n ];\n // Pad single-digit output values\n outParts.forEach(function (part, i) {\n if (part.length === 1) {\n outParts[i] = '0' + part;\n }\n });\n return ('#' + outParts.join(''));\n };\n FormFields.prototype.getListValues = function (currentData) {\n var listItem = currentData['TextList'];\n var options = [];\n for (var i = 0; i < listItem.length; i++) {\n if (listItem[i] === currentData['SelectedValue'])\n this.selectedIndex.push(i);\n options.push({ itemName: listItem[i], itemValue: listItem[i] });\n }\n if (this.getFormFieldType(currentData) === 'ListBox') {\n this.selectedIndex = currentData['SelectedList'];\n }\n return options;\n };\n // eslint-disable-next-line\n FormFields.prototype.createParentElement = function (data, pageIndex) {\n // eslint-disable-next-line\n var divElement;\n // eslint-disable-next-line\n if (data['Name'] === 'Textbox' || data['Name'] === 'Password') {\n divElement = document.createElement('div');\n divElement.style.background = 'white';\n if (data.InsertSpaces) {\n divElement.style.background = 'transparent';\n }\n // eslint-disable-next-line\n var bounds = data['LineBounds'];\n // eslint-disable-next-line\n var font = data['Font'];\n // eslint-disable-next-line\n divElement.style.position = 'absolute';\n // eslint-disable-next-line\n var isFieldRotated = false;\n if (data['Rotation'] === 0) {\n isFieldRotated = true;\n }\n this.applyPosition(divElement, bounds, font, pageIndex, 0, isFieldRotated);\n }\n return divElement;\n };\n /**\n * @private\n */\n FormFields.prototype.getAngle = function (pageIndex) {\n // eslint-disable-next-line\n var angle = 0;\n // eslint-disable-next-line\n var pageDetails = this.pdfViewerBase.pageSize[pageIndex];\n if (pageDetails && pageDetails.rotation) {\n switch (pageDetails.rotation) {\n case 0:\n angle = 0;\n break;\n case 1:\n angle = 90;\n break;\n case 2:\n angle = 180;\n break;\n case 3:\n angle = 270;\n break;\n }\n }\n return angle;\n };\n FormFields.prototype.nextField = function () {\n this.signatureFieldNavigate(true);\n };\n FormFields.prototype.previousField = function () {\n this.signatureFieldNavigate(false);\n };\n FormFields.prototype.signatureFieldNavigate = function (nextSign) {\n var isNextSignField = nextSign;\n // eslint-disable-next-line\n var signatureFields = this.signatureFieldCollection;\n var collectionData = this.pdfViewer.formFieldCollections;\n if (signatureFields.length === 0) {\n signatureFields = this.getSignField();\n }\n // eslint-disable-next-line\n var currentField;\n if (this.currentTarget) {\n if (this.pdfViewer.formDesignerModule) {\n for (var i = 0; i < collectionData.length; i++) {\n currentField = collectionData[i];\n if (this.currentTarget.id === currentField.id) {\n this.currentTarget = document.getElementById(currentField.id);\n this.getSignatureIndex(i, collectionData.length, isNextSignField);\n break;\n }\n }\n }\n else {\n for (var i = 0; i < signatureFields.length; i++) {\n currentField = this.pdfViewer.formDesignerModule ? signatureFields[i].FormField : signatureFields[i];\n if (this.currentTarget.id === currentField.uniqueID) {\n this.currentTarget = document.getElementById(currentField.uniqueID);\n this.getSignatureIndex(i, signatureFields.length, isNextSignField);\n break;\n }\n }\n }\n }\n else {\n if (nextSign) {\n if (this.pdfViewer.formDesignerModule) {\n currentField = signatureFields[0];\n if (currentField.id) {\n this.currentTarget = document.getElementById(currentField.id);\n this.getSignatureIndex(0, signatureFields.length, isNextSignField, true);\n }\n }\n else {\n currentField = signatureFields[0];\n if (currentField.uniqueID) {\n this.currentTarget = document.getElementById(currentField.uniqueID);\n this.getSignatureIndex(0, signatureFields.length, isNextSignField, true);\n }\n }\n }\n }\n };\n FormFields.prototype.getSignatureIndex = function (currentSignatureIndex, signatureCount, isNextSign, isFirstNavigate) {\n var signatureIndex = currentSignatureIndex;\n if (!isFirstNavigate) {\n if (isNextSign) {\n signatureIndex++;\n }\n else {\n signatureIndex--;\n }\n }\n if (signatureCount === 1) {\n this.renderSignatureField(0);\n }\n else {\n if (signatureIndex < signatureCount && signatureIndex >= 0) {\n this.renderSignatureField(signatureIndex);\n }\n else {\n if (isNextSign) {\n if (signatureIndex >= signatureCount) {\n this.renderSignatureField(0);\n }\n }\n else {\n if (signatureIndex <= 0) {\n this.renderSignatureField(signatureCount - 1);\n }\n }\n }\n }\n };\n FormFields.prototype.renderSignatureField = function (currentSignIndex) {\n var curSignIndex = currentSignIndex;\n // eslint-disable-next-line\n var signatureFields = this.signatureFieldCollection;\n var collectionData = this.pdfViewer.formFieldCollections;\n // eslint-disable-next-line\n var currentField;\n if (curSignIndex < collectionData.length) {\n for (var i = 0; i < collectionData.length; i++) {\n if (this.pdfViewer.formDesignerModule) {\n var curSignIndexId = collectionData[curSignIndex].id;\n var signatureFieldData = collectionData[i];\n if (curSignIndexId === signatureFieldData.id) {\n var pageIndex = signatureFieldData.pageIndex >= 0 ? signatureFieldData.pageIndex : signatureFieldData.pageNumber;\n var isRender = this.pdfViewer.annotationModule.findRenderPageList(pageIndex);\n if (!isRender) {\n this.pdfViewer.navigation.goToPage(pageIndex + 1);\n this.renderFormFields(pageIndex, false);\n }\n this.currentTarget = document.getElementById(signatureFieldData.id);\n currentField = signatureFieldData;\n break;\n }\n }\n else {\n var curSignIndexId = this.pdfViewer.formDesignerModule ? signatureFields[curSignIndex].FormField.uniqueID : signatureFields[curSignIndex].uniqueID;\n var signatureFieldData = this.pdfViewer.formDesignerModule ? signatureFields[i].FormField : signatureFields[i];\n if (curSignIndexId === signatureFieldData.uniqueID) {\n var pageIndex_1 = signatureFieldData.PageIndex >= 0 ? signatureFieldData.PageIndex : signatureFieldData.pageNumber;\n var isRender_1 = this.pdfViewer.annotationModule.findRenderPageList(pageIndex_1);\n if (!isRender_1) {\n this.pdfViewer.navigation.goToPage(pageIndex_1 + 1);\n this.renderFormFields(pageIndex_1, false);\n }\n this.currentTarget = document.getElementById(signatureFieldData.uniqueID);\n currentField = signatureFieldData;\n break;\n }\n }\n }\n if (this.currentTarget === null) {\n var pageIndex_2 = currentField.PageIndex >= 0 ? currentField.PageIndex : currentField.pageNumber;\n this.pdfViewer.navigation.goToPage(pageIndex_2);\n this.currentTarget = document.getElementById(currentField.uniqueID);\n }\n if (this.currentTarget) {\n if (this.currentTarget.className === 'e-pdfviewer-signatureformfields-signature' && !(this.pdfViewer.formDesignerModule)) {\n document.getElementById(this.currentTarget.id).focus();\n this.pdfViewer.select([this.currentTarget.id], null);\n }\n else if (this.currentTarget.className === 'e-pdfviewer-signatureformfields' || this.currentTarget.className === 'e-pdfviewer-signatureformfields-signature') {\n if (this.pdfViewer.formDesignerModule) {\n document.getElementById(this.currentTarget.id).parentElement.focus();\n }\n else {\n document.getElementById(this.currentTarget.id).focus();\n }\n }\n }\n }\n };\n /**\n * @private\n */\n FormFields.prototype.setFocus = function (id) {\n if (!id) {\n if (this.currentTarget) {\n document.getElementById(this.currentTarget.id).focus();\n }\n }\n else {\n this.removeFocus();\n var signatureElement = document.getElementById(id);\n signatureElement.classList.add('e-pv-signature-focus');\n }\n };\n /**\n * @private\n */\n FormFields.prototype.removeFocus = function () {\n if (this.signatureFieldCollection) {\n // eslint-disable-next-line\n var signatureFields = this.signatureFieldCollection;\n if (signatureFields.length === 0) {\n signatureFields = this.getSignField();\n }\n for (var i = 0; i < this.signatureFieldCollection.length; i++) {\n var signatureFieldId = this.pdfViewer.formDesignerModule ? this.signatureFieldCollection[i].FormField.uniqueID : this.signatureFieldCollection[i].uniqueID;\n var signatureElement = document.getElementById(signatureFieldId);\n if (signatureElement) {\n signatureElement.classList.remove('e-pv-signature-focus');\n }\n }\n if (this.pdfViewer.formFieldsModule.currentTarget) {\n this.pdfViewer.formFieldsModule.currentTarget.classList.remove('e-pv-signature-focus');\n }\n }\n };\n // eslint-disable-next-line\n FormFields.prototype.getSignField = function () {\n if (this.pdfViewer.formDesignerModule) {\n this.signatureFieldCollection =\n this.pdfViewer.formDesignerModule.getFormDesignerSignField(this.signatureFieldCollection);\n }\n else {\n this.signatureFieldCollection = this.getFormFieldSignField();\n }\n return this.signatureFieldCollection;\n };\n FormFields.prototype.getFormFieldSignField = function () {\n // eslint-disable-next-line\n var data = this.pdfViewerBase.getItemFromSessionStorage('_formfields');\n // eslint-disable-next-line\n var currentData;\n if (data) {\n // eslint-disable-next-line\n var formFieldsData = JSON.parse(data);\n for (var i = 0; i < formFieldsData.length; i++) {\n currentData = formFieldsData[i];\n if (currentData.Name === 'SignatureField' || currentData.Name === 'InitialField') {\n // eslint-disable-next-line\n currentData['uniqueID'] = this.pdfViewer.element.id + 'input_' + currentData.PageIndex + '_' + i;\n this.signatureFieldCollection.push(formFieldsData[i]);\n }\n }\n }\n return this.signatureFieldCollection;\n };\n /**\n * @private\n */\n FormFields.prototype.formFieldCollections = function () {\n // eslint-disable-next-line\n var data = this.pdfViewerBase.getItemFromSessionStorage('_formfields');\n if (data) {\n // eslint-disable-next-line\n var formFieldsData = JSON.parse(data);\n for (var i = 0; i < formFieldsData.length; i++) {\n // eslint-disable-next-line\n var currentData = formFieldsData[i];\n // eslint-disable-next-line\n var type = currentData['Name'];\n if (this.pdfViewer.formDesignerModule) {\n if (currentData.Name !== 'ink' && currentData.Name !== 'SignatureImage' && currentData.Name !== 'SignatureText') {\n this.retreiveFormFieldsData(currentData, true);\n }\n }\n else {\n if (currentData.Name !== 'ink') {\n // eslint-disable-next-line\n var formFieldCollection = { name: this.retriveFieldName(currentData), id: this.pdfViewer.element.id + 'input_' + parseFloat(currentData['PageIndex']) + '_' + i, isReadOnly: false, type: currentData.IsInitialField ? 'InitialField' : type, value: this.retriveCurrentValue(currentData), fontName: '', isRequired: currentData.IsRequired };\n this.pdfViewer.formFieldCollections.push(formFieldCollection);\n }\n }\n }\n }\n };\n FormFields.prototype.retreiveFormFieldsData = function (currentData, isCollection) {\n var fontFamily;\n var fontStyle;\n var fontSize;\n if (currentData.FieldName !== '') {\n if (currentData.IsInitialField) {\n currentData.Name = 'InitialField';\n }\n // eslint-disable-next-line\n var font = currentData['Font'];\n if (font !== null && font.Height) {\n fontFamily = font.Name;\n if (font.Italic) {\n fontStyle = 'Italic';\n }\n if (font.Bold) {\n fontStyle = 'Bold';\n }\n if (font.Strikeout) {\n fontStyle = 'Strikethrough';\n }\n if (font.Underline) {\n fontStyle = 'Underline';\n }\n fontSize = this.ConvertPointToPixel(font.Size);\n }\n var textAlignment = currentData.Alignment === 2 ? 'right' : (currentData.Alignment === 1 ? 'center' : 'left');\n var backgroundColor = currentData['BackColor'];\n var bounds = currentData['LineBounds'];\n var backColor = 'rgba(' + backgroundColor.R + ',' + backgroundColor.G + ',' + backgroundColor.B + ',' + 1 + ')';\n backColor = this.rgbaToHex(backColor);\n // set default color if field have black color as bg.\n if (currentData.IsTransparent === true) {\n backColor = \"rgba(0,0,0,0)\";\n }\n else if (backColor === '#000000ff') {\n backColor = '#daeaf7ff';\n }\n // eslint-disable-next-line\n var fontColor = currentData['FontColor'];\n var left = this.ConvertPointToPixel(bounds.X);\n var top_2 = this.ConvertPointToPixel(bounds.Y);\n var width = this.ConvertPointToPixel(bounds.Width);\n var height = this.ConvertPointToPixel(bounds.Height);\n var boundArray = { left: left, top: top_2, width: width, height: height };\n var foreColor = 'rgba(' + fontColor.R + ',' + fontColor.G + ',' + fontColor.B + ',' + 1 + ')';\n foreColor = this.rgbaToHex(foreColor);\n var borderColor = currentData['BorderColor'];\n var borderRGB = 'rgba(' + borderColor.R + ',' + borderColor.G + ',' + borderColor.B + ',' + 1 + ')';\n borderRGB = this.rgbaToHex(borderRGB);\n var borderWidth = currentData['BorderWidth'];\n this.selectedIndex = [];\n var fieldProperties = {\n bounds: { X: boundArray.left, Y: boundArray.top, Width: boundArray.width, Height: boundArray.height }, pageNumber: parseFloat(currentData['PageIndex']) + 1, name: currentData['ActualFieldName'], tooltip: currentData['ToolTip'],\n value: currentData['Text'], isChecked: currentData['Selected'], isSelected: currentData['Selected'], fontFamily: fontFamily, fontStyle: fontStyle, backgroundColor: backColor, color: foreColor, borderColor: borderRGB, thickness: borderWidth, fontSize: fontSize, isMultiline: currentData.Multiline,\n isReadOnly: currentData['IsReadonly'], isRequired: currentData['IsRequired'], insertSpaces: currentData['InsertSpaces'], alignment: textAlignment, options: this.getListValues(currentData), selectedIndex: this.selectedIndex, maxLength: currentData.MaxLength, visibility: currentData.Visible === 1 ? \"hidden\" : \"visible\", font: { isItalic: !isNullOrUndefined(font) ? font.Italic : false, isBold: !isNullOrUndefined(font) ? font.Bold : false, isStrikeout: !isNullOrUndefined(font) ? font.Strikeout : false, isUnderline: !isNullOrUndefined(font) ? font.Underline : false }\n };\n if (currentData.Name === 'DropDown' || currentData.Name === 'ListBox') {\n fieldProperties.value = currentData['SelectedValue'];\n }\n // eslint-disable-next-line\n var fieldType = this.getFormFieldType(currentData);\n if (fieldType === 'SignatureField' || fieldType === 'InitialField') {\n this.addSignaturePath(currentData);\n if (this.isSignatureField) {\n fieldProperties.value = currentData.Value;\n }\n }\n var addedElement = this.pdfViewer.formDesignerModule.addFormField(fieldType, fieldProperties, isCollection);\n return addedElement;\n }\n return null;\n };\n /**\n * @param formField\n * @private\n */\n FormFields.prototype.updateFormFieldsCollection = function (formField) {\n var type = formField['Name'];\n var formFieldCollection = {\n name: this.retriveFieldName(formField), id: formField.uniqueID, isReadOnly: formField.IsReadonly, isRequired: formField.IsRequired, isSelected: type === 'CheckBox' ? false : formField.Selected,\n isChecked: type === 'RadioButton' ? false : formField.Selected, type: type, value: type === 'ListBox' || type === 'DropDown' ? formField.SelectedValue : formField.Value, fontName: formField.FontFamily ? formField.FontFamily : ''\n };\n this.pdfViewer.formFieldCollections[this.pdfViewer.formFieldCollections.findIndex(function (el) { return el.id === formFieldCollection.id; })] = formFieldCollection;\n };\n // eslint-disable-next-line\n FormFields.prototype.updateFormFieldValues = function (formFields) {\n this.readOnlyCollection.push(formFields.id);\n if (formFields) {\n // eslint-disable-next-line\n var currentElement = document.getElementById(formFields.id);\n if (currentElement) {\n if (formFields.isReadOnly) {\n currentElement.disabled = true;\n currentElement.style.backgroundColor = '';\n currentElement.style.cursor = 'default';\n }\n else {\n if (currentElement.style.backgroundColor === '') {\n currentElement.style.backgroundColor = 'rgba(0, 20, 200, 0.2)';\n }\n currentElement.disabled = false;\n currentElement.style.cursor = '';\n }\n }\n this.updateDataInSession(currentElement);\n }\n };\n /**\n * @param currentData\n * @private\n */\n // eslint-disable-next-line\n FormFields.prototype.retriveFieldName = function (currentData) {\n // eslint-disable-next-line\n var currentField;\n // eslint-disable-next-line\n switch (currentData['Name']) {\n case 'Textbox':\n case 'Password':\n case 'SignatureField':\n case 'InitialField':\n currentField = currentData.FieldName;\n break;\n case 'RadioButton':\n case 'CheckBox':\n currentField = currentData.GroupName;\n break;\n case 'DropDown':\n case 'ListBox':\n currentField = currentData.Text;\n break;\n }\n return currentField;\n };\n // eslint-disable-next-line\n FormFields.prototype.retriveCurrentValue = function (currentData) {\n // eslint-disable-next-line\n var currentField;\n // eslint-disable-next-line\n switch (currentData['Name']) {\n case 'Textbox':\n case 'Password':\n currentField = currentData.Text;\n break;\n case 'SignatureField':\n currentField = currentData.Value;\n break;\n case 'RadioButton':\n case 'CheckBox':\n currentField = currentData.Selected;\n break;\n case 'DropDown':\n currentField = currentData.SelectedValue;\n break;\n case 'ListBox':\n currentField = currentData.SelectedList;\n break;\n }\n return currentField;\n };\n // eslint-disable-next-line\n FormFields.prototype.getSignatureBounds = function (LineBounds, bounds, pageIndex) {\n // eslint-disable-next-line\n var pageDetails = this.pdfViewerBase.pageSize[pageIndex];\n // eslint-disable-next-line\n var bound = 0;\n switch (pageDetails.rotation) {\n case 0:\n bound = bounds;\n break;\n case 1:\n bound = { x: bounds.x + LineBounds.Width + (bounds.width / 3.5), y: pageDetails.width - LineBounds.X + (bounds.height / 4) };\n break;\n case 2:\n bound = { x: pageDetails.width - bounds.x - bounds.width, y: pageDetails.height - bounds.y - bounds.height };\n break;\n case 3:\n bound = { x: bounds.y - (bounds.width / 2) + bounds.height, y: bounds.x + (bounds.width / 3) };\n break;\n }\n return bound;\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n FormFields.prototype.downloadFormFieldsData = function () {\n // eslint-disable-next-line\n var data = this.pdfViewerBase.getItemFromSessionStorage('_formfields');\n if (data) {\n // eslint-disable-next-line\n var formFieldsData = JSON.parse(data);\n // eslint-disable-next-line\n var datas = {};\n var fieldDatas = [];\n for (var m = 0; m < formFieldsData.length; m++) {\n // eslint-disable-next-line\n var currentData = formFieldsData[m];\n var isRequired = currentData.IsRequired;\n if (currentData.Name === 'Textbox' || currentData.Name === 'Password' || currentData.Multiline) {\n if (isRequired && (currentData.Text === '' || currentData.Text === null)) {\n this.pdfViewerBase.validateForm = true;\n this.pdfViewerBase.nonFillableFields[currentData.FieldName] = currentData.Text;\n }\n else {\n delete (this.pdfViewerBase.nonFillableFields[currentData.FieldName]);\n }\n fieldDatas = { fieldValue: currentData.Text, isReadOnly: currentData.IsReadonly };\n datas[currentData.FieldName] = fieldDatas;\n }\n else if (currentData.Name === 'RadioButton' && currentData.Selected) {\n if (isRequired && currentData.Selected === false) {\n this.pdfViewerBase.validateForm = true;\n this.pdfViewerBase.nonFillableFields[currentData.GroupName] = currentData.Value;\n }\n else {\n delete (this.pdfViewerBase.nonFillableFields[currentData.GroupName]);\n }\n fieldDatas = { fieldValue: currentData.Value, isReadOnly: currentData.IsReadonly };\n datas[currentData.GroupName] = fieldDatas;\n }\n else if (currentData.Name === 'CheckBox') {\n if (isRequired && currentData.Selected === false) {\n this.pdfViewerBase.validateForm = true;\n this.pdfViewerBase.nonFillableFields[currentData.GroupName] = currentData.Selected;\n }\n else {\n delete (this.pdfViewerBase.nonFillableFields[currentData.GroupName]);\n }\n if (currentData.CheckboxIndex && currentData.Selected) {\n fieldDatas = { fieldValue: currentData.CheckboxIndex, isReadOnly: currentData.IsReadonly };\n datas[currentData.GroupName] = fieldDatas;\n }\n else if (datas[currentData.GroupName] === undefined || datas[currentData.GroupName] === null) {\n fieldDatas = { fieldValue: currentData.Selected, isReadOnly: currentData.IsReadonly };\n datas[currentData.GroupName] = fieldDatas;\n }\n }\n else if (currentData.Name === 'DropDown') {\n if (isRequired && currentData.SelectedValue === '') {\n this.pdfViewerBase.validateForm = true;\n this.pdfViewerBase.nonFillableFields[currentData.Text] = currentData.SelectedValue;\n }\n else {\n delete (this.pdfViewerBase.nonFillableFields[currentData.Text]);\n }\n fieldDatas = { fieldValue: currentData.SelectedValue, isReadOnly: currentData.IsReadonly };\n datas[currentData.Text] = fieldDatas;\n }\n else if (currentData.Name === 'ListBox') {\n // eslint-disable-next-line\n var childItems = currentData['TextList'];\n var childItemsText = [];\n for (var m_1 = 0; m_1 < currentData.SelectedList.length; m_1++) {\n // eslint-disable-next-line\n var currentElement = currentData.SelectedList[m_1];\n childItemsText.push(childItems[currentElement]);\n }\n fieldDatas = { fieldValue: JSON.stringify(childItemsText), isReadOnly: currentData.IsReadonly };\n datas[currentData.Text] = fieldDatas;\n }\n else if (currentData.Name === 'SignatureField' || currentData.Name === 'InitialField') {\n // eslint-disable-next-line\n var csData = void 0;\n if (currentData.Value === null || currentData.Value === '') {\n this.addSignaturePath(currentData);\n }\n if (currentData.Value && currentData.Value !== '') {\n csData = currentData.Value;\n var fontFamily = currentData.fontFamily ? currentData.fontFamily : currentData.FontFamily;\n if (fontFamily) {\n datas[currentData.FieldName + 'fontName'] = fontFamily;\n datas[currentData.FieldName + 'fontSize'] = currentData.fontSize ? currentData.fontSize : currentData.FontSize;\n }\n else if (currentData.Value.split('base64,')[1]) {\n datas[currentData.FieldName + 'ImageData'] = true;\n }\n else {\n // eslint-disable-next-line\n var collectionData = processPathData(currentData.Value);\n csData = splitArrayCollection(collectionData);\n }\n }\n if (isRequired && currentData.Value === null || currentData.Value === '') {\n this.pdfViewerBase.validateForm = true;\n this.pdfViewerBase.nonFillableFields[currentData.FieldName] = JSON.stringify(csData);\n }\n else {\n delete (this.pdfViewerBase.nonFillableFields[currentData.FieldName]);\n }\n datas[currentData.FieldName] = JSON.stringify(csData);\n if (currentData.Bounds) {\n // eslint-disable-next-line\n var bounds = this.getSignatureBounds(currentData.LineBounds, currentData.Bounds, currentData.PageIndex);\n currentData.Bounds.x = bounds.x;\n currentData.Bounds.y = bounds.y;\n datas[currentData.FieldName + 'bounds'] = JSON.stringify(currentData.Bounds);\n }\n else {\n // eslint-disable-next-line\n var lineBounds = currentData.LineBounds;\n // eslint-disable-next-line\n var bounds = { x: this.ConvertPointToPixel(lineBounds.X), y: this.ConvertPointToPixel(lineBounds.Y), width: this.ConvertPointToPixel(lineBounds.Width), height: this.ConvertPointToPixel(lineBounds.Height) };\n datas[currentData.FieldName + 'bounds'] = JSON.stringify(bounds);\n }\n datas[currentData.FieldName + 'isReadOnly'] = currentData.IsReadonly;\n }\n }\n return (JSON.stringify(datas));\n }\n };\n FormFields.prototype.focusFormFields = function (event) {\n // eslint-disable-next-line\n var currentTarget = event.target;\n // eslint-disable-next-line\n if (currentTarget && (currentTarget.className !== 'e-pdfviewer-signatureformfields' && currentTarget.className !== 'e-pdfviewer-signatureformfields e-pv-signature-focus')) {\n // eslint-disable-next-line\n var backgroundcolor = currentTarget.style.backgroundColor;\n // eslint-disable-next-line\n var currentIndex = backgroundcolor.lastIndexOf(',');\n // eslint-disable-next-line\n var currentColor = backgroundcolor.slice(0, currentIndex + 1) + 0 + ')';\n currentTarget.style.backgroundColor = currentColor;\n if (currentTarget.type === 'checkbox') {\n currentTarget.style.webkitAppearance = '';\n }\n currentTarget.style.boxShadow = \"0 0 5px \" + (currentTarget.style.borderColor === 'transparent' ? '#000000' : currentTarget.style.borderColor);\n }\n else if (currentTarget) {\n // eslint-disable-next-line\n if (currentTarget.className === 'e-pdfviewer-signatureformfields' || currentTarget.className === 'e-pdfviewer-signatureformfields-signature' || currentTarget.className === 'e-pdfviewer-signatureformfields e-pv-signature-focus' || currentTarget.className === 'e-pdfviewer-signatureformfields-signature e-pv-signature-focus') {\n this.setFocus(currentTarget.id);\n }\n }\n };\n FormFields.prototype.blurFormFields = function (event) {\n // eslint-disable-next-line\n var currentTarget = event.target;\n if (currentTarget.InsertSpaces && this.isKeyDownCheck) {\n // eslint-disable-next-line\n var font = parseInt(currentTarget.style.width) - (parseInt(currentTarget.style.height) / 2);\n currentTarget.style.width = '' + font + 'px';\n this.isKeyDownCheck = false;\n }\n if (currentTarget.type === 'checkbox') {\n this.pdfViewer.fireFocusOutFormField(currentTarget.name, currentTarget.checked);\n }\n else {\n this.pdfViewer.fireFocusOutFormField(currentTarget.name, currentTarget.value);\n }\n // eslint-disable-next-line\n var backgroundcolor = currentTarget.style.backgroundColor;\n // eslint-disable-next-line\n var currentIndex = backgroundcolor.lastIndexOf(',');\n // eslint-disable-next-line\n var currentColor = backgroundcolor.slice(0, currentIndex + 1) + 0.2 + ')';\n currentTarget.style.backgroundColor = currentColor;\n currentTarget.style.boxShadow = 'none';\n if ((currentTarget.type === 'checkbox') && !currentTarget.checked) {\n currentTarget.style.webkitAppearance = 'none';\n }\n else {\n currentTarget.style.webkitAppearance = '';\n }\n };\n FormFields.prototype.updateFormFields = function (event) {\n // eslint-disable-next-line\n var currentTarget = event.target;\n if (currentTarget.className === 'e-pdfviewer-ListBox') {\n currentTarget = currentTarget.parentElement;\n this.updateDataInSession(currentTarget);\n }\n else if (currentTarget.className === 'e-pdfviewer-signatureformfields' || currentTarget.className === 'e-pdfviewer-signatureformfields e-pv-signature-focus') {\n this.currentTarget = currentTarget;\n }\n else if (currentTarget.className === 'e-pv-buttonItem' || currentTarget.type === 'button') {\n this.pdfViewer.fireButtonFieldClickEvent(currentTarget.value, currentTarget.name, currentTarget.id);\n }\n for (var m = 0; m < this.pdfViewer.formFieldCollections.length; m++) {\n if (currentTarget.id === this.pdfViewer.formFieldCollections[m].id) {\n if (this.pdfViewer.formDesignerModule || this.pdfViewer.annotationModule) {\n this.pdfViewer.fireFormFieldClickEvent('formFieldClicked', this.pdfViewer.formFieldCollections[m]);\n }\n // eslint-disable-next-line\n if (currentTarget.className === 'e-pdfviewer-signatureformfields' || currentTarget.className === 'e-pdfviewer-signatureformfields-signature' || currentTarget.className === 'e-pdfviewer-signatureformfields e-pv-signature-focus' || currentTarget.className === 'e-pdfviewer-signatureformfields-signature e-pv-signature-focus') {\n this.setFocus(currentTarget.id);\n }\n }\n }\n };\n /**\n * @param signatureType\n * @param value\n * @param target\n * @param fontname\n * @param signatureType\n * @param value\n * @param target\n * @param fontname\n * @private\n */\n // eslint-disable-next-line\n FormFields.prototype.drawSignature = function (signatureType, value, target, fontname) {\n var annot;\n // eslint-disable-next-line\n var proxy = this;\n var bounds;\n var targetBounds;\n var parentElementBounds;\n var data;\n if (this.pdfViewer.formDesigner) {\n data = this.pdfViewerBase.getItemFromSessionStorage('_formDesigner');\n }\n else {\n data = this.pdfViewerBase.getItemFromSessionStorage('_formfields');\n }\n var formFieldsData = JSON.parse(data);\n if (this.pdfViewer.formDesignerModule) {\n var targetName = this.currentTarget && this.currentTarget.offsetParent ? this.currentTarget.offsetParent.name : this.currentTarget ? this.currentTarget.name : target.name ? target.name : target.offsetParent.name;\n }\n else {\n var targetName = this.currentTarget ? this.currentTarget.name : target.name ? target.name : target.offsetParent.name;\n }\n var _loop_2 = function () {\n var fieldName = this_2.pdfViewer.formDesigner ? formFieldsData[i].FormField.name : formFieldsData[i].FieldName;\n if (this_2.pdfViewer.formDesigner ? fieldName === targetName : fieldName === targetName && (!isNullOrUndefined(formFieldsData[i].ActualFieldName))) {\n target = this_2.pdfViewer.formDesigner ? document.getElementById(formFieldsData[i].Key.split(\"_\")[0]) : document.getElementById(formFieldsData[i].uniqueID);\n // eslint-disable-next-line\n var currentField_1 = target;\n var elementId = currentField_1.offsetParent.offsetParent.id.split(\"_\")[0];\n var signatureField_1 = this_2.pdfViewer.nameTable[elementId];\n if (target && target.offsetParent && signatureField_1) {\n targetBounds = target.getBoundingClientRect();\n parentElementBounds = target.offsetParent.offsetParent.offsetParent.getBoundingClientRect();\n this_2.pdfViewerBase.drawSignatureWithTool = true;\n if (target.nextSibling && target.nextSibling.id.indexOf(\"initial\") !== -1) {\n this_2.pdfViewer.isInitialFieldToolbarSelection = true;\n }\n }\n var currentValue_1 = value ? value : this_2.pdfViewerBase.signatureModule.outputString;\n var currentFont = fontname ? fontname : this_2.pdfViewerBase.signatureModule.fontName;\n var zoomvalue = this_2.pdfViewerBase.getZoomFactor();\n var currentWidth = this_2.pdfViewerBase.drawSignatureWithTool ? targetBounds.width / zoomvalue : parseFloat(currentField_1.style.width) / zoomvalue;\n var currentHeight = this_2.pdfViewerBase.drawSignatureWithTool ? targetBounds.height / zoomvalue : parseFloat(currentField_1.style.height) / zoomvalue;\n var currentLeft = this_2.pdfViewerBase.drawSignatureWithTool ? ((targetBounds.left - parentElementBounds.left)) / zoomvalue : parseFloat(currentField_1.style.left) / zoomvalue;\n var currentTop = this_2.pdfViewerBase.drawSignatureWithTool ? ((targetBounds.top - parentElementBounds.top)) / zoomvalue : parseFloat(currentField_1.style.top) / zoomvalue;\n var currentPage_1 = this_2.pdfViewerBase.drawSignatureWithTool ? target.nextElementSibling ? parseFloat(target.nextElementSibling.id.split(\"_\")[1]) : parseFloat(currentField_1.id.split('_')[1]) : parseFloat(currentField_1.id.split('_')[1]);\n var currentIndex = this_2.pdfViewerBase.drawSignatureWithTool ? target.nextElementSibling ? parseFloat(target.nextElementSibling.id.split('_')[2]) : parseFloat(currentField_1.id.split('_')[2]) : parseFloat(currentField_1.id.split('_')[2]);\n var signString_1 = this_2.pdfViewerBase.signatureModule.saveImageString;\n var signatureFontFamily_1;\n var signatureFontSize_1;\n var rotateAngleString = currentField_1.offsetParent.offsetParent.style.transform ? currentField_1.offsetParent.offsetParent.style.transform : currentField_1.style.transform;\n rotateAngleString = rotateAngleString.substring(rotateAngleString.indexOf(\"(\") + 1, rotateAngleString.indexOf(\"d\"));\n var rotateAngle_1 = rotateAngleString ? parseInt(rotateAngleString) : 0;\n if (signatureType === 'Type') {\n if (!currentFont) {\n currentFont = 'Helvetica';\n }\n // eslint-disable-next-line\n bounds = this_2.getSignBounds(currentIndex, rotateAngle_1, currentPage_1, zoomvalue, currentLeft, currentTop, currentWidth, currentHeight);\n if (this_2.pdfViewer.signatureFitMode === 'Default') {\n bounds = this_2.getDefaultBoundsforSign(bounds);\n }\n annot = {\n // eslint-disable-next-line max-len\n id: currentField_1.id, bounds: { x: bounds.x, y: bounds.y, width: bounds.width, height: bounds.height }, pageIndex: currentPage_1, data: currentValue_1, modifiedDate: '',\n shapeAnnotationType: 'SignatureText', opacity: 1, rotateAngle: rotateAngle_1, annotName: 'SignatureText', comments: [], review: { state: '', stateModel: '', modifiedDate: '', author: '' }, fontFamily: currentFont, fontSize: rotateAngle_1 === 90 || rotateAngle_1 === 270 ? (bounds.width / 1.35) : (bounds.height / 1.35)\n };\n if (annot.shapeAnnotationType === 'SignatureText') {\n var textWidth = this_2.getTextWidth(annot.data, annot.fontSize, annot.fontFamily);\n var widthRatio = 1;\n if (textWidth > bounds.width)\n widthRatio = bounds.width / textWidth;\n annot.fontSize = this_2.getFontSize(Math.floor((annot.fontSize * widthRatio)));\n }\n signString_1 = annot.data;\n signatureFontFamily_1 = annot.fontFamily;\n signatureFontSize_1 = annot.fontSize;\n }\n else if (signatureType === 'Image') {\n // eslint-disable-next-line\n bounds = this_2.getSignBounds(currentIndex, rotateAngle_1, currentPage_1, zoomvalue, currentLeft, currentTop, currentWidth, currentHeight);\n var image_1 = new Image();\n image_1.src = currentValue_1;\n image_1.onload = function () {\n proxy.imageOnLoad(bounds, image_1, currentValue_1, currentPage_1, rotateAngle_1, currentField_1, signatureField_1, signString_1, signatureFontFamily_1, signatureFontSize_1, target);\n };\n }\n else {\n if ((currentValue_1.indexOf('base64')) !== -1) {\n // eslint-disable-next-line\n bounds = this_2.getSignBounds(currentIndex, rotateAngle_1, currentPage_1, zoomvalue, currentLeft, currentTop, currentWidth, currentHeight);\n if (this_2.pdfViewer.signatureFitMode === 'Default') {\n bounds = this_2.getDefaultBoundsforSign(bounds);\n }\n annot = {\n // eslint-disable-next-line max-len\n id: currentField_1.id, bounds: { x: bounds.x, y: bounds.y, width: bounds.width, height: bounds.height }, pageIndex: currentPage_1, data: currentValue_1, modifiedDate: '',\n shapeAnnotationType: 'SignatureImage', opacity: 1, rotateAngle: rotateAngle_1, annotName: 'SignatureField', comments: [], review: { state: '', stateModel: '', modifiedDate: '', author: '' }\n };\n signString_1 = annot.data;\n }\n else {\n // eslint-disable-next-line\n if (this_2.pdfViewer.signatureFitMode === 'Default') {\n // eslint-disable-next-line\n var signatureBounds = this_2.updateSignatureAspectRatio(currentValue_1, false, currentField_1);\n // eslint-disable-next-line\n bounds = this_2.getSignBounds(currentIndex, rotateAngle_1, currentPage_1, zoomvalue, currentLeft, currentTop, signatureBounds.width, signatureBounds.height, true);\n bounds.x = bounds.x + signatureBounds.left;\n bounds.y = bounds.y + signatureBounds.top;\n }\n else {\n bounds = this_2.getSignBounds(currentIndex, rotateAngle_1, currentPage_1, zoomvalue, currentLeft, currentTop, currentWidth, currentHeight);\n }\n annot = {\n // eslint-disable-next-line max-len\n id: currentField_1.id, bounds: { x: bounds.x, y: bounds.y, width: bounds.width, height: bounds.height }, pageIndex: currentPage_1, data: currentValue_1, modifiedDate: '',\n shapeAnnotationType: 'Path', opacity: 1, rotateAngle: rotateAngle_1, annotName: 'SignatureField', comments: [], review: { state: '', stateModel: '', modifiedDate: '', author: '' }\n };\n }\n }\n if (this_2.pdfViewerBase.drawSignatureWithTool && signatureField_1 && signatureType !== 'Image') {\n annot.id = signatureField_1.id + \"_content\";\n var obj = this_2.pdfViewer.add(annot);\n signatureField_1.wrapper.children.push(obj.wrapper);\n }\n else if (signatureType !== 'Image') {\n this_2.pdfViewer.add(annot);\n }\n if (annot && annot.shapeAnnotationType === 'Path' && currentValue_1 !== '') {\n this_2.pdfViewerBase.currentSignatureAnnot = annot;\n // eslint-disable-next-line\n var position = { currentHeight: currentHeight, currentWidth: currentWidth, currentLeft: currentLeft, currentTop: currentTop };\n this_2.pdfViewerBase.signatureModule.addSignatureCollection(bounds, position);\n signString_1 = this_2.pdfViewerBase.signatureModule.saveImageString;\n this_2.pdfViewerBase.currentSignatureAnnot = null;\n }\n if (signatureType !== 'Image') {\n // eslint-disable-next-line\n var canvass = document.getElementById(this_2.pdfViewer.element.id + '_annotationCanvas_' + currentPage_1);\n // eslint-disable-next-line\n this_2.pdfViewer.renderDrawing(canvass, currentPage_1);\n this_2.pdfViewerBase.signatureModule.showSignatureDialog(false);\n if (currentField_1.className === 'e-pdfviewer-signatureformfields e-pv-signature-focus') {\n currentField_1.className = 'e-pdfviewer-signatureformfields-signature e-pv-signature-focus';\n }\n else {\n currentField_1.className = 'e-pdfviewer-signatureformfields-signature';\n }\n if (this_2.pdfViewerBase.drawSignatureWithTool && signatureField_1) {\n var key = target.offsetParent.offsetParent.id.split('_')[0] + '_content';\n annot.bounds = { x: bounds.x * zoomvalue, y: bounds.y * zoomvalue, width: bounds.width * zoomvalue, height: bounds.height * zoomvalue };\n this_2.updateSignatureDataInSession(annot, key);\n }\n else {\n this_2.updateDataInSession(currentField_1, annot.data, annot.bounds, signatureFontFamily_1, signatureFontSize_1);\n }\n currentField_1.style.pointerEvents = 'none';\n if (this_2.pdfViewer.annotation) {\n this_2.pdfViewer.annotation.addAction(annot.pageIndex, null, annot, 'FormField Value Change', '', annot, annot);\n }\n // eslint-disable-next-line\n if (annot.shapeAnnotationType === 'Path' || annot.shapeAnnotationType === \"SignatureText\") {\n this_2.pdfViewer.fireSignatureAdd(annot.pageIndex, annot.id, annot.shapeAnnotationType, annot.bounds, annot.opacity, null, null, signString_1);\n }\n this_2.pdfViewer.fireFocusOutFormField(currentField_1.name, currentValue_1);\n }\n }\n };\n var this_2 = this;\n for (var i = 0; i < formFieldsData.length; i++) {\n _loop_2();\n }\n if (signatureType !== 'Image') {\n this.pdfViewerBase.signatureModule.hideSignaturePanel();\n this.pdfViewerBase.drawSignatureWithTool = false;\n this.pdfViewer.isInitialFieldToolbarSelection = false;\n }\n };\n // EJ2-62918- Image signature width is wrong while adding programmatically and it is fixed by adding an onload event.\n // A function was added and it was called\n FormFields.prototype.imageOnLoad = function (bounds, image, currentValue, currentPage, rotateAngle, currentField, signatureField, signString, signatureFontFamily, signatureFontSize, target) {\n if (target && target.offsetParent && signatureField) {\n this.pdfViewerBase.drawSignatureWithTool = true;\n if (target.nextSibling && target.nextSibling.id.indexOf(\"initial\") !== -1) {\n this.pdfViewer.isInitialFieldToolbarSelection = true;\n }\n }\n var annot;\n if (this.pdfViewer.signatureFitMode === 'Default') {\n {\n var padding = Math.min(bounds.height / this.paddingDifferenceValue, bounds.width / this.paddingDifferenceValue);\n var maxHeight = bounds.height - padding;\n var maxWidth = bounds.width - padding;\n var imageWidth = image.width;\n var imageHeight = image.height;\n var beforeWidth = bounds.width;\n var beforeHeight = bounds.height;\n var ratio = Math.min(maxWidth / imageWidth, maxHeight / imageHeight);\n bounds.width = imageWidth * ratio;\n bounds.height = imageHeight * ratio;\n bounds.x = bounds.x + (beforeWidth - bounds.width) / 2;\n bounds.y = bounds.y + (beforeHeight - bounds.height) / 2;\n }\n annot = {\n // eslint-disable-next-line max-len\n id: currentField.id, bounds: { x: bounds.x, y: bounds.y, width: bounds.width, height: bounds.height }, pageIndex: currentPage, data: currentValue, modifiedDate: '',\n shapeAnnotationType: 'SignatureImage', opacity: 1, rotateAngle: rotateAngle, annotName: 'SignatureField', comments: [], review: { state: '', stateModel: '', modifiedDate: '', author: '' }\n };\n signString = annot.data;\n if (this.pdfViewerBase.drawSignatureWithTool && signatureField) {\n annot.id = signatureField.id + \"_content\";\n var obj = this.pdfViewer.add(annot);\n signatureField.wrapper.children.push(obj.wrapper);\n }\n else {\n this.pdfViewer.add(annot);\n }\n var canvass = document.getElementById(this.pdfViewer.element.id + '_annotationCanvas_' + currentPage);\n // eslint-disable-next-line\n this.pdfViewer.renderDrawing(canvass, currentPage);\n this.pdfViewerBase.signatureModule.showSignatureDialog(false);\n if (currentField.className === 'e-pdfviewer-signatureformfields e-pv-signature-focus') {\n currentField.className = 'e-pdfviewer-signatureformfields-signature e-pv-signature-focus';\n }\n else {\n currentField.className = 'e-pdfviewer-signatureformfields-signature';\n }\n if (this.pdfViewerBase.drawSignatureWithTool && signatureField) {\n var zoomvalue = this.pdfViewerBase.getZoomFactor();\n var key = target.offsetParent.offsetParent.id.split('_')[0] + '_content';\n annot.bounds = { x: bounds.x * zoomvalue, y: bounds.y * zoomvalue, width: bounds.width * zoomvalue, height: bounds.height * zoomvalue };\n this.updateSignatureDataInSession(annot, key);\n }\n else {\n this.updateDataInSession(currentField, annot.data, annot.bounds, signatureFontFamily, signatureFontSize);\n }\n currentField.style.pointerEvents = 'none';\n if (this.pdfViewer.annotation) {\n this.pdfViewer.annotation.addAction(annot.pageIndex, null, annot, 'FormField Value Change', '', annot, annot);\n }\n // eslint-disable-next-line\n if (annot.shapeAnnotationType === \"SignatureImage\") {\n this.pdfViewer.fireSignatureAdd(annot.pageIndex, annot.id, annot.shapeAnnotationType, annot.bounds, annot.opacity, null, null, signString);\n }\n this.pdfViewer.fireFocusOutFormField(currentField.name, currentValue);\n }\n this.pdfViewerBase.signatureModule.hideSignaturePanel();\n this.pdfViewerBase.drawSignatureWithTool = false;\n this.pdfViewer.isInitialFieldToolbarSelection = false;\n };\n FormFields.prototype.updateSignatureDataInSession = function (annot, key) {\n var data = this.pdfViewerBase.getItemFromSessionStorage('_formDesigner');\n var formFieldsData = JSON.parse(data);\n if (!isNullOrUndefined(formFieldsData)) {\n var _loop_3 = function (i) {\n if (formFieldsData[i].Key === key) {\n var formFieldIndex = this_3.pdfViewer.formFieldCollection.findIndex(function (el) { return el.id === formFieldsData[i].FormField.id.split('_')[0]; });\n if (annot.shapeAnnotationType === \"SignatureText\") {\n formFieldsData[i].FormField.signatureType = \"Text\";\n this_3.pdfViewerBase.formFieldCollection[i].FormField.signatureType = \"Text\";\n this_3.pdfViewer.nameTable[key].signatureType = \"Text\";\n formFieldsData[i].FormField.fontFamily = annot.fontFamily === \"TimesRoman\" ? \"Times New Roman\" : annot.fontFamily;\n this_3.pdfViewerBase.formFieldCollection[i].FormField.fontFamily = annot.fontFamily;\n this_3.pdfViewer.nameTable[key].fontFamily = annot.fontFamily;\n formFieldsData[i].FormField.fontSize = annot.fontSize;\n this_3.pdfViewerBase.formFieldCollection[i].FormField.fontSize = annot.fontSize;\n this_3.pdfViewer.nameTable[key].fontSize = annot.fontSize;\n formFieldIndex > -1 ? this_3.pdfViewer.formFieldCollection[formFieldIndex].signatureType = \"Text\" : null;\n }\n else if (annot.shapeAnnotationType === \"SignatureImage\") {\n formFieldsData[i].FormField.signatureType = \"Image\";\n this_3.pdfViewerBase.formFieldCollection[i].FormField.signatureType = \"Image\";\n this_3.pdfViewer.nameTable[key].signatureType = \"Image\";\n formFieldIndex > -1 ? this_3.pdfViewer.formFieldCollection[formFieldIndex].signatureType = \"Image\" : null;\n }\n else {\n formFieldsData[i].FormField.signatureType = \"Path\";\n this_3.pdfViewerBase.formFieldCollection[i].FormField.signatureType = \"Path\";\n this_3.pdfViewer.nameTable[key].signatureType = \"Path\";\n formFieldIndex > -1 ? this_3.pdfViewer.formFieldCollection[formFieldIndex].signatureType = \"Path\" : null;\n }\n formFieldsData[i].FormField.signatureBound = annot.bounds;\n this_3.pdfViewerBase.formFieldCollection[i].FormField.signatureBound = annot.bounds;\n this_3.pdfViewer.nameTable[key].signatureBound = annot.bounds;\n formFieldIndex > -1 ? this_3.pdfViewer.formFieldCollection[formFieldIndex].signatureBound = annot.bounds : null;\n if (annot.shapeAnnotationType === \"Path\") {\n var collectionData = processPathData(annot.data);\n var csData = splitArrayCollection(collectionData);\n formFieldsData[i].FormField.value = JSON.stringify(csData);\n this_3.pdfViewer.nameTable[key].value = annot.data;\n this_3.pdfViewer.nameTable[key.split('_')[0]].value = annot.data;\n this_3.pdfViewerBase.formFieldCollection[i].FormField.value = JSON.stringify(csData);\n formFieldIndex > -1 ? this_3.pdfViewer.formFieldCollection[formFieldIndex].value = JSON.stringify(csData) : null;\n }\n else {\n formFieldsData[i].FormField.value = annot.data;\n this_3.pdfViewerBase.formFieldCollection[i].FormField.value = annot.data;\n this_3.pdfViewer.nameTable[key.split('_')[0]].value = annot.data;\n this_3.pdfViewer.nameTable[key].value = annot.data;\n formFieldIndex > -1 ? this_3.pdfViewer.formFieldCollection[formFieldIndex].value = annot.data : null;\n }\n this_3.pdfViewer.formDesigner.updateFormFieldCollections(formFieldsData[i].FormField);\n this_3.pdfViewer.formDesigner.updateFormFieldPropertiesChanges(\"formFieldPropertiesChange\", formFieldsData[i].FormField, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, \"\", formFieldsData[i].FormField.value);\n }\n };\n var this_3 = this;\n for (var i = 0; i < formFieldsData.length; i++) {\n _loop_3(i);\n }\n }\n this.pdfViewerBase.setItemInSessionStorage(formFieldsData, '_formDesigner');\n };\n /**\n * @private\n */\n FormFields.prototype.getDefaultBoundsforSign = function (bounds) {\n return { x: bounds.x + 4, y: bounds.y + 4, width: bounds.width - 8, height: bounds.height - 8 };\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n FormFields.prototype.getSignBounds = function (currentIndex, rotateAngle, currentPage, zoomvalue, currentLeft, currentTop, currentWidth, currentHeight, isDraw) {\n // eslint-disable-next-line\n var bounds;\n var signatureId = this.pdfViewer.isInitialFieldToolbarSelection ? 'initialIcon' : 'signIcon';\n var signIcon = document.getElementById(signatureId + '_' + currentPage + '_' + currentIndex);\n var signLeft = signIcon ? parseFloat(signIcon.style.left) * zoomvalue : 0;\n var difference = (currentLeft * zoomvalue) - (signLeft / zoomvalue);\n if (rotateAngle === 90 || rotateAngle === 270) {\n this.rotateAngle = 0;\n if (signIcon.style.left !== '') {\n if (isDraw) {\n return bounds = { x: currentLeft - (difference / zoomvalue) - zoomvalue, y: currentTop + (difference / zoomvalue) + zoomvalue, width: currentWidth, height: currentHeight };\n }\n else {\n return bounds = { x: currentLeft - (difference / zoomvalue) - zoomvalue, y: currentTop + (difference / zoomvalue) + zoomvalue, width: currentHeight, height: currentWidth };\n }\n }\n else {\n difference = 10;\n if (isDraw) {\n return bounds = { x: currentLeft - currentWidth, y: currentTop + currentWidth, width: currentHeight, height: currentWidth };\n }\n else {\n return bounds = { x: currentLeft - currentWidth - difference / 2, y: currentTop + currentWidth + difference, width: currentHeight, height: currentWidth };\n }\n }\n }\n else {\n this.rotateAngle = 0;\n return bounds = { x: currentLeft, y: currentTop, width: currentWidth, height: currentHeight };\n }\n };\n // eslint-disable-next-line\n FormFields.prototype.updateSameFieldsValue = function (event) {\n if (this.formFieldsData) {\n for (var i = 0; i < this.formFieldsData.length; i++) {\n // eslint-disable-next-line\n var currentField = this.formFieldsData[i];\n if (event.target.name === currentField.FieldName && event.target.id !== currentField.uniqueID) {\n // eslint-disable-next-line\n var currentTarget = document.getElementById(this.formFieldsData[i].uniqueID);\n if (currentTarget) {\n currentTarget.value = event.target.value;\n }\n else {\n currentField.Text = event.target.value;\n this.pdfViewerBase.setItemInSessionStorage(this.formFieldsData, '_formfields');\n }\n }\n }\n }\n };\n FormFields.prototype.updateFormFieldsValue = function (event) {\n // eslint-disable-next-line\n var currentTarget = event.target;\n var fieldIndex;\n var nextFields;\n if (currentTarget.InsertSpaces && !this.isKeyDownCheck) {\n // eslint-disable-next-line\n var font = parseInt(currentTarget.style.width) + (parseInt(currentTarget.style.height) / 2);\n currentTarget.style.width = '' + font + 'px';\n this.isKeyDownCheck = true;\n }\n if (event.which === 9 && currentTarget && (currentTarget.className === 'e-pdfviewer-formFields' || currentTarget.className === 'e-pdfviewer-signatureformfields e-pv-signature-focus' || currentTarget.className === 'e-pdfviewer-signatureformfields-signature')) {\n // eslint-disable-next-line\n var id = currentTarget.id.split('input_')[1].split('_')[0];\n // eslint-disable-next-line\n var textLayer = document.getElementById(this.pdfViewer.element.id + '_textLayer_' + parseInt(id));\n // eslint-disable-next-line\n var currentFields = textLayer.getElementsByClassName('e-pdfviewer-formFields');\n var istabindexed = true;\n fieldIndex = this.pdfViewer.formFieldCollections.findIndex(function (field) { return field.id === currentTarget.id; });\n if ((!event.shiftKey && event.key === \"Tab\")) {\n nextFields = fieldIndex + 1 < this.pdfViewer.formFieldCollections.length ? this.pdfViewer.formFieldCollections[fieldIndex + 1] : this.pdfViewer.formFieldCollections[0];\n }\n this.pdfViewer.focusFormField(nextFields);\n istabindexed = true;\n event.preventDefault();\n var tabindex = currentTarget.tabIndex + 1;\n while (!istabindexed) {\n for (var l = 0; l < currentFields.length; l++) {\n istabindexed = false;\n if (currentFields[l].tabIndex === (tabindex)) {\n currentFields[l].focus();\n istabindexed = true;\n event.preventDefault();\n break;\n }\n }\n if (this.maintainTabIndex[id] === tabindex) {\n istabindexed = true;\n }\n tabindex = tabindex + 1;\n }\n }\n if ((event.shiftKey && event.key === \"Tab\")) {\n var fieldIndex_1 = this.pdfViewer.formFieldCollections.findIndex(function (field) { return field.id === currentTarget.id; });\n var nextField = fieldIndex_1 > 0 ? this.pdfViewer.formFieldCollections[fieldIndex_1 - 1] : this.pdfViewer.formFieldCollections[this.pdfViewer.formFieldCollections.length - 1];\n this.pdfViewer.focusFormField(nextField);\n event.preventDefault();\n }\n if (event.currentTarget.classList.contains('e-pdfviewer-signatureformfields') ||\n event.currentTarget.classList.contains('e-pdfviewer-signatureformfields-signature')) {\n if (event.key === 'Enter') {\n // eslint-disable-next-line\n var currentTarget_1 = event.target;\n for (var m = 0; m < this.pdfViewer.formFieldCollections.length; m++) {\n if (currentTarget_1.id === this.pdfViewer.formFieldCollections[m].id) {\n this.setFocus(currentTarget_1.id);\n this.pdfViewer.fireFormFieldClickEvent('formFieldClicked', this.pdfViewer.formFieldCollections[m]);\n }\n }\n }\n else {\n event.preventDefault();\n }\n }\n };\n FormFields.prototype.changeFormFields = function (event) {\n // eslint-disable-next-line\n var currentTarget = event.target;\n this.updateDataInSession(currentTarget);\n };\n FormFields.prototype.calculateSignatureBounds = function (signatureCavasWidth, signatureCavasHeight, newdifferenceX, newdifferenceY, isSignature, currentField, currentData) {\n var ratioX = newdifferenceX / signatureCavasWidth;\n var ratioY = newdifferenceY / signatureCavasHeight;\n var zoomvalue = this.pdfViewerBase.getZoomFactor();\n var currentWidth = 0;\n var currentHeight = 0;\n var isSignatureStretched = false;\n var isHeightStretched = false;\n var leftDifference = 0;\n var topDifference = 0;\n if (isSignature) {\n currentWidth = this.pdfViewer.handWrittenSignatureSettings.width ? this.pdfViewer.handWrittenSignatureSettings.width : 150;\n currentHeight = this.pdfViewer.handWrittenSignatureSettings.height ? this.pdfViewer.handWrittenSignatureSettings.height : 100;\n }\n else {\n var fieldWidth = currentField ? currentField.style.width === '100%' ? currentField.clientWidth : parseFloat(currentField.style.width) : this.ConvertPointToPixel(currentData.LineBounds.Width);\n var fieldHeight = currentField ? currentField.style.height === '100%' ? currentField.clientHeight : parseFloat(currentField.style.height) : this.ConvertPointToPixel(currentData.LineBounds.Height);\n var fieldWidthRatio = fieldWidth / fieldHeight;\n var fieldHeightRatio = fieldHeight / fieldWidth;\n var canvasWidthRatio = signatureCavasWidth / signatureCavasHeight;\n var canvasHeightRatio = signatureCavasHeight / signatureCavasWidth;\n var fieldRotation = currentField ? currentField.offsetParent.offsetParent.style.transform ? currentField.offsetParent.offsetParent.style.transform : currentField.style.transform : currentData.RotationAngle;\n if ((fieldWidthRatio > canvasWidthRatio) || (fieldHeightRatio > canvasWidthRatio) || ((Math.abs(fieldWidthRatio - fieldHeightRatio)) <= 1)) {\n var ratioDifference = 0;\n if ((fieldHeightRatio > canvasWidthRatio) || ((Math.abs(fieldWidthRatio - fieldHeightRatio)) <= 1)) {\n isHeightStretched = true;\n ratioDifference = fieldHeightRatio / canvasHeightRatio;\n }\n else {\n isSignatureStretched = true;\n ratioDifference = fieldWidthRatio / canvasWidthRatio;\n }\n if (fieldRotation === 'rotate(90deg)' || fieldRotation === 'rotate(270deg)') {\n // eslint-disable-next-line\n currentWidth = fieldHeight / zoomvalue;\n // eslint-disable-next-line\n currentHeight = fieldWidth / zoomvalue;\n }\n else {\n if (isSignatureStretched) {\n // eslint-disable-next-line\n leftDifference = fieldWidth / zoomvalue;\n // eslint-disable-next-line\n currentWidth = (fieldWidth / ratioDifference) / zoomvalue;\n // eslint-disable-next-line\n currentHeight = fieldHeight / zoomvalue;\n }\n if (isHeightStretched) {\n // eslint-disable-next-line\n topDifference = fieldHeight / zoomvalue;\n // eslint-disable-next-line\n currentWidth = fieldWidth / zoomvalue;\n // eslint-disable-next-line\n currentHeight = (fieldHeight / ratioDifference) / zoomvalue;\n }\n }\n }\n else {\n if (fieldRotation === 'rotate(90deg)' || fieldRotation === 'rotate(270deg)') {\n // eslint-disable-next-line\n currentWidth = fieldHeight / zoomvalue;\n // eslint-disable-next-line\n currentHeight = fieldWidth / zoomvalue;\n }\n else {\n // eslint-disable-next-line\n currentWidth = fieldWidth / zoomvalue;\n // eslint-disable-next-line\n currentHeight = fieldHeight / zoomvalue;\n }\n }\n }\n var currentLeftDiff = (signatureCavasWidth - newdifferenceX) / 2;\n var currentTopDiff = (signatureCavasHeight - newdifferenceY) / 2;\n if (isSignatureStretched) {\n currentLeftDiff = (currentLeftDiff / signatureCavasWidth) * leftDifference;\n var leftValueDiff = ((leftDifference * ratioX) - (currentWidth * ratioX)) / 2;\n currentLeftDiff = currentLeftDiff + leftValueDiff;\n currentTopDiff = (currentTopDiff / signatureCavasHeight) * currentHeight;\n }\n else if (isHeightStretched) {\n currentLeftDiff = (currentLeftDiff / signatureCavasWidth) * currentWidth;\n currentTopDiff = (currentTopDiff / signatureCavasHeight) * topDifference;\n var topValueDiff = ((topDifference * ratioY) - (currentHeight * ratioY)) / 2;\n currentTopDiff = currentTopDiff + topValueDiff;\n }\n else {\n currentLeftDiff = (currentLeftDiff / signatureCavasWidth) * currentWidth;\n currentTopDiff = (currentTopDiff / signatureCavasHeight) * currentHeight;\n }\n currentWidth = currentWidth * ratioX;\n currentHeight = currentHeight * ratioY;\n return { currentLeftDiff: currentLeftDiff, currentTopDiff: currentTopDiff, currentWidth: currentWidth, currentHeight: currentHeight };\n };\n /**\n * @param data\n * @param isSignature\n * @param currentField\n * @param data\n * @param isSignature\n * @param currentField\n * @param data\n * @param isSignature\n * @param currentField\n * @private\n */\n // eslint-disable-next-line\n FormFields.prototype.updateSignatureAspectRatio = function (data, isSignature, currentField, currentData) {\n // eslint-disable-next-line\n var collectionData = processPathData(data);\n // eslint-disable-next-line\n var csData = splitArrayCollection(collectionData);\n var minimumX = -1;\n var minimumY = -1;\n var maximumX = -1;\n var maximumY = -1;\n var signatureCanvas = document.getElementById(this.pdfViewer.element.id + '_signatureCanvas_');\n var signatureCavasWidth = 0;\n var signatureCavasHeight = 0;\n for (var m = 0; m < csData.length; m++) {\n // eslint-disable-next-line\n var val = csData[m];\n if (minimumX === -1) {\n // eslint-disable-next-line\n minimumX = parseFloat(val['x'].toString());\n // eslint-disable-next-line\n maximumX = parseFloat(val['x'].toString());\n // eslint-disable-next-line\n minimumY = parseFloat(val['y'].toString());\n // eslint-disable-next-line\n maximumY = parseFloat(val['y'].toString());\n }\n else {\n // eslint-disable-next-line\n var point1 = parseFloat(val['x'].toString());\n // eslint-disable-next-line\n var point2 = parseFloat(val['y'].toString());\n if (minimumX >= point1) {\n minimumX = point1;\n }\n if (minimumY >= point2) {\n minimumY = point2;\n }\n if (maximumX <= point1) {\n maximumX = point1;\n }\n if (maximumY <= point2) {\n maximumY = point2;\n }\n }\n }\n signatureCavasWidth = signatureCanvas ? signatureCanvas.clientWidth : 650;\n signatureCavasHeight = signatureCanvas ? signatureCanvas.clientHeight : 300;\n var newdifferenceX = maximumX - minimumX;\n var newdifferenceY = maximumY - minimumY;\n var signBounds = this.calculateSignatureBounds(signatureCavasWidth, signatureCavasHeight, newdifferenceX, newdifferenceY, isSignature, currentField, currentData);\n if (isSignature) {\n var zoomvalue = this.pdfViewerBase.getZoomFactor();\n var pageIndex = this.pdfViewerBase.currentPageNumber - 1;\n var pageDiv = document.getElementById(this.pdfViewer.element.id + '_pageDiv_' + pageIndex);\n var currentLeft = ((parseFloat(pageDiv.style.width) / 2) - (signBounds.currentWidth / 2)) / zoomvalue;\n // eslint-disable-next-line max-len\n var currentTop = ((parseFloat(pageDiv.style.height) / 2) - (signBounds.currentHeight / 2)) / zoomvalue;\n return { x: currentLeft, y: currentTop, width: signBounds.currentWidth, height: signBounds.currentHeight };\n }\n else {\n return { left: signBounds.currentLeftDiff, top: signBounds.currentTopDiff, width: signBounds.currentWidth, height: signBounds.currentHeight };\n }\n };\n /**\n * @param target\n * @param signaturePath\n * @param signatureBounds\n * @param signatureFontFamily\n * @param signatureFontSize\n * @param target\n * @param signaturePath\n * @param signatureBounds\n * @param signatureFontFamily\n * @param signatureFontSize\n * @param target\n * @param signaturePath\n * @param signatureBounds\n * @param signatureFontFamily\n * @param signatureFontSize\n * @param target\n * @param signaturePath\n * @param signatureBounds\n * @param signatureFontFamily\n * @param signatureFontSize\n * @param target\n * @param signaturePath\n * @param signatureBounds\n * @param signatureFontFamily\n * @param signatureFontSize\n * @private\n */\n // eslint-disable-next-line\n FormFields.prototype.updateDataInSession = function (target, signaturePath, signatureBounds, signatureFontFamily, signatureFontSize) {\n this.pdfViewerBase.updateDocumentEditedProperty(true);\n // eslint-disable-next-line\n var filterFields = [];\n var fieldsByName = \" \";\n var filterFieldName = [];\n var filterArrayLength = 0;\n var data = this.pdfViewerBase.getItemFromSessionStorage('_formfields');\n if (data && !this.pdfViewer.formDesignerModule) {\n // eslint-disable-next-line\n var FormFieldsData = JSON.parse(data);\n filterFields = FormFieldsData.filter(function (item) { return item.uniqueID === target.id; });\n if (filterFields.length > 0) {\n fieldsByName = filterFields[0].FieldName;\n filterFieldName = FormFieldsData.filter(function (item) { return item.FieldName === fieldsByName; });\n filterArrayLength = filterFieldName.length;\n }\n for (var m = 0; m < FormFieldsData.length; m++) {\n // eslint-disable-next-line\n var currentData = FormFieldsData[m];\n if (currentData.uniqueID === target.id || fieldsByName === currentData.FieldName) {\n if (target && target.type === 'text' || target.type === 'password' || target.type === 'textarea') {\n var signField = target;\n if (signField.classList.contains('e-pdfviewer-signatureformfields') || signField.classList.contains('e-pdfviewer-signatureformfields-signature')) {\n if (signaturePath) {\n currentData.Value = signaturePath;\n }\n if (signatureBounds) {\n currentData.Bounds = signatureBounds;\n }\n if (signatureFontFamily) {\n currentData.FontFamily = signatureFontFamily;\n currentData.FontSize = signatureFontSize;\n }\n }\n else {\n currentData.Text = target.value;\n currentData.Value = target.value;\n }\n }\n else if (target.type === 'radio') {\n if (target.checked) {\n for (var l = 0; l < FormFieldsData.length; l++) {\n // eslint-disable-next-line\n var currentType = FormFieldsData[l];\n if (FormFieldsData[l].GroupName === target.name) {\n FormFieldsData[l].Selected = false;\n }\n }\n if (target.value == currentData.Value) {\n currentData.Selected = true;\n break;\n }\n else {\n currentData.Selected = false;\n }\n }\n }\n else if (target.type === 'checkbox') {\n var targetCheckBox = target.id;\n var filterCheckBoxSameName = FormFieldsData.filter(function (sameNameCheckboxField) { return (sameNameCheckboxField.GroupName === target.name) && sameNameCheckboxField.Name == 'CheckBox'; });\n for (var l = 0; l < filterCheckBoxSameName.length; l++) {\n // eslint-disable-next-line\n var currentType = filterCheckBoxSameName[l];\n currentType.Selected = false;\n currentType.checked = false;\n // eslint-disable-next-line\n var currentTarget = document.getElementById(currentType.uniqueID);\n if (currentTarget) {\n if (targetCheckBox !== currentTarget.id) {\n currentTarget.Selected = false;\n currentTarget.checked = false;\n currentTarget.style.webkitAppearance = 'none';\n }\n }\n }\n if (target.checked) {\n currentData.Selected = true;\n }\n else {\n currentData.Selected = false;\n }\n }\n else if (target.type === 'select-one' && target.size === 0) {\n // eslint-disable-next-line\n var currentValue = target.options[target.selectedIndex].text;\n // eslint-disable-next-line\n var childrens = target.children;\n var isChildElements = false;\n for (var k = 0; k < childrens.length; k++) {\n if (childrens[k].text === currentValue) {\n currentData.SelectedValue = currentValue;\n }\n }\n }\n else if (target.type === 'select-multiple' || target.size > 0) {\n // eslint-disable-next-line\n var currentValue = target.selectedOptions;\n currentData.SelectedList = [];\n for (var z = 0; z < currentValue.length; z++) {\n // eslint-disable-next-line\n var childrens = target.children;\n for (var k = 0; k < childrens.length; k++) {\n if (childrens[k] === currentValue[z]) {\n currentData.SelectedList.push(k);\n }\n }\n }\n currentData.SelectedValue = target.value;\n var index = currentData.TextList ? currentData.TextList.indexOf(target.value) : 0;\n currentData.selectedIndex = index > -1 ? index : 0;\n currentData.SelectedList = [currentData.selectedIndex];\n }\n if (target.disabled) {\n currentData.IsReadonly = true;\n }\n this.updateFormFieldsCollection(currentData);\n filterArrayLength--;\n if (filterArrayLength == 0)\n break;\n }\n else if (target && target.getAttribute('list') != null && target.type === 'text' && currentData.uniqueID === target.list.id) {\n currentData.SelectedValue = target.value;\n }\n this.updateFormFieldsCollection(currentData);\n }\n window.sessionStorage.removeItem(this.pdfViewerBase.documentId + '_formfields');\n this.pdfViewerBase.setItemInSessionStorage(FormFieldsData, '_formfields');\n }\n if (this.pdfViewer.formDesignerModule && target && target.id) {\n var selectedItem = this.pdfViewer.nameTable[target.id.split('_')[0]];\n if (selectedItem && selectedItem.wrapper && selectedItem.wrapper.children[0]) {\n selectedItem.value = target.value;\n var point = cornersPointsBeforeRotation(selectedItem.wrapper.children[0]).topLeft;\n this.pdfViewer.formDesignerModule.updateFormDesignerFieldInSessionStorage(point, selectedItem.wrapper.children[0], selectedItem.formFieldAnnotationType, selectedItem);\n }\n }\n };\n /**\n * @private\n */\n FormFields.prototype.removeExistingFormFields = function () {\n var data = this.pdfViewerBase.getItemFromSessionStorage('_formDesigner');\n var formFieldsData = JSON.parse(data);\n if (formFieldsData) {\n for (var i = 0; i < formFieldsData.length; i++) {\n if (formFieldsData[i].FormField.formFieldAnnotationType === \"RadioButton\") {\n var buttonItem = [];\n buttonItem = formFieldsData[i].FormField.radiobuttonItem;\n var sameButtonItemId = formFieldsData[i].FormField.id.split('_')[0];\n for (var j = 0; j < buttonItem.length; j++) {\n var otherButton = buttonItem[j];\n if (otherButton.id.split('_')[0] !== sameButtonItemId) {\n this.pdfViewer.formDesignerModule.deleteFormField(otherButton.id.split('_')[0]);\n }\n }\n }\n if (formFieldsData[i].Key) {\n this.pdfViewer.formDesignerModule.deleteFormField(formFieldsData[i].Key.split('_')[0]);\n }\n }\n }\n };\n // eslint-disable-next-line\n FormFields.prototype.applyCommonProperties = function (inputdiv, pageIndex, index, currentData, isFieldRotated) {\n // eslint-disable-next-line\n var inputField = document.getElementById(this.pdfViewer.element.id + 'input_' + pageIndex + '_' + index);\n if (inputField) {\n var textLayer = document.getElementById(this.pdfViewer.element.id + '_textLayer_' + pageIndex);\n if (inputdiv.type === 'text' && inputField.parentElement !== textLayer) {\n inputField.parentElement.remove();\n }\n if (!(inputField.className === \"e-pdfviewer-signatureformfields e-pv-signature-focus\")) {\n inputField.remove();\n }\n }\n // eslint-disable-next-line\n var signIcon = document.getElementById('signIcon_' + pageIndex + '_' + index);\n var left = parseFloat(inputdiv.style.left);\n var top = parseInt(inputdiv.style.top);\n var width = parseFloat(inputdiv.style.width);\n var height = parseFloat(inputdiv.style.height);\n var signIconWidth;\n var signIconHeght;\n var hightDifference;\n var widthDifference;\n var zoomvalue = this.pdfViewerBase.getZoomFactor();\n if (signIcon && !isFieldRotated) {\n signIconWidth = parseFloat(signIcon.style.width);\n signIconHeght = parseFloat(signIcon.style.height);\n if (signIcon.style.transform == 'rotate(90deg)') {\n signIcon.style.transform = 'rotate(0deg)';\n hightDifference = height / 2;\n widthDifference = signIconWidth * zoomvalue;\n signIcon.style.left = ((left - (hightDifference - (signIconWidth * zoomvalue))) + (widthDifference / 2)) + 'px';\n }\n if (signIcon.style.transform == 'rotate(180deg)') {\n signIcon.style.transform = 'rotate(0deg)';\n signIcon.style.left = left + 'px';\n signIcon.style.top = (top) + 'px';\n }\n if (signIcon.style.transform == 'rotate(270deg)') {\n signIcon.style.transform = 'rotate(0deg)';\n hightDifference = height / 2;\n widthDifference = signIconWidth * zoomvalue;\n signIcon.style.left = ((left - (hightDifference - widthDifference)) + (widthDifference / 2)) + 'px';\n signIcon.style.top = ((top + (width + (signIconHeght * zoomvalue)) + ((signIconHeght * zoomvalue) / 2))) + 'px';\n }\n }\n if (currentData.IsSignatureField && this.isSignatureField) {\n inputdiv.className = 'e-pdfviewer-signatureformfields-signature';\n inputdiv.style.pointerEvents = 'none';\n }\n else if (currentData.IsSignatureField) {\n if (currentData.Value) {\n inputdiv.className = 'e-pdfviewer-signatureformfields-signature';\n inputdiv.style.pointerEvents = 'none';\n }\n else {\n inputdiv.className = 'e-pdfviewer-signatureformfields';\n }\n }\n else if (currentData.Name !== 'Button') {\n inputdiv.className = 'e-pdfviewer-formFields';\n }\n inputdiv.id = this.pdfViewer.element.id + 'input_' + pageIndex + '_' + index;\n inputdiv.ariaLabel = this.pdfViewer.element.id + 'input_' + pageIndex;\n inputdiv.style.zIndex = 1000;\n };\n /**\n * @param currentData\n * @param pageIndex\n * @param index\n * @param printContainer\n * @param currentData\n * @param pageIndex\n * @param index\n * @param printContainer\n * @private\n */\n // eslint-disable-next-line\n FormFields.prototype.createFormFields = function (currentData, pageIndex, index, printContainer, count) {\n // eslint-disable-next-line\n var currentField;\n // eslint-disable-next-line\n switch (currentData['Name']) {\n case 'Textbox':\n currentField = this.createTextBoxField(currentData, pageIndex, 'text');\n break;\n case 'Password':\n currentField = this.createTextBoxField(currentData, pageIndex, 'password');\n break;\n case 'RadioButton':\n currentField = this.createRadioBoxField(currentData, pageIndex, 'radio');\n break;\n case 'CheckBox':\n currentField = this.createRadioBoxField(currentData, pageIndex, 'checkbox', printContainer);\n break;\n case 'DropDown':\n currentField = this.createDropDownField(currentData, pageIndex, index, printContainer);\n break;\n case 'ListBox':\n currentField = this.createListBoxField(currentData, pageIndex);\n break;\n case 'InitialField':\n case 'SignatureField':\n currentField = this.createSignatureField(currentData, pageIndex, index, printContainer, count);\n var isFieldRotated = false;\n if (currentData['Rotation'] === 0) {\n isFieldRotated = true;\n }\n if (currentData.Value && currentData.Value !== '') {\n this.renderExistingAnnnot(currentData, index, printContainer, isFieldRotated);\n this.isSignatureRendered = true;\n count++;\n }\n break;\n case 'Button':\n currentField = this.createButtonField(currentData, pageIndex);\n break;\n case 'ink':\n if (this.pdfViewer.formDesignerModule) {\n if (currentData.Value && currentData.Value !== '' && !this.isSignatureRendered) {\n this.renderExistingAnnnot(currentData, index, printContainer);\n }\n }\n break;\n case 'SignatureText':\n case 'SignatureImage':\n if (currentData.Value && currentData.Value !== '' && !this.isSignatureRendered) {\n this.renderExistingAnnnot(currentData, index, printContainer);\n }\n break;\n }\n return { currentField: currentField, count: count };\n };\n FormFields.prototype.getFormFieldType = function (currentData) {\n // eslint-disable-next-line\n var currentField;\n // eslint-disable-next-line\n switch (currentData['Name']) {\n case 'Textbox':\n currentField = 'Textbox';\n break;\n case 'Password':\n currentField = 'Password';\n break;\n case 'RadioButton':\n currentField = 'RadioButton';\n break;\n case 'CheckBox':\n currentField = 'CheckBox';\n break;\n case 'DropDown':\n currentField = 'DropDown';\n break;\n case 'ListBox':\n currentField = 'ListBox';\n break;\n case 'SignatureField':\n currentField = 'SignatureField';\n if (currentData.IsInitialField) {\n currentField = 'InitialField';\n }\n break;\n case 'InitialField':\n currentField = 'InitialField';\n break;\n }\n return currentField;\n };\n // eslint-disable-next-line\n FormFields.prototype.createButtonField = function (data, pageIndex) {\n // eslint-disable-next-line\n var inputField = document.createElement('input');\n if (data.Value && (this.isBase64(data.Value) || this.isURL(data.Value))) {\n inputField.type = 'image';\n inputField.src = data.Value;\n }\n else {\n inputField.type = 'button';\n }\n inputField.className = 'e-pv-buttonItem';\n if (data.Text !== '') {\n inputField.value = data.Text;\n }\n else {\n inputField.value = '';\n }\n inputField.name = data.FieldName;\n return inputField;\n };\n /**\n * Returns the boolean value based on the imgae source base64\n *\n * @param {string} imageSrc - Passing the image source.\n *\n * @returns {boolean}\n */\n FormFields.prototype.isBase64 = function (imageSrc) {\n return /^data:([a-zA-Z]*\\/[a-zA-Z+.-]*);base64,/.test(imageSrc);\n };\n /**\n * Returns the boolean value based on the imgae source URL\n *\n * @param {string} imageSrc - Passing the image source.\n *\n * @returns {boolean}\n */\n FormFields.prototype.isURL = function (imageSrc) {\n try {\n new URL(imageSrc);\n return true;\n }\n catch (_a) {\n return false;\n }\n };\n // eslint-disable-next-line\n FormFields.prototype.createTextBoxField = function (data, pageIndex, type) {\n // eslint-disable-next-line\n var inputField;\n if (data.Visible === 1) {\n return;\n }\n if (data.Multiline) {\n inputField = document.createElement('textarea');\n inputField.style.resize = 'none';\n }\n else {\n inputField = document.createElement('input');\n inputField.type = type;\n }\n if (data.MaxLength > 0) {\n inputField.maxLength = data.MaxLength;\n }\n this.addAlignmentPropety(data, inputField);\n if (data.Text !== '') {\n inputField.value = data.Text;\n }\n else {\n inputField.value = '';\n }\n if (!this.pdfViewer.enableAutoComplete) {\n inputField.autocomplete = 'off';\n }\n inputField.name = data.FieldName;\n return inputField;\n };\n // eslint-disable-next-line\n FormFields.prototype.checkIsReadonly = function (data, inputField) {\n var isReadonly = false;\n for (var n = 0; n < this.readOnlyCollection.length; n++) {\n if (inputField.id === this.readOnlyCollection[n]) {\n isReadonly = true;\n break;\n }\n }\n if (!this.pdfViewer.formDesignerModule && !this.pdfViewer.annotationModule && (data.IsInitialField || data.IsSignatureField)) {\n isReadonly = true;\n }\n if (data.IsReadonly || (!this.pdfViewer.enableFormFields) || isReadonly) {\n inputField.disabled = true;\n inputField.style.cursor = 'default';\n inputField.style.backgroundColor = 'transparent';\n }\n else {\n // eslint-disable-next-line\n var borderColor = data.BackColor;\n inputField.style.backgroundColor = 'rgba(' + borderColor.R + ',' + borderColor.G + ',' + borderColor.B + ',' + 0.2 + ')';\n // eslint-disable-next-line\n var fontColor = data.FontColor;\n inputField.style.color = 'rgba(' + fontColor.R + ',' + fontColor.G + ',' + fontColor.B + ',' + 1 + ')';\n }\n };\n /**\n * @param isReadonly\n * @private\n */\n // eslint-disable-next-line max-len\n FormFields.prototype.formFieldsReadOnly = function (isReadonly) {\n // eslint-disable-next-line\n var formFields = document.getElementsByClassName('e-pdfviewer-formFields');\n this.makeformFieldsReadonly(formFields, isReadonly);\n // eslint-disable-next-line\n var signatureFields = document.getElementsByClassName('e-pdfviewer-signatureformfields');\n this.makeformFieldsReadonly(signatureFields, isReadonly);\n };\n // eslint-disable-next-line\n FormFields.prototype.makeformFieldsReadonly = function (formFields, isReadonly) {\n for (var i = 0; i < formFields.length; i++) {\n if (formFields[i]) {\n // eslint-disable-next-line\n var inputField = formFields[i];\n if (!isReadonly) {\n inputField.disabled = true;\n inputField.style.cursor = 'default';\n }\n else {\n // eslint-disable-next-line\n inputField.disabled = false;\n }\n }\n }\n };\n // eslint-disable-next-line\n FormFields.prototype.applyTabIndex = function (data, inputField, pageIndex) {\n inputField.tabIndex = data.TabIndex;\n this.maxTabIndex = Math.max(this.maxTabIndex, inputField.tabIndex);\n if (this.minTabIndex === -1) {\n this.minTabIndex = inputField.tabIndex;\n }\n this.minTabIndex = Math.min(this.minTabIndex, inputField.tabIndex);\n this.maintainTabIndex[pageIndex.toString()] = this.maxTabIndex;\n this.maintanMinTabindex[pageIndex.toString()] = this.minTabIndex;\n };\n // eslint-disable-next-line\n FormFields.prototype.checkIsRequiredField = function (data, inputField) {\n if (data.IsRequired) {\n inputField.required = true;\n inputField.style.border = '1px solid red';\n }\n else {\n // eslint-disable-next-line\n var borderColor = data.BorderColor;\n inputField.style.border = data.BorderWidth;\n inputField.style.borderColor = 'rgba(' + borderColor.R + ',' + borderColor.G + ',' + borderColor.B + ',' + 1 + ')';\n }\n if (inputField.type !== 'checkbox' && inputField.type !== 'radio') {\n var borderStyle = data.BorderStyle;\n this.addBorderStylePropety(borderStyle, inputField);\n }\n };\n // eslint-disable-next-line\n FormFields.prototype.applyDefaultColor = function (inputField) {\n // eslint-disable-next-line max-len\n if (inputField.type !== 'button' && (inputField.style.backgroundColor === 'rgba(255, 255, 255, 0.2)' || inputField.style.backgroundColor === 'rgba(0, 0, 0, 0.2)') || inputField.style.backgroundColor === 'rgba(218, 234, 247, 0.2)') {\n inputField.style.backgroundColor = 'rgba(0, 20, 200, 0.2)';\n }\n if (inputField.style.color === 'rgba(255, 255, 255, 0.2)') {\n inputField.style.color = 'black';\n }\n };\n // eslint-disable-next-line\n FormFields.prototype.addAlignmentPropety = function (data, inputField) {\n // eslint-disable-next-line\n var alignment = data.Alignment;\n switch (alignment) {\n case 0:\n inputField.style.textAlign = 'left';\n break;\n case 1:\n inputField.style.textAlign = 'center';\n break;\n case 2:\n inputField.style.textAlign = 'right';\n break;\n case 3:\n inputField.style.textAlign = 'justify';\n break;\n }\n };\n // eslint-disable-next-line\n FormFields.prototype.addBorderStylePropety = function (borderStyle, inputField) {\n // eslint-disable-next-line\n switch (borderStyle) {\n case 0:\n inputField.style.borderStyle = 'solid';\n break;\n case 1:\n inputField.style.borderStyle = 'dashed';\n break;\n case 2:\n inputField.style.borderStyle = 'outset';\n break;\n case 3:\n inputField.style.borderStyle = 'inset';\n break;\n case 4:\n inputField.style.borderStyle = 'outset';\n break;\n case 5:\n inputField.style.borderStyle = 'dotted';\n break;\n case 6:\n inputField.style.borderStyle = 'inset';\n break;\n }\n };\n // eslint-disable-next-line\n FormFields.prototype.createRadioBoxField = function (data, pageIndex, type, printContainer) {\n // eslint-disable-next-line\n var inputField = document.createElement('input');\n inputField.type = type;\n if (data.Selected) {\n inputField.checked = true;\n }\n else if (type === 'checkbox' && !printContainer) {\n inputField.style.webkitAppearance = 'none';\n }\n inputField.name = data.GroupName;\n inputField.value = data.Value;\n return inputField;\n };\n // eslint-disable-next-line\n FormFields.prototype.createDropDownField = function (data, pageIndex, index, printContainer) {\n // eslint-disable-next-line\n var inputField = document.createElement('select');\n // eslint-disable-next-line\n var childItems = data['TextList'];\n if (data.Selected && !printContainer) {\n // eslint-disable-next-line\n var previousField = document.getElementById('editableDropdown' + pageIndex + '_' + index);\n if (previousField) {\n previousField.remove();\n }\n // eslint-disable-next-line\n var inputFields = document.createElement('input');\n inputFields.id = 'editableDropdown' + pageIndex + '_' + index;\n inputFields.setAttribute('list', this.pdfViewer.element.id + 'input_' + pageIndex + '_' + index);\n // eslint-disable-next-line\n var bounds = data['LineBounds'];\n // eslint-disable-next-line\n var font = data['Font'];\n inputFields.style.position = 'absolute';\n inputFields.style.border = '0px';\n // eslint-disable-next-line\n this.applyPosition(inputFields, bounds, font, pageIndex, data['Rotation']);\n inputFields.style.backgroundColor = 'rgba(0, 20, 200, 0.2)';\n inputFields.className = 'e-pdfviewer-formFields';\n if (data.selectedIndex === -1) {\n inputFields.value = data.SelectedValue;\n }\n if (printContainer) {\n printContainer.appendChild(inputFields);\n }\n else {\n var textLayer = document.getElementById(this.pdfViewer.element.id + '_textLayer_' + pageIndex);\n textLayer.appendChild(inputFields);\n }\n inputFields.addEventListener('focus', this.focusFormFields.bind(this));\n inputFields.addEventListener('blur', this.blurFormFields.bind(this));\n inputFields.addEventListener('click', this.updateFormFields.bind(this));\n inputFields.addEventListener('change', this.changeFormFields.bind(this));\n inputFields.addEventListener('keydown', this.updateFormFieldsValue.bind(this));\n inputField = document.createElement('DATALIST');\n }\n for (var j = 0; j < childItems.length; j++) {\n // eslint-disable-next-line\n var option = document.createElement('option');\n option.className = 'e-dropdownSelect';\n if (data.SelectedValue === childItems[j] || data.selectedIndex === j) {\n option.selected = true;\n }\n else {\n option.selected = false;\n }\n option.innerHTML = childItems[j];\n inputField.appendChild(option);\n }\n inputField.name = data.Text;\n return inputField;\n };\n // eslint-disable-next-line\n FormFields.prototype.createListBoxField = function (data, pageIndex) {\n // eslint-disable-next-line\n var inputField = document.createElement('select');\n // eslint-disable-next-line\n var childItems = data['TextList'];\n if (data.MultiSelect) {\n inputField.multiple = true;\n }\n else {\n inputField.multiple = false;\n inputField.size = childItems.length;\n }\n for (var j = 0; j < childItems.length; j++) {\n // eslint-disable-next-line\n var option = document.createElement('option');\n option.className = 'e-pdfviewer-ListBox';\n for (var k = 0; k < data.SelectedList.length; k++) {\n if (data.SelectedList[k] === j) {\n option.selected = true;\n }\n }\n option.innerHTML = childItems[j];\n inputField.appendChild(option);\n }\n inputField.name = data.Text;\n return inputField;\n };\n // eslint-disable-next-line\n FormFields.prototype.createSignatureField = function (data, pageIndex, index, printContainer, count) {\n // eslint-disable-next-line\n var inputField = document.createElement('input');\n inputField.type = 'text';\n inputField.name = data.FieldName;\n var zoomvalue = this.pdfViewerBase.getZoomFactor();\n // eslint-disable-next-line\n var previousField = document.getElementById('signIcon_' + pageIndex + '_' + index);\n if (previousField && !printContainer) {\n previousField.remove();\n }\n this.pdfViewerBase.isInitialField = data.IsInitialField;\n var signIndicator = this.pdfViewerBase.isInitialField ? \"Initial\" : \"Sign\";\n //check whether the width for sign indicator has default value or not and then set the default width value for initial field.\n var signatureFieldIndicatorWidth = this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings ? (this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings.width === 19 ? (this.pdfViewerBase.isInitialField ? 27 : 19) : this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings.width) : 19;\n // eslint-disable-next-line\n var span = document.createElement('span');\n var textLayer = document.getElementById(this.pdfViewer.element.id + '_textLayer_' + pageIndex);\n // eslint-disable-next-line\n var bounds = data['LineBounds'];\n // eslint-disable-next-line\n var font = data['Font'];\n var left = this.ConvertPointToPixel(bounds.X);\n var top = this.ConvertPointToPixel(bounds.Y);\n var indicatorWidth = this.ConvertPointToPixel(bounds.Width);\n var indicatorHeight = this.ConvertPointToPixel(bounds.Height);\n // eslint-disable-next-line max-len\n var height = this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings ? (this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings.height > indicatorHeight * zoomvalue / 2 ? indicatorHeight * zoomvalue / 2 : this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings.height) : indicatorHeight * zoomvalue / 2;\n // eslint-disable-next-line max-len\n var width = signatureFieldIndicatorWidth > indicatorWidth * zoomvalue / 2 ? indicatorWidth * zoomvalue / 2 : signatureFieldIndicatorWidth;\n // eslint-disable-next-line max-len\n var size = this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings ? (this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings.fontSize > height / 2 ? 10 : this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings.fontSize) : 10;\n var fontSize = size > width ? width / 2 : (size > height ? height / 2 : size);\n span.style.position = 'absolute';\n span.id = 'signIcon_' + pageIndex + '_' + index;\n var rotation = this.getAngle(pageIndex);\n // eslint-disable-next-line\n var annotBounds = { left: left, top: top, width: width, height: height };\n // eslint-disable-next-line\n var fieldBounds = this.getBounds(annotBounds, pageIndex);\n span.style.transform = 'rotate(' + rotation + 'deg)';\n span.style.left = fieldBounds.left * zoomvalue + 'px';\n span.style.top = fieldBounds.top * zoomvalue + 'px';\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n span.style.height = 5 + 'px';\n span.style.width = 10 + 'px';\n span.style.fontSize = '3px';\n }\n else {\n span.style.height = height + 'px';\n span.style.width = width + 'px';\n span.style.fontSize = fontSize + 'px';\n if (isBlazor()) {\n span.style.fontSize = (fontSize - 1) + 'px';\n }\n }\n if (!((height + this.indicatorPaddingValue) > indicatorHeight * zoomvalue) && !((width + this.indicatorPaddingValue) > indicatorWidth * zoomvalue)) {\n span.style.padding = '2px';\n }\n span.style.textAlign = 'center';\n span.style.boxSizing = 'content-box';\n // eslint-disable-next-line\n span.innerHTML = this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings ? (this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings.text ? this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings.text : signIndicator) : signIndicator;\n span.style.color = this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings ? (this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings.color ? this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings.color : 'black') : 'black';\n // eslint-disable-next-line\n span.style.backgroundColor = this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings ? (this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings.backgroundColor ? this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings.backgroundColor : 'orange') : 'orange';\n span.style.opacity = this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings ? (this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings.opacity ? this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings.opacity : 1) : 1;\n if (!isNullOrUndefined(textLayer)) {\n textLayer.appendChild(span);\n }\n this.addSignaturePath(data, count);\n return inputField;\n };\n // eslint-disable-next-line\n FormFields.prototype.addSignaturePath = function (signData, count) {\n this.isSignatureField = false;\n // eslint-disable-next-line\n var data = this.pdfViewerBase.getItemFromSessionStorage('_formfields');\n if (data) {\n // eslint-disable-next-line\n var formFieldsData = JSON.parse(data);\n for (var m = 0; m < formFieldsData.length; m++) {\n // eslint-disable-next-line\n var currentData = formFieldsData[m];\n // eslint-disable-next-line max-len\n if (currentData.ActualFieldName === null && count && (currentData.Name === 'ink' || currentData.Name === 'SignatureField' || currentData.Name === 'SignatureImage' || currentData.Name === 'SignatureText') && (this.pdfViewer.formDesigner ? ((currentData.FieldName.split('_')[0]) === (signData.ActualFieldName) || (currentData.FieldName.split('_')[0]) === (signData.FieldName)) : ((currentData.FieldName.split('_')[0] === (signData.FieldName)) && !isNullOrUndefined(signData.ActualFieldName)) && currentData.Value && currentData.Value !== '')) {\n signData.Value = currentData.Value;\n signData.FontFamily = currentData.FontFamily;\n signData.FontSize = currentData.FontSize;\n this.isSignatureField = true;\n signData.Bounds = currentData.LineBounds;\n }\n if (currentData.ActualFieldName === null && count && (currentData.Name === 'ink' || currentData.Name === 'SignatureField' || currentData.Name === 'SignatureImage' || currentData.Name === 'SignatureText') && this.pdfViewer.formDesigner ? currentData.FieldName === signData.ActualFieldName + '_' + count || currentData.FieldName === signData.FieldName + '_' + count : ((currentData.FieldName === signData.FieldName + '_' + count || currentData.FieldName === signData.ActualFieldName + '_' + count) && !isNullOrUndefined(signData.ActualFieldName)) && currentData.Value && currentData.Value !== '') {\n signData.Value = currentData.Value;\n signData.FontFamily = currentData.FontFamily;\n signData.FontSize = currentData.FontSize;\n this.isSignatureField = true;\n if (!signData.Bounds) {\n signData.Bounds = currentData.LineBounds;\n }\n break;\n }\n }\n }\n return this.isSignatureField;\n };\n // eslint-disable-next-line\n FormFields.prototype.getBounds = function (bound, pageIndex, rotation, isFieldRotated) {\n // eslint-disable-next-line\n var pageDetails = this.pdfViewerBase.pageSize[pageIndex];\n // eslint-disable-next-line\n var bounds;\n if (rotation > 0) {\n bounds = this.getBoundsPosition(rotation, bound, pageDetails, isFieldRotated);\n }\n else {\n bounds = this.getBoundsPosition(pageDetails.rotation, bound, pageDetails, isFieldRotated);\n }\n return bounds;\n };\n // eslint-disable-next-line\n FormFields.prototype.getBoundsPosition = function (rotation, bound, pageDetails, isFieldRotated) {\n // eslint-disable-next-line\n var bounds;\n if (!isFieldRotated) {\n switch (rotation) {\n case 90:\n // eslint-disable-next-line\n bounds = { left: pageDetails.width - bound.top - bound.height, top: bound.left, width: bound.height, height: bound.width };\n break;\n case 180:\n // eslint-disable-next-line\n bounds = { left: pageDetails.width - bound.left - bound.width, top: pageDetails.height - bound.top - bound.height, width: bound.width, height: bound.height };\n break;\n case 270:\n // eslint-disable-next-line\n bounds = { left: bound.top, top: pageDetails.height - bound.left - bound.width, width: bound.height, height: bound.width };\n break;\n case 0:\n // eslint-disable-next-line\n bounds = bound;\n break;\n case 1:\n // eslint-disable-next-line\n bounds = { left: pageDetails.width - bound.top - bound.height, top: bound.left, width: bound.height, height: bound.width };\n break;\n case 2:\n // eslint-disable-next-line\n bounds = { left: pageDetails.width - bound.left - bound.width, top: pageDetails.height - bound.top - bound.height, width: bound.width, height: bound.height };\n break;\n case 3:\n // eslint-disable-next-line\n bounds = { left: bound.top, top: pageDetails.height - bound.left - bound.width, width: bound.height, height: bound.width };\n break;\n }\n if (!bounds) {\n bounds = bound;\n }\n }\n else {\n switch (rotation) {\n case 0:\n // eslint-disable-next-line\n bounds = bound;\n break;\n case 1:\n // eslint-disable-next-line\n bounds = { left: pageDetails.width - bound.top - bound.height - (bound.width / 2 - bound.height / 2), top: bound.left + (bound.width / 2 - bound.height / 2), width: bound.width, height: bound.height };\n break;\n case 2:\n // eslint-disable-next-line\n bounds = { left: pageDetails.width - bound.left - bound.width, top: pageDetails.height - bound.top - bound.height, width: bound.width, height: bound.height };\n break;\n case 3:\n // eslint-disable-next-line\n bounds = { left: bound.top - (bound.width / 2 - bound.height / 2), top: (pageDetails.height - bound.left - bound.width + (bound.width / 2 - bound.height / 2)), width: bound.width, height: bound.height };\n break;\n }\n if (!bounds) {\n bounds = bound;\n }\n }\n return bounds;\n };\n // eslint-disable-next-line\n FormFields.prototype.applyPosition = function (inputField, bounds, font, pageIndex, rotation, isFieldRotated) {\n if (bounds) {\n var left = this.ConvertPointToPixel(bounds.X);\n var top_3 = this.ConvertPointToPixel(bounds.Y);\n var width = this.ConvertPointToPixel(bounds.Width);\n var height = this.ConvertPointToPixel(bounds.Height);\n var fontHeight = 0;\n // eslint-disable-next-line\n var fieldBounds = { left: left, top: top_3, width: width, height: height };\n // eslint-disable-next-line\n var annotBounds = this.getBounds(fieldBounds, pageIndex, rotation, isFieldRotated);\n if (font !== null && font.Height) {\n inputField.style.fontFamily = font.Name;\n if (font.Italic) {\n inputField.style.fontStyle = 'italic';\n }\n if (font.Bold) {\n inputField.style.fontWeight = 'Bold';\n }\n fontHeight = this.ConvertPointToPixel(font.Size);\n }\n this.pdfViewerBase.setStyleToTextDiv(inputField, annotBounds.left, annotBounds.top, fontHeight, annotBounds.width, annotBounds.height, false);\n }\n };\n // eslint-disable-next-line\n FormFields.prototype.renderExistingAnnnot = function (data, index, printContainer, isFieldRotated) {\n if (!printContainer) {\n // eslint-disable-next-line\n var bounds = void 0;\n if (data.Bounds && data.Name !== 'ink') {\n bounds = data.Bounds;\n }\n else {\n bounds = data.LineBounds;\n }\n var currentLeft = void 0;\n var currentTop = void 0;\n var currentWidth = void 0;\n var currentHeight = void 0;\n if (bounds.x || bounds.y || bounds.width || bounds.height) {\n currentLeft = bounds.x;\n currentTop = bounds.y;\n currentWidth = bounds.width;\n currentHeight = bounds.height;\n }\n else {\n currentLeft = this.ConvertPointToPixel(bounds.X);\n currentTop = this.ConvertPointToPixel(bounds.Y);\n currentWidth = this.ConvertPointToPixel(bounds.Width);\n currentHeight = this.ConvertPointToPixel(bounds.Height);\n }\n // eslint-disable-next-line\n var currentPage = parseFloat(data['PageIndex']);\n // eslint-disable-next-line\n var bound = { left: currentLeft, top: currentTop, width: currentWidth, height: currentHeight };\n // eslint-disable-next-line\n var newBounds = this.updateSignatureBounds(bound, currentPage, isFieldRotated);\n var annot = void 0;\n var fontFamily = data.FontFamily ? data.FontFamily : data.fontFamily;\n // eslint-disable-next-line\n if ((this.pdfViewerBase.isSignatureImageData(data.Value))) {\n annot = {\n // eslint-disable-next-line max-len\n id: this.pdfViewer.element.id + 'input_' + currentPage + '_' + index, bounds: newBounds, pageIndex: currentPage, data: data.Value, modifiedDate: '',\n shapeAnnotationType: 'SignatureImage', opacity: 1, rotateAngle: isFieldRotated ? this.getAngle(currentPage) : 0, annotName: 'SignatureField', comments: [], review: { state: '', stateModel: '', modifiedDate: '', author: '' }\n };\n }\n else if (this.pdfViewerBase.isSignaturePathData(data.Value)) {\n var bound_1 = newBounds;\n var tempBounds = { left: newBounds.x, top: newBounds.y, width: newBounds.width, height: newBounds.height };\n bound_1 = this.updateSignatureBounds(tempBounds, currentPage, false);\n annot = {\n // eslint-disable-next-line max-len\n id: this.pdfViewer.element.id + 'input_' + currentPage + '_' + index, bounds: bound_1, pageIndex: currentPage, data: data.Value, modifiedDate: '',\n shapeAnnotationType: 'Path', opacity: 1, rotateAngle: 0, annotName: 'SignatureField', comments: [], review: { state: '', stateModel: '', modifiedDate: '', author: '' }\n };\n }\n else {\n annot = {\n // eslint-disable-next-line max-len\n id: this.pdfViewer.element.id + 'input_' + currentPage + '_' + index, bounds: newBounds, pageIndex: currentPage, data: data.Value, modifiedDate: '',\n shapeAnnotationType: 'SignatureText', opacity: 1, rotateAngle: isFieldRotated ? this.getAngle(currentPage) : 0, annotName: 'SignatureField', comments: [], review: { state: '', stateModel: '', modifiedDate: '', author: '' }, fontFamily: data.FontFamily, fontSize: data.FontSize\n };\n annot.fontFamily = fontFamily === \"TimesRoman\" ? \"Times New Roman\" : fontFamily;\n annot.fontSize = data.FontSize ? data.FontSize : data.fontSize;\n }\n if ((data.Name === 'SignatureField' || data.Name === 'InitialField') && !isNullOrUndefined(data.id)) {\n var elementId = data.id;\n var signatureFieldElement = document.getElementById(elementId + '_content_html_element');\n var signatureField = this.pdfViewer.nameTable[elementId];\n annot.id = signatureField.id + \"_content\";\n var obj = this.pdfViewer.add(annot);\n signatureField.wrapper.children.push(obj.wrapper);\n if (!isNullOrUndefined(signatureFieldElement) && this.isSignatureField) {\n var inputField = signatureFieldElement.children[0].children[0];\n inputField.style.pointerEvents = 'none';\n inputField.className = 'e-pdfviewer-signatureformfields-signature';\n inputField.parentElement.style.pointerEvents = 'none';\n }\n else if (!isNullOrUndefined(signatureFieldElement) && data.Value) {\n var inputField = signatureFieldElement.children[0].children[0];\n inputField.style.pointerEvents = 'none';\n inputField.className = 'e-pdfviewer-signatureformfields-signature';\n inputField.parentElement.style.pointerEvents = 'none';\n }\n }\n else {\n var target = document.getElementById(annot.id);\n if (target && target.classList.contains('e-pdfviewer-signatureformfields-signature')) {\n this.pdfViewer.annotation.deleteAnnotationById(annot.id);\n }\n this.pdfViewer.add(annot);\n if (target) {\n this.updateDataInSession(target, annot.data, annot.bounds);\n this.pdfViewer.fireSignatureAdd(annot.pageIndex, annot.id, annot.shapeAnnotationType, annot.bounds, annot.opacity, annot.strokeColor, annot.thickness, annot.data);\n }\n }\n data.Bounds = annot.bounds;\n if (this.pdfViewer.formDesignerModule) {\n var zoomvalue = this.pdfViewerBase.getZoomFactor();\n annot.bounds = { x: currentLeft * zoomvalue, y: currentTop * zoomvalue, width: currentWidth * zoomvalue, height: currentHeight * zoomvalue };\n this.updateSignatureDataInSession(annot, annot.id);\n }\n // eslint-disable-next-line\n var canvass = document.getElementById(this.pdfViewer.element.id + '_annotationCanvas_' + currentPage);\n // eslint-disable-next-line\n this.pdfViewer.renderDrawing(canvass, currentPage);\n }\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n FormFields.prototype.updateSignatureBounds = function (bound, pageIndex, isFieldRotated) {\n // eslint-disable-next-line\n var pageDetails = this.pdfViewerBase.pageSize[pageIndex];\n if (pageDetails) {\n if (!isFieldRotated) {\n if (pageDetails.rotation === 1) {\n // eslint-disable-next-line max-len\n return { x: pageDetails.width - bound.top - bound.height, y: bound.left, width: bound.height, height: bound.width };\n }\n else if (pageDetails.rotation === 2) {\n // eslint-disable-next-line max-len\n return { x: pageDetails.width - bound.left - bound.width, y: pageDetails.height - bound.top - bound.height, width: bound.width, height: bound.height };\n }\n else if (pageDetails.rotation === 3) {\n // eslint-disable-next-line max-len\n return { x: bound.top, y: (pageDetails.height - bound.left - bound.width), width: bound.height, height: bound.width };\n }\n else {\n // eslint-disable-next-line max-len\n return { x: bound.left, y: bound.top, width: bound.width, height: bound.height };\n }\n }\n else {\n if (pageDetails.rotation === 1) {\n // eslint-disable-next-line max-len\n return { x: pageDetails.width - bound.top - bound.height - (bound.width / 2 - bound.height / 2), y: bound.left + (bound.width / 2 - bound.height / 2), width: bound.width, height: bound.height };\n }\n else if (pageDetails.rotation === 2) {\n // eslint-disable-next-line max-len\n return { x: pageDetails.width - bound.left - bound.width, y: pageDetails.height - bound.top - bound.height, width: bound.width, height: bound.height };\n }\n else if (pageDetails.rotation === 3) {\n // eslint-disable-next-line max-len\n return { x: bound.top - (bound.width / 2 - bound.height / 2), y: (pageDetails.height - bound.left - bound.width + (bound.width / 2 - bound.height / 2)), width: bound.width, height: bound.height };\n }\n else {\n // eslint-disable-next-line max-len\n return { x: bound.left, y: bound.top, width: bound.width, height: bound.height };\n }\n }\n }\n else {\n return { x: bound.left, y: bound.top, width: bound.width, height: bound.height };\n }\n };\n FormFields.prototype.resetFormFields = function () {\n var formFieldData = this.pdfViewer.formFieldCollections;\n for (var i = 0; i < formFieldData.length; i++) {\n var currentData = formFieldData[i];\n this.currentTarget = document.getElementById(currentData.id);\n if (currentData.type === 'Textbox') {\n this.currentTarget.value = currentData.value;\n }\n else if (currentData.type === 'RadioButton') {\n this.currentTarget.checked = currentData.value;\n if (currentData.value) {\n this.updateDataInSession(this.currentTarget);\n }\n }\n else if (currentData.type === 'DropDown') {\n this.currentTarget.value = currentData.value;\n }\n else if (currentData.type === 'CheckBox') {\n this.currentTarget.checked = currentData.value;\n }\n else if (currentData.type === 'SignatureField') {\n // eslint-disable-next-line\n var annotation = this.pdfViewer.nameTable[currentData.id];\n if (annotation) {\n if (this.currentTarget && this.currentTarget.className === 'e-pdfviewer-signatureformfields-signature') {\n this.currentTarget.className = 'e-pdfviewer-signatureformfields';\n this.currentTarget.style.pointerEvents = '';\n this.updateDataInSession(this.currentTarget, '');\n }\n this.pdfViewer.remove(annotation);\n this.pdfViewer.renderDrawing();\n }\n }\n if (currentData.type !== 'RadioButton' && currentData.type !== 'SignatureField') {\n this.updateDataInSession(this.currentTarget);\n }\n }\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n FormFields.prototype.clearFormFieldStorage = function () {\n // eslint-disable-next-line\n var sessionSize = Math.round(JSON.stringify(window.sessionStorage).length / 1024);\n var maxSessionSize = 4500;\n if (this.pdfViewerBase.isStorageExceed) {\n var storageLength = window.sessionStorage.length;\n // eslint-disable-next-line\n var formFieldsList = [];\n for (var i = 0; i < storageLength; i++) {\n if (window.sessionStorage.key(i) && window.sessionStorage.key(i).split('_')[3]) {\n if (window.sessionStorage.key(i).split('_')[3] === 'formfields') {\n // eslint-disable-next-line max-len\n this.pdfViewerBase.formFieldStorage[window.sessionStorage.key(i)] = window.sessionStorage.getItem(window.sessionStorage.key(i));\n formFieldsList.push(window.sessionStorage.key(i));\n }\n else if (window.sessionStorage.key(i).split('_')[3] === 'formDesigner') {\n this.pdfViewerBase.formFieldStorage[window.sessionStorage.key(i)] = window.sessionStorage.getItem(window.sessionStorage.key(i));\n formFieldsList.push(window.sessionStorage.key(i));\n }\n }\n }\n if (formFieldsList) {\n for (var i = 0; i < formFieldsList.length; i++) {\n window.sessionStorage.removeItem(formFieldsList[i]);\n }\n }\n }\n };\n // eslint-disable-next-line\n FormFields.prototype.clearFormFields = function (formField) {\n // eslint-disable-next-line\n var data = this.pdfViewerBase.getItemFromSessionStorage('_formfields');\n if (data) {\n // eslint-disable-next-line\n var formFieldsData = void 0;\n if (formField) {\n formFieldsData = [formField];\n }\n else {\n formFieldsData = JSON.parse(data);\n }\n var isFirstRadio = true;\n for (var m = 0; m < formFieldsData.length; m++) {\n // eslint-disable-next-line\n var currentData = formFieldsData[m];\n if (formField) {\n currentData.uniqueID = formField.id;\n currentData.Name = formField.type;\n }\n // eslint-disable-next-line\n this.currentTarget = document.getElementById(currentData.uniqueID);\n if (currentData.Name === 'Textbox') {\n this.currentTarget.value = '';\n }\n else if (currentData.Name === 'RadioButton') {\n if (isFirstRadio) {\n this.currentTarget.checked = true;\n this.updateDataInSession(this.currentTarget);\n isFirstRadio = false;\n }\n }\n else if (currentData.Name === 'DropDown') {\n this.currentTarget.value = currentData.TextList[0];\n }\n else if (currentData.Name === 'CheckBox') {\n this.currentTarget.checked = false;\n }\n else if (currentData.Name === 'SignatureField' || currentData.Name === 'InitialField') {\n // eslint-disable-next-line\n var annotation = this.pdfViewer.nameTable[currentData.uniqueID];\n if (annotation.propName !== 'annotations') {\n annotation = this.pdfViewer.nameTable[currentData.uniqueID + '_content'];\n }\n if (annotation) {\n if (this.currentTarget && this.currentTarget.className === 'e-pdfviewer-signatureformfields-signature') {\n this.currentTarget.className = 'e-pdfviewer-signatureformfields';\n this.currentTarget.style.pointerEvents = '';\n this.currentTarget.parentElement.style.pointerEvents = '';\n this.updateDataInSession(this.currentTarget, '');\n if (formField) {\n formField.value = '';\n formField.signatureType = [formField.signatureType];\n formField.signatureType[0] = '';\n }\n }\n this.pdfViewer.annotation.deleteAnnotationById(annotation.id);\n }\n }\n if (currentData.Name !== 'SignatureField' && currentData.Name !== 'ink' && currentData.Name !== 'RadioButton') {\n this.updateDataInSession(this.currentTarget);\n }\n }\n }\n };\n /**\n * @param number\n * @private\n */\n // eslint-disable-next-line\n FormFields.prototype.ConvertPointToPixel = function (number) {\n return (number * (96 / 72));\n };\n /**\n * @private\n */\n FormFields.prototype.destroy = function () {\n this.currentTarget = null;\n this.readOnlyCollection = [];\n if (this.pdfViewerBase && this.pdfViewerBase.signatureModule)\n this.pdfViewerBase.signatureModule.destroy();\n };\n /**\n * @private\n */\n FormFields.prototype.getModuleName = function () {\n return 'FormFields';\n };\n /**\n * @private\n * Get the text wdith\n * @param text\n * @param font\n * @param fontFamily\n */\n FormFields.prototype.getTextWidth = function (text, font, fontFamily) {\n var canvas = document.createElement('canvas');\n var context = canvas.getContext('2d');\n var fontName;\n if (font) {\n fontName = font + 'px' + ' ' + fontFamily;\n }\n context.font = fontName || getComputedStyle(document.body).font;\n return context.measureText(text).width;\n };\n /**\n * @private\n * @param {number} fontSize - Font size.\n * @returns {number} - Returns the font size.\n */\n FormFields.prototype.getFontSize = function (fontSize) {\n return fontSize;\n ;\n };\n return FormFields;\n}());\nexport { FormFields };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { Size } from '../../primitives/size';\nimport { DrawingElement } from './drawing-element';\nimport { measureImage } from './../../utility/dom-util';\n/**\n * ImageElement defines a basic image elements\n */\nvar ImageElement = /** @class */ (function (_super) {\n __extends(ImageElement, _super);\n /**\n * set the id for each element\n */\n function ImageElement() {\n var _this = _super.call(this) || this;\n /**\n * sets or gets the image source\n */\n _this.imageSource = '';\n /**\n * sets or gets the print id\n * @private\n */\n _this.printID = '';\n /**\n * sets scaling factor of the image\n */\n _this.imageScale = 'None';\n /**\n * sets the alignment of the image\n */\n _this.imageAlign = 'None';\n /**\n * Sets how to stretch the image\n */\n _this.stretch = 'Stretch';\n return _this;\n }\n Object.defineProperty(ImageElement.prototype, \"source\", {\n /**\n * Gets the source for the image element\n */\n get: function () {\n return this.imageSource;\n },\n /**\n * Sets the source for the image element\n */\n set: function (value) {\n this.imageSource = value;\n this.isDirt = true;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Measures minimum space that is required to render the image\n * @param availableSize\n */\n ImageElement.prototype.measure = function (availableSize) {\n if (this.isDirt && (this.stretch !== 'Stretch' || this.width === undefined && this.height === undefined)) {\n this.contentSize = measureImage(this.source, this.contentSize);\n this.isDirt = false;\n }\n if (this.width !== undefined && this.height !== undefined) {\n this.desiredSize = new Size(this.width, this.height);\n this.contentSize = this.desiredSize;\n }\n else {\n this.desiredSize = this.contentSize;\n }\n this.desiredSize = this.validateDesiredSize(this.desiredSize, availableSize);\n return this.desiredSize;\n };\n /**\n * Arranges the image\n * @param desiredSize\n */\n ImageElement.prototype.arrange = function (desiredSize) {\n this.actualSize = new Size(this.desiredSize.width, this.desiredSize.height);\n this.updateBounds();\n return this.actualSize;\n };\n return ImageElement;\n}(DrawingElement));\nexport { ImageElement };\n","import { PathElement } from '../core/elements/path-element';\nimport { TextElement } from '../core/elements/text-element';\nimport { Container } from '../core/containers/container';\nimport { wordBreakToString, whiteSpaceToString, textAlignToString } from '../utility/base-util';\nimport { getDiagramElement } from '../utility/dom-util';\nimport { CanvasRenderer } from './canvas-renderer';\nimport { ImageElement } from '../core/elements/image-element';\n/**\n * Renderer module is used to render basic diagram elements\n */\n/** @private */\nvar DrawingRenderer = /** @class */ (function () {\n function DrawingRenderer(name, isSvgMode) {\n /** @private */\n this.renderer = null;\n // private svgRenderer: SvgRenderer;\n /** @private */\n this.isSvgMode = true;\n this.diagramId = name;\n this.element = getDiagramElement(this.diagramId);\n this.isSvgMode = isSvgMode;\n this.renderer = new CanvasRenderer();\n // this.svgRenderer = new SvgRenderer();\n }\n // /** @private */\n // public setLayers(): void {\n // this.adornerSvgLayer = this.element.getElementsByClassName('e-adorner-layer')[0] as SVGSVGElement;\n // }\n /** @private */\n DrawingRenderer.prototype.renderElement = function (element, canvas, htmlLayer, transform, parentSvg, createParent, fromPalette, indexValue) {\n var isElement = true;\n if (element instanceof Container) {\n isElement = false;\n this.renderContainer(element, canvas, htmlLayer, transform, parentSvg, createParent, fromPalette, indexValue);\n }\n else if (element instanceof ImageElement) {\n this.renderImageElement(element, canvas, transform, parentSvg, fromPalette);\n }\n else if (element instanceof PathElement) {\n this.renderPathElement(element, canvas, transform, parentSvg, fromPalette);\n }\n else if (element instanceof TextElement) {\n this.renderTextElement(element, canvas, transform, parentSvg, fromPalette);\n }\n else {\n this.renderRect(element, canvas, transform, parentSvg);\n }\n };\n /** @private */\n DrawingRenderer.prototype.renderImageElement = function (element, canvas, transform, parentSvg, fromPalette) {\n var options = this.getBaseAttributes(element, transform);\n options.cornerRadius = 0;\n this.renderer.drawRectangle(canvas, options);\n // let sx: number; let sy: number;\n var imageWidth;\n var imageHeight;\n var sourceWidth;\n var sourceHeight;\n if (element.stretch === 'Stretch') {\n imageWidth = element.actualSize.width;\n imageHeight = element.actualSize.height;\n }\n else {\n var contentWidth = element.contentSize.width;\n var contentHeight = element.contentSize.height;\n var widthRatio = options.width / contentWidth;\n var heightRatio = options.height / contentHeight;\n var ratio = void 0;\n switch (element.stretch) {\n case 'Meet':\n ratio = Math.min(widthRatio, heightRatio);\n imageWidth = contentWidth * ratio;\n imageHeight = contentHeight * ratio;\n options.x += Math.abs(options.width - imageWidth) / 2;\n options.y += Math.abs(options.height - imageHeight) / 2;\n break;\n case 'Slice':\n widthRatio = options.width / contentWidth;\n heightRatio = options.height / contentHeight;\n ratio = Math.max(widthRatio, heightRatio);\n imageWidth = contentWidth * ratio;\n imageHeight = contentHeight * ratio;\n sourceWidth = options.width / imageWidth * contentWidth;\n sourceHeight = options.height / imageHeight * contentHeight;\n break;\n case 'None':\n imageWidth = contentWidth;\n imageHeight = contentHeight;\n break;\n }\n }\n options.width = imageWidth;\n options.height = imageHeight;\n //Commented for code coverage\n //(options as ImageAttributes).sourceX = sx;\n //(options as ImageAttrib utes).sourceY = sy;\n options.sourceWidth = sourceWidth;\n options.sourceHeight = sourceHeight;\n options.source = element.source;\n options.alignment = element.imageAlign;\n options.scale = element.imageScale;\n options.printID = element.printID;\n this.renderer.drawImage(canvas, options, parentSvg, fromPalette);\n };\n /** @private */\n DrawingRenderer.prototype.renderPathElement = function (element, canvas, transform, parentSvg, fromPalette) {\n var options = this.getBaseAttributes(element, transform);\n options.data = element.absolutePath;\n options.data = element.absolutePath;\n var ariaLabel = element.id;\n if (!this.isSvgMode) {\n options.x = options.x;\n options.y = options.y;\n }\n this.renderer.drawPath(canvas, options);\n };\n /** @private */\n DrawingRenderer.prototype.renderTextElement = function (element, canvas, transform, parentSvg, fromPalette) {\n var options = this.getBaseAttributes(element, transform);\n options.cornerRadius = 0;\n options.whiteSpace = whiteSpaceToString(element.style.whiteSpace, element.style.textWrapping);\n options.content = element.content;\n options.breakWord = wordBreakToString(element.style.textWrapping);\n options.textAlign = textAlignToString(element.style.textAlign);\n options.color = element.style.color;\n options.italic = element.style.italic;\n options.bold = element.style.bold;\n options.fontSize = element.style.fontSize;\n options.fontFamily = element.style.fontFamily;\n options.textOverflow = element.style.textOverflow;\n options.textDecoration = element.style.textDecoration;\n options.doWrap = element.doWrap;\n options.wrapBounds = element.wrapBounds;\n options.childNodes = element.childNodes;\n options.dashArray = '';\n options.strokeWidth = 0;\n options.fill = element.style.fill;\n var ariaLabel = element.content ? element.content : element.id;\n this.renderer.drawRectangle(canvas, options);\n this.renderer.drawText(canvas, options);\n };\n /** @private */\n DrawingRenderer.prototype.renderContainer = function (group, canvas, htmlLayer, transform, parentSvg, createParent, fromPalette, indexValue) {\n transform = { tx: 0, ty: 0, scale: 1 };\n var svgParent = { svg: parentSvg, g: canvas };\n if (this.diagramId) {\n parentSvg = parentSvg;\n }\n this.renderRect(group, canvas, transform, parentSvg);\n if (group.hasChildren()) {\n var parentG = void 0;\n var svgParent_1;\n for (var _i = 0, _a = group.children; _i < _a.length; _i++) {\n var child = _a[_i];\n this.renderElement(child, parentG || canvas, htmlLayer, transform, parentSvg, true, fromPalette, indexValue);\n }\n }\n };\n /** @private */\n DrawingRenderer.prototype.renderRect = function (element, canvas, transform, parentSvg) {\n var options = this.getBaseAttributes(element, transform);\n options.cornerRadius = element.cornerRadius || 0;\n var ariaLabel = element.id;\n this.renderer.drawRectangle(canvas, options);\n };\n /** @private */\n DrawingRenderer.prototype.getBaseAttributes = function (element, transform) {\n var options = {\n width: element.actualSize.width, height: element.actualSize.height,\n x: element.offsetX - element.actualSize.width * element.pivot.x + 0.5,\n y: element.offsetY - element.actualSize.height * element.pivot.y + 0.5,\n fill: element.style.fill, stroke: element.style.strokeColor, angle: element.rotateAngle + element.parentTransform,\n pivotX: element.pivot.x, pivotY: element.pivot.y, strokeWidth: element.style.strokeWidth,\n dashArray: element.style.strokeDashArray || '', opacity: element.style.opacity,\n visible: element.visible, id: element.id, gradient: element.style.gradient,\n };\n if (transform) {\n options.x += transform.tx;\n options.y += transform.ty;\n }\n return options;\n };\n return DrawingRenderer;\n}());\nexport { DrawingRenderer };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { Container } from './container';\nimport { RotateTransform } from '../../enum/enum';\nimport { Size } from '../../primitives/size';\nimport { Rect } from '../../primitives/rect';\nimport { TextElement } from '../elements/text-element';\nimport { identityMatrix, rotateMatrix, transformPointByMatrix } from '../../primitives/matrix';\nimport { rotateSize } from '../../utility/base-util';\n/**\n * Canvas module is used to define a plane(canvas) and to arrange the children based on margin\n */\nvar Canvas = /** @class */ (function (_super) {\n __extends(Canvas, _super);\n function Canvas() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /**\n * Not applicable for canvas\n * @private\n */\n _this.measureChildren = undefined;\n return _this;\n }\n /**\n * Measures the minimum space that the canvas requires\n * @param availableSize\n */\n Canvas.prototype.measure = function (availableSize) {\n var desired = undefined;\n var desiredBounds = undefined;\n if (this.hasChildren()) {\n //Measuring the children\n for (var _i = 0, _a = this.children; _i < _a.length; _i++) {\n var child = _a[_i];\n if (child instanceof TextElement) {\n if (child.canMeasure) {\n availableSize.width = availableSize.width || this.maxWidth || this.minWidth;\n child.measure(availableSize);\n }\n else {\n break;\n }\n }\n else if (!(child instanceof TextElement)) {\n child.measure(availableSize);\n }\n var childSize = child.desiredSize.clone();\n if (child.rotateAngle !== 0) {\n childSize = rotateSize(childSize, child.rotateAngle);\n }\n var right = childSize.width + child.margin.right;\n var bottom = childSize.height + child.margin.bottom;\n var childBounds = new Rect(child.margin.left, child.margin.top, right, bottom);\n if (child.float) {\n var position = child.getAbsolutePosition(childSize);\n if (position !== undefined) {\n continue;\n }\n }\n if ((!(child instanceof TextElement)) || (child instanceof TextElement && child.canConsiderBounds)) {\n if (desiredBounds === undefined) {\n desiredBounds = childBounds;\n }\n else {\n desiredBounds.uniteRect(childBounds);\n }\n }\n }\n if (desiredBounds) {\n var leftMargin = 0;\n var topMargin = 0;\n leftMargin = Math.max(desiredBounds.left, 0);\n topMargin = Math.max(desiredBounds.top, 0);\n desired = new Size(desiredBounds.width + leftMargin, desiredBounds.height + topMargin);\n }\n }\n desired = _super.prototype.validateDesiredSize.call(this, desired, availableSize);\n _super.prototype.stretchChildren.call(this, desired);\n this.desiredSize = desired;\n return desired;\n };\n /**\n * Arranges the child elements of the canvas\n */\n Canvas.prototype.arrange = function (desiredSize) {\n this.outerBounds = new Rect();\n if (this.hasChildren()) {\n var y = void 0;\n var x = void 0;\n y = this.offsetY - desiredSize.height * this.pivot.y;\n x = this.offsetX - desiredSize.width * this.pivot.x;\n for (var _i = 0, _a = this.children; _i < _a.length; _i++) {\n var child = _a[_i];\n if ((child.transform & RotateTransform.Parent) !== 0) {\n child.parentTransform = this.parentTransform + this.rotateAngle;\n var childSize = child.desiredSize.clone();\n var topLeft = void 0;\n var center = { x: 0, y: 0 };\n var childX = x;\n var childY = y;\n if (child.relativeMode === 'Point') {\n var position = child.getAbsolutePosition(desiredSize);\n if (position !== undefined) {\n childX += position.x;\n childY += position.y;\n }\n }\n if (child.relativeMode === 'Object') {\n topLeft = this.alignChildBasedOnParent(child, childSize, desiredSize, childX, childY);\n }\n else {\n topLeft = this.alignChildBasedOnaPoint(child, childX, childY);\n }\n center = { x: topLeft.x + childSize.width / 2, y: topLeft.y + childSize.height / 2 };\n if (child.rotateValue) {\n var rotateValue = {\n x: this.offsetX + (child.rotateValue.x || 0),\n y: this.offsetY + (child.rotateValue.y || 0)\n };\n var centerPoint = { x: this.offsetX, y: this.offsetY };\n var angle = child.rotateValue.angle | 0;\n var matrix = identityMatrix();\n rotateMatrix(matrix, angle, centerPoint.x, centerPoint.y);\n center = transformPointByMatrix(matrix, rotateValue);\n }\n _super.prototype.findChildOffsetFromCenter.call(this, child, center);\n }\n if ((child.horizontalAlignment === 'Stretch' || child.verticalAlignment === 'Stretch')) {\n child.arrange(desiredSize);\n }\n else {\n if (child instanceof TextElement && child.canMeasure) {\n child.arrange(child.desiredSize);\n this.outerBounds.uniteRect(child.outerBounds);\n }\n else if (!(child instanceof TextElement)) {\n child.arrange(child.desiredSize);\n this.outerBounds.uniteRect(child.outerBounds);\n }\n }\n }\n }\n this.actualSize = desiredSize;\n this.updateBounds();\n this.outerBounds.uniteRect(this.bounds);\n return desiredSize;\n };\n /**\n * Aligns the child element based on its parent\n * @param child\n * @param childSize\n * @param parentSize\n * @param x\n * @param y\n */\n Canvas.prototype.alignChildBasedOnParent = function (child, childSize, parentSize, x, y) {\n switch (child.horizontalAlignment) {\n case 'Auto':\n case 'Left':\n x += child.margin.left;\n break;\n case 'Right':\n x += parentSize.width - childSize.width - child.margin.right;\n break;\n case 'Stretch':\n case 'Center':\n x += parentSize.width / 2 - childSize.width / 2;\n break;\n }\n switch (child.verticalAlignment) {\n case 'Auto':\n case 'Top':\n y += child.margin.top;\n break;\n case 'Bottom':\n y += parentSize.height - childSize.height - child.margin.bottom;\n break;\n case 'Stretch':\n case 'Center':\n y += parentSize.height / 2 - childSize.height / 2;\n break;\n }\n return { x: x, y: y };\n };\n /**\n * Aligns the child elements based on a point\n * @param child\n * @param x\n * @param y\n */\n Canvas.prototype.alignChildBasedOnaPoint = function (child, x, y) {\n x += child.margin.left - child.margin.right;\n y += child.margin.top - child.margin.bottom;\n switch (child.horizontalAlignment) {\n case 'Auto':\n case 'Left':\n x = x;\n break;\n case 'Stretch':\n case 'Center':\n x -= child.desiredSize.width * child.pivot.x;\n break;\n case 'Right':\n x -= child.desiredSize.width;\n break;\n }\n switch (child.verticalAlignment) {\n case 'Auto':\n case 'Top':\n y = y;\n break;\n case 'Stretch':\n case 'Center':\n y -= child.desiredSize.height * child.pivot.y;\n break;\n case 'Bottom':\n y -= child.desiredSize.height;\n break;\n }\n return { x: x, y: y };\n };\n return Canvas;\n}(Container));\nexport { Canvas };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { compile as baseTemplateComplier } from '@syncfusion/ej2-base';\nimport { DrawingElement } from '@syncfusion/ej2-drawings';\n/**\n * HTMLElement defines the basic html elements\n */\nvar DiagramHtmlElement = /** @class */ (function (_super) {\n __extends(DiagramHtmlElement, _super);\n /**\n * set the id for each element\n *\n * @param {string} nodeTemplate - Set the id for each element.\n * @returns {void}\n *\n * @private\n */\n function DiagramHtmlElement(nodeTemplate) {\n var _this = _super.call(this) || this;\n _this.templateFn = _this.templateCompiler(nodeTemplate);\n return _this;\n }\n DiagramHtmlElement.prototype.templateCompiler = function (template) {\n if (template) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var e = void 0;\n try {\n if (document.querySelectorAll(template).length) {\n return baseTemplateComplier(document.querySelector(template).innerHTML.trim());\n }\n }\n catch (e) {\n return baseTemplateComplier(template);\n }\n }\n return undefined;\n };\n /**\n * getNodeTemplate method \\\n *\n * @returns { Function } getNodeTemplate method .\\\n *\n * @private\n */\n DiagramHtmlElement.prototype.getNodeTemplate = function () {\n return this.templateFn;\n };\n return DiagramHtmlElement;\n}(DrawingElement));\nexport { DiagramHtmlElement };\n","import { LineTool } from '../index';\nimport { ZOrderPageTable, PdfAnnotationBase, PdfFormFieldBase } from './pdf-annotation';\nimport { Rect, Point, identityMatrix, rotateMatrix, getDiagramElement, ThumbsConstraints, scaleMatrix, cornersPointsBeforeRotation, ImageElement } from '@syncfusion/ej2-drawings';\nimport { DrawingElement } from '@syncfusion/ej2-drawings';\nimport { PathElement } from '@syncfusion/ej2-drawings';\nimport { createMeasureElements } from '@syncfusion/ej2-drawings';\nimport { randomId } from '@syncfusion/ej2-drawings';\nimport { Size, transformPointByMatrix, RotateTransform, TextElement } from '@syncfusion/ej2-drawings';\nimport { Canvas, refreshDiagramElements, DrawingRenderer } from '@syncfusion/ej2-drawings';\nimport { Selector } from './selector';\nimport { SvgRenderer } from '@syncfusion/ej2-drawings';\nimport { isLineShapes, setElementStype, findPointsLength, getBaseShapeAttributes, isLeader, cloneObject } from './drawing-util';\nimport { getConnectorPoints, updateSegmentElement, getSegmentElement, updateDecoratorElement, getDecoratorElement, clipDecorators, initDistanceLabel, initLeaders, initLeader, getPolygonPath, initPerimeterLabel } from './connector-util';\nimport { isNullOrUndefined, isBlazor, Browser } from '@syncfusion/ej2-base';\nimport { DiagramHtmlElement } from './html-element';\n/**\n * Renderer module is used to render basic diagram elements\n *\n * @hidden\n */\nvar Drawing = /** @class */ (function () {\n function Drawing(viewer) {\n this.isDynamicStamps = false;\n this.pdfViewer = viewer;\n this.renderer = new DrawingRenderer('this.pdfViewer.element.id', false);\n this.svgRenderer = new SvgRenderer();\n }\n /**\n * @private\n * @param {PdfViewer} viewer - Specified the pdfViewer element.\n * @returns {void}\n */\n Drawing.prototype.renderLabels = function (viewer) {\n var annotations = viewer.annotations;\n if (annotations) {\n for (var i = 0; i < annotations.length; i++) {\n var annotation = annotations[parseInt(i.toString(), 10)];\n this.initObject(annotation);\n }\n }\n };\n Drawing.prototype.createNewZindexTable = function (pageId) {\n var zIndexTable = new ZOrderPageTable();\n this.pdfViewer.zIndex++;\n zIndexTable.pageId = this.pdfViewer.zIndex;\n this.pdfViewer.zIndexTable.push(zIndexTable);\n return zIndexTable;\n };\n /**\n * @private\n * @param {number} pageId - Specified the page Id.\n * @returns {ZOrderPageTable} - Returns the ZOrder page table.\n */\n Drawing.prototype.getPageTable = function (pageId) {\n var zIndexTable;\n if (this.pdfViewer.zIndexTable.length !== undefined) {\n var notFound = true;\n for (var i = 0; i < this.pdfViewer.zIndexTable.length; i++) {\n if (this.pdfViewer.zIndexTable[parseInt(i.toString(), 10)].pageId === pageId) {\n notFound = false;\n zIndexTable = this.pdfViewer.zIndexTable[parseInt(i.toString(), 10)];\n break;\n }\n }\n if (notFound) {\n zIndexTable = this.createNewZindexTable(pageId);\n zIndexTable.pageId = pageId;\n }\n }\n else {\n zIndexTable = this.createNewZindexTable(pageId);\n }\n return zIndexTable;\n };\n /**\n * @private\n * @param {number} index - Specified the page index value.\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @returns {void}\n */\n Drawing.prototype.setZIndex = function (index, obj) {\n if (obj.pageIndex !== undefined) {\n var pageTable = this.getPageTable(obj.pageIndex);\n if (obj.zIndex === -1) {\n pageTable.zIndex++;\n obj.zIndex = pageTable.zIndex;\n pageTable.objects.push(obj);\n }\n else {\n var index_1 = obj.zIndex;\n var tabelLength = pageTable.objects.length;\n obj.zIndex = tabelLength++;\n pageTable.objects.push(obj);\n }\n }\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel | PdfFormFieldBaseModel} obj - Specified the annotation object.\n * @returns {PdfAnnotationBaseModel | PdfFormFieldBaseModel} - Returns the annotaion or form fields model.\n */\n Drawing.prototype.initObject = function (obj) {\n //Move the common properties like zindex and id to an abstract class\n this.setZIndex(this.pdfViewer.zIndex, obj);\n createMeasureElements();\n if (!isLineShapes(obj)) {\n this.initNode(obj);\n }\n else {\n this.initLine(obj);\n obj.wrapper.measure(new Size(undefined, undefined));\n obj.wrapper.arrange(obj.wrapper.desiredSize);\n }\n if (obj.wrapper === null) {\n //Init default wrapper\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.pdfViewer.nameTable[obj.id] = obj;\n if (obj.formFieldAnnotationType) {\n this.nodePropertyChange(obj, { bounds: { width: obj.bounds.width, height: obj.bounds.height } });\n }\n //Add some methodologies to add the children of group to name table\n return obj;\n };\n Drawing.prototype.initNode = function (obj) {\n var canvas = this.initContainer(obj);\n var content;\n if (!canvas.children) {\n canvas.children = [];\n }\n if (!content) {\n content = this.init(obj, canvas);\n }\n //canvas.children.push(content);\n canvas.rotateAngle = obj.rotateAngle;\n // eslint-disable-next-line max-len\n canvas.measure(new Size(obj.wrapper.width, obj.wrapper.height));\n canvas.arrange(canvas.desiredSize);\n if (this.isDynamicStamps) {\n this.pdfViewer.annotation.stampAnnotationModule.updateSessionStorage(obj, null, 'dynamicStamp');\n this.isDynamicStamps = false;\n }\n };\n /**\n * Allows to initialize the UI of a node\n */\n /**\n * @private\n * @param {PdfAnnotationBaseModel | PdfFormFieldBaseModel} obj - Specified the annotation object.\n * @param {Container} canvas - Specified the canvas element.\n * @returns {DrawingElement} - Returns the drawing element.\n */\n Drawing.prototype.init = function (obj, canvas) {\n var content;\n content = new DrawingElement();\n var pathContent;\n var basicElement;\n var isStamp = false;\n // eslint-disable-next-line\n var annotationSettings = this.pdfViewer.annotationModule ? this.pdfViewer.annotationModule.findAnnotationSettings(obj) : {};\n var annotationMaxHeight = 0;\n var annotationMaxWidth = 0;\n var annotationMinHeight = 0;\n var annotationMinWidth = 0;\n if (annotationSettings.minWidth || annotationSettings.maxWidth || annotationSettings.minHeight || annotationSettings.maxHeight) {\n annotationMaxHeight = annotationSettings.maxHeight ? annotationSettings.maxHeight : 2000;\n annotationMaxWidth = annotationSettings.maxWidth ? annotationSettings.maxWidth : 2000;\n annotationMinHeight = annotationSettings.minHeight ? annotationSettings.minHeight : 0;\n annotationMinWidth = annotationSettings.minWidth ? annotationSettings.minWidth : 0;\n }\n var isAnnotationSet = false;\n if (annotationMinHeight || annotationMinWidth || annotationMaxHeight || annotationMaxWidth) {\n isAnnotationSet = true;\n }\n if (obj.formFieldAnnotationType) {\n content = this.initFormFields(obj, content, canvas);\n }\n else {\n // eslint-disable-next-line max-len\n content = this.initAnnotationObject(obj, pathContent, content, canvas, isStamp, basicElement, isAnnotationSet, annotationMaxHeight, annotationMaxWidth, annotationMinWidth, annotationMinHeight);\n }\n content.id = obj.id + '_content';\n content.relativeMode = 'Object';\n if (obj.shapeAnnotationType !== 'Stamp') {\n if (obj.bounds.width !== undefined) {\n content.width = obj.bounds.width;\n if (isAnnotationSet) {\n if ((content.width < annotationMinWidth) || (content.width > annotationMaxWidth)) {\n if (content.width < annotationMinWidth) {\n content.width = annotationMinWidth;\n }\n if (content.width > annotationMaxWidth) {\n content.width = annotationMaxWidth;\n }\n }\n }\n }\n content.horizontalAlignment = 'Stretch';\n if (obj.bounds.height !== undefined) {\n content.height = obj.bounds.height;\n if (isAnnotationSet) {\n if ((content.height < annotationMinHeight) || (content.width > annotationMaxHeight)) {\n if (content.height < annotationMinHeight) {\n content.height = annotationMinHeight;\n }\n if (content.height > annotationMaxHeight) {\n content.height = annotationMaxHeight;\n }\n }\n }\n }\n setElementStype(obj, content);\n if (this.pdfViewer.viewerBase.drawSignatureWithTool && obj.shapeAnnotationType === 'SignatureText') {\n content.style.strokeWidth = 0;\n }\n }\n content.isRectElement = true;\n content.verticalAlignment = 'Stretch';\n return content;\n };\n Drawing.prototype.initFormFields = function (obj, content, canvas) {\n switch (obj.formFieldAnnotationType) {\n case 'Textbox':\n case 'PasswordField':\n case 'Checkbox':\n case 'RadioButton':\n case 'DropdownList':\n case 'ListBox':\n case 'SignatureField':\n case 'InitialField':\n // eslint-disable-next-line\n var htmlContent = new DiagramHtmlElement();\n content = htmlContent;\n content.id = obj.id + '_content';\n canvas.children.push(content);\n break;\n }\n return content;\n };\n // eslint-disable-next-line\n Drawing.prototype.initAnnotationObject = function (obj, pathContent, content, canvas, isStamp, basicElement, isAnnotationSet, annotationMaxHeight, annotationMaxWidth, annotationMinWidth, annotationMinHeight) {\n switch (obj.shapeAnnotationType) {\n case 'Ellipse':\n pathContent = new PathElement();\n pathContent.data = 'M80.5,12.5 C80.5,19.127417 62.59139,24.5 40.5,24.5 C18.40861,24.5 0.5,19.127417 0.5,12.5' +\n 'C0.5,5.872583 18.40861,0.5 40.5,0.5 C62.59139,0.5 80.5,5.872583 80.5,12.5 z';\n content = pathContent;\n canvas.children.push(content);\n if (obj.enableShapeLabel) {\n var textLabel = this.textElement(obj);\n textLabel.content = obj.labelContent;\n textLabel.style.color = obj.fontColor;\n textLabel.style.strokeColor = obj.labelBorderColor;\n textLabel.style.fill = obj.labelFillColor;\n textLabel.style.fontSize = obj.fontSize;\n textLabel.style.fontFamily = obj.fontFamily;\n textLabel.style.opacity = obj.labelOpacity;\n canvas.children.push(textLabel);\n }\n break;\n case 'Path':\n pathContent = new PathElement();\n pathContent.data = obj.data;\n content = pathContent;\n canvas.children.push(content);\n break;\n case 'HandWrittenSignature':\n case 'Ink':\n pathContent = new PathElement();\n pathContent.data = obj.data;\n pathContent.style.strokeColor = obj.strokeColor;\n pathContent.style.strokeWidth = obj.thickness;\n pathContent.style.opacity = obj.opacity;\n content = pathContent;\n canvas.children.push(content);\n break;\n case 'Polygon':\n pathContent = new PathElement();\n pathContent.data = getPolygonPath(obj.vertexPoints);\n content = pathContent;\n canvas.children.push(content);\n break;\n case 'Stamp':\n isStamp = true;\n this.isDynamicStamps = true;\n if (obj && obj.annotationAddMode && (obj.annotationAddMode === 'Existing Annotation' || obj.annotationAddMode === 'Imported Annotation')) {\n obj.bounds.width = obj.bounds.width - 20;\n obj.bounds.height = obj.bounds.height - 20;\n }\n if (obj.isDynamicStamp) {\n canvas.horizontalAlignment = 'Left';\n basicElement = new DrawingElement();\n content = basicElement;\n content.cornerRadius = 10;\n content.style.fill = obj.stampFillColor;\n content.style.strokeColor = obj.stampStrokeColor;\n canvas.children.push(content);\n var textele_1 = this.textElement(obj);\n textele_1 = new TextElement();\n textele_1.style.fontFamily = 'Helvetica';\n textele_1.style.fontSize = 14;\n textele_1.style.italic = true;\n textele_1.style.bold = true;\n textele_1.style.color = obj.fillColor;\n textele_1.rotateValue = undefined;\n textele_1.content = obj.dynamicText;\n textele_1.relativeMode = 'Point';\n textele_1.margin.left = 10;\n textele_1.margin.bottom = -7;\n textele_1.setOffsetWithRespectToBounds(0, 0.57, null);\n textele_1.relativeMode = 'Point';\n canvas.children.push(textele_1);\n // eslint-disable-next-line\n var pathContent1 = new PathElement();\n pathContent1.id = randomId() + '_stamp';\n pathContent1.data = obj.data;\n pathContent1.width = obj.bounds.width;\n if (isAnnotationSet && (obj.bounds.width > annotationMaxWidth)) {\n pathContent1.width = annotationMaxWidth;\n obj.bounds.width = annotationMaxWidth;\n }\n pathContent1.height = obj.bounds.height / 2;\n if (isAnnotationSet && (obj.bounds.height > annotationMaxHeight)) {\n pathContent1.height = annotationMaxHeight / 2;\n obj.bounds.height = annotationMaxHeight / 2;\n }\n pathContent1.rotateValue = undefined;\n pathContent1.margin.left = 10;\n pathContent1.margin.bottom = -5;\n pathContent1.relativeMode = 'Point';\n pathContent1.setOffsetWithRespectToBounds(0, 0.1, null);\n // eslint-disable-next-line\n var content1 = pathContent1;\n pathContent1.style.fill = obj.fillColor;\n pathContent1.style.strokeColor = obj.strokeColor;\n pathContent1.style.opacity = obj.opacity;\n content.width = obj.bounds.width + 20;\n content.height = obj.bounds.height + 20;\n content.style.opacity = obj.opacity;\n canvas.children.push(content1);\n }\n else {\n canvas.horizontalAlignment = 'Left';\n basicElement = new DrawingElement();\n content = basicElement;\n content.cornerRadius = 10;\n content.style.fill = obj.stampFillColor;\n content.style.strokeColor = obj.stampStrokeColor;\n canvas.children.push(content);\n // eslint-disable-next-line\n var pathContent1 = new PathElement();\n pathContent1.id = randomId() + '_stamp';\n pathContent1.data = obj.data;\n pathContent1.width = obj.bounds.width;\n if (isAnnotationSet && (obj.bounds.width > annotationMaxWidth)) {\n pathContent1.width = annotationMaxWidth;\n obj.bounds.width = annotationMaxWidth;\n }\n pathContent1.height = obj.bounds.height;\n if (isAnnotationSet && (obj.bounds.height > annotationMaxHeight)) {\n pathContent1.height = annotationMaxHeight;\n obj.bounds.height = annotationMaxHeight;\n }\n pathContent1.minWidth = pathContent1.width / 2;\n pathContent1.minHeight = pathContent1.height / 2;\n // eslint-disable-next-line\n var content1 = pathContent1;\n pathContent1.style.fill = obj.fillColor;\n pathContent1.style.strokeColor = obj.strokeColor;\n pathContent1.style.opacity = obj.opacity;\n content.width = obj.bounds.width + 20;\n content.height = obj.bounds.height + 20;\n content.minWidth = pathContent1.width / 2;\n content.minHeight = pathContent1.height / 2;\n content.style.opacity = obj.opacity;\n canvas.children.push(content1);\n canvas.minHeight = content.minHeight + 20;\n canvas.minWidth = content.minWidth + 20;\n }\n break;\n case 'Image':\n case 'SignatureImage':\n // eslint-disable-next-line\n var pathContent11 = new ImageElement();\n pathContent11.source = obj.data;\n content = pathContent11;\n content.style.strokeWidth = 0;\n canvas.children.push(content);\n break;\n case 'Rectangle':\n basicElement = new DrawingElement();\n content = basicElement;\n canvas.children.push(content);\n if (obj.enableShapeLabel) {\n var textLabel = this.textElement(obj);\n textLabel.content = obj.labelContent;\n textLabel.style.color = obj.fontColor;\n textLabel.style.strokeColor = obj.labelBorderColor;\n textLabel.style.fill = obj.labelFillColor;\n textLabel.style.fontSize = obj.fontSize;\n textLabel.style.fontFamily = obj.fontFamily;\n textLabel.style.opacity = obj.labelOpacity;\n canvas.children.push(textLabel);\n }\n break;\n case 'Perimeter':\n pathContent = new PathElement();\n pathContent.data = 'M80.5,12.5 C80.5,19.127417 62.59139,24.5 40.5,24.5 C18.40861,24.5 0.5,19.127417 0.5,12.5' +\n 'C0.5,5.872583 18.40861,0.5 40.5,0.5 C62.59139,0.5 80.5,5.872583 80.5,12.5 z';\n content = pathContent;\n setElementStype(obj, pathContent);\n canvas.children.push(content);\n basicElement = new DrawingElement();\n basicElement.id = 'perimeter_' + randomId();\n basicElement.height = .2;\n basicElement.width = .2;\n basicElement.transform = RotateTransform.Self;\n basicElement.horizontalAlignment = 'Stretch';\n this.setNodePosition(basicElement, obj);\n basicElement.rotateAngle = obj.rotateAngle;\n setElementStype(obj, basicElement);\n canvas.children.push(basicElement);\n // eslint-disable-next-line\n var textele = this.textElement(obj);\n textele = new TextElement();\n textele.content = textele.content = findPointsLength([\n { x: obj.bounds.x, y: obj.bounds.y },\n { x: obj.bounds.x + obj.bounds.width, y: obj.bounds.y + obj.bounds.height }\n ]).toString();\n textele.rotateValue = { y: -10, angle: obj.rotateAngle };\n canvas.children.push(textele);\n break;\n case 'Radius':\n pathContent = new PathElement();\n pathContent.data = 'M80.5,12.5 C80.5,19.127417 62.59139,24.5 40.5,24.5 C18.40861,24.5 0.5,19.127417 0.5,12.5' +\n 'C0.5,5.872583 18.40861,0.5 40.5,0.5 C62.59139,0.5 80.5,5.872583 80.5,12.5 z';\n content = pathContent;\n setElementStype(obj, pathContent);\n canvas.children.push(content);\n basicElement = new DrawingElement();\n basicElement.id = 'radius_' + randomId();\n basicElement.height = .2;\n basicElement.width = obj.bounds.width / 2;\n basicElement.transform = RotateTransform.Self;\n this.setNodePosition(basicElement, obj);\n basicElement.rotateAngle = obj.rotateAngle;\n setElementStype(obj, basicElement);\n canvas.children.push(basicElement);\n // eslint-disable-next-line\n var radiusTextEle = this.textElement(obj);\n if (obj.enableShapeLabel) {\n radiusTextEle.style.color = obj.fontColor;\n radiusTextEle.style.strokeColor = obj.labelBorderColor;\n radiusTextEle.style.fill = obj.labelFillColor;\n radiusTextEle.style.fontSize = obj.fontSize;\n radiusTextEle.style.fontFamily = obj.fontFamily;\n radiusTextEle.style.opacity = obj.labelOpacity;\n }\n // eslint-disable-next-line\n var length_1 = findPointsLength([\n { x: obj.bounds.x, y: obj.bounds.y },\n { x: obj.bounds.x + obj.bounds.width, y: obj.bounds.y + obj.bounds.height }\n ]);\n if (!this.pdfViewer.enableImportAnnotationMeasurement && obj.notes && obj.notes !== '') {\n radiusTextEle.content = obj.notes;\n }\n else {\n // eslint-disable-next-line max-len\n radiusTextEle.content = this.pdfViewer.annotation.measureAnnotationModule.setConversion((obj.bounds.width / 2) * this.pdfViewer.annotation.measureAnnotationModule.pixelToPointFactor, obj);\n }\n radiusTextEle.rotateValue = { y: -10, x: obj.bounds.width / 4, angle: obj.rotateAngle };\n canvas.children.push(radiusTextEle);\n break;\n case 'StickyNotes':\n // eslint-disable-next-line\n var pathContent2 = new ImageElement();\n pathContent2.source = obj.data;\n pathContent2.width = obj.bounds.width;\n pathContent2.height = obj.bounds.height;\n pathContent2.style.strokeColor = obj.strokeColor;\n pathContent2.style.strokeWidth = 0;\n content = pathContent2;\n canvas.children.push(content);\n break;\n case 'SignatureText':\n //eslint-disable-next-line\n var rectElements = new DrawingElement();\n rectElements.style.strokeWidth = 0;\n content = rectElements;\n content.style.strokeWidth = 0;\n canvas.style.strokeWidth = 0;\n canvas.children.push(content);\n // eslint-disable-next-line\n var signatureText = this.textElement(obj);\n signatureText.style.fontFamily = obj.fontFamily;\n signatureText.style.fontSize = obj.fontSize;\n signatureText.style.textAlign = 'Left';\n signatureText.rotateValue = undefined;\n signatureText.content = obj.data;\n signatureText.style.strokeWidth = 0;\n canvas.children.push(signatureText);\n break;\n case 'FreeText':\n // eslint-disable-next-line\n var rectElement = new DrawingElement();\n content = rectElement;\n canvas.children.push(content);\n // eslint-disable-next-line\n var freeTextEle = this.textElement(obj);\n freeTextEle = new TextElement();\n freeTextEle.style.fontFamily = obj.fontFamily;\n freeTextEle.style.fontSize = obj.fontSize;\n freeTextEle.style.textAlign = 'Left';\n if (obj.textAlign.toLowerCase() === 'center') {\n freeTextEle.style.textAlign = 'Center';\n }\n else if (obj.textAlign.toLowerCase() === 'right') {\n freeTextEle.style.textAlign = 'Right';\n }\n else if (obj.textAlign.toLowerCase() === 'justify') {\n freeTextEle.style.textAlign = 'Justify';\n }\n freeTextEle.style.color = obj.fontColor;\n freeTextEle.style.bold = obj.font.isBold;\n freeTextEle.style.italic = obj.font.isItalic;\n if (obj.font.isUnderline === true) {\n freeTextEle.style.textDecoration = 'Underline';\n }\n else if (obj.font.isStrikeout === true) {\n freeTextEle.style.textDecoration = 'LineThrough';\n }\n freeTextEle.rotateValue = undefined;\n freeTextEle.content = obj.dynamicText;\n freeTextEle.style.opacity = obj.opacity;\n freeTextEle.margin.left = 4;\n freeTextEle.margin.top = 5 * (obj.fontSize / 16);\n if (this.pdfViewer.freeTextSettings.enableAutoFit) {\n freeTextEle.style.textWrapping = 'Wrap';\n }\n else {\n freeTextEle.style.textWrapping = 'WrapWithOverflow';\n }\n freeTextEle.relativeMode = 'Point';\n freeTextEle.setOffsetWithRespectToBounds(0, 0, null);\n freeTextEle.relativeMode = 'Point';\n canvas.children.push(freeTextEle);\n break;\n }\n content.id = obj.id + '_content';\n content.relativeMode = 'Object';\n if (!isStamp) {\n if (obj.bounds.width !== undefined) {\n content.width = obj.bounds.width;\n if (isAnnotationSet) {\n if ((content.width < annotationMinWidth) || (content.width > annotationMaxWidth)) {\n if (content.width < annotationMinWidth) {\n content.width = annotationMinWidth;\n }\n if (content.width > annotationMaxWidth) {\n content.width = annotationMaxWidth;\n }\n }\n }\n }\n content.horizontalAlignment = 'Stretch';\n if (obj.bounds.height !== undefined) {\n content.height = obj.bounds.height;\n if (isAnnotationSet) {\n if ((content.height < annotationMinHeight) || (content.width > annotationMaxHeight)) {\n if (content.height < annotationMinHeight) {\n content.height = annotationMinHeight;\n }\n if (content.height > annotationMaxHeight) {\n content.height = annotationMaxHeight;\n }\n }\n }\n }\n setElementStype(obj, content);\n }\n content.isRectElement = true;\n content.verticalAlignment = 'Stretch';\n return content;\n };\n Drawing.prototype.textElement = function (obj) {\n var textele = new TextElement();\n setElementStype(obj, textele);\n textele.horizontalAlignment = 'Center';\n obj.shapeAnnotationType === 'SignatureText' ? textele.verticalAlignment = 'Center' : textele.verticalAlignment = 'Top';\n textele.relativeMode = 'Object';\n textele.setOffsetWithRespectToBounds(.5, .5, 'Absolute');\n return textele;\n };\n /**\n * @private\n * @param {DrawingElement} obj - Specified the drawing element.\n * @param {PdfAnnotationBaseModel} node - Specified the node element.\n * @returns {void}\n */\n Drawing.prototype.setNodePosition = function (obj, node) {\n if (node.shapeAnnotationType === 'Perimeter') {\n obj.offsetX = node.bounds.x + node.bounds.width / 2;\n obj.offsetY = node.bounds.y + node.bounds.height / 2;\n }\n else if (node.shapeAnnotationType === 'Radius') {\n // eslint-disable-next-line max-len\n var trasPoint = { x: node.bounds.x + (node.bounds.width / 2) + (node.bounds.width / 4), y: node.bounds.y + (node.bounds.height / 2) };\n var center = { x: (node.bounds.x + (node.bounds.width / 2)), y: (node.bounds.y + (node.bounds.height / 2)) };\n var matrix = identityMatrix();\n rotateMatrix(matrix, node.rotateAngle, center.x, center.y);\n var rotatedPoint = transformPointByMatrix(matrix, trasPoint);\n var newPoint1 = { x: rotatedPoint.x, y: rotatedPoint.y };\n obj.offsetX = newPoint1.x;\n obj.offsetY = newPoint1.y;\n obj.width = node.bounds.width / 2;\n }\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @returns {Container} - Returns the container element.\n */\n Drawing.prototype.initContainer = function (obj) {\n if (!obj.id) {\n obj.id = randomId();\n }\n // Creates canvas element\n var canvas = new Canvas();\n canvas.id = obj.id;\n canvas.offsetX = obj.bounds.x + (obj.bounds.width * 0.5);\n canvas.offsetY = obj.bounds.y + (obj.bounds.height * 0.5);\n canvas.style.fill = 'transparent';\n canvas.style.strokeColor = 'transparent';\n canvas.rotateAngle = obj.rotateAngle;\n obj.wrapper = canvas;\n return canvas;\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @returns {Canvas} - Returns the canvas element.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Drawing.prototype.initLine = function (obj) {\n if (!obj.id) {\n obj.id = randomId();\n }\n var bpmnElement;\n var container = new Canvas();\n var segment = new PathElement();\n segment.id = obj.id + '_path';\n var srcDecorator = new PathElement();\n var targetDecorator = new PathElement();\n if (obj.vertexPoints.length) {\n obj.sourcePoint = obj.vertexPoints[0];\n obj.targetPoint = obj.vertexPoints[obj.vertexPoints.length - 1];\n for (var i = 0; i < obj.vertexPoints.length; i++) {\n if (i !== 0 && i !== obj.vertexPoints.length - 1) {\n obj.segments.push(obj.vertexPoints[parseInt(i.toString(), 10)]);\n }\n }\n }\n segment = getSegmentElement(obj, segment);\n var points = [];\n points = getConnectorPoints(obj);\n // points = this.clipDecorators(this, points);\n var leaders = [];\n var labels = [];\n if (obj.shapeAnnotationType === 'Distance') {\n leaders = initLeaders(obj, points);\n labels = initDistanceLabel(obj, points, this.pdfViewer.annotation.measureAnnotationModule, this.pdfViewer);\n }\n if ((obj.shapeAnnotationType === 'Line' || obj.shapeAnnotationType === 'LineWidthArrowHead') && obj.measureType === 'Perimeter') {\n labels = initPerimeterLabel(obj, points, this.pdfViewer.annotation.measureAnnotationModule, this.pdfViewer);\n }\n if (obj.enableShapeLabel === true && !(obj.shapeAnnotationType === 'Distance') && !(obj.measureType === 'Perimeter')) {\n var angle = Point.findAngle(points[0], points[1]);\n var textele = this.textElement(obj);\n textele.id = randomId();\n if (!this.pdfViewer.enableImportAnnotationMeasurement && obj.notes && obj.notes !== '') {\n textele.content = obj.notes;\n }\n else {\n textele.content = obj.labelContent;\n }\n textele.style.strokeColor = obj.labelBorderColor;\n textele.style.fill = obj.labelFillColor;\n textele.style.fontSize = obj.fontSize;\n textele.style.color = obj.fontColor;\n textele.style.fontFamily = obj.fontFamily;\n textele.style.opacity = obj.labelOpacity;\n textele.rotateValue = { y: -10, angle: angle };\n labels.push(textele);\n }\n points = clipDecorators(obj, points);\n var bounds = Rect.toBounds(points);\n container.width = bounds.width;\n container.height = bounds.height;\n container.offsetX = bounds.x + container.pivot.x * bounds.width;\n container.offsetY = bounds.y + container.pivot.y * bounds.height;\n var anglePoints = obj.vertexPoints;\n var accessContent = 'getDescription';\n // eslint-disable-next-line max-len\n if (obj.shapeAnnotationType === 'Line' || obj.shapeAnnotationType === 'LineWidthArrowHead' || obj.shapeAnnotationType === 'Distance') {\n srcDecorator = getDecoratorElement(obj, points[0], anglePoints[1], true);\n targetDecorator = getDecoratorElement(obj, points[points.length - 1], anglePoints[anglePoints.length - 2], false);\n }\n srcDecorator.id = obj.id + '_srcDec';\n targetDecorator.id = obj.id + '_tarDec';\n /* eslint-disable @typescript-eslint/dot-notation */\n segment.style['fill'] = 'transparent';\n container.style.strokeColor = 'transparent';\n container.style.fill = 'transparent';\n container.style.strokeWidth = 0;\n container.children = [];\n setElementStype(obj, segment);\n container.children.push(segment);\n if (leaders.length > 0) {\n for (var i = 0; i < leaders.length; i++) {\n container.children.push(leaders[parseInt(i.toString(), 10)]);\n }\n }\n if (labels.length > 0) {\n for (var i = 0; i < labels.length; i++) {\n container.children.push(labels[parseInt(i.toString(), 10)]);\n }\n }\n container.children.push(srcDecorator);\n container.children.push(targetDecorator);\n if (obj.shapeAnnotationType === 'LineWidthArrowHead') {\n container.children[1].width = 12 * obj.thickness;\n container.children[1].height = 12 * obj.thickness;\n container.children[2].width = 12 * obj.thickness;\n container.children[2].height = 12 * obj.thickness;\n }\n container.id = obj.id;\n container.offsetX = segment.offsetX;\n container.offsetY = segment.offsetY;\n container.width = segment.width;\n container.height = segment.height;\n points = getConnectorPoints(obj);\n obj.wrapper = container;\n return container;\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @returns {PdfAnnotationBaseModel} - Returns the added annotaion object.\n */\n Drawing.prototype.add = function (obj) {\n var allowServerDataBind = this.pdfViewer.allowServerDataBinding;\n this.pdfViewer.enableServerDataBinding(false);\n if (obj.formFieldAnnotationType && this.pdfViewer.formDesignerModule) {\n obj = new PdfFormFieldBase(this.pdfViewer, 'formFields', obj, true);\n obj = this.initObject(obj);\n this.pdfViewer.formFields.push(obj);\n }\n else {\n obj = new PdfAnnotationBase(this.pdfViewer, 'annotations', obj, true);\n obj = this.initObject(obj);\n this.pdfViewer.annotations.push(obj);\n }\n this.pdfViewer.enableServerDataBinding(allowServerDataBind, true);\n return obj;\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @returns {void}\n */\n Drawing.prototype.remove = function (obj) {\n var allowServerDataBind = this.pdfViewer.allowServerDataBinding;\n this.pdfViewer.enableServerDataBinding(false);\n var index = obj.pageIndex;\n for (var i = 0; i < this.pdfViewer.annotations.length; i++) {\n var annotation = this.pdfViewer.annotations[parseInt(i.toString(), 10)];\n if ((annotation.id && (annotation.id === obj.id || annotation.id.split('_')[0] === obj.id)) || (annotation.wrapper && annotation.wrapper.id === obj.id)) {\n this.pdfViewer.annotations.splice(i, 1);\n var objects = this.getPageObjects(obj.pageIndex);\n for (var j = 0; j < objects.length; j++) {\n if (objects[parseInt(j.toString(), 10)].id === obj.id) {\n objects.splice(j, 1);\n if (obj.shapeAnnotationType === 'Path' || obj.shapeAnnotationType === 'SignatureImage' || obj.shapeAnnotationType === 'SignatureText') {\n this.refreshCanvasDiagramLayer(undefined, index, obj.id);\n }\n else {\n this.pdfViewer.renderDrawing(undefined, index);\n }\n }\n }\n // need to add code snippet to remove from z index table \n }\n }\n for (var i = 0; i < this.pdfViewer.formFields.length; i++) {\n var element = this.pdfViewer.formFields[parseInt(i.toString(), 10)];\n if (element.id === obj.id || element.wrapper.id === obj.id) {\n this.pdfViewer.formFields.splice(i, 1);\n if (this.pdfViewer.formDesignerModule && obj.formFieldAnnotationType) {\n this.pdfViewer.formFieldCollection.splice(i, 1);\n }\n var objects = this.getPageObjects(obj.pageIndex);\n for (var j = 0; j < objects.length; j++) {\n if (objects[parseInt(j.toString(), 10)].id === obj.id) {\n objects.splice(j, 1);\n break;\n }\n if (objects[parseInt(j.toString(), 10)] && objects[parseInt(j.toString(), 10)].id && objects[parseInt(j.toString(), 10)].id.indexOf(obj.id) !== -1) {\n objects.splice(j, 1);\n }\n }\n }\n }\n if (obj.formFieldAnnotationType === 'Textbox' || obj.formFieldAnnotationType === 'Checkbox' || obj.formFieldAnnotationType === 'RadioButton'\n || obj.formFieldAnnotationType === 'PasswordField' || obj.formFieldAnnotationType === 'DropdownList' || obj.formFieldAnnotationType === 'ListBox' || obj.formFieldAnnotationType === 'SignatureField' || obj.formFieldAnnotationType === 'InitialField') {\n for (var i = 0; i < this.pdfViewer.formFieldCollections.length; i++) {\n // eslint-disable-next-line\n var element = this.pdfViewer.formFieldCollections[i];\n if (element.id === obj.id) {\n this.pdfViewer.formFieldCollections.splice(i, 1);\n }\n }\n }\n if (obj.formFieldAnnotationType === 'Textbox' || obj.formFieldAnnotationType === 'Checkbox' || obj.formFieldAnnotationType === 'RadioButton'\n || obj.formFieldAnnotationType === 'PasswordField' || obj.formFieldAnnotationType === 'DropdownList' || obj.formFieldAnnotationType === 'ListBox' || obj.formFieldAnnotationType === 'SignatureField' || obj.formFieldAnnotationType === 'InitialField') {\n // eslint-disable-next-line\n var inputField = document.getElementById('form_field_' + obj.id + '_content_html_element');\n if (inputField) {\n inputField.remove();\n this.pdfViewer.renderDrawing(undefined, index);\n var field = {\n // eslint-disable-next-line\n name: obj.name, id: obj.id, value: obj.value, fontFamily: obj.fontFamily, fontSize: obj.fontSize, fontStyle: obj.fontStyle,\n // eslint-disable-next-line\n color: obj.color, backgroundColor: obj.backgroundColor, alignment: obj.alignment, isReadonly: obj.isReadonly, visibility: obj.visibility,\n // eslint-disable-next-line\n maxLength: obj.maxLength, isRequired: obj.isRequired, isPrint: obj.isPrint, rotation: obj.rotateAngle, tooltip: obj.tooltip,\n // eslint-disable-next-line\n options: obj.options, isChecked: obj.isChecked, isSelected: obj.isSelected\n };\n this.pdfViewer.fireFormFieldRemoveEvent('formFieldRemove', field, obj.pageIndex);\n this.pdfViewer.formDesignerModule.removeFieldsFromAnnotationCollections(obj.id);\n }\n }\n this.pdfViewer.enableServerDataBinding(allowServerDataBind, true);\n };\n /**\n * @private\n * @param {number} pageIndex - Specified the page index.\n * @returns {PdfAnnotationBaseModel[]} - Returns the annotation base model collections.\n */\n Drawing.prototype.getPageObjects = function (pageIndex) {\n var pageTable = this.getPageTable(pageIndex);\n return pageTable.objects;\n };\n /**\n * @private\n * @param {HTMLCanvasElement} diagramLayer - Specified the diagram layer element.\n * @param {number} pageIndex - Specified the page index.\n * @param {string} objectId - Specified the object id.\n * @returns {void}\n */\n Drawing.prototype.refreshCanvasDiagramLayer = function (diagramLayer, pageIndex, objectId) {\n if (!diagramLayer) {\n diagramLayer = document.getElementById(this.pdfViewer.element.id + '_annotationCanvas_' + pageIndex);\n }\n if (diagramLayer) {\n var zoom = this.pdfViewer.viewerBase.getZoomFactor();\n var width = diagramLayer.width / zoom;\n var height = diagramLayer.height / zoom;\n var ctx = diagramLayer.getContext('2d');\n ctx.lineCap = \"round\";\n ctx.lineJoin = \"round\";\n if (zoom < 1) {\n ctx.lineWidth = ctx.lineWidth / zoom;\n }\n var devicePixelRatio_1 = this.pdfViewer.viewerBase.getWindowDevicePixelRatio();\n var zoomRatio = zoom * devicePixelRatio_1;\n if (!Browser.isDevice || (Browser.isDevice && zoom <= 0.7)) {\n ctx.setTransform(zoomRatio, 0, 0, zoomRatio, 0, 0);\n }\n else {\n ctx.setTransform(zoom, 0, 0, zoom, 0, 0);\n }\n ctx.clearRect(0, 0, width, height);\n var objects = this.getPageObjects(pageIndex);\n for (var i = 0; i < objects.length; i++) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var renderElement = void 0;\n if (diagramLayer.id === this.pdfViewer.element.id + '_print_annotation_layer_' + pageIndex) {\n if (objects[parseInt(i.toString(), 10)].isPrint) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n renderElement = this.pdfViewer.nameTable[objects[parseInt(i.toString(), 10)].id].wrapper;\n if (!isNullOrUndefined(renderElement)) {\n refreshDiagramElements(diagramLayer, [renderElement], this.renderer);\n }\n }\n }\n else {\n // eslint-disable-next-line\n renderElement = this.pdfViewer.nameTable[objects[i].id].wrapper;\n refreshDiagramElements(diagramLayer, [renderElement], this.renderer);\n }\n }\n }\n };\n /**\n * @private\n * @param {number} index - Specified the page index.\n * @returns {void}\n */\n Drawing.prototype.clearHighlighter = function (index) {\n var adornerSvg = this.getAdornerLayerSvg(this.pdfViewer.element.id + index + '_diagramAdornerLayer', index);\n if (adornerSvg) {\n var highlighter = adornerSvg.getElementById(adornerSvg.id + '_highlighter');\n if (highlighter) {\n highlighter.parentNode.removeChild(highlighter);\n }\n }\n };\n /**\n * @private\n * @param {string} diagramId - Specified the diagram id.\n * @param {number} index - Specified the page index.\n * @returns {SVGSVGElement} Return the svg element.\n */\n Drawing.prototype.getSelectorElement = function (diagramId, index) {\n var adornerLayer = null;\n var adornerSvg = this.getAdornerLayerSvg(diagramId, index);\n if (adornerSvg) {\n adornerLayer = adornerSvg.getElementById(diagramId + index + '_SelectorElement');\n }\n return adornerLayer;\n };\n /**\n * @private\n * @param {string} diagramId - Specified the diagram id.\n * @param {number} index - Specified the page index.\n * @returns {SVGSVGElement} Return the svg element.\n */\n Drawing.prototype.getAdornerLayerSvg = function (diagramId, index) {\n var adornerLayerSvg = null;\n var diagramElement = getDiagramElement(diagramId + index + '_diagramAdornerLayer');\n // eslint-disable-next-line\n var elementcoll;\n if (diagramElement) {\n elementcoll = diagramElement.getElementsByClassName('e-adorner-layer' + index);\n adornerLayerSvg = elementcoll[0];\n }\n return adornerLayerSvg;\n };\n /**\n * @private\n * @param {number} index - Specified the page index.\n * @returns {void}\n */\n Drawing.prototype.clearSelectorLayer = function (index) {\n var adornerSvg = this.getAdornerLayerSvg(this.pdfViewer.element.id, index);\n if (adornerSvg) {\n var selectionRect = adornerSvg.getElementById(this.pdfViewer.adornerSvgLayer.id + '_selected_region');\n if (selectionRect) {\n selectionRect.parentNode.removeChild(selectionRect);\n }\n this.clearHighlighter(index);\n var childNodes = this.getSelectorElement(this.pdfViewer.element.id, index).childNodes;\n var child = void 0;\n for (var i = childNodes.length; i > 0; i--) {\n child = childNodes[i - 1];\n child.parentNode.removeChild(child);\n }\n }\n };\n /**\n * @private\n * @param {number} select - Specified the select value.\n * @param {AnnotationSelectorSettingsModel} currentSelector - Specified the annotation selector element.\n * @param {PdfAnnotationBaseModel} helper - Specified the annotation helper element.\n * @param {boolean} isSelect - Specified the is select or not.\n * @returns {void}\n */\n // eslint-disable-next-line max-len\n Drawing.prototype.renderSelector = function (select, currentSelector, helper, isSelect) {\n if (!helper || isSelect) {\n var size = new Size();\n var selectorModel = this.pdfViewer.selectedItems;\n this.clearSelectorLayer(select);\n if (selectorModel.wrapper) {\n selectorModel.wrapper.measure(size);\n var zoom = this.pdfViewer.viewerBase.getZoomFactor();\n selectorModel.wrapper.arrange(selectorModel.wrapper.desiredSize);\n selectorModel.width = selectorModel.wrapper.actualSize.width;\n selectorModel.height = selectorModel.wrapper.actualSize.height;\n selectorModel.offsetX = selectorModel.wrapper.offsetX;\n selectorModel.offsetY = selectorModel.wrapper.offsetY;\n if (selectorModel.annotations.length === 1) {\n selectorModel.rotateAngle = selectorModel.annotations[0].rotateAngle;\n selectorModel.wrapper.rotateAngle = selectorModel.annotations[0].rotateAngle;\n //selectorModel.pivot = selectorModel.annotations[0].pivot;\n }\n var bounds = selectorModel.wrapper.bounds;\n // eslint-disable-next-line\n var selectorElement = void 0;\n if (selectorModel.formFields.length) {\n for (var i = 0; i < selectorModel.formFields.length; i++) {\n var node = selectorModel.formFields[parseInt(i.toString(), 10)];\n selectorElement = this.getSelectorElement(this.pdfViewer.element.id, select);\n if (selectorElement && node.pageIndex === select && this.pdfViewer.designerMode) {\n this.renderResizeHandle(node.wrapper.children[0], selectorElement, selectorModel.thumbsConstraints, zoom, undefined, undefined, undefined, false, true, null, null, currentSelector);\n }\n if (this.pdfViewer.formDesignerModule && node.formFieldAnnotationType) {\n // eslint-disable-next-line max-len\n if (!this.pdfViewer.viewerBase.isFormFieldSelect && !this.pdfViewer.viewerBase.isFormFieldMouseDown && !this.pdfViewer.viewerBase.isFormFieldMouseMove) {\n this.pdfViewer.viewerBase.isFormFieldSelect = true;\n var field = {\n // eslint-disable-next-line\n name: node.name, id: node.id, value: node.value, fontFamily: node.fontFamily, fontSize: node.fontSize, fontStyle: node.fontStyle, color: node.color, backgroundColor: node.backgroundColor, alignment: node.alignment, isReadonly: node.isReadonly, visibility: node.visibility,\n // eslint-disable-next-line\n maxLength: node.maxLength, isRequired: node.isRequired, isPrint: node.isPrint, rotation: node.rotateAngle, tooltip: node.tooltip,\n // eslint-disable-next-line\n options: node.options, isChecked: node.isChecked, isSelected: node.isSelected\n };\n this.pdfViewer.fireFormFieldSelectEvent('formFieldSelect', field, node.pageIndex, this.pdfViewer.formDesignerModule.isProgrammaticSelection);\n }\n }\n }\n }\n if (selectorModel.annotations.length) {\n for (var j = 0; j < selectorModel.annotations.length; j++) {\n var node = selectorModel.annotations[parseInt(j.toString(), 10)];\n selectorElement = this.getSelectorElement(this.pdfViewer.element.id, select);\n var constraints = true;\n if (selectorElement && node.pageIndex === select) {\n if (node.shapeAnnotationType === 'Distance' || node.shapeAnnotationType === 'Line' ||\n node.shapeAnnotationType === 'LineWidthArrowHead' || node.shapeAnnotationType === 'Polygon') {\n this.renderEndPointHandle(node, selectorElement, selectorModel.thumbsConstraints, { scale: zoom, tx: 0, ty: 0 }, undefined, undefined, true, currentSelector);\n }\n else {\n if (node.shapeAnnotationType === 'StickyNotes') {\n this.renderResizeHandle(node.wrapper.children[0], selectorElement, selectorModel.thumbsConstraints, zoom, undefined, undefined, undefined, false, true, null, null, currentSelector);\n }\n else {\n if (this.pdfViewer.tool !== 'Stamp') {\n // eslint-disable-next-line\n var isSignature = node.shapeAnnotationType === 'Path' || node.formFieldAnnotationType === 'SignatureField' || node.formFieldAnnotationType === 'InitialField';\n this.renderResizeHandle(node.wrapper.children[0], selectorElement, selectorModel.thumbsConstraints, zoom, undefined, undefined, undefined, node.shapeAnnotationType === 'Stamp', false, isSignature, (node.shapeAnnotationType === 'FreeText' || node.shapeAnnotationType === 'HandWrittenSignature' || node.shapeAnnotationType === 'SignatureImage' || node.shapeAnnotationType === 'Image' || node.shapeAnnotationType === 'SignatureText'), currentSelector);\n }\n }\n }\n if (!this.pdfViewer.viewerBase.isNewSignatureAdded && (node.shapeAnnotationType === 'HandWrittenSignature' || node.shapeAnnotationType === 'SignatureText' || node.shapeAnnotationType === 'SignatureImage')) {\n this.pdfViewer.annotationModule.selectSignature(node.signatureName, node.pageIndex, node);\n }\n if (this.pdfViewer.formDesignerModule && node.formFieldAnnotationType) {\n // eslint-disable-next-line max-len\n if (!this.pdfViewer.viewerBase.isFormFieldSelect && !this.pdfViewer.viewerBase.isFormFieldMouseDown && !this.pdfViewer.viewerBase.isFormFieldMouseMove) {\n this.pdfViewer.viewerBase.isFormFieldSelect = true;\n var field = {\n // eslint-disable-next-line\n value: node.value, fontFamily: node.fontFamily, fontSize: node.fontSize, fontStyle: node.fontStyle,\n // eslint-disable-next-line\n color: node.color, backgroundColor: node.backgroundColor, alignment: node.alignment, isReadonly: node.isReadonly, visibility: node.visibility,\n // eslint-disable-next-line\n maxLength: node.maxLength, isRequired: node.isRequired, isPrint: node.isPrint, rotation: node.rotateAngle, tooltip: node.tooltip,\n // eslint-disable-next-line\n options: node.options, isChecked: node.isChecked, isSelected: node.isSelected\n };\n this.pdfViewer.fireFormFieldSelectEvent('formFieldSelect', field, node.pageIndex, this.pdfViewer.formDesignerModule.isProgrammaticSelection);\n }\n }\n if (node.annotName !== '' && node.annotName !== 'SignatureText') {\n if (helper && (node === helper) && !node.formFieldAnnotationType) {\n // eslint-disable-next-line max-len\n if (!this.pdfViewer.viewerBase.isAddComment && !this.pdfViewer.viewerBase.isAnnotationSelect && !this.pdfViewer.viewerBase.isAnnotationMouseDown && !this.pdfViewer.viewerBase.isAnnotationMouseMove && !this.pdfViewer.viewerBase.isInkAdded && !this.pdfViewer.viewerBase.isNewStamp) {\n this.pdfViewer.viewerBase.isAnnotationSelect = true;\n this.pdfViewer.annotationModule.annotationSelect(node.annotName, node.pageIndex, node);\n }\n }\n }\n }\n }\n }\n }\n }\n };\n /**\n * Rotates the given nodes/connectors by the given angle\n *\n * @private\n * @param {PdfAnnotationBaseModel | SelectorModel} obj - Specified the objects to be rotated.\n * @param {number} angle - Specified the angle by which the objects have to be rotated.\n * @param {PointModel} pivot - Specified the reference point with reference to which the objects have to be rotated.\n * @param {AnnotationSelectorSettingsModel} currentSelector - Specified the current selector value.\n * @returns {void}\n */\n // eslint-disable-next-line max-len\n Drawing.prototype.rotate = function (obj, angle, pivot, currentSelector) {\n var checkBoundaryConstraints;\n if (obj) {\n pivot = pivot || { x: obj.wrapper.offsetX, y: obj.wrapper.offsetY };\n if (obj instanceof Selector) {\n obj.rotateAngle += angle;\n obj.wrapper.rotateAngle += angle;\n var objects = [];\n objects = objects.concat(obj.annotations);\n this.rotateObjects(obj, objects, angle, pivot, null, currentSelector);\n }\n else {\n this.rotateObjects(obj, [obj], angle, pivot);\n }\n }\n return checkBoundaryConstraints;\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel | SelectorModel} parent - Specified the annotation object.\n * @param {PdfAnnotationBaseModel[]} objects - Specified the annotation objects.\n * @param {number} angle - Specified the annotation angle.\n * @param {PointModel} pivot - Specified the pivot value.\n * @param {boolean} includeParent - Specified the include parent value.\n * @param {AnnotationSelectorSettingsModel} currentSelector - Specified the current selector value.\n * @returns {void}\n */\n Drawing.prototype.rotateObjects = function (parent, objects, angle, pivot, includeParent, currentSelector) {\n pivot = pivot || {};\n var matrix = identityMatrix();\n rotateMatrix(matrix, angle, pivot.x, pivot.y);\n for (var _i = 0, objects_1 = objects; _i < objects_1.length; _i++) {\n var obj = objects_1[_i];\n if (obj instanceof PdfAnnotationBase) {\n if (includeParent !== false || parent !== obj) {\n obj.rotateAngle += angle;\n obj.rotateAngle = (obj.rotateAngle + 360) % 360;\n var newOffset = transformPointByMatrix(matrix, { x: obj.wrapper.offsetX, y: obj.wrapper.offsetY });\n obj.wrapper.offsetX = newOffset.x;\n obj.wrapper.offsetY = newOffset.y;\n this.nodePropertyChange(obj, { rotateAngle: obj.rotateAngle });\n }\n this.renderSelector(obj.pageIndex, currentSelector);\n }\n }\n };\n Drawing.prototype.getParentSvg = function (element, targetElement, canvas) {\n if (element && element.id) {\n if (targetElement && targetElement === 'selector') {\n return this.pdfViewer.adornerSvgLayer;\n }\n }\n return canvas;\n };\n /**\n * @private\n * @param {DrawingElement} selector - Specified the annotation selector object.\n * @param {HTMLCanvasElement | SVGElement} canvas - Specified the canvas element.\n * @param {any} currentSelector - Specified the current selector value.\n * @param {Transforms} transform - Specfied the transform value.\n * @param {number} enableNode - Specified the node number.\n * @param {boolean} isBorderTickness - Specified is thickness or not.\n * @param {boolean} isSwimlane - Specified is swimlane annotation or not.\n * @param {boolean} isSticky - Specified is sticky annotation or not.\n * @returns {void}\n */\n // eslint-disable-next-line\n Drawing.prototype.renderBorder = function (selector, canvas, currentSelector, transform, enableNode, isBorderTickness, isSwimlane, isSticky) {\n var wrapper = selector;\n var options = getBaseShapeAttributes(wrapper, transform);\n transform = transform || { scale: 1, tx: 0, ty: 0 };\n if (!isSticky) {\n options.x *= transform.scale;\n options.y *= transform.scale;\n options.width *= transform.scale;\n options.height *= transform.scale;\n options.fill = 'transparent';\n // eslint-disable-next-line max-len\n var shapeType = this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType;\n if (currentSelector && (typeof (currentSelector) !== 'object') && currentSelector !== '') {\n // eslint-disable-next-line\n var annotationSelector = JSON.parse(currentSelector);\n var borderColor = annotationSelector.selectionBorderColor === '' ? 'black' : annotationSelector.selectionBorderColor;\n options.stroke = borderColor;\n options.strokeWidth = currentSelector.selectionBorderThickness === 1 ? 1 : annotationSelector.selectionBorderThickness;\n // eslint-disable-next-line max-len\n var lineDash = annotationSelector.selectorLineDashArray.length === 0 ? [6, 3] : annotationSelector.selectorLineDashArray;\n if (lineDash.length > 2) {\n lineDash = [lineDash[0], lineDash[1]];\n }\n options.dashArray = lineDash.toString();\n }\n else {\n if (!this.pdfViewer.designerMode) {\n if ((shapeType === 'HandWrittenSignature' || shapeType === 'SignatureText' || shapeType === 'SignatureImage') || shapeType === 'Ink') {\n // eslint-disable-next-line\n var formField = this.pdfViewer.nameTable[selector.id.split('_')[0]];\n var isFormFieldSign = this.pdfViewer.viewerBase.checkSignatureFormField(selector.id);\n // if (isFormFieldSign && options.width + 21 !== formField.bounds.width && options.height + 21 !== formField.bounds.height) {\n // if (this.pdfViewer.signatureFitMode === 'Default') {\n // let selectorBounds: any = this.pdfViewer.formFieldsModule.getDefaultBoundsforSign(formField.bounds);\n // options.x = selectorBounds.x; options.y = selectorBounds.y; options.width = selectorBounds.width; options.height = selectorBounds.height;\n // } else {\n // options.x = formField.bounds.x; options.y = formField.bounds.y; options.width = formField.bounds.width; options.height = formField.bounds.height;\n // }\n // }\n this.getSignBorder(shapeType, options, isFormFieldSign);\n }\n else {\n this.getBorderSelector(shapeType, options);\n }\n }\n }\n options.class = 'e-pv-diagram-border';\n if (isSwimlane) {\n options.class += ' e-diagram-lane';\n }\n options.id = 'borderRect';\n options.id = 'borderRect';\n if (!enableNode) {\n options.class += ' e-disabled';\n }\n if (isBorderTickness) {\n options.class += ' e-thick-border';\n }\n options.cornerRadius = 0;\n }\n else {\n options.x *= transform.scale;\n options.y *= transform.scale;\n options.width *= transform.scale;\n options.height *= transform.scale;\n // eslint-disable-next-line max-len\n var shapeType = this.pdfViewer.selectedItems.annotations.length > 0 ? this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType\n : this.pdfViewer.selectedItems.formFields[0].formFieldAnnotationType;\n if (currentSelector && (typeof (currentSelector) !== 'object') && currentSelector !== '') {\n var annotationSelector = JSON.parse(currentSelector);\n var borderColor = annotationSelector.selectionBorderColor === '' ? 'black' : annotationSelector.selectionBorderColor;\n options.stroke = borderColor;\n options.strokeWidth = currentSelector.selectionBorderThickness === 1 ? 1 : annotationSelector.selectionBorderThickness;\n // eslint-disable-next-line max-len\n var lineDash = annotationSelector.selectorLineDashArray.length === 0 ? [6, 3] : annotationSelector.selectorLineDashArray;\n if (lineDash.length > 2) {\n lineDash = [lineDash[0], lineDash[1]];\n }\n options.dashArray = lineDash.toString();\n }\n else {\n this.getBorderSelector(shapeType, options);\n }\n }\n var parentSvg = this.getParentSvg(selector, 'selector');\n // eslint-disable-next-line max-len\n this.svgRenderer.drawRectangle(canvas, options, this.pdfViewer.element.id, undefined, true, parentSvg);\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} type - Specified the annotation object.\n * @param {BaseAttributes} options - Specified the options value.\n * @param {boolean} isFormFieldSign - Specified is form field sign or not.\n * @returns {void}\n */\n Drawing.prototype.getSignBorder = function (type, options, isFormFieldSign) {\n if (!isFormFieldSign && (type === 'HandWrittenSignature' || type === 'SignatureText' || type === 'SignatureImage') && this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings) {\n var borderColor = isNullOrUndefined(this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.selectionBorderColor) || this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.selectionBorderColor === '' ? '#0000ff' : this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.selectionBorderColor;\n options.stroke = borderColor;\n // eslint-disable-next-line max-len\n var thickness = isNullOrUndefined(this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.selectionBorderThickness) ? 1 : this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.selectionBorderThickness;\n options.strokeWidth = thickness;\n // eslint-disable-next-line max-len\n var lineDash = isNullOrUndefined(this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.selectorLineDashArray) || this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.selectorLineDashArray.length === 0 ? [4] : this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.selectorLineDashArray;\n if (lineDash.length > 2) {\n lineDash = [lineDash[0], lineDash[1]];\n }\n options.dashArray = lineDash.toString();\n }\n else if (type === 'Ink' && this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings) {\n var borderColor = isNullOrUndefined(this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.selectionBorderColor) || this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.selectionBorderColor === '' ? '#0000ff' : this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.selectionBorderColor;\n options.stroke = borderColor;\n // eslint-disable-next-line max-len\n var thickness = isNullOrUndefined(this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.selectionBorderThickness) ? 1 : this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.selectionBorderThickness;\n options.strokeWidth = thickness;\n // eslint-disable-next-line max-len\n var lineDash = isNullOrUndefined(this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.selectorLineDashArray) || this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.selectorLineDashArray.length === 0 ? [4] : this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.selectorLineDashArray;\n if (lineDash.length > 2) {\n lineDash = [lineDash[0], lineDash[1]];\n }\n options.dashArray = lineDash.toString();\n }\n else {\n var annotationSelector = this.pdfViewer.annotationSelectorSettings;\n var borderColor = annotationSelector.selectionBorderColor === '' ? 'black' : annotationSelector.selectionBorderColor;\n options.stroke = borderColor;\n options.strokeWidth = annotationSelector.selectionBorderThickness === 1 ? 1 : annotationSelector.selectionBorderThickness;\n // eslint-disable-next-line max-len\n var lineDash = annotationSelector.selectorLineDashArray.length === 0 ? [6, 3] : annotationSelector.selectorLineDashArray;\n if (lineDash.length > 2) {\n lineDash = [lineDash[0], lineDash[1]];\n }\n options.dashArray = lineDash.toString();\n }\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} type - Specified the annotation object.\n * @param {BaseAttributes} options - Specified the base attributes.\n * @returns {void}\n */\n Drawing.prototype.getBorderSelector = function (type, options) {\n var annotationSelector = this.pdfViewer.annotationSelectorSettings;\n var borderColor = isNullOrUndefined(annotationSelector.selectionBorderColor) || annotationSelector.selectionBorderColor === '' ? 'black' : annotationSelector.selectionBorderColor;\n options.stroke = borderColor;\n // eslint-disable-next-line max-len\n options.strokeWidth = isNullOrUndefined(annotationSelector.selectionBorderThickness) || annotationSelector.selectionBorderThickness === 1 ? 1 : annotationSelector.selectionBorderThickness;\n // eslint-disable-next-line max-len\n var lineDash = isNullOrUndefined(annotationSelector.selectorLineDashArray) || annotationSelector.selectorLineDashArray.length === 0 ? [6, 3] : annotationSelector.selectorLineDashArray;\n if (lineDash.length > 2) {\n lineDash = [lineDash[0], lineDash[1]];\n }\n options.dashArray = lineDash.toString();\n if (type === 'Rectangle' && this.pdfViewer.rectangleSettings.annotationSelectorSettings) {\n var borderColor_1 = isNullOrUndefined(this.pdfViewer.rectangleSettings.annotationSelectorSettings.selectionBorderColor) || this.pdfViewer.rectangleSettings.annotationSelectorSettings.selectionBorderColor === '' ? 'black' : this.pdfViewer.rectangleSettings.annotationSelectorSettings.selectionBorderColor;\n options.stroke = borderColor_1;\n // eslint-disable-next-line max-len\n var thickness = isNullOrUndefined(this.pdfViewer.rectangleSettings.annotationSelectorSettings.selectionBorderThickness) ? 1 : this.pdfViewer.rectangleSettings.annotationSelectorSettings.selectionBorderThickness;\n options.strokeWidth = thickness;\n // eslint-disable-next-line max-len\n var lineDash_1 = isNullOrUndefined(this.pdfViewer.rectangleSettings.annotationSelectorSettings.selectorLineDashArray) || this.pdfViewer.rectangleSettings.annotationSelectorSettings.selectorLineDashArray.length === 0 ? [4] : this.pdfViewer.rectangleSettings.annotationSelectorSettings.selectorLineDashArray;\n if (lineDash_1.length > 2) {\n lineDash_1 = [lineDash_1[0], lineDash_1[1]];\n }\n options.dashArray = lineDash_1.toString();\n }\n else if ((type === 'Textbox' || type === 'Checkbox' || type === 'RadioButton' || type === 'SignatureField' || type === 'InitialField' || type === 'DropdownList' || type === 'ListBox' || type === 'PasswordField') && this.pdfViewer.rectangleSettings.annotationSelectorSettings) {\n var borderColor_2 = isNullOrUndefined(this.pdfViewer.rectangleSettings.annotationSelectorSettings.selectionBorderColor) || this.pdfViewer.rectangleSettings.annotationSelectorSettings.selectionBorderColor === '' ? 'black' : this.pdfViewer.rectangleSettings.annotationSelectorSettings.selectionBorderColor;\n options.stroke = borderColor_2;\n // eslint-disable-next-line max-len\n var thickness = isNullOrUndefined(this.pdfViewer.rectangleSettings.annotationSelectorSettings.selectionBorderThickness) ? 1 : this.pdfViewer.rectangleSettings.annotationSelectorSettings.selectionBorderThickness;\n options.strokeWidth = thickness;\n // eslint-disable-next-line max-len\n var lineDash_2 = isNullOrUndefined(this.pdfViewer.rectangleSettings.annotationSelectorSettings.selectorLineDashArray) || this.pdfViewer.rectangleSettings.annotationSelectorSettings.selectorLineDashArray.length === 0 ? [4] : this.pdfViewer.rectangleSettings.annotationSelectorSettings.selectorLineDashArray;\n if (lineDash_2.length > 2) {\n lineDash_2 = [lineDash_2[0], lineDash_2[1]];\n }\n options.dashArray = lineDash_2.toString();\n }\n else if (type === 'Ellipse' && this.pdfViewer.circleSettings.annotationSelectorSettings) {\n var borderColor_3 = isNullOrUndefined(this.pdfViewer.circleSettings.annotationSelectorSettings.selectionBorderColor) || this.pdfViewer.circleSettings.annotationSelectorSettings.selectionBorderColor === '' ? 'black' : this.pdfViewer.circleSettings.annotationSelectorSettings.selectionBorderColor;\n options.stroke = borderColor_3;\n // eslint-disable-next-line max-len\n var thickness = isNullOrUndefined(this.pdfViewer.circleSettings.annotationSelectorSettings.selectionBorderThickness) ? 1 : this.pdfViewer.circleSettings.annotationSelectorSettings.selectionBorderThickness;\n options.strokeWidth = thickness;\n // eslint-disable-next-line max-len\n var lineDash_3 = isNullOrUndefined(this.pdfViewer.circleSettings.annotationSelectorSettings.selectorLineDashArray) || this.pdfViewer.circleSettings.annotationSelectorSettings.selectorLineDashArray.length === 0 ? [4] : this.pdfViewer.circleSettings.annotationSelectorSettings.selectorLineDashArray;\n if (lineDash_3.length > 2) {\n lineDash_3 = [lineDash_3[0], lineDash_3[1]];\n }\n options.dashArray = lineDash_3.toString();\n }\n else if (type === 'Radius' && this.pdfViewer.radiusSettings.annotationSelectorSettings) {\n var borderColor_4 = isNullOrUndefined(this.pdfViewer.radiusSettings.annotationSelectorSettings.selectionBorderColor) || this.pdfViewer.radiusSettings.annotationSelectorSettings.selectionBorderColor === '' ? 'black' : this.pdfViewer.radiusSettings.annotationSelectorSettings.selectionBorderColor;\n options.stroke = borderColor_4;\n // eslint-disable-next-line max-len\n var thickness = isNullOrUndefined(this.pdfViewer.radiusSettings.annotationSelectorSettings.selectionBorderThickness) ? 1 : this.pdfViewer.radiusSettings.annotationSelectorSettings.selectionBorderThickness;\n options.strokeWidth = thickness;\n // eslint-disable-next-line max-len\n var lineDash_4 = isNullOrUndefined(this.pdfViewer.radiusSettings.annotationSelectorSettings.selectorLineDashArray) || this.pdfViewer.radiusSettings.annotationSelectorSettings.selectorLineDashArray.length === 0 ? [4] : this.pdfViewer.radiusSettings.annotationSelectorSettings.selectorLineDashArray;\n if (lineDash_4.length > 2) {\n lineDash_4 = [lineDash_4[0], lineDash_4[1]];\n }\n options.dashArray = lineDash_4.toString();\n }\n else if (type === 'FreeText' && this.pdfViewer.freeTextSettings.annotationSelectorSettings) {\n var borderColor_5 = isNullOrUndefined(this.pdfViewer.freeTextSettings.annotationSelectorSettings.selectionBorderColor) || this.pdfViewer.freeTextSettings.annotationSelectorSettings.selectionBorderColor === '' ? 'black' : this.pdfViewer.freeTextSettings.annotationSelectorSettings.selectionBorderColor;\n options.stroke = borderColor_5;\n // eslint-disable-next-line max-len\n var thickness = isNullOrUndefined(this.pdfViewer.freeTextSettings.annotationSelectorSettings.selectionBorderThickness) ? 1 : this.pdfViewer.freeTextSettings.annotationSelectorSettings.selectionBorderThickness;\n options.strokeWidth = thickness;\n // eslint-disable-next-line max-len\n var lineDash_5 = isNullOrUndefined(this.pdfViewer.freeTextSettings.annotationSelectorSettings.selectorLineDashArray) || this.pdfViewer.freeTextSettings.annotationSelectorSettings.selectorLineDashArray.length === 0 ? [4] : this.pdfViewer.freeTextSettings.annotationSelectorSettings.selectorLineDashArray;\n if (lineDash_5.length > 2) {\n lineDash_5 = [lineDash_5[0], lineDash_5[1]];\n }\n options.dashArray = lineDash_5.toString();\n }\n else if (type === 'StickyNotes' && this.pdfViewer.stickyNotesSettings.annotationSelectorSettings) {\n var borderColor_6 = isNullOrUndefined(this.pdfViewer.stickyNotesSettings.annotationSelectorSettings.selectionBorderColor) || this.pdfViewer.stickyNotesSettings.annotationSelectorSettings.selectionBorderColor === '' ? 'black' : this.pdfViewer.stickyNotesSettings.annotationSelectorSettings.selectionBorderColor;\n options.stroke = borderColor_6;\n // eslint-disable-next-line max-len\n var thickness = isNullOrUndefined(this.pdfViewer.stickyNotesSettings.annotationSelectorSettings.selectionBorderThickness) ? 1 : this.pdfViewer.stickyNotesSettings.annotationSelectorSettings.selectionBorderThickness;\n options.strokeWidth = thickness;\n // eslint-disable-next-line max-len\n var lineDash_6 = isNullOrUndefined(this.pdfViewer.stickyNotesSettings.annotationSelectorSettings.selectorLineDashArray) || this.pdfViewer.stickyNotesSettings.annotationSelectorSettings.selectorLineDashArray.length === 0 ? [6, 3] : this.pdfViewer.stickyNotesSettings.annotationSelectorSettings.selectorLineDashArray;\n if (lineDash_6.length > 2) {\n lineDash_6 = [lineDash_6[0], lineDash_6[1]];\n }\n options.dashArray = lineDash_6.toString();\n }\n else if (type === 'Stamp' && this.pdfViewer.stampSettings.annotationSelectorSettings) {\n var borderColor_7 = isNullOrUndefined(this.pdfViewer.stampSettings.annotationSelectorSettings.selectionBorderColor) || this.pdfViewer.stampSettings.annotationSelectorSettings.selectionBorderColor === '' ? '#0000ff' : this.pdfViewer.stampSettings.annotationSelectorSettings.selectionBorderColor;\n options.stroke = borderColor_7;\n // eslint-disable-next-line max-len\n var thickness = isNullOrUndefined(this.pdfViewer.stampSettings.annotationSelectorSettings.selectionBorderThickness) ? 1 : this.pdfViewer.stampSettings.annotationSelectorSettings.selectionBorderThickness;\n options.strokeWidth = thickness;\n // eslint-disable-next-line max-len\n var lineDash_7 = isNullOrUndefined(this.pdfViewer.stampSettings.annotationSelectorSettings.selectorLineDashArray) || this.pdfViewer.stampSettings.annotationSelectorSettings.selectorLineDashArray.length === 0 ? [4] : this.pdfViewer.stampSettings.annotationSelectorSettings.selectorLineDashArray;\n if (lineDash_7.length > 2) {\n lineDash_7 = [lineDash_7[0], lineDash_7[1]];\n }\n options.dashArray = lineDash_7.toString();\n }\n };\n /**\n * @private\n * @param {string} id - Specified the annotaion id.\n * @param {DrawingElement} selector - Specified the drawing element.\n * @param {number} cx - Specified the cx number.\n * @param {number} cy - Specified the cy number.\n * @param {HTMLCanvasElement | SVGElement} canvas - Specified the html canvas element.\n * @param {boolean} visible - Specified the annotation visible or not.\n * @param {number} enableSelector - Specified the enable selector value.\n * @param {Transforms} t - Specified the transforms value.\n * @param {boolean} connected - Specified is connected or not.\n * @param {boolean} canMask - Specified is mask or not.\n * @param {Object} ariaLabel - Specified the aria label object.\n * @param {number} count - Specified the count value.\n * @param {string} className - Specified the class name.\n * @param {AnnotationSelectorSettingsModel} currentSelector - Specified the annotation selector settings.\n * @returns {void}\n */\n Drawing.prototype.renderCircularHandle = function (id, selector, cx, cy, canvas, visible, enableSelector, t, connected, canMask, ariaLabel, count, className, currentSelector) {\n var wrapper = selector;\n var radius = 7;\n var newPoint = { x: cx, y: cy };\n t = t || { scale: 1, tx: 0, ty: 0 };\n if (wrapper.rotateAngle !== 0 || wrapper.parentTransform !== 0) {\n var matrix = identityMatrix();\n rotateMatrix(matrix, wrapper.rotateAngle + wrapper.parentTransform, wrapper.offsetX, wrapper.offsetY);\n newPoint = transformPointByMatrix(matrix, newPoint);\n }\n var options = getBaseShapeAttributes(wrapper);\n var shapeType;\n if (this.pdfViewer.selectedItems.annotations.length > 0 && this.pdfViewer.selectedItems.annotations[0].measureType) {\n shapeType = this.pdfViewer.selectedItems.annotations[0].measureType;\n }\n else if (this.pdfViewer.selectedItems.formFields.length > 0) {\n shapeType = this.pdfViewer.selectedItems.formFields[0].formFieldAnnotationType;\n }\n else {\n shapeType = this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType;\n }\n this.getResizerColors(shapeType, options, currentSelector, t);\n this.getShapeSize(shapeType, options, currentSelector, t);\n options.strokeWidth = 1;\n if (count !== undefined) {\n radius = 5;\n options.id = 'segmentEnd_' + count;\n }\n options.centerX = (newPoint.x + t.tx) * t.scale;\n options.centerY = (newPoint.y + t.ty) * t.scale;\n options.angle = 0;\n options.id = id;\n options.visible = visible;\n options.class = className;\n options.opacity = 1;\n if (connected) {\n options.class += ' e-connected';\n }\n if (canMask) {\n options.visible = false;\n }\n options.x = (newPoint.x * t.scale) - (options.width / 2);\n options.y = (newPoint.y * t.scale) - (options.height / 2);\n var parentSvg = this.getParentSvg(selector, 'selector');\n if (this.getShape(shapeType, currentSelector) === 'Square') {\n this.svgRenderer.drawRectangle(canvas, options, id, undefined, true, parentSvg);\n }\n else if (this.getShape(shapeType, currentSelector) === 'Circle') {\n this.svgRenderer.drawCircle(canvas, options, 1);\n }\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} type - Specified the annotaion object.\n * @param {CircleAttributes} options - Specified the circle attributes value.\n * @param {any} currentSelector - Specified the current selector value.\n * @param {Transforms} t - Specified the transforms value.\n * @returns {void}\n */\n // eslint-disable-next-line\n Drawing.prototype.getShapeSize = function (type, options, currentSelector, t) {\n if (currentSelector && typeof (currentSelector) !== 'object' && currentSelector !== '') {\n // eslint-disable-next-line\n var annotationSelector = JSON.parse(currentSelector);\n // eslint-disable-next-line max-len\n options.radius = (isNullOrUndefined(annotationSelector.resizerSize) || annotationSelector.resizerSize === 8 ? 8 : annotationSelector.resizerSize) / 2;\n // eslint-disable-next-line max-len\n options.width = (isNullOrUndefined(annotationSelector.resizerSize) || annotationSelector.resizerSize === 8 ? 8 : annotationSelector.resizerSize) * t.scale;\n // eslint-disable-next-line max-len\n options.height = (isNullOrUndefined(annotationSelector.resizerSize) || annotationSelector.resizerSize === 8 ? 8 : annotationSelector.resizerSize) * t.scale;\n }\n else {\n // eslint-disable-next-line\n var annotationSelector = this.pdfViewer.annotationSelectorSettings;\n // eslint-disable-next-line max-len\n options.radius = (isNullOrUndefined(annotationSelector.resizerSize) || annotationSelector.resizerSize === 8 ? 8 : annotationSelector.resizerSize) / 2;\n // eslint-disable-next-line max-len\n options.width = (isNullOrUndefined(annotationSelector.resizerSize) || annotationSelector.resizerSize === 8 ? 8 : annotationSelector.resizerSize) * t.scale;\n // eslint-disable-next-line max-len\n options.height = (isNullOrUndefined(annotationSelector.resizerSize) || annotationSelector.resizerSize === 8 ? 8 : annotationSelector.resizerSize) * t.scale;\n if (type === 'Line' && this.pdfViewer.lineSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n options.radius = (isNullOrUndefined(this.pdfViewer.lineSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.lineSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.lineSettings.annotationSelectorSettings.resizerSize) / 2;\n // eslint-disable-next-line max-len\n options.width = (isNullOrUndefined(this.pdfViewer.lineSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.lineSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.lineSettings.annotationSelectorSettings.resizerSize) * t.scale;\n // eslint-disable-next-line max-len\n options.height = (isNullOrUndefined(this.pdfViewer.lineSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.lineSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.lineSettings.annotationSelectorSettings.resizerSize) * t.scale;\n }\n else if (type === 'LineWidthArrowHead' && this.pdfViewer.arrowSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n options.radius = (isNullOrUndefined(this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerSize) / 2;\n // eslint-disable-next-line max-len\n options.width = (isNullOrUndefined(this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerSize) * t.scale;\n // eslint-disable-next-line max-len\n options.height = (isNullOrUndefined(this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerSize) * t.scale;\n }\n else if (type === 'Rectangle' && this.pdfViewer.rectangleSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n options.radius = (isNullOrUndefined(this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerSize) / 2;\n // eslint-disable-next-line max-len\n options.width = (isNullOrUndefined(this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerSize) * t.scale;\n // eslint-disable-next-line max-len\n options.height = (isNullOrUndefined(this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerSize) * t.scale;\n }\n else if (type === 'Ellipse' && this.pdfViewer.circleSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n options.radius = (isNullOrUndefined(this.pdfViewer.circleSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.circleSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.circleSettings.annotationSelectorSettings.resizerSize) / 2;\n // eslint-disable-next-line max-len\n options.width = (isNullOrUndefined(this.pdfViewer.circleSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.circleSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.circleSettings.annotationSelectorSettings.resizerSize) * t.scale;\n // eslint-disable-next-line max-len\n options.height = (isNullOrUndefined(this.pdfViewer.circleSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.circleSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.circleSettings.annotationSelectorSettings.resizerSize) * t.scale;\n }\n else if (type === 'Distance' && this.pdfViewer.distanceSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n options.radius = (isNullOrUndefined(this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerSize) / 2;\n // eslint-disable-next-line max-len\n options.width = (isNullOrUndefined(this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerSize) * t.scale;\n // eslint-disable-next-line max-len\n options.height = (isNullOrUndefined(this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerSize) * t.scale;\n }\n else if (type === 'Polygon' && this.pdfViewer.polygonSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n options.radius = (isNullOrUndefined(this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerSize) / 2;\n // eslint-disable-next-line max-len\n options.width = (isNullOrUndefined(this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerSize) * t.scale;\n // eslint-disable-next-line max-len\n options.height = (isNullOrUndefined(this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerSize) * t.scale;\n }\n else if (type === 'Radius' && this.pdfViewer.radiusSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n options.radius = (isNullOrUndefined(this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerSize) / 2;\n // eslint-disable-next-line max-len\n options.width = (isNullOrUndefined(this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerSize) * t.scale;\n // eslint-disable-next-line max-len\n options.height = (isNullOrUndefined(this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerSize) * t.scale;\n }\n else if (type === 'Stamp' && this.pdfViewer.stampSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n options.radius = (isNullOrUndefined(this.pdfViewer.stampSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.stampSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.stampSettings.annotationSelectorSettings.resizerSize) / 2;\n // eslint-disable-next-line max-len\n options.width = (isNullOrUndefined(this.pdfViewer.stampSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.stampSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.stampSettings.annotationSelectorSettings.resizerSize) * t.scale;\n // eslint-disable-next-line max-len\n options.height = (isNullOrUndefined(this.pdfViewer.stampSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.stampSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.stampSettings.annotationSelectorSettings.resizerSize) * t.scale;\n }\n else if (type === 'FreeText' && this.pdfViewer.freeTextSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n options.radius = (isNullOrUndefined(this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerSize) / 2;\n // eslint-disable-next-line max-len\n options.width = (isNullOrUndefined(this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerSize) * t.scale;\n // eslint-disable-next-line max-len\n options.height = (isNullOrUndefined(this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerSize) * t.scale;\n }\n else if ((type === 'HandWrittenSignature' || type === 'SignatureText' || type === 'SignatureImage') && this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n options.radius = (isNullOrUndefined(this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerSize) / 2;\n // eslint-disable-next-line max-len\n options.width = (isNullOrUndefined(this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerSize) * t.scale;\n // eslint-disable-next-line max-len\n options.height = (isNullOrUndefined(this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerSize) * t.scale;\n }\n else if (type === 'Perimeter' && this.pdfViewer.perimeterSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n options.radius = (isNullOrUndefined(this.pdfViewer.perimeterSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.perimeterSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.perimeterSettings.annotationSelectorSettings.resizerSize) / 2;\n // eslint-disable-next-line max-len\n options.width = (isNullOrUndefined(this.pdfViewer.perimeterSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.perimeterSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.perimeterSettings.annotationSelectorSettings.resizerSize) * t.scale;\n // eslint-disable-next-line max-len\n options.height = (isNullOrUndefined(this.pdfViewer.perimeterSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.perimeterSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.perimeterSettings.annotationSelectorSettings.resizerSize) * t.scale;\n }\n else if (type === 'Area' && this.pdfViewer.areaSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n options.radius = (isNullOrUndefined(this.pdfViewer.areaSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.areaSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.areaSettings.annotationSelectorSettings.resizerSize) / 2;\n // eslint-disable-next-line max-len\n options.width = (isNullOrUndefined(this.pdfViewer.areaSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.areaSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.areaSettings.annotationSelectorSettings.resizerSize) * t.scale;\n // eslint-disable-next-line max-len\n options.height = (isNullOrUndefined(this.pdfViewer.areaSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.areaSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.areaSettings.annotationSelectorSettings.resizerSize) * t.scale;\n }\n else if (type === 'Volume' && this.pdfViewer.volumeSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n options.radius = (isNullOrUndefined(this.pdfViewer.volumeSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.volumeSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.volumeSettings.annotationSelectorSettings.resizerSize) / 2;\n // eslint-disable-next-line max-len\n options.width = (isNullOrUndefined(this.pdfViewer.volumeSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.volumeSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.volumeSettings.annotationSelectorSettings.resizerSize) * t.scale;\n // eslint-disable-next-line max-len\n options.height = (isNullOrUndefined(this.pdfViewer.volumeSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.volumeSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.volumeSettings.annotationSelectorSettings.resizerSize) * t.scale;\n }\n else if (type === 'Ink' && this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n options.radius = (isNullOrUndefined(this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerSize) / 2;\n // eslint-disable-next-line max-len\n options.width = (isNullOrUndefined(this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerSize) * t.scale;\n // eslint-disable-next-line max-len\n options.height = (isNullOrUndefined(this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerSize) * t.scale;\n }\n }\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} type - Specified the annotation object.\n * @param {any} currentSelector - Specified the current selector value.\n * @returns {AnnotationSelectorSettingsModel} - Specified the annotation selector settings model.\n */\n // eslint-disable-next-line\n Drawing.prototype.getShape = function (type, currentSelector) {\n // eslint-disable-next-line\n var shapeType;\n {\n if (currentSelector && typeof (currentSelector) !== 'object' && currentSelector !== '') {\n // eslint-disable-next-line\n var annotationSelector = JSON.parse(currentSelector);\n shapeType = isNullOrUndefined(annotationSelector.resizerShape) || annotationSelector.resizerShape === 'Square' ? 'Square' : annotationSelector.resizerShape;\n }\n else {\n // eslint-disable-next-line\n var annotationSelector = this.pdfViewer.annotationSelectorSettings;\n shapeType = isNullOrUndefined(annotationSelector.resizerShape) || annotationSelector.resizerShape === 'Square' ? 'Square' : annotationSelector.resizerShape;\n if (type === 'Line' && this.pdfViewer.lineSettings.annotationSelectorSettings) {\n shapeType = isNullOrUndefined(this.pdfViewer.lineSettings.annotationSelectorSettings.resizerShape) || this.pdfViewer.lineSettings.annotationSelectorSettings.resizerShape === 'Square' ? 'Square' : this.pdfViewer.lineSettings.annotationSelectorSettings.resizerShape;\n }\n else if (type === 'LineWidthArrowHead' && this.pdfViewer.arrowSettings.annotationSelectorSettings) {\n shapeType = isNullOrUndefined(this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerShape) || this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerShape === 'Square' ? 'Square' : this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerShape;\n }\n else if (type === 'Rectangle' && this.pdfViewer.rectangleSettings.annotationSelectorSettings) {\n shapeType = isNullOrUndefined(this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerShape) || this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerShape === 'Square' ? 'Square' : this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerShape;\n }\n else if (type === 'Ellipse' && this.pdfViewer.circleSettings.annotationSelectorSettings) {\n shapeType = isNullOrUndefined(this.pdfViewer.circleSettings.annotationSelectorSettings.resizerShape) || this.pdfViewer.circleSettings.annotationSelectorSettings.resizerShape === 'Square' ? 'Square' : this.pdfViewer.circleSettings.annotationSelectorSettings.resizerShape;\n }\n else if (type === 'Polygon' && this.pdfViewer.polygonSettings.annotationSelectorSettings) {\n shapeType = isNullOrUndefined(this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerShape) || this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerShape === 'Square' ? 'Square' : this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerShape;\n }\n else if (type === 'Distance' && this.pdfViewer.distanceSettings.annotationSelectorSettings) {\n shapeType = isNullOrUndefined(this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerShape) || this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerShape === 'Square' ? 'Square' : this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerShape;\n }\n else if (type === 'Radius' && this.pdfViewer.radiusSettings.annotationSelectorSettings) {\n shapeType = isNullOrUndefined(this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerShape) || this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerShape === 'Square' ? 'Square' : this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerShape;\n }\n else if (type === 'Stamp' && this.pdfViewer.stampSettings.annotationSelectorSettings) {\n shapeType = isNullOrUndefined(this.pdfViewer.stampSettings.annotationSelectorSettings.resizerShape) || this.pdfViewer.stampSettings.annotationSelectorSettings.resizerShape === 'Square' ? 'Square' : this.pdfViewer.stampSettings.annotationSelectorSettings.resizerShape;\n }\n else if (type === 'FreeText' && this.pdfViewer.freeTextSettings.annotationSelectorSettings) {\n shapeType = isNullOrUndefined(this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerShape) || this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerShape === 'Square' ? 'Square' : this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerShape;\n }\n else if ((type === 'HandWrittenSignature' || type === 'SignatureText' || type === 'SignatureImage') && this.pdfViewer.handWrittenSignatureSettings && this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings) {\n shapeType = isNullOrUndefined(this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerShape) || this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerShape === 'Square' ? 'Square' : this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerShape;\n }\n else if (type === 'Perimeter' && this.pdfViewer.perimeterSettings.annotationSelectorSettings) {\n shapeType = isNullOrUndefined(this.pdfViewer.perimeterSettings.annotationSelectorSettings.resizerShape) || this.pdfViewer.perimeterSettings.annotationSelectorSettings.resizerShape === 'Square' ? 'Square' : this.pdfViewer.perimeterSettings.annotationSelectorSettings.resizerShape;\n }\n else if (type === 'Area' && this.pdfViewer.areaSettings.annotationSelectorSettings) {\n shapeType = isNullOrUndefined(this.pdfViewer.areaSettings.annotationSelectorSettings.resizerShape) || this.pdfViewer.areaSettings.annotationSelectorSettings.resizerShape === 'Square' ? 'Square' : this.pdfViewer.areaSettings.annotationSelectorSettings.resizerShape;\n }\n else if (type === 'Volume' && this.pdfViewer.volumeSettings.annotationSelectorSettings) {\n shapeType = isNullOrUndefined(this.pdfViewer.volumeSettings.annotationSelectorSettings.resizerShape) || this.pdfViewer.volumeSettings.annotationSelectorSettings.resizerShape === 'Square' ? 'Square' : this.pdfViewer.volumeSettings.annotationSelectorSettings.resizerShape;\n }\n else if (type === 'Ink' && this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings) {\n shapeType = isNullOrUndefined(this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerShape) || this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerShape === 'Square' ? 'Square' : this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerShape;\n }\n }\n return shapeType;\n }\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} type - Specified the annotaion object.\n * @param {CircleAttributes} options - Specified the circle attributes value.\n * @param {any} currentSelector - Specified the current selector value.\n * @param {Transforms} t - Specified the transforms value.\n * @returns {void}\n */\n // eslint-disable-next-line\n Drawing.prototype.getResizerColors = function (type, options, currentSelector, t) {\n if (currentSelector && typeof (currentSelector) !== 'object' && currentSelector !== '') {\n // eslint-disable-next-line\n var annotationSelector = JSON.parse(currentSelector);\n options.stroke = isNullOrUndefined(annotationSelector.resizerBorderColor) || annotationSelector.resizerBorderColor === 'black' ? 'black' : annotationSelector.resizerBorderColor;\n options.fill = isNullOrUndefined(annotationSelector.resizerFillColor) || annotationSelector.resizerFillColor === '#FF4081' ? '#FF4081' : annotationSelector.resizerFillColor;\n }\n else {\n // eslint-disable-next-line\n var annotationSelector = this.pdfViewer.annotationSelectorSettings;\n options.stroke = isNullOrUndefined(annotationSelector.resizerBorderColor) || annotationSelector.resizerBorderColor === 'black' ? 'black' : annotationSelector.resizerBorderColor;\n options.fill = isNullOrUndefined(annotationSelector.resizerFillColor) || annotationSelector.resizerFillColor === '#FF4081' ? '#FF4081' : annotationSelector.resizerFillColor;\n if (type === 'Line' && this.pdfViewer.lineSettings.annotationSelectorSettings) {\n options.stroke = isNullOrUndefined(this.pdfViewer.lineSettings.annotationSelectorSettings.resizerBorderColor) || this.pdfViewer.lineSettings.annotationSelectorSettings.resizerBorderColor === 'black' ? 'black' : this.pdfViewer.lineSettings.annotationSelectorSettings.resizerBorderColor;\n options.fill = isNullOrUndefined(this.pdfViewer.lineSettings.annotationSelectorSettings.resizerFillColor) || this.pdfViewer.lineSettings.annotationSelectorSettings.resizerFillColor === '#FF4081' ? '#FF4081' : this.pdfViewer.lineSettings.annotationSelectorSettings.resizerFillColor;\n }\n else if (type === 'LineWidthArrowHead' && this.pdfViewer.arrowSettings.annotationSelectorSettings) {\n options.stroke = isNullOrUndefined(this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerBorderColor) || this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerBorderColor === 'black' ? 'black' : this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerBorderColor;\n options.fill = isNullOrUndefined(this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerFillColor) || this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerFillColor === '#FF4081' ? '#FF4081' : this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerFillColor;\n }\n else if (type === 'Rectangle' && this.pdfViewer.rectangleSettings.annotationSelectorSettings) {\n options.stroke = isNullOrUndefined(this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerBorderColor) || this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerBorderColor === 'black' ? 'black' : this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerBorderColor;\n options.fill = isNullOrUndefined(this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerFillColor) || this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerFillColor === '#FF4081' ? '#FF4081' : this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerFillColor;\n }\n else if (type === 'Ellipse' && this.pdfViewer.circleSettings.annotationSelectorSettings) {\n options.stroke = isNullOrUndefined(this.pdfViewer.circleSettings.annotationSelectorSettings.resizerBorderColor) || this.pdfViewer.circleSettings.annotationSelectorSettings.resizerBorderColor === 'black' ? 'black' : this.pdfViewer.circleSettings.annotationSelectorSettings.resizerBorderColor;\n options.fill = isNullOrUndefined(this.pdfViewer.circleSettings.annotationSelectorSettings.resizerFillColor) || this.pdfViewer.circleSettings.annotationSelectorSettings.resizerFillColor === '#FF4081' ? '#FF4081' : this.pdfViewer.circleSettings.annotationSelectorSettings.resizerFillColor;\n }\n else if (type === 'Distance' && this.pdfViewer.distanceSettings.annotationSelectorSettings) {\n options.stroke = isNullOrUndefined(this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerBorderColor) || this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerBorderColor === 'black' ? 'black' : this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerBorderColor;\n options.fill = isNullOrUndefined(this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerFillColor) || this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerFillColor === '#FF4081' ? '#FF4081' : this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerFillColor;\n }\n else if (type === 'Polygon' && this.pdfViewer.polygonSettings.annotationSelectorSettings) {\n options.stroke = isNullOrUndefined(this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerBorderColor) || this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerBorderColor === 'black' ? 'black' : this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerBorderColor;\n options.fill = isNullOrUndefined(this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerFillColor) || this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerFillColor === '#FF4081' ? '#FF4081' : this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerFillColor;\n }\n else if (type === 'Radius' && this.pdfViewer.radiusSettings.annotationSelectorSettings) {\n options.stroke = isNullOrUndefined(this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerBorderColor) || this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerBorderColor === 'black' ? 'black' : this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerBorderColor;\n options.fill = isNullOrUndefined(this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerFillColor) || this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerFillColor === '#FF4081' ? '#FF4081' : this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerFillColor;\n }\n else if (type === 'Stamp' && this.pdfViewer.stampSettings.annotationSelectorSettings) {\n options.stroke = isNullOrUndefined(this.pdfViewer.stampSettings.annotationSelectorSettings.resizerBorderColor) || this.pdfViewer.stampSettings.annotationSelectorSettings.resizerBorderColor === 'black' ? 'black' : this.pdfViewer.stampSettings.annotationSelectorSettings.resizerBorderColor;\n options.fill = isNullOrUndefined(this.pdfViewer.stampSettings.annotationSelectorSettings.resizerFillColor) || this.pdfViewer.stampSettings.annotationSelectorSettings.resizerFillColor === '#FF4081' ? '#FF4081' : this.pdfViewer.stampSettings.annotationSelectorSettings.resizerFillColor;\n }\n else if (type === 'FreeText' && this.pdfViewer.freeTextSettings.annotationSelectorSettings) {\n options.stroke = isNullOrUndefined(this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerBorderColor) || this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerBorderColor === 'black' ? 'black' : this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerBorderColor;\n options.fill = isNullOrUndefined(this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerFillColor) || this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerFillColor === '#FF4081' ? '#FF4081' : this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerFillColor;\n }\n else if ((type === 'HandWrittenSignature' || type === 'SignatureText' || type === 'SignatureImage') && this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings) {\n options.stroke = isNullOrUndefined(this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerBorderColor) || this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerBorderColor === 'black' ? 'black' : this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerBorderColor;\n options.fill = isNullOrUndefined(this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerFillColor) || this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerFillColor === '#FF4081' ? '#FF4081' : this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerFillColor;\n }\n else if (type === 'Perimeter' && this.pdfViewer.perimeterSettings.annotationSelectorSettings) {\n options.stroke = isNullOrUndefined(this.pdfViewer.perimeterSettings.annotationSelectorSettings.resizerBorderColor) || this.pdfViewer.perimeterSettings.annotationSelectorSettings.resizerBorderColor === 'black' ? 'black' : this.pdfViewer.perimeterSettings.annotationSelectorSettings.resizerBorderColor;\n options.fill = isNullOrUndefined(this.pdfViewer.perimeterSettings.annotationSelectorSettings.resizerFillColor) || this.pdfViewer.perimeterSettings.annotationSelectorSettings.resizerFillColor === '#FF4081' ? '#FF4081' : this.pdfViewer.perimeterSettings.annotationSelectorSettings.resizerFillColor;\n }\n else if (type === 'Area' && this.pdfViewer.areaSettings.annotationSelectorSettings) {\n options.stroke = isNullOrUndefined(this.pdfViewer.areaSettings.annotationSelectorSettings.resizerBorderColor) || this.pdfViewer.areaSettings.annotationSelectorSettings.resizerBorderColor === 'black' ? 'black' : this.pdfViewer.areaSettings.annotationSelectorSettings.resizerBorderColor;\n options.fill = isNullOrUndefined(this.pdfViewer.areaSettings.annotationSelectorSettings.resizerFillColor) || this.pdfViewer.areaSettings.annotationSelectorSettings.resizerFillColor === '#FF4081' ? '#FF4081' : this.pdfViewer.areaSettings.annotationSelectorSettings.resizerFillColor;\n }\n else if (type === 'Volume' && this.pdfViewer.volumeSettings.annotationSelectorSettings) {\n options.stroke = isNullOrUndefined(this.pdfViewer.volumeSettings.annotationSelectorSettings.resizerBorderColor) || this.pdfViewer.volumeSettings.annotationSelectorSettings.resizerBorderColor === 'black' ? 'black' : this.pdfViewer.volumeSettings.annotationSelectorSettings.resizerBorderColor;\n options.fill = isNullOrUndefined(this.pdfViewer.volumeSettings.annotationSelectorSettings.resizerFillColor) || this.pdfViewer.volumeSettings.annotationSelectorSettings.resizerFillColor === '#FF4081' ? '#FF4081' : this.pdfViewer.volumeSettings.annotationSelectorSettings.resizerFillColor;\n }\n else if (type === 'Ink' && this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings) {\n options.stroke = isNullOrUndefined(this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerBorderColor) || this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerBorderColor === 'black' ? 'black' : this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerBorderColor;\n options.fill = isNullOrUndefined(this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerFillColor) || this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerFillColor === '#FF4081' ? '#FF4081' : this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerFillColor;\n }\n }\n };\n /**\n * @private\n * @param {DrawingElement} wrapper - Specified the drawing element.\n * @param {HTMLCanvasElement | SVGElement} canvas - Specified the canvas element.\n * @param {Transforms} transform - Specified the transform value.\n * @param {SelectorConstraints} selectorConstraints - Specified the selector constraints value.\n * @param {boolean} canMask - Specified the is mask or not.\n * @returns {void}\n */\n Drawing.prototype.renderRotateThumb = function (wrapper, canvas, transform, selectorConstraints, canMask) {\n var element = new PathElement();\n var newPoint;\n var top = wrapper.offsetY - wrapper.actualSize.height * wrapper.pivot.y;\n var left = wrapper.offsetX - wrapper.actualSize.width * wrapper.pivot.x;\n var pivotX = left + wrapper.pivot.x * wrapper.actualSize.width;\n var pivotY = top;\n pivotX = (pivotX + transform.tx) * transform.scale;\n pivotY = (pivotY + transform.ty) * transform.scale;\n newPoint = { x: pivotX, y: pivotY - 25 };\n if (wrapper.rotateAngle !== 0 || wrapper.parentTransform !== 0) {\n var matrix = identityMatrix();\n rotateMatrix(matrix, wrapper.rotateAngle + wrapper.parentTransform, (transform.tx + wrapper.offsetX) * transform.scale, (transform.ty + wrapper.offsetY) * transform.scale);\n newPoint = transformPointByMatrix(matrix, newPoint);\n }\n var options = getBaseShapeAttributes(wrapper);\n options.stroke = 'black';\n options.strokeWidth = 1;\n options.opacity = 1;\n options.fill = '#FF4081';\n options.centerX = newPoint.x;\n options.centerY = newPoint.y;\n options.radius = 4;\n options.angle = 0;\n options.visible = true;\n options.class = 'e-diagram-rotate-handle';\n options.id = 'rotateThumb';\n this.svgRenderer.drawCircle(canvas, options, ThumbsConstraints.Rotate, { 'aria-label': 'Thumb to rotate the selected object' });\n var circleHandle = canvas.querySelector('#' + options.id);\n if (circleHandle) {\n circleHandle.setAttribute('role', 'separator');\n }\n };\n /**\n * @private\n * @param {DrawingElement} element - Specified the drawing element.\n * @param {HTMLCanvasElement | SVGElement} canvas - Specified the canvas element.\n * @param {ThumbsConstraints} constraints - Specified the thumbs constraints element.\n * @param {number} currentZoom - Specified the current zoom value.\n * @param {boolean} canMask - Specified the is mask or not.\n * @param {number} enableNode - Specified the node number.\n * @param {boolean} nodeConstraints - Specified the node constraints or not.\n * @param {boolean} isStamp - Specified is stamp or not.\n * @param {boolean} isSticky - Specified is sticky or not.\n * @param {boolean} isPath - Specified is path or not.\n * @param {boolean} isFreeText - Specified is free text or not.\n * @param {AnnotationSelectorSettingsModel} currentSelector - Specified the current selector settings value.\n * @returns {void}\n */\n Drawing.prototype.renderResizeHandle = function (element, canvas, constraints, currentZoom, canMask, enableNode, nodeConstraints, isStamp, isSticky, isPath, isFreeText, currentSelector) {\n var left = element.offsetX - element.actualSize.width * element.pivot.x;\n var top = element.offsetY - element.actualSize.height * element.pivot.y;\n var height = element.actualSize.height;\n var width = element.actualSize.width;\n var transform = { scale: currentZoom, tx: 0, ty: 0 };\n if (isStamp) {\n this.renderPivotLine(element, canvas, transform);\n this.renderRotateThumb(element, canvas, transform);\n }\n if (isFreeText) {\n isStamp = true;\n }\n this.renderBorder(element, canvas, currentSelector, transform, enableNode, nodeConstraints, true, isSticky);\n var nodeWidth = element.actualSize.width * currentZoom;\n var nodeHeight = element.actualSize.height * currentZoom;\n // eslint-disable-next-line max-len\n var shapeType = this.pdfViewer.selectedItems.annotations.length > 0 ? this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType : this.pdfViewer.selectedItems.formFields[0].formFieldAnnotationType;\n var allowPermission = false;\n if (!this.pdfViewer.formDesignerModule) {\n // eslint-disable-next-line\n var annotation = this.pdfViewer.selectedItems.annotations[0];\n // eslint-disable-next-line\n var allowedInteraction = this.pdfViewer.annotationModule.updateAnnotationAllowedInteractions(annotation);\n var isLock = this.pdfViewer.annotationModule.checkIsLockSettings(annotation);\n if ((isLock || annotation.annotationSettings.isLock) && this.getAllowedInteractions(allowedInteraction)) {\n allowPermission = true;\n }\n }\n var resizerLocation = this.getResizerLocation(shapeType, currentSelector);\n if (resizerLocation < 1 || resizerLocation > 3) {\n resizerLocation = 3;\n }\n var isNodeShape = false;\n if (this.pdfViewer.selectedItems.annotations[0] && (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Ellipse' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Radius' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Rectangle' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Ink')) {\n isNodeShape = true;\n }\n if (!this.pdfViewer.viewerBase.checkSignatureFormField(element.id) && !nodeConstraints && !isSticky && !isPath && !allowPermission) {\n if (isStamp || (isNodeShape && (nodeWidth >= 40 && nodeHeight >= 40) && (resizerLocation === 1 || resizerLocation === 3))) {\n //Hide corners when the size is less than 40\n this.renderCircularHandle('resizeNorthWest', element, left, top, canvas, true, constraints & ThumbsConstraints.ResizeNorthWest, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on top left side direction' }, undefined, 'e-pv-diagram-resize-handle e-northwest', currentSelector);\n this.renderCircularHandle('resizeNorthEast', element, left + width, top, canvas, true, constraints & ThumbsConstraints.ResizeNorthEast, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on top right side direction' }, undefined, 'e-pv-diagram-resize-handle e-northeast', currentSelector);\n this.renderCircularHandle('resizeSouthWest', element, left, top + height, canvas, true, constraints & ThumbsConstraints.ResizeSouthWest, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on bottom left side direction' }, undefined, 'e-pv-diagram-resize-handle e-southwest', currentSelector);\n this.renderCircularHandle('resizeSouthEast', element, left + width, top + height, canvas, true, constraints & ThumbsConstraints.ResizeSouthEast, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on bottom right side direction' }, undefined, 'e-pv-diagram-resize-handle e-southeast', currentSelector);\n }\n // eslint-disable-next-line max-len\n if ((!isStamp && !isNodeShape) || (isNodeShape && (resizerLocation === 2 || resizerLocation === 3 || (!(nodeWidth >= 40 && nodeHeight >= 40) && resizerLocation === 1)))) {\n this.renderCircularHandle('resizeNorth', element, left + width / 2, top, canvas, true, constraints & ThumbsConstraints.ResizeNorth, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on top side direction' }, undefined, 'e-pv-diagram-resize-handle e-north', currentSelector);\n this.renderCircularHandle('resizeSouth', element, left + width / 2, top + height, canvas, true, constraints & ThumbsConstraints.ResizeSouth, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on bottom side direction' }, undefined, 'e-pv-diagram-resize-handle e-south', currentSelector);\n this.renderCircularHandle('resizeWest', element, left, top + height / 2, canvas, true, constraints & ThumbsConstraints.ResizeWest, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on left side direction' }, undefined, 'e-pv-diagram-resize-handle e-west', currentSelector);\n this.renderCircularHandle('resizeEast', element, left + width, top + height / 2, canvas, true, constraints & ThumbsConstraints.ResizeEast, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on right side direction' }, undefined, 'e-pv-diagram-resize-handle e-east', currentSelector);\n }\n }\n if ((shapeType === 'Textbox' || shapeType === 'Checkbox' || shapeType === 'RadioButton' || shapeType === 'SignatureField' || shapeType === 'InitialField' || shapeType === 'DropdownList' ||\n shapeType === 'ListBox' || shapeType === 'PasswordField')) {\n this.renderCircularHandle('resizeNorth', element, left + width / 2, top, canvas, true, constraints & ThumbsConstraints.ResizeNorth, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on top side direction' }, undefined, 'e-pv-diagram-resize-handle e-north', currentSelector);\n this.renderCircularHandle('resizeSouth', element, left + width / 2, top + height, canvas, true, constraints & ThumbsConstraints.ResizeSouth, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on bottom side direction' }, undefined, 'e-pv-diagram-resize-handle e-south', currentSelector);\n this.renderCircularHandle('resizeWest', element, left, top + height / 2, canvas, true, constraints & ThumbsConstraints.ResizeWest, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on left side direction' }, undefined, 'e-pv-diagram-resize-handle e-west', currentSelector);\n this.renderCircularHandle('resizeEast', element, left + width, top + height / 2, canvas, true, constraints & ThumbsConstraints.ResizeEast, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on right side direction' }, undefined, 'e-pv-diagram-resize-handle e-east', currentSelector);\n }\n };\n // eslint-disable-next-line\n Drawing.prototype.getAllowedInteractions = function (allowedInteraction) {\n if (allowedInteraction && allowedInteraction.length > 0) {\n for (var i = 0; i < allowedInteraction.length; i++) {\n if (allowedInteraction[0] !== 'None' && allowedInteraction[parseInt(i.toString(), 10)] === 'Resize') {\n return false;\n }\n }\n }\n return true;\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} type - Specified the annotation base model.\n * @param {any} currentSelector - Specified the current selector value\n * @returns {AnnotationResizerLocation} - Returns the annotation resizer location value.\n */\n // eslint-disable-next-line\n Drawing.prototype.getResizerLocation = function (type, currentSelector) {\n // eslint-disable-next-line\n var resizerLocation;\n {\n if (currentSelector && typeof (currentSelector) !== 'object' && currentSelector !== '') {\n // eslint-disable-next-line\n var annotationSelector = JSON.parse(currentSelector);\n // eslint-disable-next-line max-len\n resizerLocation = isNullOrUndefined(annotationSelector.resizerLocation) || annotationSelector.resizerLocation === 3 ? 3 : annotationSelector.resizerLocation;\n }\n else {\n // eslint-disable-next-line\n var annotationSelector = this.pdfViewer.annotationSelectorSettings;\n // eslint-disable-next-line max-len\n resizerLocation = isNullOrUndefined(annotationSelector.resizerLocation) || annotationSelector.resizerLocation === 3 ? 3 : annotationSelector.resizerLocation;\n if (type === 'Line' && this.pdfViewer.lineSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n resizerLocation = isNullOrUndefined(this.pdfViewer.lineSettings.annotationSelectorSettings.resizerLocation) || this.pdfViewer.lineSettings.annotationSelectorSettings.resizerLocation === 3 ? 3 : this.pdfViewer.lineSettings.annotationSelectorSettings.resizerLocation;\n }\n else if (type === 'LineWidthArrowHead' && this.pdfViewer.arrowSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n resizerLocation = isNullOrUndefined(this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerLocation) || this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerLocation === 3 ? 3 : this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerLocation;\n }\n else if (type === 'Rectangle' && this.pdfViewer.rectangleSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n resizerLocation = isNullOrUndefined(this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerLocation) || this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerLocation === 3 ? 3 : this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerLocation;\n }\n else if (type === 'Ellipse' && this.pdfViewer.circleSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n resizerLocation = isNullOrUndefined(this.pdfViewer.circleSettings.annotationSelectorSettings.resizerLocation) || this.pdfViewer.circleSettings.annotationSelectorSettings.resizerLocation === 3 ? 3 : this.pdfViewer.circleSettings.annotationSelectorSettings.resizerLocation;\n }\n else if (type === 'Polygon' && this.pdfViewer.polygonSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n resizerLocation = isNullOrUndefined(this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerLocation) || this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerLocation === 3 ? 3 : this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerLocation;\n }\n else if (type === 'Distance') {\n // eslint-disable-next-line max-len\n resizerLocation = isNullOrUndefined(this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerLocation) || this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerLocation === 3 ? 3 : this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerLocation;\n }\n else if (type === 'Radius' && this.pdfViewer.radiusSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n resizerLocation = isNullOrUndefined(this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerLocation) || this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerLocation === 3 ? 3 : this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerLocation;\n }\n else if (type === 'Stamp' && this.pdfViewer.stampSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n resizerLocation = isNullOrUndefined(this.pdfViewer.stampSettings.annotationSelectorSettings.resizerLocation) || this.pdfViewer.stampSettings.annotationSelectorSettings.resizerLocation === 3 ? 3 : this.pdfViewer.stampSettings.annotationSelectorSettings.resizerLocation;\n }\n else if (type === 'FreeText' && this.pdfViewer.freeTextSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n resizerLocation = isNullOrUndefined(this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerLocation) || this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerLocation === 3 ? 3 : this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerLocation;\n }\n else if ((type === 'HandWrittenSignature' || type === 'SignatureText' || type === 'SignatureImage') && this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n resizerLocation = isNullOrUndefined(this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerLocation) || this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerLocation === 3 ? 3 : this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerLocation;\n }\n else if (type === 'Ink' && this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n resizerLocation = isNullOrUndefined(this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerLocation) || this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerLocation === 3 ? 3 : this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerLocation;\n }\n }\n return resizerLocation;\n }\n };\n /**\n * @private\n * @param {DrawingElement} element - Specified the drawing element.\n * @param {HTMLCanvasElement | SVGAElement} canvas - Specified the canvas element.\n * @param {Transforms} transform - Specified the transform values.\n * @param {SelectorConstraints} selectorConstraints - Specified the selector constraints value.\n * @param {boolean} canMask - Specified is mask value or not.\n * @returns {void}\n */\n Drawing.prototype.renderPivotLine = function (element, canvas, transform, selectorConstraints, canMask) {\n var wrapper = element;\n var dashArray = '2,3';\n var visible = true;\n if (canMask) {\n visible = false;\n }\n var options = getBaseShapeAttributes(wrapper, transform);\n options.fill = 'None';\n options.stroke = 'black';\n options.strokeWidth = 1;\n options.dashArray = dashArray;\n options.visible = visible;\n var scale = transform.scale;\n options.x *= scale;\n options.y *= scale;\n options.width *= scale;\n options.height *= scale;\n options.id = 'pivotLine';\n options.class = 'e-diagram-pivot-line';\n var startPoint = { x: wrapper.actualSize.width * wrapper.pivot.x * scale, y: -20 };\n var endPoint = { x: wrapper.actualSize.width * wrapper.pivot.x * scale, y: 0 };\n options.startPoint = startPoint;\n options.endPoint = endPoint;\n this.svgRenderer.drawLine(canvas, options);\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} selector - Specified the annotation element.\n * @param {HTMLCanvasElement | SVGAElement} canvas - Specified the canvas element.\n * @param {SelectorConstraints} constraints - Specified the selector constraints value.\n * @param {Transforms} transform - Specified the transform values.\n * @param {boolean} connectedSource - Specified is connected source or not.\n * @param {boolean} connectedTarget - Specified is connected target or not.\n * @param {boolean} isSegmentEditing - Specified is segment editing or not.\n * @param {AnnotationSelectorSettingsModel} currentSelector - Specified the current selector value.\n * @returns {void}\n */\n Drawing.prototype.renderEndPointHandle = function (selector, canvas, constraints, transform, connectedSource, connectedTarget, isSegmentEditing, currentSelector) {\n transform = transform || { tx: 0, ty: 0, scale: 1 };\n var sourcePoint = selector.sourcePoint;\n var targetPoint = selector.targetPoint;\n var wrapper = selector.wrapper;\n var i;\n for (i = 0; i < selector.vertexPoints.length; i++) {\n var segment = selector.vertexPoints[parseInt(i.toString(), 10)];\n this.renderCircularHandle(('segementThumb_' + (i + 1)), wrapper, segment.x, segment.y, canvas, true, constraints & ThumbsConstraints.ConnectorSource, transform, connectedSource, null, null, i, null, currentSelector);\n }\n var leaderCount = 0;\n if (selector.shapeAnnotationType === 'Distance') {\n for (i = 0; i < selector.wrapper.children.length; i++) {\n var segment = selector.wrapper.children[parseInt(i.toString(), 10)];\n var newPoint1 = void 0;\n var angle = Point.findAngle(selector.sourcePoint, selector.targetPoint);\n if (segment.id.indexOf('leader') > -1) {\n var center = selector.wrapper.children[0].bounds.center;\n if (leaderCount === 0) {\n newPoint1 = { x: selector.sourcePoint.x, y: selector.sourcePoint.y - selector.leaderHeight };\n center = sourcePoint;\n }\n else {\n newPoint1 = { x: selector.targetPoint.x, y: selector.targetPoint.y - selector.leaderHeight };\n center = targetPoint;\n }\n var matrix = identityMatrix();\n rotateMatrix(matrix, angle, center.x, center.y);\n var rotatedPoint = transformPointByMatrix(matrix, { x: newPoint1.x, y: newPoint1.y });\n this.renderCircularHandle(('leaderThumb_' + (i + 1)), wrapper, rotatedPoint.x, rotatedPoint.y, canvas, true, constraints & ThumbsConstraints.ConnectorSource, transform, connectedSource, null, null, i, null, currentSelector);\n leaderCount++;\n }\n }\n }\n };\n /**\n * @private\n * @returns {void}\n */\n Drawing.prototype.initSelectorWrapper = function () {\n var selectorModel = this.pdfViewer.selectedItems;\n selectorModel.init(this);\n };\n /**\n * @private\n * @param {string[]} objArray - Specified the annotation object array.\n * @param {any} currentSelector - Specified the current selector value.\n * @param {boolean} multipleSelection - Specified the multiple selection or not.\n * @param {boolean} preventUpdate - Specified the prevent update or not.\n * @returns {void}\n */\n // eslint-disable-next-line\n Drawing.prototype.select = function (objArray, currentSelector, multipleSelection, preventUpdate) {\n var selectorModel = this.pdfViewer.selectedItems;\n for (var i = 0; i < objArray.length; i++) {\n // eslint-disable-next-line\n var obj = this.pdfViewer.nameTable[objArray[i]];\n if (obj.formFieldAnnotationType && this.pdfViewer.designerMode) {\n selectorModel.formFields.push(obj);\n this.initSelectorWrapper();\n selectorModel.wrapper.children.push(obj.wrapper);\n this.renderSelector(obj.pageIndex, currentSelector, obj, true);\n }\n else if (obj && !obj.formFieldAnnotationType) {\n if (!(obj instanceof Selector) && obj.wrapper.visible && this.pdfViewer.annotationModule) {\n // eslint-disable-next-line\n var annotationSettings = void 0;\n if (obj.annotationSettings) {\n annotationSettings = obj.annotationSettings;\n annotationSettings.isLock = JSON.parse(annotationSettings.isLock);\n }\n else if (!obj.formFieldAnnotationType) {\n annotationSettings = this.pdfViewer.annotationModule.findAnnotationSettings(obj, true);\n obj.annotationSettings = annotationSettings;\n }\n var isLock = !obj.formFieldAnnotationType ? annotationSettings.isLock : false;\n if (annotationSettings && annotationSettings.isLock && this.pdfViewer.annotationModule.checkAllowedInteractions('Select', obj)) {\n isLock = false;\n }\n if (!isLock) {\n selectorModel.annotations.push(obj);\n this.initSelectorWrapper();\n selectorModel.wrapper.rotateAngle = selectorModel.rotateAngle = 0;\n selectorModel.wrapper.children.push(obj.wrapper);\n if (!preventUpdate) {\n this.renderSelector(obj.pageIndex, currentSelector, obj, true);\n }\n }\n }\n }\n }\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} obj - Specified the annotaion object.\n * @param {number} tx - Specified the tx value.\n * @param {number} ty - Specified the ty value.\n * @param {number} pageIndex - Specified the page index value.\n * @param {any} currentSelector - Specified the current selector value.\n * @param {PdfAnnotationBaseModel} helper - Specified the helper object.\n * @returns {void}\n */\n // eslint-disable-next-line\n Drawing.prototype.dragSelectedObjects = function (tx, ty, pageIndex, currentSelector, helper) {\n var obj = this.pdfViewer.selectedItems;\n this.drag(obj, tx, ty, currentSelector, helper);\n return true;\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} obj - Specified the annotaion object.\n * @param {number} tx - Specified the tx value.\n * @param {number} ty - Specified the ty value.\n * @param {any} currentSelector - Specified the current selector value.\n * @param {PdfAnnotationBaseModel} helper - Specified the helper object.\n * @returns {void}\n */\n // eslint-disable-next-line\n Drawing.prototype.drag = function (obj, tx, ty, currentSelector, helper) {\n if (obj instanceof Selector) {\n if (obj.annotations.length) {\n for (var _i = 0, _a = obj.annotations; _i < _a.length; _i++) {\n var node = _a[_i];\n this.drag(node, tx, ty, currentSelector, helper);\n this.renderSelector(node.pageIndex, currentSelector, helper);\n }\n }\n else if (obj.formFields.length) {\n for (var _b = 0, _c = obj.formFields; _b < _c.length; _b++) {\n var node = _c[_b];\n this.drag(node, tx, ty, currentSelector, helper);\n this.renderSelector(node.pageIndex, currentSelector, helper);\n }\n }\n }\n else {\n this.dragAnnotation(obj, tx, ty);\n }\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} obj - Specified the annotaion object.\n * @param {number} tx - Specified the tx value.\n * @param {number} ty - Specified the ty value.\n * @returns {void}\n */\n Drawing.prototype.dragAnnotation = function (obj, tx, ty) {\n var tempNode;\n var elements = [];\n // eslint-disable-next-line\n var oldValues = { x: obj.wrapper.offsetX, y: obj.wrapper.offsetY };\n //bug (EJ2-62649) : fixed an issue with difficulty on moving/ resizing free text annotation that added in edge of viewer\n var newDiff = this.moveInsideViewer(obj, tx, ty);\n obj.wrapper.offsetX += newDiff.tx;\n obj.wrapper.offsetY += newDiff.ty;\n if (isLineShapes(obj) || obj.shapeAnnotationType === 'Polygon') {\n if (obj.wrapper.children.length) {\n var nodes = obj.wrapper.children;\n for (var i = 0; i < nodes.length; i++) {\n nodes[parseInt(i.toString(), 10)].offsetX += tx;\n nodes[parseInt(i.toString(), 10)].offsetY += ty;\n }\n }\n this.dragControlPoint(obj, tx, ty, true);\n }\n this.nodePropertyChange(obj, { bounds: { x: obj.wrapper.offsetX, y: obj.wrapper.offsetY } });\n obj.wrapper.measureChildren = false;\n // eslint-disable-next-line\n var canvas = document.getElementById(this.pdfViewer.element.id + '_annotationCanvas_' + obj.pageIndex);\n // eslint-disable-next-line\n this.pdfViewer.renderDrawing(canvas, obj.pageIndex);\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} obj - Specified the annotaion object.\n * @param {number} tx - Specified the tx value.\n * @param {number} ty - Specified the ty value.\n * @param {boolean} preventUpdate - Specified the prevent update or not.\n * @param {number} segmentNumber - Specified the segment value.\n * @returns {boolean} - Returns true or false.\n */\n Drawing.prototype.dragControlPoint = function (obj, tx, ty, preventUpdate, segmentNumber) {\n // eslint-disable-next-line\n var connector = this.pdfViewer.nameTable[obj.id];\n for (var i = 0; i < connector.vertexPoints.length; i++) {\n (connector.vertexPoints[parseInt(i.toString(), 10)]).x += tx;\n (connector.vertexPoints[parseInt(i.toString(), 10)]).y += ty;\n }\n if (!preventUpdate) {\n this.updateEndPoint(connector);\n }\n return true;\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} connector - Specified the connector object.\n * @returns {void}\n */\n Drawing.prototype.updateEndPoint = function (connector) {\n this.nodePropertyChange(connector, { vertexPoints: connector.vertexPoints });\n this.renderSelector(connector.pageIndex);\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} actualObject - Specified the actual annotaion object.\n * @param {PdfAnnotationBaseModel} node - Specified the node annotation object.\n * @returns {void}\n */\n Drawing.prototype.nodePropertyChange = function (actualObject, node) {\n var existingBounds = actualObject.wrapper.outerBounds;\n var existingInnerBounds = actualObject.wrapper.bounds;\n var updateConnector = false;\n var i;\n var j;\n var offsetX;\n var offsetY;\n var update;\n var tx;\n var ty;\n if (node.bounds) {\n if (node.bounds.width !== undefined) {\n actualObject.bounds.width = actualObject.wrapper.width = node.bounds.width;\n }\n if (node.bounds.height !== undefined) {\n actualObject.bounds.height = actualObject.wrapper.height = node.bounds.height;\n }\n if (node.bounds.x !== undefined) {\n actualObject.bounds.x = node.bounds.x - (actualObject.bounds.width * 0.5);\n actualObject.wrapper.offsetX = node.bounds.x;\n update = true;\n updateConnector = true;\n }\n if (node.bounds.y !== undefined) {\n actualObject.bounds.y = node.bounds.y - (actualObject.bounds.height * 0.5);\n actualObject.wrapper.offsetY = node.bounds.y;\n update = true;\n updateConnector = true;\n }\n if (node.leaderHeight !== undefined) {\n actualObject.leaderHeight = node.leaderHeight;\n this.updateConnector(actualObject, actualObject.vertexPoints);\n }\n if (actualObject.wrapper.children.length) {\n var children = actualObject.wrapper.children;\n for (var i_1 = 0; i_1 < children.length; i_1++) {\n if (children[parseInt(i_1.toString(), 10)].id) {\n var names = children[parseInt(i_1.toString(), 10)].id.split('_');\n if (names.length && (names.indexOf('perimeter') > -1 || names.indexOf('radius') > -1)) {\n this.setNodePosition(children[parseInt(i_1.toString(), 10)], actualObject);\n }\n else if (names.length && (names.indexOf('srcDec') > -1)) {\n children[parseInt(i_1.toString(), 10)].offsetX = actualObject.vertexPoints[0].x;\n children[parseInt(i_1.toString(), 10)].offsetY = actualObject.vertexPoints[0].y;\n }\n else if (names.length && names.indexOf('tarDec') > -1) {\n children[parseInt(i_1.toString(), 10)].offsetX = actualObject.vertexPoints[actualObject.vertexPoints.length - 1].x;\n children[parseInt(i_1.toString(), 10)].offsetY = actualObject.vertexPoints[actualObject.vertexPoints.length - 1].y;\n }\n else if (names.length && (names.indexOf('stamp') > -1)) {\n // eslint-disable-next-line\n var ratio = 0;\n var heightRatio = 2;\n if (actualObject.wrapper.width !== undefined && actualObject.wrapper.height !== undefined) {\n ratio = 20;\n heightRatio = 2.9;\n }\n if (actualObject.isDynamicStamp) {\n children[parseInt(i_1.toString(), 10)].width = actualObject.bounds.width - ratio;\n children[parseInt(i_1.toString(), 10)].height = (actualObject.bounds.height / 2) - ratio;\n // eslint-disable-next-line\n var element = children[1];\n // eslint-disable-next-line\n var annotationSettings = this.pdfViewer.stampSettings ? this.pdfViewer.stampSettings : this.pdfViewer.annotationSettings;\n // eslint-disable-next-line max-len\n if (annotationSettings && (annotationSettings.maxHeight || annotationSettings.maxWidth) && (actualObject.bounds.height > 60)) {\n if (ratio != 0) {\n element.style.fontSize = (actualObject.bounds.width / ratio);\n }\n else {\n element.style.fontSize = (actualObject.wrapper.bounds.width / 20);\n }\n }\n else {\n if (ratio != 0) {\n element.style.fontSize = this.fontSizeCalculation(actualObject, element, (actualObject.bounds.width - 20));\n }\n else {\n element.style.fontSize = this.fontSizeCalculation(actualObject, element, (actualObject.wrapper.bounds.width - 20));\n }\n }\n if (ratio !== 0) {\n element.margin.bottom = -(children[parseInt(i_1.toString(), 10)].height / 2);\n }\n }\n else {\n children[parseInt(i_1.toString(), 10)].width = actualObject.bounds.width - ratio;\n children[parseInt(i_1.toString(), 10)].height = actualObject.bounds.height - ratio;\n }\n children[parseInt(i_1.toString(), 10)].offsetX = actualObject.wrapper.offsetX;\n children[parseInt(i_1.toString(), 10)].offsetY = actualObject.wrapper.offsetX;\n children[parseInt(i_1.toString(), 10)].isDirt = true;\n }\n }\n }\n }\n }\n if (node.sourceDecoraterShapes !== undefined) {\n actualObject.sourceDecoraterShapes = node.sourceDecoraterShapes;\n this.updateConnector(actualObject, actualObject.vertexPoints);\n }\n if (node.isReadonly !== undefined && actualObject.shapeAnnotationType === 'FreeText') {\n actualObject.isReadonly = node.isReadonly;\n }\n if (node.taregetDecoraterShapes !== undefined) {\n actualObject.taregetDecoraterShapes = node.taregetDecoraterShapes;\n update = true;\n this.updateConnector(actualObject, actualObject.vertexPoints);\n }\n if (node.fillColor !== undefined) {\n actualObject.fillColor = node.fillColor;\n actualObject.wrapper.children[0].style.fill = node.fillColor;\n if ((actualObject.enableShapeLabel || actualObject.measureType) && actualObject.wrapper && actualObject.wrapper.children) {\n // eslint-disable-next-line\n var children = actualObject.wrapper.children;\n for (var i_2 = 0; i_2 < children.length; i_2++) {\n if (children[parseInt(i_2.toString(), 10)].textNodes) {\n if (actualObject.enableShapeLabel) {\n actualObject.labelFillColor = node.fillColor;\n children[parseInt(i_2.toString(), 10)].style.fill = node.fillColor;\n }\n if (actualObject.measureType) {\n children[parseInt(i_2.toString(), 10)].style.fill = node.fillColor;\n }\n }\n }\n }\n update = true;\n }\n if (actualObject.enableShapeLabel && node.labelFillColor !== undefined) {\n if (actualObject.enableShapeLabel && actualObject.wrapper && actualObject.wrapper.children) {\n // eslint-disable-next-line\n var children = actualObject.wrapper.children;\n for (var i_3 = 0; i_3 < children.length; i_3++) {\n if (children[parseInt(i_3.toString(), 10)].textNodes) {\n actualObject.labelFillColor = node.labelFillColor;\n children[parseInt(i_3.toString(), 10)].style.fill = node.labelFillColor;\n }\n }\n }\n }\n if (node.opacity !== undefined) {\n if (actualObject.shapeAnnotationType === 'Stamp' || actualObject.shapeAnnotationType === 'FreeText') {\n actualObject.wrapper.children[1].style.opacity = node.opacity;\n if (actualObject.wrapper.children[2]) {\n actualObject.wrapper.children[2].style.opacity = node.opacity;\n }\n }\n else {\n if (actualObject.shapeAnnotationType === 'StickyNotes') {\n // eslint-disable-next-line\n this.pdfViewer.nameTable[actualObject.annotName].wrapper.children[0].style.opacity = node.opacity;\n }\n actualObject.opacity = node.opacity;\n }\n actualObject.wrapper.children[0].style.opacity = node.opacity;\n if (actualObject.enableShapeLabel && actualObject.wrapper && actualObject.wrapper.children) {\n // eslint-disable-next-line\n var children = actualObject.wrapper.children;\n for (var i_4 = 0; i_4 < children.length; i_4++) {\n if (children[parseInt(i_4.toString(), 10)].textNodes) {\n children[parseInt(i_4.toString(), 10)].style.opacity = node.labelOpacity;\n }\n }\n }\n update = true;\n updateConnector = true;\n }\n if (actualObject.enableShapeLabel && node.labelOpacity !== undefined) {\n if (actualObject.enableShapeLabel && actualObject.wrapper && actualObject.wrapper.children) {\n // eslint-disable-next-line\n var children = actualObject.wrapper.children;\n for (var i_5 = 0; i_5 < children.length; i_5++) {\n if (children[parseInt(i_5.toString(), 10)].textNodes) {\n children[parseInt(i_5.toString(), 10)].style.opacity = node.labelOpacity;\n }\n }\n }\n }\n if (node.rotateAngle !== undefined) {\n actualObject.rotateAngle = node.rotateAngle;\n actualObject.wrapper.rotateAngle = node.rotateAngle;\n update = true;\n updateConnector = true;\n }\n if (node.strokeColor !== undefined) {\n actualObject.strokeColor = node.strokeColor;\n actualObject.wrapper.children[0].style.strokeColor = node.strokeColor;\n update = true;\n if (actualObject.shapeAnnotationType === 'Radius' && actualObject.wrapper.children[1]) {\n actualObject.wrapper.children[1].style.strokeColor = node.strokeColor;\n }\n updateConnector = true;\n }\n if (node.fontColor !== undefined) {\n actualObject.fontColor = node.fontColor;\n if (actualObject.shapeAnnotationType === 'FreeText' && actualObject.wrapper && actualObject.wrapper.children && actualObject.wrapper.children.length) {\n // eslint-disable-next-line\n var children = actualObject.wrapper.children;\n children[1].style.color = node.fontColor;\n if (actualObject.textAlign === 'Justify') {\n children[1].horizontalAlignment = 'Center';\n }\n else {\n children[1].horizontalAlignment = 'Auto';\n }\n }\n if (actualObject.enableShapeLabel && actualObject.wrapper && actualObject.wrapper.children) {\n // eslint-disable-next-line\n var children = actualObject.wrapper.children;\n for (var i_6 = 0; i_6 < children.length; i_6++) {\n if (children[parseInt(i_6.toString(), 10)].textNodes) {\n children[parseInt(i_6.toString(), 10)].style.color = node.fontColor;\n }\n }\n }\n update = true;\n updateConnector = true;\n }\n if (node.fontFamily !== undefined) {\n actualObject.fontFamily = node.fontFamily;\n if (actualObject.shapeAnnotationType === 'FreeText' && actualObject.wrapper && actualObject.wrapper.children && actualObject.wrapper.children.length) {\n // eslint-disable-next-line\n var children = actualObject.wrapper.children;\n children[1].style.fontFamily = node.fontFamily;\n }\n if (actualObject.enableShapeLabel && actualObject.wrapper && actualObject.wrapper.children) {\n // eslint-disable-next-line\n var children = actualObject.wrapper.children;\n for (var i_7 = 0; i_7 < children.length; i_7++) {\n if (children[parseInt(i_7.toString(), 10)].textNodes) {\n children[parseInt(i_7.toString(), 10)].style.fontFamily = node.fontFamily;\n }\n }\n }\n update = true;\n updateConnector = true;\n }\n if (node.fontSize !== undefined) {\n actualObject.fontSize = node.fontSize;\n if ((actualObject.shapeAnnotationType === 'FreeText' || actualObject.shapeAnnotationType === 'SignatureText') && actualObject.wrapper && actualObject.wrapper.children && actualObject.wrapper.children.length) {\n // eslint-disable-next-line\n var children = actualObject.wrapper.children;\n children[1].style.fontSize = node.fontSize;\n if (actualObject.shapeAnnotationType === 'SignatureText') {\n actualObject.wrapper.children[1].bounds.width = actualObject.bounds.width;\n actualObject.wrapper.children[1].desiredSize.width = actualObject.bounds.width;\n actualObject.wrapper.children[1].actualSize.width = actualObject.bounds.width;\n children[1].horizontalAlignment = 'Center';\n children[1].verticalAlignment = 'Center';\n children[1].setOffsetWithRespectToBounds(0, 0, 'Absolute');\n }\n }\n if (actualObject.enableShapeLabel && actualObject.wrapper && actualObject.wrapper.children) {\n // eslint-disable-next-line\n var children = actualObject.wrapper.children;\n for (var i_8 = 0; i_8 < children.length; i_8++) {\n if (children[parseInt(i_8.toString(), 10)].textNodes) {\n children[parseInt(i_8.toString(), 10)].style.fontSize = node.fontSize;\n }\n }\n }\n update = true;\n updateConnector = true;\n }\n if (node.font !== undefined) {\n if (actualObject.shapeAnnotationType === 'FreeText' && actualObject.wrapper && actualObject.wrapper.children && actualObject.wrapper.children.length) {\n // eslint-disable-next-line\n var children = actualObject.wrapper.children;\n if (node.font.isBold !== undefined) {\n children[1].style.bold = node.font.isBold;\n actualObject.font.isBold = node.font.isBold;\n }\n if (node.font.isItalic !== undefined) {\n children[1].style.italic = node.font.isItalic;\n actualObject.font.isItalic = node.font.isItalic;\n }\n if (node.font.isUnderline !== undefined) {\n if (node.font.isUnderline) {\n actualObject.font.isStrikeout = false;\n }\n if (node.font.isUnderline === true) {\n children[1].style.textDecoration = 'Underline';\n }\n else {\n if (!node.font.isStrikeout) {\n children[1].style.textDecoration = 'None';\n }\n }\n actualObject.font.isUnderline = node.font.isUnderline;\n }\n if (node.font.isStrikeout !== undefined) {\n if (node.font.isStrikeout) {\n actualObject.font.isUnderline = false;\n }\n if (node.font.isStrikeout === true) {\n children[1].style.textDecoration = 'LineThrough';\n }\n else {\n if (!node.font.isUnderline) {\n children[1].style.textDecoration = 'None';\n }\n }\n actualObject.font.isStrikeout = node.font.isStrikeout;\n }\n }\n update = true;\n updateConnector = true;\n }\n if (node.textAlign !== undefined) {\n actualObject.textAlign = node.textAlign;\n if (actualObject.shapeAnnotationType === 'FreeText' && actualObject.wrapper && actualObject.wrapper.children && actualObject.wrapper.children.length) {\n // eslint-disable-next-line\n var children = actualObject.wrapper.children;\n children[1].style.textAlign = node.textAlign;\n if (children[1].childNodes.length === 1) {\n if (actualObject.textAlign === 'Justify') {\n children[1].horizontalAlignment = 'Left';\n children[1].setOffsetWithRespectToBounds(0, 0, null);\n }\n else if (actualObject.textAlign === 'Right') {\n children[1].horizontalAlignment = 'Right';\n children[1].setOffsetWithRespectToBounds(0.97, 0, null);\n }\n else if (actualObject.textAlign === 'Left') {\n children[1].horizontalAlignment = 'Left';\n children[1].setOffsetWithRespectToBounds(0, 0, null);\n }\n else if (actualObject.textAlign === 'Center') {\n children[1].horizontalAlignment = 'Center';\n children[1].setOffsetWithRespectToBounds(0.46, 0, null);\n }\n }\n else if (children[1].childNodes.length > 1 && actualObject.textAlign === 'Justify') {\n children[1].horizontalAlignment = 'Center';\n }\n else {\n children[1].horizontalAlignment = 'Auto';\n }\n }\n update = true;\n updateConnector = true;\n }\n if (node.thickness !== undefined) {\n actualObject.thickness = node.thickness;\n actualObject.wrapper.children[0].style.strokeWidth = node.thickness;\n if (actualObject.shapeAnnotationType === 'LineWidthArrowHead') {\n actualObject.wrapper.children[1].width = 12 * node.thickness;\n actualObject.wrapper.children[1].height = 12 * node.thickness;\n actualObject.wrapper.children[2].width = 12 * node.thickness;\n actualObject.wrapper.children[2].height = 12 * node.thickness;\n }\n if (actualObject.shapeAnnotationType === 'Radius' && actualObject.wrapper.children[1]) {\n actualObject.wrapper.children[1].style.strokeWidth = node.thickness;\n }\n update = true;\n updateConnector = true;\n }\n if (node.borderDashArray !== undefined) {\n actualObject.borderDashArray = node.borderDashArray;\n actualObject.wrapper.children[0].style.strokeDashArray = node.borderDashArray;\n }\n if (node.borderStyle !== undefined) {\n actualObject.borderStyle = node.borderStyle;\n }\n if (node.author !== undefined) {\n actualObject.author = node.author;\n }\n if (node.modifiedDate !== undefined) {\n actualObject.modifiedDate = node.modifiedDate;\n }\n if (node.subject !== undefined) {\n actualObject.subject = node.subject;\n }\n if (node.vertexPoints !== undefined) {\n actualObject.vertexPoints = node.vertexPoints;\n // eslint-disable-next-line\n this.pdfViewer.nameTable[actualObject.id].vertexPoints = node.vertexPoints;\n this.updateConnector(actualObject, node.vertexPoints);\n }\n if (node.leaderHeight !== undefined && actualObject.shapeAnnotationType !== 'Polygon') {\n actualObject.leaderHeight = node.leaderHeight;\n this.updateConnector(actualObject, actualObject.vertexPoints);\n }\n if (node.notes !== undefined) {\n actualObject.notes = node.notes;\n }\n if (node.annotName !== undefined) {\n actualObject.annotName = node.annotName;\n }\n if (actualObject.shapeAnnotationType === 'Distance') {\n for (i = 0; i < actualObject.wrapper.children.length; i++) {\n // eslint-disable-next-line\n var segment = actualObject.wrapper.children[i];\n // eslint-disable-next-line\n var points = getConnectorPoints(actualObject);\n if (segment.id.indexOf('leader1') > -1) {\n this.setLineDistance(actualObject, points, segment, false);\n }\n if (segment.id.indexOf('leader2') > -1) {\n this.setLineDistance(actualObject, points, segment, true);\n }\n }\n this.updateConnector(actualObject, actualObject.vertexPoints);\n }\n if (actualObject.shapeAnnotationType === 'Polygon' && node.vertexPoints) {\n actualObject.data = getPolygonPath(actualObject.vertexPoints);\n // eslint-disable-next-line\n var path = actualObject.wrapper.children[0];\n path.data = actualObject.data;\n path.canMeasurePath = true;\n }\n if (isLineShapes(actualObject)) {\n for (var i_9 = 0; i_9 < actualObject.wrapper.children.length; i_9++) {\n // eslint-disable-next-line\n var childElement = actualObject.wrapper.children[i_9];\n if (!childElement.textNodes) {\n setElementStype(actualObject, actualObject.wrapper.children[parseInt(i_9.toString(), 10)]);\n }\n if (actualObject.enableShapeLabel === true) {\n if (actualObject.wrapper.children[parseInt(i_9.toString(), 10)] instanceof TextElement) {\n actualObject.wrapper.children[parseInt(i_9.toString(), 10)].style.fill = actualObject.labelFillColor;\n }\n if ((actualObject.wrapper.children[parseInt(i_9.toString(), 10)] instanceof PathElement && actualObject.measureType === 'Perimeter')) {\n actualObject.wrapper.children[parseInt(i_9.toString(), 10)].style.fill = 'transparent';\n }\n }\n else {\n if ((actualObject.wrapper.children[parseInt(i_9.toString(), 10)] instanceof PathElement && actualObject.measureType === 'Perimeter') || actualObject.wrapper.children[parseInt(i_9.toString(), 10)] instanceof TextElement) {\n actualObject.wrapper.children[parseInt(i_9.toString(), 10)].style.fill = 'transparent';\n }\n }\n }\n }\n if (actualObject && (actualObject.shapeAnnotationType === 'FreeText' || actualObject.enableShapeLabel === true)) {\n if (actualObject.wrapper && actualObject.wrapper.children && actualObject.wrapper.children.length) {\n // eslint-disable-next-line\n var children = actualObject.wrapper.children;\n for (var i_10 = 0; i_10 < children.length; i_10++) {\n if (children[parseInt(i_10.toString(), 10)].textNodes) {\n if (actualObject.shapeAnnotationType === 'FreeText') {\n if (node.dynamicText) {\n children[parseInt(i_10.toString(), 10)].content = node.dynamicText;\n actualObject.dynamicText = node.dynamicText;\n }\n else {\n children[parseInt(i_10.toString(), 10)].content = actualObject.dynamicText;\n }\n children[parseInt(i_10.toString(), 10)].width = actualObject.bounds.width;\n }\n else if (actualObject.enableShapeLabel === true && actualObject.measureType) {\n if (node.labelContent) {\n children[parseInt(i_10.toString(), 10)].content = node.labelContent;\n actualObject.labelContent = node.labelContent;\n }\n else {\n children[parseInt(i_10.toString(), 10)].content = actualObject.labelContent;\n }\n actualObject.notes = children[parseInt(i_10.toString(), 10)].content;\n }\n else if (actualObject.enableShapeLabel === true) {\n if (node.labelContent) {\n children[parseInt(i_10.toString(), 10)].content = node.labelContent;\n actualObject.labelContent = node.labelContent;\n }\n else {\n children[parseInt(i_10.toString(), 10)].content = actualObject.labelContent;\n }\n actualObject.notes = children[parseInt(i_10.toString(), 10)].content;\n }\n children[parseInt(i_10.toString(), 10)].isDirt = true;\n }\n /** set text node width less than the parent */\n }\n }\n }\n if (actualObject && actualObject.shapeAnnotationType === \"SignatureText\" && actualObject.wrapper) {\n if (actualObject.wrapper.children && actualObject.wrapper.children.length > 1) {\n actualObject.wrapper.children[1].isDirt = true;\n }\n }\n if (actualObject && actualObject.shapeAnnotationType === 'FreeText' && this.pdfViewer.annotationModule.stickyNotesAnnotationModule.textFromCommentPanel) {\n actualObject.wrapper.width = undefined;\n actualObject.wrapper.height = undefined;\n actualObject.wrapper.measure(new Size(actualObject.wrapper.bounds.width, actualObject.wrapper.bounds.height));\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.textFromCommentPanel = false;\n }\n else {\n actualObject.wrapper.measure(new Size(actualObject.wrapper.bounds.width, actualObject.wrapper.bounds.height));\n }\n actualObject.wrapper.arrange(actualObject.wrapper.desiredSize);\n if (actualObject && actualObject.formFieldAnnotationType) {\n if (actualObject.wrapper && actualObject.wrapper.children && actualObject.wrapper.children.length) {\n // eslint-disable-next-line\n var children = actualObject.wrapper.children[0];\n children.actualSize.width = actualObject.wrapper.desiredSize.width;\n children.actualSize.height = actualObject.wrapper.desiredSize.height;\n }\n }\n if (actualObject && actualObject.shapeAnnotationType === 'FreeText' && actualObject.subject === 'Text Box') {\n if (actualObject.wrapper && actualObject.wrapper.children && actualObject.wrapper.children.length) {\n // eslint-disable-next-line\n var children = actualObject.wrapper.children;\n if (children[1].childNodes.length > 1 && actualObject.textAlign === 'Justify') {\n children[1].horizontalAlignment = 'Center';\n }\n else if (children[1].childNodes.length === 1) {\n if (actualObject.textAlign === 'Justify') {\n children[1].horizontalAlignment = 'Left';\n children[1].setOffsetWithRespectToBounds(0, 0, null);\n }\n else if (actualObject.textAlign === 'Right') {\n children[1].horizontalAlignment = 'Right';\n children[1].setOffsetWithRespectToBounds(0.97, 0, null);\n }\n else if (actualObject.textAlign === 'Left') {\n children[1].horizontalAlignment = 'Left';\n children[1].setOffsetWithRespectToBounds(0, 0, null);\n }\n else if (actualObject.textAlign === 'Center') {\n children[1].horizontalAlignment = 'Center';\n children[1].setOffsetWithRespectToBounds(0.46, 0, null);\n }\n }\n for (var i_11 = 0; i_11 < children.length; i_11++) {\n if (children[parseInt(i_11.toString(), 10)].textNodes && children[parseInt(i_11.toString(), 10)].textNodes.length > 0) {\n children[parseInt(i_11.toString(), 10)].isDirt = true;\n var childNodeHeight = children[parseInt(i_11.toString(), 10)].textNodes.length * children[parseInt(i_11.toString(), 10)].textNodes[0].dy;\n var heightDiff = actualObject.bounds.height - childNodeHeight;\n if (heightDiff > 0 && heightDiff < children[parseInt(i_11.toString(), 10)].textNodes[0].dy) {\n childNodeHeight = childNodeHeight + children[parseInt(i_11.toString(), 10)].textNodes[0].dy;\n }\n if (childNodeHeight > actualObject.bounds.height) {\n var contString = '';\n for (var index = 0; index < children[parseInt(i_11.toString(), 10)].textNodes.length; index++) {\n // eslint-disable-next-line\n var childHeight = children[i_11].textNodes[0].dy * (index + 1);\n // eslint-disable-next-line\n childHeight = childHeight;\n contString = contString + children[parseInt(i_11.toString(), 10)].textNodes[parseInt(index.toString(), 10)].text;\n }\n children[parseInt(i_11.toString(), 10)].content = contString;\n }\n }\n /** set text node width less than the parent */\n children[parseInt(i_11.toString(), 10)].width = actualObject.bounds.width;\n }\n }\n actualObject.wrapper.measure(new Size(actualObject.wrapper.bounds.width, actualObject.wrapper.bounds.height));\n actualObject.wrapper.arrange(actualObject.wrapper.desiredSize);\n }\n this.pdfViewer.renderDrawing(undefined, actualObject.pageIndex);\n if (actualObject && actualObject.shapeAnnotationType === 'FreeText') {\n if (actualObject.wrapper && actualObject.wrapper.children && actualObject.wrapper.children.length) {\n // eslint-disable-next-line\n var children = actualObject.wrapper.children;\n if (children[1].childNodes.length === 1 && actualObject.textAlign === 'Justify') {\n children[1].horizontalAlignment = 'Left';\n children[1].setOffsetWithRespectToBounds(0.5, 0, null);\n }\n else if (children[1].childNodes.length > 1 && actualObject.textAlign === 'Justify') {\n children[1].horizontalAlignment = 'Center';\n children[1].setOffsetWithRespectToBounds(0, 0, null);\n }\n }\n }\n };\n Drawing.prototype.fontSizeCalculation = function (actualObject, element, boundsWidth) {\n var canvas = document.getElementById(this.pdfViewer.element.id + '_annotationCanvas_' + actualObject.pageIndex);\n var context = canvas.getContext(\"2d\");\n var textwidth = 0;\n var newsize = 0;\n var fontStyle = '';\n if (element.style.italic && element.style.bold) {\n fontStyle = 'bold italic ';\n }\n else if (element.style.bold) {\n fontStyle = 'bold ';\n }\n else if (element.style.italic) {\n fontStyle = 'italic ';\n }\n while (boundsWidth > textwidth) {\n context.font = fontStyle + newsize + 'px ' + element.style.fontFamily;\n textwidth = context.measureText(actualObject.dynamicText).width;\n newsize += 0.1;\n }\n newsize -= 0.1;\n return newsize;\n };\n // eslint-disable-next-line\n Drawing.prototype.setLineDistance = function (actualObject, points, segment, leader) {\n var node1;\n if (leader) {\n node1 = initLeader(actualObject, points[1], points[0], leader);\n }\n else {\n node1 = initLeader(actualObject, points[0], points[1], leader);\n }\n segment.data = node1.data;\n segment.offsetX = node1.offsetX;\n segment.offsetY = node1.offsetY;\n segment.rotateAngle = node1.rotateAngle;\n segment.width = node1.width;\n segment.height = node1.height;\n segment.pivot = node1.pivot;\n segment.canMeasurePath = true;\n segment.isDirt = true;\n };\n /**\n * @private\n * @param {number} sx - Specified the sx value.\n * @param {number} sy - Specified the sy value.\n * @param {PointModel} pivot - Specified the pivot value.\n * @returns {boolean} - Returns true or false.\n */\n Drawing.prototype.scaleSelectedItems = function (sx, sy, pivot) {\n var obj = this.pdfViewer.selectedItems;\n return this.scale(obj, sx, sy, pivot);\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel | SelectorModel} obj - Specified the annotaion object.\n * @param {number} sx - Specified the sx value.\n * @param {number} sy - Specified the sy value.\n * @param {PointModel} pivot - Specified the pivot value.\n * @returns {boolean} - Returns true or false.\n */\n Drawing.prototype.scale = function (obj, sx, sy, pivot) {\n var checkBoundaryConstraints = true;\n if (obj instanceof Selector) {\n if (obj.annotations && obj.annotations.length) {\n for (var _i = 0, _a = obj.annotations; _i < _a.length; _i++) {\n var node = _a[_i];\n checkBoundaryConstraints = this.scaleAnnotation(node, sx, sy, pivot, obj);\n }\n }\n else if (obj.formFields && obj.formFields.length) {\n for (var _b = 0, _c = obj.formFields; _b < _c.length; _b++) {\n var node = _c[_b];\n checkBoundaryConstraints = this.scaleAnnotation(node, sx, sy, pivot, obj);\n }\n }\n }\n else {\n checkBoundaryConstraints = this.scaleAnnotation(obj, sx, sy, pivot, undefined);\n }\n return checkBoundaryConstraints;\n };\n /**\n * @private\n * @param {number} sw - Specified the sw value.\n * @param {number} sh - Specified the sh value.\n * @param {PointModel} pivot - Specified the pivot value.\n * @param {IElement} obj - Specified the annotation object.\n * @param {DrawingElement} element - Specified the annotation element.\n * @param {IElement} refObject - Specified the annotation reference object.\n * @returns {void}\n */\n Drawing.prototype.scaleObject = function (sw, sh, pivot, obj, element, refObject) {\n sw = sw < 0 ? 1 : sw;\n sh = sh < 0 ? 1 : sh;\n if (sw !== 1 || sh !== 1) {\n var width = void 0;\n var height = void 0;\n if (!isLineShapes(obj)) {\n var node = obj;\n var isResize = void 0;\n var bound = void 0;\n width = node.wrapper.actualSize.width * sw;\n height = node.wrapper.actualSize.height * sh;\n if (isResize) {\n width = Math.max(width, (bound.right - node.wrapper.bounds.x));\n height = Math.max(height, (bound.bottom - node.wrapper.bounds.y));\n }\n sw = width / node.wrapper.actualSize.width;\n sh = height / node.wrapper.actualSize.height;\n }\n var matrix = identityMatrix();\n if (!refObject) {\n refObject = obj;\n }\n var refWrapper = refObject.wrapper;\n rotateMatrix(matrix, -refWrapper.rotateAngle, pivot.x, pivot.y);\n scaleMatrix(matrix, sw, sh, pivot.x, pivot.y);\n rotateMatrix(matrix, refWrapper.rotateAngle, pivot.x, pivot.y);\n if (!isLineShapes(obj)) {\n var node = obj;\n var newPosition = transformPointByMatrix(matrix, { x: node.wrapper.offsetX, y: node.wrapper.offsetY });\n if (width > 0) {\n node.wrapper.width = width;\n node.wrapper.offsetX = newPosition.x;\n }\n if (height > 0) {\n node.wrapper.height = height;\n node.wrapper.offsetY = newPosition.y;\n }\n this.nodePropertyChange(obj, {\n bounds: { width: node.wrapper.width, height: node.wrapper.height, x: node.wrapper.offsetX, y: node.wrapper.offsetY }\n });\n }\n }\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} obj - Specified the annotaion object.\n * @param {number} sw - Specified the sw value.\n * @param {number} sh - Specified the sh value.\n * @param {PointModel} pivot - Specified the pivot value.\n * @param {IElement} refObject - Specified the reference object.\n * @returns {boolean} - Returns true or false.\n */\n Drawing.prototype.scaleAnnotation = function (obj, sw, sh, pivot, refObject) {\n // eslint-disable-next-line\n var node = this.pdfViewer.nameTable[obj.id];\n var tempNode = node;\n var elements = [];\n var element = node.wrapper;\n if (!refObject) {\n refObject = obj;\n }\n var refWrapper = refObject.wrapper;\n var x = refWrapper.offsetX - refWrapper.actualSize.width * refWrapper.pivot.x;\n var y = refWrapper.offsetY - refWrapper.actualSize.height * refWrapper.pivot.y;\n var refPoint = this.getShapePoint(x, y, refWrapper.actualSize.width, refWrapper.actualSize.height, refWrapper.rotateAngle, refWrapper.offsetX, refWrapper.offsetY, pivot);\n if (element.actualSize.width !== undefined && element.actualSize.height !== undefined) {\n this.scaleObject(sw, sh, refPoint, node, element, refObject);\n }\n // eslint-disable-next-line max-len\n var constraints = this.checkBoundaryConstraints(undefined, undefined, obj.pageIndex, obj.wrapper.bounds);\n if (!constraints) {\n this.scaleObject(1 / sw, 1 / sh, refPoint, node, element, refObject);\n //bug (EJ2-62649) : fixed an issue with difficulty on moving/ resizing free text annotation that added in edge of viewer \n // eslint-disable-next-line\n if (obj.shapeAnnotationType === 'FreeText' && (obj.id.slice(0, 9) === 'free_text' || obj.id.slice(0, 8) === 'freetext')) {\n var newDiff = this.moveInsideViewer(obj);\n this.nodePropertyChange(obj, {\n bounds: { width: obj.wrapper.width, height: obj.wrapper.height, x: obj.wrapper.offsetX + newDiff.tx, y: obj.wrapper.offsetY + newDiff.ty }\n });\n }\n }\n return constraints;\n };\n //bug (EJ2-62649) : Implemnted method for calculating optimal bound for free text annotation that outside viewer container \n Drawing.prototype.moveInsideViewer = function (obj, tx, ty) {\n tx = tx ? tx : 0;\n ty = ty ? ty : 0;\n if (obj.shapeAnnotationType === 'FreeText' && (obj.id.slice(0, 9) === 'free_text' || obj.id.slice(0, 8) === 'freetext')) {\n // eslint-disable-next-line\n var canvas = document.getElementById(this.pdfViewer.element.id + '_annotationCanvas_' + obj.pageIndex);\n if (canvas) {\n var bounds = obj.wrapper.bounds;\n var width = canvas.clientWidth / this.pdfViewer.viewerBase.getZoomFactor();\n var height = canvas.clientHeight / this.pdfViewer.viewerBase.getZoomFactor();\n var right = bounds.right;\n var left = bounds.left;\n var top_1 = bounds.top;\n var bottom = bounds.bottom;\n // eslint-disable-next-line\n if (!(right + tx <= width - 3 && left + tx >= 1 && bottom + ty <= height - 3 && top_1 + ty >= 1)) {\n var txNew = 0;\n var tyNew = 0;\n if (!(right <= width - 3)) {\n txNew = width - right - 3;\n }\n if (!(left >= 1)) {\n txNew = txNew - left + 1;\n }\n if (!(bottom <= height - 3)) {\n tyNew = height - bottom - 3;\n }\n if (!(top_1 >= 1)) {\n tyNew = tyNew - top_1 + 1;\n }\n if (txNew !== 0) {\n tx = txNew;\n }\n if (tyNew !== 0) {\n ty = tyNew;\n }\n }\n }\n }\n return { tx: tx, ty: ty };\n };\n /**\n * @private\n * @param {number} tx - Specified the tx value.\n * @param {number} ty - Specified the ty value.\n * @param {number} pageIndex - Specified the page index value.\n * @param {Rect} nodeBounds - Specified the node bounds value.\n * @param {boolean} isStamp - Specified the annotation is stamp or not.\n * @param {boolean} isSkip - Specified the annotaion is skip or not.\n * @returns {boolean} - Returns true or false.\n */\n // eslint-disable-next-line max-len\n Drawing.prototype.checkBoundaryConstraints = function (tx, ty, pageIndex, nodeBounds, isStamp, isSkip) {\n var selectorBounds = !nodeBounds ? this.pdfViewer.selectedItems.wrapper.bounds : undefined;\n var bounds = nodeBounds;\n // eslint-disable-next-line\n var canvas = document.getElementById(this.pdfViewer.element.id + '_annotationCanvas_' + pageIndex);\n var heightDifference = 1;\n if (canvas) {\n var width = canvas.clientWidth / this.pdfViewer.viewerBase.getZoomFactor();\n var height = canvas.clientHeight / this.pdfViewer.viewerBase.getZoomFactor();\n var right = (nodeBounds ? bounds.right : selectorBounds.right) + (tx || 0);\n var left = (nodeBounds ? bounds.left : selectorBounds.left) + (tx || 0);\n var top_2 = (nodeBounds ? bounds.top : selectorBounds.top) + (ty || 0);\n var bottom = (nodeBounds ? bounds.bottom : selectorBounds.bottom) + (ty || 0);\n if (isStamp) {\n heightDifference = 50;\n if (this.pdfViewer.viewerBase.eventArgs && this.pdfViewer.viewerBase.eventArgs.source) {\n if (this.RestrictStamp(this.pdfViewer.viewerBase.eventArgs.source)) {\n return false;\n }\n }\n }\n if ((right <= width - 3 && left >= 1 && bottom <= height - 3 && top_2 >= heightDifference) || isSkip) {\n return true;\n }\n }\n return false;\n };\n // eslint-disable-next-line\n Drawing.prototype.RestrictStamp = function (source) {\n // eslint-disable-next-line max-len\n if (source && source.pageIndex !== undefined && this.pdfViewer.viewerBase.activeElements && source.pageIndex !== this.pdfViewer.viewerBase.activeElements.activePageID) {\n return true;\n }\n return false;\n };\n /**\n * @private\n * @param {DrawingElement} shapeElement - Specified the shape element.\n * @returns {Rect} - Returns the rectangle object.\n */\n Drawing.prototype.getShapeBounds = function (shapeElement) {\n var shapeBounds = new Rect();\n var shapeCorners = cornersPointsBeforeRotation(shapeElement);\n var shapeMiddleLeft = shapeCorners.middleLeft;\n var shapeTopCenter = shapeCorners.topCenter;\n var shapeBottomCenter = shapeCorners.bottomCenter;\n var shapeMiddleRight = shapeCorners.middleRight;\n var shapeTopLeft = shapeCorners.topLeft;\n var shapeTopRight = shapeCorners.topRight;\n var shapeBottomLeft = shapeCorners.bottomLeft;\n var shapeBottomRight = shapeCorners.bottomRight;\n shapeElement.corners = {\n topLeft: shapeTopLeft, topCenter: shapeTopCenter, topRight: shapeTopRight, middleLeft: shapeMiddleLeft,\n middleRight: shapeMiddleRight, bottomLeft: shapeBottomLeft, bottomCenter: shapeBottomCenter, bottomRight: shapeBottomRight\n };\n if (shapeElement.rotateAngle !== 0 || shapeElement.parentTransform !== 0) {\n var matrix = identityMatrix();\n rotateMatrix(matrix, shapeElement.rotateAngle + shapeElement.parentTransform, shapeElement.offsetX, shapeElement.offsetY);\n shapeElement.corners.topLeft = shapeTopLeft = transformPointByMatrix(matrix, shapeTopLeft);\n shapeElement.corners.topCenter = shapeTopCenter = transformPointByMatrix(matrix, shapeTopCenter);\n shapeElement.corners.topRight = shapeTopRight = transformPointByMatrix(matrix, shapeTopRight);\n shapeElement.corners.middleLeft = shapeMiddleLeft = transformPointByMatrix(matrix, shapeMiddleLeft);\n shapeElement.corners.middleRight = shapeMiddleRight = transformPointByMatrix(matrix, shapeMiddleRight);\n shapeElement.corners.bottomLeft = shapeBottomLeft = transformPointByMatrix(matrix, shapeBottomLeft);\n shapeElement.corners.bottomCenter = shapeBottomCenter = transformPointByMatrix(matrix, shapeBottomCenter);\n shapeElement.corners.bottomRight = shapeBottomRight = transformPointByMatrix(matrix, shapeBottomRight);\n //Set corners based on rotate angle\n }\n shapeBounds = Rect.toBounds([shapeTopLeft, shapeTopRight, shapeBottomLeft, shapeBottomRight]);\n shapeElement.corners.left = shapeBounds.left;\n shapeElement.corners.right = shapeBounds.right;\n shapeElement.corners.top = shapeBounds.top;\n shapeElement.corners.bottom = shapeBounds.bottom;\n shapeElement.corners.center = shapeBounds.center;\n shapeElement.corners.width = shapeBounds.width;\n shapeElement.corners.height = shapeBounds.height;\n return shapeBounds;\n };\n /**\n * @private\n * @param {number} x - Specified the x value.\n * @param {number} y - Specified the y value.\n * @param {number} w - Specified the w value.\n * @param {number} h - Specified the h value.\n * @param {number} angle - Specified the angle value.\n * @param {number} offsetX - Specified the offset x value.\n * @param {number} offsetY - Specified the offset y value.\n * @param {PointModel} cornerPoint - Specified the corner point value.\n * @returns {PointModel} - Returns the point model.\n */\n Drawing.prototype.getShapePoint = function (x, y, w, h, angle, offsetX, offsetY, cornerPoint) {\n var pivotPoint = { x: 0, y: 0 };\n var transformMatrix = identityMatrix();\n rotateMatrix(transformMatrix, angle, offsetX, offsetY);\n switch (cornerPoint.x) {\n case 1:\n switch (cornerPoint.y) {\n case 1:\n pivotPoint = transformPointByMatrix(transformMatrix, ({ x: x + w, y: y + h }));\n break;\n case 0:\n pivotPoint = transformPointByMatrix(transformMatrix, ({ x: x + w, y: y }));\n break;\n case 0.5:\n pivotPoint = transformPointByMatrix(transformMatrix, ({ x: x + w, y: y + h / 2 }));\n break;\n }\n break;\n case 0:\n switch (cornerPoint.y) {\n case 0.5:\n pivotPoint = transformPointByMatrix(transformMatrix, ({ x: x, y: y + h / 2 }));\n break;\n case 1:\n pivotPoint = transformPointByMatrix(transformMatrix, ({ x: x, y: y + h }));\n break;\n case 0:\n pivotPoint = transformPointByMatrix(transformMatrix, ({ x: x, y: y }));\n break;\n }\n break;\n case 0.5:\n switch (cornerPoint.y) {\n case 0:\n pivotPoint = transformPointByMatrix(transformMatrix, ({ x: x + w / 2, y: y }));\n break;\n case 0.5:\n pivotPoint = transformPointByMatrix(transformMatrix, ({ x: x + w / 2, y: y + h / 2 }));\n break;\n case 1:\n pivotPoint = transformPointByMatrix(transformMatrix, ({ x: x + w / 2, y: y + h }));\n break;\n }\n break;\n }\n return { x: pivotPoint.x, y: pivotPoint.y };\n };\n /**\n * @private\n * @param {string} endPoint - Specified the end point value.\n * @param {IElement} obj - Specified the annotaion object.\n * @param {PointModel} point - Specified the annotation points.\n * @param {PointModel} segment - Specified the annotaion segment.\n * @param {IElement} target - Specified the target element.\n * @param {string} targetPortId - Specified the target port id.\n * @param {any} currentSelector - Specified the current selector value.\n * @returns {boolean} - Returns true or false.\n */\n // eslint-disable-next-line\n Drawing.prototype.dragConnectorEnds = function (endPoint, obj, point, segment, target, targetPortId, currentSelector) {\n var selectorModel;\n var connector;\n var node;\n var tx;\n var segmentPoint;\n var ty;\n var index;\n // eslint-disable-next-line\n var checkBezierThumb = false;\n if (obj instanceof Selector) {\n selectorModel = obj;\n connector = selectorModel.annotations[0];\n }\n else {\n connector = obj;\n }\n point = { x: point.x / this.pdfViewer.viewerBase.getZoomFactor(), y: point.y / this.pdfViewer.viewerBase.getZoomFactor() };\n if (this.checkBoundaryConstraints(undefined, undefined, connector.pageIndex, connector.wrapper.bounds)) {\n if (connector.shapeAnnotationType === 'Distance') {\n var leader = isLeader(connector, endPoint);\n if (endPoint === 'Leader0') {\n if (this.pdfViewer.viewerBase.tool instanceof LineTool) {\n connector.vertexPoints[0].x = point.x;\n connector.vertexPoints[0].y = point.y;\n }\n else {\n tx = point.x - leader.point.x;\n ty = point.y - leader.point.y;\n connector.vertexPoints[0].x += tx;\n connector.vertexPoints[0].y += ty;\n }\n }\n else if (endPoint === 'Leader1') {\n var length_2 = connector.vertexPoints.length - 1;\n if (this.pdfViewer.viewerBase.tool instanceof LineTool) {\n connector.vertexPoints[parseInt(length_2.toString(), 10)].x = point.x;\n connector.vertexPoints[parseInt(length_2.toString(), 10)].y = point.y;\n }\n else {\n tx = point.x - leader.point.x;\n ty = point.y - leader.point.y;\n connector.vertexPoints[parseInt(length_2.toString(), 10)].x += tx;\n connector.vertexPoints[parseInt(length_2.toString(), 10)].y += ty;\n }\n }\n else {\n // eslint-disable-next-line\n var angle = Point.findAngle(connector.sourcePoint, connector.targetPoint);\n // eslint-disable-next-line\n var center = obj.wrapper.children[0].bounds.center;\n // eslint-disable-next-line\n var matrix = identityMatrix();\n rotateMatrix(matrix, -angle, center.x, center.y);\n // eslint-disable-next-line\n var rotatedPoint = transformPointByMatrix(matrix, { x: point.x, y: point.y });\n if (endPoint.split('_')[0] === 'ConnectorSegmentPoint') {\n // eslint-disable-next-line\n var matrix = identityMatrix();\n rotateMatrix(matrix, -angle, center.x, center.y);\n // eslint-disable-next-line\n var rotatedPoint1 = transformPointByMatrix(matrix, connector.vertexPoints[0]);\n // eslint-disable-next-line\n var rotatedPoint2 = transformPointByMatrix(matrix, connector.vertexPoints[connector.vertexPoints.length - 1]);\n ty = rotatedPoint.y - rotatedPoint1.y;\n if (connector.leaderHeight === 0 && connector.leaderHeight != null) {\n connector.leaderHeight = this.pdfViewer.distanceSettings.leaderLength;\n }\n else {\n connector.leaderHeight += ty;\n rotatedPoint1.y += ty;\n rotatedPoint2.y += ty;\n // eslint-disable-next-line\n var matrix = identityMatrix();\n rotateMatrix(matrix, angle, center.x, center.y);\n connector.vertexPoints[0] = transformPointByMatrix(matrix, rotatedPoint1);\n connector.vertexPoints[connector.vertexPoints.length - 1] = transformPointByMatrix(matrix, rotatedPoint2);\n }\n }\n }\n }\n else if (endPoint.split('_')[0] === 'ConnectorSegmentPoint') {\n var i = Number(endPoint.split('_')[1]);\n tx = point.x - connector.vertexPoints[parseInt(i.toString(), 10)].x;\n ty = point.y - connector.vertexPoints[parseInt(i.toString(), 10)].y;\n connector.vertexPoints[parseInt(i.toString(), 10)].x += tx;\n connector.vertexPoints[parseInt(i.toString(), 10)].y += ty;\n if (connector.vertexPoints.length > 2 && obj.measureType !== 'Perimeter') {\n if (parseFloat(endPoint.split('_')[1]) === 0) {\n connector.vertexPoints[connector.vertexPoints.length - 1].x += tx;\n connector.vertexPoints[connector.vertexPoints.length - 1].y += ty;\n }\n else if (parseFloat(endPoint.split('_')[1]) === connector.vertexPoints.length - 1) {\n connector.vertexPoints[0].x += tx;\n connector.vertexPoints[0].y += ty;\n }\n }\n }\n this.nodePropertyChange(connector, { vertexPoints: connector.vertexPoints });\n this.renderSelector(connector.pageIndex, currentSelector);\n }\n this.pdfViewer.renderDrawing();\n return true;\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @param {number} tx - Specified the tx value.\n * @param {number} ty - Specified the y value.\n * @param {number} i - Specified the index value.\n * @returns {boolean} - Returns true or false.\n */\n Drawing.prototype.dragSourceEnd = function (obj, tx, ty, i) {\n // eslint-disable-next-line\n var connector = this.pdfViewer.nameTable[obj.id];\n connector.vertexPoints[parseInt(i.toString(), 10)].x += tx;\n connector.vertexPoints[parseInt(i.toString(), 10)].y += ty;\n this.pdfViewer.renderDrawing();\n return true;\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} connector - Specified the connector object.\n * @param {PointModel[]} points - Specified the points value.\n * @returns {void}\n */\n Drawing.prototype.updateConnector = function (connector, points) {\n var srcDecorator;\n var tarDecorator;\n var targetPoint;\n connector.vertexPoints = points;\n updateSegmentElement(connector, points, connector.wrapper.children[0]);\n var srcPoint = connector.sourcePoint;\n var anglePoint = connector.vertexPoints;\n // points = this.clipDecorators(connector, points);\n var element = connector.wrapper.children[0];\n element.canMeasurePath = true;\n for (var i = 0; i < connector.wrapper.children.length; i++) {\n element = connector.wrapper.children[parseInt(i.toString(), 10)];\n if (connector.shapeAnnotationType !== 'Polygon') {\n if (element.id.indexOf('srcDec') > -1) {\n updateDecoratorElement(connector, element, points[0], anglePoint[1], true);\n }\n targetPoint = connector.targetPoint;\n if (element.id.indexOf('tarDec') > -1) {\n updateDecoratorElement(connector, element, points[points.length - 1], anglePoint[anglePoint.length - 2], false);\n }\n }\n }\n };\n /**\n * @private\n * @returns {Object} - Returns the object.\n */\n Drawing.prototype.copy = function () {\n if (((this.pdfViewer.formDesignerModule && !this.pdfViewer.formDesigner.isPropertyDialogOpen) || this.pdfViewer.annotationModule) && (this.pdfViewer.designerMode || this.pdfViewer.enableAnnotation) && (this.pdfViewer.selectedItems.formFields.length !== 0 || this.pdfViewer.selectedItems.annotations.length !== 0)) {\n this.pdfViewer.clipboardData.pasteIndex = 1;\n this.pdfViewer.clipboardData.clipObject = this.copyObjects();\n }\n var isSearchboxDialogOpen;\n var searchBoxId = document.getElementById(this.pdfViewer.element.id + \"_search_box\");\n if (searchBoxId) {\n isSearchboxDialogOpen = searchBoxId.style.display !== \"none\";\n }\n if (this.pdfViewer.formDesigner && this.pdfViewer.formDesigner.isPropertyDialogOpen || isSearchboxDialogOpen) {\n this.pdfViewer.clipboardData.clipObject = {};\n }\n return this.pdfViewer.clipboardData.clipObject;\n };\n /**\n * @private\n * @returns {Object[]} - Returns the object array.\n */\n Drawing.prototype.copyObjects = function () {\n var selectedItems = [];\n var obj = [];\n this.pdfViewer.clipboardData.childTable = {};\n if (this.pdfViewer.selectedItems.annotations.length > 0) {\n selectedItems = this.pdfViewer.selectedItems.annotations;\n for (var j = 0; j < selectedItems.length; j++) {\n var element = cloneObject((selectedItems[parseInt(j.toString(), 10)]));\n obj.push(element);\n }\n }\n if (this.pdfViewer.selectedItems.formFields.length > 0) {\n selectedItems = this.pdfViewer.selectedItems.formFields;\n for (var j = 0; j < selectedItems.length; j++) {\n var element = cloneObject((selectedItems[parseInt(j.toString(), 10)]));\n obj.push(element);\n }\n }\n if (this.pdfViewer.clipboardData.pasteIndex === 0) {\n for (var _i = 0, selectedItems_1 = selectedItems; _i < selectedItems_1.length; _i++) {\n var item = selectedItems_1[_i];\n // eslint-disable-next-line\n if (this.pdfViewer.nameTable[item.id]) {\n if (!item.formFieldAnnotationType) {\n if (item.annotName)\n this.pdfViewer.annotationModule.deleteAnnotationById(item.annotName);\n else\n this.pdfViewer.annotationModule.deleteAnnotation();\n }\n else {\n this.pdfViewer.clearSelection(item.pageIndex);\n this.pdfViewer.formDesignerModule.deleteFormField(item.id);\n }\n }\n }\n //this.endGroupAction();\n }\n this.sortByZIndex(obj, 'zIndex');\n return obj;\n };\n Drawing.prototype.getNewObject = function (obj) {\n var newObj;\n var newobjs = [];\n this.pdfViewer.clipboardData.pasteIndex = 1;\n for (var i = 0; i < obj.length; i++) {\n newObj = cloneObject(obj[parseInt(i.toString(), 10)]);\n newobjs.push(newObj);\n }\n return newobjs;\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel[]} obj - Specified the annotation object.\n * @param {number} index - Specified the annotation index.\n * @returns {void}\n */\n Drawing.prototype.paste = function (obj, index) {\n var zoomfactor = this.pdfViewer.viewerBase.getZoomFactor();\n var allowServerDataBind = this.pdfViewer.allowServerDataBinding;\n this.pdfViewer.enableServerDataBinding(false);\n var fieldId;\n if (obj || this.pdfViewer.clipboardData.clipObject) {\n var copiedItems = obj ? this.getNewObject(obj) :\n this.pdfViewer.clipboardData.clipObject;\n if (copiedItems) {\n var objectTable = {};\n if (this.pdfViewer.clipboardData.pasteIndex !== 0) {\n this.pdfViewer.clearSelection(index);\n }\n for (var _i = 0, copiedItems_1 = copiedItems; _i < copiedItems_1.length; _i++) {\n var copy = copiedItems_1[_i];\n fieldId = copy.id;\n copy.id += randomId();\n var fieldName = this.splitFormFieldName(copy);\n var maxNumber = 0; // this.pdfViewer.formFieldCollection.length;\n if (this.pdfViewer.formDesigner) {\n this.pdfViewer.formDesigner.setFormFieldIndex();\n maxNumber = this.pdfViewer.formDesigner.formFieldIndex;\n copy.name = fieldName + maxNumber;\n }\n // eslint-disable-next-line\n objectTable[copy.id] = copy;\n }\n for (var j = 0; j < copiedItems.length; j++) {\n var copy = copiedItems[parseInt(j.toString(), 10)];\n var pageDiv = this.pdfViewer.viewerBase.getElement('_pageDiv_' + copy.pageIndex);\n // eslint-disable-next-line\n var events = event;\n if (events && !events.clientX && !events.clientY) {\n events = { clientX: this.pdfViewer.viewerBase.mouseLeft, clientY: this.pdfViewer.viewerBase.mouseTop };\n }\n if (isBlazor()) {\n events = this.pdfViewer.viewerBase.mouseDownEvent;\n }\n if (isLineShapes(copy)) {\n this.calculateCopyPosition(copy, pageDiv, events);\n }\n else {\n if (pageDiv) {\n var pageCurrentRect = pageDiv.getBoundingClientRect();\n copy.bounds.x = (events.clientX - pageCurrentRect.left) / zoomfactor;\n copy.bounds.y = (events.clientY - pageCurrentRect.top) / zoomfactor;\n }\n }\n var newNode = cloneObject(copy);\n if (this.pdfViewer.viewerBase.contextMenuModule.previousAction !== 'Cut') {\n newNode.id += randomId();\n if (this.pdfViewer.annotationModule && newNode.shapeAnnotationType !== 'HandWrittenSignature') {\n newNode.annotName = newNode.id;\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateAnnotationCollection(newNode, copiedItems[0], false);\n }\n if (newNode.shapeAnnotationType === 'SignatureText' || newNode.shapeAnnotationType === 'HandWrittenSignature' || newNode.shapeAnnotationType === 'SignatureImage') {\n this.pdfViewer.viewerBase.signatureModule.storeSignatureData(newNode.pageIndex, newNode);\n }\n if (!newNode.formFieldAnnotationType) {\n this.pdfViewer.annotation.addAction(this.pdfViewer.viewerBase.getActivePage(false), null, newNode, 'Addition', '', newNode, newNode);\n }\n }\n else {\n if (this.pdfViewer.annotationModule) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateAnnotationCollection(newNode, copiedItems[0], true);\n }\n if (newNode.shapeAnnotationType === 'SignatureText' || newNode.shapeAnnotationType === 'HandWrittenSignature' || newNode.shapeAnnotationType === 'SignatureImage') {\n this.pdfViewer.viewerBase.signatureModule.storeSignatureData(newNode.pageIndex, newNode);\n }\n }\n var addedAnnot = this.add(newNode);\n if (this.pdfViewer.formDesigner && addedAnnot.formFieldAnnotationType) {\n this.pdfViewer.annotation.addAction(this.pdfViewer.viewerBase.getActivePage(true), null, addedAnnot, 'Addition', '', addedAnnot, addedAnnot);\n }\n if ((newNode.shapeAnnotationType === 'FreeText' || newNode.enableShapeLabel) && addedAnnot) {\n this.nodePropertyChange(addedAnnot, {});\n }\n if (addedAnnot.formFieldAnnotationType && addedAnnot.pageIndex === index) {\n this.pdfViewer.formFieldCollection.push(addedAnnot);\n // eslint-disable-next-line max-len\n var formField = {\n id: addedAnnot.id, name: addedAnnot.name, value: addedAnnot.value, type: addedAnnot.formFieldAnnotationType,\n isReadOnly: addedAnnot.isReadonly, fontFamily: addedAnnot.fontFamily,\n // eslint-disable-next-line max-len\n fontSize: addedAnnot.fontSize, fontStyle: addedAnnot.fontStyle, color: addedAnnot.color, backgroundColor: addedAnnot.backgroundColor,\n // eslint-disable-next-line max-len\n alignment: addedAnnot.alignment, visibility: addedAnnot.visibility, maxLength: addedAnnot.maxLength, isRequired: addedAnnot.isRequired,\n // eslint-disable-next-line max-len\n isPrint: addedAnnot.isPrint, isSelected: addedAnnot.isSelected, isChecked: addedAnnot.isChecked, tooltip: addedAnnot.tooltip, bounds: addedAnnot.bounds, thickness: addedAnnot.thickness, borderColor: addedAnnot.borderColor, signatureIndicatorSettings: addedAnnot.signatureIndicatorSettings\n };\n if (addedAnnot.options && addedAnnot.options.length > 0) {\n formField.options = addedAnnot.options;\n }\n this.pdfViewer.formFieldCollections.push(formField);\n // eslint-disable-next-line max-len\n this.pdfViewer.formDesigner.drawHTMLContent(addedAnnot.formFieldAnnotationType, addedAnnot.wrapper.children[0], addedAnnot, addedAnnot.pageIndex, this.pdfViewer, fieldId);\n }\n this.pdfViewer.select([newNode.id], this.pdfViewer.annotationSelectorSettings);\n if (!addedAnnot.formFieldAnnotationType) {\n this.pdfViewer.annotationModule.triggerAnnotationAddEvent(newNode);\n }\n ;\n }\n }\n this.pdfViewer.renderDrawing(undefined, index);\n this.pdfViewer.clipboardData.pasteIndex++;\n }\n this.pdfViewer.enableServerDataBinding(allowServerDataBind, true);\n };\n Drawing.prototype.splitFormFieldName = function (obj) {\n // eslint-disable-next-line\n var field = null;\n if (obj) {\n switch (obj.formFieldAnnotationType) {\n case 'Textbox':\n field = \"Textbox\";\n break;\n case 'PasswordField':\n field = \"Password\";\n break;\n case 'Checkbox':\n field = \"Check Box\";\n break;\n case 'RadioButton':\n field = \"Radio Button\";\n break;\n case 'DropdownList':\n field = \"Dropdown\";\n break;\n case 'ListBox':\n field = \"List Box\";\n break;\n case 'SignatureField':\n field = \"Signature\";\n break;\n case 'InitialField':\n field = \"Initial\";\n break;\n }\n }\n return field;\n };\n Drawing.prototype.calculateCopyPosition = function (copy, pageDiv, events) {\n var zoomfactor = this.pdfViewer.viewerBase.getZoomFactor();\n var x1;\n var y1;\n var x2;\n var y2;\n for (var i = 0; i < copy.vertexPoints.length; i++) {\n if (pageDiv) {\n if (i === 0) {\n var pageCurrentRect = pageDiv.getBoundingClientRect();\n x1 = copy.vertexPoints[parseInt(i.toString(), 10)].x;\n y1 = copy.vertexPoints[parseInt(i.toString(), 10)].y;\n copy.vertexPoints[parseInt(i.toString(), 10)].x = (events.clientX - pageCurrentRect.left) / zoomfactor;\n copy.vertexPoints[parseInt(i.toString(), 10)].y = (events.clientY - pageCurrentRect.top) / zoomfactor;\n x2 = copy.vertexPoints[parseInt(i.toString(), 10)].x;\n y2 = copy.vertexPoints[parseInt(i.toString(), 10)].y;\n }\n else {\n copy.vertexPoints[parseInt(i.toString(), 10)].x += x2 - x1;\n copy.vertexPoints[parseInt(i.toString(), 10)].y += y2 - y1;\n }\n }\n }\n };\n /**\n * @private\n * @param {number} index - Specified the annotaion index.\n * @returns {void}\n */\n Drawing.prototype.cut = function (index) {\n var allowServerDataBind = this.pdfViewer.allowServerDataBinding;\n this.pdfViewer.enableServerDataBinding(false);\n if (this.pdfViewer.annotationModule) {\n this.pdfViewer.annotationModule.removedAnnotationCollection = [];\n }\n if (((this.pdfViewer.formDesignerModule && !this.pdfViewer.formDesigner.isPropertyDialogOpen) || this.pdfViewer.selectedItems.annotations.length > 0) && (this.pdfViewer.designerMode || this.pdfViewer.selectedItems.annotations.length > 0) && (this.pdfViewer.selectedItems.formFields.length !== 0 || this.pdfViewer.selectedItems.annotations.length !== 0)) {\n this.pdfViewer.clipboardData.pasteIndex = 0;\n this.pdfViewer.clipboardData.clipObject = this.copyObjects();\n this.pdfViewer.renderDrawing(undefined, index);\n this.pdfViewer.enableServerDataBinding(allowServerDataBind, true);\n }\n var isSearchboxDialogOpen;\n var searchBoxId = document.getElementById(this.pdfViewer.element.id + \"_search_box\");\n if (searchBoxId) {\n isSearchboxDialogOpen = searchBoxId.style.display !== \"none\";\n }\n if (this.pdfViewer.formDesigner && this.pdfViewer.formDesigner.isPropertyDialogOpen || isSearchboxDialogOpen) {\n this.pdfViewer.clipboardData.clipObject = {};\n }\n };\n /**\n * @private\n * @param {Object[]} nodeArray - Specified the node array.\n * @param {string} sortID - Specified the sort id.\n * @returns {Object[]} - Returns the node array.\n */\n Drawing.prototype.sortByZIndex = function (nodeArray, sortID) {\n var id = sortID ? sortID : 'zIndex';\n nodeArray = nodeArray.sort(function (a, b) {\n // eslint-disable-next-line\n return a[id] - b[id];\n });\n return nodeArray;\n };\n return Drawing;\n}());\nexport { Drawing };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\n/* eslint-disable */\n// eslint-disable-next-line max-len\nimport { Component, NotifyPropertyChanges, ChildProperty, L10n, Collection, Complex, isBlazor, Browser } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined, Property, Event } from '@syncfusion/ej2-base';\nimport { PdfViewerBase } from './index';\n// eslint-disable-next-line max-len\nimport { FontStyle, AnnotationResizerLocation, CursorType, ContextMenuItem, DynamicStampItem, SignStampItem, StandardBusinessStampItem, AnnotationDataFormat, DisplayMode, FormFieldDataFormat } from './base/types';\nimport { FormFields } from './index';\nimport { PdfAnnotationBase, PdfFormFieldBase } from './drawing/pdf-annotation';\nimport { Drawing } from './drawing/drawing';\nimport { Selector } from './drawing/selector';\nimport { renderAdornerLayer } from './drawing/dom-util';\n/**\n * The `ToolbarSettings` module is used to provide the toolbar settings of PDF viewer.\n *\n * ```html\n *
      \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the tool bar settings.\n * viewer.toolbarSettings = {\n * showTooltip: false,\n * toolbarItems: [\n * \"OpenOption\",\n * \"UndoRedoTool\",\n * \"PageNavigationTool\",\n * \"MagnificationTool\",\n * \"PanTool\",\n * \"SelectionTool\",\n * \"CommentTool\",\n * \"SubmitForm\",\n * \"AnnotationEditTool\",\n * \"FormDesignerEditTool\",\n * \"FreeTextAnnotationOption\",\n * \"InkAnnotationOption\",\n * \"ShapeAnnotationOption\",\n * \"StampAnnotation\",\n * \"SignatureOption\",\n * \"SearchOption\",\n * \"PrintOption\",\n * \"DownloadOption\"\n * ],\n * annotationToolbarItems: [\n * \"HighlightTool\",\n * \"UnderlineTool\",\n * \"StrikethroughTool\",\n * \"ColorEditTool\",\n * \"OpacityEditTool\",\n * \"AnnotationDeleteTool\",\n * \"StampAnnotationTool\",\n * \"HandWrittenSignatureTool\",\n * \"InkAnnotationTool\",\n * \"ShapeTool\",\n * \"CalibrateTool\",\n * \"StrokeColorEditTool\",\n * \"ThicknessEditTool\",\n * \"FreeTextAnnotationTool\",\n * \"FontFamilyAnnotationTool\",\n * \"FontSizeAnnotationTool\",\n * \"FontStylesAnnotationTool\",\n * \"FontAlignAnnotationTool\",\n * \"FontColorAnnotationTool\",\n * \"CommentPanelTool\"\n * ],\n * formDesignerToolbarItems: [\n * \"TextboxTool\",\n * \"PasswordTool\",\n * \"CheckBoxTool\",\n * \"RadioButtonTool\",\n * \"DropdownTool\",\n * \"ListboxTool\",\n * \"DrawSignatureTool\",\n * \"DeleteTool\"\n * ]\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar ToolbarSettings = /** @class */ (function (_super) {\n __extends(ToolbarSettings, _super);\n function ToolbarSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(true)\n ], ToolbarSettings.prototype, \"showTooltip\", void 0);\n __decorate([\n Property()\n ], ToolbarSettings.prototype, \"toolbarItems\", void 0);\n __decorate([\n Property()\n ], ToolbarSettings.prototype, \"annotationToolbarItems\", void 0);\n __decorate([\n Property()\n ], ToolbarSettings.prototype, \"formDesignerToolbarItems\", void 0);\n return ToolbarSettings;\n}(ChildProperty));\nexport { ToolbarSettings };\n/**\n * The `AjaxRequestSettings` module is used to set the ajax Request Headers of PDF viewer.\n *\n * ```html\n *
      \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // HTTP header \"X-Custom-Header\": \"Custom header value\" // Custom HTTP header\n * viewer.ajaxRequestSettings = {\n * ajaxHeaders: [\n * {\n * headerName : \"Authorization\",\n * headerValue : \"Bearer\"\n * }\n * ],\n * withCredentials: false\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar AjaxRequestSettings = /** @class */ (function (_super) {\n __extends(AjaxRequestSettings, _super);\n function AjaxRequestSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property()\n ], AjaxRequestSettings.prototype, \"ajaxHeaders\", void 0);\n __decorate([\n Property(false)\n ], AjaxRequestSettings.prototype, \"withCredentials\", void 0);\n return AjaxRequestSettings;\n}(ChildProperty));\nexport { AjaxRequestSettings };\n/**\n * The `CustomStamp` module is used to provide the custom stamp added in stamp menu of the PDF Viewer toolbar.\n *\n * ```html\n *
      \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Add your custom stamp image source as base64 image.\n * viewer.customStamp = [\n * {\n * customStampName: 'Sample',\n * customStampImageSource: \"data:image/png;base64, Syncfusion pdf viewer\"\n * }\n * ];\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar CustomStamp = /** @class */ (function (_super) {\n __extends(CustomStamp, _super);\n function CustomStamp() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], CustomStamp.prototype, \"customStampName\", void 0);\n __decorate([\n Property('')\n ], CustomStamp.prototype, \"customStampImageSource\", void 0);\n return CustomStamp;\n}(ChildProperty));\nexport { CustomStamp };\n/**\n * The `AnnotationToolbarSettings` module is used to provide the annotation toolbar settings of the PDF viewer.\n *\n * ```html\n *
      \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the annotation tool bar settings.\n * viewer.toolbarSettings = {\n * showTooltip: false,\n * annotationToolbarItems: [\n * \"HighlightTool\",\n * \"UnderlineTool\",\n * \"StrikethroughTool\",\n * \"ColorEditTool\",\n * \"OpacityEditTool\",\n * \"AnnotationDeleteTool\",\n * \"StampAnnotationTool\",\n * \"HandWrittenSignatureTool\",\n * \"InkAnnotationTool\",\n * \"ShapeTool\",\n * \"CalibrateTool\",\n * \"StrokeColorEditTool\",\n * \"ThicknessEditTool\",\n * \"FreeTextAnnotationTool\",\n * \"FontFamilyAnnotationTool\",\n * \"FontSizeAnnotationTool\",\n * \"FontStylesAnnotationTool\",\n * \"FontAlignAnnotationTool\",\n * \"FontColorAnnotationTool\",\n * \"CommentPanelTool\"\n * ],\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar AnnotationToolbarSettings = /** @class */ (function (_super) {\n __extends(AnnotationToolbarSettings, _super);\n function AnnotationToolbarSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(true)\n ], AnnotationToolbarSettings.prototype, \"showTooltip\", void 0);\n __decorate([\n Property()\n ], AnnotationToolbarSettings.prototype, \"annotationToolbarItem\", void 0);\n return AnnotationToolbarSettings;\n}(ChildProperty));\nexport { AnnotationToolbarSettings };\n/**\n * The `FormDesignerToolbarSettings` module is used to provide the Form designer toolbar settings of the PDF viewer.\n *\n * ```html\n *
      \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the form field tool bar settings.\n * viewer.toolbarSettings = {\n * showTooltip: false,\n * formDesignerToolbarItems: [\n * \"TextboxTool\",\n * \"PasswordTool\",\n * \"CheckBoxTool\",\n * \"RadioButtonTool\",\n * \"DropdownTool\",\n * \"ListboxTool\",\n * \"DrawSignatureTool\",\n * \"DeleteTool\"\n * ]\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar FormDesignerToolbarSettings = /** @class */ (function (_super) {\n __extends(FormDesignerToolbarSettings, _super);\n function FormDesignerToolbarSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(true)\n ], FormDesignerToolbarSettings.prototype, \"showTooltip\", void 0);\n __decorate([\n Property()\n ], FormDesignerToolbarSettings.prototype, \"formDesignerToolbarItem\", void 0);\n return FormDesignerToolbarSettings;\n}(ChildProperty));\nexport { FormDesignerToolbarSettings };\n/**\n * The `SignatureFieldSettings` module is used to set the properties of signature field in PDF Viewer\n *\n * ```html\n *
      \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the signature field settings.\n * viewer.signatureFieldSettings = {\n * name: \"\",\n * isReadOnly: true,\n * visibility: \"visible\",\n * isRequired: true,\n * isPrint: false,\n * tooltip: \"\",\n * thickness: 1,\n * signatureIndicatorSettings: {\n * opacity: 1,\n * backgroundColor: \"orange\",\n * width: 19,\n * height: 10,\n * fontSize: 10,\n * text: null,\n * color: \"black\"\n * },\n * signatureDialogSettings: {\n * displayMode: DisplayMode.Draw | DisplayMode.Text | DisplayMode.Upload,\n * hideSaveSignature: false\n * }\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar SignatureFieldSettings = /** @class */ (function (_super) {\n __extends(SignatureFieldSettings, _super);\n function SignatureFieldSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0, width: 0, height: 0 })\n ], SignatureFieldSettings.prototype, \"bounds\", void 0);\n __decorate([\n Property('')\n ], SignatureFieldSettings.prototype, \"name\", void 0);\n __decorate([\n Property(false)\n ], SignatureFieldSettings.prototype, \"isReadOnly\", void 0);\n __decorate([\n Property('visible')\n ], SignatureFieldSettings.prototype, \"visibility\", void 0);\n __decorate([\n Property(false)\n ], SignatureFieldSettings.prototype, \"isRequired\", void 0);\n __decorate([\n Property(false)\n ], SignatureFieldSettings.prototype, \"isPrint\", void 0);\n __decorate([\n Property('')\n ], SignatureFieldSettings.prototype, \"tooltip\", void 0);\n __decorate([\n Property(1)\n ], SignatureFieldSettings.prototype, \"thickness\", void 0);\n __decorate([\n Property(0)\n ], SignatureFieldSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property()\n ], SignatureFieldSettings.prototype, \"signatureDialogSettings\", void 0);\n __decorate([\n Property()\n ], SignatureFieldSettings.prototype, \"signatureIndicatorSettings\", void 0);\n return SignatureFieldSettings;\n}(ChildProperty));\nexport { SignatureFieldSettings };\n/**\n * The `InitialFieldSettings` module is used to set the properties of initial field in PDF Viewer\n *\n * ```html\n *
      \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Changes the initial field settings.\n * viewer.initialFieldSettings = {\n * name: \"\",\n * isReadOnly: true,\n * visibility: \"visible\",\n * isRequired: true,\n * isPrint: true,\n * tooltip: \"\",\n * thickness: 1,\n * initialIndicatorSettings: {\n * opacity: 1,\n * backgroundColor: \"orange\",\n * width: 19,\n * height: 10,\n * fontSize: 10,\n * text: null,\n * color: \"black\"\n * },\n * initialDialogSettings: {\n * displayMode: DisplayMode.Draw | DisplayMode.Text | DisplayMode.Upload,\n * hideSaveSignature: false\n * }\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar InitialFieldSettings = /** @class */ (function (_super) {\n __extends(InitialFieldSettings, _super);\n function InitialFieldSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0, width: 0, height: 0 })\n ], InitialFieldSettings.prototype, \"bounds\", void 0);\n __decorate([\n Property('')\n ], InitialFieldSettings.prototype, \"name\", void 0);\n __decorate([\n Property(false)\n ], InitialFieldSettings.prototype, \"isReadOnly\", void 0);\n __decorate([\n Property('visible')\n ], InitialFieldSettings.prototype, \"visibility\", void 0);\n __decorate([\n Property(false)\n ], InitialFieldSettings.prototype, \"isRequired\", void 0);\n __decorate([\n Property(false)\n ], InitialFieldSettings.prototype, \"isPrint\", void 0);\n __decorate([\n Property('')\n ], InitialFieldSettings.prototype, \"tooltip\", void 0);\n __decorate([\n Property(1)\n ], InitialFieldSettings.prototype, \"thickness\", void 0);\n __decorate([\n Property(0)\n ], InitialFieldSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property(false)\n ], InitialFieldSettings.prototype, \"isInitialField\", void 0);\n __decorate([\n Property()\n ], InitialFieldSettings.prototype, \"initialDialogSettings\", void 0);\n __decorate([\n Property()\n ], InitialFieldSettings.prototype, \"initialIndicatorSettings\", void 0);\n return InitialFieldSettings;\n}(ChildProperty));\nexport { InitialFieldSettings };\n/**\n * The `SignatureIndicatorSettings` module is used to provide the properties of signature Indicator in the signature field.\n *\n * ```html\n *
      \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the signature indicator settings.\n * viewer.signatureFieldSettings = {\n * signatureIndicatorSettings: {\n * opacity: 1,\n * backgroundColor: 'orange',\n * width: 19,\n * height: 10,\n * fontSize: 10,\n * text: null,\n * color: 'black'\n * }\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar SignatureIndicatorSettings = /** @class */ (function (_super) {\n __extends(SignatureIndicatorSettings, _super);\n function SignatureIndicatorSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(1)\n ], SignatureIndicatorSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('orange')\n ], SignatureIndicatorSettings.prototype, \"backgroundColor\", void 0);\n __decorate([\n Property(19)\n ], SignatureIndicatorSettings.prototype, \"width\", void 0);\n __decorate([\n Property(10)\n ], SignatureIndicatorSettings.prototype, \"height\", void 0);\n __decorate([\n Property(10)\n ], SignatureIndicatorSettings.prototype, \"fontSize\", void 0);\n __decorate([\n Property(null)\n ], SignatureIndicatorSettings.prototype, \"text\", void 0);\n __decorate([\n Property('black')\n ], SignatureIndicatorSettings.prototype, \"color\", void 0);\n return SignatureIndicatorSettings;\n}(ChildProperty));\nexport { SignatureIndicatorSettings };\n/**\n * The `SignatureDialogSettings` module is used to customize the signature dialog box.\n *\n *\n * ```html\n *
      \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the signature dialog settings.\n * viewer.signatureDialogSettings = {\n * displayMode: DisplayMode.Draw | DisplayMode.Text | DisplayMode.Upload,\n * hideSaveSignature: true\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar SignatureDialogSettings = /** @class */ (function (_super) {\n __extends(SignatureDialogSettings, _super);\n function SignatureDialogSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(DisplayMode.Draw | DisplayMode.Text | DisplayMode.Upload)\n ], SignatureDialogSettings.prototype, \"displayMode\", void 0);\n __decorate([\n Property(false)\n ], SignatureDialogSettings.prototype, \"hideSaveSignature\", void 0);\n return SignatureDialogSettings;\n}(ChildProperty));\nexport { SignatureDialogSettings };\n/**\n * The `ServerActionSettings` module is used to provide the server action methods of PDF viewer.\n *\n * ```html\n *
      \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the server action settings.\n * viewer.serverActionSettings = {\n * load: \"Load\",\n * renderPages: \"RenderPdfPages\",\n * unload: \"Unload\",\n * download: \"Download\",\n * renderThumbnail: \"RenderThumbnailImages\",\n * print: \"PrintImages\",\n * renderComments: \"RenderAnnotationComments\",\n * importAnnotations: \"ImportAnnotations\",\n * exportAnnotations: \"ExportAnnotations\",\n * importFormFields: \"ImportFormFields\",\n * exportFormFields: \"ExportFormFields\",\n * renderTexts: \"RenderPdfTexts\"\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar ServerActionSettings = /** @class */ (function (_super) {\n __extends(ServerActionSettings, _super);\n function ServerActionSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('Load')\n ], ServerActionSettings.prototype, \"load\", void 0);\n __decorate([\n Property('Unload')\n ], ServerActionSettings.prototype, \"unload\", void 0);\n __decorate([\n Property('RenderPdfPages')\n ], ServerActionSettings.prototype, \"renderPages\", void 0);\n __decorate([\n Property('RenderPdfPages')\n ], ServerActionSettings.prototype, \"print\", void 0);\n __decorate([\n Property('Download')\n ], ServerActionSettings.prototype, \"download\", void 0);\n __decorate([\n Property('RenderThumbnailImages')\n ], ServerActionSettings.prototype, \"renderThumbnail\", void 0);\n __decorate([\n Property('RenderAnnotationComments')\n ], ServerActionSettings.prototype, \"renderComments\", void 0);\n __decorate([\n Property('ImportAnnotations')\n ], ServerActionSettings.prototype, \"importAnnotations\", void 0);\n __decorate([\n Property('ExportAnnotations')\n ], ServerActionSettings.prototype, \"exportAnnotations\", void 0);\n __decorate([\n Property('ImportFormFields')\n ], ServerActionSettings.prototype, \"importFormFields\", void 0);\n __decorate([\n Property('ExportFormFields')\n ], ServerActionSettings.prototype, \"exportFormFields\", void 0);\n __decorate([\n Property('RenderPdfTexts')\n ], ServerActionSettings.prototype, \"renderTexts\", void 0);\n return ServerActionSettings;\n}(ChildProperty));\nexport { ServerActionSettings };\n/**\n * The `StrikethroughSettings` module is used to provide the properties to Strikethrough annotation.\n *\n * ```html\n *
      \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the strike through annotation settings.\n * viewer.strikethroughSettings = {\n * opacity: 1,\n * color: '#ff0000',\n * author: 'Guest',\n * annotationSelectorSettings: {\n * selectionBorderColor: '',\n * resizerBorderColor: 'black',\n * resizerFillColor: '#FF4081',\n * resizerSize: 8,\n * selectionBorderThickness: 1,\n * resizerShape: 'Square',\n * selectorLineDashArray: [],\n * resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges\n * },\n * isLock: false,\n * enableMultiPageAnnotation: false,\n * enableTextMarkupResizer: false,\n * allowedInteractions: ['None'],\n * isPrint: true\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar StrikethroughSettings = /** @class */ (function (_super) {\n __extends(StrikethroughSettings, _super);\n function StrikethroughSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(1)\n ], StrikethroughSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property(1)\n ], StrikethroughSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('#ff0000')\n ], StrikethroughSettings.prototype, \"color\", void 0);\n __decorate([\n Property('Guest')\n ], StrikethroughSettings.prototype, \"author\", void 0);\n __decorate([\n Property('')\n ], StrikethroughSettings.prototype, \"annotationSelectorSettings\", void 0);\n __decorate([\n Property(null)\n ], StrikethroughSettings.prototype, \"customData\", void 0);\n __decorate([\n Property(false)\n ], StrikethroughSettings.prototype, \"isLock\", void 0);\n __decorate([\n Property(false)\n ], StrikethroughSettings.prototype, \"enableMultiPageAnnotation\", void 0);\n __decorate([\n Property(false)\n ], StrikethroughSettings.prototype, \"enableTextMarkupResizer\", void 0);\n __decorate([\n Property(['None'])\n ], StrikethroughSettings.prototype, \"allowedInteractions\", void 0);\n __decorate([\n Property(true)\n ], StrikethroughSettings.prototype, \"isPrint\", void 0);\n return StrikethroughSettings;\n}(ChildProperty));\nexport { StrikethroughSettings };\n/**\n * The `UnderlineSettings` module is used to provide the properties to Underline annotation.\n *\n * ```html\n *
      \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the underline annotation settings.\n * viewer.underlineSettings = {\n * opacity: 1,\n * color: '#9c2592',\n * author: 'Guest',\n * annotationSelectorSettings: {\n * selectionBorderColor: '',\n * resizerBorderColor: 'black',\n * resizerFillColor: '#FF4081',\n * resizerSize: 8,\n * selectionBorderThickness: 1,\n * resizerShape: 'Square',\n * selectorLineDashArray: [],\n * resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges\n * },\n * isLock: false,\n * enableMultiPageAnnotation: false,\n * enableTextMarkupResizer: false,\n * allowedInteractions: ['None'],\n * isPrint: true\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar UnderlineSettings = /** @class */ (function (_super) {\n __extends(UnderlineSettings, _super);\n function UnderlineSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(1)\n ], UnderlineSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property(1)\n ], UnderlineSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('#00ff00')\n ], UnderlineSettings.prototype, \"color\", void 0);\n __decorate([\n Property('Guest')\n ], UnderlineSettings.prototype, \"author\", void 0);\n __decorate([\n Property('')\n ], UnderlineSettings.prototype, \"annotationSelectorSettings\", void 0);\n __decorate([\n Property(null)\n ], UnderlineSettings.prototype, \"customData\", void 0);\n __decorate([\n Property(false)\n ], UnderlineSettings.prototype, \"isLock\", void 0);\n __decorate([\n Property(false)\n ], UnderlineSettings.prototype, \"enableMultiPageAnnotation\", void 0);\n __decorate([\n Property(false)\n ], UnderlineSettings.prototype, \"enableTextMarkupResizer\", void 0);\n __decorate([\n Property(['None'])\n ], UnderlineSettings.prototype, \"allowedInteractions\", void 0);\n __decorate([\n Property(true)\n ], UnderlineSettings.prototype, \"isPrint\", void 0);\n return UnderlineSettings;\n}(ChildProperty));\nexport { UnderlineSettings };\n/**\n * The `HighlightSettings` module is used to provide the properties to Highlight annotation.\n *\n * ```html\n *
      \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the highlight annotation settings.\n * viewer.highlightSettings = {\n * opacity: 1,\n * color: '#ff0000',\n * author: 'Guest',\n * annotationSelectorSettings: {\n * selectionBorderColor: '',\n * resizerBorderColor: 'black',\n * resizerFillColor: '#FF4081',\n * resizerSize: 8,\n * selectionBorderThickness: 1,\n * resizerShape: 'Square',\n * selectorLineDashArray: [],\n * resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges\n * },\n * isLock: false,\n * enableMultiPageAnnotation: false,\n * enableTextMarkupResizer: false,\n * allowedInteractions: ['None'],\n * isPrint: true\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar HighlightSettings = /** @class */ (function (_super) {\n __extends(HighlightSettings, _super);\n function HighlightSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(1)\n ], HighlightSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property(1)\n ], HighlightSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('#ffff00')\n ], HighlightSettings.prototype, \"color\", void 0);\n __decorate([\n Property('Guest')\n ], HighlightSettings.prototype, \"author\", void 0);\n __decorate([\n Property('')\n ], HighlightSettings.prototype, \"annotationSelectorSettings\", void 0);\n __decorate([\n Property(null)\n ], HighlightSettings.prototype, \"customData\", void 0);\n __decorate([\n Property(false)\n ], HighlightSettings.prototype, \"isLock\", void 0);\n __decorate([\n Property(false)\n ], HighlightSettings.prototype, \"enableMultiPageAnnotation\", void 0);\n __decorate([\n Property(false)\n ], HighlightSettings.prototype, \"enableTextMarkupResizer\", void 0);\n __decorate([\n Property(['None'])\n ], HighlightSettings.prototype, \"allowedInteractions\", void 0);\n __decorate([\n Property(true)\n ], HighlightSettings.prototype, \"isPrint\", void 0);\n return HighlightSettings;\n}(ChildProperty));\nexport { HighlightSettings };\n/**\n * The `LineSettings` module is used to provide the properties to line annotation.\n *\n * ```html\n *
      \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the line annotation settings.\n * viewer.lineSettings = {\n * opacity: 1,\n * color: '#9c2592',\n * author: 'Guest',\n * annotationSelectorSettings: {\n * selectionBorderColor: '',\n * resizerBorderColor: 'black',\n * resizerFillColor: '#FF4081',\n * resizerSize: 8,\n * selectionBorderThickness: 1,\n * resizerShape: 'Square',\n * selectorLineDashArray: [],\n * resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges\n * },\n * isLock: false,\n * enableMultiPageAnnotation: false,\n * enableTextMarkupResizer: false,\n * allowedInteractions: ['None'],\n * isPrint: true\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar LineSettings = /** @class */ (function (_super) {\n __extends(LineSettings, _super);\n function LineSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0 })\n ], LineSettings.prototype, \"offset\", void 0);\n __decorate([\n Property(1)\n ], LineSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property(1)\n ], LineSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('#ffffff00')\n ], LineSettings.prototype, \"fillColor\", void 0);\n __decorate([\n Property('#ff0000')\n ], LineSettings.prototype, \"strokeColor\", void 0);\n __decorate([\n Property('Guest')\n ], LineSettings.prototype, \"author\", void 0);\n __decorate([\n Property('1')\n ], LineSettings.prototype, \"thickness\", void 0);\n __decorate([\n Property('None')\n ], LineSettings.prototype, \"lineHeadStartStyle\", void 0);\n __decorate([\n Property('None')\n ], LineSettings.prototype, \"lineHeadEndStyle\", void 0);\n __decorate([\n Property(0)\n ], LineSettings.prototype, \"borderDashArray\", void 0);\n __decorate([\n Property('')\n ], LineSettings.prototype, \"annotationSelectorSettings\", void 0);\n __decorate([\n Property(0)\n ], LineSettings.prototype, \"minHeight\", void 0);\n __decorate([\n Property(0)\n ], LineSettings.prototype, \"minWidth\", void 0);\n __decorate([\n Property(0)\n ], LineSettings.prototype, \"maxHeight\", void 0);\n __decorate([\n Property(0)\n ], LineSettings.prototype, \"maxWidth\", void 0);\n __decorate([\n Property(false)\n ], LineSettings.prototype, \"isLock\", void 0);\n __decorate([\n Property(null)\n ], LineSettings.prototype, \"customData\", void 0);\n __decorate([\n Property(['None'])\n ], LineSettings.prototype, \"allowedInteractions\", void 0);\n __decorate([\n Property(true)\n ], LineSettings.prototype, \"isPrint\", void 0);\n return LineSettings;\n}(ChildProperty));\nexport { LineSettings };\n/**\n * The `ArrowSettings` module is used to provide the properties to arrow annotation.\n *\n * ```html\n *
      \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the arrow annotation settings.\n * viewer.arrowSettings = {\n * opacity: 1,\n * fillColor: '#9c2592',\n * strokeColor: '#ff0000',\n * author: 'Guest',\n * thickness: 1,\n * borderDashArray: 0,\n * lineHeadStartStyle: 'Closed',\n * lineHeadEndStyle: 'Closed',\n * annotationSelectorSettings: {\n * selectionBorderColor: '',\n * resizerBorderColor: 'black',\n * resizerFillColor: '#FF4081',\n * resizerSize: 8,\n * selectionBorderThickness: 1,\n * resizerShape: 'Square',\n * selectorLineDashArray: [],\n * resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges,\n * resizerCursorType: null\n * },\n * minHeight: 0,\n * minWidth: 0,\n * maxWidth: 0,\n * maxHeight: 0,\n * isLock: false,\n * allowedInteractions: ['None'],\n * isPrint: true\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar ArrowSettings = /** @class */ (function (_super) {\n __extends(ArrowSettings, _super);\n function ArrowSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0 })\n ], ArrowSettings.prototype, \"offset\", void 0);\n __decorate([\n Property(1)\n ], ArrowSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property(1)\n ], ArrowSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('#ffffff00')\n ], ArrowSettings.prototype, \"fillColor\", void 0);\n __decorate([\n Property('#ff0000')\n ], ArrowSettings.prototype, \"strokeColor\", void 0);\n __decorate([\n Property('Guest')\n ], ArrowSettings.prototype, \"author\", void 0);\n __decorate([\n Property('1')\n ], ArrowSettings.prototype, \"thickness\", void 0);\n __decorate([\n Property('None')\n ], ArrowSettings.prototype, \"lineHeadStartStyle\", void 0);\n __decorate([\n Property('None')\n ], ArrowSettings.prototype, \"lineHeadEndStyle\", void 0);\n __decorate([\n Property(0)\n ], ArrowSettings.prototype, \"borderDashArray\", void 0);\n __decorate([\n Property('')\n ], ArrowSettings.prototype, \"annotationSelectorSettings\", void 0);\n __decorate([\n Property(0)\n ], ArrowSettings.prototype, \"minHeight\", void 0);\n __decorate([\n Property(0)\n ], ArrowSettings.prototype, \"minWidth\", void 0);\n __decorate([\n Property(0)\n ], ArrowSettings.prototype, \"maxHeight\", void 0);\n __decorate([\n Property(0)\n ], ArrowSettings.prototype, \"maxWidth\", void 0);\n __decorate([\n Property(false)\n ], ArrowSettings.prototype, \"isLock\", void 0);\n __decorate([\n Property(null)\n ], ArrowSettings.prototype, \"customData\", void 0);\n __decorate([\n Property(['None'])\n ], ArrowSettings.prototype, \"allowedInteractions\", void 0);\n __decorate([\n Property(true)\n ], ArrowSettings.prototype, \"isPrint\", void 0);\n return ArrowSettings;\n}(ChildProperty));\nexport { ArrowSettings };\n/**\n * The `RectangleSettings` module is used to provide the properties to rectangle annotation.\n *\n * ```html\n *
      \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the rectangle annotation settings.\n * viewer.rectangleSettings = {\n * opacity: 1,\n * fillColor: '#9c2592',\n * strokeColor: '#ff0000',\n * author: 'Guest',\n * thickness: 1,\n * annotationSelectorSettings: {\n * selectionBorderColor: '',\n * resizerBorderColor: 'black',\n * resizerFillColor: '#FF4081',\n * resizerSize: 8,\n * selectionBorderThickness: 1,\n * resizerShape: 'Square',\n * selectorLineDashArray: [],\n * resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges,\n * resizerCursorType: null\n * },\n * minHeight: 0,\n * minWidth: 0,\n * maxWidth: 0,\n * maxHeight: 0,\n * isLock: false,\n * allowedInteractions: ['None'],\n * isPrint: true\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar RectangleSettings = /** @class */ (function (_super) {\n __extends(RectangleSettings, _super);\n function RectangleSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0 })\n ], RectangleSettings.prototype, \"offset\", void 0);\n __decorate([\n Property(1)\n ], RectangleSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property(100)\n ], RectangleSettings.prototype, \"width\", void 0);\n __decorate([\n Property(50)\n ], RectangleSettings.prototype, \"height\", void 0);\n __decorate([\n Property(1)\n ], RectangleSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('#ffffff00')\n ], RectangleSettings.prototype, \"fillColor\", void 0);\n __decorate([\n Property('#ff0000')\n ], RectangleSettings.prototype, \"strokeColor\", void 0);\n __decorate([\n Property('Guest')\n ], RectangleSettings.prototype, \"author\", void 0);\n __decorate([\n Property('1')\n ], RectangleSettings.prototype, \"thickness\", void 0);\n __decorate([\n Property('')\n ], RectangleSettings.prototype, \"annotationSelectorSettings\", void 0);\n __decorate([\n Property(0)\n ], RectangleSettings.prototype, \"minHeight\", void 0);\n __decorate([\n Property(0)\n ], RectangleSettings.prototype, \"minWidth\", void 0);\n __decorate([\n Property(0)\n ], RectangleSettings.prototype, \"maxHeight\", void 0);\n __decorate([\n Property(0)\n ], RectangleSettings.prototype, \"maxWidth\", void 0);\n __decorate([\n Property(false)\n ], RectangleSettings.prototype, \"isLock\", void 0);\n __decorate([\n Property(null)\n ], RectangleSettings.prototype, \"customData\", void 0);\n __decorate([\n Property(['None'])\n ], RectangleSettings.prototype, \"allowedInteractions\", void 0);\n __decorate([\n Property(true)\n ], RectangleSettings.prototype, \"isPrint\", void 0);\n return RectangleSettings;\n}(ChildProperty));\nexport { RectangleSettings };\n/**\n * The `CircleSettings` module is used to provide the properties to circle annotation.\n *\n * ```html\n *
      \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the circle annotation settings.\n * viewer.circleSettings = {\n * opacity: 1,\n * fillColor: '#9c2592',\n * strokeColor: '#ff0000',\n * author: 'Guest',\n * thickness: 1,\n * annotationSelectorSettings: {\n * selectionBorderColor: '',\n * resizerBorderColor: 'black',\n * resizerFillColor: '#FF4081',\n * resizerSize: 8,\n * selectionBorderThickness: 1,\n * resizerShape: 'Square',\n * selectorLineDashArray: [],\n * resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges,\n * resizerCursorType: null\n * },\n * minHeight: 0,\n * minWidth: 0,\n * maxWidth: 0,\n * maxHeight: 0,\n * isLock: false,\n * allowedInteractions: ['None'],\n * isPrint: true\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar CircleSettings = /** @class */ (function (_super) {\n __extends(CircleSettings, _super);\n function CircleSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0 })\n ], CircleSettings.prototype, \"offset\", void 0);\n __decorate([\n Property(1)\n ], CircleSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property(100)\n ], CircleSettings.prototype, \"width\", void 0);\n __decorate([\n Property(100)\n ], CircleSettings.prototype, \"height\", void 0);\n __decorate([\n Property(1)\n ], CircleSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('#ffffff00')\n ], CircleSettings.prototype, \"fillColor\", void 0);\n __decorate([\n Property('#ff0000')\n ], CircleSettings.prototype, \"strokeColor\", void 0);\n __decorate([\n Property('Guest')\n ], CircleSettings.prototype, \"author\", void 0);\n __decorate([\n Property('1')\n ], CircleSettings.prototype, \"thickness\", void 0);\n __decorate([\n Property('')\n ], CircleSettings.prototype, \"annotationSelectorSettings\", void 0);\n __decorate([\n Property(0)\n ], CircleSettings.prototype, \"minHeight\", void 0);\n __decorate([\n Property(0)\n ], CircleSettings.prototype, \"minWidth\", void 0);\n __decorate([\n Property(0)\n ], CircleSettings.prototype, \"maxHeight\", void 0);\n __decorate([\n Property(0)\n ], CircleSettings.prototype, \"maxWidth\", void 0);\n __decorate([\n Property(false)\n ], CircleSettings.prototype, \"isLock\", void 0);\n __decorate([\n Property(null)\n ], CircleSettings.prototype, \"customData\", void 0);\n __decorate([\n Property(['None'])\n ], CircleSettings.prototype, \"allowedInteractions\", void 0);\n __decorate([\n Property(true)\n ], CircleSettings.prototype, \"isPrint\", void 0);\n return CircleSettings;\n}(ChildProperty));\nexport { CircleSettings };\n/**\n * The `ShapeLabelSettings` module is used to provide the properties to rectangle annotation.\n *\n * ```html\n *
      \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the shape label settings.\n * viewer.shapeLabelSettings = {\n * opacity: 1,\n * fillColor: '#9c2592',\n * borderColor: '#ff0000',\n * fontColor: '#000',\n * fontSize: 16,\n * labelHeight: 24.6,\n * labelMaxWidth: 151,\n * labelContent: 'Label'\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar ShapeLabelSettings = /** @class */ (function (_super) {\n __extends(ShapeLabelSettings, _super);\n function ShapeLabelSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(1)\n ], ShapeLabelSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('#ffffff00')\n ], ShapeLabelSettings.prototype, \"fillColor\", void 0);\n __decorate([\n Property('#000')\n ], ShapeLabelSettings.prototype, \"fontColor\", void 0);\n __decorate([\n Property(16)\n ], ShapeLabelSettings.prototype, \"fontSize\", void 0);\n __decorate([\n Property('Helvetica')\n ], ShapeLabelSettings.prototype, \"fontFamily\", void 0);\n __decorate([\n Property('Label')\n ], ShapeLabelSettings.prototype, \"labelContent\", void 0);\n __decorate([\n Property('')\n ], ShapeLabelSettings.prototype, \"notes\", void 0);\n return ShapeLabelSettings;\n}(ChildProperty));\nexport { ShapeLabelSettings };\n/**\n * The `PolygonSettings` module is used to provide the properties to polygon annotation.\n *\n * ```html\n *
      \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the polygon annotation settings.\n * viewer.polygonSettings = {\n * opacity: 1,\n * fillColor: '#4070FF',\n * strokeColor: '#ff0000',\n * author: 'Guest',\n * thickness: 1,\n * annotationSelectorSettings: {\n * selectionBorderColor: '',\n * resizerBorderColor: 'black',\n * resizerFillColor: '#FF4081',\n * resizerSize: 8,\n * selectionBorderThickness: 1,\n * resizerShape: 'Square',\n * selectorLineDashArray: [],\n * resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges,\n * resizerCursorType: null\n * },\n * minHeight: 0,\n * minWidth: 0,\n * maxWidth: 0,\n * maxHeight: 0,\n * isLock: false,\n * allowedInteractions: ['None'],\n * isPrint: true\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar PolygonSettings = /** @class */ (function (_super) {\n __extends(PolygonSettings, _super);\n function PolygonSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0 })\n ], PolygonSettings.prototype, \"offset\", void 0);\n __decorate([\n Property(1)\n ], PolygonSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property(1)\n ], PolygonSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('#ffffff00')\n ], PolygonSettings.prototype, \"fillColor\", void 0);\n __decorate([\n Property('#ff0000')\n ], PolygonSettings.prototype, \"strokeColor\", void 0);\n __decorate([\n Property('Guest')\n ], PolygonSettings.prototype, \"author\", void 0);\n __decorate([\n Property('1')\n ], PolygonSettings.prototype, \"thickness\", void 0);\n __decorate([\n Property('')\n ], PolygonSettings.prototype, \"annotationSelectorSettings\", void 0);\n __decorate([\n Property(0)\n ], PolygonSettings.prototype, \"minHeight\", void 0);\n __decorate([\n Property(0)\n ], PolygonSettings.prototype, \"minWidth\", void 0);\n __decorate([\n Property(0)\n ], PolygonSettings.prototype, \"maxHeight\", void 0);\n __decorate([\n Property(0)\n ], PolygonSettings.prototype, \"maxWidth\", void 0);\n __decorate([\n Property(false)\n ], PolygonSettings.prototype, \"isLock\", void 0);\n __decorate([\n Property(null)\n ], PolygonSettings.prototype, \"customData\", void 0);\n __decorate([\n Property(['None'])\n ], PolygonSettings.prototype, \"allowedInteractions\", void 0);\n __decorate([\n Property(true)\n ], PolygonSettings.prototype, \"isPrint\", void 0);\n return PolygonSettings;\n}(ChildProperty));\nexport { PolygonSettings };\n/**\n * The `stampSettings` module is used to provide the properties to stamp annotation.\n *\n * ```html\n *
      \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the stamp annotation settings.\n * viewer.stampSettings = {\n * opacity: 1,\n * author: 'Guest',\n * annotationSelectorSettings: {\n * selectionBorderColor: '',\n * resizerBorderColor: 'red',\n * resizerFillColor: '#FF4081',\n * resizerSize: 8,\n * selectionBorderThickness: 5,\n * resizerShape: 'Circle',\n * selectorLineDashArray: [],\n * resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges,\n * resizerCursorType: null\n * },\n * minHeight: 0,\n * minWidth: 0,\n * maxWidth: 0,\n * maxHeight: 0,\n * isLock: false,\n * dynamicStamps: [\n * DynamicStampItem.Revised,\n * DynamicStampItem.Reviewed,\n * DynamicStampItem.Received,\n * DynamicStampItem.Confidential,\n * DynamicStampItem.Approved,\n * DynamicStampItem.NotApproved\n * ],\n * signStamps: [\n * SignStampItem.Witness,\n * SignStampItem.InitialHere,\n * SignStampItem.SignHere,\n * SignStampItem.Accepted,\n * SignStampItem.Rejected\n * ],\n * standardBusinessStamps: [\n * StandardBusinessStampItem.Approved,\n * StandardBusinessStampItem.NotApproved,\n * StandardBusinessStampItem.Draft,\n * StandardBusinessStampItem.Final,\n * StandardBusinessStampItem.Completed,\n * StandardBusinessStampItem.Confidential,\n * StandardBusinessStampItem.ForPublicRelease,\n * StandardBusinessStampItem.NotForPublicRelease,\n * StandardBusinessStampItem.ForComment,\n * StandardBusinessStampItem.Void,\n * StandardBusinessStampItem.PreliminaryResults,\n * StandardBusinessStampItem.InformationOnly\n * ],\n * allowedInteractions: ['None'],\n * isPrint: true\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar StampSettings = /** @class */ (function (_super) {\n __extends(StampSettings, _super);\n function StampSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0 })\n ], StampSettings.prototype, \"offset\", void 0);\n __decorate([\n Property(1)\n ], StampSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property(150)\n ], StampSettings.prototype, \"width\", void 0);\n __decorate([\n Property(50)\n ], StampSettings.prototype, \"height\", void 0);\n __decorate([\n Property(1)\n ], StampSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('Guest')\n ], StampSettings.prototype, \"author\", void 0);\n __decorate([\n Property('')\n ], StampSettings.prototype, \"annotationSelectorSettings\", void 0);\n __decorate([\n Property(0)\n ], StampSettings.prototype, \"minHeight\", void 0);\n __decorate([\n Property(0)\n ], StampSettings.prototype, \"minWidth\", void 0);\n __decorate([\n Property(0)\n ], StampSettings.prototype, \"maxHeight\", void 0);\n __decorate([\n Property(0)\n ], StampSettings.prototype, \"maxWidth\", void 0);\n __decorate([\n Property(false)\n ], StampSettings.prototype, \"isLock\", void 0);\n __decorate([\n Property(null)\n ], StampSettings.prototype, \"customData\", void 0);\n __decorate([\n Property([])\n ], StampSettings.prototype, \"dynamicStamps\", void 0);\n __decorate([\n Property([])\n ], StampSettings.prototype, \"signStamps\", void 0);\n __decorate([\n Property([])\n ], StampSettings.prototype, \"standardBusinessStamps\", void 0);\n __decorate([\n Property(['None'])\n ], StampSettings.prototype, \"allowedInteractions\", void 0);\n __decorate([\n Property(true)\n ], StampSettings.prototype, \"isPrint\", void 0);\n return StampSettings;\n}(ChildProperty));\nexport { StampSettings };\n/**\n * The `CustomStampSettings` module is used to provide the properties to customstamp annotation.\n *\n * ```html\n *
      \n * ```\n * ```ts\n *\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the custom stamp annotation settings.\n * viewer.customStampSettings = {\n * opacity: 1,\n * author: 'Guest',\n * width: 0,\n * height: 0,\n * left: 0,\n * top: 0,\n * minHeight: 0,\n * minWidth: 0,\n * maxWidth: 0,\n * maxHeight: 0,\n * isLock: false,\n * enableCustomStamp: true,\n * allowedInteractions: ['None'],\n * isPrint: true\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar CustomStampSettings = /** @class */ (function (_super) {\n __extends(CustomStampSettings, _super);\n function CustomStampSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0 })\n ], CustomStampSettings.prototype, \"offset\", void 0);\n __decorate([\n Property(1)\n ], CustomStampSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property(1)\n ], CustomStampSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('Guest')\n ], CustomStampSettings.prototype, \"author\", void 0);\n __decorate([\n Property(0)\n ], CustomStampSettings.prototype, \"width\", void 0);\n __decorate([\n Property(0)\n ], CustomStampSettings.prototype, \"height\", void 0);\n __decorate([\n Property(0)\n ], CustomStampSettings.prototype, \"left\", void 0);\n __decorate([\n Property(0)\n ], CustomStampSettings.prototype, \"top\", void 0);\n __decorate([\n Property(false)\n ], CustomStampSettings.prototype, \"isAddToMenu\", void 0);\n __decorate([\n Property(0)\n ], CustomStampSettings.prototype, \"minHeight\", void 0);\n __decorate([\n Property(0)\n ], CustomStampSettings.prototype, \"minWidth\", void 0);\n __decorate([\n Property(0)\n ], CustomStampSettings.prototype, \"maxHeight\", void 0);\n __decorate([\n Property(0)\n ], CustomStampSettings.prototype, \"maxWidth\", void 0);\n __decorate([\n Property(false)\n ], CustomStampSettings.prototype, \"isLock\", void 0);\n __decorate([\n Property('')\n ], CustomStampSettings.prototype, \"customStamps\", void 0);\n __decorate([\n Property(true)\n ], CustomStampSettings.prototype, \"enableCustomStamp\", void 0);\n __decorate([\n Property(['None'])\n ], CustomStampSettings.prototype, \"allowedInteractions\", void 0);\n __decorate([\n Property(true)\n ], CustomStampSettings.prototype, \"isPrint\", void 0);\n return CustomStampSettings;\n}(ChildProperty));\nexport { CustomStampSettings };\n/**\n * The `DistanceSettings` module is used to provide the properties to distance calibrate annotation.\n *\n * ```html\n *
      \n * ```\n * ```ts\n *\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the distance annotation settings.\n * viewer.distanceSettings = {\n * opacity: 1,\n * fillColor: '#4070FF',\n * strokeColor: '#ff0000',\n * author: 'Guest',\n * thickness: 1,\n * borderDashArray: 0,\n * lineHeadStartStyle: 'Closed',\n * lineHeadEndStyle: 'Closed',\n * annotationSelectorSettings: {\n * selectionBorderColor: '',\n * resizerBorderColor: 'black',\n * resizerFillColor: '#FF4081',\n * resizerSize: 8,\n * selectionBorderThickness: 1,\n * resizerShape: 'Square',\n * selectorLineDashArray: [],\n * resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges,\n * resizerCursorType: null\n * },\n * minHeight: 0,\n * minWidth: 0,\n * maxWidth: 0,\n * maxHeight: 0,\n * isLock: false,\n * leaderLength: 40,\n * resizeCursorType: CursorType.move,\n * allowedInteractions: ['None'],\n * isPrint: true\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar DistanceSettings = /** @class */ (function (_super) {\n __extends(DistanceSettings, _super);\n function DistanceSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0 })\n ], DistanceSettings.prototype, \"offset\", void 0);\n __decorate([\n Property(1)\n ], DistanceSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property(1)\n ], DistanceSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('#ff0000')\n ], DistanceSettings.prototype, \"fillColor\", void 0);\n __decorate([\n Property('#ff0000')\n ], DistanceSettings.prototype, \"strokeColor\", void 0);\n __decorate([\n Property('Guest')\n ], DistanceSettings.prototype, \"author\", void 0);\n __decorate([\n Property('1')\n ], DistanceSettings.prototype, \"thickness\", void 0);\n __decorate([\n Property('None')\n ], DistanceSettings.prototype, \"lineHeadStartStyle\", void 0);\n __decorate([\n Property('None')\n ], DistanceSettings.prototype, \"lineHeadEndStyle\", void 0);\n __decorate([\n Property(0)\n ], DistanceSettings.prototype, \"borderDashArray\", void 0);\n __decorate([\n Property('')\n ], DistanceSettings.prototype, \"annotationSelectorSettings\", void 0);\n __decorate([\n Property(0)\n ], DistanceSettings.prototype, \"minHeight\", void 0);\n __decorate([\n Property(0)\n ], DistanceSettings.prototype, \"minWidth\", void 0);\n __decorate([\n Property(0)\n ], DistanceSettings.prototype, \"maxHeight\", void 0);\n __decorate([\n Property(0)\n ], DistanceSettings.prototype, \"maxWidth\", void 0);\n __decorate([\n Property(false)\n ], DistanceSettings.prototype, \"isLock\", void 0);\n __decorate([\n Property(null)\n ], DistanceSettings.prototype, \"customData\", void 0);\n __decorate([\n Property(40)\n ], DistanceSettings.prototype, \"leaderLength\", void 0);\n __decorate([\n Property(CursorType.move)\n ], DistanceSettings.prototype, \"resizeCursorType\", void 0);\n __decorate([\n Property(['None'])\n ], DistanceSettings.prototype, \"allowedInteractions\", void 0);\n __decorate([\n Property(true)\n ], DistanceSettings.prototype, \"isPrint\", void 0);\n return DistanceSettings;\n}(ChildProperty));\nexport { DistanceSettings };\n/**\n * The `PerimeterSettings` module is used to provide the properties to perimeter calibrate annotation.\n *\n * ```html\n *
      \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the perimeter annotation settings.\n * viewer.perimeterSettings = {\n * opacity: 1,\n * fillColor: '#4070FF',\n * strokeColor: '#ff0000',\n * author: 'Guest',\n * thickness: 1,\n * borderDashArray: 0,\n * lineHeadStartStyle: 'Open',\n * lineHeadEndStyle: 'Open',\n * minHeight: 0, minWidth: 0,\n * maxWidth: 0,\n * maxHeight: 0,\n * isLock: false,\n * annotationSelectorSettings: {\n * selectionBorderColor: '',\n * resizerBorderColor: 'black',\n * resizerFillColor: '#4070FF',\n * resizerSize: 8,\n * selectionBorderThickness: 1,\n * resizerShape: 'Circle',\n * selectorLineDashArray: [],\n * resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges,\n * resizerCursorType: null\n * },\n * allowedInteractions: ['None'],\n * isPrint: true\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar PerimeterSettings = /** @class */ (function (_super) {\n __extends(PerimeterSettings, _super);\n function PerimeterSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0 })\n ], PerimeterSettings.prototype, \"offset\", void 0);\n __decorate([\n Property(1)\n ], PerimeterSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property(1)\n ], PerimeterSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('#ffffff00')\n ], PerimeterSettings.prototype, \"fillColor\", void 0);\n __decorate([\n Property('#ff0000')\n ], PerimeterSettings.prototype, \"strokeColor\", void 0);\n __decorate([\n Property('Guest')\n ], PerimeterSettings.prototype, \"author\", void 0);\n __decorate([\n Property('1')\n ], PerimeterSettings.prototype, \"thickness\", void 0);\n __decorate([\n Property('None')\n ], PerimeterSettings.prototype, \"lineHeadStartStyle\", void 0);\n __decorate([\n Property('None')\n ], PerimeterSettings.prototype, \"lineHeadEndStyle\", void 0);\n __decorate([\n Property(0)\n ], PerimeterSettings.prototype, \"borderDashArray\", void 0);\n __decorate([\n Property(0)\n ], PerimeterSettings.prototype, \"minHeight\", void 0);\n __decorate([\n Property(0)\n ], PerimeterSettings.prototype, \"minWidth\", void 0);\n __decorate([\n Property(0)\n ], PerimeterSettings.prototype, \"maxHeight\", void 0);\n __decorate([\n Property(0)\n ], PerimeterSettings.prototype, \"maxWidth\", void 0);\n __decorate([\n Property(false)\n ], PerimeterSettings.prototype, \"isLock\", void 0);\n __decorate([\n Property('')\n ], PerimeterSettings.prototype, \"annotationSelectorSettings\", void 0);\n __decorate([\n Property(['None'])\n ], PerimeterSettings.prototype, \"allowedInteractions\", void 0);\n __decorate([\n Property(true)\n ], PerimeterSettings.prototype, \"isPrint\", void 0);\n return PerimeterSettings;\n}(ChildProperty));\nexport { PerimeterSettings };\n/**\n * The `AreaSettings` module is used to provide the properties to area calibrate annotation.\n *\n * ```html\n *
      \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the area annotation settings.\n * viewer.areaSettings = {\n * opacity: 1,\n * fillColor: '#4070FF',\n * strokeColor: '#ff0000',\n * author: 'Guest',\n * thickness: 1,\n * minHeight: 0,\n * minWidth: 0,\n * maxWidth: 0,\n * maxHeight: 0,\n * isLock: false,\n * annotationSelectorSettings: {\n * selectionBorderColor: '',\n * resizerBorderColor: 'black',\n * resizerFillColor: '#4070FF',\n * resizerSize: 8,\n * selectionBorderThickness: 1,\n * resizerShape: 'Circle',\n * selectorLineDashArray: [],\n * resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges,\n * resizerCursorType: null\n * },\n * allowedInteractions: ['None'],\n * isPrint: true\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar AreaSettings = /** @class */ (function (_super) {\n __extends(AreaSettings, _super);\n function AreaSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0 })\n ], AreaSettings.prototype, \"offset\", void 0);\n __decorate([\n Property(1)\n ], AreaSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property(1)\n ], AreaSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('#ffffff00')\n ], AreaSettings.prototype, \"fillColor\", void 0);\n __decorate([\n Property('#ff0000')\n ], AreaSettings.prototype, \"strokeColor\", void 0);\n __decorate([\n Property('Guest')\n ], AreaSettings.prototype, \"author\", void 0);\n __decorate([\n Property('1')\n ], AreaSettings.prototype, \"thickness\", void 0);\n __decorate([\n Property(0)\n ], AreaSettings.prototype, \"minHeight\", void 0);\n __decorate([\n Property(0)\n ], AreaSettings.prototype, \"minWidth\", void 0);\n __decorate([\n Property(0)\n ], AreaSettings.prototype, \"maxHeight\", void 0);\n __decorate([\n Property(0)\n ], AreaSettings.prototype, \"maxWidth\", void 0);\n __decorate([\n Property(false)\n ], AreaSettings.prototype, \"isLock\", void 0);\n __decorate([\n Property('')\n ], AreaSettings.prototype, \"annotationSelectorSettings\", void 0);\n __decorate([\n Property(['None'])\n ], AreaSettings.prototype, \"allowedInteractions\", void 0);\n __decorate([\n Property(true)\n ], AreaSettings.prototype, \"isPrint\", void 0);\n return AreaSettings;\n}(ChildProperty));\nexport { AreaSettings };\n/**\n * The `RadiusSettings` module is used to provide the properties to radius calibrate annotation.\n *\n * ```html\n *
      \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the radius annotation settings.\n * viewer.radiusSettings = {\n * opacity: 1,\n * fillColor: '#4070FF',\n * strokeColor: '#ff0000',\n * author: 'Guest',\n * thickness: 1,\n * annotationSelectorSettings: {\n * selectionBorderColor: '',\n * resizerBorderColor: 'red',\n * resizerFillColor: '#4070FF',\n * resizerSize: 8,\n * selectionBorderThickness: 1,\n * resizerShape: 'Circle',\n * selectorLineDashArray: [],\n * resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges,\n * resizerCursorType: null\n * },\n * minHeight: 0,\n * minWidth: 0,\n * maxWidth: 0,\n * maxHeight: 0,\n * isLock: false,\n * allowedInteractions: ['None'],\n * isPrint: true\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar RadiusSettings = /** @class */ (function (_super) {\n __extends(RadiusSettings, _super);\n function RadiusSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0 })\n ], RadiusSettings.prototype, \"offset\", void 0);\n __decorate([\n Property(1)\n ], RadiusSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property(100)\n ], RadiusSettings.prototype, \"width\", void 0);\n __decorate([\n Property(90)\n ], RadiusSettings.prototype, \"height\", void 0);\n __decorate([\n Property(1)\n ], RadiusSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('#ffffff00')\n ], RadiusSettings.prototype, \"fillColor\", void 0);\n __decorate([\n Property('#ff0000')\n ], RadiusSettings.prototype, \"strokeColor\", void 0);\n __decorate([\n Property('Guest')\n ], RadiusSettings.prototype, \"author\", void 0);\n __decorate([\n Property('1')\n ], RadiusSettings.prototype, \"thickness\", void 0);\n __decorate([\n Property('')\n ], RadiusSettings.prototype, \"annotationSelectorSettings\", void 0);\n __decorate([\n Property(0)\n ], RadiusSettings.prototype, \"minHeight\", void 0);\n __decorate([\n Property(0)\n ], RadiusSettings.prototype, \"minWidth\", void 0);\n __decorate([\n Property(0)\n ], RadiusSettings.prototype, \"maxHeight\", void 0);\n __decorate([\n Property(0)\n ], RadiusSettings.prototype, \"maxWidth\", void 0);\n __decorate([\n Property(false)\n ], RadiusSettings.prototype, \"isLock\", void 0);\n __decorate([\n Property(null)\n ], RadiusSettings.prototype, \"customData\", void 0);\n __decorate([\n Property(['None'])\n ], RadiusSettings.prototype, \"allowedInteractions\", void 0);\n __decorate([\n Property(true)\n ], RadiusSettings.prototype, \"isPrint\", void 0);\n return RadiusSettings;\n}(ChildProperty));\nexport { RadiusSettings };\n/**\n * The `VolumeSettings` module is used to provide the properties to volume calibrate annotation.\n *\n * ```html\n *
      \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the volume annotation settings.\n * viewer.volumeSettings = {\n * opacity: 1,\n * fillColor: '#4070FF',\n * strokeColor: '#ff0000',\n * author: 'Guest',\n * thickness: 1,\n * minHeight: 0,\n * minWidth: 0,\n * maxWidth: 0,\n * maxHeight: 0,\n * isLock: false,\n * annotationSelectorSettings: {\n * selectionBorderColor: '',\n * resizerBorderColor: 'black',\n * resizerFillColor: '#4070FF',\n * resizerSize: 8,\n * selectionBorderThickness: 1,\n * resizerShape: 'Circle',\n * selectorLineDashArray: [],\n * resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges,\n * resizerCursorType: null\n * },\n * allowedInteractions: ['None'],\n * isPrint: true\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar VolumeSettings = /** @class */ (function (_super) {\n __extends(VolumeSettings, _super);\n function VolumeSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0 })\n ], VolumeSettings.prototype, \"offset\", void 0);\n __decorate([\n Property(1)\n ], VolumeSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property(1)\n ], VolumeSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('#ffffff00')\n ], VolumeSettings.prototype, \"fillColor\", void 0);\n __decorate([\n Property('#ff0000')\n ], VolumeSettings.prototype, \"strokeColor\", void 0);\n __decorate([\n Property('Guest')\n ], VolumeSettings.prototype, \"author\", void 0);\n __decorate([\n Property('1')\n ], VolumeSettings.prototype, \"thickness\", void 0);\n __decorate([\n Property(0)\n ], VolumeSettings.prototype, \"minHeight\", void 0);\n __decorate([\n Property(0)\n ], VolumeSettings.prototype, \"minWidth\", void 0);\n __decorate([\n Property(0)\n ], VolumeSettings.prototype, \"maxHeight\", void 0);\n __decorate([\n Property(0)\n ], VolumeSettings.prototype, \"maxWidth\", void 0);\n __decorate([\n Property(false)\n ], VolumeSettings.prototype, \"isLock\", void 0);\n __decorate([\n Property('')\n ], VolumeSettings.prototype, \"annotationSelectorSettings\", void 0);\n __decorate([\n Property(['None'])\n ], VolumeSettings.prototype, \"allowedInteractions\", void 0);\n __decorate([\n Property(true)\n ], VolumeSettings.prototype, \"isPrint\", void 0);\n return VolumeSettings;\n}(ChildProperty));\nexport { VolumeSettings };\n/**\n * The `Ink` module is used to provide the properties to Ink annotation.\n *\n * ```html\n *
      \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the ink annotation settings.\n * viewer.inkAnnotationSettings = {\n * author: 'Guest',\n * opacity: 1,\n * strokeColor: '#ff0000',\n * thickness: 1,\n * annotationSelectorSettings: {\n * selectionBorderColor: '',\n * resizerBorderColor: 'black',\n * resizerFillColor: '#FF4081',\n * resizerSize: 8,\n * selectionBorderThickness: 1,\n * resizerShape: 'Circle',\n * selectorLineDashArray: [],\n * resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges,\n * resizerCursorType: null\n * },\n * isLock: false,\n * allowedInteractions: ['None'],\n * isPrint: true\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar InkAnnotationSettings = /** @class */ (function (_super) {\n __extends(InkAnnotationSettings, _super);\n function InkAnnotationSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0 })\n ], InkAnnotationSettings.prototype, \"offset\", void 0);\n __decorate([\n Property(1)\n ], InkAnnotationSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property(0)\n ], InkAnnotationSettings.prototype, \"width\", void 0);\n __decorate([\n Property(0)\n ], InkAnnotationSettings.prototype, \"height\", void 0);\n __decorate([\n Property(0)\n ], InkAnnotationSettings.prototype, \"path\", void 0);\n __decorate([\n Property(1)\n ], InkAnnotationSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('#ff0000')\n ], InkAnnotationSettings.prototype, \"strokeColor\", void 0);\n __decorate([\n Property(1)\n ], InkAnnotationSettings.prototype, \"thickness\", void 0);\n __decorate([\n Property('')\n ], InkAnnotationSettings.prototype, \"annotationSelectorSettings\", void 0);\n __decorate([\n Property(false)\n ], InkAnnotationSettings.prototype, \"isLock\", void 0);\n __decorate([\n Property('Guest')\n ], InkAnnotationSettings.prototype, \"author\", void 0);\n __decorate([\n Property(['None'])\n ], InkAnnotationSettings.prototype, \"allowedInteractions\", void 0);\n __decorate([\n Property(null)\n ], InkAnnotationSettings.prototype, \"customData\", void 0);\n __decorate([\n Property(true)\n ], InkAnnotationSettings.prototype, \"isPrint\", void 0);\n return InkAnnotationSettings;\n}(ChildProperty));\nexport { InkAnnotationSettings };\n/**\n * The `stickyNotesSettings` module is used to provide the properties to sticky notes annotation.\n *\n * ```html\n *
      \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the sticky notes annotation settings.\n * viewer.stickyNotesSettings = {\n * author: 'Guest',\n * opacity: 1,\n * annotationSelectorSettings: {\n * selectionBorderColor: '',\n * resizerBorderColor: 'red',\n * resizerFillColor: '#4070FF',\n * resizerSize: 8,\n * selectionBorderThickness: 1,\n * resizerShape: 'Circle',\n * selectorLineDashArray: [],\n * resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges,\n * resizerCursorType: null\n * },\n * isLock: false,\n * allowedInteractions: ['None'],\n * isPrint: true\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar StickyNotesSettings = /** @class */ (function (_super) {\n __extends(StickyNotesSettings, _super);\n function StickyNotesSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0 })\n ], StickyNotesSettings.prototype, \"offset\", void 0);\n __decorate([\n Property(1)\n ], StickyNotesSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property('Guest')\n ], StickyNotesSettings.prototype, \"author\", void 0);\n __decorate([\n Property(1)\n ], StickyNotesSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('')\n ], StickyNotesSettings.prototype, \"annotationSelectorSettings\", void 0);\n __decorate([\n Property(null)\n ], StickyNotesSettings.prototype, \"customData\", void 0);\n __decorate([\n Property(false)\n ], StickyNotesSettings.prototype, \"isLock\", void 0);\n __decorate([\n Property(['None'])\n ], StickyNotesSettings.prototype, \"allowedInteractions\", void 0);\n __decorate([\n Property(true)\n ], StickyNotesSettings.prototype, \"isPrint\", void 0);\n return StickyNotesSettings;\n}(ChildProperty));\nexport { StickyNotesSettings };\n/**\n * The `MeasurementSettings` module is used to provide the settings to measurement annotations.\n *\n * ```html\n *
      \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the measurement annotation settings.\n * viewer.measurementSettings = {\n * conversionUnit: 'cm',\n * displayUnit: 'cm',\n * scaleRatio: 1,\n * depth: 96\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar MeasurementSettings = /** @class */ (function (_super) {\n __extends(MeasurementSettings, _super);\n function MeasurementSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(1)\n ], MeasurementSettings.prototype, \"scaleRatio\", void 0);\n __decorate([\n Property('in')\n ], MeasurementSettings.prototype, \"conversionUnit\", void 0);\n __decorate([\n Property('in')\n ], MeasurementSettings.prototype, \"displayUnit\", void 0);\n __decorate([\n Property(96)\n ], MeasurementSettings.prototype, \"depth\", void 0);\n return MeasurementSettings;\n}(ChildProperty));\nexport { MeasurementSettings };\n/**\n * The `FreeTextSettings` module is used to provide the properties to free text annotation.\n *\n * ```html\n *
      \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the free text annotation settings.\n * viewer.freeTextSettings = {\n * opacity: 1,\n * fillColor: '#4070FF',\n * borderColor: '#4070FF',\n * author: 'Guest',\n * borderWidth: 1,\n * width: 151,\n * fontSize: 16,\n * height: 24.6,\n * fontColor: '#000',\n * fontFamily: 'Courier',\n * defaultText: 'Type Here',\n * textAlignment: 'Right',\n * fontStyle: FontStyle.Italic,\n * allowTextOnly: false,\n * annotationSelectorSettings: {\n * selectionBorderColor: '',\n * resizerBorderColor: 'black',\n * resizerFillColor: '#FF4081',\n * resizerSize: 8,\n * selectionBorderThickness: 1,\n * resizerShape: 'Circle',\n * selectorLineDashArray: [],\n * resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges,\n * resizerCursorType: null\n * },\n * minHeight: 0,\n * minWidth: 0,\n * maxWidth: 0,\n * maxHeight: 0,\n * isLock: false,\n * allowedInteractions: ['None'],\n * isPrint: true,\n * isReadonly: false,\n * enableAutoFit: false\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar FreeTextSettings = /** @class */ (function (_super) {\n __extends(FreeTextSettings, _super);\n function FreeTextSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0 })\n ], FreeTextSettings.prototype, \"offset\", void 0);\n __decorate([\n Property(1)\n ], FreeTextSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property(1)\n ], FreeTextSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('#ffffff00')\n ], FreeTextSettings.prototype, \"borderColor\", void 0);\n __decorate([\n Property(1)\n ], FreeTextSettings.prototype, \"borderWidth\", void 0);\n __decorate([\n Property('solid')\n ], FreeTextSettings.prototype, \"borderStyle\", void 0);\n __decorate([\n Property('Guest')\n ], FreeTextSettings.prototype, \"author\", void 0);\n __decorate([\n Property('#ffffff00')\n ], FreeTextSettings.prototype, \"fillColor\", void 0);\n __decorate([\n Property(16)\n ], FreeTextSettings.prototype, \"fontSize\", void 0);\n __decorate([\n Property(151)\n ], FreeTextSettings.prototype, \"width\", void 0);\n __decorate([\n Property(24.6)\n ], FreeTextSettings.prototype, \"height\", void 0);\n __decorate([\n Property('#000')\n ], FreeTextSettings.prototype, \"fontColor\", void 0);\n __decorate([\n Property('Helvetica')\n ], FreeTextSettings.prototype, \"fontFamily\", void 0);\n __decorate([\n Property('TypeHere')\n ], FreeTextSettings.prototype, \"defaultText\", void 0);\n __decorate([\n Property('None')\n ], FreeTextSettings.prototype, \"fontStyle\", void 0);\n __decorate([\n Property('Left')\n ], FreeTextSettings.prototype, \"textAlignment\", void 0);\n __decorate([\n Property(false)\n ], FreeTextSettings.prototype, \"allowEditTextOnly\", void 0);\n __decorate([\n Property('')\n ], FreeTextSettings.prototype, \"annotationSelectorSettings\", void 0);\n __decorate([\n Property(0)\n ], FreeTextSettings.prototype, \"minHeight\", void 0);\n __decorate([\n Property(0)\n ], FreeTextSettings.prototype, \"minWidth\", void 0);\n __decorate([\n Property(0)\n ], FreeTextSettings.prototype, \"maxHeight\", void 0);\n __decorate([\n Property(0)\n ], FreeTextSettings.prototype, \"maxWidth\", void 0);\n __decorate([\n Property(false)\n ], FreeTextSettings.prototype, \"isLock\", void 0);\n __decorate([\n Property(null)\n ], FreeTextSettings.prototype, \"customData\", void 0);\n __decorate([\n Property(['None'])\n ], FreeTextSettings.prototype, \"allowedInteractions\", void 0);\n __decorate([\n Property(true)\n ], FreeTextSettings.prototype, \"isPrint\", void 0);\n __decorate([\n Property(false)\n ], FreeTextSettings.prototype, \"isReadonly\", void 0);\n __decorate([\n Property(false)\n ], FreeTextSettings.prototype, \"enableAutoFit\", void 0);\n return FreeTextSettings;\n}(ChildProperty));\nexport { FreeTextSettings };\n/**\n * The `AnnotationSelectorSettings` module is used to provide the properties to annotation selectors.\n *\n * ```html\n *
      \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the annotation selector settings.\n * viewer.annotationSelectorSettings = {\n * selectionBorderColor: '',\n * resizerBorderColor: 'Circle',\n * resizerFillColor: '#4070FF',\n * resizerSize: 8,\n * selectionBorderThickness: 1,\n * resizerShape: 'Square',\n * selectorLineDashArray: [],\n * resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges,\n * resizerCursorType: null\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar AnnotationSelectorSettings = /** @class */ (function (_super) {\n __extends(AnnotationSelectorSettings, _super);\n function AnnotationSelectorSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], AnnotationSelectorSettings.prototype, \"selectionBorderColor\", void 0);\n __decorate([\n Property('black')\n ], AnnotationSelectorSettings.prototype, \"resizerBorderColor\", void 0);\n __decorate([\n Property('#FF4081')\n ], AnnotationSelectorSettings.prototype, \"resizerFillColor\", void 0);\n __decorate([\n Property(8)\n ], AnnotationSelectorSettings.prototype, \"resizerSize\", void 0);\n __decorate([\n Property(1)\n ], AnnotationSelectorSettings.prototype, \"selectionBorderThickness\", void 0);\n __decorate([\n Property('Square')\n ], AnnotationSelectorSettings.prototype, \"resizerShape\", void 0);\n __decorate([\n Property('')\n ], AnnotationSelectorSettings.prototype, \"selectorLineDashArray\", void 0);\n __decorate([\n Property(AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges)\n ], AnnotationSelectorSettings.prototype, \"resizerLocation\", void 0);\n __decorate([\n Property(null)\n ], AnnotationSelectorSettings.prototype, \"resizerCursorType\", void 0);\n return AnnotationSelectorSettings;\n}(ChildProperty));\nexport { AnnotationSelectorSettings };\n/**\n * The `TextSearchColorSettings` module is used to set the settings for the color of the text search highlight.\n *\n * ```html\n *
      \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the text search color settings.\n * viewer.textSearchColorSettings = {\n * searchHighlightColor: '#4070FF',\n * searchColor: '#FF4081'\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar TextSearchColorSettings = /** @class */ (function (_super) {\n __extends(TextSearchColorSettings, _super);\n function TextSearchColorSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('#fdd835')\n ], TextSearchColorSettings.prototype, \"searchHighlightColor\", void 0);\n __decorate([\n Property('#8b4c12')\n ], TextSearchColorSettings.prototype, \"searchColor\", void 0);\n return TextSearchColorSettings;\n}(ChildProperty));\nexport { TextSearchColorSettings };\n/**\n * The `HandWrittenSignatureSettings` module is used to provide the properties to handwritten signature.\n *\n * ```html\n *
      \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the hand written signature settings.\n * viewer.handWrittenSignatureSettings = {\n * signatureItem: [\n * 'Signature',\n * 'Initial'\n * ],\n * saveSignatureLimit: 1,\n * saveInitialLimit: 1,\n * opacity: 1,\n * strokeColor: '#000000',\n * width: 150,\n * height: 100,\n * thickness: 1,\n * annotationSelectorSettings: {\n * selectionBorderColor: '',\n * resizerBorderColor: 'black',\n * resizerFillColor: '#FF4081',\n * resizerSize: 8,\n * selectionBorderThickness: 1,\n * resizerShape: 'Circle',\n * selectorLineDashArray: [],\n * resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges,\n * resizerCursorType: null\n * },\n * allowedInteractions: ['None'],\n * signatureDialogSettings: {\n * displayMode: DisplayMode.Draw | DisplayMode.Text | DisplayMode.Upload, hideSaveSignature: false\n * },\n * initialDialogSettings: {\n * displayMode: DisplayMode.Draw | DisplayMode.Text | DisplayMode.Upload,\n * hideSaveSignature: false\n * }\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar HandWrittenSignatureSettings = /** @class */ (function (_super) {\n __extends(HandWrittenSignatureSettings, _super);\n function HandWrittenSignatureSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(1)\n ], HandWrittenSignatureSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('#000000')\n ], HandWrittenSignatureSettings.prototype, \"strokeColor\", void 0);\n __decorate([\n Property(1)\n ], HandWrittenSignatureSettings.prototype, \"thickness\", void 0);\n __decorate([\n Property(150)\n ], HandWrittenSignatureSettings.prototype, \"width\", void 0);\n __decorate([\n Property(100)\n ], HandWrittenSignatureSettings.prototype, \"height\", void 0);\n __decorate([\n Property(1)\n ], HandWrittenSignatureSettings.prototype, \"saveSignatureLimit\", void 0);\n __decorate([\n Property(1)\n ], HandWrittenSignatureSettings.prototype, \"saveInitialLimit\", void 0);\n __decorate([\n Property([])\n ], HandWrittenSignatureSettings.prototype, \"signatureItem\", void 0);\n __decorate([\n Property()\n ], HandWrittenSignatureSettings.prototype, \"typeSignatureFonts\", void 0);\n __decorate([\n Property('')\n ], HandWrittenSignatureSettings.prototype, \"annotationSelectorSettings\", void 0);\n __decorate([\n Property()\n ], HandWrittenSignatureSettings.prototype, \"signatureDialogSettings\", void 0);\n __decorate([\n Property()\n ], HandWrittenSignatureSettings.prototype, \"initialDialogSettings\", void 0);\n return HandWrittenSignatureSettings;\n}(ChildProperty));\nexport { HandWrittenSignatureSettings };\n/**\n * The `AnnotationSettings` module is used to provide the properties to annotations.\n *\n * ```html\n *
      \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the annotation settings.\n * viewer.annotationSettings = {\n * author: 'Guest',\n * minHeight: 0,\n * minWidth: 0,\n * maxWidth: 0,\n * maxHeight: 0,\n * isLock: false,\n * skipPrint: false,\n * skipDownload: false,\n * allowedInteractions: ['None']\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar AnnotationSettings = /** @class */ (function (_super) {\n __extends(AnnotationSettings, _super);\n function AnnotationSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('Guest')\n ], AnnotationSettings.prototype, \"author\", void 0);\n __decorate([\n Property(0)\n ], AnnotationSettings.prototype, \"minHeight\", void 0);\n __decorate([\n Property(0)\n ], AnnotationSettings.prototype, \"minWidth\", void 0);\n __decorate([\n Property(0)\n ], AnnotationSettings.prototype, \"maxHeight\", void 0);\n __decorate([\n Property(0)\n ], AnnotationSettings.prototype, \"maxWidth\", void 0);\n __decorate([\n Property(false)\n ], AnnotationSettings.prototype, \"isLock\", void 0);\n __decorate([\n Property(false)\n ], AnnotationSettings.prototype, \"skipPrint\", void 0);\n __decorate([\n Property(false)\n ], AnnotationSettings.prototype, \"skipDownload\", void 0);\n __decorate([\n Property(null)\n ], AnnotationSettings.prototype, \"customData\", void 0);\n __decorate([\n Property(['None'])\n ], AnnotationSettings.prototype, \"allowedInteractions\", void 0);\n return AnnotationSettings;\n}(ChildProperty));\nexport { AnnotationSettings };\n/**\n * The `DocumentTextCollectionSettings` module is used to provide the properties to DocumentTextCollection.\n */\nvar DocumentTextCollectionSettings = /** @class */ (function (_super) {\n __extends(DocumentTextCollectionSettings, _super);\n function DocumentTextCollectionSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property()\n ], DocumentTextCollectionSettings.prototype, \"textData\", void 0);\n __decorate([\n Property()\n ], DocumentTextCollectionSettings.prototype, \"pageText\", void 0);\n __decorate([\n Property()\n ], DocumentTextCollectionSettings.prototype, \"pageSize\", void 0);\n return DocumentTextCollectionSettings;\n}(ChildProperty));\nexport { DocumentTextCollectionSettings };\n/**\n * The `TextDataSettings` module is used to provide the properties of text data.\n */\nvar TextDataSettings = /** @class */ (function (_super) {\n __extends(TextDataSettings, _super);\n function TextDataSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property()\n ], TextDataSettings.prototype, \"bounds\", void 0);\n __decorate([\n Property()\n ], TextDataSettings.prototype, \"text\", void 0);\n return TextDataSettings;\n}(ChildProperty));\nexport { TextDataSettings };\n/**\n * The `RectangleBounds` module is used to provide the properties of rectangle bounds.\n */\nvar RectangleBounds = /** @class */ (function (_super) {\n __extends(RectangleBounds, _super);\n function RectangleBounds() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property()\n ], RectangleBounds.prototype, \"size\", void 0);\n __decorate([\n Property()\n ], RectangleBounds.prototype, \"x\", void 0);\n __decorate([\n Property()\n ], RectangleBounds.prototype, \"y\", void 0);\n __decorate([\n Property()\n ], RectangleBounds.prototype, \"width\", void 0);\n __decorate([\n Property()\n ], RectangleBounds.prototype, \"height\", void 0);\n __decorate([\n Property()\n ], RectangleBounds.prototype, \"left\", void 0);\n __decorate([\n Property()\n ], RectangleBounds.prototype, \"top\", void 0);\n __decorate([\n Property()\n ], RectangleBounds.prototype, \"right\", void 0);\n __decorate([\n Property()\n ], RectangleBounds.prototype, \"bottom\", void 0);\n __decorate([\n Property()\n ], RectangleBounds.prototype, \"isEmpty\", void 0);\n return RectangleBounds;\n}(ChildProperty));\nexport { RectangleBounds };\n/**\n * The `TileRenderingSettings` module is used to provide the tile rendering settings of the PDF viewer.\n *\n * ```html\n *
      \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the tile rendering settings.\n * viewer.tileRenderingSettings = {\n * enableTileRendering: false,\n * x: 0,\n * y: 0\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar TileRenderingSettings = /** @class */ (function (_super) {\n __extends(TileRenderingSettings, _super);\n function TileRenderingSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(true)\n ], TileRenderingSettings.prototype, \"enableTileRendering\", void 0);\n __decorate([\n Property(0)\n ], TileRenderingSettings.prototype, \"x\", void 0);\n __decorate([\n Property(0)\n ], TileRenderingSettings.prototype, \"y\", void 0);\n return TileRenderingSettings;\n}(ChildProperty));\nexport { TileRenderingSettings };\n/**\n * The `ScrollSettings` module is used to provide the settings of the scroll of the PDF viewer.\n *\n * ```html\n *
      \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the scroll settings.\n * viewer.scrollSettings = {\n * delayPageRequestTimeOnScroll: 150\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar ScrollSettings = /** @class */ (function (_super) {\n __extends(ScrollSettings, _super);\n function ScrollSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(100)\n ], ScrollSettings.prototype, \"delayPageRequestTimeOnScroll\", void 0);\n return ScrollSettings;\n}(ChildProperty));\nexport { ScrollSettings };\n/**\n * The `FormField` is used to store the form fields of PDF document.\n */\nvar FormField = /** @class */ (function (_super) {\n __extends(FormField, _super);\n function FormField() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], FormField.prototype, \"name\", void 0);\n __decorate([\n Property(false)\n ], FormField.prototype, \"isChecked\", void 0);\n __decorate([\n Property(false)\n ], FormField.prototype, \"isSelected\", void 0);\n __decorate([\n Property('')\n ], FormField.prototype, \"id\", void 0);\n __decorate([\n Property('')\n ], FormField.prototype, \"value\", void 0);\n __decorate([\n Property('')\n ], FormField.prototype, \"type\", void 0);\n __decorate([\n Property(false)\n ], FormField.prototype, \"isReadOnly\", void 0);\n __decorate([\n Property([''])\n ], FormField.prototype, \"signatureType\", void 0);\n __decorate([\n Property('')\n ], FormField.prototype, \"fontName\", void 0);\n __decorate([\n Property({ x: 0, y: 0, width: 0, height: 0 })\n ], FormField.prototype, \"bounds\", void 0);\n __decorate([\n Property('Helvetica')\n ], FormField.prototype, \"fontFamily\", void 0);\n __decorate([\n Property(10)\n ], FormField.prototype, \"fontSize\", void 0);\n __decorate([\n Property('None')\n ], FormField.prototype, \"fontStyle\", void 0);\n __decorate([\n Property('black')\n ], FormField.prototype, \"color\", void 0);\n __decorate([\n Property('white')\n ], FormField.prototype, \"backgroundColor\", void 0);\n __decorate([\n Property('Left')\n ], FormField.prototype, \"alignment\", void 0);\n __decorate([\n Property('visible')\n ], FormField.prototype, \"visibility\", void 0);\n __decorate([\n Property(0)\n ], FormField.prototype, \"maxLength\", void 0);\n __decorate([\n Property(false)\n ], FormField.prototype, \"isRequired\", void 0);\n __decorate([\n Property(false)\n ], FormField.prototype, \"isPrint\", void 0);\n __decorate([\n Property('')\n ], FormField.prototype, \"tooltip\", void 0);\n __decorate([\n Property('')\n ], FormField.prototype, \"options\", void 0);\n __decorate([\n Property()\n ], FormField.prototype, \"signatureIndicatorSettings\", void 0);\n __decorate([\n Property(1)\n ], FormField.prototype, \"thickness\", void 0);\n __decorate([\n Property('#303030')\n ], FormField.prototype, \"borderColor\", void 0);\n __decorate([\n Property(false)\n ], FormField.prototype, \"isMultiline\", void 0);\n __decorate([\n Property(false)\n ], FormField.prototype, \"insertSpaces\", void 0);\n __decorate([\n Property(-1)\n ], FormField.prototype, \"pageIndex\", void 0);\n return FormField;\n}(ChildProperty));\nexport { FormField };\n/**\n * The `ContextMenuSettings` is used to show the context menu of PDF document.\n *\n * ```html\n *
      \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the settings of the context menu option.\n * viewer.contextMenuSettings = {\n * contextMenuAction: 'RightClick',\n * contextMenuItems: [\n * ContextMenuItem.Comment,\n * ContextMenuItem.Copy,\n * ContextMenuItem.Cut,\n * ContextMenuItem.Delete,\n * ContextMenuItem.Highlight,\n * ContextMenuItem.Paste,\n * ContextMenuItem.Properties,\n * ContextMenuItem.ScaleRatio,\n * ContextMenuItem.Strikethrough,\n * ContextMenuItem.Underline\n * ]\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar ContextMenuSettings = /** @class */ (function (_super) {\n __extends(ContextMenuSettings, _super);\n function ContextMenuSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('RightClick')\n ], ContextMenuSettings.prototype, \"contextMenuAction\", void 0);\n __decorate([\n Property([])\n ], ContextMenuSettings.prototype, \"contextMenuItems\", void 0);\n return ContextMenuSettings;\n}(ChildProperty));\nexport { ContextMenuSettings };\n/**\n * The `TextFieldSettings` is used to to show and customize the appearance of text box HTML element.\n *\n * ```html\n *
      \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the text field settings.\n * viewer.textFieldSettings = {\n * name: '',\n * value: '',\n * fontFamily: 'Courier',\n * fontSize: 10,\n * fontStyle: 'None',\n * color: 'black',\n * borderColor: 'black',\n * backgroundColor: 'white',\n * alignment: 'Right',\n * isReadOnly: false,\n * visibility: 'visible',\n * maxLength: 0,\n * isRequired: false,\n * isPrint: true,\n * tooltip: '',\n * thickness: 1,\n * isMultiline: false\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar TextFieldSettings = /** @class */ (function (_super) {\n __extends(TextFieldSettings, _super);\n function TextFieldSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0, width: 0, height: 0 })\n ], TextFieldSettings.prototype, \"bounds\", void 0);\n __decorate([\n Property('')\n ], TextFieldSettings.prototype, \"name\", void 0);\n __decorate([\n Property('')\n ], TextFieldSettings.prototype, \"value\", void 0);\n __decorate([\n Property('Helvetica')\n ], TextFieldSettings.prototype, \"fontFamily\", void 0);\n __decorate([\n Property(10)\n ], TextFieldSettings.prototype, \"fontSize\", void 0);\n __decorate([\n Property(0)\n ], TextFieldSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property('None')\n ], TextFieldSettings.prototype, \"fontStyle\", void 0);\n __decorate([\n Property('black')\n ], TextFieldSettings.prototype, \"color\", void 0);\n __decorate([\n Property('white')\n ], TextFieldSettings.prototype, \"backgroundColor\", void 0);\n __decorate([\n Property('Left')\n ], TextFieldSettings.prototype, \"alignment\", void 0);\n __decorate([\n Property(false)\n ], TextFieldSettings.prototype, \"isReadOnly\", void 0);\n __decorate([\n Property('visible')\n ], TextFieldSettings.prototype, \"visibility\", void 0);\n __decorate([\n Property(0)\n ], TextFieldSettings.prototype, \"maxLength\", void 0);\n __decorate([\n Property(false)\n ], TextFieldSettings.prototype, \"isRequired\", void 0);\n __decorate([\n Property(false)\n ], TextFieldSettings.prototype, \"isPrint\", void 0);\n __decorate([\n Property('')\n ], TextFieldSettings.prototype, \"tooltip\", void 0);\n __decorate([\n Property(1)\n ], TextFieldSettings.prototype, \"thickness\", void 0);\n __decorate([\n Property('#303030')\n ], TextFieldSettings.prototype, \"borderColor\", void 0);\n __decorate([\n Property(false)\n ], TextFieldSettings.prototype, \"isMultiline\", void 0);\n return TextFieldSettings;\n}(ChildProperty));\nexport { TextFieldSettings };\n/**\n * The `PasswordFieldSettings` is used to to show and customize the appearance of password input HTML element.\n *\n * ```html\n *
      \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the password field settings.\n * viewer.passwordFieldSettings = {\n * name: '',\n * value: '',\n * fontFamily: 'Courier',\n * fontSize: 10,\n * fontStyle: 'None',\n * color: 'black',\n * borderColor: 'black',\n * backgroundColor: 'white',\n * alignment: 'Right',\n * isReadOnly: false,\n * visibility: 'visible',\n * maxLength: 0,\n * isRequired: false,\n * isPrint: true,\n * tooltip: '',\n * thickness: 1\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar PasswordFieldSettings = /** @class */ (function (_super) {\n __extends(PasswordFieldSettings, _super);\n function PasswordFieldSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0, width: 0, height: 0 })\n ], PasswordFieldSettings.prototype, \"bounds\", void 0);\n __decorate([\n Property('')\n ], PasswordFieldSettings.prototype, \"name\", void 0);\n __decorate([\n Property('')\n ], PasswordFieldSettings.prototype, \"value\", void 0);\n __decorate([\n Property(0)\n ], PasswordFieldSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property('Helvetica')\n ], PasswordFieldSettings.prototype, \"fontFamily\", void 0);\n __decorate([\n Property(10)\n ], PasswordFieldSettings.prototype, \"fontSize\", void 0);\n __decorate([\n Property('None')\n ], PasswordFieldSettings.prototype, \"fontStyle\", void 0);\n __decorate([\n Property('black')\n ], PasswordFieldSettings.prototype, \"color\", void 0);\n __decorate([\n Property('white')\n ], PasswordFieldSettings.prototype, \"backgroundColor\", void 0);\n __decorate([\n Property('Left')\n ], PasswordFieldSettings.prototype, \"alignment\", void 0);\n __decorate([\n Property(false)\n ], PasswordFieldSettings.prototype, \"isReadOnly\", void 0);\n __decorate([\n Property('visible')\n ], PasswordFieldSettings.prototype, \"visibility\", void 0);\n __decorate([\n Property(0)\n ], PasswordFieldSettings.prototype, \"maxLength\", void 0);\n __decorate([\n Property(false)\n ], PasswordFieldSettings.prototype, \"isRequired\", void 0);\n __decorate([\n Property(false)\n ], PasswordFieldSettings.prototype, \"isPrint\", void 0);\n __decorate([\n Property('')\n ], PasswordFieldSettings.prototype, \"tooltip\", void 0);\n __decorate([\n Property(1)\n ], PasswordFieldSettings.prototype, \"thickness\", void 0);\n __decorate([\n Property('#303030')\n ], PasswordFieldSettings.prototype, \"borderColor\", void 0);\n return PasswordFieldSettings;\n}(ChildProperty));\nexport { PasswordFieldSettings };\n/**\n * The `CheckBoxFieldSettings` is used to to show and customize the appearance of check box element.\n *\n * ```html\n *
      \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the check box field settings.\n * viewer.checkBoxFieldSettings = {\n * name: '',\n * isChecked: true,\n * backgroundColor: 'white',\n * isReadOnly: false,\n * visibility: 'visible',\n * isPrint: true,\n * tooltip: '',\n * isRequired: false,\n * thickness: 5,\n * borderColor: 'black'\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar CheckBoxFieldSettings = /** @class */ (function (_super) {\n __extends(CheckBoxFieldSettings, _super);\n function CheckBoxFieldSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0, width: 0, height: 0 })\n ], CheckBoxFieldSettings.prototype, \"bounds\", void 0);\n __decorate([\n Property('')\n ], CheckBoxFieldSettings.prototype, \"name\", void 0);\n __decorate([\n Property(false)\n ], CheckBoxFieldSettings.prototype, \"isChecked\", void 0);\n __decorate([\n Property('white')\n ], CheckBoxFieldSettings.prototype, \"backgroundColor\", void 0);\n __decorate([\n Property(false)\n ], CheckBoxFieldSettings.prototype, \"isReadOnly\", void 0);\n __decorate([\n Property('visible')\n ], CheckBoxFieldSettings.prototype, \"visibility\", void 0);\n __decorate([\n Property(false)\n ], CheckBoxFieldSettings.prototype, \"isPrint\", void 0);\n __decorate([\n Property(0)\n ], CheckBoxFieldSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property('')\n ], CheckBoxFieldSettings.prototype, \"tooltip\", void 0);\n __decorate([\n Property(false)\n ], CheckBoxFieldSettings.prototype, \"isRequired\", void 0);\n __decorate([\n Property(1)\n ], CheckBoxFieldSettings.prototype, \"thickness\", void 0);\n __decorate([\n Property('#303030')\n ], CheckBoxFieldSettings.prototype, \"borderColor\", void 0);\n return CheckBoxFieldSettings;\n}(ChildProperty));\nexport { CheckBoxFieldSettings };\n/**\n * The `RadioButtonFieldSettings` is used to to show and customize the appearance of radio button element.\n *\n * ```html\n *
      \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the radio button field settings.\n * viewer.radioButtonFieldSettings = {\n * name: '',\n * isSelected: false,\n * backgroundColor: 'white',\n * isReadOnly: false,\n * visibility: 'visible',\n * isPrint: true,\n * tooltip: '',\n * isRequired: false,\n * thickness: 1,\n * borderColor: 'black'\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar RadioButtonFieldSettings = /** @class */ (function (_super) {\n __extends(RadioButtonFieldSettings, _super);\n function RadioButtonFieldSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0, width: 0, height: 0 })\n ], RadioButtonFieldSettings.prototype, \"bounds\", void 0);\n __decorate([\n Property('')\n ], RadioButtonFieldSettings.prototype, \"name\", void 0);\n __decorate([\n Property(false)\n ], RadioButtonFieldSettings.prototype, \"isSelected\", void 0);\n __decorate([\n Property('white')\n ], RadioButtonFieldSettings.prototype, \"backgroundColor\", void 0);\n __decorate([\n Property(false)\n ], RadioButtonFieldSettings.prototype, \"isReadOnly\", void 0);\n __decorate([\n Property(false)\n ], RadioButtonFieldSettings.prototype, \"isRequired\", void 0);\n __decorate([\n Property(0)\n ], RadioButtonFieldSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property('visible')\n ], RadioButtonFieldSettings.prototype, \"visibility\", void 0);\n __decorate([\n Property(false)\n ], RadioButtonFieldSettings.prototype, \"isPrint\", void 0);\n __decorate([\n Property('')\n ], RadioButtonFieldSettings.prototype, \"tooltip\", void 0);\n __decorate([\n Property(1)\n ], RadioButtonFieldSettings.prototype, \"thickness\", void 0);\n __decorate([\n Property('#303030')\n ], RadioButtonFieldSettings.prototype, \"borderColor\", void 0);\n return RadioButtonFieldSettings;\n}(ChildProperty));\nexport { RadioButtonFieldSettings };\n/**\n * The `DropdownFieldSettings` is used to to show and customize the appearance of drop down element.\n *\n * ```html\n *
      \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the drop down field settings.\n * viewer.DropdownFieldSettings = {\n * name: '',\n * isSelected: false,\n * backgroundColor: 'white',\n * isReadOnly: true,\n * visibility: 'visible',\n * isPrint: true,\n * tooltip: '',\n * isRequired: false,\n * thickness: 5,\n * borderColor: 'blue'\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar DropdownFieldSettings = /** @class */ (function (_super) {\n __extends(DropdownFieldSettings, _super);\n function DropdownFieldSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0, width: 0, height: 0 })\n ], DropdownFieldSettings.prototype, \"bounds\", void 0);\n __decorate([\n Property('')\n ], DropdownFieldSettings.prototype, \"name\", void 0);\n __decorate([\n Property('')\n ], DropdownFieldSettings.prototype, \"value\", void 0);\n __decorate([\n Property('Helvetica')\n ], DropdownFieldSettings.prototype, \"fontFamily\", void 0);\n __decorate([\n Property(10)\n ], DropdownFieldSettings.prototype, \"fontSize\", void 0);\n __decorate([\n Property(0)\n ], DropdownFieldSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property('None')\n ], DropdownFieldSettings.prototype, \"fontStyle\", void 0);\n __decorate([\n Property('black')\n ], DropdownFieldSettings.prototype, \"color\", void 0);\n __decorate([\n Property('white')\n ], DropdownFieldSettings.prototype, \"backgroundColor\", void 0);\n __decorate([\n Property('Left')\n ], DropdownFieldSettings.prototype, \"alignment\", void 0);\n __decorate([\n Property(false)\n ], DropdownFieldSettings.prototype, \"isReadOnly\", void 0);\n __decorate([\n Property('visible')\n ], DropdownFieldSettings.prototype, \"visibility\", void 0);\n __decorate([\n Property(false)\n ], DropdownFieldSettings.prototype, \"isRequired\", void 0);\n __decorate([\n Property(false)\n ], DropdownFieldSettings.prototype, \"isPrint\", void 0);\n __decorate([\n Property('')\n ], DropdownFieldSettings.prototype, \"tooltip\", void 0);\n __decorate([\n Property('')\n ], DropdownFieldSettings.prototype, \"options\", void 0);\n __decorate([\n Property(1)\n ], DropdownFieldSettings.prototype, \"thickness\", void 0);\n __decorate([\n Property('#303030')\n ], DropdownFieldSettings.prototype, \"borderColor\", void 0);\n return DropdownFieldSettings;\n}(ChildProperty));\nexport { DropdownFieldSettings };\n/**\n * The `ListBoxFieldSettings` is used to to show and customize the appearance of list box element.\n *\n * ```html\n *
      \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the list box field settings.\n * viewer.listBoxFieldSettings = {\n * name: '',\n * fontFamily: 'Courier',\n * fontSize: 5,\n * fontStyle: 'None',\n * color: 'black',\n * backgroundColor: 'white',\n * alignment: 'Right',\n * isReadOnly: false,\n * visibility: 'visible',\n * isRequired: false,\n * isPrint: false,\n * tooltip: '',\n * options: [],\n * thickness: 1,\n * borderColor: 'black'\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar ListBoxFieldSettings = /** @class */ (function (_super) {\n __extends(ListBoxFieldSettings, _super);\n function ListBoxFieldSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0, width: 0, height: 0 })\n ], ListBoxFieldSettings.prototype, \"bounds\", void 0);\n __decorate([\n Property('')\n ], ListBoxFieldSettings.prototype, \"name\", void 0);\n __decorate([\n Property('')\n ], ListBoxFieldSettings.prototype, \"value\", void 0);\n __decorate([\n Property('Helvetica')\n ], ListBoxFieldSettings.prototype, \"fontFamily\", void 0);\n __decorate([\n Property(10)\n ], ListBoxFieldSettings.prototype, \"fontSize\", void 0);\n __decorate([\n Property(0)\n ], ListBoxFieldSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property('None')\n ], ListBoxFieldSettings.prototype, \"fontStyle\", void 0);\n __decorate([\n Property('black')\n ], ListBoxFieldSettings.prototype, \"color\", void 0);\n __decorate([\n Property('white')\n ], ListBoxFieldSettings.prototype, \"backgroundColor\", void 0);\n __decorate([\n Property('Left')\n ], ListBoxFieldSettings.prototype, \"alignment\", void 0);\n __decorate([\n Property(false)\n ], ListBoxFieldSettings.prototype, \"isReadOnly\", void 0);\n __decorate([\n Property('visible')\n ], ListBoxFieldSettings.prototype, \"visibility\", void 0);\n __decorate([\n Property(false)\n ], ListBoxFieldSettings.prototype, \"isRequired\", void 0);\n __decorate([\n Property(false)\n ], ListBoxFieldSettings.prototype, \"isPrint\", void 0);\n __decorate([\n Property('')\n ], ListBoxFieldSettings.prototype, \"tooltip\", void 0);\n __decorate([\n Property([])\n ], ListBoxFieldSettings.prototype, \"options\", void 0);\n __decorate([\n Property(1)\n ], ListBoxFieldSettings.prototype, \"thickness\", void 0);\n __decorate([\n Property('#303030')\n ], ListBoxFieldSettings.prototype, \"borderColor\", void 0);\n return ListBoxFieldSettings;\n}(ChildProperty));\nexport { ListBoxFieldSettings };\nvar Item = /** @class */ (function (_super) {\n __extends(Item, _super);\n function Item() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], Item.prototype, \"itemName\", void 0);\n __decorate([\n Property('')\n ], Item.prototype, \"itemValue\", void 0);\n return Item;\n}(ChildProperty));\nexport { Item };\n/**\n * Represents the PDF viewer component.\n * ```html\n *
      \n * \n * ```\n */\nvar PdfViewer = /** @class */ (function (_super) {\n __extends(PdfViewer, _super);\n function PdfViewer(options, element) {\n var _this = _super.call(this, options, element) || this;\n /**\n * Get the Loaded document signature Collections in the PdfViewer control.\n *\n * {% codeBlock src='pdfviewer/signatureCollection/index.md' %}{% endcodeBlock %}\n *\n */\n // eslint-disable-next-line\n _this.signatureCollection = [];\n /**\n * Gets or sets the document name loaded in the PdfViewer control.\n *\n * {% codeBlock src='pdfviewer/fileName/index.md' %}{% endcodeBlock %}\n *\n */\n _this.fileName = null;\n /**\n * @private\n */\n _this.zIndex = -1;\n /**\n * @private\n */\n _this.nameTable = {};\n /** @private */\n _this.clipboardData = {};\n /**\n * @private\n */\n _this.zIndexTable = [];\n _this.isTextSelectionStarted = false;\n /**\n * @private\n */\n _this.touchPadding = 10;\n /**\n * @private\n */\n _this.paddingDifferenceValue = 10;\n /** @hidden */\n _this.defaultLocale = {\n 'PdfViewer': 'PDF Viewer',\n 'Cancel': 'Cancel',\n 'Download file': 'Download file',\n 'Download': 'Download',\n 'Enter Password': 'This document is password protected. Please enter a password.',\n 'File Corrupted': 'File Corrupted',\n 'File Corrupted Content': 'The file is corrupted and cannot be opened.',\n 'Fit Page': 'Fit Page',\n 'Fit Width': 'Fit Width',\n 'Automatic': 'Automatic',\n 'Go To First Page': 'Show first page',\n 'Invalid Password': 'Incorrect Password. Please try again.',\n 'Next Page': 'Show next page',\n 'OK': 'OK',\n 'Open': 'Open file',\n 'Page Number': 'Current page number',\n 'Previous Page': 'Show previous page',\n 'Go To Last Page': 'Show last page',\n 'Zoom': 'Zoom',\n 'Zoom In': 'Zoom in',\n 'Zoom Out': 'Zoom out',\n 'Page Thumbnails': 'Page thumbnails',\n 'Bookmarks': 'Bookmarks',\n 'Print': 'Print file',\n 'Password Protected': 'Password Required',\n 'Copy': 'Copy',\n 'Text Selection': 'Text selection tool',\n 'Panning': 'Pan mode',\n 'Text Search': 'Find text',\n 'Find in document': 'Find in document',\n 'Match case': 'Match case',\n 'Apply': 'Apply',\n 'GoToPage': 'Go to Page',\n // eslint-disable-next-line max-len\n 'No matches': 'Viewer has finished searching the document. No more matches were found',\n 'No Text Found': 'No Text Found',\n 'Undo': 'Undo',\n 'Redo': 'Redo',\n 'Annotation': 'Add or Edit annotations',\n 'FormDesigner': 'Add and Edit Form Fields',\n 'Highlight': 'Highlight Text',\n 'Underline': 'Underline Text',\n 'Strikethrough': 'Strikethrough Text',\n 'Delete': 'Delete annotation',\n 'Opacity': 'Opacity',\n 'Color edit': 'Change Color',\n 'Opacity edit': 'Change Opacity',\n 'Highlight context': 'Highlight',\n 'Underline context': 'Underline',\n 'Strikethrough context': 'Strikethrough',\n // eslint-disable-next-line max-len\n 'Server error': 'Web-service is not listening. PDF Viewer depends on web-service for all it\\'s features. Please start the web service to continue.',\n // eslint-disable-next-line max-len\n 'Client error': 'Client-side error is found. Please check the custom headers provided in the AjaxRequestSettings property and web action methods in the ServerActionSettings property.',\n 'Open text': 'Open',\n 'First text': 'First Page',\n 'Previous text': 'Previous Page',\n 'Next text': 'Next Page',\n 'Last text': 'Last Page',\n 'Zoom in text': 'Zoom In',\n 'Zoom out text': 'Zoom Out',\n 'Selection text': 'Selection',\n 'Pan text': 'Pan',\n 'Print text': 'Print',\n 'Search text': 'Search',\n 'Annotation Edit text': 'Edit Annotation',\n 'FormDesigner Edit text': 'Add and Edit Form Fields',\n 'Line Thickness': 'Line Thickness',\n 'Line Properties': 'Line Properties',\n 'Start Arrow': 'Start Arrow',\n 'End Arrow': 'End Arrow',\n 'Line Style': 'Line Style',\n 'Fill Color': 'Fill Color',\n 'Line Color': 'Line Color',\n 'None': 'None',\n 'Open Arrow': 'Open',\n 'Closed Arrow': 'Closed',\n 'Round Arrow': 'Round',\n 'Square Arrow': 'Square',\n 'Diamond Arrow': 'Diamond',\n 'Butt': 'Butt',\n 'Cut': 'Cut',\n 'Paste': 'Paste',\n 'Delete Context': 'Delete',\n 'Properties': 'Properties',\n 'Add Stamp': 'Add Stamp',\n 'Add Shapes': 'Add Shapes',\n 'Stroke edit': 'Change Stroke Color',\n 'Change thickness': 'Change Border Thickness',\n 'Add line': 'Add Line',\n 'Add arrow': 'Add Arrow',\n 'Add rectangle': 'Add Rectangle',\n 'Add circle': 'Add Circle',\n 'Add polygon': 'Add Polygon',\n 'Add Comments': 'Add Comments',\n 'Comments': 'Comments',\n 'SubmitForm': 'Submit Form',\n 'No Comments Yet': 'No Comments Yet',\n 'Accepted': 'Accepted',\n 'Completed': 'Completed',\n 'Cancelled': 'Cancelled',\n 'Rejected': 'Rejected',\n 'Leader Length': 'Leader Length',\n 'Scale Ratio': 'Scale Ratio',\n 'Calibrate': 'Calibrate',\n 'Calibrate Distance': 'Calibrate Distance',\n 'Calibrate Perimeter': 'Calibrate Perimeter',\n 'Calibrate Area': 'Calibrate Area',\n 'Calibrate Radius': 'Calibrate Radius',\n 'Calibrate Volume': 'Calibrate Volume',\n 'Depth': 'Depth',\n 'Closed': 'Closed',\n 'Round': 'Round',\n 'Square': 'Square',\n 'Diamond': 'Diamond',\n 'Edit': 'Edit',\n 'Comment': 'Comment',\n 'Comment Panel': 'Comment Panel',\n 'Set Status': 'Set Status',\n 'Post': 'Post',\n 'Page': 'Page',\n 'Add a comment': 'Add a comment',\n 'Add a reply': 'Add a reply',\n 'Import Annotations': 'Import annotations from JSON file',\n 'Export Annotations': 'Export annotation to JSON file',\n 'Export XFDF': 'Export annotation to XFDF file',\n 'Import XFDF': 'Import annotations from XFDF file',\n 'Add': 'Add',\n 'Clear': 'Clear',\n 'Bold': 'Bold',\n 'Italic': 'Italic',\n 'Strikethroughs': 'Strikethrough',\n 'Underlines': 'Underline',\n 'Superscript': 'Superscript',\n 'Subscript': 'Subscript',\n 'Align left': 'Align Left',\n 'Align right': 'Align Right',\n 'Center': 'Center',\n 'Justify': 'Justify',\n 'Font color': 'Font Color',\n 'Text Align': 'Text Align',\n 'Text Properties': 'Font Style',\n 'SignatureFieldDialogHeaderText': 'Add Signature',\n 'HandwrittenSignatureDialogHeaderText': 'Add Signature',\n 'InitialFieldDialogHeaderText': 'Add Initial',\n 'HandwrittenInitialDialogHeaderText': 'Add Initial',\n 'Draw Ink': 'Draw Ink',\n 'Create': 'Create',\n 'Font family': 'Font Family',\n 'Font size': 'Font Size',\n 'Free Text': 'Free Text',\n 'Import Failed': 'Invalid JSON file type or file name; please select a valid JSON file',\n 'Import PDF Failed': 'Invalid PDF file type or PDF file not found. Please select a valid PDF file',\n 'File not found': 'Imported JSON file is not found in the desired location',\n 'Export Failed': 'Export annotations action has failed; please ensure annotations are added properly',\n 'of': 'of ',\n 'Dynamic': 'Dynamic',\n 'Standard Business': 'Standard Business',\n 'Sign Here': 'Sign Here',\n 'Custom Stamp': 'Custom Stamp',\n 'Enter Signature as Name': 'Enter your name',\n 'Draw-hand Signature': 'DRAW',\n 'Type Signature': 'TYPE',\n 'Upload Signature': 'UPLOAD',\n 'Browse Signature Image': 'BROWSE',\n 'Save Signature': 'Save Signature',\n 'Save Initial': 'Save Initial',\n 'Textbox': 'Textbox',\n 'Password': 'Password',\n 'Check Box': 'Checkbox',\n 'Radio Button': 'Radio Button',\n 'Dropdown': 'Drop Down',\n 'List Box': 'List Box',\n 'Signature': 'Signature',\n 'Delete FormField': 'Delete Form Field',\n 'Textbox Properties': 'Textbox Properties',\n 'Name': 'Name',\n 'Tooltip': 'Tooltip',\n 'Value': 'Value',\n 'Form Field Visibility': 'Form Field Visibility',\n 'Read Only': 'Read Only',\n 'Required': 'Required',\n 'Checked': 'Checked',\n 'Show Printing': 'Show Printing',\n 'Formatting': 'Format',\n 'Fill': 'Fill',\n 'Border': 'Border',\n 'Border Color': 'Border Color',\n 'Thickness': 'Thickness',\n 'Max Length': 'Max Length',\n 'List Item': 'Item Name',\n 'Export Value': 'Item Value',\n 'Dropdown Item List': 'Dropdown Item List',\n 'List Box Item List': 'List Box Item List',\n 'General': 'GENERAL',\n 'Appearance': 'APPEARANCE',\n 'Options': 'OPTIONS',\n 'Delete Item': 'Delete',\n 'Up': 'Up',\n 'Down': 'Down',\n 'Multiline': 'Multiline',\n 'Revised': 'Revised',\n 'Reviewed': 'Reviewed',\n 'Received': 'Received',\n 'Confidential': 'Confidential',\n 'Approved': 'Approved',\n 'Not Approved': 'Not Approved',\n 'Witness': 'Witness',\n 'Initial Here': 'Initial Here',\n 'Draft': 'Draft',\n 'Final': 'Final',\n 'For Public Release': 'For Public Release',\n 'Not For Public Release': 'Not For Public Release',\n 'For Comment': 'For Comment',\n 'Void': 'Void',\n 'Preliminary Results': 'Preliminary Results',\n 'Information Only': 'Information Only',\n 'in': 'in',\n 'm': 'm',\n 'ft_in': 'ft_in',\n 'ft': 'ft',\n 'p': 'p',\n 'cm': 'cm',\n 'mm': 'mm',\n 'pt': 'pt',\n 'cu': 'cu',\n 'sq': 'sq',\n 'Initial': 'Initial'\n };\n _this.viewerBase = new PdfViewerBase(_this);\n _this.drawing = new Drawing(_this);\n return _this;\n }\n Object.defineProperty(PdfViewer.prototype, \"zoomPercentage\", {\n /**\n * Returns the current zoom percentage of the PdfViewer control.\n *\n * @asptype int\n * @blazorType int\n */\n get: function () {\n return this.magnificationModule.zoomFactor * 100;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfViewer.prototype, \"bookmark\", {\n /**\n * Gets the bookmark view object of the pdf viewer.\n *\n * @asptype BookmarkView\n * @blazorType BookmarkView\n * @returns { BookmarkView }\n */\n get: function () {\n return this.bookmarkViewModule;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfViewer.prototype, \"print\", {\n /**\n * Gets the print object of the pdf viewer.\n *\n * @asptype Print\n * @blazorType Print\n * @returns { Print }\n */\n get: function () {\n return this.printModule;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfViewer.prototype, \"magnification\", {\n /**\n * Gets the magnification object of the pdf viewer.\n *\n * @asptype Magnification\n * @blazorType Magnification\n * @returns { Magnification }\n */\n get: function () {\n return this.magnificationModule;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfViewer.prototype, \"navigation\", {\n /**\n * Gets the navigation object of the pdf viewer.\n *\n * @asptype Navigation\n * @blazorType Navigation\n * @returns { Navigation }\n */\n get: function () {\n return this.navigationModule;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfViewer.prototype, \"textSearch\", {\n /**\n * Gets the text search object of the pdf viewer.\n *\n * @asptype TextSearch\n * @blazorType TextSearch\n * @returns { TextSearch }\n */\n get: function () {\n return this.textSearchModule;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfViewer.prototype, \"toolbar\", {\n /**\n * Gets the toolbar object of the pdf viewer.\n *\n * @asptype Toolbar\n * @blazorType Toolbar\n * @returns { Toolbar }\n */\n get: function () {\n return this.toolbarModule;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfViewer.prototype, \"thumbnailView\", {\n /**\n * Gets the thumbnail-view object of the pdf viewer.\n *\n * @asptype ThumbnailView\n * @blazorType ThumbnailView\n * @returns { ThumbnailView }\n */\n get: function () {\n return this.thumbnailViewModule;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfViewer.prototype, \"annotation\", {\n /**\n * Gets the annotation object of the pdf viewer.\n *\n * @asptype Annotation\n * @blazorType Annotation\n * @returns { Annotation }\n */\n get: function () {\n return this.annotationModule;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfViewer.prototype, \"formDesigner\", {\n /**\n * Gets the FormDesigner object of the pdf viewer.\n *\n * @asptype FormDesigner\n * @blazorType FormDesigner\n * @returns { FormDesigner }\n */\n get: function () {\n return this.formDesignerModule;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfViewer.prototype, \"textSelection\", {\n /**\n * Gets the TextSelection object of the pdf viewer.\n *\n * @asptype TextSelection\n * @blazorType TextSelection\n * @returns { TextSelection }\n */\n get: function () {\n return this.textSelectionModule;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfViewer.prototype, \"accessibilityTags\", {\n /**\n * Gets the Accessibility Tags object of the pdf viewer.\n *\n * @asptype AccessibilityTags\n * @blazorType AccessibilityTags\n * @returns { AccessibilityTags }\n */\n get: function () {\n return this.accessibilityTagsModule;\n },\n enumerable: true,\n configurable: true\n });\n PdfViewer.prototype.preRender = function () {\n this.localeObj = new L10n(this.getModuleName(), this.defaultLocale, this.locale);\n if (!isNullOrUndefined(this.element) && this.element.id == \"\") {\n //Set unique id, if id is empty\n this.element.id = this.getUniqueElementId();\n }\n if (Browser.isDevice) {\n //EJ2-63562 - Reduced the touchPadding of mobile devices to 16 to improve selection of fields without affecting resizing ability.\n this.touchPadding = 16;\n }\n };\n PdfViewer.prototype.getUniqueElementId = function () {\n return 'pdfViewer_' + Date.now().toString(36) + Math.random().toString(36).substring(2);\n };\n PdfViewer.prototype.render = function () {\n this.viewerBase.initializeComponent();\n if (!this.enableFormFields) {\n this.formFieldsModule = new FormFields(this, this.viewerBase);\n this.formFieldsModule.formFieldsReadOnly(this.enableFormFields);\n }\n if (this.enableTextSelection && this.textSelectionModule) {\n this.textSelectionModule.enableTextSelectionMode();\n }\n else {\n this.viewerBase.disableTextSelectionMode();\n }\n this.drawing.renderLabels(this);\n this.renderComplete();\n };\n PdfViewer.prototype.getModuleName = function () {\n return 'PdfViewer';\n };\n /**\n * @private\n */\n PdfViewer.prototype.getLocaleConstants = function () {\n return this.defaultLocale;\n };\n /**\n * To modify the Json Data in ajax request.\n *\n * @param jsonData\n * @returns void\n */\n // eslint-disable-next-line\n PdfViewer.prototype.setJsonData = function (jsonData) {\n this.viewerBase.ajaxData = jsonData;\n };\n PdfViewer.prototype.onPropertyChanged = function (newProp, oldProp) {\n var requireRefresh = false;\n if (this.isDestroyed) {\n return;\n }\n var properties = Object.keys(newProp);\n for (var _i = 0, properties_1 = properties; _i < properties_1.length; _i++) {\n var prop = properties_1[_i];\n switch (prop) {\n case 'locale':\n if (this.viewerBase.loadedData) {\n // eslint-disable-next-line\n var data = null;\n if (this.formFieldsModule) {\n data = this.viewerBase.getItemFromSessionStorage('_formfields');\n }\n if (data) {\n this.viewerBase.formfieldvalue = JSON.parse(data);\n // eslint-disable-next-line\n var annotCollection = this.annotationCollection;\n var filename = this.viewerBase.jsonDocumentId;\n _super.prototype.refresh.call(this);\n this.load(this.viewerBase.loadedData, null);\n this.addAnnotation(annotCollection);\n this.viewerBase.loadedData = null;\n this.downloadFileName = filename;\n this.fileName = filename;\n }\n }\n break;\n case 'toolbarSettings':\n if (!Browser.isDevice || this.enableDesktopMode) {\n this.toolbar.applyToolbarSettings();\n this.toolbar.annotationToolbarModule.applyAnnotationToolbarSettings();\n this.toolbar.formDesignerToolbarModule.applyFormDesignerToolbarSettings();\n }\n else {\n this.toolbar.applyToolbarSettingsForMobile();\n this.toolbar.annotationToolbarModule.applyMobileAnnotationToolbarSettings();\n }\n break;\n case 'enableToolbar':\n this.notify('', { module: 'toolbar', enable: this.enableToolbar });\n requireRefresh = true;\n break;\n case 'enableCommentPanel':\n this.notify('', { module: 'annotation', enable: this.enableCommentPanel });\n requireRefresh = true;\n if (this.toolbarModule && this.toolbarModule.annotationToolbarModule) {\n this.toolbarModule.annotationToolbarModule.enableCommentPanelTool(this.enableCommentPanel);\n }\n if (!this.enableCommentPanel) {\n if (this.viewerBase.navigationPane) {\n this.viewerBase.navigationPane.closeCommentPanelContainer();\n }\n }\n break;\n case 'documentPath':\n if (!isBlazor()) {\n this.load(newProp.documentPath, null);\n }\n else {\n this._dotnetInstance.invokeMethodAsync('LoadDocumentFromClient', newProp.documentPath);\n }\n break;\n case 'interactionMode':\n this.interactionMode = newProp.interactionMode;\n if (newProp.interactionMode === 'Pan') {\n this.viewerBase.initiatePanning();\n if (this.toolbar) {\n this.toolbar.updateInteractionTools(false);\n }\n }\n else if (newProp.interactionMode === 'TextSelection') {\n this.viewerBase.initiateTextSelectMode();\n if (this.toolbar) {\n this.toolbar.updateInteractionTools(true);\n }\n }\n break;\n case 'height':\n this.height = newProp.height;\n this.viewerBase.updateHeight();\n this.viewerBase.onWindowResize();\n if (this.toolbar && this.toolbar.annotationToolbarModule) {\n if (this.toolbar.annotationToolbarModule.isToolbarHidden) {\n this.toolbar.annotationToolbarModule.adjustViewer(false);\n }\n else {\n this.toolbar.annotationToolbarModule.adjustViewer(true);\n }\n }\n break;\n case 'width':\n this.width = newProp.width;\n this.viewerBase.updateWidth();\n this.viewerBase.onWindowResize();\n break;\n case 'customStamp':\n this.renderCustomerStamp(this.customStamp[0]);\n break;\n case 'customStampSettings':\n if (newProp.customStampSettings.customStamps) {\n this.renderCustomerStamp(this.customStampSettings.customStamps[0]);\n }\n break;\n case 'enableFormFields':\n if (this.enableFormFields && this.formFieldsModule) {\n for (var m = 0; m < this.pageCount; m++) {\n this.formFieldsModule.renderFormFields(m, false);\n }\n }\n else {\n this.formFieldsModule = new FormFields(this, this.viewerBase);\n this.formFieldsModule.formFieldsReadOnly(this.enableFormFields);\n }\n break;\n case 'designerMode':\n if (this.designerMode) {\n this.formDesignerModule.setMode('designer');\n }\n else {\n this.formDesignerModule.setMode('edit');\n }\n break;\n case 'highlightSettings':\n case 'underlineSettings':\n case 'strikethroughSettings':\n if (this.annotationModule && this.annotationModule.textMarkupAnnotationModule) {\n this.annotationModule.textMarkupAnnotationModule.updateTextMarkupSettings(prop);\n }\n break;\n case 'signatureFieldSettings':\n case 'initialFieldSettings':\n if (this.formDesignerModule) {\n var isInitialField = (prop === \"initialFieldSettings\");\n this.formDesignerModule.updateSignatureSettings(newProp[prop], isInitialField);\n }\n break;\n case 'textFieldSettings':\n if (this.formDesignerModule) {\n this.formDesignerModule.updateTextFieldSettings(newProp[prop]);\n }\n break;\n case 'passwordFieldSettings':\n if (this.formDesignerModule) {\n this.formDesignerModule.updatePasswordFieldSettings(newProp[prop]);\n }\n break;\n case 'checkBoxFieldSettings':\n if (this.formDesignerModule) {\n this.formDesignerModule.updateCheckBoxFieldSettings(newProp[prop]);\n }\n break;\n case 'radioButtonFieldSettings':\n if (this.formDesignerModule) {\n this.formDesignerModule.updateRadioButtonFieldSettings(newProp[prop]);\n }\n break;\n case 'DropdownFieldSettings':\n if (this.formDesignerModule) {\n this.formDesignerModule.updateDropDownFieldSettings(newProp[prop]);\n }\n break;\n case 'listBoxFieldSettings':\n if (this.formDesignerModule) {\n this.formDesignerModule.updateListBoxFieldSettings(newProp[prop]);\n }\n break;\n case 'isFormDesignerToolbarVisible':\n if (!Browser.isDevice || this.enableDesktopMode) {\n if (this.toolbarModule && this.formDesignerModule && !oldProp.isFormDesignerToolbarVisible && newProp.isFormDesignerToolbarVisible) {\n if (this.toolbarModule.annotationToolbarModule && this.isAnnotationToolbarVisible) {\n this.isAnnotationToolbarVisible = false;\n this.toolbarModule.annotationToolbarModule.showAnnotationToolbar();\n }\n this.toolbarModule.formDesignerToolbarModule.resetFormDesignerToolbar();\n }\n else {\n if (!isNullOrUndefined(this.toolbarModule) && !isNullOrUndefined(this.formDesignerModule) && this.toolbarModule.formDesignerToolbarModule && !this.isFormDesignerToolbarVisible && !this.isAnnotationToolbarVisible) {\n this.isFormDesignerToolbarVisible = false;\n this.formDesignerModule.setMode('edit');\n this.toolbarModule.formDesignerToolbarModule.resetFormDesignerToolbar();\n }\n }\n }\n break;\n case 'isAnnotationToolbarVisible':\n if (!Browser.isDevice || this.enableDesktopMode) {\n if (this.toolbarModule && this.annotationModule && !oldProp.isAnnotationToolbarVisible && newProp.isAnnotationToolbarVisible) {\n if (this.toolbarModule.formDesignerToolbarModule && this.isFormDesignerToolbarVisible) {\n this.isFormDesignerToolbarVisible = false;\n this.toolbarModule.formDesignerToolbarModule.showFormDesignerToolbar();\n }\n this.toolbarModule.annotationToolbarModule.resetToolbar();\n }\n }\n break;\n }\n }\n };\n // eslint-disable-next-line\n PdfViewer.prototype.renderCustomerStamp = function (customStamp) {\n this.annotation.stampAnnotationModule.isStampAddMode = true;\n this.annotationModule.stampAnnotationModule.isStampAnnotSelected = true;\n this.viewerBase.stampAdded = true;\n this.viewerBase.isAlreadyAdded = false;\n // eslint-disable-next-line max-len\n this.annotation.stampAnnotationModule.createCustomStampAnnotation(customStamp.customStampImageSource, customStamp.customStampName);\n };\n PdfViewer.prototype.getPersistData = function () {\n return 'PdfViewer';\n };\n PdfViewer.prototype.requiredModules = function () {\n var modules = [];\n if (this.enableMagnification) {\n modules.push({\n member: 'Magnification', args: [this, this.viewerBase]\n });\n }\n if (this.enableNavigation) {\n modules.push({\n member: 'Navigation', args: [this, this.viewerBase]\n });\n }\n if (this.enableToolbar || this.enableNavigationToolbar || this.enableAnnotationToolbar || this.enableFormDesignerToolbar) {\n modules.push({\n member: 'Toolbar', args: [this, this.viewerBase]\n });\n }\n if (this.enableHyperlink) {\n modules.push({\n member: 'LinkAnnotation', args: [this, this.viewerBase]\n });\n }\n if (this.enableThumbnail) {\n modules.push({\n member: 'ThumbnailView', args: [this, this.viewerBase]\n });\n }\n if (this.enableBookmark) {\n modules.push({\n member: 'BookmarkView', args: [this, this.viewerBase]\n });\n }\n if (this.enableTextSelection) {\n modules.push({\n member: 'TextSelection', args: [this, this.viewerBase]\n });\n }\n if (this.enableTextSearch) {\n modules.push({\n member: 'TextSearch', args: [this, this.viewerBase]\n });\n }\n if (this.enablePrint) {\n modules.push({\n member: 'Print', args: [this, this.viewerBase]\n });\n }\n if (this.enableAnnotation) {\n modules.push({\n member: 'Annotation', args: [this, this.viewerBase]\n });\n }\n if (this.enableFormFields) {\n modules.push({\n member: 'FormFields', args: [this, this.viewerBase]\n });\n }\n if (this.enableFormDesigner && !isBlazor()) {\n modules.push({\n member: 'FormDesigner', args: [this, this.viewerBase]\n });\n }\n modules.push({\n member: 'AccessibilityTags', args: [this, this.viewerBase]\n });\n return modules;\n };\n /**\n * Loads the given PDF document in the PDF viewer control\n *\n * @param {string} document - Specifies the document name for load\n * @param {string} password - Specifies the Given document password\n * @returns void\n */\n PdfViewer.prototype.load = function (document, password) {\n if (this.pageCount !== 0) {\n this.viewerBase.clear(true);\n }\n else {\n this.viewerBase.clear(false);\n }\n this.pageCount = 0;\n this.currentPageNumber = 0;\n if (!isBlazor()) {\n if (this.toolbarModule) {\n this.toolbarModule.resetToolbar();\n }\n }\n else {\n this.viewerBase.blazorUIAdaptor.resetToolbar();\n }\n this.viewerBase.initiatePageRender(document, password);\n };\n /**\n * Loads the given PDF document in the PDF viewer control\n * @private\n */\n PdfViewer.prototype.loadDocument = function (documentId, isFileName, fileName) {\n if (this.pageCount !== 0) {\n this.viewerBase.clear(true);\n }\n else {\n this.viewerBase.clear(false);\n }\n this.pageCount = 0;\n this.currentPageNumber = 0;\n this.viewerBase.blazorUIAdaptor.resetToolbar();\n this.fileName = fileName;\n this.viewerBase.initiateLoadDocument(documentId, isFileName, fileName);\n };\n /**\n * Loads the PDF document with the document details in the PDF viewer control\n * @private\n */\n PdfViewer.prototype.loadSuccess = function (documentDetails, password) {\n this.viewerBase.loadSuccess(documentDetails, password);\n };\n /**\n * Set the focus of the given element\n * @private\n */\n PdfViewer.prototype.focusElement = function (elementId) {\n var element = document.getElementById(elementId);\n if (element != null) {\n element.focus();\n }\n };\n /**\n * Downloads the PDF document being loaded in the ejPdfViewer control.\n *\n * @returns void\n */\n PdfViewer.prototype.download = function () {\n if (this.enableDownload) {\n this.viewerBase.download();\n }\n };\n /**\n * Saves the PDF document being loaded in the PDF Viewer control as blob.\n *\n * @returns Promise\n */\n PdfViewer.prototype.saveAsBlob = function () {\n var _this = this;\n if (this.enableDownload) {\n return new Promise(function (resolve, reject) {\n resolve(_this.viewerBase.saveAsBlob());\n });\n }\n else {\n return null;\n }\n };\n /**\n * updates the PDF Viewer container width and height from externally.\n *\n * @returns void\n */\n PdfViewer.prototype.updateViewerContainer = function () {\n this.viewerBase.updateViewerContainer();\n };\n /**\n * Specifies the message to be displayed in the popup.\n *\n * @param errorString\n * @returns void\n */\n PdfViewer.prototype.showNotificationPopup = function (errorString) {\n this.viewerBase.showNotificationPopup(errorString);\n };\n /**\n * Focus a form field in a document by its field name or the field object.\n *\n * @param field\n * @returns void\n */\n PdfViewer.prototype.focusFormField = function (field) {\n var _this = this;\n if (typeof (field) === \"string\") {\n var fieldCollections = this.retrieveFormFields();\n for (var i = 0; i < fieldCollections.length; i++) {\n if (fieldCollections[i].name === field) {\n field = fieldCollections[i];\n }\n }\n }\n if (field) {\n this.viewerBase.isFocusField = true;\n this.viewerBase.focusField = field;\n if (this.formDesignerModule) {\n this.navigationModule.goToPage(field.pageIndex + 1);\n }\n else {\n var pageIndex = parseFloat(field.id.split('_')[1]);\n this.navigationModule.goToPage(pageIndex + 1);\n }\n setTimeout(function () {\n var currentField = document.getElementById(field.id);\n if (_this.formDesignerModule && field.type === \"Checkbox\") {\n currentField = document.getElementById(field.id + \"_input\");\n }\n if (currentField) {\n if (_this.formDesignerModule && (field.type === \"SignatureField\" || field.type === \"InitialField\")) {\n currentField.parentElement.focus();\n }\n else {\n currentField.focus();\n _this.viewerBase.isFocusField = false;\n _this.viewerBase.focusField = [];\n }\n }\n }, 100);\n }\n };\n /**\n * Update the form field values from externally.\n *\n * @param fieldValue\n * @returns void\n */\n // eslint-disable-next-line\n PdfViewer.prototype.updateFormFieldsValue = function (fieldValue) {\n // eslint-disable-next-line\n var target = document.getElementById(fieldValue.id);\n var isformDesignerModuleListBox = false;\n if (target) {\n target = target ? target : document.getElementById(fieldValue.id + '_content_html_element').children[0].children[0];\n if (target && fieldValue.type === 'Textbox' || fieldValue.type === 'Password' || fieldValue.type === 'PasswordField') {\n target.value = fieldValue.value;\n }\n else if (fieldValue.type === 'Checkbox' || fieldValue.type === 'RadioButton' || fieldValue.type === 'CheckBox') {\n if (fieldValue.type === 'CheckBox') {\n target.style.appearance = 'auto';\n }\n if (this.formDesignerModule) {\n if (fieldValue.type === 'RadioButton') {\n var radioButtonOption = { isSelected: fieldValue.isSelected };\n this.formDesignerModule.updateFormField(fieldValue, radioButtonOption);\n }\n else {\n var checkBoxOption = { isChecked: fieldValue.isChecked };\n this.formDesignerModule.updateFormField(fieldValue, checkBoxOption);\n }\n }\n else {\n if (fieldValue.type === 'RadioButton') {\n target.selected = fieldValue.isSelected;\n }\n else {\n target.checked = fieldValue.isChecked;\n }\n }\n }\n else if (fieldValue.type === 'DropDown' || fieldValue.type === 'ListBox' || fieldValue.type === 'DropdownList') {\n if (this.formDesignerModule) {\n isformDesignerModuleListBox = true;\n var dropDownListOption = { options: fieldValue.value };\n this.formDesignerModule.updateFormField(fieldValue, dropDownListOption);\n }\n else {\n target.value = fieldValue.value;\n }\n }\n if (fieldValue.type === 'SignatureField' || fieldValue.type === 'InitialField') {\n if (fieldValue.signatureType || fieldValue.initialType) {\n if (typeof fieldValue.signatureType === 'string') {\n fieldValue.signatureType = fieldValue.signatureType;\n }\n else {\n fieldValue.signatureType = fieldValue.initialType;\n }\n }\n fieldValue.fontName = fieldValue.fontName ? fieldValue.fontName : fieldValue.fontFamily;\n var currentValue = fieldValue.value;\n var signatureField = this.getFormFieldByID(fieldValue.id);\n var isSameValue = this.formDesignerModule ? signatureField.value === fieldValue.value : signatureField.Value === fieldValue.value;\n if (target.classList.contains('e-pdfviewer-signatureformfields-signature') && !isSameValue) {\n if (this.formDesignerModule)\n this.annotation.deleteAnnotationById(fieldValue.id.split('_')[0] + '_content');\n else\n this.annotation.deleteAnnotationById(fieldValue.id);\n }\n if (!fieldValue.signatureType || !fieldValue.value) {\n fieldValue.value = currentValue;\n if (this.viewerBase.isSignaturePathData(fieldValue.value)) {\n fieldValue.signatureType = 'Path';\n }\n else if (this.viewerBase.isSignatureImageData(fieldValue.value)) {\n fieldValue.signatureType = 'Image';\n }\n else {\n fieldValue.signatureType = 'Type';\n }\n }\n if (!isSameValue)\n this.formFieldsModule.drawSignature(fieldValue.signatureType, fieldValue.value, target, fieldValue.fontName);\n }\n else {\n if (!isformDesignerModuleListBox) {\n this.formFieldsModule.updateDataInSession(target);\n }\n }\n }\n else {\n var data = this.viewerBase.getItemFromSessionStorage('_formfields');\n if (data) {\n var FormFieldsData = JSON.parse(data);\n var _loop_1 = function () {\n var currentData = FormFieldsData[m];\n var fieldName;\n if (fieldValue.type === 'Checkbox' || fieldValue.type === 'RadioButton' || fieldValue.type === 'CheckBox') {\n fieldName = currentData.GroupName;\n }\n else if (fieldValue.type === 'DropDown' || fieldValue.type === 'ListBox' || fieldValue.type === 'DropdownList') {\n fieldName = currentData.Text;\n }\n else {\n fieldName = currentData.FieldName;\n }\n //map the signature field and its data object to find the signature field name.\n var fieldData = FormFieldsData.filter(function (item) { return item.FieldName === currentData.FieldName.split('_')[0]; });\n if (!isNullOrUndefined(fieldData) && !isNullOrUndefined(fieldData[0])) {\n if (fieldData[0].Name === \"SignatureField\" || fieldData[0].Name === \"InitialField\") {\n fieldName = currentData.FieldName.split('_')[0];\n currentData.LineBounds = FormFieldsData.filter(function (item) { return item.FieldName === fieldName; })[0].LineBounds;\n }\n }\n if (fieldName === fieldValue.name) {\n if (fieldValue.type === 'Textbox' || fieldValue.type === 'Password' || fieldValue.type === 'PasswordField') {\n if (fieldValue.value) {\n currentData.Text = fieldValue.value;\n currentData.Value = fieldValue.value;\n }\n }\n else if (fieldValue.type === 'Checkbox' || fieldValue.type === 'RadioButton' || fieldValue.type === 'CheckBox') {\n fieldValue.isSelected || fieldValue.isChecked ? currentData.Selected = true : currentData.Selected = false;\n }\n else if (fieldValue.type === 'DropDown' || fieldValue.type === 'ListBox' || fieldValue.type === 'DropdownList') {\n currentData.SelectedValue = fieldValue.value;\n var index = currentData.TextList ? currentData.TextList.indexOf(fieldValue.value) : 0;\n currentData.selectedIndex = index > -1 ? index : 0;\n fieldValue.type === 'ListBox' ? currentData.SelectedListed = [currentData.selectedIndex] : [];\n }\n else if (fieldValue.type === 'SignatureField' || fieldValue.type === 'InitialField') {\n if (fieldValue.value) {\n currentData.Value = fieldValue.value;\n currentData = this_1.updateSignatureValue(currentData, fieldValue);\n }\n }\n this_1.formFieldsModule.updateFormFieldsCollection(currentData);\n }\n };\n var this_1 = this;\n for (var m = 0; m < FormFieldsData.length; m++) {\n _loop_1();\n }\n }\n window.sessionStorage.removeItem(this.viewerBase.documentId + '_formfields');\n this.viewerBase.setItemInSessionStorage(FormFieldsData, '_formfields');\n }\n };\n // eslint-disable-next-line\n PdfViewer.prototype.getFormFieldByID = function (id) {\n if (this.formDesignerModule) {\n return this.nameTable[id.split('_')[0]];\n }\n var data = window.sessionStorage.getItem(this.viewerBase.documentId + '_formfields');\n var formFieldsData = JSON.parse(data);\n return formFieldsData[formFieldsData.findIndex(function (el) { return el.uniqueID === id; })];\n };\n /**\n * @param number\n */\n // eslint-disable-next-line\n PdfViewer.prototype.ConvertPointToPixel = function (number) {\n return (number * (96 / 72));\n };\n /**\n * @param currentData - Current form field data.\n * @param fieldValue - Form Field.\n * @returns - Returns the updated the current Data.\n */\n // eslint-disable-next-line\n PdfViewer.prototype.updateSignatureValue = function (currentData, fieldValue) {\n if (!fieldValue.signatureType) {\n fieldValue.signatureType = this.viewerBase.isSignatureImageData(fieldValue.value) ? 'Image' : (this.viewerBase.isSignaturePathData(fieldValue.value) ? 'Path' : 'Type');\n }\n var bound = currentData.LineBounds;\n var left = this.ConvertPointToPixel(bound.X);\n var top = this.ConvertPointToPixel(bound.Y);\n var width = this.ConvertPointToPixel(bound.Width);\n var height = this.ConvertPointToPixel(bound.Height);\n var bounds;\n if (fieldValue.signatureType === 'Type') {\n if (!currentData.FontFamily) {\n currentData.FontFamily = 'Helvetica';\n }\n // eslint-disable-next-line\n bounds = this.formFieldsModule.getSignBounds(currentData.pageIndex, currentData.RotationAngle, currentData.pageIndex, this.viewerBase.getZoomFactor(), left, top, width, height);\n if (this.signatureFitMode === 'Default') {\n bounds = this.formFieldsModule.getDefaultBoundsforSign(bounds);\n }\n currentData.Bounds = bounds;\n var fontSize = bounds.height / 1.35;\n var textWidth = this.formFieldsModule.getTextWidth(currentData.value, fontSize, currentData.FontFamily);\n var widthRatio = 1;\n if (textWidth > bounds.width)\n widthRatio = bounds.width / textWidth;\n currentData.FontSize = this.formFieldsModule.getFontSize(Math.floor((fontSize * widthRatio)));\n }\n else if (fieldValue.signatureType === 'Image') {\n // eslint-disable-next-line\n bounds = this.formFieldsModule.getSignBounds(currentData.pageIndex, currentData.RotationAngle, currentData.pageIndex, this.viewerBase.getZoomFactor(), left, top, width, height);\n var image_1 = new Image();\n image_1.src = currentData.Value;\n var proxy_1 = this;\n image_1.onload = function () {\n proxy_1.imageOnLoad(bounds, image_1, currentData);\n };\n }\n else {\n if ((currentData.Value.indexOf('base64')) !== -1) {\n // eslint-disable-next-line\n bounds = this.formFieldsModule.getSignBounds(currentData.pageIndex, currentData.RotationAngle, currentData.pageIndex, this.viewerBase.getZoomFactor(), left, top, width, height);\n if (this.signatureFitMode === 'Default') {\n bounds = this.formFieldsModule.getDefaultBoundsforSign(bounds);\n }\n }\n else {\n if (this.signatureFitMode === 'Default') {\n // eslint-disable-next-line\n var signBounds = this.formFieldsModule.updateSignatureAspectRatio(currentData.Value, false, null, currentData);\n // eslint-disable-next-line\n bounds = this.formFieldsModule.getSignBounds(currentData.pageIndex, currentData.RotationAngle, currentData.pageIndex, this.viewerBase.getZoomFactor(), left, top, signBounds.width, signBounds.height, true);\n bounds.x = bounds.x + signBounds.left;\n bounds.y = bounds.y + signBounds.top;\n }\n else {\n bounds = this.formFieldsModule.getSignBounds(currentData.pageIndex, currentData.RotationAngle, currentData.pageIndex, this.viewerBase.getZoomFactor(), left, top, width, height);\n }\n }\n currentData.Bounds = bounds;\n }\n return currentData;\n };\n PdfViewer.prototype.imageOnLoad = function (bounds, image, currentData) {\n if (this.signatureFitMode === 'Default') {\n var padding = Math.min(bounds.height / this.paddingDifferenceValue, bounds.width / this.paddingDifferenceValue);\n var maxHeight = bounds.height - padding;\n var maxWidth = bounds.width - padding;\n var imageWidth = image.width;\n var imageHeight = image.height;\n var beforeWidth = bounds.width;\n var beforeHeight = bounds.height;\n var ratio = Math.min(maxWidth / imageWidth, maxHeight / imageHeight);\n bounds.width = imageWidth * ratio;\n bounds.height = imageHeight * ratio;\n bounds.x = bounds.x + (beforeWidth - bounds.width) / 2;\n bounds.y = bounds.y + (beforeHeight - bounds.height) / 2;\n var data = this.viewerBase.getItemFromSessionStorage('_formfields');\n if (data) {\n var FormFieldsData = JSON.parse(data);\n for (var i = 0; i < FormFieldsData.length; i++) {\n if (FormFieldsData[i].FieldName == currentData.FieldName) {\n FormFieldsData[i].Bounds = bounds;\n this.formFieldsModule.updateFormFieldsCollection(FormFieldsData[i]);\n }\n }\n window.sessionStorage.removeItem(this.viewerBase.documentId + '_formfields');\n this.viewerBase.setItemInSessionStorage(FormFieldsData, '_formfields');\n }\n }\n };\n /**\n * Perform undo action for the edited annotations\n *\n * @returns void\n */\n PdfViewer.prototype.undo = function () {\n if (this.annotationModule) {\n this.annotationModule.undo();\n }\n };\n /**\n * Perform redo action for the edited annotations\n *\n * @returns void\n */\n PdfViewer.prototype.redo = function () {\n if (this.annotationModule) {\n this.annotationModule.redo();\n }\n };\n /**\n * Unloads the PDF document being displayed in the PDF viewer.\n *\n * @returns void\n */\n PdfViewer.prototype.unload = function () {\n this.viewerBase.clear(true);\n this.pageCount = 0;\n if (!isBlazor()) {\n if (this.toolbarModule) {\n this.viewerBase.pageCount = 0;\n this.toolbarModule.resetToolbar();\n }\n }\n else {\n this.viewerBase.blazorUIAdaptor.resetToolbar();\n }\n this.magnificationModule.zoomTo(100);\n };\n /**\n * Destroys all managed resources used by this object.\n *\n * @returns void\n */\n PdfViewer.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n if (!isNullOrUndefined(this.element)) {\n if (!this.refreshing) {\n this.element.classList.remove('e-pdfviewer');\n }\n this.element.innerHTML = '';\n }\n if (this.viewerBase.navigationPane) {\n this.viewerBase.navigationPane.restrictUpdateZoomValue = false;\n }\n this.viewerBase.destroy();\n if (this.viewerBase.navigationPane) {\n this.viewerBase.navigationPane.restrictUpdateZoomValue = true;\n }\n };\n // eslint-disable-next-line\n /**\n * Perform imports annotations action in the PDF Viewer\n * @param {any} importData - Specifies the data for annotation imports\n * @returns void\n */\n // eslint-disable-next-line\n PdfViewer.prototype.importAnnotation = function (importData, annotationDataFormat) {\n if (this.annotationModule) {\n if (typeof (importData) === 'string') {\n var isXfdfFile = ((importData.indexOf('.xfdf') > -1) || (annotationDataFormat.indexOf('Xfdf') > -1)) ? true : false;\n if (annotationDataFormat) {\n if (importData.indexOf('') > -1) {\n this.viewerBase.importAnnotations(importData, annotationDataFormat, false);\n }\n else {\n if (annotationDataFormat == 'Json') {\n if (importData.includes('pdfAnnotation')) {\n this.importAnnotationsAsJson(importData);\n }\n else {\n var newImportData = importData.split(',')[1] ? importData.split(',')[1] : importData.split(',')[0];\n importData = decodeURIComponent(escape(atob(newImportData)));\n this.importAnnotationsAsJson(importData);\n }\n }\n else {\n this.viewerBase.importAnnotations(importData, annotationDataFormat, isXfdfFile);\n }\n }\n }\n else {\n if (importData.split('.')[1] === 'json') {\n if (importData.includes('pdfAnnotation')) {\n this.importAnnotationsAsJson(importData);\n }\n else {\n var newImportData = importData.split(',')[1] ? importData.split(',')[1] : importData.split(',')[0];\n importData = decodeURIComponent(escape(atob(newImportData)));\n this.importAnnotationsAsJson(importData);\n }\n }\n else {\n this.viewerBase.importAnnotations(importData, AnnotationDataFormat.Xfdf, isXfdfFile);\n }\n }\n }\n else {\n var imporedAnnotation = importData.pdfAnnotation;\n if (typeof (importData) === 'object' && !isNullOrUndefined(imporedAnnotation) && !isNullOrUndefined(Object.keys(imporedAnnotation)) && !isNullOrUndefined(Object.keys(imporedAnnotation)[0]) && Object.keys(imporedAnnotation[Object.keys(imporedAnnotation)[0]]).length > 1) {\n this.viewerBase.importAnnotations(importData);\n }\n else {\n importData = JSON.stringify(importData);\n this.viewerBase.isPDFViewerJson = false;\n this.viewerBase.importAnnotations(btoa(importData), AnnotationDataFormat.Json);\n }\n }\n }\n };\n // eslint-disable-next-line\n PdfViewer.prototype.importAnnotationsAsJson = function (importData) {\n var jsonData = JSON.parse(importData);\n var firstAnnotation = jsonData.pdfAnnotation[Object.keys(jsonData.pdfAnnotation)[0]];\n if ((Object.keys(jsonData.pdfAnnotation).length >= 1) && (firstAnnotation.textMarkupAnnotation || firstAnnotation.measureShapeAnnotation || firstAnnotation.freeTextAnnotation || firstAnnotation.stampAnnotations || firstAnnotation.signatureInkAnnotation || (firstAnnotation.shapeAnnotation && firstAnnotation.shapeAnnotation[0].Bounds))) {\n this.viewerBase.isPDFViewerJson = true;\n this.viewerBase.importAnnotations(jsonData, AnnotationDataFormat.Json);\n }\n else {\n this.viewerBase.isPDFViewerJson = false;\n this.viewerBase.importAnnotations(btoa(importData), AnnotationDataFormat.Json);\n }\n };\n /**\n * Perform export annotations action in the PDF Viewer\n *\n * @param annotationDataFormat\n * @returns void\n */\n PdfViewer.prototype.exportAnnotation = function (annotationDataFormat) {\n if (this.annotationModule) {\n if (annotationDataFormat && annotationDataFormat === 'Xfdf') {\n this.viewerBase.exportAnnotations(AnnotationDataFormat.Xfdf);\n }\n else {\n this.viewerBase.exportAnnotations(AnnotationDataFormat.Json);\n }\n }\n };\n /**\n * Perform export annotations action in the PDF Viewer\n *\n * @returns Promise\n */\n PdfViewer.prototype.exportAnnotationsAsObject = function () {\n var _this = this;\n if (this.annotationModule) {\n return new Promise(function (resolve, reject) {\n _this.viewerBase.exportAnnotationsAsObject().then(function (value) {\n var jsonData = JSON.parse(value);\n var jsonstring = JSON.stringify(jsonData);\n resolve(jsonstring);\n });\n });\n }\n else {\n return null;\n }\n };\n /**\n * Export annotations and returns a base64 string for both Json and XFDF formats\n *\n * @param {AnnotationDataFormat} annotationDataFormat\n * @returns Promise\n */\n PdfViewer.prototype.exportAnnotationsAsBase64String = function (annotationDataFormat) {\n var _this = this;\n if (this.annotationModule) {\n return new Promise(function (resolve, reject) {\n _this.viewerBase.createRequestForExportAnnotations(false, annotationDataFormat, true).then(function (value) {\n resolve(value);\n });\n });\n }\n else {\n return null;\n }\n };\n /**\n * Perform to add annotations in the PDF Viewer\n *\n * @param annotation\n * @returns void\n */\n // eslint-disable-next-line\n PdfViewer.prototype.addAnnotation = function (annotation) {\n if (this.viewerBase) {\n this.viewerBase.addAnnotation(annotation);\n }\n };\n // eslint-disable-next-line\n /**\n * Imports the form fields data into the current PDF document.\n *\n * @param {string} data - The path for importing the fields.\n * @param {FormFieldDataFormat} formFieldDataFormat\n * @returns void\n */\n // eslint-disable-next-line\n PdfViewer.prototype.importFormFields = function (data, formFieldDataFormat) {\n if (this.formFieldsModule) {\n if (isNullOrUndefined(formFieldDataFormat)) {\n formFieldDataFormat = FormFieldDataFormat.Json;\n }\n this.viewerBase.importFormFields(data, formFieldDataFormat);\n }\n };\n /**\n * Exports the form field data in the specified data format.\n *\n * @param {string} data - The path for exporting the fields.\n * @param {FormFieldDataFormat} formFieldDataFormat\n * @returns void\n */\n PdfViewer.prototype.exportFormFields = function (data, formFieldDataFormat) {\n if (this.formFieldsModule) {\n this.viewerBase.exportFormFields(data, formFieldDataFormat);\n }\n };\n /**\n * Returns an object which represents the form field data in the specified data format.\n *\n * @param {FormFieldDataFormat} formFieldDataFormat\n * @returns Promise\n */\n PdfViewer.prototype.exportFormFieldsAsObject = function (formFieldDataFormat) {\n var _this = this;\n if (this.formFieldsModule) {\n return new Promise(function (resolve, reject) {\n _this.viewerBase.exportFormFieldsAsObject(formFieldDataFormat).then(function (value) {\n resolve(value);\n });\n });\n }\n else {\n return null;\n }\n };\n /**\n * reset all form fields data\n *\n * @returns void\n */\n PdfViewer.prototype.resetFormFields = function () {\n this.formFieldsModule.resetFormFields();\n };\n /**\n * Clears data from the form fields.\n * Parameter - Specifies the form field object.\n *\n * @param formField\n * @returns void\n */\n // eslint-disable-next-line\n PdfViewer.prototype.clearFormFields = function (formField) {\n this.formFieldsModule.clearFormFields(formField);\n };\n /**\n * To delete the annotation Collections in the PDF Document.\n *\n * @returns void\n */\n PdfViewer.prototype.deleteAnnotations = function () {\n if (this.annotationModule) {\n this.viewerBase.deleteAnnotations();\n }\n };\n /**\n * To retrieve the form fields in the PDF Document.\n *\n * @returns void\n */\n PdfViewer.prototype.retrieveFormFields = function () {\n return this.formFieldCollections;\n };\n /**\n * To update the form fields in the PDF Document.\n *\n * @param formFields\n * @returns void\n */\n // eslint-disable-next-line\n PdfViewer.prototype.updateFormFields = function (formFields) {\n this.updateFormFieldsValue(formFields);\n this.formFieldsModule.updateFormFieldValues(formFields);\n };\n /**\n * @param JsonData\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireAjaxRequestInitiate = function (JsonData) {\n var eventArgs = { name: 'ajaxRequestInitiate', JsonData: JsonData };\n this.trigger('ajaxRequestInitiate', eventArgs);\n };\n /**\n * @param value\n * @param fieldName\n * @param id\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireButtonFieldClickEvent = function (value, fieldName, id) {\n var eventArgs = { name: 'buttonFieldClicked', buttonFieldValue: value, buttonFieldName: fieldName, id: id };\n this.trigger('buttonFieldClick', eventArgs);\n };\n /**\n * @param name\n * @param field\n * @param cancel\n * @param isLeftClick - becomes true on signature panel left click.\n * @private\n */\n PdfViewer.prototype.fireFormFieldClickEvent = function (name, field, cancel, isLeftClick) {\n return __awaiter(this, void 0, void 0, function () {\n var eventArgs, target, formFieldCollectionsValue, readOnly;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n eventArgs = { name: name, field: field, cancel: cancel };\n if (!isBlazor()) return [3 /*break*/, 2];\n return [4 /*yield*/, this.triggerEvent('formFieldClick', eventArgs)];\n case 1:\n eventArgs = (_a.sent()) || eventArgs;\n eventArgs.field.type = field.type;\n return [3 /*break*/, 3];\n case 2:\n this.triggerEvent('formFieldClick', eventArgs);\n _a.label = 3;\n case 3:\n if (field.type === 'SignatureField' || field.type === 'InitialField') {\n if (field.type === 'InitialField')\n this.viewerBase.isInitialField = true;\n else\n this.viewerBase.isInitialField = false;\n target = document.getElementById(field.id);\n if (target.style.visibility === \"hidden\") {\n target.disabled = true;\n }\n target = target ? target : (document.getElementById(field.id + '_content_html_element') ? document.getElementById(field.id + '_content_html_element').children[0].children[0] : null);\n formFieldCollectionsValue = this.formFieldCollections.filter(function (item) { return item.id === field.id; });\n if (formFieldCollectionsValue) {\n readOnly = formFieldCollectionsValue[0].isReadOnly;\n if ((!readOnly) && !eventArgs.cancel && target && !target.disabled && target.classList.contains('e-pdfviewer-signatureformfields') && (isLeftClick || isNullOrUndefined(isLeftClick))) {\n this.viewerBase.signatureModule.showSignatureDialog(true);\n }\n else if (readOnly) {\n target.disabled = true;\n }\n }\n }\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * @param name - Get the name of the event.\n * @param field - Event arguments for the form field add event.\n * @param pageIndex - Get the page number.\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireFormFieldAddEvent = function (name, field, pageIndex) {\n var eventArgs = { name: name, field: field, pageIndex: pageIndex };\n this.viewerBase.isFormFieldSelect = false;\n this.trigger('formFieldAdd', eventArgs);\n };\n /**\n * @param name - Get the name of the event.\n * @param field - Event arguments for the form field remove event.\n * @param pageIndex - Get the page number.\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireFormFieldRemoveEvent = function (name, field, pageIndex) {\n var eventArgs = { name: name, field: field, pageIndex: pageIndex };\n this.trigger('formFieldRemove', eventArgs);\n };\n /**\n * @param name - Returns the event name.\n * @param field - Returns the double-clicked form field object.\n * @param cancel - If TRUE, property panel of the form field does not open. FALSE by default.\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireFormFieldDoubleClickEvent = function (eventArgs) {\n this.trigger('formFieldDoubleClick', eventArgs);\n return eventArgs;\n };\n /**\n * @param name - Get the name of the event.\n * @param field - Event arguments for the form field properties change event.\n * @param pageIndex - Get the page number.\n * @param isAlignmentChanged - Specifies whether the text alignment of the form field is changed or not.\n * @param isBackgroundColorChanged - Specifies whether the background color of the form field is changed or not.\n * @param isBorderColorChanged - Specifies whether the border color of the form field is changed or not.\n * @param isBorderWidthChanged - Specifies whether the border width of the form field is changed or not.\n * @param isColorChanged - Specifies whether the font color of the form field is changed or not.\n * @param isFontFamilyChanged - Specifies whether the font family of the form field is changed or not.\n * @param isFontSizeChanged - Specifies whether the font size of the form field is changed or not.\n * @param isFontStyleChanged - Specifies whether the font style of the form field is changed or not.\n * @param isMaxLengthChanged - Specifies whether the max length of the form field is changed or not.\n * @param isPrintChanged - Specifies whether the print option of the form field is changed or not.\n * @param isReadOnlyChanged - Specifies the Read Only of Form field is changed or not.\n * @param isRequiredChanged - Specifies whether the is required option of the form field is changed or not.\n * @param isToolTipChanged - Specifies whether the tool tip property is changed or not.\n * @param isValueChanged - Specifies whether the form field value is changed or not.\n * @param isVisibilityChanged - Specifies whether the form field visibility is changed or not.\n * @param newValue - Specifies the new value of the form field.\n * @param oldValue - Specifies the old value of the form field.\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireFormFieldPropertiesChangeEvent = function (name, field, pageIndex, isValueChanged, isFontFamilyChanged, isFontSizeChanged, isFontStyleChanged, isColorChanged, isBackgroundColorChanged, isBorderColorChanged, isBorderWidthChanged, isAlignmentChanged, isReadOnlyChanged, isVisibilityChanged, isMaxLengthChanged, isRequiredChanged, isPrintChanged, isToolTipChanged, oldValue, newValue, isNamechanged) {\n var eventArgs = {\n name: name, field: field, pageIndex: pageIndex, isValueChanged: isValueChanged, isFontFamilyChanged: isFontFamilyChanged, isFontSizeChanged: isFontSizeChanged,\n isFontStyleChanged: isFontStyleChanged, isColorChanged: isColorChanged, isBackgroundColorChanged: isBackgroundColorChanged, isBorderColorChanged: isBorderColorChanged,\n isBorderWidthChanged: isBorderWidthChanged, isAlignmentChanged: isAlignmentChanged, isReadOnlyChanged: isReadOnlyChanged, isVisibilityChanged: isVisibilityChanged,\n isMaxLengthChanged: isMaxLengthChanged, isRequiredChanged: isRequiredChanged, isPrintChanged: isPrintChanged,\n isToolTipChanged: isToolTipChanged, oldValue: oldValue, newValue: newValue, isNameChanged: !isNullOrUndefined(isNamechanged) ? isNamechanged : false\n };\n this.trigger('formFieldPropertiesChange', eventArgs);\n };\n /**\n * @param name - Get the name of the event.\n * @param field - Event arguments for the form field mouse leave event.\n * @param pageIndex - Get the page number.\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireFormFieldMouseLeaveEvent = function (name, field, pageIndex) {\n var eventArgs = { name: name, field: field, pageIndex: pageIndex };\n this.trigger('formFieldMouseLeave', eventArgs);\n };\n /**\n * @param name - Get the name of the event.\n * @param field - Event arguments for the form field mouse over event.\n * @param pageIndex - Get the page number.\n * @param pageX - Get the mouse over x position with respect to the page container.\n * @param pageY - Get the mouse over y position with respect to the page container.\n * @param X - Specifies the mouse over x position with respect to the viewer container.\n * @param Y - Specifies the mouse over y position with respect to the viewer container.\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireFormFieldMouseoverEvent = function (name, field, pageIndex, pageX, pageY, X, Y) {\n var eventArgs = { name: name, field: field, pageIndex: pageIndex, pageX: pageX, pageY: pageY, X: X, Y: Y };\n this.trigger('formFieldMouseover', eventArgs);\n };\n /**\n * @param name - Get the name of the event.\n * @param field - Event arguments for the form field move event.\n * @param pageIndex - Get the page number.\n * @param previousPosition - Get the previous position of the form field in the page.\n * @param currentPosition - Current position of form field in the page.\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireFormFieldMoveEvent = function (name, field, pageIndex, previousPosition, currentPosition) {\n var eventArgs = { name: name, field: field, pageIndex: pageIndex, previousPosition: previousPosition, currentPosition: currentPosition };\n this.trigger('formFieldMove', eventArgs);\n };\n /**\n * @param name - Get the name of the event.\n * @param field - Event arguments for the form field resize event.\n * @param pageIndex - Get the page number.\n * @param previousPosition - Get the previous position of the form field in the page.\n * @param currentPosition - Current position of form field in the page.\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireFormFieldResizeEvent = function (name, field, pageIndex, previousPosition, currentPosition) {\n var eventArgs = { name: name, field: field, pageIndex: pageIndex, previousPosition: previousPosition, currentPosition: currentPosition };\n this.trigger('formFieldResize', eventArgs);\n };\n /**\n * @param name - Get the name of the event.\n * @param field - Event arguments for the form field select event.\n * @param pageIndex - Get the page number.\n * @param isProgrammaticSelection - Specifies whether the the form field is selected programmatically or by UI.\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireFormFieldSelectEvent = function (name, field, pageIndex, isProgrammaticSelection) {\n var eventArgs = { name: name, field: field, pageIndex: pageIndex, isProgrammaticSelection: isProgrammaticSelection };\n this.trigger('formFieldSelect', eventArgs);\n };\n /**\n * @param name - Get the name of the event.\n * @param field - Event arguments for the form field unselect event.\n * @param pageIndex - Get the page number.\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireFormFieldUnselectEvent = function (name, field, pageIndex) {\n var eventArgs = { name: name, field: field, pageIndex: pageIndex };\n this.trigger('formFieldUnselect', eventArgs);\n };\n /**\n * @param pageData\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireDocumentLoad = function (pageData) {\n var eventArgs = { name: 'documentLoad', documentName: this.fileName, pageData: pageData };\n this.trigger('documentLoad', eventArgs);\n if (isBlazor()) {\n this._dotnetInstance.invokeMethodAsync('LoadDocument', null);\n this.viewerBase.blazorUIAdaptor.loadDocument();\n }\n };\n /**\n * @param fileName\n * @private\n */\n PdfViewer.prototype.fireDocumentUnload = function (fileName) {\n var eventArgs = { name: 'documentUnload', documentName: fileName };\n this.trigger('documentUnload', eventArgs);\n };\n /**\n * @param isPasswordRequired\n * @param password\n * @private\n */\n PdfViewer.prototype.fireDocumentLoadFailed = function (isPasswordRequired, password) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'documentLoadFailed', documentName: this.fileName, isPasswordRequired: isPasswordRequired, password: password };\n this.trigger('documentLoadFailed', eventArgs);\n };\n /**\n * @param errorStatusCode\n * @param errorMessage\n * @param action\n * @param retryCount\n * @private\n */\n PdfViewer.prototype.fireAjaxRequestFailed = function (errorStatusCode, errorMessage, action, retryCount) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'ajaxRequestFailed', documentName: this.fileName, errorStatusCode: errorStatusCode, errorMessage: errorMessage, action: action };\n if (retryCount) {\n eventArgs.retryCount = true;\n }\n this.trigger('ajaxRequestFailed', eventArgs);\n };\n /**\n * @param action\n * @param data\n * @private\n */\n PdfViewer.prototype.fireAjaxRequestSuccess = function (action, data) {\n var eventArgs = { name: 'ajaxRequestSuccess', documentName: this.fileName, action: action, data: data, cancel: false };\n this.trigger('ajaxRequestSuccess', eventArgs);\n if (eventArgs.cancel) {\n return true;\n }\n else {\n return false;\n }\n };\n /**\n * @param action\n * @private\n */\n PdfViewer.prototype.fireValidatedFailed = function (action) {\n if (!isBlazor()) {\n // eslint-disable-next-line max-len\n var eventArgs = { formField: this.formFieldCollections, documentName: this.fileName, nonFillableFields: this.viewerBase.nonFillableFields };\n this.trigger('validateFormFields', eventArgs);\n }\n else {\n // eslint-disable-next-line\n var eventArgs = {};\n eventArgs.documentName = this.fileName;\n eventArgs.formFields = this.formFieldCollections;\n eventArgs.nonFillableFields = this.viewerBase.nonFillableFields;\n this.trigger('validateFormFields', eventArgs);\n }\n };\n /**\n * @param x\n * @param y\n * @param pageNumber\n * @private\n */\n PdfViewer.prototype.firePageClick = function (x, y, pageNumber) {\n var eventArgs = { name: 'pageClick', documentName: this.fileName, x: x, y: y, pageNumber: pageNumber };\n this.trigger('pageClick', eventArgs);\n };\n /**\n * @param previousPageNumber\n * @private\n */\n PdfViewer.prototype.firePageChange = function (previousPageNumber) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'pageChange', documentName: this.fileName, currentPageNumber: this.currentPageNumber, previousPageNumber: previousPageNumber };\n this.trigger('pageChange', eventArgs);\n if (isBlazor()) {\n //this._dotnetInstance.invokeMethodAsync('OnPageChanged', this.currentPageNumber);\n this.viewerBase.blazorUIAdaptor.pageChanged(this.currentPageNumber);\n }\n };\n /**\n * @private\n */\n PdfViewer.prototype.fireZoomChange = function () {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'zoomChange', zoomValue: this.magnificationModule.zoomFactor * 100, previousZoomValue: this.magnificationModule.previousZoomFactor * 100 };\n this.trigger('zoomChange', eventArgs);\n };\n /**\n * @param hyperlink\n * @param hyperlinkElement\n * @private\n */\n PdfViewer.prototype.fireHyperlinkClick = function (hyperlink, hyperlinkElement) {\n return __awaiter(this, void 0, void 0, function () {\n var eventArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n eventArgs = { name: 'hyperlinkClick', hyperlink: hyperlink, hyperlinkElement: hyperlinkElement, cancel: false };\n if (!isBlazor()) return [3 /*break*/, 2];\n return [4 /*yield*/, this.triggerEvent('hyperlinkClick', eventArgs)];\n case 1:\n eventArgs = (_a.sent()) || eventArgs;\n return [3 /*break*/, 3];\n case 2:\n this.triggerEvent('hyperlinkClick', eventArgs);\n _a.label = 3;\n case 3:\n if (eventArgs.hyperlinkElement.href != eventArgs.hyperlink) {\n hyperlinkElement.href = eventArgs.hyperlink;\n }\n if (eventArgs.cancel) {\n return [2 /*return*/, false];\n }\n else {\n return [2 /*return*/, true];\n }\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * @param hyperlinkElement\n * @private\n */\n PdfViewer.prototype.fireHyperlinkHover = function (hyperlinkElement) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'hyperlinkMouseOver', hyperlinkElement: hyperlinkElement };\n this.trigger('hyperlinkMouseOver', eventArgs);\n };\n /**\n * @param fieldName\n * @param value\n * @private\n */\n PdfViewer.prototype.fireFocusOutFormField = function (fieldName, value) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'formFieldFocusOut', fieldName: fieldName, value: value };\n // eslint-disable-next-line\n this.trigger('formFieldFocusOut', eventArgs);\n };\n /**\n * @param pageNumber\n * @param index\n * @param type\n * @param bounds\n * @param settings\n * @param textMarkupContent\n * @param tmStartIndex\n * @param tmEndIndex\n * @param labelSettings\n * @param multiPageCollection\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireAnnotationAdd = function (pageNumber, index, type, bounds, settings, textMarkupContent, tmStartIndex, tmEndIndex, labelSettings, multiPageCollection, customStampName) {\n var eventArgs = { name: 'annotationAdd', pageIndex: pageNumber, annotationId: index, annotationType: type, annotationBound: bounds, annotationSettings: settings };\n if (textMarkupContent) {\n if (isBlazor()) {\n eventArgs.annotationSettings.textMarkupContent = textMarkupContent;\n eventArgs.annotationSettings.textMarkupStartIndex = tmStartIndex;\n eventArgs.annotationSettings.textMarkupEndIndex = tmEndIndex;\n }\n else {\n eventArgs.textMarkupContent = textMarkupContent;\n eventArgs.textMarkupStartIndex = tmStartIndex;\n eventArgs.textMarkupEndIndex = tmEndIndex;\n }\n }\n if (labelSettings) {\n eventArgs.labelSettings = labelSettings;\n }\n if (multiPageCollection) {\n eventArgs.multiplePageCollection = multiPageCollection;\n }\n if (type === 'Image') {\n eventArgs.customStampName = customStampName;\n }\n this.viewerBase.isAnnotationSelect = false;\n this.trigger('annotationAdd', eventArgs);\n if (isBlazor()) {\n // this._dotnetInstance.invokeMethodAsync('AnnotationAdd', null);\n this.viewerBase.blazorUIAdaptor.annotationAdd();\n }\n };\n /**\n * @param pageNumber\n * @param index\n * @param type\n * @param bounds\n * @param textMarkupContent\n * @param tmStartIndex\n * @param tmEndIndex\n * @param multiPageCollection\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireAnnotationRemove = function (pageNumber, index, type, bounds, textMarkupContent, tmStartIndex, tmEndIndex, multiPageCollection) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'annotationRemove', pageIndex: pageNumber, annotationId: index, annotationType: type, annotationBounds: bounds };\n if (textMarkupContent) {\n eventArgs.textMarkupContent = textMarkupContent;\n eventArgs.textMarkupStartIndex = tmStartIndex;\n eventArgs.textMarkupEndIndex = tmEndIndex;\n }\n if (multiPageCollection) {\n eventArgs.multiplePageCollection = multiPageCollection;\n }\n this.trigger('annotationRemove', eventArgs);\n };\n /**\n * @param value\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireBeforeAddFreeTextAnnotation = function (value) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'beforeAddFreeText', value: value };\n // eslint-disable-next-line\n this.trigger('beforeAddFreeText', eventArgs);\n };\n /**\n * @param id\n * @param text\n * @param annotation\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireCommentAdd = function (id, text, annotation) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'CommentAdd', id: id, text: text, annotation: annotation };\n // eslint-disable-next-line\n this.trigger('commentAdd', eventArgs);\n };\n /**\n * @param id\n * @param text\n * @param annotation\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireCommentEdit = function (id, text, annotation) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'CommentEdit', id: id, text: text, annotation: annotation };\n // eslint-disable-next-line\n this.trigger('commentEdit', eventArgs);\n };\n /**\n * @param id\n * @param text\n * @param annotation\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireCommentDelete = function (id, text, annotation) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'CommentDelete', id: id, text: text, annotation: annotation };\n // eslint-disable-next-line\n this.trigger('commentDelete', eventArgs);\n };\n /**\n * @param id\n * @param text\n * @param annotation\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireCommentSelect = function (id, text, annotation) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'CommentSelect', id: id, text: text, annotation: annotation };\n // eslint-disable-next-line\n this.trigger('commentSelect', eventArgs);\n };\n /**\n * @param id\n * @param text\n * @param annotation\n * @param statusChange\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireCommentStatusChanged = function (id, text, annotation, statusChange) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'CommentStatusChanged', id: id, text: text, annotation: annotation, status: statusChange };\n // eslint-disable-next-line\n this.trigger('commentStatusChanged', eventArgs);\n };\n /**\n * @param pageNumber\n * @param index\n * @param type\n * @param isColorChanged\n * @param isOpacityChanged\n * @param isTextChanged\n * @param isCommentsChanged\n * @param textMarkupContent\n * @param tmStartIndex\n * @param tmEndIndex\n * @param multiPageCollection\n * @private\n */\n // eslint-disable-next-line max-len\n // eslint-disable-next-line\n PdfViewer.prototype.fireAnnotationPropertiesChange = function (pageNumber, index, type, isColorChanged, isOpacityChanged, isTextChanged, isCommentsChanged, textMarkupContent, tmStartIndex, tmEndIndex, multiPageCollection) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'annotationPropertiesChange', pageIndex: pageNumber, annotationId: index, annotationType: type, isColorChanged: isColorChanged, isOpacityChanged: isOpacityChanged, isTextChanged: isTextChanged, isCommentsChanged: isCommentsChanged };\n if (textMarkupContent) {\n eventArgs.textMarkupContent = textMarkupContent;\n eventArgs.textMarkupStartIndex = tmStartIndex;\n eventArgs.textMarkupEndIndex = tmEndIndex;\n }\n if (multiPageCollection) {\n eventArgs.multiplePageCollection = multiPageCollection;\n }\n this.trigger('annotationPropertiesChange', eventArgs);\n };\n /**\n * @param pageNumber\n * @param index\n * @param type\n * @param bounds\n * @param opacity\n * @param strokeColor\n * @param thickness\n * @param data\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireSignatureAdd = function (pageNumber, index, type, bounds, opacity, strokeColor, thickness, data) {\n var eventArgs = { pageIndex: pageNumber, id: index, type: type, bounds: bounds, opacity: opacity };\n if (thickness) {\n eventArgs.thickness = thickness;\n }\n if (strokeColor) {\n eventArgs.strokeColor = strokeColor;\n }\n if (data) {\n eventArgs.data = data;\n }\n this.trigger('addSignature', eventArgs);\n };\n /**\n * @param pageNumber\n * @param index\n * @param type\n * @param bounds\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireSignatureRemove = function (pageNumber, index, type, bounds) {\n var eventArgs = { pageIndex: pageNumber, id: index, type: type, bounds: bounds };\n this.trigger('removeSignature', eventArgs);\n };\n /**\n * @param pageNumber\n * @param id\n * @param type\n * @param opacity\n * @param strokeColor\n * @param thickness\n * @param previousPosition\n * @param currentPosition\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireSignatureMove = function (pageNumber, id, type, opacity, strokeColor, thickness, previousPosition, currentPosition) {\n var eventArgs = { pageIndex: pageNumber, id: id, type: type, opacity: opacity, strokeColor: strokeColor, thickness: thickness, previousPosition: previousPosition, currentPosition: currentPosition };\n this.trigger('moveSignature', eventArgs);\n };\n /**\n * @param pageNumber\n * @param index\n * @param type\n * @param isStrokeColorChanged\n * @param isOpacityChanged\n * @param isThicknessChanged\n * @param oldProp\n * @param newProp\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireSignaturePropertiesChange = function (pageNumber, index, type, isStrokeColorChanged, isOpacityChanged, isThicknessChanged, oldProp, newProp) {\n var eventArgs = { pageIndex: pageNumber, id: index, type: type, isStrokeColorChanged: isStrokeColorChanged, isOpacityChanged: isOpacityChanged, isThicknessChanged: isThicknessChanged, oldValue: oldProp, newValue: newProp };\n this.trigger('signaturePropertiesChange', eventArgs);\n };\n /**\n * @param pageNumber\n * @param index\n * @param type\n * @param opacity\n * @param strokeColor\n * @param thickness\n * @param currentPosition\n * @param previousPosition\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireSignatureResize = function (pageNumber, index, type, opacity, strokeColor, thickness, currentPosition, previousPosition) {\n var eventArgs = { pageIndex: pageNumber, id: index, type: type, opacity: opacity, strokeColor: strokeColor, thickness: thickness, currentPosition: currentPosition, previousPosition: previousPosition };\n this.trigger('resizeSignature', eventArgs);\n };\n /**\n * @param id\n * @param pageNumber\n * @param signature\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireSignatureSelect = function (id, pageNumber, signature) {\n var eventArgs = { id: id, pageIndex: pageNumber, signature: signature };\n this.trigger('signatureSelect', eventArgs);\n };\n /**\n * @param id\n * @param pageNumber\n * @param annotation\n * @param annotationCollection\n * @param multiPageCollection\n * @param isSelected\n * @param annotationAddMode\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireAnnotationSelect = function (id, pageNumber, annotation, annotationCollection, multiPageCollection, isSelected, annotationAddMode) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'annotationSelect', annotationId: id, pageIndex: pageNumber, annotation: annotation };\n if (annotationCollection) {\n // eslint-disable-next-line max-len\n eventArgs = { name: 'annotationSelect', annotationId: id, pageIndex: pageNumber, annotation: annotation, annotationCollection: annotationCollection };\n }\n if (multiPageCollection) {\n eventArgs.multiplePageCollection = multiPageCollection;\n }\n if (isSelected) {\n eventArgs.isProgrammaticSelection = isSelected;\n }\n if (annotationAddMode) {\n eventArgs.annotationAddMode = annotationAddMode;\n }\n if (isBlazor()) {\n if (annotation.type === 'FreeText') {\n // eslint-disable-next-line\n var fontStyle = { isBold: false, isItalic: false, isStrikeout: false, isUnderline: false };\n if (annotation.fontStyle === 1) {\n fontStyle.isBold = true;\n }\n else if (annotation.fontStyle === 2) {\n fontStyle.isItalic = true;\n }\n else if (annotation.fontStyle === 3) {\n fontStyle.isStrikeout = true;\n }\n else if (annotation.fontStyle === 4) {\n fontStyle.isUnderline = true;\n }\n annotation.fontStyle = fontStyle;\n }\n //this._dotnetInstance.invokeMethodAsync('AnnotationSelect', annotation.type);\n this.viewerBase.blazorUIAdaptor.annotationSelect(annotation.type);\n }\n this.trigger('annotationSelect', eventArgs);\n };\n /**\n * @param id\n * @param pageNumber\n * @param annotation\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireAnnotationUnSelect = function (id, pageNumber, annotation) {\n if (isBlazor()) {\n this.viewerBase.blazorUIAdaptor.annotationUnSelect();\n }\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'annotationUnSelect', annotationId: id, pageIndex: pageNumber, annotation: annotation };\n this.trigger('annotationUnSelect', eventArgs);\n };\n /**\n * @param id\n * @param pageNumber\n * @param annotation\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireAnnotationDoubleClick = function (id, pageNumber, annotation) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'annotationDblClick', annotationId: id, pageIndex: pageNumber, annotation: annotation };\n this.trigger('annotationDoubleClick', eventArgs);\n };\n /**\n * @param pageNumber\n * @private\n */\n PdfViewer.prototype.fireTextSelectionStart = function (pageNumber) {\n this.isTextSelectionStarted = true;\n var eventArgs = { pageIndex: pageNumber };\n this.trigger('textSelectionStart', eventArgs);\n };\n /**\n * @param pageNumber\n * @param text\n * @param bound\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireTextSelectionEnd = function (pageNumber, text, bound) {\n if (this.isTextSelectionStarted) {\n var eventArgs = { pageIndex: pageNumber, textContent: text, textBounds: bound };\n this.trigger('textSelectionEnd', eventArgs);\n this.isTextSelectionStarted = false;\n }\n };\n /**\n * @param canvas\n * @param index\n * @private\n */\n PdfViewer.prototype.renderDrawing = function (canvas, index) {\n if (isNullOrUndefined(index) && this.viewerBase.activeElements.activePageID && !this.viewerBase.isPrint) {\n index = this.viewerBase.activeElements.activePageID;\n }\n if (this.annotation) {\n this.annotation.renderAnnotations(index, null, null, null, canvas);\n }\n else if (this.formDesignerModule) {\n this.formDesignerModule.updateCanvas(index, canvas);\n }\n };\n /**\n * @param pageNumber\n * @param index\n * @param type\n * @param bounds\n * @param settings\n * @param textMarkupContent\n * @param tmStartIndex\n * @param tmEndIndex\n * @param labelSettings\n * @param multiPageCollection\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireAnnotationResize = function (pageNumber, index, type, bounds, settings, textMarkupContent, tmStartIndex, tmEndIndex, labelSettings, multiPageCollection) {\n var eventArgs = { name: 'annotationResize', pageIndex: pageNumber, annotationId: index, annotationType: type, annotationBound: bounds, annotationSettings: settings };\n if (textMarkupContent) {\n eventArgs.textMarkupContent = textMarkupContent;\n eventArgs.textMarkupStartIndex = tmStartIndex;\n eventArgs.textMarkupEndIndex = tmEndIndex;\n }\n if (labelSettings) {\n eventArgs.labelSettings = labelSettings;\n }\n if (multiPageCollection) {\n eventArgs.multiplePageCollection = multiPageCollection;\n }\n this.trigger('annotationResize', eventArgs);\n };\n /**\n * @param pageNumber\n * @param id\n * @param type\n * @param annotationSettings\n * @param previousPosition\n * @param currentPosition\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireAnnotationMoving = function (pageNumber, id, type, annotationSettings, previousPosition, currentPosition) {\n var eventArgs = { name: 'annotationMoving', pageIndex: pageNumber, annotationId: id, annotationType: type, annotationSettings: annotationSettings, previousPosition: previousPosition, currentPosition: currentPosition };\n this.trigger('annotationMoving', eventArgs);\n };\n /**\n * @param pageNumber\n * @param id\n * @param type\n * @param annotationSettings\n * @param previousPosition\n * @param currentPosition\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireAnnotationMove = function (pageNumber, id, type, annotationSettings, previousPosition, currentPosition) {\n var eventArgs = { name: 'annotationMove', pageIndex: pageNumber, annotationId: id, annotationType: type, annotationSettings: annotationSettings, previousPosition: previousPosition, currentPosition: currentPosition };\n this.trigger('annotationMove', eventArgs);\n };\n /**\n * @param id\n * @param pageNumber\n * @param annotationType\n * @param bounds\n * @param annotation\n * @param currentPosition\n * @param mousePosition\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireAnnotationMouseover = function (id, pageNumber, annotationType, bounds, annotation, currentPosition, mousePosition) {\n var eventArgs = { name: 'annotationMouseover', annotationId: id, pageIndex: pageNumber, annotationType: annotationType, annotationBounds: bounds, annotation: annotation, pageX: currentPosition.left, pageY: currentPosition.top, X: mousePosition.left, Y: mousePosition.top };\n if (isBlazor()) {\n if (annotation.subject === 'Perimeter calculation') {\n eventArgs.annotationType = 'Perimeter';\n }\n else if (annotation.subject === 'Area calculation') {\n eventArgs.annotationType = 'Area';\n }\n else if (annotation.subject === 'Volume calculation') {\n eventArgs.annotationType = 'Volume';\n }\n else if (annotation.subject === 'Arrow') {\n eventArgs.annotationType = 'Arrow';\n }\n else if (annotation.subject === 'Circle') {\n eventArgs.annotationType = 'Circle';\n }\n }\n this.trigger('annotationMouseover', eventArgs);\n };\n /**\n * @param pageNumber\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireAnnotationMouseLeave = function (pageNumber) {\n var eventArgs = { name: 'annotationMouseLeave', pageIndex: pageNumber };\n this.trigger('annotationMouseLeave', eventArgs);\n };\n /**\n * @param pageX\n * @param pageY\n * @private\n */\n PdfViewer.prototype.firePageMouseover = function (pageX, pageY) {\n var eventArgs = { pageX: pageX, pageY: pageY };\n this.trigger('pageMouseover', eventArgs);\n };\n /**\n * @param fileName\n * @private\n */\n PdfViewer.prototype.fireDownloadStart = function (fileName) {\n var eventArgs = { fileName: fileName };\n this.trigger('downloadStart', eventArgs);\n };\n /**\n * @param fileName\n * @param downloadData\n * @private\n */\n PdfViewer.prototype.fireDownloadEnd = function (fileName, downloadData) {\n var eventArgs = { fileName: fileName, downloadDocument: downloadData };\n this.trigger('downloadEnd', eventArgs);\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.firePrintStart = function () {\n return __awaiter(this, void 0, void 0, function () {\n var eventArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n eventArgs = { fileName: this.downloadFileName, cancel: false };\n if (!isBlazor) return [3 /*break*/, 2];\n return [4 /*yield*/, this.triggerEvent('printStart', eventArgs)];\n case 1:\n eventArgs = (_a.sent()) || eventArgs;\n return [3 /*break*/, 3];\n case 2:\n this.triggerEvent('printStart', eventArgs);\n _a.label = 3;\n case 3:\n if (!eventArgs.cancel) {\n this.printModule.print();\n }\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * @param eventName\n * @param args\n * @param eventName\n * @param args\n * @private\n */\n PdfViewer.prototype.triggerEvent = function (eventName, args) {\n return __awaiter(this, void 0, void 0, function () {\n var eventArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.trigger(eventName, args)];\n case 1:\n eventArgs = _a.sent();\n if (isBlazor && typeof eventArgs === 'string') {\n eventArgs = JSON.parse(eventArgs);\n }\n return [2 /*return*/, eventArgs];\n }\n });\n });\n };\n /**\n * @param fileName\n * @private\n */\n PdfViewer.prototype.firePrintEnd = function (fileName) {\n var eventArgs = { fileName: fileName };\n this.trigger('printEnd', eventArgs);\n };\n /**\n * @param pageNumber\n * @private\n */\n PdfViewer.prototype.fireThumbnailClick = function (pageNumber) {\n var eventArgs = { name: 'thumbnailClick', pageNumber: pageNumber };\n this.trigger('thumbnailClick', eventArgs);\n };\n /**\n * @param pageNumber\n * @param position\n * @param text\n * @param fileName\n * @private\n */\n PdfViewer.prototype.fireBookmarkClick = function (pageNumber, position, text, fileName) {\n // eslint-disable-next-line\n var eventArgs = { name: 'bookmarkClick', pageNumber: pageNumber, position: position, text: text, fileName: fileName };\n this.trigger('bookmarkClick', eventArgs);\n };\n /**\n * @param importData\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireImportStart = function (importData) {\n var eventArgs = { name: 'importAnnotationsStart', importData: importData, formFieldData: null };\n this.trigger('importStart', eventArgs);\n };\n /**\n * @param exportData\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireExportStart = function (exportData) {\n var eventArgs = { name: 'exportAnnotationsStart', exportData: exportData, formFieldData: null };\n this.trigger('exportStart', eventArgs);\n };\n /**\n * @param importData\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireImportSuccess = function (importData) {\n var eventArgs = { name: 'importAnnotationsSuccess', importData: importData, formFieldData: null };\n this.trigger('importSuccess', eventArgs);\n };\n /**\n * @param exportData\n * @param fileName\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireExportSuccess = function (exportData, fileName) {\n var eventArgs = { name: 'exportAnnotationsSuccess', exportData: exportData, fileName: fileName, formFieldData: null };\n this.trigger('exportSuccess', eventArgs);\n };\n /**\n * @param data\n * @param errorDetails\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireImportFailed = function (data, errorDetails) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'importAnnotationsFailed', importData: data, errorDetails: errorDetails, formFieldData: null };\n this.trigger('importFailed', eventArgs);\n };\n /**\n * @param data\n * @param errorDetails\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireExportFailed = function (data, errorDetails) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'exportAnnotationsFailed', exportData: data, errorDetails: errorDetails, formFieldData: null };\n this.trigger('exportFailed', eventArgs);\n };\n /**\n * @param data\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireFormImportStarted = function (data) {\n var eventArgs = { name: 'importFormFieldsStart', importData: null, formFieldData: data };\n this.trigger('importStart', eventArgs);\n };\n /**\n * @param data\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireFormExportStarted = function (data) {\n var eventArgs = { name: 'exportFormFieldsStart', exportData: null, formFieldData: data };\n this.trigger('exportStart', eventArgs);\n };\n /**\n * @param data\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireFormImportSuccess = function (data) {\n var eventArgs = { name: 'importFormFieldsSuccess', importData: data, formFieldData: data };\n this.trigger('importSuccess', eventArgs);\n };\n /**\n * @param data\n * @param fileName\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireFormExportSuccess = function (data, fileName) {\n var eventArgs = { name: 'exportFormFieldsSuccess', exportData: data, fileName: fileName, formFieldData: data };\n this.trigger('exportSuccess', eventArgs);\n };\n /**\n * @param data\n * @param errorDetails\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireFormImportFailed = function (data, errorDetails) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'importFormFieldsfailed', importData: data, errorDetails: errorDetails, formFieldData: data };\n this.trigger('importFailed', eventArgs);\n };\n /**\n * @param data\n * @param errorDetails\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireFormExportFailed = function (data, errorDetails) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'exportFormFieldsFailed', exportData: data, errorDetails: errorDetails, formFieldData: data };\n this.trigger('exportFailed', eventArgs);\n };\n /**\n * @param documentCollection\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireTextExtractionCompleted = function (documentCollection) {\n var eventArgs = { documentTextCollection: documentCollection };\n this.trigger('extractTextCompleted', eventArgs);\n };\n /**\n * @param searchText\n * @param isMatchcase\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireTextSearchStart = function (searchText, isMatchcase) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'textSearchStart', searchText: searchText, matchCase: isMatchcase };\n this.trigger('textSearchStart', eventArgs);\n };\n /**\n * @param searchText\n * @param isMatchcase\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireTextSearchComplete = function (searchText, isMatchcase) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'textSearchComplete', searchText: searchText, matchCase: isMatchcase };\n this.trigger('textSearchComplete', eventArgs);\n };\n /**\n * @param searchText\n * @param isMatchcase\n * @param bounds\n * @param pageNumber\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireTextSearchHighlight = function (searchText, isMatchcase, bounds, pageNumber) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'textSearchHighlight', searchText: searchText, matchCase: isMatchcase, bounds: bounds, pageNumber: pageNumber };\n this.trigger('textSearchHighlight', eventArgs);\n };\n /**\n * @param bounds\n * @param commonStyle\n * @param cavas\n * @param index\n * @private\n */\n PdfViewer.prototype.renderAdornerLayer = function (bounds, commonStyle, cavas, index) {\n renderAdornerLayer(bounds, commonStyle, cavas, index, this);\n };\n /**\n * @param index\n * @param currentSelector\n * @private\n */\n PdfViewer.prototype.renderSelector = function (index, currentSelector) {\n this.drawing.renderSelector(index, currentSelector);\n };\n /**\n * @param objArray\n * @param currentSelector\n * @param multipleSelection\n * @param preventUpdate\n * @private\n */\n // eslint-disable-next-line max-len\n PdfViewer.prototype.select = function (objArray, currentSelector, multipleSelection, preventUpdate) {\n var allowServerDataBind = this.allowServerDataBinding;\n this.enableServerDataBinding(false);\n if (this.annotationModule) {\n var module = this.annotationModule.textMarkupAnnotationModule;\n var annotationSelect = module && module.selectTextMarkupCurrentPage;\n // eslint-disable-next-line\n var annotation = this.selectedItems.annotations[0];\n if (annotationSelect) {\n // eslint-disable-next-line\n var currentAnnot = this.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation;\n this.annotationModule.textMarkupAnnotationModule.clearCurrentAnnotationSelection(annotationSelect, true);\n this.fireAnnotationUnSelect(currentAnnot.annotName, currentAnnot.pageNumber, currentAnnot);\n }\n if (!multipleSelection) {\n if (this.viewerBase.activeElements && this.viewerBase.activeElements.activePageID >= 0) {\n if (!this.viewerBase.isNewStamp && annotation && annotation.shapeAnnotationType !== 'HandWrittenSignature' && annotation.shapeAnnotationType !== 'SignatureText' && annotation.shapeAnnotationType !== 'SignatureImage') {\n this.fireAnnotationUnSelect(annotation.annotName, annotation.pageIndex, annotation);\n }\n }\n }\n }\n if (this.formDesignerModule) {\n var formField = this.selectedItems.formFields[0];\n if (formField) {\n if (this.formDesignerModule && formField && formField.formFieldAnnotationType) {\n var field = {\n name: formField.name, id: formField.id, value: formField.value, fontFamily: formField.fontFamily, fontSize: formField.fontSize, fontStyle: formField.fontStyle,\n color: formField.color, backgroundColor: formField.backgroundColor, borderColor: formField.borderColor,\n thickness: formField.thickness, alignment: formField.alignment, isReadonly: formField.isReadonly, visibility: formField.visibility,\n maxLength: formField.maxLength, isRequired: formField.isRequired, isPrint: formField.isPrint, rotation: formField.rotateAngle, tooltip: formField.tooltip, options: formField.options,\n isChecked: formField.isChecked, isSelected: formField.isSelected\n };\n this.fireFormFieldUnselectEvent(\"formFieldUnselect\", field, formField.pageIndex);\n }\n }\n }\n var proxy = this;\n this.viewerBase.renderedPagesList.forEach(function (item) {\n proxy.clearSelection(item);\n });\n this.drawing.select(objArray, currentSelector, multipleSelection, preventUpdate);\n this.enableServerDataBinding(allowServerDataBind, true);\n };\n /**\n * @param pageId\n * @private\n */\n PdfViewer.prototype.getPageTable = function (pageId) {\n return this.drawing.getPageTable(pageId);\n };\n /**\n * @param diffX\n * @param diffY\n * @param pageIndex\n * @param currentSelector\n * @param helper\n * @private\n */\n // eslint-disable-next-line max-len\n PdfViewer.prototype.dragSelectedObjects = function (diffX, diffY, pageIndex, currentSelector, helper) {\n return this.drawing.dragSelectedObjects(diffX, diffY, pageIndex, currentSelector, helper);\n };\n /**\n * @param sx\n * @param sy\n * @param pivot\n * @private\n */\n PdfViewer.prototype.scaleSelectedItems = function (sx, sy, pivot) {\n return this.drawing.scaleSelectedItems(sx, sy, pivot);\n };\n /**\n * @param endPoint\n * @param obj\n * @param point\n * @param segment\n * @param target\n * @param targetPortId\n * @param currentSelector\n * @private\n */\n // eslint-disable-next-line max-len\n PdfViewer.prototype.dragConnectorEnds = function (endPoint, obj, point, segment, target, targetPortId, currentSelector) {\n return this.drawing.dragConnectorEnds(endPoint, obj, point, segment, target, null, currentSelector);\n };\n /**\n * @param pageId\n * @private\n */\n PdfViewer.prototype.clearSelection = function (pageId) {\n var allowServerDataBind = this.allowServerDataBinding;\n this.enableServerDataBinding(false);\n var selectormodel = this.selectedItems;\n var node = selectormodel.annotations.length > 0 ? this.selectedItems.annotations[0] : this.selectedItems.formFields[0];\n if (selectormodel.annotations.length > 0) {\n selectormodel.offsetX = 0;\n selectormodel.offsetY = 0;\n selectormodel.width = 0;\n selectormodel.height = 0;\n selectormodel.rotateAngle = 0;\n selectormodel.annotations = [];\n selectormodel.wrapper = null;\n }\n else if (selectormodel.formFields.length > 0) {\n selectormodel.offsetX = 0;\n selectormodel.offsetY = 0;\n selectormodel.width = 0;\n selectormodel.height = 0;\n selectormodel.rotateAngle = 0;\n selectormodel.formFields = [];\n selectormodel.wrapper = null;\n }\n this.drawing.clearSelectorLayer(pageId);\n this.viewerBase.isAnnotationSelect = false;\n this.viewerBase.isFormFieldSelect = false;\n if (this.annotationModule) {\n var module = this.annotationModule.textMarkupAnnotationModule;\n if (module) {\n var annotationSelect = module.selectTextMarkupCurrentPage;\n this.annotationModule.textMarkupAnnotationModule.clearCurrentSelectedAnnotation();\n this.annotationModule.textMarkupAnnotationModule.clearCurrentAnnotationSelection(annotationSelect);\n }\n }\n this.enableServerDataBinding(allowServerDataBind, true);\n };\n /**\n * Get page number from the user coordinates x and y.\n *\n * @param {Point} clientPoint - The user will provide a x, y coordinates.\n * @returns number\n */\n PdfViewer.prototype.getPageNumberFromClientPoint = function (clientPoint) {\n var pageNumber = this.viewerBase.getPageNumberFromClientPoint(clientPoint);\n return pageNumber;\n };\n /**\n * Convert user coordinates to the PDF page coordinates.\n *\n * @param {Point} clientPoint - The user should provide a x, y coordinates.\n * @param {number} pageNumber - We need to pass pageNumber.\n * @returns Point\n */\n PdfViewer.prototype.convertClientPointToPagePoint = function (clientPoint, pageNumber) {\n var pagePoint = this.viewerBase.convertClientPointToPagePoint(clientPoint, pageNumber);\n return pagePoint;\n };\n /**\n * Convert page coordinates to the user coordinates.\n *\n * @param {Point} pagePoint - The user should provide a page x, y coordinates.\n * @param {number} pageNumber - We need to pass pageNumber.\n * @returns Point\n */\n PdfViewer.prototype.convertPagePointToClientPoint = function (pagePoint, pageNumber) {\n var clientPoint = this.viewerBase.convertPagePointToClientPoint(pagePoint, pageNumber);\n return clientPoint;\n };\n /**\n * Convert page coordinates to the scrolling coordinates.\n *\n * @param {Point} pagePoint - The user should provide a page x, y coordinates.\n * @param {number} pageNumber - We need to pass pageNumber.\n * @returns Point\n */\n PdfViewer.prototype.convertPagePointToScrollingPoint = function (pagePoint, pageNumber) {\n var scrollingPoint = this.viewerBase.convertPagePointToScrollingPoint(pagePoint, pageNumber);\n return scrollingPoint;\n };\n /**\n * Brings the given rectangular region to view and zooms in the document to fit the region in client area (view port).\n *\n * @param {Rect} rectangle - Specifies the region in client coordinates that is to be brought to view.\n */\n PdfViewer.prototype.zoomToRect = function (rectangle) {\n this.magnificationModule.zoomToRect(rectangle);\n };\n /**\n * @param obj\n * @private\n */\n PdfViewer.prototype.add = function (obj) {\n return this.drawing.add(obj);\n };\n /**\n * @param obj\n * @private\n */\n PdfViewer.prototype.remove = function (obj) {\n return this.drawing.remove(obj);\n };\n /**\n * @private\n */\n PdfViewer.prototype.copy = function () {\n if (this.annotation)\n this.annotation.isShapeCopied = true;\n else if (this.formDesigner && this.designerMode)\n this.formDesigner.isShapeCopied = true;\n return this.drawing.copy();\n };\n /**\n * @param angle\n * @param currentSelector\n * @private\n */\n PdfViewer.prototype.rotate = function (angle, currentSelector) {\n return this.drawing.rotate(this.selectedItems, angle, null, currentSelector);\n };\n /**\n * @param obj\n * @private\n */\n PdfViewer.prototype.paste = function (obj) {\n var index;\n if (this.viewerBase.activeElements.activePageID) {\n index = this.viewerBase.activeElements.activePageID;\n }\n return this.drawing.paste(obj, index || 0);\n };\n /**\n * @private\n */\n PdfViewer.prototype.refresh = function () {\n for (var i = 0; i < this.annotations.length; i++) {\n if (this.zIndexTable.length !== undefined) {\n var notFound = true;\n for (var i_1 = 0; i_1 < this.zIndexTable.length; i_1++) {\n var objects = this.zIndexTable[i_1].objects;\n for (var j = 0; j < objects.length; j++) {\n objects.splice(j, 1);\n }\n delete this.zIndexTable[i_1];\n }\n if (this.annotations[i]) {\n delete this.annotations[i];\n }\n if (this.selectedItems.annotations && this.selectedItems.annotations[i]) {\n delete this.selectedItems.annotations[i];\n }\n this.zIndexTable = [];\n this.renderDrawing();\n }\n if (this.annotations && this.annotations.length !== 0) {\n this.annotations.length = 0;\n this.selectedItems.annotations.length = 0;\n }\n }\n };\n /**\n * @private\n */\n PdfViewer.prototype.cut = function () {\n var index;\n if (this.viewerBase.activeElements.activePageID) {\n index = this.viewerBase.activeElements.activePageID;\n }\n if (this.annotation)\n this.annotation.isShapeCopied = true;\n else if (this.formDesigner && this.designerMode)\n this.formDesigner.isShapeCopied = true;\n return this.drawing.cut(index || 0);\n };\n /**\n * @param actualObject\n * @param node\n * @private\n */\n PdfViewer.prototype.nodePropertyChange = function (actualObject, node) {\n this.drawing.nodePropertyChange(actualObject, node);\n };\n /**\n * enableServerDataBinding method\n *\n * @returns { void } enableServerDataBinding method.\n * @param {boolean} enable - provide the node value.\n *\n * @private\n */\n PdfViewer.prototype.enableServerDataBinding = function (enable, clearBulkChanges) {\n if (clearBulkChanges === void 0) { clearBulkChanges = false; }\n if (isBlazor()) {\n this.allowServerDataBinding = enable;\n if (clearBulkChanges) {\n this.bulkChanges = {};\n }\n }\n };\n /**\n * @param tx\n * @param ty\n * @param pageIndex\n * @param nodeBounds\n * @param isStamp\n * @param isSkip\n * @private\n */\n // eslint-disable-next-line max-len\n PdfViewer.prototype.checkBoundaryConstraints = function (tx, ty, pageIndex, nodeBounds, isStamp, isSkip) {\n return this.drawing.checkBoundaryConstraints(tx, ty, pageIndex, nodeBounds, isStamp, isSkip);\n };\n __decorate([\n Property()\n ], PdfViewer.prototype, \"serviceUrl\", void 0);\n __decorate([\n Property(0)\n ], PdfViewer.prototype, \"pageCount\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"isDocumentEdited\", void 0);\n __decorate([\n Property(0)\n ], PdfViewer.prototype, \"currentPageNumber\", void 0);\n __decorate([\n Property()\n ], PdfViewer.prototype, \"documentPath\", void 0);\n __decorate([\n Property(null)\n ], PdfViewer.prototype, \"exportAnnotationFileName\", void 0);\n __decorate([\n Property()\n ], PdfViewer.prototype, \"downloadFileName\", void 0);\n __decorate([\n Property('auto')\n ], PdfViewer.prototype, \"height\", void 0);\n __decorate([\n Property('auto')\n ], PdfViewer.prototype, \"width\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableToolbar\", void 0);\n __decorate([\n Property(1)\n ], PdfViewer.prototype, \"retryCount\", void 0);\n __decorate([\n Property([500])\n ], PdfViewer.prototype, \"retryStatusCodes\", void 0);\n __decorate([\n Property(2)\n ], PdfViewer.prototype, \"initialRenderPages\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"showNotificationDialog\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableNavigationToolbar\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableCommentPanel\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"isCommandPanelOpen\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"enableTextMarkupResizer\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"enableMultiLineOverlap\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"isValidFreeText\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"isAnnotationToolbarOpen\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"isAnnotationToolbarVisible\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"isFormDesignerToolbarVisible\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"enableMultiPageAnnotation\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableDownload\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enablePrint\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enablePrintRotation\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableThumbnail\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"isThumbnailViewOpen\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"isSignatureEditable\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableBookmark\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"enableBookmarkStyles\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableHyperlink\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableHandwrittenSignature\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableInkAnnotation\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"restrictZoomRequest\", void 0);\n __decorate([\n Property('CurrentTab')\n ], PdfViewer.prototype, \"hyperlinkOpenState\", void 0);\n __decorate([\n Property('RightClick')\n ], PdfViewer.prototype, \"contextMenuOption\", void 0);\n __decorate([\n Property([])\n ], PdfViewer.prototype, \"disableContextMenuItems\", void 0);\n __decorate([\n Property({ name: '', id: '', type: '', isReadOnly: false, isSelected: false, isChecked: false, value: '', signatureType: [''], fontName: '', fontFamily: 'Helvetica', fontSize: 10, fontStyle: 'None', color: 'black', backgroundColor: 'white', alignment: 'Left', visibility: 'visible', maxLength: 0, isRequired: false, isPrint: false, tooltip: '', pageIndex: -1, options: [], signatureIndicatorSettings: { opacity: 1, backgroundColor: 'orange', width: 19, height: 10, fontSize: 10, text: null, color: 'black' } })\n ], PdfViewer.prototype, \"formFieldCollections\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableNavigation\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableAutoComplete\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableMagnification\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"enableShapeLabel\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableImportAnnotationMeasurement\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enablePinchZoom\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableTextSelection\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableTextSearch\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableAnnotation\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableFormFields\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableFormDesigner\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"designerMode\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"enableFormFieldsValidation\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"isFormFieldDocument\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"enableDesktopMode\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"hideSaveSignature\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableFreeText\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableTextMarkupAnnotation\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableShapeAnnotation\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableMeasureAnnotation\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableStampAnnotations\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableStickyNotesAnnotation\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableAnnotationToolbar\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableFormDesignerToolbar\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"isBookmarkPanelOpen\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"isInitialFieldToolbarSelection\", void 0);\n __decorate([\n Property('TextSelection')\n ], PdfViewer.prototype, \"interactionMode\", void 0);\n __decorate([\n Property('Default')\n ], PdfViewer.prototype, \"zoomMode\", void 0);\n __decorate([\n Property('Default')\n ], PdfViewer.prototype, \"signatureFitMode\", void 0);\n __decorate([\n Property('Default')\n ], PdfViewer.prototype, \"printMode\", void 0);\n __decorate([\n Property(0)\n ], PdfViewer.prototype, \"zoomValue\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableZoomOptimization\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"isExtractText\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"isMaintainSelection\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"hideEmptyDigitalSignatureFields\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"showDigitalSignatureAppearance\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableAccessibilityTags\", void 0);\n __decorate([\n Property('M/d/yyyy h:mm:ss a')\n ], PdfViewer.prototype, \"dateTimeFormat\", void 0);\n __decorate([\n Property({ showTooltip: true, toolbarItems: ['OpenOption', 'UndoRedoTool', 'PageNavigationTool', 'MagnificationTool', 'PanTool', 'SelectionTool', 'CommentTool', 'SubmitForm', 'AnnotationEditTool', 'FormDesignerEditTool', 'FreeTextAnnotationOption', 'InkAnnotationOption', 'ShapeAnnotationOption', 'StampAnnotation', 'SignatureOption', 'SearchOption', 'PrintOption', 'DownloadOption'], annotationToolbarItems: ['HighlightTool', 'UnderlineTool', 'StrikethroughTool', 'ColorEditTool', 'OpacityEditTool', 'AnnotationDeleteTool', 'StampAnnotationTool', 'HandWrittenSignatureTool', 'InkAnnotationTool', 'ShapeTool', 'CalibrateTool', 'StrokeColorEditTool', 'ThicknessEditTool', 'FreeTextAnnotationTool', 'FontFamilyAnnotationTool', 'FontSizeAnnotationTool', 'FontStylesAnnotationTool', 'FontAlignAnnotationTool', 'FontColorAnnotationTool', 'CommentPanelTool'], formDesignerToolbarItems: ['TextboxTool', 'PasswordTool', 'CheckBoxTool', 'RadioButtonTool', 'DropdownTool', 'ListboxTool', 'DrawSignatureTool', 'DeleteTool'] })\n ], PdfViewer.prototype, \"toolbarSettings\", void 0);\n __decorate([\n Property({ ajaxHeaders: [], withCredentials: false })\n ], PdfViewer.prototype, \"ajaxRequestSettings\", void 0);\n __decorate([\n Property({ customStampName: '', customStampImageSource: '' })\n ], PdfViewer.prototype, \"customStamp\", void 0);\n __decorate([\n Property({ load: 'Load', renderPages: 'RenderPdfPages', unload: 'Unload', download: 'Download', renderThumbnail: 'RenderThumbnailImages', print: 'PrintImages', renderComments: 'RenderAnnotationComments', importAnnotations: 'ImportAnnotations', exportAnnotations: 'ExportAnnotations', importFormFields: 'ImportFormFields', exportFormFields: 'ExportFormFields', renderTexts: 'RenderPdfTexts' })\n ], PdfViewer.prototype, \"serverActionSettings\", void 0);\n __decorate([\n Property({ name: '', isReadOnly: false, visibility: 'visible', isRequired: false, isPrint: true, tooltip: '', thickness: 1, signatureIndicatorSettings: { opacity: 1, backgroundColor: 'orange', width: 19, height: 10, fontSize: 10, text: null, color: 'black' }, signatureDialogSettings: { displayMode: DisplayMode.Draw | DisplayMode.Text | DisplayMode.Upload, hideSaveSignature: false } })\n ], PdfViewer.prototype, \"signatureFieldSettings\", void 0);\n __decorate([\n Property({ name: '', isReadOnly: false, visibility: 'visible', isRequired: false, isPrint: true, tooltip: '', thickness: 1, initialIndicatorSettings: { opacity: 1, backgroundColor: 'orange', width: 19, height: 10, fontSize: 10, text: null, color: 'black' }, initialDialogSettings: { displayMode: DisplayMode.Draw | DisplayMode.Text | DisplayMode.Upload, hideSaveSignature: false } })\n ], PdfViewer.prototype, \"initialFieldSettings\", void 0);\n __decorate([\n Property({ opacity: 1, color: '#FFDF56', author: 'Guest', annotationSelectorSettings: { selectionBorderColor: '', resizerBorderColor: 'black', resizerFillColor: '#FF4081', resizerSize: 8, selectionBorderThickness: 1, resizerShape: 'Square', selectorLineDashArray: [], resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges }, isLock: false, enableMultiPageAnnotation: false, enableTextMarkupResizer: false, allowedInteractions: ['None'], isPrint: true })\n ], PdfViewer.prototype, \"highlightSettings\", void 0);\n __decorate([\n Property({ opacity: 1, color: '#ff0000', author: 'Guest', annotationSelectorSettings: { selectionBorderColor: '', resizerBorderColor: 'black', resizerFillColor: '#FF4081', resizerSize: 8, selectionBorderThickness: 1, resizerShape: 'Square', selectorLineDashArray: [], resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges }, isLock: false, enableMultiPageAnnotation: false, enableTextMarkupResizer: false, allowedInteractions: ['None'], isPrint: true })\n ], PdfViewer.prototype, \"strikethroughSettings\", void 0);\n __decorate([\n Property({ opacity: 1, color: '#00ff00', author: 'Guest', annotationSelectorSettings: { selectionBorderColor: '', resizerBorderColor: 'black', resizerFillColor: '#FF4081', resizerSize: 8, selectionBorderThickness: 1, resizerShape: 'Square', selectorLineDashArray: [], resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges }, isLock: false, enableMultiPageAnnotation: false, enableTextMarkupResizer: false, allowedInteractions: ['None'], isPrint: true })\n ], PdfViewer.prototype, \"underlineSettings\", void 0);\n __decorate([\n Property({ opacity: 1, fillColor: '#ffffff00', strokeColor: '#ff0000', author: 'Guest', thickness: 1, borderDashArray: 0, lineHeadStartStyle: 'None', lineHeadEndStyle: 'None', annotationSelectorSettings: { selectionBorderColor: '', resizerBorderColor: 'black', resizerFillColor: '#FF4081', resizerSize: 8, selectionBorderThickness: 1, resizerShape: 'Square', selectorLineDashArray: [], resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges, resizerCursorType: null }, minHeight: 0, minWidth: 0, maxWidth: 0, maxHeight: 0, isLock: false, allowedInteractions: ['None'], isPrint: true })\n ], PdfViewer.prototype, \"lineSettings\", void 0);\n __decorate([\n Property({ opacity: 1, fillColor: '#ffffff00', strokeColor: '#ff0000', author: 'Guest', thickness: 1, borderDashArray: 0, lineHeadStartStyle: 'Closed', lineHeadEndStyle: 'Closed', annotationSelectorSettings: { selectionBorderColor: '', resizerBorderColor: 'black', resizerFillColor: '#FF4081', resizerSize: 8, selectionBorderThickness: 1, resizerShape: 'Square', selectorLineDashArray: [], resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges, resizerCursorType: null }, minHeight: 0, minWidth: 0, maxWidth: 0, maxHeight: 0, isLock: false, allowedInteractions: ['None'], isPrint: true })\n ], PdfViewer.prototype, \"arrowSettings\", void 0);\n __decorate([\n Property({ opacity: 1, fillColor: '#ffffff00', strokeColor: '#ff0000', author: 'Guest', thickness: 1, annotationSelectorSettings: { selectionBorderColor: '', resizerBorderColor: 'black', resizerFillColor: '#FF4081', resizerSize: 8, selectionBorderThickness: 1, resizerShape: 'Square', selectorLineDashArray: [], resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges, resizerCursorType: null }, minHeight: 0, minWidth: 0, maxWidth: 0, maxHeight: 0, isLock: false, allowedInteractions: ['None'], isPrint: true })\n ], PdfViewer.prototype, \"rectangleSettings\", void 0);\n __decorate([\n Property({ opacity: 1, fillColor: '#ffffff00', borderColor: '#ff0000', fontColor: '#000', fontSize: 16, labelHeight: 24.6, labelMaxWidth: 151, labelContent: 'Label' })\n ], PdfViewer.prototype, \"shapeLabelSettings\", void 0);\n __decorate([\n Property({ opacity: 1, fillColor: '#ffffff00', strokeColor: '#ff0000', author: 'Guest', thickness: 1, annotationSelectorSettings: { selectionBorderColor: '', resizerBorderColor: 'black', resizerFillColor: '#FF4081', resizerSize: 8, selectionBorderThickness: 1, resizerShape: 'Square', selectorLineDashArray: [], resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges, resizerCursorType: null }, minHeight: 0, minWidth: 0, maxWidth: 0, maxHeight: 0, isLock: false, allowedInteractions: ['None'], isPrint: true })\n ], PdfViewer.prototype, \"circleSettings\", void 0);\n __decorate([\n Property({ opacity: 1, fillColor: '#ffffff00', strokeColor: '#ff0000', author: 'Guest', thickness: 1, annotationSelectorSettings: { selectionBorderColor: '', resizerBorderColor: 'black', resizerFillColor: '#FF4081', resizerSize: 8, selectionBorderThickness: 1, resizerShape: 'Square', selectorLineDashArray: [], resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges, resizerCursorType: null }, minHeight: 0, minWidth: 0, maxWidth: 0, maxHeight: 0, isLock: false, allowedInteractions: ['None'], isPrint: true })\n ], PdfViewer.prototype, \"polygonSettings\", void 0);\n __decorate([\n Property({ opacity: 1, author: 'Guest', annotationSelectorSettings: { selectionBorderColor: '', resizerBorderColor: 'black', resizerFillColor: '#FF4081', resizerSize: 8, selectionBorderThickness: 1, resizerShape: 'Square', selectorLineDashArray: [], resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges, resizerCursorType: null }, minHeight: 0, minWidth: 0, maxWidth: 0, maxHeight: 0, isLock: false, dynamicStamps: [DynamicStampItem.Revised, DynamicStampItem.Reviewed, DynamicStampItem.Received, DynamicStampItem.Confidential, DynamicStampItem.Approved, DynamicStampItem.NotApproved], signStamps: [SignStampItem.Witness, SignStampItem.InitialHere, SignStampItem.SignHere, SignStampItem.Accepted, SignStampItem.Rejected], standardBusinessStamps: [StandardBusinessStampItem.Approved, StandardBusinessStampItem.NotApproved, StandardBusinessStampItem.Draft, StandardBusinessStampItem.Final, StandardBusinessStampItem.Completed, StandardBusinessStampItem.Confidential, StandardBusinessStampItem.ForPublicRelease, StandardBusinessStampItem.NotForPublicRelease, StandardBusinessStampItem.ForComment, StandardBusinessStampItem.Void, StandardBusinessStampItem.PreliminaryResults, StandardBusinessStampItem.InformationOnly], allowedInteractions: ['None'], isPrint: true })\n ], PdfViewer.prototype, \"stampSettings\", void 0);\n __decorate([\n Property({ opacity: 1, author: 'Guest', width: 0, height: 0, left: 0, top: 0, minHeight: 0, minWidth: 0, maxWidth: 0, maxHeight: 0, isLock: false, enableCustomStamp: true, allowedInteractions: ['None'], isPrint: true })\n ], PdfViewer.prototype, \"customStampSettings\", void 0);\n __decorate([\n Property({ opacity: 1, fillColor: '#ffffff00', strokeColor: '#ff0000', author: 'Guest', thickness: 1, borderDashArray: 0, lineHeadStartStyle: 'Closed', lineHeadEndStyle: 'Closed', annotationSelectorSettings: { selectionBorderColor: '', resizerBorderColor: 'black', resizerFillColor: '#FF4081', resizerSize: 8, selectionBorderThickness: 1, resizerShape: 'Square', selectorLineDashArray: [], resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges, resizerCursorType: null }, minHeight: 0, minWidth: 0, maxWidth: 0, maxHeight: 0, isLock: false, leaderLength: 40, resizeCursorType: CursorType.move, allowedInteractions: ['None'], isPrint: true })\n ], PdfViewer.prototype, \"distanceSettings\", void 0);\n __decorate([\n Property({ opacity: 1, fillColor: '#ffffff00', strokeColor: '#ff0000', author: 'Guest', thickness: 1, borderDashArray: 0, lineHeadStartStyle: 'Open', lineHeadEndStyle: 'Open', minHeight: 0, minWidth: 0, maxWidth: 0, maxHeight: 0, isLock: false, annotationSelectorSettings: { selectionBorderColor: '', resizerBorderColor: 'black', resizerFillColor: '#FF4081', resizerSize: 8, selectionBorderThickness: 1, resizerShape: 'Square', selectorLineDashArray: [], resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges, resizerCursorType: null }, allowedInteractions: ['None'], isPrint: true })\n ], PdfViewer.prototype, \"perimeterSettings\", void 0);\n __decorate([\n Property({ opacity: 1, fillColor: '#ffffff00', strokeColor: '#ff0000', author: 'Guest', thickness: 1, minHeight: 0, minWidth: 0, maxWidth: 0, maxHeight: 0, isLock: false, annotationSelectorSettings: { selectionBorderColor: '', resizerBorderColor: 'black', resizerFillColor: '#FF4081', resizerSize: 8, selectionBorderThickness: 1, resizerShape: 'Square', selectorLineDashArray: [], resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges, resizerCursorType: null }, allowedInteractions: ['None'], isPrint: true })\n ], PdfViewer.prototype, \"areaSettings\", void 0);\n __decorate([\n Property({ opacity: 1, fillColor: '#ffffff00', strokeColor: '#ff0000', author: 'Guest', thickness: 1, annotationSelectorSettings: { selectionBorderColor: '', resizerBorderColor: 'black', resizerFillColor: '#FF4081', resizerSize: 8, selectionBorderThickness: 1, resizerShape: 'Square', selectorLineDashArray: [], resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges, resizerCursorType: null }, minHeight: 0, minWidth: 0, maxWidth: 0, maxHeight: 0, isLock: false, allowedInteractions: ['None'], isPrint: true })\n ], PdfViewer.prototype, \"radiusSettings\", void 0);\n __decorate([\n Property({ opacity: 1, fillColor: '#ffffff00', strokeColor: '#ff0000', author: 'Guest', thickness: 1, minHeight: 0, minWidth: 0, maxWidth: 0, maxHeight: 0, isLock: false, annotationSelectorSettings: { selectionBorderColor: '', resizerBorderColor: 'black', resizerFillColor: '#FF4081', resizerSize: 8, selectionBorderThickness: 1, resizerShape: 'Square', selectorLineDashArray: [], resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges, resizerCursorType: null }, allowedInteractions: ['None'], isPrint: true })\n ], PdfViewer.prototype, \"volumeSettings\", void 0);\n __decorate([\n Property({ author: 'Guest', opacity: 1, annotationSelectorSettings: { selectionBorderColor: '', resizerBorderColor: 'black', resizerFillColor: '#FF4081', resizerSize: 8, selectionBorderThickness: 1, resizerShape: 'Square', selectorLineDashArray: [], resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges, resizerCursorType: null }, isLock: false, allowedInteractions: ['None'], isPrint: true })\n ], PdfViewer.prototype, \"stickyNotesSettings\", void 0);\n __decorate([\n Property({ opacity: 1, fillColor: '#ffffff00', borderColor: '#ffffff00', author: 'Guest', borderWidth: 1, width: 151, fontSize: 16, height: 24.6, fontColor: '#000', fontFamily: 'Helvetica', defaultText: 'Type Here', textAlignment: 'Left', fontStyle: FontStyle.None, allowTextOnly: false, annotationSelectorSettings: { selectionBorderColor: '', resizerBorderColor: 'black', resizerFillColor: '#FF4081', resizerSize: 8, selectionBorderThickness: 1, resizerShape: 'Square', selectorLineDashArray: [], resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges, resizerCursorType: null }, minHeight: 0, minWidth: 0, maxWidth: 0, maxHeight: 0, isLock: false, allowedInteractions: ['None'], isPrint: true, isReadonly: false, enableAutoFit: false })\n ], PdfViewer.prototype, \"freeTextSettings\", void 0);\n __decorate([\n Property({ conversionUnit: 'in', displayUnit: 'in', scaleRatio: 1, depth: 96 })\n ], PdfViewer.prototype, \"measurementSettings\", void 0);\n __decorate([\n Property({ selectionBorderColor: '', resizerBorderColor: 'black', resizerFillColor: '#FF4081', resizerSize: 8, selectionBorderThickness: 1, resizerShape: 'Square', selectorLineDashArray: [], resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges, resizerCursorType: null })\n ], PdfViewer.prototype, \"annotationSelectorSettings\", void 0);\n __decorate([\n Property({ searchHighlightColor: '#fdd835', searchColor: '#8b4c12' })\n ], PdfViewer.prototype, \"textSearchColorSettings\", void 0);\n __decorate([\n Property({ displayMode: DisplayMode.Draw | DisplayMode.Text | DisplayMode.Upload, hideSaveSignature: false })\n ], PdfViewer.prototype, \"signatureDialogSettings\", void 0);\n __decorate([\n Property({ displayMode: DisplayMode.Draw | DisplayMode.Text | DisplayMode.Upload, hideSaveSignature: false })\n ], PdfViewer.prototype, \"initialDialogSettings\", void 0);\n __decorate([\n Property({ signatureItem: ['Signature', 'Initial'], saveSignatureLimit: 1, saveInitialLimit: 1, opacity: 1, strokeColor: '#000000', width: 150, height: 100, thickness: 1, annotationSelectorSettings: { selectionBorderColor: '', resizerBorderColor: 'black', resizerFillColor: '#FF4081', resizerSize: 8, selectionBorderThickness: 1, resizerShape: 'Square', selectorLineDashArray: [], resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges, resizerCursorType: null }, allowedInteractions: ['None'], signatureDialogSettings: { displayMode: DisplayMode.Draw | DisplayMode.Text | DisplayMode.Upload, hideSaveSignature: false }, initialDialogSettings: { displayMode: DisplayMode.Draw | DisplayMode.Text | DisplayMode.Upload, hideSaveSignature: false } })\n ], PdfViewer.prototype, \"handWrittenSignatureSettings\", void 0);\n __decorate([\n Property({ author: 'Guest', opacity: 1, strokeColor: '#ff0000', thickness: 1, annotationSelectorSettings: { selectionBorderColor: '', resizerBorderColor: 'black', resizerFillColor: '#FF4081', resizerSize: 8, selectionBorderThickness: 1, resizerShape: 'Square', selectorLineDashArray: [], resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges, resizerCursorType: null }, isLock: false, allowedInteractions: ['None'], isPrint: true })\n ], PdfViewer.prototype, \"inkAnnotationSettings\", void 0);\n __decorate([\n Property({ author: 'Guest', minHeight: 0, minWidth: 0, maxWidth: 0, maxHeight: 0, isLock: false, skipPrint: false, skipDownload: false, allowedInteractions: ['None'] })\n ], PdfViewer.prototype, \"annotationSettings\", void 0);\n __decorate([\n Property({ enableTileRendering: true, x: 0, y: 0 })\n ], PdfViewer.prototype, \"tileRenderingSettings\", void 0);\n __decorate([\n Property({ delayPageRequestTimeOnScroll: 100 })\n ], PdfViewer.prototype, \"scrollSettings\", void 0);\n __decorate([\n Property({ name: '', value: '', fontFamily: 'Helvetica', fontSize: 10, fontStyle: 'None', color: 'black', borderColor: 'black', backgroundColor: 'white', alignment: 'Left', isReadOnly: false, visibility: 'visible', maxLength: 0, isRequired: false, isPrint: true, tooltip: '', thickness: 1, isMultiline: false })\n ], PdfViewer.prototype, \"textFieldSettings\", void 0);\n __decorate([\n Property({ name: '', value: '', fontFamily: 'Helvetica', fontSize: 10, fontStyle: 'None', color: 'black', borderColor: 'black', backgroundColor: 'white', alignment: 'Left', isReadOnly: false, visibility: 'visible', maxLength: 0, isRequired: false, isPrint: true, tooltip: '', thickness: 1 })\n ], PdfViewer.prototype, \"passwordFieldSettings\", void 0);\n __decorate([\n Property({ name: '', isChecked: false, backgroundColor: 'white', isReadOnly: false, visibility: 'visible', isPrint: true, tooltip: '', isRequired: false, thickness: 1, borderColor: 'black' })\n ], PdfViewer.prototype, \"checkBoxFieldSettings\", void 0);\n __decorate([\n Property({ name: '', isSelected: false, backgroundColor: 'white', isReadOnly: false, visibility: 'visible', isPrint: true, tooltip: '', isRequired: false, thickness: 1, borderColor: 'black' })\n ], PdfViewer.prototype, \"radioButtonFieldSettings\", void 0);\n __decorate([\n Property({ name: '', fontFamily: 'Helvetica', fontSize: 10, fontStyle: 'None', color: 'black', backgroundColor: 'white', alignment: 'Left', isReadOnly: false, visibility: 'visible', isRequired: false, isPrint: true, tooltip: '', options: [], thickness: 1, borderColor: 'black' })\n ], PdfViewer.prototype, \"DropdownFieldSettings\", void 0);\n __decorate([\n Property({ name: '', fontFamily: 'Helvetica', fontSize: 10, fontStyle: 'None', color: 'black', backgroundColor: 'white', alignment: 'Left', isReadOnly: false, visibility: 'visible', isRequired: false, isPrint: false, tooltip: '', options: [], thickness: 1, borderColor: 'black' })\n ], PdfViewer.prototype, \"listBoxFieldSettings\", void 0);\n __decorate([\n Property({ contextMenuAction: 'RightClick', contextMenuItems: [ContextMenuItem.Comment, ContextMenuItem.Copy, ContextMenuItem.Cut, ContextMenuItem.Delete, ContextMenuItem.Highlight, ContextMenuItem.Paste, ContextMenuItem.Properties, ContextMenuItem.ScaleRatio, ContextMenuItem.Strikethrough, ContextMenuItem.Underline] })\n ], PdfViewer.prototype, \"contextMenuSettings\", void 0);\n __decorate([\n Complex({}, Selector)\n ], PdfViewer.prototype, \"selectedItems\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"documentLoad\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"documentUnload\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"documentLoadFailed\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"ajaxRequestFailed\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"ajaxRequestSuccess\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"validateFormFields\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"pageClick\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"pageChange\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"hyperlinkClick\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"hyperlinkMouseOver\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"zoomChange\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"annotationAdd\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"annotationRemove\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"annotationPropertiesChange\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"annotationResize\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"addSignature\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"removeSignature\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"moveSignature\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"signaturePropertiesChange\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"resizeSignature\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"signatureSelect\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"annotationSelect\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"annotationUnSelect\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"annotationDoubleClick\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"annotationMove\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"annotationMoving\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"annotationMouseover\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"annotationMouseLeave\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"pageMouseover\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"importStart\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"exportStart\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"importSuccess\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"exportSuccess\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"importFailed\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"exportFailed\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"extractTextCompleted\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"thumbnailClick\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"bookmarkClick\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"textSelectionStart\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"textSelectionEnd\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"downloadStart\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"buttonFieldClick\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"formFieldClick\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"downloadEnd\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"printStart\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"printEnd\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"textSearchStart\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"textSearchComplete\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"textSearchHighlight\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"ajaxRequestInitiate\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"commentAdd\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"commentEdit\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"commentDelete\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"commentSelect\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"commentStatusChanged\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"beforeAddFreeText\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"formFieldFocusOut\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"formFieldAdd\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"formFieldRemove\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"formFieldPropertiesChange\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"formFieldMouseLeave\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"formFieldMouseover\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"formFieldMove\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"formFieldResize\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"formFieldSelect\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"formFieldUnselect\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"formFieldDoubleClick\", void 0);\n __decorate([\n Collection([], PdfAnnotationBase)\n ], PdfViewer.prototype, \"annotations\", void 0);\n __decorate([\n Collection([], PdfFormFieldBase)\n ], PdfViewer.prototype, \"formFields\", void 0);\n __decorate([\n Property()\n ], PdfViewer.prototype, \"drawingObject\", void 0);\n PdfViewer = __decorate([\n NotifyPropertyChanges\n ], PdfViewer);\n return PdfViewer;\n}(Component));\nexport { PdfViewer };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { PdfViewer } from '@syncfusion/ej2-pdfviewer';\nimport { ComponentBase, applyMixins } from '@syncfusion/ej2-react-base';\n/**\n * `Represents the react PdfViewer Component.\n * ```tsx\n * \n * ```\n */\nvar PdfViewerComponent = /** @class */ (function (_super) {\n __extends(PdfViewerComponent, _super);\n function PdfViewerComponent(props) {\n var _this = _super.call(this, props) || this;\n _this.initRenderCalled = false;\n _this.checkInjectedModules = true;\n _this.statelessTemplateProps = null;\n _this.templateProps = null;\n _this.immediateRender = true;\n _this.portals = [];\n return _this;\n }\n PdfViewerComponent.prototype.render = function () {\n if (((this.element && !this.initRenderCalled) || this.refreshing) && !this.isReactForeceUpdate) {\n _super.prototype.render.call(this);\n this.initRenderCalled = true;\n }\n else {\n return React.createElement('div', this.getDefaultAttributes(), [].concat(this.props.children, this.portals));\n }\n };\n return PdfViewerComponent;\n}(PdfViewer));\nexport { PdfViewerComponent };\napplyMixins(PdfViewerComponent, [ComponentBase, React.Component]);\n","/**\n * Navigation module\n */\nvar Navigation = /** @class */ (function () {\n /**\n * @param viewer\n * @param viewerBase\n * @param viewer\n * @param viewerBase\n * @private\n */\n function Navigation(viewer, viewerBase) {\n this.pdfViewer = viewer;\n this.pdfViewerBase = viewerBase;\n }\n /**\n * Navigate to Next page of the PDF document\n *\n * @returns void\n */\n Navigation.prototype.goToNextPage = function () {\n this.pageNumber = this.pdfViewerBase.currentPageNumber;\n this.pageNumber++;\n if (this.pageNumber <= this.pdfViewerBase.pageCount) {\n this.pdfViewerBase.updateScrollTop(this.pageNumber - 1);\n }\n };\n /**\n * Navigate to Previous page of the PDF document\n *\n * @returns void\n */\n Navigation.prototype.goToPreviousPage = function () {\n this.pageNumber = this.pdfViewerBase.currentPageNumber;\n this.pageNumber--;\n if (this.pageNumber > 0) {\n this.pdfViewerBase.updateScrollTop(this.pageNumber - 1);\n }\n };\n /**\n * Navigate to given Page number\n * Note : In case if we have provided incorrect page number as argument it will retain the existing page\n *\n * @param {number} pageNumber - Defines the page number to navigate\n * @returns void\n */\n Navigation.prototype.goToPage = function (pageNumber) {\n if (pageNumber > 0 && pageNumber <= this.pdfViewerBase.pageCount && this.pdfViewerBase.currentPageNumber !== pageNumber) {\n this.pdfViewerBase.updateScrollTop(pageNumber - 1);\n }\n if (this.pdfViewer.magnificationModule) {\n this.pdfViewer.magnificationModule.resizeCanvas(pageNumber);\n }\n var textLayer = document.getElementById(this.pdfViewer.element.id + '_textLayer_' + (pageNumber - 1));\n if (textLayer) {\n textLayer.style.display = 'block';\n }\n };\n /**\n * Navigate to First page of the PDF document\n *\n * @returns void\n */\n Navigation.prototype.goToFirstPage = function () {\n this.pageNumber = 0;\n this.pdfViewerBase.updateScrollTop(this.pageNumber);\n };\n /**\n * Navigate to Last page of the PDF document\n *\n * @returns void\n */\n Navigation.prototype.goToLastPage = function () {\n this.pageNumber = this.pdfViewerBase.pageCount - 1;\n this.pdfViewerBase.updateScrollTop(this.pageNumber);\n };\n /**\n * @private\n */\n Navigation.prototype.destroy = function () {\n this.pageNumber = 0;\n };\n /**\n * @private\n */\n Navigation.prototype.getModuleName = function () {\n return 'Navigation';\n };\n return Navigation;\n}());\nexport { Navigation };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/* eslint-disable @typescript-eslint/triple-slash-reference */\n/// \nimport { attributes, NotifyPropertyChanges, Property } from '@syncfusion/ej2-base';\nimport { Browser, Complex, getUniqueID, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\nimport { MenuBase, FieldSettings } from '../common/menu-base';\nvar VMENU = 'e-vertical';\nvar SCROLLABLE = 'e-scrollable';\nvar HAMBURGER = 'e-hamburger';\n/**\n * The Menu is a graphical user interface that serve as navigation headers for your application or site.\n * ```html\n * \n * ```\n * ```typescript\n * \n * ```\n */\nvar Menu = /** @class */ (function (_super) {\n __extends(Menu, _super);\n /**\n * Constructor for creating the component.\n *\n * @private\n * @param {MenuModel} options - Specifies the menu model\n * @param {string} element - Specifies the element\n */\n function Menu(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.tempItems = [];\n return _this;\n }\n /**\n * Get module name.\n *\n * @private\n * @returns {string} - Module Name\n */\n Menu.prototype.getModuleName = function () {\n return 'menu';\n };\n /**\n * For internal use only - prerender processing.\n *\n * @private\n * @returns {void}\n */\n Menu.prototype.preRender = function () {\n this.isMenu = true;\n this.element.id = this.element.id || getUniqueID('ej2-menu');\n if (this.template) {\n try {\n if (document.querySelectorAll(this.template).length) {\n this.template = document.querySelector(this.template).innerHTML.trim();\n this.clearChanges();\n }\n }\n catch (e) {\n /* action on catch */\n }\n this.updateMenuItems(this.items);\n }\n else {\n this.updateMenuItems(this.items);\n }\n _super.prototype.preRender.call(this);\n };\n Menu.prototype.initialize = function () {\n _super.prototype.initialize.call(this);\n attributes(this.element, { 'role': 'menubar', 'tabindex': '0' });\n if (this.orientation === 'Vertical') {\n this.element.classList.add(VMENU);\n if (this.hamburgerMode && !this.target) {\n this.element.previousElementSibling.classList.add(VMENU);\n }\n this.element.setAttribute('aria-orientation', 'vertical');\n }\n else {\n if (Browser.isDevice && !this.enableScrolling) {\n this.element.parentElement.classList.add(SCROLLABLE);\n }\n }\n if (this.hamburgerMode) {\n this.element.parentElement.classList.add(HAMBURGER);\n if (this.orientation === 'Horizontal') {\n this.element.classList.add('e-hide-menu');\n }\n }\n };\n Menu.prototype.updateMenuItems = function (items) {\n this.tempItems = items;\n this.items = [];\n this.tempItems.map(this.createMenuItems, this);\n this.setProperties({ items: this.items }, true);\n this.tempItems = [];\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @private\n * @param {MenuModel} newProp - Specifies the new properties.\n * @param {MenuModel} oldProp - Specifies the old properties.\n * @returns {void}\n */\n Menu.prototype.onPropertyChanged = function (newProp, oldProp) {\n var _this = this;\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'orientation':\n if (newProp.orientation === 'Vertical') {\n this.element.classList.add(VMENU);\n if (this.hamburgerMode) {\n if (!this.target) {\n this.element.previousElementSibling.classList.add(VMENU);\n }\n this.element.classList.remove('e-hide-menu');\n }\n this.element.setAttribute('aria-orientation', 'vertical');\n }\n else {\n this.element.classList.remove(VMENU);\n if (this.hamburgerMode) {\n if (!this.target) {\n this.element.previousElementSibling.classList.remove(VMENU);\n }\n this.element.classList.add('e-hide-menu');\n }\n this.element.removeAttribute('aria-orientation');\n }\n break;\n case 'items':\n if (!Object.keys(oldProp.items).length) {\n this.updateMenuItems(newProp.items);\n }\n break;\n case 'hamburgerMode':\n if (!this.element.previousElementSibling) {\n _super.prototype.createHeaderContainer.call(this);\n }\n if (newProp.hamburgerMode) {\n this.element.parentElement.classList.add(HAMBURGER);\n [].slice.call(this.element.getElementsByClassName('e-blankicon')).forEach(function (li) {\n li.style[_this.enableRtl ? 'paddingRight' : 'paddingLeft'] = '';\n });\n }\n else {\n this.element.parentElement.classList.remove(HAMBURGER);\n if (this.orientation === 'Vertical') {\n this.setBlankIconStyle(this.element);\n }\n }\n if (this.orientation === 'Vertical') {\n if (!this.target) {\n this.element.previousElementSibling.classList.add(VMENU);\n }\n this.element.classList.remove('e-hide-menu');\n }\n else {\n if (this.target) {\n this.element.previousElementSibling.classList.add(VMENU);\n }\n else {\n this.element.previousElementSibling.classList.remove(VMENU);\n }\n this.element.classList[newProp.hamburgerMode ? 'add' : 'remove']('e-hide-menu');\n }\n break;\n case 'title':\n if (this.hamburgerMode && this.element.previousElementSibling) {\n newProp.title = (this.enableHtmlSanitizer) ? SanitizeHtmlHelper.sanitize(newProp.title) : newProp.title;\n this.element.previousElementSibling.querySelector('.e-menu-title').innerHTML = newProp.title;\n }\n break;\n case 'target':\n if (this.hamburgerMode) {\n this.unWireEvents(oldProp.target);\n this.wireEvents();\n if (this.orientation === 'Horizontal') {\n if (!newProp.target) {\n if (!this.element.previousElementSibling) {\n _super.prototype.createHeaderContainer.call(this);\n }\n this.element.previousElementSibling.classList.remove(VMENU);\n }\n else {\n this.element.previousElementSibling.classList.add(VMENU);\n }\n this.element.classList.add('e-hide-menu');\n }\n }\n break;\n }\n }\n _super.prototype.onPropertyChanged.call(this, newProp, oldProp);\n };\n Menu.prototype.createMenuItems = function (item) {\n var idx;\n var i;\n var items = this.items;\n var pIdField = this.getField('parentId');\n if (item[\"\" + pIdField]) {\n idx = this.getIndex(item[\"\" + pIdField].toString(), true);\n for (i = 0; i < idx.length; i++) {\n if (!items[idx[i]].items) {\n items[idx[i]].items = [];\n }\n items = items[idx[i]].items;\n }\n items.push(item);\n }\n else {\n this.items.push(item);\n }\n };\n /**\n * This method is used to open the Menu in hamburger mode.\n *\n * @function open\n * @returns {void}\n */\n Menu.prototype.open = function () {\n _super.prototype.openHamburgerMenu.call(this);\n };\n /**\n * Closes the Menu if it is opened in hamburger mode.\n *\n * @function close\n * @returns {void}\n */\n Menu.prototype.close = function () {\n _super.prototype.closeHamburgerMenu.call(this);\n };\n __decorate([\n Property('Horizontal')\n ], Menu.prototype, \"orientation\", void 0);\n __decorate([\n Property('')\n ], Menu.prototype, \"target\", void 0);\n __decorate([\n Property(null)\n ], Menu.prototype, \"template\", void 0);\n __decorate([\n Property(false)\n ], Menu.prototype, \"enableScrolling\", void 0);\n __decorate([\n Property(false)\n ], Menu.prototype, \"hamburgerMode\", void 0);\n __decorate([\n Property('Menu')\n ], Menu.prototype, \"title\", void 0);\n __decorate([\n Property(false)\n ], Menu.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Complex({ itemId: 'id', text: 'text', parentId: 'parentId', iconCss: 'iconCss', url: 'url', separator: 'separator', children: 'items' }, FieldSettings)\n ], Menu.prototype, \"fields\", void 0);\n Menu = __decorate([\n NotifyPropertyChanges\n ], Menu);\n return Menu;\n}(MenuBase));\nexport { Menu };\n","/* eslint-disable */\nimport { createElement, Browser, isBlazor, isNullOrUndefined, closest } from '@syncfusion/ej2-base';\nimport { Toolbar as Tool, Menu } from '@syncfusion/ej2-navigations';\n// eslint-disable-next-line max-len\nimport { DropDownButton } from '@syncfusion/ej2-splitbuttons';\nimport { ColorPicker, Slider } from '@syncfusion/ej2-inputs';\nimport { cloneObject } from '../drawing/drawing-util';\nimport { ComboBox } from '@syncfusion/ej2-dropdowns';\nimport { Query } from '@syncfusion/ej2-data';\nimport { DynamicStampItem, SignStampItem, StandardBusinessStampItem } from '../base/types';\n/**\n * @hidden\n */\nvar AnnotationToolbar = /** @class */ (function () {\n function AnnotationToolbar(viewer, viewerBase, toolbar) {\n var _this = this;\n this.toolbarBorderHeight = 1;\n /**\n * @private\n */\n this.isToolbarHidden = false;\n /**\n * @private\n */\n this.isMobileAnnotEnabled = false;\n this.isHighlightEnabled = false;\n this.isUnderlineEnabled = false;\n this.isStrikethroughEnabled = false;\n this.isHighlightBtnVisible = true;\n this.isCommentBtnVisible = true;\n this.isUnderlineBtnVisible = true;\n this.isStrikethroughBtnVisible = true;\n this.isColorToolVisible = true;\n this.isOpacityToolVisible = true;\n this.isDeleteAnnotationToolVisible = true;\n this.isCurrentAnnotationOpacitySet = false;\n this.isStampBtnVisible = false;\n this.isShapeBtnVisible = false;\n this.isSignatureBtnVisible = false;\n this.isInkBtnVisible = false;\n this.isFontFamilyToolVisible = false;\n this.isFontSizeToolVisible = false;\n this.isFontAlignToolVisible = false;\n this.isFontColorToolVisible = false;\n this.isFontStylesToolVisible = false;\n this.isCommentPanelBtnVisible = false;\n this.isFreeTextBtnVisible = false;\n this.isCalibrateBtnVisible = false;\n this.isStrokeColorToolVisible = false;\n this.isThicknessToolVisible = false;\n this.stampMenu = [];\n this.stampParentID = '';\n /**\n * @private\n */\n this.inkAnnotationSelected = false;\n /**\n * @private\n */\n this.openSignaturePopup = false;\n this.isSavedSignatureClicked = false;\n this.saveSignatureCount = 0;\n this.saveInitialCount = 0;\n /**\n * @private\n */\n this.isToolbarCreated = false;\n // eslint-disable-next-line\n this.addStampImage = function (args) {\n // eslint-disable-next-line\n var proxy = _this;\n // eslint-disable-next-line\n var upoadedFiles = args.target.files;\n if (args.target.files[0] !== null) {\n var uploadedFile = upoadedFiles[0];\n _this.pdfViewer.annotationModule.stampAnnotationModule.customStampName = uploadedFile.name.split('.')[0];\n if (uploadedFile.type.split('/')[0] === 'image') {\n var reader = new FileReader();\n // eslint-disable-next-line\n reader.onload = function (e) {\n var uploadedFileUrl = e.currentTarget.result;\n proxy.pdfViewer.annotation.stampAnnotationModule.isStampAddMode = true;\n proxy.pdfViewer.annotationModule.stampAnnotationModule.isStampAnnotSelected = true;\n proxy.pdfViewerBase.stampAdded = true;\n _this.pdfViewer.annotationModule.stampAnnotationModule.createCustomStampAnnotation(uploadedFileUrl);\n proxy.pdfViewerBase.stampAdded = false;\n };\n reader.readAsDataURL(uploadedFile);\n }\n }\n args.target.value = '';\n args.currentTarget.value = '';\n };\n this.popupPosition = function (colorElement, buttonElement) {\n if (colorElement && colorElement.element) {\n var buttonBounds = buttonElement.getBoundingClientRect();\n var elements = colorElement.element.getElementsByClassName(\"e-container e-color-palette\")[0].getElementsByClassName(\"e-palette\")[0].getBoundingClientRect();\n var mainContainerBounds = this.pdfViewerBase.mainContainer.getBoundingClientRect();\n if (elements.left + elements.width > mainContainerBounds.width) {\n colorElement.element.parentElement.style.left = (elements.left - elements.width) + buttonBounds.width + 'px';\n }\n }\n };\n this.onShapeToolbarClicked = function (args) {\n var elementId = _this.pdfViewer.element.id;\n var shapeAnnotationModule = _this.pdfViewer.annotation.shapeAnnotationModule;\n if (!Browser.isDevice) {\n _this.deselectAllItems();\n _this.resetFreeTextAnnot();\n }\n else {\n // eslint:disable-next-line\n var element = args.originalEvent.target;\n _this.pdfViewer.toolbarModule.selectItem(element.parentElement);\n }\n switch (args.originalEvent.target.id) {\n case elementId + '_shape_line':\n case elementId + '_shape_lineIcon':\n shapeAnnotationModule.setAnnotationType('Line');\n _this.onShapeDrawSelection(true);\n _this.updateColorInIcon(_this.colorDropDownElement, shapeAnnotationModule.lineFillColor);\n _this.updateColorInIcon(_this.strokeDropDownElement, shapeAnnotationModule.lineStrokeColor);\n _this.handleShapeTool(elementId + '_shape_line');\n break;\n case elementId + '_shape_arrow':\n case elementId + '_shape_arrowIcon':\n shapeAnnotationModule.setAnnotationType('Arrow');\n _this.onShapeDrawSelection(true);\n _this.updateColorInIcon(_this.colorDropDownElement, shapeAnnotationModule.arrowFillColor);\n _this.updateColorInIcon(_this.strokeDropDownElement, shapeAnnotationModule.arrowStrokeColor);\n _this.handleShapeTool(elementId + '_shape_arrow');\n break;\n case elementId + '_shape_rectangle':\n case elementId + '_shape_rectangleIcon':\n shapeAnnotationModule.setAnnotationType('Rectangle');\n _this.onShapeDrawSelection(true);\n _this.updateColorInIcon(_this.colorDropDownElement, shapeAnnotationModule.rectangleFillColor);\n _this.updateColorInIcon(_this.strokeDropDownElement, shapeAnnotationModule.rectangleStrokeColor);\n _this.handleShapeTool(elementId + '_shape_rectangle');\n break;\n case elementId + '_shape_circle':\n case elementId + '_shape_circleIcon':\n shapeAnnotationModule.setAnnotationType('Circle');\n _this.onShapeDrawSelection(true);\n _this.updateColorInIcon(_this.colorDropDownElement, shapeAnnotationModule.circleFillColor);\n _this.updateColorInIcon(_this.strokeDropDownElement, shapeAnnotationModule.circleStrokeColor);\n _this.handleShapeTool(elementId + '_shape_circle');\n break;\n case elementId + '_shape_pentagon':\n case elementId + '_shape_pentagonIcon':\n shapeAnnotationModule.setAnnotationType('Polygon');\n _this.onShapeDrawSelection(true);\n _this.updateColorInIcon(_this.colorDropDownElement, shapeAnnotationModule.polygonFillColor);\n _this.updateColorInIcon(_this.strokeDropDownElement, shapeAnnotationModule.polygonStrokeColor);\n _this.handleShapeTool(elementId + '_shape_pentagon');\n break;\n }\n // this.pdfViewer.clearSelection();\n };\n this.pdfViewer = viewer;\n this.pdfViewerBase = viewerBase;\n this.primaryToolbar = toolbar;\n }\n /**\n * @private\n */\n AnnotationToolbar.prototype.initializeAnnotationToolbar = function () {\n var _this = this;\n // eslint-disable-next-line max-len\n this.toolbarElement = createElement('div', { id: this.pdfViewer.element.id + '_annotation_toolbar', className: 'e-pv-annotation-toolbar' });\n this.pdfViewerBase.viewerMainContainer.appendChild(this.toolbarElement);\n this.toolbar = new Tool({\n width: '', height: '', overflowMode: 'Popup', cssClass: 'e-pv-toolbar-scroll',\n items: this.createToolbarItems(), clicked: this.onToolbarClicked.bind(this),\n created: function () {\n _this.createDropDowns();\n }\n });\n this.toolbar.isStringTemplate = true;\n if (this.pdfViewer.enableRtl) {\n this.toolbar.enableRtl = true;\n }\n this.toolbar.appendTo(this.toolbarElement);\n this.afterToolbarCreation();\n this.createStampContainer();\n this.createSignContainer();\n this.applyAnnotationToolbarSettings();\n this.updateToolbarItems();\n this.showAnnotationToolbar(null, true);\n this.toolbarElement.setAttribute('aria-label', \"Annotation Toolbar\");\n };\n AnnotationToolbar.prototype.createMobileAnnotationToolbar = function (isEnable, isPath) {\n var _this = this;\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n if (this.toolbarElement == null && isEnable) {\n this.isMobileAnnotEnabled = true;\n // eslint-disable-next-line max-len\n this.toolbarElement = createElement('div', { id: this.pdfViewer.element.id + '_annotation_toolbar', className: 'e-pv-annotation-toolbar' });\n this.pdfViewerBase.viewerMainContainer.insertBefore(this.toolbarElement, this.pdfViewerBase.viewerContainer);\n this.toolbar = new Tool({\n width: '', height: '', overflowMode: 'Popup',\n items: this.createMobileToolbarItems(isPath), clicked: this.onToolbarClicked.bind(this),\n created: function () {\n _this.createDropDowns(isPath);\n }\n });\n this.toolbar.isStringTemplate = true;\n if (this.pdfViewer.enableRtl) {\n this.toolbar.enableRtl = true;\n }\n this.pdfViewerBase.navigationPane.goBackToToolbar();\n this.pdfViewer.toolbarModule.showToolbar(false);\n this.toolbar.appendTo(this.toolbarElement);\n this.deleteItem = this.pdfViewerBase.getElement('_annotation_delete');\n this.deleteItem.firstElementChild.id = this.pdfViewer.element.id + '_annotation_delete';\n }\n else if (this.toolbarElement != null) {\n if (isEnable) {\n this.isMobileAnnotEnabled = true;\n this.pdfViewerBase.navigationPane.goBackToToolbar();\n this.pdfViewer.toolbarModule.showToolbar(false);\n this.toolbarElement.style.display = 'block';\n }\n else if (!isEnable) {\n this.isMobileAnnotEnabled = false;\n this.pdfViewer.toolbarModule.showToolbar(true);\n this.hideMobileAnnotationToolbar();\n }\n }\n }\n else {\n this.isMobileAnnotEnabled = true;\n }\n };\n AnnotationToolbar.prototype.hideMobileAnnotationToolbar = function () {\n if (this.toolbarElement != null) {\n if (this.pdfViewer.selectedItems.annotations.length > 0 || this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n if (this.propertyToolbar && this.propertyToolbar.element.children.length > 0) {\n this.propertyToolbar.element.style.display = 'block';\n this.toolbarCreated = true;\n }\n }\n else {\n if (this.toolbar.element.children.length > 0) {\n this.toolbarCreated = true;\n }\n else {\n this.toolbarCreated = false;\n }\n if (this.propertyToolbar && this.propertyToolbar.element.style.display !== 'none') {\n this.propertyToolbar.element.style.display = 'none';\n if (!this.toolbarCreated) {\n var editIcon = document.getElementById(this.pdfViewer.element.id + '_annotationIcon');\n if (editIcon && editIcon.parentElement.classList.contains('e-pv-select')) {\n this.createAnnotationToolbarForMobile();\n }\n }\n }\n }\n if (this.toolbarElement.children.length > 0) {\n this.toolbarElement.style.display = 'block';\n }\n this.adjustMobileViewer();\n }\n else if (this.toolbarCreated && this.propertyToolbar && this.propertyToolbar.element.children.length > 0) {\n this.propertyToolbar.element.style.display = 'none';\n this.adjustMobileViewer();\n this.toolbarCreated = false;\n }\n };\n AnnotationToolbar.prototype.FreeTextForMobile = function () {\n var _this = this;\n this.hideExistingTool();\n // eslint-disable-next-line max-len\n this.freetextToolbarElement = createElement('div', { id: this.pdfViewer.element.id + '_freeTextToolbar', className: 'e-pv-mobile-annotation-toolbar', styles: 'bottom: 0px; position: absolute; width: 100%; float: left' });\n this.pdfViewerBase.viewerMainContainer.appendChild(this.freetextToolbarElement);\n // eslint-disable-next-line max-len\n var colorTemplate = this.pdfViewer.toolbarModule.annotationToolbarModule.getTemplate('span', '_annotation_color', 'e-pv-annotation-color-container');\n // eslint-disable-next-line max-len\n var strokeTemplate = this.pdfViewer.toolbarModule.annotationToolbarModule.getTemplate('span', '_annotation_stroke', 'e-pv-annotation-stroke-container');\n var thicknessTemplate = this.getTemplate('span', '_annotation_thickness', 'e-pv-annotation-thickness-container');\n var opacityTemplate = this.getTemplate('span', '_annotation_opacity', 'e-pv-annotation-opacity-container');\n var fontFamilyTemplate = this.getTemplate('input', '_annotation_fontname', 'e-pv-annotation-fontname-container');\n var fontSizeTemplate = this.getTemplate('input', '_annotation_fontsize', 'e-pv-annotation-fontsize-container');\n var textColorTemplate = this.getTemplate('span', '_annotation_textcolor', 'e-pv-annotation-textcolor-container');\n var alignmentTemplate = this.getTemplate('span', '_annotation_textalign', 'e-pv-annotation-textalign-container');\n // eslint-disable-next-line max-len\n var textPropertiesTemplate = this.getTemplate('span', '_annotation_textproperties', 'e-pv-annotation-textprop-container');\n // eslint:disable-next-line\n var items;\n items = [\n // eslint-disable-next-line max-len\n { prefixIcon: 'e-pv-backward-icon e-pv-icon', tooltipText: this.pdfViewer.localeObj.getConstant('Go Back'), id: this.pdfViewer.element.id + '_backward', click: this.goBackToToolbar.bind(this) },\n { type: 'Separator', align: 'Left', cssClass: 'e-pv-hightlight-separator-container' },\n { template: fontFamilyTemplate },\n { template: fontSizeTemplate },\n { template: textColorTemplate },\n { template: alignmentTemplate },\n { template: textPropertiesTemplate },\n { template: colorTemplate },\n { template: strokeTemplate },\n { template: thicknessTemplate },\n { template: opacityTemplate },\n ];\n this.toolbar = new Tool({\n items: items, width: '', height: '', overflowMode: 'Scrollable', created: function () {\n // eslint-disable-next-line max-len\n _this.pdfViewer.toolbarModule.annotationToolbarModule.mobileColorpicker(_this.pdfViewer.element.id + '_annotation_freeTextEdit');\n }\n });\n this.toolbar.appendTo(this.freetextToolbarElement);\n this.showFreeTextPropertiesTool();\n };\n /**\n * @private\n */\n AnnotationToolbar.prototype.createPropertyTools = function (shapeType) {\n var _this = this;\n if (shapeType !== \"\") {\n if (this.propertyToolbar) {\n this.propertyToolbar.destroy();\n }\n if (this.toolbar) {\n this.toolbar.destroy();\n }\n // eslint-disable-next-line max-len\n var shapeToolbarElement = void 0;\n shapeToolbarElement = document.getElementById(this.pdfViewer.element.id + '_propertyToolbar');\n if (shapeToolbarElement) {\n shapeToolbarElement.parentElement.removeChild(shapeToolbarElement);\n }\n // eslint-disable-next-line max-len\n shapeToolbarElement = createElement('div', { id: this.pdfViewer.element.id + '_propertyToolbar', className: 'e-pv-mobile-annotation-toolbar', styles: 'bottom: 0px; position: absolute; width: 100%; float: left' });\n this.pdfViewerBase.viewerMainContainer.appendChild(shapeToolbarElement);\n var id_1;\n var propertyToolbar = new Tool({\n // eslint-disable-next-line max-len\n items: this.createPropertyToolbarForMobile(shapeType), width: '', height: '', overflowMode: 'Scrollable',\n created: function () {\n if (_this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n id_1 = _this.pdfViewer.element.id + '_underlineIcon';\n }\n else if (_this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'FreeText') {\n id_1 = _this.pdfViewer.element.id + '_annotation_freeTextEdit';\n // eslint-disable-next-line max-len\n }\n else if (_this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Stamp' || _this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'StickyNotes' || _this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Image') {\n id_1 = _this.pdfViewer.element.id + '_annotation_stamp';\n // eslint-disable-next-line max-len\n }\n else if (_this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'HandWrittenSignature' || _this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'SignatureText') {\n id_1 = _this.pdfViewer.element.id + '_annotation_handwrittenSign';\n }\n else if (_this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'SignatureImage') {\n id_1 = _this.pdfViewer.element.id + '_annotation_handwrittenImage';\n }\n else if (_this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Ink' || _this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Path') {\n id_1 = _this.pdfViewer.element.id + '_annotation_inkIcon';\n }\n else if (shapeType === 'Highlight' || shapeType === 'Underline' || shapeType === 'Strikethrough') {\n id_1 = _this.pdfViewer.element.id + '_highlightIcon';\n }\n else {\n id_1 = _this.pdfViewer.element.id + '_annotation_shapesIcon';\n }\n _this.pdfViewer.toolbarModule.annotationToolbarModule.mobileColorpicker(id_1);\n }\n });\n propertyToolbar.isStringTemplate = true;\n propertyToolbar.appendTo(shapeToolbarElement);\n if (!this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Line') {\n this.toolbar.enableItems(this.colorDropDownElement.parentElement, false);\n }\n if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'HandWrittenSignature') {\n var commentIcon = document.getElementById(this.pdfViewer.element.id + '_annotation_commentPanel');\n this.toolbar.enableItems(commentIcon.parentElement, false);\n }\n }\n this.showPropertyTool(propertyToolbar, id_1);\n }\n };\n AnnotationToolbar.prototype.showPropertyTool = function (existingTool, id) {\n if (this.toolbar) {\n this.toolbar.destroy();\n }\n this.propertyToolbar = existingTool;\n this.applyProperiesToolSettings(id);\n //this.propertyToolbar.element.style.display = 'block';\n if (this.pdfViewer.selectedItems.annotations[0]) {\n // eslint:disable-next-line\n var selectedAnnotation = this.pdfViewer.selectedItems.annotations[0];\n // eslint-disable-next-line max-len\n if (selectedAnnotation.shapeAnnotationType !== 'SignatureText' && selectedAnnotation.shapeAnnotationType !== 'HandWrittenSignature' && selectedAnnotation.shapeAnnotationType !== 'Stamp' && selectedAnnotation.shapeAnnotationType !== 'Image' && selectedAnnotation.shapeAnnotationType !== 'Ink' && selectedAnnotation.shapeAnnotationType !== 'Path' && selectedAnnotation.shapeAnnotationType !== 'StickyNotes') {\n this.updateColorInIcon(this.colorDropDownElement, this.pdfViewer.selectedItems.annotations[0].fillColor);\n this.updateColorInIcon(this.strokeDropDownElement, this.pdfViewer.selectedItems.annotations[0].strokeColor);\n if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'FreeText') {\n // eslint:disable-next-line\n var fontFamily = this.fontFamilyElement;\n fontFamily.ej2_instances[0].value = this.pdfViewer.selectedItems.annotations[0].fontFamily;\n // eslint:disable-next-line\n var fontColor = this.fontColorElement;\n fontColor.children[0].style.borderBottomColor = this.pdfViewer.selectedItems.annotations[0].fontColor;\n this.pdfViewer.annotation.modifyTextAlignment(this.pdfViewer.selectedItems.annotations[0].textAlign);\n this.updateTextAlignInIcon(this.pdfViewer.selectedItems.annotations[0].textAlign);\n }\n }\n else {\n if (this.strokeDropDownElement) {\n this.updateColorInIcon(this.strokeDropDownElement, this.pdfViewer.selectedItems.annotations[0].strokeColor);\n }\n }\n }\n this.toolbarCreated = true;\n this.adjustMobileViewer();\n };\n AnnotationToolbar.prototype.stampToolMobileForMobile = function (args) {\n var _this = this;\n this.hideExistingTool();\n if (this.stampToolbarElement) {\n this.stampToolbarElement.parentElement.removeChild(this.stampToolbarElement);\n }\n // eslint-disable-next-line max-len\n this.stampToolbarElement = createElement('div', { id: this.pdfViewer.element.id + '_stampToolbar', className: 'e-pv-mobile-annotation-toolbar', styles: 'bottom: 0px; position: absolute; width: 100%; float: left' });\n this.pdfViewerBase.viewerMainContainer.appendChild(this.stampToolbarElement);\n // eslint-disable-next-line max-len\n this.toolbar = new Tool({\n items: this.createStampToolbarItemsForMobile(), width: '', height: '', overflowMode: 'Scrollable', clicked: this.onShapeToolbarClicked.bind(this),\n created: function () {\n _this.pdfViewer.toolbarModule.annotationToolbarModule.mobileColorpicker(args);\n }\n });\n this.toolbar.isStringTemplate = true;\n this.toolbar.appendTo(this.stampToolbarElement);\n this.showStampPropertiesTool();\n //this.afterShapeToolbarCreationForMobile();\n };\n AnnotationToolbar.prototype.shapeToolMobile = function (args) {\n var _this = this;\n this.hideExistingTool();\n if (this.shapeToolbarElement) {\n this.shapeToolbarElement.parentElement.removeChild(this.shapeToolbarElement);\n }\n // eslint-disable-next-line max-len\n this.shapeToolbarElement = createElement('div', { id: this.pdfViewer.element.id + '_shapeToolbar', className: 'e-pv-mobile-annotation-toolbar', styles: 'bottom: 0px; position: absolute; width: 100%; float: left' });\n this.pdfViewerBase.viewerMainContainer.appendChild(this.shapeToolbarElement);\n // eslint-disable-next-line max-len\n this.toolbar = new Tool({\n items: this.createShapeToolbarItemsForMobile(), width: '', height: '', overflowMode: 'Scrollable', clicked: this.onShapeToolbarClicked.bind(this),\n created: function () {\n _this.pdfViewer.toolbarModule.annotationToolbarModule.mobileColorpicker(args.originalEvent.target.id);\n }\n });\n this.toolbar.isStringTemplate = true;\n this.toolbar.appendTo(this.shapeToolbarElement);\n this.afterShapeToolbarCreationForMobile();\n this.showShapeTool();\n };\n AnnotationToolbar.prototype.calibrateToolMobile = function (args) {\n var _this = this;\n this.hideExistingTool();\n if (this.calibrateToolbarElement) {\n this.calibrateToolbarElement.parentElement.removeChild(this.calibrateToolbarElement);\n }\n // eslint-disable-next-line max-len\n this.calibrateToolbarElement = createElement('div', { id: this.pdfViewer.element.id + '_calibrateToolbar', className: 'e-pv-mobile-annotation-toolbar', styles: 'bottom: 0px; position: absolute; width: 100%; float: left' });\n this.pdfViewerBase.viewerMainContainer.appendChild(this.calibrateToolbarElement);\n // eslint-disable-next-line max-len\n this.toolbar = new Tool({\n items: this.createCalibrateToolbarItemsForMobile(), width: '', height: '', overflowMode: 'Scrollable', clicked: this.onCalibrateToolbarClicked.bind(this),\n created: function () {\n _this.pdfViewer.toolbarModule.annotationToolbarModule.mobileColorpicker(args.originalEvent.target.id);\n }\n });\n this.toolbar.isStringTemplate = true;\n this.toolbar.appendTo(this.calibrateToolbarElement);\n this.afterCalibrateToolbarCreationForMobile();\n this.showShapeTool();\n };\n AnnotationToolbar.prototype.textMarkupForMobile = function (args) {\n var _this = this;\n this.hideExistingTool();\n if (this.textMarkupToolbarElement) {\n this.textMarkupToolbarElement.parentElement.removeChild(this.textMarkupToolbarElement);\n }\n // eslint-disable-next-line max-len\n this.textMarkupToolbarElement = createElement('div', { id: this.pdfViewer.element.id + '_mobileAnnotationToolbar', className: 'e-pv-mobile-annotation-toolbar', styles: 'bottom: 0px; position: absolute; width: 100%; float: left' });\n this.pdfViewerBase.viewerMainContainer.appendChild(this.textMarkupToolbarElement);\n // eslint-disable-next-line max-len\n var colorTemplate = this.pdfViewer.toolbarModule.annotationToolbarModule.getTemplate('span', '_annotation_color', 'e-pv-annotation-color-container');\n var opacityTemplate = this.getTemplate('span', '_annotation_opacity', 'e-pv-annotation-opacity-container');\n // eslint:disable-next-line\n var items;\n items = [\n // eslint-disable-next-line max-len\n { prefixIcon: 'e-pv-backward-icon e-pv-icon', tooltipText: this.pdfViewer.localeObj.getConstant('Go Back'), id: this.pdfViewer.element.id + '_backward', click: this.goBackToToolbar.bind(this) },\n { type: 'Separator', align: 'Left', cssClass: 'e-pv-hightlight-separator-container' },\n { template: colorTemplate, align: 'left' },\n { template: opacityTemplate, align: 'left' }\n ];\n this.propertyToolbar = new Tool({\n items: items, width: '', height: '', overflowMode: 'Scrollable',\n created: function () {\n _this.pdfViewer.toolbarModule.annotationToolbarModule.mobileColorpicker(args.originalEvent.target.id);\n }\n });\n this.propertyToolbar.isStringTemplate = true;\n this.propertyToolbar.appendTo(this.textMarkupToolbarElement);\n this.showTextMarkupPropertiesTool();\n };\n AnnotationToolbar.prototype.showShapeTool = function () {\n // eslint-disable-next-line\n var annotationToolbarItems = this.pdfViewer.toolbarSettings.annotationToolbarItems;\n if (annotationToolbarItems) {\n if (annotationToolbarItems.indexOf('ColorEditTool') !== -1) {\n this.showColorEditTool(true, 7, 7);\n }\n else {\n this.showColorEditTool(false, 7, 7);\n }\n if (annotationToolbarItems.indexOf('StrokeColorEditTool') !== -1) {\n this.showStrokeColorEditTool(true, 8, 8);\n }\n else {\n this.showStrokeColorEditTool(false, 8, 8);\n }\n if (annotationToolbarItems.indexOf('ThicknessEditTool') !== -1) {\n this.showThicknessEditTool(true, 9, 9);\n }\n else {\n this.showThicknessEditTool(false, 9, 9);\n }\n if (annotationToolbarItems.indexOf('OpacityEditTool') !== -1) {\n this.showOpacityEditTool(true, 10, 10);\n }\n else {\n this.showOpacityEditTool(false, 10, 10);\n }\n }\n };\n AnnotationToolbar.prototype.signatureInkForMobile = function () {\n var _this = this;\n this.hideExistingTool();\n if (this.signatureInkToolbarElement) {\n this.signatureInkToolbarElement.parentElement.removeChild(this.signatureInkToolbarElement);\n }\n // eslint-disable-next-line max-len\n this.signatureInkToolbarElement = createElement('div', { id: this.pdfViewer.element.id + '_mobileAnnotationToolbar', className: 'e-pv-mobile-annotation-toolbar', styles: 'bottom: 0px; position: absolute; width: 100%; float: left' });\n this.pdfViewerBase.viewerMainContainer.appendChild(this.signatureInkToolbarElement);\n var opacityTemplate = this.getTemplate('span', '_annotation_opacity', 'e-pv-annotation-opacity-container');\n // eslint-disable-next-line max-len\n var strokeTemplate = this.pdfViewer.toolbarModule.annotationToolbarModule.getTemplate('span', '_annotation_stroke', 'e-pv-annotation-stroke-container');\n var thicknessTemplate = this.getTemplate('span', '_annotation_thickness', 'e-pv-annotation-thickness-container');\n // eslint:disable-next-line\n var items;\n items = [\n // eslint-disable-next-line max-len\n { prefixIcon: 'e-pv-backward-icon e-pv-icon', tooltipText: this.pdfViewer.localeObj.getConstant('Go Back'), id: this.pdfViewer.element.id + '_backward', click: this.goBackToToolbar.bind(this) },\n { template: opacityTemplate, align: 'left' },\n { template: strokeTemplate, aign: 'left' },\n { template: thicknessTemplate, align: 'left' }\n ];\n this.toolbar = new Tool({\n items: items, width: '', height: '', overflowMode: 'Scrollable',\n created: function () {\n _this.pdfViewer.toolbarModule.annotationToolbarModule.mobileColorpicker(_this.pdfViewer.element.id + '_annotation_inkIcon');\n }\n });\n this.toolbar.isStringTemplate = true;\n this.toolbar.appendTo(this.signatureInkToolbarElement);\n };\n AnnotationToolbar.prototype.hideExistingTool = function () {\n if (this.toolbar && !this.pdfViewer.enableDesktopMode) {\n this.toolbar.destroy();\n }\n if (this.propertyToolbar && !this.pdfViewer.enableDesktopMode) {\n this.propertyToolbar.destroy();\n }\n var mobileAnnotationToolbar = document.getElementById(this.pdfViewer.element.id + '_mobileAnnotationToolbar');\n if (mobileAnnotationToolbar) {\n mobileAnnotationToolbar.style.display = 'none';\n }\n };\n AnnotationToolbar.prototype.applyProperiesToolSettings = function (type) {\n switch (type) {\n case this.pdfViewer.element.id + '_underlineIcon':\n case this.pdfViewer.element.id + '_highlightIcon':\n this.showTextMarkupPropertiesTool();\n break;\n case this.pdfViewer.element.id + '_annotation_freeTextEdit':\n this.showFreeTextPropertiesTool();\n break;\n case this.pdfViewer.element.id + '_annotation_shapesIcon':\n this.shapePropertiesTool();\n break;\n case 'stampTool':\n case this.pdfViewer.element.id + '_annotation_stamp':\n this.showStampPropertiesTool();\n break;\n case this.pdfViewer.element.id + '_annotation_handwrittenSign':\n case this.pdfViewer.element.id + '_annotation_inkIcon':\n this.showInkPropertiesTool();\n break;\n case this.pdfViewer.element.id + '_annotation_handwrittenImage':\n this.showImagePropertyTool();\n break;\n }\n };\n AnnotationToolbar.prototype.showImagePropertyTool = function () {\n // eslint-disable-next-line\n var annotationToolbarItems = this.pdfViewer.toolbarSettings.annotationToolbarItems;\n if (annotationToolbarItems) {\n if (annotationToolbarItems.indexOf('OpacityEditTool') !== -1) {\n this.showOpacityEditTool(true, 0, 0);\n }\n else {\n this.showOpacityEditTool(false, 0, 0);\n }\n if (annotationToolbarItems.indexOf('CommentPanelTool') !== -1) {\n this.showCommentPanelTool(true, 1, 1);\n }\n else {\n this.showCommentPanelTool(false, 1, 1);\n }\n if (annotationToolbarItems.indexOf('AnnotationDeleteTool') !== -1) {\n this.showAnnotationDeleteTool(true, 2, 2);\n }\n else {\n this.showAnnotationDeleteTool(false, 2, 2);\n }\n }\n };\n AnnotationToolbar.prototype.showFreeTextPropertiesTool = function () {\n // eslint-disable-next-line\n var annotationToolbarItems = this.pdfViewer.toolbarSettings.annotationToolbarItems;\n if (annotationToolbarItems) {\n if (annotationToolbarItems.indexOf('FontFamilyAnnotationTool') !== -1) {\n this.showFontFamilyAnnotationTool(true, 2, 2);\n }\n else {\n this.showFontFamilyAnnotationTool(false, 2, 2);\n }\n if (annotationToolbarItems.indexOf('FontSizeAnnotationTool') !== -1) {\n this.showFontSizeAnnotationTool(true, 3, 3);\n }\n else {\n this.showFontSizeAnnotationTool(false, 3, 3);\n }\n if (annotationToolbarItems.indexOf('FontColorAnnotationTool') !== -1) {\n this.showFontColorAnnotationTool(true, 4, 4);\n }\n else {\n this.showFontColorAnnotationTool(false, 4, 4);\n }\n if (annotationToolbarItems.indexOf('FontAlignAnnotationTool') !== -1) {\n this.showFontAlignAnnotationTool(true, 5, 5);\n }\n else {\n this.showFontAlignAnnotationTool(false, 5, 5);\n }\n if (annotationToolbarItems.indexOf('FontStylesAnnotationTool') !== -1) {\n this.showFontStylesAnnotationTool(true, 6, 6);\n }\n else {\n this.showFontStylesAnnotationTool(false, 6, 6);\n }\n if (annotationToolbarItems.indexOf('ColorEditTool') !== -1) {\n this.showColorEditTool(true, 7, 7);\n }\n else {\n this.showColorEditTool(false, 7, 7);\n }\n if (annotationToolbarItems.indexOf('StrokeColorEditTool') !== -1) {\n this.showStrokeColorEditTool(true, 8, 8);\n }\n else {\n this.showStrokeColorEditTool(false, 8, 8);\n }\n if (annotationToolbarItems.indexOf('ThicknessEditTool') !== -1) {\n this.showThicknessEditTool(true, 9, 9);\n }\n else {\n this.showThicknessEditTool(false, 9, 9);\n }\n if (annotationToolbarItems.indexOf('OpacityEditTool') !== -1) {\n this.showOpacityEditTool(true, 10, 10);\n }\n else {\n this.showOpacityEditTool(false, 10, 10);\n }\n if (annotationToolbarItems.indexOf('CommentPanelTool') !== -1) {\n this.showCommentPanelTool(true, 11, 11);\n }\n else {\n this.showCommentPanelTool(false, 11, 11);\n }\n if (annotationToolbarItems.indexOf('AnnotationDeleteTool') !== -1) {\n this.showAnnotationDeleteTool(true, 12, 12);\n }\n else {\n this.showAnnotationDeleteTool(false, 12, 12);\n }\n if (annotationToolbarItems.indexOf('FreeTextAnnotationTool') !== -1) {\n this.showFreeTextAnnotationTool(true, 0, 0);\n }\n else {\n this.showFreeTextAnnotationTool(false, 0, 0);\n this.applyHideToToolbar(false, 1, 1);\n }\n }\n };\n AnnotationToolbar.prototype.shapePropertiesTool = function () {\n // eslint-disable-next-line\n var annotationToolbarItems = this.pdfViewer.toolbarSettings.annotationToolbarItems;\n if (annotationToolbarItems) {\n if (annotationToolbarItems.indexOf('ColorEditTool') !== -1) {\n this.showColorEditTool(true, 2, 2);\n }\n else {\n this.showColorEditTool(false, 2, 2);\n }\n if (annotationToolbarItems.indexOf('StrokeColorEditTool') !== -1) {\n this.showStrokeColorEditTool(true, 3, 3);\n }\n else {\n this.showStrokeColorEditTool(false, 3, 3);\n }\n if (annotationToolbarItems.indexOf('ThicknessEditTool') !== -1) {\n this.showThicknessEditTool(true, 4, 4);\n }\n else {\n this.showThicknessEditTool(false, 4, 4);\n }\n if (annotationToolbarItems.indexOf('OpacityEditTool') !== -1) {\n this.showOpacityEditTool(true, 5, 5);\n }\n else {\n this.showOpacityEditTool(false, 5, 5);\n }\n if (annotationToolbarItems.indexOf('CommentPanelTool') !== -1) {\n this.showCommentPanelTool(true, 6, 6);\n }\n else {\n this.showCommentPanelTool(false, 6, 6);\n }\n if (annotationToolbarItems.indexOf('AnnotationDeleteTool') !== -1) {\n this.showAnnotationDeleteTool(true, 7, 7);\n }\n else {\n this.showAnnotationDeleteTool(false, 7, 7);\n }\n if (annotationToolbarItems.indexOf('ShapeTool') !== -1) {\n this.showShapeAnnotationTool(true, 0, 0);\n }\n else {\n this.showShapeAnnotationTool(false, 0, 0);\n this.applyHideToToolbar(false, 1, 1);\n }\n }\n };\n AnnotationToolbar.prototype.showStampPropertiesTool = function () {\n // eslint-disable-next-line\n var annotationToolbarItems = this.pdfViewer.toolbarSettings.annotationToolbarItems;\n if (annotationToolbarItems) {\n if (annotationToolbarItems.indexOf('OpacityEditTool') !== -1) {\n this.showOpacityEditTool(true, 2, 2);\n }\n else {\n this.showOpacityEditTool(false, 2, 2);\n }\n if (annotationToolbarItems.indexOf('CommentPanelTool') !== -1) {\n this.showCommentPanelTool(true, 3, 3);\n }\n else {\n this.showCommentPanelTool(false, 3, 3);\n }\n if (annotationToolbarItems.indexOf('AnnotationDeleteTool') !== -1) {\n this.showAnnotationDeleteTool(true, 4, 4);\n }\n else {\n this.showAnnotationDeleteTool(false, 4, 4);\n }\n if (annotationToolbarItems.indexOf('StampAnnotationTool') !== -1) {\n this.showStampAnnotationTool(true, 0, 0);\n }\n else {\n this.showStampAnnotationTool(false, 0, 0);\n this.applyHideToToolbar(false, 1, 1);\n }\n }\n };\n AnnotationToolbar.prototype.showTextMarkupPropertiesTool = function () {\n // eslint-disable-next-line\n var annotationToolbarItems = this.pdfViewer.toolbarSettings.annotationToolbarItems;\n if (annotationToolbarItems) {\n if (annotationToolbarItems.indexOf('ColorEditTool') !== -1) {\n this.showColorEditTool(true, 2, 2);\n }\n else {\n this.showColorEditTool(false, 2, 2);\n }\n if (annotationToolbarItems.indexOf('OpacityEditTool') !== -1) {\n this.showOpacityEditTool(true, 3, 3);\n }\n else {\n this.showOpacityEditTool(false, 3, 3);\n }\n if (annotationToolbarItems.indexOf('CommentPanelTool') !== -1) {\n this.showCommentPanelTool(true, 4, 4);\n }\n else {\n this.showCommentPanelTool(false, 4, 4);\n }\n if (annotationToolbarItems.indexOf('AnnotationDeleteTool') !== -1) {\n this.showAnnotationDeleteTool(true, 5, 5);\n }\n else {\n this.showAnnotationDeleteTool(false, 5, 5);\n }\n if (annotationToolbarItems.includes(\"HighlightTool\") || annotationToolbarItems.includes(\"UnderlineTool\") || annotationToolbarItems.includes(\"StrikethroughTool\")) {\n this.applyHideToToolbar(true, 0, 0);\n }\n else {\n this.applyHideToToolbar(false, 0, 0);\n this.applyHideToToolbar(false, 1, 1);\n }\n }\n };\n AnnotationToolbar.prototype.showInkPropertiesTool = function () {\n // eslint-disable-next-line\n var annotationToolbarItems = this.pdfViewer.toolbarSettings.annotationToolbarItems;\n if (annotationToolbarItems) {\n if (annotationToolbarItems.indexOf('StrokeColorEditTool') !== -1) {\n this.showStrokeColorEditTool(true, 2, 2);\n }\n else {\n this.showStrokeColorEditTool(false, 2, 2);\n }\n if (annotationToolbarItems.indexOf('ThicknessEditTool') !== -1) {\n this.showThicknessEditTool(true, 3, 3);\n }\n else {\n this.showThicknessEditTool(false, 3, 3);\n }\n if (annotationToolbarItems.indexOf('OpacityEditTool') !== -1) {\n this.showOpacityEditTool(true, 4, 4);\n }\n else {\n this.showOpacityEditTool(false, 4, 4);\n }\n if (annotationToolbarItems.indexOf('CommentPanelTool') !== -1) {\n this.showCommentPanelTool(true, 5, 5);\n }\n else {\n this.showCommentPanelTool(false, 5, 5);\n }\n if (annotationToolbarItems.indexOf('AnnotationDeleteTool') !== -1) {\n this.showAnnotationDeleteTool(true, 6, 6);\n }\n else {\n this.showAnnotationDeleteTool(false, 6, 6);\n }\n if (annotationToolbarItems.indexOf('HandWrittenSignatureTool') !== -1) {\n this.showSignatureTool(true, 0, 0);\n }\n else {\n this.showSignatureTool(false, 0, 0);\n this.applyHideToToolbar(false, 1, 1);\n }\n }\n };\n /**\n * @private\n */\n // eslint:disable-next-line\n AnnotationToolbar.prototype.createAnnotationToolbarForMobile = function (id) {\n var hideToolbar;\n if (id) {\n var editIcon = document.getElementById(id);\n if (editIcon.parentElement.classList.contains('e-pv-select')) {\n hideToolbar = true;\n editIcon.parentElement.classList.remove('e-pv-select');\n }\n else {\n hideToolbar = false;\n this.pdfViewer.toolbarModule.selectItem(editIcon.parentElement);\n }\n }\n if (hideToolbar) {\n this.toolbarCreated = false;\n this.adjustMobileViewer();\n if (this.toolbar) {\n this.toolbar.destroy();\n }\n if (this.propertyToolbar) {\n this.propertyToolbar.destroy();\n }\n var mobileAnnotationToolbar = document.getElementById(this.pdfViewer.element.id + '_mobileAnnotationToolbar');\n if (mobileAnnotationToolbar) {\n mobileAnnotationToolbar.style.display = 'none';\n }\n return [];\n }\n else {\n this.isToolbarCreated = true;\n if (this.propertyToolbar) {\n this.propertyToolbar.destroy();\n }\n if (this.toolbarElement) {\n this.toolbarElement.parentElement.removeChild(this.toolbarElement);\n }\n // eslint-disable-next-line max-len\n this.toolbarElement = createElement('div', { id: this.pdfViewer.element.id + '_mobileAnnotationToolbar', className: 'e-pv-mobile-annotation-toolbar', styles: 'bottom: 0px; position: absolute; width: 100%; float: left;' });\n //this.toolbarElement.append(this.pdfViewerBase.viewerContainer);\n this.pdfViewerBase.viewerMainContainer.appendChild(this.toolbarElement);\n var stampTemplate = this.getTemplate('span', '_annotation_stamp', 'e-pv-annotation-stamp-container');\n var signTemplate = this.getTemplate('span', '_annotation_signature', 'e-pv-annotation-handwritten-container');\n // eslint:disable-next-line\n var items = void 0;\n items = [\n // eslint-disable-next-line max-len\n { prefixIcon: 'e-pv-comment-icon e-pv-icon', className: 'e-pv-comment-container', id: this.pdfViewer.element.id + '_comment' },\n { type: 'Separator', align: 'Left' },\n // eslint-disable-next-line max-len\n { prefixIcon: 'e-pv-highlight-icon e-pv-icon', className: 'e-pv-highlight-container', id: this.pdfViewer.element.id + '_highlight' },\n // eslint-disable-next-line max-len\n { prefixIcon: 'e-pv-underline-icon e-pv-icon', className: 'e-pv-underline-container', id: this.pdfViewer.element.id + '_underline' },\n // eslint-disable-next-line max-len\n { prefixIcon: 'e-pv-strikethrough-icon e-pv-icon', className: 'e-pv-strikethrough-container', id: this.pdfViewer.element.id + '_strikethrough' },\n { type: 'Separator', align: 'Left' },\n // eslint-disable-next-line max-len\n { prefixIcon: 'e-pv-annotation-shape-icon e-pv-icon', className: 'e-pv-annotation-shapes-container', id: this.pdfViewer.element.id + '_annotation_shapes' },\n { type: 'Separator', align: 'Left' },\n // eslint-disable-next-line max-len\n { prefixIcon: 'e-pv-annotation-calibrate-icon e-pv-icon', className: 'e-pv-annotation-calibrate-container', id: this.pdfViewer.element.id + '_annotation_calibrate' },\n { type: 'Separator', align: 'Left' },\n // eslint-disable-next-line max-len\n { prefixIcon: 'e-pv-freetext-icon e-pv-icon', className: 'e-pv-annotation-freetextedit-container', id: this.pdfViewer.element.id + '_annotation_freeTextEdit' },\n { type: 'Separator', align: 'Left' },\n { template: stampTemplate },\n { type: 'Separator', align: 'Left' },\n { template: signTemplate, align: 'Left', },\n { type: 'Separator', align: 'Left' },\n // eslint-disable-next-line max-len\n { prefixIcon: 'e-pv-inkannotation-icon e-pv-icon', className: 'e-pv-annotation-ink-container', id: this.pdfViewer.element.id + '_annotation_ink', align: 'Left', },\n { type: 'Separator', align: 'Left' },\n // eslint-disable-next-line max-len\n { prefixIcon: 'e-pv-comment-panel-icon e-pv-icon', className: 'e-pv-comment-panel-icon-container', id: this.pdfViewer.element.id + '_annotation_commentPanel', align: 'Right' }\n ];\n if (this.toolbarCreated && this.toolbar) {\n this.toolbar.destroy();\n this.toolbarCreated = false;\n this.adjustMobileViewer();\n }\n else {\n // eslint-disable-next-line max-len\n this.toolbar = new Tool({ items: items, width: '', height: '', overflowMode: 'Scrollable', clicked: this.onToolbarClicked.bind(this) });\n if (this.pdfViewer.enableRtl) {\n this.toolbar.enableRtl = true;\n }\n this.toolbar.isStringTemplate = true;\n this.toolbar.appendTo(this.toolbarElement);\n this.afterMobileToolbarCreation();\n this.createStampContainer();\n this.createSignContainer();\n this.applyMobileAnnotationToolbarSettings();\n this.toolbarCreated = true;\n this.adjustMobileViewer();\n }\n return items;\n }\n };\n /**\n * @private\n */\n AnnotationToolbar.prototype.adjustMobileViewer = function () {\n var toolbarHeight;\n if (this.toolbarElement) {\n toolbarHeight = this.toolbarElement.clientHeight;\n }\n var isPrimaryTool = false;\n if (this.toolbarElement && this.toolbarElement.children.length === 0 && this.propertyToolbar && this.propertyToolbar.element.children.length > 0) {\n toolbarHeight = this.propertyToolbar.element.clientHeight;\n if (this.pdfViewer.toolbarModule.toolbarElement.style.display === 'none') {\n this.pdfViewer.toolbarModule.toolbarElement.style.display = 'block';\n }\n }\n else if (this.freetextToolbarElement && this.freetextToolbarElement.children.length > 0) {\n toolbarHeight = this.freetextToolbarElement.clientHeight;\n }\n else if (toolbarHeight === 0 && this.pdfViewer.toolbarModule.toolbar) {\n toolbarHeight = this.pdfViewer.toolbarModule.toolbarElement.clientHeight;\n isPrimaryTool = true;\n }\n else if (!toolbarHeight && this.propertyToolbar && this.propertyToolbar.element.children.length > 0) {\n toolbarHeight = this.propertyToolbar.element.clientHeight;\n }\n if (this.pdfViewer.enableToolbar && this.toolbarCreated) {\n // eslint-disable-next-line max-len\n this.pdfViewerBase.viewerContainer.style.height = this.updateViewerHeight(this.getElementHeight(this.pdfViewerBase.viewerContainer), (toolbarHeight + toolbarHeight)) + 'px';\n }\n else {\n if (!isPrimaryTool) {\n if (this.pdfViewerBase.viewerContainer.style.height.split('%').length > 1) {\n this.pdfViewerBase.viewerContainer.style.height = this.resetViewerHeight(this.getElementHeight(this.pdfViewerBase.viewerContainer), (-toolbarHeight)) + 'px';\n }\n else {\n this.pdfViewerBase.viewerContainer.style.height = this.resetViewerHeight(this.getElementHeight(this.pdfViewerBase.viewerContainer), (toolbarHeight)) + 'px';\n }\n }\n }\n };\n /**\n * Shows /hides the toolbar in the PdfViewer\n * @param {boolean} enableToolbar - If set true , its show the Toolbar\n * @returns void\n */\n AnnotationToolbar.prototype.showToolbar = function (enable) {\n var toolbar = this.toolbarElement;\n if (enable) {\n toolbar.style.display = 'block';\n if (Browser.isDevice && this.pdfViewer.toolbarModule && this.pdfViewer.toolbarModule.annotationToolbarModule) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.hideMobileAnnotationToolbar();\n }\n }\n else {\n toolbar.style.display = 'none';\n }\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.createMobileToolbarItems = function (isPath) {\n var colorTemplate = this.getTemplate('span', '_annotation_color', 'e-pv-annotation-color-container');\n var opacityTemplate = this.getTemplate('span', '_annotation_opacity', 'e-pv-annotation-opacity-container');\n // eslint-disable-next-line\n var items = [];\n items.push({ prefixIcon: 'e-pv-backward-icon e-pv-icon', tooltipText: this.pdfViewer.localeObj.getConstant('Go Back'), id: this.pdfViewer.element.id + '_backward', click: this.goBackToToolbar.bind(this) });\n // eslint-disable-next-line max-len\n if (!isPath) {\n items.push({ template: colorTemplate, align: 'right' });\n items.push({ template: opacityTemplate, align: 'right' });\n items.push({ type: 'Separator', align: 'right' });\n }\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-annotation-delete-icon e-pv-icon', className: 'e-pv-annotation-delete-container', id: this.pdfViewer.element.id + '_annotation_delete', align: 'right' });\n return items;\n };\n AnnotationToolbar.prototype.goBackToToolbar = function () {\n this.isMobileAnnotEnabled = false;\n if (this.toolbarElement.children.length > 0) {\n this.toolbarElement.style.display = 'block';\n }\n else {\n this.toolbarCreated = false;\n this.toolbar.destroy();\n this.createAnnotationToolbarForMobile();\n }\n var page = this.pdfViewerBase.getSelectTextMarkupCurrentPage();\n if (page) {\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.selectTextMarkupCurrentPage = null;\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.clearAnnotationSelection(page);\n }\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.createToolbarItems = function () {\n var colorTemplate = this.getTemplate('button', '_annotation_color', 'e-pv-annotation-color-container');\n var strokeTemplate = this.getTemplate('button', '_annotation_stroke', 'e-pv-annotation-stroke-container');\n var thicknessTemplate = this.getTemplate('button', '_annotation_thickness', 'e-pv-annotation-thickness-container');\n var opacityTemplate = this.getTemplate('button', '_annotation_opacity', 'e-pv-annotation-opacity-container');\n var shapesTemplate = this.getTemplate('button', '_annotation_shapes', 'e-pv-annotation-shapes-container');\n var calibrateTemplate = this.getTemplate('button', '_annotation_calibrate', 'e-pv-annotation-calibrate-container');\n var stampTemplate = this.getTemplate('span', '_annotation_stamp', 'e-pv-annotation-stamp-container');\n var fontFamilyTemplate = this.getTemplate('button', '_annotation_fontname', 'e-pv-annotation-fontname-container');\n var fontSizeTemplate = this.getTemplate('button', '_annotation_fontsize', 'e-pv-annotation-fontsize-container');\n var textColorTemplate = this.getTemplate('button', '_annotation_textcolor', 'e-pv-annotation-textcolor-container');\n var alignmentTemplate = this.getTemplate('button', '_annotation_textalign', 'e-pv-annotation-textalign-container');\n var textPropertiesTemplate = this.getTemplate('button', '_annotation_textproperties', 'e-pv-annotation-textprop-container');\n var signTemplate = this.getTemplate('button', '_annotation_signature', 'e-pv-annotation-handwritten-container');\n // eslint-disable-next-line\n var items = [];\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-highlight-icon e-pv-icon', className: 'e-pv-highlight-container', id: this.pdfViewer.element.id + '_highlight', align: 'Left' });\n items.push({ prefixIcon: 'e-pv-underline-icon e-pv-icon', className: 'e-pv-underline-container', id: this.pdfViewer.element.id + '_underline', align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-strikethrough-icon e-pv-icon', className: 'e-pv-strikethrough-container', id: this.pdfViewer.element.id + '_strikethrough', align: 'Left' });\n items.push({ type: 'Separator', align: 'Left', cssClass: 'e-pv-hightlight-separator-container' });\n items.push({ template: shapesTemplate, align: 'Left', cssClass: 'e-pv-shape-template-container' });\n items.push({ type: 'Separator', align: 'Left', cssClass: 'e-pv-shape-separator-container' });\n items.push({ template: calibrateTemplate, align: 'Left', cssClass: 'e-pv-calibrate-template-container' });\n items.push({ type: 'Separator', align: 'Left', cssClass: 'e-pv-calibrate-separator-container' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-freetext-icon e-pv-icon', className: 'e-pv-annotation-freetextedit-container', id: this.pdfViewer.element.id + '_annotation_freeTextEdit', align: 'Left' });\n items.push({ type: 'Separator', align: 'Left', cssClass: 'e-pv-freetext-separator-container' });\n items.push({ template: stampTemplate, align: 'Left', cssClass: 'e-pv-stamp-template-container' });\n items.push({ type: 'Separator', align: 'Left', cssClass: 'e-pv-stamp-separator-container' });\n // eslint-disable-next-line max-len\n items.push({ template: signTemplate, align: 'Left', cssClass: 'e-pv-sign-template-container' });\n items.push({ type: 'Separator', align: 'Left', cssClass: 'e-pv-sign-separator-container' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-inkannotation-icon e-pv-icon', className: 'e-pv-annotation-ink-container', id: this.pdfViewer.element.id + '_annotation_ink', align: 'Left' });\n items.push({ type: 'Separator', align: 'Left', cssClass: 'e-pv-ink-separator-container' });\n items.push({ template: fontFamilyTemplate, align: 'Left', cssClass: 'e-pv-fontfamily-container' });\n items.push({ template: fontSizeTemplate, align: 'Left', cssClass: 'e-pv-fontsize-container' });\n items.push({ template: textColorTemplate, align: 'Left', cssClass: 'e-pv-text-color-container' });\n items.push({ template: alignmentTemplate, align: 'Left', cssClass: 'e-pv-alignment-container' });\n items.push({ template: textPropertiesTemplate, align: 'Left', cssClass: 'e-pv-text-properties-container' });\n items.push({ type: 'Separator', align: 'Left', cssClass: 'e-pv-text-separator-container' });\n items.push({ template: colorTemplate, align: 'Left', cssClass: 'e-pv-color-template-container' });\n items.push({ template: strokeTemplate, align: 'Left', cssClass: 'e-pv-stroke-template-container' });\n items.push({ template: thicknessTemplate, align: 'Left', cssClass: 'e-pv-thickness-template-container' });\n items.push({ template: opacityTemplate, align: 'Left', cssClass: 'e-pv-opacity-template-container' });\n items.push({ type: 'Separator', align: 'Left', cssClass: 'e-pv-opacity-separator-container' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-annotation-delete-icon e-pv-icon', className: 'e-pv-annotation-delete-container', id: this.pdfViewer.element.id + '_annotation_delete', align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-comment-panel-icon e-pv-icon', className: 'e-pv-comment-panel-icon-container', id: this.pdfViewer.element.id + '_annotation_commentPanel', align: 'Right' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-annotation-tools-close-icon e-pv-icon', className: 'e-pv-annotation-tools-close-container', id: this.pdfViewer.element.id + '_annotation_close', align: 'Right' });\n return items;\n };\n AnnotationToolbar.prototype.createSignContainer = function () {\n var _this = this;\n this.handWrittenSignatureItem = this.pdfViewerBase.getElement('_annotation_signature');\n // eslint-disable-next-line max-len\n this.primaryToolbar.createTooltip(this.pdfViewerBase.getElement('_annotation_signature'), this.pdfViewer.localeObj.getConstant('SignatureFieldDialogHeaderText'));\n // eslint-disable-next-line\n var proxy = this;\n var items = [];\n if (this.pdfViewer.handWrittenSignatureSettings.signatureItem.length === 0 || this.pdfViewer.handWrittenSignatureSettings.signatureItem.length == 2) {\n items = [\n {\n text: 'ADD SIGNATURE'\n },\n {\n separator: true\n },\n {\n text: 'ADD INITIAL'\n }\n ];\n }\n else {\n if (this.pdfViewer.handWrittenSignatureSettings.signatureItem[0] === 'Signature') {\n items = [\n {\n text: 'ADD SIGNATURE'\n }\n ];\n }\n else {\n items = [\n {\n text: 'ADD INITIAL'\n }\n ];\n }\n }\n var saveOptions = {\n items: items,\n iconCss: 'e-pv-handwritten-icon e-pv-icon',\n cssClass: 'e-pv-handwritten-popup',\n open: function (args) {\n proxy.openSignature();\n },\n beforeItemRender: function (args) {\n _this.pdfViewer.clearSelection(_this.pdfViewerBase.currentPageNumber - 1);\n if (args.element && args.element.className.indexOf(\"e-separator\") !== -1) {\n args.element.style.margin = \"8px 0\";\n args.element.setAttribute('role', 'menuitem');\n args.element.setAttribute('aria-label', 'separator');\n }\n if (args.item.text === 'ADD SIGNATURE') {\n args.element.innerHTML = '';\n _this.saveSignatureCount = 0;\n for (var collection = _this.pdfViewerBase.signatureModule.signaturecollection.length; collection > 0; collection--) {\n if (_this.saveSignatureCount < _this.pdfViewerBase.signatureModule.getSaveLimit(_this.pdfViewer.handWrittenSignatureSettings.saveSignatureLimit)) {\n args.element.style.display = 'block';\n // eslint-disable-next-line\n var signatureCollection = _this.pdfViewerBase.signatureModule.signaturecollection[collection - 1];\n // eslint-disable-next-line\n var collectionKey = signatureCollection.image[0].imageData;\n var signatureID = signatureCollection.image[0].id.split('_')[1];\n if (!signatureCollection.isInitial && collectionKey !== '') {\n // eslint-disable-next-line max-len\n var signatureContainer = createElement('div');\n signatureContainer.id = 's' + signatureID;\n signatureContainer.style.display = 'block';\n signatureContainer.style.paddingBottom = '10px';\n var signatureSpan = createElement('span');\n signatureSpan.id = 'sign_border_' + signatureID;\n signatureSpan.classList.add('e-pv-align-border');\n var signatureImage = void 0;\n if (signatureCollection.image[0].signatureType === 'SignatureText') {\n signatureImage = createElement('div');\n signatureImage.classList.add('e-pv-align-border-div');\n signatureImage.innerText = collectionKey;\n signatureImage.style.fontFamily = signatureCollection.image[0].fontFamily;\n signatureImage.style.fontSize = '15px';\n signatureImage.style.display = 'inline-flex';\n signatureImage.style.alignItems = 'center';\n signatureImage.style.position = 'relative';\n signatureImage.id = 'sign_' + signatureID;\n signatureImage.style.width = '80px';\n signatureImage.style.height = '53px';\n signatureImage.style.overflow = 'hidden';\n signatureImage.style.textOverflow = 'ellipsis';\n signatureImage.style.paddingLeft = '11px';\n }\n else {\n signatureImage = createElement('img');\n signatureImage.id = 'sign_' + signatureID;\n signatureImage.src = collectionKey;\n signatureImage.width = 80;\n signatureImage.height = 32;\n signatureImage.classList.add('e-pv-signatureimage');\n signatureImage.style.paddingLeft = '20px';\n signatureImage.style.paddingRight = '18px';\n signatureImage.style.paddingTop = '12px';\n signatureImage.style.paddingBottom = '12px';\n signatureImage.style.boxSizing = 'content-box';\n signatureImage.setAttribute('alt', 'Saved Signature');\n }\n signatureImage.addEventListener('mouseover', _this.hoverSignatureImage.bind(_this));\n signatureImage.addEventListener('mouseleave', _this.leaveSignatureImage.bind(_this));\n var signatureDeleteSpan = createElement('span');\n signatureDeleteSpan.id = 'delete_' + signatureID;\n signatureDeleteSpan.classList.add('e-pv-delete');\n signatureDeleteSpan.classList.add('e-pv-align');\n signatureSpan.append(signatureImage);\n signatureSpan.append(signatureDeleteSpan);\n signatureContainer.append(signatureSpan);\n args.element.appendChild(signatureContainer);\n args.element.style.pointerEvents = 'auto';\n args.element.style.background = 'none';\n _this.pdfViewerBase.getElement('_annotation_signature-popup').style.width = '206px';\n _this.saveSignatureCount++;\n }\n }\n }\n var addInitialSpan = createElement('button');\n addInitialSpan.classList.add(\"e-control\", \"e-btn\", \"e-lib\", \"e-outline\", \"e-primary\");\n addInitialSpan.textContent = _this.pdfViewer.localeObj.getConstant('HandwrittenSignatureDialogHeaderText');\n _this.pdfViewer.locale === 'en-US' ? addInitialSpan.style.width = \"130px\" : addInitialSpan.style.width = \"auto\";\n addInitialSpan.style.height = \"36px\";\n addInitialSpan.addEventListener('click', _this.clickSignature.bind(_this));\n args.element.appendChild(addInitialSpan);\n args.element.addEventListener('mouseover', _this.hoverInitialBtn.bind(_this));\n args.element.style.width = '206px';\n args.element.style.display = 'flex';\n args.element.style.flexDirection = 'column';\n args.element.style.height = 'auto';\n args.element.style.alignItems = 'center';\n args.element.setAttribute('role', 'menuitem');\n }\n if (args.item.text === 'ADD INITIAL') {\n _this.saveInitialCount = 0;\n args.element.innerHTML = '';\n for (var collection = _this.pdfViewerBase.signatureModule.signaturecollection.length; collection > 0; collection--) {\n if (_this.saveInitialCount < _this.pdfViewerBase.signatureModule.getSaveLimit(_this.pdfViewer.handWrittenSignatureSettings.saveInitialLimit)) {\n // eslint-disable-next-line\n var signatureCollection = _this.pdfViewerBase.signatureModule.signaturecollection[collection - 1];\n // eslint-disable-next-line\n var collectionKey = signatureCollection.image[0].imageData;\n var signatureID = signatureCollection.image[0].id.split('_')[1];\n if (signatureCollection.isInitial && collectionKey !== '') {\n var signatureContainer = createElement('div');\n signatureContainer.id = 's' + signatureID;\n signatureContainer.style.display = 'block';\n signatureContainer.style.paddingBottom = '10px';\n var signatureSpan = createElement('span');\n signatureSpan.id = 'sign_border_' + signatureID;\n signatureSpan.classList.add('e-pv-align-border');\n var signatureImage = void 0;\n if (signatureCollection.image[0].signatureType === 'SignatureText') {\n signatureImage = createElement('div');\n signatureImage.classList.add('e-pv-align-border-div');\n signatureImage.innerText = collectionKey;\n signatureImage.style.fontFamily = signatureCollection.image[0].fontFamily;\n signatureImage.style.fontSize = '15px';\n signatureImage.style.display = 'inline-flex';\n signatureImage.style.alignItems = 'center';\n signatureImage.style.position = 'relative';\n signatureImage.id = 'sign_' + signatureID;\n signatureImage.style.width = '80px';\n signatureImage.style.height = '53px';\n signatureImage.style.overflow = 'hidden';\n signatureImage.style.textOverflow = 'ellipsis';\n signatureImage.style.paddingLeft = '11px';\n }\n else {\n signatureImage = createElement('img');\n signatureImage.id = 'sign_' + signatureID;\n signatureImage.src = collectionKey;\n signatureImage.width = 80;\n signatureImage.height = 32;\n signatureImage.classList.add('e-pv-signatureimage');\n signatureImage.style.paddingLeft = '20px';\n signatureImage.style.paddingRight = '18px';\n signatureImage.style.paddingTop = '12px';\n signatureImage.style.paddingBottom = '12px';\n signatureImage.style.boxSizing = 'content-box';\n signatureImage.setAttribute('alt', 'Saved Initial');\n }\n signatureImage.addEventListener('mouseover', _this.hoverSignatureImage.bind(_this));\n signatureImage.addEventListener('mouseleave', _this.leaveSignatureImage.bind(_this));\n signatureImage.width = 80;\n signatureImage.height = 32;\n var signatureDeleteSpan = createElement('span');\n signatureDeleteSpan.id = 'delete_' + signatureID;\n signatureDeleteSpan.classList.add('e-pv-delete');\n signatureDeleteSpan.classList.add('e-pv-align');\n signatureSpan.append(signatureImage);\n signatureSpan.append(signatureDeleteSpan);\n signatureContainer.append(signatureSpan);\n args.element.appendChild(signatureContainer);\n // eslint-disable-next-line max-len\n args.element.style.pointerEvents = 'auto';\n args.element.style.background = 'none';\n _this.pdfViewerBase.getElement('_annotation_signature-popup').style.width = '206px';\n _this.saveInitialCount++;\n }\n }\n }\n _this.isSignatureIteam = false;\n var addInitialSpan = createElement('button');\n addInitialSpan.classList.add(\"e-control\", \"e-btn\", \"e-lib\", \"e-outline\", \"e-primary\");\n addInitialSpan.textContent = _this.pdfViewer.localeObj.getConstant('HandwrittenInitialDialogHeaderText');\n _this.pdfViewer.locale === 'en-US' ? addInitialSpan.style.width = \"130px\" : addInitialSpan.style.width = \"auto\";\n addInitialSpan.style.height = \"36px\";\n addInitialSpan.addEventListener('click', _this.clickInitial.bind(_this));\n args.element.appendChild(addInitialSpan);\n args.element.addEventListener('mouseover', _this.hoverInitialBtn.bind(_this));\n args.element.style.width = '206px';\n args.element.style.display = 'flex';\n args.element.style.flexDirection = 'column';\n args.element.style.height = 'auto';\n args.element.style.alignItems = 'center';\n args.element.setAttribute('role', 'menuitem');\n }\n },\n select: function (args) {\n _this.pdfViewer.clearSelection(_this.pdfViewerBase.currentPageNumber - 1);\n }\n };\n var drpDownBtn = new DropDownButton(saveOptions);\n if (this.pdfViewer.enableRtl) {\n drpDownBtn.enableRtl = this.pdfViewer.enableRtl;\n }\n drpDownBtn.appendTo(this.handWrittenSignatureItem);\n };\n AnnotationToolbar.prototype.updateSignatureCount = function () {\n var count = 0;\n this.openSignaturePopup = false;\n // eslint-disable-next-line\n var signatureCollection = this.pdfViewerBase.signatureModule.signaturecollection;\n for (var collection = 0; collection < signatureCollection.length; collection++) {\n // eslint-disable-next-line\n var colletionList = signatureCollection[collection];\n if (colletionList.image[0].imageData === '') {\n count++;\n }\n }\n };\n AnnotationToolbar.prototype.openSignature = function () {\n this.saveInitialCount = 0;\n this.saveSignatureCount = 0;\n for (var collection = this.pdfViewerBase.signatureModule.signaturecollection.length; collection > 0; collection--) {\n if (this.saveSignatureCount < this.pdfViewerBase.signatureModule.getSaveLimit(this.pdfViewer.handWrittenSignatureSettings.saveSignatureLimit)) {\n // eslint-disable-next-line\n var signatureCollection = this.pdfViewerBase.signatureModule.signaturecollection[collection - 1];\n if (signatureCollection.image[0].imageData !== '') {\n if (!signatureCollection.isInitial) {\n this.saveSignatureCount++;\n // eslint-disable-next-line\n var addedSignature = document.getElementById('sign_border_' + signatureCollection.image[0].id.split('_')[1] + '');\n // eslint-disable-next-line\n var deleteSignature = document.getElementById('delete_' + signatureCollection.image[0].id.split('_')[1] + '');\n deleteSignature.style.backgroundClip = 'content-box';\n addedSignature.addEventListener('click', this.renderAddedSignature.bind(this));\n deleteSignature.addEventListener('click', this.deleteSavedSign.bind(this));\n deleteSignature.addEventListener('mouseover', this.hoverSignatureDelete.bind(this));\n deleteSignature.addEventListener('mouseleave', this.leaveSignatureDelete.bind(this));\n addedSignature.addEventListener('mouseover', this.hoverSignatureDelete.bind(this));\n addedSignature.addEventListener('mouseleave', this.leaveSignatureDelete.bind(this));\n }\n }\n }\n }\n for (var collection = this.pdfViewerBase.signatureModule.signaturecollection.length; collection > 0; collection--) {\n if (this.saveInitialCount < this.pdfViewerBase.signatureModule.getSaveLimit(this.pdfViewer.handWrittenSignatureSettings.saveInitialLimit)) {\n // eslint-disable-next-line\n var signatureCollection = this.pdfViewerBase.signatureModule.signaturecollection[collection - 1];\n if (signatureCollection.image[0].imageData !== '') {\n if (signatureCollection.isInitial) {\n this.saveInitialCount++;\n // eslint-disable-next-line\n var addedSignature = document.getElementById('sign_border_' + signatureCollection.image[0].id.split('_')[1] + '');\n // eslint-disable-next-line\n var deleteSignature = document.getElementById('delete_' + signatureCollection.image[0].id.split('_')[1] + '');\n deleteSignature.style.backgroundClip = 'content-box';\n addedSignature.addEventListener('click', this.renderAddedSignature.bind(this));\n deleteSignature.addEventListener('click', this.deleteSavedSign.bind(this));\n deleteSignature.addEventListener('mouseover', this.hoverSignatureDelete.bind(this));\n deleteSignature.addEventListener('mouseleave', this.leaveSignatureDelete.bind(this));\n addedSignature.addEventListener('mouseover', this.hoverSignatureDelete.bind(this));\n addedSignature.addEventListener('mouseleave', this.leaveSignatureDelete.bind(this));\n }\n }\n }\n }\n };\n AnnotationToolbar.prototype.hoverSignatureDelete = function () {\n var eventTarget = event.target;\n if (eventTarget.id === 'sign_' + eventTarget.id.split('_')[1] || eventTarget.classList.contains('e-pv-delete')) {\n eventTarget.classList.add('e-pv-signaturehover');\n eventTarget.style.cursor = 'pointer';\n }\n };\n AnnotationToolbar.prototype.hoverInitialBtn = function (event) {\n var eventTarget = event.target;\n var currentFieldID = '';\n if (navigator.userAgent.indexOf('MSIE') !== -1 || navigator.userAgent.indexOf('Trident') !== -1) {\n currentFieldID = eventTarget.id;\n }\n else {\n currentFieldID = isNullOrUndefined(event.path) ? event.composedPath()[0].id : event.path[0].id;\n }\n if (currentFieldID !== 'sign_' + currentFieldID.split(\"_\")[1] && currentFieldID !== 'delete_' + currentFieldID.split(\"_\")[1]) {\n var liElement = document.getElementById(eventTarget.id);\n if (isNullOrUndefined(liElement)) {\n liElement = document.getElementById(eventTarget.parentElement.id);\n }\n if (liElement != null && (eventTarget.id !== 'sign_' + eventTarget.id.split('_')[1] || eventTarget.id !== 'sign_border_' + eventTarget.id.split('_')[2])) {\n liElement.style.background = 'transparent';\n liElement.style.cursor = 'default';\n }\n else if (liElement.parentElement != null && (eventTarget.id !== 'sign_' + eventTarget.id.split('_')[1] || eventTarget.id !== 'sign_border_' + eventTarget.id.split('_')[2])) {\n liElement.parentElement.style.background = 'transparent';\n liElement.parentElement.style.cursor = 'default';\n }\n }\n };\n AnnotationToolbar.prototype.hoverSignatureImage = function () {\n var eventTarget = event.target;\n if (eventTarget.id === 'sign_' + eventTarget.id.split('_')[1] || eventTarget.classList.contains('e-pv-delete')) {\n eventTarget.classList.add('e-pv-signaturehover');\n eventTarget.classList.remove('e-pv-signatureimage');\n eventTarget.style.cursor = 'pointer';\n }\n };\n AnnotationToolbar.prototype.leaveSignatureDelete = function () {\n var eventTarget = event.target;\n if (eventTarget.id === 'sign_' + eventTarget.id.split('_')[1] || eventTarget.classList.contains('e-pv-delete')) {\n eventTarget.classList.remove('e-pv-signaturehover');\n if (eventTarget.children[0] && eventTarget.children[0].tagName === 'IMG') {\n eventTarget.children[0].classList.remove('e-pv-signaturehover');\n }\n eventTarget.style.cursor = 'default';\n }\n };\n AnnotationToolbar.prototype.clickSignature = function () {\n this.pdfViewerBase.isInitialField = false;\n this.addSignature();\n };\n AnnotationToolbar.prototype.clickInitial = function () {\n this.pdfViewerBase.isInitialField = true;\n this.addSignature();\n };\n AnnotationToolbar.prototype.leaveSignatureImage = function () {\n var eventTarget = event.target;\n if (eventTarget.id === 'sign_' + eventTarget.id.split('_')[1] || eventTarget.classList.contains('e-pv-delete')) {\n eventTarget.classList.remove('e-pv-signaturehover');\n if (eventTarget.tagName === 'IMG')\n eventTarget.classList.add('e-pv-signatureimage');\n if (eventTarget.children[0] && eventTarget.children[0].tagName === 'IMG') {\n eventTarget.children[0].classList.remove('e-pv-signaturehover');\n eventTarget.children[0].classList.add('e-pv-signatureimage');\n }\n eventTarget.style.cursor = 'default';\n }\n };\n AnnotationToolbar.prototype.addSignature = function () {\n this.deselectAllItems();\n this.showSignaturepanel();\n };\n AnnotationToolbar.prototype.renderAddedSignature = function () {\n this.pdfViewerBase.isAddedSignClicked = true;\n this.isSavedSignatureClicked = true;\n this.pdfViewerBase.signatureModule.RenderSavedSignature();\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.deleteSavedSign = function (event) {\n event.stopPropagation();\n // eslint-disable-next-line\n var signaturecollection = this.pdfViewerBase.signatureModule.signaturecollection;\n for (var collection = signaturecollection.length; collection > 0; collection--) {\n if (event.target.parentElement.children[0].id === 'sign_' + signaturecollection[collection - 1].image[0].id.split('_')[1]) {\n // eslint-disable-next-line\n var RemoveSignature = signaturecollection[collection - 1];\n RemoveSignature.image[0].imageData = '';\n this.pdfViewerBase.signatureModule.signaturecollection.splice(collection - 1, 1);\n break;\n }\n }\n event.target.parentElement.remove();\n };\n AnnotationToolbar.prototype.getTemplate = function (elementName, id, className) {\n var element = createElement(elementName, { id: this.pdfViewer.element.id + id });\n if (className) {\n element.className = className;\n }\n return element.outerHTML;\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.createStampContainer = function () {\n var _this = this;\n this.stampElement = this.pdfViewerBase.getElement('_annotation_stamp');\n // eslint-disable-next-line max-len\n this.primaryToolbar.createTooltip(this.pdfViewerBase.getElement('_annotation_stamp'), this.pdfViewer.localeObj.getConstant('Add Stamp'));\n var contextMenuElement = createElement('ul', { id: this.pdfViewer.element.id + 'contextMenuElement' });\n this.pdfViewerBase.getElement('_annotation_stamp').appendChild(contextMenuElement);\n var items = [];\n if (this.pdfViewer.stampSettings.dynamicStamps && this.pdfViewer.stampSettings.dynamicStamps.length > 0) {\n var dynamicStamps_1 = [];\n items.push({ text: this.pdfViewer.localeObj.getConstant('Dynamic'), label: 'Dynamic', items: dynamicStamps_1 });\n this.pdfViewer.stampSettings.dynamicStamps.forEach(function (stampItem, index) {\n var name = DynamicStampItem[stampItem];\n switch (name) {\n case 'NotApproved':\n name = 'Not Approved';\n break;\n }\n dynamicStamps_1.push({ text: _this.pdfViewer.localeObj.getConstant(name), label: name });\n });\n }\n if (this.pdfViewer.stampSettings.signStamps && this.pdfViewer.stampSettings.signStamps.length > 0) {\n var signStamps_1 = [];\n items.push({ text: this.pdfViewer.localeObj.getConstant('Sign Here'), label: 'Sign Here', items: signStamps_1 });\n this.pdfViewer.stampSettings.signStamps.forEach(function (stampItem, index) {\n var name = SignStampItem[stampItem];\n switch (name) {\n case 'InitialHere':\n name = 'Initial Here';\n break;\n case 'SignHere':\n name = 'Sign Here';\n break;\n }\n signStamps_1.push({ text: _this.pdfViewer.localeObj.getConstant(name), label: name });\n });\n }\n if (this.pdfViewer.stampSettings.standardBusinessStamps && this.pdfViewer.stampSettings.standardBusinessStamps.length > 0) {\n var standardsBusinessStamps_1 = [];\n items.push({ text: this.pdfViewer.localeObj.getConstant('Standard Business'), label: 'Standard Business', items: standardsBusinessStamps_1 });\n this.pdfViewer.stampSettings.standardBusinessStamps.forEach(function (stampItem, index) {\n var name = StandardBusinessStampItem[stampItem];\n switch (name) {\n case 'NotApproved':\n name = 'Not Approved';\n break;\n case 'ForPublicRelease':\n name = 'For Public Release';\n break;\n case 'NotForPublicRelease':\n name = 'Not For Public Release';\n break;\n case 'ForComment':\n name = 'For Comment';\n break;\n case 'PreliminaryResults':\n name = 'Preliminary Results';\n break;\n case 'InformationOnly':\n name = 'Information Only';\n break;\n }\n standardsBusinessStamps_1.push({ text: _this.pdfViewer.localeObj.getConstant(name), label: name });\n });\n }\n if (this.pdfViewer.customStampSettings.enableCustomStamp && !Browser.isDevice) {\n if (items.length > 0) {\n items.push({ separator: true });\n }\n items.push({ text: this.pdfViewer.localeObj.getConstant('Custom Stamp'), label: 'Custom Stamp', items: [] });\n }\n this.stampMenu = [\n {\n iconCss: 'e-pv-stamp-icon e-pv-icon',\n items: items\n }\n ];\n var menuOptions = {\n items: this.stampMenu,\n cssClass: 'e-custom-scroll',\n showItemOnClick: true,\n enableScrolling: true,\n beforeOpen: function (args) {\n _this.resetFreeTextAnnot();\n if (args.parentItem.text === '' && _this.pdfViewer.customStampSettings.isAddToMenu && args.items.length > 0) {\n // eslint-disable-next-line\n var currentElements = null;\n for (var i = 0; i < args.items.length; i++) {\n if (args.items[i].text === _this.pdfViewer.localeObj.getConstant('Custom Stamp')) {\n args.items[i].items = [];\n currentElements = args.items[i];\n break;\n }\n }\n // eslint-disable-next-line\n var elements = _this.pdfViewerBase.customStampCollection;\n // eslint-disable-next-line\n var stampElements = _this.pdfViewer.customStampSettings.customStamps;\n if (elements.length === 0 && stampElements && stampElements.length > 0) {\n for (var n = 0; n < stampElements.length; n++) {\n // eslint-disable-next-line max-len\n elements.push({ customStampName: stampElements[n].customStampName, customStampImageSource: stampElements[n].customStampImageSource });\n }\n }\n for (var m = 0; m < elements.length; m++) {\n if (currentElements != null) {\n currentElements.items.push({ text: elements[m].customStampName });\n for (var i = 0; i < args.items.length; i++) {\n if (args.items[i].text === _this.pdfViewer.localeObj.getConstant('Custom Stamp')) {\n var liElem = args.element.children[i];\n if (liElem && !liElem.childElementCount) {\n var span = document.createElement('span');\n span.className = 'e-icons e-caret e-menu-caret-icon';\n liElem.appendChild(span);\n liElem.setAttribute('aria-haspopup', 'true');\n liElem.setAttribute('aria-expanded', 'false');\n }\n }\n }\n }\n }\n }\n if (args.parentItem.text === _this.pdfViewer.localeObj.getConstant('Custom Stamp')) {\n // eslint-disable-next-line\n var stampElements = _this.pdfViewer.customStampSettings.customStamps;\n if (stampElements && stampElements.length > 10) {\n closest(args.element, '.e-menu-wrapper').style.height = '350px';\n }\n }\n _this.stampParentID = args.parentItem.text;\n _this.menuItems.showItemOnClick = false;\n },\n beforeClose: function (args) {\n // eslint-disable-next-line max-len\n if ((args.parentItem && args.parentItem.text !== _this.pdfViewer.localeObj.getConstant('Custom Stamp') && args.parentItem.text !== 'Standard Business' && args.parentItem.text !== 'Dynamic' && args.parentItem.text !== 'Sign Here') || !args.parentItem) {\n _this.menuItems.showItemOnClick = true;\n }\n },\n select: function (args) {\n _this.pdfViewerBase.isAlreadyAdded = false;\n if (args.item.text === _this.pdfViewer.localeObj.getConstant('Custom Stamp')) {\n _this.updateInteractionTools();\n _this.checkStampAnnotations();\n _this.pdfViewer.annotation.stampAnnotationModule.isStampAddMode = true;\n // eslint-disable-next-line\n var stampImage = document.getElementById(_this.pdfViewer.element.id + '_stampElement');\n if (stampImage) {\n stampImage.click();\n }\n _this.pdfViewer.annotation.triggerAnnotationUnselectEvent();\n // eslint-disable-next-line max-len\n }\n else if (_this.stampParentID === _this.pdfViewer.localeObj.getConstant('Custom Stamp') && args.item.text !== '') {\n // eslint-disable-next-line\n var elements = _this.pdfViewerBase.customStampCollection;\n for (var n = 0; n < elements.length; n++) {\n if (elements[n].customStampName === args.item.text) {\n _this.pdfViewer.annotationModule.stampAnnotationModule.customStampName = args.item.text;\n _this.checkStampAnnotations();\n _this.pdfViewer.annotation.stampAnnotationModule.isStampAddMode = true;\n _this.pdfViewer.annotationModule.stampAnnotationModule.isStampAnnotSelected = true;\n _this.pdfViewerBase.stampAdded = true;\n _this.pdfViewerBase.isAlreadyAdded = true;\n // eslint-disable-next-line max-len\n _this.pdfViewer.annotationModule.stampAnnotationModule.createCustomStampAnnotation(elements[n].customStampImageSource);\n _this.pdfViewerBase.stampAdded = false;\n }\n }\n // eslint-disable-next-line max-len\n }\n else if (args.item.text !== _this.pdfViewer.localeObj.getConstant('Dynamic') && args.item.text !== '' && args.item.text !== 'Standard Business' && (_this.stampParentID === 'Sign Here' || args.item.text !== 'Sign Here')) {\n _this.updateInteractionTools();\n _this.checkStampAnnotations();\n _this.pdfViewer.annotation.stampAnnotationModule.isStampAddMode = true;\n _this.pdfViewer.annotationModule.stampAnnotationModule.isStampAnnotSelected = true;\n _this.pdfViewerBase.stampAdded = true;\n _this.pdfViewer.annotation.triggerAnnotationUnselectEvent();\n if (_this.stampParentID === _this.pdfViewer.localeObj.getConstant('Dynamic')) {\n _this.pdfViewerBase.isDynamicStamp = true;\n _this.pdfViewer.annotationModule.stampAnnotationModule.retrieveDynamicStampAnnotation(args.item.label);\n }\n else {\n _this.pdfViewerBase.isDynamicStamp = false;\n _this.pdfViewer.annotationModule.stampAnnotationModule.retrievestampAnnotation(args.item.label);\n }\n if (Browser.isDevice) {\n _this.stampToolMobileForMobile(_this.pdfViewer.element.id + '_annotation_stamp');\n }\n }\n }\n };\n this.menuItems = new Menu(menuOptions, '#' + this.pdfViewer.element.id + 'contextMenuElement');\n contextMenuElement.parentElement.classList.add('e-pv-stamp');\n if (this.pdfViewer.enableRtl) {\n this.menuItems.enableRtl = true;\n }\n return contextMenuElement;\n };\n /**\n * @private\n */\n AnnotationToolbar.prototype.createCustomStampElement = function () {\n // eslint-disable-next-line\n var stampImage = createElement('input', { id: this.pdfViewer.element.id + '_stampElement', attrs: { 'type': 'file' } });\n stampImage.setAttribute('accept', '.jpg,.jpeg,.png');\n stampImage.style.position = 'absolute';\n stampImage.style.left = '0px';\n stampImage.style.top = '0px';\n stampImage.style.visibility = 'hidden';\n document.body.appendChild(stampImage);\n stampImage.addEventListener('change', this.addStampImage);\n };\n AnnotationToolbar.prototype.checkStampAnnotations = function () {\n // eslint-disable-next-line max-len\n if (this.pdfViewer.annotation.stampAnnotationModule.isStampAddMode && this.pdfViewer.selectedItems && this.pdfViewer.selectedItems.annotations) {\n for (var i = 0; i < this.pdfViewer.selectedItems.annotations.length; i++) {\n // eslint-disable-next-line\n var annotation = this.pdfViewer.selectedItems.annotations[i];\n // eslint-disable-next-line\n if (annotation && !annotation.annotName && !annotation.author && (annotation.shapeAnnotationType !== 'Shape' || annotation.shapeAnnotationType !== 'Image')) {\n this.pdfViewer.remove(annotation);\n this.pdfViewer.annotation.renderAnnotations(annotation.pageIndex, null, null, null);\n this.pdfViewer.clearSelection(annotation.pageIndex);\n }\n }\n }\n };\n AnnotationToolbar.prototype.createDropDowns = function (isPath) {\n var _this = this;\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.shapeElement = this.pdfViewerBase.getElement('_annotation_shapes');\n var shapeToolbar = this.createShapeOptions(this.shapeElement.id, true);\n // eslint-disable-next-line max-len\n this.shapeDropDown = this.createDropDownButton(this.shapeElement, 'e-pv-annotation-shape-icon', shapeToolbar.element, this.pdfViewer.localeObj.getConstant('Add Shapes'));\n this.calibrateElement = this.pdfViewerBase.getElement('_annotation_calibrate');\n var calibrateToolbar = this.createShapeOptions(this.calibrateElement.id, false);\n // eslint-disable-next-line max-len\n this.calibrateDropDown = this.createDropDownButton(this.calibrateElement, 'e-pv-annotation-calibrate-icon', calibrateToolbar.element, this.pdfViewer.localeObj.getConstant('Calibrate'));\n }\n if (!isPath) {\n this.colorDropDownElement = this.pdfViewerBase.getElement('_annotation_color');\n this.colorPalette = this.createColorPicker(this.colorDropDownElement.id);\n this.colorPalette.change = this.onColorPickerChange.bind(this);\n // eslint-disable-next-line max-len\n this.colorDropDown = this.createDropDownButton(this.colorDropDownElement, 'e-pv-annotation-color-icon', this.colorPalette.element.parentElement, this.pdfViewer.localeObj.getConstant('Color edit'));\n this.colorDropDown.beforeOpen = this.colorDropDownBeforeOpen.bind(this);\n this.colorDropDown.open = this.colorDropDownOpen.bind(this);\n this.pdfViewerBase.getElement('_annotation_color-popup').addEventListener('click', this.onColorPickerCancelClick.bind(this));\n }\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.strokeDropDownElement = this.pdfViewerBase.getElement('_annotation_stroke');\n this.strokeColorPicker = this.createColorPicker(this.strokeDropDownElement.id);\n this.strokeColorPicker.change = this.onStrokePickerChange.bind(this);\n // eslint-disable-next-line max-len\n this.strokeDropDown = this.createDropDownButton(this.strokeDropDownElement, 'e-pv-annotation-stroke-icon', this.strokeColorPicker.element.parentElement, this.pdfViewer.localeObj.getConstant('Stroke edit'));\n this.strokeDropDown.beforeOpen = this.strokeDropDownBeforeOpen.bind(this);\n this.strokeDropDown.open = this.strokeDropDownOpen.bind(this);\n this.pdfViewerBase.getElement('_annotation_stroke-popup').addEventListener('click', this.onStrokePickerCancelClick.bind(this));\n this.thicknessElement = this.pdfViewerBase.getElement('_annotation_thickness');\n var thicknessContainer = this.createThicknessSlider(this.thicknessElement.id);\n // eslint-disable-next-line max-len\n this.thicknessDropDown = this.createDropDownButton(this.thicknessElement, 'e-pv-annotation-thickness-icon', thicknessContainer, this.pdfViewer.localeObj.getConstant('Change thickness'));\n this.thicknessDropDown.beforeOpen = this.thicknessDropDownBeforeOpen.bind(this);\n this.thicknessSlider.change = this.thicknessChange.bind(this);\n this.thicknessSlider.changed = this.thicknessChange.bind(this);\n this.thicknessDropDown.open = this.thicknessDropDownOpen.bind(this);\n }\n if (!isPath) {\n this.opacityDropDownElement = this.pdfViewerBase.getElement('_annotation_opacity');\n var sliderContainer = this.createSlider(this.opacityDropDownElement.id);\n // eslint-disable-next-line max-len\n this.opacityDropDown = this.createDropDownButton(this.opacityDropDownElement, 'e-pv-annotation-opacity-icon', sliderContainer, this.pdfViewer.localeObj.getConstant('Opacity edit'));\n this.opacityDropDown.beforeOpen = this.opacityDropDownBeforeOpen.bind(this);\n this.opacitySlider.change = this.opacityChange.bind(this);\n this.opacitySlider.changed = this.opacityChange.bind(this);\n this.opacityDropDown.open = this.opacityDropDownOpen.bind(this);\n }\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.fontFamilyElement = this.pdfViewerBase.getElement('_annotation_fontname');\n this.createDropDownListForFamily(this.fontFamilyElement);\n //this.fontFamilyElement.style.textAlign = 'left';\n this.fontFamilyElement.addEventListener('change', function () {\n _this.onFontFamilyChange.bind(_this);\n });\n this.fontSizeElement = this.pdfViewerBase.getElement('_annotation_fontsize');\n this.createDropDownListForSize(this.fontSizeElement);\n this.fontColorElement = this.pdfViewerBase.getElement('_annotation_textcolor');\n this.fontColorPalette = this.createColorPicker(this.fontColorElement.id);\n this.fontColorPalette.change = this.onFontColorChange.bind(this);\n // eslint-disable-next-line max-len\n this.fontColorDropDown = this.createDropDownButton(this.fontColorElement, 'e-pv-annotation-textcolor-icon', this.fontColorPalette.element.parentElement, this.pdfViewer.localeObj.getConstant('Font color'));\n this.textAlignElement = this.pdfViewerBase.getElement('_annotation_textalign');\n this.alignmentToolbar = this.createShapeOptions(this.textAlignElement.id, undefined, true);\n // eslint-disable-next-line max-len\n this.textAlignDropDown = this.createDropDownButton(this.textAlignElement, 'e-pv-annotation-textalign-icon', this.alignmentToolbar.element, this.pdfViewer.localeObj.getConstant('Text Align'));\n this.textAlignDropDown.beforeOpen = this.textAlignDropDownBeforeOpen.bind(this);\n this.textPropElement = this.pdfViewerBase.getElement('_annotation_textproperties');\n this.propertiesToolbar = this.createShapeOptions(this.textPropElement.id, undefined, false, true);\n // eslint-disable-next-line max-len\n this.textPropertiesDropDown = this.createPropDropDownButton(this.textPropElement, 'e-pv-annotation-textprop-icon', this.propertiesToolbar.element, this.pdfViewer.localeObj.getConstant('Text Properties'));\n this.textPropertiesDropDown.beforeOpen = this.textPropertiesDropDownBeforeOpen.bind(this);\n }\n };\n AnnotationToolbar.prototype.mobileColorpicker = function (id) {\n var _this = this;\n this.opacityDropDownElement = this.pdfViewerBase.getElement('_annotation_opacity');\n var sliderContainer = this.createSlider(this.opacityDropDownElement.id);\n // eslint-disable-next-line max-len\n this.opacityDropDown = this.createDropDownButton(this.opacityDropDownElement, 'e-pv-annotation-opacity-icon', sliderContainer, this.pdfViewer.localeObj.getConstant('Opacity edit'));\n this.opacityDropDown.beforeOpen = this.opacityDropDownBeforeOpen.bind(this);\n this.opacitySlider.change = this.opacityChange.bind(this);\n this.opacitySlider.changed = this.opacityChange.bind(this);\n this.opacityDropDown.open = this.opacityDropDownOpen.bind(this);\n if (id === this.pdfViewer.element.id + '_annotation_shapes') {\n id = this.pdfViewer.element.id + '_annotation_shapesIcon';\n }\n else if (id === this.pdfViewer.element.id + '_annotation_calibrate') {\n id = this.pdfViewer.element.id + '_annotation_calibrateIcon';\n }\n else if (id === this.pdfViewer.element.id + '_highlight') {\n id = this.pdfViewer.element.id + '_highlightIcon';\n }\n else if (id === this.pdfViewer.element.id + '_underline') {\n id = this.pdfViewer.element.id + '_underlineIcon';\n }\n else if (id === this.pdfViewer.element.id + '_strikethrough') {\n id = this.pdfViewer.element.id + '_strikethroughIcon';\n }\n // eslint-disable-next-line max-len\n if (id === this.pdfViewer.element.id + '_annotation_shapesIcon' || id === this.pdfViewer.element.id + '_annotation_calibrateIcon' || id === this.pdfViewer.element.id + '_annotation_freeTextEdit' ||\n // eslint-disable-next-line max-len\n id === this.pdfViewer.element.id + '_highlightIcon' || id === this.pdfViewer.element.id + '_underlineIcon' || id === this.pdfViewer.element.id + '_strikethroughIcon' || id === this.pdfViewer.element.id + '_annotation_inkIcon' || id === this.pdfViewer.element.id + '_annotation_handwrittenSign') {\n if (id !== this.pdfViewer.element.id + '_annotation_handwrittenSign' && id !== this.pdfViewer.element.id + '_annotation_inkIcon') {\n this.colorDropDownElement = this.pdfViewerBase.getElement('_annotation_color');\n this.colorPalette = this.createColorPicker(this.colorDropDownElement.id);\n this.colorPalette.change = this.onColorPickerChange.bind(this);\n // eslint-disable-next-line max-len\n this.colorDropDown = this.createDropDownButton(this.colorDropDownElement, 'e-pv-annotation-color-icon', this.colorPalette.element.parentElement, this.pdfViewer.localeObj.getConstant('Color edit'));\n this.colorDropDown.beforeOpen = this.colorDropDownBeforeOpen.bind(this);\n this.colorDropDown.open = this.colorDropDownOpen.bind(this);\n // eslint-disable-next-line max-len\n this.pdfViewerBase.getElement('_annotation_color-popup').addEventListener('click', this.onColorPickerCancelClick.bind(this));\n }\n if (id === this.pdfViewer.element.id + '_annotation_freeTextEdit') {\n this.fontFamilyElement = this.pdfViewerBase.getElement('_annotation_fontname');\n this.createDropDownListForFamily(this.fontFamilyElement);\n this.fontFamilyElement.style.textAlign = 'left';\n this.fontFamilyElement.addEventListener('change', function () { _this.onFontFamilyChange.bind(_this); });\n this.fontSizeElement = this.pdfViewerBase.getElement('_annotation_fontsize');\n this.createDropDownListForSize(this.fontSizeElement);\n this.fontColorElement = this.pdfViewerBase.getElement('_annotation_textcolor');\n this.fontColorPalette = this.createColorPicker(this.fontColorElement.id);\n this.fontColorPalette.change = this.onFontColorChange.bind(this);\n // eslint-disable-next-line max-len\n this.fontColorDropDown = this.createDropDownButton(this.fontColorElement, 'e-pv-annotation-textcolor-icon', this.fontColorPalette.element.parentElement, this.pdfViewer.localeObj.getConstant('Font color'));\n this.textAlignElement = this.pdfViewerBase.getElement('_annotation_textalign');\n this.alignmentToolbar = this.createShapeOptions(this.textAlignElement.id, undefined, true);\n // eslint-disable-next-line max-len\n this.textAlignDropDown = this.createDropDownButton(this.textAlignElement, 'e-pv-annotation-textalign-icon', this.alignmentToolbar.element, this.pdfViewer.localeObj.getConstant('Text Align'));\n this.textAlignDropDown.beforeOpen = this.textAlignDropDownBeforeOpen.bind(this);\n this.textPropElement = this.pdfViewerBase.getElement('_annotation_textproperties');\n this.propertiesToolbar = this.createShapeOptions(this.textPropElement.id, undefined, false, true);\n // eslint-disable-next-line max-len\n this.textPropertiesDropDown = this.createPropDropDownButton(this.textPropElement, 'e-pv-annotation-textprop-icon', this.propertiesToolbar.element, this.pdfViewer.localeObj.getConstant('Text Properties'));\n this.textPropertiesDropDown.beforeOpen = this.textPropertiesDropDownBeforeOpen.bind(this);\n }\n // eslint-disable-next-line max-len\n if (id === this.pdfViewer.element.id + '_annotation_shapesIcon' || id === this.pdfViewer.element.id + '_annotation_calibrateIcon' || id === this.pdfViewer.element.id + '_annotation_freeTextEdit' ||\n id === this.pdfViewer.element.id + '_annotation_inkIcon' || id === this.pdfViewer.element.id + '_annotation_handwrittenSign') {\n this.thicknessElement = this.pdfViewerBase.getElement('_annotation_thickness');\n var thicknessContainer = this.createThicknessSlider(this.thicknessElement.id);\n // eslint-disable-next-line max-len\n this.thicknessDropDown = this.createDropDownButton(this.thicknessElement, 'e-pv-annotation-thickness-icon', thicknessContainer, this.pdfViewer.localeObj.getConstant('Change thickness'));\n this.thicknessDropDown.beforeOpen = this.thicknessDropDownBeforeOpen.bind(this);\n this.thicknessSlider.change = this.thicknessChange.bind(this);\n this.thicknessSlider.changed = this.thicknessChange.bind(this);\n this.thicknessDropDown.open = this.thicknessDropDownOpen.bind(this);\n this.strokeDropDownElement = this.pdfViewerBase.getElement('_annotation_stroke');\n this.strokeColorPicker = this.createColorPicker(this.strokeDropDownElement.id);\n this.strokeColorPicker.change = this.onStrokePickerChange.bind(this);\n // eslint-disable-next-line max-len\n this.strokeDropDown = this.createDropDownButton(this.strokeDropDownElement, 'e-pv-annotation-stroke-icon', this.strokeColorPicker.element.parentElement, this.pdfViewer.localeObj.getConstant('Stroke edit'));\n this.strokeDropDown.beforeOpen = this.strokeDropDownBeforeOpen.bind(this);\n this.strokeDropDown.open = this.strokeDropDownOpen.bind(this);\n // eslint-disable-next-line max-len\n this.pdfViewerBase.getElement('_annotation_stroke-popup').addEventListener('click', this.onStrokePickerCancelClick.bind(this));\n }\n }\n };\n AnnotationToolbar.prototype.opacityDropDownOpen = function (args) {\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n args.element.parentElement.style.left = '0px';\n args.element.parentElement.style.top = (this.pdfViewerBase.viewerContainer.clientHeight) + 'px';\n }\n else {\n this.calculateToolbarPosition(args);\n }\n };\n AnnotationToolbar.prototype.onColorPickerCancelClick = function (event) {\n if (event.target.classList.contains('e-cancel')) {\n this.colorDropDown.toggle();\n }\n };\n AnnotationToolbar.prototype.onStrokePickerCancelClick = function (event) {\n if (event.target.classList.contains('e-cancel')) {\n this.strokeDropDown.toggle();\n }\n };\n AnnotationToolbar.prototype.colorDropDownBeforeOpen = function (args) {\n this.colorPalette.noColor = false;\n if (this.pdfViewer.annotationModule.textMarkupAnnotationModule) {\n if (this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n this.colorPalette.value = this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation.color;\n }\n else {\n this.setCurrentColorInPicker();\n }\n }\n if (this.pdfViewer.selectedItems.annotations.length === 1) {\n this.colorPalette.value = this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.fill;\n this.colorPalette.noColor = true;\n }\n else {\n this.setCurrentColorInPicker();\n }\n this.colorPalette.refresh();\n this.updateColorInIcon(this.colorDropDownElement, this.colorPalette.value);\n };\n /**\n * @private\n */\n AnnotationToolbar.prototype.setCurrentColorInPicker = function () {\n if (!isBlazor()) {\n if (this.pdfViewer.annotationModule.textMarkupAnnotationModule) {\n switch (this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAddMode) {\n case 'Highlight':\n // eslint-disable-next-line max-len\n this.setColorInPicker(this.colorPalette, this.pdfViewer.annotationModule.textMarkupAnnotationModule.highlightColor);\n break;\n case 'Underline':\n // eslint-disable-next-line max-len\n this.setColorInPicker(this.colorPalette, this.pdfViewer.annotationModule.textMarkupAnnotationModule.underlineColor);\n break;\n case 'Strikethrough':\n // eslint-disable-next-line max-len\n this.setColorInPicker(this.colorPalette, this.pdfViewer.annotationModule.textMarkupAnnotationModule.strikethroughColor);\n break;\n }\n }\n if (this.pdfViewer.annotation.shapeAnnotationModule) {\n switch (this.pdfViewer.annotationModule.shapeAnnotationModule.currentAnnotationMode) {\n case 'Line':\n // eslint-disable-next-line max-len\n this.setColorInPicker(this.colorPalette, this.pdfViewer.annotationModule.shapeAnnotationModule.lineFillColor);\n break;\n case 'Arrow':\n // eslint-disable-next-line max-len\n this.setColorInPicker(this.colorPalette, this.pdfViewer.annotationModule.shapeAnnotationModule.arrowFillColor);\n break;\n case 'Rectangle':\n // eslint-disable-next-line max-len\n this.setColorInPicker(this.colorPalette, this.pdfViewer.annotationModule.shapeAnnotationModule.rectangleFillColor);\n break;\n case 'Circle':\n // eslint-disable-next-line max-len\n this.setColorInPicker(this.colorPalette, this.pdfViewer.annotationModule.shapeAnnotationModule.circleFillColor);\n break;\n case 'Polygon':\n // eslint-disable-next-line max-len\n this.setColorInPicker(this.colorPalette, this.pdfViewer.annotationModule.shapeAnnotationModule.polygonFillColor);\n break;\n }\n }\n if (this.colorDropDownElement) {\n this.updateColorInIcon(this.colorDropDownElement, this.colorPalette.value);\n }\n }\n };\n AnnotationToolbar.prototype.colorDropDownOpen = function (args) {\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n // eslint-disable-next-line max-len\n args.element.parentElement.style.top = (this.pdfViewerBase.viewerContainer.clientHeight / 2) + 'px';\n }\n this.popupPosition(args, this.colorDropDownElement);\n this.colorPalette.refresh();\n };\n AnnotationToolbar.prototype.strokeDropDownBeforeOpen = function (args) {\n if (this.pdfViewer.selectedItems.annotations.length === 1) {\n this.strokeColorPicker.value = this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.strokeColor;\n }\n else {\n this.setCurrentStrokeColorInPicker();\n }\n this.strokeColorPicker.refresh();\n this.updateColorInIcon(this.strokeDropDownElement, this.strokeColorPicker.value);\n this.updateInkannotationItems();\n };\n AnnotationToolbar.prototype.setCurrentStrokeColorInPicker = function () {\n if (!isBlazor()) {\n if (this.pdfViewer.annotation.shapeAnnotationModule) {\n switch (this.pdfViewer.annotationModule.shapeAnnotationModule.currentAnnotationMode) {\n case 'Line':\n // eslint-disable-next-line max-len\n this.setColorInPicker(this.strokeColorPicker, this.pdfViewer.annotationModule.shapeAnnotationModule.lineStrokeColor);\n break;\n case 'Arrow':\n // eslint-disable-next-line max-len\n this.setColorInPicker(this.strokeColorPicker, this.pdfViewer.annotationModule.shapeAnnotationModule.arrowStrokeColor);\n break;\n case 'Rectangle':\n // eslint-disable-next-line max-len\n this.setColorInPicker(this.strokeColorPicker, this.pdfViewer.annotationModule.shapeAnnotationModule.rectangleStrokeColor);\n break;\n case 'Circle':\n // eslint-disable-next-line max-len\n this.setColorInPicker(this.strokeColorPicker, this.pdfViewer.annotationModule.shapeAnnotationModule.circleStrokeColor);\n break;\n case 'Polygon':\n // eslint-disable-next-line max-len\n this.setColorInPicker(this.strokeColorPicker, this.pdfViewer.annotationModule.shapeAnnotationModule.polygonStrokeColor);\n break;\n }\n }\n }\n };\n AnnotationToolbar.prototype.strokeDropDownOpen = function (args) {\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n args.element.parentElement.style.top = (this.pdfViewerBase.viewerContainer.clientHeight / 2) + 'px';\n }\n this.popupPosition(args, this.strokeDropDownElement);\n this.strokeColorPicker.refresh();\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.onFontColorChange = function (args) {\n // eslint-disable-next-line\n var currentColor;\n if (!isBlazor()) {\n currentColor = (args.currentValue.hex === '') ? '#ffffff00' : args.currentValue.hex;\n }\n else {\n currentColor = args[0];\n }\n if (this.pdfViewer.selectedItems.annotations.length === 1) {\n this.pdfViewer.annotation.modifyFontColor(currentColor);\n }\n else {\n this.pdfViewer.freeTextSettings.fontColor = currentColor;\n this.pdfViewer.annotationModule.freeTextAnnotationModule.updateTextProperties();\n }\n if (isBlazor()) {\n this.fontColorElementInBlazor = this.pdfViewer.element.querySelector('.e-pv-annotation-textcolor-container');\n this.updateColorInIcon(this.fontColorElementInBlazor, currentColor);\n }\n else {\n this.updateColorInIcon(this.fontColorElement, currentColor);\n this.fontColorDropDown.toggle();\n }\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.onFontFamilyChange = function (args) {\n var currentValue;\n if (!isBlazor()) {\n currentValue = (args && args.fontFamily && args.fontFamily.value) ? args.fontFamily.value : '';\n }\n else {\n currentValue = args;\n }\n if (this.pdfViewer.selectedItems.annotations.length === 1 && currentValue) {\n this.pdfViewer.annotation.modifyFontFamily(currentValue);\n }\n else {\n this.pdfViewer.freeTextSettings.fontFamily = currentValue;\n this.pdfViewer.annotationModule.freeTextAnnotationModule.updateTextProperties();\n }\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.onFontSizeChange = function (args, isInteracted) {\n var currentValue;\n if (!isBlazor()) {\n currentValue = (args && args.fontSize && args.fontSize.value) ? args.fontSize.value : '';\n }\n else {\n currentValue = args;\n }\n var fontSize = parseFloat(currentValue);\n if (this.pdfViewer.selectedItems.annotations.length === 1 && currentValue) {\n this.pdfViewer.annotation.modifyFontSize(fontSize, isInteracted);\n }\n else {\n this.pdfViewer.freeTextSettings.fontSize = fontSize;\n this.pdfViewer.annotationModule.freeTextAnnotationModule.updateTextProperties();\n }\n };\n AnnotationToolbar.prototype.textAlignDropDownBeforeOpen = function (args) {\n if (this.pdfViewer.selectedItems.annotations.length === 1) {\n if (args.element.getElementsByTagName('button') && args.element.getElementsByTagName('button').length > 0) {\n // eslint-disable-next-line\n var dropDownOptions = args.element.getElementsByTagName('button');\n // eslint-disable-next-line\n var selectedAnnotation = this.pdfViewer.selectedItems.annotations[0];\n for (var n = 0; n < dropDownOptions.length; n++) {\n if (dropDownOptions[n]) {\n dropDownOptions[n].classList.remove('textprop-option-active');\n // eslint-disable-next-line max-len\n if (dropDownOptions[n].id === (this.pdfViewer.element.id + '_left_align') && selectedAnnotation.textAlign === 'Left') {\n dropDownOptions[n].classList.add('textprop-option-active');\n }\n // eslint-disable-next-line max-len\n if (dropDownOptions[n].id === (this.pdfViewer.element.id + '_right_align') && selectedAnnotation.textAlign === 'Right') {\n dropDownOptions[n].classList.add('textprop-option-active');\n }\n // eslint-disable-next-line max-len\n if (dropDownOptions[n].id === (this.pdfViewer.element.id + '_center_align') && selectedAnnotation.textAlign === 'Center') {\n dropDownOptions[n].classList.add('textprop-option-active');\n }\n // eslint-disable-next-line max-len\n if (dropDownOptions[n].id === (this.pdfViewer.element.id + '_justify_align') && selectedAnnotation.textAlign === 'Justify') {\n dropDownOptions[n].classList.add('textprop-option-active');\n }\n }\n }\n }\n }\n };\n AnnotationToolbar.prototype.textPropertiesDropDownBeforeOpen = function (args) {\n if (this.pdfViewer.selectedItems.annotations.length === 1) {\n if (args.element.getElementsByTagName('button') && args.element.getElementsByTagName('button').length > 0) {\n // eslint-disable-next-line\n var dropDownOptions = args.element.getElementsByTagName('button');\n // eslint-disable-next-line\n var selectedAnnotation = this.pdfViewer.selectedItems.annotations[0];\n for (var n = 0; n < dropDownOptions.length; n++) {\n if (dropDownOptions[n]) {\n dropDownOptions[n].classList.remove('textprop-option-active');\n if (dropDownOptions[n].id === (this.pdfViewer.element.id + '_bold') && selectedAnnotation.font.isBold) {\n dropDownOptions[n].classList.add('textprop-option-active');\n }\n if (dropDownOptions[n].id === (this.pdfViewer.element.id + '_italic') && selectedAnnotation.font.isItalic) {\n dropDownOptions[n].classList.add('textprop-option-active');\n }\n if (dropDownOptions[n].id === (this.pdfViewer.element.id + '_strikeout') && selectedAnnotation.font.isStrikeout) {\n dropDownOptions[n].classList.add('textprop-option-active');\n }\n // eslint-disable-next-line max-len\n if (dropDownOptions[n].id === (this.pdfViewer.element.id + '_underline_textinput') && selectedAnnotation.font.isUnderline) {\n dropDownOptions[n].classList.add('textprop-option-active');\n }\n }\n }\n }\n }\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.onClickTextAlignment = function (args) {\n var currentValue;\n if (isBlazor()) {\n currentValue = args[0];\n }\n else {\n currentValue = (args && args.item && args.item.value) ? args.item.value : '';\n }\n if (this.pdfViewer.selectedItems.annotations.length === 1 && currentValue) {\n this.pdfViewer.annotation.modifyTextAlignment(currentValue);\n }\n else {\n this.pdfViewer.freeTextSettings.textAlignment = args.item.value;\n this.pdfViewer.annotationModule.freeTextAnnotationModule.updateTextProperties();\n }\n this.updateTextAlignInIcon(currentValue);\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.onClickTextProperties = function (args) {\n var currentValue;\n if (isBlazor()) {\n currentValue = args[0];\n }\n else {\n currentValue = (args && args.item && args.item.value) ? args.item.value : '';\n }\n if (this.pdfViewer.selectedItems.annotations.length === 1 && currentValue) {\n var fontInfo = { isBold: undefined, isItalic: undefined, isStrikeout: undefined, isUnderline: undefined };\n if (currentValue === 'bold') {\n fontInfo.isBold = !(this.pdfViewer.selectedItems.annotations[0].font.isBold);\n }\n else if (currentValue === 'italic') {\n fontInfo.isItalic = !(this.pdfViewer.selectedItems.annotations[0].font.isItalic);\n }\n else if (currentValue === 'underline') {\n fontInfo.isUnderline = !(this.pdfViewer.selectedItems.annotations[0].font.isUnderline);\n }\n else if (currentValue === 'strikeout') {\n fontInfo.isStrikeout = !(this.pdfViewer.selectedItems.annotations[0].font.isStrikeout);\n }\n this.pdfViewer.annotation.modifyTextProperties(fontInfo, currentValue);\n }\n else {\n if (currentValue === 'bold') {\n if (this.pdfViewer.annotationModule.freeTextAnnotationModule.isBold) {\n this.pdfViewer.annotationModule.freeTextAnnotationModule.isBold = false;\n }\n else {\n this.pdfViewer.freeTextSettings.fontStyle = 1;\n this.pdfViewer.annotationModule.freeTextAnnotationModule.updateTextProperties();\n }\n }\n else if (currentValue === 'italic') {\n if (this.pdfViewer.annotationModule.freeTextAnnotationModule.isItalic) {\n this.pdfViewer.annotationModule.freeTextAnnotationModule.isItalic = false;\n }\n else {\n this.pdfViewer.freeTextSettings.fontStyle = 2;\n this.pdfViewer.annotationModule.freeTextAnnotationModule.updateTextProperties();\n }\n }\n else if (currentValue === 'underline') {\n if (this.pdfViewer.annotationModule.freeTextAnnotationModule.isUnderline) {\n this.pdfViewer.annotationModule.freeTextAnnotationModule.isUnderline = false;\n }\n else {\n this.pdfViewer.freeTextSettings.fontStyle = 4;\n this.pdfViewer.annotationModule.freeTextAnnotationModule.isStrikethrough = false;\n this.pdfViewer.annotationModule.freeTextAnnotationModule.updateTextProperties();\n }\n }\n else if (currentValue === 'strikeout') {\n if (this.pdfViewer.annotationModule.freeTextAnnotationModule.isStrikethrough) {\n this.pdfViewer.annotationModule.freeTextAnnotationModule.isStrikethrough = false;\n }\n else {\n this.pdfViewer.freeTextSettings.fontStyle = 8;\n this.pdfViewer.annotationModule.freeTextAnnotationModule.isUnderline = false;\n this.pdfViewer.annotationModule.freeTextAnnotationModule.updateTextProperties();\n }\n }\n }\n this.updateTextPropertySelection(currentValue);\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.opacityChange = function (args) {\n var opacityValue = 1;\n if (args && args.length === 1) {\n opacityValue = args[0];\n }\n else {\n opacityValue = args.value;\n }\n if (this.pdfViewer.annotationModule.textMarkupAnnotationModule) {\n if (this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n if (!isBlazor()) {\n if (this.isCurrentAnnotationOpacitySet && args.name === 'changed') {\n this.isCurrentAnnotationOpacitySet = false;\n }\n else {\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.modifyOpacityProperty(args);\n }\n }\n else {\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.modifyOpacityProperty(null, opacityValue);\n }\n }\n else {\n switch (this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAddMode) {\n case 'Highlight':\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.highlightOpacity = opacityValue / 100;\n break;\n case 'Underline':\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.underlineOpacity = opacityValue / 100;\n break;\n case 'Strikethrough':\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.strikethroughOpacity = opacityValue / 100;\n break;\n }\n }\n }\n if (this.pdfViewer.selectedItems.annotations.length === 1) {\n // eslint-disable-next-line\n var currentAnnotations = this.pdfViewer.selectedItems.annotations[0];\n // eslint-disable-next-line max-len\n if (currentAnnotations != null && (currentAnnotations.shapeAnnotationType === 'Stamp' || currentAnnotations.shapeAnnotationType === 'Image')) {\n var clonedObject = cloneObject(currentAnnotations);\n var redoClonedObject = cloneObject(currentAnnotations);\n redoClonedObject.opacity = opacityValue / 100;\n this.pdfViewer.nodePropertyChange(currentAnnotations, { opacity: opacityValue / 100 });\n this.pdfViewer.annotation.triggerAnnotationPropChange(currentAnnotations, false, false, false, true);\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(this.pdfViewer.selectedItems.annotations[0].pageIndex, null, this.pdfViewer.selectedItems.annotations[0], 'stampOpacity', '', clonedObject, redoClonedObject);\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.stampAnnotationModule.updateSessionStorage(this.pdfViewer.selectedItems.annotations[0], null, 'opacity');\n }\n else {\n if (isBlazor()) {\n this.pdfViewer.annotation.modifyOpacity(opacityValue, true);\n }\n else {\n if (args.name === 'changed') {\n if (args.value !== args.previousValue) {\n this.pdfViewer.annotation.modifyOpacity(args);\n }\n }\n }\n }\n }\n else {\n if (this.pdfViewer.annotation.shapeAnnotationModule) {\n switch (this.pdfViewer.annotation.shapeAnnotationModule.currentAnnotationMode) {\n case 'Line':\n this.pdfViewer.annotation.shapeAnnotationModule.lineOpacity = opacityValue / 100;\n break;\n case 'Arrow':\n this.pdfViewer.annotation.shapeAnnotationModule.arrowOpacity = opacityValue / 100;\n break;\n case 'Rectangle':\n this.pdfViewer.annotation.shapeAnnotationModule.rectangleOpacity = opacityValue / 100;\n break;\n case 'Circle':\n this.pdfViewer.annotation.shapeAnnotationModule.circleOpacity = opacityValue / 100;\n break;\n case 'Polygon':\n this.pdfViewer.annotation.shapeAnnotationModule.polygonOpacity = opacityValue / 100;\n break;\n }\n }\n // eslint-disable-next-line\n var annotationModule = this.pdfViewer.annotation;\n if (annotationModule && annotationModule.inkAnnotationModule) {\n this.pdfViewer.inkAnnotationSettings.opacity = opacityValue / 100;\n }\n if (this.pdfViewer.drawingObject) {\n this.pdfViewer.drawingObject.opacity = opacityValue / 100;\n if (this.pdfViewer.drawingObject.shapeAnnotationType === 'FreeText') {\n this.pdfViewer.freeTextSettings.opacity = opacityValue / 100;\n this.pdfViewer.annotationModule.freeTextAnnotationModule.updateTextProperties();\n }\n }\n }\n if (!isBlazor()) {\n this.updateOpacityIndicator();\n }\n };\n AnnotationToolbar.prototype.opacityDropDownBeforeOpen = function (args) {\n if (this.pdfViewer.annotationModule.textMarkupAnnotationModule) {\n if (this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n this.isCurrentAnnotationOpacitySet = true;\n // eslint-disable-next-line max-len\n this.opacitySlider.value = this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation.opacity * 100;\n }\n else {\n switch (this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAddMode) {\n case 'Highlight':\n this.opacitySlider.value = this.pdfViewer.annotationModule.textMarkupAnnotationModule.highlightOpacity * 100;\n break;\n case 'Underline':\n this.opacitySlider.value = this.pdfViewer.annotationModule.textMarkupAnnotationModule.underlineOpacity * 100;\n break;\n case 'Strikethrough':\n this.opacitySlider.value = this.pdfViewer.annotationModule.textMarkupAnnotationModule.strikethroughOpacity * 100;\n break;\n }\n }\n }\n if (this.pdfViewer.selectedItems.annotations.length === 1) {\n this.opacitySlider.value = this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.opacity * 100;\n }\n else {\n if (this.pdfViewer.annotation.shapeAnnotationModule) {\n switch (this.pdfViewer.annotation.shapeAnnotationModule.currentAnnotationMode) {\n case 'Line':\n this.opacitySlider.value = this.pdfViewer.annotation.shapeAnnotationModule.lineOpacity * 100;\n break;\n case 'Arrow':\n this.opacitySlider.value = this.pdfViewer.annotation.shapeAnnotationModule.arrowOpacity * 100;\n break;\n case 'Rectangle':\n this.opacitySlider.value = this.pdfViewer.annotation.shapeAnnotationModule.rectangleOpacity * 100;\n break;\n case 'Circle':\n this.opacitySlider.value = this.pdfViewer.annotation.shapeAnnotationModule.circleOpacity * 100;\n break;\n case 'Polygon':\n this.opacitySlider.value = this.pdfViewer.annotation.shapeAnnotationModule.polygonOpacity * 100;\n break;\n }\n }\n }\n this.updateOpacityIndicator();\n this.updateInkannotationItems();\n };\n AnnotationToolbar.prototype.thicknessDropDownBeforeOpen = function () {\n if (this.pdfViewer.selectedItems.annotations.length === 1) {\n this.thicknessSlider.value = this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.strokeWidth;\n }\n else {\n if (this.pdfViewer.annotation.shapeAnnotationModule) {\n switch (this.pdfViewer.annotation.shapeAnnotationModule.currentAnnotationMode) {\n case 'Line':\n this.thicknessSlider.value = this.pdfViewer.annotation.shapeAnnotationModule.lineThickness;\n break;\n case 'Arrow':\n this.thicknessSlider.value = this.pdfViewer.annotation.shapeAnnotationModule.arrowThickness;\n break;\n case 'Rectangle':\n this.thicknessSlider.value = this.pdfViewer.annotation.shapeAnnotationModule.rectangleThickness;\n break;\n case 'Circle':\n this.thicknessSlider.value = this.pdfViewer.annotation.shapeAnnotationModule.circleThickness;\n break;\n case 'Polygon':\n this.thicknessSlider.value = this.pdfViewer.annotation.shapeAnnotationModule.polygonThickness;\n break;\n }\n }\n }\n this.updateThicknessIndicator();\n this.updateInkannotationItems();\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.thicknessDropDownOpen = function (args) {\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n args.element.parentElement.style.left = '0px';\n args.element.parentElement.style.top = (this.pdfViewerBase.viewerContainer.clientHeight) + 'px';\n }\n else {\n this.calculateToolbarPosition(args);\n }\n };\n AnnotationToolbar.prototype.calculateToolbarPosition = function (args) {\n if (args.element && args.element.parentElement) {\n var leftValue = parseFloat(args.element.parentElement.style.left);\n var width = args.element.parentElement.offsetWidth;\n if ((leftValue + width) < (this.pdfViewer.element.offsetWidth + 10)) {\n args.element.parentElement.style.left = (leftValue - width) + 'px';\n }\n }\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.thicknessChangeInBlazor = function (args) {\n if (this.pdfViewer.selectedItems.annotations.length === 1) {\n this.pdfViewer.annotation.modifyThickness(args[0]);\n }\n else {\n this.ShapeThickness(args[0]);\n }\n };\n AnnotationToolbar.prototype.thicknessChange = function (args) {\n if (this.pdfViewer.selectedItems.annotations.length === 1) {\n if (args.name === 'changed') {\n this.pdfViewer.annotation.modifyThickness(args.value);\n if (!isBlazor()) {\n this.updateThicknessIndicator();\n }\n var annotationModule = this.pdfViewer.annotation;\n var selectedItems = this.pdfViewer.selectedItems.annotations[0];\n if (annotationModule && annotationModule.inkAnnotationModule && selectedItems && selectedItems.shapeAnnotationType === \"Ink\") {\n this.pdfViewer.inkAnnotationSettings.thickness = args.value;\n }\n }\n }\n else {\n this.ShapeThickness(args.value);\n }\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.ShapeThickness = function (args) {\n if (this.pdfViewer.annotation.shapeAnnotationModule) {\n switch (this.pdfViewer.annotation.shapeAnnotationModule.currentAnnotationMode) {\n case 'Line':\n this.pdfViewer.annotation.shapeAnnotationModule.lineThickness = args;\n break;\n case 'Arrow':\n this.pdfViewer.annotation.shapeAnnotationModule.arrowThickness = args;\n break;\n case 'Rectangle':\n this.pdfViewer.annotation.shapeAnnotationModule.rectangleThickness = args;\n break;\n case 'Circle':\n this.pdfViewer.annotation.shapeAnnotationModule.circleThickness = args;\n break;\n case 'Polygon':\n this.pdfViewer.annotation.shapeAnnotationModule.polygonThickness = args;\n break;\n }\n // eslint-disable-next-line\n var annotationModule_1 = this.pdfViewer.annotation;\n if (annotationModule_1 && annotationModule_1.inkAnnotationModule) {\n this.pdfViewer.inkAnnotationSettings.thickness = args.value;\n }\n if (this.pdfViewer.drawingObject) {\n this.pdfViewer.drawingObject.thickness = args.value;\n }\n if (this.pdfViewer.drawingObject && this.pdfViewer.drawingObject.shapeAnnotationType === 'FreeText') {\n this.pdfViewer.freeTextSettings.borderWidth = args.value;\n this.pdfViewer.annotationModule.freeTextAnnotationModule.updateTextProperties();\n }\n }\n // eslint-disable-next-line\n var annotationModule = this.pdfViewer.annotation;\n if (annotationModule && annotationModule.inkAnnotationModule) {\n this.pdfViewer.inkAnnotationSettings.thickness = args;\n }\n if (this.pdfViewer.drawingObject) {\n this.pdfViewer.drawingObject.thickness = args;\n }\n if (this.pdfViewer.drawingObject && this.pdfViewer.drawingObject.shapeAnnotationType === 'FreeText') {\n this.pdfViewer.freeTextSettings.borderWidth = args;\n this.pdfViewer.annotationModule.freeTextAnnotationModule.updateTextProperties();\n }\n if (!isBlazor()) {\n this.updateThicknessIndicator();\n }\n };\n AnnotationToolbar.prototype.createDropDownButton = function (element, iconClass, target, tooltipText) {\n // eslint-disable-next-line max-len\n var dropDownButton = new DropDownButton({ iconCss: iconClass + ' e-pv-icon', target: target });\n if (this.pdfViewer.enableRtl) {\n dropDownButton.enableRtl = true;\n }\n dropDownButton.appendTo(element);\n this.primaryToolbar.createTooltip(element, tooltipText);\n return dropDownButton;\n };\n AnnotationToolbar.prototype.createShapeOptions = function (idString, isShape, isAlign, isTextProp) {\n var toolbarElement = createElement('div', { id: idString + '_target', className: 'e-pv-shapes-toolbar' });\n document.body.appendChild(toolbarElement);\n var toolbar;\n if (isAlign) {\n toolbar = new Tool({ items: this.textAlignmentToolbarItems(), overflowMode: 'MultiRow' }, toolbarElement);\n toolbar.isStringTemplate = true;\n this.afterAlignmentToolbarCreation();\n }\n else if (isTextProp) {\n toolbar = new Tool({ items: this.textPropertiesToolbarItems(), overflowMode: 'MultiRow' }, toolbarElement);\n toolbar.isStringTemplate = true;\n this.afterPropertiesToolbarCreation();\n }\n else {\n if (isShape) {\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n // eslint-disable-next-line max-len\n toolbar = new Tool({ items: this.createShapeToolbarItems(), overflowMode: 'MultiRow', clicked: this.onShapeToolbarClicked.bind(this) }, toolbarElement);\n toolbar.isStringTemplate = true;\n this.afterShapeToolbarCreation();\n }\n else {\n // eslint-disable-next-line max-len\n this.toolbarElement = createElement('div', { id: idString + '_target', className: 'e-pv-mobile-annotation-toolbar', styles: 'bottom: 0px; position: absolute; width: 100%; float: left' });\n this.pdfViewerBase.viewerMainContainer.appendChild(this.toolbarElement);\n // eslint-disable-next-line max-len\n toolbar = new Tool({ items: this.createShapeToolbarItemsForMobile(), overflowMode: 'Scrollable', clicked: this.onShapeToolbarClicked.bind(this) }, this.toolbarElement);\n toolbar.isStringTemplate = true;\n this.afterShapeToolbarCreationForMobile();\n }\n }\n else {\n // eslint-disable-next-line max-len\n toolbar = new Tool({ items: this.createCalibrateToolbarItems(), overflowMode: 'MultiRow', clicked: this.onCalibrateToolbarClicked.bind(this) }, toolbarElement);\n toolbar.isStringTemplate = true;\n this.afterCalibrateToolbarCreation();\n }\n }\n return toolbar;\n };\n // eslint:disable-next-line\n AnnotationToolbar.prototype.createPropertyToolbarForMobile = function (shapeType) {\n var _this = this;\n var colorTemplate = this.pdfViewer.toolbarModule.annotationToolbarModule.getTemplate('span', '_annotation_color', 'e-pv-annotation-color-container');\n // eslint-disable-next-line max-len\n var strokeTemplate = this.pdfViewer.toolbarModule.annotationToolbarModule.getTemplate('span', '_annotation_stroke', 'e-pv-annotation-stroke-container');\n var thicknessTemplate = this.getTemplate('span', '_annotation_thickness', 'e-pv-annotation-thickness-container');\n var opacityTemplate = this.getTemplate('span', '_annotation_opacity', 'e-pv-annotation-opacity-container');\n var fontFamilyTemplate = this.getTemplate('input', '_annotation_fontname', 'e-pv-annotation-fontname-container');\n var fontSizeTemplate = this.getTemplate('input', '_annotation_fontsize', 'e-pv-annotation-fontsize-container');\n var textColorTemplate = this.getTemplate('span', '_annotation_textcolor', 'e-pv-annotation-textcolor-container');\n var alignmentTemplate = this.getTemplate('span', '_annotation_textalign', 'e-pv-annotation-textalign-container');\n // eslint-disable-next-line max-len\n var textPropertiesTemplate = this.getTemplate('span', '_annotation_textproperties', 'e-pv-annotation-textprop-container');\n // eslint:disable-next-line\n var items = [];\n // eslint-disable-next-line max-len\n if (shapeType === 'Polygon' || shapeType === 'Rectangle' || shapeType === 'Ellipse' || shapeType === 'Line' || shapeType === 'LineWidthArrowHead' || shapeType === 'Distance' || shapeType === 'Perimeter' || shapeType === 'Radius' || shapeType === 'FreeText') {\n if (shapeType === 'FreeText') {\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-freetext-icon e-pv-icon', className: 'e-pv-annotation-freetextedit-container' });\n items.push({ type: 'Separator', align: 'Left' });\n items.push({ template: fontFamilyTemplate });\n items.push({ template: fontSizeTemplate });\n items.push({ template: textColorTemplate });\n items.push({ template: alignmentTemplate });\n items.push({ template: textPropertiesTemplate });\n }\n if (shapeType === 'Polygon') {\n if (this.pdfViewer.selectedItems.annotations[0].measureType === 'Area') {\n items.push({ prefixIcon: 'e-pv-calibrate-area-icon e-pv-icon' });\n items.push({ type: 'Separator', align: 'Left' });\n }\n else if (this.pdfViewer.selectedItems.annotations[0].measureType === 'Volume') {\n items.push({ prefixIcon: 'e-pv-calibrate-volume-icon e-pv-icon' });\n items.push({ type: 'Separator', align: 'Left' });\n }\n else {\n items.push({ prefixIcon: 'e-pv-shape-pentagon-icon e-pv-icon' });\n items.push({ type: 'Separator', align: 'Left' });\n }\n }\n else if (shapeType === 'Rectangle') {\n items.push({ prefixIcon: 'e-pv-shape-rectangle-icon e-pv-icon' });\n items.push({ type: 'Separator', align: 'Left' });\n }\n else if (shapeType === 'Ellipse') {\n items.push({ prefixIcon: 'e-pv-shape-circle-icon e-pv-icon' });\n items.push({ type: 'Separator', align: 'Left' });\n }\n else if (shapeType === 'Line') {\n if (this.pdfViewer.selectedItems.annotations[0].measureType === 'Perimeter') {\n items.push({ prefixIcon: 'e-pv-calibrate-perimeter-icon e-pv-icon' });\n items.push({ type: 'Separator', align: 'Left' });\n }\n else {\n items.push({ prefixIcon: 'e-pv-shape-line-icon e-pv-icon' });\n items.push({ type: 'Separator', align: 'Left' });\n }\n }\n else if (shapeType === 'LineWidthArrowHead') {\n items.push({ prefixIcon: 'e-pv-shape-arrow-icon e-pv-icon' });\n items.push({ type: 'Separator', align: 'Left' });\n }\n else if (shapeType === 'Distance') {\n items.push({ prefixIcon: 'e-pv-calibrate-distance-icon e-pv-icon' });\n items.push({ type: 'Separator', align: 'Left' });\n }\n else if (shapeType === 'Perimeter') {\n items.push({ prefixIcon: 'e-pv-calibrate-perimeter-icon e-pv-icon' });\n items.push({ type: 'Separator', align: 'Left' });\n }\n else if (shapeType === 'Radius') {\n items.push({ prefixIcon: 'e-pv-calibrate-radius-icon e-pv-icon' });\n items.push({ type: 'Separator', align: 'Left' });\n }\n items.push({ template: colorTemplate });\n items.push({ template: strokeTemplate });\n items.push({ template: thicknessTemplate });\n }\n else if (shapeType === 'Path' || shapeType === 'Ink' || shapeType === 'HandWrittenSignature' || shapeType === 'SignatureText') {\n if (shapeType === 'Path' || shapeType === 'Ink') {\n items.push({ prefixIcon: 'e-pv-inkannotation-icon e-pv-icon' });\n items.push({ type: 'Separator', align: 'Left' });\n }\n else if (shapeType === 'HandWrittenSignature' || shapeType === 'SignatureText') {\n items.push({ prefixIcon: 'e-pv-handwritten-icon e-pv-icon' });\n items.push({ type: 'Separator', align: 'Left' });\n }\n items.push({ template: strokeTemplate });\n items.push({ template: thicknessTemplate });\n }\n else if (shapeType === 'Underline' || shapeType === 'Highlight' || shapeType === 'Strikethrough') {\n if (shapeType === 'Highlight') {\n items.push({ prefixIcon: 'e-pv-highlight-icon e-pv-icon' });\n items.push({ type: 'Separator', align: 'Left' });\n }\n else if (shapeType === 'Underline') {\n items.push({ prefixIcon: 'e-pv-underline-icon e-pv-icon' });\n items.push({ type: 'Separator', align: 'Left' });\n }\n else if (shapeType === 'Strikethrough') {\n items.push({ prefixIcon: 'e-pv-strikethrough-icon e-pv-icon' });\n items.push({ type: 'Separator', align: 'Left' });\n }\n items.push({ template: colorTemplate });\n }\n else if (shapeType === 'Stamp' || shapeType === 'Image') {\n items.push({ prefixIcon: 'e-pv-stamp-icon e-pv-icon' });\n items.push({ type: 'Separator', align: 'Left' });\n }\n else if (shapeType === 'StickyNotes') {\n items.push({ prefixIcon: 'e-pv-comment-icon e-pv-icon' });\n items.push({ type: 'Separator', align: 'Left' });\n }\n items.push({ template: opacityTemplate });\n // eslint-disable-next-line max-len\n items.push({\n prefixIcon: 'e-pv-comment-panel-icon e-pv-icon', className: 'e-pv-comment-panel-icon-container', id: this.pdfViewer.element.id + '_annotation_commentPanel', align: 'Right', click: function (args) {\n _this.pdfViewer.annotationModule.showCommentsPanel();\n }\n });\n // eslint-disable-next-line max-len\n items.push({\n prefixIcon: 'e-pv-annotation-delete-icon e-pv-icon', className: 'e-pv-annotation-delete-container', id: this.pdfViewer.element.id + '_annotation_delete', align: 'Right', click: function (args) {\n _this.pdfViewer.annotationModule.deleteAnnotation();\n _this.propertyToolbar.destroy();\n _this.toolbarCreated = false;\n _this.createAnnotationToolbarForMobile();\n _this.adjustMobileViewer();\n }\n });\n return items;\n };\n // eslint:disable-next-line\n AnnotationToolbar.prototype.createStampToolbarItemsForMobile = function () {\n var opacityTemplate = this.getTemplate('span', '_annotation_opacity', 'e-pv-annotation-opacity-container');\n // eslint:disable-next-line\n var items = [];\n items.push({ prefixIcon: 'e-pv-backward-icon e-pv-icon', tooltipText: this.pdfViewer.localeObj.getConstant('Go Back'), id: this.pdfViewer.element.id + '_backward', click: this.goBackToToolbar.bind(this) });\n items.push({ type: 'Separator', align: 'Left' });\n items.push({ template: opacityTemplate });\n return items;\n };\n // eslint:disable-next-line\n AnnotationToolbar.prototype.createShapeToolbarItemsForMobile = function () {\n var colorTemplate = this.pdfViewer.toolbarModule.annotationToolbarModule.getTemplate('span', '_annotation_color', 'e-pv-annotation-color-container');\n // eslint-disable-next-line max-len\n var strokeTemplate = this.pdfViewer.toolbarModule.annotationToolbarModule.getTemplate('span', '_annotation_stroke', 'e-pv-annotation-stroke-container');\n var thicknessTemplate = this.getTemplate('span', '_annotation_thickness', 'e-pv-annotation-thickness-container');\n var opacityTemplate = this.getTemplate('span', '_annotation_opacity', 'e-pv-annotation-opacity-container');\n // eslint:disable-next-line\n var items = [];\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-backward-icon e-pv-icon', tooltipText: this.pdfViewer.localeObj.getConstant('Go Back'), id: this.pdfViewer.element.id + '_backward', click: this.goBackToToolbar.bind(this) });\n items.push({ prefixIcon: 'e-pv-shape-line-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_shape_line', text: this.pdfViewer.localeObj.getConstant('Line Shape'), align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-shape-arrow-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_shape_arrow', text: this.pdfViewer.localeObj.getConstant('Arrow Shape'), align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-shape-rectangle-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_shape_rectangle', text: this.pdfViewer.localeObj.getConstant('Rectangle Shape'), align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-shape-circle-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_shape_circle', text: this.pdfViewer.localeObj.getConstant('Circle Shape'), align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-shape-pentagon-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_shape_pentagon', text: this.pdfViewer.localeObj.getConstant('Pentagon Shape'), align: 'Left' });\n items.push({ type: 'Separator', align: 'Left' });\n items.push({ template: colorTemplate });\n items.push({ template: strokeTemplate });\n items.push({ template: thicknessTemplate });\n items.push({ template: opacityTemplate });\n return items;\n };\n // eslint:disable-next-line\n AnnotationToolbar.prototype.createCalibrateToolbarItemsForMobile = function () {\n var colorTemplate = this.pdfViewer.toolbarModule.annotationToolbarModule.getTemplate('span', '_annotation_color', 'e-pv-annotation-color-container');\n // eslint-disable-next-line max-len\n var strokeTemplate = this.pdfViewer.toolbarModule.annotationToolbarModule.getTemplate('span', '_annotation_stroke', 'e-pv-annotation-stroke-container');\n var thicknessTemplate = this.getTemplate('span', '_annotation_thickness', 'e-pv-annotation-thickness-container');\n var opacityTemplate = this.getTemplate('span', '_annotation_opacity', 'e-pv-annotation-opacity-container');\n // eslint:disable-next-line\n var items = [];\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-backward-icon e-pv-icon', tooltipText: this.pdfViewer.localeObj.getConstant('Go Back'), id: this.pdfViewer.element.id + '_backward', click: this.goBackToToolbar.bind(this) });\n items.push({ prefixIcon: 'e-pv-calibrate-distance-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_calibrate_distance', text: this.pdfViewer.localeObj.getConstant(''), align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-calibrate-perimeter-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_calibrate_perimeter', text: this.pdfViewer.localeObj.getConstant(''), align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-calibrate-area-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_calibrate_area', text: this.pdfViewer.localeObj.getConstant(''), align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-calibrate-radius-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_calibrate_radius', text: this.pdfViewer.localeObj.getConstant(''), align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-calibrate-volume-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_calibrate_volume', text: this.pdfViewer.localeObj.getConstant(''), align: 'Left' });\n items.push({ type: 'Separator', align: 'Left' });\n items.push({ template: colorTemplate });\n items.push({ template: strokeTemplate });\n items.push({ template: thicknessTemplate });\n items.push({ template: opacityTemplate });\n return items;\n };\n AnnotationToolbar.prototype.handleShapeTool = function (type) {\n if (!isBlazor() && Browser.isDevice) {\n // eslint:disable-next-line\n var selectedItems = document.querySelectorAll('.e-pv-select');\n for (var i = 0; i < selectedItems.length; i++) {\n if (selectedItems[i].id !== type && selectedItems[i].id !== this.pdfViewer.element.id + '_annotation') {\n selectedItems[i].classList.remove('e-pv-select');\n }\n }\n }\n };\n AnnotationToolbar.prototype.createPropDropDownButton = function (element, iconClass, target, tooltipText) {\n // eslint-disable-next-line max-len\n var dropDownButton = new DropDownButton({ iconCss: iconClass + ' e-pv-icon', target: target, cssClass: 'e-caret-hide' });\n if (this.pdfViewer.enableRtl) {\n dropDownButton.enableRtl = true;\n }\n dropDownButton.appendTo(element);\n this.primaryToolbar.createTooltip(element, tooltipText);\n return dropDownButton;\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.textAlignmentToolbarItems = function () {\n // eslint-disable-next-line\n var items = [];\n items.push({ prefixIcon: 'e-pv-left-align-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_left_align', align: 'Left', value: 'Left', click: this.onClickTextAlignment.bind(this) });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-center-align-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_center_align', align: 'Left', value: 'Center', click: this.onClickTextAlignment.bind(this) });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-right-align-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_right_align', align: 'Left', value: 'Right', click: this.onClickTextAlignment.bind(this) });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-justfiy-align-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_justify_align', align: 'Left', value: 'Justify', click: this.onClickTextAlignment.bind(this) });\n // eslint-disable-next-line max-len\n return items;\n };\n AnnotationToolbar.prototype.afterAlignmentToolbarCreation = function () {\n // eslint-disable-next-line max-len\n this.alignLeftElement = this.primaryToolbar.addClassToolbarItem('_left_align', 'e-pv-left-align', this.pdfViewer.localeObj.getConstant('Align left'));\n this.alignRightElement = this.primaryToolbar.addClassToolbarItem('_right_align', 'e-pv-right-align', this.pdfViewer.localeObj.getConstant('Align right'));\n // eslint-disable-next-line max-len\n this.alignCenterElement = this.primaryToolbar.addClassToolbarItem('_center_align', 'e-pv-center-align', this.pdfViewer.localeObj.getConstant('Center'));\n this.alignJustifyElement = this.primaryToolbar.addClassToolbarItem('_justify_align', 'e-pv-justfiy-align', this.pdfViewer.localeObj.getConstant('Justify'));\n };\n AnnotationToolbar.prototype.afterPropertiesToolbarCreation = function () {\n // eslint-disable-next-line max-len\n this.boldElement = this.primaryToolbar.addClassToolbarItem('_bold', 'e-pv-bold', this.pdfViewer.localeObj.getConstant('Bold'));\n this.italicElement = this.primaryToolbar.addClassToolbarItem('_italic', 'e-pv-italic', this.pdfViewer.localeObj.getConstant('Italic'));\n // eslint-disable-next-line max-len\n this.fontStyleStrikethroughItem = this.primaryToolbar.addClassToolbarItem('_strikeout', 'e-pv-strikeout', this.pdfViewer.localeObj.getConstant('Strikethroughs'));\n this.fontStyleUnderlineItem = this.primaryToolbar.addClassToolbarItem('_underline_textinput', 'e-pv-underlinetext', this.pdfViewer.localeObj.getConstant('Underlines'));\n };\n AnnotationToolbar.prototype.createDropDownListForSize = function (fontSelectElement) {\n // eslint-disable-next-line max-len\n var proxy = this;\n var fontSize = ['8px', '9px', '10px', '11px', '12px', '14px', '16px', '18px', '20px', '22px', '24px', '26px', '28px', '36px', '48px', '72px', '96px'];\n if (!this.pdfViewer.enableRtl) {\n this.fontSize = new ComboBox({\n dataSource: fontSize,\n cssClass: 'e-pv-prop-dropdown',\n allowCustom: true,\n showClearButton: false,\n width: '80px',\n popupWidth: '100px'\n });\n }\n else {\n this.fontSize = new ComboBox({\n dataSource: fontSize,\n cssClass: 'e-pv-prop-dropdown-rtl',\n allowCustom: true,\n showClearButton: false,\n width: '80px',\n popupWidth: '100px',\n enableRtl: true\n });\n }\n this.fontSize.value = '16px';\n this.fontSize.appendTo(fontSelectElement);\n this.primaryToolbar.createTooltip(fontSelectElement, this.pdfViewer.localeObj.getConstant('Font size'));\n this.fontSize.addEventListener('change', function (args) {\n var isUserInteracted = args.isInteracted;\n proxy.onFontSizeChange(proxy, isUserInteracted);\n });\n };\n AnnotationToolbar.prototype.createDropDownListForFamily = function (fontSelectElement) {\n var _this = this;\n var fontStyle = [{ FontName: 'Helvetica' },\n { FontName: 'Courier' }, { FontName: 'Symbol' }, { FontName: 'Times New Roman' }];\n if (!this.pdfViewer.enableRtl) {\n this.fontFamily = new ComboBox({\n dataSource: fontStyle,\n query: new Query().select(['FontName']),\n fields: { text: 'FontName', value: 'FontName' },\n cssClass: 'e-pv-prop-dropdown',\n itemTemplate: '${FontName}',\n allowCustom: true,\n showClearButton: false,\n width: '110px',\n popupWidth: '190px'\n });\n }\n else {\n this.fontFamily = new ComboBox({\n dataSource: fontStyle,\n query: new Query().select(['FontName']),\n fields: { text: 'FontName', value: 'FontName' },\n cssClass: 'e-pv-prop-dropdown-rtl',\n itemTemplate: '${FontName}',\n allowCustom: true,\n showClearButton: false,\n width: '110px',\n popupWidth: '190px',\n enableRtl: true\n });\n }\n this.fontFamily.isStringTemplate = true;\n this.fontFamily.value = 'Helvetica';\n this.fontFamily.appendTo(fontSelectElement);\n this.primaryToolbar.createTooltip(fontSelectElement, this.pdfViewer.localeObj.getConstant('Font family'));\n this.fontFamily.addEventListener('change', function () {\n _this.onFontFamilyChange(_this);\n });\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.textPropertiesToolbarItems = function () {\n // eslint-disable-next-line\n var items = [];\n items.push({ prefixIcon: 'e-pv-bold-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_bold', align: 'Left', value: 'bold', click: this.onClickTextProperties.bind(this) });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-italic-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_italic', align: 'Left', value: 'italic', click: this.onClickTextProperties.bind(this) });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-strikeout-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_strikeout', align: 'Left', value: 'strikeout', click: this.onClickTextProperties.bind(this) });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-underlinetext-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_underline_textinput', align: 'Left', value: 'underline', click: this.onClickTextProperties.bind(this) });\n return items;\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.createShapeToolbarItems = function () {\n // eslint-disable-next-line\n var items = [];\n items.push({ prefixIcon: 'e-pv-shape-line-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_shape_line', text: this.pdfViewer.localeObj.getConstant('Line Shape'), align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-shape-arrow-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_shape_arrow', text: this.pdfViewer.localeObj.getConstant('Arrow Shape'), align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-shape-rectangle-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_shape_rectangle', text: this.pdfViewer.localeObj.getConstant('Rectangle Shape'), align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-shape-circle-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_shape_circle', text: this.pdfViewer.localeObj.getConstant('Circle Shape'), align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-shape-pentagon-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_shape_pentagon', text: this.pdfViewer.localeObj.getConstant('Pentagon Shape'), align: 'Left' });\n return items;\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.createCalibrateToolbarItems = function () {\n // eslint-disable-next-line\n var items = [];\n items.push({ prefixIcon: 'e-pv-calibrate-distance-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_calibrate_distance', text: this.pdfViewer.localeObj.getConstant(''), align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-calibrate-perimeter-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_calibrate_perimeter', text: this.pdfViewer.localeObj.getConstant(''), align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-calibrate-area-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_calibrate_area', text: this.pdfViewer.localeObj.getConstant(''), align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-calibrate-radius-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_calibrate_radius', text: this.pdfViewer.localeObj.getConstant(''), align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-calibrate-volume-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_calibrate_volume', text: this.pdfViewer.localeObj.getConstant(''), align: 'Left' });\n return items;\n };\n AnnotationToolbar.prototype.onCalibrateToolbarClicked = function (args) {\n var elementId = this.pdfViewer.element.id;\n var measureModule = this.pdfViewer.annotation.measureAnnotationModule;\n this.deselectAllItems();\n this.resetFreeTextAnnot();\n if (Browser.isDevice && !isBlazor()) {\n // tslint:disable-next-line\n var element = args.originalEvent.target;\n this.pdfViewer.toolbarModule.selectItem(element.parentElement);\n }\n switch (args.originalEvent.target.id) {\n case elementId + '_calibrate_distance':\n case elementId + '_calibrate_distanceIcon':\n measureModule.setAnnotationType('Distance');\n this.onShapeDrawSelection(false);\n this.updateColorInIcon(this.colorDropDownElement, measureModule.distanceFillColor);\n this.updateColorInIcon(this.strokeDropDownElement, measureModule.distanceStrokeColor);\n this.handleShapeTool(elementId + '_calibrate_distance');\n break;\n case elementId + '_calibrate_perimeter':\n case elementId + '_calibrate_perimeterIcon':\n measureModule.setAnnotationType('Perimeter');\n this.onShapeDrawSelection(false);\n this.updateColorInIcon(this.colorDropDownElement, measureModule.perimeterFillColor);\n this.updateColorInIcon(this.strokeDropDownElement, measureModule.perimeterStrokeColor);\n this.handleShapeTool(elementId + '_calibrate_perimeter');\n break;\n case elementId + '_calibrate_area':\n case elementId + '_calibrate_areaIcon':\n measureModule.setAnnotationType('Area');\n this.onShapeDrawSelection(false);\n this.updateColorInIcon(this.colorDropDownElement, measureModule.areaFillColor);\n this.updateColorInIcon(this.strokeDropDownElement, measureModule.areaStrokeColor);\n this.handleShapeTool(elementId + '_calibrate_area');\n break;\n case elementId + '_calibrate_radius':\n case elementId + '_calibrate_radiusIcon':\n measureModule.setAnnotationType('Radius');\n this.onShapeDrawSelection(false);\n this.updateColorInIcon(this.colorDropDownElement, measureModule.radiusFillColor);\n this.updateColorInIcon(this.strokeDropDownElement, measureModule.radiusStrokeColor);\n this.handleShapeTool(elementId + '_calibrate_radius');\n break;\n case elementId + '_calibrate_volume':\n case elementId + '_calibrate_volumeIcon':\n measureModule.setAnnotationType('Volume');\n this.onShapeDrawSelection(false);\n this.updateColorInIcon(this.colorDropDownElement, measureModule.volumeFillColor);\n this.updateColorInIcon(this.strokeDropDownElement, measureModule.volumeStrokeColor);\n this.handleShapeTool(elementId + '_calibrate_volume');\n break;\n }\n };\n AnnotationToolbar.prototype.onShapeDrawSelection = function (isShape) {\n // eslint-disable-next-line\n var annotation = this.pdfViewer.selectedItems.annotations[0];\n if (!Browser.isDevice) {\n this.updateInteractionTools();\n this.enableAnnotationPropertiesTools(true);\n if (isShape) {\n this.shapeDropDown.toggle();\n }\n else {\n this.calibrateDropDown.toggle();\n }\n }\n this.pdfViewer.annotation.triggerAnnotationUnselectEvent();\n };\n AnnotationToolbar.prototype.afterCalibrateToolbarCreationForMobile = function () {\n // eslint-disable-next-line max-len\n this.primaryToolbar.addClassToolbarItem('_calibrate_distance', 'e-pv-calibrate-distance', this.pdfViewer.localeObj.getConstant('Calibrate Distance'));\n this.primaryToolbar.addClassToolbarItem('_calibrate_perimeter', 'e-pv-calibrate-perimeter', this.pdfViewer.localeObj.getConstant('Calibrate Perimeter'));\n // eslint-disable-next-line max-len\n this.primaryToolbar.addClassToolbarItem('_calibrate_area', 'e-pv-calibrate-area', this.pdfViewer.localeObj.getConstant('Calibrate Area'));\n this.primaryToolbar.addClassToolbarItem('_calibrate_radius', 'e-pv-calibrate-radius', this.pdfViewer.localeObj.getConstant('Calibrate Radius'));\n // eslint-disable-next-line max-len\n this.primaryToolbar.addClassToolbarItem('_calibrate_volume', 'e-pv-calibrate-volume', this.pdfViewer.localeObj.getConstant('Calibrate Volume'));\n };\n AnnotationToolbar.prototype.afterShapeToolbarCreationForMobile = function () {\n // eslint-disable-next-line max-len\n this.primaryToolbar.addClassToolbarItem('_annotation_color', 'e-pv-annotation-color-container', this.pdfViewer.localeObj.getConstant('Change Color'));\n // eslint-disable-next-line max-len\n this.primaryToolbar.addClassToolbarItem('_annotation_stroke', 'e-pv-annotation-stroke-container', this.pdfViewer.localeObj.getConstant('Change Stroke Color'));\n // eslint-disable-next-line max-len\n this.primaryToolbar.addClassToolbarItem('_annotation_thickness', 'e-pv-annotation-thickness-container', this.pdfViewer.localeObj.getConstant('Chnage Border Thickness'));\n // eslint-disable-next-line max-len\n this.primaryToolbar.addClassToolbarItem('_annotation_opacity', 'e-annotation-opacity-container', this.pdfViewer.localeObj.getConstant('Change Opacity'));\n this.primaryToolbar.addClassToolbarItem('_shape_line', 'e-pv-shape-line', this.pdfViewer.localeObj.getConstant('Add line'));\n this.primaryToolbar.addClassToolbarItem('_shape_arrow', 'e-pv-shape-arrow', this.pdfViewer.localeObj.getConstant('Add arrow'));\n // eslint-disable-next-line max-len\n this.primaryToolbar.addClassToolbarItem('_shape_rectangle', 'e-pv-shape-rectangle', this.pdfViewer.localeObj.getConstant('Add rectangle'));\n // eslint-disable-next-line max-len\n this.primaryToolbar.addClassToolbarItem('_shape_circle', 'e-pv-shape-circle', this.pdfViewer.localeObj.getConstant('Add circle'));\n this.primaryToolbar.addClassToolbarItem('_shape_pentagon', 'e-pv-shape-pentagon', this.pdfViewer.localeObj.getConstant('Add polygon'));\n };\n AnnotationToolbar.prototype.afterShapeToolbarCreation = function () {\n this.lineElement = this.primaryToolbar.addClassToolbarItem('_shape_line', 'e-pv-shape-line', this.pdfViewer.localeObj.getConstant('Add line'));\n this.arrowElement = this.primaryToolbar.addClassToolbarItem('_shape_arrow', 'e-pv-shape-arrow', this.pdfViewer.localeObj.getConstant('Add arrow'));\n // eslint-disable-next-line max-len\n this.rectangleElement = this.primaryToolbar.addClassToolbarItem('_shape_rectangle', 'e-pv-shape-rectangle', this.pdfViewer.localeObj.getConstant('Add rectangle'));\n // eslint-disable-next-line max-len\n this.circleElement = this.primaryToolbar.addClassToolbarItem('_shape_circle', 'e-pv-shape-circle', this.pdfViewer.localeObj.getConstant('Add circle'));\n this.polygonElement = this.primaryToolbar.addClassToolbarItem('_shape_pentagon', 'e-pv-shape-pentagon', this.pdfViewer.localeObj.getConstant('Add polygon'));\n };\n AnnotationToolbar.prototype.afterCalibrateToolbarCreation = function () {\n // eslint-disable-next-line max-len\n this.calibrateDistance = this.primaryToolbar.addClassToolbarItem('_calibrate_distance', 'e-pv-calibrate-distance', this.pdfViewer.localeObj.getConstant('Calibrate Distance'));\n this.calibratePerimeter = this.primaryToolbar.addClassToolbarItem('_calibrate_perimeter', 'e-pv-calibrate-perimeter', this.pdfViewer.localeObj.getConstant('Calibrate Perimeter'));\n // eslint-disable-next-line max-len\n this.calibrateArea = this.primaryToolbar.addClassToolbarItem('_calibrate_area', 'e-pv-calibrate-area', this.pdfViewer.localeObj.getConstant('Calibrate Area'));\n this.calibrateRadius = this.primaryToolbar.addClassToolbarItem('_calibrate_radius', 'e-pv-calibrate-radius', this.pdfViewer.localeObj.getConstant('Calibrate Radius'));\n // eslint-disable-next-line max-len\n this.calibrateVolume = this.primaryToolbar.addClassToolbarItem('_calibrate_volume', 'e-pv-calibrate-volume', this.pdfViewer.localeObj.getConstant('Calibrate Volume'));\n };\n AnnotationToolbar.prototype.afterMobileToolbarCreation = function () {\n // eslint-disable-next-line max-len\n this.highlightItem = this.primaryToolbar.addClassToolbarItem('_highlight', 'e-pv-highlight', this.pdfViewer.localeObj.getConstant('Highlight'));\n this.underlineItem = this.primaryToolbar.addClassToolbarItem('_underline', 'e-pv-underline', this.pdfViewer.localeObj.getConstant('Underline'));\n // eslint-disable-next-line max-len\n this.strikethroughItem = this.primaryToolbar.addClassToolbarItem('_strikethrough', 'e-pv-strikethrough', this.pdfViewer.localeObj.getConstant('Strikethrough'));\n // eslint-disable-next-line max-len\n this.shapesItem = this.primaryToolbar.addClassToolbarItem('_annotation_shapes', 'e-pv-annotation-shapes', this.pdfViewer.localeObj.getConstant('Add Shapes'));\n this.calibrateItem = this.primaryToolbar.addClassToolbarItem('_annotation_calibrate', 'e-pv-annotation-calibrate', this.pdfViewer.localeObj.getConstant('Calibrate'));\n // eslint-disable-next-line max-len\n this.freeTextEditItem = this.primaryToolbar.addClassToolbarItem('_annotation_freeTextEdit', 'e-pv-annotation-freeTextEdit', this.pdfViewer.localeObj.getConstant('Free Text'));\n // eslint-disable-next-line max-len\n this.commentItem = this.primaryToolbar.addClassToolbarItem('_comment', 'e-pv-comment', this.pdfViewer.localeObj.getConstant('Add Comments'));\n // eslint-disable-next-line max-len\n this.commentItem = this.primaryToolbar.addClassToolbarItem('_annotation_commentPanel', 'e-pv-annotation-comment-panel', this.pdfViewer.localeObj.getConstant('Comment Panel'));\n // eslint-disable-next-line max-len\n this.inkAnnotationItem = this.primaryToolbar.addClassToolbarItem('_annotation_ink', 'e-pv-annotation-ink', this.pdfViewer.localeObj.getConstant('Draw Ink'));\n this.selectAnnotationDeleteItem(false);\n this.enableCommentPanelTool(this.pdfViewer.enableCommentPanel);\n };\n AnnotationToolbar.prototype.createColorPicker = function (idString) {\n var inputElement;\n var existingInput = document.getElementById(idString + '_target');\n if (existingInput) {\n inputElement = existingInput;\n }\n else {\n inputElement = createElement('input', { id: idString + '_target' });\n }\n document.body.appendChild(inputElement);\n var colorPicker = new ColorPicker({\n inline: true, mode: 'Palette', cssClass: 'e-show-value', enableOpacity: false,\n value: '#000000', showButtons: false, modeSwitcher: false\n });\n if (this.pdfViewer.enableRtl) {\n colorPicker.enableRtl = true;\n }\n colorPicker.appendTo(inputElement);\n return colorPicker;\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.onColorPickerChange = function (args) {\n // eslint-disable-next-line\n var currentColor;\n if (!isBlazor()) {\n currentColor = (args.currentValue.hex === '') ? '#ffffff00' : args.currentValue.hex;\n }\n else {\n currentColor = args[0];\n }\n if (this.pdfViewer.annotationModule.textMarkupAnnotationModule) {\n if (this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.modifyColorProperty(currentColor);\n }\n else {\n switch (this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAddMode) {\n case 'Highlight':\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.highlightColor = currentColor;\n break;\n case 'Underline':\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.underlineColor = currentColor;\n break;\n case 'Strikethrough':\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.strikethroughColor = currentColor;\n break;\n }\n }\n }\n if (this.pdfViewer.selectedItems.annotations.length === 1) {\n if (isBlazor()) {\n if (args[0] !== args[1]) {\n this.pdfViewer.annotation.modifyFillColor(currentColor);\n }\n }\n else {\n if (args.currentValue.hex !== args.previousValue.hex) {\n this.pdfViewer.annotation.modifyFillColor(currentColor);\n }\n }\n }\n else {\n if (this.pdfViewer.annotation.shapeAnnotationModule) {\n switch (this.pdfViewer.annotation.shapeAnnotationModule.currentAnnotationMode) {\n case 'Line':\n this.pdfViewer.annotation.shapeAnnotationModule.lineFillColor = currentColor;\n break;\n case 'Arrow':\n this.pdfViewer.annotation.shapeAnnotationModule.arrowFillColor = currentColor;\n break;\n case 'Rectangle':\n this.pdfViewer.annotation.shapeAnnotationModule.rectangleFillColor = currentColor;\n break;\n case 'Circle':\n this.pdfViewer.annotation.shapeAnnotationModule.circleFillColor = currentColor;\n break;\n case 'Polygon':\n this.pdfViewer.annotation.shapeAnnotationModule.polygonFillColor = currentColor;\n break;\n }\n }\n if (this.pdfViewer.drawingObject) {\n this.pdfViewer.drawingObject.fillColor = currentColor;\n if (this.pdfViewer.drawingObject.shapeAnnotationType === 'FreeText') {\n this.pdfViewer.freeTextSettings.fillColor = currentColor;\n this.pdfViewer.annotationModule.freeTextAnnotationModule.updateTextProperties();\n }\n }\n }\n if (isBlazor()) {\n this.colorDropDownElementInBlazor = this.pdfViewer.element.querySelector('.e-pv-annotation-color-container');\n this.updateColorInIcon(this.colorDropDownElementInBlazor, currentColor);\n }\n else {\n this.updateColorInIcon(this.colorDropDownElement, currentColor);\n this.colorDropDown.toggle();\n }\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.onStrokePickerChange = function (args) {\n // eslint-disable-next-line\n var currentColor;\n if (!isBlazor()) {\n currentColor = (args.currentValue.hex === '') ? '#ffffff00' : args.currentValue.hex;\n }\n else {\n currentColor = args[0];\n }\n if (this.pdfViewer.selectedItems.annotations.length === 1) {\n if (isBlazor()) {\n if (args[0] !== args[1]) {\n this.pdfViewer.annotation.modifyStrokeColor(currentColor);\n }\n }\n else {\n if (args.currentValue.hex !== args.previousValue.hex) {\n this.pdfViewer.annotation.modifyStrokeColor(currentColor);\n }\n }\n }\n else {\n if (this.pdfViewer.annotation.shapeAnnotationModule) {\n switch (this.pdfViewer.annotation.shapeAnnotationModule.currentAnnotationMode) {\n case 'Line':\n this.pdfViewer.annotation.shapeAnnotationModule.lineStrokeColor = currentColor;\n break;\n case 'Arrow':\n this.pdfViewer.annotation.shapeAnnotationModule.arrowStrokeColor = currentColor;\n break;\n case 'Rectangle':\n this.pdfViewer.annotation.shapeAnnotationModule.rectangleStrokeColor = currentColor;\n break;\n case 'Circle':\n this.pdfViewer.annotation.shapeAnnotationModule.circleStrokeColor = currentColor;\n break;\n case 'Polygon':\n this.pdfViewer.annotation.shapeAnnotationModule.polygonStrokeColor = currentColor;\n break;\n }\n }\n // eslint-disable-next-line\n var annotationModule = this.pdfViewer.annotation;\n if (annotationModule && annotationModule.inkAnnotationModule) {\n this.pdfViewer.inkAnnotationSettings.strokeColor = currentColor;\n }\n if (this.pdfViewer.drawingObject) {\n this.pdfViewer.drawingObject.strokeColor = currentColor;\n }\n if (this.pdfViewer.drawingObject && this.pdfViewer.drawingObject.shapeAnnotationType === 'FreeText') {\n this.pdfViewer.freeTextSettings.borderColor = currentColor;\n this.pdfViewer.annotationModule.freeTextAnnotationModule.updateTextProperties();\n }\n }\n if (isBlazor()) {\n this.strokeDropDownElementInBlazor = this.pdfViewer.element.querySelector('.e-pv-annotation-stroke-container');\n this.updateColorInIcon(this.strokeDropDownElementInBlazor, currentColor);\n }\n else {\n this.updateColorInIcon(this.strokeDropDownElement, currentColor);\n this.strokeDropDown.toggle();\n }\n };\n /**\n * @param element\n * @param color\n * @param element\n * @param color\n * @private\n */\n AnnotationToolbar.prototype.updateColorInIcon = function (element, color) {\n if (isBlazor()) {\n if (element) {\n element.children[0].style.borderBottomColor = color;\n }\n }\n else {\n if (element) {\n element.childNodes[0] ? element.childNodes[0].style.borderBottomColor = color : element.childNodes[0];\n }\n }\n };\n /**\n * @param currentOption\n * @private\n */\n AnnotationToolbar.prototype.updateTextPropertySelection = function (currentOption) {\n if (currentOption === 'bold') {\n document.getElementById(this.pdfViewer.element.id + '_bold').classList.toggle('textprop-option-active');\n }\n else if (currentOption === 'italic') {\n document.getElementById(this.pdfViewer.element.id + '_italic').classList.toggle('textprop-option-active');\n }\n else if (currentOption === 'underline') {\n document.getElementById(this.pdfViewer.element.id + '_underline_textinput').classList.toggle('textprop-option-active');\n document.getElementById(this.pdfViewer.element.id + '_strikeout').classList.remove('textprop-option-active');\n }\n else if (currentOption === 'strikeout') {\n document.getElementById(this.pdfViewer.element.id + '_strikeout').classList.toggle('textprop-option-active');\n document.getElementById(this.pdfViewer.element.id + '_underline_textinput').classList.remove('textprop-option-active');\n }\n };\n /**\n * @param family\n * @private\n */\n AnnotationToolbar.prototype.updateFontFamilyInIcon = function (family) {\n this.fontFamily.value = family;\n };\n /**\n * @param align\n * @private\n */\n AnnotationToolbar.prototype.updateTextAlignInIcon = function (align) {\n var className = 'e-btn-icon e-pv-left-align-icon e-pv-icon';\n var leftAlign = document.getElementById(this.pdfViewer.element.id + '_left_align');\n var rightAlign = document.getElementById(this.pdfViewer.element.id + '_right_align');\n var centerAlign = document.getElementById(this.pdfViewer.element.id + '_center_align');\n var justifyAlign = document.getElementById(this.pdfViewer.element.id + '_justify_align');\n if (!isBlazor()) {\n leftAlign.classList.remove('textprop-option-active');\n rightAlign.classList.remove('textprop-option-active');\n centerAlign.classList.remove('textprop-option-active');\n justifyAlign.classList.remove('textprop-option-active');\n }\n if (align === 'Left') {\n leftAlign.classList.add('textprop-option-active');\n }\n else if (align === 'Right') {\n className = 'e-btn-icon e-pv-right-align-icon e-pv-icon';\n rightAlign.classList.add('textprop-option-active');\n }\n else if (align === 'Center') {\n className = 'e-btn-icon e-pv-center-align-icon e-pv-icon';\n centerAlign.classList.add('textprop-option-active');\n }\n else if (align === 'Justify') {\n className = 'e-btn-icon e-pv-justfiy-align-icon e-pv-icon';\n justifyAlign.classList.add('textprop-option-active');\n }\n document.getElementById(this.pdfViewer.element.id + '_annotation_textalign').children[0].className = className;\n };\n /**\n * @param size\n * @private\n */\n AnnotationToolbar.prototype.updateFontSizeInIcon = function (size) {\n this.fontSize.value = size + 'px';\n };\n AnnotationToolbar.prototype.updateOpacityIndicator = function () {\n // eslint-disable-next-line\n this.opacityIndicator.textContent = parseInt(Math.round(this.opacitySlider.value).toString()) + '%';\n };\n AnnotationToolbar.prototype.updateThicknessIndicator = function () {\n this.thicknessIndicator.textContent = this.thicknessSlider.value + ' pt';\n };\n AnnotationToolbar.prototype.createSlider = function (idString) {\n var outerContainer = createElement('div', { className: 'e-pv-annotation-opacity-popup-container' });\n document.body.appendChild(outerContainer);\n var label = createElement('span', { id: idString + '_label', className: 'e-pv-annotation-opacity-label' });\n label.textContent = this.pdfViewer.localeObj.getConstant('Opacity');\n var sliderElement = createElement('div', { id: idString + '_slider' });\n this.opacitySlider = new Slider({ type: 'MinRange', cssClass: 'e-pv-annotation-opacity-slider', max: 100, min: 0 });\n // eslint-disable-next-line max-len\n this.opacityIndicator = createElement('div', { id: idString + '_opacity_indicator', className: 'e-pv-annotation-opacity-indicator' });\n this.opacityIndicator.textContent = '100%';\n if (!this.pdfViewer.enableRtl) {\n outerContainer.appendChild(label);\n outerContainer.appendChild(sliderElement);\n this.opacitySlider.appendTo(sliderElement);\n this.opacitySlider.element.parentElement.classList.add('e-pv-annotation-opacity-slider-container');\n outerContainer.appendChild(this.opacityIndicator);\n }\n else {\n outerContainer.appendChild(this.opacityIndicator);\n outerContainer.appendChild(sliderElement);\n this.opacitySlider.enableRtl = true;\n this.opacitySlider.appendTo(sliderElement);\n this.opacitySlider.element.parentElement.classList.add('e-pv-annotation-opacity-slider-container');\n outerContainer.appendChild(label);\n }\n return outerContainer;\n };\n AnnotationToolbar.prototype.createThicknessSlider = function (idString) {\n var outerContainer = createElement('div', { className: 'e-pv-annotation-thickness-popup-container' });\n document.body.appendChild(outerContainer);\n var label = createElement('span', { id: idString + '_label', className: 'e-pv-annotation-thickness-label' });\n label.textContent = this.pdfViewer.localeObj.getConstant('Line Thickness');\n var sliderElement = createElement('div', { id: idString + '_slider' });\n this.thicknessSlider = new Slider({ type: 'MinRange', cssClass: 'e-pv-annotation-thickness-slider', max: 12, min: 0 });\n // eslint-disable-next-line max-len\n this.thicknessIndicator = createElement('div', { id: idString + '_thickness_indicator', className: 'e-pv-annotation-thickness-indicator' });\n this.thicknessIndicator.textContent = '0 pt';\n if (!this.pdfViewer.enableRtl) {\n outerContainer.appendChild(label);\n outerContainer.appendChild(sliderElement);\n this.thicknessSlider.appendTo(sliderElement);\n outerContainer.appendChild(this.thicknessIndicator);\n }\n else {\n outerContainer.appendChild(this.thicknessIndicator);\n outerContainer.appendChild(sliderElement);\n this.thicknessSlider.enableRtl = true;\n this.thicknessSlider.appendTo(sliderElement);\n outerContainer.appendChild(label);\n }\n this.thicknessSlider.element.parentElement.classList.add('e-pv-annotation-thickness-slider-container');\n return outerContainer;\n };\n AnnotationToolbar.prototype.afterToolbarCreation = function () {\n // eslint-disable-next-line max-len\n this.highlightItem = this.primaryToolbar.addClassToolbarItem('_highlight', 'e-pv-highlight', this.pdfViewer.localeObj.getConstant('Highlight'));\n this.underlineItem = this.primaryToolbar.addClassToolbarItem('_underline', 'e-pv-underline', this.pdfViewer.localeObj.getConstant('Underline'));\n // eslint-disable-next-line max-len\n this.strikethroughItem = this.primaryToolbar.addClassToolbarItem('_strikethrough', 'e-pv-strikethrough', this.pdfViewer.localeObj.getConstant('Strikethrough'));\n this.deleteItem = this.primaryToolbar.addClassToolbarItem('_annotation_delete', 'e-pv-annotation-delete', this.pdfViewer.localeObj.getConstant('Delete'));\n // eslint-disable-next-line max-len\n this.freeTextEditItem = this.primaryToolbar.addClassToolbarItem('_annotation_freeTextEdit', 'e-pv-annotation-freeTextEdit', this.pdfViewer.localeObj.getConstant('Free Text'));\n // eslint-disable-next-line max-len\n this.inkAnnotationItem = this.primaryToolbar.addClassToolbarItem('_annotation_ink', 'e-pv-annotation-ink', this.pdfViewer.localeObj.getConstant('Draw Ink'));\n // eslint-disable-next-line max-len\n this.commentItem = this.primaryToolbar.addClassToolbarItem('_annotation_commentPanel', 'e-pv-annotation-comment-panel', this.pdfViewer.localeObj.getConstant('Comment Panel'));\n this.closeItem = this.primaryToolbar.addClassToolbarItem('_annotation_close', 'e-pv-annotation-tools-close', null);\n this.selectAnnotationDeleteItem(false);\n this.enableTextMarkupAnnotationPropertiesTools(false);\n this.enableCommentPanelTool(this.pdfViewer.enableCommentPanel);\n };\n AnnotationToolbar.prototype.onToolbarClicked = function (args) {\n // eslint-disable-next-line\n var annotation = this.pdfViewer.selectedItems.annotations[0];\n if (args.originalEvent.target.id) {\n this.pdfViewer.toolbarModule.updateStampItems();\n }\n this.pdfViewer.toolbarModule.deSelectCommentAnnotation();\n switch (args.originalEvent.target.id) {\n case this.pdfViewer.element.id + '_highlight':\n case this.pdfViewer.element.id + '_highlightIcon':\n this.pdfViewer.tool = '';\n if (!Browser.isDevice) {\n this.pdfViewer.tool = '';\n this.resetFreeTextAnnot();\n this.handleHighlight();\n }\n else {\n this.pdfViewer.annotationModule.setAnnotationMode('Highlight');\n this.textMarkupForMobile(args);\n }\n this.pdfViewer.annotation.triggerAnnotationUnselectEvent();\n break;\n case this.pdfViewer.element.id + '_underline':\n case this.pdfViewer.element.id + '_underlineIcon':\n this.pdfViewer.tool = '';\n if (!Browser.isDevice) {\n this.pdfViewer.tool = '';\n this.resetFreeTextAnnot();\n this.handleUnderline();\n }\n else {\n this.pdfViewer.annotationModule.setAnnotationMode('Underline');\n this.textMarkupForMobile(args);\n }\n this.pdfViewer.annotation.triggerAnnotationUnselectEvent();\n break;\n case this.pdfViewer.element.id + '_strikethrough':\n case this.pdfViewer.element.id + '_strikethroughIcon':\n this.pdfViewer.tool = '';\n if (!Browser.isDevice) {\n this.pdfViewer.tool = '';\n this.resetFreeTextAnnot();\n this.handleStrikethrough();\n }\n else {\n this.pdfViewer.annotationModule.setAnnotationMode('Strikethrough');\n this.textMarkupForMobile(args);\n }\n this.pdfViewer.annotation.triggerAnnotationUnselectEvent();\n break;\n case this.pdfViewer.element.id + '_annotation_delete':\n case this.pdfViewer.element.id + '_annotation_deleteIcon':\n this.pdfViewer.annotationModule.deleteAnnotation();\n this.resetFreeTextAnnot();\n break;\n case this.pdfViewer.element.id + '_annotation_commentPanel':\n case this.pdfViewer.element.id + '_annotation_commentPanelIcon':\n this.inkAnnotationSelected = false;\n var commentPanel = document.getElementById(this.pdfViewer.element.id + '_commantPanel');\n if (this.pdfViewer.annotation && this.pdfViewer.annotation.textMarkupAnnotationModule) {\n this.pdfViewer.annotation.textMarkupAnnotationModule.showHideDropletDiv(true);\n }\n if (commentPanel.style.display === 'block') {\n this.pdfViewerBase.navigationPane.closeCommentPanelContainer();\n }\n else {\n this.pdfViewer.annotationModule.showCommentsPanel();\n }\n break;\n case this.pdfViewer.element.id + '_annotation_close':\n case this.pdfViewer.element.id + '_annotation_closeIcon':\n this.inkAnnotationSelected = false;\n var commentsPanel = document.getElementById(this.pdfViewer.element.id + '_commantPanel');\n if (commentsPanel.style.display === 'block') {\n this.pdfViewerBase.navigationPane.closeCommentPanelContainer();\n }\n this.showAnnotationToolbar(this.primaryToolbar.annotationItem);\n break;\n case this.pdfViewer.element.id + '_annotation_freeTextEdit':\n case this.pdfViewer.element.id + '_annotation_freeTextEditIcon':\n if (!Browser.isDevice) {\n this.resetFreeTextAnnot();\n this.handleFreeTextEditor();\n }\n else {\n this.pdfViewer.annotationModule.setAnnotationMode('FreeText');\n this.FreeTextForMobile();\n }\n break;\n case this.pdfViewer.element.id + '_annotation_signature':\n case this.pdfViewer.element.id + '_annotation_signatureIcon':\n this.inkAnnotationSelected = false;\n this.updateSignatureCount();\n break;\n case this.pdfViewer.element.id + '_annotation_ink':\n case this.pdfViewer.element.id + '_annotation_inkIcon':\n if (annotation) {\n this.pdfViewer.annotation.triggerAnnotationUnselectEvent();\n }\n this.pdfViewer.clearSelection(this.pdfViewer.currentPageNumber - 1);\n if (this.pdfViewer.annotationModule.inkAnnotationModule) {\n // eslint-disable-next-line\n var currentPageNumber = this.pdfViewer.annotationModule.inkAnnotationModule.currentPageNumber;\n if (currentPageNumber && currentPageNumber !== '') {\n // eslint-disable-next-line\n this.pdfViewer.annotationModule.inkAnnotationModule.drawInkAnnotation(parseInt(currentPageNumber));\n this.primaryToolbar.deSelectItem(this.inkAnnotationItem);\n }\n }\n if (!this.inkAnnotationSelected) {\n this.deselectAllItems();\n this.drawInkAnnotation();\n }\n else {\n this.inkAnnotationSelected = false;\n }\n break;\n case this.pdfViewer.element.id + '_annotation_shapesIcon':\n case this.pdfViewer.element.id + '_annotation_shapes':\n if (Browser.isDevice) {\n this.shapeToolMobile(args);\n }\n break;\n case this.pdfViewer.element.id + '_annotation_calibrateIcon':\n case this.pdfViewer.element.id + '_annotation_calibrate':\n if (Browser.isDevice) {\n this.calibrateToolMobile(args);\n }\n break;\n case this.pdfViewer.element.id + '_commentIcon':\n case this.pdfViewer.element.id + '_comment':\n this.pdfViewerBase.isAddComment = true;\n this.pdfViewerBase.isCommentIconAdded = true;\n var commentsButton = document.getElementById(this.pdfViewer.element.id + '_comment');\n commentsButton.classList.add('e-pv-select');\n this.pdfViewer.toolbarModule.addComments(args);\n break;\n }\n };\n AnnotationToolbar.prototype.addInkAnnotation = function () {\n this.pdfViewer.clearSelection(this.pdfViewer.currentPageNumber - 1);\n if (this.pdfViewer.annotationModule.inkAnnotationModule) {\n // eslint-disable-next-line\n var currentPageNumber = this.pdfViewer.annotationModule.inkAnnotationModule.currentPageNumber;\n if (currentPageNumber && currentPageNumber !== '') {\n // eslint-disable-next-line\n this.pdfViewer.annotationModule.inkAnnotationModule.drawInkAnnotation(parseInt(currentPageNumber));\n if (!isBlazor()) {\n this.primaryToolbar.deSelectItem(this.inkAnnotationItem);\n }\n else {\n this.primaryToolbar.deSelectItem(this.InkAnnotationElement);\n this.pdfViewerBase.focusViewerContainer();\n }\n }\n }\n if (!this.inkAnnotationSelected) {\n this.deselectAllItemsInBlazor();\n this.drawInkAnnotation();\n }\n else {\n this.inkAnnotationSelected = false;\n }\n };\n /**\n * @private\n */\n AnnotationToolbar.prototype.deselectInkAnnotation = function () {\n if (!isBlazor()) {\n this.primaryToolbar.deSelectItem(this.inkAnnotationItem);\n }\n else {\n this.primaryToolbar.deSelectItem(this.InkAnnotationElement);\n this.pdfViewerBase.focusViewerContainer();\n }\n };\n AnnotationToolbar.prototype.drawInkAnnotation = function () {\n this.inkAnnotationSelected = true;\n if (!isBlazor()) {\n this.primaryToolbar.selectItem(this.inkAnnotationItem);\n }\n else {\n this.primaryToolbar.selectItem(this.InkAnnotationElement);\n }\n this.enableSignaturePropertiesTools(true);\n this.pdfViewerBase.isToolbarInkClicked = true;\n this.pdfViewer.annotationModule.inkAnnotationModule.drawInk();\n };\n AnnotationToolbar.prototype.resetFreeTextAnnot = function () {\n if (this.pdfViewer.annotationModule && this.pdfViewer.annotationModule.freeTextAnnotationModule) {\n this.pdfViewer.annotation.freeTextAnnotationModule.isNewFreeTextAnnot = false;\n this.pdfViewer.annotation.freeTextAnnotationModule.isNewAddedAnnot = false;\n if (!Browser.isDevice) {\n if (this.freeTextEditItem && !isBlazor()) {\n this.primaryToolbar.deSelectItem(this.freeTextEditItem);\n }\n else if (isBlazor()) {\n this.primaryToolbar.deSelectItem(this.FreeTextElement);\n }\n this.enableFreeTextAnnotationPropertiesTools(false);\n }\n }\n if (this.pdfViewer.annotationModule && this.pdfViewer.annotationModule.inkAnnotationModule) { // eslint-disable-next-line\n var currentPageNumber = this.pdfViewer.annotationModule.inkAnnotationModule.currentPageNumber;\n if (currentPageNumber && currentPageNumber !== '') {\n // eslint-disable-next-line\n this.pdfViewer.annotationModule.inkAnnotationModule.drawInkAnnotation(parseInt(currentPageNumber));\n if (!isBlazor()) {\n this.primaryToolbar.deSelectItem(this.inkAnnotationItem);\n }\n else {\n this.primaryToolbar.deSelectItem(this.InkAnnotationElement);\n }\n }\n }\n this.inkAnnotationSelected = false;\n };\n AnnotationToolbar.prototype.updateInkannotationItems = function () {\n if (this.pdfViewer.annotationModule && this.pdfViewer.annotationModule.inkAnnotationModule && this.inkAnnotationSelected) {\n // eslint-disable-next-line\n var currentPageNumber = this.pdfViewer.annotationModule.inkAnnotationModule.currentPageNumber;\n if (currentPageNumber && currentPageNumber !== '') {\n // eslint-disable-next-line\n this.pdfViewer.annotationModule.inkAnnotationModule.drawInkAnnotation(parseInt(currentPageNumber));\n this.pdfViewerBase.isToolbarInkClicked = true;\n this.pdfViewer.tool = 'Ink';\n this.pdfViewer.clearSelection(currentPageNumber);\n }\n }\n };\n AnnotationToolbar.prototype.showSignaturepanel = function () {\n this.pdfViewerBase.isToolbarSignClicked = true;\n this.pdfViewerBase.signatureModule.showSignatureDialog(true);\n };\n AnnotationToolbar.prototype.handleFreeTextEditor = function () {\n // eslint-disable-next-line\n var annotation = this.pdfViewer.selectedItems.annotations[0];\n this.enableFreeTextAnnotationPropertiesTools(true);\n if (annotation) {\n this.pdfViewer.fireAnnotationUnSelect(annotation.annotName, annotation.pageIndex, annotation);\n }\n this.pdfViewer.clearSelection(this.pdfViewer.currentPageNumber - 1);\n if (this.pdfViewer.annotationModule.textMarkupAnnotationModule) {\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.isTextMarkupAnnotationMode = false;\n }\n this.isStrikethroughEnabled = false;\n this.isHighlightEnabled = false;\n this.isUnderlineEnabled = false;\n var freeTextAnnotationModule = this.pdfViewer.annotation.freeTextAnnotationModule;\n freeTextAnnotationModule.setAnnotationType('FreeText');\n freeTextAnnotationModule.isNewFreeTextAnnot = true;\n freeTextAnnotationModule.isNewAddedAnnot = true;\n this.updateInteractionTools();\n this.primaryToolbar.deSelectItem(this.highlightItem);\n this.primaryToolbar.deSelectItem(this.underlineItem);\n this.primaryToolbar.deSelectItem(this.strikethroughItem);\n this.primaryToolbar.selectItem(this.freeTextEditItem);\n this.updateColorInIcon(this.colorDropDownElement, this.pdfViewer.annotationModule.freeTextAnnotationModule.fillColor);\n this.updateColorInIcon(this.strokeDropDownElement, this.pdfViewer.annotationModule.freeTextAnnotationModule.borderColor);\n this.updateColorInIcon(this.fontColorElement, this.pdfViewer.annotationModule.freeTextAnnotationModule.fontColor);\n this.updateFontFamilyInIcon(this.pdfViewer.annotationModule.freeTextAnnotationModule.fontFamily);\n this.updateFontSizeInIcon(this.pdfViewer.annotationModule.freeTextAnnotationModule.fontSize);\n this.updateTextAlignInIcon(this.pdfViewer.annotationModule.freeTextAnnotationModule.textAlign);\n this.updateFontFamily();\n };\n AnnotationToolbar.prototype.updateFontFamily = function () {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.freeTextAnnotationModule.isBold ? this.updateFontFamilyIcon('_bold', true) : this.updateFontFamilyIcon('_bold', false);\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.freeTextAnnotationModule.isItalic ? this.updateFontFamilyIcon('_italic', true) : this.updateFontFamilyIcon('_italic', false);\n if (this.pdfViewer.annotationModule.freeTextAnnotationModule.isUnderline) {\n this.updateFontFamilyIcon('_underline_textinput', true);\n this.updateFontFamilyIcon('_strikeout', false);\n }\n else {\n this.updateFontFamilyIcon('_underline_textinput', false);\n }\n if (this.pdfViewer.annotationModule.freeTextAnnotationModule.isStrikethrough) {\n this.updateFontFamilyIcon('_strikeout', true);\n this.updateFontFamilyIcon('_underline_textinput', false);\n }\n else {\n this.updateFontFamilyIcon('_strikeout', false);\n }\n };\n AnnotationToolbar.prototype.updateFontFamilyIcon = function (fontFamily, isActive) {\n var fontFamilyElement = document.getElementById(this.pdfViewer.element.id + fontFamily);\n isActive ? fontFamilyElement.classList.add('textprop-option-active') : fontFamilyElement.classList.remove('textprop-option-active');\n };\n /**\n * @param element\n * @param isInitialLoading\n * @param element\n * @param isInitialLoading\n * @private\n */\n AnnotationToolbar.prototype.showAnnotationToolbar = function (element, isInitialLoading) {\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n if (!this.isToolbarHidden) {\n // eslint-disable-next-line\n var annotationModule = this.pdfViewer.annotationModule;\n if (element) {\n this.primaryToolbar.deSelectItem(element);\n }\n else {\n if (this.pdfViewer.enableToolbar) {\n this.primaryToolbar.deSelectItem(this.primaryToolbar.annotationItem);\n }\n }\n this.adjustViewer(false);\n // eslint-disable-next-line max-len\n if (annotationModule && annotationModule.textMarkupAnnotationModule && annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n this.enablePropertiesTool(annotationModule);\n }\n else {\n this.deselectAllItems();\n }\n this.toolbarElement.style.display = 'none';\n if (!isInitialLoading) {\n this.pdfViewer.isAnnotationToolbarVisible = false;\n }\n if (this.pdfViewerBase.isPanMode) {\n this.primaryToolbar.updateInteractionTools(false);\n }\n else {\n this.primaryToolbar.updateInteractionTools(true);\n }\n }\n else {\n var toolBarInitialStatus = void 0;\n if (this.toolbarElement) {\n toolBarInitialStatus = this.toolbarElement.style.display;\n this.toolbarElement.style.display = 'block';\n }\n if (!isInitialLoading) {\n this.pdfViewer.isAnnotationToolbarVisible = true;\n }\n if (element) {\n this.primaryToolbar.selectItem(element);\n }\n else {\n if (this.pdfViewer.enableToolbar) {\n this.primaryToolbar.selectItem(this.primaryToolbar.annotationItem);\n }\n }\n if (toolBarInitialStatus === 'none') {\n this.adjustViewer(true);\n }\n }\n // eslint-disable-next-line max-len\n if (this.pdfViewer.magnification && this.pdfViewer.magnification.fitType === 'fitToPage') {\n this.pdfViewer.magnification.fitToPage();\n }\n this.enableAnnotationAddTools(true);\n this.isToolbarHidden = !this.isToolbarHidden;\n }\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.enablePropertiesTool = function (annotationModule) {\n this.isHighlightEnabled = false;\n this.isUnderlineEnabled = false;\n this.isStrikethroughEnabled = false;\n if (this.pdfViewerBase.isTextMarkupAnnotationModule()) {\n annotationModule.textMarkupAnnotationModule.isTextMarkupAnnotationMode = false;\n }\n this.primaryToolbar.deSelectItem(this.highlightItem);\n this.primaryToolbar.deSelectItem(this.underlineItem);\n this.primaryToolbar.deSelectItem(this.strikethroughItem);\n this.enableTextMarkupAnnotationPropertiesTools(true);\n // eslint-disable-next-line max-len\n this.updateColorInIcon(this.colorDropDownElement, annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation.color);\n this.selectAnnotationDeleteItem(true);\n };\n /**\n * @private\n */\n AnnotationToolbar.prototype.applyAnnotationToolbarSettings = function () {\n // eslint-disable-next-line\n var annotationToolbarItems = this.pdfViewer.toolbarSettings.annotationToolbarItems;\n if (annotationToolbarItems) {\n if (annotationToolbarItems.indexOf('HighlightTool') !== -1) {\n this.showHighlightTool(true, 0, 0);\n }\n else {\n this.showHighlightTool(false, 0, 0);\n }\n if (annotationToolbarItems.indexOf('UnderlineTool') !== -1) {\n this.showUnderlineTool(true, 1, 1);\n }\n else {\n this.showUnderlineTool(false, 1, 1);\n }\n if (annotationToolbarItems.indexOf('StrikethroughTool') !== -1) {\n this.showStrikethroughTool(true, 2, 2);\n }\n else {\n this.showStrikethroughTool(false, 2, 2);\n }\n if (annotationToolbarItems.indexOf('ShapeTool') !== -1) {\n this.showShapeAnnotationTool(true, 4, 4);\n }\n else {\n this.showShapeAnnotationTool(false, 4, 4);\n }\n if (annotationToolbarItems.indexOf('CalibrateTool') !== -1) {\n this.showCalibrateAnnotationTool(true, 6, 6);\n }\n else {\n this.showCalibrateAnnotationTool(false, 6, 6);\n }\n if (annotationToolbarItems.indexOf('ColorEditTool') !== -1) {\n this.showColorEditTool(true, 22, 22);\n }\n else {\n this.showColorEditTool(false, 22, 22);\n }\n if (annotationToolbarItems.indexOf('StrokeColorEditTool') !== -1) {\n this.showStrokeColorEditTool(true, 23, 23);\n }\n else {\n this.showStrokeColorEditTool(false, 23, 23);\n }\n if (annotationToolbarItems.indexOf('ThicknessEditTool') !== -1) {\n this.showThicknessEditTool(true, 24, 24);\n }\n else {\n this.showThicknessEditTool(false, 24, 24);\n }\n if (annotationToolbarItems.indexOf('OpacityEditTool') !== -1) {\n this.showOpacityEditTool(true, 25, 25);\n }\n else {\n this.showOpacityEditTool(false, 25, 25);\n }\n if (annotationToolbarItems.indexOf('AnnotationDeleteTool') !== -1) {\n this.showAnnotationDeleteTool(true, 27, 27);\n }\n else {\n this.showAnnotationDeleteTool(false, 27, 27);\n }\n if (annotationToolbarItems.indexOf('StampAnnotationTool') !== -1) {\n this.showStampAnnotationTool(true, 10, 10);\n }\n else {\n this.showStampAnnotationTool(false, 10, 10);\n }\n if (annotationToolbarItems.indexOf('HandWrittenSignatureTool') !== -1) {\n this.showSignatureTool(true, 12, 12);\n }\n else {\n this.showSignatureTool(false, 12, 12);\n }\n if (annotationToolbarItems.indexOf('FreeTextAnnotationTool') !== -1) {\n this.showFreeTextAnnotationTool(true, 8, 8);\n }\n else {\n this.showFreeTextAnnotationTool(false, 8, 8);\n }\n if (annotationToolbarItems.indexOf('FontFamilyAnnotationTool') !== -1) {\n this.showFontFamilyAnnotationTool(true, 16, 16);\n }\n else {\n this.showFontFamilyAnnotationTool(false, 16, 16);\n }\n if (annotationToolbarItems.indexOf('FontSizeAnnotationTool') !== -1) {\n this.showFontSizeAnnotationTool(true, 17, 17);\n }\n else {\n this.showFontSizeAnnotationTool(false, 17, 17);\n }\n if (annotationToolbarItems.indexOf('FontStylesAnnotationTool') !== -1) {\n this.showFontStylesAnnotationTool(true, 20, 20);\n }\n else {\n this.showFontStylesAnnotationTool(false, 20, 20);\n }\n if (annotationToolbarItems.indexOf('FontAlignAnnotationTool') !== -1) {\n this.showFontAlignAnnotationTool(true, 18, 18);\n }\n else {\n this.showFontAlignAnnotationTool(false, 18, 18);\n }\n if (annotationToolbarItems.indexOf('FontColorAnnotationTool') !== -1) {\n this.showFontColorAnnotationTool(true, 19, 19);\n }\n else {\n this.showFontColorAnnotationTool(false, 19, 19);\n }\n if (annotationToolbarItems.indexOf('CommentPanelTool') !== -1) {\n this.showCommentPanelTool(true, 28, 28);\n }\n else {\n this.showCommentPanelTool(false, 28, 28);\n }\n this.showInkAnnotationTool();\n this.showSeparator();\n }\n };\n /**\n * @private\n */\n AnnotationToolbar.prototype.applyMobileAnnotationToolbarSettings = function () {\n // eslint-disable-next-line\n var annotationToolbarItems = this.pdfViewer.toolbarSettings.annotationToolbarItems;\n if (annotationToolbarItems) {\n if (annotationToolbarItems.indexOf('HighlightTool') !== -1) {\n this.showHighlightTool(true, 2, 2);\n }\n else {\n this.showHighlightTool(false, 2, 2);\n }\n if (annotationToolbarItems.indexOf('UnderlineTool') !== -1) {\n this.showUnderlineTool(true, 3, 3);\n }\n else {\n this.showUnderlineTool(false, 3, 3);\n }\n if (annotationToolbarItems.indexOf('StrikethroughTool') !== -1) {\n this.showStrikethroughTool(true, 4, 4);\n }\n else {\n this.showStrikethroughTool(false, 4, 4);\n }\n if (annotationToolbarItems.indexOf('ShapeTool') !== -1) {\n this.showShapeAnnotationTool(true, 6, 6);\n }\n else {\n this.showShapeAnnotationTool(false, 6, 6);\n }\n if (annotationToolbarItems.indexOf('CalibrateTool') !== -1) {\n this.showCalibrateAnnotationTool(true, 8, 8);\n }\n else {\n this.showCalibrateAnnotationTool(false, 8, 8);\n }\n var toolbarItems = this.pdfViewer.toolbarSettings.toolbarItems;\n if (toolbarItems && toolbarItems.indexOf('CommentTool') !== -1) {\n this.showStickyNoteToolInMobile(true);\n }\n else {\n this.showStickyNoteToolInMobile(false);\n }\n if (annotationToolbarItems.indexOf('StampAnnotationTool') !== -1) {\n this.showStampAnnotationTool(true, 12, 12);\n }\n else {\n this.showStampAnnotationTool(false, 12, 12);\n }\n if (annotationToolbarItems.indexOf('HandWrittenSignatureTool') !== -1) {\n this.showSignatureTool(true, 14, 14);\n }\n else {\n this.showSignatureTool(false, 14, 14);\n }\n if (annotationToolbarItems.indexOf('FreeTextAnnotationTool') !== -1) {\n this.showFreeTextAnnotationTool(true, 10, 10);\n }\n else {\n this.showFreeTextAnnotationTool(false, 10, 10);\n }\n if (annotationToolbarItems.indexOf('CommentPanelTool') !== -1) {\n this.showCommentPanelTool(true, 18, 18);\n }\n else {\n this.showCommentPanelTool(false, 18, 18);\n }\n if (annotationToolbarItems.indexOf('InkAnnotationTool') !== -1) {\n this.showInkTool(true, 16, 16);\n }\n else {\n this.showInkTool(false, 16, 16);\n }\n this.showSeparatorInMobile();\n }\n };\n AnnotationToolbar.prototype.showStickyNoteToolInMobile = function (isShow) {\n this.isCommentBtnVisible = isShow;\n this.applyHideToToolbar(isShow, 0, 0);\n };\n AnnotationToolbar.prototype.showSeparatorInMobile = function () {\n if (!this.isCommentBtnVisible) {\n this.applyHideToToolbar(false, 1, 1);\n }\n if ((!this.isHighlightBtnVisible && !this.isUnderlineBtnVisible && !this.isStrikethroughBtnVisible)) {\n this.applyHideToToolbar(false, 5, 5);\n }\n if (!this.isShapeBtnVisible) {\n this.applyHideToToolbar(false, 7, 7);\n }\n if (!this.isCalibrateBtnVisible) {\n this.applyHideToToolbar(false, 9, 9);\n }\n if (!this.isFreeTextBtnVisible) {\n this.applyHideToToolbar(false, 11, 11);\n }\n if (!this.isStampBtnVisible) {\n this.applyHideToToolbar(false, 13, 13);\n }\n if (!this.isSignatureBtnVisible) {\n this.applyHideToToolbar(false, 15, 15);\n }\n if (!this.isInkBtnVisible) {\n this.applyHideToToolbar(false, 17, 17);\n }\n };\n AnnotationToolbar.prototype.showInkAnnotationTool = function () {\n if (this.pdfViewer.toolbarSettings.annotationToolbarItems.indexOf('InkAnnotationTool') !== -1) {\n this.showInkTool(true, 14, 14);\n }\n else {\n this.showInkTool(false, 14, 14);\n }\n };\n AnnotationToolbar.prototype.showSeparator = function () {\n if ((!this.isHighlightBtnVisible && !this.isUnderlineBtnVisible && !this.isStrikethroughBtnVisible)) {\n this.applyHideToToolbar(false, 3, 3);\n }\n if (!this.isShapeBtnVisible) {\n this.applyHideToToolbar(false, 5, 5);\n }\n if (!this.isCalibrateBtnVisible) {\n this.applyHideToToolbar(false, 7, 7);\n }\n if (!this.isFreeTextBtnVisible) {\n this.applyHideToToolbar(false, 9, 9);\n }\n if (!this.isStampBtnVisible) {\n this.applyHideToToolbar(false, 11, 11);\n }\n if (!this.isSignatureBtnVisible) {\n this.applyHideToToolbar(false, 13, 13);\n }\n if (!this.isInkBtnVisible) {\n this.applyHideToToolbar(false, 15, 15);\n }\n // eslint-disable-next-line max-len\n if (!this.isFontFamilyToolVisible && !this.isFontSizeToolVisible && !this.isFontColorToolVisible && !this.isFontAlignToolVisible && !this.isFontStylesToolVisible) {\n this.applyHideToToolbar(false, 21, 21);\n }\n // eslint-disable-next-line max-len\n if ((!this.isColorToolVisible && !this.isStrokeColorToolVisible && !this.isThicknessToolVisible && !this.isOpacityToolVisible) || !this.isDeleteAnnotationToolVisible) {\n this.applyHideToToolbar(false, 26, 26);\n }\n };\n AnnotationToolbar.prototype.showHighlightTool = function (isShow, startIndex, endIndex) {\n this.isHighlightBtnVisible = isShow;\n this.applyHideToToolbar(isShow, startIndex, endIndex);\n };\n AnnotationToolbar.prototype.showUnderlineTool = function (isShow, startIndex, endIndex) {\n this.isUnderlineBtnVisible = isShow;\n this.applyHideToToolbar(isShow, startIndex, endIndex);\n };\n AnnotationToolbar.prototype.showStrikethroughTool = function (isShow, startIndex, endIndex) {\n this.isStrikethroughBtnVisible = isShow;\n this.applyHideToToolbar(isShow, startIndex, endIndex);\n };\n AnnotationToolbar.prototype.showShapeAnnotationTool = function (isShow, startIndex, endIndex) {\n this.isShapeBtnVisible = isShow;\n this.applyHideToToolbar(isShow, startIndex, endIndex);\n };\n AnnotationToolbar.prototype.showCalibrateAnnotationTool = function (isShow, startIndex, endIndex) {\n this.isCalibrateBtnVisible = isShow;\n this.applyHideToToolbar(isShow, startIndex, endIndex);\n };\n AnnotationToolbar.prototype.showFreeTextAnnotationTool = function (isShow, startIndex, endIndex) {\n this.isFreeTextBtnVisible = isShow;\n this.applyHideToToolbar(isShow, startIndex, endIndex);\n };\n AnnotationToolbar.prototype.showStampAnnotationTool = function (isShow, startIndex, endIndex) {\n this.isStampBtnVisible = isShow;\n this.applyHideToToolbar(isShow, startIndex, endIndex);\n };\n AnnotationToolbar.prototype.showSignatureTool = function (isShow, startIndex, endIndex) {\n this.isSignatureBtnVisible = isShow;\n this.applyHideToToolbar(isShow, startIndex, endIndex);\n };\n AnnotationToolbar.prototype.showInkTool = function (isShow, startIndex, endIndex) {\n this.isInkBtnVisible = isShow;\n this.applyHideToToolbar(isShow, startIndex, endIndex);\n };\n AnnotationToolbar.prototype.showFontFamilyAnnotationTool = function (isShow, startIndex, endIndex) {\n this.isFontFamilyToolVisible = isShow;\n this.applyHideToToolbar(isShow, startIndex, endIndex);\n };\n AnnotationToolbar.prototype.showFontSizeAnnotationTool = function (isShow, startIndex, endIndex) {\n this.isFontSizeToolVisible = isShow;\n this.applyHideToToolbar(isShow, startIndex, endIndex);\n };\n AnnotationToolbar.prototype.showFontAlignAnnotationTool = function (isShow, startIndex, endIndex) {\n this.isFontAlignToolVisible = isShow;\n this.applyHideToToolbar(isShow, startIndex, endIndex);\n };\n AnnotationToolbar.prototype.showFontColorAnnotationTool = function (isShow, startIndex, endIndex) {\n this.isFontColorToolVisible = isShow;\n this.applyHideToToolbar(isShow, startIndex, endIndex);\n };\n AnnotationToolbar.prototype.showFontStylesAnnotationTool = function (isShow, startIndex, endIndex) {\n this.isFontStylesToolVisible = isShow;\n this.applyHideToToolbar(isShow, startIndex, endIndex);\n };\n AnnotationToolbar.prototype.showColorEditTool = function (isShow, startIndex, endIndex) {\n this.isColorToolVisible = isShow;\n this.applyHideToToolbar(isShow, startIndex, endIndex);\n };\n AnnotationToolbar.prototype.showStrokeColorEditTool = function (isShow, startIndex, endIndex) {\n this.isStrokeColorToolVisible = isShow;\n this.applyHideToToolbar(isShow, startIndex, endIndex);\n };\n AnnotationToolbar.prototype.showThicknessEditTool = function (isShow, startIndex, endIndex) {\n this.isThicknessToolVisible = isShow;\n this.applyHideToToolbar(isShow, startIndex, endIndex);\n };\n AnnotationToolbar.prototype.showOpacityEditTool = function (isShow, startIndex, endIndex) {\n this.isOpacityToolVisible = isShow;\n this.applyHideToToolbar(isShow, startIndex, endIndex);\n };\n AnnotationToolbar.prototype.showAnnotationDeleteTool = function (isShow, startIndex, endIndex) {\n this.isDeleteAnnotationToolVisible = isShow;\n this.applyHideToToolbar(isShow, startIndex, endIndex);\n };\n AnnotationToolbar.prototype.showCommentPanelTool = function (isShow, startIndex, endIndex) {\n this.isCommentPanelBtnVisible = isShow;\n this.applyHideToToolbar(isShow, startIndex, endIndex);\n };\n AnnotationToolbar.prototype.applyHideToToolbar = function (show, startIndex, endIndex) {\n var isHide = !show;\n for (var index = startIndex; index <= endIndex; index++) {\n var toolbar_1 = void 0;\n var propertyToolbarElement = (this.propertyToolbar && this.propertyToolbar.element) ? this.propertyToolbar.element : null;\n var toolbarElement = (this.toolbar && this.toolbar.element) ? this.toolbar.element : null;\n if (toolbarElement && toolbarElement.children && toolbarElement.children.length > 0) {\n toolbar_1 = this.toolbar;\n }\n else if (Browser.isDevice && propertyToolbarElement && propertyToolbarElement.children && propertyToolbarElement.children.length > 0) {\n toolbar_1 = this.propertyToolbar;\n }\n if (toolbar_1 && toolbar_1.items[index]) {\n var className = toolbar_1.items[index].cssClass;\n if (className && className !== '') {\n // Querying the toolbar item\n var element = toolbar_1.element.querySelector('.' + className);\n if (element) {\n this.toolbar.hideItem(element, isHide);\n }\n }\n else {\n toolbar_1.hideItem(index, isHide);\n }\n }\n }\n };\n /**\n * @param isAdjust\n * @private\n */\n AnnotationToolbar.prototype.adjustViewer = function (isAdjust) {\n var splitterElement;\n var toolbarContainer;\n var annotationToolbarHeight;\n if (isBlazor()) {\n splitterElement = this.pdfViewer.element.querySelector('.e-pv-sidebar-toolbar-splitter');\n toolbarContainer = this.pdfViewer.element.querySelector('.e-pv-toolbar');\n var annotationToolbarContainer = this.pdfViewer.element.querySelector('.e-pv-annotation-toolbar');\n annotationToolbarHeight = this.getToolbarHeight(annotationToolbarContainer);\n }\n else {\n splitterElement = this.pdfViewerBase.getElement('_sideBarToolbarSplitter');\n toolbarContainer = this.pdfViewerBase.getElement('_toolbarContainer');\n annotationToolbarHeight = this.getToolbarHeight(this.toolbarElement);\n }\n var toolbarHeight = this.getToolbarHeight(toolbarContainer);\n var sideBarToolbar = this.pdfViewerBase.navigationPane.sideBarToolbar;\n var sideBarContentContainer = this.pdfViewerBase.navigationPane.sideBarContentContainer;\n var commentsContainer = this.pdfViewerBase.navigationPane.commentPanelContainer;\n var commentPanelResizer = this.pdfViewerBase.navigationPane.commentPanelResizer;\n var newToolbarHeight = '';\n if (isAdjust) {\n if (this.pdfViewer.enableToolbar) {\n sideBarToolbar.style.top = (toolbarHeight + annotationToolbarHeight) + 'px';\n sideBarContentContainer.style.top = (toolbarHeight + annotationToolbarHeight) + 'px';\n splitterElement.style.top = (toolbarHeight + annotationToolbarHeight) + 'px';\n commentsContainer.style.top = (toolbarHeight + annotationToolbarHeight) + 'px';\n commentPanelResizer.style.top = (toolbarHeight + annotationToolbarHeight) + 'px';\n }\n else {\n sideBarToolbar.style.top = (annotationToolbarHeight) + 'px';\n sideBarContentContainer.style.top = (annotationToolbarHeight) + 'px';\n splitterElement.style.top = (annotationToolbarHeight) + 'px';\n commentsContainer.style.top = (annotationToolbarHeight) + 'px';\n commentPanelResizer.style.top = (toolbarHeight + annotationToolbarHeight) + 'px';\n }\n if (!this.pdfViewer.enableToolbar) {\n toolbarHeight = 0;\n }\n // eslint-disable-next-line max-len\n this.pdfViewerBase.viewerContainer.style.height = this.updateViewerHeight(this.getElementHeight(this.pdfViewerBase.viewerContainer), (annotationToolbarHeight + toolbarHeight)) + 'px';\n newToolbarHeight = this.getNavigationToolbarHeight(annotationToolbarHeight + toolbarHeight);\n sideBarToolbar.style.height = newToolbarHeight;\n splitterElement.style.height = newToolbarHeight;\n commentPanelResizer.style.height = newToolbarHeight;\n sideBarContentContainer.style.height = newToolbarHeight;\n }\n else {\n if (this.pdfViewer.enableToolbar) {\n // eslint-disable-next-line max-len\n sideBarToolbar.style.top = toolbarHeight + 'px';\n sideBarContentContainer.style.top = toolbarHeight + 'px';\n splitterElement.style.top = toolbarHeight + 'px';\n commentsContainer.style.top = toolbarHeight + 'px';\n commentPanelResizer.style.top = toolbarHeight + 'px';\n }\n else {\n sideBarToolbar.style.top = 1 + 'px';\n sideBarToolbar.style.height = '100%';\n sideBarContentContainer.style.top = 1 + 'px';\n sideBarContentContainer.style.height = '100%';\n splitterElement.style.top = 1 + 'px';\n splitterElement.style.height = '100%';\n commentsContainer.style.top = 1 + 'px';\n commentsContainer.style.height = '100%';\n commentPanelResizer.style.top = 1 + 'px';\n commentPanelResizer.style.height = '100%';\n }\n if (!this.pdfViewer.enableToolbar) {\n toolbarHeight = 0;\n }\n // eslint-disable-next-line max-len\n this.pdfViewerBase.viewerContainer.style.height = this.updateViewerHeight(this.getElementHeight(this.pdfViewerBase.viewerContainer), annotationToolbarHeight) + 'px';\n newToolbarHeight = this.getNavigationToolbarHeight(toolbarHeight);\n sideBarToolbar.style.height = newToolbarHeight;\n splitterElement.style.height = newToolbarHeight;\n commentPanelResizer.style.height = newToolbarHeight;\n sideBarContentContainer.style.height = newToolbarHeight;\n if (this.pdfViewerBase.viewerContainer.style.height === '0px') {\n // eslint-disable-next-line\n this.pdfViewerBase.viewerContainer.style.height = (parseInt(this.pdfViewer.element.style.height) - parseInt(sideBarToolbar.style.top)) + 'px';\n }\n }\n };\n AnnotationToolbar.prototype.updateContentContainerHeight = function (isAdjust, isBlazor) {\n var annotationToolbarHeight;\n if (isBlazor) {\n var annotationToolbarContainer = this.pdfViewer.element.querySelector('.e-pv-annotation-toolbar');\n annotationToolbarHeight = this.getToolbarHeight(annotationToolbarContainer);\n }\n else {\n annotationToolbarHeight = this.getToolbarHeight(this.toolbarElement);\n }\n var sideBarClientRect = this.pdfViewerBase.navigationPane.sideBarContentContainer.getBoundingClientRect();\n if (sideBarClientRect.height !== 0) {\n if (isAdjust) {\n // eslint-disable-next-line max-len\n this.pdfViewerBase.navigationPane.sideBarContentContainer.style.height = sideBarClientRect.height - annotationToolbarHeight + 'px';\n }\n else {\n // eslint-disable-next-line max-len\n this.pdfViewerBase.navigationPane.sideBarContentContainer.style.height = sideBarClientRect.height + annotationToolbarHeight + 'px';\n }\n }\n };\n AnnotationToolbar.prototype.getToolbarHeight = function (element) {\n var toolbarHeight = element.getBoundingClientRect().height;\n if (toolbarHeight === 0 && element === this.pdfViewerBase.getElement('_toolbarContainer')) {\n // getComputedStyle gets the value from style and toolbar border height is added to it.\n // eslint-disable-next-line\n toolbarHeight = parseFloat(window.getComputedStyle(element)['height']) + this.toolbarBorderHeight;\n }\n return toolbarHeight;\n };\n AnnotationToolbar.prototype.getNavigationToolbarHeight = function (toolbarHeight) {\n var height = this.pdfViewer.element.getBoundingClientRect().height;\n return (height !== 0) ? height - toolbarHeight + 'px' : '';\n };\n AnnotationToolbar.prototype.handleHighlight = function () {\n if (!this.isHighlightEnabled) {\n this.updateInteractionTools();\n this.clearShapeMode();\n this.clearMeasureMode();\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.drawTextMarkupAnnotations('Highlight');\n this.primaryToolbar.selectItem(this.highlightItem);\n this.primaryToolbar.deSelectItem(this.underlineItem);\n this.primaryToolbar.deSelectItem(this.strikethroughItem);\n this.primaryToolbar.deSelectItem(this.freeTextEditItem);\n this.primaryToolbar.deSelectItem(this.inkAnnotationItem);\n this.enableTextMarkupAnnotationPropertiesTools(true);\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.highlightColor = null;\n this.setCurrentColorInPicker();\n this.updateColorInIcon(this.colorDropDownElement, this.pdfViewer.annotationModule.textMarkupAnnotationModule.highlightColor);\n this.isHighlightEnabled = true;\n this.isUnderlineEnabled = false;\n this.isStrikethroughEnabled = false;\n }\n else {\n this.deselectAllItems();\n }\n };\n AnnotationToolbar.prototype.handleUnderline = function () {\n if (!this.isUnderlineEnabled) {\n this.updateInteractionTools();\n this.clearShapeMode();\n this.clearMeasureMode();\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.drawTextMarkupAnnotations('Underline');\n this.primaryToolbar.selectItem(this.underlineItem);\n this.primaryToolbar.deSelectItem(this.highlightItem);\n this.primaryToolbar.deSelectItem(this.strikethroughItem);\n this.primaryToolbar.deSelectItem(this.freeTextEditItem);\n this.primaryToolbar.deSelectItem(this.inkAnnotationItem);\n this.enableTextMarkupAnnotationPropertiesTools(true);\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.underlineColor = null;\n this.setCurrentColorInPicker();\n this.updateColorInIcon(this.colorDropDownElement, this.pdfViewer.annotationModule.textMarkupAnnotationModule.underlineColor);\n this.isUnderlineEnabled = true;\n this.isHighlightEnabled = false;\n this.isStrikethroughEnabled = false;\n }\n else {\n this.deselectAllItems();\n }\n };\n AnnotationToolbar.prototype.handleStrikethrough = function () {\n if (!this.isStrikethroughEnabled) {\n this.updateInteractionTools();\n this.clearShapeMode();\n this.clearMeasureMode();\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.drawTextMarkupAnnotations('Strikethrough');\n this.primaryToolbar.selectItem(this.strikethroughItem);\n this.primaryToolbar.deSelectItem(this.highlightItem);\n this.primaryToolbar.deSelectItem(this.underlineItem);\n this.primaryToolbar.deSelectItem(this.freeTextEditItem);\n this.primaryToolbar.deSelectItem(this.inkAnnotationItem);\n this.enableTextMarkupAnnotationPropertiesTools(true);\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.strikethroughColor = null;\n this.setCurrentColorInPicker();\n // eslint-disable-next-line max-len\n this.updateColorInIcon(this.colorDropDownElement, this.pdfViewer.annotationModule.textMarkupAnnotationModule.strikethroughColor);\n this.isStrikethroughEnabled = true;\n this.isHighlightEnabled = false;\n this.isUnderlineEnabled = false;\n }\n else {\n this.deselectAllItems();\n }\n };\n /**\n * @private\n */\n AnnotationToolbar.prototype.deselectAllItemsInBlazor = function () {\n if (this.pdfViewerBase.isTextMarkupAnnotationModule()) {\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.isTextMarkupAnnotationMode = false;\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.showHideDropletDiv(true);\n }\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.primaryToolbar.deSelectItem(this.HighlightElement);\n this.primaryToolbar.deSelectItem(this.UnderlineElement);\n this.primaryToolbar.deSelectItem(this.StrikethroughElement);\n this.primaryToolbar.deSelectItem(this.FreeTextElement);\n this.primaryToolbar.deSelectItem(this.InkAnnotationElement);\n this.pdfViewer._dotnetInstance.invokeMethodAsync('UpdateTextMarkupButtons', false, false, false);\n }\n this.resetFreeTextAnnot();\n this.clearTextMarkupMode();\n this.clearShapeMode();\n this.clearMeasureMode();\n this.pdfViewer.tool = '';\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.enableTextMarkupAnnotationPropertiesTools(false);\n this.enableFreeTextAnnotationPropertiesTools(false);\n this.updateColorInIcon(this.colorDropDownElement, '#000000');\n this.updateColorInIcon(this.strokeDropDownElement, '#000000');\n this.updateColorInIcon(this.fontColorElement, '#000000');\n this.selectAnnotationDeleteItem(false);\n }\n if (this.pdfViewer.annotationModule) {\n this.pdfViewer.annotationModule.freeTextAnnotationModule.isNewFreeTextAnnot = false;\n }\n };\n /**\n * @private\n */\n AnnotationToolbar.prototype.deselectAllItems = function () {\n var isBlazorPlatform = isBlazor();\n this.isHighlightEnabled = false;\n this.isUnderlineEnabled = false;\n this.isStrikethroughEnabled = false;\n if (this.pdfViewerBase.isTextMarkupAnnotationModule()) {\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.isTextMarkupAnnotationMode = false;\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.showHideDropletDiv(true);\n }\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n if (isBlazorPlatform) {\n this.primaryToolbar.deSelectItem(this.pdfViewer.toolbar.SelectToolElement);\n this.primaryToolbar.selectItem(this.pdfViewer.toolbar.PanElement);\n this.primaryToolbar.deSelectItem(this.HighlightElement);\n this.primaryToolbar.deSelectItem(this.UnderlineElement);\n this.primaryToolbar.deSelectItem(this.StrikethroughElement);\n this.primaryToolbar.deSelectItem(this.FreeTextElement);\n this.primaryToolbar.deSelectItem(this.InkAnnotationElement);\n }\n else {\n this.primaryToolbar.deSelectItem(this.highlightItem);\n this.primaryToolbar.deSelectItem(this.underlineItem);\n this.primaryToolbar.deSelectItem(this.strikethroughItem);\n this.primaryToolbar.deSelectItem(this.freeTextEditItem);\n this.primaryToolbar.deSelectItem(this.inkAnnotationItem);\n }\n }\n this.resetFreeTextAnnot();\n this.clearTextMarkupMode();\n this.clearShapeMode();\n this.clearMeasureMode();\n this.pdfViewer.tool = '';\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.enableTextMarkupAnnotationPropertiesTools(false);\n this.enableFreeTextAnnotationPropertiesTools(false);\n this.updateColorInIcon(this.colorDropDownElement, '#000000');\n this.updateColorInIcon(this.strokeDropDownElement, '#000000');\n this.updateColorInIcon(this.fontColorElement, '#000000');\n this.selectAnnotationDeleteItem(false);\n }\n if (this.pdfViewer.annotationModule) {\n this.pdfViewer.annotationModule.freeTextAnnotationModule.isNewFreeTextAnnot = false;\n }\n };\n AnnotationToolbar.prototype.updateInteractionTools = function () {\n if (this.pdfViewer.enableTextSelection) {\n this.pdfViewerBase.initiateTextSelectMode();\n if (!Browser.isDevice) {\n this.pdfViewer.toolbar.updateInteractionTools(true);\n }\n }\n else if (!Browser.isDevice) {\n this.pdfViewer.toolbar.updateInteractionTools(false);\n }\n };\n /**\n * @param isEnable\n * @private\n */\n AnnotationToolbar.prototype.selectAnnotationDeleteItem = function (isEnable, deleteIconCicked) {\n if (!isBlazor() && !Browser.isDevice) {\n if (this.toolbar) {\n if (isEnable) {\n // eslint-disable-next-line\n var annotation = this.pdfViewer.annotationModule.findCurrentAnnotation();\n if (annotation) {\n // eslint-disable-next-line\n if (annotation.annotationSettings && annotation.annotationSettings.isLock) {\n if (this.pdfViewer.annotationModule.checkAllowedInteractions('Delete', annotation)) {\n this.toolbar.enableItems(this.deleteItem.parentElement, isEnable);\n }\n else {\n this.toolbar.enableItems(this.deleteItem.parentElement, false);\n }\n }\n else {\n this.toolbar.enableItems(this.deleteItem.parentElement, isEnable);\n }\n }\n }\n else {\n this.toolbar.enableItems(this.deleteItem.parentElement, isEnable);\n }\n }\n }\n else {\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n if (isEnable) {\n // eslint-disable-next-line\n var annotation = this.pdfViewer.annotationModule.findCurrentAnnotation();\n if (annotation) {\n // eslint-disable-next-line\n if (annotation.annotationSettings && annotation.annotationSettings.isLock) {\n if (this.pdfViewer.annotationModule.checkAllowedInteractions('Delete', annotation)) {\n this.pdfViewerBase.blazorUIAdaptor.EnableDeleteOption(isEnable);\n }\n else {\n this.pdfViewerBase.blazorUIAdaptor.EnableDeleteOption(false);\n }\n }\n else if (this.pdfViewerBase.blazorUIAdaptor) {\n this.pdfViewerBase.blazorUIAdaptor.EnableDeleteOption(isEnable);\n }\n }\n }\n else if (this.pdfViewerBase.blazorUIAdaptor) {\n this.pdfViewerBase.blazorUIAdaptor.EnableDeleteOption(isEnable);\n }\n if (deleteIconCicked) {\n this.pdfViewerBase.focusViewerContainer();\n }\n }\n }\n };\n /**\n * @param isEnable\n * @private\n */\n AnnotationToolbar.prototype.enableTextMarkupAnnotationPropertiesTools = function (isEnable) {\n if (!Browser.isDevice) {\n if (!isBlazor()) {\n this.toolbar.enableItems(this.colorDropDownElement.parentElement, isEnable);\n this.toolbar.enableItems(this.opacityDropDownElement.parentElement, isEnable);\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.toolbar.enableItems(this.strokeDropDownElement.parentElement, false);\n this.toolbar.enableItems(this.thicknessElement.parentElement, false);\n this.toolbar.enableItems(this.fontFamilyElement.parentElement, false);\n this.toolbar.enableItems(this.fontSizeElement.parentElement, false);\n this.toolbar.enableItems(this.fontColorElement.parentElement, false);\n this.toolbar.enableItems(this.textAlignElement.parentElement, false);\n this.toolbar.enableItems(this.textPropElement.parentElement, false);\n }\n }\n else {\n // this.pdfViewer._dotnetInstance.invokeMethodAsync('AnnotationSelect', 'TextMarkup');\n this.pdfViewerBase.blazorUIAdaptor.enableTextMarkupAnnotationPropertiesTools(isEnable);\n }\n }\n };\n AnnotationToolbar.prototype.checkAnnotationPropertiesChange = function () {\n // eslint-disable-next-line\n var annotation = this.pdfViewer.selectedItems.annotations[0];\n if (annotation && annotation.annotationSettings) {\n // eslint-disable-next-line\n var isLock = annotation.annotationSettings.isLock;\n if (isLock) {\n if (this.pdfViewer.annotationModule.checkAllowedInteractions('PropertyChange', annotation)) {\n return true;\n }\n else {\n return false;\n }\n }\n }\n return true;\n };\n /**\n * @param isEnable\n * @private\n */\n AnnotationToolbar.prototype.enableAnnotationPropertiesTools = function (isEnable) {\n if (!Browser.isDevice) {\n var isPropertiesChanges = this.checkAnnotationPropertiesChange();\n if (!isEnable) {\n isPropertiesChanges = true;\n }\n if (!isBlazor()) {\n if (isPropertiesChanges) {\n // eslint-disable-next-line max-len\n if (this.pdfViewer.selectedItems.annotations[0] && (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Line')) {\n this.toolbar.enableItems(this.colorDropDownElement.parentElement, false);\n }\n else {\n this.toolbar.enableItems(this.colorDropDownElement.parentElement, isEnable);\n }\n this.toolbar.enableItems(this.opacityDropDownElement.parentElement, isEnable);\n this.toolbar.enableItems(this.strokeDropDownElement.parentElement, isEnable);\n this.toolbar.enableItems(this.thicknessElement.parentElement, isEnable);\n if (this.pdfViewer.enableShapeLabel) {\n this.toolbar.enableItems(this.fontFamilyElement.parentElement, isEnable);\n this.toolbar.enableItems(this.fontSizeElement.parentElement, isEnable);\n this.toolbar.enableItems(this.fontColorElement.parentElement, isEnable);\n }\n this.toolbar.enableItems(this.textAlignElement.parentElement, false);\n this.toolbar.enableItems(this.textPropElement.parentElement, false);\n }\n }\n else {\n // this.pdfViewer._dotnetInstance.invokeMethodAsync('EnableAnnotationPropertiesTools', isEnable, isPropertiesChanges);\n this.pdfViewerBase.blazorUIAdaptor.enableAnnotationPropertiesTool(isEnable, isPropertiesChanges);\n }\n }\n };\n /**\n * @param isEnable\n * @private\n */\n AnnotationToolbar.prototype.enableSignaturePropertiesTools = function (isEnable) {\n if (!Browser.isDevice) {\n var isPropertiesChanges = this.checkAnnotationPropertiesChange();\n if (!isEnable) {\n isPropertiesChanges = true;\n }\n if (!isBlazor()) {\n if (isPropertiesChanges) {\n this.toolbar.enableItems(this.colorDropDownElement.parentElement, false);\n this.toolbar.enableItems(this.opacityDropDownElement.parentElement, isEnable);\n this.toolbar.enableItems(this.strokeDropDownElement.parentElement, isEnable);\n this.toolbar.enableItems(this.thicknessElement.parentElement, isEnable);\n this.toolbar.enableItems(this.textAlignElement.parentElement, false);\n this.toolbar.enableItems(this.textPropElement.parentElement, false);\n this.toolbar.enableItems(this.fontFamilyElement.parentElement, false);\n this.toolbar.enableItems(this.fontSizeElement.parentElement, false);\n this.toolbar.enableItems(this.fontColorElement.parentElement, false);\n this.toolbar.enableItems(this.textAlignElement.parentElement, false);\n }\n }\n else {\n //this.pdfViewer._dotnetInstance.invokeMethodAsync('EnableSignaturePropertiesTools', isEnable, isPropertiesChanges);\n this.pdfViewerBase.blazorUIAdaptor.enableSignaturePropertiesTools(isEnable, isPropertiesChanges);\n }\n }\n };\n /**\n * @param isEnable\n * @private\n */\n AnnotationToolbar.prototype.enableStampAnnotationPropertiesTools = function (isEnable) {\n var isPropertiesChanges = this.checkAnnotationPropertiesChange();\n if (!isEnable) {\n isPropertiesChanges = true;\n }\n if (!isBlazor()) {\n if (isPropertiesChanges) {\n this.toolbar.enableItems(this.opacityDropDownElement.parentElement, isEnable);\n this.toolbar.enableItems(this.colorDropDownElement.parentElement, false);\n this.toolbar.enableItems(this.strokeDropDownElement.parentElement, false);\n this.toolbar.enableItems(this.thicknessElement.parentElement, false);\n this.toolbar.enableItems(this.fontFamilyElement.parentElement, false);\n this.toolbar.enableItems(this.fontSizeElement.parentElement, false);\n this.toolbar.enableItems(this.fontColorElement.parentElement, false);\n this.toolbar.enableItems(this.textAlignElement.parentElement, false);\n this.toolbar.enableItems(this.textPropElement.parentElement, false);\n }\n }\n else {\n // this.pdfViewer._dotnetInstance.invokeMethodAsync('EnableStampAnnotationPropertiesTools', isEnable, isPropertiesChanges);\n this.pdfViewerBase.blazorUIAdaptor.enableStampAnnotationPropertiesTools(isEnable, isPropertiesChanges);\n }\n };\n /**\n * @param isEnable\n * @private\n */\n AnnotationToolbar.prototype.enableFreeTextAnnotationPropertiesTools = function (isEnable) {\n var isPropertiesChanges = this.checkAnnotationPropertiesChange();\n if (!isEnable) {\n isPropertiesChanges = true;\n }\n if (!isBlazor()) {\n if (isPropertiesChanges) {\n this.toolbar.enableItems(this.opacityDropDownElement.parentElement, isEnable);\n this.toolbar.enableItems(this.colorDropDownElement.parentElement, isEnable);\n this.toolbar.enableItems(this.strokeDropDownElement.parentElement, isEnable);\n this.toolbar.enableItems(this.thicknessElement.parentElement, isEnable);\n this.toolbar.enableItems(this.fontFamilyElement.parentElement, isEnable);\n this.toolbar.enableItems(this.fontSizeElement.parentElement, isEnable);\n this.toolbar.enableItems(this.fontColorElement.parentElement, isEnable);\n this.toolbar.enableItems(this.textAlignElement.parentElement, isEnable);\n this.toolbar.enableItems(this.textPropElement.parentElement, isEnable);\n }\n }\n else {\n //this.pdfViewer._dotnetInstance.invokeMethodAsync('EnableFreeTextAnnotationPropertiesTools', isEnable, isPropertiesChanges);\n this.pdfViewerBase.blazorUIAdaptor.enableFreeTextAnnotationPropertiesTools(isEnable, isPropertiesChanges);\n }\n };\n /**\n * @param isEnable\n * @private\n */\n AnnotationToolbar.prototype.enableAnnotationAddTools = function (isEnable) {\n if (this.toolbar && !Browser.isDevice) {\n if (this.pdfViewer.enableTextMarkupAnnotation) {\n this.toolbar.enableItems(this.highlightItem.parentElement, isEnable);\n this.toolbar.enableItems(this.underlineItem.parentElement, isEnable);\n this.toolbar.enableItems(this.strikethroughItem.parentElement, isEnable);\n }\n if (this.pdfViewer.enableShapeAnnotation) {\n this.toolbar.enableItems(this.shapeElement.parentElement, isEnable);\n }\n if (this.pdfViewer.enableStampAnnotations) {\n this.toolbar.enableItems(this.stampElement.parentElement, isEnable);\n }\n if (this.pdfViewer.enableMeasureAnnotation && this.pdfViewerBase.isCalibrateAnnotationModule()) {\n this.toolbar.enableItems(this.calibrateElement.parentElement, isEnable);\n }\n if (this.pdfViewer.enableFreeText) {\n this.toolbar.enableItems(this.freeTextEditItem.parentElement, isEnable);\n }\n if (this.pdfViewer.enableHandwrittenSignature) {\n this.toolbar.enableItems(this.handWrittenSignatureItem.parentElement, isEnable);\n }\n if (this.pdfViewer.enableInkAnnotation) {\n this.toolbar.enableItems(this.inkAnnotationItem.parentElement, isEnable);\n }\n if (this.pdfViewer.enableCommentPanel) {\n this.enableCommentPanelTool(isEnable);\n }\n }\n };\n /**\n * @private\n */\n AnnotationToolbar.prototype.isAnnotationButtonsEnabled = function () {\n var isButtonsEnabled = false;\n if (this.isHighlightEnabled || this.isUnderlineEnabled || this.isStrikethroughEnabled) {\n isButtonsEnabled = true;\n }\n return isButtonsEnabled;\n };\n /**\n * @param isEnable\n * @private\n */\n AnnotationToolbar.prototype.enableCommentPanelTool = function (isEnable) {\n if (this.toolbar) {\n this.toolbar.enableItems(this.commentItem.parentElement, isEnable);\n }\n };\n AnnotationToolbar.prototype.updateToolbarItems = function () {\n if (this.pdfViewer.enableTextMarkupAnnotation) {\n this.enableTextMarkupAddTools(true);\n }\n else {\n this.enableTextMarkupAddTools(false);\n }\n this.toolbar.enableItems(this.shapeElement.parentElement, this.pdfViewer.enableShapeAnnotation);\n this.toolbar.enableItems(this.stampElement.parentElement, this.pdfViewer.enableStampAnnotations);\n this.toolbar.enableItems(this.calibrateElement.parentElement, this.pdfViewer.enableMeasureAnnotation);\n this.toolbar.enableItems(this.freeTextEditItem.parentElement, this.pdfViewer.enableFreeText);\n this.toolbar.enableItems(this.handWrittenSignatureItem.parentElement, this.pdfViewer.enableHandwrittenSignature);\n this.toolbar.enableItems(this.inkAnnotationItem.parentElement, this.pdfViewer.enableInkAnnotation);\n };\n AnnotationToolbar.prototype.enableTextMarkupAddTools = function (isEnable) {\n this.toolbar.enableItems(this.highlightItem.parentElement, isEnable);\n this.toolbar.enableItems(this.underlineItem.parentElement, isEnable);\n this.toolbar.enableItems(this.strikethroughItem.parentElement, isEnable);\n };\n /**\n * @private\n */\n // for shapes added by drawing package\n AnnotationToolbar.prototype.updateAnnnotationPropertyItems = function () {\n if (!isBlazor()) {\n if (this.pdfViewer.selectedItems.annotations.length === 1) {\n // eslint-disable-next-line max-len\n this.pdfViewer.toolbar.annotationToolbarModule.updateColorInIcon(this.colorDropDownElement, this.getColorHexValue(this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.fill, 'fillColor'));\n this.pdfViewer.toolbar.annotationToolbarModule.updateColorInIcon(this.strokeDropDownElement, this.getColorHexValue(this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.strokeColor, 'strokeColor'));\n if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'FreeText') {\n // eslint-disable-next-line\n this.pdfViewer.toolbar.annotationToolbarModule.updateColorInIcon(this.fontColorElement, this.getColorHexValue(this.pdfViewer.selectedItems.annotations[0].fontColor, 'fontColor'));\n this.pdfViewer.toolbar.annotationToolbarModule.updateFontFamilyInIcon(this.pdfViewer.selectedItems.annotations[0].fontFamily);\n // eslint-disable-next-line max-len\n this.pdfViewer.toolbar.annotationToolbarModule.updateFontSizeInIcon(this.pdfViewer.selectedItems.annotations[0].fontSize);\n this.pdfViewer.toolbar.annotationToolbarModule.updateTextAlignInIcon(this.pdfViewer.selectedItems.annotations[0].textAlign);\n }\n }\n else {\n this.pdfViewer.toolbar.annotationToolbarModule.updateColorInIcon(this.colorDropDownElement, '#000000');\n this.pdfViewer.toolbar.annotationToolbarModule.updateColorInIcon(this.strokeDropDownElement, '#000000');\n this.pdfViewer.toolbar.annotationToolbarModule.updateColorInIcon(this.fontColorElement, '#000000');\n }\n }\n else {\n this.colorDropDownElementInBlazor = this.pdfViewer.element.querySelector('.e-pv-annotation-color-container');\n this.strokeDropDownElementInBlazor = this.pdfViewer.element.querySelector('.e-pv-annotation-stroke-container');\n this.fontColorElementInBlazor = this.pdfViewer.element.querySelector('.e-pv-annotation-textcolor-container');\n if (this.pdfViewer.selectedItems.annotations.length === 1) {\n // eslint-disable-next-line max-len\n this.pdfViewer.toolbar.annotationToolbarModule.updateColorInIcon(this.colorDropDownElementInBlazor, this.getColorHexValue(this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.fill, 'fillColor'));\n this.pdfViewer.toolbar.annotationToolbarModule.updateColorInIcon(this.strokeDropDownElementInBlazor, this.getColorHexValue(this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.strokeColor, 'strokeColor'));\n if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'FreeText') {\n // eslint-disable-next-line\n this.pdfViewer.toolbar.annotationToolbarModule.updateColorInIcon(this.fontColorElementInBlazor, this.getColorHexValue(this.pdfViewer.selectedItems.annotations[0].fontColor, 'fontColor'));\n //this.pdfViewer._dotnetInstance.invokeMethodAsync('UpdateFontFamilyInIcon', this.pdfViewer.selectedItems.annotations[0].fontFamily);\n // eslint-disable-next-line max-len\n this.pdfViewerBase.blazorUIAdaptor.updateFontFamilyInIcon(this.pdfViewer.selectedItems.annotations[0].fontFamily);\n // this.pdfViewer._dotnetInstance.invokeMethodAsync('UpdateFontSizeInIcon', this.pdfViewer.selectedItems.annotations[0].fontSize);\n this.pdfViewerBase.blazorUIAdaptor.updateFontSizeInIcon(this.pdfViewer.selectedItems.annotations[0].fontSize);\n //this.pdfViewer.toolbar.annotationtoolbar.updateTextAlignInIcon(this.pdfViewer.selectedItems.annotations[0].textAlign);\n }\n }\n else {\n this.pdfViewer.toolbar.annotationToolbarModule.updateColorInIcon(this.colorDropDownElementInBlazor, '#000000');\n this.pdfViewer.toolbar.annotationToolbarModule.updateColorInIcon(this.strokeDropDownElementInBlazor, '#000000');\n this.pdfViewer.toolbar.annotationToolbarModule.updateColorInIcon(this.fontColorElementInBlazor, '#000000');\n }\n }\n };\n AnnotationToolbar.prototype.getColorHexValue = function (colorString, type) {\n if (colorString === '#ffffff00') {\n colorString = '#ffffff';\n }\n if (colorString.toLowerCase() === 'red') {\n colorString = '#FF0000';\n }\n if (colorString !== 'transparent') {\n if (!isBlazor()) {\n return this.colorPalette.getValue(colorString, 'hex');\n }\n else {\n return colorString;\n }\n }\n else {\n if (type === 'fontColor' || type === 'strokeColor') {\n return '#000000';\n }\n else {\n return '#ffffff';\n }\n }\n };\n AnnotationToolbar.prototype.setColorInPicker = function (colorpick, colorString) {\n if (colorpick) {\n colorpick.setProperties({ 'value': colorString }, true);\n }\n };\n /**\n * @private\n */\n AnnotationToolbar.prototype.resetToolbar = function () {\n this.updateToolbarItems();\n // eslint-disable-next-line max-len\n if ((this.pdfViewer.isAnnotationToolbarOpen || this.pdfViewer.isAnnotationToolbarVisible) && this.pdfViewer.enableAnnotationToolbar) {\n this.adjustViewer(false);\n this.toolbarElement.style.display = '';\n this.isToolbarHidden = false;\n this.adjustViewer(true);\n this.primaryToolbar.selectItem(this.primaryToolbar.annotationItem);\n if (this.pdfViewer.toolbarModule && this.pdfViewer.toolbarModule.annotationToolbarModule) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.toolbar.refreshOverflow();\n }\n this.pdfViewer.isAnnotationToolbarVisible = true;\n }\n else {\n this.toolbarElement.style.display = 'none';\n this.isToolbarHidden = true;\n this.pdfViewer.isAnnotationToolbarVisible = false;\n }\n };\n /**\n * @private\n */\n AnnotationToolbar.prototype.clearTextMarkupMode = function () {\n if (this.pdfViewerBase.isTextMarkupAnnotationModule()) {\n if (isBlazor()) {\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.isTextMarkupAnnotationMode = false;\n }\n this.pdfViewer.annotation.textMarkupAnnotationModule.currentTextMarkupAddMode = '';\n }\n };\n /**\n * @private\n */\n AnnotationToolbar.prototype.clearShapeMode = function () {\n if (this.pdfViewerBase.isShapeAnnotationModule()) {\n this.pdfViewer.annotation.shapeAnnotationModule.currentAnnotationMode = '';\n }\n };\n /**\n * @private\n */\n AnnotationToolbar.prototype.clearMeasureMode = function () {\n if (this.pdfViewerBase.isCalibrateAnnotationModule()) {\n this.pdfViewer.annotation.measureAnnotationModule.currentAnnotationMode = '';\n }\n };\n /**\n * @private\n */\n AnnotationToolbar.prototype.clear = function () {\n this.deselectAllItems();\n };\n /**\n * @private\n */\n AnnotationToolbar.prototype.destroy = function () {\n this.destroyComponent();\n this.shapeDropDown ? this.shapeDropDown.destroy() : null;\n this.calibrateDropDown ? this.calibrateDropDown.destroy() : null;\n this.fontColorDropDown ? this.fontColorDropDown.destroy() : null;\n this.textAlignDropDown ? this.textAlignDropDown.destroy() : null;\n this.colorDropDown ? this.colorDropDown.destroy() : null;\n this.strokeDropDown ? this.strokeDropDown.destroy() : null;\n this.thicknessDropDown ? this.thicknessDropDown.destroy() : null;\n this.opacityDropDown ? this.opacityDropDown.destroy() : null;\n this.textPropertiesDropDown ? this.textPropertiesDropDown.destroy() : null;\n this.toolbar ? this.toolbar.destroy() : null;\n // eslint-disable-next-line\n var stampImage = document.getElementById(this.pdfViewer.element.id + '_stampElement');\n if (stampImage) {\n stampImage.parentElement.removeChild(stampImage);\n }\n };\n AnnotationToolbar.prototype.destroyComponent = function () {\n // eslint-disable-next-line\n var componentElement = [this.highlightItem, this.underlineItem, this.strikethroughItem, this.lineElement, this.arrowElement,\n this.rectangleElement, this.circleElement, this.polygonElement, this.calibrateDistance, this.calibrateArea, this.calibrateRadius,\n this.calibrateVolume, this.calibratePerimeter, this.freeTextEditItem, this.stampElement, this.handWrittenSignatureItem, this.inkAnnotationItem,\n this.fontFamilyElement, this.fontSizeElement, this.alignLeftElement, this.alignRightElement, this.alignCenterElement, this.alignJustifyElement,\n this.boldElement, this.italicElement, this.fontStyleStrikethroughItem, this.fontStyleUnderlineItem, this.deleteItem, this.commentItem,\n this.shapeDropDown ? this.shapeDropDown.activeElem[0] : null, this.calibrateDropDown ? this.calibrateDropDown.activeElem[0] : null, this.fontColorDropDown ? this.fontColorDropDown.activeElem[0] : null, this.textAlignDropDown ? this.textAlignDropDown.activeElem[0] : null,\n this.colorDropDown ? this.colorDropDown.activeElem[0] : null, this.strokeDropDown ? this.strokeDropDown.activeElem[0] : null, this.thicknessDropDown ? this.thicknessDropDown.activeElem[0] : null, this.opacityDropDown ? this.opacityDropDown.activeElem[0] : null, this.textPropertiesDropDown ? this.textPropertiesDropDown.activeElem[0] : null\n ];\n for (var i = 0; i < componentElement.length; i++) {\n if (componentElement[i]) {\n this.destroyDependentComponent(componentElement[i]);\n }\n }\n };\n AnnotationToolbar.prototype.destroyDependentComponent = function (component) {\n if (component.ej2_instances) {\n for (var i = component.ej2_instances.length - 1; i >= 0; i--) {\n component.ej2_instances[i].destroy();\n }\n }\n };\n AnnotationToolbar.prototype.getElementHeight = function (element) {\n try {\n return element.getBoundingClientRect().height;\n }\n catch (error) {\n return 0;\n }\n };\n AnnotationToolbar.prototype.updateViewerHeight = function (viewerHeight, toolbarHeight) {\n return this.getElementHeight(this.pdfViewer.element) - toolbarHeight;\n };\n AnnotationToolbar.prototype.resetViewerHeight = function (viewerHeight, toolbarHeight) {\n return viewerHeight + toolbarHeight;\n };\n /**\n * @private\n */\n AnnotationToolbar.prototype.afterAnnotationToolbarCreationInBlazor = function () {\n this.HighlightElement = document.getElementById(this.pdfViewer.element.id + '_highLight').children[0];\n this.UnderlineElement = document.getElementById(this.pdfViewer.element.id + '_underline').children[0];\n this.StrikethroughElement = document.getElementById(this.pdfViewer.element.id + '_strikethrough').children[0];\n this.InkAnnotationElement = document.getElementById(this.pdfViewer.element.id + '_annotation_ink').children[0];\n this.InkAnnotationElement.classList.add('e-pv-tbar-btn');\n this.FreeTextElement = document.getElementById(this.pdfViewer.element.id + '_annotation_freeTextEdit').children[0];\n this.HighlightElement = this.addClassToToolbarInBlazor(this.HighlightElement, 'e-pv-highlight', '_highLight');\n this.UnderlineElement = this.addClassToToolbarInBlazor(this.UnderlineElement, 'e-pv-underline', '_underline');\n this.StrikethroughElement = this.addClassToToolbarInBlazor(this.StrikethroughElement, 'e-pv-strikethrough', '_strikethrough');\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.addClassToToolbarInBlazor = function (element, className, idString) {\n element.classList.add(className);\n element.classList.add('e-pv-tbar-btn');\n if (element.childNodes.length > 0) {\n var spanElement = element.childNodes[0];\n if (spanElement && spanElement.classList) {\n spanElement.id = this.pdfViewer.element.id + idString + 'Icon';\n spanElement.classList.remove('e-icons');\n spanElement.classList.remove('e-btn-icon');\n if (this.pdfViewer.enableRtl) {\n spanElement.classList.add('e-right');\n }\n }\n }\n return element;\n };\n AnnotationToolbar.prototype.handleHighlightInBlazor = function () {\n if (this.HighlightElement.classList.contains('e-pv-select')) {\n this.primaryToolbar.deSelectItem(this.HighlightElement);\n }\n else if (!this.HighlightElement.classList.contains('e-pv-select')) {\n this.primaryToolbar.selectItem(this.HighlightElement);\n }\n if (this.StrikethroughElement.classList.contains('e-pv-select')) {\n this.primaryToolbar.deSelectItem(this.StrikethroughElement);\n }\n if (this.UnderlineElement.classList.contains('e-pv-select')) {\n this.primaryToolbar.deSelectItem(this.UnderlineElement);\n }\n };\n AnnotationToolbar.prototype.handleUnderlineInBlazor = function () {\n if (this.UnderlineElement.classList.contains('e-pv-select')) {\n this.primaryToolbar.deSelectItem(this.UnderlineElement);\n }\n else if (!this.UnderlineElement.classList.contains('e-pv-select')) {\n this.primaryToolbar.selectItem(this.UnderlineElement);\n }\n if (this.StrikethroughElement.classList.contains('e-pv-select')) {\n this.primaryToolbar.deSelectItem(this.StrikethroughElement);\n }\n if (this.HighlightElement.classList.contains('e-pv-select')) {\n this.primaryToolbar.deSelectItem(this.HighlightElement);\n }\n };\n AnnotationToolbar.prototype.handleStrikethroughInBlazor = function () {\n if (this.StrikethroughElement.classList.contains('e-pv-select')) {\n this.primaryToolbar.deSelectItem(this.StrikethroughElement);\n }\n else if (!this.StrikethroughElement.classList.contains('e-pv-select')) {\n this.primaryToolbar.selectItem(this.StrikethroughElement);\n }\n if (this.HighlightElement.classList.contains('e-pv-select')) {\n this.primaryToolbar.deSelectItem(this.HighlightElement);\n }\n if (this.UnderlineElement.classList.contains('e-pv-select')) {\n this.primaryToolbar.deSelectItem(this.UnderlineElement);\n }\n };\n AnnotationToolbar.prototype.AnnotationSliderOpened = function () {\n if (this.pdfViewer.selectedItems.annotations && this.pdfViewer.selectedItems.annotations.length > 0 && this.pdfViewer.selectedItems.annotations[0]) {\n if (this.pdfViewer.selectedItems.annotations[0].wrapper && this.pdfViewer.selectedItems.annotations[0].wrapper.children[0]) {\n var opacity = this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.opacity * 100;\n var thickness = this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.strokeWidth;\n this.pdfViewer._dotnetInstance.invokeMethodAsync('UpdateAnnotationSlider', opacity, thickness);\n }\n }\n };\n AnnotationToolbar.prototype.DropDownOpened = function (colorElement) {\n if (colorElement && colorElement[0].element) {\n var colorElementBounds = colorElement[0].element.getBoundingClientRect();\n var sidebarElement = this.pdfViewerBase.navigationPane.sideBarToolbar;\n var sideBarElementWidth = (sidebarElement) ? sidebarElement.getBoundingClientRect().width : 0;\n if (colorElementBounds.left > this.pdfViewerBase.viewerContainer.clientWidth + colorElementBounds.width + sideBarElementWidth) {\n colorElement[0].element.style.left = (colorElementBounds.left - (this.pdfViewerBase.viewerContainer.clientHeight / 2)) + 'px';\n }\n }\n };\n return AnnotationToolbar;\n}());\nexport { AnnotationToolbar };\n","/* eslint-disable */\nimport { createElement, isBlazor, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { Toolbar as Tool } from '@syncfusion/ej2-navigations';\nimport { DropDownButton } from '@syncfusion/ej2-splitbuttons';\n/* eslint-disable */\n/**\n * @hidden\n */\nvar FormDesignerToolbar = /** @class */ (function () {\n function FormDesignerToolbar(viewer, viewerBase, toolbar) {\n /**\n * @private\n */\n this.isToolbarHidden = false;\n this.isTextboxBtnVisible = true;\n this.isPasswordBtnVisible = true;\n this.isCheckboxBtnVisible = true;\n this.isRadiobuttonBtnVisible = true;\n this.isDropdownBtnVisible = true;\n this.isListboxBtnVisible = true;\n this.isSignatureBtnVisible = true;\n this.isDeleteBtnVisible = true;\n this.toolbarBorderHeight = 1;\n this.pdfViewer = viewer;\n this.pdfViewerBase = viewerBase;\n this.primaryToolbar = toolbar;\n }\n FormDesignerToolbar.prototype.initializeFormDesignerToolbar = function () {\n var _this = this;\n // eslint-disable-next-line max-len\n this.toolbarElement = createElement('div', { id: this.pdfViewer.element.id + '_formdesigner_toolbar', className: 'e-pv-formdesigner-toolbar' });\n this.pdfViewerBase.viewerMainContainer.appendChild(this.toolbarElement);\n this.toolbar = new Tool({\n width: '', height: '', overflowMode: 'Popup',\n items: this.createToolbarItems(), clicked: this.onToolbarClicked.bind(this),\n created: function () {\n _this.createDropDowns();\n }\n });\n //this.toolbar.isStringTemplate = true;\n if (this.pdfViewer.enableRtl) {\n this.toolbar.enableRtl = true;\n }\n this.toolbar.appendTo(this.toolbarElement);\n this.afterToolbarCreation();\n this.createSignContainer();\n this.applyFormDesignerToolbarSettings();\n //this.updateToolbarItems();\n this.showFormDesignerToolbar(null, true);\n };\n /**\n * @private\n */\n FormDesignerToolbar.prototype.resetFormDesignerToolbar = function () {\n if (this.pdfViewer.isFormDesignerToolbarVisible) {\n this.pdfViewer.designerMode = true;\n this.adjustViewer(false);\n this.toolbarElement.style.display = '';\n this.isToolbarHidden = false;\n this.adjustViewer(true);\n this.primaryToolbar.selectItem(this.primaryToolbar.formDesignerItem);\n this.pdfViewer.isFormDesignerToolbarVisible = true;\n }\n else {\n this.toolbarElement.style.display = 'none';\n this.isToolbarHidden = true;\n if (!this.pdfViewer.isAnnotationToolbarVisible) {\n this.adjustViewer(true);\n }\n this.pdfViewer.isFormDesignerToolbarVisible = false;\n }\n };\n /**\n * @param element\n * @param isInitialLoading\n * @param element\n * @param isInitialLoading\n * @private\n */\n FormDesignerToolbar.prototype.showFormDesignerToolbar = function (element, isInitialLoading) {\n if (!this.isToolbarHidden) {\n // eslint-disable-next-line\n var formDesignerModule = this.pdfViewer.formDesignerModule;\n if (element) {\n this.primaryToolbar.deSelectItem(element);\n }\n else {\n if (this.pdfViewer.enableToolbar) {\n this.primaryToolbar.deSelectItem(this.primaryToolbar.formDesignerItem);\n }\n }\n this.adjustViewer(false);\n // eslint-disable-next-line max-len\n //this.deselectAllItems();\n this.toolbarElement.style.display = 'none';\n this.pdfViewer.formDesignerModule.setMode(\"edit\");\n this.pdfViewer.designerMode = false;\n if (!isInitialLoading) {\n this.pdfViewer.isFormDesignerToolbarVisible = false;\n }\n }\n else {\n var toolBarInitialStatus = this.toolbarElement.style.display;\n this.toolbarElement.style.display = 'block';\n this.pdfViewer.designerMode = true;\n this.pdfViewer.formDesignerModule.setMode(\"designer\");\n if (!isInitialLoading) {\n this.pdfViewer.isFormDesignerToolbarVisible = true;\n }\n if (element) {\n this.primaryToolbar.selectItem(element);\n }\n else {\n if (this.pdfViewer.enableToolbar) {\n this.primaryToolbar.selectItem(this.primaryToolbar.formDesignerItem);\n }\n }\n if (toolBarInitialStatus === 'none') {\n this.adjustViewer(true);\n }\n }\n // eslint-disable-next-line max-len\n if (this.pdfViewer.magnification && this.pdfViewer.magnification.fitType === 'fitToPage') {\n this.pdfViewer.magnification.fitToPage();\n }\n //this.enableAnnotationAddTools(true);\n this.isToolbarHidden = !this.isToolbarHidden;\n };\n /**\n * @param isAdjust\n * @private\n */\n FormDesignerToolbar.prototype.adjustViewer = function (isAdjust) {\n var splitterElement;\n var toolbarContainer;\n var formDesignerToolbarHeight;\n if (isBlazor()) {\n splitterElement = this.pdfViewer.element.querySelector('.e-pv-sidebar-toolbar-splitter');\n toolbarContainer = this.pdfViewer.element.querySelector('.e-pv-toolbar');\n var formDesignerToolbarContainer = this.pdfViewer.element.querySelector('.e-pv-formDesigner-toolbar');\n formDesignerToolbarHeight = this.getToolbarHeight(formDesignerToolbarContainer);\n }\n else {\n splitterElement = this.pdfViewerBase.getElement('_sideBarToolbarSplitter');\n toolbarContainer = this.pdfViewerBase.getElement('_toolbarContainer');\n formDesignerToolbarHeight = this.getToolbarHeight(this.toolbarElement);\n }\n var toolbarHeight = this.getToolbarHeight(toolbarContainer);\n var sideBarToolbar = this.pdfViewerBase.navigationPane.sideBarToolbar;\n var sideBarContentContainer = this.pdfViewerBase.navigationPane.sideBarContentContainer;\n var commentsContainer = this.pdfViewerBase.navigationPane.commentPanelContainer;\n var commentPanelResizer = this.pdfViewerBase.navigationPane.commentPanelResizer;\n var newToolbarHeight = '';\n if (isAdjust) {\n if (this.pdfViewer.enableToolbar) {\n sideBarToolbar.style.top = (toolbarHeight + formDesignerToolbarHeight) + 'px';\n sideBarContentContainer.style.top = (toolbarHeight + formDesignerToolbarHeight) + 'px';\n splitterElement.style.top = (toolbarHeight + formDesignerToolbarHeight) + 'px';\n commentsContainer.style.top = (toolbarHeight + formDesignerToolbarHeight) + 'px';\n commentPanelResizer.style.top = (toolbarHeight + formDesignerToolbarHeight) + 'px';\n }\n else {\n sideBarToolbar.style.top = (formDesignerToolbarHeight) + 'px';\n sideBarContentContainer.style.top = (formDesignerToolbarHeight) + 'px';\n splitterElement.style.top = (formDesignerToolbarHeight) + 'px';\n commentsContainer.style.top = (formDesignerToolbarHeight) + 'px';\n commentPanelResizer.style.top = (toolbarHeight + formDesignerToolbarHeight) + 'px';\n }\n if (!this.pdfViewer.enableToolbar) {\n toolbarHeight = 0;\n }\n // eslint-disable-next-line max-len\n this.pdfViewerBase.viewerContainer.style.height = this.updateViewerHeight(this.getElementHeight(this.pdfViewerBase.viewerContainer), (formDesignerToolbarHeight + toolbarHeight)) + 'px';\n newToolbarHeight = this.getNavigationToolbarHeight(formDesignerToolbarHeight + toolbarHeight);\n sideBarToolbar.style.height = newToolbarHeight;\n splitterElement.style.height = newToolbarHeight;\n commentPanelResizer.style.height = newToolbarHeight;\n sideBarContentContainer.style.height = newToolbarHeight;\n }\n else {\n if (this.pdfViewer.enableToolbar) {\n // eslint-disable-next-line max-len\n sideBarToolbar.style.top = toolbarHeight + 'px';\n sideBarContentContainer.style.top = toolbarHeight + 'px';\n splitterElement.style.top = toolbarHeight + 'px';\n commentsContainer.style.top = toolbarHeight + 'px';\n commentPanelResizer.style.top = toolbarHeight + 'px';\n }\n else {\n sideBarToolbar.style.top = 1 + 'px';\n sideBarToolbar.style.height = '100%';\n sideBarContentContainer.style.top = 1 + 'px';\n sideBarContentContainer.style.height = '100%';\n splitterElement.style.top = 1 + 'px';\n splitterElement.style.height = '100%';\n commentsContainer.style.top = 1 + 'px';\n commentsContainer.style.height = '100%';\n commentPanelResizer.style.top = 1 + 'px';\n commentPanelResizer.style.height = '100%';\n }\n if (!this.pdfViewer.enableToolbar) {\n toolbarHeight = 0;\n }\n // eslint-disable-next-line max-len\n this.pdfViewerBase.viewerContainer.style.height = this.updateViewerHeight(this.getElementHeight(this.pdfViewerBase.viewerContainer), formDesignerToolbarHeight) + 'px';\n newToolbarHeight = this.getNavigationToolbarHeight(toolbarHeight);\n sideBarToolbar.style.height = newToolbarHeight;\n splitterElement.style.height = newToolbarHeight;\n commentPanelResizer.style.height = newToolbarHeight;\n sideBarContentContainer.style.height = newToolbarHeight;\n if (this.pdfViewerBase.viewerContainer.style.height === '0px') {\n // eslint-disable-next-line\n this.pdfViewerBase.viewerContainer.style.height = (parseInt(this.pdfViewer.element.style.height) - parseInt(sideBarToolbar.style.top)) + 'px';\n }\n }\n };\n FormDesignerToolbar.prototype.getElementHeight = function (element) {\n try {\n return element.getBoundingClientRect().height;\n }\n catch (error) {\n return 0;\n }\n };\n FormDesignerToolbar.prototype.updateViewerHeight = function (viewerHeight, toolbarHeight) {\n return this.getElementHeight(this.pdfViewer.element) - toolbarHeight;\n };\n FormDesignerToolbar.prototype.resetViewerHeight = function (viewerHeight, toolbarHeight) {\n return viewerHeight + toolbarHeight;\n };\n FormDesignerToolbar.prototype.getNavigationToolbarHeight = function (toolbarHeight) {\n var height = this.pdfViewer.element.getBoundingClientRect().height;\n return (height !== 0) ? height - toolbarHeight + 'px' : '';\n };\n FormDesignerToolbar.prototype.updateContentContainerHeight = function (isAdjust, isBlazor) {\n var formDesignerToolbarHeight;\n if (isBlazor) {\n var formDesignerToolbarContainer = this.pdfViewer.element.querySelector('.e-pv-formDesigner-toolbar');\n formDesignerToolbarHeight = this.getToolbarHeight(formDesignerToolbarContainer);\n }\n else {\n formDesignerToolbarHeight = this.getToolbarHeight(this.toolbarElement);\n }\n var sideBarClientRect = this.pdfViewerBase.navigationPane.sideBarContentContainer.getBoundingClientRect();\n if (sideBarClientRect.height !== 0) {\n if (isAdjust) {\n // eslint-disable-next-line max-len\n this.pdfViewerBase.navigationPane.sideBarContentContainer.style.height = sideBarClientRect.height - formDesignerToolbarHeight + 'px';\n }\n else {\n // eslint-disable-next-line max-len\n this.pdfViewerBase.navigationPane.sideBarContentContainer.style.height = sideBarClientRect.height + formDesignerToolbarHeight + 'px';\n }\n }\n };\n FormDesignerToolbar.prototype.getToolbarHeight = function (element) {\n var toolbarHeight = element.getBoundingClientRect().height;\n if (toolbarHeight === 0 && element === this.pdfViewerBase.getElement('_toolbarContainer')) {\n // getComputedStyle gets the value from style and toolbar border height is added to it.\n // eslint-disable-next-line\n toolbarHeight = parseFloat(window.getComputedStyle(element)['height']) + this.toolbarBorderHeight;\n }\n return toolbarHeight;\n };\n // eslint-disable-next-line\n FormDesignerToolbar.prototype.createToolbarItems = function () {\n var signTemplate = this.getTemplate('button', '_formfield_signature', 'e-pv-annotation-handwritten-container');\n // eslint-disable-next-line\n var items = [];\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-textbox-icon e-pv-icon', className: 'e-pv-annotation-shapes-container', id: this.pdfViewer.element.id + '_formdesigner_textbox', align: 'Left' });\n items.push({ prefixIcon: 'e-pv-password-icon e-pv-icon', className: 'e-pv-annotation-shapes-container', id: this.pdfViewer.element.id + '_formdesigner_passwordfield', align: 'Left' });\n items.push({ prefixIcon: 'e-pv-checkbox-icon e-pv-icon', className: 'e-pv-annotation-shapes-container', id: this.pdfViewer.element.id + '_formdesigner_checkbox', align: 'Left' });\n items.push({ prefixIcon: 'e-pv-radiobutton-icon e-pv-icon', className: 'e-pv-annotation-shapes-container', id: this.pdfViewer.element.id + '_formdesigner_radiobutton', align: 'Left' });\n items.push({ prefixIcon: 'e-pv-dropdown-icon e-pv-icon', className: 'e-pv-annotation-shapes-container', id: this.pdfViewer.element.id + '_formdesigner_dropdown', align: 'Left' });\n items.push({ prefixIcon: 'e-pv-listbox-icon e-pv-icon', className: 'e-pv-annotation-shapes-container', id: this.pdfViewer.element.id + '_formdesigner_listbox', align: 'Left' });\n items.push({ template: signTemplate, align: 'Left' });\n items.push({ type: 'Separator', align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-annotation-delete-icon e-pv-icon', className: 'e-pv-annotation-delete-container', id: this.pdfViewer.element.id + '_formdesigner_delete', align: 'Left' });\n items.push({ prefixIcon: 'e-pv-annotation-tools-close-icon e-pv-icon', className: 'e-pv-annotation-tools-close-container', id: this.pdfViewer.element.id + '_formdesigner_close', align: 'Right' });\n return items;\n };\n FormDesignerToolbar.prototype.createSignContainer = function () {\n var _this = this;\n this.handWrittenSignatureItem = this.pdfViewerBase.getElement('_formfield_signature');\n // eslint-disable-next-line max-len\n this.primaryToolbar.createTooltip(this.pdfViewerBase.getElement('_formfield_signature'), this.pdfViewer.localeObj.getConstant('HandwrittenSignatureDialogHeaderText'));\n // eslint-disable-next-line\n var proxy = this;\n var items = [];\n items = [\n {\n text: 'ADD SIGNATURE'\n },\n {\n separator: true\n },\n {\n text: 'ADD INITIAL'\n }\n ];\n var saveOptions = {\n items: items,\n iconCss: 'e-pv-handwritten-icon e-pv-icon',\n cssClass: 'e-pv-handwritten-popup',\n beforeItemRender: function (args) {\n _this.pdfViewer.clearSelection(_this.pdfViewerBase.currentPageNumber - 1);\n if (args.element && args.element.className.indexOf(\"e-separator\") !== -1) {\n args.element.style.margin = \"8px 0\";\n args.element.setAttribute('role', 'menuitem');\n args.element.setAttribute('aria-label', 'separator');\n }\n if (args.item.text === 'ADD SIGNATURE') {\n args.element.innerHTML = '';\n var addInitialSpan = createElement('button');\n addInitialSpan.classList.add(\"e-control\", \"e-btn\", \"e-lib\", \"e-outline\", \"e-primary\");\n addInitialSpan.textContent = _this.pdfViewer.localeObj.getConstant('SignatureFieldDialogHeaderText');\n _this.pdfViewer.locale === 'en-US' ? addInitialSpan.style.width = \"130px\" : addInitialSpan.style.width = \"auto\";\n addInitialSpan.style.height = \"36px\";\n addInitialSpan.addEventListener('click', _this.clickSignature.bind(_this));\n args.element.appendChild(addInitialSpan);\n args.element.addEventListener('mouseover', _this.hoverInitialBtn.bind(_this));\n args.element.style.width = '206px';\n args.element.style.display = 'flex';\n args.element.style.flexDirection = 'column';\n args.element.style.height = 'auto';\n args.element.style.alignItems = 'center';\n args.element.setAttribute('role', 'menuitem');\n }\n if (args.item.text === 'ADD INITIAL') {\n args.element.innerHTML = '';\n var addInitialSpan = createElement('button');\n addInitialSpan.classList.add(\"e-control\", \"e-btn\", \"e-lib\", \"e-outline\", \"e-primary\");\n addInitialSpan.textContent = _this.pdfViewer.localeObj.getConstant('InitialFieldDialogHeaderText');\n _this.pdfViewer.locale === 'en-US' ? addInitialSpan.style.width = \"130px\" : addInitialSpan.style.width = \"auto\";\n addInitialSpan.style.height = \"36px\";\n addInitialSpan.addEventListener('click', _this.clickInitial.bind(_this));\n args.element.appendChild(addInitialSpan);\n args.element.addEventListener('mouseover', _this.hoverInitialBtn.bind(_this));\n args.element.style.width = '206px';\n args.element.style.display = 'flex';\n args.element.style.flexDirection = 'column';\n args.element.style.height = 'auto';\n args.element.style.alignItems = 'center';\n args.element.setAttribute('role', 'menuitem');\n }\n },\n };\n var drpDownBtn = new DropDownButton(saveOptions);\n if (this.pdfViewer.enableRtl) {\n drpDownBtn.enableRtl = this.pdfViewer.enableRtl;\n }\n drpDownBtn.appendTo(this.handWrittenSignatureItem);\n };\n FormDesignerToolbar.prototype.hoverInitialBtn = function (event) {\n var eventTarget = event.target;\n var currentFieldID = isNullOrUndefined(event.path) ? event.composedPath()[0].id : event.path[0].id;\n if (currentFieldID !== 'sign_' + currentFieldID.split(\"_\")[1] && currentFieldID !== 'delete_' + currentFieldID.split(\"_\")[1]) {\n var liElement = document.getElementById(eventTarget.id);\n if (isNullOrUndefined(liElement)) {\n liElement = document.getElementById(eventTarget.parentElement.id);\n }\n if (liElement != null && (eventTarget.id !== 'sign_' + eventTarget.id.split('_')[1] || eventTarget.id !== 'sign_border_' + eventTarget.id.split('_')[2])) {\n liElement.style.background = 'transparent';\n liElement.style.cursor = 'default';\n }\n else if (liElement.parentElement != null && (eventTarget.id !== 'sign_' + eventTarget.id.split('_')[1] || eventTarget.id !== 'sign_border_' + eventTarget.id.split('_')[2])) {\n liElement.parentElement.style.background = 'transparent';\n liElement.parentElement.style.cursor = 'default';\n }\n }\n };\n FormDesignerToolbar.prototype.getTemplate = function (elementName, id, className) {\n var element = createElement(elementName, { id: this.pdfViewer.element.id + id });\n if (className) {\n element.className = className;\n }\n return element.outerHTML;\n };\n FormDesignerToolbar.prototype.onToolbarClicked = function (args) {\n // eslint-disable-next-line\n if (args && args.item) {\n if (args.item.id.indexOf(\"textbox\") !== -1) {\n this.pdfViewer.formDesignerModule.setFormFieldMode('Textbox');\n }\n else if (args.item.id.indexOf(\"passwordfield\") !== -1) {\n this.pdfViewer.formDesignerModule.setFormFieldMode('Password');\n }\n else if (args.item.id.indexOf(\"checkbox\") !== -1) {\n this.pdfViewer.formDesignerModule.setFormFieldMode('CheckBox');\n }\n else if (args.item.id.indexOf(\"radiobutton\") !== -1) {\n this.pdfViewer.formDesignerModule.setFormFieldMode('RadioButton');\n }\n else if (args.item.id.indexOf(\"dropdown\") !== -1) {\n this.pdfViewer.formDesignerModule.setFormFieldMode('DropDown');\n }\n else if (args.item.id.indexOf(\"listbox\") !== -1) {\n this.pdfViewer.formDesignerModule.setFormFieldMode('ListBox');\n }\n else if (args.item.id.indexOf(\"signature\") !== -1) {\n this.pdfViewer.formDesignerModule.setFormFieldMode('SignatureField');\n }\n else if (args.item.id.indexOf(\"close\") !== -1) {\n this.pdfViewer.toolbarModule.formDesignerToolbarModule.showFormDesignerToolbar(this.pdfViewer.toolbarModule.formDesignerItem);\n }\n else if (args.item.id.indexOf(\"delete\") !== -1) {\n this.pdfViewer.formDesignerModule.deleteFormField(this.pdfViewer.selectedItems.formFields[0]);\n this.showHideDeleteIcon(false);\n }\n if (this.pdfViewer.selectedItems.formFields.length > 0) {\n this.pdfViewer.clearSelection(this.pdfViewer.selectedItems.formFields[0].pageIndex);\n }\n }\n };\n FormDesignerToolbar.prototype.clickSignature = function (args) {\n this.pdfViewer.formDesignerModule.setFormFieldMode('SignatureField');\n };\n FormDesignerToolbar.prototype.clickInitial = function (args) {\n this.pdfViewer.isInitialFieldToolbarSelection = true;\n this.pdfViewer.formDesignerModule.setFormFieldMode('InitialField');\n this.pdfViewer.isInitialFieldToolbarSelection = false;\n };\n FormDesignerToolbar.prototype.afterToolbarCreation = function () {\n // eslint-disable-next-line max-len\n this.textboxItem = this.primaryToolbar.addClassToolbarItem('_formdesigner_textbox', 'e-pv-formdesigner-textbox', this.pdfViewer.localeObj.getConstant('Textbox'));\n this.passwordItem = this.primaryToolbar.addClassToolbarItem('_formdesigner_passwordfield', 'e-pv-formdesigner-passwordfield', this.pdfViewer.localeObj.getConstant('Password'));\n this.checkboxItem = this.primaryToolbar.addClassToolbarItem('_formdesigner_checkbox', 'e-pv-formdesigner-checkbox', this.pdfViewer.localeObj.getConstant('Check Box'));\n this.radioButtonItem = this.primaryToolbar.addClassToolbarItem('_formdesigner_radiobutton', 'e-pv-formdesigner-radiobutton', this.pdfViewer.localeObj.getConstant('Radio Button'));\n this.dropdownItem = this.primaryToolbar.addClassToolbarItem('_formdesigner_dropdown', 'e-pv-formdesigner-dropdown', this.pdfViewer.localeObj.getConstant('Dropdown'));\n this.listboxItem = this.primaryToolbar.addClassToolbarItem('_formdesigner_listbox', 'e-pv-formdesigner-listbox', this.pdfViewer.localeObj.getConstant('List Box'));\n //this.signatureItem = this.primaryToolbar.addClassToolbarItem('_formdesigner_signature', 'e-pv-formdesigner-signature', this.pdfViewer.localeObj.getConstant('Signature'));\n this.deleteItem = this.primaryToolbar.addClassToolbarItem('_formdesigner_delete', 'e-pv-formdesigner-delete', this.pdfViewer.localeObj.getConstant('Delete FormField'));\n this.closeItem = this.primaryToolbar.addClassToolbarItem('_formdesigner_close', 'e-pv-annotation-tools-close', null);\n this.showHideDeleteIcon(false);\n //this.enableTextMarkupAnnotationPropertiesTools(false); \n };\n FormDesignerToolbar.prototype.showHideDeleteIcon = function (isEnable) {\n if (this.toolbar)\n this.toolbar.enableItems(this.deleteItem.parentElement, isEnable);\n };\n /**\n * @private\n */\n FormDesignerToolbar.prototype.applyFormDesignerToolbarSettings = function () {\n if (this.pdfViewer.toolbarSettings.formDesignerToolbarItems) {\n if (this.pdfViewer.toolbarSettings.formDesignerToolbarItems.indexOf('TextboxTool') !== -1) {\n this.showTextboxTool(true);\n }\n else {\n this.showTextboxTool(false);\n }\n if (this.pdfViewer.toolbarSettings.formDesignerToolbarItems.indexOf('PasswordTool') !== -1) {\n this.showPasswordTool(true);\n }\n else {\n this.showPasswordTool(false);\n }\n if (this.pdfViewer.toolbarSettings.formDesignerToolbarItems.indexOf('CheckBoxTool') !== -1) {\n this.showCheckboxTool(true);\n }\n else {\n this.showCheckboxTool(false);\n }\n if (this.pdfViewer.toolbarSettings.formDesignerToolbarItems.indexOf('RadioButtonTool') !== -1) {\n this.showRadioButtonTool(true);\n }\n else {\n this.showRadioButtonTool(false);\n }\n if (this.pdfViewer.toolbarSettings.formDesignerToolbarItems.indexOf('DropdownTool') !== -1) {\n this.showDropdownTool(true);\n }\n else {\n this.showDropdownTool(false);\n }\n if (this.pdfViewer.toolbarSettings.formDesignerToolbarItems.indexOf('ListboxTool') !== -1) {\n this.showListboxTool(true);\n }\n else {\n this.showListboxTool(false);\n }\n if (this.pdfViewer.toolbarSettings.formDesignerToolbarItems.indexOf('DrawSignatureTool') !== -1) {\n this.showDrawSignatureTool(true);\n }\n else {\n this.showDrawSignatureTool(false);\n }\n if (this.pdfViewer.toolbarSettings.formDesignerToolbarItems.indexOf('DeleteTool') !== -1) {\n this.showDeleteTool(true);\n }\n else {\n this.showDeleteTool(false);\n }\n this.showSeparator();\n }\n };\n FormDesignerToolbar.prototype.showTextboxTool = function (isShow) {\n this.isTextboxBtnVisible = isShow;\n this.applyHideToToolbar(isShow, 0, 0);\n };\n FormDesignerToolbar.prototype.showPasswordTool = function (isShow) {\n this.isPasswordBtnVisible = isShow;\n this.applyHideToToolbar(isShow, 1, 1);\n };\n FormDesignerToolbar.prototype.showCheckboxTool = function (isShow) {\n this.isCheckboxBtnVisible = isShow;\n this.applyHideToToolbar(isShow, 2, 2);\n };\n FormDesignerToolbar.prototype.showRadioButtonTool = function (isShow) {\n this.isRadiobuttonBtnVisible = isShow;\n this.applyHideToToolbar(isShow, 3, 3);\n };\n FormDesignerToolbar.prototype.showDropdownTool = function (isShow) {\n this.isDropdownBtnVisible = isShow;\n this.applyHideToToolbar(isShow, 4, 4);\n };\n FormDesignerToolbar.prototype.showListboxTool = function (isShow) {\n this.isListboxBtnVisible = isShow;\n this.applyHideToToolbar(isShow, 5, 5);\n };\n FormDesignerToolbar.prototype.showDrawSignatureTool = function (isShow) {\n this.isSignatureBtnVisible = isShow;\n this.applyHideToToolbar(isShow, 6, 6);\n };\n FormDesignerToolbar.prototype.showDeleteTool = function (isShow) {\n this.isDeleteBtnVisible = isShow;\n this.applyHideToToolbar(isShow, 8, 8);\n };\n FormDesignerToolbar.prototype.showSeparator = function () {\n if (!this.isSignatureBtnVisible && !this.isDeleteBtnVisible)\n this.applyHideToToolbar(false, 7, 7);\n };\n FormDesignerToolbar.prototype.applyHideToToolbar = function (show, startIndex, endIndex) {\n var isHide = !show;\n for (var index = startIndex; index <= endIndex; index++) {\n this.toolbar.hideItem(index, isHide);\n }\n };\n FormDesignerToolbar.prototype.createDropDowns = function () {\n };\n /**\n * @private\n */\n FormDesignerToolbar.prototype.destroy = function () {\n var componentElement = [this.textboxItem, this.passwordItem, this.checkboxItem, this.radioButtonItem,\n this.listboxItem, this.dropdownItem, this.handWrittenSignatureItem, this.deleteItem];\n for (var i = 0; i < componentElement.length; i++) {\n if (componentElement[i]) {\n this.destroyDependentComponent(componentElement[i]);\n }\n }\n };\n FormDesignerToolbar.prototype.destroyDependentComponent = function (component) {\n if (component.ej2_instances) {\n for (var i = component.ej2_instances.length - 1; i >= 0; i--) {\n component.ej2_instances[i].destroy();\n }\n }\n };\n return FormDesignerToolbar;\n}());\nexport { FormDesignerToolbar };\n","/* eslint-disable */\nimport { createElement, Browser, isBlazor, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { Toolbar as tool } from '@syncfusion/ej2-navigations';\nimport { NumericTextBox } from '@syncfusion/ej2-inputs';\nimport { ComboBox } from '@syncfusion/ej2-dropdowns';\nimport { AnnotationToolbar } from '../index';\nimport { Tooltip } from '@syncfusion/ej2-popups';\nimport { DropDownButton } from '@syncfusion/ej2-splitbuttons';\nimport { FormFieldDataFormat } from '../base/types';\nimport { FormDesignerToolbar } from './formdesigner-toolbar';\n/**\n * Toolbar module\n */\nvar Toolbar = /** @class */ (function () {\n /**\n * @param viewer\n * @param viewerBase\n * @param viewer\n * @param viewerBase\n * @private\n */\n function Toolbar(viewer, viewerBase) {\n var _this = this;\n this.isPageNavigationToolDisabled = false;\n this.isMagnificationToolDisabled = false;\n /**\n * @private\n */\n this.isSelectionToolDisabled = false;\n this.isScrollingToolDisabled = false;\n this.isOpenBtnVisible = true;\n this.isNavigationToolVisible = true;\n this.isMagnificationToolVisible = true;\n this.isSelectionBtnVisible = true;\n this.isScrollingBtnVisible = true;\n this.isDownloadBtnVisible = true;\n this.isPrintBtnVisible = true;\n this.isSearchBtnVisible = true;\n this.isTextSearchBoxDisplayed = false;\n this.isUndoRedoBtnsVisible = true;\n this.isAnnotationEditBtnVisible = true;\n this.isFormDesignerEditBtnVisible = true;\n this.isCommentBtnVisible = true;\n this.isSubmitbtnvisible = true;\n this.onToolbarKeydown = function (event) {\n var targetId = event.target.id;\n if (!(targetId === _this.pdfViewer.element.id + '_currentPageInput' || targetId === _this.pdfViewer.element.id + '_zoomDropDown')) {\n event.preventDefault();\n event.stopPropagation();\n }\n };\n this.toolbarClickHandler = function (args) {\n // eslint-disable-next-line max-len\n if (!Browser.isDevice || _this.pdfViewer.enableDesktopMode) {\n if (args.originalEvent.target === _this.zoomDropdownItem.parentElement.childNodes[1] || args.originalEvent.target === _this.zoomDropdownItem.parentElement.childNodes[2]) {\n args.cancel = true;\n }\n else if (args.originalEvent.target.id === _this.pdfViewer.element.id + '_openIcon') {\n var tooltipData = args.originalEvent.target.parentElement.dataset;\n if (tooltipData && tooltipData.tooltipId) {\n var tooltipElement = document.getElementById(tooltipData.tooltipId);\n if (tooltipElement) {\n tooltipElement.style.display = 'none';\n }\n }\n }\n }\n _this.handleToolbarBtnClick(args);\n // eslint-disable-next-line\n var targetElement = args.originalEvent.target;\n if (!Browser.isDevice || _this.pdfViewer.enableDesktopMode) {\n // eslint-disable-next-line max-len\n if (!(args.originalEvent.target === _this.zoomDropdownItem.parentElement.childNodes[1] || args.originalEvent.target === _this.zoomDropdownItem.parentElement.childNodes[2] || args.originalEvent.target === _this.currentPageBoxElement || args.originalEvent.target === _this.textSearchItem.childNodes[0])) {\n if (targetElement.parentElement.id !== _this.pdfViewer.element.id + '_toolbarContainer_nav' && targetElement.id !== _this.pdfViewer.element.id + '_toolbarContainer_nav') {\n args.originalEvent.target.blur();\n _this.pdfViewerBase.focusViewerContainer();\n }\n }\n }\n else {\n args.originalEvent.target.blur();\n _this.pdfViewerBase.focusViewerContainer();\n }\n };\n // eslint-disable-next-line\n this.loadDocument = function (args) {\n // eslint-disable-next-line\n var upoadedFiles = args.target.files;\n if (args.target.files[0] !== null) {\n var uploadedFile = upoadedFiles[0];\n if (uploadedFile) {\n _this.uploadedDocumentName = uploadedFile.name;\n var reader = new FileReader();\n reader.readAsDataURL(uploadedFile);\n // eslint-disable-next-line\n reader.onload = function (e) {\n var uploadedFileUrl = e.currentTarget.result;\n if (isBlazor()) {\n _this.pdfViewer._dotnetInstance.invokeMethodAsync(\"LoadDocumentFromClient\", uploadedFileUrl);\n }\n else {\n _this.pdfViewer.load(uploadedFileUrl, null);\n }\n };\n }\n }\n };\n this.navigateToPage = function (args) {\n if (args.which === 13) {\n // eslint-disable-next-line\n var enteredValue = parseInt(_this.currentPageBoxElement.value);\n if (enteredValue !== null) {\n if (enteredValue > 0 && enteredValue <= _this.pdfViewerBase.pageCount) {\n if (_this.pdfViewer.navigationModule) {\n _this.pdfViewer.navigationModule.goToPage(enteredValue);\n }\n }\n else {\n _this.updateCurrentPage(_this.pdfViewerBase.currentPageNumber);\n }\n }\n else {\n _this.updateCurrentPage(_this.pdfViewerBase.currentPageNumber);\n }\n _this.currentPageBoxElement.blur();\n _this.pdfViewerBase.focusViewerContainer();\n }\n };\n this.textBoxFocusOut = function () {\n // eslint-disable-next-line\n if (_this.currentPageBox.value === null || _this.currentPageBox.value >= _this.pdfViewerBase.pageCount || _this.currentPageBox.value !== _this.pdfViewerBase.currentPageNumber) {\n _this.updateCurrentPage(_this.pdfViewerBase.currentPageNumber);\n }\n };\n this.pdfViewer = viewer;\n this.pdfViewerBase = viewerBase;\n }\n /**\n * @param width\n * @private\n */\n Toolbar.prototype.intializeToolbar = function (width) {\n var toolbarDiv;\n if (!isBlazor()) {\n toolbarDiv = this.createToolbar(width);\n }\n else {\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n toolbarDiv = this.pdfViewer.element.querySelector('.e-pv-toolbar');\n this.toolbarElement = toolbarDiv;\n }\n }\n // eslint-disable-next-line\n var isIE = !!document.documentMode;\n if (isIE) {\n if (isBlazor()) {\n this.pdfViewerBase.blazorUIAdaptor.totalPageElement.classList.add('e-pv-total-page-ms');\n }\n else {\n if (!Browser.isDevice) {\n this.totalPageItem.classList.add('e-pv-total-page-ms');\n }\n }\n }\n this.createFileElement(toolbarDiv);\n this.wireEvent();\n if (!isBlazor()) {\n this.updateToolbarItems();\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.applyToolbarSettings();\n this.initialEnableItems();\n this.pdfViewerBase.navigationPane.adjustPane();\n }\n else {\n this.initialEnableItems();\n }\n if (this.pdfViewer.annotationModule) {\n this.annotationToolbarModule = new AnnotationToolbar(this.pdfViewer, this.pdfViewerBase, this);\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.annotationToolbarModule.initializeAnnotationToolbar();\n }\n }\n if (this.pdfViewer.formDesignerModule) {\n this.formDesignerToolbarModule = new FormDesignerToolbar(this.pdfViewer, this.pdfViewerBase, this);\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.formDesignerToolbarModule.initializeFormDesignerToolbar();\n }\n }\n }\n else {\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.initialEnableItems();\n this.pdfViewerBase.navigationPane.adjustPane();\n if (this.pdfViewer.enableToolbar) {\n this.bindOpenIconEvent();\n }\n }\n this.PanElement = document.getElementById(this.pdfViewer.element.id + '_handTool').children[0];\n this.PanElement.classList.add('e-pv-tbar-btn');\n this.SelectToolElement = document.getElementById(this.pdfViewer.element.id + '_selectTool').children[0];\n this.SelectToolElement.classList.add('e-pv-tbar-btn');\n this.CommentElement = document.getElementById(this.pdfViewer.element.id + '_comment').children[0];\n this.CommentElement.classList.add('e-pv-tbar-btn');\n this.annotationToolbarModule = new AnnotationToolbar(this.pdfViewer, this.pdfViewerBase, this);\n if (this.pdfViewer.enableToolbar && this.pdfViewer.enableAnnotationToolbar || (this.pdfViewer.enableDesktopMode && Browser.isDevice)) {\n this.annotationToolbarModule.afterAnnotationToolbarCreationInBlazor();\n }\n }\n return toolbarDiv;\n };\n Toolbar.prototype.bindOpenIconEvent = function () {\n var openElement = document.getElementById(this.pdfViewer.element.id + '_open');\n if (openElement) {\n openElement.addEventListener('click', this.openFileDialogBox.bind(this));\n }\n };\n Toolbar.prototype.InitializeMobileToolbarInBlazor = function () {\n var toolbarDiv;\n toolbarDiv = this.pdfViewer.element.querySelector('.e-pv-mobile-toolbar');\n this.createFileElement(toolbarDiv);\n this.wireEvent();\n };\n /**\n * Shows /hides the toolbar in the PdfViewer\n *\n * @param {boolean} enableToolbar - If set true , its show the Toolbar\n * @returns void\n */\n Toolbar.prototype.showToolbar = function (enableToolbar) {\n var toolbar = this.toolbarElement;\n if (enableToolbar) {\n toolbar.style.display = 'block';\n // eslint-disable-next-line max-len\n if ((Browser.isDevice && !this.pdfViewer.enableDesktopMode) && this.pdfViewer.toolbarModule && this.pdfViewer.toolbarModule.annotationToolbarModule) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.hideMobileAnnotationToolbar();\n }\n }\n else {\n this.pdfViewerBase.toolbarHeight = 0;\n if (enableToolbar) {\n if (Browser.isDevice && this.pdfViewer.toolbarModule.annotationToolbarModule.toolbar) {\n this.annotationToolbarModule.toolbarCreated = false;\n this.annotationToolbarModule.adjustMobileViewer();\n this.pdfViewer.toolbarModule.annotationToolbarModule.toolbar.element.style.display = 'none';\n }\n if (Browser.isDevice && this.annotationToolbarModule.propertyToolbar) {\n this.annotationToolbarModule.propertyToolbar.element.style.display = 'none';\n }\n }\n toolbar.style.display = 'none';\n }\n };\n /**\n * Shows/hides the Navigation toolbar in the PdfViewer\n *\n * @param {boolean} enableNavigationToolbar - If set true , its show the Navigation Toolbar\n * @returns void\n */\n Toolbar.prototype.showNavigationToolbar = function (enableNavigationToolbar) {\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n var navigationToolbar = this.pdfViewerBase.navigationPane.sideBarToolbar;\n var navigationToolbarSplitter = this.pdfViewerBase.navigationPane.sideBarToolbarSplitter;\n if (enableNavigationToolbar) {\n navigationToolbar.style.display = 'block';\n navigationToolbarSplitter.style.display = 'block';\n if (this.pdfViewerBase.navigationPane.isBookmarkOpen || this.pdfViewerBase.navigationPane.isThumbnailOpen) {\n this.pdfViewerBase.navigationPane.clear();\n }\n }\n else {\n navigationToolbar.style.display = 'none';\n navigationToolbarSplitter.style.display = 'none';\n if (this.pdfViewerBase.navigationPane.isBookmarkOpen || this.pdfViewerBase.navigationPane.isThumbnailOpen) {\n this.pdfViewerBase.navigationPane.updateViewerContainerOnClose();\n }\n }\n }\n };\n /**\n * Shows /hides the annotation toolbar in the PdfViewer\n *\n * @param {boolean} enableAnnotationToolbar - If set true , its show the annotation Toolbar\n * @returns void\n */\n Toolbar.prototype.showAnnotationToolbar = function (enableAnnotationToolbar) {\n if (enableAnnotationToolbar) {\n this.annotationToolbarModule.isToolbarHidden = true;\n this.annotationToolbarModule.showAnnotationToolbar();\n }\n else {\n this.annotationToolbarModule.isToolbarHidden = false;\n this.annotationToolbarModule.showAnnotationToolbar();\n }\n };\n /**\n * Shows /hides the the toolbar items in the PdfViewer\n *\n * @param {string[]} items - Defines the toolbar items in the toolbar\n * @param {boolean} isVisible - If set true, then its show the toolbar Items\n * @returns void\n */\n Toolbar.prototype.showToolbarItem = function (items, isVisible) {\n for (var i = 0; i < items.length; i++) {\n switch (items[i]) {\n case 'OpenOption':\n this.showOpenOption(isVisible);\n break;\n case 'PageNavigationTool':\n this.showPageNavigationTool(isVisible);\n break;\n case 'MagnificationTool':\n this.showMagnificationTool(isVisible);\n break;\n case 'SelectionTool':\n this.showSelectionTool(isVisible);\n break;\n case 'PanTool':\n this.showScrollingTool(isVisible);\n break;\n case 'DownloadOption':\n this.showDownloadOption(isVisible);\n break;\n case 'PrintOption':\n this.showPrintOption(isVisible);\n break;\n case 'SearchOption':\n this.showSearchOption(isVisible);\n break;\n case 'UndoRedoTool':\n this.showUndoRedoTool(isVisible);\n break;\n case 'AnnotationEditTool':\n this.showAnnotationEditTool(isVisible);\n break;\n case 'FormDesignerEditTool':\n this.showFormDesignerEditTool(isVisible);\n break;\n case 'CommentTool':\n this.showCommentOption(isVisible);\n break;\n case 'SubmitForm':\n this.showSubmitForm(isVisible);\n break;\n }\n }\n this.applyHideToToolbar(true, 1, 1);\n this.applyHideToToolbar(true, 8, 8);\n this.applyHideToToolbar(true, 12, 12);\n this.applyHideToToolbar(true, 15, 15);\n this.showSeparator(items);\n };\n /**\n * Enables /disables the the toolbar items in the PdfViewer\n *\n * @param {string[]} items - Defines the toolbar items in the toolbar\n * @param {boolean} isEnable - If set true, then its Enable the toolbar Items\n * @returns void\n */\n Toolbar.prototype.enableToolbarItem = function (items, isEnable) {\n for (var i = 0; i < items.length; i++) {\n switch (items[i]) {\n case 'OpenOption':\n this.enableOpenOption(isEnable);\n break;\n case 'PageNavigationTool':\n this.isPageNavigationToolDisabled = isEnable;\n this.enablePageNavigationTool(isEnable);\n break;\n case 'MagnificationTool':\n this.isMagnificationToolDisabled = isEnable;\n this.enableMagnificationTool(isEnable);\n break;\n case 'SelectionTool':\n this.isSelectionToolDisabled = isEnable;\n this.enableSelectionTool(isEnable);\n break;\n case 'PanTool':\n this.isScrollingToolDisabled = isEnable;\n this.enableScrollingTool(isEnable);\n break;\n case 'DownloadOption':\n this.enableDownloadOption(isEnable);\n break;\n case 'PrintOption':\n this.enablePrintOption(isEnable);\n break;\n case 'SearchOption':\n this.enableSearchOption(isEnable);\n break;\n case 'UndoRedoTool':\n this.enableUndoRedoTool(isEnable);\n break;\n case 'AnnotationEditTool':\n this.enableAnnotationEditTool(isEnable);\n break;\n case 'FormDesignerEditTool':\n this.enableFormDesignerEditTool(isEnable);\n break;\n case 'CommentTool':\n this.enableCommentsTool(isEnable);\n break;\n }\n }\n };\n /**\n * @param restrictionSummary\n * @param isEnable\n * @param restrictionSummary\n * @param isEnable\n * @private\n */\n // eslint-disable-next-line\n Toolbar.prototype.DisableToolbarItems = function (restrictionSummary, isEnable) {\n switch (restrictionSummary) {\n case 'Print':\n this.enablePrintOption(isEnable);\n break;\n case 'CopyContent':\n this.isSelectionToolDisabled = isEnable;\n this.enableSelectionTool(isEnable);\n if (isEnable) {\n this.pdfViewerBase.initiateTextSelectMode();\n this.updateInteractionTools(isEnable);\n }\n else {\n this.pdfViewerBase.initiatePanning();\n this.updateInteractionTools(isEnable);\n }\n break;\n case 'EditAnnotations':\n this.enableAnnotationEditTool(isEnable);\n if (this.annotationToolbarModule && !this.annotationToolbarModule.isToolbarHidden) {\n this.annotationToolbarModule.showAnnotationToolbar();\n }\n break;\n }\n };\n Toolbar.prototype.showOpenOption = function (enableOpenOption) {\n this.isOpenBtnVisible = enableOpenOption;\n this.applyHideToToolbar(enableOpenOption, 0, 0);\n };\n Toolbar.prototype.showPageNavigationTool = function (enablePageNavigationTool) {\n this.isNavigationToolVisible = enablePageNavigationTool;\n this.applyHideToToolbar(enablePageNavigationTool, 2, 7);\n };\n Toolbar.prototype.showMagnificationTool = function (enableMagnificationTool) {\n this.isMagnificationToolVisible = enableMagnificationTool;\n this.applyHideToToolbar(enableMagnificationTool, 9, 11);\n };\n Toolbar.prototype.showSelectionTool = function (enableSelectionTool) {\n this.isSelectionBtnVisible = enableSelectionTool;\n this.applyHideToToolbar(enableSelectionTool, 13, 13);\n };\n Toolbar.prototype.showScrollingTool = function (enableScrollingTool) {\n this.isScrollingBtnVisible = enableScrollingTool;\n this.applyHideToToolbar(enableScrollingTool, 14, 14);\n };\n Toolbar.prototype.showDownloadOption = function (enableDownloadOption) {\n this.isDownloadBtnVisible = enableDownloadOption;\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.applyHideToToolbar(enableDownloadOption, 26, 26);\n }\n else {\n this.applyHideToToolbar(enableDownloadOption, 5, 5);\n }\n };\n Toolbar.prototype.showPrintOption = function (enablePrintOption) {\n this.isPrintBtnVisible = enablePrintOption;\n this.applyHideToToolbar(enablePrintOption, 25, 25);\n };\n Toolbar.prototype.showSearchOption = function (enableSearchOption) {\n this.isSearchBtnVisible = enableSearchOption;\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.applyHideToToolbar(enableSearchOption, 22, 22);\n }\n else {\n this.applyHideToToolbar(enableSearchOption, 5, 5);\n }\n };\n Toolbar.prototype.showUndoRedoTool = function (isEnable) {\n this.isUndoRedoBtnsVisible = isEnable;\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.applyHideToToolbar(isEnable, 16, 17);\n }\n else {\n this.applyHideToToolbar(isEnable, 2, 3);\n }\n };\n Toolbar.prototype.showCommentOption = function (isEnable) {\n if (!this.pdfViewer.enableStickyNotesAnnotation) {\n this.isCommentBtnVisible = isEnable;\n this.applyHideToToolbar(this.pdfViewer.enableStickyNotesAnnotation, 18, 19);\n }\n else {\n this.isCommentBtnVisible = isEnable;\n this.applyHideToToolbar(isEnable, 18, 19);\n }\n };\n Toolbar.prototype.showAnnotationEditTool = function (isEnable) {\n this.isAnnotationEditBtnVisible = isEnable;\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.applyHideToToolbar(isEnable, 23, 23);\n }\n else {\n this.applyHideToToolbar(isEnable, 4, 4);\n }\n };\n Toolbar.prototype.showFormDesignerEditTool = function (isEnable) {\n this.isFormDesignerEditBtnVisible = isEnable;\n this.applyHideToToolbar(isEnable, 24, 24);\n };\n Toolbar.prototype.showSubmitForm = function (isEnable) {\n this.isSubmitbtnvisible = isEnable;\n this.applyHideToToolbar(isEnable, 20, 21);\n };\n Toolbar.prototype.enableOpenOption = function (enableOpenOption) {\n this.toolbar.enableItems(this.openDocumentItem.parentElement, enableOpenOption);\n };\n Toolbar.prototype.enablePageNavigationTool = function (enablePageNavigationTool) {\n this.toolbar.enableItems(this.firstPageItem.parentElement, enablePageNavigationTool);\n this.toolbar.enableItems(this.previousPageItem.parentElement, enablePageNavigationTool);\n this.toolbar.enableItems(this.nextPageItem.parentElement, enablePageNavigationTool);\n this.toolbar.enableItems(this.lastPageItem.parentElement, enablePageNavigationTool);\n this.currentPageBox.readonly = !enablePageNavigationTool;\n };\n Toolbar.prototype.enableMagnificationTool = function (enableMagnificationTool) {\n this.toolbar.enableItems(this.zoomInItem.parentElement, enableMagnificationTool);\n this.toolbar.enableItems(this.zoomOutItem.parentElement, enableMagnificationTool);\n this.zoomDropDown.readonly = !enableMagnificationTool;\n };\n Toolbar.prototype.enableSelectionTool = function (enableSelectionTool) {\n if (this.textSelectItem && this.textSelectItem.parentElement) {\n this.toolbar.enableItems(this.textSelectItem.parentElement, enableSelectionTool);\n }\n };\n Toolbar.prototype.enableScrollingTool = function (enableScrollingTool) {\n this.toolbar.enableItems(this.panItem.parentElement, enableScrollingTool);\n };\n Toolbar.prototype.enableDownloadOption = function (enableDownloadOption) {\n this.toolbar.enableItems(this.downloadItem.parentElement, enableDownloadOption);\n };\n Toolbar.prototype.enablePrintOption = function (enablePrintOption) {\n this.toolbar.enableItems(this.printItem.parentElement, enablePrintOption);\n };\n Toolbar.prototype.enableSearchOption = function (enableSearchOption) {\n this.toolbar.enableItems(this.textSearchItem.parentElement, enableSearchOption);\n };\n Toolbar.prototype.enableUndoRedoTool = function (isEnable) {\n this.toolbar.enableItems(this.undoItem.parentElement, isEnable);\n this.toolbar.enableItems(this.redoItem.parentElement, isEnable);\n };\n Toolbar.prototype.enableAnnotationEditTool = function (isEnable) {\n this.toolbar.enableItems(this.annotationItem.parentElement, isEnable);\n };\n Toolbar.prototype.enableFormDesignerEditTool = function (isEnable) {\n this.toolbar.enableItems(this.formDesignerItem.parentElement, isEnable);\n };\n Toolbar.prototype.enableCommentsTool = function (isEnable) {\n if (this.pdfViewer.enableStickyNotesAnnotation) {\n this.toolbar.enableItems(this.annotationItem.parentElement, isEnable);\n }\n };\n /**\n * @private\n */\n Toolbar.prototype.resetToolbar = function () {\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.currentPageBox.min = 0;\n this.currentPageBox.value = 0;\n this.updateTotalPage();\n this.updateToolbarItems();\n if (this.annotationToolbarModule) {\n this.annotationToolbarModule.clear();\n }\n else {\n if (this.annotationToolbarModule) {\n if (this.annotationToolbarModule.propertyToolbar) {\n this.annotationToolbarModule.propertyToolbar.destroy();\n }\n // eslint:disable-next-line\n var commentsContainer = document.getElementById(this.pdfViewer.element.id + '_commentscontentcontainer');\n if (commentsContainer) {\n commentsContainer.innerHTML = '';\n }\n }\n }\n }\n };\n /**\n * @private\n */\n Toolbar.prototype.updateToolbarItems = function () {\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n if (this.toolbar) {\n if (this.pdfViewerBase.pageCount === 0) {\n this.toolbar.enableItems(this.downloadItem.parentElement, false);\n this.toolbar.enableItems(this.printItem.parentElement, false);\n this.toolbar.enableItems(this.commentItem.parentElement, false);\n this.updateUndoRedoButtons();\n this.updateNavigationButtons();\n this.toolbar.enableItems(this.zoomInItem.parentElement, false);\n this.toolbar.enableItems(this.zoomOutItem.parentElement, false);\n if (this.pdfViewer.magnificationModule) {\n this.zoomDropDown.readonly = true;\n }\n this.toolbar.enableItems(this.submitItem.parentElement, false);\n this.toolbar.enableItems(this.pdfViewerBase.getElement('_currentPageInputContainer'), false);\n this.toolbar.enableItems(this.pdfViewerBase.getElement('_zoomDropDownContainer'), false);\n this.toolbar.enableItems(this.textSelectItem.parentElement, false);\n this.toolbar.enableItems(this.annotationItem.parentElement, false);\n this.toolbar.enableItems(this.formDesignerItem.parentElement, false);\n this.toolbar.enableItems(this.panItem.parentElement, false);\n this.toolbar.enableItems(this.textSearchItem.parentElement, false);\n this.deSelectItem(this.annotationItem);\n if (this.annotationToolbarModule) {\n this.annotationToolbarModule.resetToolbar();\n }\n this.deSelectItem(this.formDesignerItem);\n if (this.formDesignerToolbarModule) {\n this.formDesignerToolbarModule.resetFormDesignerToolbar();\n }\n }\n else if (this.pdfViewerBase.pageCount > 0) {\n var obj = this.pdfViewerBase.getElement('_currentPageInputContainer');\n if (obj) {\n this.toolbar.enableItems(this.downloadItem.parentElement, true);\n this.toolbar.enableItems(this.printItem.parentElement, true);\n this.toolbar.enableItems(this.pdfViewerBase.getElement('_currentPageInputContainer'), true);\n this.toolbar.enableItems(this.pdfViewerBase.getElement('_zoomDropDownContainer'), true);\n this.updateUndoRedoButtons();\n this.updateNavigationButtons();\n this.updateZoomButtons();\n if (this.pdfViewer.magnificationModule) {\n this.zoomDropDown.readonly = false;\n }\n this.updateInteractionItems();\n // modify this condition if new annotation types are added.\n if (this.pdfViewer.annotationModule && this.pdfViewer.enableAnnotation) {\n this.toolbar.enableItems(this.annotationItem.parentElement, true);\n }\n if (this.pdfViewer.formDesignerModule && this.pdfViewer.enableFormDesigner) {\n this.toolbar.enableItems(this.formDesignerItem.parentElement, true);\n }\n if (this.pdfViewer.textSearchModule && this.pdfViewer.enableTextSearch) {\n this.toolbar.enableItems(this.textSearchItem.parentElement, true);\n }\n if (this.pdfViewer.annotationModule && this.pdfViewer.enableStickyNotesAnnotation) {\n this.toolbar.enableItems(this.commentItem.parentElement, true);\n }\n }\n }\n if (this.pdfViewer.toolbarSettings.annotationToolbarItems) {\n // eslint-disable-next-line max-len\n if (this.pdfViewer.toolbarSettings.annotationToolbarItems.length === 0 || !this.pdfViewer.annotationModule || !this.pdfViewer.enableAnnotationToolbar) {\n this.enableToolbarItem(['AnnotationEditTool'], false);\n }\n }\n if (this.pdfViewer.toolbarSettings.formDesignerToolbarItems) {\n // eslint-disable-next-line max-len\n if (this.pdfViewer.toolbarSettings.formDesignerToolbarItems.length === 0 || !this.pdfViewer.formDesignerModule || !this.pdfViewer.enableFormDesignerToolbar) {\n this.enableToolbarItem(['FormDesignerEditTool'], false);\n }\n }\n if (!this.pdfViewer.enableDownload) {\n this.enableDownloadOption(false);\n }\n if (!this.pdfViewer.enablePrint) {\n this.enablePrintOption(false);\n }\n }\n }\n else {\n if (this.pdfViewerBase.pageCount === 0) {\n this.toolbar.enableItems(this.textSearchItem.parentElement, false);\n this.toolbar.enableItems(this.moreOptionItem.parentElement, false);\n this.toolbar.enableItems(this.annotationItem.parentElement, false);\n }\n else if (this.pdfViewerBase.pageCount > 0) {\n this.toolbar.enableItems(this.textSearchItem.parentElement, true);\n this.toolbar.enableItems(this.moreOptionItem.parentElement, true);\n if (this.pdfViewer.annotationModule && this.pdfViewer.enableAnnotation) {\n this.toolbar.enableItems(this.annotationItem.parentElement, true);\n }\n if (!this.pdfViewer.annotationModule || !this.pdfViewer.enableAnnotationToolbar) {\n this.enableToolbarItem(['AnnotationEditTool'], false);\n }\n this.updateUndoRedoButtons();\n }\n }\n };\n /**\n * @private\n */\n Toolbar.prototype.updateNavigationButtons = function () {\n if (this.pdfViewer.navigationModule && !this.isPageNavigationToolDisabled) {\n if (this.pdfViewerBase.pageCount === 0 || (this.pdfViewerBase.currentPageNumber === 1 && this.pdfViewerBase.pageCount === 1)) {\n this.toolbar.enableItems(this.firstPageItem.parentElement, false);\n this.toolbar.enableItems(this.previousPageItem.parentElement, false);\n this.toolbar.enableItems(this.nextPageItem.parentElement, false);\n this.toolbar.enableItems(this.lastPageItem.parentElement, false);\n }\n else if (this.pdfViewerBase.currentPageNumber === 1 && this.pdfViewerBase.pageCount > 0) {\n this.toolbar.enableItems(this.firstPageItem.parentElement, false);\n this.toolbar.enableItems(this.previousPageItem.parentElement, false);\n this.toolbar.enableItems(this.nextPageItem.parentElement, true);\n this.toolbar.enableItems(this.lastPageItem.parentElement, true);\n }\n else if (this.pdfViewerBase.currentPageNumber === this.pdfViewerBase.pageCount && this.pdfViewerBase.pageCount > 0) {\n this.toolbar.enableItems(this.firstPageItem.parentElement, true);\n this.toolbar.enableItems(this.previousPageItem.parentElement, true);\n this.toolbar.enableItems(this.nextPageItem.parentElement, false);\n this.toolbar.enableItems(this.lastPageItem.parentElement, false);\n }\n else if (this.pdfViewerBase.currentPageNumber > 1 && this.pdfViewerBase.currentPageNumber < this.pdfViewerBase.pageCount) {\n this.toolbar.enableItems(this.firstPageItem.parentElement, true);\n this.toolbar.enableItems(this.previousPageItem.parentElement, true);\n this.toolbar.enableItems(this.nextPageItem.parentElement, true);\n this.toolbar.enableItems(this.lastPageItem.parentElement, true);\n }\n }\n else {\n this.toolbar.enableItems(this.firstPageItem.parentElement, false);\n this.toolbar.enableItems(this.previousPageItem.parentElement, false);\n this.toolbar.enableItems(this.nextPageItem.parentElement, false);\n this.toolbar.enableItems(this.lastPageItem.parentElement, false);\n this.currentPageBox.readonly = true;\n }\n };\n /**\n * @private\n */\n Toolbar.prototype.updateZoomButtons = function () {\n // eslint-disable-next-line max-len\n if (this.pdfViewer.magnificationModule && !this.isMagnificationToolDisabled && (!Browser.isDevice || this.pdfViewer.enableDesktopMode)) {\n if (this.pdfViewer.magnificationModule.zoomFactor <= 0.1) {\n this.toolbar.enableItems(this.zoomInItem.parentElement, true);\n this.toolbar.enableItems(this.zoomOutItem.parentElement, false);\n }\n else if (this.pdfViewer.magnificationModule.zoomFactor >= 4) {\n this.toolbar.enableItems(this.zoomInItem.parentElement, false);\n this.toolbar.enableItems(this.zoomOutItem.parentElement, true);\n }\n else {\n this.toolbar.enableItems(this.zoomInItem.parentElement, true);\n this.toolbar.enableItems(this.zoomOutItem.parentElement, true);\n }\n }\n };\n /**\n * @private\n */\n Toolbar.prototype.updateUndoRedoButtons = function () {\n if (this.pdfViewer.annotationModule) {\n if (this.pdfViewerBase.pageCount > 0) {\n if (isBlazor()) {\n this.enableCollectionAvailableInBlazor(this.pdfViewer.annotationModule.actionCollection, 'undo');\n this.enableCollectionAvailableInBlazor(this.pdfViewer.annotationModule.redoCollection, 'redo');\n }\n else {\n if (!isNullOrUndefined(this.undoItem) && !isNullOrUndefined(this.undoItem.parentElement)) {\n this.enableCollectionAvailable(this.pdfViewer.annotationModule.actionCollection, this.undoItem.parentElement);\n }\n if (!isNullOrUndefined(this.redoItem) && !isNullOrUndefined(this.redoItem.parentElement)) {\n this.enableCollectionAvailable(this.pdfViewer.annotationModule.redoCollection, this.redoItem.parentElement);\n }\n }\n }\n else {\n if (isBlazor()) {\n //this.pdfViewer._dotnetInstance.invokeMethodAsync('DisableUndoRedoButton', null);\n this.pdfViewerBase.blazorUIAdaptor.disableUndoRedoButton();\n }\n else {\n this.disableUndoRedoButtons();\n }\n }\n }\n else {\n if (isBlazor()) {\n //this.pdfViewer._dotnetInstance.invokeMethodAsync('DisableUndoRedoButton', null);\n this.pdfViewerBase.blazorUIAdaptor.disableUndoRedoButton();\n }\n else {\n this.disableUndoRedoButtons();\n }\n }\n };\n // eslint-disable-next-line\n Toolbar.prototype.enableCollectionAvailable = function (collection, item) {\n if (collection.length > 0) {\n this.toolbar.enableItems(item, true);\n }\n else {\n this.toolbar.enableItems(item, false);\n }\n };\n // eslint-disable-next-line\n Toolbar.prototype.enableCollectionAvailableInBlazor = function (collection, item) {\n if (collection.length > 0) {\n //this.pdfViewer._dotnetInstance.invokeMethodAsync('UpdateUndoRedoButton', item, true);\n this.pdfViewerBase.blazorUIAdaptor.updateUndoRedoButton(item, true);\n }\n else {\n // this.pdfViewer._dotnetInstance.invokeMethodAsync('UpdateUndoRedoButton', item, false);\n this.pdfViewerBase.blazorUIAdaptor.updateUndoRedoButton(item, false);\n }\n };\n Toolbar.prototype.disableUndoRedoButtons = function () {\n this.toolbar.enableItems(this.undoItem.parentElement, false);\n this.toolbar.enableItems(this.redoItem.parentElement, false);\n };\n /**\n * @private\n */\n Toolbar.prototype.destroy = function () {\n if (!isBlazor()) {\n this.unWireEvent();\n this.destroyComponent();\n if (this.moreDropDown) {\n this.moreDropDown.destroy();\n }\n if (this.annotationToolbarModule) {\n this.annotationToolbarModule.destroy();\n }\n if (this.formDesignerToolbarModule) {\n this.formDesignerToolbarModule.destroy();\n }\n if (this.toolbar) {\n this.toolbar.destroy();\n }\n this.toolbarElement.parentElement.removeChild(this.toolbarElement);\n }\n };\n Toolbar.prototype.destroyComponent = function () {\n // eslint-disable-next-line\n var componentElement = [this.openDocumentItem, this.firstPageItem, this.previousPageItem, this.nextPageItem,\n this.lastPageItem, this.currentPageBoxElement, this.zoomOutItem, this.zoomInItem, this.zoomDropdownItem, this.textSelectItem,\n this.panItem, this.submitItem, this.undoItem, this.redoItem, this.commentItem, this.textSearchItem, this.annotationItem,\n this.formDesignerItem, this.printItem, this.downloadItem];\n for (var i = 0; i < componentElement.length; i++) {\n if (componentElement[i]) {\n this.destroyDependentComponent(componentElement[i]);\n }\n }\n };\n Toolbar.prototype.destroyDependentComponent = function (component) {\n if (component.ej2_instances) {\n for (var i = component.ej2_instances.length - 1; i >= 0; i--) {\n component.ej2_instances[i].destroy();\n }\n }\n };\n /**\n * @param pageIndex\n * @private\n */\n Toolbar.prototype.updateCurrentPage = function (pageIndex) {\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n if (!isBlazor()) {\n if (!isNullOrUndefined(this.currentPageBox)) {\n if (this.currentPageBox.value === pageIndex) {\n this.currentPageBoxElement.value = pageIndex.toString();\n }\n this.currentPageBox.value = pageIndex;\n }\n }\n else {\n //this.pdfViewer._dotnetInstance.invokeMethodAsync('OnPageChanged', pageIndex);\n this.pdfViewerBase.blazorUIAdaptor.pageChanged(pageIndex);\n }\n this.pdfViewerBase.currentPageNumber = pageIndex;\n this.pdfViewer.currentPageNumber = pageIndex;\n }\n else {\n this.pdfViewerBase.mobileSpanContainer.innerHTML = pageIndex.toString();\n this.pdfViewerBase.mobilecurrentPageContainer.innerHTML = pageIndex.toString();\n }\n };\n /**\n * @private\n */\n Toolbar.prototype.updateTotalPage = function () {\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n if (this.pdfViewerBase.pageCount > 0) {\n if (!isNullOrUndefined(this.currentPageBox))\n this.currentPageBox.min = 1;\n }\n if (!isNullOrUndefined(this.totalPageItem))\n this.totalPageItem.textContent = this.pdfViewer.localeObj.getConstant('of') + this.pdfViewerBase.pageCount.toString();\n }\n };\n /**\n * @param event\n * @private\n */\n Toolbar.prototype.openFileDialogBox = function (event) {\n event.preventDefault();\n this.fileInputElement.click();\n };\n Toolbar.prototype.createToolbar = function (controlWidth) {\n var _this = this;\n // eslint-disable-next-line max-len\n this.toolbarElement = createElement('div', { id: this.pdfViewer.element.id + '_toolbarContainer', className: 'e-pv-toolbar' });\n this.pdfViewerBase.viewerMainContainer.appendChild(this.toolbarElement);\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.toolbar = new tool({\n clicked: this.toolbarClickHandler, width: '', height: '', overflowMode: 'Popup', cssClass: 'e-pv-toolbar-scroll',\n items: this.createToolbarItems(), created: function () {\n _this.createZoomDropdown();\n _this.createNumericTextBox();\n _this.toolbar.refreshOverflow();\n }\n });\n this.toolbar.isStringTemplate = true;\n if (this.pdfViewer.enableRtl) {\n this.toolbar.enableRtl = true;\n }\n this.toolbar.appendTo(this.toolbarElement);\n this.applyToolbarSettings();\n this.afterToolbarCreation();\n this.updateTotalPage();\n this.toolbarElement.addEventListener('keydown', this.onToolbarKeydown);\n this.toolbarElement.setAttribute('aria-label', 'Toolbar');\n }\n else {\n this.createToolbarItemsForMobile();\n this.afterToolbarCreationInMobile();\n if (this.pdfViewer.enableRtl) {\n this.toolbar.enableRtl = true;\n }\n this.applyToolbarSettingsForMobile();\n this.disableUndoRedoButtons();\n }\n return this.toolbarElement;\n };\n // eslint-disable-next-line\n Toolbar.prototype.createToolbarItems = function () {\n var currentPageInputTemplate = this.createCurrentPageInputTemplate();\n var totalPageTemplate = this.createTotalPageTemplate();\n var zoomDropDownTemplateString = this.createZoomDropdownElement();\n // eslint-disable-next-line\n var items = [];\n var submitButton = '';\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-open-document-icon e-pv-icon', cssClass: 'e-pv-open-document-container', id: this.pdfViewer.element.id + '_open', text: this.pdfViewer.localeObj.getConstant('Open text'), align: 'Left' });\n items.push({ type: 'Separator', align: 'Left', cssClass: 'e-pv-open-separator-container' });\n if (!this.pdfViewer.enableRtl) {\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-first-page-navigation-icon e-pv-icon', cssClass: 'e-pv-first-page-navigation-container', id: this.pdfViewer.element.id + '_firstPage', text: this.pdfViewer.localeObj.getConstant('First text'), align: 'Left' });\n items.push({ prefixIcon: 'e-pv-previous-page-navigation-icon e-pv-icon', cssClass: 'e-pv-previous-page-navigation-container', id: this.pdfViewer.element.id + '_previousPage', text: this.pdfViewer.localeObj.getConstant('Previous text'), align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-next-page-navigation-icon e-pv-icon', cssClass: 'e-pv-next-page-navigation-container', id: this.pdfViewer.element.id + '_nextPage', text: this.pdfViewer.localeObj.getConstant('Next text'), align: 'Left' });\n items.push({ prefixIcon: 'e-pv-last-page-navigation-icon e-pv-icon', cssClass: 'e-pv-last-page-navigation-container', id: this.pdfViewer.element.id + '_lastPage', text: this.pdfViewer.localeObj.getConstant('Last text'), align: 'Left' });\n items.push({ template: currentPageInputTemplate, align: 'Left', cssClass: 'e-pv-current-page-container' });\n items.push({ template: totalPageTemplate, align: 'Left', cssClass: 'e-pv-total-page-container' });\n }\n else {\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-last-page-navigation-icon e-pv-icon', cssClass: 'e-pv-last-page-navigation-container', id: this.pdfViewer.element.id + '_firstPage', text: this.pdfViewer.localeObj.getConstant('First text'), align: 'Left' });\n items.push({ prefixIcon: 'e-pv-next-page-navigation-icon e-pv-icon', cssClass: 'e-pv-next-page-navigation-container', id: this.pdfViewer.element.id + '_previousPage', text: this.pdfViewer.localeObj.getConstant('Previous text'), align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-previous-page-navigation-icon e-pv-icon', cssClass: 'e-pv-previous-page-navigation-container', id: this.pdfViewer.element.id + '_nextPage', text: this.pdfViewer.localeObj.getConstant('Next text'), align: 'Left' });\n items.push({ prefixIcon: 'e-pv-first-page-navigation-icon e-pv-icon', cssClass: 'e-pv-first-page-navigation-container', id: this.pdfViewer.element.id + '_lastPage', text: this.pdfViewer.localeObj.getConstant('Last text'), align: 'Left' });\n items.push({ template: totalPageTemplate, align: 'Left', cssClass: 'e-pv-total-page-container' });\n items.push({ template: currentPageInputTemplate, align: 'Left', cssClass: 'e-pv-current-page-container' });\n }\n items.push({ type: 'Separator', align: 'Left', cssClass: 'e-pv-navigation-separator-container' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-zoom-out-icon e-pv-icon', cssClass: 'e-pv-zoom-out-container', id: this.pdfViewer.element.id + '_zoomOut', text: this.pdfViewer.localeObj.getConstant('Zoom out text'), align: 'Left' });\n items.push({ prefixIcon: 'e-pv-zoom-in-icon e-pv-icon', cssClass: 'e-pv-zoom-in-container', id: this.pdfViewer.element.id + '_zoomIn', text: this.pdfViewer.localeObj.getConstant('Zoom in text'), align: 'Left' });\n items.push({ template: zoomDropDownTemplateString, cssClass: 'e-pv-zoom-drop-down-container', align: 'Left' });\n items.push({ type: 'Separator', align: 'Left', cssClass: 'e-pv-magnification-separator-container' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-text-select-tool-icon e-pv-icon', cssClass: 'e-pv-text-select-tool-container', id: this.pdfViewer.element.id + '_selectTool', text: this.pdfViewer.localeObj.getConstant('Selection text') });\n items.push({ prefixIcon: 'e-pv-pan-tool-icon e-pv-icon', cssClass: 'e-pv-pan-tool-container', id: this.pdfViewer.element.id + '_handTool', text: this.pdfViewer.localeObj.getConstant('Pan text') });\n items.push({ type: 'Separator', align: 'Left', cssClass: 'e-pv-pan-separator-container' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-undo-icon e-pv-icon', cssClass: 'e-pv-undo-container', id: this.pdfViewer.element.id + '_undo', text: this.pdfViewer.localeObj.getConstant('Undo'), align: 'Left' });\n items.push({ prefixIcon: 'e-pv-redo-icon e-pv-icon', cssClass: 'e-pv-redo-container', id: this.pdfViewer.element.id + '_redo', text: this.pdfViewer.localeObj.getConstant('Redo'), align: 'Left' });\n items.push({ type: 'Separator', align: 'Left', cssClass: 'e-pv-undo-separator-container' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-comment-icon e-pv-icon', cssClass: 'e-pv-comment-container', id: this.pdfViewer.element.id + '_comment', text: this.pdfViewer.localeObj.getConstant('Add Comments'), align: 'Left' });\n items.push({ type: 'Separator', align: 'Left', cssClass: 'e-pv-comment-separator-container' });\n items.push({ template: submitButton, cssClass: 'e-pv-submit', align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-text-search-icon e-pv-icon', cssClass: 'e-pv-text-search-container', id: this.pdfViewer.element.id + '_search', text: this.pdfViewer.localeObj.getConstant('Search text'), align: 'Right' });\n items.push({ prefixIcon: 'e-pv-annotation-icon e-pv-icon', cssClass: 'e-pv-annotation-container', id: this.pdfViewer.element.id + '_annotation', text: this.pdfViewer.localeObj.getConstant('Annotation Edit text'), align: 'Right' });\n items.push({ prefixIcon: 'e-pv-formdesigner-icon e-pv-icon', cssClass: 'e-pv-formdesigner-container', id: this.pdfViewer.element.id + '_formdesigner', text: this.pdfViewer.localeObj.getConstant('FormDesigner Edit text'), align: 'Right' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-print-document-icon e-pv-icon', cssClass: 'e-pv-print-document-container', id: this.pdfViewer.element.id + '_print', text: this.pdfViewer.localeObj.getConstant('Print text'), align: 'Right' });\n items.push({ prefixIcon: 'e-pv-download-document-icon e-pv-icon', cssClass: 'e-pv-download-document-container', id: this.pdfViewer.element.id + '_download', text: this.pdfViewer.localeObj.getConstant('Download'), align: 'Right' });\n return items;\n };\n Toolbar.prototype.afterToolbarCreationInMobile = function () {\n this.itemsContainer = this.toolbar.element.childNodes[0];\n this.itemsContainer.id = this.pdfViewer.element.id + '_toolbarItemsContainer';\n this.openDocumentItem = this.addClassToolbarItem('_open', 'e-pv-open-document', this.pdfViewer.localeObj.getConstant('Open'));\n this.undoItem = this.addClassToolbarItem('_undo', 'e-pv-undo', this.pdfViewer.localeObj.getConstant('Undo'));\n this.redoItem = this.addClassToolbarItem('_redo', 'e-pv-redo', this.pdfViewer.localeObj.getConstant('Redo'));\n this.annotationItem = this.addClassToolbarItem('_annotation', 'e-pv-annotation', this.pdfViewer.localeObj.getConstant('Annotation'));\n this.textSearchItem = this.addClassToolbarItem('_search', 'e-pv-text-search', this.pdfViewer.localeObj.getConstant('Text Search'));\n };\n Toolbar.prototype.afterToolbarCreation = function () {\n this.itemsContainer = this.toolbar.element.childNodes[0];\n this.itemsContainer.id = this.pdfViewer.element.id + '_toolbarItemsContainer';\n this.openDocumentItem = this.addClassToolbarItem('_open', 'e-pv-open-document', this.pdfViewer.localeObj.getConstant('Open'));\n this.undoItem = this.addClassToolbarItem('_undo', 'e-pv-undo', this.pdfViewer.localeObj.getConstant('Undo'));\n this.redoItem = this.addClassToolbarItem('_redo', 'e-pv-redo', this.pdfViewer.localeObj.getConstant('Redo'));\n if (!this.pdfViewer.enableRtl) {\n // eslint-disable-next-line max-len\n this.firstPageItem = this.addClassToolbarItem('_firstPage', 'e-pv-first-page-navigation', this.pdfViewer.localeObj.getConstant('Go To First Page'));\n this.previousPageItem = this.addClassToolbarItem('_previousPage', 'e-pv-previous-page-navigation', this.pdfViewer.localeObj.getConstant('Previous Page'));\n // eslint-disable-next-line max-len\n this.nextPageItem = this.addClassToolbarItem('_nextPage', 'e-pv-next-page-navigation', this.pdfViewer.localeObj.getConstant('Next Page'));\n this.lastPageItem = this.addClassToolbarItem('_lastPage', 'e-pv-last-page-navigation', this.pdfViewer.localeObj.getConstant('Go To Last Page'));\n }\n else {\n // eslint-disable-next-line max-len\n this.firstPageItem = this.addClassToolbarItem('_firstPage', 'e-pv-last-page-navigation', this.pdfViewer.localeObj.getConstant('Go To First Page'));\n this.previousPageItem = this.addClassToolbarItem('_previousPage', 'e-pv-next-page-navigation', this.pdfViewer.localeObj.getConstant('Previous Page'));\n // eslint-disable-next-line max-len\n this.nextPageItem = this.addClassToolbarItem('_nextPage', 'e-pv-previous-page-navigation', this.pdfViewer.localeObj.getConstant('Next Page'));\n this.lastPageItem = this.addClassToolbarItem('_lastPage', 'e-pv-first-page-navigation', this.pdfViewer.localeObj.getConstant('Go To Last Page'));\n }\n this.zoomOutItem = this.addClassToolbarItem('_zoomOut', 'e-pv-zoom-out', this.pdfViewer.localeObj.getConstant('Zoom Out'));\n this.zoomInItem = this.addClassToolbarItem('_zoomIn', 'e-pv-zoom-in', this.pdfViewer.localeObj.getConstant('Zoom In'));\n // eslint-disable-next-line max-len\n this.textSelectItem = this.addClassToolbarItem('_selectTool', 'e-pv-text-select-tool', this.pdfViewer.localeObj.getConstant('Text Selection'));\n this.panItem = this.addClassToolbarItem('_handTool', 'e-pv-pan-tool', this.pdfViewer.localeObj.getConstant('Panning'));\n this.commentItem = this.addClassToolbarItem('_comment', 'e-pv-comment', this.pdfViewer.localeObj.getConstant('Add Comments'));\n // eslint-disable-next-line max-len\n this.textSearchItem = this.addClassToolbarItem('_search', 'e-pv-text-search', this.pdfViewer.localeObj.getConstant('Text Search'));\n this.textSearchItem.setAttribute('aria-label', this.pdfViewer.localeObj.getConstant('Search text'));\n this.annotationItem = this.addClassToolbarItem('_annotation', 'e-pv-annotation', this.pdfViewer.localeObj.getConstant('Annotation'));\n this.annotationItem.setAttribute('aria-label', this.pdfViewer.localeObj.getConstant('Annotation Edit text'));\n this.formDesignerItem = this.addClassToolbarItem('_formdesigner', 'e-pv-formdesigner', this.pdfViewer.localeObj.getConstant('FormDesigner'));\n // eslint-disable-next-line max-len\n this.printItem = this.addClassToolbarItem('_print', 'e-pv-print-document', this.pdfViewer.localeObj.getConstant('Print'));\n this.downloadItem = this.addClassToolbarItem('_download', 'e-pv-download-document', this.pdfViewer.localeObj.getConstant('Download file'));\n this.zoomDropdownItem = this.pdfViewerBase.getElement('_zoomDropDown');\n this.createTooltip(this.zoomDropdownItem, this.pdfViewer.localeObj.getConstant('Zoom'));\n this.zoomDropdownItem.setAttribute('aria-label', this.pdfViewer.localeObj.getConstant('Zoom'));\n // eslint-disable-next-line max-len\n this.addPropertiesToolItemContainer(this.zoomDropdownItem.parentElement.parentElement, null, '_zoomDropDownContainer');\n this.pdfViewerBase.getElement('_zoomDropDownContainer').style.minWidth = '';\n this.createTooltip(this.currentPageBoxElement, this.pdfViewer.localeObj.getConstant('Page Number'));\n this.currentPageBoxElement.setAttribute('aria-label', this.pdfViewer.localeObj.getConstant('Page Number'));\n this.submitItem = this.pdfViewerBase.getElement('_submitForm');\n this.addPropertiesToolItemContainer(this.submitItem.parentElement, 'e-pv-submit', '_submitFormContainer');\n this.createTooltip(this.submitItem, this.pdfViewer.localeObj.getConstant('SubmitForm'));\n // eslint-disable-next-line max-len\n this.addPropertiesToolItemContainer(this.currentPageBoxElement.parentElement.parentElement, 'e-pv-current-page-container', '_currentPageInputContainer');\n this.pdfViewerBase.getElement('_currentPageInputContainer').style.minWidth = '20px';\n this.totalPageItem = this.pdfViewerBase.getElement('_totalPage');\n this.addPropertiesToolItemContainer(this.totalPageItem.parentElement, 'e-pv-total-page-container', '_totalPageContainer');\n };\n /**\n * @param idString\n * @param className\n * @param tooltipText\n * @param idString\n * @param className\n * @param tooltipText\n * @private\n */\n Toolbar.prototype.addClassToolbarItem = function (idString, className, tooltipText) {\n var element = this.pdfViewerBase.getElement(idString);\n element.classList.add(className);\n element.classList.add('e-pv-tbar-btn');\n element.setAttribute('aria-label', tooltipText);\n element.parentElement.classList.add(className + '-container');\n element.parentElement.classList.add('e-popup-text');\n element.parentElement.id = this.pdfViewer.element.id + idString + 'Container';\n if (element.childNodes.length > 0) {\n var spanElement = element.childNodes[0];\n spanElement.id = this.pdfViewer.element.id + idString + 'Icon';\n spanElement.classList.remove('e-icons');\n spanElement.classList.remove('e-btn-icon');\n if (this.pdfViewer.enableRtl) {\n spanElement.classList.add('e-right');\n }\n var textElement = element.childNodes[1];\n if (textElement) {\n if (textElement.classList.contains('e-tbar-btn-text')) {\n textElement.id = this.pdfViewer.element.id + idString + 'Text';\n }\n }\n }\n element.style.width = '';\n this.createTooltip(element, tooltipText);\n return element;\n };\n Toolbar.prototype.addPropertiesToolItemContainer = function (element, className, idString) {\n if (className !== null) {\n element.classList.add(className);\n }\n element.classList.add('e-popup-text');\n element.id = this.pdfViewer.element.id + idString;\n };\n Toolbar.prototype.createZoomDropdownElement = function () {\n // eslint-disable-next-line max-len\n var zoomDropdownElement = this.createToolbarItem('input', this.pdfViewer.element.id + '_zoomDropDown', null);\n return zoomDropdownElement.outerHTML;\n };\n Toolbar.prototype.createZoomDropdown = function () {\n var proxy = this;\n // eslint-disable-next-line max-len\n var items = [{ percent: '10%', id: '0' }, { percent: '25%', id: '1' }, { percent: '50%', id: '2' }, { percent: '75%', id: '3' }, { percent: '100%', id: '4' }, { percent: '125%', id: '5' },\n // eslint-disable-next-line max-len\n { percent: '150%', id: '6' }, { percent: '200%', id: '7' }, { percent: '400%', id: '8' }, { percent: proxy.pdfViewer.localeObj.getConstant('Fit Page'), id: '9' }, { percent: proxy.pdfViewer.localeObj.getConstant('Fit Width'), id: '10' }, { percent: proxy.pdfViewer.localeObj.getConstant('Automatic'), id: '11' }\n ];\n // eslint-disable-next-line max-len\n if (!proxy.pdfViewer.enableRtl) {\n proxy.zoomDropDown = new ComboBox({ dataSource: items, text: '100%', fields: { text: 'percent', value: 'id' }, readonly: true, cssClass: 'e-pv-zoom-drop-down', popupHeight: '450px', showClearButton: false, open: proxy.openZoomDropdown.bind(proxy), select: function (args) {\n if (args.e.type == 'keydown' && args.itemData.percent !== proxy.zoomDropDown.element.value) {\n proxy.zoomDropDownChange(proxy.zoomDropDown.element.value);\n args.cancel = true;\n }\n }\n });\n }\n else {\n proxy.zoomDropDown = new ComboBox({ dataSource: items, text: '100%', enableRtl: true, fields: { text: 'percent', value: 'id' }, readonly: true, cssClass: 'e-pv-zoom-drop-down-rtl', popupHeight: '450px', showClearButton: false, open: proxy.openZoomDropdown.bind(proxy), select: function (args) {\n if (args.e.type == 'keydown' && args.itemData.percent !== proxy.zoomDropDown.element.value) {\n proxy.zoomDropDownChange(proxy.zoomDropDown.element.value);\n args.cancel = true;\n }\n }\n });\n }\n proxy.zoomDropDown.appendTo(proxy.pdfViewerBase.getElement('_zoomDropDown'));\n };\n Toolbar.prototype.createCurrentPageInputTemplate = function () {\n // eslint-disable-next-line max-len\n var goToPageElement = this.createToolbarItem('input', this.pdfViewer.element.id + '_currentPageInput', null);\n return goToPageElement.outerHTML;\n };\n Toolbar.prototype.createTotalPageTemplate = function () {\n // eslint-disable-next-line max-len\n var totalPageElement = this.createToolbarItem('span', this.pdfViewer.element.id + '_totalPage', 'e-pv-total-page');\n return totalPageElement.outerHTML;\n };\n Toolbar.prototype.createNumericTextBox = function () {\n this.currentPageBox = new NumericTextBox({ value: 0, format: '##', cssClass: 'e-pv-current-page-box', showSpinButton: false });\n this.currentPageBoxElement = this.pdfViewerBase.getElement('_currentPageInput');\n this.currentPageBox.appendTo(this.currentPageBoxElement);\n };\n Toolbar.prototype.createToolbarItemsForMobile = function () {\n this.toolbarElement.classList.add('e-pv-mobile-toolbar');\n var template = '';\n this.toolbar = new tool({\n // eslint-disable-next-line max-len\n items: [{ prefixIcon: 'e-pv-open-document-icon e-pv-icon', tooltipText: this.pdfViewer.localeObj.getConstant('Open'), id: this.pdfViewer.element.id + '_open' },\n { type: 'Separator', align: 'Left' },\n // eslint-disable-next-line max-len\n { prefixIcon: 'e-pv-undo-icon e-pv-icon', tooltipText: this.pdfViewer.localeObj.getConstant('Undo'), id: this.pdfViewer.element.id + '_undo' },\n // eslint-disable-next-line max-len\n { prefixIcon: 'e-pv-redo-icon e-pv-icon', tooltipText: this.pdfViewer.localeObj.getConstant('Redo'), id: this.pdfViewer.element.id + '_redo' },\n // eslint-disable-next-line max-len\n { prefixIcon: 'e-pv-annotation-icon e-pv-icon', cssClass: 'e-pv-annotation-container', tooltipText: this.pdfViewer.localeObj.getConstant('Annotation'), id: this.pdfViewer.element.id + '_annotation', align: 'Right' },\n // eslint-disable-next-line max-len\n { prefixIcon: 'e-pv-text-search-icon e-pv-icon', tooltipText: this.pdfViewer.localeObj.getConstant('Text Search'), id: this.pdfViewer.element.id + '_search', align: 'Right' },\n { template: template, align: 'Right' }\n ], clicked: this.toolbarClickHandler, width: '', height: '', overflowMode: 'Popup'\n });\n this.toolbar.isStringTemplate = true;\n this.toolbar.appendTo(this.toolbarElement);\n this.openDocumentItem = this.pdfViewerBase.getElement('_open');\n this.openDocumentItem.classList.add('e-pv-open-document');\n this.openDocumentItem.firstElementChild.id = this.pdfViewer.element.id + '_openIcon';\n this.annotationItem = this.pdfViewerBase.getElement('_annotation');\n this.annotationItem.classList.add('e-pv-annotation');\n this.annotationItem.firstElementChild.id = this.pdfViewer.element.id + '_annotationIcon';\n this.textSearchItem = this.pdfViewerBase.getElement('_search');\n this.textSearchItem.classList.add('e-pv-text-search');\n this.textSearchItem.firstElementChild.id = this.pdfViewer.element.id + '_searchIcon';\n this.undoItem = this.pdfViewerBase.getElement('_undo');\n this.undoItem.classList.add('e-pv-undo');\n this.redoItem = this.pdfViewerBase.getElement('_redo');\n this.redoItem.classList.add('e-pv-redo');\n this.redoItem.firstElementChild.id = this.pdfViewer.element.id + '_redoIcon';\n this.undoItem.firstElementChild.id = this.pdfViewer.element.id + '_undoIcon';\n this.createMoreOption(this.pdfViewer.element.id + '_more_option');\n };\n Toolbar.prototype.createMoreOption = function (idString) {\n var _this = this;\n this.moreOptionItem = document.getElementById(idString);\n var items = [\n {\n text: this.pdfViewer.localeObj.getConstant('Download'), id: this.pdfViewer.element.id + '_menu_download',\n iconCss: 'e-icons e-pv-download-document-icon e-pv-icon'\n },\n {\n text: this.pdfViewer.localeObj.getConstant('Bookmarks'), id: this.pdfViewer.element.id + '_menu_bookmarks',\n iconCss: 'e-icons e-pv-bookmark-icon e-pv-icon'\n }\n ];\n this.moreDropDown = new DropDownButton({\n items: items, iconCss: 'e-pv-more-icon e-pv-icon', cssClass: 'e-caret-hide',\n open: function (args) {\n var dropdownButtonPosition = _this.moreDropDown.element.getBoundingClientRect();\n // eslint-disable-next-line max-len\n if (!_this.pdfViewer.enableRtl) {\n args.element.parentElement.style.left = dropdownButtonPosition.left + dropdownButtonPosition.width - args.element.parentElement.offsetWidth + 'px';\n }\n }, select: function (args) {\n switch (args.item.id) {\n case _this.pdfViewer.element.id + '_menu_download':\n _this.pdfViewerBase.download();\n break;\n case _this.pdfViewer.element.id + '_menu_bookmarks':\n _this.showToolbar(false);\n _this.pdfViewerBase.navigationPane.createNavigationPaneMobile('bookmarks');\n break;\n default:\n break;\n }\n }, beforeItemRender: function (args) {\n if (args.item.id === _this.pdfViewer.element.id + '_menu_bookmarks') {\n if (!_this.pdfViewer.bookmarkViewModule || !_this.pdfViewer.bookmarkViewModule.bookmarks) {\n args.element.classList.add('e-disabled');\n }\n else {\n args.element.classList.remove('e-disabled');\n }\n }\n }, close: function (args) {\n _this.moreOptionItem.blur();\n _this.pdfViewerBase.focusViewerContainer();\n }\n });\n this.moreDropDown.appendTo('#' + idString);\n };\n Toolbar.prototype.createToolbarItem = function (elementName, id, className) {\n var toolbarItem = createElement(elementName, { id: id });\n if (className !== null) {\n toolbarItem.className = className;\n }\n if (elementName === 'input' && id !== this.pdfViewer.element.id + '_zoomDropDown') {\n toolbarItem.type = 'text';\n }\n return toolbarItem;\n };\n /**\n * @param toolbarItem\n * @param tooltipText\n * @param toolbarItem\n * @param tooltipText\n * @private\n */\n Toolbar.prototype.createTooltip = function (toolbarItem, tooltipText) {\n if (tooltipText !== null) {\n // eslint-disable-next-line\n var tooltip = new Tooltip({ content: tooltipText, opensOn: 'Hover', beforeOpen: this.onTooltipBeforeOpen.bind(this) });\n tooltip.appendTo(toolbarItem);\n }\n };\n Toolbar.prototype.onTooltipBeforeOpen = function (args) {\n if (!this.pdfViewer.toolbarSettings.showTooltip && this.toolbarElement.contains(args.target)) {\n args.cancel = true;\n }\n if (this.annotationToolbarModule) {\n // eslint-disable-next-line max-len\n if (!this.pdfViewer.toolbarSettings.showTooltip && ((this.annotationToolbarModule.toolbarElement && this.annotationToolbarModule.toolbarElement.contains(args.target)) || (this.annotationToolbarModule.shapeToolbarElement && this.annotationToolbarModule.shapeToolbarElement.contains(args.target)))) {\n args.cancel = true;\n }\n }\n if (this.formDesignerToolbarModule) {\n // eslint-disable-next-line max-len\n if (!this.pdfViewer.toolbarSettings.showTooltip && (this.formDesignerToolbarModule.toolbarElement && this.formDesignerToolbarModule.toolbarElement.contains(args.target))) {\n args.cancel = true;\n }\n }\n };\n Toolbar.prototype.createFileElement = function (toolbarElement) {\n if (toolbarElement) {\n if (!isBlazor()) {\n // eslint-disable-next-line max-len\n this.fileInputElement = createElement('input', { id: this.pdfViewer.element.id + '_fileUploadElement', styles: 'position:fixed; left:-100em', attrs: { 'type': 'file' } });\n this.fileInputElement.setAttribute('accept', '.pdf');\n this.fileInputElement.setAttribute('aria-label', 'file upload element');\n }\n else {\n this.fileInputElement = this.pdfViewer.element.querySelector('.e-pv-fileupload-element');\n }\n if (toolbarElement) {\n toolbarElement.appendChild(this.fileInputElement);\n }\n }\n };\n Toolbar.prototype.wireEvent = function () {\n if (this.fileInputElement) {\n this.fileInputElement.addEventListener('change', this.loadDocument);\n }\n if (!isBlazor()) {\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.toolbarElement.addEventListener('mouseup', this.toolbarOnMouseup.bind(this));\n this.currentPageBoxElement.addEventListener('focusout', this.textBoxFocusOut);\n this.currentPageBoxElement.addEventListener('keypress', this.navigateToPage);\n this.zoomDropDown.change = this.zoomPercentSelect.bind(this);\n this.zoomDropDown.element.addEventListener('keypress', this.onZoomDropDownInput.bind(this));\n this.zoomDropDown.element.addEventListener('click', this.onZoomDropDownInputClick.bind(this));\n }\n }\n };\n Toolbar.prototype.unWireEvent = function () {\n if (this.fileInputElement) {\n this.fileInputElement.removeEventListener('change', this.loadDocument);\n }\n if ((!Browser.isDevice || this.pdfViewer.enableDesktopMode) && !isBlazor()) {\n if (!isNullOrUndefined(this.toolbarElement)) {\n this.toolbarElement.removeEventListener('mouseup', this.toolbarOnMouseup.bind(this));\n }\n if (!isNullOrUndefined(this.currentPageBoxElement)) {\n this.currentPageBoxElement.removeEventListener('focusout', this.textBoxFocusOut);\n this.currentPageBoxElement.removeEventListener('keypress', this.navigateToPage);\n }\n if (!isNullOrUndefined(this.zoomDropDown)) {\n this.zoomDropDown.removeEventListener('change', this.zoomPercentSelect);\n this.zoomDropDown.element.removeEventListener('keypress', this.onZoomDropDownInput);\n this.zoomDropDown.element.removeEventListener('click', this.onZoomDropDownInputClick);\n }\n }\n };\n /**\n * @param viewerWidth\n * @private\n */\n Toolbar.prototype.onToolbarResize = function (viewerWidth) {\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n this.pdfViewerBase.navigationPane.toolbarResize();\n }\n else {\n if (!isNullOrUndefined(this.toolbar)) {\n this.toolbar.refreshOverflow();\n }\n }\n };\n Toolbar.prototype.toolbarOnMouseup = function (event) {\n if (event.target === this.itemsContainer || event.target === this.toolbarElement) {\n this.pdfViewerBase.focusViewerContainer();\n }\n };\n Toolbar.prototype.applyHideToToolbar = function (show, startIndex, endIndex) {\n var isHide = !show;\n for (var index = startIndex; index <= endIndex; index++) {\n if (this.toolbar.items[index]) {\n var className = this.toolbar.items[index].cssClass;\n if (className && className !== '') {\n // Querying the toolbar item\n var element = this.toolbar.element.querySelector('.' + className);\n if (element) {\n this.toolbar.hideItem(element, isHide);\n }\n }\n else {\n this.toolbar.hideItem(index, isHide);\n }\n }\n }\n };\n Toolbar.prototype.handleOpenIconClick = function (args) {\n this.fileInputElement.click();\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n if (!isBlazor()) {\n args.originalEvent.target.blur();\n }\n this.pdfViewerBase.focusViewerContainer();\n }\n };\n // eslint-disable-next-line\n Toolbar.prototype.handleToolbarBtnClick = function (args) {\n this.addInkAnnotation();\n this.deSelectCommentAnnotation();\n switch (args.originalEvent.target.id) {\n case this.pdfViewer.element.id + '_open':\n case this.pdfViewer.element.id + '_openIcon':\n case this.pdfViewer.element.id + '_openText':\n this.handleOpenIconClick(args);\n break;\n case this.pdfViewer.element.id + '_download':\n case this.pdfViewer.element.id + '_downloadIcon':\n case this.pdfViewer.element.id + '_downloadText':\n this.pdfViewerBase.download();\n break;\n case this.pdfViewer.element.id + '_print':\n case this.pdfViewer.element.id + '_printIcon':\n case this.pdfViewer.element.id + '_printText':\n if (this.pdfViewer.printModule) {\n this.pdfViewer.firePrintStart();\n }\n break;\n case this.pdfViewer.element.id + '_undo':\n case this.pdfViewer.element.id + '_undoIcon':\n case this.pdfViewer.element.id + '_undoText':\n if (this.pdfViewer.annotationModule) {\n this.pdfViewer.annotationModule.undo();\n }\n break;\n case this.pdfViewer.element.id + '_redo':\n case this.pdfViewer.element.id + '_redoIcon':\n case this.pdfViewer.element.id + '_redoText':\n if (this.pdfViewer.annotationModule) {\n this.pdfViewer.annotationModule.redo();\n }\n break;\n case this.pdfViewer.element.id + '_firstPage':\n case this.pdfViewer.element.id + '_firstPageIcon':\n case this.pdfViewer.element.id + '_firstPageText':\n if (this.pdfViewer.navigationModule) {\n this.pdfViewer.navigationModule.goToFirstPage();\n }\n break;\n case this.pdfViewer.element.id + '_previousPage':\n case this.pdfViewer.element.id + '_previousPageIcon':\n case this.pdfViewer.element.id + '_previousPageText':\n if (this.pdfViewer.navigationModule) {\n this.pdfViewer.navigationModule.goToPreviousPage();\n }\n break;\n case this.pdfViewer.element.id + '_nextPage':\n case this.pdfViewer.element.id + '_nextPageIcon':\n case this.pdfViewer.element.id + '_nextPageText':\n if (this.pdfViewer.navigationModule) {\n this.pdfViewer.navigationModule.goToNextPage();\n }\n break;\n case this.pdfViewer.element.id + '_lastPage':\n case this.pdfViewer.element.id + '_lastPageIcon':\n case this.pdfViewer.element.id + '_lastPageText':\n if (this.pdfViewer.navigationModule) {\n this.pdfViewer.navigationModule.goToLastPage();\n }\n break;\n case this.pdfViewer.element.id + '_zoomIn':\n case this.pdfViewer.element.id + '_zoomInIcon':\n case this.pdfViewer.element.id + '_zoomInText':\n this.pdfViewer.magnificationModule.zoomIn();\n break;\n case this.pdfViewer.element.id + '_zoomOut':\n case this.pdfViewer.element.id + '_zoomOutIcon':\n case this.pdfViewer.element.id + '_zoomOutText':\n this.pdfViewer.magnificationModule.zoomOut();\n break;\n case this.pdfViewer.element.id + '_selectTool':\n case this.pdfViewer.element.id + '_selectToolIcon':\n case this.pdfViewer.element.id + '_selectToolText':\n if (!this.isSelectionToolDisabled) {\n this.pdfViewerBase.initiateTextSelectMode();\n this.updateInteractionTools(true);\n }\n break;\n case this.pdfViewer.element.id + '_handTool':\n case this.pdfViewer.element.id + '_handToolIcon':\n case this.pdfViewer.element.id + '_handToolText':\n if (!(this.isScrollingToolDisabled || this.getStampMode())) {\n this.pdfViewerBase.initiatePanning();\n this.updateInteractionTools(false);\n }\n break;\n case this.pdfViewer.element.id + '_search':\n case this.pdfViewer.element.id + '_searchIcon':\n case this.pdfViewer.element.id + '_searchText':\n this.textSearchButtonHandler();\n break;\n case this.pdfViewer.element.id + '_annotation':\n case this.pdfViewer.element.id + '_annotationIcon':\n case this.pdfViewer.element.id + '_annotationText':\n this.initiateAnnotationMode(args.originalEvent.target.id);\n break;\n case this.pdfViewer.element.id + '_formdesigner':\n case this.pdfViewer.element.id + '_formdesignerIcon':\n case this.pdfViewer.element.id + '_formdesignerText':\n this.initiateFormDesignerMode();\n this.formDesignerToolbarModule.showHideDeleteIcon(false);\n break;\n case this.pdfViewer.element.id + '_comment':\n case this.pdfViewer.element.id + '_commentIcon':\n this.pdfViewerBase.isAddComment = true;\n this.pdfViewerBase.isCommentIconAdded = true;\n this.annotationToolbarModule.deselectAllItems();\n this.pdfViewer.annotation.triggerAnnotationUnselectEvent();\n this.addComments(args.originalEvent.target);\n break;\n case this.pdfViewer.element.id + '_submitForm':\n case this.pdfViewer.element.id + '_submitFormSpan':\n var data = void 0;\n this.pdfViewerBase.exportFormFields(data, FormFieldDataFormat.Json);\n break;\n }\n };\n Toolbar.prototype.addInkAnnotation = function () {\n if (this.pdfViewer.annotationModule && this.pdfViewer.annotationModule.inkAnnotationModule) {\n // eslint-disable-next-line\n var currentPageNumber = parseInt(this.pdfViewer.annotationModule.inkAnnotationModule.currentPageNumber);\n this.pdfViewer.annotationModule.inkAnnotationModule.drawInkAnnotation(currentPageNumber);\n }\n if (this.annotationToolbarModule) {\n this.pdfViewer.toolbar.annotationToolbarModule.deselectInkAnnotation();\n this.annotationToolbarModule.inkAnnotationSelected = false;\n }\n };\n Toolbar.prototype.deSelectCommentAnnotation = function () {\n if (!isBlazor()) {\n this.pdfViewer.toolbar.deSelectItem(this.commentItem);\n }\n else {\n this.pdfViewer.toolbar.deSelectItem(this.CommentElement);\n }\n this.pdfViewerBase.isCommentIconAdded = false;\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n Toolbar.prototype.addComments = function (targetElement) {\n if (!isBlazor()) {\n // eslint-disable-next-line max-len\n if (targetElement.id === this.pdfViewer.element.id + '_comment' || targetElement.id === this.pdfViewer.element.id + '_commentIcon') {\n if (targetElement.id === this.pdfViewer.element.id + '_commentIcon' && targetElement.parentElement) {\n targetElement.parentElement.classList.add('e-pv-select');\n }\n else {\n targetElement.classList.add('e-pv-select');\n }\n }\n else {\n if (this.pdfViewer.enableRtl) {\n targetElement.className = 'e-pv-comment-selection-icon e-pv-icon e-icon-left e-right';\n }\n else {\n targetElement.className = 'e-pv-comment-selection-icon e-pv-icon e-icon-left';\n }\n }\n }\n else {\n this.pdfViewerBase.isCommentIconAdded = true;\n this.pdfViewerBase.isAddComment = true;\n this.annotationToolbarModule.deselectAllItemsInBlazor();\n var commentsButton = this.CommentElement;\n commentsButton.classList.add('e-pv-select');\n }\n this.updateStampItems();\n document.getElementById(this.pdfViewer.element.id + '_pageDiv_' + (this.pdfViewerBase.currentPageNumber - 1)).addEventListener('mousedown', this.pdfViewer.annotationModule.stickyNotesAnnotationModule.drawIcons.bind(this));\n };\n Toolbar.prototype.openZoomDropdown = function () {\n var toolbarData = this;\n if (document.fullscreen) {\n if (isBlazor()) {\n // eslint-disable-next-line\n var fullscreenElement = document.fullscreenElement;\n if (fullscreenElement && fullscreenElement.tagName !== 'BODY' && fullscreenElement.tagName !== 'HTML') {\n setTimeout(function () {\n // eslint-disable-next-line\n var popupElement = document.getElementById(toolbarData.pdfViewer.element.id + \"_zoomCombo_popup\");\n var targetElement = document.getElementById(toolbarData.toolbarElement.id);\n // eslint-disable-next-line\n if (popupElement && targetElement && popupElement.ej2_instances) {\n targetElement.appendChild(popupElement);\n popupElement.ej2_instances[0].refreshPosition();\n }\n }, 100);\n }\n }\n else {\n var popupElement = document.getElementById(this.pdfViewer.element.id + \"_zoomDropDown_popup\");\n var targetElement = document.getElementById(this.toolbarElement.id);\n if (popupElement) {\n targetElement.appendChild(popupElement);\n }\n }\n }\n };\n Toolbar.prototype.onZoomDropDownInput = function (event) {\n if ((event.which < 48 || event.which > 57) && event.which !== 8 && event.which !== 13) {\n event.preventDefault();\n return false;\n }\n else {\n if (event.which === 13) {\n event.preventDefault();\n var value = this.zoomDropDown.element.value;\n this.zoomDropDownChange(value);\n }\n return true;\n }\n };\n Toolbar.prototype.onZoomDropDownInputClick = function () {\n this.zoomDropDown.element.select();\n };\n Toolbar.prototype.zoomPercentSelect = function (args) {\n if (this.pdfViewerBase.pageCount > 0) {\n if (args.isInteracted) {\n if (args.itemData) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var zoomText = args.itemData.percent;\n this.zoomDropDownChange(zoomText);\n }\n }\n else {\n this.updateZoomPercentage(this.pdfViewer.magnificationModule.zoomFactor);\n }\n }\n };\n Toolbar.prototype.zoomDropDownChange = function (zoomText) {\n // eslint-disable-next-line max-len\n if (zoomText !== this.pdfViewer.localeObj.getConstant('Fit Width') && zoomText !== this.pdfViewer.localeObj.getConstant('Fit Page') && zoomText !== this.pdfViewer.localeObj.getConstant('Automatic')) {\n this.pdfViewer.magnificationModule.isAutoZoom = false;\n this.pdfViewer.magnificationModule.zoomTo(parseFloat(zoomText));\n this.updateZoomPercentage(this.pdfViewer.magnificationModule.zoomFactor);\n this.zoomDropDown.focusOut();\n }\n else if (zoomText === this.pdfViewer.localeObj.getConstant('Fit Width')) {\n this.pdfViewer.magnificationModule.isAutoZoom = false;\n this.pdfViewer.magnificationModule.fitToWidth();\n this.zoomDropDown.focusOut();\n }\n else if (zoomText === this.pdfViewer.localeObj.getConstant('Fit Page')) {\n this.pdfViewer.magnificationModule.fitToPage();\n this.zoomDropDown.focusOut();\n }\n else if (zoomText === this.pdfViewer.localeObj.getConstant('Automatic')) {\n this.pdfViewer.magnificationModule.isAutoZoom = true;\n this.pdfViewer.magnificationModule.fitToAuto();\n this.zoomDropDown.focusOut();\n }\n };\n /**\n * @param zoomFactor\n * @private\n */\n Toolbar.prototype.updateZoomPercentage = function (zoomFactor) {\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n // eslint-disable-next-line radix\n var currentPercent = parseInt((zoomFactor * 100).toString()) + '%';\n if (isBlazor()) {\n // eslint-disable-next-line\n var blazorZoomDropDown = this.pdfViewerBase.getElement('_zoomDropDown');\n if (blazorZoomDropDown && blazorZoomDropDown.children.length > 0) {\n blazorZoomDropDown.children[0].children[0].value = currentPercent;\n }\n }\n else {\n if (this.zoomDropDown.text === currentPercent) {\n this.zoomDropDown.element.value = currentPercent;\n }\n if (this.zoomDropDown.index === 11) {\n this.zoomDropDown.value = 4;\n }\n if (zoomFactor <= 0.25) {\n this.pdfViewerBase.isMinimumZoom = true;\n }\n else {\n this.pdfViewerBase.isMinimumZoom = false;\n }\n // eslint-disable-next-line\n this.zoomDropDown.text = currentPercent;\n }\n }\n };\n Toolbar.prototype.updateInteractionItems = function () {\n if (this.pdfViewer.textSelectionModule) {\n if (this.pdfViewer.enableTextSelection) {\n this.toolbar.enableItems(this.textSelectItem.parentElement, true);\n }\n else {\n this.toolbar.enableItems(this.textSelectItem.parentElement, false);\n }\n }\n else {\n this.toolbar.enableItems(this.textSelectItem.parentElement, false);\n }\n this.toolbar.enableItems(this.panItem.parentElement, true);\n if (this.pdfViewer.interactionMode === 'TextSelection' && this.pdfViewer.enableTextSelection) {\n this.selectItem(this.textSelectItem);\n this.deSelectItem(this.panItem);\n }\n else {\n this.selectItem(this.panItem);\n this.deSelectItem(this.textSelectItem);\n this.pdfViewerBase.initiatePanning();\n }\n };\n /**\n * @private\n */\n Toolbar.prototype.textSearchButtonHandler = function () {\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n if (this.pdfViewer.textSearchModule && this.pdfViewerBase.pageCount > 0) {\n this.isTextSearchBoxDisplayed = !this.isTextSearchBoxDisplayed;\n this.pdfViewer.textSearchModule.showSearchBox(this.isTextSearchBoxDisplayed);\n if (this.isTextSearchBoxDisplayed) {\n if (!isBlazor()) {\n this.selectItem(this.textSearchItem);\n }\n // eslint-disable-next-line max-len\n var searchInputElement = document.getElementById(this.pdfViewer.element.id + '_search_input');\n searchInputElement.select();\n searchInputElement.focus();\n }\n else {\n if (!isBlazor()) {\n this.deSelectItem(this.textSearchItem);\n this.textSearchItem.blur();\n }\n else {\n var searchItem = this.pdfViewerBase.getElement('_search');\n searchItem.firstElementChild.blur();\n }\n }\n }\n }\n else {\n this.showToolbar(false);\n this.pdfViewerBase.navigationPane.createNavigationPaneMobile('search');\n }\n };\n Toolbar.prototype.initiateAnnotationMode = function (id) {\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n if (this.annotationToolbarModule && this.pdfViewer.enableAnnotationToolbar) {\n this.annotationToolbarModule.showAnnotationToolbar(this.annotationItem);\n this.pdfViewer.toolbarModule.annotationToolbarModule.toolbar.refreshOverflow();\n if (this.pdfViewer.isAnnotationToolbarVisible && this.pdfViewer.isFormDesignerToolbarVisible) {\n var formDesignerMainDiv = document.getElementById(this.pdfViewer.element.id + \"_formdesigner_toolbar\");\n formDesignerMainDiv.style.display = \"none\";\n this.formDesignerToolbarModule.isToolbarHidden = false;\n this.formDesignerToolbarModule.showFormDesignerToolbar(this.formDesignerItem);\n this.annotationToolbarModule.adjustViewer(true);\n }\n }\n }\n else {\n if (!isBlazor()) {\n if (id === this.pdfViewer.element.id + '_annotation') {\n id = this.pdfViewer.element.id + '_annotationIcon';\n }\n this.annotationToolbarModule.createAnnotationToolbarForMobile(id);\n }\n }\n };\n Toolbar.prototype.initiateFormDesignerMode = function () {\n if (this.formDesignerToolbarModule && this.pdfViewer.enableFormDesignerToolbar) {\n this.formDesignerToolbarModule.showFormDesignerToolbar(this.formDesignerItem);\n if (this.pdfViewer.isAnnotationToolbarVisible && this.pdfViewer.isFormDesignerToolbarVisible) {\n var annotationMainDiv = document.getElementById(this.pdfViewer.element.id + \"_annotation_toolbar\");\n annotationMainDiv.style.display = \"none\";\n var commentPanel = document.getElementById(this.pdfViewer.element.id + '_commantPanel');\n if (!isNullOrUndefined(commentPanel) && !isNullOrUndefined(this.pdfViewerBase.navigationPane)) {\n if (commentPanel.style.display === 'block') {\n this.pdfViewerBase.navigationPane.closeCommentPanelContainer();\n }\n }\n this.annotationToolbarModule.isToolbarHidden = false;\n this.annotationToolbarModule.showAnnotationToolbar(this.annotationItem);\n this.formDesignerToolbarModule.adjustViewer(true);\n }\n }\n };\n /**\n * @private\n */\n Toolbar.prototype.DisableInteractionTools = function () {\n this.deSelectItem(this.textSelectItem);\n this.deSelectItem(this.panItem);\n };\n /**\n * @param element\n * @private\n */\n Toolbar.prototype.selectItem = function (element) {\n if (element) {\n element.classList.add('e-pv-select');\n }\n };\n /**\n * @param element\n * @private\n */\n Toolbar.prototype.deSelectItem = function (element) {\n if (element) {\n element.classList.remove('e-pv-select');\n }\n };\n /**\n * @param isTextSelect\n * @private\n */\n Toolbar.prototype.updateInteractionTools = function (isTextSelect) {\n var isBlazorPlatform = isBlazor();\n if (isTextSelect) {\n if (isBlazorPlatform) {\n this.selectItem(this.SelectToolElement);\n this.deSelectItem(this.PanElement);\n }\n else {\n this.selectItem(this.textSelectItem);\n this.deSelectItem(this.panItem);\n }\n }\n else {\n if (isBlazorPlatform) {\n this.selectItem(this.PanElement);\n this.deSelectItem(this.SelectToolElement);\n }\n else {\n this.selectItem(this.panItem);\n this.deSelectItem(this.textSelectItem);\n }\n }\n };\n Toolbar.prototype.initialEnableItems = function () {\n if (this.pdfViewer.enableToolbar) {\n this.showToolbar(true);\n }\n else {\n this.showToolbar(false);\n }\n if (this.pdfViewer.enableNavigationToolbar) {\n this.showNavigationToolbar(true);\n }\n else {\n this.showNavigationToolbar(false);\n }\n if (!isBlazor()) {\n if (this.isPrintBtnVisible) {\n this.showPrintOption(true);\n }\n else {\n this.showPrintOption(false);\n }\n if (this.isDownloadBtnVisible) {\n this.showDownloadOption(true);\n }\n else {\n this.showDownloadOption(false);\n }\n if (this.isSearchBtnVisible) {\n this.showSearchOption(true);\n }\n else {\n this.showSearchOption(false);\n }\n if (this.isCommentBtnVisible) {\n this.showCommentOption(true);\n }\n else {\n this.showCommentOption(false);\n }\n }\n };\n Toolbar.prototype.showSeparator = function (toolbarItems) {\n // eslint-disable-next-line max-len\n if (!this.isOpenBtnVisible || (!this.isNavigationToolVisible && !this.isMagnificationToolVisible && !this.isSelectionBtnVisible && !this.isScrollingBtnVisible && !this.isUndoRedoBtnsVisible)) {\n this.applyHideToToolbar(false, 1, 1);\n }\n if (((!this.isNavigationToolVisible && !this.isMagnificationToolVisible) && !this.isOpenBtnVisible) ||\n (this.isOpenBtnVisible && !this.isNavigationToolVisible) ||\n // eslint-disable-next-line max-len\n ((!this.isOpenBtnVisible && !this.isNavigationToolVisible) || (!this.isMagnificationToolVisible && !this.isScrollingBtnVisible && !this.isSelectionBtnVisible))) {\n this.applyHideToToolbar(false, 8, 8);\n }\n if ((!this.isMagnificationToolVisible && !this.isSelectionBtnVisible && !this.isScrollingBtnVisible) ||\n (this.isMagnificationToolVisible && (!this.isSelectionBtnVisible && !this.isScrollingBtnVisible)) ||\n (!this.isMagnificationToolVisible && (this.isSelectionBtnVisible || this.isScrollingBtnVisible))) {\n this.applyHideToToolbar(false, 12, 12);\n }\n if (((!this.isMagnificationToolVisible && !this.isNavigationToolVisible && !this.isScrollingBtnVisible\n && !this.isSelectionBtnVisible) && this.isUndoRedoBtnsVisible || !this.isUndoRedoBtnsVisible)) {\n this.applyHideToToolbar(false, 15, 15);\n }\n };\n /**\n * @private\n */\n Toolbar.prototype.applyToolbarSettings = function () {\n var toolbarSettingsItems = this.pdfViewer.toolbarSettings.toolbarItems;\n if (toolbarSettingsItems) {\n if (toolbarSettingsItems.indexOf('OpenOption') !== -1) {\n this.showOpenOption(true);\n }\n else {\n this.showOpenOption(false);\n }\n if (toolbarSettingsItems.indexOf('PageNavigationTool') !== -1) {\n this.showPageNavigationTool(true);\n }\n else {\n this.showPageNavigationTool(false);\n }\n if (toolbarSettingsItems.indexOf('MagnificationTool') !== -1) {\n this.showMagnificationTool(true);\n }\n else {\n this.showMagnificationTool(false);\n }\n if (toolbarSettingsItems.indexOf('SelectionTool') !== -1) {\n this.showSelectionTool(true);\n }\n else {\n this.showSelectionTool(false);\n }\n if (toolbarSettingsItems.indexOf('PanTool') !== -1) {\n this.showScrollingTool(true);\n }\n else {\n this.showScrollingTool(false);\n }\n if (toolbarSettingsItems.indexOf('PrintOption') !== -1) {\n this.showPrintOption(true);\n }\n else {\n this.showPrintOption(false);\n }\n if (toolbarSettingsItems.indexOf('DownloadOption') !== -1) {\n this.showDownloadOption(true);\n }\n else {\n this.showDownloadOption(false);\n }\n if (toolbarSettingsItems.indexOf('SearchOption') !== -1) {\n this.showSearchOption(true);\n }\n else {\n this.showSearchOption(false);\n }\n if (toolbarSettingsItems.indexOf('UndoRedoTool') !== -1) {\n this.showUndoRedoTool(true);\n }\n else {\n this.showUndoRedoTool(false);\n }\n if (toolbarSettingsItems.indexOf('AnnotationEditTool') !== -1) {\n this.showAnnotationEditTool(true);\n }\n else {\n this.showAnnotationEditTool(false);\n }\n if (toolbarSettingsItems.indexOf('FormDesignerEditTool') !== -1) {\n this.showFormDesignerEditTool(true);\n }\n else {\n this.showFormDesignerEditTool(false);\n }\n if (toolbarSettingsItems.indexOf('CommentTool') !== -1) {\n this.showCommentOption(true);\n }\n else {\n this.showCommentOption(false);\n }\n if (toolbarSettingsItems.indexOf('SubmitForm') !== -1) {\n this.showSubmitForm(true);\n }\n else {\n this.showSubmitForm(false);\n }\n this.showSeparator(toolbarSettingsItems);\n }\n };\n /**\n * @private\n */\n Toolbar.prototype.applyToolbarSettingsForMobile = function () {\n var toolbarSettingsItems = this.pdfViewer.toolbarSettings.toolbarItems;\n if (toolbarSettingsItems) {\n if (toolbarSettingsItems.indexOf('OpenOption') !== -1) {\n this.showOpenOption(true);\n }\n else {\n this.showOpenOption(false);\n }\n if (toolbarSettingsItems.indexOf('UndoRedoTool') !== -1) {\n this.showUndoRedoTool(true);\n }\n else {\n this.showUndoRedoTool(false);\n }\n if (toolbarSettingsItems.indexOf('AnnotationEditTool') !== -1) {\n this.showAnnotationEditTool(true);\n }\n else {\n this.showAnnotationEditTool(false);\n }\n if (toolbarSettingsItems.indexOf('SearchOption') !== -1) {\n this.showSearchOption(true);\n }\n else {\n this.showSearchOption(false);\n }\n }\n };\n Toolbar.prototype.getStampMode = function () {\n if (this.pdfViewer.annotation && this.pdfViewer.annotation.stampAnnotationModule) {\n return this.pdfViewer.annotation.stampAnnotationModule.isStampAddMode;\n }\n else {\n return false;\n }\n };\n // eslint-disable-next-line\n Toolbar.prototype.stampBeforeOpen = function (args) {\n this.annotationToolbarModule.resetFreeTextAnnot();\n if (args.ParentItem.Text === '' && this.pdfViewer.customStampSettings.isAddToMenu && args.Items.length > 0) {\n // eslint-disable-next-line\n var currentElements = null;\n for (var i = 0; i < args.Items.length; i++) {\n if (args.Items[i].Text === 'Custom Stamp') {\n args.Items[i].Items = [];\n currentElements = args.Items[i];\n break;\n }\n }\n // eslint-disable-next-line\n var elements = this.pdfViewerBase.customStampCollection;\n // eslint-disable-next-line\n var stampElements = this.pdfViewer.customStampSettings.customStamps;\n if (elements.length === 0 && stampElements && stampElements.length > 0) {\n for (var n = 0; n < stampElements.length; n++) {\n // eslint-disable-next-line max-len\n elements.push({ customStampName: stampElements[n].customStampName, customStampImageSource: stampElements[n].customStampImageSource });\n }\n }\n for (var m = 0; m < elements.length; m++) {\n if (currentElements != null) {\n currentElements.Items.push({ text: elements[m].customStampName });\n }\n }\n }\n };\n // eslint-disable-next-line\n Toolbar.prototype.stampBeforeClose = function (args, showItemOnClick) {\n // eslint-disable-next-line max-len\n if ((args.ParentItem && args.ParentItem.Text !== 'Custom Stamp' && args.ParentItem.Text !== 'Standard Business' && args.ParentItem.Text !== 'Dynamic' && args.ParentItem.Text !== 'Sign Here') || !args.ParentItem) {\n showItemOnClick = true;\n }\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n Toolbar.prototype.updateStampItems = function () {\n if (this.pdfViewer.annotationModule && this.pdfViewer.annotationModule.stampAnnotationModule && this.pdfViewer.annotationModule.stampAnnotationModule.isNewStampAnnot) {\n if (this.pdfViewer.selectedItems.annotations[0]) {\n this.pdfViewer.remove(this.pdfViewer.selectedItems.annotations[0]);\n this.pdfViewer.clearSelection(this.pdfViewer.currentPageNumber - 1);\n this.pdfViewer.renderDrawing();\n this.pdfViewerBase.tool = null;\n }\n this.pdfViewerBase.isAlreadyAdded = false;\n this.pdfViewer.annotationModule.stampAnnotationModule.isNewStampAnnot = false;\n }\n };\n // eslint-disable-next-line\n Toolbar.prototype.stampSelect = function (args, stampParentID) {\n this.pdfViewerBase.isAlreadyAdded = false;\n this.updateStampItems();\n if (args.Item.Text === 'Custom Stamp') {\n this.annotationToolbarModule.checkStampAnnotations();\n this.pdfViewer.annotation.stampAnnotationModule.isStampAddMode = true;\n // eslint-disable-next-line\n var stampImage = createElement('input', { id: this.pdfViewer.element.id + '_stampElement', attrs: { 'type': 'file' } });\n stampImage.setAttribute('accept', '.jpg,.jpeg,.png');\n stampImage.style.position = 'absolute';\n stampImage.style.left = '0px';\n stampImage.style.top = '0px';\n stampImage.style.visibility = 'hidden';\n document.body.appendChild(stampImage);\n stampImage.click();\n stampImage.addEventListener('change', this.annotationToolbarModule.addStampImage);\n document.body.removeChild(stampImage);\n // eslint-disable-next-line max-len\n }\n else if (stampParentID === 'Custom Stamp' && args.Item.Text !== '') {\n // eslint-disable-next-line\n var elements = this.pdfViewerBase.customStampCollection;\n for (var n = 0; n < elements.length; n++) {\n if (elements[n].customStampName === args.Item.Text) {\n this.pdfViewer.annotationModule.stampAnnotationModule.customStampName = args.Item.Text;\n this.annotationToolbarModule.checkStampAnnotations();\n this.pdfViewer.annotation.stampAnnotationModule.isStampAddMode = true;\n this.pdfViewer.annotationModule.stampAnnotationModule.isStampAnnotSelected = true;\n this.pdfViewerBase.stampAdded = true;\n this.pdfViewerBase.isAlreadyAdded = true;\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stampAnnotationModule.createCustomStampAnnotation(elements[n].customStampImageSource);\n this.pdfViewerBase.stampAdded = false;\n }\n }\n // eslint-disable-next-line max-len\n }\n else if (args.Item.Text !== 'Dynamic' && args.Item.Text !== '' && args.Item.Text !== 'Standard Business' && (stampParentID === 'Sign Here' || args.Item.Text !== 'Sign Here')) {\n this.annotationToolbarModule.checkStampAnnotations();\n this.pdfViewer.annotation.stampAnnotationModule.isStampAddMode = true;\n this.pdfViewer.annotationModule.stampAnnotationModule.isStampAnnotSelected = true;\n this.pdfViewerBase.stampAdded = true;\n if (stampParentID === 'Dynamic') {\n this.pdfViewerBase.isDynamicStamp = true;\n this.pdfViewer.annotationModule.stampAnnotationModule.retrieveDynamicStampAnnotation(args.Item.Text);\n }\n else {\n this.pdfViewerBase.isDynamicStamp = false;\n this.pdfViewer.annotationModule.stampAnnotationModule.retrievestampAnnotation(args.Item.Text);\n }\n }\n };\n /**\n * @private\n */\n Toolbar.prototype.getModuleName = function () {\n return 'Toolbar';\n };\n return Toolbar;\n}());\nexport { Toolbar };\n","/* eslint-disable */\nimport { Browser, isBlazor, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { getDiagramElement } from '@syncfusion/ej2-drawings';\n/**\n * Magnification module\n */\nvar Magnification = /** @class */ (function () {\n /**\n * @param pdfViewer\n * @param viewerBase\n * @private\n */\n function Magnification(pdfViewer, viewerBase) {\n /**\n * @private\n */\n this.zoomFactor = 1;\n /**\n * @private\n */\n this.previousZoomFactor = 1;\n this.scrollWidth = 25;\n this.zoomPercentages = [10, 25, 50, 75, 100, 125, 150, 200, 400];\n this.isNotPredefinedZoom = false;\n this.pinchStep = 0;\n this.reRenderPageNumber = 0;\n // eslint-disable-next-line\n this.magnifyPageRerenderTimer = null;\n // eslint-disable-next-line\n this.rerenderOnScrollTimer = null;\n // eslint-disable-next-line\n this.rerenderInterval = null;\n this.touchCenterX = 0;\n this.touchCenterY = 0;\n this.mouseCenterX = 0;\n this.mouseCenterY = 0;\n this.pageRerenderCount = 0;\n this.imageObjects = [];\n this.topValue = 0;\n this.isTapToFitZoom = false;\n /**\n * @private\n */\n this.fitType = null;\n /**\n * @private\n */\n this.isPinchZoomed = false;\n /**\n * @private\n */\n this.isPagePinchZoomed = false;\n /**\n * @private\n */\n this.isRerenderCanvasCreated = false;\n /**\n * @private\n */\n this.isMagnified = false;\n /**\n * @private\n */\n this.isPagesZoomed = false;\n /**\n * @private\n */\n this.isPinchScrolled = false;\n /**\n * @private\n */\n this.isAutoZoom = false;\n /**\n * @private\n */\n this.isDoubleTapZoom = false;\n /**\n * @private\n */\n this.isFormFieldPageZoomed = false;\n this.isWebkitMobile = false;\n this.isFitToPageMode = true;\n this.pdfViewer = pdfViewer;\n this.pdfViewerBase = viewerBase;\n this.zoomLevel = 2;\n // eslint-disable-next-line max-len\n this.isWebkitMobile = /Chrome/.test(navigator.userAgent) || /Google Inc/.test(navigator.vendor) || (navigator.userAgent.indexOf('Safari') !== -1);\n }\n /**\n * Zoom the PDF document to the given zoom value\n *\n * @param {number} zoomValue - Specifies the Zoom Value for magnify the PDF document\n * @returns void\n */\n Magnification.prototype.zoomTo = function (zoomValue) {\n var MaximumZoomPercentage = 400;\n var MinmumZoomPercentage = 10;\n if (zoomValue < MinmumZoomPercentage) {\n zoomValue = MinmumZoomPercentage;\n }\n else if (zoomValue > MaximumZoomPercentage) {\n zoomValue = MaximumZoomPercentage;\n }\n this.fitType = null;\n this.isNotPredefinedZoom = false;\n if (this.isAutoZoom && this.isInitialLoading) {\n this.pdfViewerBase.onWindowResize();\n }\n else {\n this.isAutoZoom = false;\n this.onZoomChanged(zoomValue);\n }\n this.isInitialLoading = false;\n };\n /**\n * Magnifies the page to the next value in the zoom drop down list.\n *\n * @returns void\n */\n Magnification.prototype.zoomIn = function () {\n if (this.fitType || this.isNotPredefinedZoom) {\n this.zoomLevel = this.lowerZoomLevel;\n this.fitType = null;\n }\n this.isNotPredefinedZoom = false;\n if (this.zoomLevel >= 8) {\n this.zoomLevel = 8;\n }\n else {\n this.zoomLevel++;\n }\n this.isAutoZoom = false;\n this.onZoomChanged(this.zoomPercentages[this.zoomLevel]);\n };\n /**\n * Magnifies the page to the previous value in the zoom drop down list.\n *\n * @returns void\n */\n Magnification.prototype.zoomOut = function () {\n if (this.fitType || this.isNotPredefinedZoom) {\n this.zoomLevel = this.higherZoomLevel;\n this.fitType = null;\n }\n this.isNotPredefinedZoom = false;\n if (this.zoomLevel <= 0) {\n this.zoomLevel = 0;\n }\n else {\n this.zoomLevel--;\n }\n this.isAutoZoom = false;\n this.onZoomChanged(this.zoomPercentages[this.zoomLevel]);\n };\n /**\n * Scales the page to fit the page width to the width of the container in the control.\n *\n * @returns void\n */\n Magnification.prototype.fitToWidth = function () {\n this.isAutoZoom = false;\n var zoomValue = this.calculateFitZoomFactor('fitToWidth');\n this.onZoomChanged(zoomValue);\n };\n /**\n * @private\n */\n Magnification.prototype.fitToAuto = function () {\n this.isAutoZoom = true;\n var zoomValue = this.calculateFitZoomFactor('fitToWidth');\n this.onZoomChanged(zoomValue);\n };\n /**\n * Scales the page to fit the page in the container in the control.\n *\n * @param {number} zoomValue - Defines the Zoom Value for fit the page in the Container\n * @returns void\n */\n Magnification.prototype.fitToPage = function () {\n var zoomValue = this.calculateFitZoomFactor('fitToPage');\n if (zoomValue !== null) {\n this.isAutoZoom = false;\n this.onZoomChanged(zoomValue);\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n if (this.isWebkitMobile) {\n this.pdfViewerBase.viewerContainer.style.overflowY = 'auto';\n }\n else {\n this.pdfViewerBase.viewerContainer.style.overflowY = 'hidden';\n }\n }\n else {\n this.pdfViewerBase.viewerContainer.style.overflowY = 'auto';\n }\n if (this.pdfViewerBase.pageSize[this.pdfViewerBase.currentPageNumber - 1]) {\n // eslint-disable-next-line max-len\n this.pdfViewerBase.viewerContainer.scrollTop = this.pdfViewerBase.pageSize[this.pdfViewerBase.currentPageNumber - 1].top * this.zoomFactor;\n }\n }\n };\n /**\n * Returns zoom factor for the fit zooms.\n *\n * @param type\n */\n Magnification.prototype.calculateFitZoomFactor = function (type) {\n var viewerWidth = this.pdfViewerBase.viewerContainer.getBoundingClientRect().width;\n var viewerHeight = this.pdfViewerBase.viewerContainer.getBoundingClientRect().height;\n if (viewerWidth === 0 && viewerHeight === 0) {\n viewerWidth = parseFloat(this.pdfViewer.width.toString());\n viewerHeight = parseFloat(this.pdfViewer.height.toString());\n }\n if (isNaN(viewerHeight) || isNaN(viewerWidth)) {\n return null;\n }\n this.fitType = type;\n if (this.fitType === 'fitToWidth') {\n var scaleX = ((viewerWidth - this.scrollWidth) / this.pdfViewerBase.highestWidth);\n if (this.isAutoZoom) {\n this.fitType = null;\n scaleX = Math.min(1, scaleX);\n if (scaleX === 1) {\n this.zoomLevel = 2;\n }\n }\n // eslint-disable-next-line radix\n return parseInt((scaleX * 100).toString());\n }\n else {\n this.isFitToPageMode = true;\n var pageLeft = 10;\n var scaleX = ((viewerWidth - this.scrollWidth - pageLeft) / this.pdfViewerBase.highestWidth);\n var scaleY = (viewerHeight / this.pdfViewerBase.highestHeight);\n if (scaleY > scaleX) {\n scaleY = scaleX;\n this.isFitToPageMode = false;\n }\n // eslint-disable-next-line radix\n return parseInt((scaleY * 100).toString());\n }\n };\n /**\n * Initiating cursor based zoom.\n * @private\n */\n Magnification.prototype.initiateMouseZoom = function (pointX, pointY, zoomValue) {\n var pointInViewer = this.positionInViewer(pointX, pointY);\n this.mouseCenterX = pointInViewer.x;\n this.mouseCenterY = pointInViewer.y;\n this.zoomTo(zoomValue);\n };\n /**\n * Performs pinch in operation\n */\n Magnification.prototype.pinchIn = function () {\n this.fitType = null;\n var temporaryZoomFactor = this.zoomFactor - this.pinchStep;\n if (temporaryZoomFactor < 4 && temporaryZoomFactor > 2) {\n temporaryZoomFactor = this.zoomFactor - this.pinchStep;\n }\n if (temporaryZoomFactor <= 1.5) {\n temporaryZoomFactor = this.zoomFactor - (this.pinchStep / 1.5);\n }\n if (temporaryZoomFactor < 0.25) {\n temporaryZoomFactor = 0.25;\n }\n this.isPinchZoomed = true;\n this.onZoomChanged(temporaryZoomFactor * 100);\n this.isTapToFitZoom = true;\n if ((Browser.isDevice && !this.pdfViewer.enableDesktopMode) && (this.zoomFactor * 100) === 50) {\n var zoomValue = this.calculateFitZoomFactor('fitToWidth');\n this.fitType = null;\n if (zoomValue <= 50) {\n this.fitToWidth();\n }\n }\n };\n /**\n * Performs pinch out operation\n */\n Magnification.prototype.pinchOut = function () {\n this.fitType = null;\n var temporaryZoomFactor = this.zoomFactor + this.pinchStep;\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n if (temporaryZoomFactor > 4) {\n temporaryZoomFactor = 4;\n }\n }\n else {\n if (temporaryZoomFactor > 2) {\n temporaryZoomFactor = temporaryZoomFactor + this.pinchStep;\n }\n if (temporaryZoomFactor > 4) {\n temporaryZoomFactor = 4;\n }\n }\n this.isTapToFitZoom = true;\n this.isPinchZoomed = true;\n this.onZoomChanged(temporaryZoomFactor * 100);\n };\n /**\n * returns zoom level for the zoom factor.\n *\n * @param zoomFactor\n */\n Magnification.prototype.getZoomLevel = function (zoomFactor) {\n var min = 0;\n var max = this.zoomPercentages.length - 1;\n while ((min <= max) && !(min === 0 && max === 0)) {\n var mid = Math.round((min + max) / 2);\n if (this.zoomPercentages[mid] <= zoomFactor) {\n min = mid + 1;\n }\n else if (this.zoomPercentages[mid] >= zoomFactor) {\n max = mid - 1;\n }\n }\n this.higherZoomLevel = min;\n this.lowerZoomLevel = max;\n return max;\n };\n /**\n * @private\n */\n Magnification.prototype.checkZoomFactor = function () {\n return this.zoomPercentages.indexOf(this.zoomFactor * 100) > -1;\n };\n /**\n * Executes when the zoom or pinch operation is performed\n *\n * @param zoomValue\n */\n Magnification.prototype.onZoomChanged = function (zoomValue) {\n if (zoomValue) {\n if (this.pdfViewer.annotationModule) {\n this.pdfViewer.annotationModule.closePopupMenu();\n }\n this.previousZoomFactor = this.zoomFactor;\n this.zoomLevel = this.getZoomLevel(zoomValue);\n this.zoomFactor = this.getZoomFactor(zoomValue);\n if (this.zoomFactor <= 0.25) {\n this.pdfViewerBase.isMinimumZoom = true;\n }\n else {\n this.pdfViewerBase.isMinimumZoom = false;\n }\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n if (this.isWebkitMobile) {\n this.pdfViewerBase.viewerContainer.style.overflowY = 'auto';\n }\n else {\n this.pdfViewerBase.viewerContainer.style.overflowY = 'hidden';\n }\n }\n else {\n this.pdfViewerBase.viewerContainer.style.overflowY = 'auto';\n }\n if (this.pdfViewerBase.pageCount > 0) {\n if ((this.previousZoomFactor !== this.zoomFactor)) {\n if (!this.isPinchZoomed) {\n this.magnifyPages();\n }\n else {\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n // eslint-disable-next-line max-len\n this.pdfViewerBase.mobilePageNoContainer.style.left = (this.pdfViewer.element.clientWidth / 2) - (parseFloat(this.pdfViewerBase.mobilePageNoContainer.style.width) / 2) + 'px';\n }\n this.responsivePages();\n }\n }\n if (!isBlazor()) {\n if (this.pdfViewer.toolbarModule) {\n this.pdfViewer.toolbarModule.updateZoomButtons();\n }\n }\n if (!this.isInitialLoading) {\n if (this.previousZoomFactor !== this.zoomFactor) {\n // eslint-disable-next-line\n this.pdfViewer.zoomValue = parseInt((this.zoomFactor * 100).toString());\n this.pdfViewer.fireZoomChange();\n }\n }\n }\n if (this.pdfViewer.toolbarModule) {\n this.pdfViewer.toolbarModule.updateZoomPercentage(this.zoomFactor);\n }\n if (!this.isInitialLoading) {\n if (this.previousZoomFactor !== this.zoomFactor) {\n this.pdfViewer.zoomValue = parseInt((this.zoomFactor * 100).toString());\n this.pdfViewer.fireZoomChange();\n }\n }\n if ((Browser.isDevice && !this.pdfViewer.enableDesktopMode) && this.isPinchZoomed) {\n // eslint-disable-next-line radix\n var zoomPercentage = parseInt((this.zoomFactor * 100).toString()) + '%';\n this.pdfViewerBase.navigationPane.createTooltipMobile(zoomPercentage);\n }\n }\n };\n /**\n * @param clientX\n * @param clientY\n * @private\n */\n Magnification.prototype.setTouchPoints = function (clientX, clientY) {\n var pointInViewer = this.positionInViewer(clientX, clientY);\n this.touchCenterX = pointInViewer.x;\n this.touchCenterY = pointInViewer.y;\n };\n /**\n * @param pointX1\n * @param pointY1\n * @param pointX2\n * @param pointY2\n * @param pointX1\n * @param pointY1\n * @param pointX2\n * @param pointY2\n * @param pointX1\n * @param pointY1\n * @param pointX2\n * @param pointY2\n * @param pointX1\n * @param pointY1\n * @param pointX2\n * @param pointY2\n * @private\n */\n Magnification.prototype.initiatePinchMove = function (pointX1, pointY1, pointX2, pointY2) {\n this.isPinchScrolled = false;\n this.isMagnified = false;\n this.reRenderPageNumber = this.pdfViewerBase.currentPageNumber;\n var pointInViewer = this.positionInViewer((pointX1 + pointX2) / 2, (pointY1 + pointY2) / 2);\n this.touchCenterX = pointInViewer.x;\n this.touchCenterY = pointInViewer.y;\n this.zoomOverPages(pointX1, pointY1, pointX2, pointY2);\n };\n Magnification.prototype.magnifyPages = function () {\n this.clearRerenderTimer();\n if (!this.isPagesZoomed) {\n this.reRenderPageNumber = this.pdfViewerBase.currentPageNumber;\n }\n if (!this.pdfViewerBase.documentLoaded && !this.pdfViewerBase.isInitialPageMode) {\n this.isPagesZoomed = true;\n }\n var scrollValue = this.pdfViewerBase.viewerContainer.scrollTop;\n if (this.pdfViewer.textSelectionModule) {\n this.pdfViewer.textSelectionModule.maintainSelectionOnZoom(false, true);\n }\n if (this.pdfViewer.formDesignerModule && !this.pdfViewerBase.documentLoaded && !this.pdfViewerBase.isDocumentLoaded) {\n this.isFormFieldPageZoomed = true;\n }\n if (!this.isInitialLoading) {\n this.isMagnified = true;\n }\n this.updatePageLocation();\n this.resizeCanvas(this.reRenderPageNumber);\n this.calculateScrollValuesOnMouse(scrollValue);\n if (this.pdfViewer.textSelectionModule) {\n this.pdfViewer.textSelectionModule.resizeTouchElements();\n }\n // eslint-disable-next-line\n var annotModule = this.pdfViewer.annotationModule;\n if (annotModule && annotModule.textMarkupAnnotationModule) {\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.updateCurrentResizerPosition();\n }\n if (this.pdfViewerBase.pageSize.length > 0) {\n // eslint-disable-next-line max-len\n this.pdfViewerBase.pageContainer.style.height = this.topValue + this.pdfViewerBase.getPageHeight(this.pdfViewerBase.pageSize.length - 1) + 'px';\n // eslint-disable-next-line\n var proxy_1 = this;\n this.pdfViewerBase.renderedPagesList = [];\n this.pdfViewerBase.pinchZoomStorage = [];\n if (!this.pdfViewerBase.documentLoaded) {\n this.magnifyPageRerenderTimer = setTimeout(function () {\n proxy_1.rerenderMagnifiedPages();\n }, 800);\n }\n }\n };\n Magnification.prototype.updatePageLocation = function () {\n this.topValue = 0;\n for (var i = 1; i < this.pdfViewerBase.pageSize.length; i++) {\n this.topValue += (this.pdfViewerBase.pageSize[i].height + this.pdfViewerBase.pageGap) * this.zoomFactor;\n }\n var limit;\n if (this.pdfViewer.initialRenderPages > 10) {\n limit = this.pdfViewer.initialRenderPages <= this.pdfViewerBase.pageCount ? this.pdfViewer.initialRenderPages : this.pdfViewerBase.pageCount;\n }\n else {\n limit = this.pdfViewerBase.pageCount < 10 ? this.pdfViewerBase.pageCount : 10;\n }\n for (var i = 0; i < limit; i++) {\n this.updatePageContainer(i, this.pdfViewerBase.getPageWidth(i), this.pdfViewerBase.getPageHeight(i), this.pdfViewerBase.getPageTop(i), true);\n }\n };\n Magnification.prototype.updatePageContainer = function (pageNumber, pageWidth, pageHeight, topValue, isReRender) {\n // eslint-disable-next-line\n var pageDiv = this.pdfViewerBase.getElement('_pageDiv_' + pageNumber);\n if (pageDiv) {\n pageDiv.style.width = pageWidth + 'px';\n pageDiv.style.height = pageHeight + 'px';\n // eslint-disable-next-line\n var textLayerDiv = this.pdfViewerBase.getElement('_textLayer_' + pageNumber);\n if (textLayerDiv) {\n textLayerDiv.style.width = pageWidth + 'px';\n textLayerDiv.style.height = pageHeight + 'px';\n }\n pageDiv.style.width = pageWidth + 'px';\n pageDiv.style.height = pageHeight + 'px';\n if (this.pdfViewer.enableRtl) {\n pageDiv.style.right = this.pdfViewerBase.updateLeftPosition(pageNumber) + 'px';\n }\n else {\n pageDiv.style.left = this.pdfViewerBase.updateLeftPosition(pageNumber) + 'px';\n }\n pageDiv.style.top = topValue + 'px';\n this.pdfViewerBase.pageContainer.style.width = this.pdfViewerBase.viewerContainer.clientWidth + 'px';\n this.pdfViewerBase.renderPageCanvas(pageDiv, pageWidth, pageHeight, pageNumber, 'block');\n }\n };\n Magnification.prototype.clearRerenderTimer = function () {\n clearTimeout(this.rerenderOnScrollTimer);\n clearTimeout(this.magnifyPageRerenderTimer);\n this.clearIntervalTimer();\n this.isPinchScrolled = false;\n };\n /**\n * @private\n */\n Magnification.prototype.clearIntervalTimer = function () {\n clearInterval(this.rerenderInterval);\n this.rerenderInterval = null;\n this.clearRendering();\n var oldCanvases = document.querySelectorAll('canvas[id*=\"' + this.pdfViewer.element.id + '_oldCanvas_\"]');\n for (var i = 0; i < oldCanvases.length; i++) {\n // eslint-disable-next-line\n var pageNumber = parseInt(oldCanvases[i].id.split('_oldCanvas_')[1]);\n var pageCanvas = this.pdfViewerBase.getElement('_pageCanvas_' + pageNumber);\n if (pageCanvas) {\n oldCanvases[i].id = pageCanvas.id;\n pageCanvas.parentElement.removeChild(pageCanvas);\n }\n else {\n oldCanvases[i].id = this.pdfViewer.element.id + '_pageCanvas_' + pageNumber;\n }\n if (this.pdfViewerBase.isTextMarkupAnnotationModule()) {\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.rerenderAnnotationsPinch(i);\n }\n }\n this.isRerenderCanvasCreated = false;\n };\n /**\n * @param image\n * @private\n */\n Magnification.prototype.pushImageObjects = function (image) {\n if (!isNullOrUndefined(this.imageObjects)) {\n this.imageObjects && this.imageObjects.push(image);\n }\n };\n Magnification.prototype.clearRendering = function () {\n if (this.imageObjects) {\n for (var j = 0; j < this.imageObjects.length; j++) {\n if (this.imageObjects[j]) {\n this.imageObjects[j].onload = null;\n }\n }\n this.imageObjects = [];\n }\n };\n Magnification.prototype.rerenderMagnifiedPages = function () {\n if ((this.pdfViewerBase.isInitialLoaded || this.pdfViewerBase.isDocumentLoaded) && !this.pdfViewerBase.isInitialPageMode) {\n this.renderInSeparateThread(this.reRenderPageNumber);\n this.isPagesZoomed = false;\n }\n else if (this.pdfViewerBase.isInitialPageMode) {\n this.pageRerenderCount = 0;\n this.pdfViewerBase.renderedPagesList = [];\n this.pdfViewerBase.pinchZoomStorage = [];\n this.isMagnified = false;\n this.pdfViewerBase.pageViewScrollChanged(this.reRenderPageNumber);\n this.pdfViewerBase.isInitialPageMode = false;\n }\n };\n Magnification.prototype.renderInSeparateThread = function (pageNumber) {\n var _this = this;\n this.designNewCanvas(pageNumber);\n this.pageRerenderCount = 0;\n this.pdfViewerBase.renderedPagesList = [];\n this.pdfViewerBase.pinchZoomStorage = [];\n this.isMagnified = false;\n this.pdfViewerBase.pageViewScrollChanged(this.reRenderPageNumber);\n // eslint-disable-next-line\n var proxy = this;\n this.rerenderInterval = setInterval(function () {\n _this.initiateRerender(proxy);\n }, 1);\n };\n Magnification.prototype.responsivePages = function () {\n this.isPagesZoomed = true;\n this.clearRerenderTimer();\n if (this.pdfViewer.textSelectionModule) {\n this.pdfViewer.textSelectionModule.clearTextSelection();\n }\n if (this.pdfViewer.textSearchModule) {\n this.pdfViewer.textSearchModule.clearAllOccurrences();\n }\n var scrollValue = this.pdfViewerBase.viewerContainer.scrollTop;\n this.isAutoZoom = false;\n this.updatePageLocation();\n // eslint-disable-next-line max-len\n this.pdfViewerBase.pageContainer.style.height = this.topValue + this.pdfViewerBase.pageSize[this.pdfViewerBase.pageSize.length - 1].height * this.zoomFactor + 'px';\n this.resizeCanvas(this.pdfViewerBase.currentPageNumber);\n if (this.pdfViewerBase.textLayer && this.pdfViewer.formDesignerModule) {\n this.pdfViewerBase.textLayer.clearTextLayers(true);\n }\n if (this.isPinchZoomed) {\n this.calculateScrollValues(scrollValue);\n }\n this.pdfViewerBase.renderedPagesList = [];\n this.pdfViewerBase.pinchZoomStorage = [];\n if (this.pdfViewer.formFieldsModule && !this.pdfViewer.formDesignerModule) {\n var proxy_2 = this;\n if (!this.pdfViewerBase.documentLoaded) {\n this.magnifyPageRerenderTimer = setTimeout(function () {\n proxy_2.rerenderMagnifiedPages();\n }, 800);\n }\n }\n };\n Magnification.prototype.calculateScrollValues = function (scrollValue) {\n var pageIndex = this.pdfViewerBase.currentPageNumber - 1;\n var currentPageCanvas = this.pdfViewerBase.getElement('_pageDiv_' + pageIndex);\n if (currentPageCanvas) {\n var pointInViewer = void 0;\n var currentPageBounds = currentPageCanvas.getBoundingClientRect();\n if (this.pdfViewer.enableRtl && !this.isDoubleTapZoom) {\n pointInViewer = this.positionInViewer(currentPageBounds.right, currentPageBounds.top);\n }\n else {\n pointInViewer = this.positionInViewer(currentPageBounds.left, currentPageBounds.top);\n }\n var currentPageBoundsLeft = pointInViewer.x;\n var currentPageBoundsTop = pointInViewer.y;\n // update scroll top for the viewer container based on pinch zoom factor\n var previousPageTop = (currentPageBoundsTop) * this.previousZoomFactor;\n var canvasPreviousY = scrollValue + this.touchCenterY;\n // eslint-disable-next-line max-len\n var canvasCurrentY = (currentPageBoundsTop) * this.zoomFactor + ((canvasPreviousY - previousPageTop) < 0 ? canvasPreviousY - previousPageTop : (canvasPreviousY -\n // eslint-disable-next-line max-len\n previousPageTop) * (this.zoomFactor / this.previousZoomFactor));\n var pageGapValue = this.zoomFactor - this.previousZoomFactor > 0 ? -this.pdfViewerBase.pageGap * (this.zoomFactor / this.previousZoomFactor) : this.pdfViewerBase.pageGap * (this.previousZoomFactor / this.zoomFactor);\n this.pdfViewerBase.viewerContainer.scrollTop = canvasCurrentY - this.touchCenterY + pageGapValue / this.pdfViewerBase.zoomInterval;\n // update scroll left for the viewer container based on pinch zoom factor\n var previousWidthFactor = (currentPageBounds.width * this.previousZoomFactor) / currentPageBounds.width;\n var scaleCorrectionFactor = this.zoomFactor / previousWidthFactor - 1;\n var scrollX_1 = this.touchCenterX - currentPageBoundsLeft;\n if (this.pdfViewerBase.isMixedSizeDocument && (this.pdfViewerBase.highestWidth * this.pdfViewerBase.getZoomFactor()) > this.pdfViewerBase.viewerContainer.clientWidth) {\n this.pdfViewerBase.viewerContainer.scrollLeft = (this.pdfViewerBase.pageContainer.offsetWidth - this.pdfViewerBase.viewerContainer.clientWidth) / 2;\n }\n else {\n this.pdfViewerBase.viewerContainer.scrollLeft += scrollX_1 * scaleCorrectionFactor;\n }\n }\n };\n Magnification.prototype.calculateScrollValuesOnMouse = function (scrollValue) {\n var pageIndex = this.pdfViewerBase.currentPageNumber - 1;\n var currentPageCanvas = this.pdfViewerBase.getElement('_pageDiv_' + pageIndex);\n if (currentPageCanvas) {\n var pointInViewer = void 0;\n var currentPageBounds = currentPageCanvas.getBoundingClientRect();\n if (this.pdfViewer.enableRtl) {\n pointInViewer = this.positionInViewer(currentPageBounds.right, currentPageBounds.top);\n }\n else {\n pointInViewer = this.positionInViewer(currentPageBounds.left, currentPageBounds.top);\n }\n var currentPageBoundsLeft = pointInViewer.x;\n var currentPageBoundsTop = pointInViewer.y;\n // update scroll top for the viewer container based on mouse zoom factor\n var previousPageTop = (currentPageBoundsTop) * this.previousZoomFactor;\n var canvasPreviousY = scrollValue + this.mouseCenterY;\n // eslint-disable-next-line max-len\n var canvasCurrentY = (currentPageBoundsTop) * this.zoomFactor + ((canvasPreviousY - previousPageTop) < 0 ? canvasPreviousY - previousPageTop : (canvasPreviousY -\n // eslint-disable-next-line max-len\n previousPageTop) * (this.zoomFactor / this.previousZoomFactor));\n // eslint-disable-next-line max-len\n var pageGapValue = this.zoomFactor - this.previousZoomFactor > 0 ? -this.pdfViewerBase.pageGap * (this.zoomFactor / this.previousZoomFactor) : this.pdfViewerBase.pageGap * (this.previousZoomFactor / this.zoomFactor);\n if (this.pdfViewerBase.isTouchPad && !this.pdfViewerBase.isMacSafari) {\n pageGapValue = pageGapValue / this.pdfViewerBase.zoomInterval;\n }\n this.pdfViewerBase.viewerContainer.scrollTop = canvasCurrentY - this.mouseCenterY + pageGapValue;\n // update scroll left for the viewer container based on mouse zoom factor\n var previousWidthFactor = (currentPageBounds.width * this.previousZoomFactor) / currentPageBounds.width;\n var scaleCorrectionFactor = this.zoomFactor / previousWidthFactor - 1;\n var scrollX_2 = this.mouseCenterX - currentPageBoundsLeft;\n if (this.pdfViewerBase.isMixedSizeDocument && (this.pdfViewerBase.highestWidth * this.pdfViewerBase.getZoomFactor()) > this.pdfViewerBase.viewerContainer.clientWidth) {\n this.pdfViewerBase.viewerContainer.scrollLeft = (this.pdfViewerBase.pageContainer.offsetWidth - this.pdfViewerBase.viewerContainer.clientWidth) / 2;\n }\n else {\n this.pdfViewerBase.viewerContainer.scrollLeft += scrollX_2 * scaleCorrectionFactor;\n }\n }\n };\n Magnification.prototype.rerenderOnScroll = function () {\n var _this = this;\n this.isPinchZoomed = false;\n if (this.isPinchScrolled) {\n this.rerenderOnScrollTimer = null;\n this.isPinchScrolled = false;\n this.reRenderPageNumber = this.pdfViewerBase.currentPageNumber;\n this.pdfViewerBase.renderedPagesList = [];\n this.pdfViewerBase.pinchZoomStorage = [];\n var pageDivs = document.querySelectorAll('img[id*=\"' + this.pdfViewer.element.id + '_pageCanvas_\"]');\n var viewPortWidth = 816;\n for (var i = 0; i < pageDivs.length; i++) {\n // eslint-disable-next-line radix\n var pageNumber = parseInt(pageDivs[i].id.split('_pageCanvas_')[1]);\n var pageWidth = this.pdfViewerBase.pageSize[pageNumber].width;\n if ((viewPortWidth < pageWidth) && this.pdfViewer.tileRenderingSettings.enableTileRendering) {\n if (this.pdfViewer.restrictZoomRequest) {\n pageDivs[i].style.width = pageWidth * this.pdfViewerBase.getZoomFactor() + 'px';\n // eslint-disable-next-line max-len\n pageDivs[i].style.height = this.pdfViewerBase.pageSize[pageNumber].height * this.pdfViewerBase.getZoomFactor() + 'px';\n }\n else {\n pageDivs[i].style.width = pageWidth * this.pdfViewerBase.getZoomFactor() + 'px';\n // eslint-disable-next-line max-len\n pageDivs[i].style.height = this.pdfViewerBase.pageSize[pageNumber].height * this.pdfViewerBase.getZoomFactor() + 'px';\n }\n }\n }\n if (this.pdfViewerBase.textLayer) {\n var textLayers = document.querySelectorAll('div[id*=\"' + this.pdfViewer.element.id + '_textLayer_\"]');\n for (var i = 0; i < textLayers.length; i++) {\n textLayers[i].style.display = 'block';\n }\n }\n if (this.pdfViewerBase.isTextMarkupAnnotationModule()) {\n // eslint-disable-next-line max-len\n var annotationLayers = document.querySelectorAll('canvas[id*=\"' + this.pdfViewer.element.id + '_annotationCanvas_\"]');\n for (var j = 0; j < annotationLayers.length; j++) {\n var pageNumber = annotationLayers[j].id.split('_annotationCanvas_')[1];\n // eslint-disable-next-line radix\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.rerenderAnnotationsPinch(parseInt(pageNumber));\n }\n }\n if (Browser.isDevice) {\n if (this.pdfViewer.formDesignerModule) {\n var fomrFieldCollection = void 0;\n var pageNumber_1 = this.pdfViewer.currentPageNumber;\n fomrFieldCollection = this.pdfViewer.formFieldCollection.filter(function (data) { return data.pageNumber === pageNumber_1; });\n for (var i = 0; i < fomrFieldCollection.length; i++) {\n document.querySelectorAll(\"[id^=\" + fomrFieldCollection[parseInt(i.toString(), 10)].id + \"]\").forEach(function (formField) { return formField.style.display = 'none'; });\n }\n }\n else {\n document.querySelectorAll(\"[id^=\\\"pdfViewerinput_\\\"]\").forEach(function (formField) { return formField.parentElement.style.display = 'none'; });\n }\n }\n this.pdfViewerBase.pageViewScrollChanged(this.reRenderPageNumber);\n this.isPagePinchZoomed = false;\n this.rerenderOnScrollTimer = setTimeout(function () {\n _this.pdfViewerBase.pageViewScrollChanged(_this.reRenderPageNumber);\n }, 300);\n }\n };\n /**\n * @private\n */\n Magnification.prototype.pinchMoveScroll = function () {\n var _this = this;\n if (this.isRerenderCanvasCreated) {\n this.clearIntervalTimer();\n }\n if (this.isPagesZoomed || (!this.isRerenderCanvasCreated && this.isPagePinchZoomed)) {\n this.clearRendering();\n this.isPagesZoomed = false;\n clearTimeout(this.magnifyPageRerenderTimer);\n this.isPinchScrolled = true;\n this.isFormFieldPageZoomed = true;\n this.rerenderOnScrollTimer = setTimeout(function () {\n _this.rerenderOnScroll();\n }, 100);\n }\n };\n // eslint-disable-next-line\n Magnification.prototype.initiateRerender = function (proxy) {\n var isReRender = false;\n if (this.previousZoomFactor < 0.4 || this.pdfViewerBase.isMinimumZoom) {\n isReRender = true;\n }\n // eslint-disable-next-line max-len\n if (((proxy.pageRerenderCount === proxy.pdfViewerBase.reRenderedCount) || isReRender) && proxy.pageRerenderCount !== 0 && proxy.pdfViewerBase.reRenderedCount !== 0) {\n proxy.reRenderAfterPinch(this.reRenderPageNumber);\n proxy.isFormFieldPageZoomed = false;\n }\n };\n Magnification.prototype.reRenderAfterPinch = function (currentPageIndex) {\n this.pageRerenderCount = 0;\n var lowerPageValue = currentPageIndex - 3;\n var higherPageValue = currentPageIndex + 1;\n if (this.pdfViewerBase.isMinimumZoom) {\n lowerPageValue = currentPageIndex - 4;\n higherPageValue = currentPageIndex + 4;\n }\n lowerPageValue = (lowerPageValue > 0) ? lowerPageValue : 0;\n higherPageValue = (higherPageValue < this.pdfViewerBase.pageCount) ? higherPageValue : (this.pdfViewerBase.pageCount - 1);\n for (var i = lowerPageValue; i <= higherPageValue; i++) {\n var pageDiv = this.pdfViewerBase.getElement('_pageDiv_' + i);\n var pageCanvas = this.pdfViewerBase.getElement('_pageCanvas_' + i);\n var oldCanvas = this.pdfViewerBase.getElement('_oldCanvas_' + i);\n if (oldCanvas) {\n oldCanvas.parentNode.removeChild(oldCanvas);\n }\n if (this.pdfViewerBase.isTextMarkupAnnotationModule()) {\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.rerenderAnnotations(i);\n }\n else if (this.pdfViewer.formDesignerModule) {\n this.rerenderAnnotations(i);\n this.pdfViewer.renderDrawing(undefined, currentPageIndex);\n }\n if (pageDiv) {\n pageDiv.style.visibility = 'visible';\n }\n }\n this.isRerenderCanvasCreated = false;\n this.isPagePinchZoomed = false;\n if (this.pdfViewerBase.reRenderedCount !== 0) {\n this.pdfViewerBase.reRenderedCount = 0;\n this.pageRerenderCount = 0;\n clearInterval(this.rerenderInterval);\n this.rerenderInterval = null;\n }\n this.imageObjects = [];\n };\n /**\n * @param pageNumber\n * @private\n */\n Magnification.prototype.rerenderAnnotations = function (pageNumber) {\n // eslint-disable-next-line\n var oldCanvasCollection = document.querySelectorAll('#' + this.pdfViewer.element.id + '_old_annotationCanvas_' + pageNumber);\n for (var i = 0; i < oldCanvasCollection.length; i++) {\n if (oldCanvasCollection[i]) {\n oldCanvasCollection[i].parentElement.removeChild(oldCanvasCollection[i]);\n }\n }\n var newCanvas = this.pdfViewerBase.getElement('_annotationCanvas_' + pageNumber);\n if (newCanvas) {\n newCanvas.style.display = 'block';\n }\n };\n Magnification.prototype.designNewCanvas = function (currentPageIndex) {\n if (this.pdfViewerBase.textLayer) {\n this.pdfViewerBase.textLayer.clearTextLayers();\n }\n var lowerPageValue = currentPageIndex - 3;\n var higherPageValue = currentPageIndex + 1; // jshint ignore:line\n if (this.pdfViewerBase.isMinimumZoom) {\n lowerPageValue = currentPageIndex - 4;\n higherPageValue = currentPageIndex + 4;\n }\n lowerPageValue = (lowerPageValue > 0) ? lowerPageValue : 0;\n higherPageValue = (higherPageValue < this.pdfViewerBase.pageCount) ? higherPageValue : (this.pdfViewerBase.pageCount - 1);\n for (var i = lowerPageValue; i <= higherPageValue; i++) {\n var canvas = this.pdfViewerBase.getElement('_pageCanvas_' + i);\n var width = this.pdfViewerBase.pageSize[i].width * this.zoomFactor;\n var height = this.pdfViewerBase.pageSize[i].height * this.zoomFactor;\n if (canvas && !this.pdfViewer.restrictZoomRequest) {\n // eslint-disable-next-line max-len\n this.pdfViewerBase.renderPageCanvas(this.pdfViewerBase.getElement('_pageDiv_' + i), width, height, i, 'none');\n }\n else if (!this.pdfViewer.restrictZoomRequest) {\n // eslint-disable-next-line max-len\n this.pdfViewerBase.renderPageCanvas(this.pdfViewerBase.getElement('_pageDiv_' + i), width, height, i, 'none');\n }\n }\n this.isRerenderCanvasCreated = true;\n };\n /**\n * @private\n */\n Magnification.prototype.pageRerenderOnMouseWheel = function () {\n var _this = this;\n if (this.isRerenderCanvasCreated) {\n this.clearIntervalTimer();\n clearTimeout(this.magnifyPageRerenderTimer);\n if (!this.isPinchScrolled) {\n this.isPinchScrolled = true;\n this.rerenderOnScrollTimer = setTimeout(function () {\n _this.rerenderOnScroll();\n }, 100);\n }\n }\n };\n /**\n * @private\n */\n Magnification.prototype.renderCountIncrement = function () {\n if (this.isRerenderCanvasCreated) {\n this.pageRerenderCount++;\n }\n };\n /**\n * @private\n */\n Magnification.prototype.rerenderCountIncrement = function () {\n if (this.pageRerenderCount > 0) {\n this.pdfViewerBase.reRenderedCount++;\n }\n };\n /**\n * @param pageNumber\n * @private\n */\n Magnification.prototype.resizeCanvas = function (pageNumber) {\n var annotationModule = this.pdfViewer.annotationModule;\n if (annotationModule && annotationModule.inkAnnotationModule) {\n // eslint-disable-next-line\n var currentPageNumber = parseInt(annotationModule.inkAnnotationModule.currentPageNumber);\n annotationModule.inkAnnotationModule.drawInkAnnotation(currentPageNumber);\n }\n if (annotationModule && annotationModule.freeTextAnnotationModule) {\n // eslint-disable-next-line\n var currentPosition = { x: annotationModule.freeTextAnnotationModule.currentPosition[0], y: annotationModule.freeTextAnnotationModule.currentPosition[1], width: annotationModule.freeTextAnnotationModule.currentPosition[2], height: annotationModule.freeTextAnnotationModule.currentPosition[3] };\n annotationModule.freeTextAnnotationModule.addInputInZoom(currentPosition);\n }\n var lowerPageValue = pageNumber - 3;\n var higherPageValue = pageNumber + 3;\n if (this.pdfViewerBase.isMinimumZoom) {\n lowerPageValue = pageNumber - 4;\n higherPageValue = pageNumber + 4;\n }\n if (this.pdfViewer.initialRenderPages > this.pdfViewerBase.pageRenderCount) {\n lowerPageValue = 0;\n higherPageValue = (higherPageValue < this.pdfViewer.initialRenderPages) ? (this.pdfViewer.initialRenderPages <= this.pdfViewerBase.pageCount) ? this.pdfViewer.initialRenderPages : this.pdfViewerBase.pageCount : (higherPageValue < this.pdfViewerBase.pageCount) ? higherPageValue : (this.pdfViewerBase.pageCount - 1);\n }\n else {\n lowerPageValue = (lowerPageValue > 0) ? lowerPageValue : 0;\n higherPageValue = (higherPageValue < this.pdfViewerBase.pageCount) ? higherPageValue : (this.pdfViewerBase.pageCount - 1);\n }\n for (var i = lowerPageValue; i <= higherPageValue; i++) {\n var pageDiv = this.pdfViewerBase.getElement('_pageDiv_' + i);\n var textLayer = document.getElementById(this.pdfViewer.element.id + '_textLayer_' + i);\n if (pageDiv) {\n if ((lowerPageValue <= i) && (i <= higherPageValue)) {\n var isSelectionAvailable = false;\n if (this.pdfViewer.textSelectionModule) {\n isSelectionAvailable = this.pdfViewer.textSelectionModule.isSelectionAvailableOnScroll(i);\n }\n if (this.pdfViewerBase.pageSize[i] != null) {\n var width = this.pdfViewerBase.pageSize[i].width * this.zoomFactor;\n var height = this.pdfViewerBase.pageSize[i].height * this.zoomFactor;\n pageDiv.style.width = width + 'px';\n pageDiv.style.height = height + 'px';\n // eslint-disable-next-line max-len\n pageDiv.style.top = ((this.pdfViewerBase.pageSize[i].top) * this.zoomFactor) + 'px';\n if (this.pdfViewer.enableRtl) {\n pageDiv.style.right = this.pdfViewerBase.updateLeftPosition(i) + 'px';\n }\n else {\n pageDiv.style.left = this.pdfViewerBase.updateLeftPosition(i) + 'px';\n }\n var canvas = this.pdfViewerBase.getElement('_pageCanvas_' + i);\n if (canvas) {\n canvas.style.width = (width) + 'px';\n canvas.style.height = height + 'px';\n if (this.pdfViewer.annotation) {\n this.pdfViewer.annotationModule.resizeAnnotations(width, height, i);\n }\n else if (this.pdfViewer.formDesignerModule) {\n this.pdfViewer.formDesignerModule.resizeAnnotations(width, height, i);\n }\n }\n var zoomFactor = this.pdfViewerBase.retrieveCurrentZoomFactor();\n var tileCount = this.pdfViewerBase.getTileCount(this.pdfViewerBase.pageSize[i].width);\n var noTileX = void 0;\n var noTileY = void 0;\n noTileX = noTileY = tileCount;\n var tileSettings = this.pdfViewer.tileRenderingSettings;\n if (tileSettings.enableTileRendering && tileSettings.x > 0 && tileSettings.y > 0) {\n if ((1200 < this.pdfViewerBase.pageSize[i].width || this.pdfViewerBase.getZoomFactor() > 2)) {\n noTileX = tileSettings.x;\n noTileY = tileSettings.y;\n }\n }\n var tileRequestCount = noTileX * noTileY;\n if (tileRequestCount === 1) {\n var storedData = this.pdfViewerBase.getWindowSessionStorage(i, zoomFactor) ? this.pdfViewerBase.getWindowSessionStorage(i, zoomFactor) : this.pdfViewerBase.getPinchZoomPage(i);\n if (storedData) {\n storedData = JSON.parse(storedData);\n var imageData = storedData['image'];\n if (imageData) {\n canvas.src = imageData;\n canvas.style.display = 'block';\n var oldCanvases = document.querySelectorAll('img[id*=\"' + this.pdfViewer.element.id + '_tileimg_' + i + '_\"]');\n var pageCanvas = this.pdfViewerBase.getElement('_pageDiv_' + i);\n for (var k = 0; k < oldCanvases.length; k++) {\n var tileImgId = oldCanvases[k].id.split('_');\n if (parseFloat(tileImgId[tileImgId.length - 3]) != this.pdfViewerBase.getZoomFactor())\n pageCanvas.removeChild(oldCanvases[k]);\n }\n var oldPageDiv = document.querySelectorAll('img[id*=\"' + this.pdfViewer.element.id + '_oldCanvas\"]');\n for (var j = 0; j < oldPageDiv.length; j++) {\n pageDiv.removeChild(oldPageDiv[j]);\n }\n }\n this.pdfViewerBase.isReRenderRequired = false;\n }\n else {\n this.pdfViewerBase.isReRenderRequired = true;\n }\n }\n else {\n var oldCanvases = document.querySelectorAll('img[id*=\"' + this.pdfViewer.element.id + '_tileimg_' + i + '_\"]');\n for (var l = 0; l < oldCanvases.length; l++) {\n var tileImgId = oldCanvases[l].id.split('_');\n var tileX = parseFloat(tileImgId[tileImgId.length - 2]);\n var tileY = parseFloat(tileImgId[tileImgId.length - 1]);\n // eslint-disable-next-line\n var tileData = JSON.parse(this.pdfViewerBase.getWindowSessionStorageTile(i, tileX, tileY, zoomFactor));\n if (tileData && tileData.zoomFactor) {\n zoomFactor = tileData.zoomFactor;\n }\n if (parseFloat(tileImgId[tileImgId.length - 4]) === i) {\n canvas.style.display = 'none';\n var node = oldCanvases[l];\n // Make sure it's really an Element\n if (node.nodeType == Node.ELEMENT_NODE) {\n var dataScaleFactor = 1.5;\n if (!isNullOrUndefined(tileData)) {\n dataScaleFactor = (!isNullOrUndefined(tileData.scaleFactor)) ? tileData.scaleFactor : 1.5;\n }\n var pageWidth = this.pdfViewerBase.pageSize[i].width;\n var serverImageWidth = pageWidth * zoomFactor * dataScaleFactor;\n var serverImageHeight = this.pdfViewerBase.pageSize[i].height * zoomFactor * dataScaleFactor;\n var tilewidth = serverImageWidth / noTileX;\n var tileHeight = serverImageHeight / noTileY;\n var originalWidth = tilewidth;\n var originalLeft = parseFloat(tileImgId[tileImgId.length - 2]) * tilewidth;\n var originalTop = parseFloat(tileImgId[tileImgId.length - 1]) * tileHeight;\n node.width = (((originalWidth * this.pdfViewerBase.getZoomFactor()) / zoomFactor) / dataScaleFactor);\n node.style.width = (((originalWidth * this.pdfViewerBase.getZoomFactor()) / zoomFactor) / dataScaleFactor) + 'px';\n node.style.left = (((originalLeft * this.pdfViewerBase.getZoomFactor()) / zoomFactor) / dataScaleFactor) + 'px';\n node.style.top = (((originalTop * this.pdfViewerBase.getZoomFactor()) / zoomFactor) / dataScaleFactor) + 'px';\n node.id = this.pdfViewer.element.id + '_tileimg_' + i + '_' + this.pdfViewerBase.getZoomFactor() + '_' + tileX + '_' + tileY;\n if (tileData) {\n var imageData = tileData['image'];\n if (imageData) {\n node.src = imageData;\n }\n this.pdfViewerBase.isReRenderRequired = false;\n }\n else {\n this.pdfViewerBase.isReRenderRequired = true;\n }\n }\n }\n }\n if (oldCanvases.length === 0) {\n this.pdfViewerBase.isReRenderRequired = true;\n }\n }\n var aElement = pageDiv.getElementsByTagName('a');\n if (aElement.length !== 0) {\n for (var index = aElement.length - 1; index >= 0; index--) {\n aElement[index].parentNode.removeChild(aElement[index]);\n }\n }\n if (textLayer) {\n textLayer.style.width = width + 'px';\n textLayer.style.height = height + 'px';\n if (this.pdfViewer.textSelectionModule) {\n if (this.isPinchZoomed) {\n textLayer.style.display = 'none';\n }\n else if (this.isMagnified) {\n var lowerValue = ((pageNumber - 2) === 0) ? 0 : (pageNumber - 2);\n // eslint-disable-next-line max-len\n var higherValue = ((pageNumber) === (this.pdfViewerBase.pageCount)) ? (this.pdfViewerBase.pageCount - 1) : (pageNumber + 1);\n if ((lowerValue <= i) && (i <= higherValue) && ((this.pdfViewer.textSelectionModule.isTextSelection && isSelectionAvailable) || this.pdfViewerBase.textLayer.getTextSearchStatus() || this.pdfViewerBase.isInitialPageMode)) {\n this.pdfViewerBase.textLayer.resizeTextContentsOnZoom(i);\n if (this.pdfViewer.textSelectionModule.isTextSelection && isSelectionAvailable) {\n this.pdfViewer.textSelectionModule.applySelectionRangeOnScroll(i);\n }\n }\n else {\n textLayer.style.display = 'none';\n }\n }\n else {\n textLayer.style.display = 'block';\n }\n }\n this.pdfViewerBase.applyElementStyles(textLayer, i);\n }\n var adornerSvg = getDiagramElement(this.pdfViewer.element.id + '_textLayer_' + i);\n if (adornerSvg) {\n var adonerLayer = getDiagramElement(this.pdfViewer.element.id + i + '_diagramAdorner_svg');\n if (adonerLayer) {\n adonerLayer.style.width = width + 'px';\n adonerLayer.style.height = height + 'px';\n }\n var diagramAdornerLayer = getDiagramElement(this.pdfViewer.element.id + i + '_diagramAdornerLayer');\n if (diagramAdornerLayer) {\n diagramAdornerLayer.style.width = width + 'px';\n diagramAdornerLayer.style.height = height + 'px';\n }\n adornerSvg.style.width = width + 'px';\n adornerSvg.style.height = height + 'px';\n this.pdfViewer.renderSelector(i, this.pdfViewer.annotationSelectorSettings);\n this.pdfViewerBase.applyElementStyles(diagramAdornerLayer, i);\n }\n }\n }\n }\n }\n };\n Magnification.prototype.zoomOverPages = function (pointX1, pointY1, pointX2, pointY2) {\n // eslint-disable-next-line\n var currentDifference = Math.sqrt(Math.pow((pointX1 - pointX2), 2) + Math.pow((pointY1 - pointY2), 2));\n if (this.previousTouchDifference > -1) {\n if (currentDifference > this.previousTouchDifference) {\n this.pinchStep = this.getPinchStep(currentDifference, this.previousTouchDifference);\n this.pinchOut();\n }\n else if (currentDifference < this.previousTouchDifference) {\n this.pinchStep = this.getPinchStep(this.previousTouchDifference, currentDifference);\n this.pinchIn();\n }\n }\n this.previousTouchDifference = currentDifference;\n };\n /**\n * @private\n */\n Magnification.prototype.pinchMoveEnd = function () {\n this.touchCenterX = 0;\n this.touchCenterY = 0;\n this.previousTouchDifference = -1;\n if (this.isPinchZoomed) {\n this.isPinchScrolled = false;\n this.isPagePinchZoomed = true;\n this.pinchMoveScroll();\n }\n };\n /**\n * @param event\n * @private\n */\n // eslint-disable-next-line\n Magnification.prototype.fitPageScrollMouseWheel = function (event) {\n if (this.fitType === 'fitToPage') {\n this.isMagnified = false;\n event.preventDefault();\n if (event.deltaY > 0) {\n this.downwardScrollFitPage(this.pdfViewerBase.currentPageNumber - 1);\n }\n else {\n this.upwardScrollFitPage(this.pdfViewerBase.currentPageNumber - 1);\n }\n }\n };\n /**\n * @param event\n * @private\n */\n Magnification.prototype.magnifyBehaviorKeyDown = function (event) {\n var isMac = navigator.platform.match(/(Mac|iPhone|iPod|iPad)/i) ? true : false;\n var isCommandKey = isMac ? event.metaKey : false;\n switch (event.keyCode) {\n case 38: // up arrow\n case 37: // left arrow\n case 33: // page up\n if (this.fitType === 'fitToPage' && !((event.ctrlKey || isCommandKey) && event.shiftKey)) {\n event.preventDefault();\n this.upwardScrollFitPage(this.pdfViewerBase.currentPageNumber - 1);\n }\n break;\n case 40: // down arrow\n case 39: // right arrow\n case 34: // page down\n if (this.fitType === 'fitToPage' && !((event.ctrlKey || isCommandKey) && event.shiftKey)) {\n event.preventDefault();\n this.downwardScrollFitPage(this.pdfViewerBase.currentPageNumber - 1);\n }\n break;\n case 187: // equal key\n if (event.ctrlKey || isCommandKey) {\n event.preventDefault();\n this.zoomIn();\n }\n break;\n case 189: // minus key\n if (event.ctrlKey || isCommandKey) {\n event.preventDefault();\n this.zoomOut();\n }\n break;\n case 48: // zero key\n if ((event.ctrlKey || isCommandKey) && !event.shiftKey) {\n event.preventDefault();\n this.fitToPage();\n }\n break;\n case 49: // one key\n if ((event.ctrlKey || isCommandKey) && !event.shiftKey) {\n event.preventDefault();\n this.zoomTo(100);\n }\n break;\n default:\n break;\n }\n };\n Magnification.prototype.upwardScrollFitPage = function (currentPageIndex) {\n if (currentPageIndex > 0) {\n this.pdfViewerBase.getElement('_pageDiv_' + (currentPageIndex - 1)).style.visibility = 'visible';\n this.pdfViewerBase.viewerContainer.scrollTop = this.pdfViewerBase.pageSize[currentPageIndex - 1].top * this.zoomFactor;\n if (this.isFitToPageMode) {\n this.pdfViewerBase.getElement('_pageDiv_' + (currentPageIndex)).style.visibility = 'hidden';\n }\n }\n };\n /**\n * @param currentPageIndex\n * @private\n */\n Magnification.prototype.updatePagesForFitPage = function (currentPageIndex) {\n if (this.fitType === 'fitToPage') {\n if (this.isFitToPageMode) {\n if (currentPageIndex > 0 && this.pdfViewerBase.getElement('_pageDiv_' + (currentPageIndex - 1))) {\n this.pdfViewerBase.getElement('_pageDiv_' + (currentPageIndex - 1)).style.visibility = 'hidden';\n }\n // eslint-disable-next-line max-len\n if ((currentPageIndex < (this.pdfViewerBase.pageCount - 1)) && this.pdfViewerBase.getElement('_pageDiv_' + (currentPageIndex + 1))) {\n this.pdfViewerBase.getElement('_pageDiv_' + (currentPageIndex + 1)).style.visibility = 'hidden';\n }\n }\n }\n };\n /**\n * @private\n */\n Magnification.prototype.onDoubleTapMagnification = function () {\n var _this = this;\n if (this.pdfViewer.toolbarModule && isBlazor()) {\n this.pdfViewer.toolbarModule.showToolbar(true);\n }\n var scrollValue = this.pdfViewerBase.viewerContainer.scrollTop;\n if (!this.pdfViewer.selectedItems.annotations[0]) {\n this.isDoubleTapZoom = true;\n if (!this.isTapToFitZoom) {\n if (this.zoomFactor < 2) {\n this.zoomTo(200);\n }\n else {\n this.fitToWidth();\n }\n }\n else {\n this.fitToWidth();\n }\n this.calculateScrollValues(scrollValue);\n this.isTapToFitZoom = !this.isTapToFitZoom;\n setTimeout(function () { _this.isMagnified = false; }, 500);\n this.isDoubleTapZoom = false;\n }\n else {\n if (isBlazor()) {\n // eslint-disable-next-line max-len\n if (this.pdfViewer.selectedItems.annotations[0] && this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'FreeText') {\n var elmtPosition = {};\n elmtPosition.x = this.pdfViewer.selectedItems.annotations[0].bounds.x;\n elmtPosition.y = this.pdfViewer.selectedItems.annotations[0].bounds.y;\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.freeTextAnnotationModule.addInuptElemet(elmtPosition, this.pdfViewer.selectedItems.annotations[0]);\n }\n }\n }\n };\n Magnification.prototype.downwardScrollFitPage = function (currentPageIndex) {\n if (currentPageIndex !== (this.pdfViewerBase.pageCount - 1)) {\n this.pdfViewerBase.getElement('_pageDiv_' + (currentPageIndex + 1)).style.visibility = 'visible';\n this.pdfViewerBase.viewerContainer.scrollTop = this.pdfViewerBase.pageSize[currentPageIndex + 1].top * this.zoomFactor;\n if (this.isFitToPageMode) {\n if (currentPageIndex + 1 === (this.pdfViewerBase.pageCount - 1)) {\n this.pdfViewerBase.getElement('_pageDiv_' + (currentPageIndex)).style.visibility = 'hidden';\n }\n else {\n this.pdfViewerBase.getElement('_pageDiv_' + (currentPageIndex + 2)).style.visibility = 'hidden';\n }\n }\n }\n };\n Magnification.prototype.getMagnifiedValue = function (value) {\n return (value / this.previousZoomFactor) * this.zoomFactor;\n };\n /**\n * @private\n */\n Magnification.prototype.destroy = function () {\n this.imageObjects = undefined;\n };\n /**\n * returns zoom factor when the zoom percent is passed.\n *\n * @param zoomValue\n */\n Magnification.prototype.getZoomFactor = function (zoomValue) {\n return zoomValue / 100;\n };\n /**\n * @private\n */\n Magnification.prototype.getModuleName = function () {\n return 'Magnification';\n };\n /**\n * Returns the pinch step value.\n * @param higherValue\n * @param lowerValue\n */\n Magnification.prototype.getPinchStep = function (higherValue, lowerValue) {\n var defaultPinchStep = 0.02; // Default pinch step value.\n var higherPinchStep = 1; // higher pinch step value.\n var pinchstep = (higherValue - lowerValue) / 100;\n if (pinchstep < defaultPinchStep) {\n pinchstep = defaultPinchStep;\n }\n else if (pinchstep > higherPinchStep) {\n pinchstep = 0.1; // set the pinch step as 0.1 if the pinch reaches the higher pinch step value.\n }\n return pinchstep;\n };\n /**\n * @private\n * Brings the given rectangular region to view and zooms in the document to fit the region in client area (view port).\n *\n * @param {Rect} zoomRect - Specifies the region in client coordinates that is to be brought to view.\n */\n Magnification.prototype.zoomToRect = function (zoomRect) {\n var desiredScaleFactor;\n var pdfViewerBase = this.pdfViewerBase;\n var viewerContainer = pdfViewerBase.viewerContainer;\n var pdfViewer = this.pdfViewer;\n if (zoomRect.width > 0 && zoomRect.height > 0) {\n var location_1 = { x: zoomRect.x, y: zoomRect.y };\n var pageNumber = pdfViewer.getPageNumberFromClientPoint(location_1);\n if (pageNumber > 0) {\n var desiredHorizontalScale = viewerContainer.getBoundingClientRect().width / zoomRect.width;\n var desiredVerticalScale = viewerContainer.getBoundingClientRect().height / zoomRect.height;\n if (desiredHorizontalScale < desiredVerticalScale) {\n desiredScaleFactor = desiredHorizontalScale;\n }\n else {\n desiredScaleFactor = desiredVerticalScale;\n }\n var zoomValue = 100; // default zoom value\n var zoomPercentage = pdfViewerBase.getZoomFactor() * 100;\n zoomValue = zoomPercentage * desiredScaleFactor;\n var prevScrollTop = viewerContainer.scrollTop;\n var prevScrollLeft = viewerContainer.scrollLeft;\n // Zoom to desired zoom value.\n this.zoomTo(zoomValue);\n viewerContainer.scrollTop = prevScrollTop;\n viewerContainer.scrollLeft = prevScrollLeft;\n var zoomFactor = pdfViewerBase.getZoomFactor();\n var pagepoint = { x: zoomRect.x, y: zoomRect.y };\n // Convert the client point to page point.\n pagepoint = pdfViewer.convertClientPointToPagePoint(pagepoint, pageNumber);\n pdfViewerBase.updateScrollTop(pageNumber - 1);\n // To adjust the container to the left position.\n viewerContainer.scrollLeft = (pagepoint.x - prevScrollLeft) * zoomFactor;\n // To adjust the container to the top position.\n viewerContainer.scrollTop = ((pagepoint.y + pdfViewerBase.pageSize[pageNumber - 1].top) - prevScrollTop) * zoomFactor;\n }\n }\n };\n /**\n * Returns Point value respect to Main container.\n * @param PointX\n * @param PointY\n */\n Magnification.prototype.positionInViewer = function (pointX, pointY) {\n var mainRect = this.pdfViewerBase.mainContainer.getBoundingClientRect();\n return { x: pointX - mainRect.left, y: pointY - mainRect.top };\n };\n return Magnification;\n}());\nexport { Magnification };\n","import { createElement, Browser, isNullOrUndefined, isBlazor } from '@syncfusion/ej2-base';\n/**\n * The `TextMarkupAnnotation` module is used to handle text markup annotation actions of PDF viewer.\n *\n * @hidden\n */\nvar TextMarkupAnnotation = /** @class */ (function () {\n /**\n * @param pdfViewer\n * @param viewerBase\n * @private\n */\n function TextMarkupAnnotation(pdfViewer, viewerBase) {\n var _this = this;\n /**\n * @private\n */\n this.currentTextMarkupAddMode = '';\n /**\n * @private\n */\n this.selectTextMarkupCurrentPage = null;\n /**\n * @private\n */\n this.currentTextMarkupAnnotation = null;\n /**\n * @private\n */\n this.isAddAnnotationProgramatically = false;\n this.currentAnnotationIndex = null;\n this.isAnnotationSelect = false;\n /**\n * @private\n */\n this.isDropletClicked = false;\n /**\n * @private\n */\n this.isRightDropletClicked = false;\n /**\n * @private\n */\n this.isLeftDropletClicked = false;\n /**\n * @private\n */\n this.isSelectionMaintained = false;\n this.isExtended = false;\n this.isNewAnnotation = false;\n this.selectedTextMarkup = null;\n this.multiPageCollection = [];\n this.triggerAddEvent = false;\n /**\n * @private\n */\n this.isSelectedAnnotation = false;\n this.dropletHeight = 20;\n /**\n * @private\n */\n this.annotationClickPosition = {};\n // eslint-disable-next-line\n this.maintainSelection = function (event) {\n _this.isDropletClicked = true;\n _this.pdfViewer.textSelectionModule.initiateSelectionByTouch();\n _this.isExtended = true;\n _this.pdfViewer.textSelectionModule.selectionRangeArray = [];\n };\n // eslint-disable-next-line\n this.selectionEnd = function (event) {\n if (_this.isDropletClicked) {\n _this.isDropletClicked = false;\n }\n };\n // eslint-disable-next-line\n this.annotationLeftMove = function (event) {\n if (_this.isDropletClicked) {\n _this.isLeftDropletClicked = true;\n }\n };\n // eslint-disable-next-line\n this.annotationRightMove = function (event) {\n if (_this.isDropletClicked) {\n _this.isRightDropletClicked = true;\n }\n };\n this.pdfViewer = pdfViewer;\n this.pdfViewerBase = viewerBase;\n }\n /**\n * @private\n */\n TextMarkupAnnotation.prototype.createAnnotationSelectElement = function () {\n // eslint-disable-next-line max-len\n this.dropDivAnnotationLeft = createElement('div', { id: this.pdfViewer.element.id + '_droplet_left', className: 'e-pv-drop' });\n this.dropDivAnnotationLeft.style.borderRight = '2px solid';\n // eslint-disable-next-line max-len\n this.dropDivAnnotationRight = createElement('div', { id: this.pdfViewer.element.id + '_droplet_right', className: 'e-pv-drop' });\n this.dropDivAnnotationRight.style.borderLeft = '2px solid';\n this.dropElementLeft = createElement('div', { className: 'e-pv-droplet', id: this.pdfViewer.element.id + '_dropletspan_left' });\n this.dropElementLeft.style.transform = 'rotate(0deg)';\n this.dropDivAnnotationLeft.appendChild(this.dropElementLeft);\n this.dropElementRight = createElement('div', { className: 'e-pv-droplet', id: this.pdfViewer.element.id + '_dropletspan_right' });\n this.dropElementRight.style.transform = 'rotate(-90deg)';\n this.dropDivAnnotationRight.appendChild(this.dropElementRight);\n this.pdfViewerBase.pageContainer.appendChild(this.dropDivAnnotationLeft);\n this.pdfViewerBase.pageContainer.appendChild(this.dropDivAnnotationRight);\n this.dropElementLeft.style.top = '20px';\n this.dropElementRight.style.top = '20px';\n this.dropElementRight.style.left = '-8px';\n this.dropElementLeft.style.left = '-8px';\n this.dropDivAnnotationLeft.style.display = 'none';\n this.dropDivAnnotationRight.style.display = 'none';\n this.dropDivAnnotationLeft.addEventListener('mousedown', this.maintainSelection);\n this.dropDivAnnotationLeft.addEventListener('mousemove', this.annotationLeftMove);\n this.dropDivAnnotationLeft.addEventListener('mouseup', this.selectionEnd);\n this.dropDivAnnotationRight.addEventListener('mousedown', this.maintainSelection);\n this.dropDivAnnotationRight.addEventListener('mousemove', this.annotationRightMove);\n this.dropDivAnnotationRight.addEventListener('mouseup', this.selectionEnd);\n };\n /**\n * @param target\n * @param x\n * @param y\n * @param target\n * @param x\n * @param y\n * @param target\n * @param x\n * @param y\n * @private\n */\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.textSelect = function (target, x, y) {\n if (this.isLeftDropletClicked) {\n var leftElement = this.dropDivAnnotationRight.getBoundingClientRect();\n var rightElement = this.dropDivAnnotationLeft.getBoundingClientRect();\n var clientX = x;\n var clientY = y;\n if (target.classList.contains('e-pv-text')) {\n if ((rightElement.top - 25) > leftElement.top) {\n this.pdfViewer.textSelectionModule.textSelectionOnDrag(target, clientX, clientY, true);\n }\n else {\n this.pdfViewer.textSelectionModule.textSelectionOnDrag(target, clientX, clientY, false);\n }\n this.updateLeftposition(clientX, clientY);\n }\n }\n else if (this.isRightDropletClicked) {\n var leftElement = this.dropDivAnnotationLeft.getBoundingClientRect();\n var clientX = x;\n var clientY = y;\n if (target.classList.contains('e-pv-text')) {\n if ((clientY) >= leftElement.top) {\n this.pdfViewer.textSelectionModule.textSelectionOnDrag(target, clientX, clientY, true);\n }\n else {\n this.pdfViewer.textSelectionModule.textSelectionOnDrag(target, clientX, clientY, false);\n }\n this.updatePosition(clientX, clientY);\n }\n }\n };\n /**\n * @param hide\n * @private\n */\n TextMarkupAnnotation.prototype.showHideDropletDiv = function (hide) {\n var type = this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAddMode;\n var isEnableResizer = this.isEnableTextMarkupResizer(type);\n if (isEnableResizer && this.dropDivAnnotationLeft && this.dropDivAnnotationRight) {\n if (hide) {\n this.dropDivAnnotationLeft.style.display = 'none';\n this.dropDivAnnotationRight.style.display = 'none';\n }\n else {\n this.dropDivAnnotationLeft.style.display = '';\n this.dropDivAnnotationRight.style.display = '';\n this.updateDropletStyles(type);\n }\n }\n };\n /**\n * @param type\n * @private\n */\n TextMarkupAnnotation.prototype.isEnableTextMarkupResizer = function (type) {\n var isEnableResizer = false;\n if (type) {\n if (type === 'Highlight' && this.pdfViewer.highlightSettings.enableTextMarkupResizer) {\n isEnableResizer = true;\n }\n else if (type === 'Underline' && this.pdfViewer.underlineSettings.enableTextMarkupResizer) {\n isEnableResizer = true;\n }\n else if (type === 'Strikethrough' && this.pdfViewer.strikethroughSettings.enableTextMarkupResizer) {\n isEnableResizer = true;\n }\n else if (this.pdfViewer.enableTextMarkupResizer) {\n isEnableResizer = true;\n }\n }\n else {\n if (this.pdfViewer.enableTextMarkupResizer) {\n isEnableResizer = true;\n }\n else if (this.pdfViewer.highlightSettings.enableTextMarkupResizer) {\n isEnableResizer = true;\n }\n else if (this.pdfViewer.underlineSettings.enableTextMarkupResizer) {\n isEnableResizer = true;\n }\n else if (this.pdfViewer.strikethroughSettings.enableTextMarkupResizer) {\n isEnableResizer = true;\n }\n }\n return isEnableResizer;\n };\n TextMarkupAnnotation.prototype.updateDropletStyles = function (type) {\n if (this.isEnableTextMarkupResizer(type) && this.dropDivAnnotationLeft && this.dropDivAnnotationLeft.offsetWidth > 0) {\n this.dropDivAnnotationLeft.style.width = this.dropletHeight * this.pdfViewerBase.getZoomFactor() + 'px';\n this.dropDivAnnotationRight.style.width = this.dropletHeight * this.pdfViewerBase.getZoomFactor() + 'px';\n this.dropElementLeft.style.width = this.dropletHeight * this.pdfViewerBase.getZoomFactor() + 'px';\n this.dropElementRight.style.width = this.dropletHeight * this.pdfViewerBase.getZoomFactor() + 'px';\n this.dropDivAnnotationLeft.style.height = this.dropletHeight * this.pdfViewerBase.getZoomFactor() + 'px';\n this.dropDivAnnotationRight.style.height = this.dropletHeight * this.pdfViewerBase.getZoomFactor() + 'px';\n this.dropElementLeft.style.height = this.dropletHeight * this.pdfViewerBase.getZoomFactor() + 'px';\n this.dropElementRight.style.height = this.dropletHeight * this.pdfViewerBase.getZoomFactor() + 'px';\n this.dropElementLeft.style.top = this.dropletHeight * this.pdfViewerBase.getZoomFactor() + 'px';\n this.dropElementRight.style.top = this.dropletHeight * this.pdfViewerBase.getZoomFactor() + 'px';\n }\n };\n TextMarkupAnnotation.prototype.updateAnnotationBounds = function () {\n this.isSelectionMaintained = false;\n // eslint-disable-next-line\n var annotation = this.currentTextMarkupAnnotation;\n if (annotation && annotation.isMultiSelect) {\n this.showHideDropletDiv(true);\n this.updateMultiAnnotBounds(annotation);\n }\n else if (annotation && annotation.bounds) {\n this.retreieveSelection(annotation, null);\n this.pdfViewer.textSelectionModule.maintainSelection(this.selectTextMarkupCurrentPage, false);\n this.isSelectionMaintained = true;\n window.getSelection().removeAllRanges();\n }\n };\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.updateMultiAnnotBounds = function (annotation) {\n if (!annotation.annotpageNumbers) {\n var annotationList = this.getAnnotations(annotation.pageNumber, null);\n if (annotationList) {\n for (var z = 0; z < annotationList.length; z++) {\n if (annotationList[z].annotName === annotation.annotName) {\n annotation = annotationList[z];\n break;\n }\n }\n }\n }\n var lowestNumber = annotation.annotpageNumbers[0];\n var highestNumber = annotation.annotpageNumbers[0];\n for (var p = 0; p < annotation.annotpageNumbers.length; p++) {\n var currentPage = annotation.annotpageNumbers[p];\n if (currentPage >= highestNumber) {\n highestNumber = currentPage;\n }\n if (currentPage <= lowestNumber) {\n lowestNumber = currentPage;\n }\n }\n for (var k = lowestNumber; k <= highestNumber; k++) {\n var annotationList = this.getAnnotations(k, null);\n if (annotationList) {\n for (var j = 0; j < annotation.annotNameCollection.length; j++) {\n // eslint-disable-next-line\n var currentAnnot = annotation.annotNameCollection[j];\n for (var z = 0; z < annotationList.length; z++) {\n if (annotationList[z].annotName === currentAnnot) {\n // eslint-disable-next-line\n var newAnnotation = annotationList[z];\n this.retreieveSelection(newAnnotation, null);\n this.pdfViewer.textSelectionModule.maintainSelection(newAnnotation.pageNumber, false);\n }\n }\n }\n }\n }\n this.isSelectionMaintained = true;\n window.getSelection().removeAllRanges();\n };\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.retreieveSelection = function (annotation, element) {\n for (var k = 0; k < annotation.bounds.length; k++) {\n // eslint-disable-next-line\n var bound = annotation.bounds[k];\n var x = (bound.left ? bound.left : bound.Left) * this.pdfViewerBase.getZoomFactor();\n var y = (bound.top ? bound.top : bound.Top) * this.pdfViewerBase.getZoomFactor();\n var width = (bound.width ? bound.width : bound.Width) * this.pdfViewerBase.getZoomFactor();\n var height = bound.height ? bound.height : bound.Height;\n // eslint-disable-next-line\n var textLayer = this.pdfViewerBase.getElement('_textLayer_' + annotation.pageNumber);\n if (textLayer) {\n // eslint-disable-next-line\n var textDivs = textLayer.childNodes;\n for (var n = 0; n < textDivs.length; n++) {\n if (textDivs[n]) {\n // eslint-disable-next-line\n var rangebounds = textDivs[n].getBoundingClientRect();\n var top_1 = this.getClientValueTop(rangebounds.top, annotation.pageNumber);\n // eslint-disable-next-line max-len\n var currentLeft = rangebounds.left - this.pdfViewerBase.getElement('_pageDiv_' + annotation.pageNumber).getBoundingClientRect().left;\n var totalLeft = currentLeft + rangebounds.width;\n // eslint-disable-next-line\n var textDiVLeft = parseInt(textDivs[n].style.left);\n // eslint-disable-next-line\n var currentTop = parseInt(textDivs[n].style.top);\n var isLeftBounds = this.pdfViewer.textSelectionModule.checkLeftBounds(currentLeft, textDiVLeft, totalLeft, x);\n var isTopBounds = this.pdfViewer.textSelectionModule.checkTopBounds(top_1, currentTop, y);\n if (isLeftBounds && isTopBounds) {\n element = textDivs[n];\n break;\n }\n }\n }\n if (element != null) {\n // eslint-disable-next-line\n var boundingRect = this.pdfViewerBase.getElement('_textLayer_' + annotation.pageNumber).getBoundingClientRect();\n this.pdfViewer.textSelectionModule.textSelectionOnMouseMove(element, x + boundingRect.left, y + boundingRect.top, false);\n if ((annotation.bounds.length - 1) === k) {\n // eslint-disable-next-line max-len\n this.pdfViewer.textSelectionModule.textSelectionOnMouseMove(element, x + boundingRect.left + width, y + boundingRect.top, false);\n }\n }\n }\n }\n };\n /**\n * @param x\n * @param y\n * @param isSelected\n * @private\n */\n TextMarkupAnnotation.prototype.updatePosition = function (x, y, isSelected) {\n this.showHideDropletDiv(false);\n var pageTopValue = this.pdfViewerBase.pageSize[this.pdfViewerBase.currentPageNumber - 1].top;\n var topClientValue = this.getClientValueTop(y, this.pdfViewerBase.currentPageNumber - 1);\n // eslint-disable-next-line\n var rightDivElement = document.getElementById(this.pdfViewer.element.id + '_droplet_right');\n if (isSelected) {\n // eslint-disable-next-line max-len\n rightDivElement.style.top = topClientValue * this.pdfViewerBase.getZoomFactor() + pageTopValue * this.pdfViewerBase.getZoomFactor() + 'px';\n }\n else {\n // eslint-disable-next-line max-len\n rightDivElement.style.top = topClientValue + pageTopValue * this.pdfViewerBase.getZoomFactor() + 'px';\n }\n // eslint-disable-next-line max-len\n rightDivElement.style.left = x + this.pdfViewerBase.viewerContainer.scrollLeft - this.pdfViewerBase.viewerContainer.getBoundingClientRect().left + 'px';\n };\n /**\n * @param x\n * @param y\n * @param isSelected\n * @param x\n * @param y\n * @param isSelected\n * @private\n */\n TextMarkupAnnotation.prototype.updateLeftposition = function (x, y, isSelected) {\n this.showHideDropletDiv(false);\n var pageTopValue = this.pdfViewerBase.pageSize[this.pdfViewerBase.currentPageNumber - 1].top;\n var topClientValue = this.getClientValueTop(y, this.pdfViewerBase.currentPageNumber - 1);\n // eslint-disable-next-line\n var leftDivElement = document.getElementById(this.pdfViewer.element.id + '_droplet_left');\n leftDivElement.style.display = '';\n if (isSelected) {\n // eslint-disable-next-line max-len\n leftDivElement.style.top = topClientValue * this.pdfViewerBase.getZoomFactor() + pageTopValue * this.pdfViewerBase.getZoomFactor() + 'px';\n }\n else {\n // eslint-disable-next-line max-len\n leftDivElement.style.top = topClientValue + pageTopValue * this.pdfViewerBase.getZoomFactor() + 'px';\n }\n // eslint-disable-next-line max-len\n leftDivElement.style.left = x + this.pdfViewerBase.viewerContainer.scrollLeft - this.pdfViewerBase.viewerContainer.getBoundingClientRect().left - (this.dropletHeight * this.pdfViewerBase.getZoomFactor()) + 'px';\n };\n TextMarkupAnnotation.prototype.getClientValueTop = function (clientValue, pageNumber) {\n if (this.pdfViewerBase.getElement('_pageDiv_' + pageNumber)) {\n // eslint-disable-next-line max-len\n return clientValue - this.pdfViewerBase.getElement('_pageDiv_' + pageNumber).getBoundingClientRect().top;\n }\n else {\n return clientValue;\n }\n };\n /**\n * @param textMarkupAnnotations\n * @param pageNumber\n * @param isImportTextMarkup\n * @param textMarkupAnnotations\n * @param pageNumber\n * @param isImportTextMarkup\n * @param textMarkupAnnotations\n * @param pageNumber\n * @param isImportTextMarkup\n * @private\n */\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.renderTextMarkupAnnotationsInPage = function (textMarkupAnnotations, pageNumber, isImportTextMarkup) {\n var canvas = this.pdfViewerBase.getElement('_annotationCanvas_' + pageNumber);\n if (isImportTextMarkup) {\n this.renderTextMarkupAnnotations(null, pageNumber, canvas, this.pdfViewerBase.getZoomFactor());\n this.renderTextMarkupAnnotations(textMarkupAnnotations, pageNumber, canvas, this.pdfViewerBase.getZoomFactor(), true);\n }\n else {\n this.renderTextMarkupAnnotations(textMarkupAnnotations, pageNumber, canvas, this.pdfViewerBase.getZoomFactor());\n }\n };\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.renderTextMarkupAnnotations = function (textMarkupAnnotations, pageNumber, canvas, factor, isImportAction) {\n if (canvas) {\n var context = canvas.getContext('2d');\n context.setTransform(1, 0, 0, 1, 0, 0);\n context.setLineDash([]);\n // eslint-disable-next-line\n var annotations = void 0;\n if (!isImportAction) {\n annotations = this.getAnnotations(pageNumber, textMarkupAnnotations);\n }\n else {\n annotations = textMarkupAnnotations;\n }\n if (annotations) {\n for (var i = 0; i < annotations.length; i++) {\n // eslint-disable-next-line\n var annotation = annotations[i];\n var annotationObject = null;\n var isAnnotationRotated = void 0;\n if (annotation.TextMarkupAnnotationType) {\n if (isImportAction) {\n if (this.pdfViewerBase.isJsonImported) {\n var newArray = [];\n for (var i_1 = 0; i_1 < annotation.Bounds.length; i_1++) {\n // eslint-disable-next-line\n annotation.Bounds[i_1] = this.pdfViewerBase.importJsonForRotatedDocuments(annotation.Rotate, pageNumber, annotation.Bounds[i_1], annotation.AnnotationRotation);\n annotation.Bounds[i_1].left = annotation.Bounds[i_1].X;\n annotation.Bounds[i_1].top = annotation.Bounds[i_1].Y;\n newArray.push(annotation.Bounds[i_1]);\n }\n annotation.Bounds = newArray;\n isAnnotationRotated = this.pdfViewerBase.isPageRotated;\n }\n }\n // eslint-disable-next-line max-len\n annotation.annotationAddMode = this.pdfViewer.annotationModule.findAnnotationMode(annotation, pageNumber, annotation.AnnotType);\n if (!annotation.Author) {\n // eslint-disable-next-line max-len\n annotation.Author = this.pdfViewer.annotationModule.updateAnnotationAuthor('textMarkup', annotation.TextMarkupAnnotationType);\n }\n if (!annotation.Subject) {\n annotation.Subject = annotation.TextMarkupAnnotationType;\n }\n if (annotation.AnnotationSettings && annotation.AnnotationSettings.isLock) {\n annotation.AnnotationSettings = { isLock: annotation.AnnotationSettings.isLock };\n }\n else {\n annotation.AnnotationSettings = this.getAnnotationSettings(annotation.TextMarkupAnnotationType);\n }\n // eslint-disable-next-line max-len\n annotation.allowedInteractions = annotation.AllowedInteractions ? annotation.AllowedInteractions : this.pdfViewer.annotationModule.updateAnnotationAllowedInteractions(annotation);\n // eslint-disable-next-line max-len\n annotationObject = {\n textMarkupAnnotationType: annotation.TextMarkupAnnotationType, color: annotation.Color, allowedInteractions: annotation.allowedInteractions, opacity: annotation.Opacity, bounds: annotation.Bounds, author: annotation.Author, subject: annotation.Subject, modifiedDate: annotation.ModifiedDate, note: annotation.Note, rect: annotation.Rect,\n // eslint-disable-next-line max-len\n annotName: annotation.AnnotName, comments: this.pdfViewer.annotationModule.getAnnotationComments(annotation.Comments, annotation, annotation.Author), review: { state: annotation.State, stateModel: annotation.StateModel, modifiedDate: annotation.ModifiedDate, author: annotation.Author }, shapeAnnotationType: 'textMarkup', pageNumber: pageNumber,\n textMarkupContent: annotation.TextMarkupContent, textMarkupStartIndex: 0, textMarkupEndIndex: 0, annotationSelectorSettings: this.getSettings(annotation),\n // eslint-disable-next-line max-len\n customData: this.pdfViewer.annotation.getCustomData(annotation), annotationAddMode: annotation.annotationAddMode, annotationSettings: annotation.AnnotationSettings, isPrint: annotation.IsPrint, isCommentLock: annotation.IsCommentLock, isAnnotationRotated: isAnnotationRotated, annotationRotation: annotation.AnnotationRotation\n };\n if (annotation.IsMultiSelect) {\n annotationObject.annotNameCollection = annotation.AnnotNameCollection;\n annotationObject.annotpageNumbers = annotation.AnnotpageNumbers;\n annotationObject.isMultiSelect = annotation.IsMultiSelect;\n }\n if (annotation.textMarkupContent && annotation.textMarkupContent !== '') {\n annotationObject.textMarkupContent = annotation.textMarkupContent;\n annotationObject.textMarkupStartIndex = annotation.textMarkupStartIndex;\n annotationObject.textMarkupEndIndex = annotation.textMarkupEndIndex;\n }\n if (isNullOrUndefined(annotation.TextMarkupContent) && isNullOrUndefined(annotation.textMarkupContent)) {\n var markedBounds = annotation.Bounds[0];\n var storedData = this.pdfViewerBase.getStoredData(pageNumber, true);\n if (isNullOrUndefined(storedData)) {\n this.pdfViewerBase.requestForTextExtraction(pageNumber, annotationObject);\n }\n else {\n var pageCharText = storedData.pageText.split('');\n var characterBounds = this.pdfViewerBase.textLayer.characterBound[pageNumber];\n var textMarkupContent = this.pdfViewerBase.textMarkUpContent(markedBounds, pageCharText, characterBounds);\n annotationObject.textMarkupContent = textMarkupContent;\n }\n }\n this.pdfViewer.annotationModule.storeAnnotations(pageNumber, annotationObject, '_annotations_textMarkup');\n if (this.isAddAnnotationProgramatically) {\n // eslint-disable-next-line\n var settings = {\n opacity: annotationObject.opacity, author: annotation.author, subject: annotation.subject, modifiedDate: annotation.modifiedDate,\n // eslint-disable-next-line\n width: annotationObject.bounds.width, height: annotationObject.bounds.height\n };\n this.pdfViewer.fireAnnotationAdd(annotationObject.pageNumber, annotationObject.annotName, annotation.TextMarkupAnnotationType, annotationObject.bounds, settings);\n }\n }\n // eslint-disable-next-line max-len\n var type = annotation.TextMarkupAnnotationType ? annotation.TextMarkupAnnotationType : annotation.textMarkupAnnotationType;\n // eslint-disable-next-line\n var annotBounds = annotation.Bounds ? annotation.Bounds : annotation.bounds;\n var opacity = annotation.Opacity ? annotation.Opacity : annotation.opacity;\n var color = annotation.Color ? annotation.Color : annotation.color;\n var annotationRotation = annotation.AnnotationRotation ? annotation.AnnotationRotation : annotation.annotationRotation;\n var isPrint = true;\n if (annotation.TextMarkupAnnotationType) {\n isPrint = annotation.IsPrint;\n }\n if (annotation.textMarkupAnnotationType) {\n isPrint = annotation.isPrint;\n }\n switch (type) {\n case 'Highlight':\n this.renderHighlightAnnotation(annotBounds, opacity, color, context, factor, isPrint, pageNumber);\n break;\n case 'Strikethrough':\n this.renderStrikeoutAnnotation(annotBounds, opacity, color, context, factor, pageNumber, isPrint, annotationRotation);\n break;\n case 'Underline':\n this.renderUnderlineAnnotation(annotBounds, opacity, color, context, factor, pageNumber, isPrint, annotationRotation);\n break;\n }\n }\n }\n var isMaintainedSelector = false;\n if (this.currentTextMarkupAnnotation && this.currentTextMarkupAnnotation.annotpageNumbers) {\n for (var m = 0; m < this.currentTextMarkupAnnotation.annotpageNumbers.length; m++) {\n if (pageNumber === this.currentTextMarkupAnnotation.annotpageNumbers[m]) {\n isMaintainedSelector = true;\n this.isAnnotationSelect = false;\n break;\n }\n }\n }\n if ((pageNumber === this.selectTextMarkupCurrentPage) || isMaintainedSelector) {\n if (!this.isAnnotationSelect) {\n this.maintainAnnotationSelection();\n }\n else {\n this.isAnnotationSelect = false;\n }\n }\n }\n };\n /**\n * @param annotation\n * @private\n */\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.getSettings = function (annotation) {\n var selector;\n if (annotation.AnnotationSelectorSettings) {\n selector = annotation.AnnotationSelectorSettings;\n }\n else {\n selector = this.getSelector(annotation.TextMarkupAnnotationType);\n }\n return selector;\n };\n /**\n * @param type\n * @private\n */\n TextMarkupAnnotation.prototype.drawTextMarkupAnnotations = function (type) {\n this.isTextMarkupAnnotationMode = true;\n this.pdfViewer.annotationModule.isFormFieldShape = false;\n this.currentTextMarkupAddMode = type;\n var isCleared = true;\n this.multiPageCollection = [];\n var selectionObject = this.pdfViewer.textSelectionModule ? this.pdfViewer.textSelectionModule.selectionRangeArray : [];\n if (selectionObject.length > 0 && !this.isSelectionMaintained) {\n this.convertSelectionToTextMarkup(type, selectionObject, this.pdfViewerBase.getZoomFactor());\n }\n var selection = window.getSelection();\n var targetElement;\n if (selection && selection.anchorNode) {\n targetElement = selection.anchorNode.parentElement;\n }\n if (this.isEnableTextMarkupResizer(type) && this.isExtended && window.getSelection().toString()) {\n var pageBounds = this.getDrawnBounds();\n if (pageBounds[0] && pageBounds[0].bounds) {\n // eslint-disable-next-line\n var currentAnnot = this.currentTextMarkupAnnotation;\n for (var k = 0; k < pageBounds.length; k++) {\n if (currentAnnot && currentAnnot.pageNumber === pageBounds[k].pageIndex) {\n this.currentTextMarkupAnnotation = currentAnnot;\n this.selectTextMarkupCurrentPage = pageBounds[k].pageIndex;\n this.updateTextMarkupAnnotationBounds(pageBounds, k);\n }\n else {\n if (currentAnnot) {\n if (type === '') {\n type = currentAnnot.textMarkupAnnotationType;\n }\n }\n if (!currentAnnot.isMultiSelect) {\n var isMultiSelect = false;\n if (this.isMultiAnnotation(type)) {\n this.multiPageCollection.push(currentAnnot);\n isMultiSelect = true;\n }\n // eslint-disable-next-line max-len\n this.drawTextMarkups(type, pageBounds[k].bounds, pageBounds[k].pageIndex, pageBounds[k].rect, this.pdfViewerBase.getZoomFactor(), pageBounds[k].textContent, pageBounds[k].startIndex, pageBounds[k].endIndex, isMultiSelect, targetElement);\n }\n else {\n if (currentAnnot.isMultiSelect && currentAnnot.annotNameCollection) {\n this.modifyCurrentAnnotation(currentAnnot, pageBounds, k);\n }\n }\n }\n }\n }\n }\n else if (window.getSelection().toString()) {\n var pageBounds = this.getDrawnBounds();\n var isMultiSelect = this.isMultiPageAnnotations(pageBounds, type);\n if (pageBounds.length > 0) {\n for (var i = 0; i < pageBounds.length; i++) {\n if (type === '') {\n isCleared = false;\n }\n // eslint-disable-next-line max-len\n this.drawTextMarkups(type, pageBounds[i].bounds, pageBounds[i].pageIndex, pageBounds[i].rect, this.pdfViewerBase.getZoomFactor(), pageBounds[i].textContent, pageBounds[i].startIndex, pageBounds[i].endIndex, isMultiSelect, targetElement);\n }\n }\n }\n if (this.multiPageCollection) {\n for (var j = 0; j < this.multiPageCollection.length; j++) {\n this.updateAnnotationNames(this.multiPageCollection[j], this.multiPageCollection[j].pageNumber);\n }\n }\n this.isExtended = false;\n this.isSelectionMaintained = false;\n // this.pdfViewerBase.annotationHelper.redoCollection = [];\n if (isCleared && this.pdfViewer.textSelectionModule) {\n this.pdfViewer.textSelectionModule.clearTextSelection();\n }\n if (this.isEnableTextMarkupResizer(type)) {\n this.updateAnnotationBounds();\n }\n };\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.isMultiPageAnnotations = function (pageBounds, type) {\n var isMultiSelect = false;\n for (var n = 0; n < pageBounds.length; n++) {\n if (pageBounds[n].pageIndex !== pageBounds[0].pageIndex && this.isMultiAnnotation(type)) {\n isMultiSelect = true;\n break;\n }\n }\n return isMultiSelect;\n };\n TextMarkupAnnotation.prototype.isMultiAnnotation = function (type) {\n var isSelection = false;\n if (type === 'Highlight' && this.pdfViewer.highlightSettings.enableMultiPageAnnotation) {\n isSelection = true;\n }\n else if (type === 'Underline' && this.pdfViewer.underlineSettings.enableMultiPageAnnotation) {\n isSelection = true;\n }\n else if (type === 'Strikethrough' && this.pdfViewer.strikethroughSettings.enableMultiPageAnnotation) {\n isSelection = true;\n }\n else if (this.pdfViewer.enableMultiPageAnnotation) {\n isSelection = true;\n }\n return isSelection;\n };\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.modifyCurrentAnnotation = function (currentAnnot, pageBounds, index) {\n for (var c = 0; c < currentAnnot.annotNameCollection.length; c++) {\n // eslint-disable-next-line\n var currentAnnots = currentAnnot.annotNameCollection[c];\n var annotationList = this.getAnnotations(pageBounds[index].pageIndex, null);\n if (annotationList) {\n for (var z = 0; z < annotationList.length; z++) {\n if (annotationList[z].annotName === currentAnnots) {\n this.currentTextMarkupAnnotation = annotationList[z];\n this.selectTextMarkupCurrentPage = pageBounds[index].pageIndex;\n this.updateTextMarkupAnnotationBounds(pageBounds, index);\n break;\n }\n }\n }\n }\n };\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.drawAnnotationSelector = function (newAnnotation, annotation, newcanvas) {\n var newBounds = [];\n var x = 0;\n var y = 0;\n var width = 0;\n var height = 0;\n var currentTop = 0;\n var nextTop = 0;\n for (var i = 0; i < newAnnotation.bounds.length; i++) {\n currentTop = newAnnotation.bounds[i].top ? newAnnotation.bounds[i].top : newAnnotation.bounds[i].Top;\n nextTop = !isNullOrUndefined(newAnnotation.bounds[i + 1]) ? newAnnotation.bounds[i + 1].top ? newAnnotation.bounds[i + 1].top : newAnnotation.bounds[i + 1].Top : 0;\n if (newAnnotation.bounds.length > 1 && i < newAnnotation.bounds.length - 1 && currentTop === nextTop) {\n newBounds.push(newAnnotation.bounds[i]);\n }\n else {\n if (i === newAnnotation.bounds.length - 1 || newAnnotation.bounds.length >= 1) {\n newBounds.push(newAnnotation.bounds[i]);\n }\n if (newBounds.length >= 1) {\n x = newBounds[0].left ? newBounds[0].left : newBounds[0].Left;\n y = newBounds[0].top ? newBounds[0].top : newBounds[0].Top;\n height = newBounds[0].height ? newBounds[0].height : newBounds[0].Height;\n for (var j = 0; j < newBounds.length; j++) {\n if ((!isNaN(newBounds[j].width) && newBounds[j].width > 0) || (!isNaN(newBounds[j].Width) && newBounds[j].Width > 0)) {\n width += newBounds[j].width ? newBounds[j].width : newBounds[j].Width;\n }\n }\n if (!newcanvas) {\n newcanvas = this.pdfViewerBase.getElement('_annotationCanvas_' + newAnnotation.pageNumber);\n }\n // eslint-disable-next-line max-len\n this.drawAnnotationSelectRect(newcanvas, this.getMagnifiedValue(x - 0.5, this.pdfViewerBase.getZoomFactor()), this.getMagnifiedValue(y - 0.5, this.pdfViewerBase.getZoomFactor()), this.getMagnifiedValue(width + 0.5, this.pdfViewerBase.getZoomFactor()), this.getMagnifiedValue(height + 0.5, this.pdfViewerBase.getZoomFactor()), annotation);\n newBounds = [];\n width = 0;\n }\n }\n }\n };\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.selectMultiPageAnnotations = function (annotation) {\n for (var k = 0; k < annotation.annotNameCollection.length; k++) {\n // eslint-disable-next-line\n var currentAnnot = annotation.annotNameCollection[k];\n if (currentAnnot !== annotation.annotName) {\n for (var p = 0; p < annotation.annotpageNumbers.length; p++) {\n var currentPage = annotation.annotpageNumbers[p];\n var annotationList = this.getAnnotations(currentPage, null);\n if (annotationList) {\n for (var z = 0; z < annotationList.length; z++) {\n if (annotationList[z].annotName === currentAnnot) {\n // eslint-disable-next-line\n var newAnnotation = annotationList[z];\n this.drawAnnotationSelector(newAnnotation, annotation);\n }\n }\n }\n }\n }\n }\n };\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.deletMultiPageAnnotation = function (annotation) {\n for (var k = 0; k < annotation.annotNameCollection.length; k++) {\n // eslint-disable-next-line\n var currentAnnot = annotation.annotNameCollection[k];\n if (currentAnnot !== annotation.annotName) {\n for (var p = 0; p < annotation.annotpageNumbers.length; p++) {\n var currentPage = annotation.annotpageNumbers[p];\n var annotationList = this.getAnnotations(currentPage, null);\n if (annotationList) {\n for (var z = 0; z < annotationList.length; z++) {\n if (annotationList[z].annotName === currentAnnot) {\n // eslint-disable-next-line\n var newAnnotation = annotationList[z];\n var deletedAnnotation = null;\n deletedAnnotation = annotationList.splice(z, 1)[0];\n this.pdfViewer.annotationModule.addAction(currentPage, z, deletedAnnotation, 'Text Markup Deleted', null);\n this.currentAnnotationIndex = z;\n this.pdfViewer.annotation.stickyNotesAnnotationModule.findPosition(deletedAnnotation, 'textMarkup');\n var removeDiv = document.getElementById(deletedAnnotation.annotName);\n if (removeDiv) {\n if (removeDiv.parentElement.childElementCount === 1) {\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateAccordionContainer(removeDiv);\n }\n else {\n removeDiv.remove();\n }\n }\n this.pdfViewer.annotationModule.updateAnnotationCollection(newAnnotation);\n this.manageAnnotations(annotationList, currentPage);\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.updateImportAnnotationCollection(newAnnotation, newAnnotation.pageNumber, 'textMarkupAnnotation');\n var annotationId = newAnnotation.annotName;\n // eslint-disable-next-line\n var annotationBounds = newAnnotation.bounds;\n this.pdfViewer.annotationModule.renderAnnotations(currentPage, null, null, null);\n }\n }\n }\n }\n }\n }\n };\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.modifyMultiPageAnnotations = function (annotation, property, value) {\n for (var k = 0; k < annotation.annotNameCollection.length; k++) {\n // eslint-disable-next-line\n var currentAnnot = annotation.annotNameCollection[k];\n if (currentAnnot !== annotation.annotName) {\n for (var p = 0; p < annotation.annotpageNumbers.length; p++) {\n var currentPage = annotation.annotpageNumbers[p];\n var annotationList = this.getAnnotations(currentPage, null);\n if (annotationList) {\n for (var z = 0; z < annotationList.length; z++) {\n if (annotationList[z].annotName === currentAnnot) {\n if (property === 'Color') {\n annotationList[z].color = value;\n }\n else {\n annotationList[z].opacity = value;\n }\n annotationList[z].modifiedDate = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n this.currentAnnotationIndex = z;\n if (status === null || status === 'changed') {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.addAction(annotationList[z].pageNumber, z, annotationList[z], 'Text Markup Property modified', property);\n }\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateAnnotationModifiedDate(annotationList[z]);\n this.manageAnnotations(annotationList, currentPage);\n this.pdfViewer.annotationModule.renderAnnotations(currentPage, null, null, null);\n }\n }\n }\n }\n }\n }\n };\n TextMarkupAnnotation.prototype.convertSelectionToTextMarkup = function (type, selectionObject, factor) {\n var isMultiSelect = false;\n this.triggerAddEvent = false;\n this.multiPageCollection = [];\n for (var i = 0; i < selectionObject.length; i++) {\n var textValue = selectionObject[i].textContent;\n // eslint-disable-next-line\n var indexes = void 0;\n if (selectionObject[i].startNode === selectionObject[i].endNode) {\n var parentText = document.getElementById(selectionObject[i].startNode).textContent;\n indexes = this.getIndexNumbers(selectionObject[i].pageNumber, textValue, parentText);\n }\n else {\n indexes = this.getIndexNumbers(selectionObject[i].pageNumber, textValue);\n }\n if (!isMultiSelect) {\n for (var n = 1; n < selectionObject.length; n++) {\n if (selectionObject[n].pageNumber !== selectionObject[0].pageNumber && this.isMultiAnnotation(type)) {\n isMultiSelect = true;\n break;\n }\n }\n }\n if (this.isMultiAnnotation(type) && (selectionObject.length - 1) === i) {\n this.triggerAddEvent = true;\n }\n // eslint-disable-next-line max-len\n this.drawTextMarkups(type, selectionObject[i].rectangleBounds, selectionObject[i].pageNumber, selectionObject[i].bound, factor, textValue, indexes.startIndex, indexes.endIndex, isMultiSelect, document.getElementById(selectionObject[i].startNode));\n }\n };\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.updateTextMarkupAnnotationBounds = function (pageBounds, currentIndex) {\n if (this.currentTextMarkupAnnotation) {\n var pageAnnotations = this.getAnnotations(pageBounds[currentIndex].pageIndex, null);\n var annotation = null;\n if (pageAnnotations) {\n for (var i = 0; i < pageAnnotations.length; i++) {\n if (JSON.stringify(this.currentTextMarkupAnnotation) === JSON.stringify(pageAnnotations[i])) {\n pageAnnotations[i].bounds = pageBounds[currentIndex].bounds;\n pageAnnotations[i].textMarkupContent = pageBounds[currentIndex].textContent;\n pageAnnotations[i].textMarkupStartIndex = pageBounds[currentIndex].startIndex;\n pageAnnotations[i].textMarkupEndIndex = pageBounds[currentIndex].endIndex;\n pageAnnotations[i].modifiedDate = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n annotation = pageAnnotations[i];\n }\n }\n this.manageAnnotations(pageAnnotations, pageBounds[currentIndex].pageIndex);\n this.currentTextMarkupAnnotation = null;\n this.pdfViewer.annotationModule.renderAnnotations(pageBounds[currentIndex].pageIndex, null, null, null);\n this.pdfViewerBase.updateDocumentEditedProperty(true);\n if (annotation) {\n // eslint-disable-next-line\n var settings = { opacity: annotation.opacity, color: annotation.color, author: annotation.author, subject: annotation.subject, modifiedDate: annotation.modifiedDate };\n // eslint-disable-next-line max-len\n var multiPageCollection = this.multiPageCollectionList(annotation);\n if (multiPageCollection.length > 0) {\n if ((pageBounds.length - 1) === currentIndex) {\n // eslint-disable-next-line max-len\n this.pdfViewer.fireAnnotationResize(pageBounds[currentIndex].pageIndex, annotation.annotName, annotation.textMarkupAnnotationType, annotation.bounds, settings, annotation.textMarkupContent, annotation.textMarkupStartIndex, annotation.textMarkupEndIndex, null, multiPageCollection);\n }\n }\n else {\n // eslint-disable-next-line max-len\n this.pdfViewer.fireAnnotationResize(pageBounds[currentIndex].pageIndex, annotation.annotName, annotation.textMarkupAnnotationType, annotation.bounds, settings, annotation.textMarkupContent, annotation.textMarkupStartIndex, annotation.textMarkupEndIndex, null);\n }\n }\n // eslint-disable-next-line max-len\n this.currentAnnotationIndex = null;\n this.selectTextMarkupCurrentPage = null;\n }\n }\n };\n /**\n * @param annotation\n * @private\n */\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.multiPageCollectionList = function (annotation) {\n var multiPageCollectionList = [];\n if (annotation.isMultiSelect && annotation.annotNameCollection) {\n multiPageCollectionList.push(annotation);\n for (var k = 0; k < annotation.annotNameCollection.length; k++) {\n // eslint-disable-next-line\n var currentAnnot = annotation.annotNameCollection[k];\n if (currentAnnot !== annotation.annotName) {\n for (var p = 0; p < annotation.annotpageNumbers.length; p++) {\n var currentPage = annotation.annotpageNumbers[p];\n var annotationList = this.getAnnotations(currentPage, null);\n if (annotationList) {\n for (var z = 0; z < annotationList.length; z++) {\n if (annotationList[z].annotName === currentAnnot) {\n multiPageCollectionList.push(annotationList[z]);\n }\n }\n }\n }\n }\n }\n }\n return multiPageCollectionList;\n };\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.updateAnnotationNames = function (annotations, pageNumber) {\n if (annotations) {\n var pageAnnotations = this.getAnnotations(pageNumber, null);\n var annotation = null;\n if (pageAnnotations) {\n for (var i = 0; i < pageAnnotations.length; i++) {\n if (annotations.annotName === pageAnnotations[i].annotName) {\n // eslint-disable-next-line\n var annotNamesCollections = [];\n // eslint-disable-next-line\n var annotpageNumbers = [];\n for (var p = 0; p < this.multiPageCollection.length; p++) {\n annotNamesCollections.push(this.multiPageCollection[p].annotName);\n annotpageNumbers.push(this.multiPageCollection[p].pageNumber);\n }\n pageAnnotations[i].isMultiSelect = true;\n pageAnnotations[i].annotNameCollection = annotNamesCollections;\n pageAnnotations[i].annotpageNumbers = annotpageNumbers;\n annotation = pageAnnotations[i];\n }\n }\n this.manageAnnotations(pageAnnotations, pageNumber);\n }\n }\n };\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.updateAnnotationContent = function (annotation, pageBound) {\n if (annotation) {\n var pageAnnotations = this.getAnnotations(this.selectTextMarkupCurrentPage, null);\n var annotation_1 = null;\n if (pageAnnotations) {\n for (var i = 0; i < pageAnnotations.length; i++) {\n if (JSON.stringify(this.currentTextMarkupAnnotation) === JSON.stringify(pageAnnotations[i])) {\n pageAnnotations[i].textMarkupContent = pageBound.textContent;\n pageAnnotations[i].textMarkupStartIndex = pageBound.startIndex;\n pageAnnotations[i].textMarkupEndIndex = pageBound.endIndex;\n annotation_1 = pageAnnotations[i];\n }\n this.pdfViewer.annotationModule.storeAnnotationCollections(pageAnnotations[i], this.selectTextMarkupCurrentPage);\n }\n this.manageAnnotations(pageAnnotations, this.selectTextMarkupCurrentPage);\n }\n }\n };\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.drawTextMarkups = function (type, bounds, pageNumber, rect, factor, textContent, startIndex, endIndex, isMultiSelect, targetElement) {\n var annotation = null;\n this.isNewAnnotation = false;\n var author = 'Guest';\n var subject;\n var context = this.getPageContext(pageNumber);\n var modifiedDate = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n this.highlightColor = this.highlightColor ? this.highlightColor : this.pdfViewer.highlightSettings.color;\n this.underlineColor = this.underlineColor ? this.underlineColor : this.pdfViewer.underlineSettings.color;\n this.strikethroughColor = this.strikethroughColor ? this.strikethroughColor : this.pdfViewer.strikethroughSettings.color;\n this.highlightOpacity = this.pdfViewer.highlightSettings.opacity;\n this.underlineOpacity = this.pdfViewer.underlineSettings.opacity;\n this.strikethroughOpacity = this.pdfViewer.strikethroughSettings.opacity;\n this.annotationAddMode = 'UI Drawn Annotation';\n // eslint-disable-next-line\n var allowedInteractions;\n var pageDetails = this.pdfViewerBase.pageSize[pageNumber];\n var annotationRotate = 0;\n var pageRotation = this.getAngle(pageDetails.rotation);\n if (context) {\n context.setLineDash([]);\n switch (type) {\n case 'Highlight':\n this.isNewAnnotation = true;\n subject = 'Highlight';\n // eslint-disable-next-line max-len\n author = (this.pdfViewer.highlightSettings.author !== 'Guest' && this.pdfViewer.highlightSettings.author) ? this.pdfViewer.highlightSettings.author : this.pdfViewer.annotationSettings.author ? this.pdfViewer.annotationSettings.author : 'Guest';\n allowedInteractions = this.pdfViewer.highlightSettings.allowedInteractions ? this.pdfViewer.highlightSettings.allowedInteractions : ['None'];\n // eslint-disable-next-line max-len\n if (isNullOrUndefined(this.highlightOpacity)) {\n this.highlightOpacity = 1;\n }\n annotation = this.getAddedAnnotation(type, this.highlightColor, this.highlightOpacity, bounds, author, subject, modifiedDate, '', false, rect, pageNumber, textContent, startIndex, endIndex, isMultiSelect, allowedInteractions, annotationRotate);\n if (annotation) {\n // eslint-disable-next-line max-len\n this.renderHighlightAnnotation(annotation.bounds, annotation.opacity, annotation.color, context, factor, annotation.isPrint, pageNumber);\n }\n break;\n case 'Strikethrough':\n this.isNewAnnotation = true;\n subject = 'Strikethrough';\n // eslint-disable-next-line max-len\n author = (this.pdfViewer.strikethroughSettings.author !== 'Guest' && this.pdfViewer.strikethroughSettings.author) ? this.pdfViewer.strikethroughSettings.author : this.pdfViewer.annotationSettings.author ? this.pdfViewer.annotationSettings.author : 'Guest';\n allowedInteractions = this.pdfViewer.strikethroughSettings.allowedInteractions ? this.pdfViewer.strikethroughSettings.allowedInteractions : ['None'];\n // eslint-disable-next-line max-len\n if (targetElement && targetElement.style.transform !== '') {\n if (targetElement.style.transform.startsWith('rotate(90deg)')) {\n annotationRotate = Math.abs(pageRotation - 90);\n }\n else if (targetElement.style.transform.startsWith('rotate(180deg)')) {\n annotationRotate = Math.abs(pageRotation - 180);\n }\n else if (targetElement.style.transform.startsWith('rotate(-90deg)')) {\n annotationRotate = Math.abs(pageRotation - 270);\n }\n else {\n annotationRotate = pageRotation;\n }\n }\n if (isNullOrUndefined(this.strikethroughOpacity)) {\n this.strikethroughOpacity = 1;\n }\n annotation = this.getAddedAnnotation(type, this.strikethroughColor, this.strikethroughOpacity, bounds, author, subject, modifiedDate, '', false, rect, pageNumber, textContent, startIndex, endIndex, isMultiSelect, allowedInteractions, annotationRotate);\n if (annotation) {\n // eslint-disable-next-line max-len\n this.renderStrikeoutAnnotation(annotation.bounds, annotation.opacity, annotation.color, context, factor, pageNumber, annotation.isPrint, annotation.annotationRotation);\n }\n break;\n case 'Underline':\n this.isNewAnnotation = true;\n subject = 'Underline';\n // eslint-disable-next-line max-len\n author = (this.pdfViewer.underlineSettings.author !== 'Guest' && this.pdfViewer.underlineSettings.author) ? this.pdfViewer.underlineSettings.author : this.pdfViewer.annotationSettings.author ? this.pdfViewer.annotationSettings.author : 'Guest';\n allowedInteractions = this.pdfViewer.underlineSettings.allowedInteractions ? this.pdfViewer.underlineSettings.allowedInteractions : ['None'];\n // eslint-disable-next-line max-len\n if (targetElement && targetElement.style.transform !== '') {\n if (targetElement.style.transform.startsWith('rotate(90deg)')) {\n annotationRotate = Math.abs(pageRotation - 90);\n }\n else if (targetElement.style.transform.startsWith('rotate(180deg)')) {\n annotationRotate = Math.abs(pageRotation - 180);\n }\n else if (targetElement.style.transform.startsWith('rotate(-90deg)')) {\n annotationRotate = Math.abs(pageRotation - 270);\n }\n else {\n annotationRotate = pageRotation;\n }\n }\n if (isNullOrUndefined(this.underlineOpacity)) {\n this.underlineOpacity = 1;\n }\n annotation = this.getAddedAnnotation(type, this.underlineColor, this.underlineOpacity, bounds, author, subject, modifiedDate, '', false, rect, pageNumber, textContent, startIndex, endIndex, isMultiSelect, allowedInteractions, annotationRotate);\n if (annotation) {\n // eslint-disable-next-line max-len\n this.renderUnderlineAnnotation(annotation.bounds, annotation.opacity, annotation.color, context, factor, pageNumber, annotation.isPrint, annotation.annotationRotation);\n }\n break;\n }\n this.isNewAnnotation = false;\n if (annotation) {\n this.pdfViewerBase.updateDocumentEditedProperty(true);\n // eslint-disable-next-line\n var settings = { opacity: annotation.opacity, color: annotation.color, author: annotation.author, subject: annotation.subject, modifiedDate: annotation.modifiedDate };\n var index = this.pdfViewer.annotationModule.actionCollection[this.pdfViewer.annotationModule.actionCollection.length - 1].index;\n // eslint-disable-next-line max-len\n if (this.isMultiAnnotation(type)) {\n if (this.triggerAddEvent) {\n // eslint-disable-next-line max-len\n this.pdfViewer.fireAnnotationAdd(pageNumber, annotation.annotName, type, annotation.bounds, settings, textContent, startIndex, endIndex, null, this.multiPageCollection);\n }\n }\n else {\n // eslint-disable-next-line max-len\n this.pdfViewer.fireAnnotationAdd(pageNumber, annotation.annotName, type, annotation.bounds, settings, textContent, startIndex, endIndex);\n }\n }\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode && this.pdfViewer.enableToolbar && this.pdfViewer.enableAnnotationToolbar) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.createPropertyTools(type);\n }\n }\n };\n TextMarkupAnnotation.prototype.getAngle = function (rotation) {\n // eslint-disable-next-line\n var angle = 0;\n if (rotation) {\n switch (rotation) {\n case 0:\n angle = 0;\n break;\n case 1:\n angle = 90;\n break;\n case 2:\n angle = 180;\n break;\n case 3:\n angle = 270;\n break;\n }\n }\n return angle;\n };\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.retreiveTextIndex = function (annotation) {\n if (annotation.textMarkupContent === '') {\n this.retreieveSelection(annotation, null);\n var pageBounds = this.getDrawnBounds();\n window.getSelection().removeAllRanges();\n if (pageBounds[0] && pageBounds[0].bounds) {\n this.updateAnnotationContent(annotation, pageBounds[0]);\n annotation.textMarkupContent = pageBounds[0].textContent;\n annotation.textMarkupStartIndex = pageBounds[0].startIndex;\n annotation.textMarkupEndIndex = pageBounds[0].endIndex;\n }\n }\n return annotation;\n };\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.renderHighlightAnnotation = function (bounds, opacity, color, context, factor, isPrint, pageIndex) {\n var zoomRatio = this.pdfViewerBase.getZoomRatio(factor);\n for (var i = 0; i < bounds.length; i++) {\n // eslint-disable-next-line\n var bound = bounds[i];\n context.beginPath();\n var x = bound.X ? bound.X : bound.left;\n var y = bound.Y ? bound.Y : bound.top;\n var width = bound.Width ? bound.Width : bound.width;\n var height = bound.Height ? bound.Height : bound.height;\n x = x ? x : bound.x;\n y = y ? y : bound.y;\n // The highlighted position is slightly increased. So Subtract -1 from the height. \n height = height - 1;\n if (context.canvas.id === this.pdfViewer.element.id + '_print_annotation_layer_' + pageIndex) {\n if (isPrint) {\n // eslint-disable-next-line max-len\n context.rect((x * zoomRatio), (y * zoomRatio), (width * zoomRatio), (height * zoomRatio));\n context.globalAlpha = opacity * 0.5;\n context.closePath();\n context.fillStyle = color;\n context.msFillRule = 'nonzero';\n context.fill();\n }\n }\n else {\n // eslint-disable-next-line max-len\n context.rect((x * zoomRatio), (y * zoomRatio), (width * zoomRatio), (height * zoomRatio));\n context.globalAlpha = opacity * 0.5;\n context.closePath();\n context.fillStyle = color;\n context.msFillRule = 'nonzero';\n context.fill();\n }\n }\n context.save();\n };\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.renderStrikeoutAnnotation = function (bounds, opacity, color, context, factor, pageNumber, isPrint, annotationRotation) {\n for (var i = 0; i < bounds.length; i++) {\n // eslint-disable-next-line\n var bound = this.getProperBounds(bounds[i]);\n var pageDetails = this.pdfViewerBase.pageSize[pageNumber];\n var factorRatio = this.pdfViewerBase.getZoomRatio(factor);\n var rotation = pageDetails.rotation;\n if (annotationRotation) {\n var pageRotation = this.getAngle(rotation);\n rotation = Math.abs(annotationRotation - pageRotation) / 90;\n }\n if (context.canvas.id === this.pdfViewer.element.id + '_print_annotation_layer_' + pageNumber) {\n if (isPrint) {\n if (rotation === 1) {\n // eslint-disable-next-line max-len\n this.drawLine(opacity, (bound.x + (bound.width / 2)), bound.y, bound.width, bound.height, color, factorRatio, context, pageNumber, annotationRotation);\n }\n else if (rotation === 2) {\n // eslint-disable-next-line max-len\n this.drawLine(opacity, bound.x, (bound.y + (bound.height / 2)), bound.width, bound.height, color, factorRatio, context, pageNumber, annotationRotation);\n }\n else if (rotation === 3) {\n this.drawLine(opacity, bound.x, bound.y, (bound.width / 2), bound.height, color, factorRatio, context, pageNumber, annotationRotation);\n }\n else {\n this.drawLine(opacity, bound.x, bound.y, bound.width, (bound.height / 2), color, factorRatio, context, pageNumber, annotationRotation);\n }\n }\n }\n else {\n if (rotation === 1) {\n // eslint-disable-next-line max-len\n this.drawLine(opacity, (bound.x + (bound.width / 2)), bound.y, bound.width, bound.height, color, factorRatio, context, pageNumber, annotationRotation);\n }\n else if (rotation === 2) {\n // eslint-disable-next-line max-len\n this.drawLine(opacity, bound.x, (bound.y + (bound.height / 2)), bound.width, bound.height, color, factorRatio, context, pageNumber, annotationRotation);\n }\n else if (rotation === 3) {\n this.drawLine(opacity, bound.x, bound.y, (bound.width / 2), bound.height, color, factorRatio, context, pageNumber, annotationRotation);\n }\n else {\n this.drawLine(opacity, bound.x, bound.y, bound.width, (bound.height / 2), color, factorRatio, context, pageNumber, annotationRotation);\n }\n }\n }\n };\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.renderUnderlineAnnotation = function (bounds, opacity, color, context, factor, pageNumber, isPrint, annotationRotation) {\n for (var i = 0; i < bounds.length; i++) {\n // eslint-disable-next-line\n var boundValues = this.getProperBounds(bounds[i]);\n var factorRatio = this.pdfViewerBase.getZoomRatio(factor);\n if (context.canvas.id === this.pdfViewer.element.id + '_print_annotation_layer_' + pageNumber) {\n if (isPrint) {\n // eslint-disable-next-line max-len\n this.drawLine(opacity, boundValues.x, boundValues.y, boundValues.width, boundValues.height, color, factorRatio, context, pageNumber, annotationRotation);\n }\n }\n else {\n // eslint-disable-next-line max-len\n this.drawLine(opacity, boundValues.x, boundValues.y, boundValues.width, boundValues.height, color, factorRatio, context, pageNumber, annotationRotation);\n }\n }\n };\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.getProperBounds = function (bound) {\n var x = bound.X ? bound.X : bound.left;\n var y = bound.Y ? bound.Y : bound.top;\n var width = bound.Width ? bound.Width : bound.width;\n var height = bound.Height ? bound.Height : bound.height;\n x = x ? x : bound.x;\n y = y ? y : bound.y;\n return { x: x, y: y, width: width, height: height };\n };\n // eslint-disable-next-line max-len\n TextMarkupAnnotation.prototype.drawLine = function (opacity, x, y, width, height, color, factor, context, pageNumber, annotationRotation) {\n context.globalAlpha = opacity;\n if (isBlazor()) {\n y = y - 1;\n }\n height = height - 1;\n context.beginPath();\n var pageDetails = this.pdfViewerBase.pageSize[pageNumber];\n var rotation = pageDetails.rotation;\n if (annotationRotation) {\n var pageRotation = this.getAngle(rotation);\n rotation = Math.abs(annotationRotation - pageRotation) / 90;\n }\n if (rotation === 1) {\n context.moveTo((x * factor), (y * factor));\n context.lineTo((x * factor), (y + height) * factor);\n }\n else if (rotation === 2) {\n context.moveTo((x * factor), (y * factor));\n context.lineTo((width + x) * factor, (y * factor));\n }\n else if (rotation === 3) {\n context.moveTo((width + x) * factor, (y * factor));\n context.lineTo((width + x) * factor, (y + height) * factor);\n }\n else {\n context.moveTo((x * factor), (y + height) * factor);\n context.lineTo((width + x) * factor, (y + height) * factor);\n }\n context.lineWidth = 1;\n context.strokeStyle = color;\n context.closePath();\n context.msFillRule = 'nonzero';\n context.stroke();\n };\n /**\n * @param textMarkupAnnotations\n * @param pageIndex\n * @param stampData\n * @param shapeData\n * @param measureShapeData\n * @param stickyData\n * @param textMarkupAnnotations\n * @param pageIndex\n * @param stampData\n * @param shapeData\n * @param measureShapeData\n * @param stickyData\n * @private\n */\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.printTextMarkupAnnotations = function (textMarkupAnnotations, pageIndex, stampData, shapeData, measureShapeData, stickyData) {\n var canvas = createElement('canvas', { id: this.pdfViewer.element.id + '_print_annotation_layer_' + pageIndex });\n canvas.style.width = 816 + 'px';\n canvas.style.height = 1056 + 'px';\n var pageWidth = this.pdfViewerBase.pageSize[pageIndex].width;\n var pageHeight = this.pdfViewerBase.pageSize[pageIndex].height;\n var zoom = this.pdfViewerBase.getZoomFactor();\n var zoomRatio = this.pdfViewerBase.getZoomRatio(zoom);\n canvas.height = pageHeight * zoomRatio;\n canvas.width = pageWidth * zoomRatio;\n // eslint-disable-next-line\n var textMarkupannotations = this.getAnnotations(pageIndex, null, '_annotations_textMarkup');\n // eslint-disable-next-line\n var shapeAnnotation = this.getAnnotations(pageIndex, null, '_annotations_shape');\n // eslint-disable-next-line\n var measureShapeAnnotation = this.getAnnotations(pageIndex, null, '_annotations_shape_measure');\n // eslint-disable-next-line\n var stampAnnotation = this.getAnnotations(pageIndex, null, '_annotations_stamp');\n // eslint-disable-next-line\n var stickyNoteAnnotation = this.getAnnotations(pageIndex, null, '_annotations_sticky');\n if (stampAnnotation || shapeAnnotation || stickyNoteAnnotation || measureShapeAnnotation) {\n this.pdfViewer.renderDrawing(canvas, pageIndex);\n }\n else {\n this.pdfViewer.annotation.renderAnnotations(pageIndex, shapeData, measureShapeData, null, canvas);\n this.pdfViewer.annotation.stampAnnotationModule.renderStampAnnotations(stampData, pageIndex, canvas);\n this.pdfViewer.annotation.stickyNotesAnnotationModule.renderStickyNotesAnnotations(stickyData, pageIndex, canvas);\n }\n var zoomFactor = this.pdfViewerBase.getZoomFactor();\n if (textMarkupannotations) {\n this.renderTextMarkupAnnotations(null, pageIndex, canvas, zoomFactor);\n }\n else {\n this.renderTextMarkupAnnotations(textMarkupAnnotations, pageIndex, canvas, zoomFactor);\n }\n var imageSource = canvas.toDataURL();\n return imageSource;\n };\n /**\n * @private\n */\n TextMarkupAnnotation.prototype.saveTextMarkupAnnotations = function () {\n // eslint-disable-next-line\n var storeTextMarkupObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_textMarkup');\n if (this.pdfViewerBase.isStorageExceed) {\n storeTextMarkupObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_textMarkup'];\n }\n // eslint-disable-next-line\n var textMarkupAnnotations = new Array();\n for (var j = 0; j < this.pdfViewerBase.pageCount; j++) {\n textMarkupAnnotations[j] = [];\n }\n if (storeTextMarkupObject && !this.pdfViewer.annotationSettings.skipDownload) {\n var textMarkupAnnotationCollection = JSON.parse(storeTextMarkupObject);\n for (var i = 0; i < textMarkupAnnotationCollection.length; i++) {\n var newArray = [];\n var pageAnnotationObject = textMarkupAnnotationCollection[i];\n if (pageAnnotationObject) {\n for (var z = 0; pageAnnotationObject.annotations.length > z; z++) {\n this.pdfViewer.annotationModule.updateModifiedDate(pageAnnotationObject.annotations[z]);\n if (this.pdfViewerBase.isJsonExported) {\n if (pageAnnotationObject.annotations[z].isAnnotationRotated) {\n pageAnnotationObject.annotations[z].bounds = this.getBoundsForSave(pageAnnotationObject.annotations[z].bounds, i);\n }\n else {\n var pageDetails = this.pdfViewerBase.pageSize[pageAnnotationObject.pageIndex];\n if (pageDetails) {\n pageAnnotationObject.annotations[z].annotationRotation = pageDetails.rotation;\n }\n }\n }\n // eslint-disable-next-line max-len\n pageAnnotationObject.annotations[z].bounds = JSON.stringify(this.getBoundsForSave(pageAnnotationObject.annotations[z].bounds, i));\n var colorString = pageAnnotationObject.annotations[z].color;\n pageAnnotationObject.annotations[z].color = JSON.stringify(this.getRgbCode(colorString));\n pageAnnotationObject.annotations[z].rect = JSON.stringify(pageAnnotationObject.annotations[z].rect);\n }\n newArray = pageAnnotationObject.annotations;\n }\n textMarkupAnnotations[pageAnnotationObject.pageIndex] = newArray;\n }\n }\n return JSON.stringify(textMarkupAnnotations);\n };\n /**\n * @private\n */\n TextMarkupAnnotation.prototype.deleteTextMarkupAnnotation = function () {\n if (this.currentTextMarkupAnnotation) {\n var isLock = false;\n if (this.currentTextMarkupAnnotation.annotationSettings) {\n // eslint-disable-next-line\n isLock = this.currentTextMarkupAnnotation.annotationSettings.isLock;\n if (this.pdfViewer.annotationModule.checkAllowedInteractions('Delete', this.currentTextMarkupAnnotation)) {\n isLock = false;\n }\n }\n if (!isLock) {\n var deletedAnnotation = null;\n this.showHideDropletDiv(true);\n // eslint-disable-next-line\n var annotation = this.currentTextMarkupAnnotation;\n if (this.currentTextMarkupAnnotation.isMultiSelect && annotation.annotNameCollection) {\n this.deletMultiPageAnnotation(annotation);\n }\n var pageAnnotations = this.getAnnotations(this.selectTextMarkupCurrentPage, null);\n if (pageAnnotations) {\n for (var i = 0; i < pageAnnotations.length; i++) {\n if (this.currentTextMarkupAnnotation.annotName === pageAnnotations[i].annotName) {\n deletedAnnotation = pageAnnotations.splice(i, 1)[0];\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.addAction(this.selectTextMarkupCurrentPage, i, deletedAnnotation, 'Text Markup Deleted', null);\n this.currentAnnotationIndex = i;\n this.pdfViewer.annotation.stickyNotesAnnotationModule.findPosition(deletedAnnotation, 'textMarkup');\n var removeDiv = document.getElementById(deletedAnnotation.annotName);\n if (removeDiv) {\n if (removeDiv.parentElement.childElementCount === 1) {\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateAccordionContainer(removeDiv);\n }\n else {\n removeDiv.remove();\n }\n }\n }\n }\n this.pdfViewer.annotationModule.updateAnnotationCollection(this.currentTextMarkupAnnotation);\n this.manageAnnotations(pageAnnotations, this.selectTextMarkupCurrentPage);\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.updateImportAnnotationCollection(this.currentTextMarkupAnnotation, this.currentTextMarkupAnnotation.pageNumber, 'textMarkupAnnotation');\n var annotationId = this.currentTextMarkupAnnotation.annotName;\n // eslint-disable-next-line\n var annotationBounds = this.currentTextMarkupAnnotation.bounds;\n this.currentTextMarkupAnnotation = null;\n this.pdfViewer.annotationModule.renderAnnotations(this.selectTextMarkupCurrentPage, null, null, null);\n this.pdfViewerBase.updateDocumentEditedProperty(true);\n // eslint-disable-next-line max-len\n var multiPageCollection = this.multiPageCollectionList(annotation);\n if (multiPageCollection.length > 0) {\n multiPageCollection.push(deletedAnnotation);\n // eslint-disable-next-line max-len\n this.pdfViewer.fireAnnotationRemove(this.selectTextMarkupCurrentPage, annotationId, deletedAnnotation.textMarkupAnnotationType, annotationBounds, deletedAnnotation.textMarkupContent, deletedAnnotation.textMarkupStartIndex, deletedAnnotation.textMarkupEndIndex, multiPageCollection);\n }\n else {\n // eslint-disable-next-line max-len\n this.pdfViewer.fireAnnotationRemove(this.selectTextMarkupCurrentPage, annotationId, deletedAnnotation.textMarkupAnnotationType, annotationBounds, deletedAnnotation.textMarkupContent, deletedAnnotation.textMarkupStartIndex, deletedAnnotation.textMarkupEndIndex);\n }\n this.currentAnnotationIndex = null;\n this.selectTextMarkupCurrentPage = null;\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n // eslint-disable-next-line max-len\n this.pdfViewer.toolbarModule.annotationToolbarModule.hideMobileAnnotationToolbar();\n this.pdfViewer.toolbarModule.showToolbar(true);\n }\n }\n }\n }\n };\n /**\n * @param color\n * @private\n */\n TextMarkupAnnotation.prototype.modifyColorProperty = function (color) {\n if (this.currentTextMarkupAnnotation) {\n var pageAnnotations = this.modifyAnnotationProperty('Color', color, null);\n this.manageAnnotations(pageAnnotations, this.selectTextMarkupCurrentPage);\n this.pdfViewer.annotationModule.renderAnnotations(this.selectTextMarkupCurrentPage, null, null, null);\n this.pdfViewerBase.updateDocumentEditedProperty(true);\n // eslint-disable-next-line\n var annotation = this.currentTextMarkupAnnotation;\n // eslint-disable-next-line max-len\n var multiPageCollection = this.multiPageCollectionList(annotation);\n if (multiPageCollection.length > 0) {\n // eslint-disable-next-line max-len\n this.pdfViewer.fireAnnotationPropertiesChange(this.selectTextMarkupCurrentPage, annotation.annotName, annotation.textMarkupAnnotationType, true, false, false, false, annotation.textMarkupContent, annotation.textMarkupStartIndex, annotation.textMarkupEndIndex, multiPageCollection);\n this.currentAnnotationIndex = null;\n }\n else {\n // eslint-disable-next-line max-len\n this.pdfViewer.fireAnnotationPropertiesChange(this.selectTextMarkupCurrentPage, annotation.annotName, annotation.textMarkupAnnotationType, true, false, false, false, annotation.textMarkupContent, annotation.textMarkupStartIndex, annotation.textMarkupEndIndex);\n this.currentAnnotationIndex = null;\n }\n }\n };\n /**\n * @param args\n * @param isOpacity\n * @private\n */\n TextMarkupAnnotation.prototype.modifyOpacityProperty = function (args, isOpacity) {\n if (this.currentTextMarkupAnnotation) {\n var pageAnnotations = void 0;\n if (isOpacity) {\n pageAnnotations = this.modifyAnnotationProperty('Opacity', isOpacity, 'changed');\n }\n else {\n pageAnnotations = this.modifyAnnotationProperty('Opacity', args.value / 100, args.name);\n }\n if (pageAnnotations) {\n this.manageAnnotations(pageAnnotations, this.selectTextMarkupCurrentPage);\n this.pdfViewer.annotationModule.renderAnnotations(this.selectTextMarkupCurrentPage, null, null, null);\n if (isOpacity || args.name === 'changed') {\n this.pdfViewerBase.updateDocumentEditedProperty(true);\n // eslint-disable-next-line\n var annotation = this.currentTextMarkupAnnotation;\n // eslint-disable-next-line max-len\n var multiPageCollection = this.multiPageCollectionList(annotation);\n if (multiPageCollection.length > 0) {\n // eslint-disable-next-line max-len\n this.pdfViewer.fireAnnotationPropertiesChange(this.selectTextMarkupCurrentPage, annotation.annotName, annotation.textMarkupAnnotationType, false, true, false, false, annotation.textMarkupContent, annotation.textMarkupStartIndex, annotation.textMarkupEndIndex, multiPageCollection);\n this.currentAnnotationIndex = null;\n }\n else {\n // eslint-disable-next-line max-len\n this.pdfViewer.fireAnnotationPropertiesChange(this.selectTextMarkupCurrentPage, annotation.annotName, annotation.textMarkupAnnotationType, false, true, false, false, annotation.textMarkupContent, annotation.textMarkupStartIndex, annotation.textMarkupEndIndex);\n this.currentAnnotationIndex = null;\n }\n }\n }\n }\n };\n /**\n * @param property\n * @param value\n * @param status\n * @param annotName\n * @private\n */\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.modifyAnnotationProperty = function (property, value, status, annotName) {\n // eslint-disable-next-line\n var annotation = this.currentTextMarkupAnnotation;\n this.pdfViewer.annotationModule.isFormFieldShape = false;\n if (annotation.isMultiSelect && annotation.annotNameCollection) {\n this.modifyMultiPageAnnotations(annotation, property, value);\n }\n var pageAnnotations = this.getAnnotations(this.selectTextMarkupCurrentPage, null);\n if (pageAnnotations) {\n for (var i = 0; i < pageAnnotations.length; i++) {\n if (JSON.stringify(this.currentTextMarkupAnnotation) === JSON.stringify(pageAnnotations[i])) {\n if (property === 'Color') {\n pageAnnotations[i].color = value;\n }\n else if (property === 'Opacity') {\n pageAnnotations[i].opacity = value;\n }\n else if (property === 'AnnotationSettings') {\n pageAnnotations[i].annotationSettings = { isLock: value };\n }\n pageAnnotations[i].modifiedDate = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n this.currentAnnotationIndex = i;\n if (status === null || status === 'changed') {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.addAction(this.selectTextMarkupCurrentPage, i, this.currentTextMarkupAnnotation, 'Text Markup Property modified', property);\n }\n this.currentTextMarkupAnnotation = pageAnnotations[i];\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateAnnotationModifiedDate(pageAnnotations[i]);\n this.pdfViewer.annotationModule.storeAnnotationCollections(pageAnnotations[i], this.selectTextMarkupCurrentPage);\n }\n }\n }\n return pageAnnotations;\n };\n /**\n * @param annotation\n * @param pageNumber\n * @param index\n * @param action\n * @private\n */\n TextMarkupAnnotation.prototype.undoTextMarkupAction = function (annotation, pageNumber, index, action) {\n var pageAnnotations = this.getAnnotations(pageNumber, null);\n if (pageAnnotations) {\n if (action === 'Text Markup Added') {\n this.pdfViewer.annotation.stickyNotesAnnotationModule.findPosition(pageAnnotations[index], 'textMarkup');\n // eslint-disable-next-line\n var removeDiv = document.getElementById(pageAnnotations[index].annotName);\n if (removeDiv) {\n if (removeDiv.parentElement.childElementCount === 1) {\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateAccordionContainer(removeDiv);\n }\n else {\n removeDiv.parentElement.removeChild(removeDiv);\n }\n }\n pageAnnotations.splice(index, 1);\n }\n else if (action === 'Text Markup Deleted') {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.addAnnotationComments(pageNumber, annotation.shapeAnnotationType);\n pageAnnotations.splice(index, 0, annotation);\n }\n }\n this.clearCurrentAnnotation();\n this.pdfViewerBase.updateDocumentEditedProperty(true);\n this.manageAnnotations(pageAnnotations, pageNumber);\n this.pdfViewer.annotationModule.renderAnnotations(pageNumber, null, null, null);\n };\n /**\n * @param annotation\n * @param pageNumber\n * @param index\n * @param property\n * @param isUndoAction\n * @param annotation\n * @param pageNumber\n * @param index\n * @param property\n * @param isUndoAction\n * @param annotation\n * @param pageNumber\n * @param index\n * @param property\n * @param isUndoAction\n * @param annotation\n * @param pageNumber\n * @param index\n * @param property\n * @param isUndoAction\n * @private\n */\n // eslint-disable-next-line max-len\n TextMarkupAnnotation.prototype.undoRedoPropertyChange = function (annotation, pageNumber, index, property, isUndoAction) {\n var pageAnnotations = this.getAnnotations(pageNumber, null);\n if (pageAnnotations) {\n if (property === 'Color') {\n var tempColor = pageAnnotations[index].color;\n pageAnnotations[index].color = annotation.color;\n annotation.color = tempColor;\n }\n else {\n var tempOpacity = pageAnnotations[index].opacity;\n pageAnnotations[index].opacity = annotation.opacity;\n annotation.opacity = tempOpacity;\n }\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateAnnotationModifiedDate(annotation, null, true);\n if (isUndoAction) {\n annotation.modifiedDate = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n }\n }\n this.clearCurrentAnnotation();\n this.pdfViewerBase.updateDocumentEditedProperty(true);\n this.manageAnnotations(pageAnnotations, pageNumber);\n this.pdfViewer.annotationModule.renderAnnotations(pageNumber, null, null, null);\n return annotation;\n };\n /**\n * @param annotation\n * @param pageNumber\n * @param index\n * @param action\n * @private\n */\n TextMarkupAnnotation.prototype.redoTextMarkupAction = function (annotation, pageNumber, index, action) {\n var pageAnnotations = this.getAnnotations(pageNumber, null);\n if (pageAnnotations) {\n if (action === 'Text Markup Added') {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.addAnnotationComments(pageNumber, annotation.shapeAnnotationType);\n pageAnnotations.push(annotation);\n }\n else if (action === 'Text Markup Deleted') {\n this.pdfViewer.annotation.stickyNotesAnnotationModule.findPosition(pageAnnotations[index], 'textMarkup');\n // eslint-disable-next-line\n var removeDiv = document.getElementById(pageAnnotations[index].annotName);\n if (removeDiv) {\n if (removeDiv.parentElement.childElementCount === 1) {\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateAccordionContainer(removeDiv);\n }\n else {\n removeDiv.remove();\n }\n }\n pageAnnotations.splice(index, 1);\n }\n }\n this.clearCurrentAnnotation();\n this.pdfViewerBase.updateDocumentEditedProperty(true);\n this.manageAnnotations(pageAnnotations, pageNumber);\n this.pdfViewer.annotationModule.renderAnnotations(pageNumber, null, null, null);\n };\n /**\n * @param pageNumber\n * @param note\n * @param pageNumber\n * @param note\n * @private\n */\n TextMarkupAnnotation.prototype.saveNoteContent = function (pageNumber, note) {\n var pageAnnotations = this.getAnnotations(pageNumber, null);\n if (pageAnnotations) {\n for (var i = 0; i < pageAnnotations.length; i++) {\n if (JSON.stringify(this.currentTextMarkupAnnotation) === JSON.stringify(pageAnnotations[i])) {\n pageAnnotations[i].note = note;\n }\n }\n }\n this.manageAnnotations(pageAnnotations, pageNumber);\n this.pdfViewerBase.updateDocumentEditedProperty(true);\n };\n TextMarkupAnnotation.prototype.clearCurrentAnnotation = function () {\n if (!this.isExtended) {\n if (this.pdfViewer.isMaintainSelection && !this.pdfViewer.textSelectionModule.isTextSelection) {\n this.selectTextMarkupCurrentPage = this.selectTextMarkupCurrentPage;\n this.currentTextMarkupAnnotation = this.currentTextMarkupAnnotation;\n }\n else {\n this.selectTextMarkupCurrentPage = null;\n this.currentTextMarkupAnnotation = null;\n }\n var isSkip = false;\n // eslint-disable-next-line max-len\n if (this.pdfViewer.annotation.freeTextAnnotationModule && this.pdfViewer.annotation.freeTextAnnotationModule.isInuptBoxInFocus) {\n isSkip = true;\n }\n if (!isSkip) {\n this.enableAnnotationPropertiesTool(false);\n }\n }\n };\n /**\n * @param pageNumber\n * @param isSelect\n * @param pageNumber\n * @param isSelect\n * @private\n */\n TextMarkupAnnotation.prototype.clearCurrentAnnotationSelection = function (pageNumber, isSelect) {\n if (isSelect) {\n this.isAnnotationSelect = true;\n }\n else {\n this.isAnnotationSelect = false;\n }\n var lowerPageIndex = (pageNumber - 2) >= 0 ? (pageNumber - 2) : 0;\n // eslint-disable-next-line max-len\n var higherPageIndex = (pageNumber + 2) < this.pdfViewerBase.pageCount ? (pageNumber + 2) : this.pdfViewerBase.pageCount - 1;\n for (var k = lowerPageIndex; k <= higherPageIndex; k++) {\n this.clearAnnotationSelection(k);\n }\n };\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.getBoundsForSave = function (bounds, pageIndex) {\n // eslint-disable-next-line\n var newArray = [];\n for (var i = 0; i < bounds.length; i++) {\n // eslint-disable-next-line\n var bound = this.getAnnotationBounds(bounds[i], pageIndex);\n newArray.push(bound);\n }\n return newArray;\n };\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.getAnnotationBounds = function (bounds, pageIndex) {\n var left = bounds.left ? bounds.left : bounds.Left;\n var top = bounds.top ? bounds.top : bounds.Top;\n var height = bounds.height ? bounds.height : bounds.Height;\n var width = bounds.width ? bounds.width : bounds.Width;\n var pageDetails = this.pdfViewerBase.pageSize[pageIndex];\n left = left ? left : bounds.x;\n top = top ? top : bounds.y;\n if (pageDetails) {\n if (pageDetails.rotation === 1) {\n return { left: top, top: pageDetails.width - (left + width), width: height, height: width };\n }\n else if (pageDetails.rotation === 2) {\n // eslint-disable-next-line max-len\n return { left: pageDetails.width - left - width, top: pageDetails.height - top - height, width: width, height: height };\n }\n else if (pageDetails.rotation === 3) {\n return { left: pageDetails.height - top - height, top: left, width: height, height: width };\n }\n else {\n return { left: left, top: top, width: width, height: height };\n }\n }\n else {\n return { left: left, top: top, width: width, height: height };\n }\n };\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.getRgbCode = function (colorString) {\n if (!colorString.match(/#([a-z0-9]+)/gi) && !colorString.match(/^rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+)(?:,\\s*(\\d+(?:\\.\\d+)?))?\\)$/)) {\n colorString = this.pdfViewer.annotationModule.nameToHash(colorString);\n }\n var markupStringArray = colorString.split(',');\n if (isNullOrUndefined(markupStringArray[1])) {\n colorString = this.pdfViewer.annotationModule.getValue(colorString, 'rgba');\n markupStringArray = colorString.split(',');\n }\n // eslint-disable-next-line radix\n var textMarkupR = parseInt(markupStringArray[0].split('(')[1]);\n // eslint-disable-next-line radix\n var textMarkupG = parseInt(markupStringArray[1]);\n // eslint-disable-next-line radix\n var textMarkupB = parseInt(markupStringArray[2]);\n // eslint-disable-next-line radix\n var textMarkupA = parseInt(markupStringArray[3]);\n return { a: textMarkupA, r: textMarkupR, g: textMarkupG, b: textMarkupB };\n };\n TextMarkupAnnotation.prototype.getDrawnBounds = function () {\n var pageBounds = [];\n var selection = window.getSelection();\n if (selection.anchorNode !== null) {\n var range = document.createRange();\n var isBackWardSelection = this.pdfViewerBase.textLayer.isBackWardSelection(selection);\n if (selection.anchorNode === selection.focusNode) {\n var pageId = this.pdfViewerBase.textLayer.getPageIndex(selection.anchorNode);\n var startIndex = 0;\n var endIndex = 0;\n if (!isNaN(pageId)) {\n var pageRect = this.pdfViewerBase.getElement('_pageDiv_' + pageId).getBoundingClientRect();\n if (this.pdfViewerBase.isMixedSizeDocument) {\n pageRect = this.pdfViewerBase.getElement('_textLayer_' + pageId).getBoundingClientRect();\n }\n if (isBackWardSelection) {\n range.setStart(selection.focusNode, selection.focusOffset);\n range.setEnd(selection.anchorNode, selection.anchorOffset);\n }\n else {\n if (selection.anchorOffset < selection.focusOffset) {\n startIndex = selection.anchorOffset;\n endIndex = selection.focusOffset;\n range.setStart(selection.anchorNode, selection.anchorOffset);\n range.setEnd(selection.focusNode, selection.focusOffset);\n }\n else {\n startIndex = selection.focusOffset;\n endIndex = selection.anchorOffset;\n range.setStart(selection.focusNode, selection.focusOffset);\n range.setEnd(selection.anchorNode, selection.anchorOffset);\n }\n }\n var boundingRect = range.getBoundingClientRect();\n // eslint-disable-next-line\n var indexes = this.getIndexNumbers(pageId, range.toString(), range.commonAncestorContainer.textContent.toString());\n // eslint-disable-next-line max-len\n var rectangle = { left: this.getDefaultValue(boundingRect.left - pageRect.left), top: this.getDefaultValue(boundingRect.top - pageRect.top), width: this.getDefaultValue(boundingRect.width), height: this.getDefaultValue(boundingRect.height), right: this.getDefaultValue(boundingRect.right - pageRect.left), bottom: this.getDefaultValue(boundingRect.bottom - pageRect.top) };\n var rectangleArray = [];\n rectangleArray.push(rectangle);\n // eslint-disable-next-line\n var rect = { left: rectangle.left, top: rectangle.top, right: rectangle.right, bottom: rectangle.bottom };\n pageBounds.push({ pageIndex: pageId, bounds: rectangleArray, rect: rect, startIndex: indexes.startIndex, endIndex: indexes.endIndex, textContent: range.toString() });\n }\n }\n else {\n var startNode = void 0;\n var endNode = void 0;\n var selectionStartOffset = void 0;\n var selectionEndOffset = void 0;\n if (isBackWardSelection) {\n startNode = selection.focusNode;\n selectionStartOffset = selection.focusOffset;\n endNode = selection.anchorNode;\n selectionEndOffset = selection.anchorOffset;\n }\n else {\n startNode = selection.anchorNode;\n selectionStartOffset = selection.anchorOffset;\n endNode = selection.focusNode;\n selectionEndOffset = selection.focusOffset;\n }\n var anchorPageId = this.pdfViewerBase.textLayer.getPageIndex(startNode);\n var anchorTextId = this.pdfViewerBase.textLayer.getTextIndex(startNode, anchorPageId);\n var focusPageId = this.pdfViewerBase.textLayer.getPageIndex(endNode);\n var focusTextId = this.pdfViewerBase.textLayer.getTextIndex(endNode, focusPageId);\n var startOffset = 0;\n var endOffset = 0;\n var currentId = 0;\n for (var i = anchorPageId; i <= focusPageId; i++) {\n var selectionRects = [];\n var pageStartId = void 0;\n var pageEndId = void 0;\n var pageStartOffset = void 0;\n var pageEndOffset = void 0;\n var textDivs = this.pdfViewerBase.getElement('_textLayer_' + i).childNodes;\n var pageRect = this.pdfViewerBase.getElement('_pageDiv_' + i).getBoundingClientRect();\n if (this.pdfViewerBase.isMixedSizeDocument) {\n pageRect = this.pdfViewerBase.getElement('_textLayer_' + i).getBoundingClientRect();\n }\n if (i === anchorPageId) {\n currentId = anchorTextId;\n }\n else {\n currentId = 0;\n }\n for (var j = currentId; j < textDivs.length; j++) {\n var textElement = textDivs[j];\n if (j === currentId) {\n pageStartId = currentId;\n pageStartOffset = (i === anchorPageId) ? selectionStartOffset : 0;\n }\n else {\n pageEndId = j;\n pageEndOffset = (i === focusPageId) ? selectionEndOffset : textElement.textContent.length;\n }\n if (j === anchorTextId && i === anchorPageId) {\n startOffset = selectionStartOffset;\n }\n else {\n startOffset = 0;\n }\n if (j === focusTextId && i === focusPageId) {\n endOffset = selectionEndOffset;\n }\n else {\n endOffset = textElement.textContent.length;\n }\n for (var k = 0; k < textElement.childNodes.length; k++) {\n var node = textElement.childNodes[k];\n range.setStart(node, startOffset);\n range.setEnd(node, endOffset);\n }\n var boundingRect = range.getBoundingClientRect();\n // eslint-disable-next-line max-len\n var rectangle = { left: this.getDefaultValue(boundingRect.left - pageRect.left), top: this.getDefaultValue(boundingRect.top - pageRect.top), width: this.getDefaultValue(boundingRect.width), height: this.getDefaultValue(boundingRect.height), right: this.getDefaultValue(boundingRect.right - pageRect.left), bottom: this.getDefaultValue(boundingRect.bottom - pageRect.top) };\n selectionRects.push(rectangle);\n range.detach();\n if (i === focusPageId && j === focusTextId) {\n break;\n }\n }\n if (!pageEndId) {\n pageEndId = pageStartId;\n }\n if (!pageEndOffset) {\n pageEndOffset = endOffset;\n }\n var startElementNode = this.pdfViewerBase.getElement('_text_' + i + '_' + pageStartId).childNodes[0];\n var endElementNode = this.pdfViewerBase.getElement('_text_' + i + '_' + pageEndId).childNodes[0];\n var pageRange = document.createRange();\n pageRange.setStart(startElementNode, pageStartOffset);\n pageRange.setEnd(endElementNode, pageEndOffset);\n var pageRectBounds = pageRange.getBoundingClientRect();\n var textValue = pageRange.toString();\n // eslint-disable-next-line\n var indexes = this.getIndexNumbers(i, textValue);\n // eslint-disable-next-line max-len\n var pageRectangle = { left: this.getDefaultValue(pageRectBounds.left - pageRect.left), top: this.getDefaultValue(pageRectBounds.top - pageRect.top), width: this.getDefaultValue(pageRectBounds.width), height: this.getDefaultValue(pageRectBounds.height), right: this.getDefaultValue(pageRectBounds.right - pageRect.left), bottom: this.getDefaultValue(pageRectBounds.bottom - pageRect.top) };\n // eslint-disable-next-line\n var rect = { left: pageRectangle.left, top: pageRectangle.top, right: pageRectangle.right, bottom: pageRectangle.bottom };\n pageBounds.push({ pageIndex: i, bounds: selectionRects, rect: rect, startIndex: indexes.startIndex, endIndex: indexes.endIndex, textContent: textValue });\n }\n }\n }\n selection.removeAllRanges();\n return pageBounds;\n };\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.getIndexNumbers = function (pageNumber, content, parentText) {\n // eslint-disable-next-line\n var storedData = this.pdfViewerBase.getStoredData(pageNumber);\n var startIndex;\n var endIndex;\n if (storedData) {\n var previousIndex = 0;\n var pageText = storedData.pageText;\n for (var p = 0; p < pageNumber; p++) {\n if (this.pdfViewer.isExtractText) {\n // eslint-disable-next-line\n var documentIndex = this.pdfViewer.textSearchModule.documentTextCollection[p][p];\n var pageTextData = documentIndex.pageText ? documentIndex.pageText : documentIndex.PageText;\n // eslint-disable-next-line max-len\n if (this.pdfViewer.textSearchModule && this.pdfViewer.textSearchModule.documentTextCollection && this.pdfViewer.textSearchModule.isTextRetrieved) {\n if (this.pdfViewer.textSearchModule.documentTextCollection[p]) {\n previousIndex = previousIndex + pageTextData.length;\n }\n }\n else {\n // eslint-disable-next-line max-len\n if (this.pdfViewer.textSearchModule && this.pdfViewer.textSearchModule.documentTextCollection) {\n if (pageNumber <= this.pdfViewer.textSearchModule.documentTextCollection.length) {\n if (this.pdfViewer.textSearchModule.documentTextCollection[p]) {\n // eslint-disable-next-line max-len\n previousIndex = previousIndex + pageTextData.length;\n }\n }\n else {\n previousIndex = 0;\n break;\n }\n }\n }\n }\n }\n if (!isNullOrUndefined(parentText)) {\n var parentIndex = pageText.indexOf(parentText);\n var initialIndex = parentText.indexOf(content);\n startIndex = (parentIndex + initialIndex) + previousIndex;\n }\n else {\n startIndex = (pageText.indexOf(content)) + previousIndex;\n }\n endIndex = startIndex + (content.length - 1);\n }\n return { startIndex: startIndex, endIndex: endIndex };\n };\n /**\n * @param pageNumber\n * @private\n */\n TextMarkupAnnotation.prototype.rerenderAnnotationsPinch = function (pageNumber) {\n var annotCanvas = this.pdfViewerBase.getElement('_annotationCanvas_' + pageNumber);\n if (annotCanvas) {\n var oldAnnotCanvas = this.pdfViewerBase.getElement('_old_annotationCanvas_' + pageNumber);\n if (oldAnnotCanvas) {\n if (annotCanvas) {\n oldAnnotCanvas.id = annotCanvas.id;\n annotCanvas.parentElement.removeChild(annotCanvas);\n }\n else {\n oldAnnotCanvas.id = this.pdfViewer.element.id + '_annotationCanvas_' + pageNumber;\n }\n annotCanvas = oldAnnotCanvas;\n }\n annotCanvas.style.width = '';\n annotCanvas.style.height = '';\n if (this.pdfViewer.restrictZoomRequest) {\n // eslint-disable-next-line max-len\n annotCanvas.style.width = this.pdfViewerBase.pageSize[pageNumber].width * this.pdfViewerBase.getZoomFactor() + 'px';\n // eslint-disable-next-line max-len\n annotCanvas.style.height = this.pdfViewerBase.pageSize[pageNumber].height * this.pdfViewerBase.getZoomFactor() + 'px';\n }\n else {\n // eslint-disable-next-line max-len\n annotCanvas.width = this.pdfViewerBase.pageSize[pageNumber].width * this.pdfViewerBase.getZoomFactor();\n annotCanvas.height = this.pdfViewerBase.pageSize[pageNumber].height * this.pdfViewerBase.getZoomFactor();\n }\n this.renderTextMarkupAnnotations(null, pageNumber, annotCanvas, this.pdfViewerBase.getZoomFactor());\n }\n };\n /**\n * @param pageNumber\n * @private\n */\n TextMarkupAnnotation.prototype.rerenderAnnotations = function (pageNumber) {\n // eslint-disable-next-line\n var oldCanvasCollection = document.querySelectorAll('#' + this.pdfViewer.element.id + '_old_annotationCanvas_' + pageNumber);\n for (var i = 0; i < oldCanvasCollection.length; i++) {\n if (oldCanvasCollection[i]) {\n oldCanvasCollection[i].parentElement.removeChild(oldCanvasCollection[i]);\n }\n }\n var newCanvas = this.pdfViewerBase.getElement('_annotationCanvas_' + pageNumber);\n if (newCanvas) {\n newCanvas.style.display = 'block';\n }\n };\n /**\n * @param event\n * @private\n */\n TextMarkupAnnotation.prototype.onTextMarkupAnnotationMouseUp = function (event) {\n var pageNumber = this.pdfViewer.annotationModule.getEventPageNumber(event);\n if (!isNullOrUndefined(pageNumber) && !isNaN(pageNumber)) {\n var canvas = this.pdfViewerBase.getElement('_annotationCanvas_' + pageNumber);\n if (this.currentTextMarkupAnnotation) {\n this.selectedTextMarkup = this.currentTextMarkupAnnotation;\n }\n else {\n this.selectedTextMarkup = null;\n }\n this.clearCurrentSelectedAnnotation();\n var currentAnnot = this.getCurrentMarkupAnnotation(event.clientX, event.clientY, pageNumber, canvas);\n if (currentAnnot && !window.getSelection().toString()) {\n var isLock = false;\n var isSelection = false;\n if (currentAnnot.annotationSettings && currentAnnot.annotationSettings.isLock) {\n isLock = currentAnnot.annotationSettings.isLock;\n if (isLock && this.pdfViewer.annotationModule.checkAllowedInteractions('Select', currentAnnot)) {\n isLock = false;\n if (this.pdfViewer.annotationModule.checkAllowedInteractions('PropertyChange', currentAnnot)) {\n isSelection = false;\n }\n else {\n isSelection = true;\n }\n }\n }\n if (!isLock) {\n var canvasParentPosition = canvas.parentElement.getBoundingClientRect();\n var leftClickPosition = event.clientX - canvasParentPosition.left;\n var topClickPosition = event.clientY - canvasParentPosition.top;\n this.annotationClickPosition = { x: leftClickPosition, y: topClickPosition };\n this.selectAnnotation(currentAnnot, canvas, pageNumber, event);\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode && this.pdfViewer.enableToolbar && this.pdfViewer.enableAnnotationToolbar) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.createPropertyTools(this.currentTextMarkupAnnotation.textMarkupAnnotationType);\n }\n this.currentTextMarkupAnnotation = currentAnnot;\n this.selectTextMarkupCurrentPage = pageNumber;\n if (!isSelection) {\n this.enableAnnotationPropertiesTool(true);\n }\n var commentPanelDiv = document.getElementById(this.pdfViewer.element.id + '_commantPanel');\n if (commentPanelDiv && commentPanelDiv.style.display === 'block') {\n // eslint-disable-next-line\n var accordionExpand = document.getElementById(this.pdfViewer.element.id + '_accordionContainer' + (pageNumber + 1));\n if (accordionExpand) {\n accordionExpand.ej2_instances[0].expandItem(true);\n }\n // eslint-disable-next-line\n var comments = document.getElementById(currentAnnot.annotName);\n if (comments) {\n comments.firstChild.click();\n }\n }\n if (!isBlazor()) {\n if (this.pdfViewer.toolbarModule && this.pdfViewer.enableAnnotationToolbar) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.isToolbarHidden = true;\n // eslint-disable-next-line max-len\n this.pdfViewer.toolbarModule.annotationToolbarModule.showAnnotationToolbar(this.pdfViewer.toolbarModule.annotationItem);\n }\n }\n }\n }\n else {\n this.clearCurrentAnnotation();\n }\n if (this.pdfViewer.isMaintainSelection && !this.pdfViewer.textSelectionModule.isTextSelection) {\n if (currentAnnot) {\n this.clearCurrentAnnotationSelection(pageNumber);\n }\n }\n else {\n this.clearCurrentAnnotationSelection(pageNumber);\n }\n }\n else {\n if (!this.pdfViewerBase.isClickedOnScrollBar(event, true)) {\n this.clearCurrentAnnotation();\n this.clearCurrentAnnotationSelection(pageNumber);\n }\n }\n };\n /**\n * @param event\n * @private\n */\n TextMarkupAnnotation.prototype.onTextMarkupAnnotationTouchEnd = function (event) {\n var pageNumber = this.pdfViewer.annotationModule.getEventPageNumber(event);\n if (!isNullOrUndefined(pageNumber) && !isNaN(pageNumber)) {\n if (this.currentTextMarkupAnnotation) {\n this.selectedTextMarkup = this.currentTextMarkupAnnotation;\n }\n else {\n this.selectedTextMarkup = null;\n }\n this.clearCurrentAnnotationSelection(pageNumber);\n var touchCanvas = this.pdfViewerBase.getElement('_annotationCanvas_' + pageNumber);\n this.clearCurrentSelectedAnnotation();\n // eslint-disable-next-line max-len\n var currentAnnot = this.getCurrentMarkupAnnotation(event.touches[0].clientX, event.touches[0].clientY, pageNumber, touchCanvas);\n if (currentAnnot) {\n var isLock = false;\n if (currentAnnot.annotationSettings && currentAnnot.annotationSettings.isLock) {\n isLock = currentAnnot.annotationSettings.isLock;\n }\n if (!isLock) {\n var canvasParentPosition = touchCanvas.parentElement.getBoundingClientRect();\n var leftClickPosition = event.touches[0].clientX - canvasParentPosition.left;\n var topClickPosition = event.touches[0].clientY - canvasParentPosition.top;\n this.annotationClickPosition = { x: leftClickPosition, y: topClickPosition };\n this.selectAnnotation(currentAnnot, touchCanvas, pageNumber, event);\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode && this.pdfViewer.enableToolbar && this.pdfViewer.enableAnnotationToolbar) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.createPropertyTools(this.currentTextMarkupAnnotation.textMarkupAnnotationType);\n }\n this.currentTextMarkupAnnotation = currentAnnot;\n this.selectTextMarkupCurrentPage = pageNumber;\n this.enableAnnotationPropertiesTool(true);\n // eslint-disable-next-line\n var accordionExpand = document.getElementById(this.pdfViewer.element.id + '_accordionContainer' + (pageNumber + 1));\n if (accordionExpand) {\n accordionExpand.ej2_instances[0].expandItem(true);\n }\n // eslint-disable-next-line\n var comments = document.getElementById(currentAnnot.annotName);\n if (comments) {\n if (!Browser.isDevice) {\n comments.firstChild.click();\n }\n }\n }\n }\n else {\n this.clearCurrentAnnotation();\n }\n this.clearCurrentAnnotationSelection(pageNumber);\n }\n else if (this.selectTextMarkupCurrentPage != null && (Browser.isDevice && !this.pdfViewer.enableDesktopMode)) {\n var number = this.selectTextMarkupCurrentPage;\n this.selectTextMarkupCurrentPage = null;\n this.clearAnnotationSelection(number);\n }\n else {\n this.clearCurrentAnnotation();\n this.clearCurrentAnnotationSelection(pageNumber);\n }\n };\n /**\n * @private\n */\n TextMarkupAnnotation.prototype.clearCurrentSelectedAnnotation = function () {\n if (this.currentTextMarkupAnnotation) {\n this.clearAnnotationSelection(this.selectTextMarkupCurrentPage);\n // eslint-disable-next-line\n var currentAnnot = this.currentTextMarkupAnnotation;\n this.pdfViewer.fireAnnotationUnSelect(currentAnnot.annotName, currentAnnot.pageNumber, currentAnnot);\n this.clearCurrentAnnotation();\n }\n };\n /**\n * @param event\n * @private\n */\n TextMarkupAnnotation.prototype.onTextMarkupAnnotationMouseMove = function (event) {\n var eventTarget = event.target;\n // eslint-disable-next-line\n var pageIndex = parseInt(eventTarget.id.split('_text_')[1]) || parseInt(eventTarget.id.split('_textLayer_')[1]) || parseInt(eventTarget.id.split('_annotationCanvas_')[1]);\n if (event.target && (eventTarget.id.indexOf('_text') > -1 || eventTarget.id.indexOf('_annotationCanvas') > -1 || eventTarget.classList.contains('e-pv-hyperlink')) && this.pdfViewer.annotation) {\n pageIndex = this.pdfViewer.annotation.getEventPageNumber(event);\n var canvas = this.pdfViewerBase.getElement('_annotationCanvas_' + pageIndex);\n var currentAnnot = this.getCurrentMarkupAnnotation(event.clientX, event.clientY, pageIndex, canvas);\n if (currentAnnot) {\n eventTarget.style.cursor = 'pointer';\n // eslint-disable-next-line\n var currentPosition = this.pdfViewerBase.getMousePosition(event);\n // eslint-disable-next-line\n var relativePosition = this.pdfViewerBase.relativePosition(event);\n // eslint-disable-next-line\n var viewerPositions = { left: relativePosition.x, top: relativePosition.y };\n // eslint-disable-next-line\n var mousePositions = { left: currentPosition.x, top: currentPosition.y };\n // eslint-disable-next-line\n var annotationSettings = { opacity: currentAnnot.opacity, color: currentAnnot.color, author: currentAnnot.author, subject: currentAnnot.subject, modifiedDate: currentAnnot.modifiedDate };\n // eslint-disable-next-line max-len\n this.pdfViewerBase.isMousedOver = true;\n this.pdfViewer.fireAnnotationMouseover(currentAnnot.annotName, currentAnnot.pageNumber, currentAnnot.textMarkupAnnotationType, currentAnnot.bounds, annotationSettings, mousePositions, viewerPositions);\n // this.showPopupNote(event, currentAnnot);\n }\n else {\n this.pdfViewer.annotationModule.hidePopupNote();\n if (this.pdfViewerBase.isPanMode && !this.pdfViewerBase.getAnnotationToolStatus()) {\n eventTarget.style.cursor = 'grab';\n }\n if (this.pdfViewerBase.isMousedOver && !this.pdfViewerBase.isFormFieldMousedOver) {\n this.pdfViewer.fireAnnotationMouseLeave(pageIndex);\n this.pdfViewerBase.isMousedOver = false;\n }\n }\n }\n };\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.showPopupNote = function (event, annotation) {\n if (annotation.note) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.showPopupNote(event, annotation.color, annotation.author, annotation.note, annotation.textMarkupAnnotationType);\n }\n };\n TextMarkupAnnotation.prototype.getCurrentMarkupAnnotation = function (clientX, clientY, pageNumber, canvas) {\n var currentTextMarkupAnnotations = [];\n if (canvas) {\n var canvasParentPosition = canvas.parentElement.getBoundingClientRect();\n if (canvas.clientWidth !== canvas.parentElement.clientWidth) {\n canvasParentPosition = canvas.getBoundingClientRect();\n }\n var leftClickPosition = clientX - canvasParentPosition.left;\n var topClickPosition = clientY - canvasParentPosition.top;\n var annotationList = this.getAnnotations(pageNumber, null);\n var isAnnotationGot = false;\n if (annotationList) {\n for (var i = 0; i < annotationList.length; i++) {\n var annotation = annotationList[i];\n for (var j = 0; j < annotation.bounds.length; j++) {\n // eslint-disable-next-line\n var bound = annotation.bounds[j];\n var left = bound.left ? bound.left : bound.Left;\n var top_2 = bound.top ? bound.top : bound.Top;\n var width = bound.width ? bound.width : bound.Width;\n var height = bound.height ? bound.height : bound.Height;\n // eslint-disable-next-line max-len\n if (leftClickPosition >= this.getMagnifiedValue(left, this.pdfViewerBase.getZoomFactor()) && leftClickPosition <= this.getMagnifiedValue(left + width, this.pdfViewerBase.getZoomFactor()) && topClickPosition >= this.getMagnifiedValue(top_2, this.pdfViewerBase.getZoomFactor()) && topClickPosition <= this.getMagnifiedValue(top_2 + height, this.pdfViewerBase.getZoomFactor())) {\n currentTextMarkupAnnotations.push(annotation);\n isAnnotationGot = true;\n }\n else {\n if (isAnnotationGot) {\n isAnnotationGot = false;\n break;\n }\n }\n }\n }\n }\n var currentAnnot = null;\n if (currentTextMarkupAnnotations.length > 1) {\n currentAnnot = this.compareCurrentAnnotations(currentTextMarkupAnnotations);\n }\n else if (currentTextMarkupAnnotations.length === 1) {\n currentAnnot = currentTextMarkupAnnotations[0];\n }\n return currentAnnot;\n }\n else {\n return null;\n }\n };\n TextMarkupAnnotation.prototype.compareCurrentAnnotations = function (annotations) {\n var previousX;\n var currentAnnotation = null;\n for (var i = 0; i < annotations.length; i++) {\n if (i === annotations.length - 1) {\n break;\n }\n // eslint-disable-next-line\n var firstAnnotBounds = annotations[i].bounds;\n var firstXposition = firstAnnotBounds[0].left ? firstAnnotBounds[0].left : firstAnnotBounds[0].Left;\n var firstYposition = firstAnnotBounds[0].top ? firstAnnotBounds[0].top : firstAnnotBounds[0].Top;\n // eslint-disable-next-line\n var secondAnnotBounds = annotations[i + 1].bounds;\n var secondXposition = secondAnnotBounds[0].left ? secondAnnotBounds[0].left : secondAnnotBounds[0].Left;\n var secondYposition = secondAnnotBounds[0].top ? secondAnnotBounds[0].top : secondAnnotBounds[0].Top;\n if ((firstXposition < secondXposition) || (firstYposition < secondYposition)) {\n previousX = secondXposition;\n currentAnnotation = annotations[i + 1];\n }\n else {\n previousX = firstXposition;\n currentAnnotation = annotations[i];\n }\n if (previousX && (i === (annotations.length - 2))) {\n if ((previousX === firstXposition) && (previousX === secondXposition)) {\n previousX = secondXposition;\n currentAnnotation = annotations[i + 1];\n }\n }\n }\n return currentAnnotation;\n };\n /**\n * @param pageNumber\n * @private\n */\n TextMarkupAnnotation.prototype.clearAnnotationSelection = function (pageNumber) {\n var canvas = this.pdfViewerBase.getElement('_annotationCanvas_' + pageNumber);\n if (canvas) {\n var context = canvas.getContext('2d');\n context.setLineDash([]);\n this.pdfViewer.annotationModule.renderAnnotations(pageNumber, null, null, null);\n }\n };\n /**\n * @param annotation\n * @param canvas\n * @param pageNumber\n * @param event\n * @param isProgrammaticSelection\n * @param annotation\n * @param canvas\n * @param pageNumber\n * @param event\n * @param isProgrammaticSelection\n * @private\n */\n // eslint-disable-next-line max-len\n TextMarkupAnnotation.prototype.selectAnnotation = function (annotation, canvas, pageNumber, event, isProgrammaticSelection) {\n if (this.pdfViewer.selectedItems.annotations[0]) {\n this.pdfViewer.clearSelection(this.pdfViewer.selectedItems.annotations[0].pageIndex);\n this.pdfViewer.clearSelection(this.selectTextMarkupCurrentPage);\n }\n var isLock = false;\n if (annotation.annotationSettings && annotation.annotationSettings.isLock) {\n isLock = annotation.annotationSettings.isLock;\n if (isLock && this.pdfViewer.annotationModule.checkAllowedInteractions('Select', annotation)) {\n isLock = false;\n }\n }\n if (!isLock) {\n var isCurrentTextMarkup = false;\n if (!this.currentTextMarkupAnnotation) {\n isCurrentTextMarkup = true;\n }\n if (this.selectedTextMarkup && annotation && !isProgrammaticSelection) {\n if (this.selectedTextMarkup.annotName === annotation.annotName) {\n isCurrentTextMarkup = false;\n }\n else {\n isCurrentTextMarkup = true;\n }\n }\n if (!isNaN(pageNumber)) {\n this.selectTextMarkupCurrentPage = pageNumber;\n this.currentTextMarkupAnnotation = annotation;\n annotation = this.retreiveTextIndex(annotation);\n this.currentTextMarkupAnnotation = annotation;\n }\n if (this.isSelectedAnnotation && this.pdfViewer.textSelectionModule) {\n this.pdfViewerBase.isSelection = true;\n this.updateAnnotationBounds();\n }\n // eslint-disable-next-line\n var currentEvent = event;\n if (this.isEnableTextMarkupResizer(annotation.textMarkupAnnotationType) && annotation && currentEvent && !currentEvent.touches) {\n this.updateCurrentResizerPosition(annotation);\n }\n this.drawAnnotationSelector(annotation, this.currentTextMarkupAnnotation, canvas);\n if (annotation.isMultiSelect && annotation.annotNameCollection) {\n this.selectMultiPageAnnotations(annotation);\n }\n if (annotation.annotName !== '' && !this.isNewAnnotation) {\n if (isCurrentTextMarkup) {\n var isSelected = false;\n if (!currentEvent) {\n isSelected = true;\n }\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.annotationSelect(annotation.annotName, this.selectTextMarkupCurrentPage, annotation, null, false, isSelected);\n this.selectedTextMarkup = null;\n }\n }\n if (annotation && this.isEnableTextMarkupResizer(annotation.textMarkupAnnotationType)) {\n this.isTextMarkupAnnotationMode = true;\n }\n }\n };\n /**\n * @param annotation\n * @private\n */\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.updateCurrentResizerPosition = function (annotation) {\n if (!annotation) {\n annotation = this.currentTextMarkupAnnotation;\n }\n if (annotation) {\n if (this.isEnableTextMarkupResizer(annotation.textMarkupAnnotationType) && annotation) {\n // eslint-disable-next-line\n var textElement = this.pdfViewerBase.getElement('_textLayer_' + this.selectTextMarkupCurrentPage);\n if (textElement) {\n // eslint-disable-next-line\n var boundingRect = textElement.getBoundingClientRect();\n var left = annotation.bounds[0].left ? annotation.bounds[0].left : annotation.bounds[0].Left;\n var top_3 = annotation.bounds[0].top ? annotation.bounds[0].top : annotation.bounds[0].Top;\n this.updateLeftposition(left * this.pdfViewerBase.getZoomFactor() + boundingRect.left, (boundingRect.top + top_3), true);\n // eslint-disable-next-line\n var endPosition = annotation.bounds[annotation.bounds.length - 1];\n var endLeft = endPosition.left ? endPosition.left : endPosition.Left;\n var endTop = endPosition.top ? endPosition.top : endPosition.Top;\n var endWidth = endPosition.width ? endPosition.width : endPosition.Width;\n // eslint-disable-next-line max-len\n this.updatePosition((endLeft + endWidth) * this.pdfViewerBase.getZoomFactor() + boundingRect.left, (endTop + boundingRect.top), true);\n }\n }\n }\n };\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.drawAnnotationSelectRect = function (canvas, x, y, width, height, annotation) {\n var ratio = this.pdfViewerBase.getZoomRatio();\n if (canvas) {\n var context = canvas.getContext('2d');\n context.setTransform(1, 0, 0, 1, 0, 0);\n context.beginPath();\n if (typeof (annotation).annotationSelectorSettings === 'string') {\n // eslint-disable-next-line max-len\n var lineDash = JSON.parse(annotation.annotationSelectorSettings).selectorLineDashArray.length === 0 ? [4] : JSON.parse(annotation.annotationSelectorSettings).selectorLineDashArray;\n if (lineDash.length > 2) {\n lineDash = [lineDash[0], lineDash[1]];\n }\n context.setLineDash(lineDash);\n context.globalAlpha = 1;\n context.rect(x * ratio, y * ratio, width * ratio, height * ratio);\n context.closePath();\n // eslint-disable-next-line max-len\n var borderColor = JSON.parse(annotation.annotationSelectorSettings).selectionBorderColor === '' ? '#0000ff' : JSON.parse(annotation.annotationSelectorSettings).selectionBorderColor;\n context.strokeStyle = borderColor;\n // eslint-disable-next-line max-len\n context.lineWidth = JSON.parse(annotation.annotationSelectorSettings).selectionBorderThickness === 1 ? 1 : (annotation.annotationSelectorSettings).selectionBorderThickness;\n context.stroke();\n context.save();\n }\n else {\n // eslint-disable-next-line max-len\n var lineDash = (annotation.annotationSelectorSettings).selectorLineDashArray.length === 0 ? [4] : (annotation.annotationSelectorSettings).selectorLineDashArray;\n if (lineDash.length > 2) {\n lineDash = [lineDash[0], lineDash[1]];\n }\n context.setLineDash(lineDash);\n context.globalAlpha = 1;\n context.rect(x * ratio, y * ratio, width * ratio, height * ratio);\n context.closePath();\n // eslint-disable-next-line max-len\n var borderColor = (annotation.annotationSelectorSettings).selectionBorderColor === '' ? '#0000ff' : (annotation.annotationSelectorSettings).selectionBorderColor;\n context.strokeStyle = borderColor;\n // eslint-disable-next-line max-len\n context.lineWidth = (annotation.annotationSelectorSettings).selectionBorderThickness ? 1 : (annotation.annotationSelectorSettings).selectionBorderThickness;\n context.stroke();\n context.save();\n }\n }\n };\n /**\n * @param isEnable\n * @private\n */\n TextMarkupAnnotation.prototype.enableAnnotationPropertiesTool = function (isEnable) {\n if (this.pdfViewer.toolbarModule && this.pdfViewer.toolbarModule.annotationToolbarModule) {\n // eslint-disable-next-line max-len\n this.pdfViewer.toolbarModule.annotationToolbarModule.colorDropDownElementInBlazor = this.pdfViewer.element.querySelector('.e-pv-annotation-color-container');\n }\n // eslint-disable-next-line max-len\n if (this.pdfViewer.toolbarModule && this.pdfViewer.toolbarModule.annotationToolbarModule) {\n if (!Browser.isDevice) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.createMobileAnnotationToolbar(isEnable);\n }\n }\n // eslint-disable-next-line max-len\n if (this.pdfViewer.toolbarModule && this.pdfViewer.toolbarModule.annotationToolbarModule && this.pdfViewer.toolbarModule.annotationToolbarModule.isMobileAnnotEnabled && this.pdfViewer.selectedItems.annotations.length === 0) {\n if (this.pdfViewer.toolbarModule.annotationToolbarModule) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.selectAnnotationDeleteItem(isEnable);\n var enable = isEnable;\n if (this.isTextMarkupAnnotationMode) {\n enable = true;\n }\n this.pdfViewer.toolbarModule.annotationToolbarModule.enableTextMarkupAnnotationPropertiesTools(enable);\n if (this.currentTextMarkupAnnotation) {\n if (!isBlazor()) {\n // eslint-disable-next-line max-len\n this.pdfViewer.toolbarModule.annotationToolbarModule.updateColorInIcon(this.pdfViewer.toolbarModule.annotationToolbarModule.colorDropDownElement, this.currentTextMarkupAnnotation.color);\n }\n else {\n // eslint-disable-next-line max-len\n this.pdfViewer.toolbarModule.annotationToolbarModule.updateColorInIcon(this.pdfViewer.toolbarModule.annotationToolbarModule.colorDropDownElementInBlazor, this.currentTextMarkupAnnotation.color);\n }\n }\n else {\n if (!isNullOrUndefined(this.isTextMarkupAnnotationMode) && !this.isTextMarkupAnnotationMode) {\n if (!isBlazor()) {\n // eslint-disable-next-line max-len\n this.pdfViewer.toolbarModule.annotationToolbarModule.updateColorInIcon(this.pdfViewer.toolbarModule.annotationToolbarModule.colorDropDownElement, '#000000');\n }\n else {\n // eslint-disable-next-line max-len\n this.pdfViewer.toolbarModule.annotationToolbarModule.updateColorInIcon(this.pdfViewer.toolbarModule.annotationToolbarModule.colorDropDownElementInBlazor, '#000000');\n }\n }\n else {\n this.pdfViewer.toolbarModule.annotationToolbarModule.setCurrentColorInPicker();\n }\n }\n }\n }\n };\n /**\n * @private\n */\n TextMarkupAnnotation.prototype.maintainAnnotationSelection = function () {\n if (this.currentTextMarkupAnnotation) {\n var canvas = this.pdfViewerBase.getElement('_annotationCanvas_' + this.selectTextMarkupCurrentPage);\n if (canvas) {\n this.selectAnnotation(this.currentTextMarkupAnnotation, canvas, this.selectTextMarkupCurrentPage);\n }\n }\n };\n // private storeAnnotations(pageNumber: number, annotation: ITextMarkupAnnotation): number {\n // eslint-disable-next-line\n // let storeObject: any = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_textMarkup');\n // let index: number = 0;\n // if (!storeObject) {\n // let markupAnnotation: IPageAnnotations = { pageIndex: pageNumber, annotations: [] };\n // markupAnnotation.annotations.push(annotation);\n // index = markupAnnotation.annotations.indexOf(annotation);\n // let annotationCollection: IPageAnnotations[] = [];\n // annotationCollection.push(markupAnnotation);\n // let annotationStringified: string = JSON.stringify(annotationCollection);\n // window.sessionStorage.setItem(this.pdfViewerBase.documentId + '_annotations_textMarkup', annotationStringified);\n // } else {\n // let annotObject: IPageAnnotations[] = JSON.parse(storeObject);\n // window.sessionStorage.removeItem(this.pdfViewerBase.documentId + '_annotations_textMarkup');\n // let pageIndex: number = this.pdfViewer.annotationModule.getPageCollection(annotObject, pageNumber);\n // if (annotObject[pageIndex]) {\n // (annotObject[pageIndex] as IPageAnnotations).annotations.push(annotation);\n // index = (annotObject[pageIndex] as IPageAnnotations).annotations.indexOf(annotation);\n // } else {\n // let markupAnnotation: IPageAnnotations = { pageIndex: pageNumber, annotations: [] };\n // markupAnnotation.annotations.push(annotation);\n // index = markupAnnotation.annotations.indexOf(annotation);\n // annotObject.push(markupAnnotation);\n // }\n // let annotationStringified: string = JSON.stringify(annotObject);\n // window.sessionStorage.setItem(this.pdfViewerBase.documentId + '_annotations_textMarkup', annotationStringified);\n // }\n // return index;\n // }\n /**\n * @param pageAnnotations\n * @param pageNumber\n * @private\n */\n TextMarkupAnnotation.prototype.manageAnnotations = function (pageAnnotations, pageNumber) {\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_textMarkup');\n if (this.pdfViewerBase.isStorageExceed) {\n storeObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_textMarkup'];\n }\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n if (!this.pdfViewerBase.isStorageExceed) {\n window.sessionStorage.removeItem(this.pdfViewerBase.documentId + '_annotations_textMarkup');\n }\n var index = this.pdfViewer.annotationModule.getPageCollection(annotObject, pageNumber);\n if (annotObject[index]) {\n annotObject[index].annotations = pageAnnotations;\n }\n var annotationStringified = JSON.stringify(annotObject);\n if (this.pdfViewerBase.isStorageExceed) {\n this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_textMarkup'] = annotationStringified;\n }\n else {\n window.sessionStorage.setItem(this.pdfViewerBase.documentId + '_annotations_textMarkup', annotationStringified);\n }\n }\n };\n /**\n * @param pageIndex\n * @param textMarkupAnnotations\n * @param id\n * @param pageIndex\n * @param textMarkupAnnotations\n * @param id\n * @private\n */\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.getAnnotations = function (pageIndex, textMarkupAnnotations, id) {\n // eslint-disable-next-line\n var annotationCollection;\n // eslint-disable-next-line\n if (id == null || id == undefined) {\n id = '_annotations_textMarkup';\n }\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + id);\n if (this.pdfViewerBase.isStorageExceed) {\n storeObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + id];\n }\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n var index = this.pdfViewer.annotationModule.getPageCollection(annotObject, pageIndex);\n if (annotObject[index]) {\n annotationCollection = annotObject[index].annotations;\n }\n else {\n annotationCollection = textMarkupAnnotations;\n }\n }\n else {\n annotationCollection = textMarkupAnnotations;\n }\n return annotationCollection;\n };\n // eslint-disable-next-line max-len\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.getAddedAnnotation = function (type, color, opacity, bounds, author, subject, predefinedDate, note, isCommentLock, rect, pageNumber, textContent, startIndex, endIndex, isMultiSelect, allowedInteractions, annotationRotate) {\n // eslint-disable-next-line max-len\n var modifiedDate = predefinedDate ? predefinedDate : this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n var annotationName = this.pdfViewer.annotation.createGUID();\n var commentsDivid = this.pdfViewer.annotation.stickyNotesAnnotationModule.addComments('textMarkup', pageNumber + 1, type);\n if (commentsDivid) {\n document.getElementById(commentsDivid).id = annotationName;\n }\n // eslint-disable-next-line\n var annotationSettings = this.getAnnotationSettings(type);\n var isPrint = this.getIsPrintValue(type);\n var annotation = {\n // eslint-disable-next-line max-len\n textMarkupAnnotationType: type, color: color, opacity: opacity, bounds: bounds, author: author, allowedInteractions: allowedInteractions, subject: subject, modifiedDate: modifiedDate, note: note, rect: rect,\n annotName: annotationName, comments: [], review: { state: '', stateModel: '', author: author, modifiedDate: modifiedDate }, shapeAnnotationType: 'textMarkup', pageNumber: pageNumber,\n // eslint-disable-next-line max-len\n textMarkupContent: textContent, textMarkupStartIndex: startIndex, textMarkupEndIndex: endIndex, isMultiSelect: isMultiSelect, annotationSelectorSettings: this.getSelector(type),\n customData: this.pdfViewer.annotation.getTextMarkupData(subject), annotationAddMode: this.annotationAddMode, annotationSettings: annotationSettings, isPrint: isPrint, isCommentLock: isCommentLock, isAnnotationRotated: false, annotationRotation: annotationRotate\n };\n if (isMultiSelect) {\n this.multiPageCollection.push(annotation);\n }\n var isSkip = false;\n if (isMultiSelect && this.isExtended) {\n isSkip = true;\n }\n if (document.getElementById(annotationName) && !isSkip) {\n document.getElementById(annotationName).addEventListener('mouseup', this.annotationDivSelect(annotation, pageNumber));\n }\n var storedIndex = this.pdfViewer.annotationModule.storeAnnotations(pageNumber, annotation, '_annotations_textMarkup');\n this.pdfViewer.annotationModule.addAction(pageNumber, storedIndex, annotation, 'Text Markup Added', null);\n return annotation;\n };\n TextMarkupAnnotation.prototype.getSelector = function (type) {\n var selector = this.pdfViewer.annotationSelectorSettings;\n if (type === 'Highlight' && this.pdfViewer.highlightSettings.annotationSelectorSettings) {\n selector = this.pdfViewer.highlightSettings.annotationSelectorSettings;\n }\n else if (type === 'Underline' && this.pdfViewer.underlineSettings.annotationSelectorSettings) {\n selector = this.pdfViewer.underlineSettings.annotationSelectorSettings;\n }\n else if (type === 'Strikethrough' && this.pdfViewer.strikethroughSettings.annotationSelectorSettings) {\n selector = this.pdfViewer.strikethroughSettings.annotationSelectorSettings;\n }\n return selector;\n };\n TextMarkupAnnotation.prototype.getAnnotationSettings = function (type) {\n var annotationSettings = { isLock: false };\n if (type === 'Highlight' && this.pdfViewer.highlightSettings.isLock) {\n annotationSettings = { isLock: true };\n }\n else if (type === 'Underline' && this.pdfViewer.underlineSettings.isLock) {\n annotationSettings = { isLock: true };\n }\n else if (type === 'Strikethrough' && this.pdfViewer.strikethroughSettings.isLock) {\n annotationSettings = { isLock: true };\n }\n else if (this.pdfViewer.annotationSettings.isLock) {\n annotationSettings = { isLock: true };\n }\n return annotationSettings;\n };\n TextMarkupAnnotation.prototype.getIsPrintValue = function (type) {\n var isPrint = true;\n if (type === 'Highlight') {\n isPrint = this.pdfViewer.highlightSettings.isPrint;\n }\n if (type === 'Underline') {\n isPrint = this.pdfViewer.underlineSettings.isPrint;\n }\n if (type === 'Strikethrough') {\n isPrint = this.pdfViewer.strikethroughSettings.isPrint;\n }\n if (isNullOrUndefined(isPrint)) {\n isPrint = true;\n }\n return isPrint;\n };\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.annotationDivSelect = function (annotation, pageNumber) {\n var canvas = this.pdfViewerBase.getElement('_annotationCanvas_' + pageNumber);\n this.selectAnnotation(annotation, canvas, pageNumber);\n if (this.pdfViewer.toolbarModule) {\n if (this.pdfViewer.toolbarModule.annotationToolbarModule && this.pdfViewer.enableAnnotationToolbar) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.clearShapeMode();\n this.pdfViewer.toolbarModule.annotationToolbarModule.clearMeasureMode();\n var isLock = false;\n if (annotation.annotationSettings && annotation.annotationSettings.isLock) {\n isLock = annotation.annotationSettings.isLock;\n }\n if (isLock) {\n if (this.pdfViewer.annotationModule.checkAllowedInteractions('PropertyChange', annotation)) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.enableTextMarkupAnnotationPropertiesTools(true);\n this.pdfViewer.toolbarModule.annotationToolbarModule.setCurrentColorInPicker();\n }\n if (this.pdfViewer.annotationModule.checkAllowedInteractions('Delete', annotation)) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.selectAnnotationDeleteItem(true);\n }\n }\n else {\n this.pdfViewer.toolbarModule.annotationToolbarModule.enableTextMarkupAnnotationPropertiesTools(true);\n this.pdfViewer.toolbarModule.annotationToolbarModule.selectAnnotationDeleteItem(true);\n this.pdfViewer.toolbarModule.annotationToolbarModule.setCurrentColorInPicker();\n }\n this.pdfViewer.toolbarModule.annotationToolbarModule.isToolbarHidden = true;\n if (!isBlazor()) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.showAnnotationToolbar(this.pdfViewer.toolbarModule.annotationItem);\n }\n }\n }\n };\n TextMarkupAnnotation.prototype.getPageContext = function (pageNumber) {\n var canvas = this.pdfViewerBase.getElement('_annotationCanvas_' + pageNumber);\n var context = null;\n if (canvas) {\n context = canvas.getContext('2d');\n }\n return context;\n };\n TextMarkupAnnotation.prototype.getDefaultValue = function (value) {\n return value / this.pdfViewerBase.getZoomFactor();\n };\n TextMarkupAnnotation.prototype.getMagnifiedValue = function (value, factor) {\n return value * factor;\n };\n /**\n * @param annotation\n * @param pageNumber\n * @private\n */\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.saveImportedTextMarkupAnnotations = function (annotation, pageNumber) {\n var annotationObject = null;\n annotation.Author = this.pdfViewer.annotationModule.updateAnnotationAuthor('textMarkup', annotation.Subject);\n if (annotation.AnnotationSettings && annotation.AnnotationSettings.isLock) {\n annotation.AnnotationSettings = { isLock: annotation.AnnotationSettings.isLock };\n }\n else {\n annotation.AnnotationSettings = this.getAnnotationSettings(annotation.TextMarkupAnnotationType);\n }\n // eslint-disable-next-line max-len\n annotation.allowedInteractions = this.pdfViewer.annotationModule.updateAnnotationAllowedInteractions(annotation);\n // eslint-disable-next-line max-len\n annotationObject = {\n // eslint-disable-next-line max-len\n textMarkupAnnotationType: annotation.TextMarkupAnnotationType, color: annotation.Color, opacity: annotation.Opacity, allowedInteractions: annotation.allowedInteractions, bounds: annotation.Bounds, author: annotation.Author, subject: annotation.Subject, modifiedDate: annotation.ModifiedDate, note: annotation.Note, rect: annotation.Rect,\n annotName: annotation.AnnotName, comments: this.pdfViewer.annotationModule.getAnnotationComments(annotation.Comments, annotation, annotation.Author), review: { state: annotation.State, stateModel: annotation.StateModel, modifiedDate: annotation.ModifiedDate, author: annotation.Author },\n shapeAnnotationType: 'textMarkup',\n pageNumber: pageNumber, textMarkupContent: '', textMarkupStartIndex: 0,\n // eslint-disable-next-line max-len\n textMarkupEndIndex: 0, annotationSelectorSettings: this.getSettings(annotation), customData: this.pdfViewer.annotation.getCustomData(annotation),\n isMultiSelect: annotation.IsMultiSelect, annotNameCollection: annotation.AnnotNameCollection, annotpageNumbers: annotation.AnnotpageNumbers,\n // eslint-disable-next-line max-len\n annotationAddMode: this.annotationAddMode, annotationSettings: annotation.AnnotationSettings, isPrint: annotation.IsPrint, isCommentLock: annotation.IsCommentLock, isAnnotationRotated: false\n };\n this.pdfViewer.annotationModule.storeAnnotations(pageNumber, annotationObject, '_annotations_textMarkup');\n };\n /**\n * @param annotation\n * @param pageNumber\n * @param annotation\n * @param pageNumber\n * @private\n */\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.updateTextMarkupAnnotationCollections = function (annotation, pageNumber) {\n // eslint-disable-next-line\n var annotationObject = null;\n // eslint-disable-next-line max-len\n annotation.allowedInteractions = annotation.AllowedInteractions ? annotation.AllowedInteractions : this.pdfViewer.annotationModule.updateAnnotationAllowedInteractions(annotation);\n annotationObject = {\n // eslint-disable-next-line max-len\n textMarkupAnnotationType: annotation.TextMarkupAnnotationType, allowedInteractions: annotation.allowedInteractions, color: annotation.Color, opacity: annotation.Opacity, bounds: annotation.Bounds, author: annotation.Author, subject: annotation.Subject, modifiedDate: annotation.ModifiedDate, note: annotation.Note, rect: annotation.Rect,\n annotationId: annotation.AnnotName, comments: this.pdfViewer.annotationModule.getAnnotationComments(annotation.Comments, annotation, annotation.Author), review: { state: annotation.State, stateModel: annotation.StateModel, modifiedDate: annotation.ModifiedDate, author: annotation.Author }, shapeAnnotationType: 'textMarkup', pageNumber: pageNumber, isMultiSelect: annotation.IsMultiSelect, annotNameCollection: annotation.AnnotNameCollection, annotpageNumbers: annotation.AnnotpageNumbers, customData: this.pdfViewer.annotation.getCustomData(annotation),\n isPrint: annotation.IsPrint, isCommentLock: annotation.IsCommentLock\n };\n return annotationObject;\n };\n /**\n * @param textMarkUpSettings\n * @private\n */\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.updateTextMarkupSettings = function (textMarkUpSettings) {\n if (textMarkUpSettings === 'highlightSettings') {\n // eslint-disable-next-line max-len\n this.highlightColor = this.pdfViewer.highlightSettings.color ? this.pdfViewer.highlightSettings.color : this.highlightColor;\n // eslint-disable-next-line max-len\n this.highlightOpacity = this.pdfViewer.highlightSettings.opacity ? this.pdfViewer.highlightSettings.opacity : this.highlightOpacity;\n }\n if (textMarkUpSettings === 'underlineSettings') {\n // eslint-disable-next-line max-len\n this.underlineColor = this.pdfViewer.underlineSettings.color ? this.pdfViewer.underlineSettings.color : this.underlineColor;\n // eslint-disable-next-line max-len\n this.underlineOpacity = this.pdfViewer.underlineSettings.opacity ? this.pdfViewer.underlineSettings.opacity : this.underlineOpacity;\n }\n if (textMarkUpSettings === 'strikethroughSettings') {\n // eslint-disable-next-line max-len\n this.strikethroughColor = this.pdfViewer.strikethroughSettings.color ? this.pdfViewer.strikethroughSettings.color : this.strikethroughColor;\n // eslint-disable-next-line max-len\n this.strikethroughOpacity = this.pdfViewer.strikethroughSettings.opacity ? this.pdfViewer.strikethroughSettings.opacity : this.strikethroughOpacity;\n }\n };\n /**\n * @private\n */\n TextMarkupAnnotation.prototype.clear = function () {\n this.selectTextMarkupCurrentPage = null;\n this.currentTextMarkupAnnotation = null;\n this.annotationClickPosition = null;\n window.sessionStorage.removeItem(this.pdfViewerBase.documentId + '_annotations_textMarkup');\n };\n /**\n * Get vertex points properties\n * @private\n */\n TextMarkupAnnotation.prototype.getOffsetPoints = function (points) {\n var offsetPoints = [];\n //Converting points model into vertex property\n for (var j = 0; j < points.length; j++) {\n offsetPoints[j] = { X: points[j].x, Y: points[j].y, Width: points[j].width, Height: points[j].height, Left: points[j].x, Top: points[j].y };\n }\n return offsetPoints;\n };\n /**\n * This method used to add annotations with using program.\n *\n * @param annotationType - It describes the annotation type\n * @param annotationObject - It describes type of annotation object\n * @returns Object\n * @private\n */\n TextMarkupAnnotation.prototype.updateAddAnnotationDetails = function (annotationType, annotationObject) {\n //Creating new object if annotationObject is null\n if (!annotationObject) {\n annotationObject = { pageNumber: 0 };\n }\n //Initialize the annotation settings\n var annotSelectorSettings = null;\n var annotallowedInteractions = null;\n var textMarkupAnnotationType = '';\n var annotSettings = null;\n var color = '';\n var bounds = [];\n //Creating the CurrentDate and Annotation name\n var currentDateString = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n var annotationName = this.pdfViewer.annotation.createGUID();\n if (annotationType == 'Highlight') {\n //Creating annotation settings\n annotSelectorSettings = this.pdfViewer.highlightSettings.annotationSelectorSettings ? this.pdfViewer.highlightSettings.annotationSelectorSettings : this.pdfViewer.annotationSelectorSettings;\n annotSettings = this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.highlightSettings);\n annotallowedInteractions = this.pdfViewer.highlightSettings.allowedInteractions ? this.pdfViewer.highlightSettings.allowedInteractions : this.pdfViewer.annotationSettings.allowedInteractions;\n textMarkupAnnotationType = 'Highlight';\n color = annotationObject.color ? annotationObject.color : '#ffff00';\n }\n else if (annotationType == 'Underline') {\n //Creating annotation settings\n annotSelectorSettings = this.pdfViewer.underlineSettings.annotationSelectorSettings ? this.pdfViewer.underlineSettings.annotationSelectorSettings : this.pdfViewer.annotationSelectorSettings;\n annotSettings = this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.underlineSettings);\n annotallowedInteractions = this.pdfViewer.underlineSettings.allowedInteractions ? this.pdfViewer.underlineSettings.allowedInteractions : this.pdfViewer.annotationSettings.allowedInteractions;\n textMarkupAnnotationType = 'Underline';\n color = annotationObject.color ? annotationObject.color : '#00ff00';\n }\n else if (annotationType == 'Strikethrough') {\n //Creating annotation settings\n annotSelectorSettings = this.pdfViewer.strikethroughSettings.annotationSelectorSettings ? this.pdfViewer.strikethroughSettings.annotationSelectorSettings : this.pdfViewer.annotationSelectorSettings;\n annotSettings = this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.strikethroughSettings);\n annotallowedInteractions = this.pdfViewer.strikethroughSettings.allowedInteractions ? this.pdfViewer.strikethroughSettings.allowedInteractions : this.pdfViewer.annotationSettings.allowedInteractions;\n textMarkupAnnotationType = 'Strikethrough';\n color = annotationObject.color ? annotationObject.color : '#ff0000';\n }\n annotSettings.isLock = annotationObject.isLock ? annotationObject.isLock : false;\n //Creating the offset points\n if (annotationObject.bounds) {\n bounds = this.getOffsetPoints(annotationObject.bounds);\n }\n else\n bounds = [{ X: 1, Y: 1, Width: 100, Height: 14, Left: 1, Top: 1, Location: { X: 1, Y: 1 }, Size: { Height: 14, IsEmpty: false, Width: 100 } }];\n //Creating Annotation objects with it's proper properties \n var textMarkupAnnotation = [];\n var textmarkup = {\n AllowedInteractions: annotationObject.allowedInteractions ? annotationObject.allowedInteractions : annotallowedInteractions,\n AnnotName: annotationName,\n AnnotNameCollection: null,\n AnnotType: 'textMarkup',\n AnnotationSelectorSettings: annotationObject.annotationSelectorSettings ? annotationObject.annotationSelectorSettings : annotSelectorSettings,\n AnnotationSettings: annotSettings,\n Author: annotationObject.author ? annotationObject.author : 'Guest',\n Bounds: bounds,\n Color: annotationObject.color ? annotationObject.color : color,\n Comments: null,\n CreatedDate: currentDateString,\n CustomData: annotationObject.customData ? annotationObject.customData : null,\n ExistingCustomData: null,\n EnableMultiPageAnnotation: annotationObject.enableMultiPageAnnotation ? annotationObject.enableMultiPageAnnotation : false,\n EnableTextMarkupResizer: annotationObject.enableTextMarkupResizer ? annotationObject.enableTextMarkupResizer : false,\n IsCommentLock: false,\n IsMultiSelect: false,\n IsLock: annotationObject.isLock ? annotationObject.isLock : false,\n IsPrint: annotationObject.isPrint ? annotationObject.isPrint : true,\n ModifiedDate: '',\n Note: '',\n Opacity: annotationObject.opacity ? annotationObject.opacity : 1,\n Rect: {},\n State: '',\n StateModel: '',\n Subject: textMarkupAnnotationType,\n TextMarkupAnnotationType: textMarkupAnnotationType,\n };\n //Adding the annotation object to an array and return it\n textMarkupAnnotation[0] = textmarkup;\n return { textMarkupAnnotation: textMarkupAnnotation };\n };\n return TextMarkupAnnotation;\n}());\nexport { TextMarkupAnnotation };\n","import { isNullOrUndefined } from '@syncfusion/ej2-base';\n/**\n * @hidden\n */\nvar ShapeAnnotation = /** @class */ (function () {\n function ShapeAnnotation(pdfviewer, pdfViewerBase) {\n /**\n * @private\n */\n this.shapeCount = 0;\n /**\n * @private\n */\n this.isAddAnnotationProgramatically = false;\n this.pdfViewer = pdfviewer;\n this.pdfViewerBase = pdfViewerBase;\n }\n /**\n * @param shapeAnnotations\n * @param pageNumber\n * @param isImportAcion\n * @private\n */\n // eslint-disable-next-line\n ShapeAnnotation.prototype.renderShapeAnnotations = function (shapeAnnotations, pageNumber, isImportAcion) {\n if (shapeAnnotations) {\n if (shapeAnnotations.length >= 1) {\n // eslint-disable-next-line\n var shapeAnnots = this.pdfViewer.annotation.getStoredAnnotations(pageNumber, shapeAnnotations, '_annotations_shape');\n if (!shapeAnnots || isImportAcion) {\n for (var i = 0; i < shapeAnnotations.length; i++) {\n // eslint-disable-next-line\n var annotation = shapeAnnotations[i];\n annotation.annotationAddMode = this.pdfViewer.annotationModule.findAnnotationMode(annotation, pageNumber, annotation.AnnotType);\n var annotationObject = null;\n this.shapeCount = this.shapeCount + 1;\n var isAnnotationRotated = void 0;\n if (annotation.ShapeAnnotationType) {\n if (isImportAcion) {\n if (this.pdfViewerBase.isJsonImported) {\n annotation.Bounds = this.pdfViewerBase.importJsonForRotatedDocuments(annotation.Rotate, pageNumber, annotation.Bounds, annotation.AnnotationRotation);\n isAnnotationRotated = this.pdfViewerBase.isPageRotated;\n }\n }\n var vertexPoints = null;\n if (annotation.VertexPoints) {\n vertexPoints = [];\n if (isImportAcion && this.pdfViewerBase.isJsonImported) {\n vertexPoints = this.pdfViewerBase.calculateVertexPoints(annotation.Rotate, pageNumber, annotation.VertexPoints, annotation.AnnotationRotation);\n }\n else {\n for (var j = 0; j < annotation.VertexPoints.length; j++) {\n var x = annotation.VertexPoints[j].X ? annotation.VertexPoints[j].X : annotation.VertexPoints[j].x;\n var y = annotation.VertexPoints[j].Y ? annotation.VertexPoints[j].Y : annotation.VertexPoints[j].y;\n var point = { x: x, y: y };\n vertexPoints.push(point);\n }\n }\n }\n // eslint-disable-next-line\n if (annotation.Bounds && annotation.EnableShapeLabel === true) {\n // eslint-disable-next-line max-len\n annotation.LabelBounds = this.pdfViewer.annotationModule.inputElementModule.calculateLabelBoundsFromLoadedDocument(annotation.Bounds);\n // eslint-disable-next-line max-len\n annotation.LabelBorderColor = annotation.LabelBorderColor ? annotation.LabelBorderColor : annotation.StrokeColor;\n annotation.FontColor = annotation.FontColor ? annotation.FontColor : annotation.StrokeColor;\n annotation.LabelFillColor = annotation.LabelFillColor ? annotation.LabelFillColor : annotation.FillColor;\n annotation.FontSize = annotation.FontSize ? annotation.FontSize : 16;\n // eslint-disable-next-line max-len\n annotation.LabelSettings = annotation.LabelSettings ? annotation.LabelSettings : this.pdfViewer.shapeLabelSettings;\n }\n // eslint-disable-next-line max-len\n annotation.AnnotationSelectorSettings = annotation.AnnotationSelectorSettings ? annotation.AnnotationSelectorSettings : this.pdfViewer.annotationSelectorSettings;\n // eslint-disable-next-line max-len\n annotation.AnnotationSettings = annotation.AnnotationSettings ? annotation.AnnotationSettings : this.pdfViewer.annotationModule.updateAnnotationSettings(annotation);\n // eslint-disable-next-line max-len\n annotation.allowedInteractions = annotation.AllowedInteractions ? annotation.AllowedInteractions : this.pdfViewer.annotationModule.updateAnnotationAllowedInteractions(annotation);\n var isPrint = true;\n if (annotation.annotationAddMode === 'Imported Annotation') {\n isPrint = annotation.IsPrint;\n }\n else {\n isPrint = annotation.AnnotationSettings.isPrint;\n }\n var left = annotation.Bounds.X ? annotation.Bounds.X : annotation.Bounds.x;\n var top_1 = annotation.Bounds.Y ? annotation.Bounds.Y : annotation.Bounds.y;\n var width = annotation.Bounds.Width ? annotation.Bounds.Width : annotation.Bounds.width;\n var height = annotation.Bounds.Height ? annotation.Bounds.Height : annotation.Bounds.height; // eslint-disable-next-line max-len\n annotationObject = {\n id: 'shape' + this.shapeCount, shapeAnnotationType: annotation.ShapeAnnotationType, author: annotation.Author, allowedInteractions: annotation.allowedInteractions, modifiedDate: annotation.ModifiedDate, subject: annotation.Subject, pageNumber: pageNumber,\n // eslint-disable-next-line max-len\n note: annotation.Note, strokeColor: annotation.StrokeColor, fillColor: annotation.FillColor, opacity: annotation.Opacity, thickness: annotation.Thickness, rectangleDifference: annotation.RectangleDifference,\n borderStyle: annotation.BorderStyle, borderDashArray: annotation.BorderDashArray, rotateAngle: annotation.RotateAngle, isCloudShape: annotation.IsCloudShape,\n // eslint-disable-next-line max-len\n cloudIntensity: annotation.CloudIntensity, vertexPoints: vertexPoints, lineHeadStart: annotation.LineHeadStart, lineHeadEnd: annotation.LineHeadEnd, isLocked: annotation.IsLocked, comments: this.pdfViewer.annotationModule.getAnnotationComments(annotation.Comments, annotation, annotation.Author), review: { state: annotation.State, stateModel: annotation.StateModel, modifiedDate: annotation.ModifiedDate, author: annotation.Author }, annotName: annotation.AnnotName,\n bounds: { left: left, top: top_1, width: width, height: height, right: annotation.Bounds.Right, bottom: annotation.Bounds.Bottom },\n // eslint-disable-next-line max-len\n labelContent: annotation.LabelContent, enableShapeLabel: annotation.EnableShapeLabel, labelFillColor: annotation.LabelFillColor,\n fontColor: annotation.FontColor, labelBorderColor: annotation.LabelBorderColor, fontSize: annotation.FontSize,\n // eslint-disable-next-line max-len\n labelBounds: annotation.LabelBounds, annotationSelectorSettings: this.getSettings(annotation), labelSettings: annotation.LabelSettings, annotationSettings: annotation.AnnotationSettings,\n customData: this.pdfViewer.annotation.getCustomData(annotation), isPrint: isPrint, isCommentLock: annotation.IsCommentLock, isAnnotationRotated: isAnnotationRotated\n };\n var annot = void 0;\n // eslint-disable-next-line\n var vPoints = annotationObject.vertexPoints;\n if (vertexPoints == null) {\n vPoints = [];\n }\n // eslint-disable-next-line max-len\n annotation.AnnotationSelectorSettings = annotation.AnnotationSelectorSettings ? annotation.AnnotationSelectorSettings : this.pdfViewer.annotationSelectorSettings;\n annot = {\n // eslint-disable-next-line max-len\n id: 'shape' + this.shapeCount, shapeAnnotationType: this.getShapeType(annotationObject), author: annotationObject.author, allowedInteractions: annotationObject.allowedInteractions, modifiedDate: annotationObject.modifiedDate, annotName: annotationObject.annotName,\n subject: annotationObject.subject, notes: annotationObject.note, fillColor: annotationObject.fillColor, strokeColor: annotationObject.strokeColor, opacity: annotationObject.opacity,\n // eslint-disable-next-line max-len\n thickness: annotationObject.thickness, borderStyle: annotationObject.borderStyle, borderDashArray: annotationObject.borderDashArray ? annotationObject.borderDashArray.toString() : '0', rotateAngle: parseFloat(annotationObject.rotateAngle.split('Angle')[1]), comments: annotationObject.comments, review: annotationObject.review, isCloudShape: annotationObject.isCloudShape, cloudIntensity: annotationObject.cloudIntensity, taregetDecoraterShapes: this.pdfViewer.annotation.getArrowType(annotationObject.lineHeadEnd),\n // eslint-disable-next-line max-len\n sourceDecoraterShapes: this.pdfViewer.annotation.getArrowType(annotationObject.lineHeadStart), vertexPoints: vPoints, bounds: { x: annotationObject.bounds.left, y: annotationObject.bounds.top, width: annotationObject.bounds.width, height: annotationObject.bounds.height },\n pageIndex: annotationObject.pageNumber,\n // eslint-disable-next-line max-len\n labelContent: annotation.LabelContent, enableShapeLabel: annotation.EnableShapeLabel, labelFillColor: annotation.LabelFillColor,\n fontColor: annotation.FontColor, labelBorderColor: annotation.LabelBorderColor, fontSize: annotation.FontSize,\n labelBounds: annotation.LabelBounds, annotationSelectorSettings: annotation.AnnotationSelectorSettings,\n annotationSettings: annotationObject.annotationSettings, annotationAddMode: annotation.annotationAddMode,\n isPrint: isPrint, isCommentLock: annotationObject.isCommentLock\n };\n var addedAnnot = this.pdfViewer.add(annot);\n this.pdfViewer.annotationModule.storeAnnotations(pageNumber, annotationObject, '_annotations_shape');\n if (this.isAddAnnotationProgramatically) {\n var settings = {\n opacity: annot.opacity, strokeColor: annot.strokeColor, thickness: annot.thickness, modifiedDate: annot.modifiedDate,\n width: annot.bounds.width, height: annot.bounds.height\n };\n this.pdfViewer.fireAnnotationAdd(annot.pageIndex, annot.annotName, annotation.ShapeAnnotationType, annot.bounds, settings);\n }\n }\n }\n }\n }\n else if (shapeAnnotations.shapeAnnotationType) {\n var annotationObject = this.createAnnotationObject(shapeAnnotations);\n if (!isNullOrUndefined(shapeAnnotations.formFieldAnnotationType) && shapeAnnotations.formFieldAnnotationType !== \"\")\n this.pdfViewer.annotationModule.isFormFieldShape = true;\n else\n this.pdfViewer.annotationModule.isFormFieldShape = false;\n this.pdfViewer.annotationModule.storeAnnotations(pageNumber, annotationObject, '_annotations_shape');\n this.pdfViewer.annotationModule.triggerAnnotationAdd(shapeAnnotations);\n }\n }\n };\n /**\n * @param annotation\n * @private\n */\n // eslint-disable-next-line\n ShapeAnnotation.prototype.getSettings = function (annotation) {\n var selector = this.pdfViewer.annotationSelectorSettings;\n if (annotation.AnnotationSelectorSettings) {\n selector = annotation.AnnotationSelectorSettings;\n }\n else {\n selector = this.getSelector(annotation.ShapeAnnotationType, annotation.Subject);\n }\n return selector;\n };\n /**\n * @param type\n * @private\n */\n ShapeAnnotation.prototype.setAnnotationType = function (type) {\n this.updateShapeProperties();\n this.pdfViewerBase.disableTextSelectionMode();\n var author = 'Guest';\n switch (type) {\n case 'Line':\n this.currentAnnotationMode = 'Line';\n // eslint-disable-next-line max-len\n var modifiedDateLine = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n // eslint-disable-next-line max-len\n author = (this.pdfViewer.annotationSettings.author !== 'Guest') ? this.pdfViewer.annotationSettings.author : this.pdfViewer.lineSettings.author ? this.pdfViewer.lineSettings.author : 'Guest';\n this.pdfViewer.drawingObject = {\n // eslint-disable-next-line max-len\n shapeAnnotationType: this.setShapeType('Line'), fillColor: this.lineFillColor, notes: '', strokeColor: this.lineStrokeColor, opacity: this.lineOpacity,\n thickness: this.lineThickness, modifiedDate: modifiedDateLine, borderDashArray: this.lineDashArray.toString(),\n // eslint-disable-next-line max-len\n sourceDecoraterShapes: this.pdfViewer.annotation.getArrowType(this.lineStartHead.toString()), taregetDecoraterShapes: this.pdfViewer.annotation.getArrowType(this.lineEndHead.toString()),\n author: author, subject: 'Line', lineHeadStart: this.lineStartHead, lineHeadEnd: this.lineEndHead, isCommentLock: false\n };\n this.pdfViewer.tool = 'Line';\n break;\n case 'Arrow':\n this.currentAnnotationMode = 'Arrow';\n // eslint-disable-next-line max-len\n var modifiedDateArrow = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n author = (this.pdfViewer.annotationSettings.author !== 'Guest') ? this.pdfViewer.annotationSettings.author : this.pdfViewer.arrowSettings.author ? this.pdfViewer.arrowSettings.author : 'Guest';\n this.pdfViewer.drawingObject = {\n shapeAnnotationType: this.setShapeType('Arrow'), opacity: this.arrowOpacity,\n // eslint-disable-next-line max-len\n sourceDecoraterShapes: this.pdfViewer.annotation.getArrowType(this.arrowStartHead.toString()),\n taregetDecoraterShapes: this.pdfViewer.annotation.getArrowType(this.arrowEndHead.toString()),\n // eslint-disable-next-line max-len\n fillColor: this.arrowFillColor, strokeColor: this.arrowStrokeColor, notes: '', thickness: this.arrowThickness,\n borderDashArray: this.arrowDashArray.toString(), author: author, subject: 'Arrow',\n // eslint-disable-next-line max-len\n modifiedDate: modifiedDateArrow, lineHeadStart: this.arrowStartHead, lineHeadEnd: this.arrowEndHead, isCommentLock: false\n };\n this.pdfViewer.tool = 'Line';\n break;\n case 'Rectangle':\n this.currentAnnotationMode = 'Rectangle';\n // eslint-disable-next-line max-len\n var modifiedDateRect = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n // eslint-disable-next-line max-len\n author = (this.pdfViewer.annotationSettings.author !== 'Guest') ? this.pdfViewer.annotationSettings.author : this.pdfViewer.rectangleSettings.author ? this.pdfViewer.rectangleSettings.author : 'Guest';\n this.pdfViewer.drawingObject = {\n shapeAnnotationType: this.setShapeType('Rectangle'), strokeColor: this.rectangleStrokeColor,\n fillColor: this.rectangleFillColor, opacity: this.rectangleOpacity, notes: '',\n thickness: this.rectangleThickness, borderDashArray: '0', modifiedDate: modifiedDateRect,\n author: author, subject: 'Rectangle', isCommentLock: false\n };\n this.pdfViewer.tool = 'DrawTool';\n break;\n case 'Circle':\n this.currentAnnotationMode = 'Circle';\n // eslint-disable-next-line max-len\n var modifiedDateCir = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n // eslint-disable-next-line max-len\n author = (this.pdfViewer.annotationSettings.author !== 'Guest') ? this.pdfViewer.annotationSettings.author : this.pdfViewer.circleSettings.author ? this.pdfViewer.circleSettings.author : 'Guest';\n this.pdfViewer.drawingObject = {\n shapeAnnotationType: this.setShapeType('Circle'), strokeColor: this.circleStrokeColor,\n fillColor: this.circleFillColor, opacity: this.circleOpacity, notes: '',\n thickness: this.circleThickness, borderDashArray: '0', modifiedDate: modifiedDateCir,\n author: author, subject: 'Circle', isCommentLock: false\n };\n this.pdfViewer.tool = 'DrawTool';\n break;\n case 'Polygon':\n this.currentAnnotationMode = 'Polygon';\n // eslint-disable-next-line max-len\n var modifiedDatePolygon = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n // eslint-disable-next-line max-len\n author = (this.pdfViewer.annotationSettings.author !== 'Guest') ? this.pdfViewer.annotationSettings.author : this.pdfViewer.polygonSettings.author ? this.pdfViewer.polygonSettings.author : 'Guest';\n this.pdfViewer.drawingObject = {\n strokeColor: this.polygonStrokeColor, fillColor: this.polygonFillColor,\n opacity: this.polygonOpacity, thickness: this.polygonThickness, borderDashArray: '0',\n notes: '', author: author, subject: 'Polygon',\n modifiedDate: modifiedDatePolygon, borderStyle: '', isCommentLock: false\n };\n this.pdfViewer.tool = 'Polygon';\n break;\n }\n };\n ShapeAnnotation.prototype.updateShapeProperties = function () {\n this.lineFillColor = this.pdfViewer.lineSettings.fillColor ? this.pdfViewer.lineSettings.fillColor : '#ffffff00';\n this.lineStrokeColor = this.pdfViewer.lineSettings.strokeColor ? this.pdfViewer.lineSettings.strokeColor : '#ff0000';\n this.lineThickness = this.pdfViewer.lineSettings.thickness ? this.pdfViewer.lineSettings.thickness : 1;\n this.lineOpacity = this.pdfViewer.lineSettings.opacity ? this.pdfViewer.lineSettings.opacity : 1;\n this.lineDashArray = this.pdfViewer.lineSettings.borderDashArray ? this.pdfViewer.lineSettings.borderDashArray : 0;\n this.lineStartHead = this.pdfViewer.lineSettings.lineHeadStartStyle ? this.pdfViewer.lineSettings.lineHeadStartStyle : 'None';\n this.lineEndHead = this.pdfViewer.lineSettings.lineHeadEndStyle ? this.pdfViewer.lineSettings.lineHeadEndStyle : 'None';\n this.arrowFillColor = this.pdfViewer.arrowSettings.fillColor ? this.pdfViewer.arrowSettings.fillColor : '#ffffff00';\n this.arrowStrokeColor = this.pdfViewer.arrowSettings.strokeColor ? this.pdfViewer.arrowSettings.strokeColor : '#ff0000';\n this.arrowThickness = this.pdfViewer.arrowSettings.thickness ? this.pdfViewer.arrowSettings.thickness : 1;\n this.arrowOpacity = this.pdfViewer.arrowSettings.opacity ? this.pdfViewer.arrowSettings.opacity : 1;\n this.arrowDashArray = this.pdfViewer.arrowSettings.borderDashArray ? this.pdfViewer.arrowSettings.borderDashArray : 0;\n this.arrowStartHead = this.pdfViewer.arrowSettings.lineHeadStartStyle ? this.pdfViewer.arrowSettings.lineHeadStartStyle : 'Closed';\n this.arrowEndHead = this.pdfViewer.arrowSettings.lineHeadEndStyle ? this.pdfViewer.arrowSettings.lineHeadEndStyle : 'Closed';\n this.rectangleFillColor = this.pdfViewer.rectangleSettings.fillColor ? this.pdfViewer.rectangleSettings.fillColor : '#ffffff00';\n this.rectangleStrokeColor = this.pdfViewer.rectangleSettings.strokeColor ? this.pdfViewer.rectangleSettings.strokeColor : '#ff0000';\n this.rectangleThickness = this.pdfViewer.rectangleSettings.thickness ? this.pdfViewer.rectangleSettings.thickness : 1;\n this.rectangleOpacity = this.pdfViewer.rectangleSettings.opacity ? this.pdfViewer.rectangleSettings.opacity : 1;\n this.circleFillColor = this.pdfViewer.circleSettings.fillColor ? this.pdfViewer.circleSettings.fillColor : '#ffffff00';\n this.circleStrokeColor = this.pdfViewer.circleSettings.strokeColor ? this.pdfViewer.circleSettings.strokeColor : '#ff0000';\n this.circleThickness = this.pdfViewer.circleSettings.thickness ? this.pdfViewer.circleSettings.thickness : 1;\n this.circleOpacity = this.pdfViewer.circleSettings.opacity ? this.pdfViewer.circleSettings.opacity : 1;\n this.polygonFillColor = this.pdfViewer.polygonSettings.fillColor ? this.pdfViewer.polygonSettings.fillColor : '#ffffff00';\n this.polygonStrokeColor = this.pdfViewer.polygonSettings.strokeColor ? this.pdfViewer.polygonSettings.strokeColor : '#ff0000';\n this.polygonThickness = this.pdfViewer.polygonSettings.thickness ? this.pdfViewer.polygonSettings.thickness : 1;\n this.polygonOpacity = this.pdfViewer.polygonSettings.opacity ? this.pdfViewer.polygonSettings.opacity : 1;\n };\n ShapeAnnotation.prototype.setShapeType = function (shape) {\n var shapeType;\n switch (shape) {\n case 'Line':\n shapeType = 'Line';\n break;\n case 'Circle':\n shapeType = 'Ellipse';\n break;\n case 'Square':\n shapeType = 'Rectangle';\n break;\n case 'Polyline':\n shapeType = 'Line';\n break;\n case 'Arrow':\n shapeType = 'LineWidthArrowHead';\n break;\n }\n return shapeType;\n };\n ShapeAnnotation.prototype.getShapeType = function (shape) {\n var shapeType;\n switch (shape.shapeAnnotationType) {\n case 'Line':\n shapeType = 'Line';\n break;\n case 'Circle':\n shapeType = 'Ellipse';\n break;\n case 'Square':\n shapeType = 'Rectangle';\n break;\n case 'Polyline':\n shapeType = 'Line';\n break;\n case 'Polygon':\n shapeType = 'Polygon';\n break;\n }\n // eslint-disable-next-line max-len\n if ((shape.shapeAnnotationType === 'Line' || shape.shapeAnnotationType === 'Polyline') && (shape.lineHeadStart !== 'None' || shape.lineHeadEnd !== 'None')) {\n shapeType = 'LineWidthArrowHead';\n }\n return shapeType;\n };\n ShapeAnnotation.prototype.getShapeAnnotType = function (shape) {\n var shapeType;\n switch (shape) {\n case 'Line':\n case 'LineWidthArrowHead':\n shapeType = 'Line';\n break;\n case 'Rectangle':\n shapeType = 'Square';\n break;\n case 'Ellipse':\n shapeType = 'Circle';\n break;\n case 'Polygon':\n shapeType = 'Polygon';\n break;\n }\n return shapeType;\n };\n /**\n * @param property\n * @param pageNumber\n * @param annotationBase\n * @param property\n * @param pageNumber\n * @param annotationBase\n * @param property\n * @param pageNumber\n * @param annotationBase\n * @private\n */\n // eslint-disable-next-line\n ShapeAnnotation.prototype.modifyInCollection = function (property, pageNumber, annotationBase) {\n if (!isNullOrUndefined(annotationBase.formFieldAnnotationType) && annotationBase.formFieldAnnotationType !== \"\")\n this.pdfViewer.annotationModule.isFormFieldShape = true;\n else\n this.pdfViewer.annotationModule.isFormFieldShape = false;\n this.pdfViewerBase.updateDocumentEditedProperty(true);\n var currentAnnotObject = null;\n if (annotationBase) {\n if (property === 'bounds') {\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateAnnotationModifiedDate(annotationBase, true);\n }\n }\n var pageAnnotations = this.getAnnotations(pageNumber, null);\n if (pageAnnotations != null && annotationBase) {\n for (var i = 0; i < pageAnnotations.length; i++) {\n if (annotationBase.id === pageAnnotations[i].id) {\n if (property === 'bounds') {\n if (pageAnnotations[i].shapeAnnotationType === 'Line') {\n pageAnnotations[i].vertexPoints = annotationBase.vertexPoints;\n // eslint-disable-next-line max-len\n pageAnnotations[i].bounds = { left: annotationBase.bounds.x, top: annotationBase.bounds.y, width: annotationBase.bounds.width, height: annotationBase.bounds.height, right: annotationBase.bounds.right, bottom: annotationBase.bounds.bottom };\n }\n else if (pageAnnotations[i].shapeAnnotationType === 'Polygon') {\n pageAnnotations[i].vertexPoints = annotationBase.vertexPoints;\n // eslint-disable-next-line max-len\n pageAnnotations[i].bounds = { left: annotationBase.bounds.x, top: annotationBase.bounds.y, width: annotationBase.bounds.width, height: annotationBase.bounds.height, right: annotationBase.bounds.right, bottom: annotationBase.bounds.bottom };\n }\n else {\n // eslint-disable-next-line max-len\n pageAnnotations[i].bounds = { left: annotationBase.bounds.x, top: annotationBase.bounds.y, width: annotationBase.bounds.width, height: annotationBase.bounds.height, right: annotationBase.bounds.right, bottom: annotationBase.bounds.bottom };\n }\n if (pageAnnotations[i].enableShapeLabel === true && annotationBase.wrapper) {\n var labelTop = 0;\n var labelLeft = 0;\n var labelWidth = 0;\n var labelHeight = 24.6;\n var labelMaxWidth = 151;\n if (annotationBase.wrapper.bounds.width) {\n // eslint-disable-next-line max-len\n labelWidth = (annotationBase.wrapper.bounds.width / 2);\n labelWidth = (labelWidth > 0 && labelWidth < labelMaxWidth) ? labelWidth : labelMaxWidth;\n }\n if (annotationBase.wrapper.bounds.left) {\n // eslint-disable-next-line max-len\n labelLeft = (annotationBase.wrapper.bounds.left + (annotationBase.wrapper.bounds.width / 2) - (labelWidth / 2));\n }\n if (annotationBase.wrapper.bounds.top) {\n // eslint-disable-next-line max-len\n labelTop = (annotationBase.wrapper.bounds.top + (annotationBase.wrapper.bounds.height / 2) - 12.3);\n }\n // eslint-disable-next-line max-len\n pageAnnotations[i].labelBounds = { left: labelLeft, top: labelTop, width: labelWidth, height: labelHeight, right: 0, bottom: 0 };\n }\n }\n else if (property === 'fill') {\n pageAnnotations[i].fillColor = annotationBase.wrapper.children[0].style.fill;\n }\n else if (property === 'stroke') {\n pageAnnotations[i].strokeColor = annotationBase.wrapper.children[0].style.strokeColor;\n }\n else if (property === 'opacity') {\n pageAnnotations[i].opacity = annotationBase.wrapper.children[0].style.opacity;\n }\n else if (property === 'thickness') {\n pageAnnotations[i].thickness = annotationBase.wrapper.children[0].style.strokeWidth;\n }\n else if (property === 'dashArray') {\n pageAnnotations[i].borderDashArray = annotationBase.wrapper.children[0].style.strokeDashArray;\n pageAnnotations[i].borderStyle = annotationBase.borderStyle;\n }\n else if (property === 'startArrow') {\n // eslint-disable-next-line max-len\n pageAnnotations[i].lineHeadStart = this.pdfViewer.annotation.getArrowTypeForCollection(annotationBase.sourceDecoraterShapes);\n }\n else if (property === 'endArrow') {\n // eslint-disable-next-line max-len\n pageAnnotations[i].lineHeadEnd = this.pdfViewer.annotation.getArrowTypeForCollection(annotationBase.taregetDecoraterShapes);\n }\n else if (property === 'notes') {\n pageAnnotations[i].note = annotationBase.notes;\n }\n else if (property === 'delete') {\n currentAnnotObject = pageAnnotations.splice(i, 1)[0];\n break;\n }\n else if (property === 'labelContent') {\n pageAnnotations[i].note = annotationBase.labelContent;\n pageAnnotations[i].labelContent = annotationBase.labelContent;\n break;\n }\n else if (property === 'fontColor') {\n pageAnnotations[i].fontColor = annotationBase.fontColor;\n }\n else if (property === 'fontSize') {\n pageAnnotations[i].fontSize = annotationBase.fontSize;\n }\n pageAnnotations[i].modifiedDate = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n this.pdfViewer.annotationModule.storeAnnotationCollections(pageAnnotations[i], pageNumber);\n }\n }\n this.manageAnnotations(pageAnnotations, pageNumber);\n }\n return currentAnnotObject;\n };\n /**\n * @param pageNumber\n * @param annotationBase\n * @param pageNumber\n * @param annotationBase\n * @private\n */\n ShapeAnnotation.prototype.addInCollection = function (pageNumber, annotationBase) {\n var pageAnnotations = this.getAnnotations(pageNumber, null);\n if (pageAnnotations) {\n pageAnnotations.push(annotationBase);\n }\n this.manageAnnotations(pageAnnotations, pageNumber);\n };\n /**\n * @private\n */\n ShapeAnnotation.prototype.saveShapeAnnotations = function () {\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_shape');\n if (this.pdfViewerBase.isStorageExceed) {\n storeObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_shape'];\n }\n // eslint-disable-next-line\n var annotations = new Array();\n for (var j = 0; j < this.pdfViewerBase.pageCount; j++) {\n annotations[j] = [];\n }\n if (storeObject && !this.pdfViewer.annotationSettings.skipDownload) {\n var annotationCollection = JSON.parse(storeObject);\n for (var i = 0; i < annotationCollection.length; i++) {\n var newArray = [];\n var pageAnnotationObject = annotationCollection[i];\n if (pageAnnotationObject) {\n for (var z = 0; pageAnnotationObject.annotations.length > z; z++) {\n if (!this.pdfViewerBase.checkFormFieldCollection(pageAnnotationObject.annotations[z].id)) {\n this.pdfViewer.annotationModule.updateModifiedDate(pageAnnotationObject.annotations[z]);\n if (this.pdfViewerBase.isJsonExported) {\n if (pageAnnotationObject.annotations[z].isAnnotationRotated) {\n pageAnnotationObject.annotations[z].bounds = this.pdfViewer.annotation.getBounds(pageAnnotationObject.annotations[z].bounds, pageAnnotationObject.pageIndex);\n pageAnnotationObject.annotations[z].vertexPoints = this.pdfViewer.annotation.getVertexPoints(pageAnnotationObject.annotations[z].vertexPoints, pageAnnotationObject.pageIndex);\n }\n else {\n var pageDetails = this.pdfViewerBase.pageSize[pageAnnotationObject.pageIndex];\n if (pageDetails) {\n pageAnnotationObject.annotations[z].annotationRotation = pageDetails.rotation;\n ;\n }\n }\n }\n // eslint-disable-next-line max-len\n pageAnnotationObject.annotations[z].bounds = JSON.stringify(this.pdfViewer.annotation.getBounds(pageAnnotationObject.annotations[z].bounds, pageAnnotationObject.pageIndex));\n var strokeColorString = pageAnnotationObject.annotations[z].strokeColor;\n pageAnnotationObject.annotations[z].strokeColor = JSON.stringify(this.getRgbCode(strokeColorString));\n var fillColorString = pageAnnotationObject.annotations[z].fillColor;\n pageAnnotationObject.annotations[z].fillColor = JSON.stringify(this.getRgbCode(fillColorString));\n // eslint-disable-next-line max-len\n pageAnnotationObject.annotations[z].vertexPoints = JSON.stringify(this.pdfViewer.annotation.getVertexPoints(pageAnnotationObject.annotations[z].vertexPoints, pageAnnotationObject.pageIndex));\n if (pageAnnotationObject.annotations[z].rectangleDifference !== null) {\n // eslint-disable-next-line max-len\n pageAnnotationObject.annotations[z].rectangleDifference = JSON.stringify(pageAnnotationObject.annotations[z].rectangleDifference);\n }\n if (pageAnnotationObject.annotations[z].enableShapeLabel === true) {\n // eslint-disable-next-line max-len\n pageAnnotationObject.annotations[z].labelBounds = JSON.stringify(this.pdfViewer.annotationModule.inputElementModule.calculateLabelBounds(JSON.parse(pageAnnotationObject.annotations[z].bounds)));\n var labelFillColorString = pageAnnotationObject.annotations[z].labelFillColor;\n pageAnnotationObject.annotations[z].labelFillColor = JSON.stringify(this.getRgbCode(labelFillColorString));\n var labelBorderColorString = pageAnnotationObject.annotations[z].labelBorderColor;\n pageAnnotationObject.annotations[z].labelBorderColor = JSON.stringify(this.getRgbCode(labelBorderColorString));\n pageAnnotationObject.annotations[z].labelSettings.fillColor = labelFillColorString;\n var fontColorString = pageAnnotationObject.annotations[z].labelSettings.fontColor;\n pageAnnotationObject.annotations[z].fontColor = JSON.stringify(this.getRgbCode(fontColorString));\n }\n }\n else {\n pageAnnotationObject.annotations[z] = \"\";\n }\n }\n pageAnnotationObject.annotations = pageAnnotationObject.annotations.filter(function (item) { return item; });\n newArray = pageAnnotationObject.annotations;\n }\n annotations[pageAnnotationObject.pageIndex] = newArray;\n }\n }\n return JSON.stringify(annotations);\n };\n ShapeAnnotation.prototype.manageAnnotations = function (pageAnnotations, pageNumber) {\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_shape');\n if (this.pdfViewerBase.isStorageExceed) {\n storeObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_shape'];\n }\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n if (!this.pdfViewerBase.isStorageExceed) {\n window.sessionStorage.removeItem(this.pdfViewerBase.documentId + '_annotations_shape');\n }\n var index = this.pdfViewer.annotationModule.getPageCollection(annotObject, pageNumber);\n if (annotObject[index]) {\n annotObject[index].annotations = pageAnnotations;\n }\n var annotationStringified = JSON.stringify(annotObject);\n if (this.pdfViewerBase.isStorageExceed) {\n this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_shape'] = annotationStringified;\n }\n else {\n window.sessionStorage.setItem(this.pdfViewerBase.documentId + '_annotations_shape', annotationStringified);\n }\n }\n };\n ShapeAnnotation.prototype.createAnnotationObject = function (annotationModel) {\n var bound;\n var labelBound;\n var annotationName = this.pdfViewer.annotation.createGUID();\n if (!annotationModel.formFieldAnnotationType) {\n // eslint-disable-next-line max-len\n var commentsDivid = this.pdfViewer.annotation.stickyNotesAnnotationModule.addComments('shape', (annotationModel.pageIndex + 1), annotationModel.shapeAnnotationType);\n if (commentsDivid) {\n document.getElementById(commentsDivid).id = annotationName;\n }\n }\n annotationModel.annotName = annotationName;\n if (annotationModel.wrapper.bounds) {\n bound = {\n // eslint-disable-next-line max-len\n left: annotationModel.wrapper.bounds.x, top: annotationModel.wrapper.bounds.y, height: annotationModel.wrapper.bounds.height, width: annotationModel.wrapper.bounds.width,\n right: annotationModel.wrapper.bounds.right, bottom: annotationModel.wrapper.bounds.bottom\n };\n labelBound = this.pdfViewer.annotationModule.inputElementModule.calculateLabelBounds(annotationModel.wrapper.bounds);\n }\n else {\n bound = { left: 0, top: 0, height: 0, width: 0, right: 0, bottom: 0 };\n labelBound = { left: 0, top: 0, height: 0, width: 0, right: 0, bottom: 0 };\n }\n if (annotationModel.subject === 'Line' && annotationModel.shapeAnnotationType === 'Polygon') {\n annotationModel.author = this.pdfViewer.annotationModule.updateAnnotationAuthor('shape', 'Polygon');\n }\n else {\n annotationModel.author = this.pdfViewer.annotationModule.updateAnnotationAuthor('shape', annotationModel.subject);\n }\n this.pdfViewer.annotation.stickyNotesAnnotationModule.addTextToComments(annotationName, annotationModel.notes);\n // eslint-disable-next-line radix\n var borderDashArray = parseInt(annotationModel.borderDashArray);\n borderDashArray = isNaN(borderDashArray) ? 0 : borderDashArray;\n // eslint-disable-next-line\n var annotationSettings = this.pdfViewer.annotationModule.findAnnotationSettings(annotationModel, true);\n annotationModel.isPrint = annotationSettings.isPrint;\n var setting = this.pdfViewer.shapeLabelSettings;\n var labelSettings = { borderColor: annotationModel.strokeColor, fillColor: annotationModel.fillColor, fontColor: annotationModel.fontColor,\n fontSize: annotationModel.fontSize, labelContent: annotationModel.labelContent, labelHeight: setting.labelHeight, labelWidth: setting.labelMaxWidth, opacity: annotationModel.opacity\n };\n return {\n // eslint-disable-next-line max-len\n id: annotationModel.id, shapeAnnotationType: this.getShapeAnnotType(annotationModel.shapeAnnotationType), author: annotationModel.author, allowedInteractions: this.pdfViewer.annotationModule.updateAnnotationAllowedInteractions(annotationModel), subject: annotationModel.subject, note: annotationModel.notes,\n strokeColor: annotationModel.strokeColor, annotName: annotationName, comments: [], review: { state: '', stateModel: '', modifiedDate: this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime(), author: annotationModel.author },\n fillColor: annotationModel.fillColor, opacity: annotationModel.opacity, thickness: annotationModel.thickness, pageNumber: annotationModel.pageIndex,\n // eslint-disable-next-line max-len\n borderStyle: annotationModel.borderStyle, borderDashArray: borderDashArray, bounds: bound, modifiedDate: this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime(),\n rotateAngle: 'RotateAngle' + annotationModel.rotateAngle, isCloudShape: annotationModel.isCloudShape, cloudIntensity: annotationModel.cloudIntensity,\n // eslint-disable-next-line max-len\n vertexPoints: annotationModel.vertexPoints, lineHeadStart: this.pdfViewer.annotation.getArrowTypeForCollection(annotationModel.sourceDecoraterShapes),\n lineHeadEnd: this.pdfViewer.annotation.getArrowTypeForCollection(annotationModel.taregetDecoraterShapes), rectangleDifference: [], isLocked: annotationSettings.isLock,\n // eslint-disable-next-line max-len\n labelContent: annotationModel.labelContent, enableShapeLabel: annotationModel.enableShapeLabel, labelFillColor: annotationModel.labelFillColor,\n fontColor: annotationModel.fontColor, labelBorderColor: annotationModel.labelBorderColor, fontSize: annotationModel.fontSize,\n // eslint-disable-next-line max-len\n labelBounds: labelBound, annotationSelectorSettings: this.getSelector(annotationModel.shapeAnnotationType, annotationModel.subject), labelSettings: labelSettings, annotationSettings: annotationSettings,\n customData: this.pdfViewer.annotation.getShapeData(annotationModel.shapeAnnotationType, annotationModel.subject), isPrint: annotationModel.isPrint, isCommentLock: annotationModel.isCommentLock, isAnnotationRotated: false\n };\n };\n ShapeAnnotation.prototype.getSelector = function (type, subject) {\n var selector = this.pdfViewer.annotationSelectorSettings;\n if (type === 'Line' && subject !== 'Arrow' && this.pdfViewer.lineSettings.annotationSelectorSettings) {\n selector = this.pdfViewer.lineSettings.annotationSelectorSettings;\n }\n else if ((type === 'LineWidthArrowHead' || subject === 'Arrow') && this.pdfViewer.lineSettings.annotationSelectorSettings) {\n selector = this.pdfViewer.arrowSettings.annotationSelectorSettings;\n }\n else if ((type === 'Rectangle' || type === 'Square') && this.pdfViewer.rectangleSettings.annotationSelectorSettings) {\n selector = this.pdfViewer.rectangleSettings.annotationSelectorSettings;\n }\n else if ((type === 'Ellipse' || type === 'Circle') && this.pdfViewer.circleSettings.annotationSelectorSettings) {\n selector = this.pdfViewer.circleSettings.annotationSelectorSettings;\n }\n else if (type === 'Polygon' && this.pdfViewer.polygonSettings.annotationSelectorSettings) {\n selector = this.pdfViewer.polygonSettings.annotationSelectorSettings;\n }\n return selector;\n };\n // eslint-disable-next-line\n ShapeAnnotation.prototype.getAnnotations = function (pageIndex, shapeAnnotations) {\n // eslint-disable-next-line\n var annotationCollection;\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_shape');\n if (this.pdfViewerBase.isStorageExceed) {\n storeObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_shape'];\n }\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n var index = this.pdfViewer.annotationModule.getPageCollection(annotObject, pageIndex);\n if (annotObject[index]) {\n annotationCollection = annotObject[index].annotations;\n }\n else {\n annotationCollection = shapeAnnotations;\n }\n }\n else {\n annotationCollection = shapeAnnotations;\n }\n return annotationCollection;\n };\n // eslint-disable-next-line\n ShapeAnnotation.prototype.getRgbCode = function (colorString) {\n if (!colorString.match(/#([a-z0-9]+)/gi) && !colorString.match(/^rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+)(?:,\\s*(\\d+(?:\\.\\d+)?))?\\)$/)) {\n colorString = this.pdfViewer.annotationModule.nameToHash(colorString);\n }\n var stringArray = colorString.split(',');\n if (isNullOrUndefined(stringArray[1])) {\n colorString = this.pdfViewer.annotationModule.getValue(colorString, 'rgba');\n stringArray = colorString.split(',');\n }\n // eslint-disable-next-line radix\n var r = parseInt(stringArray[0].split('(')[1]);\n // eslint-disable-next-line radix\n var g = parseInt(stringArray[1]);\n // eslint-disable-next-line radix\n var b = parseInt(stringArray[2]);\n // eslint-disable-next-line radix\n var a = parseFloat(stringArray[3]);\n return { r: r, g: g, b: b, a: a };\n };\n /**\n * @param annotation\n * @param pageNumber\n * @param annotation\n * @param pageNumber\n * @private\n */\n // eslint-disable-next-line\n ShapeAnnotation.prototype.saveImportedShapeAnnotations = function (annotation, pageNumber) {\n var annotationObject = null;\n var vertexPoints = null;\n annotation.Author = this.pdfViewer.annotationModule.updateAnnotationAuthor('shape', annotation.Subject);\n if (annotation.VertexPoints) {\n vertexPoints = [];\n for (var j = 0; j < annotation.VertexPoints.length; j++) {\n var point = { x: annotation.VertexPoints[j].X, y: annotation.VertexPoints[j].Y };\n vertexPoints.push(point);\n }\n }\n if (annotation.Bounds && annotation.EnableShapeLabel === true) {\n // eslint-disable-next-line max-len\n annotation.LabelBounds = this.pdfViewer.annotationModule.inputElementModule.calculateLabelBoundsFromLoadedDocument(annotation.Bounds);\n // eslint-disable-next-line max-len\n annotation.LabelBorderColor = annotation.LabelBorderColor ? annotation.LabelBorderColor : annotation.StrokeColor;\n annotation.FontColor = annotation.FontColor ? annotation.FontColor : annotation.StrokeColor;\n annotation.LabelFillColor = annotation.LabelFillColor ? annotation.LabelFillColor : annotation.FillColor;\n annotation.FontSize = annotation.FontSize ? annotation.FontSize : 16;\n annotation.LabelSettings = annotation.LabelSettings ? annotation.LabelSettings : this.pdfViewer.shapeLabelSettings;\n }\n // eslint-disable-next-line max-len\n annotation.AnnotationSettings = annotation.AnnotationSettings ? annotation.AnnotationSettings : this.pdfViewer.annotationModule.updateAnnotationSettings(annotation);\n // eslint-disable-next-line max-len\n annotation.allowedInteractions = this.pdfViewer.annotationModule.updateAnnotationAllowedInteractions(annotation);\n // eslint-disable-next-line max-len\n annotationObject = {\n id: 'shape', shapeAnnotationType: annotation.ShapeAnnotationType, author: annotation.Author, allowedInteractions: annotation.allowedInteractions, modifiedDate: annotation.ModifiedDate, subject: annotation.Subject, pageNumber: pageNumber,\n // eslint-disable-next-line max-len\n note: annotation.Note, strokeColor: annotation.StrokeColor, fillColor: annotation.FillColor, opacity: annotation.Opacity, thickness: annotation.Thickness, rectangleDifference: annotation.RectangleDifference,\n borderStyle: annotation.BorderStyle, borderDashArray: annotation.BorderDashArray, rotateAngle: annotation.RotateAngle, isCloudShape: annotation.IsCloudShape,\n // eslint-disable-next-line max-len\n cloudIntensity: annotation.CloudIntensity, vertexPoints: vertexPoints, lineHeadStart: annotation.LineHeadStart, lineHeadEnd: annotation.LineHeadEnd, isLocked: annotation.IsLocked, comments: this.pdfViewer.annotationModule.getAnnotationComments(annotation.Comments, annotation, annotation.Author), review: { state: annotation.State, stateModel: annotation.StateModel, modifiedDate: annotation.ModifiedDate, author: annotation.Author }, annotName: annotation.AnnotName,\n bounds: { left: annotation.Bounds.X, top: annotation.Bounds.Y, width: annotation.Bounds.Width, height: annotation.Bounds.Height, right: annotation.Bounds.Right, bottom: annotation.Bounds.Bottom },\n labelContent: annotation.LabelContent, enableShapeLabel: annotation.EnableShapeLabel, labelFillColor: annotation.LabelFillColor,\n labelBorderColor: annotation.LabelBorderColor, fontColor: annotation.FontColor, fontSize: annotation.FontSize,\n // eslint-disable-next-line max-len\n labelBounds: annotation.LabelBounds, annotationSelectorSettings: this.getSettings(annotation), labelSettings: annotation.LabelSettings, annotationSettings: annotation.AnnotationSettings,\n customData: this.pdfViewer.annotation.getCustomData(annotation), isPrint: annotation.IsPrint, isCommentLock: annotation.IsCommentLock, isAnnotationRotated: false\n };\n this.pdfViewer.annotationModule.storeAnnotations(pageNumber, annotationObject, '_annotations_shape');\n };\n /**\n * @param annotation\n * @param pageNumber\n * @param annotation\n * @param pageNumber\n * @private\n */\n // eslint-disable-next-line\n ShapeAnnotation.prototype.updateShapeAnnotationCollections = function (annotation, pageNumber) {\n // eslint-disable-next-line\n var annotationObject = null;\n var vertexPoints = null;\n if (annotation.VertexPoints) {\n vertexPoints = [];\n for (var j = 0; j < annotation.VertexPoints.length; j++) {\n var point = { x: annotation.VertexPoints[j].X, y: annotation.VertexPoints[j].Y };\n vertexPoints.push(point);\n }\n }\n if (annotation.Bounds && annotation.EnableShapeLabel === true) {\n // eslint-disable-next-line max-len\n annotation.LabelBounds = this.pdfViewer.annotationModule.inputElementModule.calculateLabelBoundsFromLoadedDocument(annotation.Bounds);\n // eslint-disable-next-line max-len\n annotation.LabelBorderColor = annotation.LabelBorderColor ? annotation.LabelBorderColor : annotation.StrokeColor;\n annotation.FontColor = annotation.FontColor ? annotation.FontColor : annotation.StrokeColor;\n annotation.LabelFillColor = annotation.LabelFillColor ? annotation.LabelFillColor : annotation.FillColor;\n annotation.FontSize = annotation.FontSize ? annotation.FontSize : 16;\n var settings = this.pdfViewer.shapeLabelSettings;\n var labelSettings = { borderColor: annotation.StrokeColor, fillColor: annotation.FillColor, fontColor: annotation.FontColor,\n fontSize: annotation.FontSize, labelContent: annotation.LabelContent, labelHeight: settings.labelHeight, labelWidth: settings.labelWidth, opacity: annotation.Opacity\n };\n annotation.LabelSettings = annotation.LabelSettings ? annotation.LabelSettings : labelSettings;\n }\n // eslint-disable-next-line max-len\n annotation.AnnotationSettings = annotation.AnnotationSettings ? annotation.AnnotationSettings : this.pdfViewer.annotationModule.updateAnnotationSettings(annotation);\n if (annotation.IsLocked) {\n annotation.AnnotationSettings.isLock = annotation.IsLocked;\n }\n // eslint-disable-next-line max-len\n annotation.allowedInteractions = annotation.AllowedInteractions ? annotation.AllowedInteractions : this.pdfViewer.annotationModule.updateAnnotationAllowedInteractions(annotation);\n // eslint-disable-next-line max-len\n annotationObject = {\n id: 'shape', shapeAnnotationType: annotation.ShapeAnnotationType, author: annotation.Author, allowedInteractions: annotation.allowedInteractions, modifiedDate: annotation.ModifiedDate, subject: annotation.Subject,\n // eslint-disable-next-line max-len\n note: annotation.Note, strokeColor: annotation.StrokeColor, fillColor: annotation.FillColor, opacity: annotation.Opacity, thickness: annotation.Thickness, rectangleDifference: annotation.RectangleDifference,\n borderStyle: annotation.BorderStyle, borderDashArray: annotation.BorderDashArray, rotateAngle: annotation.RotateAngle, isCloudShape: annotation.IsCloudShape,\n // eslint-disable-next-line max-len\n cloudIntensity: annotation.CloudIntensity, vertexPoints: vertexPoints, lineHeadStart: annotation.LineHeadStart, lineHeadEnd: annotation.LineHeadEnd, isLocked: annotation.IsLocked, comments: this.pdfViewer.annotationModule.getAnnotationComments(annotation.Comments, annotation, annotation.Author), review: { state: annotation.State, stateModel: annotation.StateModel, modifiedDate: annotation.ModifiedDate, author: annotation.Author }, annotationId: annotation.AnnotName,\n bounds: { left: annotation.Bounds.X, top: annotation.Bounds.Y, width: annotation.Bounds.Width, height: annotation.Bounds.Height, right: annotation.Bounds.Right, bottom: annotation.Bounds.Bottom },\n labelContent: annotation.LabelContent, enableShapeLabel: annotation.EnableShapeLabel, labelFillColor: annotation.LabelFillColor,\n labelBorderColor: annotation.LabelBorderColor, fontColor: annotation.FontColor, fontSize: annotation.FontSize,\n // eslint-disable-next-line max-len\n labelBounds: annotation.LabelBounds, pageNumber: pageNumber, labelSettings: annotation.LabelSettings, annotationSettings: annotation.AnnotationSettings,\n customData: this.pdfViewer.annotation.getCustomData(annotation), isPrint: annotation.IsPrint\n };\n return annotationObject;\n };\n /**\n * This method used to add annotations with using program.\n *\n * @param annotationType - It describes the annotation type\n * @param annotationObject - It describes type of annotation object\n * @param offset - It describes about the annotation bounds or location\n * @returns Object\n * @private\n */\n ShapeAnnotation.prototype.updateAddAnnotationDetails = function (annotationType, annotationObject, offset) {\n //Creating new object if annotationObject is null\n if (!annotationObject) {\n annotationObject = { offset: { x: 10, y: 10 }, pageNumber: 0, width: undefined, height: undefined };\n offset = annotationObject.offset;\n }\n else if (!annotationObject.offset)\n offset = { x: 10, y: 10 };\n else\n offset = annotationObject.offset;\n //Initialize the annotation settings\n var annotationSelectorSettings = null;\n var allowedInteractions = null;\n var annotationSettings = null;\n var shapeAnnotationType = '';\n var isArrow = false;\n var vertexPoints = null;\n //Creating the CurrentDate and Annotation name\n var currentDateString = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n var annotationName = this.pdfViewer.annotation.createGUID();\n if (annotationType == 'Line') {\n //Creating annotation settings\n annotationSelectorSettings = this.pdfViewer.lineSettings.annotationSelectorSettings ? this.pdfViewer.lineSettings.annotationSelectorSettings : this.pdfViewer.annotationSelectorSettings;\n annotationSettings = this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.lineSettings);\n allowedInteractions = this.pdfViewer.lineSettings.allowedInteractions ? this.pdfViewer.lineSettings.allowedInteractions : this.pdfViewer.annotationSettings.allowedInteractions;\n shapeAnnotationType = 'Line';\n if (annotationObject.vertexPoints)\n vertexPoints = annotationObject.vertexPoints;\n else\n vertexPoints = [{ x: offset.x, y: offset.y }, { x: offset.x + 100, y: offset.y }];\n annotationObject.width = annotationObject.width ? annotationObject.width : 1;\n annotationObject.height = annotationObject.height ? annotationObject.height : 1;\n }\n else if (annotationType == 'Arrow') {\n //Creating annotation settings\n annotationSelectorSettings = this.pdfViewer.arrowSettings.annotationSelectorSettings ? this.pdfViewer.arrowSettings.annotationSelectorSettings : this.pdfViewer.annotationSelectorSettings;\n annotationSettings = this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.arrowSettings);\n allowedInteractions = this.pdfViewer.arrowSettings.allowedInteractions ? this.pdfViewer.arrowSettings.allowedInteractions : this.pdfViewer.annotationSettings.allowedInteractions;\n shapeAnnotationType = 'Line';\n isArrow = true;\n if (annotationObject.vertexPoints)\n vertexPoints = annotationObject.vertexPoints;\n else\n vertexPoints = [{ x: offset.x, y: offset.y }, { x: offset.x + 100, y: offset.y }];\n annotationObject.width = annotationObject.width ? annotationObject.width : 1;\n annotationObject.height = annotationObject.height ? annotationObject.height : 1;\n }\n else if (annotationType == 'Rectangle') {\n //Creating annotation settings\n annotationSelectorSettings = this.pdfViewer.rectangleSettings.annotationSelectorSettings ? this.pdfViewer.rectangleSettings.annotationSelectorSettings : this.pdfViewer.annotationSelectorSettings;\n annotationSettings = this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.rectangleSettings);\n allowedInteractions = this.pdfViewer.rectangleSettings.allowedInteractions ? this.pdfViewer.rectangleSettings.allowedInteractions : this.pdfViewer.annotationSettings.allowedInteractions;\n shapeAnnotationType = 'Square';\n annotationObject.width = annotationObject.width ? annotationObject.width : 150;\n annotationObject.height = annotationObject.height ? annotationObject.height : 75;\n }\n else if (annotationType == 'Circle') {\n //Creating annotation settings\n annotationSelectorSettings = this.pdfViewer.circleSettings.annotationSelectorSettings ? this.pdfViewer.circleSettings.annotationSelectorSettings : this.pdfViewer.annotationSelectorSettings;\n annotationSettings = this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.circleSettings);\n allowedInteractions = this.pdfViewer.circleSettings.allowedInteractions ? this.pdfViewer.circleSettings.allowedInteractions : this.pdfViewer.annotationSettings.allowedInteractions;\n shapeAnnotationType = 'Circle';\n annotationObject.width = annotationObject.width ? annotationObject.width : 100;\n annotationObject.height = annotationObject.height ? annotationObject.height : 90;\n }\n else if (annotationType == 'Polygon') {\n //Creating annotation settings\n annotationSelectorSettings = this.pdfViewer.polygonSettings.annotationSelectorSettings ? this.pdfViewer.polygonSettings.annotationSelectorSettings : this.pdfViewer.annotationSelectorSettings;\n annotationSettings = this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.polygonSettings);\n allowedInteractions = this.pdfViewer.polygonSettings.allowedInteractions ? this.pdfViewer.polygonSettings.allowedInteractions : this.pdfViewer.annotationSettings.allowedInteractions;\n shapeAnnotationType = 'Polygon';\n if (annotationObject.vertexPoints)\n vertexPoints = annotationObject.vertexPoints;\n else\n vertexPoints = [{ x: offset.x, y: offset.y }, { x: offset.x + 42, y: offset.y - 29 }, { x: offset.x + 89, y: offset.y - 1 }, { x: offset.x + 78, y: offset.y + 42 }, { x: offset.x + 11, y: offset.y + 42 }, { x: offset.x, y: offset.y }];\n annotationObject.width = annotationObject.width ? annotationObject.width : 1;\n annotationObject.height = annotationObject.height ? annotationObject.height : 1;\n }\n annotationSettings.isLock = annotationObject.isLock ? annotationObject.isLock : false;\n annotationSettings.minHeight = annotationObject.minHeight ? annotationObject.minHeight : 0;\n annotationSettings.minWidth = annotationObject.minWidth ? annotationObject.minWidth : 0;\n annotationSettings.maxWidth = annotationObject.maxWidth ? annotationObject.maxWidth : 0;\n annotationSettings.maxHeight = annotationObject.maxHeight ? annotationObject.maxHeight : 0;\n //Converting points model into vertex property\n if (vertexPoints)\n vertexPoints = this.pdfViewer.annotation.getVertexPointsXY(vertexPoints);\n //Creating Annotation objects with it's proper properties\n var shapeAnnotation = [];\n var shape = {\n AllowedInteractions: annotationObject.allowedInteractions ? annotationObject.allowedInteractions : allowedInteractions,\n AnnotName: annotationName,\n AnnotType: 'shape',\n AnnotationSelectorSettings: annotationObject.annotationSelectorSettings ? annotationObject.annotationSelectorSettings : annotationSelectorSettings,\n AnnotationSettings: annotationSettings,\n Author: annotationObject.author ? annotationObject.author : 'Guest',\n BorderDashArray: annotationObject.borderDashArray ? annotationObject.borderDashArray : 0,\n BorderStyle: 'Solid',\n Bounds: { X: offset.x, Y: offset.y, Width: annotationObject.width, Height: annotationObject.height, Left: offset.x, Top: offset.y, Location: { X: offset.x, Y: offset.y }, Size: { Height: annotationObject.height, IsEmpty: false, Width: annotationObject.width } },\n CloudIntensity: 0,\n Comments: null,\n CustomData: annotationObject.customData ? annotationObject.customData : null,\n CreatedDate: currentDateString,\n EnableShapeLabel: false,\n ExistingCustomData: null,\n FillColor: annotationObject.fillColor ? annotationObject.fillColor : '#ffffff00',\n FontColor: null,\n FontSize: 0,\n IsCloudShape: false,\n IsCommentLock: false,\n IsLocked: annotationObject.isLock ? annotationObject.isLock : false,\n IsPrint: annotationObject.isPrint ? annotationObject.isPrint : true,\n LabelBorderColor: null,\n LabelBounds: { X: 0, Y: 0, Width: 0, Height: 0 },\n LabelContent: null,\n LabelFillColor: null,\n LabelSettings: null,\n LineHeadEnd: annotationObject.lineHeadStartStyle ? annotationObject.lineHeadStartStyle : isArrow ? 'ClosedArrow' : 'None',\n LineHeadStart: annotationObject.lineHeadEndStyle ? annotationObject.lineHeadEndStyle : isArrow ? 'ClosedArrow' : 'None',\n ModifiedDate: '',\n Note: '',\n Opacity: annotationObject.opacity ? annotationObject.opacity : 1,\n RectangleDifference: null,\n RotateAngle: 'RotateAngle0',\n ShapeAnnotationType: shapeAnnotationType,\n State: '',\n StateModel: '',\n StrokeColor: annotationObject.strokeColor ? annotationObject.strokeColor : '#ff0000',\n Subject: annotationType.toString(),\n Thickness: annotationObject.thickness ? annotationObject.thickness : 1,\n VertexPoints: vertexPoints\n };\n //Adding the annotation object to an array and return it\n shapeAnnotation[0] = shape;\n return { shapeAnnotation: shapeAnnotation };\n };\n return ShapeAnnotation;\n}());\nexport { ShapeAnnotation };\n","import { NumericTextBox } from '@syncfusion/ej2-inputs';\nimport { createElement, Browser, isNullOrUndefined, isBlazor } from '@syncfusion/ej2-base';\nimport { Dialog } from '@syncfusion/ej2-popups';\nimport { DropDownButton } from '@syncfusion/ej2-splitbuttons';\nimport { Point } from '@syncfusion/ej2-drawings';\n/**\n * @hidden\n */\nvar MeasureAnnotation = /** @class */ (function () {\n function MeasureAnnotation(pdfviewer, pdfViewerBase) {\n /**\n * @private\n */\n this.measureShapeCount = 0;\n /**\n * @private\n */\n this.isAddAnnotationProgramatically = false;\n this.pdfViewer = pdfviewer;\n this.pdfViewerBase = pdfViewerBase;\n }\n Object.defineProperty(MeasureAnnotation.prototype, \"pixelToPointFactor\", {\n /**\n * @private\n */\n get: function () {\n return (72 / 96);\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @param shapeAnnotations\n * @param pageNumber\n * @param isImportAction\n * @param shapeAnnotations\n * @param pageNumber\n * @param isImportAction\n * @private\n */\n // eslint-disable-next-line\n MeasureAnnotation.prototype.renderMeasureShapeAnnotations = function (shapeAnnotations, pageNumber, isImportAction) {\n if (shapeAnnotations) {\n if (shapeAnnotations.length >= 1) {\n // eslint-disable-next-line\n var measureAnnots = this.pdfViewer.annotation.getStoredAnnotations(pageNumber, shapeAnnotations, '_annotations_shape_measure');\n if (!measureAnnots || isImportAction) {\n for (var i = 0; i < shapeAnnotations.length; i++) {\n // eslint-disable-next-line\n var annotation = shapeAnnotations[i];\n var annotationObject = null;\n this.measureShapeCount = this.measureShapeCount + 1;\n // eslint-disable-next-line max-len\n annotation.annotationAddMode = this.pdfViewer.annotationModule.findAnnotationMode(annotation, pageNumber, annotation.AnnotType);\n var isAnnotationRotated = void 0;\n if (annotation.ShapeAnnotationType) {\n if (isImportAction) {\n if (this.pdfViewerBase.isJsonImported) {\n annotation.Bounds = this.pdfViewerBase.importJsonForRotatedDocuments(annotation.Rotate, pageNumber, annotation.Bounds, annotation.AnnotationRotation);\n isAnnotationRotated = this.pdfViewerBase.isPageRotated;\n }\n }\n var vertexPoints = null;\n if (annotation.VertexPoints) {\n vertexPoints = [];\n if (isImportAction && this.pdfViewerBase.isJsonImported) {\n vertexPoints = this.pdfViewerBase.calculateVertexPoints(annotation.Rotate, pageNumber, annotation.VertexPoints, annotation.AnnotationRotation);\n }\n else {\n for (var j = 0; j < annotation.VertexPoints.length; j++) {\n var x = annotation.VertexPoints[j].X ? annotation.VertexPoints[j].X : annotation.VertexPoints[j].x;\n var y = annotation.VertexPoints[j].Y ? annotation.VertexPoints[j].Y : annotation.VertexPoints[j].y;\n var point = { x: x, y: y };\n vertexPoints.push(point);\n }\n }\n }\n if (annotation.Bounds && annotation.EnableShapeLabel === true) {\n // eslint-disable-next-line max-len\n annotation.LabelBounds = this.pdfViewer.annotationModule.inputElementModule.calculateLabelBoundsFromLoadedDocument(annotation.Bounds);\n annotation.LabelBorderColor = annotation.LabelBorderColor ? annotation.LabelBorderColor : annotation.StrokeColor;\n annotation.FontColor = annotation.FontColor ? annotation.FontColor : annotation.StrokeColor;\n annotation.LabelFillColor = annotation.LabelFillColor ? annotation.LabelFillColor : annotation.FillColor;\n annotation.FontSize = annotation.FontSize ? annotation.FontSize : 16;\n // eslint-disable-next-line max-len\n annotation.LabelSettings = annotation.LabelSettings ? annotation.LabelSettings : this.pdfViewer.shapeLabelSettings;\n }\n // eslint-disable-next-line max-len\n annotation.AnnotationSettings = annotation.AnnotationSettings ? annotation.AnnotationSettings : this.pdfViewer.annotationModule.updateAnnotationSettings(annotation);\n // eslint-disable-next-line max-len\n annotation.allowedInteractions = annotation.AllowedInteractions ? annotation.AllowedInteractions : this.pdfViewer.annotationModule.updateAnnotationAllowedInteractions(annotation);\n var isPrint = annotation.AnnotationSettings.isPrint;\n var measureObject = {\n // eslint-disable-next-line max-len\n ratio: annotation.Calibrate.Ratio, x: this.getNumberFormatArray(annotation.Calibrate.X), distance: this.getNumberFormatArray(annotation.Calibrate.Distance), area: this.getNumberFormatArray(annotation.Calibrate.Area), angle: this.getNumberFormatArray(annotation.Calibrate.Angle), volume: this.getNumberFormatArray(annotation.Calibrate.Volume),\n targetUnitConversion: annotation.Calibrate.TargetUnitConversion\n };\n if (annotation.Calibrate.Depth) {\n measureObject.depth = annotation.Calibrate.Depth;\n }\n var left = annotation.Bounds.X ? annotation.Bounds.X : annotation.Bounds.x;\n var top_1 = annotation.Bounds.Y ? annotation.Bounds.Y : annotation.Bounds.y;\n var width = annotation.Bounds.Width ? annotation.Bounds.Width : annotation.Bounds.width;\n var height = annotation.Bounds.Height ? annotation.Bounds.Height : annotation.Bounds.height;\n annotationObject = {\n // eslint-disable-next-line max-len\n id: 'measure' + this.measureShapeCount, shapeAnnotationType: annotation.ShapeAnnotationType, author: annotation.Author, allowedInteractions: annotation.allowedInteractions, modifiedDate: annotation.ModifiedDate, subject: annotation.Subject,\n note: annotation.Note, strokeColor: annotation.StrokeColor, fillColor: annotation.FillColor, opacity: annotation.Opacity, thickness: annotation.Thickness, rectangleDifference: annotation.RectangleDifference,\n // eslint-disable-next-line max-len\n borderStyle: annotation.BorderStyle, borderDashArray: annotation.BorderDashArray, rotateAngle: annotation.RotateAngle, isCloudShape: annotation.IsCloudShape,\n cloudIntensity: annotation.CloudIntensity, vertexPoints: vertexPoints, lineHeadStart: annotation.LineHeadStart, lineHeadEnd: annotation.LineHeadEnd, isLocked: annotation.IsLocked,\n // eslint-disable-next-line max-len\n bounds: { left: left, top: top_1, width: width, height: height, right: annotation.Bounds.Right, bottom: annotation.Bounds.Bottom },\n caption: annotation.Caption, captionPosition: annotation.CaptionPosition, calibrate: measureObject, leaderLength: annotation.LeaderLength, leaderLineExtension: annotation.LeaderLineExtension,\n // eslint-disable-next-line max-len\n leaderLineOffset: annotation.LeaderLineOffset, indent: annotation.Indent, annotName: annotation.AnnotName, comments: this.pdfViewer.annotationModule.getAnnotationComments(annotation.Comments, annotation, annotation.Author),\n review: { state: annotation.State, stateModel: annotation.StateModel, modifiedDate: annotation.ModifiedDate, author: annotation.Author },\n // eslint-disable-next-line max-len\n labelContent: annotation.LabelContent, enableShapeLabel: annotation.EnableShapeLabel, labelFillColor: annotation.LabelFillColor,\n fontColor: annotation.FontColor, labelBorderColor: annotation.LabelBorderColor, fontSize: annotation.FontSize,\n // eslint-disable-next-line max-len\n labelBounds: annotation.LabelBounds, annotationSelectorSettings: this.getSettings(annotation), labelSettings: annotation.LabelSettings, annotationSettings: annotation.AnnotationSettings,\n customData: this.pdfViewer.annotation.getCustomData(annotation), isPrint: isPrint, isCommentLock: annotation.IsCommentLock, isAnnotationRotated: isAnnotationRotated\n };\n var annot = void 0;\n // eslint-disable-next-line\n var vPoints = annotationObject.vertexPoints;\n if (vertexPoints == null) {\n vPoints = [];\n }\n // eslint-disable-next-line max-len\n annotation.AnnotationSelectorSettings = annotation.AnnotationSelectorSettings ? annotation.AnnotationSelectorSettings : this.pdfViewer.annotationSelectorSettings;\n // eslint-disable-next-line max-len\n annotation.allowedInteractions = annotation.AllowedInteractions ? annotation.AllowedInteractions : this.pdfViewer.annotationModule.updateAnnotationAllowedInteractions(annotation);\n annot = {\n // eslint-disable-next-line max-len\n id: 'measure' + this.measureShapeCount, shapeAnnotationType: this.getShapeType(annotationObject), author: annotationObject.author, allowedInteractions: annotation.allowedInteractions, modifiedDate: annotationObject.modifiedDate,\n subject: annotationObject.subject, notes: annotationObject.note, fillColor: annotationObject.fillColor, strokeColor: annotationObject.strokeColor, opacity: annotationObject.opacity,\n // eslint-disable-next-line max-len\n thickness: annotationObject.thickness, borderStyle: annotationObject.borderStyle, borderDashArray: annotationObject.borderDashArray.toString(), rotateAngle: parseFloat(annotationObject.rotateAngle.split('Angle')[1]),\n isCloudShape: annotationObject.isCloudShape, cloudIntensity: annotationObject.cloudIntensity, taregetDecoraterShapes: this.pdfViewer.annotation.getArrowType(annotationObject.lineHeadEnd), sourceDecoraterShapes: this.pdfViewer.annotation.getArrowType(annotationObject.lineHeadStart),\n // eslint-disable-next-line max-len\n vertexPoints: vPoints, bounds: { x: annotationObject.bounds.left, y: annotationObject.bounds.top, width: annotationObject.bounds.width, height: annotationObject.bounds.height }, leaderHeight: annotationObject.leaderLength,\n pageIndex: pageNumber, annotName: annotationObject.annotName, comments: annotationObject.comments, review: annotationObject.review,\n measureType: this.getMeasureType(annotationObject),\n // eslint-disable-next-line max-len\n labelContent: annotation.LabelContent, enableShapeLabel: annotation.EnableShapeLabel, labelFillColor: annotation.LabelFillColor,\n fontColor: annotation.FontColor, labelBorderColor: annotation.LabelBorderColor, fontSize: annotation.FontSize,\n labelBounds: annotation.LabelBounds, annotationSelectorSettings: annotation.AnnotationSelectorSettings,\n annotationSettings: annotationObject.annotationSettings, annotationAddMode: annotation.annotationAddMode,\n isPrint: isPrint, isCommentLock: annotationObject.isCommentLock\n };\n this.pdfViewer.annotation.storeAnnotations(pageNumber, annotationObject, '_annotations_shape_measure');\n if (this.isAddAnnotationProgramatically) {\n var settings = {\n opacity: annot.opacity, strokeColor: annot.strokeColor, thickness: annot.thickness, modifiedDate: annot.modifiedDate,\n width: annot.bounds.width, height: annot.bounds.height\n };\n this.pdfViewer.fireAnnotationAdd(annot.pageIndex, annot.annotName, annotation.ShapeAnnotationType, annot.bounds, settings);\n }\n this.pdfViewer.add(annot);\n }\n }\n }\n }\n else if (shapeAnnotations.shapeAnnotationType) {\n var annotationObject = this.createAnnotationObject(shapeAnnotations);\n this.pdfViewer.annotationModule.isFormFieldShape = false;\n this.pdfViewer.annotationModule.storeAnnotations(pageNumber, annotationObject, '_annotations_shape_measure');\n this.pdfViewer.annotationModule.triggerAnnotationAdd(shapeAnnotations);\n }\n }\n };\n /**\n * @param annotation\n * @private\n */\n // eslint-disable-next-line\n MeasureAnnotation.prototype.getSettings = function (annotation) {\n var selector = this.pdfViewer.annotationSelectorSettings;\n if (annotation.AnnotationSelectorSettings) {\n selector = annotation.AnnotationSelectorSettings;\n }\n else {\n selector = this.getSelector(annotation.Subject);\n }\n return selector;\n };\n /**\n * @param type\n * @private\n */\n MeasureAnnotation.prototype.setAnnotationType = function (type) {\n var author = 'Guest';\n this.updateMeasureproperties();\n this.pdfViewerBase.disableTextSelectionMode();\n switch (type) {\n case 'Distance':\n this.currentAnnotationMode = 'Distance';\n var modifiedDateDist = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n // eslint-disable-next-line max-len\n author = (this.pdfViewer.annotationSettings.author !== 'Guest') ? this.pdfViewer.annotationSettings.author : this.pdfViewer.distanceSettings.author ? this.pdfViewer.distanceSettings.author : 'Guest';\n this.pdfViewer.drawingObject = {\n sourceDecoraterShapes: this.pdfViewer.annotation.getArrowType(this.distanceStartHead),\n taregetDecoraterShapes: this.pdfViewer.annotation.getArrowType(this.distanceEndHead), measureType: 'Distance',\n fillColor: this.distanceFillColor, notes: '', strokeColor: this.distanceStrokeColor, leaderHeight: this.leaderLength,\n opacity: this.distanceOpacity, thickness: this.distanceThickness, borderDashArray: this.distanceDashArray.toString(),\n // eslint-disable-next-line max-len\n shapeAnnotationType: 'Distance', author: author, subject: 'Distance calculation', isCommentLock: false\n };\n this.pdfViewer.tool = 'Distance';\n break;\n case 'Perimeter':\n this.currentAnnotationMode = 'Perimeter';\n var modifiedDatePeri = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n // eslint-disable-next-line max-len\n author = (this.pdfViewer.annotationSettings.author !== 'Guest') ? this.pdfViewer.annotationSettings.author : this.pdfViewer.perimeterSettings.author ? this.pdfViewer.perimeterSettings.author : 'Guest';\n this.pdfViewer.drawingObject = {\n // eslint-disable-next-line max-len\n shapeAnnotationType: 'LineWidthArrowHead', fillColor: this.perimeterFillColor, notes: '', strokeColor: this.perimeterStrokeColor, opacity: this.perimeterOpacity,\n thickness: this.perimeterThickness, sourceDecoraterShapes: this.pdfViewer.annotation.getArrowType(this.perimeterStartHead),\n // eslint-disable-next-line max-len\n taregetDecoraterShapes: this.pdfViewer.annotation.getArrowType(this.perimeterEndHead), measureType: 'Perimeter', borderDashArray: this.perimeterDashArray.toString(),\n author: author, subject: 'Perimeter calculation', isCommentLock: false\n };\n this.pdfViewer.tool = 'Perimeter';\n break;\n case 'Area':\n this.currentAnnotationMode = 'Area';\n var modifiedDateArea = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n // eslint-disable-next-line max-len\n author = (this.pdfViewer.annotationSettings.author !== 'Guest') ? this.pdfViewer.annotationSettings.author : this.pdfViewer.areaSettings.author ? this.pdfViewer.areaSettings.author : 'Guest';\n this.pdfViewer.drawingObject = {\n // eslint-disable-next-line max-len\n shapeAnnotationType: 'Polygon', fillColor: this.areaFillColor, notes: '', strokeColor: this.areaStrokeColor,\n thickness: this.areaThickness, opacity: this.areaOpacity, measureType: 'Area',\n modifiedDate: modifiedDateArea, borderStyle: '', borderDashArray: '0',\n author: author, subject: 'Area calculation', isCommentLock: false\n };\n this.pdfViewer.tool = 'Polygon';\n break;\n case 'Radius':\n this.currentAnnotationMode = 'Radius';\n var modifiedDateRad = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n // eslint-disable-next-line max-len\n author = (this.pdfViewer.annotationSettings.author !== 'Guest') ? this.pdfViewer.annotationSettings.author : this.pdfViewer.radiusSettings.author ? this.pdfViewer.radiusSettings.author : 'Guest';\n this.pdfViewer.drawingObject = {\n // eslint-disable-next-line max-len\n shapeAnnotationType: 'Radius', fillColor: this.radiusFillColor, notes: '', strokeColor: this.radiusStrokeColor, opacity: this.radiusOpacity,\n thickness: this.radiusThickness, measureType: 'Radius', modifiedDate: modifiedDateRad, borderStyle: '', borderDashArray: '0',\n author: author, subject: 'Radius calculation', isCommentLock: false\n };\n this.pdfViewer.tool = 'DrawTool';\n break;\n case 'Volume':\n this.currentAnnotationMode = 'Volume';\n var modifiedDateVol = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n // eslint-disable-next-line max-len\n author = (this.pdfViewer.annotationSettings.author !== 'Guest') ? this.pdfViewer.annotationSettings.author : this.pdfViewer.volumeSettings.author ? this.pdfViewer.volumeSettings.author : 'Guest';\n this.pdfViewer.drawingObject = {\n // eslint-disable-next-line max-len\n shapeAnnotationType: 'Polygon', notes: '', fillColor: this.volumeFillColor, strokeColor: this.volumeStrokeColor,\n opacity: this.volumeOpacity, thickness: this.volumeThickness, measureType: 'Volume',\n modifiedDate: modifiedDateVol, borderStyle: '', borderDashArray: '0',\n author: author, subject: 'Volume calculation', isCommentLock: false\n };\n this.pdfViewer.tool = 'Polygon';\n break;\n }\n };\n MeasureAnnotation.prototype.updateMeasureproperties = function () {\n this.distanceFillColor = this.pdfViewer.distanceSettings.fillColor ? this.pdfViewer.distanceSettings.fillColor : '#ff0000';\n this.distanceStrokeColor = this.pdfViewer.distanceSettings.strokeColor ? this.pdfViewer.distanceSettings.strokeColor : '#ff0000';\n this.distanceOpacity = this.pdfViewer.distanceSettings.opacity ? this.pdfViewer.distanceSettings.opacity : 1;\n this.distanceThickness = this.pdfViewer.distanceSettings.thickness ? this.pdfViewer.distanceSettings.thickness : 1;\n this.distanceDashArray = this.pdfViewer.distanceSettings.borderDashArray ? this.pdfViewer.distanceSettings.borderDashArray : 0;\n this.leaderLength = this.pdfViewer.distanceSettings.leaderLength != null ? this.pdfViewer.distanceSettings.leaderLength : 40;\n // eslint-disable-next-line max-len\n this.distanceStartHead = this.pdfViewer.distanceSettings.lineHeadStartStyle ? this.pdfViewer.distanceSettings.lineHeadStartStyle : 'Closed';\n this.distanceEndHead = this.pdfViewer.distanceSettings.lineHeadEndStyle ? this.pdfViewer.distanceSettings.lineHeadEndStyle : 'Closed';\n this.perimeterFillColor = this.pdfViewer.perimeterSettings.fillColor ? this.pdfViewer.perimeterSettings.fillColor : '#ffffff00';\n this.perimeterStrokeColor = this.pdfViewer.perimeterSettings.strokeColor ? this.pdfViewer.perimeterSettings.strokeColor : '#ff0000';\n this.perimeterOpacity = this.pdfViewer.perimeterSettings.opacity ? this.pdfViewer.perimeterSettings.opacity : 1;\n this.perimeterThickness = this.pdfViewer.perimeterSettings.thickness ? this.pdfViewer.perimeterSettings.thickness : 1;\n this.perimeterDashArray = this.pdfViewer.perimeterSettings.borderDashArray ? this.pdfViewer.perimeterSettings.borderDashArray : 0;\n // eslint-disable-next-line max-len\n this.perimeterStartHead = this.pdfViewer.perimeterSettings.lineHeadStartStyle ? this.pdfViewer.perimeterSettings.lineHeadStartStyle : 'Open';\n this.perimeterEndHead = this.pdfViewer.perimeterSettings.lineHeadEndStyle ? this.pdfViewer.perimeterSettings.lineHeadEndStyle : 'Open';\n this.areaFillColor = this.pdfViewer.areaSettings.fillColor ? this.pdfViewer.areaSettings.fillColor : '#ffffff00';\n this.areaStrokeColor = this.pdfViewer.areaSettings.strokeColor ? this.pdfViewer.areaSettings.strokeColor : '#ff0000';\n this.areaOpacity = this.pdfViewer.areaSettings.opacity ? this.pdfViewer.areaSettings.opacity : 1;\n this.areaThickness = this.pdfViewer.areaSettings.thickness ? this.pdfViewer.areaSettings.thickness : 1;\n this.radiusFillColor = this.pdfViewer.radiusSettings.fillColor ? this.pdfViewer.radiusSettings.fillColor : '#ffffff00';\n this.radiusStrokeColor = this.pdfViewer.radiusSettings.strokeColor ? this.pdfViewer.radiusSettings.strokeColor : '#ff0000';\n this.radiusOpacity = this.pdfViewer.radiusSettings.opacity ? this.pdfViewer.radiusSettings.opacity : 1;\n this.radiusThickness = this.pdfViewer.radiusSettings.thickness ? this.pdfViewer.radiusSettings.thickness : 1;\n this.volumeFillColor = this.pdfViewer.volumeSettings.fillColor ? this.pdfViewer.volumeSettings.fillColor : '#ffffff00';\n this.volumeStrokeColor = this.pdfViewer.volumeSettings.strokeColor ? this.pdfViewer.volumeSettings.strokeColor : '#ff0000';\n this.volumeOpacity = this.pdfViewer.volumeSettings.opacity ? this.pdfViewer.volumeSettings.opacity : 1;\n this.volumeThickness = this.pdfViewer.volumeSettings.thickness ? this.pdfViewer.volumeSettings.thickness : 1;\n this.unit = this.pdfViewer.measurementSettings.conversionUnit.toLowerCase();\n this.displayUnit = this.pdfViewer.measurementSettings.displayUnit.toLowerCase();\n this.ratio = this.pdfViewer.measurementSettings.scaleRatio;\n this.volumeDepth = this.pdfViewer.measurementSettings.depth;\n this.scaleRatioString = '1 ' + this.unit + ' = ' + this.ratio.toString() + ' ' + this.displayUnit;\n };\n MeasureAnnotation.prototype.createAnnotationObject = function (annotationModel) {\n var bound;\n var labelBound;\n var annotationName = this.pdfViewer.annotation.createGUID();\n // eslint-disable-next-line max-len\n var commentsDivid = this.pdfViewer.annotation.stickyNotesAnnotationModule.addComments('shape_measure', (annotationModel.pageIndex + 1), annotationModel.measureType);\n if (commentsDivid) {\n document.getElementById(commentsDivid).id = annotationName;\n }\n annotationModel.annotName = annotationName;\n annotationModel.author = this.pdfViewer.annotationModule.updateAnnotationAuthor('measure', annotationModel.subject);\n this.pdfViewer.annotation.stickyNotesAnnotationModule.addTextToComments(annotationName, annotationModel.notes);\n if (annotationModel.wrapper.bounds) {\n bound = {\n // eslint-disable-next-line max-len\n left: annotationModel.wrapper.bounds.x, top: annotationModel.wrapper.bounds.y, height: annotationModel.wrapper.bounds.height, width: annotationModel.wrapper.bounds.width,\n right: annotationModel.wrapper.bounds.right, bottom: annotationModel.wrapper.bounds.bottom\n };\n labelBound = this.pdfViewer.annotationModule.inputElementModule.calculateLabelBounds(annotationModel.wrapper.bounds);\n }\n else {\n bound = { left: 0, top: 0, height: 0, width: 0, right: 0, bottom: 0 };\n labelBound = { left: 0, top: 0, height: 0, width: 0, right: 0, bottom: 0 };\n }\n // eslint-disable-next-line radix\n var borderDashArray = parseInt(annotationModel.borderDashArray);\n borderDashArray = isNaN(borderDashArray) ? 0 : borderDashArray;\n // eslint-disable-next-line max-len\n var measure = { ratio: this.scaleRatioString, x: [this.createNumberFormat('x')], distance: [this.createNumberFormat('d')], area: [this.createNumberFormat('a')] };\n if (annotationModel.measureType === 'Volume') {\n measure.depth = this.volumeDepth;\n }\n // eslint-disable-next-line\n var annotationSettings = this.pdfViewer.annotationModule.findAnnotationSettings(annotationModel, true);\n // eslint-disable-next-line\n var allowedInteractions = this.pdfViewer.annotationModule.updateAnnotationAllowedInteractions(annotationModel);\n annotationModel.isPrint = annotationSettings.isPrint;\n var setting = this.pdfViewer.shapeLabelSettings;\n var labelSettings = { borderColor: annotationModel.strokeColor, fillColor: annotationModel.fillColor, fontColor: annotationModel.fontColor,\n fontSize: annotationModel.fontSize, labelContent: annotationModel.labelContent, labelHeight: setting.labelHeight, labelWidth: setting.labelMaxWidth, opacity: annotationModel.opacity\n };\n return {\n // eslint-disable-next-line max-len\n id: annotationModel.id, shapeAnnotationType: this.getShapeAnnotType(annotationModel.measureType), author: annotationModel.author, allowedInteractions: allowedInteractions,\n subject: annotationModel.subject, note: annotationModel.notes, strokeColor: annotationModel.strokeColor,\n fillColor: annotationModel.fillColor, opacity: annotationModel.opacity, thickness: annotationModel.thickness,\n // eslint-disable-next-line max-len\n borderStyle: annotationModel.borderStyle, borderDashArray: borderDashArray, bounds: bound,\n // eslint-disable-next-line max-len\n modifiedDate: this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime(),\n rotateAngle: 'RotateAngle' + annotationModel.rotateAngle, isCloudShape: annotationModel.isCloudShape, cloudIntensity: annotationModel.cloudIntensity,\n // eslint-disable-next-line max-len\n vertexPoints: annotationModel.vertexPoints, lineHeadStart: this.pdfViewer.annotation.getArrowTypeForCollection(annotationModel.sourceDecoraterShapes),\n lineHeadEnd: this.pdfViewer.annotation.getArrowTypeForCollection(annotationModel.taregetDecoraterShapes), rectangleDifference: [], isLocked: annotationSettings.isLock,\n // eslint-disable-next-line max-len\n leaderLength: annotationModel.leaderHeight, leaderLineExtension: 2, leaderLineOffset: 0, calibrate: measure, caption: true, captionPosition: 'Top',\n indent: this.getIndent(annotationModel.measureType), annotName: annotationName, comments: [], review: { state: '', stateModel: '', modifiedDate: this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime(), author: annotationModel.author },\n // eslint-disable-next-line max-len\n labelContent: annotationModel.labelContent, enableShapeLabel: annotationModel.enableShapeLabel, labelFillColor: annotationModel.labelFillColor,\n labelBorderColor: annotationModel.labelBorderColor, fontColor: annotationModel.fontColor, fontSize: annotationModel.fontSize,\n // eslint-disable-next-line max-len\n labelBounds: labelBound, annotationSelectorSettings: this.getSelector(annotationModel.subject), labelSettings: labelSettings, annotationSettings: annotationSettings,\n customData: this.pdfViewer.annotation.getMeasureData(annotationModel.subject), isPrint: annotationModel.isPrint, isCommentLock: annotationModel.isCommentLock, isAnnotationRotated: false\n };\n };\n MeasureAnnotation.prototype.getSelector = function (type) {\n var selector = this.pdfViewer.annotationSelectorSettings;\n if ((type === 'Distance calculation') && this.pdfViewer.distanceSettings.annotationSelectorSettings) {\n selector = this.pdfViewer.distanceSettings.annotationSelectorSettings;\n }\n else if ((type === 'Perimeter calculation') && this.pdfViewer.perimeterSettings.annotationSelectorSettings) {\n selector = this.pdfViewer.perimeterSettings.annotationSelectorSettings;\n // eslint-disable-next-line max-len\n }\n else if ((type === 'Area calculation') && this.pdfViewer.areaSettings.annotationSelectorSettings) {\n selector = this.pdfViewer.areaSettings.annotationSelectorSettings;\n }\n else if ((type === 'Radius calculation') && this.pdfViewer.radiusSettings.annotationSelectorSettings) {\n selector = this.pdfViewer.radiusSettings.annotationSelectorSettings;\n }\n else if ((type === 'Volume calculation') && this.pdfViewer.volumeSettings.annotationSelectorSettings) {\n selector = this.pdfViewer.volumeSettings.annotationSelectorSettings;\n }\n return selector;\n };\n MeasureAnnotation.prototype.getShapeAnnotType = function (measureType) {\n var annotationType;\n switch (measureType) {\n case 'Distance':\n annotationType = 'Line';\n break;\n case 'Perimeter':\n annotationType = 'Polyline';\n break;\n case 'Area':\n case 'Volume':\n annotationType = 'Polygon';\n break;\n case 'Radius':\n annotationType = 'Circle';\n break;\n }\n return annotationType;\n };\n MeasureAnnotation.prototype.getShapeType = function (shape) {\n var shapeType;\n if (shape.shapeAnnotationType === 'Line') {\n shapeType = 'Distance';\n }\n else if (shape.shapeAnnotationType === 'Polyline') {\n shapeType = 'LineWidthArrowHead';\n }\n else if (shape.shapeAnnotationType === 'Polygon' && shape.indent === 'PolygonDimension') {\n shapeType = 'Polygon';\n // eslint-disable-next-line max-len\n }\n else if ((shape.shapeAnnotationType === 'Polygon' && shape.indent === 'PolygonRadius') || shape.shapeAnnotationType === 'Circle') {\n shapeType = 'Radius';\n }\n else if (shape.shapeAnnotationType === 'Polygon' && shape.indent === 'PolygonVolume') {\n shapeType = 'Polygon';\n }\n return shapeType;\n };\n MeasureAnnotation.prototype.getMeasureType = function (shape) {\n var measureType;\n if (shape.shapeAnnotationType === 'Line') {\n measureType = 'Distance';\n }\n else if (shape.shapeAnnotationType === 'Polyline') {\n measureType = 'Perimeter';\n }\n else if (shape.shapeAnnotationType === 'Polygon' && shape.indent === 'PolygonDimension') {\n measureType = 'Area';\n // eslint-disable-next-line max-len\n }\n else if ((shape.shapeAnnotationType === 'Polygon' && shape.indent === 'PolygonRadius') || shape.shapeAnnotationType === 'Circle') {\n measureType = 'Radius';\n }\n else if (shape.shapeAnnotationType === 'Polygon' && shape.indent === 'PolygonVolume') {\n measureType = 'Volume';\n }\n return measureType;\n };\n MeasureAnnotation.prototype.getIndent = function (measureType) {\n var indent;\n switch (measureType) {\n case 'Distance':\n indent = 'LineDimension';\n break;\n case 'Perimeter':\n indent = 'PolyLineDimension';\n break;\n case 'Area':\n indent = 'PolygonDimension';\n break;\n case 'Radius':\n indent = 'PolygonRadius';\n break;\n case 'Volume':\n indent = 'PolygonVolume';\n break;\n }\n return indent;\n };\n // eslint-disable-next-line\n MeasureAnnotation.prototype.getNumberFormatArray = function (list) {\n // eslint-disable-next-line\n var numberFormatArray = new Array();\n if (list) {\n for (var i = 0; i < list.length; i++) {\n // eslint-disable-next-line max-len\n numberFormatArray[i] = { unit: list[i].Unit, fractionalType: list[i].FractionalType, conversionFactor: list[i].ConversionFactor, denominator: list[i].Denominator, formatDenominator: list[i].FormatDenominator };\n }\n }\n return numberFormatArray;\n };\n MeasureAnnotation.prototype.createNumberFormat = function (type) {\n var cFactor = 1;\n var unit = this.displayUnit;\n if (type === 'x') {\n cFactor = this.getFactor(this.unit);\n }\n if (type === 'a') {\n unit = 'sq ' + this.displayUnit;\n }\n // eslint-disable-next-line max-len\n var numberFormat = { unit: unit, fractionalType: 'D', conversionFactor: cFactor, denominator: 100, formatDenominator: false };\n return numberFormat;\n };\n /**\n * @private\n */\n MeasureAnnotation.prototype.saveMeasureShapeAnnotations = function () {\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_shape_measure');\n if (this.pdfViewerBase.isStorageExceed) {\n storeObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_shape_measure'];\n }\n // eslint-disable-next-line\n var annotations = new Array();\n for (var j = 0; j < this.pdfViewerBase.pageCount; j++) {\n annotations[j] = [];\n }\n if (storeObject && !this.pdfViewer.annotationSettings.skipDownload) {\n var annotationCollection = JSON.parse(storeObject);\n for (var i = 0; i < annotationCollection.length; i++) {\n var newArray = [];\n var pageAnnotationObject = annotationCollection[i];\n if (pageAnnotationObject) {\n for (var z = 0; pageAnnotationObject.annotations.length > z; z++) {\n this.pdfViewer.annotationModule.updateModifiedDate(pageAnnotationObject.annotations[z]);\n if (this.pdfViewerBase.isJsonExported) {\n if (pageAnnotationObject.annotations[z].isAnnotationRotated) {\n pageAnnotationObject.annotations[z].bounds = this.pdfViewer.annotation.getBounds(pageAnnotationObject.annotations[z].bounds, pageAnnotationObject.pageIndex);\n pageAnnotationObject.annotations[z].vertexPoints = this.pdfViewer.annotation.getVertexPoints(pageAnnotationObject.annotations[z].vertexPoints, pageAnnotationObject.pageIndex);\n }\n else {\n var pageDetails = this.pdfViewerBase.pageSize[pageAnnotationObject.pageIndex];\n if (pageDetails) {\n pageAnnotationObject.annotations[z].annotationRotation = pageDetails.rotation;\n }\n }\n }\n // eslint-disable-next-line max-len\n pageAnnotationObject.annotations[z].bounds = JSON.stringify(this.pdfViewer.annotation.getBounds(pageAnnotationObject.annotations[z].bounds, pageAnnotationObject.pageIndex));\n var strokeColorString = pageAnnotationObject.annotations[z].strokeColor;\n pageAnnotationObject.annotations[z].strokeColor = JSON.stringify(this.getRgbCode(strokeColorString));\n var fillColorString = pageAnnotationObject.annotations[z].fillColor;\n pageAnnotationObject.annotations[z].fillColor = JSON.stringify(this.getRgbCode(fillColorString));\n // eslint-disable-next-line max-len\n pageAnnotationObject.annotations[z].vertexPoints = JSON.stringify(this.pdfViewer.annotation.getVertexPoints(pageAnnotationObject.annotations[z].vertexPoints, pageAnnotationObject.pageIndex));\n if (pageAnnotationObject.annotations[z].rectangleDifference !== null) {\n // eslint-disable-next-line max-len\n pageAnnotationObject.annotations[z].rectangleDifference = JSON.stringify(pageAnnotationObject.annotations[z].rectangleDifference);\n }\n // eslint-disable-next-line max-len\n pageAnnotationObject.annotations[z].calibrate = this.getStringifiedMeasure(pageAnnotationObject.annotations[z].calibrate);\n if (pageAnnotationObject.annotations[z].enableShapeLabel === true) {\n // eslint-disable-next-line max-len\n pageAnnotationObject.annotations[z].labelBounds = JSON.stringify(this.pdfViewer.annotationModule.inputElementModule.calculateLabelBounds(JSON.parse(pageAnnotationObject.annotations[z].bounds), pageAnnotationObject.pageIndex));\n var labelFillColorString = pageAnnotationObject.annotations[z].labelFillColor;\n pageAnnotationObject.annotations[z].labelFillColor = JSON.stringify(this.getRgbCode(labelFillColorString));\n var labelBorderColorString = pageAnnotationObject.annotations[z].labelBorderColor;\n pageAnnotationObject.annotations[z].labelBorderColor = JSON.stringify(this.getRgbCode(labelBorderColorString));\n pageAnnotationObject.annotations[z].labelSettings.fillColor = labelFillColorString;\n var fontColorString = pageAnnotationObject.annotations[z].labelSettings.fontColor;\n pageAnnotationObject.annotations[z].fontColor = JSON.stringify(this.getRgbCode(fontColorString));\n }\n }\n newArray = pageAnnotationObject.annotations;\n }\n annotations[pageAnnotationObject.pageIndex] = newArray;\n }\n }\n return JSON.stringify(annotations);\n };\n /**\n * @private\n */\n MeasureAnnotation.prototype.createScaleRatioWindow = function () {\n var _this = this;\n if (!isBlazor()) {\n var elementID = this.pdfViewer.element.id;\n // eslint-disable-next-line max-len\n var dialogDiv = createElement('div', { id: elementID + '_scale_ratio_window', className: 'e-pv-scale-ratio-window' });\n this.pdfViewerBase.pageContainer.appendChild(dialogDiv);\n var contentElement = this.createRatioUI();\n this.scaleRatioDialog = new Dialog({\n showCloseIcon: true, closeOnEscape: false, isModal: true, header: this.pdfViewer.localeObj.getConstant('Scale Ratio'),\n target: this.pdfViewer.element, content: contentElement, close: function () {\n _this.sourceTextBox.destroy();\n _this.convertUnit.destroy();\n _this.destTextBox.destroy();\n _this.dispUnit.destroy();\n _this.scaleRatioDialog.destroy();\n var dialogElement = _this.pdfViewerBase.getElement('_scale_ratio_window');\n dialogElement.parentElement.removeChild(dialogElement);\n }\n });\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.scaleRatioDialog.buttons = [\n // eslint-disable-next-line max-len\n { buttonModel: { content: this.pdfViewer.localeObj.getConstant('OK'), isPrimary: true }, click: this.onOkClicked.bind(this) },\n { buttonModel: { content: this.pdfViewer.localeObj.getConstant('Cancel') }, click: this.onCancelClicked.bind(this) }\n ];\n }\n else {\n this.scaleRatioDialog.buttons = [\n { buttonModel: { content: this.pdfViewer.localeObj.getConstant('Cancel') }, click: this.onCancelClicked.bind(this) },\n // eslint-disable-next-line max-len\n { buttonModel: { content: this.pdfViewer.localeObj.getConstant('OK'), isPrimary: true }, click: this.onOkClicked.bind(this) }\n ];\n }\n if (this.pdfViewer.enableRtl) {\n this.scaleRatioDialog.enableRtl = true;\n }\n this.scaleRatioDialog.appendTo(dialogDiv);\n this.convertUnit.content = this.createContent(this.pdfViewer.localeObj.getConstant(this.unit)).outerHTML;\n this.dispUnit.content = this.createContent(this.pdfViewer.localeObj.getConstant(this.displayUnit)).outerHTML;\n this.depthUnit.content = this.createContent(this.pdfViewer.localeObj.getConstant(this.displayUnit)).outerHTML;\n }\n else {\n this.pdfViewer._dotnetInstance.invokeMethodAsync('OpenScaleRatioDialog');\n }\n };\n MeasureAnnotation.prototype.createRatioUI = function () {\n var element = createElement('div');\n var elementID = this.pdfViewer.element.id;\n // eslint-disable-next-line max-len\n var items = [{ text: this.pdfViewer.localeObj.getConstant('pt'), label: 'pt' }, { text: this.pdfViewer.localeObj.getConstant('in'), label: 'in' }, { text: this.pdfViewer.localeObj.getConstant('mm'), label: 'mm' }, { text: this.pdfViewer.localeObj.getConstant('cm'), label: 'cm' }, { text: this.pdfViewer.localeObj.getConstant('p'), label: 'p' }, { text: this.pdfViewer.localeObj.getConstant('ft'), label: 'ft' }, { text: this.pdfViewer.localeObj.getConstant('ft_in'), label: 'ft_in' }, { text: this.pdfViewer.localeObj.getConstant('m'), label: 'm' }];\n var labelText = createElement('div', { id: elementID + '_scale_ratio_label', className: 'e-pv-scale-ratio-text' });\n labelText.textContent = this.pdfViewer.localeObj.getConstant('Scale Ratio');\n element.appendChild(labelText);\n var sourceContainer = createElement('div', { id: elementID + '_scale_src_container' });\n element.appendChild(sourceContainer);\n // eslint-disable-next-line max-len\n var srcInputElement = this.createInputElement('input', 'e-pv-scale-ratio-src-input', elementID + '_src_input', sourceContainer);\n this.sourceTextBox = new NumericTextBox({ value: 1, format: '##', cssClass: 'e-pv-scale-ratio-src-input', min: 1, max: 100 }, srcInputElement);\n // eslint-disable-next-line max-len\n var srcUnitElement = this.createInputElement('button', 'e-pv-scale-ratio-src-unit', elementID + '_src_unit', sourceContainer);\n this.convertUnit = new DropDownButton({ items: items, cssClass: 'e-pv-scale-ratio-src-unit' }, srcUnitElement);\n this.convertUnit.select = this.convertUnitSelect.bind(this);\n var destinationContainer = createElement('div', { id: elementID + '_scale_dest_container' });\n // eslint-disable-next-line max-len\n var destInputElement = this.createInputElement('input', 'e-pv-scale-ratio-dest-input', elementID + '_dest_input', destinationContainer);\n this.destTextBox = new NumericTextBox({ value: 1, format: '##', cssClass: 'e-pv-scale-ratio-dest-input', min: 1, max: 100 }, destInputElement);\n // eslint-disable-next-line max-len\n var destUnitElement = this.createInputElement('button', 'e-pv-scale-ratio-dest-unit', elementID + '_dest_unit', destinationContainer);\n this.dispUnit = new DropDownButton({ items: items, cssClass: 'e-pv-scale-ratio-dest-unit' }, destUnitElement);\n this.dispUnit.select = this.dispUnitSelect.bind(this);\n element.appendChild(destinationContainer);\n var depthLabelText = createElement('div', { id: elementID + '_depth_label', className: 'e-pv-depth-text' });\n depthLabelText.textContent = this.pdfViewer.localeObj.getConstant('Depth');\n element.appendChild(depthLabelText);\n var depthContainer = createElement('div', { id: elementID + '_depth_container' });\n element.appendChild(depthContainer);\n // eslint-disable-next-line max-len\n var depthInputElement = this.createInputElement('input', 'e-pv-depth-input', elementID + '_depth_input', depthContainer);\n this.depthTextBox = new NumericTextBox({ value: this.volumeDepth, format: '##', cssClass: 'e-pv-depth-input', min: 1 }, depthInputElement);\n // eslint-disable-next-line max-len\n var depthUnitElement = this.createInputElement('button', 'e-pv-depth-unit', elementID + '_depth_unit', depthContainer);\n this.depthUnit = new DropDownButton({ items: items, cssClass: 'e-pv-depth-unit' }, depthUnitElement);\n this.depthUnit.select = this.depthUnitSelect.bind(this);\n return element;\n };\n MeasureAnnotation.prototype.convertUnitSelect = function (args) {\n this.convertUnit.content = this.createContent(args.item.text).outerHTML;\n };\n MeasureAnnotation.prototype.dispUnitSelect = function (args) {\n this.dispUnit.content = this.createContent(args.item.text).outerHTML;\n this.depthUnit.content = this.createContent(args.item.text).outerHTML;\n };\n MeasureAnnotation.prototype.depthUnitSelect = function (args) {\n this.depthUnit.content = this.createContent(args.item.text).outerHTML;\n };\n MeasureAnnotation.prototype.createContent = function (text) {\n var divElement = createElement('div', { className: 'e-pv-scale-unit-content' });\n divElement.textContent = text;\n return divElement;\n };\n MeasureAnnotation.prototype.createInputElement = function (input, className, idString, parentElement) {\n var container = createElement('div', { id: idString + '_container', className: className + '-container' });\n var textBoxInput = createElement(input, { id: idString });\n if (input === 'input') {\n textBoxInput.type = 'text';\n }\n container.appendChild(textBoxInput);\n parentElement.appendChild(container);\n return textBoxInput;\n };\n /**\n * @private\n */\n MeasureAnnotation.prototype.onOkClicked = function () {\n if (isBlazor()) {\n // eslint-disable-next-line\n var unitElement = document.querySelector('#' + this.pdfViewer.element.id + '_src_unit');\n // eslint-disable-next-line\n var displayElement = document.querySelector('#' + this.pdfViewer.element.id + '_dest_unit');\n // eslint-disable-next-line\n var sourceTextBox = document.querySelector('#' + this.pdfViewer.element.id + '_ratio_input');\n // eslint-disable-next-line\n var destTextBox = document.querySelector('#' + this.pdfViewer.element.id + '_dest_input');\n // eslint-disable-next-line\n var depthTextBox = document.querySelector('#' + this.pdfViewer.element.id + '_depth_input');\n if (unitElement && displayElement && sourceTextBox && destTextBox && depthTextBox) {\n this.unit = unitElement.value;\n this.displayUnit = displayElement.value;\n // eslint-disable-next-line\n this.ratio = parseInt(destTextBox.value) / parseInt(sourceTextBox.value);\n // eslint-disable-next-line\n this.volumeDepth = parseInt(depthTextBox.value);\n }\n // eslint-disable-next-line\n this.scaleRatioString = parseInt(sourceTextBox.value) + ' ' + this.unit + ' = ' + parseInt(destTextBox.value) + ' ' + this.displayUnit;\n this.updateMeasureValues(this.scaleRatioString, this.displayUnit, this.unit, this.volumeDepth);\n }\n else {\n this.unit = this.getContent(this.convertUnit.content);\n this.displayUnit = this.getContent(this.dispUnit.content);\n this.ratio = this.destTextBox.value / this.sourceTextBox.value;\n this.volumeDepth = this.depthTextBox.value;\n this.scaleRatioString = this.sourceTextBox.value + ' ' + this.unit + ' = ' + this.destTextBox.value + ' ' + this.displayUnit;\n this.scaleRatioDialog.hide();\n var originalUnit = void 0;\n var originalDisplayUnit = void 0;\n originalUnit = this.restoreUnit(this.convertUnit);\n originalDisplayUnit = this.restoreUnit(this.dispUnit);\n this.updateMeasureValues(this.scaleRatioString, originalDisplayUnit, originalUnit, this.volumeDepth);\n }\n };\n MeasureAnnotation.prototype.restoreUnit = function (dropdownObject) {\n var calibUnit;\n for (var i = 0; i < dropdownObject.items.length; i++) {\n var convertUnitItem = dropdownObject.items[i];\n if (this.unit === convertUnitItem.text) {\n calibUnit = convertUnitItem.label;\n }\n }\n return calibUnit;\n };\n /**\n * @param ratio\n * @param displayUnit\n * @param conversionUnit\n * @param depth\n * @private\n */\n MeasureAnnotation.prototype.updateMeasureValues = function (ratio, displayUnit, conversionUnit, depth) {\n this.scaleRatioString = ratio;\n this.displayUnit = displayUnit;\n this.unit = conversionUnit;\n this.volumeDepth = depth;\n for (var i = 0; i < this.pdfViewerBase.pageCount; i++) {\n var pageAnnotations = this.getAnnotations(i, null);\n if (pageAnnotations) {\n for (var j = 0; j < pageAnnotations.length; j++) {\n pageAnnotations = this.getAnnotations(i, null);\n var measureObject = pageAnnotations[j];\n if (!measureObject.annotationSettings.isLock) {\n measureObject.calibrate.ratio = ratio;\n measureObject.calibrate.x[0].unit = displayUnit;\n measureObject.calibrate.distance[0].unit = displayUnit;\n measureObject.calibrate.area[0].unit = displayUnit;\n measureObject.calibrate.x[0].conversionFactor = this.getFactor(conversionUnit);\n if (measureObject.indent === 'PolygonVolume') {\n measureObject.calibrate.depth = depth;\n }\n pageAnnotations[j] = measureObject;\n this.manageAnnotations(pageAnnotations, i);\n this.pdfViewer.annotation.updateCalibrateValues(this.getAnnotationBaseModel(measureObject.id));\n }\n }\n }\n this.pdfViewer.annotation.renderAnnotations(i, null, null, null, null, false);\n }\n };\n MeasureAnnotation.prototype.getAnnotationBaseModel = function (id) {\n var annotationBase = null;\n for (var i = 0; i < this.pdfViewer.annotations.length; i++) {\n if (id === this.pdfViewer.annotations[i].id) {\n annotationBase = this.pdfViewer.annotations[i];\n break;\n }\n }\n return annotationBase;\n };\n MeasureAnnotation.prototype.getContent = function (unit) {\n return unit.split('')[0].split('\">')[1];\n };\n /**\n * @param value\n * @param currentAnnot\n * @private\n */\n // eslint-disable-next-line\n MeasureAnnotation.prototype.setConversion = function (value, currentAnnot) {\n // eslint-disable-next-line\n var values;\n if (currentAnnot) {\n var pageIndex = currentAnnot.pageIndex;\n if (currentAnnot.id === 'diagram_helper') {\n pageIndex = currentAnnot.pageIndex ? currentAnnot.pageIndex : this.pdfViewerBase.activeElements.activePageID;\n currentAnnot = this.getCurrentObject(pageIndex, null, currentAnnot.annotName);\n }\n if (currentAnnot) {\n values = this.getCurrentValues(currentAnnot.id, pageIndex);\n }\n else {\n values = this.getCurrentValues();\n }\n }\n else {\n values = this.getCurrentValues();\n }\n var scaledValue = value * values.ratio;\n return this.convertPointToUnits(values.factor, scaledValue, values.unit);\n };\n MeasureAnnotation.prototype.onCancelClicked = function () {\n this.scaleRatioDialog.hide();\n };\n /**\n * @param property\n * @param pageNumber\n * @param annotationBase\n * @param isNewlyAdded\n * @param property\n * @param pageNumber\n * @param annotationBase\n * @param isNewlyAdded\n * @param property\n * @param pageNumber\n * @param annotationBase\n * @param isNewlyAdded\n * @param property\n * @param pageNumber\n * @param annotationBase\n * @param isNewlyAdded\n * @private\n */\n // eslint-disable-next-line\n MeasureAnnotation.prototype.modifyInCollection = function (property, pageNumber, annotationBase, isNewlyAdded) {\n if (!isNullOrUndefined(annotationBase.formFieldAnnotationType) && annotationBase.formFieldAnnotationType !== \"\") {\n this.pdfViewer.annotationModule.isFormFieldShape = true;\n }\n else {\n this.pdfViewer.annotationModule.isFormFieldShape = false;\n }\n if (!isNewlyAdded) {\n this.pdfViewerBase.updateDocumentEditedProperty(true);\n }\n var currentAnnotObject = null;\n var pageAnnotations = this.getAnnotations(pageNumber, null);\n if (pageAnnotations != null && annotationBase) {\n for (var i = 0; i < pageAnnotations.length; i++) {\n if (annotationBase.id === pageAnnotations[i].id) {\n if (property === 'bounds') {\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateAnnotationModifiedDate(annotationBase, true);\n if (pageAnnotations[i].shapeAnnotationType === 'Line' || pageAnnotations[i].shapeAnnotationType === 'Polyline') {\n pageAnnotations[i].vertexPoints = annotationBase.vertexPoints;\n // eslint-disable-next-line max-len\n pageAnnotations[i].bounds = { left: annotationBase.bounds.x, top: annotationBase.bounds.y, width: annotationBase.bounds.width, height: annotationBase.bounds.height, right: annotationBase.bounds.right, bottom: annotationBase.bounds.bottom };\n }\n else if (pageAnnotations[i].shapeAnnotationType === 'Polygon') {\n pageAnnotations[i].vertexPoints = annotationBase.vertexPoints;\n // eslint-disable-next-line max-len\n pageAnnotations[i].bounds = { left: annotationBase.bounds.x, top: annotationBase.bounds.y, width: annotationBase.bounds.width, height: annotationBase.bounds.height, right: annotationBase.bounds.right, bottom: annotationBase.bounds.bottom };\n }\n else {\n // eslint-disable-next-line max-len\n pageAnnotations[i].bounds = { left: annotationBase.bounds.x, top: annotationBase.bounds.y, width: annotationBase.bounds.width, height: annotationBase.bounds.height, right: annotationBase.bounds.right, bottom: annotationBase.bounds.bottom };\n }\n if (pageAnnotations[i].enableShapeLabel === true && annotationBase.wrapper) {\n // eslint-disable-next-line max-len\n pageAnnotations[i].labelBounds = this.pdfViewer.annotationModule.inputElementModule.calculateLabelBounds(annotationBase.wrapper.bounds);\n }\n }\n else if (property === 'fill') {\n pageAnnotations[i].fillColor = annotationBase.wrapper.children[0].style.fill;\n if (this.pdfViewer.enableShapeLabel) {\n pageAnnotations[i].labelFillColor = annotationBase.wrapper.children[0].style.fill;\n }\n }\n else if (property === 'stroke') {\n pageAnnotations[i].strokeColor = annotationBase.wrapper.children[0].style.strokeColor;\n }\n else if (property === 'opacity') {\n pageAnnotations[i].opacity = annotationBase.wrapper.children[0].style.opacity;\n }\n else if (property === 'thickness') {\n pageAnnotations[i].thickness = annotationBase.wrapper.children[0].style.strokeWidth;\n }\n else if (property === 'dashArray') {\n pageAnnotations[i].borderDashArray = annotationBase.wrapper.children[0].style.strokeDashArray;\n pageAnnotations[i].borderStyle = annotationBase.borderStyle;\n }\n else if (property === 'startArrow') {\n // eslint-disable-next-line max-len\n pageAnnotations[i].lineHeadStart = this.pdfViewer.annotation.getArrowTypeForCollection(annotationBase.sourceDecoraterShapes);\n }\n else if (property === 'endArrow') {\n // eslint-disable-next-line max-len\n pageAnnotations[i].lineHeadEnd = this.pdfViewer.annotation.getArrowTypeForCollection(annotationBase.taregetDecoraterShapes);\n }\n else if (property === 'leaderLength') {\n pageAnnotations[i].leaderLength = annotationBase.leaderHeight;\n }\n else if (property === 'notes') {\n pageAnnotations[i].note = annotationBase.notes;\n if (pageAnnotations[i].enableShapeLabel === true) {\n pageAnnotations[i].labelContent = annotationBase.notes;\n }\n }\n else if (property === 'delete') {\n currentAnnotObject = pageAnnotations.splice(i, 1)[0];\n break;\n }\n else if (property === 'labelContent') {\n pageAnnotations[i].note = annotationBase.labelContent;\n pageAnnotations[i].labelContent = annotationBase.labelContent;\n break;\n }\n else if (property === 'fontColor') {\n pageAnnotations[i].fontColor = annotationBase.fontColor;\n }\n else if (property === 'fontSize') {\n pageAnnotations[i].fontSize = annotationBase.fontSize;\n }\n // eslint-disable-next-line max-len\n pageAnnotations[i].modifiedDate = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n this.pdfViewer.annotationModule.storeAnnotationCollections(pageAnnotations[i], pageNumber);\n }\n }\n this.manageAnnotations(pageAnnotations, pageNumber);\n }\n return currentAnnotObject;\n };\n /**\n * @param pageNumber\n * @param annotationBase\n * @param pageNumber\n * @param annotationBase\n * @private\n */\n MeasureAnnotation.prototype.addInCollection = function (pageNumber, annotationBase) {\n var pageAnnotations = this.getAnnotations(pageNumber, null);\n if (pageAnnotations) {\n pageAnnotations.push(annotationBase);\n }\n this.manageAnnotations(pageAnnotations, pageNumber);\n };\n MeasureAnnotation.prototype.manageAnnotations = function (pageAnnotations, pageNumber) {\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_shape_measure');\n if (this.pdfViewerBase.isStorageExceed) {\n storeObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_shape_measure'];\n }\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n if (!this.pdfViewerBase.isStorageExceed) {\n window.sessionStorage.removeItem(this.pdfViewerBase.documentId + '_annotations_shape_measure');\n }\n var index = this.pdfViewer.annotationModule.getPageCollection(annotObject, pageNumber);\n if (annotObject[index]) {\n annotObject[index].annotations = pageAnnotations;\n }\n var annotationStringified = JSON.stringify(annotObject);\n if (this.pdfViewerBase.isStorageExceed) {\n this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_shape_measure'] = annotationStringified;\n }\n else {\n window.sessionStorage.setItem(this.pdfViewerBase.documentId + '_annotations_shape_measure', annotationStringified);\n }\n }\n };\n // eslint-disable-next-line\n MeasureAnnotation.prototype.getAnnotations = function (pageIndex, shapeAnnotations) {\n // eslint-disable-next-line\n var annotationCollection;\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_shape_measure');\n if (this.pdfViewerBase.isStorageExceed) {\n storeObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_shape_measure'];\n }\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n var index = this.pdfViewer.annotationModule.getPageCollection(annotObject, pageIndex);\n if (annotObject[index]) {\n annotationCollection = annotObject[index].annotations;\n }\n else {\n annotationCollection = shapeAnnotations;\n }\n }\n else {\n annotationCollection = shapeAnnotations;\n }\n return annotationCollection;\n };\n MeasureAnnotation.prototype.getCurrentObject = function (pageNumber, id, annotName) {\n var currentAnnotObject = null;\n var pageAnnotations = this.getAnnotations(pageNumber, null);\n if (pageAnnotations != null) {\n for (var i = 0; i < pageAnnotations.length; i++) {\n if (id) {\n if (id === pageAnnotations[i].id) {\n currentAnnotObject = pageAnnotations[i];\n break;\n }\n }\n else if (annotName) {\n if (annotName === pageAnnotations[i].annotName) {\n currentAnnotObject = pageAnnotations[i];\n break;\n }\n }\n }\n }\n return currentAnnotObject;\n };\n // eslint-disable-next-line\n MeasureAnnotation.prototype.getCurrentValues = function (id, pageNumber) {\n var ratio;\n var unit;\n var factor;\n var depth;\n if (id && !isNaN(pageNumber)) {\n var currentAnnotObject = this.getCurrentObject(pageNumber, id);\n if (currentAnnotObject) {\n ratio = this.getCurrentRatio(currentAnnotObject.calibrate.ratio);\n unit = currentAnnotObject.calibrate.x[0].unit;\n factor = currentAnnotObject.calibrate.x[0].conversionFactor;\n depth = currentAnnotObject.calibrate.depth;\n }\n else {\n ratio = this.ratio;\n unit = this.displayUnit;\n factor = this.getFactor(this.unit);\n depth = this.volumeDepth;\n }\n }\n else {\n ratio = this.ratio;\n unit = this.displayUnit;\n factor = this.getFactor(this.unit);\n depth = this.volumeDepth;\n }\n return { ratio: ratio, unit: unit, factor: factor, depth: depth };\n };\n MeasureAnnotation.prototype.getCurrentRatio = function (ratioString) {\n var stringArray = ratioString.split(' ');\n if (stringArray[3] === '=') {\n return parseFloat(stringArray[4]) / parseFloat(stringArray[0]);\n }\n else {\n return parseFloat(stringArray[3]) / parseFloat(stringArray[0]);\n }\n };\n /**\n * @param points\n * @param id\n * @param pageNumber\n * @param points\n * @param id\n * @param pageNumber\n * @param points\n * @param id\n * @param pageNumber\n * @private\n */\n MeasureAnnotation.prototype.calculateArea = function (points, id, pageNumber) {\n // eslint-disable-next-line\n var values = this.getCurrentValues(id, pageNumber);\n var area = this.getArea(points, values.factor, values.unit) * values.ratio;\n if (values.unit === 'ft_in') {\n // eslint-disable-next-line\n var calculateValue = Math.round(area * 100) / 100;\n if (calculateValue >= 12) {\n calculateValue = (Math.round(calculateValue / 12 * 100) / 100).toString();\n calculateValue = calculateValue.split('.');\n if (calculateValue[1]) {\n // eslint-disable-next-line\n var inchValue = 0;\n if (calculateValue[1].charAt(1)) {\n // eslint-disable-next-line\n inchValue = parseInt(calculateValue[1].charAt(0)) + '.' + parseInt(calculateValue[1].charAt(1));\n inchValue = Math.round(inchValue);\n }\n else {\n inchValue = calculateValue[1];\n }\n if (!inchValue) {\n return (calculateValue[0] + ' ' + this.pdfViewer.localeObj.getConstant('sq') + ' ' + this.pdfViewer.localeObj.getConstant('ft'));\n }\n else {\n return (calculateValue[0] + ' ' + this.pdfViewer.localeObj.getConstant('sq') + ' ' + this.pdfViewer.localeObj.getConstant('ft') + ' ' + inchValue + ' ' + this.pdfViewer.localeObj.getConstant('in'));\n }\n }\n else {\n return (calculateValue[0] + ' ' + this.pdfViewer.localeObj.getConstant('sq') + ' ' + this.pdfViewer.localeObj.getConstant('ft'));\n }\n }\n else {\n return (Math.round(area * 100) / 100) + ' ' + this.pdfViewer.localeObj.getConstant('sq') + ' ' + this.pdfViewer.localeObj.getConstant('in');\n }\n }\n if (values.unit === 'm') {\n return ((area * 100) / 100) + ' ' + this.pdfViewer.localeObj.getConstant('sq') + ' ' + this.pdfViewer.localeObj.getConstant(values.unit);\n }\n return (Math.round(area * 100) / 100) + ' ' + this.pdfViewer.localeObj.getConstant('sq') + ' ' + this.pdfViewer.localeObj.getConstant(values.unit);\n };\n MeasureAnnotation.prototype.getArea = function (points, factor, unit) {\n var area = 0;\n var j = points.length - 1;\n for (var i = 0; i < points.length; i++) {\n // eslint-disable-next-line max-len\n area += (points[j].x * this.pixelToPointFactor * factor + points[i].x * this.pixelToPointFactor * factor) * (points[j].y * this.pixelToPointFactor * factor - points[i].y * this.pixelToPointFactor * factor);\n j = i;\n }\n if (unit === 'ft_in') {\n return (Math.abs((area) * 2.0));\n }\n else {\n return (Math.abs((area) / 2.0));\n }\n };\n /**\n * @param points\n * @param id\n * @param pageNumber\n * @param points\n * @param id\n * @param pageNumber\n * @param points\n * @param id\n * @param pageNumber\n * @private\n */\n MeasureAnnotation.prototype.calculateVolume = function (points, id, pageNumber) {\n // eslint-disable-next-line\n var values = this.getCurrentValues(id, pageNumber);\n var depth = values.depth ? values.depth : this.volumeDepth;\n var area = this.getArea(points, values.factor, values.unit);\n var volume = area * ((depth * this.convertUnitToPoint(values.unit)) * values.factor) * values.ratio;\n if (values.unit === 'ft_in') {\n // eslint-disable-next-line\n var calculateValue = Math.round(volume * 100) / 100;\n if (calculateValue >= 12) {\n calculateValue = (Math.round(calculateValue / 12 * 100) / 100).toString();\n calculateValue = calculateValue.split('.');\n if (calculateValue[1]) {\n // eslint-disable-next-line\n var inchValue = 0;\n if (calculateValue[1].charAt(1)) {\n // eslint-disable-next-line\n inchValue = parseInt(calculateValue[1].charAt(0)) + '.' + parseInt(calculateValue[1].charAt(1));\n inchValue = Math.round(inchValue);\n }\n else {\n inchValue = calculateValue[1];\n }\n if (!inchValue) {\n return (calculateValue[0] + ' ' + this.pdfViewer.localeObj.getConstant('cu') + ' ' + this.pdfViewer.localeObj.getConstant('ft'));\n }\n else {\n return (calculateValue[0] + ' ' + this.pdfViewer.localeObj.getConstant('cu') + ' ' + this.pdfViewer.localeObj.getConstant('ft') + ' ' + inchValue + ' ' + this.pdfViewer.localeObj.getConstant('in'));\n }\n }\n else {\n return (calculateValue[0] + ' ' + this.pdfViewer.localeObj.getConstant('cu') + ' ' + this.pdfViewer.localeObj.getConstant('ft'));\n }\n }\n else {\n return (Math.round(volume * 100) / 100) + ' ' + this.pdfViewer.localeObj.getConstant('cu') + ' ' + this.pdfViewer.localeObj.getConstant('in');\n }\n }\n return (Math.round(volume * 100) / 100) + ' ' + this.pdfViewer.localeObj.getConstant('cu') + ' ' + this.pdfViewer.localeObj.getConstant(values.unit);\n };\n /**\n * @param pdfAnnotationBase\n * @private\n */\n MeasureAnnotation.prototype.calculatePerimeter = function (pdfAnnotationBase) {\n var perimeter = Point.getLengthFromListOfPoints(pdfAnnotationBase.vertexPoints);\n return this.setConversion(perimeter * this.pixelToPointFactor, pdfAnnotationBase);\n };\n MeasureAnnotation.prototype.getFactor = function (unit) {\n var factor;\n switch (unit) {\n case 'in':\n factor = (1 / 72);\n break;\n case 'cm':\n factor = (1 / 28.346);\n break;\n case 'mm':\n factor = (1 / 2.835);\n break;\n case 'pt':\n factor = 1;\n break;\n case 'p':\n factor = 1 / 12;\n break;\n case 'ft':\n factor = 1 / 864;\n break;\n case 'ft_in':\n factor = 1 / 72;\n break;\n case 'm':\n factor = (1 / 2834.64567);\n break;\n }\n return factor;\n };\n MeasureAnnotation.prototype.convertPointToUnits = function (factor, value, unit) {\n var convertedValue;\n if (unit === 'ft_in') {\n // eslint-disable-next-line\n var calculateValue = Math.round((value * factor) * 100) / 100;\n if (calculateValue >= 12) {\n calculateValue = (Math.round(calculateValue / 12 * 100) / 100).toString();\n calculateValue = calculateValue.split('.');\n if (calculateValue[1]) {\n // eslint-disable-next-line\n var inchValue = 0;\n if (calculateValue[1].charAt(1)) {\n // eslint-disable-next-line\n inchValue = parseInt(calculateValue[1].charAt(0)) + '.' + parseInt(calculateValue[1].charAt(1));\n inchValue = Math.round(inchValue);\n }\n else {\n inchValue = calculateValue[1];\n }\n if (!inchValue) {\n convertedValue = calculateValue[0] + ' ' + this.pdfViewer.localeObj.getConstant('ft');\n }\n else {\n convertedValue = calculateValue[0] + ' ' + this.pdfViewer.localeObj.getConstant('ft') + ' ' + inchValue + ' ' + this.pdfViewer.localeObj.getConstant('in');\n }\n }\n else {\n convertedValue = calculateValue[0] + ' ' + this.pdfViewer.localeObj.getConstant('ft');\n }\n }\n else {\n convertedValue = Math.round((value * factor) * 100) / 100 + ' ' + this.pdfViewer.localeObj.getConstant('in');\n }\n }\n else {\n convertedValue = Math.round((value * factor) * 100) / 100 + ' ' + this.pdfViewer.localeObj.getConstant(unit);\n }\n return convertedValue;\n };\n MeasureAnnotation.prototype.convertUnitToPoint = function (unit) {\n var factor;\n switch (unit) {\n case 'in':\n factor = 72;\n break;\n case 'cm':\n factor = 28.346;\n break;\n case 'mm':\n factor = 2.835;\n break;\n case 'pt':\n factor = 1;\n break;\n case 'p':\n factor = 12;\n break;\n case 'ft':\n factor = 864;\n break;\n case 'ft_in':\n factor = 72;\n break;\n case 'm':\n factor = 2834.64567;\n break;\n }\n return factor;\n };\n // eslint-disable-next-line\n MeasureAnnotation.prototype.getStringifiedMeasure = function (measure) {\n if (!isNullOrUndefined(measure)) {\n measure.angle = JSON.stringify(measure.angle);\n measure.area = JSON.stringify(measure.area);\n measure.distance = JSON.stringify(measure.distance);\n measure.volume = JSON.stringify(measure.volume);\n }\n return JSON.stringify(measure);\n };\n // eslint-disable-next-line\n MeasureAnnotation.prototype.getRgbCode = function (colorString) {\n if (!colorString.match(/#([a-z0-9]+)/gi) && !colorString.match(/^rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+)(?:,\\s*(\\d+(?:\\.\\d+)?))?\\)$/)) {\n colorString = this.pdfViewer.annotationModule.nameToHash(colorString);\n }\n var stringArray = colorString.split(',');\n if (isNullOrUndefined(stringArray[1])) {\n colorString = this.pdfViewer.annotationModule.getValue(colorString, 'rgba');\n stringArray = colorString.split(',');\n }\n // eslint-disable-next-line radix\n var r = parseInt(stringArray[0].split('(')[1]);\n // eslint-disable-next-line radix\n var g = parseInt(stringArray[1]);\n // eslint-disable-next-line radix\n var b = parseInt(stringArray[2]);\n // eslint-disable-next-line radix\n var a = parseInt(stringArray[3]);\n return { r: r, g: g, b: b, a: a };\n };\n /**\n * @param annotation\n * @param pageNumber\n * @param annotation\n * @param pageNumber\n * @private\n */\n // eslint-disable-next-line\n MeasureAnnotation.prototype.saveImportedMeasureAnnotations = function (annotation, pageNumber) {\n var annotationObject = null;\n var vertexPoints = null;\n if (annotation.VertexPoints) {\n vertexPoints = [];\n for (var j = 0; j < annotation.VertexPoints.length; j++) {\n var point = { x: annotation.VertexPoints[j].X, y: annotation.VertexPoints[j].Y };\n vertexPoints.push(point);\n }\n }\n var measureObject = {\n // eslint-disable-next-line max-len\n ratio: annotation.Calibrate.Ratio, x: this.getNumberFormatArray(annotation.Calibrate.X), distance: this.getNumberFormatArray(annotation.Calibrate.Distance), area: this.getNumberFormatArray(annotation.Calibrate.Area), angle: this.getNumberFormatArray(annotation.Calibrate.Angle), volume: this.getNumberFormatArray(annotation.Calibrate.Volume),\n targetUnitConversion: annotation.Calibrate.TargetUnitConversion\n };\n if (annotation.Calibrate.Depth) {\n measureObject.depth = annotation.Calibrate.Depth;\n }\n if (annotation.Bounds && annotation.EnableShapeLabel === true) {\n // eslint-disable-next-line max-len\n annotation.LabelBounds = this.pdfViewer.annotationModule.inputElementModule.calculateLabelBoundsFromLoadedDocument(annotation.Bounds);\n annotation.LabelBorderColor = annotation.LabelBorderColor ? annotation.LabelBorderColor : annotation.StrokeColor;\n annotation.FontColor = annotation.FontColor ? annotation.FontColor : annotation.StrokeColor;\n annotation.LabelFillColor = annotation.LabelFillColor ? annotation.LabelFillColor : annotation.FillColor;\n annotation.FontSize = annotation.FontSize ? annotation.FontSize : 16;\n annotation.LabelSettings = annotation.LabelSettings ? annotation.LabelSettings : this.pdfViewer.shapeLabelSettings;\n }\n // eslint-disable-next-line max-len\n annotation.AnnotationSettings = annotation.AnnotationSettings ? annotation.AnnotationSettings : this.pdfViewer.annotationModule.updateAnnotationSettings(annotation);\n annotation.Author = this.pdfViewer.annotationModule.updateAnnotationAuthor('measure', annotation.Subject);\n annotationObject = {\n // eslint-disable-next-line max-len\n id: 'measure', shapeAnnotationType: annotation.ShapeAnnotationType, author: annotation.Author, modifiedDate: annotation.ModifiedDate, subject: annotation.Subject,\n note: annotation.Note, strokeColor: annotation.StrokeColor, fillColor: annotation.FillColor, opacity: annotation.Opacity, thickness: annotation.Thickness, rectangleDifference: annotation.RectangleDifference,\n // eslint-disable-next-line max-len\n borderStyle: annotation.BorderStyle, borderDashArray: annotation.BorderDashArray, rotateAngle: annotation.RotateAngle, isCloudShape: annotation.IsCloudShape,\n cloudIntensity: annotation.CloudIntensity, vertexPoints: vertexPoints, lineHeadStart: annotation.LineHeadStart, lineHeadEnd: annotation.LineHeadEnd, isLocked: annotation.IsLocked,\n // eslint-disable-next-line max-len\n bounds: { left: annotation.Bounds.X, top: annotation.Bounds.Y, width: annotation.Bounds.Width, height: annotation.Bounds.Height, right: annotation.Bounds.Right, bottom: annotation.Bounds.Bottom },\n caption: annotation.Caption, captionPosition: annotation.CaptionPosition, calibrate: measureObject, leaderLength: annotation.LeaderLength, leaderLineExtension: annotation.LeaderLineExtension,\n // eslint-disable-next-line max-len\n leaderLineOffset: annotation.LeaderLineOffset, indent: annotation.Indent, annotName: annotation.AnnotName, comments: this.pdfViewer.annotationModule.getAnnotationComments(annotation.Comments, annotation, annotation.Author),\n review: { state: annotation.State, stateModel: annotation.StateModel, modifiedDate: annotation.ModifiedDate, author: annotation.Author },\n labelContent: annotation.LabelContent, enableShapeLabel: annotation.EnableShapeLabel, labelFillColor: annotation.LabelFillColor,\n labelBorderColor: annotation.LabelBorderColor, fontColor: annotation.FontColor, fontSize: annotation.FontSize,\n // eslint-disable-next-line max-len\n labelBounds: annotation.LabelBounds, annotationSelectorSettings: this.getSettings(annotation), labelSettings: annotation.LabelSettings, annotationSettings: annotation.AnnotationSettings,\n customData: this.pdfViewer.annotation.getCustomData(annotation), isPrint: annotation.IsPrint, isCommentLock: annotation.IsCommentLock, isAnnotationRotated: false\n };\n this.pdfViewer.annotationModule.storeAnnotations(pageNumber, annotationObject, '_annotations_shape_measure');\n };\n /**\n * @param annotation\n * @param pageNumber\n * @private\n */\n // eslint-disable-next-line\n MeasureAnnotation.prototype.updateMeasureAnnotationCollections = function (annotation, pageNumber) {\n // eslint-disable-next-line\n var annotationObject = null;\n var vertexPoints = null;\n if (annotation.VertexPoints) {\n vertexPoints = [];\n for (var j = 0; j < annotation.VertexPoints.length; j++) {\n var point = { x: annotation.VertexPoints[j].X, y: annotation.VertexPoints[j].Y };\n vertexPoints.push(point);\n }\n }\n var measureObject = {\n // eslint-disable-next-line max-len\n ratio: annotation.Calibrate.Ratio, x: this.getNumberFormatArray(annotation.Calibrate.X), distance: this.getNumberFormatArray(annotation.Calibrate.Distance), area: this.getNumberFormatArray(annotation.Calibrate.Area), angle: this.getNumberFormatArray(annotation.Calibrate.Angle), volume: this.getNumberFormatArray(annotation.Calibrate.Volume),\n targetUnitConversion: annotation.Calibrate.TargetUnitConversion\n };\n if (annotation.Calibrate.Depth) {\n measureObject.depth = annotation.Calibrate.Depth;\n }\n if (annotation.Bounds && annotation.EnableShapeLabel === true) {\n // eslint-disable-next-line max-len\n annotation.LabelBounds = this.pdfViewer.annotationModule.inputElementModule.calculateLabelBoundsFromLoadedDocument(annotation.Bounds);\n annotation.LabelBorderColor = annotation.LabelBorderColor ? annotation.LabelBorderColor : annotation.StrokeColor;\n annotation.FontColor = annotation.FontColor ? annotation.FontColor : annotation.StrokeColor;\n annotation.LabelFillColor = annotation.LabelFillColor ? annotation.LabelFillColor : annotation.FillColor;\n annotation.FontSize = annotation.FontSize ? annotation.FontSize : 16;\n var settings = this.pdfViewer.shapeLabelSettings;\n var labelSettings = { borderColor: annotation.StrokeColor, fillColor: annotation.FillColor, fontColor: annotation.FontColor,\n fontSize: annotation.FontSize, labelContent: annotation.LabelContent, labelHeight: settings.labelHeight, labelWidth: settings.labelWidth, opacity: annotation.Opacity\n };\n annotation.LabelSettings = annotation.LabelSettings ? annotation.LabelSettings : labelSettings;\n }\n // eslint-disable-next-line max-len\n annotation.AnnotationSelectorSettings = annotation.AnnotationSelectorSettings ? annotation.AnnotationSelectorSettings : this.pdfViewer.annotationSelectorSettings;\n // eslint-disable-next-line max-len\n annotation.AnnotationSettings = annotation.AnnotationSettings ? annotation.AnnotationSettings : this.pdfViewer.annotationModule.updateAnnotationSettings(annotation);\n if (annotation.IsLocked) {\n annotation.AnnotationSettings.isLock = annotation.IsLocked;\n }\n annotationObject = {\n // eslint-disable-next-line max-len\n id: 'measure', shapeAnnotationType: annotation.ShapeAnnotationType, author: annotation.Author, modifiedDate: annotation.ModifiedDate, subject: annotation.Subject,\n note: annotation.Note, strokeColor: annotation.StrokeColor, fillColor: annotation.FillColor, opacity: annotation.Opacity, thickness: annotation.Thickness, rectangleDifference: annotation.RectangleDifference,\n // eslint-disable-next-line max-len\n borderStyle: annotation.BorderStyle, borderDashArray: annotation.BorderDashArray, rotateAngle: annotation.RotateAngle, isCloudShape: annotation.IsCloudShape,\n cloudIntensity: annotation.CloudIntensity, vertexPoints: vertexPoints, lineHeadStart: annotation.LineHeadStart, lineHeadEnd: annotation.LineHeadEnd, isLocked: annotation.IsLocked,\n // eslint-disable-next-line max-len\n bounds: { left: annotation.Bounds.X, top: annotation.Bounds.Y, width: annotation.Bounds.Width, height: annotation.Bounds.Height, right: annotation.Bounds.Right, bottom: annotation.Bounds.Bottom },\n caption: annotation.Caption, captionPosition: annotation.CaptionPosition, calibrate: measureObject, leaderLength: annotation.LeaderLength, leaderLineExtension: annotation.LeaderLineExtension,\n // eslint-disable-next-line max-len\n leaderLineOffset: annotation.LeaderLineOffset, indent: annotation.Indent, annotationId: annotation.AnnotName, comments: this.pdfViewer.annotationModule.getAnnotationComments(annotation.Comments, annotation, annotation.Author),\n review: { state: annotation.State, stateModel: annotation.StateModel, modifiedDate: annotation.ModifiedDate, author: annotation.Author },\n labelContent: annotation.LabelContent, enableShapeLabel: annotation.EnableShapeLabel, labelFillColor: annotation.LabelFillColor,\n labelBorderColor: annotation.LabelBorderColor, fontColor: annotation.FontColor, fontSize: annotation.FontSize,\n // eslint-disable-next-line max-len\n labelBounds: annotation.LabelBounds, pageNumber: pageNumber, annotationSelectorSettings: annotation.AnnotationSelectorSettings, labelSettings: annotation.labelSettings, annotationSettings: annotation.AnnotationSettings,\n customData: this.pdfViewer.annotation.getCustomData(annotation), isPrint: annotation.IsPrint\n };\n return annotationObject;\n };\n /**\n * This method used to add annotations with using program.\n *\n * @param annotationType - It describes the annotation type\n * @param annotationObject - It describes type of annotation object\n * @param offset - It describes about the annotation bounds or location\n * @returns Object\n * @private\n */\n MeasureAnnotation.prototype.updateAddAnnotationDetails = function (annotationType, annotationObject, offset) {\n //Creating new object if annotationObject is null\n if (!annotationObject) {\n annotationObject = { offset: { x: 10, y: 10 }, pageNumber: 0, width: undefined, height: undefined };\n offset = annotationObject.offset;\n }\n else if (!annotationObject.offset)\n offset = { x: 10, y: 10 };\n else\n offset = annotationObject.offset;\n //Initialize the annotation settings\n var annotationSelectorSettings = null;\n var allowedInteractions = null;\n var annotationSettings = null;\n var measureAnnotationType = '';\n var shapeAnnotationType = '';\n var subject = '';\n var isArrow = false;\n var vertexPoints = [];\n //Creating the CurrentDate and Annotation name\n var currentDateString = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n var annotationName = this.pdfViewer.annotation.createGUID();\n if (annotationType == 'Distance') {\n //Creating annotation settings\n annotationSelectorSettings = this.pdfViewer.lineSettings.annotationSelectorSettings ? this.pdfViewer.lineSettings.annotationSelectorSettings : this.pdfViewer.annotationSelectorSettings;\n annotationSettings = this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.lineSettings);\n allowedInteractions = this.pdfViewer.lineSettings.allowedInteractions ? this.pdfViewer.lineSettings.allowedInteractions : this.pdfViewer.annotationSettings.allowedInteractions;\n measureAnnotationType = 'LineDimension';\n shapeAnnotationType = 'Line';\n subject = 'Distance calculation';\n isArrow = true;\n if (annotationObject.vertexPoints)\n vertexPoints = annotationObject.vertexPoints;\n else\n vertexPoints = [{ x: offset.x, y: offset.y }, { x: offset.x + 100, y: offset.y }];\n annotationObject.width = annotationObject.width ? annotationObject.width : 1;\n annotationObject.height = annotationObject.height ? annotationObject.height : 1;\n }\n else if (annotationType == 'Perimeter') {\n //Creating annotation settings\n annotationSelectorSettings = this.pdfViewer.arrowSettings.annotationSelectorSettings ? this.pdfViewer.arrowSettings.annotationSelectorSettings : this.pdfViewer.annotationSelectorSettings;\n annotationSettings = this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.arrowSettings);\n allowedInteractions = this.pdfViewer.arrowSettings.allowedInteractions ? this.pdfViewer.arrowSettings.allowedInteractions : this.pdfViewer.annotationSettings.allowedInteractions;\n measureAnnotationType = 'PolyLineDimension';\n shapeAnnotationType = 'Polyline';\n subject = 'Perimeter calculation';\n isArrow = true;\n if (annotationObject.vertexPoints)\n vertexPoints = annotationObject.vertexPoints;\n else\n vertexPoints = [{ x: offset.x, y: offset.y },\n { x: offset.x + 85, y: offset.y },\n { x: offset.x + 86, y: offset.y + 62 }];\n annotationObject.width = annotationObject.width ? annotationObject.width : 1;\n annotationObject.height = annotationObject.height ? annotationObject.height : 1;\n }\n else if (annotationType == 'Area') {\n //Creating annotation settings\n annotationSelectorSettings = this.pdfViewer.rectangleSettings.annotationSelectorSettings ? this.pdfViewer.rectangleSettings.annotationSelectorSettings : this.pdfViewer.annotationSelectorSettings;\n annotationSettings = this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.rectangleSettings);\n allowedInteractions = this.pdfViewer.rectangleSettings.allowedInteractions ? this.pdfViewer.rectangleSettings.allowedInteractions : this.pdfViewer.annotationSettings.allowedInteractions;\n measureAnnotationType = 'PolygonDimension';\n shapeAnnotationType = 'Polygon';\n subject = 'Area calculation';\n if (annotationObject.vertexPoints)\n vertexPoints = annotationObject.vertexPoints;\n else\n vertexPoints = [{ x: offset.x, y: offset.y },\n { x: offset.x + 88, y: offset.y - 1 },\n { x: offset.x + 89, y: offset.y + 53 },\n { x: offset.x, y: offset.y }];\n annotationObject.width = annotationObject.width ? annotationObject.width : 1;\n annotationObject.height = annotationObject.height ? annotationObject.height : 1;\n }\n else if (annotationType == 'Radius') {\n //Creating annotation settings\n annotationSelectorSettings = this.pdfViewer.circleSettings.annotationSelectorSettings ? this.pdfViewer.circleSettings.annotationSelectorSettings : this.pdfViewer.annotationSelectorSettings;\n annotationSettings = this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.circleSettings);\n allowedInteractions = this.pdfViewer.circleSettings.allowedInteractions ? this.pdfViewer.circleSettings.allowedInteractions : this.pdfViewer.annotationSettings.allowedInteractions;\n measureAnnotationType = 'PolygonRadius';\n shapeAnnotationType = 'Circle';\n subject = 'Radius calculation';\n annotationObject.width = annotationObject.width ? annotationObject.width : 100;\n annotationObject.height = annotationObject.height ? annotationObject.height : 100;\n vertexPoints = null;\n }\n else if (annotationType == 'Volume') {\n //Creating annotation settings\n annotationSelectorSettings = this.pdfViewer.polygonSettings.annotationSelectorSettings ? this.pdfViewer.polygonSettings.annotationSelectorSettings : this.pdfViewer.annotationSelectorSettings;\n annotationSettings = this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.polygonSettings);\n allowedInteractions = this.pdfViewer.polygonSettings.allowedInteractions ? this.pdfViewer.polygonSettings.allowedInteractions : this.pdfViewer.annotationSettings.allowedInteractions;\n measureAnnotationType = 'PolygonVolume';\n shapeAnnotationType = 'Polygon';\n subject = 'Volume calculation';\n if (annotationObject.vertexPoints)\n vertexPoints = annotationObject.vertexPoints;\n else\n vertexPoints = [\n { x: offset.x, y: offset.y },\n { x: offset.x, y: offset.y + 109 },\n { x: offset.x + 120, y: offset.y + 109 },\n { x: offset.x + 120, y: offset.y - 1 },\n { x: offset.x, y: offset.y }\n ];\n annotationObject.width = annotationObject.width ? annotationObject.width : 1;\n annotationObject.height = annotationObject.height ? annotationObject.height : 1;\n }\n annotationSettings.isLock = annotationObject.isLock ? annotationObject.isLock : false;\n annotationSettings.minHeight = annotationObject.minHeight ? annotationObject.minHeight : 0;\n annotationSettings.minWidth = annotationObject.minWidth ? annotationObject.minWidth : 0;\n annotationSettings.maxWidth = annotationObject.maxWidth ? annotationObject.maxWidth : 0;\n annotationSettings.maxHeight = annotationObject.maxHeight ? annotationObject.maxHeight : 0;\n //Calculating area for all the measurements\n var values = { depth: 96,\n factor: 0.013888888888888888,\n ratio: 1,\n unit: 'in' };\n var notes = '';\n if (vertexPoints || annotationType == 'Radius' || annotationType == 'Volume') {\n if (annotationType == 'Distance' || annotationType == 'Perimeter' || annotationType == 'Radius') {\n var length_1 = 0;\n if (annotationType == 'Radius') {\n length_1 = (annotationObject.width / 2) * this.pixelToPointFactor;\n }\n else {\n for (var i_1 = 0; i_1 < vertexPoints.length - 1; i_1++) {\n length_1 += Math.sqrt(Math.pow((vertexPoints[i_1].x - vertexPoints[i_1 + 1].x), 2) + Math.pow((vertexPoints[i_1].y - vertexPoints[i_1 + 1].y), 2));\n }\n length_1 = length_1 * this.pixelToPointFactor;\n }\n var scaledValue = length_1 * values.ratio;\n notes = this.convertPointToUnits(values.factor, scaledValue, values.unit);\n }\n else if (annotationType == 'Area' || annotationType == 'Volume') {\n var area = 0;\n var j = vertexPoints.length - 1;\n for (var i = 0; i < vertexPoints.length; i++) {\n area += (vertexPoints[j].x * this.pixelToPointFactor * values.factor + vertexPoints[i].x * this.pixelToPointFactor * values.factor) * (vertexPoints[j].y * this.pixelToPointFactor * values.factor - vertexPoints[i].y * this.pixelToPointFactor * values.factor);\n j = i;\n }\n area = (Math.abs((area) / 2.0));\n if (annotationType == 'Volume') {\n area = area * ((values.depth * this.convertUnitToPoint(values.unit)) * values.factor) * values.ratio;\n notes = Math.round(area * 100) / 100 + this.pdfViewer.localeObj.getConstant('cu') + ' ' + this.pdfViewer.localeObj.getConstant(values.unit);\n }\n else\n notes = Math.round(area * 100) / 100 + this.pdfViewer.localeObj.getConstant('sq') + ' ' + this.pdfViewer.localeObj.getConstant(values.unit);\n }\n }\n //Converting points model into vertex property\n if (vertexPoints)\n vertexPoints = this.pdfViewer.annotation.getVertexPointsXY(vertexPoints);\n //Creating Annotation objects with it's proper properties\n var measureShapeAnnotation = [];\n var shape = {\n AllowedInteractions: annotationObject.allowedInteractions ? annotationObject.allowedInteractions : allowedInteractions,\n AnnotName: annotationName,\n AnnotType: 'shape_measure',\n AnnotationSelectorSettings: annotationObject.annotationSelectorSettings ? annotationObject.annotationSelectorSettings : annotationSelectorSettings,\n AnnotationSettings: annotationSettings,\n Author: annotationObject.author ? annotationObject.author : 'Guest',\n BorderDashArray: annotationObject.borderDashArray ? annotationObject.borderDashArray : 0,\n BorderStyle: 'Solid',\n Bounds: { X: offset.x, Y: offset.y, Width: annotationObject.width, Height: annotationObject.height, Left: offset.x, Top: offset.y, Location: { X: offset.x, Y: offset.y }, Size: { Height: annotationObject.height, IsEmpty: false, Width: annotationObject.width } },\n Calibrate: {\n Area: [{ ConversionFactor: 1, Denominator: 100, FormatDenominator: false, FractionalType: 'D', Unit: 'sq in' }],\n Depth: annotationObject.depth ? annotationObject.depth : 0,\n Distance: [{ ConversionFactor: 1, Denominator: 100, FormatDenominator: false, FractionalType: 'D', Unit: 'in' }],\n Ratio: '1 in = 1 in',\n TargetUnitConversion: 0,\n Volume: null,\n X: [{ ConversionFactor: 0.013888889, Denominator: 100, FormatDenominator: false, FractionalType: 'D', Unit: 'in' }]\n },\n Caption: true,\n CaptionPosition: 'Top',\n CloudIntensity: 0,\n Comments: null,\n CustomData: annotationObject.customData ? annotationObject.customData : null,\n CreatedDate: currentDateString,\n EnableShapeLabel: false,\n ExistingCustomData: null,\n FillColor: annotationObject.fillColor ? annotationObject.fillColor : '#ffffff00',\n FontColor: null,\n FontSize: 0,\n Indent: measureAnnotationType,\n IsCloudShape: false,\n IsCommentLock: false,\n IsLocked: annotationObject.isLock ? annotationObject.isLock : false,\n IsPrint: annotationObject.isPrint ? annotationObject.isPrint : true,\n LabelBorderColor: null,\n LabelBounds: { X: 0, Y: 0, Width: 0, Height: 0 },\n LabelContent: null,\n LabelFillColor: null,\n LabelSettings: null,\n LeaderLength: 0,\n LeaderLineExtension: 0,\n LeaderLineOffset: 0,\n LineHeadEnd: annotationObject.lineHeadStartStyle ? annotationObject.lineHeadStartStyle : isArrow ? 'ClosedArrow' : 'None',\n LineHeadStart: annotationObject.lineHeadEndStyle ? annotationObject.lineHeadEndStyle : isArrow ? 'ClosedArrow' : 'None',\n ModifiedDate: '',\n Note: notes,\n Opacity: annotationObject.opacity ? annotationObject.opacity : 1,\n RectangleDifference: null,\n RotateAngle: 'RotateAngle0',\n ShapeAnnotationType: shapeAnnotationType,\n State: '',\n StateModel: '',\n StrokeColor: annotationObject.strokeColor ? annotationObject.strokeColor : '#ff0000',\n Subject: subject,\n Thickness: annotationObject.thickness ? annotationObject.thickness : 1,\n VertexPoints: vertexPoints\n };\n //Adding the annotation object to an array and return it\n measureShapeAnnotation[0] = shape;\n return { measureShapeAnnotation: measureShapeAnnotation };\n };\n return MeasureAnnotation;\n}());\nexport { MeasureAnnotation };\n","import { DynamicStampItem, SignStampItem, StandardBusinessStampItem } from '../../index';\nimport { splitArrayCollection, processPathData } from '@syncfusion/ej2-drawings';\nimport { Browser } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined } from '@syncfusion/ej2-base';\n/**\n * The `StampAnnotation` module is used to handle annotation actions of PDF viewer.\n *\n * @hidden\n */\nvar StampAnnotation = /** @class */ (function () {\n function StampAnnotation(pdfviewer, pdfViewerBase) {\n /**\n * @private\n */\n this.isStampAddMode = false;\n /**\n * @private\n */\n // eslint-disable-next-line\n this.stampPageNumber = [];\n /**\n * @private\n */\n this.isAddAnnotationProgramatically = false;\n /**\n * @private\n */\n this.customStampName = null;\n this.dynamicText = '';\n this.pdfViewer = pdfviewer;\n this.pdfViewerBase = pdfViewerBase;\n }\n /**\n * @param stampAnnotations\n * @param pageNumber\n * @param canvass\n * @param isImport\n * @private\n */\n // eslint-disable-next-line\n StampAnnotation.prototype.renderStampAnnotations = function (stampAnnotations, pageNumber, canvass, isImport) {\n var isStampAdded = false;\n for (var p = 0; p < this.stampPageNumber.length; p++) {\n if (this.stampPageNumber[p] === pageNumber) {\n isStampAdded = true;\n break;\n }\n }\n if (isImport) {\n isStampAdded = false;\n }\n if (stampAnnotations && !isStampAdded) {\n this.stampPageNumber.push(pageNumber);\n var _loop_1 = function (s) {\n // eslint-disable-next-line\n var annotation = stampAnnotations[s];\n annotation.annotationAddMode = this_1.pdfViewer.annotationModule.findAnnotationMode(annotation, pageNumber, annotation.AnnotType);\n // eslint-disable-next-line\n var Apperance = annotation['Apperarance'];\n // eslint-disable-next-line\n var position = annotation['Rect'];\n // eslint-disable-next-line\n var opacity = annotation['Opacity'];\n // eslint-disable-next-line\n var annotationSelectorSettings = annotation[\"AnnotationSelectorSettings\"];\n // eslint-disable-next-line\n var pageIndex = parseFloat(stampAnnotations[s]['pageNumber']);\n /* eslint-disable */\n if (isNaN(pageIndex)) {\n pageIndex = stampAnnotations[s]['PageNumber'];\n }\n // eslint-disable-next-line\n var stampName = annotation['IsDynamic'];\n var pageDiv = document.getElementById(this_1.pdfViewer.element.id + '_pageDiv_' + pageIndex);\n // eslint-disable-next-line\n annotation.AnnotationSettings = annotation.AnnotationSettings ? annotation.AnnotationSettings : this_1.pdfViewer.annotationModule.updateSettings(this_1.pdfViewer.stampSettings);\n // eslint-disable-next-line\n var isImageStamp = this_1.stampImageData(annotation);\n if (stampName && annotation['Subject'] && annotation['Subject'] !== 'Draft' && !isImageStamp) {\n // eslint-disable-next-line\n this_1.retrieveDynamicStampAnnotation(annotation['Subject']);\n this_1.isExistingStamp = true;\n var currentLocation = this_1.calculateImagePosition(position, true);\n // eslint-disable-next-line\n var rotation = annotation['RotateAngle'];\n for (var d = 0; d < Apperance.length; d++) {\n // eslint-disable-next-line\n var stampShapes = Apperance[d];\n // eslint-disable-next-line\n var stampType = stampShapes['type'];\n // eslint-disable-next-line\n if (stampType === 'string' && stampShapes['text'] !== undefined) {\n // eslint-disable-next-line\n var text = void 0;\n if (!isImport) {\n // eslint-disable-next-line\n text = stampShapes['text'].split('(')[1].split(')')[0];\n }\n else {\n // eslint-disable-next-line\n text = stampShapes['text'];\n }\n if (text.split('(').length === 2) {\n if (text.split('(')[1].split(')')[0].toLowerCase() !== annotation['Subject'].toLowerCase()) {\n this_1.dynamicText += text.split('(')[1].split(')')[0];\n }\n }\n else if (text.toLowerCase() !== annotation['Subject'].toLowerCase()) {\n this_1.dynamicText += text;\n }\n }\n }\n // eslint-disable-next-line max-len\n this_1.renderStamp(currentLocation.left, currentLocation.top, currentLocation.width, currentLocation.height, pageIndex, opacity, rotation, canvass, annotation, true);\n }\n // eslint-disable-next-line\n else if (annotation['Subject'] && !isImageStamp) {\n // eslint-disable-next-line\n this_1.retrievestampAnnotation(annotation['Subject']);\n this_1.isExistingStamp = true;\n var currentLocation = this_1.calculateImagePosition(position, true);\n // eslint-disable-next-line\n var rotation = annotation['RotateAngle'];\n // eslint-disable-next-line max-len\n this_1.renderStamp(currentLocation.left, currentLocation.top, currentLocation.width, currentLocation.height, pageIndex, opacity, rotation, canvass, annotation);\n this_1.isExistingStamp = false;\n }\n else {\n if (Apperance) {\n var _loop_2 = function (j) {\n // eslint-disable-next-line\n var stampShapes = Apperance[j];\n // eslint-disable-next-line\n var imageData = stampShapes['imagedata'];\n // eslint-disable-next-line\n var matrix = stampShapes['matrix'];\n // eslint-disable-next-line\n var currentDate = stampShapes['CreationDate'];\n // eslint-disable-next-line\n var modifiedDate = stampShapes['ModifiedDate'];\n // eslint-disable-next-line\n var rotationAngle = stampShapes['RotateAngle'];\n if (imageData) {\n var image_1 = new Image();\n // eslint-disable-next-line\n var proxy_1 = this_1;\n image_1.onload = function () {\n // This code is no more required.Since this issue have neen fixed in server side itself. \n // refer https://syncfusion.atlassian.net/browse/EJ2-54035\n // if (position) {\n // let y: number = parseFloat(position.y ? position.y : position.Y);\n // if (y < 0) {\n // position.Y = (proxy.pdfViewerBase.pageSize[pageIndex].height + y) * (72/96);\n // }\n // }\n var currentLocation = proxy_1.calculateImagePosition(position, true);\n // eslint-disable-next-line max-len\n annotation.AnnotationSettings = annotation.AnnotationSettings ? annotation.AnnotationSettings : proxy_1.pdfViewer.customStampSettings.annotationSettings;\n // eslint-disable-next-line max-len\n proxy_1.renderCustomImage(currentLocation, pageIndex, image_1, currentDate, modifiedDate, rotationAngle, opacity, canvass, true, annotation);\n };\n image_1.src = imageData;\n }\n };\n for (var j = 0; j < Apperance.length; j++) {\n _loop_2(j);\n }\n }\n }\n };\n var this_1 = this;\n for (var s = 0; s < stampAnnotations.length; s++) {\n _loop_1(s);\n }\n }\n };\n /**\n * @private\n */\n StampAnnotation.prototype.moveStampElement = function (X, Y, pageIndex) {\n var zoomFactor = this.pdfViewerBase.getZoomFactor();\n X = X / zoomFactor;\n Y = Y / zoomFactor;\n // eslint-disable-next-line max-len\n var author = (this.pdfViewer.annotationSettings.author !== 'Guest') ? this.pdfViewer.annotationSettings.author : this.pdfViewer.stampSettings.author ? this.pdfViewer.stampSettings.author : 'Guest';\n if (this.pdfViewerBase.isDynamicStamp) {\n if (this.pdfViewer.dateTimeFormat) {\n var dateTime = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n // eslint-disable-next-line max-len\n this.dynamicText = 'By ' + author + ' at ' + dateTime + ' ';\n }\n else {\n // eslint-disable-next-line\n var today = (new Date()).toString().split(' ').splice(1, 3).join(' ');\n // eslint-disable-next-line\n var time = (new Date()).toLocaleTimeString();\n this.dynamicText = 'By ' + author + ' at ' + time + ' , ' + today + ' ';\n }\n }\n var annot;\n // eslint-disable-next-line\n var annotation = this.currentStampAnnotation;\n if (annotation && annotation.shapeAnnotationType === 'Image') {\n annot = {\n // eslint-disable-next-line max-len\n id: 'stamp' + this.pdfViewerBase.customStampCount, bounds: { x: X, y: Y, width: annotation.bounds.width, height: annotation.bounds.height }, pageIndex: pageIndex, data: annotation.data, modifiedDate: annotation.modifiedDate,\n shapeAnnotationType: 'Image', opacity: annotation.opacity, rotateAngle: annotation.RotationAngle, annotName: annotation.annotationName, comments: [], review: { state: '', stateModel: '', modifiedDate: '', author: annotation.author }\n };\n }\n else if (annotation) {\n annot = {\n // eslint-disable-next-line max-len\n id: 'stamp' + this.pdfViewerBase.customStampCount, bounds: { x: X, y: Y, width: annotation.width, height: annotation.height }, pageIndex: pageIndex, data: annotation.pathdata,\n // eslint-disable-next-line max-len\n shapeAnnotationType: 'Stamp', strokeColor: annotation.strokeColor, fillColor: annotation.fillColor, opacity: 0.5, stampFillColor: annotation.stampFillColor, stampStrokeColor: annotation.stampStrokeColor, rotateAngle: annotation.RotateAngle, isDynamicStamp: this.pdfViewerBase.isDynamicStamp, dynamicText: this.dynamicText, subject: annotation.iconName,\n annotationSelectorSettings: this.pdfViewer.annotationSelectorSettings\n };\n }\n if (this.pdfViewerBase.currentSignatureAnnot) {\n annotation = this.pdfViewerBase.currentSignatureAnnot;\n if (annotation.shapeAnnotationType === 'SignatureText') {\n annot = {\n // eslint-disable-next-line max-len\n id: 'sign' + this.pdfViewerBase.signatureCount, bounds: { x: X, y: Y, width: annotation.bounds.width, height: annotation.bounds.height }, pageIndex: pageIndex, data: annotation.data, modifiedDate: '',\n shapeAnnotationType: 'SignatureText', thickness: annotation.thickness, strokeColor: annotation.strokeColor, opacity: annotation.opacity, signatureName: annotation.signatureName, fontFamily: annotation.fontFamily, fontSize: Math.floor((annotation.bounds.height / 2))\n };\n }\n else if (annotation.shapeAnnotationType === 'SignatureImage') {\n annot = {\n // eslint-disable-next-line max-len\n id: 'sign' + this.pdfViewerBase.signatureCount, bounds: { x: X, y: Y, width: annotation.bounds.width, height: annotation.bounds.height }, pageIndex: pageIndex, data: annotation.data, modifiedDate: '',\n shapeAnnotationType: 'SignatureImage', thickness: annotation.thickness, strokeColor: annotation.strokeColor, opacity: annotation.opacity, signatureName: annotation.signatureName,\n };\n }\n else {\n annot = {\n // eslint-disable-next-line max-len\n id: 'sign' + this.pdfViewerBase.signatureCount, bounds: { x: X, y: Y, width: annotation.bounds.width, height: annotation.bounds.height }, pageIndex: pageIndex, data: annotation.data,\n // eslint-disable-next-line max-len\n shapeAnnotationType: 'HandWrittenSignature', thickness: annotation.thickness, strokeColor: annotation.strokeColor, opacity: annotation.opacity, signatureName: annotation.signatureName,\n };\n }\n }\n return annot;\n };\n // eslint-disable-next-line\n StampAnnotation.prototype.ConvertPointToPixel = function (number) {\n return (number * (96 / 72));\n };\n // eslint-disable-next-line\n StampAnnotation.prototype.calculateImagePosition = function (position, flags) {\n var positions = { width: 0, height: 0, left: 0, top: 0 };\n var x = parseFloat(position.x ? position.x : position.X);\n var y = parseFloat(position.y ? position.y : position.Y);\n var newWidth = parseFloat(position.width ? position.width : position.Width);\n var newHeight = parseFloat(position.height ? position.height : position.Height);\n if (flags) {\n var width = this.ConvertPointToPixel(newWidth);\n var height = this.ConvertPointToPixel(newHeight);\n var left = this.ConvertPointToPixel(x);\n var top_1 = this.ConvertPointToPixel(y);\n positions = { width: width, height: height, left: left, top: top_1 };\n }\n else {\n positions = { width: newWidth, height: newHeight, left: x, top: y };\n }\n return positions;\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n StampAnnotation.prototype.createCustomStampAnnotation = function (imageSource, annotName) {\n var _this = this;\n var pageIndex = this.pdfViewerBase.currentPageNumber - 1;\n var pageDiv = document.getElementById(this.pdfViewer.element.id + '_pageDiv_' + pageIndex);\n var image = new Image();\n // eslint-disable-next-line\n var proxy = this;\n image.onload = function () {\n var zoomFactor = _this.pdfViewerBase.getZoomFactor();\n // eslint-disable-next-line max-len\n var stampSettings = _this.pdfViewer.customStampSettings;\n var customStampWidth = stampSettings.width > 0 ? stampSettings.width : 0;\n var customStampHeight = stampSettings.height > 0 ? stampSettings.height : 0;\n var standardImageRatio = 100;\n // eslint-disable-next-line max-len\n if (!(customStampWidth > 0 || customStampHeight > 0)) {\n if (image.naturalHeight >= image.naturalWidth) {\n customStampHeight = ((image.naturalHeight / image.naturalHeight) * standardImageRatio);\n customStampWidth = ((image.naturalWidth / image.naturalHeight) * standardImageRatio);\n }\n else {\n customStampHeight = ((image.naturalHeight / image.naturalWidth) * standardImageRatio);\n customStampWidth = ((image.naturalWidth / image.naturalWidth) * standardImageRatio);\n }\n }\n var customStampleft = 0;\n var customStamptop = 0;\n // eslint-disable-next-line max-len\n customStampleft = _this.pdfViewer.customStampSettings.left;\n // eslint-disable-next-line max-len\n customStamptop = _this.pdfViewer.customStampSettings.top;\n // eslint-disable-next-line max-len\n var positions = { width: customStampWidth, height: customStampHeight, left: customStampleft, top: customStamptop };\n // eslint-disable-next-line\n var currentDate = new Date().toLocaleDateString();\n // eslint-disable-next-line\n var modifiedDate = _this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n var rotationAngle = 0;\n proxy.renderCustomImage(positions, pageIndex, image, currentDate, modifiedDate, rotationAngle, 1, null, null, null, annotName);\n };\n image.src = imageSource;\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n StampAnnotation.prototype.renderStamp = function (X, Y, width, height, pageIndex, opacity, rotation, canvass, existingAnnotation, isDynamic) {\n if (Browser.isDevice) {\n this.pdfViewerBase.customStampCount += 1;\n }\n // eslint-disable-next-line max-len\n var author = (this.pdfViewer.annotationSettings.author !== 'Guest') ? this.pdfViewer.annotationSettings.author : this.pdfViewer.stampSettings.author ? this.pdfViewer.stampSettings.author : 'Guest';\n if (this.pdfViewerBase.isDynamicStamp) {\n // eslint-disable-next-line\n var today = (new Date()).toString().split(' ').splice(1, 3).join(' ');\n // eslint-disable-next-line\n var time = (new Date()).toLocaleTimeString();\n this.dynamicText = 'By ' + author + ' at ' + time + ' , ' + today + ' ';\n }\n if (isDynamic) {\n this.dynamicText += ' ';\n this.pdfViewerBase.isDynamicStamp = true;\n }\n var annot;\n var annotationObject = null;\n // eslint:disable-next-line\n var annotationAddMode = existingAnnotation ? existingAnnotation.annotationAddMode : 'UI Drawn Annotation';\n // eslint-disable-next-line\n var annotation = this.currentStampAnnotation;\n if (annotation) {\n if (width !== null && height !== null) {\n annotation.width = width;\n annotation.height = height;\n annotation.Opacity = opacity;\n annotation.RotateAngle = rotation;\n // eslint-disable-next-line\n var annotationName = existingAnnotation['AnnotName'];\n annotation.AnnotName = annotationName;\n // eslint-disable-next-line\n var state = existingAnnotation['State'];\n annotation.State = state;\n // eslint-disable-next-line\n var annotationSettings = existingAnnotation[\"AnnotationSettings\"];\n // eslint-disable-next-line max-len\n annotation.AnnotationSettings = annotationSettings ? annotationSettings : this.pdfViewer.annotationModule.updateAnnotationSettings(annotation);\n // eslint-disable-next-line\n var annotationSelectorSettings = existingAnnotation['AnnotationSelectorSettings'];\n // eslint-disable-next-line max-len\n annotation.AnnotationSelectorSettings = annotationSelectorSettings ? annotationSelectorSettings : this.pdfViewer.annotationSelectorSettings;\n // eslint-disable-next-line\n var modifiedDate = existingAnnotation['ModifiedDate'];\n annotation.ModifiedDate = modifiedDate;\n // eslint-disable-next-line\n var stateModel = existingAnnotation['StateNodel'];\n annotation.StateModel = stateModel;\n // eslint-disable-next-line\n var lock = existingAnnotation['IsCommentLock'];\n annotation.IsCommentLock = lock;\n // eslint-disable-next-line\n var text = existingAnnotation['Note'];\n annotation.Note = text;\n // eslint-disable-next-line\n var author_1 = existingAnnotation['Author'];\n annotation.Author = author_1;\n // eslint-disable-next-line\n var subject = existingAnnotation['Subject'];\n annotation.Subject = subject;\n // eslint-disable-next-line\n var customData = this.pdfViewer.annotation.getCustomData(existingAnnotation);\n // eslint-disable-next-line\n annotation.allowedInteractions = existingAnnotation['AllowedInteractions'] ? existingAnnotation['AllowedInteractions'] : existingAnnotation['allowedInteractions'] ? existingAnnotation['allowedInteractions'] : ['None'];\n annotation.CustomData = customData;\n // eslint-disable-next-line\n var isPrint = true;\n if (annotation.annotationAddMode === 'Imported Annotation') {\n isPrint = existingAnnotation['IsPrint'];\n }\n else {\n isPrint = existingAnnotation.AnnotationSettings.isPrint;\n }\n annotation.isPrint = isPrint;\n if (annotation.Author === null) {\n // eslint-disable-next-line max-len\n annotation.Author = (this.pdfViewer.annotationSettings.author !== 'Guest') ? this.pdfViewer.annotationSettings.author : this.pdfViewer.stampSettings.author ? this.pdfViewer.stampSettings.author : 'Guest';\n }\n // eslint-disable-next-line\n var annotationComments = existingAnnotation['Comments'];\n annotation.Comments = this.pdfViewer.annotationModule.getAnnotationComments(annotationComments, existingAnnotation, author_1);\n }\n else {\n var annotationName = this.pdfViewer.annotation.createGUID();\n var commentsDivid = this.pdfViewer.annotation.stickyNotesAnnotationModule.addComments('stamp', pageIndex + 1);\n if (commentsDivid) {\n document.getElementById(commentsDivid).id = annotationName;\n }\n annotation.AnnotationSettings = this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.stampSettings);\n annotation.AnnotName = annotationName;\n annotation.Comments = [];\n annotation.State = '';\n annotation.StateModel = '';\n annotation.Note = '';\n annotation.Opacity = 1;\n annotation.RotateAngle = 0;\n annotation.ModifiedDate = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n // eslint-disable-next-line max-len\n annotation.Author = (this.pdfViewer.annotationSettings.author !== 'Guest') ? this.pdfViewer.annotationSettings.author : this.pdfViewer.stampSettings.author ? this.pdfViewer.stampSettings.author : 'Guest';\n }\n // eslint-disable-next-line\n var collectionData = processPathData(annotation.pathdata);\n // eslint-disable-next-line\n var csData = splitArrayCollection(collectionData);\n // eslint:disable-next-line\n var annotationAddMode_1 = existingAnnotation ? existingAnnotation.annotationAddMode : 'UI Drawn Annotation';\n // eslint-disable-next-line max-len\n annotation.AnnotationSelectorSettings = annotation.AnnotationSelectorSettings ? annotation.AnnotationSelectorSettings : this.pdfViewer.annotationSelectorSettings;\n annot = {\n // eslint-disable-next-line max-len\n id: 'stamp' + this.pdfViewerBase.customStampCount, bounds: { x: X, y: Y, width: annotation.width, height: annotation.height }, pageIndex: pageIndex, data: annotation.pathdata, modifiedDate: annotation.ModifiedDate,\n // eslint-disable-next-line max-len\n shapeAnnotationType: 'Stamp', strokeColor: annotation.strokeColor, fillColor: annotation.fillColor, opacity: annotation.Opacity, stampFillColor: annotation.stampFillColor, stampStrokeColor: annotation.stampStrokeColor, rotateAngle: annotation.RotateAngle, isDynamicStamp: this.pdfViewerBase.isDynamicStamp, dynamicText: this.dynamicText, annotName: annotation.AnnotName, notes: annotation.Note,\n comments: annotation.Comments, review: { state: annotation.State, stateModel: annotation.StateModel, modifiedDate: annotation.ModifiedDate, author: annotation.Author }, subject: annotation.iconName,\n // eslint-disable-next-line\n annotationSelectorSettings: annotation.AnnotationSelectorSettings, annotationSettings: annotation.AnnotationSettings, allowedInteractions: annotation.allowedInteractions,\n annotationAddMode: annotationAddMode_1, isPrint: annotation.isPrint, isCommentLock: annotation.IsCommentLock\n };\n annotationObject = {\n // eslint-disable-next-line max-len\n stampAnnotationType: 'path', author: annotation.Author, modifiedDate: annotation.ModifiedDate, subject: annotation.Subject,\n note: annotation.Note, strokeColor: annotation.strokeColor, fillColor: annotation.fillColor, opacity: annotation.Opacity, stampFillcolor: annotation.stampFillColor,\n // eslint-disable-next-line max-len\n rotateAngle: annotation.RotateAngle, creationDate: annotation.creationDate, pageNumber: pageIndex, icon: annotation.iconName, stampAnnotationPath: csData, randomId: 'stamp' + this.pdfViewerBase.customStampCount, isDynamicStamp: this.pdfViewerBase.isDynamicStamp, dynamicText: this.dynamicText,\n bounds: { left: X, top: Y, width: annotation.width, height: annotation.height, }, annotName: annotation.AnnotName, comments: annotation.Comments, review: { state: annotation.State, stateModel: annotation.StateModel, author: annotation.Author, modifiedDate: annotation.ModifiedDate }, shapeAnnotationType: 'stamp',\n // eslint-disable-next-line max-len\n annotationSelectorSettings: this.getSettings(annotation), annotationSettings: annotation.AnnotationSettings, customData: this.pdfViewer.annotation.getCustomData(annotation), allowedInteractions: annotation.allowedInteractions, isPrint: annotation.isPrint, isCommentLock: annotation.IsCommentLock,\n isMaskedImage: annotation.IsMaskedImage, customStampName: ''\n };\n this.storeStampInSession(pageIndex, annotationObject);\n if (this.isAddAnnotationProgramatically) {\n this.triggerAnnotationAdd(annot, annotation);\n }\n this.pdfViewer.add(annot);\n // eslint-disable-next-line\n if (canvass != undefined && canvass != null) {\n canvass = canvass;\n }\n else {\n canvass = document.getElementById(this.pdfViewer.element.id + '_annotationCanvas_' + pageIndex);\n }\n // eslint-disable-next-line\n this.pdfViewer.renderDrawing(canvass, pageIndex);\n if (this.pdfViewerBase.stampAdded) {\n this.triggerAnnotationAdd(annot, annotation);\n this.pdfViewerBase.isNewStamp = true;\n this.pdfViewer.annotation.addAction(pageIndex, null, annot, 'Addition', '', annot, annot);\n }\n this.pdfViewerBase.stampAdded = false;\n if (!this.isExistingStamp) {\n annotation.creationDate = new Date().toLocaleDateString();\n // eslint-disable-next-line max-len\n annotation.modifiedDate = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n }\n }\n this.resetAnnotation();\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n StampAnnotation.prototype.getSettings = function (annotation) {\n var selector = this.pdfViewer.annotationSelectorSettings;\n if (annotation.AnnotationSelectorSettings) {\n selector = annotation.AnnotationSelectorSettings;\n }\n else if (this.pdfViewer.stampSettings.annotationSelectorSettings) {\n selector = this.pdfViewer.stampSettings.annotationSelectorSettings;\n }\n return selector;\n };\n /**\n * @private\n */\n StampAnnotation.prototype.resetAnnotation = function () {\n this.pdfViewerBase.isDynamicStamp = false;\n this.dynamicText = '';\n this.currentStampAnnotation = null;\n if (!Browser.isDevice) {\n this.pdfViewerBase.customStampCount += 1;\n }\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n StampAnnotation.prototype.updateDeleteItems = function (pageNumber, annotation, opacity) {\n this.pdfViewerBase.updateDocumentEditedProperty(true);\n var annotationObject = null;\n var isStampSaved = false;\n annotation.modifiedDate = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n // eslint-disable-next-line max-len\n annotation.author = (this.pdfViewer.annotationSettings.author !== 'Guest') ? this.pdfViewer.annotationSettings.author : this.pdfViewer.stampSettings.author ? this.pdfViewer.stampSettings.author : 'Guest';\n if (opacity) {\n var annotationName = this.pdfViewer.annotation.createGUID();\n var commentsDivid = this.pdfViewer.annotation.stickyNotesAnnotationModule.addComments('stamp', pageNumber + 1);\n if (commentsDivid) {\n document.getElementById(commentsDivid).id = annotationName;\n }\n annotation.annotName = annotationName;\n annotation.Comments = [];\n annotation.State = '';\n annotation.StateModel = '';\n annotation.Note = '';\n annotation.Opacity = 1;\n annotation.RotateAngle = 0;\n }\n if (annotation.shapeAnnotationType === 'Stamp') {\n annotation.isPrint = this.pdfViewer.stampSettings.isPrint;\n }\n // eslint-disable-next-line\n var annotationSelectorSettings = this.pdfViewer.stampSettings.annotationSelectorSettings ? this.pdfViewer.stampSettings.annotationSelectorSettings : this.pdfViewer.annotationSelectorSettings;\n // eslint-disable-next-line\n var allowedInteractions = this.pdfViewer.stampSettings.allowedInteractions ? this.pdfViewer.stampSettings.allowedInteractions : this.pdfViewer.annotationSettings.allowedInteractions;\n if (annotation.shapeAnnotationType === 'Image') {\n // eslint-disable-next-line max-len\n annotation.Author = (this.pdfViewer.annotationSettings.author !== 'Guest') ? this.pdfViewer.annotationSettings.author : this.pdfViewer.customStampSettings.author ? this.pdfViewer.customStampSettings.author : 'Guest';\n annotation.isPrint = this.pdfViewer.customStampSettings.isPrint;\n this.customStampName = this.customStampName ? this.customStampName : (this.currentStampAnnotation && this.currentStampAnnotation.signatureName) ? this.currentStampAnnotation.signatureName : annotation.id;\n annotationObject = {\n // eslint-disable-next-line max-len\n stampAnnotationType: 'image', author: annotation.author, modifiedDate: annotation.modifiedDate, subject: '',\n note: '', strokeColor: '', fillColor: '', opacity: opacity,\n // eslint-disable-next-line max-len\n rotateAngle: '0', creationDate: annotation.currentDate, pageNumber: pageNumber, icon: '', stampAnnotationPath: annotation.data, randomId: 'stamp' + this.pdfViewerBase.customStampCount,\n // eslint-disable-next-line max-len\n bounds: { left: annotation.bounds.x, top: annotation.bounds.y, width: annotation.bounds.width, height: annotation.bounds.height }, stampFillcolor: '', isDynamicStamp: false, annotName: annotation.annotName, comments: [], review: { state: '', stateModel: '', author: annotation.author, modifiedDate: annotation.modifiedDate }, shapeAnnotationType: 'stamp',\n // eslint-disable-next-line max-len\n annotationSelectorSettings: annotationSelectorSettings, annotationSettings: this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.customStampSettings), customData: this.pdfViewer.annotationModule.getData('image'), isPrint: annotation.isPrint,\n allowedInteractions: allowedInteractions, isCommentLock: false, isMaskedImage: annotation.isMaskedImage, customStampName: this.customStampName\n };\n }\n else if (annotation.stampAnnotationType) {\n annotationObject = {\n // eslint-disable-next-line max-len\n stampAnnotationType: annotation.stampAnnotationType, author: annotation.author, modifiedDate: annotation.modifiedDate, subject: annotation.Subject,\n note: annotation.Note, strokeColor: annotation.strokeColor, fillColor: annotation.fillColor, opacity: annotation.opacity, stampFillcolor: annotation.stampFillcolor,\n // eslint-disable-next-line max-len\n rotateAngle: annotation.rotateAngle, creationDate: annotation.creationDate, pageNumber: annotation.pageNumber, icon: annotation.icon, stampAnnotationPath: annotation.stampAnnotationPath, randomId: annotation.randomId, isDynamicStamp: annotation.isDynamicStamp, dynamicText: annotation.dynamicText,\n bounds: { left: annotation.bounds.left, top: annotation.bounds.top, width: annotation.bounds.width, height: annotation.bounds.height }, annotName: annotation.annotName, comments: annotation.Comments, review: { state: annotation.State, stateModel: annotation.StateModel, author: annotation.author, modifiedDate: annotation.ModifiedDate }, shapeAnnotationType: 'stamp',\n // eslint-disable-next-line max-len\n annotationSelectorSettings: annotationSelectorSettings, annotationSettings: this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.stampSettings), customData: this.pdfViewer.annotationModule.getData(annotation.stampAnnotationType), isPrint: annotation.isPrint,\n allowedInteractions: allowedInteractions, isCommentLock: annotation.isCommentLock, isMaskedImage: annotation.isMaskedImage, customStampName: ''\n };\n }\n else {\n annotationObject = {\n // eslint-disable-next-line max-len\n stampAnnotationType: annotation.shapeAnnotationType, author: annotation.author, modifiedDate: annotation.modifiedDate, subject: annotation.subject,\n note: annotation.notes, strokeColor: annotation.strokeColor, fillColor: annotation.fillColor, opacity: annotation.opacity, stampFillcolor: annotation.stampFillColor,\n // eslint-disable-next-line max-len\n rotateAngle: annotation.rotateAngle, creationDate: annotation.creationDate, pageNumber: annotation.pageIndex, icon: annotation.subject, stampAnnotationPath: annotation.data, randomId: annotation.id, isDynamicStamp: annotation.isDynamicStamp, dynamicText: annotation.dynamicText, shapeAnnotationType: 'stamp',\n bounds: { left: annotation.bounds.x, top: annotation.bounds.y, width: annotation.bounds.width, height: annotation.bounds.height, }, annotName: annotation.annotName, comments: annotation.Comments, review: { state: annotation.State, stateModel: annotation.StateModel, author: annotation.author, modifiedDate: annotation.ModifiedDate },\n // eslint-disable-next-line max-len\n annotationSelectorSettings: annotationSelectorSettings, annotationSettings: this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.stampSettings), customData: this.pdfViewer.annotationModule.getData(annotation.shapeAnnotationType), isPrint: annotation.isPrint,\n allowedInteractions: allowedInteractions, isCommentLock: annotation.isCommentLock, isMaskedImage: annotation.isMaskedImage, customStampName: ''\n };\n }\n if (opacity) {\n if (annotation.shapeAnnotationType !== 'Image') {\n // eslint-disable-next-line\n var collectionData = processPathData(annotation.data);\n // eslint-disable-next-line\n var csData = splitArrayCollection(collectionData);\n annotationObject.stampAnnotationPath = csData;\n }\n annotation.creationDate = new Date().toLocaleDateString();\n if (!Browser.isDevice && annotation.wrapper) {\n annotationObject.bounds.width = annotation.wrapper.actualSize.width;\n annotationObject.bounds.height = annotation.wrapper.actualSize.height;\n annotationObject.bounds.left = annotation.wrapper.bounds.x;\n annotationObject.bounds.top = annotation.wrapper.bounds.y;\n }\n annotationObject.opacity = opacity;\n if (this.pdfViewerBase.stampAdded) {\n this.storeStampInSession(pageNumber, annotationObject);\n isStampSaved = true;\n // eslint-disable-next-line\n var bounds = { left: annotationObject.bounds.left, top: annotationObject.bounds.top, width: annotationObject.bounds.width, height: annotationObject.bounds.height };\n this.pdfViewerBase.updateDocumentEditedProperty(true);\n // eslint-disable-next-line max-len\n // eslint-disable-next-line\n var settings = { opacity: annotationObject.opacity, author: annotationObject.author, modifiedDate: annotationObject.modifiedDate };\n if (annotation.shapeAnnotationType === 'Image') {\n this.pdfViewerBase.stampAdded = false;\n this.pdfViewer.fireAnnotationAdd(annotationObject.pageNumber, annotationObject.annotName, 'Image', bounds, settings, null, null, null, null, null, this.customStampName);\n this.customStampName = null;\n }\n else {\n this.pdfViewer.fireAnnotationAdd(annotationObject.pageNumber, annotationObject.annotName, 'Stamp', bounds, settings);\n }\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(pageNumber, null, annotation, 'Addition', '', annotation, annotationObject);\n }\n }\n if (!isStampSaved) {\n this.storeStampInSession(pageNumber, annotationObject);\n }\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n StampAnnotation.prototype.renderCustomImage = function (position, pageIndex, image, currentDate, modifiedDate, RotationAngle, opacity, canvas, isExistingStamp, annotation, annotName) {\n var annot;\n var annotationObject = null;\n var annotationName;\n var author;\n var isCommentsLock;\n // eslint-disable-next-line\n var isCustomStamp = this.pdfViewer.customStampSettings.left > 0 && this.pdfViewer.customStampSettings.top > 0 ? true : false;\n // eslint-disable-next-line\n var annotationSettings = this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.customStampSettings);\n // eslint-disable-next-line\n var allowedInteractions = this.pdfViewer.stampSettings.allowedInteractions ? this.pdfViewer.stampSettings.allowedInteractions : this.pdfViewer.annotationSettings.allowedInteractions;\n if (Browser.isDevice) {\n this.pdfViewerBase.customStampCount += 1;\n }\n if (isExistingStamp) {\n annotationName = annotation.AnnotName;\n author = annotation.Author;\n isCommentsLock = annotation.IsCommentLock;\n // eslint-disable-next-line max-len\n annotationSettings = annotation.AnnotationSettings ? annotation.AnnotationSettings : this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.customStampSettings);\n // eslint-disable-next-line max-len\n allowedInteractions = annotation.AllowedInteractions ? annotation.AllowedInteractions : this.pdfViewer.annotationModule.updateAnnotationAllowedInteractions(annotation);\n if (author === null) {\n // eslint-disable-next-line max-len\n author = (this.pdfViewer.annotationSettings.author !== 'Guest') ? this.pdfViewer.annotationSettings.author : this.pdfViewer.customStampSettings.author ? this.pdfViewer.customStampSettings.author : 'Guest';\n }\n }\n else {\n annotationName = this.pdfViewer.annotation.createGUID();\n // eslint-disable-next-line max-len\n author = (this.pdfViewer.annotationSettings.author !== 'Guest') ? this.pdfViewer.annotationSettings.author : this.pdfViewer.customStampSettings.author ? this.pdfViewer.customStampSettings.author : 'Guest';\n isCommentsLock = false;\n }\n if (!modifiedDate) {\n modifiedDate = annotation.ModifiedDate ? annotation.ModifiedDate : new Date().toLocaleString();\n }\n var annotationAddMode = annotation ? annotation.annotationAddMode : 'UI Drawn Annotation ';\n var isPrint = true;\n if (!isExistingStamp) {\n isPrint = this.pdfViewer.customStampSettings.isPrint;\n }\n else {\n if (annotation.annotationAddMode === 'Imported Annotation') {\n isPrint = annotation.IsPrint;\n }\n else {\n isPrint = annotation.AnnotationSettings.isPrint;\n }\n }\n annot = {\n // eslint-disable-next-line max-len\n id: 'stamp' + this.pdfViewerBase.customStampCount, allowedInteractions: allowedInteractions, bounds: { x: position.left, y: position.top, width: position.width, height: position.height }, pageIndex: pageIndex, data: image.src, modifiedDate: modifiedDate,\n shapeAnnotationType: 'Image', opacity: opacity, rotateAngle: RotationAngle, annotName: annotationName, comments: [], review: { state: '', stateModel: '', modifiedDate: '', author: author },\n // eslint-disable-next-line max-len\n annotationSettings: annotationSettings, annotationAddMode: annotationAddMode, signatureName: annotName, isPrint: isPrint, isCommentLock: isCommentsLock\n };\n this.currentStampAnnotation = annot;\n // eslint-disable-next-line\n var annotationSelectorSettings = this.pdfViewer.stampSettings.annotationSelectorSettings ? this.pdfViewer.stampSettings.annotationSelectorSettings : this.pdfViewer.annotationSelectorSettings;\n if (isExistingStamp || isCustomStamp) {\n if (!annotation) {\n this.isStampAnnotSelected = false;\n annotation = annot;\n // eslint-disable-next-line\n annotation.Note = '';\n // eslint-disable-next-line\n annotation.State = '';\n // eslint-disable-next-line\n annotation.StateModel = '';\n var commentsDivid = this.pdfViewer.annotation.stickyNotesAnnotationModule.addComments('stamp', pageIndex + 1);\n if (commentsDivid) {\n document.getElementById(commentsDivid).id = annotationName;\n }\n }\n annotationObject = {\n // eslint-disable-next-line max-len\n stampAnnotationType: 'image', author: author, allowedInteractions: allowedInteractions, modifiedDate: modifiedDate, subject: '',\n note: annotation.Note, strokeColor: '', fillColor: '', opacity: opacity,\n // eslint-disable-next-line max-len\n rotateAngle: '0', creationDate: currentDate, pageNumber: pageIndex, icon: '', stampAnnotationPath: image.src, randomId: 'stamp' + this.pdfViewerBase.customStampCount,\n // eslint-disable-next-line max-len\n bounds: { left: position.left, top: position.top, width: position.width, height: position.height }, stampFillcolor: '', isDynamicStamp: false,\n annotName: annotationName, comments: this.pdfViewer.annotationModule.getAnnotationComments(annotation.Comments, annotation, annotation.Author), review: { state: annotation.State, stateModel: annotation.StateModel, author: author, modifiedDate: modifiedDate }, shapeAnnotationType: 'stamp',\n // eslint-disable-next-line max-len\n annotationSelectorSettings: annotationSelectorSettings, annotationSettings: annotationSettings, customData: this.pdfViewer.annotation.getCustomData(annotation), isPrint: isPrint, isCommentLock: isCommentsLock, isMaskedImage: annotation.IsMaskedImage, customStampName: annotation.CustomStampName\n };\n this.storeStampInSession(pageIndex, annotationObject);\n annot.comments = this.pdfViewer.annotationModule.getAnnotationComments(annotation.Comments, annotation, annotation.Author);\n annot.review = { state: annotation.State, stateModel: annotation.StateModel, author: author, modifiedDate: modifiedDate };\n if (this.isAddAnnotationProgramatically) {\n // eslint-disable-next-line\n var settings = {\n opacity: annot.opacity, borderColor: annot.strokeColor, borderWidth: annot.thickness, author: annotation.author, subject: annotation.subject, modifiedDate: annotation.modifiedDate,\n // eslint-disable-next-line\n fillColor: annot.fillColor, fontSize: annot.fontSize, width: annot.bounds.width, height: annot.bounds.height, fontColor: annot.fontColor, fontFamily: annot.fontFamily, defaultText: annot.dynamicText, fontStyle: annot.font, textAlignment: annot.textAlign\n };\n this.customStampName = this.customStampName ? this.customStampName : this.currentStampAnnotation.signatureName ? this.currentStampAnnotation.signatureName : annotation.id;\n this.pdfViewer.fireAnnotationAdd(annot.pageIndex, annot.annotName, 'Image', annot.bounds, settings, null, null, null, null, null, this.customStampName);\n this.customStampName = null;\n }\n this.pdfViewer.add(annot);\n // eslint-disable-next-line\n if (canvas != undefined && canvas != null) {\n canvas = canvas;\n }\n else {\n canvas = document.getElementById(this.pdfViewer.element.id + '_annotationCanvas_' + pageIndex);\n }\n // eslint-disable-next-line\n this.pdfViewer.renderDrawing(canvas, pageIndex);\n if (this.pdfViewerBase.stampAdded) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(pageIndex, null, annot, 'Addition', '', annot, annot);\n }\n }\n if (!Browser.isDevice) {\n this.pdfViewerBase.customStampCount += 1;\n }\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n StampAnnotation.prototype.retrieveDynamicStampAnnotation = function (icontype) {\n var stampCollection;\n if (icontype) {\n switch (icontype.trim()) {\n case 'Revised':\n {\n stampCollection = {\n iconName: 'Revised',\n // eslint-disable-next-line max-len\n pathdata: 'M19.68,21.22a3.94,3.94,0,0,1-1.1-1.9L16,11.87l-.21-.64a20.77,20.77,0,0,0,2.11-.58,7.24,7.24,0,0,0,2-1.09,5.65,5.65,0,0,0,1.72-2.12,5.4,5.4,0,0,0,.52-2.2A4.15,4.15,0,0,0,19.1,1.05a14.58,14.58,0,0,0-4.72-.6H5.31v.86a7,7,0,0,1,2,.33c.3.14.45.48.45,1a6.1,6.1,0,0,1-.14,1.08l-.21.8L3.31,19.32a3.35,3.35,0,0,1-.94,1.78,3.58,3.58,0,0,1-1.74.57v.86h9.83v-.86a6.22,6.22,0,0,1-2-.35c-.29-.15-.43-.52-.43-1.11,0-.1,0-.21,0-.31a2.36,2.36,0,0,1,0-.28l.28-1.14,1.95-6.86h.93l3.56,10.91h6.25v-.88A3.05,3.05,0,0,1,19.68,21.22ZM13.29,10.31a14,14,0,0,1-2.63.23l2-7.56a2.67,2.67,0,0,1,.52-1.17,1.4,1.4,0,0,1,1-.3,2.74,2.74,0,0,1,2.33.91,3.72,3.72,0,0,1,.69,2.3,6.4,6.4,0,0,1-.49,2.52,6.72,6.72,0,0,1-1.06,1.82A4.11,4.11,0,0,1,13.29,10.31ZM26,.45H43.74l-1.4,6.27-.88-.15a6,6,0,0,0-.78-3.4c-.84-1.12-2.54-1.69-5.11-1.69a2.9,2.9,0,0,0-1.68.32A2.34,2.34,0,0,0,33.26,3l-1.95,7.33a13.55,13.55,0,0,0,4.48-.56c.68-.32,1.44-1.3,2.27-2.92l.91.11-2.44,9-.91-.16a7.27,7.27,0,0,0,.09-.82q0-.35,0-.57a2.69,2.69,0,0,0-1-2.4A7.57,7.57,0,0,0,31,11.38l-2.17,8c0,.2-.09.38-.12.57a2.62,2.62,0,0,0,0,.43.92.92,0,0,0,.35.74,2.54,2.54,0,0,0,1.49.29,13.84,13.84,0,0,0,5.11-.84A9.85,9.85,0,0,0,40.73,16l.81.14-1.95,6.42h-18v-.9a3.43,3.43,0,0,0,1.42-.53A3.42,3.42,0,0,0,24,19.32L28,4.51c.1-.37.18-.72.25-1a4.23,4.23,0,0,0,.09-.78c0-.56-.15-.91-.44-1.06a6.85,6.85,0,0,0-2-.34ZM63.4,3.37,51,23.15H49.9L47.39,6.34a17.25,17.25,0,0,0-.93-4.24c-.25-.43-.93-.7-2.05-.79V.45h9.86v.86a5.47,5.47,0,0,0-1.72.19,1.14,1.14,0,0,0-.81,1.16,3,3,0,0,0,0,.31l0,.32L53.5,16.43l6.24-9.85c.49-.79.94-1.57,1.33-2.36a4.45,4.45,0,0,0,.6-1.85.88.88,0,0,0-.61-.9,6.11,6.11,0,0,0-1.52-.16V.45h6.34v.86a3.88,3.88,0,0,0-1.16.5A5.73,5.73,0,0,0,63.4,3.37ZM70.08,20c0,.11,0,.22,0,.31,0,.56.15.91.45,1.06a6.39,6.39,0,0,0,1.95.35v.86H62.63v-.86a3.58,3.58,0,0,0,1.74-.57,3.35,3.35,0,0,0,.94-1.78l4-14.81q.18-.63.27-1a3.78,3.78,0,0,0,.09-.75c0-.56-.16-.91-.47-1.06a7,7,0,0,0-2-.34V.45h9.83v.86a3.61,3.61,0,0,0-1.75.58,3.37,3.37,0,0,0-.91,1.78L70.4,18.48l-.26,1.14Zm19.26-7.23a6.37,6.37,0,0,1,1.07,3.62,6.58,6.58,0,0,1-2.06,4.71,7.54,7.54,0,0,1-5.65,2.1A10.15,10.15,0,0,1,80.89,23a11.42,11.42,0,0,1-1.8-.49l-.83-.3-.58-.2a2,2,0,0,0-.38,0,1,1,0,0,0-.78.26,3.89,3.89,0,0,0-.52.92H75l1.19-7.4,1,.07a14.63,14.63,0,0,0,.28,2.3,5.27,5.27,0,0,0,2.79,3.44,4.73,4.73,0,0,0,2.06.44,3.85,3.85,0,0,0,3.07-1.26,4.39,4.39,0,0,0,1.09-2.94q0-2.09-4.05-5.25c-2.7-2.22-4-4.26-4-6.14a6.31,6.31,0,0,1,1.78-4.53,6.51,6.51,0,0,1,5-1.87,9.67,9.67,0,0,1,1.82.18A6.54,6.54,0,0,1,88,.45l.84.28.56.13a2.59,2.59,0,0,0,.52.06,1.4,1.4,0,0,0,.88-.24,2.2,2.2,0,0,0,.53-.6h1L91,6.69l-.85-.12L90,5.49a6,6,0,0,0-1-2.62,3.82,3.82,0,0,0-3.38-1.73A3,3,0,0,0,82.9,2.53a3.6,3.6,0,0,0-.58,2,3.44,3.44,0,0,0,.59,2,6,6,0,0,0,1,1l2.85,2.33A12.75,12.75,0,0,1,89.34,12.72ZM110.27,16l.81.14-2,6.42H90.85v-.86a3.66,3.66,0,0,0,1.74-.57,3.42,3.42,0,0,0,.93-1.78l4-14.81c.1-.37.18-.72.25-1a4.23,4.23,0,0,0,.09-.78c0-.56-.14-.91-.44-1.06a6.85,6.85,0,0,0-2-.34V.45h17.77l-1.4,6.27L111,6.57a6,6,0,0,0-.78-3.4c-.84-1.12-2.54-1.69-5.1-1.69a2.92,2.92,0,0,0-1.69.32A2.34,2.34,0,0,0,102.8,3l-2,7.33a13.55,13.55,0,0,0,4.48-.56c.69-.32,1.44-1.3,2.27-2.92l.92.11-2.45,9-.91-.16a7.27,7.27,0,0,0,.09-.82q0-.35,0-.57a2.69,2.69,0,0,0-1-2.4,7.57,7.57,0,0,0-3.79-.64l-2.17,8c0,.2-.09.38-.12.57a2.62,2.62,0,0,0,0,.43.92.92,0,0,0,.35.74,2.54,2.54,0,0,0,1.49.29,13.84,13.84,0,0,0,5.11-.84A9.81,9.81,0,0,0,110.27,16Zm22.65-13Q130.39.45,125.52.45h-9.58v.86a7,7,0,0,1,2,.34c.31.15.47.5.47,1.06a3.61,3.61,0,0,1-.09.74c-.06.29-.15.64-.26,1.06L114,19.31a3.18,3.18,0,0,1-1.15,1.91,3.57,3.57,0,0,1-1.53.45v.86h9.47a14.87,14.87,0,0,0,10.95-4.14,12,12,0,0,0,3.75-8.77A8.94,8.94,0,0,0,132.92,2.94ZM129,15.36q-2.62,6.06-8.52,6.05a2.46,2.46,0,0,1-1.42-.29,1.05,1.05,0,0,1-.4-.93,2.24,2.24,0,0,1,0-.34,2.65,2.65,0,0,1,.08-.43l4.55-16.67a2,2,0,0,1,.54-.92,2.2,2.2,0,0,1,1.44-.35,4.74,4.74,0,0,1,4.47,2.22,7.9,7.9,0,0,1,.83,3.9A19.32,19.32,0,0,1,129,15.36Z',\n opacity: 1, strokeColor: '', fillColor: '#192760', width: 127.47, height: 55.84601, stampFillColor: '#dce3ef', stampStrokeColor: '',\n };\n }\n break;\n case 'Reviewed':\n {\n stampCollection = {\n iconName: 'Reviewed',\n // eslint-disable-next-line max-len\n pathdata: 'M17.37,18.25a3.47,3.47,0,0,1-1-1.67L14.17,10c0-.07-.1-.26-.19-.56A14.71,14.71,0,0,0,15.83,9a6.08,6.08,0,0,0,1.76-1A4.92,4.92,0,0,0,19.1,6.14a4.71,4.71,0,0,0,.46-1.93A3.65,3.65,0,0,0,16.86.52,12.83,12.83,0,0,0,12.72,0h-8V.75a6.62,6.62,0,0,1,1.72.3c.26.12.39.41.39.88a4.56,4.56,0,0,1-.13.94c0,.2-.1.44-.17.7L3,16.58a2.87,2.87,0,0,1-.82,1.56,3.15,3.15,0,0,1-1.53.51v.75H9.27v-.75a5.88,5.88,0,0,1-1.74-.31c-.25-.13-.37-.46-.37-1a2.53,2.53,0,0,1,0-.28,1.44,1.44,0,0,1,0-.24l.24-1,1.71-6H10l3.13,9.59h5.49v-.77A2.71,2.71,0,0,1,17.37,18.25ZM11.75,8.67a12.06,12.06,0,0,1-2.3.19L11.2,2.22a2.2,2.2,0,0,1,.46-1,1.19,1.19,0,0,1,.87-.27,2.41,2.41,0,0,1,2.05.8,3.29,3.29,0,0,1,.6,2A5.63,5.63,0,0,1,14.75,6a6.06,6.06,0,0,1-.93,1.59A3.65,3.65,0,0,1,11.75,8.67ZM22.9,0H38.52L37.29,5.51l-.78-.13a5.34,5.34,0,0,0-.68-3c-.74-1-2.24-1.48-4.49-1.48a2.68,2.68,0,0,0-1.49.27,2.09,2.09,0,0,0-.54,1L27.59,8.67a12.08,12.08,0,0,0,3.94-.5,5.69,5.69,0,0,0,2-2.56l.81.1-2.16,7.93-.79-.15c0-.27.06-.51.08-.71s0-.37,0-.5a2.34,2.34,0,0,0-.85-2.11A6.61,6.61,0,0,0,27.3,9.6l-1.91,7.08a4.91,4.91,0,0,0-.1.5,2,2,0,0,0,0,.38.83.83,0,0,0,.31.65,2.29,2.29,0,0,0,1.31.25,12.21,12.21,0,0,0,4.49-.73,8.69,8.69,0,0,0,4.51-4.09l.71.12L34.86,19.4H19.05v-.79a2.88,2.88,0,0,0,1.28-.47,2.94,2.94,0,0,0,.82-1.56l3.56-13q.13-.49.21-.9A3.26,3.26,0,0,0,25,2q0-.73-.39-.93A6.44,6.44,0,0,0,22.9.75ZM55.79,2.57,44.86,20h-.93L41.72,5.17a16.05,16.05,0,0,0-.81-3.73c-.22-.37-.82-.6-1.81-.69V0h8.67V.75a5,5,0,0,0-1.52.17,1,1,0,0,0-.7,1,2.53,2.53,0,0,0,0,.28l0,.27L47.09,14l5.48-8.66C53,4.69,53.4,4,53.75,3.32a4,4,0,0,0,.52-1.63.78.78,0,0,0-.54-.8A5.88,5.88,0,0,0,52.4.75V0H58V.75a3.55,3.55,0,0,0-1,.44A5.18,5.18,0,0,0,55.79,2.57ZM62,18.34a6,6,0,0,0,1.71.31v.75H55.12v-.75a3.15,3.15,0,0,0,1.53-.51,2.94,2.94,0,0,0,.82-1.56L61,3.57c.1-.37.18-.68.23-.93A2.81,2.81,0,0,0,61.34,2c0-.49-.13-.8-.41-.93a6.61,6.61,0,0,0-1.71-.3V0h8.63V.75a3.17,3.17,0,0,0-1.53.51,3,3,0,0,0-.8,1.57l-3.58,13-.22,1a2.74,2.74,0,0,0,0,.28,1.41,1.41,0,0,0,0,.28C61.64,17.9,61.78,18.21,62,18.34ZM69.13,0H84.75L83.52,5.51l-.78-.13a5.34,5.34,0,0,0-.68-3c-.74-1-2.24-1.48-4.49-1.48a2.68,2.68,0,0,0-1.49.27,2.09,2.09,0,0,0-.54,1L73.82,8.67a12.08,12.08,0,0,0,3.94-.5,5.69,5.69,0,0,0,2-2.56l.81.1L78.4,13.64l-.79-.15c0-.27.07-.51.08-.71s0-.37,0-.5a2.34,2.34,0,0,0-.85-2.11,6.61,6.61,0,0,0-3.33-.57l-1.91,7.08a4.91,4.91,0,0,0-.1.5,2,2,0,0,0,0,.38.83.83,0,0,0,.31.65,2.29,2.29,0,0,0,1.31.25,12.21,12.21,0,0,0,4.49-.73,8.69,8.69,0,0,0,4.51-4.09l.71.12L81.1,19.4H65v-.75a3.15,3.15,0,0,0,1.53-.51,2.94,2.94,0,0,0,.82-1.56l3.56-13q.14-.49.21-.9A3.26,3.26,0,0,0,71.24,2q0-.73-.39-.93a6.44,6.44,0,0,0-1.72-.3Zm39.15,2.83L100,20h-.84L97.41,5.85,90.67,20h-.84L87.58,3.13A3.83,3.83,0,0,0,87,1.23,2.84,2.84,0,0,0,85.33.71V0h8.06V.75A2.55,2.55,0,0,0,92.27,1a1.33,1.33,0,0,0-.66,1.31c0,.06,0,.13,0,.19s0,.15,0,.26l1.15,10.16,4.32-9a1,1,0,0,0,0-.27,3.33,3.33,0,0,0-.64-2.38A2.5,2.5,0,0,0,95.06.71V0h7.78V.71a2.9,2.9,0,0,0-1.4.34c-.27.19-.41.6-.41,1.24,0,.13,0,.32,0,.55,0,.4.08.88.14,1.47l1,8.47,4.51-9.42a7.12,7.12,0,0,0,.29-.74,2.48,2.48,0,0,0,.14-.79.9.9,0,0,0-.48-.93,3.25,3.25,0,0,0-1.34-.19V0h5.41V.71a2.34,2.34,0,0,0-1.1.35A4.56,4.56,0,0,0,108.28,2.83Zm16.45,10.81.71.12-1.71,5.64H107.66v-.75a3.15,3.15,0,0,0,1.53-.51,2.87,2.87,0,0,0,.82-1.56l3.57-13q.12-.49.21-.9a3.17,3.17,0,0,0,.08-.69q0-.73-.39-.93a6.44,6.44,0,0,0-1.72-.3V0h15.62l-1.23,5.51-.78-.13a5.26,5.26,0,0,0-.68-3C124,1.4,122.46.91,120.2.91a2.64,2.64,0,0,0-1.48.27,2.09,2.09,0,0,0-.55,1l-1.72,6.45a12,12,0,0,0,3.94-.5,5.62,5.62,0,0,0,2-2.56l.81.1L121,13.64l-.79-.15c0-.27.06-.51.07-.71s0-.37,0-.5a2.34,2.34,0,0,0-.86-2.11,6.57,6.57,0,0,0-3.32-.57l-1.91,7.08a5,5,0,0,0-.11.5,3.14,3.14,0,0,0,0,.38.8.8,0,0,0,.31.65,2.25,2.25,0,0,0,1.3.25,12.26,12.26,0,0,0,4.5-.73A8.67,8.67,0,0,0,124.73,13.64ZM144.64,2.19Q142.41,0,138.14,0h-8.42V.75a6.61,6.61,0,0,1,1.71.3c.28.13.41.44.41.93a2.81,2.81,0,0,1-.08.66c0,.25-.12.56-.23.93l-3.56,13a2.78,2.78,0,0,1-1,1.68,3.44,3.44,0,0,1-1.35.4v.75h8.32a13.06,13.06,0,0,0,9.63-3.64,10.49,10.49,0,0,0,3.3-7.7A7.87,7.87,0,0,0,144.64,2.19ZM141.2,13.1q-2.31,5.32-7.48,5.32a2.27,2.27,0,0,1-1.26-.25,1,1,0,0,1-.34-.82,1.62,1.62,0,0,1,0-.3,2.16,2.16,0,0,1,.08-.38l4-14.65a1.63,1.63,0,0,1,.47-.81A2,2,0,0,1,138,.91a4.16,4.16,0,0,1,3.93,1.95,7,7,0,0,1,.72,3.42A16.82,16.82,0,0,1,141.2,13.1Z',\n opacity: 1, strokeColor: '', fillColor: '#192760', width: 127.70402, height: 55.84601, stampFillColor: '#dce3ef', stampStrokeColor: '',\n };\n }\n break;\n case 'Received':\n {\n stampCollection = {\n iconName: 'Received',\n // eslint-disable-next-line max-len\n pathdata: 'M18.17,8.76a5,5,0,0,0,1.57-1.93,5,5,0,0,0,.47-2A3.76,3.76,0,0,0,17.42,1,13,13,0,0,0,13.13.48H4.89v.78a6.49,6.49,0,0,1,1.77.31c.27.12.41.43.41.91a5.87,5.87,0,0,1-.13,1c-.05.2-.12.44-.19.72L3.06,17.64a3,3,0,0,1-.84,1.61,3.36,3.36,0,0,1-1.59.53v.77H9.57v-.77a6.17,6.17,0,0,1-1.8-.32c-.26-.14-.39-.48-.39-1a2.46,2.46,0,0,1,0-.28,1.78,1.78,0,0,1,0-.26l.25-1,1.78-6.25h.84l3.24,9.92h5.66v-.8A2.76,2.76,0,0,1,18,19.36a3.57,3.57,0,0,1-1-1.72l-2.31-6.78c0-.07-.09-.27-.19-.58.87-.2,1.51-.38,1.92-.52A6.56,6.56,0,0,0,18.17,8.76Zm-2.93-2.1a6.19,6.19,0,0,1-1,1.65,3.85,3.85,0,0,1-2.14,1.14,12.92,12.92,0,0,1-2.39.2l1.81-6.87A2.5,2.5,0,0,1,12,1.72a1.27,1.27,0,0,1,.9-.27,2.5,2.5,0,0,1,2.12.83,3.35,3.35,0,0,1,.62,2.09A5.81,5.81,0,0,1,15.24,6.66ZM30.3,2.78,28.52,9.45a12.53,12.53,0,0,0,4.08-.51,5.91,5.91,0,0,0,2-2.66l.84.11-2.23,8.2-.82-.15c0-.28.07-.53.08-.74a5.17,5.17,0,0,0,0-.52A2.43,2.43,0,0,0,31.66,11a6.87,6.87,0,0,0-3.44-.58l-2,7.32a3.61,3.61,0,0,0-.11.51,2.31,2.31,0,0,0,0,.4.83.83,0,0,0,.32.67,2.32,2.32,0,0,0,1.35.26,12.58,12.58,0,0,0,4.65-.76,9,9,0,0,0,4.67-4.23l.73.13-1.77,5.83H19.8v-.83A2.83,2.83,0,0,0,21,19.25a3.09,3.09,0,0,0,.85-1.61L25.54,4.17c.09-.34.16-.65.22-.93a3.35,3.35,0,0,0,.09-.71c0-.5-.13-.82-.4-1a6.34,6.34,0,0,0-1.78-.31V.48H39.82l-1.27,5.7-.81-.13A5.44,5.44,0,0,0,37,3Q35.9,1.42,32.4,1.42a2.69,2.69,0,0,0-1.54.29A2.08,2.08,0,0,0,30.3,2.78ZM56.56,6.1c0-.07,0-.18,0-.33a4.89,4.89,0,0,0-1.12-3.53,3.75,3.75,0,0,0-2.82-1.16c-2.33,0-4.35,1.55-6.07,4.63a17.09,17.09,0,0,0-2.31,8.43c0,2.08.47,3.5,1.43,4.27a4.89,4.89,0,0,0,3.11,1.15,6.84,6.84,0,0,0,4.14-1.45A11.51,11.51,0,0,0,55,16l.91.66A10.08,10.08,0,0,1,52.26,20a9.33,9.33,0,0,1-4.34,1.11A8.56,8.56,0,0,1,42,19a7.25,7.25,0,0,1-2.35-5.67A13.53,13.53,0,0,1,43.22,4a11.19,11.19,0,0,1,8.56-4A12.34,12.34,0,0,1,55,.44,13.17,13.17,0,0,0,56.9.88a1,1,0,0,0,.71-.24A2.94,2.94,0,0,0,58.06,0H59L57.45,7l-.94-.18C56.54,6.42,56.55,6.17,56.56,6.1Zm18,8.49.74.13-1.78,5.83H56.87v-.77a3.31,3.31,0,0,0,1.58-.53,3.09,3.09,0,0,0,.85-1.61L63,4.17c.09-.34.16-.65.22-.93a3.35,3.35,0,0,0,.09-.71c0-.5-.14-.82-.4-1a6.34,6.34,0,0,0-1.78-.31V.48H77.26L76,6.18l-.81-.13A5.44,5.44,0,0,0,74.48,3q-1.14-1.54-4.64-1.54a2.69,2.69,0,0,0-1.54.29,2.08,2.08,0,0,0-.56,1.07L66,9.45A12.53,12.53,0,0,0,70,8.94a5.91,5.91,0,0,0,2-2.66l.84.11-2.23,8.2-.82-.15c0-.28.07-.53.08-.74a5.17,5.17,0,0,0,0-.52A2.43,2.43,0,0,0,69.1,11a6.87,6.87,0,0,0-3.44-.58l-2,7.32a3.61,3.61,0,0,0-.11.51,2.31,2.31,0,0,0,0,.4.83.83,0,0,0,.32.67,2.32,2.32,0,0,0,1.35.26,12.58,12.58,0,0,0,4.65-.76A8.91,8.91,0,0,0,74.52,14.59Zm31-11.45-11.31,18h-1L91,5.83A16.56,16.56,0,0,0,90.12,2c-.2-.34-.71-.56-1.51-.67a3,3,0,0,0-1.31.48,3.08,3.08,0,0,0-.82,1.62l-3.7,13.47-.24,1c0,.1,0,.2-.05.3s0,.2,0,.28c0,.51.14.83.41,1a6.21,6.21,0,0,0,1.77.32v.77H75.72v-.77a3.31,3.31,0,0,0,1.58-.53,3.09,3.09,0,0,0,.85-1.61L81.83,4.17c.11-.38.19-.7.25-.95a3.75,3.75,0,0,0,.08-.69c0-.5-.15-.82-.43-1A6.49,6.49,0,0,0,80,1.26V.48H97.22v.78a4.92,4.92,0,0,0-1.57.18,1,1,0,0,0-.73,1.05,2.81,2.81,0,0,0,0,.29l0,.28,1.56,12,5.67-9a24.21,24.21,0,0,0,1.21-2.14,4.07,4.07,0,0,0,.54-1.68.79.79,0,0,0-.55-.82A5.69,5.69,0,0,0,102,1.26V.48h5.76v.78a3.5,3.5,0,0,0-1,.46A5.16,5.16,0,0,0,105.52,3.14Zm16.83,11.45.73.13-1.77,5.83H104.69v-.77a3.31,3.31,0,0,0,1.58-.53,3,3,0,0,0,.85-1.61l3.69-13.47c.08-.34.16-.65.22-.93a4,4,0,0,0,.08-.71c0-.5-.13-.82-.4-1a6.34,6.34,0,0,0-1.78-.31V.48h16.16l-1.28,5.7-.8-.13A5.43,5.43,0,0,0,122.3,3q-1.14-1.54-4.64-1.54a2.67,2.67,0,0,0-1.53.29,2.16,2.16,0,0,0-.57,1.07l-1.78,6.67a12.53,12.53,0,0,0,4.08-.51,5.91,5.91,0,0,0,2.06-2.66l.83.11-2.22,8.2-.82-.15c0-.28.06-.53.08-.74s0-.38,0-.52a2.45,2.45,0,0,0-.88-2.18,6.9,6.9,0,0,0-3.44-.58l-2,7.32c-.05.18-.08.35-.11.51a3.58,3.58,0,0,0,0,.4.81.81,0,0,0,.32.67,2.28,2.28,0,0,0,1.35.26,12.62,12.62,0,0,0,4.65-.76A9,9,0,0,0,122.35,14.59ZM142.94,2.75Q140.63.48,136.21.48h-8.7v.78a6.66,6.66,0,0,1,1.77.31q.42.21.42,1a2.91,2.91,0,0,1-.08.68q-.08.39-.24,1L125.7,17.62a2.93,2.93,0,0,1-1,1.75,3.54,3.54,0,0,1-1.39.41v.77h8.61a13.5,13.5,0,0,0,10-3.76,10.84,10.84,0,0,0,3.41-8A8.14,8.14,0,0,0,142.94,2.75ZM139.38,14q-2.38,5.51-7.74,5.5a2.35,2.35,0,0,1-1.29-.26,1,1,0,0,1-.36-.85,1.78,1.78,0,0,1,0-.31,2.08,2.08,0,0,1,.08-.39l4.13-15.15a1.76,1.76,0,0,1,.49-.84A2,2,0,0,1,136,1.42a4.32,4.32,0,0,1,4.07,2A7.17,7.17,0,0,1,140.83,7,17.49,17.49,0,0,1,139.38,14Z',\n opacity: 1, strokeColor: '', fillColor: '#192760', width: 127.70402, height: 55.84601, stampFillColor: '#dce3ef', stampStrokeColor: '',\n };\n }\n break;\n case 'Approved':\n {\n stampCollection = {\n iconName: 'Approved',\n // eslint-disable-next-line max-len\n pathdata: 'M19,20.22H10.55v-.71a4.26,4.26,0,0,0,1.79-.41,1.37,1.37,0,0,0,.53-1.29c0-.22,0-.75-.16-1.58,0-.17-.11-.89-.29-2.15H6.06l-1.72,3a4,4,0,0,0-.31.66,2,2,0,0,0-.14.69c0,.41.12.67.37.78a5.42,5.42,0,0,0,1.53.3v.71H0v-.71A4,4,0,0,0,1.21,19a5.68,5.68,0,0,0,1.28-1.56L13.45.07h.76L17,17a4.35,4.35,0,0,0,.7,2.08,2.4,2.4,0,0,0,1.31.44Zm-6.83-7.31L11.13,5.73,6.76,12.91Zm7.18,6.52a3,3,0,0,0,1.33-.49,3,3,0,0,0,.84-1.59L25.19,4.11c.07-.3.14-.6.2-.9a3.14,3.14,0,0,0,.1-.72,1,1,0,0,0-.58-1,5.68,5.68,0,0,0-1.57-.23V.48h8.47a9.68,9.68,0,0,1,3.57.57,4,4,0,0,1,2.71,4,4.93,4.93,0,0,1-2.2,4.22,9.53,9.53,0,0,1-5.69,1.58l-.85,0-1.71-.11L26,16.6l-.25,1a1,1,0,0,0-.05.3,2.83,2.83,0,0,0,0,.29c0,.5.14.81.4.94a6.31,6.31,0,0,0,1.76.31v.76H19.39Zm8.52-9.66.54.06h.48a5.81,5.81,0,0,0,2.3-.36,3.47,3.47,0,0,0,1.4-1.18,6.24,6.24,0,0,0,.86-2,8.94,8.94,0,0,0,.3-2,3.29,3.29,0,0,0-.58-2,2.3,2.3,0,0,0-2-.79,1.23,1.23,0,0,0-.93.28,2.71,2.71,0,0,0-.46,1Zm8,9.69a3.19,3.19,0,0,0,1.55-.52,3,3,0,0,0,.84-1.59L42,4.11c.07-.3.14-.6.2-.9a3.14,3.14,0,0,0,.1-.72,1,1,0,0,0-.58-1,5.68,5.68,0,0,0-1.57-.23V.48h8.47a9.68,9.68,0,0,1,3.57.57,4,4,0,0,1,2.71,4,4.93,4.93,0,0,1-2.2,4.22A9.53,9.53,0,0,1,47,10.87l-.85,0-1.71-.11L42.79,16.6l-.25,1a1.45,1.45,0,0,0,0,.3,2.83,2.83,0,0,0,0,.29c0,.5.14.81.4.94a6.31,6.31,0,0,0,1.76.31v.76h-8.7Zm8.74-9.69.54.06h.48A5.81,5.81,0,0,0,48,9.48a3.41,3.41,0,0,0,1.4-1.18,6.24,6.24,0,0,0,.86-2,9,9,0,0,0,.31-2,3.29,3.29,0,0,0-.59-2,2.3,2.3,0,0,0-2-.79,1.23,1.23,0,0,0-.93.28,2.88,2.88,0,0,0-.46,1Zm7.95,9.69a3.27,3.27,0,0,0,1.56-.52A3.06,3.06,0,0,0,55,17.35L58.64,4.11l.18-.71a4.72,4.72,0,0,0,.13-1c0-.47-.13-.77-.4-.9a6.74,6.74,0,0,0-1.74-.3V.48h8.11A13,13,0,0,1,69.14,1a3.7,3.7,0,0,1,2.74,3.75,4.8,4.8,0,0,1-.46,2,5,5,0,0,1-1.54,1.9,6.55,6.55,0,0,1-1.79,1,19.35,19.35,0,0,1-1.89.52c.1.3.16.49.2.57l2.27,6.66a3.49,3.49,0,0,0,1,1.7,3.08,3.08,0,0,0,1.6.41v.76H65.33l-3.19-9.76h-.83L59.57,16.6l-.25,1a1.87,1.87,0,0,0,0,.25,2.64,2.64,0,0,0,0,.28q0,.8.39,1a5.88,5.88,0,0,0,1.76.32v.76H52.62ZM63.94,9.3a3.79,3.79,0,0,0,2.11-1.13A6,6,0,0,0,67,6.55a5.84,5.84,0,0,0,.44-2.26,3.31,3.31,0,0,0-.61-2,2.47,2.47,0,0,0-2.09-.81,1.25,1.25,0,0,0-.88.26,2.34,2.34,0,0,0-.47,1.05L61.59,9.5A13.42,13.42,0,0,0,63.94,9.3ZM76.39,4.53Q80.26,0,85,0a7.34,7.34,0,0,1,5.23,1.92,6.76,6.76,0,0,1,2,5.19,13.9,13.9,0,0,1-3.62,9.07q-3.86,4.61-8.88,4.6a7.06,7.06,0,0,1-5.13-1.92,6.86,6.86,0,0,1-2-5.14A14,14,0,0,1,76.39,4.53ZM77.3,18a2.56,2.56,0,0,0,2.57,1.78A4.62,4.62,0,0,0,83,18.47,14.42,14.42,0,0,0,86,13.54a27.18,27.18,0,0,0,1.52-4.83,20.67,20.67,0,0,0,.54-4.11,4.38,4.38,0,0,0-.73-2.55A2.62,2.62,0,0,0,85,1q-3.68,0-6.19,6.54a24.29,24.29,0,0,0-1.9,8.26A5.91,5.91,0,0,0,77.3,18ZM102.23.48v.76a5.19,5.19,0,0,0-1.55.17,1,1,0,0,0-.72,1,2.46,2.46,0,0,0,0,.28L100,3l1.52,11.76L107.11,6c.44-.71.84-1.41,1.2-2.11a4.06,4.06,0,0,0,.53-1.66.79.79,0,0,0-.55-.81,6.11,6.11,0,0,0-1.35-.14V.48h5.67v.76a3.31,3.31,0,0,0-1,.45,5.33,5.33,0,0,0-1.18,1.4L99.26,20.78h-.94l-2.25-15A15.49,15.49,0,0,0,95.24,2c-.22-.39-.84-.62-1.83-.71V.48Zm7.35,19a3.19,3.19,0,0,0,1.55-.52,3,3,0,0,0,.84-1.59l3.62-13.24c.09-.34.16-.64.22-.92a3.27,3.27,0,0,0,.09-.7c0-.5-.14-.81-.4-.94a6.13,6.13,0,0,0-1.75-.31V.48h15.89l-1.25,5.6L127.6,6a5.32,5.32,0,0,0-.7-3q-1.12-1.52-4.56-1.51a2.61,2.61,0,0,0-1.51.28,2.12,2.12,0,0,0-.56,1.06L118.52,9.3a12.1,12.1,0,0,0,4-.51,5.8,5.8,0,0,0,2-2.61l.82.1-2.19,8.07-.81-.14c0-.28.07-.52.08-.73s0-.37,0-.51a2.4,2.4,0,0,0-.87-2.15,6.76,6.76,0,0,0-3.38-.57l-1.94,7.2a3.34,3.34,0,0,0-.11.51,3.67,3.67,0,0,0,0,.39.81.81,0,0,0,.32.66,2.3,2.3,0,0,0,1.33.26,12.39,12.39,0,0,0,4.57-.75A8.84,8.84,0,0,0,127,14.35l.72.13-1.74,5.74H109.58Zm18.27,0a3.27,3.27,0,0,0,1.37-.41,2.85,2.85,0,0,0,1-1.71l3.63-13.23c.1-.38.18-.69.23-1a3,3,0,0,0,.09-.67c0-.5-.15-.81-.42-.94A6.38,6.38,0,0,0,132,1.24V.48h8.57c2.9,0,5.1.74,6.62,2.22a8,8,0,0,1,2.26,6,10.72,10.72,0,0,1-3.35,7.84,13.3,13.3,0,0,1-9.8,3.7h-8.47ZM144.4,3.39a4.23,4.23,0,0,0-4-2,2,2,0,0,0-1.29.31,1.74,1.74,0,0,0-.48.83l-4.07,14.9a3.24,3.24,0,0,0-.07.39,1.69,1.69,0,0,0,0,.3,1,1,0,0,0,.36.84,2.27,2.27,0,0,0,1.27.26q5.26,0,7.62-5.42a17.25,17.25,0,0,0,1.43-6.94A7,7,0,0,0,144.4,3.39Z',\n opacity: 1, strokeColor: '', fillColor: '#516c30', width: 127.70402, height: 55.84601, stampFillColor: '#e6eddf', stampStrokeColor: '',\n };\n }\n break;\n case 'Confidential':\n {\n stampCollection = {\n iconName: 'Confidential',\n // eslint-disable-next-line max-len\n pathdata: 'M13.71,0,12.63,6.9,12,6.73c0-.41,0-.66,0-.73s0-.18,0-.32a6.16,6.16,0,0,0-.79-3.47,2.37,2.37,0,0,0-2-1.14c-1.64,0-3.07,1.51-4.29,4.55a22,22,0,0,0-1.64,8.29c0,2,.34,3.44,1,4.2A3,3,0,0,0,6.5,19.24a4.08,4.08,0,0,0,2.93-1.43,10.47,10.47,0,0,0,1.5-2.09l.64.65A8.84,8.84,0,0,1,9,19.72a5.24,5.24,0,0,1-3.08,1.09,5.16,5.16,0,0,1-4.21-2.08A8.68,8.68,0,0,1,0,13.16,16.5,16.5,0,0,1,2.55,3.92Q5.1,0,8.61,0a6.35,6.35,0,0,1,2.25.43,6.62,6.62,0,0,0,1.38.43.55.55,0,0,0,.5-.23A2.61,2.61,0,0,0,13.06,0ZM27.49,7.11a17.19,17.19,0,0,1-2.61,9.07q-2.77,4.61-6.39,4.6a4.42,4.42,0,0,1-3.7-1.92,8.47,8.47,0,0,1-1.43-5.14A17.31,17.31,0,0,1,16,4.53C17.88,1.51,20,0,22.25,0A4.53,4.53,0,0,1,26,1.92,8.27,8.27,0,0,1,27.49,7.11ZM24.42,4.6a5.71,5.71,0,0,0-.53-2.55A1.76,1.76,0,0,0,22.24,1q-2.65,0-4.45,6.54a31.93,31.93,0,0,0-1.37,8.26A8.15,8.15,0,0,0,16.67,18c.34,1.19,1,1.78,1.85,1.78a2.9,2.9,0,0,0,2.28-1.29,15.85,15.85,0,0,0,2.13-4.93A34.08,34.08,0,0,0,24,8.71,28.5,28.5,0,0,0,24.42,4.6ZM42.75,1.3l.3-.06V.48H38.69v.76a2.55,2.55,0,0,1,1.16.33,1.8,1.8,0,0,1,.51,1.48,10.11,10.11,0,0,1-.13,1.34c-.06.41-.14.87-.24,1.39l-1.65,8.34L33.73.48H29.45v.76a2.66,2.66,0,0,1,1,.24,1.88,1.88,0,0,1,.65,1.06l.09.3L28.81,15a20.72,20.72,0,0,1-1,3.61,1.61,1.61,0,0,1-1.19.9v.76h4.42v-.76a2.55,2.55,0,0,1-1.13-.32,1.67,1.67,0,0,1-.56-1.44,7.13,7.13,0,0,1,.05-.79c.06-.43.17-1.09.34-2L31.89,4.38l5.52,16.33h.52l3-15a22.58,22.58,0,0,1,.87-3.42A1.42,1.42,0,0,1,42.75,1.3ZM55.53.48H44.23v.76a3.63,3.63,0,0,1,1.26.3c.19.13.29.42.29.9a7.08,7.08,0,0,1-.09,1c0,.2-.08.44-.13.71L43,17.34a3.47,3.47,0,0,1-.59,1.58,1.91,1.91,0,0,1-1.13.54v.76h6.29v-.76a2.13,2.13,0,0,1-1-.19A1.23,1.23,0,0,1,46,18.1c0-.1,0-.21,0-.31s0-.23.05-.35l1.4-7.21a3.15,3.15,0,0,1,2.37.64A3.21,3.21,0,0,1,50.38,13c0,.11,0,.28,0,.49s0,.46-.06.75l.58.14,1.58-8.07-.59-.1a5.79,5.79,0,0,1-1.43,2.59,6.17,6.17,0,0,1-2.77.52l1.26-6.54a2.06,2.06,0,0,1,.42-1.08,1.39,1.39,0,0,1,1-.26c1.62,0,2.7.51,3.24,1.54a7.11,7.11,0,0,1,.49,3l.57.13Zm3.69,17.71c0-.08,0-.17,0-.27s0-.2,0-.3l.17-1L62.06,3.36a3.44,3.44,0,0,1,.59-1.6,2,2,0,0,1,1.12-.52V.48H57.44v.76a3.47,3.47,0,0,1,1.26.31c.2.13.3.44.3.94a4.25,4.25,0,0,1-.06.67c0,.26-.09.57-.17,1L56.16,17.35a3.52,3.52,0,0,1-.6,1.59,2,2,0,0,1-1.12.52v.76h6.33v-.76a3.3,3.3,0,0,1-1.26-.32C59.32,19,59.22,18.69,59.22,18.19Zm18-9.51a13,13,0,0,1-2.42,7.84,8.31,8.31,0,0,1-7,3.7H61.6v-.76a2,2,0,0,0,1-.41,3.14,3.14,0,0,0,.73-1.71L65.93,4.11c.08-.38.13-.69.17-1a4.36,4.36,0,0,0,.06-.67c0-.5-.1-.81-.3-.94a3.47,3.47,0,0,0-1.26-.31V.48h6.17A5.52,5.52,0,0,1,75.53,2.7,9.91,9.91,0,0,1,77.17,8.68ZM74,6.87a9.22,9.22,0,0,0-.53-3.48,2.91,2.91,0,0,0-2.87-2,1.12,1.12,0,0,0-.93.31,1.81,1.81,0,0,0-.35.83l-2.93,14.9a3,3,0,0,0-.05.39c0,.11,0,.21,0,.3a1.17,1.17,0,0,0,.25.84,1.3,1.3,0,0,0,.92.26q3.8,0,5.49-5.42A23.26,23.26,0,0,0,74,6.87Zm11.3,11.65a6.72,6.72,0,0,1-3.29.75,1.3,1.3,0,0,1-1-.26,1,1,0,0,1-.23-.66,3.28,3.28,0,0,1,0-.39,4.88,4.88,0,0,1,.08-.51l1.4-7.2a3.73,3.73,0,0,1,2.43.57A2.87,2.87,0,0,1,85.43,13c0,.14,0,.31,0,.51s0,.45-.06.73l.59.14,1.57-8.07-.59-.1a5.79,5.79,0,0,1-1.46,2.61,6.5,6.5,0,0,1-2.89.51l1.26-6.56a2.41,2.41,0,0,1,.41-1.06c.16-.19.52-.28,1.08-.28,1.65,0,2.75.5,3.29,1.51a7,7,0,0,1,.5,3l.57.13.9-5.6H79.14v.76a3.35,3.35,0,0,1,1.26.31c.19.13.29.44.29.94a5,5,0,0,1-.07.7c0,.28-.09.58-.15.92L77.86,17.35a3.52,3.52,0,0,1-.6,1.59,2,2,0,0,1-1.13.52v.76H87.91l1.25-5.74-.52-.13A7.69,7.69,0,0,1,85.34,18.52ZM105.8,1.24V.48h-4.37v.76a2.55,2.55,0,0,1,1.16.33,1.77,1.77,0,0,1,.52,1.48A10.58,10.58,0,0,1,103,4.39c-.06.41-.13.87-.23,1.39l-1.66,8.34L96.47.48H92.19v.76a2.61,2.61,0,0,1,1,.24,1.83,1.83,0,0,1,.65,1.06l.1.3L91.55,15a19,19,0,0,1-1,3.61,1.61,1.61,0,0,1-1.19.9v.76h4.42v-.76a2.59,2.59,0,0,1-1.13-.32,1.67,1.67,0,0,1-.56-1.44,7.13,7.13,0,0,1,0-.79c.06-.43.17-1.09.35-2L94.63,4.38l5.52,16.33h.53l2.95-15a22.93,22.93,0,0,1,.86-3.42,1.42,1.42,0,0,1,1-1Zm11.4,4.9L118,.48H106.28l-.82,5,.55.2a8,8,0,0,1,1.87-3.16,3.7,3.7,0,0,1,2.7-1.06l-3.12,15.85a2.94,2.94,0,0,1-.87,1.85,2.48,2.48,0,0,1-1.34.26v.76h7v-.76a4.24,4.24,0,0,1-1.43-.3c-.23-.13-.34-.45-.34-.95a2.26,2.26,0,0,1,0-.26c0-.09,0-.2,0-.33l.18-1,3-15.1a2.73,2.73,0,0,1,1.79.63c.75.7,1.13,2,1.17,3.94Zm3.57,12.05c0-.08,0-.17,0-.27s0-.2,0-.3l.17-1,2.62-13.24a3.44,3.44,0,0,1,.59-1.6,2,2,0,0,1,1.12-.52V.48H119v.76a3.47,3.47,0,0,1,1.26.31c.2.13.3.44.3.94a4.25,4.25,0,0,1-.06.67c0,.26-.09.57-.17,1l-2.61,13.24a3.52,3.52,0,0,1-.6,1.59,2,2,0,0,1-1.12.52v.76h6.33v-.76a3.36,3.36,0,0,1-1.26-.32C120.87,19,120.77,18.69,120.77,18.19Zm28.86-3.71-1.24,5.74H130.3v-.71a2.48,2.48,0,0,0,1.3-.41,1.64,1.64,0,0,0,.37-1.29c0-.22,0-.75-.11-1.58,0-.17-.08-.89-.21-2.15h-4.58l-1.24,3a5.1,5.1,0,0,0-.22.66,2.45,2.45,0,0,0-.1.69c0,.41.09.67.26.78a3.05,3.05,0,0,0,1.11.3v.71h-4.17v-.71a2.66,2.66,0,0,0,.87-.53,5.79,5.79,0,0,0,.92-1.56L132.39.07h.55L135,17a5.53,5.53,0,0,0,.5,2.08,1.67,1.67,0,0,0,1.14.46v0a1.93,1.93,0,0,0,1.12-.52,3.52,3.52,0,0,0,.6-1.6l2.61-13.23c.08-.38.13-.69.17-1a4.36,4.36,0,0,0,.06-.67c0-.5-.1-.81-.3-.94a3.47,3.47,0,0,0-1.26-.31V.48h6.73v.76a3.23,3.23,0,0,0-1.49.48,3.06,3.06,0,0,0-.64,1.64l-2.77,14.08c0,.16-.05.3-.07.44s0,.29,0,.47a.79.79,0,0,0,.31.71,1.55,1.55,0,0,0,.87.21,6.83,6.83,0,0,0,3.79-1,8.42,8.42,0,0,0,2.81-3.88ZM131.5,12.91l-.78-7.18-3.14,7.18Z',\n opacity: 1, strokeColor: '', fillColor: '#192760', width: 127.70402, height: 55.84601, stampFillColor: '#dce3ef', stampStrokeColor: '',\n };\n }\n break;\n case 'NotApproved':\n case 'Not Approved':\n {\n stampCollection = {\n iconName: 'Not Approved',\n // eslint-disable-next-line max-len\n pathdata: 'M0,19.46a1.56,1.56,0,0,0,1.16-.9A19.84,19.84,0,0,0,2.1,15L4.42,2.84l-.09-.3a1.82,1.82,0,0,0-.64-1.06,2.41,2.41,0,0,0-1-.24V.48H6.88l4.49,13.64L13,5.78c.09-.52.17-1,.22-1.39a10.11,10.11,0,0,0,.13-1.34,1.83,1.83,0,0,0-.49-1.48,2.49,2.49,0,0,0-1.13-.33V.48H16v.76l-.29.06a1.42,1.42,0,0,0-1,1,23.7,23.7,0,0,0-.84,3.42L11,20.71h-.51L5.1,4.38,3,15c-.17.87-.28,1.53-.33,2a5.32,5.32,0,0,0,0,.79,1.69,1.69,0,0,0,.54,1.44,2.48,2.48,0,0,0,1.1.32v.76H0ZM17.73,4.53C19.54,1.51,21.55,0,23.79,0a4.4,4.4,0,0,1,3.66,1.92,8.52,8.52,0,0,1,1.43,5.19,17.56,17.56,0,0,1-2.53,9.07q-2.7,4.61-6.21,4.6a4.24,4.24,0,0,1-3.6-1.92,8.6,8.6,0,0,1-1.39-5.14A17.68,17.68,0,0,1,17.73,4.53ZM18.37,18c.33,1.19.93,1.78,1.8,1.78a2.83,2.83,0,0,0,2.22-1.29,16.41,16.41,0,0,0,2.06-4.93,35.53,35.53,0,0,0,1.06-4.83A28.26,28.26,0,0,0,25.9,4.6a5.86,5.86,0,0,0-.52-2.55A1.7,1.7,0,0,0,23.78,1Q21.2,1,19.45,7.53a33,33,0,0,0-1.33,8.26A8.15,8.15,0,0,0,18.37,18Zm11.08,1.48a2.34,2.34,0,0,0,1.3-.26,3,3,0,0,0,.85-1.85l3-15.85A3.54,3.54,0,0,0,32,2.56a8,8,0,0,0-1.82,3.16l-.53-.2.8-5H41.81l-.74,5.66-.54-.07c0-1.92-.41-3.24-1.13-3.94a2.6,2.6,0,0,0-1.74-.63L34.79,16.6l-.17,1a2.43,2.43,0,0,0,0,.33,2.26,2.26,0,0,0,0,.26c0,.5.11.82.33.95a3.94,3.94,0,0,0,1.39.3v.76H29.45Zm26.65.76H50.18v-.71a2.28,2.28,0,0,0,1.25-.41,1.64,1.64,0,0,0,.37-1.29c0-.22,0-.75-.11-1.58,0-.17-.08-.89-.2-2.15H47l-1.2,3c-.08.2-.15.42-.22.66a2.84,2.84,0,0,0-.09.69c0,.41.08.67.25.78a2.91,2.91,0,0,0,1.08.3v.71H42.79v-.71a2.44,2.44,0,0,0,.85-.53,5.59,5.59,0,0,0,.9-1.56L52.21.07h.53l2,16.88A5.46,5.46,0,0,0,55.2,19a1.36,1.36,0,0,0,.9.43Zm-4.76-7.31-.76-7.18-3,7.18Zm4.95,6.53a1.82,1.82,0,0,0,1-.5,3.56,3.56,0,0,0,.58-1.59L60.42,4.11c.06-.3.1-.6.15-.9a5.46,5.46,0,0,0,.06-.72c0-.52-.13-.86-.4-1a2.88,2.88,0,0,0-1.1-.23V.48h5.93a5,5,0,0,1,2.5.57c1.26.73,1.9,2.07,1.9,4a5.81,5.81,0,0,1-1.54,4.22,5.32,5.32,0,0,1-4,1.58l-.59,0-1.2-.11L61,16.6l-.17,1a2.72,2.72,0,0,0,0,.3,2.81,2.81,0,0,0,0,.29c0,.5.09.81.28.94a3.26,3.26,0,0,0,1.23.31v.76h-6Zm6-9.67.38.06H63a3,3,0,0,0,1.62-.36,2.87,2.87,0,0,0,1-1.18,7.28,7.28,0,0,0,.6-2,11.67,11.67,0,0,0,.22-2,4.4,4.4,0,0,0-.41-2,1.44,1.44,0,0,0-1.39-.79.71.71,0,0,0-.65.28,3.7,3.7,0,0,0-.32,1Zm5.61,9.69A1.86,1.86,0,0,0,69,18.94a3.54,3.54,0,0,0,.59-1.59L72.15,4.11q.09-.45.15-.9a5.73,5.73,0,0,0,.07-.72,1.1,1.1,0,0,0-.41-1,2.88,2.88,0,0,0-1.1-.23V.48h5.93a5,5,0,0,1,2.5.57c1.27.73,1.9,2.07,1.9,4a5.77,5.77,0,0,1-1.54,4.22,5.31,5.31,0,0,1-4,1.58l-.6,0-1.2-.11L72.74,16.6l-.17,1a2.72,2.72,0,0,0,0,.3c0,.1,0,.19,0,.29,0,.5.1.81.29.94a3.15,3.15,0,0,0,1.23.31v.76h-6.1Zm6.12-9.69.38.06h.33a3,3,0,0,0,1.62-.36,3,3,0,0,0,1-1.18,7.67,7.67,0,0,0,.59-2,11.67,11.67,0,0,0,.22-2,4.4,4.4,0,0,0-.41-2,1.43,1.43,0,0,0-1.38-.79.73.73,0,0,0-.66.28,3.7,3.7,0,0,0-.32,1Zm5.57,9.69a1.9,1.9,0,0,0,1.09-.52,3.56,3.56,0,0,0,.58-1.59L83.84,4.11c0-.27.09-.51.13-.71a7.08,7.08,0,0,0,.09-1c0-.47-.1-.77-.28-.9a3.53,3.53,0,0,0-1.22-.3V.48h5.68a6.57,6.57,0,0,1,3,.53q1.92,1,1.92,3.75a6.79,6.79,0,0,1-.32,2,5.23,5.23,0,0,1-1.08,1.9,4.56,4.56,0,0,1-1.25,1,11.62,11.62,0,0,1-1.33.52c.07.3.12.49.14.57l1.59,6.66a4.07,4.07,0,0,0,.69,1.7,1.72,1.72,0,0,0,1.13.41v.76H88.52l-2.23-9.76h-.58L84.49,16.6l-.17,1a1,1,0,0,0,0,.25,2.62,2.62,0,0,0,0,.28c0,.53.09.86.26,1a3.11,3.11,0,0,0,1.24.32v.76H79.63ZM87.55,9.3A2.59,2.59,0,0,0,89,8.17a7.24,7.24,0,0,0,.66-1.62A8.18,8.18,0,0,0,90,4.29a4.32,4.32,0,0,0-.43-2,1.5,1.5,0,0,0-1.45-.81.71.71,0,0,0-.62.26,2.78,2.78,0,0,0-.33,1.05L85.91,9.5A6.63,6.63,0,0,0,87.55,9.3Zm8.72-4.77Q99,0,102.32,0A4.37,4.37,0,0,1,106,1.92a8.46,8.46,0,0,1,1.44,5.19,17.58,17.58,0,0,1-2.54,9.07q-2.7,4.61-6.21,4.6a4.27,4.27,0,0,1-3.6-1.92,8.67,8.67,0,0,1-1.38-5.14A17.68,17.68,0,0,1,96.27,4.53ZM96.9,18c.33,1.19.93,1.78,1.8,1.78a2.83,2.83,0,0,0,2.22-1.29A16.63,16.63,0,0,0,103,13.54a37.1,37.1,0,0,0,1.06-4.83,29.49,29.49,0,0,0,.38-4.11,5.86,5.86,0,0,0-.51-2.55A1.71,1.71,0,0,0,102.31,1C100.6,1,99.15,3.17,98,7.53a33.42,33.42,0,0,0-1.33,8.26A8.57,8.57,0,0,0,96.9,18ZM114.35.48v.76a2.57,2.57,0,0,0-1.08.17,1.07,1.07,0,0,0-.5,1,2.53,2.53,0,0,0,0,.28,2.64,2.64,0,0,0,0,.28l1.07,11.76L117.77,6c.31-.71.59-1.41.84-2.11A5.25,5.25,0,0,0,119,2.19a.85.85,0,0,0-.38-.81,3.09,3.09,0,0,0-.95-.14V.48h4v.76a2.08,2.08,0,0,0-.73.45,5.35,5.35,0,0,0-.82,1.4l-7.79,17.69h-.66L110,5.74A22,22,0,0,0,109.46,2c-.16-.39-.58-.62-1.28-.71V.48Zm5.15,19a1.83,1.83,0,0,0,1.08-.52,3.42,3.42,0,0,0,.59-1.59l2.54-13.24c.06-.34.11-.64.15-.92a4.83,4.83,0,0,0,.06-.7c0-.5-.09-.81-.28-.94a3.14,3.14,0,0,0-1.22-.31V.48h11.12l-.87,5.6L132.11,6a7,7,0,0,0-.49-3c-.52-1-1.59-1.51-3.19-1.51-.55,0-.9.09-1.06.28A2.44,2.44,0,0,0,127,2.74L125.76,9.3a6.21,6.21,0,0,0,2.81-.51A6,6,0,0,0,130,6.18l.58.1L129,14.35l-.56-.14c0-.28,0-.52,0-.73s0-.37,0-.51a2.92,2.92,0,0,0-.61-2.15,3.55,3.55,0,0,0-2.37-.57l-1.36,7.2a4.79,4.79,0,0,0-.07.51,3.28,3.28,0,0,0,0,.39,1,1,0,0,0,.22.66,1.24,1.24,0,0,0,.93.26,6.43,6.43,0,0,0,3.21-.75,7.67,7.67,0,0,0,3.21-4.17l.5.13-1.22,5.74H119.5Zm12.79,0a1.87,1.87,0,0,0,1-.41,3.23,3.23,0,0,0,.71-1.71L136.5,4.11c.07-.38.13-.69.17-1a5.89,5.89,0,0,0,.05-.67c0-.5-.1-.81-.29-.94a3.32,3.32,0,0,0-1.22-.31V.48h6a5.35,5.35,0,0,1,4.63,2.22,10.11,10.11,0,0,1,1.58,6,13.3,13.3,0,0,1-2.34,7.84,8,8,0,0,1-6.86,3.7h-5.93ZM143.87,3.39a2.84,2.84,0,0,0-2.79-2,1.08,1.08,0,0,0-.91.31,1.93,1.93,0,0,0-.34.83L137,17.44a3.1,3.1,0,0,0-.06.39c0,.11,0,.21,0,.3a1.22,1.22,0,0,0,.24.84,1.26,1.26,0,0,0,.9.26q3.67,0,5.33-5.42a23.91,23.91,0,0,0,1-6.94A9.45,9.45,0,0,0,143.87,3.39Z',\n opacity: 1, strokeColor: '', fillColor: '#8a251a', width: 127.70402, height: 55.84601, stampFillColor: '#f6dedd', stampStrokeColor: ''\n };\n }\n break;\n }\n if (stampCollection) {\n stampCollection.modifiedDate = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n this.currentStampAnnotation = stampCollection;\n return stampCollection;\n }\n }\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n StampAnnotation.prototype.retrievestampAnnotation = function (icontype) {\n if (icontype) {\n var stampCollection = void 0;\n switch (icontype.trim()) {\n // eslint-disable-next-line\n case 'Approved':\n {\n stampCollection = {\n iconName: 'Approved',\n // eslint-disable-next-line max-len\n pathdata: 'M19,20.22H10.55v-.71a4.26,4.26,0,0,0,1.79-.41,1.37,1.37,0,0,0,.53-1.29c0-.22,0-.75-.16-1.58,0-.17-.11-.89-.29-2.15H6.06l-1.72,3a4,4,0,0,0-.31.66,2,2,0,0,0-.14.69c0,.41.12.67.37.78a5.42,5.42,0,0,0,1.53.3v.71H0v-.71A4,4,0,0,0,1.21,19a5.68,5.68,0,0,0,1.28-1.56L13.45.07h.76L17,17a4.35,4.35,0,0,0,.7,2.08,2.4,2.4,0,0,0,1.31.44Zm-6.83-7.31L11.13,5.73,6.76,12.91Zm7.18,6.52a3,3,0,0,0,1.33-.49,3,3,0,0,0,.84-1.59L25.19,4.11c.07-.3.14-.6.2-.9a3.14,3.14,0,0,0,.1-.72,1,1,0,0,0-.58-1,5.68,5.68,0,0,0-1.57-.23V.48h8.47a9.68,9.68,0,0,1,3.57.57,4,4,0,0,1,2.71,4,4.93,4.93,0,0,1-2.2,4.22,9.53,9.53,0,0,1-5.69,1.58l-.85,0-1.71-.11L26,16.6l-.25,1a1,1,0,0,0-.05.3,2.83,2.83,0,0,0,0,.29c0,.5.14.81.4.94a6.31,6.31,0,0,0,1.76.31v.76H19.39Zm8.52-9.66.54.06h.48a5.81,5.81,0,0,0,2.3-.36,3.47,3.47,0,0,0,1.4-1.18,6.24,6.24,0,0,0,.86-2,8.94,8.94,0,0,0,.3-2,3.29,3.29,0,0,0-.58-2,2.3,2.3,0,0,0-2-.79,1.23,1.23,0,0,0-.93.28,2.71,2.71,0,0,0-.46,1Zm8,9.69a3.19,3.19,0,0,0,1.55-.52,3,3,0,0,0,.84-1.59L42,4.11c.07-.3.14-.6.2-.9a3.14,3.14,0,0,0,.1-.72,1,1,0,0,0-.58-1,5.68,5.68,0,0,0-1.57-.23V.48h8.47a9.68,9.68,0,0,1,3.57.57,4,4,0,0,1,2.71,4,4.93,4.93,0,0,1-2.2,4.22A9.53,9.53,0,0,1,47,10.87l-.85,0-1.71-.11L42.79,16.6l-.25,1a1.45,1.45,0,0,0,0,.3,2.83,2.83,0,0,0,0,.29c0,.5.14.81.4.94a6.31,6.31,0,0,0,1.76.31v.76h-8.7Zm8.74-9.69.54.06h.48A5.81,5.81,0,0,0,48,9.48a3.41,3.41,0,0,0,1.4-1.18,6.24,6.24,0,0,0,.86-2,9,9,0,0,0,.31-2,3.29,3.29,0,0,0-.59-2,2.3,2.3,0,0,0-2-.79,1.23,1.23,0,0,0-.93.28,2.88,2.88,0,0,0-.46,1Zm7.95,9.69a3.27,3.27,0,0,0,1.56-.52A3.06,3.06,0,0,0,55,17.35L58.64,4.11l.18-.71a4.72,4.72,0,0,0,.13-1c0-.47-.13-.77-.4-.9a6.74,6.74,0,0,0-1.74-.3V.48h8.11A13,13,0,0,1,69.14,1a3.7,3.7,0,0,1,2.74,3.75,4.8,4.8,0,0,1-.46,2,5,5,0,0,1-1.54,1.9,6.55,6.55,0,0,1-1.79,1,19.35,19.35,0,0,1-1.89.52c.1.3.16.49.2.57l2.27,6.66a3.49,3.49,0,0,0,1,1.7,3.08,3.08,0,0,0,1.6.41v.76H65.33l-3.19-9.76h-.83L59.57,16.6l-.25,1a1.87,1.87,0,0,0,0,.25,2.64,2.64,0,0,0,0,.28q0,.8.39,1a5.88,5.88,0,0,0,1.76.32v.76H52.62ZM63.94,9.3a3.79,3.79,0,0,0,2.11-1.13A6,6,0,0,0,67,6.55a5.84,5.84,0,0,0,.44-2.26,3.31,3.31,0,0,0-.61-2,2.47,2.47,0,0,0-2.09-.81,1.25,1.25,0,0,0-.88.26,2.34,2.34,0,0,0-.47,1.05L61.59,9.5A13.42,13.42,0,0,0,63.94,9.3ZM76.39,4.53Q80.26,0,85,0a7.34,7.34,0,0,1,5.23,1.92,6.76,6.76,0,0,1,2,5.19,13.9,13.9,0,0,1-3.62,9.07q-3.86,4.61-8.88,4.6a7.06,7.06,0,0,1-5.13-1.92,6.86,6.86,0,0,1-2-5.14A14,14,0,0,1,76.39,4.53ZM77.3,18a2.56,2.56,0,0,0,2.57,1.78A4.62,4.62,0,0,0,83,18.47,14.42,14.42,0,0,0,86,13.54a27.18,27.18,0,0,0,1.52-4.83,20.67,20.67,0,0,0,.54-4.11,4.38,4.38,0,0,0-.73-2.55A2.62,2.62,0,0,0,85,1q-3.68,0-6.19,6.54a24.29,24.29,0,0,0-1.9,8.26A5.91,5.91,0,0,0,77.3,18ZM102.23.48v.76a5.19,5.19,0,0,0-1.55.17,1,1,0,0,0-.72,1,2.46,2.46,0,0,0,0,.28L100,3l1.52,11.76L107.11,6c.44-.71.84-1.41,1.2-2.11a4.06,4.06,0,0,0,.53-1.66.79.79,0,0,0-.55-.81,6.11,6.11,0,0,0-1.35-.14V.48h5.67v.76a3.31,3.31,0,0,0-1,.45,5.33,5.33,0,0,0-1.18,1.4L99.26,20.78h-.94l-2.25-15A15.49,15.49,0,0,0,95.24,2c-.22-.39-.84-.62-1.83-.71V.48Zm7.35,19a3.19,3.19,0,0,0,1.55-.52,3,3,0,0,0,.84-1.59l3.62-13.24c.09-.34.16-.64.22-.92a3.27,3.27,0,0,0,.09-.7c0-.5-.14-.81-.4-.94a6.13,6.13,0,0,0-1.75-.31V.48h15.89l-1.25,5.6L127.6,6a5.32,5.32,0,0,0-.7-3q-1.12-1.52-4.56-1.51a2.61,2.61,0,0,0-1.51.28,2.12,2.12,0,0,0-.56,1.06L118.52,9.3a12.1,12.1,0,0,0,4-.51,5.8,5.8,0,0,0,2-2.61l.82.1-2.19,8.07-.81-.14c0-.28.07-.52.08-.73s0-.37,0-.51a2.4,2.4,0,0,0-.87-2.15,6.76,6.76,0,0,0-3.38-.57l-1.94,7.2a3.34,3.34,0,0,0-.11.51,3.67,3.67,0,0,0,0,.39.81.81,0,0,0,.32.66,2.3,2.3,0,0,0,1.33.26,12.39,12.39,0,0,0,4.57-.75A8.84,8.84,0,0,0,127,14.35l.72.13-1.74,5.74H109.58Zm18.27,0a3.27,3.27,0,0,0,1.37-.41,2.85,2.85,0,0,0,1-1.71l3.63-13.23c.1-.38.18-.69.23-1a3,3,0,0,0,.09-.67c0-.5-.15-.81-.42-.94A6.38,6.38,0,0,0,132,1.24V.48h8.57c2.9,0,5.1.74,6.62,2.22a8,8,0,0,1,2.26,6,10.72,10.72,0,0,1-3.35,7.84,13.3,13.3,0,0,1-9.8,3.7h-8.47ZM144.4,3.39a4.23,4.23,0,0,0-4-2,2,2,0,0,0-1.29.31,1.74,1.74,0,0,0-.48.83l-4.07,14.9a3.24,3.24,0,0,0-.07.39,1.69,1.69,0,0,0,0,.3,1,1,0,0,0,.36.84,2.27,2.27,0,0,0,1.27.26q5.26,0,7.62-5.42a17.25,17.25,0,0,0,1.43-6.94A7,7,0,0,0,144.4,3.39Z',\n opacity: 1, strokeColor: '', fillColor: '#516c30', width: 149.474, height: 20.783, stampFillColor: '#e6eddf', stampStrokeColor: '',\n };\n }\n break;\n case 'Confidential':\n {\n stampCollection = {\n iconName: 'Confidential',\n // eslint-disable-next-line max-len\n pathdata: 'M13.71,0,12.63,6.9,12,6.73c0-.41,0-.66,0-.73s0-.18,0-.32a6.16,6.16,0,0,0-.79-3.47,2.37,2.37,0,0,0-2-1.14c-1.64,0-3.07,1.51-4.29,4.55a22,22,0,0,0-1.64,8.29c0,2,.34,3.44,1,4.2A3,3,0,0,0,6.5,19.24a4.08,4.08,0,0,0,2.93-1.43,10.47,10.47,0,0,0,1.5-2.09l.64.65A8.84,8.84,0,0,1,9,19.72a5.24,5.24,0,0,1-3.08,1.09,5.16,5.16,0,0,1-4.21-2.08A8.68,8.68,0,0,1,0,13.16,16.5,16.5,0,0,1,2.55,3.92Q5.1,0,8.61,0a6.35,6.35,0,0,1,2.25.43,6.62,6.62,0,0,0,1.38.43.55.55,0,0,0,.5-.23A2.61,2.61,0,0,0,13.06,0ZM27.49,7.11a17.19,17.19,0,0,1-2.61,9.07q-2.77,4.61-6.39,4.6a4.42,4.42,0,0,1-3.7-1.92,8.47,8.47,0,0,1-1.43-5.14A17.31,17.31,0,0,1,16,4.53C17.88,1.51,20,0,22.25,0A4.53,4.53,0,0,1,26,1.92,8.27,8.27,0,0,1,27.49,7.11ZM24.42,4.6a5.71,5.71,0,0,0-.53-2.55A1.76,1.76,0,0,0,22.24,1q-2.65,0-4.45,6.54a31.93,31.93,0,0,0-1.37,8.26A8.15,8.15,0,0,0,16.67,18c.34,1.19,1,1.78,1.85,1.78a2.9,2.9,0,0,0,2.28-1.29,15.85,15.85,0,0,0,2.13-4.93A34.08,34.08,0,0,0,24,8.71,28.5,28.5,0,0,0,24.42,4.6ZM42.75,1.3l.3-.06V.48H38.69v.76a2.55,2.55,0,0,1,1.16.33,1.8,1.8,0,0,1,.51,1.48,10.11,10.11,0,0,1-.13,1.34c-.06.41-.14.87-.24,1.39l-1.65,8.34L33.73.48H29.45v.76a2.66,2.66,0,0,1,1,.24,1.88,1.88,0,0,1,.65,1.06l.09.3L28.81,15a20.72,20.72,0,0,1-1,3.61,1.61,1.61,0,0,1-1.19.9v.76h4.42v-.76a2.55,2.55,0,0,1-1.13-.32,1.67,1.67,0,0,1-.56-1.44,7.13,7.13,0,0,1,.05-.79c.06-.43.17-1.09.34-2L31.89,4.38l5.52,16.33h.52l3-15a22.58,22.58,0,0,1,.87-3.42A1.42,1.42,0,0,1,42.75,1.3ZM55.53.48H44.23v.76a3.63,3.63,0,0,1,1.26.3c.19.13.29.42.29.9a7.08,7.08,0,0,1-.09,1c0,.2-.08.44-.13.71L43,17.34a3.47,3.47,0,0,1-.59,1.58,1.91,1.91,0,0,1-1.13.54v.76h6.29v-.76a2.13,2.13,0,0,1-1-.19A1.23,1.23,0,0,1,46,18.1c0-.1,0-.21,0-.31s0-.23.05-.35l1.4-7.21a3.15,3.15,0,0,1,2.37.64A3.21,3.21,0,0,1,50.38,13c0,.11,0,.28,0,.49s0,.46-.06.75l.58.14,1.58-8.07-.59-.1a5.79,5.79,0,0,1-1.43,2.59,6.17,6.17,0,0,1-2.77.52l1.26-6.54a2.06,2.06,0,0,1,.42-1.08,1.39,1.39,0,0,1,1-.26c1.62,0,2.7.51,3.24,1.54a7.11,7.11,0,0,1,.49,3l.57.13Zm3.69,17.71c0-.08,0-.17,0-.27s0-.2,0-.3l.17-1L62.06,3.36a3.44,3.44,0,0,1,.59-1.6,2,2,0,0,1,1.12-.52V.48H57.44v.76a3.47,3.47,0,0,1,1.26.31c.2.13.3.44.3.94a4.25,4.25,0,0,1-.06.67c0,.26-.09.57-.17,1L56.16,17.35a3.52,3.52,0,0,1-.6,1.59,2,2,0,0,1-1.12.52v.76h6.33v-.76a3.3,3.3,0,0,1-1.26-.32C59.32,19,59.22,18.69,59.22,18.19Zm18-9.51a13,13,0,0,1-2.42,7.84,8.31,8.31,0,0,1-7,3.7H61.6v-.76a2,2,0,0,0,1-.41,3.14,3.14,0,0,0,.73-1.71L65.93,4.11c.08-.38.13-.69.17-1a4.36,4.36,0,0,0,.06-.67c0-.5-.1-.81-.3-.94a3.47,3.47,0,0,0-1.26-.31V.48h6.17A5.52,5.52,0,0,1,75.53,2.7,9.91,9.91,0,0,1,77.17,8.68ZM74,6.87a9.22,9.22,0,0,0-.53-3.48,2.91,2.91,0,0,0-2.87-2,1.12,1.12,0,0,0-.93.31,1.81,1.81,0,0,0-.35.83l-2.93,14.9a3,3,0,0,0-.05.39c0,.11,0,.21,0,.3a1.17,1.17,0,0,0,.25.84,1.3,1.3,0,0,0,.92.26q3.8,0,5.49-5.42A23.26,23.26,0,0,0,74,6.87Zm11.3,11.65a6.72,6.72,0,0,1-3.29.75,1.3,1.3,0,0,1-1-.26,1,1,0,0,1-.23-.66,3.28,3.28,0,0,1,0-.39,4.88,4.88,0,0,1,.08-.51l1.4-7.2a3.73,3.73,0,0,1,2.43.57A2.87,2.87,0,0,1,85.43,13c0,.14,0,.31,0,.51s0,.45-.06.73l.59.14,1.57-8.07-.59-.1a5.79,5.79,0,0,1-1.46,2.61,6.5,6.5,0,0,1-2.89.51l1.26-6.56a2.41,2.41,0,0,1,.41-1.06c.16-.19.52-.28,1.08-.28,1.65,0,2.75.5,3.29,1.51a7,7,0,0,1,.5,3l.57.13.9-5.6H79.14v.76a3.35,3.35,0,0,1,1.26.31c.19.13.29.44.29.94a5,5,0,0,1-.07.7c0,.28-.09.58-.15.92L77.86,17.35a3.52,3.52,0,0,1-.6,1.59,2,2,0,0,1-1.13.52v.76H87.91l1.25-5.74-.52-.13A7.69,7.69,0,0,1,85.34,18.52ZM105.8,1.24V.48h-4.37v.76a2.55,2.55,0,0,1,1.16.33,1.77,1.77,0,0,1,.52,1.48A10.58,10.58,0,0,1,103,4.39c-.06.41-.13.87-.23,1.39l-1.66,8.34L96.47.48H92.19v.76a2.61,2.61,0,0,1,1,.24,1.83,1.83,0,0,1,.65,1.06l.1.3L91.55,15a19,19,0,0,1-1,3.61,1.61,1.61,0,0,1-1.19.9v.76h4.42v-.76a2.59,2.59,0,0,1-1.13-.32,1.67,1.67,0,0,1-.56-1.44,7.13,7.13,0,0,1,0-.79c.06-.43.17-1.09.35-2L94.63,4.38l5.52,16.33h.53l2.95-15a22.93,22.93,0,0,1,.86-3.42,1.42,1.42,0,0,1,1-1Zm11.4,4.9L118,.48H106.28l-.82,5,.55.2a8,8,0,0,1,1.87-3.16,3.7,3.7,0,0,1,2.7-1.06l-3.12,15.85a2.94,2.94,0,0,1-.87,1.85,2.48,2.48,0,0,1-1.34.26v.76h7v-.76a4.24,4.24,0,0,1-1.43-.3c-.23-.13-.34-.45-.34-.95a2.26,2.26,0,0,1,0-.26c0-.09,0-.2,0-.33l.18-1,3-15.1a2.73,2.73,0,0,1,1.79.63c.75.7,1.13,2,1.17,3.94Zm3.57,12.05c0-.08,0-.17,0-.27s0-.2,0-.3l.17-1,2.62-13.24a3.44,3.44,0,0,1,.59-1.6,2,2,0,0,1,1.12-.52V.48H119v.76a3.47,3.47,0,0,1,1.26.31c.2.13.3.44.3.94a4.25,4.25,0,0,1-.06.67c0,.26-.09.57-.17,1l-2.61,13.24a3.52,3.52,0,0,1-.6,1.59,2,2,0,0,1-1.12.52v.76h6.33v-.76a3.36,3.36,0,0,1-1.26-.32C120.87,19,120.77,18.69,120.77,18.19Zm28.86-3.71-1.24,5.74H130.3v-.71a2.48,2.48,0,0,0,1.3-.41,1.64,1.64,0,0,0,.37-1.29c0-.22,0-.75-.11-1.58,0-.17-.08-.89-.21-2.15h-4.58l-1.24,3a5.1,5.1,0,0,0-.22.66,2.45,2.45,0,0,0-.1.69c0,.41.09.67.26.78a3.05,3.05,0,0,0,1.11.3v.71h-4.17v-.71a2.66,2.66,0,0,0,.87-.53,5.79,5.79,0,0,0,.92-1.56L132.39.07h.55L135,17a5.53,5.53,0,0,0,.5,2.08,1.67,1.67,0,0,0,1.14.46v0a1.93,1.93,0,0,0,1.12-.52,3.52,3.52,0,0,0,.6-1.6l2.61-13.23c.08-.38.13-.69.17-1a4.36,4.36,0,0,0,.06-.67c0-.5-.1-.81-.3-.94a3.47,3.47,0,0,0-1.26-.31V.48h6.73v.76a3.23,3.23,0,0,0-1.49.48,3.06,3.06,0,0,0-.64,1.64l-2.77,14.08c0,.16-.05.3-.07.44s0,.29,0,.47a.79.79,0,0,0,.31.71,1.55,1.55,0,0,0,.87.21,6.83,6.83,0,0,0,3.79-1,8.42,8.42,0,0,0,2.81-3.88ZM131.5,12.91l-.78-7.18-3.14,7.18Z',\n opacity: 1, strokeColor: '', fillColor: '#192760', width: 149.633, height: 20.811, stampFillColor: '#dce3ef', stampStrokeColor: '',\n };\n }\n break;\n case 'Witness':\n {\n stampCollection = {\n iconName: 'Witness',\n // eslint-disable-next-line max-len\n pathdata: 'M19.63,2.67,12.77,16.84h-.69L10.63,5.17,5.05,16.84H4.36L2.5,2.92A3.13,3.13,0,0,0,2,1.35,2.38,2.38,0,0,0,.63.91V.33H7.3V1a2.27,2.27,0,0,0-.92.17A1.11,1.11,0,0,0,5.84,2.2v.16c0,.05,0,.13,0,.22L6.81,11l3.57-7.48a.79.79,0,0,0,0-.23,2.78,2.78,0,0,0-.53-2A2.23,2.23,0,0,0,8.68.91V.33h6.45V.91A2.42,2.42,0,0,0,14,1.2c-.23.16-.34.5-.34,1,0,.11,0,.26,0,.46s.07.73.12,1.21l.8,7L18.3,3.11c.09-.19.17-.4.25-.62a2.11,2.11,0,0,0,.11-.65.73.73,0,0,0-.4-.76,2.73,2.73,0,0,0-1.1-.17V.33h4.47V.91a1.92,1.92,0,0,0-.91.3A3.66,3.66,0,0,0,19.63,2.67ZM29.76.33H22.62V1A5.07,5.07,0,0,1,24,1.2c.23.11.34.36.34.77a2.86,2.86,0,0,1-.06.54c0,.21-.11.47-.19.77L21.17,14.05a2.47,2.47,0,0,1-.68,1.29,2.62,2.62,0,0,1-1.27.42v.62h7.15v-.62A5.09,5.09,0,0,1,25,15.51c-.22-.11-.33-.37-.33-.77a2,2,0,0,1,0-.23c0-.08,0-.16,0-.24l.19-.83,3-10.77a2.5,2.5,0,0,1,.66-1.3A2.76,2.76,0,0,1,29.76,1ZM41.9,4.88l.63,0,.86-4.6H30.2l-.93,4.1.62.16A6.6,6.6,0,0,1,32,2a5.22,5.22,0,0,1,3.06-.86L31.53,14.05a2.24,2.24,0,0,1-1,1.5,3.67,3.67,0,0,1-1.51.21v.62H37v-.62a6,6,0,0,1-1.62-.24c-.26-.1-.39-.36-.39-.77,0-.07,0-.14,0-.21s0-.16.05-.27l.2-.83L38.57,1.16a3.76,3.76,0,0,1,2,.52A3.69,3.69,0,0,1,41.9,4.88ZM59.24,1,59.58,1V.33H54.65V1A3.78,3.78,0,0,1,56,1.22a1.25,1.25,0,0,1,.58,1.2,6.26,6.26,0,0,1-.15,1.09c-.07.33-.16.71-.27,1.13l-1.87,6.79L49.05.33H44.21V1a3.51,3.51,0,0,1,1.13.2,1.51,1.51,0,0,1,.74.85l.1.25L43.49,12.1A13.5,13.5,0,0,1,42.4,15a1.87,1.87,0,0,1-1.35.72v.62h5v-.62a3.62,3.62,0,0,1-1.28-.26,1.19,1.19,0,0,1-.64-1.17,3.55,3.55,0,0,1,.06-.64q.11-.53.39-1.59L47,3.5,53.2,16.78h.59L57.13,4.6a15.29,15.29,0,0,1,1-2.78A1.51,1.51,0,0,1,59.24,1Zm7.26.31a2.11,2.11,0,0,1,1.23-.23c1.87,0,3.1.41,3.71,1.23A4.39,4.39,0,0,1,72,4.78l.64.11,1-4.56H60.75V1a5,5,0,0,1,1.42.25c.22.11.32.36.32.77a2.73,2.73,0,0,1-.07.57c0,.22-.1.47-.17.74l-3,10.77a2.47,2.47,0,0,1-.68,1.29,2.62,2.62,0,0,1-1.27.42v.62h13.3l1.42-4.66-.59-.11A7.1,7.1,0,0,1,67.75,15a10,10,0,0,1-3.72.61A1.86,1.86,0,0,1,63,15.4a.67.67,0,0,1-.26-.54,2.36,2.36,0,0,1,0-.32,3.38,3.38,0,0,1,.09-.41l1.58-5.86a5.48,5.48,0,0,1,2.75.47,2,2,0,0,1,.71,1.75c0,.11,0,.25,0,.41s0,.37-.06.6l.65.11L70.2,5.05,69.54,5a4.69,4.69,0,0,1-1.65,2.12,10.06,10.06,0,0,1-3.26.41l1.42-5.33A1.75,1.75,0,0,1,66.5,1.31ZM80.88.83a2.77,2.77,0,0,1,2.46,1.26A4.36,4.36,0,0,1,84,4l.08.78.62.08,1-4.8H85a1.77,1.77,0,0,1-.38.43A1,1,0,0,1,84,.67a2.76,2.76,0,0,1-.37,0l-.41-.1-.61-.2a4.78,4.78,0,0,0-.79-.2A6.71,6.71,0,0,0,80.46,0a4.76,4.76,0,0,0-3.62,1.36,4.61,4.61,0,0,0-1.29,3.29q0,2.05,2.94,4.47t2.94,3.82a3.19,3.19,0,0,1-.79,2.14,2.8,2.8,0,0,1-2.23.92,3.43,3.43,0,0,1-1.5-.33,3.82,3.82,0,0,1-2-2.5,10.33,10.33,0,0,1-.2-1.67L74,11.45l-.87,5.38h.73a2.85,2.85,0,0,1,.38-.67A.75.75,0,0,1,74.8,16a1.12,1.12,0,0,1,.27,0l.42.15.61.22a8.62,8.62,0,0,0,1.3.35,7.53,7.53,0,0,0,1.32.12,5.48,5.48,0,0,0,4.11-1.53,4.77,4.77,0,0,0,1.49-3.43,4.59,4.59,0,0,0-.77-2.63,9.31,9.31,0,0,0-1.87-2L79.61,5.5a4.31,4.31,0,0,1-.74-.77,2.55,2.55,0,0,1-.43-1.45,2.68,2.68,0,0,1,.42-1.44A2.23,2.23,0,0,1,80.88.83Zm12.31,0a2.8,2.8,0,0,1,2.47,1.26A4.49,4.49,0,0,1,96.35,4l.08.78.62.08,1-4.8h-.71a1.62,1.62,0,0,1-.39.43,1,1,0,0,1-.64.18,2.9,2.9,0,0,1-.38,0l-.41-.1-.61-.2a4.65,4.65,0,0,0-.78-.2A6.88,6.88,0,0,0,92.77,0a4.73,4.73,0,0,0-3.61,1.36,4.57,4.57,0,0,0-1.3,3.29q0,2.05,2.94,4.47c2,1.54,3,2.81,3,3.82a3.2,3.2,0,0,1-.8,2.14,2.78,2.78,0,0,1-2.23.92,3.36,3.36,0,0,1-1.49-.33A3.68,3.68,0,0,1,88,14.73a3.76,3.76,0,0,1-.81-1.56A10.6,10.6,0,0,1,87,11.5l-.7-.05-.86,5.38h.72a2.85,2.85,0,0,1,.38-.67.78.78,0,0,1,.57-.19,1.12,1.12,0,0,1,.27,0l.42.15.61.22a8.74,8.74,0,0,0,1.31.35,7.37,7.37,0,0,0,1.32.12,5.49,5.49,0,0,0,4.11-1.53,4.81,4.81,0,0,0,1.49-3.43,4.67,4.67,0,0,0-.77-2.63A9.57,9.57,0,0,0,94,7.2L91.93,5.5a4,4,0,0,1-.74-.77,2.48,2.48,0,0,1-.43-1.45,2.68,2.68,0,0,1,.42-1.44A2.2,2.2,0,0,1,93.19.83Z',\n opacity: 1, strokeColor: '', fillColor: '#192760', width: 97.39, height: 16.84, stampFillColor: '#dce3ef', stampStrokeColor: '',\n };\n }\n break;\n case 'InitialHere':\n case 'Initial Here':\n {\n stampCollection = {\n iconName: 'Initial Here',\n // eslint-disable-next-line max-len\n pathdata: 'M6.36,15.51a5.09,5.09,0,0,0,1.42.25v.62H.63v-.62a2.62,2.62,0,0,0,1.27-.42,2.47,2.47,0,0,0,.68-1.29l3-10.77c.08-.3.15-.56.19-.77A2.86,2.86,0,0,0,5.78,2c0-.41-.11-.66-.34-.77A5.07,5.07,0,0,0,4,1V.33h7.14V1a2.76,2.76,0,0,0-1.27.42,2.5,2.5,0,0,0-.66,1.3l-3,10.77-.19.83c0,.08,0,.16,0,.24a2,2,0,0,0,0,.23C6,15.14,6.14,15.4,6.36,15.51ZM27,1,27.36,1V.33H22.43V1a3.78,3.78,0,0,1,1.31.27,1.25,1.25,0,0,1,.58,1.2,6.26,6.26,0,0,1-.15,1.09c-.07.33-.16.71-.27,1.13L22,11.43,16.83.33H12V1a3.49,3.49,0,0,1,1.12.2,1.51,1.51,0,0,1,.74.85l.11.25-2.7,9.85A13,13,0,0,1,10.18,15a1.85,1.85,0,0,1-1.35.72v.62h5v-.62a3.62,3.62,0,0,1-1.28-.26,1.19,1.19,0,0,1-.63-1.17,4.72,4.72,0,0,1,.05-.64q.1-.53.39-1.59l2.39-8.6L21,16.78h.6L24.91,4.6a15.29,15.29,0,0,1,1-2.78A1.51,1.51,0,0,1,27,1ZM35.78.33H28.64V1a5.16,5.16,0,0,1,1.41.25c.23.11.34.36.34.77a2.86,2.86,0,0,1-.06.54c0,.21-.11.47-.19.77L27.19,14.05a2.47,2.47,0,0,1-.68,1.29,2.66,2.66,0,0,1-1.27.42v.62h7.15v-.62A5.09,5.09,0,0,1,31,15.51c-.22-.11-.33-.37-.33-.77a2,2,0,0,1,0-.23,2,2,0,0,1,0-.24l.19-.83,3-10.77a2.5,2.5,0,0,1,.66-1.3A2.76,2.76,0,0,1,35.78,1Zm12.76,4.6.87-4.6H36.22l-.93,4.1.62.16A6.52,6.52,0,0,1,38,2a5.21,5.21,0,0,1,3-.86L37.55,14.05a2.24,2.24,0,0,1-1,1.5,3.7,3.7,0,0,1-1.51.21v.62H43v-.62a5.79,5.79,0,0,1-1.61-.24c-.26-.1-.39-.36-.39-.77a1.48,1.48,0,0,1,0-.21,2,2,0,0,1,0-.27l.2-.83L44.58,1.16a3.77,3.77,0,0,1,2,.52,3.74,3.74,0,0,1,1.31,3.2Zm4,9.81a.93.93,0,0,1,0-.23,2,2,0,0,1,0-.24l.18-.83,3-10.77a2.42,2.42,0,0,1,.67-1.3A2.72,2.72,0,0,1,57.72,1V.33H50.57V1A5.26,5.26,0,0,1,52,1.2c.23.11.34.36.34.77a2.28,2.28,0,0,1-.07.54,7.71,7.71,0,0,1-.19.77l-3,10.77a2.4,2.4,0,0,1-.68,1.29,2.58,2.58,0,0,1-1.26.42v.62h7.14v-.62a5.07,5.07,0,0,1-1.41-.25C52.69,15.4,52.58,15.14,52.58,14.74Zm32-3.13.57.11-1.4,4.66H63.34v-.57a3.65,3.65,0,0,0,1.46-.34c.29-.16.43-.51.43-1,0-.18,0-.61-.13-1.29,0-.14-.09-.73-.23-1.75H59.69l-1.4,2.44a3.38,3.38,0,0,0-.25.54,1.64,1.64,0,0,0-.11.56q0,.5.3.63a4.41,4.41,0,0,0,1.25.25v.57H54.76v-.57a3.36,3.36,0,0,0,1-.43,4.58,4.58,0,0,0,1-1.27L65.7,0h.62l2.3,13.72a3.49,3.49,0,0,0,.56,1.7,2.34,2.34,0,0,0,1.29.37v0a2.58,2.58,0,0,0,1.26-.42,2.46,2.46,0,0,0,.68-1.3L75.35,3.28c.09-.3.16-.56.2-.77A2.86,2.86,0,0,0,75.61,2c0-.41-.11-.66-.34-.77A5.17,5.17,0,0,0,73.85,1V.33h7.61V1a4.77,4.77,0,0,0-1.69.39A2.27,2.27,0,0,0,79,2.67L75.92,14.12c0,.13,0,.25-.07.36a2.21,2.21,0,0,0,0,.39.59.59,0,0,0,.35.57,2.33,2.33,0,0,0,1,.17,10.06,10.06,0,0,0,4.28-.84A7.67,7.67,0,0,0,84.6,11.61ZM64.7,10.44,63.81,4.6l-3.55,5.84Zm38,4.32a.71.71,0,0,1,0-.16s0-.16.07-.34l.2-.83L106,2.67a2.43,2.43,0,0,1,.79-1.39A2.78,2.78,0,0,1,107.9,1V.33h-7.15V1a4.45,4.45,0,0,1,1.27.19.81.81,0,0,1,.47.83,2.73,2.73,0,0,1-.07.57c0,.22-.1.47-.17.74l-1.14,4.16h-5.7L96.7,2.67a2.27,2.27,0,0,1,.73-1.33A4.77,4.77,0,0,1,99.12,1V.33H91.51V1a5.09,5.09,0,0,1,1.42.25c.22.11.33.36.33.77a2.93,2.93,0,0,1-.08.58c-.05.24-.1.48-.17.73L90.07,14a2.73,2.73,0,0,1-.65,1.29,2.47,2.47,0,0,1-1.3.43v.62h7.15v-.62a5.13,5.13,0,0,1-1.42-.24c-.21-.1-.31-.34-.31-.72a3.11,3.11,0,0,1,0-.57c0-.16.1-.43.19-.8L95.12,8.5h5.7L99.31,14a2.21,2.21,0,0,1-.74,1.33,4.36,4.36,0,0,1-1.69.39v.62h7.63v-.62a4.72,4.72,0,0,1-1.25-.17A.8.8,0,0,1,102.73,14.76Zm13.38.24a10.07,10.07,0,0,1-3.72.61,1.86,1.86,0,0,1-1.08-.21.67.67,0,0,1-.26-.54,2.36,2.36,0,0,1,0-.32,3.38,3.38,0,0,1,.09-.41l1.58-5.86a5.51,5.51,0,0,1,2.75.47,2,2,0,0,1,.7,1.75c0,.11,0,.25,0,.41s0,.37-.07.6l.66.11,1.78-6.56L117.89,5a4.63,4.63,0,0,1-1.65,2.12A10,10,0,0,1,113,7.5l1.43-5.33a1.6,1.6,0,0,1,.45-.86,2.07,2.07,0,0,1,1.23-.23c1.86,0,3.1.41,3.71,1.23a4.32,4.32,0,0,1,.56,2.47l.65.11,1-4.56H109.1V1a5.1,5.1,0,0,1,1.43.25c.21.11.32.36.32.77a3.63,3.63,0,0,1-.07.57c0,.22-.11.47-.18.74l-2.95,10.77a2.4,2.4,0,0,1-.68,1.29,2.58,2.58,0,0,1-1.26.42v.62H119l1.42-4.66-.58-.11A7.17,7.17,0,0,1,116.11,15ZM144.36,2.17,142.93,7.5a10.13,10.13,0,0,0,3.27-.41A4.69,4.69,0,0,0,147.84,5l.67.08-1.78,6.56-.66-.11c0-.23.06-.43.07-.6s0-.3,0-.41a2,2,0,0,0-.7-1.75,5.51,5.51,0,0,0-2.75-.47l-1.58,5.86a3.38,3.38,0,0,0-.09.41,2.36,2.36,0,0,0,0,.32.67.67,0,0,0,.26.54,1.86,1.86,0,0,0,1.08.21,10.07,10.07,0,0,0,3.72-.61,7.14,7.14,0,0,0,3.73-3.39l.58.11L149,16.38H131l-2.59-7.93h-.68l-1.42,5-.2.83,0,.2a1.77,1.77,0,0,0,0,.23c0,.43.1.7.31.81a4.87,4.87,0,0,0,1.43.25v.62h-7.14v-.62a2.58,2.58,0,0,0,1.26-.42,2.4,2.4,0,0,0,.68-1.29l3-10.77.15-.57a4.09,4.09,0,0,0,.1-.79c0-.38-.11-.62-.32-.72A4.8,4.8,0,0,0,124,1V.33h6.6a10.58,10.58,0,0,1,3.42.43,3,3,0,0,1,2.24,3.05,4,4,0,0,1-.38,1.6A4,4,0,0,1,134.66,7a5.47,5.47,0,0,1-1.45.8c-.33.11-.85.25-1.54.42a4.73,4.73,0,0,0,.16.46l1.85,5.42a2.81,2.81,0,0,0,.8,1.38,2.42,2.42,0,0,0,1.23.32,2.53,2.53,0,0,0,1.22-.41,2.47,2.47,0,0,0,.68-1.29l2.94-10.77c.07-.27.13-.52.18-.74A2.73,2.73,0,0,0,140.8,2c0-.41-.11-.66-.32-.77A5.1,5.1,0,0,0,139.05,1V.33H152l-1,4.56-.65-.11a4.32,4.32,0,0,0-.56-2.47c-.61-.82-1.85-1.23-3.71-1.23a2.07,2.07,0,0,0-1.23.23A1.67,1.67,0,0,0,144.36,2.17ZM131.54,6.59a5,5,0,0,0,.77-1.32,4.68,4.68,0,0,0,.36-1.84,2.74,2.74,0,0,0-.5-1.67,2,2,0,0,0-1.7-.66,1,1,0,0,0-.72.22,2,2,0,0,0-.38.85l-1.45,5.49a10.33,10.33,0,0,0,1.91-.16A3.07,3.07,0,0,0,131.54,6.59Z',\n opacity: 1, strokeColor: '', fillColor: '#192760', width: 151.345, height: 16.781, stampFillColor: '#dce3ef', stampStrokeColor: '',\n };\n }\n break;\n case 'SignHere':\n case 'Sign Here':\n {\n stampCollection = {\n iconName: 'Sign Here',\n // eslint-disable-next-line max-len\n pathdata: 'M6.38,1.9A2.56,2.56,0,0,0,6,3.34a2.49,2.49,0,0,0,.44,1.45,3.9,3.9,0,0,0,.73.76l2.07,1.7a9.34,9.34,0,0,1,1.87,2.06,4.6,4.6,0,0,1,.78,2.63,4.78,4.78,0,0,1-1.5,3.43A5.46,5.46,0,0,1,6.23,16.9a7.34,7.34,0,0,1-1.31-.12,7.48,7.48,0,0,1-1.31-.36L3,16.2l-.42-.14a1.12,1.12,0,0,0-.27,0,.71.71,0,0,0-.57.19,2.85,2.85,0,0,0-.38.67H.63l.87-5.38.69,0a10.34,10.34,0,0,0,.2,1.68,3.82,3.82,0,0,0,2,2.5,3.42,3.42,0,0,0,1.5.32,2.76,2.76,0,0,0,2.23-.92A3.14,3.14,0,0,0,8.94,13c0-1-1-2.29-2.94-3.82S3.06,6.08,3.06,4.71A4.59,4.59,0,0,1,4.35,1.42,4.76,4.76,0,0,1,8,.06,6.71,6.71,0,0,1,9.29.19a4.78,4.78,0,0,1,.79.2l.61.2.41.1a2.76,2.76,0,0,0,.37,0,1,1,0,0,0,.65-.18A1.75,1.75,0,0,0,12.5.12h.72l-1,4.8-.62-.08-.09-.79a4.45,4.45,0,0,0-.69-1.91A2.78,2.78,0,0,0,8.39.89,2.2,2.2,0,0,0,6.38,1.9ZM22.8.39H15.66V1a4.71,4.71,0,0,1,1.41.25c.23.11.34.36.34.77a2.86,2.86,0,0,1-.06.54c0,.21-.11.47-.19.77L14.21,14.11a2.47,2.47,0,0,1-.68,1.29,2.62,2.62,0,0,1-1.27.42v.62h7.15v-.62A4.63,4.63,0,0,1,18,15.56c-.22-.1-.33-.36-.33-.77a1.8,1.8,0,0,1,0-.22c0-.08,0-.16,0-.24l.19-.83,3-10.77a2.5,2.5,0,0,1,.66-1.3A2.76,2.76,0,0,1,22.8,1ZM38.09,9.14V8.52H31.18v.62a5.05,5.05,0,0,1,1.44.28c.22.1.32.35.32.75a13.35,13.35,0,0,1-.54,2.54,19.13,19.13,0,0,1-.54,1.87A1.85,1.85,0,0,1,31,15.66a3.77,3.77,0,0,1-1.78.35A3.71,3.71,0,0,1,27,15.38c-1.09-.77-1.64-2.13-1.64-4.08a13.74,13.74,0,0,1,1.78-6.69q2.05-3.72,5-3.72a2.93,2.93,0,0,1,3,1.86,6.09,6.09,0,0,1,.4,2.48l.69.08L37.44,0h-.71a2.44,2.44,0,0,1-.41.53.82.82,0,0,1-.58.2A9.14,9.14,0,0,1,34.33.36,9.23,9.23,0,0,0,31.73,0a9.4,9.4,0,0,0-7.46,3.42,10.46,10.46,0,0,0-2.65,7,5.88,5.88,0,0,0,2.2,4.83,7.77,7.77,0,0,0,5,1.64A13.06,13.06,0,0,0,32,16.52a14.26,14.26,0,0,0,2.33-.75l.67-.3,1.2-4.36a4.15,4.15,0,0,1,.62-1.59A2.28,2.28,0,0,1,38.09,9.14ZM50.36,1a3.36,3.36,0,0,1,1.31.27,1.25,1.25,0,0,1,.58,1.2,6.26,6.26,0,0,1-.15,1.09c-.07.33-.16.7-.27,1.13L50,11.48,44.76.39H39.93V1a3.49,3.49,0,0,1,1.12.2,1.51,1.51,0,0,1,.74.85l.1.25L39.2,12.16a12.62,12.62,0,0,1-1.09,2.93,1.86,1.86,0,0,1-1.35.73v.62h5v-.62a3.62,3.62,0,0,1-1.28-.26,1.21,1.21,0,0,1-.63-1.17,4.72,4.72,0,0,1,0-.64q.1-.52.39-1.59l2.39-8.6,6.23,13.28h.6L52.84,4.66a15.29,15.29,0,0,1,1-2.78A1.52,1.52,0,0,1,55,1.05l.34,0V.39H50.36Zm22.33,13.8a.66.66,0,0,1,0-.15c0-.05,0-.16.07-.34l.2-.83L75.91,2.73a2.43,2.43,0,0,1,.79-1.39A2.78,2.78,0,0,1,77.86,1V.39H70.71V1A4.45,4.45,0,0,1,72,1.2a.81.81,0,0,1,.47.83,2.73,2.73,0,0,1-.07.57c0,.22-.1.47-.17.74L71.07,7.5h-5.7l1.29-4.77a2.27,2.27,0,0,1,.73-1.33A4.36,4.36,0,0,1,69.08,1V.39H61.47V1a4.73,4.73,0,0,1,1.42.25c.22.11.33.36.33.77a2.93,2.93,0,0,1-.08.58c0,.24-.1.48-.17.73L60,14.1a2.73,2.73,0,0,1-.65,1.29,2.47,2.47,0,0,1-1.3.43v.62h7.15v-.62a5.13,5.13,0,0,1-1.42-.24c-.21-.1-.31-.34-.31-.72a3,3,0,0,1,0-.57c0-.16.1-.43.19-.8l1.35-4.94h5.7L69.27,14.1a2.21,2.21,0,0,1-.74,1.33,4.77,4.77,0,0,1-1.69.39v.62h7.63v-.62a4.72,4.72,0,0,1-1.25-.17A.82.82,0,0,1,72.69,14.81Zm13.38.25a10.28,10.28,0,0,1-3.72.61,1.86,1.86,0,0,1-1.08-.21.67.67,0,0,1-.26-.54,2.23,2.23,0,0,1,0-.32,3.38,3.38,0,0,1,.09-.41l1.58-5.86a5.51,5.51,0,0,1,2.75.47,2,2,0,0,1,.7,1.75c0,.11,0,.24,0,.41s0,.37-.07.59l.66.12,1.78-6.56L87.85,5a4.75,4.75,0,0,1-1.64,2.12,10.13,10.13,0,0,1-3.27.41l1.43-5.33a1.56,1.56,0,0,1,.45-.86,2.07,2.07,0,0,1,1.23-.23c1.86,0,3.1.41,3.71,1.23a4.32,4.32,0,0,1,.56,2.47L91,5,92,.39H79.06V1a4.75,4.75,0,0,1,1.43.25c.21.11.32.36.32.77a2.73,2.73,0,0,1-.07.57c0,.22-.11.47-.18.74l-3,10.77a2.4,2.4,0,0,1-.68,1.29,2.58,2.58,0,0,1-1.26.42v.62H89l1.41-4.66-.58-.11A7.22,7.22,0,0,1,86.07,15.06ZM114.32,2.23l-1.43,5.33a10.13,10.13,0,0,0,3.27-.41A4.75,4.75,0,0,0,117.8,5l.67.08-1.78,6.56-.66-.12c0-.22.06-.42.07-.59s0-.3,0-.41a2,2,0,0,0-.71-1.75,5.51,5.51,0,0,0-2.75-.47l-1.58,5.86a3.38,3.38,0,0,0-.09.41,2.23,2.23,0,0,0,0,.32.67.67,0,0,0,.26.54,1.86,1.86,0,0,0,1.08.21,10.28,10.28,0,0,0,3.72-.61,7.22,7.22,0,0,0,3.73-3.39l.58.11-1.41,4.66h-18L98.33,8.51h-.68l-1.42,5-.2.83,0,.2a1.77,1.77,0,0,0,0,.23c0,.43.1.7.31.8a4.51,4.51,0,0,0,1.43.26v.62H90.59v-.62a2.58,2.58,0,0,0,1.26-.42,2.4,2.4,0,0,0,.68-1.29l3-10.77.15-.57a4.09,4.09,0,0,0,.1-.79c0-.38-.11-.62-.32-.73A5.3,5.3,0,0,0,94,1V.39h6.6A10.58,10.58,0,0,1,104,.82a3,3,0,0,1,2.24,3.05,4,4,0,0,1-.38,1.6A4.06,4.06,0,0,1,104.62,7a5.32,5.32,0,0,1-1.45.8c-.33.11-.84.25-1.54.42.08.24.13.4.16.46l1.85,5.42a2.81,2.81,0,0,0,.8,1.38,2.42,2.42,0,0,0,1.23.32,2.64,2.64,0,0,0,1.22-.41,2.47,2.47,0,0,0,.68-1.29l2.94-10.77c.07-.27.13-.52.18-.74a2.73,2.73,0,0,0,.07-.57c0-.41-.11-.66-.32-.77A4.75,4.75,0,0,0,109,1V.39h12.93l-1,4.56-.64-.11a4.39,4.39,0,0,0-.57-2.47c-.61-.82-1.85-1.23-3.71-1.23a2.07,2.07,0,0,0-1.23.23A1.7,1.7,0,0,0,114.32,2.23ZM101.5,6.64a4.76,4.76,0,0,0,.77-1.31,4.68,4.68,0,0,0,.36-1.84,2.72,2.72,0,0,0-.5-1.67,2,2,0,0,0-1.7-.66.94.94,0,0,0-.71.22,1.81,1.81,0,0,0-.39.85L97.88,7.72a10.33,10.33,0,0,0,1.91-.16A3,3,0,0,0,101.5,6.64Z',\n opacity: 1, strokeColor: '', fillColor: '#192760', width: 121.306, height: 16.899, stampFillColor: '#dce3ef', stampStrokeColor: '',\n };\n }\n break;\n case 'Accepted':\n {\n stampCollection = {\n iconName: 'Accepted',\n // eslint-disable-next-line max-len\n pathdata: 'M22.409294,0.00021190348 C22.64747,0.0056831966 22.875833,0.11701412 23.023336,0.32638185 23.631345,1.1873664 25.36437,2.8183636 27.4584,4.1123583 28.000408,4.4483535 28.015407,5.227338 27.477398,5.5713293 23.803344,7.9272954 12.881201,15.464245 9.4751583,23.800168 9.2091556,24.452168 8.3321453,24.542164 7.9521352,23.95016 6.0691143,21.014182 1.8990528,14.526234 0.095028103,11.832258 -0.13796928,11.485277 0.081027784,11.023275 0.49603404,10.97927 1.9670546,10.824272 4.8490969,10.421291,6.5811144,9.5293013 6.9811216,9.3233086 7.4691268,9.5782811 7.5601316,10.019287 7.847138,11.400286 8.4021459,13.83224 8.952148,14.781236 8.952148,14.781236 16.385246,3.2303471 21.985326,0.10638282 22.119951,0.031756414 22.266389,-0.003070501 22.409294,0.00021190348 z',\n opacity: 1, strokeColor: '', fillColor: '#516c30', width: 27.873, height: 24.346, stampFillColor: '#e6eddf', stampStrokeColor: '',\n };\n }\n break;\n case 'Rejected':\n {\n stampCollection = {\n iconName: 'Rejected',\n // eslint-disable-next-line max-len\n pathdata: 'M3.8779989,0 L11.294,7.4140023 18.710001,0 22.588001,3.8779911 15.172998,11.293032 22.588001,18.707033 18.710001,22.586 11.294,15.169985 3.8779989,22.586 0,18.707033 7.4150017,11.293032 0,3.8779911 z',\n opacity: 1, strokeColor: '', fillColor: '#8a251a', width: 22.588, height: 22.586, stampFillColor: '#f6dedd', stampStrokeColor: '',\n };\n }\n break;\n case 'Rejected_with_border':\n {\n stampCollection = {\n iconName: 'Rejected_with_border',\n // eslint-disable-next-line max-len\n pathdata: 'M3.8779989,0 L11.294,7.4140023 18.710001,0 22.588001,3.8779911 15.172998,11.293032 22.588001,18.707033 18.710001,22.586 11.294,15.169985 3.8779989,22.586 0,18.707033 7.4150017,11.293032 0,3.8779911 z',\n opacity: 1, strokeColor: '', fillColor: '#192760', width: 22.588, height: 24.346, stampFillColor: '#dce3ef', stampStrokeColor: '',\n };\n }\n break;\n case 'NotApproved':\n case 'Not Approved':\n {\n stampCollection = {\n iconName: 'Not Approved',\n // eslint-disable-next-line max-len\n pathdata: 'M0,19.46a1.56,1.56,0,0,0,1.16-.9A19.84,19.84,0,0,0,2.1,15L4.42,2.84l-.09-.3a1.82,1.82,0,0,0-.64-1.06,2.41,2.41,0,0,0-1-.24V.48H6.88l4.49,13.64L13,5.78c.09-.52.17-1,.22-1.39a10.11,10.11,0,0,0,.13-1.34,1.83,1.83,0,0,0-.49-1.48,2.49,2.49,0,0,0-1.13-.33V.48H16v.76l-.29.06a1.42,1.42,0,0,0-1,1,23.7,23.7,0,0,0-.84,3.42L11,20.71h-.51L5.1,4.38,3,15c-.17.87-.28,1.53-.33,2a5.32,5.32,0,0,0,0,.79,1.69,1.69,0,0,0,.54,1.44,2.48,2.48,0,0,0,1.1.32v.76H0ZM17.73,4.53C19.54,1.51,21.55,0,23.79,0a4.4,4.4,0,0,1,3.66,1.92,8.52,8.52,0,0,1,1.43,5.19,17.56,17.56,0,0,1-2.53,9.07q-2.7,4.61-6.21,4.6a4.24,4.24,0,0,1-3.6-1.92,8.6,8.6,0,0,1-1.39-5.14A17.68,17.68,0,0,1,17.73,4.53ZM18.37,18c.33,1.19.93,1.78,1.8,1.78a2.83,2.83,0,0,0,2.22-1.29,16.41,16.41,0,0,0,2.06-4.93,35.53,35.53,0,0,0,1.06-4.83A28.26,28.26,0,0,0,25.9,4.6a5.86,5.86,0,0,0-.52-2.55A1.7,1.7,0,0,0,23.78,1Q21.2,1,19.45,7.53a33,33,0,0,0-1.33,8.26A8.15,8.15,0,0,0,18.37,18Zm11.08,1.48a2.34,2.34,0,0,0,1.3-.26,3,3,0,0,0,.85-1.85l3-15.85A3.54,3.54,0,0,0,32,2.56a8,8,0,0,0-1.82,3.16l-.53-.2.8-5H41.81l-.74,5.66-.54-.07c0-1.92-.41-3.24-1.13-3.94a2.6,2.6,0,0,0-1.74-.63L34.79,16.6l-.17,1a2.43,2.43,0,0,0,0,.33,2.26,2.26,0,0,0,0,.26c0,.5.11.82.33.95a3.94,3.94,0,0,0,1.39.3v.76H29.45Zm26.65.76H50.18v-.71a2.28,2.28,0,0,0,1.25-.41,1.64,1.64,0,0,0,.37-1.29c0-.22,0-.75-.11-1.58,0-.17-.08-.89-.2-2.15H47l-1.2,3c-.08.2-.15.42-.22.66a2.84,2.84,0,0,0-.09.69c0,.41.08.67.25.78a2.91,2.91,0,0,0,1.08.3v.71H42.79v-.71a2.44,2.44,0,0,0,.85-.53,5.59,5.59,0,0,0,.9-1.56L52.21.07h.53l2,16.88A5.46,5.46,0,0,0,55.2,19a1.36,1.36,0,0,0,.9.43Zm-4.76-7.31-.76-7.18-3,7.18Zm4.95,6.53a1.82,1.82,0,0,0,1-.5,3.56,3.56,0,0,0,.58-1.59L60.42,4.11c.06-.3.1-.6.15-.9a5.46,5.46,0,0,0,.06-.72c0-.52-.13-.86-.4-1a2.88,2.88,0,0,0-1.1-.23V.48h5.93a5,5,0,0,1,2.5.57c1.26.73,1.9,2.07,1.9,4a5.81,5.81,0,0,1-1.54,4.22,5.32,5.32,0,0,1-4,1.58l-.59,0-1.2-.11L61,16.6l-.17,1a2.72,2.72,0,0,0,0,.3,2.81,2.81,0,0,0,0,.29c0,.5.09.81.28.94a3.26,3.26,0,0,0,1.23.31v.76h-6Zm6-9.67.38.06H63a3,3,0,0,0,1.62-.36,2.87,2.87,0,0,0,1-1.18,7.28,7.28,0,0,0,.6-2,11.67,11.67,0,0,0,.22-2,4.4,4.4,0,0,0-.41-2,1.44,1.44,0,0,0-1.39-.79.71.71,0,0,0-.65.28,3.7,3.7,0,0,0-.32,1Zm5.61,9.69A1.86,1.86,0,0,0,69,18.94a3.54,3.54,0,0,0,.59-1.59L72.15,4.11q.09-.45.15-.9a5.73,5.73,0,0,0,.07-.72,1.1,1.1,0,0,0-.41-1,2.88,2.88,0,0,0-1.1-.23V.48h5.93a5,5,0,0,1,2.5.57c1.27.73,1.9,2.07,1.9,4a5.77,5.77,0,0,1-1.54,4.22,5.31,5.31,0,0,1-4,1.58l-.6,0-1.2-.11L72.74,16.6l-.17,1a2.72,2.72,0,0,0,0,.3c0,.1,0,.19,0,.29,0,.5.1.81.29.94a3.15,3.15,0,0,0,1.23.31v.76h-6.1Zm6.12-9.69.38.06h.33a3,3,0,0,0,1.62-.36,3,3,0,0,0,1-1.18,7.67,7.67,0,0,0,.59-2,11.67,11.67,0,0,0,.22-2,4.4,4.4,0,0,0-.41-2,1.43,1.43,0,0,0-1.38-.79.73.73,0,0,0-.66.28,3.7,3.7,0,0,0-.32,1Zm5.57,9.69a1.9,1.9,0,0,0,1.09-.52,3.56,3.56,0,0,0,.58-1.59L83.84,4.11c0-.27.09-.51.13-.71a7.08,7.08,0,0,0,.09-1c0-.47-.1-.77-.28-.9a3.53,3.53,0,0,0-1.22-.3V.48h5.68a6.57,6.57,0,0,1,3,.53q1.92,1,1.92,3.75a6.79,6.79,0,0,1-.32,2,5.23,5.23,0,0,1-1.08,1.9,4.56,4.56,0,0,1-1.25,1,11.62,11.62,0,0,1-1.33.52c.07.3.12.49.14.57l1.59,6.66a4.07,4.07,0,0,0,.69,1.7,1.72,1.72,0,0,0,1.13.41v.76H88.52l-2.23-9.76h-.58L84.49,16.6l-.17,1a1,1,0,0,0,0,.25,2.62,2.62,0,0,0,0,.28c0,.53.09.86.26,1a3.11,3.11,0,0,0,1.24.32v.76H79.63ZM87.55,9.3A2.59,2.59,0,0,0,89,8.17a7.24,7.24,0,0,0,.66-1.62A8.18,8.18,0,0,0,90,4.29a4.32,4.32,0,0,0-.43-2,1.5,1.5,0,0,0-1.45-.81.71.71,0,0,0-.62.26,2.78,2.78,0,0,0-.33,1.05L85.91,9.5A6.63,6.63,0,0,0,87.55,9.3Zm8.72-4.77Q99,0,102.32,0A4.37,4.37,0,0,1,106,1.92a8.46,8.46,0,0,1,1.44,5.19,17.58,17.58,0,0,1-2.54,9.07q-2.7,4.61-6.21,4.6a4.27,4.27,0,0,1-3.6-1.92,8.67,8.67,0,0,1-1.38-5.14A17.68,17.68,0,0,1,96.27,4.53ZM96.9,18c.33,1.19.93,1.78,1.8,1.78a2.83,2.83,0,0,0,2.22-1.29A16.63,16.63,0,0,0,103,13.54a37.1,37.1,0,0,0,1.06-4.83,29.49,29.49,0,0,0,.38-4.11,5.86,5.86,0,0,0-.51-2.55A1.71,1.71,0,0,0,102.31,1C100.6,1,99.15,3.17,98,7.53a33.42,33.42,0,0,0-1.33,8.26A8.57,8.57,0,0,0,96.9,18ZM114.35.48v.76a2.57,2.57,0,0,0-1.08.17,1.07,1.07,0,0,0-.5,1,2.53,2.53,0,0,0,0,.28,2.64,2.64,0,0,0,0,.28l1.07,11.76L117.77,6c.31-.71.59-1.41.84-2.11A5.25,5.25,0,0,0,119,2.19a.85.85,0,0,0-.38-.81,3.09,3.09,0,0,0-.95-.14V.48h4v.76a2.08,2.08,0,0,0-.73.45,5.35,5.35,0,0,0-.82,1.4l-7.79,17.69h-.66L110,5.74A22,22,0,0,0,109.46,2c-.16-.39-.58-.62-1.28-.71V.48Zm5.15,19a1.83,1.83,0,0,0,1.08-.52,3.42,3.42,0,0,0,.59-1.59l2.54-13.24c.06-.34.11-.64.15-.92a4.83,4.83,0,0,0,.06-.7c0-.5-.09-.81-.28-.94a3.14,3.14,0,0,0-1.22-.31V.48h11.12l-.87,5.6L132.11,6a7,7,0,0,0-.49-3c-.52-1-1.59-1.51-3.19-1.51-.55,0-.9.09-1.06.28A2.44,2.44,0,0,0,127,2.74L125.76,9.3a6.21,6.21,0,0,0,2.81-.51A6,6,0,0,0,130,6.18l.58.1L129,14.35l-.56-.14c0-.28,0-.52,0-.73s0-.37,0-.51a2.92,2.92,0,0,0-.61-2.15,3.55,3.55,0,0,0-2.37-.57l-1.36,7.2a4.79,4.79,0,0,0-.07.51,3.28,3.28,0,0,0,0,.39,1,1,0,0,0,.22.66,1.24,1.24,0,0,0,.93.26,6.43,6.43,0,0,0,3.21-.75,7.67,7.67,0,0,0,3.21-4.17l.5.13-1.22,5.74H119.5Zm12.79,0a1.87,1.87,0,0,0,1-.41,3.23,3.23,0,0,0,.71-1.71L136.5,4.11c.07-.38.13-.69.17-1a5.89,5.89,0,0,0,.05-.67c0-.5-.1-.81-.29-.94a3.32,3.32,0,0,0-1.22-.31V.48h6a5.35,5.35,0,0,1,4.63,2.22,10.11,10.11,0,0,1,1.58,6,13.3,13.3,0,0,1-2.34,7.84,8,8,0,0,1-6.86,3.7h-5.93ZM143.87,3.39a2.84,2.84,0,0,0-2.79-2,1.08,1.08,0,0,0-.91.31,1.93,1.93,0,0,0-.34.83L137,17.44a3.1,3.1,0,0,0-.06.39c0,.11,0,.21,0,.3a1.22,1.22,0,0,0,.24.84,1.26,1.26,0,0,0,.9.26q3.67,0,5.33-5.42a23.91,23.91,0,0,0,1-6.94A9.45,9.45,0,0,0,143.87,3.39Z',\n opacity: 1, strokeColor: '', fillColor: '#8a251a', width: 147.425, height: 20.783, stampFillColor: '#f6dedd', stampStrokeColor: ''\n };\n }\n break;\n case 'Draft':\n {\n stampCollection = {\n iconName: 'Draft',\n // eslint-disable-next-line max-len\n pathdata: 'M24.92,3Q22,.46,16.4.46h-11v.87a9.38,9.38,0,0,1,2.24.35q.54.23.54,1.08a3.24,3.24,0,0,1-.1.76c-.07.29-.17.65-.31,1.08L3.08,19.69a3.26,3.26,0,0,1-1.32,1.95A4.67,4.67,0,0,1,0,22.1V23H10.91q7.8,0,12.61-4.22a11.56,11.56,0,0,0,4.32-8.94A8.58,8.58,0,0,0,24.92,3ZM20.41,15.66a10.18,10.18,0,0,1-9.8,6.18A3.18,3.18,0,0,1,9,21.54a1,1,0,0,1-.46-.95,2.47,2.47,0,0,1,0-.35,3,3,0,0,1,.1-.44l5.24-17a1.91,1.91,0,0,1,.62-.95,2.81,2.81,0,0,1,1.66-.35c2.44,0,4.15.76,5.15,2.27a7.29,7.29,0,0,1,.94,4A17.63,17.63,0,0,1,20.41,15.66ZM49.75,9.74a5.84,5.84,0,0,0,2-2.16,5.1,5.1,0,0,0,.59-2.24c0-2.1-1.18-3.53-3.54-4.27A18.67,18.67,0,0,0,43.36.46H32.92v.87a8.79,8.79,0,0,1,2.24.35c.35.14.52.48.52,1a5.36,5.36,0,0,1-.17,1.11c-.06.23-.14.5-.23.8L30.61,19.7a3.26,3.26,0,0,1-1.08,1.81,4.44,4.44,0,0,1-2,.59V23H38.85V22.1a8.54,8.54,0,0,1-2.28-.36c-.32-.15-.49-.53-.49-1.13,0-.11,0-.21,0-.32a1.15,1.15,0,0,1,.06-.28l.31-1.16,2.25-7h1.07L43.89,23h7.64V22.1a4.27,4.27,0,0,1-2.07-.47,3.91,3.91,0,0,1-1.27-1.93l-2.92-7.6a4.67,4.67,0,0,1-.25-.65c1.1-.23,1.91-.42,2.43-.59A8.49,8.49,0,0,0,49.75,9.74ZM46,7.39a6.73,6.73,0,0,1-1.21,1.84,5,5,0,0,1-2.72,1.29,19.56,19.56,0,0,1-3,.23L41.38,3A2.54,2.54,0,0,1,42,1.85a1.76,1.76,0,0,1,1.14-.31,3.38,3.38,0,0,1,2.69.93,3.52,3.52,0,0,1,.79,2.34A5.94,5.94,0,0,1,46,7.39Zm27.9,11.85L70.29,0h-1L55.21,19.78a6.61,6.61,0,0,1-1.66,1.78,5.3,5.3,0,0,1-1.55.6V23h7.45v-.81a8,8,0,0,1-2-.34.85.85,0,0,1-.47-.89,2,2,0,0,1,.17-.79,5.32,5.32,0,0,1,.4-.75L59.8,16H68c.22,1.44.35,2.25.37,2.45a16,16,0,0,1,.2,1.81,1.51,1.51,0,0,1-.67,1.47,6.38,6.38,0,0,1-2.31.46V23H77.1v-.81a4.28,4.28,0,0,1-2.28-.55A4.47,4.47,0,0,1,73.93,19.24ZM60.7,14.64l5.62-8.19,1.4,8.19ZM84,.46h20.2l-1.61,6.39-1-.15a5.61,5.61,0,0,0-.88-3.43Q99.2,1.52,94.86,1.51a3.56,3.56,0,0,0-1.76.3A2.05,2.05,0,0,0,92.34,3L90.1,10.5A16.53,16.53,0,0,0,95,9.91c.77-.33,1.62-1.32,2.56-3l1.06.12-2.82,9.2-1-.17c0-.33.08-.61.1-.85s0-.43,0-.56a2.76,2.76,0,0,0-1-2.38c-.66-.49-2.07-.73-4.23-.73l-2.5,8.22a3.56,3.56,0,0,0-.09.39,1.55,1.55,0,0,0,0,.37,1.32,1.32,0,0,0,1,1.33,5.52,5.52,0,0,0,1.78.21V23H78.58V22.1a4.35,4.35,0,0,0,2-.61,3.33,3.33,0,0,0,1.06-1.8L86.32,4.6c.09-.31.16-.58.23-.81a5.05,5.05,0,0,0,.16-1.1c0-.53-.17-.87-.52-1A8.7,8.7,0,0,0,84,1.33Zm24.1,0h20.89l-1.37,6.46-1-.08c-.07-2.2-.76-3.69-2.09-4.49a6.61,6.61,0,0,0-3.2-.72L116,18.84,115.7,20a2.63,2.63,0,0,0-.07.38,1.51,1.51,0,0,0,0,.3c0,.57.2.94.61,1.08a11.19,11.19,0,0,0,2.56.34V23H106.2V22.1a6.49,6.49,0,0,0,2.4-.3,3.19,3.19,0,0,0,1.56-2.1l5.58-18.07a9.07,9.07,0,0,0-4.83,1.2,9.52,9.52,0,0,0-3.34,3.61l-1-.23Z',\n opacity: 1, strokeColor: '', fillColor: '#192760', width: 128.941, height: 22.97, stampFillColor: '#dce3ef', stampStrokeColor: '',\n };\n }\n break;\n case 'Final':\n {\n stampCollection = {\n iconName: 'Final',\n // eslint-disable-next-line max-len\n pathdata: 'M24.94,6l-1.06-.13a4.37,4.37,0,0,0-.91-3q-1.51-1.54-6-1.54a4.28,4.28,0,0,0-1.83.26,1.8,1.8,0,0,0-.78,1.08L12,9.21a20.26,20.26,0,0,0,5.15-.52A6.49,6.49,0,0,0,19.8,6.1l1.1.1L18,14.27l-1.09-.15a6.34,6.34,0,0,0,.11-.74c0-.22,0-.38,0-.5a2.26,2.26,0,0,0-1-2.09c-.68-.42-2.15-.63-4.39-.63L9,17.37a3.09,3.09,0,0,0-.1.34,1.22,1.22,0,0,0,0,.32,1.18,1.18,0,0,0,1,1.17,7,7,0,0,0,1.86.18v.77H0v-.77a5.14,5.14,0,0,0,2.11-.53,3,3,0,0,0,1.1-1.58L8.06,4c.09-.27.17-.5.23-.7a3.74,3.74,0,0,0,.18-1,.83.83,0,0,0-.55-.89,10.94,10.94,0,0,0-2.33-.3V.4h21Zm8.54,12.11a1.49,1.49,0,0,1,0-.28,2.46,2.46,0,0,1,.07-.29l.3-1L38.76,3.29a2.93,2.93,0,0,1,1.09-1.6A5.42,5.42,0,0,1,42,1.17V.4H30.17v.77a10.52,10.52,0,0,1,2.34.31.88.88,0,0,1,.56.94,2.58,2.58,0,0,1-.11.67c-.07.26-.18.57-.32,1L27.79,17.28a2.94,2.94,0,0,1-1.12,1.59,5.28,5.28,0,0,1-2.09.51v.77H36.36v-.77A10.22,10.22,0,0,1,34,19.07.89.89,0,0,1,33.48,18.12ZM66.19,2.24a2.53,2.53,0,0,1,1.87-1l.56-.06V.4H60.5v.77a8,8,0,0,1,2.16.33,1.47,1.47,0,0,1,1,1.48,5.61,5.61,0,0,1-.25,1.34c-.11.4-.25.87-.43,1.38l-3.08,8.35L51.26.4h-8v.77a8.44,8.44,0,0,1,1.86.24,2.26,2.26,0,0,1,1.22,1.05l.17.31L42.11,14.88a13.74,13.74,0,0,1-1.8,3.61,3.36,3.36,0,0,1-2.22.89v.77h8.23v-.77a7.75,7.75,0,0,1-2.1-.31,1.45,1.45,0,0,1-1-1.44,3.56,3.56,0,0,1,.1-.79,16.15,16.15,0,0,1,.64-2L47.85,4.31,58.11,20.64h1l5.5-15A15.48,15.48,0,0,1,66.19,2.24Zm23,17.13v.78H78.08v-.71A7.47,7.47,0,0,0,80.49,19a1.25,1.25,0,0,0,.7-1.29A13.26,13.26,0,0,0,81,16.16c0-.18-.16-.89-.39-2.15H72.06l-2.3,3a3.7,3.7,0,0,0-.42.66,1.54,1.54,0,0,0-.18.69.74.74,0,0,0,.49.78,10.28,10.28,0,0,0,2.06.3v.71H63.94v-.71a6.43,6.43,0,0,0,1.63-.53,6.63,6.63,0,0,0,1.72-1.56L82,0h1l3.78,16.88A3.69,3.69,0,0,0,87.7,19,3.53,3.53,0,0,0,89.24,19.37Zm-8.93-6.53L78.86,5.65,73,12.84Zm32.8,1.44a11.51,11.51,0,0,1-5.23,3.88,21.36,21.36,0,0,1-7,1A4.88,4.88,0,0,1,99.22,19a.74.74,0,0,1-.58-.71,2.33,2.33,0,0,1,0-.48c0-.13.08-.28.13-.43L104,3.29a2.72,2.72,0,0,1,1.19-1.64,9.4,9.4,0,0,1,2.79-.48V.4H95.4v.77a10.42,10.42,0,0,1,2.34.31.88.88,0,0,1,.56.94,2.58,2.58,0,0,1-.11.67c-.07.25-.17.57-.31.94L93,17.27a2.92,2.92,0,0,1-1.12,1.6,4.59,4.59,0,0,1-1.71.47v.81h21.55l2.32-5.74Z',\n opacity: 1, strokeColor: '', fillColor: '#516c30', width: 114.058, height: 20.639, stampFillColor: '#e6eddf', stampStrokeColor: '',\n };\n }\n break;\n case 'Completed':\n {\n stampCollection = {\n iconName: 'Completed',\n // eslint-disable-next-line max-len\n pathdata: 'M16.37,0,15.08,6.9l-.79-.17c0-.41,0-.66,0-.73a2.73,2.73,0,0,0,0-.32,5.33,5.33,0,0,0-.94-3.47A3,3,0,0,0,11,1.07c-2,0-3.68,1.51-5.13,4.55a18.84,18.84,0,0,0-2,8.29q0,3.06,1.2,4.2a3.82,3.82,0,0,0,2.64,1.13,5.3,5.3,0,0,0,3.51-1.43,10.75,10.75,0,0,0,1.78-2.09l.77.65a9.32,9.32,0,0,1-3.12,3.35A7,7,0,0,1,7,20.81a6.66,6.66,0,0,1-5-2.08,7.72,7.72,0,0,1-2-5.57A14.57,14.57,0,0,1,3.05,3.92Q6.1,0,10.29,0A8.92,8.92,0,0,1,13,.43a9.09,9.09,0,0,0,1.65.43.72.72,0,0,0,.6-.23A2.55,2.55,0,0,0,15.6,0ZM32.83,7.11a15.24,15.24,0,0,1-3.11,9.07q-3.31,4.61-7.63,4.6a5.63,5.63,0,0,1-4.42-1.92A7.47,7.47,0,0,1,16,13.72a15.27,15.27,0,0,1,3.18-9.19Q22.46,0,26.57,0a5.82,5.82,0,0,1,4.5,1.92A7.35,7.35,0,0,1,32.83,7.11ZM29.16,4.6a4.92,4.92,0,0,0-.63-2.55,2.14,2.14,0,0,0-2-1.06Q23.4,1,21.24,7.53a27.45,27.45,0,0,0-1.63,8.26A6.68,6.68,0,0,0,19.92,18a2.24,2.24,0,0,0,2.2,1.78,3.71,3.71,0,0,0,2.73-1.29,15,15,0,0,0,2.54-4.93,30.56,30.56,0,0,0,1.3-4.83A23,23,0,0,0,29.16,4.6Zm21.2,13.62a3.83,3.83,0,0,1,.08-.75,8.6,8.6,0,0,1,.19-.88L53.75,3.31a3,3,0,0,1,.85-1.67,2.72,2.72,0,0,1,1.21-.4V.48H50.42L42.66,14.39,41.21.48h-5.8v.76a4.65,4.65,0,0,1,1.45.21c.26.11.38.37.38.78a4.57,4.57,0,0,1-.08.75c-.06.28-.13.61-.23,1L34.34,15a16.85,16.85,0,0,1-1.16,3.65,1.9,1.9,0,0,1-1.42.86v.76h5.3v-.76a3.22,3.22,0,0,1-1.32-.29A1.48,1.48,0,0,1,35,17.74a8.32,8.32,0,0,1,.17-1.42c.07-.37.17-.82.3-1.37L38.06,4.23l1.71,16.38h.71L50,3.76l-3.2,13.58A2.84,2.84,0,0,1,46,19a4.06,4.06,0,0,1-1.76.49v.76h7.93v-.76a4.79,4.79,0,0,1-1.49-.31Q50.36,19,50.36,18.22ZM67.69,9.29a7.39,7.39,0,0,1-4.89,1.58l-.73,0-1.48-.11L59.21,16.6l-.21,1a1,1,0,0,0,0,.3,2.83,2.83,0,0,0,0,.29c0,.5.12.81.35.94a4.74,4.74,0,0,0,1.51.31v.76H53.31v-.76a2.52,2.52,0,0,0,1.33-.52,3.18,3.18,0,0,0,.72-1.59L58.48,4.11q.1-.45.18-.9a4.48,4.48,0,0,0,.08-.72,1,1,0,0,0-.49-1,4.36,4.36,0,0,0-1.36-.23V.48h7.29a7.29,7.29,0,0,1,3.07.57,4,4,0,0,1,2.33,4A5.22,5.22,0,0,1,67.69,9.29Zm-1.8-5a3.65,3.65,0,0,0-.51-2,1.85,1.85,0,0,0-1.7-.79,1,1,0,0,0-.8.28,3.27,3.27,0,0,0-.4,1l-1.66,7,.47.06h.41a4.37,4.37,0,0,0,2-.36,3.14,3.14,0,0,0,1.2-1.18,6.51,6.51,0,0,0,.74-2A9.87,9.87,0,0,0,65.89,4.25Zm16.9,10.1a8.71,8.71,0,0,1-3.35,3.88,9.36,9.36,0,0,1-4.53,1,2.15,2.15,0,0,1-1-.21.75.75,0,0,1-.37-.71,3.18,3.18,0,0,1,0-.47c0-.14,0-.28.08-.44l3.3-14.08a2.94,2.94,0,0,1,.77-1.64,4.47,4.47,0,0,1,1.79-.48V.48h-8v.76a4.8,4.8,0,0,1,1.5.31c.23.13.35.44.35.94a4.36,4.36,0,0,1-.06.67c0,.26-.12.57-.21,1L69.9,17.34a3.18,3.18,0,0,1-.72,1.6,2.53,2.53,0,0,1-1.34.52v.76H81.91l1.49-5.74ZM85.73,1.24a4.59,4.59,0,0,1,1.5.31c.23.13.34.44.34.94a3.84,3.84,0,0,1-.07.7c0,.28-.11.58-.19.92L84.2,17.35a3.18,3.18,0,0,1-.72,1.59,2.27,2.27,0,0,1-1.06.47h-.07v.8H96.2l1.5-5.74-.62-.13a8.14,8.14,0,0,1-3.94,4.17,9.39,9.39,0,0,1-3.94.75A1.75,1.75,0,0,1,88.06,19a.87.87,0,0,1-.27-.66,3.28,3.28,0,0,1,0-.39,5,5,0,0,1,.09-.51l1.67-7.2a5.16,5.16,0,0,1,2.91.57A2.58,2.58,0,0,1,93.24,13c0,.14,0,.31,0,.51s0,.45-.07.73l.7.14,1.88-8.07L95,6.18a5.62,5.62,0,0,1-1.74,2.61,9.05,9.05,0,0,1-3.45.51l1.51-6.56a2.23,2.23,0,0,1,.47-1.06,2,2,0,0,1,1.3-.28c2,0,3.29.5,3.93,1.51a6.13,6.13,0,0,1,.6,3l.68.13L99.4.48H85.73ZM114,6.14l.92-5.66h-14l-1,5,.66.2a7.81,7.81,0,0,1,2.23-3.16,4.91,4.91,0,0,1,3.23-1.06l-3.73,15.85a2.84,2.84,0,0,1-1,1.85,3.48,3.48,0,0,1-1.6.26v.76h8.4v-.76a5.82,5.82,0,0,1-1.71-.3c-.27-.13-.41-.45-.41-.95a2.26,2.26,0,0,1,0-.26c0-.09,0-.2,0-.33l.21-1,3.53-15.1a3.65,3.65,0,0,1,2.14.63c.89.7,1.35,2,1.39,3.94Zm9.44,12.38a9.39,9.39,0,0,1-3.94.75,1.77,1.77,0,0,1-1.14-.26.87.87,0,0,1-.27-.66,3.28,3.28,0,0,1,0-.39,5,5,0,0,1,.09-.51l1.67-7.2a5.12,5.12,0,0,1,2.91.57,2.58,2.58,0,0,1,.75,2.15c0,.14,0,.31,0,.51s0,.45-.07.73l.7.14L126,6.28l-.7-.1a5.78,5.78,0,0,1-1.74,2.61,9.16,9.16,0,0,1-3.46.51l1.51-6.56a2.14,2.14,0,0,1,.48-1.06,2,2,0,0,1,1.3-.28c2,0,3.28.5,3.92,1.51a6,6,0,0,1,.6,3l.68.13,1.08-5.6H116v.76a4.67,4.67,0,0,1,1.51.31c.22.13.34.44.34.94a4,4,0,0,1-.08.7c0,.28-.11.58-.18.92l-3.12,13.24a3.18,3.18,0,0,1-.72,1.59,2.56,2.56,0,0,1-1.34.52v.76h14.06l1.5-5.74-.62-.13A8.14,8.14,0,0,1,123.39,18.52Zm23.32-9.84a11.62,11.62,0,0,1-2.89,7.84,10.6,10.6,0,0,1-8.42,3.7h-7.29v-.76a2.58,2.58,0,0,0,1.18-.41,2.94,2.94,0,0,0,.88-1.71l3.11-13.23c.09-.38.16-.69.21-1a4.49,4.49,0,0,0,.07-.67c0-.5-.12-.81-.36-.94a4.8,4.8,0,0,0-1.5-.31V.48h7.36a7.16,7.16,0,0,1,5.69,2.22A8.72,8.72,0,0,1,146.71,8.68ZM143,6.87a8,8,0,0,0-.64-3.48,3.52,3.52,0,0,0-3.44-2,1.52,1.52,0,0,0-1.11.31,1.75,1.75,0,0,0-.41.83l-3.5,14.9c0,.14,0,.27-.07.39s0,.21,0,.3a1.06,1.06,0,0,0,.3.84,1.75,1.75,0,0,0,1.1.26q4.53,0,6.55-5.42A19.84,19.84,0,0,0,143,6.87Z',\n opacity: 1, strokeColor: '', fillColor: '#516c30', width: 146.706, height: 20.811, stampFillColor: '#e6eddf', stampStrokeColor: '',\n };\n }\n break;\n case 'ForPublicRelease':\n case 'For Public Release':\n {\n stampCollection = {\n iconName: 'For Public Release',\n // eslint-disable-next-line max-len\n pathdata: 'M10.33.48l-.65,5.6L9.27,6a9.74,9.74,0,0,0-.36-3A2.27,2.27,0,0,0,6.57,1.4a.85.85,0,0,0-.71.26,2.67,2.67,0,0,0-.3,1.08L4.65,9.28a3.45,3.45,0,0,0,2-.52,6.65,6.65,0,0,0,1-2.59l.43.1L7,14.34l-.42-.14c0-.29,0-.54,0-.75s0-.38,0-.49a4.17,4.17,0,0,0-.39-2.09,1.91,1.91,0,0,0-1.71-.64l-1,7.21c0,.13,0,.24,0,.35s0,.21,0,.31a1.45,1.45,0,0,0,.38,1.17,1.17,1.17,0,0,0,.72.19v.76H0v-.76a1.31,1.31,0,0,0,.82-.54,4.39,4.39,0,0,0,.42-1.58L3.13,4.11c0-.27.06-.51.09-.71,0-.41.07-.73.07-1a1.34,1.34,0,0,0-.21-.9,2.13,2.13,0,0,0-.91-.3V.48ZM20.5,7.11a22.43,22.43,0,0,1-1.88,9.07q-2,4.61-4.62,4.6a3,3,0,0,1-2.67-1.92,10.91,10.91,0,0,1-1-5.14,22.46,22.46,0,0,1,1.92-9.19Q14.23,0,16.71,0a3.11,3.11,0,0,1,2.72,1.92A10.72,10.72,0,0,1,20.5,7.11ZM18.28,4.6a7.7,7.7,0,0,0-.38-2.55c-.26-.7-.65-1-1.19-1-1.28,0-2.35,2.17-3.22,6.53a43.69,43.69,0,0,0-1,8.26,10.72,10.72,0,0,0,.19,2.2c.24,1.18.69,1.77,1.33,1.77s1.16-.43,1.65-1.29a19.35,19.35,0,0,0,1.54-4.93A48.7,48.7,0,0,0,18,8.71,38.21,38.21,0,0,0,18.28,4.6Zm11.59.16a8.73,8.73,0,0,1-.24,2,5.64,5.64,0,0,1-.8,1.9,3.49,3.49,0,0,1-.93,1,7.31,7.31,0,0,1-1,.52c0,.3.08.49.1.57l1.18,6.66a4.54,4.54,0,0,0,.52,1.7,1.1,1.1,0,0,0,.83.41v.76H26.46l-1.65-9.76h-.43l-.91,6.14-.13,1a2,2,0,0,0,0,.25,2.62,2.62,0,0,0,0,.28,1.57,1.57,0,0,0,.2,1,1.77,1.77,0,0,0,.92.32v.76H19.86v-.76a1.33,1.33,0,0,0,.81-.52,4.35,4.35,0,0,0,.43-1.59L23,4.11c0-.27.07-.51.09-.71a8.23,8.23,0,0,0,.07-1,1.3,1.3,0,0,0-.21-.9,2.08,2.08,0,0,0-.91-.3V.48h4.22A3.79,3.79,0,0,1,28.44,1C29.4,1.66,29.87,2.91,29.87,4.76Zm-2.31-.47a5.77,5.77,0,0,0-.32-2,1.12,1.12,0,0,0-1.09-.81.5.5,0,0,0-.46.26,3.87,3.87,0,0,0-.24,1.05L24.52,9.5a3.73,3.73,0,0,0,1.22-.2,2.1,2.1,0,0,0,1.1-1.13,8.41,8.41,0,0,0,.49-1.62A10.75,10.75,0,0,0,27.56,4.29Zm14.92.78a7.06,7.06,0,0,1-1.14,4.22,3.5,3.5,0,0,1-3,1.58l-.44,0-.89-.11-.84,5.86-.12,1a1.45,1.45,0,0,0,0,.3,2.81,2.81,0,0,0,0,.29,1.38,1.38,0,0,0,.21.94,1.93,1.93,0,0,0,.91.31v.76H32.65v-.76a1.28,1.28,0,0,0,.8-.52,4.3,4.3,0,0,0,.44-1.59L35.77,4.11c0-.3.08-.6.11-.9a5.21,5.21,0,0,0,0-.72,1.29,1.29,0,0,0-.3-1,1.82,1.82,0,0,0-.81-.23V.48h4.4a3,3,0,0,1,1.86.57C42,1.78,42.48,3.12,42.48,5.07Zm-2.23-.82a5.74,5.74,0,0,0-.3-2,1.07,1.07,0,0,0-1-.79.5.5,0,0,0-.49.28,5.11,5.11,0,0,0-.24,1l-1,7,.28.06h.25a1.79,1.79,0,0,0,1.2-.36,2.88,2.88,0,0,0,.73-1.18,10.56,10.56,0,0,0,.44-2A15.74,15.74,0,0,0,40.25,4.25Zm12.91-3V.48H50v.76a1.46,1.46,0,0,1,.82.32A2,2,0,0,1,51.24,3a15,15,0,0,1-.14,1.57q0-.17-.15,1.17l-.89,6.16a29.63,29.63,0,0,1-1,4.77c-.55,1.63-1.31,2.44-2.28,2.44a1.59,1.59,0,0,1-1.38-.77,4.16,4.16,0,0,1-.5-2.23q0-.63.15-2c.06-.5.15-1.14.27-1.93l1.26-8.84a4.13,4.13,0,0,1,.46-1.66,1.66,1.66,0,0,1,1-.46V.48H43.34v.76a2,2,0,0,1,.9.3,1.3,1.3,0,0,1,.21.9,7.27,7.27,0,0,1,0,.75c0,.29-.07.59-.11.92l-1,7.24c-.16,1.14-.27,1.93-.32,2.38a19.16,19.16,0,0,0-.12,2,6.13,6.13,0,0,0,1,3.71,2.93,2.93,0,0,0,2.43,1.33c1.39,0,2.45-.9,3.17-2.69a29.58,29.58,0,0,0,1.23-5.61l1-6.74A24.45,24.45,0,0,1,52.3,2.1,1.22,1.22,0,0,1,53.16,1.24Zm7.14,9.82a5.87,5.87,0,0,1,.68,3,8.55,8.55,0,0,1-1,4.27,3.68,3.68,0,0,1-3.48,1.84H51.82v-.76a1.3,1.3,0,0,0,.72-.4,3.94,3.94,0,0,0,.52-1.71L55,4.1c0-.39.09-.72.12-1s0-.46,0-.6c0-.53-.07-.86-.23-1A1.64,1.64,0,0,0,54,1.24V.48h4.17a3.4,3.4,0,0,1,2.67,1,4.91,4.91,0,0,1,1,3.38,5.33,5.33,0,0,1-1.17,3.61,4.8,4.8,0,0,1-1.68,1.22A4.84,4.84,0,0,1,60.3,11.06Zm-1.66,2.45a3.81,3.81,0,0,0-.73-2.74,2.63,2.63,0,0,0-1.58-.52l-1,7.2a4,4,0,0,0-.05.4c0,.15,0,.32,0,.51a.9.9,0,0,0,.33.82,1.13,1.13,0,0,0,.59.12c1,0,1.67-.87,2.1-2.59A13.54,13.54,0,0,0,58.64,13.51Zm.12-5.29A5.92,5.92,0,0,0,59.4,6.1a12.74,12.74,0,0,0,.13-1.74,6.54,6.54,0,0,0-.29-2.11,1.11,1.11,0,0,0-1.13-.81.49.49,0,0,0-.49.32,3.52,3.52,0,0,0-.23,1l-.94,6.62A7.45,7.45,0,0,0,58,9,1.8,1.8,0,0,0,58.76,8.22Zm11.71,6.14a8.78,8.78,0,0,1-2,3.87,4,4,0,0,1-2.74,1,.89.89,0,0,1-.63-.21.93.93,0,0,1-.22-.7,3.4,3.4,0,0,1,0-.48c0-.14,0-.28,0-.44l2-14.08a3.8,3.8,0,0,1,.47-1.64,1.94,1.94,0,0,1,1.08-.48V.48H63.6v.76a2,2,0,0,1,.91.31,1.36,1.36,0,0,1,.22.94c0,.2,0,.42,0,.67s-.07.57-.13,1L62.68,17.34a4.31,4.31,0,0,1-.44,1.6,1.28,1.28,0,0,1-.8.52v.76h8.5l.9-5.74ZM76.89.48H72.32v.76a1.92,1.92,0,0,1,.9.31c.15.13.22.44.22.94a5.56,5.56,0,0,1,0,.67c0,.26-.07.57-.12,1L71.39,17.35A4.35,4.35,0,0,1,71,18.94a1.33,1.33,0,0,1-.81.52v.76h4.57v-.76a1.81,1.81,0,0,1-.91-.32,1.39,1.39,0,0,1-.21-.94c0-.09,0-.18,0-.28l0-.3.12-1L75.65,3.36a4.43,4.43,0,0,1,.43-1.6,1.3,1.3,0,0,1,.81-.52Zm8.46.15A.38.38,0,0,1,85,.87a4.12,4.12,0,0,1-1-.44A3.51,3.51,0,0,0,82.37,0Q79.84,0,78,3.92a21.42,21.42,0,0,0-1.84,9.24,11.15,11.15,0,0,0,1.2,5.57,3.51,3.51,0,0,0,3.05,2.08,3.15,3.15,0,0,0,2.21-1.09,8.92,8.92,0,0,0,1.89-3.35L84,15.72A11.08,11.08,0,0,1,83,17.81a2.71,2.71,0,0,1-2.12,1.43,2,2,0,0,1-1.59-1.13,8.33,8.33,0,0,1-.74-4.2A29.46,29.46,0,0,1,79.7,5.62Q81,1.08,82.8,1.07c.59,0,1.07.38,1.45,1.14a8,8,0,0,1,.57,3.47,2.73,2.73,0,0,1,0,.32c0,.08,0,.32,0,.73l.48.17L86.05,0h-.47A2.93,2.93,0,0,1,85.35.63Zm21.41,13.73.37.12-.9,5.74H94.72l-1.66-9.76h-.43l-.91,6.14-.13,1c0,.08,0,.16,0,.25s0,.19,0,.28a1.57,1.57,0,0,0,.2,1,1.81,1.81,0,0,0,.92.32v.76H88.11v-.76a1.3,1.3,0,0,0,.81-.52,4.35,4.35,0,0,0,.43-1.59L91.24,4.11c0-.27.07-.51.09-.71a8.23,8.23,0,0,0,.07-1,1.3,1.3,0,0,0-.21-.9,2.08,2.08,0,0,0-.91-.3V.48h4.23A3.81,3.81,0,0,1,96.7,1c1,.65,1.43,1.9,1.43,3.75a8.73,8.73,0,0,1-.24,2,5.66,5.66,0,0,1-.81,1.9,3.49,3.49,0,0,1-.93,1,6.73,6.73,0,0,1-1,.52c0,.3.09.49.1.57l1.18,6.66a4.74,4.74,0,0,0,.52,1.7,1,1,0,0,0,.78.39,1.23,1.23,0,0,0,.78-.5A4.3,4.3,0,0,0,99,17.35l1.88-13.24c.05-.34.09-.64.12-.92a6.28,6.28,0,0,0,0-.7,1.45,1.45,0,0,0-.2-.94,2,2,0,0,0-.91-.31V.48h8.26l-.65,5.6L107.1,6a9.57,9.57,0,0,0-.36-3,2.3,2.3,0,0,0-2.38-1.51c-.41,0-.67.09-.78.28a2.87,2.87,0,0,0-.29,1.06l-.91,6.56a3.57,3.57,0,0,0,2.08-.51,6.59,6.59,0,0,0,1.06-2.61l.42.1-1.14,8.08-.42-.15c0-.28,0-.52.05-.73s0-.37,0-.51a3.6,3.6,0,0,0-.46-2.15,2.14,2.14,0,0,0-1.75-.57l-1,7.2a4.7,4.7,0,0,0-.06.51c0,.16,0,.29,0,.39a1.12,1.12,0,0,0,.17.66.77.77,0,0,0,.69.26,3.77,3.77,0,0,0,2.37-.75A7.71,7.71,0,0,0,106.76,14.36ZM95.09,8.17a7.75,7.75,0,0,0,.49-1.62,10.75,10.75,0,0,0,.23-2.26,5.77,5.77,0,0,0-.32-2,1.11,1.11,0,0,0-1.08-.81.48.48,0,0,0-.46.26,3.44,3.44,0,0,0-.25,1.05L92.78,9.5A3.78,3.78,0,0,0,94,9.3,2.08,2.08,0,0,0,95.09,8.17Zm21.32,6.19a8.67,8.67,0,0,1-2,3.87,4,4,0,0,1-2.73,1,.89.89,0,0,1-.63-.21.93.93,0,0,1-.23-.7c0-.19,0-.35,0-.48s0-.28,0-.44l2-14.08a3.84,3.84,0,0,1,.46-1.64,2,2,0,0,1,1.08-.48V.48h-4.86v.76a2,2,0,0,1,.91.31,1.38,1.38,0,0,1,.21.94,5.56,5.56,0,0,1,0,.67c0,.26-.07.57-.12,1l-1.89,13.23a4.16,4.16,0,0,1-.43,1.6,1.27,1.27,0,0,1-.81.52v.76h8.51l.9-5.74Zm8.64,0a7.71,7.71,0,0,1-2.38,4.16,3.82,3.82,0,0,1-2.38.75.77.77,0,0,1-.69-.26,1.2,1.2,0,0,1-.17-.66c0-.1,0-.23,0-.39a4.7,4.7,0,0,1,.06-.51l1-7.2a2.17,2.17,0,0,1,1.76.57,3.69,3.69,0,0,1,.45,2.15c0,.14,0,.31,0,.51s0,.45,0,.73l.42.15,1.13-8.08-.42-.1a6.79,6.79,0,0,1-1,2.61,3.63,3.63,0,0,1-2.09.51l.91-6.56a2.87,2.87,0,0,1,.29-1.06c.12-.19.38-.28.78-.28A2.3,2.3,0,0,1,125,2.91a9.57,9.57,0,0,1,.36,3l.41.13.65-5.6h-8.26v.76a1.93,1.93,0,0,1,.91.31,1.45,1.45,0,0,1,.2.94,6.28,6.28,0,0,1,0,.7c0,.28-.07.58-.11.92l-1.89,13.24a4.35,4.35,0,0,1-.43,1.59,1.33,1.33,0,0,1-.81.52v.76h8.5l.91-5.74Zm10.29,5.15v.71h-4.65v-.71a1.44,1.44,0,0,0,.93-.41,2.08,2.08,0,0,0,.27-1.29c0-.22,0-.75-.08-1.58,0-.17-.06-.89-.15-2.15h-3.31l-.89,3a5.32,5.32,0,0,0-.16.66,3.4,3.4,0,0,0-.08.69,1.06,1.06,0,0,0,.2.78,1.68,1.68,0,0,0,.79.3v.71h-3v-.71a1.8,1.8,0,0,0,.63-.53,6.45,6.45,0,0,0,.67-1.56L132.19.07h.4L134.06,17a7.15,7.15,0,0,0,.36,2.08A1.13,1.13,0,0,0,135.34,19.51Zm-3.79-6.6L131,5.73l-2.27,7.18Zm9.6-4-1.32-2.09a4.57,4.57,0,0,1-.47-.94,5.12,5.12,0,0,1-.28-1.78,5.57,5.57,0,0,1,.27-1.77c.27-.83.7-1.24,1.29-1.24s1.21.51,1.57,1.54A8.78,8.78,0,0,1,142.65,5l.06,1,.39.1.63-5.91h-.46a2.09,2.09,0,0,1-.25.54.46.46,0,0,1-.41.21.57.57,0,0,1-.24-.05,1.23,1.23,0,0,1-.26-.12l-.39-.24a2.34,2.34,0,0,0-.5-.25,2.41,2.41,0,0,0-.85-.16,2.55,2.55,0,0,0-2.31,1.67,9.11,9.11,0,0,0-.83,4.05,10.47,10.47,0,0,0,1.88,5.5A9.21,9.21,0,0,1,141,16a6.49,6.49,0,0,1-.5,2.63,1.59,1.59,0,0,1-1.43,1.14,1.42,1.42,0,0,1-1-.4,3.55,3.55,0,0,1-.78-1.16,7.09,7.09,0,0,1-.52-1.92c-.05-.43-.1-1.12-.13-2.06l-.44-.06-.55,6.62h.46a4.11,4.11,0,0,1,.25-.82.36.36,0,0,1,.36-.23.47.47,0,0,1,.17,0,2.38,2.38,0,0,1,.27.18l.39.27a3.52,3.52,0,0,0,.84.43,2.48,2.48,0,0,0,.84.15,2.91,2.91,0,0,0,2.63-1.88,9.24,9.24,0,0,0,1-4.21,9.85,9.85,0,0,0-.49-3.24A12.1,12.1,0,0,0,141.15,8.92Zm7.75-7.24c.12-.19.38-.28.78-.28a2.3,2.3,0,0,1,2.38,1.51,9.57,9.57,0,0,1,.36,3l.41.13.65-5.6h-8.26v.76a1.93,1.93,0,0,1,.91.31c.14.13.2.44.2.94a6.28,6.28,0,0,1,0,.7c0,.28-.07.58-.11.92l-1.89,13.24a4.35,4.35,0,0,1-.43,1.59,1.33,1.33,0,0,1-.81.52v.76h8.5l.91-5.74-.38-.12a7.71,7.71,0,0,1-2.38,4.16,3.82,3.82,0,0,1-2.38.75.77.77,0,0,1-.69-.26,1.2,1.2,0,0,1-.17-.66c0-.1,0-.23,0-.39a4.7,4.7,0,0,1,.06-.51l1-7.2a2.17,2.17,0,0,1,1.76.57,3.69,3.69,0,0,1,.45,2.15c0,.14,0,.31,0,.51s0,.45,0,.73l.42.15,1.14-8.08-.43-.1a6.79,6.79,0,0,1-1.05,2.61,3.63,3.63,0,0,1-2.09.51l.91-6.56A2.87,2.87,0,0,1,148.9,1.68Z',\n opacity: 1, strokeColor: '', fillColor: '#192760', width: 153.485, height: 20.812, stampFillColor: '#dce3ef', stampStrokeColor: '',\n };\n }\n break;\n case 'NotForPublicRelease':\n case 'Not For Public Release':\n {\n stampCollection = {\n iconName: 'Not For Public Release',\n // eslint-disable-next-line max-len\n pathdata: 'M9,2.35q-.21.9-.51,3.48L6.69,21.05H6.38L3.11,4.45,1.85,15.19c-.1.89-.17,1.56-.2,2s0,.55,0,.81A2.39,2.39,0,0,0,2,19.45a1.09,1.09,0,0,0,.67.33v.77H0v-.77a1.22,1.22,0,0,0,.71-.91,33.91,33.91,0,0,0,.57-3.68L2.7,2.88l-.06-.3a2.09,2.09,0,0,0-.39-1.07,1,1,0,0,0-.59-.25V.48H4.2L6.93,14.36l1-8.49c.06-.53.11-1,.14-1.4.06-.63.08-1.08.08-1.37a2.67,2.67,0,0,0-.3-1.5,1.07,1.07,0,0,0-.69-.34V.48H9.73v.78l-.18.06C9.29,1.41,9.09,1.75,9,2.35ZM16.74,2a13.19,13.19,0,0,1,.87,5.28,27.45,27.45,0,0,1-1.54,9.22q-1.65,4.66-3.79,4.67-1.35,0-2.19-1.95a13.31,13.31,0,0,1-.85-5.23A27.59,27.59,0,0,1,10.82,4.6C11.91,1.53,13.15,0,14.51,0,15.41,0,16.16.65,16.74,2Zm-.95,2.73a9.33,9.33,0,0,0-.31-2.59c-.21-.72-.54-1.08-1-1.08-1.05,0-1.92,2.21-2.64,6.64a54.69,54.69,0,0,0-.81,8.4,14.21,14.21,0,0,0,.15,2.23c.2,1.2.57,1.8,1.1,1.8s.95-.43,1.35-1.31a22.84,22.84,0,0,0,1.26-5c.28-1.55.49-3.19.65-4.91S15.79,5.74,15.79,4.68Zm2.3.93.32.21A10.7,10.7,0,0,1,19.52,2.6a1.87,1.87,0,0,1,1.6-1.08L19.27,17.63a4,4,0,0,1-.52,1.88,1,1,0,0,1-.79.27v.77h4.17v-.77a1.72,1.72,0,0,1-.85-.3,1.56,1.56,0,0,1-.2-1,2.44,2.44,0,0,1,0-.27c0-.08,0-.2,0-.33l.11-1L23,1.52A1.31,1.31,0,0,1,24,2.17a8.49,8.49,0,0,1,.69,4l.33.07L25.5.48H18.57ZM28.75.48v.78a1.39,1.39,0,0,1,.74.31,1.44,1.44,0,0,1,.18.9q0,.36-.06,1c0,.2-.05.44-.07.71L28,17.62a5.34,5.34,0,0,1-.35,1.61,1.05,1.05,0,0,1-.67.55v.77H30.7v-.77a.82.82,0,0,1-.6-.2,1.69,1.69,0,0,1-.31-1.18c0-.11,0-.22,0-.32l0-.35.83-7.33a1.42,1.42,0,0,1,1.4.64,5,5,0,0,1,.33,2.13c0,.12,0,.28,0,.5s0,.47,0,.76l.34.15.94-8.21-.35-.1a8.12,8.12,0,0,1-.85,2.64,2.42,2.42,0,0,1-1.64.52l.74-6.65a3.34,3.34,0,0,1,.25-1.1.64.64,0,0,1,.59-.26A1.91,1.91,0,0,1,34.28,3a11.32,11.32,0,0,1,.29,3.06l.34.13.54-5.7Zm15,6.75a27.46,27.46,0,0,1-1.55,9.22q-1.65,4.66-3.79,4.67-1.35,0-2.19-1.95a13.49,13.49,0,0,1-.85-5.23A27.59,27.59,0,0,1,37,4.6Q38.65,0,40.69,0c.91,0,1.65.65,2.23,2A13.17,13.17,0,0,1,43.8,7.23ZM42,4.68a9.3,9.3,0,0,0-.32-2.59c-.21-.72-.53-1.08-1-1.08Q39.12,1,38,7.65a54.69,54.69,0,0,0-.81,8.4,13,13,0,0,0,.16,2.23c.2,1.2.56,1.8,1.09,1.8s1-.43,1.35-1.31a23.28,23.28,0,0,0,1.27-5c.27-1.55.49-3.19.64-4.91S42,5.74,42,4.68ZM50.32,1c.78.66,1.17,1.93,1.17,3.8a11,11,0,0,1-.19,2,7.2,7.2,0,0,1-.66,1.93,3.45,3.45,0,0,1-.77,1,5.58,5.58,0,0,1-.8.52c0,.31.07.51.08.58l1,6.78a5.63,5.63,0,0,0,.42,1.72.85.85,0,0,0,.69.42v.77H48.69l-1.36-9.92H47l-.75,6.25-.1,1c0,.08,0,.16,0,.26v.28a1.94,1.94,0,0,0,.16,1,1.39,1.39,0,0,0,.75.32v.77H43.27v-.77a1.07,1.07,0,0,0,.66-.53,4.83,4.83,0,0,0,.36-1.61L45.84,4.18c0-.28.06-.52.08-.72,0-.42,0-.75,0-1a1.48,1.48,0,0,0-.17-.91,1.39,1.39,0,0,0-.74-.31V.48h3.46A2.67,2.67,0,0,1,50.32,1Zm-.73,3.34a7.2,7.2,0,0,0-.26-2.09c-.18-.55-.47-.83-.89-.83a.4.4,0,0,0-.38.27,4.46,4.46,0,0,0-.2,1.06L47.1,9.65a2.39,2.39,0,0,0,1-.2A2,2,0,0,0,49,8.31a10,10,0,0,0,.4-1.65A12.71,12.71,0,0,0,49.59,4.37Zm11.1-3.3c.77.74,1.16,2.1,1.16,4.09a8.51,8.51,0,0,1-.94,4.28A2.78,2.78,0,0,1,58.48,11h-.36l-.73-.12-.69,6-.11,1c0,.1,0,.2,0,.3s0,.2,0,.3a1.7,1.7,0,0,0,.17.95,1.47,1.47,0,0,0,.75.32v.77H53.77v-.77a1.07,1.07,0,0,0,.66-.53,4.83,4.83,0,0,0,.36-1.61L56.34,4.17l.09-.9c0-.31,0-.55,0-.74a1.58,1.58,0,0,0-.25-1,1.33,1.33,0,0,0-.67-.23V.48h3.62A2.11,2.11,0,0,1,60.69,1.07ZM60,4.32a7,7,0,0,0-.25-2.06c-.17-.53-.45-.8-.84-.8a.4.4,0,0,0-.4.29,6.14,6.14,0,0,0-.2,1L57.5,9.93l.23.06h.21a1.3,1.3,0,0,0,1-.36,3.17,3.17,0,0,0,.6-1.2,12.69,12.69,0,0,0,.36-2A19.64,19.64,0,0,0,60,4.32Zm10.6-3.06V.48H68v.78a1.17,1.17,0,0,1,.68.32A2.43,2.43,0,0,1,69,3.05c0,.32,0,.85-.11,1.6,0-.12,0,.27-.12,1.18l-.73,6.26a36.28,36.28,0,0,1-.8,4.86c-.45,1.65-1.07,2.47-1.87,2.47a1.27,1.27,0,0,1-1.13-.78,5.05,5.05,0,0,1-.41-2.27c0-.43,0-1.1.13-2,.05-.51.12-1.17.21-2l1-9a4.69,4.69,0,0,1,.38-1.69,1.24,1.24,0,0,1,.8-.47V.48H62.55v.78a1.39,1.39,0,0,1,.74.31,1.56,1.56,0,0,1,.17.91c0,.21,0,.47,0,.76s-.06.6-.1.94l-.85,7.36c-.14,1.15-.23,2-.27,2.42-.06.76-.1,1.44-.1,2a7.4,7.4,0,0,0,.81,3.78,2.35,2.35,0,0,0,2,1.35c1.14,0,2-.91,2.6-2.74a35.69,35.69,0,0,0,1-5.7l.79-6.85a30.83,30.83,0,0,1,.58-3.7A1.15,1.15,0,0,1,70.61,1.26Zm5.86,10a7.16,7.16,0,0,1,.56,3.1,10.31,10.31,0,0,1-.86,4.34,2.93,2.93,0,0,1-2.86,1.87h-3.8v-.77a1.07,1.07,0,0,0,.59-.41,4.64,4.64,0,0,0,.43-1.73L72.08,4.17c0-.4.08-.73.1-1s0-.46,0-.61a1.83,1.83,0,0,0-.19-1,1.22,1.22,0,0,0-.73-.28V.48h3.43a2.58,2.58,0,0,1,2.19,1.06A5.92,5.92,0,0,1,77.69,5a6.3,6.3,0,0,1-1,3.67,4.18,4.18,0,0,1-1.39,1.24A4.36,4.36,0,0,1,76.47,11.24Zm-1.36,2.49a4.59,4.59,0,0,0-.6-2.79,2,2,0,0,0-1.3-.52l-.84,7.32c0,.12,0,.25,0,.4s0,.33,0,.52a1.06,1.06,0,0,0,.27.84.77.77,0,0,0,.48.11c.8,0,1.38-.87,1.73-2.63A17.3,17.3,0,0,0,75.11,13.73Zm.1-5.38a7.33,7.33,0,0,0,.52-2.15,15,15,0,0,0,.11-1.77,7.89,7.89,0,0,0-.24-2.14c-.16-.55-.46-.83-.93-.83a.42.42,0,0,0-.4.33,4.42,4.42,0,0,0-.19,1l-.77,6.73a5.23,5.23,0,0,0,1.27-.36A1.77,1.77,0,0,0,75.21,8.35Zm9.61,6.24a9.73,9.73,0,0,1-1.66,3.94,2.93,2.93,0,0,1-2.25,1,.64.64,0,0,1-.51-.21,1,1,0,0,1-.19-.71c0-.19,0-.35,0-.49s0-.29,0-.44L81.91,3.41a4.53,4.53,0,0,1,.38-1.66,1.47,1.47,0,0,1,.88-.49V.48h-4v.78a1.39,1.39,0,0,1,.75.32,1.59,1.59,0,0,1,.18.95c0,.2,0,.43,0,.68s0,.58-.1,1L78.42,17.62a5.28,5.28,0,0,1-.35,1.63,1.12,1.12,0,0,1-.67.53v.77h7l.73-5.83ZM90.09,1.26V.48H86.34v.78a1.38,1.38,0,0,1,.74.32,1.59,1.59,0,0,1,.18.95q0,.3,0,.69c0,.25-.06.57-.11.95L85.58,17.64a5.41,5.41,0,0,1-.36,1.61,1.07,1.07,0,0,1-.66.53v.77h3.75v-.77a1.47,1.47,0,0,1-.75-.32,1.78,1.78,0,0,1-.17-1c0-.08,0-.18,0-.28s0-.2,0-.3l.1-1L89.07,3.41a5.68,5.68,0,0,1,.35-1.62A1.1,1.1,0,0,1,90.09,1.26Zm7-.62a.33.33,0,0,1-.3.24,3.1,3.1,0,0,1-.82-.44A2.5,2.5,0,0,0,94.59,0Q92.51,0,91,4a26.57,26.57,0,0,0-1.51,9.39,13.57,13.57,0,0,0,1,5.67c.66,1.41,1.49,2.11,2.5,2.11A2.46,2.46,0,0,0,94.79,20a9.66,9.66,0,0,0,1.55-3.4L96,16a12.68,12.68,0,0,1-.89,2.13c-.54,1-1.12,1.45-1.74,1.45-.47,0-.91-.39-1.31-1.15a10.33,10.33,0,0,1-.6-4.27,36.59,36.59,0,0,1,1-8.43c.72-3.08,1.57-4.63,2.54-4.63.48,0,.88.39,1.19,1.16a10,10,0,0,1,.47,3.53V6.1c0,.07,0,.32,0,.74L97,7l.64-7h-.38A4.28,4.28,0,0,1,97,.64Zm17.57,14,.31.13-.75,5.83h-9.45l-1.35-9.92H103l-.74,6.25-.11,1c0,.08,0,.16,0,.26v.28a1.94,1.94,0,0,0,.16,1,1.39,1.39,0,0,0,.75.32v.77H99.3v-.77a1.12,1.12,0,0,0,.67-.53,5.18,5.18,0,0,0,.35-1.61l1.55-13.46c0-.28.06-.52.08-.72,0-.42,0-.75,0-1a1.48,1.48,0,0,0-.17-.91,1.39,1.39,0,0,0-.74-.31V.48h3.46a2.64,2.64,0,0,1,1.8.55c.78.66,1.17,1.93,1.17,3.8a11,11,0,0,1-.19,2,6.57,6.57,0,0,1-.66,1.93,3.61,3.61,0,0,1-.76,1,6.48,6.48,0,0,1-.81.52c0,.31.07.51.08.58l1,6.78a5.63,5.63,0,0,0,.42,1.72.84.84,0,0,0,.65.4,1.06,1.06,0,0,0,.64-.51,5.41,5.41,0,0,0,.36-1.61l1.54-13.47c0-.34.07-.65.1-.92s0-.52,0-.72a1.61,1.61,0,0,0-.17-.95,1.31,1.31,0,0,0-.74-.32V.48h6.78l-.53,5.7-.34-.13a11.8,11.8,0,0,0-.3-3.09,1.92,1.92,0,0,0-2-1.54c-.33,0-.55.1-.64.29a3.46,3.46,0,0,0-.24,1.07L111,9.45a2.6,2.6,0,0,0,1.72-.51,7.79,7.79,0,0,0,.86-2.66l.35.11-.93,8.2-.35-.15c0-.28,0-.53,0-.74v-.52a4.42,4.42,0,0,0-.37-2.18,1.56,1.56,0,0,0-1.44-.58l-.83,7.32c0,.18,0,.35,0,.51s0,.3,0,.4a1.45,1.45,0,0,0,.13.67c.09.18.28.26.57.26a2.72,2.72,0,0,0,2-.76A8.33,8.33,0,0,0,114.61,14.59ZM105,8.31a9.81,9.81,0,0,0,.41-1.65,13.72,13.72,0,0,0,.18-2.29,6.87,6.87,0,0,0-.26-2.09c-.17-.55-.47-.83-.89-.83a.4.4,0,0,0-.38.27,5.05,5.05,0,0,0-.2,1.06l-.76,6.87a2.39,2.39,0,0,0,1-.2A2,2,0,0,0,105,8.31Zm17.51,6.28a9.86,9.86,0,0,1-1.67,3.94,2.93,2.93,0,0,1-2.25,1,.64.64,0,0,1-.51-.21,1.1,1.1,0,0,1-.19-.71c0-.19,0-.35,0-.49s0-.29,0-.44l1.64-14.32A4.53,4.53,0,0,1,120,1.75a1.47,1.47,0,0,1,.89-.49V.48h-4v.78a1.39,1.39,0,0,1,.75.32,1.59,1.59,0,0,1,.18.95c0,.2,0,.43,0,.68s0,.58-.1,1l-1.55,13.45a5.28,5.28,0,0,1-.35,1.63,1.1,1.1,0,0,1-.66.53v.77h7l.74-5.83Zm7.09,0a8.33,8.33,0,0,1-2,4.23,2.73,2.73,0,0,1-2,.76c-.29,0-.48-.08-.57-.26a1.45,1.45,0,0,1-.13-.67c0-.1,0-.23,0-.4s0-.33,0-.51l.83-7.32a1.58,1.58,0,0,1,1.44.58,4.42,4.42,0,0,1,.37,2.18c0,.14,0,.31,0,.52s0,.46,0,.74l.34.15.94-8.2-.35-.11a7.71,7.71,0,0,1-.87,2.66,2.56,2.56,0,0,1-1.71.51l.75-6.67A3.46,3.46,0,0,1,127,1.71c.09-.19.31-.29.64-.29a1.92,1.92,0,0,1,2,1.54,11.8,11.8,0,0,1,.3,3.09l.33.13.54-5.7H124v.78a1.31,1.31,0,0,1,.75.32,1.7,1.7,0,0,1,.17.95,6.75,6.75,0,0,1,0,.72c0,.27-.05.58-.09.92l-1.55,13.47a5.18,5.18,0,0,1-.35,1.61,1.12,1.12,0,0,1-.67.53v.77h7l.75-5.83Zm8.45,5.24v.72h-3.83v-.72a1.11,1.11,0,0,0,.77-.41,2.52,2.52,0,0,0,.23-1.31c0-.23,0-.77-.07-1.62,0-.17-.05-.9-.13-2.18h-2.71l-.74,3c0,.2-.09.43-.13.67a4.44,4.44,0,0,0-.06.71,1.27,1.27,0,0,0,.16.79,1.35,1.35,0,0,0,.65.3v.72h-2.47v-.72a1.66,1.66,0,0,0,.52-.54,7.25,7.25,0,0,0,.55-1.58L135.49.07h.33L137,17.23a8.87,8.87,0,0,0,.3,2.11A.9.9,0,0,0,138.08,19.83ZM135,13.12l-.47-7.3-1.86,7.3Zm7.88-4-1.09-2.13a6.38,6.38,0,0,1-.39-1,6.65,6.65,0,0,1-.23-1.82,6.93,6.93,0,0,1,.23-1.8q.33-1.26,1-1.26c.57,0,1,.53,1.3,1.57a10.87,10.87,0,0,1,.36,2.39l0,1,.33.1.51-6h-.38a2.26,2.26,0,0,1-.2.54.38.38,0,0,1-.34.22.54.54,0,0,1-.19-.05l-.22-.13-.32-.25a2.36,2.36,0,0,0-.41-.25,1.82,1.82,0,0,0-.7-.16c-.81,0-1.44.57-1.9,1.7a11.21,11.21,0,0,0-.68,4.12,12.36,12.36,0,0,0,1.55,5.58,10.74,10.74,0,0,1,1.54,4.78,7.8,7.8,0,0,1-.41,2.67c-.28.76-.67,1.15-1.17,1.15a1.07,1.07,0,0,1-.79-.4,3.78,3.78,0,0,1-.64-1.18,7.79,7.79,0,0,1-.42-1.95c-.05-.44-.08-1.14-.11-2.1l-.36-.06-.46,6.73h.38a6.32,6.32,0,0,1,.2-.83.31.31,0,0,1,.3-.24.21.21,0,0,1,.14,0,1.06,1.06,0,0,1,.22.18l.32.27a3,3,0,0,0,.69.44,1.72,1.72,0,0,0,.69.15c.92,0,1.64-.63,2.16-1.91a11.22,11.22,0,0,0,.78-4.28,12.2,12.2,0,0,0-.4-3.29A14.21,14.21,0,0,0,142.85,9.07Zm6.36-7.36c.09-.19.31-.29.64-.29a1.92,1.92,0,0,1,2,1.54,11.8,11.8,0,0,1,.3,3.09l.33.13L153,.48h-6.79v.78a1.31,1.31,0,0,1,.75.32,1.7,1.7,0,0,1,.17.95,6.75,6.75,0,0,1,0,.72c0,.27-.05.58-.09.92l-1.55,13.47a5.18,5.18,0,0,1-.35,1.61,1.12,1.12,0,0,1-.67.53v.77h7l.75-5.83-.31-.13a8.33,8.33,0,0,1-2,4.23,2.73,2.73,0,0,1-2,.76c-.29,0-.48-.08-.57-.26a1.45,1.45,0,0,1-.13-.67c0-.1,0-.23,0-.4s0-.33.05-.51l.83-7.32a1.58,1.58,0,0,1,1.44.58,4.42,4.42,0,0,1,.37,2.18c0,.14,0,.31,0,.52s0,.46,0,.74l.34.15.94-8.2-.35-.11a7.71,7.71,0,0,1-.87,2.66,2.56,2.56,0,0,1-1.71.51L149,2.78A3.46,3.46,0,0,1,149.21,1.71Z',\n opacity: 1, strokeColor: '', fillColor: '#192760', width: 152.969, height: 21.152, stampFillColor: '#dce3ef', stampStrokeColor: '',\n };\n }\n break;\n case 'ForComment':\n case 'For Comment':\n {\n stampCollection = {\n iconName: 'For Comment',\n // eslint-disable-next-line max-len\n pathdata: 'M14.1.48l-.89,5.6L12.65,6a7.14,7.14,0,0,0-.48-3c-.54-1-1.6-1.54-3.19-1.54a1.37,1.37,0,0,0-1,.26,2.06,2.06,0,0,0-.42,1.08L6.35,9.28a6,6,0,0,0,2.73-.52,5.92,5.92,0,0,0,1.41-2.59l.58.1L9.52,14.34,9,14.2c0-.29,0-.54.05-.75s0-.38,0-.49a3.15,3.15,0,0,0-.55-2.09,3.07,3.07,0,0,0-2.32-.64L4.77,17.44c0,.13,0,.24-.06.35s0,.21,0,.31a1.23,1.23,0,0,0,.53,1.17,2,2,0,0,0,1,.19v.76H0v-.76a1.91,1.91,0,0,0,1.12-.54,3.56,3.56,0,0,0,.58-1.58L4.27,4.11c.05-.27.09-.51.12-.71a7.42,7.42,0,0,0,.1-1c0-.48-.1-.77-.29-.9A3.54,3.54,0,0,0,3,1.24V.48ZM28,7.11a17.42,17.42,0,0,1-2.57,9.07q-2.75,4.61-6.3,4.6a4.33,4.33,0,0,1-3.65-1.92,8.53,8.53,0,0,1-1.41-5.14,17.56,17.56,0,0,1,2.62-9.19Q19.43,0,22.82,0a4.48,4.48,0,0,1,3.72,1.92A8.46,8.46,0,0,1,28,7.11ZM25,4.6a5.72,5.72,0,0,0-.52-2.55,1.72,1.72,0,0,0-1.63-1c-1.74,0-3.2,2.17-4.39,6.53a32.66,32.66,0,0,0-1.35,8.26,8.24,8.24,0,0,0,.26,2.2c.33,1.18.94,1.77,1.82,1.77a2.88,2.88,0,0,0,2.25-1.29,16.48,16.48,0,0,0,2.1-4.93,37.09,37.09,0,0,0,1.07-4.83A28.26,28.26,0,0,0,25,4.6Zm15.83.16a6.49,6.49,0,0,1-.33,2,5.12,5.12,0,0,1-1.09,1.9,4.65,4.65,0,0,1-1.27,1,11.5,11.5,0,0,1-1.35.52c.07.3.12.49.14.57l1.62,6.66a3.79,3.79,0,0,0,.7,1.7,1.75,1.75,0,0,0,1.14.41v.76H36.13l-2.26-9.76h-.59L32,16.6l-.17,1,0,.25a2.62,2.62,0,0,0,0,.28q0,.8.27,1a3,3,0,0,0,1.25.32v.76H27.11v-.76a1.93,1.93,0,0,0,1.11-.52,3.54,3.54,0,0,0,.59-1.59L31.38,4.11c.06-.27.1-.51.13-.71a6,6,0,0,0,.1-1c0-.47-.1-.77-.29-.9a3.54,3.54,0,0,0-1.24-.3V.48h5.76a6.77,6.77,0,0,1,3,.53Q40.79,2,40.79,4.76Zm-3.16-.47a4.35,4.35,0,0,0-.44-2,1.54,1.54,0,0,0-1.48-.81.75.75,0,0,0-.63.26,2.78,2.78,0,0,0-.33,1.05L33.48,9.5a6.85,6.85,0,0,0,1.67-.2,2.55,2.55,0,0,0,1.49-1.13,6.37,6.37,0,0,0,.67-1.62A7.81,7.81,0,0,0,37.63,4.29ZM58.49,0a2.61,2.61,0,0,1-.32.63.55.55,0,0,1-.49.24A7,7,0,0,1,56.31.43,6.15,6.15,0,0,0,54.1,0q-3.47,0-6,3.92a16.73,16.73,0,0,0-2.51,9.24,8.73,8.73,0,0,0,1.64,5.57,5,5,0,0,0,7.19,1A8.89,8.89,0,0,0,57,16.37l-.64-.65a10.47,10.47,0,0,1-1.47,2.09A4,4,0,0,1,52,19.24a2.89,2.89,0,0,1-2.17-1.13c-.67-.75-1-2.15-1-4.2a22.2,22.2,0,0,1,1.62-8.29q1.8-4.54,4.23-4.55a2.33,2.33,0,0,1,2,1.14,6.16,6.16,0,0,1,.78,3.47c0,.14,0,.25,0,.32s0,.32,0,.73l.66.17L59.12,0ZM72.71,7.11a17.33,17.33,0,0,1-2.57,9.07c-1.82,3.07-3.93,4.6-6.3,4.6a4.34,4.34,0,0,1-3.65-1.92,8.53,8.53,0,0,1-1.4-5.14A17.55,17.55,0,0,1,61.4,4.53Q64.15,0,67.54,0a4.48,4.48,0,0,1,3.72,1.92A8.39,8.39,0,0,1,72.71,7.11Zm-3-2.51a5.72,5.72,0,0,0-.52-2.55,1.72,1.72,0,0,0-1.63-1c-1.74,0-3.2,2.17-4.39,6.53a32.66,32.66,0,0,0-1.35,8.26,8.24,8.24,0,0,0,.26,2.2c.33,1.18.94,1.77,1.82,1.77a2.85,2.85,0,0,0,2.25-1.29,16,16,0,0,0,2.1-4.93,34.08,34.08,0,0,0,1.07-4.83A28.26,28.26,0,0,0,69.68,4.6Zm17.5,13.62a4.63,4.63,0,0,1,.07-.75c0-.3.09-.59.15-.88L90,3.31a3.32,3.32,0,0,1,.7-1.67,2,2,0,0,1,1-.4V.48H87.23l-6.4,13.91L79.63.48H74.84v.76a3.29,3.29,0,0,1,1.2.21c.21.11.31.37.31.78a4.35,4.35,0,0,1-.07.75c0,.28-.11.61-.18,1L74,15a19.63,19.63,0,0,1-1,3.65,1.54,1.54,0,0,1-1.17.86v.76H76.2v-.76a2.31,2.31,0,0,1-1.09-.29,1.6,1.6,0,0,1-.58-1.43,8.8,8.8,0,0,1,.14-1.42c0-.37.14-.82.24-1.37L77,4.24l1.41,16.37H79L86.89,3.76,84.25,17.34A2.94,2.94,0,0,1,83.61,19a2.87,2.87,0,0,1-1.44.49v.76h6.54v-.76a3.39,3.39,0,0,1-1.23-.31Q87.18,19,87.18,18.22Zm17.73,0a4.63,4.63,0,0,1,.07-.75c0-.3.1-.59.16-.88l2.58-13.28a3.24,3.24,0,0,1,.69-1.67,2,2,0,0,1,1-.4V.48H105l-6.4,13.91L97.36.48H92.57v.76a3.29,3.29,0,0,1,1.2.21c.21.11.32.37.32.78A5.65,5.65,0,0,1,94,3c0,.28-.11.61-.19,1L91.69,15a19.63,19.63,0,0,1-1,3.65,1.54,1.54,0,0,1-1.17.86v.76h4.38v-.76a2.33,2.33,0,0,1-1.1-.29,1.6,1.6,0,0,1-.58-1.43,10.12,10.12,0,0,1,.14-1.42c.06-.37.14-.82.25-1.37L94.76,4.24l1.41,16.37h.59l7.86-16.85L102,17.34a3.1,3.1,0,0,1-.64,1.63,3,3,0,0,1-1.45.49v.76h6.55v-.76a3.46,3.46,0,0,1-1.24-.31Q104.91,19,104.91,18.22Zm11.52.3a6.56,6.56,0,0,1-3.25.75,1.27,1.27,0,0,1-.94-.26,1,1,0,0,1-.22-.66,3,3,0,0,1,0-.39,4.88,4.88,0,0,1,.08-.51l1.38-7.2a3.65,3.65,0,0,1,2.4.57,2.92,2.92,0,0,1,.62,2.15c0,.14,0,.31,0,.51s0,.45-.06.73l.58.15,1.55-8.08-.58-.1a5.92,5.92,0,0,1-1.44,2.61,6.32,6.32,0,0,1-2.85.51L115,2.74a2.44,2.44,0,0,1,.39-1.06,1.43,1.43,0,0,1,1.07-.28c1.63,0,2.71.5,3.25,1.51a7.37,7.37,0,0,1,.49,3l.56.13.89-5.6H110.31v.76a3.28,3.28,0,0,1,1.25.31c.19.13.28.44.28.94a4.83,4.83,0,0,1-.06.7c0,.28-.09.58-.16.92l-2.57,13.24a3.54,3.54,0,0,1-.59,1.59,1.93,1.93,0,0,1-1.11.52v.76H119l1.24-5.74-.51-.12A7.7,7.7,0,0,1,116.43,18.52ZM136.6,1.24V.48h-4.3v.76a2.5,2.5,0,0,1,1.14.33A1.8,1.8,0,0,1,134,3.05a10.58,10.58,0,0,1-.14,1.34c-.05.41-.13.87-.22,1.39L132,14.12,127.41.48h-4.22v.76a2.53,2.53,0,0,1,1,.24,1.82,1.82,0,0,1,.64,1.06l.1.3L122.55,15a19.54,19.54,0,0,1-1,3.61,1.59,1.59,0,0,1-1.18.9v.76h4.37v-.76a2.5,2.5,0,0,1-1.12-.32,1.67,1.67,0,0,1-.55-1.44,5.32,5.32,0,0,1,0-.79c0-.43.17-1.09.34-2l2.08-10.57L131,20.71h.52l2.91-15a24.72,24.72,0,0,1,.85-3.42,1.42,1.42,0,0,1,1-1Zm.48-.76-.81,5,.54.2a8.1,8.1,0,0,1,1.85-3.16,3.63,3.63,0,0,1,2.66-1.06l-3.08,15.85a3,3,0,0,1-.86,1.85,2.42,2.42,0,0,1-1.32.26v.76H143v-.76a4,4,0,0,1-1.41-.3c-.23-.13-.34-.45-.34-.95a2.26,2.26,0,0,1,0-.26c0-.09,0-.2,0-.33l.17-1,2.92-15.1a2.64,2.64,0,0,1,1.76.63c.74.7,1.12,2,1.15,3.94l.55.07L148.6.48Z',\n opacity: 1, strokeColor: '', fillColor: '#192760', width: 148.603, height: 20.812, stampFillColor: '#dce3ef', stampStrokeColor: '',\n };\n }\n break;\n case 'Void':\n {\n stampCollection = {\n iconName: 'Void',\n // eslint-disable-next-line max-len\n pathdata: 'M27.88,1.72a6.53,6.53,0,0,0-1.81,1.42L9,21.12H7.54L4.09,5.83A11.83,11.83,0,0,0,2.82,2Q2.3,1.4,0,1.26V.48H13.54v.78a11,11,0,0,0-2.37.18q-1.11.27-1.11,1.05a1.43,1.43,0,0,0,0,.29c0,.09,0,.19,0,.28l2.35,12,8.56-9a25.11,25.11,0,0,0,1.83-2.14,3.15,3.15,0,0,0,.82-1.68c0-.41-.28-.69-.84-.82a12.57,12.57,0,0,0-2.08-.15V.48h8.7v.78A7.11,7.11,0,0,0,27.88,1.72ZM57.37,7.23q0,4.85-5.56,9.22a21.41,21.41,0,0,1-13.62,4.67,14.41,14.41,0,0,1-7.89-1.95,6,6,0,0,1-3-5.23q0-4.92,5.66-9.34A21.12,21.12,0,0,1,46.2,0a15,15,0,0,1,8,2A6,6,0,0,1,57.37,7.23ZM50.82,4.68a3.46,3.46,0,0,0-1.13-2.59A4.93,4.93,0,0,0,46.17,1q-5.64,0-9.49,6.64c-1.94,3.36-2.92,6.16-2.92,8.4a4.27,4.27,0,0,0,.56,2.23q1.08,1.8,3.93,1.8a9.24,9.24,0,0,0,4.87-1.31,15.24,15.24,0,0,0,4.54-5A21.81,21.81,0,0,0,50,8.85,14.23,14.23,0,0,0,50.82,4.68ZM66,18.49a1.49,1.49,0,0,1,0-.28c0-.1,0-.2.08-.3l.35-1L72,3.41a2.94,2.94,0,0,1,1.25-1.62,6.79,6.79,0,0,1,2.4-.53V.48H62.19v.78a13.27,13.27,0,0,1,2.67.32.88.88,0,0,1,.64.95,2.38,2.38,0,0,1-.12.69c-.08.25-.2.57-.36.95L59.45,17.64a3,3,0,0,1-1.28,1.61,6.84,6.84,0,0,1-2.39.53v.77H69.27v-.77a13.72,13.72,0,0,1-2.67-.32A.9.9,0,0,1,66,18.49Zm38.25-9.67q0,4.59-5.15,8-5.73,3.77-15,3.76h-13v-.77a7.4,7.4,0,0,0,2.1-.41,3.08,3.08,0,0,0,1.57-1.75L80.28,4.17c.16-.38.28-.7.37-1a2.27,2.27,0,0,0,.12-.68.89.89,0,0,0-.64-.95,13.41,13.41,0,0,0-2.68-.32V.48H90.6q6.68,0,10.15,2.27A6.92,6.92,0,0,1,104.23,8.82ZM97.58,7a5.28,5.28,0,0,0-1.13-3.54q-1.77-2-6.14-2a4.24,4.24,0,0,0-2,.32,1.77,1.77,0,0,0-.74.84L81.35,17.73a1.72,1.72,0,0,0-.12.39,1.89,1.89,0,0,0,0,.31.89.89,0,0,0,.54.85,5.1,5.1,0,0,0,2,.26q8.07,0,11.68-5.5A12.61,12.61,0,0,0,97.58,7Z',\n opacity: 1, strokeColor: '', fillColor: '#8a251a', width: 104.233, height: 21.123, stampFillColor: '#f6dedd', stampStrokeColor: '',\n };\n }\n break;\n case 'PreliminaryResults':\n case 'Preliminary Results':\n {\n stampCollection = {\n iconName: 'Preliminary Results',\n // eslint-disable-next-line max-len\n pathdata: 'M9.23,5.08q0-3-1.32-4.08A2.6,2.6,0,0,0,6.17.41H2v.78a1.5,1.5,0,0,1,.76.23,1.39,1.39,0,0,1,.28,1c0,.19,0,.43,0,.73s-.07.61-.1.91L1.17,17.56a4.76,4.76,0,0,1-.41,1.62A1.18,1.18,0,0,1,0,19.7v.78H4.25V19.7a1.77,1.77,0,0,1-.86-.31,1.5,1.5,0,0,1-.2-1c0-.09,0-.19,0-.3a1.36,1.36,0,0,1,0-.29l.12-1,.78-6L5,11h.41a3.21,3.21,0,0,0,2.78-1.6A7.57,7.57,0,0,0,9.23,5.08ZM7,6.32a10,10,0,0,1-.42,2,3,3,0,0,1-.68,1.21,1.63,1.63,0,0,1-1.13.36H4.53l-.27-.06,1-7.15a4.75,4.75,0,0,1,.22-1,.45.45,0,0,1,.46-.29,1,1,0,0,1,1,.8,6.22,6.22,0,0,1,.29,2.06A18,18,0,0,1,7,6.32ZM23.4,18.75a3.35,3.35,0,0,1-2.23.76.68.68,0,0,1-.64-.26,1.27,1.27,0,0,1-.16-.68c0-.09,0-.23,0-.39s0-.34.05-.51l.95-7.33a1.92,1.92,0,0,1,1.65.59,4,4,0,0,1,.42,2.18c0,.14,0,.31,0,.52s0,.46,0,.74l.4.15,1.07-8.21-.4-.1a7,7,0,0,1-1,2.65,3.15,3.15,0,0,1-2,.52l.85-6.67a3,3,0,0,1,.28-1.08c.11-.19.35-.28.73-.28a2.16,2.16,0,0,1,2.23,1.54A10.27,10.27,0,0,1,26,6l.39.13L27,.41H19.2v.78a1.67,1.67,0,0,1,.86.31,1.52,1.52,0,0,1,.19,1,6.58,6.58,0,0,1,0,.71c0,.28-.07.59-.11.93L18.33,17.56a4.59,4.59,0,0,1-.4,1.62,1.22,1.22,0,0,1-.74.51,1,1,0,0,1-.73-.4A5.08,5.08,0,0,1,16,17.56l-1.1-6.77c0-.08,0-.27-.1-.58a5.14,5.14,0,0,0,.92-.53,3.23,3.23,0,0,0,.87-1,6,6,0,0,0,.76-1.93,9.63,9.63,0,0,0,.22-2c0-1.87-.44-3.14-1.34-3.81a3.4,3.4,0,0,0-2-.54h-4v.78a1.78,1.78,0,0,1,.85.3,1.4,1.4,0,0,1,.19.91c0,.24,0,.56-.06,1,0,.21-.05.45-.09.73L9.31,17.56a4.53,4.53,0,0,1-.41,1.62,1.15,1.15,0,0,1-.75.52v.78h4.28V19.7a1.62,1.62,0,0,1-.86-.32,1.72,1.72,0,0,1-.18-1v-.29c0-.09,0-.18,0-.25l.12-1,.86-6.24h.4l1.55,9.92h10.8L26,14.65l-.35-.13A7.9,7.9,0,0,1,23.4,18.75ZM13.67,9.38a3.35,3.35,0,0,1-1.15.2l.87-6.87a4,4,0,0,1,.23-1.06.45.45,0,0,1,.43-.27,1.05,1.05,0,0,1,1,.83,6.14,6.14,0,0,1,.3,2.08,11.74,11.74,0,0,1-.21,2.29,9,9,0,0,1-.47,1.65A2,2,0,0,1,13.67,9.38ZM35,14.65l-.84,5.83h-8V19.7a1.24,1.24,0,0,0,.76-.52,4.73,4.73,0,0,0,.4-1.63L29.15,4.1q.08-.57.12-1c0-.26,0-.48,0-.68a1.42,1.42,0,0,0-.21-1,1.67,1.67,0,0,0-.85-.31V.41h4.56v.78a1.67,1.67,0,0,0-1,.49,4.17,4.17,0,0,0-.44,1.66L29.49,17.65c0,.16,0,.31,0,.45a3.47,3.47,0,0,0,0,.48,1,1,0,0,0,.21.72.8.8,0,0,0,.59.21,3.54,3.54,0,0,0,2.56-1.05,9.24,9.24,0,0,0,1.91-3.94Zm2.79,4.73a1.61,1.61,0,0,0,.85.32v.78H34.39V19.7a1.18,1.18,0,0,0,.76-.52,4.76,4.76,0,0,0,.41-1.62L37.33,4.1c.05-.38.09-.7.11-1a5.83,5.83,0,0,0,0-.68,1.5,1.5,0,0,0-.2-1,1.71,1.71,0,0,0-.85-.31V.41h4.29v.78a1.22,1.22,0,0,0-.77.52,4.9,4.9,0,0,0-.39,1.63L37.78,16.8l-.11,1,0,.29c0,.11,0,.2,0,.29A1.52,1.52,0,0,0,37.83,19.38Zm12.2,0a1.81,1.81,0,0,0,.85.31v.78h-4.5V19.7a1.64,1.64,0,0,0,1-.49,4,4,0,0,0,.44-1.66l1.81-13.8-5.4,17.12h-.4l-1-16.64L41.39,15.12c-.07.56-.13,1-.17,1.39-.06.61-.09,1.09-.09,1.45a2,2,0,0,0,.4,1.45,1.19,1.19,0,0,0,.75.29v.78h-3V19.7a1.21,1.21,0,0,0,.81-.87,29.47,29.47,0,0,0,.66-3.71L42.21,4c0-.38.09-.71.12-1a5.41,5.41,0,0,0,.05-.75c0-.42-.07-.69-.21-.8a1.69,1.69,0,0,0-.83-.21V.41h3.29l.83,14.14L49.85.41h3.07v.78a1.12,1.12,0,0,0-.69.41,4.08,4.08,0,0,0-.48,1.69L50,16.79c0,.29-.08.59-.11.89s0,.56,0,.76A1.41,1.41,0,0,0,50,19.39Zm5,0a1.61,1.61,0,0,0,.85.32v.78H51.56V19.7a1.18,1.18,0,0,0,.76-.52,4.76,4.76,0,0,0,.41-1.62L54.5,4.1c0-.38.09-.7.11-1a5.83,5.83,0,0,0,0-.68,1.5,1.5,0,0,0-.2-1,1.71,1.71,0,0,0-.85-.31V.41h4.29v.78a1.22,1.22,0,0,0-.77.52,4.9,4.9,0,0,0-.39,1.63L55,16.8l-.11,1,0,.29c0,.11,0,.2,0,.29A1.52,1.52,0,0,0,55,19.38ZM66.13,5.75,64.13,21h-.36L60,4.38,58.6,15.12c-.12.89-.2,1.55-.23,2a7.32,7.32,0,0,0,0,.81,2.17,2.17,0,0,0,.38,1.46,1.32,1.32,0,0,0,.77.32v.78h-3V19.7a1.26,1.26,0,0,0,.81-.91,29,29,0,0,0,.65-3.67L59.56,2.81,59.5,2.5a2,2,0,0,0-.45-1.06,1.21,1.21,0,0,0-.67-.25V.41h2.9L64.4,14.28,65.52,5.8c.07-.53.12-1,.16-1.41.06-.62.09-1.08.09-1.36a2.45,2.45,0,0,0-.34-1.51,1.39,1.39,0,0,0-.79-.33V.41h3v.78l-.21.06c-.29.08-.52.43-.68,1A34.22,34.22,0,0,0,66.13,5.75ZM83.27,1A3.41,3.41,0,0,0,81.21.41h-4v.78a1.74,1.74,0,0,1,.85.3c.14.13.2.43.2.91,0,.24,0,.56-.06,1,0,.21-.06.45-.09.73L76.38,17.56A4.53,4.53,0,0,1,76,19.18a1.18,1.18,0,0,1-.76.52v0a1,1,0,0,1-.67-.45,8.11,8.11,0,0,1-.34-2.12L72.83,0h-.38L67.11,17.64a6.42,6.42,0,0,1-.63,1.58,1.84,1.84,0,0,1-.59.54v.72h2.83v-.72a1.68,1.68,0,0,1-.75-.31,1.16,1.16,0,0,1-.18-.79,3.46,3.46,0,0,1,.07-.7,5.16,5.16,0,0,1,.15-.67l.84-3H72c.08,1.28.13,2,.13,2.18.06.85.08,1.39.08,1.61a2.26,2.26,0,0,1-.25,1.31,1.43,1.43,0,0,1-.88.42v.72H79.5V19.7a1.58,1.58,0,0,1-.86-.32,1.7,1.7,0,0,1-.19-1c0-.1,0-.2,0-.29a1.81,1.81,0,0,1,0-.25l.12-1,.85-6.24h.41l1.55,9.92h2.9V19.7a1,1,0,0,1-.79-.41A5.15,5.15,0,0,1,83,17.56l-1.11-6.77c0-.08,0-.27-.09-.58a5.53,5.53,0,0,0,.92-.53,3.52,3.52,0,0,0,.87-1,6.16,6.16,0,0,0,.75-1.93,9.67,9.67,0,0,0,.23-2C84.61,2.89,84.16,1.62,83.27,1ZM69.19,13.05l2.13-7.3.53,7.3Zm13-6.47a8.39,8.39,0,0,1-.46,1.65,2,2,0,0,1-1,1.15,3.29,3.29,0,0,1-1.14.2l.87-6.87a3.61,3.61,0,0,1,.23-1.06.45.45,0,0,1,.43-.27,1.05,1.05,0,0,1,1,.83,6.14,6.14,0,0,1,.3,2.08A11,11,0,0,1,82.22,6.58ZM90.48.41h3v.78a1.07,1.07,0,0,0-.55.41,6.13,6.13,0,0,0-.77,1.62l-2.72,8-.72,5.55c0,.22-.07.51-.1.86a7.29,7.29,0,0,0-.06.73,1.46,1.46,0,0,0,.29,1.07,1.61,1.61,0,0,0,.83.25v.78H85V19.7a1.56,1.56,0,0,0,.93-.39,3.7,3.7,0,0,0,.53-1.76l.85-6.45-1.26-8a6.07,6.07,0,0,0-.36-1.47.81.81,0,0,0-.7-.4V.41h4v.78a1.32,1.32,0,0,0-.76.23c-.15.12-.23.4-.23.84a4.46,4.46,0,0,0,0,.48c0,.19,0,.39.07.6l1,6.54,1.88-5.55c.1-.29.18-.55.24-.79a4.68,4.68,0,0,0,.14-1.11,1.35,1.35,0,0,0-.31-1,1.14,1.14,0,0,0-.66-.2Zm18.61,1.22c.1-.19.35-.28.73-.28a2.16,2.16,0,0,1,2.23,1.54A10.27,10.27,0,0,1,112.39,6l.38.13.62-5.7h-7.76v.78a1.67,1.67,0,0,1,.86.31,1.59,1.59,0,0,1,.19,1,6.58,6.58,0,0,1,0,.71c0,.28-.07.59-.11.93l-1.77,13.46a4.53,4.53,0,0,1-.41,1.62,1.17,1.17,0,0,1-.73.51,1,1,0,0,1-.73-.4,5.08,5.08,0,0,1-.49-1.73l-1.1-6.77c0-.08,0-.27-.1-.58a5.14,5.14,0,0,0,.92-.53,3.4,3.4,0,0,0,.88-1,6.16,6.16,0,0,0,.75-1.93,9.63,9.63,0,0,0,.22-2c0-1.87-.44-3.14-1.34-3.81a3.38,3.38,0,0,0-2-.54h-4v.78a1.78,1.78,0,0,1,.85.3,1.4,1.4,0,0,1,.19.91c0,.24,0,.56-.06,1,0,.21,0,.45-.09.73L95.74,17.56a4.53,4.53,0,0,1-.41,1.62,1.15,1.15,0,0,1-.75.52v.78h4.28V19.7a1.62,1.62,0,0,1-.86-.32,1.72,1.72,0,0,1-.18-1v-.29c0-.09,0-.18,0-.25l.12-1,.86-6.24h.4l1.55,9.92h10.8l.85-5.83-.35-.13a7.9,7.9,0,0,1-2.24,4.23,3.35,3.35,0,0,1-2.23.76.71.71,0,0,1-.65-.26,1.37,1.37,0,0,1-.15-.68c0-.09,0-.23,0-.39s0-.34.05-.51l.95-7.33a1.92,1.92,0,0,1,1.65.59,4,4,0,0,1,.42,2.18c0,.14,0,.31,0,.52s0,.46,0,.74l.4.15,1.07-8.21-.41-.1a7,7,0,0,1-1,2.65,3.15,3.15,0,0,1-2,.52l.85-6.67A3,3,0,0,1,109.09,1.63Zm-9,7.75a3.35,3.35,0,0,1-1.15.2l.87-6.87a4,4,0,0,1,.23-1.06.45.45,0,0,1,.43-.27,1.05,1.05,0,0,1,1,.83,6.14,6.14,0,0,1,.3,2.08,11.74,11.74,0,0,1-.21,2.29,9,9,0,0,1-.47,1.65A2,2,0,0,1,100.1,9.38ZM120.18.07h.43l-.59,6-.37-.1-.05-1a10.11,10.11,0,0,0-.41-2.39c-.34-1-.83-1.57-1.48-1.57s-.95.42-1.21,1.26a6.17,6.17,0,0,0-.25,1.8,5.92,5.92,0,0,0,.26,1.82,5.23,5.23,0,0,0,.44,1L118.19,9a12.6,12.6,0,0,1,1.12,2.57,10.75,10.75,0,0,1,.47,3.29,10,10,0,0,1-.9,4.29,2.76,2.76,0,0,1-2.46,1.91,2.17,2.17,0,0,1-.79-.15,3.28,3.28,0,0,1-.79-.44l-.36-.28-.26-.18a.38.38,0,0,0-.16,0,.34.34,0,0,0-.34.23,5.5,5.5,0,0,0-.23.84h-.43l.52-6.73.41.06c0,1,.07,1.66.12,2.09a7.13,7.13,0,0,0,.49,1.95,3.52,3.52,0,0,0,.73,1.18,1.25,1.25,0,0,0,.9.41c.57,0,1-.39,1.34-1.15a7.13,7.13,0,0,0,.47-2.68,9.86,9.86,0,0,0-1.76-4.77,11.23,11.23,0,0,1-1.77-5.58,9.8,9.8,0,0,1,.78-4.12A2.41,2.41,0,0,1,117.46,0a2.06,2.06,0,0,1,.79.16,1.9,1.9,0,0,1,.47.25l.37.25a1.15,1.15,0,0,0,.25.12.47.47,0,0,0,.22,0A.44.44,0,0,0,120,.62,2.6,2.6,0,0,0,120.18.07Zm10,2a26.67,26.67,0,0,0-.66,3.7l-.9,6.85a32.12,32.12,0,0,1-1.16,5.7c-.68,1.83-1.67,2.74-3,2.74a2.7,2.7,0,0,1-2.28-1.36,6.67,6.67,0,0,1-.92-3.77,19.46,19.46,0,0,1,.11-2c0-.46.15-1.26.3-2.42l1-7.36c0-.33.08-.64.11-.93s0-.55,0-.77a1.38,1.38,0,0,0-.2-.91,1.74,1.74,0,0,0-.85-.3V.41h4.43v.78a1.39,1.39,0,0,0-.91.47,4.25,4.25,0,0,0-.44,1.68l-1.18,9c-.11.8-.19,1.46-.25,2q-.15,1.37-.15,2a4.41,4.41,0,0,0,.48,2.27,1.44,1.44,0,0,0,1.29.78c.91,0,1.62-.82,2.13-2.48a30.62,30.62,0,0,0,.91-4.85L129,5.76c.1-.91.14-1.3.13-1.19a14.64,14.64,0,0,0,.13-1.6,2.12,2.12,0,0,0-.38-1.46,1.35,1.35,0,0,0-.77-.32V.41H131v.78A1.18,1.18,0,0,0,130.23,2.06Zm8.41,12.59-.84,5.83h-8V19.7a1.24,1.24,0,0,0,.76-.52,4.73,4.73,0,0,0,.4-1.63L132.75,4.1q.08-.57.12-1c0-.26,0-.48,0-.68,0-.51-.06-.83-.2-1a1.67,1.67,0,0,0-.85-.31V.41h4.56v.78a1.67,1.67,0,0,0-1,.49A4.17,4.17,0,0,0,135,3.34l-1.87,14.31c0,.16,0,.31-.05.45s0,.3,0,.48a1,1,0,0,0,.21.72.8.8,0,0,0,.59.21,3.54,3.54,0,0,0,2.56-1.05,9.24,9.24,0,0,0,1.91-3.94Zm7.72-8.56a7.63,7.63,0,0,0-.79-4,1.53,1.53,0,0,0-1.21-.64l-2,15.35-.12,1a2.47,2.47,0,0,0,0,.34,2.35,2.35,0,0,0,0,.26c0,.52.08.84.23,1a2,2,0,0,0,1,.3v.78h-4.76V19.7a1.18,1.18,0,0,0,.9-.26,3.75,3.75,0,0,0,.6-1.88l2.11-16.11a2.17,2.17,0,0,0-1.83,1.08,9.57,9.57,0,0,0-1.27,3.21l-.37-.2.56-5.13h7.91l-.52,5.76Zm3.41-3.79a6.17,6.17,0,0,0-.25,1.8,5.63,5.63,0,0,0,.26,1.82,5.23,5.23,0,0,0,.44,1L151.46,9a13.19,13.19,0,0,1,1.13,2.57,11.08,11.08,0,0,1,.46,3.29,10,10,0,0,1-.9,4.29,2.76,2.76,0,0,1-2.46,1.91,2.21,2.21,0,0,1-.79-.15,3.28,3.28,0,0,1-.79-.44l-.36-.28-.26-.18a.38.38,0,0,0-.16,0,.34.34,0,0,0-.34.23,5.5,5.5,0,0,0-.23.84h-.43l.52-6.73.41.06c0,1,.07,1.66.12,2.09a7.13,7.13,0,0,0,.49,1.95,3.52,3.52,0,0,0,.73,1.18,1.25,1.25,0,0,0,.9.41c.57,0,1-.39,1.34-1.15a7.13,7.13,0,0,0,.47-2.68,9.86,9.86,0,0,0-1.76-4.77,11.23,11.23,0,0,1-1.77-5.58,9.8,9.8,0,0,1,.78-4.12A2.41,2.41,0,0,1,150.73,0a2.06,2.06,0,0,1,.79.16,1.9,1.9,0,0,1,.47.25l.37.25a1.34,1.34,0,0,0,.24.12.56.56,0,0,0,.23,0,.44.44,0,0,0,.39-.21,2.6,2.6,0,0,0,.23-.55h.43l-.59,6-.37-.1,0-1a10.11,10.11,0,0,0-.41-2.39c-.34-1-.83-1.57-1.48-1.57S150,1.46,149.77,2.3Z',\n opacity: 1, strokeColor: '', fillColor: '#192760', width: 153.879, height: 21.051, stampFillColor: '#dce3ef', stampStrokeColor: '',\n };\n }\n break;\n case 'InformationOnly':\n case 'Information Only':\n {\n stampCollection = {\n iconName: 'Information Only',\n // eslint-disable-next-line max-len\n pathdata: 'M4,19.14a2,2,0,0,0,1,.32v.76H0v-.76a1.42,1.42,0,0,0,.87-.52,4,4,0,0,0,.47-1.59l2-13.24c.06-.38.1-.69.13-1a5.73,5.73,0,0,0,0-.67c0-.5-.08-.81-.24-.94a2.2,2.2,0,0,0-1-.31V.48H7.26v.76a1.48,1.48,0,0,0-.88.52,4.14,4.14,0,0,0-.45,1.6l-2,13.24-.13,1c0,.1,0,.19,0,.3a2.72,2.72,0,0,0,0,.28A1.32,1.32,0,0,0,4,19.14ZM18.17,1.3l.24-.06V.48H15v.76a1.66,1.66,0,0,1,.9.33,2.08,2.08,0,0,1,.4,1.48,12.85,12.85,0,0,1-.1,1.34c-.05.41-.11.87-.18,1.39l-1.29,8.34L11.15.48H7.83v.76a1.69,1.69,0,0,1,.77.24,1.9,1.9,0,0,1,.51,1.06l.07.3L7.33,15a24.86,24.86,0,0,1-.76,3.61,1.32,1.32,0,0,1-.92.9v.76H9.09v-.76a1.67,1.67,0,0,1-.88-.32,1.92,1.92,0,0,1-.44-1.44,7.09,7.09,0,0,1,0-.79c0-.43.13-1.09.27-2L9.72,4.38,14,20.71h.41l2.3-15a28.78,28.78,0,0,1,.67-3.42C17.57,1.72,17.83,1.38,18.17,1.3ZM19.33.48v.76a2.32,2.32,0,0,1,1,.3c.15.13.23.42.23.9,0,.23,0,.55-.07,1,0,.2-.06.44-.1.71l-2,13.23a4,4,0,0,1-.46,1.58,1.39,1.39,0,0,1-.88.54v.76h4.89v-.76a1.36,1.36,0,0,1-.78-.19,1.39,1.39,0,0,1-.41-1.17c0-.1,0-.21,0-.31s0-.22,0-.35l1.09-7.21a2.09,2.09,0,0,1,1.83.64A3.81,3.81,0,0,1,24.1,13c0,.11,0,.28,0,.49s0,.46,0,.75l.45.14,1.22-8.07-.46-.1a6.19,6.19,0,0,1-1.11,2.59A3.89,3.89,0,0,1,22,9.28l1-6.54a2.43,2.43,0,0,1,.33-1.08.93.93,0,0,1,.76-.26,2.45,2.45,0,0,1,2.52,1.54A9,9,0,0,1,27,6l.44.13.7-5.6ZM39.06,7.11a21,21,0,0,1-2,9.07q-2.16,4.61-5,4.6a3.28,3.28,0,0,1-2.88-1.92,10.29,10.29,0,0,1-1.11-5.14,21.08,21.08,0,0,1,2.07-9.19Q32.31,0,35,0a3.37,3.37,0,0,1,2.93,1.92A10.14,10.14,0,0,1,39.06,7.11ZM36.68,4.6a7,7,0,0,0-.42-2.55A1.37,1.37,0,0,0,35,1c-1.37,0-2.52,2.17-3.46,6.53a40.81,40.81,0,0,0-1.07,8.26,10,10,0,0,0,.21,2.2c.26,1.18.74,1.77,1.43,1.77s1.24-.43,1.78-1.29a18.75,18.75,0,0,0,1.65-4.93,43.28,43.28,0,0,0,.85-4.83A36.93,36.93,0,0,0,36.68,4.6ZM61,19.15a2.25,2.25,0,0,0,1,.31v.76H56.84v-.76A2,2,0,0,0,58,19a3.6,3.6,0,0,0,.5-1.63L60.56,3.76l-6.2,16.85H53.9L52.78,4.24,51.12,15c-.09.55-.15,1-.2,1.37a13,13,0,0,0-.11,1.42,1.8,1.8,0,0,0,.46,1.43,1.54,1.54,0,0,0,.86.29v.76H45.49l-1.78-9.76h-.47l-1,6.14-.13,1,0,.25c0,.09,0,.19,0,.28a1.47,1.47,0,0,0,.22,1,2,2,0,0,0,1,.32v.76H38.37v-.76a1.42,1.42,0,0,0,.88-.52,4.21,4.21,0,0,0,.46-1.59l2-13.24c0-.27.08-.51.11-.71a8.23,8.23,0,0,0,.07-1,1.23,1.23,0,0,0-.23-.9,2.32,2.32,0,0,0-1-.3V.48h4.54A4.34,4.34,0,0,1,47.62,1c1,.65,1.54,1.9,1.54,3.75a7.78,7.78,0,0,1-.26,2A5.56,5.56,0,0,1,48,8.62a3.87,3.87,0,0,1-1,1,8.06,8.06,0,0,1-1.06.52c.05.3.09.49.11.57l1.27,6.66a4.58,4.58,0,0,0,.55,1.7,1.23,1.23,0,0,0,.83.39,1.31,1.31,0,0,0,.86-.84A23,23,0,0,0,50.36,15L52.05,4c.06-.37.11-.7.15-1a7.42,7.42,0,0,0,0-.75c0-.41-.08-.67-.25-.78a2.09,2.09,0,0,0-.94-.21V.48h3.77l1,13.91,5-13.91h3.51v.76a1.46,1.46,0,0,0-.79.4A3.71,3.71,0,0,0,63,3.31L61,16.59c0,.29-.09.58-.13.88s-.05.55-.05.75Q60.79,19,61,19.15Zm-15.14-11a7.46,7.46,0,0,0,.53-1.62,9.54,9.54,0,0,0,.25-2.26,5.31,5.31,0,0,0-.35-2,1.18,1.18,0,0,0-1.16-.81.54.54,0,0,0-.5.26,3.37,3.37,0,0,0-.26,1.05l-1,6.76a4.28,4.28,0,0,0,1.31-.2A2.17,2.17,0,0,0,45.89,8.17ZM73.21,19.51v.71h-5v-.71a1.61,1.61,0,0,0,1-.41,1.92,1.92,0,0,0,.3-1.29c0-.22,0-.75-.09-1.58,0-.17-.06-.89-.16-2.15H65.68l-1,3c-.06.2-.12.42-.17.66a3.4,3.4,0,0,0-.08.69q0,.62.21.78a1.9,1.9,0,0,0,.86.3v.71H62.29v-.71A2,2,0,0,0,63,19a6.47,6.47,0,0,0,.72-1.56L69.82.07h.43L71.83,17A6.77,6.77,0,0,0,72.22,19,1.23,1.23,0,0,0,73.21,19.51Zm-4.08-6.6-.61-7.18-2.44,7.18ZM82.52,6.14l.6-5.66H74l-.63,5,.42.2a8.71,8.71,0,0,1,1.46-3.16,2.57,2.57,0,0,1,2.1-1.06L75,17.35a3.36,3.36,0,0,1-.68,1.85,1.57,1.57,0,0,1-1,.26v.76H78.7v-.76a2.69,2.69,0,0,1-1.11-.3c-.18-.13-.27-.45-.27-.95a2.26,2.26,0,0,1,0-.26c0-.09,0-.2,0-.33l.14-1L79.8,1.5a1.87,1.87,0,0,1,1.39.63c.58.7.88,2,.91,3.94ZM88.84.48H83.92v.76a2.31,2.31,0,0,1,1,.31c.15.13.23.44.23.94a5.56,5.56,0,0,1,0,.67c0,.26-.08.57-.14,1l-2,13.24a4,4,0,0,1-.47,1.59,1.36,1.36,0,0,1-.87.52v.76H86.5v-.76a2,2,0,0,1-1-.32,1.32,1.32,0,0,1-.23-.94c0-.09,0-.18,0-.28s0-.2,0-.3l.13-1,2-13.24A4.09,4.09,0,0,1,88,1.76a1.45,1.45,0,0,1,.87-.52ZM99.11,7.11a21,21,0,0,1-2,9.07q-2.16,4.61-5,4.6a3.28,3.28,0,0,1-2.88-1.92,10.29,10.29,0,0,1-1.11-5.14,21.08,21.08,0,0,1,2.07-9.19C91.63,1.51,93.25,0,95,0A3.36,3.36,0,0,1,98,1.92,10,10,0,0,1,99.11,7.11ZM96.72,4.6a7.18,7.18,0,0,0-.41-2.55c-.28-.7-.7-1-1.29-1-1.37,0-2.52,2.17-3.46,6.53a40.7,40.7,0,0,0-1.06,8.26,10,10,0,0,0,.2,2.2c.26,1.18.74,1.77,1.43,1.77a2.2,2.2,0,0,0,1.78-1.29,18.75,18.75,0,0,0,1.65-4.93,41.1,41.1,0,0,0,.85-4.83A34.65,34.65,0,0,0,96.72,4.6Zm11.1-3.36a1.66,1.66,0,0,1,.9.33,2.08,2.08,0,0,1,.4,1.48,12.85,12.85,0,0,1-.1,1.34c0,.41-.11.87-.18,1.39l-1.29,8.34L104,.48h-3.33v.76a1.7,1.7,0,0,1,.78.24,2,2,0,0,1,.51,1.06l.07.3L100.13,15a24,24,0,0,1-.75,3.61,1.35,1.35,0,0,1-.93.9v.76h3.45v-.76a1.67,1.67,0,0,1-.88-.32,1.88,1.88,0,0,1-.44-1.44,7.09,7.09,0,0,1,0-.79c0-.43.13-1.09.27-2l1.64-10.57,4.29,16.33h.41l2.3-15a28.78,28.78,0,0,1,.67-3.42c.18-.59.44-.93.78-1l.23-.06V.48h-3.39ZM125,7.11a21,21,0,0,1-2,9.07c-1.45,3.07-3.1,4.6-5,4.6a3.28,3.28,0,0,1-2.87-1.92A10.29,10.29,0,0,1,114,13.72a21.22,21.22,0,0,1,2.06-9.19Q118.22,0,120.91,0a3.36,3.36,0,0,1,2.92,1.92A10,10,0,0,1,125,7.11ZM122.59,4.6a7,7,0,0,0-.41-2.55,1.37,1.37,0,0,0-1.28-1c-1.37,0-2.53,2.17-3.46,6.53a40.11,40.11,0,0,0-1.07,8.26,10.65,10.65,0,0,0,.2,2.2q.39,1.77,1.44,1.77a2.2,2.2,0,0,0,1.77-1.29,18.29,18.29,0,0,0,1.66-4.93,45.71,45.71,0,0,0,.85-4.83A36.53,36.53,0,0,0,122.59,4.6Zm14.26-3.3.24-.06V.48h-3.4v.76a1.74,1.74,0,0,1,.91.33,2.13,2.13,0,0,1,.4,1.48c0,.28,0,.73-.11,1.34,0,.41-.11.87-.18,1.39l-1.29,8.34L129.83.48h-3.32v.76a1.69,1.69,0,0,1,.77.24,1.9,1.9,0,0,1,.51,1.06l.07.3L126,15a27,27,0,0,1-.75,3.61,1.35,1.35,0,0,1-.93.9v.76h3.44v-.76a1.67,1.67,0,0,1-.88-.32,1.92,1.92,0,0,1-.44-1.44c0-.26,0-.52,0-.79.05-.43.13-1.09.27-2l1.65-10.57,4.29,16.33h.41l2.29-15a31.07,31.07,0,0,1,.67-3.42C136.25,1.72,136.52,1.38,136.85,1.3Zm8.52,13.06a8.55,8.55,0,0,1-2.19,3.87,4.44,4.44,0,0,1-2.94,1,1,1,0,0,1-.68-.21.9.9,0,0,1-.24-.7,3.4,3.4,0,0,1,0-.48c0-.14,0-.28,0-.44l2.15-14.08a3.69,3.69,0,0,1,.5-1.64,2.22,2.22,0,0,1,1.16-.48V.48H138v.76a2.2,2.2,0,0,1,1,.31c.16.13.24.44.24.94a5.73,5.73,0,0,1-.05.67c0,.26-.07.57-.13,1l-2,13.23a4,4,0,0,1-.47,1.6,1.36,1.36,0,0,1-.87.52v.76h9.16l1-5.74ZM151.79.48v.76a1.52,1.52,0,0,1,.76.2,1.21,1.21,0,0,1,.37,1,4.09,4.09,0,0,1-.17,1.09c-.07.24-.16.5-.27.79L150.32,9.8l-1.18-6.44a4.51,4.51,0,0,1-.08-.6,4.37,4.37,0,0,1,0-.46c0-.43.09-.71.27-.83a1.75,1.75,0,0,1,.87-.23V.48h-4.63v.76a.94.94,0,0,1,.8.4,5.08,5.08,0,0,1,.42,1.44L148.2,11l-1,6.35a3.35,3.35,0,0,1-.61,1.73,1.91,1.91,0,0,1-1.06.39v.76h5.32v-.76a2,2,0,0,1-.95-.25,1.29,1.29,0,0,1-.33-1.05,7.29,7.29,0,0,1,.06-.73q.06-.51.12-.84l.82-5.46,3.12-7.89a5.54,5.54,0,0,1,.89-1.59,1.28,1.28,0,0,1,.63-.41V.48Z',\n opacity: 1, strokeColor: '', fillColor: '#192760', width: 155.237, height: 20.783, stampFillColor: '#dce3ef', stampStrokeColor: '',\n };\n }\n break;\n }\n if (stampCollection) {\n stampCollection.modifiedDate = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n this.currentStampAnnotation = stampCollection;\n return stampCollection;\n }\n }\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n StampAnnotation.prototype.saveStampAnnotations = function () {\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_stamp');\n if (this.pdfViewerBase.isStorageExceed) {\n storeObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_stamp'];\n }\n // eslint-disable-next-line\n var annotations = new Array();\n for (var j = 0; j < this.pdfViewerBase.pageCount; j++) {\n annotations[j] = [];\n }\n if (storeObject && !this.pdfViewer.annotationSettings.skipDownload) {\n var annotationCollection = JSON.parse(storeObject);\n for (var i = 0; i < annotationCollection.length; i++) {\n var newArray = [];\n var pageAnnotationObject = annotationCollection[i];\n if (pageAnnotationObject) {\n for (var z = 0; pageAnnotationObject.annotations.length > z; z++) {\n this.pdfViewer.annotationModule.updateModifiedDate(pageAnnotationObject.annotations[z]);\n // eslint-disable-next-line max-len\n pageAnnotationObject.annotations[z].bounds = JSON.stringify(this.pdfViewer.annotation.getBounds(pageAnnotationObject.annotations[z].bounds, pageAnnotationObject.pageIndex));\n if (this.pdfViewer.nameTable[pageAnnotationObject.annotations[z].randomId]) {\n pageAnnotationObject.annotations[z].wrapperBounds = this.pdfViewer.nameTable[pageAnnotationObject.annotations[z].randomId].wrapper.bounds;\n }\n }\n newArray = pageAnnotationObject.annotations;\n }\n annotations[pageAnnotationObject.pageIndex] = newArray;\n }\n }\n return JSON.stringify(annotations);\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n StampAnnotation.prototype.storeStampInSession = function (pageNumber, annotation) {\n // eslint-disable-next-line\n var sessionSize = Math.round(JSON.stringify(window.sessionStorage).length / 1024);\n var currentAnnotation = Math.round(JSON.stringify(annotation).length / 1024);\n this.pdfViewer.annotationModule.isFormFieldShape = false;\n if ((sessionSize + currentAnnotation) > 4500) {\n this.pdfViewerBase.isStorageExceed = true;\n this.pdfViewer.annotationModule.clearAnnotationStorage();\n if (!(this.pdfViewerBase.isFormStorageExceed)) {\n this.pdfViewer.formFieldsModule.clearFormFieldStorage();\n }\n }\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_stamp');\n var index = 0;\n if (this.pdfViewerBase.isStorageExceed) {\n storeObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_stamp'];\n }\n if (!storeObject) {\n this.pdfViewer.annotationModule.storeAnnotationCollections(annotation, pageNumber);\n var shapeAnnotation = { pageIndex: pageNumber, annotations: [] };\n shapeAnnotation.annotations.push(annotation);\n index = shapeAnnotation.annotations.indexOf(annotation);\n var annotationCollection = [];\n annotationCollection.push(shapeAnnotation);\n var annotationStringified = JSON.stringify(annotationCollection);\n if (this.pdfViewerBase.isStorageExceed) {\n this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_stamp'] = annotationStringified;\n }\n else {\n window.sessionStorage.setItem(this.pdfViewerBase.documentId + '_annotations_stamp', annotationStringified);\n }\n }\n else {\n this.pdfViewer.annotationModule.storeAnnotationCollections(annotation, pageNumber);\n var annotObject = JSON.parse(storeObject);\n if (!this.pdfViewerBase.isStorageExceed) {\n window.sessionStorage.removeItem(this.pdfViewerBase.documentId + '_annotations_stamp');\n }\n var pageIndex = this.pdfViewer.annotationModule.getPageCollection(annotObject, pageNumber);\n if (annotObject[pageIndex]) {\n annotObject[pageIndex].annotations.push(annotation);\n index = annotObject[pageIndex].annotations.indexOf(annotation);\n }\n else {\n var markupAnnotation = { pageIndex: pageNumber, annotations: [] };\n markupAnnotation.annotations.push(annotation);\n index = markupAnnotation.annotations.indexOf(annotation);\n annotObject.push(markupAnnotation);\n }\n var annotationStringified = JSON.stringify(annotObject);\n if (this.pdfViewerBase.isStorageExceed) {\n this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_stamp'] = annotationStringified;\n }\n else {\n window.sessionStorage.setItem(this.pdfViewerBase.documentId + '_annotations_stamp', annotationStringified);\n }\n }\n return index;\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n StampAnnotation.prototype.updateSessionStorage = function (annotation, id, type) {\n if (id != null) {\n for (var p = 0; p < annotation.annotations.length; p++) {\n if (annotation.annotations[p].id === id) {\n annotation = annotation.annotations[p];\n break;\n }\n }\n }\n if (type === 'Rotate') {\n annotation = annotation.annotations[0];\n }\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_stamp');\n if (this.pdfViewerBase.isStorageExceed) {\n storeObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_stamp'];\n }\n if (storeObject) {\n // eslint-disable-next-line\n var bounds = annotation.bounds;\n var annotObject = JSON.parse(storeObject);\n for (var k = 0; k < annotObject.length; k++) {\n // eslint-disable-next-line\n var currentAnnot = annotObject[k];\n for (var j = 0; j < currentAnnot.annotations.length; j++) {\n if (annotObject[k].annotations[j] != null && annotObject[k].annotations[j].randomId === annotation.id) {\n if (!this.pdfViewerBase.isStorageExceed) {\n window.sessionStorage.removeItem(this.pdfViewerBase.documentId + '_annotations_stamp');\n }\n // eslint-disable-next-line max-len\n var pageIndex = this.pdfViewer.annotationModule.getPageCollection(annotObject, annotObject[k].annotations[j].pageNumber);\n if (type !== 'delete') {\n if (annotObject[pageIndex]) {\n // eslint-disable-next-line max-len\n //annotObject[k].annotations[j].modifiedDate = new Date().toLocaleString();\n if (annotation.wrapper.children[1]) {\n annotObject[k].annotations[j].opacity = annotation.wrapper.children[1].style.opacity;\n }\n else {\n annotObject[k].annotations[j].opacity = annotation.wrapper.children[0].style.opacity;\n }\n annotObject[k].annotations[j].rotateAngle = annotation.rotateAngle;\n // eslint-disable-next-line max-len\n annotObject[k].annotations[j].bounds = { left: bounds.x, top: bounds.y, width: annotation.wrapper.actualSize.width, height: annotation.wrapper.actualSize.height, right: bounds.right, bottom: bounds.bottom };\n }\n }\n else {\n annotObject[k].annotations.splice(j, 1);\n }\n var annotationStringified = JSON.stringify(annotObject);\n if (this.pdfViewerBase.isStorageExceed) {\n // eslint-disable-next-line max-len\n this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_stamp'] = annotationStringified;\n }\n else {\n window.sessionStorage.setItem(this.pdfViewerBase.documentId + '_annotations_stamp', annotationStringified);\n }\n break;\n }\n }\n }\n }\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n StampAnnotation.prototype.saveImportedStampAnnotations = function (annotation, pageNumber) {\n var annotationObject = null;\n var isDynamic = false;\n // eslint-disable-next-line\n var stampAnnotation;\n // eslint-disable-next-line\n var stampName = annotation['IsDynamic'];\n annotation.AnnotationSettings = annotation.AnnotationSettings ? annotation.AnnotationSettings : this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.stampSettings);\n annotation.allowedInteractions = this.pdfViewer.annotationModule.updateAnnotationAllowedInteractions(annotation);\n if (annotation.Subject && stampName) {\n stampAnnotation = this.retrieveDynamicStampAnnotation(annotation.Subject);\n isDynamic = true;\n }\n else if (annotation.Subject) {\n stampAnnotation = this.retrievestampAnnotation(annotation.Subject);\n if (annotation.Subject === 'Accepted' || annotation.Subject === 'Rejected') {\n // eslint-disable-next-line\n var collectionData = processPathData(stampAnnotation.pathdata);\n stampAnnotation.pathdata = splitArrayCollection(collectionData);\n isDynamic = true;\n }\n }\n else {\n // eslint-disable-next-line max-len\n annotation.AnnotationSettings = annotation.AnnotationSettings ? annotation.AnnotationSettings : this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.customStampSettings);\n annotationObject = {\n // eslint-disable-next-line max-len\n stampAnnotationType: 'image', author: annotation.Author, modifiedDate: annotation.ModifiedDate, subject: annotation.Subject, allowedInteractions: annotation.allowedInteractions,\n note: annotation.Note, strokeColor: annotation.StrokeColor, fillColor: annotation.FillColor, opacity: annotation.Opacity, stampFillcolor: annotation.FillColor,\n // eslint-disable-next-line max-len\n rotateAngle: annotation.RotateAngle, creationDate: annotation.ModifiedDate, pageNumber: pageNumber, icon: '', stampAnnotationPath: this.findImageData(annotation.Apperarance), randomId: 'image', isDynamicStamp: this.pdfViewerBase.isDynamicStamp, dynamicText: ' ',\n bounds: this.calculateImagePosition(annotation.Rect, true), annotName: annotation.AnnotName, comments: this.pdfViewer.annotationModule.getAnnotationComments(annotation.Comments, annotation, annotation.Author), review: { state: annotation.State, stateModel: annotation.StateModel, author: annotation.Author, modifiedDate: annotation.ModifiedDate }, shapeAnnotationType: 'stamp',\n // eslint-disable-next-line max-len\n annotationSelectorSettings: this.getSettings(annotation), annotationSettings: annotation.annotationSettings, customData: this.pdfViewer.annotation.getCustomData(annotation), isPrint: annotation.isPrint, isCommentLock: annotation.IsCommentLock, isMaskedImage: annotation.IsMaskedImage, customStampName: annotation.CustomStampName\n };\n this.pdfViewer.annotationModule.storeAnnotations(pageNumber, annotationObject, '_annotations_stamp');\n }\n if (stampAnnotation) {\n annotationObject = {\n // eslint-disable-next-line max-len\n stampAnnotationType: 'path', author: annotation.Author, modifiedDate: annotation.ModifiedDate, subject: annotation.Subject,\n note: annotation.Note, strokeColor: annotation.StrokeColor, fillColor: annotation.FillColor, opacity: annotation.Opacity, stampFillcolor: stampAnnotation.stampFillColor,\n // eslint-disable-next-line max-len\n rotateAngle: annotation.RotateAngle, creationDate: annotation.ModifiedDate, pageNumber: pageNumber, icon: stampAnnotation.iconName, stampAnnotationPath: stampAnnotation.pathdata, randomId: 'stamp', isDynamicStamp: false, dynamicText: this.dynamicText,\n // eslint-disable-next-line max-len\n bounds: this.calculateImagePosition(annotation.Rect, true), annotName: annotation.AnnotName, comments: this.pdfViewer.annotationModule.getAnnotationComments(annotation.Comments, annotation, annotation.Author), review: { state: annotation.State, stateModel: annotation.StateModel, author: annotation.Author, modifiedDate: annotation.ModifiedDate }, shapeAnnotationType: 'stamp',\n // eslint-disable-next-line max-len\n annotationSelectorSettings: this.getSettings(annotation), annotationSettings: annotation.AnnotationSettings, customData: this.pdfViewer.annotation.getCustomData(annotation), isPrint: annotation.isPrint, isCommentLock: annotation.IsCommentLock, isMaskedImage: annotation.IsMaskedImage, customStampName: ''\n };\n if (isDynamic) {\n annotationObject.dynamicText = this.findDynamicText(annotation.Apperarance, annotation.Subject);\n annotationObject.isDynamicStamp = true;\n }\n this.pdfViewer.annotationModule.storeAnnotations(pageNumber, annotationObject, '_annotations_stamp');\n }\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n StampAnnotation.prototype.updateStampAnnotationCollections = function (annotation, pageNumber) {\n // eslint-disable-next-line\n var annotationObject = null;\n // eslint-disable-next-line\n var stampAnnotation;\n // eslint-disable-next-line\n var stampName = annotation['IsDynamic'];\n // eslint-disable-next-line\n annotation.allowedInteractions = annotation.AllowedInteractions ? annotation.AllowedInteractions : this.pdfViewer.annotationModule.updateAnnotationAllowedInteractions(annotation);\n var isImageStamp = this.stampImageData(annotation);\n if (annotation.Subject && stampName && annotation.Subject !== 'Draft' && !isImageStamp) {\n stampAnnotation = this.retrieveDynamicStampAnnotation(annotation.Subject);\n }\n else if (annotation.Subject && !isImageStamp) {\n stampAnnotation = this.retrievestampAnnotation(annotation.Subject);\n }\n else {\n // eslint-disable-next-line max-len\n annotation.AnnotationSettings = annotation.AnnotationSettings ? annotation.AnnotationSettings : this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.customStampSettings);\n if (annotation.IsLocked) {\n annotation.AnnotationSettings.isLock = annotation.IsLocked;\n }\n annotationObject = {\n // eslint-disable-next-line max-len\n stampAnnotationType: 'image', author: annotation.Author, modifiedDate: annotation.ModifiedDate, allowedInteractions: annotation.allowedInteractions,\n note: annotation.Note, strokeColor: annotation.StrokeColor, fillColor: annotation.FillColor, opacity: annotation.Opacity, stampFillcolor: annotation.StampFillColor,\n // eslint-disable-next-line max-len\n rotateAngle: annotation.RotateAngle, pageNumber: pageNumber, randomId: 'stamp', isDynamicStamp: this.pdfViewerBase.isDynamicStamp, dynamicText: this.dynamicText,\n // eslint-disable-next-line max-len\n annotationId: annotation.AnnotName, comments: this.pdfViewer.annotationModule.getAnnotationComments(annotation.Comments, annotation, annotation.Author), review: { state: annotation.State, stateModel: annotation.StateModel, author: annotation.Author, modifiedDate: annotation.ModifiedDate }, shapeAnnotationType: 'stamp', annotationSettings: annotation.AnnotationSettings, customData: this.pdfViewer.annotation.getCustomData(annotation),\n isPrint: annotation.isPrint, isMaskedImage: annotation.IsMaskedImage, customStampName: annotation.CustomStampName\n };\n return annotationObject;\n }\n if (stampAnnotation) {\n // eslint-disable-next-line max-len\n annotation.AnnotationSettings = annotation.AnnotationSettings ? annotation.AnnotationSettings : this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.stampSettings);\n if (annotation.IsLocked) {\n annotation.AnnotationSettings.isLock = annotation.IsLocked;\n }\n // eslint-disable-next-line max-len\n annotation.allowedInteractions = annotation.AllowedInteractions ? annotation.AllowedInteractions : this.pdfViewer.annotationModule.updateAnnotationAllowedInteractions(annotation);\n annotationObject = {\n // eslint-disable-next-line max-len\n stampAnnotationType: 'path', author: annotation.Author, allowedInteractions: annotation.allowedInteractions, modifiedDate: annotation.ModifiedDate, subject: annotation.Subject,\n note: annotation.Note, strokeColor: annotation.StrokeColor, fillColor: annotation.FillColor, opacity: annotation.Opacity, stampFillcolor: annotation.StampFillColor,\n // eslint-disable-next-line max-len\n rotateAngle: annotation.RotateAngle, creationDate: stampAnnotation.creationDate, pageNumber: pageNumber, icon: stampAnnotation.iconName, stampAnnotationPath: stampAnnotation.pathdata, randomId: 'stamp', isDynamicStamp: this.pdfViewerBase.isDynamicStamp, dynamicText: this.dynamicText,\n // eslint-disable-next-line max-len\n bounds: { left: annotation.Rect.X, top: annotation.Rect.Y, width: annotation.Rect.Width, height: annotation.Rect.Height }, annotationId: annotation.AnnotName, comments: this.pdfViewer.annotationModule.getAnnotationComments(annotation.Comments, annotation, annotation.Author), review: { state: annotation.State, stateModel: annotation.StateModel, author: annotation.Author, modifiedDate: annotation.ModifiedDate }, shapeAnnotationType: 'stamp', customData: this.pdfViewer.annotation.getCustomData(annotation),\n isPrint: annotation.isPrint, isMaskedImage: annotation.IsMaskedImage, customStampName: ''\n };\n return annotationObject;\n }\n };\n StampAnnotation.prototype.stampImageData = function (annot) {\n var isStampImage = false;\n if (annot && annot.Apperarance) {\n for (var j = 0; j < annot.Apperarance.length; j++) {\n if (annot.Apperarance[j].imagedata) {\n isStampImage = true;\n break;\n }\n }\n }\n return isStampImage;\n };\n // eslint-disable-next-line\n StampAnnotation.prototype.findImageData = function (Apperance) {\n if (Apperance) {\n for (var j = 0; j < Apperance.length; j++) {\n // eslint-disable-next-line\n var stampShapes = Apperance[j];\n // eslint-disable-next-line\n var imageData = stampShapes['imagedata'];\n if (imageData) {\n return imageData;\n }\n }\n }\n return '';\n };\n // eslint-disable-next-line\n StampAnnotation.prototype.findDynamicText = function (apperance, subject) {\n var dynamicText = '';\n if (apperance) {\n for (var d = 0; d < apperance.length; d++) {\n // eslint-disable-next-line\n var stampShapes = apperance[d];\n // eslint-disable-next-line\n var stampType = stampShapes['type'];\n // eslint-disable-next-line\n var isImport = stampShapes['isImport'];\n // eslint-disable-next-line\n if (stampType === 'string' && stampShapes['text'] !== undefined) {\n // eslint-disable-next-line\n var text = void 0;\n if (!isImport) {\n // eslint-disable-next-line\n var stampText = stampShapes['text'].split('(');\n if (stampText[1]) {\n // eslint-disable-next-line\n text = stampText[1].split(')')[0];\n }\n else {\n // eslint-disable-next-line\n text = stampShapes['text'];\n }\n }\n else {\n // eslint-disable-next-line\n text = stampShapes['text'];\n }\n // eslint-disable-next-line\n if (text.toLowerCase() !== subject.toLowerCase()) {\n dynamicText += text;\n }\n }\n }\n return dynamicText;\n }\n return dynamicText;\n };\n // eslint-disable-next-line\n StampAnnotation.prototype.getAnnotations = function (pageIndex, shapeAnnotations) {\n // eslint-disable-next-line\n var annotationCollection;\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_stamp');\n if (this.pdfViewerBase.isStorageExceed) {\n storeObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_stamp'];\n }\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n var index = this.pdfViewer.annotationModule.getPageCollection(annotObject, pageIndex);\n if (annotObject[index]) {\n annotationCollection = annotObject[index].annotations;\n }\n else {\n annotationCollection = shapeAnnotations;\n }\n }\n else {\n annotationCollection = shapeAnnotations;\n }\n return annotationCollection;\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n StampAnnotation.prototype.modifyInCollection = function (property, pageNumber, annotationBase) {\n if (!isNullOrUndefined(annotationBase.formFieldAnnotationType) && annotationBase.formFieldAnnotationType !== \"\") {\n this.pdfViewer.annotationModule.isFormFieldShape = true;\n }\n else {\n this.pdfViewer.annotationModule.isFormFieldShape = false;\n }\n this.pdfViewerBase.updateDocumentEditedProperty(true);\n var currentAnnotObject = null;\n var pageAnnotations = this.getAnnotations(pageNumber, null);\n if (pageAnnotations != null && annotationBase) {\n for (var i = 0; i < pageAnnotations.length; i++) {\n if (annotationBase.annotName === pageAnnotations[i].annotName) {\n if (property === 'bounds') {\n // eslint-disable-next-line max-len\n pageAnnotations[i].bounds = { left: annotationBase.wrapper.bounds.x, top: annotationBase.wrapper.bounds.y, width: annotationBase.wrapper.bounds.width, height: annotationBase.wrapper.bounds.height };\n pageAnnotations[i].modifiedDate = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n }\n this.pdfViewer.annotationModule.storeAnnotationCollections(pageAnnotations[i], pageNumber);\n }\n }\n this.manageAnnotations(pageAnnotations, pageNumber);\n }\n return currentAnnotObject;\n };\n StampAnnotation.prototype.manageAnnotations = function (pageAnnotations, pageNumber) {\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_stamp');\n if (this.pdfViewerBase.isStorageExceed) {\n storeObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_stamp'];\n }\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n if (!this.pdfViewerBase.isStorageExceed) {\n window.sessionStorage.removeItem(this.pdfViewerBase.documentId + '_annotations_stamp');\n }\n var index = this.pdfViewer.annotationModule.getPageCollection(annotObject, pageNumber);\n if (annotObject[index]) {\n annotObject[index].annotations = pageAnnotations;\n }\n var annotationStringified = JSON.stringify(annotObject);\n if (this.pdfViewerBase.isStorageExceed) {\n this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_stamp'] = annotationStringified;\n }\n else {\n window.sessionStorage.setItem(this.pdfViewerBase.documentId + '_annotations_stamp', annotationStringified);\n }\n }\n };\n /**\n * This method used to add annotations with using programmatically.\n *\n * @param annotationObject - It describes type of annotation object\n * @param offset - It describes about the annotation bounds or location\n * @param pageNumber - It describes about the annotation page number\n * @param dynamicStampItem - It describe which type of dynamic stamp\n * @param signStampItem - It describe which type of sign stamp\n * @param standardBusinessStampItem - It describe which type of standard business stamp\n * @returns Object\n * @private\n */\n StampAnnotation.prototype.updateAddAnnotationDetails = function (annotationObject, offset, pageNumber, dynamicStampItem, signStampItem, standardBusinessStampItem) {\n //Creating new object if annotationObject is null\n if (!annotationObject) {\n annotationObject = { offset: { x: 10, y: 10 }, pageNumber: 0, width: undefined, height: undefined };\n offset = annotationObject.offset;\n }\n else if (!annotationObject.offset)\n offset = { x: 10, y: 10 };\n else\n offset = annotationObject.offset;\n //Checking the all stamps are present\n if (!dynamicStampItem && !signStampItem && !standardBusinessStampItem) {\n dynamicStampItem = DynamicStampItem.Approved;\n }\n //Creating the CurrentDate and Annotation name\n var currentDateString = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n var annotationName = this.pdfViewer.annotation.createGUID();\n var page = pageNumber;\n //Creating annotation settings\n var stampAnnotations = [];\n var stampName = '';\n var stampAnnotationtype = 'Stamp';\n var apperarance = [];\n var isDynamic = false;\n var author = annotationObject.author ? annotationObject.author : 'Guest';\n var annotationSelectorSettings = this.pdfViewer.stampSettings.annotationSelectorSettings ? this.pdfViewer.stampSettings.annotationSelectorSettings : this.pdfViewer.annotationSelectorSettings;\n var annotationSettings = this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.stampSettings);\n var allowedInteractions = this.pdfViewer.stampSettings.allowedInteractions ? this.pdfViewer.stampSettings.allowedInteractions : this.pdfViewer.annotationSettings.allowedInteractions;\n annotationSettings.isLock = annotationObject.isLock ? annotationObject.isLock : false;\n annotationSettings.minHeight = annotationObject.minHeight ? annotationObject.minHeight : 0;\n annotationSettings.minWidth = annotationObject.minWidth ? annotationObject.minWidth : 0;\n annotationSettings.maxWidth = annotationObject.maxWidth ? annotationObject.maxWidth : 0;\n annotationSettings.maxHeight = annotationObject.maxHeight ? annotationObject.maxHeight : 0;\n //checking the stamp is custom and Updating the string and datetime values for dynamic stamp\n if (annotationObject.customStamps && annotationObject.customStamps[0].customStampName) {\n apperarance[0] = {\n imagedata: annotationObject.customStamps[0].customStampImageSource,\n isImport: true\n };\n this.customStampName = annotationObject.customStamps[0].customStampName;\n this.pdfViewerBase.customStampCollection.push(annotationObject.customStamps[0]);\n stampAnnotationtype = 'Image';\n annotationObject.width = annotationObject.width ? annotationObject.width : 100;\n annotationObject.height = annotationObject.height ? annotationObject.height : 100;\n }\n else if (dynamicStampItem) {\n var dateTime = [];\n dateTime = currentDateString.split(' ');\n stampName = dynamicStampItem.toString();\n apperarance[0] = { baseFontName: 'Helvetica-BoldOblique', currentFontname: '95b303ab-d397-438a-83af-e2ff8a9900f1', fontSize: 10, isImport: true, text: 'By ' + author + ' at ' + dateTime[1] + dateTime[2] + ' , ' + dateTime[0], type: 'string' };\n isDynamic = true;\n annotationObject.width = annotationObject.width ? annotationObject.width : 140;\n annotationObject.height = annotationObject.height ? annotationObject.height : 55;\n }\n else if (signStampItem) {\n stampName = signStampItem.toString();\n if (signStampItem == SignStampItem.Accepted || signStampItem == SignStampItem.Rejected) {\n annotationObject.width = annotationObject.width ? annotationObject.width : 35;\n annotationObject.height = annotationObject.height ? annotationObject.height : 35;\n }\n else if (signStampItem == SignStampItem.SignHere) {\n annotationObject.width = annotationObject.width ? annotationObject.width : 110;\n annotationObject.height = annotationObject.height ? annotationObject.height : 30;\n }\n else if (signStampItem == SignStampItem.Witness) {\n annotationObject.width = annotationObject.width ? annotationObject.width : 130;\n annotationObject.height = annotationObject.height ? annotationObject.height : 30;\n }\n else if (signStampItem == SignStampItem.InitialHere) {\n annotationObject.width = annotationObject.width ? annotationObject.width : 90;\n annotationObject.height = annotationObject.height ? annotationObject.height : 30;\n }\n }\n else if (standardBusinessStampItem) {\n stampName = standardBusinessStampItem.toString();\n if (standardBusinessStampItem == StandardBusinessStampItem.Final || standardBusinessStampItem == StandardBusinessStampItem.Draft) {\n annotationObject.width = annotationObject.width ? annotationObject.width : 110;\n annotationObject.height = annotationObject.height ? annotationObject.height : 30;\n }\n else if (standardBusinessStampItem == StandardBusinessStampItem.Void) {\n annotationObject.width = annotationObject.width ? annotationObject.width : 100;\n annotationObject.height = annotationObject.height ? annotationObject.height : 30;\n }\n else {\n annotationObject.width = annotationObject.width ? annotationObject.width : 130;\n annotationObject.height = annotationObject.height ? annotationObject.height : 30;\n }\n }\n //Creating Annotation objects with it's proper properties\n var stickyNotes = {\n AllowedInteractions: annotationObject.allowedInteractions ? annotationObject.allowedInteractions : allowedInteractions,\n AnnotName: annotationName,\n AnnotType: 'stamp',\n AnnotationSelectorSettings: annotationObject.annotationSelectorSettings ? annotationObject.annotationSelectorSettings : annotationSelectorSettings,\n AnnotationSettings: annotationSettings,\n Apperarance: apperarance ? apperarance : null,\n Author: author,\n Comments: null,\n CreatedDate: currentDateString,\n CustomData: annotationObject.customData ? annotationObject.customData : null,\n ExistingCustomData: null,\n FillColor: '#192760',\n Icon: 0,\n IsCommentLock: false,\n IsDynamic: isDynamic,\n IsLocked: annotationObject.isLock ? annotationObject.isLock : false,\n IsPrint: annotationObject.isPrint ? annotationObject.isPrint : true,\n ModifiedDate: '',\n Name: null,\n Note: '',\n Opacity: annotationObject.opacity ? annotationObject.opacity : 1,\n Rect: { X: offset.x, Y: offset.y, Width: annotationObject.width, Height: annotationObject.height, Left: offset.x, Top: offset.y, Location: { X: offset.x, Y: offset.y }, Size: { Height: annotationObject.height, IsEmpty: false, Width: annotationObject.width } },\n RotateAngle: 0,\n StampAnnotationtype: stampAnnotationtype,\n State: '',\n StateModel: '',\n StrokeColor: '#dce3ef',\n Subject: stampName,\n matrix: null,\n CustomStampName: this.customStampName ? this.customStampName : '',\n pageNumber: page\n };\n //Adding the annotation object to an array and return it\n stampAnnotations[0] = stickyNotes;\n return { stampAnnotations: stampAnnotations };\n };\n /**\n * @private\n */\n StampAnnotation.prototype.triggerAnnotationAdd = function (annot, annotation) {\n // eslint-disable-next-line\n var settings = {\n opacity: annot.opacity, borderColor: annot.strokeColor, borderWidth: annot.thickness, author: annotation.author, subject: annotation.subject, modifiedDate: annotation.modifiedDate,\n // eslint-disable-next-line\n fillColor: annot.fillColor, fontSize: annot.fontSize, width: annot.bounds.width, height: annot.bounds.height, fontColor: annot.fontColor, fontFamily: annot.fontFamily, defaultText: annot.dynamicText, fontStyle: annot.font, textAlignment: annot.textAlign\n };\n this.pdfViewer.fireAnnotationAdd(annot.pageIndex, annot.annotName, 'Stamp', annot.bounds, settings);\n };\n return StampAnnotation;\n}());\nexport { StampAnnotation };\n","/**\n * In-place Editor events defined here.\n */\n/** @hidden */\nexport var render = 'render';\n/** @hidden */\nexport var update = 'update';\n/** @hidden */\nexport var destroy = 'destroy';\n/** @hidden */\nexport var setFocus = 'set-focus';\n/** @hidden */\nexport var accessValue = 'access-value';\n/** @hidden */\nexport var destroyModules = 'destroy-modules';\n/** @hidden */\nexport var showPopup = 'show-popup';\n","/**\n * In-place Editor classes defined here.\n */\n/** @hidden */\nexport var ROOT = 'e-inplaceeditor';\n/** @hidden */\nexport var ROOT_TIP = 'e-inplaceeditor-tip';\n/** @hidden */\nexport var VALUE_WRAPPER = 'e-editable-value-wrapper';\n/** @hidden */\nexport var VALUE = 'e-editable-value';\n/** @hidden */\nexport var OVERLAY_ICON = 'e-editable-overlay-icon';\n/** @hidden */\nexport var TIP_TITLE = 'e-editable-tip-title';\n/** @hidden */\nexport var TITLE = 'e-editable-title';\n/** @hidden */\nexport var INLINE = 'e-editable-inline';\n/** @hidden */\nexport var POPUP = 'e-editable-popup';\n/** @hidden */\nexport var WRAPPER = 'e-editable-wrapper';\n/** @hidden */\nexport var LOADING = 'e-editable-loading';\n/** @hidden */\nexport var FORM = 'e-editable-form';\n/** @hidden */\nexport var CTRL_GROUP = 'e-component-group';\n/** @hidden */\nexport var INPUT = 'e-editable-component';\n/** @hidden */\nexport var BUTTONS = 'e-editable-action-buttons';\n/** @hidden */\nexport var EDITABLE_ERROR = 'e-editable-error';\n/** @hidden */\nexport var ELEMENTS = 'e-editable-elements';\n/** @hidden */\nexport var OPEN = 'e-editable-open';\n/** @hidden */\nexport var BTN_SAVE = 'e-btn-save';\n/** @hidden */\nexport var BTN_CANCEL = 'e-btn-cancel';\n/** @hidden */\nexport var RTE_SPIN_WRAP = 'e-rte-spin-wrap';\n/** @hidden */\nexport var CTRL_OVERLAY = 'e-control-overlay';\n/** @hidden */\nexport var DISABLE = 'e-disable';\n/** @hidden */\nexport var ICONS = 'e-icons';\n/** @hidden */\nexport var PRIMARY = 'e-primary';\n/** @hidden */\nexport var SHOW = 'e-show';\n/** @hidden */\nexport var HIDE = 'e-hide';\n/** @hidden */\nexport var RTL = 'e-rtl';\n/** @hidden */\nexport var ERROR = 'e-error';\n/** @hidden */\nexport var LOAD = 'e-loading';\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { ChildProperty, Property } from '@syncfusion/ej2-base';\n/**\n * Configures the popup settings of the In-place editor.\n */\nvar PopupSettings = /** @class */ (function (_super) {\n __extends(PopupSettings, _super);\n function PopupSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], PopupSettings.prototype, \"title\", void 0);\n __decorate([\n Property(null)\n ], PopupSettings.prototype, \"model\", void 0);\n return PopupSettings;\n}(ChildProperty));\nexport { PopupSettings };\n/**\n * @hidden\n */\nexport var modulesList = {\n 'AutoComplete': 'auto-complete',\n 'Color': 'color-picker',\n 'ComboBox': 'combo-box',\n 'DateRange': 'date-range-picker',\n 'MultiSelect': 'multi-select',\n 'RTE': 'rte',\n 'Slider': 'slider',\n 'Time': 'time-picker'\n /* eslint-enable */\n};\n/**\n * @hidden\n */\n// eslint-disable-next-line\nexport var localeConstant = {\n 'Click': { 'editAreaClick': 'Click to edit' },\n 'DblClick': { 'editAreaDoubleClick': 'Double click to edit' },\n 'EditIconClick': { 'editAreaClick': 'Click to edit' }\n /* eslint-enable */\n};\n","import { isNullOrUndefined as isNOU, Internationalization, isBlazor } from '@syncfusion/ej2-base';\n/**\n * Exports util methods used by In-place editor.\n */\nvar intl = new Internationalization();\n/**\n * @param {string} type - specifies the string type\n * @param {valueType} val - specifies the value type\n * @param {modelType} model - specifies the model type\n * @returns {string} - returns the string\n */\nexport function parseValue(type, val, model) {\n if (isNOU(val) || val === '') {\n return '';\n }\n var result;\n var tempFormat;\n switch (type) {\n case 'Color': {\n var hex = val;\n result = (hex.length > 7) ? hex.slice(0, -2) : hex;\n break;\n }\n case 'Date':\n tempFormat = model.format;\n result = intl.formatDate(val, { format: tempFormat, type: type, skeleton: isBlazor() ? 'd' : 'yMd' });\n break;\n case 'DateRange': {\n tempFormat = model.format;\n var date = val;\n result = intl.formatDate(date[0], { format: tempFormat, type: type, skeleton: isBlazor() ? 'd' : 'yMd' }) + ' - '\n + intl.formatDate(date[1], { format: tempFormat, type: type, skeleton: isBlazor() ? 'd' : 'yMd' });\n break;\n }\n case 'DateTime':\n tempFormat = model.format;\n if (isNOU(tempFormat) || tempFormat === '') {\n result = intl.formatDate(val, { format: tempFormat, type: type, skeleton: isBlazor() ? 'd' : 'yMd' }) + ' '\n + intl.formatDate(val, { format: tempFormat, type: type, skeleton: isBlazor() ? 't' : 'hm' });\n }\n else {\n result = intl.formatDate(val, { format: tempFormat, type: type, skeleton: isBlazor() ? 'd' : 'yMd' });\n }\n break;\n case 'Time':\n tempFormat = model.format;\n result = intl.formatDate(val, { format: tempFormat, type: type, skeleton: isBlazor() ? 't' : 'hm' });\n break;\n case 'Numeric': {\n tempFormat = isNOU(model.format) ? 'n2' :\n model.format;\n var tempVal = isNOU(val) ? null : (typeof (val) === 'number' ? val : intl.parseNumber(val));\n result = intl.formatNumber(tempVal, { format: tempFormat });\n break;\n }\n default:\n result = val.toString();\n break;\n }\n return result;\n}\n/**\n * @param {string} type - specifies the string value\n * @param {valueType} val - specifies the value type\n * @returns {valueType} - returns the value type\n */\nexport function getCompValue(type, val) {\n if (isNOU(val) || val === '') {\n return val;\n }\n if ((type === 'Date' || type === 'Time' || type === 'DateTime') && typeof (val) === 'string') {\n val = new Date(val);\n }\n else if (type === 'DateRange') {\n if (typeof (val) === 'object' && typeof (val[0]) === 'string') {\n val = [new Date(val[0]), new Date(val[1])];\n }\n else if (typeof (val) === 'string') {\n var temp = val.split('-');\n val = [new Date(temp[0]), new Date(temp[1])];\n }\n }\n return val;\n}\n/**\n * @param {string} value - specifies the string value\n * @returns {string} - returns the string\n * @hidden\n */\nexport function encode(value) {\n var data = [];\n for (var i = value.length - 1; i >= 0; i--) {\n data.unshift(['&#', value[i].charCodeAt(0), ';'].join(''));\n }\n return data.join('');\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component, NotifyPropertyChanges, Property, Event, select } from '@syncfusion/ej2-base';\nimport { detach, addClass, removeClass, EventHandler, setStyleAttribute, Complex } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined as isNOU, closest, extend, L10n, compile, Browser, Touch } from '@syncfusion/ej2-base';\nimport { updateBlazorTemplate, resetBlazorTemplate, SanitizeHtmlHelper, getValue, isBlazor } from '@syncfusion/ej2-base';\nimport { DataManager, UrlAdaptor, Query, WebApiAdaptor, ODataV4Adaptor, Predicate } from '@syncfusion/ej2-data';\nimport { Button } from '@syncfusion/ej2-buttons';\nimport { DatePicker, DateTimePicker } from '@syncfusion/ej2-calendars';\nimport { createSpinner, hideSpinner, showSpinner } from '@syncfusion/ej2-popups';\nimport { Tooltip } from '@syncfusion/ej2-popups';\nimport { NumericTextBox, TextBox } from '@syncfusion/ej2-inputs';\nimport { FormValidator, MaskedTextBox } from '@syncfusion/ej2-inputs';\nimport { DropDownList } from '@syncfusion/ej2-dropdowns';\n/* Helper modules */\nimport * as events from './events';\nimport * as classes from './classes';\n/* Models */\nimport { PopupSettings, modulesList, localeConstant } from './models';\n/* Interface */\nimport { parseValue, getCompValue, encode } from './util';\n/**\n * ```html\n * * The In-place editor control is used to edit an element in a place and to update the value in server.\n *
      \n * \n * ```\n */\nvar InPlaceEditor = /** @class */ (function (_super) {\n __extends(InPlaceEditor, _super);\n /**\n * Initializes a new instance of the In-place editor class.\n *\n * @param {InPlaceEditorModel} options - Specifies In-place editor model properties as options.\n * @param {string} element - Specifies the element for which In-place editor applies.\n */\n function InPlaceEditor(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.needsID = true;\n return _this;\n }\n InPlaceEditor.prototype.initializeValue = function () {\n this.initRender = true;\n this.isTemplate = false;\n this.isVue = false;\n this.isExtModule = false;\n this.submitBtn = undefined;\n this.cancelBtn = undefined;\n this.isClearTarget = false;\n this.btnElements = undefined;\n this.dataManager = undefined;\n this.oldValue = undefined;\n this.divComponents = ['RTE', 'Slider'];\n this.clearComponents = ['AutoComplete', 'Mask', 'Text'];\n this.dateType = ['Date', 'DateTime', 'Time'];\n this.inputDataEle = ['Date', 'DateTime', 'DateRange', 'Time', 'Numeric'];\n this.dropDownEle = ['AutoComplete', 'ComboBox', 'DropDownList', 'MultiSelect'];\n this.moduleList = ['AutoComplete', 'Color', 'ComboBox', 'DateRange', 'MultiSelect', 'RTE', 'Slider', 'Time'];\n };\n /**\n * Initialize the event handler\n *\n * @returns {void}\n * @private\n */\n InPlaceEditor.prototype.preRender = function () {\n this.initializeValue();\n this.onScrollResizeHandler = this.scrollResizeHandler.bind(this);\n if (isNOU(this.model)) {\n this.setProperties({ model: {} }, true);\n }\n this.titleEle = this.createElement('div', { className: classes.TITLE });\n if (!isNOU(this.popupSettings.model) && this.popupSettings.model.afterOpen) {\n this.afterOpenEvent = this.popupSettings.model.afterOpen;\n }\n };\n /**\n * To Initialize the In-place editor rendering\n *\n * @returns {void}\n * @private\n */\n InPlaceEditor.prototype.render = function () {\n if (isNOU(this.element.getAttribute('tabindex'))) {\n this.element.setAttribute('tabindex', '0');\n }\n this.checkIsTemplate();\n this.disable(this.disabled);\n this.updateAdaptor();\n this.appendValueElement();\n this.updateValue();\n this.textOption === 'Never' ?\n this.renderValue(this.checkValue(parseValue(this.type, this.value, this.model)))\n : this.renderInitialValue();\n this.wireEvents();\n this.setRtl(this.enableRtl);\n this.enableEditor(this.enableEditMode, true);\n this.setClass('add', this.cssClass);\n this.renderComplete();\n };\n InPlaceEditor.prototype.setClass = function (action, val) {\n if (!this.isEmpty(val)) {\n var allClassName = val.split(' ');\n for (var i = 0; i < allClassName.length; i++) {\n if (allClassName[i].trim() !== '') {\n action === 'add' ? addClass([this.element], [allClassName[i]]) : removeClass([this.element], [allClassName[i]]);\n }\n }\n }\n };\n InPlaceEditor.prototype.appendValueElement = function () {\n this.valueWrap = this.createElement('div', { id: this.element.id + '_wrap', className: classes.VALUE_WRAPPER });\n if (!isBlazor()) {\n this.element.innerHTML = '';\n }\n this.valueEle = this.createElement('span', { className: classes.VALUE });\n this.editIcon = this.createElement('span', {\n className: classes.OVERLAY_ICON + ' ' + classes.ICONS,\n attrs: { 'title': this.getLocale({ editIcon: 'Click to edit' }, 'editIcon') }\n });\n this.valueWrap.appendChild(this.valueEle);\n this.valueWrap.appendChild(this.editIcon);\n this.element.appendChild(this.valueWrap);\n };\n InPlaceEditor.prototype.renderInitialValue = function () {\n if (['AutoComplete', 'ComboBox', 'DropDownList', 'MultiSelect'].indexOf(this.type) > -1\n && !isNOU(this.value) && !this.isEmpty(this.value.toString()) && !isNOU(this.model.fields)\n && !isNOU(this.model.dataSource)) {\n this.renderValue(this.getLocale({ loadingText: 'Loading...' }, 'loadingText'));\n this.valueWrap.classList.add(classes.LOAD);\n createSpinner({ target: this.valueWrap, width: 10 });\n showSpinner(this.valueWrap);\n this.getInitFieldMapValue();\n }\n else {\n this.renderValue(this.checkValue(parseValue(this.type, this.value, this.model)));\n }\n };\n InPlaceEditor.prototype.getInitFieldMapValue = function () {\n var _this = this;\n var model = this.model;\n var mText = model.fields.text;\n var mVal = model.fields.value;\n var query = isNOU(model.query) ? new Query() : model.query;\n if (model.dataSource instanceof DataManager) {\n model.dataSource.executeQuery(this.getInitQuery(model, query)).then(function (e) {\n _this.updateInitValue(mText, mVal, e.result);\n });\n }\n else {\n this.updateInitValue(mText, mVal, new DataManager(model.dataSource).executeLocal(this.getInitQuery(model, query)));\n }\n };\n InPlaceEditor.prototype.getInitQuery = function (model, query) {\n var predicate;\n var mVal = model.fields.value;\n var value = this.value;\n if (this.type !== 'MultiSelect' || typeof (this.value) !== 'object') {\n predicate = new Predicate(mVal, 'equal', this.value);\n }\n else {\n var i = 0;\n for (var _i = 0, value_1 = value; _i < value_1.length; _i++) {\n var val = value_1[_i];\n predicate = ((i === 0) ? predicate = new Predicate(mVal, 'equal', val) : predicate.or(mVal, 'equal', val));\n i++;\n }\n }\n return query.where(predicate);\n };\n InPlaceEditor.prototype.updateInitValue = function (mText, mVal, result) {\n if (result.length <= 0) {\n return;\n }\n if (result.length === 1) {\n this.valueEle.innerHTML = this.checkValue(getValue((isNOU(mText) ? mVal : mText), result[0]));\n }\n else {\n var val = [];\n for (var _i = 0, result_1 = result; _i < result_1.length; _i++) {\n var obj = result_1[_i];\n val.push(getValue((isNOU(mText) ? mVal : mText), obj));\n }\n this.valueEle.innerHTML = this.checkValue(val.toString());\n }\n hideSpinner(this.valueWrap);\n this.valueWrap.classList.remove(classes.LOAD);\n };\n InPlaceEditor.prototype.renderValue = function (val) {\n this.enableHtmlSanitizer && this.type !== 'RTE' && this.type !== 'MultiSelect' ? this.valueEle.innerText = val :\n (this.valueEle.innerHTML = this.enableHtmlParse ? val : encode(val));\n if (this.type === 'Color') {\n setStyleAttribute(this.valueEle, { 'color': val });\n }\n if (this.mode === 'Inline') {\n if (this.isEditorOpen()) {\n removeClass([this.valueWrap], [classes.HIDE]);\n }\n }\n };\n InPlaceEditor.prototype.isEditorOpen = function () {\n if (this.isVue && (this.enableEditMode || (!isNOU(this.valueWrap) &&\n !(this.valueWrap.classList.contains(classes.HIDE) || this.valueWrap.classList.contains('e-tooltip'))))) {\n return false;\n }\n else {\n return true;\n }\n };\n InPlaceEditor.prototype.renderEditor = function () {\n this.prevValue = this.value;\n this.beginEditArgs = { mode: this.mode, cancelFocus: false, cancel: false };\n this.trigger('beginEdit', this.beginEditArgs);\n if (this.beginEditArgs.cancel) {\n return;\n }\n var tipOptions = undefined;\n var target = select('.' + classes.VALUE_WRAPPER, this.element);\n if (this.editableOn !== 'EditIconClick') {\n target.parentElement.removeAttribute('title');\n }\n if (this.valueWrap.classList.contains(classes.OPEN)) {\n return;\n }\n if (this.mode === 'Inline') {\n addClass([this.valueWrap], [classes.HIDE]);\n this.inlineWrapper = this.createElement('div', { className: classes.INLINE });\n this.element.appendChild(this.inlineWrapper);\n if (['AutoComplete', 'ComboBox', 'DropDownList', 'MultiSelect'].indexOf(this.type) > -1) {\n this.checkRemoteData(this.model);\n }\n else {\n this.renderAndOpen();\n }\n }\n else {\n if (!isNOU(this.popupSettings.model) && this.popupSettings.model.afterOpen) {\n this.popupSettings.model.afterOpen = this.afterOpenHandler.bind(this);\n }\n var content = this.createElement('div', { className: classes.POPUP });\n if (!this.isEmpty(this.popupSettings.title)) {\n this.titleEle.innerHTML = this.popupSettings.title;\n content.appendChild(this.titleEle);\n }\n tipOptions = {\n content: content, opensOn: 'Custom',\n enableRtl: this.enableRtl, cssClass: classes.ROOT_TIP,\n afterOpen: this.afterOpenHandler.bind(this)\n };\n content.appendChild(this.renderControl(document.body));\n extend(tipOptions, this.popupSettings.model, tipOptions, true);\n this.tipObj = new Tooltip(tipOptions);\n this.tipObj.appendTo(target);\n this.tipObj.open(target);\n }\n if (this.actionOnBlur !== 'Ignore') {\n this.wireDocEvent();\n }\n addClass([this.valueWrap], [classes.OPEN]);\n this.setProperties({ enableEditMode: true }, true);\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n InPlaceEditor.prototype.renderAndOpen = function () {\n this.renderControl(this.inlineWrapper);\n this.afterOpenHandler(null);\n };\n InPlaceEditor.prototype.checkRemoteData = function (model) {\n var _this = this;\n if (model.dataSource instanceof DataManager) {\n model.dataBound = function () {\n _this.afterOpenHandler(null);\n };\n this.renderControl(this.inlineWrapper);\n if ((isNOU(model.value) && isNOU(this.value)) || (model.value === this.value\n && (!isNOU(model.value) && model.value.length === 0))) {\n this.showDropDownPopup();\n }\n }\n else {\n this.renderAndOpen();\n }\n };\n InPlaceEditor.prototype.showDropDownPopup = function () {\n if (this.type === 'DropDownList') {\n if (!this.model.allowFiltering) {\n this.componentObj.focusIn();\n }\n this.componentObj.showPopup();\n }\n else {\n if (this.isExtModule) {\n this.notify(((this.type === 'MultiSelect') ? events.setFocus : events.showPopup), {});\n }\n }\n };\n InPlaceEditor.prototype.setAttribute = function (ele, attr) {\n var value = this.name && this.name.length !== 0 ? this.name : this.element.id;\n attr.forEach(function (val) {\n ele.setAttribute(val, ((val === 'id') ? (value + '_editor') : value));\n });\n };\n InPlaceEditor.prototype.renderControl = function (target) {\n var ele;\n this.containerEle = this.createElement('div', { className: classes.WRAPPER });\n this.loader = this.createElement('div', { className: classes.LOADING });\n this.formEle = this.createElement('form', { className: classes.FORM });\n var ctrlGroupEle = this.createElement('div', { className: classes.CTRL_GROUP });\n var inputWrap = this.createElement('div', { className: classes.INPUT });\n target.appendChild(this.containerEle);\n this.loadSpinner();\n this.containerEle.appendChild(this.formEle);\n this.formEle.appendChild(ctrlGroupEle);\n if (this.isTemplate) {\n this.appendTemplate(inputWrap, this.template);\n }\n else {\n if (Array.prototype.indexOf.call(this.divComponents, this.type) > -1) {\n ele = this.createElement('div');\n this.setAttribute(ele, ['id']);\n }\n else {\n ele = this.createElement('input');\n this.setAttribute(ele, ['id', 'name']);\n }\n this.componentRoot = ele;\n inputWrap.appendChild(ele);\n inputWrap.appendChild(this.loader);\n }\n ctrlGroupEle.appendChild(inputWrap);\n ctrlGroupEle.appendChild(this.createElement('div', { className: classes.EDITABLE_ERROR }));\n this.appendButtons(this.formEle);\n if (!this.isTemplate) {\n this.renderComponent(ele);\n }\n this.removeSpinner();\n if (this.submitOnEnter) {\n this.wireEditorKeyDownEvent(this.containerEle);\n }\n return this.containerEle;\n };\n InPlaceEditor.prototype.appendButtons = function (trg) {\n if (this.showButtons && trg) {\n this.btnElements = this.renderButtons();\n trg.appendChild(this.btnElements);\n this.wireBtnEvents();\n }\n };\n InPlaceEditor.prototype.renderButtons = function () {\n var btnWrap = this.createElement('div', { className: classes.BUTTONS });\n var primary = (!isNOU(this.saveButton.content) && this.saveButton.content.length !== 0) ? (' ' + classes.PRIMARY) : '';\n this.submitBtn = this.createButtons({\n constant: 'save', type: 'submit', container: btnWrap,\n title: { save: 'Save' }, model: this.saveButton,\n className: classes.BTN_SAVE + primary\n });\n this.cancelBtn = this.createButtons({\n type: 'button', constant: 'cancel', title: { cancel: 'Cancel' },\n container: btnWrap, model: this.cancelButton,\n className: classes.BTN_CANCEL\n });\n return btnWrap;\n };\n InPlaceEditor.prototype.createButtons = function (args) {\n var btnObj = undefined;\n if (Object.keys(args.model).length > 0) {\n var btnEle = this.createElement('button', {\n className: args.className,\n attrs: { 'type': args.type, 'title': (args.constant == \"save\") ? (isNOU(this.saveButton.content) ? this.getLocale(args.title, args.constant) : this.saveButton.content) : (isNOU(this.cancelButton.content) ? this.getLocale(args.title, args.constant) : this.cancelButton.content) }\n });\n args.container.appendChild(btnEle);\n btnObj = new Button(args.model, btnEle);\n }\n return btnObj;\n };\n InPlaceEditor.prototype.renderComponent = function (ele) {\n this.isExtModule = (Array.prototype.indexOf.call(this.moduleList, this.type) > -1) ? true : false;\n var classProp;\n if (!isNOU(this.model.cssClass)) {\n classProp = this.model.cssClass.indexOf(classes.ELEMENTS) < 0 ?\n this.model.cssClass === '' ? classes.ELEMENTS : this.model.cssClass + ' ' + classes.ELEMENTS :\n this.model.cssClass;\n }\n else {\n classProp = classes.ELEMENTS;\n }\n extend(this.model, this.model, {\n cssClass: classProp, enableRtl: this.enableRtl, locale: this.locale, change: this.changeHandler.bind(this)\n });\n if (!isNOU(this.value)) {\n this.updateModelValue(false);\n }\n if (this.isExtModule) {\n this.notify(events.render, { module: modulesList[this.type], target: ele, type: this.type });\n }\n else {\n if (isNOU(this.model.showClearButton) && !isBlazor()) {\n this.model.showClearButton = true;\n }\n switch (this.type) {\n case 'Date':\n this.componentObj = new DatePicker(this.model);\n break;\n case 'DateTime':\n this.componentObj = new DateTimePicker(this.model);\n break;\n case 'DropDownList':\n this.componentObj = new DropDownList(this.model);\n break;\n case 'Mask':\n this.componentObj = new MaskedTextBox(this.model);\n break;\n case 'Numeric':\n if (this.model.value) {\n var expRegex = new RegExp('[eE][\\-+]?([0-9]+)');\n if (expRegex.test(this.model.value)) {\n this.model.value = this.model.value;\n }\n else {\n this.model.value = this.model.value.toString().replace(/[`~!@#$%^&*()_|\\=?;:'\",<>\\{\\}\\[\\]\\\\\\/]/gi, '');\n }\n }\n this.componentObj = new NumericTextBox(this.model);\n break;\n case 'Text':\n this.componentObj = new TextBox(this.model);\n break;\n }\n this.componentObj.appendTo(ele);\n }\n };\n InPlaceEditor.prototype.updateAdaptor = function () {\n switch (this.adaptor) {\n case 'UrlAdaptor':\n this.dataAdaptor = new UrlAdaptor;\n break;\n case 'WebApiAdaptor':\n this.dataAdaptor = new WebApiAdaptor;\n break;\n case 'ODataV4Adaptor':\n this.dataAdaptor = new ODataV4Adaptor;\n break;\n }\n };\n InPlaceEditor.prototype.loadSpinner = function (callType) {\n addClass([this.loader], [classes.SHOW]);\n if (callType === 'validate' && (this.type === 'RTE' || this.type === 'Color' || this.type === 'Slider')) {\n addClass([this.loader], [classes.RTE_SPIN_WRAP]);\n addClass([this.getEditElement()], [classes.CTRL_OVERLAY]);\n this.spinObj = { target: this.loader };\n }\n else {\n this.spinObj = { target: this.loader, width: Browser.isDevice ? '16px' : '14px' };\n }\n if (this.formEle) {\n addClass([this.formEle], [classes.LOAD]);\n }\n if (this.btnElements) {\n addClass([this.btnElements], [classes.HIDE]);\n }\n setStyleAttribute(this.loader, { 'width': '100%' });\n createSpinner(this.spinObj);\n showSpinner(this.spinObj.target);\n };\n InPlaceEditor.prototype.removeSpinner = function (callType) {\n this.loader.removeAttribute('style');\n hideSpinner(this.spinObj.target);\n detach(this.spinObj.target.firstChild);\n if (callType === 'submit' && (this.type === 'RTE' || this.type === 'Color' || this.type === 'Slider')) {\n removeClass([this.loader], [classes.RTE_SPIN_WRAP]);\n removeClass([this.getEditElement()], [classes.CTRL_OVERLAY]);\n }\n if (this.formEle) {\n removeClass([this.formEle], [classes.LOAD]);\n }\n if (this.btnElements) {\n removeClass([this.btnElements], [classes.HIDE]);\n }\n removeClass([this.loader], [classes.SHOW]);\n };\n InPlaceEditor.prototype.getEditElement = function () {\n return select('.' + classes.ELEMENTS, this.formEle);\n };\n InPlaceEditor.prototype.getLocale = function (prop, val) {\n return new L10n('inplace-editor', prop, this.locale).getConstant(val);\n };\n InPlaceEditor.prototype.checkValue = function (val) {\n return (!this.isEmpty(val)) ? val : this.emptyText;\n };\n InPlaceEditor.prototype.extendModelValue = function (val) {\n var model = this.model;\n extend(model, { value: val });\n this.setProperties({ model: model }, true);\n };\n InPlaceEditor.prototype.updateValue = function () {\n this.oldValue = this.value;\n if (this.enableHtmlSanitizer && typeof (this.value) === 'string') {\n this.oldValue = this.sanitizeHelper(this.value);\n }\n if (!isNOU(this.value)) {\n this.setProperties({ value: getCompValue(this.type, this.oldValue) }, true);\n this.extendModelValue(getCompValue(this.type, this.oldValue));\n }\n };\n InPlaceEditor.prototype.updateModelValue = function (updateOldValue) {\n if (this.type === 'MultiSelect' && !this.isEmpty(this.value)) {\n this.model.value = !updateOldValue ? this.value.slice() : this.oldValue.slice();\n }\n else {\n this.model.value = !updateOldValue ? this.value : this.oldValue;\n }\n };\n InPlaceEditor.prototype.setValue = function () {\n if (this.isExtModule) {\n this.notify(events.update, { type: this.type });\n }\n else if (this.componentObj) {\n if (this.type === 'Numeric' && this.componentObj.value === null) {\n this.componentObj.setProperties({ value: null }, true);\n }\n this.setProperties({ value: this.componentObj.value }, true);\n this.extendModelValue(this.componentObj.value);\n }\n };\n InPlaceEditor.prototype.getDropDownsValue = function (display) {\n var value;\n if (Array.prototype.indexOf.call(this.dropDownEle, this.type) > -1 && this.type !== 'MultiSelect') {\n value = display ? select('.e-' + this.type.toLocaleLowerCase(), this.containerEle).value :\n this.value.toString();\n }\n else if (this.type === 'MultiSelect') {\n this.notify(events.accessValue, { type: this.type });\n value = display ? this.printValue : this.value.join();\n }\n return value;\n };\n InPlaceEditor.prototype.getSendValue = function () {\n if (this.isEmpty(this.value)) {\n return '';\n }\n if (Array.prototype.indexOf.call(this.dropDownEle, this.type) > -1) {\n return this.getDropDownsValue(false);\n }\n else if (Array.prototype.indexOf.call(this.dateType, this.type) > -1) {\n return this.value.toISOString();\n }\n else if (this.type === 'DateRange') {\n return this.value[0].toISOString() + ' - ' + this.value[1].toISOString();\n }\n else {\n return this.value.toString();\n }\n };\n InPlaceEditor.prototype.getRenderValue = function () {\n if (this.type === 'Mask' && this.componentObj.value.length !== 0) {\n return this.componentObj.getMaskedValue();\n }\n else if (Array.prototype.indexOf.call(this.inputDataEle, this.type) > -1) {\n return this.componentRoot.value;\n }\n else if (Array.prototype.indexOf.call(this.dropDownEle, this.type) > -1) {\n return this.getDropDownsValue(true);\n }\n else {\n return parseValue(this.type, this.value, this.model);\n }\n };\n InPlaceEditor.prototype.setRtl = function (value) {\n value ? addClass([this.element], [classes.RTL]) : removeClass([this.element], [classes.RTL]);\n };\n InPlaceEditor.prototype.setFocus = function () {\n if (this.isTemplate) {\n return;\n }\n this.isExtModule ? this.notify(events.setFocus, {}) : this.componentObj.element.focus();\n };\n InPlaceEditor.prototype.removeEditor = function (isBlazorDestroy) {\n var blazorContain = Object.keys(window);\n if (isBlazor() && !this.isStringTemplate) {\n resetBlazorTemplate(this.element.id + 'template', 'Template');\n }\n var tipEle;\n if (this.tipObj && this.formEle) {\n tipEle = closest(this.formEle, '.' + classes.ROOT_TIP);\n tipEle.classList.add(classes.HIDE);\n }\n this.unWireDocEvent();\n this.destroyComponents();\n this.formEle = undefined;\n if (!isNOU(select('.' + classes.INLINE, this.element))) {\n detach(this.inlineWrapper);\n this.inlineWrapper = undefined;\n }\n else if (this.tipObj) {\n if (this.type === 'MultiSelect') {\n EventHandler.remove(this.containerEle, 'mousedown', this.popMouseDown);\n EventHandler.remove(this.containerEle, 'click', this.popClickHandler);\n }\n this.tipObj.close();\n this.tipObj.destroy();\n this.tipObj = undefined;\n }\n this.containerEle = undefined;\n removeClass([this.valueWrap], [classes.OPEN, classes.HIDE]);\n if (!isBlazorDestroy) {\n this.setProperties({ enableEditMode: false }, true);\n }\n if (this.editableOn !== 'EditIconClick') {\n var titleConstant = (this.editableOn === 'DblClick') ? 'editAreaDoubleClick' : 'editAreaClick';\n if (!isNOU(this.valueWrap.parentElement)) {\n this.valueWrap.parentElement.setAttribute('title', this.getLocale(localeConstant[this.editableOn], titleConstant));\n }\n }\n if (this.isReact) {\n this.clearTemplate();\n }\n };\n InPlaceEditor.prototype.destroyComponents = function () {\n if (this.showButtons) {\n this.destroyButtons();\n }\n if (this.isExtModule) {\n this.notify(events.destroyModules, {});\n }\n else {\n if (this.templateEle) {\n document.body.appendChild(this.templateEle);\n this.templateEle.style.display = 'none';\n this.templateEle = undefined;\n }\n if (!isNOU(this.componentObj)) {\n this.componentObj.destroy();\n this.componentObj = undefined;\n }\n }\n if (this.formValidate) {\n this.formValidate = undefined;\n }\n if (this.submitOnEnter && this.containerEle) {\n this.unWireEditorKeyDownEvent(this.containerEle);\n }\n };\n InPlaceEditor.prototype.destroyButtons = function () {\n if (!isNOU(this.submitBtn)) {\n EventHandler.remove(this.submitBtn.element, 'mousedown', this.submitHandler);\n EventHandler.remove(this.submitBtn.element, 'click', this.submitPrevent);\n EventHandler.remove(this.submitBtn.element, 'keydown', this.btnKeyDownHandler);\n this.submitBtn.destroy();\n this.submitBtn = undefined;\n }\n if (!isNOU(this.cancelBtn)) {\n EventHandler.remove(this.cancelBtn.element, 'mouseup', this.cancelBtnClick);\n EventHandler.remove(this.cancelBtn.element, 'keydown', this.btnKeyDownHandler);\n this.cancelBtn.destroy();\n this.cancelBtn = undefined;\n }\n this.btnElements = undefined;\n };\n InPlaceEditor.prototype.getQuery = function (params) {\n var query = new Query();\n Object.keys(params).forEach(function (key) {\n query.addParams(key, params[key]);\n });\n return query;\n };\n InPlaceEditor.prototype.sendValue = function () {\n var _this = this;\n var eventArgs = { data: { name: this.name, primaryKey: this.primaryKey, value: this.getSendValue() } };\n this.trigger('actionBegin', eventArgs, function (actionBeginArgs) {\n if (actionBeginArgs.cancel) {\n _this.removeSpinner('submit');\n if (_this.mode === 'Popup') {\n _this.updateArrow();\n }\n }\n else {\n if (!_this.isEmpty(_this.url) && !_this.isEmpty(_this.primaryKey)\n && (_this.initRender || (!_this.initRender && _this.prevValue !== _this.value))) {\n _this.dataManager = new DataManager({ url: _this.url, adaptor: _this.dataAdaptor });\n if (_this.adaptor === 'UrlAdaptor') {\n _this.dataManager.executeQuery(_this.getQuery(actionBeginArgs.data), _this.successHandler.bind(_this), _this.failureHandler.bind(_this));\n }\n else {\n var crud = _this.dataManager.insert(actionBeginArgs.data);\n crud.then(function (e) { return _this.successHandler(e); }).catch(function (e) { return _this.failureHandler(e); });\n }\n }\n else {\n var eventArg = { data: {}, value: actionBeginArgs.data.value };\n _this.triggerSuccess(eventArg);\n }\n _this.dataManager = undefined;\n }\n });\n };\n InPlaceEditor.prototype.isEmpty = function (value) {\n return (!isNOU(value) && value.length !== 0) ? false : true;\n };\n InPlaceEditor.prototype.checkIsTemplate = function () {\n this.isTemplate = (!isNOU(this.template) && this.template !== '') ? true : false;\n };\n InPlaceEditor.prototype.templateCompile = function (trgEle, tempStr) {\n var tempEle;\n var blazorContain = Object.keys(window);\n if (typeof tempStr === 'string') {\n tempStr = tempStr.trim();\n }\n var compiler = compile(tempStr);\n if (!isNOU(compiler)) {\n var isString = (isBlazor() &&\n !this.isStringTemplate && (tempStr).indexOf('
      Blazor') === 0) ?\n this.isStringTemplate : true;\n tempEle = compiler({}, this, 'template', this.element.id + 'template', isString);\n }\n if (!isNOU(compiler) && tempEle.length > 0) {\n [].slice.call(tempEle).forEach(function (el) {\n trgEle.appendChild(el);\n });\n if (isBlazor() && !this.isStringTemplate && (tempStr).indexOf('
      Blazor') === 0) {\n updateBlazorTemplate(this.element.id + 'template', 'Template', this);\n }\n }\n };\n /**\n * @param {string} value - specifies the string value\n * @returns {string} - returns the string\n * @hidden\n */\n InPlaceEditor.prototype.sanitizeHelper = function (value) {\n if (this.enableHtmlSanitizer) {\n var item_1 = SanitizeHtmlHelper.beforeSanitize();\n var beforeEvent = {\n cancel: false,\n helper: null\n };\n extend(item_1, item_1, beforeEvent);\n this.trigger('beforeSanitizeHtml', item_1, function (args) {\n if (item_1.cancel && !isNOU(item_1.helper)) {\n value = item_1.helper(value);\n }\n else if (!item_1.cancel) {\n value = SanitizeHtmlHelper.serializeValue(item_1, value);\n }\n });\n }\n return value;\n };\n InPlaceEditor.prototype.appendTemplate = function (trgEle, tempStr) {\n tempStr = typeof (tempStr) === 'string' ? this.sanitizeHelper(tempStr) : tempStr;\n this.setProperties({ template: tempStr }, true);\n if (typeof tempStr === 'string' || isNOU(tempStr.innerHTML)) {\n if (tempStr[0] === '.' || tempStr[0] === '#') {\n if (document.querySelectorAll(tempStr).length) {\n this.templateEle = document.querySelector(tempStr);\n trgEle.appendChild(this.templateEle);\n this.templateEle.style.display = '';\n }\n else {\n this.templateCompile(trgEle, tempStr);\n }\n }\n else {\n this.templateCompile(trgEle, tempStr);\n }\n }\n else {\n this.templateEle = tempStr;\n trgEle.appendChild(this.templateEle);\n }\n };\n InPlaceEditor.prototype.disable = function (value) {\n value ? addClass([this.element], [classes.DISABLE]) : removeClass([this.element], [classes.DISABLE]);\n };\n InPlaceEditor.prototype.enableEditor = function (val, isInit) {\n if (isInit && !val) {\n return;\n }\n (val) ? this.renderEditor() : this.cancelHandler('cancel');\n };\n InPlaceEditor.prototype.checkValidation = function (fromSubmit, isValidate) {\n var _this = this;\n var args;\n if (this.validationRules) {\n var rules = Object.keys(this.validationRules);\n var validationLength_1 = Object.keys(this.validationRules[rules[0]]).length;\n validationLength_1 = 'validateHidden' in this.validationRules[rules[0]] ? validationLength_1 - 1 : validationLength_1;\n var count_1 = 0;\n this.formValidate = new FormValidator(this.formEle, {\n rules: this.validationRules,\n validationBegin: function (e) {\n if (_this.type === 'RTE') {\n var ele = document.createElement('div');\n ele.innerHTML = e.value;\n e.value = ele.innerText;\n }\n },\n validationComplete: function (e) {\n count_1 = count_1 + 1;\n args = {\n errorMessage: e.message,\n data: { name: _this.name, primaryKey: _this.primaryKey, value: _this.checkValue(_this.getSendValue()) }\n };\n _this.trigger('validating', args, function (validateArgs) {\n if (e.status === 'failure') {\n e.errorElement.innerText = validateArgs.errorMessage;\n _this.toggleErrorClass(true);\n }\n else {\n _this.toggleErrorClass(false);\n }\n if (!isNOU(fromSubmit) && fromSubmit && (validationLength_1 === count_1 || e.status === 'failure')) {\n fromSubmit = false;\n _this.afterValidation(isValidate);\n count_1 = 0;\n }\n });\n },\n customPlacement: function (inputElement, errorElement) {\n if (_this.formEle) {\n select('.' + classes.EDITABLE_ERROR, _this.formEle).appendChild(errorElement);\n }\n }\n });\n count_1 = 0;\n this.formValidate.validate();\n }\n else if (this.template !== '') {\n args = {\n errorMessage: '',\n data: { name: this.name, primaryKey: this.primaryKey, value: this.checkValue(this.getSendValue()) }\n };\n this.trigger('validating', args, function (validateArgs) {\n if (validateArgs.errorMessage) {\n select('.' + classes.EDITABLE_ERROR, _this.formEle).innerHTML = validateArgs.errorMessage;\n _this.toggleErrorClass(true);\n }\n else {\n _this.toggleErrorClass(false);\n }\n _this.afterValidation(isValidate);\n });\n }\n else {\n this.afterValidation(isValidate);\n }\n };\n InPlaceEditor.prototype.afterValidation = function (isValidate) {\n if (!this.formEle.classList.contains(classes.ERROR) && isValidate) {\n this.loadSpinner('validate');\n if (this.mode === 'Popup') {\n this.updateArrow();\n }\n this.sendValue();\n }\n };\n InPlaceEditor.prototype.toggleErrorClass = function (value) {\n if (isNOU(this.formEle)) {\n return;\n }\n var inputEle = select('.e-input-group', this.formEle);\n var errorClass = function (element, val, action) {\n [].slice.call(element).forEach(function (ele) {\n if (ele) {\n action === 'add' ? addClass([ele], [val]) : removeClass([ele], [val]);\n }\n });\n };\n errorClass([this.formEle, inputEle], classes.ERROR, value ? 'add' : 'remove');\n };\n InPlaceEditor.prototype.updateArrow = function () {\n var pos = this.tipObj.tipPointerPosition;\n this.tipObj.tipPointerPosition = (pos === 'Middle') ? 'Auto' : 'Middle';\n this.tipObj.tipPointerPosition = pos;\n this.tipObj.dataBind();\n };\n InPlaceEditor.prototype.triggerSuccess = function (args) {\n var _this = this;\n var val = args.value;\n this.trigger('actionSuccess', args, function (actionArgs) {\n _this.oldValue = val;\n _this.removeSpinner('submit');\n if (!actionArgs.cancel) {\n _this.renderValue(_this.checkValue((actionArgs.value !== val) ? actionArgs.value : _this.getRenderValue()));\n }\n if (actionArgs.cancel && _this.mode === 'Inline') {\n removeClass([_this.valueWrap], [classes.HIDE]);\n }\n _this.removeEditor();\n });\n };\n InPlaceEditor.prototype.triggerEndEdit = function (closeBeginBy) {\n var _this = this;\n var endEditArgs = { cancel: false, mode: this.mode, action: closeBeginBy };\n this.trigger('endEdit', endEditArgs, function (args) {\n if (!args.cancel) {\n if (_this.formEle && _this.formEle.classList.contains(classes.ERROR)) {\n _this.updateModelValue(true);\n _this.setProperties({ value: _this.oldValue }, true);\n }\n _this.removeEditor();\n }\n });\n };\n InPlaceEditor.prototype.wireEvents = function () {\n this.wireEditEvent(this.editableOn);\n EventHandler.add(this.editIcon, 'click', this.clickHandler, this);\n EventHandler.add(this.element, 'keydown', this.valueKeyDownHandler, this);\n document.addEventListener('scroll', this.onScrollResizeHandler);\n window.addEventListener('resize', this.onScrollResizeHandler);\n if (Array.prototype.indexOf.call(this.clearComponents, this.type) > -1) {\n EventHandler.add(this.element, 'mousedown', this.mouseDownHandler, this);\n }\n };\n InPlaceEditor.prototype.wireDocEvent = function () {\n EventHandler.add(document, 'mousedown', this.docClickHandler, this);\n };\n InPlaceEditor.prototype.wireEditEvent = function (event) {\n if (event === 'EditIconClick') {\n return;\n }\n var titleConstant = (event === 'Click') ? 'editAreaClick' : 'editAreaDoubleClick';\n this.element.setAttribute('title', this.getLocale(localeConstant[event], titleConstant));\n if (Browser.isDevice && Browser.isIos && event === 'DblClick') {\n this.touchModule = new Touch(this.valueWrap, { tap: this.doubleTapHandler.bind(this) });\n }\n else {\n EventHandler.add(this.valueWrap, event.toLowerCase(), this.clickHandler, this);\n }\n };\n InPlaceEditor.prototype.wireEditorKeyDownEvent = function (ele) {\n EventHandler.add(ele, 'keydown', this.enterKeyDownHandler, this);\n };\n InPlaceEditor.prototype.wireBtnEvents = function () {\n if (!isNOU(this.submitBtn)) {\n EventHandler.add(this.submitBtn.element, 'mousedown', this.submitHandler, this);\n EventHandler.add(this.submitBtn.element, 'click', this.submitPrevent, this);\n EventHandler.add(this.submitBtn.element, 'keydown', this.btnKeyDownHandler, this);\n }\n if (!isNOU(this.cancelBtn)) {\n EventHandler.add(this.cancelBtn.element, 'mouseup', this.cancelBtnClick, this);\n EventHandler.add(this.cancelBtn.element, 'keydown', this.btnKeyDownHandler, this);\n }\n };\n InPlaceEditor.prototype.cancelBtnClick = function (e) {\n this.cancelHandler('cancel');\n this.trigger('cancelClick', e);\n };\n InPlaceEditor.prototype.unWireEvents = function () {\n this.unWireEditEvent(this.editableOn);\n EventHandler.remove(this.editIcon, 'click', this.clickHandler);\n document.removeEventListener('scroll', this.onScrollResizeHandler);\n window.removeEventListener('resize', this.onScrollResizeHandler);\n EventHandler.remove(this.element, 'keydown', this.valueKeyDownHandler);\n if (Array.prototype.indexOf.call(this.clearComponents, this.type) > -1) {\n EventHandler.remove(this.element, 'mousedown', this.mouseDownHandler);\n }\n };\n InPlaceEditor.prototype.unWireDocEvent = function () {\n EventHandler.remove(document, 'mousedown', this.docClickHandler);\n };\n InPlaceEditor.prototype.unWireEditEvent = function (event) {\n if (event === 'EditIconClick') {\n return;\n }\n this.element.removeAttribute('title');\n if (Browser.isDevice && Browser.isIos && event === 'DblClick') {\n this.touchModule.destroy();\n this.touchModule = undefined;\n }\n else {\n EventHandler.remove(this.valueWrap, event.toLowerCase(), this.clickHandler);\n }\n };\n InPlaceEditor.prototype.unWireEditorKeyDownEvent = function (ele) {\n EventHandler.remove(ele, 'keydown', this.enterKeyDownHandler);\n };\n InPlaceEditor.prototype.submitPrevent = function (e) {\n e.preventDefault();\n };\n InPlaceEditor.prototype.btnKeyDownHandler = function (e) {\n var trg = e.target;\n if ((e.keyCode === 13 && e.which === 13) || (e.keyCode === 32 && e.which === 32)) {\n if (trg.classList.contains(classes.BTN_SAVE)) {\n this.save();\n }\n else if (trg.classList.contains(classes.BTN_CANCEL)) {\n this.cancelHandler('cancel');\n }\n }\n if (e.keyCode === 9 && e.shiftKey === false &&\n (isNOU(e.target.nextElementSibling) ||\n e.target.nextElementSibling.tagName !== 'BUTTON')) {\n if (this.actionOnBlur === 'Submit') {\n this.save();\n }\n else if (this.actionOnBlur === 'Cancel') {\n this.cancelHandler('cancel');\n }\n }\n };\n InPlaceEditor.prototype.afterOpenHandler = function (e) {\n if (this.mode === 'Popup' && this.type === 'MultiSelect') {\n EventHandler.add(this.containerEle, 'mousedown', this.popMouseDown, this);\n EventHandler.add(this.containerEle, 'click', this.popClickHandler, this);\n }\n if (this.mode === 'Popup' && !this.isEmpty(this.titleEle.innerHTML)) {\n e.element.classList.add(classes.TIP_TITLE);\n }\n if (this.type === 'RTE') {\n this.rteModule.refresh();\n this.setAttribute(select('.e-richtexteditor textarea', this.containerEle), ['name']);\n }\n else if (this.type === 'Slider') {\n this.sliderModule.refresh();\n this.setAttribute(select('.e-slider-input', this.containerEle), ['name']);\n }\n if (!this.beginEditArgs.cancelFocus) {\n if (this.mode === 'Inline' && (['AutoComplete', 'ComboBox', 'DropDownList', 'MultiSelect'].indexOf(this.type) > -1)\n && this.model.dataSource instanceof DataManager) {\n this.showDropDownPopup();\n }\n else {\n this.setFocus();\n }\n }\n if (this.afterOpenEvent) {\n this.tipObj.setProperties({ afterOpen: this.afterOpenEvent }, true);\n this.tipObj.trigger('afterOpen', e);\n }\n };\n InPlaceEditor.prototype.popMouseDown = function (e) {\n var trgClass = e.target.classList;\n if (trgClass.contains('e-chips-close') && !trgClass.contains('e-close-hooker')) {\n this.updateArrow();\n }\n };\n InPlaceEditor.prototype.doubleTapHandler = function (e) {\n if (e.tapCount > 1) {\n this.clickHandler(e.originalEvent);\n }\n };\n InPlaceEditor.prototype.clickHandler = function (e) {\n if (this.editableOn !== 'EditIconClick') {\n e.stopPropagation();\n }\n this.renderEditor();\n };\n InPlaceEditor.prototype.submitHandler = function (e) {\n e.preventDefault();\n this.save();\n this.trigger('submitClick', e);\n };\n InPlaceEditor.prototype.cancelHandler = function (action) {\n this.triggerEndEdit(action);\n };\n InPlaceEditor.prototype.popClickHandler = function (e) {\n var tipTarget = select('.' + classes.VALUE_WRAPPER, this.element);\n if (e.target.classList.contains('e-chips-close')) {\n this.tipObj.refresh(tipTarget);\n }\n };\n InPlaceEditor.prototype.successHandler = function (e) {\n this.initRender = false;\n var eventArgs = { data: e, value: this.getSendValue() };\n this.triggerSuccess(eventArgs);\n };\n InPlaceEditor.prototype.failureHandler = function (e) {\n var _this = this;\n var eventArgs = { data: e, value: this.getSendValue() };\n this.trigger('actionFailure', eventArgs, function (args) {\n _this.removeSpinner('submit');\n if (_this.mode === 'Popup') {\n _this.updateArrow();\n }\n });\n };\n InPlaceEditor.prototype.enterKeyDownHandler = function (e) {\n if (!closest(e.target, '.' + classes.INPUT + ' .e-richtexteditor') && (!e.currentTarget.getElementsByTagName(\"textarea\")[0])) {\n if ((e.keyCode === 13 && e.which === 13) && closest(e.target, '.' + classes.INPUT)) {\n this.save();\n this.trigger('submitClick', e);\n }\n else if (e.keyCode === 27 && e.which === 27) {\n this.cancelHandler('cancel');\n }\n }\n };\n InPlaceEditor.prototype.valueKeyDownHandler = function (e) {\n if (e.keyCode === 9 && e.shiftKey === true && e.target.tagName !== 'BUTTON') {\n if (this.actionOnBlur === 'Submit') {\n this.save();\n }\n else if (this.actionOnBlur === 'Cancel') {\n this.cancelHandler('cancel');\n }\n }\n if ((e.keyCode === 13 && e.which === 13) && e.target.classList.contains(classes.ROOT) &&\n !this.valueWrap.classList.contains(classes.OPEN) && !this.element.classList.contains(classes.DISABLE)) {\n e.preventDefault();\n this.renderEditor();\n }\n };\n InPlaceEditor.prototype.mouseDownHandler = function (e) {\n if (e.target.classList.contains('e-clear-icon')) {\n this.isClearTarget = true;\n }\n };\n InPlaceEditor.prototype.scrollResizeHandler = function () {\n if (this.mode === 'Popup' && this.tipObj && !(Browser.isDevice)) {\n this.triggerEndEdit('cancel');\n }\n };\n InPlaceEditor.prototype.docClickHandler = function (e) {\n var trg = e.target;\n if (this.isClearTarget) {\n this.isClearTarget = false;\n return;\n }\n var relateRoot = closest(trg, '.' + classes.ROOT);\n var relateTipRoot = closest(trg, '.' + classes.ROOT_TIP);\n var relateElements = closest(trg, '.' + classes.ELEMENTS);\n var relateRTEElements = closest(trg, '.e-rte-elements');\n if ((!isNOU(relateRoot) && relateRoot.isEqualNode(this.element)) ||\n (!isNOU(relateTipRoot) && this.tipObj && (relateTipRoot.id.indexOf(this.valueWrap.id) > -1)) ||\n !isNOU(relateElements) || !isNOU(relateRTEElements) || trg.classList.contains('e-chips-close')) {\n return;\n }\n else {\n if (this.actionOnBlur === 'Submit') {\n this.save();\n }\n else if (this.actionOnBlur === 'Cancel') {\n this.cancelHandler('cancel');\n }\n }\n };\n InPlaceEditor.prototype.changeHandler = function (e) {\n var eventArgs = {\n previousValue: this.compPrevValue === undefined ? this.value : this.compPrevValue,\n value: e.value\n };\n if (this.type === 'AutoComplete' || this.type === 'ComboBox' || this.type === 'DropDownList') {\n eventArgs.itemData = e.itemData;\n eventArgs.previousItemData = e.previousItemData;\n }\n this.compPrevValue = eventArgs.value;\n this.trigger('change', eventArgs);\n };\n /**\n * Validate current editor value.\n *\n * @returns {void}\n */\n InPlaceEditor.prototype.validate = function () {\n this.checkValidation(true, false);\n };\n /**\n * Submit the edited input value to the server.\n *\n * @returns {void}\n */\n InPlaceEditor.prototype.save = function () {\n var _this = this;\n if (!this.formEle) {\n return;\n }\n this.element.focus();\n this.editEle = select('.' + classes.INPUT, this.formEle);\n var errEle = null;\n errEle = select('.' + classes.ERROR, this.editEle);\n if (!this.isTemplate) {\n this.setValue();\n }\n var endEditArgs = { cancel: false, mode: this.mode, action: 'submit' };\n this.trigger('endEdit', endEditArgs, function (args) {\n if (!args.cancel) {\n _this.checkValidation(true, true);\n }\n });\n };\n /**\n * Removes the control from the DOM and also removes all its related events.\n *\n * @returns {void}\n */\n InPlaceEditor.prototype.destroy = function () {\n var _this = this;\n this.removeEditor(isBlazor());\n if (this.isExtModule) {\n this.notify(events.destroy, {});\n }\n this.unWireEvents();\n var classList = [classes.DISABLE, classes.RTL];\n classList.forEach(function (val) {\n removeClass([_this.element], [val]);\n });\n while (this.element.firstElementChild) {\n this.element.removeChild(this.element.firstElementChild);\n }\n if (!(isBlazor() && this.isServerRendered)) {\n _super.prototype.destroy.call(this);\n }\n if (this.isReact) {\n this.clearTemplate();\n }\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @returns {string} - returns the string\n */\n InPlaceEditor.prototype.getPersistData = function () {\n return this.addOnPersist(['value']);\n };\n /**\n * To provide the array of modules needed for component rendering\n *\n * @returns {ModuleDeclaration[]} - returns the module declaration\n * @hidden\n */\n InPlaceEditor.prototype.requiredModules = function () {\n var modules = [];\n modules.push({ member: modulesList[this.type], args: [this] });\n return modules;\n };\n /**\n * Returns the current module name.\n *\n * @returns {string} - returrns the string\n * @private\n */\n InPlaceEditor.prototype.getModuleName = function () {\n return 'inplaceeditor';\n };\n /**\n * Gets called when the model property changes.The data that describes the old and new values of property that changed.\n *\n * @param {InPlaceEditorModel} newProp - specifies the new property\n * @param {InPlaceEditorModel} oldProp - specifies the old property\n * @returns {void}\n * @private\n */\n InPlaceEditor.prototype.onPropertyChanged = function (newProp, oldProp) {\n var checkValidation = this.validationRules ? !isNOU(this.element.querySelectorAll('.' + classes.ERROR)) &&\n this.element.querySelectorAll('.' + classes.ERROR).length > 0 ? false : true : true;\n if (checkValidation) {\n if (this.isEditorOpen()) {\n var editModeChanged = 'enableEditMode' in newProp;\n if ((editModeChanged && oldProp.enableEditMode && !newProp.enableEditMode) || (!editModeChanged && this.enableEditMode)) {\n this.triggerEndEdit('cancel');\n }\n else {\n this.removeEditor();\n }\n }\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'showButtons':\n (newProp.showButtons) ? this.appendButtons(this.formEle) : this.destroyButtons();\n break;\n case 'value':\n this.updateValue();\n this.textOption === 'Never' ? this.renderValue(this.checkValue(parseValue(this.type, this.value, this.model)))\n : this.renderInitialValue();\n break;\n case 'emptyText':\n this.textOption === 'Never' ? this.renderValue(this.checkValue(parseValue(this.type, this.value, this.model)))\n : this.renderInitialValue();\n break;\n case 'template':\n this.checkIsTemplate();\n break;\n case 'disabled':\n this.disable(newProp.disabled);\n break;\n case 'enableRtl':\n this.setRtl(newProp.enableRtl);\n break;\n case 'cssClass':\n this.setClass('remove', oldProp.cssClass);\n this.setClass('add', newProp.cssClass);\n break;\n case 'mode':\n this.enableEditor(this.enableEditMode);\n break;\n case 'enableEditMode':\n this.enableEditor(newProp.enableEditMode);\n break;\n case 'editableOn':\n this.unWireEditEvent(oldProp.editableOn);\n if (newProp.editableOn !== 'EditIconClick') {\n this.wireEditEvent(newProp.editableOn);\n }\n break;\n }\n }\n }\n };\n __decorate([\n Property('')\n ], InPlaceEditor.prototype, \"name\", void 0);\n __decorate([\n Property(null)\n ], InPlaceEditor.prototype, \"value\", void 0);\n __decorate([\n Property('')\n ], InPlaceEditor.prototype, \"template\", void 0);\n __decorate([\n Property(true)\n ], InPlaceEditor.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Property(true)\n ], InPlaceEditor.prototype, \"enableHtmlParse\", void 0);\n __decorate([\n Property('')\n ], InPlaceEditor.prototype, \"cssClass\", void 0);\n __decorate([\n Property('')\n ], InPlaceEditor.prototype, \"primaryKey\", void 0);\n __decorate([\n Property('Empty')\n ], InPlaceEditor.prototype, \"emptyText\", void 0);\n __decorate([\n Property('')\n ], InPlaceEditor.prototype, \"url\", void 0);\n __decorate([\n Property('Popup')\n ], InPlaceEditor.prototype, \"mode\", void 0);\n __decorate([\n Property('UrlAdaptor')\n ], InPlaceEditor.prototype, \"adaptor\", void 0);\n __decorate([\n Property('Text')\n ], InPlaceEditor.prototype, \"type\", void 0);\n __decorate([\n Property('Click')\n ], InPlaceEditor.prototype, \"editableOn\", void 0);\n __decorate([\n Property('Never')\n ], InPlaceEditor.prototype, \"textOption\", void 0);\n __decorate([\n Property('Submit')\n ], InPlaceEditor.prototype, \"actionOnBlur\", void 0);\n __decorate([\n Property(false)\n ], InPlaceEditor.prototype, \"enablePersistence\", void 0);\n __decorate([\n Property(false)\n ], InPlaceEditor.prototype, \"disabled\", void 0);\n __decorate([\n Property(true)\n ], InPlaceEditor.prototype, \"showButtons\", void 0);\n __decorate([\n Property(false)\n ], InPlaceEditor.prototype, \"enableEditMode\", void 0);\n __decorate([\n Property(true)\n ], InPlaceEditor.prototype, \"submitOnEnter\", void 0);\n __decorate([\n Complex({}, PopupSettings)\n ], InPlaceEditor.prototype, \"popupSettings\", void 0);\n __decorate([\n Property(null)\n ], InPlaceEditor.prototype, \"model\", void 0);\n __decorate([\n Property({ iconCss: 'e-icons e-save-icon' })\n ], InPlaceEditor.prototype, \"saveButton\", void 0);\n __decorate([\n Property({ iconCss: 'e-icons e-cancel-icon' })\n ], InPlaceEditor.prototype, \"cancelButton\", void 0);\n __decorate([\n Property(null)\n ], InPlaceEditor.prototype, \"validationRules\", void 0);\n __decorate([\n Event()\n ], InPlaceEditor.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], InPlaceEditor.prototype, \"beforeSanitizeHtml\", void 0);\n __decorate([\n Event()\n ], InPlaceEditor.prototype, \"actionBegin\", void 0);\n __decorate([\n Event()\n ], InPlaceEditor.prototype, \"actionSuccess\", void 0);\n __decorate([\n Event()\n ], InPlaceEditor.prototype, \"actionFailure\", void 0);\n __decorate([\n Event()\n ], InPlaceEditor.prototype, \"validating\", void 0);\n __decorate([\n Event()\n ], InPlaceEditor.prototype, \"beginEdit\", void 0);\n __decorate([\n Event()\n ], InPlaceEditor.prototype, \"endEdit\", void 0);\n __decorate([\n Event()\n ], InPlaceEditor.prototype, \"change\", void 0);\n __decorate([\n Event()\n ], InPlaceEditor.prototype, \"submitClick\", void 0);\n __decorate([\n Event()\n ], InPlaceEditor.prototype, \"cancelClick\", void 0);\n __decorate([\n Event()\n ], InPlaceEditor.prototype, \"destroyed\", void 0);\n InPlaceEditor = __decorate([\n NotifyPropertyChanges\n ], InPlaceEditor);\n return InPlaceEditor;\n}(Component));\nexport { InPlaceEditor };\n","import { AjaxHandler } from '../index';\nimport { createElement, Browser, Internationalization, isBlazor, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { Accordion, ContextMenu as Context } from '@syncfusion/ej2-navigations';\nimport { InPlaceEditor } from '@syncfusion/ej2-inplace-editor';\nimport { cloneObject } from '../drawing/drawing-util';\n/**\n * StickyNotes module\n */\nvar StickyNotesAnnotation = /** @class */ (function () {\n /**\n * @param pdfViewer\n * @param pdfViewerBase\n * @param pdfViewer\n * @param pdfViewerBase\n * @private\n */\n function StickyNotesAnnotation(pdfViewer, pdfViewerBase) {\n this.moreButtonId = '';\n this.commentsCount = 0;\n this.commentsreplyCount = 0;\n this.commentContextMenu = [];\n this.isAccordionContainer = true;\n this.isCreateContextMenu = false;\n this.isCommentsSelected = false;\n /**\n * @private\n */\n this.isAddAnnotationProgramatically = false;\n /**\n * @private\n */\n this.isEditableElement = false;\n this.isPageCommentsRendered = false;\n this.isCommentsRendered = false;\n /**\n * @private\n */\n this.isAnnotationRendered = false;\n /**\n * @private\n */\n this.textFromCommentPanel = false;\n this.pdfViewer = pdfViewer;\n this.pdfViewerBase = pdfViewerBase;\n this.opacity = this.pdfViewer.stickyNotesSettings.opacity ? this.pdfViewer.stickyNotesSettings.opacity : 1;\n }\n /**\n * @param stickyAnnotations\n * @param pageNumber\n * @param canvas\n * @private\n */\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.renderStickyNotesAnnotations = function (stickyAnnotations, pageNumber, canvas) {\n if (stickyAnnotations) {\n if (stickyAnnotations.length > 0) {\n for (var i = 0; i < stickyAnnotations.length; i++) {\n // eslint-disable-next-line\n var annotation = stickyAnnotations[i];\n var isAdded = false;\n // eslint-disable-next-line\n var pageAnnotations = this.getAnnotations(pageNumber, null, 'sticky');\n if (pageAnnotations !== null) {\n for (var k = 0; k < pageAnnotations.length; k++) {\n var annotationName = annotation.annotName ? annotation.annotName : annotation.AnnotName;\n var pageAnnotationName = pageAnnotations[k].annotName ? pageAnnotations[k].annotName : pageAnnotations[k].AnnotName;\n if (pageAnnotationName && annotationName && pageAnnotationName === annotationName) {\n isAdded = true;\n break;\n }\n }\n }\n if (!isAdded) {\n annotation.annotationAddMode = this.pdfViewer.annotationModule.findAnnotationMode(annotation, pageNumber, annotation.AnnotType);\n var annotationObject = null;\n // eslint-disable-next-line\n var position = annotation.Bounds;\n var author = annotation.Author;\n // eslint-disable-next-line max-len\n annotation.AnnotationSettings = annotation.AnnotationSettings ? annotation.AnnotationSettings : this.pdfViewer.annotationModule.updateAnnotationSettings(annotation);\n annotation.allowedInteractions = annotation.AllowedInteraction ? annotation.AllowedInteraction : this.pdfViewer.annotationModule.updateAnnotationAllowedInteractions(annotation);\n var isPrint = true;\n if (annotation.annotationAddMode === 'Imported Annotation') {\n isPrint = annotation.IsPrint;\n }\n else {\n isPrint = annotation.AnnotationSettings.isPrint;\n }\n if (annotation.IsLock) {\n annotation.AnnotationSettings.isLock = annotation.IsLock;\n }\n annotationObject = {\n // eslint-disable-next-line max-len\n shapeAnnotationType: 'sticky', author: author, modifiedDate: annotation.ModifiedDate, subject: annotation.Subject, note: annotation.Note, opacity: annotation.Opacity, state: annotation.State, stateModel: annotation.StateModel,\n pathData: '', comments: this.pdfViewer.annotationModule.getAnnotationComments(annotation.Comments, annotation, author), review: { state: annotation.State, stateModel: annotation.StateModel, modifiedDate: annotation.ModifiedDate, author: author }, pageNumber: pageNumber,\n // eslint-disable-next-line max-len\n bounds: { left: annotation.Bounds.X, top: annotation.Bounds.Y, width: annotation.Bounds.Width, height: annotation.Bounds.Height, right: annotation.Bounds.Right, bottom: annotation.Bounds.Bottom },\n annotName: annotation.AnnotName, color: annotation.color,\n annotationSelectorSettings: this.getSettings(annotation),\n customData: this.pdfViewer.annotation.getCustomData(annotation),\n annotationSettings: annotation.AnnotationSettings, allowedInteractions: annotation.allowedInteractions,\n isPrint: isPrint, isCommentLock: annotation.IsCommentLock\n };\n var annot = void 0;\n // eslint-disable-next-line max-len\n annotation.AnnotationSelectorSettings = annotation.AnnotationSelectorSettings ? annotation.AnnotationSelectorSettings : this.pdfViewer.annotationSelectorSettings;\n annot = {\n // eslint-disable-next-line max-len\n author: author, modifiedDate: annotationObject.modifiedDate, annotName: annotationObject.annotName, pageIndex: pageNumber, bounds: { x: position.Left, y: position.Top, width: position.Width, height: position.Height }, strokeColor: 'transparent', stampStrokeColor: '', data: this.setImageSource(), shapeAnnotationType: 'StickyNotes',\n subject: annotationObject.subject, notes: annotationObject.note, opacity: annotationObject.opacity, id: annotationObject.annotName, fillColor: annotationObject.color,\n annotationSelectorSettings: annotation.AnnotationSelectorSettings,\n annotationSettings: annotationObject.annotationSettings,\n // eslint-disable-next-line max-len\n annotationAddMode: annotation.annotationAddMode, isPrint: isPrint, isCommentLock: annotationObject.isCommentLock\n };\n if (canvas) {\n this.drawStickyNotes(position.Left, position.Top, position.Width, position.Height, pageNumber, annot, canvas);\n }\n else {\n this.pdfViewer.add(annot);\n this.drawStickyNotes(position.Left, position.Top, position.Width, position.Height, pageNumber, annot);\n this.pdfViewer.annotationModule.storeAnnotations(pageNumber, annotationObject, '_annotations_sticky');\n }\n if (this.isAddAnnotationProgramatically) {\n // eslint-disable-next-line\n var settings = {\n opacity: annot.opacity, borderColor: annot.strokeColor, borderWidth: annot.thickness, author: annotation.author, subject: annotation.subject, modifiedDate: annotation.modifiedDate,\n // eslint-disable-next-line\n fillColor: annot.fillColor, fontSize: annot.fontSize, width: annot.bounds.width, height: annot.bounds.height, fontColor: annot.fontColor, fontFamily: annot.fontFamily, defaultText: annot.dynamicText, fontStyle: annot.font, textAlignment: annot.textAlign\n };\n this.pdfViewer.fireAnnotationAdd(annot.pageIndex, annot.annotName, 'StickyNotes', annot.bounds, settings);\n }\n }\n }\n }\n }\n };\n /**\n * @param annotation\n * @private\n */\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.getSettings = function (annotation) {\n var selector = this.pdfViewer.annotationSelectorSettings;\n if (annotation.AnnotationSelectorSettings) {\n selector = annotation.AnnotationSelectorSettings;\n }\n else if (this.pdfViewer.stickyNotesSettings.annotationSelectorSettings) {\n selector = this.pdfViewer.stickyNotesSettings.annotationSelectorSettings;\n }\n return selector;\n };\n /**\n * @param X\n * @param Y\n * @param width\n * @param height\n * @param pageIndex\n * @param annotation\n * @param canvas\n * @param X\n * @param Y\n * @param width\n * @param height\n * @param pageIndex\n * @param annotation\n * @param canvas\n * @param X\n * @param Y\n * @param width\n * @param height\n * @param pageIndex\n * @param annotation\n * @param canvas\n * @private\n */\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.drawStickyNotes = function (X, Y, width, height, pageIndex, annotation, canvas) {\n var _this = this;\n var annot;\n var annotationObject = null;\n var image = new Image();\n // eslint-disable-next-line\n var proxy = this;\n image.onload = function () {\n var commentsDivid;\n var annotationName;\n // eslint-disable-next-line max-len\n var author = (_this.pdfViewer.annotationSettings.author !== 'Guest') ? _this.pdfViewer.annotationSettings.author : _this.pdfViewer.stickyNotesSettings.author;\n if (annotation) {\n annot = {\n // eslint-disable-next-line max-len\n author: annotation.author, modifiedDate: annotation.modifiedDate, annotName: annotation.annotName, data: image.src, bounds: { x: X, y: Y, width: width, height: height }, subject: annotation.subject,\n notes: annotation.notes, opacity: annotation.opacity, id: annotation.annotName, shapeAnnotationType: 'StickyNotes', strokeColor: 'transparent', stampStrokeColor: '', pageIndex: annotation.pageIndex, isPrint: annotation.isPrint\n };\n }\n else {\n annotationName = _this.pdfViewer.annotation.createGUID();\n commentsDivid = proxy.addComments('sticky', pageIndex + 1);\n if (commentsDivid) {\n document.getElementById(commentsDivid).id = annotationName;\n }\n // eslint-disable-next-line\n var annotationSelectorSettings = _this.pdfViewer.stickyNotesSettings.annotationSelectorSettings ? _this.pdfViewer.stickyNotesSettings.annotationSelectorSettings : _this.pdfViewer.annotationSelectorSettings;\n var isPrint = _this.pdfViewer.stickyNotesSettings.isPrint;\n annot = {\n // eslint-disable-next-line max-len\n bounds: { x: X, y: Y, width: width, height: height }, pageIndex: pageIndex, data: image.src, modifiedDate: _this.getDateAndTime(),\n shapeAnnotationType: 'StickyNotes', strokeColor: 'transparent', stampStrokeColor: '', annotName: annotationName, id: annotationName, opacity: _this.opacity, isPrint: isPrint\n };\n // eslint-disable-next-line max-len\n var isLock = _this.pdfViewer.stickyNotesSettings.isLock ? _this.pdfViewer.stickyNotesSettings.isLock : _this.pdfViewer.annotationSettings.isLock;\n // eslint-disable-next-line\n var allowedInteractions = _this.pdfViewer.annotationModule.updateAnnotationAllowedInteractions(annotation);\n annotationObject = {\n // eslint-disable-next-line max-len\n author: author, allowedInteractions: allowedInteractions, modifiedDate: _this.getDateAndTime(), subject: 'Sticky Note', shapeAnnotationType: 'sticky', pageNumber: pageIndex,\n // eslint-disable-next-line max-len\n note: '', opacity: _this.opacity, pathData: '', state: '', stateModel: '', color: 'rgba(255,255,0)', comments: [], annotName: annotationName,\n // eslint-disable-next-line max-len\n bounds: { left: X, top: Y, width: width, height: height }, review: { state: '', stateModel: '', modifiedDate: '', author: author },\n annotationSelectorSettings: annotationSelectorSettings,\n // eslint-disable-next-line max-len\n customData: _this.pdfViewer.annotationModule.getData('sticky'), annotationSettings: { isLock: isLock }, isPrint: isPrint, isCommentLock: false\n };\n }\n if (!annotation) {\n // eslint-disable-next-line max-len\n proxy.pdfViewer.annotation.addAction(pageIndex, null, annot, 'Addition', '', annot, annot);\n proxy.pdfViewer.add(annot);\n proxy.pdfViewer.annotationModule.storeAnnotations(pageIndex, annotationObject, '_annotations_sticky');\n }\n if (proxy.pdfViewerBase.isAddComment) {\n // eslint-disable-next-line max-len\n // eslint-disable-next-line\n var bounds = { left: annot.bounds.x, top: annot.bounds.y, width: annot.bounds.width, height: annot.bounds.height };\n _this.pdfViewerBase.updateDocumentEditedProperty(true);\n // eslint-disable-next-line\n var settings = { opacity: annot.opacity, author: author, modifiedDate: annot.modifiedDate, subject: annot.shapeAnnotationType };\n _this.pdfViewer.fireAnnotationAdd(annot.pageIndex, annot.annotName, 'StickyNotes', bounds, settings);\n }\n if (canvas) {\n // eslint-disable-next-line\n proxy.pdfViewer.renderDrawing(canvas, pageIndex);\n }\n else {\n // eslint-disable-next-line\n var canvass = document.getElementById(proxy.pdfViewer.element.id + '_annotationCanvas_' + pageIndex);\n // eslint-disable-next-line\n proxy.pdfViewer.renderDrawing(canvass, pageIndex);\n }\n if (Browser.isDevice) {\n proxy.pdfViewer.select([annot.id], annot.annotationSelectorSettings);\n }\n proxy.pdfViewerBase.isAddComment = false;\n };\n image.src = this.setImageSource();\n };\n StickyNotesAnnotation.prototype.setImageSource = function () {\n // eslint-disable-next-line max-len\n var imageSource = 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgd2lkdGg9IjE2IgogICBoZWlnaHQ9IjE1IgogICB2aWV3Qm94PSIwIDAgNC4yMzMzMzMxIDMuOTY4NzQ5NyIKICAgdmVyc2lvbj0iMS4xIj4KICA8ZyBpZD0ibGF5ZXIxIj4KICAgIDxwYXRoCiAgICAgICBkPSJNIDMuODM4OSwwLjk0MTY3IEMgMy42NTM5LDAuNzAzNjcgMy40MTU5LDAuNTE3NjcgMy4xMjQ5LDAuMzg1NjcgMi44MDc5LDAuMjUzNjcgMi40ODk5LDAuMTczNjcgMi4xMTk5LDAuMTczNjcgMS43NDg5LDAuMTczNjcgMS40MzE5LDAuMjUzNjcgMS4xMTQyLDAuMzg1NjcgMC44MjMxNiwwLjUxNzY3IDAuNTg1MTYsMC43MDM2NyAwLjQwMDE2LDAuOTQxNjcgMC4yMTUxNiwxLjE3OTcgMC4xMzUxNiwxLjQxNzcgMC4xMzUxNiwxLjcwODcgMC4xMzUxNiwxLjk0NjcgMC4xODgxNiwyLjE1ODcgMC4zMjAxNiwyLjM0MzcgMC40NTMxNiwyLjU1NTcgMC42MTExNiwyLjcxMzcgMC44MjMxNiwyLjg0NjcgMC43OTIxNiwzLjE1NDcgMC42NTAxNiwzLjM4MjcgMC40NzkxNiwzLjU4NzcgMC40MjgxNiwzLjY2NzcgMC41MTcxNiwzLjc0MTcgMC42OTExNiwzLjcxOTcgMS4wODgyLDMuNjM5NyAxLjQwNDksMy40NTQ3IDEuNjQyOSwzLjE2MzcgMS44MDE5LDMuMTkwNyAxLjk2MDksMy4yMTY3IDIuMTE5OSwzLjIxNjcgMi40ODk5LDMuMjE2NyAyLjgwNzksMy4xMzc3IDMuMTI0OSwzLjAwNTcgMy40MTU5LDIuODcyNyAzLjY4MDksMi42ODc3IDMuODM4OSwyLjQ0OTcgNC4wMjQ5LDIuMjExNyA0LjEwMzksMS45NzM3IDQuMTAzOSwxLjY4MjcgNC4xMDM5LDEuNDE3NyA0LjAyNDksMS4xNTI3IDMuODM4OSwwLjk0MTY3IFoiCiAgICAgICBpZD0icGF0aDE1MjQiCiAgICAgICBzdHlsZT0iZmlsbDojZmZmNzAwO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDowLjI2NDU4MztzdHJva2Utb3BhY2l0eToxIiAvPgogICAgPHBhdGgKICAgICAgIGQ9Ik0gMy4wNDI5LDEuNDE2NyBIIDEuMTkxMiBDIDEuMTExMiwxLjQxNjcgMS4wNTkyLDEuMzYzNyAxLjA1OTIsMS4yODM3IDEuMDU5MiwxLjIwNDcgMS4xMTEyLDEuMTUxNyAxLjE5MTIsMS4xNTE3IEggMy4wNDI5IEMgMy4xMjE5LDEuMTUxNyAzLjE3NDksMS4yMDQ3IDMuMTc0OSwxLjI4MzcgMy4xNzQ5LDEuMzYzNyAzLjEyMTksMS40MTY3IDMuMDQyOSwxLjQxNjcgWiIKICAgICAgIGlkPSJwYXRoMTUzNiIKICAgICAgIHN0eWxlPSJzdHJva2Utd2lkdGg6MC4yNjQ1ODMiIC8+CiAgICA8cGF0aAogICAgICAgZD0iTSAzLjA0MjksMS45NDU3IEggMS4xOTEyIEMgMS4xMTEyLDEuOTQ1NyAxLjA1OTIsMS44OTI3IDEuMDU5MiwxLjgxMjcgMS4wNTkyLDEuNzMzNyAxLjExMTIsMS42ODA3IDEuMTkxMiwxLjY4MDcgSCAzLjA0MjkgQyAzLjEyMTksMS42ODA3IDMuMTc0OSwxLjczMzcgMy4xNzQ5LDEuODEyNyAzLjE3NDksMS44OTI3IDMuMTIxOSwxLjk0NTcgMy4wNDI5LDEuOTQ1NyBaIgogICAgICAgaWQ9InBhdGgxNTQwIgogICAgICAgc3R5bGU9InN0cm9rZS13aWR0aDowLjI2NDU4MyIgLz4KICA8L2c+Cjwvc3ZnPgo=';\n return imageSource;\n };\n /**\n * @private\n */\n StickyNotesAnnotation.prototype.createRequestForComments = function () {\n var jsonObject;\n var proxy = this;\n var startIndex = 0;\n var pageLimit = 20;\n var pageCount = proxy.pdfViewerBase.pageCount;\n if (!proxy.isCommentsRendered) {\n if (pageLimit < pageCount) {\n pageCount = pageLimit;\n }\n else {\n proxy.isPageCommentsRendered = true;\n }\n }\n if (!this.isCommentsRendered) {\n // eslint-disable-next-line max-len\n jsonObject = { pageStartIndex: startIndex.toString(), pageEndIndex: pageCount.toString(), hashId: this.pdfViewerBase.hashId, action: 'RenderAnnotationComments', elementId: this.pdfViewer.element.id, uniqueId: proxy.pdfViewerBase.documentId };\n proxy.isCommentsRendered = true;\n }\n else {\n // eslint-disable-next-line max-len\n jsonObject = { pageStartIndex: pageLimit.toString(), pageEndIndex: pageCount.toString(), hashId: this.pdfViewerBase.hashId, action: 'RenderAnnotationComments', elementId: this.pdfViewer.element.id, uniqueId: proxy.pdfViewerBase.documentId };\n }\n if (this.pdfViewerBase.jsonDocumentId) {\n // eslint-disable-next-line\n jsonObject.documentId = this.pdfViewerBase.jsonDocumentId;\n }\n var url = this.pdfViewer.serviceUrl + '/' + this.pdfViewer.serverActionSettings.renderComments;\n proxy.commentsRequestHandler = new AjaxHandler(proxy.pdfViewer);\n proxy.commentsRequestHandler.url = url;\n proxy.commentsRequestHandler.mode = true;\n proxy.commentsRequestHandler.responseType = 'text';\n proxy.commentsRequestHandler.send(jsonObject);\n // eslint-disable-next-line\n proxy.commentsRequestHandler.onSuccess = function (result) {\n // eslint-disable-next-line\n var data = result.data;\n var redirect = proxy.pdfViewerBase.checkRedirection(data);\n if (!redirect) {\n if (data) {\n if (typeof data !== 'object') {\n try {\n data = JSON.parse(data);\n if (typeof data !== 'object') {\n data = JSON.parse(data);\n }\n if (typeof data !== 'object') {\n proxy.pdfViewerBase.onControlError(500, data, this.pdfViewer.serverActionSettings.renderComments);\n data = null;\n }\n }\n catch (error) {\n proxy.pdfViewerBase.onControlError(500, data, this.pdfViewer.serverActionSettings.renderComments);\n data = null;\n }\n }\n if (data) {\n var isInitialRender = false;\n if (proxy.pdfViewerBase.annotationComments) {\n // eslint-disable-next-line\n proxy.pdfViewerBase.annotationComments = data.annotationDetails;\n }\n else {\n proxy.pdfViewerBase.annotationComments = data.annotationDetails;\n isInitialRender = true;\n }\n if (data.annotationDetails && data.uniqueId === proxy.pdfViewerBase.documentId) {\n proxy.pdfViewer.fireAjaxRequestSuccess(this.pdfViewer.serverActionSettings.renderComments, data);\n proxy.isAnnotationRendered = true;\n // eslint-disable-next-line\n var annotationCollections = void 0;\n if (proxy.pdfViewerBase.documentAnnotationCollections) {\n // eslint-disable-next-line max-len\n annotationCollections = proxy.updateAnnotationsInDocumentCollections(proxy.pdfViewerBase.annotationComments, proxy.pdfViewerBase.documentAnnotationCollections);\n }\n else {\n // eslint-disable-next-line\n var newCollection = proxy.pdfViewerBase.createAnnotationsCollection();\n // eslint-disable-next-line max-len\n annotationCollections = proxy.updateAnnotationsInDocumentCollections(proxy.pdfViewerBase.annotationComments, newCollection);\n }\n proxy.pdfViewerBase.annotationComments = annotationCollections;\n proxy.pdfViewerBase.documentAnnotationCollections = annotationCollections;\n for (var i = data.startPageIndex; i < data.endPageIndex; i++) {\n var newData = data.annotationDetails[i];\n proxy.pdfViewerBase.updateModifiedDateToLocalDate(newData, \"freeTextAnnotation\");\n proxy.pdfViewerBase.updateModifiedDateToLocalDate(newData, \"measureShapeAnnotation\");\n proxy.pdfViewerBase.updateModifiedDateToLocalDate(newData, \"shapeAnnotation\");\n proxy.pdfViewerBase.updateModifiedDateToLocalDate(newData, \"signatureAnnotation\");\n proxy.pdfViewerBase.updateModifiedDateToLocalDate(newData, \"signatureInkAnnotation\");\n proxy.pdfViewerBase.updateModifiedDateToLocalDate(newData, \"stampAnnotations\");\n proxy.pdfViewerBase.updateModifiedDateToLocalDate(newData, \"stickyNotesAnnotation\");\n proxy.pdfViewerBase.updateModifiedDateToLocalDate(newData, \"textMarkupAnnotation\");\n }\n for (var j = data.startPageIndex; j < data.endPageIndex; j++) {\n if (data.annotationDetails[j]) {\n proxy.renderAnnotationCollections(data.annotationDetails[j], j, isInitialRender);\n }\n }\n if (!proxy.isPageCommentsRendered) {\n proxy.isPageCommentsRendered = true;\n proxy.createRequestForComments();\n }\n }\n }\n }\n }\n };\n // eslint-disable-next-line\n proxy.commentsRequestHandler.onFailure = function (result) {\n this.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText);\n };\n // eslint-disable-next-line\n proxy.commentsRequestHandler.onError = function (result) {\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText, proxy.pdfViewer.serverActionSettings.renderComments);\n };\n };\n /**\n * @param excistingAnnotation\n * @param newAnnotation\n * @private\n */\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.updateAnnotationsInDocumentCollections = function (excistingAnnotation, newAnnotation) {\n for (var i = 0; i < this.pdfViewerBase.pageCount; i++) {\n if (excistingAnnotation[i] && newAnnotation[i]) {\n // eslint-disable-next-line max-len\n if (excistingAnnotation[i].textMarkupAnnotation && excistingAnnotation[i].textMarkupAnnotation.length !== 0 && newAnnotation[i].textMarkupAnnotation) {\n for (var j = 0; j < excistingAnnotation[i].textMarkupAnnotation.length; j++) {\n // eslint-disable-next-line max-len\n this.updateDocumentAnnotationCollections(excistingAnnotation[i].textMarkupAnnotation[j], newAnnotation[i].textMarkupAnnotation);\n }\n }\n // eslint-disable-next-line max-len\n if (excistingAnnotation[i].shapeAnnotation && excistingAnnotation[i].shapeAnnotation.length !== 0 && newAnnotation[i].shapeAnnotation) {\n for (var j = 0; j < excistingAnnotation[i].shapeAnnotation.length; j++) {\n // eslint-disable-next-line max-len\n this.updateDocumentAnnotationCollections(excistingAnnotation[i].shapeAnnotation[j], newAnnotation[i].shapeAnnotation);\n }\n }\n // eslint-disable-next-line max-len\n if (excistingAnnotation[i].measureShapeAnnotation && excistingAnnotation[i].measureShapeAnnotation.length !== 0 && newAnnotation[i].measureShapeAnnotation) {\n for (var j = 0; j < excistingAnnotation[i].measureShapeAnnotation.length; j++) {\n // eslint-disable-next-line max-len\n this.updateDocumentAnnotationCollections(excistingAnnotation[i].measureShapeAnnotation[j], newAnnotation[i].measureShapeAnnotation);\n }\n }\n // eslint-disable-next-line max-len\n if (excistingAnnotation[i].stampAnnotations && excistingAnnotation[i].stampAnnotations.length !== 0 && newAnnotation[i].stampAnnotations) {\n for (var j = 0; j < excistingAnnotation[i].stampAnnotations.length; j++) {\n // eslint-disable-next-line max-len\n this.updateDocumentAnnotationCollections(excistingAnnotation[i].stampAnnotations[j], newAnnotation[i].stampAnnotations);\n }\n }\n // eslint-disable-next-line max-len\n if (excistingAnnotation[i].stickyNotesAnnotation && excistingAnnotation[i].stickyNotesAnnotation.length !== 0 && newAnnotation[i].stickyNotesAnnotation) {\n for (var j = 0; j < excistingAnnotation[i].stickyNotesAnnotation.length; j++) {\n // eslint-disable-next-line max-len\n this.updateDocumentAnnotationCollections(excistingAnnotation[i].stickyNotesAnnotation[j], newAnnotation[i].stickyNotesAnnotation);\n }\n }\n // eslint-disable-next-line max-len\n if (excistingAnnotation[i].freeTextAnnotation && excistingAnnotation[i].freeTextAnnotation.length !== 0 && newAnnotation[i].freeTextAnnotation) {\n for (var j = 0; j < excistingAnnotation[i].freeTextAnnotation.length; j++) {\n // eslint-disable-next-line max-len\n this.updateDocumentAnnotationCollections(excistingAnnotation[i].freeTextAnnotation[j], newAnnotation[i].freeTextAnnotation);\n }\n }\n // eslint-disable-next-line max-len\n if (excistingAnnotation[i].signatureAnnotation && excistingAnnotation[i].signatureAnnotation.length !== 0 && newAnnotation[i].signatureAnnotation) {\n for (var j = 0; j < excistingAnnotation[i].signatureAnnotation.length; j++) {\n // eslint-disable-next-line max-len\n this.updateDocumentAnnotationCollections(excistingAnnotation[i].signatureAnnotation[j], newAnnotation[i].signatureAnnotation);\n }\n }\n // eslint-disable-next-line max-len\n if (excistingAnnotation[i].signatureInkAnnotation && excistingAnnotation[i].signatureInkAnnotation.length !== 0 && newAnnotation[i].signatureInkAnnotation) {\n for (var j = 0; j < excistingAnnotation[i].signatureInkAnnotation.length; j++) {\n // eslint-disable-next-line max-len\n this.updateDocumentAnnotationCollections(excistingAnnotation[i].signatureInkAnnotation[j], newAnnotation[i].signatureInkAnnotation);\n }\n }\n }\n }\n return newAnnotation;\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.updateDocumentAnnotationCollections = function (excistingAnnotation, newAnnotation) {\n if (newAnnotation.length === 0) {\n newAnnotation.push(excistingAnnotation);\n }\n else {\n var isAdded = false;\n for (var i = 0; i < newAnnotation.length; i++) {\n // eslint-disable-next-line max-len\n if ((excistingAnnotation.AnnotName && newAnnotation[i].AnnotName) && (excistingAnnotation.AnnotName === newAnnotation[i].AnnotName)) {\n isAdded = true;\n break;\n }\n }\n if (!isAdded) {\n newAnnotation.push(excistingAnnotation);\n }\n }\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.renderAnnotationCollections = function (pageAnnotations, pageNumber, isInitialRender) {\n // eslint-disable-next-line\n var pageCollections = [];\n if (pageAnnotations.textMarkupAnnotation && pageAnnotations.textMarkupAnnotation.length !== 0) {\n for (var i = 0; i < pageAnnotations.textMarkupAnnotation.length; i++) {\n if (this.pdfViewer.dateTimeFormat) {\n // eslint-disable-next-line max-len\n pageAnnotations.textMarkupAnnotation[i].ModifiedDate = this.pdfViewer.annotationModule.stickyNotesAnnotationModule.getDateAndTime(pageAnnotations.textMarkupAnnotation[i].ModifiedDate);\n }\n pageCollections.push(pageAnnotations.textMarkupAnnotation[i]);\n // eslint-disable-next-line max-len\n this.updateCollections(this.pdfViewer.annotationModule.textMarkupAnnotationModule.updateTextMarkupAnnotationCollections(pageAnnotations.textMarkupAnnotation[i], pageNumber));\n }\n }\n if (pageAnnotations.shapeAnnotation && pageAnnotations.shapeAnnotation.length !== 0) {\n if (this.pdfViewer.annotationModule && this.pdfViewer.annotationModule.shapeAnnotationModule) {\n for (var i = 0; i < pageAnnotations.shapeAnnotation.length; i++) {\n if (this.pdfViewer.dateTimeFormat) {\n // eslint-disable-next-line max-len\n pageAnnotations.shapeAnnotation[i].ModifiedDate = this.pdfViewer.annotationModule.stickyNotesAnnotationModule.getDateAndTime(pageAnnotations.shapeAnnotation[i].ModifiedDate);\n }\n pageCollections.push(pageAnnotations.shapeAnnotation[i]);\n // eslint-disable-next-line max-len\n this.updateCollections(this.pdfViewer.annotationModule.shapeAnnotationModule.updateShapeAnnotationCollections(pageAnnotations.shapeAnnotation[i], pageNumber));\n }\n }\n }\n if (pageAnnotations.measureShapeAnnotation && pageAnnotations.measureShapeAnnotation.length !== 0) {\n for (var i = 0; i < pageAnnotations.measureShapeAnnotation.length; i++) {\n if (this.pdfViewer.dateTimeFormat) {\n // eslint-disable-next-line max-len\n pageAnnotations.measureShapeAnnotation[i].ModifiedDate = this.pdfViewer.annotationModule.stickyNotesAnnotationModule.getDateAndTime(pageAnnotations.measureShapeAnnotation[i].ModifiedDate);\n }\n pageCollections.push(pageAnnotations.measureShapeAnnotation[i]);\n // eslint-disable-next-line max-len\n this.updateCollections(this.pdfViewer.annotationModule.measureAnnotationModule.updateMeasureAnnotationCollections(pageAnnotations.measureShapeAnnotation[i], pageNumber));\n }\n }\n if (pageAnnotations.stampAnnotations && pageAnnotations.stampAnnotations.length !== 0) {\n for (var i = 0; i < pageAnnotations.stampAnnotations.length; i++) {\n if (this.pdfViewer.dateTimeFormat) {\n // eslint-disable-next-line max-len\n pageAnnotations.stampAnnotations[i].ModifiedDate = this.pdfViewer.annotationModule.stickyNotesAnnotationModule.getDateAndTime(pageAnnotations.stampAnnotations[i].ModifiedDate);\n }\n pageCollections.push(pageAnnotations.stampAnnotations[i]);\n // eslint-disable-next-line max-len\n this.updateCollections(this.pdfViewer.annotationModule.stampAnnotationModule.updateStampAnnotationCollections(pageAnnotations.stampAnnotations[i], pageNumber));\n }\n }\n if (pageAnnotations.stickyNotesAnnotation && pageAnnotations.stickyNotesAnnotation.length !== 0) {\n for (var i = 0; i < pageAnnotations.stickyNotesAnnotation.length; i++) {\n if (this.pdfViewer.dateTimeFormat) {\n // eslint-disable-next-line max-len\n pageAnnotations.stickyNotesAnnotation[i].ModifiedDate = this.pdfViewer.annotationModule.stickyNotesAnnotationModule.getDateAndTime(pageAnnotations.stickyNotesAnnotation[i].ModifiedDate);\n }\n pageCollections.push(pageAnnotations.stickyNotesAnnotation[i]);\n // eslint-disable-next-line max-len\n this.updateCollections(this.updateStickyNotesAnnotationCollections(pageAnnotations.stickyNotesAnnotation[i], pageNumber));\n }\n }\n if (pageAnnotations.freeTextAnnotation && pageAnnotations.freeTextAnnotation.length !== 0) {\n for (var i = 0; i < pageAnnotations.freeTextAnnotation.length; i++) {\n if (this.pdfViewer.dateTimeFormat) {\n // eslint-disable-next-line max-len\n pageAnnotations.freeTextAnnotation[i].ModifiedDate = this.pdfViewer.annotationModule.stickyNotesAnnotationModule.getDateAndTime(pageAnnotations.freeTextAnnotation[i].ModifiedDate);\n }\n pageCollections.push(pageAnnotations.freeTextAnnotation[i]);\n // eslint-disable-next-line max-len\n this.updateCollections(this.pdfViewer.annotationModule.freeTextAnnotationModule.updateFreeTextAnnotationCollections(pageAnnotations.freeTextAnnotation[i], pageNumber));\n }\n }\n if (pageAnnotations.signatureAnnotation && pageAnnotations.signatureAnnotation.length !== 0) {\n for (var i = 0; i < pageAnnotations.signatureAnnotation.length; i++) {\n if (this.pdfViewer.dateTimeFormat) {\n // eslint-disable-next-line max-len\n pageAnnotations.signatureAnnotation[i].ModifiedDate = this.pdfViewer.annotationModule.stickyNotesAnnotationModule.getDateAndTime(pageAnnotations.signatureAnnotation[i].ModifiedDate);\n }\n // eslint-disable-next-line max-len\n this.updateCollections(this.pdfViewerBase.signatureModule.updateSignatureCollections(pageAnnotations.signatureAnnotation[i], pageNumber), true);\n }\n }\n if (pageAnnotations.signatureInkAnnotation && pageAnnotations.signatureInkAnnotation.length !== 0) {\n for (var i = 0; i < pageAnnotations.signatureInkAnnotation.length; i++) {\n if (this.pdfViewer.dateTimeFormat) {\n // eslint-disable-next-line max-len\n pageAnnotations.signatureInkAnnotation[i].ModifiedDate = this.pdfViewer.annotationModule.stickyNotesAnnotationModule.getDateAndTime(pageAnnotations.signatureInkAnnotation[i].ModifiedDate);\n }\n pageCollections.push(pageAnnotations.signatureInkAnnotation[i]);\n // eslint-disable-next-line max-len\n this.updateCollections(this.pdfViewer.annotationModule.inkAnnotationModule.updateInkCollections(pageAnnotations.signatureInkAnnotation[i], pageNumber));\n }\n }\n if (this.pdfViewer.toolbarModule) {\n this.renderAnnotationComments(pageCollections, pageNumber);\n }\n if (isInitialRender) {\n for (var i = 0; i < this.pdfViewerBase.renderedPagesList.length; i++) {\n this.pdfViewerBase.renderAnnotations(this.pdfViewerBase.renderedPagesList[i], false);\n }\n }\n };\n /**\n * @param annotation\n * @param isSignature\n * @param annotation\n * @param isSignature\n * @private\n */\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.updateCollections = function (annotation, isSignature) {\n var isAdded = false;\n // eslint-disable-next-line\n var collections;\n if (isSignature) {\n collections = this.pdfViewer.signatureCollection;\n }\n else {\n collections = this.pdfViewer.annotationCollection;\n }\n if (collections && annotation) {\n for (var i = 0; i < collections.length; i++) {\n if (isSignature) {\n if (collections[i].signatureName === annotation.signatureName) {\n isAdded = true;\n break;\n }\n }\n else {\n if (collections[i].annotationId === annotation.annotationId) {\n isAdded = true;\n break;\n }\n }\n }\n }\n if (!isAdded && annotation) {\n if (isSignature) {\n this.pdfViewer.signatureCollection.push(annotation);\n }\n else {\n this.pdfViewer.annotationCollection.push(annotation);\n }\n }\n };\n /**\n * @param data\n * @param pageIndex\n * @private\n */\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.renderAnnotationComments = function (data, pageIndex) {\n pageIndex = pageIndex + 1;\n if (data) {\n if (data.length !== 0) {\n this.createPageAccordion(pageIndex);\n for (var i = 0; i < data.length; i++) {\n if (data[i].AnnotName && (data[i].AnnotName.split('freeText').length === 1)) {\n this.createCommentControlPanel(data[i], pageIndex);\n }\n }\n // eslint-disable-next-line\n var newCommentsDiv = document.querySelectorAll('.e-pv-new-comments-div');\n if (newCommentsDiv) {\n for (var j = 0; j < newCommentsDiv.length; j++) {\n newCommentsDiv[j].style.display = 'none';\n }\n }\n }\n }\n };\n /**\n * @private\n */\n StickyNotesAnnotation.prototype.initializeAcccordionContainer = function () {\n // eslint-disable-next-line max-len\n var commentPanelText = createElement('div', { id: this.pdfViewer.element.id + '_commentsPanelText', className: 'e-pv-comments-panel-text' });\n if (isBlazor()) {\n var promise = this.pdfViewer._dotnetInstance.invokeMethodAsync('GetLocaleText', 'PdfViewer_NoCommentsYet');\n promise.then(function (value) {\n commentPanelText.textContent = value;\n });\n }\n else {\n commentPanelText.textContent = this.pdfViewer.localeObj.getConstant('No Comments Yet');\n }\n this.updateCommentPanelTextTop();\n this.pdfViewerBase.navigationPane.commentsContentContainer.appendChild(commentPanelText);\n // eslint-disable-next-line max-len\n this.accordionContentContainer = createElement('div', { id: this.pdfViewer.element.id + '_accordionContentContainer', className: 'e-pv-accordion-content-container' });\n this.pdfViewerBase.navigationPane.commentsContentContainer.appendChild(this.accordionContentContainer);\n // eslint-disable-next-line max-len\n this.pdfViewerBase.navigationPane.annotationMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Export Annotations')], false);\n // eslint-disable-next-line max-len\n this.pdfViewerBase.navigationPane.annotationMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Export XFDF')], false);\n };\n /**\n * @private\n */\n StickyNotesAnnotation.prototype.updateCommentPanelTextTop = function () {\n var commentPanelText = document.getElementById(this.pdfViewer.element.id + '_commentsPanelText');\n // eslint-disable-next-line max-len\n if (this.pdfViewerBase.navigationPane.commentPanelContainer && this.pdfViewerBase.navigationPane.commentPanelContainer.clientHeight && commentPanelText.style.display !== 'none') {\n commentPanelText.style.paddingTop = (this.pdfViewerBase.navigationPane.commentPanelContainer.clientHeight / 2) - 47 + 'px';\n commentPanelText.style.paddingLeft = (this.pdfViewerBase.navigationPane.commentPanelContainer.clientWidth) / 3 + 'px';\n }\n };\n /**\n * @param pageIndex\n * @private\n */\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.createPageAccordion = function (pageIndex) {\n var pageAccordionContainer = document.getElementById(this.pdfViewer.element.id + '_accordionContainer' + pageIndex);\n if (pageAccordionContainer === null) {\n this.accordionContent = createElement('div', { id: this.pdfViewer.element.id + '_accordioncontent' + pageIndex });\n this.accordionContent.style.zIndex = '1000';\n // eslint-disable-next-line max-len\n this.accordionPageContainer = createElement('div', { id: this.pdfViewer.element.id + '_accordionPageContainer' + pageIndex, className: 'e-pv-accordion-page-container' });\n this.accordionPageContainer.appendChild(this.accordionContent);\n this.pdfViewerBase.viewerMainContainer.appendChild(this.accordionPageContainer);\n // eslint-disable-next-line max-len\n this.accordionContainer = createElement('div', { id: this.pdfViewer.element.id + '_accordionContainer' + pageIndex, className: 'e-pv-accordion-container' });\n var pageAccordion = new Accordion({\n items: [\n // eslint-disable-next-line max-len\n { header: this.pdfViewer.localeObj.getConstant('Page') + ' ' + (pageIndex), expanded: true, content: '#' + this.pdfViewer.element.id + '_accordioncontent' + pageIndex + '' }\n ]\n });\n pageAccordion.appendTo(this.accordionContainer);\n this.accordionContainer.style.order = 'pageIndex';\n this.alignAccordionContainer(this.accordionContainer, pageIndex);\n if (document.getElementById(this.pdfViewer.element.id + '_commentsPanelText')) {\n // eslint-disable-next-line max-len\n this.pdfViewerBase.navigationPane.annotationMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Export Annotations')], true);\n // eslint-disable-next-line max-len\n this.pdfViewerBase.navigationPane.annotationMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Export XFDF')], true);\n document.getElementById(this.pdfViewer.element.id + '_commentsPanelText').style.display = 'none';\n }\n if (document.getElementById(this.pdfViewer.element.id + '_accordionContentContainer')) {\n document.getElementById(this.pdfViewer.element.id + '_accordionContentContainer').style.display = 'block';\n }\n return this.accordionContainer;\n }\n };\n StickyNotesAnnotation.prototype.alignAccordionContainer = function (accordionDiv, pageIndex) {\n var isAdded = true;\n if (this.accordionContentContainer) {\n if (this.isAccordionContainer) {\n this.accordionContentContainer.appendChild(accordionDiv);\n isAdded = false;\n }\n else {\n for (var i = 1; i <= this.pdfViewerBase.pageCount; i++) {\n var nextElement = document.getElementById(this.pdfViewer.element.id + '_accordionContainer' + i);\n if (nextElement) {\n if (pageIndex < i) {\n this.accordionContentContainer.insertBefore(accordionDiv, nextElement);\n isAdded = false;\n break;\n }\n }\n }\n }\n if (isAdded) {\n this.accordionContentContainer.appendChild(accordionDiv);\n isAdded = false;\n }\n this.isAccordionContainer = false;\n }\n };\n /**\n * @param pageNumber\n * @private\n */\n StickyNotesAnnotation.prototype.updateCommentPanelScrollTop = function (pageNumber) {\n var accordionDiv = document.getElementById(this.pdfViewer.element.id + '_accordionContainer' + pageNumber);\n if (accordionDiv) {\n var scrollValue = accordionDiv.offsetTop + accordionDiv.clientTop - 35;\n this.pdfViewerBase.navigationPane.commentsContentContainer.scrollTop = scrollValue;\n }\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.getButtonState = function (editObj, commentTextBox) {\n commentTextBox.addEventListener('keyup', function (event) {\n if (editObj.element.querySelector('.e-btn-save')) {\n if ((event.srcElement.value !== '' || event.srcElement.defaultValue != '') && event.srcElement.defaultValue !== event.srcElement.value) {\n editObj.element.querySelector('.e-btn-save').ej2_instances[0].disabled = false;\n }\n }\n });\n };\n /**\n * @param data\n * @param pageIndex\n * @param type\n * @param annotationSubType\n * @param data\n * @param pageIndex\n * @param type\n * @param annotationSubType\n * @param data\n * @param pageIndex\n * @param type\n * @param annotationSubType\n * @private\n */\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.createCommentControlPanel = function (data, pageIndex, type, annotationSubType, isReRender) {\n var accordionContent = document.getElementById(this.pdfViewer.element.id + '_accordioncontent' + pageIndex);\n if (accordionContent) {\n // eslint-disable-next-line\n var accordionExpand = document.getElementById(this.pdfViewer.element.id + '_accordionContainer' + pageIndex);\n if (accordionExpand) {\n accordionExpand.ej2_instances[0].expandItem(true);\n }\n // eslint-disable-next-line max-len\n this.commentsContainer = createElement('div', { id: this.pdfViewer.element.id + 'commentscontainer_' + pageIndex + '_' + this.commentsCount, className: 'e-pv-comments-container' });\n this.commentsContainer.accessKey = pageIndex.toString() + '_' + this.commentsCount;\n var isCommentsAdded = false;\n if (data) {\n this.commentsContainer.id = data.AnnotName;\n if (data.AnnotName) {\n for (var j = 0; j < accordionContent.childElementCount; j++) {\n if (accordionContent.children[j].id === data.AnnotName) {\n isCommentsAdded = true;\n if (isReRender) {\n // To remove the existing div element in the comment panel while importing the annotation with the same name. (EJ2-62092)\n var id = document.getElementById(accordionContent.children[j].id);\n id.remove();\n isCommentsAdded = false;\n }\n break;\n }\n }\n }\n if (data.Name && data.Name === 'freeText') {\n this.commentsContainer.setAttribute('name', 'freeText');\n }\n else {\n this.commentsContainer.setAttribute('name', data.AnnotType);\n }\n }\n if (type) {\n this.commentsContainer.setAttribute('name', type);\n }\n this.commentsContainer.addEventListener('mousedown', this.commentsAnnotationSelect.bind(this));\n // eslint-disable-next-line max-len\n var commentDiv = createElement('div', { id: this.pdfViewer.element.id + '_commentdiv_' + pageIndex + '_' + this.commentsCount, className: 'e-pv-comments-div' });\n this.commentsCount = this.commentsCount + 1;\n this.commentsContainer.appendChild(commentDiv);\n this.updateCommentPanelScrollTop(pageIndex);\n if (!isCommentsAdded) {\n accordionContent.appendChild(this.commentsContainer);\n }\n var title = void 0;\n if (data) {\n title = this.commentsContainer.getAttribute('name');\n if (title === 'null') {\n title = data.AnnotationType;\n }\n this.createTitleContainer(commentDiv, title, pageIndex, data.Subject, data.ModifiedDate, data.Author);\n }\n else {\n title = this.commentsContainer.getAttribute('name');\n this.createTitleContainer(commentDiv, title, pageIndex, annotationSubType);\n }\n // eslint-disable-next-line max-len\n var commentTextBox = createElement('div', { id: this.pdfViewer.element.id + '_commenttextbox_' + pageIndex + '_' + this.commentsCount, className: 'e-pv-comment-textbox' });\n // eslint-disable-next-line\n var editObj_1 = new InPlaceEditor({\n mode: 'Inline',\n type: 'Text',\n model: { placeholder: this.pdfViewer.localeObj.getConstant('Add a comment') + '..' },\n emptyText: '',\n editableOn: 'EditIconClick',\n saveButton: {\n content: this.pdfViewer.localeObj.getConstant('Post'),\n cssClass: 'e-outline',\n disabled: true\n },\n cancelButton: {\n content: this.pdfViewer.localeObj.getConstant('Cancel'),\n cssClass: 'e-outline'\n },\n submitOnEnter: true\n });\n if (data && (!isNullOrUndefined(data.Note) || !isNullOrUndefined(data.Text))) {\n editObj_1.created = function () {\n setTimeout(function () {\n editObj_1.element.querySelector('.e-editable-value').innerText = !isNullOrUndefined(data.Note) ? data.Note : !isNullOrUndefined(data.Text) ? data.Text : '';\n });\n };\n editObj_1.beginEdit = function () {\n editObj_1.value = editObj_1.valueEle.innerText;\n };\n }\n editObj_1.appendTo(commentTextBox);\n // eslint-disable-next-line\n var textBox = document.querySelectorAll('.e-editable-inline');\n for (var j = 0; j < textBox.length; j++) {\n textBox[j].style.display = 'none';\n }\n if (!data && type !== 'freeText') {\n editObj_1.enableEditMode = true;\n }\n this.getButtonState(editObj_1, commentTextBox);\n editObj_1.actionSuccess = this.createCommentDiv.bind(this, editObj_1);\n commentDiv.appendChild(commentTextBox);\n if (data) {\n editObj_1.value = !isNullOrUndefined(data.Note) ? data.Note : !isNullOrUndefined(data.Text) ? data.Text : '';\n var isCommentLocked = this.checkIslockProperty(data);\n if (isCommentLocked && data.Comments == null) {\n this.createCommentDiv(this.commentsContainer);\n }\n if (data.Name === 'freeText') {\n editObj_1.value = data.MarkupText;\n }\n if (data.State) {\n // eslint-disable-next-line max-len\n var statusContainer = createElement('div', { id: this.pdfViewer.element.id + 'status' + '_container', className: 'e-pv-status-container' });\n // eslint-disable-next-line max-len\n var statusDiv = createElement('div', { id: this.pdfViewer.element.id + 'status' + '_div', className: 'e-pv-status-div' });\n var statusSpan = createElement('span', { id: this.pdfViewer.element.id + 'status' + '_icon' });\n statusDiv.appendChild(statusSpan);\n statusContainer.appendChild(statusDiv);\n commentDiv.appendChild(statusContainer);\n this.updateStatusContainer(data.State, statusSpan, statusDiv, statusContainer);\n }\n if (data.Comments) {\n for (var j = 0; j < data.Comments.length; j++) {\n this.renderComments(data.Comments[j], this.commentsContainer);\n }\n if (data.Note !== ' ' && data.Note !== '' && data.Note !== null) {\n this.createCommentDiv(this.commentsContainer);\n }\n }\n }\n this.isNewcommentAdded = true;\n commentDiv.addEventListener('click', this.commentsDivClickEvent.bind(this));\n commentDiv.addEventListener('mouseover', this.commentDivMouseOver.bind(this));\n commentDiv.addEventListener('mouseleave', this.commentDivMouseLeave.bind(this));\n commentDiv.addEventListener('mouseout', this.commentDivMouseLeave.bind(this));\n commentDiv.addEventListener('focusout', this.commentDivMouseLeave.bind(this));\n commentTextBox.addEventListener('dblclick', this.openEditorElement.bind(this));\n commentTextBox.addEventListener('focusin', this.commentDivFocus.bind(this));\n return (this.commentsContainer.id);\n }\n return '';\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.commentDivFocus = function (args) {\n // eslint-disable-next-line\n if (!isNullOrUndefined(args.target) && !isNullOrUndefined(this.pdfViewer.freeTextSettings.defaultText) && this.pdfViewer.selectedItems && this.pdfViewer.selectedItems.annotations[0] && this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'FreeText' && args.target.value === this.pdfViewer.freeTextSettings.defaultText) {\n args.target.select();\n }\n // eslint-disable-next-line\n if (!this.isNewcommentAdded) {\n if (args.relatedTarget !== null && args.relatedTarget.id === this.pdfViewer.element.id + '_viewerContainer') {\n args.preventDefault();\n args.target.blur();\n }\n }\n else {\n var proxy_1 = this;\n var pageNumber_1 = this.pdfViewerBase.currentPageNumber;\n setTimeout(function () {\n proxy_1.updateScrollPosition(pageNumber_1);\n }, 500);\n }\n };\n StickyNotesAnnotation.prototype.updateScrollPosition = function (pageNumber) {\n var accordionDiv = document.getElementById(this.pdfViewer.element.id + '_accordionContainer' + pageNumber);\n if (accordionDiv && this.isNewcommentAdded) {\n var commentHeight = 0;\n // eslint-disable-next-line\n var textBox = document.querySelectorAll('.e-editable-inline');\n if (textBox[0]) {\n commentHeight = textBox[0].getBoundingClientRect().height;\n }\n var scrollValue = accordionDiv.offsetTop + accordionDiv.clientTop + commentHeight;\n if (this.pdfViewerBase.navigationPane.commentsContentContainer.scrollTop < scrollValue) {\n this.pdfViewerBase.navigationPane.commentsContentContainer.scrollTop = scrollValue;\n }\n this.isNewcommentAdded = false;\n }\n };\n StickyNotesAnnotation.prototype.updateCommentsScrollTop = function (isCommentsAdded) {\n // eslint-disable-next-line max-len\n var accordionDiv = document.getElementById(this.pdfViewer.element.id + '_accordionContainer' + this.pdfViewerBase.currentPageNumber);\n // eslint-disable-next-line\n var commentsContainer = document.querySelector('.e-pv-comments-border');\n var commentsHeight = 0;\n if (accordionDiv && commentsContainer) {\n commentsHeight = commentsContainer.getBoundingClientRect().height;\n var scrollValue = void 0;\n if (isCommentsAdded) {\n scrollValue = accordionDiv.offsetTop + commentsContainer.offsetTop + (commentsHeight / 4);\n }\n else {\n scrollValue = accordionDiv.offsetTop + commentsContainer.offsetTop - 70;\n }\n this.pdfViewerBase.navigationPane.commentsContentContainer.scrollTop = scrollValue;\n }\n };\n /**\n * @param args\n * @private\n */\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.createCommentDiv = function (args) {\n var _this = this;\n var commentsContainer;\n var titleContainer;\n // eslint-disable-next-line\n var newCommentDiv = createElement('div', { id: this.pdfViewer.element.id + '_newcommentdiv_' + this.commentsCount + '_' + this.commentsreplyCount, className: 'e-pv-new-comments-div' });\n if (args.localName) {\n commentsContainer = args;\n }\n else {\n commentsContainer = args.valueEle.parentElement.parentElement.parentElement.parentElement;\n titleContainer = args.valueEle.parentElement.parentElement.previousSibling.childNodes[1];\n }\n // eslint-disable-next-line\n var commentObj = new InPlaceEditor({\n mode: 'Inline',\n type: 'Text',\n value: '',\n editableOn: 'Click',\n model: { placeholder: this.pdfViewer.localeObj.getConstant('Add a reply') + '..' },\n emptyText: this.pdfViewer.localeObj.getConstant('Add a reply'),\n saveButton: {\n content: this.pdfViewer.localeObj.getConstant('Post'),\n cssClass: 'e-outline',\n disabled: true\n },\n cancelButton: {\n content: this.pdfViewer.localeObj.getConstant('Cancel'),\n cssClass: 'e-outline'\n },\n submitOnEnter: true\n });\n commentObj.appendTo(newCommentDiv);\n newCommentDiv.lastChild.firstChild.click();\n // eslint-disable-next-line\n this.getButtonState(commentObj, newCommentDiv);\n if (args.valueEle) {\n if (args.value != null && args.value !== ' ') {\n // eslint-disable-next-line max-len\n if (this.pdfViewer.selectedItems.annotations[0] && this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'FreeText') {\n this.modifyTextProperty(args.value, args.prevValue, args.valueEle.parentNode.parentNode.parentNode.parentNode.id);\n }\n else {\n try {\n this.modifyTextProperty(args.value, args.prevValue, args.valueEle.parentNode.parentNode.parentNode.parentNode.id);\n }\n catch (error) {\n this.modifyTextProperty(args.value, args.prevValue);\n }\n }\n this.updateModifiedDate(titleContainer);\n }\n if (args.valueEle.parentElement.parentElement.parentElement.parentElement.childElementCount === 1) {\n if (args.value != null && args.value !== '' && args.value !== ' ') {\n commentsContainer.appendChild(newCommentDiv);\n setTimeout(function () {\n _this.updateCommentsScrollTop(true);\n }, 50);\n }\n }\n }\n else {\n commentsContainer.appendChild(newCommentDiv);\n setTimeout(function () {\n _this.updateCommentsScrollTop(true);\n }, 50);\n }\n commentObj.actionSuccess = this.saveCommentDiv.bind(this, commentObj);\n };\n /**\n * @param args\n * @param comment\n * @private\n */\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.saveCommentDiv = function (args, comment) {\n var commentsContainer;\n var annotationAuthor;\n // eslint-disable-next-line\n var lastElement;\n var commentValue;\n if (comment.name && args.value !== '') {\n commentsContainer = args.valueEle.parentElement.parentElement.parentElement;\n lastElement = args.valueEle.parentElement.parentElement;\n commentValue = args.value;\n }\n else {\n commentsContainer = args;\n lastElement = commentsContainer.lastChild;\n commentValue = comment;\n }\n if (commentsContainer && lastElement) {\n commentsContainer.removeChild(lastElement);\n var replyTextBox = createElement('div', { id: this.pdfViewer.element.id + '_replytextbox_' + this.commentsCount + '_' + this.commentsreplyCount });\n this.commentsreplyCount = this.commentsreplyCount + 1;\n // eslint-disable-next-line\n var replyCommentDiv = createElement('div', { id: this.pdfViewer.element.id + 'replyDiv_' + this.commentsCount + '_' + this.commentsreplyCount, className: 'e-pv-reply-div' });\n replyCommentDiv.id = this.pdfViewer.annotation.createGUID();\n annotationAuthor = this.getAuthorName(this.pdfViewer.selectedItems.annotations[0], commentsContainer);\n this.createReplyDivTitleContainer(replyCommentDiv, null, annotationAuthor);\n replyCommentDiv.addEventListener('mouseover', this.commentDivMouseOver.bind(this));\n replyCommentDiv.addEventListener('mouseleave', this.commentDivMouseLeave.bind(this));\n replyCommentDiv.addEventListener('click', this.commentDivOnSelect.bind(this));\n replyTextBox.addEventListener('dblclick', this.openEditorElement.bind(this));\n replyCommentDiv.style.border = 1 + 'px';\n replyCommentDiv.style.borderColor = 'black';\n replyCommentDiv.style.zIndex = 1002;\n // eslint-disable-next-line\n var saveObj_1 = new InPlaceEditor({\n mode: 'Inline',\n type: 'Text',\n emptyText: '',\n editableOn: 'EditIconClick',\n model: { placeholder: this.pdfViewer.localeObj.getConstant('Add a reply') + '..' },\n value: commentValue,\n saveButton: {\n content: this.pdfViewer.localeObj.getConstant('Post'),\n cssClass: 'e-outline',\n disabled: true\n },\n cancelButton: {\n content: this.pdfViewer.localeObj.getConstant('Cancel'),\n cssClass: 'e-outline'\n }\n });\n saveObj_1.created = function () {\n setTimeout(function () {\n saveObj_1.element.querySelector('.e-editable-value').innerText = commentValue;\n });\n };\n saveObj_1.beginEdit = function () {\n saveObj_1.value = saveObj_1.valueEle.innerText;\n };\n saveObj_1.appendTo(replyTextBox);\n saveObj_1.actionSuccess = this.modifyProperty.bind(this, saveObj_1);\n replyCommentDiv.appendChild(replyTextBox);\n replyCommentDiv.style.paddingLeft = 24 + 'px';\n commentsContainer.appendChild(replyCommentDiv);\n // eslint-disable-next-line\n this.getButtonState(saveObj_1, replyTextBox);\n replyCommentDiv.addEventListener('click', this.commentsDivClickEvent.bind(this));\n replyCommentDiv.addEventListener('dblclick', this.commentsDivDoubleClickEvent.bind(this));\n this.createCommentDiv(replyCommentDiv.parentElement);\n this.modifyCommentsProperty(commentValue, replyCommentDiv.id, commentsContainer.id);\n }\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.renderComments = function (data, commentDiv, undoRedoAction, id, isCommentAction) {\n var annotationAuthor;\n var replyTextBox = createElement('div', { id: this.pdfViewer.element.id + '_replytextbox_' + this.commentsCount + '_' + this.commentsreplyCount });\n this.commentsreplyCount = this.commentsreplyCount + 1;\n var replyDiv = createElement('div', { id: 'replyDiv_' + this.commentsCount + '_' + this.commentsreplyCount, className: 'e-pv-reply-div' });\n if (undoRedoAction) {\n replyDiv.id = data.annotName;\n annotationAuthor = data.author;\n }\n else {\n replyDiv.id = data.AnnotName;\n annotationAuthor = data.Author;\n }\n replyDiv.style.border = 1 + 'px';\n replyDiv.style.borderColor = 'black';\n if (!annotationAuthor) {\n annotationAuthor = commentDiv.getAttribute('author');\n }\n if (undoRedoAction) {\n if (data.modifiedDate !== undefined) {\n this.createReplyDivTitleContainer(replyDiv, data.modifiedDate, annotationAuthor);\n }\n else {\n this.createReplyDivTitleContainer(replyDiv, null, annotationAuthor);\n }\n }\n else {\n this.createReplyDivTitleContainer(replyDiv, data.ModifiedDate, annotationAuthor);\n }\n replyDiv.addEventListener('mouseover', this.commentDivMouseOver.bind(this));\n replyDiv.addEventListener('mouseleave', this.commentDivMouseLeave.bind(this));\n replyDiv.addEventListener('click', this.commentDivOnSelect.bind(this));\n replyTextBox.addEventListener('dblclick', this.openEditorElement.bind(this));\n // eslint-disable-next-line\n var saveObj = new InPlaceEditor({\n mode: 'Inline',\n type: 'Text',\n emptyText: '',\n editableOn: 'EditIconClick',\n model: { placeholder: this.pdfViewer.localeObj.getConstant('Add a reply') + '..' },\n value: '',\n saveButton: {\n content: this.pdfViewer.localeObj.getConstant('Post'),\n cssClass: 'e-outline',\n disabled: true\n },\n cancelButton: {\n content: this.pdfViewer.localeObj.getConstant('Cancel'),\n cssClass: 'e-outline'\n }\n });\n if (undoRedoAction) {\n saveObj.value = data.note;\n }\n else {\n saveObj.value = data.Note;\n }\n saveObj.created = function () {\n setTimeout(function () {\n saveObj.element.querySelector('.e-editable-value').innerText = undoRedoAction ? data ? data.note : '' : data ? data.Note : '';\n });\n };\n saveObj.beginEdit = function () {\n saveObj.value = saveObj.valueEle.innerText;\n };\n saveObj.appendTo(replyTextBox);\n replyDiv.appendChild(replyTextBox);\n if (undoRedoAction) {\n data.State = data.state;\n }\n if (data.State) {\n // eslint-disable-next-line max-len\n var statusContainer = createElement('div', { id: this.pdfViewer.element.id + 'status' + '_container', className: 'e-pv-status-container' });\n // eslint-disable-next-line max-len\n var statusDiv = createElement('div', { id: this.pdfViewer.element.id + 'status' + '_div', className: 'e-pv-status-div' });\n var statusSpan = createElement('span', { id: this.pdfViewer.element.id + 'status' + '_icon' });\n statusDiv.appendChild(statusSpan);\n statusContainer.appendChild(statusDiv);\n replyDiv.appendChild(statusContainer);\n this.updateStatusContainer(data.State, statusSpan, statusDiv, statusContainer);\n }\n replyDiv.style.paddingLeft = 24 + 'px';\n // eslint-disable-next-line\n this.getButtonState(saveObj, replyTextBox);\n if (undoRedoAction) {\n if (isCommentAction) {\n commentDiv.appendChild(replyDiv);\n }\n else {\n // eslint-disable-next-line\n var commentsDiv = document.getElementById(id);\n if (data.position) {\n commentsDiv.insertBefore(replyDiv, commentsDiv.childNodes[data.position]);\n }\n else {\n // eslint-disable-next-line\n if (commentsDiv) {\n if (commentsDiv.childElementCount > 1) {\n commentsDiv.insertBefore(replyDiv, commentsDiv.childNodes[commentsDiv.childElementCount - 1]);\n }\n else {\n commentDiv.appendChild(replyDiv);\n }\n }\n }\n }\n }\n else {\n commentDiv.appendChild(replyDiv);\n }\n replyDiv.addEventListener('click', this.commentsDivClickEvent.bind(this));\n replyDiv.addEventListener('dblclick', this.commentsDivDoubleClickEvent.bind(this));\n saveObj.actionSuccess = this.modifyProperty.bind(this, saveObj);\n };\n /**\n * @param data\n * @param pageIndex\n * @param isCopy\n * @param data\n * @param pageIndex\n * @param isCopy\n * @private\n */\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.createCommentsContainer = function (data, pageIndex, isCopy) {\n // eslint-disable-next-line\n var accordionContentContainer = document.getElementById(this.pdfViewer.element.id + '_accordionContainer' + pageIndex);\n if (!accordionContentContainer) {\n // eslint-disable-next-line max-len\n var accordionPageContainer = document.getElementById(this.pdfViewer.element.id + '_accordionPageContainer' + pageIndex);\n if (accordionPageContainer) {\n accordionPageContainer.parentElement.removeChild(accordionPageContainer);\n }\n accordionContentContainer = this.createPageAccordion(pageIndex);\n if (accordionContentContainer) {\n accordionContentContainer.ej2_instances[0].expandItem(true);\n }\n }\n var accordionContent = document.getElementById(this.pdfViewer.element.id + '_accordioncontent' + pageIndex);\n // eslint-disable-next-line max-len\n this.commentsContainer = createElement('div', { id: this.pdfViewer.element.id + 'commentscontainer_' + pageIndex + '_' + this.commentsCount, className: 'e-pv-comments-container' });\n this.commentsContainer.accessKey = pageIndex.toString() + '_' + this.commentsCount;\n if (data) {\n this.commentsContainer.id = data.annotName ? data.annotName : data.annotationId;\n }\n this.commentsContainer.addEventListener('mousedown', this.commentsAnnotationSelect.bind(this));\n // eslint-disable-next-line max-len\n var commentDiv = createElement('div', { id: this.pdfViewer.element.id + '_commentdiv_' + pageIndex + '_' + this.commentsCount, className: 'e-pv-comments-div' });\n this.commentsCount = this.commentsCount + 1;\n this.commentsContainer.appendChild(commentDiv);\n this.updateCommentPanelScrollTop(pageIndex);\n if (data && accordionContent) {\n if (data.position || data.position === 0) {\n accordionContent.insertBefore(this.commentsContainer, accordionContent.children[data.position]);\n }\n else {\n accordionContent.appendChild(this.commentsContainer);\n }\n }\n if (data && accordionContent) {\n if (data.indent) {\n this.commentsContainer.setAttribute('name', 'shape_measure');\n this.createTitleContainer(commentDiv, 'shape_measure', pageIndex, data.subject, data.modifiedDate, data.author);\n }\n else if (data.shapeAnnotationType === 'sticky' || data.shapeAnnotationType === 'stamp') {\n // eslint-disable-next-line max-len\n var annotType = this.createTitleContainer(commentDiv, data.shapeAnnotationType, pageIndex, null, data.modifiedDate, data.author);\n this.commentsContainer.setAttribute('name', annotType);\n if (annotType === 'sticky') {\n if (!isCopy) {\n this.addStickyNotesAnnotations((pageIndex - 1), data);\n }\n }\n }\n else if (data.shapeAnnotationType === 'textMarkup') {\n this.commentsContainer.setAttribute('name', 'textMarkup');\n this.createTitleContainer(commentDiv, 'textMarkup', pageIndex, data.subject, data.modifiedDate, data.author);\n }\n else if (data.shapeAnnotationType === 'FreeText') {\n data.note = data.dynamicText;\n this.commentsContainer.setAttribute('name', 'freetext');\n this.createTitleContainer(commentDiv, 'freeText', pageIndex, data.subject, data.modifiedDate);\n }\n else if (data.shapeAnnotationType === 'Ink') {\n data.note = data.dynamicText;\n this.commentsContainer.setAttribute('name', 'ink');\n this.createTitleContainer(commentDiv, 'ink', pageIndex, data.subject, data.modifiedDate);\n }\n else {\n this.commentsContainer.setAttribute('name', 'shape');\n if (data.shapeAnnotationType === 'Line') {\n this.createTitleContainer(commentDiv, 'shape', pageIndex, data.subject, data.modifiedDate, data.author);\n }\n else {\n this.createTitleContainer(commentDiv, 'shape', pageIndex, data.shapeAnnotationType, data.modifiedDate, data.author);\n }\n }\n }\n // eslint-disable-next-line max-len\n var commentTextBox = createElement('div', { id: this.pdfViewer.element.id + '_commenttextbox_' + pageIndex + '_' + this.commentsCount, className: 'e-pv-comment-textbox' });\n // eslint-disable-next-line\n var editObj = new InPlaceEditor({\n mode: 'Inline',\n type: 'Text',\n model: { placeholder: this.pdfViewer.localeObj.getConstant('Add a comment') + '..' },\n emptyText: '',\n editableOn: 'EditIconClick',\n saveButton: {\n content: this.pdfViewer.localeObj.getConstant('Post'),\n cssClass: 'e-outline',\n disabled: true\n },\n cancelButton: {\n content: this.pdfViewer.localeObj.getConstant('Cancel'),\n cssClass: 'e-outline'\n },\n submitOnEnter: true\n });\n editObj.appendTo(commentTextBox);\n // eslint-disable-next-line\n var textBox = document.querySelectorAll('.e-editable-inline');\n for (var j = 0; j < textBox.length; j++) {\n textBox[j].style.display = 'none';\n }\n // eslint-disable-next-line\n commentTextBox.addEventListener('keydown', function (event) {\n if (editObj.element.querySelector('.e-btn-save')) {\n if (event.srcElement.value !== '') {\n editObj.element.querySelector('.e-btn-save').ej2_instances[0].disabled = false;\n }\n else {\n editObj.element.querySelector('.e-btn-save').ej2_instances[0].disabled = true;\n }\n }\n });\n editObj.actionSuccess = this.createCommentDiv.bind(this, editObj);\n commentDiv.appendChild(commentTextBox);\n if (data) {\n editObj.value = data.note;\n if (data.state) {\n // eslint-disable-next-line max-len\n var statusContainer = createElement('div', { id: this.pdfViewer.element.id + 'status' + '_container', className: 'e-pv-status-container' });\n // eslint-disable-next-line max-len\n var statusDiv = createElement('div', { id: this.pdfViewer.element.id + 'status' + '_div', className: 'e-pv-status-div' });\n var statusSpan = createElement('span', { id: this.pdfViewer.element.id + 'status' + '_icon' });\n statusDiv.appendChild(statusSpan);\n statusContainer.appendChild(statusDiv);\n commentDiv.appendChild(statusContainer);\n this.updateStatusContainer(data.state, statusSpan, statusDiv, statusContainer);\n }\n if (data.comments) {\n for (var j = 0; j < data.comments.length; j++) {\n this.renderComments(data.comments[j], this.commentsContainer, true, null, true);\n }\n if (data.comments.length > 0) {\n this.createCommentDiv(this.commentsContainer);\n }\n }\n }\n commentDiv.addEventListener('click', this.commentsDivClickEvent.bind(this));\n commentDiv.addEventListener('mouseover', this.commentDivMouseOver.bind(this));\n commentDiv.addEventListener('mouseleave', this.commentDivMouseLeave.bind(this));\n commentDiv.addEventListener('mouseout', this.commentDivMouseLeave.bind(this));\n commentDiv.addEventListener('focusout', this.commentDivMouseLeave.bind(this));\n commentTextBox.addEventListener('dblclick', this.openEditorElement.bind(this));\n return (this.commentsContainer.id);\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.modifyProperty = function (args) {\n var commentElement = args.element.parentElement.id;\n var parentElement = args.element.parentElement.parentElement.id;\n var titleElement = args.element.previousSibling.firstChild;\n this.updateModifiedDate(titleElement);\n this.modifyCommentsProperty(args.value, commentElement, parentElement, args.prevValue);\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.createTitleContainer = function (commentsDivElement, type, pageIndex, subType, modifiedDate, author, note) {\n var annotationType = this.getAnnotationType(type);\n // eslint-disable-next-line max-len\n var commentTitleContainer = createElement('div', { id: this.pdfViewer.element.id + '_commentTitleConatiner_' + pageIndex + '_' + this.commentsCount, className: 'e-pv-comment-title-container' });\n // eslint-disable-next-line max-len\n var commentTypeSpan = createElement('span', { id: this.pdfViewer.element.id + '_commenttype' + '_icon' + pageIndex + '_' + this.commentsCount });\n commentTypeSpan.style.opacity = '0.6';\n this.updateCommentIcon(commentTypeSpan, annotationType, subType);\n var annotationAuthor;\n if (!author) {\n annotationAuthor = this.pdfViewer.annotationModule.updateAnnotationAuthor(annotationType, subType);\n }\n else {\n annotationAuthor = author;\n }\n commentTypeSpan.style.padding = 8 + 'px';\n commentTypeSpan.style.cssFloat = 'left';\n commentTitleContainer.appendChild(commentTypeSpan);\n // eslint-disable-next-line max-len\n var commentsTitle = createElement('div', { id: this.pdfViewer.element.id + '_commentTitle_' + pageIndex + '_' + this.commentsCount, className: 'e-pv-comment-title' });\n if (!modifiedDate) {\n commentsTitle.textContent = annotationAuthor + ' - ' + this.setModifiedDate();\n }\n else {\n commentsTitle.textContent = annotationAuthor + ' - ' + this.convertUTCDateToLocalDate(modifiedDate);\n }\n commentTitleContainer.appendChild(commentsTitle);\n this.moreButtonId = this.pdfViewer.element.id + '_more-options_' + this.commentsCount + '_' + this.commentsreplyCount;\n // eslint-disable-next-line max-len\n var moreOptionsButton = createElement('button', { id: this.moreButtonId, className: 'e-pv-more-options-button e-btn', attrs: { 'tabindex': '-1' } });\n moreOptionsButton.style.visibility = 'hidden';\n moreOptionsButton.style.zIndex = '1001';\n moreOptionsButton.setAttribute('type', 'button');\n moreOptionsButton.setAttribute('aria-label', 'more button');\n // eslint-disable-next-line max-len\n var moreOptionsButtonSpan = createElement('span', { id: this.pdfViewer.element.id + '_more-options_icon', className: 'e-pv-more-icon e-pv-icon' });\n moreOptionsButton.appendChild(moreOptionsButtonSpan);\n moreOptionsButtonSpan.style.opacity = '0.87';\n commentTitleContainer.appendChild(moreOptionsButton);\n commentsDivElement.appendChild(commentTitleContainer);\n // eslint-disable-next-line\n var commentsContainer = commentsDivElement.parentElement;\n if (commentsContainer) {\n var author_1 = this.pdfViewer.annotationModule.updateAnnotationAuthor(annotationType, subType);\n commentsContainer.setAttribute('author', author_1);\n }\n if (!this.isCreateContextMenu) {\n this.createCommentContextMenu();\n }\n this.isCreateContextMenu = true;\n commentTitleContainer.addEventListener('dblclick', this.openTextEditor.bind(this));\n moreOptionsButton.addEventListener('mouseup', this.moreOptionsClick.bind(this));\n return annotationType;\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.createReplyDivTitleContainer = function (commentsDivElement, modifiedDate, annotationAuthor) {\n // eslint-disable-next-line max-len\n var replyTitleContainer = createElement('div', { id: this.pdfViewer.element.id + '_replyTitleConatiner_' + this.commentsCount + '_' + this.commentsreplyCount, className: 'e-pv-reply-title-container' });\n // eslint-disable-next-line max-len\n var replyTitle = createElement('div', { id: this.pdfViewer.element.id + '_replyTitle_' + this.commentsCount + '_' + this.commentsreplyCount, className: 'e-pv-reply-title' });\n if (!modifiedDate) {\n replyTitle.textContent = annotationAuthor + ' - ' + this.setModifiedDate();\n }\n else {\n replyTitle.textContent = annotationAuthor + ' - ' + this.setExistingAnnotationModifiedDate(modifiedDate);\n }\n replyTitleContainer.appendChild(replyTitle);\n this.moreButtonId = this.pdfViewer.element.id + '_more-options_' + this.commentsCount + '_' + this.commentsreplyCount;\n // eslint-disable-next-line max-len\n var moreButton = createElement('button', { id: this.moreButtonId, className: 'e-pv-more-options-button e-btn', attrs: { 'tabindex': '-1' } });\n moreButton.style.visibility = 'hidden';\n moreButton.style.zIndex = '1001';\n moreButton.setAttribute('type', 'button');\n moreButton.setAttribute('aria-label', 'more button');\n // eslint-disable-next-line max-len\n var moreButtonSpan = createElement('span', { id: this.pdfViewer.element.id + '_more-options_icon', className: 'e-pv-more-icon e-pv-icon' });\n moreButton.appendChild(moreButtonSpan);\n moreButtonSpan.style.opacity = '0.87';\n replyTitleContainer.appendChild(moreButton);\n commentsDivElement.appendChild(replyTitleContainer);\n replyTitleContainer.addEventListener('dblclick', this.openTextEditor.bind(this));\n moreButton.addEventListener('mouseup', this.moreOptionsClick.bind(this));\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.updateCommentIcon = function (commentSpan, annotationType, annotationSubType) {\n if (annotationType === 'sticky') {\n commentSpan.className = 'e-pv-comment-icon e-pv-icon';\n }\n else if (annotationType === 'stamp') {\n commentSpan.className = 'e-pv-stamp-icon e-pv-icon';\n }\n else if (annotationType === 'shape') {\n if (annotationSubType === 'Line') {\n commentSpan.className = 'e-pv-shape-line-icon e-pv-icon';\n }\n else if (annotationSubType === 'LineWidthArrowHead' || annotationSubType === 'Arrow') {\n commentSpan.className = 'e-pv-shape-arrow-icon e-pv-icon';\n }\n else if (annotationSubType === 'Circle' || annotationSubType === 'Ellipse' || annotationSubType === 'Oval') {\n commentSpan.className = 'e-pv-shape-circle-icon e-pv-icon';\n }\n else if (annotationSubType === 'Rectangle' || annotationSubType === 'Square') {\n commentSpan.className = 'e-pv-shape-rectangle-icon e-pv-icon';\n }\n else if (annotationSubType === 'Polygon') {\n commentSpan.className = 'e-pv-shape-pentagon-icon e-pv-icon';\n }\n else {\n commentSpan.className = 'e-pv-annotation-shape-icon e-pv-icon';\n }\n }\n else if (annotationType === 'measure') {\n if (annotationSubType === 'Distance' || annotationSubType === 'Distance calculation') {\n commentSpan.className = 'e-pv-calibrate-distance-icon e-pv-icon';\n }\n else if (annotationSubType === 'Perimeter' || annotationSubType === 'Perimeter calculation') {\n commentSpan.className = 'e-pv-calibrate-perimeter-icon e-pv-icon';\n }\n else if (annotationSubType === 'Radius' || annotationSubType === 'Radius calculation') {\n commentSpan.className = 'e-pv-calibrate-radius-icon e-pv-icon';\n }\n else if (annotationSubType === 'Area' || annotationSubType === 'Area calculation') {\n commentSpan.className = 'e-pv-calibrate-area-icon e-pv-icon';\n }\n else if (annotationSubType === 'Volume' || annotationSubType === 'Volume calculation') {\n commentSpan.className = 'e-pv-calibrate-volume-icon e-pv-icon';\n }\n else {\n commentSpan.className = 'e-pv-annotation-calibrate-icon e-pv-icon';\n }\n }\n else if (annotationType === 'textMarkup') {\n if (annotationSubType === 'Highlight') {\n commentSpan.className = 'e-pv-highlight-icon e-pv-icon';\n }\n else if (annotationSubType === 'Underline') {\n commentSpan.className = 'e-pv-underline-icon e-pv-icon';\n }\n else if (annotationSubType === 'Strikethrough') {\n commentSpan.className = 'e-pv-strikethrough-icon e-pv-icon';\n }\n else {\n commentSpan.className = 'e-pv-annotation-icon e-pv-icon';\n }\n }\n else if (annotationType === 'freeText') {\n commentSpan.className = 'e-pv-freetext-icon e-pv-icon';\n }\n else if (annotationType === 'ink' || annotationSubType === 'Ink') {\n commentSpan.className = 'e-pv-inkannotation-icon e-pv-icon';\n }\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.updateStatusContainer = function (state, statusSpan, statusDiv, statusContainer) {\n if (state === 'Accepted') {\n statusDiv.style.backgroundColor = 'rgb(24,169,85)';\n statusSpan.className = 'e-pv-accepted-icon';\n }\n else if (state === 'Completed') {\n statusDiv.style.backgroundColor = 'rgb(0,122,255)';\n statusSpan.className = 'e-pv-completed-icon';\n }\n else if (state === 'Cancelled') {\n statusDiv.style.backgroundColor = 'rgb(245,103,0)';\n statusSpan.className = 'e-pv-cancelled-icon';\n }\n else if (state === 'Rejected') {\n statusDiv.style.backgroundColor = 'rgb(255,59,48)';\n statusSpan.className = 'e-pv-rejected-icon';\n }\n else {\n statusSpan.className = '';\n statusContainer.parentElement.removeChild(statusContainer);\n }\n };\n /**\n * @param removeDiv\n * @private\n */\n StickyNotesAnnotation.prototype.updateAccordionContainer = function (removeDiv) {\n // eslint-disable-next-line\n var pageNumber = parseInt(removeDiv.accessKey.split('_')[0]);\n var accordionContent = document.getElementById(this.pdfViewer.element.id + '_accordionContainer' + pageNumber);\n if (accordionContent) {\n accordionContent.parentElement.removeChild(accordionContent);\n }\n var accordionContentContainer = document.getElementById(this.pdfViewer.element.id + '_accordionContentContainer');\n if (accordionContentContainer) {\n if (accordionContentContainer.childElementCount === 0) {\n accordionContentContainer.style.display = 'none';\n if (document.getElementById(this.pdfViewer.element.id + '_commentsPanelText')) {\n // eslint-disable-next-line max-len\n this.pdfViewerBase.navigationPane.annotationMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Export Annotations')], false);\n // eslint-disable-next-line max-len\n this.pdfViewerBase.navigationPane.annotationMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Export XFDF')], false);\n document.getElementById(this.pdfViewer.element.id + '_commentsPanelText').style.display = 'block';\n this.updateCommentPanelTextTop();\n }\n }\n }\n };\n /**\n * @private\n */\n StickyNotesAnnotation.prototype.createCommentContextMenu = function () {\n // eslint-disable-next-line max-len\n this.commentContextMenu = [\n { text: this.pdfViewer.localeObj.getConstant('Edit') },\n { text: this.pdfViewer.localeObj.getConstant('Delete Context') },\n {\n // eslint-disable-next-line max-len\n text: this.pdfViewer.localeObj.getConstant('Set Status'), items: [{ text: this.pdfViewer.localeObj.getConstant('None') }, { text: this.pdfViewer.localeObj.getConstant('Accepted') }, { text: this.pdfViewer.localeObj.getConstant('Cancelled') }, { text: this.pdfViewer.localeObj.getConstant('Completed') }, { text: this.pdfViewer.localeObj.getConstant('Rejected') }]\n }\n ];\n var commentMenuElement = createElement('ul', { id: this.pdfViewer.element.id + '_comment_context_menu' });\n this.pdfViewer.element.appendChild(commentMenuElement);\n this.commentMenuObj = new Context({\n target: '#' + this.moreButtonId, items: this.commentContextMenu,\n beforeOpen: this.contextMenuBeforeOpen.bind(this),\n select: this.commentMenuItemSelect.bind(this)\n });\n if (this.pdfViewer.enableRtl) {\n this.commentMenuObj.enableRtl = true;\n }\n this.commentMenuObj.appendTo(commentMenuElement);\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n this.commentMenuObj.animationSettings.effect = 'ZoomIn';\n }\n else {\n this.commentMenuObj.animationSettings.effect = 'SlideDown';\n }\n };\n StickyNotesAnnotation.prototype.contextMenuBeforeOpen = function (args) {\n // eslint-disable-next-line\n var contextActiveDiv;\n // eslint-disable-next-line\n var contextDiv = document.querySelectorAll('.e-pv-more-options-button');\n if (contextDiv) {\n for (var i = 0; i < contextDiv.length; i++) {\n if (contextDiv[i].style.visibility === 'visible') {\n contextActiveDiv = contextDiv[i].parentElement.nextSibling;\n }\n }\n }\n var isCommentLocked = this.checkIslockProperty(contextActiveDiv);\n if (isCommentLocked) {\n this.commentMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Edit')], false);\n this.commentMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Delete Context')], false);\n }\n else {\n this.commentMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Edit')], true);\n this.commentMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Delete Context')], true);\n }\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.commentMenuItemSelect = function (args) {\n // eslint-disable-next-line\n var contextActiveDiv;\n // eslint-disable-next-line\n var contextDiv = document.querySelectorAll('.e-pv-more-options-button');\n if (contextDiv) {\n for (var i = 0; i < contextDiv.length; i++) {\n if (contextDiv[i].style.visibility === 'visible') {\n contextActiveDiv = contextDiv[i].parentElement.nextSibling;\n }\n }\n if (args.item) {\n switch (args.item.text) {\n case this.pdfViewer.localeObj.getConstant('Edit'):\n // eslint-disable-next-line\n var commentShow = document.querySelectorAll('.e-pv-new-comments-div');\n for (var i = 0; i < commentShow.length; i++) {\n commentShow[i].style.display = 'none';\n }\n contextActiveDiv.ej2_instances[0].enableEditMode = true;\n break;\n case this.pdfViewer.localeObj.getConstant('Delete Context'):\n if (contextActiveDiv.parentElement.parentElement.firstChild === contextActiveDiv.parentElement) {\n this.pdfViewer.annotationModule.deleteAnnotation();\n }\n else {\n // eslint-disable-next-line max-len\n this.modifyCommentDeleteProperty(contextActiveDiv.parentElement.parentElement, contextActiveDiv.parentElement);\n }\n break;\n case this.pdfViewer.localeObj.getConstant('Set Status'):\n break;\n case this.pdfViewer.localeObj.getConstant('Accepted'):\n if (contextActiveDiv.parentElement.lastChild.id === this.pdfViewer.element.id + 'status_container') {\n contextActiveDiv.parentElement.lastChild.remove();\n }\n // eslint-disable-next-line max-len\n var acceptedStatusDiv = createElement('div', { id: this.pdfViewer.element.id + 'status' + '_container', className: 'e-pv-status-container' });\n // eslint-disable-next-line max-len\n var statusDiv = createElement('div', { id: this.pdfViewer.element.id + 'status' + '_div', className: 'e-pv-status-div' });\n var statusSpan = createElement('span', { id: this.pdfViewer.element.id + 'status' + '_icon', className: 'e-pv-accepted-icon' });\n statusDiv.style.backgroundColor = 'rgb(24,169,85)';\n statusDiv.appendChild(statusSpan);\n acceptedStatusDiv.appendChild(statusDiv);\n contextActiveDiv.parentElement.appendChild(acceptedStatusDiv);\n this.modifyStatusProperty('Accepted', contextActiveDiv.parentElement);\n break;\n case this.pdfViewer.localeObj.getConstant('Completed'):\n if (contextActiveDiv.parentElement.lastChild.id === this.pdfViewer.element.id + 'status_container') {\n contextActiveDiv.parentElement.lastChild.remove();\n }\n // eslint-disable-next-line max-len\n var completedStatusDiv = createElement('div', { id: this.pdfViewer.element.id + 'status' + '_container', className: 'e-pv-status-container' });\n // eslint-disable-next-line max-len\n var statusElement = createElement('div', { id: this.pdfViewer.element.id + 'status' + '_div', className: 'e-pv-status-div' });\n // eslint-disable-next-line max-len\n var statusOptionSpan = createElement('span', { id: this.pdfViewer.element.id + 'status' + '_icon', className: 'e-pv-completed-icon' });\n statusElement.style.backgroundColor = 'rgb(0,122,255)';\n statusElement.appendChild(statusOptionSpan);\n completedStatusDiv.appendChild(statusElement);\n contextActiveDiv.parentElement.appendChild(completedStatusDiv);\n this.modifyStatusProperty('Completed', contextActiveDiv.parentElement);\n break;\n case this.pdfViewer.localeObj.getConstant('Cancelled'):\n if (contextActiveDiv.parentElement.lastChild.id === this.pdfViewer.element.id + 'status_container') {\n contextActiveDiv.parentElement.lastChild.remove();\n }\n // eslint-disable-next-line max-len\n var cancelStatusDiv = createElement('div', { id: this.pdfViewer.element.id + 'status' + '_container', className: 'e-pv-status-container' });\n // eslint-disable-next-line max-len\n var cancelStatusElement = createElement('div', { id: this.pdfViewer.element.id + 'status' + '_div', className: 'e-pv-status-div' });\n // eslint-disable-next-line max-len\n var cancelStatusSpan = createElement('span', { id: this.pdfViewer.element.id + 'status' + '_icon', className: 'e-pv-cancelled-icon' });\n cancelStatusElement.style.backgroundColor = 'rgb(245,103,0)';\n cancelStatusElement.appendChild(cancelStatusSpan);\n cancelStatusDiv.appendChild(cancelStatusElement);\n contextActiveDiv.parentElement.appendChild(cancelStatusDiv);\n this.modifyStatusProperty('Cancelled', contextActiveDiv.parentElement);\n break;\n case this.pdfViewer.localeObj.getConstant('Rejected'):\n if (contextActiveDiv.parentElement.lastChild.id === this.pdfViewer.element.id + 'status_container') {\n contextActiveDiv.parentElement.lastChild.remove();\n }\n // eslint-disable-next-line max-len\n var rejectedStatusDiv = createElement('div', { id: this.pdfViewer.element.id + 'status' + '_container', className: 'e-pv-status-container' });\n // eslint-disable-next-line max-len\n var rejectedStatusElement = createElement('div', { id: this.pdfViewer.element.id + 'status' + '_div', className: 'e-pv-status-div' });\n // eslint-disable-next-line max-len\n var rejectedStatusSpan = createElement('span', { id: this.pdfViewer.element.id + 'status' + '_icon', className: 'e-pv-rejected-icon' });\n rejectedStatusElement.style.backgroundColor = 'rgb(255,59,48)';\n rejectedStatusElement.appendChild(rejectedStatusSpan);\n rejectedStatusDiv.appendChild(rejectedStatusElement);\n contextActiveDiv.parentElement.appendChild(rejectedStatusDiv);\n this.modifyStatusProperty('Rejected', contextActiveDiv.parentElement);\n break;\n case this.pdfViewer.localeObj.getConstant('None'):\n if (contextActiveDiv.parentElement.lastChild.id === this.pdfViewer.element.id + 'status_container') {\n contextActiveDiv.parentElement.lastChild.remove();\n }\n this.modifyStatusProperty('None', contextActiveDiv.parentElement);\n break;\n default:\n break;\n }\n }\n }\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.moreOptionsClick = function (event, isMoreOptionClick) {\n if (document.getElementById(this.pdfViewer.element.id + '_comment_context_menu').style.display !== 'block') {\n this.pdfViewer.annotationModule.checkContextMenuDeleteItem(this.commentMenuObj);\n this.commentMenuObj.open(event.clientY, event.clientX, event.currentTarget);\n }\n if (this.pdfViewer.annotationModule && this.pdfViewer.annotationModule.inkAnnotationModule) {\n // eslint-disable-next-line\n var currentPageNumber = parseInt(this.pdfViewer.annotationModule.inkAnnotationModule.currentPageNumber);\n this.pdfViewer.annotationModule.inkAnnotationModule.drawInkAnnotation(currentPageNumber);\n }\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.openTextEditor = function (event) {\n // eslint-disable-next-line\n var commentShow = document.querySelectorAll('.e-pv-new-comments-div');\n for (var i = 0; i < commentShow.length; i++) {\n commentShow[i].style.display = 'none';\n }\n var isCommentLocked = this.checkIslockProperty(event.currentTarget.nextSibling);\n if (isCommentLocked) {\n event.currentTarget.nextSibling.ej2_instances[0].enableEditMode = false;\n }\n else if (event.currentTarget.parentElement.parentElement) {\n var isLocked = this.checkAnnotationSettings(event.currentTarget.parentElement.parentElement.id);\n if (isLocked) {\n // eslint-disable-next-line\n var annotation = this.findAnnotationObject(event.currentTarget.parentElement.parentElement.id);\n if (this.pdfViewer.annotationModule.checkAllowedInteractions('Select', annotation)) {\n isLocked = false;\n }\n }\n if (!isLocked) {\n event.currentTarget.nextSibling.ej2_instances[0].enableEditMode = true;\n }\n }\n else {\n event.currentTarget.nextSibling.ej2_instances[0].enableEditMode = true;\n }\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.checkIslockProperty = function (commentEvent) {\n // eslint-disable-next-line\n var annotCollection = this.pdfViewer.annotationCollection;\n // eslint-disable-next-line\n var annotation;\n if (commentEvent.IsCommentLock) {\n return true;\n }\n // eslint-disable-next-line max-len\n if (this.pdfViewer.annotationModule.textMarkupAnnotationModule && this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n annotation = this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation;\n }\n else if (this.pdfViewer.selectedItems.annotations[0]) {\n annotation = this.pdfViewer.selectedItems.annotations[0];\n }\n for (var i = 0; i < annotCollection.length; i++) {\n // eslint-disable-next-line max-len\n var note = annotCollection[i].note ? annotCollection[i].note : annotCollection[i].notes;\n if (annotCollection[i].isCommentLock === true && (commentEvent.textContent === note || annotCollection[i].dynamicText === commentEvent.textContent)) {\n return true;\n }\n for (var j = 0; j < annotCollection[i].comments.length; j++) {\n if (annotation && annotCollection[i].annotationId === annotation.annotName) {\n // eslint-disable-next-line max-len\n if (annotCollection[i].comments[j].isLock === true && commentEvent.textContent === annotCollection[i].comments[j].note) {\n return true;\n }\n }\n }\n }\n return false;\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.openEditorElement = function (event) {\n // eslint-disable-next-line\n var commentShow = document.querySelectorAll('.e-pv-new-comments-div');\n for (var i = 0; i < commentShow.length; i++) {\n commentShow[i].style.display = 'none';\n }\n var isCommentLocked = this.checkIslockProperty(event.currentTarget);\n if (isCommentLocked) {\n event.currentTarget.ej2_instances[0].enableEditMode = false;\n }\n else if (event.currentTarget.parentElement.parentElement) {\n var isLocked = this.checkAnnotationSettings(event.currentTarget.parentElement.parentElement.id);\n if (isLocked) {\n // eslint-disable-next-line\n var annotation = this.findAnnotationObject(event.currentTarget.parentElement.parentElement.id);\n if (this.pdfViewer.annotationModule.checkAllowedInteractions('Select', annotation)) {\n isLocked = false;\n }\n }\n if (!isLocked) {\n if (!isNullOrUndefined(this.pdfViewer.selectedItems) && this.pdfViewer.selectedItems.annotations[0] && this.pdfViewer.selectedItems.annotations[0].isReadonly) {\n event.currentTarget.ej2_instances[0].enableEditMode = false;\n }\n else {\n event.currentTarget.ej2_instances[0].enableEditMode = true;\n }\n }\n }\n else {\n event.currentTarget.ej2_instances[0].enableEditMode = true;\n }\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.commentsDivClickEvent = function (event) {\n // eslint-disable-next-line\n var annotation = this.findAnnotationObject(event.currentTarget.parentElement.id);\n var isLocked = this.checkAnnotationSettings(event.currentTarget.parentElement.id);\n if (isLocked) {\n if (this.pdfViewer.annotationModule.checkAllowedInteractions('Select', annotation)) {\n isLocked = false;\n }\n }\n if (!isLocked) {\n var isCommentsSelect = false;\n if (event.clientX === 0 && event.clientY === 0) {\n this.isSetAnnotationType = true;\n }\n else {\n this.isSetAnnotationType = false;\n }\n if (event.target.className === 'e-pv-more-icon e-pv-icon') {\n return null;\n }\n // eslint-disable-next-line\n var x = document.querySelectorAll('.e-pv-more-options-button');\n for (var i = 0; i < x.length; i++) {\n x[i].style.visibility = 'hidden';\n }\n if (document.getElementById(this.pdfViewer.element.id + '_commantPanel').style.display === 'none') {\n this.pdfViewer.annotationModule.showCommentsPanel();\n }\n if (event.currentTarget.parentElement.classList.contains('e-pv-comments-border')) {\n isCommentsSelect = true;\n }\n event.currentTarget.firstChild.lastChild.style.visibility = 'visible';\n // eslint-disable-next-line\n var commentsContainer = document.querySelectorAll('.e-pv-comments-border');\n if (commentsContainer) {\n for (var j = 0; j < commentsContainer.length; j++) {\n commentsContainer[j].classList.remove('e-pv-comments-border');\n }\n }\n event.currentTarget.parentElement.classList.add('e-pv-comments-border');\n // eslint-disable-next-line\n var commentShow = document.querySelectorAll('.e-pv-new-comments-div');\n for (var i = 0; i < commentShow.length; i++) {\n commentShow[i].style.display = 'none';\n }\n // eslint-disable-next-line\n var editElement = event.currentTarget.parentElement.lastChild;\n // eslint-disable-next-line\n var commentsElement = event.currentTarget.parentElement;\n if (editElement) {\n editElement.style.display = 'block';\n if (editElement.querySelector('.e-editable-inline')) {\n if (!this.isEditableElement) {\n editElement.querySelector('.e-editable-inline').style.display = 'block';\n }\n for (var i = 0; i < commentsElement.childElementCount; i++) {\n // eslint-disable-next-line\n var activeElement = commentsElement.childNodes[i];\n // eslint-disable-next-line\n var textElement = activeElement.querySelector('.e-editable-inline');\n if (textElement) {\n if (textElement.style.display === '') {\n editElement.style.display = 'none';\n editElement.querySelector('.e-editable-inline').style.display = 'none';\n }\n }\n }\n }\n if (this.isSetAnnotationType) {\n if (!isCommentsSelect) {\n this.updateCommentsScrollTop();\n }\n }\n }\n if (event.currentTarget.parentElement.childElementCount === 1) {\n if (!this.pdfViewer.enableShapeLabel) {\n event.currentTarget.childNodes[1].ej2_instances[0].enableEditMode = true;\n }\n else {\n var type = event.currentTarget.parentElement.getAttribute('name');\n if (this.isSetAnnotationType && type === 'shape') {\n event.currentTarget.childNodes[1].ej2_instances[0].enableEditMode = false;\n }\n else {\n event.currentTarget.childNodes[1].ej2_instances[0].enableEditMode = true;\n }\n }\n }\n var editModule = void 0;\n if (event && event.currentTarget && event.currentTarget.childNodes[1]) {\n editModule = event.currentTarget.childNodes[1].ej2_instances[0];\n }\n if (event.currentTarget && event.currentTarget.id && editModule) {\n // eslint-disable-next-line\n if (annotation && annotation.isCommentLock) {\n editModule.enableEditMode = false;\n this.createCommentDiv(event.currentTarget);\n }\n this.pdfViewer.fireCommentSelect(event.currentTarget.id, event.currentTarget.childNodes[1].ej2_instances[0].value, annotation);\n }\n this.commentDivOnSelect(event);\n event.preventDefault();\n }\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.commentsDivDoubleClickEvent = function (event) {\n // eslint-disable-next-line\n var commentShow = document.querySelectorAll('.e-pv-new-comments-div');\n for (var i = 0; i < commentShow.length; i++) {\n commentShow[i].style.display = 'none';\n }\n var isCommentLocked = this.checkIslockProperty(event.currentTarget.children[1]);\n if (isCommentLocked) {\n if (event.currentTarget.childElementCount === 2) {\n event.currentTarget.lastChild.ej2_instances[0].enableEditMode = false;\n }\n else {\n event.currentTarget.childNodes[1].ej2_instances[0].enableEditMode = false;\n }\n }\n else if (event.currentTarget) {\n var isLocked = this.checkAnnotationSettings(event.currentTarget.parentElement.id);\n if (!isLocked) {\n if (event.currentTarget.childElementCount === 2) {\n event.currentTarget.lastChild.ej2_instances[0].enableEditMode = true;\n }\n else {\n event.currentTarget.childNodes[1].ej2_instances[0].enableEditMode = true;\n }\n }\n }\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.commentDivOnSelect = function (event) {\n // eslint-disable-next-line\n var commentSelect = document.querySelectorAll('.e-pv-comments-select');\n for (var z = 0; z < commentSelect.length; z++) {\n commentSelect[z].classList.remove('e-pv-comments-select');\n }\n var activeElement = document.getElementById(event.currentTarget.id);\n if (activeElement) {\n activeElement.classList.remove('e-pv-comments-hover');\n activeElement.classList.remove('e-pv-comments-leave');\n activeElement.classList.add('e-pv-comments-select');\n if (event.currentTarget.nextSibling) {\n if (event.currentTarget.nextSibling.classList.contains('e-pv-new-comments-div')) {\n var activeSiblingElement = document.getElementById(event.currentTarget.nextSibling.id);\n activeSiblingElement.classList.remove('e-pv-comments-hover');\n activeSiblingElement.classList.remove('e-pv-comments-leave');\n activeSiblingElement.classList.add('e-pv-comments-select');\n }\n }\n }\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.commentDivMouseOver = function (event) {\n var activeElement = document.getElementById(event.currentTarget.id);\n if (activeElement) {\n activeElement.classList.remove('e-pv-comments-select');\n activeElement.classList.remove('e-pv-comments-leave');\n activeElement.classList.add('e-pv-comments-hover');\n if (event.currentTarget.nextSibling) {\n if (event.currentTarget.nextSibling.classList.contains('e-pv-new-comments-div')) {\n var activeSiblingElement = document.getElementById(event.currentTarget.nextSibling.id);\n activeSiblingElement.classList.remove('e-pv-comments-select');\n activeSiblingElement.classList.remove('e-pv-comments-leave');\n activeSiblingElement.classList.add('e-pv-comments-hover');\n }\n }\n }\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.commentDivMouseLeave = function (event) {\n var activeElement = document.getElementById(event.currentTarget.id);\n if (activeElement) {\n activeElement.classList.remove('e-pv-comments-hover');\n activeElement.classList.remove('e-pv-comments-select');\n activeElement.classList.add('e-pv-comments-leave');\n if (event.currentTarget.nextSibling) {\n if (event.currentTarget.nextSibling.classList.contains('e-pv-new-comments-div')) {\n var activeSiblingElement = document.getElementById(event.currentTarget.nextSibling.id);\n activeSiblingElement.classList.remove('e-pv-comments-hover');\n activeSiblingElement.classList.remove('e-pv-comments-select');\n activeSiblingElement.classList.add('e-pv-comments-leave');\n }\n }\n }\n };\n /**\n * @param event\n * @private\n */\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.drawIcons = function (event) {\n // eslint-disable-next-line\n if (this.pdfViewerBase.isCommentIconAdded) {\n var pageIndex = this.pdfViewer.annotation.getEventPageNumber(event);\n var pageCurrentRect = this.pdfViewerBase.getElement('_pageDiv_' + pageIndex).getBoundingClientRect();\n var zoomValue = this.pdfViewerBase.getZoomFactor();\n this.pdfViewer.annotationModule.isFormFieldShape = false;\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.stickyNotesAnnotationModule.drawStickyNotes((event.clientX - pageCurrentRect.left) / zoomValue, (event.clientY - pageCurrentRect.top) / zoomValue, 30, 30, pageIndex, null);\n this.pdfViewerBase.isCommentIconAdded = false;\n var commentsButton = document.getElementById(this.pdfViewer.element.id + '_comment');\n if (isBlazor()) {\n commentsButton = commentsButton.children[0];\n }\n if (commentsButton && commentsButton.classList.contains('e-pv-select')) {\n commentsButton.classList.remove('e-pv-select');\n }\n else {\n var commentsIcon = document.getElementById(this.pdfViewer.element.id + '_commentIcon');\n if (commentsIcon) {\n this.pdfViewer.enableRtl ? commentsIcon.className = 'e-pv-comment-icon e-pv-icon e-icon-left e-right' : commentsIcon.className = 'e-pv-comment-icon e-pv-icon e-icon-left';\n }\n }\n }\n };\n /**\n * @param annotationType\n * @param pageNumber\n * @param annotationSubType\n * @param annotationType\n * @param pageNumber\n * @param annotationSubType\n * @param annotationType\n * @param pageNumber\n * @param annotationSubType\n * @private\n */\n StickyNotesAnnotation.prototype.addComments = function (annotationType, pageNumber, annotationSubType) {\n var commentsDivid;\n // eslint-disable-next-line max-len\n var accordion = document.getElementById(this.pdfViewer.element.id + '_accordionContainer' + pageNumber);\n if (accordion) {\n // eslint-disable-next-line max-len\n commentsDivid = this.pdfViewer.annotation.stickyNotesAnnotationModule.createCommentControlPanel(null, pageNumber, annotationType, annotationSubType);\n }\n else {\n this.pdfViewer.annotation.stickyNotesAnnotationModule.createPageAccordion(pageNumber);\n // eslint-disable-next-line max-len\n commentsDivid = this.pdfViewer.annotation.stickyNotesAnnotationModule.createCommentControlPanel(null, pageNumber, annotationType, annotationSubType);\n }\n return commentsDivid;\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.commentsAnnotationSelect = function (event) {\n var element = event.currentTarget;\n var isLocked = this.checkAnnotationSettings(element.id);\n if (isLocked) {\n // eslint-disable-next-line\n var annotation = this.findAnnotationObject(element.id);\n if (this.pdfViewer.annotationModule.checkAllowedInteractions('Select', annotation)) {\n isLocked = false;\n }\n }\n if (!isLocked) {\n if (element.classList.contains('e-pv-comments-border')) {\n // eslint-disable-next-line\n var commentsDiv = document.querySelectorAll('.e-pv-comments-div');\n for (var j = 0; j < commentsDiv.length; j++) {\n commentsDiv[j].style.minHeight = 60 + 'px';\n }\n if (event.currentTarget.childElementCount === 1) {\n if (event.currentTarget.childNodes[0].querySelector('.e-editable-inline')) {\n event.currentTarget.childNodes[0].style.minHeight = event.currentTarget.childNodes[0].clientHeight;\n }\n }\n }\n if (event.target.className === 'e-pv-more-icon e-pv-icon' || event.target.className === 'e-pv-more-options-button e-btn') {\n event.preventDefault();\n return null;\n }\n // eslint-disable-next-line\n var pageNumber = parseInt(element.accessKey.split('_')[0]);\n if (!element.classList.contains('e-pv-comments-border')) {\n // eslint-disable-next-line\n var commentsContainer = document.querySelectorAll('.e-pv-comments-border');\n if (commentsContainer) {\n for (var j = 0; j < commentsContainer.length; j++) {\n commentsContainer[j].classList.remove('e-pv-comments-border');\n }\n }\n var commentsDiv = document.getElementById(element.id);\n if (commentsDiv) {\n // eslint-disable-next-line\n document.querySelectorAll('.e-pv-more-options-button[style*=\"visibility: visible\"]').forEach(function (moreButton) { return moreButton.style.visibility = 'hidden'; });\n if (event.target.className === 'e-editable-value-wrapper') {\n event.target.parentElement.parentElement.firstChild.lastChild.style.visibility = 'visible';\n }\n else if (event.target.className === 'e-pv-reply-title' || event.target.className === 'e-pv-comment-title') {\n event.target.parentElement.lastChild.style.visibility = 'visible';\n }\n else if (event.target.className === 'e-editable-value') {\n event.target.parentElement.parentElement.parentElement.firstChild.lastChild.style.visibility = 'visible';\n }\n commentsDiv.classList.add('e-pv-comments-border');\n }\n // eslint-disable-next-line\n var commentTextBox = document.querySelectorAll('.e-pv-new-comments-div');\n for (var j = 0; j < commentTextBox.length; j++) {\n commentTextBox[j].style.display = 'none';\n }\n if (commentsDiv) {\n // eslint-disable-next-line\n var currentTextBox = commentsDiv.querySelector('.e-pv-new-comments-div');\n if (currentTextBox) {\n currentTextBox.style.display = 'block';\n }\n }\n // eslint-disable-next-line\n var textDiv = element.lastChild;\n this.isEditableElement = false;\n if (textDiv.querySelector('.e-editable-inline')) {\n textDiv.style.display = 'block';\n textDiv.querySelector('.e-editable-inline').style.display = 'block';\n for (var i = 0; i < element.childElementCount; i++) {\n // eslint-disable-next-line\n var activeElement = element.childNodes[i];\n // eslint-disable-next-line\n var textElement = activeElement.querySelector('.e-editable-inline');\n if (textElement) {\n if (textElement.style.display === '') {\n if (textDiv.classList.contains('e-pv-new-comments-div')) {\n this.isEditableElement = true;\n textDiv.style.display = 'none';\n textDiv.querySelector('.e-editable-inline').style.display = 'none';\n }\n }\n }\n }\n }\n this.isSetAnnotationType = false;\n if (event.currentTarget.childElementCount === 1) {\n event.currentTarget.childNodes[0].childNodes[1].ej2_instances[0].enableEditMode = true;\n }\n }\n else {\n this.isSetAnnotationType = true;\n }\n if (!this.isSetAnnotationType) {\n if (this.pdfViewer.navigation) {\n this.pdfViewer.navigationModule.goToPage(pageNumber);\n }\n var annotType = element.getAttribute('name');\n if (annotType === 'null' || annotType === 'Ink') {\n annotType = 'ink';\n }\n this.isCommentsSelected = false;\n this.setAnnotationType(element.id, annotType, pageNumber);\n if (!this.isCommentsSelected) {\n this.selectAnnotationObj = { id: element.id, annotType: annotType, pageNumber: pageNumber };\n }\n }\n }\n this.isSetAnnotationType = false;\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.findAnnotationObject = function (id) {\n // eslint-disable-next-line max-len\n if (this.pdfViewer.annotationModule.textMarkupAnnotationModule && this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n return this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation;\n }\n else if (this.pdfViewer.selectedItems.annotations[0]) {\n return this.pdfViewer.selectedItems.annotations[0];\n }\n // eslint-disable-next-line\n var annotationCollection = this.pdfViewer.annotationCollection;\n if (annotationCollection) {\n for (var i = 0; i < annotationCollection.length; i++) {\n if (annotationCollection[i].annotationId && (annotationCollection[i].annotationId === id)) {\n if (annotationCollection[i].shapeAnnotationType === 'textMarkup') {\n return annotationCollection[i];\n }\n else {\n annotationCollection = this.pdfViewer.annotations;\n for (var j = 0; j < annotationCollection.length; j++) {\n if (annotationCollection[j].annotName && (annotationCollection[j].annotName === id)) {\n return annotationCollection[j];\n }\n }\n }\n }\n }\n }\n };\n StickyNotesAnnotation.prototype.checkAnnotationSettings = function (id) {\n // eslint-disable-next-line\n var annotationCollection = this.pdfViewer.annotationCollection;\n if (annotationCollection) {\n for (var i = 0; i < annotationCollection.length; i++) {\n if (annotationCollection[i].annotationId && (annotationCollection[i].annotationId === id)) {\n if (annotationCollection[i].annotationSettings && annotationCollection[i].annotationSettings.isLock) {\n return true;\n }\n else {\n return false;\n }\n }\n }\n return false;\n }\n else {\n return false;\n }\n };\n StickyNotesAnnotation.prototype.updateCommentsContainerWidth = function () {\n var accordionContainer = document.getElementById(this.pdfViewer.element.id + '_accordionContentContainer');\n var commentsContentContainer = document.getElementById(this.pdfViewer.element.id + '_commentscontentcontainer');\n accordionContainer.style.width = commentsContentContainer.clientWidth + 'px';\n };\n /**\n * @param pageIndex\n * @private\n */\n StickyNotesAnnotation.prototype.selectCommentsAnnotation = function (pageIndex) {\n if (this.selectAnnotationObj && !this.isCommentsSelected) {\n if ((this.selectAnnotationObj.pageNumber - 1) === pageIndex) {\n // eslint-disable-next-line max-len\n this.setAnnotationType(this.selectAnnotationObj.id, this.selectAnnotationObj.annotType, this.selectAnnotationObj.pageNumber);\n this.selectAnnotationObj = null;\n this.isCommentsSelected = true;\n }\n }\n };\n StickyNotesAnnotation.prototype.setAnnotationType = function (id, type, pageNumber) {\n var typeString = (type === 'measure') ? 'shape_measure' : type;\n if (typeString === 'freeText') {\n typeString = 'freetext';\n }\n // eslint-disable-next-line\n var storeCommentObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_' + typeString);\n if (this.pdfViewerBase.isStorageExceed) {\n storeCommentObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_' + typeString];\n }\n if (storeCommentObject) {\n var annotationCommentObject = JSON.parse(storeCommentObject);\n // eslint-disable-next-line\n var annotation = this.pdfViewer.selectedItems.annotations[0];\n // eslint-disable-next-line max-len\n var index = this.pdfViewer.annotationModule.\n getPageCollection(annotationCommentObject, (pageNumber - 1));\n if (annotationCommentObject[index]) {\n // eslint-disable-next-line\n var pageCollections = annotationCommentObject[index].annotations;\n for (var i = 0; i < pageCollections.length; i++) {\n var currentSelector = pageCollections[i].annotationSelectorSettings;\n if (pageCollections[i].annotName === id) {\n if (annotation) {\n this.pdfViewer.fireAnnotationUnSelect(annotation.annotName, annotation.pageIndex, annotation);\n }\n this.pdfViewer.clearSelection(pageNumber - 1);\n if (type === 'textMarkup') {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.clearCurrentAnnotationSelection(pageNumber - 1, true);\n // eslint-disable-next-line max-len\n var canvas = this.pdfViewerBase.getElement('_annotationCanvas_' + (pageNumber - 1));\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.selectAnnotation(pageCollections[i], canvas, (pageNumber - 1));\n this.pdfViewer.annotation.textMarkupAnnotationModule.currentTextMarkupAnnotation = pageCollections[i];\n this.pdfViewer.annotation.textMarkupAnnotationModule.selectTextMarkupCurrentPage = pageNumber - 1;\n this.pdfViewer.annotation.textMarkupAnnotationModule.enableAnnotationPropertiesTool(true);\n if (this.pdfViewer.toolbarModule && this.pdfViewer.enableAnnotationToolbar) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.isToolbarHidden = true;\n // eslint-disable-next-line max-len\n this.pdfViewer.toolbarModule.annotationToolbarModule.showAnnotationToolbar(this.pdfViewer.toolbarModule.annotationItem);\n }\n }\n else if (type === 'stamp') {\n this.pdfViewer.select([pageCollections[i].randomId], currentSelector);\n this.pdfViewer.annotation.onAnnotationMouseDown();\n }\n else if (type === 'sticky') {\n this.pdfViewer.select([pageCollections[i].annotName], currentSelector);\n this.pdfViewer.annotation.onAnnotationMouseDown();\n }\n else if (type === 'ink') {\n this.pdfViewer.select([pageCollections[i].id], currentSelector);\n this.pdfViewer.annotation.onAnnotationMouseDown();\n }\n else {\n this.pdfViewer.select([pageCollections[i].id], currentSelector);\n this.pdfViewer.annotation.onAnnotationMouseDown();\n }\n if (type === 'textMarkup') {\n if (pageCollections[i].rect || pageCollections[i].bounds) {\n // eslint-disable-next-line max-len\n var scrollValue = this.pdfViewerBase.pageSize[pageNumber - 1].top * this.pdfViewerBase.getZoomFactor() + (this.pdfViewer.annotationModule.getAnnotationTop(pageCollections[i]) * this.pdfViewerBase.getZoomFactor());\n if (scrollValue) {\n var scroll_1 = (scrollValue - 20).toString();\n // eslint-disable-next-line radix\n this.pdfViewerBase.viewerContainer.scrollTop = parseInt(scroll_1);\n }\n }\n }\n else {\n var top_1 = pageCollections[i].bounds.top;\n if (type === 'ink') {\n top_1 = pageCollections[i].bounds.y;\n }\n // eslint-disable-next-line max-len\n var scrollValue = this.pdfViewerBase.pageSize[pageNumber - 1].top * this.pdfViewerBase.getZoomFactor() + ((top_1) * this.pdfViewerBase.getZoomFactor());\n var scroll_2 = (scrollValue - 20).toString();\n // eslint-disable-next-line radix\n this.pdfViewerBase.viewerContainer.scrollTop = parseInt(scroll_2);\n }\n this.isCommentsSelected = true;\n }\n }\n }\n }\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.modifyTextProperty = function (text, previousValue, annotationName) {\n // eslint-disable-next-line\n var currentAnnotation;\n var module = this.pdfViewer.annotationModule.textMarkupAnnotationModule;\n if (module && module.currentTextMarkupAnnotation) {\n currentAnnotation = this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation;\n }\n if (currentAnnotation) {\n if (currentAnnotation.annotName !== annotationName) {\n currentAnnotation = this.pdfViewer.selectedItems.annotations[0];\n }\n }\n else {\n currentAnnotation = this.pdfViewer.selectedItems.annotations[0];\n }\n if (isNullOrUndefined(currentAnnotation) && annotationName) {\n currentAnnotation = this.pdfViewer.annotationCollection.filter(function (annot) { return annot.annotationId === annotationName; })[0];\n }\n if (annotationName && (currentAnnotation.annotName !== annotationName)) {\n for (var i = 0; i < this.pdfViewer.annotations.length; i++) {\n if (annotationName === this.pdfViewer.annotations[i].annotName) {\n currentAnnotation = this.pdfViewer.annotations[i];\n break;\n }\n }\n }\n if (currentAnnotation) {\n // eslint-disable-next-line\n var commentsDiv = document.getElementById(currentAnnotation.annotName);\n if (commentsDiv) {\n // eslint-disable-next-line\n var pageNumber = void 0;\n if (commentsDiv.accessKey.split('_')[0]) {\n // eslint-disable-next-line\n pageNumber = parseInt(commentsDiv.accessKey.split('_')[0]);\n }\n else {\n pageNumber = this.pdfViewerBase.currentPageNumber;\n }\n var type = commentsDiv.getAttribute('name');\n var pageIndex = pageNumber - 1;\n // eslint-disable-next-line\n var pageAnnotations = void 0;\n var isMeasure = false;\n // eslint-disable-next-line max-len\n if (currentAnnotation.shapeAnnotationType === 'FreeText' || (this.pdfViewer.enableShapeLabel && (type === 'shape' || type === 'shape_measure'))) {\n var isTextAdded = false;\n if (annotationName) {\n if (currentAnnotation.annotName !== annotationName) {\n this.pdfViewer.annotation.modifyDynamicTextValue(text, annotationName);\n isTextAdded = true;\n }\n }\n if (!isTextAdded) {\n if (currentAnnotation.shapeAnnotationType === 'FreeText') {\n if (currentAnnotation.dynamicText !== text) {\n this.textFromCommentPanel = true;\n this.pdfViewer.annotation.modifyDynamicTextValue(text, currentAnnotation.annotName);\n }\n currentAnnotation.dynamicText = text;\n }\n else {\n this.pdfViewer.annotation.modifyDynamicTextValue(text, currentAnnotation.annotName);\n currentAnnotation.labelContent = text;\n currentAnnotation.notes = text;\n }\n this.pdfViewer.nodePropertyChange(currentAnnotation, {});\n }\n }\n if (currentAnnotation.measureType && currentAnnotation.measureType !== '') {\n pageAnnotations = this.getAnnotations(pageIndex, null, 'shape_measure');\n isMeasure = true;\n }\n else {\n pageAnnotations = this.getAnnotations(pageIndex, null, currentAnnotation.shapeAnnotationType);\n }\n if (pageAnnotations !== null && currentAnnotation.shapeAnnotationType !== 'FreeText') {\n for (var i = 0; i < pageAnnotations.length; i++) {\n if (pageAnnotations[i].annotName === currentAnnotation.annotName) {\n // eslint-disable-next-line\n var clonedObject = cloneObject(pageAnnotations[i]);\n if (text !== null) {\n if (pageAnnotations[i].note !== text) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(pageIndex, i, pageAnnotations[i], 'Text Property Added', '', clonedObject, pageAnnotations[i]);\n currentAnnotation = pageAnnotations[i];\n currentAnnotation.note = text;\n if (currentAnnotation.enableShapeLabel) {\n currentAnnotation.labelContent = text;\n }\n // eslint-disable-next-line max-len\n currentAnnotation.modifiedDate = this.getDateAndTime();\n if (!isMeasure) {\n this.updateUndoRedoCollections(currentAnnotation, pageIndex);\n }\n else {\n this.updateUndoRedoCollections(currentAnnotation, pageIndex, 'shape_measure');\n }\n if (!previousValue || previousValue === '') {\n // eslint-disable-next-line max-len\n this.pdfViewer.fireCommentAdd(currentAnnotation.annotName, currentAnnotation.note, currentAnnotation);\n }\n else {\n // eslint-disable-next-line max-len\n this.pdfViewer.fireCommentEdit(currentAnnotation.annotName, currentAnnotation.note, currentAnnotation);\n }\n return currentAnnotation;\n }\n }\n }\n }\n }\n }\n }\n };\n /**\n * @param date\n * @private\n */\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.getDateAndTime = function (date) {\n if (!date) {\n date = new Date();\n }\n this.globalize = new Internationalization();\n var dateOptions = { format: this.pdfViewer.dateTimeFormat, type: 'dateTime' };\n // eslint-disable-next-line\n var dateTime = this.globalize.formatDate(new Date(date), dateOptions);\n return dateTime;\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.modifyCommentsProperty = function (text, annotName, parentElement, previousValue) {\n // eslint-disable-next-line\n var currentAnnotation;\n if (this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n currentAnnotation = this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation;\n }\n else {\n currentAnnotation = this.pdfViewer.selectedItems.annotations[0];\n }\n if (currentAnnotation) {\n // eslint-disable-next-line\n var commentsDiv = document.getElementById(currentAnnotation.annotName);\n // eslint-disable-next-line\n var pageNumber = parseInt(commentsDiv.accessKey.split('_')[0]);\n var pageIndex = pageNumber - 1;\n // eslint-disable-next-line\n var pageAnnotations = void 0;\n var isMeasure = false;\n var author = this.getAuthorName(currentAnnotation, commentsDiv);\n if (currentAnnotation.measureType && currentAnnotation.measureType !== '') {\n pageAnnotations = this.getAnnotations(pageIndex, null, 'shape_measure');\n isMeasure = true;\n }\n else {\n pageAnnotations = this.getAnnotations(pageIndex, null, currentAnnotation.shapeAnnotationType);\n }\n if (pageAnnotations !== null) {\n for (var i = 0; i < pageAnnotations.length; i++) {\n if (pageAnnotations[i].annotName === currentAnnotation.annotName) {\n currentAnnotation = pageAnnotations[i];\n }\n }\n }\n // eslint-disable-next-line\n var clonedObject = cloneObject(currentAnnotation);\n if (currentAnnotation.comments.length > 0) {\n var isComment = false;\n for (var j = 0; j < currentAnnotation.comments.length; j++) {\n if (currentAnnotation.comments[j].annotName === annotName) {\n isComment = true;\n currentAnnotation.comments[j].note = text;\n // eslint-disable-next-line max-len\n currentAnnotation.comments[j].modifiedDate = this.getDateAndTime();\n }\n }\n // eslint-disable-next-line max-len\n var newArray = { annotName: annotName, parentId: parentElement, subject: 'Comments', comments: [], author: author, note: text, shapeAnnotationType: '', state: '', stateModel: '', modifiedDate: this.getDateAndTime(), review: { state: '', stateModel: '', modifiedDate: this.getDateAndTime(), author: author }, isLock: false };\n if (!isComment) {\n currentAnnotation.comments[currentAnnotation.comments.length] = newArray;\n }\n }\n else {\n // eslint-disable-next-line max-len\n var newArray = { annotName: annotName, parentId: parentElement, subject: 'Comments', comments: [], author: author, note: text, shapeAnnotationType: '', state: '', stateModel: '', modifiedDate: this.getDateAndTime(), review: { state: '', stateModel: '', modifiedDate: this.getDateAndTime(), author: author }, isLock: false };\n currentAnnotation.comments[currentAnnotation.comments.length] = newArray;\n }\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(pageIndex, null, currentAnnotation, 'Comments Property Added', '', clonedObject, currentAnnotation);\n if (!isMeasure) {\n this.updateUndoRedoCollections(currentAnnotation, pageIndex);\n }\n else {\n this.updateUndoRedoCollections(currentAnnotation, pageIndex, 'shape_measure');\n }\n }\n if (previousValue !== undefined) {\n this.pdfViewer.fireCommentEdit(annotName, text, currentAnnotation);\n }\n else {\n this.pdfViewer.fireCommentAdd(annotName, text, currentAnnotation);\n }\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.modifyStatusProperty = function (text, statusElement) {\n // eslint-disable-next-line\n var currentAnnotation;\n if (this.pdfViewer.annotation.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n currentAnnotation = this.pdfViewer.annotation.textMarkupAnnotationModule.currentTextMarkupAnnotation;\n }\n else {\n currentAnnotation = this.pdfViewer.selectedItems.annotations[0];\n }\n if (currentAnnotation) {\n // eslint-disable-next-line\n var commentsDiv = document.getElementById(currentAnnotation.annotName);\n // eslint-disable-next-line\n var pageNumber = parseInt(commentsDiv.accessKey.split('_')[0]);\n var pageIndex = pageNumber - 1;\n // eslint-disable-next-line\n var pageAnnotations = void 0;\n var isMeasure = false;\n var author = commentsDiv.getAttribute('author');\n if (currentAnnotation.measureType && currentAnnotation.measureType !== '') {\n pageAnnotations = this.getAnnotations(pageIndex, null, 'shape_measure');\n isMeasure = true;\n }\n else {\n pageAnnotations = this.getAnnotations(pageIndex, null, currentAnnotation.shapeAnnotationType);\n }\n if (pageAnnotations !== null) {\n for (var i = 0; i < pageAnnotations.length; i++) {\n if (pageAnnotations[i].annotName === currentAnnotation.annotName) {\n currentAnnotation = pageAnnotations[i];\n }\n }\n }\n // eslint-disable-next-line\n var clonedObject = cloneObject(currentAnnotation);\n if (statusElement.parentElement.firstChild.id === statusElement.id) {\n // eslint-disable-next-line max-len\n currentAnnotation.review = { state: text, stateModel: 'Review', author: author, modifiedDate: this.getDateAndTime(), annotId: statusElement.id };\n currentAnnotation.state = text;\n currentAnnotation.stateModel = 'Review';\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(pageIndex, null, currentAnnotation, 'Status Property Added', '', clonedObject, currentAnnotation);\n this.pdfViewer.fireCommentStatusChanged(statusElement.id, currentAnnotation.note, currentAnnotation, currentAnnotation.state);\n }\n else {\n for (var j = 0; j < currentAnnotation.comments.length; j++) {\n if (currentAnnotation.comments[j].annotName === statusElement.id) {\n // eslint-disable-next-line\n var clonedObj = cloneObject(currentAnnotation.comments[j]);\n currentAnnotation.comments[j].state = text;\n currentAnnotation.comments[j].stateModel = 'Review';\n // eslint-disable-next-line max-len\n currentAnnotation.comments[j].review = { state: text, stateModel: 'Review', author: author, modifiedDate: this.getDateAndTime(), annotId: statusElement.id };\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(pageIndex, null, currentAnnotation, 'Status Property Added', '', clonedObj, currentAnnotation.comments[j]);\n this.pdfViewer.fireCommentStatusChanged(currentAnnotation.comments[j].annotName, currentAnnotation.comments[j].note, currentAnnotation, currentAnnotation.comments[j].state);\n }\n }\n }\n if (!isMeasure) {\n this.updateUndoRedoCollections(currentAnnotation, pageIndex);\n }\n else {\n this.updateUndoRedoCollections(currentAnnotation, pageIndex, 'shape_measure');\n }\n }\n };\n /**\n * @param commentsElement\n * @param replyElement\n * @private\n */\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.modifyCommentDeleteProperty = function (commentsElement, replyElement) {\n // eslint-disable-next-line\n var clonedObject;\n // eslint-disable-next-line\n var clonedAnnotation;\n // eslint-disable-next-line\n var currentAnnotation;\n // eslint-disable-next-line\n var commentsParentElement = document.getElementById(commentsElement.id);\n if (commentsParentElement) {\n // eslint-disable-next-line\n var pageNumber = parseInt(commentsParentElement.accessKey.split('_')[0]);\n var pageIndex = pageNumber - 1;\n var annotType = commentsElement.getAttribute('name');\n // eslint-disable-next-line\n var pageAnnotations = this.getAnnotations(pageIndex, null, annotType);\n if (pageAnnotations !== null) {\n for (var i = 0; i < pageAnnotations.length; i++) {\n if (pageAnnotations[i].annotName === commentsElement.id) {\n currentAnnotation = pageAnnotations[i];\n }\n }\n }\n for (var i = 1; i < commentsParentElement.childElementCount; i++) {\n if (commentsParentElement.childNodes[i].id === replyElement.id) {\n clonedAnnotation = cloneObject(currentAnnotation);\n var positionValue = (i - 1);\n currentAnnotation.comments[positionValue].position = i;\n clonedObject = cloneObject(currentAnnotation.comments[positionValue]);\n // eslint-disable-next-line max-len\n this.pdfViewer.fireCommentDelete(currentAnnotation.comments[positionValue].annotName, currentAnnotation.comments[positionValue].note, currentAnnotation);\n currentAnnotation.comments.splice(positionValue, 1);\n replyElement.remove();\n }\n }\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(pageIndex, null, clonedAnnotation, 'Comments Reply Deleted', '', clonedObject, currentAnnotation);\n this.updateUndoRedoCollections(currentAnnotation, pageIndex);\n }\n };\n /**\n * @param annotation\n * @private\n */\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.updateOpacityValue = function (annotation) {\n // eslint-disable-next-line\n var pageAnnotations = this.getAnnotations(annotation.pageIndex, null, annotation.shapeAnnotationType);\n this.pdfViewer.annotationModule.isFormFieldShape = false;\n if (pageAnnotations !== null) {\n for (var i = 0; i < pageAnnotations.length; i++) {\n if (pageAnnotations[i].annotName === annotation.annotName) {\n pageAnnotations[i].opacity = annotation.opacity;\n this.updateUndoRedoCollections(pageAnnotations[i], annotation.pageIndex);\n }\n }\n }\n };\n /**\n * @param annotation\n * @param isAction\n * @param undoAnnotation\n * @param annotation\n * @param isAction\n * @param undoAnnotation\n * @param annotation\n * @param isAction\n * @param undoAnnotation\n * @private\n */\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.undoAction = function (annotation, isAction, undoAnnotation) {\n if (isAction === 'Text Property Added') {\n if (annotation) {\n // eslint-disable-next-line\n var commentsMainDiv = document.getElementById(annotation.annotName);\n if (commentsMainDiv) {\n // eslint-disable-next-line\n var pageNumber = parseInt(commentsMainDiv.accessKey.split('_')[0]);\n var pageIndex = pageNumber - 1;\n // eslint-disable-next-line\n var clonedAnnotationObject = cloneObject(annotation);\n commentsMainDiv.firstChild.firstChild.nextSibling.ej2_instances[0].value = undoAnnotation.note;\n var value = undoAnnotation.note;\n annotation.note = value;\n if (commentsMainDiv.childElementCount === 2) {\n commentsMainDiv.lastChild.style.display = 'block';\n }\n this.updateUndoRedoCollections(annotation, pageIndex);\n return clonedAnnotationObject;\n }\n }\n }\n else if (isAction === 'Comments Property Added') {\n if (annotation.comments.length > 0) {\n // eslint-disable-next-line\n var commentsDiv = document.getElementById(annotation.annotName);\n var pageIndex = this.pdfViewerBase.currentPageNumber - 1;\n if (commentsDiv) {\n // eslint-disable-next-line\n var pageNumber = parseInt(commentsDiv.accessKey.split('_')[0]);\n pageIndex = pageNumber - 1;\n }\n // eslint-disable-next-line\n var clonedAnnotationObject = cloneObject(annotation);\n // eslint-disable-next-line\n var comment = annotation.comments[annotation.comments.length - 1];\n // eslint-disable-next-line\n var removeDiv = document.getElementById(comment.annotName);\n if (removeDiv) {\n removeDiv.remove();\n }\n annotation = undoAnnotation;\n this.updateUndoRedoCollections(annotation, pageIndex);\n return clonedAnnotationObject;\n }\n }\n else if (isAction === 'Status Property Added') {\n if (annotation) {\n // eslint-disable-next-line\n var commentsDiv = document.getElementById(annotation.annotName);\n var pageIndex = this.pdfViewerBase.currentPageNumber - 1;\n if (commentsDiv) {\n // eslint-disable-next-line\n var pageNumber = parseInt(commentsDiv.accessKey.split('_')[0]);\n pageIndex = pageNumber - 1;\n }\n // eslint-disable-next-line\n var clonedAnnotationObject = cloneObject(annotation);\n if (annotation.annotName === undoAnnotation.annotName) {\n annotation.review = undoAnnotation.review;\n annotation.state = undoAnnotation.state;\n annotation.stateModel = undoAnnotation.stateModel;\n this.pdfViewer.annotation.redoCommentsElement.push(annotation);\n }\n else {\n for (var j = 0; j < annotation.comments.length; j++) {\n if (annotation.comments[j].annotName === undoAnnotation.annotName) {\n annotation.comments[j].state = undoAnnotation.state;\n annotation.comments[j].stateModel = undoAnnotation.stateModel;\n annotation.comments[j].review = undoAnnotation.review;\n this.pdfViewer.annotation.redoCommentsElement.push(annotation.comments[j]);\n break;\n }\n }\n }\n // eslint-disable-next-line\n var activeDiv = document.getElementById(undoAnnotation.annotName);\n if (activeDiv.lastChild.id === this.pdfViewer.element.id + 'status' + '_container') {\n activeDiv.lastChild.remove();\n }\n else {\n if (activeDiv.firstChild.lastChild.id === this.pdfViewer.element.id + 'status' + '_container') {\n activeDiv.firstChild.lastChild.remove();\n }\n }\n this.updateUndoRedoCollections(annotation, pageIndex);\n return clonedAnnotationObject;\n }\n }\n else if (isAction === 'Comments Reply Deleted') {\n // eslint-disable-next-line\n var commentsDiv = document.getElementById(annotation.annotName);\n if (commentsDiv) {\n // eslint-disable-next-line\n var pageNumber = parseInt(commentsDiv.accessKey.split('_')[0]);\n var pageIndex = pageNumber - 1;\n this.renderComments(undoAnnotation, commentsDiv, true, annotation.annotName);\n this.pdfViewer.annotation.redoCommentsElement.push(undoAnnotation);\n this.updateUndoRedoCollections(annotation, pageIndex);\n return annotation;\n }\n }\n else if (isAction === 'dynamicText Change') {\n if (annotation) {\n // eslint-disable-next-line\n var commentsMainDiv = document.getElementById(annotation.annotName);\n if (commentsMainDiv) {\n // eslint-disable-next-line\n commentsMainDiv.firstChild.firstChild.nextSibling.ej2_instances[0].value = undoAnnotation.dynamicText;\n return annotation;\n }\n }\n }\n };\n /**\n * @param annotation\n * @param isAction\n * @param undoAnnotation\n * @param annotation\n * @param isAction\n * @param undoAnnotation\n * @private\n */\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.redoAction = function (annotation, isAction, undoAnnotation) {\n if (isAction === 'Text Property Added') {\n // eslint-disable-next-line\n var commentsMainDiv = document.getElementById(annotation.annotName);\n if (commentsMainDiv) {\n // eslint-disable-next-line\n var pageNumber = parseInt(commentsMainDiv.accessKey.split('_')[0]);\n var pageIndex = pageNumber - 1;\n commentsMainDiv.firstChild.firstChild.nextSibling.ej2_instances[0].value = annotation.note;\n commentsMainDiv.lastChild.style.display = 'block';\n this.updateUndoRedoCollections(annotation, pageIndex);\n return annotation;\n }\n }\n else if (isAction === 'Comments Property Added') {\n // eslint-disable-next-line\n var comment = annotation.comments[annotation.comments.length - 1];\n var commentsDiv = document.getElementById(annotation.annotName);\n if (commentsDiv) {\n // eslint-disable-next-line\n var pageNumber = parseInt(commentsDiv.accessKey.split('_')[0]);\n var pageIndex = pageNumber - 1;\n this.renderComments(comment, commentsDiv, true, annotation.annotName);\n this.updateUndoRedoCollections(annotation, pageIndex);\n return annotation;\n }\n }\n else if (isAction === 'Status Property Added') {\n // eslint-disable-next-line\n var poppedItem = this.pdfViewer.annotation.redoCommentsElement.pop();\n var pageIndex = this.pdfViewerBase.currentPageNumber - 1;\n if (poppedItem) {\n // eslint-disable-next-line max-len\n var statusContainer = createElement('div', { id: this.pdfViewer.element.id + 'status' + '_container', className: 'e-pv-status-container' });\n // eslint-disable-next-line max-len\n var statusDiv = createElement('div', { id: this.pdfViewer.element.id + 'status' + '_div', className: 'e-pv-status-div' });\n var statusSpan = createElement('span', { id: this.pdfViewer.element.id + 'status' + '_icon' });\n statusDiv.appendChild(statusSpan);\n statusContainer.appendChild(statusDiv);\n // eslint-disable-next-line\n var activeDiv = document.getElementById(annotation.annotName);\n if (activeDiv) {\n // eslint-disable-next-line\n var pageNumber = parseInt(activeDiv.accessKey.split('_')[0]);\n pageIndex = pageNumber - 1;\n }\n // eslint-disable-next-line\n if (annotation.annotName === poppedItem.annotName) {\n this.updateStatusContainer(annotation.state, statusSpan, statusDiv, statusContainer);\n for (var i = 0; i < activeDiv.firstChild.children.length; i++) {\n if (activeDiv.firstChild.children[i].id === this.pdfViewer.element.id + 'status_container') {\n activeDiv.firstChild.children[i].parentElement.removeChild(activeDiv.firstChild.children[i]);\n }\n }\n activeDiv.firstChild.appendChild(statusContainer);\n }\n else {\n for (var i = 0; i < annotation.comments.length; i++) {\n if (annotation.comments[i].annotName === poppedItem.annotName) {\n this.updateStatusContainer(annotation.comments[i].state, statusSpan, statusDiv, statusContainer);\n var statusElement = document.getElementById(poppedItem.annotName);\n for (var i_1 = 0; i_1 < statusElement.children.length; i_1++) {\n if (statusElement.children[i_1].id === this.pdfViewer.element.id + 'status_container') {\n statusElement.children[i_1].parentElement.removeChild(statusElement.children[i_1]);\n }\n }\n if (statusElement) {\n statusElement.appendChild(statusContainer);\n }\n }\n }\n }\n }\n this.updateUndoRedoCollections(annotation, pageIndex);\n return annotation;\n }\n else if (isAction === 'Comments Reply Deleted') {\n var pageIndex = this.pdfViewerBase.currentPageNumber - 1;\n // eslint-disable-next-line\n var activeDiv = document.getElementById(annotation.annotName);\n if (activeDiv) {\n // eslint-disable-next-line\n var pageNumber = parseInt(activeDiv.accessKey.split('_')[0]);\n pageIndex = pageNumber - 1;\n }\n // eslint-disable-next-line\n var poppedItem = this.pdfViewer.annotation.redoCommentsElement.pop();\n // eslint-disable-next-line\n var clonedAnnotationObject = cloneObject(annotation);\n for (var i = 0; i < annotation.comments.length; i++) {\n if (annotation.comments[i].annotName === poppedItem.annotName) {\n // eslint-disable-next-line\n var replyElement = document.getElementById(poppedItem.annotName);\n annotation.comments.splice(i, 1);\n replyElement.remove();\n }\n }\n this.updateUndoRedoCollections(annotation, pageIndex);\n return clonedAnnotationObject;\n }\n else if (isAction === 'dynamicText Change') {\n if (annotation) {\n // eslint-disable-next-line\n var commentsMainDiv = document.getElementById(annotation.annotName);\n if (commentsMainDiv) {\n // eslint-disable-next-line\n commentsMainDiv.firstChild.firstChild.nextSibling.ej2_instances[0].value = annotation.dynamicText;\n return annotation;\n }\n }\n }\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.updateUndoRedoCollections = function (annotationBase, pageNumber, shapeType, action) {\n var annotationType = (!shapeType) ? annotationBase.shapeAnnotationType : shapeType;\n if (annotationBase.indent && annotationBase.indent !== '') {\n annotationType = 'shape_measure';\n }\n // eslint-disable-next-line\n var pageAnnotations = this.getAnnotations(pageNumber, null, annotationType);\n if (pageAnnotations !== null) {\n for (var i = 0; i < pageAnnotations.length; i++) {\n if (annotationBase.annotName === pageAnnotations[i].annotName) {\n pageAnnotations[i] = annotationBase;\n this.pdfViewer.annotationModule.storeAnnotationCollections(pageAnnotations[i], pageNumber);\n if (action) {\n pageAnnotations.splice(i, 1);\n this.deleteStickyNotesAnnotations(pageAnnotations, pageNumber);\n }\n }\n }\n if (annotationType === 'shape_measure') {\n this.manageAnnotations(pageAnnotations, pageNumber, 'shape_measure');\n }\n else {\n this.manageAnnotations(pageAnnotations, pageNumber, annotationBase.shapeAnnotationType);\n }\n }\n };\n /**\n * @param pageIndex\n * @param type\n * @private\n */\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.addAnnotationComments = function (pageIndex, type) {\n var pageNumber = pageIndex + 1;\n // eslint-disable-next-line\n var poppedItem = this.pdfViewer.annotation.undoCommentsElement.pop();\n if (poppedItem) {\n this.createCommentsContainer(poppedItem, pageNumber);\n this.updateUndoRedoCollections(poppedItem, pageIndex, type);\n }\n };\n /**\n * @param annotation\n * @param type\n * @param action\n * @private\n */\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.findPosition = function (annotation, type, action) {\n var index;\n // eslint-disable-next-line\n var commentsDiv = document.getElementById(annotation.annotName);\n if (commentsDiv) {\n // eslint-disable-next-line\n var pageNumber = parseInt(commentsDiv.accessKey.split('_')[0]);\n var pageIndex = pageNumber - 1;\n // eslint-disable-next-line\n var parentDiv = commentsDiv.parentElement;\n for (var i = 0; i < parentDiv.childElementCount; i++) {\n if (parentDiv.childNodes[i].id === annotation.annotName) {\n index = i;\n }\n }\n if (type === 'Stamp' || type === 'Image') {\n type = 'stamp';\n }\n else if (type === 'FreeText') {\n type = 'freetext';\n }\n else if (type === 'StickyNotes' || type === 'sticky') {\n type = 'sticky';\n }\n else if (type === 'Ink') {\n type = 'ink';\n }\n // eslint-disable-next-line\n var pageAnnotations = this.getAnnotations(pageIndex, null, type);\n if (pageAnnotations !== null) {\n for (var i = 0; i < pageAnnotations.length; i++) {\n if (pageAnnotations[i].annotName === annotation.annotName) {\n // eslint-disable-next-line\n var clonedObject = cloneObject(pageAnnotations[i]);\n pageAnnotations[i].position = index;\n this.pdfViewer.annotation.undoCommentsElement.push(pageAnnotations[i]);\n if (type === 'sticky') {\n this.updateUndoRedoCollections(clonedObject, pageIndex, null, action);\n }\n }\n }\n }\n }\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.getAnnotations = function (pageIndex, shapeAnnotations, type) {\n // eslint-disable-next-line\n var annotationCollection;\n if (type === 'Stamp' || type === 'stamp' || type === 'Image') {\n type = 'stamp';\n }\n else if (type === 'StickyNotes' || type === 'sticky') {\n type = 'sticky';\n }\n else if (type === 'textMarkup') {\n type = 'textMarkup';\n }\n else if (type === 'shape' || type === 'Line' || type === 'Radius' || type === 'Rectangle' || type === 'Ellipse'\n || type === 'Polygon' || type === 'LineWidthArrowHead' || type === 'Square' || type === 'Circle') {\n type = 'shape';\n }\n else if (type === 'FreeText' || type === 'freetext' || type === 'freeText') {\n type = 'freetext';\n }\n else if (type === 'ink' || type === 'Ink') {\n type = 'ink';\n }\n else {\n type = 'shape_measure';\n }\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_' + type);\n if (this.pdfViewerBase.isStorageExceed) {\n storeObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_' + type];\n }\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n var index = this.pdfViewer.annotationModule.getPageCollection(annotObject, pageIndex);\n if (annotObject[index]) {\n annotationCollection = annotObject[index].annotations;\n }\n else {\n annotationCollection = shapeAnnotations;\n }\n }\n else {\n annotationCollection = shapeAnnotations;\n }\n return annotationCollection;\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.manageAnnotations = function (pageAnnotations, pageNumber, type) {\n if (type === 'Stamp' || type === 'stamp') {\n type = 'stamp';\n }\n else if (type === 'Sticky' || type === 'sticky') {\n type = 'sticky';\n }\n else if (type === 'textMarkup') {\n type = 'textMarkup';\n }\n else if (type === 'shape' || type === 'Line' || type === 'Radius' || type === 'Rectangle' || type === 'Ellipse'\n || type === 'Polygon' || type === 'LineWidthArrowHead' || type === 'Square' || type === 'Circle') {\n type = 'shape';\n }\n else if (type === 'FreeText') {\n type = 'freetext';\n }\n else if (type === 'ink' || type === 'Ink') {\n type = 'ink';\n }\n else {\n type = 'shape_measure';\n }\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_' + type);\n if (this.pdfViewerBase.isStorageExceed) {\n storeObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_' + type];\n }\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n if (!this.pdfViewerBase.isStorageExceed) {\n window.sessionStorage.removeItem(this.pdfViewerBase.documentId + '_annotations_' + type);\n }\n var index = this.pdfViewer.annotationModule.getPageCollection(annotObject, pageNumber);\n if (annotObject[index]) {\n annotObject[index].annotations = pageAnnotations;\n }\n var annotationStringified = JSON.stringify(annotObject);\n if (this.pdfViewerBase.isStorageExceed) {\n this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_' + type] = annotationStringified;\n }\n else {\n window.sessionStorage.setItem(this.pdfViewerBase.documentId + '_annotations_' + type, annotationStringified);\n }\n }\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.updateStickyNotes = function (annotation, id) {\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_sticky');\n if (this.pdfViewerBase.isStorageExceed) {\n storeObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_sticky'];\n }\n if (storeObject) {\n // eslint-disable-next-line\n var bounds = annotation.bounds;\n var annotObject = JSON.parse(storeObject);\n for (var k = 0; k < annotObject.length; k++) {\n // eslint-disable-next-line\n var currentAnnot = annotObject[k];\n for (var j = 0; j < currentAnnot.annotations.length; j++) {\n if (annotObject[k].annotations[j].annotName === annotation.annotName) {\n if (!this.pdfViewerBase.isStorageExceed) {\n window.sessionStorage.removeItem(this.pdfViewerBase.documentId + '_annotations_sticky');\n }\n var pageIndex = this.pdfViewer.annotationModule.getPageCollection(annotObject, 0);\n if (annotObject[pageIndex]) {\n // eslint-disable-next-line max-len\n annotObject[k].annotations[j].bounds = { left: bounds.x, top: bounds.y, width: bounds.width, height: bounds.height, right: bounds.right, bottom: bounds.bottom };\n }\n var annotationStringified = JSON.stringify(annotObject);\n if (this.pdfViewerBase.isStorageExceed) {\n // eslint-disable-next-line max-len\n this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_sticky'] = annotationStringified;\n }\n else {\n window.sessionStorage.setItem(this.pdfViewerBase.documentId + '_annotations_sticky', annotationStringified);\n }\n break;\n }\n }\n }\n }\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.saveStickyAnnotations = function () {\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_sticky');\n if (this.pdfViewerBase.isStorageExceed) {\n storeObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_sticky'];\n }\n // eslint-disable-next-line\n var annotations = new Array();\n for (var j = 0; j < this.pdfViewerBase.pageCount; j++) {\n annotations[j] = [];\n }\n if (storeObject && !this.pdfViewer.annotationSettings.skipDownload) {\n var annotationCollection = JSON.parse(storeObject);\n for (var i = 0; i < annotationCollection.length; i++) {\n var newArray = [];\n var pageAnnotationObject = annotationCollection[i];\n if (pageAnnotationObject) {\n for (var z = 0; pageAnnotationObject.annotations.length > z; z++) {\n this.pdfViewer.annotationModule.updateModifiedDate(pageAnnotationObject.annotations[z]);\n // eslint-disable-next-line max-len\n pageAnnotationObject.annotations[z].bounds = JSON.stringify(this.pdfViewer.annotation.getBounds(pageAnnotationObject.annotations[z].bounds, pageAnnotationObject.pageIndex));\n }\n newArray = pageAnnotationObject.annotations;\n }\n annotations[pageAnnotationObject.pageIndex] = newArray;\n }\n }\n return JSON.stringify(annotations);\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.deleteStickyNotesAnnotations = function (pageAnnotations, pageNumber) {\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_sticky');\n if (this.pdfViewerBase.isStorageExceed) {\n storeObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_sticky'];\n }\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n if (!this.pdfViewerBase.isStorageExceed) {\n window.sessionStorage.removeItem(this.pdfViewerBase.documentId + '_annotations_sticky');\n }\n var index = this.pdfViewer.annotationModule.getPageCollection(annotObject, pageNumber);\n if (annotObject[index]) {\n annotObject[index].annotations = pageAnnotations;\n }\n var annotationStringified = JSON.stringify(annotObject);\n if (this.pdfViewerBase.isStorageExceed) {\n this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_sticky'] = annotationStringified;\n }\n else {\n window.sessionStorage.setItem(this.pdfViewerBase.documentId + '_annotations_sticky', annotationStringified);\n }\n }\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.addStickyNotesAnnotations = function (pageNumber, annotationBase) {\n var pageAnnotations = this.getAnnotations(pageNumber, null, 'sticky');\n if (pageAnnotations) {\n pageAnnotations.push(annotationBase);\n }\n this.manageAnnotations(pageAnnotations, pageNumber, 'sticky');\n };\n /**\n * @param annotName\n * @param text\n * @private\n */\n StickyNotesAnnotation.prototype.addTextToComments = function (annotName, text) {\n // eslint-disable-next-line\n var commentsMainDiv = document.getElementById(annotName);\n if (commentsMainDiv) {\n commentsMainDiv.firstChild.firstChild.nextSibling.ej2_instances[0].value = text;\n }\n };\n /**\n * @param newAnnotation\n * @param annotation\n * @param isCut\n * @param newAnnotation\n * @param annotation\n * @param isCut\n * @param newAnnotation\n * @param annotation\n * @param isCut\n * @private\n */\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.updateAnnotationCollection = function (newAnnotation, annotation, isCut) {\n var type = this.findAnnotationType(annotation);\n // eslint-disable-next-line\n var pageAnnotations = this.getAnnotations(annotation.pageIndex, null, type);\n if (isCut) {\n pageAnnotations = this.pdfViewer.annotationModule.removedAnnotationCollection;\n }\n if (pageAnnotations !== null) {\n for (var i = 0; i < pageAnnotations.length; i++) {\n if (isCut && !pageAnnotations[i].annotName) {\n pageAnnotations[i].annotName = pageAnnotations[i].annotationId;\n }\n if (pageAnnotations[i].annotName === annotation.annotName) {\n // eslint-disable-next-line\n var updateAnnotation = cloneObject(pageAnnotations[i]);\n updateAnnotation.annotName = newAnnotation.annotName;\n if (type === 'shape' || type === 'shape_measure' || type === 'freetext' || type === 'ink') {\n updateAnnotation.id = newAnnotation.id;\n }\n if (type === 'stamp') {\n updateAnnotation.randomId = newAnnotation.id;\n }\n if (type === 'ink') {\n updateAnnotation.bounds.x = newAnnotation.bounds.x;\n updateAnnotation.bounds.y = newAnnotation.bounds.y;\n }\n else {\n updateAnnotation.bounds.left = newAnnotation.bounds.x;\n updateAnnotation.bounds.top = newAnnotation.bounds.y;\n updateAnnotation.vertexPoints = newAnnotation.vertexPoints;\n }\n updateAnnotation.note = updateAnnotation.note ? updateAnnotation.note : '';\n updateAnnotation.comments = [];\n // eslint-disable-next-line max-len\n updateAnnotation.review = { state: '', stateModel: '', modifiedDate: updateAnnotation.ModifiedDate, author: updateAnnotation.author };\n updateAnnotation.state = '';\n updateAnnotation.stateModel = '';\n updateAnnotation.pageNumber = annotation.pageIndex;\n this.pdfViewer.annotationModule.storeAnnotations(annotation.pageIndex, updateAnnotation, '_annotations_' + type);\n this.createCommentsContainer(updateAnnotation, annotation.pageIndex + 1, true);\n if (isCut) {\n this.pdfViewer.annotationModule.removedAnnotationCollection = [];\n }\n break;\n }\n }\n }\n };\n StickyNotesAnnotation.prototype.findAnnotationType = function (annotation) {\n var annotType;\n if (annotation.measureType !== '') {\n annotType = 'shape_measure';\n }\n else {\n if (annotation.shapeAnnotationType === 'StickyNotes') {\n annotType = 'sticky';\n }\n else if (annotation.shapeAnnotationType === 'Stamp' || annotation.shapeAnnotationType === 'Image') {\n annotType = 'stamp';\n }\n else if (annotation.shapeAnnotationType === 'FreeText') {\n annotType = 'freetext';\n }\n else if (annotation.shapeAnnotationType === 'Ink') {\n annotType = 'ink';\n }\n else {\n annotType = 'shape';\n }\n }\n return annotType;\n };\n StickyNotesAnnotation.prototype.setExistingAnnotationModifiedDate = function (date) {\n var modifiedDateTime;\n if (date !== '') {\n modifiedDateTime = this.setModifiedDate(date);\n }\n else {\n modifiedDateTime = this.setModifiedDate();\n }\n return modifiedDateTime;\n };\n StickyNotesAnnotation.prototype.updateModifiedTime = function (time, minutes) {\n var modifiedTime;\n if (time >= 12) {\n if (time === 12) {\n modifiedTime = time + ':' + minutes + ' PM';\n }\n else {\n modifiedTime = (time - 12) + ':' + minutes + ' PM';\n }\n }\n else {\n modifiedTime = time + ':' + minutes + ' AM';\n }\n return modifiedTime;\n };\n StickyNotesAnnotation.prototype.setModifiedDate = function (data) {\n var dateTime;\n if (data) {\n dateTime = this.getDateAndTime(data);\n }\n else {\n dateTime = this.getDateAndTime();\n }\n var date = new Date(dateTime);\n var modifiedTime;\n var modifiedDate = date.toString().split(' ').splice(1, 2).join(' ');\n if (date.toLocaleTimeString().split(' ').length === 2) {\n // eslint-disable-next-line max-len\n modifiedTime = date.toLocaleTimeString().split(' ')[0].split(':').splice(0, 2).join(':') + ' ' + date.toLocaleTimeString().split(' ')[1];\n }\n else {\n // eslint-disable-next-line\n var time = parseInt(date.toLocaleTimeString().split(':')[0]);\n var minutes = date.toLocaleTimeString().split(':')[1];\n modifiedTime = this.updateModifiedTime(time, minutes);\n }\n var modifiedDateTime = modifiedDate + ', ' + modifiedTime;\n return modifiedDateTime;\n };\n StickyNotesAnnotation.prototype.convertUTCDateToLocalDate = function (date) {\n var dateTime = new Date(Date.parse(date));\n this.globalize = new Internationalization(this.pdfViewer.locale);\n var timeValue = dateTime.toLocaleTimeString(this.globalize.culture);\n var newTime;\n if (!isNullOrUndefined(timeValue.split(' ')[1])) {\n newTime = (timeValue.split(':').splice(0, 2).join(':')) + ' ' + timeValue.split(' ')[1];\n }\n else {\n newTime = (timeValue.split(':').splice(0, 2).join(':'));\n }\n var newDate = dateTime.toString().split(' ').splice(1, 2).join(' ');\n var dateTimeValue = newDate + ',' + ' ' + newTime;\n return dateTimeValue;\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.updateModifiedDate = function (titleContainer) {\n if (titleContainer.id === this.pdfViewer.element.id + '_commenttype_icon') {\n titleContainer = titleContainer.nextSibling;\n }\n var author = titleContainer.textContent.split('-')[0];\n titleContainer.textContent = author + ' - ' + this.setModifiedDate();\n };\n /**\n * @param annotation\n * @param isBounds\n * @param isUndoRedoAction\n * @private\n */\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.updateAnnotationModifiedDate = function (annotation, isBounds, isUndoRedoAction) {\n // eslint-disable-next-line\n var titleContainer;\n if (annotation) {\n // eslint-disable-next-line\n var commentsContainer = document.getElementById(annotation.annotName);\n if (commentsContainer) {\n if (!isBounds) {\n titleContainer = commentsContainer.firstChild.firstChild.childNodes[1];\n var author = titleContainer.textContent.split('-')[0];\n titleContainer.textContent = author + ' - ' + this.setModifiedDate();\n }\n else {\n var type = this.findAnnotationType(annotation);\n // eslint-disable-next-line\n var pageAnnotations = this.getAnnotations(annotation.pageIndex, null, type);\n if (pageAnnotations != null && annotation) {\n for (var i = 0; i < pageAnnotations.length; i++) {\n if (annotation.annotName === pageAnnotations[i].annotName) {\n // eslint-disable-next-line max-len\n if (annotation.bounds.x !== pageAnnotations[i].bounds.left || annotation.bounds.y !== pageAnnotations[i].bounds.top || annotation.bounds.height !== pageAnnotations[i].bounds.height || annotation.bounds.width !== pageAnnotations[i].bounds.width) {\n titleContainer = commentsContainer.firstChild.firstChild.childNodes[1];\n var author = titleContainer.textContent.split('-')[0];\n titleContainer.textContent = author + ' - ' + this.setModifiedDate();\n }\n }\n if (pageAnnotations[i].shapeAnnotationType === 'sticky') {\n this.pdfViewer.annotationModule.storeAnnotationCollections(pageAnnotations[i], annotation.pageIndex);\n }\n }\n }\n }\n if (isUndoRedoAction) {\n titleContainer = commentsContainer.firstChild.firstChild.childNodes[1];\n if (annotation.modifiedDate !== undefined) {\n var author = titleContainer.textContent.split('-')[0];\n titleContainer.textContent = author + ' - ' + this.setExistingAnnotationModifiedDate(annotation.modifiedDate);\n }\n }\n }\n }\n };\n /**\n * @param annotation\n * @param pageNumber\n * @param annotation\n * @param pageNumber\n * @private\n */\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.saveImportedStickyNotesAnnotations = function (annotation, pageNumber) {\n var annotationObject = null;\n if (!annotation.Author) {\n // eslint-disable-next-line max-len\n annotation.Author = (this.pdfViewer.annotationSettings.author !== 'Guest') ? this.pdfViewer.annotationSettings.author : this.pdfViewer.stickyNotesSettings.author;\n }\n // eslint-disable-next-line max-len\n var isLock = this.pdfViewer.stickyNotesSettings.isLock ? this.pdfViewer.stickyNotesSettings.isLock : this.pdfViewer.annotationSettings.isLock;\n // eslint-disable-next-line\n var allowedInteractions = this.pdfViewer.annotationModule.updateAnnotationAllowedInteractions(annotation);\n annotationObject = {\n // eslint-disable-next-line max-len\n shapeAnnotationType: 'sticky', author: annotation.Author, allowedInteractions: allowedInteractions, modifiedDate: annotation.ModifiedDate, subject: annotation.Subject, note: annotation.Note, opacity: annotation.Opacity, state: annotation.State, stateModel: annotation.StateModel,\n pathData: '', comments: this.pdfViewer.annotationModule.getAnnotationComments(annotation.Comments, annotation, annotation.Author), review: { state: annotation.State, stateModel: annotation.StateModel, modifiedDate: annotation.ModifiedDate, author: annotation.Author }, pageNumber: pageNumber,\n // eslint-disable-next-line max-len\n bounds: { left: annotation.Bounds.X, top: annotation.Bounds.Y, width: annotation.Bounds.Width, height: annotation.Bounds.Height, right: annotation.Bounds.Right, bottom: annotation.Bounds.Bottom },\n annotName: annotation.AnnotName, color: annotation.color,\n annotationSelectorSettings: this.getSettings(annotation),\n customData: this.pdfViewer.annotation.getCustomData(annotation),\n annotationSettings: { isLock: isLock }, isPrint: annotation.IsPrint, isCommentLock: annotation.IsCommentLock\n };\n this.pdfViewer.annotationModule.storeAnnotations(pageNumber, annotationObject, '_annotations_sticky');\n };\n /**\n * @param annotation\n * @param pageNumber\n * @param annotation\n * @param pageNumber\n * @private\n */\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.updateStickyNotesAnnotationCollections = function (annotation, pageNumber) {\n // eslint-disable-next-line\n var annotationObject = null;\n if (!annotation.Author) {\n // eslint-disable-next-line max-len\n annotation.Author = (this.pdfViewer.annotationSettings.author !== 'Guest') ? this.pdfViewer.annotationSettings.author : this.pdfViewer.stickyNotesSettings.author;\n }\n // eslint-disable-next-line max-len\n var isLock = this.pdfViewer.stickyNotesSettings.isLock ? this.pdfViewer.stickyNotesSettings.isLock : this.pdfViewer.annotationSettings.isLock;\n // eslint-disable-next-line\n var allowedInteractions = annotation.AllowedInteraction ? annotation.AllowedInteraction : this.pdfViewer.annotationModule.updateAnnotationAllowedInteractions(annotation);\n if (annotation.IsLock) {\n isLock = annotation.isLock;\n }\n annotationObject = {\n // eslint-disable-next-line max-len\n shapeAnnotationType: 'sticky', author: annotation.Author, allowedInteractions: allowedInteractions, modifiedDate: annotation.ModifiedDate, subject: annotation.Subject, note: annotation.Note, opacity: annotation.Opacity, state: annotation.State, stateModel: annotation.StateModel,\n pathData: '', comments: this.pdfViewer.annotationModule.getAnnotationComments(annotation.Comments, annotation, annotation.Author), review: { state: annotation.State, stateModel: annotation.StateModel, modifiedDate: annotation.ModifiedDate, author: annotation.Author },\n // eslint-disable-next-line max-len\n bounds: { left: annotation.Bounds.X, top: annotation.Bounds.Y, width: annotation.Bounds.Width, height: annotation.Bounds.Height, right: annotation.Bounds.Right, bottom: annotation.Bounds.Bottom },\n annotationId: annotation.AnnotName, color: annotation.color, pageNumber: pageNumber,\n customData: this.pdfViewer.annotation.getCustomData(annotation),\n annotationSettings: { isLock: isLock }, isPrint: annotation.IsPrint, isCommentLock: annotation.IsCommentLock\n };\n return annotationObject;\n };\n /**\n * @private\n */\n StickyNotesAnnotation.prototype.clear = function () {\n this.commentsCount = 0;\n this.commentsreplyCount = 0;\n this.isAccordionContainer = true;\n this.isEditableElement = false;\n this.isCreateContextMenu = false;\n this.isPageCommentsRendered = false;\n this.isCommentsRendered = false;\n this.isAnnotationRendered = false;\n if (this.commentMenuObj) {\n this.commentMenuObj.destroy();\n }\n // eslint-disable-next-line\n var accordionPages = document.querySelectorAll('.e-pv-accordion-page-container');\n if (accordionPages) {\n for (var j = 0; j < accordionPages.length; j++) {\n // eslint-disable-next-line\n accordionPages[j].remove();\n }\n }\n if (this.commentsRequestHandler) {\n this.commentsRequestHandler.clear();\n }\n };\n /**\n * @private\n */\n StickyNotesAnnotation.prototype.getModuleName = function () {\n return 'StickyNotesAnnotation';\n };\n /**\n * This method used to add annotations with using program.\n *\n * @param annotationObject - It describes type of annotation object\n * @param offset - It describes about the annotation bounds or location\n * @returns Object\n * @private\n */\n StickyNotesAnnotation.prototype.updateAddAnnotationDetails = function (annotationObject, offset) {\n //Creating new object if annotationObject is null\n if (!annotationObject) {\n annotationObject = { offset: { x: 1, y: 1 }, pageNumber: 0 };\n offset = annotationObject.offset;\n }\n else if (!annotationObject.offset)\n offset = { x: 1, y: 1 };\n else\n offset = annotationObject.offset;\n //Creating the CurrentDate and Annotation name\n var currentDateString = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n var annotationName = this.pdfViewer.annotation.createGUID();\n //Creating annotation settings\n var annotationSelectorSettings = this.pdfViewer.stickyNotesSettings.annotationSelectorSettings ? this.pdfViewer.stickyNotesSettings.annotationSelectorSettings : this.pdfViewer.annotationSelectorSettings;\n var annotationSettings = this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.stickyNotesSettings);\n var allowedInteractions = this.pdfViewer.stickyNotesSettings.allowedInteractions ? this.pdfViewer.stickyNotesSettings.allowedInteractions : this.pdfViewer.annotationSettings.allowedInteractions;\n annotationSettings.isLock = annotationObject.isLock ? annotationObject.isLock : false;\n //Creating Annotation objects with it's proper properties\n var stickyNotesAnnotation = [];\n var stickyNotes = {\n AllowedInteractions: annotationObject.allowedInteractions ? annotationObject.allowedInteractions : allowedInteractions,\n AnnotName: annotationName,\n AnnotType: 'sticky',\n AnnotationFlags: null,\n AnnotationSelectorSettings: annotationObject.annotationSelectorSettings ? annotationObject.annotationSelectorSettings : annotationSelectorSettings,\n AnnotationSettings: annotationSettings,\n Author: annotationObject.author ? annotationObject.author : 'Guest',\n Bounds: { X: offset.x, Y: offset.y, Width: 30, Height: 30, Left: offset.x, Top: offset.y, Location: { X: offset.x, Y: offset.y }, Size: { Height: 30, IsEmpty: false, Width: 30 } },\n Color: { IsEmpty: false, B: 51, Blue: 0.2, C: 0, G: 255 },\n Comments: null,\n CreatedDate: currentDateString,\n CustomData: annotationObject.customData ? annotationObject.customData : null,\n ExistingCustomData: null,\n Icon: 'Comment',\n IsCommentLock: false,\n IsLock: annotationObject.isLock ? annotationObject.isLock : false,\n IsPrint: annotationObject.isPrint ? annotationObject.isPrint : true,\n ModifiedDate: '',\n Note: \"\",\n Opacity: annotationObject.opacity ? annotationObject.opacity : 1,\n Reference: null,\n Size: { IsEmpty: true, Width: 0, Height: 0 },\n State: \"\",\n StateModel: \"\",\n StrokeColor: null,\n SubType: null,\n Subject: 'Sticky Note',\n Type: null\n };\n //Adding the annotation object to an array and return it\n stickyNotesAnnotation[0] = stickyNotes;\n return { stickyNotesAnnotation: stickyNotesAnnotation };\n };\n /**\n * @private\n */\n StickyNotesAnnotation.prototype.getAnnotationType = function (type) {\n var annotationType;\n if (type === 'stamp' || type === 'Stamp') {\n annotationType = 'stamp';\n }\n else if (type === 'shape' || type === 'Line' || type === 'Radius' || type === 'Rectangle' || type === 'Ellipse'\n || type === 'Polygon' || type === 'LineWidthArrowHead' || type === 'Square' || type === 'Circle') {\n annotationType = 'shape';\n }\n else if (type === 'textMarkup') {\n annotationType = 'textMarkup';\n }\n else if (type === 'freeText' || type === 'FreeText') {\n annotationType = 'freeText';\n }\n else if (type === 'sticky' || type === 'StickyNotes') {\n annotationType = 'sticky';\n }\n else if (type === 'measure' || type === 'shape_measure') {\n annotationType = 'measure';\n }\n else if (type === 'ink' || type === 'Ink') {\n annotationType = 'ink';\n }\n return annotationType;\n };\n /**\n * @private\n */\n StickyNotesAnnotation.prototype.getAuthorName = function (annotation, commonDiv) {\n var author;\n if (annotation) {\n var type = annotation.shapeAnnotationType;\n var annotationType = this.getAnnotationType(type);\n author = this.pdfViewer.annotationModule.updateAnnotationAuthor(annotationType, type);\n }\n else {\n author = commonDiv.getAttribute('author');\n }\n return author;\n };\n return StickyNotesAnnotation;\n}());\nexport { StickyNotesAnnotation };\n","import { splitArrayCollection, processPathData, getPathString } from '@syncfusion/ej2-drawings';\nimport { Browser, isNullOrUndefined } from '@syncfusion/ej2-base';\nvar InkAnnotation = /** @class */ (function () {\n function InkAnnotation(pdfViewer, pdfViewerBase) {\n // eslint-disable-next-line\n this.newObject = [];\n /**\n * @private\n */\n this.outputString = '';\n /**\n * @private\n */\n // eslint-disable-next-line\n this.inkAnnotationindex = [];\n /**\n * @private\n */\n this.isAddAnnotationProgramatically = false;\n /**\n * @private\n */\n this.currentPageNumber = '';\n this.pdfViewer = pdfViewer;\n this.pdfViewerBase = pdfViewerBase;\n }\n /**\n * @private\n */\n InkAnnotation.prototype.drawInk = function () {\n this.pdfViewerBase.disableTextSelectionMode();\n this.pdfViewer.tool = 'Ink';\n };\n InkAnnotation.prototype.drawInkAnnotation = function (pageNumber) {\n if (this.pdfViewerBase.isToolbarInkClicked) {\n this.pdfViewerBase.isInkAdded = true;\n this.pdfViewer.annotationModule.isFormFieldShape = false;\n var pageIndex = !isNaN(pageNumber) ? pageNumber : this.pdfViewerBase.currentPageNumber - 1;\n if (this.outputString && this.outputString !== '') {\n var currentAnnot = this.addInk(pageIndex);\n this.pdfViewer.renderDrawing(undefined, pageIndex);\n this.pdfViewer.clearSelection(pageIndex);\n this.pdfViewer.select([currentAnnot.id], currentAnnot.annotationSelectorSettings);\n if (this.pdfViewer.toolbar && this.pdfViewer.toolbar.annotationToolbarModule) {\n this.pdfViewer.toolbar.annotationToolbarModule.enableSignaturePropertiesTools(true);\n }\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode && this.pdfViewer.enableToolbar && this.pdfViewer.enableAnnotationToolbar) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.createPropertyTools(\"Ink\");\n }\n }\n else {\n this.outputString = '';\n this.newObject = [];\n this.pdfViewerBase.isToolbarInkClicked = false;\n this.pdfViewer.tool = '';\n }\n this.pdfViewerBase.isInkAdded = false;\n }\n };\n /**\n * @private\n */\n InkAnnotation.prototype.storePathData = function () {\n this.convertToPath(this.newObject);\n this.newObject = [];\n };\n /**\n * @param position\n * @param pageIndex\n * @private\n */\n // eslint-disable-next-line\n InkAnnotation.prototype.drawInkInCanvas = function (position, pageIndex) {\n // eslint-disable-next-line\n if (this.currentPageNumber !== '' && parseInt(this.currentPageNumber) !== pageIndex) {\n // eslint-disable-next-line\n this.drawInkAnnotation(parseInt(this.currentPageNumber));\n this.pdfViewerBase.isToolbarInkClicked = true;\n this.pdfViewer.tool = 'Ink';\n }\n var zoom = this.pdfViewerBase.getZoomFactor();\n var ratio = this.pdfViewerBase.getWindowDevicePixelRatio();\n ;\n // eslint-disable-next-line\n var canvas = document.getElementById(this.pdfViewer.element.id + '_annotationCanvas_' + pageIndex);\n // eslint-disable-next-line\n var context = canvas.getContext('2d');\n var thickness = this.pdfViewer.inkAnnotationSettings.thickness ? this.pdfViewer.inkAnnotationSettings.thickness : 1;\n // eslint-disable-next-line max-len\n var opacity = this.pdfViewer.inkAnnotationSettings.opacity ? this.pdfViewer.inkAnnotationSettings.opacity : 1;\n // eslint-disable-next-line max-len\n var strokeColor = this.pdfViewer.inkAnnotationSettings.strokeColor ? this.pdfViewer.inkAnnotationSettings.strokeColor : '#ff0000';\n if (!Browser.isDevice || (Browser.isDevice && zoom <= 0.7)) {\n context.setTransform(ratio, 0, 0, ratio, 0, 0);\n }\n context.beginPath();\n context.lineJoin = 'round';\n context.lineCap = 'round';\n context.moveTo(position.prevPosition.x, position.prevPosition.y);\n context.lineTo(position.currentPosition.x, position.currentPosition.y);\n context.lineWidth = thickness * zoom > 1 ? thickness * zoom : thickness;\n context.strokeStyle = strokeColor;\n context.globalAlpha = opacity;\n context.stroke();\n // context.lineWidth = 2;\n context.arc(position.prevPosition.x, position.prevPosition.y, 2 / 2, 0, Math.PI * 2, true);\n context.closePath();\n this.pdfViewerBase.prevPosition = position.currentPosition;\n this.newObject.push(position.currentPosition.x, position.currentPosition.y);\n this.currentPageNumber = pageIndex.toString();\n };\n // eslint-disable-next-line\n InkAnnotation.prototype.convertToPath = function (newObject) {\n this.movePath(newObject[0], newObject[1]);\n this.linePath(newObject[0], newObject[1]);\n for (var n = 2; n < newObject.length; n = n + 2) {\n this.linePath(newObject[n], newObject[n + 1]);\n }\n };\n InkAnnotation.prototype.linePath = function (x, y) {\n if (!isNullOrUndefined(x) && !isNullOrUndefined(y)) {\n this.outputString += 'L' + x + ',' + y + ' ';\n }\n };\n InkAnnotation.prototype.movePath = function (x, y) {\n if (!isNullOrUndefined(x) && !isNullOrUndefined(y)) {\n this.outputString += 'M' + x + ',' + y + ' ';\n }\n };\n /**\n * @param pageNumber\n * @private\n */\n // eslint-disable-next-line\n InkAnnotation.prototype.addInk = function (pageNumber) {\n // eslint-disable-next-line\n var currentBounds = this.calculateInkSize();\n var zoomvalue = this.pdfViewerBase.getZoomFactor();\n // eslint-disable-next-line\n var annot;\n if (this.pdfViewerBase.isToolbarInkClicked) {\n var annotationName = this.pdfViewer.annotation.createGUID();\n var modifiedDate = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n var pageIndex = !isNaN(pageNumber) ? pageNumber : this.pdfViewerBase.currentPageNumber - 1;\n var thickness = this.pdfViewer.inkAnnotationSettings.thickness ? this.pdfViewer.inkAnnotationSettings.thickness : 1;\n // eslint-disable-next-line max-len\n var opacity = this.pdfViewer.inkAnnotationSettings.opacity ? this.pdfViewer.inkAnnotationSettings.opacity : 1;\n // eslint-disable-next-line max-len\n var strokeColor = this.pdfViewer.inkAnnotationSettings.strokeColor ? this.pdfViewer.inkAnnotationSettings.strokeColor : '#ff0000';\n // eslint-disable-next-line\n var isLock = this.pdfViewer.inkAnnotationSettings.isLock ? this.pdfViewer.inkAnnotationSettings.isLock : this.pdfViewer.annotationSettings.isLock;\n var author = (this.pdfViewer.annotationSettings.author !== 'Guest') ? this.pdfViewer.annotationSettings.author : this.pdfViewer.inkAnnotationSettings.author ? this.pdfViewer.inkAnnotationSettings.author : 'Guest';\n var customData = this.pdfViewer.inkAnnotationSettings.customData;\n var isPrint = this.pdfViewer.inkAnnotationSettings.isPrint;\n // eslint-disable-next-line\n var allowedInteractions = this.pdfViewer.inkAnnotationSettings.allowedInteractions ? this.pdfViewer.inkAnnotationSettings.allowedInteractions : this.pdfViewer.annotationSettings.allowedInteractions;\n // eslint-disable-next-line\n var annotationSettings = this.pdfViewer.inkAnnotationSettings ? this.pdfViewer.inkAnnotationSettings : this.pdfViewer.annotationSettings;\n annot = {\n // eslint-disable-next-line max-len\n id: 'ink' + this.pdfViewerBase.inkCount, bounds: { x: currentBounds.x, y: currentBounds.y, width: currentBounds.width, height: currentBounds.height }, pageIndex: pageIndex, data: this.outputString, customData: customData,\n shapeAnnotationType: 'Ink', opacity: opacity, strokeColor: strokeColor, thickness: thickness, annotName: annotationName, comments: [],\n author: author, subject: 'Ink', notes: '',\n review: { state: '', stateModel: '', modifiedDate: modifiedDate, author: author },\n annotationSelectorSettings: this.getSelector('Ink', ''), modifiedDate: modifiedDate, annotationSettings: annotationSettings,\n isPrint: isPrint, allowedInteractions: allowedInteractions, isCommentLock: false, isLocked: isLock\n };\n var annotation = this.pdfViewer.add(annot);\n // eslint-disable-next-line\n var bounds = { left: annot.bounds.x, top: annot.bounds.y, width: annot.bounds.width, height: annot.bounds.height };\n // eslint-disable-next-line\n var settings = {\n opacity: annot.opacity, strokeColor: annot.strokeColor, thickness: annot.thickness, modifiedDate: annot.modifiedDate,\n width: annot.bounds.width, height: annot.bounds.height, data: this.outputString\n };\n this.pdfViewerBase.inkCount++;\n // eslint-disable-next-line max-len\n var commentsDivid = this.pdfViewer.annotation.stickyNotesAnnotationModule.addComments('ink', (annot.pageIndex + 1), annot.shapeAnnotationType);\n if (commentsDivid) {\n document.getElementById(commentsDivid).id = annotationName;\n }\n annot.annotName = annotationName;\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(pageIndex, null, annotation, 'Addition', '', annotation, annotation);\n this.pdfViewer.annotationModule.storeAnnotations(pageIndex, annot, '_annotations_ink');\n this.pdfViewer.fireAnnotationAdd(annot.pageIndex, annot.annotName, 'Ink', bounds, settings);\n if (this.pdfViewerBase.isInkAdded) {\n this.outputString = '';\n this.newObject = [];\n }\n this.pdfViewerBase.isToolbarInkClicked = false;\n this.pdfViewer.tool = '';\n }\n return annot;\n };\n /**\n * @private\n */\n InkAnnotation.prototype.setAnnotationMode = function () {\n if (this.pdfViewerBase.isToolbarInkClicked) {\n this.drawInkAnnotation();\n }\n else {\n this.pdfViewerBase.isToolbarInkClicked = true;\n this.drawInk();\n }\n };\n InkAnnotation.prototype.saveInkSignature = function () {\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_ink');\n // eslint-disable-next-line\n var annotations = new Array();\n for (var j = 0; j < this.pdfViewerBase.pageCount; j++) {\n annotations[j] = [];\n }\n if (storeObject) {\n var annotationCollection = JSON.parse(storeObject);\n for (var i = 0; i < annotationCollection.length; i++) {\n // eslint-disable-next-line\n var newArray = [];\n var pageAnnotationObject = annotationCollection[i];\n if (pageAnnotationObject) {\n for (var z = 0; pageAnnotationObject.annotations.length > z; z++) {\n this.pdfViewer.annotationModule.updateModifiedDate(pageAnnotationObject.annotations[z]);\n // eslint-disable-next-line max-len\n var strokeColorString = pageAnnotationObject.annotations[z].strokeColor;\n pageAnnotationObject.annotations[z].strokeColor = JSON.stringify(this.pdfViewerBase.signatureModule.getRgbCode(strokeColorString));\n pageAnnotationObject.annotations[z].bounds = JSON.stringify(this.pdfViewer.annotation.getInkBounds(pageAnnotationObject.annotations[z].bounds, pageAnnotationObject.pageIndex));\n // eslint-disable-next-line\n var collectionData = processPathData(pageAnnotationObject.annotations[z].data);\n // eslint-disable-next-line\n var csData = splitArrayCollection(collectionData);\n pageAnnotationObject.annotations[z].data = JSON.stringify(csData);\n }\n newArray = pageAnnotationObject.annotations;\n }\n annotations[pageAnnotationObject.pageIndex] = newArray;\n }\n }\n return JSON.stringify(annotations);\n };\n /**\n * @param pageNumber\n * @param annotationBase\n * @param pageNumber\n * @param annotationBase\n * @private\n */\n // eslint-disable-next-line\n InkAnnotation.prototype.addInCollection = function (pageNumber, annotationBase) {\n if (annotationBase) {\n // eslint-disable-next-line\n var pageAnnotations = this.getAnnotations(pageNumber, null);\n if (pageAnnotations) {\n pageAnnotations.push(annotationBase);\n }\n this.manageInkAnnotations(pageAnnotations, pageNumber);\n }\n };\n // eslint-disable-next-line\n InkAnnotation.prototype.calculateInkSize = function () {\n var minimumX = -1;\n var minimumY = -1;\n var maximumX = -1;\n var maximumY = -1;\n // eslint-disable-next-line\n var collectionData = processPathData(this.outputString);\n var zoomvalue = this.pdfViewerBase.getZoomFactor();\n // eslint-disable-next-line\n for (var k = 0; k < collectionData.length; k++) {\n // eslint-disable-next-line\n var val = collectionData[k];\n if (minimumX === -1) {\n // eslint-disable-next-line\n minimumX = (val['x']);\n // eslint-disable-next-line\n maximumX = (val['x']);\n // eslint-disable-next-line\n minimumY = (val['y']);\n // eslint-disable-next-line\n maximumY = (val['y']);\n }\n else {\n // eslint-disable-next-line\n var point1 = (val['x']);\n // eslint-disable-next-line\n var point2 = (val['y']);\n if (minimumX >= point1) {\n minimumX = point1;\n }\n if (minimumY >= point2) {\n minimumY = point2;\n }\n if (maximumX <= point1) {\n maximumX = point1;\n }\n if (maximumY <= point2) {\n maximumY = point2;\n }\n }\n }\n var newdifferenceX = maximumX - minimumX;\n var newdifferenceY = maximumY - minimumY;\n // eslint-disable-next-line max-len\n return { x: (minimumX / zoomvalue), y: (minimumY / zoomvalue), width: (newdifferenceX / zoomvalue), height: (newdifferenceY / zoomvalue) };\n };\n /**\n * @param annotationCollection\n * @param pageIndex\n * @param isImport\n * @private\n */\n // eslint-disable-next-line\n InkAnnotation.prototype.renderExistingInkSignature = function (annotationCollection, pageIndex, isImport) {\n var annot;\n var isinkAnnotationAdded = false;\n if (!isImport) {\n for (var p = 0; p < this.inkAnnotationindex.length; p++) {\n if (this.inkAnnotationindex[p] === pageIndex) {\n isinkAnnotationAdded = true;\n break;\n }\n }\n }\n if (annotationCollection && !isinkAnnotationAdded) {\n if (annotationCollection.length > 0 && this.inkAnnotationindex.indexOf(pageIndex) === -1) {\n this.inkAnnotationindex.push(pageIndex);\n }\n for (var n = 0; n < annotationCollection.length; n++) {\n // eslint-disable-next-line\n var currentAnnotation = annotationCollection[n];\n if (currentAnnotation) {\n // eslint-disable-next-line\n var data = currentAnnotation.PathData;\n if (isImport && data) {\n if (typeof (data) === 'object' && data.length > 1) {\n data = getPathString(data);\n }\n else {\n if (currentAnnotation.IsPathData || (data.split('command').length <= 1)) {\n data = data;\n }\n else {\n data = getPathString(JSON.parse(data));\n }\n }\n }\n this.outputString = data;\n // eslint-disable-next-line\n var calculateInkPosition = this.calculateInkSize();\n this.outputString = '';\n var rectDiff = 0;\n var rectDifference = 1;\n // eslint-disable-next-line\n var bounds = currentAnnotation.Bounds;\n if (calculateInkPosition) {\n if (calculateInkPosition.height < 1) {\n rectDiff = bounds.Height ? bounds.Height : bounds.height;\n rectDifference = bounds.Height ? bounds.Height : bounds.height;\n }\n else if (calculateInkPosition.width < 1) {\n rectDiff = bounds.Width ? bounds.Width : bounds.width;\n rectDifference = bounds.Width ? bounds.Width : bounds.width;\n }\n }\n var currentLeft = !isNullOrUndefined(bounds.X) ? bounds.X + (rectDiff / 2) : bounds.x + (rectDiff / 2);\n var currentTop = !isNullOrUndefined(bounds.Y) ? bounds.Y + (rectDiff / 2) : bounds.y + (rectDiff / 2);\n var currentWidth = bounds.Width ? bounds.Width - (rectDifference - 1) : bounds.width - (rectDifference - 1);\n var currentHeight = bounds.Height ? bounds.Height - (rectDifference - 1) : bounds.height - (rectDifference - 1);\n var isLock = currentAnnotation.AnnotationSettings ? currentAnnotation.AnnotationSettings.isLock : false;\n // eslint-disable-next-line\n var selectorSettings = currentAnnotation.AnnotationSelectorSettings ? currentAnnotation.AnnotationSelectorSettings : this.getSelector(currentAnnotation, 'Ink');\n var customData = this.pdfViewer.annotation.getCustomData(currentAnnotation);\n var isPrint = true;\n if (currentAnnotation.AnnotationSettings) {\n isPrint = currentAnnotation.AnnotationSettings.isPrint;\n }\n else {\n isPrint = this.pdfViewer.inkAnnotationSettings.isPrint;\n }\n if (currentAnnotation.IsLocked) {\n isLock = currentAnnotation.IsLocked;\n }\n if (currentAnnotation.Subject === 'Highlight' && currentAnnotation.Opacity === 1) {\n currentAnnotation.Opacity = currentAnnotation.Opacity / 2;\n }\n // eslint-disable-next-line max-len\n currentAnnotation.allowedInteractions = currentAnnotation.AllowedInteractions ? currentAnnotation.AllowedInteractions : this.pdfViewer.annotationModule.updateAnnotationAllowedInteractions(currentAnnotation);\n annot = {\n // eslint-disable-next-line max-len\n id: 'ink' + this.pdfViewerBase.inkCount, bounds: { x: currentLeft, y: currentTop, width: currentWidth, height: currentHeight }, pageIndex: pageIndex, data: data,\n shapeAnnotationType: 'Ink', opacity: currentAnnotation.Opacity, strokeColor: currentAnnotation.StrokeColor, thickness: currentAnnotation.Thickness, annotName: currentAnnotation.AnnotName,\n // eslint-disable-next-line max-len\n comments: this.pdfViewer.annotationModule.getAnnotationComments(currentAnnotation.Comments, currentAnnotation, currentAnnotation.Author), author: currentAnnotation.Author, allowedInteractions: currentAnnotation.allowedInteractions, subject: currentAnnotation.Subject, modifiedDate: currentAnnotation.ModifiedDate,\n // eslint-disable-next-line max-len\n review: { state: '', stateModel: '', modifiedDate: currentAnnotation.ModifiedDate, author: currentAnnotation.Author }, notes: currentAnnotation.Note, annotationSettings: { isLock: isLock },\n annotationSelectorSettings: selectorSettings, customData: customData, isPrint: isPrint, isCommentLock: currentAnnotation.IsCommentLock\n };\n this.pdfViewer.add(annot);\n // eslint-disable-next-line\n var canvass = document.getElementById(this.pdfViewer.element.id + '_annotationCanvas_' + currentAnnotation.pageIndex);\n // eslint-disable-next-line\n this.pdfViewer.renderDrawing(canvass, annot.pageIndex);\n this.pdfViewer.annotationModule.storeAnnotations(annot.pageIndex, annot, '_annotations_ink');\n if (this.isAddAnnotationProgramatically) {\n var settings = {\n opacity: annot.opacity, strokeColor: annot.strokeColor, thickness: annot.thickness, modifiedDate: annot.modifiedDate,\n width: annot.bounds.width, height: annot.bounds.height, data: this.outputString\n };\n this.pdfViewer.fireAnnotationAdd(annot.pageIndex, annot.annotName, 'Ink', bounds, settings);\n }\n this.pdfViewerBase.currentSignatureAnnot = null;\n this.pdfViewerBase.signatureCount++;\n this.pdfViewerBase.inkCount++;\n // eslint-disable-next-line max-len\n if (this.pdfViewerBase.navigationPane && this.pdfViewerBase.navigationPane.annotationMenuObj && this.pdfViewer.isSignatureEditable) {\n // eslint-disable-next-line max-len\n this.pdfViewerBase.navigationPane.annotationMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Export Annotations')], true);\n // eslint-disable-next-line max-len\n this.pdfViewerBase.navigationPane.annotationMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Export XFDF')], true);\n }\n }\n }\n }\n };\n // To save the imported annotations while downloading or exporting for the page above 10 without a scroll (EJ2-63924)\n /**\n * @private\n */\n InkAnnotation.prototype.saveImportedInkAnnotation = function (annotation, pageNumber) {\n var annotationObject = null;\n var currentBounds = annotation.Bounds;\n var bounds = { x: currentBounds.X, y: currentBounds.Y, width: currentBounds.Width, height: currentBounds.Height };\n var allowedInteractions = this.pdfViewer.annotationModule.updateAnnotationAllowedInteractions(annotation);\n var customData = this.pdfViewer.annotation.getCustomData(annotation);\n var comments = this.pdfViewer.annotationModule.getAnnotationComments(annotation.Comments, annotation, annotation.Author);\n var review = { state: annotation.State, stateModel: annotation.StateModel, modifiedDate: annotation.ModifiedDate, author: annotation.Author };\n var annotationSettings = annotation.AnnotationSettings ? annotation.AnnotationSettings : this.pdfViewer.annotationModule.updateAnnotationSettings(annotation);\n var annotationSelectorSettings = this.getSettings(annotation);\n var data = annotation.PathData;\n if (typeof (data) === 'object' && data.length > 1) {\n data = getPathString(data);\n }\n else {\n if (annotation.IsPathData || (data.split('command').length <= 1)) {\n data = data;\n }\n else {\n data = getPathString(JSON.parse(data));\n }\n }\n annotationObject = {\n allowedInteractions: allowedInteractions, annotName: annotation.AnnotName, annotationSelectorSettings: annotationSelectorSettings,\n annotationSettings: annotationSettings, author: annotation.Author, bounds: bounds, customData: customData, comments: comments, data: data,\n id: \"Ink\", isCommentLock: annotation.IsCommentLock, isLocked: annotation.IsLocked, isPrint: annotation.IsPrint, modifiedDate: annotation.ModifiedDate,\n note: annotation.Note, opacity: annotation.Opacity, pageIndex: pageNumber, review: review, shapeAnnotationType: annotation.AnnotationType,\n strokeColor: annotation.StrokeColor, subject: annotation.Subject, thickness: annotation.Thickness\n };\n this.pdfViewer.annotationModule.storeAnnotations(pageNumber, annotationObject, '_annotations_ink');\n };\n // To get the annotation selector settings \n InkAnnotation.prototype.getSettings = function (annotation) {\n var selector = this.pdfViewer.annotationSelectorSettings;\n if (annotation.AnnotationSelectorSettings) {\n selector = annotation.AnnotationSelectorSettings;\n }\n else {\n selector = this.getSelector(annotation.ShapeAnnotationType, annotation.Subject);\n }\n return selector;\n };\n /**\n * @param pageNumber\n * @param annotations\n * @private\n */\n // eslint-disable-next-line\n InkAnnotation.prototype.storeInkSignatureData = function (pageNumber, annotations) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(annotations.pageIndex, null, annotations, 'Addition', '', annotations, annotations);\n // eslint-disable-next-line\n var annotation = null;\n var left = annotations.bounds.left ? annotations.bounds.left : annotations.bounds.x;\n var top = annotations.bounds.top ? annotations.bounds.top : annotations.bounds.y;\n if (annotations.wrapper && annotations.wrapper.bounds) {\n left = annotations.wrapper.bounds.left;\n top = annotations.wrapper.bounds.top;\n }\n annotation = {\n // eslint-disable-next-line max-len\n id: annotations.id, bounds: { x: left, y: top, width: annotations.bounds.width, height: annotations.bounds.height },\n // eslint-disable-next-line max-len\n shapeAnnotationType: 'Ink', opacity: annotations.opacity, thickness: annotations.thickness, strokeColor: annotations.strokeColor, pageIndex: annotations.pageIndex, data: annotations.data,\n annotName: annotations.annotName,\n // eslint-disable-next-line max-len\n comments: annotations.comments, author: annotations.author, subject: annotations.subject, modifiedDate: annotations.modifiedDate,\n // eslint-disable-next-line max-len\n review: { state: '', stateModel: '', modifiedDate: annotations.modifiedDate, author: annotations.author }, notes: annotations.notes,\n annotationSelectorSettings: this.getSelector(annotations, 'Ink'), isCommentLock: annotations.isCommentLock\n };\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_ink');\n var index = 0;\n if (!storeObject) {\n var shapeAnnotation = { pageIndex: pageNumber, annotations: [] };\n shapeAnnotation.annotations.push(annotation);\n index = shapeAnnotation.annotations.indexOf(annotation);\n var annotationCollection = [];\n annotationCollection.push(shapeAnnotation);\n var annotationStringified = JSON.stringify(annotationCollection);\n window.sessionStorage.setItem(this.pdfViewerBase.documentId + '_annotations_ink', annotationStringified);\n }\n else {\n var annotObject = JSON.parse(storeObject);\n window.sessionStorage.removeItem(this.pdfViewerBase.documentId + '_annotations_ink');\n var pageIndex = this.pdfViewer.annotationModule.getPageCollection(annotObject, pageNumber);\n if (annotObject[pageIndex]) {\n annotObject[pageIndex].annotations.push(annotation);\n index = annotObject[pageIndex].annotations.indexOf(annotation);\n }\n else {\n var markupAnnotation = { pageIndex: pageNumber, annotations: [] };\n markupAnnotation.annotations.push(annotation);\n index = markupAnnotation.annotations.indexOf(annotation);\n annotObject.push(markupAnnotation);\n }\n var annotationStringified = JSON.stringify(annotObject);\n window.sessionStorage.setItem(this.pdfViewerBase.documentId + '_annotations_ink', annotationStringified);\n }\n };\n InkAnnotation.prototype.getSelector = function (type, subject) {\n var selector = this.pdfViewer.annotationSelectorSettings;\n if (type === 'Ink' && this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings) {\n selector = this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings;\n }\n return selector;\n };\n // eslint-disable-next-line\n InkAnnotation.prototype.getAnnotations = function (pageIndex, shapeAnnotations) {\n // eslint-disable-next-line\n var annotationCollection;\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_ink');\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n var index = this.pdfViewer.annotationModule.getPageCollection(annotObject, pageIndex);\n if (annotObject[index]) {\n annotationCollection = annotObject[index].annotations;\n }\n else {\n annotationCollection = shapeAnnotations;\n }\n }\n else {\n annotationCollection = shapeAnnotations;\n }\n return annotationCollection;\n };\n /**\n * @param property\n * @param pageNumber\n * @param annotationBase\n * @param property\n * @param pageNumber\n * @param annotationBase\n * @private\n */\n // eslint-disable-next-line\n InkAnnotation.prototype.modifySignatureInkCollection = function (property, pageNumber, annotationBase) {\n if (!isNullOrUndefined(annotationBase.formFieldAnnotationType) && annotationBase.formFieldAnnotationType !== \"\") {\n this.pdfViewer.annotationModule.isFormFieldShape = true;\n }\n else {\n this.pdfViewer.annotationModule.isFormFieldShape = false;\n }\n this.pdfViewerBase.updateDocumentEditedProperty(true);\n // eslint-disable-next-line\n var currentAnnotObject = null;\n // eslint-disable-next-line\n var pageAnnotations = this.getAnnotations(pageNumber, null);\n if (pageAnnotations != null && annotationBase) {\n for (var i = 0; i < pageAnnotations.length; i++) {\n if (annotationBase.id === pageAnnotations[i].id) {\n if (property === 'bounds') {\n // eslint-disable-next-line max-len\n pageAnnotations[i].bounds = { x: annotationBase.wrapper.bounds.left, y: annotationBase.wrapper.bounds.top, width: annotationBase.bounds.width, height: annotationBase.bounds.height };\n }\n else if (property === 'stroke') {\n pageAnnotations[i].strokeColor = annotationBase.wrapper.children[0].style.strokeColor;\n }\n else if (property === 'opacity') {\n pageAnnotations[i].opacity = annotationBase.wrapper.children[0].style.opacity;\n }\n else if (property === 'thickness') {\n pageAnnotations[i].thickness = annotationBase.wrapper.children[0].style.strokeWidth;\n }\n else if (property === 'notes') {\n pageAnnotations[i].notes = annotationBase.notes;\n }\n else if (property === 'delete') {\n currentAnnotObject = pageAnnotations.splice(i, 1)[0];\n break;\n }\n pageAnnotations[i].modifiedDate = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n this.pdfViewer.annotationModule.storeAnnotationCollections(pageAnnotations[i], pageNumber);\n }\n }\n this.manageInkAnnotations(pageAnnotations, pageNumber);\n }\n return currentAnnotObject;\n };\n // eslint-disable-next-line\n InkAnnotation.prototype.manageInkAnnotations = function (pageAnnotations, pageNumber) {\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_ink');\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n window.sessionStorage.removeItem(this.pdfViewerBase.documentId + '_annotations_ink');\n var index = this.pdfViewer.annotationModule.getPageCollection(annotObject, pageNumber);\n if (annotObject[index]) {\n annotObject[index].annotations = pageAnnotations;\n }\n var annotationStringified = JSON.stringify(annotObject);\n window.sessionStorage.setItem(this.pdfViewerBase.documentId + '_annotations_ink', annotationStringified);\n }\n };\n /**\n * @param currentAnnotation\n * @param pageIndex\n * @param isImport\n * @param currentAnnotation\n * @param pageIndex\n * @param isImport\n * @private\n */\n // eslint-disable-next-line\n InkAnnotation.prototype.updateInkCollections = function (currentAnnotation, pageIndex, isImport) {\n // eslint-disable-next-line\n var annot;\n // eslint-disable-next-line\n if (currentAnnotation) {\n // eslint-disable-next-line\n var bounds = currentAnnotation.Bounds;\n var currentLeft = (bounds.X);\n var currentTop = (bounds.Y);\n var currentWidth = (bounds.Width);\n var currentHeight = (bounds.Height);\n var customData = currentAnnotation.customData;\n var isPrint = currentAnnotation.isPrint;\n // eslint-disable-next-line\n var allowedInteractions = currentAnnotation.AllowedInteractions ? currentAnnotation.AllowedInteractions : this.pdfViewer.annotationModule.updateAnnotationAllowedInteractions(currentAnnotation);\n // eslint-disable-next-line\n var annotationSettings = currentAnnotation.AnnotationSettings ? currentAnnotation.AnnotationSettings : this.pdfViewer.inkAnnotationSettings ? this.pdfViewer.inkAnnotationSettings : this.pdfViewer.annotationSettings;\n if (currentAnnotation.IsLocked) {\n annotationSettings.isLock = currentAnnotation.IsLocked;\n }\n // eslint-disable-next-line\n var data = currentAnnotation.PathData;\n if (isImport) {\n data = getPathString(JSON.parse(currentAnnotation.PathData));\n }\n annot = {\n // eslint-disable-next-line max-len\n id: 'ink' + this.pdfViewerBase.signatureCount, bounds: { x: currentLeft, y: currentTop, width: currentWidth, height: currentHeight }, pageIndex: pageIndex, data: data,\n // eslint-disable-next-line max-len\n shapeAnnotationType: 'Ink', opacity: currentAnnotation.Opacity, strokeColor: currentAnnotation.StrokeColor, thickness: currentAnnotation.Thickness, annotationId: currentAnnotation.AnnotName,\n // eslint-disable-next-line max-len\n customData: customData, comments: this.pdfViewer.annotationModule.getAnnotationComments(currentAnnotation.Comments, currentAnnotation, currentAnnotation.Author), author: currentAnnotation.Author, allowedInteractions: allowedInteractions, subject: currentAnnotation.Subject, modifiedDate: currentAnnotation.ModifiedDate,\n review: { state: '', stateModel: '', modifiedDate: currentAnnotation.ModifiedDate, author: currentAnnotation.Author }, notes: currentAnnotation.Note, isPrint: isPrint, isCommentLock: currentAnnotation.IsCommentLock, annotationSettings: annotationSettings, isLocked: annotationSettings.isLock\n };\n return annot;\n }\n };\n /**\n * This method used to add annotations with using program.\n *\n * @param annotationObject - It describes type of annotation object\n * @param offset - It describes about the annotation bounds or location\n * @param pageNumber - It describes about the annotation page number\n * @returns Object\n * @private\n */\n InkAnnotation.prototype.updateAddAnnotationDetails = function (annotationObject, offset, pageNumber) {\n //Creating new object if annotationObject is null\n if (!annotationObject) {\n annotationObject = { offset: { x: 10, y: 10 }, pageNumber: 0, width: undefined, height: undefined };\n offset = annotationObject.offset;\n }\n else if (!annotationObject.offset)\n offset = { x: 10, y: 10 };\n else\n offset = annotationObject.offset;\n //Creating the CurrentDate and Annotation name\n var currentDateString = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n var annotationName = this.pdfViewer.annotation.createGUID();\n //Creating annotation settings\n var annotationSelectorSettings = this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings ? this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings : this.pdfViewer.annotationSelectorSettings;\n var annotationSettings = this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.inkAnnotationSettings);\n var allowedInteractions = this.pdfViewer.inkAnnotationSettings.allowedInteractions ? this.pdfViewer.inkAnnotationSettings.allowedInteractions : this.pdfViewer.annotationSettings.allowedInteractions;\n annotationSettings.isLock = annotationObject.isLock ? annotationObject.isLock : false;\n annotationObject.width = annotationObject.width ? annotationObject.width : 150;\n annotationObject.height = annotationObject.height ? annotationObject.height : 60;\n var pathData = annotationObject.path ? annotationObject.path : '';\n if (!isNullOrUndefined(pathData)) {\n // Check whether the given path of the ink annotation is starts with Move path or Line path. \n if (pathData[0] === 'M' || pathData[0] === 'L') {\n var collectionData = processPathData(pathData);\n var csData = splitArrayCollection(collectionData);\n pathData = JSON.stringify(csData);\n }\n else {\n pathData = getPathString(JSON.parse(pathData));\n }\n }\n annotationObject.path = pathData;\n //Creating Annotation objects with it's proper properties\n var signatureInkAnnotation = [];\n var ink = {\n AllowedInteractions: annotationObject.allowedInteractions ? annotationObject.allowedInteractions : allowedInteractions,\n AnnotName: annotationName,\n AnnotType: 'ink',\n AnnotationFlags: null,\n AnnotationSelectorSettings: annotationObject.annotationSelectorSettings ? annotationObject.annotationSelectorSettings : annotationSelectorSettings,\n AnnotationSettings: annotationSettings,\n AnnotationType: 'Ink',\n Author: annotationObject.author ? annotationObject.author : 'Guest',\n Bounds: { X: offset.x, Y: offset.y, Width: annotationObject.width, Height: annotationObject.height, Left: offset.x, Top: offset.y, Location: { X: offset.x, Y: offset.y }, Size: { Height: annotationObject.height, IsEmpty: false, Width: annotationObject.width } },\n Comments: null,\n CreatedDate: currentDateString,\n CustomData: annotationObject.customData ? annotationObject.customData : null,\n ExistingCustomData: null,\n IsCommentLock: false,\n IsLock: annotationObject.isLock ? annotationObject.isLock : false,\n IsPrint: annotationObject.isPrint ? annotationObject.isPrint : true,\n ModifiedDate: '',\n Note: '',\n Opacity: annotationObject.opacity ? annotationObject.opacity : 1,\n PathData: annotationObject.path,\n PageNumber: pageNumber,\n State: '',\n StateModel: '',\n StrokeColor: annotationObject.strokeColor ? annotationObject.strokeColor : 'rgba(255,0,0,1)',\n SubType: null,\n Subject: 'Ink',\n Type: null,\n Thickness: annotationObject.thickness ? annotationObject.thickness : 1\n };\n //Adding the annotation object to an array and return it\n signatureInkAnnotation[0] = ink;\n return { signatureInkAnnotation: signatureInkAnnotation };\n };\n return InkAnnotation;\n}());\nexport { InkAnnotation };\n","/* eslint-disable */\nimport { FontStyle } from './../base/types';\nimport { isBlazor, isNullOrUndefined } from '@syncfusion/ej2-base';\n/**\n * @hidden\n */\nvar FreeTextAnnotation = /** @class */ (function () {\n function FreeTextAnnotation(pdfviewer, pdfViewerBase) {\n /**\n * @private\n */\n this.inputBoxCount = 0;\n /**\n * @private\n */\n this.isFreeTextValueChange = false;\n /**\n * @private\n */\n this.isAddAnnotationProgramatically = false;\n /**\n * @private\n */\n this.isInuptBoxInFocus = false;\n /**\n * @private\n */\n // eslint-disable-next-line\n this.freeTextPageNumbers = [];\n /**\n * @private\n */\n this.selectedText = '';\n /**\n * @private\n */\n this.isTextSelected = false;\n this.selectionStart = 0;\n this.selectionEnd = 0;\n /**\n * @private\n */\n this.isBold = false;\n /**\n * @private\n */\n this.isItalic = false;\n /**\n * @private\n */\n this.isUnderline = false;\n /**\n * @private\n */\n this.isStrikethrough = false;\n this.isReadonly = false;\n this.isMaximumWidthReached = false;\n this.freeTextPaddingLeft = 4;\n this.freeTextPaddingTop = 5;\n this.defaultFontSize = 16;\n /**\n * @private\n */\n this.previousText = 'Type Here';\n /**\n * @private\n */\n this.currentPosition = [];\n this.pdfViewer = pdfviewer;\n this.pdfViewerBase = pdfViewerBase;\n this.updateTextProperties();\n this.inputBoxElement = document.createElement('textarea');\n this.inputBoxElement.style.position = 'absolute';\n this.inputBoxElement.style.Width = this.defautWidth;\n this.inputBoxElement.style.Height = this.defaultHeight;\n this.inputBoxElement.style.zIndex = '5';\n this.inputBoxElement.style.fontSize = this.fontSize + 'px';\n this.inputBoxElement.className = 'free-text-input';\n this.inputBoxElement.style.resize = 'none';\n this.inputBoxElement.style.borderColor = this.borderColor;\n this.inputBoxElement.style.background = this.fillColor;\n this.inputBoxElement.style.borderStyle = this.borderStyle;\n this.inputBoxElement.style.borderWidth = this.borderWidth + 'px';\n this.inputBoxElement.style.padding = this.padding;\n this.inputBoxElement.style.paddingLeft = this.freeTextPaddingLeft + 'px';\n this.inputBoxElement.style.paddingTop = this.freeTextPaddingTop * (parseFloat(this.inputBoxElement.style.fontSize) / this.defaultFontSize) + 'px';\n this.inputBoxElement.style.borderRadius = '2px';\n this.inputBoxElement.style.verticalAlign = 'middle';\n this.inputBoxElement.style.fontFamily = this.fontFamily;\n this.inputBoxElement.style.color = this.pdfViewer.freeTextSettings.fontColor ?\n this.pdfViewer.freeTextSettings.fontColor : '#000';\n this.inputBoxElement.style.overflow = 'hidden';\n this.inputBoxElement.style.wordBreak = this.wordBreak;\n this.inputBoxElement.readOnly = this.isReadonly;\n this.inputBoxElement.addEventListener('focusout', this.onFocusOutInputBox.bind(this));\n this.inputBoxElement.addEventListener('keydown', this.onKeyDownInputBox.bind(this));\n this.inputBoxElement.addEventListener('mouseup', this.onMouseUpInputBox.bind(this));\n this.freeTextPageNumbers = [];\n }\n /**\n * @private\n */\n FreeTextAnnotation.prototype.updateTextProperties = function () {\n this.defautWidth = this.pdfViewer.freeTextSettings.width ? this.pdfViewer.freeTextSettings.width : 151;\n this.defaultHeight = this.pdfViewer.freeTextSettings.height ? this.pdfViewer.freeTextSettings.height : 24.6;\n this.borderColor = this.pdfViewer.freeTextSettings.borderColor ? this.pdfViewer.freeTextSettings.borderColor : '#ffffff00';\n this.fillColor = this.pdfViewer.freeTextSettings.fillColor ? this.pdfViewer.freeTextSettings.fillColor : '#fff';\n this.borderStyle = this.pdfViewer.freeTextSettings.borderStyle ? this.pdfViewer.freeTextSettings.borderStyle : 'solid';\n this.borderWidth = this.pdfViewer.freeTextSettings.borderWidth ? this.pdfViewer.freeTextSettings.borderWidth : 1;\n this.fontSize = this.pdfViewer.freeTextSettings.fontSize ? this.pdfViewer.freeTextSettings.fontSize : 16;\n this.opacity = this.pdfViewer.freeTextSettings.opacity ? this.pdfViewer.freeTextSettings.opacity : 1;\n this.fontColor = this.pdfViewer.freeTextSettings.fontColor ? this.pdfViewer.freeTextSettings.fontColor : '#000';\n // eslint-disable-next-line max-len\n this.author = (this.pdfViewer.freeTextSettings.author !== 'Guest') ? this.pdfViewer.freeTextSettings.author : this.pdfViewer.annotationSettings.author ? this.pdfViewer.annotationSettings.author : 'Guest';\n if (!isNullOrUndefined(this.pdfViewer.annotationModule)) {\n if (this.getRgbCode(this.borderColor).a === 0) {\n this.borderWidth = 0;\n }\n }\n if (this.pdfViewer.freeTextSettings.fontFamily) {\n var fontName = this.pdfViewer.freeTextSettings.fontFamily;\n if (fontName === 'Helvetica' || fontName === 'Times New Roman' || fontName === 'Courier' || fontName === 'Symbol' || fontName === 'ZapfDingbats') {\n this.fontFamily = fontName;\n }\n else {\n this.fontFamily = 'Helvetica';\n }\n }\n else {\n this.fontFamily = 'Helvetica';\n }\n this.textAlign = this.pdfViewer.freeTextSettings.textAlignment ? this.pdfViewer.freeTextSettings.textAlignment : 'Left';\n this.defaultText = this.pdfViewer.freeTextSettings.defaultText ? this.pdfViewer.freeTextSettings.defaultText : 'Type here';\n this.isReadonly = false;\n if (this.pdfViewer.freeTextSettings.enableAutoFit) {\n this.wordBreak = 'break-all';\n this.padding = '2px';\n }\n else {\n this.padding = '0px';\n this.wordBreak = 'break-word';\n }\n // eslint-disable-next-line max-len\n if (this.pdfViewer.freeTextSettings.isLock || this.pdfViewer.annotationSettings.isLock || this.pdfViewer.freeTextSettings.isReadonly) {\n this.isReadonly = true;\n }\n if (this.pdfViewer.freeTextSettings.fontStyle === 1) {\n this.isBold = true;\n }\n else if (this.pdfViewer.freeTextSettings.fontStyle === 2) {\n this.isItalic = true;\n }\n else if (this.pdfViewer.freeTextSettings.fontStyle === 4) {\n this.isUnderline = true;\n }\n else if (this.pdfViewer.freeTextSettings.fontStyle === 8) {\n this.isStrikethrough = true;\n }\n else if (3 === this.pdfViewer.freeTextSettings.fontStyle) {\n this.isBold = true;\n this.isItalic = true;\n }\n else if (5 === this.pdfViewer.freeTextSettings.fontStyle) {\n this.isBold = true;\n this.isUnderline = true;\n }\n else if (9 === this.pdfViewer.freeTextSettings.fontStyle) {\n this.isBold = true;\n this.isStrikethrough = true;\n }\n else if (7 === this.pdfViewer.freeTextSettings.fontStyle) {\n this.isBold = true;\n this.isItalic = true;\n this.isUnderline = true;\n }\n else if (11 === this.pdfViewer.freeTextSettings.fontStyle) {\n this.isBold = true;\n this.isItalic = true;\n this.isStrikethrough = true;\n }\n else if (14 === this.pdfViewer.freeTextSettings.fontStyle) {\n this.isBold = true;\n this.isUnderline = true;\n this.isStrikethrough = true;\n }\n else if (6 === this.pdfViewer.freeTextSettings.fontStyle) {\n this.isUnderline = true;\n this.isItalic = true;\n }\n };\n /**\n * @param shapeAnnotations\n * @param pageNumber\n * @param isImportAction\n * @private\n */\n // eslint-disable-next-line\n FreeTextAnnotation.prototype.renderFreeTextAnnotations = function (shapeAnnotations, pageNumber, isImportAction) {\n var isFreeTextAdded = false;\n if (!isImportAction) {\n for (var p = 0; p < this.freeTextPageNumbers.length; p++) {\n if (this.freeTextPageNumbers[p] === pageNumber) {\n isFreeTextAdded = true;\n break;\n }\n }\n }\n if (shapeAnnotations && !isFreeTextAdded) {\n if (shapeAnnotations.length >= 1) {\n this.freeTextPageNumbers.push(pageNumber);\n for (var i = 0; i < shapeAnnotations.length; i++) {\n // eslint-disable-next-line\n var annotation = shapeAnnotations[i];\n annotation.annotationAddMode = this.pdfViewer.annotationModule.findAnnotationMode(annotation, pageNumber, annotation.AnnotType);\n if (annotation.AnnotType) {\n var vertexPoints = null;\n if (annotation.VertexPoints) {\n vertexPoints = [];\n for (var j = 0; j < annotation.VertexPoints.length; j++) {\n var point = { x: annotation.VertexPoints[j].X, y: annotation.VertexPoints[j].Y };\n vertexPoints.push(point);\n }\n }\n // eslint-disable-next-line max-len\n annotation.AnnotationSettings = annotation.AnnotationSettings ? annotation.AnnotationSettings : this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.freeTextSettings);\n var annot = void 0;\n var paddingValue = 0.5;\n var annotationBoundsX = !isNullOrUndefined(annotation.Bounds.X) ? annotation.Bounds.X - paddingValue : annotation.Bounds.x;\n var annotationBoundsY = !isNullOrUndefined(annotation.Bounds.Y) ? annotation.Bounds.Y - paddingValue : annotation.Bounds.y;\n var width = annotation.Bounds.Width ? annotation.Bounds.Width : annotation.Bounds.width;\n var height = annotation.Bounds.Height ? annotation.Bounds.Height : annotation.Bounds.height;\n var isAddedProgramatically = annotation.isAddAnnotationProgramatically ? annotation.isAddAnnotationProgramatically : false;\n var rotateValue = this.getRotationValue(pageNumber, isAddedProgramatically);\n var originalRotation = annotation.Rotate;\n var pageRotate = annotation.PageRotation;\n if (Math.sign(annotation.Rotate) === 1) {\n annotation.Rotate = -annotation.Rotate + rotateValue;\n }\n else {\n annotation.Rotate = annotation.Rotate + rotateValue;\n }\n // eslint-disable-next-line\n var rotateAngle = Math.abs(annotation.Rotate);\n if (isImportAction && rotateValue !== pageRotate) {\n if (this.pdfViewerBase.isJsonImported) {\n var pageDetails = this.pdfViewerBase.pageSize[pageNumber];\n var boundsX = annotation.Bounds.X;\n var boundsY = annotation.Bounds.Y;\n var annotationWidth = width;\n var annotationHeight = height;\n if (pageRotate > 0) {\n var rotatation = pageRotate / 90;\n if (rotatation === 1) {\n height = width;\n width = annotation.Bounds.Height;\n annotationBoundsX = annotation.Bounds.Y;\n if (rotateValue !== 270) {\n annotationBoundsY = pageDetails.height - annotation.Bounds.X - annotation.Bounds.Width;\n }\n else {\n annotationBoundsY = pageDetails.width - annotation.Bounds.X - annotation.Bounds.Width;\n }\n }\n else if (rotatation === 2) {\n if (rotateValue !== 270 && rotateValue !== 90) {\n annotationBoundsX = pageDetails.width - annotation.Bounds.X - annotation.Bounds.Width;\n annotationBoundsY = pageDetails.height - annotation.Bounds.Y - annotation.Bounds.Height;\n }\n else {\n annotationBoundsX = pageDetails.height - annotation.Bounds.X - annotation.Bounds.Width;\n annotationBoundsY = pageDetails.width - annotation.Bounds.Y - annotation.Bounds.Height;\n }\n }\n else if (rotatation === 3) {\n height = width;\n width = annotation.Bounds.Height;\n if (rotateValue !== 90) {\n annotationBoundsX = pageDetails.width - annotation.Bounds.Y - width;\n }\n else {\n annotationBoundsX = pageDetails.height - annotation.Bounds.Y - width;\n }\n annotationBoundsY = annotation.Bounds.X;\n }\n boundsX = annotationBoundsX;\n boundsY = annotationBoundsY;\n annotationWidth = width;\n annotationHeight = height;\n }\n rotateAngle = (rotateValue / 90) % 4;\n if (rotateAngle === 1) {\n height = width;\n width = annotationHeight;\n annotationBoundsX = pageDetails.width - boundsY - annotationHeight - paddingValue;\n annotationBoundsY = boundsX - paddingValue;\n rotateAngle = 90;\n }\n else if (rotateAngle === 2) {\n annotationBoundsX = pageDetails.width - boundsX - annotationWidth - paddingValue;\n annotationBoundsY = pageDetails.height - boundsY - annotationHeight - paddingValue;\n rotateAngle = 180;\n }\n else if (rotateAngle === 3) {\n height = width;\n width = annotationHeight;\n annotationBoundsX = boundsY - paddingValue;\n annotationBoundsY = pageDetails.height - boundsX - height - paddingValue;\n rotateAngle = 270;\n }\n else if (rotateAngle === 0) {\n annotationBoundsX = boundsX - paddingValue;\n annotationBoundsY = boundsY - paddingValue;\n }\n }\n }\n if (rotateAngle === 90 || rotateAngle === 270) {\n var rotationHeight = height;\n var rotationWidth = width;\n height = rotationWidth;\n width = rotationHeight;\n annotationBoundsX = (annotationBoundsX - (width / 2)) + (height / 2);\n annotationBoundsY = (annotationBoundsY) + (width / 2 - height / 2);\n }\n // eslint-disable-next-line\n annotation.allowedInteractions = annotation.AllowedInteractions ? annotation.AllowedInteractions : this.pdfViewer.annotationModule.updateAnnotationAllowedInteractions(annotation);\n // eslint-disable-next-line\n annot = {\n author: annotation.Author, modifiedDate: annotation.ModifiedDate, subject: annotation.Subject, id: 'freetext' + this.inputBoxCount,\n rotateAngle: annotation.Rotate, dynamicText: annotation.MarkupText, strokeColor: annotation.StrokeColor,\n thickness: annotation.Thickness, fillColor: annotation.FillColor,\n bounds: {\n x: annotationBoundsX, y: annotationBoundsY, left: annotationBoundsX, top: annotationBoundsY,\n width: width, height: height, right: annotation.Bounds.Right,\n bottom: annotation.Bounds.Bottom\n }, annotName: annotation.AnnotName, shapeAnnotationType: 'FreeText',\n // eslint-disable-next-line\n pageIndex: pageNumber, opacity: annotation.Opacity, fontColor: annotation.FontColor, fontSize: annotation.FontSize, pageRotation: rotateValue,\n fontFamily: annotation.FontFamily, notes: annotation.MarkupText, textAlign: annotation.TextAlign,\n // eslint-disable-next-line\n comments: this.pdfViewer.annotationModule.getAnnotationComments(annotation.Comments, annotation, annotation.Author),\n review: { state: annotation.State, stateModel: annotation.StateModel, modifiedDate: annotation.ModifiedDate, author: annotation.Author },\n // eslint-disable-next-line max-len\n font: { isBold: annotation.Font.Bold, isItalic: annotation.Font.Italic, isStrikeout: annotation.Font.Strikeout, isUnderline: annotation.Font.Underline },\n annotationSelectorSettings: this.getSettings(annotation), annotationSettings: annotation.AnnotationSettings,\n // eslint-disable-next-line\n customData: this.pdfViewer.annotation.getCustomData(annotation), annotationAddMode: annotation.annotationAddMode, allowedInteractions: annotation.allowedInteractions,\n isPrint: annotation.IsPrint, isCommentLock: annotation.IsCommentLock, isReadonly: annotation.IsReadonly,\n isAddAnnotationProgrammatically: isAddedProgramatically\n };\n if (isImportAction) {\n annot.id = annotation.AnnotName;\n annot.previousFontSize = annotation.FontSize ? annotation.FontSize : this.fontSize;\n }\n var addedAnnot = this.pdfViewer.add(annot);\n this.pdfViewer.annotationModule.storeAnnotations(pageNumber, annot, '_annotations_freetext');\n if (this.isAddAnnotationProgramatically) {\n // eslint-disable-next-line\n var settings = {\n opacity: annot.opacity, borderColor: annot.strokeColor, borderWidth: annot.thickness, author: annotation.author, subject: annotation.subject, modifiedDate: annotation.modifiedDate,\n // eslint-disable-next-line\n fillColor: annot.fillColor, fontSize: annot.fontSize, width: annot.bounds.width, height: annot.bounds.height, fontColor: annot.fontColor, fontFamily: annot.fontFamily, defaultText: annot.dynamicText, fontStyle: annot.font, textAlignment: annot.textAlign\n };\n this.pdfViewer.fireAnnotationAdd(annot.pageIndex, annot.annotName, 'FreeText', annot.bounds, settings);\n }\n this.inputBoxCount += 1;\n this.pdfViewer.annotation.freeTextAnnotationModule.isFreeTextValueChange = true;\n this.pdfViewer.nodePropertyChange(addedAnnot, {});\n this.pdfViewer.annotation.freeTextAnnotationModule.isFreeTextValueChange = false;\n }\n }\n }\n }\n };\n /**\n * @param annotation\n * @private\n */\n // eslint-disable-next-line\n FreeTextAnnotation.prototype.getSettings = function (annotation) {\n var selector = this.pdfViewer.annotationSelectorSettings;\n if (annotation.AnnotationSelectorSettings) {\n selector = annotation.AnnotationSelectorSettings;\n }\n else if (this.pdfViewer.freeTextSettings.annotationSelectorSettings) {\n selector = this.pdfViewer.freeTextSettings.annotationSelectorSettings;\n }\n return selector;\n };\n /**\n * @param type\n * @private\n */\n FreeTextAnnotation.prototype.setAnnotationType = function (type) {\n this.pdfViewerBase.disableTextSelectionMode();\n this.pdfViewer.annotationModule.isFormFieldShape = false;\n switch (type) {\n case 'FreeText':\n this.currentAnnotationMode = 'FreeText';\n this.updateTextProperties();\n // eslint-disable-next-line max-len\n var modifiedDateRect = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n this.pdfViewer.drawingObject = {\n shapeAnnotationType: 'FreeText', strokeColor: this.borderColor,\n fillColor: this.fillColor, opacity: this.opacity, notes: '', isCommentLock: false,\n thickness: this.borderWidth, borderDashArray: '0', modifiedDate: modifiedDateRect,\n // eslint-disable-next-line max-len\n author: this.pdfViewer.freeTextSettings.author, subject: 'Text Box', font: { isBold: this.isBold, isItalic: this.isItalic, isStrikeout: this.isStrikethrough, isUnderline: this.isUnderline }, textAlign: this.textAlign\n };\n this.pdfViewer.tool = 'Select';\n break;\n }\n };\n /**\n * @param property\n * @param pageNumber\n * @param annotationBase\n * @param isNewAdded\n * @param property\n * @param pageNumber\n * @param annotationBase\n * @param isNewAdded\n * @param property\n * @param pageNumber\n * @param annotationBase\n * @param isNewAdded\n * @param property\n * @param pageNumber\n * @param annotationBase\n * @param isNewAdded\n * @private\n */\n // eslint-disable-next-line\n FreeTextAnnotation.prototype.modifyInCollection = function (property, pageNumber, annotationBase, isNewAdded) {\n if (!isNullOrUndefined(annotationBase.formFieldAnnotationType) && annotationBase.formFieldAnnotationType !== \"\") {\n this.pdfViewer.annotationModule.isFormFieldShape = true;\n }\n else {\n this.pdfViewer.annotationModule.isFormFieldShape = false;\n }\n if (!isNewAdded) {\n this.pdfViewerBase.updateDocumentEditedProperty(true);\n }\n var currentAnnotObject = null;\n var pageAnnotations = this.getAnnotations(pageNumber, null);\n if (pageAnnotations != null && annotationBase) {\n for (var i = 0; i < pageAnnotations.length; i++) {\n if (annotationBase.id === pageAnnotations[i].id) {\n if (property === 'bounds') {\n // eslint-disable-next-line max-len\n pageAnnotations[i].bounds = { left: annotationBase.bounds.x, top: annotationBase.bounds.y, width: annotationBase.bounds.width, height: annotationBase.bounds.height, right: annotationBase.bounds.right, bottom: annotationBase.bounds.bottom };\n }\n else if (property === 'fill') {\n pageAnnotations[i].fillColor = annotationBase.wrapper.children[0].style.fill;\n }\n else if (property === 'stroke') {\n pageAnnotations[i].strokeColor = annotationBase.wrapper.children[0].style.strokeColor;\n }\n else if (property === 'opacity') {\n pageAnnotations[i].opacity = annotationBase.wrapper.children[0].style.opacity;\n }\n else if (property === 'thickness') {\n pageAnnotations[i].thickness = annotationBase.wrapper.children[0].style.strokeWidth;\n }\n else if (property === 'notes') {\n pageAnnotations[i].note = annotationBase.notes;\n }\n else if (property === 'delete') {\n currentAnnotObject = pageAnnotations.splice(i, 1)[0];\n break;\n }\n else if (property === 'dynamicText') {\n if (pageAnnotations[i].dynamicText !== annotationBase.dynamicText) {\n this.pdfViewer.fireCommentEdit(pageAnnotations[i].annotName, annotationBase.dynamicText, pageAnnotations[i]);\n }\n pageAnnotations[i].dynamicText = annotationBase.dynamicText;\n }\n else if (property === 'fontColor') {\n pageAnnotations[i].fontColor = annotationBase.fontColor;\n }\n else if (property === 'fontSize') {\n pageAnnotations[i].fontSize = annotationBase.fontSize;\n }\n else if (property === 'fontFamily') {\n pageAnnotations[i].fontFamily = annotationBase.fontFamily;\n }\n else if (property === 'textPropertiesChange') {\n // eslint-disable-next-line max-len\n pageAnnotations[i].font = { isBold: annotationBase.font.isBold, isItalic: annotationBase.font.isItalic, isStrikeout: annotationBase.font.isStrikeout, isUnderline: annotationBase.font.isUnderline };\n }\n else if (property === 'textAlign') {\n pageAnnotations[i].textAlign = annotationBase.textAlign;\n }\n // eslint-disable-next-line max-len\n pageAnnotations[i].modifiedDate = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n this.pdfViewer.annotationModule.storeAnnotationCollections(pageAnnotations[i], pageNumber);\n }\n }\n this.manageAnnotations(pageAnnotations, pageNumber);\n }\n return currentAnnotObject;\n };\n /**\n * @param pageNumber\n * @param annotationBase\n * @private\n */\n FreeTextAnnotation.prototype.addInCollection = function (pageNumber, annotationBase) {\n if (annotationBase) {\n var pageAnnotations = this.getAnnotations(pageNumber, null);\n if (pageAnnotations) {\n pageAnnotations.push(annotationBase);\n }\n this.manageAnnotations(pageAnnotations, pageNumber);\n }\n };\n /**\n * @private\n */\n FreeTextAnnotation.prototype.saveFreeTextAnnotations = function () {\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_freetext');\n if (this.pdfViewerBase.isStorageExceed) {\n storeObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_freetext'];\n }\n // eslint-disable-next-line\n var annotations = new Array();\n for (var j = 0; j < this.pdfViewerBase.pageCount; j++) {\n annotations[j] = [];\n }\n if (storeObject && !this.pdfViewer.annotationSettings.skipDownload) {\n var annotationCollection = JSON.parse(storeObject);\n for (var i = 0; i < annotationCollection.length; i++) {\n var newArray = [];\n var pageAnnotationObject = annotationCollection[i];\n if (pageAnnotationObject) {\n for (var z = 0; pageAnnotationObject.annotations.length > z; z++) {\n this.pdfViewer.annotationModule.updateModifiedDate(pageAnnotationObject.annotations[z]);\n // eslint-disable-next-line max-len\n pageAnnotationObject.annotations[z].bounds = this.getBoundsBasedOnRotation(pageAnnotationObject.annotations[z].bounds, pageAnnotationObject.annotations[z].rotateAngle, pageAnnotationObject.pageIndex, pageAnnotationObject.annotations[z]);\n // eslint-disable-next-line max-len\n pageAnnotationObject.annotations[z].bounds = JSON.stringify(this.pdfViewer.annotation.getBounds(pageAnnotationObject.annotations[z].bounds, pageAnnotationObject.pageIndex));\n var strokeColorString = pageAnnotationObject.annotations[z].strokeColor;\n pageAnnotationObject.annotations[z].strokeColor = JSON.stringify(this.getRgbCode(strokeColorString));\n var fillColorString = pageAnnotationObject.annotations[z].fillColor;\n pageAnnotationObject.annotations[z].fillColor = JSON.stringify(this.getRgbCode(fillColorString));\n var fontColorString = pageAnnotationObject.annotations[z].fontColor;\n pageAnnotationObject.annotations[z].fontColor = JSON.stringify(this.getRgbCode(fontColorString));\n // eslint-disable-next-line max-len\n pageAnnotationObject.annotations[z].vertexPoints = JSON.stringify(pageAnnotationObject.annotations[z].vertexPoints);\n if (pageAnnotationObject.annotations[z].rectangleDifference !== null) {\n // eslint-disable-next-line max-len\n pageAnnotationObject.annotations[z].rectangleDifference = JSON.stringify(pageAnnotationObject.annotations[z].rectangleDifference);\n }\n pageAnnotationObject.annotations[z].padding = this.getPaddingValues(this.fontSize);\n }\n newArray = pageAnnotationObject.annotations;\n }\n annotations[pageAnnotationObject.pageIndex] = newArray;\n }\n }\n return JSON.stringify(annotations);\n };\n // eslint-disable-next-line\n FreeTextAnnotation.prototype.getRotationValue = function (pageIndex, isAddedProgrammatically) {\n // eslint-disable-next-line\n var pageDetails = this.pdfViewerBase.pageSize[pageIndex];\n if (!isNullOrUndefined(isAddedProgrammatically) && isAddedProgrammatically) {\n return 0;\n }\n else {\n if (pageDetails.rotation === 0) {\n return 0;\n }\n else if (pageDetails.rotation === 1) {\n return 90;\n }\n else if (pageDetails.rotation === 2) {\n return 180;\n }\n else if (pageDetails.rotation === 3) {\n return 270;\n }\n return 0;\n }\n };\n FreeTextAnnotation.prototype.getBoundsBasedOnRotation = function (bounds, rotateAngle, pageIndex, annotation, isAddedProgrammatically) {\n var rotateValue = this.getRotationValue(pageIndex, isAddedProgrammatically);\n var paddingValue = 0.5;\n annotation.rotateAngle = rotateAngle - rotateValue;\n annotation.pageRotation = rotateValue;\n if (rotateAngle === 90 || rotateAngle === -90 || rotateAngle === 270 || rotateAngle === -270) {\n var x = bounds.left + (bounds.width / 2) - (bounds.height / 2);\n var y = bounds.top - (bounds.width / 2 - bounds.height / 2);\n return { x: x + paddingValue, y: y + paddingValue, left: x + paddingValue, top: y + paddingValue, width: bounds.height, height: bounds.width };\n }\n else {\n return { x: bounds.left + paddingValue, y: bounds.top + paddingValue, left: bounds.left + paddingValue, top: bounds.top + paddingValue, width: bounds.width, height: bounds.height };\n }\n };\n FreeTextAnnotation.prototype.manageAnnotations = function (pageAnnotations, pageNumber) {\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_freetext');\n if (this.pdfViewerBase.isStorageExceed) {\n storeObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_freetext'];\n }\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n if (!this.pdfViewerBase.isStorageExceed) {\n window.sessionStorage.removeItem(this.pdfViewerBase.documentId + '_annotations_freetext');\n }\n var index = this.pdfViewer.annotationModule.getPageCollection(annotObject, pageNumber);\n if (annotObject[index]) {\n annotObject[index].annotations = pageAnnotations;\n }\n var annotationStringified = JSON.stringify(annotObject);\n if (this.pdfViewerBase.isStorageExceed) {\n this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_freetext'] = annotationStringified;\n }\n else {\n window.sessionStorage.setItem(this.pdfViewerBase.documentId + '_annotations_freetext', annotationStringified);\n }\n }\n };\n // eslint-disable-next-line\n FreeTextAnnotation.prototype.getAnnotations = function (pageIndex, shapeAnnotations) {\n // eslint-disable-next-line\n var annotationCollection;\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_freetext');\n if (this.pdfViewerBase.isStorageExceed) {\n storeObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_freetext'];\n }\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n var index = this.pdfViewer.annotationModule.getPageCollection(annotObject, pageIndex);\n if (annotObject[index]) {\n annotationCollection = annotObject[index].annotations;\n }\n else {\n annotationCollection = shapeAnnotations;\n }\n }\n else {\n annotationCollection = shapeAnnotations;\n }\n return annotationCollection;\n };\n // eslint-disable-next-line\n FreeTextAnnotation.prototype.getRgbCode = function (colorString) {\n if (!colorString.match(/#([a-z0-9]+)/gi) && !colorString.match(/^rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+)(?:,\\s*(\\d+(?:\\.\\d+)?))?\\)$/)) {\n colorString = this.pdfViewer.annotationModule.nameToHash(colorString);\n }\n var stringArray = colorString.split(',');\n if (isNullOrUndefined(stringArray[1])) {\n colorString = this.pdfViewer.annotationModule.getValue(colorString, 'rgba');\n stringArray = colorString.split(',');\n }\n // eslint-disable-next-line radix\n var r = parseFloat(stringArray[0].split('(')[1]);\n // eslint-disable-next-line radix\n var g = parseFloat(stringArray[1]);\n // eslint-disable-next-line radix\n var b = parseFloat(stringArray[2]);\n // eslint-disable-next-line radix\n var a = parseFloat(stringArray[3]);\n return { r: r, g: g, b: b, a: a };\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n FreeTextAnnotation.prototype.onFocusOutInputBox = function () {\n var allowServerDataBind = this.pdfViewer.allowServerDataBinding;\n this.pdfViewer.enableServerDataBinding(false);\n if (!this.pdfViewerBase.isFreeTextContextMenu) {\n this.pdfViewer.fireBeforeAddFreeTextAnnotation(this.inputBoxElement.value);\n // eslint-disable-next-line\n var pageIndex = this.inputBoxElement.id && this.inputBoxElement.id.split(\"_freeText_\")[1] && this.inputBoxElement.id.split(\"_freeText_\")[1].split(\"_\")[0] ? parseFloat(this.inputBoxElement.id.split(\"_freeText_\")[1].split(\"_\")[0]) : this.pdfViewerBase.currentPageNumber - 1;\n var pageDiv = this.pdfViewerBase.getElement('_pageDiv_' + (pageIndex));\n var width = parseFloat(this.inputBoxElement.style.width);\n var padding = parseFloat(this.inputBoxElement.style.paddingLeft);\n if (this.pdfViewer.freeTextSettings.enableAutoFit && !this.isMaximumWidthReached && !this.isNewFreeTextAnnot) {\n var fontsize = parseFloat(this.inputBoxElement.style.fontSize);\n this.inputBoxElement.style.width = ((width + padding) - fontsize) + 'px';\n }\n if (this.pdfViewer.freeTextSettings.enableAutoFit && !this.isMaximumWidthReached && this.isNewFreeTextAnnot) {\n width = parseFloat(this.inputBoxElement.style.width);\n var characterLength = 8;\n this.inputBoxElement.style.width = (width - characterLength) + 'px';\n }\n var inputEleHeight = parseFloat(this.inputBoxElement.style.height);\n var inputEleWidth = parseFloat(this.inputBoxElement.style.width);\n var inputEleLeft = parseFloat(this.inputBoxElement.style.left);\n if (this.pdfViewerBase.isMixedSizeDocument) {\n var canvas = document.getElementById(this.pdfViewer.element.id + '_annotationCanvas_' + pageIndex);\n inputEleLeft = inputEleLeft - canvas.offsetLeft;\n }\n var inputEleTop = parseFloat(this.inputBoxElement.style.top);\n var zoomFactor = this.pdfViewerBase.getZoomFactor();\n if (this.pdfViewer.isValidFreeText) {\n this.inputBoxElement.value = 'Type Here';\n this.pdfViewer.isValidFreeText = false;\n }\n var inputValue = this.inputBoxElement.value;\n var isNewlyAdded = false;\n if (this.isNewFreeTextAnnot === true) {\n // eslint-disable-next-line max-len\n var currentDateString = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n var annotationName = this.pdfViewer.annotation.createGUID();\n this.isNewFreeTextAnnot = false;\n isNewlyAdded = true;\n var annot = void 0;\n var commentsDivid = this.pdfViewer.annotation.stickyNotesAnnotationModule.addComments('freeText', pageIndex + 1);\n if (commentsDivid) {\n document.getElementById(commentsDivid).id = annotationName;\n }\n // eslint-disable-next-line\n var annotationSelectorSettings = this.pdfViewer.freeTextSettings.annotationSelectorSettings ? this.pdfViewer.freeTextSettings.annotationSelectorSettings : this.pdfViewer.annotationSelectorSettings;\n // eslint-disable-next-line\n var annotationSettings = this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.freeTextSettings);\n // eslint-disable-next-line\n this.author = this.author ? this.author : this.pdfViewer.freeTextSettings.author ? this.pdfViewer.freeTextSettings.author : 'Guest';\n // eslint-disable-next-line\n var allowedInteractions = this.pdfViewer.freeTextSettings.allowedInteractions ? this.pdfViewer.freeTextSettings.allowedInteractions : this.pdfViewer.annotationSettings.allowedInteractions;\n // eslint-disable-next-line\n annot = {\n author: this.author, modifiedDate: currentDateString, subject: 'Text Box', id: 'free_text' + this.inputBoxCount,\n // eslint-disable-next-line max-len\n rotateAngle: 0, dynamicText: inputValue, strokeColor: this.borderColor, thickness: this.borderWidth, fillColor: this.fillColor,\n bounds: {\n left: inputEleLeft / zoomFactor, top: inputEleTop / zoomFactor, x: inputEleLeft / zoomFactor,\n y: inputEleTop / zoomFactor, width: inputEleWidth / zoomFactor, height: inputEleHeight / zoomFactor\n }, annotName: annotationName,\n shapeAnnotationType: 'FreeText', pageIndex: pageIndex, fontColor: this.fontColor, fontSize: this.fontSize,\n fontFamily: this.fontFamily, opacity: this.opacity, comments: [], textAlign: this.textAlign,\n // eslint-disable-next-line max-len\n font: { isBold: this.isBold, isItalic: this.isItalic, isStrikeout: this.isStrikethrough, isUnderline: this.isUnderline },\n review: { state: 'Unmarked', stateModel: 'None', modifiedDate: currentDateString, author: this.author },\n // eslint-disable-next-line max-len\n annotationSelectorSettings: annotationSelectorSettings, annotationSettings: annotationSettings,\n customData: this.pdfViewer.annotationModule.getData('FreeText'), isPrint: this.pdfViewer.freeTextSettings.isPrint,\n allowedInteractions: allowedInteractions, isReadonly: this.isReadonly\n };\n if (this.pdfViewer.enableRtl) {\n annot.textAlign = 'Right';\n }\n var annotation = this.pdfViewer.add(annot);\n // eslint-disable-next-line\n var bounds = { left: annot.bounds.x, top: annot.bounds.y, width: annot.bounds.width, height: annot.bounds.height };\n // eslint-disable-next-line\n var settings = {\n opacity: annot.opacity, borderColor: annot.strokeColor, borderWidth: annot.thickness, author: annotation.author, subject: annotation.subject, modifiedDate: annotation.modifiedDate,\n // eslint-disable-next-line\n fillColor: annot.fillColor, fontSize: annot.fontSize, width: annot.bounds.width, height: annot.bounds.height, fontColor: annot.fontColor, fontFamily: annot.fontFamily, defaultText: annot.dynamicText, fontStyle: annot.font, textAlignment: annot.textAlign\n };\n this.pdfViewer.annotation.storeAnnotations(pageIndex, annot, '_annotations_freetext');\n this.pdfViewer.fireAnnotationAdd(annot.pageIndex, annot.annotName, 'FreeText', bounds, settings);\n this.pdfViewer.fireCommentAdd(annot.annotName, annot.dynamicText, annot);\n // eslint-disable-next-line\n this.pdfViewer.annotation.addAction(pageIndex, null, annot, 'Addition', '', annot, annot);\n this.pdfViewer.renderSelector(annot.pageIndex);\n this.pdfViewer.clearSelection(annot.pageIndex);\n this.pdfViewerBase.updateDocumentEditedProperty(true);\n this.selectedAnnotation = annotation;\n }\n this.isInuptBoxInFocus = false;\n // eslint-disable-next-line\n if (this.selectedAnnotation && this.pdfViewer.selectedItems.annotations) {\n inputEleWidth = (inputEleWidth / zoomFactor);\n inputEleHeight = (inputEleHeight / zoomFactor);\n var heightDiff = (inputEleHeight - this.selectedAnnotation.bounds.height);\n var y = undefined;\n if (heightDiff > 0) {\n y = this.selectedAnnotation.wrapper.offsetY + (heightDiff / 2);\n y = y > 0 ? y : undefined;\n }\n var widthDiff = (inputEleWidth - this.selectedAnnotation.bounds.width);\n var x = undefined;\n if (widthDiff > 0) {\n x = this.selectedAnnotation.wrapper.offsetX + (widthDiff / 2);\n x = x > 0 ? x : undefined;\n }\n else {\n widthDiff = Math.abs(widthDiff);\n x = this.selectedAnnotation.wrapper.offsetX - (widthDiff / 2);\n }\n this.selectedAnnotation.bounds.width = inputEleWidth;\n this.selectedAnnotation.bounds.height = inputEleHeight;\n var lineSpace = 0;\n lineSpace = ((parseFloat(this.inputBoxElement.style.fontSize) / zoomFactor) / (this.defaultFontSize / 2));\n this.selectedAnnotation.wrapper.children[1].margin.left = this.freeTextPaddingLeft;\n this.selectedAnnotation.wrapper.children[1].margin.top = ((parseFloat(this.inputBoxElement.style.paddingTop) / zoomFactor)) + lineSpace;\n this.pdfViewer.annotation.modifyDynamicTextValue(inputValue, this.selectedAnnotation.annotName);\n this.selectedAnnotation.dynamicText = inputValue;\n this.modifyInCollection('dynamicText', pageIndex, this.selectedAnnotation, isNewlyAdded);\n this.modifyInCollection('bounds', pageIndex, this.selectedAnnotation, isNewlyAdded);\n // eslint-disable-next-line\n this.pdfViewer.nodePropertyChange(this.selectedAnnotation, { bounds: { width: this.selectedAnnotation.bounds.width, height: this.selectedAnnotation.bounds.height, y: y, x: x } });\n // eslint-disable-next-line\n var commentsDiv = document.getElementById(this.selectedAnnotation.annotName);\n if (commentsDiv && commentsDiv.childNodes) {\n if (commentsDiv.childNodes[0].ej2_instances) {\n commentsDiv.childNodes[0].ej2_instances[0].value = inputValue;\n }\n else if (commentsDiv.childNodes[0].childNodes && commentsDiv.childNodes[0].childNodes[1].ej2_instances) {\n commentsDiv.childNodes[0].childNodes[1].ej2_instances[0].value = inputValue;\n }\n }\n this.pdfViewer.renderSelector(this.selectedAnnotation.pageIndex, this.selectedAnnotation.annotationSelectorSettings);\n }\n if (this.inputBoxElement.parentElement) {\n if (pageDiv && (pageDiv.id === this.inputBoxElement.parentElement.id)) {\n pageDiv.removeChild(this.inputBoxElement);\n }\n else {\n this.inputBoxElement.parentElement.removeChild(this.inputBoxElement);\n }\n }\n var canvass = document.getElementById(this.pdfViewer.element.id + '_annotationCanvas_' + pageIndex);\n // eslint-disable-next-line\n this.pdfViewer.renderDrawing(canvass, pageIndex);\n this.inputBoxCount += 1;\n }\n else {\n this.inputBoxElement.focus();\n if (!this.isTextSelected) {\n window.getSelection().removeAllRanges();\n }\n }\n this.pdfViewer.enableServerDataBinding(allowServerDataBind, true);\n };\n /**\n * @param event\n * @private\n */\n FreeTextAnnotation.prototype.onKeyDownInputBox = function (event) {\n var inuptEleObj = this;\n if (event.which === 9 || (isNullOrUndefined(this.pdfViewer.selectedItems.annotations[0]) && !this.isNewFreeTextAnnot)) {\n event.preventDefault();\n }\n this.selectedAnnotation = this.pdfViewer.selectedItems.annotations && this.isNewFreeTextAnnot ? this.pdfViewer.selectedItems.annotations[0]\n : this.selectedAnnotation;\n setTimeout(function () {\n if (inuptEleObj.defaultHeight < inuptEleObj.inputBoxElement.scrollHeight\n // eslint-disable-next-line radix\n && parseInt(inuptEleObj.inputBoxElement.style.height) < inuptEleObj.inputBoxElement.scrollHeight) {\n inuptEleObj.updateFreeTextAnnotationSize(true);\n }\n else {\n inuptEleObj.updateFreeTextAnnotationSize(false);\n }\n // eslint-disable-next-line\n }, 0);\n };\n FreeTextAnnotation.prototype.updateFreeTextAnnotationSize = function (isSize) {\n var inuptEleObj = this;\n var enableAutoFit = inuptEleObj.pdfViewer.freeTextSettings.enableAutoFit;\n if (enableAutoFit) {\n this.autoFitFreeText();\n }\n else {\n this.isMaximumWidthReached = true;\n }\n if (this.isMaximumWidthReached) {\n // eslint-disable-next-line max-len\n var previousHeight = inuptEleObj.inputBoxElement.getBoundingClientRect().height;\n if (!isSize && !inuptEleObj.inputBoxElement.readOnly) {\n inuptEleObj.inputBoxElement.style.height = 'auto';\n }\n var currentHeight = inuptEleObj.inputBoxElement.getBoundingClientRect().height;\n var difference = currentHeight - previousHeight;\n var fontSize = parseFloat(inuptEleObj.inputBoxElement.style.fontSize);\n // eslint-disable-next-line max-len\n inuptEleObj.inputBoxElement.style.height = inuptEleObj.inputBoxElement.readOnly ? inuptEleObj.inputBoxElement.style.height : inuptEleObj.inputBoxElement.scrollHeight + (fontSize / 2) + 'px';\n inuptEleObj.inputBoxElement.style.height = (difference < 0 && !inuptEleObj.inputBoxElement.readOnly) ? (previousHeight + 'px') : inuptEleObj.inputBoxElement.style.height;\n }\n var zoomFactor = inuptEleObj.pdfViewerBase.getZoomFactor();\n var inputEleHeight = parseFloat(this.inputBoxElement.style.height);\n var inputEleWidth = parseFloat(this.inputBoxElement.style.width);\n inputEleHeight = ((inputEleHeight) / zoomFactor);\n inputEleWidth = ((inputEleWidth) / zoomFactor);\n if (this.selectedAnnotation) {\n var heightDiff = (inputEleHeight - inuptEleObj.selectedAnnotation.bounds.height);\n var y = 0;\n if (heightDiff > 0) {\n y = inuptEleObj.selectedAnnotation.wrapper.offsetY + (heightDiff / 2);\n }\n else {\n heightDiff = Math.abs(heightDiff);\n y = inuptEleObj.selectedAnnotation.wrapper.offsetY - (heightDiff / 2);\n }\n if (enableAutoFit) {\n var widthDiff = (inputEleWidth - inuptEleObj.selectedAnnotation.bounds.width);\n var x = 0;\n if (widthDiff > 0) {\n x = inuptEleObj.selectedAnnotation.wrapper.offsetX + (widthDiff / 2);\n }\n else {\n widthDiff = Math.abs(widthDiff);\n x = inuptEleObj.selectedAnnotation.wrapper.offsetX - (widthDiff / 2);\n }\n }\n inuptEleObj.selectedAnnotation.bounds.width = inputEleWidth;\n inuptEleObj.selectedAnnotation.bounds.height = inputEleHeight;\n if (enableAutoFit) {\n // eslint-disable-next-line\n inuptEleObj.pdfViewer.nodePropertyChange(inuptEleObj.selectedAnnotation, { bounds: { width: inuptEleObj.selectedAnnotation.bounds.width, height: inuptEleObj.selectedAnnotation.bounds.height, y: y, x: x } });\n }\n else {\n // eslint-disable-next-line\n inuptEleObj.pdfViewer.nodePropertyChange(inuptEleObj.selectedAnnotation, { bounds: { width: inuptEleObj.selectedAnnotation.bounds.width, height: inuptEleObj.selectedAnnotation.bounds.height, y: y } });\n }\n inuptEleObj.pdfViewer.renderSelector(inuptEleObj.selectedAnnotation.pageIndex, this.selectedAnnotation.annotationSelectorSettings);\n }\n };\n /**\n * @param event\n * @private\n */\n FreeTextAnnotation.prototype.autoFitFreeText = function (xPosition, yPosition) {\n var pageIndex = this.pdfViewerBase.currentPageNumber - 1;\n var pageDiv = this.pdfViewerBase.getElement('_pageDiv_' + (pageIndex));\n // eslint-disable-next-line\n var canvas = this.pdfViewerBase.getElement('_annotationCanvas_' + pageIndex);\n // eslint-disable-next-line\n var context = canvas.getContext(\"2d\");\n // eslint-disable-next-line\n var fontSize = this.inputBoxElement.style.fontSize;\n if (this.pdfViewer.freeTextSettings.fontStyle === FontStyle.Bold || this.inputBoxElement.style.fontWeight === 'bold') {\n context.font = 'bold' + ' ' + fontSize + ' ' + this.inputBoxElement.style.fontFamily;\n }\n else {\n context.font = fontSize + ' ' + this.inputBoxElement.style.fontFamily;\n }\n var highestTextNode = \"\";\n // eslint-disable-next-line\n var textNodes = [];\n var textboxValue = this.inputBoxElement.value;\n if (textboxValue.indexOf('\\n') > -1) {\n textNodes = textboxValue.split('\\n');\n for (var j = 0; j < textNodes.length; j++) {\n // eslint-disable-next-line\n var textNodeData = context.measureText(textNodes[j]);\n // eslint-disable-next-line\n var highestTextNodeData = context.measureText(highestTextNode);\n if (textNodeData.width > highestTextNodeData.width) {\n highestTextNode = textNodes[j];\n }\n }\n this.isMaximumWidthReached = true;\n }\n else {\n highestTextNode = textboxValue;\n this.isMaximumWidthReached = false;\n }\n // eslint-disable-next-line\n var textwidth = context.measureText(highestTextNode);\n fontSize = parseFloat(this.inputBoxElement.style.fontSize);\n var inputEleWidth;\n var characterLength = 8;\n var inputEleHeight = (fontSize + (fontSize / 2));\n if (this.isNewFreeTextAnnot) {\n inputEleWidth = Math.ceil(textwidth.width + ((characterLength + 1) * 2));\n this.inputBoxElement.style.height = inputEleHeight + 'px';\n this.inputBoxElement.style.top = (yPosition) - (inputEleHeight / 2) + 'px';\n }\n else {\n inputEleWidth = Math.ceil(textwidth.width) + fontSize + Math.ceil(characterLength / 2);\n }\n if (!xPosition) {\n this.inputBoxElement.style.height = inputEleHeight + 'px';\n }\n this.inputBoxElement.style.width = inputEleWidth + 'px';\n var maxWidth = this.pdfViewerBase.getPageWidth(pageIndex) - parseFloat(this.inputBoxElement.style.left);\n if (parseFloat(this.inputBoxElement.style.width) > maxWidth) {\n this.isMaximumWidthReached = true;\n if (this.isNewAddedAnnot && xPosition) {\n inputEleWidth = inputEleWidth - characterLength;\n this.inputBoxElement.style.width = inputEleWidth + 'px';\n var width = xPosition + (inputEleWidth * this.pdfViewerBase.getZoomFactor());\n var x = parseFloat(this.inputBoxElement.style.left);\n if (width >= this.pdfViewerBase.getPageWidth(pageIndex)) {\n x = this.pdfViewerBase.getPageWidth(pageIndex) - inputEleWidth;\n }\n this.inputBoxElement.style.left = x + 'px';\n }\n else {\n this.inputBoxElement.style.width = maxWidth + 'px';\n }\n }\n };\n /**\n * @param event\n * @private\n */\n FreeTextAnnotation.prototype.onMouseUpInputBox = function (event) {\n // eslint-disable-next-line\n var target = event.target;\n this.selectionStart = 0;\n this.selectionEnd = 0;\n if (event.which === 3 && target) {\n this.selectionStart = target.selectionStart;\n this.selectionEnd = target.selectionEnd;\n }\n if (event.which === 3 && window.getSelection() != null && window.getSelection().toString() !== '') {\n this.isTextSelected = true;\n }\n else {\n this.isTextSelected = false;\n }\n };\n /**\n * @param currentPosition\n * @param annotation\n * @param pageIndex\n * @private\n */\n FreeTextAnnotation.prototype.addInuptElemet = function (currentPosition, annotation, pageIndex) {\n if (annotation === void 0) { annotation = null; }\n this.currentPosition = [];\n if (isNullOrUndefined(pageIndex)) {\n pageIndex = this.pdfViewerBase.currentPageNumber - 1;\n }\n if (annotation) {\n pageIndex = annotation.pageIndex;\n }\n if (isBlazor() && annotation === null && this.pdfViewer.selectedItems.annotations.length === 0) {\n this.updateTextProperties();\n }\n this.inputBoxElement.id = this.pdfViewer.element.id + '_freeText_' + pageIndex + '_' + this.inputBoxCount;\n var pageDiv = this.pdfViewerBase.getElement('_pageDiv_' + (pageIndex));\n var canvass = document.getElementById(this.pdfViewer.element.id + '_annotationCanvas_' + pageIndex);\n var zoomFactor = this.pdfViewerBase.getZoomFactor();\n this.inputBoxElement.value = (annotation && annotation.dynamicText) ? annotation.dynamicText : this.defaultText;\n this.inputBoxElement.style.boxSizing = 'border-box';\n this.inputBoxElement.style.left = ((currentPosition.x)) + 'px';\n this.inputBoxElement.style.top = ((currentPosition.y)) - ((this.defaultHeight * zoomFactor) / 2) + 'px';\n if (this.pdfViewer.freeTextSettings.enableAutoFit) {\n this.inputBoxElement.style.wordBreak = 'break-all';\n }\n else {\n this.inputBoxElement.style.wordBreak = 'break-word';\n }\n if (annotation) {\n this.applyFreetextStyles(zoomFactor, annotation.isReadonly);\n }\n else {\n this.applyFreetextStyles(zoomFactor);\n }\n if (this.isBold) {\n this.inputBoxElement.style.fontWeight = 'bold';\n }\n else {\n this.inputBoxElement.style.fontWeight = 'normal';\n }\n if (this.isItalic) {\n this.inputBoxElement.style.fontStyle = 'italic';\n }\n else {\n this.inputBoxElement.style.fontStyle = 'normal';\n }\n this.inputBoxElement.style.textDecoration = 'none';\n if (this.isUnderline) {\n this.inputBoxElement.style.textDecoration = 'underline';\n }\n if (this.isStrikethrough) {\n this.inputBoxElement.style.textDecoration = 'line-through';\n }\n if (this.pdfViewer.enableRtl) {\n this.inputBoxElement.style.textAlign = 'right';\n this.inputBoxElement.style.direction = 'rtl';\n this.inputBoxElement.style.left = ((currentPosition.x)) - ((this.defautWidth * zoomFactor / 2));\n }\n else {\n this.inputBoxElement.style.textAlign = this.textAlign.toLowerCase();\n }\n this.inputBoxElement.style.borderColor = this.borderColor;\n this.inputBoxElement.style.color = this.fontColor;\n this.inputBoxElement.style.background = this.fillColor;\n if (annotation && annotation.wrapper && annotation.wrapper.children[0]) {\n this.inputBoxElement.style.opacity = annotation.wrapper.children[0].style.opacity;\n }\n if (this.isNewFreeTextAnnot === true) {\n this.pdfViewer.clearSelection(pageIndex);\n }\n if (annotation && annotation.wrapper && annotation.wrapper.bounds) {\n var annotationBounds = annotation.wrapper.bounds;\n if (annotationBounds.left) {\n this.inputBoxElement.style.left = ((annotationBounds.left) * zoomFactor) + 'px';\n }\n if (annotationBounds.top) {\n this.inputBoxElement.style.top = ((annotationBounds.top) * zoomFactor) + 'px';\n }\n // eslint-disable-next-line max-len\n this.inputBoxElement.style.height = annotationBounds.height ? (annotationBounds.height * zoomFactor) + 'px' : (this.defaultHeight * zoomFactor) + 'px';\n // eslint-disable-next-line max-len\n this.inputBoxElement.style.width = annotationBounds.width ? (annotationBounds.width * zoomFactor) + 'px' : (this.defautWidth * zoomFactor) + 'px';\n this.selectedAnnotation = annotation;\n this.previousText = this.selectedAnnotation.dynamicText;\n this.selectedAnnotation.dynamicText = '';\n this.inputBoxElement.style.borderColor = this.selectedAnnotation.strokeColor;\n this.inputBoxElement.style.color = this.selectedAnnotation.fontColor;\n this.inputBoxElement.style.background = this.selectedAnnotation.fillColor;\n if (this.selectedAnnotation.font.isBold === true) {\n this.inputBoxElement.style.fontWeight = 'bold';\n }\n if (this.selectedAnnotation.font.isItalic === true) {\n this.inputBoxElement.style.fontStyle = 'italic';\n }\n if (this.selectedAnnotation.font.isUnderline === true) {\n this.inputBoxElement.style.textDecoration = 'underline';\n }\n if (this.selectedAnnotation.font.isStrikeout === true) {\n this.inputBoxElement.style.textDecoration = 'line-through';\n }\n if (this.pdfViewer.enableRtl) {\n this.inputBoxElement.style.textAlign = 'right';\n this.inputBoxElement.style.direction = 'rtl';\n }\n else if (this.selectedAnnotation.textAlign) {\n this.inputBoxElement.style.textAlign = this.selectedAnnotation.textAlign;\n }\n this.inputBoxElement.style.fontSize = (this.selectedAnnotation.fontSize * zoomFactor) + 'px';\n this.inputBoxElement.style.fontFamily = this.selectedAnnotation.fontFamily;\n this.pdfViewer.nodePropertyChange(this.selectedAnnotation, {});\n }\n if (this.pdfViewerBase.isMixedSizeDocument) {\n this.inputBoxElement.style.left = (parseFloat(this.inputBoxElement.style.left)) + canvass.offsetLeft + 'px';\n }\n this.pdfViewer.annotation.freeTextAnnotationModule.isFreeTextValueChange = false;\n if (this.pdfViewer.freeTextSettings.enableAutoFit) {\n this.autoFitFreeText(currentPosition.x, currentPosition.y);\n }\n this.inputBoxElement.style.paddingLeft = (this.freeTextPaddingLeft * zoomFactor) + 'px';\n this.inputBoxElement.style.paddingTop = (this.freeTextPaddingTop * ((parseFloat(this.inputBoxElement.style.fontSize) / zoomFactor) / this.defaultFontSize) / zoomFactor) + 'px';\n var lineSpace = 0;\n lineSpace = ((parseFloat(this.inputBoxElement.style.fontSize) / zoomFactor) / (this.defaultFontSize / 2));\n this.inputBoxElement.style.paddingTop = ((parseFloat(this.inputBoxElement.style.paddingTop)) - lineSpace) + 'px';\n pageDiv.appendChild(this.inputBoxElement);\n // eslint-disable-next-line\n if (!this.pdfViewer.freeTextSettings.enableAutoFit && (this.defaultHeight * zoomFactor) < this.inputBoxElement.scrollHeight && parseInt(this.inputBoxElement.style.height) < this.inputBoxElement.scrollHeight) {\n this.inputBoxElement.style.height = this.inputBoxElement.scrollHeight + 'px';\n this.inputBoxElement.style.top = ((currentPosition.y)) - (parseFloat(this.inputBoxElement.style.height) / 2) + 'px';\n }\n this.isInuptBoxInFocus = true;\n this.inputBoxElement.focus();\n if (this.isNewFreeTextAnnot === true || this.inputBoxElement.value === this.defaultText) {\n this.inputBoxElement.select();\n this.pdfViewerBase.isFreeTextSelected = true;\n }\n this.currentPosition.push(parseInt(this.inputBoxElement.style.left) / zoomFactor, parseInt(this.inputBoxElement.style.top) / zoomFactor, parseInt(this.inputBoxElement.style.width) / zoomFactor, parseInt(this.inputBoxElement.style.height) / zoomFactor);\n };\n FreeTextAnnotation.prototype.applyFreetextStyles = function (zoomFactor, isReadonly) {\n this.inputBoxElement.style.height = (this.defaultHeight * zoomFactor) + 'px';\n this.inputBoxElement.style.width = (this.defautWidth * zoomFactor) + 'px';\n this.inputBoxElement.style.borderWidth = (this.borderWidth * zoomFactor) + 'px';\n this.inputBoxElement.style.fontSize = (this.fontSize * zoomFactor) + 'px';\n this.inputBoxElement.style.fontFamily = this.fontFamily;\n this.inputBoxElement.readOnly = isNullOrUndefined(isReadonly) ? this.isReadonly : isReadonly;\n };\n /**\n * @private\n */\n FreeTextAnnotation.prototype.copySelectedText = function () {\n if (window.getSelection() !== null) {\n this.selectedText = window.getSelection().toString();\n var textArea = document.createElement('textarea');\n textArea.contentEditable = 'true';\n textArea.textContent = this.selectedText;\n textArea.style.position = 'fixed';\n document.body.appendChild(textArea);\n textArea.select();\n try {\n document.execCommand('copy');\n }\n catch (ex) {\n console.warn('Copy to clipboard failed.', ex);\n }\n finally {\n if (textArea) {\n document.body.removeChild(textArea);\n }\n }\n }\n };\n /**\n * @param target\n * @private\n */\n // eslint-disable-next-line\n FreeTextAnnotation.prototype.pasteSelectedText = function (target) {\n if (this.selectedText !== '' && target) {\n // eslint-disable-next-line\n var text = target.value;\n target.value = text.slice(0, this.selectionStart) + this.selectedText + text.slice(this.selectionEnd, text.length);\n }\n // eslint-disable-next-line\n var events = event;\n this.onKeyDownInputBox(events);\n };\n /**\n * @param target\n * @private\n */\n // eslint-disable-next-line\n FreeTextAnnotation.prototype.cutSelectedText = function (target) {\n if (window.getSelection() !== null) {\n // eslint-disable-next-line\n var text = target.value;\n this.selectedText = window.getSelection().toString();\n target.value = text.slice(0, target.selectionStart) + text.slice(target.selectionEnd);\n var textArea = document.createElement('textarea');\n textArea.contentEditable = 'true';\n textArea.textContent = this.selectedText;\n textArea.style.position = 'fixed';\n document.body.appendChild(textArea);\n textArea.select();\n try {\n document.execCommand('cut');\n }\n catch (ex) {\n console.warn('Copy to clipboard failed.', ex);\n }\n finally {\n if (textArea) {\n document.body.removeChild(textArea);\n }\n }\n }\n };\n /**\n * @param shapeAnnotations\n * @param pageNumber\n * @private\n */\n // eslint-disable-next-line\n FreeTextAnnotation.prototype.saveImportedFreeTextAnnotations = function (shapeAnnotations, pageNumber) {\n // eslint-disable-next-line\n var annotation = shapeAnnotations;\n if (annotation.AnnotType) {\n var vertexPoints = null;\n if (annotation.VertexPoints) {\n vertexPoints = [];\n for (var j = 0; j < annotation.VertexPoints.length; j++) {\n var point = { x: annotation.VertexPoints[j].X, y: annotation.VertexPoints[j].Y };\n vertexPoints.push(point);\n }\n }\n // eslint-disable-next-line max-len\n annotation.AnnotationSettings = annotation.AnnotationSettings ? annotation.AnnotationSettings : this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.freeTextSettings);\n var annot = void 0;\n // eslint-disable-next-line max-len\n annotation.allowedInteractions = annotation.AllowedInteractions ? annotation.AllowedInteractions : this.pdfViewer.annotationModule.updateAnnotationAllowedInteractions(annotation);\n var annotationBoundsX = !isNullOrUndefined(annotation.Bounds.X) ? annotation.Bounds.X : annotation.Bounds.x;\n var annotationBoundsY = !isNullOrUndefined(annotation.Bounds.Y) ? annotation.Bounds.Y : annotation.Bounds.y;\n var annotationBoundsWidth = annotation.Bounds.Width ? annotation.Bounds.Width : annotation.Bounds.width;\n var annotationBoundsHeight = annotation.Bounds.Height ? annotation.Bounds.Height : annotation.Bounds.height;\n // eslint-disable-next-line\n annot = {\n author: annotation.Author, allowedInteractions: annotation.allowedInteractions, modifiedDate: annotation.ModifiedDate, subject: annotation.Subject, id: 'freetext',\n rotateAngle: annotation.Rotate, dynamicText: annotation.MarkupText, strokeColor: annotation.StrokeColor,\n thickness: annotation.Thickness, fillColor: annotation.FillColor,\n bounds: {\n x: annotationBoundsX, y: annotationBoundsY, left: annotationBoundsX, top: annotationBoundsY,\n width: annotationBoundsWidth, height: annotationBoundsHeight, right: annotation.Bounds.Right,\n bottom: annotation.Bounds.Bottom\n }, annotName: annotation.AnnotName, shapeAnnotationType: 'FreeText',\n // eslint-disable-next-line\n pageIndex: pageNumber, opacity: annotation.Opacity, fontColor: annotation.FontColor, fontSize: annotation.FontSize,\n fontFamily: annotation.FontFamily, notes: annotation.MarkupText, textAlign: annotation.TextAlign,\n // eslint-disable-next-line\n comments: this.pdfViewer.annotationModule.getAnnotationComments(annotation.Comments, annotation, annotation.Author), review: { state: annotation.State, stateModel: annotation.StateModel, modifiedDate: annotation.ModifiedDate, author: annotation.Author },\n font: { isBold: annotation.Font.Bold, isItalic: annotation.Font.Italic, isStrikeout: annotation.Font.Strikeout, isUnderline: annotation.Font.Underline },\n annotationSelectorSettings: this.getSettings(annotation), annotationSettings: annotation.AnnotationSettings,\n // eslint-disable-next-line max-len\n customData: this.pdfViewer.annotation.getCustomData(annotation), isPrint: annotation.IsPrint, isCommentLock: annotation.IsCommentLock, isReadonly: annotation.IsReadonly\n };\n this.pdfViewer.annotationModule.storeAnnotations(pageNumber, annot, '_annotations_freetext');\n }\n };\n /**\n * @param shapeAnnotations\n * @param pageNumber\n * @private\n */\n // eslint-disable-next-line\n FreeTextAnnotation.prototype.updateFreeTextAnnotationCollections = function (shapeAnnotations, pageNumber) {\n // eslint-disable-next-line\n var annotation = shapeAnnotations;\n annotation.annotationAddMode = this.pdfViewer.annotationModule.findAnnotationMode(annotation, pageNumber, annotation.AnnotType);\n if (annotation.AnnotType) {\n var vertexPoints = null;\n if (annotation.VertexPoints) {\n vertexPoints = [];\n for (var j = 0; j < annotation.VertexPoints.length; j++) {\n var point = { x: annotation.VertexPoints[j].X, y: annotation.VertexPoints[j].Y };\n vertexPoints.push(point);\n }\n }\n // eslint-disable-next-line max-len\n annotation.AnnotationSettings = annotation.AnnotationSettings ? annotation.AnnotationSettings : this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.freeTextSettings);\n if (annotation.IsLocked) {\n annotation.AnnotationSettings.isLock = annotation.IsLocked;\n }\n // eslint-disable-next-line max-len\n annotation.allowedInteractions = annotation.AllowedInteractions ? annotation.AllowedInteractions : this.pdfViewer.annotationModule.updateAnnotationAllowedInteractions(annotation);\n var annotationBoundsX = annotation.Bounds.X ? annotation.Bounds.X : annotation.Bounds.x;\n var annotationBoundsY = annotation.Bounds.Y ? annotation.Bounds.Y : annotation.Bounds.y;\n var width = annotation.Bounds.Width ? annotation.Bounds.Width : annotation.Bounds.width;\n var height = annotation.Bounds.Height ? annotation.Bounds.Height : annotation.Bounds.height;\n // eslint-disable-next-line\n var annot = void 0;\n // eslint-disable-next-line\n annot = {\n author: annotation.Author, allowedInteractions: annotation.allowedInteractions, modifiedDate: annotation.ModifiedDate, subject: annotation.Subject, id: 'freetext',\n rotateAngle: annotation.Rotate, dynamicText: annotation.MarkupText, strokeColor: annotation.StrokeColor,\n thickness: annotation.Thickness, fillColor: annotation.FillColor,\n bounds: {\n x: annotationBoundsX, y: annotationBoundsY, left: annotationBoundsX, top: annotationBoundsY,\n width: width, height: height, right: annotation.Bounds.Right,\n bottom: annotation.Bounds.Bottom\n }, annotationId: annotation.AnnotName, shapeAnnotationType: 'FreeText',\n // eslint-disable-next-line\n pageIndex: pageNumber, opacity: annotation.Opacity, fontColor: annotation.FontColor, fontSize: annotation.FontSize,\n fontFamily: annotation.FontFamily, notes: annotation.MarkupText,\n // eslint-disable-next-line\n comments: this.pdfViewer.annotationModule.getAnnotationComments(annotation.Comments, annotation, annotation.Author), review: { state: annotation.State, stateModel: annotation.StateModel, modifiedDate: annotation.ModifiedDate, author: annotation.Author },\n customData: this.pdfViewer.annotation.getCustomData(annotation),\n font: { isBold: annotation.Font.Bold, isItalic: annotation.Font.Italic, isStrikeout: annotation.Font.Strikeout, isUnderline: annotation.Font.Underline }, pageNumber: pageNumber, annotationSettings: annotation.AnnotationSettings, isCommentLock: annotation.IsCommentLock, isReadonly: annotation.IsReadonly, isPrint: annotation.IsPrint,\n };\n return annot;\n }\n };\n /**\n * This method used to add annotations with using program.\n *\n * @param annotationType - It describes type of annotation\n * @param offset - It describes about the annotation bounds\n * @returns Object\n * @private\n */\n FreeTextAnnotation.prototype.updateAddAnnotationDetails = function (annotationObject, offset) {\n //Creating new object if annotationObject is null\n if (!annotationObject) {\n annotationObject = { offset: { x: 1, y: 1 }, pageNumber: 0, width: undefined, height: undefined };\n offset = annotationObject.offset;\n }\n else if (!annotationObject.offset)\n offset = { x: 1, y: 1 };\n else\n offset = annotationObject.offset;\n //Creating the CurrentDate and Annotation name\n var currentDateString = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n var annotationName = this.pdfViewer.annotation.createGUID();\n var fontStyle = annotationObject.fontStyle ? annotationObject.fontStyle : FontStyle.None;\n //Creating annotation settings\n var annotationSelectorSettings = this.pdfViewer.freeTextSettings.annotationSelectorSettings ? this.pdfViewer.freeTextSettings.annotationSelectorSettings : this.pdfViewer.annotationSelectorSettings;\n var annotationSettings = this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.freeTextSettings);\n var allowedInteractions = this.pdfViewer.freeTextSettings.allowedInteractions ? this.pdfViewer.freeTextSettings.allowedInteractions : this.pdfViewer.annotationSettings.allowedInteractions;\n annotationSettings.isLock = annotationObject.isLock ? annotationObject.isLock : false;\n annotationSettings.minHeight = annotationObject.minHeight ? annotationObject.minHeight : 0;\n annotationSettings.minWidth = annotationObject.minWidth ? annotationObject.minWidth : 0;\n annotationSettings.maxWidth = annotationObject.maxWidth ? annotationObject.maxWidth : 0;\n annotationSettings.maxHeight = annotationObject.maxHeight ? annotationObject.maxHeight : 0;\n annotationObject.width = annotationObject.width ? annotationObject.width : 150;\n annotationObject.height = annotationObject.height ? annotationObject.height : 24.6;\n //Creating Annotation objects with it's proper properties\n var freeTextAnnotation = [];\n var freeText = {\n AllowedInteractions: annotationObject.allowedInteractions ? annotationObject.allowedInteractions : allowedInteractions,\n AnnotName: annotationName,\n AnnotType: 'freeText',\n AnnotationFlags: 'Default',\n AnnotationIntent: null,\n AnnotationSelectorSettings: annotationObject.annotationSelectorSettings ? annotationObject.annotationSelectorSettings : annotationSelectorSettings,\n AnnotationSettings: annotationSettings,\n Author: annotationObject.author ? annotationObject.author : 'Guest',\n Border: { HorizontalRadius: 0, VerticalRadius: 0, Width: annotationObject.borderWidth ? annotationObject.borderWidth : 1 },\n BorderColor: { IsEmpty: true, B: 255, Blue: 1, C: 0, G: 255 },\n Bounds: { X: offset.x, Y: offset.y, Width: annotationObject.width, Height: annotationObject.height, Left: offset.x, Top: offset.y, Right: offset.x + annotationObject.width, Bottom: offset.y + annotationObject.height },\n CalloutLines: null,\n Color: { IsEmpty: false, B: 51, Blue: 0.2, C: 0, G: 255 },\n Comments: null,\n CreatedDate: currentDateString,\n CustomData: annotationObject.customData ? annotationObject.customData : null,\n ExistingCustomData: null,\n FillColor: annotationObject.fillColor ? annotationObject.fillColor : '#ffffff00',\n Flatten: false,\n FlattenPopups: false,\n Font: { Bold: fontStyle == FontStyle.Bold ? true : false, Italic: fontStyle == FontStyle.Italic ? true : false, Strikeout: fontStyle == FontStyle.Strikethrough ? true : false, Underline: fontStyle == FontStyle.Underline ? true : false },\n FontColor: annotationObject.fontColor ? annotationObject.fontColor : '#000',\n FontFamily: annotationObject.fontFamily ? annotationObject.fontFamily : 'Helvetica',\n FontSize: annotationObject.fontSize ? annotationObject.fontSize : 16,\n FreeTextAnnotationType: 'Text Box',\n InnerColor: null,\n IsCommentLock: false,\n IsLock: annotationObject.isLock ? annotationObject.isLock : false,\n IsPrint: (annotationObject.isPrint !== null && annotationObject.isPrint !== undefined) ? annotationObject.isPrint : true,\n Layer: null,\n LineEndingStyle: 'OpenArrow',\n Location: null,\n MarkupText: annotationObject.defaultText ? annotationObject.defaultText : 'Type Here',\n ModifiedDate: '',\n Name: annotationName,\n Opacity: annotationObject.opacity ? annotationObject.opacity : 1,\n Page: null,\n PageTags: null,\n ReviewHistory: null,\n Rotate: 0,\n IsReadonly: annotationObject.isReadonly ? annotationObject.isReadonly : false,\n State: 'Unmarked',\n StateModel: 'None',\n StrokeColor: annotationObject.borderColor ? annotationObject.borderColor : '#ffffff00',\n Subject: 'Text Box',\n Text: annotationObject.defaultText ? annotationObject.defaultText : 'Type Here',\n TextAlign: annotationObject.textAlignment ? annotationObject.textAlignment : 'Left',\n TextMarkupColor: null,\n Thickness: annotationObject.borderWidth ? annotationObject.borderWidth : 1,\n isAddAnnotationProgramatically: true\n };\n //Adding the annotation object to an array and return it\n freeTextAnnotation[0] = freeText;\n return { freeTextAnnotation: freeTextAnnotation };\n };\n /**\n * This method used to get the padding.\n */\n FreeTextAnnotation.prototype.getPaddingValues = function (fontSize) {\n var leftPadding = 4; // Left padding used in the drawing.js\n var topPadding = 5; // Top padding used in the drawing.js\n var inputBoxpadding = 2; // we have set the input box padding for the free text.\n topPadding = (topPadding - inputBoxpadding) * (fontSize / 16);\n return [leftPadding, topPadding];\n };\n /**\n * @private\n * This method used tp get the current position of x and y.\n */\n FreeTextAnnotation.prototype.addInputInZoom = function (currentPosition) {\n var zoomFactor = this.pdfViewerBase.getZoomFactor();\n this.inputBoxElement.style.left = (currentPosition.x * zoomFactor) + 'px';\n this.inputBoxElement.style.top = (currentPosition.y * zoomFactor) + 'px';\n this.inputBoxElement.style.height = (currentPosition.height * zoomFactor) + 'px';\n this.inputBoxElement.style.width = (currentPosition.width * zoomFactor) + 'px';\n this.inputBoxElement.style.borderWidth = (this.borderWidth * zoomFactor) + 'px';\n this.inputBoxElement.style.fontSize = (this.fontSize * zoomFactor) + 'px';\n };\n return FreeTextAnnotation;\n}());\nexport { FreeTextAnnotation };\n","/**\n * @hidden\n */\nvar InputElement = /** @class */ (function () {\n function InputElement(pdfviewer, pdfViewerBase) {\n this.pdfViewer = pdfviewer;\n this.pdfViewerBase = pdfViewerBase;\n this.inputBoxElement = document.createElement('input');\n this.inputBoxElement.addEventListener('focusout', this.onFocusOutInputBox.bind(this));\n this.maxHeight = 24.6;\n this.maxWidth = 151;\n this.fontSize = 16;\n this.isInFocus = false;\n this.inputBoxElement.style.position = 'absolute';\n this.inputBoxElement.style.fontFamily = 'Helvetica';\n }\n /**\n * @param currentPosition\n * @param annotation\n * @private\n */\n InputElement.prototype.editLabel = function (currentPosition, annotation) {\n var pageIndex = this.pdfViewerBase.currentPageNumber - 1;\n var pageDiv = this.pdfViewerBase.getElement('_pageDiv_' + (pageIndex));\n var zoomFactor = this.pdfViewerBase.getZoomFactor();\n this.inputBoxElement.value = annotation.labelContent;\n this.inputBoxElement.select();\n annotation.labelContent = '';\n this.pdfViewer.nodePropertyChange(annotation, {});\n this.inputBoxElement.style.left = ((currentPosition.x) * zoomFactor) + 'px';\n this.inputBoxElement.style.top = ((currentPosition.y) * zoomFactor) + 'px';\n this.inputBoxElement.style.maxHeight = (this.maxHeight * zoomFactor) + 'px';\n this.inputBoxElement.style.maxWidth = (this.maxWidth * zoomFactor) + 'px';\n this.inputBoxElement.style.fontSize = (this.fontSize * zoomFactor) + 'px';\n this.inputBoxElement.style.textAlign = 'center';\n if (annotation && annotation.wrapper && annotation.wrapper.bounds) {\n // eslint-disable-next-line max-len\n this.inputBoxElement.style.width = annotation.wrapper.bounds.width ? (annotation.wrapper.bounds.width / 2 * zoomFactor) + 1 + 'px' : (this.maxWidth * zoomFactor) + 'px';\n var inputEleWidth = parseFloat(this.inputBoxElement.style.width);\n inputEleWidth = inputEleWidth > (this.maxWidth * zoomFactor) ? (this.maxWidth * zoomFactor) : inputEleWidth;\n if (annotation.wrapper.bounds.left) {\n // eslint-disable-next-line max-len\n this.inputBoxElement.style.left = ((annotation.wrapper.bounds.left + (annotation.wrapper.bounds.width / 2) - (inputEleWidth / (zoomFactor * 2))) * zoomFactor) + 'px';\n }\n if (annotation.wrapper.bounds.top) {\n // eslint-disable-next-line max-len\n if (annotation.shapeAnnotationType === 'Line' || annotation.shapeAnnotationType === 'LineWidthArrowHead' ||\n annotation.shapeAnnotationType === 'Distance' || annotation.shapeAnnotationType === 'Polygon') {\n // eslint-disable-next-line max-len\n this.inputBoxElement.style.top = ((annotation.wrapper.bounds.top + (annotation.wrapper.bounds.height / 2) - (this.maxHeight)) * zoomFactor) + 'px';\n }\n else {\n // eslint-disable-next-line max-len\n this.inputBoxElement.style.top = ((annotation.wrapper.bounds.top + (annotation.wrapper.bounds.height / 2) - (this.maxHeight / 2)) * zoomFactor) + 'px';\n }\n }\n this.inputBoxElement.maxLength = annotation.labelMaxLength;\n this.inputBoxElement.fontFamily = annotation.fontFamily;\n this.inputBoxElement.style.color = annotation.fontColor;\n this.inputBoxElement.style.border = '1px solid #ffffff00';\n this.inputBoxElement.style.padding = '2px';\n this.inputBoxElement.style.background = annotation.labelFillColor;\n }\n pageDiv.appendChild(this.inputBoxElement);\n this.isInFocus = true;\n this.inputBoxElement.focus();\n };\n /**\n * @private\n */\n InputElement.prototype.onFocusOutInputBox = function () {\n var pageIndex = this.pdfViewerBase.currentPageNumber - 1;\n var pageDiv = this.pdfViewerBase.getElement('_pageDiv_' + (pageIndex));\n var inputEleHeight = parseFloat(this.inputBoxElement.style.height);\n var inputEleWidth = parseFloat(this.inputBoxElement.style.width);\n this.isInFocus = false;\n var selectedAnnotation = this.pdfViewer.selectedItems.annotations[0];\n // eslint-disable-next-line\n if (selectedAnnotation) {\n inputEleWidth = ((inputEleWidth - 1) / this.pdfViewerBase.getZoomFactor());\n inputEleHeight = ((inputEleHeight - 1) / this.pdfViewerBase.getZoomFactor());\n // this.pdfViewer.annotation.modifyDynamicTextValue(this.inputBoxElement.value, this.selectedAnnotation.annotName);\n selectedAnnotation.labelContent = this.inputBoxElement.value;\n selectedAnnotation.notes = this.inputBoxElement.value;\n // eslint-disable-next-line max-len\n if (selectedAnnotation.shapeAnnotationType === 'Rectangle' || selectedAnnotation.shapeAnnotationType === 'Ellipse' || selectedAnnotation.shapeAnnotationType === 'Line'\n || selectedAnnotation.shapeAnnotationType === 'LineWidthArrowHead') {\n this.pdfViewer.annotation.shapeAnnotationModule.modifyInCollection('labelContent', pageIndex, selectedAnnotation);\n }\n else if (selectedAnnotation.shapeAnnotationType === 'Radius' && selectedAnnotation.measureType) {\n this.pdfViewer.annotation.measureAnnotationModule.modifyInCollection('labelContent', pageIndex, selectedAnnotation);\n }\n // eslint-disable-next-line\n this.pdfViewer.nodePropertyChange(selectedAnnotation, {});\n this.pdfViewer.renderSelector(selectedAnnotation.pageIndex, this.pdfViewer.annotationSelectorSettings);\n // eslint-disable-next-line\n var commentsDiv = document.getElementById(this.pdfViewer.selectedItems.annotations[0].annotName);\n if (commentsDiv && commentsDiv.childNodes && this.inputBoxElement.value !== 'label') {\n if (commentsDiv.childNodes[0].ej2_instances) {\n commentsDiv.childNodes[0].ej2_instances[0].value = this.inputBoxElement.value;\n }\n else if (commentsDiv.childNodes[0].childNodes && commentsDiv.childNodes[0].childNodes[1].ej2_instances) {\n commentsDiv.childNodes[0].childNodes[1].ej2_instances[0].value = this.inputBoxElement.value;\n }\n }\n }\n pageDiv.removeChild(this.inputBoxElement);\n var canvass = document.getElementById(this.pdfViewer.element.id + '_annotationCanvas_' + pageIndex);\n // eslint-disable-next-line\n this.pdfViewer.renderDrawing(canvass, pageIndex);\n };\n /**\n * @param bounds\n * @param pageIndex\n * @param bounds\n * @param pageIndex\n * @private\n */\n // eslint-disable-next-line\n InputElement.prototype.calculateLabelBounds = function (bounds, pageIndex) {\n // eslint-disable-next-line\n var labelBounds = {};\n if (bounds) {\n var labelTop = 0;\n var labelLeft = 0;\n var labelWidth = 0;\n var labelHeight = 24.6;\n var labelMaxWidth = 151;\n if (pageIndex === undefined) {\n pageIndex = this.pdfViewerBase.currentPageNumber - 1;\n }\n var rotation = this.pdfViewerBase.pageSize[pageIndex].rotation;\n if (bounds.width) {\n // eslint-disable-next-line max-len\n labelWidth = (bounds.width / 2);\n labelWidth = (labelWidth > 0 && labelWidth < labelMaxWidth) ? labelWidth : labelMaxWidth;\n }\n if (bounds.left) {\n // eslint-disable-next-line max-len\n labelLeft = (bounds.left + (bounds.width / 2) - (labelWidth / 2));\n }\n if (bounds.top) {\n // eslint-disable-next-line max-len\n labelTop = (bounds.top + (bounds.height / 2) - (labelHeight / 2));\n }\n if (rotation === 1 || rotation === 3) {\n // eslint-disable-next-line max-len\n labelBounds = { left: labelLeft, top: labelTop, width: (labelWidth - labelHeight) + (labelWidth / 2), height: (labelHeight * 2) + labelWidth, right: 0, bottom: 0 };\n }\n else {\n // eslint-disable-next-line max-len\n labelBounds = { left: labelLeft, top: labelTop, width: labelWidth, height: labelHeight, right: 0, bottom: 0 };\n }\n }\n return labelBounds;\n };\n /**\n * @param bounds\n * @private\n */\n // eslint-disable-next-line\n InputElement.prototype.calculateLabelBoundsFromLoadedDocument = function (bounds) {\n // eslint-disable-next-line\n var labelBounds = {};\n if (bounds) {\n var labelTop = 0;\n var labelLeft = 0;\n var labelWidth = 0;\n var labelHeight = 24.6;\n var labelMaxWidth = 151;\n if (bounds.Width) {\n // eslint-disable-next-line max-len\n labelWidth = (bounds.Width / 2);\n labelWidth = (labelWidth > 0 && labelWidth < labelMaxWidth) ? labelWidth : labelMaxWidth;\n }\n if (bounds.Left) {\n // eslint-disable-next-line max-len\n labelLeft = (bounds.Left + (bounds.Width / 2) - (labelWidth / 2));\n }\n if (bounds.Top) {\n // eslint-disable-next-line max-len\n labelTop = (bounds.Top + (bounds.Height / 2) - (labelHeight / 2));\n }\n // eslint-disable-next-line max-len\n labelBounds = { left: labelLeft, top: labelTop, width: labelWidth, height: labelHeight, right: 0, bottom: 0 };\n }\n return labelBounds;\n };\n return InputElement;\n}());\nexport { InputElement };\n","import { TextMarkupAnnotation, ShapeAnnotation, StampAnnotation, StickyNotesAnnotation, MeasureAnnotation, InkAnnotation, AllowedInteraction, DynamicStampItem, SignStampItem, StandardBusinessStampItem } from '../index';\nimport { createElement, Browser, isNullOrUndefined, isBlazor } from '@syncfusion/ej2-base';\nimport { NumericTextBox, Slider, ColorPicker } from '@syncfusion/ej2-inputs';\nimport { Dialog } from '@syncfusion/ej2-popups';\nimport { DropDownButton } from '@syncfusion/ej2-splitbuttons';\nimport { processPathData, splitArrayCollection } from '@syncfusion/ej2-drawings';\nimport { isLineShapes, cloneObject } from '../drawing/drawing-util';\nimport { NodeDrawingTool, LineTool, MoveTool, ResizeTool, ConnectTool } from '../drawing/tools';\nimport { updateDistanceLabel, updateRadiusLabel, updatePerimeterLabel, updateCalibrateLabel } from '../drawing/connector-util';\nimport { FreeTextAnnotation } from './free-text-annotation';\nimport { InputElement } from './input-element';\nimport { InPlaceEditor } from '@syncfusion/ej2-inplace-editor';\n/**\n * The `Annotation` module is used to handle annotation actions of PDF viewer.\n */\nvar Annotation = /** @class */ (function () {\n /**\n * @param pdfViewer\n * @param viewerBase\n * @param pdfViewer\n * @param viewerBase\n * @private\n */\n function Annotation(pdfViewer, viewerBase) {\n this.isUndoRedoAction = false;\n this.isUndoAction = false;\n this.annotationSelected = true;\n this.isAnnotDeletionApiCall = false;\n this.removedDocumentAnnotationCollection = [];\n /**\n * @private\n */\n this.isShapeCopied = false;\n /**\n * @private\n */\n this.actionCollection = [];\n /**\n * @private\n */\n this.redoCollection = [];\n /**\n * @private\n */\n this.isPopupNoteVisible = false;\n /**\n * @private\n */\n this.undoCommentsElement = [];\n /**\n * @private\n */\n this.redoCommentsElement = [];\n /**\n * @private\n */\n this.selectAnnotationId = null;\n /**\n * @private\n */\n this.isAnnotationSelected = false;\n /**\n * @private\n */\n this.annotationPageIndex = null;\n this.previousIndex = null;\n // eslint-disable-next-line\n this.overlappedAnnotations = [];\n /**\n * @private\n */\n // eslint-disable-next-line\n this.overlappedCollections = [];\n /**\n * @private\n */\n // eslint-disable-next-line\n this.isFormFieldShape = false;\n /**\n * @private\n */\n // eslint-disable-next-line\n this.removedAnnotationCollection = [];\n this.pdfViewer = pdfViewer;\n this.pdfViewerBase = viewerBase;\n if (this.pdfViewer.enableTextMarkupAnnotation) {\n this.textMarkupAnnotationModule = new TextMarkupAnnotation(this.pdfViewer, this.pdfViewerBase);\n }\n if (this.pdfViewer.enableShapeAnnotation) {\n this.shapeAnnotationModule = new ShapeAnnotation(this.pdfViewer, this.pdfViewerBase);\n }\n if (this.pdfViewer.enableMeasureAnnotation) {\n this.measureAnnotationModule = new MeasureAnnotation(this.pdfViewer, this.pdfViewerBase);\n }\n this.stampAnnotationModule = new StampAnnotation(this.pdfViewer, this.pdfViewerBase);\n this.stickyNotesAnnotationModule = new StickyNotesAnnotation(this.pdfViewer, this.pdfViewerBase);\n this.freeTextAnnotationModule = new FreeTextAnnotation(this.pdfViewer, this.pdfViewerBase);\n this.inputElementModule = new InputElement(this.pdfViewer, this.pdfViewerBase);\n this.inkAnnotationModule = new InkAnnotation(this.pdfViewer, this.pdfViewerBase);\n }\n /**\n * Set annotation type to be added in next user interaction in PDF Document.\n *\n * @param type\n * @param dynamicStampItem\n * @param signStampItem\n * @param standardBusinessStampItem\n * @returns void\n */\n // eslint-disable-next-line max-len\n Annotation.prototype.setAnnotationMode = function (type, dynamicStampItem, signStampItem, standardBusinessStampItem) {\n var allowServerDataBind = this.pdfViewer.allowServerDataBinding;\n this.pdfViewer.enableServerDataBinding(false);\n if (this.pdfViewer.tool === \"Stamp\" && this.pdfViewer.toolbarModule) {\n this.pdfViewer.toolbarModule.updateStampItems();\n }\n if (this.pdfViewer.toolbarModule && this.pdfViewer.toolbarModule.annotationToolbarModule) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.resetFreeTextAnnot();\n }\n type !== 'None' ? this.triggerAnnotationUnselectEvent() : null;\n this.pdfViewer.tool = \"\";\n if (this.pdfViewer.toolbarModule) {\n this.pdfViewer.toolbarModule.deSelectCommentAnnotation();\n }\n if (type === 'None') {\n this.clearAnnotationMode();\n }\n else if (type === 'Highlight' || type === 'Strikethrough' || type === 'Underline') {\n if (this.textMarkupAnnotationModule) {\n this.textMarkupAnnotationModule.isSelectionMaintained = false;\n this.textMarkupAnnotationModule.drawTextMarkupAnnotations(type.toString());\n }\n }\n else if (type === 'Line' || type === 'Arrow' || type === 'Rectangle' || type === 'Circle' || type === 'Polygon') {\n if (this.shapeAnnotationModule) {\n this.shapeAnnotationModule.setAnnotationType(type);\n }\n }\n else if (type === 'Distance' || type === 'Perimeter' || type === 'Area' || type === 'Radius' || type === 'Volume') {\n if (this.measureAnnotationModule) {\n this.measureAnnotationModule.setAnnotationType(type);\n }\n }\n else if (type === 'FreeText' && this.freeTextAnnotationModule) {\n this.freeTextAnnotationModule.setAnnotationType('FreeText');\n this.freeTextAnnotationModule.isNewFreeTextAnnot = true;\n this.freeTextAnnotationModule.isNewAddedAnnot = true;\n }\n else if (type === 'HandWrittenSignature') {\n this.pdfViewerBase.signatureModule.setAnnotationMode();\n }\n else if (type === 'Initial') {\n this.pdfViewerBase.signatureModule.setInitialMode();\n }\n else if (type === 'Ink') {\n this.inkAnnotationModule.setAnnotationMode();\n }\n else if (type === 'StickyNotes') {\n this.pdfViewerBase.isCommentIconAdded = true;\n this.pdfViewerBase.isAddComment = true;\n // eslint-disable-next-line max-len\n var pageDiv = document.getElementById(this.pdfViewer.element.id + '_pageDiv_' + (this.pdfViewerBase.currentPageNumber - 1));\n if (pageDiv) {\n pageDiv.addEventListener('mousedown', this.pdfViewer.annotationModule.stickyNotesAnnotationModule.drawIcons.bind(this));\n }\n }\n else if (type === 'Stamp') {\n this.pdfViewer.annotation.stampAnnotationModule.isStampAddMode = true;\n this.pdfViewer.annotationModule.stampAnnotationModule.isStampAnnotSelected = true;\n this.pdfViewerBase.stampAdded = true;\n if (dynamicStampItem) {\n // eslint-disable-next-line\n var stampName = DynamicStampItem[dynamicStampItem];\n this.pdfViewerBase.isDynamicStamp = true;\n this.stampAnnotationModule.retrieveDynamicStampAnnotation(stampName);\n }\n else if (signStampItem) {\n // eslint-disable-next-line\n var stampName = SignStampItem[signStampItem];\n this.pdfViewerBase.isDynamicStamp = false;\n this.stampAnnotationModule.retrievestampAnnotation(stampName);\n }\n else if (standardBusinessStampItem) {\n // eslint-disable-next-line\n var stampName = StandardBusinessStampItem[standardBusinessStampItem];\n this.pdfViewerBase.isDynamicStamp = false;\n this.stampAnnotationModule.retrievestampAnnotation(stampName);\n }\n }\n this.pdfViewer.enableServerDataBinding(allowServerDataBind, true);\n this.pdfViewerBase.initiateTextSelection();\n };\n Annotation.prototype.deleteAnnotationById = function (annotationId) {\n if (annotationId) {\n this.isAnnotDeletionApiCall = true;\n this.annotationSelected = false;\n this.selectAnnotation(annotationId);\n this.deleteAnnotation();\n this.isAnnotDeletionApiCall = false;\n }\n };\n Annotation.prototype.clearAnnotationMode = function () {\n if (this.textMarkupAnnotationModule) {\n this.textMarkupAnnotationModule.isTextMarkupAnnotationMode = false;\n }\n if (this.freeTextAnnotationModule) {\n this.freeTextAnnotationModule.isNewFreeTextAnnot = false;\n this.freeTextAnnotationModule.isNewAddedAnnot = false;\n }\n if (this.pdfViewerBase.isTextMarkupAnnotationModule()) {\n this.pdfViewer.annotation.textMarkupAnnotationModule.currentTextMarkupAddMode = '';\n }\n if (this.pdfViewerBase.isShapeAnnotationModule()) {\n this.pdfViewer.annotation.shapeAnnotationModule.currentAnnotationMode = '';\n }\n if (this.pdfViewerBase.isCalibrateAnnotationModule()) {\n this.pdfViewer.annotation.measureAnnotationModule.currentAnnotationMode = '';\n }\n if (this.pdfViewer.annotationModule.inkAnnotationModule) {\n // eslint-disable-next-line\n var currentPageNumber = parseInt(this.pdfViewer.annotationModule.inkAnnotationModule.currentPageNumber);\n this.pdfViewer.annotationModule.inkAnnotationModule.drawInkAnnotation(currentPageNumber);\n }\n };\n Annotation.prototype.deleteAnnotation = function () {\n if (this.textMarkupAnnotationModule) {\n this.textMarkupAnnotationModule.deleteTextMarkupAnnotation();\n }\n var selectedAnnotation = this.pdfViewer.selectedItems.annotations[0];\n if (selectedAnnotation) {\n var data = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_formfields');\n var formFieldsData = JSON.parse(data);\n var newFormFieldsData = [];\n if (formFieldsData) {\n for (var x = 0; x < formFieldsData.length; x++) {\n if (formFieldsData[x].uniqueID == selectedAnnotation.id) {\n formFieldsData[x].Value = '';\n for (var y = 0; y < formFieldsData.length; y++) {\n if (formFieldsData[y].Name === 'ink') {\n formFieldsData[y].Value = '';\n }\n if (formFieldsData[x].FieldName === formFieldsData[y].FieldName && formFieldsData[y].Name === 'ink') {\n formFieldsData.splice(y, 1);\n }\n }\n newFormFieldsData.push(formFieldsData[x]);\n }\n else {\n newFormFieldsData.push(formFieldsData[x]);\n }\n }\n window.sessionStorage.setItem(this.pdfViewerBase.documentId + '_formfields', JSON.stringify(newFormFieldsData));\n }\n }\n var isLock = false;\n var isReadOnly = false;\n if (this.pdfViewer.selectedItems.annotations.length > 0) {\n // eslint-disable-next-line\n var annotation_1 = this.pdfViewer.selectedItems.annotations[0];\n var type = annotation_1.shapeAnnotationType;\n if (type === 'Path' || annotation_1.formFieldAnnotationType === 'SignatureField' || annotation_1.formFieldAnnotationType === 'InitialField' || type === 'HandWrittenSignature' || type === 'SignatureText' || type === 'SignatureImage') {\n var inputFields = document.getElementById(annotation_1.id);\n if (inputFields && inputFields.disabled) {\n isReadOnly = true;\n }\n }\n if (annotation_1.annotationSettings) {\n isLock = annotation_1.annotationSettings.isLock;\n if (isLock && this.checkAllowedInteractions('Delete', annotation_1)) {\n isLock = false;\n }\n }\n if (!isLock && !isReadOnly) {\n var pageNumber = annotation_1.pageIndex;\n // eslint-disable-next-line\n var shapeType = annotation_1.shapeAnnotationType;\n // eslint-disable-next-line\n var undoElement = void 0;\n if (shapeType === 'Line' || shapeType === 'LineWidthArrowHead' || shapeType === 'Polygon' || shapeType === 'Ellipse' || shapeType === 'Rectangle' || shapeType === 'Radius' || shapeType === 'Distance') {\n // eslint-disable-next-line max-len\n if (isNullOrUndefined(annotation_1.measureType) || annotation_1.measureType === '') {\n this.pdfViewer.annotation.stickyNotesAnnotationModule.findPosition(annotation_1, 'shape');\n this.updateImportAnnotationCollection(annotation_1, pageNumber, 'shapeAnnotation');\n }\n else {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.stickyNotesAnnotationModule.findPosition(annotation_1, 'measure');\n // eslint-disable-next-line max-len\n this.updateImportAnnotationCollection(annotation_1, pageNumber, 'measureShapeAnnotation');\n }\n undoElement = this.modifyInCollections(annotation_1, 'delete');\n }\n else if (shapeType === 'FreeText') {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.stickyNotesAnnotationModule.findPosition(annotation_1, 'FreeText', 'delete');\n undoElement = this.modifyInCollections(annotation_1, 'delete');\n this.updateImportAnnotationCollection(annotation_1, pageNumber, 'freeTextAnnotation');\n }\n else if (shapeType === 'HandWrittenSignature' || shapeType === 'SignatureImage' || shapeType === 'SignatureText') {\n undoElement = this.modifyInCollections(annotation_1, 'delete');\n }\n else if (shapeType === 'Ink') {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.stickyNotesAnnotationModule.findPosition(annotation_1, 'Ink', 'delete');\n undoElement = this.modifyInCollections(annotation_1, 'delete');\n this.updateImportAnnotationCollection(annotation_1, pageNumber, 'signatureInkAnnotation');\n }\n else {\n undoElement = this.pdfViewer.selectedItems.annotations[0];\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.stickyNotesAnnotationModule.findPosition(undoElement, undoElement.shapeAnnotationType, 'delete');\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.stampAnnotationModule.updateSessionStorage(annotation_1, null, 'delete');\n }\n if (shapeType === 'StickyNotes') {\n this.updateImportAnnotationCollection(annotation_1, pageNumber, 'stickyNotesAnnotation');\n }\n if (shapeType === 'Stamp' || 'Image') {\n this.updateImportAnnotationCollection(annotation_1, pageNumber, 'stampAnnotations');\n }\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(pageNumber, null, annotation_1, 'Delete', '', undoElement, annotation_1);\n // eslint-disable-next-line\n var removeDiv = void 0;\n if (annotation_1.annotName !== '') {\n removeDiv = document.getElementById(annotation_1.annotName);\n }\n else {\n if (undoElement) {\n if (undoElement.annotName !== '') {\n removeDiv = document.getElementById(undoElement.annotName);\n }\n }\n }\n this.removeCommentPanelDiv(removeDiv);\n var selectedAnnot = this.pdfViewer.selectedItems.annotations[0];\n var annotationId = selectedAnnot.annotName;\n var annotType = this.getAnnotationType(selectedAnnot.shapeAnnotationType, selectedAnnot.measureType);\n if (shapeType === 'Path' || selectedAnnot.formFieldAnnotationType === 'SignatureField' || selectedAnnot.formFieldAnnotationType === 'InitialField' || shapeType === 'HandWrittenSignature' || shapeType === 'SignatureText' || shapeType === 'SignatureImage') { // eslint-disable-next-line\n var formFieldCollection = this.pdfViewer.retrieveFormFields();\n var index = formFieldCollection.findIndex(function (el) { return el.id === annotation_1.id; });\n var formFieldName = void 0;\n if (index > -1) {\n formFieldName = formFieldCollection[index].name;\n }\n for (var m = 0; m < formFieldCollection.length; m++) {\n if (selectedAnnot.id === formFieldCollection[m].id || (isNullOrUndefined(formFieldName) && formFieldName === formFieldCollection[m].name)) {\n formFieldCollection[m].value = '';\n formFieldCollection[m].signatureType = '';\n var annotation_2 = this.getAnnotationsFromCollections(formFieldCollection[m].id);\n this.updateInputFieldDivElement(annotation_2);\n undoElement = this.modifyInCollections(annotation_2, 'delete');\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(annotation_2.pageIndex, null, annotation_2, 'Delete', '', undoElement, annotation_2);\n if (this.pdfViewer.formDesignerModule && selectedAnnot.formFieldAnnotationType)\n this.updateFormFieldCollection(annotation_2);\n else\n this.updateAnnotationCollection(annotation_2);\n this.pdfViewer.remove(annotation_2);\n }\n }\n if (this.pdfViewer.formDesignerModule && selectedAnnot.formFieldAnnotationType)\n this.updateFormFieldCollection(annotation_1);\n else\n this.updateAnnotationCollection(annotation_1);\n }\n if (this.pdfViewer.formDesignerModule && selectedAnnot.formFieldAnnotationType)\n this.updateFormFieldCollection(annotation_1);\n else\n this.updateAnnotationCollection(annotation_1);\n var formFieldObj = this.pdfViewer.nameTable[annotation_1.id.split(\"_\")[0]];\n if (formFieldObj != null && (formFieldObj.formFieldAnnotationType === 'SignatureField' || formFieldObj.formFieldAnnotationType === 'InitialField')) {\n var index = this.pdfViewer.formFieldCollections.findIndex(function (el) { return el.id === annotation_1.id.split(\"_\")[0]; });\n var formFieldName = void 0;\n if (index > -1) {\n formFieldName = this.pdfViewer.formFieldCollections[index].name;\n }\n for (var i = 0; i < this.pdfViewer.formFieldCollections.length; i++) {\n if (formFieldName === this.pdfViewer.formFieldCollections[i].name) {\n var formFieldsIndex = this.pdfViewer.formFieldCollections[i];\n this.pdfViewer.fireFormFieldPropertiesChangeEvent(\"formFieldPropertiesChange\", formFieldsIndex, formFieldsIndex.pageIndex, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, formFieldsIndex.value, \"\");\n formFieldsIndex.value = \"\";\n formFieldsIndex.signatureType = \"\";\n this.pdfViewer.formDesignerModule.updateFormFieldCollections(formFieldsIndex);\n var annotation_3 = this.getAnnotationsFromCollections(formFieldsIndex.id + '_content');\n undoElement = this.modifyInCollections(annotation_3, 'delete');\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(annotation_3.pageIndex, null, annotation_3, 'Delete', '', undoElement, annotation_3);\n this.updateInputFieldDivElement(annotation_3);\n var formFieldObject = this.pdfViewer.nameTable[annotation_3.id.split(\"_\")[0]];\n formFieldObject.wrapper.children.splice(formFieldObject.wrapper.children.indexOf(annotation_3.wrapper.children[0]), 1);\n this.pdfViewer.remove(annotation_3);\n }\n }\n }\n this.pdfViewer.remove(annotation_1);\n this.pdfViewer.renderDrawing();\n this.pdfViewer.clearSelection(pageNumber);\n this.pdfViewerBase.setItemInSessionStorage(this.pdfViewerBase.formFieldCollection, '_formDesigner');\n this.pdfViewerBase.updateDocumentEditedProperty(true);\n this.pdfViewerBase.tool = null;\n this.pdfViewer.tool = null;\n if (selectedAnnot.shapeAnnotationType === 'HandWrittenSignature' || selectedAnnot.shapeAnnotationType === 'SignatureText' || selectedAnnot.shapeAnnotationType === 'SignatureImage' || selectedAnnot.shapeAnnotationType === 'Path') {\n // eslint-disable-next-line max-len\n var bounds = { left: selectedAnnot.bounds.x, top: selectedAnnot.bounds.y, width: selectedAnnot.bounds.width, height: selectedAnnot.bounds.height };\n // eslint-disable-next-line max-len\n this.pdfViewer.fireSignatureRemove(pageNumber, selectedAnnot.id, selectedAnnot.shapeAnnotationType, bounds);\n }\n else if (this.pdfViewer.annotationModule) {\n // eslint-disable-next-line max-len\n this.pdfViewer.fireAnnotationRemove(pageNumber, annotationId, annotType, selectedAnnot.bounds);\n }\n if (this.pdfViewer.textSelectionModule) {\n this.pdfViewer.textSelectionModule.enableTextSelectionMode();\n }\n }\n }\n this.updateToolbar(true);\n if (this.pdfViewer.toolbarModule) {\n if (this.pdfViewer.toolbarModule.annotationToolbarModule && !isLock) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.selectAnnotationDeleteItem(false, true);\n this.pdfViewer.toolbarModule.annotationToolbarModule.enableTextMarkupAnnotationPropertiesTools(false);\n }\n }\n };\n /**\n * @param annotationId\n */\n // eslint-disable-next-line max-len\n Annotation.prototype.getAnnotationsFromCollections = function (annotationId) {\n var collections = this.pdfViewer.annotations;\n if (collections && annotationId) {\n for (var i = 0; i < collections.length; i++) {\n if (collections[i].id === annotationId) {\n return collections[i];\n }\n }\n }\n };\n ;\n /**\n * @param annotation\n */\n Annotation.prototype.updateInputFieldDivElement = function (annotation) {\n var inputFields = document.getElementById(annotation.id);\n var signatureFieldElement = document.getElementById(annotation.id + \"_html_element\");\n if (inputFields === null && !isNullOrUndefined(signatureFieldElement)) {\n inputFields = signatureFieldElement.children[0].children[0];\n }\n if (inputFields && inputFields.classList.contains('e-pdfviewer-signatureformfields-signature')) {\n inputFields.className = 'e-pdfviewer-signatureformfields';\n inputFields.style.pointerEvents = '';\n inputFields.parentElement.style.pointerEvents = '';\n if (this.pdfViewer.formDesignerModule) {\n this.pdfViewer.formDesignerModule.updateSignatureValue(annotation.id);\n }\n else {\n this.pdfViewer.formFieldsModule.updateDataInSession(inputFields, '');\n }\n }\n };\n /**\n * @param annotation\n * @param pageNumber\n * @param annotation\n * @param pageNumber\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.storeAnnotationCollections = function (annotation, pageNumber) {\n if (this.isFormFieldShape) {\n var collectionDetails = this.checkFormDesignCollection(annotation);\n var selectAnnotation = cloneObject(annotation);\n selectAnnotation.formFieldId = annotation.annotName;\n selectAnnotation.pageNumber = pageNumber;\n delete selectAnnotation.annotName;\n if (annotation.id) {\n selectAnnotation.uniqueKey = annotation.id;\n delete selectAnnotation.id;\n }\n if (collectionDetails.isExisting) {\n this.pdfViewer.formFieldCollection.splice(collectionDetails.position, 0, selectAnnotation);\n }\n else {\n this.pdfViewer.formFieldCollection.push(selectAnnotation);\n }\n }\n else {\n // eslint-disable-next-line\n var collectionDetails = this.checkAnnotationCollection(annotation);\n // eslint-disable-next-line\n var selectAnnotation = cloneObject(annotation);\n selectAnnotation.annotationId = annotation.annotName;\n selectAnnotation.pageNumber = pageNumber;\n delete selectAnnotation.annotName;\n if (annotation.shapeAnnotationType === 'stamp') {\n selectAnnotation.uniqueKey = annotation.randomId;\n delete selectAnnotation.randomId;\n }\n if (annotation.shapeAnnotationType === 'sticky') {\n selectAnnotation.uniqueKey = annotation.annotName;\n }\n if (annotation.id) {\n selectAnnotation.uniqueKey = annotation.id;\n delete selectAnnotation.id;\n }\n // eslint-disable-next-line\n if (selectAnnotation.customData && annotation.customData && JSON.stringify(selectAnnotation.customData) !== JSON.stringify(annotation.customData)) {\n selectAnnotation.customData = annotation.customData;\n }\n if (collectionDetails.isExisting) {\n this.pdfViewer.annotationCollection.splice(collectionDetails.position, 0, selectAnnotation);\n }\n else {\n this.pdfViewer.annotationCollection.push(selectAnnotation);\n }\n }\n };\n Annotation.prototype.checkFormDesignCollection = function (annotation) {\n // eslint-disable-next-line\n var collections = this.pdfViewer.formFieldCollection;\n if (collections && annotation) {\n for (var i = 0; i < collections.length; i++) {\n if (collections[i].formFieldId === annotation.annotName) {\n this.pdfViewer.formFieldCollection.splice(i, 1);\n return { isExisting: true, position: i };\n }\n }\n }\n return { isExisting: false, position: null };\n };\n Annotation.prototype.updateFormFieldCollection = function (annotation) {\n // eslint-disable-next-line\n var collections = this.pdfViewer.formFieldCollection;\n if (collections && annotation) {\n for (var i = 0; i < collections.length; i++) {\n if (collections[i].formFieldId === annotation.annotName) {\n this.removedAnnotationCollection.push(collections[i]);\n this.pdfViewer.formFieldCollection.splice(i, 1);\n break;\n }\n }\n }\n };\n /**\n * @param annotation\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.getCustomData = function (annotation) {\n var customData;\n if (annotation.ExistingCustomData && !annotation.CustomData) {\n customData = JSON.parse(annotation.ExistingCustomData);\n }\n else if (annotation.CustomData === null) {\n if (annotation.shapeAnnotationType === 'sticky') {\n customData = this.pdfViewer.stickyNotesSettings.customData;\n }\n if (annotation.shapeAnnotationType === 'Stamp') {\n customData = this.pdfViewer.stampSettings.customData;\n }\n if (annotation.shapeAnnotationType === 'FreeText') {\n customData = this.pdfViewer.freeTextSettings.customData;\n }\n if (annotation.id === 'shape') {\n customData = this.getShapeData(annotation.ShapeAnnotationType, annotation.subject);\n }\n if (annotation.id === 'measure') {\n customData = this.getMeasureData(annotation.Subject);\n }\n if (annotation.shapeAnnotationType === 'textMarkup') {\n customData = this.getTextMarkupData(annotation.subject);\n }\n if (annotation.shapeAnnotationType === 'Ink') {\n customData = this.pdfViewer.inkAnnotationSettings.customData;\n }\n }\n else {\n customData = annotation.CustomData;\n }\n return customData;\n };\n /**\n * @param type\n * @param subject\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.getShapeData = function (type, subject) {\n var customData;\n if (type === 'Line' && subject !== 'Arrow' && this.pdfViewer.lineSettings.customData) {\n customData = this.pdfViewer.lineSettings.customData;\n }\n else if ((type === 'LineWidthArrowHead' || subject === 'Arrow') && this.pdfViewer.arrowSettings.customData) {\n customData = this.pdfViewer.arrowSettings.customData;\n }\n else if ((type === 'Rectangle' || type === 'Square') && this.pdfViewer.rectangleSettings.customData) {\n customData = this.pdfViewer.rectangleSettings.customData;\n }\n else if ((type === 'Ellipse' || type === 'Circle') && this.pdfViewer.circleSettings.customData) {\n customData = this.pdfViewer.circleSettings.customData;\n }\n else if (type === 'Polygon' && this.pdfViewer.polygonSettings.customData) {\n customData = this.pdfViewer.polygonSettings.customData;\n }\n else if (this.pdfViewer.annotationSettings.customData) {\n customData = this.pdfViewer.annotationSettings.customData;\n }\n return customData;\n };\n /**\n * @param type\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.getMeasureData = function (type) {\n var customData;\n if ((type === 'Distance' || type === 'Distance calculation') && this.pdfViewer.distanceSettings.customData) {\n customData = this.pdfViewer.distanceSettings.customData;\n }\n else if ((type === 'Line' || type === 'Perimeter calculation') && this.pdfViewer.lineSettings.customData) {\n customData = this.pdfViewer.lineSettings.customData;\n // eslint-disable-next-line max-len\n }\n else if ((type === 'Polygon' || type === 'Area calculation' || type === 'Volume calculation') && this.pdfViewer.polygonSettings.customData) {\n customData = this.pdfViewer.polygonSettings.customData;\n }\n else if ((type === 'Radius' || type === 'Radius calculation') && this.pdfViewer.radiusSettings.customData) {\n customData = this.pdfViewer.radiusSettings.customData;\n }\n else if (this.pdfViewer.annotationSettings.customData) {\n customData = this.pdfViewer.annotationSettings.customData;\n }\n return customData;\n };\n /**\n * @param type\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.getTextMarkupData = function (type) {\n var customData;\n if (type === 'Highlight' && this.pdfViewer.highlightSettings.customData) {\n customData = this.pdfViewer.highlightSettings.customData;\n }\n else if (type === 'Underline' && this.pdfViewer.underlineSettings.customData) {\n customData = this.pdfViewer.underlineSettings.customData;\n }\n else if (type === 'Strikethrough' && this.pdfViewer.strikethroughSettings.customData) {\n customData = this.pdfViewer.strikethroughSettings.customData;\n }\n else if (this.pdfViewer.annotationSettings.customData) {\n customData = this.pdfViewer.annotationSettings.customData;\n }\n return customData;\n };\n /**\n * @param type\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.getData = function (type) {\n var customData;\n if (type === 'FreeText' && this.pdfViewer.freeTextSettings.customData) {\n customData = this.pdfViewer.freeTextSettings.customData;\n }\n else if ((type === 'image' || type === 'Stamp') && this.pdfViewer.stampSettings.customData) {\n customData = this.pdfViewer.stampSettings.customData;\n }\n else if (type === 'sticky' && this.pdfViewer.stickyNotesSettings.customData) {\n customData = this.pdfViewer.stickyNotesSettings.customData;\n }\n else if (this.pdfViewer.annotationSettings.customData) {\n customData = this.pdfViewer.annotationSettings.customData;\n }\n return customData;\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.clearAnnotationStorage = function () {\n // eslint-disable-next-line\n var sessionSize = Math.round(JSON.stringify(window.sessionStorage).length / 1024);\n var maxSessionSize = 4500;\n if (sessionSize > maxSessionSize) {\n var storageLength = window.sessionStorage.length;\n // eslint-disable-next-line\n var annotationList = [];\n for (var i = 0; i < storageLength; i++) {\n if (window.sessionStorage.key(i) && window.sessionStorage.key(i).split('_')[3]) {\n if (window.sessionStorage.key(i).split('_')[3] === 'annotations') {\n // eslint-disable-next-line max-len\n this.pdfViewerBase.annotationStorage[window.sessionStorage.key(i)] = window.sessionStorage.getItem(window.sessionStorage.key(i));\n annotationList.push(window.sessionStorage.key(i));\n }\n }\n }\n if (annotationList) {\n for (var i = 0; i < annotationList.length; i++) {\n window.sessionStorage.removeItem(annotationList[i]);\n }\n }\n }\n };\n /**\n * @param annotation\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.checkAnnotationCollection = function (annotation) {\n // eslint-disable-next-line\n var collections = this.pdfViewer.annotationCollection;\n if (collections && annotation) {\n for (var i = 0; i < collections.length; i++) {\n if (collections[i].annotationId === annotation.annotName) {\n this.pdfViewer.annotationCollection.splice(i, 1);\n return { isExisting: true, position: i };\n }\n }\n }\n return { isExisting: false, position: null };\n };\n /**\n * @param annotation\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.updateAnnotationCollection = function (annotation) {\n // eslint-disable-next-line\n var collections = this.pdfViewer.annotationCollection;\n if (collections && annotation) {\n for (var i = 0; i < collections.length; i++) {\n if (collections[i].annotationId === annotation.annotName || collections[i].annotationId === annotation.annotationId) {\n this.removedAnnotationCollection.push(collections[i]);\n this.pdfViewer.annotationCollection.splice(i, 1);\n break;\n }\n }\n }\n };\n /**\n * @param annotation\n * @param pageNumber\n * @param annotationType\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.updateImportAnnotationCollection = function (annotation, pageNumber, annotationType) {\n if (this.pdfViewerBase.isImportAction) {\n if (this.pdfViewerBase.importedAnnotation && this.pdfViewerBase.importedAnnotation[pageNumber]) {\n // eslint-disable-next-line\n var currentPageAnnotations = this.pdfViewerBase.importedAnnotation[pageNumber];\n if (currentPageAnnotations[annotationType]) {\n for (var i = 0; i < currentPageAnnotations[annotationType].length; i++) {\n // eslint-disable-next-line max-len\n if (annotation.annotName === currentPageAnnotations[annotationType][i].AnnotName || annotation.annotName === currentPageAnnotations[annotationType][i].annotName) {\n this.pdfViewerBase.importedAnnotation[pageNumber][annotationType].splice(i, 1);\n break;\n }\n }\n }\n }\n }\n // eslint-disable-next-line\n var documentcollections = this.pdfViewerBase.documentAnnotationCollections;\n if (documentcollections && documentcollections[pageNumber]) {\n // eslint-disable-next-line\n var documentPageCollections = documentcollections[pageNumber];\n if (documentPageCollections && documentPageCollections[annotationType]) {\n for (var i = 0; i < documentPageCollections[annotationType].length; i++) {\n // eslint-disable-next-line max-len\n if (annotation.annotName === documentPageCollections[annotationType][i].AnnotName) {\n this.pdfViewerBase.documentAnnotationCollections[pageNumber][annotationType].splice(i, 1);\n break;\n }\n }\n }\n }\n };\n /**\n * Select the annotations using annotation object or annotation Id.\n *\n * @param annotationId\n * @returns void\n */\n Annotation.prototype.selectAnnotation = function (annotationId) {\n // eslint-disable-next-line\n var annotation;\n var id;\n if (typeof annotationId === 'object') {\n annotation = annotationId;\n id = annotation.annotationId;\n annotation = this.getAnnotationsFromAnnotationCollections(id);\n }\n if (typeof annotationId === 'string') {\n annotation = this.getAnnotationsFromAnnotationCollections(annotationId);\n id = annotationId;\n }\n if (annotation) {\n var pageIndex = isNullOrUndefined(annotation.pageNumber) ? annotation.pageIndex : annotation.pageNumber;\n var isRender = false;\n isRender = this.findRenderPageList(pageIndex);\n var currentSelector = this.pdfViewer.annotationSelectorSettings;\n //let pageIndex: number = this.getPageNumberFromAnnotationCollections(annotation);\n if (annotation && pageIndex >= 0) {\n if (annotation.shapeAnnotationType === 'textMarkup') {\n if (annotation.rect || annotation.bounds) {\n // eslint-disable-next-line max-len\n var scrollValue = this.pdfViewerBase.pageSize[pageIndex].top * this.pdfViewerBase.getZoomFactor() + (this.getAnnotationTop(annotation)) * this.pdfViewerBase.getZoomFactor();\n if (!this.isAnnotDeletionApiCall) {\n var scroll_1 = (scrollValue - 20).toString();\n // eslint-disable-next-line radix\n this.pdfViewerBase.viewerContainer.scrollTop = parseInt(scroll_1);\n this.pdfViewerBase.viewerContainer.scrollLeft = this.getAnnotationLeft(annotation) * this.pdfViewerBase.getZoomFactor();\n }\n }\n else {\n if (this.pdfViewer.navigation) {\n this.pdfViewer.navigation.goToPage(pageIndex + 1);\n }\n }\n }\n else {\n if (annotation.bounds) {\n // eslint-disable-next-line max-len\n var scrollValue = this.pdfViewerBase.pageSize[pageIndex].top * this.pdfViewerBase.getZoomFactor() + (annotation.bounds.top) * this.pdfViewerBase.getZoomFactor();\n var scrollLeft = annotation.bounds.left * this.pdfViewerBase.getZoomFactor();\n if (annotation.shapeAnnotationType === 'Ink') {\n // eslint-disable-next-line max-len\n scrollValue = this.pdfViewerBase.pageSize[pageIndex].top * this.pdfViewerBase.getZoomFactor() + (annotation.bounds.y) * this.pdfViewerBase.getZoomFactor();\n scrollLeft = annotation.bounds.x * this.pdfViewerBase.getZoomFactor();\n }\n if (!this.isAnnotDeletionApiCall) {\n var scroll_2 = (scrollValue - 20).toString();\n // eslint-disable-next-line radix\n this.pdfViewerBase.viewerContainer.scrollTop = parseInt(scroll_2);\n this.pdfViewerBase.viewerContainer.scrollLeft = scrollLeft;\n }\n }\n else {\n if (this.pdfViewer.navigation) {\n this.pdfViewer.navigation.goToPage(pageIndex + 1);\n }\n }\n }\n if (isRender) {\n if (this.previousIndex) {\n this.pdfViewer.clearSelection(this.previousIndex);\n }\n this.pdfViewer.clearSelection(pageIndex);\n this.previousIndex = pageIndex;\n if (annotation.shapeAnnotationType === 'textMarkup') {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.clearCurrentAnnotationSelection(pageIndex, true);\n // eslint-disable-next-line max-len\n var canvas = this.pdfViewerBase.getElement('_annotationCanvas_' + pageIndex);\n // eslint-disable-next-line\n var textMarkupAnnotation = this.getTextMarkupAnnotations(pageIndex, annotation);\n if (textMarkupAnnotation) {\n this.textMarkupAnnotationModule.currentTextMarkupAnnotation = null;\n this.textMarkupAnnotationModule.isSelectedAnnotation = true;\n this.textMarkupAnnotationModule.showHideDropletDiv(true);\n this.textMarkupAnnotationModule.annotationClickPosition = null;\n this.textMarkupAnnotationModule.selectAnnotation(textMarkupAnnotation, canvas, pageIndex, null, true);\n this.textMarkupAnnotationModule.currentTextMarkupAnnotation = textMarkupAnnotation;\n this.textMarkupAnnotationModule.selectTextMarkupCurrentPage = pageIndex;\n this.textMarkupAnnotationModule.enableAnnotationPropertiesTool(true);\n this.textMarkupAnnotationModule.isSelectedAnnotation = false;\n if (this.pdfViewer.toolbarModule && this.pdfViewer.enableAnnotationToolbar) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.isToolbarHidden = true;\n // eslint-disable-next-line max-len\n this.pdfViewer.toolbarModule.annotationToolbarModule.showAnnotationToolbar(this.pdfViewer.toolbarModule.annotationItem);\n }\n }\n }\n else if (annotation.shapeAnnotationType === 'stamp' || annotation.ShapeAnnotationType === 'stamp') {\n this.pdfViewer.select([annotation.uniqueKey], currentSelector);\n this.pdfViewer.annotation.onAnnotationMouseDown();\n }\n else if (annotation.shapeAnnotationType === 'sticky' || annotation.ShapeAnnotationType === 'sticky') {\n this.pdfViewer.select([annotation.annotationId], currentSelector);\n this.pdfViewer.annotation.onAnnotationMouseDown();\n }\n else {\n this.pdfViewer.select([annotation.uniqueKey], currentSelector);\n this.pdfViewer.annotation.onAnnotationMouseDown();\n }\n // eslint-disable-next-line max-len\n var commentElement = document.getElementById(this.pdfViewer.element.id + '_commantPanel');\n if (commentElement && commentElement.style.display === 'block') {\n // eslint-disable-next-line\n var accordionExpand = document.getElementById(this.pdfViewer.element.id + '_accordionContainer' + this.pdfViewer.currentPageNumber);\n if (accordionExpand) {\n accordionExpand.ej2_instances[0].expandItem(true);\n }\n // eslint-disable-next-line\n var commentsDiv = document.getElementById(id);\n if (commentsDiv) {\n if (!commentsDiv.classList.contains('e-pv-comments-border')) {\n commentsDiv.firstChild.click();\n }\n }\n }\n }\n else if (annotation.uniqueKey || (annotation.shapeAnnotationType === \"textMarkup\" && annotation.annotationAddMode === \"Imported Annotation\")) {\n this.selectAnnotationId = id;\n this.isAnnotationSelected = true;\n this.annotationPageIndex = pageIndex;\n this.selectAnnotationFromCodeBehind();\n }\n }\n if (!isRender && !annotation.uniqueKey) {\n var collections = this.updateCollectionForNonRenderedPages(annotation, id, pageIndex);\n collections.pageIndex = pageIndex;\n this.pdfViewer.annotation.addAction(pageIndex, null, collections, 'Delete', '', collections, collections);\n this.undoCommentsElement.push(collections);\n var removeDiv = document.getElementById(annotation.annotationId);\n this.removeCommentPanelDiv(removeDiv);\n }\n }\n };\n // To update the collections for the non-rendered pages.\n Annotation.prototype.updateCollectionForNonRenderedPages = function (annotation, id, pageIndex) {\n var collections;\n var annotationCollection = this.pdfViewer.annotationCollection;\n if (annotationCollection.length) {\n var collectionDetails = annotationCollection.filter(function (annotCollection) {\n return annotCollection.annotationId === id;\n });\n collections = collectionDetails[0];\n this.updateAnnotationCollection(collectionDetails[0]);\n }\n var annotationType = this.getTypeOfAnnotation(annotation);\n var collection = this.pdfViewerBase.documentAnnotationCollections[pageIndex];\n if (collection[annotationType].length) {\n for (var x = 0; x < collection[annotationType].length; x++) {\n if (collection[annotationType][x].AnnotName === annotation.annotationId) {\n var type = collection[annotationType][x];\n this.removedDocumentAnnotationCollection.push(type);\n collection[annotationType].splice(x, 1);\n break;\n }\n }\n }\n return collections;\n };\n // To get the annotation type to update the document Annotation collections\n Annotation.prototype.getTypeOfAnnotation = function (annotation) {\n var annotationType;\n if (annotation.id && annotation.id.toLowerCase() === \"shape\") {\n annotationType = \"shapeAnnotation\";\n }\n else if (annotation.id && annotation.id.toLowerCase() === \"measure\") {\n annotationType = \"measureShapeAnnotation\";\n }\n else if (annotation.id && annotation.id.toLowerCase() === \"freetext\") {\n annotationType = \"freeTextAnnotation\";\n }\n else if (annotation.shapeAnnotationType && annotation.shapeAnnotationType.toLowerCase() === \"textmarkup\") {\n annotationType = \"textMarkupAnnotation\";\n }\n else if (annotation.shapeAnnotationType && annotation.shapeAnnotationType.toLowerCase() === \"stamp\") {\n annotationType = \"stampAnnotations\";\n }\n else if (annotation.shapeAnnotationType && annotation.shapeAnnotationType.toLowerCase() === \"ink\") {\n annotationType = \"signatureInkAnnotation\";\n }\n else if (annotation.shapeAnnotationType && annotation.shapeAnnotationType.toLowerCase() === \"sticky\") {\n annotationType = \"stickyNotesAnnotation\";\n }\n return annotationType;\n };\n // To remove the commnet panel div\n Annotation.prototype.removeCommentPanelDiv = function (removeDiv) {\n if (removeDiv) {\n if (removeDiv.parentElement.childElementCount === 1) {\n this.stickyNotesAnnotationModule.updateAccordionContainer(removeDiv);\n }\n else {\n removeDiv.remove();\n }\n }\n };\n /**\n * Clear the annotation selection.\n *\n * @returns void\n */\n Annotation.prototype.clearSelection = function () {\n if (this.textMarkupAnnotationModule && this.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n this.textMarkupAnnotationModule.clearCurrentSelectedAnnotation();\n this.textMarkupAnnotationModule.clearCurrentAnnotationSelection(this.textMarkupAnnotationModule.selectTextMarkupCurrentPage);\n }\n else {\n if (this.pdfViewer.selectedItems && this.pdfViewer.selectedItems.annotations[0]) {\n // eslint-disable-next-line\n var currentAnnotation = this.pdfViewer.selectedItems.annotations[0];\n this.pdfViewer.clearSelection(currentAnnotation.pageIndex);\n }\n else {\n this.pdfViewer.clearSelection(this.pdfViewer.currentPageNumber - 1);\n }\n }\n };\n /**\n * @param annotation\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.getAnnotationTop = function (annotation) {\n if (annotation.rect) {\n if (annotation.rect.Top) {\n return annotation.rect.Top;\n }\n else {\n return annotation.rect.top;\n }\n }\n else {\n if (annotation.bounds[0].Top) {\n return annotation.bounds[0].Top;\n }\n else {\n return annotation.bounds[0].top;\n }\n }\n };\n /**\n * @param annotation\n */\n // eslint-disable-next-line\n Annotation.prototype.getAnnotationLeft = function (annotation) {\n if (annotation.rect) {\n if (annotation.rect.Left) {\n return annotation.rect.Left;\n }\n else {\n return annotation.rect.left;\n }\n }\n else {\n if (annotation.bounds[0].Left) {\n return annotation.bounds[0].Left;\n }\n else {\n return annotation.bounds[0].left;\n }\n }\n };\n /**\n * @private\n */\n Annotation.prototype.selectAnnotationFromCodeBehind = function () {\n if (this.isAnnotationSelected && this.selectAnnotationId) {\n // eslint-disable-next-line\n var annotation = this.getAnnotationsFromAnnotationCollections(this.selectAnnotationId);\n var id = this.selectAnnotationId;\n var pageIndex = annotation.pageNumber;\n var currentSelector = this.pdfViewer.annotationSelectorSettings;\n if (annotation && (this.annotationPageIndex >= 0) && this.annotationPageIndex === pageIndex) {\n if (this.previousIndex) {\n this.pdfViewer.clearSelection(this.previousIndex);\n }\n this.pdfViewer.clearSelection(pageIndex);\n this.previousIndex = pageIndex;\n if (annotation.shapeAnnotationType === 'textMarkup') {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.clearCurrentAnnotationSelection(pageIndex, true);\n // eslint-disable-next-line max-len\n var canvas = this.pdfViewerBase.getElement('_annotationCanvas_' + pageIndex);\n // eslint-disable-next-line\n var textMarkupAnnotation = this.getTextMarkupAnnotations(pageIndex, annotation);\n if (textMarkupAnnotation) {\n this.textMarkupAnnotationModule.currentTextMarkupAnnotation = null;\n this.textMarkupAnnotationModule.isSelectedAnnotation = true;\n this.textMarkupAnnotationModule.showHideDropletDiv(true);\n this.textMarkupAnnotationModule.annotationClickPosition = null;\n this.textMarkupAnnotationModule.selectAnnotation(textMarkupAnnotation, canvas, pageIndex);\n this.textMarkupAnnotationModule.currentTextMarkupAnnotation = textMarkupAnnotation;\n this.textMarkupAnnotationModule.selectTextMarkupCurrentPage = pageIndex;\n this.textMarkupAnnotationModule.enableAnnotationPropertiesTool(true);\n this.textMarkupAnnotationModule.isSelectedAnnotation = false;\n if (this.pdfViewer.toolbarModule && this.pdfViewer.enableAnnotationToolbar) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.isToolbarHidden = true;\n // eslint-disable-next-line max-len\n this.pdfViewer.toolbarModule.annotationToolbarModule.showAnnotationToolbar(this.pdfViewer.toolbarModule.annotationItem);\n }\n }\n }\n else if (annotation.shapeAnnotationType === 'stamp' || annotation.ShapeAnnotationType === 'stamp') {\n this.pdfViewer.select([annotation.uniqueKey], currentSelector);\n this.pdfViewer.annotation.onAnnotationMouseDown();\n }\n else if (annotation.shapeAnnotationType === 'sticky' || annotation.ShapeAnnotationType === 'sticky') {\n this.pdfViewer.select([annotation.annotationId], currentSelector);\n this.pdfViewer.annotation.onAnnotationMouseDown();\n }\n else if (annotation.uniqueKey) {\n this.pdfViewer.select([annotation.uniqueKey], currentSelector);\n this.pdfViewer.annotation.onAnnotationMouseDown();\n }\n else {\n this.pdfViewer.select([annotation.annotationId], currentSelector);\n this.pdfViewer.annotation.onAnnotationMouseDown();\n }\n // eslint-disable-next-line max-len\n var commentElement = document.getElementById(this.pdfViewer.element.id + '_commantPanel');\n if (commentElement && commentElement.style.display === 'block') {\n // eslint-disable-next-line\n var accordionExpand = document.getElementById(this.pdfViewer.element.id + '_accordionContainer' + this.pdfViewer.currentPageNumber);\n if (accordionExpand) {\n accordionExpand.ej2_instances[0].expandItem(true);\n }\n // eslint-disable-next-line\n var commentsDiv = document.getElementById(id);\n if (commentsDiv) {\n if (!commentsDiv.classList.contains('e-pv-comments-border')) {\n commentsDiv.firstChild.click();\n }\n }\n }\n }\n this.isAnnotationSelected = false;\n this.selectAnnotationId = null;\n this.annotationPageIndex = null;\n }\n };\n /**\n * @param pageIndex\n * @private\n */\n Annotation.prototype.findRenderPageList = function (pageIndex) {\n var isRender = false;\n // eslint-disable-next-line\n var pageList = this.pdfViewerBase.renderedPagesList;\n if (pageList) {\n for (var i = 0; i < pageList.length; i++) {\n if (pageList[i] === pageIndex) {\n isRender = true;\n return isRender;\n }\n }\n }\n return isRender;\n };\n // eslint-disable-next-line\n Annotation.prototype.getPageNumberFromAnnotationCollections = function (annotation) {\n // eslint-disable-next-line\n var collections = this.pdfViewer.annotations;\n if (annotation) {\n if (annotation.shapeAnnotationType === 'textMarkup') {\n return annotation.pageNumber;\n }\n else {\n if (collections) {\n for (var i = 0; i < collections.length; i++) {\n if (collections[i].annotName === annotation.annotationId) {\n return collections[i].pageIndex;\n }\n }\n }\n }\n }\n };\n // eslint-disable-next-line\n Annotation.prototype.getAnnotationsFromAnnotationCollections = function (annotationId) {\n // eslint-disable-next-line\n var collections = this.pdfViewer.annotationCollection;\n if (collections && annotationId) {\n for (var i = 0; i < collections.length; i++) {\n if (collections[i].annotationId === annotationId) {\n return collections[i];\n }\n }\n }\n if (this.pdfViewer.selectedItems.annotations.length === 0)\n this.pdfViewer.selectedItems.annotations.push(this.pdfViewer.nameTable[annotationId]);\n };\n // eslint-disable-next-line\n Annotation.prototype.getTextMarkupAnnotations = function (pageIndex, annotation) {\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_textMarkup');\n if (this.pdfViewerBase.isStorageExceed) {\n storeObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_textMarkup'];\n }\n if (storeObject) {\n // eslint-disable-next-line\n var annotObject = JSON.parse(storeObject);\n var index = this.getPageCollection(annotObject, pageIndex);\n if (annotObject[index]) {\n for (var i = 0; i < annotObject[index].annotations.length; i++) {\n if (annotObject[index].annotations[i].annotName === annotation.annotationId) {\n return annotObject[index].annotations[i];\n }\n }\n return null;\n }\n }\n else {\n return null;\n }\n };\n /**\n * @param type\n * @param measureType\n * @param type\n * @param measureType\n * @private\n */\n Annotation.prototype.getAnnotationType = function (type, measureType) {\n var annotType;\n if (measureType === '' || isNullOrUndefined(measureType)) {\n switch (type) {\n case 'Line':\n annotType = 'Line';\n break;\n case 'LineWidthArrowHead':\n annotType = 'Arrow';\n break;\n case 'Rectangle':\n annotType = 'Rectangle';\n break;\n case 'Ellipse':\n annotType = 'Circle';\n break;\n case 'Polygon':\n annotType = 'Polygon';\n break;\n case 'Stamp':\n annotType = 'Stamp';\n break;\n case 'Image':\n annotType = 'Image';\n break;\n case 'FreeText':\n annotType = 'FreeText';\n break;\n case 'Ink':\n annotType = 'Ink';\n break;\n case 'StickyNotes':\n annotType = 'StickyNotes';\n break;\n }\n }\n else {\n switch (measureType) {\n case 'Distance':\n annotType = 'Distance';\n break;\n case 'Perimeter':\n annotType = 'Perimeter';\n break;\n case 'Area':\n annotType = 'Area';\n break;\n case 'Radius':\n annotType = 'Radius';\n break;\n case 'Volume':\n annotType = 'Volume';\n break;\n }\n }\n return annotType;\n };\n /**\n * @param pageNumber\n * @param annotationId\n * @private\n */\n Annotation.prototype.getAnnotationIndex = function (pageNumber, annotationId) {\n var pageAnnotationBases = this.pdfViewer.drawing.getPageObjects(pageNumber);\n var index = null;\n for (var i = 0; i < pageAnnotationBases.length; i++) {\n if (pageAnnotationBases[i].id === annotationId) {\n index = i;\n break;\n }\n }\n return index;\n };\n /**\n * @private\n */\n Annotation.prototype.initializeCollection = function () {\n this.actionCollection = [];\n this.redoCollection = [];\n this.pdfViewerBase.customStampCollection = [];\n if (!this.popupNote) {\n this.createNote();\n }\n };\n /**\n * @private\n */\n Annotation.prototype.showCommentsPanel = function () {\n if (this.pdfViewer.enableCommentPanel) {\n var commentPanel = document.getElementById(this.pdfViewer.element.id + '_commantPanel');\n if (commentPanel) {\n if (commentPanel.style.display === 'none') {\n commentPanel.style.display = 'block';\n if (Browser.isDevice && !isBlazor()) {\n // eslint:disable-next-line\n var viewer = document.getElementById(this.pdfViewer.element.id + '_viewerMainContainer');\n // eslint:disable-next-line\n viewer.insertBefore(this.pdfViewerBase.navigationPane.commentPanelContainer, this.pdfViewer.toolbarModule.toolbarElement);\n }\n if (this.pdfViewerBase.navigationPane.commentPanelResizer) {\n this.pdfViewerBase.navigationPane.commentPanelResizer.style.display = 'block';\n }\n this.pdfViewerBase.navigationPane.setCommentPanelResizeIconTop();\n this.pdfViewer.annotation.stickyNotesAnnotationModule.updateCommentPanelTextTop();\n var viewerContainer = document.getElementById(this.pdfViewer.element.id + '_viewerContainer');\n var pageContainer = document.getElementById(this.pdfViewer.element.id + '_pageViewContainer');\n if (viewerContainer) {\n if (this.pdfViewer.enableRtl) {\n viewerContainer.style.left = this.pdfViewerBase.navigationPane.getViewerContainerRight() + 'px';\n }\n else {\n viewerContainer.style.right = this.pdfViewerBase.navigationPane.getViewerContainerRight() + 'px';\n }\n // eslint-disable-next-line max-len\n viewerContainer.style.width = (this.pdfViewer.element.clientWidth - this.pdfViewerBase.navigationPane.getViewerContainerLeft() - this.pdfViewerBase.navigationPane.getViewerContainerRight()) + 'px';\n pageContainer.style.width = (viewerContainer.offsetWidth - this.pdfViewerBase.navigationPane.getViewerContainerScrollbarWidth()) + 'px';\n }\n this.pdfViewerBase.updateZoomValue();\n if (this.pdfViewer.annotation && this.pdfViewer.annotation.textMarkupAnnotationModule) {\n this.pdfViewer.annotation.textMarkupAnnotationModule.showHideDropletDiv(true);\n }\n if (Browser.isDevice && !isBlazor()) {\n commentPanel.style.height = this.pdfViewerBase.viewerMainContainer.clientHeight + 'px';\n if (this.pdfViewer.selectedItems.annotations.length > 0) {\n // eslint:disable-next-line\n var commentDiv = document.getElementById(this.pdfViewer.selectedItems.annotations[0].annotName);\n if (commentDiv && commentDiv.lastElementChild.children[1] && commentDiv.lastElementChild.children[1].ej2_instances) {\n commentDiv.lastElementChild.children[1].ej2_instances[0].enableEditMode = true;\n }\n else if (commentDiv && commentDiv.lastElementChild.ej2_instances) {\n commentDiv.lastElementChild.ej2_instances[0].enableEditMode = true;\n commentDiv.lastElementChild.style.display = 'block';\n commentDiv.lastElementChild.children[1] ? commentDiv.lastElementChild.children[1].style.display = 'block' : null;\n }\n }\n if (this.pdfViewer.toolbarModule.annotationToolbarModule.toolbar) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.toolbar.element.style.display = 'none';\n if (this.pdfViewer.toolbarModule.annotationToolbarModule.propertyToolbar) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.propertyToolbar.element.style.display = 'none';\n }\n }\n }\n }\n }\n }\n };\n /**\n * @param pageNumber\n * @param index\n * @param annotation\n * @param actionString\n * @param property\n * @param node\n * @param redo\n * @param pageNumber\n * @param index\n * @param annotation\n * @param actionString\n * @param property\n * @param node\n * @param redo\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.addAction = function (\n // eslint-disable-next-line\n pageNumber, index, annotation, actionString, property, node, redo) {\n var action = {\n pageIndex: pageNumber, index: index, annotation: annotation,\n action: actionString, modifiedProperty: property, undoElement: node, redoElement: redo\n };\n this.actionCollection.push(action);\n this.updateToolbar();\n };\n /**\n * @private\n */\n Annotation.prototype.undo = function () {\n var actionObject = this.actionCollection.pop();\n if (actionObject) {\n // eslint-disable-next-line\n var shapeType = actionObject.annotation.shapeAnnotationType;\n this.isUndoRedoAction = true;\n this.isUndoAction = true;\n switch (actionObject.action) {\n case 'Text Markup Added':\n case 'Text Markup Deleted':\n if (this.textMarkupAnnotationModule) {\n // eslint-disable-next-line max-len\n this.textMarkupAnnotationModule.undoTextMarkupAction(actionObject.annotation, actionObject.pageIndex, actionObject.index, actionObject.action);\n }\n break;\n case 'Text Markup Property modified':\n if (this.textMarkupAnnotationModule) {\n // eslint-disable-next-line max-len\n actionObject.annotation = this.textMarkupAnnotationModule.undoRedoPropertyChange(actionObject.annotation, actionObject.pageIndex, actionObject.index, actionObject.modifiedProperty, true);\n }\n break;\n case 'Drag':\n case 'Resize':\n if (isLineShapes(actionObject.annotation)) {\n // eslint-disable-next-line max-len\n this.pdfViewer.nodePropertyChange(actionObject.annotation, { bounds: actionObject.undoElement.bounds, vertexPoints: actionObject.undoElement.vertexPoints, leaderHeight: actionObject.undoElement.leaderHeight });\n }\n else {\n this.pdfViewer.nodePropertyChange(actionObject.annotation, { bounds: actionObject.undoElement.bounds });\n }\n // eslint-disable-next-line max-len\n if (actionObject.annotation.measureType === 'Distance' || actionObject.annotation.measureType === 'Perimeter' || actionObject.annotation.measureType === 'Area' ||\n actionObject.annotation.measureType === 'Radius' || actionObject.annotation.measureType === 'Volume') {\n this.pdfViewer.nodePropertyChange(actionObject.annotation, { notes: actionObject.undoElement.notes });\n this.updateCalibrateValues(actionObject.annotation);\n }\n if (actionObject.annotation.formFieldAnnotationType) {\n this.pdfViewer.formDesigner.updateHTMLElement(actionObject.annotation);\n }\n this.pdfViewer.clearSelection(this.pdfViewerBase.activeElements.activePageID);\n this.pdfViewer.select([actionObject.annotation.id]);\n // eslint-disable-next-line max-len\n if (actionObject.annotation.shapeAnnotationType === 'Line' || actionObject.annotation.shapeAnnotationType === 'Rectangle' || actionObject.annotation.shapeAnnotationType === 'Ellipse' || actionObject.annotation.shapeAnnotationType === 'Polygon' || actionObject.annotation.shapeAnnotationType === 'LineWidthArrowHead' ||\n actionObject.annotation.shapeAnnotationType === 'Radius' || actionObject.annotation.shapeAnnotationType === 'FreeText' || actionObject.annotation.shapeAnnotationType === 'HandWrittenSignature' || actionObject.annotation.shapeAnnotationType === 'SignatureText' || actionObject.annotation.shapeAnnotationType === 'SignatureImage' || actionObject.annotation.shapeAnnotationType === 'Ink') {\n this.modifyInCollections(actionObject.annotation, 'bounds');\n }\n break;\n case 'Addition':\n if (this.pdfViewer.formDesigner && actionObject.annotation.formFieldAnnotationType) {\n this.pdfViewer.formDesigner.deleteFormField(actionObject.undoElement.id, false);\n }\n else {\n var isAnnotationUpdate = false;\n // eslint-disable-next-line max-len\n if (shapeType === 'Line' || shapeType === 'LineWidthArrowHead' || shapeType === 'Polygon' || shapeType === 'Ellipse' || shapeType === 'Rectangle' || shapeType === 'Radius' || shapeType === 'Distance') {\n if (actionObject.annotation.measureType === '' || isNullOrUndefined(actionObject.annotation.measureType)) {\n this.pdfViewer.annotation.stickyNotesAnnotationModule.findPosition(actionObject.annotation, 'shape');\n }\n else {\n this.pdfViewer.annotation.stickyNotesAnnotationModule.findPosition(actionObject.annotation, 'measure');\n }\n isAnnotationUpdate = true;\n // eslint-disable-next-line\n var annotationObject = actionObject.annotation;\n // eslint-disable-next-line\n var wrapper = annotationObject.wrapper ? annotationObject.wrapper : null;\n if (wrapper && wrapper.bounds) {\n actionObject.annotation.bounds = wrapper.bounds;\n }\n actionObject.duplicate = this.modifyInCollections(actionObject.annotation, 'delete');\n }\n if (shapeType === 'Stamp' || shapeType === 'Image') {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.stickyNotesAnnotationModule.findPosition(actionObject.annotation, actionObject.annotation.shapeAnnotationType, 'delete');\n // eslint-disable-next-line max-len\n this.stampAnnotationModule.updateSessionStorage(actionObject.annotation, null, 'delete');\n isAnnotationUpdate = true;\n }\n if (shapeType === 'FreeText' || shapeType === 'HandWrittenSignature' || shapeType === 'SignatureImage' || shapeType === 'SignatureText' || shapeType === 'Ink') {\n isAnnotationUpdate = true;\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.stickyNotesAnnotationModule.findPosition(actionObject.annotation, actionObject.annotation.shapeAnnotationType, 'delete');\n actionObject.duplicate = this.modifyInCollections(actionObject.annotation, 'delete');\n }\n if (!isAnnotationUpdate) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.stickyNotesAnnotationModule.findPosition(actionObject.annotation, actionObject.annotation.shapeAnnotationType, 'delete');\n }\n this.pdfViewer.clearSelection(this.pdfViewerBase.activeElements.activePageID);\n this.pdfViewer.remove(actionObject.annotation);\n this.pdfViewer.renderDrawing(null, actionObject.annotation.pageIndex);\n // eslint-disable-next-line\n var removeDiv = document.getElementById(actionObject.annotation.annotName);\n if (removeDiv) {\n if (removeDiv.parentElement.childElementCount === 1) {\n this.stickyNotesAnnotationModule.updateAccordionContainer(removeDiv);\n }\n else {\n removeDiv.parentElement.removeChild(removeDiv);\n }\n }\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n var mobileAnnotationToolbar = document.getElementById(this.pdfViewer.element.id + '_propertyToolbar');\n if (mobileAnnotationToolbar && mobileAnnotationToolbar.children.length > 0) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.toolbarCreated = false;\n this.pdfViewer.toolbarModule.annotationToolbarModule.createAnnotationToolbarForMobile();\n }\n }\n }\n break;\n case 'Delete':\n if (this.pdfViewer.formDesigner && actionObject.annotation.formFieldAnnotationType) {\n actionObject.undoElement.bounds.x = actionObject.undoElement.wrapper.bounds.x;\n actionObject.undoElement.bounds.y = actionObject.undoElement.wrapper.bounds.y;\n this.pdfViewer.formDesigner.drawFormField(actionObject.undoElement);\n }\n else {\n // eslint-disable-next-line max-len\n if (shapeType === 'Line' || shapeType === 'LineWidthArrowHead' || shapeType === 'Polygon' || shapeType === 'Ellipse' || shapeType === 'Rectangle' || shapeType === 'Radius' || shapeType === 'Distance') {\n if (actionObject.annotation.measureType === '' || isNullOrUndefined(actionObject.annotation.measureType)) {\n shapeType = 'shape';\n this.shapeAnnotationModule.addInCollection(actionObject.annotation.pageIndex, actionObject.undoElement);\n }\n else {\n shapeType = 'shape_measure';\n this.measureAnnotationModule.addInCollection(actionObject.annotation.pageIndex, actionObject.undoElement);\n }\n }\n if (shapeType === 'Stamp' || shapeType === 'Image') {\n this.stampAnnotationModule.updateDeleteItems(actionObject.annotation.pageIndex, actionObject.annotation);\n }\n else if (shapeType === 'FreeText') {\n this.freeTextAnnotationModule.addInCollection(actionObject.annotation.pageIndex, actionObject.undoElement);\n }\n else if (shapeType === 'Ink') {\n this.inkAnnotationModule.addInCollection(actionObject.annotation.pageIndex, actionObject.undoElement);\n }\n else if (shapeType === 'HandWrittenSignature' || shapeType === 'SignatureText' || shapeType === 'SignatureImage') {\n this.pdfViewerBase.signatureModule.addInCollection(actionObject.annotation.pageIndex, actionObject.undoElement);\n }\n if (!actionObject.annotation.annotationId) {\n var addedAnnot = this.pdfViewer.add(actionObject.annotation);\n if ((shapeType === 'FreeText' || addedAnnot.enableShapeLabel) && addedAnnot) {\n this.pdfViewer.nodePropertyChange(addedAnnot, {});\n }\n }\n var formFieldObj = void 0;\n if (actionObject.annotation.id) {\n formFieldObj = this.pdfViewer.nameTable[actionObject.annotation.id.split(\"_\")[0]];\n }\n if (formFieldObj != null && (formFieldObj.formFieldAnnotationType === 'SignatureField' || formFieldObj.formFieldAnnotationType === 'InitialField')) {\n formFieldObj.wrapper.children.push(actionObject.annotation.wrapper.children[0]);\n if (actionObject.annotation.shapeAnnotationType === \"SignatureText\")\n formFieldObj.wrapper.children.push(actionObject.annotation.wrapper.children[1]);\n var key = actionObject.annotation.id.split('_')[0] + '_content';\n var data = null;\n if (this.pdfViewer.formDesignerModule) {\n data = this.pdfViewerBase.getItemFromSessionStorage('_formDesigner');\n }\n if (data) {\n var formFieldsData = JSON.parse(data);\n for (var i = 0; i < formFieldsData.length; i++) {\n if (formFieldsData[i].Key === key) {\n if (actionObject.annotation.shapeAnnotationType === \"SignatureText\") {\n formFieldsData[i].FormField.signatureType = \"Text\";\n formFieldsData[i].FormField.value = actionObject.annotation.data;\n this.pdfViewerBase.formFieldCollection[i].FormField.value = actionObject.annotation.data;\n this.pdfViewerBase.formFieldCollection[i].FormField.signatureType = \"Text\";\n }\n else if (actionObject.annotation.shapeAnnotationType === \"SignatureImage\") {\n formFieldsData[i].FormField.signatureType = \"Image\";\n formFieldsData[i].FormField.value = actionObject.annotation.data;\n this.pdfViewerBase.formFieldCollection[i].FormField.value = actionObject.annotation.data;\n this.pdfViewerBase.formFieldCollection[i].FormField.signatureType = \"Image\";\n }\n else {\n formFieldsData[i].FormField.signatureType = \"Path\";\n this.pdfViewerBase.formFieldCollection[i].FormField.signatureType = \"Path\";\n var collectionData = processPathData(actionObject.annotation.data);\n var csData = splitArrayCollection(collectionData);\n formFieldsData[i].FormField.value = JSON.stringify(csData);\n this.pdfViewerBase.formFieldCollection[i].FormField.value = JSON.stringify(csData);\n }\n }\n }\n this.pdfViewerBase.setItemInSessionStorage(this.pdfViewerBase.formFieldCollection, '_formDesigner');\n }\n }\n this.pdfViewer.renderDrawing(null, actionObject.annotation.pageIndex);\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.addAnnotationComments(actionObject.annotation.pageIndex, shapeType);\n if (actionObject.annotation.annotationId) {\n var removedAnnotationCollection = this.removedAnnotationCollection[this.removedAnnotationCollection.length - 1];\n var annotationType = this.getTypeOfAnnotation(removedAnnotationCollection);\n this.pdfViewer.annotationCollection.push(removedAnnotationCollection);\n this.removedAnnotationCollection.splice(this.removedAnnotationCollection.length - 1);\n var pageNumber = actionObject.annotation.pageNumber >= 0 ? actionObject.annotation.pageNumber : actionObject.annotation.pageIndex;\n this.pdfViewerBase.documentAnnotationCollections[pageNumber][annotationType].push(this.removedDocumentAnnotationCollection[this.removedDocumentAnnotationCollection.length - 1]);\n this.removedDocumentAnnotationCollection.splice(this.removedDocumentAnnotationCollection.length - 1);\n }\n }\n break;\n case 'stampOpacity':\n this.pdfViewer.nodePropertyChange(actionObject.annotation, { opacity: actionObject.undoElement.opacity });\n this.stickyNotesAnnotationModule.updateAnnotationModifiedDate(actionObject.annotation, null, true);\n actionObject.annotation.modifiedDate = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n break;\n case 'Shape Stroke':\n this.pdfViewer.nodePropertyChange(actionObject.annotation, { strokeColor: actionObject.undoElement.strokeColor });\n this.modifyInCollections(actionObject.annotation, 'stroke');\n this.pdfViewer.renderDrawing();\n break;\n case 'Shape Fill':\n this.pdfViewer.nodePropertyChange(actionObject.annotation, { fillColor: actionObject.undoElement.fillColor });\n this.modifyInCollections(actionObject.annotation, 'fill');\n this.pdfViewer.renderDrawing();\n break;\n case 'Shape Opacity':\n this.pdfViewer.nodePropertyChange(actionObject.annotation, { opacity: actionObject.undoElement.opacity });\n if (actionObject.annotation.shapeAnnotationType === 'StickyNotes') {\n this.stickyNotesAnnotationModule.updateOpacityValue(actionObject.annotation);\n this.stickyNotesAnnotationModule.updateAnnotationModifiedDate(actionObject.annotation, null, true);\n actionObject.annotation.modifiedDate = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n }\n else {\n this.modifyInCollections(actionObject.annotation, 'opacity');\n }\n this.pdfViewer.renderDrawing();\n break;\n case 'Shape Thickness':\n this.pdfViewer.nodePropertyChange(actionObject.annotation, { thickness: actionObject.undoElement.thickness });\n this.modifyInCollections(actionObject.annotation, 'thickness');\n this.pdfViewer.renderDrawing();\n break;\n case 'Line properties change':\n this.pdfViewer.nodePropertyChange(actionObject.annotation, {\n // eslint-disable-next-line max-len\n fillColor: actionObject.undoElement.fillColor, borderDashArray: actionObject.undoElement.borderDashArray, borderStyle: actionObject.undoElement.borderStyle,\n // eslint-disable-next-line max-len\n strokeColor: actionObject.undoElement.strokeColor, opacity: actionObject.undoElement.opacity, thickness: actionObject.undoElement.thickness,\n sourceDecoraterShapes: this.getArrowType(actionObject.undoElement.lineHeadStart), taregetDecoraterShapes: this.getArrowType(actionObject.undoElement.lineHeadEnd)\n });\n this.updateCollectionForLineProperty(actionObject.annotation);\n this.pdfViewer.renderDrawing();\n break;\n case 'Text Property Added':\n // eslint-disable-next-line max-len\n actionObject.annotation = this.pdfViewer.annotationModule.stickyNotesAnnotationModule.undoAction(actionObject.annotation, actionObject.action, actionObject.undoElement);\n this.stickyNotesAnnotationModule.updateAnnotationModifiedDate(actionObject.annotation, null, true);\n actionObject.annotation.modifiedDate = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n break;\n case 'Comments Property Added':\n // eslint-disable-next-line max-len\n actionObject.annotation = this.pdfViewer.annotationModule.stickyNotesAnnotationModule.undoAction(actionObject.annotation, actionObject.action, actionObject.undoElement);\n break;\n case 'Status Property Added':\n // eslint-disable-next-line max-len\n actionObject.annotation = this.pdfViewer.annotationModule.stickyNotesAnnotationModule.undoAction(actionObject.annotation, actionObject.action, actionObject.undoElement);\n break;\n case 'Comments Reply Deleted':\n // eslint-disable-next-line max-len\n actionObject.annotation = this.pdfViewer.annotationModule.stickyNotesAnnotationModule.undoAction(actionObject.annotation, actionObject.action, actionObject.undoElement);\n break;\n case 'dynamicText Change':\n this.pdfViewer.annotation.freeTextAnnotationModule.isFreeTextValueChange = true;\n actionObject.annotation.dynamicText = actionObject.undoElement.dynamicText;\n if (this.pdfViewer.selectedItems.annotations[0]) {\n this.pdfViewer.selectedItems.annotations[0].dynamicText = actionObject.undoElement.dynamicText;\n }\n // eslint-disable-next-line\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.undoAction(actionObject.annotation, actionObject.action, actionObject.undoElement);\n this.stickyNotesAnnotationModule.updateAnnotationModifiedDate(actionObject.annotation, null, true);\n this.modifyInCollections(actionObject.annotation, 'dynamicText');\n if (this.pdfViewer.selectedItems.annotations[0]) {\n this.pdfViewer.nodePropertyChange(this.pdfViewer.selectedItems.annotations[0], {});\n }\n else {\n this.pdfViewer.nodePropertyChange(actionObject.annotation, {});\n }\n this.pdfViewer.annotation.freeTextAnnotationModule.isFreeTextValueChange = false;\n this.pdfViewer.clearSelection(this.pdfViewerBase.activeElements.activePageID);\n break;\n case 'fontColor':\n this.pdfViewer.nodePropertyChange(actionObject.annotation, { fontColor: actionObject.undoElement.fontColor });\n this.modifyInCollections(actionObject.annotation, 'fontColor');\n this.pdfViewer.renderDrawing();\n break;\n case 'fontSize':\n this.pdfViewer.nodePropertyChange(actionObject.annotation, { fontSize: actionObject.undoElement.fontSize });\n this.modifyInCollections(actionObject.annotation, 'fontSize');\n this.pdfViewer.renderDrawing();\n break;\n case 'fontFamily':\n this.pdfViewer.nodePropertyChange(actionObject.annotation, { fontFamily: actionObject.undoElement.fontFamily });\n this.modifyInCollections(actionObject.annotation, 'fontFamily');\n this.pdfViewer.renderDrawing();\n break;\n case 'textAlign':\n this.pdfViewer.nodePropertyChange(actionObject.annotation, { textAlign: actionObject.undoElement.textAlign });\n this.modifyInCollections(actionObject.annotation, 'textAlign');\n this.pdfViewer.renderDrawing();\n break;\n case 'textPropertiesChange':\n this.pdfViewer.nodePropertyChange(actionObject.annotation, { font: actionObject.undoElement.font });\n this.modifyInCollections(actionObject.annotation, 'textPropertiesChange');\n this.pdfViewer.renderDrawing();\n break;\n case 'Rotate':\n // eslint-disable-next-line max-len\n this.pdfViewer.nodePropertyChange(actionObject.annotation.annotations[0], { bounds: actionObject.undoElement.bounds, rotateAngle: actionObject.undoElement.rotateAngle });\n this.modifyInCollections(actionObject.annotation.annotations[0], 'bounds');\n this.pdfViewer.renderDrawing();\n break;\n case 'FormDesigner Properties Change':\n if (actionObject.undoElement && actionObject.undoElement.isMultiline !== actionObject.redoElement.isMultiline) {\n this.undoRedoMultiline(actionObject.undoElement);\n }\n this.updateFormFieldPropertiesChanges(actionObject.undoElement.formFieldAnnotationType, actionObject.undoElement);\n break;\n case 'FormField Value Change':\n if (actionObject.annotation.formFieldAnnotationType) {\n if (actionObject.annotation.formFieldAnnotationType == \"RadioButton\") {\n this.updateFormFieldValueChange(actionObject.annotation.formFieldAnnotationType, actionObject.undoElement, false);\n this.updateFormFieldValueChange(actionObject.annotation.formFieldAnnotationType, actionObject.redoElement, true);\n }\n else {\n this.updateFormFieldValueChange(actionObject.annotation.formFieldAnnotationType, actionObject.annotation, actionObject.undoElement);\n }\n }\n else {\n var spanElement = document.getElementById(actionObject.annotation.id + \"_html_element\").children[0].children[0];\n spanElement.className = 'e-pdfviewer-signatureformfields';\n var formFieldObj = this.pdfViewer.nameTable[actionObject.annotation.id.split(\"_\")[0]];\n var annotationObj = this.pdfViewer.nameTable[actionObject.annotation.id];\n formFieldObj.wrapper.children.splice(formFieldObj.wrapper.children.indexOf(annotationObj.wrapper.children[0]), 1);\n if (actionObject.annotation.shapeAnnotationType === \"SignatureText\")\n formFieldObj.wrapper.children.splice(formFieldObj.wrapper.children.indexOf(annotationObj.wrapper.children[1]), 1);\n var key = actionObject.annotation.id.split('_')[0] + '_content';\n var data = null;\n if (this.pdfViewer.formDesignerModule) {\n data = this.pdfViewerBase.getItemFromSessionStorage('_formDesigner');\n }\n if (data) {\n var formFieldsData = JSON.parse(data);\n for (var i = 0; i < formFieldsData.length; i++) {\n if (formFieldsData[i].Key === key) {\n formFieldsData[i].FormField.value = '';\n formFieldsData[i].FormField.signatureType = '';\n this.pdfViewerBase.formFieldCollection[i].FormField.value = '';\n this.pdfViewerBase.formFieldCollection[i].FormField.signatureType = '';\n }\n }\n this.pdfViewer.remove(actionObject.annotation);\n this.pdfViewer.renderDrawing();\n this.pdfViewerBase.setItemInSessionStorage(this.pdfViewerBase.formFieldCollection, '_formDesigner');\n }\n }\n }\n this.redoCollection.push(actionObject);\n this.updateToolbar();\n this.isUndoRedoAction = false;\n this.isUndoAction = false;\n }\n };\n /**\n * @private\n */\n Annotation.prototype.redo = function () {\n var actionObject = this.redoCollection.pop();\n if (actionObject) {\n // eslint-disable-next-line\n var shapeType = actionObject.annotation.shapeAnnotationType;\n this.isUndoRedoAction = true;\n switch (actionObject.action) {\n case 'Text Markup Property modified':\n if (this.textMarkupAnnotationModule) {\n // eslint-disable-next-line max-len\n actionObject.annotation = this.textMarkupAnnotationModule.undoRedoPropertyChange(actionObject.annotation, actionObject.pageIndex, actionObject.index, actionObject.modifiedProperty);\n }\n break;\n case 'Text Markup Added':\n case 'Text Markup Deleted':\n if (this.textMarkupAnnotationModule) {\n // eslint-disable-next-line max-len\n this.textMarkupAnnotationModule.redoTextMarkupAction(actionObject.annotation, actionObject.pageIndex, actionObject.index, actionObject.action);\n }\n break;\n case 'Drag':\n case 'Resize':\n if (isLineShapes(actionObject.annotation)) {\n this.pdfViewer.nodePropertyChange(\n // eslint-disable-next-line max-len\n actionObject.annotation, { bounds: actionObject.redoElement.bounds, vertexPoints: actionObject.redoElement.vertexPoints, leaderHeight: actionObject.redoElement.leaderHeight });\n }\n else {\n this.pdfViewer.nodePropertyChange(actionObject.annotation, { bounds: actionObject.redoElement.bounds });\n }\n // eslint-disable-next-line max-len\n if (actionObject.annotation.measureType === 'Distance' || actionObject.annotation.measureType === 'Perimeter' || actionObject.annotation.measureType === 'Area' ||\n actionObject.annotation.measureType === 'Radius' || actionObject.annotation.measureType === 'Volume') {\n this.pdfViewer.nodePropertyChange(actionObject.annotation, { notes: actionObject.redoElement.notes });\n this.updateCalibrateValues(actionObject.annotation);\n }\n if (actionObject.annotation.formFieldAnnotationType) {\n this.pdfViewer.formDesigner.updateHTMLElement(actionObject.annotation);\n }\n this.pdfViewer.clearSelection(this.pdfViewerBase.activeElements.activePageID);\n this.pdfViewer.select([actionObject.annotation.id]);\n // eslint-disable-next-line max-len\n if (actionObject.annotation.shapeAnnotationType === 'Line' || actionObject.annotation.shapeAnnotationType === 'Rectangle' || actionObject.annotation.shapeAnnotationType === 'Ellipse' || actionObject.annotation.shapeAnnotationType === 'Polygon' || actionObject.annotation.shapeAnnotationType === 'LineWidthArrowHead'\n || actionObject.annotation.shapeAnnotationType === 'Radius' || actionObject.annotation.shapeAnnotationType === 'FreeText' || actionObject.annotation.shapeAnnotationType === 'HandWrittenSignature' || actionObject.annotation.shapeAnnotationType === 'SignatureText' || actionObject.annotation.shapeAnnotationType === 'SignatureImage' || actionObject.annotation.shapeAnnotationType === 'Ink') {\n this.modifyInCollections(actionObject.annotation, 'bounds');\n }\n break;\n case 'Addition':\n if (this.pdfViewer.formDesigner && actionObject.annotation.formFieldAnnotationType) {\n actionObject.redoElement.bounds.x = actionObject.redoElement.wrapper.bounds.x;\n actionObject.redoElement.bounds.y = actionObject.redoElement.wrapper.bounds.y;\n this.pdfViewer.formDesigner.drawFormField(actionObject.redoElement);\n }\n else {\n // eslint-disable-next-line max-len\n if (shapeType === 'Line' || shapeType === 'LineWidthArrowHead' || shapeType === 'Polygon' || shapeType === 'Ellipse' || shapeType === 'Rectangle' || shapeType === 'Radius' || shapeType === 'Distance') {\n if (actionObject.annotation.measureType === '' || isNullOrUndefined(actionObject.annotation.measureType)) {\n shapeType = 'shape';\n this.shapeAnnotationModule.addInCollection(actionObject.annotation.pageIndex, actionObject.duplicate);\n }\n else {\n shapeType = 'shape_measure';\n this.measureAnnotationModule.addInCollection(actionObject.annotation.pageIndex, actionObject.duplicate);\n }\n }\n if (shapeType === 'FreeText') {\n this.freeTextAnnotationModule.addInCollection(actionObject.annotation.pageIndex, actionObject.duplicate);\n }\n if (shapeType === 'Stamp') {\n this.stampAnnotationModule.updateDeleteItems(actionObject.annotation.pageIndex, actionObject.redoElement);\n }\n if (shapeType === 'HandWrittenSignature' || shapeType === 'SignatureText' || shapeType === 'SignatureImage') {\n this.pdfViewerBase.signatureModule.addInCollection(actionObject.annotation.pageIndex, actionObject.duplicate);\n }\n if (shapeType === 'Ink') {\n this.inkAnnotationModule.addInCollection(actionObject.annotation.pageIndex, actionObject.duplicate);\n }\n var addedAnnot = this.pdfViewer.add(actionObject.annotation);\n this.pdfViewer.select([actionObject.annotation.id]);\n if ((shapeType === 'FreeText' || addedAnnot.enableShapeLabel) && addedAnnot) {\n this.pdfViewer.nodePropertyChange(addedAnnot, {});\n }\n this.pdfViewer.renderDrawing(null, actionObject.annotation.pageIndex);\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.addAnnotationComments(actionObject.annotation.pageIndex, shapeType);\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n var mobileAnnotationToolbar = document.getElementById(this.pdfViewer.element.id + '_propertyToolbar');\n if (mobileAnnotationToolbar && mobileAnnotationToolbar.children.length > 0) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.toolbarCreated = false;\n this.pdfViewer.toolbarModule.annotationToolbarModule.createAnnotationToolbarForMobile();\n }\n }\n }\n break;\n case 'Delete':\n if (this.pdfViewer.formDesigner && actionObject.annotation.formFieldAnnotationType) {\n this.pdfViewer.formDesigner.deleteFormField(actionObject.redoElement.id, false);\n }\n else {\n var isUpdate = false;\n var sType = actionObject.annotation.shapeAnnotationType;\n // eslint-disable-next-line max-len\n if (shapeType === 'Line' || shapeType === 'LineWidthArrowHead' || shapeType === 'Polygon' || shapeType === 'Ellipse' || shapeType === 'Rectangle' || shapeType === 'Radius' || shapeType === 'Distance') {\n if (actionObject.annotation.measureType === '' || isNullOrUndefined(actionObject.annotation.measureType)) {\n sType = 'shape';\n }\n else {\n sType = 'measure';\n }\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.stickyNotesAnnotationModule.findPosition(actionObject.annotation, sType, 'delete');\n this.modifyInCollections(actionObject.annotation, 'delete');\n isUpdate = true;\n }\n if (shapeType === 'Stamp') {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.stickyNotesAnnotationModule.findPosition(actionObject.annotation, sType, 'delete');\n this.stampAnnotationModule.updateSessionStorage(actionObject.annotation, null, 'delete');\n isUpdate = true;\n }\n if (shapeType === 'FreeText' || shapeType === 'HandWrittenSignature' || shapeType === 'SignatureText' || shapeType === 'SignatureImage') {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.stickyNotesAnnotationModule.findPosition(actionObject.annotation, sType, 'delete');\n this.modifyInCollections(actionObject.annotation, 'delete');\n }\n if (!isUpdate) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.stickyNotesAnnotationModule.findPosition(actionObject.annotation, sType, 'delete');\n }\n var formFieldObj = void 0;\n if (actionObject.annotation.id) {\n formFieldObj = this.pdfViewer.nameTable[actionObject.annotation.id.split(\"_\")[0]];\n }\n if (formFieldObj != null && (formFieldObj.formFieldAnnotationType === 'SignatureField' || formFieldObj.formFieldAnnotationType === 'InitialField')) {\n formFieldObj.wrapper.children.splice(formFieldObj.wrapper.children.indexOf(actionObject.annotation.wrapper.children[0]), 1);\n if (actionObject.annotation.shapeAnnotationType === \"SignatureText\")\n formFieldObj.wrapper.children.splice(formFieldObj.wrapper.children.indexOf(actionObject.annotation.wrapper.children[1]), 1);\n var key = actionObject.annotation.id.split('_')[0] + '_content';\n var data = null;\n if (this.pdfViewer.formDesignerModule) {\n data = this.pdfViewerBase.getItemFromSessionStorage('_formDesigner');\n }\n if (data) {\n var formFieldsData = JSON.parse(data);\n for (var i = 0; i < formFieldsData.length; i++) {\n if (formFieldsData[i].Key === key) {\n formFieldsData[i].FormField.value = '';\n formFieldsData[i].FormField.signatureType = '';\n this.pdfViewerBase.formFieldCollection[i].FormField.value = '';\n this.pdfViewerBase.formFieldCollection[i].FormField.signatureType = '';\n }\n }\n this.pdfViewerBase.setItemInSessionStorage(this.pdfViewerBase.formFieldCollection, '_formDesigner');\n }\n }\n this.pdfViewer.clearSelection(actionObject.annotation.pageIndex);\n this.pdfViewer.remove(actionObject.annotation);\n this.pdfViewer.renderDrawing(null, actionObject.annotation.pageIndex);\n // eslint-disable-next-line\n var id = actionObject.annotation.annotName ? actionObject.annotation.annotName : actionObject.annotation.annotationId;\n var removeDiv = document.getElementById(id);\n this.removeCommentPanelDiv(removeDiv);\n if (actionObject.annotation.annotationId) {\n var collections = this.updateCollectionForNonRenderedPages(actionObject.annotation, id, actionObject.annotation.pageIndex);\n this.undoCommentsElement.push(collections);\n }\n }\n break;\n case 'stampOpacity':\n this.pdfViewer.nodePropertyChange(actionObject.annotation, { opacity: actionObject.redoElement.opacity });\n this.stickyNotesAnnotationModule.updateAnnotationModifiedDate(actionObject.annotation, null, true);\n break;\n case 'Shape Stroke':\n this.pdfViewer.nodePropertyChange(actionObject.annotation, { strokeColor: actionObject.redoElement.strokeColor });\n this.modifyInCollections(actionObject.annotation, 'stroke');\n this.pdfViewer.renderDrawing();\n break;\n case 'Shape Fill':\n this.pdfViewer.nodePropertyChange(actionObject.annotation, { fillColor: actionObject.redoElement.fillColor });\n this.modifyInCollections(actionObject.annotation, 'fill');\n this.pdfViewer.renderDrawing();\n break;\n case 'Shape Opacity':\n this.pdfViewer.nodePropertyChange(actionObject.annotation, { opacity: actionObject.redoElement.opacity });\n if (actionObject.annotation.shapeAnnotationType === 'StickyNotes') {\n this.stickyNotesAnnotationModule.updateOpacityValue(actionObject.annotation);\n this.stickyNotesAnnotationModule.updateAnnotationModifiedDate(actionObject.annotation, null, true);\n }\n else {\n this.modifyInCollections(actionObject.annotation, 'opacity');\n }\n this.pdfViewer.renderDrawing();\n break;\n case 'Shape Thickness':\n this.pdfViewer.nodePropertyChange(actionObject.annotation, { thickness: actionObject.redoElement.thickness });\n this.modifyInCollections(actionObject.annotation, 'thickness');\n this.pdfViewer.renderDrawing();\n break;\n case 'Line properties change':\n this.pdfViewer.nodePropertyChange(actionObject.annotation, {\n // eslint-disable-next-line max-len\n fillColor: actionObject.redoElement.fillColor, strokeColor: actionObject.redoElement.strokeColor, opacity: actionObject.redoElement.opacity, thickness: actionObject.redoElement.thickness,\n sourceDecoraterShapes: this.getArrowType(actionObject.redoElement.lineHeadStart), taregetDecoraterShapes: this.getArrowType(actionObject.redoElement.lineHeadEnd),\n borderDashArray: actionObject.redoElement.borderDashArray, borderStyle: actionObject.redoElement.borderStyle\n });\n this.updateCollectionForLineProperty(actionObject.annotation);\n this.pdfViewer.renderDrawing();\n break;\n case 'Text Property Added':\n // eslint-disable-next-line max-len\n actionObject.annotation = this.pdfViewer.annotationModule.stickyNotesAnnotationModule.redoAction(actionObject.annotation, actionObject.action, actionObject.undoElement);\n this.stickyNotesAnnotationModule.updateAnnotationModifiedDate(actionObject.annotation, null, true);\n break;\n case 'Comments Property Added':\n // eslint-disable-next-line max-len\n actionObject.annotation = this.pdfViewer.annotationModule.stickyNotesAnnotationModule.redoAction(actionObject.annotation, actionObject.action, actionObject.undoElement);\n break;\n case 'Status Property Added':\n // eslint-disable-next-line max-len\n actionObject.annotation = this.pdfViewer.annotationModule.stickyNotesAnnotationModule.redoAction(actionObject.annotation, actionObject.action);\n break;\n case 'Comments Reply Deleted':\n // eslint-disable-next-line max-len\n actionObject.annotation = this.pdfViewer.annotationModule.stickyNotesAnnotationModule.redoAction(actionObject.annotation, actionObject.action);\n break;\n case 'dynamicText Change':\n this.pdfViewer.annotation.freeTextAnnotationModule.isFreeTextValueChange = true;\n actionObject.annotation.dynamicText = actionObject.redoElement.dynamicText;\n // eslint-disable-next-line\n var annotation = this.pdfViewer.selectedItems.annotations[0];\n if (annotation) {\n annotation.dynamicText = actionObject.redoElement.dynamicText;\n annotation.bounds.height = actionObject.redoElement.bounds.height;\n }\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.redoAction(actionObject.annotation, actionObject.action, actionObject.undoElement);\n this.stickyNotesAnnotationModule.updateAnnotationModifiedDate(actionObject.annotation, null, true);\n this.modifyInCollections(actionObject.annotation, 'dynamicText');\n if (annotation) {\n this.pdfViewer.nodePropertyChange(annotation, {});\n }\n else {\n this.pdfViewer.nodePropertyChange(actionObject.annotation, {});\n }\n this.pdfViewer.annotation.freeTextAnnotationModule.isFreeTextValueChange = false;\n this.pdfViewer.clearSelection(this.pdfViewerBase.activeElements.activePageID);\n this.pdfViewer.select([actionObject.annotation.id]);\n break;\n case 'fontColor':\n this.pdfViewer.nodePropertyChange(actionObject.annotation, { fontColor: actionObject.redoElement.fontColor });\n this.modifyInCollections(actionObject.annotation, 'fontColor');\n this.pdfViewer.renderDrawing();\n break;\n case 'fontSize':\n this.pdfViewer.nodePropertyChange(actionObject.annotation, { fontSize: actionObject.redoElement.fontSize });\n this.modifyInCollections(actionObject.annotation, 'fontSize');\n this.pdfViewer.renderDrawing();\n break;\n case 'textAlign':\n this.pdfViewer.nodePropertyChange(actionObject.annotation, { textAlign: actionObject.redoElement.textAlign });\n this.modifyInCollections(actionObject.annotation, 'textAlign');\n this.pdfViewer.renderDrawing();\n break;\n case 'textPropertiesChange':\n this.pdfViewer.nodePropertyChange(actionObject.annotation, { font: actionObject.redoElement.font });\n this.modifyInCollections(actionObject.annotation, 'textPropertiesChange');\n this.pdfViewer.renderDrawing();\n break;\n case 'Rotate':\n // eslint-disable-next-line max-len\n this.pdfViewer.nodePropertyChange(actionObject.annotation.annotations[0], { bounds: actionObject.redoElement.bounds, rotateAngle: actionObject.redoElement.rotateAngle });\n this.modifyInCollections(actionObject.annotation.annotations[0], 'bounds');\n this.pdfViewer.renderDrawing();\n break;\n case 'FormDesigner Properties Change':\n if (actionObject.redoElement && actionObject.undoElement.isMultiline !== actionObject.redoElement.isMultiline) {\n this.undoRedoMultiline(actionObject.redoElement);\n }\n this.updateFormFieldPropertiesChanges(actionObject.redoElement.formFieldAnnotationType, actionObject.redoElement);\n break;\n case 'FormField Value Change':\n if (actionObject.annotation.formFieldAnnotationType) {\n if (actionObject.annotation.formFieldAnnotationType == \"RadioButton\") {\n this.updateFormFieldValueChange(actionObject.annotation.formFieldAnnotationType, actionObject.undoElement, true);\n this.updateFormFieldValueChange(actionObject.annotation.formFieldAnnotationType, actionObject.redoElement, false);\n }\n else {\n this.updateFormFieldValueChange(actionObject.annotation.formFieldAnnotationType, actionObject.annotation, actionObject.redoElement);\n }\n }\n else {\n var spanElement = document.getElementById(actionObject.annotation.id + \"_html_element\").children[0].children[0];\n spanElement.className = 'e-pdfviewer-signatureformfields-signature';\n var formFieldObj = this.pdfViewer.nameTable[actionObject.annotation.id.split(\"_\")[0]];\n var annotationObj = this.pdfViewer.nameTable[actionObject.annotation.id];\n formFieldObj.wrapper.children.push(annotationObj.wrapper.children[0]);\n if (actionObject.annotation.shapeAnnotationType === \"SignatureText\")\n formFieldObj.wrapper.children.push(annotationObj.wrapper.children[1]);\n var key = actionObject.annotation.id.split('_')[0] + '_content';\n var data = null;\n if (this.pdfViewer.formDesignerModule) {\n data = this.pdfViewerBase.getItemFromSessionStorage('_formDesigner');\n }\n if (data) {\n var formFieldsData = JSON.parse(data);\n for (var i = 0; i < formFieldsData.length; i++) {\n if (formFieldsData[i].Key === key) {\n if (actionObject.annotation.shapeAnnotationType === \"SignatureText\") {\n formFieldsData[i].FormField.signatureType = \"Text\";\n formFieldsData[i].FormField.value = actionObject.annotation.data;\n this.pdfViewerBase.formFieldCollection[i].FormField.value = actionObject.annotation.data;\n this.pdfViewerBase.formFieldCollection[i].FormField.signatureType = \"Text\";\n }\n else if (actionObject.annotation.shapeAnnotationType === \"SignatureImage\") {\n formFieldsData[i].FormField.signatureType = \"Image\";\n formFieldsData[i].FormField.value = actionObject.annotation.data;\n this.pdfViewerBase.formFieldCollection[i].FormField.value = actionObject.annotation.data;\n this.pdfViewerBase.formFieldCollection[i].FormField.signatureType = \"Image\";\n }\n else {\n formFieldsData[i].FormField.signatureType = \"Path\";\n this.pdfViewerBase.formFieldCollection[i].FormField.signatureType = \"Path\";\n var collectionData = processPathData(actionObject.annotation.data);\n var csData = splitArrayCollection(collectionData);\n formFieldsData[i].FormField.value = JSON.stringify(csData);\n this.pdfViewerBase.formFieldCollection[i].FormField.value = JSON.stringify(csData);\n }\n }\n }\n this.pdfViewer.add(actionObject.annotation);\n var canvass = document.getElementById(this.pdfViewer.element.id + '_annotationCanvas_' + actionObject.pageIndex);\n this.pdfViewer.renderDrawing(canvass, actionObject.pageIndex);\n this.pdfViewerBase.setItemInSessionStorage(this.pdfViewerBase.formFieldCollection, '_formDesigner');\n }\n }\n }\n if (actionObject.redoElement && actionObject.redoElement.modifiedDate !== undefined) {\n actionObject.annotation.modifiedDate = actionObject.redoElement.modifiedDate;\n }\n this.actionCollection.push(actionObject);\n this.updateToolbar();\n this.isUndoRedoAction = false;\n }\n };\n Annotation.prototype.undoRedoMultiline = function (element) {\n if (element.isMultiline && element.formFieldAnnotationType === 'Textbox') {\n this.pdfViewer.formDesignerModule.renderMultilineText(element, true);\n }\n else if (element.formFieldAnnotationType === 'Textbox') {\n this.pdfViewer.formDesignerModule.renderTextbox(element, true);\n }\n };\n Annotation.prototype.updateFormFieldValueChange = function (formFieldAnnotationType, annotation, value) {\n if (annotation) {\n var formFieldModel = this.pdfViewer.formDesigner.getFormField(annotation.id.split(\"_\")[0]);\n var data = null;\n if (this.pdfViewer.formDesignerModule) {\n data = this.pdfViewerBase.getItemFromSessionStorage('_formDesigner');\n }\n if (data) {\n var formFieldsData = JSON.parse(data);\n var index = this.pdfViewer.formDesigner.getFormFiledIndex(annotation.id.split('_')[0]);\n switch (formFieldAnnotationType) {\n case 'Textbox':\n case 'PasswordField':\n case 'RadioButton':\n case 'DropdownList':\n case 'ListBox':\n var inputElement = document.getElementById(annotation.id.split(\"_\")[0] + \"_content_html_element\").firstElementChild.firstElementChild;\n if (formFieldAnnotationType == 'Textbox' || formFieldAnnotationType == 'PasswordField') {\n formFieldModel.value = value;\n this.pdfViewer.formDesigner.updateValuePropertyChange(formFieldModel, inputElement, true, index, formFieldsData);\n }\n else if (formFieldAnnotationType == 'RadioButton') {\n formFieldModel.isSelected = value;\n this.pdfViewer.formDesigner.updateIsSelectedPropertyChange(formFieldModel, inputElement.firstElementChild, true, index, formFieldsData);\n }\n else if (formFieldAnnotationType == 'DropdownList' || formFieldAnnotationType == 'ListBox') {\n formFieldModel.selectedIndex = value;\n formFieldsData[index].FormField.selectedIndex = value;\n this.pdfViewerBase.formFieldCollection[index].FormField.selectedIndex = value;\n this.pdfViewer.nameTable[formFieldsData[index].Key.split(\"_\")[0]].selectedIndex = value;\n if (formFieldAnnotationType == 'ListBox') {\n for (var k = 0; k < inputElement.options.length; k++) {\n inputElement.options[k].selected = value.includes(k) ? true : false;\n }\n }\n else {\n inputElement.selectedIndex = value;\n }\n }\n break;\n case 'Checkbox':\n var checkboxDivElement = document.getElementById(annotation.id.split(\"_\")[0] + \"_content_html_element\").firstElementChild.firstElementChild.lastElementChild;\n formFieldModel.isChecked = value;\n this.pdfViewer.formDesigner.updateIsCheckedPropertyChange(formFieldModel, checkboxDivElement, true, index, formFieldsData);\n break;\n }\n this.pdfViewerBase.setItemInSessionStorage(this.pdfViewerBase.formFieldCollection, '_formDesigner');\n }\n }\n };\n Annotation.prototype.updateFormFieldPropertiesChanges = function (formFieldAnnotationType, element) {\n switch (formFieldAnnotationType) {\n case 'Textbox':\n case 'PasswordField':\n this.pdfViewer.formDesigner.updateTextboxFormDesignerProperties(element, true);\n break;\n case 'Checkbox':\n this.pdfViewer.formDesigner.updateCheckboxFormDesignerProperties(element, true);\n break;\n case 'RadioButton':\n this.pdfViewer.formDesigner.updateRadioButtonDesignerProperties(element, true);\n break;\n case 'DropdownList':\n this.pdfViewer.formDesigner.updateDropdownFormDesignerProperties(element, true);\n break;\n case 'ListBox':\n this.pdfViewer.formDesigner.updateListBoxFormDesignerProperties(element, true);\n break;\n case 'SignatureField':\n case 'InitialField':\n this.pdfViewer.formDesigner.updateSignatureTextboxProperties(element, true);\n }\n };\n Annotation.prototype.updateCollectionForLineProperty = function (pdfAnnotationBase) {\n this.modifyInCollections(pdfAnnotationBase, 'fill');\n this.modifyInCollections(pdfAnnotationBase, 'stroke');\n this.modifyInCollections(pdfAnnotationBase, 'opacity');\n this.modifyInCollections(pdfAnnotationBase, 'thickness');\n this.modifyInCollections(pdfAnnotationBase, 'dashArray');\n this.modifyInCollections(pdfAnnotationBase, 'startArrow');\n this.modifyInCollections(pdfAnnotationBase, 'endArrow');\n };\n Annotation.prototype.updateToolbar = function (isAnnotationDelete) {\n if (this.pdfViewer.toolbarModule) {\n this.pdfViewer.toolbarModule.updateUndoRedoButtons();\n }\n if (this.actionCollection && this.actionCollection.length == 0) {\n this.pdfViewerBase.updateDocumentEditedProperty(false);\n }\n else {\n this.pdfViewerBase.updateDocumentEditedProperty(true);\n }\n if (isAnnotationDelete) {\n //This below lines are commented for the below task -EJ2-61754-IsDocumentEdited API is not Properly working for delete annotations\n //Also refer EJ2-55205-The isDocumentEdited property is False on adding handwritten signature\n // let isEdited: boolean = false;\n // if (this.pdfViewer.annotationCollection && this.pdfViewer.annotationCollection.length > 0 && this.pdfViewer.signatureCollection && this.pdfViewer.signatureCollection.length > 0) {\n // isEdited = true;\n // }\n // if (!isEdited && this.pdfViewer.isDocumentEdited) {\n this.pdfViewerBase.updateDocumentEditedProperty(true);\n // }\n }\n };\n Annotation.prototype.createNote = function () {\n // eslint-disable-next-line max-len\n this.popupNote = createElement('div', { id: this.pdfViewer.element.id + '_annotation_note', className: 'e-pv-annotation-note', styles: 'display:none' });\n this.popupNoteAuthor = createElement('div', { id: this.pdfViewer.element.id + '_annotation_note_author', className: 'e-pv-annotation-note-author' });\n this.popupNote.appendChild(this.popupNoteAuthor);\n // eslint-disable-next-line max-len\n this.popupNoteContent = createElement('div', { id: this.pdfViewer.element.id + '_annotation_note_content', className: 'e-pv-annotation-note-content' });\n this.popupNote.appendChild(this.popupNoteContent);\n this.pdfViewerBase.mainContainer.appendChild(this.popupNote);\n };\n /**\n * @param event\n * @param color\n * @param author\n * @param note\n * @param type\n * @param event\n * @param color\n * @param author\n * @param note\n * @param type\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.showPopupNote = function (event, color, author, note, type) {\n var mainContainerPosition = this.pdfViewerBase.mainContainer.getBoundingClientRect();\n var popupNoteClientRect = this.popupNote.getBoundingClientRect();\n if (author) {\n this.popupNoteAuthor.textContent = author;\n }\n this.popupNoteContent.textContent = note;\n if (type === 'Highlight') {\n this.popupNote.style.backgroundColor = 'rgb(237, 232, 177)';\n }\n else if (type === 'Underline') {\n this.popupNote.style.backgroundColor = 'rgb(187, 241, 191)';\n }\n else if (type === 'Strikethrough') {\n this.popupNote.style.backgroundColor = 'rgb(242, 188, 207)';\n }\n this.popupNote.style.display = 'block';\n var topPosition = (event.pageY - mainContainerPosition.top + 5);\n var leftPosition = (event.pageX - mainContainerPosition.left + 5);\n if (leftPosition + popupNoteClientRect.width > mainContainerPosition.width) {\n leftPosition = leftPosition - popupNoteClientRect.width;\n }\n if (topPosition + popupNoteClientRect.height > mainContainerPosition.height) {\n topPosition = topPosition - popupNoteClientRect.height;\n }\n this.popupNote.style.top = topPosition + 'px';\n this.popupNote.style.left = leftPosition + 'px';\n };\n /**\n * @private\n */\n Annotation.prototype.hidePopupNote = function () {\n if (this.popupNote) {\n this.popupNote.style.display = 'none';\n }\n };\n Annotation.prototype.createTextMarkupPopup = function () {\n var _this = this;\n var elementId = this.pdfViewer.element.id;\n // eslint-disable-next-line max-len\n this.popupElement = createElement('div', { id: elementId + '_popup_annotation_note', className: 'e-pv-annotation-popup-menu', styles: 'display:none' });\n var headerElement = createElement('div', { id: elementId + '_popup_header', className: 'e-pv-annotation-popup-header' });\n // eslint-disable-next-line max-len\n this.authorPopupElement = createElement('div', { id: elementId + '_popup_author', className: 'e-pv-annotation-popup-author' });\n headerElement.appendChild(this.authorPopupElement);\n // eslint-disable-next-line max-len\n var closeBtn = createElement('span', { id: elementId + '_popup_close', className: 'e-pv-annotation-popup-close e-pv-icon' });\n headerElement.appendChild(closeBtn);\n this.popupElement.appendChild(headerElement);\n // eslint-disable-next-line max-len\n this.modifiedDateElement = createElement('div', { id: elementId + '_popup_modified_time', className: 'e-pv-annotation-modified-time' });\n this.popupElement.appendChild(this.modifiedDateElement);\n // eslint-disable-next-line max-len\n var contentContainer = createElement('div', { id: elementId + '_popup_content_container', className: 'e-pv-annotation-popup-note-container' });\n this.noteContentElement = createElement('div', { id: elementId + '_popup_content', className: 'e-pv-annotation-popup-content' });\n this.noteContentElement.contentEditable = 'true';\n contentContainer.appendChild(this.noteContentElement);\n this.popupElement.appendChild(contentContainer);\n this.pdfViewerBase.viewerContainer.appendChild(this.popupElement);\n closeBtn.addEventListener('click', this.saveClosePopupMenu.bind(this));\n closeBtn.addEventListener('touchend', this.saveClosePopupMenu.bind(this));\n this.popupElement.addEventListener('mousedown', this.onPopupElementMoveStart.bind(this));\n this.popupElement.addEventListener('mousemove', this.onPopupElementMove.bind(this));\n window.addEventListener('mouseup', this.onPopupElementMoveEnd.bind(this));\n this.popupElement.addEventListener('touchstart', this.onPopupElementMoveStart.bind(this));\n this.popupElement.addEventListener('touchmove', this.onPopupElementMove.bind(this));\n window.addEventListener('touchend', this.onPopupElementMoveEnd.bind(this));\n this.noteContentElement.addEventListener('mousedown', function () {\n _this.noteContentElement.focus();\n });\n };\n // eslint-disable-next-line\n Annotation.prototype.onPopupElementMoveStart = function (event) {\n if (event.type === 'touchstart') {\n event = event.changedTouches[0];\n }\n if ((event.target.id !== (this.noteContentElement.id) || !(event.target.contains(this.noteContentElement.childNodes[0])))) {\n this.isPopupMenuMoved = true;\n var popupElementClientRect = this.popupElement.getBoundingClientRect();\n this.clientX = event.clientX - popupElementClientRect.left;\n // eslint-disable-next-line max-len\n this.clientY = (event.clientY - popupElementClientRect.top) + (this.pdfViewerBase.pageSize[this.currentAnnotPageNumber].top * this.pdfViewerBase.getZoomFactor());\n }\n };\n // eslint-disable-next-line\n Annotation.prototype.onPopupElementMove = function (event) {\n if (event.type === 'touchmove') {\n event = event.changedTouches[0];\n }\n // eslint-disable-next-line max-len\n if (this.isPopupMenuMoved && (event.target.id !== (this.noteContentElement.id) || !(event.target.contains(this.noteContentElement.childNodes[0])))) {\n var left = (event.clientX - this.clientX) + parseFloat(this.popupElement.style.left);\n var top_1 = ((event.clientY - this.clientY) + parseFloat(this.popupElement.style.top));\n this.clientX = event.clientX;\n this.clientY = event.clientY;\n var clientPosition = this.popupElement.getBoundingClientRect();\n var pageDiv = document.getElementById(this.pdfViewer.element.id + '_pageDiv_' + this.currentAnnotPageNumber);\n // eslint-disable-next-line max-len\n if (left > parseFloat(pageDiv.style.left) && (left + clientPosition.width) < (parseFloat(pageDiv.style.left) + parseFloat(pageDiv.style.width))) {\n this.popupElement.style.left = (left) + 'px';\n }\n else {\n this.popupElement.style.left = parseFloat(this.popupElement.style.left) + 'px';\n }\n // eslint-disable-next-line max-len\n if (top_1 > parseFloat(pageDiv.style.top) && (top_1 + clientPosition.height) < (parseFloat(pageDiv.style.top) + parseFloat(pageDiv.style.height))) {\n this.popupElement.style.top = (top_1) + 'px';\n }\n else {\n this.popupElement.style.top = parseFloat(this.popupElement.style.top) + 'px';\n }\n }\n };\n Annotation.prototype.onPopupElementMoveEnd = function () {\n this.isPopupMenuMoved = false;\n };\n Annotation.prototype.saveClosePopupMenu = function () {\n if (this.textMarkupAnnotationModule) {\n this.textMarkupAnnotationModule.saveNoteContent(this.currentAnnotPageNumber, this.noteContentElement.innerText);\n }\n this.closePopupMenu();\n };\n /**\n * @private\n */\n Annotation.prototype.closePopupMenu = function () {\n if (this.popupElement) {\n this.popupElement.parentElement.removeChild(this.popupElement);\n this.popupElement = null;\n this.isPopupNoteVisible = false;\n }\n };\n /**\n * @param event\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.showAnnotationPopup = function (event) {\n if (this.textMarkupAnnotationModule) {\n this.currentAnnotPageNumber = this.getEventPageNumber(event);\n // eslint-disable-next-line max-len\n if (this.textMarkupAnnotationModule && (event.target !== (this.noteContentElement) || (event.target.contains(this.noteContentElement.childNodes[0])))) {\n this.hidePopupNote();\n if (!this.popupElement) {\n this.createTextMarkupPopup();\n this.popupElement.style.display = 'block';\n this.authorPopupElement.textContent = this.textMarkupAnnotationModule.currentTextMarkupAnnotation.author;\n // eslint-disable-next-line max-len\n this.modifiedDateElement.textContent = this.getProperDate(this.textMarkupAnnotationModule.currentTextMarkupAnnotation.modifiedDate);\n this.noteContentElement.textContent = this.textMarkupAnnotationModule.currentTextMarkupAnnotation.note;\n var clientPosition = this.popupElement.getBoundingClientRect();\n // eslint-disable-next-line max-len\n var pageDiv = document.getElementById(this.pdfViewer.element.id + '_pageDiv_' + this.currentAnnotPageNumber);\n var canvasPosition = pageDiv.getBoundingClientRect();\n var topPosition = ((event.clientY) - canvasPosition.top) + parseFloat(pageDiv.style.top);\n var leftPosition = (event.clientX);\n if ((leftPosition + clientPosition.width) > (parseFloat(pageDiv.style.left) + parseFloat(pageDiv.style.width))) {\n this.popupElement.style.left = (leftPosition - clientPosition.width) + 'px';\n }\n else {\n this.popupElement.style.left = leftPosition + 'px';\n }\n if ((topPosition + clientPosition.height) > (parseFloat(pageDiv.style.top) + parseFloat(pageDiv.style.height))) {\n this.popupElement.style.top = (topPosition - clientPosition.height) + 'px';\n }\n else {\n this.popupElement.style.top = topPosition + 'px';\n }\n this.isPopupNoteVisible = true;\n }\n }\n }\n };\n /**\n * @param args\n * @param isOpacity\n * @param args\n * @param isOpacity\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.modifyOpacity = function (args, isOpacity) {\n var currentAnnotation = this.pdfViewer.selectedItems.annotations[0];\n var clonedObject = cloneObject(currentAnnotation);\n var redoClonedObject = cloneObject(currentAnnotation);\n var opacityValue = 1;\n if (isOpacity) {\n opacityValue = args / 100;\n }\n else {\n opacityValue = args.value / 100;\n }\n if (currentAnnotation.opacity !== opacityValue) {\n redoClonedObject.opacity = opacityValue;\n this.pdfViewer.nodePropertyChange(currentAnnotation, { opacity: opacityValue });\n if (currentAnnotation.shapeAnnotationType === 'StickyNotes') {\n this.stickyNotesAnnotationModule.updateOpacityValue(currentAnnotation);\n }\n else {\n this.modifyInCollections(currentAnnotation, 'opacity');\n }\n if (currentAnnotation.shapeAnnotationType === 'HandWrittenSignature' || currentAnnotation.shapeAnnotationType === 'SignatureImage' || currentAnnotation.shapeAnnotationType === 'SignatureText') {\n // eslint-disable-next-line max-len\n this.pdfViewer.fireSignaturePropertiesChange(currentAnnotation.pageIndex, currentAnnotation.signatureName, currentAnnotation.shapeAnnotationType, false, true, false, clonedObject.opacity, redoClonedObject.opacity);\n }\n else {\n this.triggerAnnotationPropChange(currentAnnotation, false, false, false, true);\n }\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(currentAnnotation.pageIndex, null, currentAnnotation, 'Shape Opacity', '', clonedObject, redoClonedObject);\n this.pdfViewer.renderDrawing();\n }\n };\n /**\n * @param currentColor\n * @private\n */\n Annotation.prototype.modifyFontColor = function (currentColor) {\n var currentAnnotation = this.pdfViewer.selectedItems.annotations[0];\n var clonedObject = cloneObject(currentAnnotation);\n var redoClonedObject = cloneObject(currentAnnotation);\n redoClonedObject.fontColor = currentColor;\n this.pdfViewer.nodePropertyChange(currentAnnotation, { fontColor: currentColor });\n this.modifyInCollections(currentAnnotation, 'fontColor');\n this.triggerAnnotationPropChange(currentAnnotation, false, false, false, true);\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(currentAnnotation.pageIndex, null, currentAnnotation, 'fontColor', '', clonedObject, redoClonedObject);\n this.pdfViewer.renderDrawing();\n };\n /**\n * @param currentValue\n * @private\n */\n Annotation.prototype.modifyFontFamily = function (currentValue) {\n var currentAnnotation = this.pdfViewer.selectedItems.annotations[0];\n var clonedObject = cloneObject(currentAnnotation);\n var redoClonedObject = cloneObject(currentAnnotation);\n redoClonedObject.fontFamily = currentValue;\n if (this.pdfViewer.freeTextSettings.enableAutoFit) {\n this.updateFontFamilyRenderSize(currentAnnotation, currentValue);\n }\n else {\n this.pdfViewer.nodePropertyChange(currentAnnotation, { fontFamily: currentValue });\n }\n this.modifyInCollections(currentAnnotation, 'fontFamily');\n this.triggerAnnotationPropChange(currentAnnotation, false, false, false, true);\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(currentAnnotation.pageIndex, null, currentAnnotation, 'fontFamily', '', clonedObject, redoClonedObject);\n this.pdfViewer.renderDrawing();\n };\n /**\n * @param currentValue\n * @private\n */\n Annotation.prototype.modifyFontSize = function (currentValue, isInteracted) {\n var currentAnnotation = this.pdfViewer.selectedItems.annotations[0];\n var clonedObject = cloneObject(currentAnnotation);\n var redoClonedObject = cloneObject(currentAnnotation);\n redoClonedObject.fontSize = currentValue;\n var freeTextAnnotation = this.freeTextAnnotationModule;\n var x = currentAnnotation.bounds.x;\n var y = currentAnnotation.bounds.y;\n currentAnnotation.fontSize = currentValue;\n if (freeTextAnnotation && !freeTextAnnotation.isNewFreeTextAnnot && currentAnnotation.dynamicText !== '') {\n freeTextAnnotation.addInuptElemet({ x: x, y: y }, currentAnnotation);\n if (currentAnnotation) {\n if (currentAnnotation.previousFontSize > currentValue) {\n freeTextAnnotation.inputBoxElement.style.height = 'auto';\n if (isInteracted) {\n freeTextAnnotation.inputBoxElement.style.height = freeTextAnnotation.inputBoxElement.scrollHeight + 5 + 'px';\n }\n else {\n if (freeTextAnnotation.inputBoxElement.scrollHeight + 5 > currentAnnotation.bounds.height) {\n freeTextAnnotation.inputBoxElement.style.height = freeTextAnnotation.inputBoxElement.scrollHeight + 5 + 'px';\n }\n else {\n freeTextAnnotation.inputBoxElement.style.height = currentAnnotation.bounds.height + 'px';\n }\n }\n }\n var inputEleHeight = parseFloat(freeTextAnnotation.inputBoxElement.style.height);\n var inputEleWidth = parseFloat(freeTextAnnotation.inputBoxElement.style.width);\n var zoomFactor = this.pdfViewerBase.getZoomFactor();\n inputEleWidth = ((inputEleWidth) / zoomFactor);\n inputEleHeight = ((inputEleHeight) / zoomFactor);\n var heightDiff = (inputEleHeight - currentAnnotation.bounds.height);\n var y_1 = undefined;\n if (heightDiff > 0) {\n y_1 = currentAnnotation.wrapper.offsetY + (heightDiff / 2);\n y_1 = y_1 > 0 ? y_1 : undefined;\n }\n else {\n heightDiff = Math.abs(heightDiff);\n y_1 = currentAnnotation.wrapper.offsetY - (heightDiff / 2);\n y_1 = y_1 > 0 ? y_1 : undefined;\n }\n var widthDiff = (inputEleWidth - currentAnnotation.bounds.width);\n var x_1 = undefined;\n if (widthDiff > 0) {\n x_1 = currentAnnotation.wrapper.offsetX + (widthDiff / 2);\n x_1 = x_1 > 0 ? x_1 : undefined;\n }\n else {\n widthDiff = Math.abs(widthDiff);\n x_1 = currentAnnotation.wrapper.offsetX - (widthDiff / 2);\n }\n currentAnnotation.bounds.width = inputEleWidth;\n currentAnnotation.bounds.height = inputEleHeight;\n // eslint-disable-next-line max-len\n this.pdfViewer.nodePropertyChange(currentAnnotation, { fontSize: currentValue, bounds: { width: currentAnnotation.bounds.width, height: currentAnnotation.bounds.height, y: y_1, x: x_1 } });\n this.pdfViewer.renderSelector(currentAnnotation.pageIndex, this.pdfViewer.annotationSelectorSettings);\n currentAnnotation.previousFontSize = currentValue;\n }\n this.modifyInCollections(currentAnnotation, 'fontSize');\n this.modifyInCollections(currentAnnotation, 'bounds');\n this.triggerAnnotationPropChange(currentAnnotation, false, false, false, true);\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(currentAnnotation.pageIndex, null, currentAnnotation, 'fontSize', '', clonedObject, redoClonedObject);\n this.pdfViewer.renderDrawing();\n }\n };\n /**\n * @param currentValue\n * @private\n */\n Annotation.prototype.modifyTextAlignment = function (currentValue) {\n var currentAnnotation = this.pdfViewer.selectedItems.annotations[0];\n var clonedObject = cloneObject(currentAnnotation);\n var redoClonedObject = cloneObject(currentAnnotation);\n redoClonedObject.textAlign = currentValue;\n this.pdfViewer.nodePropertyChange(currentAnnotation, { textAlign: currentValue });\n this.modifyInCollections(currentAnnotation, 'textAlign');\n this.triggerAnnotationPropChange(currentAnnotation, false, false, false, true);\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(currentAnnotation.pageIndex, null, currentAnnotation, 'textAlign', '', clonedObject, redoClonedObject);\n this.pdfViewer.renderDrawing();\n };\n /**\n * @param fontInfo\n * @param action\n * @private\n */\n Annotation.prototype.modifyTextProperties = function (fontInfo, action) {\n var currentAnnotation = this.pdfViewer.selectedItems.annotations[0];\n var clonedObject = cloneObject(currentAnnotation);\n var redoClonedObject = cloneObject(currentAnnotation);\n if (action === 'bold') {\n redoClonedObject.font.isBold = fontInfo.isBold;\n }\n else if (action === 'italic') {\n redoClonedObject.font.isItalic = fontInfo.isItalic;\n }\n else if (action === 'underline') {\n redoClonedObject.font.isUnderline = fontInfo.isUnderline;\n if (redoClonedObject.font.isUnderline && redoClonedObject.font.isStrikeout) {\n redoClonedObject.font.isStrikeout = false;\n }\n }\n else if (action === 'strikeout') {\n redoClonedObject.font.isStrikeout = fontInfo.isStrikeout;\n if (redoClonedObject.font.isUnderline && redoClonedObject.font.isStrikeout) {\n redoClonedObject.font.isUnderline = false;\n }\n }\n this.pdfViewer.nodePropertyChange(currentAnnotation, { font: fontInfo });\n this.modifyInCollections(currentAnnotation, 'textPropertiesChange');\n this.triggerAnnotationPropChange(currentAnnotation, false, false, false, true);\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(currentAnnotation.pageIndex, null, currentAnnotation, 'textPropertiesChange', '', clonedObject, redoClonedObject);\n this.pdfViewer.renderDrawing();\n };\n /**\n * @param thicknessValue\n * @private\n */\n Annotation.prototype.modifyThickness = function (thicknessValue) {\n var currentAnnotation = this.pdfViewer.selectedItems.annotations[0];\n if (currentAnnotation.thickness !== thicknessValue) {\n var clonedObject = cloneObject(currentAnnotation);\n var redoClonedObject = cloneObject(currentAnnotation);\n redoClonedObject.thickness = thicknessValue;\n this.pdfViewer.nodePropertyChange(currentAnnotation, { thickness: thicknessValue });\n this.modifyInCollections(currentAnnotation, 'thickness');\n if (currentAnnotation.shapeAnnotationType === 'HandWrittenSignature' || currentAnnotation.shapeAnnotationType === 'SignatureText' || currentAnnotation.shapeAnnotationType === 'SignatureImage') {\n // eslint-disable-next-line max-len\n this.pdfViewer.fireSignaturePropertiesChange(currentAnnotation.pageIndex, currentAnnotation.signatureName, currentAnnotation.shapeAnnotationType, false, false, true, clonedObject.thickness, redoClonedObject.thickness);\n }\n else {\n this.triggerAnnotationPropChange(currentAnnotation, false, false, true, false);\n }\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(currentAnnotation.pageIndex, null, currentAnnotation, 'Shape Thickness', '', clonedObject, redoClonedObject);\n this.pdfViewer.renderDrawing();\n }\n };\n /**\n * @param color\n * @private\n */\n Annotation.prototype.modifyStrokeColor = function (color) {\n var currentAnnotation = this.pdfViewer.selectedItems.annotations[0];\n var clonedObject = cloneObject(currentAnnotation);\n var redoClonedObject = cloneObject(currentAnnotation);\n redoClonedObject.strokeColor = color;\n this.pdfViewer.nodePropertyChange(currentAnnotation, { strokeColor: color });\n this.modifyInCollections(currentAnnotation, 'stroke');\n if (currentAnnotation.shapeAnnotationType === 'HandWrittenSignature' || currentAnnotation.shapeAnnotationType === 'SignatureText' || currentAnnotation.shapeAnnotationType === 'SignatureImage') {\n // eslint-disable-next-line max-len\n this.pdfViewer.fireSignaturePropertiesChange(currentAnnotation.pageIndex, currentAnnotation.signatureName, currentAnnotation.shapeAnnotationType, true, false, false, clonedObject.strokeColor, redoClonedObject.strokeColor);\n }\n else {\n this.triggerAnnotationPropChange(currentAnnotation, false, true, false, false);\n }\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(currentAnnotation.pageIndex, null, currentAnnotation, 'Shape Stroke', '', clonedObject, redoClonedObject);\n this.pdfViewer.renderDrawing();\n };\n /**\n * @param color\n * @private\n */\n Annotation.prototype.modifyFillColor = function (color) {\n var currentAnnotation = this.pdfViewer.selectedItems.annotations[0];\n var clonedObject = cloneObject(currentAnnotation);\n var redoClonedObject = cloneObject(currentAnnotation);\n redoClonedObject.fillColor = color;\n this.pdfViewer.nodePropertyChange(this.pdfViewer.selectedItems.annotations[0], { fillColor: color });\n this.modifyInCollections(currentAnnotation, 'fill');\n this.triggerAnnotationPropChange(currentAnnotation, true, false, false, false);\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(currentAnnotation.pageIndex, null, currentAnnotation, 'Shape Fill', '', clonedObject, redoClonedObject);\n this.pdfViewer.renderDrawing();\n };\n /**\n * @param dynamicText\n * @param annotName\n * @private\n */\n Annotation.prototype.modifyDynamicTextValue = function (dynamicText, annotName) {\n var currentAnnotation = null;\n currentAnnotation = this.pdfViewer.annotations.filter(function (s) { return s.annotName === annotName; })[0];\n if (currentAnnotation) {\n var clonedObject = cloneObject(currentAnnotation);\n var redoClonedObject = cloneObject(currentAnnotation);\n currentAnnotation.dynamicText = dynamicText;\n redoClonedObject.dynamicText = dynamicText;\n if (clonedObject.dynamicText === '') {\n clonedObject.dynamicText = this.freeTextAnnotationModule.previousText;\n }\n this.pdfViewer.nodePropertyChange(currentAnnotation, { dynamicText: dynamicText });\n this.pdfViewer.renderSelector(currentAnnotation.pageIndex, currentAnnotation.annotationSelectorSettings);\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(currentAnnotation.pageIndex, null, currentAnnotation, 'dynamicText Change', '', clonedObject, redoClonedObject);\n this.modifyInCollections(currentAnnotation, 'dynamicText');\n if (!isNullOrUndefined(this.freeTextAnnotationModule) && this.freeTextAnnotationModule.previousText !== 'Type Here' && this.freeTextAnnotationModule.previousText !== currentAnnotation.dynamicText) {\n this.triggerAnnotationPropChange(currentAnnotation, false, false, false, false, false, false, false, true, this.freeTextAnnotationModule.previousText, currentAnnotation.dynamicText);\n }\n this.pdfViewer.renderDrawing();\n }\n };\n // eslint-disable-next-line\n Annotation.prototype.modifyInCollections = function (annotationBase, property) {\n // eslint-disable-next-line\n var returnObj;\n if (annotationBase.measureType === '' || isNullOrUndefined(annotationBase.measureType)) {\n if (annotationBase.shapeAnnotationType === 'FreeText') {\n returnObj = this.freeTextAnnotationModule.modifyInCollection(property, annotationBase.pageIndex, annotationBase);\n }\n else if (annotationBase.shapeAnnotationType === 'HandWrittenSignature' || annotationBase.shapeAnnotationType === 'SignatureText' || annotationBase.shapeAnnotationType === 'SignatureImage') {\n // eslint-disable-next-line max-len\n returnObj = this.pdfViewerBase.signatureModule.modifySignatureCollection(property, annotationBase.pageIndex, annotationBase);\n }\n else if (annotationBase.shapeAnnotationType === 'Stamp') {\n returnObj = this.stampAnnotationModule.modifyInCollection(property, annotationBase.pageIndex, annotationBase);\n }\n else if (annotationBase.shapeAnnotationType === 'Ink') {\n // eslint-disable-next-line max-len\n returnObj = this.inkAnnotationModule.modifySignatureInkCollection(property, annotationBase.pageIndex, annotationBase);\n }\n else {\n returnObj = this.shapeAnnotationModule.modifyInCollection(property, annotationBase.pageIndex, annotationBase);\n }\n }\n else if (annotationBase.measureType === 'Distance' || annotationBase.measureType === 'Perimeter' ||\n annotationBase.measureType === 'Radius' || annotationBase.measureType === 'Area' || annotationBase.measureType === 'Volume') {\n returnObj = this.measureAnnotationModule.modifyInCollection(property, annotationBase.pageIndex, annotationBase);\n }\n if (this.isUndoRedoAction) {\n this.stickyNotesAnnotationModule.updateAnnotationModifiedDate(annotationBase, null, true);\n if (this.isUndoAction) {\n annotationBase.modifiedDate = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n }\n }\n else {\n if (property !== 'bounds') {\n this.stickyNotesAnnotationModule.updateAnnotationModifiedDate(annotationBase);\n }\n }\n return returnObj;\n };\n /**\n * @private\n */\n Annotation.prototype.createPropertiesWindow = function () {\n var _this = this;\n if (!isBlazor()) {\n var elementID = this.pdfViewer.element.id;\n // eslint-disable-next-line max-len\n var dialogDiv = createElement('div', { id: elementID + '_properties_window', className: 'e-pv-properties-window' });\n var appearanceTab = this.createAppearanceTab();\n this.pdfViewerBase.pageContainer.appendChild(dialogDiv);\n this.propertiesDialog = new Dialog({\n showCloseIcon: true, closeOnEscape: false, isModal: true, header: this.pdfViewer.localeObj.getConstant('Line Properties'),\n target: this.pdfViewer.element, content: appearanceTab, close: function () {\n _this.destroyPropertiesWindow();\n }\n });\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.propertiesDialog.buttons = [\n // eslint-disable-next-line max-len\n { buttonModel: { content: this.pdfViewer.localeObj.getConstant('OK'), isPrimary: true }, click: this.onOkClicked.bind(this) },\n { buttonModel: { content: this.pdfViewer.localeObj.getConstant('Cancel') }, click: this.onCancelClicked.bind(this) }\n ];\n }\n else {\n this.propertiesDialog.buttons = [\n { buttonModel: { content: this.pdfViewer.localeObj.getConstant('Cancel') }, click: this.onCancelClicked.bind(this) },\n // eslint-disable-next-line max-len\n { buttonModel: { content: this.pdfViewer.localeObj.getConstant('OK'), isPrimary: true }, click: this.onOkClicked.bind(this) }\n ];\n }\n if (this.pdfViewer.enableRtl) {\n this.propertiesDialog.enableRtl = true;\n }\n this.propertiesDialog.appendTo(dialogDiv);\n if (this.pdfViewer.selectedItems.annotations[0] && this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Line') {\n // eslint-disable-next-line\n var fillColor = document.getElementById(this.pdfViewer.element.id + '_properties_fill_color');\n fillColor.disabled = true;\n }\n // eslint-disable-next-line max-len\n this.startArrowDropDown.content = this.createContent(this.getArrowString(this.pdfViewer.selectedItems.annotations[0].sourceDecoraterShapes)).outerHTML;\n this.endArrowDropDown.content = this.createContent(this.getArrowString(this.pdfViewer.selectedItems.annotations[0].taregetDecoraterShapes)).outerHTML;\n this.thicknessBox.value = this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.strokeWidth;\n this.fillColorPicker.value = this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.fill;\n this.refreshColorPicker(this.fillColorPicker);\n this.strokeColorPicker.value = this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.strokeColor;\n this.refreshColorPicker(this.strokeColorPicker);\n this.updateColorInIcon(this.fillDropDown.element, this.fillColorPicker.value);\n this.updateColorInIcon(this.strokeDropDown.element, this.strokeColorPicker.value);\n this.opacitySlider.value = this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.opacity * 100;\n this.updateOpacityIndicator();\n // eslint-disable-next-line\n if (parseInt(this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.strokeDashArray) >= 3) {\n this.lineStyleDropDown.content = this.createDropDownContent('dashed').outerHTML;\n }\n else if (this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.strokeDashArray === '2') {\n this.lineStyleDropDown.content = this.createDropDownContent('dotted').outerHTML;\n }\n else if (this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.strokeDashArray === '0') {\n this.lineStyleDropDown.content = this.createDropDownContent('solid').outerHTML;\n }\n this.selectedLineStyle = this.pdfViewer.selectedItems.annotations[0].borderStyle;\n this.selectedLineDashArray = this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.strokeDashArray;\n if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Distance') {\n this.leaderLengthBox.value = this.pdfViewer.selectedItems.annotations[0].leaderHeight;\n }\n }\n else {\n var opacityValue = this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.opacity * 100;\n var lineStartElement = this.getArrowString(this.pdfViewer.selectedItems.annotations[0].sourceDecoraterShapes);\n var lineEndElement = this.getArrowString(this.pdfViewer.selectedItems.annotations[0].taregetDecoraterShapes);\n var lineStyleElement = void 0;\n // eslint-disable-next-line\n if (parseInt(this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.strokeDashArray) >= 3) {\n lineStyleElement = 'Dashed';\n }\n else if (this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.strokeDashArray === '2') {\n lineStyleElement = 'Dotted';\n }\n else if (this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.strokeDashArray === '0') {\n lineStyleElement = 'Solid';\n }\n this.pdfViewer._dotnetInstance.invokeMethodAsync('OpenPropertiesDialog', opacityValue, lineStartElement, lineEndElement, lineStyleElement);\n }\n };\n Annotation.prototype.updatePropertiesWindowInBlazor = function () {\n // eslint-disable-next-line\n var thicknessElement = document.querySelector('#' + this.pdfViewer.element.id + '_line_thickness');\n // eslint-disable-next-line\n var fillColorElement = document.querySelector('#' + this.pdfViewer.element.id + '_properties_fill_color_button');\n // eslint-disable-next-line\n var strokeColorElement = document.querySelector('#' + this.pdfViewer.element.id + '_properties_stroke_color_button');\n // eslint-disable-next-line\n var leaderLengthElement = document.querySelector('#' + this.pdfViewer.element.id + '_properties_leader_length');\n thicknessElement.value = this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.strokeWidth;\n fillColorElement.value = this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.fill;\n strokeColorElement.value = this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.strokeColor;\n this.onStrokeColorChange(strokeColorElement.value);\n this.onFillColorChange(fillColorElement.value);\n if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Distance') {\n // eslint-disable-next-line\n leaderLengthElement.value = parseInt(this.pdfViewer.selectedItems.annotations[0].leaderHeight.toString());\n }\n };\n Annotation.prototype.destroyPropertiesWindow = function () {\n if (this.strokeColorPicker) {\n this.strokeColorPicker.destroy();\n this.strokeColorPicker = null;\n }\n if (this.fillColorPicker) {\n this.fillColorPicker.destroy();\n this.fillColorPicker = null;\n }\n if (this.endArrowDropDown) {\n this.endArrowDropDown.destroy();\n this.endArrowDropDown = null;\n }\n if (this.startArrowDropDown) {\n this.startArrowDropDown.destroy();\n this.startArrowDropDown = null;\n }\n if (this.opacitySlider) {\n this.opacitySlider.destroy();\n this.opacitySlider = null;\n }\n if (this.thicknessBox) {\n this.thicknessBox.destroy();\n this.thicknessBox = null;\n }\n if (this.lineStyleDropDown) {\n this.lineStyleDropDown.destroy();\n this.lineStyleDropDown = null;\n }\n if (this.leaderLengthBox) {\n this.leaderLengthBox.destroy();\n this.leaderLengthBox = null;\n }\n if (this.propertiesDialog) {\n this.propertiesDialog.destroy();\n this.propertiesDialog = null;\n }\n var dialogElement = this.pdfViewerBase.getElement('_properties_window');\n if (dialogElement) {\n dialogElement.parentElement.removeChild(dialogElement);\n }\n };\n Annotation.prototype.refreshColorPicker = function (colorPick) {\n colorPick.setProperties({ 'value': colorPick.value }, true);\n colorPick.refresh();\n };\n Annotation.prototype.createAppearanceTab = function () {\n var _this = this;\n var elementID = this.pdfViewer.element.id;\n // eslint-disable-next-line max-len\n var items = [{ text: this.pdfViewer.localeObj.getConstant('None') }, { text: this.pdfViewer.localeObj.getConstant('Open Arrow') }, { text: this.pdfViewer.localeObj.getConstant('Closed Arrow') },\n { text: this.pdfViewer.localeObj.getConstant('Round Arrow') }, { text: this.pdfViewer.localeObj.getConstant('Square Arrow') }, { text: this.pdfViewer.localeObj.getConstant('Diamond Arrow') }];\n // eslint-disable-next-line max-len\n var appearanceDiv = createElement('div', { id: elementID + '_properties_appearance' });\n var lineStyleContainer = createElement('div', { className: 'e-pv-properties-line-style-prop' });\n appearanceDiv.appendChild(lineStyleContainer);\n // eslint-disable-next-line max-len\n var lineHeadStartElement = this.createInputElement(this.pdfViewer.localeObj.getConstant('Start Arrow'), lineStyleContainer, 'text', 'button', true, 'e-pv-properties-line-start', elementID + '_properties_line_start');\n // eslint-disable-next-line max-len\n this.startArrowDropDown = new DropDownButton({ items: items, cssClass: 'e-pv-properties-line-start', select: this.onStartArrowHeadStyleSelect.bind(this) }, lineHeadStartElement);\n var lineHeadEndElement = this.createInputElement(this.pdfViewer.localeObj.getConstant('End Arrow'), lineStyleContainer, 'text', 'button', true, 'e-pv-properties-line-end', elementID + '_properties_line_end');\n // eslint-disable-next-line max-len\n var borderStyleContainer = createElement('div', { className: 'e-pv-properties-border-style' });\n appearanceDiv.appendChild(borderStyleContainer);\n // eslint-disable-next-line max-len\n this.endArrowDropDown = new DropDownButton({ items: items, cssClass: 'e-pv-properties-line-end', select: this.onEndArrowHeadStyleSelect.bind(this) }, lineHeadEndElement);\n var lineStyleElement = this.createInputElement(this.pdfViewer.localeObj.getConstant('Line Style'), borderStyleContainer, 'text', 'button', true, 'e-pv-properties-line-style', elementID + '_properties_line_style');\n var dropDownTarget = this.createStyleList();\n // eslint-disable-next-line max-len\n this.lineStyleDropDown = new DropDownButton({ cssClass: 'e-pv-properties-line-style', target: dropDownTarget }, lineStyleElement);\n // eslint-disable-next-line max-len\n var thicknessElement = this.createInputElement(this.pdfViewer.localeObj.getConstant('Line Thickness'), borderStyleContainer, 'text', 'input', true, 'e-pv-properties-line-thickness', elementID + '_properties_thickness');\n this.thicknessBox = new NumericTextBox({ value: 0, format: '## pt', cssClass: 'e-pv-properties-line-thickness', min: 0, max: 12 }, thicknessElement);\n var colorStyleContainer = createElement('div', { className: 'e-pv-properties-color-style' });\n appearanceDiv.appendChild(colorStyleContainer);\n // eslint-disable-next-line max-len\n var fillColorElement = this.createInputElement(this.pdfViewer.localeObj.getConstant('Fill Color'), colorStyleContainer, 'color', 'button', true, 'e-pv-properties-line-fill-color', elementID + '_properties_fill_color');\n this.fillColorPicker = this.createColorPicker(elementID + '_properties_fill_color', true);\n this.fillColorPicker.change = function (args) {\n var currentColor = (args.currentValue.hex === '') ? '#ffffff00' : args.currentValue.hex;\n _this.fillDropDown.toggle();\n _this.updateColorInIcon(_this.fillDropDown.element, currentColor);\n };\n // eslint-disable-next-line max-len\n this.fillDropDown = this.createDropDownButton(fillColorElement, 'e-pv-properties-fill-color-icon', this.fillColorPicker.element.parentElement);\n this.fillDropDown.beforeOpen = this.onFillDropDownBeforeOpen.bind(this);\n this.fillDropDown.open = function () {\n _this.fillColorPicker.refresh();\n };\n // eslint-disable-next-line max-len\n var strokeColorElement = this.createInputElement(this.pdfViewer.localeObj.getConstant('Line Color'), colorStyleContainer, 'color', 'button', true, 'e-pv-properties-line-stroke-color', elementID + '_properties_stroke_color');\n this.strokeColorPicker = this.createColorPicker(elementID + '_properties_stroke_color', false);\n this.strokeColorPicker.change = function (args) {\n var currentColor = (args.currentValue.hex === '') ? '#ffffff00' : args.currentValue.hex;\n _this.strokeDropDown.toggle();\n _this.updateColorInIcon(_this.strokeDropDown.element, currentColor);\n };\n // eslint-disable-next-line max-len\n this.strokeDropDown = this.createDropDownButton(strokeColorElement, 'e-pv-properties-stroke-color-icon', this.strokeColorPicker.element.parentElement);\n this.strokeDropDown.beforeOpen = this.onStrokeDropDownBeforeOpen.bind(this);\n this.strokeDropDown.open = function () {\n _this.strokeColorPicker.refresh();\n };\n var opacityContainer = createElement('div', { className: 'e-pv-properties-opacity-style' });\n appearanceDiv.appendChild(opacityContainer);\n // eslint-disable-next-line max-len\n var opacityElement = this.createInputElement(this.pdfViewer.localeObj.getConstant('Opacity'), opacityContainer, '', 'div', true, 'e-pv-properties-line-opacity', elementID + '_properties_opacity');\n this.opacitySlider = new Slider({\n type: 'MinRange', max: 100, min: 0, cssClass: 'e-pv-properties-line-opacity', change: function () {\n _this.updateOpacityIndicator();\n }\n }, opacityElement);\n if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Distance') {\n // eslint-disable-next-line max-len\n var lineLengthElement = this.createInputElement(this.pdfViewer.localeObj.getConstant('Leader Length'), opacityContainer, 'text', 'input', true, 'e-pv-properties-line-leader-length', elementID + '_properties_leader_length');\n this.leaderLengthBox = new NumericTextBox({ value: 0, format: '## pt', cssClass: 'e-pv-properties-line-leader-length', min: 0, max: 100 }, lineLengthElement);\n }\n return appearanceDiv;\n };\n Annotation.prototype.createContent = function (text) {\n var divElement = createElement('div', { className: 'e-pv-properties-line-style-content' });\n divElement.textContent = text;\n return divElement;\n };\n Annotation.prototype.onStrokeDropDownBeforeOpen = function () {\n if (this.pdfViewer.selectedItems.annotations.length === 1) {\n this.strokeColorPicker.value = this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.strokeColor;\n }\n this.strokeColorPicker.refresh();\n };\n Annotation.prototype.onFillDropDownBeforeOpen = function () {\n if (this.pdfViewer.selectedItems.annotations.length === 1) {\n this.fillColorPicker.value = this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.strokeColor;\n }\n this.fillColorPicker.refresh();\n };\n Annotation.prototype.createStyleList = function () {\n var _this = this;\n var ulElement = createElement('ul');\n document.body.appendChild(ulElement);\n var solidLi = this.createListForStyle('solid');\n solidLi.addEventListener('click', function () {\n _this.setThickness('0', 'solid');\n });\n ulElement.appendChild(solidLi);\n var dottedLi = this.createListForStyle('dotted');\n dottedLi.addEventListener('click', function () {\n _this.setThickness('2', 'dotted');\n });\n ulElement.appendChild(dottedLi);\n var dashedLi = this.createListForStyle('dashed');\n dashedLi.addEventListener('click', function () {\n _this.setThickness('3', 'dashed');\n });\n ulElement.appendChild(dashedLi);\n return ulElement;\n };\n Annotation.prototype.createColorPicker = function (idString, isNoColor) {\n var inputElement = createElement('input', { id: idString + '_target' });\n document.body.appendChild(inputElement);\n var colorPicker = new ColorPicker({\n inline: true, mode: 'Palette', enableOpacity: false, value: '#000000', showButtons: false, modeSwitcher: false,\n noColor: isNoColor\n });\n if (this.pdfViewer.enableRtl) {\n colorPicker.enableRtl = true;\n }\n colorPicker.appendTo(inputElement);\n return colorPicker;\n };\n Annotation.prototype.createDropDownButton = function (element, iconClass, target) {\n // eslint-disable-next-line max-len\n var dropDownButton = new DropDownButton({ iconCss: iconClass + ' e-pv-icon', target: target });\n if (this.pdfViewer.enableRtl) {\n dropDownButton.enableRtl = true;\n }\n dropDownButton.appendTo(element);\n return dropDownButton;\n };\n Annotation.prototype.updateColorInIcon = function (element, color) {\n element.childNodes[0].style.borderBottomColor = color;\n };\n /**\n * @param color\n * @private\n */\n Annotation.prototype.onFillColorChange = function (color) {\n // eslint-disable-next-line\n var colorElement = document.querySelector('#' + this.pdfViewer.element.id + '_properties_fill_color_button');\n if (color !== 'transparent') {\n colorElement.children[0].style.borderBottomColor = color;\n }\n };\n /**\n * @param color\n * @private\n */\n Annotation.prototype.onStrokeColorChange = function (color) {\n // eslint-disable-next-line\n var colorElement = document.querySelector('#' + this.pdfViewer.element.id + '_properties_stroke_color_button');\n if (color !== 'transparent') {\n colorElement.children[0].style.borderBottomColor = color;\n }\n };\n Annotation.prototype.setThickness = function (value, style, isBlazor) {\n if (!isBlazor) {\n this.lineStyleDropDown.content = this.createDropDownContent(style).outerHTML;\n }\n this.selectedLineDashArray = value;\n if (value === '0') {\n this.selectedLineStyle = 'Solid';\n }\n else if (value === '2' || value === '3') {\n this.selectedLineStyle = 'Dashed';\n }\n };\n Annotation.prototype.createDropDownContent = function (style) {\n var divElement = createElement('div', { className: 'e-pv-line-styles-content-container' });\n // eslint-disable-next-line max-len\n var spanElement = createElement('span', { className: 'e-pv-line-styles-content', styles: 'border-bottom-style:' + style });\n divElement.appendChild(spanElement);\n return divElement;\n };\n Annotation.prototype.createListForStyle = function (style) {\n var liElement = createElement('li', { className: 'e-menu-item' });\n var divElement = createElement('div', { className: 'e-pv-line-styles-container' });\n // eslint-disable-next-line max-len\n var spanElement = createElement('span', { className: 'e-pv-line-styles-item', styles: 'border-bottom-style:' + style });\n divElement.appendChild(spanElement);\n liElement.appendChild(divElement);\n return liElement;\n };\n Annotation.prototype.onStartArrowHeadStyleSelect = function (args) {\n this.startArrowDropDown.content = this.createContent(args.item.text).outerHTML;\n };\n Annotation.prototype.onEndArrowHeadStyleSelect = function (args) {\n this.endArrowDropDown.content = this.createContent(args.item.text).outerHTML;\n };\n // eslint-disable-next-line max-len\n Annotation.prototype.createInputElement = function (labelText, parentElement, inputType, input, isLabelNeeded, className, idString) {\n var container = createElement('div', { id: idString + '_container', className: className + '-container' });\n if (isLabelNeeded) {\n var label = createElement('div', { id: idString + '_label', className: className + '-label' });\n label.textContent = labelText;\n container.appendChild(label);\n }\n if (this.pdfViewer.localeObj.getConstant('Opacity') === labelText) {\n this.opacityIndicator = createElement('span', { className: 'e-pv-properties-opacity-indicator' });\n container.appendChild(this.opacityIndicator);\n }\n var textBoxInput = createElement(input, { id: idString });\n if (input === 'input') {\n textBoxInput.type = inputType;\n }\n container.appendChild(textBoxInput);\n parentElement.appendChild(container);\n return textBoxInput;\n };\n Annotation.prototype.updateOpacityIndicator = function () {\n this.opacityIndicator.textContent = this.opacitySlider.value + '%';\n };\n /**\n * @private\n */\n Annotation.prototype.onOkClicked = function (opacityValue) {\n var startArrow;\n var endArrow;\n var thickness;\n var strokeColor;\n var fillColor;\n var opacity;\n if (!isBlazor()) {\n startArrow = this.getArrowTypeFromDropDown(this.startArrowDropDown.content);\n endArrow = this.getArrowTypeFromDropDown(this.endArrowDropDown.content);\n thickness = this.thicknessBox.value;\n strokeColor = this.strokeColorPicker.getValue(this.strokeColorPicker.value, 'hex');\n strokeColor = (strokeColor === '') ? '#ffffff00' : strokeColor;\n fillColor = this.fillColorPicker.getValue(this.fillColorPicker.value, 'hex');\n // eslint-disable-next-line max-len\n fillColor = (fillColor === '' || fillColor === '#transp' || this.fillColorPicker.value === '#ffffff00') ? '#ffffff00' : fillColor;\n opacity = this.opacitySlider.value / 100;\n }\n else {\n // eslint-disable-next-line\n var lineStartElement = document.querySelector('#' + this.pdfViewer.element.id + '_properties_line_start');\n // eslint-disable-next-line\n var lineEndElement = document.querySelector('#' + this.pdfViewer.element.id + '_properties_line_end');\n // eslint-disable-next-line\n var thicknessElement = document.querySelector('#' + this.pdfViewer.element.id + '_line_thickness');\n // eslint-disable-next-line\n var lineStyleElement = document.querySelector('#' + this.pdfViewer.element.id + '_properties_style');\n // eslint-disable-next-line\n var fillColorElement = document.querySelector('#' + this.pdfViewer.element.id + '_properties_fill_color_button');\n // eslint-disable-next-line\n var strokeColorElement = document.querySelector('#' + this.pdfViewer.element.id + '_properties_stroke_color_button');\n // eslint-disable-next-line\n var opacityElement = document.querySelector('#' + this.pdfViewer.element.id + '_properties_opacity');\n startArrow = this.getArrowTypeFromDropDown(lineStartElement.value, true);\n endArrow = this.getArrowTypeFromDropDown(lineEndElement.value, true);\n // eslint-disable-next-line\n thickness = parseInt(thicknessElement.value);\n strokeColor = this.getValue(strokeColorElement.children[0].style.borderBottomColor, 'hex');\n strokeColor = (strokeColor === '') ? '#ffffff00' : strokeColor;\n fillColor = this.getValue(fillColorElement.children[0].style.borderBottomColor, 'hex');\n fillColor = (fillColor === '') ? '#ffffff00' : fillColor;\n if (opacityValue) {\n opacity = (opacityValue) / 100;\n }\n else {\n opacity = opacityElement.value / 100;\n }\n if (lineStyleElement.value) {\n if (lineStyleElement.value === 'Solid') {\n this.setThickness('0', 'solid', true);\n }\n else if (lineStyleElement.value === 'Dotted') {\n this.setThickness('2', 'dotted', true);\n }\n else if (lineStyleElement.value === 'Dashed') {\n this.setThickness('3', 'dashed', true);\n }\n }\n }\n var currentAnnotation = this.pdfViewer.selectedItems.annotations[0];\n var clonedObject = cloneObject(currentAnnotation);\n var redoClonedObject = cloneObject(currentAnnotation);\n var newNode = {};\n var isColorChanged = false;\n var isStrokeColorChanged = false;\n var isThicknessChanged = false;\n var isOpacityChanged = false;\n var isLineHeadStartStyleChanged = false;\n var isLineHeadEndStyleChanged = false;\n var isBorderDashArrayChanged = false;\n if (startArrow !== currentAnnotation.sourceDecoraterShapes) {\n newNode.sourceDecoraterShapes = startArrow;\n redoClonedObject.lineHeadStart = this.getArrowString(startArrow);\n isLineHeadStartStyleChanged = true;\n }\n if (endArrow !== currentAnnotation.taregetDecoraterShapes) {\n newNode.taregetDecoraterShapes = endArrow;\n redoClonedObject.lineHeadEnd = this.getArrowString(endArrow);\n isLineHeadEndStyleChanged = true;\n }\n if (thickness !== currentAnnotation.wrapper.children[0].style.strokeWidth) {\n newNode.thickness = thickness;\n redoClonedObject.thickness = thickness;\n isThicknessChanged = true;\n }\n if (strokeColor !== currentAnnotation.wrapper.children[0].style.strokeColor) {\n newNode.strokeColor = strokeColor;\n redoClonedObject.strokeColor = strokeColor;\n isStrokeColorChanged = true;\n }\n if (fillColor !== currentAnnotation.wrapper.children[0].style.fill) {\n newNode.fillColor = fillColor;\n redoClonedObject.fillColor = fillColor;\n isColorChanged = true;\n }\n if (opacity !== currentAnnotation.wrapper.children[0].style.opacity) {\n newNode.opacity = opacity;\n redoClonedObject.opacity = opacity;\n isOpacityChanged = true;\n }\n if (this.selectedLineDashArray !== currentAnnotation.wrapper.children[0].style.strokeDashArray) {\n newNode.borderDashArray = this.selectedLineDashArray;\n newNode.borderStyle = this.selectedLineStyle;\n redoClonedObject.borderDashArray = newNode.borderDashArray;\n redoClonedObject.borderStyle = newNode.borderStyle;\n isBorderDashArrayChanged = true;\n }\n if (!isBlazor()) {\n // eslint-disable-next-line max-len\n if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Distance' && this.leaderLengthBox.value !== this.pdfViewer.selectedItems.annotations[0].leaderHeight) {\n newNode.leaderHeight = this.leaderLengthBox.value;\n }\n }\n else {\n // eslint-disable-next-line\n var leaderLengthElement = document.querySelector('#' + this.pdfViewer.element.id + '_properties_leader_length');\n // eslint-disable-next-line\n if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Distance' && parseInt(leaderLengthElement.value) !== this.pdfViewer.selectedItems.annotations[0].leaderHeight) {\n // eslint-disable-next-line\n newNode.leaderHeight = parseInt(leaderLengthElement.value);\n }\n }\n this.pdfViewer.nodePropertyChange(this.pdfViewer.selectedItems.annotations[0], newNode);\n this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.fill = fillColor;\n // eslint-disable-next-line max-len\n this.triggerAnnotationPropChange(this.pdfViewer.selectedItems.annotations[0], isColorChanged, isStrokeColorChanged, isThicknessChanged, isOpacityChanged, isLineHeadStartStyleChanged, isLineHeadEndStyleChanged, isBorderDashArrayChanged);\n this.modifyInCollections(this.pdfViewer.selectedItems.annotations[0], 'thickness');\n this.modifyInCollections(this.pdfViewer.selectedItems.annotations[0], 'stroke');\n this.modifyInCollections(this.pdfViewer.selectedItems.annotations[0], 'fill');\n this.modifyInCollections(this.pdfViewer.selectedItems.annotations[0], 'opacity');\n this.modifyInCollections(this.pdfViewer.selectedItems.annotations[0], 'dashArray');\n this.modifyInCollections(this.pdfViewer.selectedItems.annotations[0], 'startArrow');\n this.modifyInCollections(this.pdfViewer.selectedItems.annotations[0], 'endArrow');\n // eslint-disable-next-line max-len\n if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Distance') {\n this.modifyInCollections(this.pdfViewer.selectedItems.annotations[0], 'leaderLength');\n }\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(currentAnnotation.pageIndex, null, currentAnnotation, 'Line properties change', '', clonedObject, redoClonedObject);\n this.renderAnnotations(currentAnnotation.pageIndex, null, null, null);\n if (!isBlazor()) {\n this.propertiesDialog.hide();\n }\n };\n Annotation.prototype.onCancelClicked = function () {\n this.propertiesDialog.hide();\n };\n Annotation.prototype.getArrowTypeFromDropDown = function (arrowType, isBlazor) {\n if (!isBlazor) {\n arrowType = arrowType.split('
      ')[0].split('\">')[1];\n }\n var arrow = 'None';\n switch (arrowType) {\n case this.pdfViewer.localeObj.getConstant('None'):\n arrow = 'None';\n break;\n case this.pdfViewer.localeObj.getConstant('Open Arrow'):\n arrow = 'OpenArrow';\n break;\n case this.pdfViewer.localeObj.getConstant('Closed Arrow'):\n arrow = 'Arrow';\n break;\n case this.pdfViewer.localeObj.getConstant('Round Arrow'):\n arrow = 'Circle';\n break;\n case this.pdfViewer.localeObj.getConstant('Square Arrow'):\n arrow = 'Square';\n break;\n case this.pdfViewer.localeObj.getConstant('Diamond Arrow'):\n arrow = 'Diamond';\n break;\n case this.pdfViewer.localeObj.getConstant('Butt'):\n arrow = 'Butt';\n break;\n }\n return arrow;\n };\n /**\n * @param arrow\n * @private\n */\n Annotation.prototype.getArrowString = function (arrow) {\n var arrowType = this.pdfViewer.localeObj.getConstant('None');\n switch (arrow) {\n case 'Arrow':\n arrowType = this.pdfViewer.localeObj.getConstant('Closed');\n break;\n case 'OpenArrow':\n arrowType = this.pdfViewer.localeObj.getConstant('Open Arrow');\n break;\n case 'Circle':\n arrowType = this.pdfViewer.localeObj.getConstant('Round');\n break;\n case 'None':\n case 'Square':\n case 'Diamond':\n arrowType = this.pdfViewer.localeObj.getConstant(arrow);\n break;\n case 'Butt':\n arrowType = this.pdfViewer.localeObj.getConstant('Butt');\n break;\n }\n return arrowType;\n };\n /**\n * @private\n */\n Annotation.prototype.onAnnotationMouseUp = function () {\n if (this.pdfViewer.selectedItems.annotations.length !== 0) {\n if (this.pdfViewer.toolbar && this.pdfViewer.toolbar.annotationToolbarModule) {\n this.enableBasedOnType();\n this.pdfViewer.toolbar.annotationToolbarModule.selectAnnotationDeleteItem(true);\n if (!Browser.isDevice) {\n this.pdfViewer.toolbar.annotationToolbarModule.updateAnnnotationPropertyItems();\n }\n }\n this.pdfViewerBase.disableTextSelectionMode();\n }\n else {\n if (this.pdfViewer.textSelectionModule && !this.pdfViewerBase.isPanMode && !this.pdfViewer.designerMode) {\n this.pdfViewer.textSelectionModule.enableTextSelectionMode();\n }\n // eslint-disable-next-line max-len\n if (this.pdfViewer.toolbar && this.pdfViewer.toolbar.annotationToolbarModule && (!Browser.isDevice || this.pdfViewer.enableDesktopMode)) {\n // eslint-disable-next-line max-len\n var isSkip = this.pdfViewer.toolbar.annotationToolbarModule.inkAnnotationSelected;\n if (this.pdfViewer.annotation.freeTextAnnotationModule && !this.pdfViewer.annotation.freeTextAnnotationModule.isInuptBoxInFocus && !isSkip) {\n this.pdfViewer.toolbar.annotationToolbarModule.enableAnnotationPropertiesTools(false);\n this.pdfViewer.toolbar.annotationToolbarModule.enableFreeTextAnnotationPropertiesTools(false);\n }\n this.pdfViewer.toolbar.annotationToolbarModule.updateAnnnotationPropertyItems();\n this.pdfViewer.toolbar.annotationToolbarModule.selectAnnotationDeleteItem(false);\n }\n }\n };\n /**\n * @param pdfAnnotationBase\n * @param event\n * @param pdfAnnotationBase\n * @param event\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.onShapesMouseup = function (pdfAnnotationBase, event) {\n // eslint-disable-next-line max-len\n pdfAnnotationBase = !isNullOrUndefined(this.pdfViewer.selectedItems.annotations[0]) ? this.pdfViewer.selectedItems.annotations[0] : pdfAnnotationBase;\n if (pdfAnnotationBase) {\n if (this.textMarkupAnnotationModule && this.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n this.textMarkupAnnotationModule.currentTextMarkupAnnotation = null;\n this.textMarkupAnnotationModule.selectTextMarkupCurrentPage = null;\n }\n // eslint-disable-next-line max-len\n if ((this.pdfViewerBase.tool instanceof NodeDrawingTool || this.pdfViewerBase.tool instanceof LineTool) && !this.pdfViewerBase.tool.dragging) {\n // eslint-disable-next-line\n var setting = {\n opacity: pdfAnnotationBase.opacity, fillColor: pdfAnnotationBase.fillColor, strokeColor: pdfAnnotationBase.strokeColor,\n thickness: pdfAnnotationBase.thickness, author: pdfAnnotationBase.author, subject: pdfAnnotationBase.subject,\n modifiedDate: pdfAnnotationBase.modifiedDate\n };\n var index = this.getAnnotationIndex(pdfAnnotationBase.pageIndex, pdfAnnotationBase.id);\n // eslint-disable-next-line\n var bounds = { left: pdfAnnotationBase.bounds.x, top: pdfAnnotationBase.bounds.y, width: pdfAnnotationBase.bounds.width, height: pdfAnnotationBase.bounds.height };\n if (this.pdfViewerBase.tool instanceof LineTool) {\n setting.lineHeadStartStyle = this.getArrowString(pdfAnnotationBase.sourceDecoraterShapes);\n setting.lineHeadEndStyle = this.getArrowString(pdfAnnotationBase.taregetDecoraterShapes);\n setting.borderDashArray = pdfAnnotationBase.borderDashArray;\n }\n if (!this.pdfViewerBase.isAnnotationAdded || pdfAnnotationBase.measureType === 'Distance') {\n if (pdfAnnotationBase.measureType === '' || isNullOrUndefined(pdfAnnotationBase.measureType)) {\n // eslint-disable-next-line max-len\n this.shapeAnnotationModule.renderShapeAnnotations(pdfAnnotationBase, this.pdfViewer.annotation.getEventPageNumber(event));\n }\n else if (pdfAnnotationBase.measureType === 'Distance' || pdfAnnotationBase.measureType === 'Perimeter' ||\n pdfAnnotationBase.measureType === 'Radius') {\n // eslint-disable-next-line max-len\n this.measureAnnotationModule.renderMeasureShapeAnnotations(pdfAnnotationBase, this.pdfViewer.annotation.getEventPageNumber(event));\n }\n }\n this.pdfViewerBase.updateDocumentEditedProperty(true);\n }\n else if (this.pdfViewerBase.tool instanceof MoveTool || this.pdfViewerBase.tool instanceof ResizeTool) {\n this.pdfViewerBase.updateDocumentEditedProperty(true);\n if (pdfAnnotationBase.measureType === '' || isNullOrUndefined(pdfAnnotationBase.measureType)) {\n if (pdfAnnotationBase.shapeAnnotationType === 'FreeText') {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.freeTextAnnotationModule.modifyInCollection('bounds', this.pdfViewer.annotation.getEventPageNumber(event), pdfAnnotationBase);\n }\n else if (pdfAnnotationBase.shapeAnnotationType === 'HandWrittenSignature' || pdfAnnotationBase.shapeAnnotationType === 'SignatureImage' || pdfAnnotationBase.shapeAnnotationType === 'SignatureText') {\n // eslint-disable-next-line max-len\n this.pdfViewerBase.signatureModule.modifySignatureCollection('bounds', this.pdfViewer.annotation.getEventPageNumber(event), pdfAnnotationBase);\n }\n else if (pdfAnnotationBase.shapeAnnotationType === 'Ink') {\n // eslint-disable-next-line max-len\n this.inkAnnotationModule.modifySignatureInkCollection('bounds', this.pdfViewer.annotation.getEventPageNumber(event), pdfAnnotationBase);\n }\n else if (pdfAnnotationBase.shapeAnnotationType === 'Stamp' || pdfAnnotationBase.shapeAnnotationType === 'Image') {\n // eslint-disable-next-line max-len\n this.stampAnnotationModule.modifyInCollection('bounds', this.pdfViewer.annotation.getEventPageNumber(event), pdfAnnotationBase);\n }\n else {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.shapeAnnotationModule.modifyInCollection('bounds', this.pdfViewer.annotation.getEventPageNumber(event), pdfAnnotationBase);\n }\n // eslint-disable-next-line max-len\n }\n else if (pdfAnnotationBase.measureType === 'Distance' || pdfAnnotationBase.measureType === 'Perimeter' || pdfAnnotationBase.measureType === 'Radius' || pdfAnnotationBase.measureType === 'Area' || pdfAnnotationBase.measureType === 'Volume') {\n this.pdfViewer.annotation.measureAnnotationModule.modifyInCollection('bounds', this.pdfViewer.annotation.getEventPageNumber(event), pdfAnnotationBase);\n }\n if (this.pdfViewerBase.tool instanceof ResizeTool) {\n if (!pdfAnnotationBase.formFieldAnnotationType) {\n this.triggerAnnotationResize(pdfAnnotationBase);\n }\n }\n if (this.pdfViewerBase.tool instanceof MoveTool) {\n if (this.pdfViewerBase.action !== 'Select') {\n if (!pdfAnnotationBase.formFieldAnnotationType) {\n this.triggerAnnotationMove(pdfAnnotationBase);\n }\n }\n }\n }\n else if (this.pdfViewerBase.tool instanceof ConnectTool) {\n this.pdfViewerBase.updateDocumentEditedProperty(true);\n if (pdfAnnotationBase.measureType === '' || isNullOrUndefined(pdfAnnotationBase.measureType)) {\n // eslint-disable-next-line max-len\n if ((pdfAnnotationBase.shapeAnnotationType === 'Line' || pdfAnnotationBase.shapeAnnotationType === 'LineWidthArrowHead' || pdfAnnotationBase.shapeAnnotationType === 'Polygon')) {\n this.pdfViewer.annotation.shapeAnnotationModule.modifyInCollection('bounds', this.pdfViewer.annotation.getEventPageNumber(event), pdfAnnotationBase);\n }\n // eslint-disable-next-line max-len\n }\n else if (pdfAnnotationBase.measureType === 'Distance' || pdfAnnotationBase.measureType === 'Perimeter' || pdfAnnotationBase.measureType === 'Area' || pdfAnnotationBase.measureType === 'Volume') {\n if (pdfAnnotationBase.measureType === 'Distance') {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.measureAnnotationModule.modifyInCollection('leaderLength', this.pdfViewer.annotation.getEventPageNumber(event), pdfAnnotationBase);\n }\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.measureAnnotationModule.modifyInCollection('bounds', this.pdfViewer.annotation.getEventPageNumber(event), pdfAnnotationBase);\n }\n this.triggerAnnotationResize(pdfAnnotationBase);\n }\n // eslint-disable-next-line max-len\n if (this.pdfViewerBase.navigationPane && this.pdfViewerBase.navigationPane.annotationMenuObj && this.pdfViewer.isSignatureEditable && (pdfAnnotationBase.shapeAnnotationType === 'HandWrittenSignature' || pdfAnnotationBase.shapeAnnotationType === 'SignatureText' || pdfAnnotationBase.shapeAnnotationType === 'SignatureImage')) {\n // eslint-disable-next-line max-len\n this.pdfViewerBase.navigationPane.annotationMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Export Annotations')], true);\n // eslint-disable-next-line max-len\n this.pdfViewerBase.navigationPane.annotationMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Export XFDF')], true);\n }\n if (this.pdfViewer.toolbarModule) {\n if (this.pdfViewer.toolbarModule.annotationToolbarModule && this.pdfViewer.enableAnnotationToolbar) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.clearTextMarkupMode();\n if (pdfAnnotationBase.measureType === '' || isNullOrUndefined(pdfAnnotationBase.measureType)) {\n // eslint-disable-next-line max-len\n this.pdfViewer.toolbarModule.annotationToolbarModule.clearMeasureMode();\n }\n else if (pdfAnnotationBase.measureType === 'Distance' || pdfAnnotationBase.measureType === 'Perimeter' || pdfAnnotationBase.measureType === 'Area' || pdfAnnotationBase.measureType === 'Volume' || pdfAnnotationBase.measureType === 'Radius') {\n this.pdfViewer.toolbarModule.annotationToolbarModule.clearShapeMode();\n }\n if (this.pdfViewer.selectedItems.annotations.length === 1 && this.pdfViewer.selectedItems.annotations[0].formFieldAnnotationType === null) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.enableAnnotationPropertiesTools(true);\n }\n if (!isBlazor()) {\n if (this.pdfViewer.selectedItems.annotations.length === 1 && !this.pdfViewer.designerMode) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.selectAnnotationDeleteItem(true);\n this.pdfViewer.toolbarModule.annotationToolbarModule.setCurrentColorInPicker();\n this.pdfViewer.toolbarModule.annotationToolbarModule.isToolbarHidden = true;\n // eslint-disable-next-line max-len\n if (!this.pdfViewer.formDesignerModule && pdfAnnotationBase.properties.id != '' && pdfAnnotationBase.properties.id != null && pdfAnnotationBase.properties.id.slice(0, 4) != 'sign') {\n var id = document.getElementById(pdfAnnotationBase.properties.id);\n var isFieldReadOnly = id && id.disabled;\n if (!isFieldReadOnly) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.showAnnotationToolbar(this.pdfViewer.toolbarModule.annotationItem);\n }\n else if (this.pdfViewer.annotation && isFieldReadOnly) {\n this.pdfViewer.annotation.clearSelection();\n }\n }\n else {\n this.pdfViewer.toolbarModule.annotationToolbarModule.showAnnotationToolbar(this.pdfViewer.toolbarModule.annotationItem);\n }\n if (this.pdfViewer.isAnnotationToolbarVisible && this.pdfViewer.isFormDesignerToolbarVisible) {\n var formDesignerMainDiv = document.getElementById(this.pdfViewer.element.id + \"_formdesigner_toolbar\");\n formDesignerMainDiv.style.display = \"none\";\n if (this.pdfViewer.toolbarModule) {\n this.pdfViewer.toolbarModule.formDesignerToolbarModule.isToolbarHidden = false;\n this.pdfViewer.toolbarModule.formDesignerToolbarModule.showFormDesignerToolbar(this.pdfViewer.toolbarModule.formDesignerItem);\n this.pdfViewer.toolbarModule.annotationToolbarModule.adjustViewer(true);\n }\n }\n }\n }\n }\n }\n }\n };\n /**\n * @param pdfAnnotationBase\n * @param isNewlyAdded\n * @param pdfAnnotationBase\n * @param isNewlyAdded\n * @private\n */\n Annotation.prototype.updateCalibrateValues = function (pdfAnnotationBase, isNewlyAdded) {\n if (pdfAnnotationBase.measureType === 'Distance') {\n pdfAnnotationBase.notes = updateDistanceLabel(pdfAnnotationBase, pdfAnnotationBase.vertexPoints, this.measureAnnotationModule);\n if (pdfAnnotationBase.enableShapeLabel === true) {\n pdfAnnotationBase.labelContent = pdfAnnotationBase.notes;\n }\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.measureAnnotationModule.modifyInCollection('notes', pdfAnnotationBase.pageIndex, pdfAnnotationBase, isNewlyAdded);\n this.pdfViewer.annotation.stickyNotesAnnotationModule.addTextToComments(pdfAnnotationBase.annotName, pdfAnnotationBase.notes);\n this.renderAnnotations(pdfAnnotationBase.pageIndex, null, null, null, null);\n }\n else if (pdfAnnotationBase.measureType === 'Radius') {\n pdfAnnotationBase.notes = updateRadiusLabel(pdfAnnotationBase, this.measureAnnotationModule);\n if (pdfAnnotationBase.enableShapeLabel === true) {\n pdfAnnotationBase.labelContent = pdfAnnotationBase.notes;\n }\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.measureAnnotationModule.modifyInCollection('notes', pdfAnnotationBase.pageIndex, pdfAnnotationBase, isNewlyAdded);\n this.pdfViewer.annotation.stickyNotesAnnotationModule.addTextToComments(pdfAnnotationBase.annotName, pdfAnnotationBase.notes);\n this.renderAnnotations(pdfAnnotationBase.pageIndex, null, null, null, null);\n }\n else if (pdfAnnotationBase.measureType === 'Perimeter') {\n pdfAnnotationBase.notes = updatePerimeterLabel(pdfAnnotationBase, pdfAnnotationBase.vertexPoints, this.measureAnnotationModule);\n if (pdfAnnotationBase.enableShapeLabel === true) {\n pdfAnnotationBase.labelContent = pdfAnnotationBase.notes;\n }\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.measureAnnotationModule.modifyInCollection('notes', pdfAnnotationBase.pageIndex, pdfAnnotationBase, isNewlyAdded);\n this.pdfViewer.annotation.stickyNotesAnnotationModule.addTextToComments(pdfAnnotationBase.annotName, pdfAnnotationBase.notes);\n this.renderAnnotations(pdfAnnotationBase.pageIndex, null, null, null, null);\n }\n else if (pdfAnnotationBase.measureType === 'Area') {\n // eslint-disable-next-line max-len\n pdfAnnotationBase.notes = this.measureAnnotationModule.calculateArea(pdfAnnotationBase.vertexPoints, pdfAnnotationBase.id, pdfAnnotationBase.pageIndex);\n if (pdfAnnotationBase.enableShapeLabel === true) {\n pdfAnnotationBase.labelContent = pdfAnnotationBase.notes;\n updateCalibrateLabel(pdfAnnotationBase);\n }\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.measureAnnotationModule.modifyInCollection('notes', pdfAnnotationBase.pageIndex, pdfAnnotationBase, isNewlyAdded);\n this.pdfViewer.annotation.stickyNotesAnnotationModule.addTextToComments(pdfAnnotationBase.annotName, pdfAnnotationBase.notes);\n this.renderAnnotations(pdfAnnotationBase.pageIndex, null, null, null, null);\n }\n else if (pdfAnnotationBase.measureType === 'Volume') {\n // eslint-disable-next-line max-len\n pdfAnnotationBase.notes = this.measureAnnotationModule.calculateVolume(pdfAnnotationBase.vertexPoints, pdfAnnotationBase.id, pdfAnnotationBase.pageIndex);\n if (pdfAnnotationBase.enableShapeLabel === true) {\n pdfAnnotationBase.labelContent = pdfAnnotationBase.notes;\n updateCalibrateLabel(pdfAnnotationBase);\n }\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.measureAnnotationModule.modifyInCollection('notes', pdfAnnotationBase.pageIndex, pdfAnnotationBase, isNewlyAdded);\n this.pdfViewer.annotation.stickyNotesAnnotationModule.addTextToComments(pdfAnnotationBase.annotName, pdfAnnotationBase.notes);\n this.renderAnnotations(pdfAnnotationBase.pageIndex, null, null, null, null);\n }\n };\n /**\n * @private\n */\n Annotation.prototype.onAnnotationMouseDown = function () {\n if (this.pdfViewer.selectedItems.annotations.length === 1 && this.pdfViewer.selectedItems.annotations[0].formFieldAnnotationType === null) {\n if (this.pdfViewer.toolbar && this.pdfViewer.toolbar.annotationToolbarModule) {\n if (!isBlazor() && Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n var commentPanel = document.getElementById(this.pdfViewer.element.id + '_commantPanel');\n if (commentPanel.style.display === 'none') {\n if (this.pdfViewer.enableToolbar && this.pdfViewer.enableAnnotationToolbar && this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n // eslint-disable-next-line max-len\n this.pdfViewer.toolbarModule.annotationToolbarModule.createPropertyTools(\"\");\n }\n else {\n if (this.pdfViewer.enableToolbar && this.pdfViewer.enableAnnotationToolbar) {\n // eslint-disable-next-line max-len\n this.pdfViewer.toolbarModule.annotationToolbarModule.createAnnotationToolbarForMobile();\n this.pdfViewer.toolbarModule.annotationToolbarModule.createPropertyTools(this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType);\n var editIcon = document.getElementById(this.pdfViewer.element.id + '_annotationIcon');\n if (editIcon && !editIcon.parentElement.classList.contains('e-pv-select')) {\n editIcon.parentElement.classList.add('e-pv-select');\n }\n }\n }\n }\n }\n this.enableBasedOnType();\n this.pdfViewer.toolbar.annotationToolbarModule.selectAnnotationDeleteItem(true);\n }\n }\n };\n Annotation.prototype.enableBasedOnType = function () {\n var isLock = false;\n // eslint-disable-next-line\n var annotation = this.pdfViewer.selectedItems.annotations[0];\n if (annotation && annotation.annotationSettings) {\n // eslint-disable-next-line\n isLock = annotation.annotationSettings.isLock;\n if (isLock && this.checkAllowedInteractions('PropertyChange', annotation)) {\n isLock = false;\n }\n }\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n if (!isLock) {\n if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Stamp' ||\n this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Image') {\n this.pdfViewer.toolbar.annotationToolbarModule.enableStampAnnotationPropertiesTools(true);\n }\n else if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'StickyNotes') {\n this.pdfViewer.toolbar.annotationToolbarModule.enableStampAnnotationPropertiesTools(true);\n }\n else if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Path' ||\n this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'SignatureImage' ||\n this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'SignatureText') {\n this.pdfViewer.toolbar.annotationToolbarModule.enableAnnotationPropertiesTools(false);\n }\n else if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'FreeText') {\n this.pdfViewer.toolbar.annotationToolbarModule.enableFreeTextAnnotationPropertiesTools(true);\n }\n else if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'HandWrittenSignature') {\n this.pdfViewer.toolbar.annotationToolbarModule.enableSignaturePropertiesTools(true);\n }\n else if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Ink') {\n this.pdfViewer.toolbar.annotationToolbarModule.enableSignaturePropertiesTools(true);\n }\n else {\n if (this.pdfViewer.selectedItems.annotations.length === 1 && this.pdfViewer.selectedItems.annotations[0].formFieldAnnotationType === null) {\n this.pdfViewer.toolbar.annotationToolbarModule.enableAnnotationPropertiesTools(true);\n }\n }\n }\n // eslint-disable-next-line max-len\n }\n else if (!this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation && !(this.pdfViewer.selectedItems.annotations[0].propName === 'annotations') && (Browser.isDevice && !this.pdfViewer.enableDesktopMode)) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.createMobileAnnotationToolbar(true, true);\n }\n };\n Annotation.prototype.getProperDate = function (date) {\n var dateObject = new Date(date.toString());\n if (isNaN(dateObject.getFullYear())) {\n var dateString = date.slice(2, 16);\n // eslint-disable-next-line max-len\n dateString = dateString.slice(0, 4) + '/' + dateString.slice(4, 6) + '/' + dateString.slice(6, 8) + ' ' + dateString.slice(8, 10) + ':' + dateString.slice(10, 12) + ':' + dateString.slice(12, 14);\n dateObject = new Date(dateString);\n }\n // eslint-disable-next-line max-len\n return (dateObject.getMonth() + 1) + '/' + dateObject.getDate() + '/' + dateObject.getFullYear() + ' ' + dateObject.getHours() + ':' + dateObject.getMinutes() + ':' + dateObject.getSeconds();\n };\n /**\n * @param pageAnnotations\n * @param pageNumber\n * @private\n */\n Annotation.prototype.getPageCollection = function (pageAnnotations, pageNumber) {\n var index = null;\n for (var i = 0; i < pageAnnotations.length; i++) {\n if (pageAnnotations[i].pageIndex === pageNumber) {\n index = i;\n break;\n }\n }\n return index;\n };\n /**\n * @param annotations\n * @param id\n * @param annotations\n * @param id\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.getAnnotationWithId = function (annotations, id) {\n // eslint-disable-next-line\n var annotation;\n for (var i = 0; i < annotations.length; i++) {\n if (id === annotations[i].id) {\n annotation = annotations[i];\n }\n }\n return annotation;\n };\n /**\n * @param event\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.getEventPageNumber = function (event) {\n var eventTarget = event.target;\n var eventParentElement = event.target.parentElement;\n if (eventTarget.classList.contains('e-pv-hyperlink')) {\n eventTarget = eventParentElement;\n }\n else if (eventParentElement && eventParentElement.classList.contains('foreign-object') && eventParentElement.parentElement && eventParentElement.parentElement.parentElement && eventParentElement.parentElement.parentElement.parentElement) {\n eventTarget = eventParentElement.parentElement.parentElement.parentElement;\n }\n else if (eventTarget.classList.contains('e-pdfviewer-formFields')) {\n eventTarget = eventParentElement;\n }\n var pageString;\n if (eventTarget) {\n // eslint-disable-next-line\n pageString = eventTarget.id.split('_text_')[1] || eventTarget.id.split('_textLayer_')[1] || eventTarget.id.split('_annotationCanvas_')[1] || eventTarget.id.split('_pageDiv_')[1];\n }\n if (isNaN(pageString)) {\n event = this.pdfViewerBase.annotationEvent;\n if (event) {\n eventTarget = event.target;\n // eslint-disable-next-line\n pageString = eventTarget.id.split('_text_')[1] || eventTarget.id.split('_textLayer_')[1] || eventTarget.id.split('_annotationCanvas_')[1] || eventTarget.id.split('_pageDiv_')[1];\n }\n }\n // eslint-disable-next-line\n return parseInt(pageString);\n };\n /**\n * @param commentsAnnotations\n * @param parentAnnotation\n * @param author\n * @param commentsAnnotations\n * @param parentAnnotation\n * @param author\n * @param commentsAnnotations\n * @param parentAnnotation\n * @param author\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.getAnnotationComments = function (commentsAnnotations, parentAnnotation, author) {\n var newArray = [];\n var annotationObject = null;\n if (commentsAnnotations) {\n if (commentsAnnotations.length > 0) {\n for (var i = 0; i < commentsAnnotations.length; i++) {\n // eslint-disable-next-line\n var annotation = commentsAnnotations[i];\n annotationObject = {\n // eslint-disable-next-line max-len\n shapeAnnotationType: 'sticky', author: annotation.Author, modifiedDate: annotation.ModifiedDate, note: annotation.Note, state: annotation.state, stateModel: annotation.stateModel,\n comments: [], review: { state: annotation.State, stateModel: annotation.StateModel, modifiedDate: annotation.ModifiedDate, author: annotation.Author },\n annotName: annotation.AnnotName, parentId: parentAnnotation.AnnotName, subject: 'Comments',\n isLock: annotation.IsLock\n };\n newArray[newArray.length] = annotationObject;\n }\n }\n }\n return newArray;\n };\n Annotation.prototype.getRandomNumber = function () {\n // eslint-disable-next-line\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n // eslint-disable-next-line\n var random = Math.random() * 16 | 0, v = c == 'x' ? random : (random & 0x3 | 0x8);\n return random.toString(16);\n });\n };\n /**\n * @private\n */\n Annotation.prototype.createGUID = function () {\n // eslint-disable-next-line max-len\n return this.getRandomNumber();\n };\n /**\n * @param pageDiv\n * @param pageWidth\n * @param pageHeight\n * @param pageNumber\n * @param displayMode\n * @param pageDiv\n * @param pageWidth\n * @param pageHeight\n * @param pageNumber\n * @param displayMode\n * @private\n */\n // eslint-disable-next-line max-len\n Annotation.prototype.createAnnotationLayer = function (pageDiv, pageWidth, pageHeight, pageNumber, displayMode) {\n var canvas = this.pdfViewerBase.getElement('_annotationCanvas_' + pageNumber);\n if (canvas) {\n this.updateCanvas(canvas, pageWidth, pageHeight, pageNumber);\n return canvas;\n }\n else {\n // eslint-disable-next-line max-len\n var annotationCanvas = createElement('canvas', { id: this.pdfViewer.element.id + '_annotationCanvas_' + pageNumber, className: 'e-pv-annotation-canvas' });\n this.updateCanvas(annotationCanvas, pageWidth, pageHeight, pageNumber);\n pageDiv.appendChild(annotationCanvas);\n return annotationCanvas;\n }\n };\n /**\n * @param width\n * @param height\n * @param pageNumber\n * @private\n */\n Annotation.prototype.resizeAnnotations = function (width, height, pageNumber) {\n var canvas = this.pdfViewerBase.getElement('_annotationCanvas_' + pageNumber);\n if (canvas) {\n canvas.style.width = width + 'px';\n canvas.style.height = height + 'px';\n this.pdfViewerBase.applyElementStyles(canvas, pageNumber);\n }\n };\n /**\n * @param pageNumber\n * @private\n */\n Annotation.prototype.clearAnnotationCanvas = function (pageNumber) {\n var canvas = this.pdfViewerBase.getElement('_annotationCanvas_' + pageNumber);\n var zoom = this.pdfViewerBase.getZoomFactor();\n var ratio = this.pdfViewerBase.getZoomRatio(zoom);\n if (canvas) {\n var width = this.pdfViewerBase.pageSize[pageNumber].width;\n var height = this.pdfViewerBase.pageSize[pageNumber].height;\n canvas.width = width * ratio;\n canvas.height = height * ratio;\n canvas.style.width = width * zoom + 'px';\n canvas.style.height = height * zoom + 'px';\n }\n };\n /**\n * @param pageNumber\n * @param shapeAnnotation\n * @param measureShapeAnnotation\n * @param textMarkupAnnotation\n * @param canvas\n * @param isImportAnnotations\n * @param pageNumber\n * @param shapeAnnotation\n * @param measureShapeAnnotation\n * @param textMarkupAnnotation\n * @param canvas\n * @param isImportAnnotations\n * @param pageNumber\n * @param shapeAnnotation\n * @param measureShapeAnnotation\n * @param textMarkupAnnotation\n * @param canvas\n * @param isImportAnnotations\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.renderAnnotations = function (pageNumber, shapeAnnotation, measureShapeAnnotation, textMarkupAnnotation, canvas, isImportAnnotations) {\n this.clearAnnotationCanvas(pageNumber);\n if (this.shapeAnnotationModule) {\n if (isImportAnnotations) {\n this.shapeAnnotationModule.renderShapeAnnotations(shapeAnnotation, pageNumber, true);\n }\n else {\n this.shapeAnnotationModule.renderShapeAnnotations(shapeAnnotation, pageNumber);\n }\n }\n if (this.measureAnnotationModule) {\n if (isImportAnnotations) {\n this.measureAnnotationModule.renderMeasureShapeAnnotations(measureShapeAnnotation, pageNumber, true);\n }\n else {\n this.measureAnnotationModule.renderMeasureShapeAnnotations(measureShapeAnnotation, pageNumber);\n }\n }\n if (canvas !== null && canvas !== undefined) {\n canvas = canvas;\n }\n else {\n canvas = this.pdfViewerBase.getElement('_annotationCanvas_' + pageNumber);\n }\n this.pdfViewer.drawing.refreshCanvasDiagramLayer(canvas, pageNumber);\n if (this.textMarkupAnnotationModule) {\n if (isImportAnnotations) {\n // eslint-disable-next-line\n this.textMarkupAnnotationModule.renderTextMarkupAnnotationsInPage(textMarkupAnnotation, pageNumber, true);\n }\n else {\n // eslint-disable-next-line\n this.textMarkupAnnotationModule.renderTextMarkupAnnotationsInPage(textMarkupAnnotation, pageNumber);\n }\n }\n };\n /**\n * @param pageNumber\n * @param annotation\n * @param annotationId\n * @param pageNumber\n * @param annotation\n * @param annotationId\n * @param pageNumber\n * @param annotation\n * @param annotationId\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.storeAnnotations = function (pageNumber, annotation, annotationId) {\n // let annotationId: string = '_annotations_textMarkup';\n // if (annotation is ITextMarkupAnnotation) {\n // annotationId = '_annotations_textMarkup';\n // } else if (annotation as IShapeAnnotation) {\n // annotationId = '_annotations_shape';\n // } else {\n // annotationId = '_annotations_stamp';\n // }\n // eslint-disable-next-line\n var sessionSize = Math.round(JSON.stringify(window.sessionStorage).length / 1024);\n if (sessionSize > 4500) {\n this.clearAnnotationStorage();\n this.pdfViewerBase.isStorageExceed = true;\n if (!(this.pdfViewerBase.isFormStorageExceed)) {\n this.pdfViewer.formFieldsModule.clearFormFieldStorage();\n }\n }\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + annotationId);\n if (this.pdfViewerBase.isStorageExceed) {\n storeObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + annotationId];\n }\n var index = 0;\n if (!storeObject) {\n this.storeAnnotationCollections(annotation, pageNumber);\n var pageAnnotation = { pageIndex: pageNumber, annotations: [] };\n pageAnnotation.annotations.push(annotation);\n index = pageAnnotation.annotations.indexOf(annotation);\n var annotationCollection = [];\n annotationCollection.push(pageAnnotation);\n var annotationStringified = JSON.stringify(annotationCollection);\n if (this.pdfViewerBase.isStorageExceed) {\n this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + annotationId] = annotationStringified;\n }\n else {\n window.sessionStorage.setItem(this.pdfViewerBase.documentId + annotationId, annotationStringified);\n }\n }\n else {\n this.storeAnnotationCollections(annotation, pageNumber);\n var annotObject_1 = JSON.parse(storeObject);\n if (!this.pdfViewerBase.isStorageExceed) {\n window.sessionStorage.removeItem(this.pdfViewerBase.documentId + annotationId);\n }\n var pageIndex_1 = this.pdfViewer.annotationModule.getPageCollection(annotObject_1, pageNumber);\n if (annotObject_1[pageIndex_1]) {\n annotObject_1[pageIndex_1].annotations.filter(function (item, index) {\n if (item.annotName === annotation.annotName) {\n annotObject_1[pageIndex_1].annotations.splice(index, 1);\n }\n });\n annotObject_1[pageIndex_1].annotations.push(annotation);\n index = annotObject_1[pageIndex_1].annotations.indexOf(annotation);\n }\n else {\n var markupAnnotation = { pageIndex: pageNumber, annotations: [] };\n markupAnnotation.annotations.push(annotation);\n index = markupAnnotation.annotations.indexOf(annotation);\n annotObject_1.push(markupAnnotation);\n }\n var annotationStringified = JSON.stringify(annotObject_1);\n if (this.pdfViewerBase.isStorageExceed) {\n this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + annotationId] = annotationStringified;\n }\n else {\n window.sessionStorage.setItem(this.pdfViewerBase.documentId + annotationId, annotationStringified);\n }\n }\n return index;\n };\n /**\n * @param type\n * @private\n */\n Annotation.prototype.getArrowType = function (type) {\n var decoratorShapes = 'None';\n switch (type) {\n case 'ClosedArrow':\n case 'Closed':\n decoratorShapes = 'Arrow';\n break;\n case 'OpenArrow':\n case 'Open':\n decoratorShapes = 'OpenArrow';\n break;\n case 'Square':\n decoratorShapes = 'Square';\n break;\n case 'Circle':\n case 'Round':\n decoratorShapes = 'Circle';\n break;\n case 'Diamond':\n decoratorShapes = 'Diamond';\n break;\n case 'Butt':\n decoratorShapes = 'Butt';\n break;\n case 'Slash':\n // decoratorShapes = 'Slash';\n break;\n }\n return decoratorShapes;\n };\n /**\n * @param arrow\n * @private\n */\n Annotation.prototype.getArrowTypeForCollection = function (arrow) {\n var arrowType;\n switch (arrow) {\n case 'Arrow':\n arrowType = 'ClosedArrow';\n break;\n case 'OpenArrow':\n case 'Square':\n case 'Circle':\n case 'Diamond':\n case 'None':\n arrowType = arrow.toString();\n break;\n case 'Butt':\n arrowType = 'Butt';\n break;\n }\n return arrowType;\n };\n /**\n * @param bound\n * @param pageIndex\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.getBounds = function (bound, pageIndex) {\n var pageDetails = this.pdfViewerBase.pageSize[pageIndex];\n if (pageDetails) {\n if (pageDetails.rotation === 1) {\n return { left: bound.top, top: pageDetails.width - (bound.left + bound.width), width: bound.height, height: bound.width };\n }\n else if (pageDetails.rotation === 2) {\n // eslint-disable-next-line max-len\n return { left: pageDetails.width - bound.left - bound.width, top: pageDetails.height - bound.top - bound.height, width: bound.width, height: bound.height };\n }\n else if (pageDetails.rotation === 3) {\n return { left: pageDetails.height - bound.top - bound.height, top: bound.left, width: bound.height, height: bound.width };\n }\n else {\n return bound;\n }\n }\n else {\n return bound;\n }\n };\n /**\n * @param bound\n * @param pageIndex\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.getInkBounds = function (bound, pageIndex) {\n var pageDetails = this.pdfViewerBase.pageSize[pageIndex];\n if (pageDetails) {\n if (pageDetails.rotation === 1) {\n return { x: bound.y, y: pageDetails.width - (bound.x + bound.width), width: bound.height, height: bound.width };\n }\n else if (pageDetails.rotation === 2) {\n // eslint-disable-next-line max-len\n return { x: pageDetails.width - bound.x - bound.width, y: pageDetails.height - bound.y - bound.height, width: bound.width, height: bound.height };\n }\n else if (pageDetails.rotation === 3) {\n return { x: pageDetails.height - bound.y - bound.height, y: bound.x, width: bound.height, height: bound.width };\n }\n else {\n return bound;\n }\n }\n else {\n return bound;\n }\n };\n /**\n * @param points\n * @param pageIndex\n * @param points\n * @param pageIndex\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.getVertexPoints = function (points, pageIndex) {\n if (points) {\n var pageDetails = this.pdfViewerBase.pageSize[pageIndex];\n if (pageDetails.rotation === 1) {\n var points1 = [];\n for (var i = 0; i < points.length; i++) {\n var point = { x: points[i].y, y: pageDetails.width - points[i].x };\n points1.push(point);\n }\n return points1;\n }\n else if (pageDetails.rotation === 2) {\n var points2 = [];\n for (var i = 0; i < points.length; i++) {\n var point = { x: pageDetails.width - points[i].x, y: pageDetails.height - points[i].y };\n points2.push(point);\n }\n return points2;\n }\n else if (pageDetails.rotation === 3) {\n var points3 = [];\n for (var i = 0; i < points.length; i++) {\n var point = { x: pageDetails.height - points[i].y, y: points[i].x };\n points3.push(point);\n }\n return points3;\n }\n else {\n return points;\n }\n }\n };\n /**\n * @param pageIndex\n * @param shapeAnnotations\n * @param idString\n * @param pageIndex\n * @param shapeAnnotations\n * @param idString\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.getStoredAnnotations = function (pageIndex, shapeAnnotations, idString) {\n // eslint-disable-next-line\n var annotationCollection;\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + idString);\n if (this.pdfViewerBase.isStorageExceed) {\n storeObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + idString];\n }\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n var index = this.pdfViewer.annotationModule.getPageCollection(annotObject, pageIndex);\n if (annotObject[index]) {\n annotationCollection = annotObject[index].annotations;\n }\n else {\n annotationCollection = null;\n }\n }\n else {\n annotationCollection = null;\n }\n return annotationCollection;\n };\n /**\n * @param pdfAnnotationBase\n * @param isColor\n * @param isStroke\n * @param isThickness\n * @param isOpacity\n * @param isLineStart\n * @param isLineEnd\n * @param isDashArray\n * @param isFreeText\n * @param previousText\n * @param currentText\n * @param pdfAnnotationBase\n * @param isColor\n * @param isStroke\n * @param isThickness\n * @param isOpacity\n * @param isLineStart\n * @param isLineEnd\n * @param isDashArray\n * @param isFreeText\n * @param previousText\n * @param currentText\n * @param pdfAnnotationBase\n * @param isColor\n * @param isStroke\n * @param isThickness\n * @param isOpacity\n * @param isLineStart\n * @param isLineEnd\n * @param isDashArray\n * @param isFreeText\n * @param previousText\n * @param currentText\n * @param pdfAnnotationBase\n * @param isColor\n * @param isStroke\n * @param isThickness\n * @param isOpacity\n * @param isLineStart\n * @param isLineEnd\n * @param isDashArray\n * @param isFreeText\n * @param previousText\n * @param currentText\n * @param pdfAnnotationBase\n * @param isColor\n * @param isStroke\n * @param isThickness\n * @param isOpacity\n * @param isLineStart\n * @param isLineEnd\n * @param isDashArray\n * @param isFreeText\n * @param previousText\n * @param currentText\n * @param pdfAnnotationBase\n * @param isColor\n * @param isStroke\n * @param isThickness\n * @param isOpacity\n * @param isLineStart\n * @param isLineEnd\n * @param isDashArray\n * @param isFreeText\n * @param previousText\n * @param currentText\n * @param pdfAnnotationBase\n * @param isColor\n * @param isStroke\n * @param isThickness\n * @param isOpacity\n * @param isLineStart\n * @param isLineEnd\n * @param isDashArray\n * @param isFreeText\n * @param previousText\n * @param currentText\n * @param pdfAnnotationBase\n * @param isColor\n * @param isStroke\n * @param isThickness\n * @param isOpacity\n * @param isLineStart\n * @param isLineEnd\n * @param isDashArray\n * @param isFreeText\n * @param previousText\n * @param currentText\n * @param pdfAnnotationBase\n * @param isColor\n * @param isStroke\n * @param isThickness\n * @param isOpacity\n * @param isLineStart\n * @param isLineEnd\n * @param isDashArray\n * @param isFreeText\n * @param previousText\n * @param currentText\n * @param pdfAnnotationBase\n * @param isColor\n * @param isStroke\n * @param isThickness\n * @param isOpacity\n * @param isLineStart\n * @param isLineEnd\n * @param isDashArray\n * @param isFreeText\n * @param previousText\n * @param currentText\n * @private\n */\n // eslint-disable-next-line max-len\n Annotation.prototype.triggerAnnotationPropChange = function (pdfAnnotationBase, isColor, isStroke, isThickness, isOpacity, isLineStart, isLineEnd, isDashArray, isFreeText, previousText, currentText) {\n var index = this.getAnnotationIndex(pdfAnnotationBase.pageIndex, pdfAnnotationBase.id);\n var type = this.getAnnotationType(pdfAnnotationBase.shapeAnnotationType, pdfAnnotationBase.measureType);\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'annotationPropertiesChange', pageIndex: pdfAnnotationBase.pageIndex, annotationId: pdfAnnotationBase.annotName, annotationType: type, isColorChanged: isColor, isOpacityChanged: isOpacity, isThicknessChanged: isThickness, isStrokeColorChanged: isStroke };\n if (isFreeText) {\n eventArgs.isFreeTextChanged = isFreeText;\n eventArgs.previousText = previousText;\n eventArgs.currentText = currentText;\n }\n if (isLineStart) {\n eventArgs.isLineHeadStartStyleChanged = isLineStart;\n }\n if (isLineEnd) {\n eventArgs.isLineHeadEndStyleChanged = isLineEnd;\n }\n if (isDashArray) {\n eventArgs.isBorderDashArrayChanged = isDashArray;\n }\n this.pdfViewer.trigger('annotationPropertiesChange', eventArgs);\n };\n /**\n * @param pdfAnnotationBase\n * @private\n */\n Annotation.prototype.triggerAnnotationAdd = function (pdfAnnotationBase) {\n // eslint-disable-next-line\n var setting = {\n opacity: pdfAnnotationBase.opacity, fillColor: pdfAnnotationBase.fillColor, strokeColor: pdfAnnotationBase.strokeColor,\n thickness: pdfAnnotationBase.thickness, author: pdfAnnotationBase.author, subject: pdfAnnotationBase.subject,\n modifiedDate: pdfAnnotationBase.modifiedDate\n };\n // eslint-disable-next-line\n var bounds = { left: pdfAnnotationBase.wrapper.bounds.x, top: pdfAnnotationBase.wrapper.bounds.y, width: pdfAnnotationBase.wrapper.bounds.width, height: pdfAnnotationBase.wrapper.bounds.height };\n var type = this.getAnnotationType(pdfAnnotationBase.shapeAnnotationType, pdfAnnotationBase.measureType);\n if (type === 'Line' || type === 'Arrow' || type === 'Distance' || type === 'Perimeter') {\n setting.lineHeadStartStyle = this.getArrowString(pdfAnnotationBase.sourceDecoraterShapes);\n setting.lineHeadEndStyle = this.getArrowString(pdfAnnotationBase.taregetDecoraterShapes);\n setting.borderDashArray = pdfAnnotationBase.borderDashArray;\n }\n var labelSettings;\n if (this.pdfViewer.enableShapeLabel) {\n labelSettings = {\n // eslint-disable-next-line max-len\n fontColor: pdfAnnotationBase.fontColor, fontSize: pdfAnnotationBase.fontSize, fontFamily: pdfAnnotationBase.fontFamily,\n opacity: pdfAnnotationBase.labelOpacity, labelContent: pdfAnnotationBase.labelContent, fillColor: pdfAnnotationBase.labelFillColor\n };\n // eslint-disable-next-line max-len\n this.pdfViewer.fireAnnotationAdd(pdfAnnotationBase.pageIndex, pdfAnnotationBase.annotName, type, bounds, setting, null, null, null, labelSettings);\n }\n else {\n // eslint-disable-next-line max-len\n this.pdfViewer.fireAnnotationAdd(pdfAnnotationBase.pageIndex, pdfAnnotationBase.annotName, type, bounds, setting);\n }\n };\n /**\n * @param pdfAnnotationBase\n * @private\n */\n Annotation.prototype.triggerAnnotationResize = function (pdfAnnotationBase) {\n // eslint-disable-next-line\n var setting = {\n opacity: pdfAnnotationBase.opacity, fillColor: pdfAnnotationBase.fillColor, strokeColor: pdfAnnotationBase.strokeColor,\n thickness: pdfAnnotationBase.thickness, author: pdfAnnotationBase.author, subject: pdfAnnotationBase.subject,\n modifiedDate: pdfAnnotationBase.modifiedDate\n };\n var index = this.getAnnotationIndex(pdfAnnotationBase.pageIndex, pdfAnnotationBase.id);\n // eslint-disable-next-line\n var annotationBounds = pdfAnnotationBase.bounds;\n var currentPosition = { left: annotationBounds.x, top: annotationBounds.y, x: annotationBounds.x, y: annotationBounds.y, width: annotationBounds.width, height: annotationBounds.height };\n // eslint-disable-next-line max-len\n var previousPosition = { left: annotationBounds.oldProperties.x, top: annotationBounds.oldProperties.y, width: annotationBounds.oldProperties.width, height: annotationBounds.oldProperties.height };\n var type = this.getAnnotationType(pdfAnnotationBase.shapeAnnotationType, pdfAnnotationBase.measureType);\n if (type === 'Line' || type === 'Arrow' || type === 'Distance' || type === 'Perimeter') {\n setting.lineHeadStartStyle = this.getArrowString(pdfAnnotationBase.sourceDecoraterShapes);\n setting.lineHeadEndStyle = this.getArrowString(pdfAnnotationBase.taregetDecoraterShapes);\n setting.borderDashArray = pdfAnnotationBase.borderDashArray;\n }\n var labelSettings;\n if (this.pdfViewer.enableShapeLabel && (pdfAnnotationBase.shapeAnnotationType !== 'HandWrittenSignature')) {\n labelSettings = {\n // eslint-disable-next-line max-len\n fontColor: pdfAnnotationBase.fontColor, fontSize: pdfAnnotationBase.fontSize, fontFamily: pdfAnnotationBase.fontFamily,\n opacity: pdfAnnotationBase.labelOpacity, labelContent: pdfAnnotationBase.labelContent, fillColor: pdfAnnotationBase.labelFillColor, notes: pdfAnnotationBase.notes\n };\n // eslint-disable-next-line max-len\n this.pdfViewer.fireAnnotationResize(pdfAnnotationBase.pageIndex, pdfAnnotationBase.annotName, type, currentPosition, setting, null, null, null, labelSettings);\n }\n else {\n if (pdfAnnotationBase.shapeAnnotationType === 'HandWrittenSignature' || pdfAnnotationBase.shapeAnnotationType === 'SignatureText' || pdfAnnotationBase.shapeAnnotationType === 'SignatureImage') {\n // eslint-disable-next-line max-len\n this.pdfViewer.fireSignatureResize(pdfAnnotationBase.pageIndex, pdfAnnotationBase.signatureName, pdfAnnotationBase.shapeAnnotationType, pdfAnnotationBase.opacity, pdfAnnotationBase.strokeColor, pdfAnnotationBase.thickness, currentPosition, previousPosition);\n }\n else {\n // eslint-disable-next-line max-len\n this.pdfViewer.fireAnnotationResize(pdfAnnotationBase.pageIndex, pdfAnnotationBase.annotName, type, currentPosition, setting);\n }\n }\n };\n /**\n * @param pdfAnnotationBase\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.triggerAnnotationMove = function (pdfAnnotationBase, isMoving) {\n // eslint-disable-next-line\n var setting = {\n opacity: pdfAnnotationBase.opacity, fillColor: pdfAnnotationBase.fillColor, strokeColor: pdfAnnotationBase.strokeColor,\n thickness: pdfAnnotationBase.thickness, author: pdfAnnotationBase.author, subject: pdfAnnotationBase.subject,\n modifiedDate: pdfAnnotationBase.modifiedDate\n };\n // eslint-disable-next-line\n var annotationBounds = pdfAnnotationBase.bounds;\n var currentPosition = { left: annotationBounds.x, top: annotationBounds.y, x: annotationBounds.x, y: annotationBounds.y, width: annotationBounds.width, height: annotationBounds.height };\n // eslint-disable-next-line max-len\n var previousPosition = { left: annotationBounds.oldProperties.x ? annotationBounds.oldProperties.x : annotationBounds.x, top: annotationBounds.oldProperties.y ? annotationBounds.oldProperties.y : annotationBounds.y, width: annotationBounds.width, height: annotationBounds.height };\n var type = this.getAnnotationType(pdfAnnotationBase.shapeAnnotationType, pdfAnnotationBase.measureType);\n if (type === 'Line' || type === 'Arrow' || type === 'Distance' || type === 'Perimeter') {\n setting.lineHeadStartStyle = this.getArrowString(pdfAnnotationBase.sourceDecoraterShapes);\n setting.lineHeadEndStyle = this.getArrowString(pdfAnnotationBase.taregetDecoraterShapes);\n setting.borderDashArray = pdfAnnotationBase.borderDashArray;\n }\n if (pdfAnnotationBase.shapeAnnotationType === 'HandWrittenSignature' || pdfAnnotationBase.shapeAnnotationType === 'SignatureText' || pdfAnnotationBase.shapeAnnotationType === 'SignatureImage') {\n // eslint-disable-next-line max-len\n this.pdfViewer.fireSignatureMove(pdfAnnotationBase.pageIndex, pdfAnnotationBase.signatureName, pdfAnnotationBase.shapeAnnotationType, pdfAnnotationBase.opacity, pdfAnnotationBase.strokeColor, pdfAnnotationBase.thickness, previousPosition, currentPosition);\n }\n else {\n // eslint-disable-next-line max-len\n isMoving ? this.pdfViewer.fireAnnotationMoving(pdfAnnotationBase.pageIndex, pdfAnnotationBase.annotName, type, setting, previousPosition, currentPosition) : this.pdfViewer.fireAnnotationMove(pdfAnnotationBase.pageIndex, pdfAnnotationBase.annotName, type, setting, previousPosition, currentPosition);\n }\n };\n /**\n * @param annotationId\n * @param pageNumber\n * @param annotation\n * @param annotationCollection\n * @param isDblClick\n * @param isSelected\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.annotationSelect = function (annotationId, pageNumber, annotation, annotationCollection, isDblClick, isSelected) {\n // eslint-disable-next-line\n var annotSettings;\n if (annotation.shapeAnnotationType === 'textMarkup') {\n // eslint-disable-next-line max-len\n annotSettings = { type: 'TextMarkup', subType: annotation.subject, opacity: annotation.opacity, color: annotation.color, textMarkupContent: annotation.textMarkupContent, textMarkupStartIndex: annotation.textMarkupStartIndex, textMarkupEndIndex: annotation.textMarkupEndIndex, customData: annotation.customData };\n }\n else if (annotation.shapeAnnotationType === 'StickyNotes') {\n annotSettings = { type: 'StickyNotes', opacity: annotation.opacity, customData: annotation.customData };\n }\n else if (annotation.shapeAnnotationType === 'Stamp' || annotation.shapeAnnotationType === 'Image') {\n annotSettings = { type: 'Stamp', opacity: annotation.opacity, customData: annotation.customData };\n }\n else if (annotation.shapeAnnotationType === 'Ink') {\n annotSettings = {\n // eslint-disable-next-line max-len\n type: 'Ink', opacity: annotation.opacity, strokeColor: annotation.strokeColor, thickness: annotation.thickness, modifiedDate: annotation.modifiedDate,\n width: annotation.bounds.width, height: annotation.bounds.height, left: annotation.bounds.x, top: annotation.bounds.y, data: annotation.data, customData: annotation.customData\n };\n }\n else if (annotation.shapeAnnotationType === 'FreeText') {\n annotSettings = {\n type: 'FreeText', opacity: annotation.opacity, fillColor: annotation.fillColor,\n // eslint-disable-next-line max-len\n strokeColor: annotation.strokeColor, thickness: annotation.thickness, content: annotation.dynamicText,\n // eslint-disable-next-line max-len\n fontFamily: annotation.fontFamily, fontSize: annotation.fontSize, fontColor: annotation.fontColor, textAlign: annotation.textAlign, fontStyle: this.updateFreeTextFontStyle(annotation.font), customData: annotation.customData\n };\n }\n else if (annotation.measureType === '') {\n if (annotation.shapeAnnotationType === 'Line') {\n // eslint-disable-next-line max-len\n annotSettings = { type: 'Shape', subType: 'Line', opacity: annotation.opacity, fillColor: annotation.fillColor, strokeColor: annotation.strokeColor, thickness: annotation.thickness, borderDashArray: annotation.borderDashArray, lineHeadStartStyle: annotation.sourceDecoraterShapes, lineHeadEndStyle: annotation.taregetDecoraterShapes, customData: annotation.customData };\n }\n else if (annotation.shapeAnnotationType === 'Arrow' || annotation.shapeAnnotationType === 'LineWidthArrowHead') {\n // eslint-disable-next-line max-len\n annotSettings = { type: 'Shape', subType: 'Arrow', opacity: annotation.opacity, fillColor: annotation.fillColor, strokeColor: annotation.strokeColor, thickness: annotation.thickness, borderDashArray: annotation.borderDashArray, lineHeadStartStyle: annotation.sourceDecoraterShapes, lineHeadEndStyle: annotation.taregetDecoraterShapes, customData: annotation.customData };\n }\n else if (annotation.shapeAnnotationType === 'Rectangle') {\n annotSettings = {\n type: 'Shape', subType: 'Rectangle', opacity: annotation.opacity, fillColor: annotation.fillColor,\n strokeColor: annotation.strokeColor, thickness: annotation.thickness, customData: annotation.customData\n };\n }\n else if (annotation.shapeAnnotationType === 'Circle' || annotation.shapeAnnotationType === 'Ellipse') {\n annotSettings = {\n type: 'Shape', subType: 'Circle', opacity: annotation.opacity, fillColor: annotation.fillColor,\n strokeColor: annotation.strokeColor, thickness: annotation.thickness, customData: annotation.customData\n };\n }\n else if (annotation.shapeAnnotationType === 'Polygon') {\n annotSettings = {\n type: 'Shape', subType: 'Polygon', opacity: annotation.opacity, fillColor: annotation.fillColor,\n strokeColor: annotation.strokeColor, thickness: annotation.thickness, customData: annotation.customData\n };\n }\n }\n else if (annotation.measureType !== '') {\n if (annotation.measureType === 'Distance') {\n // eslint-disable-next-line max-len\n annotSettings = { type: 'Measure', subType: 'Distance', opacity: annotation.opacity, fillColor: annotation.fillColor, strokeColor: annotation.strokeColor, thickness: annotation.thickness, borderDashArray: annotation.borderDashArray, lineHeadStartStyle: annotation.sourceDecoraterShapes, lineHeadEndStyle: annotation.taregetDecoraterShapes, customData: annotation.customData };\n }\n else if (annotation.measureType === 'Perimeter') {\n // eslint-disable-next-line max-len\n annotSettings = { type: 'Measure', subType: 'Perimeter', opacity: annotation.opacity, fillColor: annotation.fillColor, strokeColor: annotation.strokeColor, thickness: annotation.thickness, borderDashArray: annotation.borderDashArray, lineHeadStartStyle: annotation.sourceDecoraterShapes, lineHeadEndStyle: annotation.taregetDecoraterShapes, customData: annotation.customData };\n }\n else if (annotation.measureType === 'Area') {\n annotSettings = {\n type: 'Measure', subType: 'Area', opacity: annotation.opacity, fillColor: annotation.fillColor,\n strokeColor: annotation.strokeColor, thickness: annotation.thickness, customData: annotation.customData\n };\n }\n else if (annotation.measureType === 'Radius') {\n annotSettings = {\n type: 'Measure', subType: 'Radius', opacity: annotation.opacity, fillColor: annotation.fillColor,\n strokeColor: annotation.strokeColor, thickness: annotation.thickness, customData: annotation.customData\n };\n }\n else if (annotation.measureType === 'Volume') {\n annotSettings = {\n type: 'Measure', subType: 'Volume', opacity: annotation.opacity, fillColor: annotation.fillColor,\n strokeColor: annotation.strokeColor, thickness: annotation.thickness, calibrate: annotation.calibrate,\n annotationId: annotation.annotName, customData: annotation.customData\n };\n }\n }\n // eslint-disable-next-line\n var overlappedCollection = [];\n // eslint-disable-next-line\n var overlappedAnnotations = this.getOverlappedAnnotations(annotation, pageNumber);\n if (overlappedAnnotations && this.overlappedCollections) {\n // eslint-disable-next-line\n var overlappedCollections = [];\n // eslint-disable-next-line\n for (var i = 0; i < overlappedAnnotations.length; i++) {\n if (overlappedAnnotations[i].shapeAnnotationType !== 'textMarkup' && this.overlappedCollections || isSelected) {\n for (var j = 0; j < this.overlappedCollections.length; j++) {\n if (overlappedAnnotations[i].annotName === this.overlappedCollections[j].annotName) {\n overlappedCollections.push(overlappedAnnotations[i]);\n break;\n }\n }\n }\n else {\n overlappedCollections.push(overlappedAnnotations[i]);\n }\n }\n overlappedAnnotations = overlappedCollections;\n }\n if (this.pdfViewer.enableMultiLineOverlap) {\n // eslint-disable-next-line\n for (var i = 0; i < overlappedAnnotations.length; i++) {\n if (overlappedAnnotations[i].shapeAnnotationType === 'textMarkup') {\n var isOverlapped = false;\n for (var j = 0; j < overlappedAnnotations[i].bounds.length; j++) {\n // eslint-disable-next-line\n var bounds = this.orderTextMarkupBounds(overlappedAnnotations[i].bounds[j]);\n // eslint-disable-next-line\n var clickedPosition = this.textMarkupAnnotationModule.annotationClickPosition;\n if (clickedPosition && (clickedPosition.x || clickedPosition.y)) {\n if (bounds.left <= clickedPosition.x && (bounds.left + bounds.width) >= clickedPosition.x) {\n if (bounds.top <= clickedPosition.y && (bounds.top + bounds.height) >= clickedPosition.y) {\n isOverlapped = true;\n }\n }\n }\n else {\n isOverlapped = true;\n }\n }\n if (!isOverlapped) {\n overlappedAnnotations.splice(i, 1);\n }\n }\n }\n }\n if (overlappedAnnotations && overlappedAnnotations.length > 0) {\n annotationCollection = overlappedAnnotations;\n // eslint-disable-next-line\n for (var i = 0; i < annotationCollection.length; i++) {\n // eslint-disable-next-line\n var overlappedObject = cloneObject(annotationCollection[i]);\n overlappedObject.annotationId = annotationCollection[i].annotName;\n if (annotationId === annotationCollection[i].annotName && annotation.measureType && annotation.measureType === 'Volume') {\n annotSettings.calibrate = annotationCollection[i].calibrate;\n }\n delete overlappedObject.annotName;\n overlappedCollection.push(overlappedObject);\n }\n }\n else {\n overlappedCollection = null;\n }\n this.addFreeTextProperties(annotation, annotSettings);\n var annotationAddMode = annotation.annotationAddMode;\n if (!isDblClick) {\n if (annotation.shapeAnnotationType === 'Stamp' || annotation.shapeAnnotationType === 'Image') {\n if (!this.pdfViewerBase.isNewStamp && this.annotationSelected) {\n if (overlappedCollection) {\n // eslint-disable-next-line max-len\n this.pdfViewer.fireAnnotationSelect(annotationId, pageNumber, annotSettings, overlappedCollection, null, null, annotationAddMode);\n }\n else {\n this.pdfViewer.fireAnnotationSelect(annotationId, pageNumber, annotSettings, null, null, null, annotationAddMode);\n }\n }\n }\n else {\n var module = this.textMarkupAnnotationModule;\n var multiPageCollection = module && module.multiPageCollectionList(annotation);\n if (multiPageCollection && multiPageCollection.length === 0) {\n multiPageCollection = null;\n }\n if (this.annotationSelected) {\n if (overlappedCollection) {\n isSelected = false;\n // eslint-disable-next-line max-len\n this.pdfViewer.fireAnnotationSelect(annotationId, pageNumber, annotSettings, overlappedCollection, multiPageCollection, isSelected, annotationAddMode);\n }\n else {\n isSelected = true;\n // eslint-disable-next-line max-len\n this.pdfViewer.fireAnnotationSelect(annotationId, pageNumber, annotSettings, null, multiPageCollection, isSelected, annotationAddMode);\n }\n }\n }\n }\n else {\n if (annotation.shapeAnnotationType === 'Stamp' || annotation.shapeAnnotationType === 'Image') {\n if (!this.pdfViewerBase.isNewStamp) {\n this.pdfViewer.fireAnnotationDoubleClick(annotationId, pageNumber, annotSettings);\n }\n }\n else {\n this.pdfViewer.fireAnnotationDoubleClick(annotationId, pageNumber, annotSettings);\n }\n }\n this.annotationSelected = true;\n };\n // eslint-disable-next-line\n Annotation.prototype.selectSignature = function (signatureId, pageNumber, signatureModule) {\n // eslint-disable-next-line\n var annotBounds = signatureModule.bounds;\n // eslint-disable-next-line\n var bounds = { height: annotBounds.height, width: annotBounds.width, x: annotBounds.x, y: annotBounds.y };\n if (!this.pdfViewerBase.signatureAdded) {\n // eslint-disable-next-line max-len\n var signature = { bounds: bounds, opacity: signatureModule.opacity, thickness: signatureModule.thickness, strokeColor: signatureModule.strokeColor };\n this.pdfViewer.fireSignatureSelect(signatureId, pageNumber, signature);\n }\n };\n // eslint-disable-next-line\n Annotation.prototype.editSignature = function (signature) {\n // eslint-disable-next-line\n var currentAnnotation;\n if (signature.uniqueKey) {\n // eslint-disable-next-line\n currentAnnotation = this.pdfViewer.nameTable[signature.uniqueKey];\n }\n else {\n currentAnnotation = this.pdfViewer.selectedItems.annotations[0];\n }\n var pageNumber = currentAnnotation.pageIndex;\n if (currentAnnotation.shapeAnnotationType === 'HandWrittenSignature' || currentAnnotation.shapeAnnotationType === 'SignatureText' || currentAnnotation.shapeAnnotationType === 'SignatureImage') {\n // eslint-disable-next-line\n var clonedObject = cloneObject(currentAnnotation);\n // eslint-disable-next-line\n var redoClonedObject = cloneObject(currentAnnotation);\n if (currentAnnotation.opacity !== signature.opacity) {\n redoClonedObject.opacity = signature.opacity;\n this.pdfViewer.nodePropertyChange(currentAnnotation, { opacity: signature.opacity });\n // eslint-disable-next-line max-len\n this.pdfViewer.fireSignaturePropertiesChange(currentAnnotation.pageIndex, currentAnnotation.signatureName, currentAnnotation.shapeAnnotationType, false, true, false, clonedObject.opacity, redoClonedObject.opacity);\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(currentAnnotation.pageIndex, null, currentAnnotation, 'Shape Opacity', '', clonedObject, redoClonedObject);\n }\n if (currentAnnotation.strokeColor !== signature.strokeColor) {\n redoClonedObject.strokeColor = signature.strokeColor;\n this.pdfViewer.nodePropertyChange(currentAnnotation, { strokeColor: signature.strokeColor });\n // eslint-disable-next-line max-len\n this.pdfViewer.fireSignaturePropertiesChange(currentAnnotation.pageIndex, currentAnnotation.signatureName, currentAnnotation.shapeAnnotationType, true, false, false, clonedObject.strokeColor, redoClonedObject.strokeColor);\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(currentAnnotation.pageIndex, null, currentAnnotation, 'Shape Stroke', '', clonedObject, redoClonedObject);\n }\n if (currentAnnotation.thickness !== signature.thickness) {\n redoClonedObject.thickness = signature.thickness;\n this.pdfViewer.nodePropertyChange(currentAnnotation, { thickness: signature.thickness });\n // eslint-disable-next-line max-len\n this.pdfViewer.fireSignaturePropertiesChange(currentAnnotation.pageIndex, currentAnnotation.signatureName, currentAnnotation.shapeAnnotationType, false, false, true, clonedObject.thickness, redoClonedObject.thickness);\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(currentAnnotation.pageIndex, null, currentAnnotation, 'Shape Thickness', '', clonedObject, redoClonedObject);\n }\n currentAnnotation.modifiedDate = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n this.pdfViewer.renderDrawing();\n this.pdfViewerBase.signatureModule.modifySignatureCollection(null, pageNumber, currentAnnotation, true);\n }\n };\n // eslint-disable-next-line\n Annotation.prototype.deletComment = function (commentDiv) {\n if (commentDiv.parentElement.firstChild === commentDiv) {\n this.deleteAnnotation();\n }\n else {\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.modifyCommentDeleteProperty(commentDiv.parentElement, commentDiv);\n }\n };\n // eslint-disable-next-line\n Annotation.prototype.addReplyComments = function (currentAnnotation, replyComment, commentType) {\n if (commentType === 'add') {\n // eslint-disable-next-line\n var commentsMainDiv = document.getElementById(currentAnnotation.annotName);\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.createCommentDiv(commentsMainDiv);\n for (var j = 0; j < replyComment.length; j++) {\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.saveCommentDiv(commentsMainDiv, replyComment[j]);\n }\n }\n else if (commentType === 'next') {\n // eslint-disable-next-line\n var commentsMainDiv = document.getElementById(currentAnnotation.annotationId);\n this.selectAnnotation(currentAnnotation);\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.saveCommentDiv(commentsMainDiv, replyComment);\n }\n };\n Annotation.prototype.editComments = function (commentId, editComment) {\n // eslint-disable-next-line\n var commentDiv = document.getElementById(commentId);\n commentDiv.childNodes[1].ej2_instances[0].value = editComment;\n };\n // eslint-disable-next-line\n Annotation.prototype.editAnnotation = function (annotation) {\n // eslint-disable-next-line\n var currentAnnotation;\n var annotationId;\n var annotationType;\n var pageNumber;\n var isTextMarkupUpdate = false;\n if (this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n currentAnnotation = this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation;\n annotationId = currentAnnotation.annotName;\n pageNumber = this.pdfViewer.annotationModule.textMarkupAnnotationModule.selectTextMarkupCurrentPage;\n }\n else {\n if (this.pdfViewer.selectedItems.annotations[0]) {\n currentAnnotation = this.pdfViewer.selectedItems.annotations[0];\n annotationId = currentAnnotation.annotName;\n pageNumber = currentAnnotation.pageIndex;\n }\n }\n if (annotation.uniqueKey !== undefined) {\n // eslint-disable-next-line\n currentAnnotation = this.pdfViewer.nameTable[annotation.uniqueKey];\n currentAnnotation.annotationSettings.isLock = annotation.annotationSettings.isLock;\n annotationId = currentAnnotation.annotName;\n pageNumber = currentAnnotation.pageIndex;\n if (isBlazor()) {\n if (annotation.allowedInteractions) {\n var allowedInteractionsCount = annotation.allowedInteractions.length;\n for (var i = 0; i < allowedInteractionsCount; i++) {\n if (annotation.allowedInteractions[i] === 0) {\n annotation.allowedInteractions[i] = AllowedInteraction.Select;\n }\n if (annotation.allowedInteractions[i] === 1) {\n annotation.allowedInteractions[i] = AllowedInteraction.Move;\n }\n if (annotation.allowedInteractions[i] === 2) {\n annotation.allowedInteractions[i] = AllowedInteraction.Resize;\n }\n if (annotation.allowedInteractions[i] === 3) {\n annotation.allowedInteractions[i] = AllowedInteraction.Delete;\n }\n if (annotation.allowedInteractions[i] === 4) {\n annotation.allowedInteractions[i] = AllowedInteraction.PropertyChange;\n }\n if (annotation.allowedInteractions[i] === 5) {\n annotation.allowedInteractions[i] = AllowedInteraction.None;\n }\n }\n }\n }\n // eslint-disable-next-line\n currentAnnotation.allowedInteractions = annotation.allowedInteractions ? annotation.allowedInteractions : this.updateAnnotationAllowedInteractions(annotation);\n }\n if (!currentAnnotation) {\n if (annotation.shapeAnnotationType === 'sticky' && annotation.annotationId !== undefined) {\n // eslint-disable-next-line\n currentAnnotation = this.pdfViewer.nameTable[annotation.annotationId];\n currentAnnotation.annotationSettings.isLock = annotation.annotationSettings.isLock;\n annotationId = currentAnnotation.annotName;\n pageNumber = currentAnnotation.pageIndex;\n }\n }\n if (annotation.shapeAnnotationType === 'textMarkup') {\n if (!this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n // eslint-disable-next-line max-len\n currentAnnotation = this.pdfViewer.annotationModule.textMarkupAnnotationModule.getAnnotations(annotation.pageNumber, annotation);\n for (var i = 0; i < currentAnnotation.length; i++) {\n if (annotation.annotationId === currentAnnotation[i].annotName) {\n isTextMarkupUpdate = true;\n currentAnnotation = currentAnnotation[i];\n currentAnnotation.isPrint = annotation.isPrint;\n this.textMarkupAnnotationModule.currentTextMarkupAnnotation = currentAnnotation;\n this.textMarkupAnnotationModule.selectTextMarkupCurrentPage = currentAnnotation.pageNumber;\n currentAnnotation.allowedInteractions = annotation.allowedInteractions;\n pageNumber = currentAnnotation.pageNumber;\n annotationId = annotation.annotationId;\n break;\n }\n }\n }\n }\n if (currentAnnotation) {\n // eslint-disable-next-line\n var clonedObject = cloneObject(currentAnnotation);\n // eslint-disable-next-line\n var redoClonedObject = cloneObject(currentAnnotation);\n if (annotation.shapeAnnotationType === 'textMarkup') {\n annotationType = 'textMarkup';\n }\n if (annotation && annotation.isCommentLock === true) {\n currentAnnotation.isCommentLock = annotation.isCommentLock;\n }\n if (annotation.comments) {\n for (var j_1 = 0; j_1 < annotation.comments.length; j_1++) {\n if (annotation.comments[j_1].isLock === true) {\n if (annotationType) {\n currentAnnotation.comments = annotation.comments;\n currentAnnotation.comments[j_1].isLock = annotation.comments[j_1].isLock;\n }\n else {\n currentAnnotation.properties.comments = annotation.comments;\n currentAnnotation.properties.comments[j_1].isLock = annotation.comments[j_1].isLock;\n }\n }\n }\n }\n if (annotation && annotation.note !== '' && annotation.note !== undefined) {\n if (annotationType) {\n currentAnnotation.note = annotation.note;\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.addTextToComments(currentAnnotation.annotName, currentAnnotation.note);\n }\n else {\n currentAnnotation.notes = annotation.note;\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.addTextToComments(currentAnnotation.annotName, currentAnnotation.notes);\n }\n }\n else {\n if (annotation && annotation.isCommentLock && ((annotation.type && annotation.type !== 'FreeText') || annotation.shapeAnnotationType !== 'FreeText')) {\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.addTextToComments(currentAnnotation.annotName, ' ');\n }\n }\n if (annotation.commentId && annotation.editComment && annotation.commentType === 'edit') {\n this.editComments(annotation.commentId, annotation.editComment);\n }\n if (annotation.replyComment && annotation.commentType === 'add') {\n this.addReplyComments(currentAnnotation, annotation.replyComment, annotation.commentType);\n this.pdfViewer.annotationCollection[0].note = annotation.note;\n }\n if (annotation.nextComment && annotation.commentType === 'next') {\n this.addReplyComments(annotation, annotation.nextComment, annotation.commentType);\n }\n if (annotation.note === '' && annotation.commentType === 'delete') {\n // eslint-disable-next-line\n var commentDiv = document.getElementById(annotation.annotationId);\n this.deletComment(commentDiv);\n }\n if (annotation.comments) {\n for (var j_2 = 0; j_2 < annotation.comments.length; j_2++) {\n if (annotation.comments[j_2].note === '' && annotation.commentType === 'delete') {\n // eslint-disable-next-line\n var commentDiv = document.getElementById(annotation.comments[j_2].annotName);\n this.deletComment(commentDiv);\n }\n }\n }\n if (annotation.type === 'TextMarkup' || annotation.shapeAnnotationType === 'textMarkup') {\n if (currentAnnotation.annotationSettings && annotation.annotationSettings) {\n if (currentAnnotation.annotationSettings.isLock !== annotation.annotationSettings.isLock) {\n // eslint-disable-next-line max-len\n var pageAnnotations = this.textMarkupAnnotationModule.modifyAnnotationProperty('AnnotationSettings', annotation.annotationSettings.isLock, null);\n // eslint-disable-next-line max-len\n this.textMarkupAnnotationModule.manageAnnotations(pageAnnotations, this.textMarkupAnnotationModule.selectTextMarkupCurrentPage);\n }\n }\n if (currentAnnotation.opacity !== annotation.opacity) {\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.modifyOpacityProperty(null, annotation.opacity);\n }\n if (currentAnnotation.color !== annotation.color) {\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.modifyColorProperty(annotation.color);\n }\n annotationType = 'textMarkup';\n if (isTextMarkupUpdate) {\n this.textMarkupAnnotationModule.currentTextMarkupAnnotation = null;\n this.textMarkupAnnotationModule.selectTextMarkupCurrentPage = null;\n }\n // eslint-disable-next-line max-len\n }\n else if (annotation && annotation.stampAnnotationType === 'image' && annotation.shapeAnnotationType === 'stamp' && annotation.stampAnnotationPath) {\n annotationType = 'stamp';\n if (currentAnnotation.data !== annotation.stampAnnotationPath) {\n currentAnnotation.data = annotation.stampAnnotationPath;\n currentAnnotation.wrapper.children[0].imageSource = annotation.stampAnnotationPath;\n }\n if (annotation.opacity && currentAnnotation.opacity !== annotation.opacity) {\n this.annotationPropertyChange(currentAnnotation, annotation.opacity, 'Shape Opacity', clonedObject, redoClonedObject);\n }\n this.calculateAnnotationBounds(currentAnnotation, annotation);\n // eslint-disable-next-line max-len\n }\n else if (annotation.type === 'StickyNotes' || annotation.type === 'Stamp' || annotation.shapeAnnotationType === 'sticky' || annotation.shapeAnnotationType === 'stamp') {\n if (annotation.opacity && currentAnnotation.opacity !== annotation.opacity) {\n this.annotationPropertyChange(currentAnnotation, annotation.opacity, 'Shape Opacity', clonedObject, redoClonedObject);\n }\n this.calculateAnnotationBounds(currentAnnotation, annotation);\n if (annotation.type === 'StickyNotes' || annotation.shapeAnnotationType === 'sticky') {\n annotationType = 'sticky';\n }\n else {\n annotationType = 'stamp';\n }\n // eslint-disable-next-line max-len\n }\n else if (annotation.type === 'Ink' || annotation.type === 'Shape' || annotation.type === 'Measure' || annotation.shapeAnnotationType === 'Line' || annotation.shapeAnnotationType === 'Square' || annotation.shapeAnnotationType === 'Circle' || annotation.shapeAnnotationType === 'Polygon' || annotation.shapeAnnotationType === 'Polyline' || annotation.shapeAnnotationType === 'Ink') {\n this.calculateAnnotationBounds(currentAnnotation, annotation);\n if (annotation.opacity && currentAnnotation.opacity !== annotation.opacity) {\n this.annotationPropertyChange(currentAnnotation, annotation.opacity, 'Shape Opacity', clonedObject, redoClonedObject);\n }\n if (annotation.fillColor && currentAnnotation.fillColor !== annotation.fillColor) {\n redoClonedObject.fillColor = annotation.fillColor;\n if (annotation.labelSettings && annotation.labelSettings.fillColor) {\n annotation.labelSettings.fillColor = annotation.fillColor;\n }\n this.pdfViewer.nodePropertyChange(currentAnnotation, { fillColor: annotation.fillColor });\n this.triggerAnnotationPropChange(currentAnnotation, true, false, false, false);\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(currentAnnotation.pageIndex, null, currentAnnotation, 'Shape Fill', '', clonedObject, redoClonedObject);\n }\n if (annotation.strokeColor && currentAnnotation.strokeColor !== annotation.strokeColor) {\n redoClonedObject.strokeColor = annotation.strokeColor;\n this.pdfViewer.nodePropertyChange(currentAnnotation, { strokeColor: annotation.strokeColor });\n this.triggerAnnotationPropChange(currentAnnotation, false, true, false, false);\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(currentAnnotation.pageIndex, null, currentAnnotation, 'Shape Stroke', '', clonedObject, redoClonedObject);\n }\n if (annotation.thickness && currentAnnotation.thickness !== annotation.thickness) {\n redoClonedObject.thickness = annotation.thickness;\n this.pdfViewer.nodePropertyChange(currentAnnotation, { thickness: annotation.thickness });\n this.triggerAnnotationPropChange(currentAnnotation, false, false, true, false);\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(currentAnnotation.pageIndex, null, currentAnnotation, 'Shape Thickness', '', clonedObject, redoClonedObject);\n }\n if (currentAnnotation.author !== annotation.author) {\n redoClonedObject.author = annotation.author;\n this.pdfViewer.nodePropertyChange(currentAnnotation, { author: annotation.author });\n this.triggerAnnotationPropChange(currentAnnotation, false, true, false, false);\n }\n if (currentAnnotation.modifiedDate !== annotation.modifiedDate) {\n redoClonedObject.modifiedDate = annotation.modifiedDate;\n this.pdfViewer.nodePropertyChange(currentAnnotation, { modifiedDate: annotation.modifiedDate });\n }\n if (currentAnnotation.subject !== annotation.subject) {\n redoClonedObject.subject = annotation.subject;\n this.pdfViewer.nodePropertyChange(currentAnnotation, { subject: annotation.subject });\n this.triggerAnnotationPropChange(currentAnnotation, false, true, false, false);\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(currentAnnotation.pageIndex, null, currentAnnotation, 'Shape Stroke', '', clonedObject, redoClonedObject);\n }\n if (this.pdfViewer.enableShapeLabel && currentAnnotation.fontColor !== annotation.fontColor) {\n redoClonedObject.fontColor = annotation.fontColor;\n this.pdfViewer.nodePropertyChange(currentAnnotation, { fontColor: annotation.fontColor });\n }\n if (this.pdfViewer.enableShapeLabel && annotation.labelSettings && annotation.labelSettings.fillColor) {\n if (currentAnnotation.labelFillColor !== annotation.labelSettings.fillColor) {\n redoClonedObject.labelFillColor = annotation.labelSettings.fillColor;\n this.pdfViewer.nodePropertyChange(currentAnnotation, { labelFillColor: annotation.labelSettings.fillColor });\n }\n }\n // eslint-disable-next-line max-len\n if (annotation.shapeAnnotationType === 'Line' || annotation.shapeAnnotationType === 'Polyline' || annotation.shapeAnnotationType === 'Polygon') {\n if (JSON.stringify(currentAnnotation.vertexPoints) !== JSON.stringify(annotation.vertexPoints)) {\n currentAnnotation.vertexPoints = annotation.vertexPoints;\n this.pdfViewer.nodePropertyChange(currentAnnotation, { vertexPoints: annotation.vertexPoints });\n }\n }\n // eslint-disable-next-line max-len\n if (annotation.subType === 'Line' || annotation.subType === 'Arrow' || annotation.subType === 'Distance' || annotation.subType === 'Perimeter') {\n var isSourceDecoraterShapesChanged = false;\n var isTargetDecoraterShapesChanged = false;\n var isBorderDashArrayChanged = false;\n clonedObject.lineHeadStart = currentAnnotation.sourceDecoraterShapes;\n clonedObject.lineHeadEnd = currentAnnotation.taregetDecoraterShapes;\n redoClonedObject.lineHeadStart = annotation.lineHeadStartStyle;\n redoClonedObject.lineHeadEnd = annotation.lineHeadEndStyle;\n redoClonedObject.borderDashArray = annotation.borderDashArray;\n if (currentAnnotation.taregetDecoraterShapes !== annotation.lineHeadEndStyle) {\n isTargetDecoraterShapesChanged = true;\n }\n if (currentAnnotation.sourceDecoraterShapes !== annotation.lineHeadStartStyle) {\n isSourceDecoraterShapesChanged = true;\n }\n if (currentAnnotation.borderDashArray !== annotation.borderDashArray) {\n isBorderDashArrayChanged = true;\n }\n // eslint-disable-next-line max-len\n this.pdfViewer.nodePropertyChange(currentAnnotation, { sourceDecoraterShapes: annotation.lineHeadStartStyle, taregetDecoraterShapes: annotation.lineHeadEndStyle, borderDashArray: annotation.borderDashArray });\n // eslint-disable-next-line max-len\n this.triggerAnnotationPropChange(currentAnnotation, false, false, false, false, isSourceDecoraterShapesChanged, isTargetDecoraterShapesChanged, isBorderDashArrayChanged);\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(currentAnnotation.pageIndex, null, currentAnnotation, 'Line properties change', '', clonedObject, redoClonedObject);\n }\n // eslint-disable-next-line max-len\n if (annotation.type === 'Shape' || annotation.shapeAnnotationType === 'Line' || annotation.shapeAnnotationType === 'Square' || annotation.shapeAnnotationType === 'Circle' || annotation.shapeAnnotationType === 'Polygon') {\n annotationType = 'shape';\n }\n if (annotation.type === 'Ink' || annotation.shapeAnnotationType === 'Ink') {\n annotationType = 'ink';\n }\n // eslint-disable-next-line max-len\n if (annotation.type === 'Measure' || annotation.subject === 'Distance calculation' || annotation.subject === 'Perimeter calculation' || annotation.subject === 'Radius calculation' || annotation.subject === 'Area calculation' || annotation.subject === 'Volume calculation') {\n annotationType = 'shape_measure';\n }\n if (annotation.labelSettings && this.pdfViewer.enableShapeLabel) {\n this.updateFreeTextProperties(currentAnnotation);\n this.pdfViewer.nodePropertyChange(currentAnnotation, {\n // eslint-disable-next-line max-len\n labelOpacity: annotation.labelSettings.opacity, fontColor: annotation.labelSettings.fontColor, fontSize: annotation.labelSettings.fontSize, fontFamily: annotation.labelSettings.fontFamily,\n labelContent: currentAnnotation.notes, labelFillColor: annotation.labelSettings.fillColor\n });\n }\n if (this.pdfViewer.enableShapeLabel && annotation.calibrate && annotation.calibrate.depth) {\n if (this.pdfViewer.annotationModule.measureAnnotationModule.volumeDepth !== annotation.calibrate.depth) {\n this.pdfViewer.annotationModule.measureAnnotationModule.volumeDepth = annotation.calibrate.depth;\n // eslint-disable-next-line max-len\n currentAnnotation.notes = this.pdfViewer.annotationModule.measureAnnotationModule.calculateVolume(currentAnnotation.vertexPoints, currentAnnotation.id, currentAnnotation.pageIndex);\n currentAnnotation.labelContent = currentAnnotation.notes;\n if (annotation.labelSettings && annotation.labelSettings.labelContent) {\n annotation.labelSettings.labelContent = currentAnnotation.notes;\n }\n this.pdfViewer.nodePropertyChange(currentAnnotation, { labelContent: currentAnnotation.labelContent });\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.addTextToComments(currentAnnotation.annotName, currentAnnotation.notes);\n }\n }\n }\n else if (annotation.type === 'FreeText' || annotation.shapeAnnotationType === 'FreeText') {\n annotationType = 'freetext';\n if (this.pdfViewer.freeTextSettings.enableAutoFit && currentAnnotation.dynamicText !== annotation.content) {\n // eslint-disable-next-line\n var canvas = this.pdfViewerBase.getElement('_annotationCanvas_' + currentAnnotation.pageIndex);\n var context = canvas.getContext(\"2d\");\n var fontSize = annotation.fontSize;\n var font = void 0;\n var fontFamily = annotation.fontFamily;\n var zoomFactor = this.pdfViewerBase.getZoomFactor();\n // eslint-disable-next-line\n annotation.font.isBold ? font = 'bold' + ' ' + fontSize + 'px' + ' ' + fontFamily : font = fontSize + 'px' + ' ' + fontFamily;\n context.font = font;\n var characterLength = 8;\n var highestTextNode = \"\";\n // eslint-disable-next-line\n var textNodes = [];\n var textboxValue = annotation.content ? annotation.content : annotation.dynamicText;\n if (textboxValue.indexOf('\\n') > -1) {\n textNodes = textboxValue.split('\\n');\n for (var j = 0; j < textNodes.length; j++) {\n // eslint-disable-next-line\n var textNodeData = context.measureText(textNodes[j]);\n // eslint-disable-next-line\n var highestTextNodeData = context.measureText(highestTextNode);\n if (textNodeData.width > highestTextNodeData.width) {\n highestTextNode = textNodes[j];\n }\n }\n }\n else {\n highestTextNode = textboxValue;\n }\n // eslint-disable-next-line\n var textwidth = context.measureText(highestTextNode);\n annotation.bounds.width = Math.ceil(textwidth.width + ((characterLength + 1) * 2));\n var pageDiv = this.pdfViewerBase.getElement('_pageDiv_' + (annotation.pageIndex));\n var maxWidth = pageDiv.clientWidth - (annotation.bounds.left * zoomFactor);\n if (annotation.bounds.width > maxWidth) {\n annotation.bounds.width = maxWidth / zoomFactor;\n }\n var height = annotation.bounds.height;\n annotation.bounds.height = height >= currentAnnotation.bounds.height ? height : currentAnnotation.bounds.height;\n }\n this.calculateAnnotationBounds(currentAnnotation, annotation);\n if (annotation.opacity && currentAnnotation.opacity !== annotation.opacity) {\n this.triggerAnnotationPropChange(currentAnnotation, false, false, false, true);\n }\n if (annotation.fillColor && currentAnnotation.fillColor !== annotation.fillColor) {\n this.triggerAnnotationPropChange(currentAnnotation, true, false, false, false);\n }\n if (annotation.strokeColor && currentAnnotation.strokeColor !== annotation.strokeColor) {\n this.triggerAnnotationPropChange(currentAnnotation, false, true, false, false);\n }\n if (annotation.thickness && currentAnnotation.thickness !== annotation.thickness) {\n this.triggerAnnotationPropChange(currentAnnotation, false, false, true, false);\n }\n annotation.content = annotation.content ? annotation.content : annotation.dynamicText;\n if (annotation.content && currentAnnotation.dynamicText !== annotation.content) {\n this.triggerAnnotationPropChange(currentAnnotation, false, false, false, false, false, false, false, true, currentAnnotation.dynamicText, annotation.content);\n }\n this.pdfViewer.nodePropertyChange(currentAnnotation, {\n // eslint-disable-next-line max-len\n opacity: annotation.opacity, fontColor: annotation.fontColor, fontSize: annotation.fontSize, fontFamily: annotation.fontFamily,\n // eslint-disable-next-line max-len\n dynamicText: annotation.content, fillColor: annotation.fillColor, textAlign: annotation.textAlign, strokeColor: annotation.strokeColor, thickness: annotation.thickness, font: annotation.fontStyle ? this.setFreeTextFontStyle(annotation.fontStyle) : this.setFreeTextFontStyle(annotation.font),\n isReadonly: annotation.isReadonly\n });\n if (annotation.content && currentAnnotation) {\n this.updateAnnotationComments(currentAnnotation.annotName, annotation.content);\n }\n // eslint-disable-next-line\n var newCommentDiv = document.getElementById(this.pdfViewer.element.id + '_commenttextbox_editor');\n // eslint-disable-next-line\n var commentObj = new InPlaceEditor({\n value: annotation.content\n });\n commentObj.appendTo(newCommentDiv);\n }\n currentAnnotation.modifiedDate = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n if (currentAnnotation.customData !== annotation.customData) {\n currentAnnotation.customData = annotation.customData;\n }\n currentAnnotation.isPrint = annotation.isPrint;\n if (annotation.type !== 'TextMarkup') {\n this.pdfViewer.renderDrawing();\n this.updateCollection(annotationId, pageNumber, annotation, annotationType);\n }\n }\n };\n // eslint-disable-next-line\n Annotation.prototype.annotationPropertyChange = function (currentAnnotation, opacity, actionString, clonedObject, redoClonedObject) {\n this.pdfViewer.nodePropertyChange(currentAnnotation, { opacity: opacity });\n this.triggerAnnotationPropChange(currentAnnotation, false, false, false, true);\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(currentAnnotation.pageIndex, null, currentAnnotation, actionString, '', clonedObject, redoClonedObject);\n };\n // eslint-disable-next-line\n Annotation.prototype.calculateAnnotationBounds = function (currentAnnotation, annotation) {\n // eslint-disable-next-line\n var bounds = this.pdfViewerBase.convertBounds(currentAnnotation.wrapper.bounds);\n // eslint-disable-next-line\n var annotBounds = this.pdfViewerBase.convertBounds(annotation.bounds);\n if (bounds && annotBounds) {\n // eslint-disable-next-line\n if (JSON.stringify(bounds) !== JSON.stringify(annotBounds) && (Math.abs(bounds.Y - annotBounds.Y) > 2) || (Math.abs(bounds.X - annotBounds.X) > 2) || (Math.abs(bounds.Width - annotBounds.Width) > 2) || (Math.abs(bounds.Height - annotBounds.Height) > 2)) {\n // eslint-disable-next-line\n var annotationBounds = { x: annotBounds.X + (annotBounds.Width / 2), y: annotBounds.Y + (annotBounds.Height / 2), width: annotBounds.Width, height: annotBounds.Height };\n this.pdfViewer.nodePropertyChange(currentAnnotation, { bounds: annotationBounds });\n this.pdfViewer.clearSelection(this.pdfViewerBase.activeElements.activePageID);\n this.triggerAnnotationPropChange(currentAnnotation, false, false, false, false);\n }\n }\n };\n /**\n * @param annotation\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.updateFreeTextProperties = function (annotation) {\n if (annotation.labelSettings) {\n if (annotation.labelSettings.fillColor) {\n annotation.labelFillColor = annotation.labelSettings.fillColor;\n }\n if (annotation.labelSettings.fontColor) {\n annotation.fontColor = annotation.labelSettings.fontColor;\n }\n if (annotation.labelSettings.fontSize) {\n annotation.fontSize = annotation.labelSettings.fontSize;\n }\n if (annotation.labelSettings.fontFamily) {\n annotation.fontFamily = annotation.labelSettings.fontFamily;\n }\n if (annotation.labelSettings.opacity) {\n annotation.labelOpacity = annotation.labelSettings.opacity;\n }\n if (annotation.labelSettings.labelContent) {\n annotation.labelContent = annotation.labelSettings.labelContent;\n }\n }\n };\n Annotation.prototype.updateAnnotationComments = function (annotationId, noteContent) {\n // eslint-disable-next-line\n var commentsDiv = document.getElementById(annotationId);\n if (commentsDiv && commentsDiv.childNodes) {\n if (commentsDiv.childNodes[0].ej2_instances) {\n commentsDiv.childNodes[0].ej2_instances[0].value = noteContent;\n }\n else if (commentsDiv.childNodes[0].childNodes && commentsDiv.childNodes[0].childNodes[1].ej2_instances) {\n commentsDiv.childNodes[0].childNodes[1].ej2_instances[0].value = noteContent;\n }\n }\n };\n /**\n * @param annotation\n * @param currentAnnotation\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.addFreeTextProperties = function (annotation, currentAnnotation) {\n if (this.pdfViewer.enableShapeLabel && annotation && currentAnnotation) {\n currentAnnotation.labelSettings = {\n fontColor: annotation.fontColor, fontSize: annotation.fontSize, fontFamily: annotation.fontFamily,\n opacity: annotation.labelOpacity, labelContent: annotation.labelContent, fillColor: annotation.labelFillColor\n };\n }\n };\n Annotation.prototype.updateMeasurementSettings = function () {\n if (this.pdfViewer.enableAnnotation && this.pdfViewer.enableMeasureAnnotation) {\n // eslint-disable-next-line max-len\n var ratioString = '1 ' + this.pdfViewer.measurementSettings.conversionUnit + ' = ' + this.pdfViewer.measurementSettings.scaleRatio + ' ' + this.pdfViewer.measurementSettings.displayUnit;\n this.measureAnnotationModule.updateMeasureValues(ratioString, this.pdfViewer.measurementSettings.displayUnit, this.pdfViewer.measurementSettings.conversionUnit, this.pdfViewer.measurementSettings.depth);\n }\n };\n // eslint-disable-next-line\n Annotation.prototype.updateCollection = function (annotationId, pageNumber, annotation, annotationType) {\n // eslint-disable-next-line\n var annotationCollection;\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_' + annotationType);\n if (this.pdfViewerBase.isStorageExceed) {\n storeObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_' + annotationType];\n }\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n var index = this.getPageCollection(annotObject, pageNumber);\n if (annotObject[index]) {\n annotationCollection = annotObject[index].annotations;\n if (annotationCollection !== null) {\n for (var i = 0; i < annotationCollection.length; i++) {\n if (annotationCollection[i].annotName === annotationId) {\n // eslint-disable-next-line\n var newAnnot = this.modifyAnnotationProperties(annotationCollection[i], annotation, annotationType);\n annotationCollection[i] = newAnnot;\n }\n }\n if (!this.pdfViewerBase.isStorageExceed) {\n window.sessionStorage.removeItem(this.pdfViewerBase.documentId + '_annotations_' + annotationType);\n }\n if (annotObject[index]) {\n annotObject[index].annotations = annotationCollection;\n }\n var annotationStringified = JSON.stringify(annotObject);\n if (this.pdfViewerBase.isStorageExceed) {\n // eslint-disable-next-line max-len\n this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_' + annotationType] = annotationStringified;\n }\n else {\n // eslint-disable-next-line max-len\n window.sessionStorage.setItem(this.pdfViewerBase.documentId + '_annotations_' + annotationType, annotationStringified);\n }\n }\n }\n }\n };\n // eslint-disable-next-line\n Annotation.prototype.modifyAnnotationProperties = function (newAnnotation, annotation, annotationType) {\n if (annotation && annotation.isCommentLock === true) {\n newAnnotation.isCommentLock = annotation.isCommentLock;\n }\n if (annotation.comments) {\n for (var j = 0; j < annotation.comments.length; j++) {\n if (annotation.comments[j].isLock === true) {\n newAnnotation.comments[j].isLock = annotation.comments[j].isLock;\n }\n }\n }\n if (annotation && annotation.note !== '' && annotation.note !== undefined) {\n newAnnotation.note = annotation.note;\n }\n if (annotation.commentId && annotation.editComment && annotation.commentType === 'edit') {\n // eslint-disable-next-line\n var commentDiv = document.getElementById(annotation.commentId);\n if (annotation.annotationId === annotation.commentId) {\n newAnnotation.note = commentDiv.childNodes[1].ej2_instances[0].value;\n }\n for (var j = 0; j < annotation.comments.length; j++) {\n if (annotation.comments[j].annotName === annotation.commentId) {\n newAnnotation.comments[j].note = commentDiv.childNodes[1].ej2_instances[0].value;\n }\n }\n }\n if (annotationType === 'textMarkup') {\n newAnnotation.opacity = annotation.opacity;\n newAnnotation.color = annotation.color;\n newAnnotation.allowedInteractions = annotation.allowedInteractions;\n }\n else if (annotationType === 'sticky' || annotationType === 'stamp') {\n if (annotation.bounds) {\n newAnnotation.bounds = annotation.bounds;\n }\n newAnnotation.opacity = annotation.opacity;\n newAnnotation.annotationSettings = annotation.annotationSettings;\n newAnnotation.allowedInteractions = annotation.allowedInteractions;\n if (annotation.stampAnnotationPath) {\n newAnnotation.stampAnnotationPath = annotation.stampAnnotationPath;\n }\n }\n else if (annotationType === 'ink') {\n if (annotation.bounds) {\n newAnnotation.bounds = annotation.bounds;\n }\n newAnnotation.opacity = annotation.opacity;\n newAnnotation.strokeColor = annotation.strokeColor;\n newAnnotation.thickness = annotation.thickness;\n newAnnotation.annotationSettings = annotation.annotationSettings;\n newAnnotation.allowedInteractions = annotation.allowedInteractions;\n }\n else if (annotationType === 'shape' || annotationType === 'shape_measure') {\n if (annotation.subType === 'Line' || annotation.subType === 'Arrow' || annotation.subType === 'Distance' ||\n annotation.subType === 'Perimeter') {\n if (annotation.bounds) {\n newAnnotation.bounds = annotation.bounds;\n }\n if (annotation.vertexPoints) {\n newAnnotation.vertexPoints = annotation.vertexPoints;\n }\n newAnnotation.opacity = annotation.opacity;\n newAnnotation.fillColor = annotation.fillColor;\n newAnnotation.strokeColor = annotation.strokeColor;\n newAnnotation.thickness = annotation.thickness;\n newAnnotation.borderDashArray = annotation.borderDashArray;\n newAnnotation.lineHeadStart = this.getArrowTypeForCollection(annotation.lineHeadStartStyle);\n newAnnotation.lineHeadEnd = this.getArrowTypeForCollection(annotation.lineHeadEndStyle);\n newAnnotation.annotationSettings = annotation.annotationSettings;\n newAnnotation.allowedInteractions = annotation.allowedInteractions;\n }\n else {\n if (annotation.bounds) {\n newAnnotation.bounds = annotation.bounds;\n }\n if (annotation.vertexPoints) {\n newAnnotation.vertexPoints = annotation.vertexPoints;\n }\n newAnnotation.opacity = annotation.opacity;\n newAnnotation.fillColor = annotation.fillColor;\n newAnnotation.strokeColor = annotation.strokeColor;\n newAnnotation.thickness = annotation.thickness;\n newAnnotation.annotationSettings = annotation.annotationSettings;\n newAnnotation.allowedInteractions = annotation.allowedInteractions;\n if (annotation.calibrate) {\n if (newAnnotation.annotName === annotation.annotationId) {\n if (newAnnotation.calibrate.depth !== annotation.calibrate.depth) {\n newAnnotation.calibrate.depth = annotation.calibrate.depth;\n this.pdfViewer.annotationModule.measureAnnotationModule.volumeDepth = annotation.calibrate.depth;\n // eslint-disable-next-line max-len\n newAnnotation.note = this.pdfViewer.annotationModule.measureAnnotationModule.calculateVolume(newAnnotation.vertexPoints);\n }\n }\n }\n }\n if (this.pdfViewer.enableShapeLabel && annotation.labelSettings) {\n var text = annotation.labelSettings.labelContent;\n newAnnotation.note = text;\n newAnnotation.fontSize = annotation.labelSettings.fontSize;\n newAnnotation.labelFillColor = annotation.labelSettings.fillColor;\n if (newAnnotation.labelContent) {\n newAnnotation.labelContent = text;\n }\n if (newAnnotation.labelSettings) {\n newAnnotation.labelSettings = annotation.labelSettings;\n }\n this.updateAnnotationComments(newAnnotation.annotName, text);\n }\n }\n else if (annotationType === 'freetext') {\n if (annotation.bounds) {\n newAnnotation.bounds = annotation.bounds;\n }\n newAnnotation.opacity = annotation.opacity;\n newAnnotation.strokeColor = annotation.strokeColor;\n newAnnotation.thickness = annotation.thickness;\n if (annotation.content) {\n newAnnotation.dynamicText = annotation.content;\n }\n newAnnotation.fontFamily = annotation.fontFamily;\n newAnnotation.fontSize = annotation.fontSize;\n newAnnotation.fontColor = annotation.fontColor;\n newAnnotation.fillColor = annotation.fillColor;\n newAnnotation.font = annotation.font ? annotation.font : annotation.fontStyle;\n newAnnotation.textAlign = annotation.textAlign;\n newAnnotation.annotationSettings = annotation.annotationSettings;\n newAnnotation.allowedInteractions = annotation.allowedInteractions;\n newAnnotation.isReadonly = annotation.isReadonly;\n }\n newAnnotation.customData = annotation.customData;\n newAnnotation.modifiedDate = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n newAnnotation.isPrint = annotation.isPrint;\n if (annotation.annotationSettings && !isNullOrUndefined(annotation.annotationSettings.isLock)) {\n newAnnotation.isLocked = annotation.annotationSettings.isLock;\n }\n return newAnnotation;\n };\n /**\n * @param annotationType\n * @param annotationSubType\n * @param annotationType\n * @param annotationSubType\n * @private\n */\n Annotation.prototype.updateAnnotationAuthor = function (annotationType, annotationSubType) {\n var annotationAuthor;\n if (annotationType === 'sticky') {\n // eslint-disable-next-line max-len\n annotationAuthor = (this.pdfViewer.stickyNotesSettings.author !== 'Guest') ? this.pdfViewer.stickyNotesSettings.author : this.pdfViewer.annotationSettings.author ? this.pdfViewer.annotationSettings.author : 'Guest';\n }\n else if (annotationType === 'stamp') {\n // eslint-disable-next-line max-len\n annotationAuthor = (this.pdfViewer.stampSettings.author !== 'Guest') ? this.pdfViewer.stampSettings.author : this.pdfViewer.annotationSettings.author ? this.pdfViewer.annotationSettings.author : 'Guest';\n }\n else if (annotationType === 'shape') {\n if (annotationSubType === 'Line') {\n // eslint-disable-next-line max-len\n annotationAuthor = (this.pdfViewer.lineSettings.author !== 'Guest') ? this.pdfViewer.lineSettings.author : this.pdfViewer.annotationSettings.author ? this.pdfViewer.annotationSettings.author : 'Guest';\n }\n else if (annotationSubType === 'LineWidthArrowHead' || annotationSubType === 'Arrow') {\n // eslint-disable-next-line max-len\n annotationAuthor = (this.pdfViewer.arrowSettings.author !== 'Guest') ? this.pdfViewer.arrowSettings.author : this.pdfViewer.annotationSettings.author ? this.pdfViewer.annotationSettings.author : 'Guest';\n }\n else if (annotationSubType === 'Circle' || annotationSubType === 'Ellipse' || annotationSubType === 'Oval') {\n // eslint-disable-next-line max-len\n annotationAuthor = (this.pdfViewer.circleSettings.author !== 'Guest') ? this.pdfViewer.circleSettings.author : this.pdfViewer.annotationSettings.author ? this.pdfViewer.annotationSettings.author : 'Guest';\n }\n else if (annotationSubType === 'Rectangle' || annotationSubType === 'Square') {\n // eslint-disable-next-line max-len\n annotationAuthor = (this.pdfViewer.rectangleSettings.author !== 'Guest') ? this.pdfViewer.rectangleSettings.author : this.pdfViewer.annotationSettings.author ? this.pdfViewer.annotationSettings.author : 'Guest';\n }\n else if (annotationSubType === 'Polygon') {\n // eslint-disable-next-line max-len\n annotationAuthor = (this.pdfViewer.polygonSettings.author !== 'Guest') ? this.pdfViewer.polygonSettings.author : this.pdfViewer.annotationSettings.author ? this.pdfViewer.annotationSettings.author : 'Guest';\n }\n }\n else if (annotationType === 'measure') {\n if (annotationSubType === 'Distance' || annotationSubType === 'Distance calculation') {\n // eslint-disable-next-line max-len\n annotationAuthor = (this.pdfViewer.distanceSettings.author !== 'Guest') ? this.pdfViewer.distanceSettings.author : this.pdfViewer.annotationSettings.author ? this.pdfViewer.annotationSettings.author : 'Guest';\n }\n else if (annotationSubType === 'Perimeter' || annotationSubType === 'Perimeter calculation') {\n // eslint-disable-next-line max-len\n annotationAuthor = (this.pdfViewer.perimeterSettings.author !== 'Guest') ? this.pdfViewer.perimeterSettings.author : this.pdfViewer.annotationSettings.author ? this.pdfViewer.annotationSettings.author : 'Guest';\n }\n else if (annotationSubType === 'Radius' || annotationSubType === 'Radius calculation') {\n // eslint-disable-next-line max-len\n annotationAuthor = (this.pdfViewer.radiusSettings.author !== 'Guest') ? this.pdfViewer.radiusSettings.author : this.pdfViewer.annotationSettings.author ? this.pdfViewer.annotationSettings.author : 'Guest';\n }\n else if (annotationSubType === 'Area' || annotationSubType === 'Area calculation') {\n // eslint-disable-next-line max-len\n annotationAuthor = (this.pdfViewer.areaSettings.author !== 'Guest') ? this.pdfViewer.areaSettings.author : this.pdfViewer.annotationSettings.author ? this.pdfViewer.annotationSettings.author : 'Guest';\n }\n else if (annotationSubType === 'Volume' || annotationSubType === 'Volume calculation') {\n // eslint-disable-next-line max-len\n annotationAuthor = (this.pdfViewer.volumeSettings.author !== 'Guest') ? this.pdfViewer.volumeSettings.author : this.pdfViewer.annotationSettings.author ? this.pdfViewer.annotationSettings.author : 'Guest';\n }\n }\n else if (annotationType === 'textMarkup') {\n if (annotationSubType === 'Highlight') {\n // eslint-disable-next-line max-len\n annotationAuthor = (this.pdfViewer.highlightSettings.author !== 'Guest') ? this.pdfViewer.highlightSettings.author : this.pdfViewer.annotationSettings.author ? this.pdfViewer.annotationSettings.author : 'Guest';\n }\n else if (annotationSubType === 'Underline') {\n // eslint-disable-next-line max-len\n annotationAuthor = (this.pdfViewer.underlineSettings.author !== 'Guest') ? this.pdfViewer.underlineSettings.author : this.pdfViewer.annotationSettings.author ? this.pdfViewer.annotationSettings.author : 'Guest';\n }\n else if (annotationSubType === 'Strikethrough') {\n // eslint-disable-next-line max-len\n annotationAuthor = (this.pdfViewer.strikethroughSettings.author !== 'Guest') ? this.pdfViewer.strikethroughSettings.author : this.pdfViewer.annotationSettings.author ? this.pdfViewer.annotationSettings.author : 'Guest';\n }\n else {\n // eslint-disable-next-line max-len\n annotationAuthor = this.pdfViewer.annotationSettings.author;\n }\n }\n else if (annotationType === 'freeText') {\n // eslint-disable-next-line max-len\n annotationAuthor = (this.pdfViewer.freeTextSettings.author !== 'Guest') ? this.pdfViewer.freeTextSettings.author : this.pdfViewer.annotationSettings.author ? this.pdfViewer.annotationSettings.author : 'Guest';\n }\n else if (annotationType === 'ink') {\n // eslint-disable-next-line max-len\n annotationAuthor = (this.pdfViewer.inkAnnotationSettings.author !== 'Guest') ? this.pdfViewer.inkAnnotationSettings.author : this.pdfViewer.annotationSettings.author ? this.pdfViewer.annotationSettings.author : 'Guest';\n }\n if (!annotationAuthor) {\n // eslint-disable-next-line max-len\n annotationAuthor = this.pdfViewer.annotationSettings.author;\n }\n return annotationAuthor;\n };\n /**\n * @param colour\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.nameToHash = function (colour) {\n // eslint-disable-next-line\n var colours = {\n 'aliceblue': '#f0f8ff', 'antiquewhite': '#faebd7', 'aqua': '#00ffff', 'aquamarine': '#7fffd4', 'azure': '#f0ffff',\n 'beige': '#f5f5dc', 'bisque': '#ffe4c4', 'black': '#000000', 'blanchedalmond': '#ffebcd', 'blue': '#0000ff',\n 'blueviolet': '#8a2be2', 'brown': '#a52a2a', 'burlywood': '#deb887', 'yellow': '#ffff00', 'yellowgreen': '#9acd32',\n 'cadetblue': '#5f9ea0', 'chartreuse': '#7fff00', 'chocolate': '#d2691e', 'coral': '#ff7f50',\n 'cornflowerblue': '#6495ed', 'cornsilk': '#fff8dc', 'crimson': '#dc143c',\n 'cyan': '#00ffff', 'darkblue': '#00008b', 'darkcyan': '#008b8b', 'darkgoldenrod': '#b8860b', 'darkgray': '#a9a9a9',\n 'darkred': '#8b0000', 'darksalmon': '#e9967a', 'darkgreen': '#006400', 'darkkhaki': '#bdb76b',\n 'darkmagenta': '#8b008b', 'darkolivegreen': '#556b2f', 'darkorange': '#ff8c00', 'darkorchid': '#9932cc',\n 'darkseagreen': '#8fbc8f', 'darkslateblue': '#483d8b', 'darkslategray': '#2f4f4f', 'darkturquoise': '#00ced1',\n 'darkviolet': '#9400d3', 'deeppink': '#ff1493', 'deepskyblue': '#00bfff', 'dimgray': '#696969',\n 'dodgerblue': '#1e90ff', 'firebrick': '#b22222', 'floralwhite': '#fffaf0',\n 'forestgreen': '#228b22', 'fuchsia': '#ff00ff', 'gainsboro': '#dcdcdc', 'ghostwhite': '#f8f8ff',\n 'gold': '#ffd700', 'goldenrod': '#daa520', 'gray': '#808080', 'green': '#008000',\n 'greenyellow': '#adff2f', 'honeydew': '#f0fff0', 'hotpink': '#ff69b4', 'indianred ': '#cd5c5c',\n 'mediumorchid': '#ba55d3', 'mediumpurple': '#9370d8', 'indigo': '#4b0082', 'ivory': '#fffff0',\n 'navy': '#000080', 'oldlace': '#fdf5e6', 'olive': '#808000', 'khaki': '#f0e68c',\n 'lavender': '#e6e6fa', 'lavenderblush': '#fff0f5', 'lawngreen': '#7cfc00', 'lemonchiffon': '#fffacd',\n 'lightblue': '#add8e6', 'lightcoral': '#f08080', 'lightcyan': '#e0ffff',\n 'lightgoldenrodyellow': '#fafad2', 'lightgrey': '#d3d3d3', 'lightgreen': '#90ee90',\n 'lightpink': '#ffb6c1', 'lightsalmon': '#ffa07a', 'lightseagreen': '#20b2aa',\n 'lightskyblue': '#87cefa', 'lightslategray': '#778899', 'lightsteelblue': '#b0c4de',\n 'lightyellow': '#ffffe0', 'lime': '#00ff00', 'limegreen': '#32cd32', 'linen': '#faf0e6',\n 'magenta': '#ff00ff', 'maroon': '#800000', 'mediumaquamarine': '#66cdaa', 'mediumblue': '#0000cd',\n 'mediumseagreen': '#3cb371', 'mediumslateblue': '#7b68ee', 'mediumspringgreen': '#00fa9a',\n 'mediumturquoise': '#48d1cc', 'mediumvioletred': '#c71585', 'midnightblue': '#191970',\n 'mintcream': '#f5fffa', 'mistyrose': '#ffe4e1', 'moccasin': '#ffe4b5', 'navajowhite': '#ffdead',\n 'rebeccapurple': '#663399', 'red': '#ff0000', 'rosybrown': '#bc8f8f', 'royalblue': '#4169e1',\n 'olivedrab': '#6b8e23', 'orange': '#ffa500', 'orangered': '#ff4500', 'orchid': '#da70d6',\n 'palegoldenrod': '#eee8aa', 'palegreen': '#98fb98', 'paleturquoise': '#afeeee',\n 'palevioletred': '#d87093', 'papayawhip': '#ffefd5', 'peachpuff': '#ffdab9', 'peru': '#cd853f',\n 'wheat': '#f5deb3', 'white': '#ffffff', 'whitesmoke': '#f5f5f5', 'pink': '#ffc0cb', 'plum': '#dda0dd',\n 'steelblue': '#4682b4', 'violet': '#ee82ee', 'powderblue': '#b0e0e6', 'purple': '#800080',\n 'saddlebrown': '#8b4513', 'salmon': '#fa8072', 'sandybrown': '#f4a460', 'seagreen': '#2e8b57',\n 'seashell': '#fff5ee', 'sienna': '#a0522d', 'silver': '#c0c0c0', 'skyblue': '#87ceeb',\n 'slateblue': '#6a5acd', 'slategray': '#708090', 'snow': '#fffafa', 'springgreen': '#00ff7f',\n 'tan': '#d2b48c', 'teal': '#008080', 'thistle': '#d8bfd8', 'tomato': '#ff6347', 'turquoise': '#40e0d0'\n };\n if (typeof colours[colour.toLowerCase()] !== 'undefined') {\n return colours[colour.toLowerCase()];\n }\n return '';\n };\n // eslint-disable-next-line\n Annotation.prototype.updateFreeTextFontStyle = function (font) {\n // eslint-disable-next-line\n var fontStyle = 0;\n if (font.isBold === 1) {\n fontStyle = 1;\n }\n else if (font.isItalic === 2) {\n fontStyle = 2;\n }\n else if (font.isUnderline === 4) {\n fontStyle = 4;\n }\n else if (font.isStrikeout) {\n fontStyle = 8;\n }\n else {\n fontStyle = { isBold: font.isBold, isItalic: font.isItalic, isUnderline: font.isUnderline, isStrikeout: font.isUnderline };\n }\n return fontStyle;\n };\n // eslint-disable-next-line\n Annotation.prototype.setFreeTextFontStyle = function (fontStyle) {\n if (fontStyle === 1) {\n return { isBold: true };\n }\n else if (fontStyle === 2) {\n return { isItalic: true };\n }\n else if (fontStyle === 4) {\n return { isUnderline: true };\n }\n else if (fontStyle === 8) {\n return { isStrikeout: true };\n }\n else {\n return { isBold: fontStyle.isBold, isItalic: fontStyle.isItalic, isUnderline: fontStyle.isUnderline, isStrikeout: fontStyle.isStrikeout };\n }\n };\n /**\n * @param annotation\n * @param isSettings\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.findAnnotationSettings = function (annotation, isSettings) {\n // eslint-disable-next-line\n var annotSettings = this.pdfViewer.annotationSettings;\n if (annotation) {\n // eslint-disable-next-line\n var shapeType = annotation.shapeAnnotationType;\n if (shapeType === 'StickyNotes' && this.pdfViewer.stickyNotesSettings) {\n annotSettings = this.pdfViewer.stickyNotesSettings;\n }\n else if (shapeType === 'Stamp' || shapeType === 'Image') {\n annotSettings = this.pdfViewer.stampSettings;\n // eslint-disable-next-line max-len\n if ((shapeType === 'image' || shapeType === 'Image')) {\n annotSettings = this.pdfViewer.customStampSettings;\n }\n }\n else if (shapeType === 'FreeText') {\n annotSettings = this.pdfViewer.freeTextSettings;\n }\n else if (annotation.measureType === '') {\n if (shapeType === 'Line') {\n annotSettings = this.pdfViewer.lineSettings;\n // eslint-disable-next-line max-len\n }\n else if ((shapeType === 'Arrow' || shapeType === 'LineWidthArrowHead')) {\n annotSettings = this.pdfViewer.arrowSettings;\n }\n else if (shapeType === 'Rectangle') {\n annotSettings = this.pdfViewer.rectangleSettings;\n // eslint-disable-next-line max-len\n }\n else if ((shapeType === 'Circle' || shapeType === 'Ellipse')) {\n annotSettings = this.pdfViewer.circleSettings;\n }\n else if (shapeType === 'Polygon' && this.pdfViewer.polygonSettings) {\n annotSettings = this.pdfViewer.polygonSettings;\n }\n }\n else if (annotation.measureType !== '') {\n if (annotation.measureType === 'Distance') {\n annotSettings = this.pdfViewer.distanceSettings;\n }\n else if (annotation.measureType === 'Perimeter') {\n annotSettings = this.pdfViewer.perimeterSettings;\n }\n else if (annotation.measureType === 'Area') {\n annotSettings = this.pdfViewer.areaSettings;\n }\n else if (annotation.measureType === 'Radius') {\n annotSettings = this.pdfViewer.radiusSettings;\n }\n else if (annotation.measureType === 'Volume') {\n annotSettings = this.pdfViewer.volumeSettings;\n }\n }\n }\n var settings = annotation ? annotation.annotationSettings : {};\n if (settings && (settings.minWidth || settings.maxWidth || settings.minHeight || settings.maxHeight)) {\n return this.updateSettings(settings);\n }\n else if (isSettings) {\n return this.updateSettings(annotSettings);\n }\n else {\n return annotSettings;\n }\n };\n /**\n * @param annotation\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.updateAnnotationSettings = function (annotation) {\n // eslint-disable-next-line\n var annotSettings = this.pdfViewer.annotationSettings;\n if (annotation.AnnotType === 'sticky') {\n annotSettings = this.pdfViewer.stickyNotesSettings;\n }\n else if (annotation.AnnotType === 'stamp' || annotation.AnnotType === 'image' || annotation.AnnotType === 'Image') {\n annotSettings = this.pdfViewer.stampSettings;\n // eslint-disable-next-line max-len\n if ((annotation.Subject === 'image' || annotation.Subject === 'Image')) {\n annotSettings = this.pdfViewer.customStampSettings;\n }\n }\n else if (annotation.AnnotType === 'freeText') {\n annotSettings = this.pdfViewer.freeTextSettings;\n }\n else if (annotation.AnnotType === 'shape') {\n if (annotation.Subject === 'Line') {\n annotSettings = this.pdfViewer.lineSettings;\n // eslint-disable-next-line max-len\n }\n else if ((annotation.Subject === 'Arrow' || annotation.Subject === 'LineWidthArrowHead')) {\n annotSettings = this.pdfViewer.arrowSettings;\n // eslint-disable-next-line max-len\n }\n else if ((annotation.Subject === 'Rectangle' || annotation.Subject === 'Square')) {\n annotSettings = this.pdfViewer.rectangleSettings;\n // eslint-disable-next-line max-len\n }\n else if ((annotation.Subject === 'Circle' || annotation.Subject === 'Ellipse' || annotation.Subject === 'Oval')) {\n annotSettings = this.pdfViewer.circleSettings;\n }\n else if (annotation.Subject === 'Polygon') {\n annotSettings = this.pdfViewer.polygonSettings;\n }\n }\n else if (annotation.AnnotType === 'shape_measure') {\n // eslint-disable-next-line max-len\n if ((annotation.Subject === 'Distance' || annotation.Subject === 'Distance calculation')) {\n annotSettings = this.pdfViewer.distanceSettings;\n // eslint-disable-next-line max-len\n }\n else if ((annotation.Subject === 'Perimeter' || annotation.Subject === 'Perimeter calculation')) {\n annotSettings = this.pdfViewer.perimeterSettings;\n // eslint-disable-next-line max-len\n }\n else if ((annotation.Subject === 'Area' || annotation.Subject === 'Area calculation')) {\n annotSettings = this.pdfViewer.areaSettings;\n // eslint-disable-next-line max-len\n }\n else if ((annotation.Subject === 'Radius' || annotation.Subject === 'Radius calculation')) {\n annotSettings = this.pdfViewer.radiusSettings;\n // eslint-disable-next-line max-len\n }\n else if ((annotation.Subject === 'Volume' || annotation.Subject === 'Volume calculation')) {\n annotSettings = this.pdfViewer.volumeSettings;\n }\n }\n return this.updateSettings(annotSettings);\n };\n /**\n * @param annotationSettings\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.updateSettings = function (annotationSettings) {\n var maxHeight = 0;\n var maxWidth = 0;\n var minHeight = 0;\n var minWidth = 0;\n var isLock = false;\n var isPrint = true;\n // eslint-disable-next-line\n var settings = this.pdfViewer.annotationSettings;\n if (annotationSettings.minWidth || annotationSettings.maxWidth || annotationSettings.minHeight || annotationSettings.maxHeight) {\n maxHeight = annotationSettings.maxHeight ? annotationSettings.maxHeight : 2000;\n maxWidth = annotationSettings.maxWidth ? annotationSettings.maxWidth : 2000;\n minHeight = annotationSettings.minHeight ? annotationSettings.minHeight : 0;\n minWidth = annotationSettings.minWidth ? annotationSettings.minWidth : 0;\n }\n else if (settings.minWidth || settings.maxWidth || settings.minHeight || settings.maxHeight) {\n maxHeight = settings.maxHeight ? settings.maxHeight : 2000;\n maxWidth = settings.maxWidth ? settings.maxWidth : 2000;\n minHeight = settings.minHeight ? settings.minHeight : 0;\n minWidth = settings.minWidth ? settings.minWidth : 0;\n }\n isLock = annotationSettings.isLock ? annotationSettings.isLock : settings.isLock ? settings.isLock : false;\n isPrint = annotationSettings.isPrint;\n return { minWidth: minWidth, maxWidth: maxWidth, minHeight: minHeight, maxHeight: maxHeight, isLock: isLock, isPrint: isPrint };\n };\n // eslint-disable-next-line\n Annotation.prototype.getOverlappedAnnotations = function (annotation, pageNumber) {\n // eslint-disable-next-line\n var pageCollections = this.getPageShapeAnnotations(pageNumber);\n // eslint-disable-next-line\n var selectedAnnotation;\n for (var i = 0; i < pageCollections.length; i++) {\n if (annotation.annotName === pageCollections[i].annotName) {\n selectedAnnotation = pageCollections[i];\n break;\n }\n }\n // eslint-disable-next-line\n var annotationCollection = this.findOverlappedAnnotations(selectedAnnotation, pageCollections);\n return annotationCollection;\n };\n // eslint-disable-next-line\n Annotation.prototype.getPageShapeAnnotations = function (pageNumber) {\n // eslint-disable-next-line\n var pageCollections = [];\n // eslint-disable-next-line\n var inkObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_ink');\n if (inkObject) {\n var inkAnnotObject = JSON.parse(inkObject);\n if (inkAnnotObject) {\n var index = this.getPageCollection(inkAnnotObject, pageNumber);\n if (inkAnnotObject[index]) {\n // eslint-disable-next-line\n var inkAnnotations = inkAnnotObject[index].annotations;\n if (inkAnnotations && inkAnnotations.length > 0) {\n for (var i = 0; i < inkAnnotations.length; i++) {\n pageCollections.push(inkAnnotations[i]);\n }\n }\n }\n }\n }\n // eslint-disable-next-line\n var shapeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_shape');\n if (shapeObject) {\n var shapeAnnotObject = JSON.parse(shapeObject);\n if (shapeAnnotObject) {\n var index = this.getPageCollection(shapeAnnotObject, pageNumber);\n if (shapeAnnotObject[index]) {\n // eslint-disable-next-line\n var shapeAnnotations = shapeAnnotObject[index].annotations;\n if (shapeAnnotations && shapeAnnotations.length > 0) {\n for (var i = 0; i < shapeAnnotations.length; i++) {\n pageCollections.push(shapeAnnotations[i]);\n }\n }\n }\n }\n }\n // eslint-disable-next-line\n var measureObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_shape_measure');\n if (measureObject) {\n var measureAnnotationObject = JSON.parse(measureObject);\n if (measureAnnotationObject) {\n var index = this.getPageCollection(measureAnnotationObject, pageNumber);\n if (measureAnnotationObject[index]) {\n // eslint-disable-next-line\n var measureAnnotations = measureAnnotationObject[index].annotations;\n if (measureAnnotations && measureAnnotations.length > 0) {\n for (var i = 0; i < measureAnnotations.length; i++) {\n pageCollections.push(measureAnnotations[i]);\n }\n }\n }\n }\n }\n // eslint-disable-next-line\n var stampObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_stamp');\n if (stampObject) {\n var stampAnnotationObject = JSON.parse(stampObject);\n if (stampAnnotationObject) {\n var index = this.getPageCollection(stampAnnotationObject, pageNumber);\n if (stampAnnotationObject[index]) {\n // eslint-disable-next-line\n var stampAnnotations = stampAnnotationObject[index].annotations;\n if (stampAnnotations && stampAnnotations.length > 0) {\n for (var i = 0; i < stampAnnotations.length; i++) {\n pageCollections.push(stampAnnotations[i]);\n }\n }\n }\n }\n }\n // eslint-disable-next-line\n var freeTextObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_freetext');\n if (freeTextObject) {\n var freeTextAnnotationObject = JSON.parse(freeTextObject);\n if (freeTextAnnotationObject) {\n var index = this.getPageCollection(freeTextAnnotationObject, pageNumber);\n if (freeTextAnnotationObject[index]) {\n // eslint-disable-next-line\n var freeTextAnnotations = freeTextAnnotationObject[index].annotations;\n if (freeTextAnnotations && freeTextAnnotations.length > 0) {\n for (var i = 0; i < freeTextAnnotations.length; i++) {\n pageCollections.push(freeTextAnnotations[i]);\n }\n }\n }\n }\n }\n // eslint-disable-next-line\n var stickyObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_sticky');\n if (stickyObject) {\n var stickyNotesAnnotationObject = JSON.parse(stickyObject);\n if (stickyNotesAnnotationObject) {\n var index = this.getPageCollection(stickyNotesAnnotationObject, pageNumber);\n if (stickyNotesAnnotationObject[index]) {\n // eslint-disable-next-line\n var stickyNotesAnnotations = stickyNotesAnnotationObject[index].annotations;\n if (stickyNotesAnnotations && stickyNotesAnnotations.length > 0) {\n for (var i = 0; i < stickyNotesAnnotations.length; i++) {\n pageCollections.push(stickyNotesAnnotations[i]);\n }\n }\n }\n }\n }\n // eslint-disable-next-line\n var textMarkupObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_textMarkup');\n if (textMarkupObject) {\n var textMarkupAnnotationObject = JSON.parse(textMarkupObject);\n if (textMarkupAnnotationObject) {\n var index = this.getPageCollection(textMarkupAnnotationObject, pageNumber);\n if (textMarkupAnnotationObject[index]) {\n // eslint-disable-next-line\n var textMarkupAnnotations = textMarkupAnnotationObject[index].annotations;\n if (textMarkupAnnotations && textMarkupAnnotations.length > 0) {\n for (var i = 0; i < textMarkupAnnotations.length; i++) {\n pageCollections.push(textMarkupAnnotations[i]);\n }\n }\n }\n }\n }\n return pageCollections;\n };\n // eslint-disable-next-line\n Annotation.prototype.findOverlappedAnnotations = function (annotation, pageCollections) {\n this.overlappedAnnotations = [];\n if (annotation && annotation.bounds) {\n if (annotation.shapeAnnotationType === 'textMarkup') {\n for (var i = 0; i < annotation.bounds.length; i++) {\n // eslint-disable-next-line\n var bounds = this.orderTextMarkupBounds(annotation.bounds[i]);\n this.calculateOverlappedAnnotationBounds(annotation, bounds, pageCollections);\n }\n }\n else {\n this.calculateOverlappedAnnotationBounds(annotation, annotation.bounds, pageCollections);\n }\n }\n return this.overlappedAnnotations;\n };\n // eslint-disable-next-line\n Annotation.prototype.calculateOverlappedAnnotationBounds = function (annotation, bounds, pageCollections) {\n // eslint-disable-next-line\n var selectBounds = bounds;\n if (annotation.shapeAnnotationType === 'Ink') {\n selectBounds = { left: bounds.x, top: bounds.y, height: bounds.height, width: bounds.width };\n }\n // eslint-disable-next-line\n var left = parseInt(selectBounds.left);\n // eslint-disable-next-line\n var top = parseInt(selectBounds.top);\n // eslint-disable-next-line\n var totalHeight = parseInt(selectBounds.top + selectBounds.height);\n // eslint-disable-next-line\n var totalWidth = parseInt(selectBounds.left + selectBounds.width);\n for (var i = 0; i < pageCollections.length; i++) {\n if (annotation.annotName === pageCollections[i].annotName) {\n this.checkOverlappedCollections(pageCollections[i], this.overlappedAnnotations);\n }\n else {\n var boundsCount = 1;\n if (pageCollections[i].shapeAnnotationType === 'textMarkup') {\n boundsCount = pageCollections[i].bounds.length;\n }\n for (var j = 0; j < boundsCount; j++) {\n // eslint-disable-next-line\n var annotationBounds = void 0;\n // eslint-disable-next-line\n var annotationBoundsCollection = pageCollections[i].bounds;\n if (pageCollections[i].shapeAnnotationType === 'Ink') {\n // eslint-disable-next-line\n annotationBoundsCollection = { left: annotationBoundsCollection.x, top: annotationBoundsCollection.y, height: annotationBoundsCollection.height, width: annotationBoundsCollection.width };\n }\n if (pageCollections[i].shapeAnnotationType !== 'textMarkup' && boundsCount === 1) {\n annotationBounds = annotationBoundsCollection;\n }\n else {\n // eslint-disable-next-line\n annotationBounds = this.orderTextMarkupBounds(annotationBoundsCollection[j]);\n }\n if (annotationBounds) {\n var isOverlapped = false;\n // eslint-disable-next-line\n if (((left <= parseInt(annotationBounds.left)) && (totalWidth >= parseInt(annotationBounds.left))) || ((left <= parseInt(annotationBounds.left + annotationBounds.width)) && (totalWidth >= parseInt(annotationBounds.left + annotationBounds.width)))) {\n isOverlapped = true;\n }\n if (isOverlapped) {\n // eslint-disable-next-line\n if (((top <= parseInt(annotationBounds.top)) && (totalHeight >= parseInt(annotationBounds.top))) || ((top <= parseInt(annotationBounds.top + annotationBounds.height)) && (totalHeight >= parseInt(annotationBounds.top + annotationBounds.height)))) {\n isOverlapped = true;\n }\n else {\n isOverlapped = false;\n }\n }\n if (isOverlapped) {\n this.checkOverlappedCollections(pageCollections[i], this.overlappedAnnotations);\n }\n else {\n // eslint-disable-next-line\n if (((parseInt(annotationBounds.left) <= left) && (parseInt(annotationBounds.left + annotationBounds.width) >= left)) || ((totalWidth >= parseInt(annotationBounds.left)) && (totalWidth <= parseInt(annotationBounds.left + annotationBounds.width)))) {\n isOverlapped = true;\n }\n if (isOverlapped) {\n // eslint-disable-next-line\n if (((parseInt(annotationBounds.top) <= top) && parseInt(annotationBounds.top + annotationBounds.height) >= top) || ((totalHeight >= parseInt(annotationBounds.top)) && (totalHeight <= parseInt(annotationBounds.top + annotationBounds.height)))) {\n isOverlapped = true;\n }\n else {\n isOverlapped = false;\n }\n }\n if (isOverlapped) {\n this.checkOverlappedCollections(pageCollections[i], this.overlappedAnnotations);\n }\n else {\n // eslint-disable-next-line\n if (((left <= parseInt(annotationBounds.left)) && (totalWidth >= parseInt(annotationBounds.left))) || ((left <= parseInt(annotationBounds.left + annotationBounds.width)) && (totalWidth >= parseInt(annotationBounds.left + annotationBounds.width)))) {\n isOverlapped = true;\n }\n if (isOverlapped) {\n // eslint-disable-next-line\n if (((parseInt(annotationBounds.top) <= top) && parseInt(annotationBounds.top + annotationBounds.height) >= top) || ((totalHeight >= parseInt(annotationBounds.top)) && (totalHeight <= parseInt(annotationBounds.top + annotationBounds.height)))) {\n isOverlapped = true;\n }\n else {\n isOverlapped = false;\n }\n }\n if (isOverlapped) {\n this.checkOverlappedCollections(pageCollections[i], this.overlappedAnnotations);\n }\n else {\n // eslint-disable-next-line\n if (((parseInt(annotationBounds.left) <= left) && (parseInt(annotationBounds.left + annotationBounds.width) >= left)) || ((totalWidth >= parseInt(annotationBounds.left)) && (totalWidth <= parseInt(annotationBounds.left + annotationBounds.width)))) {\n isOverlapped = true;\n }\n if (isOverlapped) {\n // eslint-disable-next-line\n if (((top <= parseInt(annotationBounds.top)) && (totalHeight >= parseInt(annotationBounds.top))) || ((top <= parseInt(annotationBounds.top + annotationBounds.height)) && (totalHeight >= parseInt(annotationBounds.top + annotationBounds.height)))) {\n isOverlapped = true;\n }\n else {\n isOverlapped = false;\n }\n }\n if (isOverlapped) {\n this.checkOverlappedCollections(pageCollections[i], this.overlappedAnnotations);\n }\n }\n }\n }\n }\n }\n }\n }\n };\n /**\n * @param annotation\n * @param pageNumber\n * @param type\n * @param annotation\n * @param pageNumber\n * @param type\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.findAnnotationMode = function (annotation, pageNumber, type) {\n // eslint-disable-next-line\n var importCollection = this.pdfViewer.viewerBase.importedAnnotation[pageNumber];\n if (importCollection) {\n // eslint-disable-next-line\n var collection = void 0;\n if (type === 'shape') {\n collection = importCollection.shapeAnnotation;\n }\n else if (type === 'shape_measure') {\n collection = importCollection.measureShapeAnnotation;\n }\n else if (type === 'freeText') {\n collection = importCollection.freeTextAnnotation;\n }\n else if (type === 'stamp') {\n collection = importCollection.stampAnnotations;\n }\n else if (type === 'sticky') {\n collection = importCollection.stickyNotesAnnotation;\n }\n else if (type === 'textMarkup') {\n collection = importCollection.textMarkupAnnotation;\n }\n if (collection) {\n for (var i = 0; i < collection.length; i++) {\n if (collection[i].AnnotName === annotation.AnnotName) {\n return 'Imported Annotation';\n }\n }\n }\n }\n return 'Existing Annotation';\n };\n // eslint-disable-next-line\n Annotation.prototype.checkOverlappedCollections = function (annotation, overlappedCollections) {\n if (overlappedCollections.length > 0) {\n var isAdded = false;\n for (var i = 0; i < overlappedCollections.length; i++) {\n if (annotation.annotName === overlappedCollections[i].annotName && annotation.bounds === overlappedCollections[i].bounds) {\n isAdded = true;\n break;\n }\n }\n if (!isAdded) {\n overlappedCollections.push(annotation);\n }\n }\n else {\n overlappedCollections.push(annotation);\n }\n };\n // eslint-disable-next-line\n Annotation.prototype.orderTextMarkupBounds = function (bounds) {\n if (bounds.Left || bounds.Width) {\n return { left: bounds.Left, top: bounds.Top, height: bounds.Height, width: bounds.Width };\n }\n else {\n return { left: bounds.left, top: bounds.top, height: bounds.height, width: bounds.width };\n }\n };\n /**\n * @param annotation\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.updateModifiedDate = function (annotation) {\n if (annotation.modifiedDate) {\n annotation.modifiedDate = this.setAnnotationModifiedDate(annotation.modifiedDate);\n }\n if (annotation.comments && annotation.comments.length > 0) {\n for (var i = 0; i < annotation.comments.length; i++) {\n if (annotation.comments[i].modifiedDate) {\n annotation.comments[i].modifiedDate = this.setAnnotationModifiedDate(annotation.comments[i].modifiedDate);\n if (annotation.comments[i].review && annotation.comments[i].review.modifiedDate) {\n // eslint-disable-next-line max-len\n annotation.comments[i].review.modifiedDate = this.setAnnotationModifiedDate(annotation.comments[i].review.modifiedDate);\n }\n }\n }\n }\n if (annotation.review && annotation.review.modifiedDate) {\n annotation.review.modifiedDate = this.setAnnotationModifiedDate(annotation.review.modifiedDate);\n }\n };\n Annotation.prototype.setAnnotationModifiedDate = function (date) {\n var modifiedTime;\n var modifiedDateTime;\n if (date !== '') {\n // eslint-disable-next-line\n var time = parseInt(date.split(' ')[1].split(':')[0]);\n if (date.split(' ').length === 3) {\n // eslint-disable-next-line max-len\n modifiedTime = time + ':' + date.split(' ')[1].split(':')[1] + ':' + date.split(' ')[1].split(':')[2] + ' ' + date.split(' ')[2];\n }\n else {\n if (time >= 12) {\n if (time === 12) {\n modifiedTime = time + ':' + date.split(' ')[1].split(':')[1] + ':' + date.split(' ')[1].split(':')[2] + ' PM';\n }\n else {\n // eslint-disable-next-line max-len\n modifiedTime = (time - 12) + ':' + date.split(' ')[1].split(':')[1] + ':' + date.split(' ')[1].split(':')[2] + ' PM';\n }\n }\n else {\n modifiedTime = time + ':' + date.split(' ')[1].split(':')[1] + ':' + date.split(' ')[1].split(':')[2] + ' AM';\n }\n }\n // eslint-disable-next-line\n var dateString = date.split(' ')[0];\n // eslint-disable-next-line\n var dateStringSpilt = date.split(',');\n if (dateStringSpilt.length > 1) {\n modifiedDateTime = dateString + (' ') + modifiedTime;\n }\n else {\n modifiedDateTime = dateString + (', ') + modifiedTime;\n }\n }\n else {\n return date;\n }\n var modifiedDateToUTC = new Date(modifiedDateTime);\n modifiedDateTime = modifiedDateToUTC.toISOString();\n return modifiedDateTime;\n };\n /**\n * @private\n */\n Annotation.prototype.clear = function () {\n if (this.shapeAnnotationModule) {\n this.shapeAnnotationModule.shapeCount = 0;\n }\n if (this.measureAnnotationModule) {\n this.measureAnnotationModule.measureShapeCount = 0;\n }\n if (this.textMarkupAnnotationModule) {\n this.textMarkupAnnotationModule.clear();\n }\n if (this.stickyNotesAnnotationModule) {\n this.stickyNotesAnnotationModule.clear();\n }\n this.pdfViewer.refresh();\n this.undoCommentsElement = [];\n this.redoCommentsElement = [];\n this.overlappedAnnotations = [];\n this.previousIndex = null;\n // eslint-disable-next-line max-len\n if (this.pdfViewer.annotation && this.pdfViewer.annotation.stampAnnotationModule) {\n this.pdfViewer.annotation.stampAnnotationModule.stampPageNumber = [];\n }\n if (this.pdfViewer.annotation && this.pdfViewer.annotation.freeTextAnnotationModule) {\n this.pdfViewer.annotation.freeTextAnnotationModule.freeTextPageNumbers = [];\n this.freeTextAnnotationModule.previousText = 'Type Here';\n }\n if (this.pdfViewer.annotation && this.pdfViewer.annotation.inkAnnotationModule) {\n this.pdfViewer.annotation.inkAnnotationModule.inkAnnotationindex = [];\n }\n window.sessionStorage.removeItem(this.pdfViewerBase.documentId + '_annotations_shape');\n window.sessionStorage.removeItem(this.pdfViewerBase.documentId + '_annotations_shape_measure');\n window.sessionStorage.removeItem(this.pdfViewerBase.documentId + '_annotations_stamp');\n window.sessionStorage.removeItem(this.pdfViewerBase.documentId + '_annotations_sticky');\n };\n // eslint-disable-next-line\n Annotation.prototype.retrieveAnnotationCollection = function () {\n return this.pdfViewer.annotationCollection;\n };\n /**\n * @param interaction\n * @param annotation\n * @param interaction\n * @param annotation\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.checkAllowedInteractions = function (interaction, annotation) {\n // eslint-disable-next-line\n var annotationInteraction = this.updateAnnotationAllowedInteractions(annotation);\n if (annotationInteraction && annotationInteraction.length > 0) {\n for (var i = 0; i < annotationInteraction.length; i++) {\n if (interaction === 'Select') {\n // eslint-disable-next-line max-len\n if (annotationInteraction[i] === 'Move' || annotationInteraction[i] === 'Resize' || annotationInteraction[i] === 'Delete' || annotationInteraction[i] === 'PropertyChange' || annotationInteraction[i] === 'Select') {\n return true;\n }\n }\n else {\n if (annotationInteraction[i] === interaction) {\n return true;\n }\n }\n }\n }\n return false;\n };\n /**\n * @param menuObj\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.checkContextMenuDeleteItem = function (menuObj) {\n // eslint-disable-next-line\n var annotation = this.findCurrentAnnotation();\n if (annotation && annotation.annotationSettings) {\n // eslint-disable-next-line\n if (annotation.annotationSettings.isLock) {\n if (this.checkAllowedInteractions('Delete', annotation)) {\n menuObj.enableItems([this.pdfViewer.localeObj.getConstant('Delete Context')], true);\n }\n else {\n menuObj.enableItems([this.pdfViewer.localeObj.getConstant('Delete Context')], false);\n }\n }\n else {\n menuObj.enableItems([this.pdfViewer.localeObj.getConstant('Delete Context')], true);\n }\n }\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.isEnableDelete = function () {\n // eslint-disable-next-line\n var annotation = this.findCurrentAnnotation();\n if (annotation && annotation.annotationSettings) {\n // eslint-disable-next-line\n if (annotation.annotationSettings.isLock) {\n if (this.checkAllowedInteractions('Delete', annotation)) {\n return true;\n }\n else {\n return false;\n }\n }\n else {\n return true;\n }\n }\n return false;\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.findCurrentAnnotation = function () {\n if (this.textMarkupAnnotationModule && this.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n return this.textMarkupAnnotationModule.currentTextMarkupAnnotation;\n }\n if (this.pdfViewer.selectedItems.annotations && this.pdfViewer.selectedItems.annotations[0]) {\n return this.pdfViewer.selectedItems.annotations[0];\n }\n };\n /**\n * @param annotation\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.updateAnnotationAllowedInteractions = function (annotation) {\n // eslint-disable-next-line\n var annotationInteraction = ['None'];\n if (annotation) {\n if (annotation.shapeAnnotationType === 'FreeText' && this.pdfViewer.freeTextSettings.allowedInteractions) {\n // eslint-disable-next-line max-len\n annotationInteraction = this.checkAllowedInteractionSettings(this.pdfViewer.freeTextSettings.allowedInteractions, annotation.allowedInteractions);\n }\n else if (annotation.shapeAnnotationType === 'Ink' && this.pdfViewer.inkAnnotationSettings.allowedInteractions) {\n // eslint-disable-next-line max-len\n annotationInteraction = this.checkAllowedInteractionSettings(this.pdfViewer.inkAnnotationSettings.allowedInteractions, annotation.allowedInteractions);\n }\n else if (annotation.shapeAnnotationType === 'StickyNotes' && this.pdfViewer.stickyNotesSettings.allowedInteractions) {\n // eslint-disable-next-line max-len\n annotationInteraction = this.checkAllowedInteractionSettings(this.pdfViewer.stickyNotesSettings.allowedInteractions, annotation.allowedInteractions);\n }\n else if (annotation.shapeAnnotationType === 'Stamp' && this.pdfViewer.stampSettings.allowedInteractions) {\n // eslint-disable-next-line max-len\n annotationInteraction = this.checkAllowedInteractionSettings(this.pdfViewer.stampSettings.allowedInteractions, annotation.allowedInteractions);\n }\n else if (annotation.shapeAnnotationType === 'Image' && this.pdfViewer.customStampSettings.allowedInteractions) {\n // eslint-disable-next-line max-len\n annotationInteraction = this.checkAllowedInteractionSettings(this.pdfViewer.customStampSettings.allowedInteractions, annotation.allowedInteractions);\n }\n else if (annotation.shapeAnnotationType === 'textMarkup') {\n if (annotation.textMarkupAnnotationType === 'Highlight' && this.pdfViewer.highlightSettings.allowedInteractions) {\n // eslint-disable-next-line max-len\n annotationInteraction = this.checkAllowedInteractionSettings(this.pdfViewer.highlightSettings.allowedInteractions, annotation.allowedInteractions);\n }\n else if (annotation.textMarkupAnnotationType === 'Underline' && this.pdfViewer.underlineSettings.allowedInteractions) {\n // eslint-disable-next-line max-len\n annotationInteraction = this.checkAllowedInteractionSettings(this.pdfViewer.underlineSettings.allowedInteractions, annotation.allowedInteractions);\n }\n else if (annotation.textMarkupAnnotationType === 'Strikethrough' && this.pdfViewer.strikethroughSettings.allowedInteractions) {\n // eslint-disable-next-line max-len\n annotationInteraction = this.checkAllowedInteractionSettings(this.pdfViewer.strikethroughSettings.allowedInteractions, annotation.allowedInteractions);\n }\n }\n else {\n if (annotation.measureType !== '') {\n if (annotation.measureType === 'Distance' && this.pdfViewer.distanceSettings.allowedInteractions) {\n // eslint-disable-next-line max-len\n annotationInteraction = this.checkAllowedInteractionSettings(this.pdfViewer.distanceSettings.allowedInteractions, annotation.allowedInteractions);\n }\n else if (annotation.measureType === 'Perimeter' && this.pdfViewer.perimeterSettings.allowedInteractions) {\n // eslint-disable-next-line max-len\n annotationInteraction = this.checkAllowedInteractionSettings(this.pdfViewer.perimeterSettings.allowedInteractions, annotation.allowedInteractions);\n }\n else if (annotation.measureType === 'Radius' && this.pdfViewer.radiusSettings.allowedInteractions) {\n // eslint-disable-next-line max-len\n annotationInteraction = this.checkAllowedInteractionSettings(this.pdfViewer.radiusSettings.allowedInteractions, annotation.allowedInteractions);\n }\n else if (annotation.measureType === 'Area' && this.pdfViewer.areaSettings.allowedInteractions) {\n // eslint-disable-next-line max-len\n annotationInteraction = this.checkAllowedInteractionSettings(this.pdfViewer.areaSettings.allowedInteractions, annotation.allowedInteractions);\n }\n else if (annotation.measureType === 'Volume' && this.pdfViewer.volumeSettings.allowedInteractions) {\n // eslint-disable-next-line max-len\n annotationInteraction = this.checkAllowedInteractionSettings(this.pdfViewer.volumeSettings.allowedInteractions, annotation.allowedInteractions);\n }\n }\n else {\n if (annotation.shapeAnnotationType === 'Line' && this.pdfViewer.lineSettings.allowedInteractions) {\n // eslint-disable-next-line max-len\n annotationInteraction = this.checkAllowedInteractionSettings(this.pdfViewer.lineSettings.allowedInteractions, annotation.allowedInteractions);\n // eslint-disable-next-line max-len\n }\n else if ((annotation.shapeAnnotationType === 'Arrow' || annotation.shapeAnnotationType === 'LineWidthArrowHead') && this.pdfViewer.arrowSettings.allowedInteractions) {\n // eslint-disable-next-line max-len\n annotationInteraction = this.checkAllowedInteractionSettings(this.pdfViewer.arrowSettings.allowedInteractions, annotation.allowedInteractions);\n // eslint-disable-next-line max-len\n }\n else if ((annotation.shapeAnnotationType === 'Circle' || annotation.shapeAnnotationType === 'Ellipse' || annotation.shapeAnnotationType === 'Oval') && this.pdfViewer.circleSettings.allowedInteractions) {\n // eslint-disable-next-line max-len\n annotationInteraction = this.checkAllowedInteractionSettings(this.pdfViewer.circleSettings.allowedInteractions, annotation.allowedInteractions);\n }\n else if ((annotation.shapeAnnotationType === 'Rectangle' || annotation.shapeAnnotationType === 'Square') && this.pdfViewer.rectangleSettings.allowedInteractions) {\n // eslint-disable-next-line max-len\n annotationInteraction = this.checkAllowedInteractionSettings(this.pdfViewer.rectangleSettings.allowedInteractions, annotation.allowedInteractions);\n }\n else if (annotation.shapeAnnotationType === 'Polygon' && this.pdfViewer.polygonSettings.allowedInteractions) {\n // eslint-disable-next-line max-len\n annotationInteraction = this.checkAllowedInteractionSettings(this.pdfViewer.polygonSettings.allowedInteractions, annotation.allowedInteractions);\n }\n }\n }\n }\n return annotationInteraction;\n };\n /**\n * @param annotation\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.checkIsLockSettings = function (annotation) {\n // eslint-disable-next-line\n var isLocked = false;\n if (annotation) {\n if (annotation.shapeAnnotationType === 'FreeText') {\n isLocked = this.checkLockSettings(this.pdfViewer.freeTextSettings.isLock);\n }\n else if (annotation.shapeAnnotationType === 'Ink') {\n // eslint-disable-next-line max-len\n isLocked = this.checkLockSettings(this.pdfViewer.inkAnnotationSettings.isLock);\n }\n else if (annotation.shapeAnnotationType === 'StickyNotes') {\n isLocked = this.checkLockSettings(this.pdfViewer.stickyNotesSettings.isLock);\n }\n else if (annotation.shapeAnnotationType === 'Stamp') {\n isLocked = this.checkLockSettings(this.pdfViewer.stampSettings.isLock);\n }\n else if (annotation.shapeAnnotationType === 'Image') {\n isLocked = this.checkLockSettings(this.pdfViewer.customStampSettings.isLock);\n }\n else if (annotation.shapeAnnotationType === 'textMarkup') {\n if (annotation.textMarkupAnnotationType === 'Highlight') {\n // eslint-disable-next-line max-len\n isLocked = this.checkLockSettings(this.pdfViewer.highlightSettings.isLock);\n }\n else if (annotation.textMarkupAnnotationType === 'Underline') {\n // eslint-disable-next-line max-len\n isLocked = this.checkLockSettings(this.pdfViewer.underlineSettings.isLock);\n }\n else if (annotation.textMarkupAnnotationType === 'Strikethrough') {\n // eslint-disable-next-line max-len\n isLocked = this.checkLockSettings(this.pdfViewer.strikethroughSettings.isLock);\n }\n }\n else {\n if (annotation.measureType !== '') {\n if (annotation.measureType === 'Distance') {\n // eslint-disable-next-line max-len\n isLocked = this.checkLockSettings(this.pdfViewer.distanceSettings.isLock);\n }\n else if (annotation.measureType === 'Perimeter') {\n // eslint-disable-next-line max-len\n isLocked = this.checkLockSettings(this.pdfViewer.perimeterSettings.isLock);\n }\n else if (annotation.measureType === 'Radius') {\n // eslint-disable-next-line max-len\n isLocked = this.checkLockSettings(this.pdfViewer.radiusSettings.isLock);\n }\n else if (annotation.measureType === 'Area') {\n // eslint-disable-next-line max-len\n isLocked = this.checkLockSettings(this.pdfViewer.areaSettings.isLock);\n }\n else if (annotation.measureType === 'Volume') {\n // eslint-disable-next-line max-len\n isLocked = this.checkLockSettings(this.pdfViewer.volumeSettings.isLock);\n }\n }\n else {\n if (annotation.shapeAnnotationType === 'Line') {\n // eslint-disable-next-line max-len\n isLocked = this.checkLockSettings(this.pdfViewer.lineSettings.isLock);\n // eslint-disable-next-line max-len\n }\n else if ((annotation.shapeAnnotationType === 'Arrow' || annotation.shapeAnnotationType === 'LineWidthArrowHead')) {\n // eslint-disable-next-line max-len\n isLocked = this.checkLockSettings(this.pdfViewer.arrowSettings.isLock);\n // eslint-disable-next-line max-len\n }\n else if ((annotation.shapeAnnotationType === 'Circle' || annotation.shapeAnnotationType === 'Ellipse' || annotation.shapeAnnotationType === 'Oval')) {\n // eslint-disable-next-line max-len\n isLocked = this.checkLockSettings(this.pdfViewer.circleSettings.isLock);\n }\n else if ((annotation.shapeAnnotationType === 'Rectangle' || annotation.shapeAnnotationType === 'Square')) {\n // eslint-disable-next-line max-len\n isLocked = this.checkLockSettings(this.pdfViewer.rectangleSettings.isLock);\n }\n else if (annotation.shapeAnnotationType === 'Polygon') {\n // eslint-disable-next-line max-len\n isLocked = this.checkLockSettings(this.pdfViewer.polygonSettings.isLock);\n }\n }\n }\n }\n return isLocked;\n };\n // eslint-disable-next-line\n Annotation.prototype.checkLockSettings = function (locked) {\n var islock = false;\n if (locked || this.pdfViewer.annotationSettings.isLock) {\n islock = true;\n }\n return islock;\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.restrictContextMenu = function () {\n // eslint-disable-next-line\n var isRestrict = false;\n // eslint-disable-next-line\n var annotation = this.findCurrentAnnotation();\n if (annotation && this.checkIsLockSettings(annotation) && this.checkAllowedInteractions('Select', annotation)) {\n isRestrict = true;\n }\n return isRestrict;\n };\n // eslint-disable-next-line\n Annotation.prototype.checkAllowedInteractionSettings = function (annotationInteraction, annotationAllowedInteraction) {\n if (annotationAllowedInteraction) {\n if (annotationAllowedInteraction.length === 1) {\n if (annotationAllowedInteraction[0] !== 'None') {\n return annotationAllowedInteraction;\n }\n }\n else {\n return annotationAllowedInteraction;\n }\n }\n if (annotationInteraction) {\n if (annotationInteraction.length === 1) {\n if (annotationInteraction[0] !== 'None') {\n return annotationInteraction;\n }\n }\n else {\n return annotationInteraction;\n }\n }\n if (this.pdfViewer.annotationSettings.allowedInteractions) {\n return this.pdfViewer.annotationSettings.allowedInteractions;\n }\n return ['None'];\n };\n /**\n * @param value\n * @param type\n * @param value\n * @param type\n * @private\n */\n Annotation.prototype.getValue = function (value, type) {\n type = !type ? 'hex' : type.toLowerCase();\n if (value[0] === 'r') {\n var cValue = this.convertRgbToNumberArray(value);\n if (type === 'hex' || type === 'hexa') {\n var hex = this.rgbToHex(cValue);\n return type === 'hex' ? hex.slice(0, 7) : hex;\n }\n else {\n if (type === 'hsv') {\n return this.convertToHsvString(this.rgbToHsv.apply(this, cValue.slice(0, 3)));\n }\n else {\n if (type === 'hsva') {\n return this.convertToHsvString(this.rgbToHsv.apply(this, cValue));\n }\n else {\n return 'null';\n }\n }\n }\n }\n else {\n if (value[0] === 'h') {\n var cValue = this.hsvToRgb.apply(this, this.convertRgbToNumberArray(value));\n if (type === 'rgba') {\n return this.convertToRgbString(cValue);\n }\n else {\n if (type === 'hex' || type === 'hexa') {\n var hex = this.rgbToHex(cValue);\n return type === 'hex' ? hex.slice(0, 7) : hex;\n }\n else {\n if (type === 'rgb') {\n return this.convertToRgbString(cValue.slice(0, 3));\n }\n else {\n return 'null';\n }\n }\n }\n }\n else {\n value = this.roundValue(value);\n var rgb = this.hexToRgb(value);\n if (type === 'rgb' || type === 'hsv') {\n rgb = rgb.slice(0, 3);\n }\n if (type === 'rgba' || type === 'rgb') {\n return this.convertToRgbString(rgb);\n }\n else {\n if (type === 'hsva' || type === 'hsv') {\n return this.convertToHsvString(this.rgbToHsv.apply(this, rgb));\n }\n else {\n if (type === 'hex') {\n return value.slice(0, 7);\n }\n else {\n if (type === 'a') {\n return rgb[3].toString();\n }\n else {\n return 'null';\n }\n }\n }\n }\n }\n }\n };\n Annotation.prototype.convertRgbToNumberArray = function (value) {\n // eslint-disable-next-line max-len\n return (value.slice(value.indexOf('(') + 1, value.indexOf(')'))).split(',').map(function (n, i) {\n return (i !== 3) ? parseInt(n, 10) : parseFloat(n);\n });\n };\n Annotation.prototype.convertToRgbString = function (rgb) {\n return rgb.length ? rgb.length === 4 ? 'rgba(' + rgb.join() + ')' : 'rgb(' + rgb.join() + ')' : '';\n };\n Annotation.prototype.convertToHsvString = function (hsv) {\n return hsv.length === 4 ? 'hsva(' + hsv.join() + ')' : 'hsv(' + hsv.join() + ')';\n };\n Annotation.prototype.roundValue = function (value) {\n if (!value) {\n return '';\n }\n if (value[0] !== '#') {\n value = '#' + value;\n }\n var len = value.length;\n if (len === 4) {\n value += 'f';\n len = 5;\n }\n if (len === 5) {\n var tempValue = '';\n for (var i = 1, len_1 = value.length; i < len_1; i++) {\n tempValue += (value.charAt(i) + value.charAt(i));\n }\n value = '#' + tempValue;\n len = 9;\n }\n if (len === 7) {\n value += 'ff';\n }\n return value;\n };\n Annotation.prototype.hexToRgb = function (hex) {\n if (!hex) {\n return [];\n }\n hex = hex.trim();\n if (hex.length !== 9) {\n hex = this.roundValue(hex);\n }\n var opacity = Number((parseInt(hex.slice(-2), 16) / 255).toFixed(2));\n hex = hex.slice(1, 7);\n var bigInt = parseInt(hex, 16);\n var h = [];\n h.push((bigInt >> 16) & 255);\n h.push((bigInt >> 8) & 255);\n h.push(bigInt & 255);\n h.push(opacity);\n return h;\n };\n Annotation.prototype.rgbToHsv = function (r, g, b, opacity) {\n r /= 255;\n g /= 255;\n b /= 255;\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h;\n var s;\n var v = max;\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n if (max === min) {\n h = 0;\n }\n else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n var hsv = [Math.round(h * 360), Math.round(s * 1000) / 10, Math.round(v * 1000) / 10];\n if (!isNullOrUndefined(opacity)) {\n hsv.push(opacity);\n }\n return hsv;\n };\n Annotation.prototype.hsvToRgb = function (h, s, v, opacity) {\n var r;\n var g;\n var b;\n var i;\n var f;\n var p;\n var q;\n var t;\n s /= 100;\n v /= 100;\n if (s === 0) {\n r = g = b = v;\n return [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255), opacity];\n }\n h /= 60;\n i = Math.floor(h);\n f = h - i;\n p = v * (1 - s);\n q = v * (1 - s * f);\n t = v * (1 - s * (1 - f));\n switch (i) {\n case 0:\n r = v;\n g = t;\n b = p;\n break;\n case 1:\n r = q;\n g = v;\n b = p;\n break;\n case 2:\n r = p;\n g = v;\n b = t;\n break;\n case 3:\n r = p;\n g = q;\n b = v;\n break;\n case 4:\n r = t;\n g = p;\n b = v;\n break;\n default:\n r = v;\n g = p;\n b = q;\n }\n var rgb = [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255)];\n if (!isNullOrUndefined(opacity)) {\n rgb.push(opacity);\n }\n return rgb;\n };\n Annotation.prototype.rgbToHex = function (rgb) {\n // eslint-disable-next-line max-len\n return rgb.length ? ('#' + this.hex(rgb[0]) + this.hex(rgb[1]) + this.hex(rgb[2]) +\n (!isNullOrUndefined(rgb[3]) ? (rgb[3] !== 0 ? (Math.round(rgb[3] * 255) + 0x10000).toString(16).substr(-2) : '00') : '')) : '';\n };\n /**\n * @param dataFormat\n * @private\n */\n Annotation.prototype.exportAnnotationsAsStream = function (dataFormat) {\n var _this = this;\n if (this.pdfViewer.annotationModule) {\n var isAnnotations = this.pdfViewer.viewerBase.updateExportItem();\n if (isAnnotations) {\n return new Promise(function (resolve, reject) {\n _this.pdfViewer.viewerBase.createRequestForExportAnnotations(true, dataFormat, true).then(function (value) {\n resolve(value);\n });\n });\n }\n }\n return null;\n };\n Annotation.prototype.hex = function (x) {\n if (!isNullOrUndefined(x)) {\n return ('0' + x.toString(16)).slice(-2);\n }\n else {\n return '0';\n }\n };\n /**\n * @param obj\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.cloneObject = function (obj) {\n return JSON.parse(JSON.stringify(obj));\n };\n /**\n * @private\n */\n Annotation.prototype.destroy = function () {\n this.destroyPropertiesWindow();\n this.textMarkupAnnotationModule.clear();\n };\n /**\n * @private\n */\n Annotation.prototype.getModuleName = function () {\n return 'Annotation';\n };\n /**\n * Get vertex points properties\n * @private\n */\n Annotation.prototype.getVertexPointsXY = function (points) {\n var vertexPoints = [];\n //Converting points model into vertex property\n for (var j = 0; j < points.length; j++) {\n vertexPoints[j] = { X: points[j].x, Y: points[j].y };\n }\n return vertexPoints;\n };\n /**\n * Method used to add annotations using program.\n *\n * @param annotationType - It describes type of annotation object.\n * @param options - It describes about the annotation objects and it's property.\n * @param dynamicStampItem - It describe which type of dynamic stamp.\n * @param signStampItem - It describe which type of sign stamp.\n * @param standardBusinessStampItem - It describe which type of standard business stamp.\n * @returns void\n */\n Annotation.prototype.addAnnotation = function (annotationType, options, dynamicStampItem, signStampItem, standardBusinessStampItem) {\n //Initialize the bounds and pageNumber\n var offset = { x: 1, y: 1 };\n var pageNumber = 0;\n if (options) {\n if (options.pageNumber && options.pageNumber > 0)\n pageNumber = options.pageNumber ? options.pageNumber - 1 : 0;\n }\n //Initialize the pdf annotation object array\n var annotationObject = null;\n var pdfAnnotation = [];\n this.pdfViewer.annotation.triggerAnnotationUnselectEvent();\n //Seperate the annotation type with it's method\n if (annotationType == 'FreeText') {\n pdfAnnotation[pageNumber] = this.pdfViewer.annotation.freeTextAnnotationModule.updateAddAnnotationDetails(options, offset);\n this.pdfViewer.annotation.freeTextAnnotationModule.isAddAnnotationProgramatically = true;\n }\n else if (annotationType == 'StickyNotes') {\n pdfAnnotation[pageNumber] = this.pdfViewer.annotation.stickyNotesAnnotationModule.updateAddAnnotationDetails(options, offset);\n this.pdfViewer.annotation.stickyNotesAnnotationModule.isAddAnnotationProgramatically = true;\n }\n else if (annotationType == 'Highlight' || annotationType == 'Underline' || annotationType == 'Strikethrough') {\n if (annotationType == 'Highlight')\n annotationObject = options;\n else if (annotationType == 'Underline')\n annotationObject = options;\n else if (annotationType == 'Strikethrough')\n annotationObject = options;\n pdfAnnotation[pageNumber] = this.pdfViewer.annotation.textMarkupAnnotationModule.updateAddAnnotationDetails(annotationType, annotationObject);\n this.pdfViewer.annotation.textMarkupAnnotationModule.isAddAnnotationProgramatically = true;\n }\n else if (annotationType === 'Line' || annotationType === 'Arrow' || annotationType === 'Rectangle' || annotationType === 'Circle' || annotationType === 'Polygon') {\n if (annotationType == 'Line')\n annotationObject = options;\n else if (annotationType == 'Arrow')\n annotationObject = options;\n else if (annotationType == 'Rectangle')\n annotationObject = options;\n else if (annotationType == 'Circle')\n annotationObject = options;\n else if (annotationType == 'Polygon')\n annotationObject = options;\n pdfAnnotation[pageNumber] = this.pdfViewer.annotation.shapeAnnotationModule.updateAddAnnotationDetails(annotationType, annotationObject, offset);\n this.pdfViewer.annotation.shapeAnnotationModule.isAddAnnotationProgramatically = true;\n }\n else if (annotationType === 'Distance' || annotationType === 'Perimeter' || annotationType === 'Area' || annotationType === 'Radius' || annotationType === 'Volume') {\n if (annotationType == 'Distance')\n annotationObject = options;\n else if (annotationType == 'Perimeter')\n annotationObject = options;\n else if (annotationType == 'Area')\n annotationObject = options;\n else if (annotationType == 'Radius')\n annotationObject = options;\n else if (annotationType == 'Volume')\n annotationObject = options;\n pdfAnnotation[pageNumber] = this.pdfViewer.annotation.measureAnnotationModule.updateAddAnnotationDetails(annotationType, annotationObject, offset);\n this.pdfViewer.annotation.measureAnnotationModule.isAddAnnotationProgramatically = true;\n }\n else if (annotationType === 'Stamp') {\n if (options && options.customStamps) {\n pdfAnnotation[pageNumber] = this.pdfViewer.annotation.stampAnnotationModule.updateAddAnnotationDetails(options, offset, pageNumber, dynamicStampItem, signStampItem, standardBusinessStampItem);\n }\n else {\n pdfAnnotation[pageNumber] = this.pdfViewer.annotation.stampAnnotationModule.updateAddAnnotationDetails(options, offset, pageNumber, dynamicStampItem, signStampItem, standardBusinessStampItem);\n }\n this.pdfViewer.annotation.stampAnnotationModule.isAddAnnotationProgramatically = true;\n }\n else if (annotationType === 'Ink') {\n pdfAnnotation[pageNumber] = this.pdfViewer.annotation.inkAnnotationModule.updateAddAnnotationDetails(options, offset, pageNumber);\n this.pdfViewer.annotation.inkAnnotationModule.isAddAnnotationProgramatically = true;\n }\n //Annotation rendering can be done with the import annotation method.\n var pdf = { pdfAnnotation: pdfAnnotation };\n this.pdfViewerBase.isAddAnnotation = true;\n this.pdfViewerBase.importAnnotations(pdf);\n this.pdfViewerBase.isAddAnnotation = false;\n };\n /**\n * @param annotation\n * @private\n */\n Annotation.prototype.triggerAnnotationAddEvent = function (annotation) {\n var annotationType = annotation.shapeAnnotationType;\n if (annotationType === 'Stamp' || annotationType === 'Image' || annotationType === 'Path' || annotationType === 'FreeText' || annotationType === 'StickyNotes' || annotationType === 'Ink') {\n var settings = void 0;\n if (annotationType === 'FreeText') {\n settings = {\n opacity: annotation.opacity, borderColor: annotation.strokeColor, borderWidth: annotation.thickness, author: annotation.author, subject: annotation.subject, modifiedDate: annotation.modifiedDate,\n fillColor: annotation.fillColor, fontSize: annotation.fontSize, width: annotation.bounds.width, height: annotation.bounds.height, fontColor: annotation.fontColor, fontFamily: annotation.fontFamily, defaultText: annotation.dynamicText, fontStyle: annotation.font, textAlignment: annotation.textAlign\n };\n }\n else {\n settings = {\n opacity: annotation.opacity, fillColor: annotation.fillColor, strokeColor: annotation.strokeColor,\n thickness: annotation.thickness, author: annotation.author, subject: annotation.subject,\n modifiedDate: annotation.modifiedDate, data: annotation.data\n };\n }\n // eslint-disable-next-line\n var bounds = { left: annotation.bounds.x, top: annotation.bounds.y, width: annotation.bounds.width, height: annotation.bounds.height };\n var type = this.getAnnotationType(annotation.shapeAnnotationType, annotation.measureType);\n // eslint-disable-next-line max-len\n this.pdfViewer.fireAnnotationAdd(annotation.pageIndex, annotation.annotName, type, bounds, settings);\n }\n else if (annotationType === 'SignatureText' || annotationType === 'SignatureImage' || annotationType === 'HandWrittenSignature') {\n // eslint-disable-next-line\n var bounds = { left: annotation.bounds.x, top: annotation.bounds.y, width: annotation.bounds.width, height: annotation.bounds.height };\n // eslint-disable-next-line max-len\n this.pdfViewer.fireSignatureAdd(annotation.pageIndex, annotation.signatureName, annotation.shapeAnnotationType, bounds, annotation.opacity, annotation.strokeColor, annotation.thickness, annotation.data);\n }\n else {\n // eslint-disable-next-line\n var setting = {\n opacity: annotation.opacity, fillColor: annotation.fillColor, strokeColor: annotation.strokeColor,\n thickness: annotation.thickness, author: annotation.author, subject: annotation.subject,\n modifiedDate: annotation.modifiedDate\n };\n var bounds = { left: annotation.bounds.x, top: annotation.bounds.y, width: annotation.bounds.width, height: annotation.bounds.height };\n var type = this.getAnnotationType(annotation.shapeAnnotationType, annotation.measureType);\n if (type === 'Line' || type === 'Arrow' || type === 'Distance' || type === 'Perimeter') {\n setting.lineHeadStartStyle = this.getArrowString(annotation.sourceDecoraterShapes);\n setting.lineHeadEndStyle = this.getArrowString(annotation.taregetDecoraterShapes);\n setting.borderDashArray = annotation.borderDashArray;\n }\n var labelSettings = void 0;\n if (this.pdfViewer.enableShapeLabel) {\n labelSettings = {\n // eslint-disable-next-line max-len\n fontColor: annotation.fontColor, fontSize: annotation.fontSize, fontFamily: annotation.fontFamily,\n opacity: annotation.labelOpacity, labelContent: annotation.labelContent, fillColor: annotation.labelFillColor\n };\n // eslint-disable-next-line max-len\n this.pdfViewer.fireAnnotationAdd(annotation.pageIndex, annotation.annotName, type, bounds, setting, null, null, null, labelSettings);\n }\n else {\n // eslint-disable-next-line max-len\n this.pdfViewer.fireAnnotationAdd(annotation.pageIndex, annotation.annotName, type, bounds, setting);\n }\n }\n };\n /**\n * @private\n */\n Annotation.prototype.triggerAnnotationUnselectEvent = function () {\n if (this.pdfViewer.selectedItems.annotations && this.pdfViewer.selectedItems.annotations[0]) {\n var annotation = this.pdfViewer.selectedItems.annotations[0];\n if (annotation.shapeAnnotationType !== 'HandWrittenSignature' && annotation.shapeAnnotationType !== 'SignatureText' && annotation.shapeAnnotationType !== 'SignatureImage' && annotation.shapeAnnotationType !== 'Path') {\n this.pdfViewer.fireAnnotationUnSelect(annotation.annotName, annotation.pageIndex, annotation);\n this.pdfViewer.clearSelection(annotation.pageIndex);\n }\n }\n };\n /**\n * @private\n */\n Annotation.prototype.updateFontFamilyRenderSize = function (currentAnnotation, currentValue) {\n var freeTextAnnotation = this.freeTextAnnotationModule;\n freeTextAnnotation.inputBoxElement.style.fontFamily = currentValue;\n freeTextAnnotation.autoFitFreeText();\n var zoomFactor = this.pdfViewerBase.getZoomFactor();\n var padding = parseFloat(freeTextAnnotation.inputBoxElement.style.paddingLeft);\n var inputEleHeight = currentAnnotation.bounds.height * zoomFactor;\n var characterLength = 8;\n var inputEleWidth = parseFloat(freeTextAnnotation.inputBoxElement.style.width) - characterLength;\n inputEleWidth = ((inputEleWidth) / zoomFactor);\n inputEleHeight = ((inputEleHeight) / zoomFactor);\n var heightDiff = (inputEleHeight - currentAnnotation.bounds.height);\n var y = undefined;\n if (heightDiff > 0) {\n y = currentAnnotation.wrapper.offsetY + (heightDiff / 2);\n y = y > 0 ? y : undefined;\n }\n else {\n heightDiff = Math.abs(heightDiff);\n y = currentAnnotation.wrapper.offsetY - (heightDiff / 2);\n y = y > 0 ? y : undefined;\n }\n var widthDiff = (inputEleWidth - currentAnnotation.bounds.width);\n var x = undefined;\n if (widthDiff > 0) {\n x = currentAnnotation.wrapper.offsetX + (widthDiff / 2);\n x = x > 0 ? x : undefined;\n }\n else {\n widthDiff = Math.abs(widthDiff);\n x = currentAnnotation.wrapper.offsetX - (widthDiff / 2);\n }\n currentAnnotation.bounds.width = inputEleWidth;\n currentAnnotation.bounds.height = inputEleHeight;\n this.pdfViewer.nodePropertyChange(currentAnnotation, { fontFamily: currentValue, bounds: { width: currentAnnotation.bounds.width, height: currentAnnotation.bounds.height, y: y, x: x } });\n this.pdfViewer.renderSelector(currentAnnotation.pageIndex, this.pdfViewer.annotationSelectorSettings);\n this.modifyInCollections(currentAnnotation, 'bounds');\n };\n Annotation.prototype.updateCanvas = function (canvas, pageWidth, pageHeight, pageNumber) {\n var ratio = this.pdfViewerBase.getZoomRatio();\n canvas.width = pageWidth * ratio;\n canvas.height = pageHeight * ratio;\n canvas.style.width = pageWidth + 'px';\n canvas.style.height = pageHeight + 'px';\n canvas.style.position = 'absolute';\n canvas.style.zIndex = '1';\n this.pdfViewerBase.applyElementStyles(canvas, pageNumber);\n };\n return Annotation;\n}());\nexport { Annotation };\n","/* eslint-disable */\nimport { AjaxHandler } from '../index';\nimport { createElement } from '@syncfusion/ej2-base';\n/**\n * The `ThumbnailView` module is used to handle thumbnail view navigation of PDF viewer.\n */\nvar ThumbnailView = /** @class */ (function () {\n /**\n * @param pdfViewer\n * @param pdfViewerBase\n * @param pdfViewer\n * @param pdfViewerBase\n * @private\n */\n function ThumbnailView(pdfViewer, pdfViewerBase) {\n var _this = this;\n this.thumbnailLimit = 30;\n this.thumbnailThreshold = 50;\n this.thumbnailTopMargin = 10;\n /**\n * @private\n */\n this.isThumbnailClicked = false;\n /**\n * @param event\n * @private\n */\n this.thumbnailClick = function (event) {\n var proxy = _this;\n var pageNumber = proxy.getPageNumberFromID(event.srcElement.id);\n if (proxy.previousElement) {\n proxy.previousElement.classList.remove('e-pv-thumbnail-selection');\n proxy.previousElement.classList.remove('e-pv-thumbnail-focus');\n proxy.previousElement.classList.add('e-pv-thumbnail-selection-ring');\n }\n if (event.srcElement.parentElement.id === proxy.pdfViewer.element.id + '_thumbnail_Selection_Ring_' + pageNumber) {\n proxy.setSelectionStyle(event.srcElement.parentElement);\n proxy.previousElement = event.srcElement.parentElement;\n }\n else if (event.srcElement.id === proxy.pdfViewer.element.id + '_thumbnail_Selection_Ring_' + pageNumber) {\n proxy.setSelectionStyle(event.srcElement);\n proxy.previousElement = event.srcElement;\n }\n proxy.pdfViewer.fireThumbnailClick(pageNumber + 1);\n proxy.isThumbnailClicked = true;\n proxy.goToThumbnailPage(pageNumber + 1);\n proxy.pdfViewerBase.focusViewerContainer();\n if (_this.pdfViewer.annotationModule && _this.pdfViewer.annotationModule.inkAnnotationModule) {\n // eslint-disable-next-line\n var currentPageNumber = parseInt(_this.pdfViewer.annotationModule.inkAnnotationModule.currentPageNumber);\n _this.pdfViewer.annotationModule.inkAnnotationModule.drawInkAnnotation(currentPageNumber);\n }\n };\n /**\n * @param event\n * @private\n */\n this.thumbnailMouseOver = function (event) {\n var proxy = _this;\n var pageNumber = proxy.getPageNumberFromID(event.srcElement.id);\n if (event.srcElement.id === proxy.pdfViewer.element.id + '_thumbnail_Selection_Ring_' + pageNumber) {\n proxy.setMouseOverStyle(event.srcElement);\n }\n else if (event.srcElement.id === proxy.pdfViewer.element.id + '_thumbnail_image_' + pageNumber) {\n proxy.setMouseOverStyle(event.srcElement.parentElement);\n }\n };\n /**\n * @param event\n * @private\n */\n this.thumbnailMouseLeave = function (event) {\n var proxy = _this;\n var pageNumber = proxy.getPageNumberFromID(event.srcElement.id);\n if (event.srcElement.parentElement.id === proxy.pdfViewer.element.id + '_thumbnail_view') {\n proxy.setMouseLeaveStyle(event.srcElement.children[0].children[0]);\n }\n else if (event.srcElement.parentElement.id === proxy.pdfViewer.element.id + '_thumbnail_' + pageNumber) {\n proxy.setMouseLeaveStyle(event.srcElement.parentElement.children[0]);\n }\n };\n this.pdfViewer = pdfViewer;\n this.pdfViewerBase = pdfViewerBase;\n }\n /**\n * @private\n */\n ThumbnailView.prototype.createThumbnailContainer = function () {\n // eslint-disable-next-line max-len\n this.thumbnailView = createElement('div', { id: this.pdfViewer.element.id + '_thumbnail_view', className: 'e-pv-thumbnail-view e-pv-thumbnail-row' });\n this.pdfViewerBase.navigationPane.sideBarContent.appendChild(this.thumbnailView);\n };\n /**\n * Open the thumbnail pane of the PdfViewer.\n *\n * @returns void\n */\n ThumbnailView.prototype.openThumbnailPane = function () {\n if (this.pdfViewerBase.navigationPane) {\n this.pdfViewerBase.navigationPane.openThumbnailPane();\n }\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n ThumbnailView.prototype.createRequestForThumbnails = function () {\n var proxy = this;\n // eslint-disable-next-line\n var isIE = !!document.documentMode;\n if (!isIE) {\n // eslint-disable-next-line\n return new Promise(\n // eslint-disable-next-line\n function (renderThumbnailImage, reject) {\n proxy.requestCreation(proxy);\n });\n }\n else {\n this.requestCreation(proxy);\n return null;\n }\n };\n ThumbnailView.prototype.requestCreation = function (proxy) {\n // Removed the condition to skip multiple request for thumbnail image.\n proxy.startIndex = proxy.thumbnailLimit;\n // eslint-disable-next-line max-len\n proxy.thumbnailLimit = proxy.startIndex + proxy.thumbnailThreshold < proxy.pdfViewer.pageCount ? proxy.startIndex + proxy.thumbnailThreshold : proxy.pdfViewer.pageCount;\n var digitalSignaturePresent = false;\n for (var i = proxy.startIndex; i < proxy.thumbnailLimit; i++) {\n if (proxy.pdfViewerBase.digitalSignaturePresent(i)) {\n digitalSignaturePresent = true;\n }\n }\n var digitalSignatureList = \"\";\n if (digitalSignaturePresent) {\n digitalSignatureList = proxy.pdfViewerBase.digitalSignaturePages.toString();\n }\n // eslint-disable-next-line max-len\n var jsonObject = { startPage: proxy.startIndex.toString(), endPage: proxy.thumbnailLimit.toString(), sizeX: \"99.7\", sizeY: \"141\", hashId: proxy.pdfViewerBase.hashId, action: 'RenderThumbnailImages', elementId: proxy.pdfViewer.element.id, uniqueId: proxy.pdfViewerBase.documentId, digitalSignaturePresent: digitalSignaturePresent, digitalSignaturePageList: digitalSignatureList };\n if (this.pdfViewerBase.jsonDocumentId) {\n // eslint-disable-next-line\n jsonObject.documentId = this.pdfViewerBase.jsonDocumentId;\n }\n this.thumbnailRequestHandler = new AjaxHandler(this.pdfViewer);\n this.thumbnailRequestHandler.url = proxy.pdfViewer.serviceUrl + '/' + proxy.pdfViewer.serverActionSettings.renderThumbnail;\n this.thumbnailRequestHandler.responseType = 'json';\n this.thumbnailRequestHandler.send(jsonObject);\n // eslint-disable-next-line\n this.thumbnailRequestHandler.onSuccess = function (result) {\n // eslint-disable-next-line\n var data = result.data;\n var redirect = proxy.pdfViewerBase.checkRedirection(data);\n if (!redirect) {\n if (data) {\n if (typeof data !== 'object') {\n try {\n data = JSON.parse(data);\n }\n catch (error) {\n proxy.pdfViewerBase.onControlError(500, data, proxy.pdfViewer.serverActionSettings.renderThumbnail);\n data = null;\n }\n }\n if (data && data.uniqueId === proxy.pdfViewerBase.documentId) {\n proxy.pdfViewer.fireAjaxRequestSuccess(proxy.pdfViewer.serverActionSettings.renderThumbnail, data);\n proxy.renderThumbnailImage(data);\n if (proxy.pdfViewer.isThumbnailViewOpen) {\n proxy.pdfViewerBase.navigationPane.isThumbnailOpen = true;\n // eslint-disable-next-line max-len\n proxy.pdfViewerBase.navigationPane.sideBarTitle.textContent = proxy.pdfViewer.localeObj.getConstant('Page Thumbnails');\n document.getElementById(proxy.pdfViewer.element.id + '_thumbnail_view').style.display = 'flex';\n var bookmarkContent = proxy.pdfViewer.element.querySelector('.e-pv-bookmark-view');\n if (bookmarkContent) {\n bookmarkContent.style.display = 'none';\n }\n proxy.pdfViewerBase.navigationPane.setThumbnailSelectionIconTheme();\n proxy.pdfViewerBase.navigationPane.updateViewerContainerOnExpand();\n proxy.pdfViewerBase.navigationPane.isBookmarkOpen = false;\n }\n }\n }\n }\n };\n // eslint-disable-next-line\n this.thumbnailRequestHandler.onFailure = function (result) {\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText, proxy.pdfViewer.serverActionSettings.renderThumbnail);\n };\n // eslint-disable-next-line\n this.thumbnailRequestHandler.onError = function (result) {\n proxy.pdfViewerBase.openNotificationPopup();\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText, proxy.pdfViewer.serverActionSettings.renderThumbnail);\n };\n };\n /**\n * @param pageNumber\n * @private\n */\n ThumbnailView.prototype.gotoThumbnailImage = function (pageNumber) {\n var shouldScroll = this.checkThumbnailScroll(pageNumber);\n if (this.thumbnailView) {\n var thumbnailChild = this.thumbnailView.children[pageNumber];\n if (thumbnailChild) {\n var thumbnailDiv = thumbnailChild.children[0];\n if (shouldScroll) {\n var offsetTop = thumbnailDiv.offsetTop + thumbnailDiv.clientTop - this.thumbnailTopMargin;\n this.pdfViewerBase.navigationPane.sideBarContent.scrollTop = offsetTop;\n }\n if (!this.isThumbnailClicked) {\n if (this.previousElement) {\n this.previousElement.classList.remove('e-pv-thumbnail-selection');\n this.previousElement.classList.remove('e-pv-thumbnail-focus');\n this.previousElement.classList.remove('e-pv-thumbnail-hover');\n this.previousElement.classList.add('e-pv-thumbnail-selection-ring');\n }\n this.setFocusStyle(thumbnailDiv, pageNumber);\n }\n this.previousElement = thumbnailDiv.children[0];\n }\n }\n };\n ThumbnailView.prototype.checkThumbnailScroll = function (pageNumber) {\n var shouldScroll = false;\n if (this.thumbnailView) {\n var visibleThumbs = this.getVisibleThumbs();\n var numVisibleThumbs = visibleThumbs.views.length;\n // if the thumbnail isn't currently visible, scroll it into view.\n if (numVisibleThumbs > 0) {\n var visibleFirstPageID = this.getPageNumberFromID(visibleThumbs.first.id);\n // account for only one thumbnail being visible.\n // eslint-disable-next-line max-len\n var visibleLastPageID = (numVisibleThumbs > 1 ? this.getPageNumberFromID(visibleThumbs.last.id) : visibleFirstPageID);\n if (pageNumber <= visibleFirstPageID || pageNumber >= visibleLastPageID) {\n shouldScroll = true;\n }\n else {\n // eslint-disable-next-line\n visibleThumbs.views.some(function (view) {\n var pageID = view.id.split('_');\n var thumbPageNumber = pageID[pageID.length - 1];\n // eslint-disable-next-line radix\n if (parseInt(thumbPageNumber) !== pageNumber) {\n return false;\n }\n shouldScroll = view.percent < 100;\n return true;\n });\n }\n }\n }\n return shouldScroll;\n };\n ThumbnailView.prototype.getPageNumberFromID = function (pageId) {\n var pageID = pageId.split('_');\n var pageNumber = pageID[pageID.length - 1];\n // eslint-disable-next-line radix\n return parseInt(pageNumber);\n };\n ThumbnailView.prototype.setFocusStyle = function (thumbnail, pageNumber) {\n if (thumbnail.children[0].id === this.pdfViewer.element.id + '_thumbnail_Selection_Ring_' + pageNumber) {\n this.setMouseFocusStyle(thumbnail.children[0]);\n }\n };\n // eslint-disable-next-line\n ThumbnailView.prototype.renderThumbnailImage = function (data) {\n if (this.thumbnailView) {\n var startPage = (data && isNaN(data.startPage)) ? data.startPage : this.startIndex;\n var endPage = (data && isNaN(data.endPage)) ? data.endPage : this.thumbnailLimit;\n for (var i = startPage; i < endPage; i++) {\n // eslint-disable-next-line max-len\n var pageLink = createElement('a', { id: 'page_' + i, attrs: { 'aria-label': 'Thumbnail of Page' + (i + 1), 'tabindex': '-1', 'role': 'link' }, className: 'e-pv-thumbnail-anchor-node' });\n // eslint-disable-next-line max-len\n var thumbnail = createElement('div', { id: this.pdfViewer.element.id + '_thumbnail_' + i, className: 'e-pv-thumbnail e-pv-thumbnail-column' });\n // eslint-disable-next-line max-len\n this.thumbnailSelectionRing = createElement('div', { id: this.pdfViewer.element.id + '_thumbnail_Selection_Ring_' + i, className: 'e-pv-thumbnail-selection-ring' });\n thumbnail.appendChild(this.thumbnailSelectionRing);\n // eslint-disable-next-line max-len\n var thumbnailPageNumber = createElement('div', { id: this.pdfViewer.element.id + '_thumbnail_pagenumber_' + i, className: 'e-pv-thumbnail-number' });\n thumbnailPageNumber.textContent = (i + 1).toString();\n thumbnail.appendChild(thumbnailPageNumber);\n // eslint-disable-next-line max-len\n this.thumbnailImage = createElement('img', { id: this.pdfViewer.element.id + '_thumbnail_image_' + i, className: 'e-pv-thumbnail-image' });\n this.thumbnailImage.src = data.thumbnailImage[i];\n this.thumbnailImage.alt = this.pdfViewer.element.id + '_thumbnail_page_' + i;\n if (this.pdfViewerBase.pageSize[i] && (this.pdfViewerBase.pageSize[i].height < this.pdfViewerBase.pageSize[i].width)) {\n this.thumbnailImage.style.height = '86px';\n this.thumbnailImage.style.width = '126px';\n thumbnail.style.height = '100px';\n thumbnail.style.width = '140px';\n pageLink.style.left = '-25px';\n pageLink.style.position = 'relative';\n thumbnailPageNumber.style.left = '18px';\n thumbnailPageNumber.style.position = 'relative';\n }\n this.thumbnailSelectionRing.appendChild(this.thumbnailImage);\n pageLink.appendChild(thumbnail);\n this.thumbnailView.appendChild(pageLink);\n this.wireUpEvents();\n if (i === 0) {\n this.setMouseFocusToFirstPage();\n }\n }\n }\n this.pdfViewerBase.navigationPane.enableThumbnailButton();\n if (this.thumbnailLimit !== this.pdfViewerBase.pageCount && this.thumbnailView) {\n // eslint-disable-next-line\n var isIE = !!document.documentMode;\n if (!isIE) {\n Promise.all([this.createRequestForThumbnails()]);\n }\n else {\n this.createRequestForThumbnails();\n }\n }\n };\n ThumbnailView.prototype.wireUpEvents = function () {\n if (this.thumbnailSelectionRing) {\n this.thumbnailSelectionRing.addEventListener('click', this.thumbnailClick);\n this.thumbnailSelectionRing.addEventListener('mouseover', this.thumbnailMouseOver);\n this.thumbnailSelectionRing.addEventListener('mouseleave', this.thumbnailMouseLeave);\n }\n };\n ThumbnailView.prototype.unwireUpEvents = function () {\n if (this.thumbnailSelectionRing && this.thumbnailImage) {\n this.thumbnailSelectionRing.removeEventListener('click', this.thumbnailClick);\n this.thumbnailSelectionRing.removeEventListener('mouseover', this.thumbnailMouseOver);\n this.thumbnailSelectionRing.removeEventListener('mouseleave', this.thumbnailMouseLeave);\n }\n };\n ThumbnailView.prototype.goToThumbnailPage = function (pageNumber) {\n if (pageNumber > 0 && pageNumber <= this.pdfViewerBase.pageCount && this.pdfViewerBase.currentPageNumber !== pageNumber) {\n this.pdfViewerBase.updateScrollTop(pageNumber - 1);\n }\n else {\n this.isThumbnailClicked = false;\n }\n };\n ThumbnailView.prototype.setSelectionStyle = function (thumbnailElement) {\n thumbnailElement.classList.remove('e-pv-thumbnail-selection-ring');\n thumbnailElement.classList.remove('e-pv-thumbnail-hover');\n thumbnailElement.classList.remove('e-pv-thumbnail-focus');\n thumbnailElement.classList.add('e-pv-thumbnail-selection');\n };\n ThumbnailView.prototype.setMouseOverStyle = function (thumbnailElement) {\n // eslint-disable-next-line max-len\n if (!thumbnailElement.classList.contains('e-pv-thumbnail-selection')) {\n thumbnailElement.classList.remove('e-pv-thumbnail-selection-ring');\n if (!thumbnailElement.classList.contains('e-pv-thumbnail-focus')) {\n thumbnailElement.classList.add('e-pv-thumbnail-hover');\n }\n }\n };\n ThumbnailView.prototype.setMouseLeaveStyle = function (thumbnailElement) {\n if (!thumbnailElement.classList.contains('e-pv-thumbnail-selection')) {\n if (!thumbnailElement.classList.contains('e-pv-thumbnail-focus')) {\n thumbnailElement.classList.add('e-pv-thumbnail-selection-ring');\n }\n thumbnailElement.classList.remove('e-pv-thumbnail-hover');\n }\n else {\n if (!thumbnailElement.classList.contains('e-pv-thumbnail-selection')) {\n thumbnailElement.classList.remove('e-pv-thumbnail-selection');\n thumbnailElement.classList.add('e-pv-thumbnail-focus');\n }\n }\n };\n ThumbnailView.prototype.setMouseFocusStyle = function (thumbnailElement) {\n thumbnailElement.classList.remove('e-pv-thumbnail-selection');\n thumbnailElement.classList.remove('e-pv-thumbnail-hover');\n thumbnailElement.classList.add('e-pv-thumbnail-focus');\n };\n ThumbnailView.prototype.setMouseFocusToFirstPage = function () {\n var thumbnailChild = this.thumbnailView.children[0];\n if (thumbnailChild) {\n var thumbnailDiv = thumbnailChild.children[0].children[0];\n this.setMouseFocusStyle(thumbnailDiv);\n this.previousElement = thumbnailDiv;\n }\n };\n /**\n * @private\n */\n ThumbnailView.prototype.clear = function () {\n this.startIndex = 0;\n this.thumbnailLimit = 0;\n if (this.pdfViewerBase.navigationPane) {\n if (this.pdfViewerBase.navigationPane.sideBarContentContainer) {\n this.pdfViewerBase.navigationPane.sideBarContentContainer.style.display = 'block';\n this.pdfViewerBase.navigationPane.sideBarContent.scrollTop = 0;\n this.pdfViewerBase.navigationPane.sideBarContentContainer.style.display = 'none';\n }\n }\n if (this.thumbnailView) {\n while (this.thumbnailView.hasChildNodes()) {\n this.thumbnailView.removeChild(this.thumbnailView.lastChild);\n }\n }\n if (this.pdfViewerBase.navigationPane) {\n this.pdfViewerBase.navigationPane.resetThumbnailView();\n }\n if (this.thumbnailRequestHandler) {\n this.thumbnailRequestHandler.clear();\n }\n this.unwireUpEvents();\n };\n ThumbnailView.prototype.getVisibleThumbs = function () {\n return this.getVisibleElements(this.pdfViewerBase.navigationPane.sideBarContent, this.thumbnailView.children);\n };\n ThumbnailView.prototype.getVisibleElements = function (scrollElement, thumbnailViewChildren) {\n var top = scrollElement.scrollTop;\n var bottom = top + scrollElement.clientHeight;\n var left = scrollElement.scrollLeft;\n var right = left + scrollElement.clientWidth;\n /**\n * @param thumbnailViewChildrenElement\n */\n function isThumbnailElementBottomAfterViewTop(thumbnailViewChildrenElement) {\n var elementBottom = thumbnailViewChildrenElement.offsetTop + thumbnailViewChildrenElement.clientTop + thumbnailViewChildrenElement.clientHeight;\n return elementBottom > top;\n }\n // eslint-disable-next-line\n var visible = [];\n var thumbnailView;\n var element;\n var currentHeight;\n var viewHeight;\n var viewBottom;\n var hiddenHeight;\n var currentWidth;\n var viewWidth;\n var viewRight;\n var hiddenWidth;\n var percentVisible;\n var firstVisibleElementInd = thumbnailViewChildren.length === 0 ? 0 :\n this.binarySearchFirstItem(thumbnailViewChildren, isThumbnailElementBottomAfterViewTop);\n if (thumbnailViewChildren.length > 0) {\n firstVisibleElementInd =\n this.backtrackBeforeAllVisibleElements(firstVisibleElementInd, thumbnailViewChildren, top);\n }\n var lastEdge = -1;\n for (var i = firstVisibleElementInd, ii = thumbnailViewChildren.length; i < ii; i++) {\n thumbnailView = this.getThumbnailElement(i);\n element = thumbnailView;\n currentWidth = element.offsetLeft + element.clientLeft;\n currentHeight = element.offsetTop + element.clientTop;\n viewWidth = element.clientWidth;\n viewHeight = element.clientHeight;\n viewRight = currentWidth + viewWidth;\n viewBottom = currentHeight + viewHeight;\n if (lastEdge === -1) {\n if (viewBottom >= bottom) {\n lastEdge = viewBottom;\n }\n }\n else if (currentHeight > lastEdge) {\n break;\n }\n if (viewBottom <= top || currentHeight >= bottom ||\n viewRight <= left || currentWidth >= right) {\n continue;\n }\n hiddenHeight = Math.max(0, top - currentHeight) +\n Math.max(0, viewBottom - bottom);\n hiddenWidth = Math.max(0, left - currentWidth) +\n Math.max(0, viewRight - right);\n // eslint-disable-next-line no-bitwise\n percentVisible = ((viewHeight - hiddenHeight) * (viewWidth - hiddenWidth) * 100 / viewHeight / viewWidth) | 0;\n visible.push({\n id: thumbnailView.id,\n x: currentWidth,\n y: currentHeight,\n view: thumbnailView,\n percent: percentVisible\n });\n }\n var first = visible[0];\n var last = visible[visible.length - 1];\n return { first: first, last: last, views: visible };\n };\n // eslint-disable-next-line\n ThumbnailView.prototype.binarySearchFirstItem = function (items, condition) {\n var minIndex = 0;\n var maxIndex = items.length - 1;\n if (items.length === 0 || !condition(this.getThumbnailElement(maxIndex))) {\n return items.length - 1;\n }\n if (condition(this.getThumbnailElement(minIndex))) {\n return minIndex;\n }\n while (minIndex < maxIndex) {\n // eslint-disable-next-line no-bitwise\n var currentIndex = (minIndex + maxIndex) >> 1;\n if (condition(this.getThumbnailElement(currentIndex))) {\n maxIndex = currentIndex;\n }\n else {\n minIndex = currentIndex + 1;\n }\n }\n return minIndex; /* === maxIndex */\n };\n ThumbnailView.prototype.backtrackBeforeAllVisibleElements = function (index, views, top) {\n if (index < 2) {\n return index;\n }\n var thumbnailElement = this.getThumbnailElement(index);\n var pageTop = thumbnailElement.offsetTop + thumbnailElement.clientTop;\n if (pageTop >= top) {\n thumbnailElement = this.getThumbnailElement(index - 1);\n pageTop = thumbnailElement.offsetTop + thumbnailElement.clientTop;\n }\n for (var i = index - 2; i >= 0; --i) {\n thumbnailElement = this.getThumbnailElement(i);\n if (thumbnailElement.offsetTop + thumbnailElement.clientTop + thumbnailElement.clientHeight <= pageTop) {\n break;\n }\n index = i;\n }\n return index;\n };\n ThumbnailView.prototype.getThumbnailElement = function (index) {\n var thumbnailChild = this.thumbnailView.children[index];\n return thumbnailChild.children[0];\n };\n /**\n * @private\n */\n ThumbnailView.prototype.destroy = function () {\n this.clear();\n };\n /**\n * @private\n */\n ThumbnailView.prototype.getModuleName = function () {\n return 'ThumbnailView';\n };\n return ThumbnailView;\n}());\nexport { ThumbnailView };\n","import _ from \"lodash\";\n\nexport const deep = (value: T): T => {\n if (typeof value !== \"object\" || value === null) {\n return value;\n }\n if (Array.isArray(value)) {\n return deepArray(value) as T;\n }\n return deepObject(value);\n};\n\nexport const deepObject = (source: T) => {\n const result = {} as T;\n Object.keys(source as unknown[]).forEach((key) => {\n const value = source[key as keyof T];\n result[key as keyof T] = deep(value);\n }, {});\n return result as T;\n};\n\nexport const deepArray = (collection: T): unknown => {\n return collection.map((value) => {\n return deep(value);\n });\n};\n\n/**\n * Will transfer just existing properties on destiny. Will not add more.\n * @param source\n * @param destiny\n */\nexport const mapTo = (source: object, destiny: object) => {\n for (const key in destiny) {\n if (key in source) {\n _.set(destiny, key, _.get(source, key));\n }\n }\n};\n","import moment from \"moment\";\n\nexport const differenceInDaysFromToday = (date: Date) => {\n const timeDiff = +date - +getTodaysDateOnly_UTC();\n return Math.floor(timeDiff / (1000 * 3600 * 24));\n};\n\nexport const getTodaysDateOnly_UTC = () => {\n const today = new Date();\n today.setUTCHours(0, 0, 0, 0);\n return today;\n};\nexport const formatDateToMMddYYYY = (date: string | Date) => {\n if (date === \"\") {\n return date;\n }\n return moment(date).format(\"MM/DD/YYYY\");\n};\nexport const parseDateToDateTimeString = (date: string | Date) => {\n return moment.utc(date).tz(\"America/New_York\").format(\"MM/DD/YYYY hh:mm A\");\n};\n\nexport const parseDateToDateString = (date: string | Date) => {\n return moment.utc(date).tz(\"America/New_York\").format(\"MM/DD/YYYY\");\n};\n\nexport const getUTCDate = (date: string | Date) => {\n const utcMonth = moment.utc(date).month();\n const utcDate = moment.utc(date).date();\n const utcYear = moment.utc(date).year();\n return new Date(utcYear, utcMonth, utcDate);\n};\n\nexport const differenceInMonths = (date: string | Date) => {\n const now = moment();\n\n return moment(date).diff(now, \"M\");\n};\n\nexport const differenceInYears = (date: string | Date) => {\n const now = moment();\n\n return Math.abs(moment(date).diff(now, \"y\"));\n};\n\nexport const dateBuilderAddYearsToTodaysDate = (yearsToCalculate: number) => {\n const d = new Date();\n const year = d.getFullYear();\n const month = d.getMonth();\n const day = d.getDate();\n return new Date(year + yearsToCalculate, month, day);\n};\n\nexport const dateBuilderAddMonthsToTodaysDate = (monthsToAdd: number) => {\n const d = new Date();\n const year = d.getFullYear();\n const month = d.getMonth();\n const addedMonths = month + monthsToAdd;\n const day = d.getDate();\n return new Date(year, addedMonths, day);\n};\n\nexport const isValidDate = (date: string | null) => {\n if (!date) {\n return true;\n }\n\n const dateValue = new Date(date);\n\n const year = dateValue.getFullYear();\n const month = dateValue.getMonth() + 1;\n const day = dateValue.getDate();\n\n const isYearValid = year >= 1899;\n const isMonthValid = month >= 1 && month <= 12;\n const isDayValid = day >= 1 && day <= 31;\n\n return isYearValid && isMonthValid && isDayValid;\n};\n\nexport const isValidDateInstance = (date: Date | null) => {\n return date instanceof Date && !isNaN(date as unknown as number);\n};\n\nexport const convertDateFieldValue = (value: string) => {\n const parsedDate = new Date(value);\n return new Date(\n parsedDate.getUTCFullYear(),\n parsedDate.getUTCMonth(),\n parsedDate.getUTCDate()\n );\n};\n\nenum TimeZones {\n Eastern = 1,\n Central = 2,\n Mountain = 3,\n Pacific = 4,\n}\n\nexport const formatTimestampWithTimeZone = (\n utcTimestamp: string,\n timeZone: TimeZones\n): string => {\n if (!utcTimestamp) {\n return \"\";\n }\n\n const TimeZoneMapping: Record = {\n [TimeZones.Eastern]: \"America/New_York\",\n [TimeZones.Central]: \"America/Chicago\",\n [TimeZones.Mountain]: \"America/Denver\",\n [TimeZones.Pacific]: \"America/Los_Angeles\",\n };\n\n const date = new Date(utcTimestamp);\n\n const timeZoneIANA = TimeZoneMapping[timeZone];\n\n if (!timeZoneIANA) {\n throw new Error(\"Invalid TimeZone provided\");\n }\n\n // Format the date according to the specified timezone\n const formatter = new Intl.DateTimeFormat(\"en-US\", {\n timeZone: timeZoneIANA,\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n hour12: true,\n });\n\n // Format and clean up the output\n return formatter.format(date).replace(\",\", \"\"); // Ensuring MM/dd/yyyy hh:mm a format\n};\n","import { makeObservable, observable } from \"mobx\";\nimport React from \"react\";\n\nexport const ForbiddenErrorMessage = (\n

      \n Oops! You do not have permission to access this page.\n
      \n
      \n If you think this is a mistake, please contact{\" \"}\n \n Support@medicaiddoneright.com\n {\" \"}\n for assistance.\n
      \n
      \n Thank you for your understanding.\n

      \n);\n\nexport const FIAErrorMessage = (\n

      \n Unable to preview/download since institution is missing information. Please\n see specific errors called out on FIA Request and contact DVT to resolve.\n

      \n);\n\nexport const genericErrorMessage = (\n

      \n Sorry, something went wrong. If you continue to see this message, please\n contact{\" \"}\n \n Support@medicaiddoneright.com\n \n . Thank you!\n

      \n);\n\nexport class ErrorStore {\n public errorMessage?: React.ReactNode | null = null;\n constructor() {\n makeObservable(this, {\n errorMessage: observable,\n });\n }\n\n setErrorMessage(errorMessage: React.ReactNode) {\n this.errorMessage = errorMessage;\n }\n}\n\nexport const errorStore = new ErrorStore();\n","import * as msal from \"@azure/msal-browser\";\nimport { userStore } from \"../../stores/UserStore\";\n\nexport interface MsalConfiguration {\n scope: string;\n domain: string;\n tenantId: string;\n logInUserFlow: string;\n editProfileUserFlow: string;\n clientId: string;\n redirectUri: string;\n postLogoutRedirectUri: string;\n}\n\nlet msalInstance: msal.PublicClientApplication;\nlet config: msal.Configuration;\nlet loginRequest: { scopes: string[] };\nlet logout: () => void;\nlet editProfile: () => void;\nlet login: () => void;\n\nexport const initMsalInstance = (options: {\n msalConfig: msal.Configuration;\n loginRequestScope?: string[];\n editProfileAuthority?: string;\n}) => {\n config = options.msalConfig;\n msalInstance = new msal.PublicClientApplication({\n ...options.msalConfig,\n });\n\n msalInstance\n .handleRedirectPromise()\n .then((tokenResponse) => {\n if (tokenResponse !== null && tokenResponse?.account !== null) {\n msalInstance.setActiveAccount(tokenResponse.account);\n userStore.signInAuth();\n }\n })\n .catch((error) => {\n console.error(error);\n });\n\n loginRequest = { scopes: options.loginRequestScope || [] };\n\n logout = () =>\n msalInstance.logoutRedirect({\n account: msalInstance.getActiveAccount(),\n postLogoutRedirectUri: config.auth.redirectUri,\n });\n\n editProfile = () =>\n msalInstance.loginRedirect({\n scopes: loginRequest.scopes,\n authority: options.editProfileAuthority,\n });\n\n login = () => {\n msalInstance.loginRedirect({\n scopes: loginRequest.scopes,\n });\n };\n};\n\nexport { config, editProfile, loginRequest, logout, msalInstance, login };\n","import { errorStore, ForbiddenErrorMessage } from \"../../stores/ErrorStore\";\nimport { loginRequest, msalInstance } from \"../msal/msal\";\nimport { ApiClient } from \"@ucl/library\";\n\nexport interface DecisionPayload {\n method: string;\n url: string;\n payload: {};\n}\n\nlet baseApiClient: ApiClient;\nlet getAccessToken: () => Promise;\nlet getAuthRequestHeader: () => Promise>;\n\nexport const initBaseApiClient = (apiBaseUrl: string) => {\n baseApiClient = new ApiClient(\n `${apiBaseUrl}api`,\n async (config) => {\n const authRequestHeader = await getAuthRequestHeader();\n if (authRequestHeader) {\n (config.headers as { Authorization: string }).Authorization =\n authRequestHeader.Authorization;\n }\n\n return config;\n },\n {\n onForbidden: () => {\n errorStore.setErrorMessage(ForbiddenErrorMessage);\n },\n }\n );\n\n getAccessToken = async () => {\n try {\n const token = await msalInstance.acquireTokenSilent(loginRequest);\n return token.accessToken;\n } catch (e) {\n msalInstance.loginRedirect(loginRequest);\n }\n };\n\n getAuthRequestHeader = async (): Promise> => {\n const accessToken = await getAccessToken();\n\n return {\n Authorization: `Bearer ${accessToken}`,\n };\n };\n};\n\nexport { baseApiClient, getAccessToken, getAuthRequestHeader };\n","import { Permission } from \"../../../types/Permission\";\nimport { NewUser, User, UserSignatures } from \"../../../types/User\";\nimport { baseApiClient } from \"../baseApiClient\";\n\nclass UserApiClient {\n signInAuth = async () => {\n return baseApiClient.post(\"user/signin_auth\");\n };\n signIn = async () => {\n return baseApiClient.post(\"user/signin\");\n };\n getUserDetail = async (id: string) => {\n return baseApiClient.get(`user/${id}/detail`);\n };\n\n getUserSignatures = async (id: string) => {\n return baseApiClient.get(`user/${id}/signatures`);\n };\n\n createUser = async (user: NewUser, shouldSendInviteEmail = false) => {\n return baseApiClient.post(\n `user?shouldSendInviteEmail=${shouldSendInviteEmail}`,\n user\n );\n };\n\n getExternalUsers = async () => {\n return baseApiClient.get[]>(`user/external-users`);\n };\n\n getFieldRepManagerTeams = async (\n userId?: string,\n includeFacilityIds?: boolean\n ) => {\n return baseApiClient.get[]>(\n `user/fieldrep-manager-teams${\n userId\n ? `?userId=${userId}&includeFacilityIds=${\n includeFacilityIds === true\n }`\n : \"\"\n }`\n );\n };\n\n getFacilityBasedSchedulingToggle = async (id: string) => {\n return baseApiClient.get(`user/${id}/facility-scheduling-toggle`);\n };\n\n updateUser = async (\n userId: string,\n user: User,\n shouldSendInviteEmail = false\n ) => {\n return baseApiClient.put(\n `user/${userId}?shouldSendInviteEmail=${shouldSendInviteEmail}`,\n user\n );\n };\n\n updateUserSignatures = async (\n userId: string,\n userSignatures: UserSignatures\n ) => {\n return baseApiClient.put(`user/${userId}/signatures`, userSignatures);\n };\n\n getRolePermissions = (role: number) => {\n return baseApiClient.get(`user/role-permissions/${role}`);\n };\n\n getComputedState = (user: Partial) => {\n return baseApiClient.post>(\"user/state\", user);\n };\n}\n\nexport const userApiClient = new UserApiClient();\n","import { makeObservable, observable, runInAction } from \"mobx\";\nimport { userApiClient } from \"../lib/apiClients/user/userApiClient\";\nimport { User, UserRoles } from \"../types/User\";\nimport { errorStore, genericErrorMessage } from \"./ErrorStore\";\n\nexport interface UserFromProvider {\n accountId: string;\n email: string;\n firstName: string;\n lastName: string;\n displayName: string;\n companyName: string;\n role?: UserRoles;\n}\n\nclass UserStore {\n public user?: User | null = null;\n\n public nextDailyDebriefAutoOpenTime?: Date | null = null;\n\n constructor() {\n makeObservable(this, {\n user: observable,\n });\n }\n\n async signInAuth() {\n try {\n if (this.user) {\n return;\n }\n const user = await userApiClient.signInAuth();\n runInAction(() => {\n this.user = user;\n });\n } catch (e) {\n errorStore.setErrorMessage(genericErrorMessage);\n }\n }\n async signIn() {\n try {\n if (this.user) {\n return;\n }\n const user = await userApiClient.signIn();\n runInAction(() => {\n this.user = user;\n });\n } catch (e) {\n errorStore.setErrorMessage(genericErrorMessage);\n }\n }\n\n get displayRole() {\n return !!this.user?.role_AsString ? `(${this.user.role_AsString})` : \"\";\n }\n\n get initials() {\n if (!this.user) {\n return \"\";\n }\n return `${this.user.firstName[0].toUpperCase()}${this.user.lastName[0].toUpperCase()}`;\n }\n\n get fullUserName() {\n if (!this.user) {\n return \"\";\n }\n\n return `${this.user.firstName} ${this.user.lastName}`;\n }\n}\n\nexport const userStore = new UserStore();\n","import { userStore } from \"../stores/UserStore\";\n\nexport const getRandomColor = () =>\n \"#\" + Math.floor(Math.random() * 16777215).toString(16);\n\nexport const startWithVowel = (word?: string) => word?.match(\"^[aieouAIEOU].*\");\nexport const getRightArticleSyntax_aWord = (nextWord?: string) =>\n startWithVowel(nextWord) ? \"an\" : \"a\";\n\nexport const getObjectValueClassName = (objectValue?: string) =>\n objectValue?.toLowerCase().replace(/[^A-Z0-9]+/gi, \"_\");\n\nexport const getObjectValueActiveClassName = (objectValue?: boolean) =>\n objectValue ? \"active\" : undefined;\n\nexport const getApplicationStatusClassName = (\n applicationStatus_AsString: string | undefined\n) => {\n switch (applicationStatus_AsString) {\n case \"Interviewing\":\n return \"application-status-interviewing\";\n default:\n return undefined;\n }\n};\n\nexport const getScheduleMappingClassName = (\n scheduleMappingValues: string[],\n fieldName: string\n) =>\n scheduleMappingValues?.includes(fieldName)\n ? \"schedule-mapping-value\"\n : undefined;\n\nexport const isTextOverflowingField = (element?: HTMLInputElement) => {\n return element ? element.offsetWidth < element.scrollWidth : false;\n};\n\nexport const formatArrayOfStrings = (array?: string[]) => {\n if (array) {\n const formattedArray = array.map((item) => ` ${item}`);\n return formattedArray;\n } else {\n return [];\n }\n};\n\nexport const generateKey = () => {\n return `${userStore.user?.id}_${new Date().getTime()}`;\n};\n\nexport const formatBytes = (size: number | undefined) => {\n const units: string[] = [\"bytes\", \"KB\", \"MB\", \"GB\", \"TB\"];\n const factor = 1024;\n\n if (!size) {\n return \"0 bytes\";\n }\n\n // Find the appropriate unit\n for (const unit of units) {\n if (size < factor) {\n return `${size.toFixed(2)} ${unit}`;\n }\n size /= factor;\n }\n};\n\nexport interface FormOption {\n key: string;\n label: string;\n value: T[keyof T];\n}\n\nexport const enumToOptions = (\n enumObject: T,\n getOptionLabel?: (key: T[keyof T]) => string\n): FormOption[] => {\n return Object.entries(enumObject)\n .filter(([_, value]) => typeof value === \"number\")\n .map(([key, value]) => ({\n key,\n label: getOptionLabel?.(value) ?? key,\n value,\n }));\n};\n\nexport const numberRange = (start: number, end: number, step: number = 1) => {\n return Array.from(\n { length: (end - start) / step + 1 },\n (_, i) => start + i * step\n );\n};\n\nexport const numberRangeToOptions = (\n start: number,\n end: number,\n step: number = 1\n) => {\n return numberRange(start, end, step).map((value) => ({\n key: value.toString(),\n label: value.toString(),\n value,\n }));\n};\n\nexport const findLastIndex = (\n array: Array,\n predicate: (value: T, index: number, obj: T[]) => boolean\n): number => {\n for (let i = array.length - 1; i >= 0; i--) {\n if (predicate(array[i], i, array)) {\n return i;\n }\n }\n return -1;\n};\n\nexport const consoleLog = (message: string, args?: any) => {\n if (args) {\n console.log(`%c ${message} `, \"background: #222; color: #bada55\", args);\n } else {\n console.log(`%c ${message} `, \"background: #222; color: #bada55\");\n }\n};\n\nexport type KeyValuePair = {\n key: T1;\n value: T2;\n};\n","import { Option } from \"../components/Fields/types/fieldTypes\";\nimport moment from \"moment\";\nimport { StatementReceivedDateRange } from \"../types\";\nimport { findLastIndex } from \"./miscellaneous\";\n\nexport const formatStatementDate = (date: moment.Moment): string => {\n return date.format(\"yyyy-MM\");\n};\n\nconst formatStatementDates = (dates: moment.Moment[]): string[] => {\n return dates.map(formatStatementDate);\n};\n\nexport const getStatementOptions = (): Option[] => {\n const options: Option[] = [];\n let day = moment();\n\n for (let i = 0; i < 120; i++) {\n options.push({\n label: day.format(\"MMMM yyyy\"),\n value: formatStatementDate(day),\n });\n day = day.subtract(1, \"month\");\n }\n\n return options;\n};\n\nconst parseStatementDate = (date: string): moment.Moment | undefined => {\n const parsedDate = moment(date, \"yyyy-MM\");\n return parsedDate.isValid() ? parsedDate : undefined;\n};\n\nexport const parseStatementDates = (\n neededSpecificStatementDates: string[]\n): moment.Moment[] => {\n return neededSpecificStatementDates\n .map(parseStatementDate)\n .filter((date) => !!date);\n};\n\nconst getMonthlyStatementDatesFromInput = (\n neededStatementDateRangeStart: string,\n endDateInput: Date | undefined\n): moment.Moment[] => {\n const startDate = moment(neededStatementDateRangeStart, \"yyyy-MM\");\n\n if (!startDate.isValid()) {\n return [];\n }\n\n const monthlyStatementDates: moment.Moment[] = [];\n const isEndDatePopulatedAndValid =\n endDateInput && moment(endDateInput).isValid();\n const endDate = isEndDatePopulatedAndValid ? moment(endDateInput) : moment();\n\n while (startDate.isSameOrBefore(endDate)) {\n monthlyStatementDates.push(startDate.clone());\n startDate.add(1, \"month\");\n }\n\n return monthlyStatementDates;\n};\n\nexport const getAggregatedStatementsNeeded = (\n neededStatementDateRangeStart: string | undefined,\n neededSpecificStatementDates: string[] | undefined,\n endDateInput?: Date\n): string[] => {\n // Start with the specific statements, if any\n let aggregateStatementsList: string[] =\n neededSpecificStatementDates && neededSpecificStatementDates.length > 0\n ? [...neededSpecificStatementDates]\n : [];\n\n // Add the range statements, if any\n if (\n neededStatementDateRangeStart &&\n neededStatementDateRangeStart.length > 0\n ) {\n const monthlyStatementDates = getMonthlyStatementDatesFromInput(\n neededStatementDateRangeStart,\n endDateInput\n );\n aggregateStatementsList = [\n ...aggregateStatementsList,\n ...formatStatementDates(monthlyStatementDates),\n ];\n }\n\n // Remove duplicates and sort ascending\n return [...new Set(aggregateStatementsList)].sort();\n};\n\ninterface ParsedStatementReceivedDateRange {\n startDate: moment.Moment;\n endDate: moment.Moment;\n}\n\nconst parseStatementReceivedDate = (\n dateString: string | undefined\n): moment.Moment | undefined => {\n if (!dateString) {\n return undefined;\n }\n\n const date = moment(dateString, \"yyyy-MM-DD\");\n return date.isValid() ? date : undefined;\n};\n\nconst parseStatementReceivedDateRange = (\n range: StatementReceivedDateRange\n): ParsedStatementReceivedDateRange | undefined => {\n const startDate = parseStatementReceivedDate(range.dateRangeStart);\n const endDate = parseStatementReceivedDate(range.dateRangeEnd);\n\n return startDate && endDate ? { startDate, endDate } : undefined;\n};\n\nconst parseStatementReceivedDateRanges = (\n receivedStatementDates: StatementReceivedDateRange[] | undefined\n): ParsedStatementReceivedDateRange[] => {\n if (!receivedStatementDates) {\n return [];\n }\n\n return receivedStatementDates\n .map(parseStatementReceivedDateRange)\n .filter((range) => !!range);\n};\n\nexport const isMonthCoveredByStatementsReceivedRange = (\n date: moment.Moment,\n receivedStatementDates: StatementReceivedDateRange[] | undefined,\n endDateInput: Date | undefined\n): boolean => {\n if (!date.isValid() || !receivedStatementDates) {\n return false;\n }\n\n const parsedReceivedStatementDates = parseStatementReceivedDateRanges(\n receivedStatementDates\n );\n if (parsedReceivedStatementDates.length === 0) {\n return false;\n }\n\n const firstDayOfMonth = date.clone().date(1);\n let daysInMonth = date.daysInMonth();\n let lastDayOfMonth = date.clone().date(daysInMonth);\n if (endDateInput) {\n const endDate = moment(endDateInput);\n if (\n endDate.isSame(date, \"month\") &&\n endDate.isSame(date, \"year\") &&\n lastDayOfMonth.isAfter(endDate)\n ) {\n lastDayOfMonth = endDate;\n daysInMonth = lastDayOfMonth.date();\n }\n }\n\n // Short-circuit if the entire month is covered by a single received statement date range\n if (\n parsedReceivedStatementDates.some(\n (range) =>\n firstDayOfMonth.isSameOrAfter(range.startDate, \"day\") &&\n lastDayOfMonth.isSameOrBefore(range.endDate, \"day\")\n )\n ) {\n return true;\n }\n\n // Generate an array of all dates in the month\n const monthDates = Array.from({ length: daysInMonth }, (_, i) =>\n firstDayOfMonth.clone().date(i + 1)\n );\n\n // Check if all days in the month are covered by at least one of the received statement date ranges\n const isMonthCovered = monthDates.every((monthDate) =>\n parsedReceivedStatementDates.some((range) => {\n return monthDate.isBetween(range.startDate, range.endDate, \"day\", \"[]\");\n })\n );\n\n return isMonthCovered;\n};\n\n/*** Returns the new range start month and a list of specific months still needed */\nconst getStatementsStillNeededRangeStart = (\n neededStatementDateRangeStart: string | undefined,\n receivedStatementDates: StatementReceivedDateRange[] | undefined,\n endDateInput: Date | undefined\n): [string | undefined, string[]] => {\n if (!neededStatementDateRangeStart) {\n return [\"\", []];\n }\n\n const monthlyStatementDates = getMonthlyStatementDatesFromInput(\n neededStatementDateRangeStart,\n endDateInput\n );\n\n if (monthlyStatementDates.length === 0) {\n return [neededStatementDateRangeStart, []];\n }\n\n // Find the newest statement date that has been received from the original range\n const statementsStillNeededRangeStartFindIdx = findLastIndex(\n monthlyStatementDates,\n (date) =>\n isMonthCoveredByStatementsReceivedRange(\n date,\n receivedStatementDates,\n endDateInput\n )\n );\n\n // Get the index of the unrecevied statement immediately after the newest received one,\n // defaulting to (-1) if all are recieved\n const statementsStillNeededRangeStartIdx =\n statementsStillNeededRangeStartFindIdx === monthlyStatementDates.length - 1\n ? -1\n : statementsStillNeededRangeStartFindIdx + 1;\n\n const statementsStillNeededRangeStart =\n statementsStillNeededRangeStartIdx !== -1\n ? monthlyStatementDates[statementsStillNeededRangeStartIdx]\n : undefined;\n\n // Monthly statement dates before the new range start that have not been received\n const specificStatementsStillNeeded = monthlyStatementDates\n .slice(0, statementsStillNeededRangeStartIdx)\n .filter(\n (date) =>\n !isMonthCoveredByStatementsReceivedRange(\n date,\n receivedStatementDates,\n endDateInput\n )\n );\n\n return [\n statementsStillNeededRangeStart\n ? formatStatementDate(statementsStillNeededRangeStart)\n : undefined,\n formatStatementDates(specificStatementsStillNeeded),\n ];\n};\n\nconst getSpecificStatementsStillNeeded = (\n neededSpecificStatementDates: string[] | undefined,\n receivedStatementDates: StatementReceivedDateRange[] | undefined,\n endDateInput: Date | undefined\n): string[] => {\n if (!neededSpecificStatementDates) {\n return [];\n }\n\n const statementsSpecificDates = parseStatementDates(\n neededSpecificStatementDates\n );\n\n const statementsStillNeeded = statementsSpecificDates.filter(\n (date) =>\n !isMonthCoveredByStatementsReceivedRange(\n date,\n receivedStatementDates,\n endDateInput\n )\n );\n\n return formatStatementDates(statementsStillNeeded);\n};\n\nexport const getStatementsStillNeeded = (\n neededStatementDateRangeStart: string | undefined,\n neededSpecificStatementDates: string[] | undefined,\n receivedStatementDates: StatementReceivedDateRange[] | undefined,\n endDateInput: Date | undefined\n): [string | undefined, string[]] => {\n const [statementsStillNeededRangeStart, rangeSpecificStatementsStillNeeded] =\n getStatementsStillNeededRangeStart(\n neededStatementDateRangeStart,\n receivedStatementDates,\n endDateInput\n );\n\n const specificStatementsStillNeeded = getSpecificStatementsStillNeeded(\n neededSpecificStatementDates,\n receivedStatementDates,\n endDateInput\n );\n\n // Merge the distinct specific statements still needed from the range and the specific statements, and sort ascending\n const allSpecificStatementsStillNeeded = [\n ...new Set([\n ...specificStatementsStillNeeded,\n ...rangeSpecificStatementsStillNeeded,\n ]),\n ].sort();\n\n return [statementsStillNeededRangeStart, allSpecificStatementsStillNeeded];\n};\n","import moment from \"moment\";\nimport { Option } from \"@ucl/library/lib/components/Fields/types/fieldTypes\";\nimport { StatementReceivedDateRange } from \"../types\";\nimport { formatStatementDate } from \"./getStatementOptions\";\nimport { first } from \"lodash\";\n\nexport const getAccountBalancesNeeded = (\n dateRanges: StatementReceivedDateRange[] | undefined,\n statementNeededStartDate: string | undefined,\n aggregateStatementsNeeded: string[]\n): Option[] => {\n const options: Option[] = [];\n\n if (!dateRanges) {\n return options;\n }\n\n for (const dateRange of dateRanges) {\n let start = moment(dateRange.dateRangeStart, \"YYYY-MM-DD\").startOf(\"month\");\n\n if (statementNeededStartDate) {\n start = moment.max(\n moment(statementNeededStartDate, \"YYYY-MM-DD\").startOf(\"month\"),\n start\n );\n }\n\n const end = moment(dateRange.dateRangeEnd, \"YYYY-MM-DD\");\n\n // Continue if dates are invalid or start is after end\n if (!start.isValid() || !end.isValid() || start.isAfter(end)) {\n continue;\n }\n\n const current = start.clone();\n\n while (current.isSameOrBefore(end)) {\n const currentLabel = current.format(\"MMMM YYYY\");\n\n const shouldInclude =\n aggregateStatementsNeeded.length > 0\n ? aggregateStatementsNeeded.some(\n (date) => date === formatStatementDate(current)\n )\n : true;\n if (\n shouldInclude &&\n !options.some((option) => option.label === currentLabel)\n ) {\n options.push({\n label: currentLabel,\n value: current.toDate(),\n });\n }\n current.add(1, \"month\");\n }\n }\n\n return options;\n};\n\nexport const getMinStatementDate = (\n dateArray: string[] | undefined\n): Date | undefined => {\n if (!dateArray || dateArray.length === 0) {\n return undefined;\n }\n\n const validDates = dateArray\n .map((date) => moment(date, \"YYYY-MM-DD\"))\n .filter((date) => date.isValid());\n\n if (validDates.length === 0) {\n return undefined;\n }\n\n const minDate = moment.min(validDates);\n // Min date should be 1 year before the earliest statement needed date\n minDate.subtract(1, \"years\");\n return minDate.toDate();\n};\n\nexport const getMaxStatementDate = (\n dateArray: string[] | undefined\n): Date | undefined => {\n const currentDate = moment();\n\n if (!dateArray || dateArray.length === 0) {\n return currentDate.toDate();\n }\n\n const validDates = dateArray\n .map((date) => moment(date, \"YYYY-MM-DD\"))\n .filter((date) => date.isValid());\n\n // Check if there are no valid dates\n if (validDates.length === 0) {\n return currentDate.toDate();\n }\n\n const maxDate = moment.max(validDates);\n\n if (maxDate.isSame(currentDate, \"month\")) {\n return currentDate.toDate();\n } else {\n // Get the last day of the month for the max date\n const lastDayOfMonth = maxDate.endOf(\"month\");\n return lastDayOfMonth.toDate();\n }\n};\n\nexport const getFirstDayOfMonth = (year: number, month: number): Date => {\n return new Date(year, month, 1);\n};\n\n// Function to get the last day of a month\nexport const getLastDayOfMonth = (\n year: number,\n month: number,\n maxCurrentDate?: boolean\n): Date => {\n const lastDayOfMonth = new Date(year, month + 1, 0);\n const currentDate = new Date();\n\n if (\n year === currentDate.getFullYear() &&\n month === currentDate.getMonth() &&\n !!maxCurrentDate\n ) {\n return currentDate;\n }\n\n return lastDayOfMonth;\n};\n\nexport const isDateWithinRanges = (\n keyDate: string | undefined,\n statementDateRanges: StatementReceivedDateRange[] | undefined\n) => {\n if (!keyDate || !statementDateRanges) {\n return false;\n }\n const keyDateObj = new Date(keyDate);\n return statementDateRanges.some((range) => {\n const dateRangeStart = range.dateRangeStart\n ? new Date(range.dateRangeStart)\n : null;\n const dateRangeEnd = range.dateRangeEnd\n ? new Date(range.dateRangeEnd)\n : null;\n\n // Check if keyDate falls within the start and end range\n return (\n (!dateRangeStart || keyDateObj >= dateRangeStart) &&\n (!dateRangeEnd || keyDateObj <= dateRangeEnd)\n );\n });\n};\n\nexport const getFirstStatementNeededDate = (\n statementsNeeded: string[] | undefined,\n statementsNeededMinDateAsString: string | undefined\n) => {\n let firstStatementNeeded = first(\n statementsNeeded\n ?.filter((dateString) => dateString !== \"\")\n .sort((a, b) => {\n return moment(a).toDate().getTime() - moment(b).toDate().getTime();\n })\n );\n\n if (statementsNeededMinDateAsString) {\n const statementsNeededMinDate = moment(statementsNeededMinDateAsString);\n const threeMonthsPrior = statementsNeededMinDate\n .clone()\n .subtract(3, \"months\");\n\n if (\n !firstStatementNeeded ||\n moment(firstStatementNeeded).isBefore(threeMonthsPrior)\n ) {\n firstStatementNeeded = threeMonthsPrior.format(\"YYYY-MM-DD\");\n } else {\n firstStatementNeeded = moment(firstStatementNeeded).format(\"YYYY-MM-DD\");\n }\n }\n return firstStatementNeeded;\n};\n","import moment from \"moment-timezone\";\n\nexport const convertDateTo_UTC_AsString = (date?: string | Date) => {\n if (!date) {\n return undefined;\n }\n\n return moment(date).utc().format(\"MM/DD/YYYY hh:mm A\");\n};\n\nexport const convertDateTo_EST_timeZone_AsString = (date?: string | Date) => {\n if (!date) {\n return undefined;\n }\n\n return moment.utc(date).tz(\"America/New_York\").format(\"MM/DD/YYYY hh:mm A\");\n};\n\nexport const convertDateTo_EST_timeZone_AsDate = (date: string | Date) => {\n return moment.utc(date).tz(\"America/New_York\").toDate();\n};\n\nexport const removeOffSetFromDate = (dateString: string): string => {\n // Validation\n if (!dateString) {\n return dateString;\n }\n if (dateString.slice(-1) === \"Z\") {\n return dateString;\n }\n\n // Get Offset\n const offsetStr = dateString.substring(dateString.lastIndexOf(\"-\"));\n\n // Convert Offset to Z\n if (/[\\+\\-]\\d{2}:\\d{2}$/.test(offsetStr)) {\n dateString = `${dateString.replace(offsetStr, \"\")}Z`;\n }\n\n // Return\n return dateString;\n};\n","import { ExistingResource } from \"./ExistingResource\";\n\nexport interface NewBilling {\n applicationId?: string;\n corporateId: string;\n name: string;\n billingDate: string;\n invoiceNumber: number;\n invoiceNumber_AsString: string;\n invoiceId: string;\n amount: number;\n isCredit: boolean;\n billingRuleAmount: number;\n isShown: boolean;\n isDiscounted: boolean;\n canBeSingleExported: boolean;\n parentInvoiceId: string;\n}\n\nexport type Billing = ExistingResource & {\n changeNote: string;\n};\n\nexport enum BillingTriggers {\n Approved = 1,\n RepHandoff = 2,\n MedicalEligibility = 3,\n PrivatePayCase = 4,\n OverAssetsCase = 5,\n}\n","import { StatementReceivedDateRange } from \"./Document\";\nimport { ExistingResource } from \"./ExistingResource\";\n\nexport interface NewChecklistItem {\n applicationId: string;\n displayName: string;\n status: number;\n status_AsString?: string;\n documentCategory?: number;\n documentCategory_AsString: string;\n documentType?: number;\n documentType_AsString: string;\n responsiblePartyType?: number;\n responsiblePartyType_AsString: string;\n collectionSLAInDays?: number;\n reviewSLAInDays?: number;\n count?: number;\n shouldRequireInstitution: boolean;\n shouldDisplayOnExternalUserSummaryChecklist: boolean;\n institutionId?: string;\n useShortDescriptionStatementsNeeded?: string;\n shortDescriptionStatementsNeededPart?: string;\n shortDescriptionUserInputPart?: string;\n shortDescription?: string;\n shouldDisplayOnFiaRequest: boolean;\n entityType: string;\n entityId: string;\n useStatementsReceivedDates: boolean;\n statementReceivedDateRanges_AsList?: StatementReceivedDateRange[];\n useAccountBalances: boolean;\n useDocumentDisplayNames: boolean;\n isAssetNotFound: boolean;\n isDisabled: boolean;\n disabledReason?: string;\n canVerifyDocument: boolean;\n canViewAnalyzedStatus: boolean;\n aggregatedAccountBalances_AsList: AccountBalanceDateValueData[];\n}\n\nexport type ChecklistItem = ExistingResource;\n\nexport enum ChecklistItemDocTypes {\n DriversLicensePhotoID = 1,\n POADocument = 20,\n GuardianshipConservatorDocument = 21,\n DVTUploads = 156,\n RepUploads = 219,\n SpousePOADocument = 10_001,\n}\n\nexport enum ChecklistItemDocCategories {\n Assets = 1,\n Expenses = 2,\n Identification = 3,\n Income = 4,\n Legal = 5,\n Medical = 6,\n Other = 7,\n StateCorrespondence = 8,\n LevelOfCare = 9,\n}\n\nexport enum ChecklistCardView {\n Items = \"Checklist Items\",\n Documents = \"Checklist Documents\",\n}\n\nexport enum ChecklistItemStatuses {\n Open = 1,\n Closed = 2,\n NotApplicable = 3,\n NeedsReview = 4,\n}\n\nexport enum ChecklistItemResponsiblePartyTypes {\n POA = 4,\n Guardian = 5,\n}\n\nexport interface UnableToVerifyChecklistDocumentResponseDTO {\n checklistItem: ChecklistItem;\n documentId: string;\n}\n\nexport enum AccountBalanceDateValueDataBalanceTypes {\n EndingDate = 1,\n KeyDate = 2,\n}\n\nexport interface AccountBalanceDateValueData {\n date: string;\n value: number;\n verifiedDate: string;\n endingDate: string;\n balanceType?: AccountBalanceDateValueDataBalanceTypes;\n}\n","enum BankAccount {\n CheckingStatementVerification = 1001,\n SavingsStatementVerification = 1002,\n SpouseCheckingStatementVerification = 1003,\n SpouseSavingsStatementVerification = 1004,\n JointCheckingStatementVerification = 1005,\n JointSavingsStatementVerification = 1006,\n}\nenum LifeInsurance {\n WholeLifePolicyVerification = 2001,\n GroupLifePolicyVerification = 2002,\n TermLifePolicyVerification = 2003,\n UniversalLifePolicyVerification = 2004,\n SpouseWholeLifePolicyVerification = 2005,\n SpouseGroupLifePolicyVerification = 2006,\n SpouseTermLifePolicyVerification = 2007,\n SpouseUniversalLifePolicyVerification = 2008,\n JointWholeLifePolicyVerification = 2009,\n JointGroupLifePolicyVerification = 2010,\n JointTermLifePolicyVerification = 2011,\n JointUniversalLifePolicyVerification = 2012,\n LifeInsurancePolicyVerificationOfValue = 2013,\n}\nexport enum Vehicle {\n AutomobileRegistrationTitleValueVerification = 3001,\n BoatRegistrationTitleValueVerification = 3002,\n MotorcycleRegistrationTitleValueVerification = 3003,\n OtherRegistrationTitleValueVerification = 3004,\n SpouseAutomobileRegistrationTitleValueVerification = 3005,\n SpouseBoatRegistrationTitleValueVerification = 3006,\n SpouseMotorcycleRegistrationTitleValueVerification = 3007,\n SpouseOtherRegistrationTitleValueVerification = 3008,\n JointAutomobileRegistrationTitleValueVerification = 3009,\n JointBoatRegistrationTitleValueVerification = 3010,\n JointMotorcycleRegistrationTitleValueVerification = 3011,\n JointOtherRegistrationTitleValueVerification = 3012,\n}\nenum Burial {\n BurialArrangementVerification = 4001,\n SpouseBurialArrangementVerification = 4002,\n JointBurialArrangementVerification = 4003,\n BurialTrustVerification = 4004,\n}\n\nenum Property {\n HomesteadFMVVerification = 5001,\n PropertyFMVVerification = 5002,\n SpouseHomesteadFMVVerification = 5003,\n SpousePropertyFMVVerification = 5004,\n JointHomesteadFMVVerification = 5005,\n JointPropertyFMVVerification = 5006,\n InheritrancePropertyVerification = 5007,\n}\n\nenum Bills {\n ElectricVerification = 6001,\n WaterVerification = 6002,\n TrashVerification = 6003,\n PhoneVerification = 6004,\n PropertyTaxVerification = 6005,\n HomeownersInsuranceVerification = 6006,\n GasVerification = 6007,\n CableVerification = 6008,\n InsuranceVerification = 6009,\n OtherVerification = 6010,\n SpouseElectricVerification = 6011,\n SpouseWaterVerification = 6012,\n SpouseTrashVerification = 6013,\n SpousePhoneVerification = 6014,\n SpousePropertyTaxVerification = 6015,\n SpouseHomeownersInsuranceVerification = 6016,\n SpouseGasVerification = 6017,\n SpouseCableVerification = 6018,\n SpouseInsuranceVerification = 6019,\n SpouseOtherVerification = 6020,\n JointElectricVerification = 6021,\n JointWaterVerification = 6022,\n JointTrashVerification = 6023,\n JointPhoneVerification = 6024,\n JointPropertyTaxVerification = 6025,\n JointHomeownersInsuranceVerification = 6026,\n JointGasVerification = 6027,\n JointCableVerification = 6028,\n JointInsuranceVerification = 6029,\n JointOtherVerification = 6030,\n}\n\nexport enum AdditionalIncome {\n CivilServiceAnnuityVerification = 7001,\n PublicRetirementVerification = 7002,\n UnionFundsOrPensionBenefitsVerification = 7003,\n WidowerIncomeVerification = 7004,\n OtherSourcesVerification = 7005,\n SpouseCivilServiceAnnuityVerification = 7006,\n SpousePublicRetirementVerification = 7007,\n SpouseUnionFundsOrPensionBenefitsVerification = 7008,\n SpouseWidowerIncomeVerification = 7009,\n SpouseOtherSourcesVerification = 7010,\n JointCivilServiceAnnuityVerification = 7011,\n JointPublicRetirementVerification = 7012,\n JointUnionFundsOrPensionBenefitsVerification = 7013,\n JointWidowerIncomeVerification = 7014,\n JointOtherSourcesVerification = 7015,\n EarnedIncomeVerification = 7016,\n SpouseEarnedIncomeVerification = 7017,\n JointEarnedIncomeVerification = 7018,\n RentalIncomeVerification = 7019,\n SpouseRentalIncomeVerification = 7020,\n JointRentalIncomeVerification = 7021,\n}\nenum MedicalCoverage {\n AccidentOnlyPolicyVerification = 8001,\n AutoPIPPolicyVerification = 8002,\n BasicHospitalPolicyVerification = 8003,\n BasicHospitalMedicalSurgicalPolicyVerification = 8004,\n BasicMedicalPolicyVerification = 8005,\n BasicSurgicalPolicyVerification = 8006,\n HMOPolicyVerification = 8007,\n HospitalIndemnityPolicyVerification = 8008,\n MajorMedicalPolicyVerification = 8009,\n MedicareSupplementPolicyVerification = 8010,\n MedicarePremiumVerficiation = 8011,\n MedicarePartBPolicyVerification = 8012,\n MedicarePartCPolicyVerification = 8013,\n MedicarePartDPolicyVerification = 8014,\n MotorcyclePassengerPolicyVerification = 8015,\n NursingHomeSuppPolicyVerification = 8016,\n SpecDiseaseCancerPolicyVerification = 8017,\n SpecDiseaseHeartPolicyVerification = 8018,\n RXPrescriptionDrugPlanPolicyVerification = 8019,\n SpouseAccidentOnlyPolicyVerification = 8020,\n SpouseAutoPIPPolicyVerification = 8021,\n SpouseBasicHospitalPolicyVerification = 8022,\n SpouseBasicHospitalMedicalSurgicalPolicyVerification = 8023,\n SpouseBasicMedicalPolicyVerification = 8024,\n SpouseBasicSurgicalPolicyVerification = 8025,\n SpouseHMOPolicyVerification = 8026,\n SpouseHospitalIndemnityPolicyVerification = 8027,\n SpouseMajorMedicalPolicyVerification = 8028,\n SpouseMedicareSupplementPolicyVerification = 8029,\n SpouseMedicarePartAPolicyVerification = 8030,\n SpouseMedicarePartBPolicyVerification = 8031,\n SpouseMedicarePartCPolicyVerification = 8032,\n SpouseMedicarePartDPolicyVerification = 8033,\n SpouseMotorcyclePassengerPolicyVerification = 8034,\n SpouseNursingHomeSuppPolicyVerification = 8035,\n SpouseSpecDiseaseCancerPolicyVerification = 8036,\n SpouseSpecDiseaseHeartPolicyVerification = 8037,\n SpouseRXPrescriptionDrugPlanPolicyVerification = 8038,\n JointAccidentOnlyPolicyVerification = 8039,\n JointAutoPIPPolicyVerification = 8040,\n JointBasicHospitalPolicyVerification = 8041,\n JointBasicHospitalMedicalSurgicalPolicyVerification = 8042,\n JointBasicMedicalPolicyVerification = 8043,\n JointBasicSurgicalPolicyVerification = 8044,\n JointHMOPolicyVerification = 8045,\n JointHospitalIndemnityPolicyVerification = 8046,\n JointMajorMedicalPolicyVerification = 8047,\n JointMedicareSupplementPolicyVerification = 8048,\n JointMedicarePartAPolicyVerification = 8049,\n JointMedicarePartBPolicyVerification = 8050,\n JointMedicarePartCPolicyVerification = 8051,\n JointMedicarePartDPolicyVerification = 8052,\n JointMotorcyclePassengerPolicyVerification = 8053,\n JointNursingHomeSuppPolicyVerification = 8054,\n JointSpecDiseaseCancerPolicyVerification = 8055,\n JointSpecDiseaseHeartPolicyVerification = 8056,\n JointRXPrescriptionDrugPlanPolicyVerification = 8057,\n}\nenum OtherAsset {\n IRAVerification = 9001,\n StocksBondsVerification = 9002,\n RFMSRTAVerification = 9003,\n OtherLiquidAssetsVerification = 9004,\n SpouseIRAVerification = 9005,\n SpouseStocksBondsVerification = 9006,\n SpouseRFMSRTAVerification = 9007,\n SpouseOtherLiquidAssetsVerification = 9008,\n JointIRAVerification = 9009,\n JointStocksBondsVerification = 9010,\n JointRFMSRTAVerification = 9011,\n JointOtherLiquidAssetsVerification = 9012,\n}\n\nexport enum QITAsset {\n QITAgreement = 10_004,\n QITSetup = 10_005,\n QITAccount = 10_006,\n}\n\nconst bankAccountDocumentTypes = Object.values(BankAccount);\nconst lifeInsuranceDocumentTypes = Object.values(LifeInsurance);\nconst vehicleDocumentTypes = Object.values(Vehicle);\nconst burialDocumentTypes = Object.values(Burial);\nconst propertyDocumentTypes = Object.values(Property);\nconst billsDocumentTypes = Object.values(Bills);\nconst medicalCoverageDocumentTypes = Object.values(MedicalCoverage);\nconst additionalIncomeDocumentTypes = Object.values(AdditionalIncome);\nconst otherAssetDocumentTypes = Object.values(OtherAsset);\n\nexport const ownedEntityDocumentTypes = [\n ...bankAccountDocumentTypes,\n ...lifeInsuranceDocumentTypes,\n ...vehicleDocumentTypes,\n ...burialDocumentTypes,\n ...propertyDocumentTypes,\n ...billsDocumentTypes,\n ...medicalCoverageDocumentTypes,\n ...additionalIncomeDocumentTypes,\n ...otherAssetDocumentTypes,\n];\n","import { ExistingResource } from \"./ExistingResource\";\n\nexport enum CommentLevel {\n Public = 1,\n Internal = 2,\n}\n\nexport enum CommentSource {\n Document = 1,\n File = 2,\n FIA = 3,\n StateSubmission = 4,\n}\n\nexport const getCommentSource = (source: number) => {\n switch (source) {\n case CommentSource.Document:\n return \"Document\";\n case CommentSource.File:\n return \"File\";\n case CommentSource.FIA:\n return \"FIA\";\n case CommentSource.StateSubmission:\n return \"State Submission\";\n default:\n return \"\";\n }\n};\n\nexport const getCommentLevel = (level: number) => {\n switch (level) {\n case CommentLevel.Public:\n return \"Public\";\n case CommentLevel.Internal:\n return \"Internal\";\n default:\n return \"\";\n }\n};\n\nexport interface NewComment {\n applicationId: string;\n sourceId: string;\n message: string | undefined;\n level: number;\n isPinned: boolean;\n source: number;\n pinnedDate: Date;\n application_FileNumber: string;\n sourceName: string;\n}\n\nexport type CommentFilters = {\n applicationIds: string[];\n levels: string[];\n sources: string[];\n createdAtRange: [Date | null, Date | null];\n createdByIds: string[];\n sortBy: string | undefined;\n sortAscending: boolean;\n};\n\nexport type Comment = ExistingResource;\n","import { DocumentPageCore } from \"../components/Document/types\";\nimport {\n FIARequestCancelDTO,\n FIARequestResendDTO,\n} from \"../components/FIARequests/configurations/types\";\nimport { ExistingResource } from \"./ExistingResource\";\n\nexport enum DocumentEntityTypes {\n Application = 1,\n Template = 2,\n Checklist = 3,\n Invoice = 4,\n InstitutionDocumentsNeeded = 5,\n FIARequestDocuments = 6,\n Notary = 7,\n Signature = 8,\n Matchup = 9,\n Corporate = 10,\n FilingAI = 11,\n AppointmentDocuments = 12,\n FilingAIStateNotice = 13,\n FilingAccount = 14,\n ChecklistPendingSplit = 15,\n}\n\nexport interface NewDocument {\n id?: string;\n entityType: number;\n fileName?: string;\n pageCount?: number;\n displayName?: string;\n originalFileName: string;\n folderName: string;\n isChunked: boolean;\n entityId?: string;\n applicationId?: string;\n uploadedAt?: Date;\n chunkIndex?: number;\n totalChunk?: number;\n useStatementsReceivedDates?: boolean;\n statementReceivedDateRanges_AsList?: StatementReceivedDateRange[];\n useAccountBalances?: boolean;\n accountBalances_AsList?: AccountBalance[];\n isVerified?: boolean;\n isUnableToVerify?: boolean;\n unableToVerifyReason?: boolean;\n filedBy_AsName?: string;\n filedAt?: Date;\n recommendedEntityId?: string;\n isExtractionDataFallback?: boolean;\n isConsolidatedStatement?: boolean;\n ownedEntityDisplayName?: string;\n}\n\nexport interface FIAFollowUpDTO\n extends FIARequestResendDTO,\n FIARequestCancelDTO {\n fiaRequestId?: string;\n fiaRequestAction?: number;\n annotation?: string;\n institutionAccountNumbers_AsList?: string[];\n}\n\nexport interface DocumentVerifyDTO {\n applicationId?: string;\n fiaFollowUps?: FIAFollowUpDTO[];\n documentPages: DocumentPageCore[] | undefined;\n}\n\nexport interface StatementDateRangeFormModel {\n documentId?: string;\n statementReceivedDateRanges_AsList?: StatementReceivedDateRange[];\n accountBalances_AsList?: AccountBalance[];\n}\n\nexport interface UpdateStatementsReceivedResponseDTO {\n useShortDescriptionStatementsNeeded: boolean;\n oldShortDescriptionStatementsNeededPart?: string;\n newShortDescriptionStatementsNeededPart?: string;\n documentId: string;\n}\n\nexport enum PageNumberGroupTypeOptions {\n All = 1,\n Specific = 2,\n Range = 3,\n}\n\nexport interface StatementReceivedDateRange {\n id: string;\n documentId: string;\n dateRangeStart?: string;\n dateRangeEnd?: string;\n pageNumberGroupType?: PageNumberGroupTypeOptions;\n specificPageNumbers?: number[];\n pageRangeStart?: number;\n pageRangeEnd?: number;\n}\n\nexport interface AccountBalance {\n id: string;\n endingDate: string;\n endingBalance?: number;\n keyDates: AccountBalanceKeyDate[];\n balanceSourceType?: BalanceSourceTypes;\n pageIdx?: number;\n}\n\nexport interface AccountBalanceKeyDate {\n id: string;\n keyDate?: string;\n keyDateBalance?: number;\n canDelete?: boolean;\n balanceSourceType?: BalanceSourceTypes;\n pageIdx?: number;\n}\n\nexport type Document = ExistingResource & {\n fileName: string;\n documentStatus: number;\n fileSize: number;\n processedPageCount?: number;\n documentDataExtractionStatus?: DocumentDataExtractionStatusTypes;\n statementCycleEndDay?: number;\n documentClassificationMetadata?: DocumentClassificationMetadata;\n isVerifyOCRSupported?: boolean;\n isClassifiedInstitutionSupported?: boolean;\n isInstitutionSupported?: boolean;\n\n // Consolidated statement Parent Checklist Item Id\n consolidatedStatementChecklistItemId?: string;\n\n // Consolidated statement Parent Document Id\n consolidatedStatementDocumentId?: string;\n\n // When consolidated statement is submitted\n consolidatedStatementSubmittedAt?: string;\n\n // True if document is consolidated statement and submitted\n isConsolidatedStatementSubmitted?: boolean;\n\n // Distinct consolidated account number options from extracted data\n consolidatedStatementAccountNumberOptions?: string[];\n\n // Selected account numbers on consolidated analyze\n consolidatedStatementAccountNumbers_AsList?: string[];\n};\n\ntype DocumentClassificationMetadata = {\n isInstitutionSupported?: boolean;\n isConsolidatedStatement?: boolean;\n};\n\nexport enum DocumentDataExtractionStatusTypes {\n InProgress = 1,\n Completed = 2,\n Failed = 3,\n Cancelled = 4,\n BlockedByCondition = 5,\n}\n\nexport enum BalanceSourceTypes {\n None = 0,\n Manual = 1,\n Extracted = 2,\n Calculated = 3,\n Verified = 4,\n Inferred = 5,\n}\n","import { get } from \"lodash\";\n\nexport interface FileDocument {\n fileName: string;\n folderName?: string;\n isChunked?: boolean;\n}\n\nexport const buildFileDocumentCustomFormData = (\n doc: object\n): {\n [key: string]: Object;\n}[] => {\n return Object.keys(doc).map((key) => ({ [key]: get(doc, key) })) as {\n [key: string]: Object;\n }[];\n};\n","import { AddressFieldValue } from \"../components/Fields/types/fieldTypes\";\nimport { ExistingResource } from \"./ExistingResource\";\nimport { ExistingInstitutionContact } from \"./InstitutionContact\";\n\nexport interface Institution {\n name: string;\n type: InstitutionTypes;\n fee?: number;\n institutionFeeFrequencyType: number;\n isSpecialized: boolean;\n specializationCategory: number[];\n specializationCategory_AsString?: string[];\n larryLetterType: number;\n batchSendDays: number[];\n websiteAddress: string;\n emailAddress: string;\n phoneNumber: string;\n faxNumber: string;\n mailingAddress: AddressFieldValue;\n receivingContactMethods: number[];\n isPolicyOrAccountNumberRequiredForFIARequest?: boolean;\n sendingContactMethod: number;\n sendingContactMethod_AsString?: string;\n emailAttentionTo: string;\n faxAttentionTo: string;\n mailAttentionTo: string;\n emailSLAInDays: string;\n faxSLAInDays: string;\n mailSLAInDays: string;\n automaticResendDelayInDays: string;\n displayNotes: string;\n notes: string;\n requireGovernmentId: boolean;\n isActive: boolean;\n contacts: ExistingInstitutionContact[];\n requiresStatementsNeeded: boolean;\n isOCRSupported?: boolean;\n}\n\nexport type ExistingInstitution = ExistingResource;\n\nexport enum InstitutionTypes {\n Annuity = 1,\n Bank = 2,\n HealthInsurance = 3,\n Investment = 4,\n IRA = 5,\n LifeInsurance = 6,\n Paystub = 7,\n Pension = 8,\n Stocks = 9,\n}\n\nexport enum ContactMethods {\n Email = 1,\n Fax = 2,\n Mail = 3,\n}\n","import { ExistingResource } from \"./ExistingResource\";\nimport { Document } from \"./Document\";\n\nexport const notariesFolderName = \"mdrnotaries\";\n\nexport interface NewNotary {\n firstName: string;\n lastName: string;\n fieldRepId: string;\n documentId: string;\n state: number;\n countyId?: string;\n number: string;\n expirationDate: string;\n bondCompany: string;\n sealId: string;\n seal: Document | null;\n signature: string;\n}\n\nexport type Notary = ExistingResource;\n","import { FacilityContact } from \"../types/Facility\";\nimport { WorkDayOptions } from \"../components/Forms/FacilityBlockConfigurationForm/BlockScheduleForm/types/WorkDayOptions\";\nimport { OrdinalDayOptions } from \"../components/Forms/FacilityBlockConfigurationForm/BlockScheduleForm/types/OrdinalDayOptions\";\nimport { AppointmentChangeReasons } from \"../components/Forms/AppointmentForm/types/AppointmentChangeReasons\";\nimport { AppointmentContactMethodOptions } from \"../components/Forms/AppointmentForm/types/AppointmentContactMethodOptions\";\nimport { AppointmentContactRelationshipTypes } from \"../components/Forms/AppointmentForm/types/AppointmentContactRelationshipTypes\";\nimport { AppointmentStatuses } from \"../components/Forms/AppointmentForm/types/AppointmentStatuses\";\nimport { CareTypeOptions } from \"../components/Forms/AppointmentForm/types/CareTypeOptions\";\nimport { InsuranceTypeOptions } from \"../components/Forms/AppointmentForm/types/InsuranceTypeOptions\";\nimport { MeetingTypes } from \"../components/Forms/AppointmentForm/types/MeetingTypes\";\nimport { YesNoOptionTypes } from \"../components/Forms/AppointmentForm/types/YesNoOptionTypes\";\nimport { RecurringFrequencyTypeOptions } from \"../components/Forms/FacilityBlockConfigurationForm/BlockScheduleForm/types/RecurringFrequencyTypeOptions\";\nimport { MaritalStatuses } from \"../components/Forms/AppointmentForm/types/MaritalStatus\";\nimport { AppointmentEmailError } from \"../components/Forms/AppointmentForm/AppointmentEmailError\";\nimport { AppointmentConfirmationStatus } from \"../components/Forms/AppointmentForm/types/AppointmentConfirmationStatus\";\n\nexport interface Appointment {\n id: string;\n status: AppointmentStatuses;\n status_AsString: string;\n convertedApplicationId: string;\n convertedApplication_Status_AsString: string;\n appointmentContacts: AppointmentContact[];\n appointmentDocuments: AppointmentDocument[];\n rescheduleReason: AppointmentChangeReasons;\n cancellationReason: AppointmentChangeReasons;\n facilityId: string;\n facility_Name: string;\n facilityHasNoFieldRep: boolean;\n facilityHasNoTimeZone: boolean;\n fieldRepId: string;\n fieldRep_FullName: string;\n meetingType: MeetingTypes;\n meetingType_AsString: string;\n date: string;\n startTime: number;\n endTime: number;\n duration_AsString: string;\n firstName: string;\n lastName: string;\n resident_DisplayName: string;\n email: string;\n socialSecurityNumber: string;\n isResidentCapableOfSigning: YesNoOptionTypes;\n isPOAOrGuardianInPlace: YesNoOptionTypes;\n willAnyoneElseBeAttending: YesNoOptionTypes | undefined;\n admissionDate: string;\n medicaidNeededDate: string;\n plannedCareType: CareTypeOptions;\n isBalanceOwedToFacility: YesNoOptionTypes;\n balanceOwedToFacility: number;\n lastInsuranceCoveredDate: string;\n insuranceType: InsuranceTypeOptions;\n copayAmount: number;\n coinsuranceAmount: number;\n additionalNotes: string;\n debriefNotes: string;\n appointmentReferenceId: string;\n redFlags: number[];\n createdBy_AsName: string;\n maritalStatus: MaritalStatuses;\n maritalStatus_AsString: string;\n appointmentEmailErrors: AppointmentEmailError[];\n createdAt: Date;\n createdAt_AsDateOnly: Date;\n createdByExternalUser: boolean;\n}\n\nexport type AppointmentGridReadDTO = Pick<\n Appointment,\n | \"id\"\n | \"facility_Name\"\n | \"firstName\"\n | \"lastName\"\n | \"resident_DisplayName\"\n | \"maritalStatus\"\n | \"admissionDate\"\n | \"createdAt\"\n | \"createdAt_AsDateOnly\"\n | \"createdBy_AsName\"\n | \"balanceOwedToFacility\"\n | \"medicaidNeededDate\"\n | \"isResidentCapableOfSigning\"\n | \"willAnyoneElseBeAttending\"\n | \"meetingType\"\n | \"duration_AsString\"\n | \"fieldRep_FullName\"\n | \"status\"\n | \"status_AsString\"\n | \"createdByExternalUser\"\n | \"lastInsuranceCoveredDate\"\n | \"maritalStatus_AsString\"\n | \"meetingType_AsString\"\n> & {\n notes: string;\n startTime: string;\n endTime: string;\n facilityTimeZone: number;\n numberOfDocuments: number;\n numberOfContacts: number;\n convertedApplicationStatus_AsString: string;\n convertedApplicationCreatedAt: string;\n dailyDebriefActions: string;\n};\n\nexport interface AppointmentChanges {\n isReschedule: boolean;\n isCancellation: boolean;\n}\n\nexport interface AppointmentUpdateResponse {\n appointment: Appointment;\n rescheduledAppointment: Appointment;\n}\n\nexport interface AppointmentConversionResponse {\n duplicateLeadId?: string;\n duplicateApplicationId?: string;\n duplicateApplicationFileNumber?: string;\n applicationId?: string;\n applicationStatus_AsString?: string;\n}\n\nexport interface AppointmentContact {\n id: string;\n appointmentId: string;\n firstName: string;\n lastName: string;\n phoneNumber: string;\n email: string;\n preferredContactMethod: AppointmentContactMethodOptions;\n relationshipToResident: AppointmentContactRelationshipTypes;\n appointmentConfirmationStatus: AppointmentConfirmationStatus;\n}\n\nexport interface SchedulerEvent {\n id: string;\n facility_Name: string;\n fieldRep_FullName: string;\n startTime: Date;\n endTime: Date;\n appointmentSource: string;\n status: string;\n}\n\nexport interface AppointmentSchedulerEvent extends SchedulerEvent {\n facilityId: string;\n fieldRepId: string;\n meetingType: MeetingTypes;\n date: Date;\n}\n\nexport interface OutlookSchedulerEvent extends SchedulerEvent {\n showAs: string;\n}\n\nexport interface ApppointmentAttendees {\n name: string;\n address: string;\n}\n\nexport interface AppointmentDocument {\n id: string;\n appointmentId: string;\n documentId: string;\n}\n\nexport interface FacilityBlockSchedule {\n id: string;\n facilityId: string;\n fieldRepId: string;\n startTime: string;\n endTime: string;\n repeatSchedule: boolean;\n recurringFrequencyType: RecurringFrequencyTypeOptions;\n recurringOrdinalDays_AsList: OrdinalDayOptions[];\n recurringDays_AsList: WorkDayOptions[];\n startDate: string;\n endDate: string;\n blockExceptionFromFieldRepId?: string;\n blockExceptionFromId?: string;\n isBlockException?: boolean;\n}\n\nexport type RescheduleFacilityBlockSchedule = Pick<\n FacilityBlockSchedule,\n \"id\" | \"facilityId\" | \"fieldRepId\"\n> & {\n originalDate: Date;\n newDate: Date;\n startTime: number;\n endTime: number;\n};\n\nexport enum AppointmentRedFlags {\n FamilyNoShow = 1,\n UnallowableAssetTransfers = 2,\n UncooperativeFamilyMemberResident = 3,\n ResidentOrPOAGuardianRefusal = 4,\n SpousalRefusal = 5,\n SpousalUnavailablePOAGuardian = 6,\n OverIncomeQITFundingNeeded = 7,\n OverIncomeQITCompletedFundingNeeded = 8,\n OverAssets = 9,\n NotEligibleForMonthRequested = 10,\n ResidentDischarged = 11,\n ResidentExpired = 12,\n}\n\nexport interface DailyDebriefShouldAutoOpenDialogDto {\n shouldAutoOpen: boolean;\n nextCheckTime: string;\n}\n\nexport interface DailyDebriefFacility {\n facilityId: string;\n facility_Name: string;\n facilityContacts: FacilityContact[];\n dates: DailyDebriefFacilityDate[];\n}\n\nexport interface DailyDebriefFacilityDate {\n date: string;\n date_AsString: string;\n appointments: DailyDebriefAppointment[];\n}\n\nexport interface DailyDebriefAppointment {\n appointmentId: string;\n status: AppointmentStatuses;\n meetingType: MeetingTypes;\n startTime: number;\n endTime: number;\n firstName: string;\n lastName: string;\n savedStatus?: AppointmentStatuses;\n savedRescheduleReason?: AppointmentChangeReasons;\n savedRescheduleDate?: string;\n savedRescheduleStartTime?: number;\n savedRescheduleEndTime?: number;\n savedCancellationReason?: AppointmentChangeReasons;\n debriefNotes?: string;\n}\n\nexport interface DailyDebriefEmail {\n recipientEmails: string[];\n emailSubject: string;\n emailBody: string;\n}\n\nexport enum TimeZones {\n Eastern = 1,\n Central = 2,\n Mountain = 3,\n Pacific = 4,\n}\n\nexport interface AddressTimeZoneInfo {\n timeZone: TimeZones;\n observesDST: boolean;\n}\n\nexport interface AppointmentBlockSchedule {\n usesBlockSchedule: boolean;\n blockScheduleDates?: string[];\n}\n","import { ExistingResource } from \"./ExistingResource\";\n\nexport const templatesFolderName = \"mdrtemplates\";\n\nexport interface TemplateData {\n templateName: string;\n templateType: number;\n templateStates_AsList?: number[];\n documentType?: number;\n sendOrder: number;\n documentId?: string;\n}\nexport interface Template extends TemplateData {\n originalFileName: string;\n fileName: string;\n fileFormData?: string;\n}\n\nexport type UpdateTemplate = ExistingTemplate & {\n validatePagesCount: boolean;\n};\n\nexport type TemplateFileFormDataUpdate = {\n id: string;\n fileFormData?: string;\n};\n\nexport type ExistingTemplate = ExistingResource